From 65bf3316cf384588453604be6b4f0ed3751a8b0f Mon Sep 17 00:00:00 2001 From: tromey Date: Tue, 9 Jan 2007 19:58:05 +0000 Subject: [PATCH] Merged gcj-eclipse branch to trunk. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120621 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/ChangeLog | 583 + gcc/java/Make-lang.in | 132 +- gcc/java/buffer.c | 51 - gcc/java/buffer.h | 46 - gcc/java/builtins.c | 311 +- gcc/java/chartables.h | 3219 ---- gcc/java/check-init.c | 1032 -- gcc/java/class.c | 207 +- gcc/java/config-lang.in | 6 +- gcc/java/constants.c | 32 +- gcc/java/convert.h | 25 - gcc/java/decl.c | 17 +- gcc/java/expr.c | 87 +- gcc/java/gcj.texi | 85 +- gcc/java/gen-table.pl | 273 - gcc/java/gjavah.c | 2673 --- gcc/java/java-gimplify.c | 89 +- gcc/java/java-tree.def | 164 +- gcc/java/java-tree.h | 304 +- gcc/java/jcf-depend.c | 9 +- gcc/java/jcf-dump.c | 236 +- gcc/java/jcf-io.c | 5 +- gcc/java/jcf-parse.c | 963 +- gcc/java/jcf-path.c | 34 +- gcc/java/jcf-reader.c | 78 +- gcc/java/jcf-write.c | 3569 ---- gcc/java/jcf.h | 29 +- gcc/java/jv-scan.c | 290 - gcc/java/jvgenmain.c | 30 +- gcc/java/jvspec.c | 103 +- gcc/java/keyword.gperf | 91 - gcc/java/keyword.h | 189 - gcc/java/lang-specs.h | 31 +- gcc/java/lang.c | 21 +- gcc/java/lang.opt | 179 + gcc/java/lex.c | 2073 --- gcc/java/lex.h | 247 - gcc/java/mangle.c | 163 +- gcc/java/parse-scan.y | 1377 -- gcc/java/parse.h | 1041 +- gcc/java/parse.y | 16552 ------------------- gcc/java/typeck.c | 2 +- libjava/ChangeLog | 1231 ++ libjava/HACKING | 5 + libjava/Makefile.am | 447 +- libjava/Makefile.in | 3090 ++-- libjava/boehm.cc | 3 + libjava/classpath/.cdtproject | 3 + libjava/classpath/.classpath | 14 + libjava/classpath/.cvsignore | 18 + .../classpath/.externalToolBuilders/Autogen.launch | 2 + .../.externalToolBuilders/ClasspathHeaders.launch | 2 + .../.externalToolBuilders/ClasspathJar.launch | 11 + .../.externalToolBuilders/CompileNative.launch | 2 + .../.externalToolBuilders/Configure.launch | 13 + .../.externalToolBuilders/CreateLocaleData.launch | 12 + libjava/classpath/.project | 77 + .../classpath/.settings/org.eclipse.jdt.core.prefs | 243 + .../classpath/.settings/org.eclipse.jdt.ui.prefs | 12 + libjava/classpath/AUTHORS | 13 +- libjava/classpath/ChangeLog | 12575 ++++++++++++-- libjava/classpath/ChangeLog-2004 | 1068 +- libjava/classpath/ChangeLog-2005 | 2666 ++- libjava/classpath/ChangeLog.gcj | 200 +- libjava/classpath/ChangeLog.usermap | 60 + libjava/classpath/INSTALL | 15 +- libjava/classpath/LICENSE | 14 +- libjava/classpath/Makefile.in | 11 +- libjava/classpath/NEWS | 55 + libjava/classpath/aclocal.m4 | 2 + libjava/classpath/compile | 142 + libjava/classpath/config.guess | 664 +- libjava/classpath/config.sub | 218 +- libjava/classpath/configure | 5024 +++--- libjava/classpath/configure.ac | 154 +- libjava/classpath/doc/.cvsignore | 13 + libjava/classpath/doc/Makefile.in | 11 +- libjava/classpath/doc/api/.cvsignore | 2 + libjava/classpath/doc/api/Makefile.am | 2 + libjava/classpath/doc/api/Makefile.in | 41 +- libjava/classpath/doc/vmintegration.texinfo | 130 +- libjava/classpath/examples/.cvsignore | 6 + libjava/classpath/examples/Makefile.am | 27 +- libjava/classpath/examples/Makefile.in | 36 +- .../examples/CORBA/NamingService/Demo.java | 3 +- .../examples/gnu/classpath/examples/awt/aicas.png | Bin 0 -> 2320 bytes .../examples/gnu/classpath/examples/awt/palme.gif | Bin 0 -> 502 bytes .../examples/gnu/classpath/examples/icons/back.png | Bin 0 -> 828 bytes .../gnu/classpath/examples/icons/reload.png | Bin 0 -> 1324 bytes .../gnu/classpath/examples/java2d/aicas.png | Bin 0 -> 2320 bytes .../gnu/classpath/examples/java2d/palme.gif | Bin 0 -> 502 bytes .../classpath/examples/swing/BrowserEditorKit.java | 57 + .../swing/ClasspathSwingActivityBoard.launch | 19 + .../gnu/classpath/examples/swing/Demo.java | 96 +- .../gnu/classpath/examples/swing/HtmlDemo.java | 392 +- .../classpath/examples/swing/TabbedPaneDemo.java | 145 +- .../gnu/classpath/examples/swing/TreeDemo.java | 35 +- .../gnu/classpath/examples/swing/forms.html | 98 + .../gnu/classpath/examples/swing/frame1.html | 41 + .../gnu/classpath/examples/swing/frame2.html | 42 + .../gnu/classpath/examples/swing/frame3.html | 42 + .../gnu/classpath/examples/swing/frame4.html | 41 + .../gnu/classpath/examples/swing/frames.html | 44 + .../gnu/classpath/examples/swing/tables.html | 66 + .../gnu/classpath/examples/swing/textstyles.html | 78 + .../gnu/classpath/examples/swing/welcome.html | 63 + libjava/classpath/external/.cvsignore | 2 + libjava/classpath/external/Makefile.am | 2 +- libjava/classpath/external/Makefile.in | 13 +- libjava/classpath/external/jsr166/.cvsignore | 1 + libjava/classpath/external/jsr166/IMPORTING | 31 + libjava/classpath/external/jsr166/Makefile.am | 74 + libjava/classpath/external/jsr166/Makefile.in | 522 + .../external/jsr166/java/util/AbstractQueue.java | 166 + .../external/jsr166/java/util/ArrayDeque.java | 839 + .../classpath/external/jsr166/java/util/Deque.java | 547 + .../external/jsr166/java/util/NavigableMap.java | 395 + .../external/jsr166/java/util/NavigableSet.java | 290 + .../classpath/external/jsr166/java/util/Queue.java | 189 + .../util/concurrent/AbstractExecutorService.java | 270 + .../java/util/concurrent/ArrayBlockingQueue.java | 778 + .../jsr166/java/util/concurrent/BlockingDeque.java | 613 + .../jsr166/java/util/concurrent/BlockingQueue.java | 344 + .../util/concurrent/BrokenBarrierException.java | 38 + .../jsr166/java/util/concurrent/Callable.java | 36 + .../util/concurrent/CancellationException.java | 34 + .../java/util/concurrent/CompletionService.java | 97 + .../java/util/concurrent/ConcurrentHashMap.java | 1277 ++ .../util/concurrent/ConcurrentLinkedQueue.java | 480 + .../jsr166/java/util/concurrent/ConcurrentMap.java | 134 + .../util/concurrent/ConcurrentNavigableMap.java | 148 + .../util/concurrent/ConcurrentSkipListMap.java | 3114 ++++ .../util/concurrent/ConcurrentSkipListSet.java | 456 + .../java/util/concurrent/CopyOnWriteArraySet.java | 364 + .../java/util/concurrent/CountDownLatch.java | 290 + .../jsr166/java/util/concurrent/CyclicBarrier.java | 454 + .../jsr166/java/util/concurrent/DelayQueue.java | 487 + .../jsr166/java/util/concurrent/Delayed.java | 33 + .../jsr166/java/util/concurrent/Exchanger.java | 656 + .../java/util/concurrent/ExecutionException.java | 65 + .../jsr166/java/util/concurrent/Executor.java | 112 + .../util/concurrent/ExecutorCompletionService.java | 174 + .../java/util/concurrent/ExecutorService.java | 306 + .../jsr166/java/util/concurrent/Executors.java | 666 + .../jsr166/java/util/concurrent/Future.java | 142 + .../jsr166/java/util/concurrent/FutureTask.java | 325 + .../java/util/concurrent/LinkedBlockingDeque.java | 1021 ++ .../java/util/concurrent/LinkedBlockingQueue.java | 807 + .../util/concurrent/PriorityBlockingQueue.java | 563 + .../concurrent/RejectedExecutionException.java | 62 + .../util/concurrent/RejectedExecutionHandler.java | 33 + .../java/util/concurrent/RunnableFuture.java | 25 + .../util/concurrent/RunnableScheduledFuture.java | 29 + .../util/concurrent/ScheduledExecutorService.java | 159 + .../java/util/concurrent/ScheduledFuture.java | 19 + .../concurrent/ScheduledThreadPoolExecutor.java | 626 + .../jsr166/java/util/concurrent/Semaphore.java | 681 + .../java/util/concurrent/SynchronousQueue.java | 1127 ++ .../jsr166/java/util/concurrent/ThreadFactory.java | 40 + .../java/util/concurrent/ThreadPoolExecutor.java | 1605 ++ .../jsr166/java/util/concurrent/TimeUnit.java | 331 + .../java/util/concurrent/TimeoutException.java | 38 + .../java/util/concurrent/atomic/AtomicBoolean.java | 133 + .../java/util/concurrent/atomic/AtomicInteger.java | 234 + .../util/concurrent/atomic/AtomicIntegerArray.java | 255 + .../atomic/AtomicIntegerFieldUpdater.java | 316 + .../java/util/concurrent/atomic/AtomicLong.java | 248 + .../util/concurrent/atomic/AtomicLongArray.java | 255 + .../concurrent/atomic/AtomicLongFieldUpdater.java | 406 + .../concurrent/atomic/AtomicMarkableReference.java | 161 + .../util/concurrent/atomic/AtomicReference.java | 124 + .../concurrent/atomic/AtomicReferenceArray.java | 163 + .../atomic/AtomicReferenceFieldUpdater.java | 275 + .../concurrent/atomic/AtomicStampedReference.java | 165 + .../java/util/concurrent/atomic/package.html | 158 + .../locks/AbstractOwnableSynchronizer.java | 57 + .../locks/AbstractQueuedLongSynchronizer.java | 1934 +++ .../locks/AbstractQueuedSynchronizer.java | 2159 +++ .../java/util/concurrent/locks/Condition.java | 435 + .../jsr166/java/util/concurrent/locks/Lock.java | 327 + .../java/util/concurrent/locks/LockSupport.java | 352 + .../java/util/concurrent/locks/ReadWriteLock.java | 104 + .../java/util/concurrent/locks/ReentrantLock.java | 740 + .../concurrent/locks/ReentrantReadWriteLock.java | 1346 ++ .../jsr166/java/util/concurrent/locks/package.html | 50 + .../jsr166/java/util/concurrent/package.html | 222 + libjava/classpath/external/jsr166/readme | 45 + .../classpath/external/relaxngDatatype/.cvsignore | 2 + .../classpath/external/relaxngDatatype/Makefile.in | 11 +- libjava/classpath/external/sax/.cvsignore | 2 + libjava/classpath/external/sax/Makefile.in | 11 +- .../external/sax/org/xml/sax/AttributeList.java | 2 +- .../external/sax/org/xml/sax/Attributes.java | 2 +- .../external/sax/org/xml/sax/ContentHandler.java | 2 +- .../external/sax/org/xml/sax/DTDHandler.java | 2 +- .../external/sax/org/xml/sax/DocumentHandler.java | 2 +- .../external/sax/org/xml/sax/EntityResolver.java | 2 +- .../external/sax/org/xml/sax/ErrorHandler.java | 2 +- .../external/sax/org/xml/sax/HandlerBase.java | 2 +- .../external/sax/org/xml/sax/InputSource.java | 2 +- .../external/sax/org/xml/sax/Locator.java | 2 +- .../classpath/external/sax/org/xml/sax/Parser.java | 2 +- .../external/sax/org/xml/sax/SAXException.java | 2 +- .../sax/org/xml/sax/SAXNotRecognizedException.java | 2 +- .../sax/org/xml/sax/SAXNotSupportedException.java | 2 +- .../sax/org/xml/sax/SAXParseException.java | 2 +- .../external/sax/org/xml/sax/XMLFilter.java | 2 +- .../external/sax/org/xml/sax/XMLReader.java | 2 +- .../external/sax/org/xml/sax/ext/Attributes2.java | 2 +- .../sax/org/xml/sax/ext/Attributes2Impl.java | 2 +- .../external/sax/org/xml/sax/ext/DeclHandler.java | 2 +- .../sax/org/xml/sax/ext/DefaultHandler2.java | 2 +- .../sax/org/xml/sax/ext/EntityResolver2.java | 2 +- .../sax/org/xml/sax/ext/LexicalHandler.java | 2 +- .../external/sax/org/xml/sax/ext/Locator2.java | 2 +- .../external/sax/org/xml/sax/ext/Locator2Impl.java | 2 +- .../external/sax/org/xml/sax/ext/package.html | 2 +- .../sax/org/xml/sax/helpers/AttributeListImpl.java | 2 +- .../sax/org/xml/sax/helpers/AttributesImpl.java | 2 +- .../sax/org/xml/sax/helpers/DefaultHandler.java | 2 +- .../sax/org/xml/sax/helpers/LocatorImpl.java | 2 +- .../sax/org/xml/sax/helpers/NamespaceSupport.java | 2 +- .../sax/org/xml/sax/helpers/NewInstance.java | 2 +- .../sax/org/xml/sax/helpers/ParserAdapter.java | 2 +- .../sax/org/xml/sax/helpers/ParserFactory.java | 2 +- .../sax/org/xml/sax/helpers/XMLFilterImpl.java | 2 +- .../sax/org/xml/sax/helpers/XMLReaderAdapter.java | 2 +- .../sax/org/xml/sax/helpers/XMLReaderFactory.java | 2 +- .../external/sax/org/xml/sax/helpers/package.html | 2 +- .../external/sax/org/xml/sax/package.html | 2 +- libjava/classpath/external/w3c_dom/.cvsignore | 2 + libjava/classpath/external/w3c_dom/COPYRIGHT.html | 106 + libjava/classpath/external/w3c_dom/Makefile.in | 11 +- libjava/classpath/gnu/CORBA/CDR/Vio.java | 5 +- libjava/classpath/gnu/CORBA/CollocatedOrbs.java | 164 + libjava/classpath/gnu/CORBA/Connected_objects.java | 10 + .../CORBA/NamingService/Binding_iterator_impl.java | 6 +- libjava/classpath/gnu/CORBA/NamingService/Ext.java | 6 +- .../gnu/CORBA/NamingService/NameParser.java | 3 - .../gnu/CORBA/NamingService/NameTransformer.java | 6 +- .../NamingService/NamingServiceTransient.java | 42 +- .../gnu/CORBA/NamingService/TransientContext.java | 4 +- libjava/classpath/gnu/CORBA/OrbFunctional.java | 122 +- libjava/classpath/gnu/CORBA/Poa/LocalRequest.java | 7 +- libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java | 2 +- libjava/classpath/gnu/CORBA/Poa/gnuPOA.java | 4 +- .../classpath/gnu/CORBA/Poa/gnuServantObject.java | 15 +- .../classpath/gnu/CORBA/SafeForDirectCalls.java | 50 + libjava/classpath/gnu/CORBA/SimpleDelegate.java | 40 +- libjava/classpath/gnu/classpath/.cvsignore | 1 + libjava/classpath/gnu/classpath/ListenerData.java | 136 + .../classpath/gnu/classpath/SystemProperties.java | 1 + .../classpath/gnu/classpath/debug/Component.java | 7 +- .../gnu/classpath/debug/SystemLogger.java | 41 +- .../gnu/java/awt/ComponentReshapeEvent.java | 85 + .../classpath/gnu/java/awt/LowPriorityEvent.java | 48 + .../gnu/java/awt/color/PyccConverter.java | 9 +- .../awt/dnd/peer/gtk/GtkDragSourceContextPeer.java | 12 +- .../awt/dnd/peer/gtk/GtkDropTargetContextPeer.java | 6 +- .../gnu/java/awt/font/autofit/AxisHints.java | 45 + .../gnu/java/awt/font/autofit/Constants.java | 61 + .../gnu/java/awt/font/autofit/GlyphHints.java | 75 + .../classpath/gnu/java/awt/font/autofit/Latin.java | 177 + .../gnu/java/awt/font/autofit/LatinAxis.java | 53 + .../gnu/java/awt/font/autofit/LatinMetrics.java | 51 + .../gnu/java/awt/font/autofit/Scaler.java | 52 + .../gnu/java/awt/font/autofit/Script.java | 62 + .../gnu/java/awt/font/autofit/ScriptMetrics.java | 49 + .../gnu/java/awt/font/autofit/Segment.java | 47 + .../classpath/gnu/java/awt/font/autofit/Width.java | 46 + .../gnu/java/awt/font/opentype/CharGlyphMap.java | 2 +- .../gnu/java/awt/font/opentype/OpenTypeFont.java | 17 +- .../gnu/java/awt/font/opentype/Scaler.java | 12 + .../awt/font/opentype/truetype/GlyphLoader.java | 5 + .../awt/font/opentype/truetype/TrueTypeScaler.java | 6 + .../gnu/java/awt/font/opentype/truetype/Zone.java | 2 +- .../gnu/java/awt/java2d/AbstractGraphics2D.java | 181 +- .../classpath/gnu/java/awt/java2d/QuadSegment.java | 69 +- .../classpath/gnu/java/awt/java2d/ShapeCache.java | 85 + .../gnu/java/awt/java2d/TexturePaintContext.java | 8 +- .../gnu/java/awt/peer/ClasspathFontPeer.java | 14 - .../gnu/java/awt/peer/GLightweightPeer.java | 247 +- .../java/awt/peer/NativeEventLoopRunningEvent.java | 58 + .../gnu/java/awt/peer/gtk/AsyncImage.java | 283 + .../java/awt/peer/gtk/BufferedImageGraphics.java | 405 +- .../gnu/java/awt/peer/gtk/CairoGraphics2D.java | 509 +- .../gnu/java/awt/peer/gtk/CairoSurface.java | 130 +- .../java/awt/peer/gtk/CairoSurfaceGraphics.java | 216 +- .../gnu/java/awt/peer/gtk/ComponentGraphics.java | 283 +- .../gnu/java/awt/peer/gtk/FreetypeGlyphVector.java | 149 +- .../gnu/java/awt/peer/gtk/GdkFontMetrics.java | 143 - .../gnu/java/awt/peer/gtk/GdkFontPeer.java | 229 +- .../java/awt/peer/gtk/GdkGraphicsEnvironment.java | 8 +- .../gnu/java/awt/peer/gtk/GtkChoicePeer.java | 2 +- .../gnu/java/awt/peer/gtk/GtkComponentPeer.java | 73 +- .../gnu/java/awt/peer/gtk/GtkFramePeer.java | 22 +- .../gnu/java/awt/peer/gtk/GtkImageConsumer.java | 43 +- .../gnu/java/awt/peer/gtk/GtkMainThread.java | 190 + .../gnu/java/awt/peer/gtk/GtkToolkit.java | 112 +- .../gnu/java/awt/peer/gtk/GtkVolatileImage.java | 45 +- .../gnu/java/awt/peer/gtk/GtkWindowPeer.java | 78 +- .../java/awt/peer/gtk/VolatileImageGraphics.java | 209 +- .../peer/headless/HeadlessGraphicsEnvironment.java | 118 + .../java/awt/peer/headless/HeadlessToolkit.java | 371 + .../classpath/gnu/java/awt/peer/qt/QtFontPeer.java | 11 - .../classpath/gnu/java/awt/peer/qt/QtGraphics.java | 7 +- .../gnu/java/awt/peer/swing/SwingButtonPeer.java | 22 +- .../gnu/java/awt/peer/swing/SwingComponent.java | 6 +- .../java/awt/peer/swing/SwingComponentPeer.java | 156 +- .../java/awt/peer/swing/SwingContainerPeer.java | 209 +- .../gnu/java/awt/peer/swing/SwingFramePeer.java | 11 +- .../gnu/java/awt/peer/swing/SwingLabelPeer.java | 48 +- .../gnu/java/awt/peer/swing/SwingListPeer.java | 352 + .../gnu/java/awt/peer/swing/SwingMenuBarPeer.java | 2 +- .../gnu/java/awt/peer/swing/SwingPanelPeer.java | 4 +- .../gnu/java/awt/peer/swing/SwingTextAreaPeer.java | 317 + .../java/awt/peer/swing/SwingTextFieldPeer.java | 32 +- .../gnu/java/awt/peer/swing/SwingWindowPeer.java | 8 +- .../classpath/gnu/java/awt/peer/x/XFontPeer.java | 7 - .../classpath/gnu/java/awt/peer/x/XFontPeer2.java | 6 - .../gnu/java/io/ObjectIdentityMap2Int.java | 292 + .../classpath/gnu/java/io/class-dependencies.conf | 75 + .../gnu/java/lang/InstrumentationImpl.java | 16 +- .../gnu/java/lang/management/BeanImpl.java | 437 +- .../gnu/java/lang/management/MemoryMXBeanImpl.java | 45 +- .../java/lang/management/MemoryPoolMXBeanImpl.java | 6 +- .../java/lang/reflect/ClassSignatureParser.java | 2 +- .../java/lang/reflect/GenericSignatureParser.java | 17 +- .../java/lang/reflect/MethodSignatureParser.java | 4 +- libjava/classpath/gnu/java/locale/.cvsignore | 1 + .../gnu/java/net/DefaultProxySelector.java | 80 + .../gnu/java/net/PlainDatagramSocketImpl.java | 252 +- .../classpath/gnu/java/net/PlainSocketImpl.java | 376 +- .../gnu/java/net/local/LocalSocketImpl.java | 7 +- .../gnu/java/net/protocol/http/HTTPConnection.java | 50 +- .../java/net/protocol/http/HTTPURLConnection.java | 40 +- .../gnu/java/net/protocol/jar/Handler.java | 46 +- .../gnu/java/nio/DatagramChannelImpl.java | 165 +- .../gnu/java/nio/DatagramChannelSelectionKey.java | 13 +- .../gnu/java/nio/EpollSelectionKeyImpl.java | 122 + .../classpath/gnu/java/nio/EpollSelectorImpl.java | 399 + .../classpath/gnu/java/nio/FileChannelImpl.java | 572 + libjava/classpath/gnu/java/nio/FileLockImpl.java | 2 - .../gnu/java/nio/KqueueSelectionKeyImpl.java | 189 + .../classpath/gnu/java/nio/KqueueSelectorImpl.java | 527 + libjava/classpath/gnu/java/nio/NIOSocket.java | 29 +- libjava/classpath/gnu/java/nio/NIOSocketImpl.java | 110 + libjava/classpath/gnu/java/nio/PipeImpl.java | 34 +- .../classpath/gnu/java/nio/SelectionKeyImpl.java | 1 + libjava/classpath/gnu/java/nio/SelectorImpl.java | 20 +- .../gnu/java/nio/SelectorProviderImpl.java | 37 + .../gnu/java/nio/ServerSocketChannelImpl.java | 39 +- .../java/nio/ServerSocketChannelSelectionKey.java | 13 +- .../classpath/gnu/java/nio/SocketChannelImpl.java | 262 +- .../gnu/java/nio/SocketChannelSelectionKey.java | 13 +- .../java/nio/SocketChannelSelectionKeyImpl.java | 11 +- libjava/classpath/gnu/java/nio/VMChannelOwner.java | 57 + .../gnu/java/nio/channels/FileChannelImpl.java | 553 - .../gnu/java/rmi/server/ActivatableRef.java | 8 +- .../gnu/java/rmi/server/RMIClassLoaderImpl.java | 67 +- .../gnu/java/rmi/server/RMIObjectInputStream.java | 61 +- libjava/classpath/gnu/java/security/.cvsignore | 1 + libjava/classpath/gnu/java/security/Engine.java | 174 +- libjava/classpath/gnu/java/security/Requires.java | 59 + .../java/security/action/GetPropertyAction.java | 4 +- .../security/action/GetSecurityPropertyAction.java | 4 +- .../java/security/key/rsa/RSAKeyPairRawCodec.java | 4 +- .../java/security/util/ByteBufferOutputStream.java | 118 + .../classpath/gnu/java/util/DoubleEnumeration.java | 12 +- .../gnu/java/util/prefs/GConfBasedPreferences.java | 27 +- .../gnu/java/util/prefs/gconf/GConfNativePeer.java | 53 +- .../classpath/gnu/java/util/regex/CharIndexed.java | 17 + .../java/util/regex/CharIndexedCharSequence.java | 13 + .../java/util/regex/CharIndexedInputStream.java | 14 + libjava/classpath/gnu/java/util/regex/RE.java | 34 +- libjava/classpath/gnu/java/util/regex/REMatch.java | 4 +- .../classpath/gnu/java/util/regex/RESyntax.java | 11 +- libjava/classpath/gnu/java/util/regex/REToken.java | 15 + .../classpath/gnu/java/util/regex/RETokenChar.java | 12 +- .../classpath/gnu/java/util/regex/RETokenEnd.java | 15 + .../gnu/java/util/regex/RETokenEndSub.java | 4 + .../gnu/java/util/regex/RETokenNamedProperty.java | 8 + .../gnu/java/util/regex/RETokenOneOf.java | 1 + .../gnu/java/util/regex/RETokenRepeated.java | 199 +- .../classpath/gnu/javax/crypto/RSACipherImpl.java | 67 +- .../gnu/javax/crypto/jce/cipher/CipherAdapter.java | 39 +- .../classpath/gnu/javax/crypto/key/GnuPBEKey.java | 95 + libjava/classpath/gnu/javax/crypto/pad/PKCS7.java | 4 +- libjava/classpath/gnu/javax/management/Server.java | 2200 +++ .../gnu/javax/naming/giop/ContextContinuation.java | 956 ++ .../gnu/javax/naming/giop/CorbalocParser.java | 439 + .../javax/naming/giop/GiopNamingEnumeration.java | 187 + .../naming/giop/GiopNamingServiceFactory.java | 177 + .../naming/giop/GiopNamingServiceURLContext.java | 840 + .../javax/naming/giop/ListBindingsEnumeration.java | 116 + .../gnu/javax/naming/giop/ListEnumeration.java | 116 + .../gnu/javax/naming/ictxImpl/trans/GnuName.java | 467 + .../url/corbaname/corbanameURLContextFactory.java | 53 + .../naming/jndi/url/rmi/ContextContinuation.java | 597 + .../jndi/url/rmi/ListBindingsEnumeration.java | 97 + .../javax/naming/jndi/url/rmi/ListEnumeration.java | 80 + .../javax/naming/jndi/url/rmi/RmiContinuation.java | 594 + .../naming/jndi/url/rmi/RmiNamingEnumeration.java | 130 + .../javax/naming/jndi/url/rmi/rmiURLContext.java | 637 + .../naming/jndi/url/rmi/rmiURLContextFactory.java | 66 + .../gnu/javax/net/ssl/AbstractSessionContext.java | 288 + .../gnu/javax/net/ssl/PreSharedKeyManager.java | 54 + .../net/ssl/PreSharedKeyManagerParameters.java | 83 + .../gnu/javax/net/ssl/PrivateCredentials.java | 16 +- .../gnu/javax/net/ssl/SSLCipherSuite.java | 142 + .../gnu/javax/net/ssl/SSLProtocolVersion.java | 54 + .../gnu/javax/net/ssl/SSLRecordHandler.java | 101 + libjava/classpath/gnu/javax/net/ssl/Session.java | 364 + .../gnu/javax/net/ssl/SessionStoreException.java | 59 + .../javax/net/ssl/provider/AbstractHandshake.java | 1205 ++ .../gnu/javax/net/ssl/provider/Alert.java | 762 +- .../gnu/javax/net/ssl/provider/AlertException.java | 37 +- .../gnu/javax/net/ssl/provider/Builder.java | 66 + .../gnu/javax/net/ssl/provider/Certificate.java | 205 +- .../javax/net/ssl/provider/CertificateBuilder.java | 94 + .../javax/net/ssl/provider/CertificateRequest.java | 440 +- .../ssl/provider/CertificateRequestBuilder.java | 113 + .../net/ssl/provider/CertificateStatusRequest.java | 272 + .../net/ssl/provider/CertificateStatusType.java | 13 + .../javax/net/ssl/provider/CertificateType.java | 56 +- .../gnu/javax/net/ssl/provider/CertificateURL.java | 388 + .../javax/net/ssl/provider/CertificateVerify.java | 54 +- .../javax/net/ssl/provider/CipherAlgorithm.java | 47 + .../gnu/javax/net/ssl/provider/CipherSuite.java | 1591 +- .../javax/net/ssl/provider/CipherSuiteList.java | 283 + .../ssl/provider/ClientCertificateTypeList.java | 227 + .../net/ssl/provider/ClientDHE_PSKParameters.java | 122 + .../ssl/provider/ClientDiffieHellmanPublic.java | 129 + .../javax/net/ssl/provider/ClientHandshake.java | 1150 ++ .../gnu/javax/net/ssl/provider/ClientHello.java | 493 +- .../javax/net/ssl/provider/ClientHelloBuilder.java | 137 + .../gnu/javax/net/ssl/provider/ClientHelloV2.java | 158 + .../javax/net/ssl/provider/ClientKeyExchange.java | 163 +- .../net/ssl/provider/ClientKeyExchangeBuilder.java | 75 + .../net/ssl/provider/ClientPSKParameters.java | 125 + .../net/ssl/provider/ClientRSA_PSKParameters.java | 126 + .../javax/net/ssl/provider/CompressionMethod.java | 51 +- .../net/ssl/provider/CompressionMethodList.java | 281 + .../gnu/javax/net/ssl/provider/Constructed.java | 47 +- .../gnu/javax/net/ssl/provider/ContentType.java | 72 +- .../gnu/javax/net/ssl/provider/Context.java | 334 - .../gnu/javax/net/ssl/provider/Debug.java | 66 + .../gnu/javax/net/ssl/provider/DelegatedTask.java | 93 + .../gnu/javax/net/ssl/provider/DiffieHellman.java | 6 +- .../javax/net/ssl/provider/DigestInputStream.java | 103 - .../javax/net/ssl/provider/DigestOutputStream.java | 107 - .../javax/net/ssl/provider/EmptyExchangeKeys.java | 77 + .../net/ssl/provider/EncryptedPreMasterSecret.java | 151 + .../gnu/javax/net/ssl/provider/Enumerated.java | 79 - .../gnu/javax/net/ssl/provider/ExchangeKeys.java | 54 + .../gnu/javax/net/ssl/provider/Extension.java | 260 +- .../gnu/javax/net/ssl/provider/ExtensionList.java | 290 + .../gnu/javax/net/ssl/provider/Extensions.java | 159 - .../gnu/javax/net/ssl/provider/Finished.java | 146 +- .../net/ssl/provider/GNUSecurityParameters.java | 490 - .../gnu/javax/net/ssl/provider/Handshake.java | 754 +- .../gnu/javax/net/ssl/provider/HelloRequest.java | 70 + .../net/ssl/provider/InputSecurityParameters.java | 336 + .../net/ssl/provider/JCESecurityParameters.java | 307 - .../javax/net/ssl/provider/JDBCSessionContext.java | 356 - .../gnu/javax/net/ssl/provider/Jessie.java | 35 +- .../javax/net/ssl/provider/JessieDHPrivateKey.java | 99 - .../javax/net/ssl/provider/JessieDHPublicKey.java | 99 - .../net/ssl/provider/JessieRSAPrivateKey.java | 98 - .../javax/net/ssl/provider/JessieRSAPublicKey.java | 98 - .../net/ssl/provider/KeyExchangeAlgorithm.java | 57 + .../gnu/javax/net/ssl/provider/KeyPool.java | 110 - .../gnu/javax/net/ssl/provider/MacAlgorithm.java | 47 + .../javax/net/ssl/provider/MaxFragmentLength.java | 59 + .../net/ssl/provider/OutputSecurityParameters.java | 297 + .../javax/net/ssl/provider/OverflowException.java | 57 - .../provider/PreSharedKeyManagerFactoryImpl.java | 118 + .../javax/net/ssl/provider/ProtocolVersion.java | 73 +- .../gnu/javax/net/ssl/provider/Random.java | 112 +- .../gnu/javax/net/ssl/provider/Record.java | 198 + .../gnu/javax/net/ssl/provider/RecordInput.java | 232 - .../javax/net/ssl/provider/RecordInputStream.java | 106 - .../javax/net/ssl/provider/RecordOutputStream.java | 189 - .../net/ssl/provider/RecordingInputStream.java | 131 - .../gnu/javax/net/ssl/provider/SSLContextImpl.java | 315 + .../gnu/javax/net/ssl/provider/SSLEngineImpl.java | 842 + .../javax/net/ssl/provider/SSLRSASignature.java | 235 - .../net/ssl/provider/SSLRSASignatureImpl.java | 233 + .../javax/net/ssl/provider/SSLServerSocket.java | 283 - .../net/ssl/provider/SSLServerSocketFactory.java | 136 - .../ssl/provider/SSLServerSocketFactoryImpl.java | 108 + .../net/ssl/provider/SSLServerSocketImpl.java | 199 + .../gnu/javax/net/ssl/provider/SSLSocket.java | 3515 ---- .../javax/net/ssl/provider/SSLSocketFactory.java | 133 - .../net/ssl/provider/SSLSocketFactoryImpl.java | 137 + .../gnu/javax/net/ssl/provider/SSLSocketImpl.java | 833 + .../net/ssl/provider/SSLSocketInputStream.java | 181 - .../net/ssl/provider/SSLSocketOutputStream.java | 115 - .../javax/net/ssl/provider/SSLv3HMacMD5Impl.java | 116 + .../javax/net/ssl/provider/SSLv3HMacSHAImpl.java | 116 + .../javax/net/ssl/provider/SecurityParameters.java | 178 - .../net/ssl/provider/ServerDHE_PSKParameters.java | 151 + .../gnu/javax/net/ssl/provider/ServerDHParams.java | 248 + .../javax/net/ssl/provider/ServerHandshake.java | 1377 ++ .../gnu/javax/net/ssl/provider/ServerHello.java | 447 +- .../javax/net/ssl/provider/ServerHelloBuilder.java | 131 + .../javax/net/ssl/provider/ServerHelloDone.java | 66 + .../javax/net/ssl/provider/ServerKeyExchange.java | 459 +- .../net/ssl/provider/ServerKeyExchangeBuilder.java | 89 + .../net/ssl/provider/ServerKeyExchangeParams.java | 50 + .../gnu/javax/net/ssl/provider/ServerNameList.java | 311 + .../net/ssl/provider/ServerPSKParameters.java | 127 + .../javax/net/ssl/provider/ServerRSAParams.java | 163 + .../net/ssl/provider/ServerRSA_PSKParameters.java | 62 + .../gnu/javax/net/ssl/provider/Session.java | 381 - .../gnu/javax/net/ssl/provider/SessionContext.java | 250 - .../gnu/javax/net/ssl/provider/SessionImpl.java | 198 + .../gnu/javax/net/ssl/provider/Signature.java | 140 +- .../javax/net/ssl/provider/SignatureAlgorithm.java | 62 + .../net/ssl/provider/SimpleSessionContext.java | 146 + .../javax/net/ssl/provider/SynchronizedRandom.java | 104 - .../gnu/javax/net/ssl/provider/TruncatedHMAC.java | 76 + .../javax/net/ssl/provider/TrustedAuthorities.java | 298 + .../net/ssl/provider/UnresolvedExtensionValue.java | 83 + .../classpath/gnu/javax/net/ssl/provider/Util.java | 109 +- .../javax/net/ssl/provider/X500PrincipalList.java | 272 + .../net/ssl/provider/X509KeyManagerFactory.java | 95 +- .../net/ssl/provider/X509TrustManagerFactory.java | 147 +- .../javax/net/ssl/provider/XMLSessionContext.java | 619 - .../gnu/javax/rmi/CORBA/UtilDelegateImpl.java | 30 +- .../auth/callback/AbstractCallbackHandler.java | 97 +- .../auth/callback/CertificateCallback.java | 64 + .../gnu/javax/swing/text/html/css/BorderStyle.java | 64 + .../gnu/javax/swing/text/html/css/BorderWidth.java | 78 + .../gnu/javax/swing/text/html/css/CSSColor.java | 170 + .../swing/text/html/css/CSSLexicalException.java | 60 + .../gnu/javax/swing/text/html/css/CSSParser.java | 500 + .../swing/text/html/css/CSSParserCallback.java | 81 + .../swing/text/html/css/CSSParserException.java | 62 + .../gnu/javax/swing/text/html/css/CSSScanner.java | 718 + .../gnu/javax/swing/text/html/css/FontSize.java | 273 + .../gnu/javax/swing/text/html/css/FontStyle.java | 80 + .../gnu/javax/swing/text/html/css/FontWeight.java | 84 + .../gnu/javax/swing/text/html/css/Length.java | 283 + .../gnu/javax/swing/text/html/css/Selector.java | 244 + .../swing/text/html/parser/GnuParserDelegator.java | 3 +- .../javax/swing/text/html/parser/HTML_401F.java | 4 +- .../swing/text/html/parser/HTML_401Swing.java | 91 - .../swing/text/html/parser/htmlValidator.java | 5 +- .../swing/text/html/parser/support/Parser.java | 70 +- .../text/html/parser/support/low/Constants.java | 11 + .../text/html/parser/support/textPreProcessor.java | 38 +- libjava/classpath/gnu/test/.cvsignore | 1 + libjava/classpath/gnu/xml/dom/DomAttr.java | 2 +- libjava/classpath/gnu/xml/dom/DomNode.java | 3 +- libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java | 8 +- libjava/classpath/gnu/xml/stream/SAXParser.java | 15 +- .../gnu/xml/stream/XMLStreamWriterImpl.java | 6 +- .../gnu/xml/transform/SAXTemplatesHandler.java | 97 + .../gnu/xml/transform/SAXTransformerHandler.java | 111 + .../gnu/xml/transform/StreamSerializer.java | 3 +- .../gnu/xml/transform/TransformerFactoryImpl.java | 52 +- .../gnu/xml/transform/XSLURIResolver.java | 21 +- libjava/classpath/gnu/xml/xpath/Expr.java | 35 + libjava/classpath/include/.cvsignore | 9 + .../classpath/include/GtkDragSourceContextPeer.h | 2 +- libjava/classpath/include/Makefile.am | 20 +- libjava/classpath/include/Makefile.in | 31 +- libjava/classpath/include/config.h.in | 84 + .../gnu_java_awt_peer_gtk_CairoGraphics2D.h | 18 +- .../include/gnu_java_awt_peer_gtk_CairoSurface.h | 2 +- .../include/gnu_java_awt_peer_gtk_GdkFontPeer.h | 16 + .../include/gnu_java_awt_peer_gtk_GtkChoicePeer.h | 6 +- .../include/gnu_java_awt_peer_gtk_GtkFramePeer.h | 4 + .../include/gnu_java_awt_peer_gtk_GtkToolkit.h | 3 +- .../gnu_java_net_VMPlainDatagramSocketImpl.h | 30 - .../include/gnu_java_net_VMPlainSocketImpl.h | 70 +- .../include/gnu_java_nio_EpollSelectorImpl.h | 37 + .../include/gnu_java_nio_FileChannelImpl.h | 30 + .../include/gnu_java_nio_KqueueSelectorImpl.h | 39 + libjava/classpath/include/gnu_java_nio_VMChannel.h | 34 +- libjava/classpath/include/gnu_java_nio_VMPipe.h | 2 +- .../gnu_java_nio_channels_FileChannelImpl.h | 46 - .../gnu_java_util_prefs_gconf_GConfNativePeer.h | 6 +- libjava/classpath/include/java_net_VMInetAddress.h | 1 + .../include/java_net_VMNetworkInterface.h | 3 +- libjava/classpath/java/applet/AppletContext.java | 8 +- libjava/classpath/java/awt/AWTEvent.java | 5 + .../classpath/java/awt/AWTEventMulticaster.java | 7 +- libjava/classpath/java/awt/AWTKeyStroke.java | 18 +- libjava/classpath/java/awt/BasicStroke.java | 164 +- libjava/classpath/java/awt/Button.java | 6 +- libjava/classpath/java/awt/CardLayout.java | 25 +- libjava/classpath/java/awt/CheckboxMenuItem.java | 4 +- libjava/classpath/java/awt/Choice.java | 27 +- libjava/classpath/java/awt/Color.java | 33 +- libjava/classpath/java/awt/Component.java | 824 +- libjava/classpath/java/awt/Container.java | 346 +- libjava/classpath/java/awt/Dialog.java | 21 + libjava/classpath/java/awt/EventQueue.java | 394 +- libjava/classpath/java/awt/FileDialog.java | 28 +- libjava/classpath/java/awt/FlowLayout.java | 5 +- libjava/classpath/java/awt/Font.java | 34 +- libjava/classpath/java/awt/Frame.java | 36 +- libjava/classpath/java/awt/Graphics2D.java | 6 +- libjava/classpath/java/awt/GridBagLayout.java | 34 +- libjava/classpath/java/awt/GridLayout.java | 2 +- .../classpath/java/awt/KeyboardFocusManager.java | 16 +- .../classpath/java/awt/LightweightDispatcher.java | 384 +- libjava/classpath/java/awt/List.java | 2511 ++- libjava/classpath/java/awt/Menu.java | 953 +- libjava/classpath/java/awt/MenuBar.java | 2 +- libjava/classpath/java/awt/MenuItem.java | 6 +- libjava/classpath/java/awt/MenuShortcut.java | 233 +- libjava/classpath/java/awt/Rectangle.java | 22 +- libjava/classpath/java/awt/RenderingHints.java | 13 +- libjava/classpath/java/awt/ScrollPane.java | 62 +- .../classpath/java/awt/ScrollPaneAdjustable.java | 47 +- libjava/classpath/java/awt/Scrollbar.java | 72 +- libjava/classpath/java/awt/TextArea.java | 68 +- libjava/classpath/java/awt/TextComponent.java | 6 +- libjava/classpath/java/awt/TextField.java | 14 +- libjava/classpath/java/awt/Toolkit.java | 39 +- libjava/classpath/java/awt/Window.java | 216 +- .../java/awt/datatransfer/DataFlavor.java | 291 +- .../classpath/java/awt/datatransfer/FlavorMap.java | 4 +- .../java/awt/datatransfer/FlavorTable.java | 4 +- .../classpath/java/awt/datatransfer/MimeType.java | 281 + .../java/awt/datatransfer/SystemFlavorMap.java | 12 +- .../classpath/java/awt/dnd/DragGestureEvent.java | 14 +- .../java/awt/dnd/DragGestureRecognizer.java | 16 +- libjava/classpath/java/awt/dnd/DragSource.java | 36 +- .../classpath/java/awt/dnd/DragSourceContext.java | 46 +- libjava/classpath/java/awt/dnd/DropTarget.java | 143 +- .../classpath/java/awt/dnd/DropTargetContext.java | 23 +- .../java/awt/dnd/DropTargetDragEvent.java | 5 +- .../java/awt/dnd/DropTargetDropEvent.java | 4 +- .../classpath/java/awt/dnd/DropTargetEvent.java | 4 + .../classpath/java/awt/event/ComponentEvent.java | 39 +- .../classpath/java/awt/font/FontRenderContext.java | 8 +- libjava/classpath/java/awt/font/TextHitInfo.java | 5 +- libjava/classpath/java/awt/font/TextLayout.java | 1015 +- .../classpath/java/awt/geom/AffineTransform.java | 16 +- libjava/classpath/java/awt/geom/Arc2D.java | 44 +- libjava/classpath/java/awt/geom/GeneralPath.java | 39 +- .../classpath/java/awt/geom/RectangularShape.java | 5 +- .../classpath/java/awt/geom/RoundRectangle2D.java | 415 +- libjava/classpath/java/awt/im/InputContext.java | 12 +- .../java/awt/im/InputMethodHighlight.java | 7 +- .../java/awt/im/spi/InputMethodContext.java | 3 +- .../java/awt/image/AffineTransformOp.java | 513 +- .../classpath/java/awt/image/BandCombineOp.java | 128 +- .../classpath/java/awt/image/BufferedImage.java | 361 +- .../classpath/java/awt/image/ColorConvertOp.java | 443 +- libjava/classpath/java/awt/image/ColorModel.java | 40 +- .../java/awt/image/ComponentColorModel.java | 31 +- libjava/classpath/java/awt/image/ConvolveOp.java | 131 +- .../classpath/java/awt/image/CropImageFilter.java | 9 +- .../classpath/java/awt/image/DirectColorModel.java | 16 +- .../classpath/java/awt/image/ImageConsumer.java | 2 +- libjava/classpath/java/awt/image/ImageFilter.java | 454 +- .../classpath/java/awt/image/IndexColorModel.java | 62 +- libjava/classpath/java/awt/image/LookupOp.java | 141 +- .../java/awt/image/MemoryImageSource.java | 76 +- libjava/classpath/java/awt/image/PixelGrabber.java | 4 +- .../classpath/java/awt/image/RGBImageFilter.java | 538 +- libjava/classpath/java/awt/image/Raster.java | 7 +- .../classpath/java/awt/image/RenderedImage.java | 2 +- .../java/awt/image/ReplicateScaleFilter.java | 153 +- libjava/classpath/java/awt/image/RescaleOp.java | 293 +- libjava/classpath/java/awt/image/SampleModel.java | 29 +- .../awt/image/SinglePixelPackedSampleModel.java | 121 +- .../classpath/java/awt/image/WritableRaster.java | 24 +- .../java/awt/image/renderable/ParameterBlock.java | 24 +- .../java/awt/image/renderable/RenderableImage.java | 2 +- .../awt/image/renderable/RenderableImageOp.java | 2 +- libjava/classpath/java/beans/BeanDescriptor.java | 12 +- libjava/classpath/java/beans/Beans.java | 4 +- .../java/beans/DefaultPersistenceDelegate.java | 4 +- libjava/classpath/java/beans/DesignMode.java | 84 +- libjava/classpath/java/beans/Encoder.java | 5 +- libjava/classpath/java/beans/EventHandler.java | 18 +- .../classpath/java/beans/EventSetDescriptor.java | 20 +- .../classpath/java/beans/FeatureDescriptor.java | 6 +- .../java/beans/IndexedPropertyDescriptor.java | 8 +- libjava/classpath/java/beans/Introspector.java | 13 +- .../classpath/java/beans/PersistenceDelegate.java | 4 +- .../classpath/java/beans/PropertyDescriptor.java | 18 +- .../java/beans/PropertyEditorManager.java | 7 +- libjava/classpath/java/beans/SimpleBeanInfo.java | 15 +- libjava/classpath/java/beans/Statement.java | 22 +- .../beancontext/BeanContextServicesSupport.java | 616 +- .../java/beans/beancontext/BeanContextSupport.java | 408 +- libjava/classpath/java/io/CharArrayWriter.java | 6 +- libjava/classpath/java/io/DeleteFileHelper.java | 13 +- libjava/classpath/java/io/File.java | 107 +- libjava/classpath/java/io/FileDescriptor.java | 7 +- libjava/classpath/java/io/FileInputStream.java | 20 +- libjava/classpath/java/io/FileOutputStream.java | 26 +- libjava/classpath/java/io/InputStreamReader.java | 62 +- libjava/classpath/java/io/ObjectInputStream.java | 136 +- libjava/classpath/java/io/ObjectOutputStream.java | 365 +- libjava/classpath/java/io/ObjectStreamClass.java | 463 +- libjava/classpath/java/io/ObjectStreamField.java | 47 +- libjava/classpath/java/io/OutputStreamWriter.java | 6 + libjava/classpath/java/io/PipedInputStream.java | 4 + libjava/classpath/java/io/PipedReader.java | 4 + libjava/classpath/java/io/PrintStream.java | 56 +- libjava/classpath/java/io/PrintWriter.java | 52 +- libjava/classpath/java/io/RandomAccessFile.java | 19 +- libjava/classpath/java/io/Reader.java | 19 +- libjava/classpath/java/io/SequenceInputStream.java | 26 +- libjava/classpath/java/io/StringWriter.java | 21 + libjava/classpath/java/io/Writer.java | 23 +- libjava/classpath/java/io/class-dependencies.conf | 100 + libjava/classpath/java/lang/Boolean.java | 16 +- libjava/classpath/java/lang/Byte.java | 34 +- libjava/classpath/java/lang/Character.java | 246 +- libjava/classpath/java/lang/Class.java | 136 +- libjava/classpath/java/lang/ClassLoader.java | 71 +- libjava/classpath/java/lang/Comparable.java | 8 +- libjava/classpath/java/lang/Compiler.java | 2 +- libjava/classpath/java/lang/Deprecated.java | 56 + libjava/classpath/java/lang/Double.java | 27 +- libjava/classpath/java/lang/Enum.java | 43 +- .../java/lang/EnumConstantNotPresentException.java | 7 +- libjava/classpath/java/lang/Float.java | 27 +- .../java/lang/InheritableThreadLocal.java | 19 +- libjava/classpath/java/lang/Integer.java | 23 +- libjava/classpath/java/lang/Iterable.java | 4 +- libjava/classpath/java/lang/Long.java | 25 +- libjava/classpath/java/lang/Object.java | 2 +- libjava/classpath/java/lang/Override.java | 56 + libjava/classpath/java/lang/Package.java | 14 +- libjava/classpath/java/lang/ProcessBuilder.java | 337 + libjava/classpath/java/lang/SecurityManager.java | 6 +- libjava/classpath/java/lang/Short.java | 33 +- libjava/classpath/java/lang/StrictMath.java | 226 +- libjava/classpath/java/lang/String.java | 48 +- libjava/classpath/java/lang/StringBuffer.java | 120 +- libjava/classpath/java/lang/StringBuilder.java | 3 +- libjava/classpath/java/lang/SuppressWarnings.java | 69 + libjava/classpath/java/lang/System.java | 488 +- libjava/classpath/java/lang/Thread.java | 93 +- libjava/classpath/java/lang/ThreadLocal.java | 24 +- libjava/classpath/java/lang/Void.java | 6 +- .../classpath/java/lang/annotation/Annotation.java | 3 +- .../classpath/java/lang/annotation/Documented.java | 50 + .../java/lang/annotation/ElementType.java | 59 + .../annotation/IncompleteAnnotationException.java | 7 +- .../classpath/java/lang/annotation/Inherited.java | 51 + .../classpath/java/lang/annotation/Retention.java | 59 + .../java/lang/annotation/RetentionPolicy.java | 66 + libjava/classpath/java/lang/annotation/Target.java | 52 + .../classpath/java/lang/class-dependencies.conf | 58 + .../java/lang/instrument/ClassDefinition.java | 6 +- .../java/lang/instrument/ClassFileTransformer.java | 3 +- .../java/lang/management/ManagementFactory.java | 233 +- .../java/lang/management/MemoryPoolMXBean.java | 2 +- .../classpath/java/lang/management/MemoryType.java | 51 + .../java/lang/management/RuntimeMXBean.java | 4 +- .../classpath/java/lang/management/ThreadInfo.java | 26 +- .../classpath/java/lang/ref/PhantomReference.java | 10 +- libjava/classpath/java/lang/ref/Reference.java | 23 +- .../classpath/java/lang/ref/ReferenceQueue.java | 65 +- libjava/classpath/java/lang/ref/SoftReference.java | 12 +- libjava/classpath/java/lang/ref/WeakReference.java | 10 +- .../java/lang/reflect/AccessibleObject.java | 6 +- .../java/lang/reflect/AnnotatedElement.java | 6 +- libjava/classpath/java/lang/reflect/Array.java | 4 +- .../java/lang/reflect/GenericDeclaration.java | 3 +- libjava/classpath/java/lang/reflect/Proxy.java | 10 +- .../classpath/java/lang/reflect/TypeVariable.java | 7 +- libjava/classpath/java/math/BigDecimal.java | 67 +- libjava/classpath/java/math/BigInteger.java | 78 +- libjava/classpath/java/math/MathContext.java | 64 +- libjava/classpath/java/math/RoundingMode.java | 89 + .../classpath/java/math/class-dependencies.conf | 58 + libjava/classpath/java/net/DatagramSocket.java | 43 +- libjava/classpath/java/net/Inet6Address.java | 2 +- libjava/classpath/java/net/InetAddress.java | 8 +- libjava/classpath/java/net/MulticastSocket.java | 46 +- libjava/classpath/java/net/NetworkInterface.java | 172 +- libjava/classpath/java/net/Proxy.java | 137 + libjava/classpath/java/net/ProxySelector.java | 117 + libjava/classpath/java/net/ServerSocket.java | 109 +- libjava/classpath/java/net/Socket.java | 118 +- libjava/classpath/java/net/URI.java | 10 +- libjava/classpath/java/net/URL.java | 32 +- libjava/classpath/java/net/URLClassLoader.java | 6 +- libjava/classpath/java/net/URLConnection.java | 66 +- libjava/classpath/java/net/class-dependencies.conf | 122 + libjava/classpath/java/nio/ByteBuffer.java | 10 +- libjava/classpath/java/nio/CharBuffer.java | 45 +- .../classpath/java/nio/DirectByteBufferImpl.java | 2 +- libjava/classpath/java/nio/DoubleBuffer.java | 10 +- libjava/classpath/java/nio/FloatBuffer.java | 10 +- libjava/classpath/java/nio/IntBuffer.java | 10 +- libjava/classpath/java/nio/LongBuffer.java | 10 +- libjava/classpath/java/nio/ShortBuffer.java | 10 +- libjava/classpath/java/nio/channels/Channel.java | 5 +- libjava/classpath/java/nio/channels/Selector.java | 4 +- .../channels/spi/AbstractSelectableChannel.java | 15 +- .../java/nio/channels/spi/AbstractSelector.java | 8 +- libjava/classpath/java/nio/charset/Charset.java | 23 +- .../java/nio/charset/spi/CharsetProvider.java | 4 +- libjava/classpath/java/nio/class-dependencies.conf | 58 + .../classpath/java/rmi/server/LoaderHandler.java | 5 +- .../classpath/java/rmi/server/RMIClassLoader.java | 17 +- .../java/rmi/server/RMIClassLoaderSpi.java | 10 +- .../java/security/AccessControlContext.java | 22 +- .../classpath/java/security/AccessController.java | 12 +- .../java/security/AlgorithmParameterGenerator.java | 100 +- .../java/security/AlgorithmParameters.java | 125 +- .../java/security/AlgorithmParametersSpi.java | 4 +- libjava/classpath/java/security/IdentityScope.java | 2 +- libjava/classpath/java/security/KeyFactory.java | 101 +- libjava/classpath/java/security/KeyFactorySpi.java | 7 +- .../classpath/java/security/KeyPairGenerator.java | 91 +- libjava/classpath/java/security/KeyStore.java | 134 +- libjava/classpath/java/security/KeyStoreSpi.java | 2 +- libjava/classpath/java/security/MessageDigest.java | 121 +- .../classpath/java/security/MessageDigestSpi.java | 19 + .../java/security/PermissionCollection.java | 4 +- libjava/classpath/java/security/Permissions.java | 2 +- .../classpath/java/security/PrivilegedAction.java | 6 +- .../java/security/PrivilegedExceptionAction.java | 6 +- .../classpath/java/security/SecureClassLoader.java | 55 +- libjava/classpath/java/security/SecureRandom.java | 126 +- libjava/classpath/java/security/Security.java | 12 +- libjava/classpath/java/security/Signature.java | 122 +- libjava/classpath/java/security/SignatureSpi.java | 19 + libjava/classpath/java/security/acl/Acl.java | 4 +- libjava/classpath/java/security/acl/AclEntry.java | 6 +- libjava/classpath/java/security/acl/Group.java | 4 +- libjava/classpath/java/security/cert/CertPath.java | 4 +- .../java/security/cert/CertPathBuilder.java | 113 +- .../java/security/cert/CertPathValidator.java | 103 +- .../classpath/java/security/cert/CertStore.java | 121 +- .../classpath/java/security/cert/CertStoreSpi.java | 6 +- .../java/security/cert/CertificateFactory.java | 136 +- .../java/security/cert/CertificateFactorySpi.java | 10 +- .../cert/CollectionCertStoreParameters.java | 5 +- .../java/security/cert/PKIXBuilderParameters.java | 4 +- .../java/security/cert/PKIXCertPathChecker.java | 5 +- .../java/security/cert/PKIXParameters.java | 19 +- .../classpath/java/security/cert/PolicyNode.java | 12 +- .../java/security/cert/PolicyQualifierInfo.java | 5 +- libjava/classpath/java/security/cert/X509CRL.java | 4 +- .../java/security/cert/X509CRLSelector.java | 5 +- .../java/security/cert/X509CertSelector.java | 17 +- .../java/security/cert/X509Certificate.java | 9 +- .../java/security/cert/X509Extension.java | 6 +- libjava/classpath/java/sql/Array.java | 13 +- libjava/classpath/java/sql/CallableStatement.java | 4 +- libjava/classpath/java/sql/Connection.java | 4 +- libjava/classpath/java/sql/DriverManager.java | 2 +- libjava/classpath/java/sql/Ref.java | 2 +- libjava/classpath/java/sql/ResultSet.java | 6 +- libjava/classpath/java/sql/Struct.java | 2 +- libjava/classpath/java/sql/Timestamp.java | 4 +- .../java/text/AttributedCharacterIterator.java | 29 +- libjava/classpath/java/text/AttributedString.java | 81 +- .../java/text/AttributedStringIterator.java | 27 +- libjava/classpath/java/text/Bidi.java | 3 +- libjava/classpath/java/text/CollationKey.java | 17 +- libjava/classpath/java/text/Collator.java | 2 +- libjava/classpath/java/text/DecimalFormat.java | 3677 ++-- .../classpath/java/text/DecimalFormatSymbols.java | 4 +- libjava/classpath/java/text/MessageFormat.java | 2 +- libjava/classpath/java/text/NumberFormat.java | 21 +- libjava/classpath/java/text/SimpleDateFormat.java | 20 +- libjava/classpath/java/util/.cvsignore | 1 + .../classpath/java/util/AbstractCollection.java | 48 +- libjava/classpath/java/util/AbstractList.java | 466 +- libjava/classpath/java/util/AbstractMap.java | 211 +- .../java/util/AbstractSequentialList.java | 30 +- libjava/classpath/java/util/AbstractSet.java | 33 +- libjava/classpath/java/util/ArrayList.java | 55 +- libjava/classpath/java/util/Arrays.java | 41 +- libjava/classpath/java/util/BitSet.java | 11 + libjava/classpath/java/util/Calendar.java | 61 +- libjava/classpath/java/util/Collection.java | 22 +- libjava/classpath/java/util/Collections.java | 2685 ++- libjava/classpath/java/util/Comparator.java | 6 +- libjava/classpath/java/util/Date.java | 20 +- libjava/classpath/java/util/Dictionary.java | 14 +- libjava/classpath/java/util/EnumMap.java | 394 + libjava/classpath/java/util/EnumSet.java | 365 + libjava/classpath/java/util/Enumeration.java | 7 +- libjava/classpath/java/util/Formatter.java | 222 +- libjava/classpath/java/util/GregorianCalendar.java | 3 +- libjava/classpath/java/util/HashMap.java | 138 +- libjava/classpath/java/util/HashSet.java | 22 +- libjava/classpath/java/util/Hashtable.java | 349 +- libjava/classpath/java/util/IdentityHashMap.java | 288 +- .../util/IllegalFormatConversionException.java | 6 +- libjava/classpath/java/util/Iterator.java | 6 +- libjava/classpath/java/util/LinkedHashMap.java | 26 +- libjava/classpath/java/util/LinkedHashSet.java | 13 +- libjava/classpath/java/util/LinkedList.java | 191 +- libjava/classpath/java/util/List.java | 34 +- libjava/classpath/java/util/ListIterator.java | 12 +- .../classpath/java/util/ListResourceBundle.java | 8 +- libjava/classpath/java/util/Locale.java | 24 +- libjava/classpath/java/util/Map.java | 24 +- libjava/classpath/java/util/PriorityQueue.java | 335 + libjava/classpath/java/util/Properties.java | 5 +- .../java/util/PropertyResourceBundle.java | 10 +- libjava/classpath/java/util/ResourceBundle.java | 136 +- libjava/classpath/java/util/Set.java | 19 +- libjava/classpath/java/util/SortedMap.java | 16 +- libjava/classpath/java/util/SortedSet.java | 16 +- libjava/classpath/java/util/Stack.java | 13 +- libjava/classpath/java/util/StringTokenizer.java | 2 +- libjava/classpath/java/util/Timer.java | 86 +- libjava/classpath/java/util/TreeMap.java | 234 +- libjava/classpath/java/util/TreeSet.java | 73 +- libjava/classpath/java/util/UUID.java | 13 +- libjava/classpath/java/util/Vector.java | 84 +- libjava/classpath/java/util/WeakHashMap.java | 54 +- .../classpath/java/util/class-dependencies.conf | 78 + .../java/util/concurrent/CopyOnWriteArrayList.java | 490 + libjava/classpath/java/util/jar/Attributes.java | 14 +- libjava/classpath/java/util/jar/JarEntry.java | 29 +- libjava/classpath/java/util/jar/JarFile.java | 212 +- libjava/classpath/java/util/jar/Manifest.java | 10 +- .../classpath/java/util/logging/LogManager.java | 69 +- .../classpath/java/util/logging/LoggingMXBean.java | 2 +- libjava/classpath/java/util/prefs/Preferences.java | 4 +- libjava/classpath/java/util/regex/Matcher.java | 27 +- libjava/classpath/java/util/zip/Deflater.java | 24 +- .../classpath/java/util/zip/DeflaterEngine.java | 6 +- libjava/classpath/java/util/zip/Inflater.java | 26 +- libjava/classpath/java/util/zip/ZipFile.java | 137 +- .../javax/accessibility/AccessibleRelationSet.java | 3 +- .../javax/accessibility/AccessibleStateSet.java | 2 +- libjava/classpath/javax/crypto/Cipher.java | 199 +- .../classpath/javax/crypto/CipherOutputStream.java | 180 +- .../classpath/javax/crypto/ExemptionMechanism.java | 117 +- libjava/classpath/javax/crypto/KeyAgreement.java | 116 +- libjava/classpath/javax/crypto/KeyGenerator.java | 114 +- libjava/classpath/javax/crypto/Mac.java | 131 +- libjava/classpath/javax/crypto/MacSpi.java | 18 + .../classpath/javax/crypto/SecretKeyFactory.java | 108 +- libjava/classpath/javax/imageio/IIOImage.java | 13 +- libjava/classpath/javax/imageio/ImageIO.java | 128 +- libjava/classpath/javax/imageio/ImageReader.java | 18 +- libjava/classpath/javax/imageio/ImageWriter.java | 11 +- .../javax/imageio/metadata/IIOMetadataFormat.java | 6 +- .../imageio/metadata/IIOMetadataFormatImpl.java | 33 +- .../classpath/javax/imageio/spi/IIORegistry.java | 3 - .../javax/imageio/spi/IIOServiceProvider.java | 4 +- .../javax/imageio/spi/ImageInputStreamSpi.java | 6 +- .../javax/imageio/spi/ImageOutputStreamSpi.java | 6 +- .../javax/imageio/spi/RegisterableService.java | 4 +- .../javax/imageio/spi/ServiceRegistry.java | 47 +- .../management/BadAttributeValueExpException.java | 91 + .../management/BadBinaryOpValueExpException.java | 102 + .../management/BadStringOperationException.java | 92 + .../management/InstanceAlreadyExistsException.java | 76 + .../management/InstanceNotFoundException.java | 76 + .../management/InvalidApplicationException.java | 92 + .../javax/management/MBeanAttributeInfo.java | 13 +- .../javax/management/MBeanConstructorInfo.java | 25 +- .../javax/management/MBeanFeatureInfo.java | 2 +- libjava/classpath/javax/management/MBeanInfo.java | 23 +- .../javax/management/MBeanOperationInfo.java | 29 +- .../javax/management/MBeanPermission.java | 562 + .../javax/management/MBeanRegistration.java | 95 + .../management/MBeanRegistrationException.java | 84 + .../classpath/javax/management/MBeanServer.java | 1199 ++ .../javax/management/MBeanServerBuilder.java | 102 + .../javax/management/MBeanServerConnection.java | 768 + .../javax/management/MBeanServerDelegate.java | 308 + .../javax/management/MBeanServerDelegateMBean.java | 101 + .../javax/management/MBeanServerFactory.java | 413 + .../javax/management/MBeanServerNotification.java | 103 + .../javax/management/MBeanServerPermission.java | 470 + .../javax/management/MBeanTrustPermission.java | 105 + .../management/MalformedObjectNameException.java | 76 + .../classpath/javax/management/ObjectInstance.java | 147 + libjava/classpath/javax/management/ObjectName.java | 775 + libjava/classpath/javax/management/QueryExp.java | 87 + .../javax/management/RuntimeErrorException.java | 115 + .../javax/management/RuntimeMBeanException.java | 114 + .../javax/management/ServiceNotFoundException.java | 75 + .../classpath/javax/management/StandardMBean.java | 32 +- libjava/classpath/javax/management/ValueExp.java | 86 + .../management/loading/ClassLoaderRepository.java | 139 + .../openmbean/InvalidOpenTypeException.java | 76 + .../openmbean/KeyAlreadyExistsException.java | 77 + .../openmbean/OpenMBeanAttributeInfo.java | 120 + .../openmbean/OpenMBeanAttributeInfoSupport.java | 546 + .../openmbean/OpenMBeanConstructorInfo.java | 112 + .../openmbean/OpenMBeanConstructorInfoSupport.java | 174 + .../javax/management/openmbean/OpenMBeanInfo.java | 154 + .../management/openmbean/OpenMBeanInfoSupport.java | 191 + .../openmbean/OpenMBeanOperationInfo.java | 154 + .../openmbean/OpenMBeanOperationInfoSupport.java | 240 + .../openmbean/OpenMBeanParameterInfo.java | 190 + .../openmbean/OpenMBeanParameterInfoSupport.java | 511 + .../javax/management/openmbean/OpenType.java | 6 +- .../javax/management/openmbean/SimpleType.java | 2 +- .../javax/management/openmbean/TabularData.java | 45 +- .../management/openmbean/TabularDataSupport.java | 652 + .../javax/naming/CannotProceedException.java | 6 +- libjava/classpath/javax/naming/CompositeName.java | 4 +- libjava/classpath/javax/naming/CompoundName.java | 4 +- libjava/classpath/javax/naming/Context.java | 10 +- libjava/classpath/javax/naming/InitialContext.java | 20 +- libjava/classpath/javax/naming/Name.java | 18 +- .../classpath/javax/naming/NamingEnumeration.java | 4 +- libjava/classpath/javax/naming/Reference.java | 4 +- .../classpath/javax/naming/ReferralException.java | 2 +- .../javax/naming/directory/Attribute.java | 2 +- .../javax/naming/directory/Attributes.java | 4 +- .../javax/naming/directory/BasicAttribute.java | 4 +- .../javax/naming/directory/BasicAttributes.java | 4 +- .../javax/naming/directory/DirContext.java | 36 +- .../javax/naming/directory/InitialDirContext.java | 37 +- .../javax/naming/ldap/ControlFactory.java | 2 +- .../javax/naming/ldap/InitialLdapContext.java | 12 +- .../javax/naming/ldap/LdapReferralException.java | 5 +- .../javax/naming/spi/DirObjectFactory.java | 2 +- .../javax/naming/spi/DirStateFactory.java | 2 +- .../javax/naming/spi/DirectoryManager.java | 4 +- .../javax/naming/spi/InitialContextFactory.java | 3 +- .../naming/spi/InitialContextFactoryBuilder.java | 10 +- .../classpath/javax/naming/spi/NamingManager.java | 87 +- .../classpath/javax/naming/spi/ObjectFactory.java | 5 +- .../javax/naming/spi/ObjectFactoryBuilder.java | 4 +- libjava/classpath/javax/naming/spi/Resolver.java | 41 +- .../classpath/javax/naming/spi/StateFactory.java | 2 +- .../net/ssl/CertPathTrustManagerParameters.java | 71 + .../javax/net/ssl/HandshakeCompletedEvent.java | 31 + .../javax/net/ssl/HttpsURLConnection.java | 45 + .../classpath/javax/net/ssl/KeyManagerFactory.java | 106 +- .../javax/net/ssl/KeyStoreBuilderParameters.java | 48 + libjava/classpath/javax/net/ssl/SSLContext.java | 148 +- libjava/classpath/javax/net/ssl/SSLContextSpi.java | 22 + libjava/classpath/javax/net/ssl/SSLEngine.java | 442 + .../classpath/javax/net/ssl/SSLEngineResult.java | 194 + libjava/classpath/javax/net/ssl/SSLSession.java | 67 + .../classpath/javax/net/ssl/SSLSocketFactory.java | 2 +- .../javax/net/ssl/TrustManagerFactory.java | 103 +- .../javax/net/ssl/X509ExtendedKeyManager.java | 96 + libjava/classpath/javax/print/PrintService.java | 14 +- .../classpath/javax/print/attribute/Attribute.java | 2 +- .../javax/print/attribute/AttributeSet.java | 6 +- .../print/attribute/AttributeSetUtilities.java | 8 +- .../javax/print/attribute/HashAttributeSet.java | 14 +- .../print/attribute/standard/Chromaticity.java | 3 +- .../print/attribute/standard/ColorSupported.java | 3 +- .../print/attribute/standard/Compression.java | 3 +- .../javax/print/attribute/standard/Copies.java | 3 +- .../print/attribute/standard/CopiesSupported.java | 3 +- .../attribute/standard/DateTimeAtCompleted.java | 3 +- .../attribute/standard/DateTimeAtCreation.java | 3 +- .../attribute/standard/DateTimeAtProcessing.java | 3 +- .../print/attribute/standard/Destination.java | 3 +- .../print/attribute/standard/DocumentName.java | 3 +- .../javax/print/attribute/standard/Fidelity.java | 3 +- .../javax/print/attribute/standard/Finishings.java | 3 +- .../print/attribute/standard/JobHoldUntil.java | 3 +- .../print/attribute/standard/JobImpressions.java | 3 +- .../standard/JobImpressionsCompleted.java | 3 +- .../standard/JobImpressionsSupported.java | 3 +- .../javax/print/attribute/standard/JobKOctets.java | 3 +- .../attribute/standard/JobKOctetsProcessed.java | 3 +- .../attribute/standard/JobKOctetsSupported.java | 3 +- .../print/attribute/standard/JobMediaSheets.java | 3 +- .../standard/JobMediaSheetsCompleted.java | 3 +- .../standard/JobMediaSheetsSupported.java | 3 +- .../attribute/standard/JobMessageFromOperator.java | 3 +- .../javax/print/attribute/standard/JobName.java | 3 +- .../attribute/standard/JobOriginatingUserName.java | 3 +- .../print/attribute/standard/JobPriority.java | 3 +- .../attribute/standard/JobPrioritySupported.java | 3 +- .../javax/print/attribute/standard/JobSheets.java | 3 +- .../javax/print/attribute/standard/JobState.java | 3 +- .../print/attribute/standard/JobStateReason.java | 2 +- .../print/attribute/standard/JobStateReasons.java | 16 +- .../javax/print/attribute/standard/Media.java | 3 +- .../attribute/standard/MediaPrintableArea.java | 3 +- .../javax/print/attribute/standard/MediaSize.java | 15 +- .../standard/MultipleDocumentHandling.java | 3 +- .../attribute/standard/NumberOfDocuments.java | 3 +- .../standard/NumberOfInterveningJobs.java | 3 +- .../javax/print/attribute/standard/NumberUp.java | 3 +- .../attribute/standard/NumberUpSupported.java | 3 +- .../attribute/standard/OrientationRequested.java | 3 +- .../attribute/standard/OutputDeviceAssigned.java | 3 +- .../attribute/standard/PDLOverrideSupported.java | 3 +- .../javax/print/attribute/standard/PageRanges.java | 3 +- .../print/attribute/standard/PagesPerMinute.java | 3 +- .../attribute/standard/PagesPerMinuteColor.java | 3 +- .../attribute/standard/PresentationDirection.java | 3 +- .../print/attribute/standard/PrintQuality.java | 3 +- .../print/attribute/standard/PrinterInfo.java | 3 +- .../attribute/standard/PrinterIsAcceptingJobs.java | 3 +- .../print/attribute/standard/PrinterLocation.java | 3 +- .../attribute/standard/PrinterMakeAndModel.java | 3 +- .../standard/PrinterMessageFromOperator.java | 3 +- .../print/attribute/standard/PrinterMoreInfo.java | 3 +- .../standard/PrinterMoreInfoManufacturer.java | 3 +- .../print/attribute/standard/PrinterName.java | 3 +- .../attribute/standard/PrinterResolution.java | 3 +- .../print/attribute/standard/PrinterState.java | 3 +- .../attribute/standard/PrinterStateReason.java | 2 +- .../attribute/standard/PrinterStateReasons.java | 16 +- .../javax/print/attribute/standard/PrinterURI.java | 3 +- .../print/attribute/standard/QueuedJobCount.java | 3 +- .../standard/ReferenceUriSchemesSupported.java | 2 +- .../attribute/standard/RequestingUserName.java | 3 +- .../javax/print/attribute/standard/Severity.java | 2 +- .../print/attribute/standard/SheetCollate.java | 3 +- .../javax/print/attribute/standard/Sides.java | 3 +- libjava/classpath/javax/rmi/CORBA/Tie.java | 6 +- libjava/classpath/javax/security/auth/Subject.java | 17 +- .../security/auth/login/AppConfigurationEntry.java | 4 +- .../javax/security/auth/spi/LoginModule.java | 2 +- libjava/classpath/javax/security/sasl/Sasl.java | 10 +- .../javax/security/sasl/SaslClientFactory.java | 6 +- .../javax/security/sasl/SaslServerFactory.java | 5 +- libjava/classpath/javax/sound/midi/Instrument.java | 2 +- libjava/classpath/javax/sound/midi/Sequence.java | 10 +- .../javax/sound/midi/SoundbankResource.java | 4 +- .../javax/sound/sampled/AudioFileFormat.java | 4 +- .../classpath/javax/sound/sampled/AudioFormat.java | 4 +- .../classpath/javax/sound/sampled/DataLine.java | 6 +- libjava/classpath/javax/sound/sampled/Line.java | 4 +- libjava/classpath/javax/sound/sampled/Port.java | 2 +- libjava/classpath/javax/sql/RowSet.java | 4 +- libjava/classpath/javax/swing/AbstractButton.java | 229 +- .../classpath/javax/swing/AbstractListModel.java | 2 +- .../javax/swing/AbstractSpinnerModel.java | 12 +- libjava/classpath/javax/swing/ButtonGroup.java | 8 +- .../javax/swing/DefaultBoundedRangeModel.java | 2 +- .../classpath/javax/swing/DefaultButtonModel.java | 4 +- .../javax/swing/DefaultComboBoxModel.java | 32 +- .../classpath/javax/swing/DefaultListModel.java | 2 +- .../javax/swing/DefaultListSelectionModel.java | 2 +- .../javax/swing/DefaultSingleSelectionModel.java | 2 +- libjava/classpath/javax/swing/JButton.java | 2 +- libjava/classpath/javax/swing/JComboBox.java | 2 +- libjava/classpath/javax/swing/JComponent.java | 803 +- libjava/classpath/javax/swing/JDialog.java | 55 +- libjava/classpath/javax/swing/JEditorPane.java | 336 +- libjava/classpath/javax/swing/JFrame.java | 51 +- libjava/classpath/javax/swing/JLabel.java | 103 +- libjava/classpath/javax/swing/JLayeredPane.java | 2 +- libjava/classpath/javax/swing/JList.java | 235 +- libjava/classpath/javax/swing/JMenu.java | 263 +- libjava/classpath/javax/swing/JMenuBar.java | 33 +- libjava/classpath/javax/swing/JMenuItem.java | 107 +- libjava/classpath/javax/swing/JPopupMenu.java | 23 +- libjava/classpath/javax/swing/JRootPane.java | 12 +- libjava/classpath/javax/swing/JScrollBar.java | 113 +- libjava/classpath/javax/swing/JScrollPane.java | 8 +- libjava/classpath/javax/swing/JSlider.java | 71 +- libjava/classpath/javax/swing/JSplitPane.java | 34 +- libjava/classpath/javax/swing/JTabbedPane.java | 31 +- libjava/classpath/javax/swing/JTable.java | 120 +- libjava/classpath/javax/swing/JTextField.java | 3 +- libjava/classpath/javax/swing/JTextPane.java | 19 +- libjava/classpath/javax/swing/JToggleButton.java | 5 +- libjava/classpath/javax/swing/JToolTip.java | 14 + libjava/classpath/javax/swing/JTree.java | 173 +- libjava/classpath/javax/swing/JViewport.java | 133 +- libjava/classpath/javax/swing/JWindow.java | 5 + libjava/classpath/javax/swing/LookAndFeel.java | 2 +- libjava/classpath/javax/swing/Popup.java | 2 +- libjava/classpath/javax/swing/RepaintManager.java | 299 +- .../classpath/javax/swing/ScrollPaneLayout.java | 38 +- libjava/classpath/javax/swing/SizeSequence.java | 8 +- .../javax/swing/SortingFocusTraversalPolicy.java | 6 +- .../classpath/javax/swing/SpinnerListModel.java | 6 +- libjava/classpath/javax/swing/SwingUtilities.java | 274 +- libjava/classpath/javax/swing/Timer.java | 2 +- libjava/classpath/javax/swing/ToolTipManager.java | 77 +- libjava/classpath/javax/swing/TransferHandler.java | 357 +- libjava/classpath/javax/swing/UIDefaults.java | 8 +- libjava/classpath/javax/swing/UIManager.java | 251 +- .../javax/swing/border/CompoundBorder.java | 27 +- .../javax/swing/event/EventListenerList.java | 60 +- .../javax/swing/filechooser/FileSystemView.java | 9 +- .../swing/plaf/basic/BasicButtonListener.java | 136 +- .../javax/swing/plaf/basic/BasicButtonUI.java | 330 +- .../swing/plaf/basic/BasicDirectoryModel.java | 6 +- .../javax/swing/plaf/basic/BasicFileChooserUI.java | 10 +- .../javax/swing/plaf/basic/BasicGraphicsUtils.java | 55 +- .../javax/swing/plaf/basic/BasicHTML.java | 26 + .../plaf/basic/BasicInternalFrameTitlePane.java | 10 +- .../swing/plaf/basic/BasicInternalFrameUI.java | 64 +- .../javax/swing/plaf/basic/BasicLabelUI.java | 57 +- .../javax/swing/plaf/basic/BasicListUI.java | 2 +- .../javax/swing/plaf/basic/BasicLookAndFeel.java | 24 +- .../javax/swing/plaf/basic/BasicMenuItemUI.java | 144 +- .../javax/swing/plaf/basic/BasicMenuUI.java | 207 +- .../javax/swing/plaf/basic/BasicRadioButtonUI.java | 160 +- .../javax/swing/plaf/basic/BasicScrollBarUI.java | 79 +- .../javax/swing/plaf/basic/BasicScrollPaneUI.java | 237 +- .../javax/swing/plaf/basic/BasicSliderUI.java | 566 +- .../swing/plaf/basic/BasicSplitPaneDivider.java | 412 +- .../javax/swing/plaf/basic/BasicSplitPaneUI.java | 372 +- .../javax/swing/plaf/basic/BasicTabbedPaneUI.java | 417 +- .../javax/swing/plaf/basic/BasicTableHeaderUI.java | 8 +- .../javax/swing/plaf/basic/BasicTableUI.java | 9 +- .../javax/swing/plaf/basic/BasicTextUI.java | 538 +- .../javax/swing/plaf/basic/BasicToolBarUI.java | 6 +- .../javax/swing/plaf/basic/BasicToolTipUI.java | 123 +- .../javax/swing/plaf/basic/BasicTreeUI.java | 529 +- .../javax/swing/plaf/metal/DefaultMetalTheme.java | 100 +- .../javax/swing/plaf/metal/MetalBorders.java | 16 +- .../javax/swing/plaf/metal/MetalButtonUI.java | 72 +- .../javax/swing/plaf/metal/MetalCheckBoxIcon.java | 11 +- .../javax/swing/plaf/metal/MetalIconFactory.java | 119 +- .../javax/swing/plaf/metal/MetalLookAndFeel.java | 50 +- .../javax/swing/plaf/metal/MetalMenuBarUI.java | 9 +- .../javax/swing/plaf/metal/MetalRadioButtonUI.java | 2 +- .../javax/swing/plaf/metal/MetalScrollBarUI.java | 15 +- .../javax/swing/plaf/metal/MetalSliderUI.java | 27 +- .../swing/plaf/metal/MetalSplitPaneDivider.java | 281 +- .../javax/swing/plaf/metal/MetalTabbedPaneUI.java | 2 +- .../javax/swing/plaf/metal/MetalToolTipUI.java | 70 +- .../javax/swing/plaf/metal/MetalTreeUI.java | 122 +- .../javax/swing/plaf/metal/OceanTheme.java | 2 + .../javax/swing/plaf/synth/SynthLookAndFeel.java | 4 +- .../javax/swing/table/AbstractTableModel.java | 4 +- .../javax/swing/table/DefaultTableColumnModel.java | 8 +- .../javax/swing/table/DefaultTableModel.java | 2 +- .../javax/swing/table/TableColumnModel.java | 2 +- .../classpath/javax/swing/table/TableModel.java | 2 +- .../javax/swing/text/AbstractDocument.java | 913 +- .../classpath/javax/swing/text/AttributeSet.java | 2 +- libjava/classpath/javax/swing/text/BoxView.java | 484 +- .../classpath/javax/swing/text/ComponentView.java | 336 +- .../classpath/javax/swing/text/CompositeView.java | 195 +- .../classpath/javax/swing/text/DefaultCaret.java | 15 +- .../javax/swing/text/DefaultEditorKit.java | 365 +- .../javax/swing/text/DefaultFormatter.java | 6 +- .../javax/swing/text/DefaultHighlighter.java | 389 +- .../javax/swing/text/DefaultStyledDocument.java | 2036 +-- .../javax/swing/text/ElementIterator.java | 203 +- libjava/classpath/javax/swing/text/FieldView.java | 4 +- libjava/classpath/javax/swing/text/FlowView.java | 419 +- libjava/classpath/javax/swing/text/GapContent.java | 723 +- libjava/classpath/javax/swing/text/GlyphView.java | 620 +- .../javax/swing/text/InternationalFormatter.java | 2 +- .../classpath/javax/swing/text/JTextComponent.java | 278 +- libjava/classpath/javax/swing/text/LabelView.java | 78 +- .../classpath/javax/swing/text/MaskFormatter.java | 377 +- .../javax/swing/text/MutableAttributeSet.java | 2 +- .../classpath/javax/swing/text/ParagraphView.java | 107 +- libjava/classpath/javax/swing/text/PlainView.java | 150 +- libjava/classpath/javax/swing/text/Position.java | 4 +- .../javax/swing/text/SimpleAttributeSet.java | 18 +- .../classpath/javax/swing/text/StringContent.java | 304 +- .../classpath/javax/swing/text/StyleConstants.java | 11 + .../classpath/javax/swing/text/StyleContext.java | 600 +- .../javax/swing/text/StyledEditorKit.java | 46 +- libjava/classpath/javax/swing/text/TextAction.java | 51 +- libjava/classpath/javax/swing/text/Utilities.java | 189 +- libjava/classpath/javax/swing/text/View.java | 104 +- .../javax/swing/text/WrappedPlainView.java | 199 +- libjava/classpath/javax/swing/text/ZoneView.java | 442 + .../classpath/javax/swing/text/html/BRView.java | 5 +- .../classpath/javax/swing/text/html/BlockView.java | 482 +- libjava/classpath/javax/swing/text/html/CSS.java | 274 + .../classpath/javax/swing/text/html/CSSBorder.java | 421 + .../javax/swing/text/html/FormSubmitEvent.java | 123 + .../classpath/javax/swing/text/html/FormView.java | 649 +- .../javax/swing/text/html/FrameSetView.java | 274 + .../classpath/javax/swing/text/html/FrameView.java | 233 + libjava/classpath/javax/swing/text/html/HTML.java | 22 +- .../javax/swing/text/html/HTMLDocument.java | 931 +- .../javax/swing/text/html/HTMLEditorKit.java | 578 +- .../javax/swing/text/html/HTMLWriter.java | 1084 ++ .../classpath/javax/swing/text/html/ImageView.java | 403 +- .../javax/swing/text/html/InlineView.java | 151 +- .../classpath/javax/swing/text/html/ListView.java | 3 - .../javax/swing/text/html/MultiAttributeSet.java | 213 + .../javax/swing/text/html/MultiStyle.java | 136 + .../classpath/javax/swing/text/html/Option.java | 12 +- .../javax/swing/text/html/ParagraphView.java | 131 +- .../javax/swing/text/html/ResetableModel.java | 50 + .../swing/text/html/ResetablePlainDocument.java | 82 + .../text/html/ResetableToggleButtonModel.java | 71 + .../javax/swing/text/html/SelectComboBoxModel.java | 84 + .../javax/swing/text/html/SelectListModel.java | 106 + .../javax/swing/text/html/StyleSheet.java | 1124 +- .../classpath/javax/swing/text/html/TableView.java | 942 +- .../javax/swing/text/html/ViewAttributeSet.java | 163 + .../swing/text/html/parser/AttributeList.java | 6 +- .../javax/swing/text/html/parser/ContentModel.java | 6 +- .../javax/swing/text/html/parser/DTD.java | 17 +- .../swing/text/html/parser/DocumentParser.java | 4 +- .../swing/text/html/parser/ParserDelegator.java | 4 +- .../javax/swing/tree/AbstractLayoutCache.java | 27 +- .../javax/swing/tree/DefaultMutableTreeNode.java | 12 +- .../javax/swing/tree/DefaultTreeCellEditor.java | 322 +- .../javax/swing/tree/DefaultTreeCellRenderer.java | 108 +- .../javax/swing/tree/DefaultTreeModel.java | 29 +- .../swing/tree/DefaultTreeSelectionModel.java | 780 +- .../javax/swing/tree/FixedHeightLayoutCache.java | 2 +- .../swing/tree/VariableHeightLayoutCache.java | 190 +- .../classpath/javax/swing/undo/CompoundEdit.java | 16 +- libjava/classpath/javax/swing/undo/StateEdit.java | 4 +- .../classpath/javax/swing/undo/StateEditable.java | 4 +- .../javax/swing/undo/UndoableEditSupport.java | 5 +- .../javax/xml/parsers/DocumentBuilderFactory.java | 2 +- .../javax/xml/validation/SchemaFactory.java | 101 + libjava/classpath/jvmti.h | 1819 ++ libjava/classpath/lib/.cvsignore | 38 + libjava/classpath/lib/Makefile.am | 73 +- libjava/classpath/lib/Makefile.gcj | 2 +- libjava/classpath/lib/Makefile.in | 75 +- libjava/classpath/lib/gen-classlist.sh.in | 31 +- libjava/classpath/lib/gnu/CORBA/Asynchron.class | Bin 0 -> 1872 bytes .../classpath/lib/gnu/CORBA/BigDecimalHelper.class | Bin 0 -> 3255 bytes .../lib/gnu/CORBA/ByteArrayComparator.class | Bin 0 -> 1158 bytes .../lib/gnu/CORBA/CDR/AbstractCdrInput.class | Bin 0 -> 20999 bytes .../lib/gnu/CORBA/CDR/AbstractCdrOutput.class | Bin 0 -> 13461 bytes .../lib/gnu/CORBA/CDR/AbstractDataInput.class | Bin 0 -> 682 bytes .../lib/gnu/CORBA/CDR/AbstractDataOutput.class | Bin 0 -> 562 bytes .../lib/gnu/CORBA/CDR/AligningInput.class | Bin 0 -> 1725 bytes .../lib/gnu/CORBA/CDR/AligningOutput.class | Bin 0 -> 1631 bytes .../lib/gnu/CORBA/CDR/ArrayValueHelper.class | Bin 0 -> 5994 bytes .../lib/gnu/CORBA/CDR/BigEndianInputStream.class | Bin 0 -> 424 bytes .../lib/gnu/CORBA/CDR/BigEndianOutputStream.class | Bin 0 -> 432 bytes .../lib/gnu/CORBA/CDR/BufferedCdrOutput.class | Bin 0 -> 2161 bytes .../lib/gnu/CORBA/CDR/BufferredCdrInput.class | Bin 0 -> 1668 bytes .../lib/gnu/CORBA/CDR/EncapsulationStream.class | Bin 0 -> 2254 bytes .../lib/gnu/CORBA/CDR/HeadlessInput.class | Bin 0 -> 11596 bytes .../lib/gnu/CORBA/CDR/IDLTypeHelper.class | Bin 0 -> 3101 bytes .../gnu/CORBA/CDR/LittleEndianInputStream.class | Bin 0 -> 4549 bytes .../gnu/CORBA/CDR/LittleEndianOutputStream.class | Bin 0 -> 2133 bytes .../gnu/CORBA/CDR/UnknownExceptionCtxHandler.class | Bin 0 -> 6277 bytes libjava/classpath/lib/gnu/CORBA/CDR/VMVio.class | Bin 0 -> 1408 bytes libjava/classpath/lib/gnu/CORBA/CDR/Vio.class | Bin 0 -> 21547 bytes .../classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class | Bin 0 -> 984 bytes .../lib/gnu/CORBA/CDR/gnuRuntime$Entry.class | Bin 0 -> 886 bytes .../lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class | Bin 0 -> 656 bytes .../classpath/lib/gnu/CORBA/CDR/gnuRuntime.class | Bin 0 -> 4831 bytes .../lib/gnu/CORBA/CDR/gnuValueStream.class | Bin 0 -> 278 bytes .../lib/gnu/CORBA/CdrEncapsCodecImpl.class | Bin 0 -> 5871 bytes .../classpath/lib/gnu/CORBA/CollocatedOrbs.class | Bin 0 -> 2494 bytes .../lib/gnu/CORBA/Connected_objects$cObject.class | Bin 0 -> 809 bytes .../lib/gnu/CORBA/Connected_objects.class | Bin 0 -> 3540 bytes libjava/classpath/lib/gnu/CORBA/CorbaList.class | Bin 0 -> 1205 bytes .../lib/gnu/CORBA/DefaultSocketFactory.class | Bin 0 -> 924 bytes .../lib/gnu/CORBA/DefinitionKindHolder.class | Bin 0 -> 1162 bytes .../lib/gnu/CORBA/DuplicateNameHolder.class | Bin 0 -> 1390 bytes .../lib/gnu/CORBA/DynAn/AbstractAny.class | Bin 0 -> 2680 bytes .../lib/gnu/CORBA/DynAn/DivideableAny.class | Bin 0 -> 8187 bytes .../lib/gnu/CORBA/DynAn/NameValuePairHolder.class | Bin 0 -> 1232 bytes .../classpath/lib/gnu/CORBA/DynAn/RecordAny.class | Bin 0 -> 8043 bytes .../lib/gnu/CORBA/DynAn/UndivideableAny.class | Bin 0 -> 5868 bytes .../lib/gnu/CORBA/DynAn/ValueChangeListener.class | Bin 0 -> 159 bytes .../classpath/lib/gnu/CORBA/DynAn/gnuDynAny.class | Bin 0 -> 14085 bytes .../lib/gnu/CORBA/DynAn/gnuDynAnyFactory.class | Bin 0 -> 6415 bytes .../lib/gnu/CORBA/DynAn/gnuDynArray.class | Bin 0 -> 6545 bytes .../classpath/lib/gnu/CORBA/DynAn/gnuDynEnum.class | Bin 0 -> 4358 bytes .../lib/gnu/CORBA/DynAn/gnuDynFixed.class | Bin 0 -> 4430 bytes .../lib/gnu/CORBA/DynAn/gnuDynSequence.class | Bin 0 -> 4531 bytes .../lib/gnu/CORBA/DynAn/gnuDynStruct.class | Bin 0 -> 2045 bytes .../lib/gnu/CORBA/DynAn/gnuDynUnion.class | Bin 0 -> 7251 bytes .../lib/gnu/CORBA/DynAn/gnuDynValue.class | Bin 0 -> 8072 bytes .../lib/gnu/CORBA/DynAn/gnuDynValueBox.class | Bin 0 -> 6920 bytes .../classpath/lib/gnu/CORBA/DynAnySeqHolder.class | Bin 0 -> 1210 bytes .../lib/gnu/CORBA/EmptyExceptionHolder.class | Bin 0 -> 1812 bytes .../lib/gnu/CORBA/ForwardRequestHelper.class | Bin 0 -> 2869 bytes .../lib/gnu/CORBA/GIOP/CancelHeader.class | Bin 0 -> 432 bytes .../lib/gnu/CORBA/GIOP/CharSets_OSF.class | Bin 0 -> 4139 bytes .../lib/gnu/CORBA/GIOP/CloseMessage.class | Bin 0 -> 1079 bytes .../lib/gnu/CORBA/GIOP/CodeSetServiceContext.class | Bin 0 -> 3524 bytes .../lib/gnu/CORBA/GIOP/ContextHandler.class | Bin 0 -> 900 bytes .../lib/gnu/CORBA/GIOP/ErrorMessage.class | Bin 0 -> 1769 bytes .../lib/gnu/CORBA/GIOP/MessageHeader.class | Bin 0 -> 6691 bytes .../classpath/lib/gnu/CORBA/GIOP/ReplyHeader.class | Bin 0 -> 1418 bytes .../lib/gnu/CORBA/GIOP/RequestHeader.class | Bin 0 -> 1442 bytes .../lib/gnu/CORBA/GIOP/ServiceContext.class | Bin 0 -> 4969 bytes .../lib/gnu/CORBA/GIOP/v1_0/CancelHeader.class | Bin 0 -> 834 bytes .../lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class | Bin 0 -> 2441 bytes .../lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class | Bin 0 -> 3122 bytes .../lib/gnu/CORBA/GIOP/v1_2/ReplyHeader.class | Bin 0 -> 1766 bytes .../lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class | Bin 0 -> 3618 bytes .../classpath/lib/gnu/CORBA/GeneralHolder.class | Bin 0 -> 2394 bytes .../classpath/lib/gnu/CORBA/HolderLocator.class | Bin 0 -> 2952 bytes .../IOR$CodeSets_profile$CodeSet_component.class | Bin 0 -> 2363 bytes .../lib/gnu/CORBA/IOR$CodeSets_profile.class | Bin 0 -> 2149 bytes .../lib/gnu/CORBA/IOR$Internet_profile.class | Bin 0 -> 2834 bytes libjava/classpath/lib/gnu/CORBA/IOR.class | Bin 0 -> 8912 bytes .../Interceptor/ClientRequestInterceptors.class | Bin 0 -> 2096 bytes .../CORBA/Interceptor/ForwardRequestHolder.class | Bin 0 -> 1327 bytes .../gnu/CORBA/Interceptor/IORInterceptors.class | Bin 0 -> 2605 bytes .../lib/gnu/CORBA/Interceptor/Registrator.class | Bin 0 -> 9169 bytes .../Interceptor/ServerRequestInterceptors.class | Bin 0 -> 2123 bytes .../CORBA/Interceptor/gnuClientRequestInfo.class | Bin 0 -> 5483 bytes .../lib/gnu/CORBA/Interceptor/gnuIcCurrent.class | Bin 0 -> 4277 bytes .../lib/gnu/CORBA/Interceptor/gnuIorInfo.class | Bin 0 -> 2375 bytes .../CORBA/Interceptor/gnuServerRequestInfo.class | Bin 0 -> 7751 bytes libjava/classpath/lib/gnu/CORBA/IorDelegate.class | Bin 0 -> 7919 bytes libjava/classpath/lib/gnu/CORBA/IorObject.class | Bin 0 -> 1966 bytes libjava/classpath/lib/gnu/CORBA/IorProvider.class | Bin 0 -> 150 bytes libjava/classpath/lib/gnu/CORBA/Minor.class | Bin 0 -> 1262 bytes .../lib/gnu/CORBA/NameDynAnyPairHolder.class | Bin 0 -> 1258 bytes .../lib/gnu/CORBA/NameDynAnyPairSeqHolder.class | Bin 0 -> 1274 bytes .../lib/gnu/CORBA/NameValuePairHolder.class | Bin 0 -> 1250 bytes .../lib/gnu/CORBA/NameValuePairSeqHolder.class | Bin 0 -> 1266 bytes .../NamingService/Binding_iterator_impl.class | Bin 0 -> 1808 bytes .../lib/gnu/CORBA/NamingService/Ext.class | Bin 0 -> 3928 bytes .../NamingService/NameComponentComparator.class | Bin 0 -> 1059 bytes .../lib/gnu/CORBA/NamingService/NameParser.class | Bin 0 -> 9739 bytes .../gnu/CORBA/NamingService/NameTransformer.class | Bin 0 -> 4814 bytes .../gnu/CORBA/NamingService/NameValidator.class | Bin 0 -> 1159 bytes .../lib/gnu/CORBA/NamingService/NamingMap.class | Bin 0 -> 2648 bytes .../NamingService/NamingServiceTransient$1.class | Bin 0 -> 701 bytes .../NamingService/NamingServiceTransient.class | Bin 0 -> 2390 bytes .../gnu/CORBA/NamingService/TransientContext.class | Bin 0 -> 6742 bytes .../classpath/lib/gnu/CORBA/ObjectCreator.class | Bin 0 -> 10180 bytes libjava/classpath/lib/gnu/CORBA/OctetHolder.class | Bin 0 -> 1334 bytes libjava/classpath/lib/gnu/CORBA/OrbFocused.class | Bin 0 -> 6441 bytes .../classpath/lib/gnu/CORBA/OrbFunctional$1.class | Bin 0 -> 635 bytes .../classpath/lib/gnu/CORBA/OrbFunctional$2.class | Bin 0 -> 1116 bytes .../lib/gnu/CORBA/OrbFunctional$portServer.class | Bin 0 -> 2171 bytes .../gnu/CORBA/OrbFunctional$sharedPortServer.class | Bin 0 -> 872 bytes .../classpath/lib/gnu/CORBA/OrbFunctional.class | Bin 0 -> 24752 bytes .../classpath/lib/gnu/CORBA/OrbRestricted.class | Bin 0 -> 10136 bytes libjava/classpath/lib/gnu/CORBA/Poa/AOM$Obj.class | Bin 0 -> 1342 bytes libjava/classpath/lib/gnu/CORBA/Poa/AOM.class | Bin 0 -> 4383 bytes .../lib/gnu/CORBA/Poa/AccessiblePolicy.class | Bin 0 -> 221 bytes .../lib/gnu/CORBA/Poa/DynamicImpHandler.class | Bin 0 -> 1204 bytes .../lib/gnu/CORBA/Poa/ForwardRequestHolder.class | Bin 0 -> 1273 bytes .../lib/gnu/CORBA/Poa/ForwardedServant.class | Bin 0 -> 4682 bytes .../lib/gnu/CORBA/Poa/InvalidPolicyHolder.class | Bin 0 -> 1333 bytes .../lib/gnu/CORBA/Poa/LocalDelegate.class | Bin 0 -> 8751 bytes .../classpath/lib/gnu/CORBA/Poa/LocalRequest.class | Bin 0 -> 12849 bytes .../lib/gnu/CORBA/Poa/LocalServerRequest.class | Bin 0 -> 3164 bytes libjava/classpath/lib/gnu/CORBA/Poa/ORB_1_4.class | Bin 0 -> 7622 bytes .../lib/gnu/CORBA/Poa/ServantDelegateImpl.class | Bin 0 -> 4010 bytes .../lib/gnu/CORBA/Poa/StandardPolicies.class | Bin 0 -> 3263 bytes .../lib/gnu/CORBA/Poa/gnuAdapterActivator.class | Bin 0 -> 1055 bytes .../lib/gnu/CORBA/Poa/gnuForwardRequest.class | Bin 0 -> 759 bytes .../lib/gnu/CORBA/Poa/gnuIdAssignmentPolicy.class | Bin 0 -> 942 bytes .../lib/gnu/CORBA/Poa/gnuIdUniquenessPolicy.class | Bin 0 -> 942 bytes .../CORBA/Poa/gnuImplicitActivationPolicy.class | Bin 0 -> 996 bytes .../lib/gnu/CORBA/Poa/gnuLifespanPolicy.class | Bin 0 -> 906 bytes .../lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class | Bin 0 -> 1993 bytes libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class | Bin 0 -> 25936 bytes .../lib/gnu/CORBA/Poa/gnuPOAManager.class | Bin 0 -> 3326 bytes .../lib/gnu/CORBA/Poa/gnuPoaCurrent.class | Bin 0 -> 2741 bytes .../gnu/CORBA/Poa/gnuRequestProcessingPolicy.class | Bin 0 -> 987 bytes .../lib/gnu/CORBA/Poa/gnuServantObject.class | Bin 0 -> 14471 bytes .../gnu/CORBA/Poa/gnuServantRetentionPolicy.class | Bin 0 -> 978 bytes .../lib/gnu/CORBA/Poa/gnuThreadPolicy.class | Bin 0 -> 888 bytes libjava/classpath/lib/gnu/CORBA/RawReply.class | Bin 0 -> 1131 bytes .../lib/gnu/CORBA/ResponseHandlerImpl.class | Bin 0 -> 2485 bytes .../lib/gnu/CORBA/SafeForDirectCalls.class | Bin 0 -> 127 bytes .../lib/gnu/CORBA/ServiceDetailHolder.class | Bin 0 -> 1154 bytes .../lib/gnu/CORBA/ServiceRequestAdapter.class | Bin 0 -> 3086 bytes .../lib/gnu/CORBA/SetOverrideTypeHolder.class | Bin 0 -> 1170 bytes .../classpath/lib/gnu/CORBA/SimpleDelegate.class | Bin 0 -> 4870 bytes .../classpath/lib/gnu/CORBA/SocketRepository.class | Bin 0 -> 1958 bytes .../lib/gnu/CORBA/StreamBasedRequest.class | Bin 0 -> 412 bytes libjava/classpath/lib/gnu/CORBA/StreamHolder.class | Bin 0 -> 1456 bytes libjava/classpath/lib/gnu/CORBA/StubLocator.class | Bin 0 -> 1718 bytes .../classpath/lib/gnu/CORBA/TypeCodeHelper.class | Bin 0 -> 4997 bytes .../classpath/lib/gnu/CORBA/TypeKindNamer.class | Bin 0 -> 4025 bytes libjava/classpath/lib/gnu/CORBA/Unexpected.class | Bin 0 -> 1454 bytes libjava/classpath/lib/gnu/CORBA/Version.class | Bin 0 -> 2480 bytes libjava/classpath/lib/gnu/CORBA/WCharHolder.class | Bin 0 -> 1329 bytes .../classpath/lib/gnu/CORBA/WStringHolder.class | Bin 0 -> 1407 bytes .../classpath/lib/gnu/CORBA/_PolicyImplBase.class | Bin 0 -> 2822 bytes libjava/classpath/lib/gnu/CORBA/gnuAny.class | Bin 0 -> 14005 bytes .../classpath/lib/gnu/CORBA/gnuCodecFactory.class | Bin 0 -> 1065 bytes libjava/classpath/lib/gnu/CORBA/gnuContext.class | Bin 0 -> 3523 bytes .../classpath/lib/gnu/CORBA/gnuContextList.class | Bin 0 -> 1009 bytes .../classpath/lib/gnu/CORBA/gnuEnvironment.class | Bin 0 -> 623 bytes .../classpath/lib/gnu/CORBA/gnuExceptionList.class | Bin 0 -> 1046 bytes libjava/classpath/lib/gnu/CORBA/gnuNVList.class | Bin 0 -> 1889 bytes .../classpath/lib/gnu/CORBA/gnuNamedValue.class | Bin 0 -> 1043 bytes libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class | Bin 0 -> 567 bytes libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class | Bin 0 -> 623 bytes libjava/classpath/lib/gnu/CORBA/gnuRequest.class | Bin 0 -> 23103 bytes .../classpath/lib/gnu/CORBA/gnuValueHolder.class | Bin 0 -> 2003 bytes .../lib/gnu/CORBA/interfaces/SocketFactory.class | Bin 0 -> 407 bytes .../lib/gnu/CORBA/typecodes/AliasTypeCode.class | Bin 0 -> 1443 bytes .../lib/gnu/CORBA/typecodes/ArrayTypeCode.class | Bin 0 -> 3132 bytes .../lib/gnu/CORBA/typecodes/FixedTypeCode.class | Bin 0 -> 1842 bytes .../lib/gnu/CORBA/typecodes/GeneralTypeCode.class | Bin 0 -> 3185 bytes .../gnu/CORBA/typecodes/PrimitiveTypeCode.class | Bin 0 -> 2769 bytes .../gnu/CORBA/typecodes/RecordTypeCode$Field.class | Bin 0 -> 582 bytes .../lib/gnu/CORBA/typecodes/RecordTypeCode.class | Bin 0 -> 3537 bytes .../gnu/CORBA/typecodes/RecursiveTypeCode.class | Bin 0 -> 755 bytes .../lib/gnu/CORBA/typecodes/StringTypeCode.class | Bin 0 -> 682 bytes .../lib/gnu/awt/LightweightRedirector.class | Bin 0 -> 3189 bytes .../lib/gnu/awt/j2d/AbstractGraphicsState.class | Bin 0 -> 1779 bytes .../lib/gnu/awt/j2d/DirectRasterGraphics.class | Bin 0 -> 925 bytes .../classpath/lib/gnu/awt/j2d/Graphics2DImpl.class | Bin 0 -> 12314 bytes .../IntegerGraphicsState$ScreenCoupledImage.class | Bin 0 -> 314 bytes .../lib/gnu/awt/j2d/IntegerGraphicsState.class | Bin 0 -> 9383 bytes .../classpath/lib/gnu/awt/j2d/MappedRaster.class | Bin 0 -> 723 bytes .../lib/gnu/classpath/Configuration.class | Bin 0 -> 795 bytes .../classpath/lib/gnu/classpath/ListenerData.class | Bin 0 -> 1197 bytes .../gnu/classpath/NotImplementedException.class | Bin 0 -> 400 bytes libjava/classpath/lib/gnu/classpath/Pointer.class | Bin 0 -> 274 bytes .../classpath/lib/gnu/classpath/Pointer32.class | Bin 0 -> 344 bytes .../classpath/lib/gnu/classpath/Pointer64.class | Bin 0 -> 344 bytes .../classpath/ServiceFactory$ServiceIterator.class | Bin 0 -> 3903 bytes .../lib/gnu/classpath/ServiceFactory.class | Bin 0 -> 3194 bytes .../classpath/ServiceProviderLoadingAction.class | Bin 0 -> 1292 bytes .../lib/gnu/classpath/SystemProperties.class | Bin 0 -> 2655 bytes .../lib/gnu/classpath/VMStackWalker.class | Bin 0 -> 653 bytes .../lib/gnu/classpath/debug/Component.class | Bin 0 -> 2187 bytes .../lib/gnu/classpath/debug/PreciseFilter.class | Bin 0 -> 1400 bytes .../gnu/classpath/debug/Simple1LineFormatter.class | Bin 0 -> 3090 bytes .../lib/gnu/classpath/debug/SystemLogger.class | Bin 0 -> 1949 bytes .../lib/gnu/classpath/debug/TeeInputStream.class | Bin 0 -> 1164 bytes .../lib/gnu/classpath/debug/TeeOutputStream.class | Bin 0 -> 1032 bytes .../lib/gnu/classpath/debug/TeeReader.class | Bin 0 -> 1116 bytes .../lib/gnu/classpath/debug/TeeWriter.class | Bin 0 -> 990 bytes .../classpath/lib/gnu/classpath/jdwp/Jdwp$1.class | Bin 0 -> 804 bytes .../classpath/lib/gnu/classpath/jdwp/Jdwp.class | Bin 0 -> 5748 bytes .../classpath/jdwp/JdwpConstants$ClassStatus.class | Bin 0 -> 557 bytes .../JdwpConstants$CommandSet$ArrayReference.class | Bin 0 -> 660 bytes .../jdwp/JdwpConstants$CommandSet$ArrayType.class | Bin 0 -> 583 bytes ...Constants$CommandSet$ClassLoaderReference.class | Bin 0 -> 619 bytes ...Constants$CommandSet$ClassObjectReference.class | Bin 0 -> 618 bytes .../jdwp/JdwpConstants$CommandSet$ClassType.class | Bin 0 -> 683 bytes .../jdwp/JdwpConstants$CommandSet$Event.class | Bin 0 -> 568 bytes .../JdwpConstants$CommandSet$EventRequest.class | Bin 0 -> 657 bytes .../jdwp/JdwpConstants$CommandSet$Field.class | Bin 0 -> 535 bytes .../JdwpConstants$CommandSet$InterfaceType.class | Bin 0 -> 559 bytes .../jdwp/JdwpConstants$CommandSet$Method.class | Bin 0 -> 730 bytes .../JdwpConstants$CommandSet$ObjectReference.class | Bin 0 -> 858 bytes .../JdwpConstants$CommandSet$ReferenceType.class | Bin 0 -> 1101 bytes .../jdwp/JdwpConstants$CommandSet$StackFrame.class | Bin 0 -> 687 bytes .../JdwpConstants$CommandSet$StringReference.class | Bin 0 -> 594 bytes ...Constants$CommandSet$ThreadGroupReference.class | Bin 0 -> 670 bytes .../JdwpConstants$CommandSet$ThreadReference.class | Bin 0 -> 965 bytes .../JdwpConstants$CommandSet$VirtualMachine.class | Bin 0 -> 1291 bytes .../classpath/jdwp/JdwpConstants$CommandSet.class | Bin 0 -> 1924 bytes .../gnu/classpath/jdwp/JdwpConstants$Error.class | Bin 0 -> 2679 bytes .../classpath/jdwp/JdwpConstants$EventKind.class | Bin 0 -> 1119 bytes .../jdwp/JdwpConstants$InvokeOptions.class | Bin 0 -> 522 bytes .../gnu/classpath/jdwp/JdwpConstants$ModKind.class | Bin 0 -> 796 bytes .../classpath/jdwp/JdwpConstants$StepDepth.class | Bin 0 -> 506 bytes .../classpath/jdwp/JdwpConstants$StepSize.class | Bin 0 -> 475 bytes .../jdwp/JdwpConstants$SuspendPolicy.class | Bin 0 -> 526 bytes .../jdwp/JdwpConstants$SuspendStatus.class | Bin 0 -> 468 bytes .../lib/gnu/classpath/jdwp/JdwpConstants$Tag.class | Bin 0 -> 890 bytes .../jdwp/JdwpConstants$ThreadStatus.class | Bin 0 -> 584 bytes .../gnu/classpath/jdwp/JdwpConstants$TypeTag.class | Bin 0 -> 508 bytes .../gnu/classpath/jdwp/JdwpConstants$Version.class | Bin 0 -> 475 bytes .../lib/gnu/classpath/jdwp/JdwpConstants.class | Bin 0 -> 1279 bytes .../classpath/lib/gnu/classpath/jdwp/VMFrame.class | Bin 0 -> 837 bytes .../gnu/classpath/jdwp/VMIdManager$IdFactory.class | Bin 0 -> 3138 bytes .../classpath/jdwp/VMIdManager$ReferenceKey.class | Bin 0 -> 1266 bytes .../lib/gnu/classpath/jdwp/VMIdManager.class | Bin 0 -> 3624 bytes .../lib/gnu/classpath/jdwp/VMMethod.class | Bin 0 -> 1983 bytes .../lib/gnu/classpath/jdwp/VMVirtualMachine.class | Bin 0 -> 2883 bytes .../gnu/classpath/jdwp/event/BreakpointEvent.class | Bin 0 -> 1458 bytes .../classpath/jdwp/event/ClassPrepareEvent.class | Bin 0 -> 2047 bytes .../classpath/jdwp/event/ClassUnloadEvent.class | Bin 0 -> 1000 bytes .../lib/gnu/classpath/jdwp/event/Event.class | Bin 0 -> 1598 bytes .../gnu/classpath/jdwp/event/EventManager.class | Bin 0 -> 4198 bytes .../gnu/classpath/jdwp/event/EventRequest.class | Bin 0 -> 4493 bytes .../gnu/classpath/jdwp/event/ExceptionEvent.class | Bin 0 -> 2304 bytes .../classpath/jdwp/event/MethodEntryEvent.class | Bin 0 -> 1553 bytes .../gnu/classpath/jdwp/event/MethodExitEvent.class | Bin 0 -> 1532 bytes .../gnu/classpath/jdwp/event/SingleStepEvent.class | Bin 0 -> 1549 bytes .../gnu/classpath/jdwp/event/ThreadEndEvent.class | Bin 0 -> 1140 bytes .../classpath/jdwp/event/ThreadStartEvent.class | Bin 0 -> 1146 bytes .../gnu/classpath/jdwp/event/VmDeathEvent.class | Bin 0 -> 657 bytes .../lib/gnu/classpath/jdwp/event/VmInitEvent.class | Bin 0 -> 1120 bytes .../jdwp/event/filters/ClassExcludeFilter.class | Bin 0 -> 703 bytes .../jdwp/event/filters/ClassMatchFilter.class | Bin 0 -> 1588 bytes .../jdwp/event/filters/ClassOnlyFilter.class | Bin 0 -> 1303 bytes .../jdwp/event/filters/ConditionalFilter.class | Bin 0 -> 776 bytes .../classpath/jdwp/event/filters/CountFilter.class | Bin 0 -> 818 bytes .../jdwp/event/filters/ExceptionOnlyFilter.class | Bin 0 -> 1681 bytes .../jdwp/event/filters/FieldOnlyFilter.class | Bin 0 -> 1507 bytes .../jdwp/event/filters/IEventFilter.class | Bin 0 -> 194 bytes .../jdwp/event/filters/InstanceOnlyFilter.class | Bin 0 -> 1328 bytes .../jdwp/event/filters/LocationOnlyFilter.class | Bin 0 -> 889 bytes .../classpath/jdwp/event/filters/StepFilter.class | Bin 0 -> 1463 bytes .../jdwp/event/filters/ThreadOnlyFilter.class | Bin 0 -> 1383 bytes .../jdwp/exception/InvalidClassException.class | Bin 0 -> 865 bytes .../exception/InvalidClassLoaderException.class | Bin 0 -> 889 bytes .../jdwp/exception/InvalidCountException.class | Bin 0 -> 860 bytes .../jdwp/exception/InvalidEventTypeException.class | Bin 0 -> 881 bytes .../jdwp/exception/InvalidFieldException.class | Bin 0 -> 865 bytes .../jdwp/exception/InvalidLocationException.class | Bin 0 -> 623 bytes .../jdwp/exception/InvalidMethodException.class | Bin 0 -> 869 bytes .../jdwp/exception/InvalidObjectException.class | Bin 0 -> 869 bytes .../jdwp/exception/InvalidStringException.class | Bin 0 -> 1023 bytes .../jdwp/exception/InvalidThreadException.class | Bin 0 -> 869 bytes .../exception/InvalidThreadGroupException.class | Bin 0 -> 890 bytes .../classpath/jdwp/exception/JdwpException.class | Bin 0 -> 741 bytes .../exception/JdwpIllegalArgumentException.class | Bin 0 -> 480 bytes .../exception/JdwpInternalErrorException.class | Bin 0 -> 649 bytes .../jdwp/exception/NativeMethodException.class | Bin 0 -> 868 bytes .../jdwp/exception/NotImplementedException.class | Bin 0 -> 753 bytes .../classpath/jdwp/exception/VmDeadException.class | Bin 0 -> 416 bytes .../lib/gnu/classpath/jdwp/id/ArrayId.class | Bin 0 -> 317 bytes .../classpath/jdwp/id/ArrayReferenceTypeId.class | Bin 0 -> 362 bytes .../lib/gnu/classpath/jdwp/id/ClassLoaderId.class | Bin 0 -> 915 bytes .../lib/gnu/classpath/jdwp/id/ClassObjectId.class | Bin 0 -> 874 bytes .../classpath/jdwp/id/ClassReferenceTypeId.class | Bin 0 -> 362 bytes .../jdwp/id/InterfaceReferenceTypeId.class | Bin 0 -> 374 bytes .../lib/gnu/classpath/jdwp/id/JdwpId.class | Bin 0 -> 1359 bytes .../lib/gnu/classpath/jdwp/id/ObjectId.class | Bin 0 -> 1399 bytes .../gnu/classpath/jdwp/id/ReferenceTypeId.class | Bin 0 -> 1033 bytes .../lib/gnu/classpath/jdwp/id/StringId.class | Bin 0 -> 879 bytes .../lib/gnu/classpath/jdwp/id/ThreadGroupId.class | Bin 0 -> 918 bytes .../lib/gnu/classpath/jdwp/id/ThreadId.class | Bin 0 -> 912 bytes .../jdwp/processor/ArrayReferenceCommandSet.class | Bin 0 -> 4143 bytes .../jdwp/processor/ArrayTypeCommandSet.class | Bin 0 -> 2446 bytes .../processor/ClassLoaderReferenceCommandSet.class | Bin 0 -> 2722 bytes .../processor/ClassObjectReferenceCommandSet.class | Bin 0 -> 2157 bytes .../jdwp/processor/ClassTypeCommandSet.class | Bin 0 -> 5471 bytes .../gnu/classpath/jdwp/processor/CommandSet.class | Bin 0 -> 631 bytes .../jdwp/processor/EventRequestCommandSet.class | Bin 0 -> 5267 bytes .../classpath/jdwp/processor/FieldCommandSet.class | Bin 0 -> 814 bytes .../jdwp/processor/InterfaceTypeCommandSet.class | Bin 0 -> 846 bytes .../jdwp/processor/MethodCommandSet.class | Bin 0 -> 3284 bytes .../jdwp/processor/ObjectReferenceCommandSet.class | Bin 0 -> 6344 bytes .../classpath/jdwp/processor/PacketProcessor.class | Bin 0 -> 4326 bytes .../jdwp/processor/ReferenceTypeCommandSet.class | Bin 0 -> 7908 bytes .../jdwp/processor/StackFrameCommandSet.class | Bin 0 -> 3406 bytes .../jdwp/processor/StringReferenceCommandSet.class | Bin 0 -> 1977 bytes .../processor/ThreadGroupReferenceCommandSet.class | Bin 0 -> 3763 bytes .../jdwp/processor/ThreadReferenceCommandSet.class | Bin 0 -> 5835 bytes .../jdwp/processor/VirtualMachineCommandSet.class | Bin 0 -> 9303 bytes .../gnu/classpath/jdwp/transport/ITransport.class | Bin 0 -> 456 bytes .../jdwp/transport/JdwpCommandPacket.class | Bin 0 -> 1601 bytes .../classpath/jdwp/transport/JdwpConnection.class | Bin 0 -> 5043 bytes .../gnu/classpath/jdwp/transport/JdwpPacket.class | Bin 0 -> 2845 bytes .../classpath/jdwp/transport/JdwpReplyPacket.class | Bin 0 -> 1571 bytes .../classpath/jdwp/transport/SocketTransport.class | Bin 0 -> 2603 bytes .../jdwp/transport/TransportException.class | Bin 0 -> 545 bytes .../TransportFactory$TransportMethod.class | Bin 0 -> 638 bytes .../jdwp/transport/TransportFactory.class | Bin 0 -> 2138 bytes .../lib/gnu/classpath/jdwp/util/JdwpString.class | Bin 0 -> 1340 bytes .../lib/gnu/classpath/jdwp/util/LineTable.class | Bin 0 -> 1044 bytes .../lib/gnu/classpath/jdwp/util/Location.class | Bin 0 -> 2633 bytes .../lib/gnu/classpath/jdwp/util/MethodResult.class | Bin 0 -> 878 bytes .../lib/gnu/classpath/jdwp/util/Signature.class | Bin 0 -> 2661 bytes .../lib/gnu/classpath/jdwp/util/Value.class | Bin 0 -> 4871 bytes .../gnu/classpath/jdwp/util/VariableTable.class | Bin 0 -> 1255 bytes libjava/classpath/lib/gnu/gcj/Core.class | Bin 0 -> 429 bytes libjava/classpath/lib/gnu/gcj/RawData.class | Bin 0 -> 262 bytes libjava/classpath/lib/gnu/gcj/RawDataManaged.class | Bin 0 -> 283 bytes .../gnu/gcj/convert/BytesToCharsetAdaptor.class | Bin 0 -> 2167 bytes .../lib/gnu/gcj/convert/BytesToUnicode.class | Bin 0 -> 3258 bytes .../gnu/gcj/convert/CharsetToBytesAdaptor.class | Bin 0 -> 3025 bytes .../classpath/lib/gnu/gcj/convert/Convert.class | Bin 0 -> 5087 bytes .../lib/gnu/gcj/convert/IOConverter.class | Bin 0 -> 2119 bytes .../lib/gnu/gcj/convert/Input_8859_1.class | Bin 0 -> 821 bytes .../lib/gnu/gcj/convert/Input_ASCII.class | Bin 0 -> 816 bytes .../lib/gnu/gcj/convert/Input_EUCJIS.class | Bin 0 -> 502 bytes .../lib/gnu/gcj/convert/Input_JavaSrc.class | Bin 0 -> 1157 bytes .../classpath/lib/gnu/gcj/convert/Input_SJIS.class | Bin 0 -> 453 bytes .../classpath/lib/gnu/gcj/convert/Input_UTF8.class | Bin 0 -> 1130 bytes .../lib/gnu/gcj/convert/Input_UnicodeBig.class | Bin 0 -> 925 bytes .../lib/gnu/gcj/convert/Input_UnicodeLittle.class | Bin 0 -> 942 bytes .../lib/gnu/gcj/convert/Input_iconv.class | Bin 0 -> 719 bytes .../lib/gnu/gcj/convert/Output_8859_1.class | Bin 0 -> 1170 bytes .../lib/gnu/gcj/convert/Output_ASCII.class | Bin 0 -> 1164 bytes .../lib/gnu/gcj/convert/Output_EUCJIS.class | Bin 0 -> 633 bytes .../lib/gnu/gcj/convert/Output_JavaSrc.class | Bin 0 -> 1248 bytes .../lib/gnu/gcj/convert/Output_SJIS.class | Bin 0 -> 605 bytes .../lib/gnu/gcj/convert/Output_UTF8.class | Bin 0 -> 1704 bytes .../gcj/convert/Output_UnicodeLittleUnmarked.class | Bin 0 -> 830 bytes .../lib/gnu/gcj/convert/Output_iconv.class | Bin 0 -> 723 bytes .../lib/gnu/gcj/convert/UnicodeToBytes.class | Bin 0 -> 3627 bytes .../lib/gnu/gcj/io/DefaultMimeTypes.class | Bin 0 -> 5579 bytes libjava/classpath/lib/gnu/gcj/io/MimeTypes.class | Bin 0 -> 1793 bytes .../classpath/lib/gnu/gcj/io/SimpleSHSStream.class | Bin 0 -> 1323 bytes .../classpath/lib/gnu/gcj/jvmti/Breakpoint.class | Bin 0 -> 626 bytes .../lib/gnu/gcj/jvmti/BreakpointManager.class | Bin 0 -> 1275 bytes libjava/classpath/lib/gnu/gcj/jvmti/Location.class | Bin 0 -> 1096 bytes .../lib/gnu/gcj/runtime/BootClassLoader.class | Bin 0 -> 1561 bytes .../lib/gnu/gcj/runtime/ExtensionClassLoader.class | Bin 0 -> 864 bytes .../lib/gnu/gcj/runtime/FinalizerThread.class | Bin 0 -> 525 bytes .../lib/gnu/gcj/runtime/HelperClassLoader$1.class | Bin 0 -> 896 bytes .../lib/gnu/gcj/runtime/HelperClassLoader.class | Bin 0 -> 2189 bytes .../classpath/lib/gnu/gcj/runtime/JNIWeakRef.class | Bin 0 -> 363 bytes .../lib/gnu/gcj/runtime/NameFinder$Addr2Line.class | Bin 0 -> 1669 bytes .../classpath/lib/gnu/gcj/runtime/NameFinder.class | Bin 0 -> 5440 bytes .../gcj/runtime/PersistentByteMap$AccessMode.class | Bin 0 -> 991 bytes .../runtime/PersistentByteMap$ByteWrapper.class | Bin 0 -> 953 bytes .../runtime/PersistentByteMap$HashIterator.class | Bin 0 -> 1509 bytes .../gcj/runtime/PersistentByteMap$MapEntry.class | Bin 0 -> 877 bytes .../lib/gnu/gcj/runtime/PersistentByteMap.class | Bin 0 -> 9645 bytes .../lib/gnu/gcj/runtime/SharedLibHelper.class | Bin 0 -> 5568 bytes .../lib/gnu/gcj/runtime/SharedLibLoader.class | Bin 0 -> 2052 bytes .../lib/gnu/gcj/runtime/StringBuffer.class | Bin 0 -> 2514 bytes .../lib/gnu/gcj/runtime/SystemClassLoader.class | Bin 0 -> 2998 bytes .../lib/gnu/gcj/tools/gcj_dbtool/Fileset.class | Bin 0 -> 1534 bytes .../lib/gnu/gcj/tools/gcj_dbtool/Main.class | Bin 0 -> 10771 bytes .../lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class | Bin 0 -> 1101 bytes libjava/classpath/lib/gnu/gcj/util/Debug.class | Bin 0 -> 5432 bytes ...bleComponentList$VisibleComponentIterator.class | Bin 0 -> 2389 bytes .../awt/AWTUtilities$VisibleComponentList.class | Bin 0 -> 1070 bytes .../classpath/lib/gnu/java/awt/AWTUtilities.class | Bin 0 -> 5941 bytes .../classpath/lib/gnu/java/awt/BitMaskExtent.class | Bin 0 -> 788 bytes .../awt/BitwiseXORComposite$GeneralContext.class | Bin 0 -> 2206 bytes .../java/awt/BitwiseXORComposite$IntContext.class | Bin 0 -> 2306 bytes .../lib/gnu/java/awt/BitwiseXORComposite.class | Bin 0 -> 1207 bytes libjava/classpath/lib/gnu/java/awt/Buffers.class | Bin 0 -> 2865 bytes .../lib/gnu/java/awt/ClasspathToolkit.class | Bin 0 -> 2455 bytes .../lib/gnu/java/awt/ComponentDataBlitOp.class | Bin 0 -> 3258 bytes .../lib/gnu/java/awt/ComponentReshapeEvent.class | Bin 0 -> 588 bytes .../lib/gnu/java/awt/EmbeddedWindow.class | Bin 0 -> 2023 bytes .../classpath/lib/gnu/java/awt/EventModifier.class | Bin 0 -> 833 bytes .../lib/gnu/java/awt/GradientPaintContext.class | Bin 0 -> 2322 bytes .../lib/gnu/java/awt/LowPriorityEvent.class | Bin 0 -> 126 bytes .../lib/gnu/java/awt/color/CieXyzConverter.class | Bin 0 -> 928 bytes .../gnu/java/awt/color/ClutProfileConverter.class | Bin 0 -> 1763 bytes .../lib/gnu/java/awt/color/ColorLookUpTable.class | Bin 0 -> 6371 bytes .../gnu/java/awt/color/ColorSpaceConverter.class | Bin 0 -> 221 bytes .../gnu/java/awt/color/GrayProfileConverter.class | Bin 0 -> 1883 bytes .../gnu/java/awt/color/GrayScaleConverter.class | Bin 0 -> 1653 bytes .../gnu/java/awt/color/LinearRGBConverter.class | Bin 0 -> 1747 bytes .../lib/gnu/java/awt/color/ProfileHeader.class | Bin 0 -> 5228 bytes .../lib/gnu/java/awt/color/PyccConverter.class | Bin 0 -> 755 bytes .../gnu/java/awt/color/RgbProfileConverter.class | Bin 0 -> 3481 bytes .../lib/gnu/java/awt/color/SrgbConverter.class | Bin 0 -> 1766 bytes .../lib/gnu/java/awt/color/TagEntry.class | Bin 0 -> 1964 bytes .../gnu/java/awt/color/ToneReproductionCurve.class | Bin 0 -> 1850 bytes .../awt/dnd/GtkMouseDragGestureRecognizer.class | Bin 0 -> 3199 bytes .../dnd/peer/gtk/GtkDragSourceContextPeer.class | Bin 0 -> 4092 bytes .../dnd/peer/gtk/GtkDropTargetContextPeer.class | Bin 0 -> 1604 bytes .../java/awt/dnd/peer/gtk/GtkDropTargetPeer.class | Bin 0 -> 654 bytes .../lib/gnu/java/awt/font/FontDelegate.class | Bin 0 -> 792 bytes .../lib/gnu/java/awt/font/FontFactory.class | Bin 0 -> 581 bytes .../lib/gnu/java/awt/font/GNUGlyphVector.class | Bin 0 -> 6624 bytes .../lib/gnu/java/awt/font/autofit/AxisHints.class | Bin 0 -> 362 bytes .../lib/gnu/java/awt/font/autofit/Constants.class | Bin 0 -> 258 bytes .../lib/gnu/java/awt/font/autofit/GlyphHints.class | Bin 0 -> 972 bytes .../lib/gnu/java/awt/font/autofit/Latin.class | Bin 0 -> 4407 bytes .../lib/gnu/java/awt/font/autofit/LatinAxis.class | Bin 0 -> 450 bytes .../gnu/java/awt/font/autofit/LatinMetrics.class | Bin 0 -> 417 bytes .../lib/gnu/java/awt/font/autofit/Scaler.class | Bin 0 -> 426 bytes .../lib/gnu/java/awt/font/autofit/Script.class | Bin 0 -> 447 bytes .../gnu/java/awt/font/autofit/ScriptMetrics.class | Bin 0 -> 424 bytes .../lib/gnu/java/awt/font/autofit/Segment.class | Bin 0 -> 347 bytes .../lib/gnu/java/awt/font/autofit/Width.class | Bin 0 -> 338 bytes .../awt/font/opentype/CharGlyphMap$Dummy.class | Bin 0 -> 595 bytes .../awt/font/opentype/CharGlyphMap$Type0.class | Bin 0 -> 5509 bytes .../awt/font/opentype/CharGlyphMap$Type12.class | Bin 0 -> 1637 bytes .../awt/font/opentype/CharGlyphMap$Type4.class | Bin 0 -> 2808 bytes .../gnu/java/awt/font/opentype/CharGlyphMap.class | Bin 0 -> 2377 bytes .../gnu/java/awt/font/opentype/GlyphNamer.class | Bin 0 -> 21906 bytes .../font/opentype/MacResourceFork$Resource.class | Bin 0 -> 1571 bytes .../java/awt/font/opentype/MacResourceFork.class | Bin 0 -> 2474 bytes .../gnu/java/awt/font/opentype/NameDecoder.class | Bin 0 -> 8392 bytes .../gnu/java/awt/font/opentype/OpenTypeFont.class | Bin 0 -> 8291 bytes .../awt/font/opentype/OpenTypeFontFactory.class | Bin 0 -> 1609 bytes .../lib/gnu/java/awt/font/opentype/Scaler.class | Bin 0 -> 656 bytes .../java/awt/font/opentype/truetype/Fixed.class | Bin 0 -> 1969 bytes .../awt/font/opentype/truetype/GlyphLoader.class | Bin 0 -> 7309 bytes .../opentype/truetype/GlyphLocator$FourByte.class | Bin 0 -> 1050 bytes .../opentype/truetype/GlyphLocator$TwoByte.class | Bin 0 -> 1055 bytes .../awt/font/opentype/truetype/GlyphLocator.class | Bin 0 -> 1073 bytes .../awt/font/opentype/truetype/GlyphMeasurer.class | Bin 0 -> 2140 bytes .../font/opentype/truetype/TrueTypeScaler.class | Bin 0 -> 4706 bytes .../font/opentype/truetype/VirtualMachine.class | Bin 0 -> 25434 bytes .../gnu/java/awt/font/opentype/truetype/Zone.class | Bin 0 -> 4834 bytes .../font/opentype/truetype/ZonePathIterator.class | Bin 0 -> 2814 bytes .../ImageDecoder$DataInputStreamWrapper.class | Bin 0 -> 767 bytes .../lib/gnu/java/awt/image/ImageDecoder.class | Bin 0 -> 2977 bytes .../lib/gnu/java/awt/image/XBMDecoder.class | Bin 0 -> 2987 bytes .../gnu/java/awt/java2d/AbstractGraphics2D.class | Bin 0 -> 33135 bytes .../java/awt/java2d/AlphaCompositeContext.class | Bin 0 -> 3745 bytes .../lib/gnu/java/awt/java2d/CubicSegment.class | Bin 0 -> 3098 bytes .../awt/java2d/ImagePaint$ImagePaintContext.class | Bin 0 -> 2514 bytes .../lib/gnu/java/awt/java2d/ImagePaint.class | Bin 0 -> 1292 bytes .../lib/gnu/java/awt/java2d/LineSegment.class | Bin 0 -> 2054 bytes .../lib/gnu/java/awt/java2d/PolyEdge.class | Bin 0 -> 1559 bytes .../gnu/java/awt/java2d/PolyEdgeComparator.class | Bin 0 -> 752 bytes .../lib/gnu/java/awt/java2d/QuadSegment.class | Bin 0 -> 4635 bytes .../lib/gnu/java/awt/java2d/RasterGraphics.class | Bin 0 -> 940 bytes .../lib/gnu/java/awt/java2d/Segment.class | Bin 0 -> 1826 bytes .../lib/gnu/java/awt/java2d/ShapeCache.class | Bin 0 -> 551 bytes .../gnu/java/awt/java2d/TexturePaintContext.class | Bin 0 -> 3431 bytes .../lib/gnu/java/awt/peer/ClasspathFontPeer.class | Bin 0 -> 8543 bytes .../lib/gnu/java/awt/peer/EmbeddedWindowPeer.class | Bin 0 -> 189 bytes .../lib/gnu/java/awt/peer/GLightweightPeer.class | Bin 0 -> 7416 bytes .../awt/peer/NativeEventLoopRunningEvent.class | Bin 0 -> 608 bytes .../gnu/java/awt/peer/gtk/AsyncImage$Loader.class | Bin 0 -> 1343 bytes .../awt/peer/gtk/AsyncImage$NullImageSource.class | Bin 0 -> 1614 bytes .../lib/gnu/java/awt/peer/gtk/AsyncImage.class | Bin 0 -> 3561 bytes .../java/awt/peer/gtk/BufferedImageGraphics.class | Bin 0 -> 10724 bytes .../gnu/java/awt/peer/gtk/CairoGraphics2D.class | Bin 0 -> 36599 bytes .../peer/gtk/CairoSurface$CairoDataBuffer.class | Bin 0 -> 1519 bytes .../lib/gnu/java/awt/peer/gtk/CairoSurface.class | Bin 0 -> 5276 bytes .../java/awt/peer/gtk/CairoSurfaceGraphics.class | Bin 0 -> 7704 bytes .../gnu/java/awt/peer/gtk/ComponentGraphics.class | Bin 0 -> 12284 bytes .../java/awt/peer/gtk/ComponentGraphicsCopy.class | Bin 0 -> 2743 bytes .../java/awt/peer/gtk/FreetypeGlyphVector.class | Bin 0 -> 8741 bytes .../lib/gnu/java/awt/peer/gtk/GThreadMutex.class | Bin 0 -> 439 bytes .../awt/peer/gtk/GThreadNativeMethodRunner.class | Bin 0 -> 2869 bytes .../peer/gtk/GdkFontPeer$GdkFontLineMetrics.class | Bin 0 -> 1705 bytes .../awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class | Bin 0 -> 2341 bytes .../lib/gnu/java/awt/peer/gtk/GdkFontPeer.class | Bin 0 -> 9155 bytes .../awt/peer/gtk/GdkGraphicsConfiguration.class | Bin 0 -> 3231 bytes .../java/awt/peer/gtk/GdkGraphicsEnvironment.class | Bin 0 -> 2766 bytes .../gtk/GdkPixbufDecoder$GdkPixbufReader.class | Bin 0 -> 5200 bytes .../gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class | Bin 0 -> 1825 bytes .../gtk/GdkPixbufDecoder$GdkPixbufWriter.class | Bin 0 -> 5158 bytes .../gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class | Bin 0 -> 1878 bytes .../gtk/GdkPixbufDecoder$ImageFormatSpec.class | Bin 0 -> 1003 bytes .../gnu/java/awt/peer/gtk/GdkPixbufDecoder.class | Bin 0 -> 7774 bytes .../lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class | Bin 0 -> 1566 bytes .../GdkScreenGraphicsDevice$X11DisplayMode.class | Bin 0 -> 626 bytes .../awt/peer/gtk/GdkScreenGraphicsDevice.class | Bin 0 -> 5577 bytes .../lib/gnu/java/awt/peer/gtk/GtkButtonPeer.class | Bin 0 -> 1557 bytes .../lib/gnu/java/awt/peer/gtk/GtkCanvasPeer.class | Bin 0 -> 664 bytes .../awt/peer/gtk/GtkCheckboxMenuItemPeer.class | Bin 0 -> 1170 bytes .../gnu/java/awt/peer/gtk/GtkCheckboxPeer.class | Bin 0 -> 3001 bytes .../lib/gnu/java/awt/peer/gtk/GtkChoicePeer.class | Bin 0 -> 2221 bytes .../lib/gnu/java/awt/peer/gtk/GtkClipboard.class | Bin 0 -> 6435 bytes .../java/awt/peer/gtk/GtkClipboardNotifier.class | Bin 0 -> 1567 bytes .../gtk/GtkComponentPeer$RepaintTimerTask.class | Bin 0 -> 1498 bytes .../gnu/java/awt/peer/gtk/GtkComponentPeer.class | Bin 0 -> 18251 bytes .../gnu/java/awt/peer/gtk/GtkContainerPeer.class | Bin 0 -> 2481 bytes .../lib/gnu/java/awt/peer/gtk/GtkCursor.class | Bin 0 -> 979 bytes .../lib/gnu/java/awt/peer/gtk/GtkDialogPeer.class | Bin 0 -> 914 bytes .../java/awt/peer/gtk/GtkEmbeddedWindowPeer.class | Bin 0 -> 847 bytes .../gnu/java/awt/peer/gtk/GtkFileDialogPeer.class | Bin 0 -> 4290 bytes .../lib/gnu/java/awt/peer/gtk/GtkFramePeer.class | Bin 0 -> 4563 bytes .../lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class | Bin 0 -> 1974 bytes .../lib/gnu/java/awt/peer/gtk/GtkImage.class | Bin 0 -> 7420 bytes .../gnu/java/awt/peer/gtk/GtkImageConsumer.class | Bin 0 -> 3184 bytes .../lib/gnu/java/awt/peer/gtk/GtkLabelPeer.class | Bin 0 -> 1390 bytes .../lib/gnu/java/awt/peer/gtk/GtkListPeer.class | Bin 0 -> 3563 bytes .../lib/gnu/java/awt/peer/gtk/GtkMainThread.class | Bin 0 -> 2319 bytes .../lib/gnu/java/awt/peer/gtk/GtkMenuBarPeer.class | Bin 0 -> 1236 bytes .../java/awt/peer/gtk/GtkMenuComponentPeer.class | Bin 0 -> 1145 bytes .../gnu/java/awt/peer/gtk/GtkMenuItemPeer.class | Bin 0 -> 1236 bytes .../lib/gnu/java/awt/peer/gtk/GtkMenuPeer.class | Bin 0 -> 1927 bytes .../gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class | Bin 0 -> 1504 bytes .../lib/gnu/java/awt/peer/gtk/GtkPanelPeer.class | Bin 0 -> 850 bytes .../gnu/java/awt/peer/gtk/GtkPopupMenuPeer.class | Bin 0 -> 1015 bytes .../gnu/java/awt/peer/gtk/GtkScrollPanePeer.class | Bin 0 -> 1785 bytes .../gnu/java/awt/peer/gtk/GtkScrollbarPeer.class | Bin 0 -> 1629 bytes .../lib/gnu/java/awt/peer/gtk/GtkSelection.class | Bin 0 -> 7019 bytes .../gnu/java/awt/peer/gtk/GtkTextAreaPeer.class | Bin 0 -> 4023 bytes .../gnu/java/awt/peer/gtk/GtkTextFieldPeer.class | Bin 0 -> 3662 bytes .../java/awt/peer/gtk/GtkToolkit$LRUCache.class | Bin 0 -> 672 bytes .../lib/gnu/java/awt/peer/gtk/GtkToolkit.class | Bin 0 -> 17432 bytes .../gnu/java/awt/peer/gtk/GtkVolatileImage.class | Bin 0 -> 4243 bytes .../lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class | Bin 0 -> 7753 bytes .../java/awt/peer/gtk/VolatileImageGraphics.class | Bin 0 -> 7987 bytes .../headless/HeadlessGraphicsEnvironment.class | Bin 0 -> 2568 bytes .../java/awt/peer/headless/HeadlessToolkit.class | Bin 0 -> 7617 bytes .../lib/gnu/java/awt/peer/qt/MainQtThread.class | Bin 0 -> 830 bytes .../lib/gnu/java/awt/peer/qt/NativeWrapper.class | Bin 0 -> 333 bytes .../lib/gnu/java/awt/peer/qt/QMatrix.class | Bin 0 -> 823 bytes .../lib/gnu/java/awt/peer/qt/QPainterPath.class | Bin 0 -> 1782 bytes .../classpath/lib/gnu/java/awt/peer/qt/QPen.class | Bin 0 -> 926 bytes .../lib/gnu/java/awt/peer/qt/QtAudioClip.class | Bin 0 -> 1506 bytes .../lib/gnu/java/awt/peer/qt/QtButtonPeer.class | Bin 0 -> 1370 bytes .../lib/gnu/java/awt/peer/qt/QtCanvasPeer.class | Bin 0 -> 846 bytes .../lib/gnu/java/awt/peer/qt/QtCheckboxPeer.class | Bin 0 -> 2071 bytes .../lib/gnu/java/awt/peer/qt/QtChoicePeer.class | Bin 0 -> 1760 bytes .../gnu/java/awt/peer/qt/QtComponentGraphics.class | Bin 0 -> 1920 bytes .../peer/qt/QtComponentPeer$RepaintTimerTask.class | Bin 0 -> 1132 bytes .../lib/gnu/java/awt/peer/qt/QtComponentPeer.class | Bin 0 -> 16303 bytes .../lib/gnu/java/awt/peer/qt/QtContainerPeer.class | Bin 0 -> 1580 bytes .../lib/gnu/java/awt/peer/qt/QtDialogPeer.class | Bin 0 -> 1208 bytes .../java/awt/peer/qt/QtEmbeddedWindowPeer.class | Bin 0 -> 664 bytes .../gnu/java/awt/peer/qt/QtFileDialogPeer.class | Bin 0 -> 1336 bytes .../lib/gnu/java/awt/peer/qt/QtFontMetrics.class | Bin 0 -> 2250 bytes .../lib/gnu/java/awt/peer/qt/QtFontPeer.class | Bin 0 -> 4252 bytes .../lib/gnu/java/awt/peer/qt/QtFramePeer.class | Bin 0 -> 2945 bytes .../lib/gnu/java/awt/peer/qt/QtGraphics.class | Bin 0 -> 17525 bytes .../java/awt/peer/qt/QtGraphicsEnvironment.class | Bin 0 -> 2031 bytes .../lib/gnu/java/awt/peer/qt/QtImage.class | Bin 0 -> 10031 bytes .../lib/gnu/java/awt/peer/qt/QtImageConsumer.class | Bin 0 -> 2774 bytes .../java/awt/peer/qt/QtImageDirectGraphics.class | Bin 0 -> 3155 bytes .../lib/gnu/java/awt/peer/qt/QtImageGraphics.class | Bin 0 -> 2582 bytes .../lib/gnu/java/awt/peer/qt/QtLabelPeer.class | Bin 0 -> 910 bytes .../lib/gnu/java/awt/peer/qt/QtListPeer.class | Bin 0 -> 3498 bytes .../lib/gnu/java/awt/peer/qt/QtMenuBarPeer.class | Bin 0 -> 1748 bytes .../gnu/java/awt/peer/qt/QtMenuComponentPeer.class | Bin 0 -> 1191 bytes .../lib/gnu/java/awt/peer/qt/QtMenuItemPeer.class | Bin 0 -> 1993 bytes .../lib/gnu/java/awt/peer/qt/QtMenuPeer.class | Bin 0 -> 3060 bytes .../lib/gnu/java/awt/peer/qt/QtPanelPeer.class | Bin 0 -> 605 bytes .../lib/gnu/java/awt/peer/qt/QtPopupMenuPeer.class | Bin 0 -> 1468 bytes .../peer/qt/QtRepaintThread$RepaintComponent.class | Bin 0 -> 964 bytes .../lib/gnu/java/awt/peer/qt/QtRepaintThread.class | Bin 0 -> 1750 bytes .../lib/gnu/java/awt/peer/qt/QtScreenDevice.class | Bin 0 -> 2089 bytes .../awt/peer/qt/QtScreenDeviceConfiguration.class | Bin 0 -> 2755 bytes .../gnu/java/awt/peer/qt/QtScrollPanePeer.class | Bin 0 -> 1410 bytes .../lib/gnu/java/awt/peer/qt/QtScrollbarPeer.class | Bin 0 -> 1602 bytes .../lib/gnu/java/awt/peer/qt/QtTextAreaPeer.class | Bin 0 -> 3522 bytes .../lib/gnu/java/awt/peer/qt/QtTextFieldPeer.class | Bin 0 -> 2954 bytes .../lib/gnu/java/awt/peer/qt/QtToolkit.class | Bin 0 -> 12257 bytes .../gnu/java/awt/peer/qt/QtVolatileImage$1.class | Bin 0 -> 716 bytes .../lib/gnu/java/awt/peer/qt/QtVolatileImage.class | Bin 0 -> 7103 bytes .../lib/gnu/java/awt/peer/qt/QtWindowPeer.class | Bin 0 -> 849 bytes .../peer/swing/SwingButtonPeer$SwingButton.class | Bin 0 -> 2148 bytes .../SwingButtonPeer$SwingButtonListener.class | Bin 0 -> 1280 bytes .../gnu/java/awt/peer/swing/SwingButtonPeer.class | Bin 0 -> 1351 bytes .../gnu/java/awt/peer/swing/SwingCanvasPeer.class | Bin 0 -> 572 bytes .../gnu/java/awt/peer/swing/SwingComponent.class | Bin 0 -> 335 bytes .../java/awt/peer/swing/SwingComponentPeer.class | Bin 0 -> 12438 bytes .../java/awt/peer/swing/SwingContainerPeer.class | Bin 0 -> 5446 bytes .../gnu/java/awt/peer/swing/SwingFramePeer.class | Bin 0 -> 2549 bytes .../awt/peer/swing/SwingLabelPeer$SwingLabel.class | Bin 0 -> 1996 bytes .../gnu/java/awt/peer/swing/SwingLabelPeer.class | Bin 0 -> 1575 bytes .../awt/peer/swing/SwingListPeer$SwingList.class | Bin 0 -> 2229 bytes .../gnu/java/awt/peer/swing/SwingListPeer.class | Bin 0 -> 4649 bytes .../peer/swing/SwingMenuBarPeer$SwingMenuBar.class | Bin 0 -> 1590 bytes .../gnu/java/awt/peer/swing/SwingMenuBarPeer.class | Bin 0 -> 3584 bytes .../SwingMenuItemPeer$SwingMenuItemListener.class | Bin 0 -> 1326 bytes .../java/awt/peer/swing/SwingMenuItemPeer.class | Bin 0 -> 1645 bytes .../awt/peer/swing/SwingMenuPeer$SwingMenu.class | Bin 0 -> 1556 bytes .../gnu/java/awt/peer/swing/SwingMenuPeer.class | Bin 0 -> 2958 bytes .../gnu/java/awt/peer/swing/SwingPanelPeer.class | Bin 0 -> 549 bytes .../swing/SwingTextAreaPeer$SwingTextArea.class | Bin 0 -> 2265 bytes .../java/awt/peer/swing/SwingTextAreaPeer.class | Bin 0 -> 3822 bytes .../swing/SwingTextFieldPeer$SwingTextField.class | Bin 0 -> 2190 bytes .../java/awt/peer/swing/SwingTextFieldPeer.class | Bin 0 -> 3242 bytes .../lib/gnu/java/awt/peer/swing/SwingToolkit.class | Bin 0 -> 2296 bytes .../gnu/java/awt/peer/swing/SwingWindowPeer.class | Bin 0 -> 556 bytes .../gnu/java/awt/print/JavaPrinterGraphics.class | Bin 0 -> 12394 bytes .../lib/gnu/java/awt/print/JavaPrinterJob.class | Bin 0 -> 6418 bytes .../gnu/java/awt/print/PostScriptGraphics2D.class | Bin 0 -> 30082 bytes .../lib/gnu/java/awt/print/SpooledDocument.class | Bin 0 -> 1252 bytes .../lib/gnu/java/beans/BeanInfoEmbryo.class | Bin 0 -> 4796 bytes .../gnu/java/beans/DefaultExceptionListener.class | Bin 0 -> 1092 bytes .../classpath/lib/gnu/java/beans/DoubleKey.class | Bin 0 -> 993 bytes .../lib/gnu/java/beans/DummyAppletContext.class | Bin 0 -> 2208 bytes .../lib/gnu/java/beans/DummyAppletStub.class | Bin 0 -> 1275 bytes .../lib/gnu/java/beans/ExplicitBeanInfo.class | Bin 0 -> 2128 bytes .../gnu/java/beans/IntrospectionIncubator.class | Bin 0 -> 8782 bytes .../gnu/java/beans/decoder/AbstractContext.class | Bin 0 -> 811 bytes .../decoder/AbstractCreatableObjectContext.class | Bin 0 -> 1412 bytes .../beans/decoder/AbstractElementHandler.class | Bin 0 -> 4436 bytes .../java/beans/decoder/AbstractObjectContext.class | Bin 0 -> 2066 bytes .../lib/gnu/java/beans/decoder/ArrayContext.class | Bin 0 -> 2068 bytes .../lib/gnu/java/beans/decoder/ArrayHandler.class | Bin 0 -> 2748 bytes .../gnu/java/beans/decoder/AssemblyException.class | Bin 0 -> 393 bytes .../gnu/java/beans/decoder/BooleanHandler.class | Bin 0 -> 1035 bytes .../lib/gnu/java/beans/decoder/ByteHandler.class | Bin 0 -> 718 bytes .../lib/gnu/java/beans/decoder/CharHandler.class | Bin 0 -> 958 bytes .../lib/gnu/java/beans/decoder/ClassHandler.class | Bin 0 -> 880 bytes .../java/beans/decoder/ConstructorContext.class | Bin 0 -> 2106 bytes .../lib/gnu/java/beans/decoder/Context.class | Bin 0 -> 704 bytes .../gnu/java/beans/decoder/DecoderContext.class | Bin 0 -> 1913 bytes .../lib/gnu/java/beans/decoder/DoubleHandler.class | Bin 0 -> 728 bytes .../lib/gnu/java/beans/decoder/DummyContext.class | Bin 0 -> 1589 bytes .../lib/gnu/java/beans/decoder/DummyHandler.class | Bin 0 -> 2314 bytes .../gnu/java/beans/decoder/ElementHandler.class | Bin 0 -> 860 bytes .../lib/gnu/java/beans/decoder/FloatHandler.class | Bin 0 -> 723 bytes .../java/beans/decoder/GrowableArrayContext.class | Bin 0 -> 2456 bytes .../lib/gnu/java/beans/decoder/IndexContext.class | Bin 0 -> 2043 bytes .../lib/gnu/java/beans/decoder/IntHandler.class | Bin 0 -> 721 bytes .../lib/gnu/java/beans/decoder/JavaHandler.class | Bin 0 -> 1942 bytes .../lib/gnu/java/beans/decoder/LongHandler.class | Bin 0 -> 718 bytes .../lib/gnu/java/beans/decoder/MethodContext.class | Bin 0 -> 2509 bytes .../lib/gnu/java/beans/decoder/MethodFinder.class | Bin 0 -> 3321 bytes .../lib/gnu/java/beans/decoder/NullHandler.class | Bin 0 -> 911 bytes .../lib/gnu/java/beans/decoder/ObjectContext.class | Bin 0 -> 1498 bytes .../lib/gnu/java/beans/decoder/ObjectHandler.class | Bin 0 -> 3188 bytes .../PersistenceParser$ArrayHandlerCreator.class | Bin 0 -> 971 bytes .../PersistenceParser$BooleanHandlerCreator.class | Bin 0 -> 979 bytes .../PersistenceParser$ByteHandlerCreator.class | Bin 0 -> 967 bytes .../PersistenceParser$CharHandlerCreator.class | Bin 0 -> 967 bytes .../PersistenceParser$ClassHandlerCreator.class | Bin 0 -> 971 bytes .../beans/decoder/PersistenceParser$Creator.class | Bin 0 -> 348 bytes .../PersistenceParser$DoubleHandlerCreator.class | Bin 0 -> 975 bytes .../PersistenceParser$FloatHandlerCreator.class | Bin 0 -> 971 bytes .../PersistenceParser$IntHandlerCreator.class | Bin 0 -> 963 bytes .../PersistenceParser$JavaHandlerCreator.class | Bin 0 -> 934 bytes .../PersistenceParser$LongHandlerCreator.class | Bin 0 -> 967 bytes .../PersistenceParser$NullHandlerCreator.class | Bin 0 -> 967 bytes .../PersistenceParser$ObjectHandlerCreator.class | Bin 0 -> 975 bytes .../PersistenceParser$ShortHandlerCreator.class | Bin 0 -> 971 bytes .../PersistenceParser$StringHandlerCreator.class | Bin 0 -> 975 bytes .../PersistenceParser$VoidHandlerCreator.class | Bin 0 -> 967 bytes .../gnu/java/beans/decoder/PersistenceParser.class | Bin 0 -> 8449 bytes .../gnu/java/beans/decoder/PropertyContext.class | Bin 0 -> 3270 bytes .../lib/gnu/java/beans/decoder/ShortHandler.class | Bin 0 -> 723 bytes .../lib/gnu/java/beans/decoder/SimpleHandler.class | Bin 0 -> 2072 bytes .../java/beans/decoder/StaticMethodContext.class | Bin 0 -> 2088 bytes .../lib/gnu/java/beans/decoder/StringHandler.class | Bin 0 -> 586 bytes .../lib/gnu/java/beans/decoder/VoidHandler.class | Bin 0 -> 2834 bytes .../lib/gnu/java/beans/editors/ColorEditor.class | Bin 0 -> 2251 bytes .../lib/gnu/java/beans/editors/FontEditor.class | Bin 0 -> 1381 bytes .../java/beans/editors/NativeBooleanEditor.class | Bin 0 -> 1232 bytes .../gnu/java/beans/editors/NativeByteEditor.class | Bin 0 -> 850 bytes .../java/beans/editors/NativeDoubleEditor.class | Bin 0 -> 860 bytes .../gnu/java/beans/editors/NativeFloatEditor.class | Bin 0 -> 855 bytes .../gnu/java/beans/editors/NativeIntEditor.class | Bin 0 -> 853 bytes .../gnu/java/beans/editors/NativeLongEditor.class | Bin 0 -> 850 bytes .../gnu/java/beans/editors/NativeShortEditor.class | Bin 0 -> 855 bytes .../lib/gnu/java/beans/editors/StringEditor.class | Bin 0 -> 735 bytes .../beans/encoder/ArrayPersistenceDelegate.class | Bin 0 -> 3069 bytes .../beans/encoder/ClassPersistenceDelegate.class | Bin 0 -> 972 bytes .../encoder/CollectionPersistenceDelegate.class | Bin 0 -> 1511 bytes .../lib/gnu/java/beans/encoder/Context.class | Bin 0 -> 1179 bytes .../java/beans/encoder/GenericScannerState.class | Bin 0 -> 5047 bytes .../java/beans/encoder/IgnoringScannerState.class | Bin 0 -> 2183 bytes .../beans/encoder/MapPersistenceDelegate.class | Bin 0 -> 1681 bytes .../lib/gnu/java/beans/encoder/ObjectId.class | Bin 0 -> 2310 bytes .../encoder/PrimitivePersistenceDelegate.class | Bin 0 -> 1210 bytes .../java/beans/encoder/ReportingScannerState.class | Bin 0 -> 3297 bytes .../gnu/java/beans/encoder/Root$RootElement.class | Bin 0 -> 1105 bytes .../lib/gnu/java/beans/encoder/Root.class | Bin 0 -> 2009 bytes .../lib/gnu/java/beans/encoder/ScanEngine.class | Bin 0 -> 10282 bytes .../lib/gnu/java/beans/encoder/ScannerState.class | Bin 0 -> 4519 bytes .../lib/gnu/java/beans/encoder/StAXWriter.class | Bin 0 -> 3532 bytes .../lib/gnu/java/beans/encoder/Writer.class | Bin 0 -> 579 bytes .../encoder/elements/ArrayInstantiation.class | Bin 0 -> 1307 bytes .../java/beans/encoder/elements/Array_Get.class | Bin 0 -> 803 bytes .../java/beans/encoder/elements/Array_Set.class | Bin 0 -> 803 bytes .../beans/encoder/elements/ClassResolution.class | Bin 0 -> 881 bytes .../gnu/java/beans/encoder/elements/Element.class | Bin 0 -> 1800 bytes .../gnu/java/beans/encoder/elements/List_Get.class | Bin 0 -> 626 bytes .../gnu/java/beans/encoder/elements/List_Set.class | Bin 0 -> 626 bytes .../beans/encoder/elements/MethodInvocation.class | Bin 0 -> 819 bytes .../java/beans/encoder/elements/NullObject.class | Bin 0 -> 709 bytes .../encoder/elements/ObjectInstantiation.class | Bin 0 -> 1224 bytes .../beans/encoder/elements/ObjectReference.class | Bin 0 -> 943 bytes .../encoder/elements/PrimitiveInstantiation.class | Bin 0 -> 949 bytes .../beans/encoder/elements/StaticFieldAccess.class | Bin 0 -> 972 bytes .../encoder/elements/StaticMethodInvocation.class | Bin 0 -> 988 bytes .../beans/encoder/elements/StringReference.class | Bin 0 -> 867 bytes .../lib/gnu/java/io/ASN1ParsingException.class | Bin 0 -> 453 bytes .../lib/gnu/java/io/Base64InputStream.class | Bin 0 -> 2758 bytes .../gnu/java/io/ClassLoaderObjectInputStream.class | Bin 0 -> 881 bytes .../lib/gnu/java/io/NullOutputStream.class | Bin 0 -> 710 bytes .../lib/gnu/java/io/ObjectIdentityMap2Int.class | Bin 0 -> 2650 bytes .../lib/gnu/java/io/ObjectIdentityWrapper.class | Bin 0 -> 1122 bytes .../classpath/lib/gnu/java/io/PlatformHelper.class | Bin 0 -> 1866 bytes .../classpath/lib/gnu/java/lang/ArrayHelper.class | Bin 0 -> 716 bytes libjava/classpath/lib/gnu/java/lang/CharData.class | Bin 0 -> 41184 bytes .../classpath/lib/gnu/java/lang/ClassHelper.class | Bin 0 -> 3642 bytes .../lib/gnu/java/lang/InstrumentationImpl.class | Bin 0 -> 3425 bytes .../classpath/lib/gnu/java/lang/MainThread.class | Bin 0 -> 3204 bytes .../lib/gnu/java/lang/VMInstrumentationImpl.class | Bin 0 -> 1086 bytes .../lib/gnu/java/lang/management/BeanImpl.class | Bin 0 -> 15568 bytes .../lang/management/ClassLoadingMXBeanImpl.class | Bin 0 -> 1114 bytes .../lang/management/CompilationMXBeanImpl.class | Bin 0 -> 1324 bytes .../management/GarbageCollectorMXBeanImpl.class | Bin 0 -> 900 bytes .../java/lang/management/MemoryMXBeanImpl.class | Bin 0 -> 7173 bytes .../lang/management/MemoryManagerMXBeanImpl.class | Bin 0 -> 1194 bytes .../lang/management/MemoryPoolMXBeanImpl.class | Bin 0 -> 4031 bytes .../management/OperatingSystemMXBeanImpl.class | Bin 0 -> 1085 bytes .../java/lang/management/RuntimeMXBeanImpl.class | Bin 0 -> 3865 bytes .../java/lang/management/ThreadMXBeanImpl.class | Bin 0 -> 5137 bytes .../lang/management/VMClassLoadingMXBeanImpl.class | Bin 0 -> 475 bytes .../lang/management/VMCompilationMXBeanImpl.class | Bin 0 -> 384 bytes .../management/VMGarbageCollectorMXBeanImpl.class | Bin 0 -> 440 bytes .../java/lang/management/VMMemoryMXBeanImpl.class | Bin 0 -> 897 bytes .../management/VMMemoryManagerMXBeanImpl.class | Bin 0 -> 1497 bytes .../lang/management/VMMemoryPoolMXBeanImpl.class | Bin 0 -> 950 bytes .../java/lang/management/VMRuntimeMXBeanImpl.class | Bin 0 -> 1273 bytes .../java/lang/management/VMThreadMXBeanImpl.class | Bin 0 -> 1742 bytes .../java/lang/reflect/ClassSignatureParser.class | Bin 0 -> 1982 bytes .../java/lang/reflect/FieldSignatureParser.class | Bin 0 -> 1717 bytes .../java/lang/reflect/GenericArrayTypeImpl.class | Bin 0 -> 1366 bytes .../java/lang/reflect/GenericSignatureParser.class | Bin 0 -> 5172 bytes .../java/lang/reflect/MethodSignatureParser.class | Bin 0 -> 3626 bytes .../java/lang/reflect/ParameterizedTypeImpl.class | Bin 0 -> 3079 bytes .../lib/gnu/java/lang/reflect/TypeImpl.class | Bin 0 -> 735 bytes .../lib/gnu/java/lang/reflect/TypeSignature.class | Bin 0 -> 4010 bytes .../gnu/java/lang/reflect/TypeVariableImpl.class | Bin 0 -> 1659 bytes .../java/lang/reflect/UnresolvedTypeVariable.class | Bin 0 -> 1893 bytes .../gnu/java/lang/reflect/WildcardTypeImpl.class | Bin 0 -> 1856 bytes .../classpath/lib/gnu/java/locale/Calendar.class | Bin 0 -> 1343 bytes .../lib/gnu/java/locale/Calendar_de.class | Bin 0 -> 715 bytes .../lib/gnu/java/locale/Calendar_en.class | Bin 0 -> 551 bytes .../lib/gnu/java/locale/Calendar_nl.class | Bin 0 -> 660 bytes .../classpath/lib/gnu/java/locale/LocaleData.class | Bin 0 -> 6225 bytes .../lib/gnu/java/locale/LocaleHelper.class | Bin 0 -> 2636 bytes .../lib/gnu/java/locale/LocaleInformation.class | Bin 0 -> 328 bytes .../gnu/java/locale/LocaleInformation_af_ZA.class | Bin 0 -> 2305 bytes .../gnu/java/locale/LocaleInformation_ar_AE.class | Bin 0 -> 2443 bytes .../gnu/java/locale/LocaleInformation_ar_BH.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_DZ.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_EG.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_IN.class | Bin 0 -> 2454 bytes .../gnu/java/locale/LocaleInformation_ar_IQ.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_JO.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_ar_KW.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_LB.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_ar_LY.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_MA.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_OM.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_QA.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_SD.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_SY.class | Bin 0 -> 2304 bytes .../gnu/java/locale/LocaleInformation_ar_TN.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_ar_YE.class | Bin 0 -> 2442 bytes .../gnu/java/locale/LocaleInformation_be_BY.class | Bin 0 -> 2512 bytes .../gnu/java/locale/LocaleInformation_bn_IN.class | Bin 0 -> 2597 bytes .../gnu/java/locale/LocaleInformation_br_FR.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_bs_BA.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_ca_ES.class | Bin 0 -> 2266 bytes .../gnu/java/locale/LocaleInformation_cs_CZ.class | Bin 0 -> 2328 bytes .../gnu/java/locale/LocaleInformation_cy_GB.class | Bin 0 -> 2238 bytes .../gnu/java/locale/LocaleInformation_da_DK.class | Bin 0 -> 2290 bytes .../lib/gnu/java/locale/LocaleInformation_de.class | Bin 0 -> 3408 bytes .../gnu/java/locale/LocaleInformation_de_AT.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_de_BE.class | Bin 0 -> 2296 bytes .../gnu/java/locale/LocaleInformation_de_CH.class | Bin 0 -> 2297 bytes .../gnu/java/locale/LocaleInformation_de_DE.class | Bin 0 -> 2296 bytes .../gnu/java/locale/LocaleInformation_de_LU.class | Bin 0 -> 2298 bytes .../gnu/java/locale/LocaleInformation_el_GR.class | Bin 0 -> 2526 bytes .../lib/gnu/java/locale/LocaleInformation_en.class | Bin 0 -> 5113 bytes .../gnu/java/locale/LocaleInformation_en_AU.class | Bin 0 -> 2289 bytes .../gnu/java/locale/LocaleInformation_en_BW.class | Bin 0 -> 1713 bytes .../gnu/java/locale/LocaleInformation_en_CA.class | Bin 0 -> 2313 bytes .../gnu/java/locale/LocaleInformation_en_DK.class | Bin 0 -> 2292 bytes .../gnu/java/locale/LocaleInformation_en_GB.class | Bin 0 -> 2290 bytes .../gnu/java/locale/LocaleInformation_en_HK.class | Bin 0 -> 2312 bytes .../gnu/java/locale/LocaleInformation_en_IE.class | Bin 0 -> 2290 bytes .../gnu/java/locale/LocaleInformation_en_IN.class | Bin 0 -> 2324 bytes .../gnu/java/locale/LocaleInformation_en_NZ.class | Bin 0 -> 2289 bytes .../gnu/java/locale/LocaleInformation_en_PH.class | Bin 0 -> 2313 bytes .../gnu/java/locale/LocaleInformation_en_SG.class | Bin 0 -> 2309 bytes .../gnu/java/locale/LocaleInformation_en_US.class | Bin 0 -> 2315 bytes .../gnu/java/locale/LocaleInformation_en_ZA.class | Bin 0 -> 2289 bytes .../gnu/java/locale/LocaleInformation_en_ZW.class | Bin 0 -> 1713 bytes .../gnu/java/locale/LocaleInformation_es_AR.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_BO.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_es_CL.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_CO.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_CR.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_DO.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_EC.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_ES.class | Bin 0 -> 2269 bytes .../gnu/java/locale/LocaleInformation_es_GT.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_HN.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_es_MX.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_NI.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_es_PA.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_es_PE.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_es_PR.class | Bin 0 -> 2271 bytes .../gnu/java/locale/LocaleInformation_es_PY.class | Bin 0 -> 2273 bytes .../gnu/java/locale/LocaleInformation_es_SV.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_es_US.class | Bin 0 -> 2292 bytes .../gnu/java/locale/LocaleInformation_es_UY.class | Bin 0 -> 2272 bytes .../gnu/java/locale/LocaleInformation_es_VE.class | Bin 0 -> 2273 bytes .../gnu/java/locale/LocaleInformation_et_EE.class | Bin 0 -> 2300 bytes .../gnu/java/locale/LocaleInformation_eu_ES.class | Bin 0 -> 2293 bytes .../gnu/java/locale/LocaleInformation_fa_IR.class | Bin 0 -> 2430 bytes .../gnu/java/locale/LocaleInformation_fi_FI.class | Bin 0 -> 2380 bytes .../gnu/java/locale/LocaleInformation_fo_FO.class | Bin 0 -> 2317 bytes .../gnu/java/locale/LocaleInformation_fr_BE.class | Bin 0 -> 2267 bytes .../gnu/java/locale/LocaleInformation_fr_CA.class | Bin 0 -> 2269 bytes .../gnu/java/locale/LocaleInformation_fr_CH.class | Bin 0 -> 2263 bytes .../gnu/java/locale/LocaleInformation_fr_FR.class | Bin 0 -> 2261 bytes .../gnu/java/locale/LocaleInformation_fr_LU.class | Bin 0 -> 2264 bytes .../gnu/java/locale/LocaleInformation_ga_IE.class | Bin 0 -> 2367 bytes .../gnu/java/locale/LocaleInformation_gd_GB.class | Bin 0 -> 2380 bytes .../gnu/java/locale/LocaleInformation_gl_ES.class | Bin 0 -> 2265 bytes .../gnu/java/locale/LocaleInformation_gv_GB.class | Bin 0 -> 2369 bytes .../gnu/java/locale/LocaleInformation_he_IL.class | Bin 0 -> 2395 bytes .../gnu/java/locale/LocaleInformation_hi_IN.class | Bin 0 -> 2533 bytes .../gnu/java/locale/LocaleInformation_hr_HR.class | Bin 0 -> 2295 bytes .../gnu/java/locale/LocaleInformation_hu_HU.class | Bin 0 -> 2289 bytes .../gnu/java/locale/LocaleInformation_id_ID.class | Bin 0 -> 2277 bytes .../gnu/java/locale/LocaleInformation_it_CH.class | Bin 0 -> 2308 bytes .../gnu/java/locale/LocaleInformation_it_IT.class | Bin 0 -> 2280 bytes .../gnu/java/locale/LocaleInformation_iw_IL.class | Bin 0 -> 2395 bytes .../gnu/java/locale/LocaleInformation_ja_JP.class | Bin 0 -> 2290 bytes .../gnu/java/locale/LocaleInformation_ka_GE.class | Bin 0 -> 2718 bytes .../gnu/java/locale/LocaleInformation_kl_GL.class | Bin 0 -> 2346 bytes .../gnu/java/locale/LocaleInformation_ko_KR.class | Bin 0 -> 2371 bytes .../gnu/java/locale/LocaleInformation_kw_GB.class | Bin 0 -> 2339 bytes .../gnu/java/locale/LocaleInformation_lt_LT.class | Bin 0 -> 2353 bytes .../gnu/java/locale/LocaleInformation_lv_LV.class | Bin 0 -> 2342 bytes .../gnu/java/locale/LocaleInformation_mi_NZ.class | Bin 0 -> 2370 bytes .../gnu/java/locale/LocaleInformation_mk_MK.class | Bin 0 -> 2468 bytes .../gnu/java/locale/LocaleInformation_mr_IN.class | Bin 0 -> 2496 bytes .../gnu/java/locale/LocaleInformation_mt_MT.class | Bin 0 -> 2331 bytes .../lib/gnu/java/locale/LocaleInformation_nl.class | Bin 0 -> 4111 bytes .../gnu/java/locale/LocaleInformation_nl_BE.class | Bin 0 -> 2273 bytes .../gnu/java/locale/LocaleInformation_nl_NL.class | Bin 0 -> 2266 bytes .../gnu/java/locale/LocaleInformation_nn_NO.class | Bin 0 -> 2281 bytes .../gnu/java/locale/LocaleInformation_no_NO.class | Bin 0 -> 2287 bytes .../gnu/java/locale/LocaleInformation_oc_FR.class | Bin 0 -> 2265 bytes .../gnu/java/locale/LocaleInformation_pl_PL.class | Bin 0 -> 2295 bytes .../gnu/java/locale/LocaleInformation_pt_BR.class | Bin 0 -> 2279 bytes .../gnu/java/locale/LocaleInformation_pt_PT.class | Bin 0 -> 2280 bytes .../gnu/java/locale/LocaleInformation_ro_RO.class | Bin 0 -> 2283 bytes .../gnu/java/locale/LocaleInformation_ru_RU.class | Bin 0 -> 2490 bytes .../gnu/java/locale/LocaleInformation_ru_UA.class | Bin 0 -> 2472 bytes .../gnu/java/locale/LocaleInformation_se_NO.class | Bin 0 -> 2415 bytes .../gnu/java/locale/LocaleInformation_sk_SK.class | Bin 0 -> 2283 bytes .../gnu/java/locale/LocaleInformation_sl_SI.class | Bin 0 -> 2267 bytes .../gnu/java/locale/LocaleInformation_sq_AL.class | Bin 0 -> 2332 bytes .../gnu/java/locale/LocaleInformation_sr_YU.class | Bin 0 -> 2245 bytes .../gnu/java/locale/LocaleInformation_sv_FI.class | Bin 0 -> 2293 bytes .../gnu/java/locale/LocaleInformation_sv_SE.class | Bin 0 -> 2293 bytes .../gnu/java/locale/LocaleInformation_ta_IN.class | Bin 0 -> 2452 bytes .../gnu/java/locale/LocaleInformation_te_IN.class | Bin 0 -> 2582 bytes .../gnu/java/locale/LocaleInformation_tg_TJ.class | Bin 0 -> 2490 bytes .../gnu/java/locale/LocaleInformation_tl_PH.class | Bin 0 -> 2319 bytes .../gnu/java/locale/LocaleInformation_tr_TR.class | Bin 0 -> 2562 bytes .../gnu/java/locale/LocaleInformation_uk_UA.class | Bin 0 -> 2501 bytes .../gnu/java/locale/LocaleInformation_ur_PK.class | Bin 0 -> 2199 bytes .../gnu/java/locale/LocaleInformation_uz_UZ.class | Bin 0 -> 2292 bytes .../gnu/java/locale/LocaleInformation_vi_VN.class | Bin 0 -> 2449 bytes .../gnu/java/locale/LocaleInformation_yi_US.class | Bin 0 -> 2525 bytes .../gnu/java/locale/LocaleInformation_zh_CN.class | Bin 0 -> 2355 bytes .../gnu/java/locale/LocaleInformation_zh_HK.class | Bin 0 -> 2369 bytes .../gnu/java/locale/LocaleInformation_zh_SG.class | Bin 0 -> 2153 bytes .../gnu/java/locale/LocaleInformation_zh_TW.class | Bin 0 -> 2376 bytes libjava/classpath/lib/gnu/java/math/MPN.class | Bin 0 -> 7842 bytes libjava/classpath/lib/gnu/java/net/BASE64.class | Bin 0 -> 3190 bytes .../lib/gnu/java/net/CRLFInputStream.class | Bin 0 -> 1605 bytes .../lib/gnu/java/net/CRLFOutputStream.class | Bin 0 -> 1880 bytes .../java/net/DefaultContentHandlerFactory.class | Bin 0 -> 1353 bytes .../lib/gnu/java/net/DefaultProxySelector.class | Bin 0 -> 1184 bytes .../lib/gnu/java/net/EmptyX509TrustManager.class | Bin 0 -> 931 bytes .../lib/gnu/java/net/GetLocalHostAction.class | Bin 0 -> 564 bytes .../lib/gnu/java/net/HeaderFieldHelper.class | Bin 0 -> 1930 bytes .../classpath/lib/gnu/java/net/ImageHandler.class | Bin 0 -> 626 bytes .../lib/gnu/java/net/IndexListParser.class | Bin 0 -> 2568 bytes .../lib/gnu/java/net/LineInputStream.class | Bin 0 -> 2236 bytes .../lib/gnu/java/net/PlainDatagramSocketImpl.class | Bin 0 -> 3097 bytes .../net/PlainSocketImpl$SocketInputStream.class | Bin 0 -> 810 bytes .../net/PlainSocketImpl$SocketOutputStream.class | Bin 0 -> 720 bytes .../lib/gnu/java/net/PlainSocketImpl.class | Bin 0 -> 3295 bytes .../classpath/lib/gnu/java/net/URLParseError.class | Bin 0 -> 349 bytes .../lib/gnu/java/net/loader/FileResource.class | Bin 0 -> 1259 bytes .../lib/gnu/java/net/loader/FileURLLoader.class | Bin 0 -> 2171 bytes .../lib/gnu/java/net/loader/JarURLLoader.class | Bin 0 -> 5457 bytes .../lib/gnu/java/net/loader/JarURLResource.class | Bin 0 -> 2230 bytes .../lib/gnu/java/net/loader/RemoteResource.class | Bin 0 -> 1051 bytes .../lib/gnu/java/net/loader/RemoteURLLoader.class | Bin 0 -> 1900 bytes .../lib/gnu/java/net/loader/Resource.class | Bin 0 -> 1229 bytes .../lib/gnu/java/net/loader/URLLoader.class | Bin 0 -> 1716 bytes .../java/net/loader/URLStreamHandlerCache.class | Bin 0 -> 1273 bytes .../lib/gnu/java/net/local/LocalServerSocket.class | Bin 0 -> 3487 bytes .../lib/gnu/java/net/local/LocalSocket.class | Bin 0 -> 5583 bytes .../gnu/java/net/local/LocalSocketAddress.class | Bin 0 -> 1183 bytes .../local/LocalSocketImpl$LocalInputStream.class | Bin 0 -> 1624 bytes .../local/LocalSocketImpl$LocalOutputStream.class | Bin 0 -> 1247 bytes .../lib/gnu/java/net/local/LocalSocketImpl.class | Bin 0 -> 4520 bytes .../gnu/java/net/protocol/core/Connection.class | Bin 0 -> 3158 bytes .../java/net/protocol/core/CoreInputStream.class | Bin 0 -> 1518 bytes .../lib/gnu/java/net/protocol/core/Handler.class | Bin 0 -> 588 bytes .../net/protocol/file/Connection$StaticData.class | Bin 0 -> 1010 bytes .../gnu/java/net/protocol/file/Connection.class | Bin 0 -> 5576 bytes .../lib/gnu/java/net/protocol/file/Handler.class | Bin 0 -> 1057 bytes .../gnu/java/net/protocol/ftp/ActiveModeDTP.class | Bin 0 -> 3794 bytes .../java/net/protocol/ftp/BlockInputStream.class | Bin 0 -> 1694 bytes .../java/net/protocol/ftp/BlockOutputStream.class | Bin 0 -> 1454 bytes .../net/protocol/ftp/CompressedInputStream.class | Bin 0 -> 2403 bytes .../net/protocol/ftp/CompressedOutputStream.class | Bin 0 -> 2753 bytes .../lib/gnu/java/net/protocol/ftp/DTP.class | Bin 0 -> 382 bytes .../gnu/java/net/protocol/ftp/DTPInputStream.class | Bin 0 -> 867 bytes .../java/net/protocol/ftp/DTPOutputStream.class | Bin 0 -> 875 bytes .../gnu/java/net/protocol/ftp/FTPConnection.class | Bin 0 -> 16843 bytes .../gnu/java/net/protocol/ftp/FTPException.class | Bin 0 -> 685 bytes .../gnu/java/net/protocol/ftp/FTPResponse.class | Bin 0 -> 885 bytes .../ftp/FTPURLConnection$ClosingInputStream.class | Bin 0 -> 969 bytes .../ftp/FTPURLConnection$ClosingOutputStream.class | Bin 0 -> 977 bytes .../java/net/protocol/ftp/FTPURLConnection.class | Bin 0 -> 5875 bytes .../lib/gnu/java/net/protocol/ftp/Handler.class | Bin 0 -> 673 bytes .../gnu/java/net/protocol/ftp/PassiveModeDTP.class | Bin 0 -> 3282 bytes .../java/net/protocol/ftp/StreamInputStream.class | Bin 0 -> 1089 bytes .../java/net/protocol/ftp/StreamOutputStream.class | Bin 0 -> 1021 bytes .../gnu/java/net/protocol/gcjlib/Connection.class | Bin 0 -> 2252 bytes .../lib/gnu/java/net/protocol/gcjlib/Handler.class | Bin 0 -> 594 bytes .../gnu/java/net/protocol/http/Authenticator.class | Bin 0 -> 223 bytes .../protocol/http/ByteArrayRequestBodyWriter.class | Bin 0 -> 942 bytes .../net/protocol/http/ChunkedInputStream.class | Bin 0 -> 2748 bytes .../lib/gnu/java/net/protocol/http/Cookie.class | Bin 0 -> 1894 bytes .../gnu/java/net/protocol/http/CookieManager.class | Bin 0 -> 294 bytes .../gnu/java/net/protocol/http/Credentials.class | Bin 0 -> 648 bytes .../protocol/http/HTTPConnection$Pool$Reaper.class | Bin 0 -> 1482 bytes .../net/protocol/http/HTTPConnection$Pool.class | Bin 0 -> 3489 bytes .../java/net/protocol/http/HTTPConnection.class | Bin 0 -> 10087 bytes .../java/net/protocol/http/HTTPDateFormat.class | Bin 0 -> 6629 bytes .../net/protocol/http/HTTPURLConnection$1.class | Bin 0 -> 976 bytes .../java/net/protocol/http/HTTPURLConnection.class | Bin 0 -> 12123 bytes .../lib/gnu/java/net/protocol/http/Handler.class | Bin 0 -> 677 bytes .../net/protocol/http/Headers$HeaderElement.class | Bin 0 -> 571 bytes .../lib/gnu/java/net/protocol/http/Headers.class | Bin 0 -> 5178 bytes .../protocol/http/LimitedLengthInputStream.class | Bin 0 -> 2288 bytes .../lib/gnu/java/net/protocol/http/Request.class | Bin 0 -> 15584 bytes .../java/net/protocol/http/RequestBodyWriter.class | Bin 0 -> 221 bytes .../lib/gnu/java/net/protocol/http/Response.class | Bin 0 -> 2213 bytes .../net/protocol/http/ResponseHeaderHandler.class | Bin 0 -> 193 bytes .../net/protocol/http/SimpleCookieManager.class | Bin 0 -> 3051 bytes .../lib/gnu/java/net/protocol/https/Handler.class | Bin 0 -> 680 bytes .../net/protocol/jar/Connection$JarFileCache.class | Bin 0 -> 2288 bytes .../lib/gnu/java/net/protocol/jar/Connection.class | Bin 0 -> 3397 bytes .../lib/gnu/java/net/protocol/jar/Handler.class | Bin 0 -> 3822 bytes .../lib/gnu/java/nio/ChannelInputStream.class | Bin 0 -> 1104 bytes .../lib/gnu/java/nio/ChannelOutputStream.class | Bin 0 -> 913 bytes .../classpath/lib/gnu/java/nio/ChannelReader.class | Bin 0 -> 2954 bytes .../classpath/lib/gnu/java/nio/ChannelWriter.class | Bin 0 -> 2972 bytes .../lib/gnu/java/nio/DatagramChannelImpl.class | Bin 0 -> 5081 bytes .../gnu/java/nio/DatagramChannelSelectionKey.class | Bin 0 -> 810 bytes .../classpath/lib/gnu/java/nio/FileLockImpl.class | Bin 0 -> 1125 bytes .../lib/gnu/java/nio/InputStreamChannel.class | Bin 0 -> 1187 bytes .../classpath/lib/gnu/java/nio/NIOConstants.class | Bin 0 -> 346 bytes .../lib/gnu/java/nio/NIODatagramSocket.class | Bin 0 -> 837 bytes .../lib/gnu/java/nio/NIOServerSocket.class | Bin 0 -> 1431 bytes libjava/classpath/lib/gnu/java/nio/NIOSocket.class | Bin 0 -> 992 bytes .../lib/gnu/java/nio/OutputStreamChannel.class | Bin 0 -> 1182 bytes .../gnu/java/nio/PipeImpl$SinkChannelImpl.class | Bin 0 -> 1856 bytes .../gnu/java/nio/PipeImpl$SourceChannelImpl.class | Bin 0 -> 1865 bytes libjava/classpath/lib/gnu/java/nio/PipeImpl.class | Bin 0 -> 1072 bytes .../lib/gnu/java/nio/SelectionKeyImpl.class | Bin 0 -> 1511 bytes .../classpath/lib/gnu/java/nio/SelectorImpl.class | Bin 0 -> 5965 bytes .../lib/gnu/java/nio/SelectorProviderImpl.class | Bin 0 -> 1290 bytes .../lib/gnu/java/nio/ServerSocketChannelImpl.class | Bin 0 -> 2266 bytes .../java/nio/ServerSocketChannelSelectionKey.class | Bin 0 -> 826 bytes .../lib/gnu/java/nio/SocketChannelImpl.class | Bin 0 -> 5935 bytes .../gnu/java/nio/SocketChannelSelectionKey.class | Bin 0 -> 1027 bytes .../java/nio/SocketChannelSelectionKeyImpl.class | Bin 0 -> 843 bytes libjava/classpath/lib/gnu/java/nio/VMChannel.class | Bin 0 -> 2528 bytes .../lib/gnu/java/nio/VMChannelOwner.class | Bin 0 -> 174 bytes libjava/classpath/lib/gnu/java/nio/VMPipe.class | Bin 0 -> 401 bytes .../classpath/lib/gnu/java/nio/VMSelector.class | Bin 0 -> 359 bytes .../gnu/java/nio/channels/FileChannelImpl.class | Bin 0 -> 7914 bytes .../gnu/java/nio/charset/ByteCharset$Decoder.class | Bin 0 -> 1300 bytes .../gnu/java/nio/charset/ByteCharset$Encoder.class | Bin 0 -> 2042 bytes .../lib/gnu/java/nio/charset/ByteCharset.class | Bin 0 -> 1313 bytes .../classpath/lib/gnu/java/nio/charset/Cp424.class | Bin 0 -> 2396 bytes .../classpath/lib/gnu/java/nio/charset/Cp437.class | Bin 0 -> 2429 bytes .../classpath/lib/gnu/java/nio/charset/Cp737.class | Bin 0 -> 2429 bytes .../classpath/lib/gnu/java/nio/charset/Cp775.class | Bin 0 -> 2429 bytes .../classpath/lib/gnu/java/nio/charset/Cp850.class | Bin 0 -> 2429 bytes .../classpath/lib/gnu/java/nio/charset/Cp852.class | Bin 0 -> 2429 bytes .../classpath/lib/gnu/java/nio/charset/Cp855.class | Bin 0 -> 2450 bytes .../classpath/lib/gnu/java/nio/charset/Cp857.class | Bin 0 -> 2452 bytes .../classpath/lib/gnu/java/nio/charset/Cp860.class | Bin 0 -> 2450 bytes .../classpath/lib/gnu/java/nio/charset/Cp861.class | Bin 0 -> 2450 bytes .../classpath/lib/gnu/java/nio/charset/Cp862.class | Bin 0 -> 2450 bytes .../classpath/lib/gnu/java/nio/charset/Cp863.class | Bin 0 -> 2450 bytes .../classpath/lib/gnu/java/nio/charset/Cp864.class | Bin 0 -> 2738 bytes .../classpath/lib/gnu/java/nio/charset/Cp865.class | Bin 0 -> 2450 bytes .../classpath/lib/gnu/java/nio/charset/Cp866.class | Bin 0 -> 2450 bytes .../classpath/lib/gnu/java/nio/charset/Cp869.class | Bin 0 -> 2446 bytes .../classpath/lib/gnu/java/nio/charset/Cp874.class | Bin 0 -> 2403 bytes .../lib/gnu/java/nio/charset/EncodingHelper.class | Bin 0 -> 3137 bytes .../gnu/java/nio/charset/ISO_8859_1$Decoder.class | Bin 0 -> 1161 bytes .../gnu/java/nio/charset/ISO_8859_1$Encoder.class | Bin 0 -> 1632 bytes .../lib/gnu/java/nio/charset/ISO_8859_1.class | Bin 0 -> 1311 bytes .../lib/gnu/java/nio/charset/ISO_8859_13.class | Bin 0 -> 2683 bytes .../lib/gnu/java/nio/charset/ISO_8859_15.class | Bin 0 -> 2869 bytes .../lib/gnu/java/nio/charset/ISO_8859_2.class | Bin 0 -> 2817 bytes .../lib/gnu/java/nio/charset/ISO_8859_3.class | Bin 0 -> 2815 bytes .../lib/gnu/java/nio/charset/ISO_8859_4.class | Bin 0 -> 2817 bytes .../lib/gnu/java/nio/charset/ISO_8859_5.class | Bin 0 -> 2808 bytes .../lib/gnu/java/nio/charset/ISO_8859_6.class | Bin 0 -> 2857 bytes .../lib/gnu/java/nio/charset/ISO_8859_7.class | Bin 0 -> 2871 bytes .../lib/gnu/java/nio/charset/ISO_8859_8.class | Bin 0 -> 2827 bytes .../lib/gnu/java/nio/charset/ISO_8859_9.class | Bin 0 -> 2841 bytes .../classpath/lib/gnu/java/nio/charset/KOI_8.class | Bin 0 -> 2594 bytes .../classpath/lib/gnu/java/nio/charset/MS874.class | Bin 0 -> 2403 bytes .../gnu/java/nio/charset/MacCentralEurope.class | Bin 0 -> 2478 bytes .../lib/gnu/java/nio/charset/MacCroatian.class | Bin 0 -> 2462 bytes .../lib/gnu/java/nio/charset/MacCyrillic.class | Bin 0 -> 2458 bytes .../lib/gnu/java/nio/charset/MacDingbat.class | Bin 0 -> 2527 bytes .../lib/gnu/java/nio/charset/MacGreek.class | Bin 0 -> 2446 bytes .../lib/gnu/java/nio/charset/MacIceland.class | Bin 0 -> 2458 bytes .../lib/gnu/java/nio/charset/MacRoman.class | Bin 0 -> 2458 bytes .../lib/gnu/java/nio/charset/MacRomania.class | Bin 0 -> 2458 bytes .../lib/gnu/java/nio/charset/MacSymbol.class | Bin 0 -> 2488 bytes .../lib/gnu/java/nio/charset/MacThai.class | Bin 0 -> 2414 bytes .../lib/gnu/java/nio/charset/MacTurkish.class | Bin 0 -> 2462 bytes .../lib/gnu/java/nio/charset/Provider$1.class | Bin 0 -> 581 bytes .../lib/gnu/java/nio/charset/Provider.class | Bin 0 -> 5340 bytes .../gnu/java/nio/charset/US_ASCII$Decoder.class | Bin 0 -> 1248 bytes .../gnu/java/nio/charset/US_ASCII$Encoder.class | Bin 0 -> 1622 bytes .../lib/gnu/java/nio/charset/US_ASCII.class | Bin 0 -> 1301 bytes .../lib/gnu/java/nio/charset/UTF_16.class | Bin 0 -> 1283 bytes .../lib/gnu/java/nio/charset/UTF_16BE.class | Bin 0 -> 1438 bytes .../lib/gnu/java/nio/charset/UTF_16Decoder.class | Bin 0 -> 2637 bytes .../lib/gnu/java/nio/charset/UTF_16Encoder.class | Bin 0 -> 2308 bytes .../lib/gnu/java/nio/charset/UTF_16LE.class | Bin 0 -> 1340 bytes .../lib/gnu/java/nio/charset/UTF_8$Decoder.class | Bin 0 -> 3229 bytes .../lib/gnu/java/nio/charset/UTF_8$Encoder.class | Bin 0 -> 2124 bytes .../classpath/lib/gnu/java/nio/charset/UTF_8.class | Bin 0 -> 1316 bytes .../lib/gnu/java/nio/charset/UnicodeLittle.class | Bin 0 -> 1218 bytes .../lib/gnu/java/nio/charset/Windows1250.class | Bin 0 -> 2657 bytes .../lib/gnu/java/nio/charset/Windows1251.class | Bin 0 -> 2603 bytes .../lib/gnu/java/nio/charset/Windows1252.class | Bin 0 -> 2585 bytes .../lib/gnu/java/nio/charset/Windows1253.class | Bin 0 -> 2587 bytes .../lib/gnu/java/nio/charset/Windows1254.class | Bin 0 -> 2597 bytes .../lib/gnu/java/nio/charset/Windows1255.class | Bin 0 -> 2581 bytes .../lib/gnu/java/nio/charset/Windows1256.class | Bin 0 -> 2599 bytes .../lib/gnu/java/nio/charset/Windows1257.class | Bin 0 -> 2592 bytes .../lib/gnu/java/nio/charset/Windows1258.class | Bin 0 -> 2595 bytes .../java/rmi/RMIMarshalledObjectInputStream.class | Bin 0 -> 875 bytes .../java/rmi/RMIMarshalledObjectOutputStream.class | Bin 0 -> 1182 bytes .../rmi/activation/ActivationSystemTransient.class | Bin 0 -> 8308 bytes .../lib/gnu/java/rmi/activation/BidiTable.class | Bin 0 -> 2027 bytes .../rmi/activation/DefaultActivationGroup.class | Bin 0 -> 3584 bytes .../rmi/activation/DefaultActivationSystem.class | Bin 0 -> 1936 bytes .../gnu/java/rmi/dgc/DGCImpl$RefProtector.class | Bin 0 -> 1143 bytes .../classpath/lib/gnu/java/rmi/dgc/DGCImpl.class | Bin 0 -> 1554 bytes .../lib/gnu/java/rmi/dgc/DGCImpl_Skel.class | Bin 0 -> 3350 bytes .../lib/gnu/java/rmi/dgc/DGCImpl_Stub.class | Bin 0 -> 4340 bytes .../rmi/dgc/LeaseRenewingTask$LeaseTimerTask.class | Bin 0 -> 636 bytes .../lib/gnu/java/rmi/dgc/LeaseRenewingTask.class | Bin 0 -> 3205 bytes .../lib/gnu/java/rmi/registry/RegistryImpl.class | Bin 0 -> 4240 bytes .../gnu/java/rmi/registry/RegistryImpl_Skel.class | Bin 0 -> 4107 bytes .../gnu/java/rmi/registry/RegistryImpl_Stub.class | Bin 0 -> 6139 bytes .../lib/gnu/java/rmi/server/ActivatableRef.class | Bin 0 -> 3872 bytes .../gnu/java/rmi/server/ActivatableServerRef.class | Bin 0 -> 4674 bytes .../gnu/java/rmi/server/CombinedClassLoader.class | Bin 0 -> 1957 bytes .../ConnectionRunnerPool$ConnectionRunner.class | Bin 0 -> 1527 bytes .../gnu/java/rmi/server/ConnectionRunnerPool.class | Bin 0 -> 2673 bytes .../gnu/java/rmi/server/ProtocolConstants.class | Bin 0 -> 719 bytes .../rmi/server/RMIClassLoaderImpl$CacheKey.class | Bin 0 -> 1553 bytes .../server/RMIClassLoaderImpl$MyClassLoader.class | Bin 0 -> 1385 bytes .../gnu/java/rmi/server/RMIClassLoaderImpl.class | Bin 0 -> 5117 bytes .../java/rmi/server/RMIDefaultSocketFactory.class | Bin 0 -> 814 bytes .../lib/gnu/java/rmi/server/RMIHashes.class | Bin 0 -> 2179 bytes .../gnu/java/rmi/server/RMIIncomingThread.class | Bin 0 -> 898 bytes .../gnu/java/rmi/server/RMIObjectInputStream.class | Bin 0 -> 3019 bytes .../java/rmi/server/RMIObjectOutputStream.class | Bin 0 -> 2997 bytes .../lib/gnu/java/rmi/server/RMIVoidValue.class | Bin 0 -> 411 bytes .../lib/gnu/java/rmi/server/TripleKey.class | Bin 0 -> 1315 bytes .../gnu/java/rmi/server/UnicastConnection.class | Bin 0 -> 4367 bytes .../rmi/server/UnicastConnectionManager$1.class | Bin 0 -> 1917 bytes .../java/rmi/server/UnicastConnectionManager.class | Bin 0 -> 7405 bytes .../lib/gnu/java/rmi/server/UnicastRef.class | Bin 0 -> 10033 bytes .../UnicastRemoteCall$DummyObjectInputStream.class | Bin 0 -> 3682 bytes ...UnicastRemoteCall$DummyObjectOutputStream.class | Bin 0 -> 3218 bytes .../gnu/java/rmi/server/UnicastRemoteCall.class | Bin 0 -> 6149 bytes .../gnu/java/rmi/server/UnicastRemoteStub.class | Bin 0 -> 569 bytes .../lib/gnu/java/rmi/server/UnicastServer.class | Bin 0 -> 6736 bytes .../lib/gnu/java/rmi/server/UnicastServerRef.class | Bin 0 -> 9296 bytes .../lib/gnu/java/security/Configuration.class | Bin 0 -> 174 bytes .../classpath/lib/gnu/java/security/Engine.class | Bin 0 -> 5340 bytes libjava/classpath/lib/gnu/java/security/OID.class | Bin 0 -> 6174 bytes .../lib/gnu/java/security/PolicyFile$1.class | Bin 0 -> 2136 bytes .../lib/gnu/java/security/PolicyFile.class | Bin 0 -> 12883 bytes .../lib/gnu/java/security/Properties$1.class | Bin 0 -> 753 bytes .../lib/gnu/java/security/Properties.class | Bin 0 -> 5002 bytes .../classpath/lib/gnu/java/security/Registry.class | Bin 0 -> 7593 bytes .../classpath/lib/gnu/java/security/Requires.class | Bin 0 -> 601 bytes .../java/security/action/GetPropertyAction.class | Bin 0 -> 1489 bytes .../action/GetSecurityPropertyAction.class | Bin 0 -> 1525 bytes .../java/security/action/SetAccessibleAction.class | Bin 0 -> 914 bytes .../classpath/lib/gnu/java/security/ber/BER.class | Bin 0 -> 419 bytes .../java/security/ber/BEREncodingException.class | Bin 0 -> 496 bytes .../lib/gnu/java/security/ber/BERReader.class | Bin 0 -> 1404 bytes .../lib/gnu/java/security/ber/BERValue.class | Bin 0 -> 1093 bytes .../lib/gnu/java/security/der/BitString.class | Bin 0 -> 3755 bytes .../classpath/lib/gnu/java/security/der/DER.class | Bin 0 -> 1355 bytes .../java/security/der/DEREncodingException.class | Bin 0 -> 473 bytes .../lib/gnu/java/security/der/DERReader.class | Bin 0 -> 6819 bytes .../lib/gnu/java/security/der/DERValue.class | Bin 0 -> 3556 bytes .../lib/gnu/java/security/der/DERWriter.class | Bin 0 -> 6118 bytes .../lib/gnu/java/security/hash/BaseHash.class | Bin 0 -> 2006 bytes .../lib/gnu/java/security/hash/HashFactory.class | Bin 0 -> 2386 bytes .../lib/gnu/java/security/hash/Haval.class | Bin 0 -> 16340 bytes .../gnu/java/security/hash/IMessageDigest.class | Bin 0 -> 410 bytes .../classpath/lib/gnu/java/security/hash/MD2.class | Bin 0 -> 4558 bytes .../classpath/lib/gnu/java/security/hash/MD4.class | Bin 0 -> 6039 bytes .../classpath/lib/gnu/java/security/hash/MD5.class | Bin 0 -> 7138 bytes .../lib/gnu/java/security/hash/RipeMD128.class | Bin 0 -> 5286 bytes .../lib/gnu/java/security/hash/RipeMD160.class | Bin 0 -> 6249 bytes .../lib/gnu/java/security/hash/Sha160.class | Bin 0 -> 3824 bytes .../lib/gnu/java/security/hash/Sha256.class | Bin 0 -> 5078 bytes .../lib/gnu/java/security/hash/Sha384.class | Bin 0 -> 6155 bytes .../lib/gnu/java/security/hash/Sha512.class | Bin 0 -> 6405 bytes .../lib/gnu/java/security/hash/Tiger.class | Bin 0 -> 27969 bytes .../lib/gnu/java/security/hash/Whirlpool.class | Bin 0 -> 10870 bytes .../lib/gnu/java/security/jce/hash/HavalSpi.class | Bin 0 -> 375 bytes .../lib/gnu/java/security/jce/hash/MD2Spi.class | Bin 0 -> 367 bytes .../lib/gnu/java/security/jce/hash/MD4Spi.class | Bin 0 -> 367 bytes .../lib/gnu/java/security/jce/hash/MD5Spi.class | Bin 0 -> 367 bytes .../security/jce/hash/MessageDigestAdapter.class | Bin 0 -> 1911 bytes .../gnu/java/security/jce/hash/RipeMD128Spi.class | Bin 0 -> 391 bytes .../gnu/java/security/jce/hash/RipeMD160Spi.class | Bin 0 -> 391 bytes .../lib/gnu/java/security/jce/hash/Sha160Spi.class | Bin 0 -> 380 bytes .../lib/gnu/java/security/jce/hash/Sha256Spi.class | Bin 0 -> 380 bytes .../lib/gnu/java/security/jce/hash/Sha384Spi.class | Bin 0 -> 380 bytes .../lib/gnu/java/security/jce/hash/Sha512Spi.class | Bin 0 -> 380 bytes .../lib/gnu/java/security/jce/hash/TigerSpi.class | Bin 0 -> 375 bytes .../gnu/java/security/jce/hash/WhirlpoolSpi.class | Bin 0 -> 391 bytes .../java/security/jce/prng/HavalRandomSpi.class | Bin 0 -> 392 bytes .../gnu/java/security/jce/prng/MD2RandomSpi.class | Bin 0 -> 384 bytes .../gnu/java/security/jce/prng/MD4RandomSpi.class | Bin 0 -> 384 bytes .../gnu/java/security/jce/prng/MD5RandomSpi.class | Bin 0 -> 384 bytes .../security/jce/prng/RipeMD128RandomSpi.class | Bin 0 -> 408 bytes .../security/jce/prng/RipeMD160RandomSpi.class | Bin 0 -> 408 bytes .../security/jce/prng/SecureRandomAdapter.class | Bin 0 -> 1358 bytes .../java/security/jce/prng/Sha160RandomSpi.class | Bin 0 -> 397 bytes .../java/security/jce/prng/Sha256RandomSpi.class | Bin 0 -> 397 bytes .../java/security/jce/prng/Sha384RandomSpi.class | Bin 0 -> 397 bytes .../java/security/jce/prng/Sha512RandomSpi.class | Bin 0 -> 397 bytes .../java/security/jce/prng/TigerRandomSpi.class | Bin 0 -> 392 bytes .../security/jce/prng/WhirlpoolRandomSpi.class | Bin 0 -> 408 bytes .../gnu/java/security/jce/sig/DSSKeyFactory.class | Bin 0 -> 5029 bytes .../security/jce/sig/DSSKeyPairGeneratorSpi.class | Bin 0 -> 3213 bytes .../gnu/java/security/jce/sig/DSSParameters.class | Bin 0 -> 4369 bytes .../security/jce/sig/DSSParametersGenerator.class | Bin 0 -> 2984 bytes .../java/security/jce/sig/DSSRawSignatureSpi.class | Bin 0 -> 504 bytes .../java/security/jce/sig/EncodedKeyFactory.class | Bin 0 -> 9348 bytes .../security/jce/sig/KeyPairGeneratorAdapter.class | Bin 0 -> 1043 bytes .../lib/gnu/java/security/jce/sig/MD2withRSA.class | Bin 0 -> 509 bytes .../lib/gnu/java/security/jce/sig/MD5withRSA.class | Bin 0 -> 509 bytes .../gnu/java/security/jce/sig/RSAKeyFactory.class | Bin 0 -> 5638 bytes .../security/jce/sig/RSAKeyPairGeneratorSpi.class | Bin 0 -> 1615 bytes .../security/jce/sig/RSAPSSRawSignatureSpi.class | Bin 0 -> 520 bytes .../gnu/java/security/jce/sig/SHA160withDSS.class | Bin 0 -> 490 bytes .../gnu/java/security/jce/sig/SHA160withRSA.class | Bin 0 -> 522 bytes .../gnu/java/security/jce/sig/SHA256withRSA.class | Bin 0 -> 522 bytes .../gnu/java/security/jce/sig/SHA384withRSA.class | Bin 0 -> 522 bytes .../gnu/java/security/jce/sig/SHA512withRSA.class | Bin 0 -> 522 bytes .../java/security/jce/sig/SignatureAdapter.class | Bin 0 -> 4861 bytes .../lib/gnu/java/security/key/IKeyPairCodec.class | Bin 0 -> 553 bytes .../gnu/java/security/key/IKeyPairGenerator.class | Bin 0 -> 259 bytes .../java/security/key/KeyPairCodecFactory.class | Bin 0 -> 5797 bytes .../security/key/KeyPairGeneratorFactory.class | Bin 0 -> 2362 bytes .../lib/gnu/java/security/key/dss/DSSKey.class | Bin 0 -> 2829 bytes .../security/key/dss/DSSKeyPairGenerator.class | Bin 0 -> 7539 bytes .../security/key/dss/DSSKeyPairPKCS8Codec.class | Bin 0 -> 5128 bytes .../java/security/key/dss/DSSKeyPairRawCodec.class | Bin 0 -> 4553 bytes .../security/key/dss/DSSKeyPairX509Codec.class | Bin 0 -> 4955 bytes .../gnu/java/security/key/dss/DSSPrivateKey.class | Bin 0 -> 3030 bytes .../gnu/java/security/key/dss/DSSPublicKey.class | Bin 0 -> 3030 bytes .../lib/gnu/java/security/key/dss/FIPS186.class | Bin 0 -> 3701 bytes .../lib/gnu/java/security/key/rsa/GnuRSAKey.class | Bin 0 -> 2347 bytes .../java/security/key/rsa/GnuRSAPrivateKey.class | Bin 0 -> 4618 bytes .../java/security/key/rsa/GnuRSAPublicKey.class | Bin 0 -> 2694 bytes .../security/key/rsa/RSAKeyPairGenerator.class | Bin 0 -> 4142 bytes .../security/key/rsa/RSAKeyPairPKCS8Codec.class | Bin 0 -> 6261 bytes .../java/security/key/rsa/RSAKeyPairRawCodec.class | Bin 0 -> 4068 bytes .../security/key/rsa/RSAKeyPairX509Codec.class | Bin 0 -> 4663 bytes .../lib/gnu/java/security/pkcs/PKCS7Data.class | Bin 0 -> 668 bytes .../gnu/java/security/pkcs/PKCS7SignedData.class | Bin 0 -> 8206 bytes .../lib/gnu/java/security/pkcs/SignerInfo.class | Bin 0 -> 6501 bytes .../lib/gnu/java/security/prng/BasePRNG.class | Bin 0 -> 2892 bytes .../lib/gnu/java/security/prng/EntropySource.class | Bin 0 -> 181 bytes .../lib/gnu/java/security/prng/IRandom.class | Bin 0 -> 561 bytes .../java/security/prng/LimitReachedException.class | Bin 0 -> 478 bytes .../lib/gnu/java/security/prng/MDGenerator.class | Bin 0 -> 2078 bytes .../lib/gnu/java/security/prng/PRNGFactory.class | Bin 0 -> 1073 bytes .../lib/gnu/java/security/prng/RandomEvent.class | Bin 0 -> 1015 bytes .../java/security/prng/RandomEventListener.class | Bin 0 -> 240 bytes .../provider/CollectionCertStoreImpl.class | Bin 0 -> 2073 bytes .../gnu/java/security/provider/DefaultPolicy.class | Bin 0 -> 911 bytes .../lib/gnu/java/security/provider/Gnu$1.class | Bin 0 -> 12433 bytes .../lib/gnu/java/security/provider/Gnu.class | Bin 0 -> 805 bytes .../provider/PKIXCertPathValidatorImpl.class | Bin 0 -> 14032 bytes .../security/provider/X509CertificateFactory.class | Bin 0 -> 5056 bytes .../lib/gnu/java/security/sig/BaseSignature.class | Bin 0 -> 3996 bytes .../lib/gnu/java/security/sig/ISignature.class | Bin 0 -> 762 bytes .../gnu/java/security/sig/ISignatureCodec.class | Bin 0 -> 317 bytes .../java/security/sig/SignatureCodecFactory.class | Bin 0 -> 3489 bytes .../gnu/java/security/sig/SignatureFactory.class | Bin 0 -> 1382 bytes .../gnu/java/security/sig/dss/DSSSignature.class | Bin 0 -> 5250 bytes .../security/sig/dss/DSSSignatureRawCodec.class | Bin 0 -> 2143 bytes .../security/sig/dss/DSSSignatureX509Codec.class | Bin 0 -> 2596 bytes .../gnu/java/security/sig/rsa/EME_PKCS1_V1_5.class | Bin 0 -> 3513 bytes .../java/security/sig/rsa/EMSA_PKCS1_V1_5.class | Bin 0 -> 3423 bytes .../lib/gnu/java/security/sig/rsa/EMSA_PSS.class | Bin 0 -> 3734 bytes .../lib/gnu/java/security/sig/rsa/RSA.class | Bin 0 -> 4209 bytes .../security/sig/rsa/RSAPKCS1V1_5Signature.class | Bin 0 -> 3399 bytes .../sig/rsa/RSAPKCS1V1_5SignatureRawCodec.class | Bin 0 -> 1762 bytes .../sig/rsa/RSAPKCS1V1_5SignatureX509Codec.class | Bin 0 -> 924 bytes .../java/security/sig/rsa/RSAPSSSignature.class | Bin 0 -> 4129 bytes .../security/sig/rsa/RSAPSSSignatureRawCodec.class | Bin 0 -> 1690 bytes .../security/sig/rsa/RSASignatureFactory.class | Bin 0 -> 2802 bytes .../lib/gnu/java/security/util/Base64.class | Bin 0 -> 4996 bytes .../lib/gnu/java/security/util/ByteArray.class | Bin 0 -> 2137 bytes .../security/util/ByteBufferOutputStream.class | Bin 0 -> 2085 bytes .../lib/gnu/java/security/util/DerUtil.class | Bin 0 -> 893 bytes .../security/util/ExpirableObject$Destroyer.class | Bin 0 -> 841 bytes .../gnu/java/security/util/ExpirableObject.class | Bin 0 -> 1264 bytes .../lib/gnu/java/security/util/FormatUtil.class | Bin 0 -> 1246 bytes .../lib/gnu/java/security/util/IntegerUtil$1.class | Bin 0 -> 689 bytes .../lib/gnu/java/security/util/IntegerUtil.class | Bin 0 -> 1193 bytes .../lib/gnu/java/security/util/PRNG.class | Bin 0 -> 1822 bytes .../lib/gnu/java/security/util/Prime.class | Bin 0 -> 1776 bytes .../lib/gnu/java/security/util/Sequence.class | Bin 0 -> 1738 bytes .../lib/gnu/java/security/util/SimpleList.class | Bin 0 -> 2443 bytes .../lib/gnu/java/security/util/Util.class | Bin 0 -> 7616 bytes .../gnu/java/security/x509/GnuPKIExtension.class | Bin 0 -> 314 bytes .../gnu/java/security/x509/PolicyNodeImpl.class | Bin 0 -> 4472 bytes .../lib/gnu/java/security/x509/Util.class | Bin 0 -> 2815 bytes .../java/security/x509/X500DistinguishedName.class | Bin 0 -> 11414 bytes .../lib/gnu/java/security/x509/X509CRL.class | Bin 0 -> 9760 bytes .../lib/gnu/java/security/x509/X509CRLEntry.class | Bin 0 -> 5338 bytes .../java/security/x509/X509CRLSelectorImpl.class | Bin 0 -> 2421 bytes .../lib/gnu/java/security/x509/X509CertPath.class | Bin 0 -> 5636 bytes .../java/security/x509/X509CertSelectorImpl.class | Bin 0 -> 3382 bytes .../gnu/java/security/x509/X509Certificate.class | Bin 0 -> 17078 bytes .../security/x509/ext/AuthorityKeyIdentifier.class | Bin 0 -> 2707 bytes .../java/security/x509/ext/BasicConstraints.class | Bin 0 -> 2690 bytes .../lib/gnu/java/security/x509/ext/CRLNumber.class | Bin 0 -> 1879 bytes .../security/x509/ext/CertificatePolicies.class | Bin 0 -> 4908 bytes .../java/security/x509/ext/ExtendedKeyUsage.class | Bin 0 -> 2069 bytes .../java/security/x509/ext/Extension$Value.class | Bin 0 -> 1195 bytes .../lib/gnu/java/security/x509/ext/Extension.class | Bin 0 -> 4712 bytes .../gnu/java/security/x509/ext/GeneralNames.class | Bin 0 -> 3599 bytes .../security/x509/ext/IssuerAlternativeNames.class | Bin 0 -> 1334 bytes .../lib/gnu/java/security/x509/ext/KeyUsage.class | Bin 0 -> 1954 bytes .../java/security/x509/ext/PolicyConstraint.class | Bin 0 -> 2187 bytes .../java/security/x509/ext/PolicyMappings.class | Bin 0 -> 2433 bytes .../security/x509/ext/PrivateKeyUsagePeriod.class | Bin 0 -> 2082 bytes .../gnu/java/security/x509/ext/ReasonCode.class | Bin 0 -> 1609 bytes .../x509/ext/SubjectAlternativeNames.class | Bin 0 -> 1337 bytes .../security/x509/ext/SubjectKeyIdentifier.class | Bin 0 -> 1612 bytes .../lib/gnu/java/text/AttributedFormatBuffer.class | Bin 0 -> 4054 bytes .../lib/gnu/java/text/BaseBreakIterator.class | Bin 0 -> 1503 bytes .../lib/gnu/java/text/CharacterBreakIterator.class | Bin 0 -> 3120 bytes .../classpath/lib/gnu/java/text/FormatBuffer.class | Bin 0 -> 613 bytes .../gnu/java/text/FormatCharacterIterator.class | Bin 0 -> 7158 bytes .../lib/gnu/java/text/LineBreakIterator.class | Bin 0 -> 2355 bytes .../lib/gnu/java/text/SentenceBreakIterator.class | Bin 0 -> 2834 bytes .../lib/gnu/java/text/StringFormatBuffer.class | Bin 0 -> 2306 bytes .../lib/gnu/java/text/WordBreakIterator.class | Bin 0 -> 2956 bytes .../lib/gnu/java/util/DoubleEnumeration.class | Bin 0 -> 1348 bytes .../lib/gnu/java/util/EmptyEnumeration.class | Bin 0 -> 795 bytes .../lib/gnu/java/util/WeakIdentityHashMap$1.class | Bin 0 -> 2951 bytes .../WeakIdentityHashMap$WeakBucket$WeakEntry.class | Bin 0 -> 2038 bytes .../java/util/WeakIdentityHashMap$WeakBucket.class | Bin 0 -> 1120 bytes .../util/WeakIdentityHashMap$WeakEntrySet.class | Bin 0 -> 996 bytes .../lib/gnu/java/util/WeakIdentityHashMap.class | Bin 0 -> 5474 bytes .../classpath/lib/gnu/java/util/jar/JarUtils.class | Bin 0 -> 9045 bytes .../lib/gnu/java/util/prefs/EventDispatcher.class | Bin 0 -> 1264 bytes .../lib/gnu/java/util/prefs/FileBasedFactory.class | Bin 0 -> 921 bytes .../java/util/prefs/FileBasedPreferences$1.class | Bin 0 -> 924 bytes .../gnu/java/util/prefs/FileBasedPreferences.class | Bin 0 -> 4473 bytes .../gnu/java/util/prefs/GConfBasedFactory.class | Bin 0 -> 869 bytes .../java/util/prefs/GConfBasedPreferences.class | Bin 0 -> 5305 bytes .../gnu/java/util/prefs/MemoryBasedFactory.class | Bin 0 -> 880 bytes .../java/util/prefs/MemoryBasedPreferences.class | Bin 0 -> 2204 bytes .../lib/gnu/java/util/prefs/NodeReader.class | Bin 0 -> 4168 bytes .../lib/gnu/java/util/prefs/NodeWriter.class | Bin 0 -> 5937 bytes .../java/util/prefs/gconf/GConfNativePeer.class | Bin 0 -> 2599 bytes .../java/util/regex/BacktrackStack$Backtrack.class | Bin 0 -> 911 bytes .../lib/gnu/java/util/regex/BacktrackStack.class | Bin 0 -> 1487 bytes .../lib/gnu/java/util/regex/CharIndexed.class | Bin 0 -> 549 bytes .../gnu/java/util/regex/CharIndexedCharArray.class | Bin 0 -> 508 bytes .../java/util/regex/CharIndexedCharSequence.class | Bin 0 -> 2168 bytes .../java/util/regex/CharIndexedInputStream.class | Bin 0 -> 3586 bytes .../gnu/java/util/regex/CharIndexedString.class | Bin 0 -> 458 bytes .../java/util/regex/CharIndexedStringBuffer.class | Bin 0 -> 488 bytes .../gnu/java/util/regex/RE$CharExpression.class | Bin 0 -> 654 bytes .../lib/gnu/java/util/regex/RE$CharUnit.class | Bin 0 -> 516 bytes .../lib/gnu/java/util/regex/RE$IntPair.class | Bin 0 -> 515 bytes .../lib/gnu/java/util/regex/RE$NamedProperty.class | Bin 0 -> 549 bytes .../java/util/regex/RE$ParseCharClassResult.class | Bin 0 -> 632 bytes libjava/classpath/lib/gnu/java/util/regex/RE.class | Bin 0 -> 29673 bytes .../lib/gnu/java/util/regex/REException.class | Bin 0 -> 1846 bytes .../gnu/java/util/regex/REFilterInputStream.class | Bin 0 -> 2226 bytes .../lib/gnu/java/util/regex/REMatch.class | Bin 0 -> 4207 bytes .../gnu/java/util/regex/REMatchEnumeration.class | Bin 0 -> 2007 bytes .../lib/gnu/java/util/regex/RESyntax.class | Bin 0 -> 5039 bytes .../lib/gnu/java/util/regex/REToken.class | Bin 0 -> 4189 bytes .../lib/gnu/java/util/regex/RETokenAny.class | Bin 0 -> 1863 bytes .../lib/gnu/java/util/regex/RETokenBackRef.class | Bin 0 -> 1555 bytes .../lib/gnu/java/util/regex/RETokenChar.class | Bin 0 -> 2786 bytes .../lib/gnu/java/util/regex/RETokenEnd.class | Bin 0 -> 2560 bytes .../util/regex/RETokenEndOfPreviousMatch.class | Bin 0 -> 1604 bytes .../lib/gnu/java/util/regex/RETokenEndSub.class | Bin 0 -> 1668 bytes .../gnu/java/util/regex/RETokenIndependent.class | Bin 0 -> 1615 bytes .../lib/gnu/java/util/regex/RETokenLookAhead.class | Bin 0 -> 1537 bytes .../RETokenLookBehind$RETokenMatchHereOnly.class | Bin 0 -> 1065 bytes .../gnu/java/util/regex/RETokenLookBehind.class | Bin 0 -> 2393 bytes .../java/util/regex/RETokenNamedProperty$1.class | Bin 0 -> 831 bytes .../util/regex/RETokenNamedProperty$Handler.class | Bin 0 -> 566 bytes .../regex/RETokenNamedProperty$POSIXHandler.class | Bin 0 -> 1238 bytes .../RETokenNamedProperty$UnicodeBlockHandler.class | Bin 0 -> 948 bytes ...kenNamedProperty$UnicodeCategoriesHandler.class | Bin 0 -> 868 bytes ...TokenNamedProperty$UnicodeCategoryHandler.class | Bin 0 -> 782 bytes .../gnu/java/util/regex/RETokenNamedProperty.class | Bin 0 -> 6298 bytes .../lib/gnu/java/util/regex/RETokenOneOf.class | Bin 0 -> 6619 bytes .../lib/gnu/java/util/regex/RETokenPOSIX.class | Bin 0 -> 3820 bytes .../lib/gnu/java/util/regex/RETokenRange.class | Bin 0 -> 2109 bytes .../util/regex/RETokenRepeated$DoablesFinder.class | Bin 0 -> 2400 bytes .../regex/RETokenRepeated$FindMatchControl.class | Bin 0 -> 596 bytes .../RETokenRepeated$FindMatchControlStack.class | Bin 0 -> 1698 bytes .../util/regex/RETokenRepeated$StackedInfo.class | Bin 0 -> 999 bytes .../regex/RETokenRepeated$TryAnotherResult.class | Bin 0 -> 768 bytes .../lib/gnu/java/util/regex/RETokenRepeated.class | Bin 0 -> 9441 bytes .../lib/gnu/java/util/regex/RETokenStart.class | Bin 0 -> 2229 bytes .../gnu/java/util/regex/RETokenWordBoundary.class | Bin 0 -> 2115 bytes .../lib/gnu/java/util/regex/UncheckedRE.class | Bin 0 -> 1096 bytes .../lib/gnu/javax/crypto/RSACipherImpl.class | Bin 0 -> 7374 bytes .../lib/gnu/javax/crypto/assembly/Assembly.class | Bin 0 -> 2993 bytes .../lib/gnu/javax/crypto/assembly/Cascade.class | Bin 0 -> 5202 bytes .../gnu/javax/crypto/assembly/CascadeStage.class | Bin 0 -> 2122 bytes .../javax/crypto/assembly/CascadeTransformer.class | Bin 0 -> 2530 bytes .../javax/crypto/assembly/DeflateTransformer.class | Bin 0 -> 3183 bytes .../lib/gnu/javax/crypto/assembly/Direction.class | Bin 0 -> 863 bytes .../crypto/assembly/LoopbackTransformer.class | Bin 0 -> 1478 bytes .../lib/gnu/javax/crypto/assembly/ModeStage.class | Bin 0 -> 2475 bytes .../lib/gnu/javax/crypto/assembly/Operation.class | Bin 0 -> 679 bytes .../javax/crypto/assembly/PaddingTransformer.class | Bin 0 -> 2783 bytes .../lib/gnu/javax/crypto/assembly/Stage.class | Bin 0 -> 2354 bytes .../gnu/javax/crypto/assembly/Transformer.class | Bin 0 -> 5430 bytes .../crypto/assembly/TransformerException.class | Bin 0 -> 1878 bytes .../lib/gnu/javax/crypto/cipher/Anubis.class | Bin 0 -> 8212 bytes .../lib/gnu/javax/crypto/cipher/BaseCipher.class | Bin 0 -> 4395 bytes .../gnu/javax/crypto/cipher/Blowfish$Block.class | Bin 0 -> 672 bytes .../gnu/javax/crypto/cipher/Blowfish$Context.class | Bin 0 -> 1097 bytes .../lib/gnu/javax/crypto/cipher/Blowfish.class | Bin 0 -> 21891 bytes .../gnu/javax/crypto/cipher/Cast5$Cast5Key.class | Bin 0 -> 1106 bytes .../lib/gnu/javax/crypto/cipher/Cast5.class | Bin 0 -> 38541 bytes .../gnu/javax/crypto/cipher/CipherFactory.class | Bin 0 -> 2302 bytes .../lib/gnu/javax/crypto/cipher/DES$Context.class | Bin 0 -> 1058 bytes .../lib/gnu/javax/crypto/cipher/DES.class | Bin 0 -> 13928 bytes .../lib/gnu/javax/crypto/cipher/IBlockCipher.class | Bin 0 -> 829 bytes .../gnu/javax/crypto/cipher/IBlockCipherSpi.class | Bin 0 -> 425 bytes .../lib/gnu/javax/crypto/cipher/Khazad.class | Bin 0 -> 7325 bytes .../lib/gnu/javax/crypto/cipher/NullCipher.class | Bin 0 -> 1919 bytes .../lib/gnu/javax/crypto/cipher/Rijndael.class | Bin 0 -> 11637 bytes .../lib/gnu/javax/crypto/cipher/Serpent$Key.class | Bin 0 -> 5565 bytes .../lib/gnu/javax/crypto/cipher/Serpent.class | Bin 0 -> 28958 bytes .../lib/gnu/javax/crypto/cipher/Square.class | Bin 0 -> 7421 bytes .../javax/crypto/cipher/TripleDES$Context.class | Bin 0 -> 732 bytes .../lib/gnu/javax/crypto/cipher/TripleDES.class | Bin 0 -> 3879 bytes .../lib/gnu/javax/crypto/cipher/Twofish.class | Bin 0 -> 11522 bytes .../gnu/javax/crypto/cipher/WeakKeyException.class | Bin 0 -> 479 bytes .../gnu/javax/crypto/jce/DiffieHellmanImpl.class | Bin 0 -> 3619 bytes .../lib/gnu/javax/crypto/jce/GnuCrypto$1.class | Bin 0 -> 26862 bytes .../lib/gnu/javax/crypto/jce/GnuCrypto.class | Bin 0 -> 1116 bytes .../lib/gnu/javax/crypto/jce/GnuSasl$1.class | Bin 0 -> 2082 bytes .../lib/gnu/javax/crypto/jce/GnuSasl.class | Bin 0 -> 927 bytes .../jce/PBKDF2SecretKeyFactory$HMacHaval.class | Bin 0 -> 469 bytes .../jce/PBKDF2SecretKeyFactory$HMacMD2.class | Bin 0 -> 461 bytes .../jce/PBKDF2SecretKeyFactory$HMacMD4.class | Bin 0 -> 461 bytes .../jce/PBKDF2SecretKeyFactory$HMacMD5.class | Bin 0 -> 461 bytes .../jce/PBKDF2SecretKeyFactory$HMacRipeMD128.class | Bin 0 -> 485 bytes .../jce/PBKDF2SecretKeyFactory$HMacRipeMD160.class | Bin 0 -> 485 bytes .../jce/PBKDF2SecretKeyFactory$HMacSHA1.class | Bin 0 -> 465 bytes .../jce/PBKDF2SecretKeyFactory$HMacSHA256.class | Bin 0 -> 473 bytes .../jce/PBKDF2SecretKeyFactory$HMacSHA384.class | Bin 0 -> 473 bytes .../jce/PBKDF2SecretKeyFactory$HMacSHA512.class | Bin 0 -> 473 bytes .../jce/PBKDF2SecretKeyFactory$HMacTiger.class | Bin 0 -> 469 bytes .../jce/PBKDF2SecretKeyFactory$HMacWhirlpool.class | Bin 0 -> 485 bytes .../javax/crypto/jce/PBKDF2SecretKeyFactory.class | Bin 0 -> 3819 bytes .../javax/crypto/jce/cipher/AES128KeyWrapSpi.class | Bin 0 -> 431 bytes .../javax/crypto/jce/cipher/AES192KeyWrapSpi.class | Bin 0 -> 431 bytes .../javax/crypto/jce/cipher/AES256KeyWrapSpi.class | Bin 0 -> 431 bytes .../javax/crypto/jce/cipher/AESKeyWrapSpi.class | Bin 0 -> 800 bytes .../lib/gnu/javax/crypto/jce/cipher/AESSpi.class | Bin 0 -> 1559 bytes .../gnu/javax/crypto/jce/cipher/ARCFourSpi.class | Bin 0 -> 3913 bytes .../gnu/javax/crypto/jce/cipher/AnubisSpi.class | Bin 0 -> 375 bytes .../gnu/javax/crypto/jce/cipher/BlowfishSpi.class | Bin 0 -> 383 bytes .../lib/gnu/javax/crypto/jce/cipher/Cast5Spi.class | Bin 0 -> 371 bytes .../javax/crypto/jce/cipher/CipherAdapter.class | Bin 0 -> 9825 bytes .../lib/gnu/javax/crypto/jce/cipher/DESSpi.class | Bin 0 -> 363 bytes .../jce/cipher/KeyWrappingAlgorithmAdapter.class | Bin 0 -> 8363 bytes .../gnu/javax/crypto/jce/cipher/KhazadSpi.class | Bin 0 -> 375 bytes .../javax/crypto/jce/cipher/NullCipherSpi.class | Bin 0 -> 385 bytes .../crypto/jce/cipher/PBES2$HMacHaval$AES.class | Bin 0 -> 480 bytes .../crypto/jce/cipher/PBES2$HMacHaval$Anubis.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacHaval$Blowfish.class | Bin 0 -> 495 bytes .../crypto/jce/cipher/PBES2$HMacHaval$Cast5.class | Bin 0 -> 486 bytes .../crypto/jce/cipher/PBES2$HMacHaval$DES.class | Bin 0 -> 480 bytes .../crypto/jce/cipher/PBES2$HMacHaval$Khazad.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacHaval$Serpent.class | Bin 0 -> 492 bytes .../crypto/jce/cipher/PBES2$HMacHaval$Square.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacHaval$TripleDES.class | Bin 0 -> 498 bytes .../jce/cipher/PBES2$HMacHaval$Twofish.class | Bin 0 -> 492 bytes .../javax/crypto/jce/cipher/PBES2$HMacHaval.class | Bin 0 -> 1411 bytes .../crypto/jce/cipher/PBES2$HMacMD2$AES.class | Bin 0 -> 472 bytes .../crypto/jce/cipher/PBES2$HMacMD2$Anubis.class | Bin 0 -> 481 bytes .../crypto/jce/cipher/PBES2$HMacMD2$Blowfish.class | Bin 0 -> 487 bytes .../crypto/jce/cipher/PBES2$HMacMD2$Cast5.class | Bin 0 -> 478 bytes .../crypto/jce/cipher/PBES2$HMacMD2$DES.class | Bin 0 -> 472 bytes .../crypto/jce/cipher/PBES2$HMacMD2$Khazad.class | Bin 0 -> 481 bytes .../crypto/jce/cipher/PBES2$HMacMD2$Serpent.class | Bin 0 -> 484 bytes .../crypto/jce/cipher/PBES2$HMacMD2$Square.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD2$TripleDES.class | Bin 0 -> 490 bytes .../crypto/jce/cipher/PBES2$HMacMD2$Twofish.class | Bin 0 -> 484 bytes .../javax/crypto/jce/cipher/PBES2$HMacMD2.class | Bin 0 -> 1383 bytes .../crypto/jce/cipher/PBES2$HMacMD4$AES.class | Bin 0 -> 472 bytes .../crypto/jce/cipher/PBES2$HMacMD4$Anubis.class | Bin 0 -> 481 bytes .../crypto/jce/cipher/PBES2$HMacMD4$Blowfish.class | Bin 0 -> 487 bytes .../crypto/jce/cipher/PBES2$HMacMD4$Cast5.class | Bin 0 -> 478 bytes .../crypto/jce/cipher/PBES2$HMacMD4$DES.class | Bin 0 -> 472 bytes .../crypto/jce/cipher/PBES2$HMacMD4$Khazad.class | Bin 0 -> 481 bytes .../crypto/jce/cipher/PBES2$HMacMD4$Serpent.class | Bin 0 -> 484 bytes .../crypto/jce/cipher/PBES2$HMacMD4$Square.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD4$TripleDES.class | Bin 0 -> 490 bytes .../crypto/jce/cipher/PBES2$HMacMD4$Twofish.class | Bin 0 -> 484 bytes .../javax/crypto/jce/cipher/PBES2$HMacMD4.class | Bin 0 -> 1383 bytes .../crypto/jce/cipher/PBES2$HMacMD5$AES.class | Bin 0 -> 472 bytes .../crypto/jce/cipher/PBES2$HMacMD5$Anubis.class | Bin 0 -> 481 bytes .../crypto/jce/cipher/PBES2$HMacMD5$Blowfish.class | Bin 0 -> 487 bytes .../crypto/jce/cipher/PBES2$HMacMD5$Cast5.class | Bin 0 -> 478 bytes .../crypto/jce/cipher/PBES2$HMacMD5$DES.class | Bin 0 -> 472 bytes .../crypto/jce/cipher/PBES2$HMacMD5$Khazad.class | Bin 0 -> 481 bytes .../crypto/jce/cipher/PBES2$HMacMD5$Serpent.class | Bin 0 -> 484 bytes .../crypto/jce/cipher/PBES2$HMacMD5$Square.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD5$TripleDES.class | Bin 0 -> 490 bytes .../crypto/jce/cipher/PBES2$HMacMD5$Twofish.class | Bin 0 -> 484 bytes .../javax/crypto/jce/cipher/PBES2$HMacMD5.class | Bin 0 -> 1383 bytes .../jce/cipher/PBES2$HMacRipeMD128$AES.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacRipeMD128$Anubis.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacRipeMD128$Blowfish.class | Bin 0 -> 511 bytes .../jce/cipher/PBES2$HMacRipeMD128$Cast5.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacRipeMD128$DES.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacRipeMD128$Khazad.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacRipeMD128$Serpent.class | Bin 0 -> 508 bytes .../jce/cipher/PBES2$HMacRipeMD128$Square.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacRipeMD128$TripleDES.class | Bin 0 -> 514 bytes .../jce/cipher/PBES2$HMacRipeMD128$Twofish.class | Bin 0 -> 508 bytes .../crypto/jce/cipher/PBES2$HMacRipeMD128.class | Bin 0 -> 1467 bytes .../jce/cipher/PBES2$HMacRipeMD160$AES.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacRipeMD160$Anubis.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacRipeMD160$Blowfish.class | Bin 0 -> 511 bytes .../jce/cipher/PBES2$HMacRipeMD160$Cast5.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacRipeMD160$DES.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacRipeMD160$Khazad.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacRipeMD160$Serpent.class | Bin 0 -> 508 bytes .../jce/cipher/PBES2$HMacRipeMD160$Square.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacRipeMD160$TripleDES.class | Bin 0 -> 514 bytes .../jce/cipher/PBES2$HMacRipeMD160$Twofish.class | Bin 0 -> 508 bytes .../crypto/jce/cipher/PBES2$HMacRipeMD160.class | Bin 0 -> 1467 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$AES.class | Bin 0 -> 476 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$Anubis.class | Bin 0 -> 485 bytes .../jce/cipher/PBES2$HMacSHA1$Blowfish.class | Bin 0 -> 491 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$Cast5.class | Bin 0 -> 482 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$DES.class | Bin 0 -> 476 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$Khazad.class | Bin 0 -> 485 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$Serpent.class | Bin 0 -> 488 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$Square.class | Bin 0 -> 485 bytes .../jce/cipher/PBES2$HMacSHA1$TripleDES.class | Bin 0 -> 494 bytes .../crypto/jce/cipher/PBES2$HMacSHA1$Twofish.class | Bin 0 -> 488 bytes .../javax/crypto/jce/cipher/PBES2$HMacSHA1.class | Bin 0 -> 1397 bytes .../crypto/jce/cipher/PBES2$HMacSHA256$AES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA256$Anubis.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA256$Blowfish.class | Bin 0 -> 499 bytes .../crypto/jce/cipher/PBES2$HMacSHA256$Cast5.class | Bin 0 -> 490 bytes .../crypto/jce/cipher/PBES2$HMacSHA256$DES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA256$Khazad.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA256$Serpent.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacSHA256$Square.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA256$TripleDES.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacSHA256$Twofish.class | Bin 0 -> 496 bytes .../javax/crypto/jce/cipher/PBES2$HMacSHA256.class | Bin 0 -> 1426 bytes .../crypto/jce/cipher/PBES2$HMacSHA384$AES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA384$Anubis.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA384$Blowfish.class | Bin 0 -> 499 bytes .../crypto/jce/cipher/PBES2$HMacSHA384$Cast5.class | Bin 0 -> 490 bytes .../crypto/jce/cipher/PBES2$HMacSHA384$DES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA384$Khazad.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA384$Serpent.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacSHA384$Square.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA384$TripleDES.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacSHA384$Twofish.class | Bin 0 -> 496 bytes .../javax/crypto/jce/cipher/PBES2$HMacSHA384.class | Bin 0 -> 1426 bytes .../crypto/jce/cipher/PBES2$HMacSHA512$AES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA512$Anubis.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA512$Blowfish.class | Bin 0 -> 499 bytes .../crypto/jce/cipher/PBES2$HMacSHA512$Cast5.class | Bin 0 -> 490 bytes .../crypto/jce/cipher/PBES2$HMacSHA512$DES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA512$Khazad.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA512$Serpent.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacSHA512$Square.class | Bin 0 -> 493 bytes .../jce/cipher/PBES2$HMacSHA512$TripleDES.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacSHA512$Twofish.class | Bin 0 -> 496 bytes .../javax/crypto/jce/cipher/PBES2$HMacSHA512.class | Bin 0 -> 1426 bytes .../crypto/jce/cipher/PBES2$HMacTiger$AES.class | Bin 0 -> 480 bytes .../crypto/jce/cipher/PBES2$HMacTiger$Anubis.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacTiger$Blowfish.class | Bin 0 -> 495 bytes .../crypto/jce/cipher/PBES2$HMacTiger$Cast5.class | Bin 0 -> 486 bytes .../crypto/jce/cipher/PBES2$HMacTiger$DES.class | Bin 0 -> 480 bytes .../crypto/jce/cipher/PBES2$HMacTiger$Khazad.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacTiger$Serpent.class | Bin 0 -> 492 bytes .../crypto/jce/cipher/PBES2$HMacTiger$Square.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacTiger$TripleDES.class | Bin 0 -> 498 bytes .../jce/cipher/PBES2$HMacTiger$Twofish.class | Bin 0 -> 492 bytes .../javax/crypto/jce/cipher/PBES2$HMacTiger.class | Bin 0 -> 1411 bytes .../jce/cipher/PBES2$HMacWhirlpool$AES.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacWhirlpool$Anubis.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacWhirlpool$Blowfish.class | Bin 0 -> 511 bytes .../jce/cipher/PBES2$HMacWhirlpool$Cast5.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacWhirlpool$DES.class | Bin 0 -> 496 bytes .../jce/cipher/PBES2$HMacWhirlpool$Khazad.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacWhirlpool$Serpent.class | Bin 0 -> 508 bytes .../jce/cipher/PBES2$HMacWhirlpool$Square.class | Bin 0 -> 505 bytes .../jce/cipher/PBES2$HMacWhirlpool$TripleDES.class | Bin 0 -> 514 bytes .../jce/cipher/PBES2$HMacWhirlpool$Twofish.class | Bin 0 -> 508 bytes .../crypto/jce/cipher/PBES2$HMacWhirlpool.class | Bin 0 -> 1467 bytes .../lib/gnu/javax/crypto/jce/cipher/PBES2.class | Bin 0 -> 4591 bytes .../gnu/javax/crypto/jce/cipher/RijndaelSpi.class | Bin 0 -> 386 bytes .../gnu/javax/crypto/jce/cipher/SerpentSpi.class | Bin 0 -> 379 bytes .../gnu/javax/crypto/jce/cipher/SquareSpi.class | Bin 0 -> 375 bytes .../crypto/jce/cipher/TripleDESKeyWrapSpi.class | Bin 0 -> 460 bytes .../gnu/javax/crypto/jce/cipher/TripleDESSpi.class | Bin 0 -> 387 bytes .../gnu/javax/crypto/jce/cipher/TwofishSpi.class | Bin 0 -> 379 bytes .../crypto/jce/key/AnubisKeyGeneratorImpl.class | Bin 0 -> 414 bytes .../jce/key/AnubisSecretKeyFactoryImpl.class | Bin 0 -> 386 bytes .../crypto/jce/key/BlowfishKeyGeneratorImpl.class | Bin 0 -> 422 bytes .../jce/key/BlowfishSecretKeyFactoryImpl.class | Bin 0 -> 392 bytes .../crypto/jce/key/Cast5KeyGeneratorImpl.class | Bin 0 -> 410 bytes .../crypto/jce/key/Cast5SecretKeyFactoryImpl.class | Bin 0 -> 383 bytes .../javax/crypto/jce/key/DESKeyGeneratorImpl.class | Bin 0 -> 1080 bytes .../crypto/jce/key/DESSecretKeyFactoryImpl.class | Bin 0 -> 1589 bytes .../jce/key/DESedeSecretKeyFactoryImpl.class | Bin 0 -> 1599 bytes .../crypto/jce/key/KhazadKeyGeneratorImpl.class | Bin 0 -> 414 bytes .../jce/key/KhazadSecretKeyFactoryImpl.class | Bin 0 -> 386 bytes .../crypto/jce/key/RijndaelKeyGeneratorImpl.class | Bin 0 -> 422 bytes .../jce/key/RijndaelSecretKeyFactoryImpl.class | Bin 0 -> 392 bytes .../crypto/jce/key/SecretKeyFactoryImpl.class | Bin 0 -> 1889 bytes .../crypto/jce/key/SecretKeyGeneratorImpl.class | Bin 0 -> 2889 bytes .../crypto/jce/key/SerpentKeyGeneratorImpl.class | Bin 0 -> 418 bytes .../jce/key/SerpentSecretKeyFactoryImpl.class | Bin 0 -> 389 bytes .../crypto/jce/key/SquareKeyGeneratorImpl.class | Bin 0 -> 414 bytes .../jce/key/SquareSecretKeyFactoryImpl.class | Bin 0 -> 386 bytes .../crypto/jce/key/TripleDESKeyGeneratorImpl.class | Bin 0 -> 426 bytes .../crypto/jce/key/TwofishKeyGeneratorImpl.class | Bin 0 -> 418 bytes .../jce/key/TwofishSecretKeyFactoryImpl.class | Bin 0 -> 389 bytes .../gnu/javax/crypto/jce/keyring/GnuKeyring.class | Bin 0 -> 9345 bytes .../gnu/javax/crypto/jce/mac/HMacHavalSpi.class | Bin 0 -> 376 bytes .../lib/gnu/javax/crypto/jce/mac/HMacMD2Spi.class | Bin 0 -> 368 bytes .../lib/gnu/javax/crypto/jce/mac/HMacMD4Spi.class | Bin 0 -> 368 bytes .../lib/gnu/javax/crypto/jce/mac/HMacMD5Spi.class | Bin 0 -> 368 bytes .../javax/crypto/jce/mac/HMacRipeMD128Spi.class | Bin 0 -> 392 bytes .../javax/crypto/jce/mac/HMacRipeMD160Spi.class | Bin 0 -> 392 bytes .../gnu/javax/crypto/jce/mac/HMacSHA160Spi.class | Bin 0 -> 381 bytes .../gnu/javax/crypto/jce/mac/HMacSHA256Spi.class | Bin 0 -> 381 bytes .../gnu/javax/crypto/jce/mac/HMacSHA384Spi.class | Bin 0 -> 381 bytes .../gnu/javax/crypto/jce/mac/HMacSHA512Spi.class | Bin 0 -> 381 bytes .../gnu/javax/crypto/jce/mac/HMacTigerSpi.class | Bin 0 -> 376 bytes .../javax/crypto/jce/mac/HMacWhirlpoolSpi.class | Bin 0 -> 392 bytes .../lib/gnu/javax/crypto/jce/mac/MacAdapter.class | Bin 0 -> 2656 bytes .../gnu/javax/crypto/jce/mac/OMacAnubisImpl.class | Bin 0 -> 383 bytes .../javax/crypto/jce/mac/OMacBlowfishImpl.class | Bin 0 -> 391 bytes .../gnu/javax/crypto/jce/mac/OMacCast5Impl.class | Bin 0 -> 379 bytes .../lib/gnu/javax/crypto/jce/mac/OMacDESImpl.class | Bin 0 -> 371 bytes .../gnu/javax/crypto/jce/mac/OMacImpl$Anubis.class | Bin 0 -> 517 bytes .../javax/crypto/jce/mac/OMacImpl$Blowfish.class | Bin 0 -> 525 bytes .../gnu/javax/crypto/jce/mac/OMacImpl$Cast5.class | Bin 0 -> 513 bytes .../gnu/javax/crypto/jce/mac/OMacImpl$DES.class | Bin 0 -> 505 bytes .../gnu/javax/crypto/jce/mac/OMacImpl$Khazad.class | Bin 0 -> 517 bytes .../javax/crypto/jce/mac/OMacImpl$Rijndael.class | Bin 0 -> 525 bytes .../javax/crypto/jce/mac/OMacImpl$Serpent.class | Bin 0 -> 521 bytes .../gnu/javax/crypto/jce/mac/OMacImpl$Square.class | Bin 0 -> 517 bytes .../javax/crypto/jce/mac/OMacImpl$TripleDES.class | Bin 0 -> 529 bytes .../javax/crypto/jce/mac/OMacImpl$Twofish.class | Bin 0 -> 521 bytes .../lib/gnu/javax/crypto/jce/mac/OMacImpl.class | Bin 0 -> 1213 bytes .../gnu/javax/crypto/jce/mac/OMacKhazadImpl.class | Bin 0 -> 383 bytes .../javax/crypto/jce/mac/OMacRijndaelImpl.class | Bin 0 -> 391 bytes .../gnu/javax/crypto/jce/mac/OMacSerpentImpl.class | Bin 0 -> 387 bytes .../gnu/javax/crypto/jce/mac/OMacSquareImpl.class | Bin 0 -> 383 bytes .../javax/crypto/jce/mac/OMacTripleDESImpl.class | Bin 0 -> 395 bytes .../gnu/javax/crypto/jce/mac/OMacTwofishImpl.class | Bin 0 -> 387 bytes .../lib/gnu/javax/crypto/jce/mac/TMMH16Spi.class | Bin 0 -> 1659 bytes .../lib/gnu/javax/crypto/jce/mac/UHash32Spi.class | Bin 0 -> 367 bytes .../lib/gnu/javax/crypto/jce/mac/UMac32Spi.class | Bin 0 -> 1242 bytes .../crypto/jce/params/BlockCipherParameters.class | Bin 0 -> 3568 bytes .../crypto/jce/params/DEREncodingException.class | Bin 0 -> 485 bytes .../gnu/javax/crypto/jce/params/DERReader.class | Bin 0 -> 2085 bytes .../gnu/javax/crypto/jce/params/DERWriter.class | Bin 0 -> 2257 bytes .../javax/crypto/jce/prng/ARCFourRandomSpi.class | Bin 0 -> 1418 bytes .../lib/gnu/javax/crypto/jce/prng/CSPRNGSpi.class | Bin 0 -> 1499 bytes .../gnu/javax/crypto/jce/prng/FortunaImpl.class | Bin 0 -> 1354 bytes .../gnu/javax/crypto/jce/prng/ICMRandomSpi.class | Bin 0 -> 3712 bytes .../gnu/javax/crypto/jce/prng/UMacRandomSpi.class | Bin 0 -> 3184 bytes .../gnu/javax/crypto/jce/sig/DHKeyFactory.class | Bin 0 -> 4888 bytes .../crypto/jce/sig/DHKeyPairGeneratorSpi.class | Bin 0 -> 1650 bytes .../gnu/javax/crypto/jce/sig/DHParameters.class | Bin 0 -> 4564 bytes .../crypto/jce/sig/DHParametersGenerator.class | Bin 0 -> 3498 bytes .../crypto/jce/spec/BlockCipherParameterSpec.class | Bin 0 -> 1630 bytes .../javax/crypto/jce/spec/TMMHParameterSpec.class | Bin 0 -> 1094 bytes .../crypto/jce/spec/UMac32ParameterSpec.class | Bin 0 -> 524 bytes .../javax/crypto/key/BaseKeyAgreementParty.class | Bin 0 -> 2887 bytes .../lib/gnu/javax/crypto/key/GnuPBEKey.class | Bin 0 -> 1273 bytes .../lib/gnu/javax/crypto/key/GnuSecretKey.class | Bin 0 -> 1620 bytes .../gnu/javax/crypto/key/IKeyAgreementParty.class | Bin 0 -> 491 bytes .../lib/gnu/javax/crypto/key/IncomingMessage.class | Bin 0 -> 5337 bytes .../javax/crypto/key/KeyAgreementException.class | Bin 0 -> 1782 bytes .../gnu/javax/crypto/key/KeyAgreementFactory.class | Bin 0 -> 1998 bytes .../lib/gnu/javax/crypto/key/OutgoingMessage.class | Bin 0 -> 3590 bytes .../javax/crypto/key/dh/DHKeyPairPKCS8Codec.class | Bin 0 -> 4882 bytes .../javax/crypto/key/dh/DHKeyPairRawCodec.class | Bin 0 -> 4528 bytes .../javax/crypto/key/dh/DHKeyPairX509Codec.class | Bin 0 -> 4928 bytes .../crypto/key/dh/DiffieHellmanKeyAgreement.class | Bin 0 -> 1058 bytes .../crypto/key/dh/DiffieHellmanReceiver.class | Bin 0 -> 2816 bytes .../javax/crypto/key/dh/DiffieHellmanSender.class | Bin 0 -> 2956 bytes .../javax/crypto/key/dh/ElGamalKeyAgreement.class | Bin 0 -> 1075 bytes .../gnu/javax/crypto/key/dh/ElGamalReceiver.class | Bin 0 -> 2008 bytes .../gnu/javax/crypto/key/dh/ElGamalSender.class | Bin 0 -> 2505 bytes .../lib/gnu/javax/crypto/key/dh/GnuDHKey.class | Bin 0 -> 2703 bytes .../crypto/key/dh/GnuDHKeyPairGenerator.class | Bin 0 -> 4686 bytes .../gnu/javax/crypto/key/dh/GnuDHPrivateKey.class | Bin 0 -> 2989 bytes .../gnu/javax/crypto/key/dh/GnuDHPublicKey.class | Bin 0 -> 2990 bytes .../lib/gnu/javax/crypto/key/dh/RFC2631.class | Bin 0 -> 3411 bytes .../lib/gnu/javax/crypto/key/srp6/SRP6Host.class | Bin 0 -> 4805 bytes .../javax/crypto/key/srp6/SRP6KeyAgreement.class | Bin 0 -> 2064 bytes .../gnu/javax/crypto/key/srp6/SRP6SaslClient.class | Bin 0 -> 1268 bytes .../gnu/javax/crypto/key/srp6/SRP6SaslServer.class | Bin 0 -> 1205 bytes .../gnu/javax/crypto/key/srp6/SRP6TLSClient.class | Bin 0 -> 4230 bytes .../gnu/javax/crypto/key/srp6/SRP6TLSServer.class | Bin 0 -> 4819 bytes .../lib/gnu/javax/crypto/key/srp6/SRP6User.class | Bin 0 -> 4660 bytes .../gnu/javax/crypto/key/srp6/SRPAlgorithm.class | Bin 0 -> 4451 bytes .../lib/gnu/javax/crypto/key/srp6/SRPKey.class | Bin 0 -> 1256 bytes .../crypto/key/srp6/SRPKeyPairGenerator.class | Bin 0 -> 5486 bytes .../javax/crypto/key/srp6/SRPKeyPairRawCodec.class | Bin 0 -> 4346 bytes .../gnu/javax/crypto/key/srp6/SRPPrivateKey.class | Bin 0 -> 2479 bytes .../gnu/javax/crypto/key/srp6/SRPPublicKey.class | Bin 0 -> 1972 bytes .../javax/crypto/keyring/AuthenticatedEntry.class | Bin 0 -> 5067 bytes .../lib/gnu/javax/crypto/keyring/BaseKeyring.class | Bin 0 -> 3549 bytes .../gnu/javax/crypto/keyring/BinaryDataEntry.class | Bin 0 -> 1815 bytes .../gnu/javax/crypto/keyring/CertPathEntry.class | Bin 0 -> 2959 bytes .../javax/crypto/keyring/CertificateEntry.class | Bin 0 -> 2968 bytes .../gnu/javax/crypto/keyring/CompressedEntry.class | Bin 0 -> 3048 bytes .../gnu/javax/crypto/keyring/EncryptedEntry.class | Bin 0 -> 5894 bytes .../lib/gnu/javax/crypto/keyring/Entry.class | Bin 0 -> 3066 bytes .../gnu/javax/crypto/keyring/EnvelopeEntry.class | Bin 0 -> 7797 bytes .../javax/crypto/keyring/GnuPrivateKeyring.class | Bin 0 -> 7405 bytes .../javax/crypto/keyring/GnuPublicKeyring.class | Bin 0 -> 4016 bytes .../lib/gnu/javax/crypto/keyring/IKeyring.class | Bin 0 -> 754 bytes .../gnu/javax/crypto/keyring/IPrivateKeyring.class | Bin 0 -> 790 bytes .../gnu/javax/crypto/keyring/IPublicKeyring.class | Bin 0 -> 390 bytes .../crypto/keyring/MalformedKeyringException.class | Bin 0 -> 494 bytes .../crypto/keyring/MaskableEnvelopeEntry.class | Bin 0 -> 2248 bytes .../javax/crypto/keyring/MeteredInputStream.class | Bin 0 -> 1978 bytes .../keyring/PasswordAuthenticatedEntry.class | Bin 0 -> 8106 bytes .../crypto/keyring/PasswordEncryptedEntry.class | Bin 0 -> 8323 bytes .../crypto/keyring/PasswordProtectedEntry.class | Bin 0 -> 498 bytes .../gnu/javax/crypto/keyring/PrimitiveEntry.class | Bin 0 -> 2280 bytes .../gnu/javax/crypto/keyring/PrivateKeyEntry.class | Bin 0 -> 4367 bytes .../lib/gnu/javax/crypto/keyring/Properties.class | Bin 0 -> 3479 bytes .../gnu/javax/crypto/keyring/PublicKeyEntry.class | Bin 0 -> 3747 bytes .../lib/gnu/javax/crypto/kwa/AESKeyWrap.class | Bin 0 -> 3081 bytes .../crypto/kwa/BaseKeyWrappingAlgorithm.class | Bin 0 -> 2353 bytes .../javax/crypto/kwa/IKeyWrappingAlgorithm.class | Bin 0 -> 698 bytes .../javax/crypto/kwa/KeyUnwrappingException.class | Bin 0 -> 496 bytes .../crypto/kwa/KeyWrappingAlgorithmFactory.class | Bin 0 -> 1474 bytes .../gnu/javax/crypto/kwa/TripleDESKeyWrap.class | Bin 0 -> 5388 bytes .../lib/gnu/javax/crypto/mac/BaseMac.class | Bin 0 -> 1694 bytes .../classpath/lib/gnu/javax/crypto/mac/HMac.class | Bin 0 -> 4848 bytes .../lib/gnu/javax/crypto/mac/HMacFactory.class | Bin 0 -> 1916 bytes .../classpath/lib/gnu/javax/crypto/mac/IMac.class | Bin 0 -> 686 bytes .../lib/gnu/javax/crypto/mac/MacFactory.class | Bin 0 -> 2483 bytes .../lib/gnu/javax/crypto/mac/MacInputStream.class | Bin 0 -> 1464 bytes .../lib/gnu/javax/crypto/mac/MacOutputStream.class | Bin 0 -> 1438 bytes .../classpath/lib/gnu/javax/crypto/mac/OMAC.class | Bin 0 -> 5837 bytes .../lib/gnu/javax/crypto/mac/TMMH16.class | Bin 0 -> 4710 bytes .../gnu/javax/crypto/mac/UHash32$L1Hash32.class | Bin 0 -> 3648 bytes .../gnu/javax/crypto/mac/UHash32$L2Hash32.class | Bin 0 -> 3784 bytes .../gnu/javax/crypto/mac/UHash32$L3Hash32.class | Bin 0 -> 1865 bytes .../lib/gnu/javax/crypto/mac/UHash32.class | Bin 0 -> 5515 bytes .../lib/gnu/javax/crypto/mac/UMac32.class | Bin 0 -> 6241 bytes .../lib/gnu/javax/crypto/mode/BaseMode.class | Bin 0 -> 4880 bytes .../classpath/lib/gnu/javax/crypto/mode/CBC.class | Bin 0 -> 1912 bytes .../classpath/lib/gnu/javax/crypto/mode/CFB.class | Bin 0 -> 2144 bytes .../classpath/lib/gnu/javax/crypto/mode/CTR.class | Bin 0 -> 2347 bytes .../classpath/lib/gnu/javax/crypto/mode/EAX.class | Bin 0 -> 6178 bytes .../classpath/lib/gnu/javax/crypto/mode/ECB.class | Bin 0 -> 1484 bytes .../gnu/javax/crypto/mode/IAuthenticatedMode.class | Bin 0 -> 207 bytes .../classpath/lib/gnu/javax/crypto/mode/ICM.class | Bin 0 -> 2874 bytes .../lib/gnu/javax/crypto/mode/IMode.class | Bin 0 -> 517 bytes .../lib/gnu/javax/crypto/mode/ModeFactory.class | Bin 0 -> 2809 bytes .../classpath/lib/gnu/javax/crypto/mode/OFB.class | Bin 0 -> 1618 bytes .../lib/gnu/javax/crypto/pad/BasePad.class | Bin 0 -> 2343 bytes .../classpath/lib/gnu/javax/crypto/pad/IPad.class | Bin 0 -> 530 bytes .../lib/gnu/javax/crypto/pad/ISO10126.class | Bin 0 -> 1212 bytes .../lib/gnu/javax/crypto/pad/PKCS1_V1_5.class | Bin 0 -> 2172 bytes .../classpath/lib/gnu/javax/crypto/pad/PKCS7.class | Bin 0 -> 1381 bytes .../lib/gnu/javax/crypto/pad/PadFactory.class | Bin 0 -> 1921 bytes .../classpath/lib/gnu/javax/crypto/pad/SSL3.class | Bin 0 -> 1151 bytes .../classpath/lib/gnu/javax/crypto/pad/TBC.class | Bin 0 -> 1423 bytes .../classpath/lib/gnu/javax/crypto/pad/TLS1.class | Bin 0 -> 1199 bytes .../javax/crypto/pad/WrongPaddingException.class | Bin 0 -> 333 bytes .../lib/gnu/javax/crypto/prng/ARCFour.class | Bin 0 -> 1692 bytes .../lib/gnu/javax/crypto/prng/CSPRNG$1.class | Bin 0 -> 697 bytes .../lib/gnu/javax/crypto/prng/CSPRNG$Poller.class | Bin 0 -> 3788 bytes .../lib/gnu/javax/crypto/prng/CSPRNG$Spinner.class | Bin 0 -> 738 bytes .../lib/gnu/javax/crypto/prng/CSPRNG.class | Bin 0 -> 12837 bytes .../gnu/javax/crypto/prng/Fortuna$Generator.class | Bin 0 -> 4028 bytes .../lib/gnu/javax/crypto/prng/Fortuna.class | Bin 0 -> 4083 bytes .../lib/gnu/javax/crypto/prng/ICMGenerator.class | Bin 0 -> 4444 bytes .../classpath/lib/gnu/javax/crypto/prng/IPBE.class | Bin 0 -> 451 bytes .../lib/gnu/javax/crypto/prng/PBKDF2.class | Bin 0 -> 3572 bytes .../lib/gnu/javax/crypto/prng/PRNGFactory.class | Bin 0 -> 2272 bytes .../lib/gnu/javax/crypto/prng/UMacGenerator.class | Bin 0 -> 2654 bytes .../lib/gnu/javax/crypto/sasl/AuthInfo.class | Bin 0 -> 2428 bytes .../crypto/sasl/AuthInfoProviderFactory.class | Bin 0 -> 1062 bytes .../lib/gnu/javax/crypto/sasl/ClientFactory.class | Bin 0 -> 4064 bytes .../gnu/javax/crypto/sasl/ClientMechanism.class | Bin 0 -> 5373 bytes .../crypto/sasl/ConfidentialityException.class | Bin 0 -> 667 bytes .../gnu/javax/crypto/sasl/IAuthInfoProvider.class | Bin 0 -> 502 bytes .../crypto/sasl/IAuthInfoProviderFactory.class | Bin 0 -> 237 bytes .../sasl/IllegalMechanismStateException.class | Bin 0 -> 701 bytes .../lib/gnu/javax/crypto/sasl/InputBuffer.class | Bin 0 -> 3753 bytes .../gnu/javax/crypto/sasl/IntegrityException.class | Bin 0 -> 649 bytes .../crypto/sasl/NoSuchMechanismException.class | Bin 0 -> 418 bytes .../javax/crypto/sasl/NoSuchUserException.class | Bin 0 -> 494 bytes .../lib/gnu/javax/crypto/sasl/OutputBuffer.class | Bin 0 -> 2769 bytes .../javax/crypto/sasl/SaslEncodingException.class | Bin 0 -> 488 bytes .../gnu/javax/crypto/sasl/SaslInputStream.class | Bin 0 -> 4002 bytes .../gnu/javax/crypto/sasl/SaslOutputStream.class | Bin 0 -> 2860 bytes .../lib/gnu/javax/crypto/sasl/SaslUtil.class | Bin 0 -> 954 bytes .../lib/gnu/javax/crypto/sasl/ServerFactory.class | Bin 0 -> 3779 bytes .../gnu/javax/crypto/sasl/ServerMechanism.class | Bin 0 -> 5632 bytes .../crypto/sasl/UserAlreadyExistsException.class | Bin 0 -> 510 bytes .../crypto/sasl/anonymous/AnonymousClient.class | Bin 0 -> 1734 bytes .../crypto/sasl/anonymous/AnonymousServer.class | Bin 0 -> 1399 bytes .../crypto/sasl/anonymous/AnonymousUtil.class | Bin 0 -> 951 bytes .../sasl/crammd5/CramMD5AuthInfoProvider.class | Bin 0 -> 3418 bytes .../javax/crypto/sasl/crammd5/CramMD5Client.class | Bin 0 -> 3839 bytes .../crypto/sasl/crammd5/CramMD5Registry.class | Bin 0 -> 543 bytes .../javax/crypto/sasl/crammd5/CramMD5Server.class | Bin 0 -> 3369 bytes .../javax/crypto/sasl/crammd5/CramMD5Util.class | Bin 0 -> 2534 bytes .../javax/crypto/sasl/crammd5/PasswordFile.class | Bin 0 -> 5083 bytes .../gnu/javax/crypto/sasl/plain/PasswordFile.class | Bin 0 -> 5266 bytes .../crypto/sasl/plain/PlainAuthInfoProvider.class | Bin 0 -> 3441 bytes .../gnu/javax/crypto/sasl/plain/PlainClient.class | Bin 0 -> 3394 bytes .../javax/crypto/sasl/plain/PlainRegistry.class | Bin 0 -> 526 bytes .../gnu/javax/crypto/sasl/plain/PlainServer.class | Bin 0 -> 3221 bytes .../lib/gnu/javax/crypto/sasl/srp/CALG.class | Bin 0 -> 4124 bytes .../gnu/javax/crypto/sasl/srp/ClientStore.class | Bin 0 -> 2087 bytes .../lib/gnu/javax/crypto/sasl/srp/IALG.class | Bin 0 -> 2245 bytes .../lib/gnu/javax/crypto/sasl/srp/KDF.class | Bin 0 -> 2276 bytes .../gnu/javax/crypto/sasl/srp/PasswordFile.class | Bin 0 -> 11585 bytes .../lib/gnu/javax/crypto/sasl/srp/SRP.class | Bin 0 -> 4671 bytes .../crypto/sasl/srp/SRPAuthInfoProvider.class | Bin 0 -> 3562 bytes .../lib/gnu/javax/crypto/sasl/srp/SRPClient.class | Bin 0 -> 18659 bytes .../gnu/javax/crypto/sasl/srp/SRPRegistry.class | Bin 0 -> 3133 bytes .../lib/gnu/javax/crypto/sasl/srp/SRPServer.class | Bin 0 -> 15844 bytes .../javax/crypto/sasl/srp/SecurityContext.class | Bin 0 -> 2168 bytes .../gnu/javax/crypto/sasl/srp/ServerStore.class | Bin 0 -> 2658 bytes .../lib/gnu/javax/crypto/sasl/srp/StoreEntry.class | Bin 0 -> 641 bytes .../lib/gnu/javax/imageio/IIOInputStream.class | Bin 0 -> 1477 bytes .../lib/gnu/javax/imageio/bmp/BMPDecoder.class | Bin 0 -> 3476 bytes .../lib/gnu/javax/imageio/bmp/BMPEncoder.class | Bin 0 -> 1547 bytes .../lib/gnu/javax/imageio/bmp/BMPException.class | Bin 0 -> 379 bytes .../lib/gnu/javax/imageio/bmp/BMPFileHeader.class | Bin 0 -> 2715 bytes .../lib/gnu/javax/imageio/bmp/BMPImageReader.class | Bin 0 -> 3376 bytes .../gnu/javax/imageio/bmp/BMPImageReaderSpi.class | Bin 0 -> 3037 bytes .../lib/gnu/javax/imageio/bmp/BMPImageWriter.class | Bin 0 -> 3379 bytes .../gnu/javax/imageio/bmp/BMPImageWriterSpi.class | Bin 0 -> 3398 bytes .../lib/gnu/javax/imageio/bmp/BMPInfoHeader.class | Bin 0 -> 5107 bytes .../lib/gnu/javax/imageio/bmp/DecodeBF16.class | Bin 0 -> 2661 bytes .../lib/gnu/javax/imageio/bmp/DecodeBF32.class | Bin 0 -> 2692 bytes .../lib/gnu/javax/imageio/bmp/DecodeRGB1.class | Bin 0 -> 2391 bytes .../lib/gnu/javax/imageio/bmp/DecodeRGB24.class | Bin 0 -> 1766 bytes .../lib/gnu/javax/imageio/bmp/DecodeRGB4.class | Bin 0 -> 2367 bytes .../lib/gnu/javax/imageio/bmp/DecodeRGB8.class | Bin 0 -> 2347 bytes .../lib/gnu/javax/imageio/bmp/DecodeRLE4.class | Bin 0 -> 3651 bytes .../lib/gnu/javax/imageio/bmp/DecodeRLE8.class | Bin 0 -> 3241 bytes .../lib/gnu/javax/imageio/bmp/EncodeRGB1.class | Bin 0 -> 2105 bytes .../lib/gnu/javax/imageio/bmp/EncodeRGB16.class | Bin 0 -> 2126 bytes .../lib/gnu/javax/imageio/bmp/EncodeRGB24.class | Bin 0 -> 2144 bytes .../lib/gnu/javax/imageio/bmp/EncodeRGB32.class | Bin 0 -> 2162 bytes .../lib/gnu/javax/imageio/bmp/EncodeRGB4.class | Bin 0 -> 2105 bytes .../lib/gnu/javax/imageio/bmp/EncodeRGB8.class | Bin 0 -> 2105 bytes .../lib/gnu/javax/imageio/bmp/EncodeRLE4.class | Bin 0 -> 4023 bytes .../lib/gnu/javax/imageio/bmp/EncodeRLE8.class | Bin 0 -> 3631 bytes .../javax/imageio/gif/GIFFile$GIFException.class | Bin 0 -> 464 bytes .../lib/gnu/javax/imageio/gif/GIFFile.class | Bin 0 -> 8669 bytes .../lib/gnu/javax/imageio/gif/GIFImageReader.class | Bin 0 -> 5068 bytes .../gnu/javax/imageio/gif/GIFImageReaderSpi.class | Bin 0 -> 3106 bytes .../classpath/lib/gnu/javax/imageio/jpeg/DCT.class | Bin 0 -> 4527 bytes .../lib/gnu/javax/imageio/jpeg/HuffmanTable.class | Bin 0 -> 3234 bytes .../lib/gnu/javax/imageio/jpeg/JPEGComponent.class | Bin 0 -> 5425 bytes .../lib/gnu/javax/imageio/jpeg/JPEGDecoder.class | Bin 0 -> 9405 bytes .../lib/gnu/javax/imageio/jpeg/JPEGException.class | Bin 0 -> 384 bytes .../lib/gnu/javax/imageio/jpeg/JPEGFrame.class | Bin 0 -> 2241 bytes .../javax/imageio/jpeg/JPEGImageInputStream.class | Bin 0 -> 1776 bytes .../gnu/javax/imageio/jpeg/JPEGImageReader.class | Bin 0 -> 2704 bytes .../javax/imageio/jpeg/JPEGImageReaderSpi.class | Bin 0 -> 3652 bytes .../lib/gnu/javax/imageio/jpeg/JPEGMarker.class | Bin 0 -> 1860 bytes .../imageio/jpeg/JPEGMarkerFoundException.class | Bin 0 -> 382 bytes .../lib/gnu/javax/imageio/jpeg/JPEGScan.class | Bin 0 -> 2721 bytes .../gnu/javax/imageio/jpeg/YCbCr_ColorSpace.class | Bin 0 -> 1269 bytes .../lib/gnu/javax/imageio/jpeg/ZigZag.class | Bin 0 -> 5447 bytes .../lib/gnu/javax/imageio/png/PNGChunk.class | Bin 0 -> 4262 bytes .../lib/gnu/javax/imageio/png/PNGData.class | Bin 0 -> 1572 bytes .../lib/gnu/javax/imageio/png/PNGDecoder.class | Bin 0 -> 5300 bytes .../lib/gnu/javax/imageio/png/PNGEncoder.class | Bin 0 -> 5501 bytes .../lib/gnu/javax/imageio/png/PNGException.class | Bin 0 -> 368 bytes .../lib/gnu/javax/imageio/png/PNGFile.class | Bin 0 -> 5022 bytes .../lib/gnu/javax/imageio/png/PNGFilter.class | Bin 0 -> 3211 bytes .../lib/gnu/javax/imageio/png/PNGGamma.class | Bin 0 -> 1461 bytes .../lib/gnu/javax/imageio/png/PNGHeader.class | Bin 0 -> 3615 bytes .../lib/gnu/javax/imageio/png/PNGICCProfile.class | Bin 0 -> 2711 bytes .../lib/gnu/javax/imageio/png/PNGImageReader.class | Bin 0 -> 3530 bytes .../gnu/javax/imageio/png/PNGImageReaderSpi.class | Bin 0 -> 2450 bytes .../lib/gnu/javax/imageio/png/PNGPalette.class | Bin 0 -> 2641 bytes .../lib/gnu/javax/imageio/png/PNGPhys.class | Bin 0 -> 2042 bytes .../lib/gnu/javax/imageio/png/PNGTime.class | Bin 0 -> 1650 bytes .../gnu/javax/management/Server$ServerInfo.class | Bin 0 -> 898 bytes .../management/Server$ServerInputStream.class | Bin 0 -> 1219 bytes .../Server$ServerNotificationListener.class | Bin 0 -> 1282 bytes .../lib/gnu/javax/management/Server.class | Bin 0 -> 23261 bytes .../javax/naming/giop/ContextContinuation.class | Bin 0 -> 11356 bytes .../lib/gnu/javax/naming/giop/CorbalocParser.class | Bin 0 -> 7202 bytes .../javax/naming/giop/GiopNamingEnumeration.class | Bin 0 -> 2055 bytes .../naming/giop/GiopNamingServiceFactory$1.class | Bin 0 -> 908 bytes .../naming/giop/GiopNamingServiceFactory.class | Bin 0 -> 3622 bytes .../naming/giop/GiopNamingServiceURLContext.class | Bin 0 -> 11362 bytes .../naming/giop/ListBindingsEnumeration.class | Bin 0 -> 1743 bytes .../gnu/javax/naming/giop/ListEnumeration.class | Bin 0 -> 1733 bytes .../ictxImpl/trans/GnuName$GnuNameEnum.class | Bin 0 -> 1068 bytes .../gnu/javax/naming/ictxImpl/trans/GnuName.class | Bin 0 -> 4953 bytes .../url/corbaname/corbanameURLContextFactory.class | Bin 0 -> 443 bytes .../naming/jndi/url/rmi/ContextContinuation.class | Bin 0 -> 8448 bytes .../jndi/url/rmi/ListBindingsEnumeration.class | Bin 0 -> 1061 bytes .../naming/jndi/url/rmi/ListEnumeration.class | Bin 0 -> 854 bytes .../naming/jndi/url/rmi/RmiContinuation.class | Bin 0 -> 8301 bytes .../naming/jndi/url/rmi/RmiNamingEnumeration.class | Bin 0 -> 1159 bytes .../javax/naming/jndi/url/rmi/rmiURLContext.class | Bin 0 -> 9374 bytes .../naming/jndi/url/rmi/rmiURLContextFactory.class | Bin 0 -> 824 bytes .../gnu/javax/net/ssl/AbstractSessionContext.class | Bin 0 -> 3707 bytes .../classpath/lib/gnu/javax/net/ssl/Base64.class | Bin 0 -> 3230 bytes .../lib/gnu/javax/net/ssl/EntropySource.class | Bin 0 -> 176 bytes .../gnu/javax/net/ssl/NullManagerParameters.class | Bin 0 -> 370 bytes .../gnu/javax/net/ssl/PreSharedKeyManager.class | Bin 0 -> 350 bytes .../net/ssl/PreSharedKeyManagerParameters.class | Bin 0 -> 1549 bytes .../lib/gnu/javax/net/ssl/PrivateCredentials.class | Bin 0 -> 9537 bytes .../gnu/javax/net/ssl/SRPManagerParameters.class | Bin 0 -> 689 bytes .../lib/gnu/javax/net/ssl/SRPTrustManager.class | Bin 0 -> 454 bytes .../lib/gnu/javax/net/ssl/SSLCipherSuite.class | Bin 0 -> 3137 bytes .../lib/gnu/javax/net/ssl/SSLProtocolVersion.class | Bin 0 -> 1205 bytes .../lib/gnu/javax/net/ssl/SSLRecordHandler.class | Bin 0 -> 803 bytes .../lib/gnu/javax/net/ssl/Session$ID.class | Bin 0 -> 1871 bytes .../classpath/lib/gnu/javax/net/ssl/Session.class | Bin 0 -> 5167 bytes .../gnu/javax/net/ssl/SessionStoreException.class | Bin 0 -> 685 bytes .../lib/gnu/javax/net/ssl/StaticTrustAnchors.class | Bin 0 -> 92341 bytes .../net/ssl/provider/AbstractHandshake$1.class | Bin 0 -> 1157 bytes .../provider/AbstractHandshake$CertVerifier.class | Bin 0 -> 3995 bytes .../provider/AbstractHandshake$DHE_PSKGen.class | Bin 0 -> 2687 bytes .../ssl/provider/AbstractHandshake$DHPhase.class | Bin 0 -> 2303 bytes .../javax/net/ssl/provider/AbstractHandshake.class | Bin 0 -> 19585 bytes .../javax/net/ssl/provider/Alert$Description.class | Bin 0 -> 4176 bytes .../gnu/javax/net/ssl/provider/Alert$Level.class | Bin 0 -> 1724 bytes .../lib/gnu/javax/net/ssl/provider/Alert.class | Bin 0 -> 3279 bytes .../javax/net/ssl/provider/AlertException.class | Bin 0 -> 1895 bytes .../lib/gnu/javax/net/ssl/provider/Builder.class | Bin 0 -> 211 bytes .../gnu/javax/net/ssl/provider/Certificate.class | Bin 0 -> 3965 bytes .../net/ssl/provider/CertificateBuilder.class | Bin 0 -> 2243 bytes .../CertificateRequest$ClientCertificateType.class | Bin 0 -> 2127 bytes .../net/ssl/provider/CertificateRequest.class | Bin 0 -> 2520 bytes .../ssl/provider/CertificateRequestBuilder.class | Bin 0 -> 2972 bytes ...tificateStatusRequest$ResponderIdIterator.class | Bin 0 -> 1355 bytes .../ssl/provider/CertificateStatusRequest.class | Bin 0 -> 5846 bytes .../net/ssl/provider/CertificateStatusType.class | Bin 0 -> 1177 bytes .../javax/net/ssl/provider/CertificateType.class | Bin 0 -> 1610 bytes .../provider/CertificateURL$CertChainType.class | Bin 0 -> 1447 bytes .../net/ssl/provider/CertificateURL$Iterator.class | Bin 0 -> 1434 bytes .../CertificateURL$URLAndOptionalHash.class | Bin 0 -> 4330 bytes .../javax/net/ssl/provider/CertificateURL.class | Bin 0 -> 5717 bytes .../javax/net/ssl/provider/CertificateVerify.class | Bin 0 -> 1646 bytes .../javax/net/ssl/provider/CipherAlgorithm.class | Bin 0 -> 1286 bytes .../gnu/javax/net/ssl/provider/CipherSuite.class | Bin 0 -> 13470 bytes .../ssl/provider/CipherSuiteList$Iterator.class | Bin 0 -> 2597 bytes .../javax/net/ssl/provider/CipherSuiteList.class | Bin 0 -> 4200 bytes .../ClientCertificateTypeList$Iterator.class | Bin 0 -> 2872 bytes .../ssl/provider/ClientCertificateTypeList.class | Bin 0 -> 3931 bytes .../net/ssl/provider/ClientDHE_PSKParameters.class | Bin 0 -> 2502 bytes .../ssl/provider/ClientDiffieHellmanPublic.class | Bin 0 -> 2671 bytes .../ssl/provider/ClientHandshake$CertLoader.class | Bin 0 -> 2588 bytes .../ssl/provider/ClientHandshake$ClientDHGen.class | Bin 0 -> 3697 bytes .../provider/ClientHandshake$GenCertVerify.class | Bin 0 -> 2856 bytes .../provider/ClientHandshake$ParamsVerifier.class | Bin 0 -> 2151 bytes .../net/ssl/provider/ClientHandshake$RSAGen.class | Bin 0 -> 3440 bytes .../net/ssl/provider/ClientHandshake$State.class | Bin 0 -> 2213 bytes .../javax/net/ssl/provider/ClientHandshake.class | Bin 0 -> 30697 bytes .../gnu/javax/net/ssl/provider/ClientHello.class | Bin 0 -> 5069 bytes .../net/ssl/provider/ClientHelloBuilder.class | Bin 0 -> 3939 bytes .../gnu/javax/net/ssl/provider/ClientHelloV2.class | Bin 0 -> 3414 bytes .../javax/net/ssl/provider/ClientKeyExchange.class | Bin 0 -> 3437 bytes .../ssl/provider/ClientKeyExchangeBuilder.class | Bin 0 -> 1785 bytes .../net/ssl/provider/ClientPSKParameters.class | Bin 0 -> 2480 bytes .../net/ssl/provider/ClientRSA_PSKParameters.class | Bin 0 -> 3336 bytes .../javax/net/ssl/provider/CompressionMethod.class | Bin 0 -> 1447 bytes .../provider/CompressionMethodList$Iterator.class | Bin 0 -> 2681 bytes .../net/ssl/provider/CompressionMethodList.class | Bin 0 -> 3860 bytes .../gnu/javax/net/ssl/provider/Constructed.class | Bin 0 -> 213 bytes .../gnu/javax/net/ssl/provider/ContentType.class | Bin 0 -> 1657 bytes .../lib/gnu/javax/net/ssl/provider/Debug.class | Bin 0 -> 420 bytes .../gnu/javax/net/ssl/provider/DelegatedTask.class | Bin 0 -> 1606 bytes .../gnu/javax/net/ssl/provider/DiffieHellman.class | Bin 0 -> 8733 bytes .../javax/net/ssl/provider/EmptyExchangeKeys.class | Bin 0 -> 1069 bytes .../ssl/provider/EncryptedPreMasterSecret.class | Bin 0 -> 3204 bytes .../gnu/javax/net/ssl/provider/ExchangeKeys.class | Bin 0 -> 686 bytes .../javax/net/ssl/provider/Extension$Type.class | Bin 0 -> 1970 bytes .../javax/net/ssl/provider/Extension$Value.class | Bin 0 -> 487 bytes .../lib/gnu/javax/net/ssl/provider/Extension.class | Bin 0 -> 5727 bytes .../ExtensionList$ExtensionsIterator.class | Bin 0 -> 2697 bytes .../gnu/javax/net/ssl/provider/ExtensionList.class | Bin 0 -> 5666 bytes .../lib/gnu/javax/net/ssl/provider/Finished.class | Bin 0 -> 3117 bytes .../javax/net/ssl/provider/Handshake$Body.class | Bin 0 -> 340 bytes .../javax/net/ssl/provider/Handshake$Type.class | Bin 0 -> 2593 bytes .../lib/gnu/javax/net/ssl/provider/Handshake.class | Bin 0 -> 5821 bytes .../gnu/javax/net/ssl/provider/HelloRequest.class | Bin 0 -> 905 bytes .../net/ssl/provider/InputSecurityParameters.class | Bin 0 -> 6952 bytes .../lib/gnu/javax/net/ssl/provider/Jessie$1.class | Bin 0 -> 1944 bytes .../lib/gnu/javax/net/ssl/provider/Jessie.class | Bin 0 -> 943 bytes .../net/ssl/provider/KeyExchangeAlgorithm.class | Bin 0 -> 1570 bytes .../gnu/javax/net/ssl/provider/MacAlgorithm.class | Bin 0 -> 1121 bytes .../gnu/javax/net/ssl/provider/MacException.class | Bin 0 -> 322 bytes .../javax/net/ssl/provider/MaxFragmentLength.class | Bin 0 -> 1780 bytes .../ssl/provider/OutputSecurityParameters.class | Bin 0 -> 6668 bytes .../PreSharedKeyManagerFactoryImpl$Manager.class | Bin 0 -> 1486 bytes .../provider/PreSharedKeyManagerFactoryImpl.class | Bin 0 -> 1630 bytes .../javax/net/ssl/provider/ProtocolVersion.class | Bin 0 -> 3435 bytes .../lib/gnu/javax/net/ssl/provider/Random.class | Bin 0 -> 2988 bytes .../lib/gnu/javax/net/ssl/provider/Record.class | Bin 0 -> 3611 bytes .../provider/SRPTrustManagerFactory$Manager.class | Bin 0 -> 2766 bytes .../net/ssl/provider/SRPTrustManagerFactory.class | Bin 0 -> 2583 bytes .../javax/net/ssl/provider/SSLContextImpl.class | Bin 0 -> 5552 bytes .../net/ssl/provider/SSLEngineImpl$Mode.class | Bin 0 -> 1197 bytes .../gnu/javax/net/ssl/provider/SSLEngineImpl.class | Bin 0 -> 21687 bytes .../lib/gnu/javax/net/ssl/provider/SSLHMac.class | Bin 0 -> 2627 bytes .../net/ssl/provider/SSLRSASignatureImpl.class | Bin 0 -> 5048 bytes .../lib/gnu/javax/net/ssl/provider/SSLRandom.class | Bin 0 -> 3093 bytes .../ssl/provider/SSLServerSocketFactoryImpl.class | Bin 0 -> 2363 bytes .../net/ssl/provider/SSLServerSocketImpl.class | Bin 0 -> 3468 bytes .../net/ssl/provider/SSLSocketFactoryImpl.class | Bin 0 -> 3412 bytes .../javax/net/ssl/provider/SSLSocketImpl$1.class | Bin 0 -> 885 bytes .../provider/SSLSocketImpl$SocketInputStream.class | Bin 0 -> 3668 bytes .../SSLSocketImpl$SocketOutputStream.class | Bin 0 -> 3392 bytes .../gnu/javax/net/ssl/provider/SSLSocketImpl.class | Bin 0 -> 16460 bytes .../javax/net/ssl/provider/SSLv3HMacMD5Impl.class | Bin 0 -> 2107 bytes .../javax/net/ssl/provider/SSLv3HMacSHAImpl.class | Bin 0 -> 2111 bytes .../net/ssl/provider/ServerDHE_PSKParameters.class | Bin 0 -> 3858 bytes .../javax/net/ssl/provider/ServerDHParams.class | Bin 0 -> 4428 bytes .../ssl/provider/ServerHandshake$CertLoader.class | Bin 0 -> 3121 bytes .../net/ssl/provider/ServerHandshake$GenDH.class | Bin 0 -> 3828 bytes .../provider/ServerHandshake$RSAKeyExchange.class | Bin 0 -> 2453 bytes .../provider/ServerHandshake$RSA_PSKExchange.class | Bin 0 -> 2897 bytes .../net/ssl/provider/ServerHandshake$State.class | Bin 0 -> 2284 bytes .../javax/net/ssl/provider/ServerHandshake.class | Bin 0 -> 34821 bytes .../gnu/javax/net/ssl/provider/ServerHello.class | Bin 0 -> 4424 bytes .../net/ssl/provider/ServerHelloBuilder.class | Bin 0 -> 3225 bytes .../javax/net/ssl/provider/ServerHelloDone.class | Bin 0 -> 988 bytes .../javax/net/ssl/provider/ServerKeyExchange.class | Bin 0 -> 4255 bytes .../ssl/provider/ServerKeyExchangeBuilder.class | Bin 0 -> 2131 bytes .../net/ssl/provider/ServerKeyExchangeParams.class | Bin 0 -> 274 bytes .../net/ssl/provider/ServerNameList$Iterator.class | Bin 0 -> 1410 bytes .../net/ssl/provider/ServerNameList$NameType.class | Bin 0 -> 1354 bytes .../ssl/provider/ServerNameList$ServerName.class | Bin 0 -> 3814 bytes .../javax/net/ssl/provider/ServerNameList.class | Bin 0 -> 4498 bytes .../net/ssl/provider/ServerPSKParameters.class | Bin 0 -> 2864 bytes .../javax/net/ssl/provider/ServerRSAParams.class | Bin 0 -> 2848 bytes .../net/ssl/provider/ServerRSA_PSKParameters.class | Bin 0 -> 844 bytes .../net/ssl/provider/SessionImpl$PrivateData.class | Bin 0 -> 545 bytes .../gnu/javax/net/ssl/provider/SessionImpl.class | Bin 0 -> 4385 bytes .../lib/gnu/javax/net/ssl/provider/Signature.class | Bin 0 -> 3037 bytes .../net/ssl/provider/SignatureAlgorithm.class | Bin 0 -> 1648 bytes .../net/ssl/provider/SimpleSessionContext$1.class | Bin 0 -> 1347 bytes .../net/ssl/provider/SimpleSessionContext.class | Bin 0 -> 2957 bytes .../lib/gnu/javax/net/ssl/provider/TLSHMac.class | Bin 0 -> 2111 bytes .../lib/gnu/javax/net/ssl/provider/TLSRandom.class | Bin 0 -> 4306 bytes .../gnu/javax/net/ssl/provider/TruncatedHMAC.class | Bin 0 -> 1125 bytes .../TrustedAuthorities$AuthoritiesIterator.class | Bin 0 -> 1497 bytes .../TrustedAuthorities$IdentifierType.class | Bin 0 -> 1597 bytes .../TrustedAuthorities$TrustedAuthority.class | Bin 0 -> 3221 bytes .../net/ssl/provider/TrustedAuthorities.class | Bin 0 -> 3425 bytes .../ssl/provider/UnresolvedExtensionValue.class | Bin 0 -> 1413 bytes .../lib/gnu/javax/net/ssl/provider/Util$1.class | Bin 0 -> 692 bytes .../lib/gnu/javax/net/ssl/provider/Util$2.class | Bin 0 -> 725 bytes .../net/ssl/provider/Util$WrappedBuffer.class | Bin 0 -> 773 bytes .../lib/gnu/javax/net/ssl/provider/Util.class | Bin 0 -> 7423 bytes .../ssl/provider/X500PrincipalList$Iterator.class | Bin 0 -> 2566 bytes .../javax/net/ssl/provider/X500PrincipalList.class | Bin 0 -> 4562 bytes .../provider/X509KeyManagerFactory$Manager.class | Bin 0 -> 5311 bytes .../net/ssl/provider/X509KeyManagerFactory.class | Bin 0 -> 5245 bytes .../provider/X509TrustManagerFactory$Manager.class | Bin 0 -> 3262 bytes .../net/ssl/provider/X509TrustManagerFactory.class | Bin 0 -> 4623 bytes .../lib/gnu/javax/print/CupsIppOperation.class | Bin 0 -> 860 bytes .../lib/gnu/javax/print/CupsMediaMapping.class | Bin 0 -> 4194 bytes .../lib/gnu/javax/print/CupsPrintService.class | Bin 0 -> 1287 bytes .../gnu/javax/print/CupsPrintServiceLookup.class | Bin 0 -> 3703 bytes .../classpath/lib/gnu/javax/print/CupsServer.class | Bin 0 -> 4232 bytes .../gnu/javax/print/PrintAttributeException.class | Bin 0 -> 1653 bytes .../lib/gnu/javax/print/PrintFlavorException.class | Bin 0 -> 1248 bytes .../lib/gnu/javax/print/PrintUriException.class | Bin 0 -> 1355 bytes .../PrinterDialog$AppearancePanel$Color.class | Bin 0 -> 3306 bytes ...interDialog$AppearancePanel$JobAttributes.class | Bin 0 -> 5932 bytes .../PrinterDialog$AppearancePanel$Quality.class | Bin 0 -> 3566 bytes .../PrinterDialog$AppearancePanel$SidesPanel.class | Bin 0 -> 3599 bytes .../print/PrinterDialog$AppearancePanel.class | Bin 0 -> 2445 bytes ...rinterDialog$GeneralPanel$CopiesAndSorted.class | Bin 0 -> 4024 bytes .../PrinterDialog$GeneralPanel$PrintRange.class | Bin 0 -> 4723 bytes .../PrinterDialog$GeneralPanel$PrintServices.class | Bin 0 -> 5188 bytes .../javax/print/PrinterDialog$GeneralPanel.class | Bin 0 -> 2133 bytes .../PrinterDialog$PageSetupPanel$Margins.class | Bin 0 -> 3187 bytes .../PrinterDialog$PageSetupPanel$MediaTypes.class | Bin 0 -> 3821 bytes .../PrinterDialog$PageSetupPanel$Orientation.class | Bin 0 -> 3923 bytes .../javax/print/PrinterDialog$PageSetupPanel.class | Bin 0 -> 2129 bytes .../lib/gnu/javax/print/PrinterDialog.class | Bin 0 -> 7369 bytes .../lib/gnu/javax/print/ipp/DocPrintJobImpl.class | Bin 0 -> 10253 bytes .../lib/gnu/javax/print/ipp/IppDelimiterTag.class | Bin 0 -> 675 bytes .../lib/gnu/javax/print/ipp/IppException.class | Bin 0 -> 733 bytes .../javax/print/ipp/IppMultiDocPrintService.class | Bin 0 -> 945 bytes .../lib/gnu/javax/print/ipp/IppPrintService.class | Bin 0 -> 20077 bytes .../javax/print/ipp/IppRequest$RequestWriter.class | Bin 0 -> 9273 bytes .../lib/gnu/javax/print/ipp/IppRequest.class | Bin 0 -> 8604 bytes .../print/ipp/IppResponse$ResponseReader.class | Bin 0 -> 13159 bytes .../lib/gnu/javax/print/ipp/IppResponse.class | Bin 0 -> 2476 bytes .../lib/gnu/javax/print/ipp/IppStatusCode.class | Bin 0 -> 2084 bytes .../lib/gnu/javax/print/ipp/IppUtilities.class | Bin 0 -> 15597 bytes .../lib/gnu/javax/print/ipp/IppValueTag.class | Bin 0 -> 1278 bytes .../gnu/javax/print/ipp/MultiDocPrintJobImpl.class | Bin 0 -> 987 bytes .../javax/print/ipp/attribute/CharsetSyntax.class | Bin 0 -> 1048 bytes .../ipp/attribute/DefaultValueAttribute.class | Bin 0 -> 263 bytes .../ipp/attribute/DetailedStatusMessage.class | Bin 0 -> 740 bytes .../print/ipp/attribute/DocumentAccessError.class | Bin 0 -> 732 bytes .../ipp/attribute/NaturalLanguageSyntax.class | Bin 0 -> 1072 bytes .../print/ipp/attribute/RequestedAttributes.class | Bin 0 -> 1632 bytes .../javax/print/ipp/attribute/StatusMessage.class | Bin 0 -> 707 bytes .../print/ipp/attribute/UnknownAttribute.class | Bin 0 -> 2180 bytes .../ipp/attribute/defaults/CopiesDefault.class | Bin 0 -> 1151 bytes .../attribute/defaults/DocumentFormatDefault.class | Bin 0 -> 1042 bytes .../ipp/attribute/defaults/FinishingsDefault.class | Bin 0 -> 3187 bytes .../attribute/defaults/JobHoldUntilDefault.class | Bin 0 -> 1603 bytes .../attribute/defaults/JobPriorityDefault.class | Bin 0 -> 1173 bytes .../ipp/attribute/defaults/JobSheetsDefault.class | Bin 0 -> 1338 bytes .../ipp/attribute/defaults/MediaDefault.class | Bin 0 -> 1043 bytes .../defaults/MultipleDocumentHandlingDefault.class | Bin 0 -> 2077 bytes .../ipp/attribute/defaults/NumberUpDefault.class | Bin 0 -> 1031 bytes .../defaults/OrientationRequestedDefault.class | Bin 0 -> 1998 bytes .../attribute/defaults/PrintQualityDefault.class | Bin 0 -> 1778 bytes .../defaults/PrinterResolutionDefault.class | Bin 0 -> 1207 bytes .../ipp/attribute/defaults/SidesDefault.class | Bin 0 -> 1850 bytes .../ipp/attribute/job/AttributesCharset.class | Bin 0 -> 804 bytes .../attribute/job/AttributesNaturalLanguage.class | Bin 0 -> 844 bytes .../attribute/job/JobDetailedStatusMessages.class | Bin 0 -> 765 bytes .../attribute/job/JobDocumentAccessErrors.class | Bin 0 -> 757 bytes .../gnu/javax/print/ipp/attribute/job/JobId.class | Bin 0 -> 725 bytes .../print/ipp/attribute/job/JobMoreInfo.class | Bin 0 -> 638 bytes .../print/ipp/attribute/job/JobPrinterUri.class | Bin 0 -> 646 bytes .../print/ipp/attribute/job/JobStateMessage.class | Bin 0 -> 724 bytes .../gnu/javax/print/ipp/attribute/job/JobUri.class | Bin 0 -> 617 bytes .../ipp/attribute/printer/CharsetConfigured.class | Bin 0 -> 691 bytes .../ipp/attribute/printer/DocumentFormat.class | Bin 0 -> 1481 bytes .../printer/MultipleOperationTimeOut.class | Bin 0 -> 679 bytes .../printer/NaturalLanguageConfigured.class | Bin 0 -> 732 bytes .../ipp/attribute/printer/PrinterCurrentTime.class | Bin 0 -> 856 bytes .../attribute/printer/PrinterDriverInstaller.class | Bin 0 -> 690 bytes .../attribute/printer/PrinterStateMessage.class | Bin 0 -> 760 bytes .../ipp/attribute/printer/PrinterUpTime.class | Bin 0 -> 634 bytes .../ipp/attribute/supported/CharsetSupported.class | Bin 0 -> 706 bytes .../attribute/supported/CompressionSupported.class | Bin 0 -> 2442 bytes .../supported/DocumentFormatSupported.class | Bin 0 -> 783 bytes .../attribute/supported/FinishingsSupported.class | Bin 0 -> 3892 bytes .../GeneratedNaturalLanguageSupported.class | Bin 0 -> 784 bytes .../attribute/supported/IppVersionsSupported.class | Bin 0 -> 1309 bytes .../supported/JobHoldUntilSupported.class | Bin 0 -> 1363 bytes .../attribute/supported/JobSheetsSupported.class | Bin 0 -> 2290 bytes .../ipp/attribute/supported/MediaSupported.class | Bin 0 -> 1762 bytes .../MultipleDocumentHandlingSupported.class | Bin 0 -> 2774 bytes .../supported/MultipleDocumentJobsSupported.class | Bin 0 -> 1375 bytes .../attribute/supported/OperationsSupported.class | Bin 0 -> 2682 bytes .../supported/OrientationRequestedSupported.class | Bin 0 -> 2679 bytes .../attribute/supported/PageRangesSupported.class | Bin 0 -> 1332 bytes .../supported/PrintQualitySupported.class | Bin 0 -> 2459 bytes .../supported/PrinterResolutionSupported.class | Bin 0 -> 1820 bytes .../attribute/supported/PrinterUriSupported.class | Bin 0 -> 697 bytes .../ipp/attribute/supported/SidesSupported.class | Bin 0 -> 1511 bytes .../supported/UriAuthenticationSupported.class | Bin 0 -> 1598 bytes .../attribute/supported/UriSecuritySupported.class | Bin 0 -> 1372 bytes .../lib/gnu/javax/rmi/CORBA/CorbaInput.class | Bin 0 -> 4281 bytes .../lib/gnu/javax/rmi/CORBA/CorbaOutput.class | Bin 0 -> 3416 bytes .../javax/rmi/CORBA/DefaultWriteObjectTester.class | Bin 0 -> 890 bytes .../lib/gnu/javax/rmi/CORBA/DelegateFactory.class | Bin 0 -> 1678 bytes .../rmi/CORBA/GetDelegateInstanceException.class | Bin 0 -> 593 bytes .../CORBA/PortableRemoteObjectDelegateImpl.class | Bin 0 -> 7327 bytes .../lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class | Bin 0 -> 863 bytes .../lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class | Bin 0 -> 822 bytes .../lib/gnu/javax/rmi/CORBA/RmiUtilities.class | Bin 0 -> 18745 bytes .../lib/gnu/javax/rmi/CORBA/StubDelegateImpl.class | Bin 0 -> 6511 bytes .../lib/gnu/javax/rmi/CORBA/TieTargetRecord.class | Bin 0 -> 890 bytes .../lib/gnu/javax/rmi/CORBA/UtilDelegateImpl.class | Bin 0 -> 12840 bytes .../javax/rmi/CORBA/ValueHandlerDelegateImpl.class | Bin 0 -> 3264 bytes .../lib/gnu/javax/security/auth/Password.class | Bin 0 -> 2543 bytes .../auth/callback/AWTCallbackHandler.class | Bin 0 -> 10086 bytes .../auth/callback/AbstractCallbackHandler.class | Bin 0 -> 4916 bytes .../auth/callback/CertificateCallback.class | Bin 0 -> 663 bytes .../auth/callback/ConsoleCallbackHandler.class | Bin 0 -> 6784 bytes .../auth/callback/DefaultCallbackHandler.class | Bin 0 -> 2626 bytes .../security/auth/callback/GnuCallbacks$1.class | Bin 0 -> 1268 bytes .../security/auth/callback/GnuCallbacks.class | Bin 0 -> 745 bytes .../auth/callback/SwingCallbackHandler$1.class | Bin 0 -> 1388 bytes .../auth/callback/SwingCallbackHandler$2.class | Bin 0 -> 1802 bytes .../auth/callback/SwingCallbackHandler$3.class | Bin 0 -> 1869 bytes .../auth/callback/SwingCallbackHandler$4.class | Bin 0 -> 1692 bytes .../auth/callback/SwingCallbackHandler$5.class | Bin 0 -> 1727 bytes .../auth/callback/SwingCallbackHandler$6.class | Bin 0 -> 1714 bytes .../auth/callback/SwingCallbackHandler$7.class | Bin 0 -> 1255 bytes .../auth/callback/SwingCallbackHandler.class | Bin 0 -> 12162 bytes .../security/auth/login/ConfigFileParser.class | Bin 0 -> 5453 bytes .../security/auth/login/ConfigFileTokenizer.class | Bin 0 -> 3414 bytes .../security/auth/login/GnuConfiguration.class | Bin 0 -> 5617 bytes .../sound/midi/alsa/AlsaInputPortDevice.class | Bin 0 -> 1398 bytes .../alsa/AlsaMidiDeviceProvider$AlsaInfo.class | Bin 0 -> 732 bytes .../AlsaMidiDeviceProvider$AlsaInputPortInfo.class | Bin 0 -> 919 bytes ...AlsaMidiDeviceProvider$AlsaOutputPortInfo.class | Bin 0 -> 923 bytes .../alsa/AlsaMidiDeviceProvider$AlsaPortInfo.class | Bin 0 -> 753 bytes .../AlsaMidiDeviceProvider$AlsaSequencerInfo.class | Bin 0 -> 870 bytes .../sound/midi/alsa/AlsaMidiDeviceProvider.class | Bin 0 -> 2276 bytes .../sound/midi/alsa/AlsaMidiSequencerDevice.class | Bin 0 -> 5607 bytes .../sound/midi/alsa/AlsaOutputPortDevice.class | Bin 0 -> 1274 bytes .../midi/alsa/AlsaPortDevice$AlsaReceiver.class | Bin 0 -> 900 bytes .../midi/alsa/AlsaPortDevice$AlsaTransmitter.class | Bin 0 -> 1602 bytes .../gnu/javax/sound/midi/alsa/AlsaPortDevice.class | Bin 0 -> 912 bytes .../sound/midi/dssi/DSSIMidiDeviceProvider$1.class | Bin 0 -> 748 bytes .../dssi/DSSIMidiDeviceProvider$DSSIInfo.class | Bin 0 -> 849 bytes .../sound/midi/dssi/DSSIMidiDeviceProvider.class | Bin 0 -> 3095 bytes .../midi/dssi/DSSISynthesizer$DSSIInstrument.class | Bin 0 -> 978 bytes .../dssi/DSSISynthesizer$DSSIMidiChannel.class | Bin 0 -> 3148 bytes .../midi/dssi/DSSISynthesizer$DSSIReceiver.class | Bin 0 -> 1835 bytes .../midi/dssi/DSSISynthesizer$DSSISoundbank.class | Bin 0 -> 2595 bytes .../javax/sound/midi/dssi/DSSISynthesizer.class | Bin 0 -> 6305 bytes .../sound/midi/file/ExtendedMidiFileFormat.class | Bin 0 -> 639 bytes .../sound/midi/file/MidiDataInputStream.class | Bin 0 -> 666 bytes .../sound/midi/file/MidiDataOutputStream.class | Bin 0 -> 930 bytes .../gnu/javax/sound/midi/file/MidiFileReader.class | Bin 0 -> 5807 bytes .../gnu/javax/sound/midi/file/MidiFileWriter.class | Bin 0 -> 3371 bytes .../sound/sampled/AU/AUReader$AUFormatType.class | Bin 0 -> 507 bytes .../javax/sound/sampled/AU/AUReader$AUHeader.class | Bin 0 -> 2587 bytes .../lib/gnu/javax/sound/sampled/AU/AUReader.class | Bin 0 -> 2634 bytes .../gnu/javax/sound/sampled/WAV/WAVReader.class | Bin 0 -> 4349 bytes .../plaf/gnu/GNULookAndFeel$CheckBoxIcon.class | Bin 0 -> 1366 bytes .../plaf/gnu/GNULookAndFeel$RadioButtonIcon.class | Bin 0 -> 2334 bytes .../gnu/javax/swing/plaf/gnu/GNULookAndFeel.class | Bin 0 -> 3156 bytes .../javax/swing/plaf/metal/CustomizableTheme.class | Bin 0 -> 2107 bytes .../text/html/CharacterAttributeTranslator.class | Bin 0 -> 3502 bytes .../CombinedAttributes$CombinedEnumeration.class | Bin 0 -> 1066 bytes .../javax/swing/text/html/CombinedAttributes.class | Bin 0 -> 2759 bytes .../ImageViewIconFactory$LoadingImageIcon.class | Bin 0 -> 2165 bytes .../html/ImageViewIconFactory$NoImageIcon.class | Bin 0 -> 2074 bytes .../swing/text/html/ImageViewIconFactory.class | Bin 0 -> 852 bytes .../javax/swing/text/html/css/BorderStyle.class | Bin 0 -> 736 bytes .../javax/swing/text/html/css/BorderWidth.class | Bin 0 -> 755 bytes .../gnu/javax/swing/text/html/css/CSSColor.class | Bin 0 -> 2754 bytes .../swing/text/html/css/CSSLexicalException.class | Bin 0 -> 490 bytes .../javax/swing/text/html/css/CSSParser$1.class | Bin 0 -> 1508 bytes .../gnu/javax/swing/text/html/css/CSSParser.class | Bin 0 -> 5677 bytes .../swing/text/html/css/CSSParserCallback.class | Bin 0 -> 310 bytes .../swing/text/html/css/CSSParserException.class | Bin 0 -> 406 bytes .../gnu/javax/swing/text/html/css/CSSScanner.class | Bin 0 -> 8017 bytes .../gnu/javax/swing/text/html/css/FontSize.class | Bin 0 -> 3980 bytes .../gnu/javax/swing/text/html/css/FontStyle.class | Bin 0 -> 653 bytes .../gnu/javax/swing/text/html/css/FontWeight.class | Bin 0 -> 676 bytes .../lib/gnu/javax/swing/text/html/css/Length.class | Bin 0 -> 2810 bytes .../gnu/javax/swing/text/html/css/Selector.class | Bin 0 -> 3283 bytes .../html/parser/GnuParserDelegator$gnuParser.class | Bin 0 -> 3083 bytes .../text/html/parser/GnuParserDelegator.class | Bin 0 -> 1712 bytes .../javax/swing/text/html/parser/HTML_401F.class | Bin 0 -> 74378 bytes .../text/html/parser/SmallHtmlAttributeSet$1.class | Bin 0 -> 1076 bytes .../text/html/parser/SmallHtmlAttributeSet.class | Bin 0 -> 3164 bytes .../gnu/javax/swing/text/html/parser/gnuDTD.class | Bin 0 -> 6936 bytes .../text/html/parser/htmlAttributeSet$1.class | Bin 0 -> 1270 bytes .../swing/text/html/parser/htmlAttributeSet.class | Bin 0 -> 2379 bytes .../text/html/parser/htmlValidator$hTag.class | Bin 0 -> 1850 bytes .../swing/text/html/parser/htmlValidator.class | Bin 0 -> 10443 bytes .../text/html/parser/models/PCDATAonly_model.class | Bin 0 -> 901 bytes .../html/parser/models/TableRowContentModel.class | Bin 0 -> 1284 bytes .../javax/swing/text/html/parser/models/list.class | Bin 0 -> 4383 bytes .../swing/text/html/parser/models/noTagModel.class | Bin 0 -> 1153 bytes .../javax/swing/text/html/parser/models/node.class | Bin 0 -> 3855 bytes .../text/html/parser/models/transformer.class | Bin 0 -> 3015 bytes .../swing/text/html/parser/support/Parser$1.class | Bin 0 -> 859 bytes .../swing/text/html/parser/support/Parser$2.class | Bin 0 -> 1742 bytes .../swing/text/html/parser/support/Parser.class | Bin 0 -> 20690 bytes .../html/parser/support/gnuStringIntMapper.class | Bin 0 -> 1382 bytes .../text/html/parser/support/low/Buffer.class | Bin 0 -> 3384 bytes .../text/html/parser/support/low/Constants.class | Bin 0 -> 5329 bytes .../text/html/parser/support/low/Location.class | Bin 0 -> 591 bytes .../html/parser/support/low/ParseException.class | Bin 0 -> 489 bytes .../swing/text/html/parser/support/low/Queue.class | Bin 0 -> 1980 bytes .../html/parser/support/low/ReaderTokenizer.class | Bin 0 -> 5335 bytes .../swing/text/html/parser/support/low/Token.class | Bin 0 -> 2832 bytes .../swing/text/html/parser/support/low/node.class | Bin 0 -> 551 bytes .../text/html/parser/support/low/pattern.class | Bin 0 -> 1556 bytes .../html/parser/support/parameterDefaulter.class | Bin 0 -> 1882 bytes .../html/parser/support/textPreProcessor.class | Bin 0 -> 1913 bytes .../lib/gnu/javax/swing/tree/GnuPath.class | Bin 0 -> 453 bytes .../gnu/xml/aelfred2/JAXPFactory$JaxpParser.class | Bin 0 -> 1835 bytes .../lib/gnu/xml/aelfred2/JAXPFactory.class | Bin 0 -> 2898 bytes .../lib/gnu/xml/aelfred2/SAXDriver$Adapter.class | Bin 0 -> 2407 bytes .../lib/gnu/xml/aelfred2/SAXDriver$Attribute.class | Bin 0 -> 657 bytes .../classpath/lib/gnu/xml/aelfred2/SAXDriver.class | Bin 0 -> 20456 bytes .../gnu/xml/aelfred2/XmlParser$AttributeDecl.class | Bin 0 -> 514 bytes .../gnu/xml/aelfred2/XmlParser$ElementDecl.class | Bin 0 -> 500 bytes .../gnu/xml/aelfred2/XmlParser$EntityInfo.class | Bin 0 -> 528 bytes .../aelfred2/XmlParser$ExternalIdentifiers.class | Bin 0 -> 704 bytes .../lib/gnu/xml/aelfred2/XmlParser$Input.class | Bin 0 -> 703 bytes .../classpath/lib/gnu/xml/aelfred2/XmlParser.class | Bin 0 -> 52439 bytes .../xml/aelfred2/XmlReader$FatalErrorHandler.class | Bin 0 -> 624 bytes .../classpath/lib/gnu/xml/aelfred2/XmlReader.class | Bin 0 -> 4752 bytes .../lib/gnu/xml/dom/Consumer$Backdoor.class | Bin 0 -> 5882 bytes libjava/classpath/lib/gnu/xml/dom/Consumer.class | Bin 0 -> 851 bytes .../lib/gnu/xml/dom/DTDAttributeTypeInfo.class | Bin 0 -> 1095 bytes .../lib/gnu/xml/dom/DTDElementTypeInfo.class | Bin 0 -> 1909 bytes libjava/classpath/lib/gnu/xml/dom/DomAttr.class | Bin 0 -> 5205 bytes .../lib/gnu/xml/dom/DomCDATASection.class | Bin 0 -> 849 bytes .../xml/dom/DomCharacterData$EmptyNodeList.class | Bin 0 -> 621 bytes .../lib/gnu/xml/dom/DomCharacterData.class | Bin 0 -> 4429 bytes libjava/classpath/lib/gnu/xml/dom/DomComment.class | Bin 0 -> 614 bytes .../lib/gnu/xml/dom/DomDOMException.class | Bin 0 -> 2560 bytes libjava/classpath/lib/gnu/xml/dom/DomDoctype.class | Bin 0 -> 6376 bytes .../classpath/lib/gnu/xml/dom/DomDocument.class | Bin 0 -> 23664 bytes .../lib/gnu/xml/dom/DomDocumentBuilder.class | Bin 0 -> 4375 bytes .../gnu/xml/dom/DomDocumentBuilderFactory.class | Bin 0 -> 3710 bytes .../lib/gnu/xml/dom/DomDocumentConfiguration.class | Bin 0 -> 4078 bytes .../lib/gnu/xml/dom/DomDocumentFragment.class | Bin 0 -> 575 bytes libjava/classpath/lib/gnu/xml/dom/DomElement.class | Bin 0 -> 8101 bytes libjava/classpath/lib/gnu/xml/dom/DomEntity.class | Bin 0 -> 1220 bytes .../lib/gnu/xml/dom/DomEntityReference.class | Bin 0 -> 1169 bytes .../gnu/xml/dom/DomEvent$DomMutationEvent.class | Bin 0 -> 1909 bytes .../lib/gnu/xml/dom/DomEvent$DomUIEvent.class | Bin 0 -> 1038 bytes libjava/classpath/lib/gnu/xml/dom/DomEvent.class | Bin 0 -> 2406 bytes libjava/classpath/lib/gnu/xml/dom/DomExtern.class | Bin 0 -> 955 bytes libjava/classpath/lib/gnu/xml/dom/DomImpl.class | Bin 0 -> 3939 bytes .../classpath/lib/gnu/xml/dom/DomIterator.class | Bin 0 -> 4187 bytes .../lib/gnu/xml/dom/DomNSResolverContext.class | Bin 0 -> 1251 bytes .../lib/gnu/xml/dom/DomNamedNodeMap.class | Bin 0 -> 5204 bytes .../gnu/xml/dom/DomNode$DomEventException.class | Bin 0 -> 459 bytes .../lib/gnu/xml/dom/DomNode$ListenerRecord.class | Bin 0 -> 1009 bytes .../lib/gnu/xml/dom/DomNode$LiveNodeList.class | Bin 0 -> 3023 bytes .../lib/gnu/xml/dom/DomNode$ShadowList.class | Bin 0 -> 1025 bytes libjava/classpath/lib/gnu/xml/dom/DomNode.class | Bin 0 -> 22734 bytes .../lib/gnu/xml/dom/DomNodeIterator.class | Bin 0 -> 4168 bytes .../classpath/lib/gnu/xml/dom/DomNotation.class | Bin 0 -> 856 bytes libjava/classpath/lib/gnu/xml/dom/DomNsNode.class | Bin 0 -> 2725 bytes .../lib/gnu/xml/dom/DomProcessingInstruction.class | Bin 0 -> 1255 bytes libjava/classpath/lib/gnu/xml/dom/DomText.class | Bin 0 -> 3741 bytes .../lib/gnu/xml/dom/DomXPathExpression.class | Bin 0 -> 3337 bytes .../lib/gnu/xml/dom/DomXPathNSResolver.class | Bin 0 -> 638 bytes .../classpath/lib/gnu/xml/dom/DomXPathResult.class | Bin 0 -> 3637 bytes .../lib/gnu/xml/dom/ImplementationList.class | Bin 0 -> 765 bytes .../lib/gnu/xml/dom/ImplementationSource.class | Bin 0 -> 3312 bytes .../lib/gnu/xml/dom/JAXPFactory$JAXPBuilder.class | Bin 0 -> 4140 bytes .../classpath/lib/gnu/xml/dom/JAXPFactory.class | Bin 0 -> 2738 bytes .../gnu/xml/dom/html2/DomHTMLAnchorElement.class | Bin 0 -> 3209 bytes .../gnu/xml/dom/html2/DomHTMLAppletElement.class | Bin 0 -> 3172 bytes .../lib/gnu/xml/dom/html2/DomHTMLAreaElement.class | Bin 0 -> 2461 bytes .../lib/gnu/xml/dom/html2/DomHTMLBRElement.class | Bin 0 -> 923 bytes .../lib/gnu/xml/dom/html2/DomHTMLBaseElement.class | Bin 0 -> 1105 bytes .../gnu/xml/dom/html2/DomHTMLBaseFontElement.class | Bin 0 -> 1419 bytes .../lib/gnu/xml/dom/html2/DomHTMLBodyElement.class | Bin 0 -> 1816 bytes .../gnu/xml/dom/html2/DomHTMLButtonElement.class | Bin 0 -> 2264 bytes .../lib/gnu/xml/dom/html2/DomHTMLCollection.class | Bin 0 -> 4083 bytes .../gnu/xml/dom/html2/DomHTMLDListElement.class | Bin 0 -> 891 bytes .../xml/dom/html2/DomHTMLDirectoryElement.class | Bin 0 -> 907 bytes .../lib/gnu/xml/dom/html2/DomHTMLDivElement.class | Bin 0 -> 927 bytes .../lib/gnu/xml/dom/html2/DomHTMLDocument.class | Bin 0 -> 10676 bytes .../lib/gnu/xml/dom/html2/DomHTMLElement.class | Bin 0 -> 4725 bytes .../gnu/xml/dom/html2/DomHTMLEmbedElement.class | Bin 0 -> 2258 bytes .../gnu/xml/dom/html2/DomHTMLFieldSetElement.class | Bin 0 -> 820 bytes .../lib/gnu/xml/dom/html2/DomHTMLFontElement.class | Bin 0 -> 1273 bytes .../lib/gnu/xml/dom/html2/DomHTMLFormElement.class | Bin 0 -> 2784 bytes .../gnu/xml/dom/html2/DomHTMLFrameElement.class | Bin 0 -> 2533 bytes .../gnu/xml/dom/html2/DomHTMLFrameSetElement.class | Bin 0 -> 1115 bytes .../lib/gnu/xml/dom/html2/DomHTMLHRElement.class | Bin 0 -> 1596 bytes .../lib/gnu/xml/dom/html2/DomHTMLHeadElement.class | Bin 0 -> 937 bytes .../gnu/xml/dom/html2/DomHTMLHeadingElement.class | Bin 0 -> 943 bytes .../lib/gnu/xml/dom/html2/DomHTMLHtmlElement.class | Bin 0 -> 937 bytes .../gnu/xml/dom/html2/DomHTMLIFrameElement.class | Bin 0 -> 2730 bytes .../gnu/xml/dom/html2/DomHTMLImageElement.class | Bin 0 -> 3147 bytes .../lib/gnu/xml/dom/html2/DomHTMLImpl.class | Bin 0 -> 767 bytes .../gnu/xml/dom/html2/DomHTMLInputElement.class | Bin 0 -> 4906 bytes .../gnu/xml/dom/html2/DomHTMLIsIndexElement.class | Bin 0 -> 1181 bytes .../lib/gnu/xml/dom/html2/DomHTMLLIElement.class | Bin 0 -> 1224 bytes .../gnu/xml/dom/html2/DomHTMLLabelElement.class | Bin 0 -> 1380 bytes .../gnu/xml/dom/html2/DomHTMLLegendElement.class | Bin 0 -> 1372 bytes .../lib/gnu/xml/dom/html2/DomHTMLLinkElement.class | Bin 0 -> 2470 bytes .../lib/gnu/xml/dom/html2/DomHTMLMapElement.class | Bin 0 -> 1389 bytes .../lib/gnu/xml/dom/html2/DomHTMLMenuElement.class | Bin 0 -> 887 bytes .../lib/gnu/xml/dom/html2/DomHTMLMetaElement.class | Bin 0 -> 1477 bytes .../lib/gnu/xml/dom/html2/DomHTMLModElement.class | Bin 0 -> 1118 bytes .../gnu/xml/dom/html2/DomHTMLOListElement.class | Bin 0 -> 1554 bytes .../gnu/xml/dom/html2/DomHTMLObjectElement.class | Bin 0 -> 5932 bytes .../gnu/xml/dom/html2/DomHTMLOptGroupElement.class | Bin 0 -> 1268 bytes .../gnu/xml/dom/html2/DomHTMLOptionElement.class | Bin 0 -> 2410 bytes .../xml/dom/html2/DomHTMLParagraphElement.class | Bin 0 -> 951 bytes .../gnu/xml/dom/html2/DomHTMLParamElement.class | Bin 0 -> 1468 bytes .../lib/gnu/xml/dom/html2/DomHTMLParser.class | Bin 0 -> 4808 bytes .../lib/gnu/xml/dom/html2/DomHTMLPreElement.class | Bin 0 -> 869 bytes .../gnu/xml/dom/html2/DomHTMLQuoteElement.class | Bin 0 -> 932 bytes .../gnu/xml/dom/html2/DomHTMLScriptElement.class | Bin 0 -> 2174 bytes .../gnu/xml/dom/html2/DomHTMLSelectElement.class | Bin 0 -> 4686 bytes .../gnu/xml/dom/html2/DomHTMLStyleElement.class | Bin 0 -> 1427 bytes .../xml/dom/html2/DomHTMLTableCaptionElement.class | Bin 0 -> 963 bytes .../xml/dom/html2/DomHTMLTableCellElement.class | Bin 0 -> 3661 bytes .../gnu/xml/dom/html2/DomHTMLTableColElement.class | Bin 0 -> 1964 bytes .../gnu/xml/dom/html2/DomHTMLTableElement.class | Bin 0 -> 6637 bytes .../gnu/xml/dom/html2/DomHTMLTableRowElement.class | Bin 0 -> 4138 bytes .../xml/dom/html2/DomHTMLTableSectionElement.class | Bin 0 -> 3194 bytes .../gnu/xml/dom/html2/DomHTMLTextAreaElement.class | Bin 0 -> 3318 bytes .../gnu/xml/dom/html2/DomHTMLTitleElement.class | Bin 0 -> 838 bytes .../gnu/xml/dom/html2/DomHTMLUListElement.class | Bin 0 -> 1250 bytes .../lib/gnu/xml/dom/ls/DomLSException.class | Bin 0 -> 584 bytes .../classpath/lib/gnu/xml/dom/ls/DomLSInput.class | Bin 0 -> 2644 bytes .../classpath/lib/gnu/xml/dom/ls/DomLSOutput.class | Bin 0 -> 1412 bytes .../classpath/lib/gnu/xml/dom/ls/DomLSParser.class | Bin 0 -> 10963 bytes .../lib/gnu/xml/dom/ls/DomLSSerializer.class | Bin 0 -> 5775 bytes .../lib/gnu/xml/dom/ls/FilteredSAXEventSink.class | Bin 0 -> 5514 bytes .../lib/gnu/xml/dom/ls/ReaderInputStream.class | Bin 0 -> 3321 bytes .../lib/gnu/xml/dom/ls/SAXEventSink.class | Bin 0 -> 12805 bytes .../lib/gnu/xml/dom/ls/WriterOutputStream.class | Bin 0 -> 1291 bytes .../lib/gnu/xml/libxmlj/dom/GnomeAttr.class | Bin 0 -> 1884 bytes .../gnu/xml/libxmlj/dom/GnomeCDATASection.class | Bin 0 -> 420 bytes .../gnu/xml/libxmlj/dom/GnomeCharacterData.class | Bin 0 -> 2367 bytes .../lib/gnu/xml/libxmlj/dom/GnomeComment.class | Bin 0 -> 409 bytes .../gnu/xml/libxmlj/dom/GnomeDOMException.class | Bin 0 -> 1176 bytes .../gnu/xml/libxmlj/dom/GnomeDOMStringList.class | Bin 0 -> 913 bytes .../lib/gnu/xml/libxmlj/dom/GnomeDocument.class | Bin 0 -> 10110 bytes .../gnu/xml/libxmlj/dom/GnomeDocumentBuilder.class | Bin 0 -> 5993 bytes .../libxmlj/dom/GnomeDocumentBuilderFactory.class | Bin 0 -> 1683 bytes .../xml/libxmlj/dom/GnomeDocumentFragment.class | Bin 0 -> 436 bytes .../gnu/xml/libxmlj/dom/GnomeDocumentType.class | Bin 0 -> 1475 bytes .../lib/gnu/xml/libxmlj/dom/GnomeElement.class | Bin 0 -> 3362 bytes .../lib/gnu/xml/libxmlj/dom/GnomeEntity.class | Bin 0 -> 1358 bytes .../gnu/xml/libxmlj/dom/GnomeEntityReference.class | Bin 0 -> 432 bytes .../gnu/xml/libxmlj/dom/GnomeNamedNodeMap.class | Bin 0 -> 917 bytes .../lib/gnu/xml/libxmlj/dom/GnomeNode.class | Bin 0 -> 9182 bytes .../lib/gnu/xml/libxmlj/dom/GnomeNodeList.class | Bin 0 -> 488 bytes .../lib/gnu/xml/libxmlj/dom/GnomeNotation.class | Bin 0 -> 1060 bytes .../libxmlj/dom/GnomeProcessingInstruction.class | Bin 0 -> 1110 bytes .../lib/gnu/xml/libxmlj/dom/GnomeText.class | Bin 0 -> 2414 bytes .../lib/gnu/xml/libxmlj/dom/GnomeTypeInfo.class | Bin 0 -> 562 bytes .../gnu/xml/libxmlj/dom/GnomeXPathExpression.class | Bin 0 -> 1313 bytes .../gnu/xml/libxmlj/dom/GnomeXPathNSResolver.class | Bin 0 -> 660 bytes .../gnu/xml/libxmlj/dom/GnomeXPathNodeList.class | Bin 0 -> 609 bytes .../lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class | Bin 0 -> 2233 bytes .../lib/gnu/xml/libxmlj/sax/GnomeLocator.class | Bin 0 -> 1191 bytes .../lib/gnu/xml/libxmlj/sax/GnomeSAXParser.class | Bin 0 -> 1481 bytes .../xml/libxmlj/sax/GnomeSAXParserFactory.class | Bin 0 -> 1596 bytes .../lib/gnu/xml/libxmlj/sax/GnomeXMLReader.class | Bin 0 -> 16049 bytes .../lib/gnu/xml/libxmlj/sax/Namespaces.class | Bin 0 -> 1840 bytes .../xml/libxmlj/sax/StringArrayAttributes.class | Bin 0 -> 2599 bytes .../lib/gnu/xml/libxmlj/sax/XMLName.class | Bin 0 -> 1238 bytes .../transform/ErrorListenerErrorHandler.class | Bin 0 -> 1647 bytes .../xml/libxmlj/transform/GnomeTransformer.class | Bin 0 -> 11424 bytes ...formerFactory$AssociatedStylesheetHandler.class | Bin 0 -> 1279 bytes .../transform/GnomeTransformerFactory.class | Bin 0 -> 7295 bytes .../transform/URIResolverEntityResolver.class | Bin 0 -> 1383 bytes .../lib/gnu/xml/libxmlj/util/EmptyNodeList.class | Bin 0 -> 521 bytes .../gnu/xml/libxmlj/util/NamedInputStream.class | Bin 0 -> 1272 bytes .../xml/libxmlj/util/StandaloneDocumentType.class | Bin 0 -> 5182 bytes .../gnu/xml/libxmlj/util/StandaloneLocator.class | Bin 0 -> 993 bytes .../xml/libxmlj/util/XMLJ$XMLJShutdownHook.class | Bin 0 -> 727 bytes .../classpath/lib/gnu/xml/libxmlj/util/XMLJ.class | Bin 0 -> 4753 bytes .../gnu/xml/pipeline/CallFilter$Requestor.class | Bin 0 -> 3236 bytes .../lib/gnu/xml/pipeline/CallFilter.class | Bin 0 -> 2591 bytes .../lib/gnu/xml/pipeline/DomConsumer$Handler.class | Bin 0 -> 12458 bytes .../lib/gnu/xml/pipeline/DomConsumer.class | Bin 0 -> 4021 bytes .../lib/gnu/xml/pipeline/EventConsumer.class | Bin 0 -> 425 bytes .../lib/gnu/xml/pipeline/EventFilter.class | Bin 0 -> 11052 bytes .../lib/gnu/xml/pipeline/LinkFilter.class | Bin 0 -> 3109 bytes .../classpath/lib/gnu/xml/pipeline/NSFilter.class | Bin 0 -> 6282 bytes .../xml/pipeline/PipelineFactory$Pipeline.class | Bin 0 -> 1433 bytes .../gnu/xml/pipeline/PipelineFactory$Stage.class | Bin 0 -> 5275 bytes .../lib/gnu/xml/pipeline/PipelineFactory.class | Bin 0 -> 3857 bytes .../lib/gnu/xml/pipeline/TeeConsumer.class | Bin 0 -> 7036 bytes .../lib/gnu/xml/pipeline/TextConsumer.class | Bin 0 -> 1613 bytes .../ValidationConsumer$AttributeInfo.class | Bin 0 -> 609 bytes .../ValidationConsumer$ChildrenRecognizer.class | Bin 0 -> 5547 bytes .../pipeline/ValidationConsumer$ElementInfo.class | Bin 0 -> 1680 bytes .../ValidationConsumer$EmptyRecognizer.class | Bin 0 -> 850 bytes .../ValidationConsumer$MixedRecognizer.class | Bin 0 -> 2369 bytes .../pipeline/ValidationConsumer$Recognizer.class | Bin 0 -> 1170 bytes .../lib/gnu/xml/pipeline/ValidationConsumer.class | Bin 0 -> 18791 bytes .../gnu/xml/pipeline/WellFormednessFilter.class | Bin 0 -> 6832 bytes .../gnu/xml/pipeline/XIncludeFilter$Scrubber.class | Bin 0 -> 2383 bytes .../lib/gnu/xml/pipeline/XIncludeFilter.class | Bin 0 -> 10814 bytes .../lib/gnu/xml/pipeline/XsltFilter.class | Bin 0 -> 2911 bytes .../lib/gnu/xml/stream/AttributeImpl.class | Bin 0 -> 2098 bytes .../lib/gnu/xml/stream/BufferedReader.class | Bin 0 -> 2886 bytes .../classpath/lib/gnu/xml/stream/CRLFReader.class | Bin 0 -> 2032 bytes .../lib/gnu/xml/stream/CharactersImpl.class | Bin 0 -> 1830 bytes .../classpath/lib/gnu/xml/stream/CommentImpl.class | Bin 0 -> 1362 bytes libjava/classpath/lib/gnu/xml/stream/DTDImpl.class | Bin 0 -> 1811 bytes .../lib/gnu/xml/stream/EndDocumentImpl.class | Bin 0 -> 722 bytes .../lib/gnu/xml/stream/EndElementImpl.class | Bin 0 -> 1844 bytes .../lib/gnu/xml/stream/EntityDeclarationImpl.class | Bin 0 -> 2367 bytes .../lib/gnu/xml/stream/EntityReferenceImpl.class | Bin 0 -> 1586 bytes .../lib/gnu/xml/stream/FilteredEventReader.class | Bin 0 -> 1631 bytes .../lib/gnu/xml/stream/FilteredStreamReader.class | Bin 0 -> 1128 bytes .../lib/gnu/xml/stream/NamespaceImpl.class | Bin 0 -> 1777 bytes .../gnu/xml/stream/NotationDeclarationImpl.class | Bin 0 -> 1811 bytes .../gnu/xml/stream/ProcessingInstructionImpl.class | Bin 0 -> 1536 bytes .../classpath/lib/gnu/xml/stream/SAXParser.class | Bin 0 -> 22005 bytes .../lib/gnu/xml/stream/SAXParserFactory.class | Bin 0 -> 2605 bytes .../lib/gnu/xml/stream/StartDocumentImpl.class | Bin 0 -> 2225 bytes .../lib/gnu/xml/stream/StartElementImpl.class | Bin 0 -> 3087 bytes .../lib/gnu/xml/stream/UnicodeReader.class | Bin 0 -> 2897 bytes .../lib/gnu/xml/stream/XIncludeFilter.class | Bin 0 -> 17712 bytes .../lib/gnu/xml/stream/XMLEventAllocatorImpl.class | Bin 0 -> 5884 bytes .../lib/gnu/xml/stream/XMLEventFactoryImpl.class | Bin 0 -> 7643 bytes .../lib/gnu/xml/stream/XMLEventImpl.class | Bin 0 -> 3112 bytes .../lib/gnu/xml/stream/XMLEventReaderImpl.class | Bin 0 -> 2614 bytes .../lib/gnu/xml/stream/XMLEventWriterImpl.class | Bin 0 -> 4785 bytes .../lib/gnu/xml/stream/XMLInputFactoryImpl.class | Bin 0 -> 9613 bytes .../lib/gnu/xml/stream/XMLOutputFactoryImpl.class | Bin 0 -> 4038 bytes .../gnu/xml/stream/XMLParser$AnyContentModel.class | Bin 0 -> 594 bytes .../lib/gnu/xml/stream/XMLParser$Attribute.class | Bin 0 -> 1789 bytes .../gnu/xml/stream/XMLParser$AttributeDecl.class | Bin 0 -> 897 bytes .../gnu/xml/stream/XMLParser$ContentModel.class | Bin 0 -> 787 bytes .../gnu/xml/stream/XMLParser$ContentParticle.class | Bin 0 -> 595 bytes .../lib/gnu/xml/stream/XMLParser$Doctype.class | Bin 0 -> 5857 bytes .../xml/stream/XMLParser$ElementContentModel.class | Bin 0 -> 964 bytes .../xml/stream/XMLParser$EmptyContentModel.class | Bin 0 -> 600 bytes .../lib/gnu/xml/stream/XMLParser$ExternalIds.class | Bin 0 -> 556 bytes .../lib/gnu/xml/stream/XMLParser$Input.class | Bin 0 -> 6256 bytes .../xml/stream/XMLParser$MixedContentModel.class | Bin 0 -> 965 bytes .../classpath/lib/gnu/xml/stream/XMLParser.class | Bin 0 -> 67379 bytes .../lib/gnu/xml/stream/XMLStreamWriterImpl.class | Bin 0 -> 14899 bytes .../lib/gnu/xml/transform/AbstractNumberNode.class | Bin 0 -> 6009 bytes .../lib/gnu/xml/transform/ApplyImportsNode.class | Bin 0 -> 1500 bytes .../lib/gnu/xml/transform/ApplyTemplatesNode.class | Bin 0 -> 5369 bytes .../lib/gnu/xml/transform/AttributeNode.class | Bin 0 -> 4870 bytes .../lib/gnu/xml/transform/AttributeSet.class | Bin 0 -> 923 bytes .../classpath/lib/gnu/xml/transform/Bindings.class | Bin 0 -> 5257 bytes .../lib/gnu/xml/transform/CallTemplateNode.class | Bin 0 -> 4096 bytes .../lib/gnu/xml/transform/ChooseNode.class | Bin 0 -> 1521 bytes .../lib/gnu/xml/transform/CommentNode.class | Bin 0 -> 2104 bytes .../classpath/lib/gnu/xml/transform/CopyNode.class | Bin 0 -> 3782 bytes .../lib/gnu/xml/transform/CopyOfNode.class | Bin 0 -> 4070 bytes .../lib/gnu/xml/transform/CurrentFunction.class | Bin 0 -> 1641 bytes .../lib/gnu/xml/transform/DOMSourceLocator.class | Bin 0 -> 872 bytes .../lib/gnu/xml/transform/DocumentFunction.class | Bin 0 -> 5846 bytes .../xml/transform/ElementAvailableFunction.class | Bin 0 -> 4430 bytes .../lib/gnu/xml/transform/ElementNode.class | Bin 0 -> 6372 bytes .../xml/transform/ErrorListenerErrorHandler.class | Bin 0 -> 1346 bytes .../lib/gnu/xml/transform/ForEachNode.class | Bin 0 -> 3796 bytes .../gnu/xml/transform/FormatNumberFunction.class | Bin 0 -> 3272 bytes .../xml/transform/FunctionAvailableFunction.class | Bin 0 -> 4586 bytes .../lib/gnu/xml/transform/GenerateIdFunction.class | Bin 0 -> 3112 bytes .../classpath/lib/gnu/xml/transform/IfNode.class | Bin 0 -> 2314 bytes libjava/classpath/lib/gnu/xml/transform/Key.class | Bin 0 -> 901 bytes .../lib/gnu/xml/transform/KeyFunction.class | Bin 0 -> 5017 bytes .../lib/gnu/xml/transform/LiteralNode.class | Bin 0 -> 4966 bytes .../lib/gnu/xml/transform/MessageNode.class | Bin 0 -> 2468 bytes .../lib/gnu/xml/transform/NamespaceProxy.class | Bin 0 -> 1109 bytes .../lib/gnu/xml/transform/NodeNumberNode.class | Bin 0 -> 4740 bytes .../lib/gnu/xml/transform/NumberNode.class | Bin 0 -> 1879 bytes .../lib/gnu/xml/transform/OtherwiseNode.class | Bin 0 -> 1331 bytes .../lib/gnu/xml/transform/ParameterNode.class | Bin 0 -> 4111 bytes .../xml/transform/ProcessingInstructionNode.class | Bin 0 -> 2568 bytes .../lib/gnu/xml/transform/SAXSerializer.class | Bin 0 -> 6506 bytes .../gnu/xml/transform/SAXTemplatesHandler.class | Bin 0 -> 1782 bytes .../gnu/xml/transform/SAXTransformerHandler.class | Bin 0 -> 2047 bytes .../classpath/lib/gnu/xml/transform/SortKey.class | Bin 0 -> 3065 bytes .../lib/gnu/xml/transform/StreamSerializer.class | Bin 0 -> 17808 bytes .../gnu/xml/transform/StrippingInstruction.class | Bin 0 -> 703 bytes .../lib/gnu/xml/transform/Stylesheet.class | Bin 0 -> 38666 bytes .../gnu/xml/transform/SystemPropertyFunction.class | Bin 0 -> 3011 bytes .../classpath/lib/gnu/xml/transform/Template.class | Bin 0 -> 5603 bytes .../lib/gnu/xml/transform/TemplateNode.class | Bin 0 -> 2764 bytes .../lib/gnu/xml/transform/TemplatesImpl.class | Bin 0 -> 1466 bytes .../classpath/lib/gnu/xml/transform/TextNode.class | Bin 0 -> 2653 bytes .../gnu/xml/transform/TransformerFactoryImpl.class | Bin 0 -> 11477 bytes .../lib/gnu/xml/transform/TransformerImpl.class | Bin 0 -> 17191 bytes .../transform/TransformerOutputProperties.class | Bin 0 -> 3335 bytes .../xml/transform/URIResolverEntityResolver.class | Bin 0 -> 1294 bytes .../xml/transform/UnparsedEntityUriFunction.class | Bin 0 -> 2875 bytes .../lib/gnu/xml/transform/ValueOfNode.class | Bin 0 -> 3965 bytes .../classpath/lib/gnu/xml/transform/WhenNode.class | Bin 0 -> 2325 bytes .../lib/gnu/xml/transform/WithParam.class | Bin 0 -> 2404 bytes .../lib/gnu/xml/transform/XSLComparator.class | Bin 0 -> 2203 bytes .../lib/gnu/xml/transform/XSLURIResolver.class | Bin 0 -> 6144 bytes .../lib/gnu/xml/util/DoParse$MyErrorHandler.class | Bin 0 -> 1301 bytes libjava/classpath/lib/gnu/xml/util/DoParse.class | Bin 0 -> 5058 bytes libjava/classpath/lib/gnu/xml/util/DomParser.class | Bin 0 -> 11909 bytes libjava/classpath/lib/gnu/xml/util/Resolver.class | Bin 0 -> 3303 bytes .../SAXNullTransformerFactory$DomHandler.class | Bin 0 -> 997 bytes .../SAXNullTransformerFactory$DomTerminus.class | Bin 0 -> 874 bytes ...SAXNullTransformerFactory$ListenerAdapter.class | Bin 0 -> 2042 bytes .../SAXNullTransformerFactory$LocatorAdapter.class | Bin 0 -> 940 bytes .../SAXNullTransformerFactory$NullHandler.class | Bin 0 -> 3212 bytes ...SAXNullTransformerFactory$NullTransformer.class | Bin 0 -> 5136 bytes .../gnu/xml/util/SAXNullTransformerFactory.class | Bin 0 -> 5459 bytes .../classpath/lib/gnu/xml/util/XCat$Catalog.class | Bin 0 -> 5817 bytes .../lib/gnu/xml/util/XCat$DoneDelegation.class | Bin 0 -> 372 bytes .../classpath/lib/gnu/xml/util/XCat$Loader.class | Bin 0 -> 10205 bytes libjava/classpath/lib/gnu/xml/util/XCat.class | Bin 0 -> 7607 bytes .../classpath/lib/gnu/xml/util/XHTMLWriter.class | Bin 0 -> 1019 bytes libjava/classpath/lib/gnu/xml/util/XMLWriter.class | Bin 0 -> 26506 bytes .../gnu/xml/validation/datatype/Annotation.class | Bin 0 -> 508 bytes .../xml/validation/datatype/AnySimpleType.class | Bin 0 -> 753 bytes .../lib/gnu/xml/validation/datatype/AnyType.class | Bin 0 -> 628 bytes .../gnu/xml/validation/datatype/AnyURIType.class | Bin 0 -> 1703 bytes .../xml/validation/datatype/AtomicSimpleType.class | Bin 0 -> 1385 bytes .../xml/validation/datatype/Base64BinaryType.class | Bin 0 -> 2173 bytes .../gnu/xml/validation/datatype/BooleanType.class | Bin 0 -> 2029 bytes .../lib/gnu/xml/validation/datatype/ByteType.class | Bin 0 -> 2336 bytes .../gnu/xml/validation/datatype/DateTimeType.class | Bin 0 -> 4310 bytes .../lib/gnu/xml/validation/datatype/DateType.class | Bin 0 -> 3469 bytes .../gnu/xml/validation/datatype/DecimalType.class | Bin 0 -> 2033 bytes .../gnu/xml/validation/datatype/DoubleType.class | Bin 0 -> 2285 bytes .../datatype/DurationType$Duration.class | Bin 0 -> 1355 bytes .../gnu/xml/validation/datatype/DurationType.class | Bin 0 -> 3020 bytes .../gnu/xml/validation/datatype/EntitiesType.class | Bin 0 -> 2090 bytes .../gnu/xml/validation/datatype/EntityType.class | Bin 0 -> 1579 bytes .../xml/validation/datatype/EnumerationFacet.class | Bin 0 -> 876 bytes .../lib/gnu/xml/validation/datatype/Facet.class | Bin 0 -> 925 bytes .../gnu/xml/validation/datatype/FloatType.class | Bin 0 -> 2278 bytes .../validation/datatype/FractionDigitsFacet.class | Bin 0 -> 854 bytes .../xml/validation/datatype/GDayType$GDay.class | Bin 0 -> 873 bytes .../lib/gnu/xml/validation/datatype/GDayType.class | Bin 0 -> 2407 bytes .../datatype/GMonthDayType$GMonthDay.class | Bin 0 -> 1006 bytes .../xml/validation/datatype/GMonthDayType.class | Bin 0 -> 2527 bytes .../validation/datatype/GMonthType$GMonth.class | Bin 0 -> 889 bytes .../gnu/xml/validation/datatype/GMonthType.class | Bin 0 -> 2343 bytes .../datatype/GYearMonthType$GYearMonth.class | Bin 0 -> 1014 bytes .../xml/validation/datatype/GYearMonthType.class | Bin 0 -> 2559 bytes .../xml/validation/datatype/GYearType$GYear.class | Bin 0 -> 881 bytes .../gnu/xml/validation/datatype/GYearType.class | Bin 0 -> 2299 bytes .../xml/validation/datatype/HexBinaryType.class | Bin 0 -> 1627 bytes .../gnu/xml/validation/datatype/IDRefType.class | Bin 0 -> 1327 bytes .../gnu/xml/validation/datatype/IDRefsType.class | Bin 0 -> 1330 bytes .../lib/gnu/xml/validation/datatype/IDType.class | Bin 0 -> 1315 bytes .../lib/gnu/xml/validation/datatype/IntType.class | Bin 0 -> 2338 bytes .../gnu/xml/validation/datatype/IntegerType.class | Bin 0 -> 1940 bytes .../gnu/xml/validation/datatype/LanguageType.class | Bin 0 -> 1692 bytes .../gnu/xml/validation/datatype/LengthFacet.class | Bin 0 -> 829 bytes .../xml/validation/datatype/ListSimpleType.class | Bin 0 -> 1633 bytes .../lib/gnu/xml/validation/datatype/LongType.class | Bin 0 -> 2358 bytes .../validation/datatype/MaxExclusiveFacet.class | Bin 0 -> 1798 bytes .../validation/datatype/MaxInclusiveFacet.class | Bin 0 -> 1841 bytes .../xml/validation/datatype/MaxLengthFacet.class | Bin 0 -> 838 bytes .../validation/datatype/MinExclusiveFacet.class | Bin 0 -> 1797 bytes .../validation/datatype/MinInclusiveFacet.class | Bin 0 -> 1840 bytes .../xml/validation/datatype/MinLengthFacet.class | Bin 0 -> 838 bytes .../gnu/xml/validation/datatype/NCNameType.class | Bin 0 -> 2021 bytes .../gnu/xml/validation/datatype/NMTokenType.class | Bin 0 -> 1867 bytes .../gnu/xml/validation/datatype/NMTokensType.class | Bin 0 -> 2500 bytes .../lib/gnu/xml/validation/datatype/NameType.class | Bin 0 -> 1914 bytes .../validation/datatype/NegativeIntegerType.class | Bin 0 -> 1988 bytes .../datatype/NonNegativeIntegerType.class | Bin 0 -> 2080 bytes .../datatype/NonPositiveIntegerType.class | Bin 0 -> 2080 bytes .../validation/datatype/NormalizedStringType.class | Bin 0 -> 1577 bytes .../gnu/xml/validation/datatype/NotationType.class | Bin 0 -> 1538 bytes .../gnu/xml/validation/datatype/PatternFacet.class | Bin 0 -> 878 bytes .../validation/datatype/PositiveIntegerType.class | Bin 0 -> 1975 bytes .../gnu/xml/validation/datatype/QNameType.class | Bin 0 -> 2399 bytes .../gnu/xml/validation/datatype/ShortType.class | Bin 0 -> 2332 bytes .../gnu/xml/validation/datatype/SimpleType.class | Bin 0 -> 5599 bytes .../gnu/xml/validation/datatype/StringType.class | Bin 0 -> 941 bytes .../xml/validation/datatype/TimeType$Time.class | Bin 0 -> 1036 bytes .../lib/gnu/xml/validation/datatype/TimeType.class | Bin 0 -> 3776 bytes .../gnu/xml/validation/datatype/TokenType.class | Bin 0 -> 1662 bytes .../xml/validation/datatype/TotalDigitsFacet.class | Bin 0 -> 845 bytes .../lib/gnu/xml/validation/datatype/Type.class | Bin 0 -> 551 bytes .../gnu/xml/validation/datatype/TypeBuilder.class | Bin 0 -> 7085 bytes .../gnu/xml/validation/datatype/TypeLibrary.class | Bin 0 -> 7275 bytes .../validation/datatype/TypeLibraryFactory.class | Bin 0 -> 753 bytes .../xml/validation/datatype/UnionSimpleType.class | Bin 0 -> 1702 bytes .../xml/validation/datatype/UnsignedByteType.class | Bin 0 -> 2212 bytes .../xml/validation/datatype/UnsignedIntType.class | Bin 0 -> 2216 bytes .../xml/validation/datatype/UnsignedLongType.class | Bin 0 -> 2235 bytes .../validation/datatype/UnsignedShortType.class | Bin 0 -> 2226 bytes .../xml/validation/datatype/WhiteSpaceFacet.class | Bin 0 -> 953 bytes .../xml/validation/relaxng/AnyNameNameClass.class | Bin 0 -> 642 bytes .../xml/validation/relaxng/AttributePattern.class | Bin 0 -> 463 bytes .../xml/validation/relaxng/ChoiceNameClass.class | Bin 0 -> 654 bytes .../gnu/xml/validation/relaxng/ChoicePattern.class | Bin 0 -> 413 bytes .../gnu/xml/validation/relaxng/DataPattern.class | Bin 0 -> 605 bytes .../lib/gnu/xml/validation/relaxng/Define.class | Bin 0 -> 397 bytes .../xml/validation/relaxng/ElementPattern.class | Bin 0 -> 457 bytes .../gnu/xml/validation/relaxng/EmptyPattern.class | Bin 0 -> 439 bytes .../xml/validation/relaxng/FullSyntaxBuilder.class | Bin 0 -> 32653 bytes .../lib/gnu/xml/validation/relaxng/Grammar.class | Bin 0 -> 805 bytes .../xml/validation/relaxng/GrammarException.class | Bin 0 -> 394 bytes .../xml/validation/relaxng/GrammarValidator.class | Bin 0 -> 1483 bytes .../gnu/xml/validation/relaxng/GroupPattern.class | Bin 0 -> 410 bytes .../xml/validation/relaxng/InterleavePattern.class | Bin 0 -> 425 bytes .../gnu/xml/validation/relaxng/ListPattern.class | Bin 0 -> 387 bytes .../xml/validation/relaxng/NSNameNameClass.class | Bin 0 -> 748 bytes .../lib/gnu/xml/validation/relaxng/NameClass.class | Bin 0 -> 370 bytes .../gnu/xml/validation/relaxng/NameNameClass.class | Bin 0 -> 652 bytes .../xml/validation/relaxng/NotAllowedPattern.class | Bin 0 -> 454 bytes .../xml/validation/relaxng/OneOrMorePattern.class | Bin 0 -> 402 bytes .../lib/gnu/xml/validation/relaxng/Param.class | Bin 0 -> 346 bytes .../lib/gnu/xml/validation/relaxng/Pattern.class | Bin 0 -> 300 bytes .../validation/relaxng/RELAXNGSchemaFactory.class | Bin 0 -> 4226 bytes .../gnu/xml/validation/relaxng/RefPattern.class | Bin 0 -> 363 bytes .../gnu/xml/validation/relaxng/TextPattern.class | Bin 0 -> 436 bytes .../gnu/xml/validation/relaxng/ValuePattern.class | Bin 0 -> 499 bytes .../xml/validation/xmlschema/AnyAttribute.class | Bin 0 -> 642 bytes .../xmlschema/AttributeDeclaration.class | Bin 0 -> 1008 bytes .../xml/validation/xmlschema/AttributeUse.class | Bin 0 -> 672 bytes .../gnu/xml/validation/xmlschema/ComplexType.class | Bin 0 -> 937 bytes .../validation/xmlschema/ElementDeclaration.class | Bin 0 -> 1233 bytes .../gnu/xml/validation/xmlschema/Particle.class | Bin 0 -> 558 bytes .../validation/xmlschema/ValidationException.class | Bin 0 -> 483 bytes .../gnu/xml/validation/xmlschema/XMLSchema.class | Bin 0 -> 1892 bytes .../xmlschema/XMLSchemaAttributeTypeInfo.class | Bin 0 -> 1700 bytes .../validation/xmlschema/XMLSchemaBuilder.class | Bin 0 -> 14866 bytes .../xmlschema/XMLSchemaElementTypeInfo.class | Bin 0 -> 1657 bytes .../xmlschema/XMLSchemaSchemaFactory.class | Bin 0 -> 4437 bytes .../validation/xmlschema/XMLSchemaTypeInfo.class | Bin 0 -> 1095 bytes .../xmlschema/XMLSchemaTypeInfoProvider.class | Bin 0 -> 1088 bytes .../validation/xmlschema/XMLSchemaValidator.class | Bin 0 -> 1500 bytes .../xmlschema/XMLSchemaValidatorHandler.class | Bin 0 -> 10302 bytes libjava/classpath/lib/gnu/xml/xpath/AndExpr.class | Bin 0 -> 1548 bytes .../lib/gnu/xml/xpath/ArithmeticExpr.class | Bin 0 -> 2522 bytes .../lib/gnu/xml/xpath/BooleanFunction.class | Bin 0 -> 1655 bytes .../lib/gnu/xml/xpath/CeilingFunction.class | Bin 0 -> 1681 bytes .../lib/gnu/xml/xpath/ConcatFunction.class | Bin 0 -> 2181 bytes libjava/classpath/lib/gnu/xml/xpath/Constant.class | Bin 0 -> 1572 bytes .../lib/gnu/xml/xpath/ContainsFunction.class | Bin 0 -> 1971 bytes .../lib/gnu/xml/xpath/CountFunction.class | Bin 0 -> 1592 bytes .../gnu/xml/xpath/DocumentOrderComparator.class | Bin 0 -> 694 bytes .../classpath/lib/gnu/xml/xpath/EqualityExpr.class | Bin 0 -> 4075 bytes .../lib/gnu/xml/xpath/Expr$ExprNodeSet.class | Bin 0 -> 939 bytes libjava/classpath/lib/gnu/xml/xpath/Expr.class | Bin 0 -> 8763 bytes .../lib/gnu/xml/xpath/FalseFunction.class | Bin 0 -> 955 bytes .../lib/gnu/xml/xpath/FloorFunction.class | Bin 0 -> 1674 bytes libjava/classpath/lib/gnu/xml/xpath/Function.class | Bin 0 -> 156 bytes .../classpath/lib/gnu/xml/xpath/FunctionCall.class | Bin 0 -> 3750 bytes .../classpath/lib/gnu/xml/xpath/IdFunction.class | Bin 0 -> 1789 bytes .../classpath/lib/gnu/xml/xpath/LangFunction.class | Bin 0 -> 2382 bytes .../classpath/lib/gnu/xml/xpath/LastFunction.class | Bin 0 -> 933 bytes .../lib/gnu/xml/xpath/LocalNameFunction.class | Bin 0 -> 1830 bytes .../classpath/lib/gnu/xml/xpath/NameFunction.class | Bin 0 -> 1797 bytes libjava/classpath/lib/gnu/xml/xpath/NameTest.class | Bin 0 -> 2393 bytes .../lib/gnu/xml/xpath/NamespaceTest.class | Bin 0 -> 2047 bytes .../lib/gnu/xml/xpath/NamespaceUriFunction.class | Bin 0 -> 1848 bytes .../classpath/lib/gnu/xml/xpath/NegativeExpr.class | Bin 0 -> 1357 bytes .../classpath/lib/gnu/xml/xpath/NodeTypeTest.class | Bin 0 -> 2035 bytes .../lib/gnu/xml/xpath/NormalizeSpaceFunction.class | Bin 0 -> 2184 bytes .../classpath/lib/gnu/xml/xpath/NotFunction.class | Bin 0 -> 1639 bytes .../lib/gnu/xml/xpath/NumberFunction.class | Bin 0 -> 1651 bytes libjava/classpath/lib/gnu/xml/xpath/OrExpr.class | Bin 0 -> 1544 bytes .../lib/gnu/xml/xpath/ParenthesizedExpr.class | Bin 0 -> 1627 bytes libjava/classpath/lib/gnu/xml/xpath/Path.class | Bin 0 -> 356 bytes libjava/classpath/lib/gnu/xml/xpath/Pattern.class | Bin 0 -> 318 bytes .../lib/gnu/xml/xpath/PositionFunction.class | Bin 0 -> 949 bytes .../classpath/lib/gnu/xml/xpath/Predicate.class | Bin 0 -> 1545 bytes .../lib/gnu/xml/xpath/RelationalExpr.class | Bin 0 -> 1897 bytes libjava/classpath/lib/gnu/xml/xpath/Root.class | Bin 0 -> 1538 bytes .../lib/gnu/xml/xpath/RoundFunction.class | Bin 0 -> 1759 bytes libjava/classpath/lib/gnu/xml/xpath/Selector.class | Bin 0 -> 8831 bytes .../lib/gnu/xml/xpath/StartsWithFunction.class | Bin 0 -> 1982 bytes libjava/classpath/lib/gnu/xml/xpath/Steps.class | Bin 0 -> 4349 bytes .../lib/gnu/xml/xpath/StringFunction.class | Bin 0 -> 1678 bytes .../lib/gnu/xml/xpath/StringLengthFunction.class | Bin 0 -> 1853 bytes .../lib/gnu/xml/xpath/SubstringAfterFunction.class | Bin 0 -> 2036 bytes .../gnu/xml/xpath/SubstringBeforeFunction.class | Bin 0 -> 2011 bytes .../lib/gnu/xml/xpath/SubstringFunction.class | Bin 0 -> 2340 bytes .../classpath/lib/gnu/xml/xpath/SumFunction.class | Bin 0 -> 2040 bytes libjava/classpath/lib/gnu/xml/xpath/Test.class | Bin 0 -> 422 bytes .../lib/gnu/xml/xpath/TranslateFunction.class | Bin 0 -> 2543 bytes .../classpath/lib/gnu/xml/xpath/TrueFunction.class | Bin 0 -> 950 bytes .../classpath/lib/gnu/xml/xpath/UnionExpr.class | Bin 0 -> 2105 bytes .../lib/gnu/xml/xpath/VariableReference.class | Bin 0 -> 2043 bytes .../lib/gnu/xml/xpath/XPathFactoryImpl.class | Bin 0 -> 1666 bytes .../classpath/lib/gnu/xml/xpath/XPathImpl.class | Bin 0 -> 3800 bytes .../gnu/xml/xpath/XPathParser$YyCheckClass.class | Bin 0 -> 7787 bytes .../gnu/xml/xpath/XPathParser$YyDefRedClass.class | Bin 0 -> 863 bytes .../gnu/xml/xpath/XPathParser$YyDgotoClass.class | Bin 0 -> 669 bytes .../gnu/xml/xpath/XPathParser$YyGindexClass.class | Bin 0 -> 589 bytes .../lib/gnu/xml/xpath/XPathParser$YyLenClass.class | Bin 0 -> 952 bytes .../lib/gnu/xml/xpath/XPathParser$YyLhsClass.class | Bin 0 -> 1018 bytes .../gnu/xml/xpath/XPathParser$YyNameClass.class | Bin 0 -> 1520 bytes .../gnu/xml/xpath/XPathParser$YyRindexClass.class | Bin 0 -> 774 bytes .../gnu/xml/xpath/XPathParser$YySindexClass.class | Bin 0 -> 1024 bytes .../gnu/xml/xpath/XPathParser$YyTableClass.class | Bin 0 -> 5389 bytes .../gnu/xml/xpath/XPathParser$yyException.class | Bin 0 -> 453 bytes .../lib/gnu/xml/xpath/XPathParser$yyInput.class | Bin 0 -> 330 bytes .../classpath/lib/gnu/xml/xpath/XPathParser.class | Bin 0 -> 15434 bytes .../gnu/xml/xpath/XPathTokenizer$XPathToken.class | Bin 0 -> 796 bytes .../lib/gnu/xml/xpath/XPathTokenizer.class | Bin 0 -> 7206 bytes .../lib/java/applet/Applet$AccessibleApplet.class | Bin 0 -> 1235 bytes .../lib/java/applet/Applet$URLAudioClip.class | Bin 0 -> 1500 bytes libjava/classpath/lib/java/applet/Applet.class | Bin 0 -> 4351 bytes .../classpath/lib/java/applet/AppletContext.class | Bin 0 -> 833 bytes libjava/classpath/lib/java/applet/AppletStub.class | Bin 0 -> 359 bytes libjava/classpath/lib/java/applet/AudioClip.class | Bin 0 -> 162 bytes libjava/classpath/lib/java/awt/AWTError.class | Bin 0 -> 394 bytes libjava/classpath/lib/java/awt/AWTEvent.class | Bin 0 -> 3487 bytes .../lib/java/awt/AWTEventMulticaster.class | Bin 0 -> 14395 bytes libjava/classpath/lib/java/awt/AWTException.class | Bin 0 -> 410 bytes .../classpath/lib/java/awt/AWTKeyStroke$1.class | Bin 0 -> 1001 bytes .../classpath/lib/java/awt/AWTKeyStroke$2.class | Bin 0 -> 1451 bytes .../classpath/lib/java/awt/AWTKeyStroke$3.class | Bin 0 -> 1214 bytes libjava/classpath/lib/java/awt/AWTKeyStroke.class | Bin 0 -> 7354 bytes libjava/classpath/lib/java/awt/AWTPermission.class | Bin 0 -> 558 bytes libjava/classpath/lib/java/awt/ActiveEvent.class | Bin 0 -> 137 bytes libjava/classpath/lib/java/awt/Adjustable.class | Bin 0 -> 666 bytes .../classpath/lib/java/awt/AlphaComposite$1.class | Bin 0 -> 715 bytes .../classpath/lib/java/awt/AlphaComposite.class | Bin 0 -> 3106 bytes .../classpath/lib/java/awt/AttributeValue.class | Bin 0 -> 609 bytes libjava/classpath/lib/java/awt/BasicStroke.class | Bin 0 -> 11709 bytes libjava/classpath/lib/java/awt/BorderLayout.class | Bin 0 -> 8006 bytes .../java/awt/BufferCapabilities$FlipContents.class | Bin 0 -> 873 bytes .../lib/java/awt/BufferCapabilities.class | Bin 0 -> 1772 bytes .../lib/java/awt/Button$AccessibleAWTButton.class | Bin 0 -> 2322 bytes libjava/classpath/lib/java/awt/Button.class | Bin 0 -> 4645 bytes .../lib/java/awt/Canvas$AccessibleAWTCanvas.class | Bin 0 -> 783 bytes .../java/awt/Canvas$CanvasBltBufferStrategy.class | Bin 0 -> 947 bytes .../java/awt/Canvas$CanvasFlipBufferStrategy.class | Bin 0 -> 972 bytes libjava/classpath/lib/java/awt/Canvas.class | Bin 0 -> 3756 bytes libjava/classpath/lib/java/awt/CardLayout.class | Bin 0 -> 6645 bytes .../java/awt/Checkbox$AccessibleAWTCheckbox.class | Bin 0 -> 2701 bytes libjava/classpath/lib/java/awt/Checkbox.class | Bin 0 -> 5130 bytes libjava/classpath/lib/java/awt/CheckboxGroup.class | Bin 0 -> 1568 bytes ...boxMenuItem$AccessibleAWTCheckboxMenuItem.class | Bin 0 -> 734 bytes .../classpath/lib/java/awt/CheckboxMenuItem.class | Bin 0 -> 4664 bytes .../lib/java/awt/Choice$AccessibleAWTChoice.class | Bin 0 -> 1502 bytes libjava/classpath/lib/java/awt/Choice.class | Bin 0 -> 6422 bytes libjava/classpath/lib/java/awt/Color.class | Bin 0 -> 9697 bytes .../java/awt/ColorPaintContext$ColorRaster.class | Bin 0 -> 2055 bytes .../classpath/lib/java/awt/ColorPaintContext.class | Bin 0 -> 1437 bytes ...WTComponent$AccessibleAWTComponentHandler.class | Bin 0 -> 1391 bytes ...bleAWTComponent$AccessibleAWTFocusHandler.class | Bin 0 -> 1188 bytes .../awt/Component$AccessibleAWTComponent.class | Bin 0 -> 7344 bytes .../lib/java/awt/Component$BltBufferStrategy.class | Bin 0 -> 3260 bytes .../java/awt/Component$FlipBufferStrategy.class | Bin 0 -> 3406 bytes ...omponent$HeavyweightInLightweightListener.class | Bin 0 -> 1500 bytes libjava/classpath/lib/java/awt/Component.class | Bin 0 -> 57337 bytes .../lib/java/awt/ComponentOrientation.class | Bin 0 -> 1996 bytes libjava/classpath/lib/java/awt/Composite.class | Bin 0 -> 243 bytes .../classpath/lib/java/awt/CompositeContext.class | Bin 0 -> 247 bytes ...leAWTContainer$AccessibleContainerHandler.class | Bin 0 -> 1195 bytes .../awt/Container$AccessibleAWTContainer.class | Bin 0 -> 1986 bytes .../java/awt/Container$GfxPaintAllVisitor.class | Bin 0 -> 801 bytes .../lib/java/awt/Container$GfxPaintVisitor.class | Bin 0 -> 789 bytes .../java/awt/Container$GfxPrintAllVisitor.class | Bin 0 -> 801 bytes .../lib/java/awt/Container$GfxPrintVisitor.class | Bin 0 -> 789 bytes .../lib/java/awt/Container$GfxVisitor.class | Bin 0 -> 421 bytes libjava/classpath/lib/java/awt/Container.class | Bin 0 -> 25778 bytes .../awt/ContainerOrderFocusTraversalPolicy.class | Bin 0 -> 5181 bytes libjava/classpath/lib/java/awt/Cursor.class | Bin 0 -> 3144 bytes .../lib/java/awt/DefaultFocusTraversalPolicy.class | Bin 0 -> 1060 bytes ...ultKeyboardFocusManager$EventDelayRequest.class | Bin 0 -> 2221 bytes .../lib/java/awt/DefaultKeyboardFocusManager.class | Bin 0 -> 8339 bytes .../lib/java/awt/Dialog$AccessibleAWTDialog.class | Bin 0 -> 1304 bytes libjava/classpath/lib/java/awt/Dialog.class | Bin 0 -> 5452 bytes libjava/classpath/lib/java/awt/Dimension.class | Bin 0 -> 2137 bytes libjava/classpath/lib/java/awt/DisplayMode.class | Bin 0 -> 1147 bytes libjava/classpath/lib/java/awt/Event.class | Bin 0 -> 4355 bytes .../lib/java/awt/EventDispatchThread.class | Bin 0 -> 1751 bytes .../classpath/lib/java/awt/EventQueue$Queue.class | Bin 0 -> 610 bytes libjava/classpath/lib/java/awt/EventQueue.class | Bin 0 -> 7265 bytes libjava/classpath/lib/java/awt/FileDialog.class | Bin 0 -> 3706 bytes libjava/classpath/lib/java/awt/FlowLayout.class | Bin 0 -> 4816 bytes .../lib/java/awt/FocusTraversalPolicy.class | Bin 0 -> 734 bytes libjava/classpath/lib/java/awt/Font.class | Bin 0 -> 14714 bytes .../lib/java/awt/FontFormatException.class | Bin 0 -> 431 bytes libjava/classpath/lib/java/awt/FontMetrics.class | Bin 0 -> 6101 bytes .../lib/java/awt/Frame$AccessibleAWTFrame.class | Bin 0 -> 1302 bytes libjava/classpath/lib/java/awt/Frame.class | Bin 0 -> 7975 bytes libjava/classpath/lib/java/awt/GradientPaint.class | Bin 0 -> 2918 bytes libjava/classpath/lib/java/awt/Graphics.class | Bin 0 -> 5028 bytes libjava/classpath/lib/java/awt/Graphics2D.class | Bin 0 -> 2479 bytes .../lib/java/awt/GraphicsConfigTemplate.class | Bin 0 -> 684 bytes .../lib/java/awt/GraphicsConfiguration.class | Bin 0 -> 1797 bytes .../classpath/lib/java/awt/GraphicsDevice.class | Bin 0 -> 2719 bytes .../lib/java/awt/GraphicsEnvironment.class | Bin 0 -> 2586 bytes .../lib/java/awt/GridBagConstraints.class | Bin 0 -> 2167 bytes libjava/classpath/lib/java/awt/GridBagLayout.class | Bin 0 -> 16068 bytes .../classpath/lib/java/awt/GridBagLayoutInfo.class | Bin 0 -> 737 bytes libjava/classpath/lib/java/awt/GridLayout.class | Bin 0 -> 5050 bytes .../classpath/lib/java/awt/HeadlessException.class | Bin 0 -> 526 bytes .../java/awt/IllegalComponentStateException.class | Bin 0 -> 557 bytes libjava/classpath/lib/java/awt/Image.class | Bin 0 -> 2109 bytes .../classpath/lib/java/awt/ImageCapabilities.class | Bin 0 -> 900 bytes libjava/classpath/lib/java/awt/Insets.class | Bin 0 -> 1998 bytes .../classpath/lib/java/awt/ItemSelectable.class | Bin 0 -> 261 bytes .../awt/JobAttributes$DefaultSelectionType.class | Bin 0 -> 812 bytes .../java/awt/JobAttributes$DestinationType.class | Bin 0 -> 726 bytes .../lib/java/awt/JobAttributes$DialogType.class | Bin 0 -> 768 bytes ...obAttributes$MultipleDocumentHandlingType.class | Bin 0 -> 903 bytes .../lib/java/awt/JobAttributes$SidesType.class | Bin 0 -> 833 bytes libjava/classpath/lib/java/awt/JobAttributes.class | Bin 0 -> 9010 bytes .../lib/java/awt/KeyEventDispatcher.class | Bin 0 -> 184 bytes .../lib/java/awt/KeyEventPostProcessor.class | Bin 0 -> 193 bytes .../lib/java/awt/KeyboardFocusManager.class | Bin 0 -> 14539 bytes .../lib/java/awt/Label$AccessibleAWTLabel.class | Bin 0 -> 900 bytes libjava/classpath/lib/java/awt/Label.class | Bin 0 -> 2964 bytes libjava/classpath/lib/java/awt/LayoutManager.class | Bin 0 -> 402 bytes .../classpath/lib/java/awt/LayoutManager2.class | Bin 0 -> 433 bytes .../lib/java/awt/LightweightDispatcher.class | Bin 0 -> 4928 bytes ...$AccessibleAWTList$AccessibleAWTListChild.class | Bin 0 -> 1888 bytes .../lib/java/awt/List$AccessibleAWTList.class | Bin 0 -> 3495 bytes libjava/classpath/lib/java/awt/List.class | Bin 0 -> 11505 bytes .../lib/java/awt/MediaTracker$MediaEntry.class | Bin 0 -> 970 bytes libjava/classpath/lib/java/awt/MediaTracker.class | Bin 0 -> 5777 bytes .../lib/java/awt/Menu$AccessibleAWTMenu.class | Bin 0 -> 760 bytes libjava/classpath/lib/java/awt/Menu.class | Bin 0 -> 5501 bytes .../java/awt/MenuBar$AccessibleAWTMenuBar.class | Bin 0 -> 806 bytes libjava/classpath/lib/java/awt/MenuBar.class | Bin 0 -> 4947 bytes .../MenuComponent$AccessibleAWTMenuComponent.class | Bin 0 -> 6273 bytes libjava/classpath/lib/java/awt/MenuComponent.class | Bin 0 -> 4426 bytes libjava/classpath/lib/java/awt/MenuContainer.class | Bin 0 -> 262 bytes .../java/awt/MenuItem$AccessibleAWTMenuItem.class | Bin 0 -> 2507 bytes libjava/classpath/lib/java/awt/MenuItem.class | Bin 0 -> 5918 bytes libjava/classpath/lib/java/awt/MenuShortcut.class | Bin 0 -> 5566 bytes libjava/classpath/lib/java/awt/MouseInfo.class | Bin 0 -> 1744 bytes .../lib/java/awt/PageAttributes$ColorType.class | Bin 0 -> 720 bytes .../lib/java/awt/PageAttributes$MediaType.class | Bin 0 -> 8335 bytes .../PageAttributes$OrientationRequestedType.class | Bin 0 -> 777 bytes .../lib/java/awt/PageAttributes$OriginType.class | Bin 0 -> 727 bytes .../java/awt/PageAttributes$PrintQualityType.class | Bin 0 -> 788 bytes .../classpath/lib/java/awt/PageAttributes.class | Bin 0 -> 6150 bytes libjava/classpath/lib/java/awt/Paint.class | Bin 0 -> 311 bytes libjava/classpath/lib/java/awt/PaintContext.class | Bin 0 -> 246 bytes .../lib/java/awt/Panel$AccessibleAWTPanel.class | Bin 0 -> 773 bytes libjava/classpath/lib/java/awt/Panel.class | Bin 0 -> 1695 bytes libjava/classpath/lib/java/awt/Point.class | Bin 0 -> 2317 bytes libjava/classpath/lib/java/awt/PointerInfo.class | Bin 0 -> 656 bytes libjava/classpath/lib/java/awt/Polygon$1.class | Bin 0 -> 1484 bytes libjava/classpath/lib/java/awt/Polygon.class | Bin 0 -> 5355 bytes .../awt/PopupMenu$AccessibleAWTPopupMenu.class | Bin 0 -> 799 bytes libjava/classpath/lib/java/awt/PopupMenu.class | Bin 0 -> 2008 bytes libjava/classpath/lib/java/awt/PrintGraphics.class | Bin 0 -> 162 bytes libjava/classpath/lib/java/awt/PrintJob.class | Bin 0 -> 533 bytes libjava/classpath/lib/java/awt/Rectangle.class | Bin 0 -> 6927 bytes .../lib/java/awt/RenderingHints$Key.class | Bin 0 -> 818 bytes .../lib/java/awt/RenderingHints$KeyImpl.class | Bin 0 -> 956 bytes .../classpath/lib/java/awt/RenderingHints.class | Bin 0 -> 7812 bytes libjava/classpath/lib/java/awt/Robot$1.class | Bin 0 -> 526 bytes libjava/classpath/lib/java/awt/Robot.class | Bin 0 -> 5749 bytes .../awt/ScrollPane$AccessibleAWTScrollPane.class | Bin 0 -> 820 bytes libjava/classpath/lib/java/awt/ScrollPane.class | Bin 0 -> 8617 bytes .../lib/java/awt/ScrollPaneAdjustable.class | Bin 0 -> 4436 bytes .../awt/Scrollbar$AccessibleAWTScrollBar.class | Bin 0 -> 2221 bytes libjava/classpath/lib/java/awt/Scrollbar.class | Bin 0 -> 7765 bytes libjava/classpath/lib/java/awt/Shape.class | Bin 0 -> 514 bytes libjava/classpath/lib/java/awt/Stroke.class | Bin 0 -> 168 bytes libjava/classpath/lib/java/awt/SystemColor.class | Bin 0 -> 4272 bytes .../java/awt/TextArea$AccessibleAWTTextArea.class | Bin 0 -> 734 bytes libjava/classpath/lib/java/awt/TextArea.class | Bin 0 -> 6781 bytes .../TextComponent$AccessibleAWTTextComponent.class | Bin 0 -> 4191 bytes libjava/classpath/lib/java/awt/TextComponent.class | Bin 0 -> 5979 bytes .../awt/TextField$AccessibleAWTTextField.class | Bin 0 -> 743 bytes libjava/classpath/lib/java/awt/TextField.class | Bin 0 -> 6258 bytes libjava/classpath/lib/java/awt/TexturePaint.class | Bin 0 -> 1491 bytes libjava/classpath/lib/java/awt/Toolkit$1.class | Bin 0 -> 616 bytes libjava/classpath/lib/java/awt/Toolkit$2.class | Bin 0 -> 3538 bytes libjava/classpath/lib/java/awt/Toolkit.class | Bin 0 -> 14310 bytes libjava/classpath/lib/java/awt/Transparency.class | Bin 0 -> 262 bytes .../lib/java/awt/Window$AccessibleAWTWindow.class | Bin 0 -> 1243 bytes .../java/awt/Window$WindowBltBufferStrategy.class | Bin 0 -> 947 bytes .../java/awt/Window$WindowFlipBufferStrategy.class | Bin 0 -> 972 bytes libjava/classpath/lib/java/awt/Window.class | Bin 0 -> 17825 bytes .../lib/java/awt/color/CMMException.class | Bin 0 -> 429 bytes .../classpath/lib/java/awt/color/ColorSpace.class | Bin 0 -> 3046 bytes .../lib/java/awt/color/ICC_ColorSpace.class | Bin 0 -> 3606 bytes .../classpath/lib/java/awt/color/ICC_Profile.class | Bin 0 -> 18802 bytes .../lib/java/awt/color/ICC_ProfileGray.class | Bin 0 -> 1361 bytes .../lib/java/awt/color/ICC_ProfileRGB.class | Bin 0 -> 2417 bytes .../lib/java/awt/color/ProfileDataException.class | Bin 0 -> 453 bytes .../lib/java/awt/datatransfer/Clipboard.class | Bin 0 -> 3685 bytes .../lib/java/awt/datatransfer/ClipboardOwner.class | Bin 0 -> 230 bytes .../lib/java/awt/datatransfer/DataFlavor.class | Bin 0 -> 12089 bytes .../lib/java/awt/datatransfer/FlavorEvent.class | Bin 0 -> 423 bytes .../lib/java/awt/datatransfer/FlavorListener.class | Bin 0 -> 228 bytes .../lib/java/awt/datatransfer/FlavorMap.class | Bin 0 -> 507 bytes .../lib/java/awt/datatransfer/FlavorTable.class | Bin 0 -> 496 bytes .../lib/java/awt/datatransfer/MimeType.class | Bin 0 -> 4293 bytes .../awt/datatransfer/MimeTypeParseException.class | Bin 0 -> 547 bytes .../java/awt/datatransfer/StringSelection.class | Bin 0 -> 1799 bytes .../java/awt/datatransfer/SystemFlavorMap.class | Bin 0 -> 5169 bytes .../lib/java/awt/datatransfer/Transferable.class | Bin 0 -> 459 bytes .../datatransfer/UnsupportedFlavorException.class | Bin 0 -> 641 bytes .../classpath/lib/java/awt/dnd/Autoscroll.class | Bin 0 -> 209 bytes .../classpath/lib/java/awt/dnd/DnDConstants.class | Bin 0 -> 529 bytes .../lib/java/awt/dnd/DnDEventMulticaster.class | Bin 0 -> 1262 bytes .../lib/java/awt/dnd/DragGestureEvent.class | Bin 0 -> 3417 bytes .../lib/java/awt/dnd/DragGestureListener.class | Bin 0 -> 232 bytes .../lib/java/awt/dnd/DragGestureRecognizer.class | Bin 0 -> 4026 bytes .../classpath/lib/java/awt/dnd/DragSource.class | Bin 0 -> 7238 bytes .../lib/java/awt/dnd/DragSourceAdapter.class | Bin 0 -> 1104 bytes .../lib/java/awt/dnd/DragSourceContext.class | Bin 0 -> 5805 bytes .../lib/java/awt/dnd/DragSourceDragEvent.class | Bin 0 -> 1593 bytes .../lib/java/awt/dnd/DragSourceDropEvent.class | Bin 0 -> 1240 bytes .../lib/java/awt/dnd/DragSourceEvent.class | Bin 0 -> 1259 bytes .../lib/java/awt/dnd/DragSourceListener.class | Bin 0 -> 385 bytes .../java/awt/dnd/DragSourceMotionListener.class | Bin 0 -> 238 bytes .../dnd/DropTarget$DropTargetAutoScroller.class | Bin 0 -> 2504 bytes .../classpath/lib/java/awt/dnd/DropTarget.class | Bin 0 -> 6159 bytes .../lib/java/awt/dnd/DropTargetAdapter.class | Bin 0 -> 817 bytes .../dnd/DropTargetContext$TransferableProxy.class | Bin 0 -> 1371 bytes .../lib/java/awt/dnd/DropTargetContext.class | Bin 0 -> 3312 bytes .../lib/java/awt/dnd/DropTargetDragEvent.class | Bin 0 -> 2244 bytes .../lib/java/awt/dnd/DropTargetDropEvent.class | Bin 0 -> 2590 bytes .../lib/java/awt/dnd/DropTargetEvent.class | Bin 0 -> 629 bytes .../lib/java/awt/dnd/DropTargetListener.class | Bin 0 -> 378 bytes .../awt/dnd/InvalidDnDOperationException.class | Bin 0 -> 553 bytes .../java/awt/dnd/MouseDragGestureRecognizer.class | Bin 0 -> 2199 bytes .../java/awt/dnd/peer/DragSourceContextPeer.class | Bin 0 -> 457 bytes .../java/awt/dnd/peer/DropTargetContextPeer.class | Bin 0 -> 631 bytes .../lib/java/awt/dnd/peer/DropTargetPeer.class | Bin 0 -> 209 bytes .../lib/java/awt/event/AWTEventListener.class | Bin 0 -> 210 bytes .../lib/java/awt/event/AWTEventListenerProxy.class | Bin 0 -> 859 bytes .../classpath/lib/java/awt/event/ActionEvent.class | Bin 0 -> 2338 bytes .../lib/java/awt/event/ActionListener.class | Bin 0 -> 215 bytes .../lib/java/awt/event/AdjustmentEvent.class | Bin 0 -> 2301 bytes .../lib/java/awt/event/AdjustmentListener.class | Bin 0 -> 234 bytes .../lib/java/awt/event/ComponentAdapter.class | Bin 0 -> 765 bytes .../lib/java/awt/event/ComponentEvent.class | Bin 0 -> 1641 bytes .../lib/java/awt/event/ComponentListener.class | Bin 0 -> 301 bytes .../lib/java/awt/event/ContainerAdapter.class | Bin 0 -> 596 bytes .../lib/java/awt/event/ContainerEvent.class | Bin 0 -> 1507 bytes .../lib/java/awt/event/ContainerListener.class | Bin 0 -> 250 bytes .../lib/java/awt/event/FocusAdapter.class | Bin 0 -> 562 bytes .../classpath/lib/java/awt/event/FocusEvent.class | Bin 0 -> 1702 bytes .../lib/java/awt/event/FocusListener.class | Bin 0 -> 228 bytes .../java/awt/event/HierarchyBoundsAdapter.class | Bin 0 -> 618 bytes .../java/awt/event/HierarchyBoundsListener.class | Bin 0 -> 260 bytes .../lib/java/awt/event/HierarchyEvent.class | Bin 0 -> 2402 bytes .../lib/java/awt/event/HierarchyListener.class | Bin 0 -> 225 bytes .../classpath/lib/java/awt/event/InputEvent.class | Bin 0 -> 2833 bytes .../lib/java/awt/event/InputMethodEvent.class | Bin 0 -> 3854 bytes .../lib/java/awt/event/InputMethodListener.class | Bin 0 -> 268 bytes .../lib/java/awt/event/InvocationEvent.class | Bin 0 -> 2700 bytes .../classpath/lib/java/awt/event/ItemEvent.class | Bin 0 -> 1688 bytes .../lib/java/awt/event/ItemListener.class | Bin 0 -> 210 bytes .../classpath/lib/java/awt/event/KeyAdapter.class | Bin 0 -> 629 bytes .../classpath/lib/java/awt/event/KeyEvent.class | Bin 0 -> 15180 bytes .../classpath/lib/java/awt/event/KeyListener.class | Bin 0 -> 242 bytes .../lib/java/awt/event/MouseAdapter.class | Bin 0 -> 812 bytes .../classpath/lib/java/awt/event/MouseEvent.class | Bin 0 -> 3968 bytes .../lib/java/awt/event/MouseListener.class | Bin 0 -> 301 bytes .../lib/java/awt/event/MouseMotionAdapter.class | Bin 0 -> 588 bytes .../lib/java/awt/event/MouseMotionListener.class | Bin 0 -> 242 bytes .../lib/java/awt/event/MouseWheelEvent.class | Bin 0 -> 1770 bytes .../lib/java/awt/event/MouseWheelListener.class | Bin 0 -> 227 bytes .../classpath/lib/java/awt/event/PaintEvent.class | Bin 0 -> 1383 bytes .../classpath/lib/java/awt/event/TextEvent.class | Bin 0 -> 672 bytes .../lib/java/awt/event/TextListener.class | Bin 0 -> 210 bytes .../lib/java/awt/event/WindowAdapter.class | Bin 0 -> 1343 bytes .../classpath/lib/java/awt/event/WindowEvent.class | Bin 0 -> 2974 bytes .../lib/java/awt/event/WindowFocusListener.class | Bin 0 -> 253 bytes .../lib/java/awt/event/WindowListener.class | Bin 0 -> 367 bytes .../lib/java/awt/event/WindowStateListener.class | Bin 0 -> 228 bytes .../lib/java/awt/font/FontRenderContext.class | Bin 0 -> 1637 bytes .../lib/java/awt/font/GlyphJustificationInfo.class | Bin 0 -> 1006 bytes .../classpath/lib/java/awt/font/GlyphMetrics.class | Bin 0 -> 2130 bytes .../classpath/lib/java/awt/font/GlyphVector.class | Bin 0 -> 3366 bytes .../lib/java/awt/font/GraphicAttribute.class | Bin 0 -> 1382 bytes .../lib/java/awt/font/ImageGraphicAttribute.class | Bin 0 -> 2224 bytes .../lib/java/awt/font/LineBreakMeasurer.class | Bin 0 -> 2685 bytes .../classpath/lib/java/awt/font/LineMetrics.class | Bin 0 -> 595 bytes .../lib/java/awt/font/MultipleMaster.class | Bin 0 -> 357 bytes .../lib/java/awt/font/NumericShaper.class | Bin 0 -> 4638 bytes libjava/classpath/lib/java/awt/font/OpenType.class | Bin 0 -> 1965 bytes .../lib/java/awt/font/ShapeGraphicAttribute.class | Bin 0 -> 2387 bytes .../lib/java/awt/font/TextAttribute.class | Bin 0 -> 4769 bytes .../classpath/lib/java/awt/font/TextHitInfo.class | Bin 0 -> 2065 bytes .../lib/java/awt/font/TextLayout$CaretPolicy.class | Bin 0 -> 1005 bytes .../lib/java/awt/font/TextLayout$Run.class | Bin 0 -> 946 bytes .../classpath/lib/java/awt/font/TextLayout.class | Bin 0 -> 23555 bytes .../classpath/lib/java/awt/font/TextMeasurer.class | Bin 0 -> 2843 bytes .../lib/java/awt/font/TransformAttribute.class | Bin 0 -> 989 bytes .../lib/java/awt/geom/AffineTransform.class | Bin 0 -> 12490 bytes .../lib/java/awt/geom/Arc2D$ArcIterator.class | Bin 0 -> 3696 bytes .../classpath/lib/java/awt/geom/Arc2D$Double.class | Bin 0 -> 2281 bytes .../classpath/lib/java/awt/geom/Arc2D$Float.class | Bin 0 -> 2314 bytes libjava/classpath/lib/java/awt/geom/Arc2D.class | Bin 0 -> 8744 bytes .../geom/Area$AreaIterator$IteratorSegment.class | Bin 0 -> 630 bytes .../lib/java/awt/geom/Area$AreaIterator.class | Bin 0 -> 2481 bytes .../lib/java/awt/geom/Area$CubicSegment.class | Bin 0 -> 8297 bytes .../lib/java/awt/geom/Area$Intersection.class | Bin 0 -> 672 bytes .../lib/java/awt/geom/Area$LineSegment.class | Bin 0 -> 5193 bytes .../lib/java/awt/geom/Area$QuadSegment.class | Bin 0 -> 6012 bytes .../classpath/lib/java/awt/geom/Area$Segment.class | Bin 0 -> 6120 bytes libjava/classpath/lib/java/awt/geom/Area.class | Bin 0 -> 23638 bytes .../lib/java/awt/geom/CubicCurve2D$1.class | Bin 0 -> 2038 bytes .../lib/java/awt/geom/CubicCurve2D$Double.class | Bin 0 -> 2454 bytes .../lib/java/awt/geom/CubicCurve2D$Float.class | Bin 0 -> 2694 bytes .../classpath/lib/java/awt/geom/CubicCurve2D.class | Bin 0 -> 9086 bytes .../classpath/lib/java/awt/geom/Dimension2D.class | Bin 0 -> 893 bytes .../lib/java/awt/geom/Ellipse2D$Double.class | Bin 0 -> 1308 bytes .../lib/java/awt/geom/Ellipse2D$Float.class | Bin 0 -> 1459 bytes .../classpath/lib/java/awt/geom/Ellipse2D.class | Bin 0 -> 1989 bytes .../lib/java/awt/geom/FlatteningPathIterator.class | Bin 0 -> 4030 bytes .../awt/geom/GeneralPath$GeneralPathIterator.class | Bin 0 -> 1905 bytes .../classpath/lib/java/awt/geom/GeneralPath.class | Bin 0 -> 10364 bytes .../java/awt/geom/IllegalPathStateException.class | Bin 0 -> 543 bytes libjava/classpath/lib/java/awt/geom/Line2D$1.class | Bin 0 -> 1797 bytes .../lib/java/awt/geom/Line2D$Double.class | Bin 0 -> 1886 bytes .../classpath/lib/java/awt/geom/Line2D$Float.class | Bin 0 -> 2038 bytes libjava/classpath/lib/java/awt/geom/Line2D.class | Bin 0 -> 7219 bytes .../awt/geom/NoninvertibleTransformException.class | Bin 0 -> 471 bytes .../classpath/lib/java/awt/geom/PathIterator.class | Bin 0 -> 497 bytes .../lib/java/awt/geom/Point2D$Double.class | Bin 0 -> 1125 bytes .../lib/java/awt/geom/Point2D$Float.class | Bin 0 -> 1232 bytes libjava/classpath/lib/java/awt/geom/Point2D.class | Bin 0 -> 2115 bytes .../lib/java/awt/geom/QuadCurve2D$1.class | Bin 0 -> 1927 bytes .../lib/java/awt/geom/QuadCurve2D$Double.class | Bin 0 -> 2038 bytes .../lib/java/awt/geom/QuadCurve2D$Float.class | Bin 0 -> 2232 bytes .../classpath/lib/java/awt/geom/QuadCurve2D.class | Bin 0 -> 7376 bytes .../lib/java/awt/geom/Rectangle2D$1.class | Bin 0 -> 1986 bytes .../lib/java/awt/geom/Rectangle2D$Double.class | Bin 0 -> 2839 bytes .../lib/java/awt/geom/Rectangle2D$Float.class | Bin 0 -> 3146 bytes .../classpath/lib/java/awt/geom/Rectangle2D.class | Bin 0 -> 5149 bytes .../lib/java/awt/geom/RectangularShape.class | Bin 0 -> 3979 bytes .../lib/java/awt/geom/RoundRectangle2D$1.class | Bin 0 -> 3069 bytes .../java/awt/geom/RoundRectangle2D$Double.class | Bin 0 -> 1665 bytes .../lib/java/awt/geom/RoundRectangle2D$Float.class | Bin 0 -> 1862 bytes .../lib/java/awt/geom/RoundRectangle2D.class | Bin 0 -> 2622 bytes .../classpath/lib/java/awt/im/InputContext.class | Bin 0 -> 5168 bytes .../lib/java/awt/im/InputMethodHighlight.class | Bin 0 -> 1841 bytes .../lib/java/awt/im/InputMethodRequests.class | Bin 0 -> 623 bytes .../classpath/lib/java/awt/im/InputSubset.class | Bin 0 -> 915 bytes .../lib/java/awt/im/spi/InputMethod.class | Bin 0 -> 735 bytes .../lib/java/awt/im/spi/InputMethodContext.class | Bin 0 -> 538 bytes .../java/awt/im/spi/InputMethodDescriptor.class | Bin 0 -> 540 bytes .../lib/java/awt/image/AffineTransformOp.class | Bin 0 -> 9727 bytes .../java/awt/image/AreaAveragingScaleFilter.class | Bin 0 -> 3621 bytes .../lib/java/awt/image/BandCombineOp.class | Bin 0 -> 3170 bytes .../lib/java/awt/image/BandedSampleModel.class | Bin 0 -> 10990 bytes .../lib/java/awt/image/BufferStrategy.class | Bin 0 -> 482 bytes .../lib/java/awt/image/BufferedImage$1.class | Bin 0 -> 2235 bytes .../lib/java/awt/image/BufferedImage.class | Bin 0 -> 14436 bytes .../lib/java/awt/image/BufferedImageFilter.class | Bin 0 -> 2898 bytes .../lib/java/awt/image/BufferedImageOp.class | Bin 0 -> 603 bytes .../lib/java/awt/image/ByteLookupTable.class | Bin 0 -> 1414 bytes .../lib/java/awt/image/ColorConvertOp.class | Bin 0 -> 7929 bytes .../java/awt/image/ColorModel$SRGBColorModel.class | Bin 0 -> 1142 bytes .../classpath/lib/java/awt/image/ColorModel.class | Bin 0 -> 9110 bytes .../lib/java/awt/image/ComponentColorModel.class | Bin 0 -> 7615 bytes .../lib/java/awt/image/ComponentSampleModel.class | Bin 0 -> 10746 bytes .../classpath/lib/java/awt/image/ConvolveOp.class | Bin 0 -> 5812 bytes .../lib/java/awt/image/CropImageFilter.class | Bin 0 -> 2690 bytes .../classpath/lib/java/awt/image/DataBuffer.class | Bin 0 -> 3033 bytes .../lib/java/awt/image/DataBufferByte.class | Bin 0 -> 1893 bytes .../lib/java/awt/image/DataBufferDouble.class | Bin 0 -> 2771 bytes .../lib/java/awt/image/DataBufferFloat.class | Bin 0 -> 2778 bytes .../lib/java/awt/image/DataBufferInt.class | Bin 0 -> 1875 bytes .../lib/java/awt/image/DataBufferShort.class | Bin 0 -> 1888 bytes .../lib/java/awt/image/DataBufferUShort.class | Bin 0 -> 1994 bytes .../lib/java/awt/image/DirectColorModel.class | Bin 0 -> 6947 bytes .../lib/java/awt/image/FilteredImageSource.class | Bin 0 -> 1902 bytes .../lib/java/awt/image/ImageConsumer.class | Bin 0 -> 816 bytes .../classpath/lib/java/awt/image/ImageFilter.class | Bin 0 -> 3039 bytes .../lib/java/awt/image/ImageObserver.class | Bin 0 -> 438 bytes .../lib/java/awt/image/ImageProducer.class | Bin 0 -> 328 bytes .../lib/java/awt/image/ImagingOpException.class | Bin 0 -> 447 bytes .../lib/java/awt/image/IndexColorModel.class | Bin 0 -> 7385 bytes libjava/classpath/lib/java/awt/image/Kernel.class | Bin 0 -> 1509 bytes .../classpath/lib/java/awt/image/LookupOp.class | Bin 0 -> 4856 bytes .../classpath/lib/java/awt/image/LookupTable.class | Bin 0 -> 688 bytes .../lib/java/awt/image/MemoryImageSource.class | Bin 0 -> 6116 bytes .../awt/image/MultiPixelPackedSampleModel.class | Bin 0 -> 7107 bytes .../lib/java/awt/image/PackedColorModel.class | Bin 0 -> 4057 bytes .../lib/java/awt/image/PixelGrabber$1.class | Bin 0 -> 826 bytes .../lib/java/awt/image/PixelGrabber.class | Bin 0 -> 6014 bytes .../awt/image/PixelInterleavedSampleModel.class | Bin 0 -> 1024 bytes .../lib/java/awt/image/RGBImageFilter.class | Bin 0 -> 3344 bytes libjava/classpath/lib/java/awt/image/Raster.class | Bin 0 -> 11880 bytes .../lib/java/awt/image/RasterFormatException.class | Bin 0 -> 456 bytes .../classpath/lib/java/awt/image/RasterOp.class | Bin 0 -> 545 bytes .../lib/java/awt/image/RenderedImage.class | Bin 0 -> 981 bytes .../lib/java/awt/image/ReplicateScaleFilter.class | Bin 0 -> 3101 bytes .../classpath/lib/java/awt/image/RescaleOp.class | Bin 0 -> 5920 bytes .../classpath/lib/java/awt/image/SampleModel.class | Bin 0 -> 9352 bytes .../lib/java/awt/image/ShortLookupTable.class | Bin 0 -> 1417 bytes .../awt/image/SinglePixelPackedSampleModel.class | Bin 0 -> 7808 bytes .../lib/java/awt/image/TileObserver.class | Bin 0 -> 188 bytes .../lib/java/awt/image/VolatileImage.class | Bin 0 -> 1206 bytes .../lib/java/awt/image/WritableRaster.class | Bin 0 -> 7103 bytes .../lib/java/awt/image/WritableRenderedImage.class | Bin 0 -> 532 bytes .../ContextualRenderedImageFactory.class | Bin 0 -> 834 bytes .../java/awt/image/renderable/ParameterBlock.class | Bin 0 -> 7441 bytes .../java/awt/image/renderable/RenderContext.class | Bin 0 -> 2746 bytes .../awt/image/renderable/RenderableImage.class | Bin 0 -> 827 bytes .../awt/image/renderable/RenderableImageOp.class | Bin 0 -> 4519 bytes .../image/renderable/RenderableImageProducer.class | Bin 0 -> 4012 bytes .../image/renderable/RenderedImageFactory.class | Bin 0 -> 266 bytes .../classpath/lib/java/awt/peer/ButtonPeer.class | Bin 0 -> 193 bytes .../classpath/lib/java/awt/peer/CanvasPeer.class | Bin 0 -> 150 bytes .../lib/java/awt/peer/CheckboxMenuItemPeer.class | Bin 0 -> 195 bytes .../classpath/lib/java/awt/peer/CheckboxPeer.class | Bin 0 -> 280 bytes .../classpath/lib/java/awt/peer/ChoicePeer.class | Bin 0 -> 274 bytes .../lib/java/awt/peer/ComponentPeer.class | Bin 0 -> 2110 bytes .../lib/java/awt/peer/ContainerPeer.class | Bin 0 -> 426 bytes .../classpath/lib/java/awt/peer/DialogPeer.class | Bin 0 -> 220 bytes .../lib/java/awt/peer/FileDialogPeer.class | Bin 0 -> 278 bytes libjava/classpath/lib/java/awt/peer/FontPeer.class | Bin 0 -> 111 bytes .../classpath/lib/java/awt/peer/FramePeer.class | Bin 0 -> 486 bytes .../classpath/lib/java/awt/peer/LabelPeer.class | Bin 0 -> 220 bytes .../lib/java/awt/peer/LightweightPeer.class | Bin 0 -> 160 bytes libjava/classpath/lib/java/awt/peer/ListPeer.class | Bin 0 -> 562 bytes .../classpath/lib/java/awt/peer/MenuBarPeer.class | Bin 0 -> 242 bytes .../lib/java/awt/peer/MenuComponentPeer.class | Bin 0 -> 192 bytes .../classpath/lib/java/awt/peer/MenuItemPeer.class | Bin 0 -> 270 bytes libjava/classpath/lib/java/awt/peer/MenuPeer.class | Bin 0 -> 242 bytes .../lib/java/awt/peer/MouseInfoPeer.class | Bin 0 -> 225 bytes .../classpath/lib/java/awt/peer/PanelPeer.class | Bin 0 -> 148 bytes .../lib/java/awt/peer/PopupMenuPeer.class | Bin 0 -> 224 bytes .../classpath/lib/java/awt/peer/RobotPeer.class | Bin 0 -> 333 bytes .../lib/java/awt/peer/ScrollPanePeer.class | Bin 0 -> 356 bytes .../lib/java/awt/peer/ScrollbarPeer.class | Bin 0 -> 247 bytes .../classpath/lib/java/awt/peer/TextAreaPeer.class | Bin 0 -> 417 bytes .../lib/java/awt/peer/TextComponentPeer.class | Bin 0 -> 612 bytes .../lib/java/awt/peer/TextFieldPeer.class | Bin 0 -> 340 bytes .../classpath/lib/java/awt/peer/WindowPeer.class | Bin 0 -> 254 bytes libjava/classpath/lib/java/awt/print/Book.class | Bin 0 -> 1689 bytes .../lib/java/awt/print/NoPrinterJob.class | Bin 0 -> 1976 bytes .../classpath/lib/java/awt/print/PageFormat.class | Bin 0 -> 2188 bytes .../classpath/lib/java/awt/print/Pageable.class | Bin 0 -> 398 bytes libjava/classpath/lib/java/awt/print/Paper.class | Bin 0 -> 1511 bytes .../classpath/lib/java/awt/print/Printable.class | Bin 0 -> 334 bytes .../lib/java/awt/print/PrinterAbortException.class | Bin 0 -> 542 bytes .../lib/java/awt/print/PrinterException.class | Bin 0 -> 515 bytes .../lib/java/awt/print/PrinterGraphics.class | Bin 0 -> 182 bytes .../lib/java/awt/print/PrinterIOException.class | Bin 0 -> 873 bytes .../classpath/lib/java/awt/print/PrinterJob.class | Bin 0 -> 2499 bytes .../lib/java/beans/AppletInitializer.class | Bin 0 -> 254 bytes .../classpath/lib/java/beans/BeanDescriptor.class | Bin 0 -> 1332 bytes libjava/classpath/lib/java/beans/BeanInfo.class | Bin 0 -> 722 bytes libjava/classpath/lib/java/beans/Beans.class | Bin 0 -> 4626 bytes libjava/classpath/lib/java/beans/Customizer.class | Bin 0 -> 272 bytes .../java/beans/DefaultPersistenceDelegate.class | Bin 0 -> 3915 bytes libjava/classpath/lib/java/beans/DesignMode.class | Bin 0 -> 256 bytes libjava/classpath/lib/java/beans/Encoder$1.class | Bin 0 -> 623 bytes libjava/classpath/lib/java/beans/Encoder.class | Bin 0 -> 5974 bytes .../classpath/lib/java/beans/EventHandler.class | Bin 0 -> 6940 bytes .../lib/java/beans/EventSetDescriptor.class | Bin 0 -> 10501 bytes .../lib/java/beans/ExceptionListener.class | Bin 0 -> 179 bytes .../classpath/lib/java/beans/ExplicitInfo.class | Bin 0 -> 4484 bytes libjava/classpath/lib/java/beans/Expression.class | Bin 0 -> 1633 bytes .../lib/java/beans/FeatureDescriptor.class | Bin 0 -> 2393 bytes .../java/beans/IndexedPropertyChangeEvent.class | Bin 0 -> 811 bytes .../lib/java/beans/IndexedPropertyDescriptor.class | Bin 0 -> 5909 bytes .../lib/java/beans/IntrospectionException.class | Bin 0 -> 440 bytes .../classpath/lib/java/beans/Introspector.class | Bin 0 -> 7027 bytes .../lib/java/beans/MethodDescriptor.class | Bin 0 -> 1028 bytes .../lib/java/beans/ParameterDescriptor.class | Bin 0 -> 316 bytes .../lib/java/beans/PersistenceDelegate.class | Bin 0 -> 1665 bytes .../lib/java/beans/PropertyChangeEvent.class | Bin 0 -> 1375 bytes .../lib/java/beans/PropertyChangeListener.class | Bin 0 -> 230 bytes .../java/beans/PropertyChangeListenerProxy.class | Bin 0 -> 1124 bytes .../lib/java/beans/PropertyChangeSupport.class | Bin 0 -> 7022 bytes .../lib/java/beans/PropertyDescriptor.class | Bin 0 -> 7963 bytes .../classpath/lib/java/beans/PropertyEditor.class | Bin 0 -> 727 bytes .../lib/java/beans/PropertyEditorManager.class | Bin 0 -> 3761 bytes .../lib/java/beans/PropertyEditorSupport.class | Bin 0 -> 2744 bytes .../lib/java/beans/PropertyVetoException.class | Bin 0 -> 708 bytes .../classpath/lib/java/beans/SimpleBeanInfo.class | Bin 0 -> 1664 bytes libjava/classpath/lib/java/beans/Statement.class | Bin 0 -> 6040 bytes .../lib/java/beans/VetoableChangeListener.class | Bin 0 -> 291 bytes .../java/beans/VetoableChangeListenerProxy.class | Bin 0 -> 1185 bytes .../lib/java/beans/VetoableChangeSupport.class | Bin 0 -> 6761 bytes libjava/classpath/lib/java/beans/Visibility.class | Bin 0 -> 207 bytes libjava/classpath/lib/java/beans/XMLDecoder.class | Bin 0 -> 2926 bytes libjava/classpath/lib/java/beans/XMLEncoder.class | Bin 0 -> 3443 bytes .../lib/java/beans/beancontext/BeanContext.class | Bin 0 -> 983 bytes .../java/beans/beancontext/BeanContextChild.class | Bin 0 -> 598 bytes .../BeanContextChildComponentProxy.class | Bin 0 -> 212 bytes .../beancontext/BeanContextChildSupport.class | Bin 0 -> 4168 bytes .../beancontext/BeanContextContainerProxy.class | Bin 0 -> 202 bytes .../java/beans/beancontext/BeanContextEvent.class | Bin 0 -> 1031 bytes .../beancontext/BeanContextMembershipEvent.class | Bin 0 -> 1426 bytes .../BeanContextMembershipListener.class | Bin 0 -> 300 bytes .../java/beans/beancontext/BeanContextProxy.class | Bin 0 -> 212 bytes .../BeanContextServiceAvailableEvent.class | Bin 0 -> 1228 bytes .../beancontext/BeanContextServiceProvider.class | Bin 0 -> 531 bytes .../BeanContextServiceProviderBeanInfo.class | Bin 0 -> 256 bytes .../BeanContextServiceRevokedEvent.class | Bin 0 -> 1387 bytes .../BeanContextServiceRevokedListener.class | Bin 0 -> 287 bytes .../beans/beancontext/BeanContextServices.class | Bin 0 -> 1130 bytes .../beancontext/BeanContextServicesListener.class | Bin 0 -> 312 bytes .../BeanContextServicesSupport$BCSSChild.class | Bin 0 -> 892 bytes ...tServicesSupport$BCSSProxyServiceProvider.class | Bin 0 -> 2093 bytes ...ontextServicesSupport$BCSSServiceProvider.class | Bin 0 -> 1471 bytes .../BeanContextServicesSupport$Request.class | Bin 0 -> 837 bytes .../BeanContextServicesSupport$ServiceLease.class | Bin 0 -> 996 bytes ...BeanContextServicesSupport$ServiceRequest.class | Bin 0 -> 1145 bytes .../beancontext/BeanContextServicesSupport.class | Bin 0 -> 12765 bytes .../beancontext/BeanContextSupport$BCSChild.class | Bin 0 -> 1055 bytes .../BeanContextSupport$BCSIterator.class | Bin 0 -> 829 bytes .../beans/beancontext/BeanContextSupport.class | Bin 0 -> 15564 bytes .../lib/java/io/BufferedInputStream.class | Bin 0 -> 2997 bytes .../lib/java/io/BufferedOutputStream.class | Bin 0 -> 1318 bytes libjava/classpath/lib/java/io/BufferedReader.class | Bin 0 -> 5190 bytes libjava/classpath/lib/java/io/BufferedWriter.class | Bin 0 -> 2423 bytes .../lib/java/io/ByteArrayInputStream.class | Bin 0 -> 1661 bytes .../lib/java/io/ByteArrayOutputStream.class | Bin 0 -> 2496 bytes .../classpath/lib/java/io/CharArrayReader.class | Bin 0 -> 2503 bytes .../classpath/lib/java/io/CharArrayWriter.class | Bin 0 -> 3702 bytes .../lib/java/io/CharConversionException.class | Bin 0 -> 522 bytes libjava/classpath/lib/java/io/Closeable.class | Bin 0 -> 177 bytes libjava/classpath/lib/java/io/DataInput.class | Bin 0 -> 781 bytes .../classpath/lib/java/io/DataInputStream.class | Bin 0 -> 5170 bytes libjava/classpath/lib/java/io/DataOutput.class | Bin 0 -> 623 bytes .../classpath/lib/java/io/DataOutputStream.class | Bin 0 -> 3626 bytes .../classpath/lib/java/io/DeleteFileHelper$1.class | Bin 0 -> 739 bytes .../classpath/lib/java/io/DeleteFileHelper.class | Bin 0 -> 1228 bytes libjava/classpath/lib/java/io/EOFException.class | Bin 0 -> 489 bytes libjava/classpath/lib/java/io/Externalizable.class | Bin 0 -> 345 bytes libjava/classpath/lib/java/io/File.class | Bin 0 -> 13330 bytes libjava/classpath/lib/java/io/FileDescriptor.class | Bin 0 -> 1346 bytes libjava/classpath/lib/java/io/FileFilter.class | Bin 0 -> 146 bytes .../classpath/lib/java/io/FileInputStream.class | Bin 0 -> 3029 bytes .../lib/java/io/FileNotFoundException.class | Bin 0 -> 516 bytes .../classpath/lib/java/io/FileOutputStream.class | Bin 0 -> 2903 bytes libjava/classpath/lib/java/io/FilePermission.class | Bin 0 -> 3406 bytes libjava/classpath/lib/java/io/FileReader.class | Bin 0 -> 774 bytes libjava/classpath/lib/java/io/FileWriter.class | Bin 0 -> 1099 bytes libjava/classpath/lib/java/io/FilenameFilter.class | Bin 0 -> 172 bytes .../classpath/lib/java/io/FilterInputStream.class | Bin 0 -> 1405 bytes .../classpath/lib/java/io/FilterOutputStream.class | Bin 0 -> 1060 bytes libjava/classpath/lib/java/io/FilterReader.class | Bin 0 -> 1350 bytes libjava/classpath/lib/java/io/FilterWriter.class | Bin 0 -> 1112 bytes libjava/classpath/lib/java/io/Flushable.class | Bin 0 -> 177 bytes libjava/classpath/lib/java/io/IOException.class | Bin 0 -> 486 bytes libjava/classpath/lib/java/io/InputStream.class | Bin 0 -> 1659 bytes .../classpath/lib/java/io/InputStreamReader.class | Bin 0 -> 3729 bytes .../lib/java/io/InterruptedIOException.class | Bin 0 -> 680 bytes .../lib/java/io/InvalidClassException.class | Bin 0 -> 1027 bytes .../lib/java/io/InvalidObjectException.class | Bin 0 -> 448 bytes .../lib/java/io/LineNumberInputStream.class | Bin 0 -> 1926 bytes .../classpath/lib/java/io/LineNumberReader.class | Bin 0 -> 3594 bytes .../classpath/lib/java/io/NotActiveException.class | Bin 0 -> 517 bytes .../lib/java/io/NotSerializableException.class | Bin 0 -> 535 bytes libjava/classpath/lib/java/io/ObjectInput.class | Bin 0 -> 447 bytes .../lib/java/io/ObjectInputStream$1.class | Bin 0 -> 1152 bytes .../lib/java/io/ObjectInputStream$2.class | Bin 0 -> 6148 bytes .../lib/java/io/ObjectInputStream$GetField.class | Bin 0 -> 1025 bytes .../ObjectInputStream$ValidatorAndPriority.class | Bin 0 -> 786 bytes .../classpath/lib/java/io/ObjectInputStream.class | Bin 0 -> 29187 bytes .../lib/java/io/ObjectInputValidation.class | Bin 0 -> 221 bytes libjava/classpath/lib/java/io/ObjectOutput.class | Bin 0 -> 378 bytes .../lib/java/io/ObjectOutputStream$1.class | Bin 0 -> 4699 bytes .../lib/java/io/ObjectOutputStream$PutField.class | Bin 0 -> 818 bytes .../classpath/lib/java/io/ObjectOutputStream.class | Bin 0 -> 17829 bytes .../lib/java/io/ObjectStreamClass$1.class | Bin 0 -> 946 bytes .../lib/java/io/ObjectStreamClass$2.class | Bin 0 -> 834 bytes .../io/ObjectStreamClass$InterfaceComparator.class | Bin 0 -> 862 bytes .../io/ObjectStreamClass$MemberComparator.class | Bin 0 -> 1121 bytes .../classpath/lib/java/io/ObjectStreamClass.class | Bin 0 -> 17794 bytes .../lib/java/io/ObjectStreamConstants.class | Bin 0 -> 1529 bytes .../lib/java/io/ObjectStreamException.class | Bin 0 -> 516 bytes .../lib/java/io/ObjectStreamField$1.class | Bin 0 -> 810 bytes .../classpath/lib/java/io/ObjectStreamField.class | Bin 0 -> 6794 bytes .../lib/java/io/OptionalDataException.class | Bin 0 -> 498 bytes libjava/classpath/lib/java/io/OutputStream.class | Bin 0 -> 1018 bytes .../classpath/lib/java/io/OutputStreamWriter.class | Bin 0 -> 3952 bytes .../classpath/lib/java/io/PipedInputStream.class | Bin 0 -> 2836 bytes .../classpath/lib/java/io/PipedOutputStream.class | Bin 0 -> 1518 bytes libjava/classpath/lib/java/io/PipedReader.class | Bin 0 -> 2980 bytes libjava/classpath/lib/java/io/PipedWriter.class | Bin 0 -> 1514 bytes libjava/classpath/lib/java/io/PrintStream.class | Bin 0 -> 7581 bytes libjava/classpath/lib/java/io/PrintWriter.class | Bin 0 -> 7841 bytes .../lib/java/io/PushbackInputStream.class | Bin 0 -> 2552 bytes libjava/classpath/lib/java/io/PushbackReader.class | Bin 0 -> 3232 bytes .../classpath/lib/java/io/RandomAccessFile.class | Bin 0 -> 7493 bytes libjava/classpath/lib/java/io/Reader.class | Bin 0 -> 1933 bytes .../lib/java/io/SequenceInputStream.class | Bin 0 -> 1812 bytes libjava/classpath/lib/java/io/Serializable.class | Bin 0 -> 113 bytes .../lib/java/io/SerializablePermission.class | Bin 0 -> 1169 bytes .../lib/java/io/StreamCorruptedException.class | Bin 0 -> 535 bytes .../classpath/lib/java/io/StreamTokenizer.class | Bin 0 -> 6870 bytes .../lib/java/io/StringBufferInputStream.class | Bin 0 -> 1413 bytes libjava/classpath/lib/java/io/StringReader.class | Bin 0 -> 2210 bytes libjava/classpath/lib/java/io/StringWriter.class | Bin 0 -> 2955 bytes .../lib/java/io/SyncFailedException.class | Bin 0 -> 429 bytes .../lib/java/io/UTFDataFormatException.class | Bin 0 -> 519 bytes .../lib/java/io/UnsupportedEncodingException.class | Bin 0 -> 537 bytes .../lib/java/io/VMObjectInputStream.class | Bin 0 -> 472 bytes .../lib/java/io/VMObjectStreamClass.class | Bin 0 -> 1042 bytes .../lib/java/io/WriteAbortedException.class | Bin 0 -> 1176 bytes libjava/classpath/lib/java/io/Writer.class | Bin 0 -> 2355 bytes .../lib/java/lang/AbstractMethodError.class | Bin 0 -> 527 bytes libjava/classpath/lib/java/lang/Appendable.class | Bin 0 -> 344 bytes .../lib/java/lang/ArithmeticException.class | Bin 0 -> 515 bytes .../java/lang/ArrayIndexOutOfBoundsException.class | Bin 0 -> 827 bytes .../lib/java/lang/ArrayStoreException.class | Bin 0 -> 515 bytes .../classpath/lib/java/lang/AssertionError.class | Bin 0 -> 1646 bytes libjava/classpath/lib/java/lang/Boolean.class | Bin 0 -> 2395 bytes libjava/classpath/lib/java/lang/Byte.class | Bin 0 -> 3077 bytes libjava/classpath/lib/java/lang/CharSequence.class | Bin 0 -> 257 bytes .../classpath/lib/java/lang/Character$Subset.class | Bin 0 -> 795 bytes .../lib/java/lang/Character$UnicodeBlock.class | Bin 0 -> 17734 bytes libjava/classpath/lib/java/lang/Character.class | Bin 0 -> 11431 bytes libjava/classpath/lib/java/lang/Class.class | Bin 0 -> 14910 bytes .../lib/java/lang/ClassCastException.class | Bin 0 -> 512 bytes .../lib/java/lang/ClassCircularityError.class | Bin 0 -> 517 bytes .../classpath/lib/java/lang/ClassFormatError.class | Bin 0 -> 502 bytes .../lib/java/lang/ClassLoader$AnnotationsKey.class | Bin 0 -> 1160 bytes libjava/classpath/lib/java/lang/ClassLoader.class | Bin 0 -> 11539 bytes .../lib/java/lang/ClassNotFoundException.class | Bin 0 -> 894 bytes .../lib/java/lang/CloneNotSupportedException.class | Bin 0 -> 529 bytes libjava/classpath/lib/java/lang/Cloneable.class | Bin 0 -> 109 bytes libjava/classpath/lib/java/lang/Comparable.class | Bin 0 -> 235 bytes libjava/classpath/lib/java/lang/Compiler.class | Bin 0 -> 993 bytes libjava/classpath/lib/java/lang/Deprecated.class | Bin 0 -> 331 bytes libjava/classpath/lib/java/lang/Double.class | Bin 0 -> 4562 bytes libjava/classpath/lib/java/lang/EcosProcess.class | Bin 0 -> 1047 bytes libjava/classpath/lib/java/lang/Enum.class | Bin 0 -> 2931 bytes .../lang/EnumConstantNotPresentException.class | Bin 0 -> 1266 bytes libjava/classpath/lib/java/lang/Error.class | Bin 0 -> 753 bytes libjava/classpath/lib/java/lang/Exception.class | Bin 0 -> 765 bytes .../java/lang/ExceptionInInitializerError.class | Bin 0 -> 963 bytes libjava/classpath/lib/java/lang/Float.class | Bin 0 -> 4642 bytes .../lib/java/lang/IllegalAccessError.class | Bin 0 -> 524 bytes .../lib/java/lang/IllegalAccessException.class | Bin 0 -> 517 bytes .../lib/java/lang/IllegalArgumentException.class | Bin 0 -> 827 bytes .../java/lang/IllegalMonitorStateException.class | Bin 0 -> 542 bytes .../lib/java/lang/IllegalStateException.class | Bin 0 -> 818 bytes .../java/lang/IllegalThreadStateException.class | Bin 0 -> 547 bytes .../java/lang/IncompatibleClassChangeError.class | Bin 0 -> 538 bytes .../lib/java/lang/IndexOutOfBoundsException.class | Bin 0 -> 533 bytes .../lib/java/lang/InheritableThreadLocal.class | Bin 0 -> 1623 bytes .../lib/java/lang/InstantiationError.class | Bin 0 -> 524 bytes .../lib/java/lang/InstantiationException.class | Bin 0 -> 517 bytes libjava/classpath/lib/java/lang/Integer.class | Bin 0 -> 6722 bytes .../classpath/lib/java/lang/InternalError.class | Bin 0 -> 500 bytes .../lib/java/lang/InterruptedException.class | Bin 0 -> 511 bytes libjava/classpath/lib/java/lang/Iterable.class | Bin 0 -> 252 bytes libjava/classpath/lib/java/lang/LinkageError.class | Bin 0 -> 483 bytes libjava/classpath/lib/java/lang/Long.class | Bin 0 -> 6360 bytes libjava/classpath/lib/java/lang/Math.class | Bin 0 -> 3628 bytes .../lib/java/lang/NegativeArraySizeException.class | Bin 0 -> 536 bytes .../lib/java/lang/NoClassDefFoundError.class | Bin 0 -> 514 bytes .../classpath/lib/java/lang/NoSuchFieldError.class | Bin 0 -> 518 bytes .../lib/java/lang/NoSuchFieldException.class | Bin 0 -> 511 bytes .../lib/java/lang/NoSuchMethodError.class | Bin 0 -> 521 bytes .../lib/java/lang/NoSuchMethodException.class | Bin 0 -> 514 bytes .../lib/java/lang/NullPointerException.class | Bin 0 -> 518 bytes libjava/classpath/lib/java/lang/Number.class | Bin 0 -> 967 bytes .../lib/java/lang/NumberFormatException.class | Bin 0 -> 529 bytes libjava/classpath/lib/java/lang/Object.class | Bin 0 -> 1670 bytes .../classpath/lib/java/lang/OutOfMemoryError.class | Bin 0 -> 509 bytes libjava/classpath/lib/java/lang/Override.class | Bin 0 -> 378 bytes libjava/classpath/lib/java/lang/Package.class | Bin 0 -> 5278 bytes .../java/lang/PosixProcess$EOFInputStream.class | Bin 0 -> 567 bytes .../java/lang/PosixProcess$ProcessManager.class | Bin 0 -> 2643 bytes libjava/classpath/lib/java/lang/PosixProcess.class | Bin 0 -> 4143 bytes libjava/classpath/lib/java/lang/Process.class | Bin 0 -> 520 bytes .../classpath/lib/java/lang/ProcessBuilder.class | Bin 0 -> 2592 bytes libjava/classpath/lib/java/lang/Readable.class | Bin 0 -> 197 bytes libjava/classpath/lib/java/lang/Runnable.class | Bin 0 -> 127 bytes libjava/classpath/lib/java/lang/Runtime.class | Bin 0 -> 6772 bytes .../classpath/lib/java/lang/RuntimeException.class | Bin 0 -> 786 bytes .../lib/java/lang/RuntimePermission.class | Bin 0 -> 582 bytes .../lib/java/lang/SecurityException.class | Bin 0 -> 806 bytes .../lib/java/lang/SecurityManager$1.class | Bin 0 -> 871 bytes .../classpath/lib/java/lang/SecurityManager.class | Bin 0 -> 9195 bytes libjava/classpath/lib/java/lang/Short.class | Bin 0 -> 3282 bytes .../lib/java/lang/StackOverflowError.class | Bin 0 -> 515 bytes .../lib/java/lang/StackTraceElement.class | Bin 0 -> 2637 bytes libjava/classpath/lib/java/lang/StrictMath.class | Bin 0 -> 24574 bytes .../lang/String$CaseInsensitiveComparator.class | Bin 0 -> 743 bytes libjava/classpath/lib/java/lang/String.class | Bin 0 -> 9041 bytes libjava/classpath/lib/java/lang/StringBuffer.class | Bin 0 -> 10367 bytes .../classpath/lib/java/lang/StringBuilder.class | Bin 0 -> 9663 bytes .../lang/StringIndexOutOfBoundsException.class | Bin 0 -> 831 bytes .../classpath/lib/java/lang/SuppressWarnings.class | Bin 0 -> 509 bytes .../java/lang/System$EnvironmentCollection.class | Bin 0 -> 2428 bytes .../lib/java/lang/System$EnvironmentMap.class | Bin 0 -> 2592 bytes .../lib/java/lang/System$EnvironmentSet.class | Bin 0 -> 1021 bytes libjava/classpath/lib/java/lang/System.class | Bin 0 -> 5896 bytes libjava/classpath/lib/java/lang/Thread$State.class | Bin 0 -> 1242 bytes .../lang/Thread$UncaughtExceptionHandler.class | Bin 0 -> 281 bytes libjava/classpath/lib/java/lang/Thread.class | Bin 0 -> 9327 bytes libjava/classpath/lib/java/lang/ThreadDeath.class | Bin 0 -> 345 bytes libjava/classpath/lib/java/lang/ThreadGroup.class | Bin 0 -> 8558 bytes libjava/classpath/lib/java/lang/ThreadLocal.class | Bin 0 -> 1704 bytes .../lib/java/lang/Throwable$StaticData.class | Bin 0 -> 598 bytes libjava/classpath/lib/java/lang/Throwable.class | Bin 0 -> 4594 bytes .../lib/java/lang/TypeNotPresentException.class | Bin 0 -> 828 bytes libjava/classpath/lib/java/lang/UnknownError.class | Bin 0 -> 497 bytes .../lib/java/lang/UnsatisfiedLinkError.class | Bin 0 -> 514 bytes .../java/lang/UnsupportedClassVersionError.class | Bin 0 -> 542 bytes .../java/lang/UnsupportedOperationException.class | Bin 0 -> 842 bytes .../classpath/lib/java/lang/VMClassLoader.class | Bin 0 -> 5495 bytes libjava/classpath/lib/java/lang/VMCompiler.class | Bin 0 -> 6666 bytes libjava/classpath/lib/java/lang/VMDouble.class | Bin 0 -> 457 bytes libjava/classpath/lib/java/lang/VMFloat.class | Bin 0 -> 358 bytes libjava/classpath/lib/java/lang/VMThrowable.class | Bin 0 -> 476 bytes libjava/classpath/lib/java/lang/VerifyError.class | Bin 0 -> 487 bytes .../lib/java/lang/VirtualMachineError.class | Bin 0 -> 504 bytes libjava/classpath/lib/java/lang/Void.class | Bin 0 -> 516 bytes libjava/classpath/lib/java/lang/Win32Process.class | Bin 0 -> 1711 bytes .../lib/java/lang/annotation/Annotation.class | Bin 0 -> 355 bytes .../lang/annotation/AnnotationFormatError.class | Bin 0 -> 744 bytes .../AnnotationTypeMismatchException.class | Bin 0 -> 821 bytes .../lib/java/lang/annotation/Documented.class | Bin 0 -> 342 bytes .../lib/java/lang/annotation/ElementType.class | Bin 0 -> 1451 bytes .../annotation/IncompleteAnnotationException.class | Bin 0 -> 1006 bytes .../lib/java/lang/annotation/Inherited.class | Bin 0 -> 441 bytes .../lib/java/lang/annotation/Retention.class | Bin 0 -> 492 bytes .../lib/java/lang/annotation/RetentionPolicy.class | Bin 0 -> 1186 bytes .../lib/java/lang/annotation/Target.class | Bin 0 -> 483 bytes .../lib/java/lang/instrument/ClassDefinition.class | Bin 0 -> 875 bytes .../lang/instrument/ClassFileTransformer.class | Bin 0 -> 460 bytes .../instrument/IllegalClassFormatException.class | Bin 0 -> 554 bytes .../lib/java/lang/instrument/Instrumentation.class | Bin 0 -> 690 bytes .../instrument/UnmodifiableClassException.class | Bin 0 -> 551 bytes .../java/lang/management/ClassLoadingMXBean.class | Bin 0 -> 301 bytes .../java/lang/management/CompilationMXBean.class | Bin 0 -> 270 bytes .../lang/management/GarbageCollectorMXBean.class | Bin 0 -> 257 bytes .../java/lang/management/ManagementFactory.class | Bin 0 -> 8693 bytes .../lang/management/ManagementPermission.class | Bin 0 -> 864 bytes .../lib/java/lang/management/MemoryMXBean.class | Bin 0 -> 349 bytes .../java/lang/management/MemoryManagerMXBean.class | Bin 0 -> 258 bytes .../lang/management/MemoryNotificationInfo.class | Bin 0 -> 2259 bytes .../java/lang/management/MemoryPoolMXBean.class | Bin 0 -> 835 bytes .../lib/java/lang/management/MemoryType.class | Bin 0 -> 1030 bytes .../lib/java/lang/management/MemoryUsage.class | Bin 0 -> 3061 bytes .../lang/management/OperatingSystemMXBean.class | Bin 0 -> 263 bytes .../lib/java/lang/management/RuntimeMXBean.class | Bin 0 -> 731 bytes .../lib/java/lang/management/ThreadInfo.class | Bin 0 -> 7798 bytes .../lib/java/lang/management/ThreadMXBean.class | Bin 0 -> 1008 bytes .../java/lang/management/VMManagementFactory.class | Bin 0 -> 444 bytes .../lib/java/lang/ref/PhantomReference.class | Bin 0 -> 848 bytes .../classpath/lib/java/lang/ref/Reference.class | Bin 0 -> 1726 bytes .../lib/java/lang/ref/ReferenceQueue.class | Bin 0 -> 1842 bytes .../lib/java/lang/ref/SoftReference.class | Bin 0 -> 1004 bytes .../lib/java/lang/ref/WeakReference.class | Bin 0 -> 870 bytes .../lib/java/lang/reflect/AccessibleObject.class | Bin 0 -> 2646 bytes .../lib/java/lang/reflect/AnnotatedElement.class | Bin 0 -> 515 bytes .../classpath/lib/java/lang/reflect/Array.class | Bin 0 -> 2431 bytes .../lib/java/lang/reflect/Constructor.class | Bin 0 -> 6252 bytes .../classpath/lib/java/lang/reflect/Field.class | Bin 0 -> 8309 bytes .../lib/java/lang/reflect/GenericArrayType.class | Bin 0 -> 224 bytes .../lib/java/lang/reflect/GenericDeclaration.class | Bin 0 -> 262 bytes .../lang/reflect/GenericSignatureFormatError.class | Bin 0 -> 420 bytes .../lib/java/lang/reflect/InvocationHandler.class | Bin 0 -> 284 bytes .../lang/reflect/InvocationTargetException.class | Bin 0 -> 985 bytes .../MalformedParameterizedTypeException.class | Bin 0 -> 444 bytes .../classpath/lib/java/lang/reflect/Member.class | Bin 0 -> 341 bytes .../classpath/lib/java/lang/reflect/Method.class | Bin 0 -> 6176 bytes .../classpath/lib/java/lang/reflect/Modifier.class | Bin 0 -> 3197 bytes .../lib/java/lang/reflect/ParameterizedType.class | Bin 0 -> 299 bytes .../lib/java/lang/reflect/Proxy$ClassFactory.class | Bin 0 -> 11555 bytes .../lib/java/lang/reflect/Proxy$ProxyData.class | Bin 0 -> 4102 bytes .../java/lang/reflect/Proxy$ProxySignature.class | Bin 0 -> 3655 bytes .../lib/java/lang/reflect/Proxy$ProxyType.class | Bin 0 -> 997 bytes .../classpath/lib/java/lang/reflect/Proxy.class | Bin 0 -> 4465 bytes .../lib/java/lang/reflect/ReflectPermission.class | Bin 0 -> 599 bytes libjava/classpath/lib/java/lang/reflect/Type.class | Bin 0 -> 107 bytes .../lib/java/lang/reflect/TypeVariable.class | Bin 0 -> 443 bytes .../reflect/UndeclaredThrowableException.class | Bin 0 -> 939 bytes .../classpath/lib/java/lang/reflect/VMProxy.class | Bin 0 -> 1005 bytes .../lib/java/lang/reflect/WildcardType.class | Bin 0 -> 233 bytes libjava/classpath/lib/java/math/BigDecimal.class | Bin 0 -> 18062 bytes libjava/classpath/lib/java/math/BigInteger.class | Bin 0 -> 30692 bytes libjava/classpath/lib/java/math/MathContext.class | Bin 0 -> 2676 bytes libjava/classpath/lib/java/math/RoundingMode.class | Bin 0 -> 1970 bytes libjava/classpath/lib/java/net/Authenticator.class | Bin 0 -> 2399 bytes libjava/classpath/lib/java/net/BindException.class | Bin 0 -> 499 bytes .../classpath/lib/java/net/ConnectException.class | Bin 0 -> 508 bytes .../classpath/lib/java/net/ContentHandler.class | Bin 0 -> 811 bytes .../lib/java/net/ContentHandlerFactory.class | Bin 0 -> 211 bytes .../classpath/lib/java/net/DatagramPacket.class | Bin 0 -> 3557 bytes .../classpath/lib/java/net/DatagramSocket.class | Bin 0 -> 9962 bytes .../lib/java/net/DatagramSocketImpl.class | Bin 0 -> 1571 bytes .../lib/java/net/DatagramSocketImplFactory.class | Bin 0 -> 209 bytes libjava/classpath/lib/java/net/FileNameMap.class | Bin 0 -> 181 bytes .../classpath/lib/java/net/HttpURLConnection.class | Bin 0 -> 5717 bytes libjava/classpath/lib/java/net/Inet4Address.class | Bin 0 -> 2735 bytes libjava/classpath/lib/java/net/Inet6Address.class | Bin 0 -> 5032 bytes libjava/classpath/lib/java/net/InetAddress.class | Bin 0 -> 6300 bytes .../classpath/lib/java/net/InetSocketAddress.class | Bin 0 -> 2684 bytes .../classpath/lib/java/net/JarURLConnection.class | Bin 0 -> 2636 bytes .../lib/java/net/MalformedURLException.class | Bin 0 -> 518 bytes .../classpath/lib/java/net/MimeTypeMapper.class | Bin 0 -> 11230 bytes .../classpath/lib/java/net/MulticastSocket.class | Bin 0 -> 6058 bytes libjava/classpath/lib/java/net/NetPermission.class | Bin 0 -> 556 bytes .../classpath/lib/java/net/NetworkInterface.class | Bin 0 -> 5118 bytes .../lib/java/net/NoRouteToHostException.class | Bin 0 -> 526 bytes .../lib/java/net/PasswordAuthentication.class | Bin 0 -> 641 bytes .../lib/java/net/PortUnreachableException.class | Bin 0 -> 532 bytes .../classpath/lib/java/net/ProtocolException.class | Bin 0 -> 506 bytes libjava/classpath/lib/java/net/Proxy$Type.class | Bin 0 -> 1121 bytes libjava/classpath/lib/java/net/Proxy.class | Bin 0 -> 1522 bytes libjava/classpath/lib/java/net/ProxySelector.class | Bin 0 -> 1266 bytes .../lib/java/net/ResolverCache$Entry.class | Bin 0 -> 732 bytes libjava/classpath/lib/java/net/ResolverCache.class | Bin 0 -> 3355 bytes libjava/classpath/lib/java/net/ServerSocket.class | Bin 0 -> 6796 bytes libjava/classpath/lib/java/net/Socket.class | Bin 0 -> 11073 bytes libjava/classpath/lib/java/net/SocketAddress.class | Bin 0 -> 378 bytes .../classpath/lib/java/net/SocketException.class | Bin 0 -> 500 bytes libjava/classpath/lib/java/net/SocketImpl.class | Bin 0 -> 2159 bytes .../classpath/lib/java/net/SocketImplFactory.class | Bin 0 -> 177 bytes libjava/classpath/lib/java/net/SocketOptions.class | Bin 0 -> 785 bytes .../classpath/lib/java/net/SocketPermission.class | Bin 0 -> 6565 bytes .../lib/java/net/SocketTimeoutException.class | Bin 0 -> 532 bytes libjava/classpath/lib/java/net/URI.class | Bin 0 -> 16370 bytes .../lib/java/net/URISyntaxException.class | Bin 0 -> 1462 bytes libjava/classpath/lib/java/net/URL$1.class | Bin 0 -> 629 bytes libjava/classpath/lib/java/net/URL.class | Bin 0 -> 10393 bytes .../classpath/lib/java/net/URLClassLoader$1.class | Bin 0 -> 1022 bytes .../classpath/lib/java/net/URLClassLoader$2.class | Bin 0 -> 908 bytes .../lib/java/net/URLClassLoader$CoreResource.class | Bin 0 -> 1826 bytes .../java/net/URLClassLoader$CoreURLLoader.class | Bin 0 -> 1344 bytes .../lib/java/net/URLClassLoader$FileResource.class | Bin 0 -> 1739 bytes .../java/net/URLClassLoader$FileURLLoader.class | Bin 0 -> 1278 bytes .../lib/java/net/URLClassLoader$JarURLLoader.class | Bin 0 -> 3418 bytes .../java/net/URLClassLoader$JarURLResource.class | Bin 0 -> 2202 bytes .../java/net/URLClassLoader$RemoteResource.class | Bin 0 -> 1152 bytes .../java/net/URLClassLoader$RemoteURLLoader.class | Bin 0 -> 1724 bytes .../lib/java/net/URLClassLoader$Resource.class | Bin 0 -> 1217 bytes .../lib/java/net/URLClassLoader$SoResource.class | Bin 0 -> 1097 bytes .../lib/java/net/URLClassLoader$SoURLLoader.class | Bin 0 -> 1625 bytes .../lib/java/net/URLClassLoader$URLLoader.class | Bin 0 -> 1354 bytes .../classpath/lib/java/net/URLClassLoader.class | Bin 0 -> 14234 bytes libjava/classpath/lib/java/net/URLConnection.class | Bin 0 -> 11321 bytes libjava/classpath/lib/java/net/URLDecoder.class | Bin 0 -> 1781 bytes libjava/classpath/lib/java/net/URLEncoder.class | Bin 0 -> 1842 bytes .../classpath/lib/java/net/URLStreamHandler.class | Bin 0 -> 6389 bytes .../lib/java/net/URLStreamHandlerFactory.class | Bin 0 -> 219 bytes .../lib/java/net/UnknownHostException.class | Bin 0 -> 515 bytes .../lib/java/net/UnknownServiceException.class | Bin 0 -> 524 bytes libjava/classpath/lib/java/net/VMInetAddress.class | Bin 0 -> 610 bytes .../lib/java/net/VMNetworkInterface.class | Bin 0 -> 397 bytes .../classpath/lib/java/net/VMURLConnection.class | Bin 0 -> 944 bytes libjava/classpath/lib/java/nio/Buffer.class | Bin 0 -> 2875 bytes .../lib/java/nio/BufferOverflowException.class | Bin 0 -> 390 bytes .../lib/java/nio/BufferUnderflowException.class | Bin 0 -> 393 bytes libjava/classpath/lib/java/nio/ByteBuffer.class | Bin 0 -> 5629 bytes .../classpath/lib/java/nio/ByteBufferHelper.class | Bin 0 -> 6390 bytes .../classpath/lib/java/nio/ByteBufferImpl.class | Bin 0 -> 7873 bytes libjava/classpath/lib/java/nio/ByteOrder.class | Bin 0 -> 838 bytes libjava/classpath/lib/java/nio/CharBuffer.class | Bin 0 -> 5915 bytes .../classpath/lib/java/nio/CharBufferImpl.class | Bin 0 -> 3360 bytes .../lib/java/nio/CharViewBufferImpl.class | Bin 0 -> 3286 bytes .../java/nio/DirectByteBufferImpl$ReadOnly.class | Bin 0 -> 938 bytes .../java/nio/DirectByteBufferImpl$ReadWrite.class | Bin 0 -> 862 bytes .../lib/java/nio/DirectByteBufferImpl.class | Bin 0 -> 8554 bytes libjava/classpath/lib/java/nio/DoubleBuffer.class | Bin 0 -> 3594 bytes .../classpath/lib/java/nio/DoubleBufferImpl.class | Bin 0 -> 2345 bytes .../lib/java/nio/DoubleViewBufferImpl.class | Bin 0 -> 2973 bytes libjava/classpath/lib/java/nio/FloatBuffer.class | Bin 0 -> 3548 bytes .../classpath/lib/java/nio/FloatBufferImpl.class | Bin 0 -> 2338 bytes .../lib/java/nio/FloatViewBufferImpl.class | Bin 0 -> 2961 bytes libjava/classpath/lib/java/nio/IntBuffer.class | Bin 0 -> 3421 bytes libjava/classpath/lib/java/nio/IntBufferImpl.class | Bin 0 -> 2314 bytes .../classpath/lib/java/nio/IntViewBufferImpl.class | Bin 0 -> 2931 bytes .../lib/java/nio/InvalidMarkException.class | Bin 0 -> 386 bytes libjava/classpath/lib/java/nio/LongBuffer.class | Bin 0 -> 3498 bytes .../classpath/lib/java/nio/LongBufferImpl.class | Bin 0 -> 2331 bytes .../lib/java/nio/LongViewBufferImpl.class | Bin 0 -> 2953 bytes .../classpath/lib/java/nio/MappedByteBuffer.class | Bin 0 -> 1069 bytes .../lib/java/nio/MappedByteBufferImpl.class | Bin 0 -> 8128 bytes .../lib/java/nio/ReadOnlyBufferException.class | Bin 0 -> 403 bytes libjava/classpath/lib/java/nio/ShortBuffer.class | Bin 0 -> 3485 bytes .../classpath/lib/java/nio/ShortBufferImpl.class | Bin 0 -> 2338 bytes .../lib/java/nio/ShortViewBufferImpl.class | Bin 0 -> 2961 bytes .../lib/java/nio/VMDirectByteBuffer.class | Bin 0 -> 600 bytes .../nio/channels/AlreadyConnectedException.class | Bin 0 -> 419 bytes .../nio/channels/AsynchronousCloseException.class | Bin 0 -> 431 bytes .../lib/java/nio/channels/ByteChannel.class | Bin 0 -> 211 bytes .../java/nio/channels/CancelledKeyException.class | Bin 0 -> 407 bytes .../classpath/lib/java/nio/channels/Channel.class | Bin 0 -> 231 bytes .../classpath/lib/java/nio/channels/Channels.class | Bin 0 -> 2520 bytes .../nio/channels/ClosedByInterruptException.class | Bin 0 -> 435 bytes .../java/nio/channels/ClosedChannelException.class | Bin 0 -> 398 bytes .../nio/channels/ClosedSelectorException.class | Bin 0 -> 413 bytes .../nio/channels/ConnectionPendingException.class | Bin 0 -> 422 bytes .../lib/java/nio/channels/DatagramChannel.class | Bin 0 -> 1817 bytes .../java/nio/channels/FileChannel$MapMode.class | Bin 0 -> 786 bytes .../lib/java/nio/channels/FileChannel.class | Bin 0 -> 1821 bytes .../classpath/lib/java/nio/channels/FileLock.class | Bin 0 -> 1781 bytes .../channels/FileLockInterruptionException.class | Bin 0 -> 419 bytes .../java/nio/channels/GatheringByteChannel.class | Bin 0 -> 324 bytes .../channels/IllegalBlockingModeException.class | Bin 0 -> 428 bytes .../nio/channels/IllegalSelectorException.class | Bin 0 -> 419 bytes .../java/nio/channels/InterruptibleChannel.class | Bin 0 -> 242 bytes .../channels/NoConnectionPendingException.class | Bin 0 -> 428 bytes .../nio/channels/NonReadableChannelException.class | Bin 0 -> 425 bytes .../nio/channels/NonWritableChannelException.class | Bin 0 -> 425 bytes .../java/nio/channels/NotYetBoundException.class | Bin 0 -> 404 bytes .../nio/channels/NotYetConnectedException.class | Bin 0 -> 416 bytes .../channels/OverlappingFileLockException.class | Bin 0 -> 428 bytes .../lib/java/nio/channels/Pipe$SinkChannel.class | Bin 0 -> 676 bytes .../lib/java/nio/channels/Pipe$SourceChannel.class | Bin 0 -> 683 bytes libjava/classpath/lib/java/nio/channels/Pipe.class | Bin 0 -> 812 bytes .../java/nio/channels/ReadableByteChannel.class | Bin 0 -> 260 bytes .../java/nio/channels/ScatteringByteChannel.class | Bin 0 -> 325 bytes .../lib/java/nio/channels/SelectableChannel.class | Bin 0 -> 1112 bytes .../lib/java/nio/channels/SelectionKey.class | Bin 0 -> 1347 bytes .../classpath/lib/java/nio/channels/Selector.class | Bin 0 -> 912 bytes .../java/nio/channels/ServerSocketChannel.class | Bin 0 -> 931 bytes .../lib/java/nio/channels/SocketChannel.class | Bin 0 -> 1857 bytes .../nio/channels/UnresolvedAddressException.class | Bin 0 -> 425 bytes .../channels/UnsupportedAddressTypeException.class | Bin 0 -> 440 bytes .../lib/java/nio/channels/VMChannels.class | Bin 0 -> 1129 bytes .../java/nio/channels/WritableByteChannel.class | Bin 0 -> 261 bytes .../spi/AbstractInterruptibleChannel.class | Bin 0 -> 980 bytes .../channels/spi/AbstractSelectableChannel.class | Bin 0 -> 3883 bytes .../nio/channels/spi/AbstractSelectionKey.class | Bin 0 -> 747 bytes .../java/nio/channels/spi/AbstractSelector.class | Bin 0 -> 2139 bytes .../java/nio/channels/spi/SelectorProvider.class | Bin 0 -> 2066 bytes .../nio/charset/CharacterCodingException.class | Bin 0 -> 402 bytes .../classpath/lib/java/nio/charset/Charset.class | Bin 0 -> 7400 bytes .../lib/java/nio/charset/CharsetDecoder.class | Bin 0 -> 5808 bytes .../lib/java/nio/charset/CharsetEncoder.class | Bin 0 -> 7022 bytes .../java/nio/charset/CoderMalfunctionError.class | Bin 0 -> 480 bytes .../lib/java/nio/charset/CoderResult$1.class | Bin 0 -> 561 bytes .../lib/java/nio/charset/CoderResult$2.class | Bin 0 -> 561 bytes .../lib/java/nio/charset/CoderResult$Cache.class | Bin 0 -> 1220 bytes .../lib/java/nio/charset/CoderResult.class | Bin 0 -> 2826 bytes .../lib/java/nio/charset/CodingErrorAction.class | Bin 0 -> 745 bytes .../nio/charset/IllegalCharsetNameException.class | Bin 0 -> 623 bytes .../java/nio/charset/MalformedInputException.class | Bin 0 -> 834 bytes .../nio/charset/UnmappableCharacterException.class | Bin 0 -> 849 bytes .../nio/charset/UnsupportedCharsetException.class | Bin 0 -> 623 bytes .../lib/java/nio/charset/spi/CharsetProvider.class | Bin 0 -> 821 bytes .../classpath/lib/java/rmi/AccessException.class | Bin 0 -> 633 bytes .../lib/java/rmi/AlreadyBoundException.class | Bin 0 -> 512 bytes .../classpath/lib/java/rmi/ConnectException.class | Bin 0 -> 636 bytes .../lib/java/rmi/ConnectIOException.class | Bin 0 -> 642 bytes .../classpath/lib/java/rmi/MarshalException.class | Bin 0 -> 636 bytes .../classpath/lib/java/rmi/MarshalledObject.class | Bin 0 -> 1855 bytes libjava/classpath/lib/java/rmi/Naming.class | Bin 0 -> 3141 bytes .../lib/java/rmi/NoSuchObjectException.class | Bin 0 -> 436 bytes .../classpath/lib/java/rmi/NotBoundException.class | Bin 0 -> 500 bytes .../lib/java/rmi/RMISecurityException.class | Bin 0 -> 599 bytes .../lib/java/rmi/RMISecurityManager.class | Bin 0 -> 310 bytes libjava/classpath/lib/java/rmi/Remote.class | Bin 0 -> 102 bytes .../classpath/lib/java/rmi/RemoteException.class | Bin 0 -> 1334 bytes libjava/classpath/lib/java/rmi/ServerError.class | Bin 0 -> 503 bytes .../classpath/lib/java/rmi/ServerException.class | Bin 0 -> 633 bytes .../lib/java/rmi/ServerRuntimeException.class | Bin 0 -> 569 bytes .../lib/java/rmi/StubNotFoundException.class | Bin 0 -> 651 bytes .../lib/java/rmi/UnexpectedException.class | Bin 0 -> 645 bytes .../lib/java/rmi/UnknownHostException.class | Bin 0 -> 648 bytes .../lib/java/rmi/UnmarshalException.class | Bin 0 -> 642 bytes .../lib/java/rmi/activation/Activatable.class | Bin 0 -> 8556 bytes .../rmi/activation/ActivateFailedException.class | Bin 0 -> 680 bytes .../lib/java/rmi/activation/ActivationDesc.class | Bin 0 -> 2753 bytes .../java/rmi/activation/ActivationException.class | Bin 0 -> 1291 bytes .../lib/java/rmi/activation/ActivationGroup.class | Bin 0 -> 5542 bytes .../ActivationGroupDesc$CommandEnvironment.class | Bin 0 -> 1613 bytes .../java/rmi/activation/ActivationGroupDesc.class | Bin 0 -> 3895 bytes .../java/rmi/activation/ActivationGroupID.class | Bin 0 -> 1152 bytes .../java/rmi/activation/ActivationGroup_Stub.class | Bin 0 -> 1895 bytes .../lib/java/rmi/activation/ActivationID.class | Bin 0 -> 2732 bytes .../rmi/activation/ActivationInstantiator.class | Bin 0 -> 392 bytes .../java/rmi/activation/ActivationMonitor.class | Bin 0 -> 557 bytes .../lib/java/rmi/activation/ActivationSystem.class | Bin 0 -> 1571 bytes .../lib/java/rmi/activation/Activator.class | Bin 0 -> 378 bytes .../rmi/activation/UnknownGroupException.class | Bin 0 -> 473 bytes .../rmi/activation/UnknownObjectException.class | Bin 0 -> 476 bytes libjava/classpath/lib/java/rmi/dgc/DGC.class | Bin 0 -> 339 bytes libjava/classpath/lib/java/rmi/dgc/Lease.class | Bin 0 -> 1065 bytes libjava/classpath/lib/java/rmi/dgc/VMID.class | Bin 0 -> 1907 bytes .../lib/java/rmi/registry/LocateRegistry.class | Bin 0 -> 2079 bytes .../classpath/lib/java/rmi/registry/Registry.class | Bin 0 -> 612 bytes .../lib/java/rmi/registry/RegistryHandler.class | Bin 0 -> 392 bytes .../lib/java/rmi/server/ExportException.class | Bin 0 -> 647 bytes .../lib/java/rmi/server/LoaderHandler.class | Bin 0 -> 685 bytes .../classpath/lib/java/rmi/server/LogStream.class | Bin 0 -> 1851 bytes libjava/classpath/lib/java/rmi/server/ObjID.class | Bin 0 -> 2488 bytes .../classpath/lib/java/rmi/server/Operation.class | Bin 0 -> 595 bytes .../lib/java/rmi/server/RMIClassLoader.class | Bin 0 -> 3592 bytes .../lib/java/rmi/server/RMIClassLoaderSpi.class | Bin 0 -> 1029 bytes .../java/rmi/server/RMIClientSocketFactory.class | Bin 0 -> 253 bytes .../lib/java/rmi/server/RMIFailureHandler.class | Bin 0 -> 176 bytes .../java/rmi/server/RMIServerSocketFactory.class | Bin 0 -> 247 bytes .../lib/java/rmi/server/RMISocketFactory.class | Bin 0 -> 1425 bytes .../classpath/lib/java/rmi/server/RemoteCall.class | Bin 0 -> 611 bytes .../lib/java/rmi/server/RemoteObject.class | Bin 0 -> 3766 bytes .../rmi/server/RemoteObjectInvocationHandler.class | Bin 0 -> 3872 bytes .../classpath/lib/java/rmi/server/RemoteRef.class | Bin 0 -> 894 bytes .../lib/java/rmi/server/RemoteServer.class | Bin 0 -> 1358 bytes .../classpath/lib/java/rmi/server/RemoteStub.class | Bin 0 -> 704 bytes .../lib/java/rmi/server/ServerCloneException.class | Bin 0 -> 1307 bytes .../java/rmi/server/ServerNotActiveException.class | Bin 0 -> 535 bytes .../classpath/lib/java/rmi/server/ServerRef.class | Bin 0 -> 459 bytes .../classpath/lib/java/rmi/server/Skeleton.class | Bin 0 -> 321 bytes .../rmi/server/SkeletonMismatchException.class | Bin 0 -> 487 bytes .../rmi/server/SkeletonNotFoundException.class | Bin 0 -> 696 bytes .../java/rmi/server/SocketSecurityException.class | Bin 0 -> 633 bytes libjava/classpath/lib/java/rmi/server/UID.class | Bin 0 -> 2816 bytes .../lib/java/rmi/server/UnicastRemoteObject.class | Bin 0 -> 3032 bytes .../lib/java/rmi/server/Unreferenced.class | Bin 0 -> 150 bytes .../lib/java/security/AccessControlContext.class | Bin 0 -> 3506 bytes .../lib/java/security/AccessControlException.class | Bin 0 -> 772 bytes .../lib/java/security/AccessController.class | Bin 0 -> 2821 bytes .../security/AlgorithmParameterGenerator.class | Bin 0 -> 4329 bytes .../security/AlgorithmParameterGeneratorSpi.class | Bin 0 -> 640 bytes .../lib/java/security/AlgorithmParameters.class | Bin 0 -> 4550 bytes .../lib/java/security/AlgorithmParametersSpi.class | Bin 0 -> 906 bytes .../AllPermission$AllPermissionCollection.class | Bin 0 -> 1510 bytes .../lib/java/security/AllPermission.class | Bin 0 -> 1336 bytes ...BasicPermission$BasicPermissionCollection.class | Bin 0 -> 2446 bytes .../lib/java/security/BasicPermission.class | Bin 0 -> 1944 bytes .../classpath/lib/java/security/Certificate.class | Bin 0 -> 534 bytes .../classpath/lib/java/security/CodeSource.class | Bin 0 -> 5314 bytes .../lib/java/security/DigestException.class | Bin 0 -> 816 bytes .../lib/java/security/DigestInputStream.class | Bin 0 -> 1681 bytes .../lib/java/security/DigestOutputStream.class | Bin 0 -> 1649 bytes .../lib/java/security/DomainCombiner.class | Bin 0 -> 245 bytes .../lib/java/security/DummyKeyPairGenerator.class | Bin 0 -> 1628 bytes .../lib/java/security/DummyMessageDigest.class | Bin 0 -> 1719 bytes .../lib/java/security/DummySignature.class | Bin 0 -> 2336 bytes .../java/security/GeneralSecurityException.class | Bin 0 -> 824 bytes libjava/classpath/lib/java/security/Guard.class | Bin 0 -> 150 bytes .../lib/java/security/GuardedObject.class | Bin 0 -> 1062 bytes libjava/classpath/lib/java/security/Identity.class | Bin 0 -> 4357 bytes .../lib/java/security/IdentityScope.class | Bin 0 -> 2238 bytes .../java/security/IntersectingDomainCombiner.class | Bin 0 -> 1156 bytes .../InvalidAlgorithmParameterException.class | Bin 0 -> 873 bytes .../lib/java/security/InvalidKeyException.class | Bin 0 -> 816 bytes .../java/security/InvalidParameterException.class | Bin 0 -> 551 bytes libjava/classpath/lib/java/security/Key.class | Bin 0 -> 287 bytes .../classpath/lib/java/security/KeyException.class | Bin 0 -> 807 bytes .../classpath/lib/java/security/KeyFactory.class | Bin 0 -> 4252 bytes .../lib/java/security/KeyFactorySpi.class | Bin 0 -> 886 bytes .../lib/java/security/KeyManagementException.class | Bin 0 -> 825 bytes libjava/classpath/lib/java/security/KeyPair.class | Bin 0 -> 791 bytes .../lib/java/security/KeyPairGenerator.class | Bin 0 -> 4574 bytes .../lib/java/security/KeyPairGeneratorSpi.class | Bin 0 -> 961 bytes libjava/classpath/lib/java/security/KeyStore.class | Bin 0 -> 6138 bytes .../lib/java/security/KeyStoreException.class | Bin 0 -> 822 bytes .../classpath/lib/java/security/KeyStoreSpi.class | Bin 0 -> 1668 bytes .../lib/java/security/MessageDigest.class | Bin 0 -> 5360 bytes .../lib/java/security/MessageDigestSpi.class | Bin 0 -> 1514 bytes .../java/security/NoSuchAlgorithmException.class | Bin 0 -> 843 bytes .../java/security/NoSuchProviderException.class | Bin 0 -> 549 bytes .../classpath/lib/java/security/Permission.class | Bin 0 -> 1670 bytes .../lib/java/security/PermissionCollection.class | Bin 0 -> 1550 bytes .../lib/java/security/Permissions$1.class | Bin 0 -> 1225 bytes .../security/Permissions$PermissionsHash.class | Bin 0 -> 1401 bytes .../classpath/lib/java/security/Permissions.class | Bin 0 -> 1988 bytes libjava/classpath/lib/java/security/Policy.class | Bin 0 -> 3648 bytes .../classpath/lib/java/security/Principal.class | Bin 0 -> 239 bytes .../classpath/lib/java/security/PrivateKey.class | Bin 0 -> 204 bytes .../lib/java/security/PrivilegedAction.class | Bin 0 -> 243 bytes .../java/security/PrivilegedActionException.class | Bin 0 -> 830 bytes .../java/security/PrivilegedExceptionAction.class | Bin 0 -> 309 bytes .../lib/java/security/ProtectionDomain.class | Bin 0 -> 3502 bytes libjava/classpath/lib/java/security/Provider.class | Bin 0 -> 2473 bytes .../lib/java/security/ProviderException.class | Bin 0 -> 810 bytes .../classpath/lib/java/security/PublicKey.class | Bin 0 -> 202 bytes .../lib/java/security/SecureClassLoader.class | Bin 0 -> 2507 bytes .../classpath/lib/java/security/SecureRandom.class | Bin 0 -> 7756 bytes .../lib/java/security/SecureRandomSpi.class | Bin 0 -> 489 bytes libjava/classpath/lib/java/security/Security.class | Bin 0 -> 11241 bytes .../lib/java/security/SecurityPermission.class | Bin 0 -> 583 bytes .../classpath/lib/java/security/Signature.class | Bin 0 -> 7379 bytes .../lib/java/security/SignatureException.class | Bin 0 -> 825 bytes .../classpath/lib/java/security/SignatureSpi.class | Bin 0 -> 2716 bytes .../classpath/lib/java/security/SignedObject.class | Bin 0 -> 2675 bytes libjava/classpath/lib/java/security/Signer.class | Bin 0 -> 2154 bytes .../java/security/UnrecoverableKeyException.class | Bin 0 -> 555 bytes .../lib/java/security/UnresolvedPermission.class | Bin 0 -> 2332 bytes .../UnresolvedPermissionCollection$1.class | Bin 0 -> 1297 bytes .../security/UnresolvedPermissionCollection.class | Bin 0 -> 1616 bytes .../lib/java/security/VMAccessControlState.class | Bin 0 -> 816 bytes .../lib/java/security/VMAccessController.class | Bin 0 -> 4797 bytes .../lib/java/security/VMSecureRandom$Spinner.class | Bin 0 -> 808 bytes .../lib/java/security/VMSecureRandom.class | Bin 0 -> 1429 bytes libjava/classpath/lib/java/security/acl/Acl.class | Bin 0 -> 829 bytes .../classpath/lib/java/security/acl/AclEntry.class | Bin 0 -> 639 bytes .../java/security/acl/AclNotFoundException.class | Bin 0 -> 392 bytes .../classpath/lib/java/security/acl/Group.class | Bin 0 -> 355 bytes .../lib/java/security/acl/LastOwnerException.class | Bin 0 -> 386 bytes .../lib/java/security/acl/NotOwnerException.class | Bin 0 -> 383 bytes .../classpath/lib/java/security/acl/Owner.class | Bin 0 -> 373 bytes .../lib/java/security/acl/Permission.class | Bin 0 -> 202 bytes libjava/classpath/lib/java/security/cert/CRL.class | Bin 0 -> 536 bytes .../lib/java/security/cert/CRLException.class | Bin 0 -> 817 bytes .../lib/java/security/cert/CRLSelector.class | Bin 0 -> 234 bytes .../java/security/cert/CertPath$CertPathRep.class | Bin 0 -> 1562 bytes .../lib/java/security/cert/CertPath.class | Bin 0 -> 2633 bytes .../lib/java/security/cert/CertPathBuilder.class | Bin 0 -> 3671 bytes .../security/cert/CertPathBuilderException.class | Bin 0 -> 1632 bytes .../java/security/cert/CertPathBuilderResult.class | Bin 0 -> 264 bytes .../java/security/cert/CertPathBuilderSpi.class | Bin 0 -> 557 bytes .../java/security/cert/CertPathParameters.class | Bin 0 -> 202 bytes .../java/security/cert/CertPathValidator$1.class | Bin 0 -> 718 bytes .../lib/java/security/cert/CertPathValidator.class | Bin 0 -> 3933 bytes .../security/cert/CertPathValidatorException.class | Bin 0 -> 2433 bytes .../security/cert/CertPathValidatorResult.class | Bin 0 -> 212 bytes .../java/security/cert/CertPathValidatorSpi.class | Bin 0 -> 599 bytes .../lib/java/security/cert/CertSelector.class | Bin 0 -> 244 bytes .../lib/java/security/cert/CertStore$1.class | Bin 0 -> 678 bytes .../lib/java/security/cert/CertStore.class | Bin 0 -> 4728 bytes .../java/security/cert/CertStoreException.class | Bin 0 -> 1614 bytes .../java/security/cert/CertStoreParameters.class | Bin 0 -> 204 bytes .../lib/java/security/cert/CertStoreSpi.class | Bin 0 -> 935 bytes .../security/cert/Certificate$CertificateRep.class | Bin 0 -> 1361 bytes .../lib/java/security/cert/Certificate.class | Bin 0 -> 2001 bytes .../cert/CertificateEncodingException.class | Bin 0 -> 866 bytes .../java/security/cert/CertificateException.class | Bin 0 -> 841 bytes .../cert/CertificateExpiredException.class | Bin 0 -> 572 bytes .../java/security/cert/CertificateFactory.class | Bin 0 -> 4794 bytes .../java/security/cert/CertificateFactorySpi.class | Bin 0 -> 1972 bytes .../cert/CertificateNotYetValidException.class | Bin 0 -> 584 bytes .../cert/CertificateParsingException.class | Bin 0 -> 863 bytes .../cert/CollectionCertStoreParameters.class | Bin 0 -> 1491 bytes .../security/cert/LDAPCertStoreParameters.class | Bin 0 -> 1450 bytes .../java/security/cert/PKIXBuilderParameters.class | Bin 0 -> 1961 bytes .../security/cert/PKIXCertPathBuilderResult.class | Bin 0 -> 1549 bytes .../java/security/cert/PKIXCertPathChecker.class | Bin 0 -> 1117 bytes .../cert/PKIXCertPathValidatorResult.class | Bin 0 -> 1691 bytes .../lib/java/security/cert/PKIXParameters.class | Bin 0 -> 8202 bytes .../lib/java/security/cert/PolicyNode.class | Bin 0 -> 601 bytes .../java/security/cert/PolicyQualifierInfo.class | Bin 0 -> 2039 bytes .../lib/java/security/cert/TrustAnchor.class | Bin 0 -> 2116 bytes .../classpath/lib/java/security/cert/X509CRL.class | Bin 0 -> 1939 bytes .../lib/java/security/cert/X509CRLEntry.class | Bin 0 -> 1053 bytes .../lib/java/security/cert/X509CRLSelector.class | Bin 0 -> 6627 bytes .../lib/java/security/cert/X509CertSelector.class | Bin 0 -> 13958 bytes .../lib/java/security/cert/X509Certificate.class | Bin 0 -> 2025 bytes .../lib/java/security/cert/X509Extension.class | Bin 0 -> 388 bytes .../lib/java/security/interfaces/DSAKey.class | Bin 0 -> 179 bytes .../security/interfaces/DSAKeyPairGenerator.class | Bin 0 -> 357 bytes .../lib/java/security/interfaces/DSAParams.class | Bin 0 -> 196 bytes .../java/security/interfaces/DSAPrivateKey.class | Bin 0 -> 309 bytes .../java/security/interfaces/DSAPublicKey.class | Bin 0 -> 306 bytes .../lib/java/security/interfaces/RSAKey.class | Bin 0 -> 166 bytes .../interfaces/RSAMultiPrimePrivateCrtKey.class | Bin 0 -> 519 bytes .../security/interfaces/RSAPrivateCrtKey.class | Bin 0 -> 427 bytes .../java/security/interfaces/RSAPrivateKey.class | Bin 0 -> 323 bytes .../java/security/interfaces/RSAPublicKey.class | Bin 0 -> 319 bytes .../security/spec/AlgorithmParameterSpec.class | Bin 0 -> 144 bytes .../lib/java/security/spec/DSAParameterSpec.class | Bin 0 -> 884 bytes .../lib/java/security/spec/DSAPrivateKeySpec.class | Bin 0 -> 971 bytes .../lib/java/security/spec/DSAPublicKeySpec.class | Bin 0 -> 968 bytes .../lib/java/security/spec/EncodedKeySpec.class | Bin 0 -> 530 bytes .../security/spec/InvalidKeySpecException.class | Bin 0 -> 850 bytes .../spec/InvalidParameterSpecException.class | Bin 0 -> 577 bytes .../classpath/lib/java/security/spec/KeySpec.class | Bin 0 -> 114 bytes .../java/security/spec/PKCS8EncodedKeySpec.class | Bin 0 -> 569 bytes .../lib/java/security/spec/PSSParameterSpec.class | Bin 0 -> 570 bytes .../security/spec/RSAKeyGenParameterSpec.class | Bin 0 -> 943 bytes .../spec/RSAMultiPrimePrivateCrtKeySpec.class | Bin 0 -> 2190 bytes .../lib/java/security/spec/RSAOtherPrimeInfo.class | Bin 0 -> 967 bytes .../java/security/spec/RSAPrivateCrtKeySpec.class | Bin 0 -> 1458 bytes .../lib/java/security/spec/RSAPrivateKeySpec.class | Bin 0 -> 712 bytes .../lib/java/security/spec/RSAPublicKeySpec.class | Bin 0 -> 707 bytes .../java/security/spec/X509EncodedKeySpec.class | Bin 0 -> 565 bytes libjava/classpath/lib/java/sql/Array.class | Bin 0 -> 1031 bytes .../lib/java/sql/BatchUpdateException.class | Bin 0 -> 1224 bytes libjava/classpath/lib/java/sql/Blob.class | Bin 0 -> 516 bytes .../classpath/lib/java/sql/CallableStatement.class | Bin 0 -> 4652 bytes libjava/classpath/lib/java/sql/Clob.class | Bin 0 -> 704 bytes libjava/classpath/lib/java/sql/Connection.class | Bin 0 -> 2469 bytes .../classpath/lib/java/sql/DataTruncation.class | Bin 0 -> 1072 bytes .../classpath/lib/java/sql/DatabaseMetaData.class | Bin 0 -> 9882 bytes libjava/classpath/lib/java/sql/Date.class | Bin 0 -> 1914 bytes libjava/classpath/lib/java/sql/Driver.class | Bin 0 -> 490 bytes libjava/classpath/lib/java/sql/DriverManager.class | Bin 0 -> 4441 bytes .../lib/java/sql/DriverPropertyInfo.class | Bin 0 -> 538 bytes .../classpath/lib/java/sql/ParameterMetaData.class | Bin 0 -> 824 bytes .../classpath/lib/java/sql/PreparedStatement.class | Bin 0 -> 1974 bytes libjava/classpath/lib/java/sql/Ref.class | Bin 0 -> 456 bytes libjava/classpath/lib/java/sql/ResultSet.class | Bin 0 -> 7255 bytes .../classpath/lib/java/sql/ResultSetMetaData.class | Bin 0 -> 1067 bytes libjava/classpath/lib/java/sql/SQLData.class | Bin 0 -> 328 bytes libjava/classpath/lib/java/sql/SQLException.class | Bin 0 -> 1367 bytes libjava/classpath/lib/java/sql/SQLInput.class | Bin 0 -> 1192 bytes libjava/classpath/lib/java/sql/SQLOutput.class | Bin 0 -> 1264 bytes libjava/classpath/lib/java/sql/SQLPermission.class | Bin 0 -> 505 bytes libjava/classpath/lib/java/sql/SQLWarning.class | Bin 0 -> 1151 bytes libjava/classpath/lib/java/sql/Savepoint.class | Bin 0 -> 249 bytes libjava/classpath/lib/java/sql/Statement.class | Bin 0 -> 2029 bytes libjava/classpath/lib/java/sql/Struct.class | Bin 0 -> 414 bytes libjava/classpath/lib/java/sql/Time.class | Bin 0 -> 2129 bytes libjava/classpath/lib/java/sql/Timestamp.class | Bin 0 -> 3826 bytes libjava/classpath/lib/java/sql/Types.class | Bin 0 -> 1194 bytes libjava/classpath/lib/java/text/Annotation.class | Bin 0 -> 924 bytes .../AttributedCharacterIterator$Attribute.class | Bin 0 -> 1922 bytes .../java/text/AttributedCharacterIterator.class | Bin 0 -> 900 bytes .../text/AttributedString$AttributeRange.class | Bin 0 -> 689 bytes .../classpath/lib/java/text/AttributedString.class | Bin 0 -> 5877 bytes .../lib/java/text/AttributedStringIterator.class | Bin 0 -> 5196 bytes libjava/classpath/lib/java/text/Bidi.class | Bin 0 -> 10729 bytes .../classpath/lib/java/text/BreakIterator.class | Bin 0 -> 3564 bytes .../lib/java/text/CharacterIterator.class | Bin 0 -> 488 bytes libjava/classpath/lib/java/text/ChoiceFormat.class | Bin 0 -> 5710 bytes .../lib/java/text/CollationElementIterator.class | Bin 0 -> 5230 bytes libjava/classpath/lib/java/text/CollationKey.class | Bin 0 -> 1695 bytes libjava/classpath/lib/java/text/Collator.class | Bin 0 -> 3454 bytes .../classpath/lib/java/text/DateFormat$Field.class | Bin 0 -> 3570 bytes libjava/classpath/lib/java/text/DateFormat.class | Bin 0 -> 8501 bytes .../lib/java/text/DateFormatSymbols.class | Bin 0 -> 5265 bytes .../classpath/lib/java/text/DecimalFormat.class | Bin 0 -> 23996 bytes .../lib/java/text/DecimalFormatSymbols.class | Bin 0 -> 6530 bytes .../classpath/lib/java/text/FieldPosition.class | Bin 0 -> 2447 bytes libjava/classpath/lib/java/text/Format$Field.class | Bin 0 -> 492 bytes libjava/classpath/lib/java/text/Format.class | Bin 0 -> 2009 bytes .../lib/java/text/MessageFormat$Field.class | Bin 0 -> 1176 bytes .../text/MessageFormat$MessageFormatElement.class | Bin 0 -> 2477 bytes .../classpath/lib/java/text/MessageFormat.class | Bin 0 -> 11574 bytes .../lib/java/text/NumberFormat$Field.class | Bin 0 -> 2098 bytes libjava/classpath/lib/java/text/NumberFormat.class | Bin 0 -> 8151 bytes .../classpath/lib/java/text/ParseException.class | Bin 0 -> 585 bytes .../classpath/lib/java/text/ParsePosition.class | Bin 0 -> 1546 bytes .../text/RuleBasedCollator$CollationElement.class | Bin 0 -> 925 bytes .../text/RuleBasedCollator$CollationSorter.class | Bin 0 -> 778 bytes .../lib/java/text/RuleBasedCollator.class | Bin 0 -> 10427 bytes .../java/text/SimpleDateFormat$CompiledField.class | Bin 0 -> 1491 bytes .../classpath/lib/java/text/SimpleDateFormat.class | Bin 0 -> 17953 bytes .../lib/java/text/StringCharacterIterator.class | Bin 0 -> 2733 bytes .../lib/java/util/AbstractCollection.class | Bin 0 -> 4777 bytes .../classpath/lib/java/util/AbstractList$1.class | Bin 0 -> 2205 bytes .../classpath/lib/java/util/AbstractList$2.class | Bin 0 -> 1499 bytes .../classpath/lib/java/util/AbstractList$3.class | Bin 0 -> 2389 bytes .../util/AbstractList$RandomAccessSubList.class | Bin 0 -> 865 bytes .../lib/java/util/AbstractList$SubList.class | Bin 0 -> 3945 bytes libjava/classpath/lib/java/util/AbstractList.class | Bin 0 -> 4911 bytes .../classpath/lib/java/util/AbstractMap$1.class | Bin 0 -> 1129 bytes .../classpath/lib/java/util/AbstractMap$2.class | Bin 0 -> 1269 bytes .../classpath/lib/java/util/AbstractMap$3.class | Bin 0 -> 1154 bytes .../classpath/lib/java/util/AbstractMap$4.class | Bin 0 -> 1271 bytes .../lib/java/util/AbstractMap$SimpleEntry.class | Bin 0 -> 2423 bytes .../util/AbstractMap$SimpleImmutableEntry.class | Bin 0 -> 1736 bytes libjava/classpath/lib/java/util/AbstractMap.class | Bin 0 -> 5285 bytes .../classpath/lib/java/util/AbstractQueue.class | Bin 0 -> 1965 bytes .../lib/java/util/AbstractSequentialList.class | Bin 0 -> 2769 bytes libjava/classpath/lib/java/util/AbstractSet.class | Bin 0 -> 1708 bytes .../lib/java/util/ArrayDeque$DeqIterator.class | Bin 0 -> 1664 bytes .../java/util/ArrayDeque$DescendingIterator.class | Bin 0 -> 1692 bytes libjava/classpath/lib/java/util/ArrayDeque.class | Bin 0 -> 10291 bytes libjava/classpath/lib/java/util/ArrayList.class | Bin 0 -> 7908 bytes .../classpath/lib/java/util/Arrays$ArrayList.class | Bin 0 -> 2662 bytes libjava/classpath/lib/java/util/Arrays.class | Bin 0 -> 26603 bytes libjava/classpath/lib/java/util/BitSet.class | Bin 0 -> 6968 bytes libjava/classpath/lib/java/util/Calendar.class | Bin 0 -> 13449 bytes libjava/classpath/lib/java/util/Collection.class | Bin 0 -> 841 bytes .../util/Collections$1$SynchronizedMapEntry.class | Bin 0 -> 2194 bytes .../classpath/lib/java/util/Collections$1.class | Bin 0 -> 1138 bytes .../classpath/lib/java/util/Collections$2.class | Bin 0 -> 1103 bytes .../classpath/lib/java/util/Collections$3.class | Bin 0 -> 1511 bytes .../classpath/lib/java/util/Collections$4.class | Bin 0 -> 1543 bytes .../classpath/lib/java/util/Collections$5.class | Bin 0 -> 1611 bytes .../classpath/lib/java/util/Collections$6.class | Bin 0 -> 1487 bytes .../classpath/lib/java/util/Collections$7.class | Bin 0 -> 1809 bytes .../classpath/lib/java/util/Collections$8.class | Bin 0 -> 889 bytes .../classpath/lib/java/util/Collections$9.class | Bin 0 -> 902 bytes .../java/util/Collections$CheckedCollection.class | Bin 0 -> 3768 bytes .../java/util/Collections$CheckedIterator.class | Bin 0 -> 1272 bytes .../lib/java/util/Collections$CheckedList.class | Bin 0 -> 3851 bytes .../util/Collections$CheckedListIterator.class | Bin 0 -> 2065 bytes .../Collections$CheckedMap$CheckedEntrySet.class | Bin 0 -> 1781 bytes .../lib/java/util/Collections$CheckedMap.class | Bin 0 -> 4991 bytes .../util/Collections$CheckedRandomAccessList.class | Bin 0 -> 963 bytes .../lib/java/util/Collections$CheckedSet.class | Bin 0 -> 1290 bytes .../java/util/Collections$CheckedSortedMap.class | Bin 0 -> 2347 bytes .../java/util/Collections$CheckedSortedSet.class | Bin 0 -> 2153 bytes .../lib/java/util/Collections$CopiesList.class | Bin 0 -> 2693 bytes .../lib/java/util/Collections$EmptyList.class | Bin 0 -> 2671 bytes .../lib/java/util/Collections$EmptyMap.class | Bin 0 -> 2143 bytes .../lib/java/util/Collections$EmptySet.class | Bin 0 -> 2422 bytes .../java/util/Collections$ReverseComparator.class | Bin 0 -> 1024 bytes .../lib/java/util/Collections$SingletonList.class | Bin 0 -> 3063 bytes .../lib/java/util/Collections$SingletonMap.class | Bin 0 -> 2981 bytes .../lib/java/util/Collections$SingletonSet.class | Bin 0 -> 2438 bytes .../util/Collections$SynchronizedCollection.class | Bin 0 -> 3969 bytes .../util/Collections$SynchronizedIterator.class | Bin 0 -> 1366 bytes .../java/util/Collections$SynchronizedList.class | Bin 0 -> 3835 bytes .../Collections$SynchronizedListIterator.class | Bin 0 -> 2030 bytes .../java/util/Collections$SynchronizedMap.class | Bin 0 -> 4720 bytes .../Collections$SynchronizedRandomAccessList.class | Bin 0 -> 1461 bytes .../java/util/Collections$SynchronizedSet.class | Bin 0 -> 1550 bytes .../util/Collections$SynchronizedSortedMap.class | Bin 0 -> 2611 bytes .../util/Collections$SynchronizedSortedSet.class | Bin 0 -> 2577 bytes .../util/Collections$UnmodifiableCollection.class | Bin 0 -> 3096 bytes .../util/Collections$UnmodifiableIterator.class | Bin 0 -> 1182 bytes .../java/util/Collections$UnmodifiableList.class | Bin 0 -> 3136 bytes .../Collections$UnmodifiableListIterator.class | Bin 0 -> 1745 bytes ...UnmodifiableEntrySet$UnmodifiableMapEntry.class | Bin 0 -> 2188 bytes ...ions$UnmodifiableMap$UnmodifiableEntrySet.class | Bin 0 -> 2550 bytes .../java/util/Collections$UnmodifiableMap.class | Bin 0 -> 3698 bytes .../Collections$UnmodifiableRandomAccessList.class | Bin 0 -> 883 bytes .../java/util/Collections$UnmodifiableSet.class | Bin 0 -> 1193 bytes .../util/Collections$UnmodifiableSortedMap.class | Bin 0 -> 2105 bytes .../util/Collections$UnmodifiableSortedSet.class | Bin 0 -> 2032 bytes libjava/classpath/lib/java/util/Collections.class | Bin 0 -> 21075 bytes libjava/classpath/lib/java/util/Comparator.class | Bin 0 -> 295 bytes .../util/ConcurrentModificationException.class | Bin 0 -> 556 bytes libjava/classpath/lib/java/util/Currency.class | Bin 0 -> 3337 bytes libjava/classpath/lib/java/util/Date.class | Bin 0 -> 10943 bytes libjava/classpath/lib/java/util/Deque.class | Bin 0 -> 1056 bytes libjava/classpath/lib/java/util/Dictionary.class | Bin 0 -> 836 bytes .../java/util/DuplicateFormatFlagsException.class | Bin 0 -> 876 bytes .../lib/java/util/EmptyStackException.class | Bin 0 -> 380 bytes libjava/classpath/lib/java/util/EnumMap$1.class | Bin 0 -> 1315 bytes libjava/classpath/lib/java/util/EnumMap$2.class | Bin 0 -> 1460 bytes libjava/classpath/lib/java/util/EnumMap$3.class | Bin 0 -> 1053 bytes libjava/classpath/lib/java/util/EnumMap$4.class | Bin 0 -> 1233 bytes libjava/classpath/lib/java/util/EnumMap$5.class | Bin 0 -> 1839 bytes libjava/classpath/lib/java/util/EnumMap$6.class | Bin 0 -> 1753 bytes libjava/classpath/lib/java/util/EnumMap$7.class | Bin 0 -> 1307 bytes libjava/classpath/lib/java/util/EnumMap.class | Bin 0 -> 5826 bytes libjava/classpath/lib/java/util/EnumSet$1.class | Bin 0 -> 1389 bytes libjava/classpath/lib/java/util/EnumSet.class | Bin 0 -> 8349 bytes libjava/classpath/lib/java/util/Enumeration.class | Bin 0 -> 269 bytes .../classpath/lib/java/util/EventListener.class | Bin 0 -> 117 bytes .../lib/java/util/EventListenerProxy.class | Bin 0 -> 546 bytes libjava/classpath/lib/java/util/EventObject.class | Bin 0 -> 1140 bytes .../FormatFlagsConversionMismatchException.class | Bin 0 -> 1111 bytes libjava/classpath/lib/java/util/Formattable.class | Bin 0 -> 162 bytes .../classpath/lib/java/util/FormattableFlags.class | Bin 0 -> 562 bytes .../java/util/Formatter$BigDecimalLayoutForm.class | Bin 0 -> 1177 bytes libjava/classpath/lib/java/util/Formatter.class | Bin 0 -> 17740 bytes .../lib/java/util/FormatterClosedException.class | Bin 0 -> 400 bytes .../lib/java/util/GregorianCalendar.class | Bin 0 -> 14556 bytes libjava/classpath/lib/java/util/HashMap$1.class | Bin 0 -> 1222 bytes libjava/classpath/lib/java/util/HashMap$2.class | Bin 0 -> 898 bytes libjava/classpath/lib/java/util/HashMap$3.class | Bin 0 -> 1494 bytes .../lib/java/util/HashMap$HashEntry.class | Bin 0 -> 1008 bytes .../lib/java/util/HashMap$HashIterator.class | Bin 0 -> 1854 bytes libjava/classpath/lib/java/util/HashMap.class | Bin 0 -> 8875 bytes libjava/classpath/lib/java/util/HashSet.class | Bin 0 -> 3994 bytes libjava/classpath/lib/java/util/Hashtable$1.class | Bin 0 -> 1217 bytes libjava/classpath/lib/java/util/Hashtable$2.class | Bin 0 -> 926 bytes libjava/classpath/lib/java/util/Hashtable$3.class | Bin 0 -> 1530 bytes .../lib/java/util/Hashtable$EntryEnumerator.class | Bin 0 -> 1475 bytes .../lib/java/util/Hashtable$EntryIterator.class | Bin 0 -> 1861 bytes .../lib/java/util/Hashtable$HashEntry.class | Bin 0 -> 1054 bytes .../lib/java/util/Hashtable$KeyEnumerator.class | Bin 0 -> 1278 bytes .../lib/java/util/Hashtable$KeyIterator.class | Bin 0 -> 1132 bytes .../lib/java/util/Hashtable$ValueEnumerator.class | Bin 0 -> 1286 bytes .../lib/java/util/Hashtable$ValueIterator.class | Bin 0 -> 1140 bytes libjava/classpath/lib/java/util/Hashtable.class | Bin 0 -> 10367 bytes .../lib/java/util/IdentityHashMap$1.class | Bin 0 -> 1915 bytes .../lib/java/util/IdentityHashMap$2.class | Bin 0 -> 1786 bytes .../lib/java/util/IdentityHashMap$3.class | Bin 0 -> 1412 bytes .../java/util/IdentityHashMap$IdentityEntry.class | Bin 0 -> 2554 bytes .../util/IdentityHashMap$IdentityIterator.class | Bin 0 -> 1900 bytes .../classpath/lib/java/util/IdentityHashMap.class | Bin 0 -> 6772 bytes .../util/IllegalFormatCodePointException.class | Bin 0 -> 625 bytes .../util/IllegalFormatConversionException.class | Bin 0 -> 1364 bytes .../lib/java/util/IllegalFormatException.class | Bin 0 -> 534 bytes .../java/util/IllegalFormatFlagsException.class | Bin 0 -> 881 bytes .../util/IllegalFormatPrecisionException.class | Bin 0 -> 821 bytes .../java/util/IllegalFormatWidthException.class | Bin 0 -> 801 bytes .../lib/java/util/InputMismatchException.class | Bin 0 -> 466 bytes .../util/InvalidPropertiesFormatException.class | Bin 0 -> 1142 bytes libjava/classpath/lib/java/util/Iterator.class | Bin 0 -> 271 bytes .../classpath/lib/java/util/LinkedHashMap$1.class | Bin 0 -> 1521 bytes .../java/util/LinkedHashMap$LinkedHashEntry.class | Bin 0 -> 1630 bytes .../classpath/lib/java/util/LinkedHashMap.class | Bin 0 -> 3388 bytes .../classpath/lib/java/util/LinkedHashSet.class | Bin 0 -> 1400 bytes .../classpath/lib/java/util/LinkedList$Entry.class | Bin 0 -> 719 bytes .../lib/java/util/LinkedList$LinkedListItr.class | Bin 0 -> 3062 bytes libjava/classpath/lib/java/util/LinkedList.class | Bin 0 -> 9888 bytes libjava/classpath/lib/java/util/List.class | Bin 0 -> 1427 bytes libjava/classpath/lib/java/util/ListIterator.class | Bin 0 -> 506 bytes .../lib/java/util/ListResourceBundle.class | Bin 0 -> 1614 bytes libjava/classpath/lib/java/util/Locale.class | Bin 0 -> 16086 bytes libjava/classpath/lib/java/util/Map$Entry.class | Bin 0 -> 480 bytes libjava/classpath/lib/java/util/Map.class | Bin 0 -> 935 bytes .../java/util/MissingFormatArgumentException.class | Bin 0 -> 917 bytes .../java/util/MissingFormatWidthException.class | Bin 0 -> 890 bytes .../lib/java/util/MissingResourceException.class | Bin 0 -> 770 bytes libjava/classpath/lib/java/util/NavigableMap.class | Bin 0 -> 1538 bytes libjava/classpath/lib/java/util/NavigableSet.class | Bin 0 -> 1179 bytes .../lib/java/util/NoSuchElementException.class | Bin 0 -> 529 bytes libjava/classpath/lib/java/util/Observable.class | Bin 0 -> 2016 bytes libjava/classpath/lib/java/util/Observer.class | Bin 0 -> 170 bytes .../classpath/lib/java/util/PriorityQueue$1.class | Bin 0 -> 1094 bytes .../classpath/lib/java/util/PriorityQueue.class | Bin 0 -> 5551 bytes libjava/classpath/lib/java/util/Properties.class | Bin 0 -> 12084 bytes .../lib/java/util/PropertyPermission.class | Bin 0 -> 3334 bytes .../java/util/PropertyPermissionCollection.class | Bin 0 -> 2452 bytes .../lib/java/util/PropertyResourceBundle.class | Bin 0 -> 1762 bytes libjava/classpath/lib/java/util/Queue.class | Bin 0 -> 426 bytes libjava/classpath/lib/java/util/Random.class | Bin 0 -> 2327 bytes libjava/classpath/lib/java/util/RandomAccess.class | Bin 0 -> 115 bytes .../classpath/lib/java/util/ResourceBundle$1.class | Bin 0 -> 662 bytes .../lib/java/util/ResourceBundle$BundleKey.class | Bin 0 -> 1438 bytes .../classpath/lib/java/util/ResourceBundle.class | Bin 0 -> 6232 bytes libjava/classpath/lib/java/util/Set.class | Bin 0 -> 831 bytes .../classpath/lib/java/util/SimpleTimeZone.class | Bin 0 -> 10254 bytes libjava/classpath/lib/java/util/SortedMap.class | Bin 0 -> 669 bytes libjava/classpath/lib/java/util/SortedSet.class | Bin 0 -> 634 bytes libjava/classpath/lib/java/util/Stack.class | Bin 0 -> 1548 bytes .../classpath/lib/java/util/StringTokenizer.class | Bin 0 -> 2332 bytes libjava/classpath/lib/java/util/TimeZone$1.class | Bin 0 -> 1134 bytes libjava/classpath/lib/java/util/TimeZone.class | Bin 0 -> 27535 bytes .../classpath/lib/java/util/Timer$Scheduler.class | Bin 0 -> 1292 bytes .../classpath/lib/java/util/Timer$TaskQueue.class | Bin 0 -> 2929 bytes libjava/classpath/lib/java/util/Timer.class | Bin 0 -> 4067 bytes libjava/classpath/lib/java/util/TimerTask.class | Bin 0 -> 681 bytes .../lib/java/util/TooManyListenersException.class | Bin 0 -> 531 bytes libjava/classpath/lib/java/util/TreeMap$1.class | Bin 0 -> 2442 bytes libjava/classpath/lib/java/util/TreeMap$2.class | Bin 0 -> 1770 bytes libjava/classpath/lib/java/util/TreeMap$3.class | Bin 0 -> 1318 bytes libjava/classpath/lib/java/util/TreeMap$4.class | Bin 0 -> 1913 bytes libjava/classpath/lib/java/util/TreeMap$5.class | Bin 0 -> 1456 bytes libjava/classpath/lib/java/util/TreeMap$6.class | Bin 0 -> 938 bytes libjava/classpath/lib/java/util/TreeMap$Node.class | Bin 0 -> 976 bytes .../classpath/lib/java/util/TreeMap$SubMap.class | Bin 0 -> 5456 bytes .../lib/java/util/TreeMap$TreeIterator.class | Bin 0 -> 1805 bytes libjava/classpath/lib/java/util/TreeMap.class | Bin 0 -> 13896 bytes libjava/classpath/lib/java/util/TreeSet.class | Bin 0 -> 5980 bytes libjava/classpath/lib/java/util/UUID.class | Bin 0 -> 4915 bytes .../util/UnknownFormatConversionException.class | Bin 0 -> 875 bytes .../java/util/UnknownFormatFlagsException.class | Bin 0 -> 872 bytes libjava/classpath/lib/java/util/VMTimeZone.class | Bin 0 -> 4238 bytes libjava/classpath/lib/java/util/Vector$1.class | Bin 0 -> 977 bytes libjava/classpath/lib/java/util/Vector.class | Bin 0 -> 10887 bytes .../classpath/lib/java/util/WeakHashMap$1.class | Bin 0 -> 584 bytes .../classpath/lib/java/util/WeakHashMap$2.class | Bin 0 -> 2719 bytes .../util/WeakHashMap$WeakBucket$WeakEntry.class | Bin 0 -> 2131 bytes .../lib/java/util/WeakHashMap$WeakBucket.class | Bin 0 -> 1472 bytes .../lib/java/util/WeakHashMap$WeakEntrySet.class | Bin 0 -> 880 bytes libjava/classpath/lib/java/util/WeakHashMap.class | Bin 0 -> 6368 bytes .../util/concurrent/AbstractExecutorService.class | Bin 0 -> 8804 bytes .../util/concurrent/ArrayBlockingQueue$Itr.class | Bin 0 -> 2191 bytes .../java/util/concurrent/ArrayBlockingQueue.class | Bin 0 -> 9946 bytes .../lib/java/util/concurrent/BlockingDeque.class | Bin 0 -> 1518 bytes .../lib/java/util/concurrent/BlockingQueue.class | Bin 0 -> 982 bytes .../util/concurrent/BrokenBarrierException.class | Bin 0 -> 541 bytes .../lib/java/util/concurrent/Callable.class | Bin 0 -> 283 bytes .../util/concurrent/CancellationException.class | Bin 0 -> 550 bytes .../java/util/concurrent/CompletionService.class | Bin 0 -> 855 bytes .../ConcurrentHashMap$EntryIterator.class | Bin 0 -> 1504 bytes .../concurrent/ConcurrentHashMap$EntrySet.class | Bin 0 -> 1751 bytes .../concurrent/ConcurrentHashMap$HashEntry.class | Bin 0 -> 1373 bytes .../ConcurrentHashMap$HashIterator.class | Bin 0 -> 2413 bytes .../concurrent/ConcurrentHashMap$KeyIterator.class | Bin 0 -> 1138 bytes .../util/concurrent/ConcurrentHashMap$KeySet.class | Bin 0 -> 1274 bytes .../concurrent/ConcurrentHashMap$Segment.class | Bin 0 -> 6776 bytes .../ConcurrentHashMap$ValueIterator.class | Bin 0 -> 1146 bytes .../util/concurrent/ConcurrentHashMap$Values.class | Bin 0 -> 1151 bytes .../ConcurrentHashMap$WriteThroughEntry.class | Bin 0 -> 1272 bytes .../java/util/concurrent/ConcurrentHashMap.class | Bin 0 -> 10684 bytes .../concurrent/ConcurrentLinkedQueue$Itr.class | Bin 0 -> 1874 bytes .../concurrent/ConcurrentLinkedQueue$Node.class | Bin 0 -> 3245 bytes .../util/concurrent/ConcurrentLinkedQueue.class | Bin 0 -> 6269 bytes .../lib/java/util/concurrent/ConcurrentMap.class | Bin 0 -> 534 bytes .../util/concurrent/ConcurrentNavigableMap.class | Bin 0 -> 1363 bytes ...rentSkipListMap$ComparableUsingComparator.class | Bin 0 -> 1303 bytes .../ConcurrentSkipListMap$EntryIterator.class | Bin 0 -> 1420 bytes .../ConcurrentSkipListMap$EntrySet.class | Bin 0 -> 3244 bytes .../ConcurrentSkipListMap$HeadIndex.class | Bin 0 -> 1570 bytes .../concurrent/ConcurrentSkipListMap$Index.class | Bin 0 -> 3030 bytes .../concurrent/ConcurrentSkipListMap$Iter.class | Bin 0 -> 1873 bytes .../ConcurrentSkipListMap$KeyIterator.class | Bin 0 -> 1106 bytes .../concurrent/ConcurrentSkipListMap$KeySet.class | Bin 0 -> 6690 bytes .../concurrent/ConcurrentSkipListMap$Node.class | Bin 0 -> 4161 bytes ...entSkipListMap$SubMap$SubMapEntryIterator.class | Bin 0 -> 1564 bytes .../ConcurrentSkipListMap$SubMap$SubMapIter.class | Bin 0 -> 2947 bytes ...rrentSkipListMap$SubMap$SubMapKeyIterator.class | Bin 0 -> 1250 bytes ...entSkipListMap$SubMap$SubMapValueIterator.class | Bin 0 -> 1090 bytes .../concurrent/ConcurrentSkipListMap$SubMap.class | Bin 0 -> 18179 bytes .../ConcurrentSkipListMap$ValueIterator.class | Bin 0 -> 946 bytes .../concurrent/ConcurrentSkipListMap$Values.class | Bin 0 -> 2209 bytes .../util/concurrent/ConcurrentSkipListMap.class | Bin 0 -> 29603 bytes .../util/concurrent/ConcurrentSkipListSet.class | Bin 0 -> 9070 bytes .../util/concurrent/CopyOnWriteArrayList.class | Bin 0 -> 6845 bytes .../java/util/concurrent/CopyOnWriteArraySet.class | Bin 0 -> 3911 bytes .../java/util/concurrent/CountDownLatch$Sync.class | Bin 0 -> 1003 bytes .../lib/java/util/concurrent/CountDownLatch.class | Bin 0 -> 1704 bytes .../util/concurrent/CyclicBarrier$Generation.class | Bin 0 -> 565 bytes .../lib/java/util/concurrent/CyclicBarrier.class | Bin 0 -> 3723 bytes .../lib/java/util/concurrent/DelayQueue$Itr.class | Bin 0 -> 1914 bytes .../lib/java/util/concurrent/DelayQueue.class | Bin 0 -> 8027 bytes .../lib/java/util/concurrent/Delayed.class | Bin 0 -> 295 bytes .../lib/java/util/concurrent/Exchanger$Node.class | Bin 0 -> 624 bytes .../lib/java/util/concurrent/Exchanger$Slot.class | Bin 0 -> 791 bytes .../lib/java/util/concurrent/Exchanger.class | Bin 0 -> 5987 bytes .../java/util/concurrent/ExecutionException.class | Bin 0 -> 816 bytes .../lib/java/util/concurrent/Executor.class | Bin 0 -> 162 bytes .../ExecutorCompletionService$QueueingFuture.class | Bin 0 -> 1361 bytes .../concurrent/ExecutorCompletionService.class | Bin 0 -> 4452 bytes .../lib/java/util/concurrent/ExecutorService.class | Bin 0 -> 1948 bytes .../lib/java/util/concurrent/Executors$1.class | Bin 0 -> 1313 bytes .../lib/java/util/concurrent/Executors$2.class | Bin 0 -> 2030 bytes .../lib/java/util/concurrent/Executors$3.class | Bin 0 -> 1437 bytes .../lib/java/util/concurrent/Executors$4.class | Bin 0 -> 1349 bytes .../lib/java/util/concurrent/Executors$5.class | Bin 0 -> 867 bytes .../lib/java/util/concurrent/Executors$6.class | Bin 0 -> 951 bytes .../Executors$DefaultThreadFactory.class | Bin 0 -> 2039 bytes .../Executors$DelegatedExecutorService.class | Bin 0 -> 3943 bytes ...ecutors$DelegatedScheduledExecutorService.class | Bin 0 -> 2190 bytes ...utors$FinalizableDelegatedExecutorService.class | Bin 0 -> 718 bytes .../concurrent/Executors$PrivilegedCallable.class | Bin 0 -> 2052 bytes ...PrivilegedCallableUsingCurrentClassLoader.class | Bin 0 -> 2834 bytes .../Executors$PrivilegedThreadFactory.class | Bin 0 -> 1674 bytes .../concurrent/Executors$RunnableAdapter.class | Bin 0 -> 1067 bytes .../lib/java/util/concurrent/Executors.class | Bin 0 -> 6410 bytes .../lib/java/util/concurrent/Future.class | Bin 0 -> 573 bytes .../lib/java/util/concurrent/FutureTask$Sync.class | Bin 0 -> 3705 bytes .../lib/java/util/concurrent/FutureTask.class | Bin 0 -> 3262 bytes .../LinkedBlockingDeque$AbstractItr.class | Bin 0 -> 1533 bytes .../LinkedBlockingDeque$DescendingItr.class | Bin 0 -> 1589 bytes .../util/concurrent/LinkedBlockingDeque$Itr.class | Bin 0 -> 1537 bytes .../util/concurrent/LinkedBlockingDeque$Node.class | Bin 0 -> 1107 bytes .../java/util/concurrent/LinkedBlockingDeque.class | Bin 0 -> 15659 bytes .../util/concurrent/LinkedBlockingQueue$Itr.class | Bin 0 -> 3118 bytes .../util/concurrent/LinkedBlockingQueue$Node.class | Bin 0 -> 792 bytes .../java/util/concurrent/LinkedBlockingQueue.class | Bin 0 -> 11808 bytes .../concurrent/PriorityBlockingQueue$Itr.class | Bin 0 -> 1869 bytes .../util/concurrent/PriorityBlockingQueue.class | Bin 0 -> 8073 bytes .../concurrent/RejectedExecutionException.class | Bin 0 -> 847 bytes .../util/concurrent/RejectedExecutionHandler.class | Bin 0 -> 245 bytes .../lib/java/util/concurrent/RunnableFuture.class | Bin 0 -> 328 bytes .../util/concurrent/RunnableScheduledFuture.class | Bin 0 -> 410 bytes .../util/concurrent/ScheduledExecutorService.class | Bin 0 -> 960 bytes .../lib/java/util/concurrent/ScheduledFuture.class | Bin 0 -> 330 bytes .../concurrent/ScheduledThreadPoolExecutor$1.class | Bin 0 -> 1597 bytes ...eduledThreadPoolExecutor$DelayedWorkQueue.class | Bin 0 -> 5234 bytes ...ledThreadPoolExecutor$ScheduledFutureTask.class | Bin 0 -> 4323 bytes .../concurrent/ScheduledThreadPoolExecutor.class | Bin 0 -> 9440 bytes .../java/util/concurrent/Semaphore$FairSync.class | Bin 0 -> 962 bytes .../util/concurrent/Semaphore$NonfairSync.class | Bin 0 -> 657 bytes .../lib/java/util/concurrent/Semaphore$Sync.class | Bin 0 -> 1293 bytes .../lib/java/util/concurrent/Semaphore.class | Bin 0 -> 3504 bytes .../SynchronousQueue$EmptyIterator.class | Bin 0 -> 1052 bytes .../SynchronousQueue$FifoWaitQueue.class | Bin 0 -> 600 bytes .../SynchronousQueue$LifoWaitQueue.class | Bin 0 -> 600 bytes .../SynchronousQueue$TransferQueue$QNode.class | Bin 0 -> 2398 bytes .../SynchronousQueue$TransferQueue.class | Bin 0 -> 5213 bytes .../SynchronousQueue$TransferStack$SNode.class | Bin 0 -> 2334 bytes .../SynchronousQueue$TransferStack.class | Bin 0 -> 5011 bytes .../concurrent/SynchronousQueue$Transferer.class | Bin 0 -> 486 bytes .../concurrent/SynchronousQueue$WaitQueue.class | Bin 0 -> 449 bytes .../java/util/concurrent/SynchronousQueue.class | Bin 0 -> 6851 bytes .../lib/java/util/concurrent/ThreadFactory.class | Bin 0 -> 191 bytes .../ThreadPoolExecutor$AbortPolicy.class | Bin 0 -> 792 bytes .../ThreadPoolExecutor$CallerRunsPolicy.class | Bin 0 -> 832 bytes .../ThreadPoolExecutor$DiscardOldestPolicy.class | Bin 0 -> 1002 bytes .../ThreadPoolExecutor$DiscardPolicy.class | Bin 0 -> 733 bytes .../concurrent/ThreadPoolExecutor$Worker.class | Bin 0 -> 2276 bytes .../java/util/concurrent/ThreadPoolExecutor.class | Bin 0 -> 14974 bytes .../lib/java/util/concurrent/TimeUnit$1.class | Bin 0 -> 1382 bytes .../lib/java/util/concurrent/TimeUnit$2.class | Bin 0 -> 1414 bytes .../lib/java/util/concurrent/TimeUnit$3.class | Bin 0 -> 1417 bytes .../lib/java/util/concurrent/TimeUnit$4.class | Bin 0 -> 1440 bytes .../lib/java/util/concurrent/TimeUnit$5.class | Bin 0 -> 1445 bytes .../lib/java/util/concurrent/TimeUnit$6.class | Bin 0 -> 1468 bytes .../lib/java/util/concurrent/TimeUnit$7.class | Bin 0 -> 1482 bytes .../lib/java/util/concurrent/TimeUnit.class | Bin 0 -> 3823 bytes .../java/util/concurrent/TimeoutException.class | Bin 0 -> 523 bytes .../util/concurrent/atomic/AtomicBoolean.class | Bin 0 -> 2174 bytes .../util/concurrent/atomic/AtomicInteger.class | Bin 0 -> 3106 bytes .../concurrent/atomic/AtomicIntegerArray.class | Bin 0 -> 3528 bytes ...ieldUpdater$AtomicIntegerFieldUpdaterImpl.class | Bin 0 -> 4605 bytes .../atomic/AtomicIntegerFieldUpdater.class | Bin 0 -> 2744 bytes .../java/util/concurrent/atomic/AtomicLong.class | Bin 0 -> 3192 bytes .../util/concurrent/atomic/AtomicLongArray.class | Bin 0 -> 3538 bytes .../atomic/AtomicLongFieldUpdater$CASUpdater.class | Bin 0 -> 4511 bytes .../AtomicLongFieldUpdater$LockedUpdater.class | Bin 0 -> 4539 bytes .../concurrent/atomic/AtomicLongFieldUpdater.class | Bin 0 -> 2909 bytes ...micMarkableReference$ReferenceBooleanPair.class | Bin 0 -> 1189 bytes .../atomic/AtomicMarkableReference.class | Bin 0 -> 3193 bytes .../util/concurrent/atomic/AtomicReference.class | Bin 0 -> 2739 bytes .../concurrent/atomic/AtomicReferenceArray.class | Bin 0 -> 3528 bytes ...ldUpdater$AtomicReferenceFieldUpdaterImpl.class | Bin 0 -> 5338 bytes .../atomic/AtomicReferenceFieldUpdater.class | Bin 0 -> 1995 bytes ...omicStampedReference$ReferenceIntegerPair.class | Bin 0 -> 1186 bytes .../concurrent/atomic/AtomicStampedReference.class | Bin 0 -> 3208 bytes .../locks/AbstractOwnableSynchronizer.class | Bin 0 -> 754 bytes ...actQueuedLongSynchronizer$ConditionObject.class | Bin 0 -> 6818 bytes .../AbstractQueuedLongSynchronizer$Node.class | Bin 0 -> 1553 bytes .../locks/AbstractQueuedLongSynchronizer.class | Bin 0 -> 14442 bytes ...bstractQueuedSynchronizer$ConditionObject.class | Bin 0 -> 6683 bytes .../locks/AbstractQueuedSynchronizer$Node.class | Bin 0 -> 1529 bytes .../locks/AbstractQueuedSynchronizer.class | Bin 0 -> 14257 bytes .../lib/java/util/concurrent/locks/Condition.class | Bin 0 -> 422 bytes .../lib/java/util/concurrent/locks/Lock.class | Bin 0 -> 387 bytes .../java/util/concurrent/locks/LockSupport.class | Bin 0 -> 2227 bytes .../java/util/concurrent/locks/ReadWriteLock.class | Bin 0 -> 211 bytes .../concurrent/locks/ReentrantLock$FairSync.class | Bin 0 -> 1304 bytes .../locks/ReentrantLock$NonfairSync.class | Bin 0 -> 960 bytes .../util/concurrent/locks/ReentrantLock$Sync.class | Bin 0 -> 2389 bytes .../java/util/concurrent/locks/ReentrantLock.class | Bin 0 -> 4600 bytes .../locks/ReentrantReadWriteLock$FairSync.class | Bin 0 -> 837 bytes .../locks/ReentrantReadWriteLock$NonfairSync.class | Bin 0 -> 856 bytes .../locks/ReentrantReadWriteLock$ReadLock.class | Bin 0 -> 2473 bytes .../ReentrantReadWriteLock$Sync$HoldCounter.class | Bin 0 -> 846 bytes ...ReadWriteLock$Sync$ThreadLocalHoldCounter.class | Bin 0 -> 1021 bytes .../locks/ReentrantReadWriteLock$Sync.class | Bin 0 -> 5082 bytes .../locks/ReentrantReadWriteLock$WriteLock.class | Bin 0 -> 2795 bytes .../concurrent/locks/ReentrantReadWriteLock.class | Bin 0 -> 5343 bytes .../lib/java/util/jar/Attributes$Name.class | Bin 0 -> 2920 bytes .../classpath/lib/java/util/jar/Attributes.class | Bin 0 -> 3812 bytes libjava/classpath/lib/java/util/jar/JarEntry.class | Bin 0 -> 1895 bytes .../classpath/lib/java/util/jar/JarException.class | Bin 0 -> 508 bytes .../java/util/jar/JarFile$EntryInputStream.class | Bin 0 -> 5747 bytes .../lib/java/util/jar/JarFile$JarEnumeration.class | Bin 0 -> 2148 bytes libjava/classpath/lib/java/util/jar/JarFile.class | Bin 0 -> 14110 bytes .../lib/java/util/jar/JarInputStream.class | Bin 0 -> 2192 bytes .../lib/java/util/jar/JarOutputStream.class | Bin 0 -> 1201 bytes libjava/classpath/lib/java/util/jar/Manifest.class | Bin 0 -> 2568 bytes .../lib/java/util/logging/ConsoleHandler.class | Bin 0 -> 938 bytes .../lib/java/util/logging/ErrorManager.class | Bin 0 -> 1654 bytes .../lib/java/util/logging/FileHandler$ostr.class | Bin 0 -> 1249 bytes .../lib/java/util/logging/FileHandler.class | Bin 0 -> 6238 bytes .../classpath/lib/java/util/logging/Filter.class | Bin 0 -> 167 bytes .../lib/java/util/logging/Formatter.class | Bin 0 -> 1482 bytes .../classpath/lib/java/util/logging/Handler.class | Bin 0 -> 2968 bytes .../classpath/lib/java/util/logging/Level.class | Bin 0 -> 3397 bytes .../lib/java/util/logging/LogManager$1.class | Bin 0 -> 2265 bytes .../lib/java/util/logging/LogManager.class | Bin 0 -> 13097 bytes .../lib/java/util/logging/LogRecord.class | Bin 0 -> 4865 bytes .../classpath/lib/java/util/logging/Logger$1.class | Bin 0 -> 588 bytes .../classpath/lib/java/util/logging/Logger.class | Bin 0 -> 12065 bytes .../lib/java/util/logging/LoggingMXBean.class | Bin 0 -> 395 bytes .../lib/java/util/logging/LoggingPermission.class | Bin 0 -> 852 bytes .../lib/java/util/logging/MemoryHandler.class | Bin 0 -> 2945 bytes .../lib/java/util/logging/SimpleFormatter.class | Bin 0 -> 1997 bytes .../lib/java/util/logging/SocketHandler.class | Bin 0 -> 1932 bytes .../lib/java/util/logging/StreamHandler.class | Bin 0 -> 5354 bytes .../lib/java/util/logging/XMLFormatter.class | Bin 0 -> 4482 bytes .../java/util/prefs/AbstractPreferences$1.class | Bin 0 -> 1009 bytes .../java/util/prefs/AbstractPreferences$2.class | Bin 0 -> 1104 bytes .../lib/java/util/prefs/AbstractPreferences.class | Bin 0 -> 15751 bytes .../java/util/prefs/BackingStoreException.class | Bin 0 -> 1046 bytes .../prefs/InvalidPreferencesFormatException.class | Bin 0 -> 1236 bytes .../lib/java/util/prefs/NodeChangeEvent.class | Bin 0 -> 1309 bytes .../lib/java/util/prefs/NodeChangeListener.class | Bin 0 -> 247 bytes .../java/util/prefs/PreferenceChangeEvent.class | Bin 0 -> 1485 bytes .../java/util/prefs/PreferenceChangeListener.class | Bin 0 -> 248 bytes .../lib/java/util/prefs/Preferences$1.class | Bin 0 -> 1282 bytes .../lib/java/util/prefs/Preferences.class | Bin 0 -> 5352 bytes .../lib/java/util/prefs/PreferencesFactory.class | Bin 0 -> 207 bytes .../lib/java/util/regex/MatchResult.class | Bin 0 -> 270 bytes .../classpath/lib/java/util/regex/Matcher.class | Bin 0 -> 5016 bytes .../classpath/lib/java/util/regex/Pattern.class | Bin 0 -> 4266 bytes .../java/util/regex/PatternSyntaxException.class | Bin 0 -> 1455 bytes libjava/classpath/lib/java/util/zip/Adler32.class | Bin 0 -> 1181 bytes libjava/classpath/lib/java/util/zip/CRC32.class | Bin 0 -> 1280 bytes .../lib/java/util/zip/CheckedInputStream.class | Bin 0 -> 1443 bytes .../lib/java/util/zip/CheckedOutputStream.class | Bin 0 -> 1062 bytes libjava/classpath/lib/java/util/zip/Checksum.class | Bin 0 -> 200 bytes .../lib/java/util/zip/DataFormatException.class | Bin 0 -> 518 bytes libjava/classpath/lib/java/util/zip/Deflater.class | Bin 0 -> 2397 bytes .../lib/java/util/zip/DeflaterOutputStream.class | Bin 0 -> 2157 bytes .../lib/java/util/zip/GZIPInputStream.class | Bin 0 -> 4268 bytes .../lib/java/util/zip/GZIPOutputStream.class | Bin 0 -> 1763 bytes libjava/classpath/lib/java/util/zip/Inflater.class | Bin 0 -> 1441 bytes .../lib/java/util/zip/InflaterInputStream.class | Bin 0 -> 3282 bytes .../classpath/lib/java/util/zip/ZipConstants.class | Bin 0 -> 1279 bytes libjava/classpath/lib/java/util/zip/ZipEntry.class | Bin 0 -> 5378 bytes .../classpath/lib/java/util/zip/ZipException.class | Bin 0 -> 497 bytes .../classpath/lib/java/util/zip/ZipFile$1.class | Bin 0 -> 1024 bytes .../java/util/zip/ZipFile$PartialInputStream.class | Bin 0 -> 5138 bytes .../util/zip/ZipFile$ZipEntryEnumeration.class | Bin 0 -> 1173 bytes libjava/classpath/lib/java/util/zip/ZipFile.class | Bin 0 -> 7716 bytes .../lib/java/util/zip/ZipInputStream.class | Bin 0 -> 6130 bytes .../lib/java/util/zip/ZipOutputStream.class | Bin 0 -> 6670 bytes .../lib/javax/accessibility/Accessible.class | Bin 0 -> 196 bytes .../lib/javax/accessibility/AccessibleAction.class | Bin 0 -> 449 bytes .../AccessibleAttributeSequence.class | Bin 0 -> 449 bytes .../lib/javax/accessibility/AccessibleBundle.class | Bin 0 -> 919 bytes .../javax/accessibility/AccessibleComponent.class | Bin 0 -> 1188 bytes .../javax/accessibility/AccessibleContext.class | Bin 0 -> 5243 bytes .../accessibility/AccessibleEditableText.class | Bin 0 -> 532 bytes .../AccessibleExtendedComponent.class | Bin 0 -> 361 bytes .../accessibility/AccessibleExtendedTable.class | Bin 0 -> 291 bytes .../accessibility/AccessibleExtendedText.class | Bin 0 -> 471 bytes .../javax/accessibility/AccessibleHyperlink.class | Bin 0 -> 678 bytes .../javax/accessibility/AccessibleHypertext.class | Bin 0 -> 305 bytes .../lib/javax/accessibility/AccessibleIcon.class | Bin 0 -> 327 bytes .../javax/accessibility/AccessibleKeyBinding.class | Bin 0 -> 244 bytes .../javax/accessibility/AccessibleRelation.class | Bin 0 -> 2740 bytes .../accessibility/AccessibleRelationSet.class | Bin 0 -> 2893 bytes .../accessibility/AccessibleResourceBundle.class | Bin 0 -> 481 bytes .../lib/javax/accessibility/AccessibleRole.class | Bin 0 -> 4524 bytes .../javax/accessibility/AccessibleSelection.class | Bin 0 -> 453 bytes .../lib/javax/accessibility/AccessibleState.class | Bin 0 -> 2352 bytes .../javax/accessibility/AccessibleStateSet.class | Bin 0 -> 2107 bytes .../javax/accessibility/AccessibleStreamable.class | Bin 0 -> 284 bytes .../lib/javax/accessibility/AccessibleTable.class | Bin 0 -> 1206 bytes .../accessibility/AccessibleTableModelChange.class | Bin 0 -> 379 bytes .../lib/javax/accessibility/AccessibleText.class | Bin 0 -> 668 bytes .../accessibility/AccessibleTextSequence.class | Bin 0 -> 415 bytes .../lib/javax/accessibility/AccessibleValue.class | Bin 0 -> 322 bytes .../lib/javax/crypto/BadPaddingException.class | Bin 0 -> 539 bytes libjava/classpath/lib/javax/crypto/Cipher.class | Bin 0 -> 11080 bytes .../lib/javax/crypto/CipherInputStream.class | Bin 0 -> 4883 bytes .../lib/javax/crypto/CipherOutputStream.class | Bin 0 -> 1742 bytes libjava/classpath/lib/javax/crypto/CipherSpi.class | Bin 0 -> 2771 bytes .../lib/javax/crypto/EncryptedPrivateKeyInfo.class | Bin 0 -> 4351 bytes .../lib/javax/crypto/ExemptionMechanism.class | Bin 0 -> 4810 bytes .../javax/crypto/ExemptionMechanismException.class | Bin 0 -> 563 bytes .../lib/javax/crypto/ExemptionMechanismSpi.class | Bin 0 -> 855 bytes .../javax/crypto/IllegalBlockSizeException.class | Bin 0 -> 557 bytes .../classpath/lib/javax/crypto/KeyAgreement.class | Bin 0 -> 4848 bytes .../lib/javax/crypto/KeyAgreementSpi.class | Bin 0 -> 952 bytes .../classpath/lib/javax/crypto/KeyGenerator.class | Bin 0 -> 4125 bytes .../lib/javax/crypto/KeyGeneratorSpi.class | Bin 0 -> 617 bytes libjava/classpath/lib/javax/crypto/Mac.class | Bin 0 -> 5444 bytes libjava/classpath/lib/javax/crypto/MacSpi.class | Bin 0 -> 1179 bytes .../lib/javax/crypto/NoSuchPaddingException.class | Bin 0 -> 548 bytes .../classpath/lib/javax/crypto/NullCipher.class | Bin 0 -> 423 bytes .../lib/javax/crypto/NullCipherImpl.class | Bin 0 -> 2559 bytes .../classpath/lib/javax/crypto/SealedObject.class | Bin 0 -> 4493 bytes libjava/classpath/lib/javax/crypto/SecretKey.class | Bin 0 -> 201 bytes .../lib/javax/crypto/SecretKeyFactory.class | Bin 0 -> 3822 bytes .../lib/javax/crypto/SecretKeyFactorySpi.class | Bin 0 -> 713 bytes .../lib/javax/crypto/ShortBufferException.class | Bin 0 -> 542 bytes .../lib/javax/crypto/interfaces/DHKey.class | Bin 0 -> 175 bytes .../lib/javax/crypto/interfaces/DHPrivateKey.class | Bin 0 -> 304 bytes .../lib/javax/crypto/interfaces/DHPublicKey.class | Bin 0 -> 301 bytes .../lib/javax/crypto/interfaces/PBEKey.class | Bin 0 -> 299 bytes .../lib/javax/crypto/spec/DESKeySpec.class | Bin 0 -> 2243 bytes .../lib/javax/crypto/spec/DESedeKeySpec.class | Bin 0 -> 1230 bytes .../lib/javax/crypto/spec/DHGenParameterSpec.class | Bin 0 -> 642 bytes .../lib/javax/crypto/spec/DHParameterSpec.class | Bin 0 -> 947 bytes .../lib/javax/crypto/spec/DHPrivateKeySpec.class | Bin 0 -> 798 bytes .../lib/javax/crypto/spec/DHPublicKeySpec.class | Bin 0 -> 795 bytes .../lib/javax/crypto/spec/IvParameterSpec.class | Bin 0 -> 731 bytes .../lib/javax/crypto/spec/PBEKeySpec.class | Bin 0 -> 2279 bytes .../lib/javax/crypto/spec/PBEParameterSpec.class | Bin 0 -> 643 bytes .../lib/javax/crypto/spec/RC2ParameterSpec.class | Bin 0 -> 1599 bytes .../lib/javax/crypto/spec/RC5ParameterSpec.class | Bin 0 -> 1956 bytes .../lib/javax/crypto/spec/SecretKeySpec.class | Bin 0 -> 1600 bytes .../classpath/lib/javax/imageio/IIOException.class | Bin 0 -> 598 bytes libjava/classpath/lib/javax/imageio/IIOImage.class | Bin 0 -> 2986 bytes libjava/classpath/lib/javax/imageio/IIOParam.class | Bin 0 -> 4094 bytes .../lib/javax/imageio/IIOParamController.class | Bin 0 -> 180 bytes .../classpath/lib/javax/imageio/ImageIO$1.class | Bin 0 -> 1187 bytes .../imageio/ImageIO$ImageReaderIterator.class | Bin 0 -> 1779 bytes .../imageio/ImageIO$ImageWriterIterator.class | Bin 0 -> 1779 bytes .../javax/imageio/ImageIO$ReaderFormatFilter.class | Bin 0 -> 996 bytes .../imageio/ImageIO$ReaderMIMETypeFilter.class | Bin 0 -> 996 bytes .../javax/imageio/ImageIO$ReaderObjectFilter.class | Bin 0 -> 843 bytes .../javax/imageio/ImageIO$ReaderSuffixFilter.class | Bin 0 -> 994 bytes .../javax/imageio/ImageIO$TranscoderFilter.class | Bin 0 -> 1392 bytes .../javax/imageio/ImageIO$WriterFormatFilter.class | Bin 0 -> 996 bytes .../imageio/ImageIO$WriterMIMETypeFilter.class | Bin 0 -> 996 bytes .../javax/imageio/ImageIO$WriterObjectFilter.class | Bin 0 -> 1193 bytes .../javax/imageio/ImageIO$WriterSuffixFilter.class | Bin 0 -> 994 bytes libjava/classpath/lib/javax/imageio/ImageIO.class | Bin 0 -> 13182 bytes .../lib/javax/imageio/ImageReadParam.class | Bin 0 -> 2209 bytes .../classpath/lib/javax/imageio/ImageReader.class | Bin 0 -> 20387 bytes .../lib/javax/imageio/ImageTranscoder.class | Bin 0 -> 438 bytes .../lib/javax/imageio/ImageTypeSpecifier.class | Bin 0 -> 6079 bytes .../lib/javax/imageio/ImageWriteParam.class | Bin 0 -> 6550 bytes .../classpath/lib/javax/imageio/ImageWriter.class | Bin 0 -> 13487 bytes .../imageio/event/IIOReadProgressListener.class | Bin 0 -> 543 bytes .../imageio/event/IIOReadUpdateListener.class | Bin 0 -> 536 bytes .../imageio/event/IIOReadWarningListener.class | Bin 0 -> 253 bytes .../imageio/event/IIOWriteProgressListener.class | Bin 0 -> 493 bytes .../imageio/event/IIOWriteWarningListener.class | Bin 0 -> 256 bytes .../imageio/metadata/IIOInvalidTreeException.class | Bin 0 -> 953 bytes .../lib/javax/imageio/metadata/IIOMetadata.class | Bin 0 -> 5437 bytes .../imageio/metadata/IIOMetadataController.class | Bin 0 -> 207 bytes .../javax/imageio/metadata/IIOMetadataFormat.class | Bin 0 -> 2613 bytes .../imageio/metadata/IIOMetadataFormatImpl$1.class | Bin 0 -> 818 bytes ...IIOMetadataFormatImpl$IIOMetadataNodeAttr.class | Bin 0 -> 1846 bytes ...dataFormatImpl$IIOMetadataNodeAttrBounded.class | Bin 0 -> 1379 bytes ...aFormatImpl$IIOMetadataNodeAttrEnumerated.class | Bin 0 -> 1283 bytes ...etadataFormatImpl$IIOMetadataNodeAttrList.class | Bin 0 -> 1187 bytes .../IIOMetadataFormatImpl$NodeObject.class | Bin 0 -> 1419 bytes .../IIOMetadataFormatImpl$NodeObjectArray.class | Bin 0 -> 1284 bytes .../IIOMetadataFormatImpl$NodeObjectBounded.class | Bin 0 -> 1499 bytes ...IOMetadataFormatImpl$NodeObjectEnumerated.class | Bin 0 -> 1253 bytes .../imageio/metadata/IIOMetadataFormatImpl.class | Bin 0 -> 16110 bytes .../metadata/IIOMetadataNode$IIONamedNodeMap.class | Bin 0 -> 2445 bytes .../metadata/IIOMetadataNode$IIONodeList.class | Bin 0 -> 1154 bytes .../javax/imageio/metadata/IIOMetadataNode.class | Bin 0 -> 10716 bytes .../imageio/plugins/bmp/BMPImageWriteParam.class | Bin 0 -> 1248 bytes .../imageio/plugins/jpeg/JPEGHuffmanTable.class | Bin 0 -> 5297 bytes .../imageio/plugins/jpeg/JPEGImageReadParam.class | Bin 0 -> 1750 bytes .../imageio/plugins/jpeg/JPEGImageWriteParam.class | Bin 0 -> 3531 bytes .../javax/imageio/plugins/jpeg/JPEGQTable.class | Bin 0 -> 3025 bytes .../lib/javax/imageio/spi/IIORegistry.class | Bin 0 -> 2596 bytes .../lib/javax/imageio/spi/IIOServiceProvider.class | Bin 0 -> 1399 bytes .../javax/imageio/spi/ImageInputStreamSpi.class | Bin 0 -> 1458 bytes .../javax/imageio/spi/ImageOutputStreamSpi.class | Bin 0 -> 1467 bytes .../lib/javax/imageio/spi/ImageReaderSpi.class | Bin 0 -> 3023 bytes .../javax/imageio/spi/ImageReaderWriterSpi.class | Bin 0 -> 4061 bytes .../lib/javax/imageio/spi/ImageTranscoderSpi.class | Bin 0 -> 694 bytes .../lib/javax/imageio/spi/ImageWriterSpi.class | Bin 0 -> 3443 bytes .../javax/imageio/spi/RegisterableService.class | Bin 0 -> 336 bytes .../lib/javax/imageio/spi/ServiceRegistry$1.class | Bin 0 -> 1076 bytes .../lib/javax/imageio/spi/ServiceRegistry$2.class | Bin 0 -> 1168 bytes .../javax/imageio/spi/ServiceRegistry$Filter.class | Bin 0 -> 256 bytes .../lib/javax/imageio/spi/ServiceRegistry.class | Bin 0 -> 8702 bytes .../imageio/stream/FileCacheImageInputStream.class | Bin 0 -> 1455 bytes .../stream/FileCacheImageOutputStream.class | Bin 0 -> 1740 bytes .../imageio/stream/FileImageInputStream.class | Bin 0 -> 1567 bytes .../imageio/stream/FileImageOutputStream.class | Bin 0 -> 1956 bytes .../lib/javax/imageio/stream/IIOByteBuffer.class | Bin 0 -> 972 bytes .../javax/imageio/stream/ImageInputStream.class | Bin 0 -> 1680 bytes .../imageio/stream/ImageInputStreamImpl.class | Bin 0 -> 8798 bytes .../javax/imageio/stream/ImageOutputStream.class | Bin 0 -> 1056 bytes .../imageio/stream/ImageOutputStreamImpl.class | Bin 0 -> 4842 bytes .../stream/MemoryCacheImageInputStream.class | Bin 0 -> 1907 bytes .../stream/MemoryCacheImageOutputStream.class | Bin 0 -> 1612 bytes .../classpath/lib/javax/management/Attribute.class | Bin 0 -> 1293 bytes .../lib/javax/management/AttributeList.class | Bin 0 -> 1795 bytes .../management/AttributeNotFoundException.class | Bin 0 -> 502 bytes .../management/BadAttributeValueExpException.class | Bin 0 -> 1050 bytes .../management/BadBinaryOpValueExpException.class | Bin 0 -> 1167 bytes .../management/BadStringOperationException.class | Bin 0 -> 960 bytes .../lib/javax/management/DynamicMBean.class | Bin 0 -> 804 bytes .../InstanceAlreadyExistsException.class | Bin 0 -> 578 bytes .../management/InstanceNotFoundException.class | Bin 0 -> 563 bytes .../javax/management/IntrospectionException.class | Bin 0 -> 554 bytes .../management/InvalidApplicationException.class | Bin 0 -> 1044 bytes .../InvalidAttributeValueException.class | Bin 0 -> 514 bytes .../lib/javax/management/JMException.class | Bin 0 -> 440 bytes .../lib/javax/management/JMRuntimeException.class | Bin 0 -> 468 bytes .../management/ListenerNotFoundException.class | Bin 0 -> 563 bytes .../lib/javax/management/MBeanAttributeInfo.class | Bin 0 -> 3515 bytes .../javax/management/MBeanConstructorInfo.class | Bin 0 -> 2979 bytes .../lib/javax/management/MBeanException.class | Bin 0 -> 896 bytes .../lib/javax/management/MBeanFeatureInfo.class | Bin 0 -> 1654 bytes .../classpath/lib/javax/management/MBeanInfo.class | Bin 0 -> 4188 bytes .../javax/management/MBeanNotificationInfo.class | Bin 0 -> 2094 bytes .../lib/javax/management/MBeanOperationInfo.class | Bin 0 -> 4069 bytes .../lib/javax/management/MBeanParameterInfo.class | Bin 0 -> 1809 bytes .../management/MBeanPermission$NameHolder.class | Bin 0 -> 2646 bytes .../lib/javax/management/MBeanPermission.class | Bin 0 -> 4723 bytes .../lib/javax/management/MBeanRegistration.class | Bin 0 -> 408 bytes .../management/MBeanRegistrationException.class | Bin 0 -> 653 bytes .../lib/javax/management/MBeanServer.class | Bin 0 -> 4177 bytes .../lib/javax/management/MBeanServerBuilder.class | Bin 0 -> 996 bytes .../javax/management/MBeanServerConnection.class | Bin 0 -> 3243 bytes .../lib/javax/management/MBeanServerDelegate.class | Bin 0 -> 4939 bytes .../management/MBeanServerDelegateMBean.class | Bin 0 -> 395 bytes .../lib/javax/management/MBeanServerFactory.class | Bin 0 -> 6217 bytes .../javax/management/MBeanServerNotification.class | Bin 0 -> 961 bytes ...llection$MBeanServerPermissionEnumeration.class | Bin 0 -> 1404 bytes ...ermission$MBeanServerPermissionCollection.class | Bin 0 -> 2905 bytes .../javax/management/MBeanServerPermission.class | Bin 0 -> 3110 bytes .../javax/management/MBeanTrustPermission.class | Bin 0 -> 912 bytes .../management/MalformedObjectNameException.class | Bin 0 -> 572 bytes .../management/NotCompliantMBeanException.class | Bin 0 -> 566 bytes .../lib/javax/management/Notification.class | Bin 0 -> 2790 bytes .../javax/management/NotificationBroadcaster.class | Bin 0 -> 557 bytes .../lib/javax/management/NotificationEmitter.class | Bin 0 -> 392 bytes .../lib/javax/management/NotificationFilter.class | Bin 0 -> 231 bytes .../javax/management/NotificationListener.class | Bin 0 -> 253 bytes .../lib/javax/management/ObjectInstance.class | Bin 0 -> 1460 bytes .../lib/javax/management/ObjectName.class | Bin 0 -> 8761 bytes .../lib/javax/management/OperationsException.class | Bin 0 -> 537 bytes .../classpath/lib/javax/management/QueryExp.class | Bin 0 -> 486 bytes .../lib/javax/management/ReflectionException.class | Bin 0 -> 911 bytes .../javax/management/RuntimeErrorException.class | Bin 0 -> 900 bytes .../javax/management/RuntimeMBeanException.class | Bin 0 -> 959 bytes .../management/RuntimeOperationsException.class | Bin 0 -> 974 bytes .../management/ServiceNotFoundException.class | Bin 0 -> 560 bytes .../lib/javax/management/StandardMBean.class | Bin 0 -> 14040 bytes .../classpath/lib/javax/management/ValueExp.class | Bin 0 -> 531 bytes .../management/loading/ClassLoaderRepository.class | Bin 0 -> 405 bytes .../lib/javax/management/openmbean/ArrayType.class | Bin 0 -> 3898 bytes .../javax/management/openmbean/CompositeData.class | Bin 0 -> 545 bytes .../openmbean/CompositeDataSupport.class | Bin 0 -> 5405 bytes .../javax/management/openmbean/CompositeType.class | Bin 0 -> 4543 bytes .../management/openmbean/InvalidKeyException.class | Bin 0 -> 563 bytes .../openmbean/InvalidOpenTypeException.class | Bin 0 -> 578 bytes .../openmbean/KeyAlreadyExistsException.class | Bin 0 -> 581 bytes .../management/openmbean/OpenDataException.class | Bin 0 -> 551 bytes .../openmbean/OpenMBeanAttributeInfo.class | Bin 0 -> 380 bytes .../openmbean/OpenMBeanAttributeInfoSupport.class | Bin 0 -> 7086 bytes .../openmbean/OpenMBeanConstructorInfo.class | Bin 0 -> 373 bytes .../OpenMBeanConstructorInfoSupport.class | Bin 0 -> 2540 bytes .../javax/management/openmbean/OpenMBeanInfo.class | Bin 0 -> 568 bytes .../openmbean/OpenMBeanInfoSupport.class | Bin 0 -> 3351 bytes .../openmbean/OpenMBeanOperationInfo.class | Bin 0 -> 483 bytes .../openmbean/OpenMBeanOperationInfoSupport.class | Bin 0 -> 3539 bytes .../openmbean/OpenMBeanParameterInfo.class | Bin 0 -> 651 bytes .../openmbean/OpenMBeanParameterInfoSupport.class | Bin 0 -> 6517 bytes .../lib/javax/management/openmbean/OpenType.class | Bin 0 -> 2746 bytes .../javax/management/openmbean/SimpleType.class | Bin 0 -> 3353 bytes .../javax/management/openmbean/TabularData.class | Bin 0 -> 885 bytes .../management/openmbean/TabularDataSupport.class | Bin 0 -> 7234 bytes .../javax/management/openmbean/TabularType.class | Bin 0 -> 3680 bytes .../lib/javax/naming/AuthenticationException.class | Bin 0 -> 545 bytes .../AuthenticationNotSupportedException.class | Bin 0 -> 581 bytes .../classpath/lib/javax/naming/BinaryRefAddr.class | Bin 0 -> 2131 bytes libjava/classpath/lib/javax/naming/Binding.class | Bin 0 -> 1937 bytes .../lib/javax/naming/CannotProceedException.class | Bin 0 -> 1824 bytes .../lib/javax/naming/CommunicationException.class | Bin 0 -> 534 bytes .../classpath/lib/javax/naming/CompositeName.class | Bin 0 -> 6437 bytes .../classpath/lib/javax/naming/CompoundName.class | Bin 0 -> 9469 bytes .../lib/javax/naming/ConfigurationException.class | Bin 0 -> 534 bytes libjava/classpath/lib/javax/naming/Context.class | Bin 0 -> 3164 bytes .../javax/naming/ContextNotEmptyException.class | Bin 0 -> 540 bytes .../lib/javax/naming/InitialContext.class | Bin 0 -> 10044 bytes .../naming/InsufficientResourcesException.class | Bin 0 -> 558 bytes .../javax/naming/InterruptedNamingException.class | Bin 0 -> 546 bytes .../lib/javax/naming/InvalidNameException.class | Bin 0 -> 528 bytes .../lib/javax/naming/LimitExceededException.class | Bin 0 -> 534 bytes .../classpath/lib/javax/naming/LinkException.class | Bin 0 -> 2151 bytes .../lib/javax/naming/LinkLoopException.class | Bin 0 -> 517 bytes libjava/classpath/lib/javax/naming/LinkRef.class | Bin 0 -> 1083 bytes .../lib/javax/naming/MalformedLinkException.class | Bin 0 -> 532 bytes libjava/classpath/lib/javax/naming/Name.class | Bin 0 -> 1134 bytes .../javax/naming/NameAlreadyBoundException.class | Bin 0 -> 543 bytes .../classpath/lib/javax/naming/NameClassPair.class | Bin 0 -> 1868 bytes .../lib/javax/naming/NameNotFoundException.class | Bin 0 -> 531 bytes .../classpath/lib/javax/naming/NameParser.class | Bin 0 -> 229 bytes .../lib/javax/naming/NamingEnumeration.class | Bin 0 -> 425 bytes .../lib/javax/naming/NamingException.class | Bin 0 -> 3473 bytes .../lib/javax/naming/NamingSecurityException.class | Bin 0 -> 537 bytes .../javax/naming/NoInitialContextException.class | Bin 0 -> 543 bytes .../lib/javax/naming/NoPermissionException.class | Bin 0 -> 539 bytes .../lib/javax/naming/NotContextException.class | Bin 0 -> 525 bytes .../naming/OperationNotSupportedException.class | Bin 0 -> 558 bytes .../lib/javax/naming/PartialResultException.class | Bin 0 -> 534 bytes libjava/classpath/lib/javax/naming/RefAddr.class | Bin 0 -> 1468 bytes libjava/classpath/lib/javax/naming/Reference.class | Bin 0 -> 4085 bytes .../classpath/lib/javax/naming/Referenceable.class | Bin 0 -> 229 bytes .../lib/javax/naming/ReferralException.class | Bin 0 -> 838 bytes .../javax/naming/ServiceUnavailableException.class | Bin 0 -> 549 bytes .../javax/naming/SizeLimitExceededException.class | Bin 0 -> 553 bytes .../classpath/lib/javax/naming/StringRefAddr.class | Bin 0 -> 610 bytes .../javax/naming/TimeLimitExceededException.class | Bin 0 -> 553 bytes .../lib/javax/naming/directory/Attribute.class | Bin 0 -> 928 bytes .../naming/directory/AttributeInUseException.class | Bin 0 -> 557 bytes .../directory/AttributeModificationException.class | Bin 0 -> 1327 bytes .../lib/javax/naming/directory/Attributes.class | Bin 0 -> 757 bytes .../BasicAttribute$BasicAttributeEnumeration.class | Bin 0 -> 1448 bytes .../javax/naming/directory/BasicAttribute.class | Bin 0 -> 5900 bytes ...asicAttributes$BasicAttributesEnumeration.class | Bin 0 -> 1671 bytes .../javax/naming/directory/BasicAttributes.class | Bin 0 -> 4910 bytes .../lib/javax/naming/directory/DirContext.class | Bin 0 -> 4072 bytes .../javax/naming/directory/InitialDirContext.class | Bin 0 -> 8037 bytes .../InvalidAttributeIdentifierException.class | Bin 0 -> 593 bytes .../directory/InvalidAttributeValueException.class | Bin 0 -> 578 bytes .../directory/InvalidAttributesException.class | Bin 0 -> 566 bytes .../directory/InvalidSearchControlsException.class | Bin 0 -> 578 bytes .../directory/InvalidSearchFilterException.class | Bin 0 -> 572 bytes .../javax/naming/directory/ModificationItem.class | Bin 0 -> 1285 bytes .../directory/NoSuchAttributeException.class | Bin 0 -> 560 bytes .../directory/SchemaViolationException.class | Bin 0 -> 560 bytes .../javax/naming/directory/SearchControls.class | Bin 0 -> 2181 bytes .../lib/javax/naming/directory/SearchResult.class | Bin 0 -> 2145 bytes .../lib/javax/naming/event/EventContext.class | Bin 0 -> 631 bytes .../lib/javax/naming/event/EventDirContext.class | Bin 0 -> 853 bytes .../naming/event/NamespaceChangeListener.class | Bin 0 -> 295 bytes .../lib/javax/naming/event/NamingEvent.class | Bin 0 -> 2012 bytes .../javax/naming/event/NamingExceptionEvent.class | Bin 0 -> 1239 bytes .../lib/javax/naming/event/NamingListener.class | Bin 0 -> 238 bytes .../javax/naming/event/ObjectChangeListener.class | Bin 0 -> 243 bytes .../classpath/lib/javax/naming/ldap/Control.class | Bin 0 -> 327 bytes .../lib/javax/naming/ldap/ControlFactory.class | Bin 0 -> 2274 bytes .../lib/javax/naming/ldap/ExtendedRequest.class | Bin 0 -> 382 bytes .../lib/javax/naming/ldap/ExtendedResponse.class | Bin 0 -> 231 bytes .../lib/javax/naming/ldap/HasControls.class | Bin 0 -> 233 bytes .../lib/javax/naming/ldap/InitialLdapContext.class | Bin 0 -> 2605 bytes .../lib/javax/naming/ldap/LdapContext.class | Bin 0 -> 779 bytes .../javax/naming/ldap/LdapReferralException.class | Bin 0 -> 920 bytes .../lib/javax/naming/ldap/StartTlsRequest.class | Bin 0 -> 1676 bytes .../lib/javax/naming/ldap/StartTlsResponse.class | Bin 0 -> 995 bytes .../naming/ldap/UnsolicitedNotification.class | Bin 0 -> 329 bytes .../naming/ldap/UnsolicitedNotificationEvent.class | Bin 0 -> 1113 bytes .../ldap/UnsolicitedNotificationListener.class | Bin 0 -> 287 bytes .../lib/javax/naming/spi/DirObjectFactory.class | Bin 0 -> 544 bytes .../javax/naming/spi/DirStateFactory$Result.class | Bin 0 -> 822 bytes .../lib/javax/naming/spi/DirStateFactory.class | Bin 0 -> 678 bytes .../lib/javax/naming/spi/DirectoryManager.class | Bin 0 -> 5499 bytes .../javax/naming/spi/InitialContextFactory.class | Bin 0 -> 345 bytes .../naming/spi/InitialContextFactoryBuilder.class | Bin 0 -> 405 bytes .../lib/javax/naming/spi/NamingManager.class | Bin 0 -> 9601 bytes .../lib/javax/naming/spi/ObjectFactory.class | Bin 0 -> 430 bytes .../javax/naming/spi/ObjectFactoryBuilder.class | Bin 0 -> 401 bytes .../lib/javax/naming/spi/ResolveResult.class | Bin 0 -> 1913 bytes .../classpath/lib/javax/naming/spi/Resolver.class | Bin 0 -> 582 bytes .../lib/javax/naming/spi/StateFactory.class | Bin 0 -> 434 bytes .../lib/javax/net/ServerSocketFactory.class | Bin 0 -> 1235 bytes .../classpath/lib/javax/net/SocketFactory.class | Bin 0 -> 1351 bytes .../lib/javax/net/VanillaServerSocketFactory.class | Bin 0 -> 1067 bytes .../lib/javax/net/VanillaSocketFactory.class | Bin 0 -> 1470 bytes .../net/ssl/CertPathTrustManagerParameters.class | Bin 0 -> 747 bytes .../javax/net/ssl/HandshakeCompletedEvent.class | Bin 0 -> 1889 bytes .../javax/net/ssl/HandshakeCompletedListener.class | Bin 0 -> 252 bytes .../lib/javax/net/ssl/HostnameVerifier.class | Bin 0 -> 194 bytes .../lib/javax/net/ssl/HttpsURLConnection.class | Bin 0 -> 3247 bytes .../classpath/lib/javax/net/ssl/KeyManager.class | Bin 0 -> 115 bytes .../lib/javax/net/ssl/KeyManagerFactory$1.class | Bin 0 -> 717 bytes .../lib/javax/net/ssl/KeyManagerFactory.class | Bin 0 -> 4221 bytes .../lib/javax/net/ssl/KeyManagerFactorySpi.class | Bin 0 -> 704 bytes .../javax/net/ssl/KeyStoreBuilderParameters.class | Bin 0 -> 374 bytes .../javax/net/ssl/ManagerFactoryParameters.class | Bin 0 -> 143 bytes .../classpath/lib/javax/net/ssl/SSLContext.class | Bin 0 -> 4340 bytes .../lib/javax/net/ssl/SSLContextSpi.class | Bin 0 -> 861 bytes .../classpath/lib/javax/net/ssl/SSLEngine.class | Bin 0 -> 2522 bytes .../net/ssl/SSLEngineResult$HandshakeStatus.class | Bin 0 -> 1388 bytes .../lib/javax/net/ssl/SSLEngineResult$Status.class | Bin 0 -> 1265 bytes .../lib/javax/net/ssl/SSLEngineResult.class | Bin 0 -> 2115 bytes .../classpath/lib/javax/net/ssl/SSLException.class | Bin 0 -> 855 bytes .../lib/javax/net/ssl/SSLHandshakeException.class | Bin 0 -> 390 bytes .../lib/javax/net/ssl/SSLKeyException.class | Bin 0 -> 372 bytes .../javax/net/ssl/SSLPeerUnverifiedException.class | Bin 0 -> 405 bytes .../lib/javax/net/ssl/SSLPermission.class | Bin 0 -> 579 bytes .../lib/javax/net/ssl/SSLProtocolException.class | Bin 0 -> 387 bytes .../lib/javax/net/ssl/SSLServerSocket.class | Bin 0 -> 1272 bytes .../lib/javax/net/ssl/SSLServerSocketFactory.class | Bin 0 -> 2694 bytes .../classpath/lib/javax/net/ssl/SSLSession.class | Bin 0 -> 1067 bytes .../lib/javax/net/ssl/SSLSessionBindingEvent.class | Bin 0 -> 852 bytes .../javax/net/ssl/SSLSessionBindingListener.class | Bin 0 -> 264 bytes .../lib/javax/net/ssl/SSLSessionContext.class | Bin 0 -> 357 bytes .../classpath/lib/javax/net/ssl/SSLSocket.class | Bin 0 -> 1795 bytes .../lib/javax/net/ssl/SSLSocketFactory.class | Bin 0 -> 2826 bytes .../javax/net/ssl/TrivialHostnameVerifier.class | Bin 0 -> 568 bytes .../classpath/lib/javax/net/ssl/TrustManager.class | Bin 0 -> 119 bytes .../lib/javax/net/ssl/TrustManagerFactory$1.class | Bin 0 -> 727 bytes .../lib/javax/net/ssl/TrustManagerFactory.class | Bin 0 -> 4189 bytes .../lib/javax/net/ssl/TrustManagerFactorySpi.class | Bin 0 -> 619 bytes .../lib/javax/net/ssl/X509ExtendedKeyManager.class | Bin 0 -> 912 bytes .../lib/javax/net/ssl/X509KeyManager.class | Bin 0 -> 665 bytes .../lib/javax/net/ssl/X509TrustManager.class | Bin 0 -> 429 bytes .../lib/javax/print/AttributeException.class | Bin 0 -> 257 bytes .../lib/javax/print/CancelablePrintJob.class | Bin 0 -> 238 bytes libjava/classpath/lib/javax/print/Doc.class | Bin 0 -> 434 bytes .../lib/javax/print/DocFlavor$BYTE_ARRAY.class | Bin 0 -> 2275 bytes .../lib/javax/print/DocFlavor$CHAR_ARRAY.class | Bin 0 -> 758 bytes .../lib/javax/print/DocFlavor$INPUT_STREAM.class | Bin 0 -> 2298 bytes .../lib/javax/print/DocFlavor$READER.class | Bin 0 -> 758 bytes .../javax/print/DocFlavor$SERVICE_FORMATTED.class | Bin 0 -> 910 bytes .../lib/javax/print/DocFlavor$STRING.class | Bin 0 -> 760 bytes .../classpath/lib/javax/print/DocFlavor$URL.class | Bin 0 -> 2264 bytes libjava/classpath/lib/javax/print/DocFlavor.class | Bin 0 -> 5538 bytes .../classpath/lib/javax/print/DocPrintJob.class | Bin 0 -> 719 bytes .../lib/javax/print/FlavorException.class | Bin 0 -> 184 bytes libjava/classpath/lib/javax/print/MultiDoc.class | Bin 0 -> 248 bytes .../lib/javax/print/MultiDocPrintJob.class | Bin 0 -> 303 bytes .../lib/javax/print/MultiDocPrintService.class | Bin 0 -> 233 bytes .../classpath/lib/javax/print/PrintException.class | Bin 0 -> 788 bytes .../classpath/lib/javax/print/PrintService.class | Bin 0 -> 1813 bytes .../lib/javax/print/PrintServiceLookup.class | Bin 0 -> 3781 bytes libjava/classpath/lib/javax/print/ServiceUI.class | Bin 0 -> 1871 bytes .../lib/javax/print/ServiceUIFactory.class | Bin 0 -> 814 bytes libjava/classpath/lib/javax/print/SimpleDoc.class | Bin 0 -> 2719 bytes .../lib/javax/print/StreamPrintService.class | Bin 0 -> 779 bytes .../javax/print/StreamPrintServiceFactory.class | Bin 0 -> 1596 bytes .../classpath/lib/javax/print/URIException.class | Bin 0 -> 333 bytes .../lib/javax/print/attribute/Attribute.class | Bin 0 -> 312 bytes .../lib/javax/print/attribute/AttributeSet.class | Bin 0 -> 706 bytes ...buteSetUtilities$SynchronizedAttributeSet.class | Bin 0 -> 2396 bytes ...eSetUtilities$SynchronizedDocAttributeSet.class | Bin 0 -> 776 bytes ...tilities$SynchronizedPrintJobAttributeSet.class | Bin 0 -> 806 bytes ...ties$SynchronizedPrintRequestAttributeSet.class | Bin 0 -> 830 bytes ...ties$SynchronizedPrintServiceAttributeSet.class | Bin 0 -> 830 bytes ...buteSetUtilities$UnmodifiableAttributeSet.class | Bin 0 -> 2385 bytes ...eSetUtilities$UnmodifiableDocAttributeSet.class | Bin 0 -> 776 bytes ...tilities$UnmodifiablePrintJobAttributeSet.class | Bin 0 -> 806 bytes ...ties$UnmodifiablePrintRequestAttributeSet.class | Bin 0 -> 830 bytes ...ties$UnmodifiablePrintServiceAttributeSet.class | Bin 0 -> 830 bytes .../print/attribute/AttributeSetUtilities.class | Bin 0 -> 4904 bytes .../lib/javax/print/attribute/DateTimeSyntax.class | Bin 0 -> 1129 bytes .../lib/javax/print/attribute/DocAttribute.class | Bin 0 -> 166 bytes .../javax/print/attribute/DocAttributeSet.class | Bin 0 -> 287 bytes .../lib/javax/print/attribute/EnumSyntax.class | Bin 0 -> 1919 bytes .../javax/print/attribute/HashAttributeSet.class | Bin 0 -> 6236 bytes .../print/attribute/HashDocAttributeSet.class | Bin 0 -> 1266 bytes .../print/attribute/HashPrintJobAttributeSet.class | Bin 0 -> 1321 bytes .../attribute/HashPrintRequestAttributeSet.class | Bin 0 -> 1365 bytes .../attribute/HashPrintServiceAttributeSet.class | Bin 0 -> 1365 bytes .../lib/javax/print/attribute/IntegerSyntax.class | Bin 0 -> 1215 bytes .../javax/print/attribute/PrintJobAttribute.class | Bin 0 -> 176 bytes .../print/attribute/PrintJobAttributeSet.class | Bin 0 -> 297 bytes .../print/attribute/PrintRequestAttribute.class | Bin 0 -> 184 bytes .../print/attribute/PrintRequestAttributeSet.class | Bin 0 -> 305 bytes .../print/attribute/PrintServiceAttribute.class | Bin 0 -> 184 bytes .../print/attribute/PrintServiceAttributeSet.class | Bin 0 -> 305 bytes .../javax/print/attribute/ResolutionSyntax.class | Bin 0 -> 2590 bytes .../print/attribute/SetOfIntegerSyntax$1.class | Bin 0 -> 745 bytes .../javax/print/attribute/SetOfIntegerSyntax.class | Bin 0 -> 5008 bytes .../lib/javax/print/attribute/Size2DSyntax.class | Bin 0 -> 2497 bytes .../print/attribute/SupportedValuesAttribute.class | Bin 0 -> 190 bytes .../lib/javax/print/attribute/TextSyntax.class | Bin 0 -> 1403 bytes .../lib/javax/print/attribute/URISyntax.class | Bin 0 -> 1100 bytes .../print/attribute/UnmodifiableSetException.class | Bin 0 -> 496 bytes .../print/attribute/standard/Chromaticity.class | Bin 0 -> 1462 bytes .../print/attribute/standard/ColorSupported.class | Bin 0 -> 1410 bytes .../print/attribute/standard/Compression.class | Bin 0 -> 1505 bytes .../javax/print/attribute/standard/Copies.class | Bin 0 -> 1081 bytes .../print/attribute/standard/CopiesSupported.class | Bin 0 -> 1274 bytes .../attribute/standard/DateTimeAtCompleted.class | Bin 0 -> 985 bytes .../attribute/standard/DateTimeAtCreation.class | Bin 0 -> 981 bytes .../attribute/standard/DateTimeAtProcessing.class | Bin 0 -> 989 bytes .../print/attribute/standard/Destination.class | Bin 0 -> 1001 bytes .../print/attribute/standard/DocumentName.class | Bin 0 -> 1016 bytes .../javax/print/attribute/standard/Fidelity.class | Bin 0 -> 1432 bytes .../print/attribute/standard/Finishings.class | Bin 0 -> 3008 bytes .../print/attribute/standard/JobHoldUntil.class | Bin 0 -> 1007 bytes .../print/attribute/standard/JobImpressions.class | Bin 0 -> 1113 bytes .../standard/JobImpressionsCompleted.class | Bin 0 -> 1099 bytes .../standard/JobImpressionsSupported.class | Bin 0 -> 1147 bytes .../print/attribute/standard/JobKOctets.class | Bin 0 -> 1098 bytes .../attribute/standard/JobKOctetsProcessed.class | Bin 0 -> 1084 bytes .../attribute/standard/JobKOctetsSupported.class | Bin 0 -> 1132 bytes .../print/attribute/standard/JobMediaSheets.class | Bin 0 -> 1114 bytes .../standard/JobMediaSheetsCompleted.class | Bin 0 -> 1100 bytes .../standard/JobMediaSheetsSupported.class | Bin 0 -> 1148 bytes .../standard/JobMessageFromOperator.class | Bin 0 -> 1058 bytes .../javax/print/attribute/standard/JobName.class | Bin 0 -> 1047 bytes .../standard/JobOriginatingUserName.class | Bin 0 -> 1059 bytes .../print/attribute/standard/JobPriority.class | Bin 0 -> 1098 bytes .../attribute/standard/JobPrioritySupported.class | Bin 0 -> 1091 bytes .../javax/print/attribute/standard/JobSheets.class | Bin 0 -> 1400 bytes .../javax/print/attribute/standard/JobState.class | Bin 0 -> 1864 bytes .../print/attribute/standard/JobStateReason.class | Bin 0 -> 4071 bytes .../print/attribute/standard/JobStateReasons.class | Bin 0 -> 2137 bytes .../lib/javax/print/attribute/standard/Media.class | Bin 0 -> 1073 bytes .../javax/print/attribute/standard/MediaName.class | Bin 0 -> 1275 bytes .../attribute/standard/MediaPrintableArea.class | Bin 0 -> 3086 bytes .../attribute/standard/MediaSize$Engineering.class | Bin 0 -> 1050 bytes .../print/attribute/standard/MediaSize$ISO.class | Bin 0 -> 2547 bytes .../print/attribute/standard/MediaSize$JIS.class | Bin 0 -> 2622 bytes .../print/attribute/standard/MediaSize$NA.class | Bin 0 -> 2218 bytes .../print/attribute/standard/MediaSize$Other.class | Bin 0 -> 1602 bytes .../javax/print/attribute/standard/MediaSize.class | Bin 0 -> 3575 bytes .../print/attribute/standard/MediaSizeName.class | Bin 0 -> 6466 bytes .../javax/print/attribute/standard/MediaTray.class | Bin 0 -> 1465 bytes .../standard/MultipleDocumentHandling.class | Bin 0 -> 1826 bytes .../attribute/standard/NumberOfDocuments.class | Bin 0 -> 1075 bytes .../standard/NumberOfInterveningJobs.class | Bin 0 -> 1100 bytes .../javax/print/attribute/standard/NumberUp.class | Bin 0 -> 1001 bytes .../attribute/standard/NumberUpSupported.class | Bin 0 -> 1486 bytes .../attribute/standard/OrientationRequested.class | Bin 0 -> 1800 bytes .../attribute/standard/OutputDeviceAssigned.class | Bin 0 -> 1052 bytes .../attribute/standard/PDLOverrideSupported.class | Bin 0 -> 1449 bytes .../print/attribute/standard/PageRanges.class | Bin 0 -> 1667 bytes .../print/attribute/standard/PagesPerMinute.class | Bin 0 -> 1067 bytes .../attribute/standard/PagesPerMinuteColor.class | Bin 0 -> 1088 bytes .../attribute/standard/PresentationDirection.class | Bin 0 -> 2046 bytes .../print/attribute/standard/PrintQuality.class | Bin 0 -> 1592 bytes .../print/attribute/standard/PrinterInfo.class | Bin 0 -> 1020 bytes .../standard/PrinterIsAcceptingJobs.class | Bin 0 -> 1484 bytes .../print/attribute/standard/PrinterLocation.class | Bin 0 -> 1040 bytes .../attribute/standard/PrinterMakeAndModel.class | Bin 0 -> 1055 bytes .../standard/PrinterMessageFromOperator.class | Bin 0 -> 1078 bytes .../print/attribute/standard/PrinterMoreInfo.class | Bin 0 -> 961 bytes .../standard/PrinterMoreInfoManufacturer.class | Bin 0 -> 1010 bytes .../print/attribute/standard/PrinterName.class | Bin 0 -> 1020 bytes .../attribute/standard/PrinterResolution.class | Bin 0 -> 1103 bytes .../print/attribute/standard/PrinterState.class | Bin 0 -> 1540 bytes .../attribute/standard/PrinterStateReason.class | Bin 0 -> 4201 bytes .../attribute/standard/PrinterStateReasons.class | Bin 0 -> 3545 bytes .../print/attribute/standard/PrinterURI.class | Bin 0 -> 940 bytes .../print/attribute/standard/QueuedJobCount.class | Bin 0 -> 1067 bytes .../standard/ReferenceUriSchemesSupported.class | Bin 0 -> 1860 bytes .../attribute/standard/RequestingUserName.class | Bin 0 -> 1046 bytes .../javax/print/attribute/standard/Severity.class | Bin 0 -> 1400 bytes .../print/attribute/standard/SheetCollate.class | Bin 0 -> 1481 bytes .../lib/javax/print/attribute/standard/Sides.class | Bin 0 -> 1662 bytes .../lib/javax/print/event/PrintEvent.class | Bin 0 -> 704 bytes .../lib/javax/print/event/PrintJobAdapter.class | Bin 0 -> 973 bytes .../javax/print/event/PrintJobAttributeEvent.class | Bin 0 -> 953 bytes .../print/event/PrintJobAttributeListener.class | Bin 0 -> 223 bytes .../lib/javax/print/event/PrintJobEvent.class | Bin 0 -> 1029 bytes .../lib/javax/print/event/PrintJobListener.class | Bin 0 -> 354 bytes .../print/event/PrintServiceAttributeEvent.class | Bin 0 -> 921 bytes .../event/PrintServiceAttributeListener.class | Bin 0 -> 235 bytes .../classpath/lib/javax/rmi/CORBA/ClassDesc.class | Bin 0 -> 432 bytes .../rmi/CORBA/PortableRemoteObjectDelegate.class | Bin 0 -> 576 bytes libjava/classpath/lib/javax/rmi/CORBA/Stub.class | Bin 0 -> 2763 bytes .../lib/javax/rmi/CORBA/StubDelegate.class | Bin 0 -> 652 bytes libjava/classpath/lib/javax/rmi/CORBA/Tie.class | Bin 0 -> 437 bytes libjava/classpath/lib/javax/rmi/CORBA/Util.class | Bin 0 -> 3292 bytes .../lib/javax/rmi/CORBA/UtilDelegate.class | Bin 0 -> 1285 bytes .../lib/javax/rmi/CORBA/ValueHandler.class | Bin 0 -> 616 bytes .../javax/rmi/CORBA/ValueHandlerMultiFormat.class | Bin 0 -> 312 bytes .../lib/javax/rmi/PortableRemoteObject.class | Bin 0 -> 1607 bytes .../javax/rmi/ssl/SslRMIClientSocketFactory.class | Bin 0 -> 2635 bytes .../javax/rmi/ssl/SslRMIServerSocketFactory.class | Bin 0 -> 2688 bytes .../lib/javax/security/auth/AuthPermission.class | Bin 0 -> 530 bytes .../security/auth/DestroyFailedException.class | Bin 0 -> 479 bytes .../lib/javax/security/auth/Destroyable.class | Bin 0 -> 246 bytes .../classpath/lib/javax/security/auth/Policy.class | Bin 0 -> 1059 bytes .../PrivateCredentialPermission$CredOwner.class | Bin 0 -> 1186 bytes .../auth/PrivateCredentialPermission.class | Bin 0 -> 3273 bytes .../security/auth/RefreshFailedException.class | Bin 0 -> 479 bytes .../lib/javax/security/auth/Refreshable.class | Bin 0 -> 244 bytes .../javax/security/auth/Subject$SecureSet.class | Bin 0 -> 4086 bytes .../lib/javax/security/auth/Subject.class | Bin 0 -> 6981 bytes .../security/auth/SubjectDomainCombiner.class | Bin 0 -> 1805 bytes .../javax/security/auth/callback/Callback.class | Bin 0 -> 126 bytes .../security/auth/callback/CallbackHandler.class | Bin 0 -> 316 bytes .../security/auth/callback/ChoiceCallback.class | Bin 0 -> 2286 bytes .../auth/callback/ConfirmationCallback.class | Bin 0 -> 3748 bytes .../security/auth/callback/LanguageCallback.class | Bin 0 -> 664 bytes .../security/auth/callback/NameCallback.class | Bin 0 -> 1477 bytes .../security/auth/callback/PasswordCallback.class | Bin 0 -> 1467 bytes .../security/auth/callback/TextInputCallback.class | Bin 0 -> 1502 bytes .../auth/callback/TextOutputCallback.class | Bin 0 -> 1226 bytes .../callback/UnsupportedCallbackException.class | Bin 0 -> 847 bytes .../auth/kerberos/DelegationPermission$1.class | Bin 0 -> 1699 bytes .../auth/kerberos/DelegationPermission.class | Bin 0 -> 1471 bytes .../javax/security/auth/kerberos/KerberosKey.class | Bin 0 -> 2715 bytes .../security/auth/kerberos/KerberosPrincipal.class | Bin 0 -> 2656 bytes .../security/auth/kerberos/KerberosTicket.class | Bin 0 -> 4697 bytes .../lib/javax/security/auth/kerberos/KeyImpl.class | Bin 0 -> 1062 bytes .../auth/kerberos/ServicePermission$1.class | Bin 0 -> 1681 bytes .../security/auth/kerberos/ServicePermission.class | Bin 0 -> 2220 bytes .../security/auth/login/AccountException.class | Bin 0 -> 558 bytes .../auth/login/AccountExpiredException.class | Bin 0 -> 581 bytes .../auth/login/AccountLockedException.class | Bin 0 -> 578 bytes .../auth/login/AccountNotFoundException.class | Bin 0 -> 584 bytes ...ConfigurationEntry$LoginModuleControlFlag.class | Bin 0 -> 923 bytes .../auth/login/AppConfigurationEntry.class | Bin 0 -> 2363 bytes .../security/auth/login/Configuration$1.class | Bin 0 -> 747 bytes .../javax/security/auth/login/Configuration.class | Bin 0 -> 1789 bytes .../security/auth/login/CredentialException.class | Bin 0 -> 567 bytes .../auth/login/CredentialExpiredException.class | Bin 0 -> 593 bytes .../auth/login/CredentialNotFoundException.class | Bin 0 -> 596 bytes .../security/auth/login/FailedLoginException.class | Bin 0 -> 570 bytes .../javax/security/auth/login/LoginContext.class | Bin 0 -> 6202 bytes .../javax/security/auth/login/LoginException.class | Bin 0 -> 550 bytes .../security/auth/login/NullConfiguration.class | Bin 0 -> 629 bytes .../lib/javax/security/auth/spi/LoginModule.class | Bin 0 -> 603 bytes .../javax/security/auth/x500/X500Principal.class | Bin 0 -> 11344 bytes .../security/auth/x500/X500PrivateCredential.class | Bin 0 -> 1459 bytes .../lib/javax/security/cert/Certificate.class | Bin 0 -> 1354 bytes .../cert/CertificateEncodingException.class | Bin 0 -> 514 bytes .../javax/security/cert/CertificateException.class | Bin 0 -> 469 bytes .../cert/CertificateExpiredException.class | Bin 0 -> 511 bytes .../cert/CertificateNotYetValidException.class | Bin 0 -> 523 bytes .../cert/CertificateParsingException.class | Bin 0 -> 511 bytes .../lib/javax/security/cert/X509CertBridge.class | Bin 0 -> 3538 bytes .../lib/javax/security/cert/X509Certificate.class | Bin 0 -> 1891 bytes .../security/sasl/AuthenticationException.class | Bin 0 -> 666 bytes .../javax/security/sasl/AuthorizeCallback.class | Bin 0 -> 1357 bytes .../lib/javax/security/sasl/RealmCallback.class | Bin 0 -> 555 bytes .../javax/security/sasl/RealmChoiceCallback.class | Bin 0 -> 534 bytes .../classpath/lib/javax/security/sasl/Sasl.class | Bin 0 -> 6585 bytes .../lib/javax/security/sasl/SaslClient.class | Bin 0 -> 496 bytes .../javax/security/sasl/SaslClientFactory.class | Bin 0 -> 742 bytes .../lib/javax/security/sasl/SaslException.class | Bin 0 -> 1813 bytes .../lib/javax/security/sasl/SaslServer.class | Bin 0 -> 495 bytes .../javax/security/sasl/SaslServerFactory.class | Bin 0 -> 704 bytes .../javax/sound/midi/ControllerEventListener.class | Bin 0 -> 236 bytes .../lib/javax/sound/midi/Instrument.class | Bin 0 -> 959 bytes .../sound/midi/InvalidMidiDataException.class | Bin 0 -> 537 bytes .../lib/javax/sound/midi/MetaEventListener.class | Bin 0 -> 214 bytes .../lib/javax/sound/midi/MetaMessage.class | Bin 0 -> 2002 bytes .../lib/javax/sound/midi/MidiChannel.class | Bin 0 -> 715 bytes .../lib/javax/sound/midi/MidiDevice$Info.class | Bin 0 -> 1283 bytes .../lib/javax/sound/midi/MidiDevice.class | Bin 0 -> 621 bytes .../classpath/lib/javax/sound/midi/MidiEvent.class | Bin 0 -> 734 bytes .../lib/javax/sound/midi/MidiFileFormat.class | Bin 0 -> 1095 bytes .../lib/javax/sound/midi/MidiMessage.class | Bin 0 -> 1052 bytes .../lib/javax/sound/midi/MidiSystem.class | Bin 0 -> 8221 bytes .../sound/midi/MidiUnavailableException.class | Bin 0 -> 537 bytes libjava/classpath/lib/javax/sound/midi/Patch.class | Bin 0 -> 550 bytes .../classpath/lib/javax/sound/midi/Receiver.class | Bin 0 -> 248 bytes .../classpath/lib/javax/sound/midi/Sequence.class | Bin 0 -> 3224 bytes .../lib/javax/sound/midi/Sequencer$SyncMode.class | Bin 0 -> 1124 bytes .../classpath/lib/javax/sound/midi/Sequencer.class | Bin 0 -> 1751 bytes .../lib/javax/sound/midi/ShortMessage.class | Bin 0 -> 3400 bytes .../classpath/lib/javax/sound/midi/Soundbank.class | Bin 0 -> 430 bytes .../lib/javax/sound/midi/SoundbankResource.class | Bin 0 -> 1130 bytes .../lib/javax/sound/midi/Synthesizer.class | Bin 0 -> 1039 bytes .../lib/javax/sound/midi/SysexMessage.class | Bin 0 -> 1753 bytes libjava/classpath/lib/javax/sound/midi/Track.class | Bin 0 -> 2021 bytes .../lib/javax/sound/midi/Transmitter.class | Bin 0 -> 251 bytes .../lib/javax/sound/midi/VoiceStatus.class | Bin 0 -> 518 bytes .../javax/sound/midi/spi/MidiDeviceProvider.class | Bin 0 -> 927 bytes .../lib/javax/sound/midi/spi/MidiFileReader.class | Bin 0 -> 856 bytes .../lib/javax/sound/midi/spi/MidiFileWriter.class | Bin 0 -> 1011 bytes .../lib/javax/sound/midi/spi/SoundbankReader.class | Bin 0 -> 620 bytes .../javax/sound/sampled/AudioFileFormat$Type.class | Bin 0 -> 1402 bytes .../lib/javax/sound/sampled/AudioFileFormat.class | Bin 0 -> 2977 bytes .../javax/sound/sampled/AudioFormat$Encoding.class | Bin 0 -> 1111 bytes .../lib/javax/sound/sampled/AudioFormat.class | Bin 0 -> 3884 bytes .../AudioInputStream$TargetInputStream.class | Bin 0 -> 992 bytes .../lib/javax/sound/sampled/AudioInputStream.class | Bin 0 -> 2914 bytes .../lib/javax/sound/sampled/AudioPermission.class | Bin 0 -> 597 bytes .../lib/javax/sound/sampled/AudioSystem.class | Bin 0 -> 11940 bytes .../javax/sound/sampled/BooleanControl$Type.class | Bin 0 -> 659 bytes .../lib/javax/sound/sampled/BooleanControl.class | Bin 0 -> 1626 bytes .../classpath/lib/javax/sound/sampled/Clip.class | Bin 0 -> 615 bytes .../javax/sound/sampled/CompoundControl$Type.class | Bin 0 -> 476 bytes .../lib/javax/sound/sampled/CompoundControl.class | Bin 0 -> 1195 bytes .../lib/javax/sound/sampled/Control$Type.class | Bin 0 -> 783 bytes .../lib/javax/sound/sampled/Control.class | Bin 0 -> 705 bytes .../lib/javax/sound/sampled/DataLine$Info.class | Bin 0 -> 2896 bytes .../lib/javax/sound/sampled/DataLine.class | Bin 0 -> 570 bytes .../lib/javax/sound/sampled/EnumControl$Type.class | Bin 0 -> 584 bytes .../lib/javax/sound/sampled/EnumControl.class | Bin 0 -> 1633 bytes .../javax/sound/sampled/FloatControl$Type.class | Bin 0 -> 1080 bytes .../lib/javax/sound/sampled/FloatControl.class | Bin 0 -> 2914 bytes .../lib/javax/sound/sampled/Line$Info.class | Bin 0 -> 995 bytes .../classpath/lib/javax/sound/sampled/Line.class | Bin 0 -> 683 bytes .../lib/javax/sound/sampled/LineEvent$Type.class | Bin 0 -> 1067 bytes .../lib/javax/sound/sampled/LineEvent.class | Bin 0 -> 1926 bytes .../lib/javax/sound/sampled/LineListener.class | Bin 0 -> 210 bytes .../sound/sampled/LineUnavailableException.class | Bin 0 -> 545 bytes .../lib/javax/sound/sampled/Mixer$Info.class | Bin 0 -> 1545 bytes .../classpath/lib/javax/sound/sampled/Mixer.class | Bin 0 -> 995 bytes .../lib/javax/sound/sampled/Port$Info.class | Bin 0 -> 2235 bytes .../classpath/lib/javax/sound/sampled/Port.class | Bin 0 -> 214 bytes .../lib/javax/sound/sampled/ReverbType.class | Bin 0 -> 2055 bytes .../lib/javax/sound/sampled/SourceDataLine.class | Bin 0 -> 376 bytes .../lib/javax/sound/sampled/TargetDataLine.class | Bin 0 -> 375 bytes .../sampled/UnsupportedAudioFileException.class | Bin 0 -> 560 bytes .../javax/sound/sampled/spi/AudioFileReader.class | Bin 0 -> 931 bytes .../javax/sound/sampled/spi/AudioFileWriter.class | Bin 0 -> 1500 bytes .../sampled/spi/FormatConversionProvider.class | Bin 0 -> 2222 bytes .../javax/sound/sampled/spi/MixerProvider.class | Bin 0 -> 839 bytes .../classpath/lib/javax/sql/ConnectionEvent.class | Bin 0 -> 771 bytes .../lib/javax/sql/ConnectionEventListener.class | Bin 0 -> 262 bytes .../lib/javax/sql/ConnectionPoolDataSource.class | Bin 0 -> 543 bytes libjava/classpath/lib/javax/sql/DataSource.class | Bin 0 -> 495 bytes .../classpath/lib/javax/sql/PooledConnection.class | Bin 0 -> 373 bytes libjava/classpath/lib/javax/sql/RowSet.class | Bin 0 -> 2753 bytes libjava/classpath/lib/javax/sql/RowSetEvent.class | Bin 0 -> 370 bytes .../classpath/lib/javax/sql/RowSetInternal.class | Bin 0 -> 429 bytes .../classpath/lib/javax/sql/RowSetListener.class | Bin 0 -> 246 bytes .../classpath/lib/javax/sql/RowSetMetaData.class | Bin 0 -> 824 bytes libjava/classpath/lib/javax/sql/RowSetReader.class | Bin 0 -> 216 bytes libjava/classpath/lib/javax/sql/RowSetWriter.class | Bin 0 -> 217 bytes libjava/classpath/lib/javax/sql/XAConnection.class | Bin 0 -> 261 bytes libjava/classpath/lib/javax/sql/XADataSource.class | Bin 0 -> 507 bytes .../classpath/lib/javax/swing/AbstractAction.class | Bin 0 -> 3209 bytes .../lib/javax/swing/AbstractButton$1.class | Bin 0 -> 1793 bytes .../AbstractButton$AccessibleAbstractButton.class | Bin 0 -> 8947 bytes .../AbstractButton$ButtonChangeListener.class | Bin 0 -> 954 bytes .../javax/swing/AbstractButton$EventHandler.class | Bin 0 -> 1356 bytes .../classpath/lib/javax/swing/AbstractButton.class | Bin 0 -> 20618 bytes .../lib/javax/swing/AbstractCellEditor.class | Bin 0 -> 2259 bytes .../lib/javax/swing/AbstractListModel.class | Bin 0 -> 2498 bytes .../lib/javax/swing/AbstractSpinnerModel.class | Bin 0 -> 1771 bytes libjava/classpath/lib/javax/swing/Action.class | Bin 0 -> 861 bytes libjava/classpath/lib/javax/swing/ActionMap.class | Bin 0 -> 2209 bytes .../classpath/lib/javax/swing/BorderFactory.class | Bin 0 -> 4962 bytes .../lib/javax/swing/BoundedRangeModel.class | Bin 0 -> 514 bytes .../lib/javax/swing/Box$AccessibleBox.class | Bin 0 -> 662 bytes .../swing/Box$Filler$AccessibleBoxFiller.class | Bin 0 -> 753 bytes libjava/classpath/lib/javax/swing/Box$Filler.class | Bin 0 -> 1392 bytes libjava/classpath/lib/javax/swing/Box.class | Bin 0 -> 2326 bytes libjava/classpath/lib/javax/swing/BoxLayout.class | Bin 0 -> 5920 bytes .../classpath/lib/javax/swing/ButtonGroup.class | Bin 0 -> 2388 bytes .../classpath/lib/javax/swing/ButtonModel.class | Bin 0 -> 857 bytes libjava/classpath/lib/javax/swing/CellEditor.class | Bin 0 -> 423 bytes ...llRendererPane$AccessibleCellRendererPane.class | Bin 0 -> 878 bytes .../lib/javax/swing/CellRendererPane.class | Bin 0 -> 2772 bytes .../classpath/lib/javax/swing/ComboBoxEditor.class | Bin 0 -> 380 bytes .../classpath/lib/javax/swing/ComboBoxModel.class | Bin 0 -> 247 bytes .../swing/CompatibilityFocusTraversalPolicy.class | Bin 0 -> 2190 bytes .../lib/javax/swing/ComponentInputMap.class | Bin 0 -> 1635 bytes .../classpath/lib/javax/swing/DebugGraphics.class | Bin 0 -> 14084 bytes .../lib/javax/swing/DefaultBoundedRangeModel.class | Bin 0 -> 5095 bytes .../lib/javax/swing/DefaultButtonModel.class | Bin 0 -> 6192 bytes .../swing/DefaultCellEditor$EditorDelegate.class | Bin 0 -> 2576 bytes .../DefaultCellEditor$JCheckBoxDelegate.class | Bin 0 -> 1387 bytes .../DefaultCellEditor$JComboBoxDelegate.class | Bin 0 -> 1514 bytes .../DefaultCellEditor$JTextFieldDelegate.class | Bin 0 -> 1367 bytes .../lib/javax/swing/DefaultCellEditor.class | Bin 0 -> 3457 bytes .../lib/javax/swing/DefaultComboBoxModel.class | Bin 0 -> 2973 bytes .../lib/javax/swing/DefaultDesktopManager.class | Bin 0 -> 7571 bytes .../lib/javax/swing/DefaultFocusManager.class | Bin 0 -> 1469 bytes .../swing/DefaultListCellRenderer$UIResource.class | Bin 0 -> 442 bytes .../lib/javax/swing/DefaultListCellRenderer.class | Bin 0 -> 3535 bytes .../lib/javax/swing/DefaultListModel.class | Bin 0 -> 4580 bytes .../javax/swing/DefaultListSelectionModel.class | Bin 0 -> 8540 bytes .../javax/swing/DefaultSingleSelectionModel.class | Bin 0 -> 2350 bytes .../classpath/lib/javax/swing/DesktopManager.class | Bin 0 -> 651 bytes .../swing/FocusManager$WrappingFocusManager.class | Bin 0 -> 5486 bytes .../classpath/lib/javax/swing/FocusManager.class | Bin 0 -> 1199 bytes libjava/classpath/lib/javax/swing/GrayFilter.class | Bin 0 -> 1375 bytes libjava/classpath/lib/javax/swing/Icon.class | Bin 0 -> 221 bytes .../classpath/lib/javax/swing/ImageIcon$1.class | Bin 0 -> 372 bytes .../swing/ImageIcon$AccessibleImageIcon.class | Bin 0 -> 2147 bytes libjava/classpath/lib/javax/swing/ImageIcon.class | Bin 0 -> 4406 bytes libjava/classpath/lib/javax/swing/InputMap.class | Bin 0 -> 2530 bytes .../classpath/lib/javax/swing/InputVerifier.class | Bin 0 -> 479 bytes .../swing/InternalFrameFocusTraversalPolicy.class | Bin 0 -> 624 bytes .../javax/swing/JApplet$AccessibleJApplet.class | Bin 0 -> 509 bytes libjava/classpath/lib/javax/swing/JApplet.class | Bin 0 -> 4021 bytes .../javax/swing/JButton$AccessibleJButton.class | Bin 0 -> 753 bytes libjava/classpath/lib/javax/swing/JButton.class | Bin 0 -> 3347 bytes .../swing/JCheckBox$AccessibleJCheckBox.class | Bin 0 -> 770 bytes libjava/classpath/lib/javax/swing/JCheckBox.class | Bin 0 -> 2782 bytes ...ckBoxMenuItem$AccessibleJCheckBoxMenuItem.class | Bin 0 -> 894 bytes .../lib/javax/swing/JCheckBoxMenuItem.class | Bin 0 -> 2645 bytes .../JColorChooser$AccessibleJColorChooser.class | Bin 0 -> 865 bytes .../JColorChooser$DefaultOKCancelListener.class | Bin 0 -> 769 bytes .../swing/JColorChooser$DefaultResetListener.class | Bin 0 -> 876 bytes .../classpath/lib/javax/swing/JColorChooser.class | Bin 0 -> 8097 bytes .../classpath/lib/javax/swing/JComboBox$1.class | Bin 0 -> 997 bytes .../swing/JComboBox$AccessibleJComboBox.class | Bin 0 -> 3980 bytes .../JComboBox$DefaultKeySelectionManager.class | Bin 0 -> 1348 bytes .../swing/JComboBox$KeySelectionManager.class | Bin 0 -> 271 bytes libjava/classpath/lib/javax/swing/JComboBox.class | Bin 0 -> 15989 bytes .../classpath/lib/javax/swing/JComponent$1.class | Bin 0 -> 586 bytes ...ibleJComponent$AccessibleContainerHandler.class | Bin 0 -> 1529 bytes ...cessibleJComponent$AccessibleFocusHandler.class | Bin 0 -> 1215 bytes .../swing/JComponent$AccessibleJComponent.class | Bin 0 -> 4520 bytes .../swing/JComponent$ActionListenerProxy.class | Bin 0 -> 1101 bytes libjava/classpath/lib/javax/swing/JComponent.class | Bin 0 -> 36725 bytes .../JDesktopPane$AccessibleJDesktopPane.class | Bin 0 -> 855 bytes .../classpath/lib/javax/swing/JDesktopPane.class | Bin 0 -> 4836 bytes .../javax/swing/JDialog$AccessibleJDialog.class | Bin 0 -> 506 bytes libjava/classpath/lib/javax/swing/JDialog.class | Bin 0 -> 6937 bytes .../classpath/lib/javax/swing/JEditorPane$1.class | Bin 0 -> 914 bytes .../classpath/lib/javax/swing/JEditorPane$2.class | Bin 0 -> 971 bytes .../swing/JEditorPane$AccessibleJEditorPane.class | Bin 0 -> 999 bytes .../JEditorPane$AccessibleJEditorPaneHTML.class | Bin 0 -> 738 bytes .../javax/swing/JEditorPane$EditorKitMapping.class | Bin 0 -> 603 bytes ...orPaneAccessibleHypertextSupport$HTMLLink.class | Bin 0 -> 3759 bytes ...ane$JEditorPaneAccessibleHypertextSupport.class | Bin 0 -> 3232 bytes .../lib/javax/swing/JEditorPane$PageLoader.class | Bin 0 -> 2158 bytes .../lib/javax/swing/JEditorPane$PageStream.class | Bin 0 -> 1492 bytes .../javax/swing/JEditorPane$PlainEditorKit.class | Bin 0 -> 674 bytes .../classpath/lib/javax/swing/JEditorPane.class | Bin 0 -> 12028 bytes .../classpath/lib/javax/swing/JFileChooser$1.class | Bin 0 -> 744 bytes .../JFileChooser$AccessibleJFileChooser.class | Bin 0 -> 791 bytes .../classpath/lib/javax/swing/JFileChooser.class | Bin 0 -> 18403 bytes .../JFormattedTextField$AbstractFormatter.class | Bin 0 -> 2454 bytes ...rmattedTextField$AbstractFormatterFactory.class | Bin 0 -> 567 bytes .../lib/javax/swing/JFormattedTextField.class | Bin 0 -> 5767 bytes .../lib/javax/swing/JFrame$AccessibleJFrame.class | Bin 0 -> 494 bytes libjava/classpath/lib/javax/swing/JFrame.class | Bin 0 -> 7071 bytes .../JInternalFrame$AccessibleJInternalFrame.class | Bin 0 -> 1792 bytes ...Frame$JDesktopIcon$AccessibleJDesktopIcon.class | Bin 0 -> 1831 bytes .../javax/swing/JInternalFrame$JDesktopIcon.class | Bin 0 -> 2259 bytes .../classpath/lib/javax/swing/JInternalFrame.class | Bin 0 -> 17072 bytes .../lib/javax/swing/JLabel$AccessibleJLabel.class | Bin 0 -> 5379 bytes libjava/classpath/lib/javax/swing/JLabel.class | Bin 0 -> 8529 bytes .../JLayeredPane$AccessibleJLayeredPane.class | Bin 0 -> 791 bytes .../classpath/lib/javax/swing/JLayeredPane.class | Bin 0 -> 8209 bytes libjava/classpath/lib/javax/swing/JList$1.class | Bin 0 -> 790 bytes libjava/classpath/lib/javax/swing/JList$2.class | Bin 0 -> 846 bytes libjava/classpath/lib/javax/swing/JList$3.class | Bin 0 -> 829 bytes ...List$AccessibleJList$AccessibleJListChild.class | Bin 0 -> 6064 bytes .../lib/javax/swing/JList$AccessibleJList.class | Bin 0 -> 4910 bytes .../lib/javax/swing/JList$ListListener.class | Bin 0 -> 1488 bytes libjava/classpath/lib/javax/swing/JList.class | Bin 0 -> 18892 bytes .../lib/javax/swing/JMenu$AccessibleJMenu.class | Bin 0 -> 3677 bytes .../javax/swing/JMenu$ActionChangedListener.class | Bin 0 -> 1012 bytes .../lib/javax/swing/JMenu$MenuChangeListener.class | Bin 0 -> 1143 bytes .../lib/javax/swing/JMenu$WinListener.class | Bin 0 -> 811 bytes libjava/classpath/lib/javax/swing/JMenu.class | Bin 0 -> 14040 bytes .../javax/swing/JMenuBar$AccessibleJMenuBar.class | Bin 0 -> 2223 bytes libjava/classpath/lib/javax/swing/JMenuBar.class | Bin 0 -> 7798 bytes .../classpath/lib/javax/swing/JMenuItem$1.class | Bin 0 -> 997 bytes .../swing/JMenuItem$AccessibleJMenuItem.class | Bin 0 -> 2194 bytes libjava/classpath/lib/javax/swing/JMenuItem.class | Bin 0 -> 10317 bytes .../classpath/lib/javax/swing/JOptionPane$1.class | Bin 0 -> 441 bytes .../classpath/lib/javax/swing/JOptionPane$2.class | Bin 0 -> 447 bytes .../swing/JOptionPane$AccessibleJOptionPane.class | Bin 0 -> 845 bytes .../swing/JOptionPane$ValuePropertyHandler.class | Bin 0 -> 1144 bytes .../classpath/lib/javax/swing/JOptionPane.class | Bin 0 -> 17932 bytes .../lib/javax/swing/JPanel$AccessibleJPanel.class | Bin 0 -> 730 bytes libjava/classpath/lib/javax/swing/JPanel.class | Bin 0 -> 1964 bytes .../JPasswordField$AccessibleJPasswordField.class | Bin 0 -> 874 bytes .../classpath/lib/javax/swing/JPasswordField.class | Bin 0 -> 3032 bytes .../classpath/lib/javax/swing/JPopupMenu$1.class | Bin 0 -> 592 bytes .../classpath/lib/javax/swing/JPopupMenu$2.class | Bin 0 -> 639 bytes .../swing/JPopupMenu$AccessibleJPopupMenu.class | Bin 0 -> 835 bytes .../swing/JPopupMenu$ActionChangeListener.class | Bin 0 -> 833 bytes .../lib/javax/swing/JPopupMenu$Separator.class | Bin 0 -> 503 bytes libjava/classpath/lib/javax/swing/JPopupMenu.class | Bin 0 -> 12623 bytes .../classpath/lib/javax/swing/JProgressBar$1.class | Bin 0 -> 780 bytes .../JProgressBar$AccessibleJProgressBar.class | Bin 0 -> 2399 bytes .../classpath/lib/javax/swing/JProgressBar.class | Bin 0 -> 7973 bytes .../JRadioButton$AccessibleJRadioButton.class | Bin 0 -> 864 bytes .../classpath/lib/javax/swing/JRadioButton.class | Bin 0 -> 2256 bytes ...onMenuItem$AccessibleJRadioButtonMenuItem.class | Bin 0 -> 924 bytes .../lib/javax/swing/JRadioButtonMenuItem.class | Bin 0 -> 2374 bytes .../swing/JRootPane$AccessibleJRootPane.class | Bin 0 -> 825 bytes .../lib/javax/swing/JRootPane$RootLayout.class | Bin 0 -> 3577 bytes libjava/classpath/lib/javax/swing/JRootPane.class | Bin 0 -> 6631 bytes .../swing/JScrollBar$AccessibleJScrollBar.class | Bin 0 -> 2501 bytes .../swing/JScrollBar$ScrollBarChangeListener.class | Bin 0 -> 1222 bytes libjava/classpath/lib/javax/swing/JScrollBar.class | Bin 0 -> 7898 bytes .../swing/JScrollPane$AccessibleJScrollPane.class | Bin 0 -> 1495 bytes .../lib/javax/swing/JScrollPane$ScrollBar.class | Bin 0 -> 1423 bytes .../classpath/lib/javax/swing/JScrollPane.class | Bin 0 -> 10207 bytes .../swing/JSeparator$AccessibleJSeparator.class | Bin 0 -> 834 bytes libjava/classpath/lib/javax/swing/JSeparator.class | Bin 0 -> 2623 bytes libjava/classpath/lib/javax/swing/JSlider$1.class | Bin 0 -> 750 bytes .../javax/swing/JSlider$AccessibleJSlider.class | Bin 0 -> 2348 bytes .../lib/javax/swing/JSlider$LabelUIResource.class | Bin 0 -> 672 bytes libjava/classpath/lib/javax/swing/JSlider.class | Bin 0 -> 11001 bytes .../lib/javax/swing/JSpinner$DateEditor.class | Bin 0 -> 2032 bytes .../javax/swing/JSpinner$DateEditorFormatter.class | Bin 0 -> 708 bytes .../lib/javax/swing/JSpinner$DefaultEditor.class | Bin 0 -> 3921 bytes .../lib/javax/swing/JSpinner$ListEditor.class | Bin 0 -> 693 bytes .../lib/javax/swing/JSpinner$ModelListener.class | Bin 0 -> 704 bytes .../lib/javax/swing/JSpinner$NumberEditor.class | Bin 0 -> 2057 bytes .../swing/JSpinner$NumberEditorFormatter.class | Bin 0 -> 722 bytes libjava/classpath/lib/javax/swing/JSpinner.class | Bin 0 -> 4828 bytes .../swing/JSplitPane$AccessibleJSplitPane.class | Bin 0 -> 2425 bytes libjava/classpath/lib/javax/swing/JSplitPane.class | Bin 0 -> 9784 bytes .../swing/JTabbedPane$AccessibleJTabbedPane.class | Bin 0 -> 3122 bytes .../javax/swing/JTabbedPane$ModelListener.class | Bin 0 -> 810 bytes .../lib/javax/swing/JTabbedPane$Page.class | Bin 0 -> 5502 bytes .../classpath/lib/javax/swing/JTabbedPane.class | Bin 0 -> 14724 bytes ...ble$AccessibleJTable$AccessibleJTableCell.class | Bin 0 -> 6478 bytes ...cessibleJTable$AccessibleJTableHeaderCell.class | Bin 0 -> 5760 bytes ...essibleJTable$AccessibleJTableModelChange.class | Bin 0 -> 1316 bytes ...le$AccessibleJTable$AccessibleTableHeader.class | Bin 0 -> 4585 bytes .../lib/javax/swing/JTable$AccessibleJTable.class | Bin 0 -> 13524 bytes .../javax/swing/JTable$BooleanCellRenderer.class | Bin 0 -> 2085 bytes .../lib/javax/swing/JTable$DateCellRenderer.class | Bin 0 -> 1275 bytes .../javax/swing/JTable$DoubleCellRenderer.class | Bin 0 -> 1221 bytes .../lib/javax/swing/JTable$FloatCellRenderer.class | Bin 0 -> 1216 bytes .../lib/javax/swing/JTable$IconCellRenderer.class | Bin 0 -> 1086 bytes .../javax/swing/JTable$NumberCellRenderer.class | Bin 0 -> 543 bytes .../JTable$TableColumnPropertyChangeHandler.class | Bin 0 -> 1405 bytes .../lib/javax/swing/JTable$TableTextField.class | Bin 0 -> 686 bytes libjava/classpath/lib/javax/swing/JTable.class | Bin 0 -> 37074 bytes .../swing/JTextArea$AccessibleJTextArea.class | Bin 0 -> 768 bytes libjava/classpath/lib/javax/swing/JTextArea.class | Bin 0 -> 7526 bytes .../classpath/lib/javax/swing/JTextField$1.class | Bin 0 -> 791 bytes .../classpath/lib/javax/swing/JTextField$2.class | Bin 0 -> 1275 bytes .../swing/JTextField$AccessibleJTextField.class | Bin 0 -> 841 bytes libjava/classpath/lib/javax/swing/JTextField.class | Bin 0 -> 8146 bytes libjava/classpath/lib/javax/swing/JTextPane.class | Bin 0 -> 6360 bytes .../JToggleButton$AccessibleJToggleButton.class | Bin 0 -> 1479 bytes .../swing/JToggleButton$ToggleButtonModel.class | Bin 0 -> 1280 bytes .../classpath/lib/javax/swing/JToggleButton.class | Bin 0 -> 2541 bytes .../javax/swing/JToolBar$AccessibleJToolBar.class | Bin 0 -> 955 bytes .../swing/JToolBar$DefaultToolBarLayout.class | Bin 0 -> 3238 bytes .../lib/javax/swing/JToolBar$Separator.class | Bin 0 -> 1172 bytes libjava/classpath/lib/javax/swing/JToolBar.class | Bin 0 -> 6886 bytes .../javax/swing/JToolTip$AccessibleJToolTip.class | Bin 0 -> 1019 bytes libjava/classpath/lib/javax/swing/JToolTip.class | Bin 0 -> 2448 bytes ...JTree$AccessibleJTree$AccessibleJTreeNode.class | Bin 0 -> 11937 bytes .../lib/javax/swing/JTree$AccessibleJTree.class | Bin 0 -> 4836 bytes .../javax/swing/JTree$DynamicUtilTreeNode.class | Bin 0 -> 2406 bytes .../javax/swing/JTree$EmptySelectionModel.class | Bin 0 -> 1021 bytes .../lib/javax/swing/JTree$TreeModelHandler.class | Bin 0 -> 3080 bytes .../swing/JTree$TreeSelectionRedirector.class | Bin 0 -> 980 bytes libjava/classpath/lib/javax/swing/JTree.class | Bin 0 -> 29327 bytes .../swing/JViewport$AccessibleJViewport.class | Bin 0 -> 760 bytes .../lib/javax/swing/JViewport$ViewListener.class | Bin 0 -> 809 bytes libjava/classpath/lib/javax/swing/JViewport.class | Bin 0 -> 12807 bytes .../javax/swing/JWindow$AccessibleJWindow.class | Bin 0 -> 506 bytes libjava/classpath/lib/javax/swing/JWindow.class | Bin 0 -> 4615 bytes libjava/classpath/lib/javax/swing/KeyStroke.class | Bin 0 -> 2011 bytes .../lib/javax/swing/KeyboardManager.class | Bin 0 -> 4273 bytes ...youtFocusTraversalPolicy$LayoutComparator.class | Bin 0 -> 951 bytes .../javax/swing/LayoutFocusTraversalPolicy.class | Bin 0 -> 602 bytes .../lib/javax/swing/ListCellRenderer.class | Bin 0 -> 229 bytes libjava/classpath/lib/javax/swing/ListModel.class | Bin 0 -> 287 bytes .../lib/javax/swing/ListSelectionModel.class | Bin 0 -> 1007 bytes .../classpath/lib/javax/swing/LookAndFeel$1.class | Bin 0 -> 852 bytes .../classpath/lib/javax/swing/LookAndFeel.class | Bin 0 -> 5733 bytes .../classpath/lib/javax/swing/MenuElement.class | Bin 0 -> 495 bytes .../lib/javax/swing/MenuSelectionManager.class | Bin 0 -> 6636 bytes .../lib/javax/swing/MutableComboBoxModel.class | Bin 0 -> 319 bytes .../classpath/lib/javax/swing/OverlayLayout.class | Bin 0 -> 4409 bytes .../lib/javax/swing/Popup$JWindowPopup.class | Bin 0 -> 1314 bytes .../lib/javax/swing/Popup$LightweightPopup.class | Bin 0 -> 2173 bytes libjava/classpath/lib/javax/swing/Popup.class | Bin 0 -> 817 bytes .../classpath/lib/javax/swing/PopupFactory.class | Bin 0 -> 1903 bytes .../lib/javax/swing/ProgressMonitor$1.class | Bin 0 -> 742 bytes .../swing/ProgressMonitor$TimerListener.class | Bin 0 -> 1671 bytes .../lib/javax/swing/ProgressMonitor.class | Bin 0 -> 3912 bytes .../javax/swing/ProgressMonitorInputStream.class | Bin 0 -> 2495 bytes libjava/classpath/lib/javax/swing/Renderer.class | Bin 0 -> 201 bytes .../javax/swing/RepaintManager$RepaintWorker.class | Bin 0 -> 1299 bytes .../swing/RepaintManager$RepaintWorkerEvent.class | Bin 0 -> 751 bytes .../classpath/lib/javax/swing/RepaintManager.class | Bin 0 -> 9873 bytes .../lib/javax/swing/RootPaneContainer.class | Bin 0 -> 488 bytes .../lib/javax/swing/ScrollPaneConstants.class | Bin 0 -> 1079 bytes .../javax/swing/ScrollPaneLayout$UIResource.class | Bin 0 -> 414 bytes .../lib/javax/swing/ScrollPaneLayout.class | Bin 0 -> 7677 bytes libjava/classpath/lib/javax/swing/Scrollable.class | Bin 0 -> 379 bytes .../lib/javax/swing/SingleSelectionModel.class | Bin 0 -> 357 bytes .../lib/javax/swing/SizeRequirements.class | Bin 0 -> 5413 bytes .../classpath/lib/javax/swing/SizeSequence.class | Bin 0 -> 2218 bytes .../javax/swing/SortingFocusTraversalPolicy.class | Bin 0 -> 3700 bytes .../lib/javax/swing/SpinnerDateModel.class | Bin 0 -> 2933 bytes .../lib/javax/swing/SpinnerListModel.class | Bin 0 -> 2285 bytes .../classpath/lib/javax/swing/SpinnerModel.class | Bin 0 -> 351 bytes .../lib/javax/swing/SpinnerNumberModel.class | Bin 0 -> 3988 bytes libjava/classpath/lib/javax/swing/Spring$1.class | Bin 0 -> 1114 bytes libjava/classpath/lib/javax/swing/Spring$2.class | Bin 0 -> 1218 bytes libjava/classpath/lib/javax/swing/Spring$3.class | Bin 0 -> 1218 bytes .../lib/javax/swing/Spring$AddSpring.class | Bin 0 -> 1822 bytes .../lib/javax/swing/Spring$MaxSpring.class | Bin 0 -> 1860 bytes .../lib/javax/swing/Spring$MinusSpring.class | Bin 0 -> 1225 bytes .../lib/javax/swing/Spring$SimpleSpring.class | Bin 0 -> 1250 bytes libjava/classpath/lib/javax/swing/Spring.class | Bin 0 -> 2675 bytes .../lib/javax/swing/SpringLayout$Constraints.class | Bin 0 -> 4240 bytes .../swing/SpringLayout$DeferredDimension.class | Bin 0 -> 683 bytes .../javax/swing/SpringLayout$DeferredHeight.class | Bin 0 -> 1175 bytes .../javax/swing/SpringLayout$DeferredSpring.class | Bin 0 -> 1875 bytes .../javax/swing/SpringLayout$DeferredWidth.class | Bin 0 -> 1169 bytes .../classpath/lib/javax/swing/SpringLayout.class | Bin 0 -> 5789 bytes .../classpath/lib/javax/swing/SwingConstants.class | Bin 0 -> 694 bytes .../javax/swing/SwingUtilities$OwnerFrame.class | Bin 0 -> 659 bytes .../classpath/lib/javax/swing/SwingUtilities.class | Bin 0 -> 19713 bytes libjava/classpath/lib/javax/swing/Timer$1.class | Bin 0 -> 557 bytes libjava/classpath/lib/javax/swing/Timer$Task.class | Bin 0 -> 906 bytes libjava/classpath/lib/javax/swing/Timer.class | Bin 0 -> 4981 bytes .../swing/ToolTipManager$insideTimerAction.class | Bin 0 -> 737 bytes .../swing/ToolTipManager$outsideTimerAction.class | Bin 0 -> 709 bytes .../ToolTipManager$stillInsideTimerAction.class | Bin 0 -> 752 bytes .../classpath/lib/javax/swing/ToolTipManager.class | Bin 0 -> 7320 bytes .../TransferHandler$PropertyTransferable.class | Bin 0 -> 2735 bytes .../swing/TransferHandler$TransferAction.class | Bin 0 -> 2022 bytes .../lib/javax/swing/TransferHandler.class | Bin 0 -> 6249 bytes .../classpath/lib/javax/swing/UIDefaults$1.class | Bin 0 -> 1211 bytes .../classpath/lib/javax/swing/UIDefaults$2.class | Bin 0 -> 1308 bytes .../classpath/lib/javax/swing/UIDefaults$3.class | Bin 0 -> 1379 bytes .../classpath/lib/javax/swing/UIDefaults$4.class | Bin 0 -> 1477 bytes .../lib/javax/swing/UIDefaults$ActiveValue.class | Bin 0 -> 267 bytes .../lib/javax/swing/UIDefaults$LazyInputMap.class | Bin 0 -> 1156 bytes .../lib/javax/swing/UIDefaults$LazyValue.class | Bin 0 -> 263 bytes .../javax/swing/UIDefaults$ProxyLazyValue.class | Bin 0 -> 2228 bytes libjava/classpath/lib/javax/swing/UIDefaults.class | Bin 0 -> 9901 bytes .../javax/swing/UIManager$LookAndFeelInfo.class | Bin 0 -> 1148 bytes ...$MultiplexUIDefaults$MultiplexEnumeration.class | Bin 0 -> 1221 bytes .../swing/UIManager$MultiplexUIDefaults.class | Bin 0 -> 1632 bytes libjava/classpath/lib/javax/swing/UIManager.class | Bin 0 -> 9920 bytes .../swing/UnsupportedLookAndFeelException.class | Bin 0 -> 403 bytes .../classpath/lib/javax/swing/ViewportLayout.class | Bin 0 -> 2485 bytes .../lib/javax/swing/WindowConstants.class | Bin 0 -> 300 bytes .../lib/javax/swing/border/AbstractBorder.class | Bin 0 -> 1795 bytes .../lib/javax/swing/border/BevelBorder.class | Bin 0 -> 4286 bytes .../classpath/lib/javax/swing/border/Border.class | Bin 0 -> 282 bytes .../lib/javax/swing/border/CompoundBorder.class | Bin 0 -> 2225 bytes .../lib/javax/swing/border/EmptyBorder.class | Bin 0 -> 1568 bytes .../lib/javax/swing/border/EtchedBorder.class | Bin 0 -> 3182 bytes .../lib/javax/swing/border/LineBorder.class | Bin 0 -> 2689 bytes .../lib/javax/swing/border/MatteBorder.class | Bin 0 -> 3754 bytes .../lib/javax/swing/border/SoftBevelBorder.class | Bin 0 -> 2794 bytes .../lib/javax/swing/border/TitledBorder.class | Bin 0 -> 9912 bytes .../colorchooser/AbstractColorChooserPanel.class | Bin 0 -> 1582 bytes .../ColorChooserComponentFactory.class | Bin 0 -> 1014 bytes .../swing/colorchooser/ColorSelectionModel.class | Bin 0 -> 340 bytes .../colorchooser/DefaultColorSelectionModel.class | Bin 0 -> 2281 bytes .../colorchooser/DefaultHSBChooserPanel$1.class | Bin 0 -> 1434 bytes .../colorchooser/DefaultHSBChooserPanel$2.class | Bin 0 -> 1077 bytes ...efaultHSBChooserPanel$ImageScrollListener.class | Bin 0 -> 1825 bytes ...HSBChooserPanel$MainGradientMouseListener.class | Bin 0 -> 2513 bytes ...DefaultHSBChooserPanel$RadioStateListener.class | Bin 0 -> 1503 bytes ...faultHSBChooserPanel$SliderChangeListener.class | Bin 0 -> 1353 bytes .../colorchooser/DefaultHSBChooserPanel.class | Bin 0 -> 9940 bytes .../DefaultPreviewPanel$PreviewBorder.class | Bin 0 -> 2020 bytes .../swing/colorchooser/DefaultPreviewPanel.class | Bin 0 -> 4044 bytes .../DefaultRGBChooserPanel$SliderHandler.class | Bin 0 -> 1333 bytes .../DefaultRGBChooserPanel$SpinnerHandler.class | Bin 0 -> 1517 bytes .../colorchooser/DefaultRGBChooserPanel.class | Bin 0 -> 5019 bytes ...DefaultSwatchChooserPanel$MainPanelLayout.class | Bin 0 -> 2444 bytes ...DefaultSwatchChooserPanel$MainSwatchPanel.class | Bin 0 -> 7923 bytes .../DefaultSwatchChooserPanel$MouseHandler.class | Bin 0 -> 1620 bytes ...faultSwatchChooserPanel$RecentPanelLayout.class | Bin 0 -> 2178 bytes ...faultSwatchChooserPanel$RecentSwatchPanel.class | Bin 0 -> 2954 bytes .../DefaultSwatchChooserPanel$SwatchPanel.class | Bin 0 -> 1303 bytes .../colorchooser/DefaultSwatchChooserPanel.class | Bin 0 -> 3119 bytes .../lib/javax/swing/event/AncestorEvent.class | Bin 0 -> 1099 bytes .../lib/javax/swing/event/AncestorListener.class | Bin 0 -> 275 bytes .../lib/javax/swing/event/CaretEvent.class | Bin 0 -> 400 bytes .../lib/javax/swing/event/CaretListener.class | Bin 0 -> 214 bytes .../lib/javax/swing/event/CellEditorListener.class | Bin 0 -> 254 bytes .../lib/javax/swing/event/ChangeEvent.class | Bin 0 -> 362 bytes .../lib/javax/swing/event/ChangeListener.class | Bin 0 -> 218 bytes .../swing/event/DocumentEvent$ElementChange.class | Bin 0 -> 388 bytes .../swing/event/DocumentEvent$EventType.class | Bin 0 -> 794 bytes .../lib/javax/swing/event/DocumentEvent.class | Bin 0 -> 554 bytes .../lib/javax/swing/event/DocumentListener.class | Bin 0 -> 271 bytes .../lib/javax/swing/event/EventListenerList.class | Bin 0 -> 4510 bytes .../swing/event/HyperlinkEvent$EventType.class | Bin 0 -> 802 bytes .../lib/javax/swing/event/HyperlinkEvent.class | Bin 0 -> 1782 bytes .../lib/javax/swing/event/HyperlinkListener.class | Bin 0 -> 230 bytes .../javax/swing/event/InternalFrameAdapter.class | Bin 0 -> 1105 bytes .../lib/javax/swing/event/InternalFrameEvent.class | Bin 0 -> 1343 bytes .../javax/swing/event/InternalFrameListener.class | Bin 0 -> 443 bytes .../lib/javax/swing/event/ListDataEvent.class | Bin 0 -> 1587 bytes .../lib/javax/swing/event/ListDataListener.class | Bin 0 -> 277 bytes .../lib/javax/swing/event/ListSelectionEvent.class | Bin 0 -> 1514 bytes .../javax/swing/event/ListSelectionListener.class | Bin 0 -> 239 bytes .../lib/javax/swing/event/MenuDragMouseEvent.class | Bin 0 -> 1050 bytes .../javax/swing/event/MenuDragMouseListener.class | Bin 0 -> 340 bytes .../lib/javax/swing/event/MenuEvent.class | Bin 0 -> 356 bytes .../lib/javax/swing/event/MenuKeyEvent.class | Bin 0 -> 986 bytes .../lib/javax/swing/event/MenuKeyListener.class | Bin 0 -> 272 bytes .../lib/javax/swing/event/MenuListener.class | Bin 0 -> 260 bytes .../lib/javax/swing/event/MouseInputAdapter.class | Bin 0 -> 1003 bytes .../lib/javax/swing/event/MouseInputListener.class | Bin 0 -> 213 bytes .../lib/javax/swing/event/PopupMenuEvent.class | Bin 0 -> 371 bytes .../lib/javax/swing/event/PopupMenuListener.class | Bin 0 -> 308 bytes .../swing/event/SwingPropertyChangeSupport.class | Bin 0 -> 482 bytes .../javax/swing/event/TableColumnModelEvent.class | Bin 0 -> 740 bytes .../swing/event/TableColumnModelListener.class | Bin 0 -> 437 bytes .../lib/javax/swing/event/TableModelEvent.class | Bin 0 -> 1718 bytes .../lib/javax/swing/event/TableModelListener.class | Bin 0 -> 230 bytes .../lib/javax/swing/event/TreeExpansionEvent.class | Bin 0 -> 620 bytes .../javax/swing/event/TreeExpansionListener.class | Bin 0 -> 263 bytes .../lib/javax/swing/event/TreeModelEvent.class | Bin 0 -> 2298 bytes .../lib/javax/swing/event/TreeModelListener.class | Bin 0 -> 317 bytes .../lib/javax/swing/event/TreeSelectionEvent.class | Bin 0 -> 2194 bytes .../javax/swing/event/TreeSelectionListener.class | Bin 0 -> 239 bytes .../javax/swing/event/TreeWillExpandListener.class | Bin 0 -> 345 bytes .../lib/javax/swing/event/UndoableEditEvent.class | Bin 0 -> 684 bytes .../javax/swing/event/UndoableEditListener.class | Bin 0 -> 244 bytes .../lib/javax/swing/filechooser/FileFilter.class | Bin 0 -> 392 bytes .../javax/swing/filechooser/FileSystemView.class | Bin 0 -> 4192 bytes .../lib/javax/swing/filechooser/FileView.class | Bin 0 -> 863 bytes .../swing/filechooser/UnixFileSystemView.class | Bin 0 -> 2253 bytes .../lib/javax/swing/plaf/ActionMapUIResource.class | Bin 0 -> 360 bytes .../BorderUIResource$BevelBorderUIResource.class | Bin 0 -> 1078 bytes ...BorderUIResource$CompoundBorderUIResource.class | Bin 0 -> 739 bytes .../BorderUIResource$EmptyBorderUIResource.class | Bin 0 -> 811 bytes .../BorderUIResource$EtchedBorderUIResource.class | Bin 0 -> 1024 bytes .../BorderUIResource$LineBorderUIResource.class | Bin 0 -> 776 bytes .../BorderUIResource$MatteBorderUIResource.class | Bin 0 -> 1030 bytes .../BorderUIResource$TitledBorderUIResource.class | Bin 0 -> 1670 bytes .../lib/javax/swing/plaf/BorderUIResource.class | Bin 0 -> 2641 bytes .../classpath/lib/javax/swing/plaf/ButtonUI.class | Bin 0 -> 295 bytes .../lib/javax/swing/plaf/ColorChooserUI.class | Bin 0 -> 317 bytes .../lib/javax/swing/plaf/ColorUIResource.class | Bin 0 -> 762 bytes .../lib/javax/swing/plaf/ComboBoxUI.class | Bin 0 -> 444 bytes .../swing/plaf/ComponentInputMapUIResource.class | Bin 0 -> 466 bytes .../lib/javax/swing/plaf/ComponentUI.class | Bin 0 -> 2426 bytes .../lib/javax/swing/plaf/DesktopIconUI.class | Bin 0 -> 314 bytes .../lib/javax/swing/plaf/DesktopPaneUI.class | Bin 0 -> 314 bytes .../lib/javax/swing/plaf/DimensionUIResource.class | Bin 0 -> 402 bytes .../lib/javax/swing/plaf/FileChooserUI.class | Bin 0 -> 747 bytes .../lib/javax/swing/plaf/FontUIResource.class | Bin 0 -> 657 bytes .../lib/javax/swing/plaf/IconUIResource.class | Bin 0 -> 1114 bytes .../lib/javax/swing/plaf/InputMapUIResource.class | Bin 0 -> 356 bytes .../lib/javax/swing/plaf/InsetsUIResource.class | Bin 0 -> 547 bytes .../lib/javax/swing/plaf/InternalFrameUI.class | Bin 0 -> 320 bytes .../classpath/lib/javax/swing/plaf/LabelUI.class | Bin 0 -> 296 bytes .../classpath/lib/javax/swing/plaf/ListUI.class | Bin 0 -> 497 bytes .../classpath/lib/javax/swing/plaf/MenuBarUI.class | Bin 0 -> 302 bytes .../lib/javax/swing/plaf/MenuItemUI.class | Bin 0 -> 302 bytes .../lib/javax/swing/plaf/OptionPaneUI.class | Bin 0 -> 433 bytes .../classpath/lib/javax/swing/plaf/PanelUI.class | Bin 0 -> 296 bytes .../lib/javax/swing/plaf/PopupMenuUI.class | Bin 0 -> 981 bytes .../lib/javax/swing/plaf/ProgressBarUI.class | Bin 0 -> 314 bytes .../lib/javax/swing/plaf/RootPaneUI.class | Bin 0 -> 305 bytes .../lib/javax/swing/plaf/ScrollBarUI.class | Bin 0 -> 308 bytes .../lib/javax/swing/plaf/ScrollPaneUI.class | Bin 0 -> 311 bytes .../lib/javax/swing/plaf/SeparatorUI.class | Bin 0 -> 308 bytes .../classpath/lib/javax/swing/plaf/SliderUI.class | Bin 0 -> 299 bytes .../classpath/lib/javax/swing/plaf/SpinnerUI.class | Bin 0 -> 302 bytes .../lib/javax/swing/plaf/SplitPaneUI.class | Bin 0 -> 645 bytes .../lib/javax/swing/plaf/TabbedPaneUI.class | Bin 0 -> 501 bytes .../lib/javax/swing/plaf/TableHeaderUI.class | Bin 0 -> 314 bytes .../classpath/lib/javax/swing/plaf/TableUI.class | Bin 0 -> 296 bytes .../classpath/lib/javax/swing/plaf/TextUI.class | Bin 0 -> 1455 bytes .../classpath/lib/javax/swing/plaf/ToolBarUI.class | Bin 0 -> 302 bytes .../classpath/lib/javax/swing/plaf/ToolTipUI.class | Bin 0 -> 302 bytes .../classpath/lib/javax/swing/plaf/TreeUI.class | Bin 0 -> 949 bytes .../lib/javax/swing/plaf/UIResource.class | Bin 0 -> 118 bytes .../lib/javax/swing/plaf/ViewportUI.class | Bin 0 -> 305 bytes .../javax/swing/plaf/basic/BasicArrowButton.class | Bin 0 -> 4556 bytes .../plaf/basic/BasicBorders$ButtonBorder.class | Bin 0 -> 2305 bytes .../plaf/basic/BasicBorders$FieldBorder.class | Bin 0 -> 2104 bytes .../plaf/basic/BasicBorders$MarginBorder.class | Bin 0 -> 1420 bytes .../plaf/basic/BasicBorders$MenuBarBorder.class | Bin 0 -> 1861 bytes .../basic/BasicBorders$RadioButtonBorder.class | Bin 0 -> 2394 bytes .../basic/BasicBorders$RolloverButtonBorder.class | Bin 0 -> 1786 bytes .../plaf/basic/BasicBorders$SplitPaneBorder.class | Bin 0 -> 2795 bytes .../BasicBorders$SplitPaneDividerBorder.class | Bin 0 -> 2559 bytes .../basic/BasicBorders$ToggleButtonBorder.class | Bin 0 -> 1704 bytes .../lib/javax/swing/plaf/basic/BasicBorders.class | Bin 0 -> 4045 bytes .../swing/plaf/basic/BasicButtonListener$1.class | Bin 0 -> 1175 bytes .../swing/plaf/basic/BasicButtonListener$2.class | Bin 0 -> 1175 bytes .../basic/BasicButtonListener$ButtonAction.class | Bin 0 -> 1892 bytes .../swing/plaf/basic/BasicButtonListener.class | Bin 0 -> 6685 bytes .../lib/javax/swing/plaf/basic/BasicButtonUI.class | Bin 0 -> 11510 bytes .../swing/plaf/basic/BasicCheckBoxMenuItemUI.class | Bin 0 -> 1185 bytes .../javax/swing/plaf/basic/BasicCheckBoxUI.class | Bin 0 -> 628 bytes .../swing/plaf/basic/BasicColorChooserUI$1.class | Bin 0 -> 924 bytes .../BasicColorChooserUI$PreviewListener.class | Bin 0 -> 1413 bytes .../BasicColorChooserUI$PropertyHandler.class | Bin 0 -> 1657 bytes .../BasicColorChooserUI$TabPaneListener.class | Bin 0 -> 1275 bytes .../swing/plaf/basic/BasicColorChooserUI.class | Bin 0 -> 4904 bytes .../basic/BasicComboBoxEditor$UIResource.class | Bin 0 -> 459 bytes .../swing/plaf/basic/BasicComboBoxEditor.class | Bin 0 -> 1816 bytes .../basic/BasicComboBoxRenderer$UIResource.class | Bin 0 -> 467 bytes .../swing/plaf/basic/BasicComboBoxRenderer.class | Bin 0 -> 2088 bytes .../BasicComboBoxUI$ComboBoxLayoutManager.class | Bin 0 -> 2168 bytes .../plaf/basic/BasicComboBoxUI$FocusHandler.class | Bin 0 -> 1191 bytes .../plaf/basic/BasicComboBoxUI$ItemHandler.class | Bin 0 -> 1308 bytes .../plaf/basic/BasicComboBoxUI$KeyHandler.class | Bin 0 -> 1593 bytes .../basic/BasicComboBoxUI$ListDataHandler.class | Bin 0 -> 3136 bytes .../BasicComboBoxUI$PropertyChangeHandler.class | Bin 0 -> 2581 bytes .../javax/swing/plaf/basic/BasicComboBoxUI.class | Bin 0 -> 16273 bytes .../BasicComboPopup$InvocationKeyHandler.class | Bin 0 -> 734 bytes .../BasicComboPopup$InvocationMouseHandler.class | Bin 0 -> 2308 bytes ...icComboPopup$InvocationMouseMotionHandler.class | Bin 0 -> 1954 bytes .../plaf/basic/BasicComboPopup$ItemHandler.class | Bin 0 -> 1152 bytes .../basic/BasicComboPopup$ListDataHandler.class | Bin 0 -> 940 bytes .../basic/BasicComboPopup$ListMouseHandler.class | Bin 0 -> 1081 bytes .../BasicComboPopup$ListMouseMotionHandler.class | Bin 0 -> 1296 bytes .../BasicComboPopup$ListSelectionHandler.class | Bin 0 -> 799 bytes .../BasicComboPopup$PropertyChangeHandler.class | Bin 0 -> 1878 bytes .../javax/swing/plaf/basic/BasicComboPopup.class | Bin 0 -> 14150 bytes .../swing/plaf/basic/BasicDesktopIconUI$1.class | Bin 0 -> 1713 bytes .../swing/plaf/basic/BasicDesktopIconUI$2.class | Bin 0 -> 814 bytes .../basic/BasicDesktopIconUI$BoundButton.class | Bin 0 -> 1306 bytes .../BasicDesktopIconUI$DesktopIconBorder.class | Bin 0 -> 2025 bytes ...esktopIconUI$InternalFrameDefaultMenuIcon.class | Bin 0 -> 1310 bytes .../BasicDesktopIconUI$MouseInputHandler.class | Bin 0 -> 2401 bytes .../swing/plaf/basic/BasicDesktopIconUI.class | Bin 0 -> 4991 bytes .../basic/BasicDesktopPaneUI$CloseAction.class | Bin 0 -> 1157 bytes .../basic/BasicDesktopPaneUI$MaximizeAction.class | Bin 0 -> 1170 bytes .../basic/BasicDesktopPaneUI$MinimizeAction.class | Bin 0 -> 1167 bytes .../basic/BasicDesktopPaneUI$NavigateAction.class | Bin 0 -> 1351 bytes .../plaf/basic/BasicDesktopPaneUI$OpenAction.class | Bin 0 -> 1238 bytes .../swing/plaf/basic/BasicDesktopPaneUI.class | Bin 0 -> 3093 bytes .../swing/plaf/basic/BasicDirectoryModel$1.class | Bin 0 -> 856 bytes ...el$DirectoryLoadThread$UpdateSwingRequest.class | Bin 0 -> 2209 bytes .../BasicDirectoryModel$DirectoryLoadThread.class | Bin 0 -> 4426 bytes .../swing/plaf/basic/BasicDirectoryModel.class | Bin 0 -> 5555 bytes .../javax/swing/plaf/basic/BasicEditorPaneUI.class | Bin 0 -> 914 bytes .../BasicFileChooserUI$AcceptAllFileFilter.class | Bin 0 -> 893 bytes ...BasicFileChooserUI$ApproveSelectionAction.class | Bin 0 -> 2289 bytes .../basic/BasicFileChooserUI$BasicFileView.class | Bin 0 -> 2695 bytes .../BasicFileChooserUI$CancelSelectionAction.class | Bin 0 -> 1079 bytes ...leChooserUI$ChangeToParentDirectoryAction.class | Bin 0 -> 1031 bytes .../BasicFileChooserUI$DoubleClickListener.class | Bin 0 -> 2984 bytes .../basic/BasicFileChooserUI$GoHomeAction.class | Bin 0 -> 1186 bytes .../basic/BasicFileChooserUI$NewFolderAction.class | Bin 0 -> 1269 bytes .../BasicFileChooserUI$SelectionListener.class | Bin 0 -> 1680 bytes .../basic/BasicFileChooserUI$UpdateAction.class | Bin 0 -> 758 bytes .../swing/plaf/basic/BasicFileChooserUI.class | Bin 0 -> 13666 bytes .../plaf/basic/BasicFormattedTextFieldUI.class | Bin 0 -> 669 bytes .../swing/plaf/basic/BasicGraphicsUtils.class | Bin 0 -> 8236 bytes .../swing/plaf/basic/BasicHTML$HTMLRootView.class | Bin 0 -> 4406 bytes .../lib/javax/swing/plaf/basic/BasicHTML.class | Bin 0 -> 2774 bytes .../swing/plaf/basic/BasicIconFactory$1.class | Bin 0 -> 1221 bytes .../swing/plaf/basic/BasicIconFactory$2.class | Bin 0 -> 1188 bytes .../plaf/basic/BasicIconFactory$CheckBoxIcon.class | Bin 0 -> 836 bytes .../BasicIconFactory$CheckBoxMenuItemIcon.class | Bin 0 -> 1278 bytes .../plaf/basic/BasicIconFactory$DummyIcon.class | Bin 0 -> 1212 bytes .../basic/BasicIconFactory$RadioButtonIcon.class | Bin 0 -> 845 bytes .../javax/swing/plaf/basic/BasicIconFactory.class | Bin 0 -> 1847 bytes .../BasicInternalFrameTitlePane$CloseAction.class | Bin 0 -> 1046 bytes ...BasicInternalFrameTitlePane$IconifyAction.class | Bin 0 -> 1088 bytes ...asicInternalFrameTitlePane$MaximizeAction.class | Bin 0 -> 1350 bytes .../BasicInternalFrameTitlePane$MoveAction.class | Bin 0 -> 817 bytes .../BasicInternalFrameTitlePane$PaneButton.class | Bin 0 -> 887 bytes ...ernalFrameTitlePane$PropertyChangeHandler.class | Bin 0 -> 1598 bytes ...BasicInternalFrameTitlePane$RestoreAction.class | Bin 0 -> 1054 bytes .../BasicInternalFrameTitlePane$SizeAction.class | Bin 0 -> 817 bytes ...BasicInternalFrameTitlePane$SystemMenuBar.class | Bin 0 -> 1381 bytes ...sicInternalFrameTitlePane$TitlePaneLayout.class | Bin 0 -> 2770 bytes .../plaf/basic/BasicInternalFrameTitlePane.class | Bin 0 -> 10171 bytes ...nternalFrameUI$BasicInternalFrameListener.class | Bin 0 -> 1622 bytes .../BasicInternalFrameUI$BorderListener.class | Bin 0 -> 5434 bytes .../BasicInternalFrameUI$ComponentHandler.class | Bin 0 -> 1663 bytes .../BasicInternalFrameUI$GlassPaneDispatcher.class | Bin 0 -> 3894 bytes .../BasicInternalFrameUI$InternalFrameBorder.class | Bin 0 -> 2244 bytes .../BasicInternalFrameUI$InternalFrameLayout.class | Bin 0 -> 3731 bytes ...ameUI$InternalFramePropertyChangeListener.class | Bin 0 -> 3035 bytes ...BasicInternalFrameUI$ShowSystemMenuAction.class | Bin 0 -> 1138 bytes .../swing/plaf/basic/BasicInternalFrameUI.class | Bin 0 -> 12010 bytes .../javax/swing/plaf/basic/BasicLabelUI$1.class | Bin 0 -> 1068 bytes .../lib/javax/swing/plaf/basic/BasicLabelUI.class | Bin 0 -> 9298 bytes .../basic/BasicListUI$ActionListenerProxy.class | Bin 0 -> 1138 bytes .../plaf/basic/BasicListUI$FocusHandler.class | Bin 0 -> 894 bytes .../swing/plaf/basic/BasicListUI$ListAction.class | Bin 0 -> 4157 bytes .../plaf/basic/BasicListUI$ListDataHandler.class | Bin 0 -> 1130 bytes .../basic/BasicListUI$ListSelectionHandler.class | Bin 0 -> 1200 bytes .../plaf/basic/BasicListUI$MouseInputHandler.class | Bin 0 -> 2536 bytes .../basic/BasicListUI$PropertyChangeHandler.class | Bin 0 -> 1770 bytes .../lib/javax/swing/plaf/basic/BasicListUI.class | Bin 0 -> 15521 bytes .../swing/plaf/basic/BasicLookAndFeel$1.class | Bin 0 -> 920 bytes .../swing/plaf/basic/BasicLookAndFeel$2.class | Bin 0 -> 913 bytes .../swing/plaf/basic/BasicLookAndFeel$3.class | Bin 0 -> 918 bytes .../swing/plaf/basic/BasicLookAndFeel$4.class | Bin 0 -> 921 bytes .../swing/plaf/basic/BasicLookAndFeel$5.class | Bin 0 -> 1557 bytes .../swing/plaf/basic/BasicLookAndFeel$6.class | Bin 0 -> 996 bytes .../swing/plaf/basic/BasicLookAndFeel$7.class | Bin 0 -> 916 bytes .../plaf/basic/BasicLookAndFeel$AudioAction.class | Bin 0 -> 1804 bytes .../plaf/basic/BasicLookAndFeel$PopupHelper.class | Bin 0 -> 2053 bytes .../javax/swing/plaf/basic/BasicLookAndFeel.class | Bin 0 -> 54628 bytes .../plaf/basic/BasicMenuBarUI$ChangeHandler.class | Bin 0 -> 911 bytes .../basic/BasicMenuBarUI$ContainerHandler.class | Bin 0 -> 1177 bytes .../plaf/basic/BasicMenuBarUI$FocusAction.class | Bin 0 -> 1327 bytes .../basic/BasicMenuBarUI$MouseInputHandler.class | Bin 0 -> 1811 bytes .../BasicMenuBarUI$PropertyChangeHandler.class | Bin 0 -> 1278 bytes .../javax/swing/plaf/basic/BasicMenuBarUI.class | Bin 0 -> 5909 bytes .../plaf/basic/BasicMenuItemUI$ClickAction.class | Bin 0 -> 896 bytes .../plaf/basic/BasicMenuItemUI$ItemHandler.class | Bin 0 -> 1250 bytes .../BasicMenuItemUI$MenuDragMouseHandler.class | Bin 0 -> 2003 bytes .../basic/BasicMenuItemUI$MenuKeyHandler.class | Bin 0 -> 1091 bytes .../basic/BasicMenuItemUI$MouseInputHandler.class | Bin 0 -> 2324 bytes .../BasicMenuItemUI$PropertyChangeHandler.class | Bin 0 -> 2614 bytes .../javax/swing/plaf/basic/BasicMenuItemUI.class | Bin 0 -> 17650 bytes .../plaf/basic/BasicMenuUI$ChangeHandler.class | Bin 0 -> 969 bytes .../basic/BasicMenuUI$MenuDragMouseHandler.class | Bin 0 -> 2832 bytes .../swing/plaf/basic/BasicMenuUI$MenuHandler.class | Bin 0 -> 1638 bytes .../plaf/basic/BasicMenuUI$MenuKeyHandler.class | Bin 0 -> 1125 bytes .../plaf/basic/BasicMenuUI$MouseInputHandler.class | Bin 0 -> 3272 bytes .../plaf/basic/BasicMenuUI$SelectMenuAction.class | Bin 0 -> 1439 bytes .../lib/javax/swing/plaf/basic/BasicMenuUI.class | Bin 0 -> 6078 bytes .../swing/plaf/basic/BasicOptionPaneUI$1.class | Bin 0 -> 1325 bytes .../swing/plaf/basic/BasicOptionPaneUI$2.class | Bin 0 -> 1389 bytes .../swing/plaf/basic/BasicOptionPaneUI$3.class | Bin 0 -> 1406 bytes .../swing/plaf/basic/BasicOptionPaneUI$4.class | Bin 0 -> 1282 bytes .../BasicOptionPaneUI$ButtonActionListener.class | Bin 0 -> 2178 bytes .../basic/BasicOptionPaneUI$ButtonAreaLayout.class | Bin 0 -> 3303 bytes .../plaf/basic/BasicOptionPaneUI$MessageIcon.class | Bin 0 -> 953 bytes .../BasicOptionPaneUI$OptionPaneCloseAction.class | Bin 0 -> 897 bytes .../BasicOptionPaneUI$PropertyChangeHandler.class | Bin 0 -> 1430 bytes .../javax/swing/plaf/basic/BasicOptionPaneUI.class | Bin 0 -> 14568 bytes .../lib/javax/swing/plaf/basic/BasicPanelUI.class | Bin 0 -> 1437 bytes .../swing/plaf/basic/BasicPasswordFieldUI.class | Bin 0 -> 900 bytes .../plaf/basic/BasicPopupMenuSeparatorUI.class | Bin 0 -> 1533 bytes .../basic/BasicPopupMenuUI$KeyboardHelper.class | Bin 0 -> 3368 bytes .../basic/BasicPopupMenuUI$NavigateAction.class | Bin 0 -> 6719 bytes .../basic/BasicPopupMenuUI$PopupMenuHandler.class | Bin 0 -> 2391 bytes .../basic/BasicPopupMenuUI$TopWindowListener.class | Bin 0 -> 1481 bytes .../javax/swing/plaf/basic/BasicPopupMenuUI.class | Bin 0 -> 6526 bytes .../basic/BasicProgressBarUI$AncestorHandler.class | Bin 0 -> 1345 bytes .../plaf/basic/BasicProgressBarUI$Animator.class | Bin 0 -> 960 bytes .../basic/BasicProgressBarUI$ChangeHandler.class | Bin 0 -> 888 bytes .../BasicProgressBarUI$ComponentHandler.class | Bin 0 -> 1056 bytes .../BasicProgressBarUI$PropertyChangeHandler.class | Bin 0 -> 1491 bytes .../swing/plaf/basic/BasicProgressBarUI.class | Bin 0 -> 13071 bytes .../plaf/basic/BasicRadioButtonMenuItemUI.class | Bin 0 -> 1197 bytes .../swing/plaf/basic/BasicRadioButtonUI.class | Bin 0 -> 5547 bytes .../basic/BasicRootPaneUI$DefaultPressAction.class | Bin 0 -> 1211 bytes .../BasicRootPaneUI$DefaultReleaseAction.class | Bin 0 -> 1217 bytes .../javax/swing/plaf/basic/BasicRootPaneUI.class | Bin 0 -> 3905 bytes .../swing/plaf/basic/BasicScrollBarUI$1.class | Bin 0 -> 1190 bytes .../swing/plaf/basic/BasicScrollBarUI$2.class | Bin 0 -> 1191 bytes .../swing/plaf/basic/BasicScrollBarUI$3.class | Bin 0 -> 1190 bytes .../swing/plaf/basic/BasicScrollBarUI$4.class | Bin 0 -> 1191 bytes .../swing/plaf/basic/BasicScrollBarUI$5.class | Bin 0 -> 1122 bytes .../swing/plaf/basic/BasicScrollBarUI$6.class | Bin 0 -> 1122 bytes .../BasicScrollBarUI$ArrowButtonListener.class | Bin 0 -> 1555 bytes .../basic/BasicScrollBarUI$ModelListener.class | Bin 0 -> 955 bytes .../BasicScrollBarUI$PropertyChangeHandler.class | Bin 0 -> 2087 bytes .../basic/BasicScrollBarUI$ScrollListener.class | Bin 0 -> 1651 bytes .../basic/BasicScrollBarUI$TrackListener.class | Bin 0 -> 3012 bytes .../javax/swing/plaf/basic/BasicScrollBarUI.class | Bin 0 -> 16908 bytes .../swing/plaf/basic/BasicScrollPaneUI$1.class | Bin 0 -> 1344 bytes .../swing/plaf/basic/BasicScrollPaneUI$10.class | Bin 0 -> 1345 bytes .../swing/plaf/basic/BasicScrollPaneUI$2.class | Bin 0 -> 1359 bytes .../swing/plaf/basic/BasicScrollPaneUI$3.class | Bin 0 -> 1341 bytes .../swing/plaf/basic/BasicScrollPaneUI$4.class | Bin 0 -> 1343 bytes .../swing/plaf/basic/BasicScrollPaneUI$5.class | Bin 0 -> 1342 bytes .../swing/plaf/basic/BasicScrollPaneUI$6.class | Bin 0 -> 1344 bytes .../swing/plaf/basic/BasicScrollPaneUI$7.class | Bin 0 -> 1359 bytes .../swing/plaf/basic/BasicScrollPaneUI$8.class | Bin 0 -> 1342 bytes .../swing/plaf/basic/BasicScrollPaneUI$9.class | Bin 0 -> 1341 bytes .../BasicScrollPaneUI$HSBChangeListener.class | Bin 0 -> 1387 bytes .../BasicScrollPaneUI$MouseWheelHandler.class | Bin 0 -> 1690 bytes .../BasicScrollPaneUI$PropertyChangeHandler.class | Bin 0 -> 2042 bytes .../BasicScrollPaneUI$VSBChangeListener.class | Bin 0 -> 1385 bytes .../BasicScrollPaneUI$ViewportChangeHandler.class | Bin 0 -> 843 bytes ...sicScrollPaneUI$ViewportContainerListener.class | Bin 0 -> 1211 bytes .../javax/swing/plaf/basic/BasicScrollPaneUI.class | Bin 0 -> 10659 bytes .../javax/swing/plaf/basic/BasicSeparatorUI.class | Bin 0 -> 3047 bytes .../javax/swing/plaf/basic/BasicSliderUI$1.class | Bin 0 -> 1165 bytes .../javax/swing/plaf/basic/BasicSliderUI$2.class | Bin 0 -> 1165 bytes .../javax/swing/plaf/basic/BasicSliderUI$3.class | Bin 0 -> 1166 bytes .../javax/swing/plaf/basic/BasicSliderUI$4.class | Bin 0 -> 1166 bytes .../javax/swing/plaf/basic/BasicSliderUI$5.class | Bin 0 -> 1142 bytes .../javax/swing/plaf/basic/BasicSliderUI$6.class | Bin 0 -> 1142 bytes .../plaf/basic/BasicSliderUI$ActionScroller.class | Bin 0 -> 827 bytes .../plaf/basic/BasicSliderUI$ChangeHandler.class | Bin 0 -> 889 bytes .../basic/BasicSliderUI$ComponentHandler.class | Bin 0 -> 872 bytes .../plaf/basic/BasicSliderUI$FocusHandler.class | Bin 0 -> 920 bytes .../BasicSliderUI$PropertyChangeHandler.class | Bin 0 -> 1862 bytes .../plaf/basic/BasicSliderUI$ScrollListener.class | Bin 0 -> 1574 bytes .../plaf/basic/BasicSliderUI$TrackListener.class | Bin 0 -> 2631 bytes .../lib/javax/swing/plaf/basic/BasicSliderUI.class | Bin 0 -> 25517 bytes .../javax/swing/plaf/basic/BasicSpinnerUI$1.class | Bin 0 -> 1216 bytes .../javax/swing/plaf/basic/BasicSpinnerUI$2.class | Bin 0 -> 1703 bytes .../javax/swing/plaf/basic/BasicSpinnerUI$3.class | Bin 0 -> 784 bytes .../javax/swing/plaf/basic/BasicSpinnerUI$4.class | Bin 0 -> 1711 bytes .../javax/swing/plaf/basic/BasicSpinnerUI$5.class | Bin 0 -> 784 bytes .../BasicSpinnerUI$DefaultLayoutManager.class | Bin 0 -> 3926 bytes .../javax/swing/plaf/basic/BasicSpinnerUI.class | Bin 0 -> 4321 bytes ...BasicSplitPaneDivider$BasicOneTouchButton.class | Bin 0 -> 2121 bytes .../BasicSplitPaneDivider$DividerLayout.class | Bin 0 -> 2579 bytes .../BasicSplitPaneDivider$DragController.class | Bin 0 -> 1769 bytes .../basic/BasicSplitPaneDivider$MouseHandler.class | Bin 0 -> 1691 bytes .../BasicSplitPaneDivider$OneTouchAction.class | Bin 0 -> 2371 bytes ...icSplitPaneDivider$VerticalDragController.class | Bin 0 -> 1197 bytes .../swing/plaf/basic/BasicSplitPaneDivider.class | Bin 0 -> 7162 bytes .../swing/plaf/basic/BasicSplitPaneUI$1.class | Bin 0 -> 855 bytes .../swing/plaf/basic/BasicSplitPaneUI$2.class | Bin 0 -> 977 bytes .../swing/plaf/basic/BasicSplitPaneUI$3.class | Bin 0 -> 985 bytes .../swing/plaf/basic/BasicSplitPaneUI$4.class | Bin 0 -> 985 bytes .../swing/plaf/basic/BasicSplitPaneUI$5.class | Bin 0 -> 1182 bytes .../swing/plaf/basic/BasicSplitPaneUI$6.class | Bin 0 -> 1182 bytes .../swing/plaf/basic/BasicSplitPaneUI$7.class | Bin 0 -> 855 bytes .../swing/plaf/basic/BasicSplitPaneUI$8.class | Bin 0 -> 855 bytes ...cSplitPaneUI$BasicHorizontalLayoutManager.class | Bin 0 -> 6704 bytes ...sicSplitPaneUI$BasicVerticalLayoutManager.class | Bin 0 -> 701 bytes .../plaf/basic/BasicSplitPaneUI$FocusHandler.class | Bin 0 -> 965 bytes ...BasicSplitPaneUI$KeyboardDownRightHandler.class | Bin 0 -> 787 bytes .../BasicSplitPaneUI$KeyboardEndHandler.class | Bin 0 -> 769 bytes .../BasicSplitPaneUI$KeyboardHomeHandler.class | Bin 0 -> 772 bytes ...icSplitPaneUI$KeyboardResizeToggleHandler.class | Bin 0 -> 796 bytes .../BasicSplitPaneUI$KeyboardUpLeftHandler.class | Bin 0 -> 778 bytes .../basic/BasicSplitPaneUI$PropertyHandler.class | Bin 0 -> 1987 bytes .../javax/swing/plaf/basic/BasicSplitPaneUI.class | Bin 0 -> 14032 bytes .../basic/BasicTabbedPaneUI$FocusHandler.class | Bin 0 -> 1350 bytes .../basic/BasicTabbedPaneUI$MouseHandler.class | Bin 0 -> 4164 bytes .../basic/BasicTabbedPaneUI$NavigateAction.class | Bin 0 -> 1097 bytes .../BasicTabbedPaneUI$NavigatePageDownAction.class | Bin 0 -> 1104 bytes .../BasicTabbedPaneUI$NavigatePageUpAction.class | Bin 0 -> 1100 bytes .../BasicTabbedPaneUI$PropertyChangeHandler.class | Bin 0 -> 2309 bytes .../BasicTabbedPaneUI$RequestFocusAction.class | Bin 0 -> 804 bytes ...eUI$RequestFocusForVisibleComponentAction.class | Bin 0 -> 1029 bytes .../basic/BasicTabbedPaneUI$ScrollingButton.class | Bin 0 -> 659 bytes ...bedPaneUI$ScrollingPanel$ScrollingPanelUI.class | Bin 0 -> 1945 bytes .../basic/BasicTabbedPaneUI$ScrollingPanel.class | Bin 0 -> 1293 bytes .../BasicTabbedPaneUI$ScrollingViewport.class | Bin 0 -> 790 bytes .../BasicTabbedPaneUI$TabSelectionHandler.class | Bin 0 -> 1145 bytes .../basic/BasicTabbedPaneUI$TabbedPaneLayout.class | Bin 0 -> 10750 bytes .../BasicTabbedPaneUI$TabbedPaneScrollLayout.class | Bin 0 -> 6417 bytes .../javax/swing/plaf/basic/BasicTabbedPaneUI.class | Bin 0 -> 32391 bytes .../swing/plaf/basic/BasicTableHeaderUI$1.class | Bin 0 -> 1270 bytes .../BasicTableHeaderUI$MouseInputHandler.class | Bin 0 -> 5270 bytes .../swing/plaf/basic/BasicTableHeaderUI.class | Bin 0 -> 6332 bytes .../plaf/basic/BasicTableUI$FocusHandler.class | Bin 0 -> 1654 bytes .../swing/plaf/basic/BasicTableUI$KeyHandler.class | Bin 0 -> 1233 bytes .../basic/BasicTableUI$MouseInputHandler.class | Bin 0 -> 3833 bytes .../basic/BasicTableUI$PropertyChangeHandler.class | Bin 0 -> 2003 bytes .../plaf/basic/BasicTableUI$TableAction.class | Bin 0 -> 10390 bytes .../lib/javax/swing/plaf/basic/BasicTableUI.class | Bin 0 -> 11558 bytes .../javax/swing/plaf/basic/BasicTextAreaUI.class | Bin 0 -> 1835 bytes .../javax/swing/plaf/basic/BasicTextFieldUI.class | Bin 0 -> 2284 bytes .../javax/swing/plaf/basic/BasicTextPaneUI.class | Bin 0 -> 1583 bytes .../swing/plaf/basic/BasicTextUI$BasicCaret.class | Bin 0 -> 462 bytes .../plaf/basic/BasicTextUI$BasicHighlighter.class | Bin 0 -> 486 bytes .../plaf/basic/BasicTextUI$FocusHandler.class | Bin 0 -> 2071 bytes .../swing/plaf/basic/BasicTextUI$Handler.class | Bin 0 -> 2400 bytes .../swing/plaf/basic/BasicTextUI$RootView.class | Bin 0 -> 4656 bytes .../lib/javax/swing/plaf/basic/BasicTextUI.class | Bin 0 -> 17718 bytes .../swing/plaf/basic/BasicToggleButtonUI.class | Bin 0 -> 3114 bytes .../swing/plaf/basic/BasicToolBarSeparatorUI.class | Bin 0 -> 1337 bytes .../basic/BasicToolBarUI$DockingListener.class | Bin 0 -> 2955 bytes .../plaf/basic/BasicToolBarUI$DragWindow.class | Bin 0 -> 2025 bytes .../plaf/basic/BasicToolBarUI$FrameListener.class | Bin 0 -> 1391 bytes .../basic/BasicToolBarUI$PropertyListener.class | Bin 0 -> 1112 bytes .../plaf/basic/BasicToolBarUI$ToolBarAction.class | Bin 0 -> 1577 bytes .../plaf/basic/BasicToolBarUI$ToolBarBorder.class | Bin 0 -> 2132 bytes .../basic/BasicToolBarUI$ToolBarContListener.class | Bin 0 -> 2107 bytes .../plaf/basic/BasicToolBarUI$ToolBarDialog.class | Bin 0 -> 786 bytes .../BasicToolBarUI$ToolBarFocusListener.class | Bin 0 -> 1147 bytes .../javax/swing/plaf/basic/BasicToolBarUI.class | Bin 0 -> 16635 bytes .../BasicToolTipUI$PropertyChangeHandler.class | Bin 0 -> 1514 bytes .../javax/swing/plaf/basic/BasicToolTipUI.class | Bin 0 -> 5073 bytes .../lib/javax/swing/plaf/basic/BasicTreeUI$1.class | Bin 0 -> 1001 bytes .../plaf/basic/BasicTreeUI$CellEditorHandler.class | Bin 0 -> 901 bytes .../plaf/basic/BasicTreeUI$ComponentHandler.class | Bin 0 -> 2143 bytes .../plaf/basic/BasicTreeUI$FocusHandler.class | Bin 0 -> 1242 bytes .../swing/plaf/basic/BasicTreeUI$KeyHandler.class | Bin 0 -> 2114 bytes .../plaf/basic/BasicTreeUI$MouseHandler.class | Bin 0 -> 2514 bytes .../plaf/basic/BasicTreeUI$MouseInputHandler.class | Bin 0 -> 2338 bytes .../basic/BasicTreeUI$NodeDimensionsHandler.class | Bin 0 -> 2351 bytes .../basic/BasicTreeUI$PropertyChangeHandler.class | Bin 0 -> 2241 bytes ...reeUI$SelectionModelPropertyChangeHandler.class | Bin 0 -> 966 bytes .../BasicTreeUI$TreeCancelEditingAction.class | Bin 0 -> 987 bytes .../basic/BasicTreeUI$TreeExpansionHandler.class | Bin 0 -> 1477 bytes .../plaf/basic/BasicTreeUI$TreeHomeAction.class | Bin 0 -> 2637 bytes .../basic/BasicTreeUI$TreeIncrementAction.class | Bin 0 -> 3035 bytes .../plaf/basic/BasicTreeUI$TreeModelHandler.class | Bin 0 -> 1898 bytes .../plaf/basic/BasicTreeUI$TreePageAction.class | Bin 0 -> 3700 bytes .../basic/BasicTreeUI$TreeSelectionHandler.class | Bin 0 -> 1558 bytes .../basic/BasicTreeUI$TreeStartEditingAction.class | Bin 0 -> 1115 bytes .../plaf/basic/BasicTreeUI$TreeToggleAction.class | Bin 0 -> 1673 bytes .../basic/BasicTreeUI$TreeTraverseAction.class | Bin 0 -> 2504 bytes .../lib/javax/swing/plaf/basic/BasicTreeUI.class | Bin 0 -> 37315 bytes .../javax/swing/plaf/basic/BasicViewportUI.class | Bin 0 -> 1238 bytes .../lib/javax/swing/plaf/basic/ComboPopup.class | Bin 0 -> 447 bytes .../javax/swing/plaf/basic/DefaultMenuLayout.class | Bin 0 -> 601 bytes .../javax/swing/plaf/basic/SharedUIDefaults.class | Bin 0 -> 987 bytes .../javax/swing/plaf/metal/DefaultMetalTheme.class | Bin 0 -> 3433 bytes .../plaf/metal/MetalBorders$ButtonBorder.class | Bin 0 -> 3859 bytes .../metal/MetalBorders$DesktopIconBorder.class | Bin 0 -> 1464 bytes .../plaf/metal/MetalBorders$Flush3DBorder.class | Bin 0 -> 1822 bytes .../metal/MetalBorders$InternalFrameBorder.class | Bin 0 -> 2289 bytes .../plaf/metal/MetalBorders$MenuBarBorder.class | Bin 0 -> 1790 bytes .../plaf/metal/MetalBorders$MenuItemBorder.class | Bin 0 -> 2085 bytes .../metal/MetalBorders$OptionDialogBorder.class | Bin 0 -> 2348 bytes .../plaf/metal/MetalBorders$PaletteBorder.class | Bin 0 -> 1779 bytes .../plaf/metal/MetalBorders$PopupMenuBorder.class | Bin 0 -> 1821 bytes .../metal/MetalBorders$RolloverButtonBorder.class | Bin 0 -> 760 bytes .../metal/MetalBorders$RolloverMarginBorder.class | Bin 0 -> 1247 bytes .../plaf/metal/MetalBorders$ScrollPaneBorder.class | Bin 0 -> 1716 bytes .../metal/MetalBorders$TableHeaderBorder.class | Bin 0 -> 1452 bytes .../plaf/metal/MetalBorders$TextFieldBorder.class | Bin 0 -> 1378 bytes .../metal/MetalBorders$ToggleButtonBorder.class | Bin 0 -> 2043 bytes .../plaf/metal/MetalBorders$ToolBarBorder.class | Bin 0 -> 1869 bytes .../lib/javax/swing/plaf/metal/MetalBorders.class | Bin 0 -> 3427 bytes .../swing/plaf/metal/MetalButtonListener.class | Bin 0 -> 617 bytes .../lib/javax/swing/plaf/metal/MetalButtonUI.class | Bin 0 -> 4967 bytes .../javax/swing/plaf/metal/MetalCheckBoxIcon.class | Bin 0 -> 2082 bytes .../javax/swing/plaf/metal/MetalCheckBoxUI.class | Bin 0 -> 689 bytes .../swing/plaf/metal/MetalComboBoxButton.class | Bin 0 -> 4952 bytes .../MetalComboBoxEditor$EditorTextField.class | Bin 0 -> 1031 bytes ...lComboBoxEditor$MetalComboBoxEditorBorder.class | Bin 0 -> 1715 bytes .../metal/MetalComboBoxEditor$UIResource.class | Bin 0 -> 459 bytes .../swing/plaf/metal/MetalComboBoxEditor.class | Bin 0 -> 1094 bytes .../javax/swing/plaf/metal/MetalComboBoxIcon.class | Bin 0 -> 1244 bytes ...etalComboBoxUI$MetalComboBoxLayoutManager.class | Bin 0 -> 1060 bytes .../metal/MetalComboBoxUI$MetalComboPopup.class | Bin 0 -> 866 bytes ...talComboBoxUI$MetalPropertyChangeListener.class | Bin 0 -> 2089 bytes .../javax/swing/plaf/metal/MetalComboBoxUI.class | Bin 0 -> 5757 bytes .../swing/plaf/metal/MetalDesktopIconUI.class | Bin 0 -> 532 bytes .../metal/MetalFileChooserUI$ButtonLayout.class | Bin 0 -> 2657 bytes ...talFileChooserUI$DetailViewActionListener.class | Bin 0 -> 1928 bytes ...etalFileChooserUI$DirectoryComboBoxAction.class | Bin 0 -> 1224 bytes ...MetalFileChooserUI$DirectoryComboBoxModel.class | Bin 0 -> 2120 bytes ...alFileChooserUI$DirectoryComboBoxRenderer.class | Bin 0 -> 1992 bytes .../metal/MetalFileChooserUI$FileRenderer.class | Bin 0 -> 2259 bytes .../MetalFileChooserUI$FilterComboBoxModel.class | Bin 0 -> 2310 bytes ...MetalFileChooserUI$FilterComboBoxRenderer.class | Bin 0 -> 1179 bytes .../plaf/metal/MetalFileChooserUI$IndentIcon.class | Bin 0 -> 1373 bytes ...MetalFileChooserUI$ListViewActionListener.class | Bin 0 -> 1834 bytes ...UI$MetalFileChooserPropertyChangeListener.class | Bin 0 -> 7109 bytes ...ooserUI$MetalFileChooserSelectionListener.class | Bin 0 -> 1334 bytes ...SingleClickListener$EditingActionListener.class | Bin 0 -> 1068 bytes .../MetalFileChooserUI$SingleClickListener.class | Bin 0 -> 4212 bytes ...$TableClickListener$EditingActionListener.class | Bin 0 -> 1062 bytes .../MetalFileChooserUI$TableClickListener.class | Bin 0 -> 5158 bytes .../MetalFileChooserUI$TableFileRenderer.class | Bin 0 -> 2595 bytes .../MetalFileChooserUI$VerticalMidLayout.class | Bin 0 -> 2163 bytes .../swing/plaf/metal/MetalFileChooserUI.class | Bin 0 -> 19113 bytes .../swing/plaf/metal/MetalIconFactory$1.class | Bin 0 -> 1188 bytes .../swing/plaf/metal/MetalIconFactory$2.class | Bin 0 -> 1192 bytes .../swing/plaf/metal/MetalIconFactory$3.class | Bin 0 -> 1221 bytes .../MetalIconFactory$CheckBoxMenuItemIcon.class | Bin 0 -> 1689 bytes ...etalIconFactory$FileChooserDetailViewIcon.class | Bin 0 -> 1696 bytes ...etalIconFactory$FileChooserHomeFolderIcon.class | Bin 0 -> 1818 bytes .../MetalIconFactory$FileChooserListViewIcon.class | Bin 0 -> 2031 bytes ...MetalIconFactory$FileChooserNewFolderIcon.class | Bin 0 -> 1729 bytes .../MetalIconFactory$FileChooserUpFolderIcon.class | Bin 0 -> 1204 bytes .../plaf/metal/MetalIconFactory$FileIcon16.class | Bin 0 -> 1577 bytes .../plaf/metal/MetalIconFactory$FolderIcon16.class | Bin 0 -> 1654 bytes ...etalIconFactory$HorizontalSliderThumbIcon.class | Bin 0 -> 2736 bytes ...lIconFactory$InternalFrameAltMaximizeIcon.class | Bin 0 -> 2494 bytes .../MetalIconFactory$InternalFrameCloseIcon.class | Bin 0 -> 2551 bytes ...lIconFactory$InternalFrameDefaultMenuIcon.class | Bin 0 -> 1605 bytes ...etalIconFactory$InternalFrameMaximizeIcon.class | Bin 0 -> 2544 bytes ...etalIconFactory$InternalFrameMinimizeIcon.class | Bin 0 -> 2347 bytes .../metal/MetalIconFactory$PaletteCloseIcon.class | Bin 0 -> 1817 bytes .../metal/MetalIconFactory$RadioButtonIcon.class | Bin 0 -> 3091 bytes .../MetalIconFactory$RadioButtonMenuItemIcon.class | Bin 0 -> 1899 bytes .../metal/MetalIconFactory$TreeComputerIcon.class | Bin 0 -> 1656 bytes .../metal/MetalIconFactory$TreeControlIcon.class | Bin 0 -> 1564 bytes .../MetalIconFactory$TreeFloppyDriveIcon.class | Bin 0 -> 1712 bytes .../metal/MetalIconFactory$TreeFolderIcon.class | Bin 0 -> 637 bytes .../metal/MetalIconFactory$TreeHardDriveIcon.class | Bin 0 -> 2463 bytes .../plaf/metal/MetalIconFactory$TreeLeafIcon.class | Bin 0 -> 629 bytes .../MetalIconFactory$VerticalSliderThumbIcon.class | Bin 0 -> 2728 bytes .../javax/swing/plaf/metal/MetalIconFactory.class | Bin 0 -> 6422 bytes ...ternalFrameTitlePanePropertyChangeHandler.class | Bin 0 -> 1838 bytes ...ternalFrameTitlePane$MetalTitlePaneLayout.class | Bin 0 -> 2938 bytes .../plaf/metal/MetalInternalFrameTitlePane.class | Bin 0 -> 6716 bytes .../swing/plaf/metal/MetalInternalFrameUI$1.class | Bin 0 -> 1205 bytes .../swing/plaf/metal/MetalInternalFrameUI.class | Bin 0 -> 2982 bytes .../lib/javax/swing/plaf/metal/MetalLabelUI.class | Bin 0 -> 1469 bytes .../swing/plaf/metal/MetalLookAndFeel$1.class | Bin 0 -> 916 bytes .../javax/swing/plaf/metal/MetalLookAndFeel.class | Bin 0 -> 30873 bytes .../javax/swing/plaf/metal/MetalMenuBarUI.class | Bin 0 -> 1225 bytes .../plaf/metal/MetalPopupMenuSeparatorUI.class | Bin 0 -> 600 bytes .../swing/plaf/metal/MetalProgressBarUI.class | Bin 0 -> 2578 bytes .../swing/plaf/metal/MetalRadioButtonUI.class | Bin 0 -> 2409 bytes .../metal/MetalRootPaneUI$MetalFrameBorder.class | Bin 0 -> 2445 bytes .../metal/MetalRootPaneUI$MetalRootLayout.class | Bin 0 -> 4344 bytes ...etalRootPaneUI$MetalTitlePane$CloseAction.class | Bin 0 -> 1617 bytes ...alRootPaneUI$MetalTitlePane$IconifyAction.class | Bin 0 -> 1422 bytes ...lRootPaneUI$MetalTitlePane$MaximizeAction.class | Bin 0 -> 1427 bytes ...aneUI$MetalTitlePane$MetalTitlePaneLayout.class | Bin 0 -> 2810 bytes ...talRootPaneUI$MetalTitlePane$MouseHandler.class | Bin 0 -> 1773 bytes ...MetalRootPaneUI$MetalTitlePane$PaneButton.class | Bin 0 -> 959 bytes .../metal/MetalRootPaneUI$MetalTitlePane.class | Bin 0 -> 8217 bytes .../javax/swing/plaf/metal/MetalRootPaneUI.class | Bin 0 -> 3207 bytes ...BarUI$MetalScrollBarPropertyChangeHandler.class | Bin 0 -> 1557 bytes .../javax/swing/plaf/metal/MetalScrollBarUI.class | Bin 0 -> 7735 bytes .../javax/swing/plaf/metal/MetalScrollButton.class | Bin 0 -> 5504 bytes .../javax/swing/plaf/metal/MetalScrollPaneUI.class | Bin 0 -> 1734 bytes .../javax/swing/plaf/metal/MetalSeparatorUI.class | Bin 0 -> 1827 bytes .../MetalSliderUI$MetalPropertyListener.class | Bin 0 -> 1242 bytes .../lib/javax/swing/plaf/metal/MetalSliderUI.class | Bin 0 -> 7057 bytes ...MetalSplitPaneDivider$MetalOneTouchButton.class | Bin 0 -> 2338 bytes .../swing/plaf/metal/MetalSplitPaneDivider.class | Bin 0 -> 3190 bytes .../javax/swing/plaf/metal/MetalSplitPaneUI.class | Bin 0 -> 1016 bytes .../metal/MetalTabbedPaneUI$TabbedPaneLayout.class | Bin 0 -> 1097 bytes .../javax/swing/plaf/metal/MetalTabbedPaneUI.class | Bin 0 -> 12940 bytes .../javax/swing/plaf/metal/MetalTextFieldUI.class | Bin 0 -> 706 bytes .../lib/javax/swing/plaf/metal/MetalTheme.class | Bin 0 -> 4295 bytes .../swing/plaf/metal/MetalToggleButtonUI.class | Bin 0 -> 4445 bytes .../MetalToolBarUI$MetalContainerListener.class | Bin 0 -> 662 bytes .../MetalToolBarUI$MetalDockingListener.class | Bin 0 -> 1188 bytes .../MetalToolBarUI$MetalRolloverListener.class | Bin 0 -> 656 bytes .../javax/swing/plaf/metal/MetalToolBarUI.class | Bin 0 -> 3159 bytes .../javax/swing/plaf/metal/MetalToolTipUI.class | Bin 0 -> 4741 bytes .../plaf/metal/MetalTreeUI$LineStyleListener.class | Bin 0 -> 1207 bytes .../lib/javax/swing/plaf/metal/MetalTreeUI.class | Bin 0 -> 4661 bytes .../lib/javax/swing/plaf/metal/MetalUtils.class | Bin 0 -> 7703 bytes .../lib/javax/swing/plaf/metal/OceanTheme.class | Bin 0 -> 5545 bytes .../lib/javax/swing/plaf/multi/MultiButtonUI.class | Bin 0 -> 3741 bytes .../swing/plaf/multi/MultiColorChooserUI.class | Bin 0 -> 3765 bytes .../javax/swing/plaf/multi/MultiComboBoxUI.class | Bin 0 -> 4539 bytes .../swing/plaf/multi/MultiDesktopIconUI.class | Bin 0 -> 3761 bytes .../swing/plaf/multi/MultiDesktopPaneUI.class | Bin 0 -> 3761 bytes .../swing/plaf/multi/MultiFileChooserUI.class | Bin 0 -> 5542 bytes .../swing/plaf/multi/MultiInternalFrameUI.class | Bin 0 -> 3769 bytes .../lib/javax/swing/plaf/multi/MultiLabelUI.class | Bin 0 -> 3737 bytes .../lib/javax/swing/plaf/multi/MultiListUI.class | Bin 0 -> 4778 bytes .../javax/swing/plaf/multi/MultiLookAndFeel.class | Bin 0 -> 4980 bytes .../javax/swing/plaf/multi/MultiMenuBarUI.class | Bin 0 -> 3745 bytes .../javax/swing/plaf/multi/MultiMenuItemUI.class | Bin 0 -> 3749 bytes .../javax/swing/plaf/multi/MultiOptionPaneUI.class | Bin 0 -> 4309 bytes .../lib/javax/swing/plaf/multi/MultiPanelUI.class | Bin 0 -> 3737 bytes .../javax/swing/plaf/multi/MultiPopupMenuUI.class | Bin 0 -> 3753 bytes .../swing/plaf/multi/MultiProgressBarUI.class | Bin 0 -> 3761 bytes .../javax/swing/plaf/multi/MultiRootPaneUI.class | Bin 0 -> 3749 bytes .../javax/swing/plaf/multi/MultiScrollBarUI.class | Bin 0 -> 3753 bytes .../javax/swing/plaf/multi/MultiScrollPaneUI.class | Bin 0 -> 3757 bytes .../javax/swing/plaf/multi/MultiSeparatorUI.class | Bin 0 -> 3753 bytes .../lib/javax/swing/plaf/multi/MultiSliderUI.class | Bin 0 -> 3741 bytes .../javax/swing/plaf/multi/MultiSpinnerUI.class | Bin 0 -> 3745 bytes .../javax/swing/plaf/multi/MultiSplitPaneUI.class | Bin 0 -> 5265 bytes .../javax/swing/plaf/multi/MultiTabbedPaneUI.class | Bin 0 -> 4734 bytes .../swing/plaf/multi/MultiTableHeaderUI.class | Bin 0 -> 3761 bytes .../lib/javax/swing/plaf/multi/MultiTableUI.class | Bin 0 -> 3737 bytes .../lib/javax/swing/plaf/multi/MultiTextUI.class | Bin 0 -> 7018 bytes .../javax/swing/plaf/multi/MultiToolBarUI.class | Bin 0 -> 3745 bytes .../javax/swing/plaf/multi/MultiToolTipUI.class | Bin 0 -> 3745 bytes .../lib/javax/swing/plaf/multi/MultiTreeUI.class | Bin 0 -> 6600 bytes .../javax/swing/plaf/multi/MultiViewportUI.class | Bin 0 -> 3749 bytes .../lib/javax/swing/plaf/synth/ColorType.class | Bin 0 -> 1096 bytes .../lib/javax/swing/plaf/synth/Region.class | Bin 0 -> 5717 bytes .../javax/swing/plaf/synth/SynthConstants.class | Bin 0 -> 374 bytes .../lib/javax/swing/plaf/synth/SynthContext.class | Bin 0 -> 1110 bytes .../swing/plaf/synth/SynthGraphicsUtils.class | Bin 0 -> 4042 bytes .../javax/swing/plaf/synth/SynthLookAndFeel.class | Bin 0 -> 2732 bytes .../lib/javax/swing/plaf/synth/SynthPainter.class | Bin 0 -> 16885 bytes .../lib/javax/swing/plaf/synth/SynthStyle.class | Bin 0 -> 3043 bytes .../javax/swing/plaf/synth/SynthStyleFactory.class | Bin 0 -> 440 bytes .../lib/javax/swing/table/AbstractTableModel.class | Bin 0 -> 4043 bytes .../DefaultTableCellRenderer$UIResource.class | Bin 0 -> 464 bytes .../swing/table/DefaultTableCellRenderer.class | Bin 0 -> 3503 bytes .../swing/table/DefaultTableColumnModel.class | Bin 0 -> 8494 bytes .../lib/javax/swing/table/DefaultTableModel.class | Bin 0 -> 7491 bytes ...eJTableHeader$AccessibleJTableHeaderEntry.class | Bin 0 -> 9605 bytes .../JTableHeader$AccessibleJTableHeader.class | Bin 0 -> 1638 bytes .../lib/javax/swing/table/JTableHeader.class | Bin 0 -> 6581 bytes .../lib/javax/swing/table/TableCellEditor.class | Bin 0 -> 263 bytes .../lib/javax/swing/table/TableCellRenderer.class | Bin 0 -> 240 bytes .../lib/javax/swing/table/TableColumn.class | Bin 0 -> 6349 bytes .../lib/javax/swing/table/TableColumnModel.class | Bin 0 -> 1035 bytes .../lib/javax/swing/table/TableModel.class | Bin 0 -> 551 bytes .../text/AbstractDocument$AbstractElement.class | Bin 0 -> 7275 bytes .../text/AbstractDocument$AttributeContext.class | Bin 0 -> 946 bytes .../swing/text/AbstractDocument$BidiElement.class | Bin 0 -> 1170 bytes .../text/AbstractDocument$BidiRootElement.class | Bin 0 -> 775 bytes .../text/AbstractDocument$BranchElement.class | Bin 0 -> 3805 bytes .../javax/swing/text/AbstractDocument$Bypass.class | Bin 0 -> 1368 bytes .../swing/text/AbstractDocument$Content.class | Bin 0 -> 636 bytes .../AbstractDocument$DefaultDocumentEvent.class | Bin 0 -> 2879 bytes .../swing/text/AbstractDocument$ElementEdit.class | Bin 0 -> 1266 bytes .../swing/text/AbstractDocument$LeafElement.class | Bin 0 -> 2890 bytes .../lib/javax/swing/text/AbstractDocument.class | Bin 0 -> 19878 bytes .../lib/javax/swing/text/AbstractWriter.class | Bin 0 -> 6829 bytes .../swing/text/AsyncBoxView$ChildLocator.class | Bin 0 -> 4547 bytes .../javax/swing/text/AsyncBoxView$ChildState.class | Bin 0 -> 3896 bytes .../javax/swing/text/AsyncBoxView$FlushTask.class | Bin 0 -> 1889 bytes .../lib/javax/swing/text/AsyncBoxView.class | Bin 0 -> 10236 bytes .../text/AttributeSet$CharacterAttribute.class | Bin 0 -> 228 bytes .../swing/text/AttributeSet$ColorAttribute.class | Bin 0 -> 220 bytes .../swing/text/AttributeSet$FontAttribute.class | Bin 0 -> 218 bytes .../text/AttributeSet$ParagraphAttribute.class | Bin 0 -> 228 bytes .../lib/javax/swing/text/AttributeSet.class | Bin 0 -> 1219 bytes .../javax/swing/text/BadLocationException.class | Bin 0 -> 606 bytes .../classpath/lib/javax/swing/text/BoxView.class | Bin 0 -> 13114 bytes libjava/classpath/lib/javax/swing/text/Caret.class | Bin 0 -> 674 bytes .../javax/swing/text/ChangedCharSetException.class | Bin 0 -> 796 bytes .../lib/javax/swing/text/ComponentView$1.class | Bin 0 -> 1200 bytes .../swing/text/ComponentView$Interceptor.class | Bin 0 -> 2577 bytes .../lib/javax/swing/text/ComponentView.class | Bin 0 -> 4965 bytes .../lib/javax/swing/text/CompositeView.class | Bin 0 -> 8179 bytes .../lib/javax/swing/text/DateFormatter.class | Bin 0 -> 761 bytes .../text/DefaultCaret$BlinkTimerListener.class | Bin 0 -> 1007 bytes .../lib/javax/swing/text/DefaultCaret$Bypass.class | Bin 0 -> 960 bytes .../swing/text/DefaultCaret$DocumentHandler.class | Bin 0 -> 1602 bytes .../text/DefaultCaret$PropertyChangeHandler.class | Bin 0 -> 1916 bytes .../lib/javax/swing/text/DefaultCaret.class | Bin 0 -> 14143 bytes .../text/DefaultEditorKit$BackwardAction.class | Bin 0 -> 750 bytes .../swing/text/DefaultEditorKit$BeepAction.class | Bin 0 -> 716 bytes .../swing/text/DefaultEditorKit$BeginAction.class | Bin 0 -> 1248 bytes .../text/DefaultEditorKit$BeginLineAction.class | Bin 0 -> 1442 bytes .../text/DefaultEditorKit$BeginWordAction.class | Bin 0 -> 1434 bytes .../swing/text/DefaultEditorKit$CopyAction.class | Bin 0 -> 864 bytes .../swing/text/DefaultEditorKit$CutAction.class | Bin 0 -> 859 bytes .../DefaultEditorKit$DefaultKeyTypedAction.class | Bin 0 -> 1326 bytes .../DefaultEditorKit$DeleteNextCharAction.class | Bin 0 -> 1595 bytes .../DefaultEditorKit$DeletePrevCharAction.class | Bin 0 -> 1575 bytes .../swing/text/DefaultEditorKit$DownAction.class | Bin 0 -> 731 bytes .../swing/text/DefaultEditorKit$EndAction.class | Bin 0 -> 1393 bytes .../text/DefaultEditorKit$EndLineAction.class | Bin 0 -> 1432 bytes .../text/DefaultEditorKit$EndWordAction.class | Bin 0 -> 1424 bytes .../text/DefaultEditorKit$ForwardAction.class | Bin 0 -> 745 bytes .../text/DefaultEditorKit$InsertBreakAction.class | Bin 0 -> 896 bytes .../DefaultEditorKit$InsertContentAction.class | Bin 0 -> 658 bytes .../text/DefaultEditorKit$InsertTabAction.class | Bin 0 -> 888 bytes .../text/DefaultEditorKit$NextWordAction.class | Bin 0 -> 1429 bytes .../swing/text/DefaultEditorKit$PasteAction.class | Bin 0 -> 871 bytes .../text/DefaultEditorKit$PreviousWordAction.class | Bin 0 -> 1449 bytes .../text/DefaultEditorKit$SelectAllAction.class | Bin 0 -> 1444 bytes .../text/DefaultEditorKit$SelectLineAction.class | Bin 0 -> 1512 bytes .../text/DefaultEditorKit$SelectWordAction.class | Bin 0 -> 1776 bytes .../DefaultEditorKit$SelectionBackwardAction.class | Bin 0 -> 782 bytes .../DefaultEditorKit$SelectionBeginAction.class | Bin 0 -> 1280 bytes ...DefaultEditorKit$SelectionBeginLineAction.class | Bin 0 -> 1418 bytes ...DefaultEditorKit$SelectionBeginWordAction.class | Bin 0 -> 1466 bytes .../DefaultEditorKit$SelectionDownAction.class | Bin 0 -> 763 bytes .../text/DefaultEditorKit$SelectionEndAction.class | Bin 0 -> 1425 bytes .../DefaultEditorKit$SelectionEndLineAction.class | Bin 0 -> 1408 bytes .../DefaultEditorKit$SelectionEndWordAction.class | Bin 0 -> 1456 bytes .../DefaultEditorKit$SelectionForwardAction.class | Bin 0 -> 777 bytes .../DefaultEditorKit$SelectionNextWordAction.class | Bin 0 -> 1461 bytes ...aultEditorKit$SelectionPreviousWordAction.class | Bin 0 -> 1481 bytes .../text/DefaultEditorKit$SelectionUpAction.class | Bin 0 -> 755 bytes .../swing/text/DefaultEditorKit$UpAction.class | Bin 0 -> 723 bytes .../lib/javax/swing/text/DefaultEditorKit.class | Bin 0 -> 9767 bytes .../DefaultFormatter$FormatterDocumentFilter.class | Bin 0 -> 2934 bytes .../lib/javax/swing/text/DefaultFormatter.class | Bin 0 -> 3572 bytes .../javax/swing/text/DefaultFormatterFactory.class | Bin 0 -> 2826 bytes ...efaultHighlighter$DefaultHighlightPainter.class | Bin 0 -> 3060 bytes .../text/DefaultHighlighter$HighlightEntry.class | Bin 0 -> 1259 bytes .../DefaultHighlighter$LayerHighlightEntry.class | Bin 0 -> 2281 bytes .../lib/javax/swing/text/DefaultHighlighter.class | Bin 0 -> 6755 bytes ...faultStyledDocument$AttributeUndoableEdit.class | Bin 0 -> 1512 bytes .../DefaultStyledDocument$ElementBuffer$Edit.class | Bin 0 -> 1219 bytes .../text/DefaultStyledDocument$ElementBuffer.class | Bin 0 -> 18010 bytes .../text/DefaultStyledDocument$ElementSpec.class | Bin 0 -> 2801 bytes .../DefaultStyledDocument$SectionElement.class | Bin 0 -> 800 bytes ...DefaultStyledDocument$StyleChangeListener.class | Bin 0 -> 1181 bytes .../javax/swing/text/DefaultStyledDocument.class | Bin 0 -> 15413 bytes .../lib/javax/swing/text/DefaultTextUI.class | Bin 0 -> 345 bytes .../classpath/lib/javax/swing/text/Document.class | Bin 0 -> 1226 bytes .../swing/text/DocumentFilter$FilterBypass.class | Bin 0 -> 733 bytes .../lib/javax/swing/text/DocumentFilter.class | Bin 0 -> 1408 bytes .../classpath/lib/javax/swing/text/EditorKit.class | Bin 0 -> 1450 bytes .../classpath/lib/javax/swing/text/Element.class | Bin 0 -> 514 bytes .../swing/text/ElementIterator$ElementRef.class | Bin 0 -> 667 bytes .../lib/javax/swing/text/ElementIterator.class | Bin 0 -> 3003 bytes .../lib/javax/swing/text/EmptyAttributeSet$1.class | Bin 0 -> 891 bytes .../lib/javax/swing/text/EmptyAttributeSet.class | Bin 0 -> 1728 bytes .../lib/javax/swing/text/FieldView$1.class | Bin 0 -> 813 bytes .../classpath/lib/javax/swing/text/FieldView.class | Bin 0 -> 6268 bytes .../javax/swing/text/FlowView$FlowStrategy.class | Bin 0 -> 5963 bytes .../javax/swing/text/FlowView$LogicalView.class | Bin 0 -> 3269 bytes .../classpath/lib/javax/swing/text/FlowView.class | Bin 0 -> 4208 bytes .../swing/text/GapContent$GapContentPosition.class | Bin 0 -> 736 bytes .../javax/swing/text/GapContent$InsertUndo.class | Bin 0 -> 1557 bytes .../lib/javax/swing/text/GapContent$Mark.class | Bin 0 -> 1400 bytes .../javax/swing/text/GapContent$UndoPosRef.class | Bin 0 -> 908 bytes .../javax/swing/text/GapContent$UndoRemove.class | Bin 0 -> 1623 bytes .../lib/javax/swing/text/GapContent.class | Bin 0 -> 12279 bytes .../swing/text/GlyphView$DefaultGlyphPainter.class | Bin 0 -> 4860 bytes .../javax/swing/text/GlyphView$GlyphPainter.class | Bin 0 -> 1753 bytes .../swing/text/GlyphView$J2DGlyphPainter.class | Bin 0 -> 4332 bytes .../classpath/lib/javax/swing/text/GlyphView.class | Bin 0 -> 12332 bytes .../javax/swing/text/Highlighter$Highlight.class | Bin 0 -> 334 bytes .../swing/text/Highlighter$HighlightPainter.class | Bin 0 -> 313 bytes .../lib/javax/swing/text/Highlighter.class | Bin 0 -> 782 bytes .../classpath/lib/javax/swing/text/IconView.class | Bin 0 -> 2347 bytes .../javax/swing/text/InternationalFormatter.class | Bin 0 -> 3849 bytes .../JTextComponent$AccessibleJTextComponent.class | Bin 0 -> 10550 bytes .../swing/text/JTextComponent$DefaultKeymap.class | Bin 0 -> 3384 bytes .../JTextComponent$DefaultTransferHandler.class | Bin 0 -> 3041 bytes .../swing/text/JTextComponent$KeyBinding.class | Bin 0 -> 595 bytes .../text/JTextComponent$KeymapActionMap.class | Bin 0 -> 1605 bytes .../swing/text/JTextComponent$KeymapWrapper.class | Bin 0 -> 1999 bytes .../lib/javax/swing/text/JTextComponent.class | Bin 0 -> 18400 bytes .../classpath/lib/javax/swing/text/Keymap.class | Bin 0 -> 861 bytes .../classpath/lib/javax/swing/text/LabelView.class | Bin 0 -> 3664 bytes .../text/LayeredHighlighter$LayerPainter.class | Bin 0 -> 614 bytes .../lib/javax/swing/text/LayeredHighlighter.class | Bin 0 -> 581 bytes .../lib/javax/swing/text/LayoutQueue.class | Bin 0 -> 1339 bytes .../lib/javax/swing/text/MaskFormatter.class | Bin 0 -> 6608 bytes .../lib/javax/swing/text/MutableAttributeSet.class | Bin 0 -> 492 bytes .../swing/text/NavigationFilter$FilterBypass.class | Bin 0 -> 544 bytes .../lib/javax/swing/text/NavigationFilter.class | Bin 0 -> 1419 bytes .../lib/javax/swing/text/NumberFormatter.class | Bin 0 -> 730 bytes .../lib/javax/swing/text/ParagraphView$Row.class | Bin 0 -> 2673 bytes .../lib/javax/swing/text/ParagraphView.class | Bin 0 -> 6072 bytes .../lib/javax/swing/text/PasswordView.class | Bin 0 -> 4121 bytes .../lib/javax/swing/text/PlainDocument.class | Bin 0 -> 6235 bytes .../classpath/lib/javax/swing/text/PlainView.class | Bin 0 -> 11774 bytes .../lib/javax/swing/text/Position$Bias.class | Bin 0 -> 717 bytes .../classpath/lib/javax/swing/text/Position.class | Bin 0 -> 214 bytes .../classpath/lib/javax/swing/text/Segment.class | Bin 0 -> 2533 bytes .../lib/javax/swing/text/SimpleAttributeSet.class | Bin 0 -> 4801 bytes .../swing/text/StringContent$InsertUndo.class | Bin 0 -> 1566 bytes .../lib/javax/swing/text/StringContent$Mark.class | Bin 0 -> 568 bytes .../swing/text/StringContent$RemoveUndo.class | Bin 0 -> 1673 bytes .../swing/text/StringContent$StickyPosition.class | Bin 0 -> 1163 bytes .../swing/text/StringContent$UndoPosRef.class | Bin 0 -> 815 bytes .../lib/javax/swing/text/StringContent.class | Bin 0 -> 5574 bytes libjava/classpath/lib/javax/swing/text/Style.class | Bin 0 -> 292 bytes .../text/StyleConstants$CharacterConstants.class | Bin 0 -> 1428 bytes .../swing/text/StyleConstants$ColorConstants.class | Bin 0 -> 776 bytes .../swing/text/StyleConstants$FontConstants.class | Bin 0 -> 858 bytes .../text/StyleConstants$ParagraphConstants.class | Bin 0 -> 1091 bytes .../lib/javax/swing/text/StyleConstants.class | Bin 0 -> 8963 bytes .../lib/javax/swing/text/StyleContext$1.class | Bin 0 -> 995 bytes .../javax/swing/text/StyleContext$NamedStyle.class | Bin 0 -> 6753 bytes .../swing/text/StyleContext$SimpleFontSpec.class | Bin 0 -> 937 bytes .../text/StyleContext$SmallAttributeSet.class | Bin 0 -> 4021 bytes .../lib/javax/swing/text/StyleContext.class | Bin 0 -> 11737 bytes .../lib/javax/swing/text/StyledDocument.class | Bin 0 -> 841 bytes .../text/StyledEditorKit$AlignmentAction.class | Bin 0 -> 1181 bytes .../swing/text/StyledEditorKit$BoldAction.class | Bin 0 -> 1692 bytes .../swing/text/StyledEditorKit$CaretTracker.class | Bin 0 -> 1774 bytes .../text/StyledEditorKit$FontFamilyAction.class | Bin 0 -> 1220 bytes .../text/StyledEditorKit$FontSizeAction.class | Bin 0 -> 1180 bytes .../text/StyledEditorKit$ForegroundAction.class | Bin 0 -> 1231 bytes .../swing/text/StyledEditorKit$ItalicAction.class | Bin 0 -> 1704 bytes .../text/StyledEditorKit$StyledTextAction.class | Bin 0 -> 3268 bytes .../text/StyledEditorKit$StyledViewFactory.class | Bin 0 -> 1724 bytes .../text/StyledEditorKit$UnderlineAction.class | Bin 0 -> 1722 bytes .../lib/javax/swing/text/StyledEditorKit.class | Bin 0 -> 4297 bytes .../lib/javax/swing/text/TabExpander.class | Bin 0 -> 150 bytes .../classpath/lib/javax/swing/text/TabSet.class | Bin 0 -> 2402 bytes .../classpath/lib/javax/swing/text/TabStop.class | Bin 0 -> 2174 bytes .../lib/javax/swing/text/TabableView.class | Bin 0 -> 214 bytes .../lib/javax/swing/text/TableView$TableCell.class | Bin 0 -> 1132 bytes .../lib/javax/swing/text/TableView$TableRow.class | Bin 0 -> 2230 bytes .../classpath/lib/javax/swing/text/TableView.class | Bin 0 -> 3781 bytes .../text/TextAction$HorizontalMovementAction.class | Bin 0 -> 1800 bytes .../text/TextAction$VerticalMovementAction.class | Bin 0 -> 1953 bytes .../lib/javax/swing/text/TextAction.class | Bin 0 -> 2692 bytes .../classpath/lib/javax/swing/text/Utilities.class | Bin 0 -> 8224 bytes libjava/classpath/lib/javax/swing/text/View.class | Bin 0 -> 12065 bytes .../lib/javax/swing/text/ViewFactory.class | Bin 0 -> 191 bytes .../swing/text/WrappedPlainView$WrappedLine.class | Bin 0 -> 5765 bytes .../text/WrappedPlainView$WrappedLineCreator.class | Bin 0 -> 889 bytes .../lib/javax/swing/text/WrappedPlainView.class | Bin 0 -> 8465 bytes .../lib/javax/swing/text/ZoneView$Zone.class | Bin 0 -> 912 bytes .../classpath/lib/javax/swing/text/ZoneView.class | Bin 0 -> 5663 bytes .../lib/javax/swing/text/html/BRView.class | Bin 0 -> 553 bytes .../swing/text/html/BlockView$PositionInfo.class | Bin 0 -> 998 bytes .../lib/javax/swing/text/html/BlockView.class | Bin 0 -> 9557 bytes .../lib/javax/swing/text/html/CSS$Attribute.class | Bin 0 -> 6219 bytes .../classpath/lib/javax/swing/text/html/CSS.class | Bin 0 -> 6687 bytes .../lib/javax/swing/text/html/CSSBorder.class | Bin 0 -> 7458 bytes .../text/html/CSSParser$CSSParserCallback.class | Bin 0 -> 390 bytes .../lib/javax/swing/text/html/CSSParser.class | Bin 0 -> 4348 bytes .../text/html/FormSubmitEvent$MethodType.class | Bin 0 -> 567 bytes .../javax/swing/text/html/FormSubmitEvent.class | Bin 0 -> 1362 bytes .../lib/javax/swing/text/html/FormView$1.class | Bin 0 -> 1669 bytes .../text/html/FormView$MouseEventListener.class | Bin 0 -> 941 bytes .../swing/text/html/FormView$SubmitThread.class | Bin 0 -> 5391 bytes .../lib/javax/swing/text/html/FormView.class | Bin 0 -> 10767 bytes .../swing/text/html/FrameSetView$FrameSetRow.class | Bin 0 -> 1841 bytes .../lib/javax/swing/text/html/FrameSetView.class | Bin 0 -> 3609 bytes .../lib/javax/swing/text/html/FrameView.class | Bin 0 -> 4334 bytes .../swing/text/html/HRuleView$Beginning.class | Bin 0 -> 850 bytes .../lib/javax/swing/text/html/HRuleView.class | Bin 0 -> 2341 bytes .../lib/javax/swing/text/html/HTML$Attribute.class | Bin 0 -> 6257 bytes .../lib/javax/swing/text/html/HTML$Tag.class | Bin 0 -> 6702 bytes .../javax/swing/text/html/HTML$UnknownTag.class | Bin 0 -> 546 bytes .../classpath/lib/javax/swing/text/html/HTML.class | Bin 0 -> 2647 bytes .../lib/javax/swing/text/html/HTMLDocument$1.class | Bin 0 -> 1352 bytes .../text/html/HTMLDocument$BlockElement.class | Bin 0 -> 1326 bytes .../html/HTMLDocument$HTMLReader$AreaAction.class | Bin 0 -> 1106 bytes .../html/HTMLDocument$HTMLReader$BaseAction.class | Bin 0 -> 1330 bytes .../html/HTMLDocument$HTMLReader$BlockAction.class | Bin 0 -> 1103 bytes .../HTMLDocument$HTMLReader$CharacterAction.class | Bin 0 -> 1544 bytes .../HTMLDocument$HTMLReader$ConvertAction.class | Bin 0 -> 2417 bytes .../html/HTMLDocument$HTMLReader$FormAction.class | Bin 0 -> 5253 bytes .../HTMLDocument$HTMLReader$FormTagAction.class | Bin 0 -> 913 bytes .../html/HTMLDocument$HTMLReader$HeadAction.class | Bin 0 -> 1714 bytes .../HTMLDocument$HTMLReader$HiddenAction.class | Bin 0 -> 1106 bytes .../HTMLDocument$HTMLReader$IsindexAction.class | Bin 0 -> 1202 bytes .../html/HTMLDocument$HTMLReader$LinkAction.class | Bin 0 -> 2414 bytes .../html/HTMLDocument$HTMLReader$MapAction.class | Bin 0 -> 1103 bytes .../html/HTMLDocument$HTMLReader$MetaAction.class | Bin 0 -> 1106 bytes .../HTMLDocument$HTMLReader$ParagraphAction.class | Bin 0 -> 1086 bytes .../html/HTMLDocument$HTMLReader$PreAction.class | Bin 0 -> 1471 bytes .../HTMLDocument$HTMLReader$SpecialAction.class | Bin 0 -> 971 bytes .../html/HTMLDocument$HTMLReader$StyleAction.class | Bin 0 -> 1084 bytes .../html/HTMLDocument$HTMLReader$TagAction.class | Bin 0 -> 993 bytes .../html/HTMLDocument$HTMLReader$TitleAction.class | Bin 0 -> 1109 bytes .../swing/text/html/HTMLDocument$HTMLReader.class | Bin 0 -> 15313 bytes .../swing/text/html/HTMLDocument$Iterator.class | Bin 0 -> 612 bytes .../text/html/HTMLDocument$LeafIterator.class | Bin 0 -> 1732 bytes .../swing/text/html/HTMLDocument$RunElement.class | Bin 0 -> 1364 bytes .../lib/javax/swing/text/html/HTMLDocument.class | Bin 0 -> 14134 bytes .../text/html/HTMLEditorKit$HTMLFactory.class | Bin 0 -> 3016 bytes .../text/html/HTMLEditorKit$HTMLTextAction.class | Bin 0 -> 3248 bytes .../html/HTMLEditorKit$InsertHTMLTextAction.class | Bin 0 -> 5648 bytes .../text/html/HTMLEditorKit$LinkController.class | Bin 0 -> 5330 bytes .../swing/text/html/HTMLEditorKit$Parser.class | Bin 0 -> 542 bytes .../text/html/HTMLEditorKit$ParserCallback.class | Bin 0 -> 1710 bytes .../lib/javax/swing/text/html/HTMLEditorKit.class | Bin 0 -> 10214 bytes .../swing/text/html/HTMLFrameHyperlinkEvent.class | Bin 0 -> 1753 bytes .../lib/javax/swing/text/html/HTMLWriter.class | Bin 0 -> 13091 bytes .../lib/javax/swing/text/html/ImageView$1.class | Bin 0 -> 842 bytes .../javax/swing/text/html/ImageView$Observer.class | Bin 0 -> 1079 bytes .../lib/javax/swing/text/html/ImageView.class | Bin 0 -> 8743 bytes .../lib/javax/swing/text/html/InlineView.class | Bin 0 -> 4798 bytes .../lib/javax/swing/text/html/ListView.class | Bin 0 -> 1920 bytes .../javax/swing/text/html/MinimalHTMLWriter.class | Bin 0 -> 9010 bytes .../MultiAttributeSet$MultiNameEnumeration.class | Bin 0 -> 1245 bytes .../javax/swing/text/html/MultiAttributeSet.class | Bin 0 -> 2791 bytes .../lib/javax/swing/text/html/MultiStyle.class | Bin 0 -> 1900 bytes .../lib/javax/swing/text/html/NullView.class | Bin 0 -> 1284 bytes .../lib/javax/swing/text/html/ObjectView.class | Bin 0 -> 1388 bytes .../lib/javax/swing/text/html/Option.class | Bin 0 -> 1511 bytes .../lib/javax/swing/text/html/ParagraphView.class | Bin 0 -> 4882 bytes .../lib/javax/swing/text/html/ResetableModel.class | Bin 0 -> 153 bytes .../swing/text/html/ResetablePlainDocument.class | Bin 0 -> 1046 bytes .../text/html/ResetableToggleButtonModel.class | Bin 0 -> 655 bytes .../swing/text/html/SelectComboBoxModel.class | Bin 0 -> 837 bytes .../javax/swing/text/html/SelectListModel.class | Bin 0 -> 1125 bytes .../swing/text/html/StyleSheet$BoxPainter.class | Bin 0 -> 3498 bytes .../swing/text/html/StyleSheet$CSSStyle.class | Bin 0 -> 1625 bytes .../StyleSheet$CSSStyleSheetParserCallback.class | Bin 0 -> 2235 bytes .../swing/text/html/StyleSheet$ListPainter.class | Bin 0 -> 2672 bytes .../lib/javax/swing/text/html/StyleSheet.class | Bin 0 -> 17082 bytes .../javax/swing/text/html/TableView$CellView.class | Bin 0 -> 1794 bytes .../javax/swing/text/html/TableView$RowView.class | Bin 0 -> 3261 bytes .../lib/javax/swing/text/html/TableView.class | Bin 0 -> 12518 bytes .../javax/swing/text/html/ViewAttributeSet.class | Bin 0 -> 2824 bytes .../swing/text/html/parser/AttributeList$1.class | Bin 0 -> 944 bytes .../swing/text/html/parser/AttributeList.class | Bin 0 -> 2576 bytes .../swing/text/html/parser/ContentModel.class | Bin 0 -> 2305 bytes .../lib/javax/swing/text/html/parser/DTD.class | Bin 0 -> 9163 bytes .../swing/text/html/parser/DTDConstants.class | Bin 0 -> 1133 bytes .../html/parser/DocumentParser$gnuParser.class | Bin 0 -> 3356 bytes .../swing/text/html/parser/DocumentParser.class | Bin 0 -> 2434 bytes .../javax/swing/text/html/parser/Element$1.class | Bin 0 -> 653 bytes .../lib/javax/swing/text/html/parser/Element.class | Bin 0 -> 2752 bytes .../javax/swing/text/html/parser/Entity$1.class | Bin 0 -> 783 bytes .../lib/javax/swing/text/html/parser/Entity.class | Bin 0 -> 1637 bytes .../javax/swing/text/html/parser/Parser$1.class | Bin 0 -> 2671 bytes .../lib/javax/swing/text/html/parser/Parser.class | Bin 0 -> 4563 bytes .../html/parser/ParserDelegator$gnuParser.class | Bin 0 -> 3250 bytes .../swing/text/html/parser/ParserDelegator.class | Bin 0 -> 2400 bytes .../javax/swing/text/html/parser/TagElement.class | Bin 0 -> 1863 bytes .../javax/swing/text/rtf/ControlWordToken.class | Bin 0 -> 587 bytes .../lib/javax/swing/text/rtf/RTFEditorKit.class | Bin 0 -> 1122 bytes .../javax/swing/text/rtf/RTFParseException.class | Bin 0 -> 473 bytes .../lib/javax/swing/text/rtf/RTFParser.class | Bin 0 -> 2582 bytes .../lib/javax/swing/text/rtf/RTFScanner.class | Bin 0 -> 2952 bytes .../lib/javax/swing/text/rtf/TextToken.class | Bin 0 -> 399 bytes .../classpath/lib/javax/swing/text/rtf/Token.class | Bin 0 -> 508 bytes .../tree/AbstractLayoutCache$NodeDimensions.class | Bin 0 -> 534 bytes .../lib/javax/swing/tree/AbstractLayoutCache.class | Bin 0 -> 4406 bytes ...ltMutableTreeNode$BreadthFirstEnumeration.class | Bin 0 -> 1311 bytes ...faultMutableTreeNode$PostorderEnumeration.class | Bin 0 -> 1720 bytes ...efaultMutableTreeNode$PreorderEnumeration.class | Bin 0 -> 1623 bytes .../javax/swing/tree/DefaultMutableTreeNode.class | Bin 0 -> 10962 bytes .../DefaultTreeCellEditor$DefaultTextField.class | Bin 0 -> 1547 bytes .../DefaultTreeCellEditor$EditorContainer.class | Bin 0 -> 2279 bytes .../javax/swing/tree/DefaultTreeCellEditor.class | Bin 0 -> 9819 bytes .../javax/swing/tree/DefaultTreeCellRenderer.class | Bin 0 -> 7763 bytes .../lib/javax/swing/tree/DefaultTreeModel.class | Bin 0 -> 8345 bytes ...DefaultTreeSelectionModel$PathPlaceHolder.class | Bin 0 -> 632 bytes .../swing/tree/DefaultTreeSelectionModel.class | Bin 0 -> 14529 bytes .../lib/javax/swing/tree/ExpandVetoException.class | Bin 0 -> 675 bytes .../tree/FixedHeightLayoutCache$NodeRecord.class | Bin 0 -> 2355 bytes .../javax/swing/tree/FixedHeightLayoutCache.class | Bin 0 -> 7085 bytes .../lib/javax/swing/tree/MutableTreeNode.class | Bin 0 -> 392 bytes .../classpath/lib/javax/swing/tree/RowMapper.class | Bin 0 -> 177 bytes .../lib/javax/swing/tree/TreeCellEditor.class | Bin 0 -> 259 bytes .../lib/javax/swing/tree/TreeCellRenderer.class | Bin 0 -> 236 bytes .../classpath/lib/javax/swing/tree/TreeModel.class | Bin 0 -> 564 bytes .../classpath/lib/javax/swing/tree/TreeNode.class | Bin 0 -> 400 bytes .../classpath/lib/javax/swing/tree/TreePath.class | Bin 0 -> 3273 bytes .../lib/javax/swing/tree/TreeSelectionModel.class | Bin 0 -> 1436 bytes .../VariableHeightLayoutCache$NodeRecord.class | Bin 0 -> 2254 bytes .../swing/tree/VariableHeightLayoutCache.class | Bin 0 -> 8001 bytes .../javax/swing/undo/AbstractUndoableEdit.class | Bin 0 -> 2624 bytes .../lib/javax/swing/undo/CannotRedoException.class | Bin 0 -> 330 bytes .../lib/javax/swing/undo/CannotUndoException.class | Bin 0 -> 330 bytes .../lib/javax/swing/undo/CompoundEdit.class | Bin 0 -> 3252 bytes .../classpath/lib/javax/swing/undo/StateEdit.class | Bin 0 -> 2261 bytes .../lib/javax/swing/undo/StateEditable.class | Bin 0 -> 449 bytes .../lib/javax/swing/undo/UndoManager.class | Bin 0 -> 5167 bytes .../lib/javax/swing/undo/UndoableEdit.class | Bin 0 -> 553 bytes .../lib/javax/swing/undo/UndoableEditSupport.class | Bin 0 -> 3518 bytes .../transaction/HeuristicCommitException.class | Bin 0 -> 477 bytes .../transaction/HeuristicMixedException.class | Bin 0 -> 474 bytes .../transaction/HeuristicRollbackException.class | Bin 0 -> 483 bytes .../transaction/InvalidTransactionException.class | Bin 0 -> 491 bytes .../javax/transaction/NotSupportedException.class | Bin 0 -> 468 bytes .../lib/javax/transaction/RollbackException.class | Bin 0 -> 456 bytes .../classpath/lib/javax/transaction/Status.class | Bin 0 -> 541 bytes .../lib/javax/transaction/Synchronization.class | Bin 0 -> 195 bytes .../lib/javax/transaction/SystemException.class | Bin 0 -> 585 bytes .../lib/javax/transaction/Transaction.class | Bin 0 -> 771 bytes .../lib/javax/transaction/TransactionManager.class | Bin 0 -> 885 bytes .../transaction/TransactionRequiredException.class | Bin 0 -> 494 bytes .../TransactionRolledbackException.class | Bin 0 -> 500 bytes .../lib/javax/transaction/UserTransaction.class | Bin 0 -> 661 bytes .../lib/javax/transaction/xa/XAException.class | Bin 0 -> 1451 bytes .../lib/javax/transaction/xa/XAResource.class | Bin 0 -> 1062 bytes .../classpath/lib/javax/transaction/xa/Xid.class | Bin 0 -> 292 bytes libjava/classpath/lib/javax/xml/XMLConstants.class | Bin 0 -> 1138 bytes .../datatype/DatatypeConfigurationException.class | Bin 0 -> 788 bytes .../xml/datatype/DatatypeConstants$Field.class | Bin 0 -> 717 bytes .../lib/javax/xml/datatype/DatatypeConstants.class | Bin 0 -> 2609 bytes .../lib/javax/xml/datatype/DatatypeFactory.class | Bin 0 -> 5735 bytes .../lib/javax/xml/datatype/Duration.class | Bin 0 -> 3881 bytes .../javax/xml/datatype/XMLGregorianCalendar.class | Bin 0 -> 3296 bytes .../lib/javax/xml/namespace/NamespaceContext.class | Bin 0 -> 285 bytes .../classpath/lib/javax/xml/namespace/QName.class | Bin 0 -> 2665 bytes .../lib/javax/xml/parsers/DocumentBuilder.class | Bin 0 -> 2261 bytes .../javax/xml/parsers/DocumentBuilderFactory.class | Bin 0 -> 5298 bytes .../xml/parsers/FactoryConfigurationError.class | Bin 0 -> 1171 bytes .../xml/parsers/ParserConfigurationException.class | Bin 0 -> 489 bytes .../lib/javax/xml/parsers/SAXParser.class | Bin 0 -> 4329 bytes .../lib/javax/xml/parsers/SAXParserFactory.class | Bin 0 -> 4217 bytes .../lib/javax/xml/stream/EventFilter.class | Bin 0 -> 177 bytes .../xml/stream/FactoryConfigurationError.class | Bin 0 -> 1130 bytes .../classpath/lib/javax/xml/stream/Location.class | Bin 0 -> 266 bytes .../lib/javax/xml/stream/StreamFilter.class | Bin 0 -> 179 bytes .../lib/javax/xml/stream/XMLEventFactory.class | Bin 0 -> 5548 bytes .../lib/javax/xml/stream/XMLEventReader.class | Bin 0 -> 555 bytes .../lib/javax/xml/stream/XMLEventWriter.class | Bin 0 -> 769 bytes .../lib/javax/xml/stream/XMLInputFactory.class | Bin 0 -> 5885 bytes .../lib/javax/xml/stream/XMLOutputFactory.class | Bin 0 -> 4233 bytes .../lib/javax/xml/stream/XMLReporter.class | Bin 0 -> 288 bytes .../lib/javax/xml/stream/XMLResolver.class | Bin 0 -> 303 bytes .../lib/javax/xml/stream/XMLStreamConstants.class | Bin 0 -> 688 bytes .../lib/javax/xml/stream/XMLStreamException.class | Bin 0 -> 1355 bytes .../lib/javax/xml/stream/XMLStreamReader.class | Bin 0 -> 1768 bytes .../lib/javax/xml/stream/XMLStreamWriter.class | Bin 0 -> 1556 bytes .../lib/javax/xml/stream/events/Attribute.class | Bin 0 -> 304 bytes .../lib/javax/xml/stream/events/Characters.class | Bin 0 -> 285 bytes .../lib/javax/xml/stream/events/Comment.class | Bin 0 -> 200 bytes .../lib/javax/xml/stream/events/DTD.class | Bin 0 -> 326 bytes .../lib/javax/xml/stream/events/EndDocument.class | Bin 0 -> 167 bytes .../lib/javax/xml/stream/events/EndElement.class | Bin 0 -> 264 bytes .../xml/stream/events/EntityDeclaration.class | Bin 0 -> 340 bytes .../javax/xml/stream/events/EntityReference.class | Bin 0 -> 289 bytes .../lib/javax/xml/stream/events/Namespace.class | Bin 0 -> 278 bytes .../xml/stream/events/NotationDeclaration.class | Bin 0 -> 268 bytes .../xml/stream/events/ProcessingInstruction.class | Bin 0 -> 248 bytes .../javax/xml/stream/events/StartDocument.class | Bin 0 -> 349 bytes .../lib/javax/xml/stream/events/StartElement.class | Bin 0 -> 528 bytes .../lib/javax/xml/stream/events/XMLEvent.class | Bin 0 -> 850 bytes .../xml/stream/util/EventReaderDelegate.class | Bin 0 -> 2151 bytes .../lib/javax/xml/stream/util/ReaderDelegate.class | Bin 0 -> 6601 bytes .../javax/xml/stream/util/XMLEventAllocator.class | Bin 0 -> 459 bytes .../javax/xml/stream/util/XMLEventConsumer.class | Bin 0 -> 253 bytes .../lib/javax/xml/transform/ErrorListener.class | Bin 0 -> 319 bytes .../lib/javax/xml/transform/OutputKeys.class | Bin 0 -> 820 bytes .../classpath/lib/javax/xml/transform/Result.class | Bin 0 -> 427 bytes .../classpath/lib/javax/xml/transform/Source.class | Bin 0 -> 204 bytes .../lib/javax/xml/transform/SourceLocator.class | Bin 0 -> 250 bytes .../lib/javax/xml/transform/Templates.class | Bin 0 -> 321 bytes .../lib/javax/xml/transform/Transformer.class | Bin 0 -> 1269 bytes .../TransformerConfigurationException.class | Bin 0 -> 1316 bytes .../javax/xml/transform/TransformerException.class | Bin 0 -> 3839 bytes .../javax/xml/transform/TransformerFactory.class | Bin 0 -> 4088 bytes .../TransformerFactoryConfigurationError.class | Bin 0 -> 1174 bytes .../lib/javax/xml/transform/URIResolver.class | Bin 0 -> 279 bytes .../lib/javax/xml/transform/dom/DOMLocator.class | Bin 0 -> 218 bytes .../lib/javax/xml/transform/dom/DOMResult.class | Bin 0 -> 1693 bytes .../lib/javax/xml/transform/dom/DOMSource.class | Bin 0 -> 1180 bytes .../lib/javax/xml/transform/sax/SAXResult.class | Bin 0 -> 1391 bytes .../lib/javax/xml/transform/sax/SAXSource.class | Bin 0 -> 2439 bytes .../xml/transform/sax/SAXTransformerFactory.class | Bin 0 -> 1212 bytes .../javax/xml/transform/sax/TemplatesHandler.class | Bin 0 -> 321 bytes .../xml/transform/sax/TransformerHandler.class | Bin 0 -> 514 bytes .../javax/xml/transform/stream/StreamResult.class | Bin 0 -> 2049 bytes .../javax/xml/transform/stream/StreamSource.class | Bin 0 -> 2517 bytes .../lib/javax/xml/validation/Schema.class | Bin 0 -> 423 bytes .../lib/javax/xml/validation/SchemaFactory.class | Bin 0 -> 5071 bytes .../javax/xml/validation/SchemaFactoryLoader.class | Bin 0 -> 408 bytes .../javax/xml/validation/TypeInfoProvider.class | Bin 0 -> 487 bytes .../lib/javax/xml/validation/Validator.class | Bin 0 -> 1638 bytes .../javax/xml/validation/ValidatorHandler.class | Bin 0 -> 1764 bytes libjava/classpath/lib/javax/xml/xpath/XPath.class | Bin 0 -> 1124 bytes .../lib/javax/xml/xpath/XPathConstants.class | Bin 0 -> 1073 bytes .../lib/javax/xml/xpath/XPathException.class | Bin 0 -> 1079 bytes .../lib/javax/xml/xpath/XPathExpression.class | Bin 0 -> 501 bytes .../javax/xml/xpath/XPathExpressionException.class | Bin 0 -> 616 bytes .../lib/javax/xml/xpath/XPathFactory.class | Bin 0 -> 3748 bytes .../xpath/XPathFactoryConfigurationException.class | Bin 0 -> 646 bytes .../lib/javax/xml/xpath/XPathFunction.class | Bin 0 -> 248 bytes .../javax/xml/xpath/XPathFunctionException.class | Bin 0 -> 620 bytes .../javax/xml/xpath/XPathFunctionResolver.class | Bin 0 -> 229 bytes .../javax/xml/xpath/XPathVariableResolver.class | Bin 0 -> 215 bytes libjava/classpath/lib/jazzlib/index.html | 47 + libjava/classpath/lib/jazzlib/makeJazzlibDist.sh | 121 + libjava/classpath/lib/mkdep.pl.in | 336 + .../lib/org/ietf/jgss/ChannelBinding.class | Bin 0 -> 1653 bytes .../classpath/lib/org/ietf/jgss/GSSContext.class | Bin 0 -> 1929 bytes .../lib/org/ietf/jgss/GSSCredential.class | Bin 0 -> 961 bytes .../classpath/lib/org/ietf/jgss/GSSException.class | Bin 0 -> 5289 bytes .../classpath/lib/org/ietf/jgss/GSSManager.class | Bin 0 -> 2374 bytes libjava/classpath/lib/org/ietf/jgss/GSSName.class | Bin 0 -> 1248 bytes .../classpath/lib/org/ietf/jgss/MessageProp.class | Bin 0 -> 1738 bytes libjava/classpath/lib/org/ietf/jgss/Oid.class | Bin 0 -> 4656 bytes .../lib/org/omg/CORBA/ACTIVITY_COMPLETED.class | Bin 0 -> 975 bytes .../lib/org/omg/CORBA/ACTIVITY_REQUIRED.class | Bin 0 -> 972 bytes libjava/classpath/lib/org/omg/CORBA/ARG_IN.class | Bin 0 -> 156 bytes .../classpath/lib/org/omg/CORBA/ARG_INOUT.class | Bin 0 -> 162 bytes libjava/classpath/lib/org/omg/CORBA/ARG_OUT.class | Bin 0 -> 158 bytes libjava/classpath/lib/org/omg/CORBA/Any.class | Bin 0 -> 3486 bytes .../classpath/lib/org/omg/CORBA/AnyHolder.class | Bin 0 -> 1378 bytes .../classpath/lib/org/omg/CORBA/AnySeqHelper.class | Bin 0 -> 2256 bytes .../classpath/lib/org/omg/CORBA/AnySeqHolder.class | Bin 0 -> 1617 bytes .../classpath/lib/org/omg/CORBA/BAD_CONTEXT.class | Bin 0 -> 954 bytes .../lib/org/omg/CORBA/BAD_INV_ORDER.class | Bin 0 -> 960 bytes .../lib/org/omg/CORBA/BAD_OPERATION.class | Bin 0 -> 960 bytes .../classpath/lib/org/omg/CORBA/BAD_PARAM.class | Bin 0 -> 948 bytes .../classpath/lib/org/omg/CORBA/BAD_POLICY.class | Bin 0 -> 164 bytes .../lib/org/omg/CORBA/BAD_POLICY_TYPE.class | Bin 0 -> 174 bytes .../lib/org/omg/CORBA/BAD_POLICY_VALUE.class | Bin 0 -> 176 bytes libjava/classpath/lib/org/omg/CORBA/BAD_QOS.class | Bin 0 -> 942 bytes .../classpath/lib/org/omg/CORBA/BAD_TYPECODE.class | Bin 0 -> 957 bytes .../lib/org/omg/CORBA/BooleanHolder.class | Bin 0 -> 1356 bytes .../lib/org/omg/CORBA/BooleanSeqHelper.class | Bin 0 -> 2082 bytes .../lib/org/omg/CORBA/BooleanSeqHolder.class | Bin 0 -> 1506 bytes libjava/classpath/lib/org/omg/CORBA/Bounds.class | Bin 0 -> 426 bytes .../classpath/lib/org/omg/CORBA/ByteHolder.class | Bin 0 -> 1339 bytes .../lib/org/omg/CORBA/CODESET_INCOMPATIBLE.class | Bin 0 -> 981 bytes .../classpath/lib/org/omg/CORBA/COMM_FAILURE.class | Bin 0 -> 957 bytes .../lib/org/omg/CORBA/CTX_RESTRICT_SCOPE.class | Bin 0 -> 180 bytes .../classpath/lib/org/omg/CORBA/CharHolder.class | Bin 0 -> 1331 bytes .../lib/org/omg/CORBA/CharSeqHelper.class | Bin 0 -> 2058 bytes .../lib/org/omg/CORBA/CharSeqHolder.class | Bin 0 -> 1488 bytes .../lib/org/omg/CORBA/CompletionStatus.class | Bin 0 -> 1772 bytes .../lib/org/omg/CORBA/CompletionStatusHelper.class | Bin 0 -> 2021 bytes libjava/classpath/lib/org/omg/CORBA/Context.class | Bin 0 -> 687 bytes .../classpath/lib/org/omg/CORBA/ContextList.class | Bin 0 -> 468 bytes libjava/classpath/lib/org/omg/CORBA/Current.class | Bin 0 -> 216 bytes .../org/omg/CORBA/CurrentHelper$_CurrentStub.class | Bin 0 -> 736 bytes .../lib/org/omg/CORBA/CurrentHelper.class | Bin 0 -> 2402 bytes .../lib/org/omg/CORBA/CurrentHolder.class | Bin 0 -> 1185 bytes .../lib/org/omg/CORBA/CurrentOperations.class | Bin 0 -> 129 bytes .../lib/org/omg/CORBA/CustomMarshal.class | Bin 0 -> 234 bytes .../classpath/lib/org/omg/CORBA/CustomValue.class | Bin 0 -> 192 bytes .../lib/org/omg/CORBA/DATA_CONVERSION.class | Bin 0 -> 966 bytes .../lib/org/omg/CORBA/DataInputStream.class | Bin 0 -> 1641 bytes .../lib/org/omg/CORBA/DataOutputStream.class | Bin 0 -> 1296 bytes .../lib/org/omg/CORBA/DefinitionKind.class | Bin 0 -> 3590 bytes .../lib/org/omg/CORBA/DefinitionKindHelper.class | Bin 0 -> 2646 bytes .../lib/org/omg/CORBA/DomainManager.class | Bin 0 -> 262 bytes .../org/omg/CORBA/DomainManagerOperations.class | Bin 0 -> 197 bytes .../classpath/lib/org/omg/CORBA/DoubleHolder.class | Bin 0 -> 1349 bytes .../lib/org/omg/CORBA/DoubleSeqHelper.class | Bin 0 -> 2074 bytes .../lib/org/omg/CORBA/DoubleSeqHolder.class | Bin 0 -> 1500 bytes libjava/classpath/lib/org/omg/CORBA/DynAny.class | Bin 0 -> 2088 bytes .../lib/org/omg/CORBA/DynAnyPackage/Invalid.class | Bin 0 -> 589 bytes .../org/omg/CORBA/DynAnyPackage/InvalidSeq.class | Bin 0 -> 598 bytes .../org/omg/CORBA/DynAnyPackage/InvalidValue.class | Bin 0 -> 604 bytes .../org/omg/CORBA/DynAnyPackage/TypeMismatch.class | Bin 0 -> 604 bytes libjava/classpath/lib/org/omg/CORBA/DynArray.class | Bin 0 -> 303 bytes libjava/classpath/lib/org/omg/CORBA/DynEnum.class | Bin 0 -> 264 bytes libjava/classpath/lib/org/omg/CORBA/DynFixed.class | Bin 0 -> 263 bytes .../classpath/lib/org/omg/CORBA/DynSequence.class | Bin 0 -> 347 bytes .../classpath/lib/org/omg/CORBA/DynStruct.class | Bin 0 -> 433 bytes libjava/classpath/lib/org/omg/CORBA/DynUnion.class | Bin 0 -> 408 bytes libjava/classpath/lib/org/omg/CORBA/DynValue.class | Bin 0 -> 459 bytes .../lib/org/omg/CORBA/DynamicImplementation.class | Bin 0 -> 3441 bytes .../classpath/lib/org/omg/CORBA/Environment.class | Bin 0 -> 383 bytes .../lib/org/omg/CORBA/ExceptionList.class | Bin 0 -> 486 bytes libjava/classpath/lib/org/omg/CORBA/FREE_MEM.class | Bin 0 -> 945 bytes .../lib/org/omg/CORBA/FieldNameHelper.class | Bin 0 -> 1734 bytes .../classpath/lib/org/omg/CORBA/FixedHolder.class | Bin 0 -> 1175 bytes .../classpath/lib/org/omg/CORBA/FloatHolder.class | Bin 0 -> 1342 bytes .../lib/org/omg/CORBA/FloatSeqHelper.class | Bin 0 -> 2066 bytes .../lib/org/omg/CORBA/FloatSeqHolder.class | Bin 0 -> 1494 bytes libjava/classpath/lib/org/omg/CORBA/IDLType.class | Bin 0 -> 274 bytes .../lib/org/omg/CORBA/IDLTypeHelper.class | Bin 0 -> 2607 bytes .../lib/org/omg/CORBA/IDLTypeOperations.class | Bin 0 -> 213 bytes .../classpath/lib/org/omg/CORBA/IMP_LIMIT.class | Bin 0 -> 948 bytes .../classpath/lib/org/omg/CORBA/INITIALIZE.class | Bin 0 -> 951 bytes libjava/classpath/lib/org/omg/CORBA/INTERNAL.class | Bin 0 -> 945 bytes .../classpath/lib/org/omg/CORBA/INTF_REPOS.class | Bin 0 -> 951 bytes .../lib/org/omg/CORBA/INVALID_ACTIVITY.class | Bin 0 -> 969 bytes .../lib/org/omg/CORBA/INVALID_TRANSACTION.class | Bin 0 -> 978 bytes libjava/classpath/lib/org/omg/CORBA/INV_FLAG.class | Bin 0 -> 945 bytes .../classpath/lib/org/omg/CORBA/INV_IDENT.class | Bin 0 -> 948 bytes .../classpath/lib/org/omg/CORBA/INV_OBJREF.class | Bin 0 -> 951 bytes .../classpath/lib/org/omg/CORBA/INV_POLICY.class | Bin 0 -> 951 bytes libjava/classpath/lib/org/omg/CORBA/IRObject.class | Bin 0 -> 247 bytes .../lib/org/omg/CORBA/IRObjectOperations.class | Bin 0 -> 265 bytes .../lib/org/omg/CORBA/IdentifierHelper.class | Bin 0 -> 1739 bytes .../classpath/lib/org/omg/CORBA/IntHolder.class | Bin 0 -> 1328 bytes .../classpath/lib/org/omg/CORBA/LocalObject.class | Bin 0 -> 4238 bytes .../classpath/lib/org/omg/CORBA/LongHolder.class | Bin 0 -> 1351 bytes .../lib/org/omg/CORBA/LongLongSeqHelper.class | Bin 0 -> 2086 bytes .../lib/org/omg/CORBA/LongLongSeqHolder.class | Bin 0 -> 1512 bytes .../lib/org/omg/CORBA/LongSeqHelper.class | Bin 0 -> 2058 bytes .../lib/org/omg/CORBA/LongSeqHolder.class | Bin 0 -> 1488 bytes libjava/classpath/lib/org/omg/CORBA/MARSHAL.class | Bin 0 -> 950 bytes .../classpath/lib/org/omg/CORBA/NO_IMPLEMENT.class | Bin 0 -> 957 bytes .../classpath/lib/org/omg/CORBA/NO_MEMORY.class | Bin 0 -> 948 bytes .../lib/org/omg/CORBA/NO_PERMISSION.class | Bin 0 -> 960 bytes .../classpath/lib/org/omg/CORBA/NO_RESOURCES.class | Bin 0 -> 963 bytes .../classpath/lib/org/omg/CORBA/NO_RESPONSE.class | Bin 0 -> 954 bytes libjava/classpath/lib/org/omg/CORBA/NVList.class | Bin 0 -> 595 bytes .../lib/org/omg/CORBA/NameValuePair.class | Bin 0 -> 684 bytes .../lib/org/omg/CORBA/NameValuePairHelper.class | Bin 0 -> 3134 bytes .../classpath/lib/org/omg/CORBA/NamedValue.class | Bin 0 -> 383 bytes .../lib/org/omg/CORBA/OBJECT_NOT_EXIST.class | Bin 0 -> 969 bytes .../classpath/lib/org/omg/CORBA/OBJ_ADAPTER.class | Bin 0 -> 954 bytes libjava/classpath/lib/org/omg/CORBA/OMGVMCID.class | Bin 0 -> 160 bytes libjava/classpath/lib/org/omg/CORBA/ORB.class | Bin 0 -> 10975 bytes .../CORBA/ORBPackage/InconsistentTypeCode.class | Bin 0 -> 622 bytes .../lib/org/omg/CORBA/ORBPackage/InvalidName.class | Bin 0 -> 595 bytes libjava/classpath/lib/org/omg/CORBA/Object.class | Bin 0 -> 1024 bytes .../classpath/lib/org/omg/CORBA/ObjectHelper.class | Bin 0 -> 2070 bytes .../classpath/lib/org/omg/CORBA/ObjectHolder.class | Bin 0 -> 1526 bytes .../lib/org/omg/CORBA/OctetSeqHelper.class | Bin 0 -> 2066 bytes .../lib/org/omg/CORBA/OctetSeqHolder.class | Bin 0 -> 1494 bytes .../lib/org/omg/CORBA/PERSIST_STORE.class | Bin 0 -> 960 bytes .../lib/org/omg/CORBA/PRIVATE_MEMBER.class | Bin 0 -> 172 bytes .../lib/org/omg/CORBA/PUBLIC_MEMBER.class | Bin 0 -> 170 bytes .../lib/org/omg/CORBA/ParameterMode.class | Bin 0 -> 1385 bytes .../lib/org/omg/CORBA/ParameterModeHelper.class | Bin 0 -> 2148 bytes .../lib/org/omg/CORBA/ParameterModeHolder.class | Bin 0 -> 1227 bytes libjava/classpath/lib/org/omg/CORBA/Policy.class | Bin 0 -> 241 bytes .../classpath/lib/org/omg/CORBA/PolicyError.class | Bin 0 -> 753 bytes .../lib/org/omg/CORBA/PolicyErrorCodeHelper.class | Bin 0 -> 1800 bytes .../lib/org/omg/CORBA/PolicyErrorHelper.class | Bin 0 -> 3053 bytes .../lib/org/omg/CORBA/PolicyErrorHolder.class | Bin 0 -> 1217 bytes .../classpath/lib/org/omg/CORBA/PolicyHelper.class | Bin 0 -> 2615 bytes .../classpath/lib/org/omg/CORBA/PolicyHolder.class | Bin 0 -> 1177 bytes .../lib/org/omg/CORBA/PolicyListHelper.class | Bin 0 -> 2448 bytes .../lib/org/omg/CORBA/PolicyListHolder.class | Bin 0 -> 1197 bytes .../lib/org/omg/CORBA/PolicyOperations.class | Bin 0 -> 221 bytes .../lib/org/omg/CORBA/PolicyTypeHelper.class | Bin 0 -> 1741 bytes .../classpath/lib/org/omg/CORBA/Principal.class | Bin 0 -> 521 bytes .../lib/org/omg/CORBA/PrincipalHolder.class | Bin 0 -> 1455 bytes libjava/classpath/lib/org/omg/CORBA/REBIND.class | Bin 0 -> 939 bytes .../lib/org/omg/CORBA/RepositoryIdHelper.class | Bin 0 -> 1749 bytes libjava/classpath/lib/org/omg/CORBA/Request.class | Bin 0 -> 1159 bytes .../lib/org/omg/CORBA/ServerRequest.class | Bin 0 -> 1210 bytes .../lib/org/omg/CORBA/ServiceDetail.class | Bin 0 -> 573 bytes .../lib/org/omg/CORBA/ServiceDetailHelper.class | Bin 0 -> 3418 bytes .../lib/org/omg/CORBA/ServiceInformation.class | Bin 0 -> 640 bytes .../org/omg/CORBA/ServiceInformationHelper.class | Bin 0 -> 3602 bytes .../org/omg/CORBA/ServiceInformationHolder.class | Bin 0 -> 1267 bytes .../lib/org/omg/CORBA/SetOverrideType.class | Bin 0 -> 1318 bytes .../lib/org/omg/CORBA/SetOverrideTypeHelper.class | Bin 0 -> 2169 bytes .../classpath/lib/org/omg/CORBA/ShortHolder.class | Bin 0 -> 1342 bytes .../lib/org/omg/CORBA/ShortSeqHelper.class | Bin 0 -> 2066 bytes .../lib/org/omg/CORBA/ShortSeqHolder.class | Bin 0 -> 1494 bytes .../classpath/lib/org/omg/CORBA/StringHolder.class | Bin 0 -> 1409 bytes .../lib/org/omg/CORBA/StringSeqHelper.class | Bin 0 -> 2271 bytes .../lib/org/omg/CORBA/StringSeqHolder.class | Bin 0 -> 1650 bytes .../lib/org/omg/CORBA/StringValueHelper.class | Bin 0 -> 2938 bytes .../classpath/lib/org/omg/CORBA/StructMember.class | Bin 0 -> 802 bytes .../lib/org/omg/CORBA/StructMemberHelper.class | Bin 0 -> 4010 bytes .../lib/org/omg/CORBA/SystemException.class | Bin 0 -> 1174 bytes libjava/classpath/lib/org/omg/CORBA/TCKind.class | Bin 0 -> 3902 bytes libjava/classpath/lib/org/omg/CORBA/TIMEOUT.class | Bin 0 -> 942 bytes .../lib/org/omg/CORBA/TRANSACTION_MODE.class | Bin 0 -> 969 bytes .../lib/org/omg/CORBA/TRANSACTION_REQUIRED.class | Bin 0 -> 981 bytes .../lib/org/omg/CORBA/TRANSACTION_ROLLEDBACK.class | Bin 0 -> 987 bytes .../org/omg/CORBA/TRANSACTION_UNAVAILABLE.class | Bin 0 -> 990 bytes .../classpath/lib/org/omg/CORBA/TRANSIENT.class | Bin 0 -> 948 bytes libjava/classpath/lib/org/omg/CORBA/TypeCode.class | Bin 0 -> 1292 bytes .../lib/org/omg/CORBA/TypeCodeHolder.class | Bin 0 -> 1376 bytes .../org/omg/CORBA/TypeCodePackage/BadKind.class | Bin 0 -> 593 bytes .../lib/org/omg/CORBA/TypeCodePackage/Bounds.class | Bin 0 -> 590 bytes .../lib/org/omg/CORBA/ULongLongSeqHelper.class | Bin 0 -> 2094 bytes .../lib/org/omg/CORBA/ULongLongSeqHolder.class | Bin 0 -> 1518 bytes .../lib/org/omg/CORBA/ULongSeqHelper.class | Bin 0 -> 2065 bytes .../lib/org/omg/CORBA/ULongSeqHolder.class | Bin 0 -> 1494 bytes libjava/classpath/lib/org/omg/CORBA/UNKNOWN.class | Bin 0 -> 942 bytes .../lib/org/omg/CORBA/UNSUPPORTED_POLICY.class | Bin 0 -> 180 bytes .../org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.class | Bin 0 -> 192 bytes .../lib/org/omg/CORBA/UShortSeqHelper.class | Bin 0 -> 2073 bytes .../lib/org/omg/CORBA/UShortSeqHolder.class | Bin 0 -> 1500 bytes .../classpath/lib/org/omg/CORBA/UnionMember.class | Bin 0 -> 896 bytes .../lib/org/omg/CORBA/UnionMemberHelper.class | Bin 0 -> 4221 bytes .../lib/org/omg/CORBA/UnknownUserException.class | Bin 0 -> 633 bytes .../org/omg/CORBA/UnknownUserExceptionHelper.class | Bin 0 -> 3008 bytes .../org/omg/CORBA/UnknownUserExceptionHolder.class | Bin 0 -> 1289 bytes .../lib/org/omg/CORBA/UserException.class | Bin 0 -> 571 bytes .../classpath/lib/org/omg/CORBA/VM_ABSTRACT.class | Bin 0 -> 166 bytes .../classpath/lib/org/omg/CORBA/VM_CUSTOM.class | Bin 0 -> 162 bytes libjava/classpath/lib/org/omg/CORBA/VM_NONE.class | Bin 0 -> 158 bytes .../lib/org/omg/CORBA/VM_TRUNCATABLE.class | Bin 0 -> 172 bytes .../lib/org/omg/CORBA/ValueBaseHelper.class | Bin 0 -> 1577 bytes .../lib/org/omg/CORBA/ValueBaseHolder.class | Bin 0 -> 1184 bytes .../classpath/lib/org/omg/CORBA/ValueMember.class | Bin 0 -> 1095 bytes .../lib/org/omg/CORBA/ValueMemberHelper.class | Bin 0 -> 4773 bytes .../lib/org/omg/CORBA/VersionSpecHelper.class | Bin 0 -> 1744 bytes .../lib/org/omg/CORBA/VisibilityHelper.class | Bin 0 -> 1776 bytes .../lib/org/omg/CORBA/WCharSeqHelper.class | Bin 0 -> 2065 bytes .../lib/org/omg/CORBA/WCharSeqHolder.class | Bin 0 -> 1494 bytes .../lib/org/omg/CORBA/WStringSeqHelper.class | Bin 0 -> 2278 bytes .../lib/org/omg/CORBA/WStringSeqHolder.class | Bin 0 -> 1656 bytes .../lib/org/omg/CORBA/WStringValueHelper.class | Bin 0 -> 2950 bytes .../lib/org/omg/CORBA/WrongTransaction.class | Bin 0 -> 456 bytes .../lib/org/omg/CORBA/WrongTransactionHelper.class | Bin 0 -> 2642 bytes .../lib/org/omg/CORBA/WrongTransactionHolder.class | Bin 0 -> 1257 bytes .../classpath/lib/org/omg/CORBA/_IDLTypeStub.class | Bin 0 -> 2887 bytes .../classpath/lib/org/omg/CORBA/_PolicyStub.class | Bin 0 -> 2534 bytes .../omg/CORBA/portable/ApplicationException.class | Bin 0 -> 865 bytes .../org/omg/CORBA/portable/BoxedValueHelper.class | Bin 0 -> 347 bytes .../lib/org/omg/CORBA/portable/CustomValue.class | Bin 0 -> 201 bytes .../lib/org/omg/CORBA/portable/Delegate.class | Bin 0 -> 4453 bytes .../lib/org/omg/CORBA/portable/IDLEntity.class | Bin 0 -> 150 bytes .../omg/CORBA/portable/IndirectionException.class | Bin 0 -> 689 bytes .../lib/org/omg/CORBA/portable/InputStream.class | Bin 0 -> 1973 bytes .../lib/org/omg/CORBA/portable/InvokeHandler.class | Bin 0 -> 342 bytes .../lib/org/omg/CORBA/portable/ObjectImpl.class | Bin 0 -> 6331 bytes .../lib/org/omg/CORBA/portable/OutputStream.class | Bin 0 -> 2185 bytes .../omg/CORBA/portable/RemarshalException.class | Bin 0 -> 420 bytes .../org/omg/CORBA/portable/ResponseHandler.class | Bin 0 -> 229 bytes .../lib/org/omg/CORBA/portable/ServantObject.class | Bin 0 -> 349 bytes .../lib/org/omg/CORBA/portable/Streamable.class | Bin 0 -> 287 bytes .../org/omg/CORBA/portable/StreamableValue.class | Bin 0 -> 283 bytes .../org/omg/CORBA/portable/UnknownException.class | Bin 0 -> 862 bytes .../lib/org/omg/CORBA/portable/ValueBase.class | Bin 0 -> 213 bytes .../lib/org/omg/CORBA/portable/ValueFactory.class | Bin 0 -> 216 bytes libjava/classpath/lib/org/omg/CORBA_2_3/ORB.class | Bin 0 -> 1214 bytes .../lib/org/omg/CORBA_2_3/portable/Delegate.class | Bin 0 -> 485 bytes .../org/omg/CORBA_2_3/portable/InputStream.class | Bin 0 -> 2118 bytes .../org/omg/CORBA_2_3/portable/ObjectImpl.class | Bin 0 -> 1190 bytes .../org/omg/CORBA_2_3/portable/OutputStream.class | Bin 0 -> 1870 bytes .../classpath/lib/org/omg/CosNaming/Binding.class | Bin 0 -> 655 bytes .../lib/org/omg/CosNaming/BindingHelper.class | Bin 0 -> 3450 bytes .../lib/org/omg/CosNaming/BindingHolder.class | Bin 0 -> 1204 bytes .../lib/org/omg/CosNaming/BindingIterator.class | Bin 0 -> 419 bytes .../org/omg/CosNaming/BindingIteratorHelper.class | Bin 0 -> 3291 bytes .../org/omg/CosNaming/BindingIteratorHolder.class | Bin 0 -> 1271 bytes .../omg/CosNaming/BindingIteratorOperations.class | Bin 0 -> 292 bytes .../lib/org/omg/CosNaming/BindingIteratorPOA.class | Bin 0 -> 3104 bytes .../lib/org/omg/CosNaming/BindingListHelper.class | Bin 0 -> 2886 bytes .../lib/org/omg/CosNaming/BindingListHolder.class | Bin 0 -> 1245 bytes .../lib/org/omg/CosNaming/BindingType.class | Bin 0 -> 1151 bytes .../lib/org/omg/CosNaming/BindingTypeHelper.class | Bin 0 -> 2576 bytes .../lib/org/omg/CosNaming/BindingTypeHolder.class | Bin 0 -> 1239 bytes .../lib/org/omg/CosNaming/IstringHelper.class | Bin 0 -> 1736 bytes .../lib/org/omg/CosNaming/NameComponent.class | Bin 0 -> 1628 bytes .../org/omg/CosNaming/NameComponentHelper.class | Bin 0 -> 2932 bytes .../org/omg/CosNaming/NameComponentHolder.class | Bin 0 -> 1255 bytes .../lib/org/omg/CosNaming/NameHelper.class | Bin 0 -> 2941 bytes .../lib/org/omg/CosNaming/NameHolder.class | Bin 0 -> 1223 bytes .../lib/org/omg/CosNaming/NamingContext.class | Bin 0 -> 1280 bytes .../lib/org/omg/CosNaming/NamingContextExt.class | Bin 0 -> 262 bytes .../org/omg/CosNaming/NamingContextExtHelper.class | Bin 0 -> 3314 bytes .../org/omg/CosNaming/NamingContextExtHolder.class | Bin 0 -> 1276 bytes .../omg/CosNaming/NamingContextExtOperations.class | Bin 0 -> 783 bytes .../org/omg/CosNaming/NamingContextExtPOA.class | Bin 0 -> 9433 bytes .../NamingContextExtPackage/AddressHelper.class | Bin 0 -> 1957 bytes .../NamingContextExtPackage/InvalidAddress.class | Bin 0 -> 635 bytes .../InvalidAddressHelper.class | Bin 0 -> 2467 bytes .../InvalidAddressHolder.class | Bin 0 -> 1431 bytes .../NamingContextExtPackage/StringNameHelper.class | Bin 0 -> 1952 bytes .../NamingContextExtPackage/URLStringHelper.class | Bin 0 -> 1947 bytes .../org/omg/CosNaming/NamingContextHelper.class | Bin 0 -> 3408 bytes .../org/omg/CosNaming/NamingContextHolder.class | Bin 0 -> 1255 bytes .../omg/CosNaming/NamingContextOperations.class | Bin 0 -> 1183 bytes .../lib/org/omg/CosNaming/NamingContextPOA.class | Bin 0 -> 7525 bytes .../NamingContextPackage/AlreadyBound.class | Bin 0 -> 595 bytes .../NamingContextPackage/AlreadyBoundHelper.class | Bin 0 -> 2720 bytes .../NamingContextPackage/AlreadyBoundHolder.class | Bin 0 -> 1394 bytes .../NamingContextPackage/CannotProceed.class | Bin 0 -> 1056 bytes .../NamingContextPackage/CannotProceedHelper.class | Bin 0 -> 3876 bytes .../NamingContextPackage/CannotProceedHolder.class | Bin 0 -> 1399 bytes .../NamingContextPackage/InvalidName.class | Bin 0 -> 592 bytes .../NamingContextPackage/InvalidNameHelper.class | Bin 0 -> 2711 bytes .../NamingContextPackage/InvalidNameHolder.class | Bin 0 -> 1386 bytes .../CosNaming/NamingContextPackage/NotEmpty.class | Bin 0 -> 583 bytes .../NamingContextPackage/NotEmptyHelper.class | Bin 0 -> 2672 bytes .../NamingContextPackage/NotEmptyHolder.class | Bin 0 -> 1359 bytes .../CosNaming/NamingContextPackage/NotFound.class | Bin 0 -> 1115 bytes .../NamingContextPackage/NotFoundHelper.class | Bin 0 -> 3905 bytes .../NamingContextPackage/NotFoundHolder.class | Bin 0 -> 1362 bytes .../NamingContextPackage/NotFoundReason.class | Bin 0 -> 1350 bytes .../NotFoundReasonHelper.class | Bin 0 -> 2858 bytes .../NotFoundReasonHolder.class | Bin 0 -> 1410 bytes .../omg/CosNaming/_BindingIteratorImplBase.class | Bin 0 -> 3208 bytes .../org/omg/CosNaming/_BindingIteratorStub.class | Bin 0 -> 3449 bytes .../omg/CosNaming/_NamingContextExtImplBase.class | Bin 0 -> 5393 bytes .../org/omg/CosNaming/_NamingContextExtStub.class | Bin 0 -> 4329 bytes .../org/omg/CosNaming/_NamingContextImplBase.class | Bin 0 -> 8183 bytes .../lib/org/omg/CosNaming/_NamingContextStub.class | Bin 0 -> 8173 bytes .../classpath/lib/org/omg/Dynamic/Parameter.class | Bin 0 -> 708 bytes .../lib/org/omg/DynamicAny/AnySeqHelper.class | Bin 0 -> 1820 bytes .../classpath/lib/org/omg/DynamicAny/DynAny.class | Bin 0 -> 251 bytes .../lib/org/omg/DynamicAny/DynAnyFactory.class | Bin 0 -> 272 bytes .../org/omg/DynamicAny/DynAnyFactoryHelper.class | Bin 0 -> 2755 bytes .../omg/DynamicAny/DynAnyFactoryOperations.class | Bin 0 -> 417 bytes .../InconsistentTypeCode.class | Bin 0 -> 649 bytes .../InconsistentTypeCodeHelper.class | Bin 0 -> 2917 bytes .../lib/org/omg/DynamicAny/DynAnyHelper.class | Bin 0 -> 2467 bytes .../lib/org/omg/DynamicAny/DynAnyOperations.class | Bin 0 -> 2284 bytes .../DynamicAny/DynAnyPackage/InvalidValue.class | Bin 0 -> 611 bytes .../DynAnyPackage/InvalidValueHelper.class | Bin 0 -> 2758 bytes .../DynamicAny/DynAnyPackage/TypeMismatch.class | Bin 0 -> 611 bytes .../DynAnyPackage/TypeMismatchHelper.class | Bin 0 -> 2758 bytes .../lib/org/omg/DynamicAny/DynAnySeqHelper.class | Bin 0 -> 2483 bytes .../lib/org/omg/DynamicAny/DynArray.class | Bin 0 -> 290 bytes .../lib/org/omg/DynamicAny/DynArrayHelper.class | Bin 0 -> 2493 bytes .../org/omg/DynamicAny/DynArrayOperations.class | Bin 0 -> 550 bytes .../classpath/lib/org/omg/DynamicAny/DynEnum.class | Bin 0 -> 287 bytes .../lib/org/omg/DynamicAny/DynEnumHelper.class | Bin 0 -> 2480 bytes .../lib/org/omg/DynamicAny/DynEnumOperations.class | Bin 0 -> 415 bytes .../lib/org/omg/DynamicAny/DynFixed.class | Bin 0 -> 290 bytes .../lib/org/omg/DynamicAny/DynFixedHelper.class | Bin 0 -> 2493 bytes .../org/omg/DynamicAny/DynFixedOperations.class | Bin 0 -> 393 bytes .../lib/org/omg/DynamicAny/DynSequence.class | Bin 0 -> 299 bytes .../lib/org/omg/DynamicAny/DynSequenceHelper.class | Bin 0 -> 2532 bytes .../org/omg/DynamicAny/DynSequenceOperations.class | Bin 0 -> 621 bytes .../lib/org/omg/DynamicAny/DynStruct.class | Bin 0 -> 293 bytes .../lib/org/omg/DynamicAny/DynStructHelper.class | Bin 0 -> 2506 bytes .../org/omg/DynamicAny/DynStructOperations.class | Bin 0 -> 728 bytes .../lib/org/omg/DynamicAny/DynUnion.class | Bin 0 -> 290 bytes .../lib/org/omg/DynamicAny/DynUnionHelper.class | Bin 0 -> 2493 bytes .../org/omg/DynamicAny/DynUnionOperations.class | Bin 0 -> 724 bytes .../lib/org/omg/DynamicAny/DynValue.class | Bin 0 -> 331 bytes .../lib/org/omg/DynamicAny/DynValueBox.class | Bin 0 -> 340 bytes .../org/omg/DynamicAny/DynValueBoxOperations.class | Bin 0 -> 631 bytes .../lib/org/omg/DynamicAny/DynValueCommon.class | Bin 0 -> 383 bytes .../omg/DynamicAny/DynValueCommonOperations.class | Bin 0 -> 266 bytes .../lib/org/omg/DynamicAny/DynValueHelper.class | Bin 0 -> 2493 bytes .../org/omg/DynamicAny/DynValueOperations.class | Bin 0 -> 797 bytes .../lib/org/omg/DynamicAny/FieldNameHelper.class | Bin 0 -> 1749 bytes .../lib/org/omg/DynamicAny/NameDynAnyPair.class | Bin 0 -> 712 bytes .../org/omg/DynamicAny/NameDynAnyPairHelper.class | Bin 0 -> 3058 bytes .../omg/DynamicAny/NameDynAnyPairSeqHelper.class | Bin 0 -> 2595 bytes .../lib/org/omg/DynamicAny/NameValuePair.class | Bin 0 -> 693 bytes .../org/omg/DynamicAny/NameValuePairHelper.class | Bin 0 -> 3228 bytes .../omg/DynamicAny/NameValuePairSeqHelper.class | Bin 0 -> 2888 bytes .../org/omg/DynamicAny/_DynAnyFactoryStub.class | Bin 0 -> 1629 bytes .../lib/org/omg/DynamicAny/_DynAnyStub.class | Bin 0 -> 6420 bytes .../lib/org/omg/DynamicAny/_DynArrayStub.class | Bin 0 -> 6920 bytes .../lib/org/omg/DynamicAny/_DynEnumStub.class | Bin 0 -> 6718 bytes .../lib/org/omg/DynamicAny/_DynFixedStub.class | Bin 0 -> 6558 bytes .../lib/org/omg/DynamicAny/_DynSequenceStub.class | Bin 0 -> 7118 bytes .../lib/org/omg/DynamicAny/_DynStructStub.class | Bin 0 -> 7220 bytes .../lib/org/omg/DynamicAny/_DynUnionStub.class | Bin 0 -> 7225 bytes .../lib/org/omg/DynamicAny/_DynValueStub.class | Bin 0 -> 7486 bytes libjava/classpath/lib/org/omg/IOP/CodeSets.class | Bin 0 -> 158 bytes libjava/classpath/lib/org/omg/IOP/Codec.class | Bin 0 -> 206 bytes .../classpath/lib/org/omg/IOP/CodecFactory.class | Bin 0 -> 227 bytes .../lib/org/omg/IOP/CodecFactoryHelper.class | Bin 0 -> 2591 bytes .../lib/org/omg/IOP/CodecFactoryOperations.class | Bin 0 -> 282 bytes .../IOP/CodecFactoryPackage/UnknownEncoding.class | Bin 0 -> 618 bytes .../UnknownEncodingHelper.class | Bin 0 -> 2785 bytes .../lib/org/omg/IOP/CodecOperations.class | Bin 0 -> 501 bytes .../org/omg/IOP/CodecPackage/FormatMismatch.class | Bin 0 -> 601 bytes .../IOP/CodecPackage/FormatMismatchHelper.class | Bin 0 -> 2710 bytes .../IOP/CodecPackage/InvalidTypeForEncoding.class | Bin 0 -> 625 bytes .../InvalidTypeForEncodingHelper.class | Bin 0 -> 2810 bytes .../org/omg/IOP/CodecPackage/TypeMismatch.class | Bin 0 -> 595 bytes .../omg/IOP/CodecPackage/TypeMismatchHelper.class | Bin 0 -> 2686 bytes .../lib/org/omg/IOP/ComponentIdHelper.class | Bin 0 -> 1733 bytes .../lib/org/omg/IOP/ENCODING_CDR_ENCAPS.class | Bin 0 -> 180 bytes libjava/classpath/lib/org/omg/IOP/Encoding.class | Bin 0 -> 687 bytes .../lib/org/omg/IOP/ExceptionDetailMessage.class | Bin 0 -> 186 bytes libjava/classpath/lib/org/omg/IOP/IOR.class | Bin 0 -> 740 bytes libjava/classpath/lib/org/omg/IOP/IORHelper.class | Bin 0 -> 3250 bytes libjava/classpath/lib/org/omg/IOP/IORHolder.class | Bin 0 -> 1139 bytes .../omg/IOP/MultipleComponentProfileHelper.class | Bin 0 -> 2658 bytes .../omg/IOP/MultipleComponentProfileHolder.class | Bin 0 -> 1275 bytes .../lib/org/omg/IOP/ProfileIdHelper.class | Bin 0 -> 1719 bytes .../lib/org/omg/IOP/RMICustomMaxStreamFormat.class | Bin 0 -> 190 bytes .../classpath/lib/org/omg/IOP/ServiceContext.class | Bin 0 -> 644 bytes .../lib/org/omg/IOP/ServiceContextHelper.class | Bin 0 -> 3345 bytes .../lib/org/omg/IOP/ServiceContextHolder.class | Bin 0 -> 1227 bytes .../lib/org/omg/IOP/ServiceContextListHelper.class | Bin 0 -> 2700 bytes .../lib/org/omg/IOP/ServiceContextListHolder.class | Bin 0 -> 1247 bytes .../lib/org/omg/IOP/ServiceIdHelper.class | Bin 0 -> 1719 bytes .../org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.class | Bin 0 -> 194 bytes .../classpath/lib/org/omg/IOP/TAG_CODE_SETS.class | Bin 0 -> 168 bytes .../lib/org/omg/IOP/TAG_INTERNET_IOP.class | Bin 0 -> 174 bytes .../lib/org/omg/IOP/TAG_JAVA_CODEBASE.class | Bin 0 -> 176 bytes .../lib/org/omg/IOP/TAG_MULTIPLE_COMPONENTS.class | Bin 0 -> 188 bytes .../classpath/lib/org/omg/IOP/TAG_ORB_TYPE.class | Bin 0 -> 166 bytes .../classpath/lib/org/omg/IOP/TAG_POLICIES.class | Bin 0 -> 166 bytes .../omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.class | Bin 0 -> 206 bytes .../lib/org/omg/IOP/TaggedComponent.class | Bin 0 -> 637 bytes .../lib/org/omg/IOP/TaggedComponentHelper.class | Bin 0 -> 3538 bytes .../lib/org/omg/IOP/TaggedComponentHolder.class | Bin 0 -> 1235 bytes .../classpath/lib/org/omg/IOP/TaggedProfile.class | Bin 0 -> 627 bytes .../lib/org/omg/IOP/TaggedProfileHelper.class | Bin 0 -> 3718 bytes .../lib/org/omg/IOP/TaggedProfileHolder.class | Bin 0 -> 1219 bytes .../lib/org/omg/IOP/TransactionService.class | Bin 0 -> 178 bytes .../org/omg/Messaging/SYNC_WITH_TRANSPORT.class | Bin 0 -> 186 bytes .../lib/org/omg/Messaging/SyncScopeHelper.class | Bin 0 -> 1782 bytes .../lib/org/omg/PortableInterceptor/ACTIVE.class | Bin 0 -> 170 bytes .../AdapterManagerIdHelper.class | Bin 0 -> 1808 bytes .../PortableInterceptor/AdapterNameHelper.class | Bin 0 -> 2073 bytes .../PortableInterceptor/AdapterStateHelper.class | Bin 0 -> 1793 bytes .../PortableInterceptor/ClientRequestInfo.class | Bin 0 -> 321 bytes .../ClientRequestInfoOperations.class | Bin 0 -> 831 bytes .../ClientRequestInterceptor.class | Bin 0 -> 342 bytes .../ClientRequestInterceptorOperations.class | Bin 0 -> 497 bytes .../lib/org/omg/PortableInterceptor/Current.class | Bin 0 -> 245 bytes .../omg/PortableInterceptor/CurrentHelper.class | Bin 0 -> 2240 bytes .../PortableInterceptor/CurrentOperations.class | Bin 0 -> 386 bytes .../org/omg/PortableInterceptor/DISCARDING.class | Bin 0 -> 178 bytes .../omg/PortableInterceptor/ForwardRequest.class | Bin 0 -> 849 bytes .../PortableInterceptor/ForwardRequestHelper.class | Bin 0 -> 3204 bytes .../lib/org/omg/PortableInterceptor/HOLDING.class | Bin 0 -> 172 bytes .../lib/org/omg/PortableInterceptor/INACTIVE.class | Bin 0 -> 174 bytes .../lib/org/omg/PortableInterceptor/IORInfo.class | Bin 0 -> 272 bytes .../PortableInterceptor/IORInfoOperations.class | Bin 0 -> 623 bytes .../omg/PortableInterceptor/IORInterceptor.class | Bin 0 -> 397 bytes .../IORInterceptorOperations.class | Bin 0 -> 288 bytes .../PortableInterceptor/IORInterceptor_3_0.class | Bin 0 -> 299 bytes .../IORInterceptor_3_0Helper.class | Bin 0 -> 3462 bytes .../IORInterceptor_3_0Holder.class | Bin 0 -> 1371 bytes .../IORInterceptor_3_0Operations.class | Bin 0 -> 442 bytes .../org/omg/PortableInterceptor/Interceptor.class | Bin 0 -> 256 bytes .../InterceptorOperations.class | Bin 0 -> 213 bytes .../org/omg/PortableInterceptor/InvalidSlot.class | Bin 0 -> 598 bytes .../PortableInterceptor/InvalidSlotHelper.class | Bin 0 -> 2708 bytes .../omg/PortableInterceptor/LOCATION_FORWARD.class | Bin 0 -> 190 bytes .../org/omg/PortableInterceptor/NON_EXISTENT.class | Bin 0 -> 182 bytes .../org/omg/PortableInterceptor/ORBIdHelper.class | Bin 0 -> 1753 bytes .../org/omg/PortableInterceptor/ORBInitInfo.class | Bin 0 -> 256 bytes .../ORBInitInfoOperations.class | Bin 0 -> 1047 bytes .../ORBInitInfoPackage/DuplicateName.class | Bin 0 -> 821 bytes .../ORBInitInfoPackage/DuplicateNameHelper.class | Bin 0 -> 3155 bytes .../ORBInitInfoPackage/InvalidName.class | Bin 0 -> 636 bytes .../ORBInitInfoPackage/InvalidNameHelper.class | Bin 0 -> 2872 bytes .../ORBInitInfoPackage/ObjectIdHelper.class | Bin 0 -> 1818 bytes .../omg/PortableInterceptor/ORBInitializer.class | Bin 0 -> 265 bytes .../ORBInitializerOperations.class | Bin 0 -> 243 bytes .../omg/PortableInterceptor/ObjectIdHelper.class | Bin 0 -> 1757 bytes .../ObjectReferenceFactory.class | Bin 0 -> 302 bytes .../ObjectReferenceFactoryHelper.class | Bin 0 -> 2808 bytes .../ObjectReferenceFactoryHolder.class | Bin 0 -> 1403 bytes .../ObjectReferenceTemplate.class | Bin 0 -> 320 bytes .../ObjectReferenceTemplateHelper.class | Bin 0 -> 2841 bytes .../ObjectReferenceTemplateHolder.class | Bin 0 -> 1411 bytes .../ObjectReferenceTemplateSeqHelper.class | Bin 0 -> 3255 bytes .../ObjectReferenceTemplateSeqHolder.class | Bin 0 -> 1427 bytes .../omg/PortableInterceptor/PolicyFactory.class | Bin 0 -> 262 bytes .../PolicyFactoryOperations.class | Bin 0 -> 280 bytes .../org/omg/PortableInterceptor/RequestInfo.class | Bin 0 -> 256 bytes .../RequestInfoOperations.class | Bin 0 -> 845 bytes .../org/omg/PortableInterceptor/SUCCESSFUL.class | Bin 0 -> 178 bytes .../omg/PortableInterceptor/SYSTEM_EXCEPTION.class | Bin 0 -> 190 bytes .../omg/PortableInterceptor/ServerIdHelper.class | Bin 0 -> 1768 bytes .../PortableInterceptor/ServerRequestInfo.class | Bin 0 -> 321 bytes .../ServerRequestInfoOperations.class | Bin 0 -> 793 bytes .../ServerRequestInterceptor.class | Bin 0 -> 342 bytes .../ServerRequestInterceptorOperations.class | Bin 0 -> 524 bytes .../omg/PortableInterceptor/TRANSPORT_RETRY.class | Bin 0 -> 188 bytes .../omg/PortableInterceptor/USER_EXCEPTION.class | Bin 0 -> 186 bytes .../_IORInterceptor_3_0Stub.class | Bin 0 -> 4213 bytes .../org/omg/PortableServer/AdapterActivator.class | Bin 0 -> 261 bytes .../AdapterActivatorOperations.class | Bin 0 -> 234 bytes .../lib/org/omg/PortableServer/Current.class | Bin 0 -> 235 bytes .../lib/org/omg/PortableServer/CurrentHelper.class | Bin 0 -> 2186 bytes .../org/omg/PortableServer/CurrentOperations.class | Bin 0 -> 345 bytes .../PortableServer/CurrentPackage/NoContext.class | Bin 0 -> 612 bytes .../CurrentPackage/NoContextHelper.class | Bin 0 -> 2767 bytes .../omg/PortableServer/DynamicImplementation.class | Bin 0 -> 400 bytes .../org/omg/PortableServer/ForwardRequest.class | Bin 0 -> 859 bytes .../omg/PortableServer/ForwardRequestHelper.class | Bin 0 -> 2895 bytes .../PortableServer/ID_ASSIGNMENT_POLICY_ID.class | Bin 0 -> 199 bytes .../PortableServer/ID_UNIQUENESS_POLICY_ID.class | Bin 0 -> 199 bytes .../IMPLICIT_ACTIVATION_POLICY_ID.class | Bin 0 -> 211 bytes .../omg/PortableServer/IdAssignmentPolicy.class | Bin 0 -> 267 bytes .../IdAssignmentPolicyOperations.class | Bin 0 -> 267 bytes .../PortableServer/IdAssignmentPolicyValue.class | Bin 0 -> 1654 bytes .../omg/PortableServer/IdUniquenessPolicy.class | Bin 0 -> 267 bytes .../IdUniquenessPolicyOperations.class | Bin 0 -> 267 bytes .../PortableServer/IdUniquenessPolicyValue.class | Bin 0 -> 1662 bytes .../PortableServer/ImplicitActivationPolicy.class | Bin 0 -> 285 bytes .../ImplicitActivationPolicyOperations.class | Bin 0 -> 285 bytes .../ImplicitActivationPolicyValue.class | Bin 0 -> 1738 bytes .../omg/PortableServer/LIFESPAN_POLICY_ID.class | Bin 0 -> 189 bytes .../org/omg/PortableServer/LifespanPolicy.class | Bin 0 -> 255 bytes .../PortableServer/LifespanPolicyOperations.class | Bin 0 -> 255 bytes .../omg/PortableServer/LifespanPolicyValue.class | Bin 0 -> 1640 bytes .../classpath/lib/org/omg/PortableServer/POA.class | Bin 0 -> 222 bytes .../lib/org/omg/PortableServer/POAHelper.class | Bin 0 -> 2396 bytes .../lib/org/omg/PortableServer/POAManager.class | Bin 0 -> 243 bytes .../omg/PortableServer/POAManagerOperations.class | Bin 0 -> 444 bytes .../POAManagerPackage/AdapterInactive.class | Bin 0 -> 636 bytes .../POAManagerPackage/AdapterInactiveHelper.class | Bin 0 -> 2866 bytes .../PortableServer/POAManagerPackage/State.class | Bin 0 -> 1802 bytes .../lib/org/omg/PortableServer/POAOperations.class | Bin 0 -> 3397 bytes .../POAPackage/AdapterAlreadyExists.class | Bin 0 -> 637 bytes .../POAPackage/AdapterAlreadyExistsHelper.class | Bin 0 -> 2943 bytes .../POAPackage/AdapterNonExistent.class | Bin 0 -> 631 bytes .../POAPackage/AdapterNonExistentHelper.class | Bin 0 -> 2915 bytes .../PortableServer/POAPackage/InvalidPolicy.class | Bin 0 -> 1185 bytes .../POAPackage/InvalidPolicyHelper.class | Bin 0 -> 3122 bytes .../omg/PortableServer/POAPackage/NoServant.class | Bin 0 -> 604 bytes .../POAPackage/NoServantHelper.class | Bin 0 -> 2807 bytes .../POAPackage/ObjectAlreadyActive.class | Bin 0 -> 634 bytes .../POAPackage/ObjectAlreadyActiveHelper.class | Bin 0 -> 2931 bytes .../POAPackage/ObjectNotActive.class | Bin 0 -> 622 bytes .../POAPackage/ObjectNotActiveHelper.class | Bin 0 -> 2879 bytes .../POAPackage/ServantAlreadyActive.class | Bin 0 -> 637 bytes .../POAPackage/ServantAlreadyActiveHelper.class | Bin 0 -> 2943 bytes .../POAPackage/ServantNotActive.class | Bin 0 -> 625 bytes .../POAPackage/ServantNotActiveHelper.class | Bin 0 -> 2891 bytes .../PortableServer/POAPackage/WrongAdapter.class | Bin 0 -> 613 bytes .../POAPackage/WrongAdapterHelper.class | Bin 0 -> 2843 bytes .../PortableServer/POAPackage/WrongPolicy.class | Bin 0 -> 610 bytes .../POAPackage/WrongPolicyHelper.class | Bin 0 -> 2831 bytes .../REQUEST_PROCESSING_POLICY_ID.class | Bin 0 -> 209 bytes .../PortableServer/RequestProcessingPolicy.class | Bin 0 -> 282 bytes .../RequestProcessingPolicyOperations.class | Bin 0 -> 282 bytes .../RequestProcessingPolicyValue.class | Bin 0 -> 1862 bytes .../SERVANT_RETENTION_POLICY_ID.class | Bin 0 -> 207 bytes .../lib/org/omg/PortableServer/Servant.class | Bin 0 -> 3457 bytes .../org/omg/PortableServer/ServantActivator.class | Bin 0 -> 306 bytes .../PortableServer/ServantActivatorHelper.class | Bin 0 -> 2476 bytes .../ServantActivatorOperations.class | Bin 0 -> 456 bytes .../ServantActivatorPOA$delegator.class | Bin 0 -> 1364 bytes .../omg/PortableServer/ServantActivatorPOA.class | Bin 0 -> 1737 bytes .../org/omg/PortableServer/ServantLocator.class | Bin 0 -> 300 bytes .../omg/PortableServer/ServantLocatorHelper.class | Bin 0 -> 2482 bytes .../PortableServer/ServantLocatorOperations.class | Bin 0 -> 562 bytes .../ServantLocatorPOA$delegator.class | Bin 0 -> 1785 bytes .../org/omg/PortableServer/ServantLocatorPOA.class | Bin 0 -> 1719 bytes .../ServantLocatorPackage/CookieHolder.class | Bin 0 -> 1045 bytes .../org/omg/PortableServer/ServantManager.class | Bin 0 -> 255 bytes .../PortableServer/ServantManagerOperations.class | Bin 0 -> 152 bytes .../PortableServer/ServantRetentionPolicy.class | Bin 0 -> 279 bytes .../ServantRetentionPolicyOperations.class | Bin 0 -> 279 bytes .../ServantRetentionPolicyValue.class | Bin 0 -> 1674 bytes .../org/omg/PortableServer/THREAD_POLICY_ID.class | Bin 0 -> 185 bytes .../lib/org/omg/PortableServer/ThreadPolicy.class | Bin 0 -> 249 bytes .../PortableServer/ThreadPolicyOperations.class | Bin 0 -> 249 bytes .../org/omg/PortableServer/ThreadPolicyValue.class | Bin 0 -> 1658 bytes .../omg/PortableServer/_ServantActivatorStub.class | Bin 0 -> 1441 bytes .../omg/PortableServer/_ServantLocatorStub.class | Bin 0 -> 1730 bytes .../org/omg/PortableServer/portable/Delegate.class | Bin 0 -> 600 bytes .../lib/org/omg/SendingContext/RunTime.class | Bin 0 -> 262 bytes .../org/omg/SendingContext/RunTimeOperations.class | Bin 0 -> 138 bytes .../lib/org/omg/stub/java/rmi/_Remote_Stub.class | Bin 0 -> 549 bytes .../lib/org/relaxng/datatype/Datatype.class | Bin 0 -> 920 bytes .../lib/org/relaxng/datatype/DatatypeBuilder.class | Bin 0 -> 375 bytes .../org/relaxng/datatype/DatatypeException.class | Bin 0 -> 740 bytes .../lib/org/relaxng/datatype/DatatypeLibrary.class | Bin 0 -> 381 bytes .../relaxng/datatype/DatatypeLibraryFactory.class | Bin 0 -> 239 bytes .../datatype/DatatypeStreamingValidator.class | Bin 0 -> 306 bytes .../org/relaxng/datatype/ValidationContext.class | Bin 0 -> 326 bytes .../DatatypeLibraryLoader$Service$Loader.class | Bin 0 -> 1749 bytes .../DatatypeLibraryLoader$Service$Loader2.class | Bin 0 -> 1756 bytes ...LibraryLoader$Service$ProviderEnumeration.class | Bin 0 -> 1656 bytes .../DatatypeLibraryLoader$Service$Singleton.class | Bin 0 -> 1126 bytes .../helpers/DatatypeLibraryLoader$Service.class | Bin 0 -> 4546 bytes .../datatype/helpers/DatatypeLibraryLoader.class | Bin 0 -> 1250 bytes .../helpers/ParameterlessDatatypeBuilder.class | Bin 0 -> 1013 bytes .../datatype/helpers/StreamingValidatorImpl.class | Bin 0 -> 1449 bytes libjava/classpath/lib/org/w3c/dom/Attr.class | Bin 0 -> 432 bytes .../classpath/lib/org/w3c/dom/CDATASection.class | Bin 0 -> 141 bytes .../classpath/lib/org/w3c/dom/CharacterData.class | Bin 0 -> 558 bytes libjava/classpath/lib/org/w3c/dom/Comment.class | Bin 0 -> 140 bytes .../lib/org/w3c/dom/DOMConfiguration.class | Bin 0 -> 445 bytes libjava/classpath/lib/org/w3c/dom/DOMError.class | Bin 0 -> 470 bytes .../lib/org/w3c/dom/DOMErrorHandler.class | Bin 0 -> 173 bytes .../classpath/lib/org/w3c/dom/DOMException.class | Bin 0 -> 1156 bytes .../lib/org/w3c/dom/DOMImplementation.class | Bin 0 -> 561 bytes .../lib/org/w3c/dom/DOMImplementationList.class | Bin 0 -> 213 bytes .../lib/org/w3c/dom/DOMImplementationSource.class | Bin 0 -> 317 bytes libjava/classpath/lib/org/w3c/dom/DOMLocator.class | Bin 0 -> 306 bytes .../classpath/lib/org/w3c/dom/DOMStringList.class | Bin 0 -> 227 bytes libjava/classpath/lib/org/w3c/dom/Document.class | Bin 0 -> 2096 bytes .../lib/org/w3c/dom/DocumentFragment.class | Bin 0 -> 149 bytes .../classpath/lib/org/w3c/dom/DocumentType.class | Bin 0 -> 330 bytes libjava/classpath/lib/org/w3c/dom/Element.class | Bin 0 -> 1532 bytes libjava/classpath/lib/org/w3c/dom/Entity.class | Bin 0 -> 298 bytes .../lib/org/w3c/dom/EntityReference.class | Bin 0 -> 147 bytes libjava/classpath/lib/org/w3c/dom/NameList.class | Bin 0 -> 309 bytes .../classpath/lib/org/w3c/dom/NamedNodeMap.class | Bin 0 -> 566 bytes libjava/classpath/lib/org/w3c/dom/Node.class | Bin 0 -> 2560 bytes libjava/classpath/lib/org/w3c/dom/NodeList.class | Bin 0 -> 174 bytes libjava/classpath/lib/org/w3c/dom/Notation.class | Bin 0 -> 200 bytes .../lib/org/w3c/dom/ProcessingInstruction.class | Bin 0 -> 315 bytes libjava/classpath/lib/org/w3c/dom/Text.class | Bin 0 -> 398 bytes libjava/classpath/lib/org/w3c/dom/TypeInfo.class | Bin 0 -> 437 bytes .../lib/org/w3c/dom/UserDataHandler.class | Bin 0 -> 419 bytes .../bootstrap/DOMImplementationRegistry$1.class | Bin 0 -> 1248 bytes .../bootstrap/DOMImplementationRegistry$2.class | Bin 0 -> 842 bytes .../bootstrap/DOMImplementationRegistry$3.class | Bin 0 -> 786 bytes .../bootstrap/DOMImplementationRegistry$4.class | Bin 0 -> 1067 bytes .../dom/bootstrap/DOMImplementationRegistry.class | Bin 0 -> 5443 bytes .../lib/org/w3c/dom/css/CSS2Properties.class | Bin 0 -> 7355 bytes .../lib/org/w3c/dom/css/CSSCharsetRule.class | Bin 0 -> 300 bytes .../lib/org/w3c/dom/css/CSSFontFaceRule.class | Bin 0 -> 219 bytes .../lib/org/w3c/dom/css/CSSImportRule.class | Bin 0 -> 314 bytes .../lib/org/w3c/dom/css/CSSMediaRule.class | Bin 0 -> 404 bytes .../lib/org/w3c/dom/css/CSSPageRule.class | Bin 0 -> 363 bytes .../lib/org/w3c/dom/css/CSSPrimitiveValue.class | Bin 0 -> 1487 bytes .../classpath/lib/org/w3c/dom/css/CSSRule.class | Bin 0 -> 663 bytes .../lib/org/w3c/dom/css/CSSRuleList.class | Bin 0 -> 191 bytes .../lib/org/w3c/dom/css/CSSStyleDeclaration.class | Bin 0 -> 700 bytes .../lib/org/w3c/dom/css/CSSStyleRule.class | Bin 0 -> 365 bytes .../lib/org/w3c/dom/css/CSSStyleSheet.class | Bin 0 -> 411 bytes .../lib/org/w3c/dom/css/CSSUnknownRule.class | Bin 0 -> 156 bytes .../classpath/lib/org/w3c/dom/css/CSSValue.class | Bin 0 -> 457 bytes .../lib/org/w3c/dom/css/CSSValueList.class | Bin 0 -> 226 bytes .../classpath/lib/org/w3c/dom/css/Counter.class | Bin 0 -> 204 bytes .../lib/org/w3c/dom/css/DOMImplementationCSS.class | Bin 0 -> 329 bytes .../lib/org/w3c/dom/css/DocumentCSS.class | Bin 0 -> 272 bytes .../org/w3c/dom/css/ElementCSSInlineStyle.class | Bin 0 -> 200 bytes .../classpath/lib/org/w3c/dom/css/RGBColor.class | Bin 0 -> 207 bytes libjava/classpath/lib/org/w3c/dom/css/Rect.class | Bin 0 -> 219 bytes .../classpath/lib/org/w3c/dom/css/ViewCSS.class | Bin 0 -> 257 bytes .../lib/org/w3c/dom/events/DocumentEvent.class | Bin 0 -> 250 bytes .../classpath/lib/org/w3c/dom/events/Event.class | Bin 0 -> 578 bytes .../lib/org/w3c/dom/events/EventException.class | Bin 0 -> 518 bytes .../lib/org/w3c/dom/events/EventListener.class | Bin 0 -> 180 bytes .../lib/org/w3c/dom/events/EventTarget.class | Bin 0 -> 356 bytes .../lib/org/w3c/dom/events/MouseEvent.class | Bin 0 -> 549 bytes .../lib/org/w3c/dom/events/MutationEvent.class | Bin 0 -> 572 bytes .../classpath/lib/org/w3c/dom/events/UIEvent.class | Bin 0 -> 308 bytes .../lib/org/w3c/dom/html2/HTMLAnchorElement.class | Bin 0 -> 737 bytes .../lib/org/w3c/dom/html2/HTMLAppletElement.class | Bin 0 -> 658 bytes .../lib/org/w3c/dom/html2/HTMLAreaElement.class | Bin 0 -> 557 bytes .../lib/org/w3c/dom/html2/HTMLBRElement.class | Bin 0 -> 247 bytes .../lib/org/w3c/dom/html2/HTMLBaseElement.class | Bin 0 -> 289 bytes .../org/w3c/dom/html2/HTMLBaseFontElement.class | Bin 0 -> 344 bytes .../lib/org/w3c/dom/html2/HTMLBodyElement.class | Bin 0 -> 451 bytes .../lib/org/w3c/dom/html2/HTMLButtonElement.class | Bin 0 -> 527 bytes .../lib/org/w3c/dom/html2/HTMLCollection.class | Bin 0 -> 253 bytes .../lib/org/w3c/dom/html2/HTMLDListElement.class | Bin 0 -> 223 bytes .../org/w3c/dom/html2/HTMLDirectoryElement.class | Bin 0 -> 231 bytes .../lib/org/w3c/dom/html2/HTMLDivElement.class | Bin 0 -> 249 bytes .../lib/org/w3c/dom/html2/HTMLDocument.class | Bin 0 -> 780 bytes .../lib/org/w3c/dom/html2/HTMLElement.class | Bin 0 -> 381 bytes .../org/w3c/dom/html2/HTMLFieldSetElement.class | Bin 0 -> 232 bytes .../lib/org/w3c/dom/html2/HTMLFontElement.class | Bin 0 -> 323 bytes .../lib/org/w3c/dom/html2/HTMLFormElement.class | Bin 0 -> 591 bytes .../lib/org/w3c/dom/html2/HTMLFrameElement.class | Bin 0 -> 640 bytes .../org/w3c/dom/html2/HTMLFrameSetElement.class | Bin 0 -> 293 bytes .../lib/org/w3c/dom/html2/HTMLHRElement.class | Bin 0 -> 376 bytes .../lib/org/w3c/dom/html2/HTMLHeadElement.class | Bin 0 -> 255 bytes .../lib/org/w3c/dom/html2/HTMLHeadingElement.class | Bin 0 -> 257 bytes .../lib/org/w3c/dom/html2/HTMLHtmlElement.class | Bin 0 -> 255 bytes .../lib/org/w3c/dom/html2/HTMLIFrameElement.class | Bin 0 -> 701 bytes .../lib/org/w3c/dom/html2/HTMLImageElement.class | Bin 0 -> 703 bytes .../lib/org/w3c/dom/html2/HTMLInputElement.class | Bin 0 -> 1075 bytes .../lib/org/w3c/dom/html2/HTMLIsIndexElement.class | Bin 0 -> 317 bytes .../lib/org/w3c/dom/html2/HTMLLIElement.class | Bin 0 -> 296 bytes .../lib/org/w3c/dom/html2/HTMLLabelElement.class | Bin 0 -> 361 bytes .../lib/org/w3c/dom/html2/HTMLLegendElement.class | Bin 0 -> 359 bytes .../lib/org/w3c/dom/html2/HTMLLinkElement.class | Bin 0 -> 574 bytes .../lib/org/w3c/dom/html2/HTMLMapElement.class | Bin 0 -> 305 bytes .../lib/org/w3c/dom/html2/HTMLMenuElement.class | Bin 0 -> 221 bytes .../lib/org/w3c/dom/html2/HTMLMetaElement.class | Bin 0 -> 377 bytes .../lib/org/w3c/dom/html2/HTMLModElement.class | Bin 0 -> 291 bytes .../lib/org/w3c/dom/html2/HTMLOListElement.class | Bin 0 -> 357 bytes .../lib/org/w3c/dom/html2/HTMLObjectElement.class | Bin 0 -> 1035 bytes .../org/w3c/dom/html2/HTMLOptGroupElement.class | Bin 0 -> 316 bytes .../lib/org/w3c/dom/html2/HTMLOptionElement.class | Bin 0 -> 553 bytes .../org/w3c/dom/html2/HTMLOptionsCollection.class | Bin 0 -> 347 bytes .../org/w3c/dom/html2/HTMLParagraphElement.class | Bin 0 -> 261 bytes .../lib/org/w3c/dom/html2/HTMLParamElement.class | Bin 0 -> 371 bytes .../lib/org/w3c/dom/html2/HTMLPreElement.class | Bin 0 -> 215 bytes .../lib/org/w3c/dom/html2/HTMLQuoteElement.class | Bin 0 -> 251 bytes .../lib/org/w3c/dom/html2/HTMLScriptElement.class | Bin 0 -> 496 bytes .../lib/org/w3c/dom/html2/HTMLSelectElement.class | Bin 0 -> 921 bytes .../lib/org/w3c/dom/html2/HTMLStyleElement.class | Bin 0 -> 346 bytes .../w3c/dom/html2/HTMLTableCaptionElement.class | Bin 0 -> 267 bytes .../org/w3c/dom/html2/HTMLTableCellElement.class | Bin 0 -> 816 bytes .../org/w3c/dom/html2/HTMLTableColElement.class | Bin 0 -> 456 bytes .../lib/org/w3c/dom/html2/HTMLTableElement.class | Bin 0 -> 1336 bytes .../org/w3c/dom/html2/HTMLTableRowElement.class | Bin 0 -> 675 bytes .../w3c/dom/html2/HTMLTableSectionElement.class | Bin 0 -> 581 bytes .../org/w3c/dom/html2/HTMLTextAreaElement.class | Bin 0 -> 753 bytes .../lib/org/w3c/dom/html2/HTMLTitleElement.class | Bin 0 -> 251 bytes .../lib/org/w3c/dom/html2/HTMLUListElement.class | Bin 0 -> 306 bytes .../lib/org/w3c/dom/ls/DOMImplementationLS.class | Bin 0 -> 533 bytes .../classpath/lib/org/w3c/dom/ls/LSException.class | Bin 0 -> 521 bytes libjava/classpath/lib/org/w3c/dom/ls/LSInput.class | Bin 0 -> 648 bytes .../classpath/lib/org/w3c/dom/ls/LSLoadEvent.class | Bin 0 -> 250 bytes .../classpath/lib/org/w3c/dom/ls/LSOutput.class | Bin 0 -> 451 bytes .../classpath/lib/org/w3c/dom/ls/LSParser.class | Bin 0 -> 924 bytes .../lib/org/w3c/dom/ls/LSParserFilter.class | Bin 0 -> 418 bytes .../lib/org/w3c/dom/ls/LSProgressEvent.class | Bin 0 -> 257 bytes .../lib/org/w3c/dom/ls/LSResourceResolver.class | Bin 0 -> 277 bytes .../lib/org/w3c/dom/ls/LSSerializer.class | Bin 0 -> 688 bytes .../lib/org/w3c/dom/ls/LSSerializerFilter.class | Bin 0 -> 202 bytes .../lib/org/w3c/dom/ranges/DocumentRange.class | Bin 0 -> 179 bytes .../classpath/lib/org/w3c/dom/ranges/Range.class | Bin 0 -> 1408 bytes .../lib/org/w3c/dom/ranges/RangeException.class | Bin 0 -> 559 bytes .../org/w3c/dom/stylesheets/DocumentStyle.class | Bin 0 -> 201 bytes .../lib/org/w3c/dom/stylesheets/LinkStyle.class | Bin 0 -> 183 bytes .../lib/org/w3c/dom/stylesheets/MediaList.class | Bin 0 -> 400 bytes .../lib/org/w3c/dom/stylesheets/StyleSheet.class | Bin 0 -> 436 bytes .../org/w3c/dom/stylesheets/StyleSheetList.class | Bin 0 -> 216 bytes .../org/w3c/dom/traversal/DocumentTraversal.class | Bin 0 -> 444 bytes .../lib/org/w3c/dom/traversal/NodeFilter.class | Bin 0 -> 801 bytes .../lib/org/w3c/dom/traversal/NodeIterator.class | Bin 0 -> 427 bytes .../lib/org/w3c/dom/traversal/TreeWalker.class | Bin 0 -> 574 bytes .../lib/org/w3c/dom/views/AbstractView.class | Bin 0 -> 182 bytes .../lib/org/w3c/dom/views/DocumentView.class | Bin 0 -> 185 bytes .../lib/org/w3c/dom/xpath/XPathEvaluator.class | Bin 0 -> 569 bytes .../lib/org/w3c/dom/xpath/XPathException.class | Bin 0 -> 544 bytes .../lib/org/w3c/dom/xpath/XPathExpression.class | Bin 0 -> 301 bytes .../lib/org/w3c/dom/xpath/XPathNSResolver.class | Bin 0 -> 199 bytes .../lib/org/w3c/dom/xpath/XPathNamespace.class | Bin 0 -> 267 bytes .../lib/org/w3c/dom/xpath/XPathResult.class | Bin 0 -> 1060 bytes .../classpath/lib/org/xml/sax/AttributeList.class | Bin 0 -> 300 bytes libjava/classpath/lib/org/xml/sax/Attributes.class | Bin 0 -> 484 bytes .../classpath/lib/org/xml/sax/ContentHandler.class | Bin 0 -> 799 bytes libjava/classpath/lib/org/xml/sax/DTDHandler.class | Bin 0 -> 366 bytes .../lib/org/xml/sax/DocumentHandler.class | Bin 0 -> 617 bytes .../classpath/lib/org/xml/sax/EntityResolver.class | Bin 0 -> 291 bytes .../classpath/lib/org/xml/sax/ErrorHandler.class | Bin 0 -> 282 bytes .../classpath/lib/org/xml/sax/HandlerBase.class | Bin 0 -> 2468 bytes .../classpath/lib/org/xml/sax/InputSource.class | Bin 0 -> 1772 bytes libjava/classpath/lib/org/xml/sax/Locator.class | Bin 0 -> 230 bytes libjava/classpath/lib/org/xml/sax/Parser.class | Bin 0 -> 587 bytes .../classpath/lib/org/xml/sax/SAXException.class | Bin 0 -> 1117 bytes .../org/xml/sax/SAXNotRecognizedException.class | Bin 0 -> 477 bytes .../lib/org/xml/sax/SAXNotSupportedException.class | Bin 0 -> 474 bytes .../lib/org/xml/sax/SAXParseException.class | Bin 0 -> 1971 bytes libjava/classpath/lib/org/xml/sax/XMLFilter.class | Bin 0 -> 237 bytes libjava/classpath/lib/org/xml/sax/XMLReader.class | Bin 0 -> 1101 bytes .../lib/org/xml/sax/ext/Attributes2.class | Bin 0 -> 297 bytes .../lib/org/xml/sax/ext/Attributes2Impl.class | Bin 0 -> 3721 bytes .../lib/org/xml/sax/ext/DeclHandler.class | Bin 0 -> 504 bytes .../lib/org/xml/sax/ext/DefaultHandler2.class | Bin 0 -> 2469 bytes .../lib/org/xml/sax/ext/EntityResolver2.class | Bin 0 -> 473 bytes .../lib/org/xml/sax/ext/LexicalHandler.class | Bin 0 -> 474 bytes .../classpath/lib/org/xml/sax/ext/Locator2.class | Bin 0 -> 209 bytes .../lib/org/xml/sax/ext/Locator2Impl.class | Bin 0 -> 1050 bytes .../org/xml/sax/helpers/AttributeListImpl.class | Bin 0 -> 2485 bytes .../lib/org/xml/sax/helpers/AttributesImpl.class | Bin 0 -> 5438 bytes .../lib/org/xml/sax/helpers/DefaultHandler.class | Bin 0 -> 2922 bytes .../lib/org/xml/sax/helpers/LocatorImpl.class | Bin 0 -> 1480 bytes .../xml/sax/helpers/NamespaceSupport$Context.class | Bin 0 -> 3777 bytes .../lib/org/xml/sax/helpers/NamespaceSupport.class | Bin 0 -> 3965 bytes .../lib/org/xml/sax/helpers/NewInstance.class | Bin 0 -> 1771 bytes .../ParserAdapter$AttributeListAdapter.class | Bin 0 -> 2443 bytes .../lib/org/xml/sax/helpers/ParserAdapter.class | Bin 0 -> 11822 bytes .../lib/org/xml/sax/helpers/ParserFactory.class | Bin 0 -> 1233 bytes .../lib/org/xml/sax/helpers/XMLFilterImpl.class | Bin 0 -> 6984 bytes .../XMLReaderAdapter$AttributesAdapter.class | Bin 0 -> 1477 bytes .../lib/org/xml/sax/helpers/XMLReaderAdapter.class | Bin 0 -> 4848 bytes .../lib/org/xml/sax/helpers/XMLReaderFactory.class | Bin 0 -> 3227 bytes libjava/classpath/lib/standard.omit | 2 - libjava/classpath/lib/sun/misc/Service.class | Bin 0 -> 715 bytes .../lib/sun/misc/ServiceConfigurationError.class | Bin 0 -> 462 bytes libjava/classpath/lib/sun/misc/Unsafe.class | Bin 0 -> 1550 bytes libjava/classpath/lib/sun/reflect/Reflection.class | Bin 0 -> 477 bytes .../annotation/AnnotationInvocationHandler.class | Bin 0 -> 7471 bytes .../sun/reflect/annotation/AnnotationParser.class | Bin 0 -> 926 bytes .../sun/reflect/annotation/AnnotationType.class | Bin 0 -> 671 bytes .../EnumConstantNotPresentExceptionProxy.class | Bin 0 -> 580 bytes .../sun/reflect/annotation/ExceptionProxy.class | Bin 0 -> 313 bytes .../sun/reflect/misc/ReflectUtil$MustBeNull.class | Bin 0 -> 392 bytes .../lib/sun/reflect/misc/ReflectUtil.class | Bin 0 -> 1606 bytes libjava/classpath/ltconfig | 2 +- libjava/classpath/ltmain.sh | 8 +- libjava/classpath/m4/acinclude.m4 | 13 - libjava/classpath/m4/gcc_attribute.m4 | 133 + libjava/classpath/native/.cvsignore | 8 + libjava/classpath/native/Makefile.am | 4 +- libjava/classpath/native/Makefile.in | 15 +- libjava/classpath/native/fdlibm/.cvsignore | 8 + libjava/classpath/native/fdlibm/Makefile.in | 11 +- libjava/classpath/native/fdlibm/mprec.h | 2 +- libjava/classpath/native/jawt/Makefile.am | 13 +- libjava/classpath/native/jawt/Makefile.in | 80 +- libjava/classpath/native/jawt/jawt.c | 2 + libjava/classpath/native/jni/.cvsignore | 8 + libjava/classpath/native/jni/Makefile.am | 5 +- libjava/classpath/native/jni/Makefile.in | 16 +- libjava/classpath/native/jni/classpath/.cvsignore | 8 + libjava/classpath/native/jni/classpath/Makefile.in | 11 +- .../native/jni/classpath/classpath_jawt.h | 1 + libjava/classpath/native/jni/classpath/jcl.c | 131 +- libjava/classpath/native/jni/gconf-peer/.cvsignore | 6 + .../native/jni/gconf-peer/GConfNativePeer.c | 117 +- .../classpath/native/jni/gconf-peer/Makefile.in | 11 +- .../native/jni/gtk-peer/GtkDragSourceContextPeer.c | 132 +- libjava/classpath/native/jni/gtk-peer/Makefile.am | 12 +- libjava/classpath/native/jni/gtk-peer/Makefile.in | 80 +- .../native/jni/gtk-peer/cairographics2d.h | 3 +- libjava/classpath/native/jni/gtk-peer/gdkfont.h | 5 +- .../gnu_java_awt_peer_gtk_CairoGraphics2D.c | 151 +- .../gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c | 24 +- .../gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c | 92 +- .../gnu_java_awt_peer_gtk_GdkPixbufDecoder.c | 21 +- .../gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c | 2 +- .../gnu_java_awt_peer_gtk_GtkComponentPeer.c | 18 +- .../gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c | 44 + .../gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c | 2 +- .../gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c | 49 +- .../gnu_java_awt_peer_gtk_GtkVolatileImage.c | 22 +- .../gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c | 64 +- libjava/classpath/native/jni/gtk-peer/gtk_jawt.c | 35 + libjava/classpath/native/jni/java-io/.cvsignore | 8 + libjava/classpath/native/jni/java-io/Makefile.am | 3 +- libjava/classpath/native/jni/java-io/Makefile.in | 18 +- .../classpath/native/jni/java-io/java_io_VMFile.c | 213 +- libjava/classpath/native/jni/java-lang/.cvsignore | 8 + libjava/classpath/native/jni/java-lang/Makefile.am | 3 +- libjava/classpath/native/jni/java-lang/Makefile.in | 17 +- .../native/jni/java-lang/java_lang_VMDouble.c | 350 +- .../native/jni/java-lang/java_lang_VMProcess.c | 185 +- libjava/classpath/native/jni/java-net/.cvsignore | 8 + libjava/classpath/native/jni/java-net/Makefile.am | 5 +- libjava/classpath/native/jni/java-net/Makefile.in | 24 +- .../gnu_java_net_VMPlainDatagramSocketImpl.c | 399 - .../jni/java-net/gnu_java_net_VMPlainSocketImpl.c | 1267 +- .../java-net/gnu_java_net_local_LocalSocketImpl.c | 2 - .../native/jni/java-net/java_net_VMInetAddress.c | 201 +- .../jni/java-net/java_net_VMNetworkInterface.c | 206 +- libjava/classpath/native/jni/java-net/javanet.c | 551 +- libjava/classpath/native/jni/java-net/javanet.h | 9 +- libjava/classpath/native/jni/java-net/local.c | 2 - libjava/classpath/native/jni/java-nio/.cvsignore | 8 + libjava/classpath/native/jni/java-nio/Makefile.am | 10 +- libjava/classpath/native/jni/java-nio/Makefile.in | 30 +- .../jni/java-nio/gnu_java_nio_EpollSelectorImpl.c | 414 + .../jni/java-nio/gnu_java_nio_KqueueSelectorImpl.c | 387 + .../native/jni/java-nio/gnu_java_nio_VMChannel.c | 1511 +- .../native/jni/java-nio/gnu_java_nio_VMPipe.c | 41 +- .../native/jni/java-nio/gnu_java_nio_VMSelector.c | 12 +- .../gnu_java_nio_channels_FileChannelImpl.c | 902 - .../jni/java-nio/java_nio_MappedByteBufferImpl.c | 5 +- libjava/classpath/native/jni/java-nio/javanio.c | 122 + libjava/classpath/native/jni/java-nio/javanio.h | 332 + libjava/classpath/native/jni/java-util/.cvsignore | 8 + libjava/classpath/native/jni/java-util/Makefile.in | 11 +- libjava/classpath/native/jni/midi-alsa/.cvsignore | 9 + libjava/classpath/native/jni/midi-alsa/Makefile.in | 11 +- libjava/classpath/native/jni/midi-dssi/.cvsignore | 9 + libjava/classpath/native/jni/midi-dssi/Makefile.am | 5 +- libjava/classpath/native/jni/midi-dssi/Makefile.in | 16 +- libjava/classpath/native/jni/midi-dssi/dssi_data.h | 2 - libjava/classpath/native/jni/native-lib/.cvsignore | 8 + .../classpath/native/jni/native-lib/Makefile.am | 12 + .../classpath/native/jni/native-lib/Makefile.in | 570 + libjava/classpath/native/jni/native-lib/cpio.c | 485 + libjava/classpath/native/jni/native-lib/cpio.h | 85 + libjava/classpath/native/jni/native-lib/cpnative.h | 49 + libjava/classpath/native/jni/native-lib/cpnet.c | 768 + libjava/classpath/native/jni/native-lib/cpnet.h | 209 + libjava/classpath/native/jni/native-lib/cpproc.c | 136 + libjava/classpath/native/jni/native-lib/cpproc.h | 52 + libjava/classpath/native/jni/qt-peer/Makefile.am | 3 +- libjava/classpath/native/jni/qt-peer/Makefile.in | 71 +- libjava/classpath/native/jni/xmlj/.cvsignore | 8 + libjava/classpath/native/jni/xmlj/Makefile.in | 11 +- libjava/classpath/native/plugin/Makefile.am | 2 +- libjava/classpath/native/plugin/Makefile.in | 13 +- libjava/classpath/native/plugin/gcjwebplugin.cc | 9 +- libjava/classpath/native/target/Linux/Makefile.am | 10 - libjava/classpath/native/target/Linux/Makefile.in | 454 - .../classpath/native/target/Linux/target_native.h | 79 - .../native/target/Linux/target_native_file.h | 79 - .../native/target/Linux/target_native_io.h | 78 - .../native/target/Linux/target_native_math_float.h | 80 - .../native/target/Linux/target_native_math_int.h | 80 - .../native/target/Linux/target_native_misc.h | 79 - .../native/target/Linux/target_native_network.h | 79 - libjava/classpath/native/target/Makefile.am | 5 - libjava/classpath/native/target/Makefile.in | 604 - .../classpath/native/target/generic/Makefile.am | 10 - .../classpath/native/target/generic/Makefile.in | 454 - .../native/target/generic/target_generic.h | 171 - .../native/target/generic/target_generic_file.h | 844 - .../native/target/generic/target_generic_io.h | 82 - .../target/generic/target_generic_math_float.h | 130 - .../target/generic/target_generic_math_int.h | 260 - .../native/target/generic/target_generic_misc.h | 203 - .../native/target/generic/target_generic_network.h | 1289 -- libjava/classpath/native/target/readme.txt | 149 - libjava/classpath/org/omg/CORBA/AnyHolder.java | 6 +- libjava/classpath/org/omg/CORBA/AnySeqHelper.java | 3 +- libjava/classpath/org/omg/CORBA/AnySeqHolder.java | 6 +- libjava/classpath/org/omg/CORBA/BooleanHolder.java | 6 +- .../classpath/org/omg/CORBA/BooleanSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/BooleanSeqHolder.java | 6 +- libjava/classpath/org/omg/CORBA/ByteHolder.java | 6 +- libjava/classpath/org/omg/CORBA/CharHolder.java | 6 +- libjava/classpath/org/omg/CORBA/CharSeqHelper.java | 3 +- libjava/classpath/org/omg/CORBA/CharSeqHolder.java | 6 +- libjava/classpath/org/omg/CORBA/Context.java | 6 +- libjava/classpath/org/omg/CORBA/CurrentHelper.java | 5 +- libjava/classpath/org/omg/CORBA/CustomValue.java | 5 +- .../classpath/org/omg/CORBA/DataOutputStream.java | 28 +- .../org/omg/CORBA/DefinitionKindHelper.java | 5 +- .../org/omg/CORBA/DomainManagerOperations.java | 4 +- libjava/classpath/org/omg/CORBA/DoubleHolder.java | 6 +- .../classpath/org/omg/CORBA/DoubleSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/DoubleSeqHolder.java | 6 +- libjava/classpath/org/omg/CORBA/DynAny.java | 10 +- libjava/classpath/org/omg/CORBA/DynSequence.java | 4 +- libjava/classpath/org/omg/CORBA/DynValue.java | 4 +- .../org/omg/CORBA/DynamicImplementation.java | 4 +- .../classpath/org/omg/CORBA/FieldNameHelper.java | 8 +- libjava/classpath/org/omg/CORBA/FixedHolder.java | 7 +- libjava/classpath/org/omg/CORBA/FloatHolder.java | 6 +- .../classpath/org/omg/CORBA/FloatSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/FloatSeqHolder.java | 6 +- .../classpath/org/omg/CORBA/IdentifierHelper.java | 8 +- libjava/classpath/org/omg/CORBA/IntHolder.java | 6 +- libjava/classpath/org/omg/CORBA/LocalObject.java | 12 +- libjava/classpath/org/omg/CORBA/LongHolder.java | 6 +- .../classpath/org/omg/CORBA/LongLongSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/LongLongSeqHolder.java | 6 +- libjava/classpath/org/omg/CORBA/LongSeqHelper.java | 3 +- libjava/classpath/org/omg/CORBA/LongSeqHolder.java | 10 +- libjava/classpath/org/omg/CORBA/ORB.java | 65 +- libjava/classpath/org/omg/CORBA/ObjectHelper.java | 3 +- libjava/classpath/org/omg/CORBA/ObjectHolder.java | 9 +- .../classpath/org/omg/CORBA/OctetSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/OctetSeqHolder.java | 6 +- .../org/omg/CORBA/PolicyErrorCodeHelper.java | 10 +- .../classpath/org/omg/CORBA/PolicyErrorHelper.java | 6 +- libjava/classpath/org/omg/CORBA/PolicyHelper.java | 5 +- .../classpath/org/omg/CORBA/PolicyListHelper.java | 14 +- .../classpath/org/omg/CORBA/PolicyTypeHelper.java | 3 +- .../classpath/org/omg/CORBA/PrincipalHolder.java | 6 +- .../org/omg/CORBA/RepositoryIdHelper.java | 8 +- libjava/classpath/org/omg/CORBA/Request.java | 8 +- libjava/classpath/org/omg/CORBA/ShortHolder.java | 6 +- .../classpath/org/omg/CORBA/ShortSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/ShortSeqHolder.java | 6 +- .../classpath/org/omg/CORBA/StringSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/StringSeqHolder.java | 6 +- .../org/omg/CORBA/ULongLongSeqHelper.java | 3 +- .../org/omg/CORBA/ULongLongSeqHolder.java | 6 +- .../classpath/org/omg/CORBA/ULongSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/ULongSeqHolder.java | 6 +- .../classpath/org/omg/CORBA/UShortSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/UShortSeqHolder.java | 6 +- .../classpath/org/omg/CORBA/ValueBaseHelper.java | 6 +- .../classpath/org/omg/CORBA/ValueBaseHolder.java | 3 +- .../classpath/org/omg/CORBA/VersionSpecHelper.java | 8 +- .../classpath/org/omg/CORBA/WCharSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/WCharSeqHolder.java | 10 +- .../classpath/org/omg/CORBA/WStringSeqHelper.java | 3 +- .../classpath/org/omg/CORBA/WStringSeqHolder.java | 6 +- .../org/omg/CORBA/WrongTransactionHelper.java | 3 +- libjava/classpath/org/omg/CORBA/_IDLTypeStub.java | 2 +- libjava/classpath/org/omg/CORBA/_PolicyStub.java | 4 +- .../org/omg/CORBA/portable/BoxedValueHelper.java | 8 +- .../classpath/org/omg/CORBA/portable/Delegate.java | 6 +- .../org/omg/CORBA/portable/ObjectImpl.java | 31 +- .../org/omg/CORBA/portable/ServantObject.java | 4 +- .../org/omg/CORBA/portable/StreamableValue.java | 4 +- .../org/omg/CORBA/portable/ValueFactory.java | 2 +- libjava/classpath/org/omg/CORBA_2_3/ORB.java | 11 +- .../org/omg/CORBA_2_3/portable/InputStream.java | 8 +- .../org/omg/CORBA_2_3/portable/OutputStream.java | 12 +- .../org/omg/CosNaming/BindingIteratorHelper.java | 7 +- .../classpath/org/omg/CosNaming/BindingType.java | 8 +- .../org/omg/CosNaming/BindingTypeHelper.java | 3 +- .../classpath/org/omg/CosNaming/IstringHelper.java | 10 +- .../org/omg/CosNaming/NameComponentHelper.java | 4 +- .../classpath/org/omg/CosNaming/NameHelper.java | 3 +- .../org/omg/CosNaming/NamingContextExtHelper.java | 7 +- .../NamingContextExtPackage/AddressHelper.java | 3 +- .../InvalidAddressHelper.java | 3 +- .../InvalidAddressHolder.java | 3 +- .../NamingContextExtPackage/StringNameHelper.java | 4 +- .../NamingContextExtPackage/URLStringHelper.java | 3 +- .../org/omg/CosNaming/NamingContextHelper.java | 9 +- .../NamingContextPackage/AlreadyBoundHelper.java | 3 +- .../NamingContextPackage/InvalidName.java | 3 +- .../NamingContextPackage/InvalidNameHelper.java | 3 +- .../CosNaming/NamingContextPackage/NotEmpty.java | 2 +- .../NamingContextPackage/NotEmptyHelper.java | 3 +- .../NamingContextPackage/NotFoundReasonHelper.java | 3 +- .../NamingContextPackage/NotFoundReasonHolder.java | 6 +- .../omg/CosNaming/_NamingContextExtImplBase.java | 4 +- .../org/omg/CosNaming/_NamingContextImplBase.java | 4 +- .../classpath/org/omg/DynamicAny/AnySeqHelper.java | 3 +- .../org/omg/DynamicAny/DynAnyFactoryHelper.java | 10 +- .../omg/DynamicAny/DynAnyFactoryOperations.java | 5 +- .../InconsistentTypeCodeHelper.java | 3 +- .../classpath/org/omg/DynamicAny/DynAnyHelper.java | 10 +- .../org/omg/DynamicAny/DynAnyOperations.java | 12 +- .../DynAnyPackage/InvalidValueHelper.java | 3 +- .../DynAnyPackage/TypeMismatchHelper.java | 3 +- .../org/omg/DynamicAny/DynAnySeqHelper.java | 6 +- .../org/omg/DynamicAny/DynArrayHelper.java | 12 +- .../org/omg/DynamicAny/DynEnumHelper.java | 10 +- .../org/omg/DynamicAny/DynFixedHelper.java | 10 +- .../org/omg/DynamicAny/DynSequenceHelper.java | 10 +- .../org/omg/DynamicAny/DynStructHelper.java | 10 +- .../org/omg/DynamicAny/DynStructOperations.java | 6 +- .../org/omg/DynamicAny/DynUnionHelper.java | 10 +- .../org/omg/DynamicAny/DynUnionOperations.java | 2 +- .../org/omg/DynamicAny/DynValueHelper.java | 10 +- .../org/omg/DynamicAny/FieldNameHelper.java | 8 +- .../org/omg/DynamicAny/NameDynAnyPairHelper.java | 4 +- .../omg/DynamicAny/NameDynAnyPairSeqHelper.java | 6 +- .../classpath/org/omg/IOP/CodecFactoryHelper.java | 12 +- .../CodecFactoryPackage/UnknownEncodingHelper.java | 3 +- libjava/classpath/org/omg/IOP/CodecOperations.java | 10 +- .../omg/IOP/CodecPackage/FormatMismatchHelper.java | 3 +- .../CodecPackage/InvalidTypeForEncodingHelper.java | 3 +- .../omg/IOP/CodecPackage/TypeMismatchHelper.java | 3 +- .../classpath/org/omg/IOP/ComponentIdHelper.java | 3 +- .../org/omg/IOP/ExceptionDetailMessage.java | 4 +- .../omg/IOP/MultipleComponentProfileHelper.java | 5 +- libjava/classpath/org/omg/IOP/ProfileIdHelper.java | 3 +- .../org/omg/IOP/ServiceContextListHelper.java | 7 +- libjava/classpath/org/omg/IOP/ServiceIdHelper.java | 3 +- libjava/classpath/org/omg/IOP/TAG_CODE_SETS.java | 4 +- .../ClientRequestInfoOperations.java | 5 +- .../ClientRequestInterceptorOperations.java | 4 +- .../org/omg/PortableInterceptor/CurrentHelper.java | 9 +- .../org/omg/PortableInterceptor/IORInfo.java | 4 +- .../IORInterceptor_3_0Helper.java | 3 +- .../org/omg/PortableInterceptor/ORBIdHelper.java | 8 +- .../PortableInterceptor/ORBInitInfoOperations.java | 12 +- .../ORBInitInfoPackage/InvalidNameHelper.java | 3 +- .../ORBInitializerOperations.java | 4 +- .../ObjectReferenceFactoryHelper.java | 3 +- .../ObjectReferenceTemplateHelper.java | 3 +- .../PortableInterceptor/RequestInfoOperations.java | 5 +- .../omg/PortableInterceptor/ServerIdHelper.java | 8 +- .../ServerRequestInfoOperations.java | 5 +- .../ServerRequestInterceptorOperations.java | 18 +- .../PortableServer/AdapterActivatorOperations.java | 4 +- .../org/omg/PortableServer/CurrentHelper.java | 4 +- .../CurrentPackage/NoContextHelper.java | 3 +- .../omg/PortableServer/ForwardRequestHelper.java | 3 +- .../PortableServer/IdAssignmentPolicyValue.java | 3 +- .../PortableServer/IdUniquenessPolicyValue.java | 3 +- .../ImplicitActivationPolicyValue.java | 3 +- .../omg/PortableServer/LifespanPolicyValue.java | 3 +- libjava/classpath/org/omg/PortableServer/POA.java | 6 +- .../org/omg/PortableServer/POAHelper.java | 6 +- .../POAManagerPackage/AdapterInactiveHelper.java | 1 - .../PortableServer/POAManagerPackage/State.java | 6 +- .../org/omg/PortableServer/POAOperations.java | 32 +- .../POAPackage/AdapterAlreadyExistsHelper.java | 3 +- .../POAPackage/AdapterNonExistentHelper.java | 3 +- .../PortableServer/POAPackage/InvalidPolicy.java | 6 +- .../PortableServer/POAPackage/NoServantHelper.java | 3 +- .../POAPackage/ObjectAlreadyActiveHelper.java | 3 +- .../POAPackage/ObjectNotActiveHelper.java | 3 +- .../POAPackage/ServantAlreadyActiveHelper.java | 3 +- .../POAPackage/ServantNotActiveHelper.java | 3 +- .../POAPackage/WrongAdapterHelper.java | 3 +- .../POAPackage/WrongPolicyHelper.java | 3 +- .../RequestProcessingPolicyValue.java | 3 +- .../classpath/org/omg/PortableServer/Servant.java | 9 +- .../omg/PortableServer/ServantActivatorHelper.java | 7 +- .../omg/PortableServer/ServantLocatorHelper.java | 8 +- .../PortableServer/ServantLocatorOperations.java | 4 +- .../ServantRetentionPolicyValue.java | 3 +- .../org/omg/PortableServer/ThreadPolicyValue.java | 3 +- .../omg/PortableServer/_ServantActivatorStub.java | 14 +- .../omg/PortableServer/_ServantLocatorStub.java | 2 +- .../org/omg/PortableServer/portable/Delegate.java | 6 +- .../org/omg/stub/java/rmi/_Remote_Stub.java | 2 +- libjava/classpath/resource/.cvsignore | 2 + .../resource/META-INF/services/.cvsignore | 1 + .../services/java.util.prefs.PreferencesFactory | 1 - libjava/classpath/resource/Makefile.am | 4 +- libjava/classpath/resource/Makefile.in | 15 +- .../tools/appletviewer/MessagesBundle.properties | 70 - .../appletviewer/MessagesBundle_de.properties | 75 - .../tools/appletviewer/messages.properties | 102 + .../gnu/classpath/tools/common/Messages.properties | 40 + .../gnu/classpath/tools/getopt/Messages.properties | 3 - .../tools/jarsigner/MessageBundle.properties | 33 + .../tools/keytool/MessageBundle.properties | 95 + .../gnu/classpath/tools/orbd/messages.properties | 46 + .../gnu/classpath/tools/rmic/messages.properties | 61 + .../gnu/classpath/tools/rmid/messages.properties | 50 + .../tools/rmiregistry/messages.properties | 48 + .../classpath/tools/tnameserv/messages.properties | 43 + .../java/util/regex/MessagesBundle_it.properties | 2 +- libjava/classpath/scripts/.cvsignore | 3 + libjava/classpath/scripts/Makefile.in | 11 +- libjava/classpath/scripts/build_mathnamespace | 6 + libjava/classpath/scripts/check_jni_methods.sh | 3 - libjava/classpath/scripts/checkstyle-config.xml | 132 + libjava/classpath/scripts/checkstyle-header.regex | 38 + .../classpath/scripts/checkstyle-suppressions.xml | 34 + libjava/classpath/scripts/checkstyle.css | 42 + libjava/classpath/scripts/checkstyle2html.xsl | 102 + libjava/classpath/scripts/classpath-build | 68 + libjava/classpath/scripts/classpath-daily | 17 + libjava/classpath/scripts/classpath.spec.in | 2 +- libjava/classpath/scripts/eclipse-gnu.xml | 246 + libjava/classpath/scripts/jalopy-gnu.xml | 378 + libjava/classpath/scripts/japi | 135 + libjava/classpath/scripts/kissme-mauve | 346 + libjava/classpath/scripts/loc | 44 + libjava/classpath/scripts/math_symbols | 69 + libjava/classpath/scripts/patches.pl | 164 + libjava/classpath/scripts/sanitize-jsr166 | 6 + libjava/classpath/scripts/timezones.pl | 366 + libjava/classpath/scripts/tzabbrevs | 40 + libjava/classpath/scripts/unicode-blocks.pl | 364 + libjava/classpath/scripts/unicode-muncher.pl | 868 + libjava/classpath/sun/misc/Service.java | 66 + .../sun/misc/ServiceConfigurationError.java | 64 + .../annotation/AnnotationInvocationHandler.java | 56 + .../sun/reflect/annotation/AnnotationParser.java | 57 + .../sun/reflect/annotation/AnnotationType.java | 52 + .../EnumConstantNotPresentExceptionProxy.java | 52 + .../sun/reflect/annotation/ExceptionProxy.java | 46 + libjava/classpath/tools/.cvsignore | 13 + libjava/classpath/tools/Makefile.am | 364 +- libjava/classpath/tools/Makefile.in | 782 +- .../asm/org/objectweb/asm/AnnotationVisitor.class | Bin 0 -> 481 bytes .../asm/org/objectweb/asm/AnnotationWriter.class | Bin 0 -> 5344 bytes .../tools/asm/org/objectweb/asm/Attribute.class | Bin 0 -> 2624 bytes .../tools/asm/org/objectweb/asm/ByteVector.class | Bin 0 -> 3259 bytes .../tools/asm/org/objectweb/asm/ClassAdapter.class | Bin 0 -> 2432 bytes .../tools/asm/org/objectweb/asm/ClassReader.class | Bin 0 -> 22135 bytes .../tools/asm/org/objectweb/asm/ClassVisitor.class | Bin 0 -> 894 bytes .../tools/asm/org/objectweb/asm/ClassWriter.class | Bin 0 -> 14071 bytes .../tools/asm/org/objectweb/asm/Edge.class | Bin 0 -> 360 bytes .../tools/asm/org/objectweb/asm/FieldVisitor.class | Bin 0 -> 295 bytes .../tools/asm/org/objectweb/asm/FieldWriter.class | Bin 0 -> 3658 bytes .../tools/asm/org/objectweb/asm/Handler.class | Bin 0 -> 428 bytes .../tools/asm/org/objectweb/asm/Item.class | Bin 0 -> 2190 bytes .../tools/asm/org/objectweb/asm/Label.class | Bin 0 -> 2561 bytes .../asm/org/objectweb/asm/MethodAdapter.class | Bin 0 -> 4363 bytes .../asm/org/objectweb/asm/MethodVisitor.class | Bin 0 -> 1464 bytes .../tools/asm/org/objectweb/asm/MethodWriter.class | Bin 0 -> 20587 bytes .../tools/asm/org/objectweb/asm/Opcodes.class | Bin 0 -> 5782 bytes .../tools/asm/org/objectweb/asm/Type.class | Bin 0 -> 7900 bytes .../objectweb/asm/attrs/StackMapAttribute.class | Bin 0 -> 6499 bytes .../org/objectweb/asm/attrs/StackMapFrame.class | Bin 0 -> 1113 bytes .../asm/attrs/StackMapTableAttribute.class | Bin 0 -> 10012 bytes .../asm/org/objectweb/asm/attrs/StackMapType.class | Bin 0 -> 2422 bytes .../org/objectweb/asm/commons/AdviceAdapter.class | Bin 0 -> 7757 bytes .../org/objectweb/asm/commons/EmptyVisitor.class | Bin 0 -> 5591 bytes .../objectweb/asm/commons/GeneratorAdapter.class | Bin 0 -> 18390 bytes .../asm/commons/LocalVariablesSorter.class | Bin 0 -> 2561 bytes .../asm/org/objectweb/asm/commons/Method.class | Bin 0 -> 3964 bytes .../asm/commons/SerialVersionUIDAdder$Item.class | Bin 0 -> 946 bytes .../asm/commons/SerialVersionUIDAdder.class | Bin 0 -> 5030 bytes .../objectweb/asm/commons/StaticInitMerger.class | Bin 0 -> 2143 bytes .../asm/commons/TableSwitchGenerator.class | Bin 0 -> 234 bytes .../optimizer/AnnotationConstantsCollector.class | Bin 0 -> 3362 bytes .../asm/optimizer/ClassConstantsCollector.class | Bin 0 -> 4468 bytes .../objectweb/asm/optimizer/ClassOptimizer.class | Bin 0 -> 4248 bytes .../asm/org/objectweb/asm/optimizer/Constant.class | Bin 0 -> 3227 bytes .../org/objectweb/asm/optimizer/ConstantPool.class | Bin 0 -> 4508 bytes .../asm/optimizer/FieldConstantsCollector.class | Bin 0 -> 1547 bytes .../org/objectweb/asm/optimizer/JarOptimizer.class | Bin 0 -> 2470 bytes .../asm/optimizer/MethodConstantsCollector.class | Bin 0 -> 4239 bytes .../objectweb/asm/optimizer/MethodOptimizer.class | Bin 0 -> 2621 bytes .../org/objectweb/asm/optimizer/NameMapping.class | Bin 0 -> 2533 bytes .../optimizer/Shrinker$ConstantComparator.class | Bin 0 -> 2004 bytes .../asm/org/objectweb/asm/optimizer/Shrinker.class | Bin 0 -> 4058 bytes .../objectweb/asm/signature/SignatureReader.class | Bin 0 -> 2803 bytes .../objectweb/asm/signature/SignatureVisitor.class | Bin 0 -> 808 bytes .../objectweb/asm/signature/SignatureWriter.class | Bin 0 -> 2981 bytes .../org/objectweb/asm/tree/AbstractInsnNode.class | Bin 0 -> 994 bytes .../org/objectweb/asm/tree/AnnotationNode.class | Bin 0 -> 2730 bytes .../asm/org/objectweb/asm/tree/ClassNode.class | Bin 0 -> 4574 bytes .../asm/org/objectweb/asm/tree/FieldInsnNode.class | Bin 0 -> 996 bytes .../asm/org/objectweb/asm/tree/FieldNode.class | Bin 0 -> 1958 bytes .../asm/org/objectweb/asm/tree/IincInsnNode.class | Bin 0 -> 749 bytes .../org/objectweb/asm/tree/InnerClassNode.class | Bin 0 -> 836 bytes .../asm/org/objectweb/asm/tree/InsnNode.class | Bin 0 -> 994 bytes .../asm/org/objectweb/asm/tree/IntInsnNode.class | Bin 0 -> 819 bytes .../asm/org/objectweb/asm/tree/JumpInsnNode.class | Bin 0 -> 874 bytes .../asm/org/objectweb/asm/tree/LabelNode.class | Bin 0 -> 736 bytes .../asm/org/objectweb/asm/tree/LdcInsnNode.class | Bin 0 -> 729 bytes .../org/objectweb/asm/tree/LineNumberNode.class | Bin 0 -> 709 bytes .../org/objectweb/asm/tree/LocalVariableNode.class | Bin 0 -> 1021 bytes .../objectweb/asm/tree/LookupSwitchInsnNode.class | Bin 0 -> 1655 bytes .../asm/org/objectweb/asm/tree/MemberNode.class | Bin 0 -> 1241 bytes .../org/objectweb/asm/tree/MethodInsnNode.class | Bin 0 -> 1000 bytes .../asm/org/objectweb/asm/tree/MethodNode$1.class | Bin 0 -> 803 bytes .../asm/org/objectweb/asm/tree/MethodNode.class | Bin 0 -> 8683 bytes .../asm/tree/MultiANewArrayInsnNode.class | Bin 0 -> 828 bytes .../objectweb/asm/tree/TableSwitchInsnNode.class | Bin 0 -> 1401 bytes .../org/objectweb/asm/tree/TryCatchBlockNode.class | Bin 0 -> 904 bytes .../asm/org/objectweb/asm/tree/TypeInsnNode.class | Bin 0 -> 858 bytes .../asm/org/objectweb/asm/tree/VarInsnNode.class | Bin 0 -> 815 bytes .../org/objectweb/asm/tree/analysis/Analyzer.class | Bin 0 -> 8867 bytes .../asm/tree/analysis/AnalyzerException.class | Bin 0 -> 1243 bytes .../asm/tree/analysis/BasicInterpreter.class | Bin 0 -> 5974 bytes .../objectweb/asm/tree/analysis/BasicValue.class | Bin 0 -> 1962 bytes .../asm/tree/analysis/BasicVerifier.class | Bin 0 -> 7836 bytes .../asm/tree/analysis/DataflowInterpreter.class | Bin 0 -> 4302 bytes .../asm/tree/analysis/DataflowValue.class | Bin 0 -> 1356 bytes .../org/objectweb/asm/tree/analysis/Frame.class | Bin 0 -> 10023 bytes .../org/objectweb/asm/tree/analysis/IntMap.class | Bin 0 -> 1230 bytes .../objectweb/asm/tree/analysis/Interpreter.class | Bin 0 -> 1312 bytes .../asm/tree/analysis/SimpleVerifier.class | Bin 0 -> 4833 bytes .../org/objectweb/asm/tree/analysis/SmallSet.class | Bin 0 -> 1641 bytes .../objectweb/asm/tree/analysis/Subroutine.class | Bin 0 -> 1836 bytes .../org/objectweb/asm/tree/analysis/Value.class | Bin 0 -> 147 bytes .../asm/util/ASMifierAbstractVisitor.class | Bin 0 -> 4875 bytes .../asm/util/ASMifierAnnotationVisitor.class | Bin 0 -> 2587 bytes .../objectweb/asm/util/ASMifierClassVisitor.class | Bin 0 -> 9817 bytes .../objectweb/asm/util/ASMifierFieldVisitor.class | Bin 0 -> 437 bytes .../objectweb/asm/util/ASMifierMethodVisitor.class | Bin 0 -> 7739 bytes .../org/objectweb/asm/util/AbstractVisitor.class | Bin 0 -> 3823 bytes .../asm/util/CheckAnnotationAdapter.class | Bin 0 -> 2766 bytes .../org/objectweb/asm/util/CheckClassAdapter.class | Bin 0 -> 9728 bytes .../org/objectweb/asm/util/CheckFieldAdapter.class | Bin 0 -> 1588 bytes .../objectweb/asm/util/CheckMethodAdapter.class | Bin 0 -> 13225 bytes .../objectweb/asm/util/TraceAbstractVisitor.class | Bin 0 -> 2593 bytes .../asm/util/TraceAnnotationVisitor.class | Bin 0 -> 5991 bytes .../org/objectweb/asm/util/TraceClassVisitor.class | Bin 0 -> 9174 bytes .../org/objectweb/asm/util/TraceFieldVisitor.class | Bin 0 -> 1141 bytes .../objectweb/asm/util/TraceMethodVisitor.class | Bin 0 -> 10058 bytes .../objectweb/asm/util/TraceSignatureVisitor.class | Bin 0 -> 4781 bytes .../asm/util/attrs/ASMStackMapAttribute.class | Bin 0 -> 5535 bytes .../asm/util/attrs/ASMStackMapTableAttribute.class | Bin 0 -> 5483 bytes .../org/objectweb/asm/util/attrs/ASMifiable.class | Bin 0 -> 210 bytes .../org/objectweb/asm/util/attrs/Traceable.class | Bin 0 -> 189 bytes .../ASMContentHandler$AnnotationDefaultRule.class | Bin 0 -> 1399 bytes ...ASMContentHandler$AnnotationParameterRule.class | Bin 0 -> 1849 bytes .../asm/xml/ASMContentHandler$AnnotationRule.class | Bin 0 -> 1890 bytes ...tentHandler$AnnotationValueAnnotationRule.class | Bin 0 -> 1576 bytes ...SMContentHandler$AnnotationValueArrayRule.class | Bin 0 -> 1497 bytes ...ASMContentHandler$AnnotationValueEnumRule.class | Bin 0 -> 1358 bytes .../ASMContentHandler$AnnotationValueRule.class | Bin 0 -> 1393 bytes .../asm/xml/ASMContentHandler$ClassRule.class | Bin 0 -> 1839 bytes .../asm/xml/ASMContentHandler$ExceptionRule.class | Bin 0 -> 1267 bytes .../asm/xml/ASMContentHandler$ExceptionsRule.class | Bin 0 -> 1802 bytes .../asm/xml/ASMContentHandler$FieldRule.class | Bin 0 -> 1851 bytes .../asm/xml/ASMContentHandler$InnerClassRule.class | Bin 0 -> 1433 bytes .../asm/xml/ASMContentHandler$InterfaceRule.class | Bin 0 -> 1267 bytes .../asm/xml/ASMContentHandler$InterfacesRule.class | Bin 0 -> 1867 bytes .../asm/xml/ASMContentHandler$LabelRule.class | Bin 0 -> 1268 bytes .../asm/xml/ASMContentHandler$LineNumberRule.class | Bin 0 -> 1457 bytes .../asm/xml/ASMContentHandler$LocalVarRule.class | Bin 0 -> 1709 bytes .../ASMContentHandler$LookupSwitchLabelRule.class | Bin 0 -> 1460 bytes .../xml/ASMContentHandler$LookupSwitchRule.class | Bin 0 -> 2474 bytes .../asm/xml/ASMContentHandler$MaxRule.class | Bin 0 -> 1312 bytes .../asm/xml/ASMContentHandler$MethodRule.class | Bin 0 -> 1704 bytes .../asm/xml/ASMContentHandler$Opcode.class | Bin 0 -> 525 bytes .../asm/xml/ASMContentHandler$OpcodeGroup.class | Bin 0 -> 594 bytes .../asm/xml/ASMContentHandler$OpcodesRule.class | Bin 0 -> 3082 bytes .../asm/xml/ASMContentHandler$OuterClassRule.class | Bin 0 -> 1331 bytes .../objectweb/asm/xml/ASMContentHandler$Rule.class | Bin 0 -> 4962 bytes .../asm/xml/ASMContentHandler$RuleSet.class | Bin 0 -> 2077 bytes .../asm/xml/ASMContentHandler$SourceRule.class | Bin 0 -> 1254 bytes .../ASMContentHandler$TableSwitchLabelRule.class | Bin 0 -> 1364 bytes .../xml/ASMContentHandler$TableSwitchRule.class | Bin 0 -> 2394 bytes .../asm/xml/ASMContentHandler$TryCatchRule.class | Bin 0 -> 1526 bytes .../org/objectweb/asm/xml/ASMContentHandler.class | Bin 0 -> 16825 bytes .../xml/Processor$ASMContentHandlerFactory.class | Bin 0 -> 839 bytes .../asm/xml/Processor$ContentHandlerFactory.class | Bin 0 -> 299 bytes .../objectweb/asm/xml/Processor$EntryElement.class | Bin 0 -> 367 bytes .../asm/xml/Processor$InputSlicingHandler.class | Bin 0 -> 2363 bytes .../asm/xml/Processor$OutputSlicingHandler.class | Bin 0 -> 3077 bytes .../asm/xml/Processor$ProtectedInputStream.class | Bin 0 -> 1130 bytes .../objectweb/asm/xml/Processor$SAXWriter.class | Bin 0 -> 4521 bytes .../asm/xml/Processor$SAXWriterFactory.class | Bin 0 -> 815 bytes .../asm/xml/Processor$SingleDocElement.class | Bin 0 -> 907 bytes .../xml/Processor$SubdocumentHandlerFactory.class | Bin 0 -> 749 bytes .../xml/Processor$TransformerHandlerFactory.class | Bin 0 -> 1724 bytes .../asm/xml/Processor$ZipEntryElement.class | Bin 0 -> 1140 bytes .../asm/org/objectweb/asm/xml/Processor.class | Bin 0 -> 11122 bytes .../asm/org/objectweb/asm/xml/SAXAdapter.class | Bin 0 -> 1848 bytes .../objectweb/asm/xml/SAXAnnotationAdapter.class | Bin 0 -> 4628 bytes .../org/objectweb/asm/xml/SAXClassAdapter.class | Bin 0 -> 6837 bytes .../asm/org/objectweb/asm/xml/SAXCodeAdapter.class | Bin 0 -> 7552 bytes .../org/objectweb/asm/xml/SAXFieldAdapter.class | Bin 0 -> 1719 bytes .../tools/appletviewer/AppletClassLoader.class | Bin 0 -> 935 bytes .../tools/appletviewer/AppletSecurityManager.class | Bin 0 -> 1193 bytes .../classpath/tools/appletviewer/AppletTag.class | Bin 0 -> 8668 bytes .../tools/appletviewer/CommonAppletContext.class | Bin 0 -> 2750 bytes .../tools/appletviewer/CommonAppletStub.class | Bin 0 -> 1891 bytes .../classpath/tools/appletviewer/ErrorApplet.class | Bin 0 -> 648 bytes .../gnu/classpath/tools/appletviewer/Main$1.class | Bin 0 -> 828 bytes .../gnu/classpath/tools/appletviewer/Main$10.class | Bin 0 -> 801 bytes .../gnu/classpath/tools/appletviewer/Main$2.class | Bin 0 -> 828 bytes .../gnu/classpath/tools/appletviewer/Main$3.class | Bin 0 -> 828 bytes .../gnu/classpath/tools/appletviewer/Main$4.class | Bin 0 -> 973 bytes .../gnu/classpath/tools/appletviewer/Main$5.class | Bin 0 -> 974 bytes .../gnu/classpath/tools/appletviewer/Main$6.class | Bin 0 -> 915 bytes .../gnu/classpath/tools/appletviewer/Main$7.class | Bin 0 -> 1067 bytes .../gnu/classpath/tools/appletviewer/Main$8.class | Bin 0 -> 831 bytes .../gnu/classpath/tools/appletviewer/Main$9.class | Bin 0 -> 799 bytes .../gnu/classpath/tools/appletviewer/Main.class | Bin 0 -> 8053 bytes .../classpath/tools/appletviewer/Messages.class | Bin 0 -> 1169 bytes .../tools/appletviewer/PluginAppletContext.class | Bin 0 -> 1320 bytes .../tools/appletviewer/PluginAppletViewer.class | Bin 0 -> 3918 bytes .../tools/appletviewer/PluginAppletWindow.class | Bin 0 -> 8194 bytes .../appletviewer/StandaloneAppletContext.class | Bin 0 -> 1397 bytes .../appletviewer/StandaloneAppletViewer.class | Bin 0 -> 4309 bytes .../appletviewer/StandaloneAppletWindow$1.class | Bin 0 -> 1119 bytes .../appletviewer/StandaloneAppletWindow.class | Bin 0 -> 11928 bytes .../classpath/tools/appletviewer/TagParser.class | Bin 0 -> 6630 bytes .../gnu/classpath/tools/common/CallbackUtil.class | Bin 0 -> 2816 bytes .../tools/common/ClasspathToolParser$1.class | Bin 0 -> 1028 bytes .../tools/common/ClasspathToolParser.class | Bin 0 -> 1394 bytes .../gnu/classpath/tools/common/Messages.class | Bin 0 -> 1151 bytes .../tools/common/Persistent$ExitTask.class | Bin 0 -> 532 bytes .../gnu/classpath/tools/common/Persistent.class | Bin 0 -> 570 bytes .../classpath/tools/common/ProviderUtil$1.class | Bin 0 -> 891 bytes .../classpath/tools/common/ProviderUtil$2.class | Bin 0 -> 705 bytes .../gnu/classpath/tools/common/ProviderUtil.class | Bin 0 -> 2879 bytes .../tools/common/SecurityProviderInfo.class | Bin 0 -> 1215 bytes .../tools/getopt/FileArgumentCallback.class | Bin 0 -> 459 bytes .../gnu/classpath/tools/getopt/Messages.class | Bin 0 -> 1151 bytes .../gnu/classpath/tools/getopt/Option.class | Bin 0 -> 2640 bytes .../classpath/tools/getopt/OptionException.class | Bin 0 -> 391 bytes .../gnu/classpath/tools/getopt/OptionGroup.class | Bin 0 -> 3894 bytes .../gnu/classpath/tools/getopt/Parser$1.class | Bin 0 -> 1061 bytes .../gnu/classpath/tools/getopt/Parser$2.class | Bin 0 -> 1119 bytes .../gnu/classpath/tools/getopt/Parser$3.class | Bin 0 -> 904 bytes .../gnu/classpath/tools/getopt/Parser.class | Bin 0 -> 8099 bytes .../classes/gnu/classpath/tools/jar/Action.class | Bin 0 -> 393 bytes .../classes/gnu/classpath/tools/jar/Creator.class | Bin 0 -> 6303 bytes .../classes/gnu/classpath/tools/jar/Entry.class | Bin 0 -> 634 bytes .../gnu/classpath/tools/jar/Extractor.class | Bin 0 -> 2938 bytes .../classes/gnu/classpath/tools/jar/Indexer.class | Bin 0 -> 4105 bytes .../classes/gnu/classpath/tools/jar/Lister.class | Bin 0 -> 2941 bytes .../classes/gnu/classpath/tools/jar/Main$1.class | Bin 0 -> 964 bytes .../classes/gnu/classpath/tools/jar/Main$2.class | Bin 0 -> 903 bytes .../classes/gnu/classpath/tools/jar/Main$3.class | Bin 0 -> 899 bytes .../classes/gnu/classpath/tools/jar/Main$4.class | Bin 0 -> 904 bytes .../classes/gnu/classpath/tools/jar/Main$5.class | Bin 0 -> 1014 bytes .../classes/gnu/classpath/tools/jar/Main$6.class | Bin 0 -> 966 bytes .../gnu/classpath/tools/jar/Main$HandleFile.class | Bin 0 -> 1151 bytes .../gnu/classpath/tools/jar/Main$JarParser.class | Bin 0 -> 1469 bytes .../gnu/classpath/tools/jar/Main$ModeOption.class | Bin 0 -> 1413 bytes .../classes/gnu/classpath/tools/jar/Main.class | Bin 0 -> 4933 bytes .../classes/gnu/classpath/tools/jar/Messages.class | Bin 0 -> 1142 bytes .../classes/gnu/classpath/tools/jar/Updater.class | Bin 0 -> 2403 bytes .../classes/gnu/classpath/tools/jar/WorkSet.class | Bin 0 -> 1498 bytes .../gnu/classpath/tools/jarsigner/HashUtils.class | Bin 0 -> 2539 bytes .../gnu/classpath/tools/jarsigner/JarSigner.class | Bin 0 -> 5541 bytes .../classpath/tools/jarsigner/JarVerifier.class | Bin 0 -> 9109 bytes .../gnu/classpath/tools/jarsigner/Main$1.class | Bin 0 -> 1187 bytes .../gnu/classpath/tools/jarsigner/Main$10.class | Bin 0 -> 1136 bytes .../gnu/classpath/tools/jarsigner/Main$11.class | Bin 0 -> 1138 bytes .../gnu/classpath/tools/jarsigner/Main$12.class | Bin 0 -> 1201 bytes .../gnu/classpath/tools/jarsigner/Main$2.class | Bin 0 -> 1188 bytes .../gnu/classpath/tools/jarsigner/Main$3.class | Bin 0 -> 1192 bytes .../gnu/classpath/tools/jarsigner/Main$4.class | Bin 0 -> 1190 bytes .../gnu/classpath/tools/jarsigner/Main$5.class | Bin 0 -> 1193 bytes .../gnu/classpath/tools/jarsigner/Main$6.class | Bin 0 -> 1199 bytes .../gnu/classpath/tools/jarsigner/Main$7.class | Bin 0 -> 1130 bytes .../gnu/classpath/tools/jarsigner/Main$8.class | Bin 0 -> 1129 bytes .../gnu/classpath/tools/jarsigner/Main$9.class | Bin 0 -> 1131 bytes .../tools/jarsigner/Main$ToolParser.class | Bin 0 -> 3938 bytes .../tools/jarsigner/Main$ToolParserCallback.class | Bin 0 -> 1000 bytes .../gnu/classpath/tools/jarsigner/Main.class | Bin 0 -> 11988 bytes .../gnu/classpath/tools/jarsigner/Messages.class | Bin 0 -> 2620 bytes .../gnu/classpath/tools/jarsigner/SFHelper.class | Bin 0 -> 11138 bytes .../gnu/classpath/tools/javah/ClassWrapper.class | Bin 0 -> 7779 bytes .../classpath/tools/javah/CniIncludePrinter.class | Bin 0 -> 1928 bytes .../gnu/classpath/tools/javah/CniPrintStream.class | Bin 0 -> 5058 bytes .../gnu/classpath/tools/javah/CniStubPrinter.class | Bin 0 -> 3940 bytes .../gnu/classpath/tools/javah/FieldHelper.class | Bin 0 -> 2203 bytes .../gnu/classpath/tools/javah/JniHelper.class | Bin 0 -> 2997 bytes .../classpath/tools/javah/JniIncludePrinter.class | Bin 0 -> 4343 bytes .../gnu/classpath/tools/javah/JniPrintStream.class | Bin 0 -> 3119 bytes .../gnu/classpath/tools/javah/JniStubPrinter.class | Bin 0 -> 3407 bytes .../gnu/classpath/tools/javah/Keywords.class | Bin 0 -> 2625 bytes .../classes/gnu/classpath/tools/javah/Main$1.class | Bin 0 -> 1002 bytes .../gnu/classpath/tools/javah/Main$10.class | Bin 0 -> 928 bytes .../classes/gnu/classpath/tools/javah/Main$2.class | Bin 0 -> 1106 bytes .../classes/gnu/classpath/tools/javah/Main$3.class | Bin 0 -> 1111 bytes .../classes/gnu/classpath/tools/javah/Main$4.class | Bin 0 -> 994 bytes .../classes/gnu/classpath/tools/javah/Main$5.class | Bin 0 -> 1056 bytes .../classes/gnu/classpath/tools/javah/Main$6.class | Bin 0 -> 926 bytes .../classes/gnu/classpath/tools/javah/Main$7.class | Bin 0 -> 1004 bytes .../classes/gnu/classpath/tools/javah/Main$8.class | Bin 0 -> 924 bytes .../classes/gnu/classpath/tools/javah/Main$9.class | Bin 0 -> 928 bytes .../classes/gnu/classpath/tools/javah/Main.class | Bin 0 -> 10324 bytes .../gnu/classpath/tools/javah/MethodHelper.class | Bin 0 -> 3041 bytes .../gnu/classpath/tools/javah/PackageWrapper.class | Bin 0 -> 500 bytes .../classpath/tools/javah/PathOptionGroup$1.class | Bin 0 -> 939 bytes .../classpath/tools/javah/PathOptionGroup$2.class | Bin 0 -> 1104 bytes .../classpath/tools/javah/PathOptionGroup$3.class | Bin 0 -> 1103 bytes .../classpath/tools/javah/PathOptionGroup$4.class | Bin 0 -> 1108 bytes .../classpath/tools/javah/PathOptionGroup$5.class | Bin 0 -> 1107 bytes .../classpath/tools/javah/PathOptionGroup.class | Bin 0 -> 3120 bytes .../gnu/classpath/tools/javah/Printer.class | Bin 0 -> 2145 bytes .../classes/gnu/classpath/tools/javah/Text.class | Bin 0 -> 565 bytes .../gnu/classpath/tools/keytool/CACertCmd$1.class | Bin 0 -> 1036 bytes .../gnu/classpath/tools/keytool/CACertCmd$2.class | Bin 0 -> 1030 bytes .../gnu/classpath/tools/keytool/CACertCmd$3.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/CACertCmd$4.class | Bin 0 -> 1034 bytes .../gnu/classpath/tools/keytool/CACertCmd$5.class | Bin 0 -> 1041 bytes .../gnu/classpath/tools/keytool/CACertCmd$6.class | Bin 0 -> 972 bytes .../gnu/classpath/tools/keytool/CACertCmd.class | Bin 0 -> 6606 bytes .../gnu/classpath/tools/keytool/CertReqCmd$1.class | Bin 0 -> 1035 bytes .../classpath/tools/keytool/CertReqCmd$10.class | Bin 0 -> 987 bytes .../gnu/classpath/tools/keytool/CertReqCmd$2.class | Bin 0 -> 1042 bytes .../gnu/classpath/tools/keytool/CertReqCmd$3.class | Bin 0 -> 1045 bytes .../gnu/classpath/tools/keytool/CertReqCmd$4.class | Bin 0 -> 1038 bytes .../gnu/classpath/tools/keytool/CertReqCmd$5.class | Bin 0 -> 1036 bytes .../gnu/classpath/tools/keytool/CertReqCmd$6.class | Bin 0 -> 1035 bytes .../gnu/classpath/tools/keytool/CertReqCmd$7.class | Bin 0 -> 1040 bytes .../gnu/classpath/tools/keytool/CertReqCmd$8.class | Bin 0 -> 1047 bytes .../gnu/classpath/tools/keytool/CertReqCmd$9.class | Bin 0 -> 978 bytes .../gnu/classpath/tools/keytool/CertReqCmd.class | Bin 0 -> 10386 bytes .../tools/keytool/Command$ShutdownHook.class | Bin 0 -> 780 bytes .../gnu/classpath/tools/keytool/Command.class | Bin 0 -> 19742 bytes .../gnu/classpath/tools/keytool/DeleteCmd$1.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/DeleteCmd$2.class | Bin 0 -> 1030 bytes .../gnu/classpath/tools/keytool/DeleteCmd$3.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/DeleteCmd$4.class | Bin 0 -> 1034 bytes .../gnu/classpath/tools/keytool/DeleteCmd$5.class | Bin 0 -> 1041 bytes .../gnu/classpath/tools/keytool/DeleteCmd$6.class | Bin 0 -> 972 bytes .../gnu/classpath/tools/keytool/DeleteCmd.class | Bin 0 -> 5720 bytes .../gnu/classpath/tools/keytool/ExportCmd$1.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/ExportCmd$2.class | Bin 0 -> 1036 bytes .../gnu/classpath/tools/keytool/ExportCmd$3.class | Bin 0 -> 1030 bytes .../gnu/classpath/tools/keytool/ExportCmd$4.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/ExportCmd$5.class | Bin 0 -> 1034 bytes .../gnu/classpath/tools/keytool/ExportCmd$6.class | Bin 0 -> 1041 bytes .../gnu/classpath/tools/keytool/ExportCmd$7.class | Bin 0 -> 968 bytes .../gnu/classpath/tools/keytool/ExportCmd$8.class | Bin 0 -> 972 bytes .../gnu/classpath/tools/keytool/ExportCmd.class | Bin 0 -> 6748 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$1.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$10.class | Bin 0 -> 1036 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$11.class | Bin 0 -> 1043 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$12.class | Bin 0 -> 974 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$2.class | Bin 0 -> 1036 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$3.class | Bin 0 -> 1034 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$4.class | Bin 0 -> 1036 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$5.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$6.class | Bin 0 -> 1032 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$7.class | Bin 0 -> 1035 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$8.class | Bin 0 -> 1030 bytes .../gnu/classpath/tools/keytool/GenKeyCmd$9.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/GenKeyCmd.class | Bin 0 -> 12086 bytes .../classpath/tools/keytool/IdentityDBCmd$1.class | Bin 0 -> 1059 bytes .../classpath/tools/keytool/IdentityDBCmd$2.class | Bin 0 -> 1054 bytes .../classpath/tools/keytool/IdentityDBCmd$3.class | Bin 0 -> 1053 bytes .../classpath/tools/keytool/IdentityDBCmd$4.class | Bin 0 -> 1058 bytes .../classpath/tools/keytool/IdentityDBCmd$5.class | Bin 0 -> 1065 bytes .../classpath/tools/keytool/IdentityDBCmd$6.class | Bin 0 -> 996 bytes .../classpath/tools/keytool/IdentityDBCmd.class | Bin 0 -> 4563 bytes .../gnu/classpath/tools/keytool/ImportCmd$1.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/ImportCmd$10.class | Bin 0 -> 974 bytes .../gnu/classpath/tools/keytool/ImportCmd$2.class | Bin 0 -> 1036 bytes .../gnu/classpath/tools/keytool/ImportCmd$3.class | Bin 0 -> 1032 bytes .../gnu/classpath/tools/keytool/ImportCmd$4.class | Bin 0 -> 973 bytes .../gnu/classpath/tools/keytool/ImportCmd$5.class | Bin 0 -> 977 bytes .../gnu/classpath/tools/keytool/ImportCmd$6.class | Bin 0 -> 1030 bytes .../gnu/classpath/tools/keytool/ImportCmd$7.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/ImportCmd$8.class | Bin 0 -> 1034 bytes .../gnu/classpath/tools/keytool/ImportCmd$9.class | Bin 0 -> 1041 bytes .../gnu/classpath/tools/keytool/ImportCmd.class | Bin 0 -> 17535 bytes .../classpath/tools/keytool/KeyCloneCmd$1.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/KeyCloneCmd$2.class | Bin 0 -> 1045 bytes .../classpath/tools/keytool/KeyCloneCmd$3.class | Bin 0 -> 1044 bytes .../classpath/tools/keytool/KeyCloneCmd$4.class | Bin 0 -> 1047 bytes .../classpath/tools/keytool/KeyCloneCmd$5.class | Bin 0 -> 1042 bytes .../classpath/tools/keytool/KeyCloneCmd$6.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/KeyCloneCmd$7.class | Bin 0 -> 1046 bytes .../classpath/tools/keytool/KeyCloneCmd$8.class | Bin 0 -> 1053 bytes .../classpath/tools/keytool/KeyCloneCmd$9.class | Bin 0 -> 984 bytes .../gnu/classpath/tools/keytool/KeyCloneCmd.class | Bin 0 -> 8733 bytes .../classpath/tools/keytool/KeyPasswdCmd$1.class | Bin 0 -> 1047 bytes .../classpath/tools/keytool/KeyPasswdCmd$2.class | Bin 0 -> 1050 bytes .../classpath/tools/keytool/KeyPasswdCmd$3.class | Bin 0 -> 1053 bytes .../classpath/tools/keytool/KeyPasswdCmd$4.class | Bin 0 -> 1048 bytes .../classpath/tools/keytool/KeyPasswdCmd$5.class | Bin 0 -> 1047 bytes .../classpath/tools/keytool/KeyPasswdCmd$6.class | Bin 0 -> 1052 bytes .../classpath/tools/keytool/KeyPasswdCmd$7.class | Bin 0 -> 1059 bytes .../classpath/tools/keytool/KeyPasswdCmd$8.class | Bin 0 -> 990 bytes .../gnu/classpath/tools/keytool/KeyPasswdCmd.class | Bin 0 -> 8305 bytes .../gnu/classpath/tools/keytool/ListCmd$1.class | Bin 0 -> 1017 bytes .../gnu/classpath/tools/keytool/ListCmd$2.class | Bin 0 -> 1018 bytes .../gnu/classpath/tools/keytool/ListCmd$3.class | Bin 0 -> 1017 bytes .../gnu/classpath/tools/keytool/ListCmd$4.class | Bin 0 -> 1022 bytes .../gnu/classpath/tools/keytool/ListCmd$5.class | Bin 0 -> 1029 bytes .../gnu/classpath/tools/keytool/ListCmd$6.class | Bin 0 -> 960 bytes .../gnu/classpath/tools/keytool/ListCmd$7.class | Bin 0 -> 956 bytes .../gnu/classpath/tools/keytool/ListCmd.class | Bin 0 -> 8719 bytes .../tools/keytool/Main$NoParseOption.class | Bin 0 -> 1130 bytes .../tools/keytool/Main$ShutdownHook.class | Bin 0 -> 756 bytes .../classes/gnu/classpath/tools/keytool/Main.class | Bin 0 -> 8761 bytes .../gnu/classpath/tools/keytool/Messages.class | Bin 0 -> 2614 bytes .../classpath/tools/keytool/PrintCertCmd$1.class | Bin 0 -> 1054 bytes .../classpath/tools/keytool/PrintCertCmd$2.class | Bin 0 -> 990 bytes .../gnu/classpath/tools/keytool/PrintCertCmd.class | Bin 0 -> 3871 bytes .../classpath/tools/keytool/SelfCertCmd$1.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/SelfCertCmd$10.class | Bin 0 -> 986 bytes .../classpath/tools/keytool/SelfCertCmd$2.class | Bin 0 -> 1048 bytes .../classpath/tools/keytool/SelfCertCmd$3.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/SelfCertCmd$4.class | Bin 0 -> 1044 bytes .../classpath/tools/keytool/SelfCertCmd$5.class | Bin 0 -> 1047 bytes .../classpath/tools/keytool/SelfCertCmd$6.class | Bin 0 -> 1042 bytes .../classpath/tools/keytool/SelfCertCmd$7.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/SelfCertCmd$8.class | Bin 0 -> 1046 bytes .../classpath/tools/keytool/SelfCertCmd$9.class | Bin 0 -> 1053 bytes .../gnu/classpath/tools/keytool/SelfCertCmd.class | Bin 0 -> 8750 bytes .../classpath/tools/keytool/StorePasswdCmd$1.class | Bin 0 -> 1065 bytes .../classpath/tools/keytool/StorePasswdCmd$2.class | Bin 0 -> 1060 bytes .../classpath/tools/keytool/StorePasswdCmd$3.class | Bin 0 -> 1059 bytes .../classpath/tools/keytool/StorePasswdCmd$4.class | Bin 0 -> 1064 bytes .../classpath/tools/keytool/StorePasswdCmd$5.class | Bin 0 -> 1071 bytes .../classpath/tools/keytool/StorePasswdCmd$6.class | Bin 0 -> 1002 bytes .../classpath/tools/keytool/StorePasswdCmd.class | Bin 0 -> 7050 bytes .../classpath/tools/native2ascii/Messages.class | Bin 0 -> 1169 bytes .../tools/native2ascii/Native2ASCII$1.class | Bin 0 -> 1264 bytes .../tools/native2ascii/Native2ASCII$2.class | Bin 0 -> 1019 bytes .../native2ascii/Native2ASCII$HandleFile.class | Bin 0 -> 1088 bytes .../tools/native2ascii/Native2ASCII.class | Bin 0 -> 4073 bytes .../classes/gnu/classpath/tools/orbd/Main$1.class | Bin 0 -> 1106 bytes .../classes/gnu/classpath/tools/orbd/Main$2.class | Bin 0 -> 1052 bytes .../classes/gnu/classpath/tools/orbd/Main$3.class | Bin 0 -> 1048 bytes .../classes/gnu/classpath/tools/orbd/Main$4.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/orbd/Main$5.class | Bin 0 -> 721 bytes .../classes/gnu/classpath/tools/orbd/Main.class | Bin 0 -> 5449 bytes .../gnu/classpath/tools/orbd/Messages.class | Bin 0 -> 1145 bytes .../classpath/tools/orbd/PersistentContext.class | Bin 0 -> 3047 bytes .../tools/orbd/PersistentContextMap.class | Bin 0 -> 1138 bytes .../classpath/tools/orbd/PersistentMap$Entry.class | Bin 0 -> 2453 bytes .../gnu/classpath/tools/orbd/PersistentMap.class | Bin 0 -> 5523 bytes .../tools/rmic/AbstractMethodGenerator.class | Bin 0 -> 232 bytes .../tools/rmic/ClassRmicCompiler$MethodRef.class | Bin 0 -> 2725 bytes .../classpath/tools/rmic/ClassRmicCompiler.class | Bin 0 -> 30617 bytes .../classpath/tools/rmic/CompilationError.class | Bin 0 -> 624 bytes .../gnu/classpath/tools/rmic/Generator.class | Bin 0 -> 2992 bytes .../classes/gnu/classpath/tools/rmic/GiopIo.class | Bin 0 -> 2777 bytes .../gnu/classpath/tools/rmic/HashFinder.class | Bin 0 -> 1064 bytes .../classes/gnu/classpath/tools/rmic/Main$1.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmic/Main$10.class | Bin 0 -> 971 bytes .../classes/gnu/classpath/tools/rmic/Main$11.class | Bin 0 -> 900 bytes .../classes/gnu/classpath/tools/rmic/Main$12.class | Bin 0 -> 971 bytes .../classes/gnu/classpath/tools/rmic/Main$13.class | Bin 0 -> 971 bytes .../classes/gnu/classpath/tools/rmic/Main$14.class | Bin 0 -> 971 bytes .../classes/gnu/classpath/tools/rmic/Main$15.class | Bin 0 -> 1039 bytes .../classes/gnu/classpath/tools/rmic/Main$16.class | Bin 0 -> 972 bytes .../classes/gnu/classpath/tools/rmic/Main$17.class | Bin 0 -> 1039 bytes .../classes/gnu/classpath/tools/rmic/Main$18.class | Bin 0 -> 900 bytes .../classes/gnu/classpath/tools/rmic/Main$2.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmic/Main$3.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmic/Main$4.class | Bin 0 -> 1048 bytes .../classes/gnu/classpath/tools/rmic/Main$5.class | Bin 0 -> 1048 bytes .../classes/gnu/classpath/tools/rmic/Main$6.class | Bin 0 -> 960 bytes .../classes/gnu/classpath/tools/rmic/Main$7.class | Bin 0 -> 960 bytes .../classes/gnu/classpath/tools/rmic/Main$8.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmic/Main$9.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmic/Main.class | Bin 0 -> 6058 bytes .../gnu/classpath/tools/rmic/Messages.class | Bin 0 -> 1145 bytes .../gnu/classpath/tools/rmic/MethodGenerator.class | Bin 0 -> 5369 bytes .../gnu/classpath/tools/rmic/RMICException.class | Bin 0 -> 555 bytes .../classpath/tools/rmic/RmiMethodGenerator.class | Bin 0 -> 5210 bytes .../gnu/classpath/tools/rmic/RmicBackend.class | Bin 0 -> 271 bytes .../tools/rmic/SourceGiopRmicCompiler.class | Bin 0 -> 12424 bytes .../classpath/tools/rmic/SourceRmicCompiler.class | Bin 0 -> 3890 bytes .../gnu/classpath/tools/rmic/Variables.class | Bin 0 -> 3290 bytes .../gnu/classpath/tools/rmic/WrapUnWrapper.class | Bin 0 -> 1244 bytes .../tools/rmid/ActivationSystemImpl.class | Bin 0 -> 5243 bytes .../tools/rmid/ActivationSystemImpl_Stub.class | Bin 0 -> 8775 bytes .../classes/gnu/classpath/tools/rmid/Main$1.class | Bin 0 -> 1084 bytes .../classes/gnu/classpath/tools/rmid/Main$2.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmid/Main$3.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmid/Main$4.class | Bin 0 -> 969 bytes .../classes/gnu/classpath/tools/rmid/Main$5.class | Bin 0 -> 1048 bytes .../classes/gnu/classpath/tools/rmid/Main$6.class | Bin 0 -> 983 bytes .../classes/gnu/classpath/tools/rmid/Main.class | Bin 0 -> 5921 bytes .../gnu/classpath/tools/rmid/Messages.class | Bin 0 -> 1145 bytes .../PersistentBidiHashTable$AdaptedReader.class | Bin 0 -> 1111 bytes .../PersistentBidiHashTable$WriteToDiskTask.class | Bin 0 -> 755 bytes .../tools/rmid/PersistentBidiHashTable.class | Bin 0 -> 4185 bytes .../gnu/classpath/tools/rmiregistry/Main$1.class | Bin 0 -> 1011 bytes .../gnu/classpath/tools/rmiregistry/Main$2.class | Bin 0 -> 1011 bytes .../gnu/classpath/tools/rmiregistry/Main$3.class | Bin 0 -> 1011 bytes .../gnu/classpath/tools/rmiregistry/Main$4.class | Bin 0 -> 1090 bytes .../gnu/classpath/tools/rmiregistry/Main$5.class | Bin 0 -> 965 bytes .../gnu/classpath/tools/rmiregistry/Main$6.class | Bin 0 -> 883 bytes .../gnu/classpath/tools/rmiregistry/Main.class | Bin 0 -> 5715 bytes .../gnu/classpath/tools/rmiregistry/Messages.class | Bin 0 -> 1166 bytes .../PersistentHashTable$WriteToDiskTask.class | Bin 0 -> 766 bytes .../tools/rmiregistry/PersistentHashTable.class | Bin 0 -> 4109 bytes .../classpath/tools/rmiregistry/RegistryImpl.class | Bin 0 -> 2942 bytes .../tools/rmiregistry/RegistryImpl_Skel.class | Bin 0 -> 4191 bytes .../tools/rmiregistry/RegistryImpl_Stub.class | Bin 0 -> 3829 bytes .../gnu/classpath/tools/serialver/Messages.class | Bin 0 -> 1160 bytes .../classpath/tools/serialver/SerialVer$1.class | Bin 0 -> 1171 bytes .../classpath/tools/serialver/SerialVer$2.class | Bin 0 -> 1197 bytes .../classpath/tools/serialver/SerialVer$3.class | Bin 0 -> 950 bytes .../gnu/classpath/tools/serialver/SerialVer.class | Bin 0 -> 4402 bytes .../gnu/classpath/tools/tnameserv/Main$1.class | Bin 0 -> 1136 bytes .../gnu/classpath/tools/tnameserv/Main$2.class | Bin 0 -> 1082 bytes .../gnu/classpath/tools/tnameserv/Main.class | Bin 0 -> 2391 bytes .../gnu/classpath/tools/tnameserv/Messages.class | Bin 0 -> 1160 bytes libjava/classpath/tools/external/README | 9 + libjava/classpath/tools/external/asm/LICENSE.txt | 28 + .../asm/org/objectweb/asm/AnnotationVisitor.java | 88 + .../asm/org/objectweb/asm/AnnotationWriter.java | 311 + .../external/asm/org/objectweb/asm/Attribute.java | 254 + .../external/asm/org/objectweb/asm/ByteVector.java | 293 + .../asm/org/objectweb/asm/ClassAdapter.java | 121 + .../asm/org/objectweb/asm/ClassReader.java | 1606 ++ .../asm/org/objectweb/asm/ClassVisitor.java | 195 + .../asm/org/objectweb/asm/ClassWriter.java | 1162 ++ .../tools/external/asm/org/objectweb/asm/Edge.java | 57 + .../asm/org/objectweb/asm/FieldVisitor.java | 63 + .../asm/org/objectweb/asm/FieldWriter.java | 276 + .../external/asm/org/objectweb/asm/Handler.java | 70 + .../tools/external/asm/org/objectweb/asm/Item.java | 252 + .../external/asm/org/objectweb/asm/Label.java | 299 + .../asm/org/objectweb/asm/MethodAdapter.java | 185 + .../asm/org/objectweb/asm/MethodVisitor.java | 334 + .../asm/org/objectweb/asm/MethodWriter.java | 2022 +++ .../external/asm/org/objectweb/asm/Opcodes.java | 295 + .../tools/external/asm/org/objectweb/asm/Type.java | 760 + .../org/objectweb/asm/attrs/StackMapAttribute.java | 378 + .../asm/org/objectweb/asm/attrs/StackMapFrame.java | 82 + .../asm/attrs/StackMapTableAttribute.java | 927 ++ .../asm/org/objectweb/asm/attrs/StackMapType.java | 114 + .../asm/org/objectweb/asm/attrs/package.html | 48 + .../org/objectweb/asm/commons/AdviceAdapter.java | 643 + .../org/objectweb/asm/commons/EmptyVisitor.java | 211 + .../objectweb/asm/commons/GeneratorAdapter.java | 1454 ++ .../asm/commons/LocalVariablesSorter.java | 136 + .../asm/org/objectweb/asm/commons/Method.java | 220 + .../asm/commons/SerialVersionUIDAdder.java | 490 + .../objectweb/asm/commons/StaticInitMerger.java | 99 + .../asm/commons/TableSwitchGenerator.java | 55 + .../asm/org/objectweb/asm/commons/package.html | 33 + .../optimizer/AnnotationConstantsCollector.java | 150 + .../asm/optimizer/ClassConstantsCollector.java | 212 + .../objectweb/asm/optimizer/ClassOptimizer.java | 182 + .../asm/org/objectweb/asm/optimizer/Constant.java | 265 + .../org/objectweb/asm/optimizer/ConstantPool.java | 198 + .../asm/optimizer/FieldConstantsCollector.java | 76 + .../org/objectweb/asm/optimizer/JarOptimizer.java | 87 + .../asm/optimizer/MethodConstantsCollector.java | 168 + .../objectweb/asm/optimizer/MethodOptimizer.java | 108 + .../org/objectweb/asm/optimizer/NameMapping.java | 101 + .../asm/org/objectweb/asm/optimizer/Shrinker.java | 168 + .../org/objectweb/asm/optimizer/shrink.properties | 225 + .../external/asm/org/objectweb/asm/package.html | 87 + .../objectweb/asm/signature/SignatureReader.java | 233 + .../objectweb/asm/signature/SignatureVisitor.java | 185 + .../objectweb/asm/signature/SignatureWriter.java | 207 + .../asm/org/objectweb/asm/signature/package.html | 36 + .../org/objectweb/asm/tree/AbstractInsnNode.java | 143 + .../asm/org/objectweb/asm/tree/AnnotationNode.java | 187 + .../asm/org/objectweb/asm/tree/ClassNode.java | 283 + .../asm/org/objectweb/asm/tree/FieldInsnNode.java | 97 + .../asm/org/objectweb/asm/tree/FieldNode.java | 123 + .../asm/org/objectweb/asm/tree/IincInsnNode.java | 71 + .../asm/org/objectweb/asm/tree/InnerClassNode.java | 101 + .../asm/org/objectweb/asm/tree/InsnNode.java | 96 + .../asm/org/objectweb/asm/tree/IntInsnNode.java | 75 + .../asm/org/objectweb/asm/tree/JumpInsnNode.java | 84 + .../asm/org/objectweb/asm/tree/LabelNode.java | 54 + .../asm/org/objectweb/asm/tree/LdcInsnNode.java | 68 + .../asm/org/objectweb/asm/tree/LineNumberNode.java | 73 + .../org/objectweb/asm/tree/LocalVariableNode.java | 111 + .../objectweb/asm/tree/LookupSwitchInsnNode.java | 103 + .../asm/org/objectweb/asm/tree/MemberNode.java | 120 + .../asm/org/objectweb/asm/tree/MethodInsnNode.java | 98 + .../asm/org/objectweb/asm/tree/MethodNode.java | 439 + .../objectweb/asm/tree/MultiANewArrayInsnNode.java | 71 + .../objectweb/asm/tree/TableSwitchInsnNode.java | 102 + .../org/objectweb/asm/tree/TryCatchBlockNode.java | 93 + .../asm/org/objectweb/asm/tree/TypeInsnNode.java | 78 + .../asm/org/objectweb/asm/tree/VarInsnNode.java | 81 + .../org/objectweb/asm/tree/analysis/Analyzer.java | 416 + .../asm/tree/analysis/AnalyzerException.java | 56 + .../asm/tree/analysis/BasicInterpreter.java | 335 + .../objectweb/asm/tree/analysis/BasicValue.java | 105 + .../objectweb/asm/tree/analysis/BasicVerifier.java | 428 + .../asm/tree/analysis/DataflowInterpreter.java | 174 + .../objectweb/asm/tree/analysis/DataflowValue.java | 92 + .../asm/org/objectweb/asm/tree/analysis/Frame.java | 670 + .../org/objectweb/asm/tree/analysis/IntMap.java | 73 + .../objectweb/asm/tree/analysis/Interpreter.java | 178 + .../asm/tree/analysis/SimpleVerifier.java | 266 + .../org/objectweb/asm/tree/analysis/SmallSet.java | 126 + .../objectweb/asm/tree/analysis/Subroutine.java | 96 + .../asm/org/objectweb/asm/tree/analysis/Value.java | 45 + .../org/objectweb/asm/tree/analysis/package.html | 36 + .../asm/org/objectweb/asm/tree/package.html | 149 + .../asm/util/ASMifierAbstractVisitor.java | 226 + .../asm/util/ASMifierAnnotationVisitor.java | 127 + .../objectweb/asm/util/ASMifierClassVisitor.java | 607 + .../objectweb/asm/util/ASMifierFieldVisitor.java | 50 + .../objectweb/asm/util/ASMifierMethodVisitor.java | 347 + .../org/objectweb/asm/util/AbstractVisitor.java | 201 + .../objectweb/asm/util/CheckAnnotationAdapter.java | 125 + .../org/objectweb/asm/util/CheckClassAdapter.java | 416 + .../org/objectweb/asm/util/CheckFieldAdapter.java | 75 + .../org/objectweb/asm/util/CheckMethodAdapter.java | 942 ++ .../objectweb/asm/util/TraceAbstractVisitor.java | 180 + .../objectweb/asm/util/TraceAnnotationVisitor.java | 272 + .../org/objectweb/asm/util/TraceClassVisitor.java | 534 + .../org/objectweb/asm/util/TraceFieldVisitor.java | 78 + .../org/objectweb/asm/util/TraceMethodVisitor.java | 486 + .../objectweb/asm/util/TraceSignatureVisitor.java | 300 + .../asm/util/attrs/ASMStackMapAttribute.java | 223 + .../asm/util/attrs/ASMStackMapTableAttribute.java | 214 + .../org/objectweb/asm/util/attrs/ASMifiable.java | 53 + .../org/objectweb/asm/util/attrs/Traceable.java | 52 + .../asm/org/objectweb/asm/util/attrs/package.html | 36 + .../asm/org/objectweb/asm/util/package.html | 40 + .../org/objectweb/asm/xml/ASMContentHandler.java | 1215 ++ .../asm/org/objectweb/asm/xml/Processor.java | 1048 ++ .../asm/org/objectweb/asm/xml/SAXAdapter.java | 91 + .../objectweb/asm/xml/SAXAnnotationAdapter.java | 191 + .../asm/org/objectweb/asm/xml/SAXClassAdapter.java | 351 + .../asm/org/objectweb/asm/xml/SAXCodeAdapter.java | 310 + .../asm/org/objectweb/asm/xml/SAXFieldAdapter.java | 77 + .../external/asm/org/objectweb/asm/xml/asm-xml.dtd | 340 + .../asm/org/objectweb/asm/xml/package.html | 96 + libjava/classpath/tools/gjavah.in | 47 + .../classpath/tools/AbstractMethodGenerator.java | 53 - .../tools/gnu/classpath/tools/HelpPrinter.java | 116 - .../tools/appletviewer/AppletWarning.java | 66 - .../tools/appletviewer/CommonAppletStub.java | 3 +- .../tools/appletviewer/ConsoleDialog.java | 175 - .../gnu/classpath/tools/appletviewer/Main.java | 123 +- .../gnu/classpath/tools/appletviewer/Messages.java | 67 + .../tools/appletviewer/PluginAppletContext.java | 4 +- .../tools/appletviewer/PluginAppletViewer.java | 12 +- .../tools/appletviewer/PluginAppletWindow.java | 4 - .../appletviewer/StandaloneAppletContext.java | 3 +- .../tools/appletviewer/StandaloneAppletViewer.java | 10 +- .../tools/appletviewer/StandaloneAppletWindow.java | 33 +- .../classpath/tools/appletviewer/TagParser.java | 56 +- .../tools/common/ClasspathToolParser.java | 87 + .../tools/gnu/classpath/tools/common/Messages.java | 67 + .../gnu/classpath/tools/common/Persistent.java | 87 + .../tools/getopt/ClasspathToolParser.java | 73 - .../tools/gnu/classpath/tools/getopt/Messages.java | 2 +- .../tools/gnu/classpath/tools/getopt/Option.java | 68 +- .../gnu/classpath/tools/getopt/OptionGroup.java | 5 +- .../tools/gnu/classpath/tools/getopt/Parser.java | 99 +- .../tools/gnu/classpath/tools/getopt/package.html | 49 + .../tools/gnu/classpath/tools/giop/GRMIC.java | 189 - .../tools/gnu/classpath/tools/giop/GRMIC.txt | 33 - .../tools/gnu/classpath/tools/giop/IorParser.java | 109 - .../tools/gnu/classpath/tools/giop/IorParser.txt | 10 - .../gnu/classpath/tools/giop/NameService.java | 75 - .../tools/giop/NameServicePersistent.java | 186 - .../classpath/tools/giop/NameServicePersistent.txt | 28 - .../gnu/classpath/tools/giop/NamingService.txt | 21 - .../tools/gnu/classpath/tools/giop/README | 19 - .../tools/giop/grmic/CompilationError.java | 52 - .../gnu/classpath/tools/giop/grmic/Generator.java | 128 - .../gnu/classpath/tools/giop/grmic/GiopIo.java | 112 - .../tools/giop/grmic/GiopRmicCompiler.java | 593 - .../gnu/classpath/tools/giop/grmic/HashFinder.java | 84 - .../tools/giop/grmic/MethodGenerator.java | 285 - .../tools/giop/nameservice/PersistentContext.java | 152 - .../giop/nameservice/PersistentContextMap.java | 87 - .../tools/giop/nameservice/PersistentMap.java | 454 - .../tools/gnu/classpath/tools/jar/Creator.java | 9 +- .../tools/gnu/classpath/tools/jar/Main.java | 2 +- .../tools/gnu/classpath/tools/jarsigner/Main.java | 2 +- .../gnu/classpath/tools/javah/ClassWrapper.java | 346 + .../classpath/tools/javah/CniIncludePrinter.java | 80 + .../gnu/classpath/tools/javah/CniPrintStream.java | 243 + .../gnu/classpath/tools/javah/CniStubPrinter.java | 129 + .../gnu/classpath/tools/javah/FieldHelper.java | 99 + .../tools/gnu/classpath/tools/javah/JniHelper.java | 120 + .../classpath/tools/javah/JniIncludePrinter.java | 158 + .../gnu/classpath/tools/javah/JniPrintStream.java | 115 + .../gnu/classpath/tools/javah/JniStubPrinter.java | 106 + .../tools/gnu/classpath/tools/javah/Keywords.java | 85 + .../tools/gnu/classpath/tools/javah/Main.java | 441 + .../gnu/classpath/tools/javah/MethodHelper.java | 130 + .../gnu/classpath/tools/javah/PackageWrapper.java | 54 + .../gnu/classpath/tools/javah/PathOptionGroup.java | 135 + .../tools/gnu/classpath/tools/javah/Printer.java | 138 + .../tools/gnu/classpath/tools/javah/Text.java | 60 + .../gnu/classpath/tools/keytool/CACertCmd.java | 2 +- .../gnu/classpath/tools/keytool/CertReqCmd.java | 2 +- .../tools/gnu/classpath/tools/keytool/Command.java | 4 +- .../gnu/classpath/tools/keytool/DeleteCmd.java | 2 +- .../gnu/classpath/tools/keytool/ExportCmd.java | 2 +- .../gnu/classpath/tools/keytool/GenKeyCmd.java | 3 +- .../gnu/classpath/tools/keytool/IdentityDBCmd.java | 2 +- .../gnu/classpath/tools/keytool/ImportCmd.java | 3 +- .../gnu/classpath/tools/keytool/KeyCloneCmd.java | 2 +- .../gnu/classpath/tools/keytool/KeyPasswdCmd.java | 2 +- .../tools/gnu/classpath/tools/keytool/ListCmd.java | 2 +- .../tools/gnu/classpath/tools/keytool/Main.java | 10 +- .../gnu/classpath/tools/keytool/PrintCertCmd.java | 2 +- .../gnu/classpath/tools/keytool/SelfCertCmd.java | 2 +- .../classpath/tools/keytool/StorePasswdCmd.java | 2 +- .../classpath/tools/native2ascii/Native2ASCII.java | 2 +- .../tools/gnu/classpath/tools/orbd/Main.java | 228 + .../tools/gnu/classpath/tools/orbd/Messages.java | 67 + .../classpath/tools/orbd/PersistentContext.java | 152 + .../classpath/tools/orbd/PersistentContextMap.java | 87 + .../gnu/classpath/tools/orbd/PersistentMap.java | 454 + .../tools/gnu/classpath/tools/rmi/Persistent.java | 87 - .../tools/rmi/PersistentBidiHashTable.java | 268 - .../classpath/tools/rmi/PersistentHashTable.java | 246 - .../tools/gnu/classpath/tools/rmi/REGISTRY.java | 165 - .../tools/gnu/classpath/tools/rmi/REGISTRY.txt | 28 - .../tools/gnu/classpath/tools/rmi/RMIC.java | 186 - .../tools/gnu/classpath/tools/rmi/RMIC.txt | 45 - .../tools/gnu/classpath/tools/rmi/RMID.java | 189 - .../tools/gnu/classpath/tools/rmi/RMID.txt | 30 - .../classpath/tools/rmi/registry/RegistryImpl.java | 139 - .../tools/rmi/registry/RegistryImpl_Skel.java | 278 - .../tools/rmi/registry/RegistryImpl_Stub.java | 263 - .../tools/rmi/rmic/RmiMethodGenerator.java | 287 - .../gnu/classpath/tools/rmi/rmic/RmicCompiler.java | 171 - .../classpath/tools/rmi/rmic/WrapUnWrapper.java | 83 - .../tools/rmi/rmid/ActivationSystemImpl.java | 244 - .../tools/rmi/rmid/ActivationSystemImpl_Stub.java | 556 - .../tools/rmic/AbstractMethodGenerator.java | 53 + .../classpath/tools/rmic/ClassRmicCompiler.java | 1824 ++ .../gnu/classpath/tools/rmic/CompilationError.java | 52 + .../tools/gnu/classpath/tools/rmic/Generator.java | 128 + .../tools/gnu/classpath/tools/rmic/GiopIo.java | 112 + .../tools/gnu/classpath/tools/rmic/HashFinder.java | 84 + .../tools/gnu/classpath/tools/rmic/Main.java | 282 + .../tools/gnu/classpath/tools/rmic/Messages.java | 67 + .../gnu/classpath/tools/rmic/MethodGenerator.java | 285 + .../gnu/classpath/tools/rmic/RMICException.java | 54 + .../classpath/tools/rmic/RmiMethodGenerator.java | 287 + .../gnu/classpath/tools/rmic/RmicBackend.java | 31 + .../tools/rmic/SourceGiopRmicCompiler.java | 694 + .../classpath/tools/rmic/SourceRmicCompiler.java | 179 + .../tools/gnu/classpath/tools/rmic/Variables.java | 137 + .../gnu/classpath/tools/rmic/WrapUnWrapper.java | 83 + .../{giop/grmic => rmic}/templates/ImplTie.jav | 0 .../tools/{giop/grmic => rmic}/templates/Stub.jav | 0 .../{giop/grmic => rmic}/templates/StubMethod.jav | 0 .../grmic => rmic}/templates/StubMethodVoid.jav | 0 .../tools/{rmi => }/rmic/templates/Stub_12.jav | 0 .../{rmi => }/rmic/templates/Stub_12Method.jav | 0 .../{rmi => }/rmic/templates/Stub_12MethodVoid.jav | 0 .../tools/{giop/grmic => rmic}/templates/Tie.jav | 0 .../{giop/grmic => rmic}/templates/TieMethod.jav | 0 .../grmic => rmic}/templates/TieMethodVoid.jav | 0 .../classpath/tools/rmid/ActivationSystemImpl.java | 243 + .../tools/rmid/ActivationSystemImpl_Stub.java | 556 + .../tools/gnu/classpath/tools/rmid/Main.java | 259 + .../tools/gnu/classpath/tools/rmid/Messages.java | 67 + .../tools/rmid/PersistentBidiHashTable.java | 269 + .../gnu/classpath/tools/rmiregistry/Main.java | 232 + .../gnu/classpath/tools/rmiregistry/Messages.java | 67 + .../tools/rmiregistry/PersistentHashTable.java | 262 + .../classpath/tools/rmiregistry/RegistryImpl.java | 138 + .../tools/rmiregistry/RegistryImpl_Skel.java | 278 + .../tools/rmiregistry/RegistryImpl_Stub.java | 263 + .../gnu/classpath/tools/serialver/SerialVer.java | 2 +- .../tools/gnu/classpath/tools/tnameserv/Main.java | 117 + .../gnu/classpath/tools/tnameserv/Messages.java | 67 + libjava/classpath/tools/gorbd.in | 47 + libjava/classpath/tools/grmic.in | 47 + libjava/classpath/tools/grmid.in | 47 + libjava/classpath/tools/grmiregistry.in | 47 + libjava/classpath/tools/gtnameserv.in | 47 + libjava/classpath/tools/toolwrapper.c | 42 +- libjava/classpath/vm/.cvsignore | 2 + libjava/classpath/vm/reference/.cvsignore | 2 + .../vm/reference/gnu/classpath/VMStackWalker.java | 19 +- .../gnu/classpath/jdwp/VMVirtualMachine.java | 4 +- .../java/lang/management/VMMemoryMXBeanImpl.java | 4 +- .../reference/gnu/java/net/VMPlainSocketImpl.java | 826 +- .../vm/reference/gnu/java/nio/VMChannel.java | 651 +- .../vm/reference/gnu/java/nio/VMPipe.java | 24 +- libjava/classpath/vm/reference/java/io/VMFile.java | 105 + .../vm/reference/java/io/VMObjectInputStream.java | 39 - .../vm/reference/java/lang/VMClassLoader.java | 3 +- .../reference/java/lang/reflect/Constructor.java | 24 +- .../vm/reference/java/lang/reflect/Field.java | 7 +- .../vm/reference/java/lang/reflect/Method.java | 14 +- .../vm/reference/java/net/VMInetAddress.java | 10 + .../vm/reference/java/net/VMNetworkInterface.java | 74 +- .../vm/reference/java/nio/channels/VMChannels.java | 2 +- .../vm/reference/sun/reflect/misc/ReflectUtil.java | 23 +- libjava/configure | 347 +- libjava/configure.ac | 104 +- libjava/defineclass.cc | 493 +- libjava/gcj/Makefile.in | 17 +- libjava/gcj/field.h | 3 +- libjava/gcj/javaprims.h | 315 +- libjava/gnu/CORBA/Asynchron.h | 48 + libjava/gnu/CORBA/BigDecimalHelper.h | 44 + libjava/gnu/CORBA/ByteArrayComparator.h | 30 + libjava/gnu/CORBA/CDR/AbstractCdrInput.h | 185 + libjava/gnu/CORBA/CDR/AbstractCdrOutput.h | 130 + libjava/gnu/CORBA/CDR/AbstractDataInput.h | 48 + libjava/gnu/CORBA/CDR/AbstractDataOutput.h | 45 + libjava/gnu/CORBA/CDR/AligningInput.h | 42 + libjava/gnu/CORBA/CDR/AligningOutput.h | 44 + libjava/gnu/CORBA/CDR/ArrayValueHelper.h | 67 + libjava/gnu/CORBA/CDR/BigEndianInputStream.h | 32 + libjava/gnu/CORBA/CDR/BigEndianOutputStream.h | 32 + libjava/gnu/CORBA/CDR/BufferedCdrOutput.h | 60 + libjava/gnu/CORBA/CDR/BufferredCdrInput.h | 49 + libjava/gnu/CORBA/CDR/EncapsulationStream.h | 56 + libjava/gnu/CORBA/CDR/HeadlessInput.h | 156 + libjava/gnu/CORBA/CDR/IDLTypeHelper.h | 60 + libjava/gnu/CORBA/CDR/LittleEndianInputStream.h | 64 + libjava/gnu/CORBA/CDR/LittleEndianOutputStream.h | 45 + libjava/gnu/CORBA/CDR/UnknownExceptionCtxHandler.h | 47 + libjava/gnu/CORBA/CDR/VMVio.h | 33 + libjava/gnu/CORBA/CDR/Vio.h | 119 + libjava/gnu/CORBA/CDR/gnuRuntime$1.h | 38 + libjava/gnu/CORBA/CDR/gnuRuntime$Entry.h | 38 + libjava/gnu/CORBA/CDR/gnuRuntime$Redirection.h | 34 + libjava/gnu/CORBA/CDR/gnuRuntime.h | 52 + libjava/gnu/CORBA/CDR/gnuValueStream.h | 36 + libjava/gnu/CORBA/CdrEncapsCodecImpl.h | 76 + libjava/gnu/CORBA/CollocatedOrbs.h | 51 + libjava/gnu/CORBA/Connected_objects$cObject.h | 50 + libjava/gnu/CORBA/Connected_objects.h | 59 + libjava/gnu/CORBA/CorbaList.h | 35 + libjava/gnu/CORBA/DefaultSocketFactory.h | 40 + libjava/gnu/CORBA/DefinitionKindHolder.h | 49 + libjava/gnu/CORBA/DuplicateNameHolder.h | 56 + libjava/gnu/CORBA/DynAn/AbstractAny.h | 68 + libjava/gnu/CORBA/DynAn/DivideableAny.h | 107 + libjava/gnu/CORBA/DynAn/NameValuePairHolder.h | 53 + libjava/gnu/CORBA/DynAn/RecordAny.h | 76 + libjava/gnu/CORBA/DynAn/RecordAny.java | 416 - libjava/gnu/CORBA/DynAn/UndivideableAny.h | 100 + libjava/gnu/CORBA/DynAn/ValueChangeListener.h | 32 + libjava/gnu/CORBA/DynAn/gnuDynAny.h | 114 + libjava/gnu/CORBA/DynAn/gnuDynAnyFactory.h | 78 + libjava/gnu/CORBA/DynAn/gnuDynArray.h | 67 + libjava/gnu/CORBA/DynAn/gnuDynEnum.h | 67 + libjava/gnu/CORBA/DynAn/gnuDynFixed.h | 72 + libjava/gnu/CORBA/DynAn/gnuDynSequence.h | 66 + libjava/gnu/CORBA/DynAn/gnuDynStruct.h | 60 + libjava/gnu/CORBA/DynAn/gnuDynUnion.h | 71 + libjava/gnu/CORBA/DynAn/gnuDynValue.h | 84 + libjava/gnu/CORBA/DynAn/gnuDynValue.java | 386 - libjava/gnu/CORBA/DynAn/gnuDynValueBox.h | 70 + libjava/gnu/CORBA/DynAnySeqHolder.h | 55 + libjava/gnu/CORBA/EmptyExceptionHolder.h | 49 + libjava/gnu/CORBA/ForwardRequestHelper.h | 55 + libjava/gnu/CORBA/GIOP/CancelHeader.h | 49 + libjava/gnu/CORBA/GIOP/CharSets_OSF.h | 88 + libjava/gnu/CORBA/GIOP/CloseMessage.h | 37 + libjava/gnu/CORBA/GIOP/CodeSetServiceContext.h | 56 + libjava/gnu/CORBA/GIOP/ContextHandler.h | 50 + libjava/gnu/CORBA/GIOP/ErrorMessage.h | 48 + libjava/gnu/CORBA/GIOP/MessageHeader.h | 79 + libjava/gnu/CORBA/GIOP/ReplyHeader.h | 49 + libjava/gnu/CORBA/GIOP/RequestHeader.h | 56 + libjava/gnu/CORBA/GIOP/ServiceContext.h | 82 + libjava/gnu/CORBA/GIOP/v1_0/CancelHeader.h | 51 + libjava/gnu/CORBA/GIOP/v1_0/ReplyHeader.h | 45 + libjava/gnu/CORBA/GIOP/v1_0/RequestHeader.h | 49 + libjava/gnu/CORBA/GIOP/v1_2/ReplyHeader.h | 43 + libjava/gnu/CORBA/GIOP/v1_2/RequestHeader.h | 53 + libjava/gnu/CORBA/GeneralHolder.h | 58 + libjava/gnu/CORBA/HolderLocator.h | 50 + .../CORBA/IOR$CodeSets_profile$CodeSet_component.h | 54 + libjava/gnu/CORBA/IOR$CodeSets_profile.h | 46 + libjava/gnu/CORBA/IOR$Internet_profile.h | 47 + libjava/gnu/CORBA/IOR.h | 72 + .../CORBA/Interceptor/ClientRequestInterceptors.h | 56 + .../gnu/CORBA/Interceptor/ForwardRequestHolder.h | 56 + libjava/gnu/CORBA/Interceptor/IORInterceptors.h | 56 + libjava/gnu/CORBA/Interceptor/Registrator.h | 104 + .../CORBA/Interceptor/ServerRequestInterceptors.h | 56 + .../gnu/CORBA/Interceptor/gnuClientRequestInfo.h | 86 + libjava/gnu/CORBA/Interceptor/gnuIcCurrent.h | 67 + libjava/gnu/CORBA/Interceptor/gnuIorInfo.h | 73 + .../gnu/CORBA/Interceptor/gnuServerRequestInfo.h | 104 + libjava/gnu/CORBA/IorDelegate.h | 72 + libjava/gnu/CORBA/IorObject.h | 52 + libjava/gnu/CORBA/IorProvider.h | 30 + libjava/gnu/CORBA/Minor.h | 64 + libjava/gnu/CORBA/NameDynAnyPairHolder.h | 53 + libjava/gnu/CORBA/NameDynAnyPairSeqHolder.h | 55 + libjava/gnu/CORBA/NameValuePairHolder.h | 53 + libjava/gnu/CORBA/NameValuePairSeqHolder.h | 55 + .../CORBA/NamingService/Binding_iterator_impl.h | 54 + libjava/gnu/CORBA/NamingService/Ext.h | 75 + .../CORBA/NamingService/NameComponentComparator.h | 35 + libjava/gnu/CORBA/NamingService/NameParser.h | 75 + libjava/gnu/CORBA/NamingService/NameTransformer.h | 58 + libjava/gnu/CORBA/NamingService/NameValidator.h | 45 + libjava/gnu/CORBA/NamingService/NamingMap.h | 57 + .../CORBA/NamingService/NamingServiceTransient$1.h | 38 + .../CORBA/NamingService/NamingServiceTransient.h | 37 + libjava/gnu/CORBA/NamingService/TransientContext.h | 74 + libjava/gnu/CORBA/ObjectCreator.h | 75 + libjava/gnu/CORBA/ObjectCreator.java | 596 - libjava/gnu/CORBA/OctetHolder.h | 52 + libjava/gnu/CORBA/OrbFocused.h | 74 + libjava/gnu/CORBA/OrbFunctional$1.h | 37 + libjava/gnu/CORBA/OrbFunctional$2.h | 46 + libjava/gnu/CORBA/OrbFunctional$portServer.h | 52 + libjava/gnu/CORBA/OrbFunctional$sharedPortServer.h | 33 + libjava/gnu/CORBA/OrbFunctional.h | 167 + libjava/gnu/CORBA/OrbRestricted.h | 122 + libjava/gnu/CORBA/Poa/AOM$Obj.h | 63 + libjava/gnu/CORBA/Poa/AOM.h | 71 + libjava/gnu/CORBA/Poa/AccessiblePolicy.h | 70 + libjava/gnu/CORBA/Poa/DynamicImpHandler.h | 53 + libjava/gnu/CORBA/Poa/ForwardRequestHolder.h | 56 + libjava/gnu/CORBA/Poa/ForwardedServant.h | 61 + libjava/gnu/CORBA/Poa/InvalidPolicyHolder.h | 59 + libjava/gnu/CORBA/Poa/LocalDelegate.h | 91 + libjava/gnu/CORBA/Poa/LocalRequest.h | 97 + libjava/gnu/CORBA/Poa/LocalServerRequest.h | 57 + libjava/gnu/CORBA/Poa/ORB_1_4.h | 81 + libjava/gnu/CORBA/Poa/ServantDelegateImpl.h | 67 + libjava/gnu/CORBA/Poa/StandardPolicies.h | 50 + libjava/gnu/CORBA/Poa/gnuAdapterActivator.h | 43 + libjava/gnu/CORBA/Poa/gnuForwardRequest.h | 51 + libjava/gnu/CORBA/Poa/gnuIdAssignmentPolicy.h | 46 + libjava/gnu/CORBA/Poa/gnuIdUniquenessPolicy.h | 46 + .../gnu/CORBA/Poa/gnuImplicitActivationPolicy.h | 46 + libjava/gnu/CORBA/Poa/gnuLifespanPolicy.h | 46 + libjava/gnu/CORBA/Poa/gnuPOA$RefTemplate.h | 57 + libjava/gnu/CORBA/Poa/gnuPOA.h | 187 + libjava/gnu/CORBA/Poa/gnuPOAManager.h | 62 + libjava/gnu/CORBA/Poa/gnuPoaCurrent.h | 55 + libjava/gnu/CORBA/Poa/gnuRequestProcessingPolicy.h | 46 + libjava/gnu/CORBA/Poa/gnuServantObject.h | 96 + libjava/gnu/CORBA/Poa/gnuServantRetentionPolicy.h | 46 + libjava/gnu/CORBA/Poa/gnuThreadPolicy.h | 46 + libjava/gnu/CORBA/RawReply.h | 54 + libjava/gnu/CORBA/ResponseHandlerImpl.h | 69 + libjava/gnu/CORBA/SafeForDirectCalls.h | 28 + libjava/gnu/CORBA/ServiceDetailHolder.h | 49 + libjava/gnu/CORBA/ServiceRequestAdapter.h | 56 + libjava/gnu/CORBA/SetOverrideTypeHolder.h | 49 + libjava/gnu/CORBA/SimpleDelegate.h | 67 + libjava/gnu/CORBA/SocketRepository.h | 46 + libjava/gnu/CORBA/StreamBasedRequest.h | 32 + libjava/gnu/CORBA/StreamHolder.h | 52 + libjava/gnu/CORBA/StubLocator.h | 48 + libjava/gnu/CORBA/TypeCodeHelper.h | 46 + libjava/gnu/CORBA/TypeKindNamer.h | 49 + libjava/gnu/CORBA/Unexpected.h | 38 + libjava/gnu/CORBA/Version.h | 42 + libjava/gnu/CORBA/WCharHolder.h | 52 + libjava/gnu/CORBA/WStringHolder.h | 56 + libjava/gnu/CORBA/_PolicyImplBase.h | 64 + libjava/gnu/CORBA/gnuAny.h | 126 + libjava/gnu/CORBA/gnuCodecFactory.h | 48 + libjava/gnu/CORBA/gnuContext.h | 53 + libjava/gnu/CORBA/gnuContextList.h | 37 + libjava/gnu/CORBA/gnuEnvironment.h | 35 + libjava/gnu/CORBA/gnuExceptionList.h | 47 + libjava/gnu/CORBA/gnuNVList.h | 52 + libjava/gnu/CORBA/gnuNamedValue.h | 50 + libjava/gnu/CORBA/gnuRequest$1.h | 35 + libjava/gnu/CORBA/gnuRequest$2.h | 37 + libjava/gnu/CORBA/gnuRequest.h | 184 + libjava/gnu/CORBA/gnuValueHolder.h | 54 + libjava/gnu/CORBA/interfaces/SocketFactory.h | 42 + libjava/gnu/CORBA/typecodes/AliasTypeCode.h | 54 + libjava/gnu/CORBA/typecodes/ArrayTypeCode.h | 56 + libjava/gnu/CORBA/typecodes/FixedTypeCode.h | 61 + libjava/gnu/CORBA/typecodes/GeneralTypeCode.h | 70 + libjava/gnu/CORBA/typecodes/PrimitiveTypeCode.h | 68 + libjava/gnu/CORBA/typecodes/RecordTypeCode$Field.h | 47 + libjava/gnu/CORBA/typecodes/RecordTypeCode.h | 72 + libjava/gnu/CORBA/typecodes/RecursiveTypeCode.h | 37 + libjava/gnu/CORBA/typecodes/StringTypeCode.h | 48 + libjava/gnu/awt/LightweightRedirector.h | 51 + libjava/gnu/awt/j2d/AbstractGraphicsState.h | 90 + libjava/gnu/awt/j2d/DirectRasterGraphics.h | 71 + libjava/gnu/awt/j2d/Graphics2DImpl.h | 157 + .../j2d/IntegerGraphicsState$ScreenCoupledImage.h | 39 + libjava/gnu/awt/j2d/IntegerGraphicsState.h | 94 + libjava/gnu/awt/j2d/MappedRaster.h | 49 + libjava/gnu/classpath/Configuration.h | 38 + libjava/gnu/classpath/Configuration.java | 105 + libjava/gnu/classpath/ListenerData.h | 46 + libjava/gnu/classpath/NotImplementedException.h | 30 + libjava/gnu/classpath/Pointer.h | 29 + libjava/gnu/classpath/Pointer32.h | 32 + libjava/gnu/classpath/Pointer64.h | 32 + .../gnu/classpath/ServiceFactory$ServiceIterator.h | 55 + libjava/gnu/classpath/ServiceFactory.h | 36 + .../gnu/classpath/ServiceProviderLoadingAction.h | 36 + libjava/gnu/classpath/SystemProperties.h | 45 + libjava/gnu/classpath/SystemProperties.java | 16 +- libjava/gnu/classpath/VMStackWalker.h | 46 + libjava/gnu/classpath/VMStackWalker.java | 138 + libjava/gnu/classpath/debug/Component.h | 50 + libjava/gnu/classpath/debug/PreciseFilter.h | 41 + libjava/gnu/classpath/debug/Simple1LineFormatter.h | 50 + libjava/gnu/classpath/debug/SystemLogger.h | 39 + libjava/gnu/classpath/debug/TeeInputStream.h | 42 + libjava/gnu/classpath/debug/TeeOutputStream.h | 42 + libjava/gnu/classpath/debug/TeeReader.h | 42 + libjava/gnu/classpath/debug/TeeWriter.h | 42 + libjava/gnu/classpath/jdwp/Jdwp$1.h | 38 + libjava/gnu/classpath/jdwp/Jdwp.h | 79 + .../gnu/classpath/jdwp/JdwpConstants$ClassStatus.h | 36 + .../jdwp/JdwpConstants$CommandSet$ArrayReference.h | 36 + .../jdwp/JdwpConstants$CommandSet$ArrayType.h | 34 + ...JdwpConstants$CommandSet$ClassLoaderReference.h | 34 + ...JdwpConstants$CommandSet$ClassObjectReference.h | 34 + .../jdwp/JdwpConstants$CommandSet$ClassType.h | 37 + .../jdwp/JdwpConstants$CommandSet$Event.h | 34 + .../jdwp/JdwpConstants$CommandSet$EventRequest.h | 36 + .../jdwp/JdwpConstants$CommandSet$Field.h | 33 + .../jdwp/JdwpConstants$CommandSet$InterfaceType.h | 33 + .../jdwp/JdwpConstants$CommandSet$Method.h | 38 + .../JdwpConstants$CommandSet$ObjectReference.h | 41 + .../jdwp/JdwpConstants$CommandSet$ReferenceType.h | 48 + .../jdwp/JdwpConstants$CommandSet$StackFrame.h | 37 + .../JdwpConstants$CommandSet$StringReference.h | 34 + ...JdwpConstants$CommandSet$ThreadGroupReference.h | 36 + .../JdwpConstants$CommandSet$ThreadReference.h | 45 + .../jdwp/JdwpConstants$CommandSet$VirtualMachine.h | 53 + .../gnu/classpath/jdwp/JdwpConstants$CommandSet.h | 33 + libjava/gnu/classpath/jdwp/JdwpConstants$Error.h | 88 + .../gnu/classpath/jdwp/JdwpConstants$EventKind.h | 52 + .../classpath/jdwp/JdwpConstants$InvokeOptions.h | 34 + libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h | 43 + .../gnu/classpath/jdwp/JdwpConstants$StepDepth.h | 35 + .../gnu/classpath/jdwp/JdwpConstants$StepSize.h | 34 + .../classpath/jdwp/JdwpConstants$SuspendPolicy.h | 35 + .../classpath/jdwp/JdwpConstants$SuspendStatus.h | 33 + libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h | 48 + .../classpath/jdwp/JdwpConstants$ThreadStatus.h | 37 + libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h | 35 + libjava/gnu/classpath/jdwp/JdwpConstants$Version.h | 34 + libjava/gnu/classpath/jdwp/JdwpConstants.h | 32 + libjava/gnu/classpath/jdwp/VMFrame.h | 47 + libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h | 46 + .../gnu/classpath/jdwp/VMIdManager$ReferenceKey.h | 41 + libjava/gnu/classpath/jdwp/VMIdManager.h | 62 + libjava/gnu/classpath/jdwp/VMMethod.h | 60 + libjava/gnu/classpath/jdwp/VMVirtualMachine.h | 75 + libjava/gnu/classpath/jdwp/event/BreakpointEvent.h | 47 + .../gnu/classpath/jdwp/event/ClassPrepareEvent.h | 47 + .../gnu/classpath/jdwp/event/ClassUnloadEvent.h | 41 + libjava/gnu/classpath/jdwp/event/Event.h | 56 + libjava/gnu/classpath/jdwp/event/EventManager.h | 50 + libjava/gnu/classpath/jdwp/event/EventRequest.h | 75 + libjava/gnu/classpath/jdwp/event/ExceptionEvent.h | 51 + .../gnu/classpath/jdwp/event/MethodEntryEvent.h | 47 + libjava/gnu/classpath/jdwp/event/MethodExitEvent.h | 47 + libjava/gnu/classpath/jdwp/event/SingleStepEvent.h | 47 + libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h | 41 + .../gnu/classpath/jdwp/event/ThreadStartEvent.h | 41 + libjava/gnu/classpath/jdwp/event/VmDeathEvent.h | 39 + libjava/gnu/classpath/jdwp/event/VmInitEvent.h | 41 + .../jdwp/event/filters/ClassExcludeFilter.h | 40 + .../jdwp/event/filters/ClassMatchFilter.h | 44 + .../classpath/jdwp/event/filters/ClassOnlyFilter.h | 48 + .../jdwp/event/filters/ConditionalFilter.h | 40 + .../gnu/classpath/jdwp/event/filters/CountFilter.h | 44 + .../jdwp/event/filters/ExceptionOnlyFilter.h | 50 + .../classpath/jdwp/event/filters/FieldOnlyFilter.h | 50 + .../classpath/jdwp/event/filters/IEventFilter.h | 39 + .../jdwp/event/filters/InstanceOnlyFilter.h | 48 + .../jdwp/event/filters/LocationOnlyFilter.h | 48 + .../gnu/classpath/jdwp/event/filters/StepFilter.h | 52 + .../jdwp/event/filters/ThreadOnlyFilter.h | 48 + .../jdwp/exception/InvalidClassException.h | 36 + .../jdwp/exception/InvalidClassLoaderException.h | 36 + .../jdwp/exception/InvalidCountException.h | 36 + .../jdwp/exception/InvalidEventTypeException.h | 36 + .../jdwp/exception/InvalidFieldException.h | 36 + .../jdwp/exception/InvalidLocationException.h | 36 + .../jdwp/exception/InvalidMethodException.h | 36 + .../jdwp/exception/InvalidObjectException.h | 36 + .../jdwp/exception/InvalidStringException.h | 37 + .../jdwp/exception/InvalidThreadException.h | 36 + .../jdwp/exception/InvalidThreadGroupException.h | 36 + .../gnu/classpath/jdwp/exception/JdwpException.h | 40 + .../jdwp/exception/JdwpIllegalArgumentException.h | 35 + .../jdwp/exception/JdwpInternalErrorException.h | 36 + .../jdwp/exception/NativeMethodException.h | 36 + .../jdwp/exception/NotImplementedException.h | 35 + .../gnu/classpath/jdwp/exception/VmDeadException.h | 35 + libjava/gnu/classpath/jdwp/id/ArrayId.h | 35 + .../gnu/classpath/jdwp/id/ArrayReferenceTypeId.h | 35 + libjava/gnu/classpath/jdwp/id/ClassLoaderId.h | 37 + libjava/gnu/classpath/jdwp/id/ClassObjectId.h | 37 + .../gnu/classpath/jdwp/id/ClassReferenceTypeId.h | 35 + .../classpath/jdwp/id/InterfaceReferenceTypeId.h | 35 + libjava/gnu/classpath/jdwp/id/JdwpId.h | 50 + libjava/gnu/classpath/jdwp/id/ObjectId.h | 44 + libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h | 37 + libjava/gnu/classpath/jdwp/id/StringId.h | 37 + libjava/gnu/classpath/jdwp/id/ThreadGroupId.h | 37 + libjava/gnu/classpath/jdwp/id/ThreadId.h | 37 + .../jdwp/processor/ArrayReferenceCommandSet.h | 48 + .../classpath/jdwp/processor/ArrayTypeCommandSet.h | 44 + .../processor/ClassLoaderReferenceCommandSet.h | 44 + .../processor/ClassObjectReferenceCommandSet.h | 44 + .../classpath/jdwp/processor/ClassTypeCommandSet.h | 54 + libjava/gnu/classpath/jdwp/processor/CommandSet.h | 47 + .../jdwp/processor/EventRequestCommandSet.h | 48 + .../gnu/classpath/jdwp/processor/FieldCommandSet.h | 43 + .../jdwp/processor/InterfaceTypeCommandSet.h | 43 + .../classpath/jdwp/processor/MethodCommandSet.h | 50 + .../jdwp/processor/ObjectReferenceCommandSet.h | 53 + .../gnu/classpath/jdwp/processor/PacketProcessor.h | 52 + .../jdwp/processor/ReferenceTypeCommandSet.h | 60 + .../jdwp/processor/StackFrameCommandSet.h | 49 + .../jdwp/processor/StringReferenceCommandSet.h | 46 + .../processor/ThreadGroupReferenceCommandSet.h | 48 + .../jdwp/processor/ThreadReferenceCommandSet.h | 57 + .../jdwp/processor/VirtualMachineCommandSet.h | 66 + libjava/gnu/classpath/jdwp/transport/ITransport.h | 39 + .../classpath/jdwp/transport/JdwpCommandPacket.h | 51 + .../gnu/classpath/jdwp/transport/JdwpConnection.h | 66 + libjava/gnu/classpath/jdwp/transport/JdwpPacket.h | 61 + .../gnu/classpath/jdwp/transport/JdwpReplyPacket.h | 50 + .../gnu/classpath/jdwp/transport/SocketTransport.h | 57 + .../classpath/jdwp/transport/TransportException.h | 36 + .../transport/TransportFactory$TransportMethod.h | 39 + .../classpath/jdwp/transport/TransportFactory.h | 44 + libjava/gnu/classpath/jdwp/util/JdwpString.h | 44 + libjava/gnu/classpath/jdwp/util/LineTable.h | 44 + libjava/gnu/classpath/jdwp/util/Location.h | 53 + libjava/gnu/classpath/jdwp/util/MethodResult.h | 43 + libjava/gnu/classpath/jdwp/util/Signature.h | 44 + libjava/gnu/classpath/jdwp/util/Value.h | 50 + libjava/gnu/classpath/jdwp/util/VariableTable.h | 47 + libjava/gnu/classpath/natConfiguration.cc | 39 + libjava/gnu/classpath/natSystemProperties.cc | 4 +- libjava/gnu/classpath/natVMStackWalker.cc | 80 + libjava/gnu/gcj/Core.h | 36 + libjava/gnu/gcj/RawData.h | 29 + libjava/gnu/gcj/RawDataManaged.h | 29 + libjava/gnu/gcj/convert/BytesToCharsetAdaptor.h | 54 + libjava/gnu/gcj/convert/BytesToUnicode.h | 50 + libjava/gnu/gcj/convert/CharsetToBytesAdaptor.h | 64 + libjava/gnu/gcj/convert/Convert.h | 41 + libjava/gnu/gcj/convert/IOConverter.h | 41 + libjava/gnu/gcj/convert/Input_8859_1.h | 36 + libjava/gnu/gcj/convert/Input_ASCII.h | 36 + libjava/gnu/gcj/convert/Input_EUCJIS.h | 40 + libjava/gnu/gcj/convert/Input_JavaSrc.h | 40 + libjava/gnu/gcj/convert/Input_SJIS.h | 39 + libjava/gnu/gcj/convert/Input_UTF8.h | 40 + libjava/gnu/gcj/convert/Input_UnicodeBig.h | 40 + libjava/gnu/gcj/convert/Input_UnicodeLittle.h | 40 + libjava/gnu/gcj/convert/Input_iconv.h | 46 + libjava/gnu/gcj/convert/Output_8859_1.h | 37 + libjava/gnu/gcj/convert/Output_ASCII.h | 37 + libjava/gnu/gcj/convert/Output_EUCJIS.h | 42 + libjava/gnu/gcj/convert/Output_JavaSrc.h | 40 + libjava/gnu/gcj/convert/Output_SJIS.h | 41 + libjava/gnu/gcj/convert/Output_UTF8.h | 43 + .../gnu/gcj/convert/Output_UnicodeLittleUnmarked.h | 36 + libjava/gnu/gcj/convert/Output_iconv.h | 46 + libjava/gnu/gcj/convert/UnicodeToBytes.h | 52 + libjava/gnu/gcj/convert/Unicode_to_JIS.cc | 1 - libjava/gnu/gcj/convert/natIconv.cc | 12 +- libjava/gnu/gcj/io/DefaultMimeTypes.h | 35 + libjava/gnu/gcj/io/MimeTypes.h | 37 + libjava/gnu/gcj/io/SimpleSHSStream.h | 50 + libjava/gnu/gcj/jvmti/Breakpoint.h | 44 + libjava/gnu/gcj/jvmti/BreakpointManager.h | 40 + libjava/gnu/gcj/jvmti/Location.h | 39 + libjava/gnu/gcj/natCore.cc | 4 +- libjava/gnu/gcj/runtime/BootClassLoader.h | 43 + libjava/gnu/gcj/runtime/ExtensionClassLoader.h | 40 + libjava/gnu/gcj/runtime/FinalizerThread.h | 41 + libjava/gnu/gcj/runtime/HelperClassLoader$1.h | 38 + libjava/gnu/gcj/runtime/HelperClassLoader.h | 35 + libjava/gnu/gcj/runtime/JNIWeakRef.h | 32 + libjava/gnu/gcj/runtime/NameFinder$Addr2Line.h | 39 + libjava/gnu/gcj/runtime/NameFinder.h | 50 + .../gnu/gcj/runtime/PersistentByteMap$AccessMode.h | 49 + .../gcj/runtime/PersistentByteMap$ByteWrapper.h | 42 + .../gcj/runtime/PersistentByteMap$HashIterator.h | 44 + .../gnu/gcj/runtime/PersistentByteMap$MapEntry.h | 40 + libjava/gnu/gcj/runtime/PersistentByteMap.h | 115 + libjava/gnu/gcj/runtime/SharedLibHelper.h | 76 + libjava/gnu/gcj/runtime/SharedLibLoader.h | 47 + libjava/gnu/gcj/runtime/StringBuffer.h | 54 + libjava/gnu/gcj/runtime/SystemClassLoader.h | 40 + libjava/gnu/gcj/runtime/natSharedLibLoader.cc | 8 +- libjava/gnu/gcj/tools/gcj_dbtool/Fileset.h | 42 + libjava/gnu/gcj/tools/gcj_dbtool/Main.h | 55 + libjava/gnu/gcj/tools/gcj_dbtool/Tokenizer.h | 40 + libjava/gnu/gcj/util/Debug.h | 57 + ...VisibleComponentList$VisibleComponentIterator.h | 48 + .../java/awt/AWTUtilities$VisibleComponentList.h | 47 + libjava/gnu/java/awt/AWTUtilities.h | 71 + libjava/gnu/java/awt/BitMaskExtent.h | 36 + .../java/awt/BitwiseXORComposite$GeneralContext.h | 52 + .../gnu/java/awt/BitwiseXORComposite$IntContext.h | 48 + libjava/gnu/java/awt/BitwiseXORComposite.h | 49 + libjava/gnu/java/awt/Buffers.h | 49 + libjava/gnu/java/awt/ClasspathToolkit.h | 69 + libjava/gnu/java/awt/ComponentDataBlitOp.h | 55 + libjava/gnu/java/awt/ComponentReshapeEvent.h | 43 + libjava/gnu/java/awt/EmbeddedWindow.h | 39 + libjava/gnu/java/awt/EventModifier.h | 36 + libjava/gnu/java/awt/GradientPaintContext.h | 57 + libjava/gnu/java/awt/LowPriorityEvent.h | 31 + libjava/gnu/java/awt/color/CieXyzConverter.h | 41 + libjava/gnu/java/awt/color/ClutProfileConverter.h | 57 + libjava/gnu/java/awt/color/ColorLookUpTable.h | 73 + libjava/gnu/java/awt/color/ColorSpaceConverter.h | 40 + libjava/gnu/java/awt/color/GrayProfileConverter.h | 60 + libjava/gnu/java/awt/color/GrayScaleConverter.h | 46 + libjava/gnu/java/awt/color/LinearRGBConverter.h | 41 + libjava/gnu/java/awt/color/ProfileHeader.h | 75 + libjava/gnu/java/awt/color/PyccConverter.h | 41 + libjava/gnu/java/awt/color/RgbProfileConverter.h | 64 + libjava/gnu/java/awt/color/SrgbConverter.h | 43 + libjava/gnu/java/awt/color/TagEntry.h | 53 + libjava/gnu/java/awt/color/ToneReproductionCurve.h | 47 + .../java/awt/dnd/GtkMouseDragGestureRecognizer.h | 66 + .../awt/dnd/peer/gtk/GtkDragSourceContextPeer.h | 86 + .../awt/dnd/peer/gtk/GtkDropTargetContextPeer.h | 69 + .../gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.h | 53 + libjava/gnu/java/awt/font/FontDelegate.h | 68 + libjava/gnu/java/awt/font/FontFactory.h | 46 + libjava/gnu/java/awt/font/GNUGlyphVector.h | 98 + libjava/gnu/java/awt/font/autofit/AxisHints.h | 43 + libjava/gnu/java/awt/font/autofit/Constants.h | 40 + libjava/gnu/java/awt/font/autofit/GlyphHints.h | 59 + libjava/gnu/java/awt/font/autofit/Latin.h | 59 + libjava/gnu/java/awt/font/autofit/LatinAxis.h | 47 + libjava/gnu/java/awt/font/autofit/LatinMetrics.h | 44 + libjava/gnu/java/awt/font/autofit/Scaler.h | 48 + libjava/gnu/java/awt/font/autofit/Script.h | 48 + libjava/gnu/java/awt/font/autofit/ScriptMetrics.h | 43 + libjava/gnu/java/awt/font/autofit/Segment.h | 42 + libjava/gnu/java/awt/font/autofit/Width.h | 43 + .../java/awt/font/opentype/CharGlyphMap$Dummy.h | 42 + .../java/awt/font/opentype/CharGlyphMap$Type0.h | 66 + .../java/awt/font/opentype/CharGlyphMap$Type12.h | 53 + .../java/awt/font/opentype/CharGlyphMap$Type4.h | 60 + libjava/gnu/java/awt/font/opentype/CharGlyphMap.h | 52 + libjava/gnu/java/awt/font/opentype/GlyphNamer.h | 69 + .../awt/font/opentype/MacResourceFork$Resource.h | 58 + .../gnu/java/awt/font/opentype/MacResourceFork.h | 55 + libjava/gnu/java/awt/font/opentype/NameDecoder.h | 85 + libjava/gnu/java/awt/font/opentype/OpenTypeFont.h | 122 + .../java/awt/font/opentype/OpenTypeFontFactory.h | 49 + libjava/gnu/java/awt/font/opentype/Scaler.h | 59 + .../gnu/java/awt/font/opentype/truetype/Fixed.h | 54 + .../java/awt/font/opentype/truetype/GlyphLoader.h | 91 + .../font/opentype/truetype/GlyphLocator$FourByte.h | 54 + .../font/opentype/truetype/GlyphLocator$TwoByte.h | 54 + .../java/awt/font/opentype/truetype/GlyphLocator.h | 54 + .../awt/font/opentype/truetype/GlyphMeasurer.h | 66 + .../awt/font/opentype/truetype/TrueTypeScaler.h | 75 + .../awt/font/opentype/truetype/VirtualMachine.h | 153 + libjava/gnu/java/awt/font/opentype/truetype/Zone.h | 88 + .../awt/font/opentype/truetype/ZonePathIterator.h | 67 + .../image/ImageDecoder$DataInputStreamWrapper.h | 40 + libjava/gnu/java/awt/image/ImageDecoder.h | 71 + libjava/gnu/java/awt/image/XBMDecoder.h | 61 + libjava/gnu/java/awt/java2d/AbstractGraphics2D.h | 214 + .../gnu/java/awt/java2d/AlphaCompositeContext.h | 57 + libjava/gnu/java/awt/java2d/CubicSegment.h | 56 + .../java/awt/java2d/ImagePaint$ImagePaintContext.h | 60 + libjava/gnu/java/awt/java2d/ImagePaint.h | 61 + libjava/gnu/java/awt/java2d/LineSegment.h | 54 + libjava/gnu/java/awt/java2d/PolyEdge.h | 47 + libjava/gnu/java/awt/java2d/PolyEdgeComparator.h | 39 + libjava/gnu/java/awt/java2d/QuadSegment.h | 61 + libjava/gnu/java/awt/java2d/RasterGraphics.h | 56 + libjava/gnu/java/awt/java2d/Segment.h | 65 + libjava/gnu/java/awt/java2d/ShapeCache.h | 56 + libjava/gnu/java/awt/java2d/TexturePaintContext.h | 64 + libjava/gnu/java/awt/peer/ClasspathFontPeer.h | 123 + libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h | 146 + libjava/gnu/java/awt/peer/GLightweightPeer.h | 133 + .../java/awt/peer/NativeEventLoopRunningEvent.h | 39 + libjava/gnu/java/awt/peer/gtk/AsyncImage$Loader.h | 53 + .../java/awt/peer/gtk/AsyncImage$NullImageSource.h | 60 + libjava/gnu/java/awt/peer/gtk/AsyncImage.h | 71 + .../gnu/java/awt/peer/gtk/BufferedImageGraphics.h | 104 + libjava/gnu/java/awt/peer/gtk/CairoGraphics2D.h | 279 + .../awt/peer/gtk/CairoSurface$CairoDataBuffer.h | 44 + libjava/gnu/java/awt/peer/gtk/CairoSurface.h | 104 + .../gnu/java/awt/peer/gtk/CairoSurfaceGraphics.h | 93 + libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h | 128 + .../gnu/java/awt/peer/gtk/ComponentGraphicsCopy.h | 78 + .../gnu/java/awt/peer/gtk/FreetypeGlyphVector.h | 110 + libjava/gnu/java/awt/peer/gtk/GThreadMutex.h | 41 + .../java/awt/peer/gtk/GThreadNativeMethodRunner.h | 58 + libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.h | 74 + .../awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.h | 57 + .../java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.h | 61 + libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h | 142 + .../java/awt/peer/gtk/GdkGraphicsConfiguration.h | 78 + .../gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h | 82 + .../peer/gtk/GdkPixbufDecoder$GdkPixbufReader.h | 89 + .../peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.h | 48 + .../peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.h | 70 + .../peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.h | 49 + .../peer/gtk/GdkPixbufDecoder$ImageFormatSpec.h | 44 + libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h | 108 + libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h | 69 + .../gtk/GdkScreenGraphicsDevice$X11DisplayMode.h | 44 + .../java/awt/peer/gtk/GdkScreenGraphicsDevice.h | 97 + libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.h | 68 + libjava/gnu/java/awt/peer/gtk/GtkCanvasPeer.h | 49 + .../java/awt/peer/gtk/GtkCheckboxMenuItemPeer.h | 51 + libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.h | 70 + libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.h | 69 + libjava/gnu/java/awt/peer/gtk/GtkClipboard.h | 73 + .../gnu/java/awt/peer/gtk/GtkClipboardNotifier.h | 47 + .../peer/gtk/GtkComponentPeer$RepaintTimerTask.h | 57 + libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h | 198 + libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.h | 64 + libjava/gnu/java/awt/peer/gtk/GtkCursor.h | 53 + libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.h | 48 + .../gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.h | 44 + libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.h | 80 + libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h | 90 + libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h | 64 + libjava/gnu/java/awt/peer/gtk/GtkImage.h | 113 + libjava/gnu/java/awt/peer/gtk/GtkImageConsumer.h | 70 + libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.h | 64 + libjava/gnu/java/awt/peer/gtk/GtkListPeer.h | 80 + libjava/gnu/java/awt/peer/gtk/GtkMainThread.h | 53 + libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.h | 57 + .../gnu/java/awt/peer/gtk/GtkMenuComponentPeer.h | 52 + libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.h | 57 + libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.h | 66 + libjava/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.h | 52 + libjava/gnu/java/awt/peer/gtk/GtkPanelPeer.h | 52 + libjava/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.h | 54 + libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.h | 62 + libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.h | 57 + libjava/gnu/java/awt/peer/gtk/GtkSelection.h | 94 + libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.h | 89 + libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.h | 80 + libjava/gnu/java/awt/peer/gtk/GtkToolkit$1.h | 40 + .../gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.h | 43 + libjava/gnu/java/awt/peer/gtk/GtkToolkit.h | 235 + libjava/gnu/java/awt/peer/gtk/GtkVolatileImage.h | 98 + libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h | 125 + .../gnu/java/awt/peer/gtk/VolatileImageGraphics.h | 90 + .../peer/headless/HeadlessGraphicsEnvironment.h | 59 + .../gnu/java/awt/peer/headless/HeadlessToolkit.h | 188 + libjava/gnu/java/awt/peer/qt/MainQtThread.h | 50 + libjava/gnu/java/awt/peer/qt/NativeWrapper.h | 41 + libjava/gnu/java/awt/peer/qt/QMatrix.h | 57 + libjava/gnu/java/awt/peer/qt/QPainterPath.h | 64 + libjava/gnu/java/awt/peer/qt/QPen.h | 50 + libjava/gnu/java/awt/peer/qt/QtAudioClip.h | 64 + libjava/gnu/java/awt/peer/qt/QtButtonPeer.h | 53 + libjava/gnu/java/awt/peer/qt/QtCanvasPeer.h | 52 + libjava/gnu/java/awt/peer/qt/QtCheckboxPeer.h | 60 + libjava/gnu/java/awt/peer/qt/QtChoicePeer.h | 57 + libjava/gnu/java/awt/peer/qt/QtComponentGraphics.h | 56 + .../awt/peer/qt/QtComponentPeer$RepaintTimerTask.h | 50 + libjava/gnu/java/awt/peer/qt/QtComponentPeer.h | 189 + libjava/gnu/java/awt/peer/qt/QtContainerPeer.h | 61 + libjava/gnu/java/awt/peer/qt/QtDialogPeer.h | 56 + .../gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.h | 51 + libjava/gnu/java/awt/peer/qt/QtFileDialogPeer.h | 56 + libjava/gnu/java/awt/peer/qt/QtFontMetrics.h | 80 + libjava/gnu/java/awt/peer/qt/QtFontPeer.h | 89 + libjava/gnu/java/awt/peer/qt/QtFramePeer.h | 77 + libjava/gnu/java/awt/peer/qt/QtGraphics.h | 215 + .../gnu/java/awt/peer/qt/QtGraphicsEnvironment.h | 65 + libjava/gnu/java/awt/peer/qt/QtImage.h | 128 + libjava/gnu/java/awt/peer/qt/QtImageConsumer.h | 70 + .../gnu/java/awt/peer/qt/QtImageDirectGraphics.h | 76 + libjava/gnu/java/awt/peer/qt/QtImageGraphics.h | 59 + libjava/gnu/java/awt/peer/qt/QtLabelPeer.h | 52 + libjava/gnu/java/awt/peer/qt/QtListPeer.h | 75 + libjava/gnu/java/awt/peer/qt/QtMenuBarPeer.h | 61 + libjava/gnu/java/awt/peer/qt/QtMenuComponentPeer.h | 59 + libjava/gnu/java/awt/peer/qt/QtMenuItemPeer.h | 62 + libjava/gnu/java/awt/peer/qt/QtMenuPeer.h | 73 + libjava/gnu/java/awt/peer/qt/QtPanelPeer.h | 50 + libjava/gnu/java/awt/peer/qt/QtPopupMenuPeer.h | 53 + .../awt/peer/qt/QtRepaintThread$RepaintComponent.h | 47 + libjava/gnu/java/awt/peer/qt/QtRepaintThread.h | 47 + libjava/gnu/java/awt/peer/qt/QtScreenDevice.h | 76 + .../java/awt/peer/qt/QtScreenDeviceConfiguration.h | 76 + libjava/gnu/java/awt/peer/qt/QtScrollPanePeer.h | 61 + libjava/gnu/java/awt/peer/qt/QtScrollbarPeer.h | 56 + libjava/gnu/java/awt/peer/qt/QtTextAreaPeer.h | 79 + libjava/gnu/java/awt/peer/qt/QtTextFieldPeer.h | 79 + libjava/gnu/java/awt/peer/qt/QtToolkit.h | 203 + libjava/gnu/java/awt/peer/qt/QtVolatileImage$1.h | 44 + libjava/gnu/java/awt/peer/qt/QtVolatileImage.h | 117 + libjava/gnu/java/awt/peer/qt/QtWindowPeer.h | 55 + .../awt/peer/swing/SwingButtonPeer$SwingButton.h | 76 + .../swing/SwingButtonPeer$SwingButtonListener.h | 54 + libjava/gnu/java/awt/peer/swing/SwingButtonPeer.h | 46 + libjava/gnu/java/awt/peer/swing/SwingCanvasPeer.h | 45 + libjava/gnu/java/awt/peer/swing/SwingComponent.h | 59 + .../gnu/java/awt/peer/swing/SwingComponentPeer.h | 146 + .../gnu/java/awt/peer/swing/SwingContainerPeer.h | 83 + libjava/gnu/java/awt/peer/swing/SwingFramePeer.h | 77 + .../awt/peer/swing/SwingLabelPeer$SwingLabel.h | 76 + libjava/gnu/java/awt/peer/swing/SwingLabelPeer.h | 47 + .../java/awt/peer/swing/SwingListPeer$SwingList.h | 76 + libjava/gnu/java/awt/peer/swing/SwingListPeer.h | 79 + .../awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.h | 59 + libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer.h | 70 + .../SwingMenuItemPeer$SwingMenuItemListener.h | 54 + .../gnu/java/awt/peer/swing/SwingMenuItemPeer.h | 63 + .../java/awt/peer/swing/SwingMenuPeer$SwingMenu.h | 58 + libjava/gnu/java/awt/peer/swing/SwingMenuPeer.h | 72 + libjava/gnu/java/awt/peer/swing/SwingPanelPeer.h | 45 + .../peer/swing/SwingTextAreaPeer$SwingTextArea.h | 76 + .../gnu/java/awt/peer/swing/SwingTextAreaPeer.h | 81 + .../peer/swing/SwingTextFieldPeer$SwingTextField.h | 76 + .../gnu/java/awt/peer/swing/SwingTextFieldPeer.h | 69 + libjava/gnu/java/awt/peer/swing/SwingToolkit.h | 73 + libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h | 49 + libjava/gnu/java/awt/print/JavaPrinterGraphics.h | 124 + libjava/gnu/java/awt/print/JavaPrinterJob.h | 95 + libjava/gnu/java/awt/print/PostScriptGraphics2D.h | 211 + libjava/gnu/java/awt/print/SpooledDocument.h | 54 + libjava/gnu/java/beans/BeanInfoEmbryo.h | 73 + libjava/gnu/java/beans/DefaultExceptionListener.h | 34 + libjava/gnu/java/beans/DoubleKey.h | 41 + libjava/gnu/java/beans/DummyAppletContext.h | 62 + libjava/gnu/java/beans/DummyAppletStub.h | 55 + libjava/gnu/java/beans/ExplicitBeanInfo.h | 67 + libjava/gnu/java/beans/IntrospectionIncubator.h | 71 + libjava/gnu/java/beans/decoder/AbstractContext.h | 52 + .../beans/decoder/AbstractCreatableObjectContext.h | 47 + .../java/beans/decoder/AbstractElementHandler.h | 82 + .../gnu/java/beans/decoder/AbstractObjectContext.h | 44 + libjava/gnu/java/beans/decoder/ArrayContext.h | 47 + libjava/gnu/java/beans/decoder/ArrayHandler.h | 59 + libjava/gnu/java/beans/decoder/AssemblyException.h | 36 + libjava/gnu/java/beans/decoder/BooleanHandler.h | 39 + libjava/gnu/java/beans/decoder/ByteHandler.h | 39 + libjava/gnu/java/beans/decoder/CharHandler.h | 39 + libjava/gnu/java/beans/decoder/ClassHandler.h | 39 + .../gnu/java/beans/decoder/ConstructorContext.h | 43 + libjava/gnu/java/beans/decoder/Context.h | 45 + libjava/gnu/java/beans/decoder/DecoderContext.h | 55 + libjava/gnu/java/beans/decoder/DoubleHandler.h | 39 + libjava/gnu/java/beans/decoder/DummyContext.h | 46 + libjava/gnu/java/beans/decoder/DummyHandler.h | 72 + libjava/gnu/java/beans/decoder/ElementHandler.h | 66 + libjava/gnu/java/beans/decoder/FloatHandler.h | 39 + .../gnu/java/beans/decoder/GrowableArrayContext.h | 50 + libjava/gnu/java/beans/decoder/IndexContext.h | 50 + libjava/gnu/java/beans/decoder/IntHandler.h | 39 + libjava/gnu/java/beans/decoder/JavaHandler.h | 65 + libjava/gnu/java/beans/decoder/LongHandler.h | 39 + libjava/gnu/java/beans/decoder/MethodContext.h | 44 + libjava/gnu/java/beans/decoder/MethodFinder.h | 44 + libjava/gnu/java/beans/decoder/NullHandler.h | 39 + libjava/gnu/java/beans/decoder/ObjectContext.h | 43 + libjava/gnu/java/beans/decoder/ObjectHandler.h | 57 + .../PersistenceParser$ArrayHandlerCreator.h | 43 + .../PersistenceParser$BooleanHandlerCreator.h | 43 + .../decoder/PersistenceParser$ByteHandlerCreator.h | 43 + .../decoder/PersistenceParser$CharHandlerCreator.h | 43 + .../PersistenceParser$ClassHandlerCreator.h | 43 + .../java/beans/decoder/PersistenceParser$Creator.h | 37 + .../PersistenceParser$DoubleHandlerCreator.h | 43 + .../PersistenceParser$FloatHandlerCreator.h | 43 + .../decoder/PersistenceParser$IntHandlerCreator.h | 43 + .../decoder/PersistenceParser$JavaHandlerCreator.h | 43 + .../decoder/PersistenceParser$LongHandlerCreator.h | 43 + .../decoder/PersistenceParser$NullHandlerCreator.h | 43 + .../PersistenceParser$ObjectHandlerCreator.h | 43 + .../PersistenceParser$ShortHandlerCreator.h | 43 + .../PersistenceParser$StringHandlerCreator.h | 43 + .../decoder/PersistenceParser$VoidHandlerCreator.h | 43 + libjava/gnu/java/beans/decoder/PersistenceParser.h | 84 + libjava/gnu/java/beans/decoder/PropertyContext.h | 47 + libjava/gnu/java/beans/decoder/ShortHandler.h | 39 + libjava/gnu/java/beans/decoder/SimpleHandler.h | 64 + .../gnu/java/beans/decoder/StaticMethodContext.h | 45 + libjava/gnu/java/beans/decoder/StringHandler.h | 39 + libjava/gnu/java/beans/decoder/VoidHandler.h | 59 + libjava/gnu/java/beans/editors/ColorEditor.h | 51 + libjava/gnu/java/beans/editors/FontEditor.h | 37 + .../gnu/java/beans/editors/NativeBooleanEditor.h | 42 + libjava/gnu/java/beans/editors/NativeByteEditor.h | 37 + .../gnu/java/beans/editors/NativeDoubleEditor.h | 37 + libjava/gnu/java/beans/editors/NativeFloatEditor.h | 37 + libjava/gnu/java/beans/editors/NativeIntEditor.h | 37 + libjava/gnu/java/beans/editors/NativeLongEditor.h | 37 + libjava/gnu/java/beans/editors/NativeShortEditor.h | 37 + libjava/gnu/java/beans/editors/StringEditor.h | 37 + .../java/beans/encoder/ArrayPersistenceDelegate.h | 51 + .../java/beans/encoder/ClassPersistenceDelegate.h | 46 + .../beans/encoder/CollectionPersistenceDelegate.h | 47 + libjava/gnu/java/beans/encoder/Context.h | 43 + .../gnu/java/beans/encoder/GenericScannerState.h | 66 + .../gnu/java/beans/encoder/IgnoringScannerState.h | 53 + .../java/beans/encoder/MapPersistenceDelegate.h | 47 + libjava/gnu/java/beans/encoder/ObjectId.h | 46 + .../beans/encoder/PrimitivePersistenceDelegate.h | 47 + .../gnu/java/beans/encoder/ReportingScannerState.h | 53 + libjava/gnu/java/beans/encoder/Root$RootElement.h | 39 + libjava/gnu/java/beans/encoder/Root.h | 52 + libjava/gnu/java/beans/encoder/ScanEngine.h | 85 + libjava/gnu/java/beans/encoder/ScannerState.h | 94 + libjava/gnu/java/beans/encoder/StAXWriter.h | 62 + libjava/gnu/java/beans/encoder/Writer.h | 47 + .../beans/encoder/elements/ArrayInstantiation.h | 44 + .../gnu/java/beans/encoder/elements/Array_Get.h | 43 + .../gnu/java/beans/encoder/elements/Array_Set.h | 43 + .../java/beans/encoder/elements/ClassResolution.h | 44 + libjava/gnu/java/beans/encoder/elements/Element.h | 55 + libjava/gnu/java/beans/encoder/elements/List_Get.h | 40 + libjava/gnu/java/beans/encoder/elements/List_Set.h | 40 + .../java/beans/encoder/elements/MethodInvocation.h | 43 + .../gnu/java/beans/encoder/elements/NullObject.h | 41 + .../beans/encoder/elements/ObjectInstantiation.h | 43 + .../java/beans/encoder/elements/ObjectReference.h | 44 + .../encoder/elements/PrimitiveInstantiation.h | 45 + .../beans/encoder/elements/StaticFieldAccess.h | 44 + .../encoder/elements/StaticMethodInvocation.h | 44 + .../java/beans/encoder/elements/StringReference.h | 44 + libjava/gnu/java/io/ASN1ParsingException.h | 33 + libjava/gnu/java/io/Base64InputStream.h | 50 + libjava/gnu/java/io/ClassLoaderObjectInputStream.h | 36 + libjava/gnu/java/io/NullOutputStream.h | 39 + libjava/gnu/java/io/ObjectIdentityMap2Int.h | 53 + libjava/gnu/java/io/ObjectIdentityWrapper.h | 36 + libjava/gnu/java/io/PlatformHelper.h | 43 + libjava/gnu/java/lang/ArrayHelper.h | 36 + libjava/gnu/java/lang/CharData.h | 45 + libjava/gnu/java/lang/ClassHelper.h | 43 + libjava/gnu/java/lang/InstrumentationImpl.h | 53 + libjava/gnu/java/lang/MainThread.h | 52 + libjava/gnu/java/lang/VMInstrumentationImpl.h | 40 + libjava/gnu/java/lang/management/BeanImpl.h | 66 + .../java/lang/management/ClassLoadingMXBeanImpl.h | 40 + .../java/lang/management/CompilationMXBeanImpl.h | 42 + .../lang/management/GarbageCollectorMXBeanImpl.h | 37 + .../management/MemoryMXBeanImpl$ListenerData.h | 55 + .../gnu/java/lang/management/MemoryMXBeanImpl.h | 70 + .../java/lang/management/MemoryManagerMXBeanImpl.h | 46 + .../java/lang/management/MemoryPoolMXBeanImpl.h | 60 + .../lang/management/OperatingSystemMXBeanImpl.h | 39 + .../gnu/java/lang/management/RuntimeMXBeanImpl.h | 58 + .../gnu/java/lang/management/ThreadMXBeanImpl.h | 67 + .../lang/management/VMClassLoadingMXBeanImpl.h | 40 + .../lang/management/VMClassLoadingMXBeanImpl.java | 19 +- .../java/lang/management/VMCompilationMXBeanImpl.h | 37 + .../lang/management/VMCompilationMXBeanImpl.java | 5 +- .../lang/management/VMGarbageCollectorMXBeanImpl.h | 38 + .../management/VMGarbageCollectorMXBeanImpl.java | 10 +- .../gnu/java/lang/management/VMMemoryMXBeanImpl.h | 41 + .../java/lang/management/VMMemoryMXBeanImpl.java | 19 +- .../lang/management/VMMemoryManagerMXBeanImpl.h | 40 + .../lang/management/VMMemoryManagerMXBeanImpl.java | 5 +- .../java/lang/management/VMMemoryPoolMXBeanImpl.h | 51 + .../lang/management/VMMemoryPoolMXBeanImpl.java | 64 +- .../gnu/java/lang/management/VMRuntimeMXBeanImpl.h | 43 + .../java/lang/management/VMRuntimeMXBeanImpl.java | 32 +- .../gnu/java/lang/management/VMThreadMXBeanImpl.h | 53 + .../java/lang/management/VMThreadMXBeanImpl.java | 44 +- .../lang/management/natVMClassLoadingMXBeanImpl.cc | 49 + .../lang/management/natVMCompilationMXBeanImpl.cc | 11 + .../management/natVMGarbageCollectorMXBeanImpl.cc | 18 + .../java/lang/management/natVMMemoryMXBeanImpl.cc | 47 + .../management/natVMMemoryManagerMXBeanImpl.cc | 11 + .../lang/management/natVMMemoryPoolMXBeanImpl.cc | 111 + .../java/lang/management/natVMRuntimeMXBeanImpl.cc | 39 + .../java/lang/management/natVMThreadMXBeanImpl.cc | 67 + libjava/gnu/java/lang/natMainThread.cc | 4 + .../gnu/java/lang/reflect/ClassSignatureParser.h | 45 + .../gnu/java/lang/reflect/FieldSignatureParser.h | 39 + .../gnu/java/lang/reflect/GenericArrayTypeImpl.h | 44 + .../gnu/java/lang/reflect/GenericSignatureParser.h | 62 + .../gnu/java/lang/reflect/MethodSignatureParser.h | 52 + .../gnu/java/lang/reflect/ParameterizedTypeImpl.h | 52 + libjava/gnu/java/lang/reflect/TypeImpl.h | 41 + libjava/gnu/java/lang/reflect/TypeSignature.h | 44 + libjava/gnu/java/lang/reflect/TypeVariableImpl.h | 50 + .../gnu/java/lang/reflect/UnresolvedTypeVariable.h | 41 + libjava/gnu/java/lang/reflect/WildcardTypeImpl.h | 48 + libjava/gnu/java/locale/Calendar.h | 43 + libjava/gnu/java/locale/Calendar_de.h | 38 + libjava/gnu/java/locale/Calendar_en.h | 38 + libjava/gnu/java/locale/Calendar_nl.h | 38 + libjava/gnu/java/locale/LocaleData.h | 37 + libjava/gnu/java/locale/LocaleHelper.h | 38 + libjava/gnu/java/locale/LocaleInformation.h | 32 + libjava/gnu/java/locale/LocaleInformation_af_ZA.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_AE.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_BH.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_DZ.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_EG.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_IN.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_IQ.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_JO.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_KW.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_LB.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_LY.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_MA.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_OM.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_QA.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_SD.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_SY.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_TN.h | 53 + libjava/gnu/java/locale/LocaleInformation_ar_YE.h | 53 + libjava/gnu/java/locale/LocaleInformation_be_BY.h | 53 + libjava/gnu/java/locale/LocaleInformation_bn_IN.h | 53 + libjava/gnu/java/locale/LocaleInformation_br_FR.h | 53 + libjava/gnu/java/locale/LocaleInformation_bs_BA.h | 53 + libjava/gnu/java/locale/LocaleInformation_ca_ES.h | 53 + libjava/gnu/java/locale/LocaleInformation_cs_CZ.h | 53 + libjava/gnu/java/locale/LocaleInformation_cy_GB.h | 53 + libjava/gnu/java/locale/LocaleInformation_da_DK.h | 53 + libjava/gnu/java/locale/LocaleInformation_de.h | 59 + libjava/gnu/java/locale/LocaleInformation_de_AT.h | 53 + libjava/gnu/java/locale/LocaleInformation_de_BE.h | 53 + libjava/gnu/java/locale/LocaleInformation_de_CH.h | 53 + libjava/gnu/java/locale/LocaleInformation_de_DE.h | 53 + libjava/gnu/java/locale/LocaleInformation_de_LU.h | 53 + libjava/gnu/java/locale/LocaleInformation_el_GR.h | 53 + libjava/gnu/java/locale/LocaleInformation_en.h | 46 + libjava/gnu/java/locale/LocaleInformation_en_AU.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_BW.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_CA.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_DK.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_GB.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_HK.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_IE.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_IN.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_NZ.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_PH.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_SG.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_US.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_ZA.h | 53 + libjava/gnu/java/locale/LocaleInformation_en_ZW.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_AR.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_BO.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_CL.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_CO.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_CR.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_DO.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_EC.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_ES.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_GT.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_HN.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_MX.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_NI.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_PA.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_PE.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_PR.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_PY.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_SV.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_US.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_UY.h | 53 + libjava/gnu/java/locale/LocaleInformation_es_VE.h | 53 + libjava/gnu/java/locale/LocaleInformation_et_EE.h | 53 + libjava/gnu/java/locale/LocaleInformation_eu_ES.h | 53 + libjava/gnu/java/locale/LocaleInformation_fa_IR.h | 53 + libjava/gnu/java/locale/LocaleInformation_fi_FI.h | 53 + libjava/gnu/java/locale/LocaleInformation_fo_FO.h | 53 + libjava/gnu/java/locale/LocaleInformation_fr_BE.h | 53 + libjava/gnu/java/locale/LocaleInformation_fr_CA.h | 53 + libjava/gnu/java/locale/LocaleInformation_fr_CH.h | 53 + libjava/gnu/java/locale/LocaleInformation_fr_FR.h | 53 + libjava/gnu/java/locale/LocaleInformation_fr_LU.h | 53 + libjava/gnu/java/locale/LocaleInformation_ga_IE.h | 53 + libjava/gnu/java/locale/LocaleInformation_gd_GB.h | 53 + libjava/gnu/java/locale/LocaleInformation_gl_ES.h | 53 + libjava/gnu/java/locale/LocaleInformation_gv_GB.h | 53 + libjava/gnu/java/locale/LocaleInformation_he_IL.h | 53 + libjava/gnu/java/locale/LocaleInformation_hi_IN.h | 53 + libjava/gnu/java/locale/LocaleInformation_hr_HR.h | 53 + libjava/gnu/java/locale/LocaleInformation_hu_HU.h | 53 + libjava/gnu/java/locale/LocaleInformation_id_ID.h | 53 + libjava/gnu/java/locale/LocaleInformation_it_CH.h | 53 + libjava/gnu/java/locale/LocaleInformation_it_IT.h | 53 + libjava/gnu/java/locale/LocaleInformation_iw_IL.h | 53 + libjava/gnu/java/locale/LocaleInformation_ja_JP.h | 53 + libjava/gnu/java/locale/LocaleInformation_ka_GE.h | 53 + libjava/gnu/java/locale/LocaleInformation_kl_GL.h | 53 + libjava/gnu/java/locale/LocaleInformation_ko_KR.h | 53 + libjava/gnu/java/locale/LocaleInformation_kw_GB.h | 53 + libjava/gnu/java/locale/LocaleInformation_lt_LT.h | 53 + libjava/gnu/java/locale/LocaleInformation_lv_LV.h | 53 + libjava/gnu/java/locale/LocaleInformation_mi_NZ.h | 53 + libjava/gnu/java/locale/LocaleInformation_mk_MK.h | 53 + libjava/gnu/java/locale/LocaleInformation_mr_IN.h | 53 + libjava/gnu/java/locale/LocaleInformation_mt_MT.h | 53 + libjava/gnu/java/locale/LocaleInformation_nl.h | 71 + libjava/gnu/java/locale/LocaleInformation_nl_BE.h | 53 + libjava/gnu/java/locale/LocaleInformation_nl_NL.h | 53 + libjava/gnu/java/locale/LocaleInformation_nn_NO.h | 53 + libjava/gnu/java/locale/LocaleInformation_no_NO.h | 53 + libjava/gnu/java/locale/LocaleInformation_oc_FR.h | 53 + libjava/gnu/java/locale/LocaleInformation_pl_PL.h | 53 + libjava/gnu/java/locale/LocaleInformation_pt_BR.h | 53 + libjava/gnu/java/locale/LocaleInformation_pt_PT.h | 53 + libjava/gnu/java/locale/LocaleInformation_ro_RO.h | 53 + libjava/gnu/java/locale/LocaleInformation_ru_RU.h | 53 + libjava/gnu/java/locale/LocaleInformation_ru_UA.h | 53 + libjava/gnu/java/locale/LocaleInformation_se_NO.h | 53 + libjava/gnu/java/locale/LocaleInformation_sk_SK.h | 53 + libjava/gnu/java/locale/LocaleInformation_sl_SI.h | 53 + libjava/gnu/java/locale/LocaleInformation_sq_AL.h | 53 + libjava/gnu/java/locale/LocaleInformation_sr_YU.h | 53 + libjava/gnu/java/locale/LocaleInformation_sv_FI.h | 53 + libjava/gnu/java/locale/LocaleInformation_sv_SE.h | 53 + libjava/gnu/java/locale/LocaleInformation_ta_IN.h | 53 + libjava/gnu/java/locale/LocaleInformation_te_IN.h | 53 + libjava/gnu/java/locale/LocaleInformation_tg_TJ.h | 53 + libjava/gnu/java/locale/LocaleInformation_tl_PH.h | 53 + libjava/gnu/java/locale/LocaleInformation_tr_TR.h | 53 + libjava/gnu/java/locale/LocaleInformation_uk_UA.h | 53 + libjava/gnu/java/locale/LocaleInformation_ur_PK.h | 53 + libjava/gnu/java/locale/LocaleInformation_uz_UZ.h | 53 + libjava/gnu/java/locale/LocaleInformation_vi_VN.h | 53 + libjava/gnu/java/locale/LocaleInformation_yi_US.h | 53 + libjava/gnu/java/locale/LocaleInformation_zh_CN.h | 53 + libjava/gnu/java/locale/LocaleInformation_zh_HK.h | 53 + libjava/gnu/java/locale/LocaleInformation_zh_SG.h | 53 + libjava/gnu/java/locale/LocaleInformation_zh_TW.h | 53 + libjava/gnu/java/math/MPN.h | 57 + libjava/gnu/java/net/BASE64.h | 41 + libjava/gnu/java/net/CRLFInputStream.h | 47 + libjava/gnu/java/net/CRLFOutputStream.h | 48 + .../gnu/java/net/DefaultContentHandlerFactory.h | 46 + libjava/gnu/java/net/DefaultProxySelector.h | 45 + libjava/gnu/java/net/EmptyX509TrustManager.h | 47 + libjava/gnu/java/net/GetLocalHostAction.h | 33 + libjava/gnu/java/net/HeaderFieldHelper.h | 43 + libjava/gnu/java/net/ImageHandler.h | 44 + libjava/gnu/java/net/IndexListParser.h | 51 + libjava/gnu/java/net/LineInputStream.h | 49 + libjava/gnu/java/net/PlainDatagramSocketImpl.h | 93 + .../java/net/PlainSocketImpl$SocketInputStream.h | 43 + .../java/net/PlainSocketImpl$SocketOutputStream.h | 42 + libjava/gnu/java/net/PlainSocketImpl.h | 90 + libjava/gnu/java/net/URLParseError.h | 32 + libjava/gnu/java/net/loader/FileResource.h | 49 + libjava/gnu/java/net/loader/FileURLLoader.h | 52 + libjava/gnu/java/net/loader/JarURLLoader.h | 60 + libjava/gnu/java/net/loader/JarURLResource.h | 60 + libjava/gnu/java/net/loader/RemoteResource.h | 52 + libjava/gnu/java/net/loader/RemoteURLLoader.h | 50 + libjava/gnu/java/net/loader/Resource.h | 62 + libjava/gnu/java/net/loader/URLLoader.h | 63 + .../gnu/java/net/loader/URLStreamHandlerCache.h | 48 + libjava/gnu/java/net/local/LocalServerSocket.h | 68 + libjava/gnu/java/net/local/LocalSocket.h | 100 + libjava/gnu/java/net/local/LocalSocketAddress.h | 42 + .../net/local/LocalSocketImpl$LocalInputStream.h | 52 + .../net/local/LocalSocketImpl$LocalOutputStream.h | 49 + libjava/gnu/java/net/local/LocalSocketImpl.h | 86 + libjava/gnu/java/net/protocol/core/Connection.h | 64 + .../gnu/java/net/protocol/core/CoreInputStream.h | 60 + libjava/gnu/java/net/protocol/core/Handler.h | 49 + .../java/net/protocol/file/Connection$StaticData.h | 48 + libjava/gnu/java/net/protocol/file/Connection.h | 70 + libjava/gnu/java/net/protocol/file/Handler.h | 49 + libjava/gnu/java/net/protocol/ftp/ActiveModeDTP.h | 70 + .../gnu/java/net/protocol/ftp/BlockInputStream.h | 52 + .../gnu/java/net/protocol/ftp/BlockOutputStream.h | 50 + .../java/net/protocol/ftp/CompressedInputStream.h | 59 + .../java/net/protocol/ftp/CompressedOutputStream.h | 56 + libjava/gnu/java/net/protocol/ftp/DTP.h | 43 + libjava/gnu/java/net/protocol/ftp/DTPInputStream.h | 46 + .../gnu/java/net/protocol/ftp/DTPOutputStream.h | 46 + libjava/gnu/java/net/protocol/ftp/FTPConnection.h | 165 + libjava/gnu/java/net/protocol/ftp/FTPException.h | 43 + libjava/gnu/java/net/protocol/ftp/FTPResponse.h | 47 + .../ftp/FTPURLConnection$ClosingInputStream.h | 44 + .../ftp/FTPURLConnection$ClosingOutputStream.h | 44 + .../gnu/java/net/protocol/ftp/FTPURLConnection.h | 65 + libjava/gnu/java/net/protocol/ftp/Handler.h | 50 + libjava/gnu/java/net/protocol/ftp/PassiveModeDTP.h | 65 + .../gnu/java/net/protocol/ftp/StreamInputStream.h | 45 + .../gnu/java/net/protocol/ftp/StreamOutputStream.h | 45 + libjava/gnu/java/net/protocol/gcjlib/Connection.h | 57 + libjava/gnu/java/net/protocol/gcjlib/Handler.h | 49 + libjava/gnu/java/net/protocol/http/Authenticator.h | 39 + .../net/protocol/http/ByteArrayRequestBodyWriter.h | 47 + .../java/net/protocol/http/ChunkedInputStream.h | 58 + libjava/gnu/java/net/protocol/http/Cookie.h | 56 + libjava/gnu/java/net/protocol/http/CookieManager.h | 42 + libjava/gnu/java/net/protocol/http/Credentials.h | 44 + .../net/protocol/http/HTTPConnection$Pool$Reaper.h | 44 + .../java/net/protocol/http/HTTPConnection$Pool.h | 50 + .../gnu/java/net/protocol/http/HTTPConnection.h | 128 + .../gnu/java/net/protocol/http/HTTPDateFormat.h | 62 + .../java/net/protocol/http/HTTPURLConnection$1.h | 47 + .../gnu/java/net/protocol/http/HTTPURLConnection.h | 115 + libjava/gnu/java/net/protocol/http/Handler.h | 50 + .../java/net/protocol/http/Headers$HeaderElement.h | 41 + libjava/gnu/java/net/protocol/http/Headers.h | 64 + .../net/protocol/http/LimitedLengthInputStream.h | 57 + libjava/gnu/java/net/protocol/http/Request.h | 87 + .../gnu/java/net/protocol/http/RequestBodyWriter.h | 42 + libjava/gnu/java/net/protocol/http/Response.h | 61 + .../java/net/protocol/http/ResponseHeaderHandler.h | 38 + .../java/net/protocol/http/SimpleCookieManager.h | 48 + libjava/gnu/java/net/protocol/https/Handler.h | 50 + .../net/protocol/jar/Connection$JarFileCache.h | 50 + libjava/gnu/java/net/protocol/jar/Connection.h | 62 + libjava/gnu/java/net/protocol/jar/Handler.h | 54 + libjava/gnu/java/nio/ChannelInputStream.h | 46 + libjava/gnu/java/nio/ChannelOutputStream.h | 46 + libjava/gnu/java/nio/ChannelReader.h | 59 + libjava/gnu/java/nio/ChannelWriter.h | 61 + libjava/gnu/java/nio/DatagramChannelImpl.h | 78 + libjava/gnu/java/nio/DatagramChannelSelectionKey.h | 47 + libjava/gnu/java/nio/EpollSelectionKeyImpl.h | 63 + libjava/gnu/java/nio/FileLockImpl.h | 44 + .../{classpath => }/gnu/java/nio/FileLockImpl.java | 0 libjava/gnu/java/nio/InputStreamChannel.h | 46 + libjava/gnu/java/nio/KqueueSelectionKeyImpl.h | 71 + libjava/gnu/java/nio/NIOConstants.h | 33 + libjava/gnu/java/nio/NIODatagramSocket.h | 53 + libjava/gnu/java/nio/NIOServerSocket.h | 58 + libjava/gnu/java/nio/NIOSocket.h | 57 + .../{classpath => }/gnu/java/nio/NIOSocket.java | 0 libjava/gnu/java/nio/OutputStreamChannel.h | 46 + libjava/gnu/java/nio/PipeImpl$SinkChannelImpl.h | 61 + libjava/gnu/java/nio/PipeImpl$SourceChannelImpl.h | 61 + libjava/gnu/java/nio/PipeImpl.h | 55 + libjava/{classpath => }/gnu/java/nio/PipeImpl.java | 0 libjava/gnu/java/nio/SelectionKeyImpl.h | 59 + libjava/gnu/java/nio/SelectorImpl.h | 76 + libjava/gnu/java/nio/SelectorProviderImpl.h | 54 + .../gnu/java/nio/SelectorProviderImpl.java | 0 libjava/gnu/java/nio/ServerSocketChannelImpl.h | 64 + .../gnu/java/nio/ServerSocketChannelSelectionKey.h | 47 + libjava/gnu/java/nio/SocketChannelImpl.h | 82 + libjava/gnu/java/nio/SocketChannelSelectionKey.h | 47 + .../gnu/java/nio/SocketChannelSelectionKey.java | 4 +- .../gnu/java/nio/SocketChannelSelectionKeyImpl.h | 38 + .../java/nio/SocketChannelSelectionKeyImpl.java | 0 libjava/gnu/java/nio/VMChannel.h | 77 + libjava/gnu/java/nio/VMChannel.java | 50 +- libjava/gnu/java/nio/VMChannelOwner.h | 33 + libjava/gnu/java/nio/VMPipe.h | 48 + libjava/gnu/java/nio/VMSelector.h | 37 + libjava/gnu/java/nio/channels/FileChannelImpl.h | 118 + libjava/gnu/java/nio/channels/FileChannelImpl.java | 8 + libjava/gnu/java/nio/charset/ByteCharset$Decoder.h | 55 + libjava/gnu/java/nio/charset/ByteCharset$Encoder.h | 58 + libjava/gnu/java/nio/charset/ByteCharset.h | 60 + libjava/gnu/java/nio/charset/Cp424.h | 40 + libjava/gnu/java/nio/charset/Cp437.h | 40 + libjava/gnu/java/nio/charset/Cp737.h | 40 + libjava/gnu/java/nio/charset/Cp775.h | 40 + libjava/gnu/java/nio/charset/Cp850.h | 40 + libjava/gnu/java/nio/charset/Cp852.h | 40 + libjava/gnu/java/nio/charset/Cp855.h | 40 + libjava/gnu/java/nio/charset/Cp857.h | 40 + libjava/gnu/java/nio/charset/Cp860.h | 40 + libjava/gnu/java/nio/charset/Cp861.h | 40 + libjava/gnu/java/nio/charset/Cp862.h | 40 + libjava/gnu/java/nio/charset/Cp863.h | 40 + libjava/gnu/java/nio/charset/Cp864.h | 40 + libjava/gnu/java/nio/charset/Cp865.h | 40 + libjava/gnu/java/nio/charset/Cp866.h | 40 + libjava/gnu/java/nio/charset/Cp869.h | 40 + libjava/gnu/java/nio/charset/Cp874.h | 40 + libjava/gnu/java/nio/charset/EncodingHelper.h | 52 + libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h | 51 + libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h | 54 + libjava/gnu/java/nio/charset/ISO_8859_1.h | 51 + libjava/gnu/java/nio/charset/ISO_8859_13.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_15.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_2.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_3.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_4.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_5.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_6.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_7.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_8.h | 40 + libjava/gnu/java/nio/charset/ISO_8859_9.h | 40 + libjava/gnu/java/nio/charset/KOI_8.h | 40 + libjava/gnu/java/nio/charset/MS874.h | 40 + libjava/gnu/java/nio/charset/MacCentralEurope.h | 40 + libjava/gnu/java/nio/charset/MacCroatian.h | 40 + libjava/gnu/java/nio/charset/MacCyrillic.h | 40 + libjava/gnu/java/nio/charset/MacDingbat.h | 40 + libjava/gnu/java/nio/charset/MacGreek.h | 40 + libjava/gnu/java/nio/charset/MacIceland.h | 40 + libjava/gnu/java/nio/charset/MacRoman.h | 40 + libjava/gnu/java/nio/charset/MacRomania.h | 40 + libjava/gnu/java/nio/charset/MacSymbol.h | 40 + libjava/gnu/java/nio/charset/MacThai.h | 40 + libjava/gnu/java/nio/charset/MacTurkish.h | 40 + libjava/gnu/java/nio/charset/Provider$1.h | 37 + libjava/gnu/java/nio/charset/Provider.h | 60 + libjava/gnu/java/nio/charset/US_ASCII$Decoder.h | 51 + libjava/gnu/java/nio/charset/US_ASCII$Encoder.h | 54 + libjava/gnu/java/nio/charset/US_ASCII.h | 51 + libjava/gnu/java/nio/charset/UTF_16.h | 51 + libjava/gnu/java/nio/charset/UTF_16BE.h | 51 + libjava/gnu/java/nio/charset/UTF_16Decoder.h | 63 + libjava/gnu/java/nio/charset/UTF_16Encoder.h | 61 + libjava/gnu/java/nio/charset/UTF_16LE.h | 51 + libjava/gnu/java/nio/charset/UTF_8$Decoder.h | 53 + libjava/gnu/java/nio/charset/UTF_8$Encoder.h | 51 + libjava/gnu/java/nio/charset/UTF_8.h | 51 + libjava/gnu/java/nio/charset/UnicodeLittle.h | 51 + libjava/gnu/java/nio/charset/Windows1250.h | 40 + libjava/gnu/java/nio/charset/Windows1251.h | 40 + libjava/gnu/java/nio/charset/Windows1252.h | 40 + libjava/gnu/java/nio/charset/Windows1253.h | 40 + libjava/gnu/java/nio/charset/Windows1254.h | 40 + libjava/gnu/java/nio/charset/Windows1255.h | 40 + libjava/gnu/java/nio/charset/Windows1256.h | 40 + libjava/gnu/java/nio/charset/Windows1257.h | 40 + libjava/gnu/java/nio/charset/Windows1258.h | 40 + libjava/gnu/java/nio/natVMChannel.cc | 46 + .../gnu/java/rmi/RMIMarshalledObjectInputStream.h | 39 + .../gnu/java/rmi/RMIMarshalledObjectOutputStream.h | 43 + .../rmi/activation/ActivationSystemTransient.h | 80 + libjava/gnu/java/rmi/activation/BidiTable.h | 54 + .../java/rmi/activation/DefaultActivationGroup.h | 58 + .../java/rmi/activation/DefaultActivationSystem.h | 52 + libjava/gnu/java/rmi/dgc/DGCImpl$RefProtector.h | 54 + libjava/gnu/java/rmi/dgc/DGCImpl.h | 59 + libjava/gnu/java/rmi/dgc/DGCImpl_Skel.h | 55 + libjava/gnu/java/rmi/dgc/DGCImpl_Stub.h | 65 + .../rmi/dgc/LeaseRenewingTask$LeaseTimerTask.h | 41 + libjava/gnu/java/rmi/dgc/LeaseRenewingTask.h | 60 + libjava/gnu/java/rmi/registry/RegistryImpl.h | 61 + libjava/gnu/java/rmi/registry/RegistryImpl_Skel.h | 55 + libjava/gnu/java/rmi/registry/RegistryImpl_Stub.h | 66 + libjava/gnu/java/rmi/rmic/Compile_gcj.java | 56 - libjava/gnu/java/rmi/rmic/Compile_jikes.java | 57 - libjava/gnu/java/rmi/rmic/Compile_kjc.java | 57 - libjava/gnu/java/rmi/rmic/Compiler.java | 108 - libjava/gnu/java/rmi/rmic/CompilerProcess.java | 164 - libjava/gnu/java/rmi/rmic/RMIC.java | 1225 -- libjava/gnu/java/rmi/rmic/RMICException.java | 66 - libjava/gnu/java/rmi/rmic/TabbedWriter.java | 100 - libjava/gnu/java/rmi/server/ActivatableRef.h | 65 + libjava/gnu/java/rmi/server/ActivatableServerRef.h | 67 + libjava/gnu/java/rmi/server/CombinedClassLoader.h | 51 + .../server/ConnectionRunnerPool$ConnectionRunner.h | 44 + libjava/gnu/java/rmi/server/ConnectionRunnerPool.h | 53 + libjava/gnu/java/rmi/server/ProtocolConstants.h | 49 + .../java/rmi/server/RMIClassLoaderImpl$CacheKey.h | 45 + .../rmi/server/RMIClassLoaderImpl$MyClassLoader.h | 52 + libjava/gnu/java/rmi/server/RMIClassLoaderImpl.h | 65 + .../gnu/java/rmi/server/RMIDefaultSocketFactory.h | 45 + libjava/gnu/java/rmi/server/RMIHashes.h | 37 + libjava/gnu/java/rmi/server/RMIIncomingThread.h | 40 + libjava/gnu/java/rmi/server/RMIObjectInputStream.h | 43 + .../gnu/java/rmi/server/RMIObjectOutputStream.h | 42 + libjava/gnu/java/rmi/server/RMIVoidValue.h | 37 + libjava/gnu/java/rmi/server/TripleKey.h | 44 + libjava/gnu/java/rmi/server/UnicastConnection.h | 67 + .../java/rmi/server/UnicastConnectionManager$1.h | 37 + .../gnu/java/rmi/server/UnicastConnectionManager.h | 94 + libjava/gnu/java/rmi/server/UnicastRef.h | 91 + .../UnicastRemoteCall$DummyObjectInputStream.h | 64 + .../UnicastRemoteCall$DummyObjectOutputStream.h | 59 + libjava/gnu/java/rmi/server/UnicastRemoteCall.h | 81 + libjava/gnu/java/rmi/server/UnicastRemoteStub.h | 47 + libjava/gnu/java/rmi/server/UnicastServer.h | 74 + libjava/gnu/java/rmi/server/UnicastServerRef.h | 80 + libjava/gnu/java/security/Configuration.h | 32 + libjava/gnu/java/security/Engine.h | 49 + libjava/gnu/java/security/OID.h | 64 + libjava/gnu/java/security/PolicyFile$1.h | 40 + libjava/gnu/java/security/PolicyFile.h | 67 + libjava/gnu/java/security/Properties$1.h | 38 + libjava/gnu/java/security/Properties.h | 60 + libjava/gnu/java/security/Registry.h | 187 + libjava/gnu/java/security/Requires.h | 35 + .../gnu/java/security/action/GetPropertyAction.h | 45 + .../security/action/GetSecurityPropertyAction.h | 45 + .../gnu/java/security/action/SetAccessibleAction.h | 41 + libjava/gnu/java/security/ber/BER.h | 36 + .../gnu/java/security/ber/BEREncodingException.h | 36 + libjava/gnu/java/security/ber/BERReader.h | 45 + libjava/gnu/java/security/ber/BERValue.h | 49 + libjava/gnu/java/security/der/BitString.h | 58 + libjava/gnu/java/security/der/DER.h | 65 + .../gnu/java/security/der/DEREncodingException.h | 36 + libjava/gnu/java/security/der/DERReader.h | 56 + libjava/gnu/java/security/der/DERValue.h | 56 + libjava/gnu/java/security/der/DERWriter.h | 64 + libjava/gnu/java/security/hash/BaseHash.h | 59 + libjava/gnu/java/security/hash/HashFactory.h | 38 + libjava/gnu/java/security/hash/Haval.h | 86 + libjava/gnu/java/security/hash/IMessageDigest.h | 46 + libjava/gnu/java/security/hash/MD2.h | 60 + libjava/gnu/java/security/hash/MD4.h | 63 + libjava/gnu/java/security/hash/MD5.h | 57 + libjava/gnu/java/security/hash/RipeMD128.h | 62 + libjava/gnu/java/security/hash/RipeMD160.h | 63 + libjava/gnu/java/security/hash/Sha160.h | 61 + libjava/gnu/java/security/hash/Sha256.h | 65 + libjava/gnu/java/security/hash/Sha384.h | 65 + libjava/gnu/java/security/hash/Sha512.h | 65 + libjava/gnu/java/security/hash/Tiger.h | 63 + libjava/gnu/java/security/hash/Whirlpool.h | 113 + libjava/gnu/java/security/jce/hash/HavalSpi.h | 38 + libjava/gnu/java/security/jce/hash/MD2Spi.h | 38 + libjava/gnu/java/security/jce/hash/MD4Spi.h | 38 + libjava/gnu/java/security/jce/hash/MD5Spi.h | 38 + .../java/security/jce/hash/MessageDigestAdapter.h | 57 + libjava/gnu/java/security/jce/hash/RipeMD128Spi.h | 38 + libjava/gnu/java/security/jce/hash/RipeMD160Spi.h | 38 + libjava/gnu/java/security/jce/hash/Sha160Spi.h | 38 + libjava/gnu/java/security/jce/hash/Sha256Spi.h | 38 + libjava/gnu/java/security/jce/hash/Sha384Spi.h | 38 + libjava/gnu/java/security/jce/hash/Sha512Spi.h | 38 + libjava/gnu/java/security/jce/hash/TigerSpi.h | 38 + libjava/gnu/java/security/jce/hash/WhirlpoolSpi.h | 38 + .../gnu/java/security/jce/prng/HavalRandomSpi.h | 38 + libjava/gnu/java/security/jce/prng/MD2RandomSpi.h | 38 + libjava/gnu/java/security/jce/prng/MD4RandomSpi.h | 38 + libjava/gnu/java/security/jce/prng/MD5RandomSpi.h | 38 + .../java/security/jce/prng/RipeMD128RandomSpi.h | 38 + .../java/security/jce/prng/RipeMD160RandomSpi.h | 38 + .../java/security/jce/prng/SecureRandomAdapter.h | 52 + .../gnu/java/security/jce/prng/Sha160RandomSpi.h | 38 + .../gnu/java/security/jce/prng/Sha256RandomSpi.h | 38 + .../gnu/java/security/jce/prng/Sha384RandomSpi.h | 38 + .../gnu/java/security/jce/prng/Sha512RandomSpi.h | 38 + .../gnu/java/security/jce/prng/TigerRandomSpi.h | 38 + .../java/security/jce/prng/WhirlpoolRandomSpi.h | 38 + libjava/gnu/java/security/jce/sig/DSSKeyFactory.h | 57 + .../java/security/jce/sig/DSSKeyPairGeneratorSpi.h | 57 + libjava/gnu/java/security/jce/sig/DSSParameters.h | 67 + .../java/security/jce/sig/DSSParametersGenerator.h | 68 + .../gnu/java/security/jce/sig/DSSRawSignatureSpi.h | 38 + .../gnu/java/security/jce/sig/EncodedKeyFactory.h | 106 + .../security/jce/sig/KeyPairGeneratorAdapter.h | 61 + libjava/gnu/java/security/jce/sig/MD2withRSA.h | 38 + libjava/gnu/java/security/jce/sig/MD5withRSA.h | 38 + libjava/gnu/java/security/jce/sig/RSAKeyFactory.h | 57 + .../java/security/jce/sig/RSAKeyPairGeneratorSpi.h | 51 + .../java/security/jce/sig/RSAPSSRawSignatureSpi.h | 38 + libjava/gnu/java/security/jce/sig/SHA160withDSS.h | 38 + libjava/gnu/java/security/jce/sig/SHA160withRSA.h | 38 + libjava/gnu/java/security/jce/sig/SHA256withRSA.h | 38 + libjava/gnu/java/security/jce/sig/SHA384withRSA.h | 38 + libjava/gnu/java/security/jce/sig/SHA512withRSA.h | 38 + .../gnu/java/security/jce/sig/SignatureAdapter.h | 78 + libjava/gnu/java/security/key/IKeyPairCodec.h | 53 + libjava/gnu/java/security/key/IKeyPairGenerator.h | 44 + .../gnu/java/security/key/KeyPairCodecFactory.h | 59 + .../java/security/key/KeyPairGeneratorFactory.h | 41 + libjava/gnu/java/security/key/dss/DSSKey.h | 71 + .../java/security/key/dss/DSSKeyPairGenerator.h | 98 + .../java/security/key/dss/DSSKeyPairPKCS8Codec.h | 58 + .../gnu/java/security/key/dss/DSSKeyPairRawCodec.h | 53 + .../java/security/key/dss/DSSKeyPairX509Codec.h | 57 + libjava/gnu/java/security/key/dss/DSSPrivateKey.h | 57 + libjava/gnu/java/security/key/dss/DSSPublicKey.h | 57 + libjava/gnu/java/security/key/dss/FIPS186.h | 78 + libjava/gnu/java/security/key/rsa/GnuRSAKey.h | 66 + .../gnu/java/security/key/rsa/GnuRSAPrivateKey.h | 68 + .../gnu/java/security/key/rsa/GnuRSAPublicKey.h | 55 + .../java/security/key/rsa/RSAKeyPairGenerator.h | 79 + .../java/security/key/rsa/RSAKeyPairPKCS8Codec.h | 58 + .../gnu/java/security/key/rsa/RSAKeyPairRawCodec.h | 53 + .../java/security/key/rsa/RSAKeyPairX509Codec.h | 58 + libjava/gnu/java/security/pkcs/PKCS7Data.h | 43 + libjava/gnu/java/security/pkcs/PKCS7SignedData.h | 81 + libjava/gnu/java/security/pkcs/SignerInfo.h | 87 + libjava/gnu/java/security/prng/BasePRNG.h | 59 + libjava/gnu/java/security/prng/EntropySource.h | 38 + libjava/gnu/java/security/prng/IRandom.h | 44 + .../gnu/java/security/prng/LimitReachedException.h | 36 + libjava/gnu/java/security/prng/MDGenerator.h | 51 + libjava/gnu/java/security/prng/PRNGFactory.h | 39 + libjava/gnu/java/security/prng/RandomEvent.h | 45 + .../gnu/java/security/prng/RandomEventListener.h | 36 + .../security/provider/CollectionCertStoreImpl.h | 52 + libjava/gnu/java/security/provider/DefaultPolicy.h | 49 + libjava/gnu/java/security/provider/Gnu$1.h | 41 + libjava/gnu/java/security/provider/Gnu.h | 35 + .../security/provider/PKIXCertPathValidatorImpl.h | 67 + .../security/provider/X509CertificateFactory.h | 68 + libjava/gnu/java/security/sig/BaseSignature.h | 86 + libjava/gnu/java/security/sig/ISignature.h | 47 + libjava/gnu/java/security/sig/ISignatureCodec.h | 40 + .../gnu/java/security/sig/SignatureCodecFactory.h | 45 + libjava/gnu/java/security/sig/SignatureFactory.h | 41 + libjava/gnu/java/security/sig/dss/DSSSignature.h | 80 + .../java/security/sig/dss/DSSSignatureRawCodec.h | 43 + .../java/security/sig/dss/DSSSignatureX509Codec.h | 43 + libjava/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.h | 70 + .../gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.h | 58 + libjava/gnu/java/security/sig/rsa/EMSA_PSS.h | 54 + libjava/gnu/java/security/sig/rsa/RSA.h | 74 + .../java/security/sig/rsa/RSAPKCS1V1_5Signature.h | 65 + .../sig/rsa/RSAPKCS1V1_5SignatureRawCodec.h | 43 + .../sig/rsa/RSAPKCS1V1_5SignatureX509Codec.h | 43 + .../gnu/java/security/sig/rsa/RSAPSSSignature.h | 68 + .../security/sig/rsa/RSAPSSSignatureRawCodec.h | 43 + .../java/security/sig/rsa/RSASignatureFactory.h | 46 + libjava/gnu/java/security/util/Base64.h | 53 + libjava/gnu/java/security/util/ByteArray.h | 44 + .../java/security/util/ByteBufferOutputStream.h | 54 + libjava/gnu/java/security/util/DerUtil.h | 41 + .../java/security/util/ExpirableObject$Destroyer.h | 43 + libjava/gnu/java/security/util/ExpirableObject.h | 48 + libjava/gnu/java/security/util/FormatUtil.h | 38 + libjava/gnu/java/security/util/IntegerUtil$1.h | 37 + libjava/gnu/java/security/util/IntegerUtil.h | 41 + libjava/gnu/java/security/util/PRNG.h | 47 + libjava/gnu/java/security/util/Prime.h | 44 + libjava/gnu/java/security/util/Sequence.h | 45 + libjava/gnu/java/security/util/SimpleList.h | 48 + libjava/gnu/java/security/util/Util.h | 72 + libjava/gnu/java/security/x509/GnuPKIExtension.h | 47 + libjava/gnu/java/security/x509/PolicyNodeImpl.h | 73 + libjava/gnu/java/security/x509/Util.h | 46 + .../gnu/java/security/x509/X500DistinguishedName.h | 90 + libjava/gnu/java/security/x509/X509CRL.h | 124 + libjava/gnu/java/security/x509/X509CRLEntry.h | 75 + .../gnu/java/security/x509/X509CRLSelectorImpl.h | 57 + libjava/gnu/java/security/x509/X509CertPath.h | 57 + .../gnu/java/security/x509/X509CertSelectorImpl.h | 62 + libjava/gnu/java/security/x509/X509Certificate.h | 140 + .../security/x509/ext/AuthorityKeyIdentifier.h | 59 + .../gnu/java/security/x509/ext/BasicConstraints.h | 51 + libjava/gnu/java/security/x509/ext/CRLNumber.h | 56 + .../java/security/x509/ext/CertificatePolicies.h | 51 + .../gnu/java/security/x509/ext/ExtendedKeyUsage.h | 47 + .../gnu/java/security/x509/ext/Extension$Value.h | 50 + libjava/gnu/java/security/x509/ext/Extension.h | 64 + libjava/gnu/java/security/x509/ext/GeneralNames.h | 54 + .../security/x509/ext/IssuerAlternativeNames.h | 48 + libjava/gnu/java/security/x509/ext/KeyUsage.h | 60 + .../gnu/java/security/x509/ext/PolicyConstraint.h | 49 + .../gnu/java/security/x509/ext/PolicyMappings.h | 47 + .../java/security/x509/ext/PrivateKeyUsagePeriod.h | 49 + libjava/gnu/java/security/x509/ext/ReasonCode.h | 45 + .../security/x509/ext/SubjectAlternativeNames.h | 48 + .../java/security/x509/ext/SubjectKeyIdentifier.h | 47 + libjava/gnu/java/text/AttributedFormatBuffer.h | 70 + libjava/gnu/java/text/BaseBreakIterator.h | 49 + libjava/gnu/java/text/CharacterBreakIterator.h | 56 + libjava/gnu/java/text/FormatBuffer.h | 50 + libjava/gnu/java/text/FormatCharacterIterator.h | 77 + libjava/gnu/java/text/LineBreakIterator.h | 41 + libjava/gnu/java/text/SentenceBreakIterator.h | 44 + libjava/gnu/java/text/StringFormatBuffer.h | 58 + libjava/gnu/java/text/WordBreakIterator.h | 41 + libjava/gnu/java/util/DoubleEnumeration.h | 40 + libjava/gnu/java/util/EmptyEnumeration.h | 38 + libjava/gnu/java/util/WeakIdentityHashMap$1.h | 47 + .../WeakIdentityHashMap$WeakBucket$WeakEntry.h | 44 + .../gnu/java/util/WeakIdentityHashMap$WeakBucket.h | 39 + .../java/util/WeakIdentityHashMap$WeakEntrySet.h | 40 + libjava/gnu/java/util/WeakIdentityHashMap.h | 82 + libjava/gnu/java/util/jar/JarUtils.h | 71 + libjava/gnu/java/util/prefs/EventDispatcher.h | 41 + libjava/gnu/java/util/prefs/FileBasedFactory.h | 41 + .../gnu/java/util/prefs/FileBasedPreferences$1.h | 41 + libjava/gnu/java/util/prefs/FileBasedPreferences.h | 58 + libjava/gnu/java/util/prefs/GConfBasedFactory.h | 41 + .../gnu/java/util/prefs/GConfBasedPreferences.h | 81 + libjava/gnu/java/util/prefs/MemoryBasedFactory.h | 41 + .../gnu/java/util/prefs/MemoryBasedPreferences.h | 52 + libjava/gnu/java/util/prefs/NodeReader.h | 50 + libjava/gnu/java/util/prefs/NodeWriter.h | 53 + .../gnu/java/util/prefs/gconf/GConfNativePeer.h | 72 + .../gnu/java/util/regex/BacktrackStack$Backtrack.h | 43 + libjava/gnu/java/util/regex/BacktrackStack.h | 50 + libjava/gnu/java/util/regex/CharIndexed.h | 48 + libjava/gnu/java/util/regex/CharIndexedCharArray.h | 38 + .../gnu/java/util/regex/CharIndexedCharSequence.h | 57 + .../gnu/java/util/regex/CharIndexedInputStream.h | 64 + libjava/gnu/java/util/regex/CharIndexedString.h | 36 + .../gnu/java/util/regex/CharIndexedStringBuffer.h | 36 + libjava/gnu/java/util/regex/RE$CharExpression.h | 42 + libjava/gnu/java/util/regex/RE$CharUnit.h | 39 + libjava/gnu/java/util/regex/RE$IntPair.h | 39 + libjava/gnu/java/util/regex/RE$NamedProperty.h | 40 + .../gnu/java/util/regex/RE$ParseCharClassResult.h | 41 + libjava/gnu/java/util/regex/RE.h | 146 + libjava/gnu/java/util/regex/REException.h | 56 + libjava/gnu/java/util/regex/REFilterInputStream.h | 51 + libjava/gnu/java/util/regex/REMatch.h | 68 + libjava/gnu/java/util/regex/REMatchEnumeration.h | 55 + libjava/gnu/java/util/regex/RESyntax.h | 101 + libjava/gnu/java/util/regex/REToken.h | 71 + libjava/gnu/java/util/regex/RETokenAny.h | 48 + libjava/gnu/java/util/regex/RETokenBackRef.h | 43 + libjava/gnu/java/util/regex/RETokenChar.h | 56 + libjava/gnu/java/util/regex/RETokenEnd.h | 50 + .../java/util/regex/RETokenEndOfPreviousMatch.h | 43 + libjava/gnu/java/util/regex/RETokenEndSub.h | 43 + libjava/gnu/java/util/regex/RETokenIndependent.h | 44 + libjava/gnu/java/util/regex/RETokenLookAhead.h | 44 + .../regex/RETokenLookBehind$RETokenMatchHereOnly.h | 43 + libjava/gnu/java/util/regex/RETokenLookBehind.h | 44 + .../gnu/java/util/regex/RETokenNamedProperty$1.h | 41 + .../java/util/regex/RETokenNamedProperty$Handler.h | 39 + .../util/regex/RETokenNamedProperty$POSIXHandler.h | 40 + .../RETokenNamedProperty$UnicodeBlockHandler.h | 39 + ...RETokenNamedProperty$UnicodeCategoriesHandler.h | 41 + .../RETokenNamedProperty$UnicodeCategoryHandler.h | 39 + libjava/gnu/java/util/regex/RETokenNamedProperty.h | 64 + libjava/gnu/java/util/regex/RETokenOneOf.h | 62 + libjava/gnu/java/util/regex/RETokenPOSIX.h | 64 + libjava/gnu/java/util/regex/RETokenRange.h | 49 + .../util/regex/RETokenRepeated$DoablesFinder.h | 48 + .../util/regex/RETokenRepeated$FindMatchControl.h | 38 + .../regex/RETokenRepeated$FindMatchControlStack.h | 44 + .../java/util/regex/RETokenRepeated$StackedInfo.h | 44 + .../util/regex/RETokenRepeated$TryAnotherResult.h | 46 + libjava/gnu/java/util/regex/RETokenRepeated.h | 76 + libjava/gnu/java/util/regex/RETokenStart.h | 47 + libjava/gnu/java/util/regex/RETokenWordBoundary.h | 49 + libjava/gnu/java/util/regex/UncheckedRE.h | 38 + libjava/gnu/javax/crypto/RSACipherImpl.h | 91 + libjava/gnu/javax/crypto/assembly/Assembly.h | 59 + libjava/gnu/javax/crypto/assembly/Cascade.h | 60 + libjava/gnu/javax/crypto/assembly/CascadeStage.h | 53 + .../gnu/javax/crypto/assembly/CascadeTransformer.h | 48 + .../gnu/javax/crypto/assembly/DeflateTransformer.h | 50 + libjava/gnu/javax/crypto/assembly/Direction.h | 42 + .../javax/crypto/assembly/LoopbackTransformer.h | 49 + libjava/gnu/javax/crypto/assembly/ModeStage.h | 57 + libjava/gnu/javax/crypto/assembly/Operation.h | 41 + .../gnu/javax/crypto/assembly/PaddingTransformer.h | 50 + libjava/gnu/javax/crypto/assembly/Stage.h | 62 + libjava/gnu/javax/crypto/assembly/Transformer.h | 85 + .../javax/crypto/assembly/TransformerException.h | 46 + libjava/gnu/javax/crypto/cipher/Anubis.h | 64 + libjava/gnu/javax/crypto/cipher/BaseCipher.h | 69 + libjava/gnu/javax/crypto/cipher/Blowfish$Block.h | 41 + libjava/gnu/javax/crypto/cipher/Blowfish$Context.h | 50 + libjava/gnu/javax/crypto/cipher/Blowfish.h | 65 + libjava/gnu/javax/crypto/cipher/Cast5$Cast5Key.h | 72 + libjava/gnu/javax/crypto/cipher/Cast5.h | 68 + libjava/gnu/javax/crypto/cipher/CipherFactory.h | 38 + libjava/gnu/javax/crypto/cipher/DES$Context.h | 48 + libjava/gnu/javax/crypto/cipher/DES.h | 70 + libjava/gnu/javax/crypto/cipher/IBlockCipher.h | 50 + libjava/gnu/javax/crypto/cipher/IBlockCipherSpi.h | 42 + libjava/gnu/javax/crypto/cipher/Khazad.h | 67 + libjava/gnu/javax/crypto/cipher/NullCipher.h | 44 + libjava/gnu/javax/crypto/cipher/Rijndael.h | 76 + libjava/gnu/javax/crypto/cipher/Serpent$Key.h | 175 + libjava/gnu/javax/crypto/cipher/Serpent.h | 84 + libjava/gnu/javax/crypto/cipher/Square.h | 66 + .../gnu/javax/crypto/cipher/TripleDES$Context.h | 43 + libjava/gnu/javax/crypto/cipher/TripleDES.h | 53 + libjava/gnu/javax/crypto/cipher/Twofish.h | 101 + libjava/gnu/javax/crypto/cipher/WeakKeyException.h | 36 + libjava/gnu/javax/crypto/jce/DiffieHellmanImpl.h | 74 + libjava/gnu/javax/crypto/jce/GnuCrypto$1.h | 41 + libjava/gnu/javax/crypto/jce/GnuCrypto.h | 37 + libjava/gnu/javax/crypto/jce/GnuSasl$1.h | 41 + libjava/gnu/javax/crypto/jce/GnuSasl.h | 37 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacRipeMD128.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacRipeMD160.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.h | 35 + .../crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacWhirlpool.h | 35 + .../gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.h | 60 + .../gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.h | 41 + libjava/gnu/javax/crypto/jce/cipher/AESSpi.h | 55 + libjava/gnu/javax/crypto/jce/cipher/ARCFourSpi.h | 80 + libjava/gnu/javax/crypto/jce/cipher/AnubisSpi.h | 38 + libjava/gnu/javax/crypto/jce/cipher/BlowfishSpi.h | 38 + libjava/gnu/javax/crypto/jce/cipher/Cast5Spi.h | 38 + .../gnu/javax/crypto/jce/cipher/CipherAdapter.h | 94 + libjava/gnu/javax/crypto/jce/cipher/DESSpi.h | 38 + .../jce/cipher/KeyWrappingAlgorithmAdapter.h | 89 + libjava/gnu/javax/crypto/jce/cipher/KhazadSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/NullCipherSpi.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacHaval$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacHaval$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacMD2$AES.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Blowfish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD2$DES.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Serpent.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD2$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacMD4$AES.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Blowfish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD4$DES.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Serpent.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD4$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacMD5$AES.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Blowfish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD5$DES.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Serpent.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD5$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.h | 39 + .../crypto/jce/cipher/PBES2$HMacRipeMD128$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD128$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD128$Square.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacRipeMD128.h | 39 + .../crypto/jce/cipher/PBES2$HMacRipeMD160$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD160$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD160$Square.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacRipeMD160.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.h | 39 + .../javax/crypto/jce/cipher/PBES2$HMacTiger$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Anubis.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Cast5.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacTiger$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Square.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Twofish.h | 38 + .../gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.h | 39 + .../crypto/jce/cipher/PBES2$HMacWhirlpool$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacWhirlpool$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacWhirlpool$Square.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacWhirlpool.h | 39 + libjava/gnu/javax/crypto/jce/cipher/PBES2.h | 74 + libjava/gnu/javax/crypto/jce/cipher/RijndaelSpi.h | 38 + libjava/gnu/javax/crypto/jce/cipher/SerpentSpi.h | 38 + libjava/gnu/javax/crypto/jce/cipher/SquareSpi.h | 38 + .../javax/crypto/jce/cipher/TripleDESKeyWrapSpi.h | 38 + libjava/gnu/javax/crypto/jce/cipher/TripleDESSpi.h | 38 + libjava/gnu/javax/crypto/jce/cipher/TwofishSpi.h | 38 + .../javax/crypto/jce/key/AnubisKeyGeneratorImpl.h | 38 + .../crypto/jce/key/AnubisSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/BlowfishKeyGeneratorImpl.h | 38 + .../crypto/jce/key/BlowfishSecretKeyFactoryImpl.h | 38 + .../javax/crypto/jce/key/Cast5KeyGeneratorImpl.h | 38 + .../crypto/jce/key/Cast5SecretKeyFactoryImpl.h | 38 + .../gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.h | 48 + .../javax/crypto/jce/key/DESSecretKeyFactoryImpl.h | 59 + .../crypto/jce/key/DESedeSecretKeyFactoryImpl.h | 59 + .../javax/crypto/jce/key/KhazadKeyGeneratorImpl.h | 38 + .../crypto/jce/key/KhazadSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/RijndaelKeyGeneratorImpl.h | 38 + .../crypto/jce/key/RijndaelSecretKeyFactoryImpl.h | 38 + .../javax/crypto/jce/key/SecretKeyFactoryImpl.h | 59 + .../javax/crypto/jce/key/SecretKeyGeneratorImpl.h | 67 + .../javax/crypto/jce/key/SerpentKeyGeneratorImpl.h | 38 + .../crypto/jce/key/SerpentSecretKeyFactoryImpl.h | 38 + .../javax/crypto/jce/key/SquareKeyGeneratorImpl.h | 38 + .../crypto/jce/key/SquareSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/TripleDESKeyGeneratorImpl.h | 38 + .../javax/crypto/jce/key/TwofishKeyGeneratorImpl.h | 38 + .../crypto/jce/key/TwofishSecretKeyFactoryImpl.h | 38 + libjava/gnu/javax/crypto/jce/keyring/GnuKeyring.h | 85 + libjava/gnu/javax/crypto/jce/mac/HMacHavalSpi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacMD2Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacMD4Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacMD5Spi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacSHA160Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacSHA256Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacSHA384Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacSHA512Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/HMacTigerSpi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.h | 38 + libjava/gnu/javax/crypto/jce/mac/MacAdapter.h | 69 + libjava/gnu/javax/crypto/jce/mac/OMacAnubisImpl.h | 38 + .../gnu/javax/crypto/jce/mac/OMacBlowfishImpl.h | 38 + libjava/gnu/javax/crypto/jce/mac/OMacCast5Impl.h | 38 + libjava/gnu/javax/crypto/jce/mac/OMacDESImpl.h | 38 + libjava/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.h | 42 + .../gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.h | 42 + libjava/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.h | 42 + libjava/gnu/javax/crypto/jce/mac/OMacImpl$DES.h | 42 + libjava/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.h | 42 + .../gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.h | 42 + .../gnu/javax/crypto/jce/mac/OMacImpl$Serpent.h | 42 + libjava/gnu/javax/crypto/jce/mac/OMacImpl$Square.h | 42 + .../gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.h | 42 + .../gnu/javax/crypto/jce/mac/OMacImpl$Twofish.h | 42 + libjava/gnu/javax/crypto/jce/mac/OMacImpl.h | 39 + libjava/gnu/javax/crypto/jce/mac/OMacKhazadImpl.h | 38 + .../gnu/javax/crypto/jce/mac/OMacRijndaelImpl.h | 38 + libjava/gnu/javax/crypto/jce/mac/OMacSerpentImpl.h | 38 + libjava/gnu/javax/crypto/jce/mac/OMacSquareImpl.h | 38 + .../gnu/javax/crypto/jce/mac/OMacTripleDESImpl.h | 38 + libjava/gnu/javax/crypto/jce/mac/OMacTwofishImpl.h | 38 + libjava/gnu/javax/crypto/jce/mac/TMMH16Spi.h | 52 + libjava/gnu/javax/crypto/jce/mac/UHash32Spi.h | 38 + libjava/gnu/javax/crypto/jce/mac/UMac32Spi.h | 52 + .../crypto/jce/params/BlockCipherParameters.h | 69 + .../javax/crypto/jce/params/DEREncodingException.h | 39 + libjava/gnu/javax/crypto/jce/params/DERReader.h | 64 + libjava/gnu/javax/crypto/jce/params/DERWriter.h | 63 + .../gnu/javax/crypto/jce/prng/ARCFourRandomSpi.h | 57 + libjava/gnu/javax/crypto/jce/prng/CSPRNGSpi.h | 57 + libjava/gnu/javax/crypto/jce/prng/FortunaImpl.h | 51 + libjava/gnu/javax/crypto/jce/prng/ICMRandomSpi.h | 59 + libjava/gnu/javax/crypto/jce/prng/UMacRandomSpi.h | 57 + libjava/gnu/javax/crypto/jce/sig/DHKeyFactory.h | 57 + .../javax/crypto/jce/sig/DHKeyPairGeneratorSpi.h | 51 + libjava/gnu/javax/crypto/jce/sig/DHParameters.h | 68 + .../javax/crypto/jce/sig/DHParametersGenerator.h | 69 + .../crypto/jce/spec/BlockCipherParameterSpec.h | 50 + .../gnu/javax/crypto/jce/spec/TMMHParameterSpec.h | 59 + .../javax/crypto/jce/spec/UMac32ParameterSpec.h | 44 + .../gnu/javax/crypto/key/BaseKeyAgreementParty.h | 90 + libjava/gnu/javax/crypto/key/GnuPBEKey.h | 57 + libjava/gnu/javax/crypto/key/GnuSecretKey.h | 47 + libjava/gnu/javax/crypto/key/IKeyAgreementParty.h | 44 + libjava/gnu/javax/crypto/key/IncomingMessage.h | 77 + .../gnu/javax/crypto/key/KeyAgreementException.h | 45 + libjava/gnu/javax/crypto/key/KeyAgreementFactory.h | 39 + libjava/gnu/javax/crypto/key/OutgoingMessage.h | 61 + .../gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.h | 63 + .../gnu/javax/crypto/key/dh/DHKeyPairRawCodec.h | 53 + .../gnu/javax/crypto/key/dh/DHKeyPairX509Codec.h | 63 + .../crypto/key/dh/DiffieHellmanKeyAgreement.h | 66 + .../javax/crypto/key/dh/DiffieHellmanReceiver.h | 54 + .../gnu/javax/crypto/key/dh/DiffieHellmanSender.h | 55 + .../gnu/javax/crypto/key/dh/ElGamalKeyAgreement.h | 56 + libjava/gnu/javax/crypto/key/dh/ElGamalReceiver.h | 57 + libjava/gnu/javax/crypto/key/dh/ElGamalSender.h | 57 + libjava/gnu/javax/crypto/key/dh/GnuDHKey.h | 74 + .../javax/crypto/key/dh/GnuDHKeyPairGenerator.h | 96 + libjava/gnu/javax/crypto/key/dh/GnuDHPrivateKey.h | 57 + libjava/gnu/javax/crypto/key/dh/GnuDHPublicKey.h | 57 + libjava/gnu/javax/crypto/key/dh/RFC2631.h | 84 + libjava/gnu/javax/crypto/key/srp6/SRP6Host.h | 63 + .../gnu/javax/crypto/key/srp6/SRP6KeyAgreement.h | 72 + libjava/gnu/javax/crypto/key/srp6/SRP6SaslClient.h | 43 + libjava/gnu/javax/crypto/key/srp6/SRP6SaslServer.h | 43 + libjava/gnu/javax/crypto/key/srp6/SRP6TLSClient.h | 62 + libjava/gnu/javax/crypto/key/srp6/SRP6TLSServer.h | 66 + libjava/gnu/javax/crypto/key/srp6/SRP6User.h | 60 + libjava/gnu/javax/crypto/key/srp6/SRPAlgorithm.h | 60 + libjava/gnu/javax/crypto/key/srp6/SRPKey.h | 59 + .../javax/crypto/key/srp6/SRPKeyPairGenerator.h | 92 + .../gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.h | 53 + libjava/gnu/javax/crypto/key/srp6/SRPPrivateKey.h | 60 + libjava/gnu/javax/crypto/key/srp6/SRPPublicKey.h | 57 + .../gnu/javax/crypto/keyring/AuthenticatedEntry.h | 54 + libjava/gnu/javax/crypto/keyring/BaseKeyring.h | 56 + libjava/gnu/javax/crypto/keyring/BinaryDataEntry.h | 48 + libjava/gnu/javax/crypto/keyring/CertPathEntry.h | 60 + .../gnu/javax/crypto/keyring/CertificateEntry.h | 58 + libjava/gnu/javax/crypto/keyring/CompressedEntry.h | 44 + libjava/gnu/javax/crypto/keyring/EncryptedEntry.h | 53 + libjava/gnu/javax/crypto/keyring/Entry.h | 55 + libjava/gnu/javax/crypto/keyring/EnvelopeEntry.h | 60 + .../gnu/javax/crypto/keyring/GnuPrivateKeyring.h | 73 + .../gnu/javax/crypto/keyring/GnuPublicKeyring.h | 58 + libjava/gnu/javax/crypto/keyring/IKeyring.h | 47 + libjava/gnu/javax/crypto/keyring/IPrivateKeyring.h | 67 + libjava/gnu/javax/crypto/keyring/IPublicKeyring.h | 57 + .../crypto/keyring/MalformedKeyringException.h | 36 + .../javax/crypto/keyring/MaskableEnvelopeEntry.h | 52 + .../gnu/javax/crypto/keyring/MeteredInputStream.h | 52 + .../crypto/keyring/PasswordAuthenticatedEntry.h | 57 + .../javax/crypto/keyring/PasswordEncryptedEntry.h | 57 + .../javax/crypto/keyring/PasswordProtectedEntry.h | 38 + libjava/gnu/javax/crypto/keyring/PrimitiveEntry.h | 45 + libjava/gnu/javax/crypto/keyring/PrivateKeyEntry.h | 56 + libjava/gnu/javax/crypto/keyring/Properties.h | 49 + libjava/gnu/javax/crypto/keyring/PublicKeyEntry.h | 55 + libjava/gnu/javax/crypto/kwa/AESKeyWrap.h | 50 + .../javax/crypto/kwa/BaseKeyWrappingAlgorithm.h | 63 + .../gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.h | 45 + .../gnu/javax/crypto/kwa/KeyUnwrappingException.h | 36 + .../javax/crypto/kwa/KeyWrappingAlgorithmFactory.h | 41 + libjava/gnu/javax/crypto/kwa/TripleDESKeyWrap.h | 71 + libjava/gnu/javax/crypto/mac/BaseMac.h | 63 + libjava/gnu/javax/crypto/mac/HMac.h | 65 + libjava/gnu/javax/crypto/mac/HMacFactory.h | 38 + libjava/gnu/javax/crypto/mac/IMac.h | 47 + libjava/gnu/javax/crypto/mac/MacFactory.h | 41 + libjava/gnu/javax/crypto/mac/MacInputStream.h | 47 + libjava/gnu/javax/crypto/mac/MacOutputStream.h | 47 + libjava/gnu/javax/crypto/mac/OMAC.h | 75 + libjava/gnu/javax/crypto/mac/TMMH16.h | 79 + libjava/gnu/javax/crypto/mac/UHash32$L1Hash32.h | 60 + libjava/gnu/javax/crypto/mac/UHash32$L2Hash32.h | 65 + libjava/gnu/javax/crypto/mac/UHash32$L3Hash32.h | 50 + libjava/gnu/javax/crypto/mac/UHash32.h | 73 + libjava/gnu/javax/crypto/mac/UMac32.h | 74 + libjava/gnu/javax/crypto/mode/BaseMode.h | 68 + libjava/gnu/javax/crypto/mode/CBC.h | 53 + libjava/gnu/javax/crypto/mode/CFB.h | 53 + libjava/gnu/javax/crypto/mode/CTR.h | 56 + libjava/gnu/javax/crypto/mode/EAX.h | 77 + libjava/gnu/javax/crypto/mode/ECB.h | 49 + libjava/gnu/javax/crypto/mode/IAuthenticatedMode.h | 52 + libjava/gnu/javax/crypto/mode/ICM.h | 64 + libjava/gnu/javax/crypto/mode/IMode.h | 53 + libjava/gnu/javax/crypto/mode/ModeFactory.h | 46 + libjava/gnu/javax/crypto/mode/OFB.h | 52 + libjava/gnu/javax/crypto/pad/BasePad.h | 55 + libjava/gnu/javax/crypto/pad/IPad.h | 44 + libjava/gnu/javax/crypto/pad/ISO10126.h | 55 + libjava/gnu/javax/crypto/pad/PKCS1_V1_5.h | 59 + libjava/gnu/javax/crypto/pad/PKCS7.h | 44 + libjava/gnu/javax/crypto/pad/PadFactory.h | 41 + libjava/gnu/javax/crypto/pad/SSL3.h | 40 + libjava/gnu/javax/crypto/pad/TBC.h | 44 + libjava/gnu/javax/crypto/pad/TLS1.h | 40 + .../gnu/javax/crypto/pad/WrongPaddingException.h | 35 + libjava/gnu/javax/crypto/prng/ARCFour.h | 46 + libjava/gnu/javax/crypto/prng/CSPRNG$1.h | 40 + libjava/gnu/javax/crypto/prng/CSPRNG$Poller.h | 49 + libjava/gnu/javax/crypto/prng/CSPRNG$Spinner.h | 41 + libjava/gnu/javax/crypto/prng/CSPRNG.h | 121 + libjava/gnu/javax/crypto/prng/Fortuna$Generator.h | 67 + libjava/gnu/javax/crypto/prng/Fortuna.h | 72 + libjava/gnu/javax/crypto/prng/ICMGenerator.h | 62 + libjava/gnu/javax/crypto/prng/IPBE.h | 39 + libjava/gnu/javax/crypto/prng/PBKDF2.h | 50 + libjava/gnu/javax/crypto/prng/PRNGFactory.h | 47 + libjava/gnu/javax/crypto/prng/UMacGenerator.h | 46 + libjava/gnu/javax/crypto/sasl/AuthInfo.h | 40 + .../javax/crypto/sasl/AuthInfoProviderFactory.h | 37 + libjava/gnu/javax/crypto/sasl/ClientFactory.h | 65 + libjava/gnu/javax/crypto/sasl/ClientMechanism.h | 91 + .../javax/crypto/sasl/ConfidentialityException.h | 37 + libjava/gnu/javax/crypto/sasl/IAuthInfoProvider.h | 40 + .../javax/crypto/sasl/IAuthInfoProviderFactory.h | 36 + .../crypto/sasl/IllegalMechanismStateException.h | 37 + libjava/gnu/javax/crypto/sasl/InputBuffer.h | 60 + libjava/gnu/javax/crypto/sasl/IntegrityException.h | 37 + .../javax/crypto/sasl/NoSuchMechanismException.h | 35 + .../gnu/javax/crypto/sasl/NoSuchUserException.h | 36 + libjava/gnu/javax/crypto/sasl/OutputBuffer.h | 54 + .../gnu/javax/crypto/sasl/SaslEncodingException.h | 36 + libjava/gnu/javax/crypto/sasl/SaslInputStream.h | 62 + libjava/gnu/javax/crypto/sasl/SaslOutputStream.h | 60 + libjava/gnu/javax/crypto/sasl/SaslUtil.h | 44 + libjava/gnu/javax/crypto/sasl/ServerFactory.h | 65 + libjava/gnu/javax/crypto/sasl/ServerMechanism.h | 92 + .../javax/crypto/sasl/UserAlreadyExistsException.h | 36 + .../javax/crypto/sasl/anonymous/AnonymousClient.h | 49 + .../javax/crypto/sasl/anonymous/AnonymousServer.h | 45 + .../javax/crypto/sasl/anonymous/AnonymousUtil.h | 41 + .../crypto/sasl/crammd5/CramMD5AuthInfoProvider.h | 48 + .../gnu/javax/crypto/sasl/crammd5/CramMD5Client.h | 49 + .../javax/crypto/sasl/crammd5/CramMD5Registry.h | 44 + .../gnu/javax/crypto/sasl/crammd5/CramMD5Server.h | 52 + .../gnu/javax/crypto/sasl/crammd5/CramMD5Util.h | 43 + .../gnu/javax/crypto/sasl/crammd5/PasswordFile.h | 56 + libjava/gnu/javax/crypto/sasl/plain/PasswordFile.h | 56 + .../crypto/sasl/plain/PlainAuthInfoProvider.h | 48 + libjava/gnu/javax/crypto/sasl/plain/PlainClient.h | 49 + .../gnu/javax/crypto/sasl/plain/PlainRegistry.h | 44 + libjava/gnu/javax/crypto/sasl/plain/PlainServer.h | 50 + libjava/gnu/javax/crypto/sasl/srp/CALG.h | 57 + libjava/gnu/javax/crypto/sasl/srp/ClientStore.h | 50 + libjava/gnu/javax/crypto/sasl/srp/IALG.h | 56 + libjava/gnu/javax/crypto/sasl/srp/KDF.h | 66 + libjava/gnu/javax/crypto/sasl/srp/PasswordFile.h | 89 + libjava/gnu/javax/crypto/sasl/srp/SRP.h | 77 + .../javax/crypto/sasl/srp/SRPAuthInfoProvider.h | 48 + libjava/gnu/javax/crypto/sasl/srp/SRPClient.h | 129 + libjava/gnu/javax/crypto/sasl/srp/SRPRegistry.h | 92 + libjava/gnu/javax/crypto/sasl/srp/SRPServer.h | 115 + .../gnu/javax/crypto/sasl/srp/SecurityContext.h | 68 + libjava/gnu/javax/crypto/sasl/srp/ServerStore.h | 54 + libjava/gnu/javax/crypto/sasl/srp/StoreEntry.h | 43 + libjava/gnu/javax/imageio/IIOInputStream.h | 56 + libjava/gnu/javax/imageio/bmp/BMPDecoder.h | 70 + libjava/gnu/javax/imageio/bmp/BMPEncoder.h | 55 + libjava/gnu/javax/imageio/bmp/BMPException.h | 35 + libjava/gnu/javax/imageio/bmp/BMPFileHeader.h | 63 + libjava/gnu/javax/imageio/bmp/BMPImageReader.h | 85 + libjava/gnu/javax/imageio/bmp/BMPImageReaderSpi.h | 66 + libjava/gnu/javax/imageio/bmp/BMPImageWriter.h | 68 + libjava/gnu/javax/imageio/bmp/BMPImageWriterSpi.h | 71 + libjava/gnu/javax/imageio/bmp/BMPInfoHeader.h | 89 + libjava/gnu/javax/imageio/bmp/DecodeBF16.h | 64 + libjava/gnu/javax/imageio/bmp/DecodeBF32.h | 64 + libjava/gnu/javax/imageio/bmp/DecodeRGB1.h | 58 + libjava/gnu/javax/imageio/bmp/DecodeRGB24.h | 58 + libjava/gnu/javax/imageio/bmp/DecodeRGB4.h | 58 + libjava/gnu/javax/imageio/bmp/DecodeRGB8.h | 58 + libjava/gnu/javax/imageio/bmp/DecodeRLE4.h | 67 + libjava/gnu/javax/imageio/bmp/DecodeRLE8.h | 67 + libjava/gnu/javax/imageio/bmp/EncodeRGB1.h | 59 + libjava/gnu/javax/imageio/bmp/EncodeRGB16.h | 59 + libjava/gnu/javax/imageio/bmp/EncodeRGB24.h | 59 + libjava/gnu/javax/imageio/bmp/EncodeRGB32.h | 59 + libjava/gnu/javax/imageio/bmp/EncodeRGB4.h | 59 + libjava/gnu/javax/imageio/bmp/EncodeRGB8.h | 59 + libjava/gnu/javax/imageio/bmp/EncodeRLE4.h | 75 + libjava/gnu/javax/imageio/bmp/EncodeRLE8.h | 75 + .../gnu/javax/imageio/gif/GIFFile$GIFException.h | 35 + libjava/gnu/javax/imageio/gif/GIFFile.h | 101 + libjava/gnu/javax/imageio/gif/GIFImageReader.h | 83 + libjava/gnu/javax/imageio/gif/GIFImageReaderSpi.h | 66 + libjava/gnu/javax/imageio/jpeg/DCT.h | 48 + libjava/gnu/javax/imageio/jpeg/HuffmanTable.h | 76 + libjava/gnu/javax/imageio/jpeg/JPEGComponent.h | 91 + libjava/gnu/javax/imageio/jpeg/JPEGDecoder.h | 99 + libjava/gnu/javax/imageio/jpeg/JPEGException.h | 35 + libjava/gnu/javax/imageio/jpeg/JPEGFrame.h | 67 + .../gnu/javax/imageio/jpeg/JPEGImageInputStream.h | 60 + libjava/gnu/javax/imageio/jpeg/JPEGImageReader.h | 76 + .../gnu/javax/imageio/jpeg/JPEGImageReaderSpi.h | 74 + libjava/gnu/javax/imageio/jpeg/JPEGMarker.h | 89 + .../javax/imageio/jpeg/JPEGMarkerFoundException.h | 35 + libjava/gnu/javax/imageio/jpeg/JPEGScan.h | 60 + libjava/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.h | 42 + libjava/gnu/javax/imageio/jpeg/ZigZag.h | 52 + libjava/gnu/javax/imageio/png/PNGChunk.h | 71 + libjava/gnu/javax/imageio/png/PNGData.h | 47 + libjava/gnu/javax/imageio/png/PNGDecoder.h | 85 + libjava/gnu/javax/imageio/png/PNGEncoder.h | 64 + libjava/gnu/javax/imageio/png/PNGException.h | 35 + libjava/gnu/javax/imageio/png/PNGFile.h | 75 + libjava/gnu/javax/imageio/png/PNGFilter.h | 47 + libjava/gnu/javax/imageio/png/PNGGamma.h | 54 + libjava/gnu/javax/imageio/png/PNGHeader.h | 66 + libjava/gnu/javax/imageio/png/PNGICCProfile.h | 57 + libjava/gnu/javax/imageio/png/PNGImageReader.h | 75 + libjava/gnu/javax/imageio/png/PNGImageReaderSpi.h | 59 + libjava/gnu/javax/imageio/png/PNGPalette.h | 60 + libjava/gnu/javax/imageio/png/PNGPhys.h | 50 + libjava/gnu/javax/imageio/png/PNGTime.h | 43 + libjava/gnu/javax/management/Server$ServerInfo.h | 48 + .../javax/management/Server$ServerInputStream.h | 40 + .../management/Server$ServerNotificationListener.h | 49 + libjava/gnu/javax/management/Server.h | 102 + .../gnu/javax/naming/giop/ContextContinuation.h | 111 + libjava/gnu/javax/naming/giop/CorbalocParser.h | 79 + .../gnu/javax/naming/giop/GiopNamingEnumeration.h | 64 + .../javax/naming/giop/GiopNamingServiceFactory$1.h | 53 + .../javax/naming/giop/GiopNamingServiceFactory.h | 58 + .../naming/giop/GiopNamingServiceURLContext.h | 111 + .../javax/naming/giop/ListBindingsEnumeration.h | 52 + libjava/gnu/javax/naming/giop/ListEnumeration.h | 48 + .../naming/ictxImpl/trans/GnuName$GnuNameEnum.h | 46 + libjava/gnu/javax/naming/ictxImpl/trans/GnuName.h | 76 + .../url/corbaname/corbanameURLContextFactory.h | 41 + .../naming/jndi/url/rmi/ContextContinuation.h | 98 + .../naming/jndi/url/rmi/ListBindingsEnumeration.h | 57 + .../javax/naming/jndi/url/rmi/ListEnumeration.h | 44 + .../javax/naming/jndi/url/rmi/RmiContinuation.h | 98 + .../naming/jndi/url/rmi/RmiNamingEnumeration.h | 54 + .../gnu/javax/naming/jndi/url/rmi/rmiURLContext.h | 100 + .../naming/jndi/url/rmi/rmiURLContextFactory.h | 50 + libjava/gnu/javax/net/ssl/AbstractSessionContext.h | 71 + libjava/gnu/javax/net/ssl/Base64.h | 43 + libjava/gnu/javax/net/ssl/EntropySource.h | 38 + libjava/gnu/javax/net/ssl/NullManagerParameters.h | 35 + libjava/gnu/javax/net/ssl/PreSharedKeyManager.h | 43 + .../javax/net/ssl/PreSharedKeyManagerParameters.h | 49 + libjava/gnu/javax/net/ssl/PrivateCredentials.h | 56 + libjava/gnu/javax/net/ssl/SRPManagerParameters.h | 49 + libjava/gnu/javax/net/ssl/SRPTrustManager.h | 62 + libjava/gnu/javax/net/ssl/SSLCipherSuite.h | 66 + libjava/gnu/javax/net/ssl/SSLProtocolVersion.h | 46 + libjava/gnu/javax/net/ssl/SSLRecordHandler.h | 50 + libjava/gnu/javax/net/ssl/Session$ID.h | 47 + libjava/gnu/javax/net/ssl/Session.h | 117 + libjava/gnu/javax/net/ssl/SessionStoreException.h | 37 + libjava/gnu/javax/net/ssl/StaticTrustAnchors.h | 54 + .../javax/net/ssl/provider/AbstractHandshake$1.h | 45 + .../ssl/provider/AbstractHandshake$CertVerifier.h | 62 + .../ssl/provider/AbstractHandshake$DHE_PSKGen.h | 58 + .../net/ssl/provider/AbstractHandshake$DHPhase.h | 57 + .../gnu/javax/net/ssl/provider/AbstractHandshake.h | 142 + .../gnu/javax/net/ssl/provider/Alert$Description.h | 79 + libjava/gnu/javax/net/ssl/provider/Alert$Level.h | 50 + libjava/gnu/javax/net/ssl/provider/Alert.h | 65 + .../gnu/javax/net/ssl/provider/AlertException.h | 49 + libjava/gnu/javax/net/ssl/provider/Builder.h | 47 + libjava/gnu/javax/net/ssl/provider/Certificate.h | 54 + .../javax/net/ssl/provider/CertificateBuilder.h | 48 + .../CertificateRequest$ClientCertificateType.h | 53 + .../ssl/provider/CertificateRequest$ClientType.h | 53 + .../javax/net/ssl/provider/CertificateRequest.h | 55 + .../net/ssl/provider/CertificateRequestBuilder.h | 49 + .../CertificateStatusRequest$ResponderIdIterator.h | 50 + .../net/ssl/provider/CertificateStatusRequest.h | 65 + .../javax/net/ssl/provider/CertificateStatusType.h | 47 + .../gnu/javax/net/ssl/provider/CertificateType.h | 49 + .../ssl/provider/CertificateURL$CertChainType.h | 49 + .../net/ssl/provider/CertificateURL$Iterator.h | 49 + .../provider/CertificateURL$URLAndOptionalHash.h | 61 + .../gnu/javax/net/ssl/provider/CertificateURL.h | 61 + .../gnu/javax/net/ssl/provider/CertificateVerify.h | 51 + .../gnu/javax/net/ssl/provider/CipherAlgorithm.h | 51 + libjava/gnu/javax/net/ssl/provider/CipherSuite.h | 145 + .../net/ssl/provider/CipherSuiteList$Iterator.h | 60 + .../gnu/javax/net/ssl/provider/CipherSuiteList.h | 63 + .../provider/ClientCertificateTypeList$Iterator.h | 60 + .../net/ssl/provider/ClientCertificateTypeList.h | 60 + .../net/ssl/provider/ClientDHE_PSKParameters.h | 55 + .../net/ssl/provider/ClientDiffieHellmanPublic.h | 59 + .../net/ssl/provider/ClientHandshake$CertLoader.h | 47 + .../net/ssl/provider/ClientHandshake$ClientDHGen.h | 64 + .../ssl/provider/ClientHandshake$GenCertVerify.h | 59 + .../ssl/provider/ClientHandshake$ParamsVerifier.h | 59 + .../net/ssl/provider/ClientHandshake$RSAGen.h | 52 + .../javax/net/ssl/provider/ClientHandshake$State.h | 62 + .../gnu/javax/net/ssl/provider/ClientHandshake.h | 120 + libjava/gnu/javax/net/ssl/provider/ClientHello.h | 75 + .../javax/net/ssl/provider/ClientHelloBuilder.h | 58 + libjava/gnu/javax/net/ssl/provider/ClientHelloV2.h | 66 + .../gnu/javax/net/ssl/provider/ClientKeyExchange.h | 57 + .../net/ssl/provider/ClientKeyExchangeBuilder.h | 49 + .../javax/net/ssl/provider/ClientPSKParameters.h | 51 + .../net/ssl/provider/ClientRSA_PSKParameters.h | 55 + .../gnu/javax/net/ssl/provider/CompressionMethod.h | 50 + .../ssl/provider/CompressionMethodList$Iterator.h | 60 + .../javax/net/ssl/provider/CompressionMethodList.h | 60 + libjava/gnu/javax/net/ssl/provider/Constructed.h | 39 + libjava/gnu/javax/net/ssl/provider/ContentType.h | 54 + libjava/gnu/javax/net/ssl/provider/Context.h | 82 + libjava/gnu/javax/net/ssl/provider/Debug.h | 41 + libjava/gnu/javax/net/ssl/provider/DelegatedTask.h | 57 + libjava/gnu/javax/net/ssl/provider/DiffieHellman.h | 66 + .../gnu/javax/net/ssl/provider/DigestInputStream.h | 60 + .../javax/net/ssl/provider/DigestOutputStream.h | 60 + .../gnu/javax/net/ssl/provider/EmptyExchangeKeys.h | 41 + .../net/ssl/provider/EncryptedPreMasterSecret.h | 58 + libjava/gnu/javax/net/ssl/provider/Enumerated.h | 42 + libjava/gnu/javax/net/ssl/provider/ExchangeKeys.h | 50 + .../gnu/javax/net/ssl/provider/Extension$Type.h | 56 + .../gnu/javax/net/ssl/provider/Extension$Value.h | 48 + libjava/gnu/javax/net/ssl/provider/Extension.h | 68 + .../provider/ExtensionList$ExtensionsIterator.h | 60 + libjava/gnu/javax/net/ssl/provider/ExtensionList.h | 64 + libjava/gnu/javax/net/ssl/provider/Extensions.h | 54 + libjava/gnu/javax/net/ssl/provider/Finished.h | 64 + .../javax/net/ssl/provider/GNUSecurityParameters.h | 98 + .../gnu/javax/net/ssl/provider/Handshake$Body.h | 39 + .../gnu/javax/net/ssl/provider/Handshake$Type.h | 60 + .../gnu/javax/net/ssl/provider/Handshake$buffer.h | 44 + libjava/gnu/javax/net/ssl/provider/Handshake.h | 68 + libjava/gnu/javax/net/ssl/provider/HelloRequest.h | 41 + .../net/ssl/provider/InputSecurityParameters.h | 90 + .../javax/net/ssl/provider/JCESecurityParameters.h | 76 + .../javax/net/ssl/provider/JDBCSessionContext.h | 87 + libjava/gnu/javax/net/ssl/provider/Jessie$1.h | 44 + libjava/gnu/javax/net/ssl/provider/Jessie.h | 43 + .../javax/net/ssl/provider/JessieDHPrivateKey.h | 68 + .../gnu/javax/net/ssl/provider/JessieDHPublicKey.h | 68 + .../javax/net/ssl/provider/JessieRSAPrivateKey.h | 58 + .../javax/net/ssl/provider/JessieRSAPublicKey.h | 58 + .../javax/net/ssl/provider/KeyExchangeAlgorithm.h | 55 + libjava/gnu/javax/net/ssl/provider/KeyPool.h | 60 + libjava/gnu/javax/net/ssl/provider/MacAlgorithm.h | 48 + libjava/gnu/javax/net/ssl/provider/MacException.h | 39 + .../gnu/javax/net/ssl/provider/MaxFragmentLength.h | 59 + .../net/ssl/provider/OutputSecurityParameters.h | 77 + .../gnu/javax/net/ssl/provider/OverflowException.h | 40 + .../PreSharedKeyManagerFactoryImpl$Manager.h | 52 + .../ssl/provider/PreSharedKeyManagerFactoryImpl.h | 66 + .../gnu/javax/net/ssl/provider/ProtocolVersion.h | 62 + libjava/gnu/javax/net/ssl/provider/Random.h | 62 + libjava/gnu/javax/net/ssl/provider/Record.h | 60 + libjava/gnu/javax/net/ssl/provider/RecordInput.h | 56 + .../gnu/javax/net/ssl/provider/RecordInputStream.h | 52 + .../javax/net/ssl/provider/RecordOutputStream.h | 54 + .../javax/net/ssl/provider/RecordingInputStream.h | 52 + .../ssl/provider/SRPTrustManagerFactory$Manager.h | 73 + .../net/ssl/provider/SRPTrustManagerFactory.h | 66 + .../gnu/javax/net/ssl/provider/SSLContextImpl.h | 88 + .../javax/net/ssl/provider/SSLEngineImpl$Mode.h | 47 + libjava/gnu/javax/net/ssl/provider/SSLEngineImpl.h | 128 + libjava/gnu/javax/net/ssl/provider/SSLHMac.h | 69 + .../gnu/javax/net/ssl/provider/SSLRSASignature.h | 79 + .../javax/net/ssl/provider/SSLRSASignatureImpl.h | 79 + libjava/gnu/javax/net/ssl/provider/SSLRandom.h | 74 + .../gnu/javax/net/ssl/provider/SSLServerSocket.h | 104 + .../net/ssl/provider/SSLServerSocketFactory.h | 81 + .../net/ssl/provider/SSLServerSocketFactoryImpl.h | 61 + .../javax/net/ssl/provider/SSLServerSocketImpl.h | 74 + libjava/gnu/javax/net/ssl/provider/SSLSocket.h | 240 + .../gnu/javax/net/ssl/provider/SSLSocketFactory.h | 81 + .../javax/net/ssl/provider/SSLSocketFactoryImpl.h | 64 + .../gnu/javax/net/ssl/provider/SSLSocketImpl$1.h | 44 + .../ssl/provider/SSLSocketImpl$SocketInputStream.h | 58 + .../provider/SSLSocketImpl$SocketOutputStream.h | 58 + libjava/gnu/javax/net/ssl/provider/SSLSocketImpl.h | 160 + .../javax/net/ssl/provider/SSLSocketInputStream.h | 52 + .../javax/net/ssl/provider/SSLSocketOutputStream.h | 51 + .../gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.h | 62 + .../gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.h | 62 + .../javax/net/ssl/provider/SecurityParameters.h | 54 + .../net/ssl/provider/ServerDHE_PSKParameters.h | 62 + .../gnu/javax/net/ssl/provider/ServerDHParams.h | 65 + .../net/ssl/provider/ServerHandshake$CertLoader.h | 44 + .../javax/net/ssl/provider/ServerHandshake$GenDH.h | 53 + .../ssl/provider/ServerHandshake$RSAKeyExchange.h | 48 + .../ssl/provider/ServerHandshake$RSA_PSKExchange.h | 56 + .../javax/net/ssl/provider/ServerHandshake$State.h | 63 + .../gnu/javax/net/ssl/provider/ServerHandshake.h | 129 + libjava/gnu/javax/net/ssl/provider/ServerHello.h | 69 + .../javax/net/ssl/provider/ServerHelloBuilder.h | 60 + .../gnu/javax/net/ssl/provider/ServerHelloDone.h | 41 + .../gnu/javax/net/ssl/provider/ServerKeyExchange.h | 57 + .../net/ssl/provider/ServerKeyExchangeBuilder.h | 50 + .../net/ssl/provider/ServerKeyExchangeParams.h | 41 + .../net/ssl/provider/ServerNameList$Iterator.h | 49 + .../net/ssl/provider/ServerNameList$NameType.h | 48 + .../net/ssl/provider/ServerNameList$ServerName.h | 56 + .../gnu/javax/net/ssl/provider/ServerNameList.h | 58 + .../javax/net/ssl/provider/ServerPSKParameters.h | 56 + .../gnu/javax/net/ssl/provider/ServerRSAParams.h | 61 + .../net/ssl/provider/ServerRSA_PSKParameters.h | 48 + libjava/gnu/javax/net/ssl/provider/Session$ID.h | 49 + libjava/gnu/javax/net/ssl/provider/Session.h | 134 + .../gnu/javax/net/ssl/provider/SessionContext.h | 70 + .../net/ssl/provider/SessionImpl$PrivateData.h | 43 + libjava/gnu/javax/net/ssl/provider/SessionImpl.h | 87 + libjava/gnu/javax/net/ssl/provider/Signature.h | 60 + .../javax/net/ssl/provider/SignatureAlgorithm.h | 53 + .../net/ssl/provider/SimpleSessionContext$1.h | 46 + .../javax/net/ssl/provider/SimpleSessionContext.h | 59 + .../javax/net/ssl/provider/SynchronizedRandom.h | 62 + libjava/gnu/javax/net/ssl/provider/TLSHMac.h | 54 + libjava/gnu/javax/net/ssl/provider/TLSRandom.h | 71 + libjava/gnu/javax/net/ssl/provider/TruncatedHMAC.h | 49 + .../TrustedAuthorities$AuthoritiesIterator.h | 49 + .../provider/TrustedAuthorities$IdentifierType.h | 51 + .../provider/TrustedAuthorities$TrustedAuthority.h | 70 + .../javax/net/ssl/provider/TrustedAuthorities.h | 56 + .../net/ssl/provider/UnresolvedExtensionValue.h | 53 + libjava/gnu/javax/net/ssl/provider/Util$1.h | 43 + libjava/gnu/javax/net/ssl/provider/Util$2.h | 43 + .../javax/net/ssl/provider/Util$WrappedBuffer.h | 51 + libjava/gnu/javax/net/ssl/provider/Util.h | 76 + .../net/ssl/provider/X500PrincipalList$Iterator.h | 72 + .../gnu/javax/net/ssl/provider/X500PrincipalList.h | 76 + .../ssl/provider/X509KeyManagerFactory$Manager.h | 85 + .../javax/net/ssl/provider/X509KeyManagerFactory.h | 72 + .../ssl/provider/X509TrustManagerFactory$Manager.h | 61 + .../net/ssl/provider/X509TrustManagerFactory.h | 69 + .../ssl/provider/XMLSessionContext$SAXHandler.h | 102 + .../gnu/javax/net/ssl/provider/XMLSessionContext.h | 69 + libjava/gnu/javax/print/CupsIppOperation.h | 45 + libjava/gnu/javax/print/CupsMediaMapping.h | 37 + libjava/gnu/javax/print/CupsPrintService.h | 59 + libjava/gnu/javax/print/CupsPrintServiceLookup.h | 57 + libjava/gnu/javax/print/CupsServer.h | 52 + libjava/gnu/javax/print/PrintAttributeException.h | 53 + libjava/gnu/javax/print/PrintFlavorException.h | 48 + libjava/gnu/javax/print/PrintUriException.h | 48 + .../print/PrinterDialog$AppearancePanel$Color.h | 60 + .../PrinterDialog$AppearancePanel$JobAttributes.h | 80 + .../print/PrinterDialog$AppearancePanel$Quality.h | 63 + .../PrinterDialog$AppearancePanel$SidesPanel.h | 61 + .../javax/print/PrinterDialog$AppearancePanel.h | 48 + .../PrinterDialog$GeneralPanel$CopiesAndSorted.h | 70 + .../print/PrinterDialog$GeneralPanel$PrintRange.h | 71 + .../PrinterDialog$GeneralPanel$PrintServices.h | 71 + .../gnu/javax/print/PrinterDialog$GeneralPanel.h | 46 + .../print/PrinterDialog$PageSetupPanel$Margins.h | 70 + .../PrinterDialog$PageSetupPanel$MediaTypes.h | 63 + .../PrinterDialog$PageSetupPanel$Orientation.h | 62 + .../gnu/javax/print/PrinterDialog$PageSetupPanel.h | 46 + libjava/gnu/javax/print/PrinterDialog.h | 101 + libjava/gnu/javax/print/ipp/DocPrintJobImpl.h | 90 + libjava/gnu/javax/print/ipp/IppDelimiterTag.h | 41 + libjava/gnu/javax/print/ipp/IppException.h | 38 + .../gnu/javax/print/ipp/IppMultiDocPrintService.h | 54 + libjava/gnu/javax/print/ipp/IppPrintService.h | 111 + .../gnu/javax/print/ipp/IppRequest$RequestWriter.h | 78 + libjava/gnu/javax/print/ipp/IppRequest.h | 88 + .../javax/print/ipp/IppResponse$ResponseReader.h | 65 + libjava/gnu/javax/print/ipp/IppResponse.h | 68 + libjava/gnu/javax/print/ipp/IppStatusCode.h | 67 + libjava/gnu/javax/print/ipp/IppUtilities.h | 64 + libjava/gnu/javax/print/ipp/IppValueTag.h | 56 + libjava/gnu/javax/print/ipp/MultiDocPrintJobImpl.h | 48 + .../gnu/javax/print/ipp/attribute/CharsetSyntax.h | 46 + .../print/ipp/attribute/DefaultValueAttribute.h | 50 + .../print/ipp/attribute/DetailedStatusMessage.h | 40 + .../print/ipp/attribute/DocumentAccessError.h | 40 + .../print/ipp/attribute/NaturalLanguageSyntax.h | 46 + .../print/ipp/attribute/RequestedAttributes.h | 46 + .../gnu/javax/print/ipp/attribute/StatusMessage.h | 40 + .../javax/print/ipp/attribute/UnknownAttribute.h | 61 + .../print/ipp/attribute/defaults/CopiesDefault.h | 55 + .../ipp/attribute/defaults/DocumentFormatDefault.h | 54 + .../ipp/attribute/defaults/FinishingsDefault.h | 85 + .../ipp/attribute/defaults/JobHoldUntilDefault.h | 62 + .../ipp/attribute/defaults/JobPriorityDefault.h | 55 + .../ipp/attribute/defaults/JobSheetsDefault.h | 56 + .../print/ipp/attribute/defaults/MediaDefault.h | 54 + .../defaults/MultipleDocumentHandlingDefault.h | 70 + .../print/ipp/attribute/defaults/NumberUpDefault.h | 55 + .../defaults/OrientationRequestedDefault.h | 71 + .../ipp/attribute/defaults/PrintQualityDefault.h | 70 + .../attribute/defaults/PrinterResolutionDefault.h | 55 + .../print/ipp/attribute/defaults/SidesDefault.h | 71 + .../print/ipp/attribute/job/AttributesCharset.h | 44 + .../ipp/attribute/job/AttributesNaturalLanguage.h | 44 + .../ipp/attribute/job/JobDetailedStatusMessages.h | 43 + .../ipp/attribute/job/JobDocumentAccessErrors.h | 43 + libjava/gnu/javax/print/ipp/attribute/job/JobId.h | 43 + .../javax/print/ipp/attribute/job/JobMoreInfo.h | 50 + .../javax/print/ipp/attribute/job/JobPrinterUri.h | 50 + .../print/ipp/attribute/job/JobStateMessage.h | 43 + libjava/gnu/javax/print/ipp/attribute/job/JobUri.h | 50 + .../ipp/attribute/printer/CharsetConfigured.h | 43 + .../print/ipp/attribute/printer/DocumentFormat.h | 51 + .../attribute/printer/MultipleOperationTimeOut.h | 43 + .../attribute/printer/NaturalLanguageConfigured.h | 43 + .../ipp/attribute/printer/PrinterCurrentTime.h | 44 + .../ipp/attribute/printer/PrinterDriverInstaller.h | 50 + .../ipp/attribute/printer/PrinterStateMessage.h | 43 + .../print/ipp/attribute/printer/PrinterUpTime.h | 43 + .../ipp/attribute/supported/CharsetSupported.h | 43 + .../ipp/attribute/supported/CompressionSupported.h | 74 + .../attribute/supported/DocumentFormatSupported.h | 43 + .../ipp/attribute/supported/FinishingsSupported.h | 89 + .../supported/GeneratedNaturalLanguageSupported.h | 43 + .../ipp/attribute/supported/IppVersionsSupported.h | 65 + .../attribute/supported/JobHoldUntilSupported.h | 51 + .../ipp/attribute/supported/JobSheetsSupported.h | 66 + .../print/ipp/attribute/supported/MediaSupported.h | 59 + .../supported/MultipleDocumentHandlingSupported.h | 74 + .../supported/MultipleDocumentJobsSupported.h | 66 + .../ipp/attribute/supported/OperationsSupported.h | 82 + .../supported/OrientationRequestedSupported.h | 75 + .../ipp/attribute/supported/PageRangesSupported.h | 66 + .../attribute/supported/PrintQualitySupported.h | 74 + .../supported/PrinterResolutionSupported.h | 61 + .../ipp/attribute/supported/PrinterUriSupported.h | 50 + .../print/ipp/attribute/supported/SidesSupported.h | 69 + .../supported/UriAuthenticationSupported.h | 68 + .../ipp/attribute/supported/UriSecuritySupported.h | 66 + libjava/gnu/javax/rmi/CORBA/CorbaInput.h | 94 + libjava/gnu/javax/rmi/CORBA/CorbaOutput.h | 76 + .../gnu/javax/rmi/CORBA/DefaultWriteObjectTester.h | 40 + libjava/gnu/javax/rmi/CORBA/DelegateFactory.h | 40 + .../javax/rmi/CORBA/GetDelegateInstanceException.h | 39 + .../rmi/CORBA/PortableRemoteObjectDelegateImpl.h | 50 + libjava/gnu/javax/rmi/CORBA/RmiUtilities$1.h | 37 + libjava/gnu/javax/rmi/CORBA/RmiUtilities$2.h | 37 + libjava/gnu/javax/rmi/CORBA/RmiUtilities.h | 113 + libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.h | 70 + libjava/gnu/javax/rmi/CORBA/TieTargetRecord.h | 50 + libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.h | 101 + .../gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.h | 61 + libjava/gnu/javax/security/auth/Password.h | 55 + .../security/auth/callback/AWTCallbackHandler.h | 94 + .../auth/callback/AbstractCallbackHandler.h | 90 + .../security/auth/callback/CertificateCallback.h | 52 + .../auth/callback/ConsoleCallbackHandler.h | 69 + .../auth/callback/DefaultCallbackHandler.h | 66 + .../javax/security/auth/callback/GnuCallbacks$1.h | 44 + .../javax/security/auth/callback/GnuCallbacks.h | 38 + .../auth/callback/SwingCallbackHandler$1.h | 75 + .../auth/callback/SwingCallbackHandler$2.h | 77 + .../auth/callback/SwingCallbackHandler$3.h | 77 + .../auth/callback/SwingCallbackHandler$4.h | 76 + .../auth/callback/SwingCallbackHandler$5.h | 76 + .../auth/callback/SwingCallbackHandler$6.h | 76 + .../auth/callback/SwingCallbackHandler$7.h | 74 + .../security/auth/callback/SwingCallbackHandler.h | 73 + .../javax/security/auth/login/ConfigFileParser.h | 52 + .../security/auth/login/ConfigFileTokenizer.h | 62 + .../javax/security/auth/login/GnuConfiguration.h | 70 + .../javax/sound/midi/alsa/AlsaInputPortDevice.h | 59 + .../midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.h | 51 + .../AlsaMidiDeviceProvider$AlsaInputPortInfo.h | 51 + .../AlsaMidiDeviceProvider$AlsaOutputPortInfo.h | 51 + .../alsa/AlsaMidiDeviceProvider$AlsaPortInfo.h | 42 + .../AlsaMidiDeviceProvider$AlsaSequencerInfo.h | 51 + .../javax/sound/midi/alsa/AlsaMidiDeviceProvider.h | 60 + .../sound/midi/alsa/AlsaMidiSequencerDevice.h | 112 + .../javax/sound/midi/alsa/AlsaOutputPortDevice.h | 59 + .../sound/midi/alsa/AlsaPortDevice$AlsaReceiver.h | 54 + .../midi/alsa/AlsaPortDevice$AlsaTransmitter.h | 59 + libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice.h | 66 + .../sound/midi/dssi/DSSIMidiDeviceProvider$1.h | 40 + .../midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.h | 42 + .../javax/sound/midi/dssi/DSSIMidiDeviceProvider.h | 67 + .../midi/dssi/DSSISynthesizer$DSSIInstrument.h | 55 + .../midi/dssi/DSSISynthesizer$DSSIMidiChannel.h | 69 + .../sound/midi/dssi/DSSISynthesizer$DSSIReceiver.h | 55 + .../midi/dssi/DSSISynthesizer$DSSISoundbank.h | 73 + .../gnu/javax/sound/midi/dssi/DSSISynthesizer.h | 104 + .../javax/sound/midi/file/ExtendedMidiFileFormat.h | 42 + .../javax/sound/midi/file/MidiDataInputStream.h | 39 + .../javax/sound/midi/file/MidiDataOutputStream.h | 40 + libjava/gnu/javax/sound/midi/file/MidiFileReader.h | 62 + libjava/gnu/javax/sound/midi/file/MidiFileWriter.h | 60 + .../javax/sound/sampled/AU/AUReader$AUFormatType.h | 38 + .../gnu/javax/sound/sampled/AU/AUReader$AUHeader.h | 73 + libjava/gnu/javax/sound/sampled/AU/AUReader.h | 62 + libjava/gnu/javax/sound/sampled/WAV/WAVReader.h | 66 + .../swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.h | 50 + .../plaf/gnu/GNULookAndFeel$RadioButtonIcon.h | 50 + libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel.h | 64 + .../gnu/javax/swing/plaf/metal/CustomizableTheme.h | 76 + .../swing/text/html/CharacterAttributeTranslator.h | 64 + .../html/CombinedAttributes$CombinedEnumeration.h | 47 + .../gnu/javax/swing/text/html/CombinedAttributes.h | 64 + .../html/ImageViewIconFactory$LoadingImageIcon.h | 49 + .../text/html/ImageViewIconFactory$NoImageIcon.h | 49 + .../javax/swing/text/html/ImageViewIconFactory.h | 51 + .../gnu/javax/swing/text/html/css/BorderStyle.h | 42 + .../gnu/javax/swing/text/html/css/BorderWidth.h | 42 + libjava/gnu/javax/swing/text/html/css/CSSColor.h | 57 + .../swing/text/html/css/CSSLexicalException.h | 42 + .../gnu/javax/swing/text/html/css/CSSParser$1.h | 48 + libjava/gnu/javax/swing/text/html/css/CSSParser.h | 65 + .../javax/swing/text/html/css/CSSParserCallback.h | 46 + .../javax/swing/text/html/css/CSSParserException.h | 41 + libjava/gnu/javax/swing/text/html/css/CSSScanner.h | 92 + libjava/gnu/javax/swing/text/html/css/FontSize.h | 72 + libjava/gnu/javax/swing/text/html/css/FontStyle.h | 45 + libjava/gnu/javax/swing/text/html/css/FontWeight.h | 45 + libjava/gnu/javax/swing/text/html/css/Length.h | 62 + libjava/gnu/javax/swing/text/html/css/Selector.h | 55 + .../html/parser/GnuParserDelegator$gnuParser.h | 75 + .../swing/text/html/parser/GnuParserDelegator.h | 67 + .../gnu/javax/swing/text/html/parser/HTML_401F.h | 330 + .../javax/swing/text/html/parser/HTML_401Swing.h | 65 + .../text/html/parser/SmallHtmlAttributeSet$1.h | 49 + .../swing/text/html/parser/SmallHtmlAttributeSet.h | 71 + libjava/gnu/javax/swing/text/html/parser/gnuDTD.h | 81 + .../swing/text/html/parser/htmlAttributeSet$1.h | 50 + .../swing/text/html/parser/htmlAttributeSet.h | 62 + .../swing/text/html/parser/htmlValidator$hTag.h | 74 + .../javax/swing/text/html/parser/htmlValidator.h | 89 + .../text/html/parser/models/PCDATAonly_model.h | 48 + .../text/html/parser/models/TableRowContentModel.h | 67 + .../gnu/javax/swing/text/html/parser/models/list.h | 66 + .../swing/text/html/parser/models/noTagModel.h | 53 + .../gnu/javax/swing/text/html/parser/models/node.h | 68 + .../swing/text/html/parser/models/transformer.h | 75 + .../swing/text/html/parser/support/Parser$1.h | 50 + .../swing/text/html/parser/support/Parser$2.h | 69 + .../javax/swing/text/html/parser/support/Parser.h | 154 + .../text/html/parser/support/gnuStringIntMapper.h | 54 + .../swing/text/html/parser/support/low/Buffer.h | 72 + .../swing/text/html/parser/support/low/Constants.h | 89 + .../swing/text/html/parser/support/low/Location.h | 52 + .../text/html/parser/support/low/ParseException.h | 47 + .../swing/text/html/parser/support/low/Queue.h | 61 + .../text/html/parser/support/low/ReaderTokenizer.h | 79 + .../swing/text/html/parser/support/low/Token.h | 63 + .../swing/text/html/parser/support/low/node.h | 50 + .../swing/text/html/parser/support/low/pattern.h | 53 + .../text/html/parser/support/parameterDefaulter.h | 66 + .../text/html/parser/support/textPreProcessor.h | 51 + libjava/gnu/javax/swing/tree/GnuPath.h | 38 + libjava/gnu/xml/aelfred2/JAXPFactory$JaxpParser.h | 59 + libjava/gnu/xml/aelfred2/JAXPFactory.h | 48 + libjava/gnu/xml/aelfred2/SAXDriver$Adapter.h | 61 + libjava/gnu/xml/aelfred2/SAXDriver$Attribute.h | 38 + libjava/gnu/xml/aelfred2/SAXDriver.h | 167 + libjava/gnu/xml/aelfred2/XmlParser$AttributeDecl.h | 38 + libjava/gnu/xml/aelfred2/XmlParser$ElementDecl.h | 36 + libjava/gnu/xml/aelfred2/XmlParser$EntityInfo.h | 38 + .../xml/aelfred2/XmlParser$ExternalIdentifiers.h | 37 + libjava/gnu/xml/aelfred2/XmlParser$Input.h | 54 + libjava/gnu/xml/aelfred2/XmlParser.h | 274 + .../gnu/xml/aelfred2/XmlReader$FatalErrorHandler.h | 44 + libjava/gnu/xml/aelfred2/XmlReader.h | 76 + libjava/gnu/xml/dom/Consumer$Backdoor.h | 77 + libjava/gnu/xml/dom/Consumer.h | 37 + libjava/gnu/xml/dom/DTDAttributeTypeInfo.h | 43 + libjava/gnu/xml/dom/DTDElementTypeInfo.h | 46 + libjava/gnu/xml/dom/DomAttr.h | 72 + libjava/gnu/xml/dom/DomCDATASection.h | 38 + .../gnu/xml/dom/DomCharacterData$EmptyNodeList.h | 45 + libjava/gnu/xml/dom/DomCharacterData.h | 66 + libjava/gnu/xml/dom/DomComment.h | 35 + libjava/gnu/xml/dom/DomDOMException.h | 53 + libjava/gnu/xml/dom/DomDoctype.h | 84 + libjava/gnu/xml/dom/DomDocument.h | 154 + libjava/gnu/xml/dom/DomDocumentBuilder.h | 74 + libjava/gnu/xml/dom/DomDocumentBuilderFactory.h | 71 + libjava/gnu/xml/dom/DomDocumentConfiguration.h | 62 + libjava/gnu/xml/dom/DomDocumentFragment.h | 35 + libjava/gnu/xml/dom/DomElement.h | 85 + libjava/gnu/xml/dom/DomEntity.h | 42 + libjava/gnu/xml/dom/DomEntityReference.h | 39 + libjava/gnu/xml/dom/DomEvent$DomMutationEvent.h | 59 + libjava/gnu/xml/dom/DomEvent$DomUIEvent.h | 52 + libjava/gnu/xml/dom/DomEvent.h | 67 + libjava/gnu/xml/dom/DomExtern.h | 43 + libjava/gnu/xml/dom/DomImpl.h | 61 + libjava/gnu/xml/dom/DomIterator.h | 74 + libjava/gnu/xml/dom/DomNSResolverContext.h | 55 + libjava/gnu/xml/dom/DomNamedNodeMap.h | 69 + libjava/gnu/xml/dom/DomNode$DomEventException.h | 33 + libjava/gnu/xml/dom/DomNode$ListenerRecord.h | 53 + libjava/gnu/xml/dom/DomNode$LiveNodeList.h | 67 + libjava/gnu/xml/dom/DomNode$ShadowList.h | 53 + libjava/gnu/xml/dom/DomNode.h | 174 + libjava/gnu/xml/dom/DomNodeIterator.h | 69 + libjava/gnu/xml/dom/DomNotation.h | 35 + libjava/gnu/xml/dom/DomNsNode.h | 52 + libjava/gnu/xml/dom/DomProcessingInstruction.h | 44 + libjava/gnu/xml/dom/DomText.h | 55 + libjava/gnu/xml/dom/DomXPathExpression.h | 65 + libjava/gnu/xml/dom/DomXPathNSResolver.h | 47 + libjava/gnu/xml/dom/DomXPathResult.h | 60 + libjava/gnu/xml/dom/ImplementationList.h | 48 + libjava/gnu/xml/dom/ImplementationSource.h | 56 + libjava/gnu/xml/dom/JAXPFactory$JAXPBuilder.h | 73 + libjava/gnu/xml/dom/JAXPFactory.h | 54 + libjava/gnu/xml/dom/html2/DomHTMLAnchorElement.h | 63 + libjava/gnu/xml/dom/html2/DomHTMLAppletElement.h | 63 + libjava/gnu/xml/dom/html2/DomHTMLAreaElement.h | 53 + libjava/gnu/xml/dom/html2/DomHTMLBRElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLBaseElement.h | 41 + libjava/gnu/xml/dom/html2/DomHTMLBaseFontElement.h | 43 + libjava/gnu/xml/dom/html2/DomHTMLBodyElement.h | 49 + libjava/gnu/xml/dom/html2/DomHTMLButtonElement.h | 62 + libjava/gnu/xml/dom/html2/DomHTMLCollection.h | 69 + libjava/gnu/xml/dom/html2/DomHTMLDListElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLDirectoryElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLDivElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLDocument.h | 85 + libjava/gnu/xml/dom/html2/DomHTMLElement.h | 67 + libjava/gnu/xml/dom/html2/DomHTMLEmbedElement.h | 53 + libjava/gnu/xml/dom/html2/DomHTMLFieldSetElement.h | 51 + libjava/gnu/xml/dom/html2/DomHTMLFontElement.h | 43 + libjava/gnu/xml/dom/html2/DomHTMLFormElement.h | 66 + libjava/gnu/xml/dom/html2/DomHTMLFrameElement.h | 64 + libjava/gnu/xml/dom/html2/DomHTMLFrameSetElement.h | 41 + libjava/gnu/xml/dom/html2/DomHTMLHRElement.h | 45 + libjava/gnu/xml/dom/html2/DomHTMLHeadElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLHeadingElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLHtmlElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLIFrameElement.h | 68 + libjava/gnu/xml/dom/html2/DomHTMLImageElement.h | 61 + libjava/gnu/xml/dom/html2/DomHTMLImpl.h | 49 + libjava/gnu/xml/dom/html2/DomHTMLInputElement.h | 93 + libjava/gnu/xml/dom/html2/DomHTMLIsIndexElement.h | 53 + libjava/gnu/xml/dom/html2/DomHTMLLIElement.h | 41 + libjava/gnu/xml/dom/html2/DomHTMLLabelElement.h | 55 + libjava/gnu/xml/dom/html2/DomHTMLLegendElement.h | 55 + libjava/gnu/xml/dom/html2/DomHTMLLinkElement.h | 55 + libjava/gnu/xml/dom/html2/DomHTMLMapElement.h | 53 + libjava/gnu/xml/dom/html2/DomHTMLMenuElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLMetaElement.h | 45 + libjava/gnu/xml/dom/html2/DomHTMLModElement.h | 41 + libjava/gnu/xml/dom/html2/DomHTMLOListElement.h | 43 + libjava/gnu/xml/dom/html2/DomHTMLObjectElement.h | 103 + libjava/gnu/xml/dom/html2/DomHTMLOptGroupElement.h | 41 + libjava/gnu/xml/dom/html2/DomHTMLOptionElement.h | 66 + .../gnu/xml/dom/html2/DomHTMLParagraphElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLParamElement.h | 45 + libjava/gnu/xml/dom/html2/DomHTMLParser.h | 81 + libjava/gnu/xml/dom/html2/DomHTMLPreElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLQuoteElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLScriptElement.h | 51 + libjava/gnu/xml/dom/html2/DomHTMLSelectElement.h | 75 + libjava/gnu/xml/dom/html2/DomHTMLStyleElement.h | 43 + .../gnu/xml/dom/html2/DomHTMLTableCaptionElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLTableCellElement.h | 66 + libjava/gnu/xml/dom/html2/DomHTMLTableColElement.h | 49 + libjava/gnu/xml/dom/html2/DomHTMLTableElement.h | 91 + libjava/gnu/xml/dom/html2/DomHTMLTableRowElement.h | 70 + .../gnu/xml/dom/html2/DomHTMLTableSectionElement.h | 66 + libjava/gnu/xml/dom/html2/DomHTMLTextAreaElement.h | 76 + libjava/gnu/xml/dom/html2/DomHTMLTitleElement.h | 39 + libjava/gnu/xml/dom/html2/DomHTMLUListElement.h | 41 + libjava/gnu/xml/dom/ls/DomLSException.h | 35 + libjava/gnu/xml/dom/ls/DomLSInput.h | 59 + libjava/gnu/xml/dom/ls/DomLSOutput.h | 48 + libjava/gnu/xml/dom/ls/DomLSParser.h | 117 + libjava/gnu/xml/dom/ls/DomLSSerializer.h | 77 + libjava/gnu/xml/dom/ls/FilteredSAXEventSink.h | 80 + libjava/gnu/xml/dom/ls/ReaderInputStream.h | 58 + libjava/gnu/xml/dom/ls/SAXEventSink.h | 126 + libjava/gnu/xml/dom/ls/WriterOutputStream.h | 49 + libjava/gnu/xml/libxmlj/dom/GnomeAttr.h | 60 + libjava/gnu/xml/libxmlj/dom/GnomeCDATASection.h | 36 + libjava/gnu/xml/libxmlj/dom/GnomeCharacterData.h | 45 + libjava/gnu/xml/libxmlj/dom/GnomeComment.h | 36 + libjava/gnu/xml/libxmlj/dom/GnomeDOMException.h | 38 + libjava/gnu/xml/libxmlj/dom/GnomeDOMStringList.h | 44 + libjava/gnu/xml/libxmlj/dom/GnomeDocument.h | 148 + libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.h | 86 + .../xml/libxmlj/dom/GnomeDocumentBuilderFactory.h | 53 + .../gnu/xml/libxmlj/dom/GnomeDocumentFragment.h | 36 + libjava/gnu/xml/libxmlj/dom/GnomeDocumentType.h | 53 + libjava/gnu/xml/libxmlj/dom/GnomeElement.h | 72 + libjava/gnu/xml/libxmlj/dom/GnomeEntity.h | 43 + libjava/gnu/xml/libxmlj/dom/GnomeEntityReference.h | 36 + libjava/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.h | 58 + libjava/gnu/xml/libxmlj/dom/GnomeNode.h | 120 + libjava/gnu/xml/libxmlj/dom/GnomeNodeList.h | 51 + libjava/gnu/xml/libxmlj/dom/GnomeNotation.h | 39 + .../xml/libxmlj/dom/GnomeProcessingInstruction.h | 40 + libjava/gnu/xml/libxmlj/dom/GnomeText.h | 50 + libjava/gnu/xml/libxmlj/dom/GnomeTypeInfo.h | 42 + libjava/gnu/xml/libxmlj/dom/GnomeXPathExpression.h | 62 + libjava/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.h | 50 + libjava/gnu/xml/libxmlj/dom/GnomeXPathNodeList.h | 55 + libjava/gnu/xml/libxmlj/dom/GnomeXPathResult.h | 63 + libjava/gnu/xml/libxmlj/sax/GnomeLocator.h | 54 + libjava/gnu/xml/libxmlj/sax/GnomeSAXParser.h | 57 + .../gnu/xml/libxmlj/sax/GnomeSAXParserFactory.h | 51 + libjava/gnu/xml/libxmlj/sax/GnomeXMLReader.h | 130 + libjava/gnu/xml/libxmlj/sax/Namespaces.h | 42 + .../gnu/xml/libxmlj/sax/StringArrayAttributes.h | 57 + libjava/gnu/xml/libxmlj/sax/XMLName.h | 46 + .../libxmlj/transform/ErrorListenerErrorHandler.h | 65 + .../gnu/xml/libxmlj/transform/GnomeTransformer.h | 106 + ...ransformerFactory$AssociatedStylesheetHandler.h | 44 + .../libxmlj/transform/GnomeTransformerFactory.h | 82 + .../libxmlj/transform/URIResolverEntityResolver.h | 60 + libjava/gnu/xml/libxmlj/util/EmptyNodeList.h | 48 + libjava/gnu/xml/libxmlj/util/NamedInputStream.h | 44 + .../gnu/xml/libxmlj/util/StandaloneDocumentType.h | 97 + libjava/gnu/xml/libxmlj/util/StandaloneLocator.h | 45 + .../gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.h | 37 + libjava/gnu/xml/libxmlj/util/XMLJ.h | 81 + libjava/gnu/xml/pipeline/CallFilter$Requestor.h | 39 + libjava/gnu/xml/pipeline/CallFilter.h | 73 + libjava/gnu/xml/pipeline/DomConsumer$Handler.h | 121 + libjava/gnu/xml/pipeline/DomConsumer.h | 86 + libjava/gnu/xml/pipeline/EventConsumer.h | 47 + libjava/gnu/xml/pipeline/EventFilter.h | 125 + libjava/gnu/xml/pipeline/LinkFilter.h | 57 + libjava/gnu/xml/pipeline/NSFilter.h | 71 + .../gnu/xml/pipeline/PipelineFactory$Pipeline.h | 42 + libjava/gnu/xml/pipeline/PipelineFactory$Stage.h | 43 + libjava/gnu/xml/pipeline/PipelineFactory.h | 53 + libjava/gnu/xml/pipeline/TeeConsumer.h | 94 + libjava/gnu/xml/pipeline/TextConsumer.h | 48 + .../pipeline/ValidationConsumer$AttributeInfo.h | 37 + .../ValidationConsumer$ChildrenRecognizer.h | 56 + .../xml/pipeline/ValidationConsumer$ElementInfo.h | 41 + .../pipeline/ValidationConsumer$EmptyRecognizer.h | 38 + .../pipeline/ValidationConsumer$MixedRecognizer.h | 42 + .../xml/pipeline/ValidationConsumer$Recognizer.h | 41 + libjava/gnu/xml/pipeline/ValidationConsumer.h | 105 + libjava/gnu/xml/pipeline/WellFormednessFilter.h | 74 + libjava/gnu/xml/pipeline/XIncludeFilter$Scrubber.h | 57 + libjava/gnu/xml/pipeline/XIncludeFilter.h | 100 + libjava/gnu/xml/pipeline/XsltFilter.h | 33 + libjava/gnu/xml/stream/AttributeImpl.h | 59 + libjava/gnu/xml/stream/BufferedReader.h | 56 + libjava/gnu/xml/stream/CRLFReader.h | 53 + libjava/gnu/xml/stream/CharactersImpl.h | 55 + libjava/gnu/xml/stream/CommentImpl.h | 49 + libjava/gnu/xml/stream/DTDImpl.h | 55 + libjava/gnu/xml/stream/EndDocumentImpl.h | 45 + libjava/gnu/xml/stream/EndElementImpl.h | 55 + libjava/gnu/xml/stream/EntityDeclarationImpl.h | 59 + libjava/gnu/xml/stream/EntityReferenceImpl.h | 55 + libjava/gnu/xml/stream/FilteredEventReader.h | 56 + libjava/gnu/xml/stream/FilteredStreamReader.h | 51 + libjava/gnu/xml/stream/NamespaceImpl.h | 52 + libjava/gnu/xml/stream/NotationDeclarationImpl.h | 53 + libjava/gnu/xml/stream/ProcessingInstructionImpl.h | 51 + libjava/gnu/xml/stream/SAXParser.h | 147 + libjava/gnu/xml/stream/SAXParserFactory.h | 49 + libjava/gnu/xml/stream/StartDocumentImpl.h | 59 + libjava/gnu/xml/stream/StartElementImpl.h | 66 + libjava/gnu/xml/stream/UnicodeReader.h | 44 + libjava/gnu/xml/stream/XIncludeFilter.h | 139 + libjava/gnu/xml/stream/XMLEventAllocatorImpl.h | 59 + libjava/gnu/xml/stream/XMLEventFactoryImpl.h | 93 + libjava/gnu/xml/stream/XMLEventImpl.h | 73 + libjava/gnu/xml/stream/XMLEventReaderImpl.h | 66 + libjava/gnu/xml/stream/XMLEventWriterImpl.h | 64 + libjava/gnu/xml/stream/XMLInputFactoryImpl.h | 96 + libjava/gnu/xml/stream/XMLOutputFactoryImpl.h | 63 + libjava/gnu/xml/stream/XMLParser$AnyContentModel.h | 35 + libjava/gnu/xml/stream/XMLParser$Attribute.h | 44 + libjava/gnu/xml/stream/XMLParser$AttributeDecl.h | 41 + libjava/gnu/xml/stream/XMLParser$ContentModel.h | 44 + libjava/gnu/xml/stream/XMLParser$ContentParticle.h | 38 + libjava/gnu/xml/stream/XMLParser$Doctype.h | 74 + .../gnu/xml/stream/XMLParser$ElementContentModel.h | 40 + .../gnu/xml/stream/XMLParser$EmptyContentModel.h | 35 + libjava/gnu/xml/stream/XMLParser$ExternalIds.h | 38 + libjava/gnu/xml/stream/XMLParser$Input.h | 83 + .../gnu/xml/stream/XMLParser$MixedContentModel.h | 40 + libjava/gnu/xml/stream/XMLParser.h | 296 + libjava/gnu/xml/stream/XMLStreamWriterImpl.h | 119 + libjava/gnu/xml/transform/AbstractNumberNode.h | 77 + libjava/gnu/xml/transform/ApplyImportsNode.h | 58 + libjava/gnu/xml/transform/ApplyTemplatesNode.h | 70 + libjava/gnu/xml/transform/AttributeNode.h | 66 + libjava/gnu/xml/transform/AttributeSet.h | 39 + libjava/gnu/xml/transform/Bindings.h | 76 + libjava/gnu/xml/transform/CallTemplateNode.h | 63 + libjava/gnu/xml/transform/ChooseNode.h | 58 + libjava/gnu/xml/transform/CommentNode.h | 58 + libjava/gnu/xml/transform/CopyNode.h | 62 + libjava/gnu/xml/transform/CopyOfNode.h | 66 + libjava/gnu/xml/transform/CurrentFunction.h | 67 + libjava/gnu/xml/transform/DOMSourceLocator.h | 51 + libjava/gnu/xml/transform/DocumentFunction.h | 72 + .../gnu/xml/transform/ElementAvailableFunction.h | 69 + libjava/gnu/xml/transform/ElementNode.h | 68 + .../gnu/xml/transform/ErrorListenerErrorHandler.h | 59 + libjava/gnu/xml/transform/ForEachNode.h | 67 + libjava/gnu/xml/transform/FormatNumberFunction.h | 67 + .../gnu/xml/transform/FunctionAvailableFunction.h | 70 + libjava/gnu/xml/transform/GenerateIdFunction.h | 65 + libjava/gnu/xml/transform/IfNode.h | 66 + libjava/gnu/xml/transform/Key.h | 53 + libjava/gnu/xml/transform/KeyFunction.h | 72 + libjava/gnu/xml/transform/LiteralNode.h | 62 + libjava/gnu/xml/transform/MessageNode.h | 62 + libjava/gnu/xml/transform/NamespaceProxy.h | 49 + libjava/gnu/xml/transform/NodeNumberNode.h | 62 + libjava/gnu/xml/transform/NumberNode.h | 54 + libjava/gnu/xml/transform/OtherwiseNode.h | 58 + libjava/gnu/xml/transform/ParameterNode.h | 70 + .../gnu/xml/transform/ProcessingInstructionNode.h | 61 + libjava/gnu/xml/transform/SAXSerializer.h | 75 + libjava/gnu/xml/transform/SAXTemplatesHandler.h | 51 + libjava/gnu/xml/transform/SAXTransformerHandler.h | 56 + libjava/gnu/xml/transform/SortKey.h | 74 + libjava/gnu/xml/transform/StreamSerializer.h | 103 + libjava/gnu/xml/transform/StrippingInstruction.h | 40 + libjava/gnu/xml/transform/Stylesheet.h | 170 + libjava/gnu/xml/transform/SystemPropertyFunction.h | 68 + libjava/gnu/xml/transform/Template.h | 86 + libjava/gnu/xml/transform/TemplateNode.h | 65 + libjava/gnu/xml/transform/TemplatesImpl.h | 52 + libjava/gnu/xml/transform/TextNode.h | 61 + libjava/gnu/xml/transform/TransformerFactoryImpl.h | 101 + libjava/gnu/xml/transform/TransformerImpl.h | 100 + .../xml/transform/TransformerOutputProperties.h | 43 + .../gnu/xml/transform/URIResolverEntityResolver.h | 57 + .../gnu/xml/transform/UnparsedEntityUriFunction.h | 65 + libjava/gnu/xml/transform/ValueOfNode.h | 67 + libjava/gnu/xml/transform/WhenNode.h | 66 + libjava/gnu/xml/transform/WithParam.h | 66 + libjava/gnu/xml/transform/XSLComparator.h | 37 + libjava/gnu/xml/transform/XSLURIResolver.h | 74 + libjava/gnu/xml/util/DoParse$MyErrorHandler.h | 46 + libjava/gnu/xml/util/DoParse.h | 65 + libjava/gnu/xml/util/DomParser.h | 105 + libjava/gnu/xml/util/Resolver.h | 53 + .../util/SAXNullTransformerFactory$DomHandler.h | 54 + .../util/SAXNullTransformerFactory$DomTerminus.h | 46 + .../SAXNullTransformerFactory$ListenerAdapter.h | 62 + .../SAXNullTransformerFactory$LocatorAdapter.h | 43 + .../util/SAXNullTransformerFactory$NullHandler.h | 52 + .../SAXNullTransformerFactory$NullTransformer.h | 69 + libjava/gnu/xml/util/SAXNullTransformerFactory.h | 88 + libjava/gnu/xml/util/XCat$Catalog.h | 71 + libjava/gnu/xml/util/XCat$DoneDelegation.h | 33 + libjava/gnu/xml/util/XCat$Loader.h | 72 + libjava/gnu/xml/util/XCat.h | 80 + libjava/gnu/xml/util/XHTMLWriter.h | 35 + libjava/gnu/xml/util/XMLWriter.h | 145 + libjava/gnu/xml/validation/datatype/Annotation.h | 37 + .../gnu/xml/validation/datatype/AnySimpleType.h | 36 + libjava/gnu/xml/validation/datatype/AnyType.h | 36 + libjava/gnu/xml/validation/datatype/AnyURIType.h | 53 + .../gnu/xml/validation/datatype/AtomicSimpleType.h | 61 + .../gnu/xml/validation/datatype/Base64BinaryType.h | 56 + libjava/gnu/xml/validation/datatype/BooleanType.h | 55 + libjava/gnu/xml/validation/datatype/ByteType.h | 57 + libjava/gnu/xml/validation/datatype/DateTimeType.h | 54 + libjava/gnu/xml/validation/datatype/DateType.h | 54 + libjava/gnu/xml/validation/datatype/DecimalType.h | 54 + libjava/gnu/xml/validation/datatype/DoubleType.h | 55 + .../validation/datatype/DurationType$Duration.h | 46 + libjava/gnu/xml/validation/datatype/DurationType.h | 54 + libjava/gnu/xml/validation/datatype/EntitiesType.h | 54 + libjava/gnu/xml/validation/datatype/EntityType.h | 54 + .../gnu/xml/validation/datatype/EnumerationFacet.h | 39 + libjava/gnu/xml/validation/datatype/Facet.h | 51 + libjava/gnu/xml/validation/datatype/FloatType.h | 55 + .../xml/validation/datatype/FractionDigitsFacet.h | 40 + .../gnu/xml/validation/datatype/GDayType$GDay.h | 42 + libjava/gnu/xml/validation/datatype/GDayType.h | 54 + .../validation/datatype/GMonthDayType$GMonthDay.h | 43 + .../gnu/xml/validation/datatype/GMonthDayType.h | 54 + .../xml/validation/datatype/GMonthType$GMonth.h | 42 + libjava/gnu/xml/validation/datatype/GMonthType.h | 54 + .../datatype/GYearMonthType$GYearMonth.h | 43 + .../gnu/xml/validation/datatype/GYearMonthType.h | 54 + .../gnu/xml/validation/datatype/GYearType$GYear.h | 42 + libjava/gnu/xml/validation/datatype/GYearType.h | 54 + .../gnu/xml/validation/datatype/HexBinaryType.h | 54 + libjava/gnu/xml/validation/datatype/IDRefType.h | 54 + libjava/gnu/xml/validation/datatype/IDRefsType.h | 54 + libjava/gnu/xml/validation/datatype/IDType.h | 54 + libjava/gnu/xml/validation/datatype/IntType.h | 57 + libjava/gnu/xml/validation/datatype/IntegerType.h | 54 + libjava/gnu/xml/validation/datatype/LanguageType.h | 54 + libjava/gnu/xml/validation/datatype/LengthFacet.h | 40 + .../gnu/xml/validation/datatype/ListSimpleType.h | 59 + libjava/gnu/xml/validation/datatype/LongType.h | 57 + .../xml/validation/datatype/MaxExclusiveFacet.h | 43 + .../xml/validation/datatype/MaxInclusiveFacet.h | 43 + .../gnu/xml/validation/datatype/MaxLengthFacet.h | 40 + .../xml/validation/datatype/MinExclusiveFacet.h | 43 + .../xml/validation/datatype/MinInclusiveFacet.h | 43 + .../gnu/xml/validation/datatype/MinLengthFacet.h | 40 + libjava/gnu/xml/validation/datatype/NCNameType.h | 53 + libjava/gnu/xml/validation/datatype/NMTokenType.h | 53 + libjava/gnu/xml/validation/datatype/NMTokensType.h | 55 + libjava/gnu/xml/validation/datatype/NameType.h | 53 + .../xml/validation/datatype/NegativeIntegerType.h | 54 + .../validation/datatype/NonNegativeIntegerType.h | 54 + .../validation/datatype/NonPositiveIntegerType.h | 54 + .../xml/validation/datatype/NormalizedStringType.h | 53 + libjava/gnu/xml/validation/datatype/NotationType.h | 54 + libjava/gnu/xml/validation/datatype/PatternFacet.h | 39 + .../xml/validation/datatype/PositiveIntegerType.h | 54 + libjava/gnu/xml/validation/datatype/QNameType.h | 54 + libjava/gnu/xml/validation/datatype/ShortType.h | 57 + libjava/gnu/xml/validation/datatype/SimpleType.h | 81 + libjava/gnu/xml/validation/datatype/StringType.h | 42 + .../gnu/xml/validation/datatype/TimeType$Time.h | 43 + libjava/gnu/xml/validation/datatype/TimeType.h | 54 + libjava/gnu/xml/validation/datatype/TokenType.h | 53 + .../gnu/xml/validation/datatype/TotalDigitsFacet.h | 40 + libjava/gnu/xml/validation/datatype/Type.h | 47 + libjava/gnu/xml/validation/datatype/TypeBuilder.h | 79 + libjava/gnu/xml/validation/datatype/TypeLibrary.h | 97 + .../xml/validation/datatype/TypeLibraryFactory.h | 46 + .../gnu/xml/validation/datatype/UnionSimpleType.h | 59 + .../gnu/xml/validation/datatype/UnsignedByteType.h | 56 + .../gnu/xml/validation/datatype/UnsignedIntType.h | 56 + .../gnu/xml/validation/datatype/UnsignedLongType.h | 56 + .../xml/validation/datatype/UnsignedShortType.h | 56 + .../gnu/xml/validation/datatype/WhiteSpaceFacet.h | 43 + .../gnu/xml/validation/relaxng/AnyNameNameClass.h | 39 + .../gnu/xml/validation/relaxng/AttributePattern.h | 40 + .../gnu/xml/validation/relaxng/ChoiceNameClass.h | 40 + libjava/gnu/xml/validation/relaxng/ChoicePattern.h | 39 + libjava/gnu/xml/validation/relaxng/DataPattern.h | 52 + libjava/gnu/xml/validation/relaxng/Define.h | 39 + .../gnu/xml/validation/relaxng/ElementPattern.h | 40 + libjava/gnu/xml/validation/relaxng/EmptyPattern.h | 37 + .../gnu/xml/validation/relaxng/FullSyntaxBuilder.h | 132 + libjava/gnu/xml/validation/relaxng/Grammar.h | 54 + .../gnu/xml/validation/relaxng/GrammarException.h | 36 + .../gnu/xml/validation/relaxng/GrammarValidator.h | 79 + libjava/gnu/xml/validation/relaxng/GroupPattern.h | 39 + .../gnu/xml/validation/relaxng/InterleavePattern.h | 39 + libjava/gnu/xml/validation/relaxng/ListPattern.h | 38 + .../gnu/xml/validation/relaxng/NSNameNameClass.h | 40 + libjava/gnu/xml/validation/relaxng/NameClass.h | 37 + libjava/gnu/xml/validation/relaxng/NameNameClass.h | 39 + .../gnu/xml/validation/relaxng/NotAllowedPattern.h | 37 + .../gnu/xml/validation/relaxng/OneOrMorePattern.h | 38 + libjava/gnu/xml/validation/relaxng/Param.h | 38 + libjava/gnu/xml/validation/relaxng/Pattern.h | 36 + .../xml/validation/relaxng/RELAXNGSchemaFactory.h | 85 + libjava/gnu/xml/validation/relaxng/RefPattern.h | 37 + libjava/gnu/xml/validation/relaxng/TextPattern.h | 37 + libjava/gnu/xml/validation/relaxng/ValuePattern.h | 51 + .../gnu/xml/validation/xmlschema/AnyAttribute.h | 46 + .../validation/xmlschema/AttributeDeclaration.h | 60 + .../gnu/xml/validation/xmlschema/AttributeUse.h | 41 + libjava/gnu/xml/validation/xmlschema/ComplexType.h | 57 + .../xml/validation/xmlschema/ElementDeclaration.h | 63 + libjava/gnu/xml/validation/xmlschema/Particle.h | 39 + .../xml/validation/xmlschema/ValidationException.h | 46 + libjava/gnu/xml/validation/xmlschema/XMLSchema.h | 81 + .../xmlschema/XMLSchemaAttributeTypeInfo.h | 52 + .../xml/validation/xmlschema/XMLSchemaBuilder.h | 98 + .../xmlschema/XMLSchemaElementTypeInfo.h | 51 + .../validation/xmlschema/XMLSchemaSchemaFactory.h | 85 + .../xml/validation/xmlschema/XMLSchemaTypeInfo.h | 45 + .../xmlschema/XMLSchemaTypeInfoProvider.h | 54 + .../xml/validation/xmlschema/XMLSchemaValidator.h | 79 + .../xmlschema/XMLSchemaValidatorHandler.h | 125 + libjava/gnu/xml/xpath/AndExpr.h | 61 + libjava/gnu/xml/xpath/ArithmeticExpr.h | 68 + libjava/gnu/xml/xpath/BooleanFunction.h | 62 + libjava/gnu/xml/xpath/CeilingFunction.h | 62 + libjava/gnu/xml/xpath/ConcatFunction.h | 61 + libjava/gnu/xml/xpath/Constant.h | 60 + libjava/gnu/xml/xpath/ContainsFunction.h | 63 + libjava/gnu/xml/xpath/CountFunction.h | 62 + libjava/gnu/xml/xpath/DocumentOrderComparator.h | 33 + libjava/gnu/xml/xpath/EqualityExpr.h | 66 + libjava/gnu/xml/xpath/Expr$ExprNodeSet.h | 48 + libjava/gnu/xml/xpath/Expr.h | 92 + libjava/gnu/xml/xpath/FalseFunction.h | 58 + libjava/gnu/xml/xpath/FloorFunction.h | 62 + libjava/gnu/xml/xpath/Function.h | 32 + libjava/gnu/xml/xpath/FunctionCall.h | 67 + libjava/gnu/xml/xpath/IdFunction.h | 63 + libjava/gnu/xml/xpath/LangFunction.h | 65 + libjava/gnu/xml/xpath/LastFunction.h | 58 + libjava/gnu/xml/xpath/LocalNameFunction.h | 62 + libjava/gnu/xml/xpath/NameFunction.h | 62 + libjava/gnu/xml/xpath/NameTest.h | 68 + libjava/gnu/xml/xpath/NamespaceTest.h | 64 + libjava/gnu/xml/xpath/NamespaceUriFunction.h | 62 + libjava/gnu/xml/xpath/NegativeExpr.h | 61 + libjava/gnu/xml/xpath/NodeTypeTest.h | 64 + libjava/gnu/xml/xpath/NormalizeSpaceFunction.h | 62 + libjava/gnu/xml/xpath/NotFunction.h | 62 + libjava/gnu/xml/xpath/NumberFunction.h | 62 + libjava/gnu/xml/xpath/OrExpr.h | 61 + libjava/gnu/xml/xpath/ParenthesizedExpr.h | 61 + libjava/gnu/xml/xpath/Path.h | 44 + libjava/gnu/xml/xpath/Pattern.h | 43 + libjava/gnu/xml/xpath/PositionFunction.h | 58 + libjava/gnu/xml/xpath/Predicate.h | 62 + libjava/gnu/xml/xpath/RelationalExpr.h | 64 + libjava/gnu/xml/xpath/Root.h | 61 + libjava/gnu/xml/xpath/RoundFunction.h | 62 + libjava/gnu/xml/xpath/Selector.h | 97 + libjava/gnu/xml/xpath/StartsWithFunction.h | 63 + libjava/gnu/xml/xpath/Steps.h | 72 + libjava/gnu/xml/xpath/StringFunction.h | 62 + libjava/gnu/xml/xpath/StringLengthFunction.h | 62 + libjava/gnu/xml/xpath/SubstringAfterFunction.h | 63 + libjava/gnu/xml/xpath/SubstringBeforeFunction.h | 63 + libjava/gnu/xml/xpath/SubstringFunction.h | 64 + libjava/gnu/xml/xpath/SumFunction.h | 62 + libjava/gnu/xml/xpath/Test.h | 55 + libjava/gnu/xml/xpath/TranslateFunction.h | 64 + libjava/gnu/xml/xpath/TrueFunction.h | 58 + libjava/gnu/xml/xpath/UnionExpr.h | 62 + libjava/gnu/xml/xpath/VariableReference.h | 65 + libjava/gnu/xml/xpath/XPathFactoryImpl.h | 54 + libjava/gnu/xml/xpath/XPathImpl.h | 79 + libjava/gnu/xml/xpath/XPathParser$YyCheckClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyDefRedClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyDgotoClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyGindexClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyLenClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyLhsClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyNameClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyRindexClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YySindexClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$YyTableClass.h | 36 + libjava/gnu/xml/xpath/XPathParser$yyException.h | 32 + libjava/gnu/xml/xpath/XPathParser$yyInput.h | 34 + libjava/gnu/xml/xpath/XPathParser.h | 124 + libjava/gnu/xml/xpath/XPathTokenizer$XPathToken.h | 40 + libjava/gnu/xml/xpath/XPathTokenizer.h | 49 + libjava/headers.txt | 65 + libjava/include/Makefile.in | 17 +- libjava/include/config.h.in | 12 + libjava/include/java-cpool.h | 1 + libjava/include/java-interp.h | 27 +- libjava/include/java-stack.h | 29 +- libjava/include/jvm.h | 128 +- libjava/include/posix-threads.h | 56 +- libjava/include/posix.h | 7 + libjava/include/win32-threads.h | 23 + libjava/include/win32.h | 3 + libjava/interpret.cc | 50 +- libjava/java/applet/Applet$AccessibleApplet.h | 46 + libjava/java/applet/Applet$URLAudioClip.h | 53 + libjava/java/applet/Applet.h | 82 + libjava/java/applet/AppletContext.h | 48 + libjava/java/applet/AppletStub.h | 39 + libjava/java/applet/AudioClip.h | 31 + libjava/java/awt/AWTError.h | 32 + libjava/java/awt/AWTEvent.h | 75 + libjava/java/awt/AWTEventMulticaster.h | 151 + libjava/java/awt/AWTException.h | 32 + libjava/java/awt/AWTKeyStroke$1.h | 34 + libjava/java/awt/AWTKeyStroke$2.h | 31 + libjava/java/awt/AWTKeyStroke$3.h | 34 + libjava/java/awt/AWTKeyStroke.h | 70 + libjava/java/awt/AWTPermission.h | 33 + libjava/java/awt/ActiveEvent.h | 29 + libjava/java/awt/Adjustable.h | 50 + libjava/java/awt/AlphaComposite$1.h | 34 + libjava/java/awt/AlphaComposite.h | 73 + libjava/java/awt/AttributeValue.h | 39 + libjava/java/awt/BasicStroke.h | 92 + libjava/java/awt/BorderLayout.h | 85 + libjava/java/awt/BufferCapabilities$FlipContents.h | 36 + libjava/java/awt/BufferCapabilities.h | 43 + libjava/java/awt/Button$AccessibleAWTButton.h | 56 + libjava/java/awt/Button.h | 75 + libjava/java/awt/Canvas$AccessibleAWTCanvas.h | 44 + libjava/java/awt/Canvas$CanvasBltBufferStrategy.h | 32 + libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h | 32 + libjava/java/awt/Canvas.h | 64 + libjava/java/awt/CardLayout.h | 68 + libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h | 61 + libjava/java/awt/Checkbox.h | 82 + libjava/java/awt/CheckboxGroup.h | 39 + ...heckboxMenuItem$AccessibleAWTCheckboxMenuItem.h | 35 + libjava/java/awt/CheckboxMenuItem.h | 71 + libjava/java/awt/Choice$AccessibleAWTChoice.h | 48 + libjava/java/awt/Choice.h | 84 + libjava/java/awt/Color.h | 128 + libjava/java/awt/ColorPaintContext$ColorRaster.h | 39 + libjava/java/awt/ColorPaintContext.h | 46 + ...bleAWTComponent$AccessibleAWTComponentHandler.h | 42 + ...essibleAWTComponent$AccessibleAWTFocusHandler.h | 40 + .../java/awt/Component$AccessibleAWTComponent.h | 104 + libjava/java/awt/Component$BltBufferStrategy.h | 59 + libjava/java/awt/Component$FlipBufferStrategy.h | 63 + .../Component$HeavyweightInLightweightListener.h | 42 + libjava/java/awt/Component.h | 434 + libjava/java/awt/ComponentOrientation.h | 45 + libjava/java/awt/Composite.h | 35 + libjava/java/awt/CompositeContext.h | 35 + ...ssibleAWTContainer$AccessibleContainerHandler.h | 40 + .../java/awt/Container$AccessibleAWTContainer.h | 53 + libjava/java/awt/Container$GfxPaintAllVisitor.h | 35 + libjava/java/awt/Container$GfxPaintVisitor.h | 35 + libjava/java/awt/Container$GfxPrintAllVisitor.h | 35 + libjava/java/awt/Container$GfxPrintVisitor.h | 35 + libjava/java/awt/Container$GfxVisitor.h | 33 + libjava/java/awt/Container.h | 164 + .../java/awt/ContainerOrderFocusTraversalPolicy.h | 52 + libjava/java/awt/Cursor.h | 69 + libjava/java/awt/DefaultFocusTraversalPolicy.h | 35 + ...DefaultKeyboardFocusManager$EventDelayRequest.h | 48 + libjava/java/awt/DefaultKeyboardFocusManager.h | 60 + libjava/java/awt/Dialog$AccessibleAWTDialog.h | 46 + libjava/java/awt/Dialog.h | 76 + libjava/java/awt/Dimension.h | 45 + libjava/java/awt/DisplayMode.h | 43 + libjava/java/awt/Event.h | 119 + libjava/java/awt/EventDispatchThread.h | 37 + libjava/java/awt/EventQueue$Queue.h | 36 + libjava/java/awt/EventQueue.h | 69 + libjava/java/awt/FileDialog.h | 62 + libjava/java/awt/FlowLayout.h | 60 + libjava/java/awt/FocusTraversalPolicy.h | 38 + libjava/java/awt/Font.h | 153 + libjava/java/awt/FontFormatException.h | 32 + libjava/java/awt/FontMetrics.h | 83 + libjava/java/awt/Frame$AccessibleAWTFrame.h | 46 + libjava/java/awt/Frame.h | 117 + libjava/java/awt/GradientPaint.h | 62 + libjava/java/awt/Graphics.h | 97 + libjava/java/awt/Graphics2D.h | 103 + libjava/java/awt/GraphicsConfigTemplate.h | 40 + libjava/java/awt/GraphicsConfiguration.h | 61 + libjava/java/awt/GraphicsDevice.h | 58 + libjava/java/awt/GraphicsEnvironment.h | 55 + libjava/java/awt/GridBagConstraints.h | 69 + libjava/java/awt/GridBagLayout.h | 100 + libjava/java/awt/GridBagLayoutInfo.h | 43 + libjava/java/awt/GridLayout.h | 58 + libjava/java/awt/HeadlessException.h | 33 + libjava/java/awt/IllegalComponentStateException.h | 33 + libjava/java/awt/Image.h | 53 + libjava/java/awt/ImageCapabilities.h | 35 + libjava/java/awt/Insets.h | 41 + libjava/java/awt/ItemSelectable.h | 37 + .../java/awt/JobAttributes$DefaultSelectionType.h | 35 + libjava/java/awt/JobAttributes$DestinationType.h | 34 + libjava/java/awt/JobAttributes$DialogType.h | 35 + .../JobAttributes$MultipleDocumentHandlingType.h | 34 + libjava/java/awt/JobAttributes$SidesType.h | 35 + libjava/java/awt/JobAttributes.h | 87 + libjava/java/awt/KeyEventDispatcher.h | 33 + libjava/java/awt/KeyEventPostProcessor.h | 33 + libjava/java/awt/KeyboardFocusManager.h | 156 + libjava/java/awt/Label$AccessibleAWTLabel.h | 44 + libjava/java/awt/Label.h | 61 + libjava/java/awt/LayoutManager.h | 36 + libjava/java/awt/LayoutManager2.h | 41 + libjava/java/awt/LightweightDispatcher.h | 51 + ...List$AccessibleAWTList$AccessibleAWTListChild.h | 51 + libjava/java/awt/List$AccessibleAWTList.h | 66 + libjava/java/awt/List.h | 121 + libjava/java/awt/MediaTracker$MediaEntry.h | 42 + libjava/java/awt/MediaTracker.h | 62 + libjava/java/awt/Menu$AccessibleAWTMenu.h | 44 + libjava/java/awt/Menu.h | 70 + libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h | 44 + libjava/java/awt/MenuBar.h | 63 + .../awt/MenuComponent$AccessibleAWTMenuComponent.h | 103 + libjava/java/awt/MenuComponent.h | 102 + libjava/java/awt/MenuContainer.h | 34 + libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h | 56 + libjava/java/awt/MenuItem.h | 91 + libjava/java/awt/MenuShortcut.h | 45 + libjava/java/awt/MouseInfo.h | 39 + libjava/java/awt/PageAttributes$ColorType.h | 34 + libjava/java/awt/PageAttributes$MediaType.h | 179 + .../awt/PageAttributes$OrientationRequestedType.h | 34 + libjava/java/awt/PageAttributes$OriginType.h | 34 + libjava/java/awt/PageAttributes$PrintQualityType.h | 35 + libjava/java/awt/PageAttributes.h | 72 + libjava/java/awt/Paint.h | 42 + libjava/java/awt/PaintContext.h | 36 + libjava/java/awt/Panel$AccessibleAWTPanel.h | 44 + libjava/java/awt/Panel.h | 50 + libjava/java/awt/Point.h | 46 + libjava/java/awt/PointerInfo.h | 38 + libjava/java/awt/Polygon$1.h | 49 + libjava/java/awt/Polygon.h | 71 + .../java/awt/PopupMenu$AccessibleAWTPopupMenu.h | 44 + libjava/java/awt/PopupMenu.h | 48 + libjava/java/awt/PrintGraphics.h | 30 + libjava/java/awt/PrintJob.h | 37 + libjava/java/awt/Rectangle.h | 85 + libjava/java/awt/RenderingHints$Key.h | 39 + libjava/java/awt/RenderingHints$KeyImpl.h | 38 + libjava/java/awt/RenderingHints.h | 87 + libjava/java/awt/Robot$1.h | 35 + libjava/java/awt/Robot.h | 61 + .../java/awt/ScrollPane$AccessibleAWTScrollPane.h | 44 + libjava/java/awt/ScrollPane.h | 89 + libjava/java/awt/ScrollPaneAdjustable.h | 76 + .../java/awt/Scrollbar$AccessibleAWTScrollBar.h | 52 + libjava/java/awt/Scrollbar.h | 102 + libjava/java/awt/Shape.h | 46 + libjava/java/awt/Stroke.h | 30 + libjava/java/awt/SystemColor.h | 105 + libjava/java/awt/TextArea$AccessibleAWTTextArea.h | 44 + libjava/java/awt/TextArea.h | 80 + .../awt/TextComponent$AccessibleAWTTextComponent.h | 72 + libjava/java/awt/TextComponent.h | 88 + .../java/awt/TextField$AccessibleAWTTextField.h | 44 + libjava/java/awt/TextField.h | 88 + libjava/java/awt/TexturePaint.h | 50 + libjava/java/awt/Toolkit$1.h | 31 + libjava/java/awt/Toolkit$2.h | 31 + libjava/java/awt/Toolkit.h | 245 + libjava/java/awt/Transparency.h | 32 + libjava/java/awt/Window$AccessibleAWTWindow.h | 46 + libjava/java/awt/Window$WindowBltBufferStrategy.h | 32 + libjava/java/awt/Window$WindowFlipBufferStrategy.h | 32 + libjava/java/awt/Window.h | 146 + libjava/java/awt/color/CMMException.h | 35 + libjava/java/awt/color/ColorSpace.h | 88 + libjava/java/awt/color/ICC_ColorSpace.h | 71 + libjava/java/awt/color/ICC_Profile.h | 217 + libjava/java/awt/color/ICC_ProfileGray.h | 43 + libjava/java/awt/color/ICC_ProfileRGB.h | 52 + libjava/java/awt/color/ProfileDataException.h | 35 + libjava/java/awt/datatransfer/Clipboard.h | 54 + libjava/java/awt/datatransfer/ClipboardOwner.h | 34 + libjava/java/awt/datatransfer/DataFlavor.h | 100 + libjava/java/awt/datatransfer/FlavorEvent.h | 33 + libjava/java/awt/datatransfer/FlavorListener.h | 33 + libjava/java/awt/datatransfer/FlavorMap.h | 36 + libjava/java/awt/datatransfer/FlavorTable.h | 38 + libjava/java/awt/datatransfer/MimeType.h | 51 + .../java/awt/datatransfer/MimeTypeParseException.h | 36 + libjava/java/awt/datatransfer/StringSelection.h | 46 + libjava/java/awt/datatransfer/SystemFlavorMap.h | 56 + libjava/java/awt/datatransfer/Transferable.h | 37 + .../awt/datatransfer/UnsupportedFlavorException.h | 36 + libjava/java/awt/dnd/Autoscroll.h | 35 + libjava/java/awt/dnd/DnDConstants.h | 38 + libjava/java/awt/dnd/DnDEventMulticaster.h | 39 + libjava/java/awt/dnd/DragGestureEvent.h | 70 + libjava/java/awt/dnd/DragGestureListener.h | 33 + libjava/java/awt/dnd/DragGestureRecognizer.h | 69 + libjava/java/awt/dnd/DragSource.h | 90 + libjava/java/awt/dnd/DragSourceAdapter.h | 41 + libjava/java/awt/dnd/DragSourceContext.h | 86 + libjava/java/awt/dnd/DragSourceDragEvent.h | 45 + libjava/java/awt/dnd/DragSourceDropEvent.h | 42 + libjava/java/awt/dnd/DragSourceEvent.h | 45 + libjava/java/awt/dnd/DragSourceListener.h | 39 + libjava/java/awt/dnd/DragSourceMotionListener.h | 33 + .../awt/dnd/DropTarget$DropTargetAutoScroller.h | 59 + libjava/java/awt/dnd/DropTarget.h | 91 + libjava/java/awt/dnd/DropTargetAdapter.h | 40 + .../awt/dnd/DropTargetContext$TransferableProxy.h | 50 + libjava/java/awt/dnd/DropTargetContext.h | 72 + libjava/java/awt/dnd/DropTargetDragEvent.h | 56 + libjava/java/awt/dnd/DropTargetDropEvent.h | 60 + libjava/java/awt/dnd/DropTargetEvent.h | 39 + libjava/java/awt/dnd/DropTargetListener.h | 39 + .../java/awt/dnd/InvalidDnDOperationException.h | 36 + libjava/java/awt/dnd/MouseDragGestureRecognizer.h | 52 + libjava/java/awt/dnd/peer/DragSourceContextPeer.h | 42 + libjava/java/awt/dnd/peer/DropTargetContextPeer.h | 53 + libjava/java/awt/dnd/peer/DropTargetPeer.h | 37 + libjava/java/awt/event/AWTEventListener.h | 33 + libjava/java/awt/event/AWTEventListenerProxy.h | 39 + libjava/java/awt/event/ActionEvent.h | 53 + libjava/java/awt/event/ActionListener.h | 33 + libjava/java/awt/event/AdjustmentEvent.h | 56 + libjava/java/awt/event/AdjustmentListener.h | 33 + libjava/java/awt/event/ComponentAdapter.h | 37 + libjava/java/awt/event/ComponentEvent.h | 44 + libjava/java/awt/event/ComponentListener.h | 36 + libjava/java/awt/event/ContainerAdapter.h | 35 + libjava/java/awt/event/ContainerEvent.h | 47 + libjava/java/awt/event/ContainerListener.h | 34 + libjava/java/awt/event/FocusAdapter.h | 35 + libjava/java/awt/event/FocusEvent.h | 49 + libjava/java/awt/event/FocusListener.h | 34 + libjava/java/awt/event/HierarchyBoundsAdapter.h | 35 + libjava/java/awt/event/HierarchyBoundsListener.h | 34 + libjava/java/awt/event/HierarchyEvent.h | 56 + libjava/java/awt/event/HierarchyListener.h | 33 + libjava/java/awt/event/InputEvent.h | 72 + libjava/java/awt/event/InputMethodEvent.h | 66 + libjava/java/awt/event/InputMethodListener.h | 34 + libjava/java/awt/event/InvocationEvent.h | 56 + libjava/java/awt/event/ItemEvent.h | 49 + libjava/java/awt/event/ItemListener.h | 33 + libjava/java/awt/event/KeyAdapter.h | 36 + libjava/java/awt/event/KeyEvent.h | 255 + libjava/java/awt/event/KeyListener.h | 35 + libjava/java/awt/event/MouseAdapter.h | 38 + libjava/java/awt/event/MouseEvent.h | 69 + libjava/java/awt/event/MouseListener.h | 37 + libjava/java/awt/event/MouseMotionAdapter.h | 35 + libjava/java/awt/event/MouseMotionListener.h | 34 + libjava/java/awt/event/MouseWheelEvent.h | 48 + libjava/java/awt/event/MouseWheelListener.h | 33 + libjava/java/awt/event/PaintEvent.h | 47 + libjava/java/awt/event/TextEvent.h | 39 + libjava/java/awt/event/TextListener.h | 33 + libjava/java/awt/event/WindowAdapter.h | 43 + libjava/java/awt/event/WindowEvent.h | 61 + libjava/java/awt/event/WindowFocusListener.h | 34 + libjava/java/awt/event/WindowListener.h | 39 + libjava/java/awt/event/WindowStateListener.h | 33 + libjava/java/awt/font/FontRenderContext.h | 49 + libjava/java/awt/font/GlyphJustificationInfo.h | 45 + libjava/java/awt/font/GlyphMetrics.h | 61 + libjava/java/awt/font/GlyphVector.h | 78 + libjava/java/awt/font/GraphicAttribute.h | 54 + libjava/java/awt/font/ImageGraphicAttribute.h | 52 + libjava/java/awt/font/LineBreakMeasurer.h | 55 + libjava/java/awt/font/LineMetrics.h | 45 + libjava/java/awt/font/MultipleMaster.h | 40 + libjava/java/awt/font/NumericShaper.h | 75 + libjava/java/awt/font/OpenType.h | 91 + libjava/java/awt/font/ShapeGraphicAttribute.h | 53 + libjava/java/awt/font/TextAttribute.h | 88 + libjava/java/awt/font/TextHitInfo.h | 50 + libjava/java/awt/font/TextLayout$CaretPolicy.h | 35 + libjava/java/awt/font/TextLayout$Run.h | 43 + libjava/java/awt/font/TextLayout.h | 140 + libjava/java/awt/font/TextMeasurer.h | 52 + libjava/java/awt/font/TransformAttribute.h | 42 + libjava/java/awt/geom/AffineTransform.h | 111 + libjava/java/awt/geom/Arc2D$ArcIterator.h | 55 + libjava/java/awt/geom/Arc2D$Double.h | 55 + libjava/java/awt/geom/Arc2D$Float.h | 55 + libjava/java/awt/geom/Arc2D.h | 72 + .../awt/geom/Area$AreaIterator$IteratorSegment.h | 39 + libjava/java/awt/geom/Area$AreaIterator.h | 48 + libjava/java/awt/geom/Area$CubicSegment.h | 60 + libjava/java/awt/geom/Area$Intersection.h | 42 + libjava/java/awt/geom/Area$LineSegment.h | 58 + libjava/java/awt/geom/Area$QuadSegment.h | 59 + libjava/java/awt/geom/Area$Segment.h | 76 + libjava/java/awt/geom/Area.h | 96 + libjava/java/awt/geom/CubicCurve2D$1.h | 49 + libjava/java/awt/geom/CubicCurve2D$Double.h | 57 + libjava/java/awt/geom/CubicCurve2D$Float.h | 58 + libjava/java/awt/geom/CubicCurve2D.h | 86 + libjava/java/awt/geom/Dimension2D.h | 38 + libjava/java/awt/geom/Ellipse2D$Double.h | 45 + libjava/java/awt/geom/Ellipse2D$Float.h | 46 + libjava/java/awt/geom/Ellipse2D.h | 39 + libjava/java/awt/geom/FlatteningPathIterator.h | 59 + .../awt/geom/GeneralPath$GeneralPathIterator.h | 50 + libjava/java/awt/geom/GeneralPath.h | 88 + libjava/java/awt/geom/IllegalPathStateException.h | 36 + libjava/java/awt/geom/Line2D$1.h | 49 + libjava/java/awt/geom/Line2D$Double.h | 48 + libjava/java/awt/geom/Line2D$Float.h | 49 + libjava/java/awt/geom/Line2D.h | 80 + .../awt/geom/NoninvertibleTransformException.h | 35 + libjava/java/awt/geom/PathIterator.h | 45 + libjava/java/awt/geom/Point2D$Double.h | 39 + libjava/java/awt/geom/Point2D$Float.h | 40 + libjava/java/awt/geom/Point2D.h | 46 + libjava/java/awt/geom/QuadCurve2D$1.h | 49 + libjava/java/awt/geom/QuadCurve2D$Double.h | 52 + libjava/java/awt/geom/QuadCurve2D$Float.h | 53 + libjava/java/awt/geom/QuadCurve2D.h | 83 + libjava/java/awt/geom/Rectangle2D$1.h | 53 + libjava/java/awt/geom/Rectangle2D$Double.h | 50 + libjava/java/awt/geom/Rectangle2D$Float.h | 54 + libjava/java/awt/geom/Rectangle2D.h | 63 + libjava/java/awt/geom/RectangularShape.h | 69 + libjava/java/awt/geom/RoundRectangle2D$1.h | 58 + libjava/java/awt/geom/RoundRectangle2D$Double.h | 49 + libjava/java/awt/geom/RoundRectangle2D$Float.h | 50 + libjava/java/awt/geom/RoundRectangle2D.h | 45 + libjava/java/awt/im/InputContext.h | 59 + libjava/java/awt/im/InputMethodHighlight.h | 50 + libjava/java/awt/im/InputMethodRequests.h | 50 + libjava/java/awt/im/InputSubset.h | 41 + libjava/java/awt/im/spi/InputMethod.h | 55 + libjava/java/awt/im/spi/InputMethodContext.h | 66 + libjava/java/awt/im/spi/InputMethodDescriptor.h | 43 + libjava/java/awt/image/AffineTransformOp.h | 68 + libjava/java/awt/image/AreaAveragingScaleFilter.h | 42 + libjava/java/awt/image/BandCombineOp.h | 52 + libjava/java/awt/image/BandedSampleModel.h | 65 + libjava/java/awt/image/BufferStrategy.h | 39 + libjava/java/awt/image/BufferedImage$1.h | 44 + libjava/java/awt/image/BufferedImage.h | 124 + libjava/java/awt/image/BufferedImageFilter.h | 42 + libjava/java/awt/image/BufferedImageOp.h | 44 + libjava/java/awt/image/ByteLookupTable.h | 41 + libjava/java/awt/image/ColorConvertOp.h | 70 + libjava/java/awt/image/ColorModel$SRGBColorModel.h | 39 + libjava/java/awt/image/ColorModel.h | 108 + libjava/java/awt/image/ComponentColorModel.h | 74 + libjava/java/awt/image/ComponentSampleModel.h | 70 + libjava/java/awt/image/ConvolveOp.h | 64 + libjava/java/awt/image/CropImageFilter.h | 45 + libjava/java/awt/image/DataBuffer.h | 70 + libjava/java/awt/image/DataBufferByte.h | 50 + libjava/java/awt/image/DataBufferDouble.h | 58 + libjava/java/awt/image/DataBufferFloat.h | 58 + libjava/java/awt/image/DataBufferInt.h | 50 + libjava/java/awt/image/DataBufferShort.h | 50 + libjava/java/awt/image/DataBufferUShort.h | 50 + libjava/java/awt/image/DirectColorModel.h | 77 + libjava/java/awt/image/FilteredImageSource.h | 45 + libjava/java/awt/image/ImageConsumer.h | 50 + libjava/java/awt/image/ImageFilter.h | 50 + libjava/java/awt/image/ImageObserver.h | 41 + libjava/java/awt/image/ImageProducer.h | 37 + libjava/java/awt/image/ImagingOpException.h | 35 + libjava/java/awt/image/IndexColorModel.h | 72 + libjava/java/awt/image/Kernel.h | 45 + libjava/java/awt/image/LookupOp.h | 56 + libjava/java/awt/image/LookupTable.h | 42 + libjava/java/awt/image/MemoryImageSource.h | 69 + .../java/awt/image/MultiPixelPackedSampleModel.h | 68 + libjava/java/awt/image/PackedColorModel.h | 59 + libjava/java/awt/image/PixelGrabber$1.h | 38 + libjava/java/awt/image/PixelGrabber.h | 82 + .../java/awt/image/PixelInterleavedSampleModel.h | 37 + libjava/java/awt/image/RGBImageFilter.h | 48 + libjava/java/awt/image/Raster.h | 104 + libjava/java/awt/image/RasterFormatException.h | 35 + libjava/java/awt/image/RasterOp.h | 44 + libjava/java/awt/image/RenderedImage.h | 59 + libjava/java/awt/image/ReplicateScaleFilter.h | 50 + libjava/java/awt/image/RescaleOp.h | 64 + libjava/java/awt/image/SampleModel.h | 80 + libjava/java/awt/image/ShortLookupTable.h | 41 + .../java/awt/image/SinglePixelPackedSampleModel.h | 65 + libjava/java/awt/image/TileObserver.h | 33 + libjava/java/awt/image/VolatileImage.h | 55 + libjava/java/awt/image/WritableRaster.h | 63 + libjava/java/awt/image/WritableRenderedImage.h | 69 + .../renderable/ContextualRenderedImageFactory.h | 52 + libjava/java/awt/image/renderable/ParameterBlock.h | 87 + libjava/java/awt/image/renderable/RenderContext.h | 60 + .../java/awt/image/renderable/RenderableImage.h | 51 + .../java/awt/image/renderable/RenderableImageOp.h | 59 + .../awt/image/renderable/RenderableImageProducer.h | 50 + .../awt/image/renderable/RenderedImageFactory.h | 38 + libjava/java/awt/peer/ButtonPeer.h | 110 + libjava/java/awt/peer/CanvasPeer.h | 109 + libjava/java/awt/peer/CheckboxMenuItemPeer.h | 39 + libjava/java/awt/peer/CheckboxPeer.h | 113 + libjava/java/awt/peer/ChoicePeer.h | 114 + libjava/java/awt/peer/ComponentPeer.h | 109 + libjava/java/awt/peer/ContainerPeer.h | 119 + libjava/java/awt/peer/DialogPeer.h | 126 + libjava/java/awt/peer/FileDialogPeer.h | 129 + libjava/java/awt/peer/FontPeer.h | 31 + libjava/java/awt/peer/FramePeer.h | 133 + libjava/java/awt/peer/LabelPeer.h | 111 + libjava/java/awt/peer/LightweightPeer.h | 109 + libjava/java/awt/peer/ListPeer.h | 126 + libjava/java/awt/peer/MenuBarPeer.h | 38 + libjava/java/awt/peer/MenuComponentPeer.h | 34 + libjava/java/awt/peer/MenuItemPeer.h | 38 + libjava/java/awt/peer/MenuPeer.h | 42 + libjava/java/awt/peer/MouseInfoPeer.h | 35 + libjava/java/awt/peer/PanelPeer.h | 120 + libjava/java/awt/peer/PopupMenuPeer.h | 46 + libjava/java/awt/peer/RobotPeer.h | 42 + libjava/java/awt/peer/ScrollPanePeer.h | 127 + libjava/java/awt/peer/ScrollbarPeer.h | 112 + libjava/java/awt/peer/TextAreaPeer.h | 133 + libjava/java/awt/peer/TextComponentPeer.h | 125 + libjava/java/awt/peer/TextFieldPeer.h | 131 + libjava/java/awt/peer/WindowPeer.h | 124 + libjava/java/awt/print/Book.h | 44 + libjava/java/awt/print/NoPrinterJob.h | 51 + libjava/java/awt/print/PageFormat.h | 54 + libjava/java/awt/print/Pageable.h | 37 + libjava/java/awt/print/Paper.h | 49 + libjava/java/awt/print/Printable.h | 36 + libjava/java/awt/print/PrinterAbortException.h | 36 + libjava/java/awt/print/PrinterException.h | 36 + libjava/java/awt/print/PrinterGraphics.h | 33 + libjava/java/awt/print/PrinterIOException.h | 38 + libjava/java/awt/print/PrinterJob.h | 74 + libjava/java/beans/AppletInitializer.h | 38 + libjava/java/beans/BeanDescriptor.h | 36 + libjava/java/beans/BeanInfo.h | 50 + libjava/java/beans/Beans.h | 47 + libjava/java/beans/Customizer.h | 32 + libjava/java/beans/DefaultPersistenceDelegate.h | 41 + libjava/java/beans/DesignMode.h | 31 + libjava/java/beans/Encoder$1.h | 34 + libjava/java/beans/Encoder.h | 57 + libjava/java/beans/EventHandler.h | 54 + libjava/java/beans/EventSetDescriptor.h | 60 + libjava/java/beans/ExceptionListener.h | 29 + libjava/java/beans/ExplicitInfo.h | 60 + libjava/java/beans/Expression.h | 39 + libjava/java/beans/FeatureDescriptor.h | 53 + libjava/java/beans/IndexedPropertyChangeEvent.h | 34 + libjava/java/beans/IndexedPropertyDescriptor.h | 42 + libjava/java/beans/IntrospectionException.h | 32 + libjava/java/beans/Introspector.h | 64 + libjava/java/beans/MethodDescriptor.h | 39 + libjava/java/beans/ParameterDescriptor.h | 29 + libjava/java/beans/PersistenceDelegate.h | 39 + libjava/java/beans/PropertyChangeEvent.h | 45 + libjava/java/beans/PropertyChangeListener.h | 30 + libjava/java/beans/PropertyChangeListenerProxy.h | 36 + libjava/java/beans/PropertyChangeSupport.h | 56 + libjava/java/beans/PropertyDescriptor.h | 64 + libjava/java/beans/PropertyEditor.h | 49 + libjava/java/beans/PropertyEditorManager.h | 40 + libjava/java/beans/PropertyEditorSupport.h | 60 + libjava/java/beans/PropertyVetoException.h | 35 + libjava/java/beans/SimpleBeanInfo.h | 49 + libjava/java/beans/Statement.h | 52 + libjava/java/beans/VetoableChangeListener.h | 30 + libjava/java/beans/VetoableChangeListenerProxy.h | 36 + libjava/java/beans/VetoableChangeSupport.h | 53 + libjava/java/beans/Visibility.h | 32 + libjava/java/beans/XMLDecoder.h | 47 + libjava/java/beans/XMLEncoder.h | 58 + libjava/java/beans/beancontext/BeanContext.h | 72 + libjava/java/beans/beancontext/BeanContextChild.h | 40 + .../beancontext/BeanContextChildComponentProxy.h | 36 + .../beans/beancontext/BeanContextChildSupport.h | 67 + .../beans/beancontext/BeanContextContainerProxy.h | 36 + libjava/java/beans/beancontext/BeanContextEvent.h | 43 + .../beans/beancontext/BeanContextMembershipEvent.h | 45 + .../beancontext/BeanContextMembershipListener.h | 34 + libjava/java/beans/beancontext/BeanContextProxy.h | 33 + .../beancontext/BeanContextServiceAvailableEvent.h | 41 + .../beans/beancontext/BeanContextServiceProvider.h | 35 + .../BeanContextServiceProviderBeanInfo.h | 51 + .../beancontext/BeanContextServiceRevokedEvent.h | 44 + .../BeanContextServiceRevokedListener.h | 33 + .../java/beans/beancontext/BeanContextServices.h | 88 + .../beancontext/BeanContextServicesListener.h | 35 + .../BeanContextServicesSupport$BCSSChild.h | 38 + ...ntextServicesSupport$BCSSProxyServiceProvider.h | 46 + ...eanContextServicesSupport$BCSSServiceProvider.h | 46 + .../BeanContextServicesSupport$Request.h | 37 + .../BeanContextServicesSupport$ServiceLease.h | 37 + .../BeanContextServicesSupport$ServiceRequest.h | 38 + .../beans/beancontext/BeanContextServicesSupport.h | 90 + .../beancontext/BeanContextSupport$BCSChild.h | 44 + .../beancontext/BeanContextSupport$BCSIterator.h | 39 + .../java/beans/beancontext/BeanContextSupport.h | 136 + libjava/java/io/BufferedInputStream.h | 43 + libjava/java/io/BufferedOutputStream.h | 31 + libjava/java/io/BufferedReader.h | 49 + libjava/java/io/BufferedWriter.h | 36 + libjava/java/io/ByteArrayInputStream.h | 35 + libjava/java/io/ByteArrayOutputStream.h | 41 + libjava/java/io/CharArrayReader.h | 36 + libjava/java/io/CharArrayWriter.h | 50 + libjava/java/io/CharConversionException.h | 23 + libjava/java/io/Closeable.h | 19 + libjava/java/io/DataInput.h | 35 + libjava/java/io/DataInputStream.h | 51 + libjava/java/io/DataOutput.h | 34 + libjava/java/io/DataOutputStream.h | 44 + libjava/java/io/DeleteFileHelper$1.h | 21 + libjava/java/io/DeleteFileHelper.h | 28 + libjava/java/io/EOFException.h | 23 + libjava/java/io/Externalizable.h | 20 + libjava/java/io/File.h | 150 + libjava/java/io/FileDescriptor.h | 43 + .../{classpath => }/java/io/FileDescriptor.java | 0 libjava/java/io/FileFilter.h | 19 + libjava/java/io/FileInputStream.h | 67 + .../{classpath => }/java/io/FileInputStream.java | 0 libjava/java/io/FileNotFoundException.h | 23 + libjava/java/io/FileOutputStream.h | 66 + .../{classpath => }/java/io/FileOutputStream.java | 0 libjava/java/io/FilePermission.h | 43 + libjava/java/io/FileReader.h | 21 + libjava/java/io/FileWriter.h | 23 + libjava/java/io/FilenameFilter.h | 19 + libjava/java/io/FilterInputStream.h | 34 + libjava/java/io/FilterOutputStream.h | 29 + libjava/java/io/FilterReader.h | 33 + libjava/java/io/FilterWriter.h | 30 + libjava/java/io/Flushable.h | 19 + libjava/java/io/IOException.h | 23 + libjava/java/io/InputStream.h | 30 + libjava/java/io/InputStreamReader.h | 65 + libjava/java/io/InterruptedIOException.h | 26 + libjava/java/io/InvalidClassException.h | 25 + libjava/java/io/InvalidObjectException.h | 22 + libjava/java/io/LineNumberInputStream.h | 34 + libjava/java/io/LineNumberReader.h | 41 + libjava/java/io/NotActiveException.h | 23 + libjava/java/io/NotSerializableException.h | 23 + libjava/java/io/ObjectInput.h | 42 + libjava/java/io/ObjectInputStream$1.h | 26 + libjava/java/io/ObjectInputStream$2.h | 42 + libjava/java/io/ObjectInputStream$GetField.h | 30 + .../io/ObjectInputStream$ValidatorAndPriority.h | 25 + libjava/java/io/ObjectInputStream.h | 103 + libjava/java/io/ObjectInputStream.java | 1979 --- libjava/java/io/ObjectInputValidation.h | 19 + libjava/java/io/ObjectOutput.h | 37 + libjava/java/io/ObjectOutputStream$1.h | 41 + libjava/java/io/ObjectOutputStream$PutField.h | 29 + libjava/java/io/ObjectOutputStream.h | 122 + libjava/java/io/ObjectStreamClass$1.h | 24 + libjava/java/io/ObjectStreamClass$2.h | 26 + .../io/ObjectStreamClass$InterfaceComparator.h | 23 + .../java/io/ObjectStreamClass$MemberComparator.h | 23 + libjava/java/io/ObjectStreamClass.h | 113 + libjava/java/io/ObjectStreamConstants.h | 47 + libjava/java/io/ObjectStreamException.h | 23 + libjava/java/io/ObjectStreamField$1.h | 26 + libjava/java/io/ObjectStreamField.h | 67 + libjava/java/io/OptionalDataException.h | 24 + libjava/java/io/OutputStream.h | 26 + libjava/java/io/OutputStreamWriter.h | 65 + libjava/java/io/PipedInputStream.h | 43 + libjava/java/io/PipedOutputStream.h | 31 + libjava/java/io/PipedReader.h | 39 + libjava/java/io/PipedWriter.h | 32 + libjava/java/io/PrintStream.h | 89 + libjava/java/io/PrintStream.java | 52 +- libjava/java/io/PrintWriter.h | 80 + libjava/java/io/PushbackInputStream.h | 38 + libjava/java/io/PushbackReader.h | 38 + libjava/java/io/RandomAccessFile.h | 93 + libjava/java/io/RandomAccessFile.java | 1036 ++ libjava/java/io/Reader.h | 46 + libjava/java/io/SequenceInputStream.h | 32 + libjava/java/io/Serializable.h | 18 + libjava/java/io/SerializablePermission.h | 27 + libjava/java/io/StreamCorruptedException.h | 23 + libjava/java/io/StreamTokenizer.h | 72 + libjava/java/io/StringBufferInputStream.h | 31 + libjava/java/io/StringReader.h | 35 + libjava/java/io/StringWriter.h | 43 + libjava/java/io/SyncFailedException.h | 22 + libjava/java/io/UTFDataFormatException.h | 23 + libjava/java/io/UnsupportedEncodingException.h | 23 + libjava/java/io/VMObjectInputStream.h | 21 + libjava/java/io/VMObjectInputStream.java | 56 + libjava/java/io/VMObjectStreamClass.h | 30 + libjava/java/io/WriteAbortedException.h | 25 + libjava/java/io/Writer.h | 39 + libjava/java/io/natObjectInputStream.cc | 18 +- libjava/java/lang/AbstractMethodError.h | 23 + libjava/java/lang/Appendable.h | 21 + libjava/java/lang/ArithmeticException.h | 23 + libjava/java/lang/ArrayIndexOutOfBoundsException.h | 24 + libjava/java/lang/ArrayStoreException.h | 23 + libjava/java/lang/AssertionError.h | 29 + libjava/java/lang/Boolean.h | 40 + libjava/java/lang/Byte.h | 51 + libjava/java/lang/CharSequence.h | 22 + libjava/java/lang/Character$Subset.h | 26 + libjava/java/lang/Character$UnicodeBlock.h | 161 + libjava/java/lang/Character.h | 175 + libjava/java/lang/Class.h | 77 +- libjava/java/lang/Class.java | 438 +- libjava/java/lang/ClassCastException.h | 23 + libjava/java/lang/ClassCircularityError.h | 23 + libjava/java/lang/ClassFormatError.h | 23 + libjava/java/lang/ClassLoader$AnnotationsKey.h | 31 + libjava/java/lang/ClassLoader.h | 108 + libjava/java/lang/ClassLoader.java | 132 +- libjava/java/lang/ClassNotFoundException.h | 27 + libjava/java/lang/CloneNotSupportedException.h | 23 + libjava/java/lang/Cloneable.h | 18 + libjava/java/lang/Comparable.h | 19 + libjava/java/lang/Compiler.h | 24 + libjava/java/lang/Deprecated.h | 19 + libjava/java/lang/Double.h | 57 + libjava/java/lang/EcosProcess.h | 27 + libjava/java/lang/EcosProcess.java | 8 +- libjava/java/lang/Enum.h | 38 + .../java/lang/EnumConstantNotPresentException.h | 26 + libjava/java/lang/Error.h | 25 + libjava/java/lang/Exception.h | 25 + libjava/java/lang/ExceptionInInitializerError.h | 28 + libjava/java/lang/Float.h | 58 + libjava/java/lang/IllegalAccessError.h | 23 + libjava/java/lang/IllegalAccessException.h | 23 + libjava/java/lang/IllegalArgumentException.h | 25 + libjava/java/lang/IllegalMonitorStateException.h | 23 + libjava/java/lang/IllegalStateException.h | 25 + libjava/java/lang/IllegalThreadStateException.h | 23 + libjava/java/lang/IncompatibleClassChangeError.h | 23 + libjava/java/lang/IndexOutOfBoundsException.h | 23 + libjava/java/lang/InheritableThreadLocal.h | 24 + libjava/java/lang/InstantiationError.h | 23 + libjava/java/lang/InstantiationException.h | 23 + libjava/java/lang/Integer.h | 74 + libjava/java/lang/InternalError.h | 23 + libjava/java/lang/InterruptedException.h | 23 + libjava/java/lang/Iterable.h | 19 + libjava/java/lang/LinkageError.h | 23 + libjava/java/lang/Long.h | 69 + libjava/java/lang/Math.h | 68 + libjava/java/lang/NegativeArraySizeException.h | 23 + libjava/java/lang/NoClassDefFoundError.h | 23 + libjava/java/lang/NoSuchFieldError.h | 23 + libjava/java/lang/NoSuchFieldException.h | 23 + libjava/java/lang/NoSuchMethodError.h | 23 + libjava/java/lang/NoSuchMethodException.h | 23 + libjava/java/lang/NullPointerException.h | 23 + libjava/java/lang/Number.h | 32 + libjava/java/lang/NumberFormatException.h | 23 + libjava/java/lang/OutOfMemoryError.h | 23 + libjava/java/lang/Override.h | 19 + libjava/java/lang/Package.h | 62 + libjava/java/lang/Package.java | 415 - libjava/java/lang/PosixProcess$EOFInputStream.h | 24 + libjava/java/lang/PosixProcess$ProcessManager.h | 39 + libjava/java/lang/PosixProcess.h | 62 + libjava/java/lang/PosixProcess.java | 47 +- libjava/java/lang/Process.h | 25 + libjava/java/lang/ProcessBuilder.h | 37 + libjava/java/lang/ProcessBuilder.java | 118 + libjava/java/lang/Readable.h | 29 + libjava/java/lang/Runnable.h | 19 + libjava/java/lang/Runtime.h | 69 + libjava/java/lang/RuntimeException.h | 25 + libjava/java/lang/RuntimePermission.h | 23 + libjava/java/lang/SecurityContext.h | 23 + libjava/java/lang/SecurityException.h | 25 + libjava/java/lang/SecurityManager$1.h | 26 + libjava/java/lang/SecurityManager.h | 84 + libjava/java/lang/SecurityManager.java | 1057 -- libjava/java/lang/Short.h | 54 + libjava/java/lang/StackOverflowError.h | 23 + libjava/java/lang/StackTraceElement.h | 39 + libjava/java/lang/StrictMath.h | 203 + .../java/lang/String$CaseInsensitiveComparator.h | 24 + libjava/java/lang/String.h | 138 + libjava/java/lang/StringBuffer.h | 85 + libjava/java/lang/StringBuilder.h | 83 + libjava/java/lang/StringBuilder.java | 3 +- .../java/lang/StringIndexOutOfBoundsException.h | 24 + libjava/java/lang/SuppressWarnings.h | 22 + libjava/java/lang/System$EnvironmentCollection.h | 29 + libjava/java/lang/System$EnvironmentMap.h | 34 + libjava/java/lang/System$EnvironmentSet.h | 21 + libjava/java/lang/System.h | 56 + libjava/java/lang/System.java | 468 + libjava/java/lang/Thread$State.h | 32 + .../java/lang/Thread$UncaughtExceptionHandler.h | 19 + libjava/java/lang/Thread.h | 161 + libjava/java/lang/Thread.java | 264 +- libjava/java/lang/ThreadDeath.h | 22 + libjava/java/lang/ThreadGroup.h | 69 + libjava/java/lang/ThreadLocal.h | 52 + libjava/java/lang/ThreadLocal.java | 179 + libjava/java/lang/Throwable$StaticData.h | 21 + libjava/java/lang/Throwable.h | 46 + libjava/java/lang/TypeNotPresentException.h | 24 + libjava/java/lang/UnknownError.h | 23 + libjava/java/lang/UnsatisfiedLinkError.h | 23 + libjava/java/lang/UnsupportedClassVersionError.h | 23 + libjava/java/lang/UnsupportedOperationException.h | 25 + libjava/java/lang/VMClassLoader.h | 74 + libjava/java/lang/VMCompiler.h | 64 + libjava/java/lang/VMCompiler.java | 10 +- libjava/java/lang/VMDouble.h | 25 + libjava/java/lang/VMFloat.h | 23 + libjava/java/lang/VMSecurityManager.java | 68 - libjava/java/lang/VMThrowable.h | 36 + libjava/java/lang/VerifyError.h | 23 + libjava/java/lang/VirtualMachineError.h | 23 + libjava/java/lang/Void.h | 20 + libjava/java/lang/Win32Process.h | 37 + libjava/java/lang/Win32Process.java | 8 +- libjava/java/lang/annotation/Annotation.h | 22 + .../java/lang/annotation/AnnotationFormatError.h | 24 + .../annotation/AnnotationTypeMismatchException.h | 26 + libjava/java/lang/annotation/Documented.h | 19 + libjava/java/lang/annotation/ElementType.h | 35 + .../annotation/IncompleteAnnotationException.h | 25 + libjava/java/lang/annotation/Inherited.h | 19 + libjava/java/lang/annotation/Retention.h | 20 + libjava/java/lang/annotation/RetentionPolicy.h | 30 + libjava/java/lang/annotation/Target.h | 22 + libjava/java/lang/instrument/ClassDefinition.h | 27 + .../java/lang/instrument/ClassFileTransformer.h | 31 + .../lang/instrument/IllegalClassFormatException.h | 23 + libjava/java/lang/instrument/Instrumentation.h | 27 + .../lang/instrument/UnmodifiableClassException.h | 23 + libjava/java/lang/management/ClassLoadingMXBean.h | 23 + libjava/java/lang/management/CompilationMXBean.h | 21 + .../java/lang/management/GarbageCollectorMXBean.h | 25 + libjava/java/lang/management/ManagementFactory.h | 57 + .../java/lang/management/ManagementPermission.h | 23 + libjava/java/lang/management/MemoryMXBean.h | 24 + libjava/java/lang/management/MemoryManagerMXBean.h | 23 + .../java/lang/management/MemoryNotificationInfo.h | 43 + libjava/java/lang/management/MemoryPoolMXBean.h | 38 + libjava/java/lang/management/MemoryType.h | 28 + libjava/java/lang/management/MemoryUsage.h | 44 + .../java/lang/management/OperatingSystemMXBean.h | 22 + libjava/java/lang/management/RuntimeMXBean.h | 34 + libjava/java/lang/management/ThreadInfo.h | 70 + libjava/java/lang/management/ThreadMXBean.h | 42 + libjava/java/lang/management/VMManagementFactory.h | 25 + .../java/lang/management/VMManagementFactory.java | 15 +- .../java/lang/management/natVMManagementFactory.cc | 44 + libjava/java/lang/natClass.cc | 766 +- libjava/java/lang/natClassLoader.cc | 66 +- libjava/java/lang/natEcosProcess.cc | 6 +- libjava/java/lang/natPosixProcess.cc | 20 +- libjava/java/lang/natRuntime.cc | 8 +- libjava/java/lang/natThread.cc | 100 +- libjava/java/lang/natThreadLocal.cc | 169 + libjava/java/lang/natVMClassLoader.cc | 3 + libjava/java/lang/natVMSecurityManager.cc | 29 - libjava/java/lang/natWin32Process.cc | 16 +- libjava/java/lang/ref/PhantomReference.h | 20 + libjava/java/lang/ref/Reference.h | 45 + libjava/java/lang/ref/Reference.java | 20 +- libjava/java/lang/ref/ReferenceQueue.h | 31 + libjava/java/lang/ref/SoftReference.h | 21 + libjava/java/lang/ref/WeakReference.h | 20 + libjava/java/lang/ref/natReference.cc | 9 +- libjava/java/lang/reflect/AccessibleObject.h | 36 + libjava/java/lang/reflect/AnnotatedElement.h | 24 + libjava/java/lang/reflect/Array.h | 46 + libjava/java/lang/reflect/Constructor.h | 65 + libjava/java/lang/reflect/Constructor.java | 50 +- libjava/java/lang/reflect/Field.h | 96 + libjava/java/lang/reflect/Field.java | 32 +- libjava/java/lang/reflect/GenericArrayType.h | 19 + libjava/java/lang/reflect/GenericDeclaration.h | 21 + .../lang/reflect/GenericSignatureFormatError.h | 22 + libjava/java/lang/reflect/InvocationHandler.h | 21 + .../java/lang/reflect/InvocationTargetException.h | 28 + .../reflect/MalformedParameterizedTypeException.h | 22 + libjava/java/lang/reflect/Member.h | 24 + libjava/java/lang/reflect/Method.h | 76 + libjava/java/lang/reflect/Method.java | 73 +- libjava/java/lang/reflect/Modifier.h | 58 + libjava/java/lang/reflect/ParameterizedType.h | 23 + libjava/java/lang/reflect/Proxy$ClassFactory.h | 78 + libjava/java/lang/reflect/Proxy$ProxyData.h | 37 + libjava/java/lang/reflect/Proxy$ProxySignature.h | 28 + libjava/java/lang/reflect/Proxy$ProxyType.h | 28 + libjava/java/lang/reflect/Proxy.h | 32 + libjava/java/lang/reflect/ReflectPermission.h | 23 + libjava/java/lang/reflect/Type.h | 18 + libjava/java/lang/reflect/TypeVariable.h | 23 + .../lang/reflect/UndeclaredThrowableException.h | 26 + libjava/java/lang/reflect/VMProxy.h | 28 + libjava/java/lang/reflect/VMProxy.java | 7 +- libjava/java/lang/reflect/WildcardType.h | 22 + libjava/java/lang/reflect/natConstructor.cc | 21 + libjava/java/lang/reflect/natField.cc | 14 + libjava/java/lang/reflect/natMethod.cc | 29 + libjava/java/lang/reflect/natVMProxy.cc | 394 + libjava/java/math/BigDecimal.h | 126 + libjava/java/math/BigInteger.h | 195 + libjava/java/math/MathContext.h | 46 + libjava/java/math/RoundingMode.h | 46 + libjava/java/net/Authenticator.h | 51 + libjava/java/net/BindException.h | 33 + libjava/java/net/ConnectException.h | 33 + libjava/java/net/ContentHandler.h | 34 + libjava/java/net/ContentHandlerFactory.h | 30 + libjava/java/net/DatagramPacket.h | 60 + libjava/java/net/DatagramSocket.h | 87 + .../{classpath => }/java/net/DatagramSocket.java | 0 libjava/java/net/DatagramSocketImpl.h | 60 + libjava/java/net/DatagramSocketImplFactory.h | 30 + libjava/java/net/FileNameMap.h | 29 + libjava/java/net/HttpURLConnection.h | 101 + libjava/java/net/Inet4Address.h | 52 + libjava/java/net/Inet6Address.h | 66 + libjava/java/net/InetAddress.h | 76 + libjava/java/net/InetSocketAddress.h | 49 + libjava/java/net/JarURLConnection.h | 56 + libjava/java/net/MalformedURLException.h | 33 + libjava/java/net/MimeTypeMapper.h | 39 + libjava/java/net/MulticastSocket.h | 50 + libjava/java/net/MulticastSocket.java | 519 + libjava/java/net/NetPermission.h | 33 + libjava/java/net/NetworkInterface.h | 50 + libjava/java/net/NetworkInterface.java | 299 + libjava/java/net/NoRouteToHostException.h | 33 + libjava/java/net/PasswordAuthentication.h | 37 + libjava/java/net/PortUnreachableException.h | 33 + libjava/java/net/ProtocolException.h | 33 + libjava/java/net/Proxy$Type.h | 40 + libjava/java/net/Proxy.h | 41 + libjava/java/net/ProxySelector.h | 38 + libjava/java/net/ResolverCache$Entry.h | 32 + libjava/java/net/ResolverCache.h | 51 + libjava/java/net/ServerSocket.h | 75 + libjava/java/net/Socket.h | 103 + libjava/{classpath => }/java/net/Socket.java | 0 libjava/java/net/SocketAddress.h | 32 + libjava/java/net/SocketException.h | 33 + libjava/java/net/SocketImpl.h | 63 + libjava/java/net/SocketImplFactory.h | 30 + libjava/java/net/SocketOptions.h | 44 + libjava/java/net/SocketPermission.h | 68 + libjava/java/net/SocketTimeoutException.h | 33 + libjava/java/net/URI.h | 134 + libjava/java/net/URISyntaxException.h | 39 + libjava/java/net/URL$1.h | 31 + libjava/java/net/URL.h | 89 + libjava/java/net/URLClassLoader$1.h | 45 + libjava/java/net/URLClassLoader$2.h | 35 + libjava/java/net/URLClassLoader$CoreResource.h | 46 + libjava/java/net/URLClassLoader$CoreURLLoader.h | 36 + libjava/java/net/URLClassLoader$FileResource.h | 38 + libjava/java/net/URLClassLoader$FileURLLoader.h | 35 + libjava/java/net/URLClassLoader$JarURLLoader.h | 40 + libjava/java/net/URLClassLoader$JarURLResource.h | 48 + libjava/java/net/URLClassLoader$RemoteResource.h | 40 + libjava/java/net/URLClassLoader$RemoteURLLoader.h | 36 + libjava/java/net/URLClassLoader$Resource.h | 48 + libjava/java/net/URLClassLoader$SoResource.h | 38 + libjava/java/net/URLClassLoader$SoURLLoader.h | 47 + libjava/java/net/URLClassLoader$URLLoader.h | 45 + libjava/java/net/URLClassLoader.h | 82 + libjava/java/net/URLClassLoader.java | 12 +- libjava/java/net/URLConnection.h | 117 + libjava/java/net/URLDecoder.h | 31 + libjava/java/net/URLEncoder.h | 35 + libjava/java/net/URLStreamHandler.h | 48 + libjava/java/net/URLStreamHandlerFactory.h | 30 + libjava/java/net/UnknownHostException.h | 33 + libjava/java/net/UnknownServiceException.h | 33 + libjava/java/net/VMInetAddress.h | 37 + libjava/java/net/VMNetworkInterface.h | 31 + libjava/java/net/VMURLConnection.h | 38 + libjava/java/net/VMURLConnection.java | 13 +- libjava/java/net/natURLClassLoader.cc | 22 - libjava/java/net/natVMURLConnection.cc | 56 + libjava/java/nio/Buffer.h | 64 + libjava/java/nio/BufferOverflowException.h | 32 + libjava/java/nio/BufferUnderflowException.h | 32 + libjava/java/nio/ByteBuffer.h | 105 + libjava/java/nio/ByteBufferHelper.h | 56 + libjava/java/nio/ByteBufferImpl.h | 87 + libjava/java/nio/ByteOrder.h | 35 + libjava/java/nio/CharBuffer.h | 77 + libjava/java/nio/CharBufferImpl.h | 53 + libjava/java/nio/CharViewBufferImpl.h | 55 + libjava/java/nio/DirectByteBufferImpl$ReadOnly.h | 41 + libjava/java/nio/DirectByteBufferImpl$ReadWrite.h | 40 + libjava/java/nio/DirectByteBufferImpl.h | 101 + libjava/java/nio/DoubleBuffer.h | 62 + libjava/java/nio/DoubleBufferImpl.h | 49 + libjava/java/nio/DoubleViewBufferImpl.h | 54 + libjava/java/nio/FloatBuffer.h | 62 + libjava/java/nio/FloatBufferImpl.h | 49 + libjava/java/nio/FloatViewBufferImpl.h | 54 + libjava/java/nio/IntBuffer.h | 62 + libjava/java/nio/IntBufferImpl.h | 49 + libjava/java/nio/IntViewBufferImpl.h | 54 + libjava/java/nio/InvalidMarkException.h | 32 + libjava/java/nio/LongBuffer.h | 62 + libjava/java/nio/LongBufferImpl.h | 49 + libjava/java/nio/LongViewBufferImpl.h | 54 + libjava/java/nio/MappedByteBuffer.h | 44 + libjava/java/nio/MappedByteBufferImpl.h | 98 + libjava/java/nio/ReadOnlyBufferException.h | 32 + libjava/java/nio/ShortBuffer.h | 62 + libjava/java/nio/ShortBufferImpl.h | 49 + libjava/java/nio/ShortViewBufferImpl.h | 54 + libjava/java/nio/VMDirectByteBuffer.h | 46 + .../java/nio/channels/AlreadyConnectedException.h | 35 + .../java/nio/channels/AsynchronousCloseException.h | 35 + libjava/java/nio/channels/ByteChannel.h | 36 + libjava/java/nio/channels/CancelledKeyException.h | 35 + libjava/java/nio/channels/Channel.h | 33 + libjava/java/nio/channels/Channels.h | 47 + .../java/nio/channels/ClosedByInterruptException.h | 35 + libjava/java/nio/channels/ClosedChannelException.h | 35 + .../java/nio/channels/ClosedSelectorException.h | 35 + .../java/nio/channels/ConnectionPendingException.h | 35 + libjava/java/nio/channels/DatagramChannel.h | 59 + libjava/java/nio/channels/FileChannel$MapMode.h | 40 + libjava/java/nio/channels/FileChannel.h | 64 + libjava/java/nio/channels/FileLock.h | 48 + .../nio/channels/FileLockInterruptionException.h | 35 + libjava/java/nio/channels/GatheringByteChannel.h | 39 + .../nio/channels/IllegalBlockingModeException.h | 35 + .../java/nio/channels/IllegalSelectorException.h | 35 + libjava/java/nio/channels/InterruptibleChannel.h | 33 + .../nio/channels/NoConnectionPendingException.h | 35 + .../nio/channels/NonReadableChannelException.h | 35 + .../nio/channels/NonWritableChannelException.h | 35 + libjava/java/nio/channels/NotYetBoundException.h | 35 + .../java/nio/channels/NotYetConnectedException.h | 35 + .../nio/channels/OverlappingFileLockException.h | 35 + libjava/java/nio/channels/Pipe$SinkChannel.h | 44 + libjava/java/nio/channels/Pipe$SourceChannel.h | 44 + libjava/java/nio/channels/Pipe.h | 38 + libjava/java/nio/channels/ReadableByteChannel.h | 35 + libjava/java/nio/channels/ScatteringByteChannel.h | 39 + libjava/java/nio/channels/SelectableChannel.h | 48 + libjava/java/nio/channels/SelectionKey.h | 55 + libjava/java/nio/channels/Selector.h | 47 + libjava/java/nio/channels/ServerSocketChannel.h | 46 + libjava/java/nio/channels/SocketChannel.h | 59 + .../java/nio/channels/UnresolvedAddressException.h | 35 + .../nio/channels/UnsupportedAddressTypeException.h | 35 + libjava/java/nio/channels/VMChannels.h | 52 + libjava/java/nio/channels/WritableByteChannel.h | 35 + .../channels/spi/AbstractInterruptibleChannel.h | 46 + .../nio/channels/spi/AbstractSelectableChannel.h | 64 + .../java/nio/channels/spi/AbstractSelectionKey.h | 41 + libjava/java/nio/channels/spi/AbstractSelector.h | 60 + libjava/java/nio/channels/spi/SelectorProvider.h | 50 + .../java/nio/charset/CharacterCodingException.h | 35 + libjava/java/nio/charset/Charset.h | 79 + libjava/java/nio/charset/CharsetDecoder.h | 81 + libjava/java/nio/charset/CharsetEncoder.h | 84 + libjava/java/nio/charset/CoderMalfunctionError.h | 35 + libjava/java/nio/charset/CoderResult$1.h | 36 + libjava/java/nio/charset/CoderResult$2.h | 36 + libjava/java/nio/charset/CoderResult$Cache.h | 39 + libjava/java/nio/charset/CoderResult.h | 61 + libjava/java/nio/charset/CodingErrorAction.h | 39 + .../java/nio/charset/IllegalCharsetNameException.h | 37 + libjava/java/nio/charset/MalformedInputException.h | 38 + .../nio/charset/UnmappableCharacterException.h | 38 + .../java/nio/charset/UnsupportedCharsetException.h | 38 + libjava/java/nio/charset/spi/CharsetProvider.h | 39 + libjava/java/rmi/AccessException.h | 33 + libjava/java/rmi/AlreadyBoundException.h | 33 + libjava/java/rmi/ConnectException.h | 33 + libjava/java/rmi/ConnectIOException.h | 33 + libjava/java/rmi/MarshalException.h | 33 + libjava/java/rmi/MarshalledObject.h | 41 + libjava/java/rmi/Naming.h | 50 + libjava/java/rmi/NoSuchObjectException.h | 32 + libjava/java/rmi/NotBoundException.h | 33 + libjava/java/rmi/RMISecurityException.h | 33 + libjava/java/rmi/RMISecurityManager.h | 29 + libjava/java/rmi/Remote.h | 28 + libjava/java/rmi/RemoteException.h | 37 + libjava/java/rmi/ServerError.h | 32 + libjava/java/rmi/ServerException.h | 33 + libjava/java/rmi/ServerRuntimeException.h | 32 + libjava/java/rmi/StubNotFoundException.h | 33 + libjava/java/rmi/UnexpectedException.h | 33 + libjava/java/rmi/UnknownHostException.h | 33 + libjava/java/rmi/UnmarshalException.h | 33 + libjava/java/rmi/activation/Activatable.h | 67 + .../java/rmi/activation/ActivateFailedException.h | 36 + libjava/java/rmi/activation/ActivationDesc.h | 55 + libjava/java/rmi/activation/ActivationException.h | 40 + libjava/java/rmi/activation/ActivationGroup.h | 63 + .../ActivationGroupDesc$CommandEnvironment.h | 46 + libjava/java/rmi/activation/ActivationGroupDesc.h | 54 + libjava/java/rmi/activation/ActivationGroupID.h | 46 + libjava/java/rmi/activation/ActivationGroup_Stub.h | 43 + libjava/java/rmi/activation/ActivationID.h | 55 + .../java/rmi/activation/ActivationInstantiator.h | 35 + libjava/java/rmi/activation/ActivationMonitor.h | 37 + libjava/java/rmi/activation/ActivationSystem.h | 48 + libjava/java/rmi/activation/Activator.h | 34 + .../java/rmi/activation/UnknownGroupException.h | 35 + .../java/rmi/activation/UnknownObjectException.h | 35 + libjava/java/rmi/dgc/DGC.h | 41 + libjava/java/rmi/dgc/Lease.h | 42 + libjava/java/rmi/dgc/VMID.h | 53 + libjava/java/rmi/registry/LocateRegistry.h | 45 + libjava/java/rmi/registry/Registry.h | 40 + libjava/java/rmi/registry/RegistryHandler.h | 34 + libjava/java/rmi/server/ExportException.h | 36 + libjava/java/rmi/server/LoaderHandler.h | 39 + libjava/java/rmi/server/LogStream.h | 49 + libjava/java/rmi/server/ObjID.h | 55 + libjava/java/rmi/server/Operation.h | 37 + libjava/java/rmi/server/RMIClassLoader.h | 51 + libjava/java/rmi/server/RMIClassLoaderSpi.h | 38 + libjava/java/rmi/server/RMIClientSocketFactory.h | 36 + libjava/java/rmi/server/RMIFailureHandler.h | 32 + libjava/java/rmi/server/RMIServerSocketFactory.h | 36 + libjava/java/rmi/server/RMISocketFactory.h | 50 + libjava/java/rmi/server/RemoteCall.h | 38 + libjava/java/rmi/server/RemoteObject.h | 54 + .../rmi/server/RemoteObjectInvocationHandler.h | 43 + libjava/java/rmi/server/RemoteRef.h | 49 + libjava/java/rmi/server/RemoteServer.h | 41 + libjava/java/rmi/server/RemoteStub.h | 38 + libjava/java/rmi/server/ServerCloneException.h | 39 + libjava/java/rmi/server/ServerNotActiveException.h | 36 + libjava/java/rmi/server/ServerRef.h | 52 + libjava/java/rmi/server/Skeleton.h | 38 + .../java/rmi/server/SkeletonMismatchException.h | 35 + .../java/rmi/server/SkeletonNotFoundException.h | 36 + libjava/java/rmi/server/SocketSecurityException.h | 36 + libjava/java/rmi/server/UID.h | 50 + libjava/java/rmi/server/UnicastRemoteObject.h | 55 + libjava/java/rmi/server/Unreferenced.h | 32 + libjava/java/security/AccessControlContext.h | 48 + libjava/java/security/AccessControlException.h | 36 + libjava/java/security/AccessController.h | 39 + .../java/security/AlgorithmParameterGenerator.h | 54 + .../java/security/AlgorithmParameterGeneratorSpi.h | 40 + libjava/java/security/AlgorithmParameters.h | 56 + libjava/java/security/AlgorithmParametersSpi.h | 44 + .../AllPermission$AllPermissionCollection.h | 39 + libjava/java/security/AllPermission.h | 40 + .../BasicPermission$BasicPermissionCollection.h | 40 + libjava/java/security/BasicPermission.h | 40 + libjava/java/security/Certificate.h | 37 + libjava/java/security/CodeSource.h | 52 + libjava/java/security/DigestException.h | 35 + libjava/java/security/DigestInputStream.h | 43 + libjava/java/security/DigestOutputStream.h | 43 + libjava/java/security/DomainCombiner.h | 32 + libjava/java/security/DummyKeyPairGenerator.h | 43 + libjava/java/security/DummyMessageDigest.h | 42 + libjava/java/security/DummySignature.h | 47 + libjava/java/security/GeneralSecurityException.h | 35 + libjava/java/security/Guard.h | 29 + libjava/java/security/GuardedObject.h | 37 + libjava/java/security/Identity.h | 61 + libjava/java/security/IdentityScope.h | 51 + libjava/java/security/IntersectingDomainCombiner.h | 36 + .../security/InvalidAlgorithmParameterException.h | 35 + libjava/java/security/InvalidKeyException.h | 35 + libjava/java/security/InvalidParameterException.h | 33 + libjava/java/security/Key.h | 34 + libjava/java/security/KeyException.h | 35 + libjava/java/security/KeyFactory.h | 54 + libjava/java/security/KeyFactorySpi.h | 42 + libjava/java/security/KeyManagementException.h | 35 + libjava/java/security/KeyPair.h | 38 + libjava/java/security/KeyPairGenerator.h | 55 + libjava/java/security/KeyPairGeneratorSpi.h | 41 + libjava/java/security/KeyStore.h | 67 + libjava/java/security/KeyStoreException.h | 35 + libjava/java/security/KeyStoreSpi.h | 52 + libjava/java/security/MessageDigest.h | 63 + libjava/java/security/MessageDigestSpi.h | 45 + libjava/java/security/NoSuchAlgorithmException.h | 35 + libjava/java/security/NoSuchProviderException.h | 33 + libjava/java/security/Permission.h | 42 + libjava/java/security/PermissionCollection.h | 40 + libjava/java/security/Permissions$1.h | 38 + .../java/security/Permissions$PermissionsHash.h | 39 + libjava/java/security/Permissions.h | 40 + libjava/java/security/Policy.h | 49 + libjava/java/security/Principal.h | 32 + libjava/java/security/PrivateKey.h | 34 + libjava/java/security/PrivilegedAction.h | 29 + libjava/java/security/PrivilegedActionException.h | 36 + libjava/java/security/PrivilegedExceptionAction.h | 29 + libjava/java/security/ProtectionDomain.h | 52 + libjava/java/security/Provider.h | 45 + libjava/java/security/ProviderException.h | 35 + libjava/java/security/PublicKey.h | 34 + libjava/java/security/SecureClassLoader.h | 48 + libjava/java/security/SecureRandom.h | 71 + libjava/java/security/SecureRandomSpi.h | 38 + libjava/java/security/Security.h | 51 + libjava/java/security/Security.java | 714 - libjava/java/security/SecurityPermission.h | 33 + libjava/java/security/Signature.h | 84 + libjava/java/security/SignatureException.h | 35 + libjava/java/security/SignatureSpi.h | 63 + libjava/java/security/SignedObject.h | 45 + libjava/java/security/Signer.h | 42 + libjava/java/security/UnrecoverableKeyException.h | 33 + libjava/java/security/UnresolvedPermission.h | 56 + .../security/UnresolvedPermissionCollection$1.h | 38 + .../java/security/UnresolvedPermissionCollection.h | 39 + libjava/java/security/VMAccessControlState.h | 37 + libjava/java/security/VMAccessController.h | 41 + libjava/java/security/VMSecureRandom$Spinner.h | 38 + libjava/java/security/VMSecureRandom.h | 33 + libjava/java/security/acl/Acl.h | 45 + libjava/java/security/acl/AclEntry.h | 43 + libjava/java/security/acl/AclNotFoundException.h | 35 + libjava/java/security/acl/Group.h | 37 + libjava/java/security/acl/LastOwnerException.h | 35 + libjava/java/security/acl/NotOwnerException.h | 35 + libjava/java/security/acl/Owner.h | 35 + libjava/java/security/acl/Permission.h | 33 + libjava/java/security/cert/CRL.h | 40 + libjava/java/security/cert/CRLException.h | 38 + libjava/java/security/cert/CRLSelector.h | 34 + libjava/java/security/cert/CertPath$CertPathRep.h | 40 + libjava/java/security/cert/CertPath.h | 49 + libjava/java/security/cert/CertPathBuilder.h | 50 + .../java/security/cert/CertPathBuilderException.h | 44 + libjava/java/security/cert/CertPathBuilderResult.h | 34 + libjava/java/security/cert/CertPathBuilderSpi.h | 35 + libjava/java/security/cert/CertPathParameters.h | 32 + libjava/java/security/cert/CertPathValidator$1.h | 34 + libjava/java/security/cert/CertPathValidator.h | 51 + .../security/cert/CertPathValidatorException.h | 50 + .../java/security/cert/CertPathValidatorResult.h | 32 + libjava/java/security/cert/CertPathValidatorSpi.h | 36 + libjava/java/security/cert/CertSelector.h | 34 + libjava/java/security/cert/CertStore$1.h | 34 + libjava/java/security/cert/CertStore.h | 54 + libjava/java/security/cert/CertStoreException.h | 44 + libjava/java/security/cert/CertStoreParameters.h | 32 + libjava/java/security/cert/CertStoreSpi.h | 37 + .../security/cert/Certificate$CertificateRep.h | 40 + libjava/java/security/cert/Certificate.h | 50 + .../security/cert/CertificateEncodingException.h | 38 + libjava/java/security/cert/CertificateException.h | 38 + .../security/cert/CertificateExpiredException.h | 36 + libjava/java/security/cert/CertificateFactory.h | 57 + libjava/java/security/cert/CertificateFactorySpi.h | 43 + .../cert/CertificateNotYetValidException.h | 36 + .../security/cert/CertificateParsingException.h | 38 + .../security/cert/CollectionCertStoreParameters.h | 39 + .../java/security/cert/LDAPCertStoreParameters.h | 43 + libjava/java/security/cert/PKIXBuilderParameters.h | 41 + .../java/security/cert/PKIXCertPathBuilderResult.h | 41 + libjava/java/security/cert/PKIXCertPathChecker.h | 39 + .../security/cert/PKIXCertPathValidatorResult.h | 45 + libjava/java/security/cert/PKIXParameters.h | 83 + libjava/java/security/cert/PolicyNode.h | 38 + libjava/java/security/cert/PolicyQualifierInfo.h | 57 + libjava/java/security/cert/TrustAnchor.h | 61 + libjava/java/security/cert/X509CRL.h | 76 + libjava/java/security/cert/X509CRLEntry.h | 49 + libjava/java/security/cert/X509CRLSelector.h | 63 + libjava/java/security/cert/X509CertSelector.h | 132 + libjava/java/security/cert/X509Certificate.h | 82 + libjava/java/security/cert/X509Extension.h | 37 + libjava/java/security/interfaces/DSAKey.h | 33 + .../java/security/interfaces/DSAKeyPairGenerator.h | 35 + libjava/java/security/interfaces/DSAParams.h | 38 + libjava/java/security/interfaces/DSAPrivateKey.h | 44 + libjava/java/security/interfaces/DSAPublicKey.h | 44 + libjava/java/security/interfaces/RSAKey.h | 36 + .../interfaces/RSAMultiPrimePrivateCrtKey.h | 54 + .../java/security/interfaces/RSAPrivateCrtKey.h | 49 + libjava/java/security/interfaces/RSAPrivateKey.h | 43 + libjava/java/security/interfaces/RSAPublicKey.h | 43 + .../java/security/spec/AlgorithmParameterSpec.h | 31 + libjava/java/security/spec/DSAParameterSpec.h | 44 + libjava/java/security/spec/DSAPrivateKeySpec.h | 46 + libjava/java/security/spec/DSAPublicKeySpec.h | 46 + libjava/java/security/spec/EncodedKeySpec.h | 39 + .../java/security/spec/InvalidKeySpecException.h | 38 + .../security/spec/InvalidParameterSpecException.h | 36 + libjava/java/security/spec/KeySpec.h | 31 + libjava/java/security/spec/PKCS8EncodedKeySpec.h | 36 + libjava/java/security/spec/PSSParameterSpec.h | 36 + .../java/security/spec/RSAKeyGenParameterSpec.h | 44 + .../security/spec/RSAMultiPrimePrivateCrtKeySpec.h | 55 + libjava/java/security/spec/RSAOtherPrimeInfo.h | 44 + libjava/java/security/spec/RSAPrivateCrtKeySpec.h | 50 + libjava/java/security/spec/RSAPrivateKeySpec.h | 42 + libjava/java/security/spec/RSAPublicKeySpec.h | 42 + libjava/java/security/spec/X509EncodedKeySpec.h | 36 + libjava/java/sql/Array.h | 39 + libjava/java/sql/BatchUpdateException.h | 41 + libjava/java/sql/Blob.h | 39 + libjava/java/sql/CallableStatement.h | 203 + libjava/java/sql/Clob.h | 39 + libjava/java/sql/Connection.h | 77 + libjava/java/sql/DataTruncation.h | 43 + libjava/java/sql/DatabaseMetaData.h | 245 + libjava/java/sql/Date.h | 47 + libjava/java/sql/Driver.h | 38 + libjava/java/sql/DriverManager.h | 51 + libjava/java/sql/DriverPropertyInfo.h | 36 + libjava/java/sql/ParameterMetaData.h | 44 + libjava/java/sql/PreparedStatement.h | 124 + libjava/java/sql/Ref.h | 32 + libjava/java/sql/ResultSet.h | 197 + libjava/java/sql/ResultSetMetaData.h | 52 + libjava/java/sql/SQLData.h | 33 + libjava/java/sql/SQLException.h | 43 + libjava/java/sql/SQLInput.h | 68 + libjava/java/sql/SQLOutput.h | 70 + libjava/java/sql/SQLPermission.h | 30 + libjava/java/sql/SQLWarning.h | 37 + libjava/java/sql/Savepoint.h | 30 + libjava/java/sql/Statement.h | 77 + libjava/java/sql/Struct.h | 33 + libjava/java/sql/Time.h | 48 + libjava/java/sql/Timestamp.h | 54 + libjava/java/sql/Types.h | 59 + libjava/java/text/Annotation.h | 34 + .../text/AttributedCharacterIterator$Attribute.h | 44 + libjava/java/text/AttributedCharacterIterator.h | 47 + .../java/text/AttributedString$AttributeRange.h | 35 + libjava/java/text/AttributedString.h | 49 + libjava/java/text/AttributedStringIterator.h | 63 + libjava/java/text/Bidi.h | 80 + libjava/java/text/BreakIterator.h | 59 + libjava/java/text/CharacterIterator.h | 39 + libjava/java/text/ChoiceFormat.h | 57 + libjava/java/text/CollationElementIterator.h | 58 + libjava/java/text/CollationKey.h | 44 + libjava/java/text/Collator.h | 61 + libjava/java/text/DateFormat$Field.h | 69 + libjava/java/text/DateFormat.h | 102 + libjava/java/text/DateFormatSymbols.h | 74 + libjava/java/text/DecimalFormat.h | 120 + libjava/java/text/DecimalFormatSymbols.h | 91 + libjava/java/text/FieldPosition.h | 47 + libjava/java/text/Format$Field.h | 32 + libjava/java/text/Format.h | 41 + libjava/java/text/MessageFormat$Field.h | 35 + .../java/text/MessageFormat$MessageFormatElement.h | 40 + libjava/java/text/MessageFormat.h | 83 + libjava/java/text/NumberFormat$Field.h | 50 + libjava/java/text/NumberFormat.h | 100 + libjava/java/text/ParseException.h | 34 + libjava/java/text/ParsePosition.h | 40 + .../java/text/RuleBasedCollator$CollationElement.h | 38 + .../java/text/RuleBasedCollator$CollationSorter.h | 42 + libjava/java/text/RuleBasedCollator.h | 70 + libjava/java/text/SimpleDateFormat$CompiledField.h | 42 + libjava/java/text/SimpleDateFormat.h | 87 + libjava/java/text/StringCharacterIterator.h | 53 + libjava/java/util/AbstractCollection.h | 46 + libjava/java/util/AbstractList$1.h | 35 + libjava/java/util/AbstractList$2.h | 33 + libjava/java/util/AbstractList$3.h | 39 + .../java/util/AbstractList$RandomAccessSubList.h | 20 + libjava/java/util/AbstractList$SubList.h | 41 + libjava/java/util/AbstractList.h | 41 + libjava/java/util/AbstractMap$1.h | 27 + libjava/java/util/AbstractMap$2.h | 28 + libjava/java/util/AbstractMap$3.h | 27 + libjava/java/util/AbstractMap$4.h | 28 + libjava/java/util/AbstractMap$SimpleEntry.h | 30 + .../java/util/AbstractMap$SimpleImmutableEntry.h | 27 + libjava/java/util/AbstractMap.h | 47 + libjava/java/util/AbstractQueue.h | 28 + libjava/java/util/AbstractSequentialList.h | 27 + libjava/java/util/AbstractSet.h | 23 + libjava/java/util/ArrayDeque$DeqIterator.h | 31 + libjava/java/util/ArrayDeque$DescendingIterator.h | 31 + libjava/java/util/ArrayDeque.h | 81 + libjava/java/util/ArrayList.h | 57 + libjava/java/util/Arrays$ArrayList.h | 34 + libjava/java/util/Arrays.h | 144 + libjava/java/util/BitSet.h | 57 + libjava/java/util/Calendar.h | 140 + libjava/java/util/Collection.h | 35 + .../java/util/Collections$1$SynchronizedMapEntry.h | 30 + libjava/java/util/Collections$1.h | 28 + libjava/java/util/Collections$2.h | 24 + libjava/java/util/Collections$3.h | 25 + libjava/java/util/Collections$4.h | 25 + libjava/java/util/Collections$5.h | 25 + libjava/java/util/Collections$6.h | 25 + libjava/java/util/Collections$7.h | 31 + libjava/java/util/Collections$8.h | 25 + libjava/java/util/Collections$9.h | 24 + libjava/java/util/Collections$CheckedCollection.h | 42 + libjava/java/util/Collections$CheckedIterator.h | 28 + libjava/java/util/Collections$CheckedList.h | 37 + .../java/util/Collections$CheckedListIterator.h | 29 + .../util/Collections$CheckedMap$CheckedEntrySet.h | 27 + libjava/java/util/Collections$CheckedMap.h | 46 + .../util/Collections$CheckedRandomAccessList.h | 22 + libjava/java/util/Collections$CheckedSet.h | 25 + libjava/java/util/Collections$CheckedSortedMap.h | 30 + libjava/java/util/Collections$CheckedSortedSet.h | 30 + libjava/java/util/Collections$CopiesList.h | 35 + libjava/java/util/Collections$EmptyList.h | 39 + libjava/java/util/Collections$EmptyMap.h | 34 + libjava/java/util/Collections$EmptySet.h | 37 + libjava/java/util/Collections$ReverseComparator.h | 24 + libjava/java/util/Collections$SingletonList.h | 36 + libjava/java/util/Collections$SingletonMap.h | 35 + libjava/java/util/Collections$SingletonSet.h | 34 + .../java/util/Collections$SynchronizedCollection.h | 43 + .../java/util/Collections$SynchronizedIterator.h | 28 + libjava/java/util/Collections$SynchronizedList.h | 38 + .../util/Collections$SynchronizedListIterator.h | 29 + libjava/java/util/Collections$SynchronizedMap.h | 46 + .../Collections$SynchronizedRandomAccessList.h | 25 + libjava/java/util/Collections$SynchronizedSet.h | 26 + .../java/util/Collections$SynchronizedSortedMap.h | 31 + .../java/util/Collections$SynchronizedSortedSet.h | 31 + .../java/util/Collections$UnmodifiableCollection.h | 41 + .../java/util/Collections$UnmodifiableIterator.h | 26 + libjava/java/util/Collections$UnmodifiableList.h | 37 + .../util/Collections$UnmodifiableListIterator.h | 29 + ...Map$UnmodifiableEntrySet$UnmodifiableMapEntry.h | 30 + ...lections$UnmodifiableMap$UnmodifiableEntrySet.h | 29 + libjava/java/util/Collections$UnmodifiableMap.h | 42 + .../Collections$UnmodifiableRandomAccessList.h | 22 + libjava/java/util/Collections$UnmodifiableSet.h | 25 + .../java/util/Collections$UnmodifiableSortedMap.h | 30 + .../java/util/Collections$UnmodifiableSortedSet.h | 30 + libjava/java/util/Collections.h | 85 + libjava/java/util/Comparator.h | 20 + .../java/util/ConcurrentModificationException.h | 23 + libjava/java/util/Currency.h | 37 + libjava/java/util/Date.h | 69 + libjava/java/util/Deque.h | 55 + libjava/java/util/Dictionary.h | 26 + libjava/java/util/DuplicateFormatFlagsException.h | 24 + libjava/java/util/EmptyStackException.h | 22 + libjava/java/util/EnumMap$1.h | 29 + libjava/java/util/EnumMap$2.h | 29 + libjava/java/util/EnumMap$3.h | 27 + libjava/java/util/EnumMap$4.h | 28 + libjava/java/util/EnumMap$5.h | 29 + libjava/java/util/EnumMap$6.h | 30 + libjava/java/util/EnumMap$7.h | 24 + libjava/java/util/EnumMap.h | 47 + libjava/java/util/EnumSet$1.h | 29 + libjava/java/util/EnumSet.h | 54 + libjava/java/util/Enumeration.h | 20 + libjava/java/util/EventListener.h | 18 + libjava/java/util/EventListenerProxy.h | 23 + libjava/java/util/EventObject.h | 26 + .../util/FormatFlagsConversionMismatchException.h | 26 + libjava/java/util/Formattable.h | 19 + libjava/java/util/FormattableFlags.h | 29 + libjava/java/util/Formatter$BigDecimalLayoutForm.h | 28 + libjava/java/util/Formatter.h | 90 + libjava/java/util/FormatterClosedException.h | 22 + libjava/java/util/GregorianCalendar.h | 72 + libjava/java/util/HashMap$1.h | 28 + libjava/java/util/HashMap$2.h | 26 + libjava/java/util/HashMap$3.h | 28 + libjava/java/util/HashMap$HashEntry.h | 23 + libjava/java/util/HashMap$HashIterator.h | 33 + libjava/java/util/HashMap.h | 61 + libjava/java/util/HashSet.h | 38 + libjava/java/util/Hashtable$1.h | 28 + libjava/java/util/Hashtable$2.h | 26 + libjava/java/util/Hashtable$3.h | 28 + libjava/java/util/Hashtable$EntryEnumerator.h | 29 + libjava/java/util/Hashtable$EntryIterator.h | 32 + libjava/java/util/Hashtable$HashEntry.h | 24 + libjava/java/util/Hashtable$KeyEnumerator.h | 27 + libjava/java/util/Hashtable$KeyIterator.h | 28 + libjava/java/util/Hashtable$ValueEnumerator.h | 27 + libjava/java/util/Hashtable$ValueIterator.h | 28 + libjava/java/util/Hashtable.h | 67 + libjava/java/util/IdentityHashMap$1.h | 29 + libjava/java/util/IdentityHashMap$2.h | 29 + libjava/java/util/IdentityHashMap$3.h | 27 + libjava/java/util/IdentityHashMap$IdentityEntry.h | 31 + .../java/util/IdentityHashMap$IdentityIterator.h | 30 + libjava/java/util/IdentityHashMap.h | 61 + .../java/util/IllegalFormatCodePointException.h | 25 + .../java/util/IllegalFormatConversionException.h | 27 + libjava/java/util/IllegalFormatException.h | 23 + libjava/java/util/IllegalFormatFlagsException.h | 24 + .../java/util/IllegalFormatPrecisionException.h | 24 + libjava/java/util/IllegalFormatWidthException.h | 24 + libjava/java/util/InputMismatchException.h | 20 + .../java/util/InvalidPropertiesFormatException.h | 25 + libjava/java/util/Iterator.h | 21 + libjava/java/util/LinkedHashMap$1.h | 31 + libjava/java/util/LinkedHashMap$LinkedHashEntry.h | 25 + libjava/java/util/LinkedHashMap.h | 38 + libjava/java/util/LinkedHashSet.h | 27 + libjava/java/util/LinkedList$Entry.h | 23 + libjava/java/util/LinkedList$LinkedListItr.h | 40 + libjava/java/util/LinkedList.h | 68 + libjava/java/util/List.h | 45 + libjava/java/util/ListIterator.h | 27 + libjava/java/util/ListResourceBundle.h | 26 + libjava/java/util/Locale.h | 82 + libjava/java/util/Map$Entry.h | 23 + libjava/java/util/Map.h | 32 + libjava/java/util/MissingFormatArgumentException.h | 24 + libjava/java/util/MissingFormatWidthException.h | 24 + libjava/java/util/MissingResourceException.h | 26 + libjava/java/util/NavigableMap.h | 54 + libjava/java/util/NavigableSet.h | 50 + libjava/java/util/NoSuchElementException.h | 23 + libjava/java/util/Observable.h | 35 + libjava/java/util/Observer.h | 19 + libjava/java/util/PriorityQueue$1.h | 28 + libjava/java/util/PriorityQueue.h | 48 + libjava/java/util/Properties.h | 40 + libjava/java/util/PropertyPermission.h | 52 + libjava/java/util/PropertyPermissionCollection.h | 38 + libjava/java/util/PropertyResourceBundle.h | 24 + libjava/java/util/Queue.h | 38 + libjava/java/util/Random.h | 40 + libjava/java/util/RandomAccess.h | 18 + libjava/java/util/ResourceBundle$1.h | 21 + libjava/java/util/ResourceBundle$BundleKey.h | 31 + libjava/java/util/ResourceBundle.h | 47 + libjava/java/util/ResourceBundle.java | 580 - libjava/java/util/Set.h | 35 + libjava/java/util/SimpleTimeZone.h | 80 + libjava/java/util/SortedMap.h | 36 + libjava/java/util/SortedSet.h | 39 + libjava/java/util/Stack.h | 27 + libjava/java/util/StringTokenizer.h | 34 + libjava/java/util/TimeZone$1.h | 21 + libjava/java/util/TimeZone.h | 61 + libjava/java/util/Timer$Scheduler.h | 23 + libjava/java/util/Timer$TaskQueue.h | 39 + libjava/java/util/Timer.h | 49 + libjava/java/util/TimerTask.h | 29 + libjava/java/util/TooManyListenersException.h | 23 + libjava/java/util/TreeMap$1.h | 28 + libjava/java/util/TreeMap$2.h | 28 + libjava/java/util/TreeMap$3.h | 26 + libjava/java/util/TreeMap$4.h | 28 + libjava/java/util/TreeMap$5.h | 28 + libjava/java/util/TreeMap$6.h | 26 + libjava/java/util/TreeMap$Node.h | 24 + libjava/java/util/TreeMap$SubMap.h | 46 + libjava/java/util/TreeMap$TreeIterator.h | 33 + libjava/java/util/TreeMap.h | 85 + libjava/java/util/TreeSet.h | 46 + libjava/java/util/UUID.h | 45 + .../java/util/UnknownFormatConversionException.h | 24 + libjava/java/util/UnknownFormatFlagsException.h | 24 + libjava/java/util/VMTimeZone.h | 26 + libjava/java/util/Vector$1.h | 27 + libjava/java/util/Vector.h | 77 + libjava/java/util/WeakHashMap$1.h | 22 + libjava/java/util/WeakHashMap$2.h | 32 + .../java/util/WeakHashMap$WeakBucket$WeakEntry.h | 30 + libjava/java/util/WeakHashMap$WeakBucket.h | 25 + libjava/java/util/WeakHashMap$WeakEntrySet.h | 26 + libjava/java/util/WeakHashMap.h | 66 + .../java/util/concurrent/AbstractExecutorService.h | 42 + .../java/util/concurrent/ArrayBlockingQueue$Itr.h | 33 + libjava/java/util/concurrent/ArrayBlockingQueue.h | 65 + libjava/java/util/concurrent/BlockingDeque.h | 70 + libjava/java/util/concurrent/BlockingQueue.h | 45 + .../java/util/concurrent/BrokenBarrierException.h | 23 + libjava/java/util/concurrent/Callable.h | 19 + .../java/util/concurrent/CancellationException.h | 23 + libjava/java/util/concurrent/CompletionService.h | 23 + .../concurrent/ConcurrentHashMap$EntryIterator.h | 25 + .../util/concurrent/ConcurrentHashMap$EntrySet.h | 28 + .../util/concurrent/ConcurrentHashMap$HashEntry.h | 27 + .../concurrent/ConcurrentHashMap$HashIterator.h | 39 + .../concurrent/ConcurrentHashMap$KeyIterator.h | 25 + .../util/concurrent/ConcurrentHashMap$KeySet.h | 28 + .../util/concurrent/ConcurrentHashMap$Segment.h | 43 + .../concurrent/ConcurrentHashMap$ValueIterator.h | 25 + .../util/concurrent/ConcurrentHashMap$Values.h | 27 + .../ConcurrentHashMap$WriteThroughEntry.h | 24 + libjava/java/util/concurrent/ConcurrentHashMap.h | 65 + .../util/concurrent/ConcurrentLinkedQueue$Itr.h | 32 + .../util/concurrent/ConcurrentLinkedQueue$Node.h | 32 + .../java/util/concurrent/ConcurrentLinkedQueue.h | 43 + libjava/java/util/concurrent/ConcurrentMap.h | 34 + .../java/util/concurrent/ConcurrentNavigableMap.h | 66 + ...ncurrentSkipListMap$ComparableUsingComparator.h | 25 + .../ConcurrentSkipListMap$EntryIterator.h | 25 + .../concurrent/ConcurrentSkipListMap$EntrySet.h | 34 + .../concurrent/ConcurrentSkipListMap$HeadIndex.h | 21 + .../util/concurrent/ConcurrentSkipListMap$Index.h | 28 + .../util/concurrent/ConcurrentSkipListMap$Iter.h | 32 + .../concurrent/ConcurrentSkipListMap$KeyIterator.h | 24 + .../util/concurrent/ConcurrentSkipListMap$KeySet.h | 54 + .../util/concurrent/ConcurrentSkipListMap$Node.h | 34 + ...currentSkipListMap$SubMap$SubMapEntryIterator.h | 25 + .../ConcurrentSkipListMap$SubMap$SubMapIter.h | 35 + ...oncurrentSkipListMap$SubMap$SubMapKeyIterator.h | 24 + ...currentSkipListMap$SubMap$SubMapValueIterator.h | 24 + .../util/concurrent/ConcurrentSkipListMap$SubMap.h | 118 + .../ConcurrentSkipListMap$ValueIterator.h | 24 + .../util/concurrent/ConcurrentSkipListMap$Values.h | 32 + .../java/util/concurrent/ConcurrentSkipListMap.h | 136 + .../java/util/concurrent/ConcurrentSkipListSet.h | 75 + .../java/util/concurrent/CopyOnWriteArrayList.h | 52 + libjava/java/util/concurrent/CopyOnWriteArraySet.h | 41 + libjava/java/util/concurrent/CountDownLatch$Sync.h | 26 + libjava/java/util/concurrent/CountDownLatch.h | 27 + .../util/concurrent/CyclicBarrier$Generation.h | 22 + libjava/java/util/concurrent/CyclicBarrier.h | 37 + libjava/java/util/concurrent/DelayQueue$Itr.h | 32 + libjava/java/util/concurrent/DelayQueue.h | 57 + libjava/java/util/concurrent/Delayed.h | 20 + libjava/java/util/concurrent/Exchanger$Node.h | 21 + libjava/java/util/concurrent/Exchanger$Slot.h | 36 + libjava/java/util/concurrent/Exchanger.h | 42 + libjava/java/util/concurrent/ExecutionException.h | 26 + libjava/java/util/concurrent/Executor.h | 19 + .../ExecutorCompletionService$QueueingFuture.h | 26 + .../util/concurrent/ExecutorCompletionService.h | 34 + libjava/java/util/concurrent/ExecutorService.h | 31 + libjava/java/util/concurrent/Executors$1.h | 24 + libjava/java/util/concurrent/Executors$2.h | 24 + libjava/java/util/concurrent/Executors$3.h | 27 + libjava/java/util/concurrent/Executors$4.h | 26 + libjava/java/util/concurrent/Executors$5.h | 34 + libjava/java/util/concurrent/Executors$6.h | 34 + .../concurrent/Executors$DefaultThreadFactory.h | 27 + .../Executors$DelegatedExecutorService.h | 36 + .../Executors$DelegatedScheduledExecutorService.h | 27 + ...Executors$FinalizableDelegatedExecutorService.h | 22 + .../util/concurrent/Executors$PrivilegedCallable.h | 41 + ...ors$PrivilegedCallableUsingCurrentClassLoader.h | 43 + .../concurrent/Executors$PrivilegedThreadFactory.h | 38 + .../util/concurrent/Executors$RunnableAdapter.h | 25 + libjava/java/util/concurrent/Executors.h | 52 + libjava/java/util/concurrent/Future.h | 23 + libjava/java/util/concurrent/FutureTask$Sync.h | 46 + libjava/java/util/concurrent/FutureTask.h | 36 + .../concurrent/LinkedBlockingDeque$AbstractItr.h | 32 + .../concurrent/LinkedBlockingDeque$DescendingItr.h | 23 + .../java/util/concurrent/LinkedBlockingDeque$Itr.h | 23 + .../util/concurrent/LinkedBlockingDeque$Node.h | 23 + libjava/java/util/concurrent/LinkedBlockingDeque.h | 96 + .../java/util/concurrent/LinkedBlockingQueue$Itr.h | 30 + .../util/concurrent/LinkedBlockingQueue$Node.h | 22 + libjava/java/util/concurrent/LinkedBlockingQueue.h | 71 + .../util/concurrent/PriorityBlockingQueue$Itr.h | 31 + .../java/util/concurrent/PriorityBlockingQueue.h | 57 + .../util/concurrent/RejectedExecutionException.h | 25 + .../util/concurrent/RejectedExecutionHandler.h | 19 + libjava/java/util/concurrent/RunnableFuture.h | 24 + .../java/util/concurrent/RunnableScheduledFuture.h | 27 + .../util/concurrent/ScheduledExecutorService.h | 35 + libjava/java/util/concurrent/ScheduledFuture.h | 25 + .../concurrent/ScheduledThreadPoolExecutor$1.h | 29 + .../ScheduledThreadPoolExecutor$DelayedWorkQueue.h | 58 + ...heduledThreadPoolExecutor$ScheduledFutureTask.h | 40 + .../util/concurrent/ScheduledThreadPoolExecutor.h | 56 + libjava/java/util/concurrent/Semaphore$FairSync.h | 24 + .../java/util/concurrent/Semaphore$NonfairSync.h | 24 + libjava/java/util/concurrent/Semaphore$Sync.h | 29 + libjava/java/util/concurrent/Semaphore.h | 46 + .../concurrent/SynchronousQueue$EmptyIterator.h | 23 + .../concurrent/SynchronousQueue$FifoWaitQueue.h | 22 + .../concurrent/SynchronousQueue$LifoWaitQueue.h | 22 + .../SynchronousQueue$TransferQueue$QNode.h | 31 + .../concurrent/SynchronousQueue$TransferQueue.h | 32 + .../SynchronousQueue$TransferStack$SNode.h | 31 + .../concurrent/SynchronousQueue$TransferStack.h | 32 + .../util/concurrent/SynchronousQueue$Transferer.h | 21 + .../util/concurrent/SynchronousQueue$WaitQueue.h | 20 + libjava/java/util/concurrent/SynchronousQueue.h | 58 + libjava/java/util/concurrent/ThreadFactory.h | 19 + .../concurrent/ThreadPoolExecutor$AbortPolicy.h | 20 + .../ThreadPoolExecutor$CallerRunsPolicy.h | 20 + .../ThreadPoolExecutor$DiscardOldestPolicy.h | 20 + .../concurrent/ThreadPoolExecutor$DiscardPolicy.h | 20 + .../util/concurrent/ThreadPoolExecutor$Worker.h | 34 + libjava/java/util/concurrent/ThreadPoolExecutor.h | 97 + libjava/java/util/concurrent/TimeUnit$1.h | 31 + libjava/java/util/concurrent/TimeUnit$2.h | 31 + libjava/java/util/concurrent/TimeUnit$3.h | 31 + libjava/java/util/concurrent/TimeUnit$4.h | 31 + libjava/java/util/concurrent/TimeUnit$5.h | 31 + libjava/java/util/concurrent/TimeUnit$6.h | 31 + libjava/java/util/concurrent/TimeUnit$7.h | 31 + libjava/java/util/concurrent/TimeUnit.h | 61 + libjava/java/util/concurrent/TimeoutException.h | 23 + .../java/util/concurrent/atomic/AtomicBoolean.h | 43 + .../java/util/concurrent/atomic/AtomicInteger.h | 53 + .../util/concurrent/atomic/AtomicIntegerArray.h | 54 + ...gerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h | 44 + .../concurrent/atomic/AtomicIntegerFieldUpdater.h | 34 + libjava/java/util/concurrent/atomic/AtomicLong.h | 57 + .../java/util/concurrent/atomic/AtomicLongArray.h | 54 + .../atomic/AtomicLongFieldUpdater$CASUpdater.h | 44 + .../atomic/AtomicLongFieldUpdater$LockedUpdater.h | 44 + .../concurrent/atomic/AtomicLongFieldUpdater.h | 34 + .../AtomicMarkableReference$ReferenceBooleanPair.h | 25 + .../concurrent/atomic/AtomicMarkableReference.h | 31 + .../java/util/concurrent/atomic/AtomicReference.h | 43 + .../util/concurrent/atomic/AtomicReferenceArray.h | 48 + ...eFieldUpdater$AtomicReferenceFieldUpdaterImpl.h | 45 + .../atomic/AtomicReferenceFieldUpdater.h | 28 + .../AtomicStampedReference$ReferenceIntegerPair.h | 25 + .../concurrent/atomic/AtomicStampedReference.h | 31 + .../java/util/concurrent/atomic/natAtomicLong.cc | 12 + .../concurrent/locks/AbstractOwnableSynchronizer.h | 25 + ...bstractQueuedLongSynchronizer$ConditionObject.h | 52 + .../locks/AbstractQueuedLongSynchronizer$Node.h | 34 + .../locks/AbstractQueuedLongSynchronizer.h | 115 + .../AbstractQueuedSynchronizer$ConditionObject.h | 52 + .../locks/AbstractQueuedSynchronizer$Node.h | 34 + .../concurrent/locks/AbstractQueuedSynchronizer.h | 115 + libjava/java/util/concurrent/locks/Condition.h | 25 + libjava/java/util/concurrent/locks/Lock.h | 24 + libjava/java/util/concurrent/locks/LockSupport.h | 42 + libjava/java/util/concurrent/locks/ReadWriteLock.h | 20 + .../util/concurrent/locks/ReentrantLock$FairSync.h | 25 + .../concurrent/locks/ReentrantLock$NonfairSync.h | 25 + .../util/concurrent/locks/ReentrantLock$Sync.h | 33 + libjava/java/util/concurrent/locks/ReentrantLock.h | 49 + .../locks/ReentrantReadWriteLock$FairSync.h | 24 + .../locks/ReentrantReadWriteLock$NonfairSync.h | 24 + .../locks/ReentrantReadWriteLock$ReadLock.h | 31 + .../ReentrantReadWriteLock$Sync$HoldCounter.h | 23 + ...rantReadWriteLock$Sync$ThreadLocalHoldCounter.h | 22 + .../concurrent/locks/ReentrantReadWriteLock$Sync.h | 55 + .../locks/ReentrantReadWriteLock$WriteLock.h | 33 + .../util/concurrent/locks/ReentrantReadWriteLock.h | 57 + libjava/java/util/jar/Attributes$Name.h | 43 + libjava/java/util/jar/Attributes.h | 45 + libjava/java/util/jar/JarEntry.h | 42 + libjava/java/util/jar/JarException.h | 23 + libjava/java/util/jar/JarFile$EntryInputStream.h | 49 + libjava/java/util/jar/JarFile$JarEnumeration.h | 27 + libjava/java/util/jar/JarFile.h | 103 + libjava/java/util/jar/JarInputStream.h | 35 + libjava/java/util/jar/JarOutputStream.h | 24 + libjava/java/util/jar/Manifest.h | 34 + libjava/java/util/logging/ConsoleHandler.h | 21 + libjava/java/util/logging/ErrorManager.h | 29 + libjava/java/util/logging/FileHandler$ostr.h | 28 + libjava/java/util/logging/FileHandler.h | 49 + libjava/java/util/logging/Filter.h | 19 + libjava/java/util/logging/Formatter.h | 24 + libjava/java/util/logging/Handler.h | 44 + libjava/java/util/logging/Level.h | 53 + libjava/java/util/logging/LogManager$1.h | 24 + libjava/java/util/logging/LogManager.h | 77 + libjava/java/util/logging/LogRecord.h | 70 + libjava/java/util/logging/Logger$1.h | 21 + libjava/java/util/logging/Logger.h | 90 + libjava/java/util/logging/LoggingMXBean.h | 22 + libjava/java/util/logging/LoggingPermission.h | 22 + libjava/java/util/logging/MemoryHandler.h | 35 + libjava/java/util/logging/SimpleFormatter.h | 35 + libjava/java/util/logging/SocketHandler.h | 25 + libjava/java/util/logging/StreamHandler.h | 43 + libjava/java/util/logging/XMLFormatter.h | 40 + libjava/java/util/natResourceBundle.cc | 29 - libjava/java/util/prefs/AbstractPreferences$1.h | 27 + libjava/java/util/prefs/AbstractPreferences$2.h | 28 + libjava/java/util/prefs/AbstractPreferences.h | 106 + libjava/java/util/prefs/BackingStoreException.h | 26 + .../util/prefs/InvalidPreferencesFormatException.h | 27 + libjava/java/util/prefs/NodeChangeEvent.h | 27 + libjava/java/util/prefs/NodeChangeListener.h | 20 + libjava/java/util/prefs/PreferenceChangeEvent.h | 29 + libjava/java/util/prefs/PreferenceChangeListener.h | 19 + libjava/java/util/prefs/Preferences$1.h | 21 + libjava/java/util/prefs/Preferences.h | 85 + libjava/java/util/prefs/PreferencesFactory.h | 20 + libjava/java/util/regex/MatchResult.h | 25 + libjava/java/util/regex/Matcher.h | 66 + libjava/java/util/regex/Pattern.h | 62 + libjava/java/util/regex/PatternSyntaxException.h | 29 + libjava/java/util/zip/Adler32.h | 30 + libjava/java/util/zip/CRC32.h | 33 + libjava/java/util/zip/CheckedInputStream.h | 28 + libjava/java/util/zip/CheckedOutputStream.h | 27 + libjava/java/util/zip/Checksum.h | 24 + libjava/java/util/zip/DataFormatException.h | 23 + libjava/java/util/zip/Deflater.h | 76 + libjava/java/util/zip/Deflater.java | 24 +- libjava/java/util/zip/DeflaterOutputStream.h | 34 + libjava/java/util/zip/GZIPInputStream.h | 41 + libjava/java/util/zip/GZIPOutputStream.h | 28 + libjava/java/util/zip/Inflater.h | 58 + libjava/java/util/zip/InflaterInputStream.h | 41 + libjava/java/util/zip/ZipConstants.h | 58 + libjava/java/util/zip/ZipEntry.h | 74 + libjava/java/util/zip/ZipException.h | 23 + libjava/java/util/zip/ZipFile$1.h | 26 + libjava/java/util/zip/ZipFile$PartialInputStream.h | 66 + .../java/util/zip/ZipFile$ZipEntryEnumeration.h | 25 + libjava/java/util/zip/ZipFile.h | 49 + libjava/java/util/zip/ZipInputStream.h | 50 + libjava/java/util/zip/ZipOutputStream.h | 47 + libjava/java/util/zip/natDeflater.cc | 10 +- libjava/javax/accessibility/Accessible.h | 30 + libjava/javax/accessibility/AccessibleAction.h | 34 + .../accessibility/AccessibleAttributeSequence.h | 39 + libjava/javax/accessibility/AccessibleBundle.h | 38 + libjava/javax/accessibility/AccessibleComponent.h | 73 + libjava/javax/accessibility/AccessibleContext.h | 104 + .../javax/accessibility/AccessibleEditableText.h | 63 + .../accessibility/AccessibleExtendedComponent.h | 77 + .../javax/accessibility/AccessibleExtendedTable.h | 57 + .../javax/accessibility/AccessibleExtendedText.h | 43 + libjava/javax/accessibility/AccessibleHyperlink.h | 37 + libjava/javax/accessibility/AccessibleHypertext.h | 58 + libjava/javax/accessibility/AccessibleIcon.h | 32 + libjava/javax/accessibility/AccessibleKeyBinding.h | 30 + libjava/javax/accessibility/AccessibleRelation.h | 66 + .../javax/accessibility/AccessibleRelationSet.h | 45 + .../javax/accessibility/AccessibleResourceBundle.h | 32 + libjava/javax/accessibility/AccessibleRole.h | 92 + libjava/javax/accessibility/AccessibleSelection.h | 36 + libjava/javax/accessibility/AccessibleState.h | 59 + libjava/javax/accessibility/AccessibleStateSet.h | 43 + libjava/javax/accessibility/AccessibleStreamable.h | 42 + libjava/javax/accessibility/AccessibleTable.h | 53 + .../accessibility/AccessibleTableModelChange.h | 36 + libjava/javax/accessibility/AccessibleText.h | 57 + .../javax/accessibility/AccessibleTextSequence.h | 32 + libjava/javax/accessibility/AccessibleValue.h | 32 + libjava/javax/crypto/BadPaddingException.h | 33 + libjava/javax/crypto/Cipher.h | 106 + libjava/javax/crypto/CipherInputStream.h | 53 + libjava/javax/crypto/CipherOutputStream.h | 43 + libjava/javax/crypto/CipherSpi.h | 68 + libjava/javax/crypto/EncryptedPrivateKeyInfo.h | 73 + libjava/javax/crypto/ExemptionMechanism.h | 68 + libjava/javax/crypto/ExemptionMechanismException.h | 33 + libjava/javax/crypto/ExemptionMechanismSpi.h | 51 + libjava/javax/crypto/IllegalBlockSizeException.h | 33 + libjava/javax/crypto/KeyAgreement.h | 67 + libjava/javax/crypto/KeyAgreementSpi.h | 52 + libjava/javax/crypto/KeyGenerator.h | 61 + libjava/javax/crypto/KeyGeneratorSpi.h | 47 + libjava/javax/crypto/Mac.h | 73 + libjava/javax/crypto/MacSpi.h | 56 + libjava/javax/crypto/NoSuchPaddingException.h | 33 + libjava/javax/crypto/NullCipher.h | 29 + libjava/javax/crypto/NullCipherImpl.h | 59 + libjava/javax/crypto/SealedObject.h | 59 + libjava/javax/crypto/SecretKey.h | 34 + libjava/javax/crypto/SecretKeyFactory.h | 57 + libjava/javax/crypto/SecretKeyFactorySpi.h | 45 + libjava/javax/crypto/ShortBufferException.h | 33 + libjava/javax/crypto/interfaces/DHKey.h | 36 + libjava/javax/crypto/interfaces/DHPrivateKey.h | 50 + libjava/javax/crypto/interfaces/DHPublicKey.h | 50 + libjava/javax/crypto/interfaces/PBEKey.h | 40 + libjava/javax/crypto/spec/DESKeySpec.h | 46 + libjava/javax/crypto/spec/DESedeKeySpec.h | 41 + libjava/javax/crypto/spec/DHGenParameterSpec.h | 38 + libjava/javax/crypto/spec/DHParameterSpec.h | 48 + libjava/javax/crypto/spec/DHPrivateKeySpec.h | 47 + libjava/javax/crypto/spec/DHPublicKeySpec.h | 47 + libjava/javax/crypto/spec/IvParameterSpec.h | 39 + libjava/javax/crypto/spec/PBEKeySpec.h | 52 + libjava/javax/crypto/spec/PBEParameterSpec.h | 40 + libjava/javax/crypto/spec/RC2ParameterSpec.h | 45 + libjava/javax/crypto/spec/RC5ParameterSpec.h | 48 + libjava/javax/crypto/spec/SecretKeySpec.h | 45 + libjava/javax/imageio/IIOException.h | 30 + libjava/javax/imageio/IIOImage.h | 63 + libjava/javax/imageio/IIOParam.h | 74 + libjava/javax/imageio/IIOParamController.h | 30 + libjava/javax/imageio/ImageIO$1.h | 38 + .../javax/imageio/ImageIO$ImageReaderIterator.h | 39 + .../javax/imageio/ImageIO$ImageWriterIterator.h | 39 + libjava/javax/imageio/ImageIO$ReaderFormatFilter.h | 33 + .../javax/imageio/ImageIO$ReaderMIMETypeFilter.h | 33 + libjava/javax/imageio/ImageIO$ReaderObjectFilter.h | 33 + libjava/javax/imageio/ImageIO$ReaderSuffixFilter.h | 33 + libjava/javax/imageio/ImageIO$TranscoderFilter.h | 36 + libjava/javax/imageio/ImageIO$WriterFormatFilter.h | 33 + .../javax/imageio/ImageIO$WriterMIMETypeFilter.h | 33 + libjava/javax/imageio/ImageIO$WriterObjectFilter.h | 35 + libjava/javax/imageio/ImageIO$WriterSuffixFilter.h | 33 + libjava/javax/imageio/ImageIO.h | 97 + libjava/javax/imageio/ImageReadParam.h | 61 + libjava/javax/imageio/ImageReader.h | 166 + libjava/javax/imageio/ImageTranscoder.h | 36 + libjava/javax/imageio/ImageTypeSpecifier.h | 69 + libjava/javax/imageio/ImageWriteParam.h | 102 + libjava/javax/imageio/ImageWriter.h | 140 + .../javax/imageio/event/IIOReadProgressListener.h | 41 + .../javax/imageio/event/IIOReadUpdateListener.h | 50 + .../javax/imageio/event/IIOReadWarningListener.h | 33 + .../javax/imageio/event/IIOWriteProgressListener.h | 39 + .../javax/imageio/event/IIOWriteWarningListener.h | 33 + .../imageio/metadata/IIOInvalidTreeException.h | 49 + libjava/javax/imageio/metadata/IIOMetadata.h | 87 + .../javax/imageio/metadata/IIOMetadataController.h | 33 + libjava/javax/imageio/metadata/IIOMetadataFormat.h | 82 + .../imageio/metadata/IIOMetadataFormatImpl$1.h | 35 + .../IIOMetadataFormatImpl$IIOMetadataNodeAttr.h | 60 + ...MetadataFormatImpl$IIOMetadataNodeAttrBounded.h | 53 + ...adataFormatImpl$IIOMetadataNodeAttrEnumerated.h | 51 + ...IIOMetadataFormatImpl$IIOMetadataNodeAttrList.h | 51 + .../metadata/IIOMetadataFormatImpl$NodeObject.h | 57 + .../IIOMetadataFormatImpl$NodeObjectArray.h | 51 + .../IIOMetadataFormatImpl$NodeObjectBounded.h | 53 + .../IIOMetadataFormatImpl$NodeObjectEnumerated.h | 51 + .../javax/imageio/metadata/IIOMetadataFormatImpl.h | 105 + .../metadata/IIOMetadataNode$IIONamedNodeMap.h | 55 + .../imageio/metadata/IIOMetadataNode$IIONodeList.h | 50 + libjava/javax/imageio/metadata/IIOMetadataNode.h | 121 + .../javax/imageio/plugins/bmp/BMPImageWriteParam.h | 50 + .../javax/imageio/plugins/jpeg/JPEGHuffmanTable.h | 53 + .../imageio/plugins/jpeg/JPEGImageReadParam.h | 50 + .../imageio/plugins/jpeg/JPEGImageWriteParam.h | 60 + libjava/javax/imageio/plugins/jpeg/JPEGQTable.h | 51 + libjava/javax/imageio/spi/IIORegistry.h | 40 + libjava/javax/imageio/spi/IIOServiceProvider.h | 43 + libjava/javax/imageio/spi/ImageInputStreamSpi.h | 46 + libjava/javax/imageio/spi/ImageOutputStreamSpi.h | 46 + libjava/javax/imageio/spi/ImageReaderSpi.h | 48 + libjava/javax/imageio/spi/ImageReaderWriterSpi.h | 67 + libjava/javax/imageio/spi/ImageTranscoderSpi.h | 38 + libjava/javax/imageio/spi/ImageWriterSpi.h | 61 + libjava/javax/imageio/spi/RegisterableService.h | 34 + libjava/javax/imageio/spi/ServiceRegistry$1.h | 41 + libjava/javax/imageio/spi/ServiceRegistry$2.h | 40 + libjava/javax/imageio/spi/ServiceRegistry$Filter.h | 32 + libjava/javax/imageio/spi/ServiceRegistry.h | 70 + .../imageio/stream/FileCacheImageInputStream.h | 47 + .../imageio/stream/FileCacheImageOutputStream.h | 49 + .../javax/imageio/stream/FileImageInputStream.h | 43 + .../javax/imageio/stream/FileImageOutputStream.h | 45 + libjava/javax/imageio/stream/IIOByteBuffer.h | 45 + libjava/javax/imageio/stream/ImageInputStream.h | 86 + .../javax/imageio/stream/ImageInputStreamImpl.h | 105 + libjava/javax/imageio/stream/ImageOutputStream.h | 108 + .../javax/imageio/stream/ImageOutputStreamImpl.h | 59 + .../imageio/stream/MemoryCacheImageInputStream.h | 47 + .../imageio/stream/MemoryCacheImageOutputStream.h | 46 + libjava/javax/management/Attribute.h | 39 + libjava/javax/management/AttributeList.h | 40 + .../javax/management/AttributeNotFoundException.h | 30 + .../management/BadAttributeValueExpException.h | 34 + .../management/BadBinaryOpValueExpException.h | 36 + .../javax/management/BadStringOperationException.h | 34 + libjava/javax/management/DynamicMBean.h | 39 + .../management/InstanceAlreadyExistsException.h | 33 + .../javax/management/InstanceNotFoundException.h | 33 + libjava/javax/management/IntrospectionException.h | 33 + .../javax/management/InvalidApplicationException.h | 34 + .../management/InvalidAttributeValueException.h | 30 + libjava/javax/management/JMException.h | 30 + libjava/javax/management/JMRuntimeException.h | 30 + .../javax/management/ListenerNotFoundException.h | 33 + libjava/javax/management/MBeanAttributeInfo.h | 44 + libjava/javax/management/MBeanConstructorInfo.h | 42 + libjava/javax/management/MBeanException.h | 36 + libjava/javax/management/MBeanFeatureInfo.h | 42 + libjava/javax/management/MBeanInfo.h | 55 + libjava/javax/management/MBeanNotificationInfo.h | 40 + libjava/javax/management/MBeanOperationInfo.h | 52 + libjava/javax/management/MBeanParameterInfo.h | 38 + .../javax/management/MBeanPermission$NameHolder.h | 42 + libjava/javax/management/MBeanPermission.h | 53 + libjava/javax/management/MBeanRegistration.h | 34 + .../javax/management/MBeanRegistrationException.h | 33 + libjava/javax/management/MBeanServer.h | 78 + libjava/javax/management/MBeanServerBuilder.h | 33 + libjava/javax/management/MBeanServerConnection.h | 63 + libjava/javax/management/MBeanServerDelegate.h | 52 + .../javax/management/MBeanServerDelegateMBean.h | 35 + libjava/javax/management/MBeanServerFactory.h | 49 + libjava/javax/management/MBeanServerNotification.h | 39 + ...onCollection$MBeanServerPermissionEnumeration.h | 39 + ...verPermission$MBeanServerPermissionCollection.h | 48 + libjava/javax/management/MBeanServerPermission.h | 46 + libjava/javax/management/MBeanTrustPermission.h | 33 + .../management/MalformedObjectNameException.h | 33 + .../javax/management/NotCompliantMBeanException.h | 33 + libjava/javax/management/Notification.h | 52 + libjava/javax/management/NotificationBroadcaster.h | 36 + libjava/javax/management/NotificationEmitter.h | 37 + libjava/javax/management/NotificationFilter.h | 30 + libjava/javax/management/NotificationListener.h | 30 + libjava/javax/management/ObjectInstance.h | 40 + libjava/javax/management/ObjectName.h | 62 + libjava/javax/management/OperationsException.h | 33 + libjava/javax/management/QueryExp.h | 32 + libjava/javax/management/ReflectionException.h | 36 + libjava/javax/management/RuntimeErrorException.h | 36 + libjava/javax/management/RuntimeMBeanException.h | 36 + .../javax/management/RuntimeOperationsException.h | 36 + .../javax/management/ServiceNotFoundException.h | 33 + libjava/javax/management/StandardMBean.h | 76 + libjava/javax/management/ValueExp.h | 32 + .../management/loading/ClassLoaderRepository.h | 34 + libjava/javax/management/openmbean/ArrayType.h | 47 + libjava/javax/management/openmbean/CompositeData.h | 43 + .../management/openmbean/CompositeDataSupport.h | 50 + libjava/javax/management/openmbean/CompositeType.h | 50 + .../management/openmbean/InvalidKeyException.h | 36 + .../openmbean/InvalidOpenTypeException.h | 36 + .../openmbean/KeyAlreadyExistsException.h | 36 + .../javax/management/openmbean/OpenDataException.h | 36 + .../management/openmbean/OpenMBeanAttributeInfo.h | 50 + .../openmbean/OpenMBeanAttributeInfoSupport.h | 61 + .../openmbean/OpenMBeanConstructorInfo.h | 40 + .../openmbean/OpenMBeanConstructorInfoSupport.h | 43 + libjava/javax/management/openmbean/OpenMBeanInfo.h | 46 + .../management/openmbean/OpenMBeanInfoSupport.h | 46 + .../management/openmbean/OpenMBeanOperationInfo.h | 44 + .../openmbean/OpenMBeanOperationInfoSupport.h | 46 + .../management/openmbean/OpenMBeanParameterInfo.h | 47 + .../openmbean/OpenMBeanParameterInfoSupport.h | 61 + libjava/javax/management/openmbean/OpenType.h | 50 + libjava/javax/management/openmbean/SimpleType.h | 56 + libjava/javax/management/openmbean/TabularData.h | 51 + .../management/openmbean/TabularDataSupport.h | 72 + libjava/javax/management/openmbean/TabularType.h | 48 + libjava/javax/naming/AuthenticationException.h | 33 + .../naming/AuthenticationNotSupportedException.h | 33 + libjava/javax/naming/BinaryRefAddr.h | 42 + libjava/javax/naming/Binding.h | 40 + libjava/javax/naming/CannotProceedException.h | 48 + libjava/javax/naming/CommunicationException.h | 33 + libjava/javax/naming/CompositeName.h | 58 + libjava/javax/naming/CompoundName.h | 77 + libjava/javax/naming/ConfigurationException.h | 33 + libjava/javax/naming/Context.h | 75 + libjava/javax/naming/ContextNotEmptyException.h | 33 + libjava/javax/naming/InitialContext.h | 85 + .../javax/naming/InsufficientResourcesException.h | 33 + libjava/javax/naming/InterruptedNamingException.h | 33 + libjava/javax/naming/InvalidNameException.h | 33 + libjava/javax/naming/LimitExceededException.h | 33 + libjava/javax/naming/LinkException.h | 49 + libjava/javax/naming/LinkLoopException.h | 33 + libjava/javax/naming/LinkRef.h | 35 + libjava/javax/naming/MalformedLinkException.h | 33 + libjava/javax/naming/Name.h | 44 + libjava/javax/naming/NameAlreadyBoundException.h | 33 + libjava/javax/naming/NameClassPair.h | 46 + libjava/javax/naming/NameNotFoundException.h | 33 + libjava/javax/naming/NameParser.h | 30 + libjava/javax/naming/NamingEnumeration.h | 33 + libjava/javax/naming/NamingException.h | 55 + libjava/javax/naming/NamingSecurityException.h | 33 + libjava/javax/naming/NoInitialContextException.h | 33 + libjava/javax/naming/NoPermissionException.h | 33 + libjava/javax/naming/NotContextException.h | 33 + .../javax/naming/OperationNotSupportedException.h | 33 + libjava/javax/naming/PartialResultException.h | 33 + libjava/javax/naming/RefAddr.h | 38 + libjava/javax/naming/Reference.h | 59 + libjava/javax/naming/Referenceable.h | 30 + libjava/javax/naming/ReferralException.h | 40 + libjava/javax/naming/ServiceUnavailableException.h | 33 + libjava/javax/naming/SizeLimitExceededException.h | 33 + libjava/javax/naming/StringRefAddr.h | 34 + libjava/javax/naming/TimeLimitExceededException.h | 33 + libjava/javax/naming/directory/Attribute.h | 50 + .../naming/directory/AttributeInUseException.h | 36 + .../directory/AttributeModificationException.h | 43 + libjava/javax/naming/directory/Attributes.h | 42 + .../BasicAttribute$BasicAttributeEnumeration.h | 42 + libjava/javax/naming/directory/BasicAttribute.h | 67 + .../BasicAttributes$BasicAttributesEnumeration.h | 43 + libjava/javax/naming/directory/BasicAttributes.h | 57 + libjava/javax/naming/directory/DirContext.h | 98 + libjava/javax/naming/directory/InitialDirContext.h | 74 + .../InvalidAttributeIdentifierException.h | 36 + .../directory/InvalidAttributeValueException.h | 36 + .../naming/directory/InvalidAttributesException.h | 36 + .../directory/InvalidSearchControlsException.h | 36 + .../directory/InvalidSearchFilterException.h | 36 + libjava/javax/naming/directory/ModificationItem.h | 41 + .../naming/directory/NoSuchAttributeException.h | 36 + .../naming/directory/SchemaViolationException.h | 36 + libjava/javax/naming/directory/SearchControls.h | 61 + libjava/javax/naming/directory/SearchResult.h | 43 + libjava/javax/naming/event/EventContext.h | 72 + libjava/javax/naming/event/EventDirContext.h | 108 + .../javax/naming/event/NamespaceChangeListener.h | 37 + libjava/javax/naming/event/NamingEvent.h | 54 + libjava/javax/naming/event/NamingExceptionEvent.h | 42 + libjava/javax/naming/event/NamingListener.h | 33 + libjava/javax/naming/event/ObjectChangeListener.h | 35 + libjava/javax/naming/ldap/Control.h | 38 + libjava/javax/naming/ldap/ControlFactory.h | 37 + libjava/javax/naming/ldap/ExtendedRequest.h | 37 + libjava/javax/naming/ldap/ExtendedResponse.h | 35 + libjava/javax/naming/ldap/HasControls.h | 35 + libjava/javax/naming/ldap/InitialLdapContext.h | 49 + libjava/javax/naming/ldap/LdapContext.h | 110 + libjava/javax/naming/ldap/LdapReferralException.h | 41 + libjava/javax/naming/ldap/StartTlsRequest.h | 42 + libjava/javax/naming/ldap/StartTlsResponse.h | 55 + .../javax/naming/ldap/UnsolicitedNotification.h | 40 + .../naming/ldap/UnsolicitedNotificationEvent.h | 40 + .../naming/ldap/UnsolicitedNotificationListener.h | 38 + libjava/javax/naming/spi/DirObjectFactory.h | 39 + libjava/javax/naming/spi/DirStateFactory$Result.h | 42 + libjava/javax/naming/spi/DirStateFactory.h | 40 + libjava/javax/naming/spi/DirectoryManager.h | 49 + libjava/javax/naming/spi/InitialContextFactory.h | 33 + .../naming/spi/InitialContextFactoryBuilder.h | 33 + libjava/javax/naming/spi/NamingManager.h | 59 + libjava/javax/naming/spi/NamingManager.java | 654 - libjava/javax/naming/spi/ObjectFactory.h | 34 + libjava/javax/naming/spi/ObjectFactoryBuilder.h | 33 + libjava/javax/naming/spi/ResolveResult.h | 48 + libjava/javax/naming/spi/Resolver.h | 35 + libjava/javax/naming/spi/StateFactory.h | 34 + libjava/javax/net/ServerSocketFactory.h | 43 + libjava/javax/net/SocketFactory.h | 44 + libjava/javax/net/VanillaServerSocketFactory.h | 42 + libjava/javax/net/VanillaSocketFactory.h | 43 + .../javax/net/ssl/CertPathTrustManagerParameters.h | 46 + libjava/javax/net/ssl/HandshakeCompletedEvent.h | 66 + libjava/javax/net/ssl/HandshakeCompletedListener.h | 33 + libjava/javax/net/ssl/HostnameVerifier.h | 33 + libjava/javax/net/ssl/HttpsURLConnection.h | 73 + libjava/javax/net/ssl/KeyManager.h | 31 + libjava/javax/net/ssl/KeyManagerFactory$1.h | 34 + libjava/javax/net/ssl/KeyManagerFactory.h | 62 + libjava/javax/net/ssl/KeyManagerFactorySpi.h | 48 + libjava/javax/net/ssl/KeyStoreBuilderParameters.h | 32 + libjava/javax/net/ssl/ManagerFactoryParameters.h | 31 + libjava/javax/net/ssl/SSLContext.h | 68 + libjava/javax/net/ssl/SSLContextSpi.h | 56 + libjava/javax/net/ssl/SSLEngine.h | 80 + .../net/ssl/SSLEngineResult$HandshakeStatus.h | 44 + libjava/javax/net/ssl/SSLEngineResult$Status.h | 43 + libjava/javax/net/ssl/SSLEngineResult.h | 45 + libjava/javax/net/ssl/SSLException.h | 37 + libjava/javax/net/ssl/SSLHandshakeException.h | 32 + libjava/javax/net/ssl/SSLKeyException.h | 32 + libjava/javax/net/ssl/SSLPeerUnverifiedException.h | 32 + libjava/javax/net/ssl/SSLPermission.h | 36 + libjava/javax/net/ssl/SSLProtocolException.h | 32 + libjava/javax/net/ssl/SSLServerSocket.h | 59 + libjava/javax/net/ssl/SSLServerSocketFactory.h | 43 + libjava/javax/net/ssl/SSLSession.h | 73 + libjava/javax/net/ssl/SSLSessionBindingEvent.h | 39 + libjava/javax/net/ssl/SSLSessionBindingListener.h | 34 + libjava/javax/net/ssl/SSLSessionContext.h | 40 + libjava/javax/net/ssl/SSLSocket.h | 66 + libjava/javax/net/ssl/SSLSocketFactory.h | 50 + libjava/javax/net/ssl/TrivialHostnameVerifier.h | 35 + libjava/javax/net/ssl/TrustManager.h | 31 + libjava/javax/net/ssl/TrustManagerFactory$1.h | 34 + libjava/javax/net/ssl/TrustManagerFactory.h | 62 + libjava/javax/net/ssl/TrustManagerFactorySpi.h | 48 + libjava/javax/net/ssl/X509ExtendedKeyManager.h | 60 + libjava/javax/net/ssl/X509KeyManager.h | 55 + libjava/javax/net/ssl/X509TrustManager.h | 46 + libjava/javax/print/AttributeException.h | 36 + libjava/javax/print/CancelablePrintJob.h | 48 + libjava/javax/print/Doc.h | 38 + libjava/javax/print/DocFlavor$BYTE_ARRAY.h | 51 + libjava/javax/print/DocFlavor$CHAR_ARRAY.h | 34 + libjava/javax/print/DocFlavor$INPUT_STREAM.h | 51 + libjava/javax/print/DocFlavor$READER.h | 34 + libjava/javax/print/DocFlavor$SERVICE_FORMATTED.h | 35 + libjava/javax/print/DocFlavor$STRING.h | 34 + libjava/javax/print/DocFlavor$URL.h | 51 + libjava/javax/print/DocFlavor.h | 52 + libjava/javax/print/DocPrintJob.h | 47 + libjava/javax/print/FlavorException.h | 32 + libjava/javax/print/MultiDoc.h | 31 + libjava/javax/print/MultiDocPrintJob.h | 49 + libjava/javax/print/MultiDocPrintService.h | 61 + libjava/javax/print/PrintException.h | 32 + libjava/javax/print/PrintService.h | 61 + libjava/javax/print/PrintServiceLookup.h | 62 + libjava/javax/print/ServiceUI.h | 45 + libjava/javax/print/ServiceUIFactory.h | 41 + libjava/javax/print/SimpleDoc.h | 46 + libjava/javax/print/StreamPrintService.h | 69 + libjava/javax/print/StreamPrintServiceFactory.h | 37 + libjava/javax/print/URIException.h | 40 + libjava/javax/print/attribute/Attribute.h | 33 + libjava/javax/print/attribute/AttributeSet.h | 47 + ...ttributeSetUtilities$SynchronizedAttributeSet.h | 52 + ...ibuteSetUtilities$SynchronizedDocAttributeSet.h | 33 + ...SetUtilities$SynchronizedPrintJobAttributeSet.h | 33 + ...tilities$SynchronizedPrintRequestAttributeSet.h | 33 + ...tilities$SynchronizedPrintServiceAttributeSet.h | 33 + ...ttributeSetUtilities$UnmodifiableAttributeSet.h | 52 + ...ibuteSetUtilities$UnmodifiableDocAttributeSet.h | 33 + ...SetUtilities$UnmodifiablePrintJobAttributeSet.h | 33 + ...tilities$UnmodifiablePrintRequestAttributeSet.h | 33 + ...tilities$UnmodifiablePrintServiceAttributeSet.h | 33 + .../javax/print/attribute/AttributeSetUtilities.h | 51 + libjava/javax/print/attribute/DateTimeSyntax.h | 41 + libjava/javax/print/attribute/DocAttribute.h | 33 + libjava/javax/print/attribute/DocAttributeSet.h | 46 + libjava/javax/print/attribute/EnumSyntax.h | 48 + libjava/javax/print/attribute/HashAttributeSet.h | 71 + .../javax/print/attribute/HashDocAttributeSet.h | 42 + .../print/attribute/HashPrintJobAttributeSet.h | 42 + .../print/attribute/HashPrintRequestAttributeSet.h | 42 + .../print/attribute/HashPrintServiceAttributeSet.h | 42 + libjava/javax/print/attribute/IntegerSyntax.h | 41 + libjava/javax/print/attribute/PrintJobAttribute.h | 33 + .../javax/print/attribute/PrintJobAttributeSet.h | 46 + .../javax/print/attribute/PrintRequestAttribute.h | 33 + .../print/attribute/PrintRequestAttributeSet.h | 46 + .../javax/print/attribute/PrintServiceAttribute.h | 33 + .../print/attribute/PrintServiceAttributeSet.h | 46 + libjava/javax/print/attribute/ResolutionSyntax.h | 57 + .../javax/print/attribute/SetOfIntegerSyntax$1.h | 34 + libjava/javax/print/attribute/SetOfIntegerSyntax.h | 62 + libjava/javax/print/attribute/Size2DSyntax.h | 55 + .../print/attribute/SupportedValuesAttribute.h | 33 + libjava/javax/print/attribute/TextSyntax.h | 43 + libjava/javax/print/attribute/URISyntax.h | 48 + .../print/attribute/UnmodifiableSetException.h | 33 + .../javax/print/attribute/standard/Chromaticity.h | 53 + .../print/attribute/standard/ColorSupported.h | 53 + .../javax/print/attribute/standard/Compression.h | 55 + libjava/javax/print/attribute/standard/Copies.h | 41 + .../print/attribute/standard/CopiesSupported.h | 42 + .../print/attribute/standard/DateTimeAtCompleted.h | 41 + .../print/attribute/standard/DateTimeAtCreation.h | 41 + .../attribute/standard/DateTimeAtProcessing.h | 41 + .../javax/print/attribute/standard/Destination.h | 48 + .../javax/print/attribute/standard/DocumentName.h | 41 + libjava/javax/print/attribute/standard/Fidelity.h | 53 + .../javax/print/attribute/standard/Finishings.h | 70 + .../javax/print/attribute/standard/JobHoldUntil.h | 41 + .../print/attribute/standard/JobImpressions.h | 41 + .../attribute/standard/JobImpressionsCompleted.h | 41 + .../attribute/standard/JobImpressionsSupported.h | 41 + .../javax/print/attribute/standard/JobKOctets.h | 41 + .../print/attribute/standard/JobKOctetsProcessed.h | 41 + .../print/attribute/standard/JobKOctetsSupported.h | 41 + .../print/attribute/standard/JobMediaSheets.h | 41 + .../attribute/standard/JobMediaSheetsCompleted.h | 41 + .../attribute/standard/JobMediaSheetsSupported.h | 41 + .../attribute/standard/JobMessageFromOperator.h | 41 + libjava/javax/print/attribute/standard/JobName.h | 41 + .../attribute/standard/JobOriginatingUserName.h | 41 + .../javax/print/attribute/standard/JobPriority.h | 41 + .../attribute/standard/JobPrioritySupported.h | 41 + libjava/javax/print/attribute/standard/JobSheets.h | 53 + libjava/javax/print/attribute/standard/JobState.h | 59 + .../print/attribute/standard/JobStateReason.h | 80 + .../print/attribute/standard/JobStateReasons.h | 46 + libjava/javax/print/attribute/standard/Media.h | 42 + libjava/javax/print/attribute/standard/MediaName.h | 51 + .../print/attribute/standard/MediaPrintableArea.h | 60 + .../attribute/standard/MediaSize$Engineering.h | 41 + .../javax/print/attribute/standard/MediaSize$ISO.h | 63 + .../javax/print/attribute/standard/MediaSize$JIS.h | 71 + .../javax/print/attribute/standard/MediaSize$NA.h | 52 + .../print/attribute/standard/MediaSize$Other.h | 47 + libjava/javax/print/attribute/standard/MediaSize.h | 50 + .../javax/print/attribute/standard/MediaSizeName.h | 120 + libjava/javax/print/attribute/standard/MediaTray.h | 55 + .../attribute/standard/MultipleDocumentHandling.h | 55 + .../print/attribute/standard/NumberOfDocuments.h | 41 + .../attribute/standard/NumberOfInterveningJobs.h | 41 + libjava/javax/print/attribute/standard/NumberUp.h | 41 + .../print/attribute/standard/NumberUpSupported.h | 45 + .../attribute/standard/OrientationRequested.h | 56 + .../attribute/standard/OutputDeviceAssigned.h | 41 + .../attribute/standard/PDLOverrideSupported.h | 53 + .../javax/print/attribute/standard/PageRanges.h | 46 + .../print/attribute/standard/PagesPerMinute.h | 41 + .../print/attribute/standard/PagesPerMinuteColor.h | 41 + .../attribute/standard/PresentationDirection.h | 58 + .../javax/print/attribute/standard/PrintQuality.h | 55 + .../javax/print/attribute/standard/PrinterInfo.h | 41 + .../attribute/standard/PrinterIsAcceptingJobs.h | 53 + .../print/attribute/standard/PrinterLocation.h | 41 + .../print/attribute/standard/PrinterMakeAndModel.h | 41 + .../standard/PrinterMessageFromOperator.h | 41 + .../print/attribute/standard/PrinterMoreInfo.h | 48 + .../standard/PrinterMoreInfoManufacturer.h | 48 + .../javax/print/attribute/standard/PrinterName.h | 41 + .../print/attribute/standard/PrinterResolution.h | 41 + .../javax/print/attribute/standard/PrinterState.h | 55 + .../print/attribute/standard/PrinterStateReason.h | 84 + .../print/attribute/standard/PrinterStateReasons.h | 48 + .../javax/print/attribute/standard/PrinterURI.h | 48 + .../print/attribute/standard/QueuedJobCount.h | 41 + .../standard/ReferenceUriSchemesSupported.h | 59 + .../print/attribute/standard/RequestingUserName.h | 41 + libjava/javax/print/attribute/standard/Severity.h | 54 + .../javax/print/attribute/standard/SheetCollate.h | 53 + libjava/javax/print/attribute/standard/Sides.h | 56 + libjava/javax/print/event/PrintEvent.h | 33 + libjava/javax/print/event/PrintJobAdapter.h | 39 + libjava/javax/print/event/PrintJobAttributeEvent.h | 43 + .../javax/print/event/PrintJobAttributeListener.h | 33 + libjava/javax/print/event/PrintJobEvent.h | 47 + libjava/javax/print/event/PrintJobListener.h | 38 + .../javax/print/event/PrintServiceAttributeEvent.h | 42 + .../print/event/PrintServiceAttributeListener.h | 33 + libjava/javax/rmi/CORBA/ClassDesc.h | 38 + .../javax/rmi/CORBA/PortableRemoteObjectDelegate.h | 43 + libjava/javax/rmi/CORBA/Stub.h | 57 + libjava/javax/rmi/CORBA/StubDelegate.h | 48 + libjava/javax/rmi/CORBA/Tie.h | 62 + libjava/javax/rmi/CORBA/Util.h | 80 + libjava/javax/rmi/CORBA/UtilDelegate.h | 75 + libjava/javax/rmi/CORBA/ValueHandler.h | 55 + libjava/javax/rmi/CORBA/ValueHandlerMultiFormat.h | 57 + libjava/javax/rmi/PortableRemoteObject.h | 49 + libjava/javax/rmi/ssl/SslRMIClientSocketFactory.h | 60 + libjava/javax/rmi/ssl/SslRMIServerSocketFactory.h | 64 + libjava/javax/security/auth/AuthPermission.h | 33 + .../javax/security/auth/DestroyFailedException.h | 33 + libjava/javax/security/auth/Destroyable.h | 33 + libjava/javax/security/auth/Policy.h | 49 + .../auth/PrivateCredentialPermission$CredOwner.h | 41 + .../security/auth/PrivateCredentialPermission.h | 55 + .../javax/security/auth/RefreshFailedException.h | 33 + libjava/javax/security/auth/Refreshable.h | 33 + libjava/javax/security/auth/Subject$SecureSet.h | 56 + libjava/javax/security/auth/Subject.h | 66 + .../javax/security/auth/SubjectDomainCombiner.h | 47 + libjava/javax/security/auth/callback/Callback.h | 34 + .../javax/security/auth/callback/CallbackHandler.h | 38 + .../javax/security/auth/callback/ChoiceCallback.h | 53 + .../security/auth/callback/ConfirmationCallback.h | 72 + .../security/auth/callback/LanguageCallback.h | 40 + .../javax/security/auth/callback/NameCallback.h | 47 + .../security/auth/callback/PasswordCallback.h | 48 + .../security/auth/callback/TextInputCallback.h | 47 + .../security/auth/callback/TextOutputCallback.h | 47 + .../auth/callback/UnsupportedCallbackException.h | 41 + .../auth/kerberos/DelegationPermission$1.h | 52 + .../security/auth/kerberos/DelegationPermission.h | 49 + libjava/javax/security/auth/kerberos/KerberosKey.h | 58 + .../security/auth/kerberos/KerberosPrincipal.h | 56 + .../javax/security/auth/kerberos/KerberosTicket.h | 96 + libjava/javax/security/auth/kerberos/KeyImpl.h | 44 + .../security/auth/kerberos/ServicePermission$1.h | 52 + .../security/auth/kerberos/ServicePermission.h | 54 + .../javax/security/auth/login/AccountException.h | 39 + .../security/auth/login/AccountExpiredException.h | 39 + .../security/auth/login/AccountLockedException.h | 39 + .../security/auth/login/AccountNotFoundException.h | 39 + .../AppConfigurationEntry$LoginModuleControlFlag.h | 40 + .../security/auth/login/AppConfigurationEntry.h | 45 + .../javax/security/auth/login/Configuration$1.h | 37 + libjava/javax/security/auth/login/Configuration.h | 48 + .../security/auth/login/CredentialException.h | 39 + .../auth/login/CredentialExpiredException.h | 39 + .../auth/login/CredentialNotFoundException.h | 39 + .../security/auth/login/FailedLoginException.h | 39 + libjava/javax/security/auth/login/LoginContext.h | 66 + libjava/javax/security/auth/login/LoginException.h | 39 + .../javax/security/auth/login/NullConfiguration.h | 41 + libjava/javax/security/auth/spi/LoginModule.h | 44 + libjava/javax/security/auth/x500/X500Principal.h | 92 + .../security/auth/x500/X500PrivateCredential.h | 57 + libjava/javax/security/cert/Certificate.h | 48 + .../security/cert/CertificateEncodingException.h | 33 + libjava/javax/security/cert/CertificateException.h | 33 + .../security/cert/CertificateExpiredException.h | 33 + .../cert/CertificateNotYetValidException.h | 33 + .../security/cert/CertificateParsingException.h | 33 + libjava/javax/security/cert/X509CertBridge.h | 70 + libjava/javax/security/cert/X509Certificate.h | 58 + .../javax/security/sasl/AuthenticationException.h | 34 + libjava/javax/security/sasl/AuthorizeCallback.h | 45 + libjava/javax/security/sasl/RealmCallback.h | 33 + libjava/javax/security/sasl/RealmChoiceCallback.h | 34 + libjava/javax/security/sasl/Sasl.h | 64 + libjava/javax/security/sasl/SaslClient.h | 41 + libjava/javax/security/sasl/SaslClientFactory.h | 43 + libjava/javax/security/sasl/SaslException.h | 43 + libjava/javax/security/sasl/SaslServer.h | 41 + libjava/javax/security/sasl/SaslServerFactory.h | 43 + libjava/javax/sound/midi/ControllerEventListener.h | 33 + libjava/javax/sound/midi/Instrument.h | 39 + .../javax/sound/midi/InvalidMidiDataException.h | 36 + libjava/javax/sound/midi/MetaEventListener.h | 33 + libjava/javax/sound/midi/MetaMessage.h | 45 + libjava/javax/sound/midi/MidiChannel.h | 57 + libjava/javax/sound/midi/MidiDevice$Info.h | 46 + libjava/javax/sound/midi/MidiDevice.h | 43 + libjava/javax/sound/midi/MidiEvent.h | 40 + libjava/javax/sound/midi/MidiFileFormat.h | 45 + libjava/javax/sound/midi/MidiMessage.h | 44 + libjava/javax/sound/midi/MidiSystem.h | 71 + .../javax/sound/midi/MidiUnavailableException.h | 36 + libjava/javax/sound/midi/Patch.h | 38 + libjava/javax/sound/midi/Receiver.h | 34 + libjava/javax/sound/midi/Sequence.h | 56 + libjava/javax/sound/midi/Sequencer$SyncMode.h | 43 + libjava/javax/sound/midi/Sequencer.h | 86 + libjava/javax/sound/midi/ShortMessage.h | 69 + libjava/javax/sound/midi/Soundbank.h | 43 + libjava/javax/sound/midi/SoundbankResource.h | 43 + libjava/javax/sound/midi/Synthesizer.h | 65 + libjava/javax/sound/midi/SysexMessage.h | 43 + libjava/javax/sound/midi/Track.h | 44 + libjava/javax/sound/midi/Transmitter.h | 35 + libjava/javax/sound/midi/VoiceStatus.h | 38 + libjava/javax/sound/midi/spi/MidiDeviceProvider.h | 42 + libjava/javax/sound/midi/spi/MidiFileReader.h | 50 + libjava/javax/sound/midi/spi/MidiFileWriter.h | 44 + libjava/javax/sound/midi/spi/SoundbankReader.h | 46 + libjava/javax/sound/sampled/AudioFileFormat$Type.h | 45 + libjava/javax/sound/sampled/AudioFileFormat.h | 52 + libjava/javax/sound/sampled/AudioFormat$Encoding.h | 42 + libjava/javax/sound/sampled/AudioFormat.h | 57 + .../sampled/AudioInputStream$TargetInputStream.h | 41 + libjava/javax/sound/sampled/AudioInputStream.h | 57 + libjava/javax/sound/sampled/AudioPermission.h | 36 + libjava/javax/sound/sampled/AudioSystem.h | 88 + libjava/javax/sound/sampled/BooleanControl$Type.h | 35 + libjava/javax/sound/sampled/BooleanControl.h | 45 + libjava/javax/sound/sampled/Clip.h | 70 + libjava/javax/sound/sampled/CompoundControl$Type.h | 33 + libjava/javax/sound/sampled/CompoundControl.h | 42 + libjava/javax/sound/sampled/Control$Type.h | 39 + libjava/javax/sound/sampled/Control.h | 39 + libjava/javax/sound/sampled/DataLine$Info.h | 49 + libjava/javax/sound/sampled/DataLine.h | 60 + libjava/javax/sound/sampled/EnumControl$Type.h | 34 + libjava/javax/sound/sampled/EnumControl.h | 44 + libjava/javax/sound/sampled/FloatControl$Type.h | 42 + libjava/javax/sound/sampled/FloatControl.h | 58 + libjava/javax/sound/sampled/Line$Info.h | 38 + libjava/javax/sound/sampled/Line.h | 46 + libjava/javax/sound/sampled/LineEvent$Type.h | 43 + libjava/javax/sound/sampled/LineEvent.h | 46 + libjava/javax/sound/sampled/LineListener.h | 33 + .../javax/sound/sampled/LineUnavailableException.h | 36 + libjava/javax/sound/sampled/Mixer$Info.h | 46 + libjava/javax/sound/sampled/Mixer.h | 61 + libjava/javax/sound/sampled/Port$Info.h | 49 + libjava/javax/sound/sampled/Port.h | 46 + libjava/javax/sound/sampled/ReverbType.h | 50 + libjava/javax/sound/sampled/SourceDataLine.h | 63 + libjava/javax/sound/sampled/TargetDataLine.h | 63 + .../sound/sampled/UnsupportedAudioFileException.h | 36 + libjava/javax/sound/sampled/spi/AudioFileReader.h | 50 + libjava/javax/sound/sampled/spi/AudioFileWriter.h | 45 + .../sound/sampled/spi/FormatConversionProvider.h | 50 + libjava/javax/sound/sampled/spi/MixerProvider.h | 42 + libjava/javax/sql/ConnectionEvent.h | 43 + libjava/javax/sql/ConnectionEventListener.h | 31 + libjava/javax/sql/ConnectionPoolDataSource.h | 35 + libjava/javax/sql/DataSource.h | 41 + libjava/javax/sql/PooledConnection.h | 40 + libjava/javax/sql/RowSet.h | 252 + libjava/javax/sql/RowSetEvent.h | 30 + libjava/javax/sql/RowSetInternal.h | 44 + libjava/javax/sql/RowSetListener.h | 32 + libjava/javax/sql/RowSetMetaData.h | 66 + libjava/javax/sql/RowSetReader.h | 30 + libjava/javax/sql/RowSetWriter.h | 30 + libjava/javax/sql/XAConnection.h | 48 + libjava/javax/sql/XADataSource.h | 35 + libjava/javax/swing/AbstractAction.h | 77 + libjava/javax/swing/AbstractButton$1.h | 42 + libjava/javax/swing/AbstractButton$2.h | 42 + libjava/javax/swing/AbstractButton$3.h | 45 + .../AbstractButton$AccessibleAbstractButton.h | 84 + .../swing/AbstractButton$ButtonChangeListener.h | 41 + libjava/javax/swing/AbstractButton$EventHandler.h | 52 + libjava/javax/swing/AbstractButton.h | 227 + libjava/javax/swing/AbstractCellEditor.h | 55 + libjava/javax/swing/AbstractListModel.h | 52 + libjava/javax/swing/AbstractSpinnerModel.h | 53 + libjava/javax/swing/Action.h | 57 + libjava/javax/swing/ActionMap.h | 46 + libjava/javax/swing/BorderFactory.h | 68 + libjava/javax/swing/BoundedRangeModel.h | 45 + libjava/javax/swing/Box$AccessibleBox.h | 41 + .../javax/swing/Box$Filler$AccessibleBoxFiller.h | 41 + libjava/javax/swing/Box$Filler.h | 51 + libjava/javax/swing/Box.h | 55 + libjava/javax/swing/BoxLayout.h | 76 + libjava/javax/swing/ButtonGroup.h | 48 + libjava/javax/swing/ButtonModel.h | 68 + libjava/javax/swing/CellEditor.h | 39 + .../CellRendererPane$AccessibleCellRendererPane.h | 41 + libjava/javax/swing/CellRendererPane.h | 58 + libjava/javax/swing/ComboBoxEditor.h | 45 + libjava/javax/swing/ComboBoxModel.h | 38 + .../swing/CompatibilityFocusTraversalPolicy.h | 53 + libjava/javax/swing/ComponentInputMap.h | 40 + libjava/javax/swing/DebugGraphics.h | 132 + libjava/javax/swing/DefaultBoundedRangeModel.h | 71 + libjava/javax/swing/DefaultButtonModel.h | 99 + .../javax/swing/DefaultCellEditor$EditorDelegate.h | 61 + .../swing/DefaultCellEditor$JCheckBoxDelegate.h | 39 + .../swing/DefaultCellEditor$JComboBoxDelegate.h | 40 + .../swing/DefaultCellEditor$JTextFieldDelegate.h | 39 + libjava/javax/swing/DefaultCellEditor.h | 62 + libjava/javax/swing/DefaultComboBoxModel.h | 48 + libjava/javax/swing/DefaultDesktopManager.h | 73 + libjava/javax/swing/DefaultFocusManager.h | 52 + .../swing/DefaultListCellRenderer$UIResource.h | 29 + libjava/javax/swing/DefaultListCellRenderer.h | 63 + libjava/javax/swing/DefaultListModel.h | 67 + libjava/javax/swing/DefaultListSelectionModel.h | 86 + libjava/javax/swing/DefaultSingleSelectionModel.h | 56 + libjava/javax/swing/DesktopManager.h | 45 + .../swing/FocusManager$WrappingFocusManager.h | 93 + libjava/javax/swing/FocusManager.h | 34 + libjava/javax/swing/GrayFilter.h | 42 + libjava/javax/swing/Icon.h | 39 + libjava/javax/swing/ImageIcon$1.h | 30 + .../javax/swing/ImageIcon$AccessibleImageIcon.h | 53 + libjava/javax/swing/ImageIcon.h | 90 + libjava/javax/swing/InputMap.h | 46 + libjava/javax/swing/InputVerifier.h | 32 + .../swing/InternalFrameFocusTraversalPolicy.h | 38 + libjava/javax/swing/JApplet$AccessibleJApplet.h | 33 + libjava/javax/swing/JApplet.h | 88 + libjava/javax/swing/JButton$AccessibleJButton.h | 39 + libjava/javax/swing/JButton.h | 56 + .../javax/swing/JCheckBox$AccessibleJCheckBox.h | 39 + libjava/javax/swing/JCheckBox.h | 57 + ...JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.h | 41 + libjava/javax/swing/JCheckBoxMenuItem.h | 58 + .../swing/JColorChooser$AccessibleJColorChooser.h | 41 + .../swing/JColorChooser$DefaultOKCancelListener.h | 44 + .../swing/JColorChooser$DefaultResetListener.h | 46 + libjava/javax/swing/JColorChooser.h | 102 + libjava/javax/swing/JComboBox$1.h | 42 + .../javax/swing/JComboBox$AccessibleJComboBox.h | 57 + .../swing/JComboBox$DefaultKeySelectionManager.h | 36 + .../javax/swing/JComboBox$KeySelectionManager.h | 30 + libjava/javax/swing/JComboBox.h | 164 + libjava/javax/swing/JComponent$1.h | 35 + ...cessibleJComponent$AccessibleContainerHandler.h | 46 + ...t$AccessibleJComponent$AccessibleFocusHandler.h | 46 + .../javax/swing/JComponent$AccessibleJComponent.h | 79 + .../javax/swing/JComponent$ActionListenerProxy.h | 45 + libjava/javax/swing/JComponent.h | 297 + .../swing/JDesktopPane$AccessibleJDesktopPane.h | 41 + libjava/javax/swing/JDesktopPane.h | 82 + libjava/javax/swing/JDialog$AccessibleJDialog.h | 33 + libjava/javax/swing/JDialog.h | 112 + libjava/javax/swing/JEditorPane$1.h | 40 + libjava/javax/swing/JEditorPane$2.h | 35 + .../swing/JEditorPane$AccessibleJEditorPane.h | 40 + .../swing/JEditorPane$AccessibleJEditorPaneHTML.h | 39 + libjava/javax/swing/JEditorPane$EditorKitMapping.h | 32 + ...EditorPaneAccessibleHypertextSupport$HTMLLink.h | 46 + ...torPane$JEditorPaneAccessibleHypertextSupport.h | 42 + libjava/javax/swing/JEditorPane$PageLoader.h | 56 + libjava/javax/swing/JEditorPane$PageStream.h | 47 + libjava/javax/swing/JEditorPane$PlainEditorKit.h | 37 + libjava/javax/swing/JEditorPane.h | 113 + libjava/javax/swing/JFileChooser$1.h | 45 + .../swing/JFileChooser$AccessibleJFileChooser.h | 39 + libjava/javax/swing/JFileChooser.h | 197 + .../swing/JFormattedTextField$AbstractFormatter.h | 57 + .../JFormattedTextField$AbstractFormatterFactory.h | 32 + libjava/javax/swing/JFormattedTextField.h | 98 + libjava/javax/swing/JFrame$AccessibleJFrame.h | 33 + libjava/javax/swing/JFrame.h | 105 + .../JInternalFrame$AccessibleJInternalFrame.h | 48 + ...rnalFrame$JDesktopIcon$AccessibleJDesktopIcon.h | 47 + libjava/javax/swing/JInternalFrame$JDesktopIcon.h | 52 + libjava/javax/swing/JInternalFrame.h | 192 + libjava/javax/swing/JLabel$AccessibleJLabel.h | 66 + libjava/javax/swing/JLabel.h | 108 + .../swing/JLayeredPane$AccessibleJLayeredPane.h | 39 + libjava/javax/swing/JLayeredPane.h | 89 + libjava/javax/swing/JList$1.h | 40 + libjava/javax/swing/JList$2.h | 38 + libjava/javax/swing/JList$3.h | 38 + .../JList$AccessibleJList$AccessibleJListChild.h | 101 + libjava/javax/swing/JList$AccessibleJList.h | 72 + libjava/javax/swing/JList$ListListener.h | 43 + libjava/javax/swing/JList.h | 162 + libjava/javax/swing/JMenu$AccessibleJMenu.h | 53 + libjava/javax/swing/JMenu$ActionChangedListener.h | 44 + libjava/javax/swing/JMenu$MenuChangeListener.h | 42 + libjava/javax/swing/JMenu$WinListener.h | 47 + libjava/javax/swing/JMenu.h | 141 + libjava/javax/swing/JMenuBar$AccessibleJMenuBar.h | 51 + libjava/javax/swing/JMenuBar.h | 100 + libjava/javax/swing/JMenuItem$1.h | 42 + .../javax/swing/JMenuItem$AccessibleJMenuItem.h | 50 + libjava/javax/swing/JMenuItem.h | 120 + libjava/javax/swing/JOptionPane$1.h | 30 + libjava/javax/swing/JOptionPane$2.h | 30 + .../swing/JOptionPane$AccessibleJOptionPane.h | 41 + .../javax/swing/JOptionPane$ValuePropertyHandler.h | 42 + libjava/javax/swing/JOptionPane.h | 167 + libjava/javax/swing/JPanel$AccessibleJPanel.h | 39 + libjava/javax/swing/JPanel.h | 55 + .../JPasswordField$AccessibleJPasswordField.h | 41 + libjava/javax/swing/JPasswordField.h | 62 + libjava/javax/swing/JPopupMenu$1.h | 35 + libjava/javax/swing/JPopupMenu$2.h | 37 + .../javax/swing/JPopupMenu$AccessibleJPopupMenu.h | 41 + .../javax/swing/JPopupMenu$ActionChangeListener.h | 42 + libjava/javax/swing/JPopupMenu$Separator.h | 30 + libjava/javax/swing/JPopupMenu.h | 148 + libjava/javax/swing/JProgressBar$1.h | 39 + .../swing/JProgressBar$AccessibleJProgressBar.h | 49 + libjava/javax/swing/JProgressBar.h | 107 + .../swing/JRadioButton$AccessibleJRadioButton.h | 41 + libjava/javax/swing/JRadioButton.h | 51 + ...ButtonMenuItem$AccessibleJRadioButtonMenuItem.h | 41 + libjava/javax/swing/JRadioButtonMenuItem.h | 52 + .../javax/swing/JRootPane$AccessibleJRootPane.h | 41 + libjava/javax/swing/JRootPane$RootLayout.h | 60 + libjava/javax/swing/JRootPane.h | 103 + .../javax/swing/JScrollBar$AccessibleJScrollBar.h | 49 + .../swing/JScrollBar$ScrollBarChangeListener.h | 39 + libjava/javax/swing/JScrollBar.h | 107 + .../swing/JScrollPane$AccessibleJScrollPane.h | 50 + libjava/javax/swing/JScrollPane$ScrollBar.h | 37 + libjava/javax/swing/JScrollPane.h | 116 + .../javax/swing/JSeparator$AccessibleJSeparator.h | 41 + libjava/javax/swing/JSeparator.h | 52 + libjava/javax/swing/JSlider$1.h | 39 + libjava/javax/swing/JSlider$AccessibleJSlider.h | 49 + libjava/javax/swing/JSlider$LabelUIResource.h | 32 + libjava/javax/swing/JSlider.h | 120 + libjava/javax/swing/JSpinner$DateEditor.h | 44 + libjava/javax/swing/JSpinner$DateEditorFormatter.h | 30 + libjava/javax/swing/JSpinner$DefaultEditor.h | 66 + libjava/javax/swing/JSpinner$ListEditor.h | 32 + libjava/javax/swing/JSpinner$ModelListener.h | 38 + libjava/javax/swing/JSpinner$NumberEditor.h | 44 + .../javax/swing/JSpinner$NumberEditorFormatter.h | 30 + libjava/javax/swing/JSpinner.h | 66 + .../javax/swing/JSplitPane$AccessibleJSplitPane.h | 49 + libjava/javax/swing/JSplitPane.h | 124 + .../swing/JTabbedPane$AccessibleJTabbedPane.h | 65 + libjava/javax/swing/JTabbedPane$ModelListener.h | 41 + libjava/javax/swing/JTabbedPane$Page.h | 91 + libjava/javax/swing/JTabbedPane.h | 148 + .../JTable$AccessibleJTable$AccessibleJTableCell.h | 97 + ...e$AccessibleJTable$AccessibleJTableHeaderCell.h | 101 + ...$AccessibleJTable$AccessibleJTableModelChange.h | 45 + ...JTable$AccessibleJTable$AccessibleTableHeader.h | 70 + libjava/javax/swing/JTable$AccessibleJTable.h | 121 + libjava/javax/swing/JTable$BooleanCellRenderer.h | 46 + libjava/javax/swing/JTable$DateCellRenderer.h | 42 + libjava/javax/swing/JTable$DoubleCellRenderer.h | 41 + libjava/javax/swing/JTable$FloatCellRenderer.h | 41 + libjava/javax/swing/JTable$IconCellRenderer.h | 42 + libjava/javax/swing/JTable$NumberCellRenderer.h | 33 + .../JTable$TableColumnPropertyChangeHandler.h | 42 + libjava/javax/swing/JTable$TableTextField.h | 32 + libjava/javax/swing/JTable.h | 294 + .../javax/swing/JTextArea$AccessibleJTextArea.h | 39 + libjava/javax/swing/JTextArea.h | 90 + libjava/javax/swing/JTextField$1.h | 41 + libjava/javax/swing/JTextField$2.h | 42 + .../javax/swing/JTextField$AccessibleJTextField.h | 41 + libjava/javax/swing/JTextField.h | 108 + libjava/javax/swing/JTextPane.h | 73 + .../swing/JToggleButton$AccessibleJToggleButton.h | 51 + .../javax/swing/JToggleButton$ToggleButtonModel.h | 35 + libjava/javax/swing/JToggleButton.h | 51 + libjava/javax/swing/JToolBar$AccessibleJToolBar.h | 43 + .../javax/swing/JToolBar$DefaultToolBarLayout.h | 48 + libjava/javax/swing/JToolBar$Separator.h | 46 + libjava/javax/swing/JToolBar.h | 95 + libjava/javax/swing/JToolTip$AccessibleJToolTip.h | 42 + libjava/javax/swing/JToolTip.h | 57 + .../JTree$AccessibleJTree$AccessibleJTreeNode.h | 140 + libjava/javax/swing/JTree$AccessibleJTree.h | 74 + libjava/javax/swing/JTree$DynamicUtilTreeNode.h | 47 + libjava/javax/swing/JTree$EmptySelectionModel.h | 45 + libjava/javax/swing/JTree$TreeModelHandler.h | 42 + .../javax/swing/JTree$TreeSelectionRedirector.h | 41 + libjava/javax/swing/JTree.h | 270 + .../javax/swing/JViewport$AccessibleJViewport.h | 39 + libjava/javax/swing/JViewport$ViewListener.h | 47 + libjava/javax/swing/JViewport.h | 132 + libjava/javax/swing/JWindow$AccessibleJWindow.h | 33 + libjava/javax/swing/JWindow.h | 95 + libjava/javax/swing/KeyStroke.h | 50 + libjava/javax/swing/KeyboardManager.h | 65 + .../LayoutFocusTraversalPolicy$LayoutComparator.h | 30 + libjava/javax/swing/LayoutFocusTraversalPolicy.h | 32 + libjava/javax/swing/ListCellRenderer.h | 37 + libjava/javax/swing/ListModel.h | 36 + libjava/javax/swing/ListSelectionModel.h | 55 + libjava/javax/swing/LookAndFeel$1.h | 42 + libjava/javax/swing/LookAndFeel.h | 68 + libjava/javax/swing/MenuElement.h | 48 + libjava/javax/swing/MenuSelectionManager.h | 74 + libjava/javax/swing/MutableComboBoxModel.h | 42 + libjava/javax/swing/OverlayLayout.h | 66 + libjava/javax/swing/Popup$JWindowPopup.h | 44 + libjava/javax/swing/Popup$LightweightPopup.h | 49 + libjava/javax/swing/Popup.h | 40 + libjava/javax/swing/PopupFactory.h | 43 + libjava/javax/swing/ProgressMonitor$1.h | 45 + .../javax/swing/ProgressMonitor$TimerListener.h | 48 + libjava/javax/swing/ProgressMonitor.h | 78 + libjava/javax/swing/ProgressMonitorInputStream.h | 53 + libjava/javax/swing/Renderer.h | 37 + libjava/javax/swing/RepaintManager$RepaintWorker.h | 37 + .../swing/RepaintManager$RepaintWorkerEvent.h | 30 + libjava/javax/swing/RepaintManager.h | 80 + libjava/javax/swing/RootPaneContainer.h | 45 + libjava/javax/swing/ScrollPaneConstants.h | 49 + libjava/javax/swing/ScrollPaneLayout$UIResource.h | 29 + libjava/javax/swing/ScrollPaneLayout.h | 77 + libjava/javax/swing/Scrollable.h | 41 + libjava/javax/swing/SingleSelectionModel.h | 38 + libjava/javax/swing/SizeRequirements.h | 55 + libjava/javax/swing/SizeSequence.h | 45 + libjava/javax/swing/SortingFocusTraversalPolicy.h | 57 + libjava/javax/swing/SpinnerDateModel.h | 48 + libjava/javax/swing/SpinnerListModel.h | 44 + libjava/javax/swing/SpinnerModel.h | 38 + libjava/javax/swing/SpinnerNumberModel.h | 50 + libjava/javax/swing/Spring$1.h | 40 + libjava/javax/swing/Spring$2.h | 45 + libjava/javax/swing/Spring$3.h | 45 + libjava/javax/swing/Spring$AddSpring.h | 43 + libjava/javax/swing/Spring$MaxSpring.h | 43 + libjava/javax/swing/Spring$MinusSpring.h | 41 + libjava/javax/swing/Spring$SimpleSpring.h | 41 + libjava/javax/swing/Spring.h | 58 + libjava/javax/swing/SpringLayout$Constraints.h | 65 + .../javax/swing/SpringLayout$DeferredDimension.h | 34 + libjava/javax/swing/SpringLayout$DeferredHeight.h | 43 + libjava/javax/swing/SpringLayout$DeferredSpring.h | 52 + libjava/javax/swing/SpringLayout$DeferredWidth.h | 43 + libjava/javax/swing/SpringLayout.h | 64 + libjava/javax/swing/SwingConstants.h | 47 + libjava/javax/swing/SwingUtilities$OwnerFrame.h | 34 + libjava/javax/swing/SwingUtilities.h | 124 + libjava/javax/swing/Timer$1.h | 35 + libjava/javax/swing/Timer$Task.h | 35 + libjava/javax/swing/Timer.h | 90 + .../javax/swing/ToolTipManager$insideTimerAction.h | 45 + .../swing/ToolTipManager$outsideTimerAction.h | 45 + .../swing/ToolTipManager$stillInsideTimerAction.h | 45 + libjava/javax/swing/ToolTipManager.h | 92 + .../swing/TransferHandler$PropertyTransferable.h | 54 + .../javax/swing/TransferHandler$TransferAction.h | 49 + libjava/javax/swing/TransferHandler.h | 92 + libjava/javax/swing/UIDefaults$1.h | 38 + libjava/javax/swing/UIDefaults$2.h | 39 + libjava/javax/swing/UIDefaults$3.h | 42 + libjava/javax/swing/UIDefaults$4.h | 43 + libjava/javax/swing/UIDefaults$ActiveValue.h | 30 + libjava/javax/swing/UIDefaults$LazyInputMap.h | 36 + libjava/javax/swing/UIDefaults$LazyValue.h | 30 + libjava/javax/swing/UIDefaults$ProxyLazyValue.h | 40 + libjava/javax/swing/UIDefaults.h | 104 + libjava/javax/swing/UIManager$LookAndFeelInfo.h | 36 + ...ager$MultiplexUIDefaults$MultiplexEnumeration.h | 40 + .../javax/swing/UIManager$MultiplexUIDefaults.h | 40 + libjava/javax/swing/UIManager.h | 109 + .../javax/swing/UnsupportedLookAndFeelException.h | 29 + libjava/javax/swing/ViewportLayout.h | 46 + libjava/javax/swing/WindowConstants.h | 32 + libjava/javax/swing/border/AbstractBorder.h | 52 + libjava/javax/swing/border/BevelBorder.h | 74 + libjava/javax/swing/border/Border.h | 43 + libjava/javax/swing/border/CompoundBorder.h | 55 + libjava/javax/swing/border/EmptyBorder.h | 55 + libjava/javax/swing/border/EtchedBorder.h | 66 + libjava/javax/swing/border/LineBorder.h | 64 + libjava/javax/swing/border/MatteBorder.h | 62 + libjava/javax/swing/border/SoftBevelBorder.h | 53 + libjava/javax/swing/border/TitledBorder.h | 104 + .../swing/colorchooser/AbstractColorChooserPanel.h | 63 + .../colorchooser/ColorChooserComponentFactory.h | 38 + .../javax/swing/colorchooser/ColorSelectionModel.h | 46 + .../colorchooser/DefaultColorSelectionModel.h | 62 + .../swing/colorchooser/DefaultHSBChooserPanel$1.h | 47 + .../swing/colorchooser/DefaultHSBChooserPanel$2.h | 47 + .../DefaultHSBChooserPanel$ImageScrollListener.h | 42 + ...aultHSBChooserPanel$MainGradientMouseListener.h | 56 + .../DefaultHSBChooserPanel$RadioStateListener.h | 42 + .../DefaultHSBChooserPanel$SliderChangeListener.h | 42 + .../swing/colorchooser/DefaultHSBChooserPanel.h | 116 + .../DefaultPreviewPanel$PreviewBorder.h | 53 + .../javax/swing/colorchooser/DefaultPreviewPanel.h | 55 + .../DefaultRGBChooserPanel$SliderHandler.h | 42 + .../DefaultRGBChooserPanel$SpinnerHandler.h | 42 + .../swing/colorchooser/DefaultRGBChooserPanel.h | 81 + .../DefaultSwatchChooserPanel$MainPanelLayout.h | 47 + .../DefaultSwatchChooserPanel$MainSwatchPanel.h | 81 + .../DefaultSwatchChooserPanel$MouseHandler.h | 48 + .../DefaultSwatchChooserPanel$RecentPanelLayout.h | 47 + .../DefaultSwatchChooserPanel$RecentSwatchPanel.h | 64 + .../DefaultSwatchChooserPanel$SwatchPanel.h | 51 + .../swing/colorchooser/DefaultSwatchChooserPanel.h | 64 + libjava/javax/swing/event/AncestorEvent.h | 54 + libjava/javax/swing/event/AncestorListener.h | 35 + libjava/javax/swing/event/CaretEvent.h | 34 + libjava/javax/swing/event/CaretListener.h | 33 + libjava/javax/swing/event/CellEditorListener.h | 34 + libjava/javax/swing/event/ChangeEvent.h | 32 + libjava/javax/swing/event/ChangeListener.h | 33 + .../swing/event/DocumentEvent$ElementChange.h | 41 + .../javax/swing/event/DocumentEvent$EventType.h | 39 + libjava/javax/swing/event/DocumentEvent.h | 43 + libjava/javax/swing/event/DocumentListener.h | 35 + libjava/javax/swing/event/EventListenerList.h | 51 + .../javax/swing/event/HyperlinkEvent$EventType.h | 39 + libjava/javax/swing/event/HyperlinkEvent.h | 57 + libjava/javax/swing/event/HyperlinkListener.h | 33 + libjava/javax/swing/event/InternalFrameAdapter.h | 40 + libjava/javax/swing/event/InternalFrameEvent.h | 47 + libjava/javax/swing/event/InternalFrameListener.h | 39 + libjava/javax/swing/event/ListDataEvent.h | 47 + libjava/javax/swing/event/ListDataListener.h | 35 + libjava/javax/swing/event/ListSelectionEvent.h | 41 + libjava/javax/swing/event/ListSelectionListener.h | 33 + libjava/javax/swing/event/MenuDragMouseEvent.h | 49 + libjava/javax/swing/event/MenuDragMouseListener.h | 36 + libjava/javax/swing/event/MenuEvent.h | 32 + libjava/javax/swing/event/MenuKeyEvent.h | 49 + libjava/javax/swing/event/MenuKeyListener.h | 35 + libjava/javax/swing/event/MenuListener.h | 35 + libjava/javax/swing/event/MouseInputAdapter.h | 49 + libjava/javax/swing/event/MouseInputListener.h | 48 + libjava/javax/swing/event/PopupMenuEvent.h | 32 + libjava/javax/swing/event/PopupMenuListener.h | 35 + .../javax/swing/event/SwingPropertyChangeSupport.h | 35 + libjava/javax/swing/event/TableColumnModelEvent.h | 42 + .../javax/swing/event/TableColumnModelListener.h | 39 + libjava/javax/swing/event/TableModelEvent.h | 58 + libjava/javax/swing/event/TableModelListener.h | 33 + libjava/javax/swing/event/TreeExpansionEvent.h | 40 + libjava/javax/swing/event/TreeExpansionListener.h | 34 + libjava/javax/swing/event/TreeModelEvent.h | 51 + libjava/javax/swing/event/TreeModelListener.h | 36 + libjava/javax/swing/event/TreeSelectionEvent.h | 53 + libjava/javax/swing/event/TreeSelectionListener.h | 33 + libjava/javax/swing/event/TreeWillExpandListener.h | 34 + libjava/javax/swing/event/UndoableEditEvent.h | 41 + libjava/javax/swing/event/UndoableEditListener.h | 33 + libjava/javax/swing/filechooser/FileFilter.h | 34 + libjava/javax/swing/filechooser/FileSystemView.h | 63 + libjava/javax/swing/filechooser/FileView.h | 38 + .../javax/swing/filechooser/UnixFileSystemView.h | 45 + libjava/javax/swing/plaf/ActionMapUIResource.h | 32 + .../plaf/BorderUIResource$BevelBorderUIResource.h | 44 + .../BorderUIResource$CompoundBorderUIResource.h | 39 + .../plaf/BorderUIResource$EmptyBorderUIResource.h | 43 + .../plaf/BorderUIResource$EtchedBorderUIResource.h | 45 + .../plaf/BorderUIResource$LineBorderUIResource.h | 43 + .../plaf/BorderUIResource$MatteBorderUIResource.h | 45 + .../plaf/BorderUIResource$TitledBorderUIResource.h | 52 + libjava/javax/swing/plaf/BorderUIResource.h | 61 + libjava/javax/swing/plaf/ButtonUI.h | 32 + libjava/javax/swing/plaf/ColorChooserUI.h | 32 + libjava/javax/swing/plaf/ColorUIResource.h | 42 + libjava/javax/swing/plaf/ComboBoxUI.h | 36 + .../javax/swing/plaf/ComponentInputMapUIResource.h | 33 + libjava/javax/swing/plaf/ComponentUI.h | 56 + libjava/javax/swing/plaf/DesktopIconUI.h | 32 + libjava/javax/swing/plaf/DesktopPaneUI.h | 32 + libjava/javax/swing/plaf/DimensionUIResource.h | 32 + libjava/javax/swing/plaf/FileChooserUI.h | 44 + libjava/javax/swing/plaf/FontUIResource.h | 40 + libjava/javax/swing/plaf/IconUIResource.h | 49 + libjava/javax/swing/plaf/InputMapUIResource.h | 32 + libjava/javax/swing/plaf/InsetsUIResource.h | 35 + libjava/javax/swing/plaf/InternalFrameUI.h | 32 + libjava/javax/swing/plaf/LabelUI.h | 32 + libjava/javax/swing/plaf/ListUI.h | 44 + libjava/javax/swing/plaf/MenuBarUI.h | 32 + libjava/javax/swing/plaf/MenuItemUI.h | 32 + libjava/javax/swing/plaf/OptionPaneUI.h | 35 + libjava/javax/swing/plaf/PanelUI.h | 32 + libjava/javax/swing/plaf/PopupMenuUI.h | 46 + libjava/javax/swing/plaf/ProgressBarUI.h | 32 + libjava/javax/swing/plaf/RootPaneUI.h | 32 + libjava/javax/swing/plaf/ScrollBarUI.h | 32 + libjava/javax/swing/plaf/ScrollPaneUI.h | 32 + libjava/javax/swing/plaf/SeparatorUI.h | 32 + libjava/javax/swing/plaf/SliderUI.h | 32 + libjava/javax/swing/plaf/SpinnerUI.h | 32 + libjava/javax/swing/plaf/SplitPaneUI.h | 46 + libjava/javax/swing/plaf/TabbedPaneUI.h | 43 + libjava/javax/swing/plaf/TableHeaderUI.h | 32 + libjava/javax/swing/plaf/TableUI.h | 32 + libjava/javax/swing/plaf/TextUI.h | 59 + libjava/javax/swing/plaf/ToolBarUI.h | 32 + libjava/javax/swing/plaf/ToolTipUI.h | 32 + libjava/javax/swing/plaf/TreeUI.h | 54 + libjava/javax/swing/plaf/UIResource.h | 31 + libjava/javax/swing/plaf/ViewportUI.h | 32 + libjava/javax/swing/plaf/basic/BasicArrowButton.h | 65 + .../swing/plaf/basic/BasicBorders$ButtonBorder.h | 56 + .../swing/plaf/basic/BasicBorders$FieldBorder.h | 56 + .../swing/plaf/basic/BasicBorders$MarginBorder.h | 48 + .../swing/plaf/basic/BasicBorders$MenuBarBorder.h | 54 + .../plaf/basic/BasicBorders$RadioButtonBorder.h | 51 + .../plaf/basic/BasicBorders$RolloverButtonBorder.h | 48 + .../plaf/basic/BasicBorders$SplitPaneBorder.h | 61 + .../basic/BasicBorders$SplitPaneDividerBorder.h | 51 + .../plaf/basic/BasicBorders$ToggleButtonBorder.h | 51 + libjava/javax/swing/plaf/basic/BasicBorders.h | 54 + .../javax/swing/plaf/basic/BasicButtonListener$1.h | 51 + .../javax/swing/plaf/basic/BasicButtonListener$2.h | 51 + .../plaf/basic/BasicButtonListener$ButtonAction.h | 54 + .../javax/swing/plaf/basic/BasicButtonListener.h | 76 + libjava/javax/swing/plaf/basic/BasicButtonUI.h | 96 + .../swing/plaf/basic/BasicCheckBoxMenuItemUI.h | 57 + libjava/javax/swing/plaf/basic/BasicCheckBoxUI.h | 39 + .../javax/swing/plaf/basic/BasicColorChooserUI$1.h | 45 + .../basic/BasicColorChooserUI$PreviewListener.h | 45 + .../basic/BasicColorChooserUI$PropertyHandler.h | 47 + .../basic/BasicColorChooserUI$TabPaneListener.h | 45 + .../javax/swing/plaf/basic/BasicColorChooserUI.h | 89 + .../plaf/basic/BasicComboBoxEditor$UIResource.h | 35 + .../javax/swing/plaf/basic/BasicComboBoxEditor.h | 59 + .../plaf/basic/BasicComboBoxRenderer$UIResource.h | 35 + .../javax/swing/plaf/basic/BasicComboBoxRenderer.h | 53 + .../basic/BasicComboBoxUI$ComboBoxLayoutManager.h | 53 + .../plaf/basic/BasicComboBoxUI$FocusHandler.h | 51 + .../swing/plaf/basic/BasicComboBoxUI$ItemHandler.h | 50 + .../swing/plaf/basic/BasicComboBoxUI$KeyHandler.h | 50 + .../plaf/basic/BasicComboBoxUI$ListDataHandler.h | 46 + .../basic/BasicComboBoxUI$PropertyChangeHandler.h | 47 + libjava/javax/swing/plaf/basic/BasicComboBoxUI.h | 154 + .../basic/BasicComboPopup$InvocationKeyHandler.h | 50 + .../basic/BasicComboPopup$InvocationMouseHandler.h | 52 + .../BasicComboPopup$InvocationMouseMotionHandler.h | 51 + .../swing/plaf/basic/BasicComboPopup$ItemHandler.h | 51 + .../plaf/basic/BasicComboPopup$ListDataHandler.h | 46 + .../plaf/basic/BasicComboPopup$ListMouseHandler.h | 52 + .../basic/BasicComboPopup$ListMouseMotionHandler.h | 51 + .../basic/BasicComboPopup$ListSelectionHandler.h | 45 + .../basic/BasicComboPopup$PropertyChangeHandler.h | 48 + libjava/javax/swing/plaf/basic/BasicComboPopup.h | 135 + .../javax/swing/plaf/basic/BasicDesktopIconUI$1.h | 48 + .../javax/swing/plaf/basic/BasicDesktopIconUI$2.h | 51 + .../plaf/basic/BasicDesktopIconUI$BoundButton.h | 49 + .../basic/BasicDesktopIconUI$DesktopIconBorder.h | 56 + ...sicDesktopIconUI$InternalFrameDefaultMenuIcon.h | 47 + .../basic/BasicDesktopIconUI$MouseInputHandler.h | 60 + .../javax/swing/plaf/basic/BasicDesktopIconUI.h | 90 + .../plaf/basic/BasicDesktopPaneUI$CloseAction.h | 52 + .../plaf/basic/BasicDesktopPaneUI$MaximizeAction.h | 52 + .../plaf/basic/BasicDesktopPaneUI$MinimizeAction.h | 52 + .../plaf/basic/BasicDesktopPaneUI$NavigateAction.h | 52 + .../plaf/basic/BasicDesktopPaneUI$OpenAction.h | 52 + .../javax/swing/plaf/basic/BasicDesktopPaneUI.h | 74 + .../javax/swing/plaf/basic/BasicDirectoryModel$1.h | 41 + ...yModel$DirectoryLoadThread$UpdateSwingRequest.h | 49 + .../BasicDirectoryModel$DirectoryLoadThread.h | 50 + .../javax/swing/plaf/basic/BasicDirectoryModel.h | 83 + libjava/javax/swing/plaf/basic/BasicEditorPaneUI.h | 47 + .../basic/BasicFileChooserUI$AcceptAllFileFilter.h | 41 + .../BasicFileChooserUI$ApproveSelectionAction.h | 51 + .../plaf/basic/BasicFileChooserUI$BasicFileView.h | 50 + .../BasicFileChooserUI$CancelSelectionAction.h | 51 + ...icFileChooserUI$ChangeToParentDirectoryAction.h | 51 + .../basic/BasicFileChooserUI$DoubleClickListener.h | 55 + .../plaf/basic/BasicFileChooserUI$GoHomeAction.h | 51 + .../basic/BasicFileChooserUI$NewFolderAction.h | 51 + .../basic/BasicFileChooserUI$SelectionListener.h | 45 + .../plaf/basic/BasicFileChooserUI$UpdateAction.h | 51 + .../javax/swing/plaf/basic/BasicFileChooserUI.h | 187 + .../swing/plaf/basic/BasicFormattedTextFieldUI.h | 41 + .../javax/swing/plaf/basic/BasicGraphicsUtils.h | 64 + .../swing/plaf/basic/BasicHTML$HTMLRootView.h | 87 + libjava/javax/swing/plaf/basic/BasicHTML.h | 45 + .../javax/swing/plaf/basic/BasicIconFactory$1.h | 47 + .../javax/swing/plaf/basic/BasicIconFactory$2.h | 47 + .../plaf/basic/BasicIconFactory$CheckBoxIcon.h | 47 + .../basic/BasicIconFactory$CheckBoxMenuItemIcon.h | 47 + .../swing/plaf/basic/BasicIconFactory$DummyIcon.h | 49 + .../plaf/basic/BasicIconFactory$RadioButtonIcon.h | 47 + libjava/javax/swing/plaf/basic/BasicIconFactory.h | 52 + .../BasicInternalFrameTitlePane$CloseAction.h | 50 + .../BasicInternalFrameTitlePane$IconifyAction.h | 50 + .../BasicInternalFrameTitlePane$MaximizeAction.h | 50 + .../basic/BasicInternalFrameTitlePane$MoveAction.h | 50 + .../basic/BasicInternalFrameTitlePane$PaneButton.h | 41 + ...cInternalFrameTitlePane$PropertyChangeHandler.h | 47 + .../BasicInternalFrameTitlePane$RestoreAction.h | 50 + .../basic/BasicInternalFrameTitlePane$SizeAction.h | 50 + .../BasicInternalFrameTitlePane$SystemMenuBar.h | 50 + .../BasicInternalFrameTitlePane$TitlePaneLayout.h | 53 + .../swing/plaf/basic/BasicInternalFrameTitlePane.h | 110 + ...sicInternalFrameUI$BasicInternalFrameListener.h | 51 + .../basic/BasicInternalFrameUI$BorderListener.h | 71 + .../basic/BasicInternalFrameUI$ComponentHandler.h | 54 + .../BasicInternalFrameUI$GlassPaneDispatcher.h | 65 + .../BasicInternalFrameUI$InternalFrameBorder.h | 54 + .../BasicInternalFrameUI$InternalFrameLayout.h | 56 + ...alFrameUI$InternalFramePropertyChangeListener.h | 47 + .../BasicInternalFrameUI$ShowSystemMenuAction.h | 51 + .../javax/swing/plaf/basic/BasicInternalFrameUI.h | 139 + libjava/javax/swing/plaf/basic/BasicLabelUI$1.h | 51 + libjava/javax/swing/plaf/basic/BasicLabelUI.h | 83 + .../plaf/basic/BasicListUI$ActionListenerProxy.h | 51 + .../swing/plaf/basic/BasicListUI$FocusHandler.h | 53 + .../swing/plaf/basic/BasicListUI$ListAction.h | 51 + .../swing/plaf/basic/BasicListUI$ListDataHandler.h | 46 + .../plaf/basic/BasicListUI$ListSelectionHandler.h | 44 + .../plaf/basic/BasicListUI$MouseInputHandler.h | 56 + .../plaf/basic/BasicListUI$PropertyChangeHandler.h | 47 + libjava/javax/swing/plaf/basic/BasicListUI.h | 128 + .../javax/swing/plaf/basic/BasicLookAndFeel$1.h | 42 + .../javax/swing/plaf/basic/BasicLookAndFeel$2.h | 42 + .../javax/swing/plaf/basic/BasicLookAndFeel$3.h | 42 + .../javax/swing/plaf/basic/BasicLookAndFeel$4.h | 42 + .../javax/swing/plaf/basic/BasicLookAndFeel$5.h | 42 + .../javax/swing/plaf/basic/BasicLookAndFeel$6.h | 42 + .../javax/swing/plaf/basic/BasicLookAndFeel$7.h | 42 + .../plaf/basic/BasicLookAndFeel$AudioAction.h | 52 + .../plaf/basic/BasicLookAndFeel$PopupHelper.h | 54 + libjava/javax/swing/plaf/basic/BasicLookAndFeel.h | 63 + .../plaf/basic/BasicMenuBarUI$ChangeHandler.h | 45 + .../plaf/basic/BasicMenuBarUI$ContainerHandler.h | 52 + .../swing/plaf/basic/BasicMenuBarUI$FocusAction.h | 47 + .../plaf/basic/BasicMenuBarUI$MouseInputHandler.h | 57 + .../basic/BasicMenuBarUI$PropertyChangeHandler.h | 48 + libjava/javax/swing/plaf/basic/BasicMenuBarUI.h | 93 + .../swing/plaf/basic/BasicMenuItemUI$ClickAction.h | 51 + .../swing/plaf/basic/BasicMenuItemUI$ItemHandler.h | 51 + .../basic/BasicMenuItemUI$MenuDragMouseHandler.h | 48 + .../plaf/basic/BasicMenuItemUI$MenuKeyHandler.h | 47 + .../plaf/basic/BasicMenuItemUI$MouseInputHandler.h | 57 + .../basic/BasicMenuItemUI$PropertyChangeHandler.h | 48 + libjava/javax/swing/plaf/basic/BasicMenuItemUI.h | 132 + .../swing/plaf/basic/BasicMenuUI$ChangeHandler.h | 56 + .../plaf/basic/BasicMenuUI$MenuDragMouseHandler.h | 48 + .../swing/plaf/basic/BasicMenuUI$MenuHandler.h | 47 + .../swing/plaf/basic/BasicMenuUI$MenuKeyHandler.h | 47 + .../plaf/basic/BasicMenuUI$MouseInputHandler.h | 60 + .../plaf/basic/BasicMenuUI$SelectMenuAction.h | 51 + libjava/javax/swing/plaf/basic/BasicMenuUI.h | 80 + .../javax/swing/plaf/basic/BasicOptionPaneUI$1.h | 45 + .../javax/swing/plaf/basic/BasicOptionPaneUI$2.h | 45 + .../javax/swing/plaf/basic/BasicOptionPaneUI$3.h | 45 + .../javax/swing/plaf/basic/BasicOptionPaneUI$4.h | 45 + .../basic/BasicOptionPaneUI$ButtonActionListener.h | 52 + .../basic/BasicOptionPaneUI$ButtonAreaLayout.h | 66 + .../plaf/basic/BasicOptionPaneUI$MessageIcon.h | 49 + .../BasicOptionPaneUI$OptionPaneCloseAction.h | 47 + .../BasicOptionPaneUI$PropertyChangeHandler.h | 47 + libjava/javax/swing/plaf/basic/BasicOptionPaneUI.h | 148 + libjava/javax/swing/plaf/basic/BasicPanelUI.h | 49 + .../javax/swing/plaf/basic/BasicPasswordFieldUI.h | 47 + .../swing/plaf/basic/BasicPopupMenuSeparatorUI.h | 48 + .../plaf/basic/BasicPopupMenuUI$KeyboardHelper.h | 65 + .../plaf/basic/BasicPopupMenuUI$NavigateAction.h | 64 + .../plaf/basic/BasicPopupMenuUI$PopupMenuHandler.h | 47 + .../basic/BasicPopupMenuUI$TopWindowListener.h | 54 + libjava/javax/swing/plaf/basic/BasicPopupMenuUI.h | 90 + .../basic/BasicProgressBarUI$AncestorHandler.h | 47 + .../swing/plaf/basic/BasicProgressBarUI$Animator.h | 51 + .../plaf/basic/BasicProgressBarUI$ChangeHandler.h | 44 + .../basic/BasicProgressBarUI$ComponentHandler.h | 51 + .../BasicProgressBarUI$PropertyChangeHandler.h | 48 + .../javax/swing/plaf/basic/BasicProgressBarUI.h | 123 + .../swing/plaf/basic/BasicRadioButtonMenuItemUI.h | 57 + .../javax/swing/plaf/basic/BasicRadioButtonUI.h | 60 + .../basic/BasicRootPaneUI$DefaultPressAction.h | 54 + .../basic/BasicRootPaneUI$DefaultReleaseAction.h | 54 + libjava/javax/swing/plaf/basic/BasicRootPaneUI.h | 61 + .../javax/swing/plaf/basic/BasicScrollBarUI$1.h | 51 + .../javax/swing/plaf/basic/BasicScrollBarUI$2.h | 51 + .../javax/swing/plaf/basic/BasicScrollBarUI$3.h | 51 + .../javax/swing/plaf/basic/BasicScrollBarUI$4.h | 51 + .../javax/swing/plaf/basic/BasicScrollBarUI$5.h | 51 + .../javax/swing/plaf/basic/BasicScrollBarUI$6.h | 51 + .../basic/BasicScrollBarUI$ArrowButtonListener.h | 52 + .../plaf/basic/BasicScrollBarUI$ModelListener.h | 45 + .../basic/BasicScrollBarUI$PropertyChangeHandler.h | 47 + .../plaf/basic/BasicScrollBarUI$ScrollListener.h | 56 + .../plaf/basic/BasicScrollBarUI$TrackListener.h | 60 + libjava/javax/swing/plaf/basic/BasicScrollBarUI.h | 174 + .../javax/swing/plaf/basic/BasicScrollPaneUI$1.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$10.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$2.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$3.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$4.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$5.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$6.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$7.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$8.h | 51 + .../javax/swing/plaf/basic/BasicScrollPaneUI$9.h | 51 + .../basic/BasicScrollPaneUI$HSBChangeListener.h | 44 + .../basic/BasicScrollPaneUI$MouseWheelHandler.h | 53 + .../BasicScrollPaneUI$PropertyChangeHandler.h | 47 + .../basic/BasicScrollPaneUI$VSBChangeListener.h | 44 + .../BasicScrollPaneUI$ViewportChangeHandler.h | 44 + .../BasicScrollPaneUI$ViewportContainerListener.h | 52 + libjava/javax/swing/plaf/basic/BasicScrollPaneUI.h | 108 + libjava/javax/swing/plaf/basic/BasicSeparatorUI.h | 64 + libjava/javax/swing/plaf/basic/BasicSliderUI$1.h | 51 + libjava/javax/swing/plaf/basic/BasicSliderUI$2.h | 51 + libjava/javax/swing/plaf/basic/BasicSliderUI$3.h | 51 + libjava/javax/swing/plaf/basic/BasicSliderUI$4.h | 51 + libjava/javax/swing/plaf/basic/BasicSliderUI$5.h | 51 + libjava/javax/swing/plaf/basic/BasicSliderUI$6.h | 51 + .../plaf/basic/BasicSliderUI$ActionScroller.h | 51 + .../swing/plaf/basic/BasicSliderUI$ChangeHandler.h | 44 + .../plaf/basic/BasicSliderUI$ComponentHandler.h | 50 + .../swing/plaf/basic/BasicSliderUI$FocusHandler.h | 51 + .../basic/BasicSliderUI$PropertyChangeHandler.h | 47 + .../plaf/basic/BasicSliderUI$ScrollListener.h | 56 + .../swing/plaf/basic/BasicSliderUI$TrackListener.h | 58 + libjava/javax/swing/plaf/basic/BasicSliderUI.h | 188 + libjava/javax/swing/plaf/basic/BasicSpinnerUI$1.h | 48 + libjava/javax/swing/plaf/basic/BasicSpinnerUI$2.h | 56 + libjava/javax/swing/plaf/basic/BasicSpinnerUI$3.h | 51 + libjava/javax/swing/plaf/basic/BasicSpinnerUI$4.h | 56 + libjava/javax/swing/plaf/basic/BasicSpinnerUI$5.h | 51 + .../basic/BasicSpinnerUI$DefaultLayoutManager.h | 62 + libjava/javax/swing/plaf/basic/BasicSpinnerUI.h | 74 + .../BasicSplitPaneDivider$BasicOneTouchButton.h | 63 + .../basic/BasicSplitPaneDivider$DividerLayout.h | 54 + .../basic/BasicSplitPaneDivider$DragController.h | 58 + .../basic/BasicSplitPaneDivider$MouseHandler.h | 56 + .../basic/BasicSplitPaneDivider$OneTouchAction.h | 51 + .../BasicSplitPaneDivider$VerticalDragController.h | 52 + .../javax/swing/plaf/basic/BasicSplitPaneDivider.h | 97 + .../javax/swing/plaf/basic/BasicSplitPaneUI$1.h | 51 + .../javax/swing/plaf/basic/BasicSplitPaneUI$2.h | 51 + .../javax/swing/plaf/basic/BasicSplitPaneUI$3.h | 51 + .../javax/swing/plaf/basic/BasicSplitPaneUI$4.h | 51 + .../javax/swing/plaf/basic/BasicSplitPaneUI$5.h | 51 + .../javax/swing/plaf/basic/BasicSplitPaneUI$6.h | 51 + .../javax/swing/plaf/basic/BasicSplitPaneUI$7.h | 51 + .../javax/swing/plaf/basic/BasicSplitPaneUI$8.h | 51 + ...BasicSplitPaneUI$BasicHorizontalLayoutManager.h | 88 + .../BasicSplitPaneUI$BasicVerticalLayoutManager.h | 39 + .../plaf/basic/BasicSplitPaneUI$FocusHandler.h | 51 + .../BasicSplitPaneUI$KeyboardDownRightHandler.h | 50 + .../basic/BasicSplitPaneUI$KeyboardEndHandler.h | 50 + .../basic/BasicSplitPaneUI$KeyboardHomeHandler.h | 50 + .../BasicSplitPaneUI$KeyboardResizeToggleHandler.h | 50 + .../basic/BasicSplitPaneUI$KeyboardUpLeftHandler.h | 50 + .../plaf/basic/BasicSplitPaneUI$PropertyHandler.h | 47 + libjava/javax/swing/plaf/basic/BasicSplitPaneUI.h | 149 + .../plaf/basic/BasicTabbedPaneUI$FocusHandler.h | 51 + .../plaf/basic/BasicTabbedPaneUI$MouseHandler.h | 55 + .../plaf/basic/BasicTabbedPaneUI$NavigateAction.h | 50 + .../BasicTabbedPaneUI$NavigatePageDownAction.h | 46 + .../basic/BasicTabbedPaneUI$NavigatePageUpAction.h | 46 + .../BasicTabbedPaneUI$PropertyChangeHandler.h | 47 + .../basic/BasicTabbedPaneUI$RequestFocusAction.h | 46 + ...dPaneUI$RequestFocusForVisibleComponentAction.h | 46 + .../plaf/basic/BasicTabbedPaneUI$ScrollingButton.h | 39 + ...cTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.h | 49 + .../plaf/basic/BasicTabbedPaneUI$ScrollingPanel.h | 42 + .../basic/BasicTabbedPaneUI$ScrollingViewport.h | 39 + .../basic/BasicTabbedPaneUI$TabSelectionHandler.h | 44 + .../basic/BasicTabbedPaneUI$TabbedPaneLayout.h | 68 + .../BasicTabbedPaneUI$TabbedPaneScrollLayout.h | 56 + libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.h | 223 + .../javax/swing/plaf/basic/BasicTableHeaderUI$1.h | 51 + .../basic/BasicTableHeaderUI$MouseInputHandler.h | 65 + .../javax/swing/plaf/basic/BasicTableHeaderUI.h | 92 + .../swing/plaf/basic/BasicTableUI$FocusHandler.h | 53 + .../swing/plaf/basic/BasicTableUI$KeyHandler.h | 52 + .../plaf/basic/BasicTableUI$MouseInputHandler.h | 62 + .../basic/BasicTableUI$PropertyChangeHandler.h | 48 + .../swing/plaf/basic/BasicTableUI$TableAction.h | 57 + libjava/javax/swing/plaf/basic/BasicTableUI.h | 112 + libjava/javax/swing/plaf/basic/BasicTextAreaUI.h | 55 + libjava/javax/swing/plaf/basic/BasicTextFieldUI.h | 58 + libjava/javax/swing/plaf/basic/BasicTextPaneUI.h | 42 + libjava/javax/swing/plaf/basic/BasicTextUI$1.h | 52 + .../swing/plaf/basic/BasicTextUI$BasicCaret.h | 35 + .../plaf/basic/BasicTextUI$BasicHighlighter.h | 35 + .../swing/plaf/basic/BasicTextUI$DocumentHandler.h | 47 + .../swing/plaf/basic/BasicTextUI$FocusHandler.h | 50 + .../javax/swing/plaf/basic/BasicTextUI$Handler.h | 55 + .../plaf/basic/BasicTextUI$PropertyChangeHandler.h | 48 + .../javax/swing/plaf/basic/BasicTextUI$RootView.h | 85 + libjava/javax/swing/plaf/basic/BasicTextUI.h | 137 + .../javax/swing/plaf/basic/BasicToggleButtonUI.h | 54 + .../swing/plaf/basic/BasicToolBarSeparatorUI.h | 57 + .../plaf/basic/BasicToolBarUI$DockingListener.h | 62 + .../swing/plaf/basic/BasicToolBarUI$DragWindow.h | 60 + .../plaf/basic/BasicToolBarUI$FrameListener.h | 51 + .../plaf/basic/BasicToolBarUI$PropertyListener.h | 48 + .../plaf/basic/BasicToolBarUI$ToolBarAction.h | 50 + .../plaf/basic/BasicToolBarUI$ToolBarBorder.h | 55 + .../basic/BasicToolBarUI$ToolBarContListener.h | 52 + .../plaf/basic/BasicToolBarUI$ToolBarDialog.h | 39 + .../basic/BasicToolBarUI$ToolBarFocusListener.h | 52 + libjava/javax/swing/plaf/basic/BasicToolBarUI.h | 170 + .../basic/BasicToolTipUI$PropertyChangeHandler.h | 48 + libjava/javax/swing/plaf/basic/BasicToolTipUI.h | 69 + libjava/javax/swing/plaf/basic/BasicTreeUI$1.h | 51 + libjava/javax/swing/plaf/basic/BasicTreeUI$2.h | 51 + .../plaf/basic/BasicTreeUI$CellEditorHandler.h | 45 + .../plaf/basic/BasicTreeUI$ComponentHandler.h | 62 + .../swing/plaf/basic/BasicTreeUI$FocusHandler.h | 52 + .../swing/plaf/basic/BasicTreeUI$KeyHandler.h | 59 + .../swing/plaf/basic/BasicTreeUI$MouseHandler.h | 56 + .../plaf/basic/BasicTreeUI$MouseInputHandler.h | 64 + .../plaf/basic/BasicTreeUI$NodeDimensionsHandler.h | 49 + .../plaf/basic/BasicTreeUI$PropertyChangeHandler.h | 47 + ...sicTreeUI$SelectionModelPropertyChangeHandler.h | 47 + .../basic/BasicTreeUI$TreeCancelEditingAction.h | 50 + .../plaf/basic/BasicTreeUI$TreeExpansionHandler.h | 45 + .../swing/plaf/basic/BasicTreeUI$TreeHomeAction.h | 53 + .../plaf/basic/BasicTreeUI$TreeIncrementAction.h | 53 + .../plaf/basic/BasicTreeUI$TreeModelHandler.h | 47 + .../swing/plaf/basic/BasicTreeUI$TreePageAction.h | 53 + .../plaf/basic/BasicTreeUI$TreeSelectionHandler.h | 44 + .../basic/BasicTreeUI$TreeStartEditingAction.h | 50 + .../plaf/basic/BasicTreeUI$TreeToggleAction.h | 51 + .../plaf/basic/BasicTreeUI$TreeTraverseAction.h | 53 + libjava/javax/swing/plaf/basic/BasicTreeUI.h | 280 + libjava/javax/swing/plaf/basic/BasicViewportUI.h | 44 + libjava/javax/swing/plaf/basic/ComboPopup.h | 55 + libjava/javax/swing/plaf/basic/DefaultMenuLayout.h | 44 + libjava/javax/swing/plaf/basic/SharedUIDefaults.h | 48 + libjava/javax/swing/plaf/metal/DefaultMetalTheme.h | 73 + .../swing/plaf/metal/MetalBorders$ButtonBorder.h | 54 + .../plaf/metal/MetalBorders$DesktopIconBorder.h | 47 + .../swing/plaf/metal/MetalBorders$Flush3DBorder.h | 50 + .../plaf/metal/MetalBorders$InternalFrameBorder.h | 50 + .../swing/plaf/metal/MetalBorders$MenuBarBorder.h | 50 + .../swing/plaf/metal/MetalBorders$MenuItemBorder.h | 50 + .../plaf/metal/MetalBorders$OptionDialogBorder.h | 47 + .../swing/plaf/metal/MetalBorders$PaletteBorder.h | 50 + .../plaf/metal/MetalBorders$PopupMenuBorder.h | 50 + .../plaf/metal/MetalBorders$RolloverButtonBorder.h | 44 + .../plaf/metal/MetalBorders$RolloverMarginBorder.h | 48 + .../plaf/metal/MetalBorders$ScrollPaneBorder.h | 49 + .../plaf/metal/MetalBorders$TableHeaderBorder.h | 49 + .../plaf/metal/MetalBorders$TextFieldBorder.h | 44 + .../plaf/metal/MetalBorders$ToggleButtonBorder.h | 44 + .../swing/plaf/metal/MetalBorders$ToolBarBorder.h | 47 + libjava/javax/swing/plaf/metal/MetalBorders.h | 62 + .../javax/swing/plaf/metal/MetalButtonListener.h | 44 + libjava/javax/swing/plaf/metal/MetalButtonUI.h | 71 + libjava/javax/swing/plaf/metal/MetalCheckBoxIcon.h | 54 + libjava/javax/swing/plaf/metal/MetalCheckBoxUI.h | 42 + .../javax/swing/plaf/metal/MetalComboBoxButton.h | 63 + .../metal/MetalComboBoxEditor$EditorTextField.h | 49 + ...MetalComboBoxEditor$MetalComboBoxEditorBorder.h | 46 + .../plaf/metal/MetalComboBoxEditor$UIResource.h | 35 + .../javax/swing/plaf/metal/MetalComboBoxEditor.h | 45 + libjava/javax/swing/plaf/metal/MetalComboBoxIcon.h | 46 + .../MetalComboBoxUI$MetalComboBoxLayoutManager.h | 48 + .../plaf/metal/MetalComboBoxUI$MetalComboPopup.h | 51 + .../MetalComboBoxUI$MetalPropertyChangeListener.h | 47 + libjava/javax/swing/plaf/metal/MetalComboBoxUI.h | 83 + .../javax/swing/plaf/metal/MetalDesktopIconUI.h | 38 + .../plaf/metal/MetalFileChooserUI$ButtonLayout.h | 55 + .../MetalFileChooserUI$DetailViewActionListener.h | 51 + .../MetalFileChooserUI$DirectoryComboBoxAction.h | 51 + .../MetalFileChooserUI$DirectoryComboBoxModel.h | 47 + .../MetalFileChooserUI$DirectoryComboBoxRenderer.h | 52 + .../plaf/metal/MetalFileChooserUI$FileRenderer.h | 49 + .../metal/MetalFileChooserUI$FilterComboBoxModel.h | 62 + .../MetalFileChooserUI$FilterComboBoxRenderer.h | 48 + .../plaf/metal/MetalFileChooserUI$IndentIcon.h | 58 + .../MetalFileChooserUI$ListViewActionListener.h | 51 + ...oserUI$MetalFileChooserPropertyChangeListener.h | 47 + ...leChooserUI$MetalFileChooserSelectionListener.h | 45 + ...rUI$SingleClickListener$EditingActionListener.h | 51 + .../metal/MetalFileChooserUI$SingleClickListener.h | 60 + ...erUI$TableClickListener$EditingActionListener.h | 51 + .../metal/MetalFileChooserUI$TableClickListener.h | 63 + .../metal/MetalFileChooserUI$TableFileRenderer.h | 48 + .../metal/MetalFileChooserUI$VerticalMidLayout.h | 54 + .../javax/swing/plaf/metal/MetalFileChooserUI.h | 159 + .../javax/swing/plaf/metal/MetalIconFactory$1.h | 47 + .../javax/swing/plaf/metal/MetalIconFactory$2.h | 47 + .../javax/swing/plaf/metal/MetalIconFactory$3.h | 47 + .../metal/MetalIconFactory$CheckBoxMenuItemIcon.h | 46 + .../MetalIconFactory$FileChooserDetailViewIcon.h | 46 + .../MetalIconFactory$FileChooserHomeFolderIcon.h | 46 + .../MetalIconFactory$FileChooserListViewIcon.h | 46 + .../MetalIconFactory$FileChooserNewFolderIcon.h | 46 + .../MetalIconFactory$FileChooserUpFolderIcon.h | 44 + .../swing/plaf/metal/MetalIconFactory$FileIcon16.h | 48 + .../plaf/metal/MetalIconFactory$FolderIcon16.h | 48 + .../MetalIconFactory$HorizontalSliderThumbIcon.h | 51 + ...MetalIconFactory$InternalFrameAltMaximizeIcon.h | 49 + .../MetalIconFactory$InternalFrameCloseIcon.h | 49 + ...MetalIconFactory$InternalFrameDefaultMenuIcon.h | 46 + .../MetalIconFactory$InternalFrameMaximizeIcon.h | 46 + .../MetalIconFactory$InternalFrameMinimizeIcon.h | 46 + .../plaf/metal/MetalIconFactory$PaletteCloseIcon.h | 46 + .../plaf/metal/MetalIconFactory$RadioButtonIcon.h | 52 + .../MetalIconFactory$RadioButtonMenuItemIcon.h | 46 + .../plaf/metal/MetalIconFactory$TreeComputerIcon.h | 46 + .../plaf/metal/MetalIconFactory$TreeControlIcon.h | 52 + .../metal/MetalIconFactory$TreeFloppyDriveIcon.h | 46 + .../plaf/metal/MetalIconFactory$TreeFolderIcon.h | 37 + .../metal/MetalIconFactory$TreeHardDriveIcon.h | 46 + .../plaf/metal/MetalIconFactory$TreeLeafIcon.h | 37 + .../MetalIconFactory$VerticalSliderThumbIcon.h | 51 + libjava/javax/swing/plaf/metal/MetalIconFactory.h | 83 + ...alInternalFrameTitlePanePropertyChangeHandler.h | 47 + ...alInternalFrameTitlePane$MetalTitlePaneLayout.h | 53 + .../swing/plaf/metal/MetalInternalFrameTitlePane.h | 81 + .../swing/plaf/metal/MetalInternalFrameUI$1.h | 48 + .../javax/swing/plaf/metal/MetalInternalFrameUI.h | 59 + libjava/javax/swing/plaf/metal/MetalLabelUI.h | 50 + .../javax/swing/plaf/metal/MetalLookAndFeel$1.h | 42 + libjava/javax/swing/plaf/metal/MetalLookAndFeel.h | 103 + libjava/javax/swing/plaf/metal/MetalMenuBarUI.h | 46 + .../swing/plaf/metal/MetalPopupMenuSeparatorUI.h | 41 + .../javax/swing/plaf/metal/MetalProgressBarUI.h | 47 + .../javax/swing/plaf/metal/MetalRadioButtonUI.h | 63 + .../plaf/metal/MetalRootPaneUI$MetalFrameBorder.h | 50 + .../plaf/metal/MetalRootPaneUI$MetalRootLayout.h | 66 + .../MetalRootPaneUI$MetalTitlePane$CloseAction.h | 50 + .../MetalRootPaneUI$MetalTitlePane$IconifyAction.h | 51 + ...MetalRootPaneUI$MetalTitlePane$MaximizeAction.h | 51 + ...ootPaneUI$MetalTitlePane$MetalTitlePaneLayout.h | 53 + .../MetalRootPaneUI$MetalTitlePane$MouseHandler.h | 54 + .../MetalRootPaneUI$MetalTitlePane$PaneButton.h | 41 + .../plaf/metal/MetalRootPaneUI$MetalTitlePane.h | 98 + libjava/javax/swing/plaf/metal/MetalRootPaneUI.h | 56 + ...rollBarUI$MetalScrollBarPropertyChangeHandler.h | 47 + libjava/javax/swing/plaf/metal/MetalScrollBarUI.h | 84 + libjava/javax/swing/plaf/metal/MetalScrollButton.h | 65 + libjava/javax/swing/plaf/metal/MetalScrollPaneUI.h | 53 + libjava/javax/swing/plaf/metal/MetalSeparatorUI.h | 49 + .../metal/MetalSliderUI$MetalPropertyListener.h | 48 + libjava/javax/swing/plaf/metal/MetalSliderUI.h | 85 + .../MetalSplitPaneDivider$MetalDividerLayout.h | 59 + .../MetalSplitPaneDivider$MetalOneTouchButton.h | 63 + .../javax/swing/plaf/metal/MetalSplitPaneDivider.h | 60 + libjava/javax/swing/plaf/metal/MetalSplitPaneUI.h | 43 + .../metal/MetalTabbedPaneUI$TabbedPaneLayout.h | 43 + libjava/javax/swing/plaf/metal/MetalTabbedPaneUI.h | 85 + libjava/javax/swing/plaf/metal/MetalTextFieldUI.h | 46 + libjava/javax/swing/plaf/metal/MetalTheme.h | 94 + .../javax/swing/plaf/metal/MetalToggleButtonUI.h | 65 + .../metal/MetalToolBarUI$MetalContainerListener.h | 39 + .../metal/MetalToolBarUI$MetalDockingListener.h | 52 + .../metal/MetalToolBarUI$MetalRolloverListener.h | 39 + libjava/javax/swing/plaf/metal/MetalToolBarUI.h | 76 + libjava/javax/swing/plaf/metal/MetalToolTipUI.h | 76 + .../plaf/metal/MetalTreeUI$LineStyleListener.h | 48 + libjava/javax/swing/plaf/metal/MetalTreeUI.h | 80 + libjava/javax/swing/plaf/metal/MetalUtils.h | 67 + libjava/javax/swing/plaf/metal/OceanTheme.h | 62 + libjava/javax/swing/plaf/multi/MultiButtonUI.h | 66 + .../javax/swing/plaf/multi/MultiColorChooserUI.h | 66 + libjava/javax/swing/plaf/multi/MultiComboBoxUI.h | 70 + .../javax/swing/plaf/multi/MultiDesktopIconUI.h | 66 + .../javax/swing/plaf/multi/MultiDesktopPaneUI.h | 66 + .../javax/swing/plaf/multi/MultiFileChooserUI.h | 78 + .../javax/swing/plaf/multi/MultiInternalFrameUI.h | 66 + libjava/javax/swing/plaf/multi/MultiLabelUI.h | 66 + libjava/javax/swing/plaf/multi/MultiListUI.h | 72 + libjava/javax/swing/plaf/multi/MultiLookAndFeel.h | 50 + libjava/javax/swing/plaf/multi/MultiMenuBarUI.h | 66 + libjava/javax/swing/plaf/multi/MultiMenuItemUI.h | 66 + libjava/javax/swing/plaf/multi/MultiOptionPaneUI.h | 69 + libjava/javax/swing/plaf/multi/MultiPanelUI.h | 66 + libjava/javax/swing/plaf/multi/MultiPopupMenuUI.h | 66 + .../javax/swing/plaf/multi/MultiProgressBarUI.h | 66 + libjava/javax/swing/plaf/multi/MultiRootPaneUI.h | 66 + libjava/javax/swing/plaf/multi/MultiScrollBarUI.h | 66 + libjava/javax/swing/plaf/multi/MultiScrollPaneUI.h | 66 + libjava/javax/swing/plaf/multi/MultiSeparatorUI.h | 66 + libjava/javax/swing/plaf/multi/MultiSliderUI.h | 66 + libjava/javax/swing/plaf/multi/MultiSpinnerUI.h | 66 + libjava/javax/swing/plaf/multi/MultiSplitPaneUI.h | 73 + libjava/javax/swing/plaf/multi/MultiTabbedPaneUI.h | 71 + .../javax/swing/plaf/multi/MultiTableHeaderUI.h | 66 + libjava/javax/swing/plaf/multi/MultiTableUI.h | 66 + libjava/javax/swing/plaf/multi/MultiTextUI.h | 84 + libjava/javax/swing/plaf/multi/MultiToolBarUI.h | 66 + libjava/javax/swing/plaf/multi/MultiToolTipUI.h | 66 + libjava/javax/swing/plaf/multi/MultiTreeUI.h | 82 + libjava/javax/swing/plaf/multi/MultiViewportUI.h | 66 + libjava/javax/swing/plaf/synth/ColorType.h | 49 + libjava/javax/swing/plaf/synth/Region.h | 102 + libjava/javax/swing/plaf/synth/SynthConstants.h | 41 + libjava/javax/swing/plaf/synth/SynthContext.h | 48 + .../javax/swing/plaf/synth/SynthGraphicsUtils.h | 58 + libjava/javax/swing/plaf/synth/SynthLookAndFeel.h | 67 + libjava/javax/swing/plaf/synth/SynthPainter.h | 156 + libjava/javax/swing/plaf/synth/SynthStyle.h | 68 + libjava/javax/swing/plaf/synth/SynthStyleFactory.h | 39 + libjava/javax/swing/table/AbstractTableModel.h | 64 + .../table/DefaultTableCellRenderer$UIResource.h | 32 + .../javax/swing/table/DefaultTableCellRenderer.h | 69 + .../javax/swing/table/DefaultTableColumnModel.h | 96 + libjava/javax/swing/table/DefaultTableModel.h | 81 + ...sibleJTableHeader$AccessibleJTableHeaderEntry.h | 125 + .../table/JTableHeader$AccessibleJTableHeader.h | 53 + libjava/javax/swing/table/JTableHeader.h | 120 + libjava/javax/swing/table/TableCellEditor.h | 51 + libjava/javax/swing/table/TableCellRenderer.h | 40 + libjava/javax/swing/table/TableColumn.h | 105 + libjava/javax/swing/table/TableColumnModel.h | 58 + libjava/javax/swing/table/TableModel.h | 44 + libjava/javax/swing/text/AbstractDocument$1.h | 38 + libjava/javax/swing/text/AbstractDocument$2.h | 38 + .../swing/text/AbstractDocument$AbstractElement.h | 83 + .../swing/text/AbstractDocument$AttributeContext.h | 39 + .../swing/text/AbstractDocument$BidiElement.h | 39 + .../swing/text/AbstractDocument$BidiRootElement.h | 38 + .../swing/text/AbstractDocument$BranchElement.h | 57 + libjava/javax/swing/text/AbstractDocument$Bypass.h | 43 + .../javax/swing/text/AbstractDocument$Content.h | 43 + .../text/AbstractDocument$DefaultDocumentEvent.h | 62 + .../swing/text/AbstractDocument$ElementEdit.h | 46 + .../swing/text/AbstractDocument$LeafElement.h | 53 + libjava/javax/swing/text/AbstractDocument.h | 166 + libjava/javax/swing/text/AbstractWriter.h | 91 + .../javax/swing/text/AsyncBoxView$ChildLocator.h | 61 + libjava/javax/swing/text/AsyncBoxView$ChildState.h | 63 + libjava/javax/swing/text/AsyncBoxView$FlushTask.h | 38 + libjava/javax/swing/text/AsyncBoxView.h | 116 + .../swing/text/AttributeSet$CharacterAttribute.h | 31 + .../javax/swing/text/AttributeSet$ColorAttribute.h | 31 + .../javax/swing/text/AttributeSet$FontAttribute.h | 31 + .../swing/text/AttributeSet$ParagraphAttribute.h | 31 + libjava/javax/swing/text/AttributeSet.h | 42 + libjava/javax/swing/text/BadLocationException.h | 38 + libjava/javax/swing/text/BoxView.h | 115 + libjava/javax/swing/text/Caret.h | 61 + libjava/javax/swing/text/ChangedCharSetException.h | 39 + libjava/javax/swing/text/ComponentView$1.h | 38 + .../javax/swing/text/ComponentView$Interceptor.h | 63 + libjava/javax/swing/text/ComponentView.h | 68 + libjava/javax/swing/text/CompositeView.h | 86 + libjava/javax/swing/text/DateFormatter.h | 44 + .../swing/text/DefaultCaret$BlinkTimerListener.h | 49 + libjava/javax/swing/text/DefaultCaret$Bypass.h | 42 + .../swing/text/DefaultCaret$DocumentHandler.h | 44 + .../text/DefaultCaret$PropertyChangeHandler.h | 45 + libjava/javax/swing/text/DefaultCaret.h | 161 + .../swing/text/DefaultEditorKit$BackwardAction.h | 36 + .../javax/swing/text/DefaultEditorKit$BeepAction.h | 43 + .../swing/text/DefaultEditorKit$BeginAction.h | 44 + .../swing/text/DefaultEditorKit$BeginLineAction.h | 44 + .../swing/text/DefaultEditorKit$BeginWordAction.h | 44 + .../javax/swing/text/DefaultEditorKit$CopyAction.h | 43 + .../javax/swing/text/DefaultEditorKit$CutAction.h | 43 + .../text/DefaultEditorKit$DefaultKeyTypedAction.h | 43 + .../text/DefaultEditorKit$DeleteNextCharAction.h | 44 + .../text/DefaultEditorKit$DeletePrevCharAction.h | 44 + .../javax/swing/text/DefaultEditorKit$DownAction.h | 36 + .../javax/swing/text/DefaultEditorKit$EndAction.h | 44 + .../swing/text/DefaultEditorKit$EndLineAction.h | 44 + .../swing/text/DefaultEditorKit$EndWordAction.h | 44 + .../swing/text/DefaultEditorKit$ForwardAction.h | 36 + .../text/DefaultEditorKit$InsertBreakAction.h | 43 + .../text/DefaultEditorKit$InsertContentAction.h | 43 + .../swing/text/DefaultEditorKit$InsertTabAction.h | 43 + .../swing/text/DefaultEditorKit$NextWordAction.h | 44 + .../swing/text/DefaultEditorKit$PasteAction.h | 43 + .../text/DefaultEditorKit$PreviousWordAction.h | 44 + .../swing/text/DefaultEditorKit$SelectAllAction.h | 44 + .../swing/text/DefaultEditorKit$SelectLineAction.h | 44 + .../swing/text/DefaultEditorKit$SelectWordAction.h | 44 + .../DefaultEditorKit$SelectionBackwardAction.h | 36 + .../text/DefaultEditorKit$SelectionBeginAction.h | 44 + .../DefaultEditorKit$SelectionBeginLineAction.h | 44 + .../DefaultEditorKit$SelectionBeginWordAction.h | 44 + .../text/DefaultEditorKit$SelectionDownAction.h | 36 + .../text/DefaultEditorKit$SelectionEndAction.h | 44 + .../text/DefaultEditorKit$SelectionEndLineAction.h | 44 + .../text/DefaultEditorKit$SelectionEndWordAction.h | 44 + .../text/DefaultEditorKit$SelectionForwardAction.h | 36 + .../DefaultEditorKit$SelectionNextWordAction.h | 44 + .../DefaultEditorKit$SelectionPreviousWordAction.h | 44 + .../text/DefaultEditorKit$SelectionUpAction.h | 36 + .../javax/swing/text/DefaultEditorKit$UpAction.h | 36 + libjava/javax/swing/text/DefaultEditorKit.h | 100 + .../DefaultFormatter$FormatterDocumentFilter.h | 45 + libjava/javax/swing/text/DefaultFormatter.h | 58 + libjava/javax/swing/text/DefaultFormatterFactory.h | 53 + .../DefaultHighlighter$DefaultHighlightPainter.h | 49 + .../swing/text/DefaultHighlighter$HighlightEntry.h | 44 + .../text/DefaultHighlighter$LayerHighlightEntry.h | 50 + libjava/javax/swing/text/DefaultHighlighter.h | 67 + .../DefaultStyledDocument$AttributeUndoableEdit.h | 42 + .../javax/swing/text/DefaultStyledDocument$Edit.h | 52 + .../DefaultStyledDocument$ElementBuffer$Edit.h | 42 + .../text/DefaultStyledDocument$ElementBuffer.h | 93 + .../swing/text/DefaultStyledDocument$ElementSpec.h | 61 + .../text/DefaultStyledDocument$SectionElement.h | 37 + .../DefaultStyledDocument$StyleChangeListener.h | 42 + libjava/javax/swing/text/DefaultStyledDocument.h | 95 + libjava/javax/swing/text/DefaultTextUI.h | 32 + libjava/javax/swing/text/Document.h | 61 + .../javax/swing/text/DocumentFilter$FilterBypass.h | 38 + libjava/javax/swing/text/DocumentFilter.h | 37 + libjava/javax/swing/text/EditorKit.h | 54 + libjava/javax/swing/text/Element.h | 43 + .../javax/swing/text/ElementIterator$ElementRef.h | 38 + libjava/javax/swing/text/ElementIterator.h | 46 + libjava/javax/swing/text/EmptyAttributeSet$1.h | 39 + libjava/javax/swing/text/EmptyAttributeSet.h | 44 + libjava/javax/swing/text/FieldView$1.h | 42 + libjava/javax/swing/text/FieldView.h | 73 + libjava/javax/swing/text/FlowView$FlowStrategy.h | 62 + libjava/javax/swing/text/FlowView$LogicalView.h | 68 + libjava/javax/swing/text/FlowView.h | 69 + .../swing/text/GapContent$GapContentPosition.h | 40 + libjava/javax/swing/text/GapContent$InsertUndo.h | 44 + libjava/javax/swing/text/GapContent$Mark.h | 40 + libjava/javax/swing/text/GapContent$UndoPosRef.h | 41 + libjava/javax/swing/text/GapContent$UndoRemove.h | 43 + libjava/javax/swing/text/GapContent.h | 91 + .../swing/text/GlyphView$DefaultGlyphPainter.h | 60 + libjava/javax/swing/text/GlyphView$GlyphPainter.h | 55 + .../javax/swing/text/GlyphView$J2DGlyphPainter.h | 65 + libjava/javax/swing/text/GlyphView.h | 100 + libjava/javax/swing/text/Highlighter$Highlight.h | 35 + .../swing/text/Highlighter$HighlightPainter.h | 41 + libjava/javax/swing/text/Highlighter.h | 51 + libjava/javax/swing/text/IconView.h | 49 + libjava/javax/swing/text/InternationalFormatter.h | 64 + .../text/JTextComponent$AccessibleJTextComponent.h | 95 + .../swing/text/JTextComponent$DefaultKeymap.h | 56 + .../text/JTextComponent$DefaultTransferHandler.h | 56 + .../javax/swing/text/JTextComponent$KeyBinding.h | 35 + .../swing/text/JTextComponent$KeymapActionMap.h | 45 + .../swing/text/JTextComponent$KeymapWrapper.h | 45 + libjava/javax/swing/text/JTextComponent.h | 173 + libjava/javax/swing/text/Keymap.h | 48 + libjava/javax/swing/text/LabelView.h | 87 + .../swing/text/LayeredHighlighter$LayerPainter.h | 44 + libjava/javax/swing/text/LayeredHighlighter.h | 55 + libjava/javax/swing/text/LayoutQueue.h | 42 + libjava/javax/swing/text/MaskFormatter.h | 72 + libjava/javax/swing/text/MutableAttributeSet.h | 47 + .../swing/text/NavigationFilter$FilterBypass.h | 37 + libjava/javax/swing/text/NavigationFilter.h | 40 + libjava/javax/swing/text/NumberFormatter.h | 42 + libjava/javax/swing/text/ParagraphView$Row.h | 52 + libjava/javax/swing/text/ParagraphView.h | 82 + libjava/javax/swing/text/PasswordView.h | 58 + libjava/javax/swing/text/PlainDocument.h | 56 + libjava/javax/swing/text/PlainView.h | 103 + libjava/javax/swing/text/Position$Bias.h | 38 + libjava/javax/swing/text/Position.h | 32 + libjava/javax/swing/text/Segment.h | 55 + libjava/javax/swing/text/SimpleAttributeSet.h | 65 + .../javax/swing/text/StringContent$InsertUndo.h | 43 + libjava/javax/swing/text/StringContent$Mark.h | 37 + .../javax/swing/text/StringContent$RemoveUndo.h | 43 + .../swing/text/StringContent$StickyPosition.h | 39 + .../javax/swing/text/StringContent$UndoPosRef.h | 41 + libjava/javax/swing/text/StringContent.h | 71 + libjava/javax/swing/text/Style.h | 54 + .../swing/text/StyleConstants$CharacterConstants.h | 45 + .../swing/text/StyleConstants$ColorConstants.h | 34 + .../swing/text/StyleConstants$FontConstants.h | 36 + .../swing/text/StyleConstants$ParagraphConstants.h | 41 + libjava/javax/swing/text/StyleConstants.h | 126 + libjava/javax/swing/text/StyleContext$1.h | 40 + libjava/javax/swing/text/StyleContext$NamedStyle.h | 82 + .../javax/swing/text/StyleContext$SimpleFontSpec.h | 39 + .../swing/text/StyleContext$SmallAttributeSet.h | 57 + libjava/javax/swing/text/StyleContext.h | 110 + libjava/javax/swing/text/StyledDocument.h | 80 + .../swing/text/StyledEditorKit$AlignmentAction.h | 46 + .../javax/swing/text/StyledEditorKit$BoldAction.h | 43 + .../swing/text/StyledEditorKit$CaretTracker.h | 42 + .../swing/text/StyledEditorKit$FontFamilyAction.h | 46 + .../swing/text/StyledEditorKit$FontSizeAction.h | 46 + .../swing/text/StyledEditorKit$ForegroundAction.h | 47 + .../swing/text/StyledEditorKit$ItalicAction.h | 43 + .../swing/text/StyledEditorKit$StyledTextAction.h | 53 + .../swing/text/StyledEditorKit$StyledViewFactory.h | 36 + .../swing/text/StyledEditorKit$UnderlineAction.h | 43 + libjava/javax/swing/text/StyledEditorKit.h | 60 + libjava/javax/swing/text/TabExpander.h | 32 + libjava/javax/swing/text/TabSet.h | 48 + libjava/javax/swing/text/TabStop.h | 58 + libjava/javax/swing/text/TabableView.h | 34 + libjava/javax/swing/text/TableView$TableCell.h | 45 + libjava/javax/swing/text/TableView$TableRow.h | 56 + libjava/javax/swing/text/TableView.h | 69 + .../text/TextAction$HorizontalMovementAction.h | 50 + .../swing/text/TextAction$VerticalMovementAction.h | 50 + libjava/javax/swing/text/TextAction.h | 53 + libjava/javax/swing/text/Utilities.h | 61 + libjava/javax/swing/text/View.h | 116 + libjava/javax/swing/text/ViewFactory.h | 34 + .../swing/text/WrappedPlainView$WrappedLine.h | 67 + .../text/WrappedPlainView$WrappedLineCreator.h | 40 + libjava/javax/swing/text/WrappedPlainView.h | 92 + libjava/javax/swing/text/ZoneView$Zone.h | 41 + libjava/javax/swing/text/ZoneView.h | 74 + libjava/javax/swing/text/html/BRView.h | 37 + .../javax/swing/text/html/BlockView$PositionInfo.h | 64 + libjava/javax/swing/text/html/BlockView.h | 110 + libjava/javax/swing/text/html/CSS$Attribute.h | 112 + libjava/javax/swing/text/html/CSS.h | 50 + libjava/javax/swing/text/html/CSSBorder.h | 90 + .../swing/text/html/CSSParser$CSSParserCallback.h | 40 + libjava/javax/swing/text/html/CSSParser.h | 82 + .../swing/text/html/FormSubmitEvent$MethodType.h | 37 + libjava/javax/swing/text/html/FormSubmitEvent.h | 55 + libjava/javax/swing/text/html/FormView$1.h | 57 + .../swing/text/html/FormView$MouseEventListener.h | 51 + .../javax/swing/text/html/FormView$SubmitThread.h | 61 + libjava/javax/swing/text/html/FormView.h | 76 + .../swing/text/html/FrameSetView$FrameSetRow.h | 48 + libjava/javax/swing/text/html/FrameSetView.h | 53 + libjava/javax/swing/text/html/FrameView.h | 58 + .../javax/swing/text/html/HRuleView$Beginning.h | 43 + libjava/javax/swing/text/html/HRuleView.h | 54 + libjava/javax/swing/text/html/HTML$Attribute.h | 130 + libjava/javax/swing/text/html/HTML$Tag.h | 139 + libjava/javax/swing/text/html/HTML$UnknownTag.h | 38 + libjava/javax/swing/text/html/HTML.h | 55 + libjava/javax/swing/text/html/HTMLDocument$1.h | 44 + .../swing/text/html/HTMLDocument$BlockElement.h | 43 + .../text/html/HTMLDocument$HTMLReader$AreaAction.h | 44 + .../text/html/HTMLDocument$HTMLReader$BaseAction.h | 43 + .../html/HTMLDocument$HTMLReader$BlockAction.h | 43 + .../html/HTMLDocument$HTMLReader$CharacterAction.h | 43 + .../html/HTMLDocument$HTMLReader$ConvertAction.h | 44 + .../text/html/HTMLDocument$HTMLReader$FormAction.h | 46 + .../html/HTMLDocument$HTMLReader$FormTagAction.h | 42 + .../text/html/HTMLDocument$HTMLReader$HeadAction.h | 44 + .../html/HTMLDocument$HTMLReader$HiddenAction.h | 43 + .../html/HTMLDocument$HTMLReader$IsindexAction.h | 42 + .../text/html/HTMLDocument$HTMLReader$LinkAction.h | 43 + .../text/html/HTMLDocument$HTMLReader$MapAction.h | 44 + .../text/html/HTMLDocument$HTMLReader$MetaAction.h | 44 + .../html/HTMLDocument$HTMLReader$ParagraphAction.h | 43 + .../text/html/HTMLDocument$HTMLReader$PreAction.h | 43 + .../html/HTMLDocument$HTMLReader$SpecialAction.h | 42 + .../html/HTMLDocument$HTMLReader$StyleAction.h | 44 + .../text/html/HTMLDocument$HTMLReader$TagAction.h | 43 + .../html/HTMLDocument$HTMLReader$TitleAction.h | 44 + .../swing/text/html/HTMLDocument$HTMLReader.h | 111 + .../javax/swing/text/html/HTMLDocument$Iterator.h | 43 + .../swing/text/html/HTMLDocument$LeafIterator.h | 51 + .../swing/text/html/HTMLDocument$RunElement.h | 43 + libjava/javax/swing/text/html/HTMLDocument.h | 114 + .../swing/text/html/HTMLEditorKit$HTMLFactory.h | 38 + .../swing/text/html/HTMLEditorKit$HTMLTextAction.h | 52 + .../text/html/HTMLEditorKit$InsertHTMLTextAction.h | 66 + .../swing/text/html/HTMLEditorKit$LinkController.h | 63 + .../javax/swing/text/html/HTMLEditorKit$Parser.h | 37 + .../swing/text/html/HTMLEditorKit$ParserCallback.h | 48 + libjava/javax/swing/text/html/HTMLEditorKit.h | 119 + .../swing/text/html/HTMLFrameHyperlinkEvent.h | 54 + libjava/javax/swing/text/html/HTMLWriter.h | 86 + libjava/javax/swing/text/html/ImageView$1.h | 46 + libjava/javax/swing/text/html/ImageView$Observer.h | 48 + libjava/javax/swing/text/html/ImageView.h | 126 + libjava/javax/swing/text/html/InlineView.h | 69 + libjava/javax/swing/text/html/ListView.h | 54 + libjava/javax/swing/text/html/MinimalHTMLWriter.h | 80 + .../html/MultiAttributeSet$MultiNameEnumeration.h | 45 + libjava/javax/swing/text/html/MultiAttributeSet.h | 53 + libjava/javax/swing/text/html/MultiStyle.h | 56 + libjava/javax/swing/text/html/NullView.h | 51 + libjava/javax/swing/text/html/ObjectView.h | 46 + libjava/javax/swing/text/html/Option.h | 50 + libjava/javax/swing/text/html/ParagraphView.h | 88 + libjava/javax/swing/text/html/ResetableModel.h | 35 + .../javax/swing/text/html/ResetablePlainDocument.h | 43 + .../swing/text/html/ResetableToggleButtonModel.h | 41 + .../javax/swing/text/html/SelectComboBoxModel.h | 43 + libjava/javax/swing/text/html/SelectListModel.h | 46 + .../javax/swing/text/html/StyleSheet$BoxPainter.h | 65 + .../javax/swing/text/html/StyleSheet$CSSStyle.h | 76 + .../html/StyleSheet$CSSStyleSheetParserCallback.h | 68 + .../javax/swing/text/html/StyleSheet$CssParser.h | 69 + .../javax/swing/text/html/StyleSheet$ListPainter.h | 54 + libjava/javax/swing/text/html/StyleSheet.h | 121 + libjava/javax/swing/text/html/TableView$CellView.h | 46 + libjava/javax/swing/text/html/TableView$RowView.h | 55 + libjava/javax/swing/text/html/TableView.h | 119 + libjava/javax/swing/text/html/ViewAttributeSet.h | 45 + .../javax/swing/text/html/parser/AttributeList$1.h | 41 + .../javax/swing/text/html/parser/AttributeList.h | 80 + .../javax/swing/text/html/parser/ContentModel.h | 53 + libjava/javax/swing/text/html/parser/DTD.h | 89 + .../javax/swing/text/html/parser/DTDConstants.h | 72 + .../text/html/parser/DocumentParser$gnuParser.h | 54 + .../javax/swing/text/html/parser/DocumentParser.h | 57 + libjava/javax/swing/text/html/parser/Element$1.h | 41 + libjava/javax/swing/text/html/parser/Element.h | 90 + libjava/javax/swing/text/html/parser/Entity$1.h | 41 + libjava/javax/swing/text/html/parser/Entity.h | 78 + libjava/javax/swing/text/html/parser/Parser$1.h | 63 + libjava/javax/swing/text/html/parser/Parser.h | 96 + .../text/html/parser/ParserDelegator$gnuParser.h | 57 + .../javax/swing/text/html/parser/ParserDelegator.h | 52 + libjava/javax/swing/text/html/parser/TagElement.h | 52 + libjava/javax/swing/text/rtf/ControlWordToken.h | 38 + libjava/javax/swing/text/rtf/RTFEditorKit.h | 39 + libjava/javax/swing/text/rtf/RTFParseException.h | 36 + libjava/javax/swing/text/rtf/RTFParser.h | 49 + libjava/javax/swing/text/rtf/RTFScanner.h | 50 + libjava/javax/swing/text/rtf/TextToken.h | 36 + libjava/javax/swing/text/rtf/Token.h | 41 + .../tree/AbstractLayoutCache$NodeDimensions.h | 40 + libjava/javax/swing/tree/AbstractLayoutCache.h | 89 + ...efaultMutableTreeNode$BreadthFirstEnumeration.h | 39 + .../DefaultMutableTreeNode$PostorderEnumeration.h | 42 + .../DefaultMutableTreeNode$PreorderEnumeration.h | 42 + libjava/javax/swing/tree/DefaultMutableTreeNode.h | 105 + .../tree/DefaultTreeCellEditor$DefaultTextField.h | 55 + .../tree/DefaultTreeCellEditor$EditorContainer.h | 49 + .../DefaultTreeCellEditor$RealEditorListener.h | 43 + libjava/javax/swing/tree/DefaultTreeCellEditor.h | 113 + libjava/javax/swing/tree/DefaultTreeCellRenderer.h | 105 + libjava/javax/swing/tree/DefaultTreeModel.h | 86 + .../DefaultTreeSelectionModel$PathPlaceHolder.h | 36 + .../javax/swing/tree/DefaultTreeSelectionModel.h | 119 + libjava/javax/swing/tree/ExpandVetoException.h | 40 + .../swing/tree/FixedHeightLayoutCache$NodeRecord.h | 54 + libjava/javax/swing/tree/FixedHeightLayoutCache.h | 82 + libjava/javax/swing/tree/MutableTreeNode.h | 45 + libjava/javax/swing/tree/RowMapper.h | 35 + libjava/javax/swing/tree/TreeCellEditor.h | 51 + libjava/javax/swing/tree/TreeCellRenderer.h | 40 + libjava/javax/swing/tree/TreeModel.h | 44 + libjava/javax/swing/tree/TreeNode.h | 38 + libjava/javax/swing/tree/TreePath.h | 56 + libjava/javax/swing/tree/TreeSelectionModel.h | 76 + .../tree/VariableHeightLayoutCache$NodeRecord.h | 54 + .../javax/swing/tree/VariableHeightLayoutCache.h | 85 + libjava/javax/swing/undo/AbstractUndoableEdit.h | 54 + libjava/javax/swing/undo/CannotRedoException.h | 32 + libjava/javax/swing/undo/CannotUndoException.h | 32 + libjava/javax/swing/undo/CompoundEdit.h | 56 + libjava/javax/swing/undo/StateEdit.h | 49 + libjava/javax/swing/undo/StateEditable.h | 34 + libjava/javax/swing/undo/UndoManager.h | 66 + libjava/javax/swing/undo/UndoableEdit.h | 42 + libjava/javax/swing/undo/UndoableEditSupport.h | 61 + .../javax/transaction/HeuristicCommitException.h | 30 + .../javax/transaction/HeuristicMixedException.h | 30 + .../javax/transaction/HeuristicRollbackException.h | 30 + .../transaction/InvalidTransactionException.h | 30 + libjava/javax/transaction/NotSupportedException.h | 30 + libjava/javax/transaction/RollbackException.h | 30 + libjava/javax/transaction/Status.h | 38 + libjava/javax/transaction/Synchronization.h | 30 + libjava/javax/transaction/SystemException.h | 32 + libjava/javax/transaction/Transaction.h | 40 + libjava/javax/transaction/TransactionManager.h | 38 + .../transaction/TransactionRequiredException.h | 30 + .../transaction/TransactionRolledbackException.h | 30 + libjava/javax/transaction/UserTransaction.h | 34 + libjava/javax/transaction/xa/XAException.h | 60 + libjava/javax/transaction/xa/XAResource.h | 55 + libjava/javax/transaction/xa/Xid.h | 38 + libjava/javax/xml/XMLConstants.h | 41 + .../xml/datatype/DatatypeConfigurationException.h | 35 + .../javax/xml/datatype/DatatypeConstants$Field.h | 39 + libjava/javax/xml/datatype/DatatypeConstants.h | 73 + libjava/javax/xml/datatype/DatatypeFactory.h | 67 + libjava/javax/xml/datatype/Duration.h | 70 + libjava/javax/xml/datatype/XMLGregorianCalendar.h | 84 + libjava/javax/xml/namespace/NamespaceContext.h | 34 + libjava/javax/xml/namespace/QName.h | 50 + libjava/javax/xml/parsers/DocumentBuilder.h | 71 + libjava/javax/xml/parsers/DocumentBuilderFactory.h | 73 + .../javax/xml/parsers/FactoryConfigurationError.h | 40 + .../xml/parsers/ParserConfigurationException.h | 33 + libjava/javax/xml/parsers/SAXParser.h | 73 + libjava/javax/xml/parsers/SAXParserFactory.h | 59 + libjava/javax/xml/stream/EventFilter.h | 36 + .../javax/xml/stream/FactoryConfigurationError.h | 41 + libjava/javax/xml/stream/Location.h | 36 + libjava/javax/xml/stream/StreamFilter.h | 33 + libjava/javax/xml/stream/XMLEventFactory.h | 86 + libjava/javax/xml/stream/XMLEventReader.h | 44 + libjava/javax/xml/stream/XMLEventWriter.h | 49 + libjava/javax/xml/stream/XMLInputFactory.h | 85 + libjava/javax/xml/stream/XMLOutputFactory.h | 57 + libjava/javax/xml/stream/XMLReporter.h | 33 + libjava/javax/xml/stream/XMLResolver.h | 32 + libjava/javax/xml/stream/XMLStreamConstants.h | 46 + libjava/javax/xml/stream/XMLStreamException.h | 44 + libjava/javax/xml/stream/XMLStreamReader.h | 84 + libjava/javax/xml/stream/XMLStreamWriter.h | 69 + libjava/javax/xml/stream/events/Attribute.h | 62 + libjava/javax/xml/stream/events/Characters.h | 61 + libjava/javax/xml/stream/events/Comment.h | 59 + libjava/javax/xml/stream/events/DTD.h | 62 + libjava/javax/xml/stream/events/EndDocument.h | 58 + libjava/javax/xml/stream/events/EndElement.h | 59 + .../javax/xml/stream/events/EntityDeclaration.h | 64 + libjava/javax/xml/stream/events/EntityReference.h | 61 + libjava/javax/xml/stream/events/Namespace.h | 61 + .../javax/xml/stream/events/NotationDeclaration.h | 61 + .../xml/stream/events/ProcessingInstruction.h | 60 + libjava/javax/xml/stream/events/StartDocument.h | 64 + libjava/javax/xml/stream/events/StartElement.h | 65 + libjava/javax/xml/stream/events/XMLEvent.h | 58 + .../javax/xml/stream/util/EventReaderDelegate.h | 55 + libjava/javax/xml/stream/util/ReaderDelegate.h | 95 + libjava/javax/xml/stream/util/XMLEventAllocator.h | 43 + libjava/javax/xml/stream/util/XMLEventConsumer.h | 39 + libjava/javax/xml/transform/ErrorListener.h | 35 + libjava/javax/xml/transform/OutputKeys.h | 42 + libjava/javax/xml/transform/Result.h | 35 + libjava/javax/xml/transform/Source.h | 33 + libjava/javax/xml/transform/SourceLocator.h | 35 + libjava/javax/xml/transform/Templates.h | 34 + libjava/javax/xml/transform/Transformer.h | 50 + .../transform/TransformerConfigurationException.h | 41 + libjava/javax/xml/transform/TransformerException.h | 52 + libjava/javax/xml/transform/TransformerFactory.h | 54 + .../TransformerFactoryConfigurationError.h | 41 + libjava/javax/xml/transform/URIResolver.h | 33 + libjava/javax/xml/transform/dom/DOMLocator.h | 49 + libjava/javax/xml/transform/dom/DOMResult.h | 61 + libjava/javax/xml/transform/dom/DOMSource.h | 56 + libjava/javax/xml/transform/sax/SAXResult.h | 62 + libjava/javax/xml/transform/sax/SAXSource.h | 61 + .../xml/transform/sax/SAXTransformerFactory.h | 58 + libjava/javax/xml/transform/sax/TemplatesHandler.h | 62 + .../javax/xml/transform/sax/TransformerHandler.h | 73 + libjava/javax/xml/transform/stream/StreamResult.h | 52 + libjava/javax/xml/transform/stream/StreamSource.h | 57 + libjava/javax/xml/validation/Schema.h | 37 + libjava/javax/xml/validation/SchemaFactory.h | 85 + libjava/javax/xml/validation/SchemaFactoryLoader.h | 35 + libjava/javax/xml/validation/TypeInfoProvider.h | 47 + libjava/javax/xml/validation/Validator.h | 69 + libjava/javax/xml/validation/ValidatorHandler.h | 84 + libjava/javax/xml/xpath/XPath.h | 61 + libjava/javax/xml/xpath/XPathConstants.h | 42 + libjava/javax/xml/xpath/XPathException.h | 42 + libjava/javax/xml/xpath/XPathExpression.h | 49 + libjava/javax/xml/xpath/XPathExpressionException.h | 36 + libjava/javax/xml/xpath/XPathFactory.h | 49 + .../xml/xpath/XPathFactoryConfigurationException.h | 36 + libjava/javax/xml/xpath/XPathFunction.h | 32 + libjava/javax/xml/xpath/XPathFunctionException.h | 36 + libjava/javax/xml/xpath/XPathFunctionResolver.h | 37 + libjava/javax/xml/xpath/XPathVariableResolver.h | 36 + libjava/link.cc | 217 +- libjava/org/ietf/jgss/ChannelBinding.h | 52 + libjava/org/ietf/jgss/GSSContext.h | 80 + libjava/org/ietf/jgss/GSSCredential.h | 52 + libjava/org/ietf/jgss/GSSException.h | 72 + libjava/org/ietf/jgss/GSSManager.h | 61 + libjava/org/ietf/jgss/GSSName.h | 49 + libjava/org/ietf/jgss/MessageProp.h | 54 + libjava/org/ietf/jgss/Oid.h | 53 + libjava/org/omg/CORBA/ACTIVITY_COMPLETED.h | 39 + libjava/org/omg/CORBA/ACTIVITY_REQUIRED.h | 39 + libjava/org/omg/CORBA/ARG_IN.h | 32 + libjava/org/omg/CORBA/ARG_INOUT.h | 32 + libjava/org/omg/CORBA/ARG_OUT.h | 32 + libjava/org/omg/CORBA/Any.h | 103 + libjava/org/omg/CORBA/AnyHolder.h | 47 + libjava/org/omg/CORBA/AnySeqHelper.h | 47 + libjava/org/omg/CORBA/AnySeqHolder.h | 59 + libjava/org/omg/CORBA/BAD_CONTEXT.h | 39 + libjava/org/omg/CORBA/BAD_INV_ORDER.h | 39 + libjava/org/omg/CORBA/BAD_OPERATION.h | 39 + libjava/org/omg/CORBA/BAD_PARAM.h | 39 + libjava/org/omg/CORBA/BAD_POLICY.h | 32 + libjava/org/omg/CORBA/BAD_POLICY_TYPE.h | 32 + libjava/org/omg/CORBA/BAD_POLICY_VALUE.h | 32 + libjava/org/omg/CORBA/BAD_QOS.h | 39 + libjava/org/omg/CORBA/BAD_TYPECODE.h | 39 + libjava/org/omg/CORBA/BooleanHolder.h | 46 + libjava/org/omg/CORBA/BooleanSeqHelper.h | 47 + libjava/org/omg/CORBA/BooleanSeqHolder.h | 58 + libjava/org/omg/CORBA/Bounds.h | 33 + libjava/org/omg/CORBA/ByteHolder.h | 46 + libjava/org/omg/CORBA/CODESET_INCOMPATIBLE.h | 39 + libjava/org/omg/CORBA/COMM_FAILURE.h | 39 + libjava/org/omg/CORBA/CTX_RESTRICT_SCOPE.h | 32 + libjava/org/omg/CORBA/CharHolder.h | 46 + libjava/org/omg/CORBA/CharSeqHelper.h | 47 + libjava/org/omg/CORBA/CharSeqHolder.h | 58 + libjava/org/omg/CORBA/CompletionStatus.h | 50 + libjava/org/omg/CORBA/CompletionStatusHelper.h | 46 + libjava/org/omg/CORBA/Context.h | 41 + libjava/org/omg/CORBA/ContextList.h | 36 + libjava/org/omg/CORBA/Current.h | 56 + libjava/org/omg/CORBA/CurrentHelper$_CurrentStub.h | 39 + libjava/org/omg/CORBA/CurrentHelper.h | 48 + libjava/org/omg/CORBA/CurrentHolder.h | 44 + libjava/org/omg/CORBA/CurrentOperations.h | 31 + libjava/org/omg/CORBA/CustomMarshal.h | 35 + libjava/org/omg/CORBA/CustomValue.h | 38 + libjava/org/omg/CORBA/DATA_CONVERSION.h | 39 + libjava/org/omg/CORBA/DataInputStream.h | 82 + libjava/org/omg/CORBA/DataOutputStream.h | 69 + libjava/org/omg/CORBA/DefinitionKind.h | 95 + libjava/org/omg/CORBA/DefinitionKindHelper.h | 46 + libjava/org/omg/CORBA/DomainManager.h | 56 + libjava/org/omg/CORBA/DomainManagerOperations.h | 33 + libjava/org/omg/CORBA/DoubleHolder.h | 46 + libjava/org/omg/CORBA/DoubleSeqHelper.h | 47 + libjava/org/omg/CORBA/DoubleSeqHolder.h | 58 + libjava/org/omg/CORBA/DynAny.h | 104 + libjava/org/omg/CORBA/DynAnyPackage/Invalid.h | 39 + libjava/org/omg/CORBA/DynAnyPackage/InvalidSeq.h | 39 + libjava/org/omg/CORBA/DynAnyPackage/InvalidValue.h | 39 + libjava/org/omg/CORBA/DynAnyPackage/TypeMismatch.h | 39 + libjava/org/omg/CORBA/DynArray.h | 107 + libjava/org/omg/CORBA/DynEnum.h | 109 + libjava/org/omg/CORBA/DynFixed.h | 107 + libjava/org/omg/CORBA/DynSequence.h | 109 + libjava/org/omg/CORBA/DynStruct.h | 111 + libjava/org/omg/CORBA/DynUnion.h | 114 + libjava/org/omg/CORBA/DynValue.h | 111 + libjava/org/omg/CORBA/DynamicImplementation.h | 37 + libjava/org/omg/CORBA/Environment.h | 35 + libjava/org/omg/CORBA/ExceptionList.h | 37 + libjava/org/omg/CORBA/FREE_MEM.h | 39 + libjava/org/omg/CORBA/FieldNameHelper.h | 45 + libjava/org/omg/CORBA/FixedHolder.h | 50 + libjava/org/omg/CORBA/FloatHolder.h | 46 + libjava/org/omg/CORBA/FloatSeqHelper.h | 47 + libjava/org/omg/CORBA/FloatSeqHolder.h | 58 + libjava/org/omg/CORBA/IDLType.h | 61 + libjava/org/omg/CORBA/IDLTypeHelper.h | 48 + libjava/org/omg/CORBA/IDLTypeOperations.h | 36 + libjava/org/omg/CORBA/IMP_LIMIT.h | 39 + libjava/org/omg/CORBA/INITIALIZE.h | 39 + libjava/org/omg/CORBA/INTERNAL.h | 39 + libjava/org/omg/CORBA/INTF_REPOS.h | 39 + libjava/org/omg/CORBA/INVALID_ACTIVITY.h | 39 + libjava/org/omg/CORBA/INVALID_TRANSACTION.h | 39 + libjava/org/omg/CORBA/INV_FLAG.h | 39 + libjava/org/omg/CORBA/INV_IDENT.h | 39 + libjava/org/omg/CORBA/INV_OBJREF.h | 39 + libjava/org/omg/CORBA/INV_POLICY.h | 39 + libjava/org/omg/CORBA/IRObject.h | 59 + libjava/org/omg/CORBA/IRObjectOperations.h | 34 + libjava/org/omg/CORBA/IdentifierHelper.h | 45 + libjava/org/omg/CORBA/IntHolder.h | 46 + libjava/org/omg/CORBA/LocalObject.h | 76 + libjava/org/omg/CORBA/LongHolder.h | 46 + libjava/org/omg/CORBA/LongLongSeqHelper.h | 47 + libjava/org/omg/CORBA/LongLongSeqHolder.h | 58 + libjava/org/omg/CORBA/LongSeqHelper.h | 47 + libjava/org/omg/CORBA/LongSeqHolder.h | 58 + libjava/org/omg/CORBA/MARSHAL.h | 39 + libjava/org/omg/CORBA/NO_IMPLEMENT.h | 39 + libjava/org/omg/CORBA/NO_MEMORY.h | 39 + libjava/org/omg/CORBA/NO_PERMISSION.h | 39 + libjava/org/omg/CORBA/NO_RESOURCES.h | 39 + libjava/org/omg/CORBA/NO_RESPONSE.h | 39 + libjava/org/omg/CORBA/NVList.h | 40 + libjava/org/omg/CORBA/NameValuePair.h | 39 + libjava/org/omg/CORBA/NameValuePairHelper.h | 49 + libjava/org/omg/CORBA/NamedValue.h | 36 + libjava/org/omg/CORBA/OBJECT_NOT_EXIST.h | 39 + libjava/org/omg/CORBA/OBJ_ADAPTER.h | 39 + libjava/org/omg/CORBA/OMGVMCID.h | 32 + libjava/org/omg/CORBA/ORB.h | 137 + .../omg/CORBA/ORBPackage/InconsistentTypeCode.h | 39 + libjava/org/omg/CORBA/ORBPackage/InvalidName.h | 39 + libjava/org/omg/CORBA/Object.h | 55 + libjava/org/omg/CORBA/ObjectHelper.h | 46 + libjava/org/omg/CORBA/ObjectHolder.h | 57 + libjava/org/omg/CORBA/OctetSeqHelper.h | 47 + libjava/org/omg/CORBA/OctetSeqHolder.h | 58 + libjava/org/omg/CORBA/PERSIST_STORE.h | 39 + libjava/org/omg/CORBA/PRIVATE_MEMBER.h | 32 + libjava/org/omg/CORBA/PUBLIC_MEMBER.h | 32 + libjava/org/omg/CORBA/ParameterMode.h | 50 + libjava/org/omg/CORBA/ParameterModeHelper.h | 46 + libjava/org/omg/CORBA/ParameterModeHolder.h | 44 + libjava/org/omg/CORBA/Policy.h | 58 + libjava/org/omg/CORBA/PolicyError.h | 38 + libjava/org/omg/CORBA/PolicyErrorCodeHelper.h | 45 + libjava/org/omg/CORBA/PolicyErrorHelper.h | 46 + libjava/org/omg/CORBA/PolicyErrorHolder.h | 44 + libjava/org/omg/CORBA/PolicyHelper.h | 48 + libjava/org/omg/CORBA/PolicyHolder.h | 44 + libjava/org/omg/CORBA/PolicyListHelper.h | 48 + libjava/org/omg/CORBA/PolicyListHolder.h | 46 + libjava/org/omg/CORBA/PolicyOperations.h | 35 + libjava/org/omg/CORBA/PolicyTypeHelper.h | 45 + libjava/org/omg/CORBA/Principal.h | 39 + libjava/org/omg/CORBA/PrincipalHolder.h | 47 + libjava/org/omg/CORBA/REBIND.h | 39 + libjava/org/omg/CORBA/RepositoryIdHelper.h | 45 + libjava/org/omg/CORBA/Request.h | 63 + libjava/org/omg/CORBA/ServerRequest.h | 44 + libjava/org/omg/CORBA/ServiceDetail.h | 37 + libjava/org/omg/CORBA/ServiceDetailHelper.h | 49 + libjava/org/omg/CORBA/ServiceInformation.h | 38 + libjava/org/omg/CORBA/ServiceInformationHelper.h | 49 + libjava/org/omg/CORBA/ServiceInformationHolder.h | 44 + libjava/org/omg/CORBA/SetOverrideType.h | 46 + libjava/org/omg/CORBA/SetOverrideTypeHelper.h | 46 + libjava/org/omg/CORBA/ShortHolder.h | 46 + libjava/org/omg/CORBA/ShortSeqHelper.h | 47 + libjava/org/omg/CORBA/ShortSeqHolder.h | 58 + libjava/org/omg/CORBA/StringHolder.h | 56 + libjava/org/omg/CORBA/StringSeqHelper.h | 47 + libjava/org/omg/CORBA/StringSeqHolder.h | 58 + libjava/org/omg/CORBA/StringValueHelper.h | 52 + libjava/org/omg/CORBA/StructMember.h | 41 + libjava/org/omg/CORBA/StructMemberHelper.h | 50 + libjava/org/omg/CORBA/SystemException.h | 38 + libjava/org/omg/CORBA/TCKind.h | 107 + libjava/org/omg/CORBA/TIMEOUT.h | 39 + libjava/org/omg/CORBA/TRANSACTION_MODE.h | 39 + libjava/org/omg/CORBA/TRANSACTION_REQUIRED.h | 39 + libjava/org/omg/CORBA/TRANSACTION_ROLLEDBACK.h | 39 + libjava/org/omg/CORBA/TRANSACTION_UNAVAILABLE.h | 39 + libjava/org/omg/CORBA/TRANSIENT.h | 39 + libjava/org/omg/CORBA/TypeCode.h | 56 + libjava/org/omg/CORBA/TypeCodeHolder.h | 46 + libjava/org/omg/CORBA/TypeCodePackage/BadKind.h | 39 + libjava/org/omg/CORBA/TypeCodePackage/Bounds.h | 39 + libjava/org/omg/CORBA/ULongLongSeqHelper.h | 47 + libjava/org/omg/CORBA/ULongLongSeqHolder.h | 58 + libjava/org/omg/CORBA/ULongSeqHelper.h | 47 + libjava/org/omg/CORBA/ULongSeqHolder.h | 58 + libjava/org/omg/CORBA/UNKNOWN.h | 39 + libjava/org/omg/CORBA/UNSUPPORTED_POLICY.h | 32 + libjava/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.h | 32 + libjava/org/omg/CORBA/UShortSeqHelper.h | 47 + libjava/org/omg/CORBA/UShortSeqHolder.h | 58 + libjava/org/omg/CORBA/UnionMember.h | 43 + libjava/org/omg/CORBA/UnionMemberHelper.h | 50 + libjava/org/omg/CORBA/UnknownUserException.h | 38 + libjava/org/omg/CORBA/UnknownUserExceptionHelper.h | 46 + libjava/org/omg/CORBA/UnknownUserExceptionHolder.h | 44 + libjava/org/omg/CORBA/UserException.h | 36 + libjava/org/omg/CORBA/VM_ABSTRACT.h | 32 + libjava/org/omg/CORBA/VM_CUSTOM.h | 32 + libjava/org/omg/CORBA/VM_NONE.h | 32 + libjava/org/omg/CORBA/VM_TRUNCATABLE.h | 32 + libjava/org/omg/CORBA/ValueBaseHelper.h | 45 + libjava/org/omg/CORBA/ValueBaseHolder.h | 43 + libjava/org/omg/CORBA/ValueMember.h | 45 + libjava/org/omg/CORBA/ValueMemberHelper.h | 50 + libjava/org/omg/CORBA/VersionSpecHelper.h | 45 + libjava/org/omg/CORBA/VisibilityHelper.h | 45 + libjava/org/omg/CORBA/WCharSeqHelper.h | 47 + libjava/org/omg/CORBA/WCharSeqHolder.h | 58 + libjava/org/omg/CORBA/WStringSeqHelper.h | 47 + libjava/org/omg/CORBA/WStringSeqHolder.h | 58 + libjava/org/omg/CORBA/WStringValueHelper.h | 52 + libjava/org/omg/CORBA/WrongTransaction.h | 33 + libjava/org/omg/CORBA/WrongTransactionHelper.h | 46 + libjava/org/omg/CORBA/WrongTransactionHolder.h | 44 + libjava/org/omg/CORBA/_IDLTypeStub.h | 48 + libjava/org/omg/CORBA/_PolicyStub.h | 47 + .../org/omg/CORBA/portable/ApplicationException.h | 43 + libjava/org/omg/CORBA/portable/BoxedValueHelper.h | 39 + libjava/org/omg/CORBA/portable/CustomValue.h | 41 + libjava/org/omg/CORBA/portable/Delegate.h | 77 + libjava/org/omg/CORBA/portable/IDLEntity.h | 34 + .../org/omg/CORBA/portable/IndirectionException.h | 39 + libjava/org/omg/CORBA/portable/InputStream.h | 85 + libjava/org/omg/CORBA/portable/InvokeHandler.h | 38 + libjava/org/omg/CORBA/portable/ObjectImpl.h | 80 + libjava/org/omg/CORBA/portable/OutputStream.h | 87 + .../org/omg/CORBA/portable/RemarshalException.h | 38 + libjava/org/omg/CORBA/portable/ResponseHandler.h | 37 + libjava/org/omg/CORBA/portable/ServantObject.h | 36 + libjava/org/omg/CORBA/portable/Streamable.h | 40 + libjava/org/omg/CORBA/portable/StreamableValue.h | 43 + libjava/org/omg/CORBA/portable/UnknownException.h | 39 + libjava/org/omg/CORBA/portable/ValueBase.h | 37 + libjava/org/omg/CORBA/portable/ValueFactory.h | 42 + libjava/org/omg/CORBA_2_3/ORB.h | 45 + libjava/org/omg/CORBA_2_3/portable/Delegate.h | 40 + libjava/org/omg/CORBA_2_3/portable/InputStream.h | 49 + libjava/org/omg/CORBA_2_3/portable/ObjectImpl.h | 36 + libjava/org/omg/CORBA_2_3/portable/OutputStream.h | 47 + libjava/org/omg/CosNaming/Binding.h | 39 + libjava/org/omg/CosNaming/BindingHelper.h | 52 + libjava/org/omg/CosNaming/BindingHolder.h | 47 + libjava/org/omg/CosNaming/BindingIterator.h | 64 + libjava/org/omg/CosNaming/BindingIteratorHelper.h | 55 + libjava/org/omg/CosNaming/BindingIteratorHolder.h | 47 + .../org/omg/CosNaming/BindingIteratorOperations.h | 36 + libjava/org/omg/CosNaming/BindingIteratorPOA.h | 58 + libjava/org/omg/CosNaming/BindingListHelper.h | 54 + libjava/org/omg/CosNaming/BindingListHolder.h | 49 + libjava/org/omg/CosNaming/BindingType.h | 45 + libjava/org/omg/CosNaming/BindingTypeHelper.h | 52 + libjava/org/omg/CosNaming/BindingTypeHolder.h | 47 + libjava/org/omg/CosNaming/IstringHelper.h | 48 + libjava/org/omg/CosNaming/NameComponent.h | 41 + libjava/org/omg/CosNaming/NameComponentHelper.h | 52 + libjava/org/omg/CosNaming/NameComponentHolder.h | 47 + libjava/org/omg/CosNaming/NameHelper.h | 54 + libjava/org/omg/CosNaming/NameHolder.h | 49 + libjava/org/omg/CosNaming/NamingContext.h | 72 + libjava/org/omg/CosNaming/NamingContextExt.h | 77 + libjava/org/omg/CosNaming/NamingContextExtHelper.h | 55 + libjava/org/omg/CosNaming/NamingContextExtHolder.h | 47 + .../org/omg/CosNaming/NamingContextExtOperations.h | 55 + libjava/org/omg/CosNaming/NamingContextExtPOA.h | 75 + .../NamingContextExtPackage/AddressHelper.h | 54 + .../NamingContextExtPackage/InvalidAddress.h | 39 + .../NamingContextExtPackage/InvalidAddressHelper.h | 55 + .../NamingContextExtPackage/InvalidAddressHolder.h | 50 + .../NamingContextExtPackage/StringNameHelper.h | 54 + .../NamingContextExtPackage/URLStringHelper.h | 54 + libjava/org/omg/CosNaming/NamingContextHelper.h | 55 + libjava/org/omg/CosNaming/NamingContextHolder.h | 47 + .../org/omg/CosNaming/NamingContextOperations.h | 51 + libjava/org/omg/CosNaming/NamingContextPOA.h | 67 + .../CosNaming/NamingContextPackage/AlreadyBound.h | 39 + .../NamingContextPackage/AlreadyBoundHelper.h | 55 + .../NamingContextPackage/AlreadyBoundHolder.h | 50 + .../CosNaming/NamingContextPackage/CannotProceed.h | 46 + .../NamingContextPackage/CannotProceedHelper.h | 55 + .../NamingContextPackage/CannotProceedHolder.h | 50 + .../CosNaming/NamingContextPackage/InvalidName.h | 39 + .../NamingContextPackage/InvalidNameHelper.h | 55 + .../NamingContextPackage/InvalidNameHolder.h | 50 + .../omg/CosNaming/NamingContextPackage/NotEmpty.h | 39 + .../NamingContextPackage/NotEmptyHelper.h | 55 + .../NamingContextPackage/NotEmptyHolder.h | 50 + .../omg/CosNaming/NamingContextPackage/NotFound.h | 46 + .../NamingContextPackage/NotFoundHelper.h | 55 + .../NamingContextPackage/NotFoundHolder.h | 50 + .../NamingContextPackage/NotFoundReason.h | 50 + .../NamingContextPackage/NotFoundReasonHelper.h | 55 + .../NamingContextPackage/NotFoundReasonHolder.h | 50 + .../org/omg/CosNaming/_BindingIteratorImplBase.h | 56 + libjava/org/omg/CosNaming/_BindingIteratorStub.h | 57 + .../org/omg/CosNaming/_NamingContextExtImplBase.h | 58 + libjava/org/omg/CosNaming/_NamingContextExtStub.h | 66 + libjava/org/omg/CosNaming/_NamingContextImplBase.h | 67 + libjava/org/omg/CosNaming/_NamingContextStub.h | 67 + libjava/org/omg/Dynamic/Parameter.h | 43 + libjava/org/omg/DynamicAny/AnySeqHelper.h | 50 + libjava/org/omg/DynamicAny/DynAny.h | 111 + libjava/org/omg/DynamicAny/DynAnyFactory.h | 64 + libjava/org/omg/DynamicAny/DynAnyFactoryHelper.h | 55 + .../org/omg/DynamicAny/DynAnyFactoryOperations.h | 39 + .../DynAnyFactoryPackage/InconsistentTypeCode.h | 39 + .../InconsistentTypeCodeHelper.h | 52 + libjava/org/omg/DynamicAny/DynAnyHelper.h | 52 + libjava/org/omg/DynamicAny/DynAnyOperations.h | 88 + .../omg/DynamicAny/DynAnyPackage/InvalidValue.h | 39 + .../DynamicAny/DynAnyPackage/InvalidValueHelper.h | 52 + .../omg/DynamicAny/DynAnyPackage/TypeMismatch.h | 39 + .../DynamicAny/DynAnyPackage/TypeMismatchHelper.h | 52 + libjava/org/omg/DynamicAny/DynAnySeqHelper.h | 51 + libjava/org/omg/DynamicAny/DynArray.h | 116 + libjava/org/omg/DynamicAny/DynArrayHelper.h | 52 + libjava/org/omg/DynamicAny/DynArrayOperations.h | 94 + libjava/org/omg/DynamicAny/DynEnum.h | 116 + libjava/org/omg/DynamicAny/DynEnumHelper.h | 52 + libjava/org/omg/DynamicAny/DynEnumOperations.h | 92 + libjava/org/omg/DynamicAny/DynFixed.h | 114 + libjava/org/omg/DynamicAny/DynFixedHelper.h | 52 + libjava/org/omg/DynamicAny/DynFixedOperations.h | 90 + libjava/org/omg/DynamicAny/DynSequence.h | 118 + libjava/org/omg/DynamicAny/DynSequenceHelper.h | 52 + libjava/org/omg/DynamicAny/DynSequenceOperations.h | 96 + libjava/org/omg/DynamicAny/DynStruct.h | 121 + libjava/org/omg/DynamicAny/DynStructHelper.h | 52 + libjava/org/omg/DynamicAny/DynStructOperations.h | 99 + libjava/org/omg/DynamicAny/DynUnion.h | 122 + libjava/org/omg/DynamicAny/DynUnionHelper.h | 52 + libjava/org/omg/DynamicAny/DynUnionOperations.h | 98 + libjava/org/omg/DynamicAny/DynValue.h | 124 + libjava/org/omg/DynamicAny/DynValueBox.h | 119 + libjava/org/omg/DynamicAny/DynValueBoxOperations.h | 95 + libjava/org/omg/DynamicAny/DynValueCommon.h | 115 + .../org/omg/DynamicAny/DynValueCommonOperations.h | 91 + libjava/org/omg/DynamicAny/DynValueHelper.h | 52 + libjava/org/omg/DynamicAny/DynValueOperations.h | 102 + libjava/org/omg/DynamicAny/FieldNameHelper.h | 48 + libjava/org/omg/DynamicAny/NameDynAnyPair.h | 39 + libjava/org/omg/DynamicAny/NameDynAnyPairHelper.h | 49 + .../org/omg/DynamicAny/NameDynAnyPairSeqHelper.h | 51 + libjava/org/omg/DynamicAny/NameValuePair.h | 42 + libjava/org/omg/DynamicAny/NameValuePairHelper.h | 49 + .../org/omg/DynamicAny/NameValuePairSeqHelper.h | 51 + libjava/org/omg/DynamicAny/_DynAnyFactoryStub.h | 50 + libjava/org/omg/DynamicAny/_DynAnyStub.h | 99 + libjava/org/omg/DynamicAny/_DynArrayStub.h | 100 + libjava/org/omg/DynamicAny/_DynEnumStub.h | 100 + libjava/org/omg/DynamicAny/_DynFixedStub.h | 98 + libjava/org/omg/DynamicAny/_DynSequenceStub.h | 102 + libjava/org/omg/DynamicAny/_DynStructStub.h | 105 + libjava/org/omg/DynamicAny/_DynUnionStub.h | 106 + libjava/org/omg/DynamicAny/_DynValueStub.h | 108 + libjava/org/omg/IOP/CodeSets.h | 32 + libjava/org/omg/IOP/Codec.h | 65 + libjava/org/omg/IOP/CodecFactory.h | 62 + libjava/org/omg/IOP/CodecFactoryHelper.h | 55 + libjava/org/omg/IOP/CodecFactoryOperations.h | 34 + .../omg/IOP/CodecFactoryPackage/UnknownEncoding.h | 39 + .../CodecFactoryPackage/UnknownEncodingHelper.h | 52 + libjava/org/omg/IOP/CodecOperations.h | 42 + libjava/org/omg/IOP/CodecPackage/FormatMismatch.h | 39 + .../omg/IOP/CodecPackage/FormatMismatchHelper.h | 52 + .../omg/IOP/CodecPackage/InvalidTypeForEncoding.h | 39 + .../CodecPackage/InvalidTypeForEncodingHelper.h | 52 + libjava/org/omg/IOP/CodecPackage/TypeMismatch.h | 39 + .../org/omg/IOP/CodecPackage/TypeMismatchHelper.h | 52 + libjava/org/omg/IOP/ComponentIdHelper.h | 48 + libjava/org/omg/IOP/ENCODING_CDR_ENCAPS.h | 32 + libjava/org/omg/IOP/Encoding.h | 39 + libjava/org/omg/IOP/ExceptionDetailMessage.h | 32 + libjava/org/omg/IOP/IOR.h | 41 + libjava/org/omg/IOP/IORHelper.h | 49 + libjava/org/omg/IOP/IORHolder.h | 47 + .../org/omg/IOP/MultipleComponentProfileHelper.h | 51 + .../org/omg/IOP/MultipleComponentProfileHolder.h | 49 + libjava/org/omg/IOP/ProfileIdHelper.h | 48 + libjava/org/omg/IOP/RMICustomMaxStreamFormat.h | 32 + libjava/org/omg/IOP/ServiceContext.h | 40 + libjava/org/omg/IOP/ServiceContextHelper.h | 49 + libjava/org/omg/IOP/ServiceContextHolder.h | 47 + libjava/org/omg/IOP/ServiceContextListHelper.h | 51 + libjava/org/omg/IOP/ServiceContextListHolder.h | 49 + libjava/org/omg/IOP/ServiceIdHelper.h | 48 + libjava/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.h | 32 + libjava/org/omg/IOP/TAG_CODE_SETS.h | 32 + libjava/org/omg/IOP/TAG_INTERNET_IOP.h | 32 + libjava/org/omg/IOP/TAG_JAVA_CODEBASE.h | 32 + libjava/org/omg/IOP/TAG_MULTIPLE_COMPONENTS.h | 32 + libjava/org/omg/IOP/TAG_ORB_TYPE.h | 32 + libjava/org/omg/IOP/TAG_POLICIES.h | 32 + .../org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.h | 32 + libjava/org/omg/IOP/TaggedComponent.h | 40 + libjava/org/omg/IOP/TaggedComponentHelper.h | 49 + libjava/org/omg/IOP/TaggedComponentHolder.h | 47 + libjava/org/omg/IOP/TaggedProfile.h | 40 + libjava/org/omg/IOP/TaggedProfileHelper.h | 49 + libjava/org/omg/IOP/TaggedProfileHolder.h | 47 + libjava/org/omg/IOP/TransactionService.h | 32 + libjava/org/omg/Messaging/SYNC_WITH_TRANSPORT.h | 32 + libjava/org/omg/Messaging/SyncScopeHelper.h | 48 + libjava/org/omg/PortableInterceptor/ACTIVE.h | 32 + .../PortableInterceptor/AdapterManagerIdHelper.h | 48 + .../omg/PortableInterceptor/AdapterNameHelper.h | 50 + .../omg/PortableInterceptor/AdapterStateHelper.h | 48 + .../omg/PortableInterceptor/ClientRequestInfo.h | 94 + .../ClientRequestInfoOperations.h | 73 + .../PortableInterceptor/ClientRequestInterceptor.h | 67 + .../ClientRequestInterceptorOperations.h | 39 + libjava/org/omg/PortableInterceptor/Current.h | 62 + .../org/omg/PortableInterceptor/CurrentHelper.h | 52 + .../omg/PortableInterceptor/CurrentOperations.h | 37 + libjava/org/omg/PortableInterceptor/DISCARDING.h | 32 + .../org/omg/PortableInterceptor/ForwardRequest.h | 42 + .../omg/PortableInterceptor/ForwardRequestHelper.h | 49 + libjava/org/omg/PortableInterceptor/HOLDING.h | 32 + libjava/org/omg/PortableInterceptor/INACTIVE.h | 32 + libjava/org/omg/PortableInterceptor/IORInfo.h | 73 + .../omg/PortableInterceptor/IORInfoOperations.h | 49 + .../org/omg/PortableInterceptor/IORInterceptor.h | 63 + .../PortableInterceptor/IORInterceptorOperations.h | 35 + .../omg/PortableInterceptor/IORInterceptor_3_0.h | 67 + .../PortableInterceptor/IORInterceptor_3_0Helper.h | 52 + .../PortableInterceptor/IORInterceptor_3_0Holder.h | 47 + .../IORInterceptor_3_0Operations.h | 41 + libjava/org/omg/PortableInterceptor/Interceptor.h | 61 + .../PortableInterceptor/InterceptorOperations.h | 33 + libjava/org/omg/PortableInterceptor/InvalidSlot.h | 36 + .../omg/PortableInterceptor/InvalidSlotHelper.h | 49 + .../org/omg/PortableInterceptor/LOCATION_FORWARD.h | 32 + libjava/org/omg/PortableInterceptor/NON_EXISTENT.h | 32 + libjava/org/omg/PortableInterceptor/ORBIdHelper.h | 48 + libjava/org/omg/PortableInterceptor/ORBInitInfo.h | 77 + .../PortableInterceptor/ORBInitInfoOperations.h | 55 + .../ORBInitInfoPackage/DuplicateName.h | 41 + .../ORBInitInfoPackage/DuplicateNameHelper.h | 52 + .../ORBInitInfoPackage/InvalidName.h | 39 + .../ORBInitInfoPackage/InvalidNameHelper.h | 52 + .../ORBInitInfoPackage/ObjectIdHelper.h | 51 + .../org/omg/PortableInterceptor/ORBInitializer.h | 62 + .../PortableInterceptor/ORBInitializerOperations.h | 34 + .../org/omg/PortableInterceptor/ObjectIdHelper.h | 50 + .../PortableInterceptor/ObjectReferenceFactory.h | 39 + .../ObjectReferenceFactoryHelper.h | 49 + .../ObjectReferenceFactoryHolder.h | 47 + .../PortableInterceptor/ObjectReferenceTemplate.h | 42 + .../ObjectReferenceTemplateHelper.h | 49 + .../ObjectReferenceTemplateHolder.h | 47 + .../ObjectReferenceTemplateSeqHelper.h | 51 + .../ObjectReferenceTemplateSeqHolder.h | 49 + .../org/omg/PortableInterceptor/PolicyFactory.h | 61 + .../PortableInterceptor/PolicyFactoryOperations.h | 37 + libjava/org/omg/PortableInterceptor/RequestInfo.h | 83 + .../PortableInterceptor/RequestInfoOperations.h | 61 + libjava/org/omg/PortableInterceptor/SUCCESSFUL.h | 32 + .../org/omg/PortableInterceptor/SYSTEM_EXCEPTION.h | 32 + .../org/omg/PortableInterceptor/ServerIdHelper.h | 48 + .../omg/PortableInterceptor/ServerRequestInfo.h | 94 + .../ServerRequestInfoOperations.h | 73 + .../PortableInterceptor/ServerRequestInterceptor.h | 67 + .../ServerRequestInterceptorOperations.h | 39 + .../org/omg/PortableInterceptor/TRANSPORT_RETRY.h | 32 + .../org/omg/PortableInterceptor/USER_EXCEPTION.h | 32 + .../PortableInterceptor/_IORInterceptor_3_0Stub.h | 54 + libjava/org/omg/PortableServer/AdapterActivator.h | 61 + .../PortableServer/AdapterActivatorOperations.h | 33 + libjava/org/omg/PortableServer/Current.h | 62 + libjava/org/omg/PortableServer/CurrentHelper.h | 51 + libjava/org/omg/PortableServer/CurrentOperations.h | 36 + .../omg/PortableServer/CurrentPackage/NoContext.h | 39 + .../CurrentPackage/NoContextHelper.h | 52 + .../org/omg/PortableServer/DynamicImplementation.h | 37 + libjava/org/omg/PortableServer/ForwardRequest.h | 42 + .../org/omg/PortableServer/ForwardRequestHelper.h | 49 + .../omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.h | 32 + .../omg/PortableServer/ID_UNIQUENESS_POLICY_ID.h | 32 + .../PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.h | 32 + .../org/omg/PortableServer/IdAssignmentPolicy.h | 64 + .../PortableServer/IdAssignmentPolicyOperations.h | 40 + .../omg/PortableServer/IdAssignmentPolicyValue.h | 50 + .../org/omg/PortableServer/IdUniquenessPolicy.h | 64 + .../PortableServer/IdUniquenessPolicyOperations.h | 40 + .../omg/PortableServer/IdUniquenessPolicyValue.h | 50 + .../omg/PortableServer/ImplicitActivationPolicy.h | 64 + .../ImplicitActivationPolicyOperations.h | 40 + .../PortableServer/ImplicitActivationPolicyValue.h | 50 + .../org/omg/PortableServer/LIFESPAN_POLICY_ID.h | 32 + libjava/org/omg/PortableServer/LifespanPolicy.h | 64 + .../omg/PortableServer/LifespanPolicyOperations.h | 40 + .../org/omg/PortableServer/LifespanPolicyValue.h | 50 + libjava/org/omg/PortableServer/POA.h | 109 + libjava/org/omg/PortableServer/POAHelper.h | 51 + libjava/org/omg/PortableServer/POAManager.h | 68 + .../org/omg/PortableServer/POAManagerOperations.h | 40 + .../POAManagerPackage/AdapterInactive.h | 39 + .../POAManagerPackage/AdapterInactiveHelper.h | 52 + .../omg/PortableServer/POAManagerPackage/State.h | 57 + libjava/org/omg/PortableServer/POAOperations.h | 89 + .../POAPackage/AdapterAlreadyExists.h | 39 + .../POAPackage/AdapterAlreadyExistsHelper.h | 55 + .../PortableServer/POAPackage/AdapterNonExistent.h | 39 + .../POAPackage/AdapterNonExistentHelper.h | 55 + .../omg/PortableServer/POAPackage/InvalidPolicy.h | 42 + .../POAPackage/InvalidPolicyHelper.h | 55 + .../org/omg/PortableServer/POAPackage/NoServant.h | 39 + .../PortableServer/POAPackage/NoServantHelper.h | 55 + .../POAPackage/ObjectAlreadyActive.h | 39 + .../POAPackage/ObjectAlreadyActiveHelper.h | 55 + .../PortableServer/POAPackage/ObjectNotActive.h | 39 + .../POAPackage/ObjectNotActiveHelper.h | 55 + .../POAPackage/ServantAlreadyActive.h | 39 + .../POAPackage/ServantAlreadyActiveHelper.h | 55 + .../PortableServer/POAPackage/ServantNotActive.h | 39 + .../POAPackage/ServantNotActiveHelper.h | 55 + .../omg/PortableServer/POAPackage/WrongAdapter.h | 39 + .../PortableServer/POAPackage/WrongAdapterHelper.h | 55 + .../omg/PortableServer/POAPackage/WrongPolicy.h | 39 + .../PortableServer/POAPackage/WrongPolicyHelper.h | 55 + .../PortableServer/REQUEST_PROCESSING_POLICY_ID.h | 32 + .../omg/PortableServer/RequestProcessingPolicy.h | 64 + .../RequestProcessingPolicyOperations.h | 40 + .../PortableServer/RequestProcessingPolicyValue.h | 52 + .../PortableServer/SERVANT_RETENTION_POLICY_ID.h | 32 + libjava/org/omg/PortableServer/Servant.h | 59 + libjava/org/omg/PortableServer/ServantActivator.h | 63 + .../omg/PortableServer/ServantActivatorHelper.h | 52 + .../PortableServer/ServantActivatorOperations.h | 37 + .../PortableServer/ServantActivatorPOA$delegator.h | 43 + .../org/omg/PortableServer/ServantActivatorPOA.h | 56 + libjava/org/omg/PortableServer/ServantLocator.h | 67 + .../org/omg/PortableServer/ServantLocatorHelper.h | 52 + .../omg/PortableServer/ServantLocatorOperations.h | 41 + .../PortableServer/ServantLocatorPOA$delegator.h | 48 + libjava/org/omg/PortableServer/ServantLocatorPOA.h | 60 + .../ServantLocatorPackage/CookieHolder.h | 49 + libjava/org/omg/PortableServer/ServantManager.h | 59 + .../omg/PortableServer/ServantManagerOperations.h | 31 + .../omg/PortableServer/ServantRetentionPolicy.h | 64 + .../ServantRetentionPolicyOperations.h | 40 + .../PortableServer/ServantRetentionPolicyValue.h | 50 + libjava/org/omg/PortableServer/THREAD_POLICY_ID.h | 32 + libjava/org/omg/PortableServer/ThreadPolicy.h | 64 + .../omg/PortableServer/ThreadPolicyOperations.h | 40 + libjava/org/omg/PortableServer/ThreadPolicyValue.h | 50 + .../org/omg/PortableServer/_ServantActivatorStub.h | 43 + .../org/omg/PortableServer/_ServantLocatorStub.h | 50 + libjava/org/omg/PortableServer/portable/Delegate.h | 51 + libjava/org/omg/SendingContext/RunTime.h | 59 + libjava/org/omg/SendingContext/RunTimeOperations.h | 31 + libjava/org/omg/stub/java/rmi/_Remote_Stub.h | 44 + libjava/org/relaxng/datatype/Datatype.h | 45 + libjava/org/relaxng/datatype/DatatypeBuilder.h | 35 + libjava/org/relaxng/datatype/DatatypeException.h | 39 + libjava/org/relaxng/datatype/DatatypeLibrary.h | 35 + .../org/relaxng/datatype/DatatypeLibraryFactory.h | 33 + .../relaxng/datatype/DatatypeStreamingValidator.h | 36 + libjava/org/relaxng/datatype/ValidationContext.h | 35 + .../helpers/DatatypeLibraryLoader$Service$Loader.h | 40 + .../DatatypeLibraryLoader$Service$Loader2.h | 40 + ...typeLibraryLoader$Service$ProviderEnumeration.h | 45 + .../DatatypeLibraryLoader$Service$Singleton.h | 42 + .../helpers/DatatypeLibraryLoader$Service.h | 60 + .../datatype/helpers/DatatypeLibraryLoader.h | 41 + .../helpers/ParameterlessDatatypeBuilder.h | 42 + .../datatype/helpers/StreamingValidatorImpl.h | 47 + libjava/org/w3c/dom/Attr.h | 82 + libjava/org/w3c/dom/CDATASection.h | 86 + libjava/org/w3c/dom/CharacterData.h | 81 + libjava/org/w3c/dom/Comment.h | 81 + libjava/org/w3c/dom/DOMConfiguration.h | 36 + libjava/org/w3c/dom/DOMError.h | 41 + libjava/org/w3c/dom/DOMErrorHandler.h | 33 + libjava/org/w3c/dom/DOMException.h | 50 + libjava/org/w3c/dom/DOMImplementation.h | 37 + libjava/org/w3c/dom/DOMImplementationList.h | 34 + libjava/org/w3c/dom/DOMImplementationSource.h | 35 + libjava/org/w3c/dom/DOMLocator.h | 38 + libjava/org/w3c/dom/DOMStringList.h | 34 + libjava/org/w3c/dom/Document.h | 114 + libjava/org/w3c/dom/DocumentFragment.h | 73 + libjava/org/w3c/dom/DocumentType.h | 79 + libjava/org/w3c/dom/Element.h | 95 + libjava/org/w3c/dom/Entity.h | 79 + libjava/org/w3c/dom/EntityReference.h | 73 + libjava/org/w3c/dom/NameList.h | 36 + libjava/org/w3c/dom/NamedNodeMap.h | 40 + libjava/org/w3c/dom/Node.h | 90 + libjava/org/w3c/dom/NodeList.h | 34 + libjava/org/w3c/dom/Notation.h | 75 + libjava/org/w3c/dom/ProcessingInstruction.h | 76 + libjava/org/w3c/dom/Text.h | 85 + libjava/org/w3c/dom/TypeInfo.h | 38 + libjava/org/w3c/dom/UserDataHandler.h | 38 + .../dom/bootstrap/DOMImplementationRegistry$1.h | 45 + .../dom/bootstrap/DOMImplementationRegistry$2.h | 37 + .../dom/bootstrap/DOMImplementationRegistry$3.h | 40 + .../dom/bootstrap/DOMImplementationRegistry$4.h | 41 + .../w3c/dom/bootstrap/DOMImplementationRegistry.h | 55 + libjava/org/w3c/dom/css/CSS2Properties.h | 278 + libjava/org/w3c/dom/css/CSSCharsetRule.h | 43 + libjava/org/w3c/dom/css/CSSFontFaceRule.h | 43 + libjava/org/w3c/dom/css/CSSImportRule.h | 48 + libjava/org/w3c/dom/css/CSSMediaRule.h | 50 + libjava/org/w3c/dom/css/CSSPageRule.h | 45 + libjava/org/w3c/dom/css/CSSPrimitiveValue.h | 74 + libjava/org/w3c/dom/css/CSSRule.h | 47 + libjava/org/w3c/dom/css/CSSRuleList.h | 37 + libjava/org/w3c/dom/css/CSSStyleDeclaration.h | 46 + libjava/org/w3c/dom/css/CSSStyleRule.h | 45 + libjava/org/w3c/dom/css/CSSStyleSheet.h | 54 + libjava/org/w3c/dom/css/CSSUnknownRule.h | 41 + libjava/org/w3c/dom/css/CSSValue.h | 41 + libjava/org/w3c/dom/css/CSSValueList.h | 40 + libjava/org/w3c/dom/css/Counter.h | 37 + libjava/org/w3c/dom/css/DOMImplementationCSS.h | 42 + libjava/org/w3c/dom/css/DocumentCSS.h | 42 + libjava/org/w3c/dom/css/ElementCSSInlineStyle.h | 36 + libjava/org/w3c/dom/css/RGBColor.h | 38 + libjava/org/w3c/dom/css/Rect.h | 39 + libjava/org/w3c/dom/css/ViewCSS.h | 42 + libjava/org/w3c/dom/events/DocumentEvent.h | 36 + libjava/org/w3c/dom/events/Event.h | 48 + libjava/org/w3c/dom/events/EventException.h | 37 + libjava/org/w3c/dom/events/EventListener.h | 36 + libjava/org/w3c/dom/events/EventTarget.h | 39 + libjava/org/w3c/dom/events/MouseEvent.h | 63 + libjava/org/w3c/dom/events/MutationEvent.h | 55 + libjava/org/w3c/dom/events/UIEvent.h | 52 + libjava/org/w3c/dom/html2/HTMLAnchorElement.h | 134 + libjava/org/w3c/dom/html2/HTMLAppletElement.h | 130 + libjava/org/w3c/dom/html2/HTMLAreaElement.h | 124 + libjava/org/w3c/dom/html2/HTMLBRElement.h | 110 + libjava/org/w3c/dom/html2/HTMLBaseElement.h | 112 + libjava/org/w3c/dom/html2/HTMLBaseFontElement.h | 114 + libjava/org/w3c/dom/html2/HTMLBodyElement.h | 120 + libjava/org/w3c/dom/html2/HTMLButtonElement.h | 121 + libjava/org/w3c/dom/html2/HTMLCollection.h | 38 + libjava/org/w3c/dom/html2/HTMLDListElement.h | 110 + libjava/org/w3c/dom/html2/HTMLDirectoryElement.h | 110 + libjava/org/w3c/dom/html2/HTMLDivElement.h | 110 + libjava/org/w3c/dom/html2/HTMLDocument.h | 139 + libjava/org/w3c/dom/html2/HTMLElement.h | 108 + libjava/org/w3c/dom/html2/HTMLFieldSetElement.h | 110 + libjava/org/w3c/dom/html2/HTMLFontElement.h | 114 + libjava/org/w3c/dom/html2/HTMLFormElement.h | 125 + libjava/org/w3c/dom/html2/HTMLFrameElement.h | 125 + libjava/org/w3c/dom/html2/HTMLFrameSetElement.h | 112 + libjava/org/w3c/dom/html2/HTMLHRElement.h | 116 + libjava/org/w3c/dom/html2/HTMLHeadElement.h | 110 + libjava/org/w3c/dom/html2/HTMLHeadingElement.h | 110 + libjava/org/w3c/dom/html2/HTMLHtmlElement.h | 110 + libjava/org/w3c/dom/html2/HTMLIFrameElement.h | 129 + libjava/org/w3c/dom/html2/HTMLImageElement.h | 132 + libjava/org/w3c/dom/html2/HTMLInputElement.h | 148 + libjava/org/w3c/dom/html2/HTMLIsIndexElement.h | 112 + libjava/org/w3c/dom/html2/HTMLLIElement.h | 112 + libjava/org/w3c/dom/html2/HTMLLabelElement.h | 114 + libjava/org/w3c/dom/html2/HTMLLegendElement.h | 114 + libjava/org/w3c/dom/html2/HTMLLinkElement.h | 126 + libjava/org/w3c/dom/html2/HTMLMapElement.h | 112 + libjava/org/w3c/dom/html2/HTMLMenuElement.h | 110 + libjava/org/w3c/dom/html2/HTMLMetaElement.h | 116 + libjava/org/w3c/dom/html2/HTMLModElement.h | 112 + libjava/org/w3c/dom/html2/HTMLOListElement.h | 114 + libjava/org/w3c/dom/html2/HTMLObjectElement.h | 145 + libjava/org/w3c/dom/html2/HTMLOptGroupElement.h | 112 + libjava/org/w3c/dom/html2/HTMLOptionElement.h | 122 + libjava/org/w3c/dom/html2/HTMLOptionsCollection.h | 39 + libjava/org/w3c/dom/html2/HTMLParagraphElement.h | 110 + libjava/org/w3c/dom/html2/HTMLParamElement.h | 116 + libjava/org/w3c/dom/html2/HTMLPreElement.h | 110 + libjava/org/w3c/dom/html2/HTMLQuoteElement.h | 110 + libjava/org/w3c/dom/html2/HTMLScriptElement.h | 122 + libjava/org/w3c/dom/html2/HTMLSelectElement.h | 134 + libjava/org/w3c/dom/html2/HTMLStyleElement.h | 114 + .../org/w3c/dom/html2/HTMLTableCaptionElement.h | 110 + libjava/org/w3c/dom/html2/HTMLTableCellElement.h | 137 + libjava/org/w3c/dom/html2/HTMLTableColElement.h | 120 + libjava/org/w3c/dom/html2/HTMLTableElement.h | 146 + libjava/org/w3c/dom/html2/HTMLTableRowElement.h | 125 + .../org/w3c/dom/html2/HTMLTableSectionElement.h | 121 + libjava/org/w3c/dom/html2/HTMLTextAreaElement.h | 132 + libjava/org/w3c/dom/html2/HTMLTitleElement.h | 110 + libjava/org/w3c/dom/html2/HTMLUListElement.h | 112 + libjava/org/w3c/dom/ls/DOMImplementationLS.h | 44 + libjava/org/w3c/dom/ls/LSException.h | 38 + libjava/org/w3c/dom/ls/LSInput.h | 50 + libjava/org/w3c/dom/ls/LSLoadEvent.h | 52 + libjava/org/w3c/dom/ls/LSOutput.h | 42 + libjava/org/w3c/dom/ls/LSParser.h | 53 + libjava/org/w3c/dom/ls/LSParserFilter.h | 43 + libjava/org/w3c/dom/ls/LSProgressEvent.h | 52 + libjava/org/w3c/dom/ls/LSResourceResolver.h | 36 + libjava/org/w3c/dom/ls/LSSerializer.h | 46 + libjava/org/w3c/dom/ls/LSSerializerFilter.h | 37 + libjava/org/w3c/dom/ranges/DocumentRange.h | 36 + libjava/org/w3c/dom/ranges/Range.h | 64 + libjava/org/w3c/dom/ranges/RangeException.h | 38 + libjava/org/w3c/dom/stylesheets/DocumentStyle.h | 36 + libjava/org/w3c/dom/stylesheets/LinkStyle.h | 36 + libjava/org/w3c/dom/stylesheets/MediaList.h | 40 + libjava/org/w3c/dom/stylesheets/StyleSheet.h | 44 + libjava/org/w3c/dom/stylesheets/StyleSheetList.h | 37 + libjava/org/w3c/dom/traversal/DocumentTraversal.h | 40 + libjava/org/w3c/dom/traversal/NodeFilter.h | 52 + libjava/org/w3c/dom/traversal/NodeIterator.h | 43 + libjava/org/w3c/dom/traversal/TreeWalker.h | 49 + libjava/org/w3c/dom/views/AbstractView.h | 36 + libjava/org/w3c/dom/views/DocumentView.h | 36 + libjava/org/w3c/dom/xpath/XPathEvaluator.h | 40 + libjava/org/w3c/dom/xpath/XPathException.h | 38 + libjava/org/w3c/dom/xpath/XPathExpression.h | 36 + libjava/org/w3c/dom/xpath/XPathNSResolver.h | 35 + libjava/org/w3c/dom/xpath/XPathNamespace.h | 79 + libjava/org/w3c/dom/xpath/XPathResult.h | 54 + libjava/org/xml/sax/AttributeList.h | 37 + libjava/org/xml/sax/Attributes.h | 43 + libjava/org/xml/sax/ContentHandler.h | 46 + libjava/org/xml/sax/DTDHandler.h | 33 + libjava/org/xml/sax/DocumentHandler.h | 43 + libjava/org/xml/sax/EntityResolver.h | 33 + libjava/org/xml/sax/ErrorHandler.h | 35 + libjava/org/xml/sax/HandlerBase.h | 52 + libjava/org/xml/sax/InputSource.h | 52 + libjava/org/xml/sax/Locator.h | 35 + libjava/org/xml/sax/Parser.h | 43 + libjava/org/xml/sax/SAXException.h | 41 + libjava/org/xml/sax/SAXNotRecognizedException.h | 33 + libjava/org/xml/sax/SAXNotSupportedException.h | 33 + libjava/org/xml/sax/SAXParseException.h | 49 + libjava/org/xml/sax/XMLFilter.h | 53 + libjava/org/xml/sax/XMLReader.h | 50 + libjava/org/xml/sax/ext/Attributes2.h | 52 + libjava/org/xml/sax/ext/Attributes2Impl.h | 54 + libjava/org/xml/sax/ext/DeclHandler.h | 38 + libjava/org/xml/sax/ext/DefaultHandler2.h | 52 + libjava/org/xml/sax/ext/EntityResolver2.h | 38 + libjava/org/xml/sax/ext/LexicalHandler.h | 43 + libjava/org/xml/sax/ext/Locator2.h | 40 + libjava/org/xml/sax/ext/Locator2Impl.h | 45 + libjava/org/xml/sax/helpers/AttributeListImpl.h | 52 + libjava/org/xml/sax/helpers/AttributesImpl.h | 68 + libjava/org/xml/sax/helpers/DefaultHandler.h | 58 + libjava/org/xml/sax/helpers/LocatorImpl.h | 51 + .../org/xml/sax/helpers/NamespaceSupport$Context.h | 62 + libjava/org/xml/sax/helpers/NamespaceSupport.h | 63 + libjava/org/xml/sax/helpers/NewInstance.h | 38 + .../helpers/ParserAdapter$AttributeListAdapter.h | 56 + libjava/org/xml/sax/helpers/ParserAdapter.h | 106 + libjava/org/xml/sax/helpers/ParserFactory.h | 38 + libjava/org/xml/sax/helpers/XMLFilterImpl.h | 89 + .../helpers/XMLReaderAdapter$AttributesAdapter.h | 50 + libjava/org/xml/sax/helpers/XMLReaderAdapter.h | 76 + libjava/org/xml/sax/helpers/XMLReaderFactory.h | 42 + libjava/posix-threads.cc | 159 + libjava/prims.cc | 33 + libjava/scripts/classes.pl | 3 +- libjava/scripts/makemake.tcl | 69 +- libjava/sources.am | 2130 +-- libjava/stacktrace.cc | 290 +- libjava/standard.omit.in | 9 +- libjava/sun/misc/Service.h | 30 + libjava/sun/misc/ServiceConfigurationError.h | 30 + libjava/sun/misc/Unsafe.h | 53 + libjava/sun/misc/Unsafe.java | 328 + libjava/sun/misc/natUnsafe.cc | 252 + libjava/sun/reflect/Reflection.h | 30 + libjava/sun/reflect/Reflection.java | 51 + .../annotation/AnnotationInvocationHandler.h | 55 + libjava/sun/reflect/annotation/AnnotationParser.h | 33 + libjava/sun/reflect/annotation/AnnotationType.h | 33 + .../EnumConstantNotPresentExceptionProxy.h | 32 + libjava/sun/reflect/annotation/ExceptionProxy.h | 32 + libjava/sun/reflect/misc/ReflectUtil$MustBeNull.h | 32 + libjava/sun/reflect/misc/ReflectUtil.h | 35 + libjava/sun/reflect/misc/ReflectUtil.java | 113 + libjava/testsuite/Makefile.in | 17 +- libjava/testsuite/lib/libjava.exp | 221 +- libjava/testsuite/libjava.cni/PR9577.h | 29 + libjava/testsuite/libjava.cni/PR9577.jar | Bin 0 -> 629 bytes libjava/testsuite/libjava.cni/cni.exp | 55 +- libjava/testsuite/libjava.cni/longfield.h | 33 + libjava/testsuite/libjava.cni/longfield.jar | Bin 0 -> 852 bytes libjava/testsuite/libjava.cni/shortfield.h | 33 + libjava/testsuite/libjava.cni/shortfield.jar | Bin 0 -> 995 bytes libjava/testsuite/libjava.cni/shortfieldbase.h | 25 + libjava/testsuite/libjava.compile/ArrayClass.java | 11 - libjava/testsuite/libjava.compile/AssertBug.java | 7 - libjava/testsuite/libjava.compile/Case.java | 15 - libjava/testsuite/libjava.compile/G19990210_1.java | 18 - libjava/testsuite/libjava.compile/G19990210_2.java | 18 - libjava/testsuite/libjava.compile/G19990210_3.java | 23 - .../testsuite/libjava.compile/G19990217_01.java | 16 - .../testsuite/libjava.compile/G19990217_02.java | 16 - .../testsuite/libjava.compile/G19990217_02.no-link | 1 - .../testsuite/libjava.compile/G19990225_01.java | 7 - libjava/testsuite/libjava.compile/InnerExcept.java | 19 - .../testsuite/libjava.compile/MethodFailure4.java | 40 - .../testsuite/libjava.compile/MethodFailure4.xfail | 1 - .../testsuite/libjava.compile/N19990310_01.java | 18 - libjava/testsuite/libjava.compile/N19990317.java | 23 - .../libjava.compile/OperatorBenchmark.java | 886 - libjava/testsuite/libjava.compile/PR11600.java | 7 - libjava/testsuite/libjava.compile/PR11600.xfail | 1 - libjava/testsuite/libjava.compile/PR12374.java | 27 - libjava/testsuite/libjava.compile/PR124.java | 9 - libjava/testsuite/libjava.compile/PR124.xfail | 1 - libjava/testsuite/libjava.compile/PR127.java | 11 - libjava/testsuite/libjava.compile/PR127.xfail | 1 - libjava/testsuite/libjava.compile/PR12857.java | 4 - libjava/testsuite/libjava.compile/PR129_B.java | 9 - libjava/testsuite/libjava.compile/PR129_B.no-link | 1 - libjava/testsuite/libjava.compile/PR13024.java | 18 - libjava/testsuite/libjava.compile/PR13237.java | 3 - libjava/testsuite/libjava.compile/PR1343.java | 17 - libjava/testsuite/libjava.compile/PR13733.java | 10 - libjava/testsuite/libjava.compile/PR13733.xfail | 1 - libjava/testsuite/libjava.compile/PR140.java | 13 - libjava/testsuite/libjava.compile/PR140.xfail | 1 - libjava/testsuite/libjava.compile/PR14853.java | 17 - libjava/testsuite/libjava.compile/PR14853.xfail | 1 - libjava/testsuite/libjava.compile/PR15769.java | 10 - libjava/testsuite/libjava.compile/PR16249.java | 18 - libjava/testsuite/libjava.compile/PR163.java | 8 - libjava/testsuite/libjava.compile/PR163.xfail | 1 - libjava/testsuite/libjava.compile/PR164.java | 6 - libjava/testsuite/libjava.compile/PR164.xfail | 1 - libjava/testsuite/libjava.compile/PR16675.java | 13 - libjava/testsuite/libjava.compile/PR16701.java | 10 - libjava/testsuite/libjava.compile/PR19277.java | 7 - libjava/testsuite/libjava.compile/PR19277.xfail | 1 - libjava/testsuite/libjava.compile/PR19295.java | 16 - libjava/testsuite/libjava.compile/PR19674.java | 7 - libjava/testsuite/libjava.compile/PR20312.java | 8 - libjava/testsuite/libjava.compile/PR20312.xfail | 1 - libjava/testsuite/libjava.compile/PR20418.java | 7 - libjava/testsuite/libjava.compile/PR20418.xfail | 1 - libjava/testsuite/libjava.compile/PR206.java | 7 - libjava/testsuite/libjava.compile/PR20697.java | 29 - libjava/testsuite/libjava.compile/PR207.java | 6 - libjava/testsuite/libjava.compile/PR207.xfail | 1 - libjava/testsuite/libjava.compile/PR208.java | 16 - libjava/testsuite/libjava.compile/PR208.xfail | 1 - libjava/testsuite/libjava.compile/PR209.java | 4 - libjava/testsuite/libjava.compile/PR21045.java | 11 - libjava/testsuite/libjava.compile/PR224.java | 16 - libjava/testsuite/libjava.compile/PR224.xfail | 1 - libjava/testsuite/libjava.compile/PR232.java | 16 - libjava/testsuite/libjava.compile/PR232B.java | 15 - libjava/testsuite/libjava.compile/PR234.java | 24 - libjava/testsuite/libjava.compile/PR23431_1.java | 9 - libjava/testsuite/libjava.compile/PR23431_1.xfail | 1 - libjava/testsuite/libjava.compile/PR23431_2.java | 9 - libjava/testsuite/libjava.compile/PR23431_2.xfail | 1 - libjava/testsuite/libjava.compile/PR235.java | 7 - libjava/testsuite/libjava.compile/PR238.java | 9 - libjava/testsuite/libjava.compile/PR238.xfail | 1 - libjava/testsuite/libjava.compile/PR295.java | 11 - libjava/testsuite/libjava.compile/PR310.java | 9 - libjava/testsuite/libjava.compile/PR310.xfail | 1 - libjava/testsuite/libjava.compile/PR3417.java | 6 - libjava/testsuite/libjava.compile/PR3417.xfail | 1 - libjava/testsuite/libjava.compile/PR374.java | 9 - libjava/testsuite/libjava.compile/PR375.java | 7 - libjava/testsuite/libjava.compile/PR4766.java | 25 - libjava/testsuite/libjava.compile/PR5641.java | 20 - libjava/testsuite/libjava.compile/PR5641.xfail | 1 - libjava/testsuite/libjava.compile/PR5848.java | 14 - libjava/testsuite/libjava.compile/PR5848.xfail | 1 - libjava/testsuite/libjava.compile/PR5902.java | 4 - libjava/testsuite/libjava.compile/PR5913.java | 6 - libjava/testsuite/libjava.compile/PR6026.java | 4 - libjava/testsuite/libjava.compile/PR6865.java | 5 - libjava/testsuite/libjava.compile/PR6865.xfail | 1 - libjava/testsuite/libjava.compile/Semi.java | 8 - libjava/testsuite/libjava.compile/Statics.java | 7 - libjava/testsuite/libjava.compile/SuperConstr.java | 20 - libjava/testsuite/libjava.compile/T20020529.java | 23 - libjava/testsuite/libjava.compile/T20020604.java | 17 - libjava/testsuite/libjava.compile/Twice.java | 14 - libjava/testsuite/libjava.compile/Where.java | 12 - libjava/testsuite/libjava.compile/Where.xfail | 1 - libjava/testsuite/libjava.compile/XercesBug.java | 13 - libjava/testsuite/libjava.compile/abstr.java | 14 - libjava/testsuite/libjava.compile/abstr.xfail | 1 - libjava/testsuite/libjava.compile/assignment.java | 19 - .../testsuite/libjava.compile/assignment_2.java | 32 - libjava/testsuite/libjava.compile/block.java | 14 - libjava/testsuite/libjava.compile/block.xfail | 1 - libjava/testsuite/libjava.compile/comment.java | 7 - libjava/testsuite/libjava.compile/compile.exp | 20 - libjava/testsuite/libjava.compile/consthrow.java | 6 - libjava/testsuite/libjava.compile/consthrow.xfail | 2 - .../libjava.compile/final_assignment_check.java | 12 - .../libjava.compile/final_assignment_check.xfail | 1 - .../final_initialization_in_ctor.java | 21 - .../libjava.compile/final_local_switch.java | 16 - libjava/testsuite/libjava.compile/iface.java | 24 - libjava/testsuite/libjava.compile/inner_1.java | 36 - libjava/testsuite/libjava.compile/inner_1.xfail | 1 - libjava/testsuite/libjava.compile/inner_data.java | 18 - .../testsuite/libjava.compile/inner_inherit.java | 14 - libjava/testsuite/libjava.compile/inner_priv.java | 11 - libjava/testsuite/libjava.compile/inner_pub.java | 11 - .../libjava.compile/invokeinterface/A.java | 4 - .../libjava.compile/invokeinterface/B.java | 4 - .../libjava.compile/invokeinterface/Test.java | 19 - libjava/testsuite/libjava.compile/narrow_case.java | 11 - libjava/testsuite/libjava.compile/not_a_redef.java | 6 - .../testsuite/libjava.compile/not_a_redef.xfail | 1 - libjava/testsuite/libjava.compile/perc.java | 9 - libjava/testsuite/libjava.compile/plusplus.java | 10 - libjava/testsuite/libjava.compile/pr10459.java | 15 - libjava/testsuite/libjava.compile/pr13788.java | 8 - libjava/testsuite/libjava.compile/pr15656.java | 8 - libjava/testsuite/libjava.compile/pr15656.xfail | 1 - libjava/testsuite/libjava.compile/pr172.java | 9 - libjava/testsuite/libjava.compile/pr17329.java | 14 - libjava/testsuite/libjava.compile/pr174.java | 15 - libjava/testsuite/libjava.compile/pr17500.java | 28 - libjava/testsuite/libjava.compile/pr176.java | 15 - libjava/testsuite/libjava.compile/pr21519.java | 8 - libjava/testsuite/libjava.compile/pr21540.java | 15 - libjava/testsuite/libjava.compile/pr25429.java | 13 - libjava/testsuite/libjava.compile/pr26042.java | 12 - libjava/testsuite/libjava.compile/pr7912.java | 8 - libjava/testsuite/libjava.compile/pr8712.java | 7 - libjava/testsuite/libjava.compile/pr8955.java | 13 - libjava/testsuite/libjava.compile/redef1.java | 6 - libjava/testsuite/libjava.compile/redef1.xfail | 1 - libjava/testsuite/libjava.compile/redef2.java | 6 - libjava/testsuite/libjava.compile/redef2.xfail | 1 - libjava/testsuite/libjava.compile/redef3.java | 6 - libjava/testsuite/libjava.compile/redef3.xfail | 1 - libjava/testsuite/libjava.compile/redef4.java | 6 - libjava/testsuite/libjava.compile/redef4.xfail | 1 - libjava/testsuite/libjava.compile/redef5.java | 6 - libjava/testsuite/libjava.compile/redef5.xfail | 1 - libjava/testsuite/libjava.compile/redef6.java | 6 - libjava/testsuite/libjava.compile/redef6.xfail | 1 - libjava/testsuite/libjava.compile/rh174912.java | 17 - libjava/testsuite/libjava.compile/rh175833.java | 13 - libjava/testsuite/libjava.compile/static_1.java | 12 - libjava/testsuite/libjava.compile/static_1.xfail | 1 - libjava/testsuite/libjava.compile/static_2.java | 10 - libjava/testsuite/libjava.compile/static_2.xfail | 1 - libjava/testsuite/libjava.compile/static_3.java | 5 - libjava/testsuite/libjava.compile/static_3.xfail | 1 - libjava/testsuite/libjava.compile/static_init.java | 4 - .../testsuite/libjava.compile/static_init.xfail | 1 - .../testsuite/libjava.compile/static_init2.java | 9 - .../testsuite/libjava.compile/static_inner.java | 19 - .../testsuite/libjava.compile/support/Case.java | 6 - .../testsuite/libjava.compile/support/PR129_A.java | 6 - .../testsuite/libjava.compile/support/PR206_A.java | 8 - .../testsuite/libjava.compile/support/PR207_A.java | 13 - .../testsuite/libjava.compile/support/Waldo.java | 7 - libjava/testsuite/libjava.compile/uesc.java | 9 - libjava/testsuite/libjava.compile/uesc.xfail | 1 - libjava/testsuite/libjava.compile/weirddecl.java | 8 - libjava/testsuite/libjava.compile/weirddecl.xfail | 1 - libjava/testsuite/libjava.compile/zeroexp.java | 10 - libjava/testsuite/libjava.jacks/jacks.exp | 122 - libjava/testsuite/libjava.jacks/jacks.xfail | 686 - libjava/testsuite/libjava.jni/PR15133.h | 19 + libjava/testsuite/libjava.jni/PR15133.jar | Bin 0 -> 674 bytes libjava/testsuite/libjava.jni/PR18116.h | 19 + libjava/testsuite/libjava.jni/PR18116.jar | Bin 0 -> 740 bytes libjava/testsuite/libjava.jni/PR28178.h | 19 + libjava/testsuite/libjava.jni/PR28178.jar | Bin 0 -> 662 bytes libjava/testsuite/libjava.jni/bytebuffer.h | 25 + libjava/testsuite/libjava.jni/bytebuffer.jar | Bin 0 -> 1150 bytes libjava/testsuite/libjava.jni/calls.h | 19 + libjava/testsuite/libjava.jni/calls.jar | Bin 0 -> 1283 bytes libjava/testsuite/libjava.jni/cxxtest.h | 19 + libjava/testsuite/libjava.jni/cxxtest.jar | Bin 0 -> 818 bytes libjava/testsuite/libjava.jni/directbuffer.h | 26 + libjava/testsuite/libjava.jni/directbuffer.jar | Bin 0 -> 1067 bytes libjava/testsuite/libjava.jni/field.h | 19 + libjava/testsuite/libjava.jni/field.jar | Bin 0 -> 810 bytes libjava/testsuite/libjava.jni/final_method.h | 19 + libjava/testsuite/libjava.jni/final_method.jar | Bin 0 -> 751 bytes libjava/testsuite/libjava.jni/findclass.h | 19 + libjava/testsuite/libjava.jni/findclass.jar | Bin 0 -> 809 bytes libjava/testsuite/libjava.jni/iface.h | 19 + libjava/testsuite/libjava.jni/iface.jar | Bin 0 -> 991 bytes .../testsuite/libjava.jni/invocation/PR16923.jar | Bin 0 -> 673 bytes libjava/testsuite/libjava.jni/invoke.h | 19 + libjava/testsuite/libjava.jni/invoke.jar | Bin 0 -> 762 bytes libjava/testsuite/libjava.jni/jni.exp | 66 +- libjava/testsuite/libjava.jni/jniutf.h | 19 + libjava/testsuite/libjava.jni/jniutf.jar | Bin 0 -> 788 bytes libjava/testsuite/libjava.jni/martin.h | 19 + libjava/testsuite/libjava.jni/martin.jar | Bin 0 -> 934 bytes libjava/testsuite/libjava.jni/noclass.h | 19 + libjava/testsuite/libjava.jni/noclass.jar | Bin 0 -> 755 bytes libjava/testsuite/libjava.jni/overload.h | 20 + libjava/testsuite/libjava.jni/overload.jar | Bin 0 -> 749 bytes libjava/testsuite/libjava.jni/pr11951.h | 19 + libjava/testsuite/libjava.jni/pr11951.jar | Bin 0 -> 715 bytes libjava/testsuite/libjava.jni/pr18278.h | 19 + libjava/testsuite/libjava.jni/pr18278.jar | Bin 0 -> 763 bytes libjava/testsuite/libjava.jni/pr23739.h | 19 + libjava/testsuite/libjava.jni/pr23739.jar | Bin 0 -> 1319 bytes libjava/testsuite/libjava.jni/register.h | 19 + libjava/testsuite/libjava.jni/register.jar | Bin 0 -> 724 bytes libjava/testsuite/libjava.jni/register2.c | 2 +- libjava/testsuite/libjava.jni/register2.jar | Bin 0 -> 1445 bytes libjava/testsuite/libjava.jni/simple_int.h | 19 + libjava/testsuite/libjava.jni/simple_int.jar | Bin 0 -> 730 bytes libjava/testsuite/libjava.jni/throwit.h | 19 + libjava/testsuite/libjava.jni/throwit.jar | Bin 0 -> 864 bytes libjava/testsuite/libjava.jni/virtual.h | 19 + libjava/testsuite/libjava.jni/virtual.jar | Bin 0 -> 747 bytes libjava/testsuite/libjava.jvmti/events.h | 27 + libjava/testsuite/libjava.jvmti/events.jar | Bin 0 -> 702 bytes libjava/testsuite/libjava.jvmti/geterrorname.h | 27 + libjava/testsuite/libjava.jvmti/geterrorname.jar | Bin 0 -> 716 bytes libjava/testsuite/libjava.jvmti/jvmti.exp | 50 +- libjava/testsuite/libjava.lang/ArrayStore.jar | Bin 0 -> 1041 bytes libjava/testsuite/libjava.lang/ArrayStore2.jar | Bin 0 -> 899 bytes libjava/testsuite/libjava.lang/ArrayStore2.xfail | 1 - libjava/testsuite/libjava.lang/Array_1.jar | Bin 0 -> 864 bytes libjava/testsuite/libjava.lang/Array_2.jar | Bin 0 -> 721 bytes libjava/testsuite/libjava.lang/Array_3.jar | Bin 0 -> 974 bytes libjava/testsuite/libjava.lang/Class_1.jar | Bin 0 -> 1840 bytes libjava/testsuite/libjava.lang/CompareNaN.jar | Bin 0 -> 687 bytes libjava/testsuite/libjava.lang/Divide_1.jar | Bin 0 -> 1632 bytes libjava/testsuite/libjava.lang/EvaluationOrder.jar | Bin 0 -> 730 bytes .../testsuite/libjava.lang/ExtraClassLoader.jar | Bin 0 -> 2372 bytes .../testsuite/libjava.lang/FileHandleGcTest.jar | Bin 0 -> 757 bytes libjava/testsuite/libjava.lang/Final.jar | Bin 0 -> 766 bytes libjava/testsuite/libjava.lang/Float_1.jar | Bin 0 -> 849 bytes libjava/testsuite/libjava.lang/Float_2.jar | Bin 0 -> 1422 bytes libjava/testsuite/libjava.lang/G19990301_01.jar | Bin 0 -> 1067 bytes libjava/testsuite/libjava.lang/G19990302_02.jar | Bin 0 -> 778 bytes libjava/testsuite/libjava.lang/G19990303_01.jar | Bin 0 -> 762 bytes libjava/testsuite/libjava.lang/G19990303_02.jar | Bin 0 -> 799 bytes libjava/testsuite/libjava.lang/G19990304_01.jar | Bin 0 -> 764 bytes libjava/testsuite/libjava.lang/G19990310_01.jar | Bin 0 -> 850 bytes libjava/testsuite/libjava.lang/II.jar | Bin 0 -> 685 bytes .../testsuite/libjava.lang/InterfaceDispatch.jar | Bin 0 -> 4725 bytes libjava/testsuite/libjava.lang/InvokeInterface.jar | Bin 0 -> 2413 bytes libjava/testsuite/libjava.lang/InvokeReturn.jar | Bin 0 -> 1209 bytes libjava/testsuite/libjava.lang/Invoke_1.jar | Bin 0 -> 785 bytes libjava/testsuite/libjava.lang/Invoke_2.jar | Bin 0 -> 879 bytes libjava/testsuite/libjava.lang/KeepInline.jar | Bin 0 -> 875 bytes libjava/testsuite/libjava.lang/LargeFile.jar | Bin 0 -> 1081 bytes libjava/testsuite/libjava.lang/MathBuiltin.jar | Bin 0 -> 996 bytes libjava/testsuite/libjava.lang/Matrix4f.jar | Bin 0 -> 1511 bytes libjava/testsuite/libjava.lang/N19990310_02.jar | Bin 0 -> 856 bytes libjava/testsuite/libjava.lang/N19990310_3.jar | Bin 0 -> 834 bytes libjava/testsuite/libjava.lang/N19990310_4.jar | Bin 0 -> 720 bytes libjava/testsuite/libjava.lang/N19990310_5.jar | Bin 0 -> 730 bytes libjava/testsuite/libjava.lang/Overflow.jar | Bin 0 -> 677 bytes libjava/testsuite/libjava.lang/PR12350.jar | Bin 0 -> 1061 bytes libjava/testsuite/libjava.lang/PR12416.jar | Bin 0 -> 1318 bytes libjava/testsuite/libjava.lang/PR12656.jar | Bin 0 -> 928 bytes libjava/testsuite/libjava.lang/PR12915.jar | Bin 0 -> 732 bytes libjava/testsuite/libjava.lang/PR141.jar | Bin 0 -> 1142 bytes libjava/testsuite/libjava.lang/PR160.jar | Bin 0 -> 990 bytes libjava/testsuite/libjava.lang/PR162.jar | Bin 0 -> 1818 bytes libjava/testsuite/libjava.lang/PR16867.jar | Bin 0 -> 714 bytes libjava/testsuite/libjava.lang/PR18699.jar | Bin 0 -> 1127 bytes libjava/testsuite/libjava.lang/PR19870.jar | Bin 0 -> 1944 bytes libjava/testsuite/libjava.lang/PR19870_2.jar | Bin 0 -> 1698 bytes libjava/testsuite/libjava.lang/PR19921.jar | Bin 0 -> 838 bytes libjava/testsuite/libjava.lang/PR20056.jar | Bin 0 -> 719 bytes libjava/testsuite/libjava.lang/PR218.jar | Bin 0 -> 764 bytes libjava/testsuite/libjava.lang/PR242.jar | Bin 0 -> 1565 bytes libjava/testsuite/libjava.lang/PR25535.jar | Bin 0 -> 679 bytes libjava/testsuite/libjava.lang/PR260.jar | Bin 0 -> 935 bytes libjava/testsuite/libjava.lang/PR260.out | 1 - libjava/testsuite/libjava.lang/PR26858.jar | Bin 0 -> 38769 bytes libjava/testsuite/libjava.lang/PR27908.jar | Bin 0 -> 2452 bytes libjava/testsuite/libjava.lang/PR29013.jar | Bin 0 -> 649 bytes libjava/testsuite/libjava.lang/PR29495.jar | Bin 0 -> 2261 bytes libjava/testsuite/libjava.lang/PR29495.java | 56 + .../pr21519.no-link => libjava.lang/PR29495.out} | 0 libjava/testsuite/libjava.lang/PR3096.jar | Bin 0 -> 1089 bytes libjava/testsuite/libjava.lang/PR3731.jar | Bin 0 -> 1047 bytes libjava/testsuite/libjava.lang/PR5057.jar | Bin 0 -> 694 bytes libjava/testsuite/libjava.lang/PR5057_2.jar | Bin 0 -> 995 bytes libjava/testsuite/libjava.lang/PR55.jar | Bin 0 -> 814 bytes libjava/testsuite/libjava.lang/PR56.jar | Bin 0 -> 598 bytes libjava/testsuite/libjava.lang/PR6085.jar | Bin 0 -> 1898 bytes libjava/testsuite/libjava.lang/PR6204.jar | Bin 0 -> 1678 bytes libjava/testsuite/libjava.lang/PR6520.jar | Bin 0 -> 749 bytes libjava/testsuite/libjava.lang/PR6729.jar | Bin 0 -> 883 bytes libjava/testsuite/libjava.lang/PR6820.jar | Bin 0 -> 865 bytes libjava/testsuite/libjava.lang/PR7482.jar | Bin 0 -> 2053 bytes libjava/testsuite/libjava.lang/PR8866.jar | Bin 0 -> 591 bytes libjava/testsuite/libjava.lang/Process_1.jar | Bin 0 -> 1117 bytes libjava/testsuite/libjava.lang/Process_2.jar | Bin 0 -> 1203 bytes libjava/testsuite/libjava.lang/Process_3.jar | Bin 0 -> 1485 bytes libjava/testsuite/libjava.lang/Process_4.jar | Bin 0 -> 874 bytes libjava/testsuite/libjava.lang/Process_5.jar | Bin 0 -> 1057 bytes libjava/testsuite/libjava.lang/Process_6.jar | Bin 0 -> 865 bytes libjava/testsuite/libjava.lang/RH194522.jar | Bin 0 -> 874 bytes libjava/testsuite/libjava.lang/Serialization.jar | Bin 0 -> 1362 bytes libjava/testsuite/libjava.lang/Shazam.jar | Bin 0 -> 733 bytes libjava/testsuite/libjava.lang/StackTrace2.jar | Bin 0 -> 1775 bytes .../testsuite/libjava.lang/StaticConstructor.jar | Bin 0 -> 1162 bytes libjava/testsuite/libjava.lang/StringBuffer_1.jar | Bin 0 -> 1351 bytes .../libjava.lang/StringBuffer_overflow.jar | Bin 0 -> 1610 bytes libjava/testsuite/libjava.lang/String_overflow.jar | Bin 0 -> 1653 bytes libjava/testsuite/libjava.lang/SyncGlobal.jar | Bin 0 -> 1143 bytes libjava/testsuite/libjava.lang/SyncTest.jar | Bin 0 -> 1050 bytes libjava/testsuite/libjava.lang/Synch.jar | Bin 0 -> 707 bytes libjava/testsuite/libjava.lang/TLtest.jar | Bin 0 -> 2204 bytes libjava/testsuite/libjava.lang/TestProxy.jar | Bin 0 -> 1410 bytes libjava/testsuite/libjava.lang/TestProxy.java | 4 +- libjava/testsuite/libjava.lang/Thread_Alive.jar | Bin 0 -> 1098 bytes .../testsuite/libjava.lang/Thread_HoldsLock.jar | Bin 0 -> 1187 bytes .../testsuite/libjava.lang/Thread_Interrupt.jar | Bin 0 -> 3972 bytes libjava/testsuite/libjava.lang/Thread_Join.jar | Bin 0 -> 1890 bytes libjava/testsuite/libjava.lang/Thread_Monitor.jar | Bin 0 -> 1750 bytes libjava/testsuite/libjava.lang/Thread_Sleep.jar | Bin 0 -> 858 bytes libjava/testsuite/libjava.lang/Thread_Sleep_2.jar | Bin 0 -> 966 bytes libjava/testsuite/libjava.lang/Thread_Wait.jar | Bin 0 -> 1096 bytes libjava/testsuite/libjava.lang/Thread_Wait_2.jar | Bin 0 -> 2131 bytes .../libjava.lang/Thread_Wait_Interrupt.jar | Bin 0 -> 1968 bytes libjava/testsuite/libjava.lang/Throw_1.jar | Bin 0 -> 756 bytes libjava/testsuite/libjava.lang/Throw_2.jar | Bin 0 -> 1011 bytes libjava/testsuite/libjava.lang/Throw_3.jar | Bin 0 -> 947 bytes libjava/testsuite/libjava.lang/anfi.jar | Bin 0 -> 1822 bytes libjava/testsuite/libjava.lang/anon.jar | Bin 0 -> 2564 bytes libjava/testsuite/libjava.lang/anon2.jar | Bin 0 -> 2361 bytes libjava/testsuite/libjava.lang/anon3.jar | Bin 0 -> 1540 bytes libjava/testsuite/libjava.lang/anon4.jar | Bin 0 -> 1631 bytes .../testsuite/libjava.lang/anon_ctor_itf_arg.jar | Bin 0 -> 1962 bytes libjava/testsuite/libjava.lang/anonarray.jar | Bin 0 -> 842 bytes libjava/testsuite/libjava.lang/anonarray2.jar | Bin 0 -> 921 bytes libjava/testsuite/libjava.lang/anonarray3.jar | Bin 0 -> 704 bytes libjava/testsuite/libjava.lang/assign.jar | Bin 0 -> 1261 bytes libjava/testsuite/libjava.lang/assign2.jar | Bin 0 -> 801 bytes libjava/testsuite/libjava.lang/bclink.jar | Bin 0 -> 640 bytes libjava/testsuite/libjava.lang/bytearray.jar | Bin 0 -> 829 bytes libjava/testsuite/libjava.lang/direct_read.jar | Bin 0 -> 1455 bytes libjava/testsuite/libjava.lang/direct_write.jar | Bin 0 -> 1391 bytes libjava/testsuite/libjava.lang/emptystring.jar | Bin 0 -> 883 bytes libjava/testsuite/libjava.lang/err1.jar | Bin 0 -> 1114 bytes libjava/testsuite/libjava.lang/err10.jar | Bin 0 -> 819 bytes libjava/testsuite/libjava.lang/err11.jar | Bin 0 -> 744 bytes libjava/testsuite/libjava.lang/err12.jar | Bin 0 -> 862 bytes libjava/testsuite/libjava.lang/err13.jar | Bin 0 -> 864 bytes libjava/testsuite/libjava.lang/err14.jar | Bin 0 -> 764 bytes libjava/testsuite/libjava.lang/err2.jar | Bin 0 -> 775 bytes libjava/testsuite/libjava.lang/err3.jar | Bin 0 -> 856 bytes libjava/testsuite/libjava.lang/err4.jar | Bin 0 -> 872 bytes libjava/testsuite/libjava.lang/err5.jar | Bin 0 -> 905 bytes libjava/testsuite/libjava.lang/err6.jar | Bin 0 -> 845 bytes libjava/testsuite/libjava.lang/err7.jar | Bin 0 -> 691 bytes libjava/testsuite/libjava.lang/err8.jar | Bin 0 -> 652 bytes libjava/testsuite/libjava.lang/err9.jar | Bin 0 -> 831 bytes libjava/testsuite/libjava.lang/final_inner.jar | Bin 0 -> 1488 bytes libjava/testsuite/libjava.lang/final_int.jar | Bin 0 -> 1251 bytes .../libjava.lang/final_static_and_friend.jar | Bin 0 -> 848 bytes libjava/testsuite/libjava.lang/indirect.jar | Bin 0 -> 2658 bytes libjava/testsuite/libjava.lang/indirect_read.jar | Bin 0 -> 2044 bytes libjava/testsuite/libjava.lang/indirect_write.jar | Bin 0 -> 1976 bytes libjava/testsuite/libjava.lang/initexc.jar | Bin 0 -> 1183 bytes libjava/testsuite/libjava.lang/initfield.jar | Bin 0 -> 1311 bytes libjava/testsuite/libjava.lang/inline.jar | Bin 0 -> 823 bytes libjava/testsuite/libjava.lang/inner1.jar | Bin 0 -> 1973 bytes libjava/testsuite/libjava.lang/inner2.jar | Bin 0 -> 776 bytes libjava/testsuite/libjava.lang/inner3.jar | Bin 0 -> 1284 bytes libjava/testsuite/libjava.lang/inner4.jar | Bin 0 -> 1633 bytes libjava/testsuite/libjava.lang/inner_array.jar | Bin 0 -> 1602 bytes libjava/testsuite/libjava.lang/inner_interface.jar | Bin 0 -> 1644 bytes libjava/testsuite/libjava.lang/instance.jar | Bin 0 -> 942 bytes libjava/testsuite/libjava.lang/instinit.jar | Bin 0 -> 766 bytes libjava/testsuite/libjava.lang/instinit2.jar | Bin 0 -> 889 bytes .../testsuite/libjava.lang/invoke_from_inner.jar | Bin 0 -> 2208 bytes libjava/testsuite/libjava.lang/invokethrow.jar | Bin 0 -> 985 bytes libjava/testsuite/libjava.lang/klass.jar | Bin 0 -> 771 bytes libjava/testsuite/libjava.lang/lang.exp | 4 +- libjava/testsuite/libjava.lang/md5test.jar | Bin 0 -> 1649 bytes libjava/testsuite/libjava.lang/multiple_finit.jar | Bin 0 -> 1447 bytes libjava/testsuite/libjava.lang/negzero.jar | Bin 0 -> 680 bytes .../testsuite/libjava.lang/nested_with_ctor.jar | Bin 0 -> 1541 bytes .../testsuite/libjava.lang/newarray_overflow.jar | Bin 0 -> 1157 bytes libjava/testsuite/libjava.lang/override.jar | Bin 0 -> 1013 bytes libjava/testsuite/libjava.lang/pr100.jar | Bin 0 -> 709 bytes libjava/testsuite/libjava.lang/pr109.jar | Bin 0 -> 717 bytes libjava/testsuite/libjava.lang/pr13107.jar | Bin 0 -> 788 bytes libjava/testsuite/libjava.lang/pr13107_2.jar | Bin 0 -> 666 bytes libjava/testsuite/libjava.lang/pr13107_3.jar | Bin 0 -> 717 bytes libjava/testsuite/libjava.lang/pr133.jar | Bin 0 -> 946 bytes libjava/testsuite/libjava.lang/pr16789.jar | Bin 0 -> 751 bytes libjava/testsuite/libjava.lang/pr17536.jar | Bin 0 -> 703 bytes libjava/testsuite/libjava.lang/pr179.jar | Bin 0 -> 2260 bytes libjava/testsuite/libjava.lang/pr179.java | 12 +- libjava/testsuite/libjava.lang/pr179.out | 5 +- libjava/testsuite/libjava.lang/pr184.jar | Bin 0 -> 757 bytes libjava/testsuite/libjava.lang/pr21785.jar | Bin 0 -> 896 bytes libjava/testsuite/libjava.lang/pr21844.jar | Bin 0 -> 1500 bytes libjava/testsuite/libjava.lang/pr22211.jar | Bin 0 -> 625 bytes libjava/testsuite/libjava.lang/pr24321.jar | Bin 0 -> 1602 bytes libjava/testsuite/libjava.lang/pr25676.jar | Bin 0 -> 728 bytes libjava/testsuite/libjava.lang/pr26390.jar | Bin 0 -> 3388 bytes libjava/testsuite/libjava.lang/pr26990.jar | Bin 0 -> 1125 bytes libjava/testsuite/libjava.lang/pr27171.jar | Bin 0 -> 802 bytes libjava/testsuite/libjava.lang/pr6388.jar | Bin 0 -> 682 bytes libjava/testsuite/libjava.lang/pr83.jar | Bin 0 -> 928 bytes libjava/testsuite/libjava.lang/pr8415.jar | Bin 0 -> 811 bytes libjava/testsuite/libjava.lang/pr8676.jar | Bin 0 -> 593 bytes libjava/testsuite/libjava.lang/pr8823.jar | Bin 0 -> 1148 bytes libjava/testsuite/libjava.lang/pr8945.jar | Bin 0 -> 708 bytes .../testsuite/libjava.lang/private_direct_read.jar | Bin 0 -> 1556 bytes .../libjava.lang/private_direct_write.jar | Bin 0 -> 1489 bytes .../libjava.lang/private_indirect_read.jar | Bin 0 -> 2183 bytes .../libjava.lang/private_indirect_write.jar | Bin 0 -> 2121 bytes libjava/testsuite/libjava.lang/search_outer.jar | Bin 0 -> 1558 bytes libjava/testsuite/libjava.lang/shatest.jar | Bin 0 -> 1274 bytes libjava/testsuite/libjava.lang/stacktrace.jar | Bin 0 -> 2079 bytes libjava/testsuite/libjava.lang/stringconst.jar | Bin 0 -> 1175 bytes libjava/testsuite/libjava.lang/stringconst.xfail | 1 - libjava/testsuite/libjava.lang/stringconst2.jar | Bin 0 -> 877 bytes libjava/testsuite/libjava.lang/stub.jar | Bin 0 -> 3099 bytes libjava/testsuite/libjava.lang/test_long.jar | Bin 0 -> 883 bytes libjava/testsuite/libjava.lang/tmi.jar | Bin 0 -> 2020 bytes libjava/testsuite/libjava.lang/tp.jar | Bin 0 -> 2089 bytes libjava/testsuite/libjava.lang/update_outer.jar | Bin 0 -> 1619 bytes libjava/testsuite/libjava.lang/utf8concat.jar | Bin 0 -> 622 bytes libjava/testsuite/libjava.lang/utilTest.jar | Bin 0 -> 1471 bytes libjava/testsuite/libjava.lang/verify.jar | Bin 0 -> 1338 bytes libjava/testsuite/libjava.loader/TestEarlyGC.jar | Bin 0 -> 2452 bytes libjava/testsuite/libjava.loader/TestLeak.jar | Bin 0 -> 1571 bytes libjava/testsuite/libjava.loader/TestLeak.java | 4 +- libjava/testsuite/libjava.loader/TestMultiple.jar | Bin 0 -> 1165 bytes libjava/testsuite/libjava.loader/TestParent.jar | Bin 0 -> 1182 bytes libjava/testsuite/libjava.loader/dummy.class | Bin 0 -> 184 bytes libjava/testsuite/libjava.loader/loader.exp | 24 +- libjava/testsuite/libjava.special/special.exp | 14 +- libjava/win32-threads.cc | 145 + 17499 files changed, 610476 insertions(+), 108190 deletions(-) delete mode 100644 gcc/java/buffer.c delete mode 100644 gcc/java/buffer.h delete mode 100644 gcc/java/chartables.h delete mode 100644 gcc/java/check-init.c delete mode 100644 gcc/java/convert.h delete mode 100644 gcc/java/gen-table.pl delete mode 100644 gcc/java/gjavah.c rewrite gcc/java/java-tree.def (63%) delete mode 100644 gcc/java/jcf-write.c delete mode 100644 gcc/java/jv-scan.c delete mode 100644 gcc/java/keyword.gperf delete mode 100644 gcc/java/keyword.h delete mode 100644 gcc/java/lex.c delete mode 100644 gcc/java/lex.h delete mode 100644 gcc/java/parse-scan.y rewrite gcc/java/parse.h (92%) delete mode 100644 gcc/java/parse.y create mode 100644 libjava/classpath/.cdtproject create mode 100644 libjava/classpath/.classpath create mode 100644 libjava/classpath/.cvsignore create mode 100644 libjava/classpath/.externalToolBuilders/Autogen.launch create mode 100644 libjava/classpath/.externalToolBuilders/ClasspathHeaders.launch create mode 100644 libjava/classpath/.externalToolBuilders/ClasspathJar.launch create mode 100644 libjava/classpath/.externalToolBuilders/CompileNative.launch create mode 100644 libjava/classpath/.externalToolBuilders/Configure.launch create mode 100644 libjava/classpath/.externalToolBuilders/CreateLocaleData.launch create mode 100644 libjava/classpath/.project create mode 100644 libjava/classpath/.settings/org.eclipse.jdt.core.prefs create mode 100644 libjava/classpath/.settings/org.eclipse.jdt.ui.prefs create mode 100644 libjava/classpath/ChangeLog.usermap create mode 100755 libjava/classpath/compile create mode 100644 libjava/classpath/doc/.cvsignore create mode 100644 libjava/classpath/doc/api/.cvsignore create mode 100644 libjava/classpath/examples/.cvsignore create mode 100644 libjava/classpath/examples/gnu/classpath/examples/awt/aicas.png create mode 100644 libjava/classpath/examples/gnu/classpath/examples/awt/palme.gif create mode 100644 libjava/classpath/examples/gnu/classpath/examples/icons/back.png create mode 100644 libjava/classpath/examples/gnu/classpath/examples/icons/reload.png create mode 100644 libjava/classpath/examples/gnu/classpath/examples/java2d/aicas.png create mode 100644 libjava/classpath/examples/gnu/classpath/examples/java2d/palme.gif create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/BrowserEditorKit.java create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/ClasspathSwingActivityBoard.launch create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/forms.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/frame1.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/frame2.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/frame3.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/frame4.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/frames.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/tables.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/textstyles.html create mode 100644 libjava/classpath/examples/gnu/classpath/examples/swing/welcome.html create mode 100644 libjava/classpath/external/.cvsignore create mode 100644 libjava/classpath/external/jsr166/.cvsignore create mode 100644 libjava/classpath/external/jsr166/IMPORTING create mode 100644 libjava/classpath/external/jsr166/Makefile.am create mode 100644 libjava/classpath/external/jsr166/Makefile.in create mode 100644 libjava/classpath/external/jsr166/java/util/AbstractQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/ArrayDeque.java create mode 100644 libjava/classpath/external/jsr166/java/util/Deque.java create mode 100644 libjava/classpath/external/jsr166/java/util/NavigableMap.java create mode 100644 libjava/classpath/external/jsr166/java/util/NavigableSet.java create mode 100644 libjava/classpath/external/jsr166/java/util/Queue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/AbstractExecutorService.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/BlockingDeque.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/BlockingQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/BrokenBarrierException.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/Callable.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/CancellationException.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/CompletionService.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentLinkedQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentMap.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentNavigableMap.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/CountDownLatch.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/Delayed.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/Exchanger.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ExecutionException.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/Executor.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ExecutorCompletionService.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ExecutorService.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/Executors.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/Future.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionException.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionHandler.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/RunnableFuture.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/RunnableScheduledFuture.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ScheduledFuture.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ThreadFactory.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/TimeUnit.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/TimeoutException.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicBoolean.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerArray.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongArray.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicMarkableReference.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReference.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceArray.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicStampedReference.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/atomic/package.html create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractOwnableSynchronizer.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/Condition.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/Lock.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/LockSupport.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/ReadWriteLock.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantLock.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/locks/package.html create mode 100644 libjava/classpath/external/jsr166/java/util/concurrent/package.html create mode 100644 libjava/classpath/external/jsr166/readme create mode 100644 libjava/classpath/external/relaxngDatatype/.cvsignore create mode 100644 libjava/classpath/external/sax/.cvsignore create mode 100644 libjava/classpath/external/w3c_dom/.cvsignore create mode 100644 libjava/classpath/external/w3c_dom/COPYRIGHT.html create mode 100644 libjava/classpath/gnu/CORBA/CollocatedOrbs.java create mode 100644 libjava/classpath/gnu/CORBA/SafeForDirectCalls.java create mode 100644 libjava/classpath/gnu/classpath/.cvsignore create mode 100644 libjava/classpath/gnu/classpath/ListenerData.java create mode 100644 libjava/classpath/gnu/java/awt/ComponentReshapeEvent.java create mode 100644 libjava/classpath/gnu/java/awt/LowPriorityEvent.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/AxisHints.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/Constants.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/Latin.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/LatinAxis.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/LatinMetrics.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/Scaler.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/Script.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/ScriptMetrics.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/Segment.java create mode 100644 libjava/classpath/gnu/java/awt/font/autofit/Width.java create mode 100644 libjava/classpath/gnu/java/awt/java2d/ShapeCache.java create mode 100644 libjava/classpath/gnu/java/awt/peer/NativeEventLoopRunningEvent.java create mode 100644 libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java delete mode 100644 libjava/classpath/gnu/java/awt/peer/gtk/GdkFontMetrics.java create mode 100644 libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java create mode 100644 libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java create mode 100644 libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java create mode 100644 libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java create mode 100644 libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java create mode 100644 libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java create mode 100644 libjava/classpath/gnu/java/io/class-dependencies.conf create mode 100644 libjava/classpath/gnu/java/locale/.cvsignore create mode 100644 libjava/classpath/gnu/java/net/DefaultProxySelector.java create mode 100644 libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java create mode 100644 libjava/classpath/gnu/java/nio/EpollSelectorImpl.java create mode 100644 libjava/classpath/gnu/java/nio/FileChannelImpl.java create mode 100644 libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java create mode 100644 libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java create mode 100644 libjava/classpath/gnu/java/nio/NIOSocketImpl.java create mode 100644 libjava/classpath/gnu/java/nio/VMChannelOwner.java delete mode 100644 libjava/classpath/gnu/java/nio/channels/FileChannelImpl.java create mode 100644 libjava/classpath/gnu/java/security/.cvsignore create mode 100644 libjava/classpath/gnu/java/security/Requires.java create mode 100644 libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java create mode 100644 libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java create mode 100644 libjava/classpath/gnu/javax/management/Server.java create mode 100644 libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java create mode 100644 libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java create mode 100644 libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java create mode 100644 libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java create mode 100644 libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java create mode 100644 libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java create mode 100644 libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java create mode 100644 libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java create mode 100644 libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/SSLProtocolVersion.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/Session.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java rewrite libjava/classpath/gnu/javax/net/ssl/provider/Alert.java (69%) create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Builder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java rewrite libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java (63%) create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CipherAlgorithm.java rewrite libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java (87%) create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java rewrite libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java (68%) create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Context.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Debug.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/DigestInputStream.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/DigestOutputStream.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Enumerated.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Extensions.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/GNUSecurityParameters.java rewrite libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java (72%) create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/JCESecurityParameters.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/JDBCSessionContext.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPrivateKey.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPublicKey.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPublicKey.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/KeyPool.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/MacAlgorithm.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/OverflowException.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Record.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/RecordInput.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/RecordInputStream.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/RecordOutputStream.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/RecordingInputStream.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignature.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocket.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactory.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLSocket.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactory.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketInputStream.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketOutputStream.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SecurityParameters.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java rewrite libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java (64%) create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java rewrite libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java (76%) create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerRSAParams.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Session.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SessionContext.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/SynchronizedRandom.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java delete mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/XMLSessionContext.java create mode 100644 libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/BorderWidth.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/CSSColor.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/CSSLexicalException.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/CSSParserCallback.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/CSSParserException.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/FontStyle.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/FontWeight.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/Length.java create mode 100644 libjava/classpath/gnu/javax/swing/text/html/css/Selector.java delete mode 100644 libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401Swing.java create mode 100644 libjava/classpath/gnu/test/.cvsignore create mode 100644 libjava/classpath/gnu/xml/transform/SAXTemplatesHandler.java create mode 100644 libjava/classpath/gnu/xml/transform/SAXTransformerHandler.java create mode 100644 libjava/classpath/include/.cvsignore delete mode 100644 libjava/classpath/include/gnu_java_net_VMPlainDatagramSocketImpl.h rewrite libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h (60%) create mode 100644 libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h create mode 100644 libjava/classpath/include/gnu_java_nio_FileChannelImpl.h create mode 100644 libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h delete mode 100644 libjava/classpath/include/gnu_java_nio_channels_FileChannelImpl.h rewrite libjava/classpath/java/awt/List.java (73%) rewrite libjava/classpath/java/awt/Menu.java (70%) create mode 100644 libjava/classpath/java/awt/datatransfer/MimeType.java rewrite libjava/classpath/java/awt/image/ImageFilter.java (73%) rewrite libjava/classpath/java/awt/image/RGBImageFilter.java (79%) create mode 100644 libjava/classpath/java/io/class-dependencies.conf create mode 100644 libjava/classpath/java/lang/Deprecated.java create mode 100644 libjava/classpath/java/lang/Override.java create mode 100644 libjava/classpath/java/lang/ProcessBuilder.java create mode 100644 libjava/classpath/java/lang/SuppressWarnings.java create mode 100644 libjava/classpath/java/lang/annotation/Documented.java create mode 100644 libjava/classpath/java/lang/annotation/ElementType.java create mode 100644 libjava/classpath/java/lang/annotation/Inherited.java create mode 100644 libjava/classpath/java/lang/annotation/Retention.java create mode 100644 libjava/classpath/java/lang/annotation/RetentionPolicy.java create mode 100644 libjava/classpath/java/lang/annotation/Target.java create mode 100644 libjava/classpath/java/lang/class-dependencies.conf create mode 100644 libjava/classpath/java/lang/management/MemoryType.java create mode 100644 libjava/classpath/java/math/RoundingMode.java create mode 100644 libjava/classpath/java/math/class-dependencies.conf create mode 100644 libjava/classpath/java/net/Proxy.java create mode 100644 libjava/classpath/java/net/ProxySelector.java create mode 100644 libjava/classpath/java/net/class-dependencies.conf create mode 100644 libjava/classpath/java/nio/class-dependencies.conf rewrite libjava/classpath/java/text/DecimalFormat.java (75%) create mode 100644 libjava/classpath/java/util/.cvsignore create mode 100644 libjava/classpath/java/util/EnumMap.java create mode 100644 libjava/classpath/java/util/EnumSet.java create mode 100644 libjava/classpath/java/util/PriorityQueue.java create mode 100644 libjava/classpath/java/util/class-dependencies.conf create mode 100644 libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java create mode 100644 libjava/classpath/javax/management/BadAttributeValueExpException.java create mode 100644 libjava/classpath/javax/management/BadBinaryOpValueExpException.java create mode 100644 libjava/classpath/javax/management/BadStringOperationException.java create mode 100644 libjava/classpath/javax/management/InstanceAlreadyExistsException.java create mode 100644 libjava/classpath/javax/management/InstanceNotFoundException.java create mode 100644 libjava/classpath/javax/management/InvalidApplicationException.java create mode 100644 libjava/classpath/javax/management/MBeanPermission.java create mode 100644 libjava/classpath/javax/management/MBeanRegistration.java create mode 100644 libjava/classpath/javax/management/MBeanRegistrationException.java create mode 100644 libjava/classpath/javax/management/MBeanServer.java create mode 100644 libjava/classpath/javax/management/MBeanServerBuilder.java create mode 100644 libjava/classpath/javax/management/MBeanServerConnection.java create mode 100644 libjava/classpath/javax/management/MBeanServerDelegate.java create mode 100644 libjava/classpath/javax/management/MBeanServerDelegateMBean.java create mode 100644 libjava/classpath/javax/management/MBeanServerFactory.java create mode 100644 libjava/classpath/javax/management/MBeanServerNotification.java create mode 100644 libjava/classpath/javax/management/MBeanServerPermission.java create mode 100644 libjava/classpath/javax/management/MBeanTrustPermission.java create mode 100644 libjava/classpath/javax/management/MalformedObjectNameException.java create mode 100644 libjava/classpath/javax/management/ObjectInstance.java create mode 100644 libjava/classpath/javax/management/ObjectName.java create mode 100644 libjava/classpath/javax/management/QueryExp.java create mode 100644 libjava/classpath/javax/management/RuntimeErrorException.java create mode 100644 libjava/classpath/javax/management/RuntimeMBeanException.java create mode 100644 libjava/classpath/javax/management/ServiceNotFoundException.java create mode 100644 libjava/classpath/javax/management/ValueExp.java create mode 100644 libjava/classpath/javax/management/loading/ClassLoaderRepository.java create mode 100644 libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java create mode 100644 libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java create mode 100644 libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java create mode 100644 libjava/classpath/javax/management/openmbean/TabularDataSupport.java create mode 100644 libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java create mode 100644 libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java create mode 100644 libjava/classpath/javax/net/ssl/SSLEngine.java create mode 100644 libjava/classpath/javax/net/ssl/SSLEngineResult.java create mode 100644 libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java create mode 100644 libjava/classpath/javax/swing/text/ZoneView.java create mode 100644 libjava/classpath/javax/swing/text/html/CSSBorder.java create mode 100644 libjava/classpath/javax/swing/text/html/FormSubmitEvent.java create mode 100644 libjava/classpath/javax/swing/text/html/FrameSetView.java create mode 100644 libjava/classpath/javax/swing/text/html/FrameView.java create mode 100644 libjava/classpath/javax/swing/text/html/HTMLWriter.java create mode 100644 libjava/classpath/javax/swing/text/html/MultiAttributeSet.java create mode 100644 libjava/classpath/javax/swing/text/html/MultiStyle.java create mode 100644 libjava/classpath/javax/swing/text/html/ResetableModel.java create mode 100644 libjava/classpath/javax/swing/text/html/ResetablePlainDocument.java create mode 100644 libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java create mode 100644 libjava/classpath/javax/swing/text/html/SelectComboBoxModel.java create mode 100644 libjava/classpath/javax/swing/text/html/SelectListModel.java create mode 100644 libjava/classpath/javax/swing/text/html/ViewAttributeSet.java create mode 100644 libjava/classpath/jvmti.h create mode 100644 libjava/classpath/lib/.cvsignore create mode 100644 libjava/classpath/lib/gnu/CORBA/Asynchron.class create mode 100644 libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class create mode 100644 libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/AbstractCdrInput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/AbstractCdrOutput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/AbstractDataInput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/AbstractDataOutput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/AligningInput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/AligningOutput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/ArrayValueHelper.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/BigEndianInputStream.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/BigEndianOutputStream.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/BufferedCdrOutput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/BufferredCdrInput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/EncapsulationStream.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/HeadlessInput.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/IDLTypeHelper.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianOutputStream.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/UnknownExceptionCtxHandler.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/VMVio.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/Vio.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CDR/gnuValueStream.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CdrEncapsCodecImpl.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Connected_objects$cObject.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Connected_objects.class create mode 100644 libjava/classpath/lib/gnu/CORBA/CorbaList.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DefaultSocketFactory.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DefinitionKindHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DuplicateNameHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/AbstractAny.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/NameValuePairHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/RecordAny.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/UndivideableAny.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/ValueChangeListener.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynAny.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynAnyFactory.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynEnum.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynFixed.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynSequence.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynStruct.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynValue.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynValueBox.class create mode 100644 libjava/classpath/lib/gnu/CORBA/DynAnySeqHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/ForwardRequestHelper.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/CancelHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/CharSets_OSF.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/CloseMessage.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/ContextHandler.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/ErrorMessage.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/ReplyHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/ServiceContext.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/CancelHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/ReplyHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class create mode 100644 libjava/classpath/lib/gnu/CORBA/GeneralHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/HolderLocator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class create mode 100644 libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class create mode 100644 libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class create mode 100644 libjava/classpath/lib/gnu/CORBA/IOR.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/ClientRequestInterceptors.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/ForwardRequestHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/Registrator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/ServerRequestInterceptors.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/gnuClientRequestInfo.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/gnuIcCurrent.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/gnuIorInfo.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Interceptor/gnuServerRequestInfo.class create mode 100644 libjava/classpath/lib/gnu/CORBA/IorDelegate.class create mode 100644 libjava/classpath/lib/gnu/CORBA/IorObject.class create mode 100644 libjava/classpath/lib/gnu/CORBA/IorProvider.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Minor.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NameDynAnyPairHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NameDynAnyPairSeqHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NameValuePairHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NameValuePairSeqHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/Binding_iterator_impl.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/Ext.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/NameComponentComparator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/NameValidator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/NamingMap.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/NamingServiceTransient$1.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/NamingServiceTransient.class create mode 100644 libjava/classpath/lib/gnu/CORBA/NamingService/TransientContext.class create mode 100644 libjava/classpath/lib/gnu/CORBA/ObjectCreator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OctetHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OrbFocused.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OrbFunctional$1.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OrbFunctional$2.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OrbFunctional$portServer.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OrbFunctional$sharedPortServer.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OrbFunctional.class create mode 100644 libjava/classpath/lib/gnu/CORBA/OrbRestricted.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/AOM$Obj.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/AOM.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/AccessiblePolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/DynamicImpHandler.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/ForwardRequestHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/ForwardedServant.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/InvalidPolicyHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/LocalDelegate.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/LocalRequest.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/LocalServerRequest.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/ORB_1_4.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/ServantDelegateImpl.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/StandardPolicies.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuAdapterActivator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuForwardRequest.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuIdAssignmentPolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuIdUniquenessPolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuImplicitActivationPolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuLifespanPolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuPoaCurrent.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuRequestProcessingPolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuServantRetentionPolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Poa/gnuThreadPolicy.class create mode 100644 libjava/classpath/lib/gnu/CORBA/RawReply.class create mode 100644 libjava/classpath/lib/gnu/CORBA/ResponseHandlerImpl.class create mode 100644 libjava/classpath/lib/gnu/CORBA/SafeForDirectCalls.class create mode 100644 libjava/classpath/lib/gnu/CORBA/ServiceDetailHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class create mode 100644 libjava/classpath/lib/gnu/CORBA/SetOverrideTypeHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/SimpleDelegate.class create mode 100644 libjava/classpath/lib/gnu/CORBA/SocketRepository.class create mode 100644 libjava/classpath/lib/gnu/CORBA/StreamBasedRequest.class create mode 100644 libjava/classpath/lib/gnu/CORBA/StreamHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/StubLocator.class create mode 100644 libjava/classpath/lib/gnu/CORBA/TypeCodeHelper.class create mode 100644 libjava/classpath/lib/gnu/CORBA/TypeKindNamer.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Unexpected.class create mode 100644 libjava/classpath/lib/gnu/CORBA/Version.class create mode 100644 libjava/classpath/lib/gnu/CORBA/WCharHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/WStringHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/_PolicyImplBase.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuAny.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuCodecFactory.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuContext.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuContextList.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuEnvironment.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuNVList.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuNamedValue.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuRequest.class create mode 100644 libjava/classpath/lib/gnu/CORBA/gnuValueHolder.class create mode 100644 libjava/classpath/lib/gnu/CORBA/interfaces/SocketFactory.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/AliasTypeCode.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/ArrayTypeCode.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/FixedTypeCode.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/GeneralTypeCode.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/PrimitiveTypeCode.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/RecordTypeCode$Field.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/RecordTypeCode.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/RecursiveTypeCode.class create mode 100644 libjava/classpath/lib/gnu/CORBA/typecodes/StringTypeCode.class create mode 100644 libjava/classpath/lib/gnu/awt/LightweightRedirector.class create mode 100644 libjava/classpath/lib/gnu/awt/j2d/AbstractGraphicsState.class create mode 100644 libjava/classpath/lib/gnu/awt/j2d/DirectRasterGraphics.class create mode 100644 libjava/classpath/lib/gnu/awt/j2d/Graphics2DImpl.class create mode 100644 libjava/classpath/lib/gnu/awt/j2d/IntegerGraphicsState$ScreenCoupledImage.class create mode 100644 libjava/classpath/lib/gnu/awt/j2d/IntegerGraphicsState.class create mode 100644 libjava/classpath/lib/gnu/awt/j2d/MappedRaster.class create mode 100644 libjava/classpath/lib/gnu/classpath/Configuration.class create mode 100644 libjava/classpath/lib/gnu/classpath/ListenerData.class create mode 100644 libjava/classpath/lib/gnu/classpath/NotImplementedException.class create mode 100644 libjava/classpath/lib/gnu/classpath/Pointer.class create mode 100644 libjava/classpath/lib/gnu/classpath/Pointer32.class create mode 100644 libjava/classpath/lib/gnu/classpath/Pointer64.class create mode 100644 libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class create mode 100644 libjava/classpath/lib/gnu/classpath/ServiceFactory.class create mode 100644 libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class create mode 100644 libjava/classpath/lib/gnu/classpath/SystemProperties.class create mode 100644 libjava/classpath/lib/gnu/classpath/VMStackWalker.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/Component.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/PreciseFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/Simple1LineFormatter.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/SystemLogger.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/TeeInputStream.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/TeeOutputStream.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/TeeReader.class create mode 100644 libjava/classpath/lib/gnu/classpath/debug/TeeWriter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/Jdwp$1.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/Jdwp.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ClassStatus.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Error.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$EventKind.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ModKind.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$StepDepth.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$StepSize.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Tag.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$TypeTag.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Version.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/VMFrame.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager$IdFactory.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager$ReferenceKey.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/VMMethod.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/BreakpointEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/ClassPrepareEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/ClassUnloadEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/Event.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/EventManager.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/EventRequest.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/MethodEntryEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/MethodExitEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/SingleStepEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/ThreadEndEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/ThreadStartEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/VmDeathEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/VmInitEvent.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassMatchFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ConditionalFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/CountFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/IEventFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidClassException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidClassLoaderException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidCountException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidEventTypeException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidFieldException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidLocationException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidMethodException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidObjectException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidStringException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidThreadException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidThreadGroupException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpInternalErrorException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/NativeMethodException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/NotImplementedException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/exception/VmDeadException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ArrayId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ArrayReferenceTypeId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ClassLoaderId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ClassObjectId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ClassReferenceTypeId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/JdwpId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ObjectId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ReferenceTypeId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/StringId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ThreadGroupId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/id/ThreadId.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/CommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/EventRequestCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/FieldCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/MethodCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/PacketProcessor.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/StackFrameCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/StringReferenceCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/ITransport.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpCommandPacket.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpConnection.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpPacket.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpReplyPacket.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/SocketTransport.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportException.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportFactory.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/util/JdwpString.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/util/LineTable.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/util/Location.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/util/MethodResult.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/util/Value.class create mode 100644 libjava/classpath/lib/gnu/classpath/jdwp/util/VariableTable.class create mode 100644 libjava/classpath/lib/gnu/gcj/Core.class create mode 100644 libjava/classpath/lib/gnu/gcj/RawData.class create mode 100644 libjava/classpath/lib/gnu/gcj/RawDataManaged.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/BytesToCharsetAdaptor.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/BytesToUnicode.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/CharsetToBytesAdaptor.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Convert.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/IOConverter.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_8859_1.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_ASCII.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_EUCJIS.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_JavaSrc.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_SJIS.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_UTF8.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_UnicodeBig.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_UnicodeLittle.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Input_iconv.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_8859_1.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_ASCII.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_EUCJIS.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_JavaSrc.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_SJIS.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_UTF8.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_UnicodeLittleUnmarked.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/Output_iconv.class create mode 100644 libjava/classpath/lib/gnu/gcj/convert/UnicodeToBytes.class create mode 100644 libjava/classpath/lib/gnu/gcj/io/DefaultMimeTypes.class create mode 100644 libjava/classpath/lib/gnu/gcj/io/MimeTypes.class create mode 100644 libjava/classpath/lib/gnu/gcj/io/SimpleSHSStream.class create mode 100644 libjava/classpath/lib/gnu/gcj/jvmti/Breakpoint.class create mode 100644 libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class create mode 100644 libjava/classpath/lib/gnu/gcj/jvmti/Location.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/BootClassLoader.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/ExtensionClassLoader.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/FinalizerThread.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/HelperClassLoader$1.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/HelperClassLoader.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/JNIWeakRef.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/NameFinder$Addr2Line.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/NameFinder.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$AccessMode.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$ByteWrapper.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$HashIterator.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$MapEntry.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/SharedLibHelper.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/SharedLibLoader.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/StringBuffer.class create mode 100644 libjava/classpath/lib/gnu/gcj/runtime/SystemClassLoader.class create mode 100644 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class create mode 100644 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class create mode 100644 libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class create mode 100644 libjava/classpath/lib/gnu/gcj/util/Debug.class create mode 100644 libjava/classpath/lib/gnu/java/awt/AWTUtilities$VisibleComponentList$VisibleComponentIterator.class create mode 100644 libjava/classpath/lib/gnu/java/awt/AWTUtilities$VisibleComponentList.class create mode 100644 libjava/classpath/lib/gnu/java/awt/AWTUtilities.class create mode 100644 libjava/classpath/lib/gnu/java/awt/BitMaskExtent.class create mode 100644 libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite$GeneralContext.class create mode 100644 libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite$IntContext.class create mode 100644 libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite.class create mode 100644 libjava/classpath/lib/gnu/java/awt/Buffers.class create mode 100644 libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class create mode 100644 libjava/classpath/lib/gnu/java/awt/ComponentDataBlitOp.class create mode 100644 libjava/classpath/lib/gnu/java/awt/ComponentReshapeEvent.class create mode 100644 libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class create mode 100644 libjava/classpath/lib/gnu/java/awt/EventModifier.class create mode 100644 libjava/classpath/lib/gnu/java/awt/GradientPaintContext.class create mode 100644 libjava/classpath/lib/gnu/java/awt/LowPriorityEvent.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/CieXyzConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/ClutProfileConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/ColorLookUpTable.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/ColorSpaceConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/GrayProfileConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/GrayScaleConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/LinearRGBConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/ProfileHeader.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/PyccConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/RgbProfileConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/SrgbConverter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/TagEntry.class create mode 100644 libjava/classpath/lib/gnu/java/awt/color/ToneReproductionCurve.class create mode 100644 libjava/classpath/lib/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/FontFactory.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/AxisHints.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/Constants.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/GlyphHints.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/Latin.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/LatinAxis.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/LatinMetrics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/Scaler.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/Script.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/ScriptMetrics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Dummy.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type0.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type12.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type4.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/MacResourceFork$Resource.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/MacResourceFork.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/NameDecoder.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFontFactory.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/Scaler.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLoader.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator$FourByte.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator$TwoByte.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Zone.class create mode 100644 libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/ZonePathIterator.class create mode 100644 libjava/classpath/lib/gnu/java/awt/image/ImageDecoder$DataInputStreamWrapper.class create mode 100644 libjava/classpath/lib/gnu/java/awt/image/ImageDecoder.class create mode 100644 libjava/classpath/lib/gnu/java/awt/image/XBMDecoder.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/AlphaCompositeContext.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/CubicSegment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/ImagePaint$ImagePaintContext.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/ImagePaint.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/LineSegment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/PolyEdge.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/PolyEdgeComparator.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/QuadSegment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/Segment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class create mode 100644 libjava/classpath/lib/gnu/java/awt/java2d/TexturePaintContext.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/EmbeddedWindowPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/NativeEventLoopRunningEvent.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage$Loader.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage$NullImageSource.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/BufferedImageGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface$CairoDataBuffer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GThreadMutex.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkButtonPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCanvasPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCheckboxPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkChoicePeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboardNotifier.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkContainerPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCursor.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkDialogPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFileDialogPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkImage.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkImageConsumer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkLabelPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkListPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuBarPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuItemPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkPanelPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkScrollPanePeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkScrollbarPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkSelection.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkTextAreaPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkTextFieldPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkVolatileImage.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/MainQtThread.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/NativeWrapper.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QMatrix.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QPainterPath.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QPen.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtAudioClip.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtButtonPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtCanvasPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtCheckboxPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtChoicePeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer$RepaintTimerTask.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtContainerPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtDialogPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtFileDialogPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtGraphicsEnvironment.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtImage.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageConsumer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageDirectGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtLabelPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtListPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuBarPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuComponentPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuItemPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtPanelPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtPopupMenuPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtRepaintThread$RepaintComponent.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtRepaintThread.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtScreenDevice.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtScrollPanePeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtScrollbarPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtTextAreaPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtTextFieldPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtVolatileImage$1.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtVolatileImage.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCanvasPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingFramePeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuBarPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuItemPeer$SwingMenuItemListener.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuItemPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuPeer$SwingMenu.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingPanelPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class create mode 100644 libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class create mode 100644 libjava/classpath/lib/gnu/java/awt/print/JavaPrinterGraphics.class create mode 100644 libjava/classpath/lib/gnu/java/awt/print/JavaPrinterJob.class create mode 100644 libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class create mode 100644 libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class create mode 100644 libjava/classpath/lib/gnu/java/beans/BeanInfoEmbryo.class create mode 100644 libjava/classpath/lib/gnu/java/beans/DefaultExceptionListener.class create mode 100644 libjava/classpath/lib/gnu/java/beans/DoubleKey.class create mode 100644 libjava/classpath/lib/gnu/java/beans/DummyAppletContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/DummyAppletStub.class create mode 100644 libjava/classpath/lib/gnu/java/beans/ExplicitBeanInfo.class create mode 100644 libjava/classpath/lib/gnu/java/beans/IntrospectionIncubator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/AbstractContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/AbstractCreatableObjectContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/AbstractElementHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/AbstractObjectContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ArrayContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ArrayHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/AssemblyException.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/BooleanHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ByteHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/CharHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ClassHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ConstructorContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/Context.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/DecoderContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/DoubleHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/DummyContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/DummyHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ElementHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/FloatHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/GrowableArrayContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/IndexContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/IntHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/JavaHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/LongHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/MethodContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/MethodFinder.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/NullHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ObjectContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ObjectHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ArrayHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$BooleanHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ByteHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$CharHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ClassHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$Creator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$DoubleHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$FloatHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$IntHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$JavaHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$LongHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$NullHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ObjectHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ShortHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$StringHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$VoidHandlerCreator.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/PropertyContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/ShortHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/SimpleHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/StaticMethodContext.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/StringHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/decoder/VoidHandler.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/ColorEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/FontEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/NativeBooleanEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/NativeByteEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/NativeDoubleEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/NativeFloatEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/NativeIntEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/NativeLongEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/NativeShortEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/editors/StringEditor.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/ArrayPersistenceDelegate.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/ClassPersistenceDelegate.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/CollectionPersistenceDelegate.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/Context.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/GenericScannerState.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/IgnoringScannerState.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/MapPersistenceDelegate.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/ObjectId.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/PrimitivePersistenceDelegate.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/ReportingScannerState.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/Root$RootElement.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/Root.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/ScanEngine.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/ScannerState.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/StAXWriter.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/Writer.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/ArrayInstantiation.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/Array_Get.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/Array_Set.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/ClassResolution.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/Element.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/List_Get.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/List_Set.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/MethodInvocation.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/NullObject.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/ObjectInstantiation.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/ObjectReference.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/PrimitiveInstantiation.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/StaticFieldAccess.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/StaticMethodInvocation.class create mode 100644 libjava/classpath/lib/gnu/java/beans/encoder/elements/StringReference.class create mode 100644 libjava/classpath/lib/gnu/java/io/ASN1ParsingException.class create mode 100644 libjava/classpath/lib/gnu/java/io/Base64InputStream.class create mode 100644 libjava/classpath/lib/gnu/java/io/ClassLoaderObjectInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/io/NullOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/io/ObjectIdentityMap2Int.class create mode 100644 libjava/classpath/lib/gnu/java/io/ObjectIdentityWrapper.class create mode 100644 libjava/classpath/lib/gnu/java/io/PlatformHelper.class create mode 100644 libjava/classpath/lib/gnu/java/lang/ArrayHelper.class create mode 100644 libjava/classpath/lib/gnu/java/lang/CharData.class create mode 100644 libjava/classpath/lib/gnu/java/lang/ClassHelper.class create mode 100644 libjava/classpath/lib/gnu/java/lang/InstrumentationImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/MainThread.class create mode 100644 libjava/classpath/lib/gnu/java/lang/VMInstrumentationImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/ClassLoadingMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/CompilationMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/GarbageCollectorMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/MemoryMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/MemoryManagerMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/MemoryPoolMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/OperatingSystemMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/RuntimeMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/ThreadMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMClassLoadingMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMCompilationMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMMemoryMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMRuntimeMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/management/VMThreadMXBeanImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/ClassSignatureParser.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/FieldSignatureParser.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/MethodSignatureParser.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/TypeImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class create mode 100644 libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class create mode 100644 libjava/classpath/lib/gnu/java/locale/Calendar.class create mode 100644 libjava/classpath/lib/gnu/java/locale/Calendar_de.class create mode 100644 libjava/classpath/lib/gnu/java/locale/Calendar_en.class create mode 100644 libjava/classpath/lib/gnu/java/locale/Calendar_nl.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleData.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleHelper.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_af_ZA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_AE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_BH.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_DZ.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_EG.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_IN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_IQ.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_JO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_KW.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_LB.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_LY.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_MA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_OM.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_QA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_SD.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_SY.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_TN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_YE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_be_BY.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_bn_IN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_br_FR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_bs_BA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ca_ES.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_cs_CZ.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_cy_GB.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_da_DK.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_de.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_AT.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_BE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_CH.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_DE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_LU.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_el_GR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_AU.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_BW.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_CA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_DK.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_GB.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_HK.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_IE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_IN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_NZ.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_PH.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_SG.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_US.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_ZA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_ZW.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_AR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_BO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CL.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_DO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_EC.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_ES.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_GT.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_HN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_MX.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_NI.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PY.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_SV.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_US.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_UY.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_VE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_et_EE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_eu_ES.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fa_IR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fi_FI.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fo_FO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_BE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_CA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_CH.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_FR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_LU.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ga_IE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_gd_GB.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_gl_ES.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_gv_GB.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_he_IL.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_hi_IN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_hr_HR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_hu_HU.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_id_ID.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_it_CH.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_it_IT.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_iw_IL.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ja_JP.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ka_GE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_kl_GL.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ko_KR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_kw_GB.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_lt_LT.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_lv_LV.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_mi_NZ.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_mk_MK.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_mr_IN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_mt_MT.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl_BE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl_NL.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_nn_NO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_no_NO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_oc_FR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_pl_PL.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_pt_BR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_pt_PT.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ro_RO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ru_RU.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ru_UA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_se_NO.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_sk_SK.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_sl_SI.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_sq_AL.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_sr_YU.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_sv_FI.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_sv_SE.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ta_IN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_te_IN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_tg_TJ.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_tl_PH.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_tr_TR.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_uk_UA.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_ur_PK.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_uz_UZ.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_vi_VN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_yi_US.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_CN.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_HK.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_SG.class create mode 100644 libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_TW.class create mode 100644 libjava/classpath/lib/gnu/java/math/MPN.class create mode 100644 libjava/classpath/lib/gnu/java/net/BASE64.class create mode 100644 libjava/classpath/lib/gnu/java/net/CRLFInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/CRLFOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/DefaultContentHandlerFactory.class create mode 100644 libjava/classpath/lib/gnu/java/net/DefaultProxySelector.class create mode 100644 libjava/classpath/lib/gnu/java/net/EmptyX509TrustManager.class create mode 100644 libjava/classpath/lib/gnu/java/net/GetLocalHostAction.class create mode 100644 libjava/classpath/lib/gnu/java/net/HeaderFieldHelper.class create mode 100644 libjava/classpath/lib/gnu/java/net/ImageHandler.class create mode 100644 libjava/classpath/lib/gnu/java/net/IndexListParser.class create mode 100644 libjava/classpath/lib/gnu/java/net/LineInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/PlainDatagramSocketImpl.class create mode 100644 libjava/classpath/lib/gnu/java/net/PlainSocketImpl$SocketInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/PlainSocketImpl$SocketOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/PlainSocketImpl.class create mode 100644 libjava/classpath/lib/gnu/java/net/URLParseError.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/FileResource.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/FileURLLoader.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/JarURLLoader.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/JarURLResource.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/RemoteResource.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/RemoteURLLoader.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/Resource.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/URLLoader.class create mode 100644 libjava/classpath/lib/gnu/java/net/loader/URLStreamHandlerCache.class create mode 100644 libjava/classpath/lib/gnu/java/net/local/LocalServerSocket.class create mode 100644 libjava/classpath/lib/gnu/java/net/local/LocalSocket.class create mode 100644 libjava/classpath/lib/gnu/java/net/local/LocalSocketAddress.class create mode 100644 libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl$LocalInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/core/Connection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/core/CoreInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/core/Handler.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/file/Connection$StaticData.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/file/Connection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/file/Handler.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/ActiveModeDTP.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/BlockInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/BlockOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/CompressedInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/CompressedOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/DTP.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/DTPInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/DTPOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPException.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPResponse.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/Handler.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/PassiveModeDTP.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/StreamInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/ftp/StreamOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/gcjlib/Connection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/gcjlib/Handler.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Authenticator.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/CookieManager.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Credentials.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/HTTPDateFormat.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/HTTPURLConnection$1.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/HTTPURLConnection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Handler.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Request.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/RequestBodyWriter.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/Response.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/ResponseHeaderHandler.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/http/SimpleCookieManager.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/https/Handler.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/jar/Connection$JarFileCache.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/jar/Connection.class create mode 100644 libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class create mode 100644 libjava/classpath/lib/gnu/java/nio/ChannelInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/nio/ChannelOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/nio/ChannelReader.class create mode 100644 libjava/classpath/lib/gnu/java/nio/ChannelWriter.class create mode 100644 libjava/classpath/lib/gnu/java/nio/DatagramChannelImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/DatagramChannelSelectionKey.class create mode 100644 libjava/classpath/lib/gnu/java/nio/FileLockImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/InputStreamChannel.class create mode 100644 libjava/classpath/lib/gnu/java/nio/NIOConstants.class create mode 100644 libjava/classpath/lib/gnu/java/nio/NIODatagramSocket.class create mode 100644 libjava/classpath/lib/gnu/java/nio/NIOServerSocket.class create mode 100644 libjava/classpath/lib/gnu/java/nio/NIOSocket.class create mode 100644 libjava/classpath/lib/gnu/java/nio/OutputStreamChannel.class create mode 100644 libjava/classpath/lib/gnu/java/nio/PipeImpl$SinkChannelImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/PipeImpl$SourceChannelImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/PipeImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/SelectionKeyImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/SelectorImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/SelectorProviderImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/ServerSocketChannelImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/ServerSocketChannelSelectionKey.class create mode 100644 libjava/classpath/lib/gnu/java/nio/SocketChannelImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/SocketChannelSelectionKey.class create mode 100644 libjava/classpath/lib/gnu/java/nio/SocketChannelSelectionKeyImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/VMChannel.class create mode 100644 libjava/classpath/lib/gnu/java/nio/VMChannelOwner.class create mode 100644 libjava/classpath/lib/gnu/java/nio/VMPipe.class create mode 100644 libjava/classpath/lib/gnu/java/nio/VMSelector.class create mode 100644 libjava/classpath/lib/gnu/java/nio/channels/FileChannelImpl.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp424.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp437.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp737.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp775.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp850.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp852.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp855.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp857.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp860.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp861.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp862.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp863.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp864.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp865.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp866.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp869.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Cp874.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MS874.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacThai.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Provider.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_16.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_16BE.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_16Decoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_16Encoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_16LE.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_8$Decoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_8$Encoder.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UTF_8.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/UnicodeLittle.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class create mode 100644 libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/RMIMarshalledObjectInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/RMIMarshalledObjectOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/activation/ActivationSystemTransient.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/activation/BidiTable.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/activation/DefaultActivationGroup.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/activation/DefaultActivationSystem.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl$RefProtector.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Skel.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Stub.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Skel.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Stub.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/ActivatableRef.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/ActivatableServerRef.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/CombinedClassLoader.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/ProtocolConstants.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIDefaultSocketFactory.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIIncomingThread.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIObjectOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/RMIVoidValue.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/TripleKey.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastConnection.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastConnectionManager$1.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastConnectionManager.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastRef.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteStub.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastServer.class create mode 100644 libjava/classpath/lib/gnu/java/rmi/server/UnicastServerRef.class create mode 100644 libjava/classpath/lib/gnu/java/security/Configuration.class create mode 100644 libjava/classpath/lib/gnu/java/security/Engine.class create mode 100644 libjava/classpath/lib/gnu/java/security/OID.class create mode 100644 libjava/classpath/lib/gnu/java/security/PolicyFile$1.class create mode 100644 libjava/classpath/lib/gnu/java/security/PolicyFile.class create mode 100644 libjava/classpath/lib/gnu/java/security/Properties$1.class create mode 100644 libjava/classpath/lib/gnu/java/security/Properties.class create mode 100644 libjava/classpath/lib/gnu/java/security/Registry.class create mode 100644 libjava/classpath/lib/gnu/java/security/Requires.class create mode 100644 libjava/classpath/lib/gnu/java/security/action/GetPropertyAction.class create mode 100644 libjava/classpath/lib/gnu/java/security/action/GetSecurityPropertyAction.class create mode 100644 libjava/classpath/lib/gnu/java/security/action/SetAccessibleAction.class create mode 100644 libjava/classpath/lib/gnu/java/security/ber/BER.class create mode 100644 libjava/classpath/lib/gnu/java/security/ber/BEREncodingException.class create mode 100644 libjava/classpath/lib/gnu/java/security/ber/BERReader.class create mode 100644 libjava/classpath/lib/gnu/java/security/ber/BERValue.class create mode 100644 libjava/classpath/lib/gnu/java/security/der/BitString.class create mode 100644 libjava/classpath/lib/gnu/java/security/der/DER.class create mode 100644 libjava/classpath/lib/gnu/java/security/der/DEREncodingException.class create mode 100644 libjava/classpath/lib/gnu/java/security/der/DERReader.class create mode 100644 libjava/classpath/lib/gnu/java/security/der/DERValue.class create mode 100644 libjava/classpath/lib/gnu/java/security/der/DERWriter.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/BaseHash.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/HashFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/Haval.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/IMessageDigest.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/MD2.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/MD4.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/MD5.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/RipeMD128.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/RipeMD160.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/Sha160.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/Sha256.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/Sha384.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/Sha512.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/Tiger.class create mode 100644 libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/HavalSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/MD2Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/MD4Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/MD5Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/MessageDigestAdapter.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/RipeMD128Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/RipeMD160Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/Sha160Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/Sha256Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/Sha384Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/Sha512Spi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/TigerSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/hash/WhirlpoolSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/HavalRandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/MD2RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/MD4RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/MD5RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/RipeMD128RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/RipeMD160RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/SecureRandomAdapter.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/Sha160RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/Sha256RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/Sha384RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/Sha512RandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/TigerRandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/prng/WhirlpoolRandomSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/DSSKeyFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/DSSParametersGenerator.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/DSSRawSignatureSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/EncodedKeyFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/MD2withRSA.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/MD5withRSA.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/RSAKeyFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/SHA160withDSS.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/SHA160withRSA.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/SHA256withRSA.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/SHA384withRSA.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/SHA512withRSA.class create mode 100644 libjava/classpath/lib/gnu/java/security/jce/sig/SignatureAdapter.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/IKeyPairCodec.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/IKeyPairGenerator.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/KeyPairCodecFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/KeyPairGeneratorFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairGenerator.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairRawCodec.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairX509Codec.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/dss/FIPS186.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairGenerator.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairRawCodec.class create mode 100644 libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairX509Codec.class create mode 100644 libjava/classpath/lib/gnu/java/security/pkcs/PKCS7Data.class create mode 100644 libjava/classpath/lib/gnu/java/security/pkcs/PKCS7SignedData.class create mode 100644 libjava/classpath/lib/gnu/java/security/pkcs/SignerInfo.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/BasePRNG.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/EntropySource.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/IRandom.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/LimitReachedException.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/MDGenerator.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/PRNGFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/RandomEvent.class create mode 100644 libjava/classpath/lib/gnu/java/security/prng/RandomEventListener.class create mode 100644 libjava/classpath/lib/gnu/java/security/provider/CollectionCertStoreImpl.class create mode 100644 libjava/classpath/lib/gnu/java/security/provider/DefaultPolicy.class create mode 100644 libjava/classpath/lib/gnu/java/security/provider/Gnu$1.class create mode 100644 libjava/classpath/lib/gnu/java/security/provider/Gnu.class create mode 100644 libjava/classpath/lib/gnu/java/security/provider/PKIXCertPathValidatorImpl.class create mode 100644 libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/BaseSignature.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/ISignature.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/ISignatureCodec.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/SignatureCodecFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/SignatureFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignature.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignatureRawCodec.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignatureX509Codec.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PSS.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/RSA.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPSSSignature.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.class create mode 100644 libjava/classpath/lib/gnu/java/security/sig/rsa/RSASignatureFactory.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/Base64.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/ByteArray.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/ByteBufferOutputStream.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/DerUtil.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/ExpirableObject$Destroyer.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/ExpirableObject.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/FormatUtil.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/IntegerUtil$1.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/IntegerUtil.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/PRNG.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/Prime.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/Sequence.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/SimpleList.class create mode 100644 libjava/classpath/lib/gnu/java/security/util/Util.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/GnuPKIExtension.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/Util.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/X509CRL.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/X509CRLEntry.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/X509CRLSelectorImpl.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/X509CertPath.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/X509CertSelectorImpl.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/X509Certificate.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/AuthorityKeyIdentifier.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/BasicConstraints.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/CRLNumber.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/CertificatePolicies.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/ExtendedKeyUsage.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/Extension$Value.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/Extension.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/GeneralNames.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/IssuerAlternativeNames.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/KeyUsage.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/PolicyConstraint.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/PolicyMappings.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/PrivateKeyUsagePeriod.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/ReasonCode.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/SubjectAlternativeNames.class create mode 100644 libjava/classpath/lib/gnu/java/security/x509/ext/SubjectKeyIdentifier.class create mode 100644 libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class create mode 100644 libjava/classpath/lib/gnu/java/text/BaseBreakIterator.class create mode 100644 libjava/classpath/lib/gnu/java/text/CharacterBreakIterator.class create mode 100644 libjava/classpath/lib/gnu/java/text/FormatBuffer.class create mode 100644 libjava/classpath/lib/gnu/java/text/FormatCharacterIterator.class create mode 100644 libjava/classpath/lib/gnu/java/text/LineBreakIterator.class create mode 100644 libjava/classpath/lib/gnu/java/text/SentenceBreakIterator.class create mode 100644 libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class create mode 100644 libjava/classpath/lib/gnu/java/text/WordBreakIterator.class create mode 100644 libjava/classpath/lib/gnu/java/util/DoubleEnumeration.class create mode 100644 libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class create mode 100644 libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$1.class create mode 100644 libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry.class create mode 100644 libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakBucket.class create mode 100644 libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakEntrySet.class create mode 100644 libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap.class create mode 100644 libjava/classpath/lib/gnu/java/util/jar/JarUtils.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/FileBasedFactory.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/FileBasedPreferences$1.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/FileBasedPreferences.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/GConfBasedFactory.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/MemoryBasedFactory.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/MemoryBasedPreferences.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/NodeReader.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class create mode 100644 libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/CharIndexed.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RE.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/REException.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/REMatch.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RESyntax.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/REToken.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class create mode 100644 libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/RSACipherImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/Assembly.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/Cascade.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/CascadeStage.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/CascadeTransformer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/DeflateTransformer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/Direction.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/LoopbackTransformer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/ModeStage.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/Operation.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/PaddingTransformer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/Stage.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/Transformer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish$Block.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish$Context.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Cast5$Cast5Key.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/CipherFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/DES$Context.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/IBlockCipher.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/IBlockCipherSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/NullCipher.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Rijndael.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Serpent$Key.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/TripleDES$Context.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/cipher/WeakKeyException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/GnuCrypto$1.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/GnuCrypto.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/GnuSasl$1.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/GnuSasl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD128.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD160.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacWhirlpool.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AESSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/ARCFourSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AnubisSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/BlowfishSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/Cast5Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/CipherAdapter.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/DESSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/KhazadSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/NullCipherSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$AES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/RijndaelSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/SerpentSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/SquareSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TripleDESSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TwofishSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/keyring/GnuKeyring.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacHavalSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD2Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD4Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD5Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA160Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA256Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA384Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA512Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacTigerSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/MacAdapter.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacAnubisImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacBlowfishImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacCast5Impl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacDESImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$DES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Serpent.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Square.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Twofish.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacKhazadImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacRijndaelImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacSerpentImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacSquareImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacTripleDESImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacTwofishImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/TMMH16Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/UHash32Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/mac/UMac32Spi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/params/BlockCipherParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/params/DEREncodingException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/params/DERReader.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/params/DERWriter.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/prng/CSPRNGSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/prng/FortunaImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/prng/ICMRandomSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/prng/UMacRandomSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHKeyFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParametersGenerator.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/spec/TMMHParameterSpec.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/BaseKeyAgreementParty.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/GnuPBEKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/GnuSecretKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/IKeyAgreementParty.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/IncomingMessage.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/OutgoingMessage.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanSender.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalReceiver.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalSender.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHPrivateKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHPublicKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/dh/RFC2631.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6Host.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6SaslClient.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6SaslServer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6TLSClient.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6TLSServer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6User.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPAlgorithm.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPPrivateKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPPublicKey.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/AuthenticatedEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/BaseKeyring.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/BinaryDataEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/CertPathEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/CertificateEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/CompressedEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/EncryptedEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/Entry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/EnvelopeEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPrivateKeyring.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPublicKeyring.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/IKeyring.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/IPrivateKeyring.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/IPublicKeyring.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/MalformedKeyringException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/MeteredInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordEncryptedEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordProtectedEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/PrimitiveEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/PrivateKeyEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/Properties.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/keyring/PublicKeyEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/kwa/AESKeyWrap.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/kwa/KeyUnwrappingException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/kwa/TripleDESKeyWrap.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/BaseMac.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/HMac.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/HMacFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/IMac.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/MacFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/MacInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/MacOutputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/OMAC.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/TMMH16.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L1Hash32.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L2Hash32.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L3Hash32.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/UHash32.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mac/UMac32.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/CBC.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/CFB.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/CTR.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/EAX.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/ECB.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/IAuthenticatedMode.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/ICM.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/IMode.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/ModeFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/mode/OFB.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/IPad.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/ISO10126.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/PKCS1_V1_5.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/PKCS7.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/PadFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/SSL3.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/TBC.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/TLS1.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/pad/WrongPaddingException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/ARCFour.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$1.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Poller.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Spinner.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/Fortuna$Generator.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/Fortuna.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/ICMGenerator.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/IPBE.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/PBKDF2.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/PRNGFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/prng/UMacGenerator.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/AuthInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/AuthInfoProviderFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/ClientFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/ClientMechanism.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/ConfidentialityException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/IAuthInfoProvider.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/IllegalMechanismStateException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/InputBuffer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/IntegrityException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/NoSuchMechanismException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/NoSuchUserException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/OutputBuffer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/SaslEncodingException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/SaslInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/SaslOutputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/SaslUtil.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/ServerFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/ServerMechanism.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/UserAlreadyExistsException.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousClient.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousServer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Client.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Server.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainRegistry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainServer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/CALG.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ClientStore.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/IALG.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/KDF.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRP.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPRegistry.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SecurityContext.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class create mode 100644 libjava/classpath/lib/gnu/javax/crypto/sasl/srp/StoreEntry.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/IIOInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPDecoder.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPEncoder.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPException.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPFileHeader.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageReader.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageReaderSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/BMPInfoHeader.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF32.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB1.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB24.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB4.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB8.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRLE4.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRLE8.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB1.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB16.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB24.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB4.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB8.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRLE4.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRLE8.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/gif/GIFFile$GIFException.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/gif/GIFFile.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/gif/GIFImageReader.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/gif/GIFImageReaderSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/DCT.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/HuffmanTable.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGComponent.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGFrame.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageReader.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGMarker.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGMarkerFoundException.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGScan.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/jpeg/ZigZag.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGData.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGDecoder.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGException.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGFilter.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGHeader.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGICCProfile.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGImageReader.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGImageReaderSpi.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGPalette.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGPhys.class create mode 100644 libjava/classpath/lib/gnu/javax/imageio/png/PNGTime.class create mode 100644 libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class create mode 100644 libjava/classpath/lib/gnu/javax/management/Server.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/ContextContinuation.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingEnumeration.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceURLContext.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ContextContinuation.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ListEnumeration.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/RmiContinuation.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/rmiURLContext.class create mode 100644 libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/AbstractSessionContext.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/Base64.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/EntropySource.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/NullManagerParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/PreSharedKeyManager.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/PreSharedKeyManagerParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/SRPManagerParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/SRPTrustManager.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/SSLCipherSuite.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/SSLProtocolVersion.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/Session.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/SessionStoreException.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$1.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$CertVerifier.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$DHE_PSKGen.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$DHPhase.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert$Description.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert$Level.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/AlertException.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Builder.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Certificate.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateBuilder.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequest$ClientCertificateType.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequest.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusRequest$ResponderIdIterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusRequest.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusType.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateType.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$CertChainType.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$Iterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$URLAndOptionalHash.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateVerify.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherAlgorithm.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuite.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuiteList$Iterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuiteList.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientCertificateTypeList$Iterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientCertificateTypeList.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHello.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHelloBuilder.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHelloV2.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientKeyExchange.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethod.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethodList$Iterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethodList.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Constructed.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Debug.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/DelegatedTask.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/DiffieHellman.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/EmptyExchangeKeys.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ExchangeKeys.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension$Type.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension$Value.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ExtensionList$ExtensionsIterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ExtensionList.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Finished.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Body.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Jessie$1.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Jessie.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/MacAlgorithm.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/MacException.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/MaxFragmentLength.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl$Manager.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Record.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLContextImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl$Mode.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLHMac.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLRandom.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLServerSocketImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$1.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketOutputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHParams.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$CertLoader.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$GenDH.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$RSAKeyExchange.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$RSA_PSKExchange.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$State.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHello.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHelloBuilder.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHelloDone.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchange.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$Iterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$NameType.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$ServerName.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerPSKParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerRSAParams.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SignatureAlgorithm.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSRandom.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/TruncatedHMAC.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/X500PrincipalList$Iterator.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/X500PrincipalList.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/X509TrustManagerFactory$Manager.class create mode 100644 libjava/classpath/lib/gnu/javax/net/ssl/provider/X509TrustManagerFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/print/CupsIppOperation.class create mode 100644 libjava/classpath/lib/gnu/javax/print/CupsMediaMapping.class create mode 100644 libjava/classpath/lib/gnu/javax/print/CupsPrintService.class create mode 100644 libjava/classpath/lib/gnu/javax/print/CupsPrintServiceLookup.class create mode 100644 libjava/classpath/lib/gnu/javax/print/CupsServer.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrintAttributeException.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrintFlavorException.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrintUriException.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$Color.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$JobAttributes.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$Quality.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$SidesPanel.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$CopiesAndSorted.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$PrintRange.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$PrintServices.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$Margins.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$MediaTypes.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$Orientation.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel.class create mode 100644 libjava/classpath/lib/gnu/javax/print/PrinterDialog.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/DocPrintJobImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppDelimiterTag.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppException.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppMultiDocPrintService.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppRequest.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppStatusCode.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/IppValueTag.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/MultiDocPrintJobImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/CharsetSyntax.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/DefaultValueAttribute.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class create mode 100644 libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/CorbaInput.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/CorbaOutput.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/DelegateFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/GetDelegateInstanceException.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/StubDelegateImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/TieTargetRecord.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/UtilDelegateImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/Password.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/AbstractCallbackHandler.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/CertificateCallback.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/ConsoleCallbackHandler.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/DefaultCallbackHandler.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/GnuCallbacks$1.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/GnuCallbacks.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$1.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$2.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$3.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$4.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$5.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$6.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$7.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileParser.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class create mode 100644 libjava/classpath/lib/gnu/javax/security/auth/login/GnuConfiguration.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaPortInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaSequencerInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaReceiver.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaTransmitter.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIInstrument.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/file/MidiDataInputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/file/MidiDataOutputStream.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileReader.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class create mode 100644 libjava/classpath/lib/gnu/javax/sound/sampled/WAV/WAVReader.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel$RadioButtonIcon.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/plaf/metal/CustomizableTheme.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/CharacterAttributeTranslator.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/CombinedAttributes$CombinedEnumeration.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/CombinedAttributes.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory$LoadingImageIcon.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory$NoImageIcon.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/BorderStyle.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/BorderWidth.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSColor.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSLexicalException.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParser$1.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParser.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParserCallback.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParserException.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSScanner.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/FontStyle.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/FontWeight.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/Length.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/GnuParserDelegator$gnuParser.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/GnuParserDelegator.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/HTML_401F.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet$1.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/gnuDTD.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlAttributeSet$1.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlAttributeSet.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/TableRowContentModel.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/noTagModel.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/transformer.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Buffer.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Constants.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Location.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ParseException.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Queue.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Token.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/node.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/pattern.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/parameterDefaulter.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/textPreProcessor.class create mode 100644 libjava/classpath/lib/gnu/javax/swing/tree/GnuPath.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/JAXPFactory$JaxpParser.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/JAXPFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver$Adapter.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver$Attribute.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlReader$FatalErrorHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/aelfred2/XmlReader.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/Consumer$Backdoor.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/Consumer.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DTDAttributeTypeInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DTDElementTypeInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomAttr.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomCDATASection.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomCharacterData$EmptyNodeList.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomCharacterData.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomComment.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomDOMException.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomDoctype.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomDocument.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomDocumentBuilder.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomDocumentBuilderFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomDocumentConfiguration.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomDocumentFragment.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomEntity.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomEntityReference.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomEvent.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomExtern.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomIterator.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNSResolverContext.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNode.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNodeIterator.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNotation.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomNsNode.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomProcessingInstruction.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomText.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomXPathExpression.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomXPathNSResolver.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/DomXPathResult.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ImplementationList.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ImplementationSource.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/JAXPFactory$JAXPBuilder.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/JAXPFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAnchorElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAppletElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAreaElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBRElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBaseElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBaseFontElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBodyElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDListElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDirectoryElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDivElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDocument.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLEmbedElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFieldSetElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFontElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFormElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFrameElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFrameSetElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHRElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHeadElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHeadingElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHtmlElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLIFrameElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLImageElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLInputElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLIsIndexElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLIElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLabelElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLegendElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLinkElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMapElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMenuElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMetaElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLModElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOListElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLObjectElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOptGroupElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOptionElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParagraphElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParamElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLPreElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLQuoteElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLScriptElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLSelectElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLStyleElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableCaptionElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableCellElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableColElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableRowElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableSectionElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTextAreaElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTitleElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLUListElement.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/DomLSException.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/DomLSOutput.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/DomLSSerializer.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/FilteredSAXEventSink.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/ReaderInputStream.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class create mode 100644 libjava/classpath/lib/gnu/xml/dom/ls/WriterOutputStream.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCDATASection.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeComment.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDOMException.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDOMStringList.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentFragment.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntityReference.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNodeList.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeTypeInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathExpression.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathNodeList.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeLocator.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeSAXParser.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeXMLReader.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/sax/Namespaces.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/sax/StringArrayAttributes.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/sax/XMLName.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformer.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformerFactory$AssociatedStylesheetHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformerFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/transform/URIResolverEntityResolver.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/util/EmptyNodeList.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/util/NamedInputStream.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/util/StandaloneDocumentType.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/util/StandaloneLocator.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.class create mode 100644 libjava/classpath/lib/gnu/xml/libxmlj/util/XMLJ.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/CallFilter$Requestor.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/CallFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/DomConsumer$Handler.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/DomConsumer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/EventConsumer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/LinkFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/NSFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory$Pipeline.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory$Stage.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/TeeConsumer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/TextConsumer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$AttributeInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$ChildrenRecognizer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$ElementInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$EmptyRecognizer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$MixedRecognizer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$Recognizer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/WellFormednessFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/XIncludeFilter$Scrubber.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/XIncludeFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/pipeline/XsltFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/BufferedReader.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/CRLFReader.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/CharactersImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/CommentImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/DTDImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/EndElementImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/EntityDeclarationImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/EntityReferenceImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/FilteredEventReader.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/NotationDeclarationImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/ProcessingInstructionImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/SAXParser.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/SAXParserFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/StartDocumentImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/StartElementImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/UnicodeReader.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLEventReaderImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLEventWriterImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLInputFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLOutputFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLParser.class create mode 100644 libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ApplyImportsNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/AttributeNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/AttributeSet.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/Bindings.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ChooseNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/CommentNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/CopyNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/CurrentFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/DOMSourceLocator.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/DocumentFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ElementAvailableFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ElementNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ErrorListenerErrorHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ForEachNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/FormatNumberFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/FunctionAvailableFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/GenerateIdFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/IfNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/Key.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/KeyFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/LiteralNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/MessageNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/NamespaceProxy.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/NodeNumberNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/NumberNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/OtherwiseNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ParameterNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/SAXSerializer.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/SAXTemplatesHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/SAXTransformerHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/SortKey.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/StrippingInstruction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/Stylesheet.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/SystemPropertyFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/Template.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/TemplateNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/TextNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/TransformerFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/URIResolverEntityResolver.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/WhenNode.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/WithParam.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/XSLComparator.class create mode 100644 libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class create mode 100644 libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/util/DoParse.class create mode 100644 libjava/classpath/lib/gnu/xml/util/DomParser.class create mode 100644 libjava/classpath/lib/gnu/xml/util/Resolver.class create mode 100644 libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$DomHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$DomTerminus.class create mode 100644 libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$ListenerAdapter.class create mode 100644 libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$LocatorAdapter.class create mode 100644 libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$NullHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$NullTransformer.class create mode 100644 libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class create mode 100644 libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class create mode 100644 libjava/classpath/lib/gnu/xml/util/XCat$Loader.class create mode 100644 libjava/classpath/lib/gnu/xml/util/XCat.class create mode 100644 libjava/classpath/lib/gnu/xml/util/XHTMLWriter.class create mode 100644 libjava/classpath/lib/gnu/xml/util/XMLWriter.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/Annotation.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/AnySimpleType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/AnyType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/AnyURIType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/AtomicSimpleType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/ByteType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/DateTimeType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/DateType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/DurationType$Duration.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/DurationType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/EntityType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/EnumerationFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/Facet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/FractionDigitsFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GDayType$GDay.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GDayType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GMonthDayType$GMonthDay.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GMonthDayType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GMonthType$GMonth.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GMonthType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GYearMonthType$GYearMonth.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GYearMonthType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GYearType$GYear.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/GYearType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/IDRefType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/IDRefsType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/IDType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/IntType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/IntegerType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/LanguageType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/LengthFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/ListSimpleType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/LongType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/MaxExclusiveFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/MaxInclusiveFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/MaxLengthFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/MinExclusiveFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/MinInclusiveFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/MinLengthFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NCNameType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NMTokenType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NameType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NegativeIntegerType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NonNegativeIntegerType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NonPositiveIntegerType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NormalizedStringType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/PatternFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/PositiveIntegerType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/QNameType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/ShortType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/TimeType$Time.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/TimeType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/TokenType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/TotalDigitsFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/Type.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/TypeLibrary.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/TypeLibraryFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/UnionSimpleType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedByteType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedIntType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedLongType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedShortType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/datatype/WhiteSpaceFacet.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/AnyNameNameClass.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/AttributePattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/ChoiceNameClass.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/ChoicePattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/DataPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/Define.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/ElementPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/EmptyPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/Grammar.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/GrammarException.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/GrammarValidator.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/GroupPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/InterleavePattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/ListPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/NSNameNameClass.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/NameClass.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/NameNameClass.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/NotAllowedPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/OneOrMorePattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/Param.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/Pattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/RefPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/TextPattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/relaxng/ValuePattern.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/AnyAttribute.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/AttributeDeclaration.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/AttributeUse.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/ComplexType.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/ElementDeclaration.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/Particle.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/ValidationException.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchema.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaValidator.class create mode 100644 libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/AndExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Constant.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/CountFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Expr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/FalseFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Function.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/IdFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/LangFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/LastFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NameFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NameTest.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NamespaceTest.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NegativeExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NodeTypeTest.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NotFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/OrExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Path.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Pattern.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/PositionFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Predicate.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/RelationalExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Root.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Selector.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Steps.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/StringFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/SumFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/Test.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/TrueFunction.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/VariableReference.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathFactoryImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathImpl.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyInput.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathParser.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class create mode 100644 libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class create mode 100644 libjava/classpath/lib/java/applet/Applet$AccessibleApplet.class create mode 100644 libjava/classpath/lib/java/applet/Applet$URLAudioClip.class create mode 100644 libjava/classpath/lib/java/applet/Applet.class create mode 100644 libjava/classpath/lib/java/applet/AppletContext.class create mode 100644 libjava/classpath/lib/java/applet/AppletStub.class create mode 100644 libjava/classpath/lib/java/applet/AudioClip.class create mode 100644 libjava/classpath/lib/java/awt/AWTError.class create mode 100644 libjava/classpath/lib/java/awt/AWTEvent.class create mode 100644 libjava/classpath/lib/java/awt/AWTEventMulticaster.class create mode 100644 libjava/classpath/lib/java/awt/AWTException.class create mode 100644 libjava/classpath/lib/java/awt/AWTKeyStroke$1.class create mode 100644 libjava/classpath/lib/java/awt/AWTKeyStroke$2.class create mode 100644 libjava/classpath/lib/java/awt/AWTKeyStroke$3.class create mode 100644 libjava/classpath/lib/java/awt/AWTKeyStroke.class create mode 100644 libjava/classpath/lib/java/awt/AWTPermission.class create mode 100644 libjava/classpath/lib/java/awt/ActiveEvent.class create mode 100644 libjava/classpath/lib/java/awt/Adjustable.class create mode 100644 libjava/classpath/lib/java/awt/AlphaComposite$1.class create mode 100644 libjava/classpath/lib/java/awt/AlphaComposite.class create mode 100644 libjava/classpath/lib/java/awt/AttributeValue.class create mode 100644 libjava/classpath/lib/java/awt/BasicStroke.class create mode 100644 libjava/classpath/lib/java/awt/BorderLayout.class create mode 100644 libjava/classpath/lib/java/awt/BufferCapabilities$FlipContents.class create mode 100644 libjava/classpath/lib/java/awt/BufferCapabilities.class create mode 100644 libjava/classpath/lib/java/awt/Button$AccessibleAWTButton.class create mode 100644 libjava/classpath/lib/java/awt/Button.class create mode 100644 libjava/classpath/lib/java/awt/Canvas$AccessibleAWTCanvas.class create mode 100644 libjava/classpath/lib/java/awt/Canvas$CanvasBltBufferStrategy.class create mode 100644 libjava/classpath/lib/java/awt/Canvas$CanvasFlipBufferStrategy.class create mode 100644 libjava/classpath/lib/java/awt/Canvas.class create mode 100644 libjava/classpath/lib/java/awt/CardLayout.class create mode 100644 libjava/classpath/lib/java/awt/Checkbox$AccessibleAWTCheckbox.class create mode 100644 libjava/classpath/lib/java/awt/Checkbox.class create mode 100644 libjava/classpath/lib/java/awt/CheckboxGroup.class create mode 100644 libjava/classpath/lib/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.class create mode 100644 libjava/classpath/lib/java/awt/CheckboxMenuItem.class create mode 100644 libjava/classpath/lib/java/awt/Choice$AccessibleAWTChoice.class create mode 100644 libjava/classpath/lib/java/awt/Choice.class create mode 100644 libjava/classpath/lib/java/awt/Color.class create mode 100644 libjava/classpath/lib/java/awt/ColorPaintContext$ColorRaster.class create mode 100644 libjava/classpath/lib/java/awt/ColorPaintContext.class create mode 100644 libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class create mode 100644 libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class create mode 100644 libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class create mode 100644 libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class create mode 100644 libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class create mode 100644 libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class create mode 100644 libjava/classpath/lib/java/awt/Component.class create mode 100644 libjava/classpath/lib/java/awt/ComponentOrientation.class create mode 100644 libjava/classpath/lib/java/awt/Composite.class create mode 100644 libjava/classpath/lib/java/awt/CompositeContext.class create mode 100644 libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class create mode 100644 libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class create mode 100644 libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class create mode 100644 libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class create mode 100644 libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class create mode 100644 libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class create mode 100644 libjava/classpath/lib/java/awt/Container$GfxVisitor.class create mode 100644 libjava/classpath/lib/java/awt/Container.class create mode 100644 libjava/classpath/lib/java/awt/ContainerOrderFocusTraversalPolicy.class create mode 100644 libjava/classpath/lib/java/awt/Cursor.class create mode 100644 libjava/classpath/lib/java/awt/DefaultFocusTraversalPolicy.class create mode 100644 libjava/classpath/lib/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.class create mode 100644 libjava/classpath/lib/java/awt/DefaultKeyboardFocusManager.class create mode 100644 libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class create mode 100644 libjava/classpath/lib/java/awt/Dialog.class create mode 100644 libjava/classpath/lib/java/awt/Dimension.class create mode 100644 libjava/classpath/lib/java/awt/DisplayMode.class create mode 100644 libjava/classpath/lib/java/awt/Event.class create mode 100644 libjava/classpath/lib/java/awt/EventDispatchThread.class create mode 100644 libjava/classpath/lib/java/awt/EventQueue$Queue.class create mode 100644 libjava/classpath/lib/java/awt/EventQueue.class create mode 100644 libjava/classpath/lib/java/awt/FileDialog.class create mode 100644 libjava/classpath/lib/java/awt/FlowLayout.class create mode 100644 libjava/classpath/lib/java/awt/FocusTraversalPolicy.class create mode 100644 libjava/classpath/lib/java/awt/Font.class create mode 100644 libjava/classpath/lib/java/awt/FontFormatException.class create mode 100644 libjava/classpath/lib/java/awt/FontMetrics.class create mode 100644 libjava/classpath/lib/java/awt/Frame$AccessibleAWTFrame.class create mode 100644 libjava/classpath/lib/java/awt/Frame.class create mode 100644 libjava/classpath/lib/java/awt/GradientPaint.class create mode 100644 libjava/classpath/lib/java/awt/Graphics.class create mode 100644 libjava/classpath/lib/java/awt/Graphics2D.class create mode 100644 libjava/classpath/lib/java/awt/GraphicsConfigTemplate.class create mode 100644 libjava/classpath/lib/java/awt/GraphicsConfiguration.class create mode 100644 libjava/classpath/lib/java/awt/GraphicsDevice.class create mode 100644 libjava/classpath/lib/java/awt/GraphicsEnvironment.class create mode 100644 libjava/classpath/lib/java/awt/GridBagConstraints.class create mode 100644 libjava/classpath/lib/java/awt/GridBagLayout.class create mode 100644 libjava/classpath/lib/java/awt/GridBagLayoutInfo.class create mode 100644 libjava/classpath/lib/java/awt/GridLayout.class create mode 100644 libjava/classpath/lib/java/awt/HeadlessException.class create mode 100644 libjava/classpath/lib/java/awt/IllegalComponentStateException.class create mode 100644 libjava/classpath/lib/java/awt/Image.class create mode 100644 libjava/classpath/lib/java/awt/ImageCapabilities.class create mode 100644 libjava/classpath/lib/java/awt/Insets.class create mode 100644 libjava/classpath/lib/java/awt/ItemSelectable.class create mode 100644 libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class create mode 100644 libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class create mode 100644 libjava/classpath/lib/java/awt/JobAttributes$DialogType.class create mode 100644 libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class create mode 100644 libjava/classpath/lib/java/awt/JobAttributes$SidesType.class create mode 100644 libjava/classpath/lib/java/awt/JobAttributes.class create mode 100644 libjava/classpath/lib/java/awt/KeyEventDispatcher.class create mode 100644 libjava/classpath/lib/java/awt/KeyEventPostProcessor.class create mode 100644 libjava/classpath/lib/java/awt/KeyboardFocusManager.class create mode 100644 libjava/classpath/lib/java/awt/Label$AccessibleAWTLabel.class create mode 100644 libjava/classpath/lib/java/awt/Label.class create mode 100644 libjava/classpath/lib/java/awt/LayoutManager.class create mode 100644 libjava/classpath/lib/java/awt/LayoutManager2.class create mode 100644 libjava/classpath/lib/java/awt/LightweightDispatcher.class create mode 100644 libjava/classpath/lib/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.class create mode 100644 libjava/classpath/lib/java/awt/List$AccessibleAWTList.class create mode 100644 libjava/classpath/lib/java/awt/List.class create mode 100644 libjava/classpath/lib/java/awt/MediaTracker$MediaEntry.class create mode 100644 libjava/classpath/lib/java/awt/MediaTracker.class create mode 100644 libjava/classpath/lib/java/awt/Menu$AccessibleAWTMenu.class create mode 100644 libjava/classpath/lib/java/awt/Menu.class create mode 100644 libjava/classpath/lib/java/awt/MenuBar$AccessibleAWTMenuBar.class create mode 100644 libjava/classpath/lib/java/awt/MenuBar.class create mode 100644 libjava/classpath/lib/java/awt/MenuComponent$AccessibleAWTMenuComponent.class create mode 100644 libjava/classpath/lib/java/awt/MenuComponent.class create mode 100644 libjava/classpath/lib/java/awt/MenuContainer.class create mode 100644 libjava/classpath/lib/java/awt/MenuItem$AccessibleAWTMenuItem.class create mode 100644 libjava/classpath/lib/java/awt/MenuItem.class create mode 100644 libjava/classpath/lib/java/awt/MenuShortcut.class create mode 100644 libjava/classpath/lib/java/awt/MouseInfo.class create mode 100644 libjava/classpath/lib/java/awt/PageAttributes$ColorType.class create mode 100644 libjava/classpath/lib/java/awt/PageAttributes$MediaType.class create mode 100644 libjava/classpath/lib/java/awt/PageAttributes$OrientationRequestedType.class create mode 100644 libjava/classpath/lib/java/awt/PageAttributes$OriginType.class create mode 100644 libjava/classpath/lib/java/awt/PageAttributes$PrintQualityType.class create mode 100644 libjava/classpath/lib/java/awt/PageAttributes.class create mode 100644 libjava/classpath/lib/java/awt/Paint.class create mode 100644 libjava/classpath/lib/java/awt/PaintContext.class create mode 100644 libjava/classpath/lib/java/awt/Panel$AccessibleAWTPanel.class create mode 100644 libjava/classpath/lib/java/awt/Panel.class create mode 100644 libjava/classpath/lib/java/awt/Point.class create mode 100644 libjava/classpath/lib/java/awt/PointerInfo.class create mode 100644 libjava/classpath/lib/java/awt/Polygon$1.class create mode 100644 libjava/classpath/lib/java/awt/Polygon.class create mode 100644 libjava/classpath/lib/java/awt/PopupMenu$AccessibleAWTPopupMenu.class create mode 100644 libjava/classpath/lib/java/awt/PopupMenu.class create mode 100644 libjava/classpath/lib/java/awt/PrintGraphics.class create mode 100644 libjava/classpath/lib/java/awt/PrintJob.class create mode 100644 libjava/classpath/lib/java/awt/Rectangle.class create mode 100644 libjava/classpath/lib/java/awt/RenderingHints$Key.class create mode 100644 libjava/classpath/lib/java/awt/RenderingHints$KeyImpl.class create mode 100644 libjava/classpath/lib/java/awt/RenderingHints.class create mode 100644 libjava/classpath/lib/java/awt/Robot$1.class create mode 100644 libjava/classpath/lib/java/awt/Robot.class create mode 100644 libjava/classpath/lib/java/awt/ScrollPane$AccessibleAWTScrollPane.class create mode 100644 libjava/classpath/lib/java/awt/ScrollPane.class create mode 100644 libjava/classpath/lib/java/awt/ScrollPaneAdjustable.class create mode 100644 libjava/classpath/lib/java/awt/Scrollbar$AccessibleAWTScrollBar.class create mode 100644 libjava/classpath/lib/java/awt/Scrollbar.class create mode 100644 libjava/classpath/lib/java/awt/Shape.class create mode 100644 libjava/classpath/lib/java/awt/Stroke.class create mode 100644 libjava/classpath/lib/java/awt/SystemColor.class create mode 100644 libjava/classpath/lib/java/awt/TextArea$AccessibleAWTTextArea.class create mode 100644 libjava/classpath/lib/java/awt/TextArea.class create mode 100644 libjava/classpath/lib/java/awt/TextComponent$AccessibleAWTTextComponent.class create mode 100644 libjava/classpath/lib/java/awt/TextComponent.class create mode 100644 libjava/classpath/lib/java/awt/TextField$AccessibleAWTTextField.class create mode 100644 libjava/classpath/lib/java/awt/TextField.class create mode 100644 libjava/classpath/lib/java/awt/TexturePaint.class create mode 100644 libjava/classpath/lib/java/awt/Toolkit$1.class create mode 100644 libjava/classpath/lib/java/awt/Toolkit$2.class create mode 100644 libjava/classpath/lib/java/awt/Toolkit.class create mode 100644 libjava/classpath/lib/java/awt/Transparency.class create mode 100644 libjava/classpath/lib/java/awt/Window$AccessibleAWTWindow.class create mode 100644 libjava/classpath/lib/java/awt/Window$WindowBltBufferStrategy.class create mode 100644 libjava/classpath/lib/java/awt/Window$WindowFlipBufferStrategy.class create mode 100644 libjava/classpath/lib/java/awt/Window.class create mode 100644 libjava/classpath/lib/java/awt/color/CMMException.class create mode 100644 libjava/classpath/lib/java/awt/color/ColorSpace.class create mode 100644 libjava/classpath/lib/java/awt/color/ICC_ColorSpace.class create mode 100644 libjava/classpath/lib/java/awt/color/ICC_Profile.class create mode 100644 libjava/classpath/lib/java/awt/color/ICC_ProfileGray.class create mode 100644 libjava/classpath/lib/java/awt/color/ICC_ProfileRGB.class create mode 100644 libjava/classpath/lib/java/awt/color/ProfileDataException.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/Clipboard.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/ClipboardOwner.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/DataFlavor.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/FlavorEvent.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/FlavorListener.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/FlavorMap.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/FlavorTable.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/MimeType.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/MimeTypeParseException.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/StringSelection.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/SystemFlavorMap.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/Transferable.class create mode 100644 libjava/classpath/lib/java/awt/datatransfer/UnsupportedFlavorException.class create mode 100644 libjava/classpath/lib/java/awt/dnd/Autoscroll.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DnDConstants.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DnDEventMulticaster.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragGestureEvent.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragGestureListener.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragGestureRecognizer.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSource.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSourceAdapter.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSourceContext.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSourceDragEvent.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSourceDropEvent.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSourceEvent.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSourceListener.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DragSourceMotionListener.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTarget$DropTargetAutoScroller.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTarget.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTargetAdapter.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTargetContext$TransferableProxy.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTargetContext.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTargetDragEvent.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTargetDropEvent.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTargetEvent.class create mode 100644 libjava/classpath/lib/java/awt/dnd/DropTargetListener.class create mode 100644 libjava/classpath/lib/java/awt/dnd/InvalidDnDOperationException.class create mode 100644 libjava/classpath/lib/java/awt/dnd/MouseDragGestureRecognizer.class create mode 100644 libjava/classpath/lib/java/awt/dnd/peer/DragSourceContextPeer.class create mode 100644 libjava/classpath/lib/java/awt/dnd/peer/DropTargetContextPeer.class create mode 100644 libjava/classpath/lib/java/awt/dnd/peer/DropTargetPeer.class create mode 100644 libjava/classpath/lib/java/awt/event/AWTEventListener.class create mode 100644 libjava/classpath/lib/java/awt/event/AWTEventListenerProxy.class create mode 100644 libjava/classpath/lib/java/awt/event/ActionEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/ActionListener.class create mode 100644 libjava/classpath/lib/java/awt/event/AdjustmentEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/AdjustmentListener.class create mode 100644 libjava/classpath/lib/java/awt/event/ComponentAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/ComponentEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/ComponentListener.class create mode 100644 libjava/classpath/lib/java/awt/event/ContainerAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/ContainerEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/ContainerListener.class create mode 100644 libjava/classpath/lib/java/awt/event/FocusAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/FocusEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/FocusListener.class create mode 100644 libjava/classpath/lib/java/awt/event/HierarchyBoundsAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/HierarchyBoundsListener.class create mode 100644 libjava/classpath/lib/java/awt/event/HierarchyEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/HierarchyListener.class create mode 100644 libjava/classpath/lib/java/awt/event/InputEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/InputMethodEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/InputMethodListener.class create mode 100644 libjava/classpath/lib/java/awt/event/InvocationEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/ItemEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/ItemListener.class create mode 100644 libjava/classpath/lib/java/awt/event/KeyAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/KeyEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/KeyListener.class create mode 100644 libjava/classpath/lib/java/awt/event/MouseAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/MouseEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/MouseListener.class create mode 100644 libjava/classpath/lib/java/awt/event/MouseMotionAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/MouseMotionListener.class create mode 100644 libjava/classpath/lib/java/awt/event/MouseWheelEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/MouseWheelListener.class create mode 100644 libjava/classpath/lib/java/awt/event/PaintEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/TextEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/TextListener.class create mode 100644 libjava/classpath/lib/java/awt/event/WindowAdapter.class create mode 100644 libjava/classpath/lib/java/awt/event/WindowEvent.class create mode 100644 libjava/classpath/lib/java/awt/event/WindowFocusListener.class create mode 100644 libjava/classpath/lib/java/awt/event/WindowListener.class create mode 100644 libjava/classpath/lib/java/awt/event/WindowStateListener.class create mode 100644 libjava/classpath/lib/java/awt/font/FontRenderContext.class create mode 100644 libjava/classpath/lib/java/awt/font/GlyphJustificationInfo.class create mode 100644 libjava/classpath/lib/java/awt/font/GlyphMetrics.class create mode 100644 libjava/classpath/lib/java/awt/font/GlyphVector.class create mode 100644 libjava/classpath/lib/java/awt/font/GraphicAttribute.class create mode 100644 libjava/classpath/lib/java/awt/font/ImageGraphicAttribute.class create mode 100644 libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class create mode 100644 libjava/classpath/lib/java/awt/font/LineMetrics.class create mode 100644 libjava/classpath/lib/java/awt/font/MultipleMaster.class create mode 100644 libjava/classpath/lib/java/awt/font/NumericShaper.class create mode 100644 libjava/classpath/lib/java/awt/font/OpenType.class create mode 100644 libjava/classpath/lib/java/awt/font/ShapeGraphicAttribute.class create mode 100644 libjava/classpath/lib/java/awt/font/TextAttribute.class create mode 100644 libjava/classpath/lib/java/awt/font/TextHitInfo.class create mode 100644 libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class create mode 100644 libjava/classpath/lib/java/awt/font/TextLayout$Run.class create mode 100644 libjava/classpath/lib/java/awt/font/TextLayout.class create mode 100644 libjava/classpath/lib/java/awt/font/TextMeasurer.class create mode 100644 libjava/classpath/lib/java/awt/font/TransformAttribute.class create mode 100644 libjava/classpath/lib/java/awt/geom/AffineTransform.class create mode 100644 libjava/classpath/lib/java/awt/geom/Arc2D$ArcIterator.class create mode 100644 libjava/classpath/lib/java/awt/geom/Arc2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/Arc2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/Arc2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area$AreaIterator$IteratorSegment.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area$AreaIterator.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area$CubicSegment.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area$Intersection.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area$LineSegment.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area$QuadSegment.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area$Segment.class create mode 100644 libjava/classpath/lib/java/awt/geom/Area.class create mode 100644 libjava/classpath/lib/java/awt/geom/CubicCurve2D$1.class create mode 100644 libjava/classpath/lib/java/awt/geom/CubicCurve2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/CubicCurve2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/CubicCurve2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/Dimension2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/Ellipse2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/Ellipse2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/Ellipse2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/FlatteningPathIterator.class create mode 100644 libjava/classpath/lib/java/awt/geom/GeneralPath$GeneralPathIterator.class create mode 100644 libjava/classpath/lib/java/awt/geom/GeneralPath.class create mode 100644 libjava/classpath/lib/java/awt/geom/IllegalPathStateException.class create mode 100644 libjava/classpath/lib/java/awt/geom/Line2D$1.class create mode 100644 libjava/classpath/lib/java/awt/geom/Line2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/Line2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/Line2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/NoninvertibleTransformException.class create mode 100644 libjava/classpath/lib/java/awt/geom/PathIterator.class create mode 100644 libjava/classpath/lib/java/awt/geom/Point2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/Point2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/Point2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/QuadCurve2D$1.class create mode 100644 libjava/classpath/lib/java/awt/geom/QuadCurve2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/QuadCurve2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/QuadCurve2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/Rectangle2D$1.class create mode 100644 libjava/classpath/lib/java/awt/geom/Rectangle2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/Rectangle2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/Rectangle2D.class create mode 100644 libjava/classpath/lib/java/awt/geom/RectangularShape.class create mode 100644 libjava/classpath/lib/java/awt/geom/RoundRectangle2D$1.class create mode 100644 libjava/classpath/lib/java/awt/geom/RoundRectangle2D$Double.class create mode 100644 libjava/classpath/lib/java/awt/geom/RoundRectangle2D$Float.class create mode 100644 libjava/classpath/lib/java/awt/geom/RoundRectangle2D.class create mode 100644 libjava/classpath/lib/java/awt/im/InputContext.class create mode 100644 libjava/classpath/lib/java/awt/im/InputMethodHighlight.class create mode 100644 libjava/classpath/lib/java/awt/im/InputMethodRequests.class create mode 100644 libjava/classpath/lib/java/awt/im/InputSubset.class create mode 100644 libjava/classpath/lib/java/awt/im/spi/InputMethod.class create mode 100644 libjava/classpath/lib/java/awt/im/spi/InputMethodContext.class create mode 100644 libjava/classpath/lib/java/awt/im/spi/InputMethodDescriptor.class create mode 100644 libjava/classpath/lib/java/awt/image/AffineTransformOp.class create mode 100644 libjava/classpath/lib/java/awt/image/AreaAveragingScaleFilter.class create mode 100644 libjava/classpath/lib/java/awt/image/BandCombineOp.class create mode 100644 libjava/classpath/lib/java/awt/image/BandedSampleModel.class create mode 100644 libjava/classpath/lib/java/awt/image/BufferStrategy.class create mode 100644 libjava/classpath/lib/java/awt/image/BufferedImage$1.class create mode 100644 libjava/classpath/lib/java/awt/image/BufferedImage.class create mode 100644 libjava/classpath/lib/java/awt/image/BufferedImageFilter.class create mode 100644 libjava/classpath/lib/java/awt/image/BufferedImageOp.class create mode 100644 libjava/classpath/lib/java/awt/image/ByteLookupTable.class create mode 100644 libjava/classpath/lib/java/awt/image/ColorConvertOp.class create mode 100644 libjava/classpath/lib/java/awt/image/ColorModel$SRGBColorModel.class create mode 100644 libjava/classpath/lib/java/awt/image/ColorModel.class create mode 100644 libjava/classpath/lib/java/awt/image/ComponentColorModel.class create mode 100644 libjava/classpath/lib/java/awt/image/ComponentSampleModel.class create mode 100644 libjava/classpath/lib/java/awt/image/ConvolveOp.class create mode 100644 libjava/classpath/lib/java/awt/image/CropImageFilter.class create mode 100644 libjava/classpath/lib/java/awt/image/DataBuffer.class create mode 100644 libjava/classpath/lib/java/awt/image/DataBufferByte.class create mode 100644 libjava/classpath/lib/java/awt/image/DataBufferDouble.class create mode 100644 libjava/classpath/lib/java/awt/image/DataBufferFloat.class create mode 100644 libjava/classpath/lib/java/awt/image/DataBufferInt.class create mode 100644 libjava/classpath/lib/java/awt/image/DataBufferShort.class create mode 100644 libjava/classpath/lib/java/awt/image/DataBufferUShort.class create mode 100644 libjava/classpath/lib/java/awt/image/DirectColorModel.class create mode 100644 libjava/classpath/lib/java/awt/image/FilteredImageSource.class create mode 100644 libjava/classpath/lib/java/awt/image/ImageConsumer.class create mode 100644 libjava/classpath/lib/java/awt/image/ImageFilter.class create mode 100644 libjava/classpath/lib/java/awt/image/ImageObserver.class create mode 100644 libjava/classpath/lib/java/awt/image/ImageProducer.class create mode 100644 libjava/classpath/lib/java/awt/image/ImagingOpException.class create mode 100644 libjava/classpath/lib/java/awt/image/IndexColorModel.class create mode 100644 libjava/classpath/lib/java/awt/image/Kernel.class create mode 100644 libjava/classpath/lib/java/awt/image/LookupOp.class create mode 100644 libjava/classpath/lib/java/awt/image/LookupTable.class create mode 100644 libjava/classpath/lib/java/awt/image/MemoryImageSource.class create mode 100644 libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class create mode 100644 libjava/classpath/lib/java/awt/image/PackedColorModel.class create mode 100644 libjava/classpath/lib/java/awt/image/PixelGrabber$1.class create mode 100644 libjava/classpath/lib/java/awt/image/PixelGrabber.class create mode 100644 libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class create mode 100644 libjava/classpath/lib/java/awt/image/RGBImageFilter.class create mode 100644 libjava/classpath/lib/java/awt/image/Raster.class create mode 100644 libjava/classpath/lib/java/awt/image/RasterFormatException.class create mode 100644 libjava/classpath/lib/java/awt/image/RasterOp.class create mode 100644 libjava/classpath/lib/java/awt/image/RenderedImage.class create mode 100644 libjava/classpath/lib/java/awt/image/ReplicateScaleFilter.class create mode 100644 libjava/classpath/lib/java/awt/image/RescaleOp.class create mode 100644 libjava/classpath/lib/java/awt/image/SampleModel.class create mode 100644 libjava/classpath/lib/java/awt/image/ShortLookupTable.class create mode 100644 libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class create mode 100644 libjava/classpath/lib/java/awt/image/TileObserver.class create mode 100644 libjava/classpath/lib/java/awt/image/VolatileImage.class create mode 100644 libjava/classpath/lib/java/awt/image/WritableRaster.class create mode 100644 libjava/classpath/lib/java/awt/image/WritableRenderedImage.class create mode 100644 libjava/classpath/lib/java/awt/image/renderable/ContextualRenderedImageFactory.class create mode 100644 libjava/classpath/lib/java/awt/image/renderable/ParameterBlock.class create mode 100644 libjava/classpath/lib/java/awt/image/renderable/RenderContext.class create mode 100644 libjava/classpath/lib/java/awt/image/renderable/RenderableImage.class create mode 100644 libjava/classpath/lib/java/awt/image/renderable/RenderableImageOp.class create mode 100644 libjava/classpath/lib/java/awt/image/renderable/RenderableImageProducer.class create mode 100644 libjava/classpath/lib/java/awt/image/renderable/RenderedImageFactory.class create mode 100644 libjava/classpath/lib/java/awt/peer/ButtonPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/CanvasPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/CheckboxMenuItemPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/CheckboxPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/ChoicePeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/ComponentPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/ContainerPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/DialogPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/FileDialogPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/FontPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/FramePeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/LabelPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/LightweightPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/ListPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/MenuBarPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/MenuComponentPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/MenuItemPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/MenuPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/MouseInfoPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/PanelPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/PopupMenuPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/RobotPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/ScrollPanePeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/ScrollbarPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/TextAreaPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/TextComponentPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/TextFieldPeer.class create mode 100644 libjava/classpath/lib/java/awt/peer/WindowPeer.class create mode 100644 libjava/classpath/lib/java/awt/print/Book.class create mode 100644 libjava/classpath/lib/java/awt/print/NoPrinterJob.class create mode 100644 libjava/classpath/lib/java/awt/print/PageFormat.class create mode 100644 libjava/classpath/lib/java/awt/print/Pageable.class create mode 100644 libjava/classpath/lib/java/awt/print/Paper.class create mode 100644 libjava/classpath/lib/java/awt/print/Printable.class create mode 100644 libjava/classpath/lib/java/awt/print/PrinterAbortException.class create mode 100644 libjava/classpath/lib/java/awt/print/PrinterException.class create mode 100644 libjava/classpath/lib/java/awt/print/PrinterGraphics.class create mode 100644 libjava/classpath/lib/java/awt/print/PrinterIOException.class create mode 100644 libjava/classpath/lib/java/awt/print/PrinterJob.class create mode 100644 libjava/classpath/lib/java/beans/AppletInitializer.class create mode 100644 libjava/classpath/lib/java/beans/BeanDescriptor.class create mode 100644 libjava/classpath/lib/java/beans/BeanInfo.class create mode 100644 libjava/classpath/lib/java/beans/Beans.class create mode 100644 libjava/classpath/lib/java/beans/Customizer.class create mode 100644 libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class create mode 100644 libjava/classpath/lib/java/beans/DesignMode.class create mode 100644 libjava/classpath/lib/java/beans/Encoder$1.class create mode 100644 libjava/classpath/lib/java/beans/Encoder.class create mode 100644 libjava/classpath/lib/java/beans/EventHandler.class create mode 100644 libjava/classpath/lib/java/beans/EventSetDescriptor.class create mode 100644 libjava/classpath/lib/java/beans/ExceptionListener.class create mode 100644 libjava/classpath/lib/java/beans/ExplicitInfo.class create mode 100644 libjava/classpath/lib/java/beans/Expression.class create mode 100644 libjava/classpath/lib/java/beans/FeatureDescriptor.class create mode 100644 libjava/classpath/lib/java/beans/IndexedPropertyChangeEvent.class create mode 100644 libjava/classpath/lib/java/beans/IndexedPropertyDescriptor.class create mode 100644 libjava/classpath/lib/java/beans/IntrospectionException.class create mode 100644 libjava/classpath/lib/java/beans/Introspector.class create mode 100644 libjava/classpath/lib/java/beans/MethodDescriptor.class create mode 100644 libjava/classpath/lib/java/beans/ParameterDescriptor.class create mode 100644 libjava/classpath/lib/java/beans/PersistenceDelegate.class create mode 100644 libjava/classpath/lib/java/beans/PropertyChangeEvent.class create mode 100644 libjava/classpath/lib/java/beans/PropertyChangeListener.class create mode 100644 libjava/classpath/lib/java/beans/PropertyChangeListenerProxy.class create mode 100644 libjava/classpath/lib/java/beans/PropertyChangeSupport.class create mode 100644 libjava/classpath/lib/java/beans/PropertyDescriptor.class create mode 100644 libjava/classpath/lib/java/beans/PropertyEditor.class create mode 100644 libjava/classpath/lib/java/beans/PropertyEditorManager.class create mode 100644 libjava/classpath/lib/java/beans/PropertyEditorSupport.class create mode 100644 libjava/classpath/lib/java/beans/PropertyVetoException.class create mode 100644 libjava/classpath/lib/java/beans/SimpleBeanInfo.class create mode 100644 libjava/classpath/lib/java/beans/Statement.class create mode 100644 libjava/classpath/lib/java/beans/VetoableChangeListener.class create mode 100644 libjava/classpath/lib/java/beans/VetoableChangeListenerProxy.class create mode 100644 libjava/classpath/lib/java/beans/VetoableChangeSupport.class create mode 100644 libjava/classpath/lib/java/beans/Visibility.class create mode 100644 libjava/classpath/lib/java/beans/XMLDecoder.class create mode 100644 libjava/classpath/lib/java/beans/XMLEncoder.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContext.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextChild.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextChildComponentProxy.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextChildSupport.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextContainerProxy.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextEvent.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextMembershipEvent.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextMembershipListener.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextProxy.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServiceAvailableEvent.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServiceProvider.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServiceProviderBeanInfo.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServiceRevokedEvent.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServiceRevokedListener.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServices.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesListener.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextSupport$BCSChild.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextSupport$BCSIterator.class create mode 100644 libjava/classpath/lib/java/beans/beancontext/BeanContextSupport.class create mode 100644 libjava/classpath/lib/java/io/BufferedInputStream.class create mode 100644 libjava/classpath/lib/java/io/BufferedOutputStream.class create mode 100644 libjava/classpath/lib/java/io/BufferedReader.class create mode 100644 libjava/classpath/lib/java/io/BufferedWriter.class create mode 100644 libjava/classpath/lib/java/io/ByteArrayInputStream.class create mode 100644 libjava/classpath/lib/java/io/ByteArrayOutputStream.class create mode 100644 libjava/classpath/lib/java/io/CharArrayReader.class create mode 100644 libjava/classpath/lib/java/io/CharArrayWriter.class create mode 100644 libjava/classpath/lib/java/io/CharConversionException.class create mode 100644 libjava/classpath/lib/java/io/Closeable.class create mode 100644 libjava/classpath/lib/java/io/DataInput.class create mode 100644 libjava/classpath/lib/java/io/DataInputStream.class create mode 100644 libjava/classpath/lib/java/io/DataOutput.class create mode 100644 libjava/classpath/lib/java/io/DataOutputStream.class create mode 100644 libjava/classpath/lib/java/io/DeleteFileHelper$1.class create mode 100644 libjava/classpath/lib/java/io/DeleteFileHelper.class create mode 100644 libjava/classpath/lib/java/io/EOFException.class create mode 100644 libjava/classpath/lib/java/io/Externalizable.class create mode 100644 libjava/classpath/lib/java/io/File.class create mode 100644 libjava/classpath/lib/java/io/FileDescriptor.class create mode 100644 libjava/classpath/lib/java/io/FileFilter.class create mode 100644 libjava/classpath/lib/java/io/FileInputStream.class create mode 100644 libjava/classpath/lib/java/io/FileNotFoundException.class create mode 100644 libjava/classpath/lib/java/io/FileOutputStream.class create mode 100644 libjava/classpath/lib/java/io/FilePermission.class create mode 100644 libjava/classpath/lib/java/io/FileReader.class create mode 100644 libjava/classpath/lib/java/io/FileWriter.class create mode 100644 libjava/classpath/lib/java/io/FilenameFilter.class create mode 100644 libjava/classpath/lib/java/io/FilterInputStream.class create mode 100644 libjava/classpath/lib/java/io/FilterOutputStream.class create mode 100644 libjava/classpath/lib/java/io/FilterReader.class create mode 100644 libjava/classpath/lib/java/io/FilterWriter.class create mode 100644 libjava/classpath/lib/java/io/Flushable.class create mode 100644 libjava/classpath/lib/java/io/IOException.class create mode 100644 libjava/classpath/lib/java/io/InputStream.class create mode 100644 libjava/classpath/lib/java/io/InputStreamReader.class create mode 100644 libjava/classpath/lib/java/io/InterruptedIOException.class create mode 100644 libjava/classpath/lib/java/io/InvalidClassException.class create mode 100644 libjava/classpath/lib/java/io/InvalidObjectException.class create mode 100644 libjava/classpath/lib/java/io/LineNumberInputStream.class create mode 100644 libjava/classpath/lib/java/io/LineNumberReader.class create mode 100644 libjava/classpath/lib/java/io/NotActiveException.class create mode 100644 libjava/classpath/lib/java/io/NotSerializableException.class create mode 100644 libjava/classpath/lib/java/io/ObjectInput.class create mode 100644 libjava/classpath/lib/java/io/ObjectInputStream$1.class create mode 100644 libjava/classpath/lib/java/io/ObjectInputStream$2.class create mode 100644 libjava/classpath/lib/java/io/ObjectInputStream$GetField.class create mode 100644 libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class create mode 100644 libjava/classpath/lib/java/io/ObjectInputStream.class create mode 100644 libjava/classpath/lib/java/io/ObjectInputValidation.class create mode 100644 libjava/classpath/lib/java/io/ObjectOutput.class create mode 100644 libjava/classpath/lib/java/io/ObjectOutputStream$1.class create mode 100644 libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class create mode 100644 libjava/classpath/lib/java/io/ObjectOutputStream.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamClass$1.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamClass$2.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamClass.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamConstants.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamException.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamField$1.class create mode 100644 libjava/classpath/lib/java/io/ObjectStreamField.class create mode 100644 libjava/classpath/lib/java/io/OptionalDataException.class create mode 100644 libjava/classpath/lib/java/io/OutputStream.class create mode 100644 libjava/classpath/lib/java/io/OutputStreamWriter.class create mode 100644 libjava/classpath/lib/java/io/PipedInputStream.class create mode 100644 libjava/classpath/lib/java/io/PipedOutputStream.class create mode 100644 libjava/classpath/lib/java/io/PipedReader.class create mode 100644 libjava/classpath/lib/java/io/PipedWriter.class create mode 100644 libjava/classpath/lib/java/io/PrintStream.class create mode 100644 libjava/classpath/lib/java/io/PrintWriter.class create mode 100644 libjava/classpath/lib/java/io/PushbackInputStream.class create mode 100644 libjava/classpath/lib/java/io/PushbackReader.class create mode 100644 libjava/classpath/lib/java/io/RandomAccessFile.class create mode 100644 libjava/classpath/lib/java/io/Reader.class create mode 100644 libjava/classpath/lib/java/io/SequenceInputStream.class create mode 100644 libjava/classpath/lib/java/io/Serializable.class create mode 100644 libjava/classpath/lib/java/io/SerializablePermission.class create mode 100644 libjava/classpath/lib/java/io/StreamCorruptedException.class create mode 100644 libjava/classpath/lib/java/io/StreamTokenizer.class create mode 100644 libjava/classpath/lib/java/io/StringBufferInputStream.class create mode 100644 libjava/classpath/lib/java/io/StringReader.class create mode 100644 libjava/classpath/lib/java/io/StringWriter.class create mode 100644 libjava/classpath/lib/java/io/SyncFailedException.class create mode 100644 libjava/classpath/lib/java/io/UTFDataFormatException.class create mode 100644 libjava/classpath/lib/java/io/UnsupportedEncodingException.class create mode 100644 libjava/classpath/lib/java/io/VMObjectInputStream.class create mode 100644 libjava/classpath/lib/java/io/VMObjectStreamClass.class create mode 100644 libjava/classpath/lib/java/io/WriteAbortedException.class create mode 100644 libjava/classpath/lib/java/io/Writer.class create mode 100644 libjava/classpath/lib/java/lang/AbstractMethodError.class create mode 100644 libjava/classpath/lib/java/lang/Appendable.class create mode 100644 libjava/classpath/lib/java/lang/ArithmeticException.class create mode 100644 libjava/classpath/lib/java/lang/ArrayIndexOutOfBoundsException.class create mode 100644 libjava/classpath/lib/java/lang/ArrayStoreException.class create mode 100644 libjava/classpath/lib/java/lang/AssertionError.class create mode 100644 libjava/classpath/lib/java/lang/Boolean.class create mode 100644 libjava/classpath/lib/java/lang/Byte.class create mode 100644 libjava/classpath/lib/java/lang/CharSequence.class create mode 100644 libjava/classpath/lib/java/lang/Character$Subset.class create mode 100644 libjava/classpath/lib/java/lang/Character$UnicodeBlock.class create mode 100644 libjava/classpath/lib/java/lang/Character.class create mode 100644 libjava/classpath/lib/java/lang/Class.class create mode 100644 libjava/classpath/lib/java/lang/ClassCastException.class create mode 100644 libjava/classpath/lib/java/lang/ClassCircularityError.class create mode 100644 libjava/classpath/lib/java/lang/ClassFormatError.class create mode 100644 libjava/classpath/lib/java/lang/ClassLoader$AnnotationsKey.class create mode 100644 libjava/classpath/lib/java/lang/ClassLoader.class create mode 100644 libjava/classpath/lib/java/lang/ClassNotFoundException.class create mode 100644 libjava/classpath/lib/java/lang/CloneNotSupportedException.class create mode 100644 libjava/classpath/lib/java/lang/Cloneable.class create mode 100644 libjava/classpath/lib/java/lang/Comparable.class create mode 100644 libjava/classpath/lib/java/lang/Compiler.class create mode 100644 libjava/classpath/lib/java/lang/Deprecated.class create mode 100644 libjava/classpath/lib/java/lang/Double.class create mode 100644 libjava/classpath/lib/java/lang/EcosProcess.class create mode 100644 libjava/classpath/lib/java/lang/Enum.class create mode 100644 libjava/classpath/lib/java/lang/EnumConstantNotPresentException.class create mode 100644 libjava/classpath/lib/java/lang/Error.class create mode 100644 libjava/classpath/lib/java/lang/Exception.class create mode 100644 libjava/classpath/lib/java/lang/ExceptionInInitializerError.class create mode 100644 libjava/classpath/lib/java/lang/Float.class create mode 100644 libjava/classpath/lib/java/lang/IllegalAccessError.class create mode 100644 libjava/classpath/lib/java/lang/IllegalAccessException.class create mode 100644 libjava/classpath/lib/java/lang/IllegalArgumentException.class create mode 100644 libjava/classpath/lib/java/lang/IllegalMonitorStateException.class create mode 100644 libjava/classpath/lib/java/lang/IllegalStateException.class create mode 100644 libjava/classpath/lib/java/lang/IllegalThreadStateException.class create mode 100644 libjava/classpath/lib/java/lang/IncompatibleClassChangeError.class create mode 100644 libjava/classpath/lib/java/lang/IndexOutOfBoundsException.class create mode 100644 libjava/classpath/lib/java/lang/InheritableThreadLocal.class create mode 100644 libjava/classpath/lib/java/lang/InstantiationError.class create mode 100644 libjava/classpath/lib/java/lang/InstantiationException.class create mode 100644 libjava/classpath/lib/java/lang/Integer.class create mode 100644 libjava/classpath/lib/java/lang/InternalError.class create mode 100644 libjava/classpath/lib/java/lang/InterruptedException.class create mode 100644 libjava/classpath/lib/java/lang/Iterable.class create mode 100644 libjava/classpath/lib/java/lang/LinkageError.class create mode 100644 libjava/classpath/lib/java/lang/Long.class create mode 100644 libjava/classpath/lib/java/lang/Math.class create mode 100644 libjava/classpath/lib/java/lang/NegativeArraySizeException.class create mode 100644 libjava/classpath/lib/java/lang/NoClassDefFoundError.class create mode 100644 libjava/classpath/lib/java/lang/NoSuchFieldError.class create mode 100644 libjava/classpath/lib/java/lang/NoSuchFieldException.class create mode 100644 libjava/classpath/lib/java/lang/NoSuchMethodError.class create mode 100644 libjava/classpath/lib/java/lang/NoSuchMethodException.class create mode 100644 libjava/classpath/lib/java/lang/NullPointerException.class create mode 100644 libjava/classpath/lib/java/lang/Number.class create mode 100644 libjava/classpath/lib/java/lang/NumberFormatException.class create mode 100644 libjava/classpath/lib/java/lang/Object.class create mode 100644 libjava/classpath/lib/java/lang/OutOfMemoryError.class create mode 100644 libjava/classpath/lib/java/lang/Override.class create mode 100644 libjava/classpath/lib/java/lang/Package.class create mode 100644 libjava/classpath/lib/java/lang/PosixProcess$EOFInputStream.class create mode 100644 libjava/classpath/lib/java/lang/PosixProcess$ProcessManager.class create mode 100644 libjava/classpath/lib/java/lang/PosixProcess.class create mode 100644 libjava/classpath/lib/java/lang/Process.class create mode 100644 libjava/classpath/lib/java/lang/ProcessBuilder.class create mode 100644 libjava/classpath/lib/java/lang/Readable.class create mode 100644 libjava/classpath/lib/java/lang/Runnable.class create mode 100644 libjava/classpath/lib/java/lang/Runtime.class create mode 100644 libjava/classpath/lib/java/lang/RuntimeException.class create mode 100644 libjava/classpath/lib/java/lang/RuntimePermission.class create mode 100644 libjava/classpath/lib/java/lang/SecurityException.class create mode 100644 libjava/classpath/lib/java/lang/SecurityManager$1.class create mode 100644 libjava/classpath/lib/java/lang/SecurityManager.class create mode 100644 libjava/classpath/lib/java/lang/Short.class create mode 100644 libjava/classpath/lib/java/lang/StackOverflowError.class create mode 100644 libjava/classpath/lib/java/lang/StackTraceElement.class create mode 100644 libjava/classpath/lib/java/lang/StrictMath.class create mode 100644 libjava/classpath/lib/java/lang/String$CaseInsensitiveComparator.class create mode 100644 libjava/classpath/lib/java/lang/String.class create mode 100644 libjava/classpath/lib/java/lang/StringBuffer.class create mode 100644 libjava/classpath/lib/java/lang/StringBuilder.class create mode 100644 libjava/classpath/lib/java/lang/StringIndexOutOfBoundsException.class create mode 100644 libjava/classpath/lib/java/lang/SuppressWarnings.class create mode 100644 libjava/classpath/lib/java/lang/System$EnvironmentCollection.class create mode 100644 libjava/classpath/lib/java/lang/System$EnvironmentMap.class create mode 100644 libjava/classpath/lib/java/lang/System$EnvironmentSet.class create mode 100644 libjava/classpath/lib/java/lang/System.class create mode 100644 libjava/classpath/lib/java/lang/Thread$State.class create mode 100644 libjava/classpath/lib/java/lang/Thread$UncaughtExceptionHandler.class create mode 100644 libjava/classpath/lib/java/lang/Thread.class create mode 100644 libjava/classpath/lib/java/lang/ThreadDeath.class create mode 100644 libjava/classpath/lib/java/lang/ThreadGroup.class create mode 100644 libjava/classpath/lib/java/lang/ThreadLocal.class create mode 100644 libjava/classpath/lib/java/lang/Throwable$StaticData.class create mode 100644 libjava/classpath/lib/java/lang/Throwable.class create mode 100644 libjava/classpath/lib/java/lang/TypeNotPresentException.class create mode 100644 libjava/classpath/lib/java/lang/UnknownError.class create mode 100644 libjava/classpath/lib/java/lang/UnsatisfiedLinkError.class create mode 100644 libjava/classpath/lib/java/lang/UnsupportedClassVersionError.class create mode 100644 libjava/classpath/lib/java/lang/UnsupportedOperationException.class create mode 100644 libjava/classpath/lib/java/lang/VMClassLoader.class create mode 100644 libjava/classpath/lib/java/lang/VMCompiler.class create mode 100644 libjava/classpath/lib/java/lang/VMDouble.class create mode 100644 libjava/classpath/lib/java/lang/VMFloat.class create mode 100644 libjava/classpath/lib/java/lang/VMThrowable.class create mode 100644 libjava/classpath/lib/java/lang/VerifyError.class create mode 100644 libjava/classpath/lib/java/lang/VirtualMachineError.class create mode 100644 libjava/classpath/lib/java/lang/Void.class create mode 100644 libjava/classpath/lib/java/lang/Win32Process.class create mode 100644 libjava/classpath/lib/java/lang/annotation/Annotation.class create mode 100644 libjava/classpath/lib/java/lang/annotation/AnnotationFormatError.class create mode 100644 libjava/classpath/lib/java/lang/annotation/AnnotationTypeMismatchException.class create mode 100644 libjava/classpath/lib/java/lang/annotation/Documented.class create mode 100644 libjava/classpath/lib/java/lang/annotation/ElementType.class create mode 100644 libjava/classpath/lib/java/lang/annotation/IncompleteAnnotationException.class create mode 100644 libjava/classpath/lib/java/lang/annotation/Inherited.class create mode 100644 libjava/classpath/lib/java/lang/annotation/Retention.class create mode 100644 libjava/classpath/lib/java/lang/annotation/RetentionPolicy.class create mode 100644 libjava/classpath/lib/java/lang/annotation/Target.class create mode 100644 libjava/classpath/lib/java/lang/instrument/ClassDefinition.class create mode 100644 libjava/classpath/lib/java/lang/instrument/ClassFileTransformer.class create mode 100644 libjava/classpath/lib/java/lang/instrument/IllegalClassFormatException.class create mode 100644 libjava/classpath/lib/java/lang/instrument/Instrumentation.class create mode 100644 libjava/classpath/lib/java/lang/instrument/UnmodifiableClassException.class create mode 100644 libjava/classpath/lib/java/lang/management/ClassLoadingMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/CompilationMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/GarbageCollectorMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/ManagementFactory.class create mode 100644 libjava/classpath/lib/java/lang/management/ManagementPermission.class create mode 100644 libjava/classpath/lib/java/lang/management/MemoryMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/MemoryManagerMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/MemoryNotificationInfo.class create mode 100644 libjava/classpath/lib/java/lang/management/MemoryPoolMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/MemoryType.class create mode 100644 libjava/classpath/lib/java/lang/management/MemoryUsage.class create mode 100644 libjava/classpath/lib/java/lang/management/OperatingSystemMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/RuntimeMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/ThreadInfo.class create mode 100644 libjava/classpath/lib/java/lang/management/ThreadMXBean.class create mode 100644 libjava/classpath/lib/java/lang/management/VMManagementFactory.class create mode 100644 libjava/classpath/lib/java/lang/ref/PhantomReference.class create mode 100644 libjava/classpath/lib/java/lang/ref/Reference.class create mode 100644 libjava/classpath/lib/java/lang/ref/ReferenceQueue.class create mode 100644 libjava/classpath/lib/java/lang/ref/SoftReference.class create mode 100644 libjava/classpath/lib/java/lang/ref/WeakReference.class create mode 100644 libjava/classpath/lib/java/lang/reflect/AccessibleObject.class create mode 100644 libjava/classpath/lib/java/lang/reflect/AnnotatedElement.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Array.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Constructor.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Field.class create mode 100644 libjava/classpath/lib/java/lang/reflect/GenericArrayType.class create mode 100644 libjava/classpath/lib/java/lang/reflect/GenericDeclaration.class create mode 100644 libjava/classpath/lib/java/lang/reflect/GenericSignatureFormatError.class create mode 100644 libjava/classpath/lib/java/lang/reflect/InvocationHandler.class create mode 100644 libjava/classpath/lib/java/lang/reflect/InvocationTargetException.class create mode 100644 libjava/classpath/lib/java/lang/reflect/MalformedParameterizedTypeException.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Member.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Method.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Modifier.class create mode 100644 libjava/classpath/lib/java/lang/reflect/ParameterizedType.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Proxy.class create mode 100644 libjava/classpath/lib/java/lang/reflect/ReflectPermission.class create mode 100644 libjava/classpath/lib/java/lang/reflect/Type.class create mode 100644 libjava/classpath/lib/java/lang/reflect/TypeVariable.class create mode 100644 libjava/classpath/lib/java/lang/reflect/UndeclaredThrowableException.class create mode 100644 libjava/classpath/lib/java/lang/reflect/VMProxy.class create mode 100644 libjava/classpath/lib/java/lang/reflect/WildcardType.class create mode 100644 libjava/classpath/lib/java/math/BigDecimal.class create mode 100644 libjava/classpath/lib/java/math/BigInteger.class create mode 100644 libjava/classpath/lib/java/math/MathContext.class create mode 100644 libjava/classpath/lib/java/math/RoundingMode.class create mode 100644 libjava/classpath/lib/java/net/Authenticator.class create mode 100644 libjava/classpath/lib/java/net/BindException.class create mode 100644 libjava/classpath/lib/java/net/ConnectException.class create mode 100644 libjava/classpath/lib/java/net/ContentHandler.class create mode 100644 libjava/classpath/lib/java/net/ContentHandlerFactory.class create mode 100644 libjava/classpath/lib/java/net/DatagramPacket.class create mode 100644 libjava/classpath/lib/java/net/DatagramSocket.class create mode 100644 libjava/classpath/lib/java/net/DatagramSocketImpl.class create mode 100644 libjava/classpath/lib/java/net/DatagramSocketImplFactory.class create mode 100644 libjava/classpath/lib/java/net/FileNameMap.class create mode 100644 libjava/classpath/lib/java/net/HttpURLConnection.class create mode 100644 libjava/classpath/lib/java/net/Inet4Address.class create mode 100644 libjava/classpath/lib/java/net/Inet6Address.class create mode 100644 libjava/classpath/lib/java/net/InetAddress.class create mode 100644 libjava/classpath/lib/java/net/InetSocketAddress.class create mode 100644 libjava/classpath/lib/java/net/JarURLConnection.class create mode 100644 libjava/classpath/lib/java/net/MalformedURLException.class create mode 100644 libjava/classpath/lib/java/net/MimeTypeMapper.class create mode 100644 libjava/classpath/lib/java/net/MulticastSocket.class create mode 100644 libjava/classpath/lib/java/net/NetPermission.class create mode 100644 libjava/classpath/lib/java/net/NetworkInterface.class create mode 100644 libjava/classpath/lib/java/net/NoRouteToHostException.class create mode 100644 libjava/classpath/lib/java/net/PasswordAuthentication.class create mode 100644 libjava/classpath/lib/java/net/PortUnreachableException.class create mode 100644 libjava/classpath/lib/java/net/ProtocolException.class create mode 100644 libjava/classpath/lib/java/net/Proxy$Type.class create mode 100644 libjava/classpath/lib/java/net/Proxy.class create mode 100644 libjava/classpath/lib/java/net/ProxySelector.class create mode 100644 libjava/classpath/lib/java/net/ResolverCache$Entry.class create mode 100644 libjava/classpath/lib/java/net/ResolverCache.class create mode 100644 libjava/classpath/lib/java/net/ServerSocket.class create mode 100644 libjava/classpath/lib/java/net/Socket.class create mode 100644 libjava/classpath/lib/java/net/SocketAddress.class create mode 100644 libjava/classpath/lib/java/net/SocketException.class create mode 100644 libjava/classpath/lib/java/net/SocketImpl.class create mode 100644 libjava/classpath/lib/java/net/SocketImplFactory.class create mode 100644 libjava/classpath/lib/java/net/SocketOptions.class create mode 100644 libjava/classpath/lib/java/net/SocketPermission.class create mode 100644 libjava/classpath/lib/java/net/SocketTimeoutException.class create mode 100644 libjava/classpath/lib/java/net/URI.class create mode 100644 libjava/classpath/lib/java/net/URISyntaxException.class create mode 100644 libjava/classpath/lib/java/net/URL$1.class create mode 100644 libjava/classpath/lib/java/net/URL.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$1.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$2.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$CoreResource.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$CoreURLLoader.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$FileResource.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$FileURLLoader.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$JarURLLoader.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$JarURLResource.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$RemoteResource.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$RemoteURLLoader.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$Resource.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$SoResource.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$SoURLLoader.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader$URLLoader.class create mode 100644 libjava/classpath/lib/java/net/URLClassLoader.class create mode 100644 libjava/classpath/lib/java/net/URLConnection.class create mode 100644 libjava/classpath/lib/java/net/URLDecoder.class create mode 100644 libjava/classpath/lib/java/net/URLEncoder.class create mode 100644 libjava/classpath/lib/java/net/URLStreamHandler.class create mode 100644 libjava/classpath/lib/java/net/URLStreamHandlerFactory.class create mode 100644 libjava/classpath/lib/java/net/UnknownHostException.class create mode 100644 libjava/classpath/lib/java/net/UnknownServiceException.class create mode 100644 libjava/classpath/lib/java/net/VMInetAddress.class create mode 100644 libjava/classpath/lib/java/net/VMNetworkInterface.class create mode 100644 libjava/classpath/lib/java/net/VMURLConnection.class create mode 100644 libjava/classpath/lib/java/nio/Buffer.class create mode 100644 libjava/classpath/lib/java/nio/BufferOverflowException.class create mode 100644 libjava/classpath/lib/java/nio/BufferUnderflowException.class create mode 100644 libjava/classpath/lib/java/nio/ByteBuffer.class create mode 100644 libjava/classpath/lib/java/nio/ByteBufferHelper.class create mode 100644 libjava/classpath/lib/java/nio/ByteBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/ByteOrder.class create mode 100644 libjava/classpath/lib/java/nio/CharBuffer.class create mode 100644 libjava/classpath/lib/java/nio/CharBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/CharViewBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/DirectByteBufferImpl$ReadOnly.class create mode 100644 libjava/classpath/lib/java/nio/DirectByteBufferImpl$ReadWrite.class create mode 100644 libjava/classpath/lib/java/nio/DirectByteBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/DoubleBuffer.class create mode 100644 libjava/classpath/lib/java/nio/DoubleBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/FloatBuffer.class create mode 100644 libjava/classpath/lib/java/nio/FloatBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/FloatViewBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/IntBuffer.class create mode 100644 libjava/classpath/lib/java/nio/IntBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/IntViewBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/InvalidMarkException.class create mode 100644 libjava/classpath/lib/java/nio/LongBuffer.class create mode 100644 libjava/classpath/lib/java/nio/LongBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/LongViewBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/MappedByteBuffer.class create mode 100644 libjava/classpath/lib/java/nio/MappedByteBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/ReadOnlyBufferException.class create mode 100644 libjava/classpath/lib/java/nio/ShortBuffer.class create mode 100644 libjava/classpath/lib/java/nio/ShortBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/ShortViewBufferImpl.class create mode 100644 libjava/classpath/lib/java/nio/VMDirectByteBuffer.class create mode 100644 libjava/classpath/lib/java/nio/channels/AlreadyConnectedException.class create mode 100644 libjava/classpath/lib/java/nio/channels/AsynchronousCloseException.class create mode 100644 libjava/classpath/lib/java/nio/channels/ByteChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/CancelledKeyException.class create mode 100644 libjava/classpath/lib/java/nio/channels/Channel.class create mode 100644 libjava/classpath/lib/java/nio/channels/Channels.class create mode 100644 libjava/classpath/lib/java/nio/channels/ClosedByInterruptException.class create mode 100644 libjava/classpath/lib/java/nio/channels/ClosedChannelException.class create mode 100644 libjava/classpath/lib/java/nio/channels/ClosedSelectorException.class create mode 100644 libjava/classpath/lib/java/nio/channels/ConnectionPendingException.class create mode 100644 libjava/classpath/lib/java/nio/channels/DatagramChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/FileChannel$MapMode.class create mode 100644 libjava/classpath/lib/java/nio/channels/FileChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/FileLock.class create mode 100644 libjava/classpath/lib/java/nio/channels/FileLockInterruptionException.class create mode 100644 libjava/classpath/lib/java/nio/channels/GatheringByteChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/IllegalBlockingModeException.class create mode 100644 libjava/classpath/lib/java/nio/channels/IllegalSelectorException.class create mode 100644 libjava/classpath/lib/java/nio/channels/InterruptibleChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/NoConnectionPendingException.class create mode 100644 libjava/classpath/lib/java/nio/channels/NonReadableChannelException.class create mode 100644 libjava/classpath/lib/java/nio/channels/NonWritableChannelException.class create mode 100644 libjava/classpath/lib/java/nio/channels/NotYetBoundException.class create mode 100644 libjava/classpath/lib/java/nio/channels/NotYetConnectedException.class create mode 100644 libjava/classpath/lib/java/nio/channels/OverlappingFileLockException.class create mode 100644 libjava/classpath/lib/java/nio/channels/Pipe$SinkChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/Pipe$SourceChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/Pipe.class create mode 100644 libjava/classpath/lib/java/nio/channels/ReadableByteChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/ScatteringByteChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/SelectableChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/SelectionKey.class create mode 100644 libjava/classpath/lib/java/nio/channels/Selector.class create mode 100644 libjava/classpath/lib/java/nio/channels/ServerSocketChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/SocketChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/UnresolvedAddressException.class create mode 100644 libjava/classpath/lib/java/nio/channels/UnsupportedAddressTypeException.class create mode 100644 libjava/classpath/lib/java/nio/channels/VMChannels.class create mode 100644 libjava/classpath/lib/java/nio/channels/WritableByteChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/spi/AbstractInterruptibleChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/spi/AbstractSelectableChannel.class create mode 100644 libjava/classpath/lib/java/nio/channels/spi/AbstractSelectionKey.class create mode 100644 libjava/classpath/lib/java/nio/channels/spi/AbstractSelector.class create mode 100644 libjava/classpath/lib/java/nio/channels/spi/SelectorProvider.class create mode 100644 libjava/classpath/lib/java/nio/charset/CharacterCodingException.class create mode 100644 libjava/classpath/lib/java/nio/charset/Charset.class create mode 100644 libjava/classpath/lib/java/nio/charset/CharsetDecoder.class create mode 100644 libjava/classpath/lib/java/nio/charset/CharsetEncoder.class create mode 100644 libjava/classpath/lib/java/nio/charset/CoderMalfunctionError.class create mode 100644 libjava/classpath/lib/java/nio/charset/CoderResult$1.class create mode 100644 libjava/classpath/lib/java/nio/charset/CoderResult$2.class create mode 100644 libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class create mode 100644 libjava/classpath/lib/java/nio/charset/CoderResult.class create mode 100644 libjava/classpath/lib/java/nio/charset/CodingErrorAction.class create mode 100644 libjava/classpath/lib/java/nio/charset/IllegalCharsetNameException.class create mode 100644 libjava/classpath/lib/java/nio/charset/MalformedInputException.class create mode 100644 libjava/classpath/lib/java/nio/charset/UnmappableCharacterException.class create mode 100644 libjava/classpath/lib/java/nio/charset/UnsupportedCharsetException.class create mode 100644 libjava/classpath/lib/java/nio/charset/spi/CharsetProvider.class create mode 100644 libjava/classpath/lib/java/rmi/AccessException.class create mode 100644 libjava/classpath/lib/java/rmi/AlreadyBoundException.class create mode 100644 libjava/classpath/lib/java/rmi/ConnectException.class create mode 100644 libjava/classpath/lib/java/rmi/ConnectIOException.class create mode 100644 libjava/classpath/lib/java/rmi/MarshalException.class create mode 100644 libjava/classpath/lib/java/rmi/MarshalledObject.class create mode 100644 libjava/classpath/lib/java/rmi/Naming.class create mode 100644 libjava/classpath/lib/java/rmi/NoSuchObjectException.class create mode 100644 libjava/classpath/lib/java/rmi/NotBoundException.class create mode 100644 libjava/classpath/lib/java/rmi/RMISecurityException.class create mode 100644 libjava/classpath/lib/java/rmi/RMISecurityManager.class create mode 100644 libjava/classpath/lib/java/rmi/Remote.class create mode 100644 libjava/classpath/lib/java/rmi/RemoteException.class create mode 100644 libjava/classpath/lib/java/rmi/ServerError.class create mode 100644 libjava/classpath/lib/java/rmi/ServerException.class create mode 100644 libjava/classpath/lib/java/rmi/ServerRuntimeException.class create mode 100644 libjava/classpath/lib/java/rmi/StubNotFoundException.class create mode 100644 libjava/classpath/lib/java/rmi/UnexpectedException.class create mode 100644 libjava/classpath/lib/java/rmi/UnknownHostException.class create mode 100644 libjava/classpath/lib/java/rmi/UnmarshalException.class create mode 100644 libjava/classpath/lib/java/rmi/activation/Activatable.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivateFailedException.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationDesc.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationException.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationGroup.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationGroupID.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationGroup_Stub.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationID.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class create mode 100644 libjava/classpath/lib/java/rmi/activation/ActivationSystem.class create mode 100644 libjava/classpath/lib/java/rmi/activation/Activator.class create mode 100644 libjava/classpath/lib/java/rmi/activation/UnknownGroupException.class create mode 100644 libjava/classpath/lib/java/rmi/activation/UnknownObjectException.class create mode 100644 libjava/classpath/lib/java/rmi/dgc/DGC.class create mode 100644 libjava/classpath/lib/java/rmi/dgc/Lease.class create mode 100644 libjava/classpath/lib/java/rmi/dgc/VMID.class create mode 100644 libjava/classpath/lib/java/rmi/registry/LocateRegistry.class create mode 100644 libjava/classpath/lib/java/rmi/registry/Registry.class create mode 100644 libjava/classpath/lib/java/rmi/registry/RegistryHandler.class create mode 100644 libjava/classpath/lib/java/rmi/server/ExportException.class create mode 100644 libjava/classpath/lib/java/rmi/server/LoaderHandler.class create mode 100644 libjava/classpath/lib/java/rmi/server/LogStream.class create mode 100644 libjava/classpath/lib/java/rmi/server/ObjID.class create mode 100644 libjava/classpath/lib/java/rmi/server/Operation.class create mode 100644 libjava/classpath/lib/java/rmi/server/RMIClassLoader.class create mode 100644 libjava/classpath/lib/java/rmi/server/RMIClassLoaderSpi.class create mode 100644 libjava/classpath/lib/java/rmi/server/RMIClientSocketFactory.class create mode 100644 libjava/classpath/lib/java/rmi/server/RMIFailureHandler.class create mode 100644 libjava/classpath/lib/java/rmi/server/RMIServerSocketFactory.class create mode 100644 libjava/classpath/lib/java/rmi/server/RMISocketFactory.class create mode 100644 libjava/classpath/lib/java/rmi/server/RemoteCall.class create mode 100644 libjava/classpath/lib/java/rmi/server/RemoteObject.class create mode 100644 libjava/classpath/lib/java/rmi/server/RemoteObjectInvocationHandler.class create mode 100644 libjava/classpath/lib/java/rmi/server/RemoteRef.class create mode 100644 libjava/classpath/lib/java/rmi/server/RemoteServer.class create mode 100644 libjava/classpath/lib/java/rmi/server/RemoteStub.class create mode 100644 libjava/classpath/lib/java/rmi/server/ServerCloneException.class create mode 100644 libjava/classpath/lib/java/rmi/server/ServerNotActiveException.class create mode 100644 libjava/classpath/lib/java/rmi/server/ServerRef.class create mode 100644 libjava/classpath/lib/java/rmi/server/Skeleton.class create mode 100644 libjava/classpath/lib/java/rmi/server/SkeletonMismatchException.class create mode 100644 libjava/classpath/lib/java/rmi/server/SkeletonNotFoundException.class create mode 100644 libjava/classpath/lib/java/rmi/server/SocketSecurityException.class create mode 100644 libjava/classpath/lib/java/rmi/server/UID.class create mode 100644 libjava/classpath/lib/java/rmi/server/UnicastRemoteObject.class create mode 100644 libjava/classpath/lib/java/rmi/server/Unreferenced.class create mode 100644 libjava/classpath/lib/java/security/AccessControlContext.class create mode 100644 libjava/classpath/lib/java/security/AccessControlException.class create mode 100644 libjava/classpath/lib/java/security/AccessController.class create mode 100644 libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class create mode 100644 libjava/classpath/lib/java/security/AlgorithmParameterGeneratorSpi.class create mode 100644 libjava/classpath/lib/java/security/AlgorithmParameters.class create mode 100644 libjava/classpath/lib/java/security/AlgorithmParametersSpi.class create mode 100644 libjava/classpath/lib/java/security/AllPermission$AllPermissionCollection.class create mode 100644 libjava/classpath/lib/java/security/AllPermission.class create mode 100644 libjava/classpath/lib/java/security/BasicPermission$BasicPermissionCollection.class create mode 100644 libjava/classpath/lib/java/security/BasicPermission.class create mode 100644 libjava/classpath/lib/java/security/Certificate.class create mode 100644 libjava/classpath/lib/java/security/CodeSource.class create mode 100644 libjava/classpath/lib/java/security/DigestException.class create mode 100644 libjava/classpath/lib/java/security/DigestInputStream.class create mode 100644 libjava/classpath/lib/java/security/DigestOutputStream.class create mode 100644 libjava/classpath/lib/java/security/DomainCombiner.class create mode 100644 libjava/classpath/lib/java/security/DummyKeyPairGenerator.class create mode 100644 libjava/classpath/lib/java/security/DummyMessageDigest.class create mode 100644 libjava/classpath/lib/java/security/DummySignature.class create mode 100644 libjava/classpath/lib/java/security/GeneralSecurityException.class create mode 100644 libjava/classpath/lib/java/security/Guard.class create mode 100644 libjava/classpath/lib/java/security/GuardedObject.class create mode 100644 libjava/classpath/lib/java/security/Identity.class create mode 100644 libjava/classpath/lib/java/security/IdentityScope.class create mode 100644 libjava/classpath/lib/java/security/IntersectingDomainCombiner.class create mode 100644 libjava/classpath/lib/java/security/InvalidAlgorithmParameterException.class create mode 100644 libjava/classpath/lib/java/security/InvalidKeyException.class create mode 100644 libjava/classpath/lib/java/security/InvalidParameterException.class create mode 100644 libjava/classpath/lib/java/security/Key.class create mode 100644 libjava/classpath/lib/java/security/KeyException.class create mode 100644 libjava/classpath/lib/java/security/KeyFactory.class create mode 100644 libjava/classpath/lib/java/security/KeyFactorySpi.class create mode 100644 libjava/classpath/lib/java/security/KeyManagementException.class create mode 100644 libjava/classpath/lib/java/security/KeyPair.class create mode 100644 libjava/classpath/lib/java/security/KeyPairGenerator.class create mode 100644 libjava/classpath/lib/java/security/KeyPairGeneratorSpi.class create mode 100644 libjava/classpath/lib/java/security/KeyStore.class create mode 100644 libjava/classpath/lib/java/security/KeyStoreException.class create mode 100644 libjava/classpath/lib/java/security/KeyStoreSpi.class create mode 100644 libjava/classpath/lib/java/security/MessageDigest.class create mode 100644 libjava/classpath/lib/java/security/MessageDigestSpi.class create mode 100644 libjava/classpath/lib/java/security/NoSuchAlgorithmException.class create mode 100644 libjava/classpath/lib/java/security/NoSuchProviderException.class create mode 100644 libjava/classpath/lib/java/security/Permission.class create mode 100644 libjava/classpath/lib/java/security/PermissionCollection.class create mode 100644 libjava/classpath/lib/java/security/Permissions$1.class create mode 100644 libjava/classpath/lib/java/security/Permissions$PermissionsHash.class create mode 100644 libjava/classpath/lib/java/security/Permissions.class create mode 100644 libjava/classpath/lib/java/security/Policy.class create mode 100644 libjava/classpath/lib/java/security/Principal.class create mode 100644 libjava/classpath/lib/java/security/PrivateKey.class create mode 100644 libjava/classpath/lib/java/security/PrivilegedAction.class create mode 100644 libjava/classpath/lib/java/security/PrivilegedActionException.class create mode 100644 libjava/classpath/lib/java/security/PrivilegedExceptionAction.class create mode 100644 libjava/classpath/lib/java/security/ProtectionDomain.class create mode 100644 libjava/classpath/lib/java/security/Provider.class create mode 100644 libjava/classpath/lib/java/security/ProviderException.class create mode 100644 libjava/classpath/lib/java/security/PublicKey.class create mode 100644 libjava/classpath/lib/java/security/SecureClassLoader.class create mode 100644 libjava/classpath/lib/java/security/SecureRandom.class create mode 100644 libjava/classpath/lib/java/security/SecureRandomSpi.class create mode 100644 libjava/classpath/lib/java/security/Security.class create mode 100644 libjava/classpath/lib/java/security/SecurityPermission.class create mode 100644 libjava/classpath/lib/java/security/Signature.class create mode 100644 libjava/classpath/lib/java/security/SignatureException.class create mode 100644 libjava/classpath/lib/java/security/SignatureSpi.class create mode 100644 libjava/classpath/lib/java/security/SignedObject.class create mode 100644 libjava/classpath/lib/java/security/Signer.class create mode 100644 libjava/classpath/lib/java/security/UnrecoverableKeyException.class create mode 100644 libjava/classpath/lib/java/security/UnresolvedPermission.class create mode 100644 libjava/classpath/lib/java/security/UnresolvedPermissionCollection$1.class create mode 100644 libjava/classpath/lib/java/security/UnresolvedPermissionCollection.class create mode 100644 libjava/classpath/lib/java/security/VMAccessControlState.class create mode 100644 libjava/classpath/lib/java/security/VMAccessController.class create mode 100644 libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class create mode 100644 libjava/classpath/lib/java/security/VMSecureRandom.class create mode 100644 libjava/classpath/lib/java/security/acl/Acl.class create mode 100644 libjava/classpath/lib/java/security/acl/AclEntry.class create mode 100644 libjava/classpath/lib/java/security/acl/AclNotFoundException.class create mode 100644 libjava/classpath/lib/java/security/acl/Group.class create mode 100644 libjava/classpath/lib/java/security/acl/LastOwnerException.class create mode 100644 libjava/classpath/lib/java/security/acl/NotOwnerException.class create mode 100644 libjava/classpath/lib/java/security/acl/Owner.class create mode 100644 libjava/classpath/lib/java/security/acl/Permission.class create mode 100644 libjava/classpath/lib/java/security/cert/CRL.class create mode 100644 libjava/classpath/lib/java/security/cert/CRLException.class create mode 100644 libjava/classpath/lib/java/security/cert/CRLSelector.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPath.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathBuilder.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathBuilderException.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathBuilderResult.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathBuilderSpi.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathParameters.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathValidator$1.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathValidator.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathValidatorException.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathValidatorResult.class create mode 100644 libjava/classpath/lib/java/security/cert/CertPathValidatorSpi.class create mode 100644 libjava/classpath/lib/java/security/cert/CertSelector.class create mode 100644 libjava/classpath/lib/java/security/cert/CertStore$1.class create mode 100644 libjava/classpath/lib/java/security/cert/CertStore.class create mode 100644 libjava/classpath/lib/java/security/cert/CertStoreException.class create mode 100644 libjava/classpath/lib/java/security/cert/CertStoreParameters.class create mode 100644 libjava/classpath/lib/java/security/cert/CertStoreSpi.class create mode 100644 libjava/classpath/lib/java/security/cert/Certificate$CertificateRep.class create mode 100644 libjava/classpath/lib/java/security/cert/Certificate.class create mode 100644 libjava/classpath/lib/java/security/cert/CertificateEncodingException.class create mode 100644 libjava/classpath/lib/java/security/cert/CertificateException.class create mode 100644 libjava/classpath/lib/java/security/cert/CertificateExpiredException.class create mode 100644 libjava/classpath/lib/java/security/cert/CertificateFactory.class create mode 100644 libjava/classpath/lib/java/security/cert/CertificateFactorySpi.class create mode 100644 libjava/classpath/lib/java/security/cert/CertificateNotYetValidException.class create mode 100644 libjava/classpath/lib/java/security/cert/CertificateParsingException.class create mode 100644 libjava/classpath/lib/java/security/cert/CollectionCertStoreParameters.class create mode 100644 libjava/classpath/lib/java/security/cert/LDAPCertStoreParameters.class create mode 100644 libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class create mode 100644 libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class create mode 100644 libjava/classpath/lib/java/security/cert/PKIXCertPathChecker.class create mode 100644 libjava/classpath/lib/java/security/cert/PKIXCertPathValidatorResult.class create mode 100644 libjava/classpath/lib/java/security/cert/PKIXParameters.class create mode 100644 libjava/classpath/lib/java/security/cert/PolicyNode.class create mode 100644 libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class create mode 100644 libjava/classpath/lib/java/security/cert/TrustAnchor.class create mode 100644 libjava/classpath/lib/java/security/cert/X509CRL.class create mode 100644 libjava/classpath/lib/java/security/cert/X509CRLEntry.class create mode 100644 libjava/classpath/lib/java/security/cert/X509CRLSelector.class create mode 100644 libjava/classpath/lib/java/security/cert/X509CertSelector.class create mode 100644 libjava/classpath/lib/java/security/cert/X509Certificate.class create mode 100644 libjava/classpath/lib/java/security/cert/X509Extension.class create mode 100644 libjava/classpath/lib/java/security/interfaces/DSAKey.class create mode 100644 libjava/classpath/lib/java/security/interfaces/DSAKeyPairGenerator.class create mode 100644 libjava/classpath/lib/java/security/interfaces/DSAParams.class create mode 100644 libjava/classpath/lib/java/security/interfaces/DSAPrivateKey.class create mode 100644 libjava/classpath/lib/java/security/interfaces/DSAPublicKey.class create mode 100644 libjava/classpath/lib/java/security/interfaces/RSAKey.class create mode 100644 libjava/classpath/lib/java/security/interfaces/RSAMultiPrimePrivateCrtKey.class create mode 100644 libjava/classpath/lib/java/security/interfaces/RSAPrivateCrtKey.class create mode 100644 libjava/classpath/lib/java/security/interfaces/RSAPrivateKey.class create mode 100644 libjava/classpath/lib/java/security/interfaces/RSAPublicKey.class create mode 100644 libjava/classpath/lib/java/security/spec/AlgorithmParameterSpec.class create mode 100644 libjava/classpath/lib/java/security/spec/DSAParameterSpec.class create mode 100644 libjava/classpath/lib/java/security/spec/DSAPrivateKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/DSAPublicKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/EncodedKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/InvalidKeySpecException.class create mode 100644 libjava/classpath/lib/java/security/spec/InvalidParameterSpecException.class create mode 100644 libjava/classpath/lib/java/security/spec/KeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/PKCS8EncodedKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/PSSParameterSpec.class create mode 100644 libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class create mode 100644 libjava/classpath/lib/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/RSAOtherPrimeInfo.class create mode 100644 libjava/classpath/lib/java/security/spec/RSAPrivateCrtKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/RSAPrivateKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/RSAPublicKeySpec.class create mode 100644 libjava/classpath/lib/java/security/spec/X509EncodedKeySpec.class create mode 100644 libjava/classpath/lib/java/sql/Array.class create mode 100644 libjava/classpath/lib/java/sql/BatchUpdateException.class create mode 100644 libjava/classpath/lib/java/sql/Blob.class create mode 100644 libjava/classpath/lib/java/sql/CallableStatement.class create mode 100644 libjava/classpath/lib/java/sql/Clob.class create mode 100644 libjava/classpath/lib/java/sql/Connection.class create mode 100644 libjava/classpath/lib/java/sql/DataTruncation.class create mode 100644 libjava/classpath/lib/java/sql/DatabaseMetaData.class create mode 100644 libjava/classpath/lib/java/sql/Date.class create mode 100644 libjava/classpath/lib/java/sql/Driver.class create mode 100644 libjava/classpath/lib/java/sql/DriverManager.class create mode 100644 libjava/classpath/lib/java/sql/DriverPropertyInfo.class create mode 100644 libjava/classpath/lib/java/sql/ParameterMetaData.class create mode 100644 libjava/classpath/lib/java/sql/PreparedStatement.class create mode 100644 libjava/classpath/lib/java/sql/Ref.class create mode 100644 libjava/classpath/lib/java/sql/ResultSet.class create mode 100644 libjava/classpath/lib/java/sql/ResultSetMetaData.class create mode 100644 libjava/classpath/lib/java/sql/SQLData.class create mode 100644 libjava/classpath/lib/java/sql/SQLException.class create mode 100644 libjava/classpath/lib/java/sql/SQLInput.class create mode 100644 libjava/classpath/lib/java/sql/SQLOutput.class create mode 100644 libjava/classpath/lib/java/sql/SQLPermission.class create mode 100644 libjava/classpath/lib/java/sql/SQLWarning.class create mode 100644 libjava/classpath/lib/java/sql/Savepoint.class create mode 100644 libjava/classpath/lib/java/sql/Statement.class create mode 100644 libjava/classpath/lib/java/sql/Struct.class create mode 100644 libjava/classpath/lib/java/sql/Time.class create mode 100644 libjava/classpath/lib/java/sql/Timestamp.class create mode 100644 libjava/classpath/lib/java/sql/Types.class create mode 100644 libjava/classpath/lib/java/text/Annotation.class create mode 100644 libjava/classpath/lib/java/text/AttributedCharacterIterator$Attribute.class create mode 100644 libjava/classpath/lib/java/text/AttributedCharacterIterator.class create mode 100644 libjava/classpath/lib/java/text/AttributedString$AttributeRange.class create mode 100644 libjava/classpath/lib/java/text/AttributedString.class create mode 100644 libjava/classpath/lib/java/text/AttributedStringIterator.class create mode 100644 libjava/classpath/lib/java/text/Bidi.class create mode 100644 libjava/classpath/lib/java/text/BreakIterator.class create mode 100644 libjava/classpath/lib/java/text/CharacterIterator.class create mode 100644 libjava/classpath/lib/java/text/ChoiceFormat.class create mode 100644 libjava/classpath/lib/java/text/CollationElementIterator.class create mode 100644 libjava/classpath/lib/java/text/CollationKey.class create mode 100644 libjava/classpath/lib/java/text/Collator.class create mode 100644 libjava/classpath/lib/java/text/DateFormat$Field.class create mode 100644 libjava/classpath/lib/java/text/DateFormat.class create mode 100644 libjava/classpath/lib/java/text/DateFormatSymbols.class create mode 100644 libjava/classpath/lib/java/text/DecimalFormat.class create mode 100644 libjava/classpath/lib/java/text/DecimalFormatSymbols.class create mode 100644 libjava/classpath/lib/java/text/FieldPosition.class create mode 100644 libjava/classpath/lib/java/text/Format$Field.class create mode 100644 libjava/classpath/lib/java/text/Format.class create mode 100644 libjava/classpath/lib/java/text/MessageFormat$Field.class create mode 100644 libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class create mode 100644 libjava/classpath/lib/java/text/MessageFormat.class create mode 100644 libjava/classpath/lib/java/text/NumberFormat$Field.class create mode 100644 libjava/classpath/lib/java/text/NumberFormat.class create mode 100644 libjava/classpath/lib/java/text/ParseException.class create mode 100644 libjava/classpath/lib/java/text/ParsePosition.class create mode 100644 libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class create mode 100644 libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class create mode 100644 libjava/classpath/lib/java/text/RuleBasedCollator.class create mode 100644 libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class create mode 100644 libjava/classpath/lib/java/text/SimpleDateFormat.class create mode 100644 libjava/classpath/lib/java/text/StringCharacterIterator.class create mode 100644 libjava/classpath/lib/java/util/AbstractCollection.class create mode 100644 libjava/classpath/lib/java/util/AbstractList$1.class create mode 100644 libjava/classpath/lib/java/util/AbstractList$2.class create mode 100644 libjava/classpath/lib/java/util/AbstractList$3.class create mode 100644 libjava/classpath/lib/java/util/AbstractList$RandomAccessSubList.class create mode 100644 libjava/classpath/lib/java/util/AbstractList$SubList.class create mode 100644 libjava/classpath/lib/java/util/AbstractList.class create mode 100644 libjava/classpath/lib/java/util/AbstractMap$1.class create mode 100644 libjava/classpath/lib/java/util/AbstractMap$2.class create mode 100644 libjava/classpath/lib/java/util/AbstractMap$3.class create mode 100644 libjava/classpath/lib/java/util/AbstractMap$4.class create mode 100644 libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class create mode 100644 libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class create mode 100644 libjava/classpath/lib/java/util/AbstractMap.class create mode 100644 libjava/classpath/lib/java/util/AbstractQueue.class create mode 100644 libjava/classpath/lib/java/util/AbstractSequentialList.class create mode 100644 libjava/classpath/lib/java/util/AbstractSet.class create mode 100644 libjava/classpath/lib/java/util/ArrayDeque$DeqIterator.class create mode 100644 libjava/classpath/lib/java/util/ArrayDeque$DescendingIterator.class create mode 100644 libjava/classpath/lib/java/util/ArrayDeque.class create mode 100644 libjava/classpath/lib/java/util/ArrayList.class create mode 100644 libjava/classpath/lib/java/util/Arrays$ArrayList.class create mode 100644 libjava/classpath/lib/java/util/Arrays.class create mode 100644 libjava/classpath/lib/java/util/BitSet.class create mode 100644 libjava/classpath/lib/java/util/Calendar.class create mode 100644 libjava/classpath/lib/java/util/Collection.class create mode 100644 libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class create mode 100644 libjava/classpath/lib/java/util/Collections$1.class create mode 100644 libjava/classpath/lib/java/util/Collections$2.class create mode 100644 libjava/classpath/lib/java/util/Collections$3.class create mode 100644 libjava/classpath/lib/java/util/Collections$4.class create mode 100644 libjava/classpath/lib/java/util/Collections$5.class create mode 100644 libjava/classpath/lib/java/util/Collections$6.class create mode 100644 libjava/classpath/lib/java/util/Collections$7.class create mode 100644 libjava/classpath/lib/java/util/Collections$8.class create mode 100644 libjava/classpath/lib/java/util/Collections$9.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedCollection.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedIterator.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedList.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedListIterator.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedSet.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class create mode 100644 libjava/classpath/lib/java/util/Collections$CopiesList.class create mode 100644 libjava/classpath/lib/java/util/Collections$EmptyList.class create mode 100644 libjava/classpath/lib/java/util/Collections$EmptyMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$EmptySet.class create mode 100644 libjava/classpath/lib/java/util/Collections$ReverseComparator.class create mode 100644 libjava/classpath/lib/java/util/Collections$SingletonList.class create mode 100644 libjava/classpath/lib/java/util/Collections$SingletonMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$SingletonSet.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedList.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedSet.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableList.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class create mode 100644 libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class create mode 100644 libjava/classpath/lib/java/util/Collections.class create mode 100644 libjava/classpath/lib/java/util/Comparator.class create mode 100644 libjava/classpath/lib/java/util/ConcurrentModificationException.class create mode 100644 libjava/classpath/lib/java/util/Currency.class create mode 100644 libjava/classpath/lib/java/util/Date.class create mode 100644 libjava/classpath/lib/java/util/Deque.class create mode 100644 libjava/classpath/lib/java/util/Dictionary.class create mode 100644 libjava/classpath/lib/java/util/DuplicateFormatFlagsException.class create mode 100644 libjava/classpath/lib/java/util/EmptyStackException.class create mode 100644 libjava/classpath/lib/java/util/EnumMap$1.class create mode 100644 libjava/classpath/lib/java/util/EnumMap$2.class create mode 100644 libjava/classpath/lib/java/util/EnumMap$3.class create mode 100644 libjava/classpath/lib/java/util/EnumMap$4.class create mode 100644 libjava/classpath/lib/java/util/EnumMap$5.class create mode 100644 libjava/classpath/lib/java/util/EnumMap$6.class create mode 100644 libjava/classpath/lib/java/util/EnumMap$7.class create mode 100644 libjava/classpath/lib/java/util/EnumMap.class create mode 100644 libjava/classpath/lib/java/util/EnumSet$1.class create mode 100644 libjava/classpath/lib/java/util/EnumSet.class create mode 100644 libjava/classpath/lib/java/util/Enumeration.class create mode 100644 libjava/classpath/lib/java/util/EventListener.class create mode 100644 libjava/classpath/lib/java/util/EventListenerProxy.class create mode 100644 libjava/classpath/lib/java/util/EventObject.class create mode 100644 libjava/classpath/lib/java/util/FormatFlagsConversionMismatchException.class create mode 100644 libjava/classpath/lib/java/util/Formattable.class create mode 100644 libjava/classpath/lib/java/util/FormattableFlags.class create mode 100644 libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class create mode 100644 libjava/classpath/lib/java/util/Formatter.class create mode 100644 libjava/classpath/lib/java/util/FormatterClosedException.class create mode 100644 libjava/classpath/lib/java/util/GregorianCalendar.class create mode 100644 libjava/classpath/lib/java/util/HashMap$1.class create mode 100644 libjava/classpath/lib/java/util/HashMap$2.class create mode 100644 libjava/classpath/lib/java/util/HashMap$3.class create mode 100644 libjava/classpath/lib/java/util/HashMap$HashEntry.class create mode 100644 libjava/classpath/lib/java/util/HashMap$HashIterator.class create mode 100644 libjava/classpath/lib/java/util/HashMap.class create mode 100644 libjava/classpath/lib/java/util/HashSet.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$1.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$2.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$3.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$EntryIterator.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$HashEntry.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$KeyIterator.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class create mode 100644 libjava/classpath/lib/java/util/Hashtable$ValueIterator.class create mode 100644 libjava/classpath/lib/java/util/Hashtable.class create mode 100644 libjava/classpath/lib/java/util/IdentityHashMap$1.class create mode 100644 libjava/classpath/lib/java/util/IdentityHashMap$2.class create mode 100644 libjava/classpath/lib/java/util/IdentityHashMap$3.class create mode 100644 libjava/classpath/lib/java/util/IdentityHashMap$IdentityEntry.class create mode 100644 libjava/classpath/lib/java/util/IdentityHashMap$IdentityIterator.class create mode 100644 libjava/classpath/lib/java/util/IdentityHashMap.class create mode 100644 libjava/classpath/lib/java/util/IllegalFormatCodePointException.class create mode 100644 libjava/classpath/lib/java/util/IllegalFormatConversionException.class create mode 100644 libjava/classpath/lib/java/util/IllegalFormatException.class create mode 100644 libjava/classpath/lib/java/util/IllegalFormatFlagsException.class create mode 100644 libjava/classpath/lib/java/util/IllegalFormatPrecisionException.class create mode 100644 libjava/classpath/lib/java/util/IllegalFormatWidthException.class create mode 100644 libjava/classpath/lib/java/util/InputMismatchException.class create mode 100644 libjava/classpath/lib/java/util/InvalidPropertiesFormatException.class create mode 100644 libjava/classpath/lib/java/util/Iterator.class create mode 100644 libjava/classpath/lib/java/util/LinkedHashMap$1.class create mode 100644 libjava/classpath/lib/java/util/LinkedHashMap$LinkedHashEntry.class create mode 100644 libjava/classpath/lib/java/util/LinkedHashMap.class create mode 100644 libjava/classpath/lib/java/util/LinkedHashSet.class create mode 100644 libjava/classpath/lib/java/util/LinkedList$Entry.class create mode 100644 libjava/classpath/lib/java/util/LinkedList$LinkedListItr.class create mode 100644 libjava/classpath/lib/java/util/LinkedList.class create mode 100644 libjava/classpath/lib/java/util/List.class create mode 100644 libjava/classpath/lib/java/util/ListIterator.class create mode 100644 libjava/classpath/lib/java/util/ListResourceBundle.class create mode 100644 libjava/classpath/lib/java/util/Locale.class create mode 100644 libjava/classpath/lib/java/util/Map$Entry.class create mode 100644 libjava/classpath/lib/java/util/Map.class create mode 100644 libjava/classpath/lib/java/util/MissingFormatArgumentException.class create mode 100644 libjava/classpath/lib/java/util/MissingFormatWidthException.class create mode 100644 libjava/classpath/lib/java/util/MissingResourceException.class create mode 100644 libjava/classpath/lib/java/util/NavigableMap.class create mode 100644 libjava/classpath/lib/java/util/NavigableSet.class create mode 100644 libjava/classpath/lib/java/util/NoSuchElementException.class create mode 100644 libjava/classpath/lib/java/util/Observable.class create mode 100644 libjava/classpath/lib/java/util/Observer.class create mode 100644 libjava/classpath/lib/java/util/PriorityQueue$1.class create mode 100644 libjava/classpath/lib/java/util/PriorityQueue.class create mode 100644 libjava/classpath/lib/java/util/Properties.class create mode 100644 libjava/classpath/lib/java/util/PropertyPermission.class create mode 100644 libjava/classpath/lib/java/util/PropertyPermissionCollection.class create mode 100644 libjava/classpath/lib/java/util/PropertyResourceBundle.class create mode 100644 libjava/classpath/lib/java/util/Queue.class create mode 100644 libjava/classpath/lib/java/util/Random.class create mode 100644 libjava/classpath/lib/java/util/RandomAccess.class create mode 100644 libjava/classpath/lib/java/util/ResourceBundle$1.class create mode 100644 libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class create mode 100644 libjava/classpath/lib/java/util/ResourceBundle.class create mode 100644 libjava/classpath/lib/java/util/Set.class create mode 100644 libjava/classpath/lib/java/util/SimpleTimeZone.class create mode 100644 libjava/classpath/lib/java/util/SortedMap.class create mode 100644 libjava/classpath/lib/java/util/SortedSet.class create mode 100644 libjava/classpath/lib/java/util/Stack.class create mode 100644 libjava/classpath/lib/java/util/StringTokenizer.class create mode 100644 libjava/classpath/lib/java/util/TimeZone$1.class create mode 100644 libjava/classpath/lib/java/util/TimeZone.class create mode 100644 libjava/classpath/lib/java/util/Timer$Scheduler.class create mode 100644 libjava/classpath/lib/java/util/Timer$TaskQueue.class create mode 100644 libjava/classpath/lib/java/util/Timer.class create mode 100644 libjava/classpath/lib/java/util/TimerTask.class create mode 100644 libjava/classpath/lib/java/util/TooManyListenersException.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$1.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$2.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$3.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$4.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$5.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$6.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$Node.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$SubMap.class create mode 100644 libjava/classpath/lib/java/util/TreeMap$TreeIterator.class create mode 100644 libjava/classpath/lib/java/util/TreeMap.class create mode 100644 libjava/classpath/lib/java/util/TreeSet.class create mode 100644 libjava/classpath/lib/java/util/UUID.class create mode 100644 libjava/classpath/lib/java/util/UnknownFormatConversionException.class create mode 100644 libjava/classpath/lib/java/util/UnknownFormatFlagsException.class create mode 100644 libjava/classpath/lib/java/util/VMTimeZone.class create mode 100644 libjava/classpath/lib/java/util/Vector$1.class create mode 100644 libjava/classpath/lib/java/util/Vector.class create mode 100644 libjava/classpath/lib/java/util/WeakHashMap$1.class create mode 100644 libjava/classpath/lib/java/util/WeakHashMap$2.class create mode 100644 libjava/classpath/lib/java/util/WeakHashMap$WeakBucket$WeakEntry.class create mode 100644 libjava/classpath/lib/java/util/WeakHashMap$WeakBucket.class create mode 100644 libjava/classpath/lib/java/util/WeakHashMap$WeakEntrySet.class create mode 100644 libjava/classpath/lib/java/util/WeakHashMap.class create mode 100644 libjava/classpath/lib/java/util/concurrent/AbstractExecutorService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ArrayBlockingQueue$Itr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ArrayBlockingQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/BlockingDeque.class create mode 100644 libjava/classpath/lib/java/util/concurrent/BlockingQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/BrokenBarrierException.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Callable.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CancellationException.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CompletionService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$EntryIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$EntrySet.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$HashEntry.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$HashIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$KeyIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$KeySet.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$Segment.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$ValueIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$Values.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue$Itr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue$Node.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentMap.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentNavigableMap.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$EntrySet.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Index.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Iter.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$KeySet.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Node.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Values.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListSet.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CopyOnWriteArraySet.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CountDownLatch$Sync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CountDownLatch.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CyclicBarrier$Generation.class create mode 100644 libjava/classpath/lib/java/util/concurrent/CyclicBarrier.class create mode 100644 libjava/classpath/lib/java/util/concurrent/DelayQueue$Itr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/DelayQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Delayed.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Exchanger$Node.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Exchanger$Slot.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Exchanger.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ExecutionException.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executor.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ExecutorCompletionService$QueueingFuture.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ExecutorCompletionService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ExecutorService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$1.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$2.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$3.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$4.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$5.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$6.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$DefaultThreadFactory.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$DelegatedExecutorService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$DelegatedScheduledExecutorService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedCallable.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedThreadFactory.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors$RunnableAdapter.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Executors.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Future.class create mode 100644 libjava/classpath/lib/java/util/concurrent/FutureTask$Sync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/FutureTask.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$AbstractItr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$DescendingItr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$Itr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$Node.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue$Itr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue$Node.class create mode 100644 libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/PriorityBlockingQueue$Itr.class create mode 100644 libjava/classpath/lib/java/util/concurrent/PriorityBlockingQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/RejectedExecutionException.class create mode 100644 libjava/classpath/lib/java/util/concurrent/RejectedExecutionHandler.class create mode 100644 libjava/classpath/lib/java/util/concurrent/RunnableFuture.class create mode 100644 libjava/classpath/lib/java/util/concurrent/RunnableScheduledFuture.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ScheduledExecutorService.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ScheduledFuture.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$1.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Semaphore$FairSync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Semaphore$NonfairSync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Semaphore$Sync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/Semaphore.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$EmptyIterator.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$FifoWaitQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$LifoWaitQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferStack$SNode.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferStack.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$Transferer.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue$WaitQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/SynchronousQueue.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ThreadFactory.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$Worker.class create mode 100644 libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit$1.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit$2.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit$3.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit$4.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit$5.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit$6.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit$7.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeUnit.class create mode 100644 libjava/classpath/lib/java/util/concurrent/TimeoutException.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicBoolean.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicInteger.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerArray.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicLong.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongArray.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicMarkableReference.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicReference.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceArray.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.class create mode 100644 libjava/classpath/lib/java/util/concurrent/atomic/AtomicStampedReference.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/AbstractOwnableSynchronizer.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/Condition.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/Lock.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/LockSupport.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReadWriteLock.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$FairSync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$NonfairSync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$Sync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.class create mode 100644 libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock.class create mode 100644 libjava/classpath/lib/java/util/jar/Attributes$Name.class create mode 100644 libjava/classpath/lib/java/util/jar/Attributes.class create mode 100644 libjava/classpath/lib/java/util/jar/JarEntry.class create mode 100644 libjava/classpath/lib/java/util/jar/JarException.class create mode 100644 libjava/classpath/lib/java/util/jar/JarFile$EntryInputStream.class create mode 100644 libjava/classpath/lib/java/util/jar/JarFile$JarEnumeration.class create mode 100644 libjava/classpath/lib/java/util/jar/JarFile.class create mode 100644 libjava/classpath/lib/java/util/jar/JarInputStream.class create mode 100644 libjava/classpath/lib/java/util/jar/JarOutputStream.class create mode 100644 libjava/classpath/lib/java/util/jar/Manifest.class create mode 100644 libjava/classpath/lib/java/util/logging/ConsoleHandler.class create mode 100644 libjava/classpath/lib/java/util/logging/ErrorManager.class create mode 100644 libjava/classpath/lib/java/util/logging/FileHandler$ostr.class create mode 100644 libjava/classpath/lib/java/util/logging/FileHandler.class create mode 100644 libjava/classpath/lib/java/util/logging/Filter.class create mode 100644 libjava/classpath/lib/java/util/logging/Formatter.class create mode 100644 libjava/classpath/lib/java/util/logging/Handler.class create mode 100644 libjava/classpath/lib/java/util/logging/Level.class create mode 100644 libjava/classpath/lib/java/util/logging/LogManager$1.class create mode 100644 libjava/classpath/lib/java/util/logging/LogManager.class create mode 100644 libjava/classpath/lib/java/util/logging/LogRecord.class create mode 100644 libjava/classpath/lib/java/util/logging/Logger$1.class create mode 100644 libjava/classpath/lib/java/util/logging/Logger.class create mode 100644 libjava/classpath/lib/java/util/logging/LoggingMXBean.class create mode 100644 libjava/classpath/lib/java/util/logging/LoggingPermission.class create mode 100644 libjava/classpath/lib/java/util/logging/MemoryHandler.class create mode 100644 libjava/classpath/lib/java/util/logging/SimpleFormatter.class create mode 100644 libjava/classpath/lib/java/util/logging/SocketHandler.class create mode 100644 libjava/classpath/lib/java/util/logging/StreamHandler.class create mode 100644 libjava/classpath/lib/java/util/logging/XMLFormatter.class create mode 100644 libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class create mode 100644 libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class create mode 100644 libjava/classpath/lib/java/util/prefs/AbstractPreferences.class create mode 100644 libjava/classpath/lib/java/util/prefs/BackingStoreException.class create mode 100644 libjava/classpath/lib/java/util/prefs/InvalidPreferencesFormatException.class create mode 100644 libjava/classpath/lib/java/util/prefs/NodeChangeEvent.class create mode 100644 libjava/classpath/lib/java/util/prefs/NodeChangeListener.class create mode 100644 libjava/classpath/lib/java/util/prefs/PreferenceChangeEvent.class create mode 100644 libjava/classpath/lib/java/util/prefs/PreferenceChangeListener.class create mode 100644 libjava/classpath/lib/java/util/prefs/Preferences$1.class create mode 100644 libjava/classpath/lib/java/util/prefs/Preferences.class create mode 100644 libjava/classpath/lib/java/util/prefs/PreferencesFactory.class create mode 100644 libjava/classpath/lib/java/util/regex/MatchResult.class create mode 100644 libjava/classpath/lib/java/util/regex/Matcher.class create mode 100644 libjava/classpath/lib/java/util/regex/Pattern.class create mode 100644 libjava/classpath/lib/java/util/regex/PatternSyntaxException.class create mode 100644 libjava/classpath/lib/java/util/zip/Adler32.class create mode 100644 libjava/classpath/lib/java/util/zip/CRC32.class create mode 100644 libjava/classpath/lib/java/util/zip/CheckedInputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/CheckedOutputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/Checksum.class create mode 100644 libjava/classpath/lib/java/util/zip/DataFormatException.class create mode 100644 libjava/classpath/lib/java/util/zip/Deflater.class create mode 100644 libjava/classpath/lib/java/util/zip/DeflaterOutputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/GZIPInputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/GZIPOutputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/Inflater.class create mode 100644 libjava/classpath/lib/java/util/zip/InflaterInputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipConstants.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipEntry.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipException.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipFile$1.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipFile$PartialInputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipFile$ZipEntryEnumeration.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipFile.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipInputStream.class create mode 100644 libjava/classpath/lib/java/util/zip/ZipOutputStream.class create mode 100644 libjava/classpath/lib/javax/accessibility/Accessible.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleAction.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleBundle.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleComponent.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleContext.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleEditableText.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleExtendedComponent.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleExtendedTable.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleExtendedText.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleHyperlink.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleHypertext.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleIcon.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleKeyBinding.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleRelation.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleResourceBundle.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleRole.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleSelection.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleState.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleStreamable.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleTable.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleTableModelChange.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleText.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class create mode 100644 libjava/classpath/lib/javax/accessibility/AccessibleValue.class create mode 100644 libjava/classpath/lib/javax/crypto/BadPaddingException.class create mode 100644 libjava/classpath/lib/javax/crypto/Cipher.class create mode 100644 libjava/classpath/lib/javax/crypto/CipherInputStream.class create mode 100644 libjava/classpath/lib/javax/crypto/CipherOutputStream.class create mode 100644 libjava/classpath/lib/javax/crypto/CipherSpi.class create mode 100644 libjava/classpath/lib/javax/crypto/EncryptedPrivateKeyInfo.class create mode 100644 libjava/classpath/lib/javax/crypto/ExemptionMechanism.class create mode 100644 libjava/classpath/lib/javax/crypto/ExemptionMechanismException.class create mode 100644 libjava/classpath/lib/javax/crypto/ExemptionMechanismSpi.class create mode 100644 libjava/classpath/lib/javax/crypto/IllegalBlockSizeException.class create mode 100644 libjava/classpath/lib/javax/crypto/KeyAgreement.class create mode 100644 libjava/classpath/lib/javax/crypto/KeyAgreementSpi.class create mode 100644 libjava/classpath/lib/javax/crypto/KeyGenerator.class create mode 100644 libjava/classpath/lib/javax/crypto/KeyGeneratorSpi.class create mode 100644 libjava/classpath/lib/javax/crypto/Mac.class create mode 100644 libjava/classpath/lib/javax/crypto/MacSpi.class create mode 100644 libjava/classpath/lib/javax/crypto/NoSuchPaddingException.class create mode 100644 libjava/classpath/lib/javax/crypto/NullCipher.class create mode 100644 libjava/classpath/lib/javax/crypto/NullCipherImpl.class create mode 100644 libjava/classpath/lib/javax/crypto/SealedObject.class create mode 100644 libjava/classpath/lib/javax/crypto/SecretKey.class create mode 100644 libjava/classpath/lib/javax/crypto/SecretKeyFactory.class create mode 100644 libjava/classpath/lib/javax/crypto/SecretKeyFactorySpi.class create mode 100644 libjava/classpath/lib/javax/crypto/ShortBufferException.class create mode 100644 libjava/classpath/lib/javax/crypto/interfaces/DHKey.class create mode 100644 libjava/classpath/lib/javax/crypto/interfaces/DHPrivateKey.class create mode 100644 libjava/classpath/lib/javax/crypto/interfaces/DHPublicKey.class create mode 100644 libjava/classpath/lib/javax/crypto/interfaces/PBEKey.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/DESKeySpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/DESedeKeySpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/DHGenParameterSpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/DHParameterSpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/DHPrivateKeySpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/DHPublicKeySpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/IvParameterSpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/PBEKeySpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/PBEParameterSpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/RC2ParameterSpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/RC5ParameterSpec.class create mode 100644 libjava/classpath/lib/javax/crypto/spec/SecretKeySpec.class create mode 100644 libjava/classpath/lib/javax/imageio/IIOException.class create mode 100644 libjava/classpath/lib/javax/imageio/IIOImage.class create mode 100644 libjava/classpath/lib/javax/imageio/IIOParam.class create mode 100644 libjava/classpath/lib/javax/imageio/IIOParamController.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$1.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$ImageReaderIterator.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$ImageWriterIterator.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$ReaderFormatFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$ReaderMIMETypeFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$ReaderObjectFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$ReaderSuffixFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$TranscoderFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$WriterFormatFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$WriterMIMETypeFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$WriterObjectFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO$WriterSuffixFilter.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageIO.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageReadParam.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageReader.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageTranscoder.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageTypeSpecifier.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageWriteParam.class create mode 100644 libjava/classpath/lib/javax/imageio/ImageWriter.class create mode 100644 libjava/classpath/lib/javax/imageio/event/IIOReadProgressListener.class create mode 100644 libjava/classpath/lib/javax/imageio/event/IIOReadUpdateListener.class create mode 100644 libjava/classpath/lib/javax/imageio/event/IIOReadWarningListener.class create mode 100644 libjava/classpath/lib/javax/imageio/event/IIOWriteProgressListener.class create mode 100644 libjava/classpath/lib/javax/imageio/event/IIOWriteWarningListener.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOInvalidTreeException.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadata.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataController.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormat.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode$IIONamedNodeMap.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode$IIONodeList.class create mode 100644 libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode.class create mode 100644 libjava/classpath/lib/javax/imageio/plugins/bmp/BMPImageWriteParam.class create mode 100644 libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class create mode 100644 libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGImageReadParam.class create mode 100644 libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGImageWriteParam.class create mode 100644 libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/IIORegistry.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/IIOServiceProvider.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ImageInputStreamSpi.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ImageOutputStreamSpi.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ImageReaderSpi.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ImageReaderWriterSpi.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ImageTranscoderSpi.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ImageWriterSpi.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/RegisterableService.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$1.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$2.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$Filter.class create mode 100644 libjava/classpath/lib/javax/imageio/spi/ServiceRegistry.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/FileCacheImageInputStream.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/FileCacheImageOutputStream.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/FileImageInputStream.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/FileImageOutputStream.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/IIOByteBuffer.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/ImageInputStream.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/ImageOutputStream.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/ImageOutputStreamImpl.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class create mode 100644 libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageOutputStream.class create mode 100644 libjava/classpath/lib/javax/management/Attribute.class create mode 100644 libjava/classpath/lib/javax/management/AttributeList.class create mode 100644 libjava/classpath/lib/javax/management/AttributeNotFoundException.class create mode 100644 libjava/classpath/lib/javax/management/BadAttributeValueExpException.class create mode 100644 libjava/classpath/lib/javax/management/BadBinaryOpValueExpException.class create mode 100644 libjava/classpath/lib/javax/management/BadStringOperationException.class create mode 100644 libjava/classpath/lib/javax/management/DynamicMBean.class create mode 100644 libjava/classpath/lib/javax/management/InstanceAlreadyExistsException.class create mode 100644 libjava/classpath/lib/javax/management/InstanceNotFoundException.class create mode 100644 libjava/classpath/lib/javax/management/IntrospectionException.class create mode 100644 libjava/classpath/lib/javax/management/InvalidApplicationException.class create mode 100644 libjava/classpath/lib/javax/management/InvalidAttributeValueException.class create mode 100644 libjava/classpath/lib/javax/management/JMException.class create mode 100644 libjava/classpath/lib/javax/management/JMRuntimeException.class create mode 100644 libjava/classpath/lib/javax/management/ListenerNotFoundException.class create mode 100644 libjava/classpath/lib/javax/management/MBeanAttributeInfo.class create mode 100644 libjava/classpath/lib/javax/management/MBeanConstructorInfo.class create mode 100644 libjava/classpath/lib/javax/management/MBeanException.class create mode 100644 libjava/classpath/lib/javax/management/MBeanFeatureInfo.class create mode 100644 libjava/classpath/lib/javax/management/MBeanInfo.class create mode 100644 libjava/classpath/lib/javax/management/MBeanNotificationInfo.class create mode 100644 libjava/classpath/lib/javax/management/MBeanOperationInfo.class create mode 100644 libjava/classpath/lib/javax/management/MBeanParameterInfo.class create mode 100644 libjava/classpath/lib/javax/management/MBeanPermission$NameHolder.class create mode 100644 libjava/classpath/lib/javax/management/MBeanPermission.class create mode 100644 libjava/classpath/lib/javax/management/MBeanRegistration.class create mode 100644 libjava/classpath/lib/javax/management/MBeanRegistrationException.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServer.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerBuilder.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerConnection.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerDelegate.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerDelegateMBean.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerFactory.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerNotification.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class create mode 100644 libjava/classpath/lib/javax/management/MBeanServerPermission.class create mode 100644 libjava/classpath/lib/javax/management/MBeanTrustPermission.class create mode 100644 libjava/classpath/lib/javax/management/MalformedObjectNameException.class create mode 100644 libjava/classpath/lib/javax/management/NotCompliantMBeanException.class create mode 100644 libjava/classpath/lib/javax/management/Notification.class create mode 100644 libjava/classpath/lib/javax/management/NotificationBroadcaster.class create mode 100644 libjava/classpath/lib/javax/management/NotificationEmitter.class create mode 100644 libjava/classpath/lib/javax/management/NotificationFilter.class create mode 100644 libjava/classpath/lib/javax/management/NotificationListener.class create mode 100644 libjava/classpath/lib/javax/management/ObjectInstance.class create mode 100644 libjava/classpath/lib/javax/management/ObjectName.class create mode 100644 libjava/classpath/lib/javax/management/OperationsException.class create mode 100644 libjava/classpath/lib/javax/management/QueryExp.class create mode 100644 libjava/classpath/lib/javax/management/ReflectionException.class create mode 100644 libjava/classpath/lib/javax/management/RuntimeErrorException.class create mode 100644 libjava/classpath/lib/javax/management/RuntimeMBeanException.class create mode 100644 libjava/classpath/lib/javax/management/RuntimeOperationsException.class create mode 100644 libjava/classpath/lib/javax/management/ServiceNotFoundException.class create mode 100644 libjava/classpath/lib/javax/management/StandardMBean.class create mode 100644 libjava/classpath/lib/javax/management/ValueExp.class create mode 100644 libjava/classpath/lib/javax/management/loading/ClassLoaderRepository.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/ArrayType.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/CompositeData.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/CompositeType.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/InvalidKeyException.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/InvalidOpenTypeException.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/KeyAlreadyExistsException.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenDataException.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfo.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanConstructorInfo.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanConstructorInfoSupport.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanInfo.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanInfoSupport.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanOperationInfo.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanOperationInfoSupport.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfo.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/OpenType.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/SimpleType.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/TabularData.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class create mode 100644 libjava/classpath/lib/javax/management/openmbean/TabularType.class create mode 100644 libjava/classpath/lib/javax/naming/AuthenticationException.class create mode 100644 libjava/classpath/lib/javax/naming/AuthenticationNotSupportedException.class create mode 100644 libjava/classpath/lib/javax/naming/BinaryRefAddr.class create mode 100644 libjava/classpath/lib/javax/naming/Binding.class create mode 100644 libjava/classpath/lib/javax/naming/CannotProceedException.class create mode 100644 libjava/classpath/lib/javax/naming/CommunicationException.class create mode 100644 libjava/classpath/lib/javax/naming/CompositeName.class create mode 100644 libjava/classpath/lib/javax/naming/CompoundName.class create mode 100644 libjava/classpath/lib/javax/naming/ConfigurationException.class create mode 100644 libjava/classpath/lib/javax/naming/Context.class create mode 100644 libjava/classpath/lib/javax/naming/ContextNotEmptyException.class create mode 100644 libjava/classpath/lib/javax/naming/InitialContext.class create mode 100644 libjava/classpath/lib/javax/naming/InsufficientResourcesException.class create mode 100644 libjava/classpath/lib/javax/naming/InterruptedNamingException.class create mode 100644 libjava/classpath/lib/javax/naming/InvalidNameException.class create mode 100644 libjava/classpath/lib/javax/naming/LimitExceededException.class create mode 100644 libjava/classpath/lib/javax/naming/LinkException.class create mode 100644 libjava/classpath/lib/javax/naming/LinkLoopException.class create mode 100644 libjava/classpath/lib/javax/naming/LinkRef.class create mode 100644 libjava/classpath/lib/javax/naming/MalformedLinkException.class create mode 100644 libjava/classpath/lib/javax/naming/Name.class create mode 100644 libjava/classpath/lib/javax/naming/NameAlreadyBoundException.class create mode 100644 libjava/classpath/lib/javax/naming/NameClassPair.class create mode 100644 libjava/classpath/lib/javax/naming/NameNotFoundException.class create mode 100644 libjava/classpath/lib/javax/naming/NameParser.class create mode 100644 libjava/classpath/lib/javax/naming/NamingEnumeration.class create mode 100644 libjava/classpath/lib/javax/naming/NamingException.class create mode 100644 libjava/classpath/lib/javax/naming/NamingSecurityException.class create mode 100644 libjava/classpath/lib/javax/naming/NoInitialContextException.class create mode 100644 libjava/classpath/lib/javax/naming/NoPermissionException.class create mode 100644 libjava/classpath/lib/javax/naming/NotContextException.class create mode 100644 libjava/classpath/lib/javax/naming/OperationNotSupportedException.class create mode 100644 libjava/classpath/lib/javax/naming/PartialResultException.class create mode 100644 libjava/classpath/lib/javax/naming/RefAddr.class create mode 100644 libjava/classpath/lib/javax/naming/Reference.class create mode 100644 libjava/classpath/lib/javax/naming/Referenceable.class create mode 100644 libjava/classpath/lib/javax/naming/ReferralException.class create mode 100644 libjava/classpath/lib/javax/naming/ServiceUnavailableException.class create mode 100644 libjava/classpath/lib/javax/naming/SizeLimitExceededException.class create mode 100644 libjava/classpath/lib/javax/naming/StringRefAddr.class create mode 100644 libjava/classpath/lib/javax/naming/TimeLimitExceededException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/Attribute.class create mode 100644 libjava/classpath/lib/javax/naming/directory/AttributeInUseException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/AttributeModificationException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/Attributes.class create mode 100644 libjava/classpath/lib/javax/naming/directory/BasicAttribute$BasicAttributeEnumeration.class create mode 100644 libjava/classpath/lib/javax/naming/directory/BasicAttribute.class create mode 100644 libjava/classpath/lib/javax/naming/directory/BasicAttributes$BasicAttributesEnumeration.class create mode 100644 libjava/classpath/lib/javax/naming/directory/BasicAttributes.class create mode 100644 libjava/classpath/lib/javax/naming/directory/DirContext.class create mode 100644 libjava/classpath/lib/javax/naming/directory/InitialDirContext.class create mode 100644 libjava/classpath/lib/javax/naming/directory/InvalidAttributeIdentifierException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/InvalidAttributeValueException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/InvalidAttributesException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/InvalidSearchControlsException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/InvalidSearchFilterException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/ModificationItem.class create mode 100644 libjava/classpath/lib/javax/naming/directory/NoSuchAttributeException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/SchemaViolationException.class create mode 100644 libjava/classpath/lib/javax/naming/directory/SearchControls.class create mode 100644 libjava/classpath/lib/javax/naming/directory/SearchResult.class create mode 100644 libjava/classpath/lib/javax/naming/event/EventContext.class create mode 100644 libjava/classpath/lib/javax/naming/event/EventDirContext.class create mode 100644 libjava/classpath/lib/javax/naming/event/NamespaceChangeListener.class create mode 100644 libjava/classpath/lib/javax/naming/event/NamingEvent.class create mode 100644 libjava/classpath/lib/javax/naming/event/NamingExceptionEvent.class create mode 100644 libjava/classpath/lib/javax/naming/event/NamingListener.class create mode 100644 libjava/classpath/lib/javax/naming/event/ObjectChangeListener.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/Control.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/ControlFactory.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/ExtendedRequest.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/ExtendedResponse.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/HasControls.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/InitialLdapContext.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/LdapContext.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/LdapReferralException.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/StartTlsRequest.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/StartTlsResponse.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotification.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotificationEvent.class create mode 100644 libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotificationListener.class create mode 100644 libjava/classpath/lib/javax/naming/spi/DirObjectFactory.class create mode 100644 libjava/classpath/lib/javax/naming/spi/DirStateFactory$Result.class create mode 100644 libjava/classpath/lib/javax/naming/spi/DirStateFactory.class create mode 100644 libjava/classpath/lib/javax/naming/spi/DirectoryManager.class create mode 100644 libjava/classpath/lib/javax/naming/spi/InitialContextFactory.class create mode 100644 libjava/classpath/lib/javax/naming/spi/InitialContextFactoryBuilder.class create mode 100644 libjava/classpath/lib/javax/naming/spi/NamingManager.class create mode 100644 libjava/classpath/lib/javax/naming/spi/ObjectFactory.class create mode 100644 libjava/classpath/lib/javax/naming/spi/ObjectFactoryBuilder.class create mode 100644 libjava/classpath/lib/javax/naming/spi/ResolveResult.class create mode 100644 libjava/classpath/lib/javax/naming/spi/Resolver.class create mode 100644 libjava/classpath/lib/javax/naming/spi/StateFactory.class create mode 100644 libjava/classpath/lib/javax/net/ServerSocketFactory.class create mode 100644 libjava/classpath/lib/javax/net/SocketFactory.class create mode 100644 libjava/classpath/lib/javax/net/VanillaServerSocketFactory.class create mode 100644 libjava/classpath/lib/javax/net/VanillaSocketFactory.class create mode 100644 libjava/classpath/lib/javax/net/ssl/CertPathTrustManagerParameters.class create mode 100644 libjava/classpath/lib/javax/net/ssl/HandshakeCompletedEvent.class create mode 100644 libjava/classpath/lib/javax/net/ssl/HandshakeCompletedListener.class create mode 100644 libjava/classpath/lib/javax/net/ssl/HostnameVerifier.class create mode 100644 libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class create mode 100644 libjava/classpath/lib/javax/net/ssl/KeyManager.class create mode 100644 libjava/classpath/lib/javax/net/ssl/KeyManagerFactory$1.class create mode 100644 libjava/classpath/lib/javax/net/ssl/KeyManagerFactory.class create mode 100644 libjava/classpath/lib/javax/net/ssl/KeyManagerFactorySpi.class create mode 100644 libjava/classpath/lib/javax/net/ssl/KeyStoreBuilderParameters.class create mode 100644 libjava/classpath/lib/javax/net/ssl/ManagerFactoryParameters.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLContext.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLContextSpi.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLEngine.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLEngineResult$HandshakeStatus.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLEngineResult$Status.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLEngineResult.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLException.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLHandshakeException.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLKeyException.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLPeerUnverifiedException.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLPermission.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLProtocolException.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLServerSocket.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLServerSocketFactory.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLSession.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLSessionBindingEvent.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLSessionBindingListener.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLSessionContext.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLSocket.class create mode 100644 libjava/classpath/lib/javax/net/ssl/SSLSocketFactory.class create mode 100644 libjava/classpath/lib/javax/net/ssl/TrivialHostnameVerifier.class create mode 100644 libjava/classpath/lib/javax/net/ssl/TrustManager.class create mode 100644 libjava/classpath/lib/javax/net/ssl/TrustManagerFactory$1.class create mode 100644 libjava/classpath/lib/javax/net/ssl/TrustManagerFactory.class create mode 100644 libjava/classpath/lib/javax/net/ssl/TrustManagerFactorySpi.class create mode 100644 libjava/classpath/lib/javax/net/ssl/X509ExtendedKeyManager.class create mode 100644 libjava/classpath/lib/javax/net/ssl/X509KeyManager.class create mode 100644 libjava/classpath/lib/javax/net/ssl/X509TrustManager.class create mode 100644 libjava/classpath/lib/javax/print/AttributeException.class create mode 100644 libjava/classpath/lib/javax/print/CancelablePrintJob.class create mode 100644 libjava/classpath/lib/javax/print/Doc.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor$BYTE_ARRAY.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor$CHAR_ARRAY.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor$INPUT_STREAM.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor$READER.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor$SERVICE_FORMATTED.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor$STRING.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor$URL.class create mode 100644 libjava/classpath/lib/javax/print/DocFlavor.class create mode 100644 libjava/classpath/lib/javax/print/DocPrintJob.class create mode 100644 libjava/classpath/lib/javax/print/FlavorException.class create mode 100644 libjava/classpath/lib/javax/print/MultiDoc.class create mode 100644 libjava/classpath/lib/javax/print/MultiDocPrintJob.class create mode 100644 libjava/classpath/lib/javax/print/MultiDocPrintService.class create mode 100644 libjava/classpath/lib/javax/print/PrintException.class create mode 100644 libjava/classpath/lib/javax/print/PrintService.class create mode 100644 libjava/classpath/lib/javax/print/PrintServiceLookup.class create mode 100644 libjava/classpath/lib/javax/print/ServiceUI.class create mode 100644 libjava/classpath/lib/javax/print/ServiceUIFactory.class create mode 100644 libjava/classpath/lib/javax/print/SimpleDoc.class create mode 100644 libjava/classpath/lib/javax/print/StreamPrintService.class create mode 100644 libjava/classpath/lib/javax/print/StreamPrintServiceFactory.class create mode 100644 libjava/classpath/lib/javax/print/URIException.class create mode 100644 libjava/classpath/lib/javax/print/attribute/Attribute.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedDocAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintJobAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintRequestAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintServiceAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiableAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiableDocAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintJobAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities.class create mode 100644 libjava/classpath/lib/javax/print/attribute/DateTimeSyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/DocAttribute.class create mode 100644 libjava/classpath/lib/javax/print/attribute/DocAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/EnumSyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/HashAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/HashDocAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/HashPrintJobAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/HashPrintRequestAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/HashPrintServiceAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/IntegerSyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/PrintJobAttribute.class create mode 100644 libjava/classpath/lib/javax/print/attribute/PrintJobAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/PrintRequestAttribute.class create mode 100644 libjava/classpath/lib/javax/print/attribute/PrintRequestAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/PrintServiceAttribute.class create mode 100644 libjava/classpath/lib/javax/print/attribute/PrintServiceAttributeSet.class create mode 100644 libjava/classpath/lib/javax/print/attribute/ResolutionSyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/SetOfIntegerSyntax$1.class create mode 100644 libjava/classpath/lib/javax/print/attribute/SetOfIntegerSyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/Size2DSyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/SupportedValuesAttribute.class create mode 100644 libjava/classpath/lib/javax/print/attribute/TextSyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/URISyntax.class create mode 100644 libjava/classpath/lib/javax/print/attribute/UnmodifiableSetException.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Chromaticity.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/ColorSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Compression.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Copies.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/CopiesSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtCompleted.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtCreation.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtProcessing.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Destination.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/DocumentName.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Fidelity.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Finishings.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobHoldUntil.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobImpressions.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobImpressionsCompleted.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobImpressionsSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobKOctets.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobKOctetsProcessed.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobKOctetsSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheets.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheetsCompleted.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheetsSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobMessageFromOperator.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobName.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobOriginatingUserName.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobPriority.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobPrioritySupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobSheets.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobState.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobStateReason.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Media.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaName.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaPrintableArea.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaSize$Engineering.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaSize$ISO.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaSize$JIS.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaSize$NA.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaSize$Other.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaSize.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaSizeName.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MediaTray.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/MultipleDocumentHandling.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/NumberOfDocuments.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/NumberOfInterveningJobs.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/NumberUp.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/NumberUpSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/OrientationRequested.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/OutputDeviceAssigned.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PDLOverrideSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PageRanges.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PagesPerMinute.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PagesPerMinuteColor.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PresentationDirection.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrintQuality.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterInfo.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterIsAcceptingJobs.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterLocation.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterMakeAndModel.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterMessageFromOperator.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterMoreInfo.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterMoreInfoManufacturer.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterName.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterResolution.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterState.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterStateReason.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterStateReasons.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/PrinterURI.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/QueuedJobCount.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/ReferenceUriSchemesSupported.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/RequestingUserName.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Severity.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/SheetCollate.class create mode 100644 libjava/classpath/lib/javax/print/attribute/standard/Sides.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintEvent.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintJobAdapter.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintJobAttributeEvent.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintJobAttributeListener.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintJobEvent.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintJobListener.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintServiceAttributeEvent.class create mode 100644 libjava/classpath/lib/javax/print/event/PrintServiceAttributeListener.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/ClassDesc.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/PortableRemoteObjectDelegate.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/Stub.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/StubDelegate.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/Tie.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/Util.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/UtilDelegate.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/ValueHandler.class create mode 100644 libjava/classpath/lib/javax/rmi/CORBA/ValueHandlerMultiFormat.class create mode 100644 libjava/classpath/lib/javax/rmi/PortableRemoteObject.class create mode 100644 libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class create mode 100644 libjava/classpath/lib/javax/rmi/ssl/SslRMIServerSocketFactory.class create mode 100644 libjava/classpath/lib/javax/security/auth/AuthPermission.class create mode 100644 libjava/classpath/lib/javax/security/auth/DestroyFailedException.class create mode 100644 libjava/classpath/lib/javax/security/auth/Destroyable.class create mode 100644 libjava/classpath/lib/javax/security/auth/Policy.class create mode 100644 libjava/classpath/lib/javax/security/auth/PrivateCredentialPermission$CredOwner.class create mode 100644 libjava/classpath/lib/javax/security/auth/PrivateCredentialPermission.class create mode 100644 libjava/classpath/lib/javax/security/auth/RefreshFailedException.class create mode 100644 libjava/classpath/lib/javax/security/auth/Refreshable.class create mode 100644 libjava/classpath/lib/javax/security/auth/Subject$SecureSet.class create mode 100644 libjava/classpath/lib/javax/security/auth/Subject.class create mode 100644 libjava/classpath/lib/javax/security/auth/SubjectDomainCombiner.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/Callback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/CallbackHandler.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/ChoiceCallback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/ConfirmationCallback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/LanguageCallback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/NameCallback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/PasswordCallback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/TextInputCallback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/TextOutputCallback.class create mode 100644 libjava/classpath/lib/javax/security/auth/callback/UnsupportedCallbackException.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/DelegationPermission$1.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/DelegationPermission.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/KerberosKey.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/KerberosPrincipal.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/ServicePermission$1.class create mode 100644 libjava/classpath/lib/javax/security/auth/kerberos/ServicePermission.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/AccountException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/AccountExpiredException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/AccountLockedException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/AccountNotFoundException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/AppConfigurationEntry.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/Configuration$1.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/Configuration.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/CredentialException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/CredentialExpiredException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/CredentialNotFoundException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/FailedLoginException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/LoginContext.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/LoginException.class create mode 100644 libjava/classpath/lib/javax/security/auth/login/NullConfiguration.class create mode 100644 libjava/classpath/lib/javax/security/auth/spi/LoginModule.class create mode 100644 libjava/classpath/lib/javax/security/auth/x500/X500Principal.class create mode 100644 libjava/classpath/lib/javax/security/auth/x500/X500PrivateCredential.class create mode 100644 libjava/classpath/lib/javax/security/cert/Certificate.class create mode 100644 libjava/classpath/lib/javax/security/cert/CertificateEncodingException.class create mode 100644 libjava/classpath/lib/javax/security/cert/CertificateException.class create mode 100644 libjava/classpath/lib/javax/security/cert/CertificateExpiredException.class create mode 100644 libjava/classpath/lib/javax/security/cert/CertificateNotYetValidException.class create mode 100644 libjava/classpath/lib/javax/security/cert/CertificateParsingException.class create mode 100644 libjava/classpath/lib/javax/security/cert/X509CertBridge.class create mode 100644 libjava/classpath/lib/javax/security/cert/X509Certificate.class create mode 100644 libjava/classpath/lib/javax/security/sasl/AuthenticationException.class create mode 100644 libjava/classpath/lib/javax/security/sasl/AuthorizeCallback.class create mode 100644 libjava/classpath/lib/javax/security/sasl/RealmCallback.class create mode 100644 libjava/classpath/lib/javax/security/sasl/RealmChoiceCallback.class create mode 100644 libjava/classpath/lib/javax/security/sasl/Sasl.class create mode 100644 libjava/classpath/lib/javax/security/sasl/SaslClient.class create mode 100644 libjava/classpath/lib/javax/security/sasl/SaslClientFactory.class create mode 100644 libjava/classpath/lib/javax/security/sasl/SaslException.class create mode 100644 libjava/classpath/lib/javax/security/sasl/SaslServer.class create mode 100644 libjava/classpath/lib/javax/security/sasl/SaslServerFactory.class create mode 100644 libjava/classpath/lib/javax/sound/midi/ControllerEventListener.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Instrument.class create mode 100644 libjava/classpath/lib/javax/sound/midi/InvalidMidiDataException.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MetaEventListener.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MetaMessage.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiChannel.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiDevice$Info.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiDevice.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiEvent.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiFileFormat.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiMessage.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiSystem.class create mode 100644 libjava/classpath/lib/javax/sound/midi/MidiUnavailableException.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Patch.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Receiver.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Sequence.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Sequencer$SyncMode.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Sequencer.class create mode 100644 libjava/classpath/lib/javax/sound/midi/ShortMessage.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Soundbank.class create mode 100644 libjava/classpath/lib/javax/sound/midi/SoundbankResource.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Synthesizer.class create mode 100644 libjava/classpath/lib/javax/sound/midi/SysexMessage.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Track.class create mode 100644 libjava/classpath/lib/javax/sound/midi/Transmitter.class create mode 100644 libjava/classpath/lib/javax/sound/midi/VoiceStatus.class create mode 100644 libjava/classpath/lib/javax/sound/midi/spi/MidiDeviceProvider.class create mode 100644 libjava/classpath/lib/javax/sound/midi/spi/MidiFileReader.class create mode 100644 libjava/classpath/lib/javax/sound/midi/spi/MidiFileWriter.class create mode 100644 libjava/classpath/lib/javax/sound/midi/spi/SoundbankReader.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioFileFormat$Type.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioFileFormat.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioFormat.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioInputStream$TargetInputStream.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioInputStream.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioPermission.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/AudioSystem.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/BooleanControl$Type.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/BooleanControl.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Clip.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/CompoundControl.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Control$Type.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Control.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/DataLine.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/EnumControl$Type.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/EnumControl.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/FloatControl$Type.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/FloatControl.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Line$Info.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Line.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/LineEvent$Type.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/LineEvent.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/LineListener.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/LineUnavailableException.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Mixer$Info.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Mixer.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Port$Info.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/Port.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/ReverbType.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/SourceDataLine.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/TargetDataLine.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/UnsupportedAudioFileException.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/spi/AudioFileReader.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/spi/AudioFileWriter.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/spi/FormatConversionProvider.class create mode 100644 libjava/classpath/lib/javax/sound/sampled/spi/MixerProvider.class create mode 100644 libjava/classpath/lib/javax/sql/ConnectionEvent.class create mode 100644 libjava/classpath/lib/javax/sql/ConnectionEventListener.class create mode 100644 libjava/classpath/lib/javax/sql/ConnectionPoolDataSource.class create mode 100644 libjava/classpath/lib/javax/sql/DataSource.class create mode 100644 libjava/classpath/lib/javax/sql/PooledConnection.class create mode 100644 libjava/classpath/lib/javax/sql/RowSet.class create mode 100644 libjava/classpath/lib/javax/sql/RowSetEvent.class create mode 100644 libjava/classpath/lib/javax/sql/RowSetInternal.class create mode 100644 libjava/classpath/lib/javax/sql/RowSetListener.class create mode 100644 libjava/classpath/lib/javax/sql/RowSetMetaData.class create mode 100644 libjava/classpath/lib/javax/sql/RowSetReader.class create mode 100644 libjava/classpath/lib/javax/sql/RowSetWriter.class create mode 100644 libjava/classpath/lib/javax/sql/XAConnection.class create mode 100644 libjava/classpath/lib/javax/sql/XADataSource.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractAction.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractButton$1.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractButton.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractCellEditor.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractListModel.class create mode 100644 libjava/classpath/lib/javax/swing/AbstractSpinnerModel.class create mode 100644 libjava/classpath/lib/javax/swing/Action.class create mode 100644 libjava/classpath/lib/javax/swing/ActionMap.class create mode 100644 libjava/classpath/lib/javax/swing/BorderFactory.class create mode 100644 libjava/classpath/lib/javax/swing/BoundedRangeModel.class create mode 100644 libjava/classpath/lib/javax/swing/Box$AccessibleBox.class create mode 100644 libjava/classpath/lib/javax/swing/Box$Filler$AccessibleBoxFiller.class create mode 100644 libjava/classpath/lib/javax/swing/Box$Filler.class create mode 100644 libjava/classpath/lib/javax/swing/Box.class create mode 100644 libjava/classpath/lib/javax/swing/BoxLayout.class create mode 100644 libjava/classpath/lib/javax/swing/ButtonGroup.class create mode 100644 libjava/classpath/lib/javax/swing/ButtonModel.class create mode 100644 libjava/classpath/lib/javax/swing/CellEditor.class create mode 100644 libjava/classpath/lib/javax/swing/CellRendererPane$AccessibleCellRendererPane.class create mode 100644 libjava/classpath/lib/javax/swing/CellRendererPane.class create mode 100644 libjava/classpath/lib/javax/swing/ComboBoxEditor.class create mode 100644 libjava/classpath/lib/javax/swing/ComboBoxModel.class create mode 100644 libjava/classpath/lib/javax/swing/CompatibilityFocusTraversalPolicy.class create mode 100644 libjava/classpath/lib/javax/swing/ComponentInputMap.class create mode 100644 libjava/classpath/lib/javax/swing/DebugGraphics.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultBoundedRangeModel.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultButtonModel.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultCellEditor$EditorDelegate.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultCellEditor$JCheckBoxDelegate.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultCellEditor$JComboBoxDelegate.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultCellEditor$JTextFieldDelegate.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultCellEditor.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultComboBoxModel.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultDesktopManager.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultFocusManager.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultListCellRenderer$UIResource.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultListCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultListModel.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultListSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/DefaultSingleSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/DesktopManager.class create mode 100644 libjava/classpath/lib/javax/swing/FocusManager$WrappingFocusManager.class create mode 100644 libjava/classpath/lib/javax/swing/FocusManager.class create mode 100644 libjava/classpath/lib/javax/swing/GrayFilter.class create mode 100644 libjava/classpath/lib/javax/swing/Icon.class create mode 100644 libjava/classpath/lib/javax/swing/ImageIcon$1.class create mode 100644 libjava/classpath/lib/javax/swing/ImageIcon$AccessibleImageIcon.class create mode 100644 libjava/classpath/lib/javax/swing/ImageIcon.class create mode 100644 libjava/classpath/lib/javax/swing/InputMap.class create mode 100644 libjava/classpath/lib/javax/swing/InputVerifier.class create mode 100644 libjava/classpath/lib/javax/swing/InternalFrameFocusTraversalPolicy.class create mode 100644 libjava/classpath/lib/javax/swing/JApplet$AccessibleJApplet.class create mode 100644 libjava/classpath/lib/javax/swing/JApplet.class create mode 100644 libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class create mode 100644 libjava/classpath/lib/javax/swing/JButton.class create mode 100644 libjava/classpath/lib/javax/swing/JCheckBox$AccessibleJCheckBox.class create mode 100644 libjava/classpath/lib/javax/swing/JCheckBox.class create mode 100644 libjava/classpath/lib/javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.class create mode 100644 libjava/classpath/lib/javax/swing/JCheckBoxMenuItem.class create mode 100644 libjava/classpath/lib/javax/swing/JColorChooser$AccessibleJColorChooser.class create mode 100644 libjava/classpath/lib/javax/swing/JColorChooser$DefaultOKCancelListener.class create mode 100644 libjava/classpath/lib/javax/swing/JColorChooser$DefaultResetListener.class create mode 100644 libjava/classpath/lib/javax/swing/JColorChooser.class create mode 100644 libjava/classpath/lib/javax/swing/JComboBox$1.class create mode 100644 libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class create mode 100644 libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class create mode 100644 libjava/classpath/lib/javax/swing/JComboBox$KeySelectionManager.class create mode 100644 libjava/classpath/lib/javax/swing/JComboBox.class create mode 100644 libjava/classpath/lib/javax/swing/JComponent$1.class create mode 100644 libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class create mode 100644 libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class create mode 100644 libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class create mode 100644 libjava/classpath/lib/javax/swing/JComponent.class create mode 100644 libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class create mode 100644 libjava/classpath/lib/javax/swing/JDesktopPane.class create mode 100644 libjava/classpath/lib/javax/swing/JDialog$AccessibleJDialog.class create mode 100644 libjava/classpath/lib/javax/swing/JDialog.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$1.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$2.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$AccessibleJEditorPane.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$AccessibleJEditorPaneHTML.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$EditorKitMapping.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$PageLoader.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$PageStream.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane$PlainEditorKit.class create mode 100644 libjava/classpath/lib/javax/swing/JEditorPane.class create mode 100644 libjava/classpath/lib/javax/swing/JFileChooser$1.class create mode 100644 libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class create mode 100644 libjava/classpath/lib/javax/swing/JFileChooser.class create mode 100644 libjava/classpath/lib/javax/swing/JFormattedTextField$AbstractFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/JFormattedTextField$AbstractFormatterFactory.class create mode 100644 libjava/classpath/lib/javax/swing/JFormattedTextField.class create mode 100644 libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class create mode 100644 libjava/classpath/lib/javax/swing/JFrame.class create mode 100644 libjava/classpath/lib/javax/swing/JInternalFrame$AccessibleJInternalFrame.class create mode 100644 libjava/classpath/lib/javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon.class create mode 100644 libjava/classpath/lib/javax/swing/JInternalFrame$JDesktopIcon.class create mode 100644 libjava/classpath/lib/javax/swing/JInternalFrame.class create mode 100644 libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class create mode 100644 libjava/classpath/lib/javax/swing/JLabel.class create mode 100644 libjava/classpath/lib/javax/swing/JLayeredPane$AccessibleJLayeredPane.class create mode 100644 libjava/classpath/lib/javax/swing/JLayeredPane.class create mode 100644 libjava/classpath/lib/javax/swing/JList$1.class create mode 100644 libjava/classpath/lib/javax/swing/JList$2.class create mode 100644 libjava/classpath/lib/javax/swing/JList$3.class create mode 100644 libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class create mode 100644 libjava/classpath/lib/javax/swing/JList$AccessibleJList.class create mode 100644 libjava/classpath/lib/javax/swing/JList$ListListener.class create mode 100644 libjava/classpath/lib/javax/swing/JList.class create mode 100644 libjava/classpath/lib/javax/swing/JMenu$AccessibleJMenu.class create mode 100644 libjava/classpath/lib/javax/swing/JMenu$ActionChangedListener.class create mode 100644 libjava/classpath/lib/javax/swing/JMenu$MenuChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/JMenu$WinListener.class create mode 100644 libjava/classpath/lib/javax/swing/JMenu.class create mode 100644 libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class create mode 100644 libjava/classpath/lib/javax/swing/JMenuBar.class create mode 100644 libjava/classpath/lib/javax/swing/JMenuItem$1.class create mode 100644 libjava/classpath/lib/javax/swing/JMenuItem$AccessibleJMenuItem.class create mode 100644 libjava/classpath/lib/javax/swing/JMenuItem.class create mode 100644 libjava/classpath/lib/javax/swing/JOptionPane$1.class create mode 100644 libjava/classpath/lib/javax/swing/JOptionPane$2.class create mode 100644 libjava/classpath/lib/javax/swing/JOptionPane$AccessibleJOptionPane.class create mode 100644 libjava/classpath/lib/javax/swing/JOptionPane$ValuePropertyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/JOptionPane.class create mode 100644 libjava/classpath/lib/javax/swing/JPanel$AccessibleJPanel.class create mode 100644 libjava/classpath/lib/javax/swing/JPanel.class create mode 100644 libjava/classpath/lib/javax/swing/JPasswordField$AccessibleJPasswordField.class create mode 100644 libjava/classpath/lib/javax/swing/JPasswordField.class create mode 100644 libjava/classpath/lib/javax/swing/JPopupMenu$1.class create mode 100644 libjava/classpath/lib/javax/swing/JPopupMenu$2.class create mode 100644 libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class create mode 100644 libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class create mode 100644 libjava/classpath/lib/javax/swing/JPopupMenu.class create mode 100644 libjava/classpath/lib/javax/swing/JProgressBar$1.class create mode 100644 libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class create mode 100644 libjava/classpath/lib/javax/swing/JProgressBar.class create mode 100644 libjava/classpath/lib/javax/swing/JRadioButton$AccessibleJRadioButton.class create mode 100644 libjava/classpath/lib/javax/swing/JRadioButton.class create mode 100644 libjava/classpath/lib/javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem.class create mode 100644 libjava/classpath/lib/javax/swing/JRadioButtonMenuItem.class create mode 100644 libjava/classpath/lib/javax/swing/JRootPane$AccessibleJRootPane.class create mode 100644 libjava/classpath/lib/javax/swing/JRootPane$RootLayout.class create mode 100644 libjava/classpath/lib/javax/swing/JRootPane.class create mode 100644 libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class create mode 100644 libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/JScrollBar.class create mode 100644 libjava/classpath/lib/javax/swing/JScrollPane$AccessibleJScrollPane.class create mode 100644 libjava/classpath/lib/javax/swing/JScrollPane$ScrollBar.class create mode 100644 libjava/classpath/lib/javax/swing/JScrollPane.class create mode 100644 libjava/classpath/lib/javax/swing/JSeparator$AccessibleJSeparator.class create mode 100644 libjava/classpath/lib/javax/swing/JSeparator.class create mode 100644 libjava/classpath/lib/javax/swing/JSlider$1.class create mode 100644 libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class create mode 100644 libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/JSlider.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner$DateEditor.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner$DateEditorFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner$DefaultEditor.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner$ListEditor.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner$ModelListener.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner$NumberEditor.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner$NumberEditorFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/JSpinner.class create mode 100644 libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class create mode 100644 libjava/classpath/lib/javax/swing/JSplitPane.class create mode 100644 libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class create mode 100644 libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class create mode 100644 libjava/classpath/lib/javax/swing/JTabbedPane$Page.class create mode 100644 libjava/classpath/lib/javax/swing/JTabbedPane.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableCell.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableHeaderCell.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleTableHeader.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$AccessibleJTable.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$BooleanCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$DateCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$DoubleCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$FloatCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$IconCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$NumberCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$TableColumnPropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/JTable$TableTextField.class create mode 100644 libjava/classpath/lib/javax/swing/JTable.class create mode 100644 libjava/classpath/lib/javax/swing/JTextArea$AccessibleJTextArea.class create mode 100644 libjava/classpath/lib/javax/swing/JTextArea.class create mode 100644 libjava/classpath/lib/javax/swing/JTextField$1.class create mode 100644 libjava/classpath/lib/javax/swing/JTextField$2.class create mode 100644 libjava/classpath/lib/javax/swing/JTextField$AccessibleJTextField.class create mode 100644 libjava/classpath/lib/javax/swing/JTextField.class create mode 100644 libjava/classpath/lib/javax/swing/JTextPane.class create mode 100644 libjava/classpath/lib/javax/swing/JToggleButton$AccessibleJToggleButton.class create mode 100644 libjava/classpath/lib/javax/swing/JToggleButton$ToggleButtonModel.class create mode 100644 libjava/classpath/lib/javax/swing/JToggleButton.class create mode 100644 libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class create mode 100644 libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class create mode 100644 libjava/classpath/lib/javax/swing/JToolBar$Separator.class create mode 100644 libjava/classpath/lib/javax/swing/JToolBar.class create mode 100644 libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class create mode 100644 libjava/classpath/lib/javax/swing/JToolTip.class create mode 100644 libjava/classpath/lib/javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode.class create mode 100644 libjava/classpath/lib/javax/swing/JTree$AccessibleJTree.class create mode 100644 libjava/classpath/lib/javax/swing/JTree$DynamicUtilTreeNode.class create mode 100644 libjava/classpath/lib/javax/swing/JTree$EmptySelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/JTree$TreeModelHandler.class create mode 100644 libjava/classpath/lib/javax/swing/JTree$TreeSelectionRedirector.class create mode 100644 libjava/classpath/lib/javax/swing/JTree.class create mode 100644 libjava/classpath/lib/javax/swing/JViewport$AccessibleJViewport.class create mode 100644 libjava/classpath/lib/javax/swing/JViewport$ViewListener.class create mode 100644 libjava/classpath/lib/javax/swing/JViewport.class create mode 100644 libjava/classpath/lib/javax/swing/JWindow$AccessibleJWindow.class create mode 100644 libjava/classpath/lib/javax/swing/JWindow.class create mode 100644 libjava/classpath/lib/javax/swing/KeyStroke.class create mode 100644 libjava/classpath/lib/javax/swing/KeyboardManager.class create mode 100644 libjava/classpath/lib/javax/swing/LayoutFocusTraversalPolicy$LayoutComparator.class create mode 100644 libjava/classpath/lib/javax/swing/LayoutFocusTraversalPolicy.class create mode 100644 libjava/classpath/lib/javax/swing/ListCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/ListModel.class create mode 100644 libjava/classpath/lib/javax/swing/ListSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/LookAndFeel$1.class create mode 100644 libjava/classpath/lib/javax/swing/LookAndFeel.class create mode 100644 libjava/classpath/lib/javax/swing/MenuElement.class create mode 100644 libjava/classpath/lib/javax/swing/MenuSelectionManager.class create mode 100644 libjava/classpath/lib/javax/swing/MutableComboBoxModel.class create mode 100644 libjava/classpath/lib/javax/swing/OverlayLayout.class create mode 100644 libjava/classpath/lib/javax/swing/Popup$JWindowPopup.class create mode 100644 libjava/classpath/lib/javax/swing/Popup$LightweightPopup.class create mode 100644 libjava/classpath/lib/javax/swing/Popup.class create mode 100644 libjava/classpath/lib/javax/swing/PopupFactory.class create mode 100644 libjava/classpath/lib/javax/swing/ProgressMonitor$1.class create mode 100644 libjava/classpath/lib/javax/swing/ProgressMonitor$TimerListener.class create mode 100644 libjava/classpath/lib/javax/swing/ProgressMonitor.class create mode 100644 libjava/classpath/lib/javax/swing/ProgressMonitorInputStream.class create mode 100644 libjava/classpath/lib/javax/swing/Renderer.class create mode 100644 libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class create mode 100644 libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class create mode 100644 libjava/classpath/lib/javax/swing/RepaintManager.class create mode 100644 libjava/classpath/lib/javax/swing/RootPaneContainer.class create mode 100644 libjava/classpath/lib/javax/swing/ScrollPaneConstants.class create mode 100644 libjava/classpath/lib/javax/swing/ScrollPaneLayout$UIResource.class create mode 100644 libjava/classpath/lib/javax/swing/ScrollPaneLayout.class create mode 100644 libjava/classpath/lib/javax/swing/Scrollable.class create mode 100644 libjava/classpath/lib/javax/swing/SingleSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/SizeRequirements.class create mode 100644 libjava/classpath/lib/javax/swing/SizeSequence.class create mode 100644 libjava/classpath/lib/javax/swing/SortingFocusTraversalPolicy.class create mode 100644 libjava/classpath/lib/javax/swing/SpinnerDateModel.class create mode 100644 libjava/classpath/lib/javax/swing/SpinnerListModel.class create mode 100644 libjava/classpath/lib/javax/swing/SpinnerModel.class create mode 100644 libjava/classpath/lib/javax/swing/SpinnerNumberModel.class create mode 100644 libjava/classpath/lib/javax/swing/Spring$1.class create mode 100644 libjava/classpath/lib/javax/swing/Spring$2.class create mode 100644 libjava/classpath/lib/javax/swing/Spring$3.class create mode 100644 libjava/classpath/lib/javax/swing/Spring$AddSpring.class create mode 100644 libjava/classpath/lib/javax/swing/Spring$MaxSpring.class create mode 100644 libjava/classpath/lib/javax/swing/Spring$MinusSpring.class create mode 100644 libjava/classpath/lib/javax/swing/Spring$SimpleSpring.class create mode 100644 libjava/classpath/lib/javax/swing/Spring.class create mode 100644 libjava/classpath/lib/javax/swing/SpringLayout$Constraints.class create mode 100644 libjava/classpath/lib/javax/swing/SpringLayout$DeferredDimension.class create mode 100644 libjava/classpath/lib/javax/swing/SpringLayout$DeferredHeight.class create mode 100644 libjava/classpath/lib/javax/swing/SpringLayout$DeferredSpring.class create mode 100644 libjava/classpath/lib/javax/swing/SpringLayout$DeferredWidth.class create mode 100644 libjava/classpath/lib/javax/swing/SpringLayout.class create mode 100644 libjava/classpath/lib/javax/swing/SwingConstants.class create mode 100644 libjava/classpath/lib/javax/swing/SwingUtilities$OwnerFrame.class create mode 100644 libjava/classpath/lib/javax/swing/SwingUtilities.class create mode 100644 libjava/classpath/lib/javax/swing/Timer$1.class create mode 100644 libjava/classpath/lib/javax/swing/Timer$Task.class create mode 100644 libjava/classpath/lib/javax/swing/Timer.class create mode 100644 libjava/classpath/lib/javax/swing/ToolTipManager$insideTimerAction.class create mode 100644 libjava/classpath/lib/javax/swing/ToolTipManager$outsideTimerAction.class create mode 100644 libjava/classpath/lib/javax/swing/ToolTipManager$stillInsideTimerAction.class create mode 100644 libjava/classpath/lib/javax/swing/ToolTipManager.class create mode 100644 libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class create mode 100644 libjava/classpath/lib/javax/swing/TransferHandler$TransferAction.class create mode 100644 libjava/classpath/lib/javax/swing/TransferHandler.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$1.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$2.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$3.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$4.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$ActiveValue.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$LazyInputMap.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$LazyValue.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults$ProxyLazyValue.class create mode 100644 libjava/classpath/lib/javax/swing/UIDefaults.class create mode 100644 libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class create mode 100644 libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class create mode 100644 libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class create mode 100644 libjava/classpath/lib/javax/swing/UIManager.class create mode 100644 libjava/classpath/lib/javax/swing/UnsupportedLookAndFeelException.class create mode 100644 libjava/classpath/lib/javax/swing/ViewportLayout.class create mode 100644 libjava/classpath/lib/javax/swing/WindowConstants.class create mode 100644 libjava/classpath/lib/javax/swing/border/AbstractBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/BevelBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/Border.class create mode 100644 libjava/classpath/lib/javax/swing/border/CompoundBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/EmptyBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/EtchedBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/LineBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/MatteBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/SoftBevelBorder.class create mode 100644 libjava/classpath/lib/javax/swing/border/TitledBorder.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/AbstractColorChooserPanel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/ColorChooserComponentFactory.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/ColorSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultColorSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$1.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$2.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$ImageScrollListener.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$MainGradientMouseListener.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$RadioStateListener.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$SliderChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultPreviewPanel$PreviewBorder.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultPreviewPanel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel$SliderHandler.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel$SpinnerHandler.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainPanelLayout.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainSwatchPanel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentPanelLayout.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentSwatchPanel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.class create mode 100644 libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel.class create mode 100644 libjava/classpath/lib/javax/swing/event/AncestorEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/AncestorListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/CaretEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/CaretListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/CellEditorListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/ChangeEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/ChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/DocumentEvent$ElementChange.class create mode 100644 libjava/classpath/lib/javax/swing/event/DocumentEvent$EventType.class create mode 100644 libjava/classpath/lib/javax/swing/event/DocumentEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/DocumentListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/EventListenerList.class create mode 100644 libjava/classpath/lib/javax/swing/event/HyperlinkEvent$EventType.class create mode 100644 libjava/classpath/lib/javax/swing/event/HyperlinkEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/HyperlinkListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/InternalFrameAdapter.class create mode 100644 libjava/classpath/lib/javax/swing/event/InternalFrameEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/InternalFrameListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/ListDataEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/ListDataListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/ListSelectionEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/ListSelectionListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/MenuDragMouseEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/MenuDragMouseListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/MenuEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/MenuKeyEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/MenuKeyListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/MenuListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/MouseInputAdapter.class create mode 100644 libjava/classpath/lib/javax/swing/event/MouseInputListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/PopupMenuEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/PopupMenuListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/SwingPropertyChangeSupport.class create mode 100644 libjava/classpath/lib/javax/swing/event/TableColumnModelEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/TableColumnModelListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/TableModelEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/TableModelListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/TreeExpansionEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/TreeExpansionListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/TreeModelEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/TreeModelListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/TreeSelectionEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/TreeSelectionListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/TreeWillExpandListener.class create mode 100644 libjava/classpath/lib/javax/swing/event/UndoableEditEvent.class create mode 100644 libjava/classpath/lib/javax/swing/event/UndoableEditListener.class create mode 100644 libjava/classpath/lib/javax/swing/filechooser/FileFilter.class create mode 100644 libjava/classpath/lib/javax/swing/filechooser/FileSystemView.class create mode 100644 libjava/classpath/lib/javax/swing/filechooser/FileView.class create mode 100644 libjava/classpath/lib/javax/swing/filechooser/UnixFileSystemView.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ActionMapUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource$BevelBorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource$CompoundBorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource$EmptyBorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource$EtchedBorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource$LineBorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource$MatteBorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource$TitledBorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/BorderUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ColorChooserUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ColorUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ComboBoxUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ComponentInputMapUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ComponentUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/DesktopIconUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/DesktopPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/DimensionUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/FileChooserUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/FontUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/IconUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/InputMapUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/InsetsUIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/InternalFrameUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/LabelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ListUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/MenuBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/MenuItemUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/OptionPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/PanelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/PopupMenuUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ProgressBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/RootPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ScrollBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ScrollPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/SeparatorUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/SliderUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/SpinnerUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/SplitPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/TabbedPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/TableHeaderUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/TableUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/TextUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ToolBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ToolTipUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/TreeUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/UIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/ViewportUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicArrowButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$ButtonBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$FieldBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$MarginBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$MenuBarBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$RadioButtonBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$SplitPaneBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$ButtonAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicCheckBoxUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$PreviewListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$TabPaneListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxEditor$UIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxEditor.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ItemHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListDataHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$BoundButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$DesktopIconBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$InternalFrameDefaultMenuIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicEditorPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicFormattedTextFieldUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicHTML$HTMLRootView.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicHTML.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$CheckBoxIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$CheckBoxMenuItemIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$DummyIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$RadioButtonIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PaneButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$ShowSystemMenuAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ActionListenerProxy.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListDataHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListSelectionHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$4.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$5.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$6.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$7.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$AudioAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$PopupHelper.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$ChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$ContainerHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$FocusAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$ClickAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$ItemHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MenuDragMouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MenuKeyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$ChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuDragMouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuKeyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$SelectMenuAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$4.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$OptionPaneCloseAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPanelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPasswordFieldUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$KeyboardHelper.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$NavigateAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$PopupMenuHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$TopWindowListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$AncestorHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$Animator.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$ComponentHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicRadioButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI$DefaultPressAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI$DefaultReleaseAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$4.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$5.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$6.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ModelListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$TrackListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$10.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$4.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$5.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$6.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$7.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$8.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$9.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportContainerListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSeparatorUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$4.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$5.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$6.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ActionScroller.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ComponentHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ScrollListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$TrackListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$4.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$5.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$DefaultLayoutManager.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$BasicOneTouchButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$DragController.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$4.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$5.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$6.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$7.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$8.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigateAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageDownAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageUpAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusForVisibleComponentAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingViewport.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$KeyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$TableAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextAreaUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextFieldUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$BasicCaret.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$BasicHighlighter.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$Handler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$RootView.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToggleButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarSeparatorUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$DockingListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$DragWindow.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$FrameListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$PropertyListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarDialog.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolTipUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicToolTipUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/BasicViewportUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/ComboPopup.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/DefaultMenuLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/basic/SharedUIDefaults.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/DefaultMetalTheme.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ButtonBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$DesktopIconBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$Flush3DBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$InternalFrameBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$MenuBarBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$MenuItemBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$OptionDialogBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$PaletteBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$PopupMenuBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$TableHeaderBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$TextFieldBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ToolBarBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalButtonListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalCheckBoxIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalCheckBoxUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$EditorTextField.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$MetalComboBoxEditorBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$UIResource.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalDesktopIconUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$ButtonLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DetailViewActionListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$IndentIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$ListViewActionListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserPropertyChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserSelectionListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener$EditingActionListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener$EditingActionListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableFileRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$VerticalMidLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$2.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$3.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserDetailViewIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserHomeFolderIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserListViewIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserNewFolderIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserUpFolderIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileIcon16.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FolderIcon16.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameAltMaximizeIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameCloseIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameDefaultMenuIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMaximizeIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMinimizeIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeComputerIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeFloppyDriveIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeHardDriveIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalTitlePaneLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameUI$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalLabelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalLookAndFeel$1.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalLookAndFeel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalMenuBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalProgressBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRadioButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalFrameBorder.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalRootLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$CloseAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$IconifyAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MaximizeAction.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MouseHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$PaneButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollBarUI$MetalScrollBarPropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalSeparatorUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalSliderUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalOneTouchButton.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneDivider.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalTabbedPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalTextFieldUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalTheme.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalToggleButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalToolTipUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalTreeUI$LineStyleListener.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalTreeUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/MetalUtils.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/metal/OceanTheme.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiButtonUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiColorChooserUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiComboBoxUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiDesktopIconUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiDesktopPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiFileChooserUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiInternalFrameUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiLabelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiListUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiLookAndFeel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiMenuBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiMenuItemUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiOptionPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiPanelUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiPopupMenuUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiProgressBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiRootPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiScrollBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiScrollPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiSeparatorUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiSliderUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiSpinnerUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiSplitPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiTabbedPaneUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiTableHeaderUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiTableUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiTextUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiToolBarUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiToolTipUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiTreeUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/multi/MultiViewportUI.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/ColorType.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/Region.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/SynthConstants.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/SynthContext.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/SynthGraphicsUtils.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/SynthLookAndFeel.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/SynthPainter.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/SynthStyle.class create mode 100644 libjava/classpath/lib/javax/swing/plaf/synth/SynthStyleFactory.class create mode 100644 libjava/classpath/lib/javax/swing/table/AbstractTableModel.class create mode 100644 libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class create mode 100644 libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/table/DefaultTableColumnModel.class create mode 100644 libjava/classpath/lib/javax/swing/table/DefaultTableModel.class create mode 100644 libjava/classpath/lib/javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry.class create mode 100644 libjava/classpath/lib/javax/swing/table/JTableHeader$AccessibleJTableHeader.class create mode 100644 libjava/classpath/lib/javax/swing/table/JTableHeader.class create mode 100644 libjava/classpath/lib/javax/swing/table/TableCellEditor.class create mode 100644 libjava/classpath/lib/javax/swing/table/TableCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/table/TableColumn.class create mode 100644 libjava/classpath/lib/javax/swing/table/TableColumnModel.class create mode 100644 libjava/classpath/lib/javax/swing/table/TableModel.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$AttributeContext.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$Content.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractDocument.class create mode 100644 libjava/classpath/lib/javax/swing/text/AbstractWriter.class create mode 100644 libjava/classpath/lib/javax/swing/text/AsyncBoxView$ChildLocator.class create mode 100644 libjava/classpath/lib/javax/swing/text/AsyncBoxView$ChildState.class create mode 100644 libjava/classpath/lib/javax/swing/text/AsyncBoxView$FlushTask.class create mode 100644 libjava/classpath/lib/javax/swing/text/AsyncBoxView.class create mode 100644 libjava/classpath/lib/javax/swing/text/AttributeSet$CharacterAttribute.class create mode 100644 libjava/classpath/lib/javax/swing/text/AttributeSet$ColorAttribute.class create mode 100644 libjava/classpath/lib/javax/swing/text/AttributeSet$FontAttribute.class create mode 100644 libjava/classpath/lib/javax/swing/text/AttributeSet$ParagraphAttribute.class create mode 100644 libjava/classpath/lib/javax/swing/text/AttributeSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/BadLocationException.class create mode 100644 libjava/classpath/lib/javax/swing/text/BoxView.class create mode 100644 libjava/classpath/lib/javax/swing/text/Caret.class create mode 100644 libjava/classpath/lib/javax/swing/text/ChangedCharSetException.class create mode 100644 libjava/classpath/lib/javax/swing/text/ComponentView$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/ComponentView$Interceptor.class create mode 100644 libjava/classpath/lib/javax/swing/text/ComponentView.class create mode 100644 libjava/classpath/lib/javax/swing/text/CompositeView.class create mode 100644 libjava/classpath/lib/javax/swing/text/DateFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultCaret$BlinkTimerListener.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultCaret$Bypass.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultCaret$DocumentHandler.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultCaret$PropertyChangeHandler.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultCaret.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultFormatter$FormatterDocumentFilter.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultFormatterFactory.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultHighlighter$DefaultHighlightPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultHighlighter$HighlightEntry.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultHighlighter$LayerHighlightEntry.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultHighlighter.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class create mode 100644 libjava/classpath/lib/javax/swing/text/DefaultTextUI.class create mode 100644 libjava/classpath/lib/javax/swing/text/Document.class create mode 100644 libjava/classpath/lib/javax/swing/text/DocumentFilter$FilterBypass.class create mode 100644 libjava/classpath/lib/javax/swing/text/DocumentFilter.class create mode 100644 libjava/classpath/lib/javax/swing/text/EditorKit.class create mode 100644 libjava/classpath/lib/javax/swing/text/Element.class create mode 100644 libjava/classpath/lib/javax/swing/text/ElementIterator$ElementRef.class create mode 100644 libjava/classpath/lib/javax/swing/text/ElementIterator.class create mode 100644 libjava/classpath/lib/javax/swing/text/EmptyAttributeSet$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/EmptyAttributeSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/FieldView$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/FieldView.class create mode 100644 libjava/classpath/lib/javax/swing/text/FlowView$FlowStrategy.class create mode 100644 libjava/classpath/lib/javax/swing/text/FlowView$LogicalView.class create mode 100644 libjava/classpath/lib/javax/swing/text/FlowView.class create mode 100644 libjava/classpath/lib/javax/swing/text/GapContent$GapContentPosition.class create mode 100644 libjava/classpath/lib/javax/swing/text/GapContent$InsertUndo.class create mode 100644 libjava/classpath/lib/javax/swing/text/GapContent$Mark.class create mode 100644 libjava/classpath/lib/javax/swing/text/GapContent$UndoPosRef.class create mode 100644 libjava/classpath/lib/javax/swing/text/GapContent$UndoRemove.class create mode 100644 libjava/classpath/lib/javax/swing/text/GapContent.class create mode 100644 libjava/classpath/lib/javax/swing/text/GlyphView$DefaultGlyphPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/GlyphView$GlyphPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/GlyphView$J2DGlyphPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/GlyphView.class create mode 100644 libjava/classpath/lib/javax/swing/text/Highlighter$Highlight.class create mode 100644 libjava/classpath/lib/javax/swing/text/Highlighter$HighlightPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/Highlighter.class create mode 100644 libjava/classpath/lib/javax/swing/text/IconView.class create mode 100644 libjava/classpath/lib/javax/swing/text/InternationalFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class create mode 100644 libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class create mode 100644 libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class create mode 100644 libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class create mode 100644 libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class create mode 100644 libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class create mode 100644 libjava/classpath/lib/javax/swing/text/JTextComponent.class create mode 100644 libjava/classpath/lib/javax/swing/text/Keymap.class create mode 100644 libjava/classpath/lib/javax/swing/text/LabelView.class create mode 100644 libjava/classpath/lib/javax/swing/text/LayeredHighlighter$LayerPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/LayeredHighlighter.class create mode 100644 libjava/classpath/lib/javax/swing/text/LayoutQueue.class create mode 100644 libjava/classpath/lib/javax/swing/text/MaskFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/text/MutableAttributeSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/NavigationFilter$FilterBypass.class create mode 100644 libjava/classpath/lib/javax/swing/text/NavigationFilter.class create mode 100644 libjava/classpath/lib/javax/swing/text/NumberFormatter.class create mode 100644 libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class create mode 100644 libjava/classpath/lib/javax/swing/text/ParagraphView.class create mode 100644 libjava/classpath/lib/javax/swing/text/PasswordView.class create mode 100644 libjava/classpath/lib/javax/swing/text/PlainDocument.class create mode 100644 libjava/classpath/lib/javax/swing/text/PlainView.class create mode 100644 libjava/classpath/lib/javax/swing/text/Position$Bias.class create mode 100644 libjava/classpath/lib/javax/swing/text/Position.class create mode 100644 libjava/classpath/lib/javax/swing/text/Segment.class create mode 100644 libjava/classpath/lib/javax/swing/text/SimpleAttributeSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/StringContent$InsertUndo.class create mode 100644 libjava/classpath/lib/javax/swing/text/StringContent$Mark.class create mode 100644 libjava/classpath/lib/javax/swing/text/StringContent$RemoveUndo.class create mode 100644 libjava/classpath/lib/javax/swing/text/StringContent$StickyPosition.class create mode 100644 libjava/classpath/lib/javax/swing/text/StringContent$UndoPosRef.class create mode 100644 libjava/classpath/lib/javax/swing/text/StringContent.class create mode 100644 libjava/classpath/lib/javax/swing/text/Style.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleConstants$CharacterConstants.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleConstants$ColorConstants.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleConstants$FontConstants.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleConstants$ParagraphConstants.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleConstants.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleContext$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleContext$NamedStyle.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleContext$SimpleFontSpec.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleContext$SmallAttributeSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyleContext.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledDocument.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$AlignmentAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$BoldAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$CaretTracker.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$FontFamilyAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$FontSizeAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$ForegroundAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$ItalicAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$StyledTextAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$StyledViewFactory.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit$UnderlineAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/StyledEditorKit.class create mode 100644 libjava/classpath/lib/javax/swing/text/TabExpander.class create mode 100644 libjava/classpath/lib/javax/swing/text/TabSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/TabStop.class create mode 100644 libjava/classpath/lib/javax/swing/text/TabableView.class create mode 100644 libjava/classpath/lib/javax/swing/text/TableView$TableCell.class create mode 100644 libjava/classpath/lib/javax/swing/text/TableView$TableRow.class create mode 100644 libjava/classpath/lib/javax/swing/text/TableView.class create mode 100644 libjava/classpath/lib/javax/swing/text/TextAction$HorizontalMovementAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/TextAction$VerticalMovementAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/TextAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/Utilities.class create mode 100644 libjava/classpath/lib/javax/swing/text/View.class create mode 100644 libjava/classpath/lib/javax/swing/text/ViewFactory.class create mode 100644 libjava/classpath/lib/javax/swing/text/WrappedPlainView$WrappedLine.class create mode 100644 libjava/classpath/lib/javax/swing/text/WrappedPlainView$WrappedLineCreator.class create mode 100644 libjava/classpath/lib/javax/swing/text/WrappedPlainView.class create mode 100644 libjava/classpath/lib/javax/swing/text/ZoneView$Zone.class create mode 100644 libjava/classpath/lib/javax/swing/text/ZoneView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/BRView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/BlockView$PositionInfo.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/BlockView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/CSS$Attribute.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/CSS.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/CSSBorder.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/CSSParser$CSSParserCallback.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/CSSParser.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FormSubmitEvent$MethodType.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FormSubmitEvent.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FormView$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FormView$MouseEventListener.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FormView$SubmitThread.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FormView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FrameSetView$FrameSetRow.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FrameSetView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/FrameView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HRuleView$Beginning.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HRuleView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTML$Attribute.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTML$Tag.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTML$UnknownTag.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTML.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$BlockElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$AreaAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$BaseAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$ConvertAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$FormAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$FormTagAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$HeadAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$LinkAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$MapAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$MetaAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$PreAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$StyleAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$TagAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$TitleAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$Iterator.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$LeafIterator.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument$RunElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLDocument.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$HTMLFactory.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$HTMLTextAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$LinkController.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$Parser.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$ParserCallback.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLFrameHyperlinkEvent.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ImageView$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ImageView$Observer.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ImageView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/InlineView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ListView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/MultiStyle.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/NullView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ObjectView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/Option.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ParagraphView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ResetableModel.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ResetablePlainDocument.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/SelectComboBoxModel.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/SelectListModel.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/StyleSheet.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/TableView.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/AttributeList$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/ContentModel.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/DTD.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/DTDConstants.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/DocumentParser$gnuParser.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/DocumentParser.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/Element$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/Element.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/Entity.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/Parser$1.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/Parser.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/ParserDelegator$gnuParser.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/ParserDelegator.class create mode 100644 libjava/classpath/lib/javax/swing/text/html/parser/TagElement.class create mode 100644 libjava/classpath/lib/javax/swing/text/rtf/ControlWordToken.class create mode 100644 libjava/classpath/lib/javax/swing/text/rtf/RTFEditorKit.class create mode 100644 libjava/classpath/lib/javax/swing/text/rtf/RTFParseException.class create mode 100644 libjava/classpath/lib/javax/swing/text/rtf/RTFParser.class create mode 100644 libjava/classpath/lib/javax/swing/text/rtf/RTFScanner.class create mode 100644 libjava/classpath/lib/javax/swing/text/rtf/TextToken.class create mode 100644 libjava/classpath/lib/javax/swing/text/rtf/Token.class create mode 100644 libjava/classpath/lib/javax/swing/tree/AbstractLayoutCache$NodeDimensions.class create mode 100644 libjava/classpath/lib/javax/swing/tree/AbstractLayoutCache.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor$DefaultTextField.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor$EditorContainer.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultTreeModel.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class create mode 100644 libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/tree/ExpandVetoException.class create mode 100644 libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class create mode 100644 libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class create mode 100644 libjava/classpath/lib/javax/swing/tree/MutableTreeNode.class create mode 100644 libjava/classpath/lib/javax/swing/tree/RowMapper.class create mode 100644 libjava/classpath/lib/javax/swing/tree/TreeCellEditor.class create mode 100644 libjava/classpath/lib/javax/swing/tree/TreeCellRenderer.class create mode 100644 libjava/classpath/lib/javax/swing/tree/TreeModel.class create mode 100644 libjava/classpath/lib/javax/swing/tree/TreeNode.class create mode 100644 libjava/classpath/lib/javax/swing/tree/TreePath.class create mode 100644 libjava/classpath/lib/javax/swing/tree/TreeSelectionModel.class create mode 100644 libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class create mode 100644 libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class create mode 100644 libjava/classpath/lib/javax/swing/undo/AbstractUndoableEdit.class create mode 100644 libjava/classpath/lib/javax/swing/undo/CannotRedoException.class create mode 100644 libjava/classpath/lib/javax/swing/undo/CannotUndoException.class create mode 100644 libjava/classpath/lib/javax/swing/undo/CompoundEdit.class create mode 100644 libjava/classpath/lib/javax/swing/undo/StateEdit.class create mode 100644 libjava/classpath/lib/javax/swing/undo/StateEditable.class create mode 100644 libjava/classpath/lib/javax/swing/undo/UndoManager.class create mode 100644 libjava/classpath/lib/javax/swing/undo/UndoableEdit.class create mode 100644 libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class create mode 100644 libjava/classpath/lib/javax/transaction/HeuristicCommitException.class create mode 100644 libjava/classpath/lib/javax/transaction/HeuristicMixedException.class create mode 100644 libjava/classpath/lib/javax/transaction/HeuristicRollbackException.class create mode 100644 libjava/classpath/lib/javax/transaction/InvalidTransactionException.class create mode 100644 libjava/classpath/lib/javax/transaction/NotSupportedException.class create mode 100644 libjava/classpath/lib/javax/transaction/RollbackException.class create mode 100644 libjava/classpath/lib/javax/transaction/Status.class create mode 100644 libjava/classpath/lib/javax/transaction/Synchronization.class create mode 100644 libjava/classpath/lib/javax/transaction/SystemException.class create mode 100644 libjava/classpath/lib/javax/transaction/Transaction.class create mode 100644 libjava/classpath/lib/javax/transaction/TransactionManager.class create mode 100644 libjava/classpath/lib/javax/transaction/TransactionRequiredException.class create mode 100644 libjava/classpath/lib/javax/transaction/TransactionRolledbackException.class create mode 100644 libjava/classpath/lib/javax/transaction/UserTransaction.class create mode 100644 libjava/classpath/lib/javax/transaction/xa/XAException.class create mode 100644 libjava/classpath/lib/javax/transaction/xa/XAResource.class create mode 100644 libjava/classpath/lib/javax/transaction/xa/Xid.class create mode 100644 libjava/classpath/lib/javax/xml/XMLConstants.class create mode 100644 libjava/classpath/lib/javax/xml/datatype/DatatypeConfigurationException.class create mode 100644 libjava/classpath/lib/javax/xml/datatype/DatatypeConstants$Field.class create mode 100644 libjava/classpath/lib/javax/xml/datatype/DatatypeConstants.class create mode 100644 libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class create mode 100644 libjava/classpath/lib/javax/xml/datatype/Duration.class create mode 100644 libjava/classpath/lib/javax/xml/datatype/XMLGregorianCalendar.class create mode 100644 libjava/classpath/lib/javax/xml/namespace/NamespaceContext.class create mode 100644 libjava/classpath/lib/javax/xml/namespace/QName.class create mode 100644 libjava/classpath/lib/javax/xml/parsers/DocumentBuilder.class create mode 100644 libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class create mode 100644 libjava/classpath/lib/javax/xml/parsers/FactoryConfigurationError.class create mode 100644 libjava/classpath/lib/javax/xml/parsers/ParserConfigurationException.class create mode 100644 libjava/classpath/lib/javax/xml/parsers/SAXParser.class create mode 100644 libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class create mode 100644 libjava/classpath/lib/javax/xml/stream/EventFilter.class create mode 100644 libjava/classpath/lib/javax/xml/stream/FactoryConfigurationError.class create mode 100644 libjava/classpath/lib/javax/xml/stream/Location.class create mode 100644 libjava/classpath/lib/javax/xml/stream/StreamFilter.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLEventReader.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLEventWriter.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLReporter.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLResolver.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLStreamConstants.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLStreamException.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLStreamReader.class create mode 100644 libjava/classpath/lib/javax/xml/stream/XMLStreamWriter.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/Attribute.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/Characters.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/Comment.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/DTD.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/EndDocument.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/EndElement.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/EntityDeclaration.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/EntityReference.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/Namespace.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/NotationDeclaration.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/ProcessingInstruction.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/StartDocument.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/StartElement.class create mode 100644 libjava/classpath/lib/javax/xml/stream/events/XMLEvent.class create mode 100644 libjava/classpath/lib/javax/xml/stream/util/EventReaderDelegate.class create mode 100644 libjava/classpath/lib/javax/xml/stream/util/ReaderDelegate.class create mode 100644 libjava/classpath/lib/javax/xml/stream/util/XMLEventAllocator.class create mode 100644 libjava/classpath/lib/javax/xml/stream/util/XMLEventConsumer.class create mode 100644 libjava/classpath/lib/javax/xml/transform/ErrorListener.class create mode 100644 libjava/classpath/lib/javax/xml/transform/OutputKeys.class create mode 100644 libjava/classpath/lib/javax/xml/transform/Result.class create mode 100644 libjava/classpath/lib/javax/xml/transform/Source.class create mode 100644 libjava/classpath/lib/javax/xml/transform/SourceLocator.class create mode 100644 libjava/classpath/lib/javax/xml/transform/Templates.class create mode 100644 libjava/classpath/lib/javax/xml/transform/Transformer.class create mode 100644 libjava/classpath/lib/javax/xml/transform/TransformerConfigurationException.class create mode 100644 libjava/classpath/lib/javax/xml/transform/TransformerException.class create mode 100644 libjava/classpath/lib/javax/xml/transform/TransformerFactory.class create mode 100644 libjava/classpath/lib/javax/xml/transform/TransformerFactoryConfigurationError.class create mode 100644 libjava/classpath/lib/javax/xml/transform/URIResolver.class create mode 100644 libjava/classpath/lib/javax/xml/transform/dom/DOMLocator.class create mode 100644 libjava/classpath/lib/javax/xml/transform/dom/DOMResult.class create mode 100644 libjava/classpath/lib/javax/xml/transform/dom/DOMSource.class create mode 100644 libjava/classpath/lib/javax/xml/transform/sax/SAXResult.class create mode 100644 libjava/classpath/lib/javax/xml/transform/sax/SAXSource.class create mode 100644 libjava/classpath/lib/javax/xml/transform/sax/SAXTransformerFactory.class create mode 100644 libjava/classpath/lib/javax/xml/transform/sax/TemplatesHandler.class create mode 100644 libjava/classpath/lib/javax/xml/transform/sax/TransformerHandler.class create mode 100644 libjava/classpath/lib/javax/xml/transform/stream/StreamResult.class create mode 100644 libjava/classpath/lib/javax/xml/transform/stream/StreamSource.class create mode 100644 libjava/classpath/lib/javax/xml/validation/Schema.class create mode 100644 libjava/classpath/lib/javax/xml/validation/SchemaFactory.class create mode 100644 libjava/classpath/lib/javax/xml/validation/SchemaFactoryLoader.class create mode 100644 libjava/classpath/lib/javax/xml/validation/TypeInfoProvider.class create mode 100644 libjava/classpath/lib/javax/xml/validation/Validator.class create mode 100644 libjava/classpath/lib/javax/xml/validation/ValidatorHandler.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPath.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathConstants.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathException.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathExpression.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathExpressionException.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathFactory.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathFactoryConfigurationException.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathFunction.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathFunctionException.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathFunctionResolver.class create mode 100644 libjava/classpath/lib/javax/xml/xpath/XPathVariableResolver.class create mode 100644 libjava/classpath/lib/jazzlib/index.html create mode 100755 libjava/classpath/lib/jazzlib/makeJazzlibDist.sh create mode 100755 libjava/classpath/lib/mkdep.pl.in create mode 100644 libjava/classpath/lib/org/ietf/jgss/ChannelBinding.class create mode 100644 libjava/classpath/lib/org/ietf/jgss/GSSContext.class create mode 100644 libjava/classpath/lib/org/ietf/jgss/GSSCredential.class create mode 100644 libjava/classpath/lib/org/ietf/jgss/GSSException.class create mode 100644 libjava/classpath/lib/org/ietf/jgss/GSSManager.class create mode 100644 libjava/classpath/lib/org/ietf/jgss/GSSName.class create mode 100644 libjava/classpath/lib/org/ietf/jgss/MessageProp.class create mode 100644 libjava/classpath/lib/org/ietf/jgss/Oid.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ACTIVITY_COMPLETED.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ACTIVITY_REQUIRED.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ARG_IN.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ARG_INOUT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ARG_OUT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Any.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/AnyHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/AnySeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/AnySeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_CONTEXT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_INV_ORDER.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_OPERATION.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_PARAM.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_POLICY.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_POLICY_TYPE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_POLICY_VALUE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_QOS.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BAD_TYPECODE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BooleanHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BooleanSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/BooleanSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Bounds.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ByteHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CODESET_INCOMPATIBLE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/COMM_FAILURE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CTX_RESTRICT_SCOPE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CharHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CharSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CharSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CompletionStatus.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CompletionStatusHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Context.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ContextList.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Current.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CurrentHelper$_CurrentStub.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CurrentHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CurrentHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CurrentOperations.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CustomMarshal.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/CustomValue.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DATA_CONVERSION.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DataInputStream.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DataOutputStream.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DefinitionKind.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DefinitionKindHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DomainManager.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DomainManagerOperations.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DoubleHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DoubleSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DoubleSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynAny.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/Invalid.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/InvalidSeq.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/InvalidValue.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/TypeMismatch.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynArray.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynEnum.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynFixed.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynSequence.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynStruct.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynUnion.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynValue.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/DynamicImplementation.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Environment.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ExceptionList.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/FREE_MEM.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/FieldNameHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/FixedHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/FloatHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/FloatSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/FloatSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IDLType.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IDLTypeHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IDLTypeOperations.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IMP_LIMIT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INITIALIZE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INTERNAL.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INTF_REPOS.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INVALID_ACTIVITY.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INVALID_TRANSACTION.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INV_FLAG.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INV_IDENT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INV_OBJREF.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/INV_POLICY.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IRObject.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IRObjectOperations.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IdentifierHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/IntHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/LocalObject.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/LongHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/LongLongSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/LongLongSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/LongSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/LongSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/MARSHAL.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NO_IMPLEMENT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NO_MEMORY.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NO_PERMISSION.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NO_RESOURCES.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NO_RESPONSE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NVList.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NameValuePair.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NameValuePairHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/NamedValue.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/OBJECT_NOT_EXIST.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/OBJ_ADAPTER.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/OMGVMCID.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ORB.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ORBPackage/InconsistentTypeCode.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ORBPackage/InvalidName.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Object.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ObjectHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ObjectHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/OctetSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/OctetSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PERSIST_STORE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PRIVATE_MEMBER.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PUBLIC_MEMBER.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ParameterMode.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ParameterModeHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ParameterModeHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Policy.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyError.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyErrorCodeHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyErrorHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyErrorHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyListHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyListHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PolicyTypeHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Principal.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/PrincipalHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/REBIND.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/RepositoryIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/Request.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ServerRequest.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ServiceDetail.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ServiceDetailHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ServiceInformation.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ServiceInformationHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ServiceInformationHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/SetOverrideType.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/SetOverrideTypeHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ShortHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ShortSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ShortSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/StringHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/StringSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/StringSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/StringValueHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/StructMember.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/StructMemberHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/SystemException.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TCKind.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TIMEOUT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TRANSACTION_MODE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TRANSACTION_REQUIRED.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TRANSACTION_ROLLEDBACK.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TRANSACTION_UNAVAILABLE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TRANSIENT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TypeCode.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TypeCodeHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TypeCodePackage/BadKind.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/TypeCodePackage/Bounds.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ULongLongSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ULongLongSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ULongSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ULongSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UNKNOWN.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UNSUPPORTED_POLICY.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UShortSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UShortSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UnionMember.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UnionMemberHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UnknownUserException.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UnknownUserExceptionHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UnknownUserExceptionHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/UserException.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/VM_ABSTRACT.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/VM_CUSTOM.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/VM_NONE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/VM_TRUNCATABLE.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ValueBaseHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ValueBaseHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ValueMember.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/ValueMemberHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/VersionSpecHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/VisibilityHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WCharSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WCharSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WStringSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WStringSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WStringValueHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WrongTransaction.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WrongTransactionHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/WrongTransactionHolder.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/_IDLTypeStub.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/_PolicyStub.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/ApplicationException.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/BoxedValueHelper.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/CustomValue.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/IDLEntity.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/IndirectionException.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/InvokeHandler.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/OutputStream.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/RemarshalException.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/ResponseHandler.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/ServantObject.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/Streamable.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/StreamableValue.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/UnknownException.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/ValueBase.class create mode 100644 libjava/classpath/lib/org/omg/CORBA/portable/ValueFactory.class create mode 100644 libjava/classpath/lib/org/omg/CORBA_2_3/ORB.class create mode 100644 libjava/classpath/lib/org/omg/CORBA_2_3/portable/Delegate.class create mode 100644 libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class create mode 100644 libjava/classpath/lib/org/omg/CORBA_2_3/portable/ObjectImpl.class create mode 100644 libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/Binding.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingIterator.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingIteratorHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingIteratorHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingIteratorOperations.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingIteratorPOA.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingListHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingListHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingType.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingTypeHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/BindingTypeHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/IstringHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NameComponent.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NameComponentHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NameComponentHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NameHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NameHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContext.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExt.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtOperations.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPOA.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextOperations.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPOA.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBound.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceed.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidName.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmpty.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFound.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundReason.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/_BindingIteratorImplBase.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/_BindingIteratorStub.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/_NamingContextExtImplBase.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/_NamingContextExtStub.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/_NamingContextImplBase.class create mode 100644 libjava/classpath/lib/org/omg/CosNaming/_NamingContextStub.class create mode 100644 libjava/classpath/lib/org/omg/Dynamic/Parameter.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/AnySeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAny.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactory.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/InvalidValue.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynAnySeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynArray.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynArrayHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynArrayOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynEnum.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynEnumHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynEnumOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynFixed.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynFixedHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynFixedOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynSequence.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynSequenceHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynSequenceOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynStruct.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynStructHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynStructOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynUnion.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynUnionHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynUnionOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynValue.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynValueBox.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynValueBoxOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynValueCommon.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynValueCommonOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynValueHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/DynValueOperations.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/FieldNameHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/NameDynAnyPair.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/NameDynAnyPairHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/NameDynAnyPairSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/NameValuePair.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/NameValuePairHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/NameValuePairSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynSequenceStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class create mode 100644 libjava/classpath/lib/org/omg/DynamicAny/_DynValueStub.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodeSets.class create mode 100644 libjava/classpath/lib/org/omg/IOP/Codec.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecFactory.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecFactoryHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecFactoryOperations.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecOperations.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecPackage/FormatMismatch.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecPackage/FormatMismatchHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecPackage/TypeMismatch.class create mode 100644 libjava/classpath/lib/org/omg/IOP/CodecPackage/TypeMismatchHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ComponentIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ENCODING_CDR_ENCAPS.class create mode 100644 libjava/classpath/lib/org/omg/IOP/Encoding.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ExceptionDetailMessage.class create mode 100644 libjava/classpath/lib/org/omg/IOP/IOR.class create mode 100644 libjava/classpath/lib/org/omg/IOP/IORHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/IORHolder.class create mode 100644 libjava/classpath/lib/org/omg/IOP/MultipleComponentProfileHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/MultipleComponentProfileHolder.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ProfileIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/RMICustomMaxStreamFormat.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ServiceContext.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ServiceContextHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ServiceContextHolder.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ServiceContextListHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ServiceContextListHolder.class create mode 100644 libjava/classpath/lib/org/omg/IOP/ServiceIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_CODE_SETS.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_INTERNET_IOP.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_JAVA_CODEBASE.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_MULTIPLE_COMPONENTS.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_ORB_TYPE.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_POLICIES.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TaggedComponent.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TaggedComponentHolder.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TaggedProfile.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TaggedProfileHelper.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TaggedProfileHolder.class create mode 100644 libjava/classpath/lib/org/omg/IOP/TransactionService.class create mode 100644 libjava/classpath/lib/org/omg/Messaging/SYNC_WITH_TRANSPORT.class create mode 100644 libjava/classpath/lib/org/omg/Messaging/SyncScopeHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ACTIVE.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/AdapterManagerIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/AdapterNameHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/AdapterStateHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInfo.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInfoOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInterceptor.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/Current.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/CurrentHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/CurrentOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/DISCARDING.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ForwardRequest.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ForwardRequestHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/HOLDING.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/INACTIVE.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInfo.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInfoOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptorOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/Interceptor.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/InterceptorOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/InvalidSlot.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/InvalidSlotHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/LOCATION_FORWARD.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/NON_EXISTENT.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfo.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitializer.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitializerOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactory.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplate.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/PolicyFactory.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/PolicyFactoryOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/RequestInfo.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/RequestInfoOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/SUCCESSFUL.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ServerIdHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInfo.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInfoOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInterceptor.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/TRANSPORT_RETRY.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/USER_EXCEPTION.class create mode 100644 libjava/classpath/lib/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/AdapterActivator.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/AdapterActivatorOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/Current.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/CurrentHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/CurrentOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/CurrentPackage/NoContext.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/CurrentPackage/NoContextHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/DynamicImplementation.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ForwardRequest.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ForwardRequestHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicyValue.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicyValue.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicyValue.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/LIFESPAN_POLICY_ID.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/LifespanPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/LifespanPolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/LifespanPolicyValue.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POA.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAManager.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAManagerOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/AdapterInactive.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/State.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterNonExistent.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/InvalidPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/NoServant.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/NoServantHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectNotActive.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantAlreadyActive.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantNotActive.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongAdapter.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongAdapterHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongPolicyHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicyValue.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/Servant.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantActivator.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantActivatorHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantActivatorOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantActivatorPOA$delegator.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantActivatorPOA.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantLocator.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantLocatorHelper.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantLocatorOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantLocatorPOA$delegator.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantLocatorPOA.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantManager.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantManagerOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicyValue.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/THREAD_POLICY_ID.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ThreadPolicy.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ThreadPolicyOperations.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/ThreadPolicyValue.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class create mode 100644 libjava/classpath/lib/org/omg/PortableServer/portable/Delegate.class create mode 100644 libjava/classpath/lib/org/omg/SendingContext/RunTime.class create mode 100644 libjava/classpath/lib/org/omg/SendingContext/RunTimeOperations.class create mode 100644 libjava/classpath/lib/org/omg/stub/java/rmi/_Remote_Stub.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/Datatype.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/DatatypeBuilder.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/DatatypeException.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/DatatypeLibrary.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/DatatypeLibraryFactory.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/DatatypeStreamingValidator.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/ValidationContext.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader2.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$ProviderEnumeration.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Singleton.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.class create mode 100644 libjava/classpath/lib/org/relaxng/datatype/helpers/StreamingValidatorImpl.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Attr.class create mode 100644 libjava/classpath/lib/org/w3c/dom/CDATASection.class create mode 100644 libjava/classpath/lib/org/w3c/dom/CharacterData.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Comment.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMConfiguration.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMError.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMErrorHandler.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMException.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMImplementation.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMImplementationList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMImplementationSource.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMLocator.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DOMStringList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Document.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DocumentFragment.class create mode 100644 libjava/classpath/lib/org/w3c/dom/DocumentType.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Element.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Entity.class create mode 100644 libjava/classpath/lib/org/w3c/dom/EntityReference.class create mode 100644 libjava/classpath/lib/org/w3c/dom/NameList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/NamedNodeMap.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Node.class create mode 100644 libjava/classpath/lib/org/w3c/dom/NodeList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Notation.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ProcessingInstruction.class create mode 100644 libjava/classpath/lib/org/w3c/dom/Text.class create mode 100644 libjava/classpath/lib/org/w3c/dom/TypeInfo.class create mode 100644 libjava/classpath/lib/org/w3c/dom/UserDataHandler.class create mode 100644 libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$1.class create mode 100644 libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$2.class create mode 100644 libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$3.class create mode 100644 libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$4.class create mode 100644 libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSS2Properties.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSCharsetRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSFontFaceRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSImportRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSMediaRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSPageRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSPrimitiveValue.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSRuleList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSStyleDeclaration.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSStyleRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSStyleSheet.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSUnknownRule.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSValue.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/CSSValueList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/Counter.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/DOMImplementationCSS.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/DocumentCSS.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/ElementCSSInlineStyle.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/RGBColor.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/Rect.class create mode 100644 libjava/classpath/lib/org/w3c/dom/css/ViewCSS.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/DocumentEvent.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/Event.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/EventException.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/EventListener.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/EventTarget.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/MouseEvent.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/MutationEvent.class create mode 100644 libjava/classpath/lib/org/w3c/dom/events/UIEvent.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLAnchorElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLAppletElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLAreaElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLBRElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLBaseElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLBaseFontElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLBodyElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLButtonElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLCollection.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLDListElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLDirectoryElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLDivElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLDocument.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLFieldSetElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLFontElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLFormElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLFrameElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLFrameSetElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLHRElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLHeadElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLHeadingElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLHtmlElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLIFrameElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLImageElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLInputElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLIsIndexElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLLIElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLLabelElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLLegendElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLLinkElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLMapElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLMenuElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLMetaElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLModElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLOListElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLObjectElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLOptGroupElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLOptionElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLOptionsCollection.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLParagraphElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLParamElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLPreElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLQuoteElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLScriptElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLSelectElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLStyleElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTableCaptionElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTableCellElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTableColElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTableElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTableRowElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTableSectionElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTextAreaElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLTitleElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/html2/HTMLUListElement.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/DOMImplementationLS.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSException.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSInput.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSLoadEvent.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSOutput.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSParser.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSParserFilter.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSProgressEvent.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSResourceResolver.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSSerializer.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ls/LSSerializerFilter.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ranges/DocumentRange.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ranges/Range.class create mode 100644 libjava/classpath/lib/org/w3c/dom/ranges/RangeException.class create mode 100644 libjava/classpath/lib/org/w3c/dom/stylesheets/DocumentStyle.class create mode 100644 libjava/classpath/lib/org/w3c/dom/stylesheets/LinkStyle.class create mode 100644 libjava/classpath/lib/org/w3c/dom/stylesheets/MediaList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/stylesheets/StyleSheet.class create mode 100644 libjava/classpath/lib/org/w3c/dom/stylesheets/StyleSheetList.class create mode 100644 libjava/classpath/lib/org/w3c/dom/traversal/DocumentTraversal.class create mode 100644 libjava/classpath/lib/org/w3c/dom/traversal/NodeFilter.class create mode 100644 libjava/classpath/lib/org/w3c/dom/traversal/NodeIterator.class create mode 100644 libjava/classpath/lib/org/w3c/dom/traversal/TreeWalker.class create mode 100644 libjava/classpath/lib/org/w3c/dom/views/AbstractView.class create mode 100644 libjava/classpath/lib/org/w3c/dom/views/DocumentView.class create mode 100644 libjava/classpath/lib/org/w3c/dom/xpath/XPathEvaluator.class create mode 100644 libjava/classpath/lib/org/w3c/dom/xpath/XPathException.class create mode 100644 libjava/classpath/lib/org/w3c/dom/xpath/XPathExpression.class create mode 100644 libjava/classpath/lib/org/w3c/dom/xpath/XPathNSResolver.class create mode 100644 libjava/classpath/lib/org/w3c/dom/xpath/XPathNamespace.class create mode 100644 libjava/classpath/lib/org/w3c/dom/xpath/XPathResult.class create mode 100644 libjava/classpath/lib/org/xml/sax/AttributeList.class create mode 100644 libjava/classpath/lib/org/xml/sax/Attributes.class create mode 100644 libjava/classpath/lib/org/xml/sax/ContentHandler.class create mode 100644 libjava/classpath/lib/org/xml/sax/DTDHandler.class create mode 100644 libjava/classpath/lib/org/xml/sax/DocumentHandler.class create mode 100644 libjava/classpath/lib/org/xml/sax/EntityResolver.class create mode 100644 libjava/classpath/lib/org/xml/sax/ErrorHandler.class create mode 100644 libjava/classpath/lib/org/xml/sax/HandlerBase.class create mode 100644 libjava/classpath/lib/org/xml/sax/InputSource.class create mode 100644 libjava/classpath/lib/org/xml/sax/Locator.class create mode 100644 libjava/classpath/lib/org/xml/sax/Parser.class create mode 100644 libjava/classpath/lib/org/xml/sax/SAXException.class create mode 100644 libjava/classpath/lib/org/xml/sax/SAXNotRecognizedException.class create mode 100644 libjava/classpath/lib/org/xml/sax/SAXNotSupportedException.class create mode 100644 libjava/classpath/lib/org/xml/sax/SAXParseException.class create mode 100644 libjava/classpath/lib/org/xml/sax/XMLFilter.class create mode 100644 libjava/classpath/lib/org/xml/sax/XMLReader.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/Attributes2.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/Attributes2Impl.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/DeclHandler.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/DefaultHandler2.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/EntityResolver2.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/LexicalHandler.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/Locator2.class create mode 100644 libjava/classpath/lib/org/xml/sax/ext/Locator2Impl.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/AttributeListImpl.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/AttributesImpl.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/DefaultHandler.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/LocatorImpl.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/NamespaceSupport$Context.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/NamespaceSupport.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/NewInstance.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/ParserAdapter.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/ParserFactory.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/XMLFilterImpl.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/XMLReaderAdapter.class create mode 100644 libjava/classpath/lib/org/xml/sax/helpers/XMLReaderFactory.class delete mode 100644 libjava/classpath/lib/standard.omit create mode 100644 libjava/classpath/lib/sun/misc/Service.class create mode 100644 libjava/classpath/lib/sun/misc/ServiceConfigurationError.class create mode 100644 libjava/classpath/lib/sun/misc/Unsafe.class create mode 100644 libjava/classpath/lib/sun/reflect/Reflection.class create mode 100644 libjava/classpath/lib/sun/reflect/annotation/AnnotationInvocationHandler.class create mode 100644 libjava/classpath/lib/sun/reflect/annotation/AnnotationParser.class create mode 100644 libjava/classpath/lib/sun/reflect/annotation/AnnotationType.class create mode 100644 libjava/classpath/lib/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.class create mode 100644 libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class create mode 100644 libjava/classpath/lib/sun/reflect/misc/ReflectUtil$MustBeNull.class create mode 100644 libjava/classpath/lib/sun/reflect/misc/ReflectUtil.class create mode 100644 libjava/classpath/m4/gcc_attribute.m4 create mode 100644 libjava/classpath/native/.cvsignore create mode 100644 libjava/classpath/native/fdlibm/.cvsignore create mode 100644 libjava/classpath/native/jni/.cvsignore create mode 100644 libjava/classpath/native/jni/classpath/.cvsignore create mode 100644 libjava/classpath/native/jni/gconf-peer/.cvsignore create mode 100644 libjava/classpath/native/jni/java-io/.cvsignore create mode 100644 libjava/classpath/native/jni/java-lang/.cvsignore create mode 100644 libjava/classpath/native/jni/java-net/.cvsignore delete mode 100644 libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c rewrite libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c (72%) create mode 100644 libjava/classpath/native/jni/java-nio/.cvsignore create mode 100644 libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c create mode 100644 libjava/classpath/native/jni/java-nio/gnu_java_nio_KqueueSelectorImpl.c delete mode 100644 libjava/classpath/native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c create mode 100644 libjava/classpath/native/jni/java-nio/javanio.c create mode 100644 libjava/classpath/native/jni/java-nio/javanio.h create mode 100644 libjava/classpath/native/jni/java-util/.cvsignore create mode 100644 libjava/classpath/native/jni/midi-alsa/.cvsignore create mode 100644 libjava/classpath/native/jni/midi-dssi/.cvsignore create mode 100644 libjava/classpath/native/jni/native-lib/.cvsignore create mode 100644 libjava/classpath/native/jni/native-lib/Makefile.am create mode 100644 libjava/classpath/native/jni/native-lib/Makefile.in create mode 100644 libjava/classpath/native/jni/native-lib/cpio.c create mode 100644 libjava/classpath/native/jni/native-lib/cpio.h create mode 100644 libjava/classpath/native/jni/native-lib/cpnative.h create mode 100644 libjava/classpath/native/jni/native-lib/cpnet.c create mode 100644 libjava/classpath/native/jni/native-lib/cpnet.h create mode 100644 libjava/classpath/native/jni/native-lib/cpproc.c create mode 100644 libjava/classpath/native/jni/native-lib/cpproc.h create mode 100644 libjava/classpath/native/jni/xmlj/.cvsignore delete mode 100644 libjava/classpath/native/target/Linux/Makefile.am delete mode 100644 libjava/classpath/native/target/Linux/Makefile.in delete mode 100644 libjava/classpath/native/target/Linux/target_native.h delete mode 100644 libjava/classpath/native/target/Linux/target_native_file.h delete mode 100644 libjava/classpath/native/target/Linux/target_native_io.h delete mode 100644 libjava/classpath/native/target/Linux/target_native_math_float.h delete mode 100644 libjava/classpath/native/target/Linux/target_native_math_int.h delete mode 100644 libjava/classpath/native/target/Linux/target_native_misc.h delete mode 100644 libjava/classpath/native/target/Linux/target_native_network.h delete mode 100644 libjava/classpath/native/target/Makefile.am delete mode 100644 libjava/classpath/native/target/Makefile.in delete mode 100644 libjava/classpath/native/target/generic/Makefile.am delete mode 100644 libjava/classpath/native/target/generic/Makefile.in delete mode 100644 libjava/classpath/native/target/generic/target_generic.h delete mode 100644 libjava/classpath/native/target/generic/target_generic_file.h delete mode 100644 libjava/classpath/native/target/generic/target_generic_io.h delete mode 100644 libjava/classpath/native/target/generic/target_generic_math_float.h delete mode 100644 libjava/classpath/native/target/generic/target_generic_math_int.h delete mode 100644 libjava/classpath/native/target/generic/target_generic_misc.h delete mode 100644 libjava/classpath/native/target/generic/target_generic_network.h delete mode 100644 libjava/classpath/native/target/readme.txt create mode 100644 libjava/classpath/resource/.cvsignore create mode 100644 libjava/classpath/resource/META-INF/services/.cvsignore delete mode 100644 libjava/classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory delete mode 100644 libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties delete mode 100644 libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties create mode 100644 libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties create mode 100644 libjava/classpath/scripts/.cvsignore create mode 100644 libjava/classpath/scripts/build_mathnamespace create mode 100644 libjava/classpath/scripts/checkstyle-config.xml create mode 100644 libjava/classpath/scripts/checkstyle-header.regex create mode 100644 libjava/classpath/scripts/checkstyle-suppressions.xml create mode 100644 libjava/classpath/scripts/checkstyle.css create mode 100644 libjava/classpath/scripts/checkstyle2html.xsl create mode 100755 libjava/classpath/scripts/classpath-build create mode 100755 libjava/classpath/scripts/classpath-daily create mode 100644 libjava/classpath/scripts/eclipse-gnu.xml create mode 100644 libjava/classpath/scripts/jalopy-gnu.xml create mode 100755 libjava/classpath/scripts/japi create mode 100755 libjava/classpath/scripts/kissme-mauve create mode 100755 libjava/classpath/scripts/loc create mode 100644 libjava/classpath/scripts/math_symbols create mode 100755 libjava/classpath/scripts/patches.pl create mode 100755 libjava/classpath/scripts/sanitize-jsr166 create mode 100755 libjava/classpath/scripts/timezones.pl create mode 100644 libjava/classpath/scripts/tzabbrevs create mode 100755 libjava/classpath/scripts/unicode-blocks.pl create mode 100755 libjava/classpath/scripts/unicode-muncher.pl create mode 100644 libjava/classpath/sun/misc/Service.java create mode 100644 libjava/classpath/sun/misc/ServiceConfigurationError.java create mode 100644 libjava/classpath/sun/reflect/annotation/AnnotationParser.java create mode 100644 libjava/classpath/sun/reflect/annotation/AnnotationType.java create mode 100644 libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java create mode 100644 libjava/classpath/sun/reflect/annotation/ExceptionProxy.java rewrite libjava/classpath/tools/Makefile.am (72%) create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/AnnotationVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/AnnotationWriter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Attribute.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ByteVector.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassReader.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/ClassWriter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Edge.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/FieldVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/FieldWriter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Handler.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Item.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Label.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/MethodAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/MethodVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/MethodWriter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Opcodes.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/Type.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapAttribute.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapFrame.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapTableAttribute.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapType.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/AdviceAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/EmptyVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/GeneratorAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/LocalVariablesSorter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/Method.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder$Item.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/StaticInitMerger.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/commons/TableSwitchGenerator.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassOptimizer.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Constant.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ConstantPool.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/JarOptimizer.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodOptimizer.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/NameMapping.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker$ConstantComparator.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureReader.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureWriter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/AbstractInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/AnnotationNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/ClassNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/IincInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/InnerClassNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/InsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/IntInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/JumpInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LabelNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LdcInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LineNumberNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LocalVariableNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MemberNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode$1.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/TableSwitchInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/TryCatchBlockNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/TypeInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/VarInsnNode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Analyzer.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/AnalyzerException.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicValue.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicVerifier.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowValue.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Frame.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/IntMap.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Interpreter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SmallSet.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Subroutine.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Value.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierClassVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierFieldVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierMethodVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/AbstractVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckAnnotationAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckClassAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckFieldAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/CheckMethodAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAbstractVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAnnotationVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceClassVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceFieldVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceMethodVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/TraceSignatureVisitor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMifiable.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/Traceable.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationDefaultRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationParameterRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueAnnotationRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueArrayRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueEnumRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ClassRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionsRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$FieldRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InnerClassRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfaceRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfacesRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LabelRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LineNumberRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LocalVarRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchLabelRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MaxRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MethodRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Opcode.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodeGroup.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodesRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OuterClassRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Rule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$RuleSet.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$SourceRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchLabelRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TryCatchRule.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ASMContentHandlerFactory.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ContentHandlerFactory.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$EntryElement.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$InputSlicingHandler.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$OutputSlicingHandler.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ProtectedInputStream.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriterFactory.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SingleDocElement.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SubdocumentHandlerFactory.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$TransformerHandlerFactory.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ZipEntryElement.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXClassAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXCodeAdapter.class create mode 100644 libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXFieldAdapter.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletClassLoader.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletSecurityManager.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletTag.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletContext.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletStub.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/ErrorApplet.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletContext.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletViewer.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletContext.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/TagParser.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/CallbackUtil.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent$ExitTask.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/common/SecurityProviderInfo.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/FileArgumentCallback.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Option.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionGroup.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Lister.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$HandleFile.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$JarParser.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$ModeOption.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jar/WorkSet.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/HashUtils.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarSigner.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarVerifier.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$11.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$12.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParser.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParserCallback.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/SFHelper.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/FieldHelper.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PackageWrapper.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/javah/Text.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command$ShutdownHook.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$11.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$12.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$NoParseOption.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$ShutdownHook.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$HandleFile.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/AbstractMethodGenerator.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmicBackend.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmic/WrapUnWrapper.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$AdaptedReader.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$WriteToDiskTask.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$4.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$5.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$6.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable$WriteToDiskTask.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/Messages.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class create mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Messages.class create mode 100644 libjava/classpath/tools/external/README create mode 100644 libjava/classpath/tools/external/asm/LICENSE.txt create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/commons/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/signature/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/tree/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckFieldAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/util/package.html create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/asm-xml.dtd create mode 100644 libjava/classpath/tools/external/asm/org/objectweb/asm/xml/package.html create mode 100644 libjava/classpath/tools/gjavah.in delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/AbstractMethodGenerator.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/HelpPrinter.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletWarning.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/appletviewer/Messages.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/Messages.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/getopt/package.html delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.txt delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.txt delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/NameService.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.txt delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/NamingService.txt delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/README delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/grmic/CompilationError.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/grmic/Generator.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopIo.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/grmic/HashFinder.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentContext.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentContextMap.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentMap.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/FieldHelper.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/PackageWrapper.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Printer.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/javah/Text.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/Messages.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/Persistent.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentHashTable.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.txt delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.txt delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.txt delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmicCompiler.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/WrapUnWrapper.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl.java delete mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Messages.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/templates/ImplTie.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/templates/Stub.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/templates/StubMethod.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/templates/StubMethodVoid.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi => }/rmic/templates/Stub_12.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi => }/rmic/templates/Stub_12Method.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi => }/rmic/templates/Stub_12MethodVoid.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/templates/Tie.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/templates/TieMethod.jav (100%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/templates/TieMethodVoid.jav (100%) create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/Messages.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Messages.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/tnameserv/Messages.java create mode 100644 libjava/classpath/tools/gorbd.in create mode 100644 libjava/classpath/tools/grmic.in create mode 100644 libjava/classpath/tools/grmid.in create mode 100644 libjava/classpath/tools/grmiregistry.in create mode 100644 libjava/classpath/tools/gtnameserv.in create mode 100644 libjava/classpath/vm/.cvsignore create mode 100644 libjava/classpath/vm/reference/.cvsignore rewrite libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java (72%) create mode 100644 libjava/gnu/CORBA/Asynchron.h create mode 100644 libjava/gnu/CORBA/BigDecimalHelper.h create mode 100644 libjava/gnu/CORBA/ByteArrayComparator.h create mode 100644 libjava/gnu/CORBA/CDR/AbstractCdrInput.h create mode 100644 libjava/gnu/CORBA/CDR/AbstractCdrOutput.h create mode 100644 libjava/gnu/CORBA/CDR/AbstractDataInput.h create mode 100644 libjava/gnu/CORBA/CDR/AbstractDataOutput.h create mode 100644 libjava/gnu/CORBA/CDR/AligningInput.h create mode 100644 libjava/gnu/CORBA/CDR/AligningOutput.h create mode 100644 libjava/gnu/CORBA/CDR/ArrayValueHelper.h create mode 100644 libjava/gnu/CORBA/CDR/BigEndianInputStream.h create mode 100644 libjava/gnu/CORBA/CDR/BigEndianOutputStream.h create mode 100644 libjava/gnu/CORBA/CDR/BufferedCdrOutput.h create mode 100644 libjava/gnu/CORBA/CDR/BufferredCdrInput.h create mode 100644 libjava/gnu/CORBA/CDR/EncapsulationStream.h create mode 100644 libjava/gnu/CORBA/CDR/HeadlessInput.h create mode 100644 libjava/gnu/CORBA/CDR/IDLTypeHelper.h create mode 100644 libjava/gnu/CORBA/CDR/LittleEndianInputStream.h create mode 100644 libjava/gnu/CORBA/CDR/LittleEndianOutputStream.h create mode 100644 libjava/gnu/CORBA/CDR/UnknownExceptionCtxHandler.h create mode 100644 libjava/gnu/CORBA/CDR/VMVio.h create mode 100644 libjava/gnu/CORBA/CDR/Vio.h create mode 100644 libjava/gnu/CORBA/CDR/gnuRuntime$1.h create mode 100644 libjava/gnu/CORBA/CDR/gnuRuntime$Entry.h create mode 100644 libjava/gnu/CORBA/CDR/gnuRuntime$Redirection.h create mode 100644 libjava/gnu/CORBA/CDR/gnuRuntime.h create mode 100644 libjava/gnu/CORBA/CDR/gnuValueStream.h create mode 100644 libjava/gnu/CORBA/CdrEncapsCodecImpl.h create mode 100644 libjava/gnu/CORBA/CollocatedOrbs.h create mode 100644 libjava/gnu/CORBA/Connected_objects$cObject.h create mode 100644 libjava/gnu/CORBA/Connected_objects.h create mode 100644 libjava/gnu/CORBA/CorbaList.h create mode 100644 libjava/gnu/CORBA/DefaultSocketFactory.h create mode 100644 libjava/gnu/CORBA/DefinitionKindHolder.h create mode 100644 libjava/gnu/CORBA/DuplicateNameHolder.h create mode 100644 libjava/gnu/CORBA/DynAn/AbstractAny.h create mode 100644 libjava/gnu/CORBA/DynAn/DivideableAny.h create mode 100644 libjava/gnu/CORBA/DynAn/NameValuePairHolder.h create mode 100644 libjava/gnu/CORBA/DynAn/RecordAny.h delete mode 100644 libjava/gnu/CORBA/DynAn/RecordAny.java create mode 100644 libjava/gnu/CORBA/DynAn/UndivideableAny.h create mode 100644 libjava/gnu/CORBA/DynAn/ValueChangeListener.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynAny.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynAnyFactory.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynArray.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynEnum.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynFixed.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynSequence.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynStruct.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynUnion.h create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynValue.h delete mode 100644 libjava/gnu/CORBA/DynAn/gnuDynValue.java create mode 100644 libjava/gnu/CORBA/DynAn/gnuDynValueBox.h create mode 100644 libjava/gnu/CORBA/DynAnySeqHolder.h create mode 100644 libjava/gnu/CORBA/EmptyExceptionHolder.h create mode 100644 libjava/gnu/CORBA/ForwardRequestHelper.h create mode 100644 libjava/gnu/CORBA/GIOP/CancelHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/CharSets_OSF.h create mode 100644 libjava/gnu/CORBA/GIOP/CloseMessage.h create mode 100644 libjava/gnu/CORBA/GIOP/CodeSetServiceContext.h create mode 100644 libjava/gnu/CORBA/GIOP/ContextHandler.h create mode 100644 libjava/gnu/CORBA/GIOP/ErrorMessage.h create mode 100644 libjava/gnu/CORBA/GIOP/MessageHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/ReplyHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/RequestHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/ServiceContext.h create mode 100644 libjava/gnu/CORBA/GIOP/v1_0/CancelHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/v1_0/ReplyHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/v1_0/RequestHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/v1_2/ReplyHeader.h create mode 100644 libjava/gnu/CORBA/GIOP/v1_2/RequestHeader.h create mode 100644 libjava/gnu/CORBA/GeneralHolder.h create mode 100644 libjava/gnu/CORBA/HolderLocator.h create mode 100644 libjava/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.h create mode 100644 libjava/gnu/CORBA/IOR$CodeSets_profile.h create mode 100644 libjava/gnu/CORBA/IOR$Internet_profile.h create mode 100644 libjava/gnu/CORBA/IOR.h create mode 100644 libjava/gnu/CORBA/Interceptor/ClientRequestInterceptors.h create mode 100644 libjava/gnu/CORBA/Interceptor/ForwardRequestHolder.h create mode 100644 libjava/gnu/CORBA/Interceptor/IORInterceptors.h create mode 100644 libjava/gnu/CORBA/Interceptor/Registrator.h create mode 100644 libjava/gnu/CORBA/Interceptor/ServerRequestInterceptors.h create mode 100644 libjava/gnu/CORBA/Interceptor/gnuClientRequestInfo.h create mode 100644 libjava/gnu/CORBA/Interceptor/gnuIcCurrent.h create mode 100644 libjava/gnu/CORBA/Interceptor/gnuIorInfo.h create mode 100644 libjava/gnu/CORBA/Interceptor/gnuServerRequestInfo.h create mode 100644 libjava/gnu/CORBA/IorDelegate.h create mode 100644 libjava/gnu/CORBA/IorObject.h create mode 100644 libjava/gnu/CORBA/IorProvider.h create mode 100644 libjava/gnu/CORBA/Minor.h create mode 100644 libjava/gnu/CORBA/NameDynAnyPairHolder.h create mode 100644 libjava/gnu/CORBA/NameDynAnyPairSeqHolder.h create mode 100644 libjava/gnu/CORBA/NameValuePairHolder.h create mode 100644 libjava/gnu/CORBA/NameValuePairSeqHolder.h create mode 100644 libjava/gnu/CORBA/NamingService/Binding_iterator_impl.h create mode 100644 libjava/gnu/CORBA/NamingService/Ext.h create mode 100644 libjava/gnu/CORBA/NamingService/NameComponentComparator.h create mode 100644 libjava/gnu/CORBA/NamingService/NameParser.h create mode 100644 libjava/gnu/CORBA/NamingService/NameTransformer.h create mode 100644 libjava/gnu/CORBA/NamingService/NameValidator.h create mode 100644 libjava/gnu/CORBA/NamingService/NamingMap.h create mode 100644 libjava/gnu/CORBA/NamingService/NamingServiceTransient$1.h create mode 100644 libjava/gnu/CORBA/NamingService/NamingServiceTransient.h create mode 100644 libjava/gnu/CORBA/NamingService/TransientContext.h create mode 100644 libjava/gnu/CORBA/ObjectCreator.h delete mode 100644 libjava/gnu/CORBA/ObjectCreator.java create mode 100644 libjava/gnu/CORBA/OctetHolder.h create mode 100644 libjava/gnu/CORBA/OrbFocused.h create mode 100644 libjava/gnu/CORBA/OrbFunctional$1.h create mode 100644 libjava/gnu/CORBA/OrbFunctional$2.h create mode 100644 libjava/gnu/CORBA/OrbFunctional$portServer.h create mode 100644 libjava/gnu/CORBA/OrbFunctional$sharedPortServer.h create mode 100644 libjava/gnu/CORBA/OrbFunctional.h create mode 100644 libjava/gnu/CORBA/OrbRestricted.h create mode 100644 libjava/gnu/CORBA/Poa/AOM$Obj.h create mode 100644 libjava/gnu/CORBA/Poa/AOM.h create mode 100644 libjava/gnu/CORBA/Poa/AccessiblePolicy.h create mode 100644 libjava/gnu/CORBA/Poa/DynamicImpHandler.h create mode 100644 libjava/gnu/CORBA/Poa/ForwardRequestHolder.h create mode 100644 libjava/gnu/CORBA/Poa/ForwardedServant.h create mode 100644 libjava/gnu/CORBA/Poa/InvalidPolicyHolder.h create mode 100644 libjava/gnu/CORBA/Poa/LocalDelegate.h create mode 100644 libjava/gnu/CORBA/Poa/LocalRequest.h create mode 100644 libjava/gnu/CORBA/Poa/LocalServerRequest.h create mode 100644 libjava/gnu/CORBA/Poa/ORB_1_4.h create mode 100644 libjava/gnu/CORBA/Poa/ServantDelegateImpl.h create mode 100644 libjava/gnu/CORBA/Poa/StandardPolicies.h create mode 100644 libjava/gnu/CORBA/Poa/gnuAdapterActivator.h create mode 100644 libjava/gnu/CORBA/Poa/gnuForwardRequest.h create mode 100644 libjava/gnu/CORBA/Poa/gnuIdAssignmentPolicy.h create mode 100644 libjava/gnu/CORBA/Poa/gnuIdUniquenessPolicy.h create mode 100644 libjava/gnu/CORBA/Poa/gnuImplicitActivationPolicy.h create mode 100644 libjava/gnu/CORBA/Poa/gnuLifespanPolicy.h create mode 100644 libjava/gnu/CORBA/Poa/gnuPOA$RefTemplate.h create mode 100644 libjava/gnu/CORBA/Poa/gnuPOA.h create mode 100644 libjava/gnu/CORBA/Poa/gnuPOAManager.h create mode 100644 libjava/gnu/CORBA/Poa/gnuPoaCurrent.h create mode 100644 libjava/gnu/CORBA/Poa/gnuRequestProcessingPolicy.h create mode 100644 libjava/gnu/CORBA/Poa/gnuServantObject.h create mode 100644 libjava/gnu/CORBA/Poa/gnuServantRetentionPolicy.h create mode 100644 libjava/gnu/CORBA/Poa/gnuThreadPolicy.h create mode 100644 libjava/gnu/CORBA/RawReply.h create mode 100644 libjava/gnu/CORBA/ResponseHandlerImpl.h create mode 100644 libjava/gnu/CORBA/SafeForDirectCalls.h create mode 100644 libjava/gnu/CORBA/ServiceDetailHolder.h create mode 100644 libjava/gnu/CORBA/ServiceRequestAdapter.h create mode 100644 libjava/gnu/CORBA/SetOverrideTypeHolder.h create mode 100644 libjava/gnu/CORBA/SimpleDelegate.h create mode 100644 libjava/gnu/CORBA/SocketRepository.h create mode 100644 libjava/gnu/CORBA/StreamBasedRequest.h create mode 100644 libjava/gnu/CORBA/StreamHolder.h create mode 100644 libjava/gnu/CORBA/StubLocator.h create mode 100644 libjava/gnu/CORBA/TypeCodeHelper.h create mode 100644 libjava/gnu/CORBA/TypeKindNamer.h create mode 100644 libjava/gnu/CORBA/Unexpected.h create mode 100644 libjava/gnu/CORBA/Version.h create mode 100644 libjava/gnu/CORBA/WCharHolder.h create mode 100644 libjava/gnu/CORBA/WStringHolder.h create mode 100644 libjava/gnu/CORBA/_PolicyImplBase.h create mode 100644 libjava/gnu/CORBA/gnuAny.h create mode 100644 libjava/gnu/CORBA/gnuCodecFactory.h create mode 100644 libjava/gnu/CORBA/gnuContext.h create mode 100644 libjava/gnu/CORBA/gnuContextList.h create mode 100644 libjava/gnu/CORBA/gnuEnvironment.h create mode 100644 libjava/gnu/CORBA/gnuExceptionList.h create mode 100644 libjava/gnu/CORBA/gnuNVList.h create mode 100644 libjava/gnu/CORBA/gnuNamedValue.h create mode 100644 libjava/gnu/CORBA/gnuRequest$1.h create mode 100644 libjava/gnu/CORBA/gnuRequest$2.h create mode 100644 libjava/gnu/CORBA/gnuRequest.h create mode 100644 libjava/gnu/CORBA/gnuValueHolder.h create mode 100644 libjava/gnu/CORBA/interfaces/SocketFactory.h create mode 100644 libjava/gnu/CORBA/typecodes/AliasTypeCode.h create mode 100644 libjava/gnu/CORBA/typecodes/ArrayTypeCode.h create mode 100644 libjava/gnu/CORBA/typecodes/FixedTypeCode.h create mode 100644 libjava/gnu/CORBA/typecodes/GeneralTypeCode.h create mode 100644 libjava/gnu/CORBA/typecodes/PrimitiveTypeCode.h create mode 100644 libjava/gnu/CORBA/typecodes/RecordTypeCode$Field.h create mode 100644 libjava/gnu/CORBA/typecodes/RecordTypeCode.h create mode 100644 libjava/gnu/CORBA/typecodes/RecursiveTypeCode.h create mode 100644 libjava/gnu/CORBA/typecodes/StringTypeCode.h create mode 100644 libjava/gnu/awt/LightweightRedirector.h create mode 100644 libjava/gnu/awt/j2d/AbstractGraphicsState.h create mode 100644 libjava/gnu/awt/j2d/DirectRasterGraphics.h create mode 100644 libjava/gnu/awt/j2d/Graphics2DImpl.h create mode 100644 libjava/gnu/awt/j2d/IntegerGraphicsState$ScreenCoupledImage.h create mode 100644 libjava/gnu/awt/j2d/IntegerGraphicsState.h create mode 100644 libjava/gnu/awt/j2d/MappedRaster.h create mode 100644 libjava/gnu/classpath/Configuration.h create mode 100644 libjava/gnu/classpath/Configuration.java create mode 100644 libjava/gnu/classpath/ListenerData.h create mode 100644 libjava/gnu/classpath/NotImplementedException.h create mode 100644 libjava/gnu/classpath/Pointer.h create mode 100644 libjava/gnu/classpath/Pointer32.h create mode 100644 libjava/gnu/classpath/Pointer64.h create mode 100644 libjava/gnu/classpath/ServiceFactory$ServiceIterator.h create mode 100644 libjava/gnu/classpath/ServiceFactory.h create mode 100644 libjava/gnu/classpath/ServiceProviderLoadingAction.h create mode 100644 libjava/gnu/classpath/SystemProperties.h create mode 100644 libjava/gnu/classpath/VMStackWalker.h create mode 100644 libjava/gnu/classpath/VMStackWalker.java create mode 100644 libjava/gnu/classpath/debug/Component.h create mode 100644 libjava/gnu/classpath/debug/PreciseFilter.h create mode 100644 libjava/gnu/classpath/debug/Simple1LineFormatter.h create mode 100644 libjava/gnu/classpath/debug/SystemLogger.h create mode 100644 libjava/gnu/classpath/debug/TeeInputStream.h create mode 100644 libjava/gnu/classpath/debug/TeeOutputStream.h create mode 100644 libjava/gnu/classpath/debug/TeeReader.h create mode 100644 libjava/gnu/classpath/debug/TeeWriter.h create mode 100644 libjava/gnu/classpath/jdwp/Jdwp$1.h create mode 100644 libjava/gnu/classpath/jdwp/Jdwp.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$ClassStatus.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$Error.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$EventKind.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$StepDepth.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$StepSize.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants$Version.h create mode 100644 libjava/gnu/classpath/jdwp/JdwpConstants.h create mode 100644 libjava/gnu/classpath/jdwp/VMFrame.h create mode 100644 libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h create mode 100644 libjava/gnu/classpath/jdwp/VMIdManager$ReferenceKey.h create mode 100644 libjava/gnu/classpath/jdwp/VMIdManager.h create mode 100644 libjava/gnu/classpath/jdwp/VMMethod.h create mode 100644 libjava/gnu/classpath/jdwp/VMVirtualMachine.h create mode 100644 libjava/gnu/classpath/jdwp/event/BreakpointEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/ClassPrepareEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/ClassUnloadEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/Event.h create mode 100644 libjava/gnu/classpath/jdwp/event/EventManager.h create mode 100644 libjava/gnu/classpath/jdwp/event/EventRequest.h create mode 100644 libjava/gnu/classpath/jdwp/event/ExceptionEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/MethodEntryEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/MethodExitEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/SingleStepEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/ThreadStartEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/VmDeathEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/VmInitEvent.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/ClassMatchFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/ConditionalFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/CountFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/IEventFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/StepFilter.h create mode 100644 libjava/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidClassException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidClassLoaderException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidCountException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidEventTypeException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidFieldException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidLocationException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidMethodException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidObjectException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidStringException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidThreadException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidThreadGroupException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/JdwpException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/JdwpInternalErrorException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/NativeMethodException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/NotImplementedException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/VmDeadException.h create mode 100644 libjava/gnu/classpath/jdwp/id/ArrayId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ArrayReferenceTypeId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ClassLoaderId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ClassObjectId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ClassReferenceTypeId.h create mode 100644 libjava/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.h create mode 100644 libjava/gnu/classpath/jdwp/id/JdwpId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ObjectId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h create mode 100644 libjava/gnu/classpath/jdwp/id/StringId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ThreadGroupId.h create mode 100644 libjava/gnu/classpath/jdwp/id/ThreadId.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ClassTypeCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/CommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/EventRequestCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/FieldCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/MethodCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/PacketProcessor.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/StackFrameCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/StringReferenceCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.h create mode 100644 libjava/gnu/classpath/jdwp/transport/ITransport.h create mode 100644 libjava/gnu/classpath/jdwp/transport/JdwpCommandPacket.h create mode 100644 libjava/gnu/classpath/jdwp/transport/JdwpConnection.h create mode 100644 libjava/gnu/classpath/jdwp/transport/JdwpPacket.h create mode 100644 libjava/gnu/classpath/jdwp/transport/JdwpReplyPacket.h create mode 100644 libjava/gnu/classpath/jdwp/transport/SocketTransport.h create mode 100644 libjava/gnu/classpath/jdwp/transport/TransportException.h create mode 100644 libjava/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.h create mode 100644 libjava/gnu/classpath/jdwp/transport/TransportFactory.h create mode 100644 libjava/gnu/classpath/jdwp/util/JdwpString.h create mode 100644 libjava/gnu/classpath/jdwp/util/LineTable.h create mode 100644 libjava/gnu/classpath/jdwp/util/Location.h create mode 100644 libjava/gnu/classpath/jdwp/util/MethodResult.h create mode 100644 libjava/gnu/classpath/jdwp/util/Signature.h create mode 100644 libjava/gnu/classpath/jdwp/util/Value.h create mode 100644 libjava/gnu/classpath/jdwp/util/VariableTable.h create mode 100644 libjava/gnu/classpath/natConfiguration.cc create mode 100644 libjava/gnu/classpath/natVMStackWalker.cc create mode 100644 libjava/gnu/gcj/Core.h create mode 100644 libjava/gnu/gcj/RawData.h create mode 100644 libjava/gnu/gcj/RawDataManaged.h create mode 100644 libjava/gnu/gcj/convert/BytesToCharsetAdaptor.h create mode 100644 libjava/gnu/gcj/convert/BytesToUnicode.h create mode 100644 libjava/gnu/gcj/convert/CharsetToBytesAdaptor.h create mode 100644 libjava/gnu/gcj/convert/Convert.h create mode 100644 libjava/gnu/gcj/convert/IOConverter.h create mode 100644 libjava/gnu/gcj/convert/Input_8859_1.h create mode 100644 libjava/gnu/gcj/convert/Input_ASCII.h create mode 100644 libjava/gnu/gcj/convert/Input_EUCJIS.h create mode 100644 libjava/gnu/gcj/convert/Input_JavaSrc.h create mode 100644 libjava/gnu/gcj/convert/Input_SJIS.h create mode 100644 libjava/gnu/gcj/convert/Input_UTF8.h create mode 100644 libjava/gnu/gcj/convert/Input_UnicodeBig.h create mode 100644 libjava/gnu/gcj/convert/Input_UnicodeLittle.h create mode 100644 libjava/gnu/gcj/convert/Input_iconv.h create mode 100644 libjava/gnu/gcj/convert/Output_8859_1.h create mode 100644 libjava/gnu/gcj/convert/Output_ASCII.h create mode 100644 libjava/gnu/gcj/convert/Output_EUCJIS.h create mode 100644 libjava/gnu/gcj/convert/Output_JavaSrc.h create mode 100644 libjava/gnu/gcj/convert/Output_SJIS.h create mode 100644 libjava/gnu/gcj/convert/Output_UTF8.h create mode 100644 libjava/gnu/gcj/convert/Output_UnicodeLittleUnmarked.h create mode 100644 libjava/gnu/gcj/convert/Output_iconv.h create mode 100644 libjava/gnu/gcj/convert/UnicodeToBytes.h create mode 100644 libjava/gnu/gcj/io/DefaultMimeTypes.h create mode 100644 libjava/gnu/gcj/io/MimeTypes.h create mode 100644 libjava/gnu/gcj/io/SimpleSHSStream.h create mode 100644 libjava/gnu/gcj/jvmti/Breakpoint.h create mode 100644 libjava/gnu/gcj/jvmti/BreakpointManager.h create mode 100644 libjava/gnu/gcj/jvmti/Location.h create mode 100644 libjava/gnu/gcj/runtime/BootClassLoader.h create mode 100644 libjava/gnu/gcj/runtime/ExtensionClassLoader.h create mode 100644 libjava/gnu/gcj/runtime/FinalizerThread.h create mode 100644 libjava/gnu/gcj/runtime/HelperClassLoader$1.h create mode 100644 libjava/gnu/gcj/runtime/HelperClassLoader.h create mode 100644 libjava/gnu/gcj/runtime/JNIWeakRef.h create mode 100644 libjava/gnu/gcj/runtime/NameFinder$Addr2Line.h create mode 100644 libjava/gnu/gcj/runtime/NameFinder.h create mode 100644 libjava/gnu/gcj/runtime/PersistentByteMap$AccessMode.h create mode 100644 libjava/gnu/gcj/runtime/PersistentByteMap$ByteWrapper.h create mode 100644 libjava/gnu/gcj/runtime/PersistentByteMap$HashIterator.h create mode 100644 libjava/gnu/gcj/runtime/PersistentByteMap$MapEntry.h create mode 100644 libjava/gnu/gcj/runtime/PersistentByteMap.h create mode 100644 libjava/gnu/gcj/runtime/SharedLibHelper.h create mode 100644 libjava/gnu/gcj/runtime/SharedLibLoader.h create mode 100644 libjava/gnu/gcj/runtime/StringBuffer.h create mode 100644 libjava/gnu/gcj/runtime/SystemClassLoader.h create mode 100644 libjava/gnu/gcj/tools/gcj_dbtool/Fileset.h create mode 100644 libjava/gnu/gcj/tools/gcj_dbtool/Main.h create mode 100644 libjava/gnu/gcj/tools/gcj_dbtool/Tokenizer.h create mode 100644 libjava/gnu/gcj/util/Debug.h create mode 100644 libjava/gnu/java/awt/AWTUtilities$VisibleComponentList$VisibleComponentIterator.h create mode 100644 libjava/gnu/java/awt/AWTUtilities$VisibleComponentList.h create mode 100644 libjava/gnu/java/awt/AWTUtilities.h create mode 100644 libjava/gnu/java/awt/BitMaskExtent.h create mode 100644 libjava/gnu/java/awt/BitwiseXORComposite$GeneralContext.h create mode 100644 libjava/gnu/java/awt/BitwiseXORComposite$IntContext.h create mode 100644 libjava/gnu/java/awt/BitwiseXORComposite.h create mode 100644 libjava/gnu/java/awt/Buffers.h create mode 100644 libjava/gnu/java/awt/ClasspathToolkit.h create mode 100644 libjava/gnu/java/awt/ComponentDataBlitOp.h create mode 100644 libjava/gnu/java/awt/ComponentReshapeEvent.h create mode 100644 libjava/gnu/java/awt/EmbeddedWindow.h create mode 100644 libjava/gnu/java/awt/EventModifier.h create mode 100644 libjava/gnu/java/awt/GradientPaintContext.h create mode 100644 libjava/gnu/java/awt/LowPriorityEvent.h create mode 100644 libjava/gnu/java/awt/color/CieXyzConverter.h create mode 100644 libjava/gnu/java/awt/color/ClutProfileConverter.h create mode 100644 libjava/gnu/java/awt/color/ColorLookUpTable.h create mode 100644 libjava/gnu/java/awt/color/ColorSpaceConverter.h create mode 100644 libjava/gnu/java/awt/color/GrayProfileConverter.h create mode 100644 libjava/gnu/java/awt/color/GrayScaleConverter.h create mode 100644 libjava/gnu/java/awt/color/LinearRGBConverter.h create mode 100644 libjava/gnu/java/awt/color/ProfileHeader.h create mode 100644 libjava/gnu/java/awt/color/PyccConverter.h create mode 100644 libjava/gnu/java/awt/color/RgbProfileConverter.h create mode 100644 libjava/gnu/java/awt/color/SrgbConverter.h create mode 100644 libjava/gnu/java/awt/color/TagEntry.h create mode 100644 libjava/gnu/java/awt/color/ToneReproductionCurve.h create mode 100644 libjava/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.h create mode 100644 libjava/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.h create mode 100644 libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.h create mode 100644 libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.h create mode 100644 libjava/gnu/java/awt/font/FontDelegate.h create mode 100644 libjava/gnu/java/awt/font/FontFactory.h create mode 100644 libjava/gnu/java/awt/font/GNUGlyphVector.h create mode 100644 libjava/gnu/java/awt/font/autofit/AxisHints.h create mode 100644 libjava/gnu/java/awt/font/autofit/Constants.h create mode 100644 libjava/gnu/java/awt/font/autofit/GlyphHints.h create mode 100644 libjava/gnu/java/awt/font/autofit/Latin.h create mode 100644 libjava/gnu/java/awt/font/autofit/LatinAxis.h create mode 100644 libjava/gnu/java/awt/font/autofit/LatinMetrics.h create mode 100644 libjava/gnu/java/awt/font/autofit/Scaler.h create mode 100644 libjava/gnu/java/awt/font/autofit/Script.h create mode 100644 libjava/gnu/java/awt/font/autofit/ScriptMetrics.h create mode 100644 libjava/gnu/java/awt/font/autofit/Segment.h create mode 100644 libjava/gnu/java/awt/font/autofit/Width.h create mode 100644 libjava/gnu/java/awt/font/opentype/CharGlyphMap$Dummy.h create mode 100644 libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type0.h create mode 100644 libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type12.h create mode 100644 libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type4.h create mode 100644 libjava/gnu/java/awt/font/opentype/CharGlyphMap.h create mode 100644 libjava/gnu/java/awt/font/opentype/GlyphNamer.h create mode 100644 libjava/gnu/java/awt/font/opentype/MacResourceFork$Resource.h create mode 100644 libjava/gnu/java/awt/font/opentype/MacResourceFork.h create mode 100644 libjava/gnu/java/awt/font/opentype/NameDecoder.h create mode 100644 libjava/gnu/java/awt/font/opentype/OpenTypeFont.h create mode 100644 libjava/gnu/java/awt/font/opentype/OpenTypeFontFactory.h create mode 100644 libjava/gnu/java/awt/font/opentype/Scaler.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/Fixed.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/GlyphLoader.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$FourByte.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$TwoByte.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/VirtualMachine.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/Zone.h create mode 100644 libjava/gnu/java/awt/font/opentype/truetype/ZonePathIterator.h create mode 100644 libjava/gnu/java/awt/image/ImageDecoder$DataInputStreamWrapper.h create mode 100644 libjava/gnu/java/awt/image/ImageDecoder.h create mode 100644 libjava/gnu/java/awt/image/XBMDecoder.h create mode 100644 libjava/gnu/java/awt/java2d/AbstractGraphics2D.h create mode 100644 libjava/gnu/java/awt/java2d/AlphaCompositeContext.h create mode 100644 libjava/gnu/java/awt/java2d/CubicSegment.h create mode 100644 libjava/gnu/java/awt/java2d/ImagePaint$ImagePaintContext.h create mode 100644 libjava/gnu/java/awt/java2d/ImagePaint.h create mode 100644 libjava/gnu/java/awt/java2d/LineSegment.h create mode 100644 libjava/gnu/java/awt/java2d/PolyEdge.h create mode 100644 libjava/gnu/java/awt/java2d/PolyEdgeComparator.h create mode 100644 libjava/gnu/java/awt/java2d/QuadSegment.h create mode 100644 libjava/gnu/java/awt/java2d/RasterGraphics.h create mode 100644 libjava/gnu/java/awt/java2d/Segment.h create mode 100644 libjava/gnu/java/awt/java2d/ShapeCache.h create mode 100644 libjava/gnu/java/awt/java2d/TexturePaintContext.h create mode 100644 libjava/gnu/java/awt/peer/ClasspathFontPeer.h create mode 100644 libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h create mode 100644 libjava/gnu/java/awt/peer/GLightweightPeer.h create mode 100644 libjava/gnu/java/awt/peer/NativeEventLoopRunningEvent.h create mode 100644 libjava/gnu/java/awt/peer/gtk/AsyncImage$Loader.h create mode 100644 libjava/gnu/java/awt/peer/gtk/AsyncImage$NullImageSource.h create mode 100644 libjava/gnu/java/awt/peer/gtk/AsyncImage.h create mode 100644 libjava/gnu/java/awt/peer/gtk/BufferedImageGraphics.h create mode 100644 libjava/gnu/java/awt/peer/gtk/CairoGraphics2D.h create mode 100644 libjava/gnu/java/awt/peer/gtk/CairoSurface$CairoDataBuffer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/CairoSurface.h create mode 100644 libjava/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.h create mode 100644 libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h create mode 100644 libjava/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.h create mode 100644 libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GThreadMutex.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkCanvasPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkClipboard.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkClipboardNotifier.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkCursor.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkImage.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkImageConsumer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkListPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkMainThread.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkPanelPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkSelection.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkToolkit$1.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkToolkit.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkVolatileImage.h create mode 100644 libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h create mode 100644 libjava/gnu/java/awt/peer/gtk/VolatileImageGraphics.h create mode 100644 libjava/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.h create mode 100644 libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h create mode 100644 libjava/gnu/java/awt/peer/qt/MainQtThread.h create mode 100644 libjava/gnu/java/awt/peer/qt/NativeWrapper.h create mode 100644 libjava/gnu/java/awt/peer/qt/QMatrix.h create mode 100644 libjava/gnu/java/awt/peer/qt/QPainterPath.h create mode 100644 libjava/gnu/java/awt/peer/qt/QPen.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtAudioClip.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtButtonPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtCanvasPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtCheckboxPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtChoicePeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtComponentGraphics.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtComponentPeer$RepaintTimerTask.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtComponentPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtContainerPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtDialogPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtFileDialogPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtFontMetrics.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtFontPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtFramePeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtGraphics.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtGraphicsEnvironment.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtImage.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtImageConsumer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtImageDirectGraphics.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtImageGraphics.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtLabelPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtListPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtMenuBarPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtMenuComponentPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtMenuItemPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtMenuPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtPanelPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtPopupMenuPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtRepaintThread$RepaintComponent.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtRepaintThread.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtScreenDevice.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtScrollPanePeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtScrollbarPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtTextAreaPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtTextFieldPeer.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtToolkit.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtVolatileImage$1.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtVolatileImage.h create mode 100644 libjava/gnu/java/awt/peer/qt/QtWindowPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingButtonPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingCanvasPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingComponent.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingFramePeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingLabelPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingListPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer$SwingMenuItemListener.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingMenuPeer$SwingMenu.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingMenuPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingPanelPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingToolkit.h create mode 100644 libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h create mode 100644 libjava/gnu/java/awt/print/JavaPrinterGraphics.h create mode 100644 libjava/gnu/java/awt/print/JavaPrinterJob.h create mode 100644 libjava/gnu/java/awt/print/PostScriptGraphics2D.h create mode 100644 libjava/gnu/java/awt/print/SpooledDocument.h create mode 100644 libjava/gnu/java/beans/BeanInfoEmbryo.h create mode 100644 libjava/gnu/java/beans/DefaultExceptionListener.h create mode 100644 libjava/gnu/java/beans/DoubleKey.h create mode 100644 libjava/gnu/java/beans/DummyAppletContext.h create mode 100644 libjava/gnu/java/beans/DummyAppletStub.h create mode 100644 libjava/gnu/java/beans/ExplicitBeanInfo.h create mode 100644 libjava/gnu/java/beans/IntrospectionIncubator.h create mode 100644 libjava/gnu/java/beans/decoder/AbstractContext.h create mode 100644 libjava/gnu/java/beans/decoder/AbstractCreatableObjectContext.h create mode 100644 libjava/gnu/java/beans/decoder/AbstractElementHandler.h create mode 100644 libjava/gnu/java/beans/decoder/AbstractObjectContext.h create mode 100644 libjava/gnu/java/beans/decoder/ArrayContext.h create mode 100644 libjava/gnu/java/beans/decoder/ArrayHandler.h create mode 100644 libjava/gnu/java/beans/decoder/AssemblyException.h create mode 100644 libjava/gnu/java/beans/decoder/BooleanHandler.h create mode 100644 libjava/gnu/java/beans/decoder/ByteHandler.h create mode 100644 libjava/gnu/java/beans/decoder/CharHandler.h create mode 100644 libjava/gnu/java/beans/decoder/ClassHandler.h create mode 100644 libjava/gnu/java/beans/decoder/ConstructorContext.h create mode 100644 libjava/gnu/java/beans/decoder/Context.h create mode 100644 libjava/gnu/java/beans/decoder/DecoderContext.h create mode 100644 libjava/gnu/java/beans/decoder/DoubleHandler.h create mode 100644 libjava/gnu/java/beans/decoder/DummyContext.h create mode 100644 libjava/gnu/java/beans/decoder/DummyHandler.h create mode 100644 libjava/gnu/java/beans/decoder/ElementHandler.h create mode 100644 libjava/gnu/java/beans/decoder/FloatHandler.h create mode 100644 libjava/gnu/java/beans/decoder/GrowableArrayContext.h create mode 100644 libjava/gnu/java/beans/decoder/IndexContext.h create mode 100644 libjava/gnu/java/beans/decoder/IntHandler.h create mode 100644 libjava/gnu/java/beans/decoder/JavaHandler.h create mode 100644 libjava/gnu/java/beans/decoder/LongHandler.h create mode 100644 libjava/gnu/java/beans/decoder/MethodContext.h create mode 100644 libjava/gnu/java/beans/decoder/MethodFinder.h create mode 100644 libjava/gnu/java/beans/decoder/NullHandler.h create mode 100644 libjava/gnu/java/beans/decoder/ObjectContext.h create mode 100644 libjava/gnu/java/beans/decoder/ObjectHandler.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$ArrayHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$BooleanHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$ByteHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$CharHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$ClassHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$Creator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$DoubleHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$FloatHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$IntHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$JavaHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$LongHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$NullHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$ObjectHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$ShortHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$StringHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser$VoidHandlerCreator.h create mode 100644 libjava/gnu/java/beans/decoder/PersistenceParser.h create mode 100644 libjava/gnu/java/beans/decoder/PropertyContext.h create mode 100644 libjava/gnu/java/beans/decoder/ShortHandler.h create mode 100644 libjava/gnu/java/beans/decoder/SimpleHandler.h create mode 100644 libjava/gnu/java/beans/decoder/StaticMethodContext.h create mode 100644 libjava/gnu/java/beans/decoder/StringHandler.h create mode 100644 libjava/gnu/java/beans/decoder/VoidHandler.h create mode 100644 libjava/gnu/java/beans/editors/ColorEditor.h create mode 100644 libjava/gnu/java/beans/editors/FontEditor.h create mode 100644 libjava/gnu/java/beans/editors/NativeBooleanEditor.h create mode 100644 libjava/gnu/java/beans/editors/NativeByteEditor.h create mode 100644 libjava/gnu/java/beans/editors/NativeDoubleEditor.h create mode 100644 libjava/gnu/java/beans/editors/NativeFloatEditor.h create mode 100644 libjava/gnu/java/beans/editors/NativeIntEditor.h create mode 100644 libjava/gnu/java/beans/editors/NativeLongEditor.h create mode 100644 libjava/gnu/java/beans/editors/NativeShortEditor.h create mode 100644 libjava/gnu/java/beans/editors/StringEditor.h create mode 100644 libjava/gnu/java/beans/encoder/ArrayPersistenceDelegate.h create mode 100644 libjava/gnu/java/beans/encoder/ClassPersistenceDelegate.h create mode 100644 libjava/gnu/java/beans/encoder/CollectionPersistenceDelegate.h create mode 100644 libjava/gnu/java/beans/encoder/Context.h create mode 100644 libjava/gnu/java/beans/encoder/GenericScannerState.h create mode 100644 libjava/gnu/java/beans/encoder/IgnoringScannerState.h create mode 100644 libjava/gnu/java/beans/encoder/MapPersistenceDelegate.h create mode 100644 libjava/gnu/java/beans/encoder/ObjectId.h create mode 100644 libjava/gnu/java/beans/encoder/PrimitivePersistenceDelegate.h create mode 100644 libjava/gnu/java/beans/encoder/ReportingScannerState.h create mode 100644 libjava/gnu/java/beans/encoder/Root$RootElement.h create mode 100644 libjava/gnu/java/beans/encoder/Root.h create mode 100644 libjava/gnu/java/beans/encoder/ScanEngine.h create mode 100644 libjava/gnu/java/beans/encoder/ScannerState.h create mode 100644 libjava/gnu/java/beans/encoder/StAXWriter.h create mode 100644 libjava/gnu/java/beans/encoder/Writer.h create mode 100644 libjava/gnu/java/beans/encoder/elements/ArrayInstantiation.h create mode 100644 libjava/gnu/java/beans/encoder/elements/Array_Get.h create mode 100644 libjava/gnu/java/beans/encoder/elements/Array_Set.h create mode 100644 libjava/gnu/java/beans/encoder/elements/ClassResolution.h create mode 100644 libjava/gnu/java/beans/encoder/elements/Element.h create mode 100644 libjava/gnu/java/beans/encoder/elements/List_Get.h create mode 100644 libjava/gnu/java/beans/encoder/elements/List_Set.h create mode 100644 libjava/gnu/java/beans/encoder/elements/MethodInvocation.h create mode 100644 libjava/gnu/java/beans/encoder/elements/NullObject.h create mode 100644 libjava/gnu/java/beans/encoder/elements/ObjectInstantiation.h create mode 100644 libjava/gnu/java/beans/encoder/elements/ObjectReference.h create mode 100644 libjava/gnu/java/beans/encoder/elements/PrimitiveInstantiation.h create mode 100644 libjava/gnu/java/beans/encoder/elements/StaticFieldAccess.h create mode 100644 libjava/gnu/java/beans/encoder/elements/StaticMethodInvocation.h create mode 100644 libjava/gnu/java/beans/encoder/elements/StringReference.h create mode 100644 libjava/gnu/java/io/ASN1ParsingException.h create mode 100644 libjava/gnu/java/io/Base64InputStream.h create mode 100644 libjava/gnu/java/io/ClassLoaderObjectInputStream.h create mode 100644 libjava/gnu/java/io/NullOutputStream.h create mode 100644 libjava/gnu/java/io/ObjectIdentityMap2Int.h create mode 100644 libjava/gnu/java/io/ObjectIdentityWrapper.h create mode 100644 libjava/gnu/java/io/PlatformHelper.h create mode 100644 libjava/gnu/java/lang/ArrayHelper.h create mode 100644 libjava/gnu/java/lang/CharData.h create mode 100644 libjava/gnu/java/lang/ClassHelper.h create mode 100644 libjava/gnu/java/lang/InstrumentationImpl.h create mode 100644 libjava/gnu/java/lang/MainThread.h create mode 100644 libjava/gnu/java/lang/VMInstrumentationImpl.h create mode 100644 libjava/gnu/java/lang/management/BeanImpl.h create mode 100644 libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/CompilationMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/MemoryMXBeanImpl$ListenerData.h create mode 100644 libjava/gnu/java/lang/management/MemoryMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/ThreadMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h create mode 100644 libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc create mode 100644 libjava/gnu/java/lang/reflect/ClassSignatureParser.h create mode 100644 libjava/gnu/java/lang/reflect/FieldSignatureParser.h create mode 100644 libjava/gnu/java/lang/reflect/GenericArrayTypeImpl.h create mode 100644 libjava/gnu/java/lang/reflect/GenericSignatureParser.h create mode 100644 libjava/gnu/java/lang/reflect/MethodSignatureParser.h create mode 100644 libjava/gnu/java/lang/reflect/ParameterizedTypeImpl.h create mode 100644 libjava/gnu/java/lang/reflect/TypeImpl.h create mode 100644 libjava/gnu/java/lang/reflect/TypeSignature.h create mode 100644 libjava/gnu/java/lang/reflect/TypeVariableImpl.h create mode 100644 libjava/gnu/java/lang/reflect/UnresolvedTypeVariable.h create mode 100644 libjava/gnu/java/lang/reflect/WildcardTypeImpl.h create mode 100644 libjava/gnu/java/locale/Calendar.h create mode 100644 libjava/gnu/java/locale/Calendar_de.h create mode 100644 libjava/gnu/java/locale/Calendar_en.h create mode 100644 libjava/gnu/java/locale/Calendar_nl.h create mode 100644 libjava/gnu/java/locale/LocaleData.h create mode 100644 libjava/gnu/java/locale/LocaleHelper.h create mode 100644 libjava/gnu/java/locale/LocaleInformation.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_af_ZA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_AE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_BH.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_DZ.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_EG.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_IN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_IQ.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_JO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_KW.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_LB.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_LY.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_MA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_OM.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_QA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_SD.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_SY.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_TN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ar_YE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_be_BY.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_bn_IN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_br_FR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_bs_BA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ca_ES.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_cs_CZ.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_cy_GB.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_da_DK.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_de.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_de_AT.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_de_BE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_de_CH.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_de_DE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_de_LU.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_el_GR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_AU.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_BW.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_CA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_DK.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_GB.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_HK.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_IE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_IN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_NZ.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_PH.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_SG.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_US.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_ZA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_en_ZW.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_AR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_BO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_CL.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_CO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_CR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_DO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_EC.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_ES.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_GT.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_HN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_MX.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_NI.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_PA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_PE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_PR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_PY.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_SV.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_US.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_UY.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_es_VE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_et_EE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_eu_ES.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fa_IR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fi_FI.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fo_FO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fr_BE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fr_CA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fr_CH.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fr_FR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_fr_LU.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ga_IE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_gd_GB.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_gl_ES.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_gv_GB.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_he_IL.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_hi_IN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_hr_HR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_hu_HU.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_id_ID.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_it_CH.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_it_IT.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_iw_IL.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ja_JP.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ka_GE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_kl_GL.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ko_KR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_kw_GB.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_lt_LT.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_lv_LV.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_mi_NZ.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_mk_MK.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_mr_IN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_mt_MT.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_nl.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_nl_BE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_nl_NL.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_nn_NO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_no_NO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_oc_FR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_pl_PL.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_pt_BR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_pt_PT.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ro_RO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ru_RU.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ru_UA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_se_NO.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_sk_SK.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_sl_SI.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_sq_AL.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_sr_YU.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_sv_FI.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_sv_SE.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ta_IN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_te_IN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_tg_TJ.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_tl_PH.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_tr_TR.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_uk_UA.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_ur_PK.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_uz_UZ.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_vi_VN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_yi_US.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_zh_CN.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_zh_HK.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_zh_SG.h create mode 100644 libjava/gnu/java/locale/LocaleInformation_zh_TW.h create mode 100644 libjava/gnu/java/math/MPN.h create mode 100644 libjava/gnu/java/net/BASE64.h create mode 100644 libjava/gnu/java/net/CRLFInputStream.h create mode 100644 libjava/gnu/java/net/CRLFOutputStream.h create mode 100644 libjava/gnu/java/net/DefaultContentHandlerFactory.h create mode 100644 libjava/gnu/java/net/DefaultProxySelector.h create mode 100644 libjava/gnu/java/net/EmptyX509TrustManager.h create mode 100644 libjava/gnu/java/net/GetLocalHostAction.h create mode 100644 libjava/gnu/java/net/HeaderFieldHelper.h create mode 100644 libjava/gnu/java/net/ImageHandler.h create mode 100644 libjava/gnu/java/net/IndexListParser.h create mode 100644 libjava/gnu/java/net/LineInputStream.h create mode 100644 libjava/gnu/java/net/PlainDatagramSocketImpl.h create mode 100644 libjava/gnu/java/net/PlainSocketImpl$SocketInputStream.h create mode 100644 libjava/gnu/java/net/PlainSocketImpl$SocketOutputStream.h create mode 100644 libjava/gnu/java/net/PlainSocketImpl.h create mode 100644 libjava/gnu/java/net/URLParseError.h create mode 100644 libjava/gnu/java/net/loader/FileResource.h create mode 100644 libjava/gnu/java/net/loader/FileURLLoader.h create mode 100644 libjava/gnu/java/net/loader/JarURLLoader.h create mode 100644 libjava/gnu/java/net/loader/JarURLResource.h create mode 100644 libjava/gnu/java/net/loader/RemoteResource.h create mode 100644 libjava/gnu/java/net/loader/RemoteURLLoader.h create mode 100644 libjava/gnu/java/net/loader/Resource.h create mode 100644 libjava/gnu/java/net/loader/URLLoader.h create mode 100644 libjava/gnu/java/net/loader/URLStreamHandlerCache.h create mode 100644 libjava/gnu/java/net/local/LocalServerSocket.h create mode 100644 libjava/gnu/java/net/local/LocalSocket.h create mode 100644 libjava/gnu/java/net/local/LocalSocketAddress.h create mode 100644 libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h create mode 100644 libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h create mode 100644 libjava/gnu/java/net/local/LocalSocketImpl.h create mode 100644 libjava/gnu/java/net/protocol/core/Connection.h create mode 100644 libjava/gnu/java/net/protocol/core/CoreInputStream.h create mode 100644 libjava/gnu/java/net/protocol/core/Handler.h create mode 100644 libjava/gnu/java/net/protocol/file/Connection$StaticData.h create mode 100644 libjava/gnu/java/net/protocol/file/Connection.h create mode 100644 libjava/gnu/java/net/protocol/file/Handler.h create mode 100644 libjava/gnu/java/net/protocol/ftp/ActiveModeDTP.h create mode 100644 libjava/gnu/java/net/protocol/ftp/BlockInputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/BlockOutputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/CompressedInputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/CompressedOutputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/DTP.h create mode 100644 libjava/gnu/java/net/protocol/ftp/DTPInputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/DTPOutputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/FTPConnection.h create mode 100644 libjava/gnu/java/net/protocol/ftp/FTPException.h create mode 100644 libjava/gnu/java/net/protocol/ftp/FTPResponse.h create mode 100644 libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingInputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingOutputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/FTPURLConnection.h create mode 100644 libjava/gnu/java/net/protocol/ftp/Handler.h create mode 100644 libjava/gnu/java/net/protocol/ftp/PassiveModeDTP.h create mode 100644 libjava/gnu/java/net/protocol/ftp/StreamInputStream.h create mode 100644 libjava/gnu/java/net/protocol/ftp/StreamOutputStream.h create mode 100644 libjava/gnu/java/net/protocol/gcjlib/Connection.h create mode 100644 libjava/gnu/java/net/protocol/gcjlib/Handler.h create mode 100644 libjava/gnu/java/net/protocol/http/Authenticator.h create mode 100644 libjava/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.h create mode 100644 libjava/gnu/java/net/protocol/http/ChunkedInputStream.h create mode 100644 libjava/gnu/java/net/protocol/http/Cookie.h create mode 100644 libjava/gnu/java/net/protocol/http/CookieManager.h create mode 100644 libjava/gnu/java/net/protocol/http/Credentials.h create mode 100644 libjava/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.h create mode 100644 libjava/gnu/java/net/protocol/http/HTTPConnection$Pool.h create mode 100644 libjava/gnu/java/net/protocol/http/HTTPConnection.h create mode 100644 libjava/gnu/java/net/protocol/http/HTTPDateFormat.h create mode 100644 libjava/gnu/java/net/protocol/http/HTTPURLConnection$1.h create mode 100644 libjava/gnu/java/net/protocol/http/HTTPURLConnection.h create mode 100644 libjava/gnu/java/net/protocol/http/Handler.h create mode 100644 libjava/gnu/java/net/protocol/http/Headers$HeaderElement.h create mode 100644 libjava/gnu/java/net/protocol/http/Headers.h create mode 100644 libjava/gnu/java/net/protocol/http/LimitedLengthInputStream.h create mode 100644 libjava/gnu/java/net/protocol/http/Request.h create mode 100644 libjava/gnu/java/net/protocol/http/RequestBodyWriter.h create mode 100644 libjava/gnu/java/net/protocol/http/Response.h create mode 100644 libjava/gnu/java/net/protocol/http/ResponseHeaderHandler.h create mode 100644 libjava/gnu/java/net/protocol/http/SimpleCookieManager.h create mode 100644 libjava/gnu/java/net/protocol/https/Handler.h create mode 100644 libjava/gnu/java/net/protocol/jar/Connection$JarFileCache.h create mode 100644 libjava/gnu/java/net/protocol/jar/Connection.h create mode 100644 libjava/gnu/java/net/protocol/jar/Handler.h create mode 100644 libjava/gnu/java/nio/ChannelInputStream.h create mode 100644 libjava/gnu/java/nio/ChannelOutputStream.h create mode 100644 libjava/gnu/java/nio/ChannelReader.h create mode 100644 libjava/gnu/java/nio/ChannelWriter.h create mode 100644 libjava/gnu/java/nio/DatagramChannelImpl.h create mode 100644 libjava/gnu/java/nio/DatagramChannelSelectionKey.h create mode 100644 libjava/gnu/java/nio/EpollSelectionKeyImpl.h create mode 100644 libjava/gnu/java/nio/FileLockImpl.h copy libjava/{classpath => }/gnu/java/nio/FileLockImpl.java (100%) create mode 100644 libjava/gnu/java/nio/InputStreamChannel.h create mode 100644 libjava/gnu/java/nio/KqueueSelectionKeyImpl.h create mode 100644 libjava/gnu/java/nio/NIOConstants.h create mode 100644 libjava/gnu/java/nio/NIODatagramSocket.h create mode 100644 libjava/gnu/java/nio/NIOServerSocket.h create mode 100644 libjava/gnu/java/nio/NIOSocket.h copy libjava/{classpath => }/gnu/java/nio/NIOSocket.java (100%) create mode 100644 libjava/gnu/java/nio/OutputStreamChannel.h create mode 100644 libjava/gnu/java/nio/PipeImpl$SinkChannelImpl.h create mode 100644 libjava/gnu/java/nio/PipeImpl$SourceChannelImpl.h create mode 100644 libjava/gnu/java/nio/PipeImpl.h copy libjava/{classpath => }/gnu/java/nio/PipeImpl.java (100%) create mode 100644 libjava/gnu/java/nio/SelectionKeyImpl.h create mode 100644 libjava/gnu/java/nio/SelectorImpl.h create mode 100644 libjava/gnu/java/nio/SelectorProviderImpl.h copy libjava/{classpath => }/gnu/java/nio/SelectorProviderImpl.java (100%) create mode 100644 libjava/gnu/java/nio/ServerSocketChannelImpl.h create mode 100644 libjava/gnu/java/nio/ServerSocketChannelSelectionKey.h create mode 100644 libjava/gnu/java/nio/SocketChannelImpl.h create mode 100644 libjava/gnu/java/nio/SocketChannelSelectionKey.h create mode 100644 libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.h copy libjava/{classpath => }/gnu/java/nio/SocketChannelSelectionKeyImpl.java (100%) create mode 100644 libjava/gnu/java/nio/VMChannel.h create mode 100644 libjava/gnu/java/nio/VMChannelOwner.h create mode 100644 libjava/gnu/java/nio/VMPipe.h create mode 100644 libjava/gnu/java/nio/VMSelector.h create mode 100644 libjava/gnu/java/nio/channels/FileChannelImpl.h create mode 100644 libjava/gnu/java/nio/charset/ByteCharset$Decoder.h create mode 100644 libjava/gnu/java/nio/charset/ByteCharset$Encoder.h create mode 100644 libjava/gnu/java/nio/charset/ByteCharset.h create mode 100644 libjava/gnu/java/nio/charset/Cp424.h create mode 100644 libjava/gnu/java/nio/charset/Cp437.h create mode 100644 libjava/gnu/java/nio/charset/Cp737.h create mode 100644 libjava/gnu/java/nio/charset/Cp775.h create mode 100644 libjava/gnu/java/nio/charset/Cp850.h create mode 100644 libjava/gnu/java/nio/charset/Cp852.h create mode 100644 libjava/gnu/java/nio/charset/Cp855.h create mode 100644 libjava/gnu/java/nio/charset/Cp857.h create mode 100644 libjava/gnu/java/nio/charset/Cp860.h create mode 100644 libjava/gnu/java/nio/charset/Cp861.h create mode 100644 libjava/gnu/java/nio/charset/Cp862.h create mode 100644 libjava/gnu/java/nio/charset/Cp863.h create mode 100644 libjava/gnu/java/nio/charset/Cp864.h create mode 100644 libjava/gnu/java/nio/charset/Cp865.h create mode 100644 libjava/gnu/java/nio/charset/Cp866.h create mode 100644 libjava/gnu/java/nio/charset/Cp869.h create mode 100644 libjava/gnu/java/nio/charset/Cp874.h create mode 100644 libjava/gnu/java/nio/charset/EncodingHelper.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_1.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_13.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_15.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_2.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_3.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_4.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_5.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_6.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_7.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_8.h create mode 100644 libjava/gnu/java/nio/charset/ISO_8859_9.h create mode 100644 libjava/gnu/java/nio/charset/KOI_8.h create mode 100644 libjava/gnu/java/nio/charset/MS874.h create mode 100644 libjava/gnu/java/nio/charset/MacCentralEurope.h create mode 100644 libjava/gnu/java/nio/charset/MacCroatian.h create mode 100644 libjava/gnu/java/nio/charset/MacCyrillic.h create mode 100644 libjava/gnu/java/nio/charset/MacDingbat.h create mode 100644 libjava/gnu/java/nio/charset/MacGreek.h create mode 100644 libjava/gnu/java/nio/charset/MacIceland.h create mode 100644 libjava/gnu/java/nio/charset/MacRoman.h create mode 100644 libjava/gnu/java/nio/charset/MacRomania.h create mode 100644 libjava/gnu/java/nio/charset/MacSymbol.h create mode 100644 libjava/gnu/java/nio/charset/MacThai.h create mode 100644 libjava/gnu/java/nio/charset/MacTurkish.h create mode 100644 libjava/gnu/java/nio/charset/Provider$1.h create mode 100644 libjava/gnu/java/nio/charset/Provider.h create mode 100644 libjava/gnu/java/nio/charset/US_ASCII$Decoder.h create mode 100644 libjava/gnu/java/nio/charset/US_ASCII$Encoder.h create mode 100644 libjava/gnu/java/nio/charset/US_ASCII.h create mode 100644 libjava/gnu/java/nio/charset/UTF_16.h create mode 100644 libjava/gnu/java/nio/charset/UTF_16BE.h create mode 100644 libjava/gnu/java/nio/charset/UTF_16Decoder.h create mode 100644 libjava/gnu/java/nio/charset/UTF_16Encoder.h create mode 100644 libjava/gnu/java/nio/charset/UTF_16LE.h create mode 100644 libjava/gnu/java/nio/charset/UTF_8$Decoder.h create mode 100644 libjava/gnu/java/nio/charset/UTF_8$Encoder.h create mode 100644 libjava/gnu/java/nio/charset/UTF_8.h create mode 100644 libjava/gnu/java/nio/charset/UnicodeLittle.h create mode 100644 libjava/gnu/java/nio/charset/Windows1250.h create mode 100644 libjava/gnu/java/nio/charset/Windows1251.h create mode 100644 libjava/gnu/java/nio/charset/Windows1252.h create mode 100644 libjava/gnu/java/nio/charset/Windows1253.h create mode 100644 libjava/gnu/java/nio/charset/Windows1254.h create mode 100644 libjava/gnu/java/nio/charset/Windows1255.h create mode 100644 libjava/gnu/java/nio/charset/Windows1256.h create mode 100644 libjava/gnu/java/nio/charset/Windows1257.h create mode 100644 libjava/gnu/java/nio/charset/Windows1258.h create mode 100644 libjava/gnu/java/nio/natVMChannel.cc create mode 100644 libjava/gnu/java/rmi/RMIMarshalledObjectInputStream.h create mode 100644 libjava/gnu/java/rmi/RMIMarshalledObjectOutputStream.h create mode 100644 libjava/gnu/java/rmi/activation/ActivationSystemTransient.h create mode 100644 libjava/gnu/java/rmi/activation/BidiTable.h create mode 100644 libjava/gnu/java/rmi/activation/DefaultActivationGroup.h create mode 100644 libjava/gnu/java/rmi/activation/DefaultActivationSystem.h create mode 100644 libjava/gnu/java/rmi/dgc/DGCImpl$RefProtector.h create mode 100644 libjava/gnu/java/rmi/dgc/DGCImpl.h create mode 100644 libjava/gnu/java/rmi/dgc/DGCImpl_Skel.h create mode 100644 libjava/gnu/java/rmi/dgc/DGCImpl_Stub.h create mode 100644 libjava/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.h create mode 100644 libjava/gnu/java/rmi/dgc/LeaseRenewingTask.h create mode 100644 libjava/gnu/java/rmi/registry/RegistryImpl.h create mode 100644 libjava/gnu/java/rmi/registry/RegistryImpl_Skel.h create mode 100644 libjava/gnu/java/rmi/registry/RegistryImpl_Stub.h delete mode 100644 libjava/gnu/java/rmi/rmic/Compile_gcj.java delete mode 100644 libjava/gnu/java/rmi/rmic/Compile_jikes.java delete mode 100644 libjava/gnu/java/rmi/rmic/Compile_kjc.java delete mode 100644 libjava/gnu/java/rmi/rmic/Compiler.java delete mode 100644 libjava/gnu/java/rmi/rmic/CompilerProcess.java delete mode 100644 libjava/gnu/java/rmi/rmic/RMIC.java delete mode 100644 libjava/gnu/java/rmi/rmic/RMICException.java delete mode 100644 libjava/gnu/java/rmi/rmic/TabbedWriter.java create mode 100644 libjava/gnu/java/rmi/server/ActivatableRef.h create mode 100644 libjava/gnu/java/rmi/server/ActivatableServerRef.h create mode 100644 libjava/gnu/java/rmi/server/CombinedClassLoader.h create mode 100644 libjava/gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h create mode 100644 libjava/gnu/java/rmi/server/ConnectionRunnerPool.h create mode 100644 libjava/gnu/java/rmi/server/ProtocolConstants.h create mode 100644 libjava/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.h create mode 100644 libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h create mode 100644 libjava/gnu/java/rmi/server/RMIClassLoaderImpl.h create mode 100644 libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.h create mode 100644 libjava/gnu/java/rmi/server/RMIHashes.h create mode 100644 libjava/gnu/java/rmi/server/RMIIncomingThread.h create mode 100644 libjava/gnu/java/rmi/server/RMIObjectInputStream.h create mode 100644 libjava/gnu/java/rmi/server/RMIObjectOutputStream.h create mode 100644 libjava/gnu/java/rmi/server/RMIVoidValue.h create mode 100644 libjava/gnu/java/rmi/server/TripleKey.h create mode 100644 libjava/gnu/java/rmi/server/UnicastConnection.h create mode 100644 libjava/gnu/java/rmi/server/UnicastConnectionManager$1.h create mode 100644 libjava/gnu/java/rmi/server/UnicastConnectionManager.h create mode 100644 libjava/gnu/java/rmi/server/UnicastRef.h create mode 100644 libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectInputStream.h create mode 100644 libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectOutputStream.h create mode 100644 libjava/gnu/java/rmi/server/UnicastRemoteCall.h create mode 100644 libjava/gnu/java/rmi/server/UnicastRemoteStub.h create mode 100644 libjava/gnu/java/rmi/server/UnicastServer.h create mode 100644 libjava/gnu/java/rmi/server/UnicastServerRef.h create mode 100644 libjava/gnu/java/security/Configuration.h create mode 100644 libjava/gnu/java/security/Engine.h create mode 100644 libjava/gnu/java/security/OID.h create mode 100644 libjava/gnu/java/security/PolicyFile$1.h create mode 100644 libjava/gnu/java/security/PolicyFile.h create mode 100644 libjava/gnu/java/security/Properties$1.h create mode 100644 libjava/gnu/java/security/Properties.h create mode 100644 libjava/gnu/java/security/Registry.h create mode 100644 libjava/gnu/java/security/Requires.h create mode 100644 libjava/gnu/java/security/action/GetPropertyAction.h create mode 100644 libjava/gnu/java/security/action/GetSecurityPropertyAction.h create mode 100644 libjava/gnu/java/security/action/SetAccessibleAction.h create mode 100644 libjava/gnu/java/security/ber/BER.h create mode 100644 libjava/gnu/java/security/ber/BEREncodingException.h create mode 100644 libjava/gnu/java/security/ber/BERReader.h create mode 100644 libjava/gnu/java/security/ber/BERValue.h create mode 100644 libjava/gnu/java/security/der/BitString.h create mode 100644 libjava/gnu/java/security/der/DER.h create mode 100644 libjava/gnu/java/security/der/DEREncodingException.h create mode 100644 libjava/gnu/java/security/der/DERReader.h create mode 100644 libjava/gnu/java/security/der/DERValue.h create mode 100644 libjava/gnu/java/security/der/DERWriter.h create mode 100644 libjava/gnu/java/security/hash/BaseHash.h create mode 100644 libjava/gnu/java/security/hash/HashFactory.h create mode 100644 libjava/gnu/java/security/hash/Haval.h create mode 100644 libjava/gnu/java/security/hash/IMessageDigest.h create mode 100644 libjava/gnu/java/security/hash/MD2.h create mode 100644 libjava/gnu/java/security/hash/MD4.h create mode 100644 libjava/gnu/java/security/hash/MD5.h create mode 100644 libjava/gnu/java/security/hash/RipeMD128.h create mode 100644 libjava/gnu/java/security/hash/RipeMD160.h create mode 100644 libjava/gnu/java/security/hash/Sha160.h create mode 100644 libjava/gnu/java/security/hash/Sha256.h create mode 100644 libjava/gnu/java/security/hash/Sha384.h create mode 100644 libjava/gnu/java/security/hash/Sha512.h create mode 100644 libjava/gnu/java/security/hash/Tiger.h create mode 100644 libjava/gnu/java/security/hash/Whirlpool.h create mode 100644 libjava/gnu/java/security/jce/hash/HavalSpi.h create mode 100644 libjava/gnu/java/security/jce/hash/MD2Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/MD4Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/MD5Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/MessageDigestAdapter.h create mode 100644 libjava/gnu/java/security/jce/hash/RipeMD128Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/RipeMD160Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/Sha160Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/Sha256Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/Sha384Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/Sha512Spi.h create mode 100644 libjava/gnu/java/security/jce/hash/TigerSpi.h create mode 100644 libjava/gnu/java/security/jce/hash/WhirlpoolSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/HavalRandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/MD2RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/MD4RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/MD5RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/RipeMD128RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/RipeMD160RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/SecureRandomAdapter.h create mode 100644 libjava/gnu/java/security/jce/prng/Sha160RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/Sha256RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/Sha384RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/Sha512RandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/TigerRandomSpi.h create mode 100644 libjava/gnu/java/security/jce/prng/WhirlpoolRandomSpi.h create mode 100644 libjava/gnu/java/security/jce/sig/DSSKeyFactory.h create mode 100644 libjava/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.h create mode 100644 libjava/gnu/java/security/jce/sig/DSSParameters.h create mode 100644 libjava/gnu/java/security/jce/sig/DSSParametersGenerator.h create mode 100644 libjava/gnu/java/security/jce/sig/DSSRawSignatureSpi.h create mode 100644 libjava/gnu/java/security/jce/sig/EncodedKeyFactory.h create mode 100644 libjava/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.h create mode 100644 libjava/gnu/java/security/jce/sig/MD2withRSA.h create mode 100644 libjava/gnu/java/security/jce/sig/MD5withRSA.h create mode 100644 libjava/gnu/java/security/jce/sig/RSAKeyFactory.h create mode 100644 libjava/gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.h create mode 100644 libjava/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.h create mode 100644 libjava/gnu/java/security/jce/sig/SHA160withDSS.h create mode 100644 libjava/gnu/java/security/jce/sig/SHA160withRSA.h create mode 100644 libjava/gnu/java/security/jce/sig/SHA256withRSA.h create mode 100644 libjava/gnu/java/security/jce/sig/SHA384withRSA.h create mode 100644 libjava/gnu/java/security/jce/sig/SHA512withRSA.h create mode 100644 libjava/gnu/java/security/jce/sig/SignatureAdapter.h create mode 100644 libjava/gnu/java/security/key/IKeyPairCodec.h create mode 100644 libjava/gnu/java/security/key/IKeyPairGenerator.h create mode 100644 libjava/gnu/java/security/key/KeyPairCodecFactory.h create mode 100644 libjava/gnu/java/security/key/KeyPairGeneratorFactory.h create mode 100644 libjava/gnu/java/security/key/dss/DSSKey.h create mode 100644 libjava/gnu/java/security/key/dss/DSSKeyPairGenerator.h create mode 100644 libjava/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.h create mode 100644 libjava/gnu/java/security/key/dss/DSSKeyPairRawCodec.h create mode 100644 libjava/gnu/java/security/key/dss/DSSKeyPairX509Codec.h create mode 100644 libjava/gnu/java/security/key/dss/DSSPrivateKey.h create mode 100644 libjava/gnu/java/security/key/dss/DSSPublicKey.h create mode 100644 libjava/gnu/java/security/key/dss/FIPS186.h create mode 100644 libjava/gnu/java/security/key/rsa/GnuRSAKey.h create mode 100644 libjava/gnu/java/security/key/rsa/GnuRSAPrivateKey.h create mode 100644 libjava/gnu/java/security/key/rsa/GnuRSAPublicKey.h create mode 100644 libjava/gnu/java/security/key/rsa/RSAKeyPairGenerator.h create mode 100644 libjava/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.h create mode 100644 libjava/gnu/java/security/key/rsa/RSAKeyPairRawCodec.h create mode 100644 libjava/gnu/java/security/key/rsa/RSAKeyPairX509Codec.h create mode 100644 libjava/gnu/java/security/pkcs/PKCS7Data.h create mode 100644 libjava/gnu/java/security/pkcs/PKCS7SignedData.h create mode 100644 libjava/gnu/java/security/pkcs/SignerInfo.h create mode 100644 libjava/gnu/java/security/prng/BasePRNG.h create mode 100644 libjava/gnu/java/security/prng/EntropySource.h create mode 100644 libjava/gnu/java/security/prng/IRandom.h create mode 100644 libjava/gnu/java/security/prng/LimitReachedException.h create mode 100644 libjava/gnu/java/security/prng/MDGenerator.h create mode 100644 libjava/gnu/java/security/prng/PRNGFactory.h create mode 100644 libjava/gnu/java/security/prng/RandomEvent.h create mode 100644 libjava/gnu/java/security/prng/RandomEventListener.h create mode 100644 libjava/gnu/java/security/provider/CollectionCertStoreImpl.h create mode 100644 libjava/gnu/java/security/provider/DefaultPolicy.h create mode 100644 libjava/gnu/java/security/provider/Gnu$1.h create mode 100644 libjava/gnu/java/security/provider/Gnu.h create mode 100644 libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.h create mode 100644 libjava/gnu/java/security/provider/X509CertificateFactory.h create mode 100644 libjava/gnu/java/security/sig/BaseSignature.h create mode 100644 libjava/gnu/java/security/sig/ISignature.h create mode 100644 libjava/gnu/java/security/sig/ISignatureCodec.h create mode 100644 libjava/gnu/java/security/sig/SignatureCodecFactory.h create mode 100644 libjava/gnu/java/security/sig/SignatureFactory.h create mode 100644 libjava/gnu/java/security/sig/dss/DSSSignature.h create mode 100644 libjava/gnu/java/security/sig/dss/DSSSignatureRawCodec.h create mode 100644 libjava/gnu/java/security/sig/dss/DSSSignatureX509Codec.h create mode 100644 libjava/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.h create mode 100644 libjava/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.h create mode 100644 libjava/gnu/java/security/sig/rsa/EMSA_PSS.h create mode 100644 libjava/gnu/java/security/sig/rsa/RSA.h create mode 100644 libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.h create mode 100644 libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.h create mode 100644 libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.h create mode 100644 libjava/gnu/java/security/sig/rsa/RSAPSSSignature.h create mode 100644 libjava/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.h create mode 100644 libjava/gnu/java/security/sig/rsa/RSASignatureFactory.h create mode 100644 libjava/gnu/java/security/util/Base64.h create mode 100644 libjava/gnu/java/security/util/ByteArray.h create mode 100644 libjava/gnu/java/security/util/ByteBufferOutputStream.h create mode 100644 libjava/gnu/java/security/util/DerUtil.h create mode 100644 libjava/gnu/java/security/util/ExpirableObject$Destroyer.h create mode 100644 libjava/gnu/java/security/util/ExpirableObject.h create mode 100644 libjava/gnu/java/security/util/FormatUtil.h create mode 100644 libjava/gnu/java/security/util/IntegerUtil$1.h create mode 100644 libjava/gnu/java/security/util/IntegerUtil.h create mode 100644 libjava/gnu/java/security/util/PRNG.h create mode 100644 libjava/gnu/java/security/util/Prime.h create mode 100644 libjava/gnu/java/security/util/Sequence.h create mode 100644 libjava/gnu/java/security/util/SimpleList.h create mode 100644 libjava/gnu/java/security/util/Util.h create mode 100644 libjava/gnu/java/security/x509/GnuPKIExtension.h create mode 100644 libjava/gnu/java/security/x509/PolicyNodeImpl.h create mode 100644 libjava/gnu/java/security/x509/Util.h create mode 100644 libjava/gnu/java/security/x509/X500DistinguishedName.h create mode 100644 libjava/gnu/java/security/x509/X509CRL.h create mode 100644 libjava/gnu/java/security/x509/X509CRLEntry.h create mode 100644 libjava/gnu/java/security/x509/X509CRLSelectorImpl.h create mode 100644 libjava/gnu/java/security/x509/X509CertPath.h create mode 100644 libjava/gnu/java/security/x509/X509CertSelectorImpl.h create mode 100644 libjava/gnu/java/security/x509/X509Certificate.h create mode 100644 libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.h create mode 100644 libjava/gnu/java/security/x509/ext/BasicConstraints.h create mode 100644 libjava/gnu/java/security/x509/ext/CRLNumber.h create mode 100644 libjava/gnu/java/security/x509/ext/CertificatePolicies.h create mode 100644 libjava/gnu/java/security/x509/ext/ExtendedKeyUsage.h create mode 100644 libjava/gnu/java/security/x509/ext/Extension$Value.h create mode 100644 libjava/gnu/java/security/x509/ext/Extension.h create mode 100644 libjava/gnu/java/security/x509/ext/GeneralNames.h create mode 100644 libjava/gnu/java/security/x509/ext/IssuerAlternativeNames.h create mode 100644 libjava/gnu/java/security/x509/ext/KeyUsage.h create mode 100644 libjava/gnu/java/security/x509/ext/PolicyConstraint.h create mode 100644 libjava/gnu/java/security/x509/ext/PolicyMappings.h create mode 100644 libjava/gnu/java/security/x509/ext/PrivateKeyUsagePeriod.h create mode 100644 libjava/gnu/java/security/x509/ext/ReasonCode.h create mode 100644 libjava/gnu/java/security/x509/ext/SubjectAlternativeNames.h create mode 100644 libjava/gnu/java/security/x509/ext/SubjectKeyIdentifier.h create mode 100644 libjava/gnu/java/text/AttributedFormatBuffer.h create mode 100644 libjava/gnu/java/text/BaseBreakIterator.h create mode 100644 libjava/gnu/java/text/CharacterBreakIterator.h create mode 100644 libjava/gnu/java/text/FormatBuffer.h create mode 100644 libjava/gnu/java/text/FormatCharacterIterator.h create mode 100644 libjava/gnu/java/text/LineBreakIterator.h create mode 100644 libjava/gnu/java/text/SentenceBreakIterator.h create mode 100644 libjava/gnu/java/text/StringFormatBuffer.h create mode 100644 libjava/gnu/java/text/WordBreakIterator.h create mode 100644 libjava/gnu/java/util/DoubleEnumeration.h create mode 100644 libjava/gnu/java/util/EmptyEnumeration.h create mode 100644 libjava/gnu/java/util/WeakIdentityHashMap$1.h create mode 100644 libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry.h create mode 100644 libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket.h create mode 100644 libjava/gnu/java/util/WeakIdentityHashMap$WeakEntrySet.h create mode 100644 libjava/gnu/java/util/WeakIdentityHashMap.h create mode 100644 libjava/gnu/java/util/jar/JarUtils.h create mode 100644 libjava/gnu/java/util/prefs/EventDispatcher.h create mode 100644 libjava/gnu/java/util/prefs/FileBasedFactory.h create mode 100644 libjava/gnu/java/util/prefs/FileBasedPreferences$1.h create mode 100644 libjava/gnu/java/util/prefs/FileBasedPreferences.h create mode 100644 libjava/gnu/java/util/prefs/GConfBasedFactory.h create mode 100644 libjava/gnu/java/util/prefs/GConfBasedPreferences.h create mode 100644 libjava/gnu/java/util/prefs/MemoryBasedFactory.h create mode 100644 libjava/gnu/java/util/prefs/MemoryBasedPreferences.h create mode 100644 libjava/gnu/java/util/prefs/NodeReader.h create mode 100644 libjava/gnu/java/util/prefs/NodeWriter.h create mode 100644 libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h create mode 100644 libjava/gnu/java/util/regex/BacktrackStack$Backtrack.h create mode 100644 libjava/gnu/java/util/regex/BacktrackStack.h create mode 100644 libjava/gnu/java/util/regex/CharIndexed.h create mode 100644 libjava/gnu/java/util/regex/CharIndexedCharArray.h create mode 100644 libjava/gnu/java/util/regex/CharIndexedCharSequence.h create mode 100644 libjava/gnu/java/util/regex/CharIndexedInputStream.h create mode 100644 libjava/gnu/java/util/regex/CharIndexedString.h create mode 100644 libjava/gnu/java/util/regex/CharIndexedStringBuffer.h create mode 100644 libjava/gnu/java/util/regex/RE$CharExpression.h create mode 100644 libjava/gnu/java/util/regex/RE$CharUnit.h create mode 100644 libjava/gnu/java/util/regex/RE$IntPair.h create mode 100644 libjava/gnu/java/util/regex/RE$NamedProperty.h create mode 100644 libjava/gnu/java/util/regex/RE$ParseCharClassResult.h create mode 100644 libjava/gnu/java/util/regex/RE.h create mode 100644 libjava/gnu/java/util/regex/REException.h create mode 100644 libjava/gnu/java/util/regex/REFilterInputStream.h create mode 100644 libjava/gnu/java/util/regex/REMatch.h create mode 100644 libjava/gnu/java/util/regex/REMatchEnumeration.h create mode 100644 libjava/gnu/java/util/regex/RESyntax.h create mode 100644 libjava/gnu/java/util/regex/REToken.h create mode 100644 libjava/gnu/java/util/regex/RETokenAny.h create mode 100644 libjava/gnu/java/util/regex/RETokenBackRef.h create mode 100644 libjava/gnu/java/util/regex/RETokenChar.h create mode 100644 libjava/gnu/java/util/regex/RETokenEnd.h create mode 100644 libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h create mode 100644 libjava/gnu/java/util/regex/RETokenEndSub.h create mode 100644 libjava/gnu/java/util/regex/RETokenIndependent.h create mode 100644 libjava/gnu/java/util/regex/RETokenLookAhead.h create mode 100644 libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h create mode 100644 libjava/gnu/java/util/regex/RETokenLookBehind.h create mode 100644 libjava/gnu/java/util/regex/RETokenNamedProperty$1.h create mode 100644 libjava/gnu/java/util/regex/RETokenNamedProperty$Handler.h create mode 100644 libjava/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.h create mode 100644 libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.h create mode 100644 libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.h create mode 100644 libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.h create mode 100644 libjava/gnu/java/util/regex/RETokenNamedProperty.h create mode 100644 libjava/gnu/java/util/regex/RETokenOneOf.h create mode 100644 libjava/gnu/java/util/regex/RETokenPOSIX.h create mode 100644 libjava/gnu/java/util/regex/RETokenRange.h create mode 100644 libjava/gnu/java/util/regex/RETokenRepeated$DoablesFinder.h create mode 100644 libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControl.h create mode 100644 libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h create mode 100644 libjava/gnu/java/util/regex/RETokenRepeated$StackedInfo.h create mode 100644 libjava/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.h create mode 100644 libjava/gnu/java/util/regex/RETokenRepeated.h create mode 100644 libjava/gnu/java/util/regex/RETokenStart.h create mode 100644 libjava/gnu/java/util/regex/RETokenWordBoundary.h create mode 100644 libjava/gnu/java/util/regex/UncheckedRE.h create mode 100644 libjava/gnu/javax/crypto/RSACipherImpl.h create mode 100644 libjava/gnu/javax/crypto/assembly/Assembly.h create mode 100644 libjava/gnu/javax/crypto/assembly/Cascade.h create mode 100644 libjava/gnu/javax/crypto/assembly/CascadeStage.h create mode 100644 libjava/gnu/javax/crypto/assembly/CascadeTransformer.h create mode 100644 libjava/gnu/javax/crypto/assembly/DeflateTransformer.h create mode 100644 libjava/gnu/javax/crypto/assembly/Direction.h create mode 100644 libjava/gnu/javax/crypto/assembly/LoopbackTransformer.h create mode 100644 libjava/gnu/javax/crypto/assembly/ModeStage.h create mode 100644 libjava/gnu/javax/crypto/assembly/Operation.h create mode 100644 libjava/gnu/javax/crypto/assembly/PaddingTransformer.h create mode 100644 libjava/gnu/javax/crypto/assembly/Stage.h create mode 100644 libjava/gnu/javax/crypto/assembly/Transformer.h create mode 100644 libjava/gnu/javax/crypto/assembly/TransformerException.h create mode 100644 libjava/gnu/javax/crypto/cipher/Anubis.h create mode 100644 libjava/gnu/javax/crypto/cipher/BaseCipher.h create mode 100644 libjava/gnu/javax/crypto/cipher/Blowfish$Block.h create mode 100644 libjava/gnu/javax/crypto/cipher/Blowfish$Context.h create mode 100644 libjava/gnu/javax/crypto/cipher/Blowfish.h create mode 100644 libjava/gnu/javax/crypto/cipher/Cast5$Cast5Key.h create mode 100644 libjava/gnu/javax/crypto/cipher/Cast5.h create mode 100644 libjava/gnu/javax/crypto/cipher/CipherFactory.h create mode 100644 libjava/gnu/javax/crypto/cipher/DES$Context.h create mode 100644 libjava/gnu/javax/crypto/cipher/DES.h create mode 100644 libjava/gnu/javax/crypto/cipher/IBlockCipher.h create mode 100644 libjava/gnu/javax/crypto/cipher/IBlockCipherSpi.h create mode 100644 libjava/gnu/javax/crypto/cipher/Khazad.h create mode 100644 libjava/gnu/javax/crypto/cipher/NullCipher.h create mode 100644 libjava/gnu/javax/crypto/cipher/Rijndael.h create mode 100644 libjava/gnu/javax/crypto/cipher/Serpent$Key.h create mode 100644 libjava/gnu/javax/crypto/cipher/Serpent.h create mode 100644 libjava/gnu/javax/crypto/cipher/Square.h create mode 100644 libjava/gnu/javax/crypto/cipher/TripleDES$Context.h create mode 100644 libjava/gnu/javax/crypto/cipher/TripleDES.h create mode 100644 libjava/gnu/javax/crypto/cipher/Twofish.h create mode 100644 libjava/gnu/javax/crypto/cipher/WeakKeyException.h create mode 100644 libjava/gnu/javax/crypto/jce/DiffieHellmanImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/GnuCrypto$1.h create mode 100644 libjava/gnu/javax/crypto/jce/GnuCrypto.h create mode 100644 libjava/gnu/javax/crypto/jce/GnuSasl$1.h create mode 100644 libjava/gnu/javax/crypto/jce/GnuSasl.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD128.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD160.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacWhirlpool.h create mode 100644 libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/AESSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/ARCFourSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/AnubisSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/BlowfishSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/Cast5Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/CipherAdapter.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/DESSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/KhazadSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/NullCipherSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$AES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/PBES2.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/RijndaelSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/SerpentSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/SquareSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/TripleDESSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/cipher/TwofishSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/keyring/GnuKeyring.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacHavalSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacMD2Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacMD4Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacMD5Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacSHA160Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacSHA256Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacSHA384Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacSHA512Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacTigerSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/MacAdapter.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacAnubisImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacBlowfishImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacCast5Impl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacDESImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$DES.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Serpent.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Square.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl$Twofish.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacKhazadImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacRijndaelImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacSerpentImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacSquareImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacTripleDESImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/OMacTwofishImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/TMMH16Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/UHash32Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/mac/UMac32Spi.h create mode 100644 libjava/gnu/javax/crypto/jce/params/BlockCipherParameters.h create mode 100644 libjava/gnu/javax/crypto/jce/params/DEREncodingException.h create mode 100644 libjava/gnu/javax/crypto/jce/params/DERReader.h create mode 100644 libjava/gnu/javax/crypto/jce/params/DERWriter.h create mode 100644 libjava/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/prng/CSPRNGSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/prng/FortunaImpl.h create mode 100644 libjava/gnu/javax/crypto/jce/prng/ICMRandomSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/prng/UMacRandomSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/sig/DHKeyFactory.h create mode 100644 libjava/gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.h create mode 100644 libjava/gnu/javax/crypto/jce/sig/DHParameters.h create mode 100644 libjava/gnu/javax/crypto/jce/sig/DHParametersGenerator.h create mode 100644 libjava/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.h create mode 100644 libjava/gnu/javax/crypto/jce/spec/TMMHParameterSpec.h create mode 100644 libjava/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.h create mode 100644 libjava/gnu/javax/crypto/key/BaseKeyAgreementParty.h create mode 100644 libjava/gnu/javax/crypto/key/GnuPBEKey.h create mode 100644 libjava/gnu/javax/crypto/key/GnuSecretKey.h create mode 100644 libjava/gnu/javax/crypto/key/IKeyAgreementParty.h create mode 100644 libjava/gnu/javax/crypto/key/IncomingMessage.h create mode 100644 libjava/gnu/javax/crypto/key/KeyAgreementException.h create mode 100644 libjava/gnu/javax/crypto/key/KeyAgreementFactory.h create mode 100644 libjava/gnu/javax/crypto/key/OutgoingMessage.h create mode 100644 libjava/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.h create mode 100644 libjava/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.h create mode 100644 libjava/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.h create mode 100644 libjava/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.h create mode 100644 libjava/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.h create mode 100644 libjava/gnu/javax/crypto/key/dh/DiffieHellmanSender.h create mode 100644 libjava/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.h create mode 100644 libjava/gnu/javax/crypto/key/dh/ElGamalReceiver.h create mode 100644 libjava/gnu/javax/crypto/key/dh/ElGamalSender.h create mode 100644 libjava/gnu/javax/crypto/key/dh/GnuDHKey.h create mode 100644 libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h create mode 100644 libjava/gnu/javax/crypto/key/dh/GnuDHPrivateKey.h create mode 100644 libjava/gnu/javax/crypto/key/dh/GnuDHPublicKey.h create mode 100644 libjava/gnu/javax/crypto/key/dh/RFC2631.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRP6Host.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRP6SaslClient.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRP6SaslServer.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRP6TLSClient.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRP6TLSServer.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRP6User.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRPAlgorithm.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRPKey.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRPPrivateKey.h create mode 100644 libjava/gnu/javax/crypto/key/srp6/SRPPublicKey.h create mode 100644 libjava/gnu/javax/crypto/keyring/AuthenticatedEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/BaseKeyring.h create mode 100644 libjava/gnu/javax/crypto/keyring/BinaryDataEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/CertPathEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/CertificateEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/CompressedEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/EncryptedEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/Entry.h create mode 100644 libjava/gnu/javax/crypto/keyring/EnvelopeEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/GnuPrivateKeyring.h create mode 100644 libjava/gnu/javax/crypto/keyring/GnuPublicKeyring.h create mode 100644 libjava/gnu/javax/crypto/keyring/IKeyring.h create mode 100644 libjava/gnu/javax/crypto/keyring/IPrivateKeyring.h create mode 100644 libjava/gnu/javax/crypto/keyring/IPublicKeyring.h create mode 100644 libjava/gnu/javax/crypto/keyring/MalformedKeyringException.h create mode 100644 libjava/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/MeteredInputStream.h create mode 100644 libjava/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/PasswordEncryptedEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/PasswordProtectedEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/PrimitiveEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/PrivateKeyEntry.h create mode 100644 libjava/gnu/javax/crypto/keyring/Properties.h create mode 100644 libjava/gnu/javax/crypto/keyring/PublicKeyEntry.h create mode 100644 libjava/gnu/javax/crypto/kwa/AESKeyWrap.h create mode 100644 libjava/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.h create mode 100644 libjava/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.h create mode 100644 libjava/gnu/javax/crypto/kwa/KeyUnwrappingException.h create mode 100644 libjava/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.h create mode 100644 libjava/gnu/javax/crypto/kwa/TripleDESKeyWrap.h create mode 100644 libjava/gnu/javax/crypto/mac/BaseMac.h create mode 100644 libjava/gnu/javax/crypto/mac/HMac.h create mode 100644 libjava/gnu/javax/crypto/mac/HMacFactory.h create mode 100644 libjava/gnu/javax/crypto/mac/IMac.h create mode 100644 libjava/gnu/javax/crypto/mac/MacFactory.h create mode 100644 libjava/gnu/javax/crypto/mac/MacInputStream.h create mode 100644 libjava/gnu/javax/crypto/mac/MacOutputStream.h create mode 100644 libjava/gnu/javax/crypto/mac/OMAC.h create mode 100644 libjava/gnu/javax/crypto/mac/TMMH16.h create mode 100644 libjava/gnu/javax/crypto/mac/UHash32$L1Hash32.h create mode 100644 libjava/gnu/javax/crypto/mac/UHash32$L2Hash32.h create mode 100644 libjava/gnu/javax/crypto/mac/UHash32$L3Hash32.h create mode 100644 libjava/gnu/javax/crypto/mac/UHash32.h create mode 100644 libjava/gnu/javax/crypto/mac/UMac32.h create mode 100644 libjava/gnu/javax/crypto/mode/BaseMode.h create mode 100644 libjava/gnu/javax/crypto/mode/CBC.h create mode 100644 libjava/gnu/javax/crypto/mode/CFB.h create mode 100644 libjava/gnu/javax/crypto/mode/CTR.h create mode 100644 libjava/gnu/javax/crypto/mode/EAX.h create mode 100644 libjava/gnu/javax/crypto/mode/ECB.h create mode 100644 libjava/gnu/javax/crypto/mode/IAuthenticatedMode.h create mode 100644 libjava/gnu/javax/crypto/mode/ICM.h create mode 100644 libjava/gnu/javax/crypto/mode/IMode.h create mode 100644 libjava/gnu/javax/crypto/mode/ModeFactory.h create mode 100644 libjava/gnu/javax/crypto/mode/OFB.h create mode 100644 libjava/gnu/javax/crypto/pad/BasePad.h create mode 100644 libjava/gnu/javax/crypto/pad/IPad.h create mode 100644 libjava/gnu/javax/crypto/pad/ISO10126.h create mode 100644 libjava/gnu/javax/crypto/pad/PKCS1_V1_5.h create mode 100644 libjava/gnu/javax/crypto/pad/PKCS7.h create mode 100644 libjava/gnu/javax/crypto/pad/PadFactory.h create mode 100644 libjava/gnu/javax/crypto/pad/SSL3.h create mode 100644 libjava/gnu/javax/crypto/pad/TBC.h create mode 100644 libjava/gnu/javax/crypto/pad/TLS1.h create mode 100644 libjava/gnu/javax/crypto/pad/WrongPaddingException.h create mode 100644 libjava/gnu/javax/crypto/prng/ARCFour.h create mode 100644 libjava/gnu/javax/crypto/prng/CSPRNG$1.h create mode 100644 libjava/gnu/javax/crypto/prng/CSPRNG$Poller.h create mode 100644 libjava/gnu/javax/crypto/prng/CSPRNG$Spinner.h create mode 100644 libjava/gnu/javax/crypto/prng/CSPRNG.h create mode 100644 libjava/gnu/javax/crypto/prng/Fortuna$Generator.h create mode 100644 libjava/gnu/javax/crypto/prng/Fortuna.h create mode 100644 libjava/gnu/javax/crypto/prng/ICMGenerator.h create mode 100644 libjava/gnu/javax/crypto/prng/IPBE.h create mode 100644 libjava/gnu/javax/crypto/prng/PBKDF2.h create mode 100644 libjava/gnu/javax/crypto/prng/PRNGFactory.h create mode 100644 libjava/gnu/javax/crypto/prng/UMacGenerator.h create mode 100644 libjava/gnu/javax/crypto/sasl/AuthInfo.h create mode 100644 libjava/gnu/javax/crypto/sasl/AuthInfoProviderFactory.h create mode 100644 libjava/gnu/javax/crypto/sasl/ClientFactory.h create mode 100644 libjava/gnu/javax/crypto/sasl/ClientMechanism.h create mode 100644 libjava/gnu/javax/crypto/sasl/ConfidentialityException.h create mode 100644 libjava/gnu/javax/crypto/sasl/IAuthInfoProvider.h create mode 100644 libjava/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.h create mode 100644 libjava/gnu/javax/crypto/sasl/IllegalMechanismStateException.h create mode 100644 libjava/gnu/javax/crypto/sasl/InputBuffer.h create mode 100644 libjava/gnu/javax/crypto/sasl/IntegrityException.h create mode 100644 libjava/gnu/javax/crypto/sasl/NoSuchMechanismException.h create mode 100644 libjava/gnu/javax/crypto/sasl/NoSuchUserException.h create mode 100644 libjava/gnu/javax/crypto/sasl/OutputBuffer.h create mode 100644 libjava/gnu/javax/crypto/sasl/SaslEncodingException.h create mode 100644 libjava/gnu/javax/crypto/sasl/SaslInputStream.h create mode 100644 libjava/gnu/javax/crypto/sasl/SaslOutputStream.h create mode 100644 libjava/gnu/javax/crypto/sasl/SaslUtil.h create mode 100644 libjava/gnu/javax/crypto/sasl/ServerFactory.h create mode 100644 libjava/gnu/javax/crypto/sasl/ServerMechanism.h create mode 100644 libjava/gnu/javax/crypto/sasl/UserAlreadyExistsException.h create mode 100644 libjava/gnu/javax/crypto/sasl/anonymous/AnonymousClient.h create mode 100644 libjava/gnu/javax/crypto/sasl/anonymous/AnonymousServer.h create mode 100644 libjava/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.h create mode 100644 libjava/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.h create mode 100644 libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Client.h create mode 100644 libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.h create mode 100644 libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Server.h create mode 100644 libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Util.h create mode 100644 libjava/gnu/javax/crypto/sasl/crammd5/PasswordFile.h create mode 100644 libjava/gnu/javax/crypto/sasl/plain/PasswordFile.h create mode 100644 libjava/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.h create mode 100644 libjava/gnu/javax/crypto/sasl/plain/PlainClient.h create mode 100644 libjava/gnu/javax/crypto/sasl/plain/PlainRegistry.h create mode 100644 libjava/gnu/javax/crypto/sasl/plain/PlainServer.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/CALG.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/ClientStore.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/IALG.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/KDF.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/PasswordFile.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/SRP.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/SRPClient.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/SRPRegistry.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/SRPServer.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/SecurityContext.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/ServerStore.h create mode 100644 libjava/gnu/javax/crypto/sasl/srp/StoreEntry.h create mode 100644 libjava/gnu/javax/imageio/IIOInputStream.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPDecoder.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPEncoder.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPException.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPFileHeader.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPImageReader.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPImageReaderSpi.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPImageWriter.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPImageWriterSpi.h create mode 100644 libjava/gnu/javax/imageio/bmp/BMPInfoHeader.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeBF16.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeBF32.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeRGB1.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeRGB24.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeRGB4.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeRGB8.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeRLE4.h create mode 100644 libjava/gnu/javax/imageio/bmp/DecodeRLE8.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRGB1.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRGB16.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRGB24.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRGB32.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRGB4.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRGB8.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRLE4.h create mode 100644 libjava/gnu/javax/imageio/bmp/EncodeRLE8.h create mode 100644 libjava/gnu/javax/imageio/gif/GIFFile$GIFException.h create mode 100644 libjava/gnu/javax/imageio/gif/GIFFile.h create mode 100644 libjava/gnu/javax/imageio/gif/GIFImageReader.h create mode 100644 libjava/gnu/javax/imageio/gif/GIFImageReaderSpi.h create mode 100644 libjava/gnu/javax/imageio/jpeg/DCT.h create mode 100644 libjava/gnu/javax/imageio/jpeg/HuffmanTable.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGComponent.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGDecoder.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGException.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGFrame.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGImageInputStream.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGImageReader.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGMarker.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGMarkerFoundException.h create mode 100644 libjava/gnu/javax/imageio/jpeg/JPEGScan.h create mode 100644 libjava/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.h create mode 100644 libjava/gnu/javax/imageio/jpeg/ZigZag.h create mode 100644 libjava/gnu/javax/imageio/png/PNGChunk.h create mode 100644 libjava/gnu/javax/imageio/png/PNGData.h create mode 100644 libjava/gnu/javax/imageio/png/PNGDecoder.h create mode 100644 libjava/gnu/javax/imageio/png/PNGEncoder.h create mode 100644 libjava/gnu/javax/imageio/png/PNGException.h create mode 100644 libjava/gnu/javax/imageio/png/PNGFile.h create mode 100644 libjava/gnu/javax/imageio/png/PNGFilter.h create mode 100644 libjava/gnu/javax/imageio/png/PNGGamma.h create mode 100644 libjava/gnu/javax/imageio/png/PNGHeader.h create mode 100644 libjava/gnu/javax/imageio/png/PNGICCProfile.h create mode 100644 libjava/gnu/javax/imageio/png/PNGImageReader.h create mode 100644 libjava/gnu/javax/imageio/png/PNGImageReaderSpi.h create mode 100644 libjava/gnu/javax/imageio/png/PNGPalette.h create mode 100644 libjava/gnu/javax/imageio/png/PNGPhys.h create mode 100644 libjava/gnu/javax/imageio/png/PNGTime.h create mode 100644 libjava/gnu/javax/management/Server$ServerInfo.h create mode 100644 libjava/gnu/javax/management/Server$ServerInputStream.h create mode 100644 libjava/gnu/javax/management/Server$ServerNotificationListener.h create mode 100644 libjava/gnu/javax/management/Server.h create mode 100644 libjava/gnu/javax/naming/giop/ContextContinuation.h create mode 100644 libjava/gnu/javax/naming/giop/CorbalocParser.h create mode 100644 libjava/gnu/javax/naming/giop/GiopNamingEnumeration.h create mode 100644 libjava/gnu/javax/naming/giop/GiopNamingServiceFactory$1.h create mode 100644 libjava/gnu/javax/naming/giop/GiopNamingServiceFactory.h create mode 100644 libjava/gnu/javax/naming/giop/GiopNamingServiceURLContext.h create mode 100644 libjava/gnu/javax/naming/giop/ListBindingsEnumeration.h create mode 100644 libjava/gnu/javax/naming/giop/ListEnumeration.h create mode 100644 libjava/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.h create mode 100644 libjava/gnu/javax/naming/ictxImpl/trans/GnuName.h create mode 100644 libjava/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.h create mode 100644 libjava/gnu/javax/naming/jndi/url/rmi/ContextContinuation.h create mode 100644 libjava/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.h create mode 100644 libjava/gnu/javax/naming/jndi/url/rmi/ListEnumeration.h create mode 100644 libjava/gnu/javax/naming/jndi/url/rmi/RmiContinuation.h create mode 100644 libjava/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.h create mode 100644 libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContext.h create mode 100644 libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.h create mode 100644 libjava/gnu/javax/net/ssl/AbstractSessionContext.h create mode 100644 libjava/gnu/javax/net/ssl/Base64.h create mode 100644 libjava/gnu/javax/net/ssl/EntropySource.h create mode 100644 libjava/gnu/javax/net/ssl/NullManagerParameters.h create mode 100644 libjava/gnu/javax/net/ssl/PreSharedKeyManager.h create mode 100644 libjava/gnu/javax/net/ssl/PreSharedKeyManagerParameters.h create mode 100644 libjava/gnu/javax/net/ssl/PrivateCredentials.h create mode 100644 libjava/gnu/javax/net/ssl/SRPManagerParameters.h create mode 100644 libjava/gnu/javax/net/ssl/SRPTrustManager.h create mode 100644 libjava/gnu/javax/net/ssl/SSLCipherSuite.h create mode 100644 libjava/gnu/javax/net/ssl/SSLProtocolVersion.h create mode 100644 libjava/gnu/javax/net/ssl/SSLRecordHandler.h create mode 100644 libjava/gnu/javax/net/ssl/Session$ID.h create mode 100644 libjava/gnu/javax/net/ssl/Session.h create mode 100644 libjava/gnu/javax/net/ssl/SessionStoreException.h create mode 100644 libjava/gnu/javax/net/ssl/StaticTrustAnchors.h create mode 100644 libjava/gnu/javax/net/ssl/provider/AbstractHandshake$1.h create mode 100644 libjava/gnu/javax/net/ssl/provider/AbstractHandshake$CertVerifier.h create mode 100644 libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHE_PSKGen.h create mode 100644 libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHPhase.h create mode 100644 libjava/gnu/javax/net/ssl/provider/AbstractHandshake.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Alert$Description.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Alert$Level.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Alert.h create mode 100644 libjava/gnu/javax/net/ssl/provider/AlertException.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Builder.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Certificate.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateBuilder.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientCertificateType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateRequest.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateRequestBuilder.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest$ResponderIdIterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateStatusType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateURL$CertChainType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateURL$Iterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateURL$URLAndOptionalHash.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateURL.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CertificateVerify.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CipherAlgorithm.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CipherSuite.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CipherSuiteList$Iterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CipherSuiteList.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList$Iterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHandshake$State.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHandshake.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHello.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHelloBuilder.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientHelloV2.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientKeyExchange.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientPSKParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CompressionMethod.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CompressionMethodList$Iterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/CompressionMethodList.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Constructed.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ContentType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Context.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Debug.h create mode 100644 libjava/gnu/javax/net/ssl/provider/DelegatedTask.h create mode 100644 libjava/gnu/javax/net/ssl/provider/DiffieHellman.h create mode 100644 libjava/gnu/javax/net/ssl/provider/DigestInputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/DigestOutputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/EmptyExchangeKeys.h create mode 100644 libjava/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Enumerated.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ExchangeKeys.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Extension$Type.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Extension$Value.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Extension.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ExtensionList$ExtensionsIterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ExtensionList.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Extensions.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Finished.h create mode 100644 libjava/gnu/javax/net/ssl/provider/GNUSecurityParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Handshake$Body.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Handshake$Type.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Handshake$buffer.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Handshake.h create mode 100644 libjava/gnu/javax/net/ssl/provider/HelloRequest.h create mode 100644 libjava/gnu/javax/net/ssl/provider/InputSecurityParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/JCESecurityParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/JDBCSessionContext.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Jessie$1.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Jessie.h create mode 100644 libjava/gnu/javax/net/ssl/provider/JessieDHPrivateKey.h create mode 100644 libjava/gnu/javax/net/ssl/provider/JessieDHPublicKey.h create mode 100644 libjava/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.h create mode 100644 libjava/gnu/javax/net/ssl/provider/JessieRSAPublicKey.h create mode 100644 libjava/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.h create mode 100644 libjava/gnu/javax/net/ssl/provider/KeyPool.h create mode 100644 libjava/gnu/javax/net/ssl/provider/MacAlgorithm.h create mode 100644 libjava/gnu/javax/net/ssl/provider/MacException.h create mode 100644 libjava/gnu/javax/net/ssl/provider/MaxFragmentLength.h create mode 100644 libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/OverflowException.h create mode 100644 libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl$Manager.h create mode 100644 libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ProtocolVersion.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Random.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Record.h create mode 100644 libjava/gnu/javax/net/ssl/provider/RecordInput.h create mode 100644 libjava/gnu/javax/net/ssl/provider/RecordInputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/RecordOutputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/RecordingInputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLContextImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLEngineImpl$Mode.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLEngineImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLHMac.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLRSASignature.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLRandom.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLServerSocket.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactory.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLServerSocketImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocket.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketFactory.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$1.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketInputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketOutputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketInputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLSocketOutputStream.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SecurityParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerDHParams.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHandshake$CertLoader.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHandshake$GenDH.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSAKeyExchange.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSA_PSKExchange.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHandshake$State.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHandshake.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHello.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHelloBuilder.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerHelloDone.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerKeyExchange.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerNameList$Iterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerNameList$NameType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerNameList$ServerName.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerNameList.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerPSKParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerRSAParams.h create mode 100644 libjava/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Session$ID.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Session.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SessionContext.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SessionImpl.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Signature.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SignatureAlgorithm.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SimpleSessionContext$1.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SimpleSessionContext.h create mode 100644 libjava/gnu/javax/net/ssl/provider/SynchronizedRandom.h create mode 100644 libjava/gnu/javax/net/ssl/provider/TLSHMac.h create mode 100644 libjava/gnu/javax/net/ssl/provider/TLSRandom.h create mode 100644 libjava/gnu/javax/net/ssl/provider/TruncatedHMAC.h create mode 100644 libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.h create mode 100644 libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.h create mode 100644 libjava/gnu/javax/net/ssl/provider/TrustedAuthorities.h create mode 100644 libjava/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Util$1.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Util$2.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Util$WrappedBuffer.h create mode 100644 libjava/gnu/javax/net/ssl/provider/Util.h create mode 100644 libjava/gnu/javax/net/ssl/provider/X500PrincipalList$Iterator.h create mode 100644 libjava/gnu/javax/net/ssl/provider/X500PrincipalList.h create mode 100644 libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.h create mode 100644 libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory.h create mode 100644 libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory$Manager.h create mode 100644 libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory.h create mode 100644 libjava/gnu/javax/net/ssl/provider/XMLSessionContext$SAXHandler.h create mode 100644 libjava/gnu/javax/net/ssl/provider/XMLSessionContext.h create mode 100644 libjava/gnu/javax/print/CupsIppOperation.h create mode 100644 libjava/gnu/javax/print/CupsMediaMapping.h create mode 100644 libjava/gnu/javax/print/CupsPrintService.h create mode 100644 libjava/gnu/javax/print/CupsPrintServiceLookup.h create mode 100644 libjava/gnu/javax/print/CupsServer.h create mode 100644 libjava/gnu/javax/print/PrintAttributeException.h create mode 100644 libjava/gnu/javax/print/PrintFlavorException.h create mode 100644 libjava/gnu/javax/print/PrintUriException.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Color.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$AppearancePanel$JobAttributes.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Quality.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$AppearancePanel$SidesPanel.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$AppearancePanel.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$GeneralPanel$CopiesAndSorted.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintRange.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintServices.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$GeneralPanel.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Margins.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$MediaTypes.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Orientation.h create mode 100644 libjava/gnu/javax/print/PrinterDialog$PageSetupPanel.h create mode 100644 libjava/gnu/javax/print/PrinterDialog.h create mode 100644 libjava/gnu/javax/print/ipp/DocPrintJobImpl.h create mode 100644 libjava/gnu/javax/print/ipp/IppDelimiterTag.h create mode 100644 libjava/gnu/javax/print/ipp/IppException.h create mode 100644 libjava/gnu/javax/print/ipp/IppMultiDocPrintService.h create mode 100644 libjava/gnu/javax/print/ipp/IppPrintService.h create mode 100644 libjava/gnu/javax/print/ipp/IppRequest$RequestWriter.h create mode 100644 libjava/gnu/javax/print/ipp/IppRequest.h create mode 100644 libjava/gnu/javax/print/ipp/IppResponse$ResponseReader.h create mode 100644 libjava/gnu/javax/print/ipp/IppResponse.h create mode 100644 libjava/gnu/javax/print/ipp/IppStatusCode.h create mode 100644 libjava/gnu/javax/print/ipp/IppUtilities.h create mode 100644 libjava/gnu/javax/print/ipp/IppValueTag.h create mode 100644 libjava/gnu/javax/print/ipp/MultiDocPrintJobImpl.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/CharsetSyntax.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/DefaultValueAttribute.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/DetailedStatusMessage.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/DocumentAccessError.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/StatusMessage.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/UnknownAttribute.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/MediaDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/defaults/SidesDefault.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/AttributesCharset.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/JobId.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/JobMoreInfo.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/JobPrinterUri.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/JobStateMessage.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/job/JobUri.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/DocumentFormat.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/CharsetSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/CompressionSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/MediaSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/OperationsSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/SidesSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.h create mode 100644 libjava/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.h create mode 100644 libjava/gnu/javax/rmi/CORBA/CorbaInput.h create mode 100644 libjava/gnu/javax/rmi/CORBA/CorbaOutput.h create mode 100644 libjava/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.h create mode 100644 libjava/gnu/javax/rmi/CORBA/DelegateFactory.h create mode 100644 libjava/gnu/javax/rmi/CORBA/GetDelegateInstanceException.h create mode 100644 libjava/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.h create mode 100644 libjava/gnu/javax/rmi/CORBA/RmiUtilities$1.h create mode 100644 libjava/gnu/javax/rmi/CORBA/RmiUtilities$2.h create mode 100644 libjava/gnu/javax/rmi/CORBA/RmiUtilities.h create mode 100644 libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.h create mode 100644 libjava/gnu/javax/rmi/CORBA/TieTargetRecord.h create mode 100644 libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.h create mode 100644 libjava/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.h create mode 100644 libjava/gnu/javax/security/auth/Password.h create mode 100644 libjava/gnu/javax/security/auth/callback/AWTCallbackHandler.h create mode 100644 libjava/gnu/javax/security/auth/callback/AbstractCallbackHandler.h create mode 100644 libjava/gnu/javax/security/auth/callback/CertificateCallback.h create mode 100644 libjava/gnu/javax/security/auth/callback/ConsoleCallbackHandler.h create mode 100644 libjava/gnu/javax/security/auth/callback/DefaultCallbackHandler.h create mode 100644 libjava/gnu/javax/security/auth/callback/GnuCallbacks$1.h create mode 100644 libjava/gnu/javax/security/auth/callback/GnuCallbacks.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$1.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$2.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$3.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$4.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$5.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$6.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$7.h create mode 100644 libjava/gnu/javax/security/auth/callback/SwingCallbackHandler.h create mode 100644 libjava/gnu/javax/security/auth/login/ConfigFileParser.h create mode 100644 libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h create mode 100644 libjava/gnu/javax/security/auth/login/GnuConfiguration.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaPortInfo.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaSequencerInfo.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaReceiver.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaTransmitter.h create mode 100644 libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIInstrument.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.h create mode 100644 libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer.h create mode 100644 libjava/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.h create mode 100644 libjava/gnu/javax/sound/midi/file/MidiDataInputStream.h create mode 100644 libjava/gnu/javax/sound/midi/file/MidiDataOutputStream.h create mode 100644 libjava/gnu/javax/sound/midi/file/MidiFileReader.h create mode 100644 libjava/gnu/javax/sound/midi/file/MidiFileWriter.h create mode 100644 libjava/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.h create mode 100644 libjava/gnu/javax/sound/sampled/AU/AUReader$AUHeader.h create mode 100644 libjava/gnu/javax/sound/sampled/AU/AUReader.h create mode 100644 libjava/gnu/javax/sound/sampled/WAV/WAVReader.h create mode 100644 libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.h create mode 100644 libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$RadioButtonIcon.h create mode 100644 libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel.h create mode 100644 libjava/gnu/javax/swing/plaf/metal/CustomizableTheme.h create mode 100644 libjava/gnu/javax/swing/text/html/CharacterAttributeTranslator.h create mode 100644 libjava/gnu/javax/swing/text/html/CombinedAttributes$CombinedEnumeration.h create mode 100644 libjava/gnu/javax/swing/text/html/CombinedAttributes.h create mode 100644 libjava/gnu/javax/swing/text/html/ImageViewIconFactory$LoadingImageIcon.h create mode 100644 libjava/gnu/javax/swing/text/html/ImageViewIconFactory$NoImageIcon.h create mode 100644 libjava/gnu/javax/swing/text/html/ImageViewIconFactory.h create mode 100644 libjava/gnu/javax/swing/text/html/css/BorderStyle.h create mode 100644 libjava/gnu/javax/swing/text/html/css/BorderWidth.h create mode 100644 libjava/gnu/javax/swing/text/html/css/CSSColor.h create mode 100644 libjava/gnu/javax/swing/text/html/css/CSSLexicalException.h create mode 100644 libjava/gnu/javax/swing/text/html/css/CSSParser$1.h create mode 100644 libjava/gnu/javax/swing/text/html/css/CSSParser.h create mode 100644 libjava/gnu/javax/swing/text/html/css/CSSParserCallback.h create mode 100644 libjava/gnu/javax/swing/text/html/css/CSSParserException.h create mode 100644 libjava/gnu/javax/swing/text/html/css/CSSScanner.h create mode 100644 libjava/gnu/javax/swing/text/html/css/FontSize.h create mode 100644 libjava/gnu/javax/swing/text/html/css/FontStyle.h create mode 100644 libjava/gnu/javax/swing/text/html/css/FontWeight.h create mode 100644 libjava/gnu/javax/swing/text/html/css/Length.h create mode 100644 libjava/gnu/javax/swing/text/html/css/Selector.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator$gnuParser.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/HTML_401F.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/HTML_401Swing.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet$1.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/gnuDTD.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet$1.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/htmlValidator$hTag.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/htmlValidator.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/models/TableRowContentModel.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/models/list.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/models/noTagModel.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/models/node.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/models/transformer.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/Parser$1.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/Parser$2.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/Parser.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/Buffer.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/Constants.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/Location.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/ParseException.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/Queue.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/Token.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/node.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/low/pattern.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/parameterDefaulter.h create mode 100644 libjava/gnu/javax/swing/text/html/parser/support/textPreProcessor.h create mode 100644 libjava/gnu/javax/swing/tree/GnuPath.h create mode 100644 libjava/gnu/xml/aelfred2/JAXPFactory$JaxpParser.h create mode 100644 libjava/gnu/xml/aelfred2/JAXPFactory.h create mode 100644 libjava/gnu/xml/aelfred2/SAXDriver$Adapter.h create mode 100644 libjava/gnu/xml/aelfred2/SAXDriver$Attribute.h create mode 100644 libjava/gnu/xml/aelfred2/SAXDriver.h create mode 100644 libjava/gnu/xml/aelfred2/XmlParser$AttributeDecl.h create mode 100644 libjava/gnu/xml/aelfred2/XmlParser$ElementDecl.h create mode 100644 libjava/gnu/xml/aelfred2/XmlParser$EntityInfo.h create mode 100644 libjava/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.h create mode 100644 libjava/gnu/xml/aelfred2/XmlParser$Input.h create mode 100644 libjava/gnu/xml/aelfred2/XmlParser.h create mode 100644 libjava/gnu/xml/aelfred2/XmlReader$FatalErrorHandler.h create mode 100644 libjava/gnu/xml/aelfred2/XmlReader.h create mode 100644 libjava/gnu/xml/dom/Consumer$Backdoor.h create mode 100644 libjava/gnu/xml/dom/Consumer.h create mode 100644 libjava/gnu/xml/dom/DTDAttributeTypeInfo.h create mode 100644 libjava/gnu/xml/dom/DTDElementTypeInfo.h create mode 100644 libjava/gnu/xml/dom/DomAttr.h create mode 100644 libjava/gnu/xml/dom/DomCDATASection.h create mode 100644 libjava/gnu/xml/dom/DomCharacterData$EmptyNodeList.h create mode 100644 libjava/gnu/xml/dom/DomCharacterData.h create mode 100644 libjava/gnu/xml/dom/DomComment.h create mode 100644 libjava/gnu/xml/dom/DomDOMException.h create mode 100644 libjava/gnu/xml/dom/DomDoctype.h create mode 100644 libjava/gnu/xml/dom/DomDocument.h create mode 100644 libjava/gnu/xml/dom/DomDocumentBuilder.h create mode 100644 libjava/gnu/xml/dom/DomDocumentBuilderFactory.h create mode 100644 libjava/gnu/xml/dom/DomDocumentConfiguration.h create mode 100644 libjava/gnu/xml/dom/DomDocumentFragment.h create mode 100644 libjava/gnu/xml/dom/DomElement.h create mode 100644 libjava/gnu/xml/dom/DomEntity.h create mode 100644 libjava/gnu/xml/dom/DomEntityReference.h create mode 100644 libjava/gnu/xml/dom/DomEvent$DomMutationEvent.h create mode 100644 libjava/gnu/xml/dom/DomEvent$DomUIEvent.h create mode 100644 libjava/gnu/xml/dom/DomEvent.h create mode 100644 libjava/gnu/xml/dom/DomExtern.h create mode 100644 libjava/gnu/xml/dom/DomImpl.h create mode 100644 libjava/gnu/xml/dom/DomIterator.h create mode 100644 libjava/gnu/xml/dom/DomNSResolverContext.h create mode 100644 libjava/gnu/xml/dom/DomNamedNodeMap.h create mode 100644 libjava/gnu/xml/dom/DomNode$DomEventException.h create mode 100644 libjava/gnu/xml/dom/DomNode$ListenerRecord.h create mode 100644 libjava/gnu/xml/dom/DomNode$LiveNodeList.h create mode 100644 libjava/gnu/xml/dom/DomNode$ShadowList.h create mode 100644 libjava/gnu/xml/dom/DomNode.h create mode 100644 libjava/gnu/xml/dom/DomNodeIterator.h create mode 100644 libjava/gnu/xml/dom/DomNotation.h create mode 100644 libjava/gnu/xml/dom/DomNsNode.h create mode 100644 libjava/gnu/xml/dom/DomProcessingInstruction.h create mode 100644 libjava/gnu/xml/dom/DomText.h create mode 100644 libjava/gnu/xml/dom/DomXPathExpression.h create mode 100644 libjava/gnu/xml/dom/DomXPathNSResolver.h create mode 100644 libjava/gnu/xml/dom/DomXPathResult.h create mode 100644 libjava/gnu/xml/dom/ImplementationList.h create mode 100644 libjava/gnu/xml/dom/ImplementationSource.h create mode 100644 libjava/gnu/xml/dom/JAXPFactory$JAXPBuilder.h create mode 100644 libjava/gnu/xml/dom/JAXPFactory.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLAnchorElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLAppletElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLAreaElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLBRElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLBaseElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLBaseFontElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLBodyElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLButtonElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLCollection.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLDListElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLDirectoryElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLDivElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLDocument.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLEmbedElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLFieldSetElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLFontElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLFormElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLFrameElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLFrameSetElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLHRElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLHeadElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLHeadingElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLHtmlElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLIFrameElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLImageElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLImpl.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLInputElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLIsIndexElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLLIElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLLabelElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLLegendElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLLinkElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLMapElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLMenuElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLMetaElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLModElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLOListElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLObjectElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLOptGroupElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLOptionElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLParagraphElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLParamElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLParser.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLPreElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLQuoteElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLScriptElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLSelectElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLStyleElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTableCaptionElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTableCellElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTableColElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTableElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTableRowElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTableSectionElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTextAreaElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLTitleElement.h create mode 100644 libjava/gnu/xml/dom/html2/DomHTMLUListElement.h create mode 100644 libjava/gnu/xml/dom/ls/DomLSException.h create mode 100644 libjava/gnu/xml/dom/ls/DomLSInput.h create mode 100644 libjava/gnu/xml/dom/ls/DomLSOutput.h create mode 100644 libjava/gnu/xml/dom/ls/DomLSParser.h create mode 100644 libjava/gnu/xml/dom/ls/DomLSSerializer.h create mode 100644 libjava/gnu/xml/dom/ls/FilteredSAXEventSink.h create mode 100644 libjava/gnu/xml/dom/ls/ReaderInputStream.h create mode 100644 libjava/gnu/xml/dom/ls/SAXEventSink.h create mode 100644 libjava/gnu/xml/dom/ls/WriterOutputStream.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeAttr.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeCDATASection.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeCharacterData.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeComment.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeDOMException.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeDOMStringList.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeDocument.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeDocumentFragment.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeDocumentType.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeElement.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeEntity.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeEntityReference.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeNode.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeNodeList.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeNotation.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeText.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeTypeInfo.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeXPathExpression.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeXPathNodeList.h create mode 100644 libjava/gnu/xml/libxmlj/dom/GnomeXPathResult.h create mode 100644 libjava/gnu/xml/libxmlj/sax/GnomeLocator.h create mode 100644 libjava/gnu/xml/libxmlj/sax/GnomeSAXParser.h create mode 100644 libjava/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.h create mode 100644 libjava/gnu/xml/libxmlj/sax/GnomeXMLReader.h create mode 100644 libjava/gnu/xml/libxmlj/sax/Namespaces.h create mode 100644 libjava/gnu/xml/libxmlj/sax/StringArrayAttributes.h create mode 100644 libjava/gnu/xml/libxmlj/sax/XMLName.h create mode 100644 libjava/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.h create mode 100644 libjava/gnu/xml/libxmlj/transform/GnomeTransformer.h create mode 100644 libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory$AssociatedStylesheetHandler.h create mode 100644 libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory.h create mode 100644 libjava/gnu/xml/libxmlj/transform/URIResolverEntityResolver.h create mode 100644 libjava/gnu/xml/libxmlj/util/EmptyNodeList.h create mode 100644 libjava/gnu/xml/libxmlj/util/NamedInputStream.h create mode 100644 libjava/gnu/xml/libxmlj/util/StandaloneDocumentType.h create mode 100644 libjava/gnu/xml/libxmlj/util/StandaloneLocator.h create mode 100644 libjava/gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.h create mode 100644 libjava/gnu/xml/libxmlj/util/XMLJ.h create mode 100644 libjava/gnu/xml/pipeline/CallFilter$Requestor.h create mode 100644 libjava/gnu/xml/pipeline/CallFilter.h create mode 100644 libjava/gnu/xml/pipeline/DomConsumer$Handler.h create mode 100644 libjava/gnu/xml/pipeline/DomConsumer.h create mode 100644 libjava/gnu/xml/pipeline/EventConsumer.h create mode 100644 libjava/gnu/xml/pipeline/EventFilter.h create mode 100644 libjava/gnu/xml/pipeline/LinkFilter.h create mode 100644 libjava/gnu/xml/pipeline/NSFilter.h create mode 100644 libjava/gnu/xml/pipeline/PipelineFactory$Pipeline.h create mode 100644 libjava/gnu/xml/pipeline/PipelineFactory$Stage.h create mode 100644 libjava/gnu/xml/pipeline/PipelineFactory.h create mode 100644 libjava/gnu/xml/pipeline/TeeConsumer.h create mode 100644 libjava/gnu/xml/pipeline/TextConsumer.h create mode 100644 libjava/gnu/xml/pipeline/ValidationConsumer$AttributeInfo.h create mode 100644 libjava/gnu/xml/pipeline/ValidationConsumer$ChildrenRecognizer.h create mode 100644 libjava/gnu/xml/pipeline/ValidationConsumer$ElementInfo.h create mode 100644 libjava/gnu/xml/pipeline/ValidationConsumer$EmptyRecognizer.h create mode 100644 libjava/gnu/xml/pipeline/ValidationConsumer$MixedRecognizer.h create mode 100644 libjava/gnu/xml/pipeline/ValidationConsumer$Recognizer.h create mode 100644 libjava/gnu/xml/pipeline/ValidationConsumer.h create mode 100644 libjava/gnu/xml/pipeline/WellFormednessFilter.h create mode 100644 libjava/gnu/xml/pipeline/XIncludeFilter$Scrubber.h create mode 100644 libjava/gnu/xml/pipeline/XIncludeFilter.h create mode 100644 libjava/gnu/xml/pipeline/XsltFilter.h create mode 100644 libjava/gnu/xml/stream/AttributeImpl.h create mode 100644 libjava/gnu/xml/stream/BufferedReader.h create mode 100644 libjava/gnu/xml/stream/CRLFReader.h create mode 100644 libjava/gnu/xml/stream/CharactersImpl.h create mode 100644 libjava/gnu/xml/stream/CommentImpl.h create mode 100644 libjava/gnu/xml/stream/DTDImpl.h create mode 100644 libjava/gnu/xml/stream/EndDocumentImpl.h create mode 100644 libjava/gnu/xml/stream/EndElementImpl.h create mode 100644 libjava/gnu/xml/stream/EntityDeclarationImpl.h create mode 100644 libjava/gnu/xml/stream/EntityReferenceImpl.h create mode 100644 libjava/gnu/xml/stream/FilteredEventReader.h create mode 100644 libjava/gnu/xml/stream/FilteredStreamReader.h create mode 100644 libjava/gnu/xml/stream/NamespaceImpl.h create mode 100644 libjava/gnu/xml/stream/NotationDeclarationImpl.h create mode 100644 libjava/gnu/xml/stream/ProcessingInstructionImpl.h create mode 100644 libjava/gnu/xml/stream/SAXParser.h create mode 100644 libjava/gnu/xml/stream/SAXParserFactory.h create mode 100644 libjava/gnu/xml/stream/StartDocumentImpl.h create mode 100644 libjava/gnu/xml/stream/StartElementImpl.h create mode 100644 libjava/gnu/xml/stream/UnicodeReader.h create mode 100644 libjava/gnu/xml/stream/XIncludeFilter.h create mode 100644 libjava/gnu/xml/stream/XMLEventAllocatorImpl.h create mode 100644 libjava/gnu/xml/stream/XMLEventFactoryImpl.h create mode 100644 libjava/gnu/xml/stream/XMLEventImpl.h create mode 100644 libjava/gnu/xml/stream/XMLEventReaderImpl.h create mode 100644 libjava/gnu/xml/stream/XMLEventWriterImpl.h create mode 100644 libjava/gnu/xml/stream/XMLInputFactoryImpl.h create mode 100644 libjava/gnu/xml/stream/XMLOutputFactoryImpl.h create mode 100644 libjava/gnu/xml/stream/XMLParser$AnyContentModel.h create mode 100644 libjava/gnu/xml/stream/XMLParser$Attribute.h create mode 100644 libjava/gnu/xml/stream/XMLParser$AttributeDecl.h create mode 100644 libjava/gnu/xml/stream/XMLParser$ContentModel.h create mode 100644 libjava/gnu/xml/stream/XMLParser$ContentParticle.h create mode 100644 libjava/gnu/xml/stream/XMLParser$Doctype.h create mode 100644 libjava/gnu/xml/stream/XMLParser$ElementContentModel.h create mode 100644 libjava/gnu/xml/stream/XMLParser$EmptyContentModel.h create mode 100644 libjava/gnu/xml/stream/XMLParser$ExternalIds.h create mode 100644 libjava/gnu/xml/stream/XMLParser$Input.h create mode 100644 libjava/gnu/xml/stream/XMLParser$MixedContentModel.h create mode 100644 libjava/gnu/xml/stream/XMLParser.h create mode 100644 libjava/gnu/xml/stream/XMLStreamWriterImpl.h create mode 100644 libjava/gnu/xml/transform/AbstractNumberNode.h create mode 100644 libjava/gnu/xml/transform/ApplyImportsNode.h create mode 100644 libjava/gnu/xml/transform/ApplyTemplatesNode.h create mode 100644 libjava/gnu/xml/transform/AttributeNode.h create mode 100644 libjava/gnu/xml/transform/AttributeSet.h create mode 100644 libjava/gnu/xml/transform/Bindings.h create mode 100644 libjava/gnu/xml/transform/CallTemplateNode.h create mode 100644 libjava/gnu/xml/transform/ChooseNode.h create mode 100644 libjava/gnu/xml/transform/CommentNode.h create mode 100644 libjava/gnu/xml/transform/CopyNode.h create mode 100644 libjava/gnu/xml/transform/CopyOfNode.h create mode 100644 libjava/gnu/xml/transform/CurrentFunction.h create mode 100644 libjava/gnu/xml/transform/DOMSourceLocator.h create mode 100644 libjava/gnu/xml/transform/DocumentFunction.h create mode 100644 libjava/gnu/xml/transform/ElementAvailableFunction.h create mode 100644 libjava/gnu/xml/transform/ElementNode.h create mode 100644 libjava/gnu/xml/transform/ErrorListenerErrorHandler.h create mode 100644 libjava/gnu/xml/transform/ForEachNode.h create mode 100644 libjava/gnu/xml/transform/FormatNumberFunction.h create mode 100644 libjava/gnu/xml/transform/FunctionAvailableFunction.h create mode 100644 libjava/gnu/xml/transform/GenerateIdFunction.h create mode 100644 libjava/gnu/xml/transform/IfNode.h create mode 100644 libjava/gnu/xml/transform/Key.h create mode 100644 libjava/gnu/xml/transform/KeyFunction.h create mode 100644 libjava/gnu/xml/transform/LiteralNode.h create mode 100644 libjava/gnu/xml/transform/MessageNode.h create mode 100644 libjava/gnu/xml/transform/NamespaceProxy.h create mode 100644 libjava/gnu/xml/transform/NodeNumberNode.h create mode 100644 libjava/gnu/xml/transform/NumberNode.h create mode 100644 libjava/gnu/xml/transform/OtherwiseNode.h create mode 100644 libjava/gnu/xml/transform/ParameterNode.h create mode 100644 libjava/gnu/xml/transform/ProcessingInstructionNode.h create mode 100644 libjava/gnu/xml/transform/SAXSerializer.h create mode 100644 libjava/gnu/xml/transform/SAXTemplatesHandler.h create mode 100644 libjava/gnu/xml/transform/SAXTransformerHandler.h create mode 100644 libjava/gnu/xml/transform/SortKey.h create mode 100644 libjava/gnu/xml/transform/StreamSerializer.h create mode 100644 libjava/gnu/xml/transform/StrippingInstruction.h create mode 100644 libjava/gnu/xml/transform/Stylesheet.h create mode 100644 libjava/gnu/xml/transform/SystemPropertyFunction.h create mode 100644 libjava/gnu/xml/transform/Template.h create mode 100644 libjava/gnu/xml/transform/TemplateNode.h create mode 100644 libjava/gnu/xml/transform/TemplatesImpl.h create mode 100644 libjava/gnu/xml/transform/TextNode.h create mode 100644 libjava/gnu/xml/transform/TransformerFactoryImpl.h create mode 100644 libjava/gnu/xml/transform/TransformerImpl.h create mode 100644 libjava/gnu/xml/transform/TransformerOutputProperties.h create mode 100644 libjava/gnu/xml/transform/URIResolverEntityResolver.h create mode 100644 libjava/gnu/xml/transform/UnparsedEntityUriFunction.h create mode 100644 libjava/gnu/xml/transform/ValueOfNode.h create mode 100644 libjava/gnu/xml/transform/WhenNode.h create mode 100644 libjava/gnu/xml/transform/WithParam.h create mode 100644 libjava/gnu/xml/transform/XSLComparator.h create mode 100644 libjava/gnu/xml/transform/XSLURIResolver.h create mode 100644 libjava/gnu/xml/util/DoParse$MyErrorHandler.h create mode 100644 libjava/gnu/xml/util/DoParse.h create mode 100644 libjava/gnu/xml/util/DomParser.h create mode 100644 libjava/gnu/xml/util/Resolver.h create mode 100644 libjava/gnu/xml/util/SAXNullTransformerFactory$DomHandler.h create mode 100644 libjava/gnu/xml/util/SAXNullTransformerFactory$DomTerminus.h create mode 100644 libjava/gnu/xml/util/SAXNullTransformerFactory$ListenerAdapter.h create mode 100644 libjava/gnu/xml/util/SAXNullTransformerFactory$LocatorAdapter.h create mode 100644 libjava/gnu/xml/util/SAXNullTransformerFactory$NullHandler.h create mode 100644 libjava/gnu/xml/util/SAXNullTransformerFactory$NullTransformer.h create mode 100644 libjava/gnu/xml/util/SAXNullTransformerFactory.h create mode 100644 libjava/gnu/xml/util/XCat$Catalog.h create mode 100644 libjava/gnu/xml/util/XCat$DoneDelegation.h create mode 100644 libjava/gnu/xml/util/XCat$Loader.h create mode 100644 libjava/gnu/xml/util/XCat.h create mode 100644 libjava/gnu/xml/util/XHTMLWriter.h create mode 100644 libjava/gnu/xml/util/XMLWriter.h create mode 100644 libjava/gnu/xml/validation/datatype/Annotation.h create mode 100644 libjava/gnu/xml/validation/datatype/AnySimpleType.h create mode 100644 libjava/gnu/xml/validation/datatype/AnyType.h create mode 100644 libjava/gnu/xml/validation/datatype/AnyURIType.h create mode 100644 libjava/gnu/xml/validation/datatype/AtomicSimpleType.h create mode 100644 libjava/gnu/xml/validation/datatype/Base64BinaryType.h create mode 100644 libjava/gnu/xml/validation/datatype/BooleanType.h create mode 100644 libjava/gnu/xml/validation/datatype/ByteType.h create mode 100644 libjava/gnu/xml/validation/datatype/DateTimeType.h create mode 100644 libjava/gnu/xml/validation/datatype/DateType.h create mode 100644 libjava/gnu/xml/validation/datatype/DecimalType.h create mode 100644 libjava/gnu/xml/validation/datatype/DoubleType.h create mode 100644 libjava/gnu/xml/validation/datatype/DurationType$Duration.h create mode 100644 libjava/gnu/xml/validation/datatype/DurationType.h create mode 100644 libjava/gnu/xml/validation/datatype/EntitiesType.h create mode 100644 libjava/gnu/xml/validation/datatype/EntityType.h create mode 100644 libjava/gnu/xml/validation/datatype/EnumerationFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/Facet.h create mode 100644 libjava/gnu/xml/validation/datatype/FloatType.h create mode 100644 libjava/gnu/xml/validation/datatype/FractionDigitsFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/GDayType$GDay.h create mode 100644 libjava/gnu/xml/validation/datatype/GDayType.h create mode 100644 libjava/gnu/xml/validation/datatype/GMonthDayType$GMonthDay.h create mode 100644 libjava/gnu/xml/validation/datatype/GMonthDayType.h create mode 100644 libjava/gnu/xml/validation/datatype/GMonthType$GMonth.h create mode 100644 libjava/gnu/xml/validation/datatype/GMonthType.h create mode 100644 libjava/gnu/xml/validation/datatype/GYearMonthType$GYearMonth.h create mode 100644 libjava/gnu/xml/validation/datatype/GYearMonthType.h create mode 100644 libjava/gnu/xml/validation/datatype/GYearType$GYear.h create mode 100644 libjava/gnu/xml/validation/datatype/GYearType.h create mode 100644 libjava/gnu/xml/validation/datatype/HexBinaryType.h create mode 100644 libjava/gnu/xml/validation/datatype/IDRefType.h create mode 100644 libjava/gnu/xml/validation/datatype/IDRefsType.h create mode 100644 libjava/gnu/xml/validation/datatype/IDType.h create mode 100644 libjava/gnu/xml/validation/datatype/IntType.h create mode 100644 libjava/gnu/xml/validation/datatype/IntegerType.h create mode 100644 libjava/gnu/xml/validation/datatype/LanguageType.h create mode 100644 libjava/gnu/xml/validation/datatype/LengthFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/ListSimpleType.h create mode 100644 libjava/gnu/xml/validation/datatype/LongType.h create mode 100644 libjava/gnu/xml/validation/datatype/MaxExclusiveFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/MaxInclusiveFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/MaxLengthFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/MinExclusiveFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/MinInclusiveFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/MinLengthFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/NCNameType.h create mode 100644 libjava/gnu/xml/validation/datatype/NMTokenType.h create mode 100644 libjava/gnu/xml/validation/datatype/NMTokensType.h create mode 100644 libjava/gnu/xml/validation/datatype/NameType.h create mode 100644 libjava/gnu/xml/validation/datatype/NegativeIntegerType.h create mode 100644 libjava/gnu/xml/validation/datatype/NonNegativeIntegerType.h create mode 100644 libjava/gnu/xml/validation/datatype/NonPositiveIntegerType.h create mode 100644 libjava/gnu/xml/validation/datatype/NormalizedStringType.h create mode 100644 libjava/gnu/xml/validation/datatype/NotationType.h create mode 100644 libjava/gnu/xml/validation/datatype/PatternFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/PositiveIntegerType.h create mode 100644 libjava/gnu/xml/validation/datatype/QNameType.h create mode 100644 libjava/gnu/xml/validation/datatype/ShortType.h create mode 100644 libjava/gnu/xml/validation/datatype/SimpleType.h create mode 100644 libjava/gnu/xml/validation/datatype/StringType.h create mode 100644 libjava/gnu/xml/validation/datatype/TimeType$Time.h create mode 100644 libjava/gnu/xml/validation/datatype/TimeType.h create mode 100644 libjava/gnu/xml/validation/datatype/TokenType.h create mode 100644 libjava/gnu/xml/validation/datatype/TotalDigitsFacet.h create mode 100644 libjava/gnu/xml/validation/datatype/Type.h create mode 100644 libjava/gnu/xml/validation/datatype/TypeBuilder.h create mode 100644 libjava/gnu/xml/validation/datatype/TypeLibrary.h create mode 100644 libjava/gnu/xml/validation/datatype/TypeLibraryFactory.h create mode 100644 libjava/gnu/xml/validation/datatype/UnionSimpleType.h create mode 100644 libjava/gnu/xml/validation/datatype/UnsignedByteType.h create mode 100644 libjava/gnu/xml/validation/datatype/UnsignedIntType.h create mode 100644 libjava/gnu/xml/validation/datatype/UnsignedLongType.h create mode 100644 libjava/gnu/xml/validation/datatype/UnsignedShortType.h create mode 100644 libjava/gnu/xml/validation/datatype/WhiteSpaceFacet.h create mode 100644 libjava/gnu/xml/validation/relaxng/AnyNameNameClass.h create mode 100644 libjava/gnu/xml/validation/relaxng/AttributePattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/ChoiceNameClass.h create mode 100644 libjava/gnu/xml/validation/relaxng/ChoicePattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/DataPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/Define.h create mode 100644 libjava/gnu/xml/validation/relaxng/ElementPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/EmptyPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/FullSyntaxBuilder.h create mode 100644 libjava/gnu/xml/validation/relaxng/Grammar.h create mode 100644 libjava/gnu/xml/validation/relaxng/GrammarException.h create mode 100644 libjava/gnu/xml/validation/relaxng/GrammarValidator.h create mode 100644 libjava/gnu/xml/validation/relaxng/GroupPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/InterleavePattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/ListPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/NSNameNameClass.h create mode 100644 libjava/gnu/xml/validation/relaxng/NameClass.h create mode 100644 libjava/gnu/xml/validation/relaxng/NameNameClass.h create mode 100644 libjava/gnu/xml/validation/relaxng/NotAllowedPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/OneOrMorePattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/Param.h create mode 100644 libjava/gnu/xml/validation/relaxng/Pattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.h create mode 100644 libjava/gnu/xml/validation/relaxng/RefPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/TextPattern.h create mode 100644 libjava/gnu/xml/validation/relaxng/ValuePattern.h create mode 100644 libjava/gnu/xml/validation/xmlschema/AnyAttribute.h create mode 100644 libjava/gnu/xml/validation/xmlschema/AttributeDeclaration.h create mode 100644 libjava/gnu/xml/validation/xmlschema/AttributeUse.h create mode 100644 libjava/gnu/xml/validation/xmlschema/ComplexType.h create mode 100644 libjava/gnu/xml/validation/xmlschema/ElementDeclaration.h create mode 100644 libjava/gnu/xml/validation/xmlschema/Particle.h create mode 100644 libjava/gnu/xml/validation/xmlschema/ValidationException.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchema.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaBuilder.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaValidator.h create mode 100644 libjava/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.h create mode 100644 libjava/gnu/xml/xpath/AndExpr.h create mode 100644 libjava/gnu/xml/xpath/ArithmeticExpr.h create mode 100644 libjava/gnu/xml/xpath/BooleanFunction.h create mode 100644 libjava/gnu/xml/xpath/CeilingFunction.h create mode 100644 libjava/gnu/xml/xpath/ConcatFunction.h create mode 100644 libjava/gnu/xml/xpath/Constant.h create mode 100644 libjava/gnu/xml/xpath/ContainsFunction.h create mode 100644 libjava/gnu/xml/xpath/CountFunction.h create mode 100644 libjava/gnu/xml/xpath/DocumentOrderComparator.h create mode 100644 libjava/gnu/xml/xpath/EqualityExpr.h create mode 100644 libjava/gnu/xml/xpath/Expr$ExprNodeSet.h create mode 100644 libjava/gnu/xml/xpath/Expr.h create mode 100644 libjava/gnu/xml/xpath/FalseFunction.h create mode 100644 libjava/gnu/xml/xpath/FloorFunction.h create mode 100644 libjava/gnu/xml/xpath/Function.h create mode 100644 libjava/gnu/xml/xpath/FunctionCall.h create mode 100644 libjava/gnu/xml/xpath/IdFunction.h create mode 100644 libjava/gnu/xml/xpath/LangFunction.h create mode 100644 libjava/gnu/xml/xpath/LastFunction.h create mode 100644 libjava/gnu/xml/xpath/LocalNameFunction.h create mode 100644 libjava/gnu/xml/xpath/NameFunction.h create mode 100644 libjava/gnu/xml/xpath/NameTest.h create mode 100644 libjava/gnu/xml/xpath/NamespaceTest.h create mode 100644 libjava/gnu/xml/xpath/NamespaceUriFunction.h create mode 100644 libjava/gnu/xml/xpath/NegativeExpr.h create mode 100644 libjava/gnu/xml/xpath/NodeTypeTest.h create mode 100644 libjava/gnu/xml/xpath/NormalizeSpaceFunction.h create mode 100644 libjava/gnu/xml/xpath/NotFunction.h create mode 100644 libjava/gnu/xml/xpath/NumberFunction.h create mode 100644 libjava/gnu/xml/xpath/OrExpr.h create mode 100644 libjava/gnu/xml/xpath/ParenthesizedExpr.h create mode 100644 libjava/gnu/xml/xpath/Path.h create mode 100644 libjava/gnu/xml/xpath/Pattern.h create mode 100644 libjava/gnu/xml/xpath/PositionFunction.h create mode 100644 libjava/gnu/xml/xpath/Predicate.h create mode 100644 libjava/gnu/xml/xpath/RelationalExpr.h create mode 100644 libjava/gnu/xml/xpath/Root.h create mode 100644 libjava/gnu/xml/xpath/RoundFunction.h create mode 100644 libjava/gnu/xml/xpath/Selector.h create mode 100644 libjava/gnu/xml/xpath/StartsWithFunction.h create mode 100644 libjava/gnu/xml/xpath/Steps.h create mode 100644 libjava/gnu/xml/xpath/StringFunction.h create mode 100644 libjava/gnu/xml/xpath/StringLengthFunction.h create mode 100644 libjava/gnu/xml/xpath/SubstringAfterFunction.h create mode 100644 libjava/gnu/xml/xpath/SubstringBeforeFunction.h create mode 100644 libjava/gnu/xml/xpath/SubstringFunction.h create mode 100644 libjava/gnu/xml/xpath/SumFunction.h create mode 100644 libjava/gnu/xml/xpath/Test.h create mode 100644 libjava/gnu/xml/xpath/TranslateFunction.h create mode 100644 libjava/gnu/xml/xpath/TrueFunction.h create mode 100644 libjava/gnu/xml/xpath/UnionExpr.h create mode 100644 libjava/gnu/xml/xpath/VariableReference.h create mode 100644 libjava/gnu/xml/xpath/XPathFactoryImpl.h create mode 100644 libjava/gnu/xml/xpath/XPathImpl.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyCheckClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyDefRedClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyDgotoClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyGindexClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyLenClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyLhsClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyNameClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyRindexClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YySindexClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$YyTableClass.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$yyException.h create mode 100644 libjava/gnu/xml/xpath/XPathParser$yyInput.h create mode 100644 libjava/gnu/xml/xpath/XPathParser.h create mode 100644 libjava/gnu/xml/xpath/XPathTokenizer$XPathToken.h create mode 100644 libjava/gnu/xml/xpath/XPathTokenizer.h create mode 100644 libjava/headers.txt create mode 100644 libjava/java/applet/Applet$AccessibleApplet.h create mode 100644 libjava/java/applet/Applet$URLAudioClip.h create mode 100644 libjava/java/applet/Applet.h create mode 100644 libjava/java/applet/AppletContext.h create mode 100644 libjava/java/applet/AppletStub.h create mode 100644 libjava/java/applet/AudioClip.h create mode 100644 libjava/java/awt/AWTError.h create mode 100644 libjava/java/awt/AWTEvent.h create mode 100644 libjava/java/awt/AWTEventMulticaster.h create mode 100644 libjava/java/awt/AWTException.h create mode 100644 libjava/java/awt/AWTKeyStroke$1.h create mode 100644 libjava/java/awt/AWTKeyStroke$2.h create mode 100644 libjava/java/awt/AWTKeyStroke$3.h create mode 100644 libjava/java/awt/AWTKeyStroke.h create mode 100644 libjava/java/awt/AWTPermission.h create mode 100644 libjava/java/awt/ActiveEvent.h create mode 100644 libjava/java/awt/Adjustable.h create mode 100644 libjava/java/awt/AlphaComposite$1.h create mode 100644 libjava/java/awt/AlphaComposite.h create mode 100644 libjava/java/awt/AttributeValue.h create mode 100644 libjava/java/awt/BasicStroke.h create mode 100644 libjava/java/awt/BorderLayout.h create mode 100644 libjava/java/awt/BufferCapabilities$FlipContents.h create mode 100644 libjava/java/awt/BufferCapabilities.h create mode 100644 libjava/java/awt/Button$AccessibleAWTButton.h create mode 100644 libjava/java/awt/Button.h create mode 100644 libjava/java/awt/Canvas$AccessibleAWTCanvas.h create mode 100644 libjava/java/awt/Canvas$CanvasBltBufferStrategy.h create mode 100644 libjava/java/awt/Canvas$CanvasFlipBufferStrategy.h create mode 100644 libjava/java/awt/Canvas.h create mode 100644 libjava/java/awt/CardLayout.h create mode 100644 libjava/java/awt/Checkbox$AccessibleAWTCheckbox.h create mode 100644 libjava/java/awt/Checkbox.h create mode 100644 libjava/java/awt/CheckboxGroup.h create mode 100644 libjava/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.h create mode 100644 libjava/java/awt/CheckboxMenuItem.h create mode 100644 libjava/java/awt/Choice$AccessibleAWTChoice.h create mode 100644 libjava/java/awt/Choice.h create mode 100644 libjava/java/awt/Color.h create mode 100644 libjava/java/awt/ColorPaintContext$ColorRaster.h create mode 100644 libjava/java/awt/ColorPaintContext.h create mode 100644 libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.h create mode 100644 libjava/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.h create mode 100644 libjava/java/awt/Component$AccessibleAWTComponent.h create mode 100644 libjava/java/awt/Component$BltBufferStrategy.h create mode 100644 libjava/java/awt/Component$FlipBufferStrategy.h create mode 100644 libjava/java/awt/Component$HeavyweightInLightweightListener.h create mode 100644 libjava/java/awt/Component.h create mode 100644 libjava/java/awt/ComponentOrientation.h create mode 100644 libjava/java/awt/Composite.h create mode 100644 libjava/java/awt/CompositeContext.h create mode 100644 libjava/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.h create mode 100644 libjava/java/awt/Container$AccessibleAWTContainer.h create mode 100644 libjava/java/awt/Container$GfxPaintAllVisitor.h create mode 100644 libjava/java/awt/Container$GfxPaintVisitor.h create mode 100644 libjava/java/awt/Container$GfxPrintAllVisitor.h create mode 100644 libjava/java/awt/Container$GfxPrintVisitor.h create mode 100644 libjava/java/awt/Container$GfxVisitor.h create mode 100644 libjava/java/awt/Container.h create mode 100644 libjava/java/awt/ContainerOrderFocusTraversalPolicy.h create mode 100644 libjava/java/awt/Cursor.h create mode 100644 libjava/java/awt/DefaultFocusTraversalPolicy.h create mode 100644 libjava/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.h create mode 100644 libjava/java/awt/DefaultKeyboardFocusManager.h create mode 100644 libjava/java/awt/Dialog$AccessibleAWTDialog.h create mode 100644 libjava/java/awt/Dialog.h create mode 100644 libjava/java/awt/Dimension.h create mode 100644 libjava/java/awt/DisplayMode.h create mode 100644 libjava/java/awt/Event.h create mode 100644 libjava/java/awt/EventDispatchThread.h create mode 100644 libjava/java/awt/EventQueue$Queue.h create mode 100644 libjava/java/awt/EventQueue.h create mode 100644 libjava/java/awt/FileDialog.h create mode 100644 libjava/java/awt/FlowLayout.h create mode 100644 libjava/java/awt/FocusTraversalPolicy.h create mode 100644 libjava/java/awt/Font.h create mode 100644 libjava/java/awt/FontFormatException.h create mode 100644 libjava/java/awt/FontMetrics.h create mode 100644 libjava/java/awt/Frame$AccessibleAWTFrame.h create mode 100644 libjava/java/awt/Frame.h create mode 100644 libjava/java/awt/GradientPaint.h create mode 100644 libjava/java/awt/Graphics.h create mode 100644 libjava/java/awt/Graphics2D.h create mode 100644 libjava/java/awt/GraphicsConfigTemplate.h create mode 100644 libjava/java/awt/GraphicsConfiguration.h create mode 100644 libjava/java/awt/GraphicsDevice.h create mode 100644 libjava/java/awt/GraphicsEnvironment.h create mode 100644 libjava/java/awt/GridBagConstraints.h create mode 100644 libjava/java/awt/GridBagLayout.h create mode 100644 libjava/java/awt/GridBagLayoutInfo.h create mode 100644 libjava/java/awt/GridLayout.h create mode 100644 libjava/java/awt/HeadlessException.h create mode 100644 libjava/java/awt/IllegalComponentStateException.h create mode 100644 libjava/java/awt/Image.h create mode 100644 libjava/java/awt/ImageCapabilities.h create mode 100644 libjava/java/awt/Insets.h create mode 100644 libjava/java/awt/ItemSelectable.h create mode 100644 libjava/java/awt/JobAttributes$DefaultSelectionType.h create mode 100644 libjava/java/awt/JobAttributes$DestinationType.h create mode 100644 libjava/java/awt/JobAttributes$DialogType.h create mode 100644 libjava/java/awt/JobAttributes$MultipleDocumentHandlingType.h create mode 100644 libjava/java/awt/JobAttributes$SidesType.h create mode 100644 libjava/java/awt/JobAttributes.h create mode 100644 libjava/java/awt/KeyEventDispatcher.h create mode 100644 libjava/java/awt/KeyEventPostProcessor.h create mode 100644 libjava/java/awt/KeyboardFocusManager.h create mode 100644 libjava/java/awt/Label$AccessibleAWTLabel.h create mode 100644 libjava/java/awt/Label.h create mode 100644 libjava/java/awt/LayoutManager.h create mode 100644 libjava/java/awt/LayoutManager2.h create mode 100644 libjava/java/awt/LightweightDispatcher.h create mode 100644 libjava/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.h create mode 100644 libjava/java/awt/List$AccessibleAWTList.h create mode 100644 libjava/java/awt/List.h create mode 100644 libjava/java/awt/MediaTracker$MediaEntry.h create mode 100644 libjava/java/awt/MediaTracker.h create mode 100644 libjava/java/awt/Menu$AccessibleAWTMenu.h create mode 100644 libjava/java/awt/Menu.h create mode 100644 libjava/java/awt/MenuBar$AccessibleAWTMenuBar.h create mode 100644 libjava/java/awt/MenuBar.h create mode 100644 libjava/java/awt/MenuComponent$AccessibleAWTMenuComponent.h create mode 100644 libjava/java/awt/MenuComponent.h create mode 100644 libjava/java/awt/MenuContainer.h create mode 100644 libjava/java/awt/MenuItem$AccessibleAWTMenuItem.h create mode 100644 libjava/java/awt/MenuItem.h create mode 100644 libjava/java/awt/MenuShortcut.h create mode 100644 libjava/java/awt/MouseInfo.h create mode 100644 libjava/java/awt/PageAttributes$ColorType.h create mode 100644 libjava/java/awt/PageAttributes$MediaType.h create mode 100644 libjava/java/awt/PageAttributes$OrientationRequestedType.h create mode 100644 libjava/java/awt/PageAttributes$OriginType.h create mode 100644 libjava/java/awt/PageAttributes$PrintQualityType.h create mode 100644 libjava/java/awt/PageAttributes.h create mode 100644 libjava/java/awt/Paint.h create mode 100644 libjava/java/awt/PaintContext.h create mode 100644 libjava/java/awt/Panel$AccessibleAWTPanel.h create mode 100644 libjava/java/awt/Panel.h create mode 100644 libjava/java/awt/Point.h create mode 100644 libjava/java/awt/PointerInfo.h create mode 100644 libjava/java/awt/Polygon$1.h create mode 100644 libjava/java/awt/Polygon.h create mode 100644 libjava/java/awt/PopupMenu$AccessibleAWTPopupMenu.h create mode 100644 libjava/java/awt/PopupMenu.h create mode 100644 libjava/java/awt/PrintGraphics.h create mode 100644 libjava/java/awt/PrintJob.h create mode 100644 libjava/java/awt/Rectangle.h create mode 100644 libjava/java/awt/RenderingHints$Key.h create mode 100644 libjava/java/awt/RenderingHints$KeyImpl.h create mode 100644 libjava/java/awt/RenderingHints.h create mode 100644 libjava/java/awt/Robot$1.h create mode 100644 libjava/java/awt/Robot.h create mode 100644 libjava/java/awt/ScrollPane$AccessibleAWTScrollPane.h create mode 100644 libjava/java/awt/ScrollPane.h create mode 100644 libjava/java/awt/ScrollPaneAdjustable.h create mode 100644 libjava/java/awt/Scrollbar$AccessibleAWTScrollBar.h create mode 100644 libjava/java/awt/Scrollbar.h create mode 100644 libjava/java/awt/Shape.h create mode 100644 libjava/java/awt/Stroke.h create mode 100644 libjava/java/awt/SystemColor.h create mode 100644 libjava/java/awt/TextArea$AccessibleAWTTextArea.h create mode 100644 libjava/java/awt/TextArea.h create mode 100644 libjava/java/awt/TextComponent$AccessibleAWTTextComponent.h create mode 100644 libjava/java/awt/TextComponent.h create mode 100644 libjava/java/awt/TextField$AccessibleAWTTextField.h create mode 100644 libjava/java/awt/TextField.h create mode 100644 libjava/java/awt/TexturePaint.h create mode 100644 libjava/java/awt/Toolkit$1.h create mode 100644 libjava/java/awt/Toolkit$2.h create mode 100644 libjava/java/awt/Toolkit.h create mode 100644 libjava/java/awt/Transparency.h create mode 100644 libjava/java/awt/Window$AccessibleAWTWindow.h create mode 100644 libjava/java/awt/Window$WindowBltBufferStrategy.h create mode 100644 libjava/java/awt/Window$WindowFlipBufferStrategy.h create mode 100644 libjava/java/awt/Window.h create mode 100644 libjava/java/awt/color/CMMException.h create mode 100644 libjava/java/awt/color/ColorSpace.h create mode 100644 libjava/java/awt/color/ICC_ColorSpace.h create mode 100644 libjava/java/awt/color/ICC_Profile.h create mode 100644 libjava/java/awt/color/ICC_ProfileGray.h create mode 100644 libjava/java/awt/color/ICC_ProfileRGB.h create mode 100644 libjava/java/awt/color/ProfileDataException.h create mode 100644 libjava/java/awt/datatransfer/Clipboard.h create mode 100644 libjava/java/awt/datatransfer/ClipboardOwner.h create mode 100644 libjava/java/awt/datatransfer/DataFlavor.h create mode 100644 libjava/java/awt/datatransfer/FlavorEvent.h create mode 100644 libjava/java/awt/datatransfer/FlavorListener.h create mode 100644 libjava/java/awt/datatransfer/FlavorMap.h create mode 100644 libjava/java/awt/datatransfer/FlavorTable.h create mode 100644 libjava/java/awt/datatransfer/MimeType.h create mode 100644 libjava/java/awt/datatransfer/MimeTypeParseException.h create mode 100644 libjava/java/awt/datatransfer/StringSelection.h create mode 100644 libjava/java/awt/datatransfer/SystemFlavorMap.h create mode 100644 libjava/java/awt/datatransfer/Transferable.h create mode 100644 libjava/java/awt/datatransfer/UnsupportedFlavorException.h create mode 100644 libjava/java/awt/dnd/Autoscroll.h create mode 100644 libjava/java/awt/dnd/DnDConstants.h create mode 100644 libjava/java/awt/dnd/DnDEventMulticaster.h create mode 100644 libjava/java/awt/dnd/DragGestureEvent.h create mode 100644 libjava/java/awt/dnd/DragGestureListener.h create mode 100644 libjava/java/awt/dnd/DragGestureRecognizer.h create mode 100644 libjava/java/awt/dnd/DragSource.h create mode 100644 libjava/java/awt/dnd/DragSourceAdapter.h create mode 100644 libjava/java/awt/dnd/DragSourceContext.h create mode 100644 libjava/java/awt/dnd/DragSourceDragEvent.h create mode 100644 libjava/java/awt/dnd/DragSourceDropEvent.h create mode 100644 libjava/java/awt/dnd/DragSourceEvent.h create mode 100644 libjava/java/awt/dnd/DragSourceListener.h create mode 100644 libjava/java/awt/dnd/DragSourceMotionListener.h create mode 100644 libjava/java/awt/dnd/DropTarget$DropTargetAutoScroller.h create mode 100644 libjava/java/awt/dnd/DropTarget.h create mode 100644 libjava/java/awt/dnd/DropTargetAdapter.h create mode 100644 libjava/java/awt/dnd/DropTargetContext$TransferableProxy.h create mode 100644 libjava/java/awt/dnd/DropTargetContext.h create mode 100644 libjava/java/awt/dnd/DropTargetDragEvent.h create mode 100644 libjava/java/awt/dnd/DropTargetDropEvent.h create mode 100644 libjava/java/awt/dnd/DropTargetEvent.h create mode 100644 libjava/java/awt/dnd/DropTargetListener.h create mode 100644 libjava/java/awt/dnd/InvalidDnDOperationException.h create mode 100644 libjava/java/awt/dnd/MouseDragGestureRecognizer.h create mode 100644 libjava/java/awt/dnd/peer/DragSourceContextPeer.h create mode 100644 libjava/java/awt/dnd/peer/DropTargetContextPeer.h create mode 100644 libjava/java/awt/dnd/peer/DropTargetPeer.h create mode 100644 libjava/java/awt/event/AWTEventListener.h create mode 100644 libjava/java/awt/event/AWTEventListenerProxy.h create mode 100644 libjava/java/awt/event/ActionEvent.h create mode 100644 libjava/java/awt/event/ActionListener.h create mode 100644 libjava/java/awt/event/AdjustmentEvent.h create mode 100644 libjava/java/awt/event/AdjustmentListener.h create mode 100644 libjava/java/awt/event/ComponentAdapter.h create mode 100644 libjava/java/awt/event/ComponentEvent.h create mode 100644 libjava/java/awt/event/ComponentListener.h create mode 100644 libjava/java/awt/event/ContainerAdapter.h create mode 100644 libjava/java/awt/event/ContainerEvent.h create mode 100644 libjava/java/awt/event/ContainerListener.h create mode 100644 libjava/java/awt/event/FocusAdapter.h create mode 100644 libjava/java/awt/event/FocusEvent.h create mode 100644 libjava/java/awt/event/FocusListener.h create mode 100644 libjava/java/awt/event/HierarchyBoundsAdapter.h create mode 100644 libjava/java/awt/event/HierarchyBoundsListener.h create mode 100644 libjava/java/awt/event/HierarchyEvent.h create mode 100644 libjava/java/awt/event/HierarchyListener.h create mode 100644 libjava/java/awt/event/InputEvent.h create mode 100644 libjava/java/awt/event/InputMethodEvent.h create mode 100644 libjava/java/awt/event/InputMethodListener.h create mode 100644 libjava/java/awt/event/InvocationEvent.h create mode 100644 libjava/java/awt/event/ItemEvent.h create mode 100644 libjava/java/awt/event/ItemListener.h create mode 100644 libjava/java/awt/event/KeyAdapter.h create mode 100644 libjava/java/awt/event/KeyEvent.h create mode 100644 libjava/java/awt/event/KeyListener.h create mode 100644 libjava/java/awt/event/MouseAdapter.h create mode 100644 libjava/java/awt/event/MouseEvent.h create mode 100644 libjava/java/awt/event/MouseListener.h create mode 100644 libjava/java/awt/event/MouseMotionAdapter.h create mode 100644 libjava/java/awt/event/MouseMotionListener.h create mode 100644 libjava/java/awt/event/MouseWheelEvent.h create mode 100644 libjava/java/awt/event/MouseWheelListener.h create mode 100644 libjava/java/awt/event/PaintEvent.h create mode 100644 libjava/java/awt/event/TextEvent.h create mode 100644 libjava/java/awt/event/TextListener.h create mode 100644 libjava/java/awt/event/WindowAdapter.h create mode 100644 libjava/java/awt/event/WindowEvent.h create mode 100644 libjava/java/awt/event/WindowFocusListener.h create mode 100644 libjava/java/awt/event/WindowListener.h create mode 100644 libjava/java/awt/event/WindowStateListener.h create mode 100644 libjava/java/awt/font/FontRenderContext.h create mode 100644 libjava/java/awt/font/GlyphJustificationInfo.h create mode 100644 libjava/java/awt/font/GlyphMetrics.h create mode 100644 libjava/java/awt/font/GlyphVector.h create mode 100644 libjava/java/awt/font/GraphicAttribute.h create mode 100644 libjava/java/awt/font/ImageGraphicAttribute.h create mode 100644 libjava/java/awt/font/LineBreakMeasurer.h create mode 100644 libjava/java/awt/font/LineMetrics.h create mode 100644 libjava/java/awt/font/MultipleMaster.h create mode 100644 libjava/java/awt/font/NumericShaper.h create mode 100644 libjava/java/awt/font/OpenType.h create mode 100644 libjava/java/awt/font/ShapeGraphicAttribute.h create mode 100644 libjava/java/awt/font/TextAttribute.h create mode 100644 libjava/java/awt/font/TextHitInfo.h create mode 100644 libjava/java/awt/font/TextLayout$CaretPolicy.h create mode 100644 libjava/java/awt/font/TextLayout$Run.h create mode 100644 libjava/java/awt/font/TextLayout.h create mode 100644 libjava/java/awt/font/TextMeasurer.h create mode 100644 libjava/java/awt/font/TransformAttribute.h create mode 100644 libjava/java/awt/geom/AffineTransform.h create mode 100644 libjava/java/awt/geom/Arc2D$ArcIterator.h create mode 100644 libjava/java/awt/geom/Arc2D$Double.h create mode 100644 libjava/java/awt/geom/Arc2D$Float.h create mode 100644 libjava/java/awt/geom/Arc2D.h create mode 100644 libjava/java/awt/geom/Area$AreaIterator$IteratorSegment.h create mode 100644 libjava/java/awt/geom/Area$AreaIterator.h create mode 100644 libjava/java/awt/geom/Area$CubicSegment.h create mode 100644 libjava/java/awt/geom/Area$Intersection.h create mode 100644 libjava/java/awt/geom/Area$LineSegment.h create mode 100644 libjava/java/awt/geom/Area$QuadSegment.h create mode 100644 libjava/java/awt/geom/Area$Segment.h create mode 100644 libjava/java/awt/geom/Area.h create mode 100644 libjava/java/awt/geom/CubicCurve2D$1.h create mode 100644 libjava/java/awt/geom/CubicCurve2D$Double.h create mode 100644 libjava/java/awt/geom/CubicCurve2D$Float.h create mode 100644 libjava/java/awt/geom/CubicCurve2D.h create mode 100644 libjava/java/awt/geom/Dimension2D.h create mode 100644 libjava/java/awt/geom/Ellipse2D$Double.h create mode 100644 libjava/java/awt/geom/Ellipse2D$Float.h create mode 100644 libjava/java/awt/geom/Ellipse2D.h create mode 100644 libjava/java/awt/geom/FlatteningPathIterator.h create mode 100644 libjava/java/awt/geom/GeneralPath$GeneralPathIterator.h create mode 100644 libjava/java/awt/geom/GeneralPath.h create mode 100644 libjava/java/awt/geom/IllegalPathStateException.h create mode 100644 libjava/java/awt/geom/Line2D$1.h create mode 100644 libjava/java/awt/geom/Line2D$Double.h create mode 100644 libjava/java/awt/geom/Line2D$Float.h create mode 100644 libjava/java/awt/geom/Line2D.h create mode 100644 libjava/java/awt/geom/NoninvertibleTransformException.h create mode 100644 libjava/java/awt/geom/PathIterator.h create mode 100644 libjava/java/awt/geom/Point2D$Double.h create mode 100644 libjava/java/awt/geom/Point2D$Float.h create mode 100644 libjava/java/awt/geom/Point2D.h create mode 100644 libjava/java/awt/geom/QuadCurve2D$1.h create mode 100644 libjava/java/awt/geom/QuadCurve2D$Double.h create mode 100644 libjava/java/awt/geom/QuadCurve2D$Float.h create mode 100644 libjava/java/awt/geom/QuadCurve2D.h create mode 100644 libjava/java/awt/geom/Rectangle2D$1.h create mode 100644 libjava/java/awt/geom/Rectangle2D$Double.h create mode 100644 libjava/java/awt/geom/Rectangle2D$Float.h create mode 100644 libjava/java/awt/geom/Rectangle2D.h create mode 100644 libjava/java/awt/geom/RectangularShape.h create mode 100644 libjava/java/awt/geom/RoundRectangle2D$1.h create mode 100644 libjava/java/awt/geom/RoundRectangle2D$Double.h create mode 100644 libjava/java/awt/geom/RoundRectangle2D$Float.h create mode 100644 libjava/java/awt/geom/RoundRectangle2D.h create mode 100644 libjava/java/awt/im/InputContext.h create mode 100644 libjava/java/awt/im/InputMethodHighlight.h create mode 100644 libjava/java/awt/im/InputMethodRequests.h create mode 100644 libjava/java/awt/im/InputSubset.h create mode 100644 libjava/java/awt/im/spi/InputMethod.h create mode 100644 libjava/java/awt/im/spi/InputMethodContext.h create mode 100644 libjava/java/awt/im/spi/InputMethodDescriptor.h create mode 100644 libjava/java/awt/image/AffineTransformOp.h create mode 100644 libjava/java/awt/image/AreaAveragingScaleFilter.h create mode 100644 libjava/java/awt/image/BandCombineOp.h create mode 100644 libjava/java/awt/image/BandedSampleModel.h create mode 100644 libjava/java/awt/image/BufferStrategy.h create mode 100644 libjava/java/awt/image/BufferedImage$1.h create mode 100644 libjava/java/awt/image/BufferedImage.h create mode 100644 libjava/java/awt/image/BufferedImageFilter.h create mode 100644 libjava/java/awt/image/BufferedImageOp.h create mode 100644 libjava/java/awt/image/ByteLookupTable.h create mode 100644 libjava/java/awt/image/ColorConvertOp.h create mode 100644 libjava/java/awt/image/ColorModel$SRGBColorModel.h create mode 100644 libjava/java/awt/image/ColorModel.h create mode 100644 libjava/java/awt/image/ComponentColorModel.h create mode 100644 libjava/java/awt/image/ComponentSampleModel.h create mode 100644 libjava/java/awt/image/ConvolveOp.h create mode 100644 libjava/java/awt/image/CropImageFilter.h create mode 100644 libjava/java/awt/image/DataBuffer.h create mode 100644 libjava/java/awt/image/DataBufferByte.h create mode 100644 libjava/java/awt/image/DataBufferDouble.h create mode 100644 libjava/java/awt/image/DataBufferFloat.h create mode 100644 libjava/java/awt/image/DataBufferInt.h create mode 100644 libjava/java/awt/image/DataBufferShort.h create mode 100644 libjava/java/awt/image/DataBufferUShort.h create mode 100644 libjava/java/awt/image/DirectColorModel.h create mode 100644 libjava/java/awt/image/FilteredImageSource.h create mode 100644 libjava/java/awt/image/ImageConsumer.h create mode 100644 libjava/java/awt/image/ImageFilter.h create mode 100644 libjava/java/awt/image/ImageObserver.h create mode 100644 libjava/java/awt/image/ImageProducer.h create mode 100644 libjava/java/awt/image/ImagingOpException.h create mode 100644 libjava/java/awt/image/IndexColorModel.h create mode 100644 libjava/java/awt/image/Kernel.h create mode 100644 libjava/java/awt/image/LookupOp.h create mode 100644 libjava/java/awt/image/LookupTable.h create mode 100644 libjava/java/awt/image/MemoryImageSource.h create mode 100644 libjava/java/awt/image/MultiPixelPackedSampleModel.h create mode 100644 libjava/java/awt/image/PackedColorModel.h create mode 100644 libjava/java/awt/image/PixelGrabber$1.h create mode 100644 libjava/java/awt/image/PixelGrabber.h create mode 100644 libjava/java/awt/image/PixelInterleavedSampleModel.h create mode 100644 libjava/java/awt/image/RGBImageFilter.h create mode 100644 libjava/java/awt/image/Raster.h create mode 100644 libjava/java/awt/image/RasterFormatException.h create mode 100644 libjava/java/awt/image/RasterOp.h create mode 100644 libjava/java/awt/image/RenderedImage.h create mode 100644 libjava/java/awt/image/ReplicateScaleFilter.h create mode 100644 libjava/java/awt/image/RescaleOp.h create mode 100644 libjava/java/awt/image/SampleModel.h create mode 100644 libjava/java/awt/image/ShortLookupTable.h create mode 100644 libjava/java/awt/image/SinglePixelPackedSampleModel.h create mode 100644 libjava/java/awt/image/TileObserver.h create mode 100644 libjava/java/awt/image/VolatileImage.h create mode 100644 libjava/java/awt/image/WritableRaster.h create mode 100644 libjava/java/awt/image/WritableRenderedImage.h create mode 100644 libjava/java/awt/image/renderable/ContextualRenderedImageFactory.h create mode 100644 libjava/java/awt/image/renderable/ParameterBlock.h create mode 100644 libjava/java/awt/image/renderable/RenderContext.h create mode 100644 libjava/java/awt/image/renderable/RenderableImage.h create mode 100644 libjava/java/awt/image/renderable/RenderableImageOp.h create mode 100644 libjava/java/awt/image/renderable/RenderableImageProducer.h create mode 100644 libjava/java/awt/image/renderable/RenderedImageFactory.h create mode 100644 libjava/java/awt/peer/ButtonPeer.h create mode 100644 libjava/java/awt/peer/CanvasPeer.h create mode 100644 libjava/java/awt/peer/CheckboxMenuItemPeer.h create mode 100644 libjava/java/awt/peer/CheckboxPeer.h create mode 100644 libjava/java/awt/peer/ChoicePeer.h create mode 100644 libjava/java/awt/peer/ComponentPeer.h create mode 100644 libjava/java/awt/peer/ContainerPeer.h create mode 100644 libjava/java/awt/peer/DialogPeer.h create mode 100644 libjava/java/awt/peer/FileDialogPeer.h create mode 100644 libjava/java/awt/peer/FontPeer.h create mode 100644 libjava/java/awt/peer/FramePeer.h create mode 100644 libjava/java/awt/peer/LabelPeer.h create mode 100644 libjava/java/awt/peer/LightweightPeer.h create mode 100644 libjava/java/awt/peer/ListPeer.h create mode 100644 libjava/java/awt/peer/MenuBarPeer.h create mode 100644 libjava/java/awt/peer/MenuComponentPeer.h create mode 100644 libjava/java/awt/peer/MenuItemPeer.h create mode 100644 libjava/java/awt/peer/MenuPeer.h create mode 100644 libjava/java/awt/peer/MouseInfoPeer.h create mode 100644 libjava/java/awt/peer/PanelPeer.h create mode 100644 libjava/java/awt/peer/PopupMenuPeer.h create mode 100644 libjava/java/awt/peer/RobotPeer.h create mode 100644 libjava/java/awt/peer/ScrollPanePeer.h create mode 100644 libjava/java/awt/peer/ScrollbarPeer.h create mode 100644 libjava/java/awt/peer/TextAreaPeer.h create mode 100644 libjava/java/awt/peer/TextComponentPeer.h create mode 100644 libjava/java/awt/peer/TextFieldPeer.h create mode 100644 libjava/java/awt/peer/WindowPeer.h create mode 100644 libjava/java/awt/print/Book.h create mode 100644 libjava/java/awt/print/NoPrinterJob.h create mode 100644 libjava/java/awt/print/PageFormat.h create mode 100644 libjava/java/awt/print/Pageable.h create mode 100644 libjava/java/awt/print/Paper.h create mode 100644 libjava/java/awt/print/Printable.h create mode 100644 libjava/java/awt/print/PrinterAbortException.h create mode 100644 libjava/java/awt/print/PrinterException.h create mode 100644 libjava/java/awt/print/PrinterGraphics.h create mode 100644 libjava/java/awt/print/PrinterIOException.h create mode 100644 libjava/java/awt/print/PrinterJob.h create mode 100644 libjava/java/beans/AppletInitializer.h create mode 100644 libjava/java/beans/BeanDescriptor.h create mode 100644 libjava/java/beans/BeanInfo.h create mode 100644 libjava/java/beans/Beans.h create mode 100644 libjava/java/beans/Customizer.h create mode 100644 libjava/java/beans/DefaultPersistenceDelegate.h create mode 100644 libjava/java/beans/DesignMode.h create mode 100644 libjava/java/beans/Encoder$1.h create mode 100644 libjava/java/beans/Encoder.h create mode 100644 libjava/java/beans/EventHandler.h create mode 100644 libjava/java/beans/EventSetDescriptor.h create mode 100644 libjava/java/beans/ExceptionListener.h create mode 100644 libjava/java/beans/ExplicitInfo.h create mode 100644 libjava/java/beans/Expression.h create mode 100644 libjava/java/beans/FeatureDescriptor.h create mode 100644 libjava/java/beans/IndexedPropertyChangeEvent.h create mode 100644 libjava/java/beans/IndexedPropertyDescriptor.h create mode 100644 libjava/java/beans/IntrospectionException.h create mode 100644 libjava/java/beans/Introspector.h create mode 100644 libjava/java/beans/MethodDescriptor.h create mode 100644 libjava/java/beans/ParameterDescriptor.h create mode 100644 libjava/java/beans/PersistenceDelegate.h create mode 100644 libjava/java/beans/PropertyChangeEvent.h create mode 100644 libjava/java/beans/PropertyChangeListener.h create mode 100644 libjava/java/beans/PropertyChangeListenerProxy.h create mode 100644 libjava/java/beans/PropertyChangeSupport.h create mode 100644 libjava/java/beans/PropertyDescriptor.h create mode 100644 libjava/java/beans/PropertyEditor.h create mode 100644 libjava/java/beans/PropertyEditorManager.h create mode 100644 libjava/java/beans/PropertyEditorSupport.h create mode 100644 libjava/java/beans/PropertyVetoException.h create mode 100644 libjava/java/beans/SimpleBeanInfo.h create mode 100644 libjava/java/beans/Statement.h create mode 100644 libjava/java/beans/VetoableChangeListener.h create mode 100644 libjava/java/beans/VetoableChangeListenerProxy.h create mode 100644 libjava/java/beans/VetoableChangeSupport.h create mode 100644 libjava/java/beans/Visibility.h create mode 100644 libjava/java/beans/XMLDecoder.h create mode 100644 libjava/java/beans/XMLEncoder.h create mode 100644 libjava/java/beans/beancontext/BeanContext.h create mode 100644 libjava/java/beans/beancontext/BeanContextChild.h create mode 100644 libjava/java/beans/beancontext/BeanContextChildComponentProxy.h create mode 100644 libjava/java/beans/beancontext/BeanContextChildSupport.h create mode 100644 libjava/java/beans/beancontext/BeanContextContainerProxy.h create mode 100644 libjava/java/beans/beancontext/BeanContextEvent.h create mode 100644 libjava/java/beans/beancontext/BeanContextMembershipEvent.h create mode 100644 libjava/java/beans/beancontext/BeanContextMembershipListener.h create mode 100644 libjava/java/beans/beancontext/BeanContextProxy.h create mode 100644 libjava/java/beans/beancontext/BeanContextServiceAvailableEvent.h create mode 100644 libjava/java/beans/beancontext/BeanContextServiceProvider.h create mode 100644 libjava/java/beans/beancontext/BeanContextServiceProviderBeanInfo.h create mode 100644 libjava/java/beans/beancontext/BeanContextServiceRevokedEvent.h create mode 100644 libjava/java/beans/beancontext/BeanContextServiceRevokedListener.h create mode 100644 libjava/java/beans/beancontext/BeanContextServices.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesListener.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesSupport$Request.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.h create mode 100644 libjava/java/beans/beancontext/BeanContextServicesSupport.h create mode 100644 libjava/java/beans/beancontext/BeanContextSupport$BCSChild.h create mode 100644 libjava/java/beans/beancontext/BeanContextSupport$BCSIterator.h create mode 100644 libjava/java/beans/beancontext/BeanContextSupport.h create mode 100644 libjava/java/io/BufferedInputStream.h create mode 100644 libjava/java/io/BufferedOutputStream.h create mode 100644 libjava/java/io/BufferedReader.h create mode 100644 libjava/java/io/BufferedWriter.h create mode 100644 libjava/java/io/ByteArrayInputStream.h create mode 100644 libjava/java/io/ByteArrayOutputStream.h create mode 100644 libjava/java/io/CharArrayReader.h create mode 100644 libjava/java/io/CharArrayWriter.h create mode 100644 libjava/java/io/CharConversionException.h create mode 100644 libjava/java/io/Closeable.h create mode 100644 libjava/java/io/DataInput.h create mode 100644 libjava/java/io/DataInputStream.h create mode 100644 libjava/java/io/DataOutput.h create mode 100644 libjava/java/io/DataOutputStream.h create mode 100644 libjava/java/io/DeleteFileHelper$1.h create mode 100644 libjava/java/io/DeleteFileHelper.h create mode 100644 libjava/java/io/EOFException.h create mode 100644 libjava/java/io/Externalizable.h create mode 100644 libjava/java/io/File.h create mode 100644 libjava/java/io/FileDescriptor.h copy libjava/{classpath => }/java/io/FileDescriptor.java (100%) create mode 100644 libjava/java/io/FileFilter.h create mode 100644 libjava/java/io/FileInputStream.h copy libjava/{classpath => }/java/io/FileInputStream.java (100%) create mode 100644 libjava/java/io/FileNotFoundException.h create mode 100644 libjava/java/io/FileOutputStream.h copy libjava/{classpath => }/java/io/FileOutputStream.java (100%) create mode 100644 libjava/java/io/FilePermission.h create mode 100644 libjava/java/io/FileReader.h create mode 100644 libjava/java/io/FileWriter.h create mode 100644 libjava/java/io/FilenameFilter.h create mode 100644 libjava/java/io/FilterInputStream.h create mode 100644 libjava/java/io/FilterOutputStream.h create mode 100644 libjava/java/io/FilterReader.h create mode 100644 libjava/java/io/FilterWriter.h create mode 100644 libjava/java/io/Flushable.h create mode 100644 libjava/java/io/IOException.h create mode 100644 libjava/java/io/InputStream.h create mode 100644 libjava/java/io/InputStreamReader.h create mode 100644 libjava/java/io/InterruptedIOException.h create mode 100644 libjava/java/io/InvalidClassException.h create mode 100644 libjava/java/io/InvalidObjectException.h create mode 100644 libjava/java/io/LineNumberInputStream.h create mode 100644 libjava/java/io/LineNumberReader.h create mode 100644 libjava/java/io/NotActiveException.h create mode 100644 libjava/java/io/NotSerializableException.h create mode 100644 libjava/java/io/ObjectInput.h create mode 100644 libjava/java/io/ObjectInputStream$1.h create mode 100644 libjava/java/io/ObjectInputStream$2.h create mode 100644 libjava/java/io/ObjectInputStream$GetField.h create mode 100644 libjava/java/io/ObjectInputStream$ValidatorAndPriority.h create mode 100644 libjava/java/io/ObjectInputStream.h delete mode 100644 libjava/java/io/ObjectInputStream.java create mode 100644 libjava/java/io/ObjectInputValidation.h create mode 100644 libjava/java/io/ObjectOutput.h create mode 100644 libjava/java/io/ObjectOutputStream$1.h create mode 100644 libjava/java/io/ObjectOutputStream$PutField.h create mode 100644 libjava/java/io/ObjectOutputStream.h create mode 100644 libjava/java/io/ObjectStreamClass$1.h create mode 100644 libjava/java/io/ObjectStreamClass$2.h create mode 100644 libjava/java/io/ObjectStreamClass$InterfaceComparator.h create mode 100644 libjava/java/io/ObjectStreamClass$MemberComparator.h create mode 100644 libjava/java/io/ObjectStreamClass.h create mode 100644 libjava/java/io/ObjectStreamConstants.h create mode 100644 libjava/java/io/ObjectStreamException.h create mode 100644 libjava/java/io/ObjectStreamField$1.h create mode 100644 libjava/java/io/ObjectStreamField.h create mode 100644 libjava/java/io/OptionalDataException.h create mode 100644 libjava/java/io/OutputStream.h create mode 100644 libjava/java/io/OutputStreamWriter.h create mode 100644 libjava/java/io/PipedInputStream.h create mode 100644 libjava/java/io/PipedOutputStream.h create mode 100644 libjava/java/io/PipedReader.h create mode 100644 libjava/java/io/PipedWriter.h create mode 100644 libjava/java/io/PrintStream.h create mode 100644 libjava/java/io/PrintWriter.h create mode 100644 libjava/java/io/PushbackInputStream.h create mode 100644 libjava/java/io/PushbackReader.h create mode 100644 libjava/java/io/RandomAccessFile.h create mode 100644 libjava/java/io/RandomAccessFile.java create mode 100644 libjava/java/io/Reader.h create mode 100644 libjava/java/io/SequenceInputStream.h create mode 100644 libjava/java/io/Serializable.h create mode 100644 libjava/java/io/SerializablePermission.h create mode 100644 libjava/java/io/StreamCorruptedException.h create mode 100644 libjava/java/io/StreamTokenizer.h create mode 100644 libjava/java/io/StringBufferInputStream.h create mode 100644 libjava/java/io/StringReader.h create mode 100644 libjava/java/io/StringWriter.h create mode 100644 libjava/java/io/SyncFailedException.h create mode 100644 libjava/java/io/UTFDataFormatException.h create mode 100644 libjava/java/io/UnsupportedEncodingException.h create mode 100644 libjava/java/io/VMObjectInputStream.h create mode 100644 libjava/java/io/VMObjectInputStream.java create mode 100644 libjava/java/io/VMObjectStreamClass.h create mode 100644 libjava/java/io/WriteAbortedException.h create mode 100644 libjava/java/io/Writer.h create mode 100644 libjava/java/lang/AbstractMethodError.h create mode 100644 libjava/java/lang/Appendable.h create mode 100644 libjava/java/lang/ArithmeticException.h create mode 100644 libjava/java/lang/ArrayIndexOutOfBoundsException.h create mode 100644 libjava/java/lang/ArrayStoreException.h create mode 100644 libjava/java/lang/AssertionError.h create mode 100644 libjava/java/lang/Boolean.h create mode 100644 libjava/java/lang/Byte.h create mode 100644 libjava/java/lang/CharSequence.h create mode 100644 libjava/java/lang/Character$Subset.h create mode 100644 libjava/java/lang/Character$UnicodeBlock.h create mode 100644 libjava/java/lang/Character.h create mode 100644 libjava/java/lang/ClassCastException.h create mode 100644 libjava/java/lang/ClassCircularityError.h create mode 100644 libjava/java/lang/ClassFormatError.h create mode 100644 libjava/java/lang/ClassLoader$AnnotationsKey.h create mode 100644 libjava/java/lang/ClassLoader.h create mode 100644 libjava/java/lang/ClassNotFoundException.h create mode 100644 libjava/java/lang/CloneNotSupportedException.h create mode 100644 libjava/java/lang/Cloneable.h create mode 100644 libjava/java/lang/Comparable.h create mode 100644 libjava/java/lang/Compiler.h create mode 100644 libjava/java/lang/Deprecated.h create mode 100644 libjava/java/lang/Double.h create mode 100644 libjava/java/lang/EcosProcess.h create mode 100644 libjava/java/lang/Enum.h create mode 100644 libjava/java/lang/EnumConstantNotPresentException.h create mode 100644 libjava/java/lang/Error.h create mode 100644 libjava/java/lang/Exception.h create mode 100644 libjava/java/lang/ExceptionInInitializerError.h create mode 100644 libjava/java/lang/Float.h create mode 100644 libjava/java/lang/IllegalAccessError.h create mode 100644 libjava/java/lang/IllegalAccessException.h create mode 100644 libjava/java/lang/IllegalArgumentException.h create mode 100644 libjava/java/lang/IllegalMonitorStateException.h create mode 100644 libjava/java/lang/IllegalStateException.h create mode 100644 libjava/java/lang/IllegalThreadStateException.h create mode 100644 libjava/java/lang/IncompatibleClassChangeError.h create mode 100644 libjava/java/lang/IndexOutOfBoundsException.h create mode 100644 libjava/java/lang/InheritableThreadLocal.h create mode 100644 libjava/java/lang/InstantiationError.h create mode 100644 libjava/java/lang/InstantiationException.h create mode 100644 libjava/java/lang/Integer.h create mode 100644 libjava/java/lang/InternalError.h create mode 100644 libjava/java/lang/InterruptedException.h create mode 100644 libjava/java/lang/Iterable.h create mode 100644 libjava/java/lang/LinkageError.h create mode 100644 libjava/java/lang/Long.h create mode 100644 libjava/java/lang/Math.h create mode 100644 libjava/java/lang/NegativeArraySizeException.h create mode 100644 libjava/java/lang/NoClassDefFoundError.h create mode 100644 libjava/java/lang/NoSuchFieldError.h create mode 100644 libjava/java/lang/NoSuchFieldException.h create mode 100644 libjava/java/lang/NoSuchMethodError.h create mode 100644 libjava/java/lang/NoSuchMethodException.h create mode 100644 libjava/java/lang/NullPointerException.h create mode 100644 libjava/java/lang/Number.h create mode 100644 libjava/java/lang/NumberFormatException.h create mode 100644 libjava/java/lang/OutOfMemoryError.h create mode 100644 libjava/java/lang/Override.h create mode 100644 libjava/java/lang/Package.h delete mode 100644 libjava/java/lang/Package.java create mode 100644 libjava/java/lang/PosixProcess$EOFInputStream.h create mode 100644 libjava/java/lang/PosixProcess$ProcessManager.h create mode 100644 libjava/java/lang/PosixProcess.h create mode 100644 libjava/java/lang/Process.h create mode 100644 libjava/java/lang/ProcessBuilder.h create mode 100644 libjava/java/lang/ProcessBuilder.java create mode 100644 libjava/java/lang/Readable.h create mode 100644 libjava/java/lang/Runnable.h create mode 100644 libjava/java/lang/Runtime.h create mode 100644 libjava/java/lang/RuntimeException.h create mode 100644 libjava/java/lang/RuntimePermission.h create mode 100644 libjava/java/lang/SecurityContext.h create mode 100644 libjava/java/lang/SecurityException.h create mode 100644 libjava/java/lang/SecurityManager$1.h create mode 100644 libjava/java/lang/SecurityManager.h delete mode 100644 libjava/java/lang/SecurityManager.java create mode 100644 libjava/java/lang/Short.h create mode 100644 libjava/java/lang/StackOverflowError.h create mode 100644 libjava/java/lang/StackTraceElement.h create mode 100644 libjava/java/lang/StrictMath.h create mode 100644 libjava/java/lang/String$CaseInsensitiveComparator.h create mode 100644 libjava/java/lang/String.h create mode 100644 libjava/java/lang/StringBuffer.h create mode 100644 libjava/java/lang/StringBuilder.h create mode 100644 libjava/java/lang/StringIndexOutOfBoundsException.h create mode 100644 libjava/java/lang/SuppressWarnings.h create mode 100644 libjava/java/lang/System$EnvironmentCollection.h create mode 100644 libjava/java/lang/System$EnvironmentMap.h create mode 100644 libjava/java/lang/System$EnvironmentSet.h create mode 100644 libjava/java/lang/System.h create mode 100644 libjava/java/lang/Thread$State.h create mode 100644 libjava/java/lang/Thread$UncaughtExceptionHandler.h create mode 100644 libjava/java/lang/Thread.h create mode 100644 libjava/java/lang/ThreadDeath.h create mode 100644 libjava/java/lang/ThreadGroup.h create mode 100644 libjava/java/lang/ThreadLocal.h create mode 100644 libjava/java/lang/ThreadLocal.java create mode 100644 libjava/java/lang/Throwable$StaticData.h create mode 100644 libjava/java/lang/Throwable.h create mode 100644 libjava/java/lang/TypeNotPresentException.h create mode 100644 libjava/java/lang/UnknownError.h create mode 100644 libjava/java/lang/UnsatisfiedLinkError.h create mode 100644 libjava/java/lang/UnsupportedClassVersionError.h create mode 100644 libjava/java/lang/UnsupportedOperationException.h create mode 100644 libjava/java/lang/VMClassLoader.h create mode 100644 libjava/java/lang/VMCompiler.h create mode 100644 libjava/java/lang/VMDouble.h create mode 100644 libjava/java/lang/VMFloat.h delete mode 100644 libjava/java/lang/VMSecurityManager.java create mode 100644 libjava/java/lang/VMThrowable.h create mode 100644 libjava/java/lang/VerifyError.h create mode 100644 libjava/java/lang/VirtualMachineError.h create mode 100644 libjava/java/lang/Void.h create mode 100644 libjava/java/lang/Win32Process.h create mode 100644 libjava/java/lang/annotation/Annotation.h create mode 100644 libjava/java/lang/annotation/AnnotationFormatError.h create mode 100644 libjava/java/lang/annotation/AnnotationTypeMismatchException.h create mode 100644 libjava/java/lang/annotation/Documented.h create mode 100644 libjava/java/lang/annotation/ElementType.h create mode 100644 libjava/java/lang/annotation/IncompleteAnnotationException.h create mode 100644 libjava/java/lang/annotation/Inherited.h create mode 100644 libjava/java/lang/annotation/Retention.h create mode 100644 libjava/java/lang/annotation/RetentionPolicy.h create mode 100644 libjava/java/lang/annotation/Target.h create mode 100644 libjava/java/lang/instrument/ClassDefinition.h create mode 100644 libjava/java/lang/instrument/ClassFileTransformer.h create mode 100644 libjava/java/lang/instrument/IllegalClassFormatException.h create mode 100644 libjava/java/lang/instrument/Instrumentation.h create mode 100644 libjava/java/lang/instrument/UnmodifiableClassException.h create mode 100644 libjava/java/lang/management/ClassLoadingMXBean.h create mode 100644 libjava/java/lang/management/CompilationMXBean.h create mode 100644 libjava/java/lang/management/GarbageCollectorMXBean.h create mode 100644 libjava/java/lang/management/ManagementFactory.h create mode 100644 libjava/java/lang/management/ManagementPermission.h create mode 100644 libjava/java/lang/management/MemoryMXBean.h create mode 100644 libjava/java/lang/management/MemoryManagerMXBean.h create mode 100644 libjava/java/lang/management/MemoryNotificationInfo.h create mode 100644 libjava/java/lang/management/MemoryPoolMXBean.h create mode 100644 libjava/java/lang/management/MemoryType.h create mode 100644 libjava/java/lang/management/MemoryUsage.h create mode 100644 libjava/java/lang/management/OperatingSystemMXBean.h create mode 100644 libjava/java/lang/management/RuntimeMXBean.h create mode 100644 libjava/java/lang/management/ThreadInfo.h create mode 100644 libjava/java/lang/management/ThreadMXBean.h create mode 100644 libjava/java/lang/management/VMManagementFactory.h create mode 100644 libjava/java/lang/management/natVMManagementFactory.cc create mode 100644 libjava/java/lang/natThreadLocal.cc delete mode 100644 libjava/java/lang/natVMSecurityManager.cc create mode 100644 libjava/java/lang/ref/PhantomReference.h create mode 100644 libjava/java/lang/ref/Reference.h create mode 100644 libjava/java/lang/ref/ReferenceQueue.h create mode 100644 libjava/java/lang/ref/SoftReference.h create mode 100644 libjava/java/lang/ref/WeakReference.h create mode 100644 libjava/java/lang/reflect/AccessibleObject.h create mode 100644 libjava/java/lang/reflect/AnnotatedElement.h create mode 100644 libjava/java/lang/reflect/Array.h create mode 100644 libjava/java/lang/reflect/Constructor.h create mode 100644 libjava/java/lang/reflect/Field.h create mode 100644 libjava/java/lang/reflect/GenericArrayType.h create mode 100644 libjava/java/lang/reflect/GenericDeclaration.h create mode 100644 libjava/java/lang/reflect/GenericSignatureFormatError.h create mode 100644 libjava/java/lang/reflect/InvocationHandler.h create mode 100644 libjava/java/lang/reflect/InvocationTargetException.h create mode 100644 libjava/java/lang/reflect/MalformedParameterizedTypeException.h create mode 100644 libjava/java/lang/reflect/Member.h create mode 100644 libjava/java/lang/reflect/Method.h create mode 100644 libjava/java/lang/reflect/Modifier.h create mode 100644 libjava/java/lang/reflect/ParameterizedType.h create mode 100644 libjava/java/lang/reflect/Proxy$ClassFactory.h create mode 100644 libjava/java/lang/reflect/Proxy$ProxyData.h create mode 100644 libjava/java/lang/reflect/Proxy$ProxySignature.h create mode 100644 libjava/java/lang/reflect/Proxy$ProxyType.h create mode 100644 libjava/java/lang/reflect/Proxy.h create mode 100644 libjava/java/lang/reflect/ReflectPermission.h create mode 100644 libjava/java/lang/reflect/Type.h create mode 100644 libjava/java/lang/reflect/TypeVariable.h create mode 100644 libjava/java/lang/reflect/UndeclaredThrowableException.h create mode 100644 libjava/java/lang/reflect/VMProxy.h create mode 100644 libjava/java/lang/reflect/WildcardType.h create mode 100644 libjava/java/lang/reflect/natVMProxy.cc create mode 100644 libjava/java/math/BigDecimal.h create mode 100644 libjava/java/math/BigInteger.h create mode 100644 libjava/java/math/MathContext.h create mode 100644 libjava/java/math/RoundingMode.h create mode 100644 libjava/java/net/Authenticator.h create mode 100644 libjava/java/net/BindException.h create mode 100644 libjava/java/net/ConnectException.h create mode 100644 libjava/java/net/ContentHandler.h create mode 100644 libjava/java/net/ContentHandlerFactory.h create mode 100644 libjava/java/net/DatagramPacket.h create mode 100644 libjava/java/net/DatagramSocket.h copy libjava/{classpath => }/java/net/DatagramSocket.java (100%) create mode 100644 libjava/java/net/DatagramSocketImpl.h create mode 100644 libjava/java/net/DatagramSocketImplFactory.h create mode 100644 libjava/java/net/FileNameMap.h create mode 100644 libjava/java/net/HttpURLConnection.h create mode 100644 libjava/java/net/Inet4Address.h create mode 100644 libjava/java/net/Inet6Address.h create mode 100644 libjava/java/net/InetAddress.h create mode 100644 libjava/java/net/InetSocketAddress.h create mode 100644 libjava/java/net/JarURLConnection.h create mode 100644 libjava/java/net/MalformedURLException.h create mode 100644 libjava/java/net/MimeTypeMapper.h create mode 100644 libjava/java/net/MulticastSocket.h create mode 100644 libjava/java/net/MulticastSocket.java create mode 100644 libjava/java/net/NetPermission.h create mode 100644 libjava/java/net/NetworkInterface.h create mode 100644 libjava/java/net/NetworkInterface.java create mode 100644 libjava/java/net/NoRouteToHostException.h create mode 100644 libjava/java/net/PasswordAuthentication.h create mode 100644 libjava/java/net/PortUnreachableException.h create mode 100644 libjava/java/net/ProtocolException.h create mode 100644 libjava/java/net/Proxy$Type.h create mode 100644 libjava/java/net/Proxy.h create mode 100644 libjava/java/net/ProxySelector.h create mode 100644 libjava/java/net/ResolverCache$Entry.h create mode 100644 libjava/java/net/ResolverCache.h create mode 100644 libjava/java/net/ServerSocket.h create mode 100644 libjava/java/net/Socket.h copy libjava/{classpath => }/java/net/Socket.java (100%) create mode 100644 libjava/java/net/SocketAddress.h create mode 100644 libjava/java/net/SocketException.h create mode 100644 libjava/java/net/SocketImpl.h create mode 100644 libjava/java/net/SocketImplFactory.h create mode 100644 libjava/java/net/SocketOptions.h create mode 100644 libjava/java/net/SocketPermission.h create mode 100644 libjava/java/net/SocketTimeoutException.h create mode 100644 libjava/java/net/URI.h create mode 100644 libjava/java/net/URISyntaxException.h create mode 100644 libjava/java/net/URL$1.h create mode 100644 libjava/java/net/URL.h create mode 100644 libjava/java/net/URLClassLoader$1.h create mode 100644 libjava/java/net/URLClassLoader$2.h create mode 100644 libjava/java/net/URLClassLoader$CoreResource.h create mode 100644 libjava/java/net/URLClassLoader$CoreURLLoader.h create mode 100644 libjava/java/net/URLClassLoader$FileResource.h create mode 100644 libjava/java/net/URLClassLoader$FileURLLoader.h create mode 100644 libjava/java/net/URLClassLoader$JarURLLoader.h create mode 100644 libjava/java/net/URLClassLoader$JarURLResource.h create mode 100644 libjava/java/net/URLClassLoader$RemoteResource.h create mode 100644 libjava/java/net/URLClassLoader$RemoteURLLoader.h create mode 100644 libjava/java/net/URLClassLoader$Resource.h create mode 100644 libjava/java/net/URLClassLoader$SoResource.h create mode 100644 libjava/java/net/URLClassLoader$SoURLLoader.h create mode 100644 libjava/java/net/URLClassLoader$URLLoader.h create mode 100644 libjava/java/net/URLClassLoader.h create mode 100644 libjava/java/net/URLConnection.h create mode 100644 libjava/java/net/URLDecoder.h create mode 100644 libjava/java/net/URLEncoder.h create mode 100644 libjava/java/net/URLStreamHandler.h create mode 100644 libjava/java/net/URLStreamHandlerFactory.h create mode 100644 libjava/java/net/UnknownHostException.h create mode 100644 libjava/java/net/UnknownServiceException.h create mode 100644 libjava/java/net/VMInetAddress.h create mode 100644 libjava/java/net/VMNetworkInterface.h create mode 100644 libjava/java/net/VMURLConnection.h delete mode 100644 libjava/java/net/natURLClassLoader.cc create mode 100644 libjava/java/net/natVMURLConnection.cc create mode 100644 libjava/java/nio/Buffer.h create mode 100644 libjava/java/nio/BufferOverflowException.h create mode 100644 libjava/java/nio/BufferUnderflowException.h create mode 100644 libjava/java/nio/ByteBuffer.h create mode 100644 libjava/java/nio/ByteBufferHelper.h create mode 100644 libjava/java/nio/ByteBufferImpl.h create mode 100644 libjava/java/nio/ByteOrder.h create mode 100644 libjava/java/nio/CharBuffer.h create mode 100644 libjava/java/nio/CharBufferImpl.h create mode 100644 libjava/java/nio/CharViewBufferImpl.h create mode 100644 libjava/java/nio/DirectByteBufferImpl$ReadOnly.h create mode 100644 libjava/java/nio/DirectByteBufferImpl$ReadWrite.h create mode 100644 libjava/java/nio/DirectByteBufferImpl.h create mode 100644 libjava/java/nio/DoubleBuffer.h create mode 100644 libjava/java/nio/DoubleBufferImpl.h create mode 100644 libjava/java/nio/DoubleViewBufferImpl.h create mode 100644 libjava/java/nio/FloatBuffer.h create mode 100644 libjava/java/nio/FloatBufferImpl.h create mode 100644 libjava/java/nio/FloatViewBufferImpl.h create mode 100644 libjava/java/nio/IntBuffer.h create mode 100644 libjava/java/nio/IntBufferImpl.h create mode 100644 libjava/java/nio/IntViewBufferImpl.h create mode 100644 libjava/java/nio/InvalidMarkException.h create mode 100644 libjava/java/nio/LongBuffer.h create mode 100644 libjava/java/nio/LongBufferImpl.h create mode 100644 libjava/java/nio/LongViewBufferImpl.h create mode 100644 libjava/java/nio/MappedByteBuffer.h create mode 100644 libjava/java/nio/MappedByteBufferImpl.h create mode 100644 libjava/java/nio/ReadOnlyBufferException.h create mode 100644 libjava/java/nio/ShortBuffer.h create mode 100644 libjava/java/nio/ShortBufferImpl.h create mode 100644 libjava/java/nio/ShortViewBufferImpl.h create mode 100644 libjava/java/nio/VMDirectByteBuffer.h create mode 100644 libjava/java/nio/channels/AlreadyConnectedException.h create mode 100644 libjava/java/nio/channels/AsynchronousCloseException.h create mode 100644 libjava/java/nio/channels/ByteChannel.h create mode 100644 libjava/java/nio/channels/CancelledKeyException.h create mode 100644 libjava/java/nio/channels/Channel.h create mode 100644 libjava/java/nio/channels/Channels.h create mode 100644 libjava/java/nio/channels/ClosedByInterruptException.h create mode 100644 libjava/java/nio/channels/ClosedChannelException.h create mode 100644 libjava/java/nio/channels/ClosedSelectorException.h create mode 100644 libjava/java/nio/channels/ConnectionPendingException.h create mode 100644 libjava/java/nio/channels/DatagramChannel.h create mode 100644 libjava/java/nio/channels/FileChannel$MapMode.h create mode 100644 libjava/java/nio/channels/FileChannel.h create mode 100644 libjava/java/nio/channels/FileLock.h create mode 100644 libjava/java/nio/channels/FileLockInterruptionException.h create mode 100644 libjava/java/nio/channels/GatheringByteChannel.h create mode 100644 libjava/java/nio/channels/IllegalBlockingModeException.h create mode 100644 libjava/java/nio/channels/IllegalSelectorException.h create mode 100644 libjava/java/nio/channels/InterruptibleChannel.h create mode 100644 libjava/java/nio/channels/NoConnectionPendingException.h create mode 100644 libjava/java/nio/channels/NonReadableChannelException.h create mode 100644 libjava/java/nio/channels/NonWritableChannelException.h create mode 100644 libjava/java/nio/channels/NotYetBoundException.h create mode 100644 libjava/java/nio/channels/NotYetConnectedException.h create mode 100644 libjava/java/nio/channels/OverlappingFileLockException.h create mode 100644 libjava/java/nio/channels/Pipe$SinkChannel.h create mode 100644 libjava/java/nio/channels/Pipe$SourceChannel.h create mode 100644 libjava/java/nio/channels/Pipe.h create mode 100644 libjava/java/nio/channels/ReadableByteChannel.h create mode 100644 libjava/java/nio/channels/ScatteringByteChannel.h create mode 100644 libjava/java/nio/channels/SelectableChannel.h create mode 100644 libjava/java/nio/channels/SelectionKey.h create mode 100644 libjava/java/nio/channels/Selector.h create mode 100644 libjava/java/nio/channels/ServerSocketChannel.h create mode 100644 libjava/java/nio/channels/SocketChannel.h create mode 100644 libjava/java/nio/channels/UnresolvedAddressException.h create mode 100644 libjava/java/nio/channels/UnsupportedAddressTypeException.h create mode 100644 libjava/java/nio/channels/VMChannels.h create mode 100644 libjava/java/nio/channels/WritableByteChannel.h create mode 100644 libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h create mode 100644 libjava/java/nio/channels/spi/AbstractSelectableChannel.h create mode 100644 libjava/java/nio/channels/spi/AbstractSelectionKey.h create mode 100644 libjava/java/nio/channels/spi/AbstractSelector.h create mode 100644 libjava/java/nio/channels/spi/SelectorProvider.h create mode 100644 libjava/java/nio/charset/CharacterCodingException.h create mode 100644 libjava/java/nio/charset/Charset.h create mode 100644 libjava/java/nio/charset/CharsetDecoder.h create mode 100644 libjava/java/nio/charset/CharsetEncoder.h create mode 100644 libjava/java/nio/charset/CoderMalfunctionError.h create mode 100644 libjava/java/nio/charset/CoderResult$1.h create mode 100644 libjava/java/nio/charset/CoderResult$2.h create mode 100644 libjava/java/nio/charset/CoderResult$Cache.h create mode 100644 libjava/java/nio/charset/CoderResult.h create mode 100644 libjava/java/nio/charset/CodingErrorAction.h create mode 100644 libjava/java/nio/charset/IllegalCharsetNameException.h create mode 100644 libjava/java/nio/charset/MalformedInputException.h create mode 100644 libjava/java/nio/charset/UnmappableCharacterException.h create mode 100644 libjava/java/nio/charset/UnsupportedCharsetException.h create mode 100644 libjava/java/nio/charset/spi/CharsetProvider.h create mode 100644 libjava/java/rmi/AccessException.h create mode 100644 libjava/java/rmi/AlreadyBoundException.h create mode 100644 libjava/java/rmi/ConnectException.h create mode 100644 libjava/java/rmi/ConnectIOException.h create mode 100644 libjava/java/rmi/MarshalException.h create mode 100644 libjava/java/rmi/MarshalledObject.h create mode 100644 libjava/java/rmi/Naming.h create mode 100644 libjava/java/rmi/NoSuchObjectException.h create mode 100644 libjava/java/rmi/NotBoundException.h create mode 100644 libjava/java/rmi/RMISecurityException.h create mode 100644 libjava/java/rmi/RMISecurityManager.h create mode 100644 libjava/java/rmi/Remote.h create mode 100644 libjava/java/rmi/RemoteException.h create mode 100644 libjava/java/rmi/ServerError.h create mode 100644 libjava/java/rmi/ServerException.h create mode 100644 libjava/java/rmi/ServerRuntimeException.h create mode 100644 libjava/java/rmi/StubNotFoundException.h create mode 100644 libjava/java/rmi/UnexpectedException.h create mode 100644 libjava/java/rmi/UnknownHostException.h create mode 100644 libjava/java/rmi/UnmarshalException.h create mode 100644 libjava/java/rmi/activation/Activatable.h create mode 100644 libjava/java/rmi/activation/ActivateFailedException.h create mode 100644 libjava/java/rmi/activation/ActivationDesc.h create mode 100644 libjava/java/rmi/activation/ActivationException.h create mode 100644 libjava/java/rmi/activation/ActivationGroup.h create mode 100644 libjava/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.h create mode 100644 libjava/java/rmi/activation/ActivationGroupDesc.h create mode 100644 libjava/java/rmi/activation/ActivationGroupID.h create mode 100644 libjava/java/rmi/activation/ActivationGroup_Stub.h create mode 100644 libjava/java/rmi/activation/ActivationID.h create mode 100644 libjava/java/rmi/activation/ActivationInstantiator.h create mode 100644 libjava/java/rmi/activation/ActivationMonitor.h create mode 100644 libjava/java/rmi/activation/ActivationSystem.h create mode 100644 libjava/java/rmi/activation/Activator.h create mode 100644 libjava/java/rmi/activation/UnknownGroupException.h create mode 100644 libjava/java/rmi/activation/UnknownObjectException.h create mode 100644 libjava/java/rmi/dgc/DGC.h create mode 100644 libjava/java/rmi/dgc/Lease.h create mode 100644 libjava/java/rmi/dgc/VMID.h create mode 100644 libjava/java/rmi/registry/LocateRegistry.h create mode 100644 libjava/java/rmi/registry/Registry.h create mode 100644 libjava/java/rmi/registry/RegistryHandler.h create mode 100644 libjava/java/rmi/server/ExportException.h create mode 100644 libjava/java/rmi/server/LoaderHandler.h create mode 100644 libjava/java/rmi/server/LogStream.h create mode 100644 libjava/java/rmi/server/ObjID.h create mode 100644 libjava/java/rmi/server/Operation.h create mode 100644 libjava/java/rmi/server/RMIClassLoader.h create mode 100644 libjava/java/rmi/server/RMIClassLoaderSpi.h create mode 100644 libjava/java/rmi/server/RMIClientSocketFactory.h create mode 100644 libjava/java/rmi/server/RMIFailureHandler.h create mode 100644 libjava/java/rmi/server/RMIServerSocketFactory.h create mode 100644 libjava/java/rmi/server/RMISocketFactory.h create mode 100644 libjava/java/rmi/server/RemoteCall.h create mode 100644 libjava/java/rmi/server/RemoteObject.h create mode 100644 libjava/java/rmi/server/RemoteObjectInvocationHandler.h create mode 100644 libjava/java/rmi/server/RemoteRef.h create mode 100644 libjava/java/rmi/server/RemoteServer.h create mode 100644 libjava/java/rmi/server/RemoteStub.h create mode 100644 libjava/java/rmi/server/ServerCloneException.h create mode 100644 libjava/java/rmi/server/ServerNotActiveException.h create mode 100644 libjava/java/rmi/server/ServerRef.h create mode 100644 libjava/java/rmi/server/Skeleton.h create mode 100644 libjava/java/rmi/server/SkeletonMismatchException.h create mode 100644 libjava/java/rmi/server/SkeletonNotFoundException.h create mode 100644 libjava/java/rmi/server/SocketSecurityException.h create mode 100644 libjava/java/rmi/server/UID.h create mode 100644 libjava/java/rmi/server/UnicastRemoteObject.h create mode 100644 libjava/java/rmi/server/Unreferenced.h create mode 100644 libjava/java/security/AccessControlContext.h create mode 100644 libjava/java/security/AccessControlException.h create mode 100644 libjava/java/security/AccessController.h create mode 100644 libjava/java/security/AlgorithmParameterGenerator.h create mode 100644 libjava/java/security/AlgorithmParameterGeneratorSpi.h create mode 100644 libjava/java/security/AlgorithmParameters.h create mode 100644 libjava/java/security/AlgorithmParametersSpi.h create mode 100644 libjava/java/security/AllPermission$AllPermissionCollection.h create mode 100644 libjava/java/security/AllPermission.h create mode 100644 libjava/java/security/BasicPermission$BasicPermissionCollection.h create mode 100644 libjava/java/security/BasicPermission.h create mode 100644 libjava/java/security/Certificate.h create mode 100644 libjava/java/security/CodeSource.h create mode 100644 libjava/java/security/DigestException.h create mode 100644 libjava/java/security/DigestInputStream.h create mode 100644 libjava/java/security/DigestOutputStream.h create mode 100644 libjava/java/security/DomainCombiner.h create mode 100644 libjava/java/security/DummyKeyPairGenerator.h create mode 100644 libjava/java/security/DummyMessageDigest.h create mode 100644 libjava/java/security/DummySignature.h create mode 100644 libjava/java/security/GeneralSecurityException.h create mode 100644 libjava/java/security/Guard.h create mode 100644 libjava/java/security/GuardedObject.h create mode 100644 libjava/java/security/Identity.h create mode 100644 libjava/java/security/IdentityScope.h create mode 100644 libjava/java/security/IntersectingDomainCombiner.h create mode 100644 libjava/java/security/InvalidAlgorithmParameterException.h create mode 100644 libjava/java/security/InvalidKeyException.h create mode 100644 libjava/java/security/InvalidParameterException.h create mode 100644 libjava/java/security/Key.h create mode 100644 libjava/java/security/KeyException.h create mode 100644 libjava/java/security/KeyFactory.h create mode 100644 libjava/java/security/KeyFactorySpi.h create mode 100644 libjava/java/security/KeyManagementException.h create mode 100644 libjava/java/security/KeyPair.h create mode 100644 libjava/java/security/KeyPairGenerator.h create mode 100644 libjava/java/security/KeyPairGeneratorSpi.h create mode 100644 libjava/java/security/KeyStore.h create mode 100644 libjava/java/security/KeyStoreException.h create mode 100644 libjava/java/security/KeyStoreSpi.h create mode 100644 libjava/java/security/MessageDigest.h create mode 100644 libjava/java/security/MessageDigestSpi.h create mode 100644 libjava/java/security/NoSuchAlgorithmException.h create mode 100644 libjava/java/security/NoSuchProviderException.h create mode 100644 libjava/java/security/Permission.h create mode 100644 libjava/java/security/PermissionCollection.h create mode 100644 libjava/java/security/Permissions$1.h create mode 100644 libjava/java/security/Permissions$PermissionsHash.h create mode 100644 libjava/java/security/Permissions.h create mode 100644 libjava/java/security/Policy.h create mode 100644 libjava/java/security/Principal.h create mode 100644 libjava/java/security/PrivateKey.h create mode 100644 libjava/java/security/PrivilegedAction.h create mode 100644 libjava/java/security/PrivilegedActionException.h create mode 100644 libjava/java/security/PrivilegedExceptionAction.h create mode 100644 libjava/java/security/ProtectionDomain.h create mode 100644 libjava/java/security/Provider.h create mode 100644 libjava/java/security/ProviderException.h create mode 100644 libjava/java/security/PublicKey.h create mode 100644 libjava/java/security/SecureClassLoader.h create mode 100644 libjava/java/security/SecureRandom.h create mode 100644 libjava/java/security/SecureRandomSpi.h create mode 100644 libjava/java/security/Security.h delete mode 100644 libjava/java/security/Security.java create mode 100644 libjava/java/security/SecurityPermission.h create mode 100644 libjava/java/security/Signature.h create mode 100644 libjava/java/security/SignatureException.h create mode 100644 libjava/java/security/SignatureSpi.h create mode 100644 libjava/java/security/SignedObject.h create mode 100644 libjava/java/security/Signer.h create mode 100644 libjava/java/security/UnrecoverableKeyException.h create mode 100644 libjava/java/security/UnresolvedPermission.h create mode 100644 libjava/java/security/UnresolvedPermissionCollection$1.h create mode 100644 libjava/java/security/UnresolvedPermissionCollection.h create mode 100644 libjava/java/security/VMAccessControlState.h create mode 100644 libjava/java/security/VMAccessController.h create mode 100644 libjava/java/security/VMSecureRandom$Spinner.h create mode 100644 libjava/java/security/VMSecureRandom.h create mode 100644 libjava/java/security/acl/Acl.h create mode 100644 libjava/java/security/acl/AclEntry.h create mode 100644 libjava/java/security/acl/AclNotFoundException.h create mode 100644 libjava/java/security/acl/Group.h create mode 100644 libjava/java/security/acl/LastOwnerException.h create mode 100644 libjava/java/security/acl/NotOwnerException.h create mode 100644 libjava/java/security/acl/Owner.h create mode 100644 libjava/java/security/acl/Permission.h create mode 100644 libjava/java/security/cert/CRL.h create mode 100644 libjava/java/security/cert/CRLException.h create mode 100644 libjava/java/security/cert/CRLSelector.h create mode 100644 libjava/java/security/cert/CertPath$CertPathRep.h create mode 100644 libjava/java/security/cert/CertPath.h create mode 100644 libjava/java/security/cert/CertPathBuilder.h create mode 100644 libjava/java/security/cert/CertPathBuilderException.h create mode 100644 libjava/java/security/cert/CertPathBuilderResult.h create mode 100644 libjava/java/security/cert/CertPathBuilderSpi.h create mode 100644 libjava/java/security/cert/CertPathParameters.h create mode 100644 libjava/java/security/cert/CertPathValidator$1.h create mode 100644 libjava/java/security/cert/CertPathValidator.h create mode 100644 libjava/java/security/cert/CertPathValidatorException.h create mode 100644 libjava/java/security/cert/CertPathValidatorResult.h create mode 100644 libjava/java/security/cert/CertPathValidatorSpi.h create mode 100644 libjava/java/security/cert/CertSelector.h create mode 100644 libjava/java/security/cert/CertStore$1.h create mode 100644 libjava/java/security/cert/CertStore.h create mode 100644 libjava/java/security/cert/CertStoreException.h create mode 100644 libjava/java/security/cert/CertStoreParameters.h create mode 100644 libjava/java/security/cert/CertStoreSpi.h create mode 100644 libjava/java/security/cert/Certificate$CertificateRep.h create mode 100644 libjava/java/security/cert/Certificate.h create mode 100644 libjava/java/security/cert/CertificateEncodingException.h create mode 100644 libjava/java/security/cert/CertificateException.h create mode 100644 libjava/java/security/cert/CertificateExpiredException.h create mode 100644 libjava/java/security/cert/CertificateFactory.h create mode 100644 libjava/java/security/cert/CertificateFactorySpi.h create mode 100644 libjava/java/security/cert/CertificateNotYetValidException.h create mode 100644 libjava/java/security/cert/CertificateParsingException.h create mode 100644 libjava/java/security/cert/CollectionCertStoreParameters.h create mode 100644 libjava/java/security/cert/LDAPCertStoreParameters.h create mode 100644 libjava/java/security/cert/PKIXBuilderParameters.h create mode 100644 libjava/java/security/cert/PKIXCertPathBuilderResult.h create mode 100644 libjava/java/security/cert/PKIXCertPathChecker.h create mode 100644 libjava/java/security/cert/PKIXCertPathValidatorResult.h create mode 100644 libjava/java/security/cert/PKIXParameters.h create mode 100644 libjava/java/security/cert/PolicyNode.h create mode 100644 libjava/java/security/cert/PolicyQualifierInfo.h create mode 100644 libjava/java/security/cert/TrustAnchor.h create mode 100644 libjava/java/security/cert/X509CRL.h create mode 100644 libjava/java/security/cert/X509CRLEntry.h create mode 100644 libjava/java/security/cert/X509CRLSelector.h create mode 100644 libjava/java/security/cert/X509CertSelector.h create mode 100644 libjava/java/security/cert/X509Certificate.h create mode 100644 libjava/java/security/cert/X509Extension.h create mode 100644 libjava/java/security/interfaces/DSAKey.h create mode 100644 libjava/java/security/interfaces/DSAKeyPairGenerator.h create mode 100644 libjava/java/security/interfaces/DSAParams.h create mode 100644 libjava/java/security/interfaces/DSAPrivateKey.h create mode 100644 libjava/java/security/interfaces/DSAPublicKey.h create mode 100644 libjava/java/security/interfaces/RSAKey.h create mode 100644 libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.h create mode 100644 libjava/java/security/interfaces/RSAPrivateCrtKey.h create mode 100644 libjava/java/security/interfaces/RSAPrivateKey.h create mode 100644 libjava/java/security/interfaces/RSAPublicKey.h create mode 100644 libjava/java/security/spec/AlgorithmParameterSpec.h create mode 100644 libjava/java/security/spec/DSAParameterSpec.h create mode 100644 libjava/java/security/spec/DSAPrivateKeySpec.h create mode 100644 libjava/java/security/spec/DSAPublicKeySpec.h create mode 100644 libjava/java/security/spec/EncodedKeySpec.h create mode 100644 libjava/java/security/spec/InvalidKeySpecException.h create mode 100644 libjava/java/security/spec/InvalidParameterSpecException.h create mode 100644 libjava/java/security/spec/KeySpec.h create mode 100644 libjava/java/security/spec/PKCS8EncodedKeySpec.h create mode 100644 libjava/java/security/spec/PSSParameterSpec.h create mode 100644 libjava/java/security/spec/RSAKeyGenParameterSpec.h create mode 100644 libjava/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.h create mode 100644 libjava/java/security/spec/RSAOtherPrimeInfo.h create mode 100644 libjava/java/security/spec/RSAPrivateCrtKeySpec.h create mode 100644 libjava/java/security/spec/RSAPrivateKeySpec.h create mode 100644 libjava/java/security/spec/RSAPublicKeySpec.h create mode 100644 libjava/java/security/spec/X509EncodedKeySpec.h create mode 100644 libjava/java/sql/Array.h create mode 100644 libjava/java/sql/BatchUpdateException.h create mode 100644 libjava/java/sql/Blob.h create mode 100644 libjava/java/sql/CallableStatement.h create mode 100644 libjava/java/sql/Clob.h create mode 100644 libjava/java/sql/Connection.h create mode 100644 libjava/java/sql/DataTruncation.h create mode 100644 libjava/java/sql/DatabaseMetaData.h create mode 100644 libjava/java/sql/Date.h create mode 100644 libjava/java/sql/Driver.h create mode 100644 libjava/java/sql/DriverManager.h create mode 100644 libjava/java/sql/DriverPropertyInfo.h create mode 100644 libjava/java/sql/ParameterMetaData.h create mode 100644 libjava/java/sql/PreparedStatement.h create mode 100644 libjava/java/sql/Ref.h create mode 100644 libjava/java/sql/ResultSet.h create mode 100644 libjava/java/sql/ResultSetMetaData.h create mode 100644 libjava/java/sql/SQLData.h create mode 100644 libjava/java/sql/SQLException.h create mode 100644 libjava/java/sql/SQLInput.h create mode 100644 libjava/java/sql/SQLOutput.h create mode 100644 libjava/java/sql/SQLPermission.h create mode 100644 libjava/java/sql/SQLWarning.h create mode 100644 libjava/java/sql/Savepoint.h create mode 100644 libjava/java/sql/Statement.h create mode 100644 libjava/java/sql/Struct.h create mode 100644 libjava/java/sql/Time.h create mode 100644 libjava/java/sql/Timestamp.h create mode 100644 libjava/java/sql/Types.h create mode 100644 libjava/java/text/Annotation.h create mode 100644 libjava/java/text/AttributedCharacterIterator$Attribute.h create mode 100644 libjava/java/text/AttributedCharacterIterator.h create mode 100644 libjava/java/text/AttributedString$AttributeRange.h create mode 100644 libjava/java/text/AttributedString.h create mode 100644 libjava/java/text/AttributedStringIterator.h create mode 100644 libjava/java/text/Bidi.h create mode 100644 libjava/java/text/BreakIterator.h create mode 100644 libjava/java/text/CharacterIterator.h create mode 100644 libjava/java/text/ChoiceFormat.h create mode 100644 libjava/java/text/CollationElementIterator.h create mode 100644 libjava/java/text/CollationKey.h create mode 100644 libjava/java/text/Collator.h create mode 100644 libjava/java/text/DateFormat$Field.h create mode 100644 libjava/java/text/DateFormat.h create mode 100644 libjava/java/text/DateFormatSymbols.h create mode 100644 libjava/java/text/DecimalFormat.h create mode 100644 libjava/java/text/DecimalFormatSymbols.h create mode 100644 libjava/java/text/FieldPosition.h create mode 100644 libjava/java/text/Format$Field.h create mode 100644 libjava/java/text/Format.h create mode 100644 libjava/java/text/MessageFormat$Field.h create mode 100644 libjava/java/text/MessageFormat$MessageFormatElement.h create mode 100644 libjava/java/text/MessageFormat.h create mode 100644 libjava/java/text/NumberFormat$Field.h create mode 100644 libjava/java/text/NumberFormat.h create mode 100644 libjava/java/text/ParseException.h create mode 100644 libjava/java/text/ParsePosition.h create mode 100644 libjava/java/text/RuleBasedCollator$CollationElement.h create mode 100644 libjava/java/text/RuleBasedCollator$CollationSorter.h create mode 100644 libjava/java/text/RuleBasedCollator.h create mode 100644 libjava/java/text/SimpleDateFormat$CompiledField.h create mode 100644 libjava/java/text/SimpleDateFormat.h create mode 100644 libjava/java/text/StringCharacterIterator.h create mode 100644 libjava/java/util/AbstractCollection.h create mode 100644 libjava/java/util/AbstractList$1.h create mode 100644 libjava/java/util/AbstractList$2.h create mode 100644 libjava/java/util/AbstractList$3.h create mode 100644 libjava/java/util/AbstractList$RandomAccessSubList.h create mode 100644 libjava/java/util/AbstractList$SubList.h create mode 100644 libjava/java/util/AbstractList.h create mode 100644 libjava/java/util/AbstractMap$1.h create mode 100644 libjava/java/util/AbstractMap$2.h create mode 100644 libjava/java/util/AbstractMap$3.h create mode 100644 libjava/java/util/AbstractMap$4.h create mode 100644 libjava/java/util/AbstractMap$SimpleEntry.h create mode 100644 libjava/java/util/AbstractMap$SimpleImmutableEntry.h create mode 100644 libjava/java/util/AbstractMap.h create mode 100644 libjava/java/util/AbstractQueue.h create mode 100644 libjava/java/util/AbstractSequentialList.h create mode 100644 libjava/java/util/AbstractSet.h create mode 100644 libjava/java/util/ArrayDeque$DeqIterator.h create mode 100644 libjava/java/util/ArrayDeque$DescendingIterator.h create mode 100644 libjava/java/util/ArrayDeque.h create mode 100644 libjava/java/util/ArrayList.h create mode 100644 libjava/java/util/Arrays$ArrayList.h create mode 100644 libjava/java/util/Arrays.h create mode 100644 libjava/java/util/BitSet.h create mode 100644 libjava/java/util/Calendar.h create mode 100644 libjava/java/util/Collection.h create mode 100644 libjava/java/util/Collections$1$SynchronizedMapEntry.h create mode 100644 libjava/java/util/Collections$1.h create mode 100644 libjava/java/util/Collections$2.h create mode 100644 libjava/java/util/Collections$3.h create mode 100644 libjava/java/util/Collections$4.h create mode 100644 libjava/java/util/Collections$5.h create mode 100644 libjava/java/util/Collections$6.h create mode 100644 libjava/java/util/Collections$7.h create mode 100644 libjava/java/util/Collections$8.h create mode 100644 libjava/java/util/Collections$9.h create mode 100644 libjava/java/util/Collections$CheckedCollection.h create mode 100644 libjava/java/util/Collections$CheckedIterator.h create mode 100644 libjava/java/util/Collections$CheckedList.h create mode 100644 libjava/java/util/Collections$CheckedListIterator.h create mode 100644 libjava/java/util/Collections$CheckedMap$CheckedEntrySet.h create mode 100644 libjava/java/util/Collections$CheckedMap.h create mode 100644 libjava/java/util/Collections$CheckedRandomAccessList.h create mode 100644 libjava/java/util/Collections$CheckedSet.h create mode 100644 libjava/java/util/Collections$CheckedSortedMap.h create mode 100644 libjava/java/util/Collections$CheckedSortedSet.h create mode 100644 libjava/java/util/Collections$CopiesList.h create mode 100644 libjava/java/util/Collections$EmptyList.h create mode 100644 libjava/java/util/Collections$EmptyMap.h create mode 100644 libjava/java/util/Collections$EmptySet.h create mode 100644 libjava/java/util/Collections$ReverseComparator.h create mode 100644 libjava/java/util/Collections$SingletonList.h create mode 100644 libjava/java/util/Collections$SingletonMap.h create mode 100644 libjava/java/util/Collections$SingletonSet.h create mode 100644 libjava/java/util/Collections$SynchronizedCollection.h create mode 100644 libjava/java/util/Collections$SynchronizedIterator.h create mode 100644 libjava/java/util/Collections$SynchronizedList.h create mode 100644 libjava/java/util/Collections$SynchronizedListIterator.h create mode 100644 libjava/java/util/Collections$SynchronizedMap.h create mode 100644 libjava/java/util/Collections$SynchronizedRandomAccessList.h create mode 100644 libjava/java/util/Collections$SynchronizedSet.h create mode 100644 libjava/java/util/Collections$SynchronizedSortedMap.h create mode 100644 libjava/java/util/Collections$SynchronizedSortedSet.h create mode 100644 libjava/java/util/Collections$UnmodifiableCollection.h create mode 100644 libjava/java/util/Collections$UnmodifiableIterator.h create mode 100644 libjava/java/util/Collections$UnmodifiableList.h create mode 100644 libjava/java/util/Collections$UnmodifiableListIterator.h create mode 100644 libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.h create mode 100644 libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h create mode 100644 libjava/java/util/Collections$UnmodifiableMap.h create mode 100644 libjava/java/util/Collections$UnmodifiableRandomAccessList.h create mode 100644 libjava/java/util/Collections$UnmodifiableSet.h create mode 100644 libjava/java/util/Collections$UnmodifiableSortedMap.h create mode 100644 libjava/java/util/Collections$UnmodifiableSortedSet.h create mode 100644 libjava/java/util/Collections.h create mode 100644 libjava/java/util/Comparator.h create mode 100644 libjava/java/util/ConcurrentModificationException.h create mode 100644 libjava/java/util/Currency.h create mode 100644 libjava/java/util/Date.h create mode 100644 libjava/java/util/Deque.h create mode 100644 libjava/java/util/Dictionary.h create mode 100644 libjava/java/util/DuplicateFormatFlagsException.h create mode 100644 libjava/java/util/EmptyStackException.h create mode 100644 libjava/java/util/EnumMap$1.h create mode 100644 libjava/java/util/EnumMap$2.h create mode 100644 libjava/java/util/EnumMap$3.h create mode 100644 libjava/java/util/EnumMap$4.h create mode 100644 libjava/java/util/EnumMap$5.h create mode 100644 libjava/java/util/EnumMap$6.h create mode 100644 libjava/java/util/EnumMap$7.h create mode 100644 libjava/java/util/EnumMap.h create mode 100644 libjava/java/util/EnumSet$1.h create mode 100644 libjava/java/util/EnumSet.h create mode 100644 libjava/java/util/Enumeration.h create mode 100644 libjava/java/util/EventListener.h create mode 100644 libjava/java/util/EventListenerProxy.h create mode 100644 libjava/java/util/EventObject.h create mode 100644 libjava/java/util/FormatFlagsConversionMismatchException.h create mode 100644 libjava/java/util/Formattable.h create mode 100644 libjava/java/util/FormattableFlags.h create mode 100644 libjava/java/util/Formatter$BigDecimalLayoutForm.h create mode 100644 libjava/java/util/Formatter.h create mode 100644 libjava/java/util/FormatterClosedException.h create mode 100644 libjava/java/util/GregorianCalendar.h create mode 100644 libjava/java/util/HashMap$1.h create mode 100644 libjava/java/util/HashMap$2.h create mode 100644 libjava/java/util/HashMap$3.h create mode 100644 libjava/java/util/HashMap$HashEntry.h create mode 100644 libjava/java/util/HashMap$HashIterator.h create mode 100644 libjava/java/util/HashMap.h create mode 100644 libjava/java/util/HashSet.h create mode 100644 libjava/java/util/Hashtable$1.h create mode 100644 libjava/java/util/Hashtable$2.h create mode 100644 libjava/java/util/Hashtable$3.h create mode 100644 libjava/java/util/Hashtable$EntryEnumerator.h create mode 100644 libjava/java/util/Hashtable$EntryIterator.h create mode 100644 libjava/java/util/Hashtable$HashEntry.h create mode 100644 libjava/java/util/Hashtable$KeyEnumerator.h create mode 100644 libjava/java/util/Hashtable$KeyIterator.h create mode 100644 libjava/java/util/Hashtable$ValueEnumerator.h create mode 100644 libjava/java/util/Hashtable$ValueIterator.h create mode 100644 libjava/java/util/Hashtable.h create mode 100644 libjava/java/util/IdentityHashMap$1.h create mode 100644 libjava/java/util/IdentityHashMap$2.h create mode 100644 libjava/java/util/IdentityHashMap$3.h create mode 100644 libjava/java/util/IdentityHashMap$IdentityEntry.h create mode 100644 libjava/java/util/IdentityHashMap$IdentityIterator.h create mode 100644 libjava/java/util/IdentityHashMap.h create mode 100644 libjava/java/util/IllegalFormatCodePointException.h create mode 100644 libjava/java/util/IllegalFormatConversionException.h create mode 100644 libjava/java/util/IllegalFormatException.h create mode 100644 libjava/java/util/IllegalFormatFlagsException.h create mode 100644 libjava/java/util/IllegalFormatPrecisionException.h create mode 100644 libjava/java/util/IllegalFormatWidthException.h create mode 100644 libjava/java/util/InputMismatchException.h create mode 100644 libjava/java/util/InvalidPropertiesFormatException.h create mode 100644 libjava/java/util/Iterator.h create mode 100644 libjava/java/util/LinkedHashMap$1.h create mode 100644 libjava/java/util/LinkedHashMap$LinkedHashEntry.h create mode 100644 libjava/java/util/LinkedHashMap.h create mode 100644 libjava/java/util/LinkedHashSet.h create mode 100644 libjava/java/util/LinkedList$Entry.h create mode 100644 libjava/java/util/LinkedList$LinkedListItr.h create mode 100644 libjava/java/util/LinkedList.h create mode 100644 libjava/java/util/List.h create mode 100644 libjava/java/util/ListIterator.h create mode 100644 libjava/java/util/ListResourceBundle.h create mode 100644 libjava/java/util/Locale.h create mode 100644 libjava/java/util/Map$Entry.h create mode 100644 libjava/java/util/Map.h create mode 100644 libjava/java/util/MissingFormatArgumentException.h create mode 100644 libjava/java/util/MissingFormatWidthException.h create mode 100644 libjava/java/util/MissingResourceException.h create mode 100644 libjava/java/util/NavigableMap.h create mode 100644 libjava/java/util/NavigableSet.h create mode 100644 libjava/java/util/NoSuchElementException.h create mode 100644 libjava/java/util/Observable.h create mode 100644 libjava/java/util/Observer.h create mode 100644 libjava/java/util/PriorityQueue$1.h create mode 100644 libjava/java/util/PriorityQueue.h create mode 100644 libjava/java/util/Properties.h create mode 100644 libjava/java/util/PropertyPermission.h create mode 100644 libjava/java/util/PropertyPermissionCollection.h create mode 100644 libjava/java/util/PropertyResourceBundle.h create mode 100644 libjava/java/util/Queue.h create mode 100644 libjava/java/util/Random.h create mode 100644 libjava/java/util/RandomAccess.h create mode 100644 libjava/java/util/ResourceBundle$1.h create mode 100644 libjava/java/util/ResourceBundle$BundleKey.h create mode 100644 libjava/java/util/ResourceBundle.h delete mode 100644 libjava/java/util/ResourceBundle.java create mode 100644 libjava/java/util/Set.h create mode 100644 libjava/java/util/SimpleTimeZone.h create mode 100644 libjava/java/util/SortedMap.h create mode 100644 libjava/java/util/SortedSet.h create mode 100644 libjava/java/util/Stack.h create mode 100644 libjava/java/util/StringTokenizer.h create mode 100644 libjava/java/util/TimeZone$1.h create mode 100644 libjava/java/util/TimeZone.h create mode 100644 libjava/java/util/Timer$Scheduler.h create mode 100644 libjava/java/util/Timer$TaskQueue.h create mode 100644 libjava/java/util/Timer.h create mode 100644 libjava/java/util/TimerTask.h create mode 100644 libjava/java/util/TooManyListenersException.h create mode 100644 libjava/java/util/TreeMap$1.h create mode 100644 libjava/java/util/TreeMap$2.h create mode 100644 libjava/java/util/TreeMap$3.h create mode 100644 libjava/java/util/TreeMap$4.h create mode 100644 libjava/java/util/TreeMap$5.h create mode 100644 libjava/java/util/TreeMap$6.h create mode 100644 libjava/java/util/TreeMap$Node.h create mode 100644 libjava/java/util/TreeMap$SubMap.h create mode 100644 libjava/java/util/TreeMap$TreeIterator.h create mode 100644 libjava/java/util/TreeMap.h create mode 100644 libjava/java/util/TreeSet.h create mode 100644 libjava/java/util/UUID.h create mode 100644 libjava/java/util/UnknownFormatConversionException.h create mode 100644 libjava/java/util/UnknownFormatFlagsException.h create mode 100644 libjava/java/util/VMTimeZone.h create mode 100644 libjava/java/util/Vector$1.h create mode 100644 libjava/java/util/Vector.h create mode 100644 libjava/java/util/WeakHashMap$1.h create mode 100644 libjava/java/util/WeakHashMap$2.h create mode 100644 libjava/java/util/WeakHashMap$WeakBucket$WeakEntry.h create mode 100644 libjava/java/util/WeakHashMap$WeakBucket.h create mode 100644 libjava/java/util/WeakHashMap$WeakEntrySet.h create mode 100644 libjava/java/util/WeakHashMap.h create mode 100644 libjava/java/util/concurrent/AbstractExecutorService.h create mode 100644 libjava/java/util/concurrent/ArrayBlockingQueue$Itr.h create mode 100644 libjava/java/util/concurrent/ArrayBlockingQueue.h create mode 100644 libjava/java/util/concurrent/BlockingDeque.h create mode 100644 libjava/java/util/concurrent/BlockingQueue.h create mode 100644 libjava/java/util/concurrent/BrokenBarrierException.h create mode 100644 libjava/java/util/concurrent/Callable.h create mode 100644 libjava/java/util/concurrent/CancellationException.h create mode 100644 libjava/java/util/concurrent/CompletionService.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$EntryIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$EntrySet.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$HashEntry.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$HashIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$KeyIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$KeySet.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$Segment.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$ValueIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$Values.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.h create mode 100644 libjava/java/util/concurrent/ConcurrentHashMap.h create mode 100644 libjava/java/util/concurrent/ConcurrentLinkedQueue$Itr.h create mode 100644 libjava/java/util/concurrent/ConcurrentLinkedQueue$Node.h create mode 100644 libjava/java/util/concurrent/ConcurrentLinkedQueue.h create mode 100644 libjava/java/util/concurrent/ConcurrentMap.h create mode 100644 libjava/java/util/concurrent/ConcurrentNavigableMap.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$EntrySet.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$Index.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$Iter.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$KeySet.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$Node.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$SubMap.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap$Values.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListMap.h create mode 100644 libjava/java/util/concurrent/ConcurrentSkipListSet.h create mode 100644 libjava/java/util/concurrent/CopyOnWriteArrayList.h create mode 100644 libjava/java/util/concurrent/CopyOnWriteArraySet.h create mode 100644 libjava/java/util/concurrent/CountDownLatch$Sync.h create mode 100644 libjava/java/util/concurrent/CountDownLatch.h create mode 100644 libjava/java/util/concurrent/CyclicBarrier$Generation.h create mode 100644 libjava/java/util/concurrent/CyclicBarrier.h create mode 100644 libjava/java/util/concurrent/DelayQueue$Itr.h create mode 100644 libjava/java/util/concurrent/DelayQueue.h create mode 100644 libjava/java/util/concurrent/Delayed.h create mode 100644 libjava/java/util/concurrent/Exchanger$Node.h create mode 100644 libjava/java/util/concurrent/Exchanger$Slot.h create mode 100644 libjava/java/util/concurrent/Exchanger.h create mode 100644 libjava/java/util/concurrent/ExecutionException.h create mode 100644 libjava/java/util/concurrent/Executor.h create mode 100644 libjava/java/util/concurrent/ExecutorCompletionService$QueueingFuture.h create mode 100644 libjava/java/util/concurrent/ExecutorCompletionService.h create mode 100644 libjava/java/util/concurrent/ExecutorService.h create mode 100644 libjava/java/util/concurrent/Executors$1.h create mode 100644 libjava/java/util/concurrent/Executors$2.h create mode 100644 libjava/java/util/concurrent/Executors$3.h create mode 100644 libjava/java/util/concurrent/Executors$4.h create mode 100644 libjava/java/util/concurrent/Executors$5.h create mode 100644 libjava/java/util/concurrent/Executors$6.h create mode 100644 libjava/java/util/concurrent/Executors$DefaultThreadFactory.h create mode 100644 libjava/java/util/concurrent/Executors$DelegatedExecutorService.h create mode 100644 libjava/java/util/concurrent/Executors$DelegatedScheduledExecutorService.h create mode 100644 libjava/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.h create mode 100644 libjava/java/util/concurrent/Executors$PrivilegedCallable.h create mode 100644 libjava/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.h create mode 100644 libjava/java/util/concurrent/Executors$PrivilegedThreadFactory.h create mode 100644 libjava/java/util/concurrent/Executors$RunnableAdapter.h create mode 100644 libjava/java/util/concurrent/Executors.h create mode 100644 libjava/java/util/concurrent/Future.h create mode 100644 libjava/java/util/concurrent/FutureTask$Sync.h create mode 100644 libjava/java/util/concurrent/FutureTask.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingDeque$AbstractItr.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingDeque$DescendingItr.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingDeque$Itr.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingDeque$Node.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingDeque.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingQueue$Itr.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingQueue$Node.h create mode 100644 libjava/java/util/concurrent/LinkedBlockingQueue.h create mode 100644 libjava/java/util/concurrent/PriorityBlockingQueue$Itr.h create mode 100644 libjava/java/util/concurrent/PriorityBlockingQueue.h create mode 100644 libjava/java/util/concurrent/RejectedExecutionException.h create mode 100644 libjava/java/util/concurrent/RejectedExecutionHandler.h create mode 100644 libjava/java/util/concurrent/RunnableFuture.h create mode 100644 libjava/java/util/concurrent/RunnableScheduledFuture.h create mode 100644 libjava/java/util/concurrent/ScheduledExecutorService.h create mode 100644 libjava/java/util/concurrent/ScheduledFuture.h create mode 100644 libjava/java/util/concurrent/ScheduledThreadPoolExecutor$1.h create mode 100644 libjava/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.h create mode 100644 libjava/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.h create mode 100644 libjava/java/util/concurrent/ScheduledThreadPoolExecutor.h create mode 100644 libjava/java/util/concurrent/Semaphore$FairSync.h create mode 100644 libjava/java/util/concurrent/Semaphore$NonfairSync.h create mode 100644 libjava/java/util/concurrent/Semaphore$Sync.h create mode 100644 libjava/java/util/concurrent/Semaphore.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$EmptyIterator.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$FifoWaitQueue.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$LifoWaitQueue.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$TransferQueue.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$TransferStack$SNode.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$TransferStack.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$Transferer.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue$WaitQueue.h create mode 100644 libjava/java/util/concurrent/SynchronousQueue.h create mode 100644 libjava/java/util/concurrent/ThreadFactory.h create mode 100644 libjava/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.h create mode 100644 libjava/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.h create mode 100644 libjava/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.h create mode 100644 libjava/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.h create mode 100644 libjava/java/util/concurrent/ThreadPoolExecutor$Worker.h create mode 100644 libjava/java/util/concurrent/ThreadPoolExecutor.h create mode 100644 libjava/java/util/concurrent/TimeUnit$1.h create mode 100644 libjava/java/util/concurrent/TimeUnit$2.h create mode 100644 libjava/java/util/concurrent/TimeUnit$3.h create mode 100644 libjava/java/util/concurrent/TimeUnit$4.h create mode 100644 libjava/java/util/concurrent/TimeUnit$5.h create mode 100644 libjava/java/util/concurrent/TimeUnit$6.h create mode 100644 libjava/java/util/concurrent/TimeUnit$7.h create mode 100644 libjava/java/util/concurrent/TimeUnit.h create mode 100644 libjava/java/util/concurrent/TimeoutException.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicBoolean.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicInteger.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicIntegerArray.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicLong.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicLongArray.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicLongFieldUpdater.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicMarkableReference.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicReference.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicReferenceArray.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.h create mode 100644 libjava/java/util/concurrent/atomic/AtomicStampedReference.h create mode 100644 libjava/java/util/concurrent/atomic/natAtomicLong.cc create mode 100644 libjava/java/util/concurrent/locks/AbstractOwnableSynchronizer.h create mode 100644 libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.h create mode 100644 libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h create mode 100644 libjava/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h create mode 100644 libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.h create mode 100644 libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h create mode 100644 libjava/java/util/concurrent/locks/AbstractQueuedSynchronizer.h create mode 100644 libjava/java/util/concurrent/locks/Condition.h create mode 100644 libjava/java/util/concurrent/locks/Lock.h create mode 100644 libjava/java/util/concurrent/locks/LockSupport.h create mode 100644 libjava/java/util/concurrent/locks/ReadWriteLock.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantLock$FairSync.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantLock$NonfairSync.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantLock$Sync.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantLock.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.h create mode 100644 libjava/java/util/concurrent/locks/ReentrantReadWriteLock.h create mode 100644 libjava/java/util/jar/Attributes$Name.h create mode 100644 libjava/java/util/jar/Attributes.h create mode 100644 libjava/java/util/jar/JarEntry.h create mode 100644 libjava/java/util/jar/JarException.h create mode 100644 libjava/java/util/jar/JarFile$EntryInputStream.h create mode 100644 libjava/java/util/jar/JarFile$JarEnumeration.h create mode 100644 libjava/java/util/jar/JarFile.h create mode 100644 libjava/java/util/jar/JarInputStream.h create mode 100644 libjava/java/util/jar/JarOutputStream.h create mode 100644 libjava/java/util/jar/Manifest.h create mode 100644 libjava/java/util/logging/ConsoleHandler.h create mode 100644 libjava/java/util/logging/ErrorManager.h create mode 100644 libjava/java/util/logging/FileHandler$ostr.h create mode 100644 libjava/java/util/logging/FileHandler.h create mode 100644 libjava/java/util/logging/Filter.h create mode 100644 libjava/java/util/logging/Formatter.h create mode 100644 libjava/java/util/logging/Handler.h create mode 100644 libjava/java/util/logging/Level.h create mode 100644 libjava/java/util/logging/LogManager$1.h create mode 100644 libjava/java/util/logging/LogManager.h create mode 100644 libjava/java/util/logging/LogRecord.h create mode 100644 libjava/java/util/logging/Logger$1.h create mode 100644 libjava/java/util/logging/Logger.h create mode 100644 libjava/java/util/logging/LoggingMXBean.h create mode 100644 libjava/java/util/logging/LoggingPermission.h create mode 100644 libjava/java/util/logging/MemoryHandler.h create mode 100644 libjava/java/util/logging/SimpleFormatter.h create mode 100644 libjava/java/util/logging/SocketHandler.h create mode 100644 libjava/java/util/logging/StreamHandler.h create mode 100644 libjava/java/util/logging/XMLFormatter.h delete mode 100644 libjava/java/util/natResourceBundle.cc create mode 100644 libjava/java/util/prefs/AbstractPreferences$1.h create mode 100644 libjava/java/util/prefs/AbstractPreferences$2.h create mode 100644 libjava/java/util/prefs/AbstractPreferences.h create mode 100644 libjava/java/util/prefs/BackingStoreException.h create mode 100644 libjava/java/util/prefs/InvalidPreferencesFormatException.h create mode 100644 libjava/java/util/prefs/NodeChangeEvent.h create mode 100644 libjava/java/util/prefs/NodeChangeListener.h create mode 100644 libjava/java/util/prefs/PreferenceChangeEvent.h create mode 100644 libjava/java/util/prefs/PreferenceChangeListener.h create mode 100644 libjava/java/util/prefs/Preferences$1.h create mode 100644 libjava/java/util/prefs/Preferences.h create mode 100644 libjava/java/util/prefs/PreferencesFactory.h create mode 100644 libjava/java/util/regex/MatchResult.h create mode 100644 libjava/java/util/regex/Matcher.h create mode 100644 libjava/java/util/regex/Pattern.h create mode 100644 libjava/java/util/regex/PatternSyntaxException.h create mode 100644 libjava/java/util/zip/Adler32.h create mode 100644 libjava/java/util/zip/CRC32.h create mode 100644 libjava/java/util/zip/CheckedInputStream.h create mode 100644 libjava/java/util/zip/CheckedOutputStream.h create mode 100644 libjava/java/util/zip/Checksum.h create mode 100644 libjava/java/util/zip/DataFormatException.h create mode 100644 libjava/java/util/zip/Deflater.h create mode 100644 libjava/java/util/zip/DeflaterOutputStream.h create mode 100644 libjava/java/util/zip/GZIPInputStream.h create mode 100644 libjava/java/util/zip/GZIPOutputStream.h create mode 100644 libjava/java/util/zip/Inflater.h create mode 100644 libjava/java/util/zip/InflaterInputStream.h create mode 100644 libjava/java/util/zip/ZipConstants.h create mode 100644 libjava/java/util/zip/ZipEntry.h create mode 100644 libjava/java/util/zip/ZipException.h create mode 100644 libjava/java/util/zip/ZipFile$1.h create mode 100644 libjava/java/util/zip/ZipFile$PartialInputStream.h create mode 100644 libjava/java/util/zip/ZipFile$ZipEntryEnumeration.h create mode 100644 libjava/java/util/zip/ZipFile.h create mode 100644 libjava/java/util/zip/ZipInputStream.h create mode 100644 libjava/java/util/zip/ZipOutputStream.h create mode 100644 libjava/javax/accessibility/Accessible.h create mode 100644 libjava/javax/accessibility/AccessibleAction.h create mode 100644 libjava/javax/accessibility/AccessibleAttributeSequence.h create mode 100644 libjava/javax/accessibility/AccessibleBundle.h create mode 100644 libjava/javax/accessibility/AccessibleComponent.h create mode 100644 libjava/javax/accessibility/AccessibleContext.h create mode 100644 libjava/javax/accessibility/AccessibleEditableText.h create mode 100644 libjava/javax/accessibility/AccessibleExtendedComponent.h create mode 100644 libjava/javax/accessibility/AccessibleExtendedTable.h create mode 100644 libjava/javax/accessibility/AccessibleExtendedText.h create mode 100644 libjava/javax/accessibility/AccessibleHyperlink.h create mode 100644 libjava/javax/accessibility/AccessibleHypertext.h create mode 100644 libjava/javax/accessibility/AccessibleIcon.h create mode 100644 libjava/javax/accessibility/AccessibleKeyBinding.h create mode 100644 libjava/javax/accessibility/AccessibleRelation.h create mode 100644 libjava/javax/accessibility/AccessibleRelationSet.h create mode 100644 libjava/javax/accessibility/AccessibleResourceBundle.h create mode 100644 libjava/javax/accessibility/AccessibleRole.h create mode 100644 libjava/javax/accessibility/AccessibleSelection.h create mode 100644 libjava/javax/accessibility/AccessibleState.h create mode 100644 libjava/javax/accessibility/AccessibleStateSet.h create mode 100644 libjava/javax/accessibility/AccessibleStreamable.h create mode 100644 libjava/javax/accessibility/AccessibleTable.h create mode 100644 libjava/javax/accessibility/AccessibleTableModelChange.h create mode 100644 libjava/javax/accessibility/AccessibleText.h create mode 100644 libjava/javax/accessibility/AccessibleTextSequence.h create mode 100644 libjava/javax/accessibility/AccessibleValue.h create mode 100644 libjava/javax/crypto/BadPaddingException.h create mode 100644 libjava/javax/crypto/Cipher.h create mode 100644 libjava/javax/crypto/CipherInputStream.h create mode 100644 libjava/javax/crypto/CipherOutputStream.h create mode 100644 libjava/javax/crypto/CipherSpi.h create mode 100644 libjava/javax/crypto/EncryptedPrivateKeyInfo.h create mode 100644 libjava/javax/crypto/ExemptionMechanism.h create mode 100644 libjava/javax/crypto/ExemptionMechanismException.h create mode 100644 libjava/javax/crypto/ExemptionMechanismSpi.h create mode 100644 libjava/javax/crypto/IllegalBlockSizeException.h create mode 100644 libjava/javax/crypto/KeyAgreement.h create mode 100644 libjava/javax/crypto/KeyAgreementSpi.h create mode 100644 libjava/javax/crypto/KeyGenerator.h create mode 100644 libjava/javax/crypto/KeyGeneratorSpi.h create mode 100644 libjava/javax/crypto/Mac.h create mode 100644 libjava/javax/crypto/MacSpi.h create mode 100644 libjava/javax/crypto/NoSuchPaddingException.h create mode 100644 libjava/javax/crypto/NullCipher.h create mode 100644 libjava/javax/crypto/NullCipherImpl.h create mode 100644 libjava/javax/crypto/SealedObject.h create mode 100644 libjava/javax/crypto/SecretKey.h create mode 100644 libjava/javax/crypto/SecretKeyFactory.h create mode 100644 libjava/javax/crypto/SecretKeyFactorySpi.h create mode 100644 libjava/javax/crypto/ShortBufferException.h create mode 100644 libjava/javax/crypto/interfaces/DHKey.h create mode 100644 libjava/javax/crypto/interfaces/DHPrivateKey.h create mode 100644 libjava/javax/crypto/interfaces/DHPublicKey.h create mode 100644 libjava/javax/crypto/interfaces/PBEKey.h create mode 100644 libjava/javax/crypto/spec/DESKeySpec.h create mode 100644 libjava/javax/crypto/spec/DESedeKeySpec.h create mode 100644 libjava/javax/crypto/spec/DHGenParameterSpec.h create mode 100644 libjava/javax/crypto/spec/DHParameterSpec.h create mode 100644 libjava/javax/crypto/spec/DHPrivateKeySpec.h create mode 100644 libjava/javax/crypto/spec/DHPublicKeySpec.h create mode 100644 libjava/javax/crypto/spec/IvParameterSpec.h create mode 100644 libjava/javax/crypto/spec/PBEKeySpec.h create mode 100644 libjava/javax/crypto/spec/PBEParameterSpec.h create mode 100644 libjava/javax/crypto/spec/RC2ParameterSpec.h create mode 100644 libjava/javax/crypto/spec/RC5ParameterSpec.h create mode 100644 libjava/javax/crypto/spec/SecretKeySpec.h create mode 100644 libjava/javax/imageio/IIOException.h create mode 100644 libjava/javax/imageio/IIOImage.h create mode 100644 libjava/javax/imageio/IIOParam.h create mode 100644 libjava/javax/imageio/IIOParamController.h create mode 100644 libjava/javax/imageio/ImageIO$1.h create mode 100644 libjava/javax/imageio/ImageIO$ImageReaderIterator.h create mode 100644 libjava/javax/imageio/ImageIO$ImageWriterIterator.h create mode 100644 libjava/javax/imageio/ImageIO$ReaderFormatFilter.h create mode 100644 libjava/javax/imageio/ImageIO$ReaderMIMETypeFilter.h create mode 100644 libjava/javax/imageio/ImageIO$ReaderObjectFilter.h create mode 100644 libjava/javax/imageio/ImageIO$ReaderSuffixFilter.h create mode 100644 libjava/javax/imageio/ImageIO$TranscoderFilter.h create mode 100644 libjava/javax/imageio/ImageIO$WriterFormatFilter.h create mode 100644 libjava/javax/imageio/ImageIO$WriterMIMETypeFilter.h create mode 100644 libjava/javax/imageio/ImageIO$WriterObjectFilter.h create mode 100644 libjava/javax/imageio/ImageIO$WriterSuffixFilter.h create mode 100644 libjava/javax/imageio/ImageIO.h create mode 100644 libjava/javax/imageio/ImageReadParam.h create mode 100644 libjava/javax/imageio/ImageReader.h create mode 100644 libjava/javax/imageio/ImageTranscoder.h create mode 100644 libjava/javax/imageio/ImageTypeSpecifier.h create mode 100644 libjava/javax/imageio/ImageWriteParam.h create mode 100644 libjava/javax/imageio/ImageWriter.h create mode 100644 libjava/javax/imageio/event/IIOReadProgressListener.h create mode 100644 libjava/javax/imageio/event/IIOReadUpdateListener.h create mode 100644 libjava/javax/imageio/event/IIOReadWarningListener.h create mode 100644 libjava/javax/imageio/event/IIOWriteProgressListener.h create mode 100644 libjava/javax/imageio/event/IIOWriteWarningListener.h create mode 100644 libjava/javax/imageio/metadata/IIOInvalidTreeException.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadata.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataController.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormat.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$1.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataFormatImpl.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataNode$IIONamedNodeMap.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataNode$IIONodeList.h create mode 100644 libjava/javax/imageio/metadata/IIOMetadataNode.h create mode 100644 libjava/javax/imageio/plugins/bmp/BMPImageWriteParam.h create mode 100644 libjava/javax/imageio/plugins/jpeg/JPEGHuffmanTable.h create mode 100644 libjava/javax/imageio/plugins/jpeg/JPEGImageReadParam.h create mode 100644 libjava/javax/imageio/plugins/jpeg/JPEGImageWriteParam.h create mode 100644 libjava/javax/imageio/plugins/jpeg/JPEGQTable.h create mode 100644 libjava/javax/imageio/spi/IIORegistry.h create mode 100644 libjava/javax/imageio/spi/IIOServiceProvider.h create mode 100644 libjava/javax/imageio/spi/ImageInputStreamSpi.h create mode 100644 libjava/javax/imageio/spi/ImageOutputStreamSpi.h create mode 100644 libjava/javax/imageio/spi/ImageReaderSpi.h create mode 100644 libjava/javax/imageio/spi/ImageReaderWriterSpi.h create mode 100644 libjava/javax/imageio/spi/ImageTranscoderSpi.h create mode 100644 libjava/javax/imageio/spi/ImageWriterSpi.h create mode 100644 libjava/javax/imageio/spi/RegisterableService.h create mode 100644 libjava/javax/imageio/spi/ServiceRegistry$1.h create mode 100644 libjava/javax/imageio/spi/ServiceRegistry$2.h create mode 100644 libjava/javax/imageio/spi/ServiceRegistry$Filter.h create mode 100644 libjava/javax/imageio/spi/ServiceRegistry.h create mode 100644 libjava/javax/imageio/stream/FileCacheImageInputStream.h create mode 100644 libjava/javax/imageio/stream/FileCacheImageOutputStream.h create mode 100644 libjava/javax/imageio/stream/FileImageInputStream.h create mode 100644 libjava/javax/imageio/stream/FileImageOutputStream.h create mode 100644 libjava/javax/imageio/stream/IIOByteBuffer.h create mode 100644 libjava/javax/imageio/stream/ImageInputStream.h create mode 100644 libjava/javax/imageio/stream/ImageInputStreamImpl.h create mode 100644 libjava/javax/imageio/stream/ImageOutputStream.h create mode 100644 libjava/javax/imageio/stream/ImageOutputStreamImpl.h create mode 100644 libjava/javax/imageio/stream/MemoryCacheImageInputStream.h create mode 100644 libjava/javax/imageio/stream/MemoryCacheImageOutputStream.h create mode 100644 libjava/javax/management/Attribute.h create mode 100644 libjava/javax/management/AttributeList.h create mode 100644 libjava/javax/management/AttributeNotFoundException.h create mode 100644 libjava/javax/management/BadAttributeValueExpException.h create mode 100644 libjava/javax/management/BadBinaryOpValueExpException.h create mode 100644 libjava/javax/management/BadStringOperationException.h create mode 100644 libjava/javax/management/DynamicMBean.h create mode 100644 libjava/javax/management/InstanceAlreadyExistsException.h create mode 100644 libjava/javax/management/InstanceNotFoundException.h create mode 100644 libjava/javax/management/IntrospectionException.h create mode 100644 libjava/javax/management/InvalidApplicationException.h create mode 100644 libjava/javax/management/InvalidAttributeValueException.h create mode 100644 libjava/javax/management/JMException.h create mode 100644 libjava/javax/management/JMRuntimeException.h create mode 100644 libjava/javax/management/ListenerNotFoundException.h create mode 100644 libjava/javax/management/MBeanAttributeInfo.h create mode 100644 libjava/javax/management/MBeanConstructorInfo.h create mode 100644 libjava/javax/management/MBeanException.h create mode 100644 libjava/javax/management/MBeanFeatureInfo.h create mode 100644 libjava/javax/management/MBeanInfo.h create mode 100644 libjava/javax/management/MBeanNotificationInfo.h create mode 100644 libjava/javax/management/MBeanOperationInfo.h create mode 100644 libjava/javax/management/MBeanParameterInfo.h create mode 100644 libjava/javax/management/MBeanPermission$NameHolder.h create mode 100644 libjava/javax/management/MBeanPermission.h create mode 100644 libjava/javax/management/MBeanRegistration.h create mode 100644 libjava/javax/management/MBeanRegistrationException.h create mode 100644 libjava/javax/management/MBeanServer.h create mode 100644 libjava/javax/management/MBeanServerBuilder.h create mode 100644 libjava/javax/management/MBeanServerConnection.h create mode 100644 libjava/javax/management/MBeanServerDelegate.h create mode 100644 libjava/javax/management/MBeanServerDelegateMBean.h create mode 100644 libjava/javax/management/MBeanServerFactory.h create mode 100644 libjava/javax/management/MBeanServerNotification.h create mode 100644 libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h create mode 100644 libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.h create mode 100644 libjava/javax/management/MBeanServerPermission.h create mode 100644 libjava/javax/management/MBeanTrustPermission.h create mode 100644 libjava/javax/management/MalformedObjectNameException.h create mode 100644 libjava/javax/management/NotCompliantMBeanException.h create mode 100644 libjava/javax/management/Notification.h create mode 100644 libjava/javax/management/NotificationBroadcaster.h create mode 100644 libjava/javax/management/NotificationEmitter.h create mode 100644 libjava/javax/management/NotificationFilter.h create mode 100644 libjava/javax/management/NotificationListener.h create mode 100644 libjava/javax/management/ObjectInstance.h create mode 100644 libjava/javax/management/ObjectName.h create mode 100644 libjava/javax/management/OperationsException.h create mode 100644 libjava/javax/management/QueryExp.h create mode 100644 libjava/javax/management/ReflectionException.h create mode 100644 libjava/javax/management/RuntimeErrorException.h create mode 100644 libjava/javax/management/RuntimeMBeanException.h create mode 100644 libjava/javax/management/RuntimeOperationsException.h create mode 100644 libjava/javax/management/ServiceNotFoundException.h create mode 100644 libjava/javax/management/StandardMBean.h create mode 100644 libjava/javax/management/ValueExp.h create mode 100644 libjava/javax/management/loading/ClassLoaderRepository.h create mode 100644 libjava/javax/management/openmbean/ArrayType.h create mode 100644 libjava/javax/management/openmbean/CompositeData.h create mode 100644 libjava/javax/management/openmbean/CompositeDataSupport.h create mode 100644 libjava/javax/management/openmbean/CompositeType.h create mode 100644 libjava/javax/management/openmbean/InvalidKeyException.h create mode 100644 libjava/javax/management/openmbean/InvalidOpenTypeException.h create mode 100644 libjava/javax/management/openmbean/KeyAlreadyExistsException.h create mode 100644 libjava/javax/management/openmbean/OpenDataException.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanAttributeInfo.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanAttributeInfoSupport.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanConstructorInfo.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanConstructorInfoSupport.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanInfo.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanInfoSupport.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanOperationInfo.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanOperationInfoSupport.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanParameterInfo.h create mode 100644 libjava/javax/management/openmbean/OpenMBeanParameterInfoSupport.h create mode 100644 libjava/javax/management/openmbean/OpenType.h create mode 100644 libjava/javax/management/openmbean/SimpleType.h create mode 100644 libjava/javax/management/openmbean/TabularData.h create mode 100644 libjava/javax/management/openmbean/TabularDataSupport.h create mode 100644 libjava/javax/management/openmbean/TabularType.h create mode 100644 libjava/javax/naming/AuthenticationException.h create mode 100644 libjava/javax/naming/AuthenticationNotSupportedException.h create mode 100644 libjava/javax/naming/BinaryRefAddr.h create mode 100644 libjava/javax/naming/Binding.h create mode 100644 libjava/javax/naming/CannotProceedException.h create mode 100644 libjava/javax/naming/CommunicationException.h create mode 100644 libjava/javax/naming/CompositeName.h create mode 100644 libjava/javax/naming/CompoundName.h create mode 100644 libjava/javax/naming/ConfigurationException.h create mode 100644 libjava/javax/naming/Context.h create mode 100644 libjava/javax/naming/ContextNotEmptyException.h create mode 100644 libjava/javax/naming/InitialContext.h create mode 100644 libjava/javax/naming/InsufficientResourcesException.h create mode 100644 libjava/javax/naming/InterruptedNamingException.h create mode 100644 libjava/javax/naming/InvalidNameException.h create mode 100644 libjava/javax/naming/LimitExceededException.h create mode 100644 libjava/javax/naming/LinkException.h create mode 100644 libjava/javax/naming/LinkLoopException.h create mode 100644 libjava/javax/naming/LinkRef.h create mode 100644 libjava/javax/naming/MalformedLinkException.h create mode 100644 libjava/javax/naming/Name.h create mode 100644 libjava/javax/naming/NameAlreadyBoundException.h create mode 100644 libjava/javax/naming/NameClassPair.h create mode 100644 libjava/javax/naming/NameNotFoundException.h create mode 100644 libjava/javax/naming/NameParser.h create mode 100644 libjava/javax/naming/NamingEnumeration.h create mode 100644 libjava/javax/naming/NamingException.h create mode 100644 libjava/javax/naming/NamingSecurityException.h create mode 100644 libjava/javax/naming/NoInitialContextException.h create mode 100644 libjava/javax/naming/NoPermissionException.h create mode 100644 libjava/javax/naming/NotContextException.h create mode 100644 libjava/javax/naming/OperationNotSupportedException.h create mode 100644 libjava/javax/naming/PartialResultException.h create mode 100644 libjava/javax/naming/RefAddr.h create mode 100644 libjava/javax/naming/Reference.h create mode 100644 libjava/javax/naming/Referenceable.h create mode 100644 libjava/javax/naming/ReferralException.h create mode 100644 libjava/javax/naming/ServiceUnavailableException.h create mode 100644 libjava/javax/naming/SizeLimitExceededException.h create mode 100644 libjava/javax/naming/StringRefAddr.h create mode 100644 libjava/javax/naming/TimeLimitExceededException.h create mode 100644 libjava/javax/naming/directory/Attribute.h create mode 100644 libjava/javax/naming/directory/AttributeInUseException.h create mode 100644 libjava/javax/naming/directory/AttributeModificationException.h create mode 100644 libjava/javax/naming/directory/Attributes.h create mode 100644 libjava/javax/naming/directory/BasicAttribute$BasicAttributeEnumeration.h create mode 100644 libjava/javax/naming/directory/BasicAttribute.h create mode 100644 libjava/javax/naming/directory/BasicAttributes$BasicAttributesEnumeration.h create mode 100644 libjava/javax/naming/directory/BasicAttributes.h create mode 100644 libjava/javax/naming/directory/DirContext.h create mode 100644 libjava/javax/naming/directory/InitialDirContext.h create mode 100644 libjava/javax/naming/directory/InvalidAttributeIdentifierException.h create mode 100644 libjava/javax/naming/directory/InvalidAttributeValueException.h create mode 100644 libjava/javax/naming/directory/InvalidAttributesException.h create mode 100644 libjava/javax/naming/directory/InvalidSearchControlsException.h create mode 100644 libjava/javax/naming/directory/InvalidSearchFilterException.h create mode 100644 libjava/javax/naming/directory/ModificationItem.h create mode 100644 libjava/javax/naming/directory/NoSuchAttributeException.h create mode 100644 libjava/javax/naming/directory/SchemaViolationException.h create mode 100644 libjava/javax/naming/directory/SearchControls.h create mode 100644 libjava/javax/naming/directory/SearchResult.h create mode 100644 libjava/javax/naming/event/EventContext.h create mode 100644 libjava/javax/naming/event/EventDirContext.h create mode 100644 libjava/javax/naming/event/NamespaceChangeListener.h create mode 100644 libjava/javax/naming/event/NamingEvent.h create mode 100644 libjava/javax/naming/event/NamingExceptionEvent.h create mode 100644 libjava/javax/naming/event/NamingListener.h create mode 100644 libjava/javax/naming/event/ObjectChangeListener.h create mode 100644 libjava/javax/naming/ldap/Control.h create mode 100644 libjava/javax/naming/ldap/ControlFactory.h create mode 100644 libjava/javax/naming/ldap/ExtendedRequest.h create mode 100644 libjava/javax/naming/ldap/ExtendedResponse.h create mode 100644 libjava/javax/naming/ldap/HasControls.h create mode 100644 libjava/javax/naming/ldap/InitialLdapContext.h create mode 100644 libjava/javax/naming/ldap/LdapContext.h create mode 100644 libjava/javax/naming/ldap/LdapReferralException.h create mode 100644 libjava/javax/naming/ldap/StartTlsRequest.h create mode 100644 libjava/javax/naming/ldap/StartTlsResponse.h create mode 100644 libjava/javax/naming/ldap/UnsolicitedNotification.h create mode 100644 libjava/javax/naming/ldap/UnsolicitedNotificationEvent.h create mode 100644 libjava/javax/naming/ldap/UnsolicitedNotificationListener.h create mode 100644 libjava/javax/naming/spi/DirObjectFactory.h create mode 100644 libjava/javax/naming/spi/DirStateFactory$Result.h create mode 100644 libjava/javax/naming/spi/DirStateFactory.h create mode 100644 libjava/javax/naming/spi/DirectoryManager.h create mode 100644 libjava/javax/naming/spi/InitialContextFactory.h create mode 100644 libjava/javax/naming/spi/InitialContextFactoryBuilder.h create mode 100644 libjava/javax/naming/spi/NamingManager.h delete mode 100644 libjava/javax/naming/spi/NamingManager.java create mode 100644 libjava/javax/naming/spi/ObjectFactory.h create mode 100644 libjava/javax/naming/spi/ObjectFactoryBuilder.h create mode 100644 libjava/javax/naming/spi/ResolveResult.h create mode 100644 libjava/javax/naming/spi/Resolver.h create mode 100644 libjava/javax/naming/spi/StateFactory.h create mode 100644 libjava/javax/net/ServerSocketFactory.h create mode 100644 libjava/javax/net/SocketFactory.h create mode 100644 libjava/javax/net/VanillaServerSocketFactory.h create mode 100644 libjava/javax/net/VanillaSocketFactory.h create mode 100644 libjava/javax/net/ssl/CertPathTrustManagerParameters.h create mode 100644 libjava/javax/net/ssl/HandshakeCompletedEvent.h create mode 100644 libjava/javax/net/ssl/HandshakeCompletedListener.h create mode 100644 libjava/javax/net/ssl/HostnameVerifier.h create mode 100644 libjava/javax/net/ssl/HttpsURLConnection.h create mode 100644 libjava/javax/net/ssl/KeyManager.h create mode 100644 libjava/javax/net/ssl/KeyManagerFactory$1.h create mode 100644 libjava/javax/net/ssl/KeyManagerFactory.h create mode 100644 libjava/javax/net/ssl/KeyManagerFactorySpi.h create mode 100644 libjava/javax/net/ssl/KeyStoreBuilderParameters.h create mode 100644 libjava/javax/net/ssl/ManagerFactoryParameters.h create mode 100644 libjava/javax/net/ssl/SSLContext.h create mode 100644 libjava/javax/net/ssl/SSLContextSpi.h create mode 100644 libjava/javax/net/ssl/SSLEngine.h create mode 100644 libjava/javax/net/ssl/SSLEngineResult$HandshakeStatus.h create mode 100644 libjava/javax/net/ssl/SSLEngineResult$Status.h create mode 100644 libjava/javax/net/ssl/SSLEngineResult.h create mode 100644 libjava/javax/net/ssl/SSLException.h create mode 100644 libjava/javax/net/ssl/SSLHandshakeException.h create mode 100644 libjava/javax/net/ssl/SSLKeyException.h create mode 100644 libjava/javax/net/ssl/SSLPeerUnverifiedException.h create mode 100644 libjava/javax/net/ssl/SSLPermission.h create mode 100644 libjava/javax/net/ssl/SSLProtocolException.h create mode 100644 libjava/javax/net/ssl/SSLServerSocket.h create mode 100644 libjava/javax/net/ssl/SSLServerSocketFactory.h create mode 100644 libjava/javax/net/ssl/SSLSession.h create mode 100644 libjava/javax/net/ssl/SSLSessionBindingEvent.h create mode 100644 libjava/javax/net/ssl/SSLSessionBindingListener.h create mode 100644 libjava/javax/net/ssl/SSLSessionContext.h create mode 100644 libjava/javax/net/ssl/SSLSocket.h create mode 100644 libjava/javax/net/ssl/SSLSocketFactory.h create mode 100644 libjava/javax/net/ssl/TrivialHostnameVerifier.h create mode 100644 libjava/javax/net/ssl/TrustManager.h create mode 100644 libjava/javax/net/ssl/TrustManagerFactory$1.h create mode 100644 libjava/javax/net/ssl/TrustManagerFactory.h create mode 100644 libjava/javax/net/ssl/TrustManagerFactorySpi.h create mode 100644 libjava/javax/net/ssl/X509ExtendedKeyManager.h create mode 100644 libjava/javax/net/ssl/X509KeyManager.h create mode 100644 libjava/javax/net/ssl/X509TrustManager.h create mode 100644 libjava/javax/print/AttributeException.h create mode 100644 libjava/javax/print/CancelablePrintJob.h create mode 100644 libjava/javax/print/Doc.h create mode 100644 libjava/javax/print/DocFlavor$BYTE_ARRAY.h create mode 100644 libjava/javax/print/DocFlavor$CHAR_ARRAY.h create mode 100644 libjava/javax/print/DocFlavor$INPUT_STREAM.h create mode 100644 libjava/javax/print/DocFlavor$READER.h create mode 100644 libjava/javax/print/DocFlavor$SERVICE_FORMATTED.h create mode 100644 libjava/javax/print/DocFlavor$STRING.h create mode 100644 libjava/javax/print/DocFlavor$URL.h create mode 100644 libjava/javax/print/DocFlavor.h create mode 100644 libjava/javax/print/DocPrintJob.h create mode 100644 libjava/javax/print/FlavorException.h create mode 100644 libjava/javax/print/MultiDoc.h create mode 100644 libjava/javax/print/MultiDocPrintJob.h create mode 100644 libjava/javax/print/MultiDocPrintService.h create mode 100644 libjava/javax/print/PrintException.h create mode 100644 libjava/javax/print/PrintService.h create mode 100644 libjava/javax/print/PrintServiceLookup.h create mode 100644 libjava/javax/print/ServiceUI.h create mode 100644 libjava/javax/print/ServiceUIFactory.h create mode 100644 libjava/javax/print/SimpleDoc.h create mode 100644 libjava/javax/print/StreamPrintService.h create mode 100644 libjava/javax/print/StreamPrintServiceFactory.h create mode 100644 libjava/javax/print/URIException.h create mode 100644 libjava/javax/print/attribute/Attribute.h create mode 100644 libjava/javax/print/attribute/AttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedDocAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintJobAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintRequestAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintServiceAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableDocAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintJobAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet.h create mode 100644 libjava/javax/print/attribute/AttributeSetUtilities.h create mode 100644 libjava/javax/print/attribute/DateTimeSyntax.h create mode 100644 libjava/javax/print/attribute/DocAttribute.h create mode 100644 libjava/javax/print/attribute/DocAttributeSet.h create mode 100644 libjava/javax/print/attribute/EnumSyntax.h create mode 100644 libjava/javax/print/attribute/HashAttributeSet.h create mode 100644 libjava/javax/print/attribute/HashDocAttributeSet.h create mode 100644 libjava/javax/print/attribute/HashPrintJobAttributeSet.h create mode 100644 libjava/javax/print/attribute/HashPrintRequestAttributeSet.h create mode 100644 libjava/javax/print/attribute/HashPrintServiceAttributeSet.h create mode 100644 libjava/javax/print/attribute/IntegerSyntax.h create mode 100644 libjava/javax/print/attribute/PrintJobAttribute.h create mode 100644 libjava/javax/print/attribute/PrintJobAttributeSet.h create mode 100644 libjava/javax/print/attribute/PrintRequestAttribute.h create mode 100644 libjava/javax/print/attribute/PrintRequestAttributeSet.h create mode 100644 libjava/javax/print/attribute/PrintServiceAttribute.h create mode 100644 libjava/javax/print/attribute/PrintServiceAttributeSet.h create mode 100644 libjava/javax/print/attribute/ResolutionSyntax.h create mode 100644 libjava/javax/print/attribute/SetOfIntegerSyntax$1.h create mode 100644 libjava/javax/print/attribute/SetOfIntegerSyntax.h create mode 100644 libjava/javax/print/attribute/Size2DSyntax.h create mode 100644 libjava/javax/print/attribute/SupportedValuesAttribute.h create mode 100644 libjava/javax/print/attribute/TextSyntax.h create mode 100644 libjava/javax/print/attribute/URISyntax.h create mode 100644 libjava/javax/print/attribute/UnmodifiableSetException.h create mode 100644 libjava/javax/print/attribute/standard/Chromaticity.h create mode 100644 libjava/javax/print/attribute/standard/ColorSupported.h create mode 100644 libjava/javax/print/attribute/standard/Compression.h create mode 100644 libjava/javax/print/attribute/standard/Copies.h create mode 100644 libjava/javax/print/attribute/standard/CopiesSupported.h create mode 100644 libjava/javax/print/attribute/standard/DateTimeAtCompleted.h create mode 100644 libjava/javax/print/attribute/standard/DateTimeAtCreation.h create mode 100644 libjava/javax/print/attribute/standard/DateTimeAtProcessing.h create mode 100644 libjava/javax/print/attribute/standard/Destination.h create mode 100644 libjava/javax/print/attribute/standard/DocumentName.h create mode 100644 libjava/javax/print/attribute/standard/Fidelity.h create mode 100644 libjava/javax/print/attribute/standard/Finishings.h create mode 100644 libjava/javax/print/attribute/standard/JobHoldUntil.h create mode 100644 libjava/javax/print/attribute/standard/JobImpressions.h create mode 100644 libjava/javax/print/attribute/standard/JobImpressionsCompleted.h create mode 100644 libjava/javax/print/attribute/standard/JobImpressionsSupported.h create mode 100644 libjava/javax/print/attribute/standard/JobKOctets.h create mode 100644 libjava/javax/print/attribute/standard/JobKOctetsProcessed.h create mode 100644 libjava/javax/print/attribute/standard/JobKOctetsSupported.h create mode 100644 libjava/javax/print/attribute/standard/JobMediaSheets.h create mode 100644 libjava/javax/print/attribute/standard/JobMediaSheetsCompleted.h create mode 100644 libjava/javax/print/attribute/standard/JobMediaSheetsSupported.h create mode 100644 libjava/javax/print/attribute/standard/JobMessageFromOperator.h create mode 100644 libjava/javax/print/attribute/standard/JobName.h create mode 100644 libjava/javax/print/attribute/standard/JobOriginatingUserName.h create mode 100644 libjava/javax/print/attribute/standard/JobPriority.h create mode 100644 libjava/javax/print/attribute/standard/JobPrioritySupported.h create mode 100644 libjava/javax/print/attribute/standard/JobSheets.h create mode 100644 libjava/javax/print/attribute/standard/JobState.h create mode 100644 libjava/javax/print/attribute/standard/JobStateReason.h create mode 100644 libjava/javax/print/attribute/standard/JobStateReasons.h create mode 100644 libjava/javax/print/attribute/standard/Media.h create mode 100644 libjava/javax/print/attribute/standard/MediaName.h create mode 100644 libjava/javax/print/attribute/standard/MediaPrintableArea.h create mode 100644 libjava/javax/print/attribute/standard/MediaSize$Engineering.h create mode 100644 libjava/javax/print/attribute/standard/MediaSize$ISO.h create mode 100644 libjava/javax/print/attribute/standard/MediaSize$JIS.h create mode 100644 libjava/javax/print/attribute/standard/MediaSize$NA.h create mode 100644 libjava/javax/print/attribute/standard/MediaSize$Other.h create mode 100644 libjava/javax/print/attribute/standard/MediaSize.h create mode 100644 libjava/javax/print/attribute/standard/MediaSizeName.h create mode 100644 libjava/javax/print/attribute/standard/MediaTray.h create mode 100644 libjava/javax/print/attribute/standard/MultipleDocumentHandling.h create mode 100644 libjava/javax/print/attribute/standard/NumberOfDocuments.h create mode 100644 libjava/javax/print/attribute/standard/NumberOfInterveningJobs.h create mode 100644 libjava/javax/print/attribute/standard/NumberUp.h create mode 100644 libjava/javax/print/attribute/standard/NumberUpSupported.h create mode 100644 libjava/javax/print/attribute/standard/OrientationRequested.h create mode 100644 libjava/javax/print/attribute/standard/OutputDeviceAssigned.h create mode 100644 libjava/javax/print/attribute/standard/PDLOverrideSupported.h create mode 100644 libjava/javax/print/attribute/standard/PageRanges.h create mode 100644 libjava/javax/print/attribute/standard/PagesPerMinute.h create mode 100644 libjava/javax/print/attribute/standard/PagesPerMinuteColor.h create mode 100644 libjava/javax/print/attribute/standard/PresentationDirection.h create mode 100644 libjava/javax/print/attribute/standard/PrintQuality.h create mode 100644 libjava/javax/print/attribute/standard/PrinterInfo.h create mode 100644 libjava/javax/print/attribute/standard/PrinterIsAcceptingJobs.h create mode 100644 libjava/javax/print/attribute/standard/PrinterLocation.h create mode 100644 libjava/javax/print/attribute/standard/PrinterMakeAndModel.h create mode 100644 libjava/javax/print/attribute/standard/PrinterMessageFromOperator.h create mode 100644 libjava/javax/print/attribute/standard/PrinterMoreInfo.h create mode 100644 libjava/javax/print/attribute/standard/PrinterMoreInfoManufacturer.h create mode 100644 libjava/javax/print/attribute/standard/PrinterName.h create mode 100644 libjava/javax/print/attribute/standard/PrinterResolution.h create mode 100644 libjava/javax/print/attribute/standard/PrinterState.h create mode 100644 libjava/javax/print/attribute/standard/PrinterStateReason.h create mode 100644 libjava/javax/print/attribute/standard/PrinterStateReasons.h create mode 100644 libjava/javax/print/attribute/standard/PrinterURI.h create mode 100644 libjava/javax/print/attribute/standard/QueuedJobCount.h create mode 100644 libjava/javax/print/attribute/standard/ReferenceUriSchemesSupported.h create mode 100644 libjava/javax/print/attribute/standard/RequestingUserName.h create mode 100644 libjava/javax/print/attribute/standard/Severity.h create mode 100644 libjava/javax/print/attribute/standard/SheetCollate.h create mode 100644 libjava/javax/print/attribute/standard/Sides.h create mode 100644 libjava/javax/print/event/PrintEvent.h create mode 100644 libjava/javax/print/event/PrintJobAdapter.h create mode 100644 libjava/javax/print/event/PrintJobAttributeEvent.h create mode 100644 libjava/javax/print/event/PrintJobAttributeListener.h create mode 100644 libjava/javax/print/event/PrintJobEvent.h create mode 100644 libjava/javax/print/event/PrintJobListener.h create mode 100644 libjava/javax/print/event/PrintServiceAttributeEvent.h create mode 100644 libjava/javax/print/event/PrintServiceAttributeListener.h create mode 100644 libjava/javax/rmi/CORBA/ClassDesc.h create mode 100644 libjava/javax/rmi/CORBA/PortableRemoteObjectDelegate.h create mode 100644 libjava/javax/rmi/CORBA/Stub.h create mode 100644 libjava/javax/rmi/CORBA/StubDelegate.h create mode 100644 libjava/javax/rmi/CORBA/Tie.h create mode 100644 libjava/javax/rmi/CORBA/Util.h create mode 100644 libjava/javax/rmi/CORBA/UtilDelegate.h create mode 100644 libjava/javax/rmi/CORBA/ValueHandler.h create mode 100644 libjava/javax/rmi/CORBA/ValueHandlerMultiFormat.h create mode 100644 libjava/javax/rmi/PortableRemoteObject.h create mode 100644 libjava/javax/rmi/ssl/SslRMIClientSocketFactory.h create mode 100644 libjava/javax/rmi/ssl/SslRMIServerSocketFactory.h create mode 100644 libjava/javax/security/auth/AuthPermission.h create mode 100644 libjava/javax/security/auth/DestroyFailedException.h create mode 100644 libjava/javax/security/auth/Destroyable.h create mode 100644 libjava/javax/security/auth/Policy.h create mode 100644 libjava/javax/security/auth/PrivateCredentialPermission$CredOwner.h create mode 100644 libjava/javax/security/auth/PrivateCredentialPermission.h create mode 100644 libjava/javax/security/auth/RefreshFailedException.h create mode 100644 libjava/javax/security/auth/Refreshable.h create mode 100644 libjava/javax/security/auth/Subject$SecureSet.h create mode 100644 libjava/javax/security/auth/Subject.h create mode 100644 libjava/javax/security/auth/SubjectDomainCombiner.h create mode 100644 libjava/javax/security/auth/callback/Callback.h create mode 100644 libjava/javax/security/auth/callback/CallbackHandler.h create mode 100644 libjava/javax/security/auth/callback/ChoiceCallback.h create mode 100644 libjava/javax/security/auth/callback/ConfirmationCallback.h create mode 100644 libjava/javax/security/auth/callback/LanguageCallback.h create mode 100644 libjava/javax/security/auth/callback/NameCallback.h create mode 100644 libjava/javax/security/auth/callback/PasswordCallback.h create mode 100644 libjava/javax/security/auth/callback/TextInputCallback.h create mode 100644 libjava/javax/security/auth/callback/TextOutputCallback.h create mode 100644 libjava/javax/security/auth/callback/UnsupportedCallbackException.h create mode 100644 libjava/javax/security/auth/kerberos/DelegationPermission$1.h create mode 100644 libjava/javax/security/auth/kerberos/DelegationPermission.h create mode 100644 libjava/javax/security/auth/kerberos/KerberosKey.h create mode 100644 libjava/javax/security/auth/kerberos/KerberosPrincipal.h create mode 100644 libjava/javax/security/auth/kerberos/KerberosTicket.h create mode 100644 libjava/javax/security/auth/kerberos/KeyImpl.h create mode 100644 libjava/javax/security/auth/kerberos/ServicePermission$1.h create mode 100644 libjava/javax/security/auth/kerberos/ServicePermission.h create mode 100644 libjava/javax/security/auth/login/AccountException.h create mode 100644 libjava/javax/security/auth/login/AccountExpiredException.h create mode 100644 libjava/javax/security/auth/login/AccountLockedException.h create mode 100644 libjava/javax/security/auth/login/AccountNotFoundException.h create mode 100644 libjava/javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag.h create mode 100644 libjava/javax/security/auth/login/AppConfigurationEntry.h create mode 100644 libjava/javax/security/auth/login/Configuration$1.h create mode 100644 libjava/javax/security/auth/login/Configuration.h create mode 100644 libjava/javax/security/auth/login/CredentialException.h create mode 100644 libjava/javax/security/auth/login/CredentialExpiredException.h create mode 100644 libjava/javax/security/auth/login/CredentialNotFoundException.h create mode 100644 libjava/javax/security/auth/login/FailedLoginException.h create mode 100644 libjava/javax/security/auth/login/LoginContext.h create mode 100644 libjava/javax/security/auth/login/LoginException.h create mode 100644 libjava/javax/security/auth/login/NullConfiguration.h create mode 100644 libjava/javax/security/auth/spi/LoginModule.h create mode 100644 libjava/javax/security/auth/x500/X500Principal.h create mode 100644 libjava/javax/security/auth/x500/X500PrivateCredential.h create mode 100644 libjava/javax/security/cert/Certificate.h create mode 100644 libjava/javax/security/cert/CertificateEncodingException.h create mode 100644 libjava/javax/security/cert/CertificateException.h create mode 100644 libjava/javax/security/cert/CertificateExpiredException.h create mode 100644 libjava/javax/security/cert/CertificateNotYetValidException.h create mode 100644 libjava/javax/security/cert/CertificateParsingException.h create mode 100644 libjava/javax/security/cert/X509CertBridge.h create mode 100644 libjava/javax/security/cert/X509Certificate.h create mode 100644 libjava/javax/security/sasl/AuthenticationException.h create mode 100644 libjava/javax/security/sasl/AuthorizeCallback.h create mode 100644 libjava/javax/security/sasl/RealmCallback.h create mode 100644 libjava/javax/security/sasl/RealmChoiceCallback.h create mode 100644 libjava/javax/security/sasl/Sasl.h create mode 100644 libjava/javax/security/sasl/SaslClient.h create mode 100644 libjava/javax/security/sasl/SaslClientFactory.h create mode 100644 libjava/javax/security/sasl/SaslException.h create mode 100644 libjava/javax/security/sasl/SaslServer.h create mode 100644 libjava/javax/security/sasl/SaslServerFactory.h create mode 100644 libjava/javax/sound/midi/ControllerEventListener.h create mode 100644 libjava/javax/sound/midi/Instrument.h create mode 100644 libjava/javax/sound/midi/InvalidMidiDataException.h create mode 100644 libjava/javax/sound/midi/MetaEventListener.h create mode 100644 libjava/javax/sound/midi/MetaMessage.h create mode 100644 libjava/javax/sound/midi/MidiChannel.h create mode 100644 libjava/javax/sound/midi/MidiDevice$Info.h create mode 100644 libjava/javax/sound/midi/MidiDevice.h create mode 100644 libjava/javax/sound/midi/MidiEvent.h create mode 100644 libjava/javax/sound/midi/MidiFileFormat.h create mode 100644 libjava/javax/sound/midi/MidiMessage.h create mode 100644 libjava/javax/sound/midi/MidiSystem.h create mode 100644 libjava/javax/sound/midi/MidiUnavailableException.h create mode 100644 libjava/javax/sound/midi/Patch.h create mode 100644 libjava/javax/sound/midi/Receiver.h create mode 100644 libjava/javax/sound/midi/Sequence.h create mode 100644 libjava/javax/sound/midi/Sequencer$SyncMode.h create mode 100644 libjava/javax/sound/midi/Sequencer.h create mode 100644 libjava/javax/sound/midi/ShortMessage.h create mode 100644 libjava/javax/sound/midi/Soundbank.h create mode 100644 libjava/javax/sound/midi/SoundbankResource.h create mode 100644 libjava/javax/sound/midi/Synthesizer.h create mode 100644 libjava/javax/sound/midi/SysexMessage.h create mode 100644 libjava/javax/sound/midi/Track.h create mode 100644 libjava/javax/sound/midi/Transmitter.h create mode 100644 libjava/javax/sound/midi/VoiceStatus.h create mode 100644 libjava/javax/sound/midi/spi/MidiDeviceProvider.h create mode 100644 libjava/javax/sound/midi/spi/MidiFileReader.h create mode 100644 libjava/javax/sound/midi/spi/MidiFileWriter.h create mode 100644 libjava/javax/sound/midi/spi/SoundbankReader.h create mode 100644 libjava/javax/sound/sampled/AudioFileFormat$Type.h create mode 100644 libjava/javax/sound/sampled/AudioFileFormat.h create mode 100644 libjava/javax/sound/sampled/AudioFormat$Encoding.h create mode 100644 libjava/javax/sound/sampled/AudioFormat.h create mode 100644 libjava/javax/sound/sampled/AudioInputStream$TargetInputStream.h create mode 100644 libjava/javax/sound/sampled/AudioInputStream.h create mode 100644 libjava/javax/sound/sampled/AudioPermission.h create mode 100644 libjava/javax/sound/sampled/AudioSystem.h create mode 100644 libjava/javax/sound/sampled/BooleanControl$Type.h create mode 100644 libjava/javax/sound/sampled/BooleanControl.h create mode 100644 libjava/javax/sound/sampled/Clip.h create mode 100644 libjava/javax/sound/sampled/CompoundControl$Type.h create mode 100644 libjava/javax/sound/sampled/CompoundControl.h create mode 100644 libjava/javax/sound/sampled/Control$Type.h create mode 100644 libjava/javax/sound/sampled/Control.h create mode 100644 libjava/javax/sound/sampled/DataLine$Info.h create mode 100644 libjava/javax/sound/sampled/DataLine.h create mode 100644 libjava/javax/sound/sampled/EnumControl$Type.h create mode 100644 libjava/javax/sound/sampled/EnumControl.h create mode 100644 libjava/javax/sound/sampled/FloatControl$Type.h create mode 100644 libjava/javax/sound/sampled/FloatControl.h create mode 100644 libjava/javax/sound/sampled/Line$Info.h create mode 100644 libjava/javax/sound/sampled/Line.h create mode 100644 libjava/javax/sound/sampled/LineEvent$Type.h create mode 100644 libjava/javax/sound/sampled/LineEvent.h create mode 100644 libjava/javax/sound/sampled/LineListener.h create mode 100644 libjava/javax/sound/sampled/LineUnavailableException.h create mode 100644 libjava/javax/sound/sampled/Mixer$Info.h create mode 100644 libjava/javax/sound/sampled/Mixer.h create mode 100644 libjava/javax/sound/sampled/Port$Info.h create mode 100644 libjava/javax/sound/sampled/Port.h create mode 100644 libjava/javax/sound/sampled/ReverbType.h create mode 100644 libjava/javax/sound/sampled/SourceDataLine.h create mode 100644 libjava/javax/sound/sampled/TargetDataLine.h create mode 100644 libjava/javax/sound/sampled/UnsupportedAudioFileException.h create mode 100644 libjava/javax/sound/sampled/spi/AudioFileReader.h create mode 100644 libjava/javax/sound/sampled/spi/AudioFileWriter.h create mode 100644 libjava/javax/sound/sampled/spi/FormatConversionProvider.h create mode 100644 libjava/javax/sound/sampled/spi/MixerProvider.h create mode 100644 libjava/javax/sql/ConnectionEvent.h create mode 100644 libjava/javax/sql/ConnectionEventListener.h create mode 100644 libjava/javax/sql/ConnectionPoolDataSource.h create mode 100644 libjava/javax/sql/DataSource.h create mode 100644 libjava/javax/sql/PooledConnection.h create mode 100644 libjava/javax/sql/RowSet.h create mode 100644 libjava/javax/sql/RowSetEvent.h create mode 100644 libjava/javax/sql/RowSetInternal.h create mode 100644 libjava/javax/sql/RowSetListener.h create mode 100644 libjava/javax/sql/RowSetMetaData.h create mode 100644 libjava/javax/sql/RowSetReader.h create mode 100644 libjava/javax/sql/RowSetWriter.h create mode 100644 libjava/javax/sql/XAConnection.h create mode 100644 libjava/javax/sql/XADataSource.h create mode 100644 libjava/javax/swing/AbstractAction.h create mode 100644 libjava/javax/swing/AbstractButton$1.h create mode 100644 libjava/javax/swing/AbstractButton$2.h create mode 100644 libjava/javax/swing/AbstractButton$3.h create mode 100644 libjava/javax/swing/AbstractButton$AccessibleAbstractButton.h create mode 100644 libjava/javax/swing/AbstractButton$ButtonChangeListener.h create mode 100644 libjava/javax/swing/AbstractButton$EventHandler.h create mode 100644 libjava/javax/swing/AbstractButton.h create mode 100644 libjava/javax/swing/AbstractCellEditor.h create mode 100644 libjava/javax/swing/AbstractListModel.h create mode 100644 libjava/javax/swing/AbstractSpinnerModel.h create mode 100644 libjava/javax/swing/Action.h create mode 100644 libjava/javax/swing/ActionMap.h create mode 100644 libjava/javax/swing/BorderFactory.h create mode 100644 libjava/javax/swing/BoundedRangeModel.h create mode 100644 libjava/javax/swing/Box$AccessibleBox.h create mode 100644 libjava/javax/swing/Box$Filler$AccessibleBoxFiller.h create mode 100644 libjava/javax/swing/Box$Filler.h create mode 100644 libjava/javax/swing/Box.h create mode 100644 libjava/javax/swing/BoxLayout.h create mode 100644 libjava/javax/swing/ButtonGroup.h create mode 100644 libjava/javax/swing/ButtonModel.h create mode 100644 libjava/javax/swing/CellEditor.h create mode 100644 libjava/javax/swing/CellRendererPane$AccessibleCellRendererPane.h create mode 100644 libjava/javax/swing/CellRendererPane.h create mode 100644 libjava/javax/swing/ComboBoxEditor.h create mode 100644 libjava/javax/swing/ComboBoxModel.h create mode 100644 libjava/javax/swing/CompatibilityFocusTraversalPolicy.h create mode 100644 libjava/javax/swing/ComponentInputMap.h create mode 100644 libjava/javax/swing/DebugGraphics.h create mode 100644 libjava/javax/swing/DefaultBoundedRangeModel.h create mode 100644 libjava/javax/swing/DefaultButtonModel.h create mode 100644 libjava/javax/swing/DefaultCellEditor$EditorDelegate.h create mode 100644 libjava/javax/swing/DefaultCellEditor$JCheckBoxDelegate.h create mode 100644 libjava/javax/swing/DefaultCellEditor$JComboBoxDelegate.h create mode 100644 libjava/javax/swing/DefaultCellEditor$JTextFieldDelegate.h create mode 100644 libjava/javax/swing/DefaultCellEditor.h create mode 100644 libjava/javax/swing/DefaultComboBoxModel.h create mode 100644 libjava/javax/swing/DefaultDesktopManager.h create mode 100644 libjava/javax/swing/DefaultFocusManager.h create mode 100644 libjava/javax/swing/DefaultListCellRenderer$UIResource.h create mode 100644 libjava/javax/swing/DefaultListCellRenderer.h create mode 100644 libjava/javax/swing/DefaultListModel.h create mode 100644 libjava/javax/swing/DefaultListSelectionModel.h create mode 100644 libjava/javax/swing/DefaultSingleSelectionModel.h create mode 100644 libjava/javax/swing/DesktopManager.h create mode 100644 libjava/javax/swing/FocusManager$WrappingFocusManager.h create mode 100644 libjava/javax/swing/FocusManager.h create mode 100644 libjava/javax/swing/GrayFilter.h create mode 100644 libjava/javax/swing/Icon.h create mode 100644 libjava/javax/swing/ImageIcon$1.h create mode 100644 libjava/javax/swing/ImageIcon$AccessibleImageIcon.h create mode 100644 libjava/javax/swing/ImageIcon.h create mode 100644 libjava/javax/swing/InputMap.h create mode 100644 libjava/javax/swing/InputVerifier.h create mode 100644 libjava/javax/swing/InternalFrameFocusTraversalPolicy.h create mode 100644 libjava/javax/swing/JApplet$AccessibleJApplet.h create mode 100644 libjava/javax/swing/JApplet.h create mode 100644 libjava/javax/swing/JButton$AccessibleJButton.h create mode 100644 libjava/javax/swing/JButton.h create mode 100644 libjava/javax/swing/JCheckBox$AccessibleJCheckBox.h create mode 100644 libjava/javax/swing/JCheckBox.h create mode 100644 libjava/javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.h create mode 100644 libjava/javax/swing/JCheckBoxMenuItem.h create mode 100644 libjava/javax/swing/JColorChooser$AccessibleJColorChooser.h create mode 100644 libjava/javax/swing/JColorChooser$DefaultOKCancelListener.h create mode 100644 libjava/javax/swing/JColorChooser$DefaultResetListener.h create mode 100644 libjava/javax/swing/JColorChooser.h create mode 100644 libjava/javax/swing/JComboBox$1.h create mode 100644 libjava/javax/swing/JComboBox$AccessibleJComboBox.h create mode 100644 libjava/javax/swing/JComboBox$DefaultKeySelectionManager.h create mode 100644 libjava/javax/swing/JComboBox$KeySelectionManager.h create mode 100644 libjava/javax/swing/JComboBox.h create mode 100644 libjava/javax/swing/JComponent$1.h create mode 100644 libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.h create mode 100644 libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.h create mode 100644 libjava/javax/swing/JComponent$AccessibleJComponent.h create mode 100644 libjava/javax/swing/JComponent$ActionListenerProxy.h create mode 100644 libjava/javax/swing/JComponent.h create mode 100644 libjava/javax/swing/JDesktopPane$AccessibleJDesktopPane.h create mode 100644 libjava/javax/swing/JDesktopPane.h create mode 100644 libjava/javax/swing/JDialog$AccessibleJDialog.h create mode 100644 libjava/javax/swing/JDialog.h create mode 100644 libjava/javax/swing/JEditorPane$1.h create mode 100644 libjava/javax/swing/JEditorPane$2.h create mode 100644 libjava/javax/swing/JEditorPane$AccessibleJEditorPane.h create mode 100644 libjava/javax/swing/JEditorPane$AccessibleJEditorPaneHTML.h create mode 100644 libjava/javax/swing/JEditorPane$EditorKitMapping.h create mode 100644 libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.h create mode 100644 libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport.h create mode 100644 libjava/javax/swing/JEditorPane$PageLoader.h create mode 100644 libjava/javax/swing/JEditorPane$PageStream.h create mode 100644 libjava/javax/swing/JEditorPane$PlainEditorKit.h create mode 100644 libjava/javax/swing/JEditorPane.h create mode 100644 libjava/javax/swing/JFileChooser$1.h create mode 100644 libjava/javax/swing/JFileChooser$AccessibleJFileChooser.h create mode 100644 libjava/javax/swing/JFileChooser.h create mode 100644 libjava/javax/swing/JFormattedTextField$AbstractFormatter.h create mode 100644 libjava/javax/swing/JFormattedTextField$AbstractFormatterFactory.h create mode 100644 libjava/javax/swing/JFormattedTextField.h create mode 100644 libjava/javax/swing/JFrame$AccessibleJFrame.h create mode 100644 libjava/javax/swing/JFrame.h create mode 100644 libjava/javax/swing/JInternalFrame$AccessibleJInternalFrame.h create mode 100644 libjava/javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon.h create mode 100644 libjava/javax/swing/JInternalFrame$JDesktopIcon.h create mode 100644 libjava/javax/swing/JInternalFrame.h create mode 100644 libjava/javax/swing/JLabel$AccessibleJLabel.h create mode 100644 libjava/javax/swing/JLabel.h create mode 100644 libjava/javax/swing/JLayeredPane$AccessibleJLayeredPane.h create mode 100644 libjava/javax/swing/JLayeredPane.h create mode 100644 libjava/javax/swing/JList$1.h create mode 100644 libjava/javax/swing/JList$2.h create mode 100644 libjava/javax/swing/JList$3.h create mode 100644 libjava/javax/swing/JList$AccessibleJList$AccessibleJListChild.h create mode 100644 libjava/javax/swing/JList$AccessibleJList.h create mode 100644 libjava/javax/swing/JList$ListListener.h create mode 100644 libjava/javax/swing/JList.h create mode 100644 libjava/javax/swing/JMenu$AccessibleJMenu.h create mode 100644 libjava/javax/swing/JMenu$ActionChangedListener.h create mode 100644 libjava/javax/swing/JMenu$MenuChangeListener.h create mode 100644 libjava/javax/swing/JMenu$WinListener.h create mode 100644 libjava/javax/swing/JMenu.h create mode 100644 libjava/javax/swing/JMenuBar$AccessibleJMenuBar.h create mode 100644 libjava/javax/swing/JMenuBar.h create mode 100644 libjava/javax/swing/JMenuItem$1.h create mode 100644 libjava/javax/swing/JMenuItem$AccessibleJMenuItem.h create mode 100644 libjava/javax/swing/JMenuItem.h create mode 100644 libjava/javax/swing/JOptionPane$1.h create mode 100644 libjava/javax/swing/JOptionPane$2.h create mode 100644 libjava/javax/swing/JOptionPane$AccessibleJOptionPane.h create mode 100644 libjava/javax/swing/JOptionPane$ValuePropertyHandler.h create mode 100644 libjava/javax/swing/JOptionPane.h create mode 100644 libjava/javax/swing/JPanel$AccessibleJPanel.h create mode 100644 libjava/javax/swing/JPanel.h create mode 100644 libjava/javax/swing/JPasswordField$AccessibleJPasswordField.h create mode 100644 libjava/javax/swing/JPasswordField.h create mode 100644 libjava/javax/swing/JPopupMenu$1.h create mode 100644 libjava/javax/swing/JPopupMenu$2.h create mode 100644 libjava/javax/swing/JPopupMenu$AccessibleJPopupMenu.h create mode 100644 libjava/javax/swing/JPopupMenu$ActionChangeListener.h create mode 100644 libjava/javax/swing/JPopupMenu$Separator.h create mode 100644 libjava/javax/swing/JPopupMenu.h create mode 100644 libjava/javax/swing/JProgressBar$1.h create mode 100644 libjava/javax/swing/JProgressBar$AccessibleJProgressBar.h create mode 100644 libjava/javax/swing/JProgressBar.h create mode 100644 libjava/javax/swing/JRadioButton$AccessibleJRadioButton.h create mode 100644 libjava/javax/swing/JRadioButton.h create mode 100644 libjava/javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem.h create mode 100644 libjava/javax/swing/JRadioButtonMenuItem.h create mode 100644 libjava/javax/swing/JRootPane$AccessibleJRootPane.h create mode 100644 libjava/javax/swing/JRootPane$RootLayout.h create mode 100644 libjava/javax/swing/JRootPane.h create mode 100644 libjava/javax/swing/JScrollBar$AccessibleJScrollBar.h create mode 100644 libjava/javax/swing/JScrollBar$ScrollBarChangeListener.h create mode 100644 libjava/javax/swing/JScrollBar.h create mode 100644 libjava/javax/swing/JScrollPane$AccessibleJScrollPane.h create mode 100644 libjava/javax/swing/JScrollPane$ScrollBar.h create mode 100644 libjava/javax/swing/JScrollPane.h create mode 100644 libjava/javax/swing/JSeparator$AccessibleJSeparator.h create mode 100644 libjava/javax/swing/JSeparator.h create mode 100644 libjava/javax/swing/JSlider$1.h create mode 100644 libjava/javax/swing/JSlider$AccessibleJSlider.h create mode 100644 libjava/javax/swing/JSlider$LabelUIResource.h create mode 100644 libjava/javax/swing/JSlider.h create mode 100644 libjava/javax/swing/JSpinner$DateEditor.h create mode 100644 libjava/javax/swing/JSpinner$DateEditorFormatter.h create mode 100644 libjava/javax/swing/JSpinner$DefaultEditor.h create mode 100644 libjava/javax/swing/JSpinner$ListEditor.h create mode 100644 libjava/javax/swing/JSpinner$ModelListener.h create mode 100644 libjava/javax/swing/JSpinner$NumberEditor.h create mode 100644 libjava/javax/swing/JSpinner$NumberEditorFormatter.h create mode 100644 libjava/javax/swing/JSpinner.h create mode 100644 libjava/javax/swing/JSplitPane$AccessibleJSplitPane.h create mode 100644 libjava/javax/swing/JSplitPane.h create mode 100644 libjava/javax/swing/JTabbedPane$AccessibleJTabbedPane.h create mode 100644 libjava/javax/swing/JTabbedPane$ModelListener.h create mode 100644 libjava/javax/swing/JTabbedPane$Page.h create mode 100644 libjava/javax/swing/JTabbedPane.h create mode 100644 libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableCell.h create mode 100644 libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableHeaderCell.h create mode 100644 libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange.h create mode 100644 libjava/javax/swing/JTable$AccessibleJTable$AccessibleTableHeader.h create mode 100644 libjava/javax/swing/JTable$AccessibleJTable.h create mode 100644 libjava/javax/swing/JTable$BooleanCellRenderer.h create mode 100644 libjava/javax/swing/JTable$DateCellRenderer.h create mode 100644 libjava/javax/swing/JTable$DoubleCellRenderer.h create mode 100644 libjava/javax/swing/JTable$FloatCellRenderer.h create mode 100644 libjava/javax/swing/JTable$IconCellRenderer.h create mode 100644 libjava/javax/swing/JTable$NumberCellRenderer.h create mode 100644 libjava/javax/swing/JTable$TableColumnPropertyChangeHandler.h create mode 100644 libjava/javax/swing/JTable$TableTextField.h create mode 100644 libjava/javax/swing/JTable.h create mode 100644 libjava/javax/swing/JTextArea$AccessibleJTextArea.h create mode 100644 libjava/javax/swing/JTextArea.h create mode 100644 libjava/javax/swing/JTextField$1.h create mode 100644 libjava/javax/swing/JTextField$2.h create mode 100644 libjava/javax/swing/JTextField$AccessibleJTextField.h create mode 100644 libjava/javax/swing/JTextField.h create mode 100644 libjava/javax/swing/JTextPane.h create mode 100644 libjava/javax/swing/JToggleButton$AccessibleJToggleButton.h create mode 100644 libjava/javax/swing/JToggleButton$ToggleButtonModel.h create mode 100644 libjava/javax/swing/JToggleButton.h create mode 100644 libjava/javax/swing/JToolBar$AccessibleJToolBar.h create mode 100644 libjava/javax/swing/JToolBar$DefaultToolBarLayout.h create mode 100644 libjava/javax/swing/JToolBar$Separator.h create mode 100644 libjava/javax/swing/JToolBar.h create mode 100644 libjava/javax/swing/JToolTip$AccessibleJToolTip.h create mode 100644 libjava/javax/swing/JToolTip.h create mode 100644 libjava/javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode.h create mode 100644 libjava/javax/swing/JTree$AccessibleJTree.h create mode 100644 libjava/javax/swing/JTree$DynamicUtilTreeNode.h create mode 100644 libjava/javax/swing/JTree$EmptySelectionModel.h create mode 100644 libjava/javax/swing/JTree$TreeModelHandler.h create mode 100644 libjava/javax/swing/JTree$TreeSelectionRedirector.h create mode 100644 libjava/javax/swing/JTree.h create mode 100644 libjava/javax/swing/JViewport$AccessibleJViewport.h create mode 100644 libjava/javax/swing/JViewport$ViewListener.h create mode 100644 libjava/javax/swing/JViewport.h create mode 100644 libjava/javax/swing/JWindow$AccessibleJWindow.h create mode 100644 libjava/javax/swing/JWindow.h create mode 100644 libjava/javax/swing/KeyStroke.h create mode 100644 libjava/javax/swing/KeyboardManager.h create mode 100644 libjava/javax/swing/LayoutFocusTraversalPolicy$LayoutComparator.h create mode 100644 libjava/javax/swing/LayoutFocusTraversalPolicy.h create mode 100644 libjava/javax/swing/ListCellRenderer.h create mode 100644 libjava/javax/swing/ListModel.h create mode 100644 libjava/javax/swing/ListSelectionModel.h create mode 100644 libjava/javax/swing/LookAndFeel$1.h create mode 100644 libjava/javax/swing/LookAndFeel.h create mode 100644 libjava/javax/swing/MenuElement.h create mode 100644 libjava/javax/swing/MenuSelectionManager.h create mode 100644 libjava/javax/swing/MutableComboBoxModel.h create mode 100644 libjava/javax/swing/OverlayLayout.h create mode 100644 libjava/javax/swing/Popup$JWindowPopup.h create mode 100644 libjava/javax/swing/Popup$LightweightPopup.h create mode 100644 libjava/javax/swing/Popup.h create mode 100644 libjava/javax/swing/PopupFactory.h create mode 100644 libjava/javax/swing/ProgressMonitor$1.h create mode 100644 libjava/javax/swing/ProgressMonitor$TimerListener.h create mode 100644 libjava/javax/swing/ProgressMonitor.h create mode 100644 libjava/javax/swing/ProgressMonitorInputStream.h create mode 100644 libjava/javax/swing/Renderer.h create mode 100644 libjava/javax/swing/RepaintManager$RepaintWorker.h create mode 100644 libjava/javax/swing/RepaintManager$RepaintWorkerEvent.h create mode 100644 libjava/javax/swing/RepaintManager.h create mode 100644 libjava/javax/swing/RootPaneContainer.h create mode 100644 libjava/javax/swing/ScrollPaneConstants.h create mode 100644 libjava/javax/swing/ScrollPaneLayout$UIResource.h create mode 100644 libjava/javax/swing/ScrollPaneLayout.h create mode 100644 libjava/javax/swing/Scrollable.h create mode 100644 libjava/javax/swing/SingleSelectionModel.h create mode 100644 libjava/javax/swing/SizeRequirements.h create mode 100644 libjava/javax/swing/SizeSequence.h create mode 100644 libjava/javax/swing/SortingFocusTraversalPolicy.h create mode 100644 libjava/javax/swing/SpinnerDateModel.h create mode 100644 libjava/javax/swing/SpinnerListModel.h create mode 100644 libjava/javax/swing/SpinnerModel.h create mode 100644 libjava/javax/swing/SpinnerNumberModel.h create mode 100644 libjava/javax/swing/Spring$1.h create mode 100644 libjava/javax/swing/Spring$2.h create mode 100644 libjava/javax/swing/Spring$3.h create mode 100644 libjava/javax/swing/Spring$AddSpring.h create mode 100644 libjava/javax/swing/Spring$MaxSpring.h create mode 100644 libjava/javax/swing/Spring$MinusSpring.h create mode 100644 libjava/javax/swing/Spring$SimpleSpring.h create mode 100644 libjava/javax/swing/Spring.h create mode 100644 libjava/javax/swing/SpringLayout$Constraints.h create mode 100644 libjava/javax/swing/SpringLayout$DeferredDimension.h create mode 100644 libjava/javax/swing/SpringLayout$DeferredHeight.h create mode 100644 libjava/javax/swing/SpringLayout$DeferredSpring.h create mode 100644 libjava/javax/swing/SpringLayout$DeferredWidth.h create mode 100644 libjava/javax/swing/SpringLayout.h create mode 100644 libjava/javax/swing/SwingConstants.h create mode 100644 libjava/javax/swing/SwingUtilities$OwnerFrame.h create mode 100644 libjava/javax/swing/SwingUtilities.h create mode 100644 libjava/javax/swing/Timer$1.h create mode 100644 libjava/javax/swing/Timer$Task.h create mode 100644 libjava/javax/swing/Timer.h create mode 100644 libjava/javax/swing/ToolTipManager$insideTimerAction.h create mode 100644 libjava/javax/swing/ToolTipManager$outsideTimerAction.h create mode 100644 libjava/javax/swing/ToolTipManager$stillInsideTimerAction.h create mode 100644 libjava/javax/swing/ToolTipManager.h create mode 100644 libjava/javax/swing/TransferHandler$PropertyTransferable.h create mode 100644 libjava/javax/swing/TransferHandler$TransferAction.h create mode 100644 libjava/javax/swing/TransferHandler.h create mode 100644 libjava/javax/swing/UIDefaults$1.h create mode 100644 libjava/javax/swing/UIDefaults$2.h create mode 100644 libjava/javax/swing/UIDefaults$3.h create mode 100644 libjava/javax/swing/UIDefaults$4.h create mode 100644 libjava/javax/swing/UIDefaults$ActiveValue.h create mode 100644 libjava/javax/swing/UIDefaults$LazyInputMap.h create mode 100644 libjava/javax/swing/UIDefaults$LazyValue.h create mode 100644 libjava/javax/swing/UIDefaults$ProxyLazyValue.h create mode 100644 libjava/javax/swing/UIDefaults.h create mode 100644 libjava/javax/swing/UIManager$LookAndFeelInfo.h create mode 100644 libjava/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.h create mode 100644 libjava/javax/swing/UIManager$MultiplexUIDefaults.h create mode 100644 libjava/javax/swing/UIManager.h create mode 100644 libjava/javax/swing/UnsupportedLookAndFeelException.h create mode 100644 libjava/javax/swing/ViewportLayout.h create mode 100644 libjava/javax/swing/WindowConstants.h create mode 100644 libjava/javax/swing/border/AbstractBorder.h create mode 100644 libjava/javax/swing/border/BevelBorder.h create mode 100644 libjava/javax/swing/border/Border.h create mode 100644 libjava/javax/swing/border/CompoundBorder.h create mode 100644 libjava/javax/swing/border/EmptyBorder.h create mode 100644 libjava/javax/swing/border/EtchedBorder.h create mode 100644 libjava/javax/swing/border/LineBorder.h create mode 100644 libjava/javax/swing/border/MatteBorder.h create mode 100644 libjava/javax/swing/border/SoftBevelBorder.h create mode 100644 libjava/javax/swing/border/TitledBorder.h create mode 100644 libjava/javax/swing/colorchooser/AbstractColorChooserPanel.h create mode 100644 libjava/javax/swing/colorchooser/ColorChooserComponentFactory.h create mode 100644 libjava/javax/swing/colorchooser/ColorSelectionModel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultColorSelectionModel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$1.h create mode 100644 libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$2.h create mode 100644 libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$ImageScrollListener.h create mode 100644 libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$MainGradientMouseListener.h create mode 100644 libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$RadioStateListener.h create mode 100644 libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$SliderChangeListener.h create mode 100644 libjava/javax/swing/colorchooser/DefaultHSBChooserPanel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultPreviewPanel$PreviewBorder.h create mode 100644 libjava/javax/swing/colorchooser/DefaultPreviewPanel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SliderHandler.h create mode 100644 libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SpinnerHandler.h create mode 100644 libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainPanelLayout.h create mode 100644 libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainSwatchPanel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MouseHandler.h create mode 100644 libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentPanelLayout.h create mode 100644 libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentSwatchPanel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.h create mode 100644 libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.h create mode 100644 libjava/javax/swing/event/AncestorEvent.h create mode 100644 libjava/javax/swing/event/AncestorListener.h create mode 100644 libjava/javax/swing/event/CaretEvent.h create mode 100644 libjava/javax/swing/event/CaretListener.h create mode 100644 libjava/javax/swing/event/CellEditorListener.h create mode 100644 libjava/javax/swing/event/ChangeEvent.h create mode 100644 libjava/javax/swing/event/ChangeListener.h create mode 100644 libjava/javax/swing/event/DocumentEvent$ElementChange.h create mode 100644 libjava/javax/swing/event/DocumentEvent$EventType.h create mode 100644 libjava/javax/swing/event/DocumentEvent.h create mode 100644 libjava/javax/swing/event/DocumentListener.h create mode 100644 libjava/javax/swing/event/EventListenerList.h create mode 100644 libjava/javax/swing/event/HyperlinkEvent$EventType.h create mode 100644 libjava/javax/swing/event/HyperlinkEvent.h create mode 100644 libjava/javax/swing/event/HyperlinkListener.h create mode 100644 libjava/javax/swing/event/InternalFrameAdapter.h create mode 100644 libjava/javax/swing/event/InternalFrameEvent.h create mode 100644 libjava/javax/swing/event/InternalFrameListener.h create mode 100644 libjava/javax/swing/event/ListDataEvent.h create mode 100644 libjava/javax/swing/event/ListDataListener.h create mode 100644 libjava/javax/swing/event/ListSelectionEvent.h create mode 100644 libjava/javax/swing/event/ListSelectionListener.h create mode 100644 libjava/javax/swing/event/MenuDragMouseEvent.h create mode 100644 libjava/javax/swing/event/MenuDragMouseListener.h create mode 100644 libjava/javax/swing/event/MenuEvent.h create mode 100644 libjava/javax/swing/event/MenuKeyEvent.h create mode 100644 libjava/javax/swing/event/MenuKeyListener.h create mode 100644 libjava/javax/swing/event/MenuListener.h create mode 100644 libjava/javax/swing/event/MouseInputAdapter.h create mode 100644 libjava/javax/swing/event/MouseInputListener.h create mode 100644 libjava/javax/swing/event/PopupMenuEvent.h create mode 100644 libjava/javax/swing/event/PopupMenuListener.h create mode 100644 libjava/javax/swing/event/SwingPropertyChangeSupport.h create mode 100644 libjava/javax/swing/event/TableColumnModelEvent.h create mode 100644 libjava/javax/swing/event/TableColumnModelListener.h create mode 100644 libjava/javax/swing/event/TableModelEvent.h create mode 100644 libjava/javax/swing/event/TableModelListener.h create mode 100644 libjava/javax/swing/event/TreeExpansionEvent.h create mode 100644 libjava/javax/swing/event/TreeExpansionListener.h create mode 100644 libjava/javax/swing/event/TreeModelEvent.h create mode 100644 libjava/javax/swing/event/TreeModelListener.h create mode 100644 libjava/javax/swing/event/TreeSelectionEvent.h create mode 100644 libjava/javax/swing/event/TreeSelectionListener.h create mode 100644 libjava/javax/swing/event/TreeWillExpandListener.h create mode 100644 libjava/javax/swing/event/UndoableEditEvent.h create mode 100644 libjava/javax/swing/event/UndoableEditListener.h create mode 100644 libjava/javax/swing/filechooser/FileFilter.h create mode 100644 libjava/javax/swing/filechooser/FileSystemView.h create mode 100644 libjava/javax/swing/filechooser/FileView.h create mode 100644 libjava/javax/swing/filechooser/UnixFileSystemView.h create mode 100644 libjava/javax/swing/plaf/ActionMapUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource$BevelBorderUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource$CompoundBorderUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource$EmptyBorderUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource$EtchedBorderUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource$LineBorderUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource$MatteBorderUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource$TitledBorderUIResource.h create mode 100644 libjava/javax/swing/plaf/BorderUIResource.h create mode 100644 libjava/javax/swing/plaf/ButtonUI.h create mode 100644 libjava/javax/swing/plaf/ColorChooserUI.h create mode 100644 libjava/javax/swing/plaf/ColorUIResource.h create mode 100644 libjava/javax/swing/plaf/ComboBoxUI.h create mode 100644 libjava/javax/swing/plaf/ComponentInputMapUIResource.h create mode 100644 libjava/javax/swing/plaf/ComponentUI.h create mode 100644 libjava/javax/swing/plaf/DesktopIconUI.h create mode 100644 libjava/javax/swing/plaf/DesktopPaneUI.h create mode 100644 libjava/javax/swing/plaf/DimensionUIResource.h create mode 100644 libjava/javax/swing/plaf/FileChooserUI.h create mode 100644 libjava/javax/swing/plaf/FontUIResource.h create mode 100644 libjava/javax/swing/plaf/IconUIResource.h create mode 100644 libjava/javax/swing/plaf/InputMapUIResource.h create mode 100644 libjava/javax/swing/plaf/InsetsUIResource.h create mode 100644 libjava/javax/swing/plaf/InternalFrameUI.h create mode 100644 libjava/javax/swing/plaf/LabelUI.h create mode 100644 libjava/javax/swing/plaf/ListUI.h create mode 100644 libjava/javax/swing/plaf/MenuBarUI.h create mode 100644 libjava/javax/swing/plaf/MenuItemUI.h create mode 100644 libjava/javax/swing/plaf/OptionPaneUI.h create mode 100644 libjava/javax/swing/plaf/PanelUI.h create mode 100644 libjava/javax/swing/plaf/PopupMenuUI.h create mode 100644 libjava/javax/swing/plaf/ProgressBarUI.h create mode 100644 libjava/javax/swing/plaf/RootPaneUI.h create mode 100644 libjava/javax/swing/plaf/ScrollBarUI.h create mode 100644 libjava/javax/swing/plaf/ScrollPaneUI.h create mode 100644 libjava/javax/swing/plaf/SeparatorUI.h create mode 100644 libjava/javax/swing/plaf/SliderUI.h create mode 100644 libjava/javax/swing/plaf/SpinnerUI.h create mode 100644 libjava/javax/swing/plaf/SplitPaneUI.h create mode 100644 libjava/javax/swing/plaf/TabbedPaneUI.h create mode 100644 libjava/javax/swing/plaf/TableHeaderUI.h create mode 100644 libjava/javax/swing/plaf/TableUI.h create mode 100644 libjava/javax/swing/plaf/TextUI.h create mode 100644 libjava/javax/swing/plaf/ToolBarUI.h create mode 100644 libjava/javax/swing/plaf/ToolTipUI.h create mode 100644 libjava/javax/swing/plaf/TreeUI.h create mode 100644 libjava/javax/swing/plaf/UIResource.h create mode 100644 libjava/javax/swing/plaf/ViewportUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicArrowButton.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$ButtonBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$FieldBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$MarginBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$MenuBarBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$RadioButtonBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicBorders.h create mode 100644 libjava/javax/swing/plaf/basic/BasicButtonListener$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicButtonListener$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicButtonListener$ButtonAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicButtonListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicButtonUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicCheckBoxUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicColorChooserUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicColorChooserUI$PreviewListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicColorChooserUI$TabPaneListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicColorChooserUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxEditor$UIResource.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxEditor.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboBoxUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$ItemHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$ListDataHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicComboPopup.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopIconUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopIconUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopIconUI$BoundButton.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopIconUI$DesktopIconBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopIconUI$InternalFrameDefaultMenuIcon.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopIconUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDesktopPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDirectoryModel$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.h create mode 100644 libjava/javax/swing/plaf/basic/BasicDirectoryModel.h create mode 100644 libjava/javax/swing/plaf/basic/BasicEditorPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFileChooserUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicFormattedTextFieldUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicGraphicsUtils.h create mode 100644 libjava/javax/swing/plaf/basic/BasicHTML$HTMLRootView.h create mode 100644 libjava/javax/swing/plaf/basic/BasicHTML.h create mode 100644 libjava/javax/swing/plaf/basic/BasicIconFactory$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicIconFactory$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxIcon.h create mode 100644 libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxMenuItemIcon.h create mode 100644 libjava/javax/swing/plaf/basic/BasicIconFactory$DummyIcon.h create mode 100644 libjava/javax/swing/plaf/basic/BasicIconFactory$RadioButtonIcon.h create mode 100644 libjava/javax/swing/plaf/basic/BasicIconFactory.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PaneButton.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ShowSystemMenuAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicInternalFrameUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLabelUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLabelUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI$ActionListenerProxy.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI$ListAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI$ListDataHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI$ListSelectionHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicListUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$3.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$4.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$5.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$6.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$7.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$AudioAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel$PopupHelper.h create mode 100644 libjava/javax/swing/plaf/basic/BasicLookAndFeel.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuBarUI$ChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuBarUI$ContainerHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuBarUI$FocusAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuBarUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuBarUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuBarUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuItemUI$ClickAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuItemUI$ItemHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuDragMouseHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuKeyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuItemUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuItemUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuUI$ChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuUI$MenuDragMouseHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuUI$MenuHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuUI$MenuKeyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuUI$SelectMenuAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicMenuUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$3.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$4.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$OptionPaneCloseAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicOptionPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPanelUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPasswordFieldUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPopupMenuUI$KeyboardHelper.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPopupMenuUI$NavigateAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPopupMenuUI$PopupMenuHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPopupMenuUI$TopWindowListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicPopupMenuUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicProgressBarUI$AncestorHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicProgressBarUI$Animator.h create mode 100644 libjava/javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicProgressBarUI$ComponentHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicProgressBarUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicProgressBarUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicRadioButtonUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultPressAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultReleaseAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicRootPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$3.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$4.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$5.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$6.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$ModelListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI$TrackListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollBarUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$10.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$3.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$4.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$5.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$6.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$7.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$8.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$9.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportContainerListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicScrollPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSeparatorUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$3.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$4.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$5.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$6.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$ActionScroller.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$ChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$ComponentHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$ScrollListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI$TrackListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSliderUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSpinnerUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSpinnerUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSpinnerUI$3.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSpinnerUI$4.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSpinnerUI$5.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSpinnerUI$DefaultLayoutManager.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSpinnerUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$BasicOneTouchButton.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DragController.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$3.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$4.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$5.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$6.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$7.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$8.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicSplitPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigateAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageDownAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageUpAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusForVisibleComponentAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingButton.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingViewport.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableHeaderUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableHeaderUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableUI$KeyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableUI$TableAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTableUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextAreaUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextFieldUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextPaneUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$BasicCaret.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$BasicHighlighter.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$DocumentHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$Handler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI$RootView.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTextUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToggleButtonUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarSeparatorUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$DockingListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$DragWindow.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$FrameListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$PropertyListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarBorder.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarDialog.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolBarUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolTipUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicToolTipUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$1.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$2.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.h create mode 100644 libjava/javax/swing/plaf/basic/BasicTreeUI.h create mode 100644 libjava/javax/swing/plaf/basic/BasicViewportUI.h create mode 100644 libjava/javax/swing/plaf/basic/ComboPopup.h create mode 100644 libjava/javax/swing/plaf/basic/DefaultMenuLayout.h create mode 100644 libjava/javax/swing/plaf/basic/SharedUIDefaults.h create mode 100644 libjava/javax/swing/plaf/metal/DefaultMetalTheme.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$ButtonBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$DesktopIconBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$Flush3DBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$InternalFrameBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$MenuBarBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$MenuItemBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$OptionDialogBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$PaletteBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$PopupMenuBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$TableHeaderBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$TextFieldBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders$ToolBarBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalBorders.h create mode 100644 libjava/javax/swing/plaf/metal/MetalButtonListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalButtonUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalCheckBoxIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalCheckBoxUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxButton.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxEditor$EditorTextField.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxEditor$MetalComboBoxEditorBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxEditor$UIResource.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxEditor.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalComboBoxUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalDesktopIconUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$ButtonLayout.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$DetailViewActionListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxRenderer.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$IndentIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$ListViewActionListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserPropertyChangeListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserSelectionListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener$EditingActionListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener$EditingActionListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableFileRenderer.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI$VerticalMidLayout.h create mode 100644 libjava/javax/swing/plaf/metal/MetalFileChooserUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$1.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$2.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$3.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserDetailViewIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserHomeFolderIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserListViewIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserNewFolderIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserUpFolderIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$FileIcon16.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$FolderIcon16.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameAltMaximizeIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameCloseIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameDefaultMenuIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMaximizeIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMinimizeIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$TreeComputerIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFloppyDriveIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$TreeHardDriveIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon.h create mode 100644 libjava/javax/swing/plaf/metal/MetalIconFactory.h create mode 100644 libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalTitlePaneLayout.h create mode 100644 libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane.h create mode 100644 libjava/javax/swing/plaf/metal/MetalInternalFrameUI$1.h create mode 100644 libjava/javax/swing/plaf/metal/MetalInternalFrameUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalLabelUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalLookAndFeel$1.h create mode 100644 libjava/javax/swing/plaf/metal/MetalLookAndFeel.h create mode 100644 libjava/javax/swing/plaf/metal/MetalMenuBarUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalProgressBarUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRadioButtonUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalFrameBorder.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalRootLayout.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$CloseAction.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$IconifyAction.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MaximizeAction.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MouseHandler.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$PaneButton.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane.h create mode 100644 libjava/javax/swing/plaf/metal/MetalRootPaneUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalScrollBarUI$MetalScrollBarPropertyChangeHandler.h create mode 100644 libjava/javax/swing/plaf/metal/MetalScrollBarUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalScrollButton.h create mode 100644 libjava/javax/swing/plaf/metal/MetalScrollPaneUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalSeparatorUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalSliderUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalDividerLayout.h create mode 100644 libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalOneTouchButton.h create mode 100644 libjava/javax/swing/plaf/metal/MetalSplitPaneDivider.h create mode 100644 libjava/javax/swing/plaf/metal/MetalSplitPaneUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout.h create mode 100644 libjava/javax/swing/plaf/metal/MetalTabbedPaneUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalTextFieldUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalTheme.h create mode 100644 libjava/javax/swing/plaf/metal/MetalToggleButtonUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalToolBarUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalToolTipUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalTreeUI$LineStyleListener.h create mode 100644 libjava/javax/swing/plaf/metal/MetalTreeUI.h create mode 100644 libjava/javax/swing/plaf/metal/MetalUtils.h create mode 100644 libjava/javax/swing/plaf/metal/OceanTheme.h create mode 100644 libjava/javax/swing/plaf/multi/MultiButtonUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiColorChooserUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiComboBoxUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiDesktopIconUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiDesktopPaneUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiFileChooserUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiInternalFrameUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiLabelUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiListUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiLookAndFeel.h create mode 100644 libjava/javax/swing/plaf/multi/MultiMenuBarUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiMenuItemUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiOptionPaneUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiPanelUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiPopupMenuUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiProgressBarUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiRootPaneUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiScrollBarUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiScrollPaneUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiSeparatorUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiSliderUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiSpinnerUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiSplitPaneUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiTabbedPaneUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiTableHeaderUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiTableUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiTextUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiToolBarUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiToolTipUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiTreeUI.h create mode 100644 libjava/javax/swing/plaf/multi/MultiViewportUI.h create mode 100644 libjava/javax/swing/plaf/synth/ColorType.h create mode 100644 libjava/javax/swing/plaf/synth/Region.h create mode 100644 libjava/javax/swing/plaf/synth/SynthConstants.h create mode 100644 libjava/javax/swing/plaf/synth/SynthContext.h create mode 100644 libjava/javax/swing/plaf/synth/SynthGraphicsUtils.h create mode 100644 libjava/javax/swing/plaf/synth/SynthLookAndFeel.h create mode 100644 libjava/javax/swing/plaf/synth/SynthPainter.h create mode 100644 libjava/javax/swing/plaf/synth/SynthStyle.h create mode 100644 libjava/javax/swing/plaf/synth/SynthStyleFactory.h create mode 100644 libjava/javax/swing/table/AbstractTableModel.h create mode 100644 libjava/javax/swing/table/DefaultTableCellRenderer$UIResource.h create mode 100644 libjava/javax/swing/table/DefaultTableCellRenderer.h create mode 100644 libjava/javax/swing/table/DefaultTableColumnModel.h create mode 100644 libjava/javax/swing/table/DefaultTableModel.h create mode 100644 libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry.h create mode 100644 libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader.h create mode 100644 libjava/javax/swing/table/JTableHeader.h create mode 100644 libjava/javax/swing/table/TableCellEditor.h create mode 100644 libjava/javax/swing/table/TableCellRenderer.h create mode 100644 libjava/javax/swing/table/TableColumn.h create mode 100644 libjava/javax/swing/table/TableColumnModel.h create mode 100644 libjava/javax/swing/table/TableModel.h create mode 100644 libjava/javax/swing/text/AbstractDocument$1.h create mode 100644 libjava/javax/swing/text/AbstractDocument$2.h create mode 100644 libjava/javax/swing/text/AbstractDocument$AbstractElement.h create mode 100644 libjava/javax/swing/text/AbstractDocument$AttributeContext.h create mode 100644 libjava/javax/swing/text/AbstractDocument$BidiElement.h create mode 100644 libjava/javax/swing/text/AbstractDocument$BidiRootElement.h create mode 100644 libjava/javax/swing/text/AbstractDocument$BranchElement.h create mode 100644 libjava/javax/swing/text/AbstractDocument$Bypass.h create mode 100644 libjava/javax/swing/text/AbstractDocument$Content.h create mode 100644 libjava/javax/swing/text/AbstractDocument$DefaultDocumentEvent.h create mode 100644 libjava/javax/swing/text/AbstractDocument$ElementEdit.h create mode 100644 libjava/javax/swing/text/AbstractDocument$LeafElement.h create mode 100644 libjava/javax/swing/text/AbstractDocument.h create mode 100644 libjava/javax/swing/text/AbstractWriter.h create mode 100644 libjava/javax/swing/text/AsyncBoxView$ChildLocator.h create mode 100644 libjava/javax/swing/text/AsyncBoxView$ChildState.h create mode 100644 libjava/javax/swing/text/AsyncBoxView$FlushTask.h create mode 100644 libjava/javax/swing/text/AsyncBoxView.h create mode 100644 libjava/javax/swing/text/AttributeSet$CharacterAttribute.h create mode 100644 libjava/javax/swing/text/AttributeSet$ColorAttribute.h create mode 100644 libjava/javax/swing/text/AttributeSet$FontAttribute.h create mode 100644 libjava/javax/swing/text/AttributeSet$ParagraphAttribute.h create mode 100644 libjava/javax/swing/text/AttributeSet.h create mode 100644 libjava/javax/swing/text/BadLocationException.h create mode 100644 libjava/javax/swing/text/BoxView.h create mode 100644 libjava/javax/swing/text/Caret.h create mode 100644 libjava/javax/swing/text/ChangedCharSetException.h create mode 100644 libjava/javax/swing/text/ComponentView$1.h create mode 100644 libjava/javax/swing/text/ComponentView$Interceptor.h create mode 100644 libjava/javax/swing/text/ComponentView.h create mode 100644 libjava/javax/swing/text/CompositeView.h create mode 100644 libjava/javax/swing/text/DateFormatter.h create mode 100644 libjava/javax/swing/text/DefaultCaret$BlinkTimerListener.h create mode 100644 libjava/javax/swing/text/DefaultCaret$Bypass.h create mode 100644 libjava/javax/swing/text/DefaultCaret$DocumentHandler.h create mode 100644 libjava/javax/swing/text/DefaultCaret$PropertyChangeHandler.h create mode 100644 libjava/javax/swing/text/DefaultCaret.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$BackwardAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$BeepAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$BeginAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$BeginLineAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$BeginWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$CopyAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$CutAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$DownAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$EndAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$EndLineAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$EndWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$ForwardAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$InsertBreakAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$InsertContentAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$InsertTabAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$NextWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$PasteAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$PreviousWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectAllAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectLineAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionBeginAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionDownAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionEndAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionForwardAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$SelectionUpAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit$UpAction.h create mode 100644 libjava/javax/swing/text/DefaultEditorKit.h create mode 100644 libjava/javax/swing/text/DefaultFormatter$FormatterDocumentFilter.h create mode 100644 libjava/javax/swing/text/DefaultFormatter.h create mode 100644 libjava/javax/swing/text/DefaultFormatterFactory.h create mode 100644 libjava/javax/swing/text/DefaultHighlighter$DefaultHighlightPainter.h create mode 100644 libjava/javax/swing/text/DefaultHighlighter$HighlightEntry.h create mode 100644 libjava/javax/swing/text/DefaultHighlighter$LayerHighlightEntry.h create mode 100644 libjava/javax/swing/text/DefaultHighlighter.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument$Edit.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument$ElementSpec.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument$SectionElement.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument$StyleChangeListener.h create mode 100644 libjava/javax/swing/text/DefaultStyledDocument.h create mode 100644 libjava/javax/swing/text/DefaultTextUI.h create mode 100644 libjava/javax/swing/text/Document.h create mode 100644 libjava/javax/swing/text/DocumentFilter$FilterBypass.h create mode 100644 libjava/javax/swing/text/DocumentFilter.h create mode 100644 libjava/javax/swing/text/EditorKit.h create mode 100644 libjava/javax/swing/text/Element.h create mode 100644 libjava/javax/swing/text/ElementIterator$ElementRef.h create mode 100644 libjava/javax/swing/text/ElementIterator.h create mode 100644 libjava/javax/swing/text/EmptyAttributeSet$1.h create mode 100644 libjava/javax/swing/text/EmptyAttributeSet.h create mode 100644 libjava/javax/swing/text/FieldView$1.h create mode 100644 libjava/javax/swing/text/FieldView.h create mode 100644 libjava/javax/swing/text/FlowView$FlowStrategy.h create mode 100644 libjava/javax/swing/text/FlowView$LogicalView.h create mode 100644 libjava/javax/swing/text/FlowView.h create mode 100644 libjava/javax/swing/text/GapContent$GapContentPosition.h create mode 100644 libjava/javax/swing/text/GapContent$InsertUndo.h create mode 100644 libjava/javax/swing/text/GapContent$Mark.h create mode 100644 libjava/javax/swing/text/GapContent$UndoPosRef.h create mode 100644 libjava/javax/swing/text/GapContent$UndoRemove.h create mode 100644 libjava/javax/swing/text/GapContent.h create mode 100644 libjava/javax/swing/text/GlyphView$DefaultGlyphPainter.h create mode 100644 libjava/javax/swing/text/GlyphView$GlyphPainter.h create mode 100644 libjava/javax/swing/text/GlyphView$J2DGlyphPainter.h create mode 100644 libjava/javax/swing/text/GlyphView.h create mode 100644 libjava/javax/swing/text/Highlighter$Highlight.h create mode 100644 libjava/javax/swing/text/Highlighter$HighlightPainter.h create mode 100644 libjava/javax/swing/text/Highlighter.h create mode 100644 libjava/javax/swing/text/IconView.h create mode 100644 libjava/javax/swing/text/InternationalFormatter.h create mode 100644 libjava/javax/swing/text/JTextComponent$AccessibleJTextComponent.h create mode 100644 libjava/javax/swing/text/JTextComponent$DefaultKeymap.h create mode 100644 libjava/javax/swing/text/JTextComponent$DefaultTransferHandler.h create mode 100644 libjava/javax/swing/text/JTextComponent$KeyBinding.h create mode 100644 libjava/javax/swing/text/JTextComponent$KeymapActionMap.h create mode 100644 libjava/javax/swing/text/JTextComponent$KeymapWrapper.h create mode 100644 libjava/javax/swing/text/JTextComponent.h create mode 100644 libjava/javax/swing/text/Keymap.h create mode 100644 libjava/javax/swing/text/LabelView.h create mode 100644 libjava/javax/swing/text/LayeredHighlighter$LayerPainter.h create mode 100644 libjava/javax/swing/text/LayeredHighlighter.h create mode 100644 libjava/javax/swing/text/LayoutQueue.h create mode 100644 libjava/javax/swing/text/MaskFormatter.h create mode 100644 libjava/javax/swing/text/MutableAttributeSet.h create mode 100644 libjava/javax/swing/text/NavigationFilter$FilterBypass.h create mode 100644 libjava/javax/swing/text/NavigationFilter.h create mode 100644 libjava/javax/swing/text/NumberFormatter.h create mode 100644 libjava/javax/swing/text/ParagraphView$Row.h create mode 100644 libjava/javax/swing/text/ParagraphView.h create mode 100644 libjava/javax/swing/text/PasswordView.h create mode 100644 libjava/javax/swing/text/PlainDocument.h create mode 100644 libjava/javax/swing/text/PlainView.h create mode 100644 libjava/javax/swing/text/Position$Bias.h create mode 100644 libjava/javax/swing/text/Position.h create mode 100644 libjava/javax/swing/text/Segment.h create mode 100644 libjava/javax/swing/text/SimpleAttributeSet.h create mode 100644 libjava/javax/swing/text/StringContent$InsertUndo.h create mode 100644 libjava/javax/swing/text/StringContent$Mark.h create mode 100644 libjava/javax/swing/text/StringContent$RemoveUndo.h create mode 100644 libjava/javax/swing/text/StringContent$StickyPosition.h create mode 100644 libjava/javax/swing/text/StringContent$UndoPosRef.h create mode 100644 libjava/javax/swing/text/StringContent.h create mode 100644 libjava/javax/swing/text/Style.h create mode 100644 libjava/javax/swing/text/StyleConstants$CharacterConstants.h create mode 100644 libjava/javax/swing/text/StyleConstants$ColorConstants.h create mode 100644 libjava/javax/swing/text/StyleConstants$FontConstants.h create mode 100644 libjava/javax/swing/text/StyleConstants$ParagraphConstants.h create mode 100644 libjava/javax/swing/text/StyleConstants.h create mode 100644 libjava/javax/swing/text/StyleContext$1.h create mode 100644 libjava/javax/swing/text/StyleContext$NamedStyle.h create mode 100644 libjava/javax/swing/text/StyleContext$SimpleFontSpec.h create mode 100644 libjava/javax/swing/text/StyleContext$SmallAttributeSet.h create mode 100644 libjava/javax/swing/text/StyleContext.h create mode 100644 libjava/javax/swing/text/StyledDocument.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$AlignmentAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$BoldAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$CaretTracker.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$FontFamilyAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$FontSizeAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$ForegroundAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$ItalicAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$StyledTextAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$StyledViewFactory.h create mode 100644 libjava/javax/swing/text/StyledEditorKit$UnderlineAction.h create mode 100644 libjava/javax/swing/text/StyledEditorKit.h create mode 100644 libjava/javax/swing/text/TabExpander.h create mode 100644 libjava/javax/swing/text/TabSet.h create mode 100644 libjava/javax/swing/text/TabStop.h create mode 100644 libjava/javax/swing/text/TabableView.h create mode 100644 libjava/javax/swing/text/TableView$TableCell.h create mode 100644 libjava/javax/swing/text/TableView$TableRow.h create mode 100644 libjava/javax/swing/text/TableView.h create mode 100644 libjava/javax/swing/text/TextAction$HorizontalMovementAction.h create mode 100644 libjava/javax/swing/text/TextAction$VerticalMovementAction.h create mode 100644 libjava/javax/swing/text/TextAction.h create mode 100644 libjava/javax/swing/text/Utilities.h create mode 100644 libjava/javax/swing/text/View.h create mode 100644 libjava/javax/swing/text/ViewFactory.h create mode 100644 libjava/javax/swing/text/WrappedPlainView$WrappedLine.h create mode 100644 libjava/javax/swing/text/WrappedPlainView$WrappedLineCreator.h create mode 100644 libjava/javax/swing/text/WrappedPlainView.h create mode 100644 libjava/javax/swing/text/ZoneView$Zone.h create mode 100644 libjava/javax/swing/text/ZoneView.h create mode 100644 libjava/javax/swing/text/html/BRView.h create mode 100644 libjava/javax/swing/text/html/BlockView$PositionInfo.h create mode 100644 libjava/javax/swing/text/html/BlockView.h create mode 100644 libjava/javax/swing/text/html/CSS$Attribute.h create mode 100644 libjava/javax/swing/text/html/CSS.h create mode 100644 libjava/javax/swing/text/html/CSSBorder.h create mode 100644 libjava/javax/swing/text/html/CSSParser$CSSParserCallback.h create mode 100644 libjava/javax/swing/text/html/CSSParser.h create mode 100644 libjava/javax/swing/text/html/FormSubmitEvent$MethodType.h create mode 100644 libjava/javax/swing/text/html/FormSubmitEvent.h create mode 100644 libjava/javax/swing/text/html/FormView$1.h create mode 100644 libjava/javax/swing/text/html/FormView$MouseEventListener.h create mode 100644 libjava/javax/swing/text/html/FormView$SubmitThread.h create mode 100644 libjava/javax/swing/text/html/FormView.h create mode 100644 libjava/javax/swing/text/html/FrameSetView$FrameSetRow.h create mode 100644 libjava/javax/swing/text/html/FrameSetView.h create mode 100644 libjava/javax/swing/text/html/FrameView.h create mode 100644 libjava/javax/swing/text/html/HRuleView$Beginning.h create mode 100644 libjava/javax/swing/text/html/HRuleView.h create mode 100644 libjava/javax/swing/text/html/HTML$Attribute.h create mode 100644 libjava/javax/swing/text/html/HTML$Tag.h create mode 100644 libjava/javax/swing/text/html/HTML$UnknownTag.h create mode 100644 libjava/javax/swing/text/html/HTML.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$1.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$BlockElement.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$AreaAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BaseAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ConvertAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormTagAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HeadAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$LinkAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MapAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MetaAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$PreAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$StyleAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TagAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TitleAction.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$HTMLReader.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$Iterator.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$LeafIterator.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument$RunElement.h create mode 100644 libjava/javax/swing/text/html/HTMLDocument.h create mode 100644 libjava/javax/swing/text/html/HTMLEditorKit$HTMLFactory.h create mode 100644 libjava/javax/swing/text/html/HTMLEditorKit$HTMLTextAction.h create mode 100644 libjava/javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction.h create mode 100644 libjava/javax/swing/text/html/HTMLEditorKit$LinkController.h create mode 100644 libjava/javax/swing/text/html/HTMLEditorKit$Parser.h create mode 100644 libjava/javax/swing/text/html/HTMLEditorKit$ParserCallback.h create mode 100644 libjava/javax/swing/text/html/HTMLEditorKit.h create mode 100644 libjava/javax/swing/text/html/HTMLFrameHyperlinkEvent.h create mode 100644 libjava/javax/swing/text/html/HTMLWriter.h create mode 100644 libjava/javax/swing/text/html/ImageView$1.h create mode 100644 libjava/javax/swing/text/html/ImageView$Observer.h create mode 100644 libjava/javax/swing/text/html/ImageView.h create mode 100644 libjava/javax/swing/text/html/InlineView.h create mode 100644 libjava/javax/swing/text/html/ListView.h create mode 100644 libjava/javax/swing/text/html/MinimalHTMLWriter.h create mode 100644 libjava/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.h create mode 100644 libjava/javax/swing/text/html/MultiAttributeSet.h create mode 100644 libjava/javax/swing/text/html/MultiStyle.h create mode 100644 libjava/javax/swing/text/html/NullView.h create mode 100644 libjava/javax/swing/text/html/ObjectView.h create mode 100644 libjava/javax/swing/text/html/Option.h create mode 100644 libjava/javax/swing/text/html/ParagraphView.h create mode 100644 libjava/javax/swing/text/html/ResetableModel.h create mode 100644 libjava/javax/swing/text/html/ResetablePlainDocument.h create mode 100644 libjava/javax/swing/text/html/ResetableToggleButtonModel.h create mode 100644 libjava/javax/swing/text/html/SelectComboBoxModel.h create mode 100644 libjava/javax/swing/text/html/SelectListModel.h create mode 100644 libjava/javax/swing/text/html/StyleSheet$BoxPainter.h create mode 100644 libjava/javax/swing/text/html/StyleSheet$CSSStyle.h create mode 100644 libjava/javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback.h create mode 100644 libjava/javax/swing/text/html/StyleSheet$CssParser.h create mode 100644 libjava/javax/swing/text/html/StyleSheet$ListPainter.h create mode 100644 libjava/javax/swing/text/html/StyleSheet.h create mode 100644 libjava/javax/swing/text/html/TableView$CellView.h create mode 100644 libjava/javax/swing/text/html/TableView$RowView.h create mode 100644 libjava/javax/swing/text/html/TableView.h create mode 100644 libjava/javax/swing/text/html/ViewAttributeSet.h create mode 100644 libjava/javax/swing/text/html/parser/AttributeList$1.h create mode 100644 libjava/javax/swing/text/html/parser/AttributeList.h create mode 100644 libjava/javax/swing/text/html/parser/ContentModel.h create mode 100644 libjava/javax/swing/text/html/parser/DTD.h create mode 100644 libjava/javax/swing/text/html/parser/DTDConstants.h create mode 100644 libjava/javax/swing/text/html/parser/DocumentParser$gnuParser.h create mode 100644 libjava/javax/swing/text/html/parser/DocumentParser.h create mode 100644 libjava/javax/swing/text/html/parser/Element$1.h create mode 100644 libjava/javax/swing/text/html/parser/Element.h create mode 100644 libjava/javax/swing/text/html/parser/Entity$1.h create mode 100644 libjava/javax/swing/text/html/parser/Entity.h create mode 100644 libjava/javax/swing/text/html/parser/Parser$1.h create mode 100644 libjava/javax/swing/text/html/parser/Parser.h create mode 100644 libjava/javax/swing/text/html/parser/ParserDelegator$gnuParser.h create mode 100644 libjava/javax/swing/text/html/parser/ParserDelegator.h create mode 100644 libjava/javax/swing/text/html/parser/TagElement.h create mode 100644 libjava/javax/swing/text/rtf/ControlWordToken.h create mode 100644 libjava/javax/swing/text/rtf/RTFEditorKit.h create mode 100644 libjava/javax/swing/text/rtf/RTFParseException.h create mode 100644 libjava/javax/swing/text/rtf/RTFParser.h create mode 100644 libjava/javax/swing/text/rtf/RTFScanner.h create mode 100644 libjava/javax/swing/text/rtf/TextToken.h create mode 100644 libjava/javax/swing/text/rtf/Token.h create mode 100644 libjava/javax/swing/tree/AbstractLayoutCache$NodeDimensions.h create mode 100644 libjava/javax/swing/tree/AbstractLayoutCache.h create mode 100644 libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h create mode 100644 libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h create mode 100644 libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h create mode 100644 libjava/javax/swing/tree/DefaultMutableTreeNode.h create mode 100644 libjava/javax/swing/tree/DefaultTreeCellEditor$DefaultTextField.h create mode 100644 libjava/javax/swing/tree/DefaultTreeCellEditor$EditorContainer.h create mode 100644 libjava/javax/swing/tree/DefaultTreeCellEditor$RealEditorListener.h create mode 100644 libjava/javax/swing/tree/DefaultTreeCellEditor.h create mode 100644 libjava/javax/swing/tree/DefaultTreeCellRenderer.h create mode 100644 libjava/javax/swing/tree/DefaultTreeModel.h create mode 100644 libjava/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.h create mode 100644 libjava/javax/swing/tree/DefaultTreeSelectionModel.h create mode 100644 libjava/javax/swing/tree/ExpandVetoException.h create mode 100644 libjava/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.h create mode 100644 libjava/javax/swing/tree/FixedHeightLayoutCache.h create mode 100644 libjava/javax/swing/tree/MutableTreeNode.h create mode 100644 libjava/javax/swing/tree/RowMapper.h create mode 100644 libjava/javax/swing/tree/TreeCellEditor.h create mode 100644 libjava/javax/swing/tree/TreeCellRenderer.h create mode 100644 libjava/javax/swing/tree/TreeModel.h create mode 100644 libjava/javax/swing/tree/TreeNode.h create mode 100644 libjava/javax/swing/tree/TreePath.h create mode 100644 libjava/javax/swing/tree/TreeSelectionModel.h create mode 100644 libjava/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.h create mode 100644 libjava/javax/swing/tree/VariableHeightLayoutCache.h create mode 100644 libjava/javax/swing/undo/AbstractUndoableEdit.h create mode 100644 libjava/javax/swing/undo/CannotRedoException.h create mode 100644 libjava/javax/swing/undo/CannotUndoException.h create mode 100644 libjava/javax/swing/undo/CompoundEdit.h create mode 100644 libjava/javax/swing/undo/StateEdit.h create mode 100644 libjava/javax/swing/undo/StateEditable.h create mode 100644 libjava/javax/swing/undo/UndoManager.h create mode 100644 libjava/javax/swing/undo/UndoableEdit.h create mode 100644 libjava/javax/swing/undo/UndoableEditSupport.h create mode 100644 libjava/javax/transaction/HeuristicCommitException.h create mode 100644 libjava/javax/transaction/HeuristicMixedException.h create mode 100644 libjava/javax/transaction/HeuristicRollbackException.h create mode 100644 libjava/javax/transaction/InvalidTransactionException.h create mode 100644 libjava/javax/transaction/NotSupportedException.h create mode 100644 libjava/javax/transaction/RollbackException.h create mode 100644 libjava/javax/transaction/Status.h create mode 100644 libjava/javax/transaction/Synchronization.h create mode 100644 libjava/javax/transaction/SystemException.h create mode 100644 libjava/javax/transaction/Transaction.h create mode 100644 libjava/javax/transaction/TransactionManager.h create mode 100644 libjava/javax/transaction/TransactionRequiredException.h create mode 100644 libjava/javax/transaction/TransactionRolledbackException.h create mode 100644 libjava/javax/transaction/UserTransaction.h create mode 100644 libjava/javax/transaction/xa/XAException.h create mode 100644 libjava/javax/transaction/xa/XAResource.h create mode 100644 libjava/javax/transaction/xa/Xid.h create mode 100644 libjava/javax/xml/XMLConstants.h create mode 100644 libjava/javax/xml/datatype/DatatypeConfigurationException.h create mode 100644 libjava/javax/xml/datatype/DatatypeConstants$Field.h create mode 100644 libjava/javax/xml/datatype/DatatypeConstants.h create mode 100644 libjava/javax/xml/datatype/DatatypeFactory.h create mode 100644 libjava/javax/xml/datatype/Duration.h create mode 100644 libjava/javax/xml/datatype/XMLGregorianCalendar.h create mode 100644 libjava/javax/xml/namespace/NamespaceContext.h create mode 100644 libjava/javax/xml/namespace/QName.h create mode 100644 libjava/javax/xml/parsers/DocumentBuilder.h create mode 100644 libjava/javax/xml/parsers/DocumentBuilderFactory.h create mode 100644 libjava/javax/xml/parsers/FactoryConfigurationError.h create mode 100644 libjava/javax/xml/parsers/ParserConfigurationException.h create mode 100644 libjava/javax/xml/parsers/SAXParser.h create mode 100644 libjava/javax/xml/parsers/SAXParserFactory.h create mode 100644 libjava/javax/xml/stream/EventFilter.h create mode 100644 libjava/javax/xml/stream/FactoryConfigurationError.h create mode 100644 libjava/javax/xml/stream/Location.h create mode 100644 libjava/javax/xml/stream/StreamFilter.h create mode 100644 libjava/javax/xml/stream/XMLEventFactory.h create mode 100644 libjava/javax/xml/stream/XMLEventReader.h create mode 100644 libjava/javax/xml/stream/XMLEventWriter.h create mode 100644 libjava/javax/xml/stream/XMLInputFactory.h create mode 100644 libjava/javax/xml/stream/XMLOutputFactory.h create mode 100644 libjava/javax/xml/stream/XMLReporter.h create mode 100644 libjava/javax/xml/stream/XMLResolver.h create mode 100644 libjava/javax/xml/stream/XMLStreamConstants.h create mode 100644 libjava/javax/xml/stream/XMLStreamException.h create mode 100644 libjava/javax/xml/stream/XMLStreamReader.h create mode 100644 libjava/javax/xml/stream/XMLStreamWriter.h create mode 100644 libjava/javax/xml/stream/events/Attribute.h create mode 100644 libjava/javax/xml/stream/events/Characters.h create mode 100644 libjava/javax/xml/stream/events/Comment.h create mode 100644 libjava/javax/xml/stream/events/DTD.h create mode 100644 libjava/javax/xml/stream/events/EndDocument.h create mode 100644 libjava/javax/xml/stream/events/EndElement.h create mode 100644 libjava/javax/xml/stream/events/EntityDeclaration.h create mode 100644 libjava/javax/xml/stream/events/EntityReference.h create mode 100644 libjava/javax/xml/stream/events/Namespace.h create mode 100644 libjava/javax/xml/stream/events/NotationDeclaration.h create mode 100644 libjava/javax/xml/stream/events/ProcessingInstruction.h create mode 100644 libjava/javax/xml/stream/events/StartDocument.h create mode 100644 libjava/javax/xml/stream/events/StartElement.h create mode 100644 libjava/javax/xml/stream/events/XMLEvent.h create mode 100644 libjava/javax/xml/stream/util/EventReaderDelegate.h create mode 100644 libjava/javax/xml/stream/util/ReaderDelegate.h create mode 100644 libjava/javax/xml/stream/util/XMLEventAllocator.h create mode 100644 libjava/javax/xml/stream/util/XMLEventConsumer.h create mode 100644 libjava/javax/xml/transform/ErrorListener.h create mode 100644 libjava/javax/xml/transform/OutputKeys.h create mode 100644 libjava/javax/xml/transform/Result.h create mode 100644 libjava/javax/xml/transform/Source.h create mode 100644 libjava/javax/xml/transform/SourceLocator.h create mode 100644 libjava/javax/xml/transform/Templates.h create mode 100644 libjava/javax/xml/transform/Transformer.h create mode 100644 libjava/javax/xml/transform/TransformerConfigurationException.h create mode 100644 libjava/javax/xml/transform/TransformerException.h create mode 100644 libjava/javax/xml/transform/TransformerFactory.h create mode 100644 libjava/javax/xml/transform/TransformerFactoryConfigurationError.h create mode 100644 libjava/javax/xml/transform/URIResolver.h create mode 100644 libjava/javax/xml/transform/dom/DOMLocator.h create mode 100644 libjava/javax/xml/transform/dom/DOMResult.h create mode 100644 libjava/javax/xml/transform/dom/DOMSource.h create mode 100644 libjava/javax/xml/transform/sax/SAXResult.h create mode 100644 libjava/javax/xml/transform/sax/SAXSource.h create mode 100644 libjava/javax/xml/transform/sax/SAXTransformerFactory.h create mode 100644 libjava/javax/xml/transform/sax/TemplatesHandler.h create mode 100644 libjava/javax/xml/transform/sax/TransformerHandler.h create mode 100644 libjava/javax/xml/transform/stream/StreamResult.h create mode 100644 libjava/javax/xml/transform/stream/StreamSource.h create mode 100644 libjava/javax/xml/validation/Schema.h create mode 100644 libjava/javax/xml/validation/SchemaFactory.h create mode 100644 libjava/javax/xml/validation/SchemaFactoryLoader.h create mode 100644 libjava/javax/xml/validation/TypeInfoProvider.h create mode 100644 libjava/javax/xml/validation/Validator.h create mode 100644 libjava/javax/xml/validation/ValidatorHandler.h create mode 100644 libjava/javax/xml/xpath/XPath.h create mode 100644 libjava/javax/xml/xpath/XPathConstants.h create mode 100644 libjava/javax/xml/xpath/XPathException.h create mode 100644 libjava/javax/xml/xpath/XPathExpression.h create mode 100644 libjava/javax/xml/xpath/XPathExpressionException.h create mode 100644 libjava/javax/xml/xpath/XPathFactory.h create mode 100644 libjava/javax/xml/xpath/XPathFactoryConfigurationException.h create mode 100644 libjava/javax/xml/xpath/XPathFunction.h create mode 100644 libjava/javax/xml/xpath/XPathFunctionException.h create mode 100644 libjava/javax/xml/xpath/XPathFunctionResolver.h create mode 100644 libjava/javax/xml/xpath/XPathVariableResolver.h create mode 100644 libjava/org/ietf/jgss/ChannelBinding.h create mode 100644 libjava/org/ietf/jgss/GSSContext.h create mode 100644 libjava/org/ietf/jgss/GSSCredential.h create mode 100644 libjava/org/ietf/jgss/GSSException.h create mode 100644 libjava/org/ietf/jgss/GSSManager.h create mode 100644 libjava/org/ietf/jgss/GSSName.h create mode 100644 libjava/org/ietf/jgss/MessageProp.h create mode 100644 libjava/org/ietf/jgss/Oid.h create mode 100644 libjava/org/omg/CORBA/ACTIVITY_COMPLETED.h create mode 100644 libjava/org/omg/CORBA/ACTIVITY_REQUIRED.h create mode 100644 libjava/org/omg/CORBA/ARG_IN.h create mode 100644 libjava/org/omg/CORBA/ARG_INOUT.h create mode 100644 libjava/org/omg/CORBA/ARG_OUT.h create mode 100644 libjava/org/omg/CORBA/Any.h create mode 100644 libjava/org/omg/CORBA/AnyHolder.h create mode 100644 libjava/org/omg/CORBA/AnySeqHelper.h create mode 100644 libjava/org/omg/CORBA/AnySeqHolder.h create mode 100644 libjava/org/omg/CORBA/BAD_CONTEXT.h create mode 100644 libjava/org/omg/CORBA/BAD_INV_ORDER.h create mode 100644 libjava/org/omg/CORBA/BAD_OPERATION.h create mode 100644 libjava/org/omg/CORBA/BAD_PARAM.h create mode 100644 libjava/org/omg/CORBA/BAD_POLICY.h create mode 100644 libjava/org/omg/CORBA/BAD_POLICY_TYPE.h create mode 100644 libjava/org/omg/CORBA/BAD_POLICY_VALUE.h create mode 100644 libjava/org/omg/CORBA/BAD_QOS.h create mode 100644 libjava/org/omg/CORBA/BAD_TYPECODE.h create mode 100644 libjava/org/omg/CORBA/BooleanHolder.h create mode 100644 libjava/org/omg/CORBA/BooleanSeqHelper.h create mode 100644 libjava/org/omg/CORBA/BooleanSeqHolder.h create mode 100644 libjava/org/omg/CORBA/Bounds.h create mode 100644 libjava/org/omg/CORBA/ByteHolder.h create mode 100644 libjava/org/omg/CORBA/CODESET_INCOMPATIBLE.h create mode 100644 libjava/org/omg/CORBA/COMM_FAILURE.h create mode 100644 libjava/org/omg/CORBA/CTX_RESTRICT_SCOPE.h create mode 100644 libjava/org/omg/CORBA/CharHolder.h create mode 100644 libjava/org/omg/CORBA/CharSeqHelper.h create mode 100644 libjava/org/omg/CORBA/CharSeqHolder.h create mode 100644 libjava/org/omg/CORBA/CompletionStatus.h create mode 100644 libjava/org/omg/CORBA/CompletionStatusHelper.h create mode 100644 libjava/org/omg/CORBA/Context.h create mode 100644 libjava/org/omg/CORBA/ContextList.h create mode 100644 libjava/org/omg/CORBA/Current.h create mode 100644 libjava/org/omg/CORBA/CurrentHelper$_CurrentStub.h create mode 100644 libjava/org/omg/CORBA/CurrentHelper.h create mode 100644 libjava/org/omg/CORBA/CurrentHolder.h create mode 100644 libjava/org/omg/CORBA/CurrentOperations.h create mode 100644 libjava/org/omg/CORBA/CustomMarshal.h create mode 100644 libjava/org/omg/CORBA/CustomValue.h create mode 100644 libjava/org/omg/CORBA/DATA_CONVERSION.h create mode 100644 libjava/org/omg/CORBA/DataInputStream.h create mode 100644 libjava/org/omg/CORBA/DataOutputStream.h create mode 100644 libjava/org/omg/CORBA/DefinitionKind.h create mode 100644 libjava/org/omg/CORBA/DefinitionKindHelper.h create mode 100644 libjava/org/omg/CORBA/DomainManager.h create mode 100644 libjava/org/omg/CORBA/DomainManagerOperations.h create mode 100644 libjava/org/omg/CORBA/DoubleHolder.h create mode 100644 libjava/org/omg/CORBA/DoubleSeqHelper.h create mode 100644 libjava/org/omg/CORBA/DoubleSeqHolder.h create mode 100644 libjava/org/omg/CORBA/DynAny.h create mode 100644 libjava/org/omg/CORBA/DynAnyPackage/Invalid.h create mode 100644 libjava/org/omg/CORBA/DynAnyPackage/InvalidSeq.h create mode 100644 libjava/org/omg/CORBA/DynAnyPackage/InvalidValue.h create mode 100644 libjava/org/omg/CORBA/DynAnyPackage/TypeMismatch.h create mode 100644 libjava/org/omg/CORBA/DynArray.h create mode 100644 libjava/org/omg/CORBA/DynEnum.h create mode 100644 libjava/org/omg/CORBA/DynFixed.h create mode 100644 libjava/org/omg/CORBA/DynSequence.h create mode 100644 libjava/org/omg/CORBA/DynStruct.h create mode 100644 libjava/org/omg/CORBA/DynUnion.h create mode 100644 libjava/org/omg/CORBA/DynValue.h create mode 100644 libjava/org/omg/CORBA/DynamicImplementation.h create mode 100644 libjava/org/omg/CORBA/Environment.h create mode 100644 libjava/org/omg/CORBA/ExceptionList.h create mode 100644 libjava/org/omg/CORBA/FREE_MEM.h create mode 100644 libjava/org/omg/CORBA/FieldNameHelper.h create mode 100644 libjava/org/omg/CORBA/FixedHolder.h create mode 100644 libjava/org/omg/CORBA/FloatHolder.h create mode 100644 libjava/org/omg/CORBA/FloatSeqHelper.h create mode 100644 libjava/org/omg/CORBA/FloatSeqHolder.h create mode 100644 libjava/org/omg/CORBA/IDLType.h create mode 100644 libjava/org/omg/CORBA/IDLTypeHelper.h create mode 100644 libjava/org/omg/CORBA/IDLTypeOperations.h create mode 100644 libjava/org/omg/CORBA/IMP_LIMIT.h create mode 100644 libjava/org/omg/CORBA/INITIALIZE.h create mode 100644 libjava/org/omg/CORBA/INTERNAL.h create mode 100644 libjava/org/omg/CORBA/INTF_REPOS.h create mode 100644 libjava/org/omg/CORBA/INVALID_ACTIVITY.h create mode 100644 libjava/org/omg/CORBA/INVALID_TRANSACTION.h create mode 100644 libjava/org/omg/CORBA/INV_FLAG.h create mode 100644 libjava/org/omg/CORBA/INV_IDENT.h create mode 100644 libjava/org/omg/CORBA/INV_OBJREF.h create mode 100644 libjava/org/omg/CORBA/INV_POLICY.h create mode 100644 libjava/org/omg/CORBA/IRObject.h create mode 100644 libjava/org/omg/CORBA/IRObjectOperations.h create mode 100644 libjava/org/omg/CORBA/IdentifierHelper.h create mode 100644 libjava/org/omg/CORBA/IntHolder.h create mode 100644 libjava/org/omg/CORBA/LocalObject.h create mode 100644 libjava/org/omg/CORBA/LongHolder.h create mode 100644 libjava/org/omg/CORBA/LongLongSeqHelper.h create mode 100644 libjava/org/omg/CORBA/LongLongSeqHolder.h create mode 100644 libjava/org/omg/CORBA/LongSeqHelper.h create mode 100644 libjava/org/omg/CORBA/LongSeqHolder.h create mode 100644 libjava/org/omg/CORBA/MARSHAL.h create mode 100644 libjava/org/omg/CORBA/NO_IMPLEMENT.h create mode 100644 libjava/org/omg/CORBA/NO_MEMORY.h create mode 100644 libjava/org/omg/CORBA/NO_PERMISSION.h create mode 100644 libjava/org/omg/CORBA/NO_RESOURCES.h create mode 100644 libjava/org/omg/CORBA/NO_RESPONSE.h create mode 100644 libjava/org/omg/CORBA/NVList.h create mode 100644 libjava/org/omg/CORBA/NameValuePair.h create mode 100644 libjava/org/omg/CORBA/NameValuePairHelper.h create mode 100644 libjava/org/omg/CORBA/NamedValue.h create mode 100644 libjava/org/omg/CORBA/OBJECT_NOT_EXIST.h create mode 100644 libjava/org/omg/CORBA/OBJ_ADAPTER.h create mode 100644 libjava/org/omg/CORBA/OMGVMCID.h create mode 100644 libjava/org/omg/CORBA/ORB.h create mode 100644 libjava/org/omg/CORBA/ORBPackage/InconsistentTypeCode.h create mode 100644 libjava/org/omg/CORBA/ORBPackage/InvalidName.h create mode 100644 libjava/org/omg/CORBA/Object.h create mode 100644 libjava/org/omg/CORBA/ObjectHelper.h create mode 100644 libjava/org/omg/CORBA/ObjectHolder.h create mode 100644 libjava/org/omg/CORBA/OctetSeqHelper.h create mode 100644 libjava/org/omg/CORBA/OctetSeqHolder.h create mode 100644 libjava/org/omg/CORBA/PERSIST_STORE.h create mode 100644 libjava/org/omg/CORBA/PRIVATE_MEMBER.h create mode 100644 libjava/org/omg/CORBA/PUBLIC_MEMBER.h create mode 100644 libjava/org/omg/CORBA/ParameterMode.h create mode 100644 libjava/org/omg/CORBA/ParameterModeHelper.h create mode 100644 libjava/org/omg/CORBA/ParameterModeHolder.h create mode 100644 libjava/org/omg/CORBA/Policy.h create mode 100644 libjava/org/omg/CORBA/PolicyError.h create mode 100644 libjava/org/omg/CORBA/PolicyErrorCodeHelper.h create mode 100644 libjava/org/omg/CORBA/PolicyErrorHelper.h create mode 100644 libjava/org/omg/CORBA/PolicyErrorHolder.h create mode 100644 libjava/org/omg/CORBA/PolicyHelper.h create mode 100644 libjava/org/omg/CORBA/PolicyHolder.h create mode 100644 libjava/org/omg/CORBA/PolicyListHelper.h create mode 100644 libjava/org/omg/CORBA/PolicyListHolder.h create mode 100644 libjava/org/omg/CORBA/PolicyOperations.h create mode 100644 libjava/org/omg/CORBA/PolicyTypeHelper.h create mode 100644 libjava/org/omg/CORBA/Principal.h create mode 100644 libjava/org/omg/CORBA/PrincipalHolder.h create mode 100644 libjava/org/omg/CORBA/REBIND.h create mode 100644 libjava/org/omg/CORBA/RepositoryIdHelper.h create mode 100644 libjava/org/omg/CORBA/Request.h create mode 100644 libjava/org/omg/CORBA/ServerRequest.h create mode 100644 libjava/org/omg/CORBA/ServiceDetail.h create mode 100644 libjava/org/omg/CORBA/ServiceDetailHelper.h create mode 100644 libjava/org/omg/CORBA/ServiceInformation.h create mode 100644 libjava/org/omg/CORBA/ServiceInformationHelper.h create mode 100644 libjava/org/omg/CORBA/ServiceInformationHolder.h create mode 100644 libjava/org/omg/CORBA/SetOverrideType.h create mode 100644 libjava/org/omg/CORBA/SetOverrideTypeHelper.h create mode 100644 libjava/org/omg/CORBA/ShortHolder.h create mode 100644 libjava/org/omg/CORBA/ShortSeqHelper.h create mode 100644 libjava/org/omg/CORBA/ShortSeqHolder.h create mode 100644 libjava/org/omg/CORBA/StringHolder.h create mode 100644 libjava/org/omg/CORBA/StringSeqHelper.h create mode 100644 libjava/org/omg/CORBA/StringSeqHolder.h create mode 100644 libjava/org/omg/CORBA/StringValueHelper.h create mode 100644 libjava/org/omg/CORBA/StructMember.h create mode 100644 libjava/org/omg/CORBA/StructMemberHelper.h create mode 100644 libjava/org/omg/CORBA/SystemException.h create mode 100644 libjava/org/omg/CORBA/TCKind.h create mode 100644 libjava/org/omg/CORBA/TIMEOUT.h create mode 100644 libjava/org/omg/CORBA/TRANSACTION_MODE.h create mode 100644 libjava/org/omg/CORBA/TRANSACTION_REQUIRED.h create mode 100644 libjava/org/omg/CORBA/TRANSACTION_ROLLEDBACK.h create mode 100644 libjava/org/omg/CORBA/TRANSACTION_UNAVAILABLE.h create mode 100644 libjava/org/omg/CORBA/TRANSIENT.h create mode 100644 libjava/org/omg/CORBA/TypeCode.h create mode 100644 libjava/org/omg/CORBA/TypeCodeHolder.h create mode 100644 libjava/org/omg/CORBA/TypeCodePackage/BadKind.h create mode 100644 libjava/org/omg/CORBA/TypeCodePackage/Bounds.h create mode 100644 libjava/org/omg/CORBA/ULongLongSeqHelper.h create mode 100644 libjava/org/omg/CORBA/ULongLongSeqHolder.h create mode 100644 libjava/org/omg/CORBA/ULongSeqHelper.h create mode 100644 libjava/org/omg/CORBA/ULongSeqHolder.h create mode 100644 libjava/org/omg/CORBA/UNKNOWN.h create mode 100644 libjava/org/omg/CORBA/UNSUPPORTED_POLICY.h create mode 100644 libjava/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.h create mode 100644 libjava/org/omg/CORBA/UShortSeqHelper.h create mode 100644 libjava/org/omg/CORBA/UShortSeqHolder.h create mode 100644 libjava/org/omg/CORBA/UnionMember.h create mode 100644 libjava/org/omg/CORBA/UnionMemberHelper.h create mode 100644 libjava/org/omg/CORBA/UnknownUserException.h create mode 100644 libjava/org/omg/CORBA/UnknownUserExceptionHelper.h create mode 100644 libjava/org/omg/CORBA/UnknownUserExceptionHolder.h create mode 100644 libjava/org/omg/CORBA/UserException.h create mode 100644 libjava/org/omg/CORBA/VM_ABSTRACT.h create mode 100644 libjava/org/omg/CORBA/VM_CUSTOM.h create mode 100644 libjava/org/omg/CORBA/VM_NONE.h create mode 100644 libjava/org/omg/CORBA/VM_TRUNCATABLE.h create mode 100644 libjava/org/omg/CORBA/ValueBaseHelper.h create mode 100644 libjava/org/omg/CORBA/ValueBaseHolder.h create mode 100644 libjava/org/omg/CORBA/ValueMember.h create mode 100644 libjava/org/omg/CORBA/ValueMemberHelper.h create mode 100644 libjava/org/omg/CORBA/VersionSpecHelper.h create mode 100644 libjava/org/omg/CORBA/VisibilityHelper.h create mode 100644 libjava/org/omg/CORBA/WCharSeqHelper.h create mode 100644 libjava/org/omg/CORBA/WCharSeqHolder.h create mode 100644 libjava/org/omg/CORBA/WStringSeqHelper.h create mode 100644 libjava/org/omg/CORBA/WStringSeqHolder.h create mode 100644 libjava/org/omg/CORBA/WStringValueHelper.h create mode 100644 libjava/org/omg/CORBA/WrongTransaction.h create mode 100644 libjava/org/omg/CORBA/WrongTransactionHelper.h create mode 100644 libjava/org/omg/CORBA/WrongTransactionHolder.h create mode 100644 libjava/org/omg/CORBA/_IDLTypeStub.h create mode 100644 libjava/org/omg/CORBA/_PolicyStub.h create mode 100644 libjava/org/omg/CORBA/portable/ApplicationException.h create mode 100644 libjava/org/omg/CORBA/portable/BoxedValueHelper.h create mode 100644 libjava/org/omg/CORBA/portable/CustomValue.h create mode 100644 libjava/org/omg/CORBA/portable/Delegate.h create mode 100644 libjava/org/omg/CORBA/portable/IDLEntity.h create mode 100644 libjava/org/omg/CORBA/portable/IndirectionException.h create mode 100644 libjava/org/omg/CORBA/portable/InputStream.h create mode 100644 libjava/org/omg/CORBA/portable/InvokeHandler.h create mode 100644 libjava/org/omg/CORBA/portable/ObjectImpl.h create mode 100644 libjava/org/omg/CORBA/portable/OutputStream.h create mode 100644 libjava/org/omg/CORBA/portable/RemarshalException.h create mode 100644 libjava/org/omg/CORBA/portable/ResponseHandler.h create mode 100644 libjava/org/omg/CORBA/portable/ServantObject.h create mode 100644 libjava/org/omg/CORBA/portable/Streamable.h create mode 100644 libjava/org/omg/CORBA/portable/StreamableValue.h create mode 100644 libjava/org/omg/CORBA/portable/UnknownException.h create mode 100644 libjava/org/omg/CORBA/portable/ValueBase.h create mode 100644 libjava/org/omg/CORBA/portable/ValueFactory.h create mode 100644 libjava/org/omg/CORBA_2_3/ORB.h create mode 100644 libjava/org/omg/CORBA_2_3/portable/Delegate.h create mode 100644 libjava/org/omg/CORBA_2_3/portable/InputStream.h create mode 100644 libjava/org/omg/CORBA_2_3/portable/ObjectImpl.h create mode 100644 libjava/org/omg/CORBA_2_3/portable/OutputStream.h create mode 100644 libjava/org/omg/CosNaming/Binding.h create mode 100644 libjava/org/omg/CosNaming/BindingHelper.h create mode 100644 libjava/org/omg/CosNaming/BindingHolder.h create mode 100644 libjava/org/omg/CosNaming/BindingIterator.h create mode 100644 libjava/org/omg/CosNaming/BindingIteratorHelper.h create mode 100644 libjava/org/omg/CosNaming/BindingIteratorHolder.h create mode 100644 libjava/org/omg/CosNaming/BindingIteratorOperations.h create mode 100644 libjava/org/omg/CosNaming/BindingIteratorPOA.h create mode 100644 libjava/org/omg/CosNaming/BindingListHelper.h create mode 100644 libjava/org/omg/CosNaming/BindingListHolder.h create mode 100644 libjava/org/omg/CosNaming/BindingType.h create mode 100644 libjava/org/omg/CosNaming/BindingTypeHelper.h create mode 100644 libjava/org/omg/CosNaming/BindingTypeHolder.h create mode 100644 libjava/org/omg/CosNaming/IstringHelper.h create mode 100644 libjava/org/omg/CosNaming/NameComponent.h create mode 100644 libjava/org/omg/CosNaming/NameComponentHelper.h create mode 100644 libjava/org/omg/CosNaming/NameComponentHolder.h create mode 100644 libjava/org/omg/CosNaming/NameHelper.h create mode 100644 libjava/org/omg/CosNaming/NameHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContext.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExt.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtOperations.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtPOA.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextOperations.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPOA.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBound.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/CannotProceed.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/InvalidName.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotEmpty.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotFound.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHolder.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReason.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.h create mode 100644 libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.h create mode 100644 libjava/org/omg/CosNaming/_BindingIteratorImplBase.h create mode 100644 libjava/org/omg/CosNaming/_BindingIteratorStub.h create mode 100644 libjava/org/omg/CosNaming/_NamingContextExtImplBase.h create mode 100644 libjava/org/omg/CosNaming/_NamingContextExtStub.h create mode 100644 libjava/org/omg/CosNaming/_NamingContextImplBase.h create mode 100644 libjava/org/omg/CosNaming/_NamingContextStub.h create mode 100644 libjava/org/omg/Dynamic/Parameter.h create mode 100644 libjava/org/omg/DynamicAny/AnySeqHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynAny.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyFactory.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyFactoryHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyFactoryOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValue.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.h create mode 100644 libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynAnySeqHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynArray.h create mode 100644 libjava/org/omg/DynamicAny/DynArrayHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynArrayOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynEnum.h create mode 100644 libjava/org/omg/DynamicAny/DynEnumHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynEnumOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynFixed.h create mode 100644 libjava/org/omg/DynamicAny/DynFixedHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynFixedOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynSequence.h create mode 100644 libjava/org/omg/DynamicAny/DynSequenceHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynSequenceOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynStruct.h create mode 100644 libjava/org/omg/DynamicAny/DynStructHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynStructOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynUnion.h create mode 100644 libjava/org/omg/DynamicAny/DynUnionHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynUnionOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynValue.h create mode 100644 libjava/org/omg/DynamicAny/DynValueBox.h create mode 100644 libjava/org/omg/DynamicAny/DynValueBoxOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynValueCommon.h create mode 100644 libjava/org/omg/DynamicAny/DynValueCommonOperations.h create mode 100644 libjava/org/omg/DynamicAny/DynValueHelper.h create mode 100644 libjava/org/omg/DynamicAny/DynValueOperations.h create mode 100644 libjava/org/omg/DynamicAny/FieldNameHelper.h create mode 100644 libjava/org/omg/DynamicAny/NameDynAnyPair.h create mode 100644 libjava/org/omg/DynamicAny/NameDynAnyPairHelper.h create mode 100644 libjava/org/omg/DynamicAny/NameDynAnyPairSeqHelper.h create mode 100644 libjava/org/omg/DynamicAny/NameValuePair.h create mode 100644 libjava/org/omg/DynamicAny/NameValuePairHelper.h create mode 100644 libjava/org/omg/DynamicAny/NameValuePairSeqHelper.h create mode 100644 libjava/org/omg/DynamicAny/_DynAnyFactoryStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynAnyStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynArrayStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynEnumStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynFixedStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynSequenceStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynStructStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynUnionStub.h create mode 100644 libjava/org/omg/DynamicAny/_DynValueStub.h create mode 100644 libjava/org/omg/IOP/CodeSets.h create mode 100644 libjava/org/omg/IOP/Codec.h create mode 100644 libjava/org/omg/IOP/CodecFactory.h create mode 100644 libjava/org/omg/IOP/CodecFactoryHelper.h create mode 100644 libjava/org/omg/IOP/CodecFactoryOperations.h create mode 100644 libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.h create mode 100644 libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.h create mode 100644 libjava/org/omg/IOP/CodecOperations.h create mode 100644 libjava/org/omg/IOP/CodecPackage/FormatMismatch.h create mode 100644 libjava/org/omg/IOP/CodecPackage/FormatMismatchHelper.h create mode 100644 libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.h create mode 100644 libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.h create mode 100644 libjava/org/omg/IOP/CodecPackage/TypeMismatch.h create mode 100644 libjava/org/omg/IOP/CodecPackage/TypeMismatchHelper.h create mode 100644 libjava/org/omg/IOP/ComponentIdHelper.h create mode 100644 libjava/org/omg/IOP/ENCODING_CDR_ENCAPS.h create mode 100644 libjava/org/omg/IOP/Encoding.h create mode 100644 libjava/org/omg/IOP/ExceptionDetailMessage.h create mode 100644 libjava/org/omg/IOP/IOR.h create mode 100644 libjava/org/omg/IOP/IORHelper.h create mode 100644 libjava/org/omg/IOP/IORHolder.h create mode 100644 libjava/org/omg/IOP/MultipleComponentProfileHelper.h create mode 100644 libjava/org/omg/IOP/MultipleComponentProfileHolder.h create mode 100644 libjava/org/omg/IOP/ProfileIdHelper.h create mode 100644 libjava/org/omg/IOP/RMICustomMaxStreamFormat.h create mode 100644 libjava/org/omg/IOP/ServiceContext.h create mode 100644 libjava/org/omg/IOP/ServiceContextHelper.h create mode 100644 libjava/org/omg/IOP/ServiceContextHolder.h create mode 100644 libjava/org/omg/IOP/ServiceContextListHelper.h create mode 100644 libjava/org/omg/IOP/ServiceContextListHolder.h create mode 100644 libjava/org/omg/IOP/ServiceIdHelper.h create mode 100644 libjava/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.h create mode 100644 libjava/org/omg/IOP/TAG_CODE_SETS.h create mode 100644 libjava/org/omg/IOP/TAG_INTERNET_IOP.h create mode 100644 libjava/org/omg/IOP/TAG_JAVA_CODEBASE.h create mode 100644 libjava/org/omg/IOP/TAG_MULTIPLE_COMPONENTS.h create mode 100644 libjava/org/omg/IOP/TAG_ORB_TYPE.h create mode 100644 libjava/org/omg/IOP/TAG_POLICIES.h create mode 100644 libjava/org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.h create mode 100644 libjava/org/omg/IOP/TaggedComponent.h create mode 100644 libjava/org/omg/IOP/TaggedComponentHelper.h create mode 100644 libjava/org/omg/IOP/TaggedComponentHolder.h create mode 100644 libjava/org/omg/IOP/TaggedProfile.h create mode 100644 libjava/org/omg/IOP/TaggedProfileHelper.h create mode 100644 libjava/org/omg/IOP/TaggedProfileHolder.h create mode 100644 libjava/org/omg/IOP/TransactionService.h create mode 100644 libjava/org/omg/Messaging/SYNC_WITH_TRANSPORT.h create mode 100644 libjava/org/omg/Messaging/SyncScopeHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ACTIVE.h create mode 100644 libjava/org/omg/PortableInterceptor/AdapterManagerIdHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/AdapterNameHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/AdapterStateHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ClientRequestInfo.h create mode 100644 libjava/org/omg/PortableInterceptor/ClientRequestInfoOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/ClientRequestInterceptor.h create mode 100644 libjava/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/Current.h create mode 100644 libjava/org/omg/PortableInterceptor/CurrentHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/CurrentOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/DISCARDING.h create mode 100644 libjava/org/omg/PortableInterceptor/ForwardRequest.h create mode 100644 libjava/org/omg/PortableInterceptor/ForwardRequestHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/HOLDING.h create mode 100644 libjava/org/omg/PortableInterceptor/INACTIVE.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInfo.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInfoOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInterceptor.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInterceptorOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInterceptor_3_0.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.h create mode 100644 libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.h create mode 100644 libjava/org/omg/PortableInterceptor/Interceptor.h create mode 100644 libjava/org/omg/PortableInterceptor/InterceptorOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/InvalidSlot.h create mode 100644 libjava/org/omg/PortableInterceptor/InvalidSlotHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/LOCATION_FORWARD.h create mode 100644 libjava/org/omg/PortableInterceptor/NON_EXISTENT.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBIdHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitInfo.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitInfoOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitializer.h create mode 100644 libjava/org/omg/PortableInterceptor/ORBInitializerOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectIdHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceFactory.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceTemplate.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.h create mode 100644 libjava/org/omg/PortableInterceptor/PolicyFactory.h create mode 100644 libjava/org/omg/PortableInterceptor/PolicyFactoryOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/RequestInfo.h create mode 100644 libjava/org/omg/PortableInterceptor/RequestInfoOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/SUCCESSFUL.h create mode 100644 libjava/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.h create mode 100644 libjava/org/omg/PortableInterceptor/ServerIdHelper.h create mode 100644 libjava/org/omg/PortableInterceptor/ServerRequestInfo.h create mode 100644 libjava/org/omg/PortableInterceptor/ServerRequestInfoOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/ServerRequestInterceptor.h create mode 100644 libjava/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.h create mode 100644 libjava/org/omg/PortableInterceptor/TRANSPORT_RETRY.h create mode 100644 libjava/org/omg/PortableInterceptor/USER_EXCEPTION.h create mode 100644 libjava/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.h create mode 100644 libjava/org/omg/PortableServer/AdapterActivator.h create mode 100644 libjava/org/omg/PortableServer/AdapterActivatorOperations.h create mode 100644 libjava/org/omg/PortableServer/Current.h create mode 100644 libjava/org/omg/PortableServer/CurrentHelper.h create mode 100644 libjava/org/omg/PortableServer/CurrentOperations.h create mode 100644 libjava/org/omg/PortableServer/CurrentPackage/NoContext.h create mode 100644 libjava/org/omg/PortableServer/CurrentPackage/NoContextHelper.h create mode 100644 libjava/org/omg/PortableServer/DynamicImplementation.h create mode 100644 libjava/org/omg/PortableServer/ForwardRequest.h create mode 100644 libjava/org/omg/PortableServer/ForwardRequestHelper.h create mode 100644 libjava/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.h create mode 100644 libjava/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.h create mode 100644 libjava/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.h create mode 100644 libjava/org/omg/PortableServer/IdAssignmentPolicy.h create mode 100644 libjava/org/omg/PortableServer/IdAssignmentPolicyOperations.h create mode 100644 libjava/org/omg/PortableServer/IdAssignmentPolicyValue.h create mode 100644 libjava/org/omg/PortableServer/IdUniquenessPolicy.h create mode 100644 libjava/org/omg/PortableServer/IdUniquenessPolicyOperations.h create mode 100644 libjava/org/omg/PortableServer/IdUniquenessPolicyValue.h create mode 100644 libjava/org/omg/PortableServer/ImplicitActivationPolicy.h create mode 100644 libjava/org/omg/PortableServer/ImplicitActivationPolicyOperations.h create mode 100644 libjava/org/omg/PortableServer/ImplicitActivationPolicyValue.h create mode 100644 libjava/org/omg/PortableServer/LIFESPAN_POLICY_ID.h create mode 100644 libjava/org/omg/PortableServer/LifespanPolicy.h create mode 100644 libjava/org/omg/PortableServer/LifespanPolicyOperations.h create mode 100644 libjava/org/omg/PortableServer/LifespanPolicyValue.h create mode 100644 libjava/org/omg/PortableServer/POA.h create mode 100644 libjava/org/omg/PortableServer/POAHelper.h create mode 100644 libjava/org/omg/PortableServer/POAManager.h create mode 100644 libjava/org/omg/PortableServer/POAManagerOperations.h create mode 100644 libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactive.h create mode 100644 libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.h create mode 100644 libjava/org/omg/PortableServer/POAManagerPackage/State.h create mode 100644 libjava/org/omg/PortableServer/POAOperations.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/AdapterNonExistent.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/InvalidPolicy.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/NoServant.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/NoServantHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ObjectNotActive.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActive.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ServantNotActive.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/WrongAdapter.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/WrongAdapterHelper.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/WrongPolicy.h create mode 100644 libjava/org/omg/PortableServer/POAPackage/WrongPolicyHelper.h create mode 100644 libjava/org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.h create mode 100644 libjava/org/omg/PortableServer/RequestProcessingPolicy.h create mode 100644 libjava/org/omg/PortableServer/RequestProcessingPolicyOperations.h create mode 100644 libjava/org/omg/PortableServer/RequestProcessingPolicyValue.h create mode 100644 libjava/org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.h create mode 100644 libjava/org/omg/PortableServer/Servant.h create mode 100644 libjava/org/omg/PortableServer/ServantActivator.h create mode 100644 libjava/org/omg/PortableServer/ServantActivatorHelper.h create mode 100644 libjava/org/omg/PortableServer/ServantActivatorOperations.h create mode 100644 libjava/org/omg/PortableServer/ServantActivatorPOA$delegator.h create mode 100644 libjava/org/omg/PortableServer/ServantActivatorPOA.h create mode 100644 libjava/org/omg/PortableServer/ServantLocator.h create mode 100644 libjava/org/omg/PortableServer/ServantLocatorHelper.h create mode 100644 libjava/org/omg/PortableServer/ServantLocatorOperations.h create mode 100644 libjava/org/omg/PortableServer/ServantLocatorPOA$delegator.h create mode 100644 libjava/org/omg/PortableServer/ServantLocatorPOA.h create mode 100644 libjava/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.h create mode 100644 libjava/org/omg/PortableServer/ServantManager.h create mode 100644 libjava/org/omg/PortableServer/ServantManagerOperations.h create mode 100644 libjava/org/omg/PortableServer/ServantRetentionPolicy.h create mode 100644 libjava/org/omg/PortableServer/ServantRetentionPolicyOperations.h create mode 100644 libjava/org/omg/PortableServer/ServantRetentionPolicyValue.h create mode 100644 libjava/org/omg/PortableServer/THREAD_POLICY_ID.h create mode 100644 libjava/org/omg/PortableServer/ThreadPolicy.h create mode 100644 libjava/org/omg/PortableServer/ThreadPolicyOperations.h create mode 100644 libjava/org/omg/PortableServer/ThreadPolicyValue.h create mode 100644 libjava/org/omg/PortableServer/_ServantActivatorStub.h create mode 100644 libjava/org/omg/PortableServer/_ServantLocatorStub.h create mode 100644 libjava/org/omg/PortableServer/portable/Delegate.h create mode 100644 libjava/org/omg/SendingContext/RunTime.h create mode 100644 libjava/org/omg/SendingContext/RunTimeOperations.h create mode 100644 libjava/org/omg/stub/java/rmi/_Remote_Stub.h create mode 100644 libjava/org/relaxng/datatype/Datatype.h create mode 100644 libjava/org/relaxng/datatype/DatatypeBuilder.h create mode 100644 libjava/org/relaxng/datatype/DatatypeException.h create mode 100644 libjava/org/relaxng/datatype/DatatypeLibrary.h create mode 100644 libjava/org/relaxng/datatype/DatatypeLibraryFactory.h create mode 100644 libjava/org/relaxng/datatype/DatatypeStreamingValidator.h create mode 100644 libjava/org/relaxng/datatype/ValidationContext.h create mode 100644 libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader.h create mode 100644 libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader2.h create mode 100644 libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$ProviderEnumeration.h create mode 100644 libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Singleton.h create mode 100644 libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service.h create mode 100644 libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader.h create mode 100644 libjava/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.h create mode 100644 libjava/org/relaxng/datatype/helpers/StreamingValidatorImpl.h create mode 100644 libjava/org/w3c/dom/Attr.h create mode 100644 libjava/org/w3c/dom/CDATASection.h create mode 100644 libjava/org/w3c/dom/CharacterData.h create mode 100644 libjava/org/w3c/dom/Comment.h create mode 100644 libjava/org/w3c/dom/DOMConfiguration.h create mode 100644 libjava/org/w3c/dom/DOMError.h create mode 100644 libjava/org/w3c/dom/DOMErrorHandler.h create mode 100644 libjava/org/w3c/dom/DOMException.h create mode 100644 libjava/org/w3c/dom/DOMImplementation.h create mode 100644 libjava/org/w3c/dom/DOMImplementationList.h create mode 100644 libjava/org/w3c/dom/DOMImplementationSource.h create mode 100644 libjava/org/w3c/dom/DOMLocator.h create mode 100644 libjava/org/w3c/dom/DOMStringList.h create mode 100644 libjava/org/w3c/dom/Document.h create mode 100644 libjava/org/w3c/dom/DocumentFragment.h create mode 100644 libjava/org/w3c/dom/DocumentType.h create mode 100644 libjava/org/w3c/dom/Element.h create mode 100644 libjava/org/w3c/dom/Entity.h create mode 100644 libjava/org/w3c/dom/EntityReference.h create mode 100644 libjava/org/w3c/dom/NameList.h create mode 100644 libjava/org/w3c/dom/NamedNodeMap.h create mode 100644 libjava/org/w3c/dom/Node.h create mode 100644 libjava/org/w3c/dom/NodeList.h create mode 100644 libjava/org/w3c/dom/Notation.h create mode 100644 libjava/org/w3c/dom/ProcessingInstruction.h create mode 100644 libjava/org/w3c/dom/Text.h create mode 100644 libjava/org/w3c/dom/TypeInfo.h create mode 100644 libjava/org/w3c/dom/UserDataHandler.h create mode 100644 libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$1.h create mode 100644 libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$2.h create mode 100644 libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$3.h create mode 100644 libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$4.h create mode 100644 libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry.h create mode 100644 libjava/org/w3c/dom/css/CSS2Properties.h create mode 100644 libjava/org/w3c/dom/css/CSSCharsetRule.h create mode 100644 libjava/org/w3c/dom/css/CSSFontFaceRule.h create mode 100644 libjava/org/w3c/dom/css/CSSImportRule.h create mode 100644 libjava/org/w3c/dom/css/CSSMediaRule.h create mode 100644 libjava/org/w3c/dom/css/CSSPageRule.h create mode 100644 libjava/org/w3c/dom/css/CSSPrimitiveValue.h create mode 100644 libjava/org/w3c/dom/css/CSSRule.h create mode 100644 libjava/org/w3c/dom/css/CSSRuleList.h create mode 100644 libjava/org/w3c/dom/css/CSSStyleDeclaration.h create mode 100644 libjava/org/w3c/dom/css/CSSStyleRule.h create mode 100644 libjava/org/w3c/dom/css/CSSStyleSheet.h create mode 100644 libjava/org/w3c/dom/css/CSSUnknownRule.h create mode 100644 libjava/org/w3c/dom/css/CSSValue.h create mode 100644 libjava/org/w3c/dom/css/CSSValueList.h create mode 100644 libjava/org/w3c/dom/css/Counter.h create mode 100644 libjava/org/w3c/dom/css/DOMImplementationCSS.h create mode 100644 libjava/org/w3c/dom/css/DocumentCSS.h create mode 100644 libjava/org/w3c/dom/css/ElementCSSInlineStyle.h create mode 100644 libjava/org/w3c/dom/css/RGBColor.h create mode 100644 libjava/org/w3c/dom/css/Rect.h create mode 100644 libjava/org/w3c/dom/css/ViewCSS.h create mode 100644 libjava/org/w3c/dom/events/DocumentEvent.h create mode 100644 libjava/org/w3c/dom/events/Event.h create mode 100644 libjava/org/w3c/dom/events/EventException.h create mode 100644 libjava/org/w3c/dom/events/EventListener.h create mode 100644 libjava/org/w3c/dom/events/EventTarget.h create mode 100644 libjava/org/w3c/dom/events/MouseEvent.h create mode 100644 libjava/org/w3c/dom/events/MutationEvent.h create mode 100644 libjava/org/w3c/dom/events/UIEvent.h create mode 100644 libjava/org/w3c/dom/html2/HTMLAnchorElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLAppletElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLAreaElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLBRElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLBaseElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLBaseFontElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLBodyElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLButtonElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLCollection.h create mode 100644 libjava/org/w3c/dom/html2/HTMLDListElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLDirectoryElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLDivElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLDocument.h create mode 100644 libjava/org/w3c/dom/html2/HTMLElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLFieldSetElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLFontElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLFormElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLFrameElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLFrameSetElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLHRElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLHeadElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLHeadingElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLHtmlElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLIFrameElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLImageElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLInputElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLIsIndexElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLLIElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLLabelElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLLegendElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLLinkElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLMapElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLMenuElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLMetaElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLModElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLOListElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLObjectElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLOptGroupElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLOptionElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLOptionsCollection.h create mode 100644 libjava/org/w3c/dom/html2/HTMLParagraphElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLParamElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLPreElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLQuoteElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLScriptElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLSelectElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLStyleElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTableCaptionElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTableCellElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTableColElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTableElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTableRowElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTableSectionElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTextAreaElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLTitleElement.h create mode 100644 libjava/org/w3c/dom/html2/HTMLUListElement.h create mode 100644 libjava/org/w3c/dom/ls/DOMImplementationLS.h create mode 100644 libjava/org/w3c/dom/ls/LSException.h create mode 100644 libjava/org/w3c/dom/ls/LSInput.h create mode 100644 libjava/org/w3c/dom/ls/LSLoadEvent.h create mode 100644 libjava/org/w3c/dom/ls/LSOutput.h create mode 100644 libjava/org/w3c/dom/ls/LSParser.h create mode 100644 libjava/org/w3c/dom/ls/LSParserFilter.h create mode 100644 libjava/org/w3c/dom/ls/LSProgressEvent.h create mode 100644 libjava/org/w3c/dom/ls/LSResourceResolver.h create mode 100644 libjava/org/w3c/dom/ls/LSSerializer.h create mode 100644 libjava/org/w3c/dom/ls/LSSerializerFilter.h create mode 100644 libjava/org/w3c/dom/ranges/DocumentRange.h create mode 100644 libjava/org/w3c/dom/ranges/Range.h create mode 100644 libjava/org/w3c/dom/ranges/RangeException.h create mode 100644 libjava/org/w3c/dom/stylesheets/DocumentStyle.h create mode 100644 libjava/org/w3c/dom/stylesheets/LinkStyle.h create mode 100644 libjava/org/w3c/dom/stylesheets/MediaList.h create mode 100644 libjava/org/w3c/dom/stylesheets/StyleSheet.h create mode 100644 libjava/org/w3c/dom/stylesheets/StyleSheetList.h create mode 100644 libjava/org/w3c/dom/traversal/DocumentTraversal.h create mode 100644 libjava/org/w3c/dom/traversal/NodeFilter.h create mode 100644 libjava/org/w3c/dom/traversal/NodeIterator.h create mode 100644 libjava/org/w3c/dom/traversal/TreeWalker.h create mode 100644 libjava/org/w3c/dom/views/AbstractView.h create mode 100644 libjava/org/w3c/dom/views/DocumentView.h create mode 100644 libjava/org/w3c/dom/xpath/XPathEvaluator.h create mode 100644 libjava/org/w3c/dom/xpath/XPathException.h create mode 100644 libjava/org/w3c/dom/xpath/XPathExpression.h create mode 100644 libjava/org/w3c/dom/xpath/XPathNSResolver.h create mode 100644 libjava/org/w3c/dom/xpath/XPathNamespace.h create mode 100644 libjava/org/w3c/dom/xpath/XPathResult.h create mode 100644 libjava/org/xml/sax/AttributeList.h create mode 100644 libjava/org/xml/sax/Attributes.h create mode 100644 libjava/org/xml/sax/ContentHandler.h create mode 100644 libjava/org/xml/sax/DTDHandler.h create mode 100644 libjava/org/xml/sax/DocumentHandler.h create mode 100644 libjava/org/xml/sax/EntityResolver.h create mode 100644 libjava/org/xml/sax/ErrorHandler.h create mode 100644 libjava/org/xml/sax/HandlerBase.h create mode 100644 libjava/org/xml/sax/InputSource.h create mode 100644 libjava/org/xml/sax/Locator.h create mode 100644 libjava/org/xml/sax/Parser.h create mode 100644 libjava/org/xml/sax/SAXException.h create mode 100644 libjava/org/xml/sax/SAXNotRecognizedException.h create mode 100644 libjava/org/xml/sax/SAXNotSupportedException.h create mode 100644 libjava/org/xml/sax/SAXParseException.h create mode 100644 libjava/org/xml/sax/XMLFilter.h create mode 100644 libjava/org/xml/sax/XMLReader.h create mode 100644 libjava/org/xml/sax/ext/Attributes2.h create mode 100644 libjava/org/xml/sax/ext/Attributes2Impl.h create mode 100644 libjava/org/xml/sax/ext/DeclHandler.h create mode 100644 libjava/org/xml/sax/ext/DefaultHandler2.h create mode 100644 libjava/org/xml/sax/ext/EntityResolver2.h create mode 100644 libjava/org/xml/sax/ext/LexicalHandler.h create mode 100644 libjava/org/xml/sax/ext/Locator2.h create mode 100644 libjava/org/xml/sax/ext/Locator2Impl.h create mode 100644 libjava/org/xml/sax/helpers/AttributeListImpl.h create mode 100644 libjava/org/xml/sax/helpers/AttributesImpl.h create mode 100644 libjava/org/xml/sax/helpers/DefaultHandler.h create mode 100644 libjava/org/xml/sax/helpers/LocatorImpl.h create mode 100644 libjava/org/xml/sax/helpers/NamespaceSupport$Context.h create mode 100644 libjava/org/xml/sax/helpers/NamespaceSupport.h create mode 100644 libjava/org/xml/sax/helpers/NewInstance.h create mode 100644 libjava/org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.h create mode 100644 libjava/org/xml/sax/helpers/ParserAdapter.h create mode 100644 libjava/org/xml/sax/helpers/ParserFactory.h create mode 100644 libjava/org/xml/sax/helpers/XMLFilterImpl.h create mode 100644 libjava/org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.h create mode 100644 libjava/org/xml/sax/helpers/XMLReaderAdapter.h create mode 100644 libjava/org/xml/sax/helpers/XMLReaderFactory.h create mode 100644 libjava/sun/misc/Service.h create mode 100644 libjava/sun/misc/ServiceConfigurationError.h create mode 100644 libjava/sun/misc/Unsafe.h create mode 100644 libjava/sun/misc/Unsafe.java create mode 100644 libjava/sun/misc/natUnsafe.cc create mode 100644 libjava/sun/reflect/Reflection.h create mode 100644 libjava/sun/reflect/Reflection.java create mode 100644 libjava/sun/reflect/annotation/AnnotationInvocationHandler.h create mode 100644 libjava/sun/reflect/annotation/AnnotationParser.h create mode 100644 libjava/sun/reflect/annotation/AnnotationType.h create mode 100644 libjava/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.h create mode 100644 libjava/sun/reflect/annotation/ExceptionProxy.h create mode 100644 libjava/sun/reflect/misc/ReflectUtil$MustBeNull.h create mode 100644 libjava/sun/reflect/misc/ReflectUtil.h create mode 100644 libjava/sun/reflect/misc/ReflectUtil.java create mode 100644 libjava/testsuite/libjava.cni/PR9577.h create mode 100644 libjava/testsuite/libjava.cni/PR9577.jar create mode 100644 libjava/testsuite/libjava.cni/longfield.h create mode 100644 libjava/testsuite/libjava.cni/longfield.jar create mode 100644 libjava/testsuite/libjava.cni/shortfield.h create mode 100644 libjava/testsuite/libjava.cni/shortfield.jar create mode 100644 libjava/testsuite/libjava.cni/shortfieldbase.h delete mode 100644 libjava/testsuite/libjava.compile/ArrayClass.java delete mode 100644 libjava/testsuite/libjava.compile/AssertBug.java delete mode 100644 libjava/testsuite/libjava.compile/Case.java delete mode 100644 libjava/testsuite/libjava.compile/G19990210_1.java delete mode 100644 libjava/testsuite/libjava.compile/G19990210_2.java delete mode 100644 libjava/testsuite/libjava.compile/G19990210_3.java delete mode 100644 libjava/testsuite/libjava.compile/G19990217_01.java delete mode 100644 libjava/testsuite/libjava.compile/G19990217_02.java delete mode 100644 libjava/testsuite/libjava.compile/G19990217_02.no-link delete mode 100644 libjava/testsuite/libjava.compile/G19990225_01.java delete mode 100644 libjava/testsuite/libjava.compile/InnerExcept.java delete mode 100644 libjava/testsuite/libjava.compile/MethodFailure4.java delete mode 100644 libjava/testsuite/libjava.compile/MethodFailure4.xfail delete mode 100644 libjava/testsuite/libjava.compile/N19990310_01.java delete mode 100644 libjava/testsuite/libjava.compile/N19990317.java delete mode 100644 libjava/testsuite/libjava.compile/OperatorBenchmark.java delete mode 100644 libjava/testsuite/libjava.compile/PR11600.java delete mode 100644 libjava/testsuite/libjava.compile/PR11600.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR12374.java delete mode 100644 libjava/testsuite/libjava.compile/PR124.java delete mode 100644 libjava/testsuite/libjava.compile/PR124.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR127.java delete mode 100644 libjava/testsuite/libjava.compile/PR127.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR12857.java delete mode 100644 libjava/testsuite/libjava.compile/PR129_B.java delete mode 100644 libjava/testsuite/libjava.compile/PR129_B.no-link delete mode 100644 libjava/testsuite/libjava.compile/PR13024.java delete mode 100644 libjava/testsuite/libjava.compile/PR13237.java delete mode 100644 libjava/testsuite/libjava.compile/PR1343.java delete mode 100644 libjava/testsuite/libjava.compile/PR13733.java delete mode 100644 libjava/testsuite/libjava.compile/PR13733.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR140.java delete mode 100644 libjava/testsuite/libjava.compile/PR140.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR14853.java delete mode 100644 libjava/testsuite/libjava.compile/PR14853.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR15769.java delete mode 100644 libjava/testsuite/libjava.compile/PR16249.java delete mode 100644 libjava/testsuite/libjava.compile/PR163.java delete mode 100644 libjava/testsuite/libjava.compile/PR163.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR164.java delete mode 100644 libjava/testsuite/libjava.compile/PR164.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR16675.java delete mode 100644 libjava/testsuite/libjava.compile/PR16701.java delete mode 100644 libjava/testsuite/libjava.compile/PR19277.java delete mode 100644 libjava/testsuite/libjava.compile/PR19277.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR19295.java delete mode 100644 libjava/testsuite/libjava.compile/PR19674.java delete mode 100644 libjava/testsuite/libjava.compile/PR20312.java delete mode 100644 libjava/testsuite/libjava.compile/PR20312.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR20418.java delete mode 100644 libjava/testsuite/libjava.compile/PR20418.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR206.java delete mode 100644 libjava/testsuite/libjava.compile/PR20697.java delete mode 100644 libjava/testsuite/libjava.compile/PR207.java delete mode 100644 libjava/testsuite/libjava.compile/PR207.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR208.java delete mode 100644 libjava/testsuite/libjava.compile/PR208.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR209.java delete mode 100644 libjava/testsuite/libjava.compile/PR21045.java delete mode 100644 libjava/testsuite/libjava.compile/PR224.java delete mode 100644 libjava/testsuite/libjava.compile/PR224.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR232.java delete mode 100644 libjava/testsuite/libjava.compile/PR232B.java delete mode 100644 libjava/testsuite/libjava.compile/PR234.java delete mode 100644 libjava/testsuite/libjava.compile/PR23431_1.java delete mode 100644 libjava/testsuite/libjava.compile/PR23431_1.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR23431_2.java delete mode 100644 libjava/testsuite/libjava.compile/PR23431_2.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR235.java delete mode 100644 libjava/testsuite/libjava.compile/PR238.java delete mode 100644 libjava/testsuite/libjava.compile/PR238.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR295.java delete mode 100644 libjava/testsuite/libjava.compile/PR310.java delete mode 100644 libjava/testsuite/libjava.compile/PR310.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR3417.java delete mode 100644 libjava/testsuite/libjava.compile/PR3417.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR374.java delete mode 100644 libjava/testsuite/libjava.compile/PR375.java delete mode 100644 libjava/testsuite/libjava.compile/PR4766.java delete mode 100644 libjava/testsuite/libjava.compile/PR5641.java delete mode 100644 libjava/testsuite/libjava.compile/PR5641.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR5848.java delete mode 100644 libjava/testsuite/libjava.compile/PR5848.xfail delete mode 100644 libjava/testsuite/libjava.compile/PR5902.java delete mode 100644 libjava/testsuite/libjava.compile/PR5913.java delete mode 100644 libjava/testsuite/libjava.compile/PR6026.java delete mode 100644 libjava/testsuite/libjava.compile/PR6865.java delete mode 100644 libjava/testsuite/libjava.compile/PR6865.xfail delete mode 100644 libjava/testsuite/libjava.compile/Semi.java delete mode 100644 libjava/testsuite/libjava.compile/Statics.java delete mode 100644 libjava/testsuite/libjava.compile/SuperConstr.java delete mode 100644 libjava/testsuite/libjava.compile/T20020529.java delete mode 100644 libjava/testsuite/libjava.compile/T20020604.java delete mode 100644 libjava/testsuite/libjava.compile/Twice.java delete mode 100644 libjava/testsuite/libjava.compile/Where.java delete mode 100644 libjava/testsuite/libjava.compile/Where.xfail delete mode 100644 libjava/testsuite/libjava.compile/XercesBug.java delete mode 100644 libjava/testsuite/libjava.compile/abstr.java delete mode 100644 libjava/testsuite/libjava.compile/abstr.xfail delete mode 100644 libjava/testsuite/libjava.compile/assignment.java delete mode 100644 libjava/testsuite/libjava.compile/assignment_2.java delete mode 100644 libjava/testsuite/libjava.compile/block.java delete mode 100644 libjava/testsuite/libjava.compile/block.xfail delete mode 100644 libjava/testsuite/libjava.compile/comment.java delete mode 100644 libjava/testsuite/libjava.compile/compile.exp delete mode 100644 libjava/testsuite/libjava.compile/consthrow.java delete mode 100644 libjava/testsuite/libjava.compile/consthrow.xfail delete mode 100644 libjava/testsuite/libjava.compile/final_assignment_check.java delete mode 100644 libjava/testsuite/libjava.compile/final_assignment_check.xfail delete mode 100644 libjava/testsuite/libjava.compile/final_initialization_in_ctor.java delete mode 100644 libjava/testsuite/libjava.compile/final_local_switch.java delete mode 100644 libjava/testsuite/libjava.compile/iface.java delete mode 100644 libjava/testsuite/libjava.compile/inner_1.java delete mode 100644 libjava/testsuite/libjava.compile/inner_1.xfail delete mode 100644 libjava/testsuite/libjava.compile/inner_data.java delete mode 100644 libjava/testsuite/libjava.compile/inner_inherit.java delete mode 100644 libjava/testsuite/libjava.compile/inner_priv.java delete mode 100644 libjava/testsuite/libjava.compile/inner_pub.java delete mode 100644 libjava/testsuite/libjava.compile/invokeinterface/A.java delete mode 100644 libjava/testsuite/libjava.compile/invokeinterface/B.java delete mode 100644 libjava/testsuite/libjava.compile/invokeinterface/Test.java delete mode 100644 libjava/testsuite/libjava.compile/narrow_case.java delete mode 100644 libjava/testsuite/libjava.compile/not_a_redef.java delete mode 100644 libjava/testsuite/libjava.compile/not_a_redef.xfail delete mode 100644 libjava/testsuite/libjava.compile/perc.java delete mode 100644 libjava/testsuite/libjava.compile/plusplus.java delete mode 100644 libjava/testsuite/libjava.compile/pr10459.java delete mode 100644 libjava/testsuite/libjava.compile/pr13788.java delete mode 100644 libjava/testsuite/libjava.compile/pr15656.java delete mode 100644 libjava/testsuite/libjava.compile/pr15656.xfail delete mode 100644 libjava/testsuite/libjava.compile/pr172.java delete mode 100644 libjava/testsuite/libjava.compile/pr17329.java delete mode 100644 libjava/testsuite/libjava.compile/pr174.java delete mode 100644 libjava/testsuite/libjava.compile/pr17500.java delete mode 100644 libjava/testsuite/libjava.compile/pr176.java delete mode 100644 libjava/testsuite/libjava.compile/pr21519.java delete mode 100644 libjava/testsuite/libjava.compile/pr21540.java delete mode 100644 libjava/testsuite/libjava.compile/pr25429.java delete mode 100644 libjava/testsuite/libjava.compile/pr26042.java delete mode 100644 libjava/testsuite/libjava.compile/pr7912.java delete mode 100644 libjava/testsuite/libjava.compile/pr8712.java delete mode 100644 libjava/testsuite/libjava.compile/pr8955.java delete mode 100644 libjava/testsuite/libjava.compile/redef1.java delete mode 100644 libjava/testsuite/libjava.compile/redef1.xfail delete mode 100644 libjava/testsuite/libjava.compile/redef2.java delete mode 100644 libjava/testsuite/libjava.compile/redef2.xfail delete mode 100644 libjava/testsuite/libjava.compile/redef3.java delete mode 100644 libjava/testsuite/libjava.compile/redef3.xfail delete mode 100644 libjava/testsuite/libjava.compile/redef4.java delete mode 100644 libjava/testsuite/libjava.compile/redef4.xfail delete mode 100644 libjava/testsuite/libjava.compile/redef5.java delete mode 100644 libjava/testsuite/libjava.compile/redef5.xfail delete mode 100644 libjava/testsuite/libjava.compile/redef6.java delete mode 100644 libjava/testsuite/libjava.compile/redef6.xfail delete mode 100644 libjava/testsuite/libjava.compile/rh174912.java delete mode 100644 libjava/testsuite/libjava.compile/rh175833.java delete mode 100644 libjava/testsuite/libjava.compile/static_1.java delete mode 100644 libjava/testsuite/libjava.compile/static_1.xfail delete mode 100644 libjava/testsuite/libjava.compile/static_2.java delete mode 100644 libjava/testsuite/libjava.compile/static_2.xfail delete mode 100644 libjava/testsuite/libjava.compile/static_3.java delete mode 100644 libjava/testsuite/libjava.compile/static_3.xfail delete mode 100644 libjava/testsuite/libjava.compile/static_init.java delete mode 100644 libjava/testsuite/libjava.compile/static_init.xfail delete mode 100644 libjava/testsuite/libjava.compile/static_init2.java delete mode 100644 libjava/testsuite/libjava.compile/static_inner.java delete mode 100644 libjava/testsuite/libjava.compile/support/Case.java delete mode 100644 libjava/testsuite/libjava.compile/support/PR129_A.java delete mode 100644 libjava/testsuite/libjava.compile/support/PR206_A.java delete mode 100644 libjava/testsuite/libjava.compile/support/PR207_A.java delete mode 100644 libjava/testsuite/libjava.compile/support/Waldo.java delete mode 100644 libjava/testsuite/libjava.compile/uesc.java delete mode 100644 libjava/testsuite/libjava.compile/uesc.xfail delete mode 100644 libjava/testsuite/libjava.compile/weirddecl.java delete mode 100644 libjava/testsuite/libjava.compile/weirddecl.xfail delete mode 100644 libjava/testsuite/libjava.compile/zeroexp.java delete mode 100644 libjava/testsuite/libjava.jacks/jacks.exp delete mode 100644 libjava/testsuite/libjava.jacks/jacks.xfail create mode 100644 libjava/testsuite/libjava.jni/PR15133.h create mode 100644 libjava/testsuite/libjava.jni/PR15133.jar create mode 100644 libjava/testsuite/libjava.jni/PR18116.h create mode 100644 libjava/testsuite/libjava.jni/PR18116.jar create mode 100644 libjava/testsuite/libjava.jni/PR28178.h create mode 100644 libjava/testsuite/libjava.jni/PR28178.jar create mode 100644 libjava/testsuite/libjava.jni/bytebuffer.h create mode 100644 libjava/testsuite/libjava.jni/bytebuffer.jar create mode 100644 libjava/testsuite/libjava.jni/calls.h create mode 100644 libjava/testsuite/libjava.jni/calls.jar create mode 100644 libjava/testsuite/libjava.jni/cxxtest.h create mode 100644 libjava/testsuite/libjava.jni/cxxtest.jar create mode 100644 libjava/testsuite/libjava.jni/directbuffer.h create mode 100644 libjava/testsuite/libjava.jni/directbuffer.jar create mode 100644 libjava/testsuite/libjava.jni/field.h create mode 100644 libjava/testsuite/libjava.jni/field.jar create mode 100644 libjava/testsuite/libjava.jni/final_method.h create mode 100644 libjava/testsuite/libjava.jni/final_method.jar create mode 100644 libjava/testsuite/libjava.jni/findclass.h create mode 100644 libjava/testsuite/libjava.jni/findclass.jar create mode 100644 libjava/testsuite/libjava.jni/iface.h create mode 100644 libjava/testsuite/libjava.jni/iface.jar create mode 100644 libjava/testsuite/libjava.jni/invocation/PR16923.jar create mode 100644 libjava/testsuite/libjava.jni/invoke.h create mode 100644 libjava/testsuite/libjava.jni/invoke.jar create mode 100644 libjava/testsuite/libjava.jni/jniutf.h create mode 100644 libjava/testsuite/libjava.jni/jniutf.jar create mode 100644 libjava/testsuite/libjava.jni/martin.h create mode 100644 libjava/testsuite/libjava.jni/martin.jar create mode 100644 libjava/testsuite/libjava.jni/noclass.h create mode 100644 libjava/testsuite/libjava.jni/noclass.jar create mode 100644 libjava/testsuite/libjava.jni/overload.h create mode 100644 libjava/testsuite/libjava.jni/overload.jar create mode 100644 libjava/testsuite/libjava.jni/pr11951.h create mode 100644 libjava/testsuite/libjava.jni/pr11951.jar create mode 100644 libjava/testsuite/libjava.jni/pr18278.h create mode 100644 libjava/testsuite/libjava.jni/pr18278.jar create mode 100644 libjava/testsuite/libjava.jni/pr23739.h create mode 100644 libjava/testsuite/libjava.jni/pr23739.jar create mode 100644 libjava/testsuite/libjava.jni/register.h create mode 100644 libjava/testsuite/libjava.jni/register.jar create mode 100644 libjava/testsuite/libjava.jni/register2.jar create mode 100644 libjava/testsuite/libjava.jni/simple_int.h create mode 100644 libjava/testsuite/libjava.jni/simple_int.jar create mode 100644 libjava/testsuite/libjava.jni/throwit.h create mode 100644 libjava/testsuite/libjava.jni/throwit.jar create mode 100644 libjava/testsuite/libjava.jni/virtual.h create mode 100644 libjava/testsuite/libjava.jni/virtual.jar create mode 100644 libjava/testsuite/libjava.jvmti/events.h create mode 100644 libjava/testsuite/libjava.jvmti/events.jar create mode 100644 libjava/testsuite/libjava.jvmti/geterrorname.h create mode 100644 libjava/testsuite/libjava.jvmti/geterrorname.jar create mode 100644 libjava/testsuite/libjava.lang/ArrayStore.jar create mode 100644 libjava/testsuite/libjava.lang/ArrayStore2.jar delete mode 100644 libjava/testsuite/libjava.lang/ArrayStore2.xfail create mode 100644 libjava/testsuite/libjava.lang/Array_1.jar create mode 100644 libjava/testsuite/libjava.lang/Array_2.jar create mode 100644 libjava/testsuite/libjava.lang/Array_3.jar create mode 100644 libjava/testsuite/libjava.lang/Class_1.jar create mode 100644 libjava/testsuite/libjava.lang/CompareNaN.jar create mode 100644 libjava/testsuite/libjava.lang/Divide_1.jar create mode 100644 libjava/testsuite/libjava.lang/EvaluationOrder.jar create mode 100644 libjava/testsuite/libjava.lang/ExtraClassLoader.jar create mode 100644 libjava/testsuite/libjava.lang/FileHandleGcTest.jar create mode 100644 libjava/testsuite/libjava.lang/Final.jar create mode 100644 libjava/testsuite/libjava.lang/Float_1.jar create mode 100644 libjava/testsuite/libjava.lang/Float_2.jar create mode 100644 libjava/testsuite/libjava.lang/G19990301_01.jar create mode 100644 libjava/testsuite/libjava.lang/G19990302_02.jar create mode 100644 libjava/testsuite/libjava.lang/G19990303_01.jar create mode 100644 libjava/testsuite/libjava.lang/G19990303_02.jar create mode 100644 libjava/testsuite/libjava.lang/G19990304_01.jar create mode 100644 libjava/testsuite/libjava.lang/G19990310_01.jar create mode 100644 libjava/testsuite/libjava.lang/II.jar create mode 100644 libjava/testsuite/libjava.lang/InterfaceDispatch.jar create mode 100644 libjava/testsuite/libjava.lang/InvokeInterface.jar create mode 100644 libjava/testsuite/libjava.lang/InvokeReturn.jar create mode 100644 libjava/testsuite/libjava.lang/Invoke_1.jar create mode 100644 libjava/testsuite/libjava.lang/Invoke_2.jar create mode 100644 libjava/testsuite/libjava.lang/KeepInline.jar create mode 100644 libjava/testsuite/libjava.lang/LargeFile.jar create mode 100644 libjava/testsuite/libjava.lang/MathBuiltin.jar create mode 100644 libjava/testsuite/libjava.lang/Matrix4f.jar create mode 100644 libjava/testsuite/libjava.lang/N19990310_02.jar create mode 100644 libjava/testsuite/libjava.lang/N19990310_3.jar create mode 100644 libjava/testsuite/libjava.lang/N19990310_4.jar create mode 100644 libjava/testsuite/libjava.lang/N19990310_5.jar create mode 100644 libjava/testsuite/libjava.lang/Overflow.jar create mode 100644 libjava/testsuite/libjava.lang/PR12350.jar create mode 100644 libjava/testsuite/libjava.lang/PR12416.jar create mode 100644 libjava/testsuite/libjava.lang/PR12656.jar create mode 100644 libjava/testsuite/libjava.lang/PR12915.jar create mode 100644 libjava/testsuite/libjava.lang/PR141.jar create mode 100644 libjava/testsuite/libjava.lang/PR160.jar create mode 100644 libjava/testsuite/libjava.lang/PR162.jar create mode 100644 libjava/testsuite/libjava.lang/PR16867.jar create mode 100644 libjava/testsuite/libjava.lang/PR18699.jar create mode 100644 libjava/testsuite/libjava.lang/PR19870.jar create mode 100644 libjava/testsuite/libjava.lang/PR19870_2.jar create mode 100644 libjava/testsuite/libjava.lang/PR19921.jar create mode 100644 libjava/testsuite/libjava.lang/PR20056.jar create mode 100644 libjava/testsuite/libjava.lang/PR218.jar create mode 100644 libjava/testsuite/libjava.lang/PR242.jar create mode 100644 libjava/testsuite/libjava.lang/PR25535.jar create mode 100644 libjava/testsuite/libjava.lang/PR260.jar create mode 100644 libjava/testsuite/libjava.lang/PR26858.jar create mode 100644 libjava/testsuite/libjava.lang/PR27908.jar create mode 100644 libjava/testsuite/libjava.lang/PR29013.jar create mode 100644 libjava/testsuite/libjava.lang/PR29495.jar create mode 100644 libjava/testsuite/libjava.lang/PR29495.java rename libjava/testsuite/{libjava.compile/pr21519.no-link => libjava.lang/PR29495.out} (100%) create mode 100644 libjava/testsuite/libjava.lang/PR3096.jar create mode 100644 libjava/testsuite/libjava.lang/PR3731.jar create mode 100644 libjava/testsuite/libjava.lang/PR5057.jar create mode 100644 libjava/testsuite/libjava.lang/PR5057_2.jar create mode 100644 libjava/testsuite/libjava.lang/PR55.jar create mode 100644 libjava/testsuite/libjava.lang/PR56.jar create mode 100644 libjava/testsuite/libjava.lang/PR6085.jar create mode 100644 libjava/testsuite/libjava.lang/PR6204.jar create mode 100644 libjava/testsuite/libjava.lang/PR6520.jar create mode 100644 libjava/testsuite/libjava.lang/PR6729.jar create mode 100644 libjava/testsuite/libjava.lang/PR6820.jar create mode 100644 libjava/testsuite/libjava.lang/PR7482.jar create mode 100644 libjava/testsuite/libjava.lang/PR8866.jar create mode 100644 libjava/testsuite/libjava.lang/Process_1.jar create mode 100644 libjava/testsuite/libjava.lang/Process_2.jar create mode 100644 libjava/testsuite/libjava.lang/Process_3.jar create mode 100644 libjava/testsuite/libjava.lang/Process_4.jar create mode 100644 libjava/testsuite/libjava.lang/Process_5.jar create mode 100644 libjava/testsuite/libjava.lang/Process_6.jar create mode 100644 libjava/testsuite/libjava.lang/RH194522.jar create mode 100644 libjava/testsuite/libjava.lang/Serialization.jar create mode 100644 libjava/testsuite/libjava.lang/Shazam.jar create mode 100644 libjava/testsuite/libjava.lang/StackTrace2.jar create mode 100644 libjava/testsuite/libjava.lang/StaticConstructor.jar create mode 100644 libjava/testsuite/libjava.lang/StringBuffer_1.jar create mode 100644 libjava/testsuite/libjava.lang/StringBuffer_overflow.jar create mode 100644 libjava/testsuite/libjava.lang/String_overflow.jar create mode 100644 libjava/testsuite/libjava.lang/SyncGlobal.jar create mode 100644 libjava/testsuite/libjava.lang/SyncTest.jar create mode 100644 libjava/testsuite/libjava.lang/Synch.jar create mode 100644 libjava/testsuite/libjava.lang/TLtest.jar create mode 100644 libjava/testsuite/libjava.lang/TestProxy.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Alive.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_HoldsLock.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Interrupt.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Join.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Monitor.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Sleep.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Sleep_2.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Wait.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Wait_2.jar create mode 100644 libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.jar create mode 100644 libjava/testsuite/libjava.lang/Throw_1.jar create mode 100644 libjava/testsuite/libjava.lang/Throw_2.jar create mode 100644 libjava/testsuite/libjava.lang/Throw_3.jar create mode 100644 libjava/testsuite/libjava.lang/anfi.jar create mode 100644 libjava/testsuite/libjava.lang/anon.jar create mode 100644 libjava/testsuite/libjava.lang/anon2.jar create mode 100644 libjava/testsuite/libjava.lang/anon3.jar create mode 100644 libjava/testsuite/libjava.lang/anon4.jar create mode 100644 libjava/testsuite/libjava.lang/anon_ctor_itf_arg.jar create mode 100644 libjava/testsuite/libjava.lang/anonarray.jar create mode 100644 libjava/testsuite/libjava.lang/anonarray2.jar create mode 100644 libjava/testsuite/libjava.lang/anonarray3.jar create mode 100644 libjava/testsuite/libjava.lang/assign.jar create mode 100644 libjava/testsuite/libjava.lang/assign2.jar create mode 100644 libjava/testsuite/libjava.lang/bclink.jar create mode 100644 libjava/testsuite/libjava.lang/bytearray.jar create mode 100644 libjava/testsuite/libjava.lang/direct_read.jar create mode 100644 libjava/testsuite/libjava.lang/direct_write.jar create mode 100644 libjava/testsuite/libjava.lang/emptystring.jar create mode 100644 libjava/testsuite/libjava.lang/err1.jar create mode 100644 libjava/testsuite/libjava.lang/err10.jar create mode 100644 libjava/testsuite/libjava.lang/err11.jar create mode 100644 libjava/testsuite/libjava.lang/err12.jar create mode 100644 libjava/testsuite/libjava.lang/err13.jar create mode 100644 libjava/testsuite/libjava.lang/err14.jar create mode 100644 libjava/testsuite/libjava.lang/err2.jar create mode 100644 libjava/testsuite/libjava.lang/err3.jar create mode 100644 libjava/testsuite/libjava.lang/err4.jar create mode 100644 libjava/testsuite/libjava.lang/err5.jar create mode 100644 libjava/testsuite/libjava.lang/err6.jar create mode 100644 libjava/testsuite/libjava.lang/err7.jar create mode 100644 libjava/testsuite/libjava.lang/err8.jar create mode 100644 libjava/testsuite/libjava.lang/err9.jar create mode 100644 libjava/testsuite/libjava.lang/final_inner.jar create mode 100644 libjava/testsuite/libjava.lang/final_int.jar create mode 100644 libjava/testsuite/libjava.lang/final_static_and_friend.jar create mode 100644 libjava/testsuite/libjava.lang/indirect.jar create mode 100644 libjava/testsuite/libjava.lang/indirect_read.jar create mode 100644 libjava/testsuite/libjava.lang/indirect_write.jar create mode 100644 libjava/testsuite/libjava.lang/initexc.jar create mode 100644 libjava/testsuite/libjava.lang/initfield.jar create mode 100644 libjava/testsuite/libjava.lang/inline.jar create mode 100644 libjava/testsuite/libjava.lang/inner1.jar create mode 100644 libjava/testsuite/libjava.lang/inner2.jar create mode 100644 libjava/testsuite/libjava.lang/inner3.jar create mode 100644 libjava/testsuite/libjava.lang/inner4.jar create mode 100644 libjava/testsuite/libjava.lang/inner_array.jar create mode 100644 libjava/testsuite/libjava.lang/inner_interface.jar create mode 100644 libjava/testsuite/libjava.lang/instance.jar create mode 100644 libjava/testsuite/libjava.lang/instinit.jar create mode 100644 libjava/testsuite/libjava.lang/instinit2.jar create mode 100644 libjava/testsuite/libjava.lang/invoke_from_inner.jar create mode 100644 libjava/testsuite/libjava.lang/invokethrow.jar create mode 100644 libjava/testsuite/libjava.lang/klass.jar create mode 100644 libjava/testsuite/libjava.lang/md5test.jar create mode 100644 libjava/testsuite/libjava.lang/multiple_finit.jar create mode 100644 libjava/testsuite/libjava.lang/negzero.jar create mode 100644 libjava/testsuite/libjava.lang/nested_with_ctor.jar create mode 100644 libjava/testsuite/libjava.lang/newarray_overflow.jar create mode 100644 libjava/testsuite/libjava.lang/override.jar create mode 100644 libjava/testsuite/libjava.lang/pr100.jar create mode 100644 libjava/testsuite/libjava.lang/pr109.jar create mode 100644 libjava/testsuite/libjava.lang/pr13107.jar create mode 100644 libjava/testsuite/libjava.lang/pr13107_2.jar create mode 100644 libjava/testsuite/libjava.lang/pr13107_3.jar create mode 100644 libjava/testsuite/libjava.lang/pr133.jar create mode 100644 libjava/testsuite/libjava.lang/pr16789.jar create mode 100644 libjava/testsuite/libjava.lang/pr17536.jar create mode 100644 libjava/testsuite/libjava.lang/pr179.jar create mode 100644 libjava/testsuite/libjava.lang/pr184.jar create mode 100644 libjava/testsuite/libjava.lang/pr21785.jar create mode 100644 libjava/testsuite/libjava.lang/pr21844.jar create mode 100644 libjava/testsuite/libjava.lang/pr22211.jar create mode 100644 libjava/testsuite/libjava.lang/pr24321.jar create mode 100644 libjava/testsuite/libjava.lang/pr25676.jar create mode 100644 libjava/testsuite/libjava.lang/pr26390.jar create mode 100644 libjava/testsuite/libjava.lang/pr26990.jar create mode 100644 libjava/testsuite/libjava.lang/pr27171.jar create mode 100644 libjava/testsuite/libjava.lang/pr6388.jar create mode 100644 libjava/testsuite/libjava.lang/pr83.jar create mode 100644 libjava/testsuite/libjava.lang/pr8415.jar create mode 100644 libjava/testsuite/libjava.lang/pr8676.jar create mode 100644 libjava/testsuite/libjava.lang/pr8823.jar create mode 100644 libjava/testsuite/libjava.lang/pr8945.jar create mode 100644 libjava/testsuite/libjava.lang/private_direct_read.jar create mode 100644 libjava/testsuite/libjava.lang/private_direct_write.jar create mode 100644 libjava/testsuite/libjava.lang/private_indirect_read.jar create mode 100644 libjava/testsuite/libjava.lang/private_indirect_write.jar create mode 100644 libjava/testsuite/libjava.lang/search_outer.jar create mode 100644 libjava/testsuite/libjava.lang/shatest.jar create mode 100644 libjava/testsuite/libjava.lang/stacktrace.jar create mode 100644 libjava/testsuite/libjava.lang/stringconst.jar delete mode 100644 libjava/testsuite/libjava.lang/stringconst.xfail create mode 100644 libjava/testsuite/libjava.lang/stringconst2.jar create mode 100644 libjava/testsuite/libjava.lang/stub.jar create mode 100644 libjava/testsuite/libjava.lang/test_long.jar create mode 100644 libjava/testsuite/libjava.lang/tmi.jar create mode 100644 libjava/testsuite/libjava.lang/tp.jar create mode 100644 libjava/testsuite/libjava.lang/update_outer.jar create mode 100644 libjava/testsuite/libjava.lang/utf8concat.jar create mode 100644 libjava/testsuite/libjava.lang/utilTest.jar create mode 100644 libjava/testsuite/libjava.lang/verify.jar create mode 100644 libjava/testsuite/libjava.loader/TestEarlyGC.jar create mode 100644 libjava/testsuite/libjava.loader/TestLeak.jar create mode 100644 libjava/testsuite/libjava.loader/TestMultiple.jar create mode 100644 libjava/testsuite/libjava.loader/TestParent.jar create mode 100644 libjava/testsuite/libjava.loader/dummy.class diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index a8aea42a1bd..5776df2c0fa 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,246 @@ +2007-01-09 Andrew Haley + + * expr.c (build_java_arrayaccess): Rewrite to generate array + access in canonical form. + (expand_java_arraystore): Use build_fold_addr_expr() on address of + array access. + +2007-01-03 Andrew Haley + + PR java/28754 + * expr.c (expand_java_field_op): If we're initializing a field's + declaring interface we should not also initialize the class + context in which it was referenced. + +2007-01-02 Tom Tromey + + * java-tree.h (compiling_from_source, current_encoding, + JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE, + JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE, + JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE, + JTI_WFL_OPERATOR): Removed + (finit_identifier_node, instinit_identifier_node, + length_identifier_node, super_identifier_node, + continue_identifier_node, access0_identifier_node, wfl_operator): + Removed. + (cyclic_inheritance_report, + DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND, + DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR, + DECL_FIXED_CONSTRUCTOR_P): Removed. + (struct lang_decl_func) : + Removed. + (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST, + TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed. + (struct lang_type) : Removed. + (java_layout_seen_class_methods, init_jcf_parse, init_src_parse, + cxx_keyword_p): Removed. + (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P, + TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED, + CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P, + IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME, + IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT, + PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P, + CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P, + LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR, + RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P, + IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER, + NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P, + PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P, + CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P, + CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P, + FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT, + BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count, + java_parse_abort_on_error, extract_field_decl): Removed. + (finput): Declare. + * lang.c: (compiling_from_source, current_encoding): Removed. + (java_handle_option): Ignore -fencoding. + * parse.h: Don't include lex.h. + (java_error_count, int_fits_type_p, stabilize_reference, RULE, + RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW, + YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS, + INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS, + INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS, + MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context, + ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class, + CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME, + OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2, + BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P, + JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P, + JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P, + IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS, + MANGLE_OUTER_LOCAL_VARIABLE_NAME, + MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID, + MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING, + SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS, + UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP, + AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION, + AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION, + ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC, + ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED, + LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK, + LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY, + LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, + PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS, + IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE, + ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER, + INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE, + INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL, + JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS, + JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE, + JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct + jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, + JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET, + STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE, + BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL, + EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE, + GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0, + COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND, + BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR, + PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED, + CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT, + CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P, + GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE, + GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC, + GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC, + PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST, + CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST, + CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT, + CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT, + SET_CPC_STATIC_INITIALIZER_STMT, + SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG, + java_complete_class, java_check_circular_reference, + java_fix_constructors, java_layout_classes, java_reorder_fields, + java_method_add_stmt, java_get_line_col, reset_report, + java_init_lex, yyparse, java_parse, yyerror, java_expand_classes, + java_finish_classes, ctxp, ctxp_for_generation, + ctxp_for_generation_last): Removed. + * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR. + * mangle.c (utf8_cmp): New function. + (cxx_keywords): New global. + (cxx_keyword_p): New function. + * jvspec.c (JAVA_START_CHAR): Removed obsolete comment. + * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, + NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR, + CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR, + THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT, + CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed. + * Make-lang.in (java.srcextra): Do nothing. + (parse.c, keyword.h, gt-java-parse.h): Removed targets. + (JAVA_OBJS): Don't mention deleted files. + (java.mostlyclean): Likewise. + (java.clean): Likewise. + (JAVA_LEX_C): Removed. + (buffer.o, check-init.o, parse.o): Remove unused targets. + (typeck.o): Updated. + * jcf-parse.c (read_class): Comment out unused code. + (java_layout_seen_class_methods): New function. + (parse_source_file_1, parse_source_file_2, parse_source_file_3): + Removed. + (java_parse_file): Comment out unused code. Don't use 'ctxp'. + (init_jcf_parse): Removed. + * config-lang.in (gtfiles): Remove deleted files. + * decl.c (java_init_decl_processing): Don't initialize + finit_identifier_node, instinit_identifier_node, + length_identifier_node, super_identifier_node, + continue_identifier_node, access0_identifier_node. Don't call + init_jcf_parse. + * class.c (cyclic_inheritance_report): New global. + (add_method_1): Don't use + DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND. + (maybe_layout_super_class): Comment out code. + (safe_layout_class): New function. + * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR, + DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR, + UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR, + NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR, + INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR. + (java_gimplify_case_expr): Removed. + (java_gimplify_default_expr): Likewise. + (java_gimplify_new_array_init): Likewise. + * parse.y: Removed. + * keyword.gperf, keyword.h: Removed. + * chartables.h: Removed. + * check-init.c: Removed. + * buffer.c, buffer.h: Removed. + * convert.h: Removed. + * gen-table.pl: Removed. + * lex.c, lex.h: Removed. + +2007-01-02 Andrew Haley + + * expr.c (expand_java_arraystore): Make sure we perform a bounds + check at runtime before we perform a type check. + +2006-12-19 Andrew Haley + + * decl.c: Bump minor BC ABI version. + +2006-12-13 Gary Benson + + * jcf-depend.c (jcf_dependency_add_file): Mark filename unused. + +2006-12-12 Tom Tromey + + * lang-specs.h: Pass -M options to jc1. + * jcf-depend.c (jcf_dependency_add_file): Don't emit + dependencies. + +2006-12-07 Mohan Embar + + * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR. + +2006-12-06 Mohan Embar + + * lang-specs.h: Pass '%U'-based options as separate arguments. + +2006-12-05 Tom Tromey + + PR java/29495: + * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and + classes as well. + * class.c (add_field): Handle ACC_SYNTHETIC. + (add_method_1): Likewise. Handle bridge and varargs. + (get_access_flags_from_decl): Handle synthetic, bridge, varargs, + annotation. + (set_class_decl_access_flags): Handle synthetic and annotation. + * java-tree.h (METHOD_BRIDGE): New macro. + (METHOD_VARARGS): Likewise. + (TYPE_SYNTHETIC): Likewise. + (TYPE_ANNOTATION): Likewise. + (lang_type): New fields 'synthetic' and 'annotation'. + (lang_decl_func): New fields 'varargs' and 'bridge'. + +2006-12-04 Andrew Haley + + * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if + there's no map. + +2006-11-29 Gary Benson + + * expr.c (rewrite_arglist_getcaller): Reorder. + +2006-11-29 Andrew Haley + + * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE. + * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE. + +2006-11-23 Andrew Haley + + * expr.c (rewrite_arglist_getcaller): New. + (rewrite_arglist_getclass): Fix indentation. + (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and + gnu.classpath.VMStackWalker.getCallingClassLoader(). + * builtins.c (initialize_builtins): Remove duplicate def'n of + __sync_synchronize. + Add __builtin_return_address. + +2006-11-22 Andrew Haley + + * jcf-reader.c (get_attribute): Mark attr_type unused. + + * builtins.c (compareAndSwapObject_builtin): Fix declaration. + 2007-01-08 Richard Guenther * lex.c (do_java_lex): Use build_int_cst_wide_type. @@ -18,6 +261,346 @@ * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. +2006-11-06 Andrew Haley + + * java-tree.h (CONSTANT_LazyFlag): New. + * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag. + * jcf-parse.c (handle_innerclass_attribute): Write attribute to + reflection_data. + (handle_constant): Return 0 for dummy cpool entries. + Handle constants of kind Class. + Handle constants of kind NameAndType. + (handle_enclosingmethod_attribute): New. + (handle_signature_attribute): New. + (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New. + (HANDLE_SIGNATURE_ATTRIBUTE): New. + (handle_constant): Use unmangle_classname()rather than calling + identifier_subst() directly. + +2006-11-02 Andrew Haley + + * java-tree.h (FIELD_ENUM): New. + (lang_decl_var.field_enum): New. + (lang_type.enum_class): New. + (CLASS_ENUM): New. + * class.c (set_class_decl_access_flags): Handle enum types. + (add_field): Handle enum fields. + (get_access_flags_from_decl): Likewise. + + * class.c (make_class_data): Put reflection_data into rodata. + +2006-11-01 Andrew Haley + + * jcf-parse.c (field_offsets, bit_obstack): New variables. + (jcf_parse): Write end marker to annotation_data. + (java_parse_file): Create field_offsets bitmap. Destroy it. + (annotation_grow, annotation_rewrite_byte) + (annotation_rewrite_short, annotation_rewrite_int) + (annotation_read_short, annotation_write_byte) + (annotation_write_short, annotation_write_int) + (handle_long_constant, handle_constant, handle_element_value) + (handle_annotation, handle_annotations) + (handle_annotation_attribute, rewrite_reflection_indexes) + (handle_member_annotations, handle_parameter_annotations) + (handle_default_annotation): New functions. + (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE) + (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE) + (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) + (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) + (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions. + * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New. + (TYPE_REFLECTION_DATA): New. + (TYPE_REFLECTION_DATASIZE): New. + * jcf.h (enum cpool_tag): Convert a bunch of #define constants to + an enum. + * jcf-reader.c (get_attribute): Pass field/method index and + attribute type to get_attribute(). + * constants.c (find_class_or_string_constant): Make nonstatic. + (cpool_for_class): Likewise. + (build_constants_constructor): Separate string and scalar types. + * class.c (make_class_data): Generate field_indexes permutation. + Pass it to rewrite_reflection_indexes(). + (make_class_data): Generate constructor for reflection_data field. + +2006-10-20 Tom Tromey + + * gcj.texi (Top): Don't mention jv-scan. + (Invoking gcj): Likewise. + (Invoking gcjh): Likewise. + (Invoking gjnih): Likewise. + (Invoking gij): Likewise. + (Invoking gcj-dbtool): Likewise. + (Invoking jv-scan): Removed. + * parse-scan.y: Removed. + * jv-scan.c: Removed. + * config-lang.in (stagestuff): Don't mention jv-scan. + * Make-lang.in (java): Removed jv-scan. + (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise. + (JVSCAN_OBJS): Removed. + (jv-scan$(exeext)): Likewise. + (JAVA_MANFILES): Removed jv-scan.1. + (java.uninstall): Don't mention jv-scan. + (java.mostlyclean): Likewise. + (java.maintainer-clean): Likewise. + (.INTERMEDIATE): Likewise. + (java/jv-scan.o): Removed. + (jv-scan.pod): Likewise. + (java.srcextra): Don't mention parse-scan.c. + (java.mostlyclean): Likewise. + (java/parse-scan.c): Removed. + (java/parse-scan.o-warn): Removed. + (java/parse-scan.o): Removed. + +2006-10-20 Tom Tromey + + * lang.c (java_handle_option): Don't use + jcf_write_base_directory. + * jcf.h (jcf_write_base_directory): Removed. + * parse.y (java_expand_classes): Don't call write_classfile. + * config-lang.in (gtfiles): Removed jcf-write.c. + * Make-lang.in (JAVA_OBJS): Removed jcf-write.o. + (java/jcf-write.o): Removed. + * jcf-parse.c (parse_class_file): Don't call write_classfile. + * java-tree.h (write_classfile): Removed declaration. + * jcf-write.c: Removed. + +2006-10-20 Tom Tromey + + * Make-lang.in (java): Removed gjnih, gcjh. + (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise. + (GCJH_OBJS): Removed. + (GJNIH_OBJS): Likewise. + (gjnih$(exeext)): Likewise. + (gcjh$(exeext)): Likewise. + (JAVA_MANFILES): Removed gcjh.1, gjnih.1. + (java.install-common): Don't special case gcjh. + (java.uninstall): Don't mention gcjh, gjnih. + (java.mostlyclean): Likewise. + (java.maintainer-clean): Likewise. + (.INTERMEDIATE): Likewise. + (gcjh.pod): Removed. + (gjnih.pod): Likewise. + (GCJH_TARGET_INSTALL_NAME): Removed. + (java/gjavah-jni.o): Removed. + (java/gjavah.o): Likewise. + * config-lang.in (stagestuff): Removed gjnih, gcjh. + * gjavah.c: Removed. + +2006-10-17 Tom Tromey + + * jcf-dump.c (print_element_value): Expect a utf8 constant in the + "string" case. + +2006-10-17 Tom Tromey + + * jvgenmain.c (main): Handle -findirect-dispatch. + * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to + jvgenmain. + +2006-10-06 Andrew Haley + + * builtins.c (compareAndSwapInt_builtin): Check that we really do + have a compare_and_swap builtin. + (compareAndSwapLong_builtin): Likewise. + (compareAndSwapObject_builtin): Likewise. + +2006-10-04 Andrew Haley + + * builtins.c (java_builtins): Add compareAndSwapInt, + compareAndSwapLong, compareAndSwapObject, putOrderedInt, + putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile, + putObjectVolatile, getObjectVolatile, getIntVolatile, + getLongVolatile, getLong. + (UNMARSHAL3): New macro. + (UNMARSHAL4): Likewise. + (UNMARSHAL5): Likewise. + (build_arglist_for_builtin): New function. + (build_addr_sum, build_check_this): New functions. + (putObject_builtin. compareAndSwapInt_builtin, + compareAndSwapLong_builtin, compareAndSwapObject_builtin, + putVolatile_builtin, getVolatile_builtin): New builtins. + +2006-06-08 Andrew Haley + + * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to + get_symbol_table_index(). + (maybe_rewrite_invocation): Set SPECIAL if we need to access a + private method. + (build_known_method_ref): New arg: special. Pass it to + get_symbol_table_index. + (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of + the method list. + (build_invokevirtual): New arg: special. Pass it to + get_symbol_table_index. + (expand_invoke): New variable: special. + Pass it to maybe_rewrite_invocation(). + Pass it to build_known_method_ref(). + * class.c (build_symbol_entry): Add new arg: special. Use it to + build the symbol table conbstructor. + (emit_symbol_table): Extract SPECIAL from the method list and pass + it to build_symbol_entry(). + * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set + special accordingly. + +2006-09-08 Andrew Haley + + * class.c (layout_class_method): Use build_java_signature, not + build_java_argument_signature. Use lookup_java_method, not + lookup_argument_method. + +2006-08-16 Jakub Jelinek + Bryce McKinlay + + * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed. + +2006-07-18 Tom Tromey + + * lang.opt: Added missing -W options. + +2006-07-12 Tom Tromey + + PR java/28329: + * lang-specs.h: Pass '%U'-based options as separate arguments. + Use -faux-classpath. + * lang.c (java_handle_option): Handle OPT_faux_classpath. + * lang.opt (faux-classpath): New option. + +2006-07-07 Tom Tromey + + * class.c (make_class_data): Set value for reflection_data field. + * decl.c (java_init_decl_processing): Add reflection_data field. + +2006-07-07 Tom Tromey + + * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals + earlier. + (HANDLE_SIGNATURE_ATTRIBUTE): Likewise. + +2006-07-07 Andrew Haley + + * jcf-parse.c (set_source_filename): Don't check for + CLASS_FROM_CURRENTLY_COMPILED_P. + Remove // comments. + +2006-07-07 Andrew Haley + + * java-tree.h (java_read_sourcefilenames): Declare. + * lang.c (java_handle_option): Call java_read_sourcefilenames(). + * lang.opt (fsource-filename): New opt. + * lang-specs.h: Add -fsource-filename. + * jcf-parse.c (num_files, filenames): New variables. + (reverse, cmpstringp, java_read_sourcefilenames, + find_sourcefile): New. + (set_source_filename): Call find_sourcefile to find the real name + of a source file. + +2006-06-27 Tom Tromey + + * jcf-reader.c (get_attribute): Handle EnclosingMethod, + Signature, LocalVariableTypeTable, annotation attributes. + * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro. + (HANDLE_SIGNATURE_ATTRIBUTE): Likewise. + (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'. + (HANDLE_METHOD): Likewise. + (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro. + (print_annotation): New function. + (print_element_value): Likewise. + (indent): Likewise. + (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro. + (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise. + (print_parameter_annotations): New function. + (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro. + (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): + Likewise. + (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise. + (print_annotations): New function. + +2006-06-23 Tom Tromey + + * lang-specs.h: Default -fsource and -ftarget to 1.5. If + emitting class files, always use 1.5. + * gcj.texi (Input Options): Document -fsource. + (Code Generation): Document -ftarget. + +2006-06-21 Tom Tromey + + PR java/28089: + * expr.c (expand_java_field_op): Initialize field's declaring + class. + +2006-06-20 Tom Tromey + + * expr.c (push_value): Always flush quick stack. + +2006-06-19 Tom Tromey + + * expr.c (push_value): Also flush quick stack if value is a + component_ref. + +2006-06-19 Tom Tromey + + * expr.c (push_value): Flush quick stack if value has side + effects. + +2006-06-13 Tom Tromey + + * class.c (is_compiled_class): Explicitly check for current + class. + +2006-06-09 Tom Tromey + + * gjavah.c (decompile_method): Don't decompile a static field + accessor method. + +2006-06-06 Tom Tromey + + * lang-specs.h : Add .jar file to command line if + -fsaw-java-file. Also, remove -ffilelist-file in this case. + +2006-06-05 Tom Tromey + + * jcf-dump.c (print_access_flags): Handle varargs, bridge, + synthetic, enum, annotation. + * jcf.h (ACC_BRIDGE): New macro. + (ACC_VARARGS): Likewise. + (ACC_SYNTHETIC): Likewise. + (ACC_ENUM): Likewise. + (ACC_ANNOTATION): Likewise. + +2006-06-04 Tom Tromey + + * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options. + * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource, + and -ftarget. + (lang_specific_driver): Removed dead code. Add -fsaw-java-file + when needed. Handle classpath-setting. + * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o. + * lang-specs.h: Rewrote. + +2006-06-04 Tom Tromey + + * jcf-io.c (find_class): Set source_ok to 0. + * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning. + (parse_class_file): Don't call java_mark_class_local. + (java_parse_file): Skip .java files. Call java_mark_class_local + before lowering any code. + (parse_zip_file_entries): Don't call duplicate_class_warning + here. + (process_zip_dir): ... call it here. + * class.c (add_field): Don't mark field external if it is being + compiled into this object. + (make_class_data): Handle situation where class_dtable_decl is + created before Class is compiled. + (is_compiled_class): Don't assume files in zip are compiled into + this object. + (layout_class_method): Don't mark method external if it is being + compiled into this object. + +2006-06-04 Tom Tromey + + * jcf-path.c (jcf_path_compute): New function. + * jcf.h (jcf_path_compute): Declare. + 2006-10-23 Rafael Avila de Espindola * decl.c: Include langhooks.h. diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in index d054053b0f5..f1c347ffeb1 100644 --- a/gcc/java/Make-lang.in +++ b/gcc/java/Make-lang.in @@ -1,6 +1,7 @@ # Top level -*- makefile -*- fragment for the GNU compiler for the Java(TM) # language. -# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007 Free Software Foundation, Inc. #This file is part of GCC. @@ -43,18 +44,15 @@ # Actual names to use when installing a native compiler. JAVA_INSTALL_NAME := $(shell echo gcj|sed '$(program_transform_name)') JAVA_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo gcj|sed '$(program_transform_name)') -GCJH_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo gcjh|sed '$(program_transform_name)') GCJ = gcj # Define the names for selecting java in LANGUAGES. -java: jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) \ - gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext) \ - gjnih$(exeext) +java: jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) jcf-dump$(exeext) # Define the name of target independent tools to be installed in $(bindir) # Names are subject to changes -JAVA_TARGET_INDEPENDENT_BIN_TOOLS = gcjh gjnih jv-scan jcf-dump +JAVA_TARGET_INDEPENDENT_BIN_TOOLS = jcf-dump # Tell GNU make to ignore these if they exist. .PHONY: java @@ -67,55 +65,28 @@ jvspec.o: $(srcdir)/java/jvspec.c $(SYSTEM_H) coretypes.h $(TM_H) \ $(INCLUDES) $(srcdir)/java/jvspec.c $(OUTPUT_OPTION)) # Create the compiler driver for $(GCJ). -$(GCJ)$(exeext): $(GCC_OBJS) jvspec.o version.o \ +$(GCJ)$(exeext): $(GCC_OBJS) jvspec.o java/jcf-path.o version.o \ prefix.o intl.o $(LIBDEPS) $(EXTRA_GCC_OBJS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) jvspec.o \ - prefix.o intl.o version.o $(EXTRA_GCC_OBJS) $(LIBS) + java/jcf-path.o prefix.o intl.o \ + version.o $(EXTRA_GCC_OBJS) $(LIBS) # Create a version of the $(GCJ) driver which calls the cross-compiler. $(GCJ)-cross$(exeext): $(GCJ)$(exeext) -rm -f $(GCJ)-cross$(exeext) cp $(GCJ)$(exeext) $(GCJ)-cross$(exeext) -java.srcextra: java/parse.c java/parse-scan.c - -cp -p $^ $(srcdir)/java - -java/parse.c: java/parse.y - -$(BISON) -t --name-prefix=java_ $(BISONFLAGS) -o $@ $< - -java/parse-scan.c: java/parse-scan.y - -$(BISON) -t $(BISONFLAGS) -o $@ $< - -$(srcdir)/java/keyword.h: $(srcdir)/java/keyword.gperf - (cd $(srcdir)/java || exit 1; \ - gperf -L ANSI-C -C -F ', 0' -p -t -j1 -i 1 -g -o -N java_keyword -k1,4,$$ \ - keyword.gperf > k$$$$.h || { \ - echo "Please update gperf from ftp://ftp.gnu.org/pub/gnu/gperf/" >&2; \ - rm -f k$$$$.h; \ - exit 1; } ; \ - mv -f k$$$$.h keyword.h) - -gt-java-parse.h : s-gtype ; @true +java.srcextra: # Executables built by this Makefile: -JAVA_OBJS = java/parse.o java/class.o java/decl.o java/expr.o \ +JAVA_OBJS = java/class.o java/decl.o java/expr.o \ java/constants.o java/lang.o java/typeck.o java/except.o \ java/verify-glue.o java/verify-impl.o \ java/zextract.o java/jcf-io.o java/win32-host.o java/jcf-parse.o java/mangle.o \ java/mangle_name.o java/builtins.o java/resource.o \ - java/jcf-write.o java/buffer.o java/check-init.o java/jcf-depend.o \ + java/jcf-depend.o \ java/jcf-path.o java/boehm.o java/java-gimplify.o -GCJH_OBJS = java/gjavah.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \ - java/win32-host.o java/zextract.o version.o errors.o ggc-none.o \ - intl.o - -GJNIH_OBJS = java/gjavah-jni.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \ - java/win32-host.o java/zextract.o version.o errors.o \ - ggc-none.o intl.o - -JVSCAN_OBJS = java/parse-scan.o java/jv-scan.o version.o intl.o - JCFDUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \ java/win32-host.o java/zextract.o errors.o version.o ggc-none.o intl.o @@ -128,7 +99,6 @@ java-warn = $(STRICT_WARN) jvspec.o-warn = -Wno-error # Bison-1.75 output often yields (harmless) -Wtraditional warnings -java/parse-scan.o-warn = -Wno-error java/parse.o-warn = -Wno-error jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) attribs.o @@ -136,18 +106,6 @@ jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) attribs.o $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ $(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBICONV) $(LIBS) attribs.o -gcjh$(exeext): $(GCJH_OBJS) $(LIBDEPS) - rm -f $@ - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCJH_OBJS) $(CPPLIBS) $(ZLIB) $(LIBS) - -gjnih$(exeext): $(GJNIH_OBJS) $(LIBDEPS) - rm -f $@ - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GJNIH_OBJS) $(CPPLIBS) $(ZLIB) $(LIBS) - -jv-scan$(exeext): $(JVSCAN_OBJS) $(LIBDEPS) - rm -f $@ - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVSCAN_OBJS) $(LIBICONV) $(LIBS) - jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS) rm -f $@ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \ @@ -179,9 +137,9 @@ java.srcinfo: doc/gcj.info java.dvi: doc/gcj.dvi java.pdf: doc/gcj.pdf java.html: $(build_htmldir)/java/index.html -JAVA_MANFILES = doc/gcj.1 doc/gcjh.1 doc/jv-scan.1 doc/jcf-dump.1 doc/gij.1 \ +JAVA_MANFILES = doc/gcj.1 doc/jcf-dump.1 doc/gij.1 \ doc/jv-convert.1 doc/grmic.1 doc/grmiregistry.1 \ - doc/gcj-dbtool.1 doc/gjnih.1 + doc/gcj-dbtool.1 java.man: $(JAVA_MANFILES) @@ -191,14 +149,10 @@ java.srcman: $(JAVA_MANFILES) check-java : # Install hooks: -# jc1, gcj, jvgenmain, and gcjh are installed elsewhere as part +# jc1, gcj, and jvgenmain are installed elsewhere as part # of $(COMPILERS). # Install gcj as well as the target-independent tools. -# For a native build, we special-case gcjh and also install -# its explicitly-prefixed variant. This allows us to write -# portable makefiles for both cross builds (where gcjh *must* -# be explicitly prefixed) and native builds. java.install-common: installdirs -if [ -f $(GCJ)$(exeext) ]; then \ rm -f $(DESTDIR)$(bindir)/$(JAVA_INSTALL_NAME)$(exeext); \ @@ -218,13 +172,6 @@ java.install-common: installdirs rm -f $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \ $(INSTALL_PROGRAM) $$tool$(exeext) $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \ chmod a+x $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \ - if [ -f $(GCJ)-cross$(exeext) ]; then \ - true; \ - elif [ $$tool = gcjh ]; then \ - rm -f $(DESTDIR)$(bindir)/$(GCJH_TARGET_INSTALL_NAME)$(exeext); \ - ( cd $(DESTDIR)$(bindir) && \ - $(LN) $$tool_transformed_name$(exeext) $(GCJH_TARGET_INSTALL_NAME)$(exeext) ); \ - fi; \ fi ; \ done @@ -233,9 +180,6 @@ java.install-man: java.uninstall: -rm -rf $(DESTDIR)$(bindir)/$(JAVA_INSTALL_NAME)$(exeext) -rm -rf $(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext) - -rm -rf $(DESTDIR)$(man1dir)/gcjh$(man1ext) - -rm -rf $(DESTDIR)$(man1dir)/gjnih$(man1ext) - -rm -rf $(DESTDIR)$(man1dir)/jv-scan$(man1ext) -rm -rf $(DESTDIR)$(man1dir)/jcf-dump$(man1ext) -rm -rf $(DESTDIR)$(man1dir)/gij$(man1ext) -rm -rf $(DESTDIR)$(man1dir)/jv-convert$(man1ext) @@ -249,18 +193,16 @@ java.install-info: $(DESTDIR)$(infodir)/gcj.info # We just have to delete files specific to us. java.mostlyclean: - -rm -f java/parse.c java/parse-scan.c -rm -f java/*$(objext) $(DEMANGLER_PROG) -rm -f java/*$(coverageexts) - -rm -f jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) \ - gjnih$(exeext) jv-scan$(exeext) jcf-dump$(exeext) s-java + -rm -f jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) \ + jcf-dump$(exeext) s-java java.clean: java.distclean: -rm -f java/config.status java/Makefile - -rm -f java/parse.output java/y.tab.c java.maintainer-clean: - -rm -f $(docobjdir)/gcj.1 $(docobjdir)/gcjh.1 $(docobjdir)/gjnih.1 - -rm -f $(docobjdir)/jv-scan.1 $(docobjdir)/jcf-dump.1 + -rm -f $(docobjdir)/gcj.1 + -rm -f $(docobjdir)/jcf-dump.1 -rm -f $(docobjdir)/gij.1 -rm -f $(docobjdir)/jv-convert.1 -rm -f $(docobjdir)/grmic.1 @@ -286,22 +228,14 @@ java.stagefeedback: stageprofile-start # # .o:.h dependencies. JAVA_TREE_H = $(TREE_H) $(HASHTAB_H) java/java-tree.h java/java-tree.def -JAVA_LEX_C = java/lex.c java/keyword.h java/chartables.h java/jcf-dump.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(JAVA_TREE_H) \ java/jcf-dump.c java/jcf-reader.c java/jcf.h java/javaop.h java/javaop.def \ version.h $(GGC_H) intl.h -java/gjavah.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(JAVA_TREE_H) \ - java/gjavah.c java/jcf-reader.c java/jcf.h java/javaop.h version.h $(GGC_H) \ - intl.h java/boehm.o: java/boehm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(TREE_H) $(JAVA_TREE_H) java/parse.h toplev.h -java/buffer.o: java/buffer.c $(CONFIG_H) java/buffer.h $(SYSTEM_H) coretypes.h \ - $(TM_H) toplev.h java/builtins.o: java/builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(JAVA_TREE_H) $(GGC_H) $(FLAGS_H) langhooks.h gt-java-builtins.h -java/check-init.o: java/check-init.c $(CONFIG_H) $(JAVA_TREE_H) $(SYSTEM_H) \ - coretypes.h $(TM_H) toplev.h java/class.o: java/class.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \ $(TARGET_H) $(FUNCTION_H) gt-java-class.h $(CGRAPH_H) @@ -323,11 +257,6 @@ java/jcf-depend.o: java/jcf-depend.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ java/jcf-parse.o: java/jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) $(FLAGS_H) \ input.h java/java-except.h $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \ java/parse.h $(GGC_H) debug.h $(REAL_H) gt-java-jcf-parse.h $(TM_P_H) -java/jcf-write.o: java/jcf-write.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \ - $(RTL_H) java/java-opcodes.h java/parse.h java/buffer.h $(SYSTEM_H) \ - coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-jcf-write.h $(TM_P_H) -java/jv-scan.o: java/jv-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ - version.h intl.h java/jvgenmain.o: java/jvgenmain.c $(CONFIG_H) $(JAVA_TREE_H) $(SYSTEM_H) \ coretypes.h $(TM_H) intl.h java/lang.o: java/lang.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h input.h \ @@ -341,7 +270,7 @@ java/resource.o: java/resource.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \ $(TARGET_H) $(FUNCTION_H) gt-java-resource.h $(EXPR_H) java/typeck.o: java/typeck.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \ - java/convert.h toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) $(REAL_H) + toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) $(REAL_H) java/win32-host.o: java/win32-host.c $(CONFIG_H) $(SYSTEM_H) coretypes.h java/jcf.h java/verify-glue.o: java/verify-glue.c $(CONFIG_H) $(SYSTEM_H) $(JAVA_TREE_H) \ coretypes.h $(TM_H) java/verify.h toplev.h @@ -352,13 +281,6 @@ java/zextract.o: java/zextract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ java/java-gimplify.o: java/java-gimplify.c $(CONFIG_H) $(SYSTEM_H) \ coretypes.h $(TM_H) $(JAVA_TREE_H) $(TREE_GIMPLE_H) toplev.h -java/parse-scan.o: java/parse-scan.c $(CONFIG_H) $(SYSTEM_H) \ - coretypes.h $(TM_H) toplev.h $(JAVA_LEX_C) java/parse.h java/lex.h input.h -java/parse.o: java/parse.c java/jcf-reader.c $(CONFIG_H) $(SYSTEM_H) \ - coretypes.h $(TM_H) $(FUNCTION_H) $(JAVA_TREE_H) $(JAVA_LEX_C) java/parse.h \ - java/lex.h input.h $(GGC_H) debug.h gt-java-parse.h gtype-java.h $(TARGET_H) \ - $(TREE_DUMP_H) - # jcf-io.o needs $(ZLIBINC) added to cflags. java/jcf-io.o: java/jcf-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(JAVA_TREE_H) @@ -373,14 +295,6 @@ java/jcf-path.o: java/jcf-path.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ -DDEFAULT_TARGET_VERSION=\"$(version)\" \ $(srcdir)/java/jcf-path.c $(OUTPUT_OPTION) -# create gjnih's object -java/gjavah-jni.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(JAVA_TREE_H) \ - java/gjavah.c java/jcf-reader.c java/jcf.h java/javaop.h version.h $(GGC_H) \ - intl.h - $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(ZLIBINC) \ - -DJNI_DEFAULT=1 \ - $(srcdir)/java/gjavah.c $(OUTPUT_OPTION) - TEXI_JAVA_FILES = java/gcj.texi $(gcc_docdir)/include/fdl.texi \ $(gcc_docdir)/include/gpl.texi $(gcc_docdir)/include/gcc-common.texi \ gcc-vers.texi @@ -403,17 +317,11 @@ $(build_htmldir)/java/index.html: $(TEXI_JAVA_FILES) rm -f $(@D)/* $(TEXI2HTML) -I $(gcc_docdir)/include -I $(srcdir)/java -o $(@D) $< -.INTERMEDIATE: gcj.pod gcjh.pod jv-scan.pod jcf-dump.pod gij.pod \ - jv-convert.pod grmic.pod grmiregistry.pod gcj-dbtool.pod gjnih.pod +.INTERMEDIATE: gcj.pod jcf-dump.pod gij.pod \ + jv-convert.pod grmic.pod grmiregistry.pod gcj-dbtool.pod gcj.pod: java/gcj.texi -$(TEXI2POD) -D gcj < $< > $@ -gcjh.pod: java/gcj.texi - -$(TEXI2POD) -D gcjh < $< > $@ -gjnih.pod: java/gcj.texi - -$(TEXI2POD) -D gjnih < $< > $@ -jv-scan.pod: java/gcj.texi - -$(TEXI2POD) -D jv-scan < $< > $@ jcf-dump.pod: java/gcj.texi -$(TEXI2POD) -D jcf-dump < $< > $@ gij.pod: java/gcj.texi diff --git a/gcc/java/buffer.c b/gcc/java/buffer.c deleted file mode 100644 index 996dac78585..00000000000 --- a/gcc/java/buffer.c +++ /dev/null @@ -1,51 +0,0 @@ -/* A "buffer" utility type. - Copyright (C) 1998, 2003 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* Written by Per Bothner , July 1998. */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "buffer.h" - -/* Grow BUFP so there is room for at least SIZE more bytes. */ - -void -buffer_grow (struct buffer *bufp, int size) -{ - if (bufp->limit - bufp->ptr >= size) - return; - if (bufp->data == 0) - { - if (size < 120) - size = 120; - bufp->data = XNEWVEC (unsigned char, size); - bufp->ptr = bufp->data; - } - else - { - int index = bufp->ptr - bufp->data; - size += 2 * (bufp->limit - bufp->data); - bufp->data = xrealloc (bufp->data, size); - bufp->ptr = bufp->data + index; - } - bufp->limit = bufp->data + size; -} diff --git a/gcc/java/buffer.h b/gcc/java/buffer.h deleted file mode 100644 index c74cc28a9ef..00000000000 --- a/gcc/java/buffer.h +++ /dev/null @@ -1,46 +0,0 @@ -/* A "buffer" utility type. - Copyright (C) 1998, 2000, 2003 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* Written by Per Bothner , July 1998. */ - -/* A simple data structure for an expandable buffer. */ - -struct buffer -{ - /* The start of the actual data buffer. */ - unsigned char *data; - - /* Where to write next in the buffer. */ - unsigned char *ptr; - - /* The end of the allocated data buffer. */ - unsigned char *limit; -}; - -#define NULL_BUFFER { (void*) 0, (void*) 0, (void*) 0 } - -#define BUFFER_INIT(BUFP) \ - ((BUFP)->data = NULL, (BUFP)->ptr = NULL, (BUFP)->limit = NULL) - -#define BUFFER_LENGTH(BUFP) ((BUFP)->ptr - (BUFP)->data) - -#define BUFFER_RESET(BUFP) ((BUFP)->ptr = (BUFP)->data) - -extern void buffer_grow (struct buffer*, int); diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c index 77936395cbb..9f2290011da 100644 --- a/gcc/java/builtins.c +++ b/gcc/java/builtins.c @@ -34,7 +34,12 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "flags.h" #include "langhooks.h" #include "java-tree.h" - +#include +#include "convert.h" +#include "rtl.h" +#include "insn-codes.h" +#include "expr.h" +#include "optabs.h" static tree max_builtin (tree, tree); static tree min_builtin (tree, tree); @@ -43,6 +48,13 @@ static tree convert_real (tree, tree); static tree java_build_function_call_expr (tree, tree); +static tree putObject_builtin (tree, tree); +static tree compareAndSwapInt_builtin (tree, tree); +static tree compareAndSwapLong_builtin (tree, tree); +static tree compareAndSwapObject_builtin (tree, tree); +static tree putVolatile_builtin (tree, tree); +static tree getVolatile_builtin (tree, tree); + /* Functions of this type are used to inline a given call. Such a @@ -90,6 +102,25 @@ static GTY(()) struct builtin_record java_builtins[] = { { "java.lang.Double" }, { "longBitsToDouble" }, convert_real, 0 }, { { "java.lang.Float" }, { "floatToRawIntBits" }, convert_real, 0 }, { { "java.lang.Double" }, { "doubleToRawLongBits" }, convert_real, 0 }, + { { "sun.misc.Unsafe" }, { "putInt" }, putObject_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putLong" }, putObject_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putObject" }, putObject_builtin, 0}, + { { "sun.misc.Unsafe" }, { "compareAndSwapInt" }, + compareAndSwapInt_builtin, 0}, + { { "sun.misc.Unsafe" }, { "compareAndSwapLong" }, + compareAndSwapLong_builtin, 0}, + { { "sun.misc.Unsafe" }, { "compareAndSwapObject" }, + compareAndSwapObject_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putOrderedInt" }, putVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putOrderedLong" }, putVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putOrderedObject" }, putVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putIntVolatile" }, putVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putLongVolatile" }, putVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "putObjectVolatile" }, putVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "getObjectVolatile" }, getVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "getIntVolatile" }, getVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "getLongVolatile" }, getVolatile_builtin, 0}, + { { "sun.misc.Unsafe" }, { "getLong" }, getVolatile_builtin, 0}, { { NULL }, { NULL }, NULL, END_BUILTINS } }; @@ -145,6 +176,265 @@ convert_real (tree method_return_type, tree method_arguments) +/* Provide builtin support for atomic operations. These are + documented at length in libjava/sun/misc/Unsafe.java. */ + +/* FIXME. There are still a few things wrong with this logic. In + particular, atomic writes of multi-word integers are not truly + atomic: this requires more work. + + In general, double-word compare-and-swap cannot portably be + implemented, so we need some kind of fallback for 32-bit machines. + +*/ + + +/* Macros to unmarshal arguments from a TREE_LIST into a few + variables. We also convert the offset arg from a long to an + integer that is the same size as a pointer. */ + +#define UNMARSHAL3(METHOD_ARGUMENTS) \ +tree this_arg, obj_arg, offset_arg; \ +do \ +{ \ + tree chain = METHOD_ARGUMENTS; \ + this_arg = TREE_VALUE (chain); \ + chain = TREE_CHAIN (chain); \ + obj_arg = TREE_VALUE (chain); \ + chain = TREE_CHAIN (chain); \ + offset_arg = fold_convert (java_type_for_size (POINTER_SIZE, 0), \ + TREE_VALUE (chain)); \ +} \ +while (0) + +#define UNMARSHAL4(METHOD_ARGUMENTS) \ +tree value_type, this_arg, obj_arg, offset_arg, value_arg; \ +do \ +{ \ + tree chain = METHOD_ARGUMENTS; \ + this_arg = TREE_VALUE (chain); \ + chain = TREE_CHAIN (chain); \ + obj_arg = TREE_VALUE (chain); \ + chain = TREE_CHAIN (chain); \ + offset_arg = fold_convert (java_type_for_size (POINTER_SIZE, 0), \ + TREE_VALUE (chain)); \ + chain = TREE_CHAIN (chain); \ + value_arg = TREE_VALUE (chain); \ + value_type = TREE_TYPE (value_arg); \ +} \ +while (0) + +#define UNMARSHAL5(METHOD_ARGUMENTS) \ +tree value_type, this_arg, obj_arg, offset_arg, expected_arg, value_arg; \ +do \ +{ \ + tree chain = METHOD_ARGUMENTS; \ + this_arg = TREE_VALUE (chain); \ + chain = TREE_CHAIN (chain); \ + obj_arg = TREE_VALUE (chain); \ + chain = TREE_CHAIN (chain); \ + offset_arg = fold_convert (java_type_for_size (POINTER_SIZE, 0), \ + TREE_VALUE (chain)); \ + chain = TREE_CHAIN (chain); \ + expected_arg = TREE_VALUE (chain); \ + chain = TREE_CHAIN (chain); \ + value_arg = TREE_VALUE (chain); \ + value_type = TREE_TYPE (value_arg); \ +} \ +while (0) + +/* Construct an arglist from a call. */ + +static tree +build_arglist_for_builtin (tree arg, ...) +{ + va_list ap; + tree nextarg; + tree newarglist = build_tree_list (NULL_TREE, arg); + + va_start(ap, arg); + while ((nextarg = va_arg(ap, tree))) + newarglist = tree_cons (NULL_TREE, nextarg, newarglist); + + return nreverse (newarglist); +} + +/* Add an address to an offset, forming a sum. */ + +static tree +build_addr_sum (tree type, tree addr, tree offset) +{ + tree ptr_type = build_pointer_type (type); + return fold_build2 (PLUS_EXPR, + ptr_type, + fold_convert (ptr_type, addr), offset); +} + +/* Make sure that this-arg is non-NULL. This is a security check. */ + +static tree +build_check_this (tree stmt, tree this_arg) +{ + return build2 (COMPOUND_EXPR, TREE_TYPE (stmt), + java_check_reference (this_arg, 1), stmt); +} + +/* Now the builtins. These correspond to the primitive functions in + libjava/sun/misc/natUnsafe.cc. */ + +static tree +putObject_builtin (tree method_return_type ATTRIBUTE_UNUSED, + tree method_arguments) +{ + tree addr, stmt; + UNMARSHAL4 (method_arguments); + + addr = build_addr_sum (value_type, obj_arg, offset_arg); + stmt = fold_build2 (MODIFY_EXPR, value_type, + build_java_indirect_ref (value_type, addr, + flag_check_references), + value_arg); + + return build_check_this (stmt, this_arg); +} + +static tree +compareAndSwapInt_builtin (tree method_return_type ATTRIBUTE_UNUSED, + tree method_arguments) +{ + enum machine_mode mode = TYPE_MODE (int_type_node); + if (sync_compare_and_swap_cc[mode] != CODE_FOR_nothing + || sync_compare_and_swap[mode] != CODE_FOR_nothing) + { + tree newarglist, addr, stmt; + UNMARSHAL5 (method_arguments); + + addr = build_addr_sum (int_type_node, obj_arg, offset_arg); + + newarglist + = build_arglist_for_builtin (addr, expected_arg, value_arg, NULL_TREE); + stmt = (build_function_call_expr + (built_in_decls[BUILT_IN_BOOL_COMPARE_AND_SWAP_4], + newarglist)); + + return build_check_this (stmt, this_arg); + } + return NULL_TREE; +} + +static tree +compareAndSwapLong_builtin (tree method_return_type ATTRIBUTE_UNUSED, + tree method_arguments) +{ + enum machine_mode mode = TYPE_MODE (long_type_node); + if (sync_compare_and_swap_cc[mode] != CODE_FOR_nothing + || sync_compare_and_swap[mode] != CODE_FOR_nothing) + { + tree newarglist, addr, stmt; + UNMARSHAL5 (method_arguments); + + addr = build_addr_sum (long_type_node, obj_arg, offset_arg); + + newarglist + = build_arglist_for_builtin (addr, expected_arg, value_arg, NULL_TREE); + stmt = (build_function_call_expr + (built_in_decls[BUILT_IN_BOOL_COMPARE_AND_SWAP_8], + newarglist)); + + return build_check_this (stmt, this_arg); + } + return NULL_TREE; +} +static tree +compareAndSwapObject_builtin (tree method_return_type ATTRIBUTE_UNUSED, + tree method_arguments) +{ + enum machine_mode mode = TYPE_MODE (ptr_type_node); + if (sync_compare_and_swap_cc[mode] != CODE_FOR_nothing + || sync_compare_and_swap[mode] != CODE_FOR_nothing) + { + tree newarglist, addr, stmt; + int builtin; + + UNMARSHAL5 (method_arguments); + builtin = (POINTER_SIZE == 32 + ? BUILT_IN_BOOL_COMPARE_AND_SWAP_4 + : BUILT_IN_BOOL_COMPARE_AND_SWAP_8); + + addr = build_addr_sum (value_type, obj_arg, offset_arg); + + newarglist + = build_arglist_for_builtin (addr, expected_arg, value_arg, NULL_TREE); + stmt = (build_function_call_expr + (built_in_decls[builtin], + newarglist)); + + return build_check_this (stmt, this_arg); + } + return NULL_TREE; +} + +static tree +putVolatile_builtin (tree method_return_type ATTRIBUTE_UNUSED, + tree method_arguments) +{ + tree newarglist, addr, stmt, modify_stmt; + UNMARSHAL4 (method_arguments); + + addr = build_addr_sum (value_type, obj_arg, offset_arg); + addr + = fold_convert (build_pointer_type (build_type_variant (value_type, 0, 1)), + addr); + + newarglist = NULL_TREE; + stmt = (build_function_call_expr + (built_in_decls[BUILT_IN_SYNCHRONIZE], + newarglist)); + modify_stmt = fold_build2 (MODIFY_EXPR, value_type, + build_java_indirect_ref (value_type, addr, + flag_check_references), + value_arg); + stmt = build2 (COMPOUND_EXPR, TREE_TYPE (modify_stmt), + stmt, modify_stmt); + + return build_check_this (stmt, this_arg); +} + +static tree +getVolatile_builtin (tree method_return_type ATTRIBUTE_UNUSED, + tree method_arguments) +{ + tree newarglist, addr, stmt, modify_stmt, tmp; + UNMARSHAL3 (method_arguments); + + addr = build_addr_sum (method_return_type, obj_arg, offset_arg); + addr + = fold_convert (build_pointer_type (build_type_variant + (method_return_type, 0, 1)), addr); + + newarglist = NULL_TREE; + stmt = (build_function_call_expr + (built_in_decls[BUILT_IN_SYNCHRONIZE], + newarglist)); + + tmp = build_decl (VAR_DECL, NULL, method_return_type); + DECL_IGNORED_P (tmp) = 1; + DECL_ARTIFICIAL (tmp) = 1; + pushdecl (tmp); + + modify_stmt = fold_build2 (MODIFY_EXPR, method_return_type, + tmp, + build_java_indirect_ref (method_return_type, addr, + flag_check_references)); + + stmt = build2 (COMPOUND_EXPR, void_type_node, modify_stmt, stmt); + stmt = build2 (COMPOUND_EXPR, method_return_type, stmt, tmp); + + return stmt; +} + + + #define BUILTIN_NOTHROW 1 #define BUILTIN_CONST 2 /* Define a single builtin. */ @@ -258,10 +548,27 @@ initialize_builtins (void) boolean_ftype_boolean_boolean, "__builtin_expect", BUILTIN_CONST | BUILTIN_NOTHROW); - + define_builtin (BUILT_IN_BOOL_COMPARE_AND_SWAP_4, + "__sync_bool_compare_and_swap_4", + build_function_type_list (boolean_type_node, + int_type_node, + build_pointer_type (int_type_node), + int_type_node, NULL_TREE), + "__sync_bool_compare_and_swap_4", 0); + define_builtin (BUILT_IN_BOOL_COMPARE_AND_SWAP_8, + "__sync_bool_compare_and_swap_8", + build_function_type_list (boolean_type_node, + long_type_node, + build_pointer_type (long_type_node), + int_type_node, NULL_TREE), + "__sync_bool_compare_and_swap_8", 0); define_builtin (BUILT_IN_SYNCHRONIZE, "__sync_synchronize", build_function_type (void_type_node, void_list_node), "__sync_synchronize", BUILTIN_NOTHROW); + + define_builtin (BUILT_IN_RETURN_ADDRESS, "__builtin_return_address", + build_function_type_list (ptr_type_node, int_type_node, NULL_TREE), + "__builtin_return_address", BUILTIN_NOTHROW); build_common_builtin_nodes (); } diff --git a/gcc/java/chartables.h b/gcc/java/chartables.h deleted file mode 100644 index 7cb5f86cb62..00000000000 --- a/gcc/java/chartables.h +++ /dev/null @@ -1,3219 +0,0 @@ -/* This file is automatically generated. DO NOT EDIT! - Instead, edit gen-table.pl and re-run. */ - -#ifndef GCC_CHARTABLES_H -#define GCC_CHARTABLES_H - -#define LETTER_START 1 -#define LETTER_PART 2 -#define LETTER_SPACE 4 - -#define LETTER_MASK 7 - -static const char page0[256] = { - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, - (LETTER_SPACE), 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_SPACE), (LETTER_SPACE), (LETTER_SPACE), - (LETTER_SPACE), (LETTER_SPACE), 0, 0, 0, (LETTER_START | LETTER_PART), 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART) -}; - -static const char page2[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0 -}; - -static const char page3[256] = { - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page4[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0 -}; - -static const char page5[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), 0, - (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page6[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0 -}; - -static const char page7[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page9[256] = { - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_PART), 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, (LETTER_PART), (LETTER_PART), 0, 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), 0, - 0, 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page10[256] = { - 0, 0, (LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_PART), 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), 0, - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, - 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page11[256] = { - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, (LETTER_PART), - (LETTER_PART), 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, - 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 -}; - -static const char page12[256] = { - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), - (LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), 0, 0, 0, - 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 -}; - -static const char page13[256] = { - 0, 0, (LETTER_PART), (LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_PART), 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, (LETTER_PART), 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page14[256] = { - 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, (LETTER_PART), (LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page15[256] = { - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), 0, (LETTER_PART), 0, - (LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, (LETTER_PART), (LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page16[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, - 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page17[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0 -}; - -static const char page18[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART) -}; - -static const char page19[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page20[256] = { - 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART) -}; - -static const char page22[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_SPACE), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 -}; - -static const char page23[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, - 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0 -}; - -static const char page24[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, - 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 -}; - -static const char page30[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0 -}; - -static const char page31[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0 -}; - -static const char page32[256] = { - (LETTER_SPACE), (LETTER_SPACE), (LETTER_SPACE), (LETTER_SPACE), - (LETTER_SPACE), (LETTER_SPACE), (LETTER_SPACE), 0, (LETTER_SPACE), - (LETTER_SPACE), (LETTER_SPACE), (LETTER_SPACE), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_SPACE), (LETTER_SPACE), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, 0, 0, 0, - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page33[256] = { - 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 -}; - -static const char page48[256] = { - (LETTER_SPACE), 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), 0, - 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0 -}; - -static const char page49[256] = { - 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page52[256] = { - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page77[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART) -}; - -static const char page78[256] = { - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page159[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page164[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART) -}; - -static const char page172[256] = { - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page215[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char page250[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0 -}; - -static const char page251[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_PART), (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART) -}; - -static const char page253[256] = { - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0 -}; - -static const char page254[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, (LETTER_PART) -}; - -static const char page255[256] = { - 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), (LETTER_PART), - 0, 0, 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, (LETTER_START | LETTER_PART), 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), 0, 0, - (LETTER_START | LETTER_PART), (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, (LETTER_START | LETTER_PART), - (LETTER_START | LETTER_PART), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static const char *const type_table[256] = { - page0, - (char *) (LETTER_START | LETTER_PART), - page2, - page3, - page4, - page5, - page6, - page7, - (char *) 0, - page9, - page10, - page11, - page12, - page13, - page14, - page15, - page16, - page17, - page18, - page19, - page20, - (char *) (LETTER_START | LETTER_PART), - page22, - page23, - page24, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - page30, - page31, - page32, - page33, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - page48, - page49, - (char *) 0, - (char *) 0, - page52, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - page77, - page78, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - page159, - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - page164, - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - (char *) (LETTER_START | LETTER_PART), - page172, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - page215, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) 0, - (char *) (LETTER_START | LETTER_PART), - page250, - page251, - (char *) (LETTER_START | LETTER_PART), - page253, - page254, - page255 -}; - -#endif /* ! GCC_CHARTABLES_H */ diff --git a/gcc/java/check-init.c b/gcc/java/check-init.c deleted file mode 100644 index 4aca9926a81..00000000000 --- a/gcc/java/check-init.c +++ /dev/null @@ -1,1032 +0,0 @@ -/* Code to test for "definitive [un]assignment". - Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2006 Free Software Foundation, - Inc. - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -/* Written by Per Bothner , January 1999. */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "tree.h" -#include "flags.h" /* Needed for optimize. */ -#include "java-tree.h" -#include "toplev.h" /* Needed for fatal. */ - -/* The basic idea is that we assign each local variable declaration - and each blank final field an index, and then we pass around - bitstrings, where the (2*i)'th bit is set if decl whose DECL_BIT_INDEX - is i is definitely assigned, and the (2*i=1)'th bit is set if - decl whose DECL_BIT_INDEX is i is definitely unassigned */ - -/* One segment of a bitstring. */ -typedef unsigned int word; - -/* Pointer to a bitstring. */ -typedef word *words; - -/* Number of locals variables currently active. */ -static int num_current_locals = 0; - -/* The value of num_current_locals when we entered the closest - enclosing LOOP_EXPR. */ -static int loop_current_locals; - -/* The index of the first local variable in the current block. - - The variables whose DECL_BIT_INDEX are in the range from - start_current_locals (inclusive) up to num_current_locals (exclusive) - are declared in the "current" block. If there is a loop or branch - form, we set start_current_locals to num_current_locals to indicate - there is no current block. - - The point is that if a variable in the current block is set, - there are no other control paths that we have to worry about. - Hence, we can remove it from the set of variables we are - checking, making its bit index available for some other variable. - For simplicity, we only do that if the variable's bit index - is (num_current_locals-1); freeing up its bit index is then - just a simple matter of decrementing num_current_locals. - The reason this is worth doing is that it is simple, and - allows us to use short (usually one-word) bit-strings, - even for methods with thousands of local variables, as - long as most of them are initialized immediately after or in - their declaration. */ -static int start_current_locals = 0; - -static int num_current_words; - -#define COPYN(DST, SRC, NWORDS) memcpy (DST, SRC, NWORDS * sizeof(word)) -#define COPY(DST, SRC) COPYN (DST, SRC, num_current_words) - -#define SET_ALL(DST) memset (DST, ~0, num_current_words * sizeof(word)) -#define CLEAR_ALL(DST) memset (DST, 0, num_current_words * sizeof(word)) - -#define INTERSECTN(DST, SRC1, SRC2, N) \ - do { int n = N; \ - while (--n >= 0) DST[n] = SRC1[n] & SRC2[n]; \ - } while (0) - -#define UNION(DST, SRC1, SRC2) \ - UNIONN (DST, SRC1, SRC2, num_current_words) - -#define UNIONN(DST, SRC1, SRC2, N) \ - do { int n = N; \ - while (--n >= 0) DST[n] = SRC1[n] | SRC2[n]; \ - } while (0) - -#define INTERSECT(DST, SRC1, SRC2) \ - INTERSECTN (DST, SRC1, SRC2, num_current_words) - -#define WORD_SIZE ((unsigned int)(sizeof(word) * BITS_PER_UNIT)) - -static void check_bool_init (tree, words, words, words); -static void check_init (tree, words); -static void check_cond_init (tree, tree, tree, words, words, words); -static void check_bool2_init (enum tree_code, tree, tree, words, words, words); -struct alternatives; -static void done_alternative (words, struct alternatives *); -static tree get_variable_decl (tree); -static void final_assign_error (tree); -static void check_final_reassigned (tree, words); - -#define ALLOC_WORDS(NUM) (xmalloc ((NUM) * sizeof (word))) -#define FREE_WORDS(PTR) (free (PTR)) - -/* DECLARE_BUFFERS is used to allocate NUMBUFFER bit sets, each of - which is an array of length num_current_words number of words. - Declares a new local variable BUFFER to hold the result (or rather - a pointer to the first of the bit sets). In almost all cases - num_current_words will be 1 or at most 2, so we try to stack - allocate the arrays in that case, using a stack array - named BUFFER##_short. Each DECLARE_BUFFERS must be matched by - a corresponding RELEASE_BUFFERS to avoid memory leaks. */ - -#define DECLARE_BUFFERS(BUFFER, NUMBUFFERS) \ - word BUFFER##_short[2 * NUMBUFFERS]; \ - words BUFFER = ALLOC_BUFFER(BUFFER##_short, NUMBUFFERS * num_current_words) - -#define RELEASE_BUFFERS(BUFFER) \ - FREE_BUFFER(BUFFER, BUFFER##_short) - -#define ALLOC_BUFFER(SHORTBUFFER, NUMWORDS) \ - ((NUMWORDS) * sizeof(word) <= sizeof(SHORTBUFFER) ? SHORTBUFFER \ - : ALLOC_WORDS(NUMWORDS)) - -#define FREE_BUFFER(BUFFER, SHORTBUFFER) \ - if (BUFFER != SHORTBUFFER) FREE_WORDS(BUFFER) - -#define SET_P(WORDS, BIT) \ - (WORDS[(BIT) / WORD_SIZE] & (1 << ((BIT) % WORD_SIZE))) - -#define CLEAR_BIT(WORDS, BIT) \ - (WORDS[(BIT) / WORD_SIZE] &= ~ (1 << ((BIT) % WORD_SIZE))) - -#define SET_BIT(WORDS, BIT) \ - (WORDS[(BIT) / WORD_SIZE] |= (1 << ((BIT) % WORD_SIZE))) - -#define WORDS_NEEDED(BITS) (((BITS)+(WORD_SIZE-1))/(WORD_SIZE)) - -#define ASSIGNED_P(WORDS, BIT) SET_P(WORDS, 2 * (BIT)) -#define UNASSIGNED_P(WORDS, BIT) SET_P(WORDS, 2 * (BIT) + 1) - -#define SET_ASSIGNED(WORDS, INDEX) SET_BIT (WORDS, 2 * (INDEX)) -#define SET_UNASSIGNED(WORDS, INDEX) SET_BIT (WORDS, 2 * (INDEX) + 1) - -#define CLEAR_ASSIGNED(WORDS, INDEX) CLEAR_BIT (WORDS, 2 * (INDEX)) -#define CLEAR_UNASSIGNED(WORDS, INDEX) CLEAR_BIT (WORDS, 2 * (INDEX) + 1) - -/* Get the "interesting" declaration from a MODIFY_EXPR or COMPONENT_REF. - Return the declaration or NULL_TREE if no interesting declaration. */ - -static tree -get_variable_decl (tree exp) -{ - /* A static field can be wrapped in a COMPOUND_EXPR where the first - argument initializes the class. */ - if (TREE_CODE (exp) == COMPOUND_EXPR) - exp = extract_field_decl (exp); - - if (TREE_CODE (exp) == VAR_DECL) - { - if (! TREE_STATIC (exp) || FIELD_FINAL (exp)) - return exp; - } - /* We only care about final parameters. */ - else if (TREE_CODE (exp) == PARM_DECL) - { - if (DECL_FINAL (exp)) - return exp; - } - /* See if exp is this.field. */ - else if (TREE_CODE (exp) == COMPONENT_REF) - { - tree op0 = TREE_OPERAND (exp, 0); - tree op1 = TREE_OPERAND (exp, 1); - tree mdecl = current_function_decl; - if (TREE_CODE (op0) == INDIRECT_REF - && TREE_CODE (op1) == FIELD_DECL - && ! METHOD_STATIC (mdecl) - && FIELD_FINAL (op1)) - { - op0 = TREE_OPERAND (op0, 0); - if (op0 == BLOCK_EXPR_DECLS (DECL_FUNCTION_BODY (mdecl))) - return op1; - } - } - else if (TREE_CODE (exp) == INDIRECT_REF) - { - /* For indirect dispatch, look for an expression of the form - (indirect_ref (+ (array_ref otable ) this)). - FIXME: it would probably be better to generate a JAVA_FIELD_REF - expression that gets converted to OTABLE access at - gimplification time. */ - exp = TREE_OPERAND (exp, 0); - if (TREE_CODE (exp) == PLUS_EXPR) - { - tree op0 = TREE_OPERAND (exp, 0); - STRIP_NOPS (op0); - if (TREE_CODE (op0) == ARRAY_REF) - { - tree table = TREE_OPERAND (op0, 0); - if (TREE_CODE (table) == VAR_DECL - && DECL_LANG_SPECIFIC (table) - && DECL_OWNER (table) - && TYPE_OTABLE_DECL (DECL_OWNER (table)) == table) - { - HOST_WIDE_INT index - = TREE_INT_CST_LOW (TREE_OPERAND (op0, 1)); - tree otable_methods - = TYPE_OTABLE_METHODS (DECL_OWNER (table)); - tree element; - for (element = otable_methods; - element; - element = TREE_CHAIN (element)) - { - if (index == 1) - { - tree purpose = TREE_PURPOSE (element); - if (TREE_CODE (purpose) == FIELD_DECL) - return purpose; - else - return NULL_TREE; - } - --index; - } - } - } - } - } - - return NULL_TREE; -} - -static void -final_assign_error (tree name) -{ - error ("Can't reassign a value to the final variable %qs", - IDENTIFIER_POINTER (name)); -} - -static void -check_final_reassigned (tree decl, words before) -{ - int index = DECL_BIT_INDEX (decl); - /* A final local already assigned or a final parameter - assigned must be reported as errors */ - if (DECL_FINAL (decl) && index != -2 - && (index < loop_current_locals /* I.e. -1, or outside current loop. */ - || (DECL_LOCAL_FINAL_IUD (decl) ? ASSIGNED_P (before, index) - : ! UNASSIGNED_P (before, index)))) - { - final_assign_error (DECL_NAME (decl)); - } -} - -/* Check a conditional form (TEST_EXP ? THEN_EXP : ELSE_EXP) for - definite [un]assignment. - BEFORE, WHEN_FALSE, and WHEN_TRUE are as in check_bool_init. */ - -static void -check_cond_init (tree test_exp, tree then_exp, tree else_exp, - words before, words when_false, words when_true) -{ - int save_start_current_locals = start_current_locals; - DECLARE_BUFFERS(test_false, 6); - words test_true = test_false + num_current_words; - words then_false = test_true + num_current_words; - words then_true = then_false + num_current_words; - words else_false = then_true + num_current_words; - words else_true = else_false + num_current_words; - start_current_locals = num_current_locals; - - check_bool_init (test_exp, before, test_false, test_true); - check_bool_init (then_exp, test_true, then_false, then_true); - check_bool_init (else_exp, test_false, else_false, else_true); - INTERSECT (when_false, then_false, else_false); - INTERSECT (when_true, then_true, else_true); - RELEASE_BUFFERS(test_false); - start_current_locals = save_start_current_locals; -} - -/* Check a boolean binary form CODE (EXP0, EXP1), - where CODE is one of EQ_EXPR, BIT_AND_EXPR, or BIT_IOR_EXPR. - BEFORE, WHEN_FALSE, and WHEN_TRUE are as in check_bool_init. */ - -static void -check_bool2_init (enum tree_code code, tree exp0, tree exp1, - words before, words when_false, words when_true) -{ - word buf[2*4]; - words tmp = num_current_words <= 2 ? buf - : ALLOC_WORDS (4 * num_current_words); - words when_false_0 = tmp; - words when_false_1 = tmp+num_current_words; - words when_true_0 = tmp+2*num_current_words; - words when_true_1 = tmp+3*num_current_words; - check_bool_init (exp0, before, when_false_0, when_true_0); - INTERSECT (before, when_false_0, when_true_0); - check_bool_init (exp1, before, when_false_1, when_true_1); - - INTERSECT (before, when_false_1, when_true_1); - - if (code == EQ_EXPR) - { - /* Now set: - * when_true = (when_false_1 INTERSECTION when_true_1) - * UNION (when_true_0 INTERSECTION when_false_1) - * UNION (when_false_0 INTERSECTION when_true_1); - * using when_false and before as temporary working areas. */ - INTERSECT (when_true, when_true_0, when_false_1); - INTERSECT (when_false, when_true_0, when_false_1); - UNION (when_true, when_true, when_false); - UNION (when_true, when_true, before); - - /* Now set: - * when_false = (when_false_1 INTERSECTION when_true_1) - * UNION (when_true_0 INTERSECTION when_true_1) - * UNION (when_false_0 INTERSECTION when_false_1); - * using before as a temporary working area. */ - INTERSECT (when_false, when_true_0, when_true_1); - UNION (when_false, when_false, before); - INTERSECT (before, when_false_0, when_false_1); - UNION (when_false, when_false, before); - } - else if (code == BIT_AND_EXPR || code == TRUTH_AND_EXPR) - { - UNION (when_true, when_true_0, when_true_1); - INTERSECT (when_false, when_false_0, when_false_1); - UNION (when_false, when_false, before); - } - else /* if (code == BIT_IOR_EXPR || code == TRUTH_OR_EXPR) */ - { - UNION (when_false, when_false_0, when_false_1); - INTERSECT (when_true, when_true_0, when_true_1); - UNION (when_true, when_true, before); - } - - if (tmp != buf) - FREE_WORDS (tmp); -} - -/* Check a boolean expression EXP for definite [un]assignment. - BEFORE is the set of variables definitely [un]assigned before the - conditional. (This bitstring may be modified arbitrarily in this function.) - On output, WHEN_FALSE is the set of variables [un]definitely assigned after - the conditional when the conditional is false. - On output, WHEN_TRUE is the set of variables definitely [un]assigned after - the conditional when the conditional is true. - (WHEN_FALSE and WHEN_TRUE are overwritten with initial values ignored.) - (None of BEFORE, WHEN_FALSE, or WHEN_TRUE can overlap, as they may - be used as temporary working areas. */ - -static void -check_bool_init (tree exp, words before, words when_false, words when_true) -{ - switch (TREE_CODE (exp)) - { - case COND_EXPR: - check_cond_init (TREE_OPERAND (exp, 0), TREE_OPERAND (exp, 1), - TREE_OPERAND (exp, 2), - before, when_false, when_true); - return; - - case TRUTH_ANDIF_EXPR: - check_cond_init (TREE_OPERAND (exp, 0), - TREE_OPERAND (exp, 1), boolean_false_node, - before, when_false, when_true); - return; - case TRUTH_ORIF_EXPR: - check_cond_init (TREE_OPERAND (exp, 0), - boolean_true_node, TREE_OPERAND (exp, 1), - before, when_false, when_true); - return; - case TRUTH_NOT_EXPR: - check_bool_init (TREE_OPERAND (exp, 0), before, when_true, when_false); - return; - - case BIT_AND_EXPR: - case BIT_IOR_EXPR: - case TRUTH_AND_EXPR: - case TRUTH_OR_EXPR: - case EQ_EXPR: - check_bool2_init (TREE_CODE (exp), - TREE_OPERAND (exp, 0), TREE_OPERAND (exp, 1), - before, when_false, when_true); - return; - - case TRUTH_XOR_EXPR: - case BIT_XOR_EXPR: - case NE_EXPR: - /* Just like EQ_EXPR, but switch when_true and when_false. */ - check_bool2_init (EQ_EXPR, TREE_OPERAND (exp, 0), TREE_OPERAND (exp, 1), - before, when_true, when_false); - - return; - - case INTEGER_CST: - if (integer_zerop (exp)) - { - SET_ALL (when_true); - COPY (when_false, before); - } - else - { - SET_ALL (when_false); - COPY (when_true, before); - } - break; - - default: - check_init (exp, before); - COPY (when_false, before); - COPY (when_true, before); - } -} - -/* Used to keep track of control flow branches. */ - -struct alternatives -{ - struct alternatives *outer; - - /* The value of num_current_locals at the start of this compound. */ - int num_locals; - - /* The value of the "before" set at the start of the control structure. - Used for SWITCH_EXPR but not set for LABELED_BLOCK_EXPR. */ - words saved; - - int save_start_current_locals; - - /* If num_current_words==1, combined==&one_word, for efficiency. */ - word one_word; - - /* The intersection of the "after" sets from previous branches. */ - words combined; - - tree block; -}; - -struct alternatives * alternatives = NULL; - -/* Begin handling a control flow branch. - BEFORE is the state of [un]assigned variables on entry. - CURRENT is a struct alt to manage the branch alternatives. */ - -#define BEGIN_ALTERNATIVES(before, current) \ -{ \ - current.saved = NULL; \ - current.num_locals = num_current_locals; \ - current.combined = num_current_words <= 1 ? ¤t.one_word \ - : ALLOC_WORDS (num_current_words); \ - SET_ALL (current.combined); \ - current.outer = alternatives; \ - alternatives = ¤t; \ - current.save_start_current_locals = start_current_locals; \ - start_current_locals = num_current_locals; \ -} - -/* We have finished with one branch of branching control flow. - Store the [un]assigned state, merging (intersecting) it with the state - of previous alternative branches. */ - -static void -done_alternative (words after, struct alternatives *current) -{ - INTERSECTN (current->combined, current->combined, after, - WORDS_NEEDED (2 * current->num_locals)); -} - -/* Used when we done with a control flow branch and are all merged again. - * AFTER is the merged state of [un]assigned variables, - CURRENT is a struct alt that was passed to BEGIN_ALTERNATIVES. */ - -#define END_ALTERNATIVES(after, current) \ -{ \ - alternatives = current.outer; \ - COPY (after, current.combined); \ - if (current.combined != ¤t.one_word) \ - FREE_WORDS (current.combined); \ - start_current_locals = current.save_start_current_locals; \ -} - -/* Check for (un)initialized local variables in EXP. */ - -static void -check_init (tree exp, words before) -{ - tree tmp; - location_t save_location = input_location; - again: - if (EXPR_HAS_LOCATION (exp)) - input_location = EXPR_LOCATION (exp); - switch (TREE_CODE (exp)) - { - case VAR_DECL: - case PARM_DECL: - if (! FIELD_STATIC (exp) && DECL_NAME (exp) != NULL_TREE - && DECL_NAME (exp) != this_identifier_node) - { - int index = DECL_BIT_INDEX (exp); - /* We don't want to report and mark as non initialized class - initialization flags. */ - if (! LOCAL_CLASS_INITIALIZATION_FLAG_P (exp) - && index >= 0 && ! ASSIGNED_P (before, index)) - { - error ("variable %qD may not have been initialized", exp); - DECL_BIT_INDEX (exp) = -2; - } - } - break; - - case COMPONENT_REF: - check_init (TREE_OPERAND (exp, 0), before); - if ((tmp = get_variable_decl (exp)) != NULL_TREE) - { - int index = DECL_BIT_INDEX (tmp); - if (index >= 0 && ! ASSIGNED_P (before, index)) - { - error ("variable %qD may not have been initialized", tmp); - /* Suppress further errors. */ - DECL_BIT_INDEX (tmp) = -2; - } - } - break; - - case MODIFY_EXPR: - tmp = TREE_OPERAND (exp, 0); - /* We're interested in variable declaration and parameter - declaration when they're declared with the `final' modifier. */ - if ((tmp = get_variable_decl (tmp)) != NULL_TREE) - { - int index; - check_init (TREE_OPERAND (exp, 1), before); - check_final_reassigned (tmp, before); - index = DECL_BIT_INDEX (tmp); - if (index >= 0) - { - SET_ASSIGNED (before, index); - CLEAR_UNASSIGNED (before, index); - } - /* Minor optimization. See comment for start_current_locals. - If we're optimizing for class initialization, we keep - this information to check whether the variable is - definitely assigned when once we checked the whole - function. */ - if (! STATIC_CLASS_INIT_OPT_P () /* FIXME */ - && ! DECL_FINAL (tmp) - && index >= start_current_locals - && index == num_current_locals - 1) - { - num_current_locals--; - DECL_BIT_INDEX (tmp) = -1; - } - break; - } - else if (TREE_CODE (tmp = TREE_OPERAND (exp, 0)) == COMPONENT_REF) - { - tree decl; - check_init (tmp, before); - check_init (TREE_OPERAND (exp, 1), before); - decl = TREE_OPERAND (tmp, 1); - if (DECL_FINAL (decl)) - final_assign_error (DECL_NAME (decl)); - break; - } - else if (TREE_CODE (tmp) == COMPONENT_REF && IS_ARRAY_LENGTH_ACCESS (tmp)) - { - /* We can't emit a more specific message here, because when - compiling to bytecodes we don't get here. */ - final_assign_error (length_identifier_node); - } - else - goto binop; - case BLOCK: - if (BLOCK_EXPR_BODY (exp)) - { - tree decl = BLOCK_EXPR_DECLS (exp); - int words_needed; - word* tmp; - int i; - int save_start_current_locals = start_current_locals; - int save_num_current_words = num_current_words; - start_current_locals = num_current_locals; - for (; decl != NULL_TREE; decl = TREE_CHAIN (decl)) - { - DECL_BIT_INDEX (decl) = num_current_locals++; - } - words_needed = WORDS_NEEDED (2 * num_current_locals); - if (words_needed > num_current_words) - { - tmp = ALLOC_WORDS (words_needed); - COPY (tmp, before); - num_current_words = words_needed; - } - else - tmp = before; - for (i = start_current_locals; i < num_current_locals; i++) - { - CLEAR_ASSIGNED (tmp, i); - SET_UNASSIGNED (tmp, i); - } - check_init (BLOCK_EXPR_BODY (exp), tmp); - - /* Re-set DECL_BIT_INDEX since it is also DECL_POINTER_ALIAS_SET. */ - for (decl = BLOCK_EXPR_DECLS (exp); - decl != NULL_TREE; decl = TREE_CHAIN (decl)) - { - if (LOCAL_CLASS_INITIALIZATION_FLAG_P (decl)) - { - int index = DECL_BIT_INDEX (decl); - tree fndecl = DECL_CONTEXT (decl); - if (fndecl && METHOD_STATIC (fndecl) - && (DECL_INITIAL (decl) == boolean_true_node - || (index >= 0 && ASSIGNED_P (tmp, index)))) - *(htab_find_slot - (DECL_FUNCTION_INITIALIZED_CLASS_TABLE (fndecl), - DECL_FUNCTION_INIT_TEST_CLASS (decl), INSERT)) = - DECL_FUNCTION_INIT_TEST_CLASS (decl); - } - DECL_BIT_INDEX (decl) = -1; - } - - num_current_locals = start_current_locals; - start_current_locals = save_start_current_locals; - if (tmp != before) - { - num_current_words = save_num_current_words; - COPY (before, tmp); - FREE_WORDS (tmp); - } - } - break; - case LOOP_EXPR: - { - /* The JLS 2nd edition discusses a complication determining - definite unassignment of loop statements. They define a - "hypothetical" analysis model. We do something much - simpler: We just disallow assignments inside loops to final - variables declared outside the loop. This means we may - disallow some contrived assignments that the JLS, but I - can't see how anything except a very contrived testcase (a - do-while whose condition is false?) would care. */ - - struct alternatives alt; - int save_loop_current_locals = loop_current_locals; - int save_start_current_locals = start_current_locals; - loop_current_locals = num_current_locals; - start_current_locals = num_current_locals; - BEGIN_ALTERNATIVES (before, alt); - alt.block = exp; - check_init (TREE_OPERAND (exp, 0), before); - END_ALTERNATIVES (before, alt); - loop_current_locals = save_loop_current_locals; - start_current_locals = save_start_current_locals; - break; - } - case EXIT_EXPR: - { - struct alternatives *alt = alternatives; - DECLARE_BUFFERS(when_true, 2); - words when_false = when_true + num_current_words; -#ifdef ENABLE_JC1_CHECKING - gcc_assert (TREE_CODE (alt->block) == LOOP_EXPR); -#endif - check_bool_init (TREE_OPERAND (exp, 0), before, when_false, when_true); - done_alternative (when_true, alt); - COPY (before, when_false); - RELEASE_BUFFERS(when_true); - break; - } - case LABELED_BLOCK_EXPR: - { - struct alternatives alt; - BEGIN_ALTERNATIVES (before, alt); - alt.block = exp; - if (LABELED_BLOCK_BODY (exp)) - check_init (LABELED_BLOCK_BODY (exp), before); - done_alternative (before, &alt); - END_ALTERNATIVES (before, alt); - break; - } - case EXIT_BLOCK_EXPR: - { - tree block = TREE_OPERAND (exp, 0); - struct alternatives *alt = alternatives; - while (alt->block != block) - alt = alt->outer; - done_alternative (before, alt); - SET_ALL (before); - break; - } - case SWITCH_EXPR: - { - struct alternatives alt; - word buf[2]; - check_init (TREE_OPERAND (exp, 0), before); - BEGIN_ALTERNATIVES (before, alt); - alt.saved = ALLOC_BUFFER(buf, num_current_words); - COPY (alt.saved, before); - alt.block = exp; - check_init (TREE_OPERAND (exp, 1), before); - done_alternative (before, &alt); - if (! SWITCH_HAS_DEFAULT (exp)) - done_alternative (alt.saved, &alt); - FREE_BUFFER(alt.saved, buf); - END_ALTERNATIVES (before, alt); - break; - } - case CASE_EXPR: - case DEFAULT_EXPR: - { - int i; - struct alternatives *alt = alternatives; - while (TREE_CODE (alt->block) != SWITCH_EXPR) - alt = alt->outer; - COPYN (before, alt->saved, WORDS_NEEDED (2 * alt->num_locals)); - for (i = alt->num_locals; i < num_current_locals; i++) - CLEAR_ASSIGNED (before, i); - break; - } - - case TRY_EXPR: - { - tree try_clause = TREE_OPERAND (exp, 0); - tree clause = TREE_OPERAND (exp, 1); - word buf[2*2]; - words tmp = (num_current_words <= 2 ? buf - : ALLOC_WORDS (2 * num_current_words)); - words save = tmp + num_current_words; - struct alternatives alt; - BEGIN_ALTERNATIVES (before, alt); - COPY (save, before); - COPY (tmp, save); - check_init (try_clause, tmp); - done_alternative (tmp, &alt); - for ( ; clause != NULL_TREE; clause = TREE_CHAIN (clause)) - { - tree catch_clause = TREE_OPERAND (clause, 0); - COPY (tmp, save); - check_init (catch_clause, tmp); - done_alternative (tmp, &alt); - } - if (tmp != buf) - { - FREE_WORDS (tmp); - } - END_ALTERNATIVES (before, alt); - } - break; - - case TRY_FINALLY_EXPR: - { - DECLARE_BUFFERS(tmp, 1); - COPY (tmp, before); - check_init (TREE_OPERAND (exp, 0), before); - check_init (TREE_OPERAND (exp, 1), tmp); - UNION (before, before, tmp); - RELEASE_BUFFERS(tmp); - } - break; - - case RETURN_EXPR: - case THROW_EXPR: - if (TREE_OPERAND (exp, 0)) - check_init (TREE_OPERAND (exp, 0), before); - goto never_continues; - - case ERROR_MARK: - never_continues: - SET_ALL (before); - break; - - case COND_EXPR: - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: - { - DECLARE_BUFFERS(when_true, 2); - words when_false = when_true + num_current_words; - check_bool_init (exp, before, when_false, when_true); - INTERSECT (before, when_false, when_true); - RELEASE_BUFFERS(when_true); - } - break; - - case NOP_EXPR: - if (IS_EMPTY_STMT (exp)) - break; - /* ... else fall through ... */ - case UNARY_PLUS_EXPR: - case NEGATE_EXPR: - case TRUTH_AND_EXPR: - case TRUTH_OR_EXPR: - case TRUTH_XOR_EXPR: - case TRUTH_NOT_EXPR: - case BIT_NOT_EXPR: - case CONVERT_EXPR: - case VIEW_CONVERT_EXPR: - case BIT_FIELD_REF: - case FLOAT_EXPR: - case FIX_TRUNC_EXPR: - case INDIRECT_REF: - case ADDR_EXPR: - case NON_LVALUE_EXPR: - case INSTANCEOF_EXPR: - case ABS_EXPR: - /* Avoid needless recursion. */ - exp = TREE_OPERAND (exp, 0); - goto again; - - case PREDECREMENT_EXPR: - case PREINCREMENT_EXPR: - case POSTDECREMENT_EXPR: - case POSTINCREMENT_EXPR: - tmp = get_variable_decl (TREE_OPERAND (exp, 0)); - if (tmp != NULL_TREE && DECL_FINAL (tmp)) - final_assign_error (DECL_NAME (tmp)); - else if (TREE_CODE (tmp = TREE_OPERAND (exp, 0)) == COMPONENT_REF) - { - /* Take care of array length accesses too. */ - tree decl = TREE_OPERAND (tmp, 1); - if (DECL_FINAL (decl)) - final_assign_error (DECL_NAME (decl)); - } - - /* Avoid needless recursion. */ - exp = TREE_OPERAND (exp, 0); - goto again; - - case SAVE_EXPR: - if (IS_INIT_CHECKED (exp)) - break; - IS_INIT_CHECKED (exp) = 1; - exp = TREE_OPERAND (exp, 0); - goto again; - - case COMPOUND_EXPR: - case PLUS_EXPR: - case MINUS_EXPR: - case MULT_EXPR: - case TRUNC_DIV_EXPR: - case TRUNC_MOD_EXPR: - case RDIV_EXPR: - case LSHIFT_EXPR: - case RSHIFT_EXPR: - case URSHIFT_EXPR: - case BIT_AND_EXPR: - case BIT_XOR_EXPR: - case BIT_IOR_EXPR: - case EQ_EXPR: - case NE_EXPR: - case GT_EXPR: - case GE_EXPR: - case LT_EXPR: - case LE_EXPR: - case MAX_EXPR: - case MIN_EXPR: - case ARRAY_REF: - case LROTATE_EXPR: - case RROTATE_EXPR: - case CEIL_DIV_EXPR: - case FLOOR_DIV_EXPR: - case ROUND_DIV_EXPR: - case CEIL_MOD_EXPR: - case FLOOR_MOD_EXPR: - case ROUND_MOD_EXPR: - case EXACT_DIV_EXPR: - case UNLT_EXPR: - case UNLE_EXPR: - case UNGT_EXPR: - case UNGE_EXPR: - case UNEQ_EXPR: - case LTGT_EXPR: - binop: - check_init (TREE_OPERAND (exp, 0), before); - /* Avoid needless recursion, especially for COMPOUND_EXPR. */ - exp = TREE_OPERAND (exp, 1); - goto again; - - case RESULT_DECL: - case FUNCTION_DECL: - case INTEGER_CST: - case REAL_CST: - case STRING_CST: - case DECL_EXPR: - case JAVA_EXC_OBJ_EXPR: - break; - - case NEW_CLASS_EXPR: - case CALL_EXPR: - { - tree func = TREE_OPERAND (exp, 0); - tree x = TREE_OPERAND (exp, 1); - if (TREE_CODE (func) == ADDR_EXPR) - func = TREE_OPERAND (func, 0); - check_init (func, before); - - for ( ; x != NULL_TREE; x = TREE_CHAIN (x)) - check_init (TREE_VALUE (x), before); - if (func == throw_node) - goto never_continues; - } - break; - - case NEW_ARRAY_INIT: - { - tree value; - unsigned HOST_WIDE_INT idx; - FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (TREE_OPERAND (exp, 0)), - idx, value) - check_init (value, before); - } - break; - - case EXPR_WITH_FILE_LOCATION: - { - location_t saved_location = input_location; - tree body = EXPR_WFL_NODE (exp); - if (IS_EMPTY_STMT (body)) - break; -#ifdef USE_MAPPED_LOCATION - input_location = EXPR_LOCATION (exp); -#else - input_filename = EXPR_WFL_FILENAME (exp); - input_line = EXPR_WFL_LINENO (exp); -#endif - check_init (body, before); - input_location = saved_location; - } - break; - - default: - internal_error - ("internal error in check-init: tree code not implemented: %s", - tree_code_name [(int) TREE_CODE (exp)]); - } - input_location = save_location; -} - -void -check_for_initialization (tree body, tree mdecl) -{ - tree decl; - word buf[2]; - words before = buf; - tree owner = DECL_CONTEXT (mdecl); - int is_static_method = METHOD_STATIC (mdecl); - /* We don't need to check final fields of it it calls this(). */ - int is_finit_method = DECL_FINIT_P (mdecl) || DECL_INSTINIT_P (mdecl); - int is_init_method - = (is_finit_method || DECL_CLINIT_P (mdecl) - || (DECL_INIT_P (mdecl) && ! DECL_INIT_CALLS_THIS (mdecl))); - - start_current_locals = num_current_locals = 0; - num_current_words = 2; - - if (is_init_method) - { - int words_needed, i; - for (decl = TYPE_FIELDS (owner); - decl != NULL_TREE; decl = TREE_CHAIN (decl)) - { - if (DECL_FINAL (decl) && FIELD_STATIC (decl) == is_static_method) - { - if (DECL_FIELD_FINAL_IUD (decl)) - DECL_BIT_INDEX (decl) = -1; - else - DECL_BIT_INDEX (decl) = num_current_locals++; - } - } - words_needed = WORDS_NEEDED (2 * num_current_locals); - if (words_needed > 2) - { - num_current_words = words_needed; - before = ALLOC_WORDS(words_needed); - } - i = 0; - for (decl = TYPE_FIELDS (owner); - decl != NULL_TREE; decl = TREE_CHAIN (decl)) - { - if (FIELD_FINAL (decl) && FIELD_STATIC (decl) == is_static_method) - { - if (! DECL_FIELD_FINAL_IUD (decl)) - { - CLEAR_ASSIGNED (before, i); - SET_UNASSIGNED (before, i); - i++; - } - } - } - - } - - check_init (body, before); - - if (is_init_method) - { - for (decl = TYPE_FIELDS (owner); - decl != NULL_TREE; decl = TREE_CHAIN (decl)) - { - if (FIELD_FINAL (decl) && FIELD_STATIC (decl) == is_static_method) - { - int index = DECL_BIT_INDEX (decl); - if (index >= 0 && ! ASSIGNED_P (before, index)) - { - if (! is_finit_method) - error ("%Jfinal field %qD may not have been initialized", - decl, decl); - } - else if (is_finit_method) - DECL_FIELD_FINAL_IUD (decl) = 1; - - /* Re-set to initial state, since we later may use the - same bit for DECL_POINTER_ALIAS_SET. */ - DECL_BIT_INDEX (decl) = -1; - } - } - } - - start_current_locals = num_current_locals = 0; -} diff --git a/gcc/java/class.c b/gcc/java/class.c index b1faafc616c..e9d8174e43d 100644 --- a/gcc/java/class.c +++ b/gcc/java/class.c @@ -1,6 +1,6 @@ /* Functions related to building classes and their related objects. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -46,6 +46,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "cgraph.h" #include "tree-iterator.h" #include "cgraph.h" +#include "vecprim.h" /* DOS brain-damage */ #ifndef O_BINARY @@ -68,6 +69,8 @@ static void register_class (void); struct obstack temporary_obstack; +static const char *cyclic_inheritance_report; + /* The compiler generates different code depending on whether or not it can assume certain classes have been compiled down to native code or not. The compiler options -fassume-compiled= and @@ -497,6 +500,9 @@ set_class_decl_access_flags (int access_flags, tree class_decl) if (access_flags & ACC_PRIVATE) CLASS_PRIVATE (class_decl) = 1; if (access_flags & ACC_PROTECTED) CLASS_PROTECTED (class_decl) = 1; if (access_flags & ACC_STRICT) CLASS_STRICTFP (class_decl) = 1; + if (access_flags & ACC_ENUM) CLASS_ENUM (class_decl) = 1; + if (access_flags & ACC_SYNTHETIC) CLASS_SYNTHETIC (class_decl) = 1; + if (access_flags & ACC_ANNOTATION) CLASS_ANNOTATION (class_decl) = 1; } /* Return length of inheritance chain of CLAS, where java.lang.Object is 0, @@ -719,9 +725,6 @@ add_method_1 (tree this_class, int access_flags, tree name, tree function_type) DECL_FUNCTION_INITIALIZED_CLASS_TABLE (fndecl) = htab_create_ggc (50, htab_hash_pointer, htab_eq_pointer, NULL); - /* Initialize the static method invocation compound list */ - DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND (fndecl) = NULL_TREE; - TREE_CHAIN (fndecl) = TYPE_METHODS (this_class); TYPE_METHODS (this_class) = fndecl; @@ -748,6 +751,9 @@ add_method_1 (tree this_class, int access_flags, tree name, tree function_type) if (access_flags & ACC_SYNCHRONIZED) METHOD_SYNCHRONIZED (fndecl) = 1; if (access_flags & ACC_ABSTRACT) METHOD_ABSTRACT (fndecl) = 1; if (access_flags & ACC_STRICT) METHOD_STRICTFP (fndecl) = 1; + if (access_flags & ACC_SYNTHETIC) DECL_ARTIFICIAL (fndecl) = 1; + if (access_flags & ACC_BRIDGE) METHOD_BRIDGE (fndecl) = 1; + if (access_flags & ACC_VARARGS) METHOD_VARARGS (fndecl) = 1; return fndecl; } @@ -780,6 +786,7 @@ add_field (tree class, tree name, tree field_type, int flags) TREE_CHAIN (field) = TYPE_FIELDS (class); TYPE_FIELDS (class) = field; DECL_CONTEXT (field) = class; + MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (field); if (flags & ACC_PUBLIC) FIELD_PUBLIC (field) = 1; if (flags & ACC_PROTECTED) FIELD_PROTECTED (field) = 1; @@ -791,15 +798,17 @@ add_field (tree class, tree name, tree field_type, int flags) TREE_THIS_VOLATILE (field) = 1; } if (flags & ACC_TRANSIENT) FIELD_TRANSIENT (field) = 1; + if (flags & ACC_ENUM) FIELD_ENUM (field) = 1; + if (flags & ACC_SYNTHETIC) FIELD_SYNTHETIC (field) = 1; if (is_static) { FIELD_STATIC (field) = 1; /* Always make field externally visible. This is required so that native methods can always access the field. */ TREE_PUBLIC (field) = 1; - /* Considered external until we know what classes are being - compiled into this object file. */ - DECL_EXTERNAL (field) = 1; + /* Considered external unless we are compiling it into this + object file. */ + DECL_EXTERNAL (field) = (is_compiled_class (class) != 2); } return field; @@ -1219,6 +1228,10 @@ get_access_flags_from_decl (tree decl) access_flags |= ACC_VOLATILE; if (FIELD_TRANSIENT (decl)) access_flags |= ACC_TRANSIENT; + if (FIELD_ENUM (decl)) + access_flags |= ACC_ENUM; + if (FIELD_SYNTHETIC (decl)) + access_flags |= ACC_SYNTHETIC; return access_flags; } if (TREE_CODE (decl) == TYPE_DECL) @@ -1241,6 +1254,12 @@ get_access_flags_from_decl (tree decl) access_flags |= ACC_PROTECTED; if (CLASS_STRICTFP (decl)) access_flags |= ACC_STRICT; + if (CLASS_ENUM (decl)) + access_flags |= ACC_ENUM; + if (CLASS_SYNTHETIC (decl)) + access_flags |= ACC_SYNTHETIC; + if (CLASS_ANNOTATION (decl)) + access_flags |= ACC_ANNOTATION; return access_flags; } if (TREE_CODE (decl) == FUNCTION_DECL) @@ -1265,6 +1284,12 @@ get_access_flags_from_decl (tree decl) access_flags |= ACC_STRICT; if (METHOD_INVISIBLE (decl)) access_flags |= ACC_INVISIBLE; + if (DECL_ARTIFICIAL (decl)) + access_flags |= ACC_SYNTHETIC; + if (METHOD_BRIDGE (decl)) + access_flags |= ACC_BRIDGE; + if (METHOD_VARARGS (decl)) + access_flags |= ACC_VARARGS; return access_flags; } gcc_unreachable (); @@ -1646,6 +1671,8 @@ make_class_data (tree type) to where objects actually point at, following new g++ ABI. */ tree dtable_start_offset = build_int_cst (NULL_TREE, 2 * POINTER_SIZE / BITS_PER_UNIT); + VEC(int, heap) *field_indexes; + tree first_real_field; this_class_addr = build_static_class_ref (type); decl = TREE_OPERAND (this_class_addr, 0); @@ -1655,15 +1682,28 @@ make_class_data (tree type) { tree dtable = get_dispatch_table (type, this_class_addr); uses_jv_markobj = uses_jv_markobj_p (dtable); - dtable_decl = build_dtable_decl (type); - DECL_INITIAL (dtable_decl) = dtable; - TREE_STATIC (dtable_decl) = 1; - DECL_ARTIFICIAL (dtable_decl) = 1; - DECL_IGNORED_P (dtable_decl) = 1; + if (type == class_type_node && class_dtable_decl != NULL_TREE) + { + /* We've already created some other class, and consequently + we made class_dtable_decl. Now we just want to fill it + in. */ + dtable_decl = class_dtable_decl; + } + else + { + dtable_decl = build_dtable_decl (type); + TREE_STATIC (dtable_decl) = 1; + DECL_ARTIFICIAL (dtable_decl) = 1; + DECL_IGNORED_P (dtable_decl) = 1; + } + TREE_PUBLIC (dtable_decl) = 1; + DECL_INITIAL (dtable_decl) = dtable; if (! flag_indirect_classes) rest_of_decl_compilation (dtable_decl, 1, 0); - if (type == class_type_node) + /* Maybe we're compiling Class as the first class. If so, set + class_dtable_decl to the decl we just made. */ + if (type == class_type_node && class_dtable_decl == NULL_TREE) class_dtable_decl = dtable_decl; } @@ -1673,7 +1713,54 @@ make_class_data (tree type) field = TREE_CHAIN (field); /* Skip dummy fields. */ if (field && DECL_NAME (field) == NULL_TREE) field = TREE_CHAIN (field); /* Skip dummy field for inherited data. */ - for ( ; field != NULL_TREE; field = TREE_CHAIN (field)) + first_real_field = field; + + /* First count static and instance fields. */ + for ( ; field != NULL_TREE; field = TREE_CHAIN (field)) + { + if (! DECL_ARTIFICIAL (field)) + { + if (FIELD_STATIC (field)) + static_field_count++; + else if (uses_jv_markobj || !flag_reduced_reflection) + instance_field_count++; + } + } + field_count = static_field_count + instance_field_count; + field_indexes = VEC_alloc (int, heap, field_count); + + /* gcj sorts fields so that static fields come first, followed by + instance fields. Unfortunately, by the time this takes place we + have already generated the reflection_data for this class, and + that data contians indexes into the fields. So, we generate a + permutation that maps each original field index to its final + position. Then we pass this permutation to + rewrite_reflection_indexes(), which fixes up the reflection + data. */ + { + int i; + int static_count = 0; + int instance_count = static_field_count; + int field_index; + + for (i = 0, field = first_real_field; + field != NULL_TREE; + field = TREE_CHAIN (field), i++) + { + if (! DECL_ARTIFICIAL (field)) + { + field_index = 0; + if (FIELD_STATIC (field)) + field_index = static_count++; + else if (uses_jv_markobj || !flag_reduced_reflection) + field_index = instance_count++; + VEC_quick_push (int, field_indexes, field_index); + } + } + } + + for (field = first_real_field; field != NULL_TREE; + field = TREE_CHAIN (field)) { if (! DECL_ARTIFICIAL (field)) { @@ -1683,7 +1770,6 @@ make_class_data (tree type) as it is used in the creation of the field itself. */ tree init = make_field_value (field); tree initial = DECL_INITIAL (field); - static_field_count++; static_fields = tree_cons (NULL_TREE, init, static_fields); /* If the initial value is a string constant, prevent output_constant from trying to assemble the value. */ @@ -1696,12 +1782,11 @@ make_class_data (tree type) else if (uses_jv_markobj || !flag_reduced_reflection) { tree init = make_field_value (field); - instance_field_count++; instance_fields = tree_cons (NULL_TREE, init, instance_fields); } } } - field_count = static_field_count + instance_field_count; + if (field_count > 0) { static_fields = nreverse (static_fields); @@ -1781,8 +1866,10 @@ make_class_data (tree type) DECL_ARTIFICIAL (class_dtable_decl) = 1; DECL_IGNORED_P (class_dtable_decl) = 1; if (is_compiled_class (class_type_node) != 2) - DECL_EXTERNAL (class_dtable_decl) = 1; - rest_of_decl_compilation (class_dtable_decl, 1, 0); + { + DECL_EXTERNAL (class_dtable_decl) = 1; + rest_of_decl_compilation (class_dtable_decl, 1, 0); + } } super = CLASSTYPE_SUPER (type); @@ -2001,6 +2088,48 @@ make_class_data (tree type) PUSH_FIELD_VALUE (cons, "aux_info", null_pointer_node); PUSH_FIELD_VALUE (cons, "engine", null_pointer_node); + if (TYPE_REFLECTION_DATA (current_class)) + { + int i; + int count = TYPE_REFLECTION_DATASIZE (current_class); + VEC (constructor_elt, gc) *v + = VEC_alloc (constructor_elt, gc, count); + unsigned char *data = TYPE_REFLECTION_DATA (current_class); + tree max_index = build_int_cst (sizetype, count); + tree index = build_index_type (max_index); + tree type = build_array_type (unsigned_byte_type_node, index); + char buf[64]; + tree array; + static int reflection_data_count; + + sprintf (buf, "_reflection_data_%d", reflection_data_count++); + array = build_decl (VAR_DECL, get_identifier (buf), type); + + rewrite_reflection_indexes (field_indexes); + + for (i = 0; i < count; i++) + { + constructor_elt *elt = VEC_quick_push (constructor_elt, v, NULL); + elt->index = build_int_cst (sizetype, i); + elt->value = build_int_cstu (byte_type_node, data[i]); + } + + DECL_INITIAL (array) = build_constructor (type, v); + TREE_STATIC (array) = 1; + DECL_ARTIFICIAL (array) = 1; + DECL_IGNORED_P (array) = 1; + TREE_READONLY (array) = 1; + TREE_CONSTANT (DECL_INITIAL (array)) = 1; + rest_of_decl_compilation (array, 1, 0); + + PUSH_FIELD_VALUE (cons, "reflection_data", build_address_of (array)); + + free (data); + TYPE_REFLECTION_DATA (current_class) = NULL; + } + else + PUSH_FIELD_VALUE (cons, "reflection_data", null_pointer_node); + FINISH_RECORD_CONSTRUCTOR (cons); DECL_INITIAL (decl) = cons; @@ -2066,11 +2195,13 @@ is_compiled_class (tree class) return 1; if (TYPE_ARRAY_P (class)) return 0; + /* We have to check this explicitly to avoid trying to load a class + that we're currently parsing. */ if (class == current_class) return 2; seen_in_zip = (TYPE_JCF (class) && JCF_SEEN_IN_ZIP (TYPE_JCF (class))); - if (CLASS_FROM_CURRENTLY_COMPILED_P (class) || seen_in_zip) + if (CLASS_FROM_CURRENTLY_COMPILED_P (class)) { /* The class was seen in the current ZIP file and will be available as a compiled class in the future but may not have @@ -2182,7 +2313,7 @@ push_super_field (tree this_class, tree super_class) /* Handle the different manners we may have to lay out a super class. */ static tree -maybe_layout_super_class (tree super_class, tree this_class) +maybe_layout_super_class (tree super_class, tree this_class ATTRIBUTE_UNUSED) { if (!super_class) return NULL_TREE; @@ -2201,6 +2332,7 @@ maybe_layout_super_class (tree super_class, tree this_class) super_class = TREE_TYPE (super_class); else { +#if 0 /* do_resolve_class expects an EXPR_WITH_FILE_LOCATION, so we give it one. */ tree this_wrap = NULL_TREE; @@ -2226,6 +2358,8 @@ maybe_layout_super_class (tree super_class, tree this_class) if (!super_class) return NULL_TREE; /* FIXME, NULL_TREE not checked by caller. */ super_class = TREE_TYPE (super_class); +#endif + gcc_unreachable (); } } if (!TYPE_SIZE (super_class)) @@ -2234,6 +2368,22 @@ maybe_layout_super_class (tree super_class, tree this_class) return super_class; } +/* safe_layout_class just makes sure that we can load a class without + disrupting the current_class, input_file, input_line, etc, information + about the class processed currently. */ + +void +safe_layout_class (tree class) +{ + tree save_current_class = current_class; + location_t save_location = input_location; + + layout_class (class); + + current_class = save_current_class; + input_location = save_location; +} + void layout_class (tree this_class) { @@ -2450,9 +2600,10 @@ layout_class_method (tree this_class, tree super_class, tree method_name = DECL_NAME (method_decl); TREE_PUBLIC (method_decl) = 1; - /* Considered external until we know what classes are being - compiled into this object file. */ - DECL_EXTERNAL (method_decl) = 1; + /* Considered external unless it is being compiled into this object + file. */ + DECL_EXTERNAL (method_decl) = ((is_compiled_class (this_class) != 2) + || METHOD_NATIVE (method_decl)); if (ID_INIT_P (method_name)) { @@ -2464,14 +2615,14 @@ layout_class_method (tree this_class, tree super_class, p = ptr; } DECL_CONSTRUCTOR_P (method_decl) = 1; - build_java_argument_signature (TREE_TYPE (method_decl)); + build_java_signature (TREE_TYPE (method_decl)); } else if (! METHOD_STATIC (method_decl)) { tree method_sig = - build_java_argument_signature (TREE_TYPE (method_decl)); + build_java_signature (TREE_TYPE (method_decl)); bool method_override = false; - tree super_method = lookup_argument_method (super_class, method_name, + tree super_method = lookup_java_method (super_class, method_name, method_sig); if (super_method != NULL_TREE && ! METHOD_DUMMY (super_method)) diff --git a/gcc/java/config-lang.in b/gcc/java/config-lang.in index d046c66fcaf..17ecbc92e64 100644 --- a/gcc/java/config-lang.in +++ b/gcc/java/config-lang.in @@ -1,6 +1,6 @@ # Top level configure fragment for the GNU compiler for the Java(TM) # language. -# Copyright (C) 1994, 1995, 2000, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995, 2000, 2001, 2003, 2007 Free Software Foundation, Inc. #This file is part of GCC. @@ -34,9 +34,9 @@ language="java" compilers="jc1\$(exeext) jvgenmain\$(exeext)" -stagestuff="jc1\$(exeext) gcj\$(exeext) jvgenmain\$(exeext) gcjh\$(exeext) gjnih\$(exeext) jv-scan\$(exeext) jcf-dump\$(exeext)" +stagestuff="jc1\$(exeext) gcj\$(exeext) jvgenmain\$(exeext) jcf-dump\$(exeext)" -gtfiles="\$(srcdir)/java/java-tree.h \$(srcdir)/java/jcf.h \$(srcdir)/java/lex.h \$(srcdir)/java/parse.h \$(srcdir)/java/builtins.c \$(srcdir)/java/class.c \$(srcdir)/java/constants.c \$(srcdir)/java/decl.c \$(srcdir)/java/expr.c \$(srcdir)/java/jcf-parse.c \$(srcdir)/java/jcf-write.c \$(srcdir)/java/lang.c \$(srcdir)/java/mangle.c \$(srcdir)/java/parse.y \$(srcdir)/java/resource.c" +gtfiles="\$(srcdir)/java/java-tree.h \$(srcdir)/java/jcf.h \$(srcdir)/java/parse.h \$(srcdir)/java/builtins.c \$(srcdir)/java/class.c \$(srcdir)/java/constants.c \$(srcdir)/java/decl.c \$(srcdir)/java/expr.c \$(srcdir)/java/jcf-parse.c \$(srcdir)/java/lang.c \$(srcdir)/java/mangle.c \$(srcdir)/java/resource.c" target_libs=${libgcj_saved} lang_dirs="zlib fastjar" diff --git a/gcc/java/constants.c b/gcc/java/constants.c index 2f4c0530035..70e5321de00 100644 --- a/gcc/java/constants.c +++ b/gcc/java/constants.c @@ -34,11 +34,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ static void set_constant_entry (CPool *, int, int, jword); static int find_tree_constant (CPool *, int, tree); -static int find_class_or_string_constant (CPool *, int, tree); static int find_name_and_type_constant (CPool *, tree, tree); static tree get_tag_node (int); static tree build_constant_data_ref (void); -static CPool *cpool_for_class (tree); /* Set the INDEX'th constant in CPOOL to have the given TAG and VALUE. */ @@ -134,7 +132,7 @@ find_utf8_constant (CPool *cpool, tree name) return find_tree_constant (cpool, CONSTANT_Utf8, name); } -static int +int find_class_or_string_constant (CPool *cpool, int tag, tree name) { jword j = find_utf8_constant (cpool, name); @@ -322,6 +320,9 @@ get_tag_node (int tag) { /* A Cache for build_int_cst (CONSTANT_XXX, 0). */ + if (tag >= 13) + return build_int_cst (NULL_TREE, tag); + if (tag_nodes[tag] == NULL_TREE) tag_nodes[tag] = build_int_cst (NULL_TREE, tag); return tag_nodes[tag]; @@ -329,7 +330,7 @@ get_tag_node (int tag) /* Given a class, return its constant pool, creating one if necessary. */ -static CPool * +CPool * cpool_for_class (tree class) { CPool *cpool = TYPE_CPOOL (class); @@ -495,11 +496,20 @@ build_constants_constructor (void) tree tags_list = NULL_TREE; tree data_list = NULL_TREE; int i; + for (i = outgoing_cpool->count; --i > 0; ) - switch (outgoing_cpool->tags[i]) + switch (outgoing_cpool->tags[i] & ~CONSTANT_LazyFlag) { + case CONSTANT_None: /* The second half of a Double or Long on a + 32-bit target. */ case CONSTANT_Fieldref: case CONSTANT_NameAndType: + case CONSTANT_Float: + case CONSTANT_Integer: + case CONSTANT_Double: + case CONSTANT_Long: + case CONSTANT_Methodref: + case CONSTANT_InterfaceMethodref: { unsigned HOST_WIDE_INT temp = outgoing_cpool->data[i].w; @@ -512,8 +522,7 @@ build_constants_constructor (void) temp <<= BITS_PER_WORD - 32; tags_list - = tree_cons (NULL_TREE, - build_int_cst (NULL_TREE, outgoing_cpool->tags[i]), + = tree_cons (NULL_TREE, get_tag_node (outgoing_cpool->tags[i]), tags_list); data_list = tree_cons (NULL_TREE, @@ -522,7 +531,11 @@ build_constants_constructor (void) data_list); } break; - default: + + case CONSTANT_Class: + case CONSTANT_String: + case CONSTANT_Unicode: + case CONSTANT_Utf8: tags_list = tree_cons (NULL_TREE, get_tag_node (outgoing_cpool->tags[i]), tags_list); @@ -530,6 +543,9 @@ build_constants_constructor (void) = tree_cons (NULL_TREE, build_utf8_ref (outgoing_cpool->data[i].t), data_list); break; + + default: + gcc_assert (false); } if (outgoing_cpool->count > 0) { diff --git a/gcc/java/convert.h b/gcc/java/convert.h deleted file mode 100644 index f08c41322e6..00000000000 --- a/gcc/java/convert.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Definition of conversion functions. - Copyright (C) 1993, 1998, 2000, 2003 Free Software Foundation, Inc. - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - -/* Written by Jeffrey Hsu */ - -extern tree convert_to_integer (tree type, tree expr); -extern tree convert_to_real (tree type, tree expr); -extern tree convert_to_pointer (tree type, tree expr); diff --git a/gcc/java/decl.c b/gcc/java/decl.c index 912f85479fa..346060999f5 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -1,7 +1,7 @@ /* Process declarations and variables for the GNU compiler for the Java(TM) language. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -75,9 +75,9 @@ static void parse_version (void); loader. */ /* If an ABI change is made within a GCC release series, rendering current - binaries incompatible with the old runtimes, this number can be set to + binaries incompatible with the old runtimes, this number must be set to enforce the compatibility rules. */ -#define MINOR_BINARYCOMPAT_ABI_VERSION 0 +#define MINOR_BINARYCOMPAT_ABI_VERSION 1 /* The runtime may recognize a variety of BC ABIs (objects generated by different version of gcj), but will probably always require strict @@ -755,15 +755,9 @@ java_init_decl_processing (void) TYPE_identifier_node = get_identifier ("TYPE"); init_identifier_node = get_identifier (""); clinit_identifier_node = get_identifier (""); - finit_identifier_node = get_identifier ("finit$"); - instinit_identifier_node = get_identifier ("instinit$"); void_signature_node = get_identifier ("()V"); - length_identifier_node = get_identifier ("length"); finalize_identifier_node = get_identifier ("finalize"); this_identifier_node = get_identifier ("this"); - super_identifier_node = get_identifier ("super"); - continue_identifier_node = get_identifier ("continue"); - access0_identifier_node = get_identifier ("access$0"); classdollar_identifier_node = get_identifier ("class$"); java_lang_cloneable_identifier_node = get_identifier ("java.lang.Cloneable"); @@ -854,6 +848,7 @@ java_init_decl_processing (void) PUSH_FIELD (class_type_node, field, "chain", ptr_type_node); PUSH_FIELD (class_type_node, field, "aux_info", ptr_type_node); PUSH_FIELD (class_type_node, field, "engine", ptr_type_node); + PUSH_FIELD (class_type_node, field, "reflection_data", ptr_type_node); for (t = TYPE_FIELDS (class_type_node); t != NULL_TREE; t = TREE_CHAIN (t)) FIELD_PRIVATE (t) = 1; push_super_field (class_type_node, object_type_node); @@ -1109,8 +1104,6 @@ java_init_decl_processing (void) lang_eh_runtime_type = do_nothing; - init_jcf_parse (); - initialize_builtins (); soft_fmod_node = built_in_decls[BUILT_IN_FMOD]; #if 0 diff --git a/gcc/java/expr.c b/gcc/java/expr.c index 3cb3db7bb2c..b9d68b02a73 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -1,6 +1,6 @@ /* Process expressions for the GNU compiler for the Java(TM) language. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -885,6 +885,7 @@ build_java_arrayaccess (tree array, tree type, tree index) tree data_field; tree ref; tree array_type = TREE_TYPE (TREE_TYPE (array)); + tree size_exp = fold_convert (sizetype, size_in_bytes (type)); if (!is_array_type_p (TREE_TYPE (array))) { @@ -919,16 +920,34 @@ build_java_arrayaccess (tree array, tree type, tree index) to have the bounds check evaluated first. */ if (throw != NULL_TREE) index = build2 (COMPOUND_EXPR, int_type_node, throw, index); - + data_field = lookup_field (&array_type, get_identifier ("data")); ref = build3 (COMPONENT_REF, TREE_TYPE (data_field), build_java_indirect_ref (array_type, array, flag_check_references), data_field, NULL_TREE); - - node = build4 (ARRAY_REF, type, ref, index, NULL_TREE, NULL_TREE); - return node; + + /* Take the address of the data field and convert it to a pointer to + the element type. */ + node = build1 (NOP_EXPR, build_pointer_type (type), build_address_of (ref)); + + /* Multiply the index by the size of an element to obtain a byte + offset. Convert the result to a pointer to the element type. */ + index = fold_convert (TREE_TYPE (node), + build2 (MULT_EXPR, sizetype, + fold_convert (sizetype, index), + size_exp)); + + /* Sum the byte offset and the address of the data field. */ + node = fold_build2 (PLUS_EXPR, TREE_TYPE (node), node, index); + + /* Finally, return + + *((&array->data) + index*size_exp) + + */ + return build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (node)), node); } /* Generate code to throw an ArrayStoreException if OBJECT is not assignable @@ -1127,7 +1146,7 @@ expand_java_arraystore (tree rhs_type_node) && TYPE_PRECISION (rhs_type_node) <= 32) ? int_type_node : rhs_type_node); tree index = pop_value (int_type_node); - tree array_type, array; + tree array_type, array, temp, access; /* If we're processing an `aaload' we might as well just pick `Object'. */ @@ -1149,14 +1168,31 @@ expand_java_arraystore (tree rhs_type_node) index = save_expr (index); array = save_expr (array); + /* We want to perform the bounds check (done by + build_java_arrayaccess) before the type check (done by + build_java_arraystore_check). So, we call build_java_arrayaccess + -- which returns an ARRAY_REF lvalue -- and we then generate code + to stash the address of that lvalue in a temp. Then we call + build_java_arraystore_check, and finally we generate a + MODIFY_EXPR to set the array element. */ + + access = build_java_arrayaccess (array, rhs_type_node, index); + temp = build_decl (VAR_DECL, NULL_TREE, + build_pointer_type (TREE_TYPE (access))); + java_add_local_var (temp); + java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (temp), + temp, + build_fold_addr_expr (access))); + if (TREE_CODE (rhs_type_node) == POINTER_TYPE) { tree check = build_java_arraystore_check (array, rhs_node); java_add_stmt (check); } - array = build_java_arrayaccess (array, rhs_type_node, index); - java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (array), array, rhs_node)); + java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (access), + build1 (INDIRECT_REF, TREE_TYPE (access), temp), + rhs_node)); } /* Expand the evaluation of ARRAY[INDEX]. build_java_check_indexed_type makes @@ -2048,13 +2084,32 @@ typedef struct tree (*rewrite_arglist) (tree arglist); } rewrite_rule; +/* Add __builtin_return_address(0) to the end of an arglist. */ + + +static tree +rewrite_arglist_getcaller (tree arglist) +{ + tree retaddr + = (build_function_call_expr + (built_in_decls[BUILT_IN_RETURN_ADDRESS], + build_tree_list (NULL_TREE, integer_zero_node))); + + DECL_INLINE (current_function_decl) = 0; + + return chainon (arglist, + tree_cons (NULL_TREE, retaddr, + NULL_TREE)); +} + /* Add this.class to the end of an arglist. */ static tree rewrite_arglist_getclass (tree arglist) { return chainon (arglist, - tree_cons (NULL_TREE, build_class_ref (output_class), NULL_TREE)); + tree_cons (NULL_TREE, build_class_ref (output_class), + NULL_TREE)); } static rewrite_rule rules[] = @@ -2064,6 +2119,14 @@ static rewrite_rule rules[] = {"java.lang.Class", "forName", "(Ljava/lang/String;)Ljava/lang/Class;", "(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Class;", ACC_FINAL|ACC_PRIVATE|ACC_STATIC, rewrite_arglist_getclass}, + {"gnu.classpath.VMStackWalker", "getCallingClass", "()Ljava/lang/Class;", + "(Lgnu/gcj/RawData;)Ljava/lang/Class;", + ACC_FINAL|ACC_PRIVATE|ACC_STATIC, rewrite_arglist_getcaller}, + {"gnu.classpath.VMStackWalker", "getCallingClassLoader", + "()Ljava/lang/ClassLoader;", + "(Lgnu/gcj/RawData;)Ljava/lang/ClassLoader;", + ACC_FINAL|ACC_PRIVATE|ACC_STATIC, rewrite_arglist_getcaller}, + {NULL, NULL, NULL, NULL, 0, NULL}}; /* Scan the rules list for replacements for *METHOD_P and replace the @@ -2848,7 +2911,8 @@ expand_java_field_op (int is_static, int is_putting, int field_ref_index) tree context = DECL_CONTEXT (field_ref); if (context != self_type && CLASS_INTERFACE (TYPE_NAME (context))) field_ref = build_class_init (context, field_ref); - field_ref = build_class_init (self_type, field_ref); + else + field_ref = build_class_init (self_type, field_ref); } if (is_putting) { @@ -3645,7 +3709,6 @@ force_evaluation_order (tree node) if (flag_syntax_only) return node; if (TREE_CODE (node) == CALL_EXPR - || TREE_CODE (node) == NEW_CLASS_EXPR || (TREE_CODE (node) == COMPOUND_EXPR && TREE_CODE (TREE_OPERAND (node, 0)) == CALL_EXPR && TREE_CODE (TREE_OPERAND (node, 1)) == SAVE_EXPR)) diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi index 01c02dc0dbd..07968679c19 100644 --- a/gcc/java/gcj.texi +++ b/gcc/java/gcj.texi @@ -68,8 +68,6 @@ man page gfdl(7). Generate header files from Java class files * gjnih: (gcj)Invoking gjnih. Generate JNI header files from Java class files -* jv-scan: (gcj)Invoking jv-scan. - Print information about Java source files * jcf-dump: (gcj)Invoking jcf-dump. Print information about Java class files * gij: (gcj)Invoking gij. GNU interpreter for Java bytecode @@ -121,7 +119,6 @@ files and object files, and it can read both Java source code and * Compatibility:: Compatibility between gcj and other tools for Java * Invoking gcjh:: Generate header files from class files * Invoking gjnih:: Generate JNI header files from class files -* Invoking jv-scan:: Print information about source files * Invoking jcf-dump:: Print information about class files * Invoking gij:: Interpreting Java bytecodes * Invoking gcj-dbtool:: Tool for manipulating class file databases. @@ -156,7 +153,7 @@ gcj [@option{-I}@var{dir}@dots{}] [@option{-d} @var{dir}@dots{}] @var{sourcefile}@dots{} @c man end @c man begin SEEALSO gcj -gcc(1), gcjh(1), gjnih(1), gij(1), jv-scan(1), jcf-dump(1), gfdl(7), +gcc(1), gcjh(1), gjnih(1), gij(1), jcf-dump(1), gfdl(7), and the Info entries for @file{gcj} and @file{gcc}. @c man end @end ignore @@ -305,6 +302,10 @@ behavior in this particular case.) This forces the compiler to always check for the special zero length attribute @code{gnu.gcj.gcj-compiled} in @code{java.lang.Object} and issue an error if it isn't found. + +@item -fsource=@var{VERSION} +This option is used to choose the source version accepted by +@command{gcj}. The default is @samp{1.5}. @end table @node Encodings @@ -457,6 +458,11 @@ instance, it could be used in a call to @code{ResourceBundle.getBundle}. The actual file name to be compiled this way must be specified separately. +@item -ftarget=@var{VERSION} +This can be used with @option{-C} to choose the version of bytecode +emitted by @command{gcj}. The default is @samp{1.5}. When not +generating bytecode, this option has no effect. + @item -d @var{directory} When used with @code{-C}, this causes all generated @file{.class} files to be put in the appropriate subdirectory of @var{directory}. By @@ -751,7 +757,7 @@ gcjh [@option{-stubs}] [@option{-jni}] @var{classname}@dots{} @c man end @c man begin SEEALSO gcjh -gcc(1), gcj(1), gij(1), jv-scan(1), jcf-dump(1), gfdl(7), +gcc(1), gcj(1), gij(1), jcf-dump(1), gfdl(7), and the Info entries for @file{gcj} and @file{gcc}. @c man end @end ignore @@ -865,7 +871,7 @@ gjnih [@option{-stubs}] [@option{-jni}] @var{classname}@dots{} @c man end @c man begin SEEALSO gjnih -gcc(1), gcj(1), gcjh(1), gij(1), jv-scan(1), jcf-dump(1), gfdl(7), +gcc(1), gcj(1), gcjh(1), gij(1), jcf-dump(1), gfdl(7), and the Info entries for @file{gcj} and @file{gcc}. @c man end @end ignore @@ -952,69 +958,6 @@ All remaining options are considered to be names of classes. @c man end -@node Invoking jv-scan -@chapter Invoking jv-scan - -@c man title jv-scan print information about Java source file - -@c man begin DESCRIPTION jv-scan - -The @code{jv-scan} program can be used to print information about a Java -source file (@file{.java} file). - -@c man end - -@ignore -@c man begin SYNOPSIS jv-scan -jv-scan [@option{--no-assert}] [@option{--complexity}] - [@option{--encoding}=@var{name}] [@option{--print-main}] - [@option{--list-class}] [@option{--list-filename}] - [@option{--version}] [@option{--help}] - [@option{-o} @var{file}] @var{inputfile}@dots{} -@c man end -@c man begin SEEALSO jv-scan -gcc(1), gcj(1), gcjh(1), gij(1), jcf-dump(1), gfdl(7), -and the Info entries for @file{gcj} and @file{gcc}. -@c man end -@end ignore - -@c man begin OPTIONS jv-scan - -@table @gcctabopt -@item --no-assert -Don't recognize the @code{assert} keyword, for backwards compatibility -with older versions of the language specification. - -@item --complexity -This prints a complexity measure, related to cyclomatic complexity, for -each input file. - -@item --encoding=@var{name} -This works like the corresponding @command{gcj} option. - -@item --print-main -This prints the name of the class in this file containing a @code{main} -method. - -@item --list-class -This lists the names of all classes defined in the input files. - -@item --list-filename -If @code{--list-class} is given, this option causes @code{jv-scan} to -also print the name of the file in which each class was found. - -@item -o @var{file} -Print output to the named file. - -@item --help -Print help, then exit. - -@item --version -Print version number, then exit. -@end table - -@c man end - @node Invoking jcf-dump @chapter Invoking jcf-dump @@ -1092,7 +1035,7 @@ gij [@option{-jar}] [@option{OPTION}] @dots{} @var{CLASS} [@var{ARGS}@dots{}] [@option{--showversion}] [@option{--version}] [@option{--help}][@option{-?}] @c man end @c man begin SEEALSO gij -gcc(1), gcj(1), gcjh(1), jv-scan(1), jcf-dump(1), gfdl(7), +gcc(1), gcj(1), gcjh(1), jcf-dump(1), gfdl(7), and the Info entries for @file{gcj} and @file{gcc}. @c man end @end ignore @@ -1219,7 +1162,7 @@ gcj-dbtool [@option{-0}] [@option{-}] [@option{-n}] [@option{-a}] [@option{-f}] @c man end @c man begin SEEALSO gij -gcc(1), gcj(1), gcjh(1), jv-scan(1), jcf-dump(1), gfdl(7), +gcc(1), gcj(1), gcjh(1), jcf-dump(1), gfdl(7), and the Info entries for @file{gcj} and @file{gcc}. @c man end @end ignore diff --git a/gcc/java/gen-table.pl b/gcc/java/gen-table.pl deleted file mode 100644 index a2f22135b5b..00000000000 --- a/gcc/java/gen-table.pl +++ /dev/null @@ -1,273 +0,0 @@ -#! /usr/bin/perl - -# Copyright (C) 2000, 2001, 2003 Free Software Foundation - -# 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; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# gen-table.pl - Generate tables for gcj from Unicode data. -# Usage: perl gen-table.pl DATA-FILE -# -# You can find the Unicode data file here: -# ftp://www.unicode.org/Public/3.0-Update1/UnicodeData-3.0.1.txt -# Please update this URL when this program is used with a more -# recent version of the table. Note that this table cannot be -# distributed with gcc. -# This program should not be re-run indiscriminately. Care must be -# taken that what it generates is in sync with the Java specification. - -# Names of fields in Unicode data table. -$CODE = 0; -$NAME = 1; -$CATEGORY = 2; -$COMBINING_CLASSES = 3; -$BIDI_CATEGORY = 4; -$DECOMPOSITION = 5; -$DECIMAL_VALUE = 6; -$DIGIT_VALUE = 7; -$NUMERIC_VALUE = 8; -$MIRRORED = 9; -$OLD_NAME = 10; -$COMMENT = 11; -$UPPER = 12; -$LOWER = 13; -$TITLE = 14; - -# Start of special-cased gaps in Unicode data table. -%gaps = ( - 0x4e00 => "CJK", - 0xac00 => "Hangul", - 0xd800 => "Unassigned High Surrogate", - 0xdb80 => "Private Use High Surrogate", - 0xdc00 => "Low Surrogate", - 0xe000 => "Private Use" - ); - -# This lists control characters which are also considered whitespace. -# This is a somewhat odd list, taken from the JCL definition of -# Character.isIdentifierIgnorable. -%whitespace_controls = - ( - 0x0009 => 1, - 0x000a => 1, - 0x000b => 1, - 0x000c => 1, - 0x000d => 1, - 0x001c => 1, - 0x001d => 1, - 0x001e => 1, - 0x001f => 1 - ); - -open (INPUT, "< $ARGV[0]") || exit 1; - -$last_code = -1; -while () -{ - chop; - @fields = split (';', $_, 30); - if ($#fields != 14) - { - print STDERR "Entry for $fields[$CODE] has wrong number of fields\n"; - } - - $code = hex ($fields[$CODE]); - last if $code > 0xffff; - if ($code > $last_code + 1) - { - # Found a gap. - if (defined $gaps{$code}) - { - # Fill the gap with the last character read. - @gfields = @fields; - } - else - { - # The gap represents undefined characters. Only the type - # matters. - @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', - '', '', '', ''); - } - for (++$last_code; $last_code < $code; ++$last_code) - { - $gfields{$CODE} = sprintf ("%04x", $last_code); - &process_one ($last_code, @gfields); - } - } - &process_one ($code, @fields); - $last_code = $code; -} - -close (INPUT); - -@gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', - '', '', '', ''); -for (++$last_code; $last_code < 0x10000; ++$last_code) -{ - $gfields{$CODE} = sprintf ("%04x", $last_code); - &process_one ($last_code, @gfields); -} ---$last_code; # Want last to be 0xFFFF. - -&print_tables ($last_code); - -exit 0; - -# Process a single character. -sub process_one -{ - my ($code, @fields) = @_; - - my @value = (); - my $type = $fields[$CATEGORY]; - - # See if the character is a valid identifier start. - if ($type =~ /L./ # Letter - || $type eq 'Pc' # Connecting punctuation - || $type eq 'Sc') # Currency symbol - { - push (@value, 'LETTER_START'); - } - - # See if the character is a valid identifier member. - if ($type =~ /L./ # Letter - || $type eq 'Pc' # Connecting punctuation - || $type eq 'Sc' # Currency symbol - || $type =~ /N[dl]/ # Number: decimal or letter - || $type =~ /M[nc]/ # Mark: non-spacing or combining - || ($type eq 'Cc' # Certain controls - && ! defined $whitespace_controls{$code}) - || ($code >= 0x200c # Join controls - && $code <= 0x200f) - || ($code >= 0x202a # Bidi controls -- note that there - # is a typo in the JCL where these are - # concerned. - && $code <= 0x202e) - || ($code >= 0x206a # Format controls - && $code <= 0x206f) - || $code == 0xfeff) # ZWNBSP - { - push (@value, 'LETTER_PART'); - } - - if (($type =~ /Z./ - # Java treats some values specially as non-spaces. - && $code != 0x00a0 - && $code != 0x2007 - && $code != 0x202f) - # And for our purposes there are some that should be specially - # treated as spaces. - || $code == 0x000b - || ($code >= 0x001c && $code <= 0x001f)) - { - push (@value, 'LETTER_SPACE'); - } - - if (! @value) - { - $value = '0'; - } - else - { - $value = '(' . join (' | ', @value) . ')'; - } - - $map[$code] = $value; -} - -sub print_tables -{ - my ($last) = @_; - - local ($bytes_out) = 0; - - open (OUT, "> chartables.h"); - - print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; - print OUT " Instead, edit gen-table.pl and re-run. */\n\n"; - - print OUT "#ifndef GCC_CHARTABLES_H\n"; - print OUT "#define GCC_CHARTABLES_H\n\n"; - - print OUT "#define LETTER_START 1\n"; - print OUT "#define LETTER_PART 2\n"; - print OUT "#define LETTER_SPACE 4\n\n"; - print OUT "#define LETTER_MASK 7\n\n"; - - for ($count = 0; $count <= $last; $count += 256) - { - $row[$count / 256] = &print_row ($count, '(char *) ', 'const char', 1, - 'page'); - } - - print OUT "static const char *const type_table[256] = {\n"; - for ($count = 0; $count <= $last; $count += 256) - { - print OUT ",\n" if $count > 0; - print OUT " ", $row[$count / 256]; - $bytes_out += 4; - } - print OUT "\n};\n\n"; - - print OUT "#endif /* ! GCC_CHARTABLES_H */\n"; - - close (OUT); - - printf "Generated %d bytes\n", $bytes_out; -} - -# Print a single "row" of a two-level table. -sub print_row -{ - my ($start, $def_pfx, $typname, $typsize, $name) = @_; - - my ($i); - my (@values); - my ($flag) = 1; - my ($off); - for ($off = 0; $off < 256; ++$off) - { - $values[$off] = $map[$off + $start]; - if ($values[$off] ne $values[0]) - { - $flag = 0; - } - } - if ($flag) - { - return $def_pfx . $values[0]; - } - - printf OUT "static %s %s%d[256] = {\n ", $typname, $name, $start / 256; - my ($column) = 2; - for ($i = $start; $i < $start + 256; ++$i) - { - print OUT ", " - if $i > $start; - my ($text) = $values[$i - $start]; - if (length ($text) + $column + 2 > 78) - { - print OUT "\n "; - $column = 2; - } - print OUT $text; - $column += length ($text) + 2; - } - print OUT "\n};\n\n"; - - $bytes_out += 256 * $typsize; - - return sprintf "%s%d", $name, $start / 256; -} diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c deleted file mode 100644 index c79a0a918c7..00000000000 --- a/gcc/java/gjavah.c +++ /dev/null @@ -1,2673 +0,0 @@ -/* Program to write C++-suitable header files from a Java(TM) .class - file. This is similar to SUN's javah. - -Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -Free Software Foundation, Inc. - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -/* Written by Per Bothner , February 1996. */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include - -#include "jcf.h" -#include "tree.h" -#include "version.h" -#include "javaop.h" -#include "java-tree.h" -#include "java-opcodes.h" -#include "ggc.h" -#include "hashtab.h" -#include "intl.h" - -#include - - - -/* The output file. */ -FILE *out = NULL; - -/* Nonzero on failure. */ -static int found_error = 0; - -#ifdef JNI_DEFAULT -#define TOOLNAME "gjnih" - -/* Nonzero if we're generating JNI output. */ -int flag_jni = 1; -#else -#define TOOLNAME "gcjh" - -int flag_jni = 0; -#endif - -/* When nonzero, warn when source file is newer than matching class - file. */ -int flag_newer = 1; - -/* Directory to place resulting files in. Set by -d option. */ -static const char *output_directory = ""; - -/* Directory to place temporary file. Set by -td option. Currently unused. */ -static const char *temp_directory = "/tmp"; - -/* Number of friend functions we have to declare. */ -static int friend_count; - -/* A class can optionally have a `friend' function declared. If - non-NULL, this is that function. */ -static char **friend_specs = NULL; - -/* Number of lines we are prepending before the class. */ -static int prepend_count; - -/* We can prepend extra lines before the class's start. */ -static char **prepend_specs = NULL; - -/* Number of lines we are appending at the end of the class. */ -static int add_count; - -/* We can append extra lines just before the class's end. */ -static char **add_specs = NULL; - -/* Number of lines we are appending after the class. */ -static int append_count; - -/* We can append extra lines after the class's end. */ -static char **append_specs = NULL; - -int verbose = 0; - -int stubs = 0; - -struct JCF *current_jcf; - -/* This holds access information for the last field we examined. They - let us generate "private:", "public:", and "protected:" properly. - If 0 then we haven't previously examined any field. */ -static JCF_u2 last_access; - -/* Pass this macro the flags for a class and for a method. It will - return true if the method should be considered `final'. */ -#define METHOD_IS_FINAL(Class, Method) \ - (((Class) & ACC_FINAL) || ((Method) & (ACC_FINAL | ACC_PRIVATE))) - -/* Pass this macro the flags for a method. It will return true if the - method is native. */ -#define METHOD_IS_NATIVE(Method) \ - ((Method) & ACC_NATIVE) - -#define METHOD_IS_PRIVATE(Class, Method) \ - (((Method) & ACC_PRIVATE) != 0) - -/* We keep a linked list of all method names we have seen. This lets - us determine if a method name and a field name are in conflict. */ -struct method_name -{ - unsigned char *name; - int length; - unsigned char *signature; - int sig_length; - int is_native; - struct method_name *next; -}; - -/* List of method names we've seen. */ -static struct method_name *method_name_list; - -static void print_field_info (FILE*, JCF*, int, int, JCF_u2); -static void print_mangled_classname (FILE*, JCF*, const char*, int); -static int print_cxx_classname (FILE*, const char*, JCF*, int, int); -static void print_method_info (FILE*, JCF*, int, int, JCF_u2); -static void print_c_decl (FILE*, JCF*, int, int, int, const char *, int); -static void print_stub_or_jni (FILE*, JCF*, int, int, int, const char *, int); -static void print_full_cxx_name (FILE*, JCF*, int, int, int, const char *, int); -static void decompile_method (FILE*, JCF*, int) ATTRIBUTE_UNUSED; -static void add_class_decl (FILE*, JCF*, JCF_u2); - -static void print_name (FILE *, JCF *, int); -static void print_base_classname (FILE *, JCF *, int); -static int utf8_cmp (const unsigned char *, int, const char *); -static char *cxx_keyword_subst (const unsigned char *, int); -static void generate_access (FILE *, JCF_u2); -static int name_is_method_p (const unsigned char *, int); -static char *get_field_name (JCF *, int, JCF_u2); -static void print_field_name (FILE *, JCF *, int, JCF_u2); -static const unsigned char *super_class_name (JCF *, int *); -static void print_include (FILE *, const unsigned char *, int); -static int gcjh_streq (const void *p1, const void *p2); -static int throwable_p (const unsigned char *signature); -static const unsigned char * - decode_signature_piece (FILE *, const unsigned char *, - const unsigned char *, int *); -static void print_class_decls (FILE *, JCF *, int); -static void error (const char *gmsgid, ...) ATTRIBUTE_PRINTF_1; -static void usage (void) ATTRIBUTE_NORETURN; -static void help (void) ATTRIBUTE_NORETURN; -static void version (void) ATTRIBUTE_NORETURN; -static int overloaded_jni_method_exists_p (const unsigned char *, int, - const char *, int); -static void jni_print_char (FILE *, int); -static void jni_print_float (FILE *, jfloat); -static void jni_print_double (FILE *, jdouble); -static void decompile_return_statement (FILE *, JCF *, int, int, int); - -static void handle_inner_classes (int); - -JCF_u2 current_field_name; -JCF_u2 current_field_value; -JCF_u2 current_field_signature; -JCF_u2 current_field_flags; - -#define HANDLE_START_FIELD(ACCESS_FLAGS, NAME, SIGNATURE, ATTRIBUTE_COUNT) \ -( current_field_name = (NAME), current_field_signature = (SIGNATURE), \ - current_field_flags = (ACCESS_FLAGS), current_field_value = 0) - -/* We pass over fields twice. The first time we just note the types - of the fields and then the start of the methods. Then we go back - and parse the fields for real. This is ugly. */ -static int field_pass; -/* Likewise we pass over methods twice. The first time we generate - class decl information; the second time we generate actual method - decls. */ -static int method_pass; - -#define HANDLE_END_FIELD() \ - if (field_pass) \ - { \ - if (out && ! stubs) \ - print_field_info (out, jcf, current_field_name, \ - current_field_signature, \ - current_field_flags); \ - } \ - else if (! stubs && ! flag_jni) \ - add_class_decl (out, jcf, current_field_signature); - -#define HANDLE_CONSTANTVALUE(VALUEINDEX) current_field_value = (VALUEINDEX) - -static int method_declared = 0; -static int method_access = 0; -static int method_printed = 0; -static int method_synthetic = 0; -static int method_signature = 0; - -/* Set to 1 while the very first data member of a class is being handled. */ -static int is_first_data_member = 0; - -#define HANDLE_METHOD(ACCESS_FLAGS, NAME, SIGNATURE, ATTRIBUTE_COUNT) \ - { \ - method_synthetic = 0; \ - method_printed = 0; \ - decompiled = 0; \ - method_signature = SIGNATURE; \ - if (ATTRIBUTE_COUNT) \ - method_synthetic = peek_attribute (jcf, ATTRIBUTE_COUNT, \ - (const char *)"Synthetic", 9); \ - /* If a synthetic methods have been declared, its attribute aren't \ - worth reading (and triggering side-effects). We skip them an \ - set ATTRIBUTE_COUNT to zero so that they'll be skipped in \ - jcf_parse_one_method. */ \ - if (method_synthetic) \ - { \ - skip_attribute (jcf, ATTRIBUTE_COUNT); \ - ATTRIBUTE_COUNT = 0; \ - } \ - if (method_pass && !method_synthetic) \ - { \ - if (out) \ - print_method_info (out, jcf, NAME, SIGNATURE, \ - ACCESS_FLAGS); \ - } \ - else if (!method_synthetic) \ - { \ - print_method_info (NULL, jcf, NAME, SIGNATURE, \ - ACCESS_FLAGS); \ - if (! stubs && ! flag_jni) \ - add_class_decl (out, jcf, SIGNATURE); \ - } \ - } - -/* Only include byte-code decompilation optimizations for ELF targets - since the generated headers are only known to work with ELF weak - symbol semantics. Specifically, these optimizations are known to - not work on PE-COFF and possibly others. */ -#ifdef OBJECT_FORMAT_ELF -#define HANDLE_CODE_ATTRIBUTE(MAX_STACK, MAX_LOCALS, CODE_LENGTH) \ - if (out && method_declared) decompile_method (out, jcf, CODE_LENGTH); -#endif - -static int decompiled = 0; -#define HANDLE_END_METHOD() \ - if (out && method_printed && !method_synthetic) \ - fputs (decompiled || stubs ? "\n" : ";\n", out); - -#define HANDLE_INNERCLASSES_ATTRIBUTE(COUNT) handle_inner_classes (COUNT) - -/* We're going to need {peek,skip}_attribute, enable their definition. */ -#define NEED_PEEK_ATTRIBUTE -#define NEED_SKIP_ATTRIBUTE - -#include "jcf-reader.c" - -/* Print an error message and set found_error. - Not really gcc-internal-format message, but as error elsewhere - uses it, assume all users will use intersection between - c-format and gcc-internal-format. */ -static void -error (const char *gmsgid, ...) -{ - va_list ap; - - va_start (ap, gmsgid); - - fprintf (stderr, TOOLNAME ": "); - vfprintf (stderr, _(gmsgid), ap); - va_end (ap); - fprintf (stderr, "\n"); - found_error = 1; -} - -/* Print a single-precision float, suitable for parsing by g++. */ -static void -jni_print_float (FILE *stream, jfloat f) -{ - /* It'd be nice to use __builtin_nan/__builtin_inf here but they don't - work in data initializers. FIXME. */ - if (JFLOAT_FINITE (f)) - { - if (flag_jni) - { - fputs (" ", out); - if (f.negative) - putc ('-', stream); - if (f.exponent) - fprintf (stream, "0x1.%.6xp%+df", - ((unsigned int)f.mantissa) << 1, - f.exponent - JFLOAT_EXP_BIAS); - else - /* Exponent of 0x01 is -125; exponent of 0x00 is *also* -125, - because the implicit leading 1 bit is no longer present. */ - fprintf (stream, "0x0.%.6xp%+df", - ((unsigned int)f.mantissa) << 1, - f.exponent + 1 - JFLOAT_EXP_BIAS); - } - } - if (! flag_jni) - fputs (";\n", stream); -} - -/* Print a double-precision float, suitable for parsing by g++. */ -static void -jni_print_double (FILE *stream, jdouble f) -{ - /* It'd be nice to use __builtin_nan/__builtin_inf here but they don't - work in data initializers. FIXME. */ - if (JDOUBLE_FINITE (f)) - { - if (flag_jni) - { - fputs (" ", out); - if (f.negative) - putc ('-', stream); - if (f.exponent) - fprintf (stream, "0x1.%.5x%.8xp%+d", - f.mantissa0, f.mantissa1, - f.exponent - JDOUBLE_EXP_BIAS); - else - /* Exponent of 0x001 is -1022; exponent of 0x000 is *also* -1022, - because the implicit leading 1 bit is no longer present. */ - fprintf (stream, "0x0.%.5x%.8xp%+d", - f.mantissa0, f.mantissa1, - f.exponent + 1 - JDOUBLE_EXP_BIAS); - } - } - fputs (flag_jni ? "\n" : ";\n", stream); -} - -/* Print a character, appropriately mangled for JNI. */ - -static void -jni_print_char (FILE *stream, int ch) -{ - if (! flag_jni) - jcf_print_char (stream, ch); - else if (ch == '(' || ch == ')') - { - /* Ignore. */ - } - else if (ch == '_') - fputs ("_1", stream); - else if (ch == ';') - fputs ("_2", stream); - else if (ch == '[') - fputs ("_3", stream); - else if (ch == '/') - fputs ("_", stream); - else if (ISALNUM (ch)) - fputc (ch, stream); - else - { - /* "Unicode" character. */ - fprintf (stream, "_0%04x", ch); - } -} - -/* Print a name from the class data. If the index does not point to a - string, an error results. */ - -static void -print_name (FILE* stream, JCF* jcf, int name_index) -{ - if (JPOOL_TAG (jcf, name_index) != CONSTANT_Utf8) - { - fprintf (stream, ""); - found_error = 1; - } - else if (! flag_jni) - jcf_print_utf8 (stream, JPOOL_UTF_DATA (jcf, name_index), - JPOOL_UTF_LENGTH (jcf, name_index)); - else - { - /* For JNI we must correctly quote each character. */ - const unsigned char *str = JPOOL_UTF_DATA (jcf, name_index); - int length = JPOOL_UTF_LENGTH (jcf, name_index); - const unsigned char *limit = str + length; - while (str < limit) - { - int ch = UTF8_GET (str, limit); - if (ch < 0) - { - fprintf (stream, "\\"); - return; - } - jni_print_char (stream, ch); - } - } -} - -/* Print base name of class. The base name is everything after the - final separator. */ - -static void -print_base_classname (FILE *stream, JCF *jcf, int index) -{ - int name_index = JPOOL_USHORT1 (jcf, index); - int len; - const unsigned char *s, *p, *limit; - - s = JPOOL_UTF_DATA (jcf, name_index); - len = JPOOL_UTF_LENGTH (jcf, name_index); - limit = s + len; - p = s; - while (s < limit) - { - int c = UTF8_GET (s, limit); - if (c == '/') - p = s; - } - - while (p < limit) - { - int ch = UTF8_GET (p, limit); - if (ch == '/') - fputs ("::", stream); - else - jcf_print_char (stream, ch); - } -} - -/* Return 0 if NAME is equal to STR, -1 if STR is "less" than NAME, - and 1 if STR is "greater" than NAME. */ - -static int -utf8_cmp (const unsigned char *str, int length, const char *name) -{ - const unsigned char *limit = str + length; - int i; - - for (i = 0; name[i]; ++i) - { - int ch = UTF8_GET (str, limit); - if (ch != name[i]) - return ch - name[i]; - } - - return str == limit ? 0 : 1; -} - -/* This is a sorted list of all C++ keywords. */ - -static const char *const cxx_keywords[] = -{ - "_Complex", - "__alignof", - "__alignof__", - "__asm", - "__asm__", - "__attribute", - "__attribute__", - "__builtin_va_arg", - "__complex", - "__complex__", - "__const", - "__const__", - "__extension__", - "__imag", - "__imag__", - "__inline", - "__inline__", - "__label__", - "__null", - "__real", - "__real__", - "__restrict", - "__restrict__", - "__signed", - "__signed__", - "__typeof", - "__typeof__", - "__volatile", - "__volatile__", - "and", - "and_eq", - "asm", - "auto", - "bitand", - "bitor", - "bool", - "break", - "case", - "catch", - "char", - "class", - "compl", - "const", - "const_cast", - "continue", - "default", - "delete", - "do", - "double", - "dynamic_cast", - "else", - "enum", - "explicit", - "export", - "extern", - "false", - "float", - "for", - "friend", - "goto", - "if", - "inline", - "int", - "long", - "mutable", - "namespace", - "new", - "not", - "not_eq", - "operator", - "or", - "or_eq", - "private", - "protected", - "public", - "register", - "reinterpret_cast", - "return", - "short", - "signed", - "sizeof", - "static", - "static_cast", - "struct", - "switch", - "template", - "this", - "throw", - "true", - "try", - "typedef", - "typeid", - "typename", - "typeof", - "union", - "unsigned", - "using", - "virtual", - "void", - "volatile", - "wchar_t", - "while", - "xor", - "xor_eq" -}; - - -/* If NAME is the name of a C++ keyword, then return an override name. - This is a name that can be used in place of the keyword. - Otherwise, return NULL. The return value is malloc()d. */ - -static char * -cxx_keyword_subst (const unsigned char *str, int length) -{ - int last = ARRAY_SIZE (cxx_keywords); - int first = 0; - int mid = (last + first) / 2; - int old = -1; - - for (mid = (last + first) / 2; - mid != old; - old = mid, mid = (last + first) / 2) - { - int kwl = strlen (cxx_keywords[mid]); - int min_length = kwl > length ? length : kwl; - int r = utf8_cmp (str, min_length, cxx_keywords[mid]); - - if (r == 0) - { - int i; - - /* Skip all trailing `$'. */ - for (i = min_length; i < length && str[i] == '$'; ++i) - ; - /* We've only found a match if all the remaining characters - are `$'. */ - if (i == length) - { - char *dup = XNEWVEC (char, 2 + length - min_length + kwl); - strcpy (dup, cxx_keywords[mid]); - for (i = kwl; i < length + 1; ++i) - dup[i] = '$'; - dup[i] = '\0'; - return dup; - } - r = 1; - } - - if (r < 0) - last = mid; - else - first = mid; - } - return NULL; -} - -/* Generate an access control keyword based on FLAGS. */ - -static void -generate_access (FILE *stream, JCF_u2 flags) -{ - if ((flags & ACC_VISIBILITY) == last_access) - return; - last_access = (flags & ACC_VISIBILITY); - - switch (last_access) - { - case 0: - fputs ("public: // actually package-private\n", stream); - break; - case ACC_PUBLIC: - fputs ("public:\n", stream); - break; - case ACC_PRIVATE: - fputs ("private:\n", stream); - break; - case ACC_PROTECTED: - fputs ("public: // actually protected\n", stream); - break; - default: - found_error = 1; - fprintf (stream, "#error unrecognized visibility %d\n", - (flags & ACC_VISIBILITY)); - break; - } -} - -/* See if NAME is already the name of a method. */ -static int -name_is_method_p (const unsigned char *name, int length) -{ - struct method_name *p; - - for (p = method_name_list; p != NULL; p = p->next) - { - if (p->length == length && ! memcmp (p->name, name, length)) - return 1; - } - return 0; -} - -/* Free the method name list. */ -static void -free_method_name_list (void) -{ - struct method_name *p = method_name_list; - while (p != NULL) - { - struct method_name *next = p->next; - free (p->name); - free (p->signature); - free (p); - p = next; - } - method_name_list = NULL; -} - -/* If there is already a native method named NAME, whose signature is not - SIGNATURE, then return true. Otherwise return false. */ -static int -overloaded_jni_method_exists_p (const unsigned char *name, int length, - const char *signature, int sig_length) -{ - struct method_name *p; - - for (p = method_name_list; p != NULL; p = p->next) - { - if (p->is_native - && p->length == length - && ! memcmp (p->name, name, length) - && (p->sig_length != sig_length - || memcmp (p->signature, signature, sig_length))) - return 1; - } - return 0; -} - -/* Get name of a field. This handles renamings due to C++ clash. */ -static char * -get_field_name (JCF *jcf, int name_index, JCF_u2 flags) -{ - unsigned char *name = JPOOL_UTF_DATA (jcf, name_index); - int length = JPOOL_UTF_LENGTH (jcf, name_index); - char *override; - - if (name_is_method_p (name, length)) - { - /* This field name matches a method. So override the name with - a dummy name. This is yucky, but it isn't clear what else to - do. FIXME: if the field is static, then we'll be in real - trouble. */ - if ((flags & ACC_STATIC)) - { - error ("static field has same name as method"); - return NULL; - } - - override = XNEWVEC (char, length + 3); - memcpy (override, name, length); - strcpy (override + length, "__"); - } - else if (flag_jni) - override = NULL; - else - override = cxx_keyword_subst (name, length); - - return override; -} - -/* Print a field name. Convenience function for use with - get_field_name. */ -static void -print_field_name (FILE *stream, JCF *jcf, int name_index, JCF_u2 flags) -{ - char *override = get_field_name (jcf, name_index, flags); - - if (override) - { - fputs (override, stream); - free (override); - } - else - jcf_print_utf8 (stream, JPOOL_UTF_DATA (jcf, name_index), - JPOOL_UTF_LENGTH (jcf, name_index)); -} - -static void -print_field_info (FILE *stream, JCF* jcf, int name_index, int sig_index, - JCF_u2 flags) -{ - char *override = NULL; - - if (! flag_jni) - generate_access (stream, flags); - if (JPOOL_TAG (jcf, name_index) != CONSTANT_Utf8) - { - fprintf (stream, ""); - found_error = 1; - return; - } - - if (flag_jni) - { - /* For JNI we only want to print real constants. */ - int val; - if (! (flags & ACC_STATIC) - || ! (flags & ACC_FINAL) - || current_field_value <= 0) - return; - val = JPOOL_TAG (jcf, current_field_value); - if (val != CONSTANT_Integer && val != CONSTANT_Long - && val != CONSTANT_Float && val != CONSTANT_Double) - return; - } - else - { - /* Initial indentation. */ - fputs (" ", stream); - } - - if ((flags & ACC_STATIC)) - { - if (flag_jni) - { - print_cxx_classname (stream, "#undef ", jcf, jcf->this_class, 1); - fputs ("_", stream); - print_field_name (stream, jcf, name_index, 0); - fputs ("\n", stream); - print_cxx_classname (stream, "#define ", jcf, jcf->this_class, 1); - fputs ("_", stream); - } - else - fputs ("static ", stream); - - if ((flags & ACC_FINAL) && current_field_value > 0) - { - char buffer[25]; - int done = 1; - - switch (JPOOL_TAG (jcf, current_field_value)) - { - case CONSTANT_Integer: - { - jint num; - int most_negative = 0; - if (! flag_jni) - fputs ("const jint ", stream); - print_field_name (stream, jcf, name_index, 0); - fputs (flag_jni ? " " : " = ", stream); - num = JPOOL_INT (jcf, current_field_value); - /* We single out the most negative number to print - specially. This avoids later warnings from g++. */ - if (num == (jint) 0x80000000) - { - most_negative = 1; - ++num; - } - format_int (buffer, (jlong) num, 10); - fprintf (stream, "%sL%s%s\n", buffer, - most_negative ? " - 1" : "", - flag_jni ? "" : ";"); - } - break; - case CONSTANT_Long: - { - jlong num; - int most_negative = 0; - if (! flag_jni) - fputs ("const jlong ", stream); - print_field_name (stream, jcf, name_index, 0); - fputs (flag_jni ? " " : " = ", stream); - num = JPOOL_LONG (jcf, current_field_value); - /* We single out the most negative number to print - specially.. This avoids later warnings from g++. */ - if (num == (jlong) 0x8000000000000000LL) - { - most_negative = 1; - ++num; - } - format_int (buffer, num, 10); - fprintf (stream, "%sLL%s%s\n", buffer, - most_negative ? " - 1" :"", - flag_jni ? "" : ";"); - } - break; - case CONSTANT_Float: - { - jfloat fnum = JPOOL_FLOAT (jcf, current_field_value); - if (! flag_jni) - fputs ("const jfloat ", stream); - print_field_name (stream, jcf, name_index, 0); - jni_print_float (stream, fnum); - } - break; - case CONSTANT_Double: - { - jdouble dnum = JPOOL_DOUBLE (jcf, current_field_value); - if (! flag_jni) - fputs ("const jdouble ", stream); - print_field_name (stream, jcf, name_index, 0); - jni_print_double (stream, dnum); - } - break; - default: - /* We can't print this as a constant, but we can still - print something sensible. */ - done = 0; - break; - } - - if (done) - return; - } - } - - /* assert (! flag_jni); */ - override = get_field_name (jcf, name_index, flags); - print_c_decl (stream, jcf, name_index, sig_index, 0, override, flags); - fputs (";\n", stream); - - if (override) - free (override); -} - - -static void -print_method_info (FILE *stream, JCF* jcf, int name_index, int sig_index, - JCF_u2 flags) -{ - const unsigned char *str; - int length, is_init = 0; - char *override = NULL; - - method_declared = 0; - method_access = flags; - if (stream && JPOOL_TAG (jcf, name_index) != CONSTANT_Utf8) - fprintf (stream, ""); - str = JPOOL_UTF_DATA (jcf, name_index); - length = JPOOL_UTF_LENGTH (jcf, name_index); - - if (str[0] == '<') - { - /* Ignore the internally generated method . However, - treat as a constructor. */ - if (! utf8_cmp (str, length, "")) - is_init = 1; - else if (! METHOD_IS_FINAL (jcf->access_flags, flags) - && ! (flags & ACC_STATIC)) - { - /* FIXME: i18n bug here. Order of prints should not be - fixed. */ - fprintf (stderr, _("ignored method '")); - jcf_print_utf8 (stderr, str, length); - fprintf (stderr, _("' marked virtual\n")); - found_error = 1; - return; - } - else - return; - } - - /* During the first method pass, build a list of method names. This will - be used to determine if field names conflict with method names. */ - if (! stream) - { - struct method_name *nn; - - nn = XNEW (struct method_name); - nn->name = XNEWVEC (unsigned char, length); - memcpy (nn->name, str, length); - nn->length = length; - nn->next = method_name_list; - nn->sig_length = JPOOL_UTF_LENGTH (jcf, sig_index); - nn->signature = XNEWVEC (unsigned char, nn->sig_length); - nn->is_native = METHOD_IS_NATIVE (flags); - memcpy (nn->signature, JPOOL_UTF_DATA (jcf, sig_index), - nn->sig_length); - method_name_list = nn; - - /* The rest of this function doesn't matter. */ - return; - } - - /* We don't worry about overrides in JNI mode. */ - if (! flag_jni) - { - /* We can't generate a method whose name is a C++ reserved word. - We can't just ignore the function, because that will cause - incorrect code to be generated if the function is virtual - (not only for calls to this function for for other functions - after it in the vtbl). So we give it a dummy name instead. */ - override = cxx_keyword_subst (str, length); - } - - if (! stubs && ! flag_jni) - { - method_printed = 1; - - generate_access (stream, flags); - - fputs (" ", out); - if ((flags & ACC_STATIC)) - fputs ("static ", out); - else if (! METHOD_IS_PRIVATE (jcf->access_flags, flags)) - { - /* Don't print `virtual' if we have a constructor. */ - if (! is_init) - fputs ("virtual ", out); - } - print_c_decl (out, jcf, name_index, sig_index, is_init, override, flags); - - if ((flags & ACC_ABSTRACT)) - fputs (" = 0", out); - else - method_declared = 1; - } - else - { - if (METHOD_IS_NATIVE (flags)) - { - method_printed = 1; - print_stub_or_jni (out, jcf, name_index, sig_index, - is_init, override, flags); - } - } - - if (override) - free (override); -} - -/* A helper for the decompiler which prints a `return' statement where - the type is a reference type. If METHODTYPE and OBJECTTYPE are not - identical, we emit a cast. We do this because the C++ compiler - doesn't know that a reference can be cast to the type of an - interface it implements. METHODTYPE is the index of the method's - signature. NAMEINDEX is the index of the field name; -1 for - `this'. OBJECTTYPE is the index of the object's type. */ -static void -decompile_return_statement (FILE *out, JCF *jcf, int methodtype, - int nameindex, int objecttype) -{ - int cast = 0; - int obj_name_len, method_name_len; - const unsigned char *obj_data, *method_data; - - obj_name_len = JPOOL_UTF_LENGTH (jcf, objecttype); - obj_data = JPOOL_UTF_DATA (jcf, objecttype); - - method_name_len = JPOOL_UTF_LENGTH (jcf, methodtype); - method_data = JPOOL_UTF_DATA (jcf, methodtype); - - /* Skip forward to return type part of method. */ - while (*method_data != ')') - { - ++method_data; - --method_name_len; - } - /* Skip past `)'. */ - ++method_data; - --method_name_len; - - /* If we see an `L', skip it and the trailing `;'. */ - if (method_data[0] == 'L' && method_data[method_name_len - 1] == ';') - { - ++method_data; - method_name_len -= 2; - } - if (obj_data[0] == 'L' && obj_data[obj_name_len - 1] == ';') - { - ++obj_data; - obj_name_len -= 2; - } - - /* FIXME: if METHODTYPE is a superclass of OBJECTTYPE then we don't - need a cast. Right now there is no way to determine if this is - the case. */ - if (method_name_len != obj_name_len) - cast = 1; - else - { - int i; - for (i = 0; i < method_name_len; ++i) - { - if (method_data[i] != obj_data[i]) - { - cast = 1; - break; - } - } - } - - fputs (" { return ", out); - - if (cast) - { - int array_depth = 0; - const unsigned char *limit; - - fputs ("reinterpret_cast<", out); - - while (*method_data == '[') - { - ++method_data; - ++array_depth; - --method_name_len; - fputs ("JArray<", out); - } - - /* Leading space to avoid C++ digraphs. */ - fputs (" ::", out); - - /* If we see an `L', skip it and the trailing `;'. Only do this - if we've seen an array specification. If we don't have an - array then the `L' was stripped earlier. */ - if (array_depth && method_data[0] == 'L' - && method_data[method_name_len - 1] == ';') - { - ++method_data; - method_name_len -= 2; - } - - limit = method_data + method_name_len; - while (method_data < limit) - { - int ch = UTF8_GET (method_data, limit); - if (ch == '/') - fputs ("::", out); - else - jcf_print_char (out, ch); - } - fputs (" *", out); - - /* Close each array. */ - while (array_depth > 0) - { - fputs ("> *", out); - --array_depth; - } - - /* Close the cast. */ - fputs ("> (", out); - } - - if (nameindex == -1) - fputs ("this", out); - else - print_field_name (out, jcf, nameindex, 0); - - if (cast) - fputs (")", out); - - fputs ("; }", out); -} - - -/* Try to decompile a method body. Right now we just try to handle a - simple case that we can do. Expand as desired. */ -static void -decompile_method (FILE *out, JCF *jcf, int code_len) -{ - const unsigned char *codes = jcf->read_ptr; - int index; - uint16 name_and_type, name; - - /* If the method is synchronized, don't touch it. */ - if ((method_access & ACC_SYNCHRONIZED)) - return; - - if (code_len == 5 - && codes[0] == OPCODE_aload_0 - && codes[1] == OPCODE_getfield - && (codes[4] == OPCODE_areturn - || codes[4] == OPCODE_dreturn - || codes[4] == OPCODE_freturn - || codes[4] == OPCODE_ireturn - || codes[4] == OPCODE_lreturn)) - { - /* Found code like `return FIELD'. */ - index = (codes[2] << 8) | codes[3]; - /* FIXME: ensure that tag is CONSTANT_Fieldref. */ - name_and_type = JPOOL_USHORT2 (jcf, index); - /* FIXME: ensure that tag is CONSTANT_NameAndType. */ - name = JPOOL_USHORT1 (jcf, name_and_type); - if (codes[4] == OPCODE_areturn) - decompile_return_statement (out, jcf, method_signature, - name, JPOOL_USHORT2 (jcf, name_and_type)); - else - { - fputs (" { return ", out); - /* FIXME: flags. */ - print_field_name (out, jcf, name, 0); - fputs ("; }", out); - } - decompiled = 1; - } - else if (code_len == 2 - && codes[0] == OPCODE_aload_0 - && codes[1] == OPCODE_areturn - /* We're going to generate `return this'. This only makes - sense for non-static methods. */ - && ! (method_access & ACC_STATIC)) - { - decompile_return_statement (out, jcf, method_signature, -1, - JPOOL_USHORT1 (jcf, jcf->this_class)); - decompiled = 1; - } - else if (code_len == 1 && codes[0] == OPCODE_return) - { - /* Found plain `return'. */ - fputs (" { }", out); - decompiled = 1; - } - else if (code_len == 2 - && codes[0] == OPCODE_aconst_null - && codes[1] == OPCODE_areturn) - { - /* Found `return null'. We don't want to depend on NULL being - defined. */ - fputs (" { return 0; }", out); - decompiled = 1; - } -} - -/* Like strcmp, but invert the return result for the hash table. This - should probably be in hashtab.c to complement the existing string - hash function. */ -static int -gcjh_streq (const void *p1, const void *p2) -{ - return ! strcmp ((char *) p1, (char *) p2); -} - -/* Return 1 if the initial part of CLNAME names a subclass of throwable, - or 0 if not. CLNAME may be extracted from a signature, and can be - terminated with either `;' or NULL. */ -static int -throwable_p (const unsigned char *clname) -{ - int length; - unsigned char *current; - int i; - int result = 0; - - /* We keep two hash tables of class names. In one we list all the - classes which are subclasses of Throwable. In the other we will - all other classes. We keep two tables to make the code a bit - simpler; we don't have to have a structure mapping class name to - a `throwable?' bit. */ - static htab_t throw_hash; - static htab_t non_throw_hash; - static int init_done = 0; - - if (! init_done) - { - void **slot; - unsigned char *str; - - /* Self-initializing. The cost of this really doesn't matter. - We also don't care about freeing these, either. */ - throw_hash = htab_create (10, htab_hash_string, gcjh_streq, - (htab_del) free); - non_throw_hash = htab_create (10, htab_hash_string, gcjh_streq, - (htab_del) free); - - /* Make sure the root classes show up in the tables. */ - str = (unsigned char *) xstrdup ("java.lang.Throwable"); - slot = htab_find_slot (throw_hash, str, INSERT); - *slot = str; - - str = (unsigned char *) xstrdup ("java.lang.Object"); - slot = htab_find_slot (non_throw_hash, str, INSERT); - *slot = str; - - init_done = 1; - } - - for (length = 0; clname[length] != ';' && clname[length] != '\0'; ++length) - ; - current = XNEWVEC (unsigned char, length + 1); - for (i = 0; i < length; ++i) - current[i] = clname[i] == '/' ? '.' : clname[i]; - current[length] = '\0'; - - /* We don't compute the hash slot here because the table might be - modified by the recursion. In that case the slot could be - invalidated. */ - if (htab_find (throw_hash, current)) - result = 1; - else if (htab_find (non_throw_hash, current)) - result = 0; - else - { - JCF jcf; - void **slot; - unsigned char *super, *tmp; - int super_length = -1; - const char *classfile_name = find_class ((char *) current, strlen ((const char *) current), - &jcf, 0); - - if (! classfile_name) - { - error ("couldn't find class %s", current); - return 0; - } - if (jcf_parse_preamble (&jcf) != 0 - || jcf_parse_constant_pool (&jcf) != 0 - || verify_constant_pool (&jcf) > 0) - { - error ("parse error while reading %s", classfile_name); - return 0; - } - jcf_parse_class (&jcf); - - tmp = (unsigned char *) super_class_name (&jcf, &super_length); - super = XNEWVEC (unsigned char, super_length + 1); - memcpy (super, tmp, super_length); - super[super_length] = '\0'; - - result = throwable_p (super); - slot = htab_find_slot (result ? throw_hash : non_throw_hash, - current, INSERT); - *slot = current; - current = NULL; - - JCF_FINISH (&jcf); - } - - return result; -} - -/* Print one piece of a signature. Returns pointer to next parseable - character on success, NULL on error. */ -static const unsigned char * -decode_signature_piece (FILE *stream, const unsigned char *signature, - const unsigned char *limit, int *need_space) -{ - const char *ctype; - int array_depth = 0; - - switch (signature[0]) - { - case '[': - /* More spaghetti. */ - - array_loop: - for (signature++; (signature < limit - && ISDIGIT (*signature)); signature++) - ; - switch (*signature) - { - case 'B': - ctype = "jbyteArray"; - break; - case 'C': - ctype = "jcharArray"; - break; - case 'D': - ctype = "jdoubleArray"; - break; - case 'F': - ctype = "jfloatArray"; - break; - case 'I': - ctype = "jintArray"; - break; - case 'S': - ctype = "jshortArray"; - break; - case 'J': - ctype = "jlongArray"; - break; - case 'Z': - ctype = "jbooleanArray"; - break; - case '[': - /* We have a nested array. */ - ++array_depth; - if (! flag_jni) - fputs ("JArray<", stream); - goto array_loop; - - case 'L': - /* We have to generate a reference to JArray here, so that - our output matches what the compiler does. */ - ++signature; - /* Space between `<' and `:' to avoid C++ digraphs. */ - if (! flag_jni) - fputs ("JArray< ::", stream); - while (signature < limit && *signature != ';') - { - int ch = UTF8_GET (signature, limit); - if (! flag_jni) - { - if (ch == '/') - fputs ("::", stream); - else - jcf_print_char (stream, ch); - } - } - if (! flag_jni) - fputs (" *> *", stream); - *need_space = 0; - ctype = NULL; - break; - default: - /* Unparseable signature. */ - return NULL; - } - - /* If the previous iterations left us with something to print, - print it. For JNI, we always print `jobjectArray' in the - nested cases. */ - if (flag_jni && (ctype == NULL || array_depth > 0)) - { - ctype = "jobjectArray"; - *need_space = 1; - } - /* The `printit' case will advance SIGNATURE for us. If we - don't go there, we must advance past the `;' ourselves. */ - if (ctype != NULL) - goto printit; - ++signature; - break; - - case '(': - case ')': - /* This shouldn't happen. */ - return NULL; - - case 'B': ctype = "jbyte"; goto printit; - case 'C': ctype = "jchar"; goto printit; - case 'D': ctype = "jdouble"; goto printit; - case 'F': ctype = "jfloat"; goto printit; - case 'I': ctype = "jint"; goto printit; - case 'J': ctype = "jlong"; goto printit; - case 'S': ctype = "jshort"; goto printit; - case 'Z': ctype = "jboolean"; goto printit; - case 'V': ctype = "void"; goto printit; - case 'L': - if (flag_jni) - { - /* We know about certain types and special-case their names. */ - if (! strncmp ((const char *) signature, "Ljava/lang/String;", - sizeof ("Ljava/lang/String;") -1)) - ctype = "jstring"; - else if (! strncmp ((const char *) signature, "Ljava/lang/Class;", - sizeof ("Ljava/lang/Class;") - 1)) - ctype = "jclass"; - /* Skip leading 'L' for throwable_p call. */ - else if (throwable_p (signature + 1)) - ctype = "jthrowable"; - else - ctype = "jobject"; - - while (*signature && *signature != ';') - ++signature; - - goto printit; - } - /* Print a leading "::" so we look in the right namespace. */ - fputs ("::", stream); - ++signature; - while (*signature && *signature != ';') - { - int ch = UTF8_GET (signature, limit); - if (ch == '/') - fputs ("::", stream); - else - jcf_print_char (stream, ch); - } - fputs (" *", stream); - if (*signature == ';') - signature++; - *need_space = 0; - break; - default: - *need_space = 1; - jni_print_char (stream, *signature++); - break; - printit: - signature++; - *need_space = 1; - fputs (ctype, stream); - break; - } - - if (! flag_jni) - { - while (array_depth-- > 0) - fputs ("> *", stream); - } - - return signature; -} - -static void -print_c_decl (FILE* stream, JCF* jcf, int name_index, int signature_index, - int is_init, const char *name_override, int flags) -{ - if (JPOOL_TAG (jcf, signature_index) != CONSTANT_Utf8) - { - fprintf (stream, ""); - found_error = 1; - } - else - { - int length = JPOOL_UTF_LENGTH (jcf, signature_index); - const unsigned char *str0 = JPOOL_UTF_DATA (jcf, signature_index); - const unsigned char *str = str0; - const unsigned char *limit = str + length; - int need_space = 0; - int is_method = str[0] == '('; - const unsigned char *next; - - /* If printing a method, skip to the return signature and print - that first. However, there is no return value if this is a - constructor. */ - if (is_method && ! is_init) - { - while (str < limit) - { - int ch = *str++; - if (ch == ')') - break; - } - } - - /* If printing a field or an ordinary method, then print the - "return value" now. */ - if (! is_method || ! is_init) - { - next = decode_signature_piece (stream, str, limit, &need_space); - if (! next) - { - error ("unparseable signature: '%s'", str0); - return; - } - } - - /* Force the alignment of the first data member. This is - because the "new" C++ ABI changed the alignment of non-POD - classes. gcj, however, still uses the "old" alignment. */ - if (is_first_data_member && ! (flags & ACC_STATIC) && ! is_method) - { - is_first_data_member = 0; - print_cxx_classname (out, " __attribute__((aligned(__alignof__( ", - jcf, jcf->super_class, 1); - fputs (" )))) ", stream); - } - - /* Now print the name of the thing. */ - if (need_space) - fputs (" ", stream); - print_full_cxx_name (stream, jcf, name_index, - signature_index, is_init, name_override, - flags); - } -} - -/* Print the unqualified method name followed by the signature. */ -static void -print_full_cxx_name (FILE* stream, JCF* jcf, int name_index, - int signature_index, int is_init, - const char *name_override, int flags) -{ - int length = JPOOL_UTF_LENGTH (jcf, signature_index); - const unsigned char *str0 = JPOOL_UTF_DATA (jcf, signature_index); - const unsigned char *str = str0; - const unsigned char *limit = str + length; - int need_space = 0; - int is_method = str[0] == '('; - const unsigned char *next; - - if (name_override) - fputs (name_override, stream); - else if (name_index) - { - /* Declare constructors specially. */ - if (is_init) - print_base_classname (stream, jcf, jcf->this_class); - else - print_name (stream, jcf, name_index); - } - - if (flag_jni) - { - unsigned char *signature = JPOOL_UTF_DATA (jcf, signature_index); - int sig_len = JPOOL_UTF_LENGTH (jcf, signature_index); - if (overloaded_jni_method_exists_p (JPOOL_UTF_DATA (jcf, name_index), - JPOOL_UTF_LENGTH (jcf, name_index), - (const char *) signature, sig_len)) - { - /* If this method is overloaded by another native method, - then include the argument information in the mangled - name. */ - unsigned char *limit = signature + sig_len; - fputs ("__", stream); - while (signature < limit) - { - int ch = UTF8_GET (signature, limit); - jni_print_char (stream, ch); - if (ch == ')') - { - /* Done. */ - break; - } - } - } - } - - if (is_method) - { - /* Have a method or a constructor. Print signature pieces - until done. */ - fputs (" (", stream); - - str = str0 + 1; - - /* In JNI mode, add extra arguments. */ - if (flag_jni) - { - /* FIXME: it would be nice to know if we are printing a decl - or a definition, and only print `env' for the latter. */ - fputs ("JNIEnv *env", stream); - - fputs ((flags & ACC_STATIC) ? ", jclass" : ", jobject", stream); - - if (*str != ')') - fputs (", ", stream); - } - - while (str < limit && *str != ')') - { - next = decode_signature_piece (stream, str, limit, &need_space); - if (! next) - { - error ("unparseable signature: '%s'", str0); - return; - } - - if (next < limit && *next != ')') - fputs (", ", stream); - str = next; - } - - fputs (")", stream); - } -} - -/* This is a helper for print_stub_or_jni. */ -static void -print_name_for_stub_or_jni (FILE *stream, JCF *jcf, int name_index, - int signature_index, int is_init, - const char *name_override, int flags) -{ - const char *const prefix = flag_jni ? "Java_" : ""; - print_cxx_classname (stream, prefix, jcf, jcf->this_class, 1); - fputs (flag_jni ? "_" : "::", stream); - print_full_cxx_name (stream, jcf, name_index, - signature_index, is_init, name_override, - flags); -} - -static void -print_stub_or_jni (FILE* stream, JCF* jcf, int name_index, - int signature_index, int is_init, - const char *name_override, int flags) -{ - if (JPOOL_TAG (jcf, signature_index) != CONSTANT_Utf8) - { - fprintf (stream, ""); - found_error = 1; - } - else - { - int length = JPOOL_UTF_LENGTH (jcf, signature_index); - const unsigned char *str0 = JPOOL_UTF_DATA (jcf, signature_index); - const unsigned char *str = str0; - const unsigned char *limit = str + length; - int need_space = 0; - int is_method = str[0] == '('; - const unsigned char *next; - - /* Don't print fields in the JNI case. */ - if (! is_method && flag_jni) - return; - - if (flag_jni && ! stubs) - fputs ("JNIEXPORT ", stream); - - /* If printing a method, skip to the return signature and print - that first. However, there is no return value if this is a - constructor. */ - if (is_method && ! is_init) - { - while (str < limit) - { - int ch = *str++; - if (ch == ')') - break; - } - } - - /* If printing a field or an ordinary method, then print the - "return value" now. Note that a constructor can't be native, - so we don't bother checking this in the JNI case. */ - if (! is_method || ! is_init) - { - next = decode_signature_piece (stream, str, limit, &need_space); - if (! next) - { - error ("unparseable signature: '%s'", str0); - return; - } - } - - /* When printing a JNI header we need to respect the space. In - other cases we're just going to insert a newline anyway. */ - fputs (need_space && ! stubs ? " " : "\n", stream); - - if (flag_jni && ! stubs) - fputs ("JNICALL ", stream); - - /* Now print the name of the thing. */ - print_name_for_stub_or_jni (stream, jcf, name_index, - signature_index, is_init, name_override, - flags); - - /* Print the body. */ - if (stubs) - { - if (flag_jni) - fputs ("\n{\n (*env)->FatalError (env, \"", stream); - else - fputs ("\n{\n throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 (\"", stream); - print_name_for_stub_or_jni (stream, jcf, name_index, - signature_index, is_init, - name_override, - flags); - fprintf (stream, " not implemented\")%s;\n}\n\n", - flag_jni ? "" : ")"); - } - } -} - -static void -print_mangled_classname (FILE *stream, JCF *jcf, const char *prefix, int index) -{ - int name_index = JPOOL_USHORT1 (jcf, index); - fputs (prefix, stream); - jcf_print_utf8_replace (out, - JPOOL_UTF_DATA (jcf, name_index), - JPOOL_UTF_LENGTH (jcf, name_index), - '/', '_'); -} - -/* Print PREFIX, then a class name in C++ format. If the name refers - to an array, ignore it and don't print PREFIX. Returns 1 if - something was printed, 0 otherwise. */ -static int -print_cxx_classname (FILE *stream, const char *prefix, - JCF *jcf, int index, int add_scope) -{ - int name_index = JPOOL_USHORT1 (jcf, index); - int len, c; - const unsigned char *s, *p, *limit; - - s = JPOOL_UTF_DATA (jcf, name_index); - len = JPOOL_UTF_LENGTH (jcf, name_index); - limit = s + len; - - /* Explicitly omit arrays here. */ - p = s; - c = UTF8_GET (p, limit); - if (c == '[') - return 0; - - fputs (prefix, stream); - - /* Print a leading "::" so we look in the right namespace. */ - if (! flag_jni && ! stubs && add_scope) - fputs ("::", stream); - - while (s < limit) - { - c = UTF8_GET (s, limit); - if (c == '/') - fputs (flag_jni ? "_" : "::", stream); - else - jni_print_char (stream, c); - } - - return 1; -} - -int written_class_count = 0; - -/* Return name of superclass. If LEN is not NULL, fill it with length - of name. */ -static const unsigned char * -super_class_name (JCF *derived_jcf, int *len) -{ - int supername_index = JPOOL_USHORT1 (derived_jcf, derived_jcf->super_class); - int supername_length = JPOOL_UTF_LENGTH (derived_jcf, supername_index); - const unsigned char *supername = - JPOOL_UTF_DATA (derived_jcf, supername_index); - - if (len) - *len = supername_length; - - return supername; -} - -static void -handle_inner_classes (int count) -{ - int i; - - if (out && ! flag_jni && ! stubs && count > 0) - fprintf (out, "\n"); - - for (i = 0; i < count; ++i) - { - JCF_u2 inner_info_index = JCF_readu2 (current_jcf); - - /* There are a few more values here, but we don't care about - them. The (void) cast is apparently the only way to avoid a - warning here. */ - (void) JCF_readu2 (current_jcf); - (void) JCF_readu2 (current_jcf); - (void) JCF_readu2 (current_jcf); - - if (out && ! flag_jni && ! stubs) - { - print_mangled_classname (out, current_jcf, " friend class ", - inner_info_index); - fprintf (out, ";\n"); - } - } -} - - - -/* We keep track of all the `#include's we generate, so we can avoid - duplicates. */ -struct include -{ - char *name; - struct include *next; -}; - -/* List of all includes. */ -static struct include *all_includes = NULL; - -/* Generate a #include. */ -static void -print_include (FILE *out, const unsigned char *utf8, int len) -{ - struct include *incl; - - if (! out) - return; - - if (len == -1) - len = strlen ((const char *) utf8); - - for (incl = all_includes; incl; incl = incl->next) - { - /* We check the length because we might have a proper prefix. */ - if (len == (int) strlen (incl->name) - && ! strncmp (incl->name, (const char *) utf8, len)) - return; - } - - incl = XNEW (struct include); - incl->name = XNEWVEC (char, len + 1); - strncpy (incl->name, (const char *) utf8, len); - incl->name[len] = '\0'; - incl->next = all_includes; - all_includes = incl; - - fputs ("#include <", out); - jcf_print_utf8_replace (out, utf8, len, - '/', - flag_jni ? '_' : '/'); - fputs (".h>\n", out); -} - - - -/* This is used to represent part of a package or class name. */ -struct namelet -{ - /* The text of this part of the name. */ - char *name; - /* True if this represents a class. */ - int is_class; - /* Linked list of all classes and packages inside this one. */ - struct namelet *subnamelets; - /* Pointer to next sibling. */ - struct namelet *next; -}; - -static void add_namelet (const unsigned char *, const unsigned char *, - struct namelet *); -static void print_namelet (FILE *, struct namelet *, int); - -/* The special root namelet. */ -static struct namelet root = -{ - NULL, - 0, - NULL, - NULL -}; - -/* This extracts the next name segment from the full UTF-8 encoded - package or class name and links it into the tree. It does this - recursively. */ -static void -add_namelet (const unsigned char *name, const unsigned char *name_limit, - struct namelet *parent) -{ - const unsigned char *p; - struct namelet *n = NULL, *np; - - /* We want to skip the standard namespaces that we assume the - runtime already knows about. We only do this at the top level, - though, hence the check for `root'. */ - if (parent == &root) - { -#define JAVALANG "java/lang/" -#define JAVAIO "java/io/" -#define JAVAUTIL "java/util/" - if ((name_limit - name >= (int) sizeof (JAVALANG) - 1 - && ! strncmp ((const char *) name, JAVALANG, sizeof (JAVALANG) - 1)) - || (name_limit - name >= (int) sizeof (JAVAUTIL) - 1 - && ! strncmp ((const char *) name, JAVAUTIL, sizeof (JAVAUTIL) - 1)) - || (name_limit - name >= (int) sizeof (JAVAIO) - 1 - && ! strncmp ((const char *) name, JAVAIO, sizeof (JAVAIO) - 1))) - return; - } - - for (p = name; p < name_limit && *p != '/'; ++p) - ; - - /* Search for this name beneath the PARENT node. */ - for (np = parent->subnamelets; np != NULL; np = np->next) - { - /* We check the length because we might have a proper prefix. */ - if ((int) strlen (np->name) == p - name && - ! strncmp ((const char *) name, np->name, p - name)) - { - n = np; - break; - } - } - - if (n == NULL) - { - n = XNEW (struct namelet); - n->name = XNEWVEC (char, p - name + 1); - strncpy (n->name, (const char *) name, p - name); - n->name[p - name] = '\0'; - n->is_class = (p == name_limit); - n->subnamelets = NULL; - n->next = parent->subnamelets; - parent->subnamelets = n; - } - - /* We recurse if there is more text, and if the trailing piece does - not represent an inner class. */ - if (p < name_limit) - add_namelet (p + 1, name_limit, n); -} - -/* Print a single namelet. Destroys namelets while printing. */ -static void -print_namelet (FILE *out, struct namelet *name, int depth) -{ - int i, term = 0; - struct namelet *c; - - if (name->name) - { - for (i = 0; i < depth; ++i) - fputc (' ', out); - fprintf (out, "%s %s", name->is_class ? "class" : "namespace", - name->name); - if (name->is_class && name->subnamelets == NULL) - fputs (";\n", out); - else - { - term = 1; - fputs ("\n", out); - for (i = 0; i < depth; ++i) - fputc (' ', out); - fputs ("{\n", out); - } - } - - c = name->subnamelets; - while (c != NULL) - { - struct namelet *next = c->next; - print_namelet (out, c, depth + 2); - c = next; - } - name->subnamelets = NULL; - - if (name->name) - { - if (term) - { - for (i = 0; i < depth; ++i) - fputc (' ', out); - fputs ("}\n", out); - /* Only print a `;' when printing a class. C++ is evil. */ - if (name->is_class) - fputs (";", out); - } - - free (name->name); - free (name); - } -} - -/* This is called to add some classes to the list of classes for which - we need decls. The signature argument can be a function - signature. */ -static void -add_class_decl (FILE *out, JCF *jcf, JCF_u2 signature) -{ - const unsigned char *s = JPOOL_UTF_DATA (jcf, signature); - int len = JPOOL_UTF_LENGTH (jcf, signature); - int i; - - for (i = 0; i < len; ++i) - { - int start; - - /* If we see an array, then we include the array header. */ - if (s[i] == '[') - { - print_include (out, (const unsigned char *) "gcj/array", -1); - continue; - } - - /* We're looking for `L;' -- everything else is - ignorable. */ - if (s[i] != 'L') - continue; - - for (start = ++i; i < len && s[i] != ';'; ++i) - ; - - add_namelet (&s[start], &s[i], &root); - } -} - -/* Print declarations for all classes required by this class. Any - class or package in the `java' package is assumed to be handled - statically in libjava; we don't generate declarations for these. - This makes the generated headers a bit easier to read. */ -static void -print_class_decls (FILE *out, JCF *jcf, int self) -{ - /* Make sure to always add the current class to the list of things - that should be declared. */ - int name_index = JPOOL_USHORT1 (jcf, self); - int len; - const unsigned char *s; - - s = JPOOL_UTF_DATA (jcf, name_index); - len = JPOOL_UTF_LENGTH (jcf, name_index); - add_namelet (s, s + len, &root); - - if (root.subnamelets) - { - fputs ("extern \"Java\"\n{\n", out); - /* We use an initial offset of 0 because the root namelet - doesn't cause anything to print. */ - print_namelet (out, &root, 0); - fputs ("}\n\n", out); - } -} - - - -static void -process_file (JCF *jcf, FILE *out) -{ - int code, i; - uint32 field_start, method_end, method_start; - - current_jcf = jcf; - - last_access = -1; - - if (jcf_parse_preamble (jcf) != 0) - { - error ("Not a valid Java .class file."); - return; - } - - /* Parse and possibly print constant pool */ - code = jcf_parse_constant_pool (jcf); - if (code != 0) - { - error ("error while parsing constant pool"); - return; - } - code = verify_constant_pool (jcf); - if (code > 0) - { - error ("error in constant pool entry #%d", code); - return; - } - - jcf_parse_class (jcf); - - if (written_class_count++ == 0 && out) - { - const char *cstart, *cstart2, *mode, *cend, *what, *jflag; - if (flag_jni) - { - cstart = "/*"; - cstart2 = " "; - cend = " */"; - mode = ""; - what = "JNI"; - jflag = " -jni"; - } - else - { - cstart = "//"; - cstart2 = "//"; - cend = ""; - mode = " -*- c++ -*-"; - what = "CNI"; - jflag = ""; - } - - if (! stubs) - fprintf (out, "%s DO NOT EDIT THIS FILE - it is machine generated%s%s\n\n", - cstart, mode, cend); - else - { - fprintf (out, "%s This file was created by `" TOOLNAME " -stubs%s'.%s\n\ -%s\n\ -%s This file is intended to give you a head start on implementing native\n\ -%s methods using %s.\n\ -%s Be aware: running `" TOOLNAME " -stubs %s' once more for this class may\n\ -%s overwrite any edits you have made to this file.%s\n\n", - cstart, jflag, mode, - cstart2, - cstart2, - cstart2, - what, - cstart2, - jflag, - cstart2, - cend); - } - } - - if (out) - { - if (! stubs) - { - print_mangled_classname (out, jcf, "#ifndef __", jcf->this_class); - fprintf (out, "__\n"); - - print_mangled_classname (out, jcf, "#define __", jcf->this_class); - fprintf (out, "__\n\n"); - - if (flag_jni) - { - fprintf (out, "#include \n\n"); - fprintf (out, "#ifdef __cplusplus\n"); - fprintf (out, "extern \"C\"\n"); - fprintf (out, "{\n"); - fprintf (out, "#endif\n"); - } - else - { - /* We do this to ensure that inline methods won't be - `outlined' by g++. This works as long as method and - fields are not added by the user. */ - fprintf (out, "#pragma interface\n"); - - if (jcf->super_class) - { - int super_length; - const unsigned char *supername = - super_class_name (jcf, &super_length); - - fputs ("\n", out); - print_include (out, supername, super_length); - } - } - } - else - { - /* Strip off the ".class" portion of the name when printing - the include file name. */ - char *name; - int i, len = strlen (jcf->classname); - if (len > 6 && ! strcmp (&jcf->classname[len - 6], ".class")) - len -= 6; - /* Turn the class name into a file name. */ - name = XNEWVEC (char, len + 1); - for (i = 0; i < len; ++i) - name[i] = jcf->classname[i] == '.' ? '/' : jcf->classname[i]; - name[i] = '\0'; - print_include (out, (const unsigned char *) name, len); - free (name); - - if (! flag_jni) - { - print_include (out, (const unsigned char *) "gcj/cni", -1); - print_include (out, (const unsigned char *) "java/lang/UnsupportedOperationException", - -1); - } - } - } - - /* We want to parse the methods first. But we need to find where - they start. So first we skip the fields, then parse the methods. - Then we parse the fields and skip the methods. This is ugly, but - not too bad since we need two full passes to get class decl - information anyway. */ - field_pass = 0; - field_start = JCF_TELL (jcf); - jcf_parse_fields (jcf); - - method_start = JCF_TELL (jcf); - method_pass = 0; - jcf_parse_methods (jcf); - - if (out) - fputs ("\n", out); - - if (out && ! flag_jni) - { - if (! stubs) - print_class_decls (out, jcf, jcf->this_class); - - for (i = 0; i < prepend_count; ++i) - fprintf (out, "%s\n", prepend_specs[i]); - if (prepend_count > 0) - fputc ('\n', out); - - if (! stubs) - { - if (! print_cxx_classname (out, "class ", jcf, - jcf->this_class, 0)) - { - error ("class is of array type\n"); - return; - } - if (jcf->super_class) - { - if (! print_cxx_classname (out, " : public ", - jcf, jcf->super_class, 1)) - { - error ("base class is of array type"); - return; - } - } - - fputs ("\n{\n", out); - } - } - - /* Now go back for second pass over methods and fields. */ - is_first_data_member = 1; - - JCF_SEEK (jcf, method_start); - method_pass = 1; - jcf_parse_methods (jcf); - method_end = JCF_TELL (jcf); - - field_pass = 1; - JCF_SEEK (jcf, field_start); - jcf_parse_fields (jcf); - JCF_SEEK (jcf, method_end); - - jcf_parse_final_attributes (jcf); - - if (out && ! stubs) - { - if (flag_jni) - { - fprintf (out, "\n#ifdef __cplusplus\n"); - fprintf (out, "}\n"); - fprintf (out, "#endif\n"); - } - else - { - /* Generate friend decl if we still must. */ - for (i = 0; i < friend_count; ++i) - fprintf (out, " friend %s\n", friend_specs[i]); - - /* Generate extra declarations. */ - if (add_count > 0) - fputc ('\n', out); - for (i = 0; i < add_count; ++i) - fprintf (out, " %s\n", add_specs[i]); - - /* Generate an entry for the class object. */ - generate_access (out, ACC_PUBLIC); - fprintf (out, "\n static ::java::lang::Class class$;\n"); - - fputs ("}", out); - - if (jcf->access_flags & ACC_INTERFACE) - fputs (" __attribute__ ((java_interface))", out); - - fputs (";\n", out); - - if (append_count > 0) - fputc ('\n', out); - for (i = 0; i < append_count; ++i) - fprintf (out, "%s\n", append_specs[i]); - } - - print_mangled_classname (out, jcf, - "\n#endif /* __", jcf->this_class); - fprintf (out, "__ */\n"); - } -} - - - -/* This is used to mark options with no short value. */ -#define LONG_OPT(Num) ((Num) + 128) - -#define OPT_classpath LONG_OPT (0) -#define OPT_CLASSPATH OPT_classpath -#define OPT_bootclasspath LONG_OPT (1) -#define OPT_extdirs LONG_OPT (2) -#define OPT_HELP LONG_OPT (3) -#define OPT_TEMP LONG_OPT (4) -#define OPT_VERSION LONG_OPT (5) -#define OPT_PREPEND LONG_OPT (6) -#define OPT_FRIEND LONG_OPT (7) -#define OPT_ADD LONG_OPT (8) -#define OPT_APPEND LONG_OPT (9) -#define OPT_M LONG_OPT (10) -#define OPT_MM LONG_OPT (11) -#define OPT_MG LONG_OPT (12) -#define OPT_MD LONG_OPT (13) -#define OPT_MMD LONG_OPT (14) -#define OPT_FORCE LONG_OPT (15) -#define OPT_OLD LONG_OPT (16) -#define OPT_TRACE LONG_OPT (17) - -static const struct option options[] = -{ - { "classpath", required_argument, NULL, OPT_classpath }, - { "bootclasspath", required_argument, NULL, OPT_bootclasspath }, - { "extdirs", required_argument, NULL, OPT_extdirs }, - { "CLASSPATH", required_argument, NULL, OPT_CLASSPATH }, - { "help", no_argument, NULL, OPT_HELP }, - { "stubs", no_argument, &stubs, 1 }, - { "td", required_argument, NULL, OPT_TEMP }, - { "verbose", no_argument, NULL, 'v' }, - { "version", no_argument, NULL, OPT_VERSION }, - { "prepend", required_argument, NULL, OPT_PREPEND }, - { "friend", required_argument, NULL, OPT_FRIEND }, - { "add", required_argument, NULL, OPT_ADD }, - { "append", required_argument, NULL, OPT_APPEND }, - { "M", no_argument, NULL, OPT_M }, - { "MM", no_argument, NULL, OPT_MM }, - { "MG", no_argument, NULL, OPT_MG }, - { "MD", no_argument, NULL, OPT_MD }, - { "MMD", no_argument, NULL, OPT_MMD }, - { "jni", no_argument, &flag_jni, 1 }, - { "force", no_argument, NULL, OPT_FORCE }, - /* If the output file should be named "ld" then a space is needed - between -o and its argument, ld. */ - { "old", no_argument, NULL, OPT_OLD }, - { "trace", no_argument, NULL, OPT_TRACE }, - { NULL, required_argument, NULL, 'J' }, - { NULL, no_argument, NULL, 0 } -}; - -static void -usage (void) -{ - fprintf (stderr, _("Try '" TOOLNAME " --help' for more information.\n")); - exit (1); -} - -static void -help (void) -{ - printf (_("Usage: " TOOLNAME " [OPTION]... CLASS...\n\n")); - printf (_("Generate C or C++ header files from .class files\n\n")); - printf (_(" -stubs Generate an implementation stub file\n")); - printf (_(" -jni Generate a JNI header or stub\n")); - printf (_(" -force Always overwrite output files\n")); - printf (_(" -old Unused compatibility option\n")); - printf (_(" -trace Unused compatibility option\n")); - printf (_(" -J OPTION Unused compatibility option\n")); - printf ("\n"); - printf (_(" -add TEXT Insert TEXT into class body\n")); - printf (_(" -append TEXT Insert TEXT after class declaration\n")); - printf (_(" -friend TEXT Insert TEXT as 'friend' declaration\n")); - printf (_(" -prepend TEXT Insert TEXT before start of class\n")); - printf ("\n"); - printf (_(" --classpath PATH Set path to find .class files\n")); - printf (_(" -IDIR Append directory to class path\n")); - printf (_(" --bootclasspath PATH Override built-in class path\n")); - printf (_(" --extdirs PATH Set extensions directory path\n")); - printf (_(" -d DIRECTORY Set output directory name\n")); - printf (_(" -o FILE Set output file name\n")); - printf (_(" -td DIRECTORY Set temporary directory name\n")); - printf ("\n"); - printf (_(" --help Print this help, then exit\n")); - printf (_(" --version Print version number, then exit\n")); - printf (_(" -v, --verbose Print extra information while running\n")); - printf ("\n"); - printf (_(" -M Print all dependencies to stdout;\n" - " suppress ordinary output\n")); - printf (_(" -MM Print non-system dependencies to stdout;\n" - " suppress ordinary output\n")); - printf (_(" -MD Print all dependencies to stdout\n")); - printf (_(" -MMD Print non-system dependencies to stdout\n")); - /* We omit -MG until it is implemented. */ - printf ("\n"); - printf (_("For bug reporting instructions, please see:\n" - "%s.\n"), bug_report_url); - exit (0); -} - -static void -version (void) -{ - printf (TOOLNAME " (GCC) %s\n\n", version_string); - printf ("Copyright %s 2006 Free Software Foundation, Inc.\n", _("(C)")); - printf (_("This is free software; see the source for copying conditions. There is NO\n" - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n")); - exit (0); -} - -int -main (int argc, char** argv) -{ - JCF jcf; - int argi; - char *output_file = NULL; - int emit_dependencies = 0, suppress_output = 0; - int opt; - int local_found_error; - - /* Unlock the stdio streams. */ - unlock_std_streams (); - - gcc_init_libintl (); - - if (argc <= 1) - { - error ("no classes specified"); - usage (); - } - - jcf_path_init (); - - /* We use getopt_long_only to allow single `-' long options. For - some of our options this is more natural. */ - while ((opt = getopt_long_only (argc, argv, "J:I:d:o:v", options, NULL)) != -1) - { - switch (opt) - { - case 0: - /* Already handled. */ - break; - - case 'o': - output_file = optarg; - break; - - case 'd': - output_directory = optarg; - break; - - case 'I': - jcf_path_include_arg (optarg); - break; - - case 'v': - verbose++; - break; - - case OPT_classpath: - jcf_path_classpath_arg (optarg); - break; - - case OPT_bootclasspath: - jcf_path_bootclasspath_arg (optarg); - break; - - case OPT_extdirs: - jcf_path_extdirs_arg (optarg); - break; - - case OPT_HELP: - help (); - break; - - case OPT_TEMP: - temp_directory = optarg; - break; - - case OPT_VERSION: - version (); - break; - - case OPT_PREPEND: - if (prepend_count == 0) - prepend_specs = XNEWVEC (char *, argc); - prepend_specs[prepend_count++] = optarg; - break; - - case OPT_FRIEND: - if (friend_count == 0) - friend_specs = XNEWVEC (char *, argc); - friend_specs[friend_count++] = optarg; - break; - - case OPT_ADD: - if (add_count == 0) - add_specs = XNEWVEC (char *, argc); - add_specs[add_count++] = optarg; - break; - - case OPT_APPEND: - if (append_count == 0) - append_specs = XNEWVEC (char *, argc); - append_specs[append_count++] = optarg; - break; - - case OPT_M: - emit_dependencies = 1; - suppress_output = 1; - jcf_dependency_init (1); - break; - - case OPT_MM: - emit_dependencies = 1; - suppress_output = 1; - jcf_dependency_init (0); - break; - - case OPT_MG: - error ("'-MG' option is unimplemented"); - exit (1); - - case OPT_MD: - emit_dependencies = 1; - jcf_dependency_init (1); - break; - - case OPT_MMD: - emit_dependencies = 1; - jcf_dependency_init (0); - break; - - case OPT_FORCE: - break; - - case OPT_OLD: - break; - - case OPT_TRACE: - break; - - case 'J': - /* Ignore -J options. */ - break; - - default: - usage (); - break; - } - } - - if (optind == argc) - { - error ("no classes specified"); - usage (); - } - - jcf_path_seal (verbose); - - if (output_file && emit_dependencies) - { - error ("can't specify both -o and -MD"); - exit (1); - } - - local_found_error = 0; - for (argi = optind; argi < argc; argi++) - { - char *classname = argv[argi]; - char *current_output_file = NULL; - const char *classfile_name; - - /* We reset the error state here so that we can detect errors - that occur when processing this file, so the output can be - unlinked if need be. */ - found_error = 0; - - if (verbose) - printf (_("Processing %s\n"), classname); - if (! output_file) - jcf_dependency_reset (); - classfile_name = find_class (classname, strlen (classname), &jcf, 0); - if (classfile_name == NULL) - { - error ("%s: no such class", classname); - exit (1); - } - if (verbose) - printf (_("Found in %s\n"), classfile_name); - if (output_file) - { - if (strcmp (output_file, "-") == 0) - out = stdout; - else if (out == NULL) - { - out = fopen (output_file, "w"); - } - if (out == NULL) - { - perror (output_file); - exit (1); - } - current_output_file = output_file; - } - else - { - int dir_len = strlen (output_directory); - int i, classname_length = strlen (classname); - current_output_file = XNEWVEC (char, dir_len + classname_length + 5); - strcpy (current_output_file, output_directory); - if (dir_len > 0 && output_directory[dir_len-1] != '/') - current_output_file[dir_len++] = '/'; - for (i = 0; classname[i] != '\0'; i++) - { - char ch = classname[i]; - if (ch == '.') - ch = '/'; - if (flag_jni && ch == '/') - ch = '_'; - current_output_file[dir_len++] = ch; - } - if (emit_dependencies) - { - if (suppress_output) - { - jcf_dependency_set_dep_file ("-"); - out = NULL; - } - else - { - /* We use `.hd' and not `.d' to avoid clashes with - dependency tracking from straight compilation. */ - strcpy (current_output_file + dir_len, ".hd"); - jcf_dependency_set_dep_file (current_output_file); - } - } - strcpy (current_output_file + dir_len, - stubs ? (flag_jni ? ".c" : ".cc") : ".h"); - jcf_dependency_set_target (current_output_file); - if (! suppress_output) - { - out = fopen (current_output_file, "w"); - if (out == NULL) - { - perror (current_output_file); - exit (1); - } - } - } - free_method_name_list (); - process_file (&jcf, out); - JCF_FINISH (&jcf); - - /* If we found an error and we're writing to a real file, - delete it. */ - if (found_error && ! suppress_output && current_output_file != NULL - && strcmp (current_output_file, "-")) - unlink (current_output_file); - - if (current_output_file != output_file) - free (current_output_file); - jcf_dependency_write (); - - local_found_error |= found_error; - } - - if (out != NULL && out != stdout) - fclose (out); - - return local_found_error; -} diff --git a/gcc/java/java-gimplify.c b/gcc/java/java-gimplify.c index 76d299f947f..f084154c86d 100644 --- a/gcc/java/java-gimplify.c +++ b/gcc/java/java-gimplify.c @@ -1,5 +1,5 @@ /* Java(TM) language-specific gimplification routines. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -34,10 +34,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ static tree java_gimplify_labeled_block_expr (tree); static tree java_gimplify_exit_block_expr (tree); -static tree java_gimplify_case_expr (tree); -static tree java_gimplify_default_expr (tree); static tree java_gimplify_block (tree); -static tree java_gimplify_new_array_init (tree); static tree java_gimplify_try_expr (tree); static enum gimplify_status java_gimplify_modify_expr (tree*, tree*, tree *); static enum gimplify_status java_gimplify_component_ref (tree*, tree*, tree *); @@ -92,30 +89,10 @@ java_gimplify_expr (tree *expr_p, tree *pre_p ATTRIBUTE_UNUSED, *expr_p = java_gimplify_exit_block_expr (*expr_p); break; - case CASE_EXPR: - *expr_p = java_gimplify_case_expr (*expr_p); - break; - - case DEFAULT_EXPR: - *expr_p = java_gimplify_default_expr (*expr_p); - break; - - case NEW_ARRAY_INIT: - *expr_p = java_gimplify_new_array_init (*expr_p); - break; - case TRY_EXPR: *expr_p = java_gimplify_try_expr (*expr_p); break; - case JAVA_CATCH_EXPR: - *expr_p = TREE_OPERAND (*expr_p, 0); - break; - - case JAVA_EXC_OBJ_EXPR: - *expr_p = build_exception_object_ref (TREE_TYPE (*expr_p)); - break; - case VAR_DECL: *expr_p = java_replace_reference (*expr_p, /* want_lvalue */ false); return GS_UNHANDLED; @@ -147,15 +124,6 @@ java_gimplify_expr (tree *expr_p, tree *pre_p ATTRIBUTE_UNUSED, case COMPARE_EXPR: case COMPARE_L_EXPR: case COMPARE_G_EXPR: - case UNARY_PLUS_EXPR: - case NEW_ARRAY_EXPR: - case NEW_ANONYMOUS_ARRAY_EXPR: - case NEW_CLASS_EXPR: - case THIS_EXPR: - case SYNCHRONIZED_EXPR: - case CONDITIONAL_EXPR: - case INSTANCEOF_EXPR: - case CLASS_LITERAL: gcc_unreachable (); case COMPONENT_REF: @@ -360,21 +328,6 @@ java_gimplify_self_mod_expr (tree *expr_p, tree *pre_p ATTRIBUTE_UNUSED, } -static tree -java_gimplify_case_expr (tree expr) -{ - tree label = create_artificial_label (); - return build3 (CASE_LABEL_EXPR, void_type_node, - TREE_OPERAND (expr, 0), NULL_TREE, label); -} - -static tree -java_gimplify_default_expr (tree expr ATTRIBUTE_UNUSED) -{ - tree label = create_artificial_label (); - return build3 (CASE_LABEL_EXPR, void_type_node, NULL_TREE, NULL_TREE, label); -} - /* Gimplify BLOCK into a BIND_EXPR. */ static tree @@ -411,46 +364,6 @@ java_gimplify_block (tree java_block) return build3 (BIND_EXPR, TREE_TYPE (java_block), decls, body, block); } -/* Gimplify a NEW_ARRAY_INIT node into array/element assignments. */ - -static tree -java_gimplify_new_array_init (tree exp) -{ - tree array_type = TREE_TYPE (TREE_TYPE (exp)); - tree data_field = lookup_field (&array_type, get_identifier ("data")); - tree element_type = TYPE_ARRAY_ELEMENT (array_type); - HOST_WIDE_INT ilength = java_array_type_length (array_type); - tree length = build_int_cst (NULL_TREE, ilength); - tree init = TREE_OPERAND (exp, 0); - tree value; - unsigned HOST_WIDE_INT cnt; - - tree array_ptr_type = build_pointer_type (array_type); - tree tmp = create_tmp_var (array_ptr_type, "array"); - tree body = build2 (GIMPLE_MODIFY_STMT, array_ptr_type, tmp, - build_new_array (element_type, length)); - - int index = 0; - - /* FIXME: try to allocate array statically? */ - FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (init), cnt, value) - { - /* FIXME: Should use build_java_arrayaccess here, but avoid - bounds checking. */ - tree lhs = build3 (COMPONENT_REF, TREE_TYPE (data_field), - build_java_indirect_ref (array_type, tmp, 0), - data_field, NULL_TREE); - tree assignment = build2 (GIMPLE_MODIFY_STMT, element_type, - build4 (ARRAY_REF, element_type, lhs, - build_int_cst (NULL_TREE, index++), - NULL_TREE, NULL_TREE), - value); - body = build2 (COMPOUND_EXPR, element_type, body, assignment); - } - - return build2 (COMPOUND_EXPR, array_ptr_type, body, tmp); -} - static tree java_gimplify_try_expr (tree try_expr) { diff --git a/gcc/java/java-tree.def b/gcc/java/java-tree.def dissimilarity index 63% index 7e2c650b1fb..a93d413ab0d 100644 --- a/gcc/java/java-tree.def +++ b/gcc/java/java-tree.def @@ -1,120 +1,44 @@ -/* Shift right, logical. */ - -DEFTREECODE (URSHIFT_EXPR, "urshift_expr", tcc_binary, 2) - -/* Return -1, 0, 1 depending on whether the first argument is - less, equal, or greater to the second argument. */ -DEFTREECODE (COMPARE_EXPR, "compare_expr", tcc_binary, 2) - -/* Same as COMPARE_EXPR, but if either value is NaN, the result is -1. */ -DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", tcc_binary, 2) -/* Same as COMPARE_EXPR, but if either value is NaN, the result is 1. */ -DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", tcc_binary, 2) - -/* Unary plus. Operand 0 is the expression the unary plus is applied - to */ -DEFTREECODE (UNARY_PLUS_EXPR, "unary_plus_expr", tcc_unary, 1) - -/* New array creation expression. - Operand 0 is the array base type. - Operand 1 is the list of dimension expressions. - Operand 2 is the number of other dimensions of unspecified range. - Once patched, the node will bear the type of the created array. */ -DEFTREECODE (NEW_ARRAY_EXPR, "new_array_expr", tcc_expression, 3) - -/* New anonymous array creation expression. - Operand 0 is the base type of the anonymous array. - Operand 1 is the signature of the dimensions this array contains. - Operand 2 is the anonymous array initializer. - Once patched, the node will bear the type of the created array. */ -DEFTREECODE (NEW_ANONYMOUS_ARRAY_EXPR, "new_anonymous_array", - tcc_expression, 3) - -/* New class creation expression. - Operand 0 is the name of the class to be created - Operand 1 is the argument list used to select a constructor. - There is no operand 2. That slot is used for the - CALL_EXPR_RTL macro (see preexpand_calls). - The type should be the one of the created class. */ -DEFTREECODE (NEW_CLASS_EXPR, "new_class_expr", tcc_expression, 3) - -/* Defines `this' as an expression. */ -DEFTREECODE (THIS_EXPR, "this", tcc_expression, 0) - -/* A labeled block. Operand 0 is the label that will be generated to - mark the end of the block. Operand 1 is the labeled block body. */ -DEFTREECODE (LABELED_BLOCK_EXPR, "labeled_block_expr", tcc_expression, 2) - -/* Exit a labeled block, possibly returning a value. Operand 0 is a - LABELED_BLOCK_EXPR to exit. */ -DEFTREECODE (EXIT_BLOCK_EXPR, "exit_block_expr", tcc_statement, 1) - -/* Case statement expression. - Operand 1 is the case value. */ -DEFTREECODE (CASE_EXPR, "case", tcc_expression, 1) - -/* Default statement expression. */ -DEFTREECODE (DEFAULT_EXPR, "default", tcc_expression, 0) - -/* Try expression - Operand 0 is the tried block, - Operand 1 contains chained catch nodes. */ -DEFTREECODE (TRY_EXPR, "try-catch", tcc_expression, 2) - -/* Catch clause. - Operand 0 is the catch clause block, which contains the declaration of - the catch clause parameter. */ -DEFTREECODE (JAVA_CATCH_EXPR, "catch", tcc_unary, 1) - -/* Synchronized statement. - Operand 0 is the expression on which we wish to synchronize, - Operand 1 is the synchronized expression block. */ -DEFTREECODE (SYNCHRONIZED_EXPR, "synchronized", tcc_expression, 2) - -/* Throw statement. - Operand 0 is the throw expression. */ -DEFTREECODE (THROW_EXPR, "throw", tcc_unary, 1) - -/* Conditional operator. - Operand 0 is the condition expression - Operand 1 is the then-value - Operand 2 is the else-value. */ -DEFTREECODE (CONDITIONAL_EXPR, "?:", tcc_expression, 3) - -/* instanceof operator. - Operand 0 is the expression that is getting tested - Operand 1 is the class used for the test. */ -DEFTREECODE (INSTANCEOF_EXPR, "instanceof", tcc_expression, 2) - -/* Array initializers. - Operand 0 is the (sub) array target to initialize, left to NULL_TREE - when the node is created. - Operand 1 is a CONSTRUCTOR node. */ -DEFTREECODE (NEW_ARRAY_INIT, "new_array_init", tcc_unary, 1) - -/* Class literal. - Operand 0 is the name of the class we're trying to build a - reference from. */ -DEFTREECODE (CLASS_LITERAL, "class_literal", tcc_unary, 1) - -/* The Java object within the exception object from the runtime. */ -DEFTREECODE (JAVA_EXC_OBJ_EXPR, "java_exc_obj_expr", tcc_expression, 0) - -/* Annotates a tree node (usually an expression) with source location - information: a file name (EXPR_WFL_FILENAME); a line number - (EXPR_WFL_LINENO); and column number (EXPR_WFL_COLNO). It is - expanded as the contained node (EXPR_WFL_NODE); a line note should - be emitted first if EXPR_WFL_EMIT_LINE_NOTE. */ -#ifdef USE_MAPPED_LOCATION -DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", - tcc_expression, 2) -#else -DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", - tcc_expression, 3) -#endif - -/* -Local variables: -mode:c -End: -*/ +/* Shift right, logical. */ + +DEFTREECODE (URSHIFT_EXPR, "urshift_expr", tcc_binary, 2) + +/* Return -1, 0, 1 depending on whether the first argument is + less, equal, or greater to the second argument. */ +DEFTREECODE (COMPARE_EXPR, "compare_expr", tcc_binary, 2) + +/* Same as COMPARE_EXPR, but if either value is NaN, the result is -1. */ +DEFTREECODE (COMPARE_L_EXPR, "compare_l_expr", tcc_binary, 2) +/* Same as COMPARE_EXPR, but if either value is NaN, the result is 1. */ +DEFTREECODE (COMPARE_G_EXPR, "compare_g_expr", tcc_binary, 2) + +/* A labeled block. Operand 0 is the label that will be generated to + mark the end of the block. Operand 1 is the labeled block body. */ +DEFTREECODE (LABELED_BLOCK_EXPR, "labeled_block_expr", tcc_expression, 2) + +/* Exit a labeled block, possibly returning a value. Operand 0 is a + LABELED_BLOCK_EXPR to exit. */ +DEFTREECODE (EXIT_BLOCK_EXPR, "exit_block_expr", tcc_statement, 1) + +/* Try expression + Operand 0 is the tried block, + Operand 1 contains chained catch nodes. */ +DEFTREECODE (TRY_EXPR, "try-catch", tcc_expression, 2) + +/* Annotates a tree node (usually an expression) with source location + information: a file name (EXPR_WFL_FILENAME); a line number + (EXPR_WFL_LINENO); and column number (EXPR_WFL_COLNO). It is + expanded as the contained node (EXPR_WFL_NODE); a line note should + be emitted first if EXPR_WFL_EMIT_LINE_NOTE. */ +#ifdef USE_MAPPED_LOCATION +DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", + tcc_expression, 2) +#else +DEFTREECODE (EXPR_WITH_FILE_LOCATION, "expr_with_file_location", + tcc_expression, 3) +#endif + +/* +Local variables: +mode:c +End: +*/ diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index a7bfa38eb57..3b0f0f6760d 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -1,7 +1,7 @@ /* Definitions for parsing and type checking for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -43,37 +43,15 @@ enum java_tree_code { struct JCF; /* Usage of TREE_LANG_FLAG_?: - 0: IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (in IDENTIFIER_NODE) - FOR_LOOP_P (in LOOP_EXPR) - SUPPRESS_UNREACHABLE_ERROR (for other _EXPR nodes) - ANONYMOUS_CLASS_P (in RECORD_TYPE) - ARG_FINAL_P (in TREE_LIST) - 1: IS_A_CLASSFILE_NAME (in IDENTIFIER_NODE) - COMPOUND_ASSIGN_P (in EXPR (binop_*)) - LOCAL_CLASS_P (in RECORD_TYPE) - BLOCK_IS_IMPLICIT (in BLOCK) 2: QUALIFIED_P (in IDENTIFIER_NODE) - PRIMARY_P (in EXPR_WITH_FILE_LOCATION) - MODIFY_EXPR_FROM_INITIALIZATION_P (in MODIFY_EXPR) - CLASS_METHOD_CHECKED_P (in RECORD_TYPE) CLASS_FILE_P (in a TRANSLATION_UNIT_DECL in current_file_list) - 3: IS_AN_IMPORT_ON_DEMAND_P (in IDENTIFIER_NODE) - RESOLVE_PACKAGE_NAME_P (in EXPR_WITH_FILE_LOCATION) - SWITCH_HAS_DEFAULT (in SWITCH_EXPR) - HAS_FINALIZER (in RECORD_TYPE) + 3: HAS_FINALIZER (in RECORD_TYPE) 4: IS_A_COMMAND_LINE_FILENAME_P (in IDENTIFIER_NODE) - RESOLVE_TYPE_NAME_P (in EXPR_WITH_FILE_LOCATION) - CALL_USING_SUPER (in CALL_EXPR) IS_ARRAY_LENGTH_ACCESS (in INDIRECT_REF) 5: HAS_BEEN_ALREADY_PARSED_P (in IDENTIFIER_NODE) - IS_BREAK_STMT_P (in EXPR_WITH_FILE_LOCATION) - IS_CRAFTED_STRING_BUFFER_P (in CALL_EXPR) - IS_INIT_CHECKED (in SAVE_EXPR) 6: CAN_COMPLETE_NORMALLY (in statement nodes) - NESTED_FIELD_ACCESS_IDENTIFIER_P (in IDENTIFIER_NODE) Usage of TYPE_LANG_FLAG_?: - 0: CLASS_ACCESS0_GENERATED_P (in RECORD_TYPE) 1: TYPE_ARRAY_P (in RECORD_TYPE). 2: CLASS_PARSED_P (in RECORD_TYPE). 3: CLASS_FROM_SOURCE_P (in RECORD_TYPE). @@ -124,10 +102,6 @@ struct JCF; ? BINFO_TYPE (BINFO_BASE_BINFO (TYPE_BINFO (TYPE), 0)) \ : NULL_TREE) -/* True if the class we are compiling is a .java source file; - false if it is a .class bytecode file. */ -extern int compiling_from_source; - /* The class defined by the actual (main) file we are compiling. */ #define main_class \ java_global_trees[JTI_MAIN_CLASS] @@ -221,9 +195,6 @@ extern int flag_store_check; /* When nonzero, generate only a limited set of class meta-data. */ extern int flag_reduced_reflection; -/* Encoding used for source files. */ -extern const char *current_encoding; - /* The Java .class file that provides main_class; the main input file. */ extern GTY(()) struct JCF * current_jcf; @@ -243,6 +214,11 @@ typedef struct CPool constant_pool; #define CONSTANT_ResolvedFlag 16 +/* Don't eagerly resolve this entry. When this flag is set, constant + pool entries are resolved only at runtime when the entry is first + referred to. */ +#define CONSTANT_LazyFlag 32 + /* The cpool->data[i] for a ResolvedString points to a STRING_CST. */ #define CONSTANT_ResolvedString (CONSTANT_String+CONSTANT_ResolvedFlag) @@ -332,15 +308,9 @@ enum java_tree_index JTI_TYPE_IDENTIFIER_NODE, JTI_INIT_IDENTIFIER_NODE, JTI_CLINIT_IDENTIFIER_NODE, - JTI_FINIT_IDENTIFIER_NODE, - JTI_INSTINIT_IDENTIFIER_NODE, JTI_VOID_SIGNATURE_NODE, - JTI_LENGTH_IDENTIFIER_NODE, JTI_FINALIZE_IDENTIFIER_NODE, JTI_THIS_IDENTIFIER_NODE, - JTI_SUPER_IDENTIFIER_NODE, - JTI_CONTINUE_IDENTIFIER_NODE, - JTI_ACCESS0_IDENTIFIER_NODE, JTI_CLASSDOLLAR_IDENTIFIER_NODE, JTI_ONE_ELT_ARRAY_DOMAIN_TYPE, @@ -418,8 +388,6 @@ enum java_tree_index JTI_NATIVECODE_PTR_ARRAY_TYPE_NODE, - JTI_WFL_OPERATOR, - JTI_MAIN_CLASS, JTI_CURRENT_CLASS, JTI_OUTPUT_CLASS, @@ -532,25 +500,12 @@ extern GTY(()) tree java_global_trees[JTI_MAX]; java_global_trees[JTI_INIT_IDENTIFIER_NODE] /* "" */ #define clinit_identifier_node \ java_global_trees[JTI_CLINIT_IDENTIFIER_NODE] /* "" */ -#define finit_identifier_node \ - java_global_trees[JTI_FINIT_IDENTIFIER_NODE] /* "finit$" */ -/* FIXME "instinit$" and "finit$" should be merged */ -#define instinit_identifier_node \ - java_global_trees[JTI_INSTINIT_IDENTIFIER_NODE] /* "instinit$" */ #define void_signature_node \ java_global_trees[JTI_VOID_SIGNATURE_NODE] /* "()V" */ -#define length_identifier_node \ - java_global_trees[JTI_LENGTH_IDENTIFIER_NODE] /* "length" */ #define finalize_identifier_node \ java_global_trees[JTI_FINALIZE_IDENTIFIER_NODE] /* "finalize" */ #define this_identifier_node \ java_global_trees[JTI_THIS_IDENTIFIER_NODE] /* "this" */ -#define super_identifier_node \ - java_global_trees[JTI_SUPER_IDENTIFIER_NODE] /* "super" */ -#define continue_identifier_node \ - java_global_trees[JTI_CONTINUE_IDENTIFIER_NODE] /* "continue" */ -#define access0_identifier_node \ - java_global_trees[JTI_ACCESS0_IDENTIFIER_NODE] /* "access$0" */ #define classdollar_identifier_node \ java_global_trees[JTI_CLASSDOLLAR_IDENTIFIER_NODE] /* "class$" */ #define one_elt_array_domain_type \ @@ -703,14 +658,9 @@ extern GTY(()) tree java_global_trees[JTI_MAX]; #define nativecode_ptr_type_node ptr_type_node -#define wfl_operator \ - java_global_trees[JTI_WFL_OPERATOR] - /* The decl for "_Jv_ResolvePoolEntry". */ extern GTY(()) tree soft_resolvepoolentry_node; -extern const char *cyclic_inheritance_report; - struct lang_identifier GTY(()) { struct tree_identifier ignore; @@ -824,20 +774,6 @@ union lang_tree_node in DECL. */ #define DECL_FUNCTION_INITIALIZED_CLASS_TABLE(DECL) \ (DECL_LANG_SPECIFIC(DECL)->u.f.ict) -/* A list of all the static method calls in the method DECL (if optimizing). - Actually each TREE_VALUE points to a COMPONT_EXPR that wraps the - invocation so we can later patch it. */ -#define DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND(DECL) \ - (DECL_LANG_SPECIFIC(DECL)->u.f.smic) -/* The Number of Artificial Parameters (NAP) DECL contains. this$ - is excluded, because sometimes created as a parameter before the - function decl exists. */ -#define DECL_FUNCTION_NAP(DECL) (DECL_LANG_SPECIFIC(DECL)->u.f.nap) -/* True if DECL is a synthetic ctor. */ -#define DECL_FUNCTION_SYNTHETIC_CTOR(DECL) \ - (DECL_LANG_SPECIFIC(DECL)->u.f.synthetic_ctor) -#define DECL_FIXED_CONSTRUCTOR_P(DECL) \ - (DECL_LANG_SPECIFIC(DECL)->u.f.fixed_ctor) #define DECL_LOCAL_CNI_METHOD_P(NODE) \ (DECL_LANG_SPECIFIC (NODE)->u.f.local_cni) @@ -902,6 +838,7 @@ union lang_tree_node /* True if NODE is a final field. */ #define FINAL_VARIABLE_P(NODE) (FIELD_FINAL (NODE) && !FIELD_STATIC (NODE)) /* True if NODE is a class final field. */ +#define FIELD_ENUM(DECL) (DECL_LANG_SPECIFIC (DECL)->u.v.field_enum) #define CLASS_FINAL_VARIABLE_P(NODE) \ (FIELD_FINAL (NODE) && FIELD_STATIC (NODE)) /* True if NODE is a class initialization flag. This macro accesses @@ -971,14 +908,10 @@ struct lang_decl_func GTY(()) /* Initialized (static) Class Table */ htab_t GTY ((param_is (union tree_node))) ict; - tree smic; /* Static method invocation compound */ tree inner_access; /* The identifier of the access method used for invocation from inner classes */ - int nap; /* Number of artificial parameters */ unsigned int native : 1; /* Nonzero if this is a native method */ - unsigned int synthetic_ctor : 1; /* Nonzero if this is a synthetic ctor */ unsigned int init_final : 1; /* Nonzero all finals are initialized */ - unsigned int fixed_ctor : 1; unsigned int init_calls_this : 1; unsigned int strictfp : 1; unsigned int invisible : 1; /* Set for methods we generate @@ -986,6 +919,8 @@ struct lang_decl_func GTY(()) written to the .class file. */ unsigned int dummy : 1; unsigned int local_cni : 1; /* Decl needs mangle_local_cni_method. */ + unsigned int bridge : 1; /* Bridge method. */ + unsigned int varargs : 1; /* Varargs method. */ }; struct treetreehash_entry GTY(()) @@ -994,7 +929,7 @@ struct treetreehash_entry GTY(()) tree value; }; -/* These represent the possible assertion_code's that can be emitted in the +/* These represent the possible assertion_codes that can be emitted in the type assertion table. */ enum { @@ -1003,6 +938,28 @@ enum JV_ASSERT_IS_INSTANTIABLE = 2 /* Operand A is an instantiable class. */ }; +/* Annotation types used in the reflection_data. See + java.lang.Class.getDeclaredAnnotations() in the runtime library for + an example of how these are used. */ + +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; + typedef struct type_assertion GTY(()) { int assertion_code; /* 'opcode' for the type of this assertion. */ @@ -1031,6 +988,7 @@ struct lang_decl_var GTY(()) unsigned int local_slot : 1; /* Decl is a temporary in the stack frame. */ unsigned int class_field : 1; /* Decl needs mangle_class_field. */ unsigned int vtable : 1; /* Decl needs mangle_vtable. */ + unsigned int field_enum:1; /* Field is an enum. */ }; /* This is what 'lang_decl' really points to. */ @@ -1058,10 +1016,6 @@ struct lang_decl GTY(()) TYPE_LANG_SPECIFIC ((T)) \ = ggc_alloc_cleared (sizeof (struct lang_type)); -#define TYPE_FINIT_STMT_LIST(T) (TYPE_LANG_SPECIFIC (T)->finit_stmt_list) -#define TYPE_CLINIT_STMT_LIST(T) (TYPE_LANG_SPECIFIC (T)->clinit_stmt_list) -#define TYPE_II_STMT_LIST(T) (TYPE_LANG_SPECIFIC (T)->ii_block) - #define TYPE_DUMMY(T) (TYPE_LANG_SPECIFIC(T)->dummy_class) /* The decl of the synthetic method `class$' used to handle `.class' @@ -1069,11 +1023,13 @@ struct lang_decl GTY(()) #define TYPE_DOT_CLASS(T) (TYPE_LANG_SPECIFIC (T)->dot_class) #define TYPE_PACKAGE_LIST(T) (TYPE_LANG_SPECIFIC (T)->package_list) -#define TYPE_IMPORT_LIST(T) (TYPE_LANG_SPECIFIC (T)->import_list) -#define TYPE_IMPORT_DEMAND_LIST(T) (TYPE_LANG_SPECIFIC (T)->import_demand_list) #define TYPE_PRIVATE_INNER_CLASS(T) (TYPE_LANG_SPECIFIC (T)->pic) #define TYPE_PROTECTED_INNER_CLASS(T) (TYPE_LANG_SPECIFIC (T)->poic) #define TYPE_STRICTFP(T) (TYPE_LANG_SPECIFIC (T)->strictfp) +#define TYPE_ENUM(T) (TYPE_LANG_SPECIFIC (T)->enum_class) +#define TYPE_SYNTHETIC(T) (TYPE_LANG_SPECIFIC (T)->synthetic) +#define TYPE_ANNOTATION(T) (TYPE_LANG_SPECIFIC (T)->annotation) + #define TYPE_USES_ASSERTIONS(T) (TYPE_LANG_SPECIFIC (T)->assertions) #define TYPE_ATABLE_METHODS(T) (TYPE_LANG_SPECIFIC (T)->atable_methods) @@ -1096,22 +1052,21 @@ struct lang_decl GTY(()) #define TYPE_ASSERTIONS(T) (TYPE_LANG_SPECIFIC (T)->type_assertions) #define TYPE_PACKAGE(T) (TYPE_LANG_SPECIFIC (T)->package) +#define TYPE_REFLECTION_DATA(T) (TYPE_LANG_SPECIFIC (T)->reflection_data) +#define TYPE_REFLECTION_DATASIZE(T) \ + (TYPE_LANG_SPECIFIC (T)->reflection_datasize) + struct lang_type GTY(()) { tree signature; struct JCF *jcf; struct CPool *cpool; tree cpool_data_ref; /* Cached */ - tree finit_stmt_list; /* List of statements finit$ will use */ - tree clinit_stmt_list; /* List of statements will use */ - tree ii_block; /* Instance initializer block */ tree dot_class; /* The decl of the `class$' function that needs to be invoked and generated when compiling to bytecode to implement .class */ tree package_list; /* List of package names, progressive */ - tree import_list; /* Imported types, in the CU of this class */ - tree import_demand_list; /* Imported types, in the CU of this class */ tree otable_methods; /* List of static decls referred to by this class. */ @@ -1146,11 +1101,20 @@ struct lang_type GTY(()) tree package; /* IDENTIFIER_NODE for package this class is a member of. */ + unsigned char* GTY((skip)) reflection_data; /* The raw reflection + data for this + class. */ + long reflection_datasize; /* The size of the raw reflection data + for this class, in bytes. */ + unsigned pic:1; /* Private Inner Class. */ unsigned poic:1; /* Protected Inner Class. */ unsigned strictfp:1; /* `strictfp' class. */ unsigned assertions:1; /* Any method uses `assert'. */ - unsigned dummy_class:1; /* Not a real class, just a placeholder. */ + unsigned dummy_class:1; /* Not a real class, just a placeholder. */ + unsigned enum_class:1; /* Class is an enum type. */ + unsigned synthetic:1; /* Class is synthetic. */ + unsigned annotation:1; /* Class is an annotation type. */ }; #define JCF_u4 unsigned long @@ -1294,8 +1258,9 @@ extern void lang_init_source (int); extern void write_classfile (tree); extern char *print_int_node (tree); extern void finish_class (void); -extern void java_layout_seen_class_methods (void); extern void check_for_initialization (tree, tree); +extern struct CPool *cpool_for_class (tree); +extern int find_class_or_string_constant (struct CPool *, int, tree); extern tree pushdecl_top_level (tree); extern tree pushdecl_function_level (tree); @@ -1362,10 +1327,7 @@ extern tree get_boehm_type_descriptor (tree); extern bool uses_jv_markobj_p (tree); extern bool class_has_finalize_method (tree); extern void java_check_methods (tree); -extern void init_jcf_parse (void); -extern void init_src_parse (void); -extern int cxx_keyword_p (const char *, int); extern void java_mangle_decl (tree); extern tree java_mangle_class_field (struct obstack *, tree); extern tree java_mangle_vtable (struct obstack *, tree); @@ -1403,6 +1365,10 @@ extern void gen_indirect_dispatch_tables (tree type); extern int split_qualified_name (tree *left, tree *right, tree source); extern int in_same_package (tree, tree); +extern void java_read_sourcefilenames (const char *fsource_filename); + +extern void rewrite_reflection_indexes (void *); + #define DECL_FINAL(DECL) DECL_LANG_FLAG_3 (DECL) /* Access flags etc for a method (a FUNCTION_DECL): */ @@ -1422,6 +1388,10 @@ extern int in_same_package (tree, tree); (DECL_LANG_SPECIFIC (FUNCTION_DECL_CHECK (DECL))->u.f.strictfp) #define METHOD_INVISIBLE(DECL) \ (DECL_LANG_SPECIFIC (FUNCTION_DECL_CHECK (DECL))->u.f.invisible) +#define METHOD_BRIDGE(DECL) \ + (DECL_LANG_SPECIFIC (FUNCTION_DECL_CHECK (DECL))->u.f.bridge) +#define METHOD_VARARGS(DECL) \ + (DECL_LANG_SPECIFIC (FUNCTION_DECL_CHECK (DECL))->u.f.varargs) #define CLASS_FILE_P(NODE) TREE_LANG_FLAG_3 (NODE) @@ -1430,17 +1400,13 @@ extern int in_same_package (tree, tree); #define DECL_CONSTRUCTOR_P(DECL) DECL_LANG_FLAG_7 (FUNCTION_DECL_CHECK (DECL)) #define DECL_INIT_P(DECL) (ID_INIT_P (DECL_NAME (DECL))) -#define DECL_FINIT_P(DECL) (ID_FINIT_P (DECL_NAME (DECL))) #define DECL_CLINIT_P(DECL) (ID_CLINIT_P (DECL_NAME (DECL))) -#define DECL_INSTINIT_P(DECL) (ID_INSTINIT_P (DECL_NAME (DECL))) /* Predicates on method identifiers. Kept close to other macros using them */ #define ID_INIT_P(ID) ((ID) == init_identifier_node) -#define ID_FINIT_P(ID) ((ID) == finit_identifier_node) #define ID_CLINIT_P(ID) ((ID) == clinit_identifier_node) #define ID_CLASSDOLLAR_P(ID) ((ID) == classdollar_identifier_node) -#define ID_INSTINIT_P(ID) ((ID) == instinit_identifier_node) /* Access flags etc for variable/field (FIELD_DECL, VAR_DECL, or PARM_DECL): */ @@ -1463,7 +1429,10 @@ extern int in_same_package (tree, tree); #define CLASS_PRIVATE(DECL) (TYPE_PRIVATE_INNER_CLASS (TREE_TYPE (DECL))) #define CLASS_PROTECTED(DECL) (TYPE_PROTECTED_INNER_CLASS (TREE_TYPE (DECL))) #define CLASS_STRICTFP(DECL) (TYPE_STRICTFP (TREE_TYPE (DECL))) +#define CLASS_ENUM(DECL) (TYPE_ENUM (TREE_TYPE (DECL))) #define CLASS_USES_ASSERTIONS(DECL) (TYPE_USES_ASSERTIONS (TREE_TYPE (DECL))) +#define CLASS_SYNTHETIC(DECL) (TYPE_SYNTHETIC (TREE_TYPE (DECL))) +#define CLASS_ANNOTATION(DECL) (TYPE_ANNOTATION (TREE_TYPE (DECL))) /* @deprecated marker flag on methods, fields and classes */ @@ -1527,16 +1496,6 @@ extern int linenumber_count; /* In a type map means the type the address subroutine return address. */ #define TYPE_RETURN_ADDR return_address_type_node -/* In a subroutine's return type map, indicates that the slot was neither - used nor set in the subroutine. */ -#define TYPE_UNUSED error_mark_node - -/* When returned from pop_type_0, indicates stack underflow. */ -#define TYPE_UNDERFLOW integer_zero_node - -/* When returned from pop_type_0, indicates a type mismatch. */ -#define TYPE_UNEXPECTED NULL_TREE - /* A array mapping variable/stack slot index to the type current in that variable/stack slot. TYPE_UNKNOWN, TYPE_SECOND, and TYPE_NULL are special cases. */ @@ -1549,9 +1508,6 @@ extern tree *type_map; #define TYPE_IS_WIDE(TYPE) \ ((TYPE) == double_type_node || (TYPE) == long_type_node) -/* True iif CLASS has it's access$0 method generated. */ -#define CLASS_ACCESS0_GENERATED_P(CLASS) TYPE_LANG_FLAG_0 (CLASS) - /* True iff TYPE is a Java array type. */ #define TYPE_ARRAY_P(TYPE) TYPE_LANG_FLAG_1 (TYPE) @@ -1588,119 +1544,32 @@ extern tree *type_map; layout of a class. */ #define CLASS_BEING_LAIDOUT(TYPE) TYPE_LANG_FLAG_6 (TYPE) -/* True if class TYPE has a field initializer finit$ function */ -#define CLASS_HAS_FINIT_P(TYPE) TYPE_FINIT_STMT_LIST (TYPE) - -/* True if identifier ID was seen while processing a single type import stmt */ -#define IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P(ID) TREE_LANG_FLAG_0 (ID) - -/* True if identifier ID was seen while processing an import statement */ -#define IS_A_CLASSFILE_NAME(ID) TREE_LANG_FLAG_1 (ID) - /* True if ID is a qualified named (contains . or /) */ #define QUALIFIED_P(ID) TREE_LANG_FLAG_2 (ID) -/* True if ID is an already processed import on demand */ -#define IS_AN_IMPORT_ON_DEMAND_P(ID) TREE_LANG_FLAG_3 (ID) - /* True if ID is a command-line specified filename */ #define IS_A_COMMAND_LINE_FILENAME_P(ID) TREE_LANG_FLAG_4 (ID) /* True if filename ID has already been parsed */ #define HAS_BEEN_ALREADY_PARSED_P(ID) TREE_LANG_FLAG_5 (ID) -/* True if EXPR is RHS sub-tree of a compound assign expression */ -#define COMPOUND_ASSIGN_P(EXPR) TREE_LANG_FLAG_1 (EXPR) - -/* True if a SWITCH_EXPR has a DEFAULT_EXPR. */ -#define SWITCH_HAS_DEFAULT(NODE) TREE_LANG_FLAG_3 (SWITCH_EXPR_CHECK (NODE)) - -/* True if EXPR (a WFL in that case) was created after the - reduction of PRIMARY . XXX */ -#define PRIMARY_P(EXPR) TREE_LANG_FLAG_2 (EXPR_CHECK (EXPR)) - -/* True if EXPR (a MODIFY_EXPR in that case) is the result of variable - initialization during its declaration */ -#define MODIFY_EXPR_FROM_INITIALIZATION_P(EXPR) \ - TREE_LANG_FLAG_2 (MODIFY_EXPR_CHECK (EXPR)) - -/* True if EXPR (a TREE_TYPE denoting a class type) has its methods - already checked (for redefinitions, etc, see java_check_regular_methods.) */ -#define CLASS_METHOD_CHECKED_P(EXPR) TREE_LANG_FLAG_2 (EXPR) - /* True if TYPE (a TREE_TYPE denoting a class type) was found to feature a finalizer method. */ #define HAS_FINALIZER_P(EXPR) TREE_LANG_FLAG_3 (EXPR) -/* True if EXPR (a LOOP_EXPR in that case) is part of a for statement */ -#define FOR_LOOP_P(EXPR) TREE_LANG_FLAG_0 (EXPR_CHECK (EXPR)) - -/* True if NODE (a RECORD_TYPE in that case) is an anonymous class. */ -#define ANONYMOUS_CLASS_P(NODE) TREE_LANG_FLAG_0 (RECORD_TYPE_CHECK (NODE)) - -/* True if NODE (a RECORD_TYPE in that case) is a block local class. */ -#define LOCAL_CLASS_P(NODE) TREE_LANG_FLAG_1 (RECORD_TYPE_CHECK (NODE)) - -/* True if NODE (a TREE_LIST) hold a pair of argument name/type - declared with the final modifier */ -#define ARG_FINAL_P(NODE) TREE_LANG_FLAG_0 (TREE_LIST_CHECK (NODE)) - -/* True if NODE (some kind of EXPR, but not a WFL) should not give an - error if it is found to be unreachable. This can only be applied - to those EXPRs which can be used as the update expression of a - `for' loop. In particular it can't be set on a LOOP_EXPR. */ -#define SUPPRESS_UNREACHABLE_ERROR(NODE) TREE_LANG_FLAG_0 (EXPR_CHECK (NODE)) - -/* True if EXPR (a WFL in that case) resolves into a package name */ -#define RESOLVE_PACKAGE_NAME_P(WFL) TREE_LANG_FLAG_3 (EXPR_CHECK (WFL)) - -/* True if EXPR (a WFL in that case) resolves into a type name */ -#define RESOLVE_TYPE_NAME_P(WFL) TREE_LANG_FLAG_4 (EXPR_CHECK (WFL)) - -/* True if STMT (a WFL in that case) holds a BREAK statement */ -#define IS_BREAK_STMT_P(WFL) TREE_LANG_FLAG_5 (WFL) - -/* True if EXPR (a CALL_EXPR in that case) is a crafted StringBuffer */ -#define IS_CRAFTED_STRING_BUFFER_P(EXPR) TREE_LANG_FLAG_5 (EXPR) - -/* True if EXPR (a SAVE_EXPR in that case) had its content already - checked for (un)initialized local variables. */ -#define IS_INIT_CHECKED(EXPR) TREE_LANG_FLAG_5 (SAVE_EXPR_CHECK (EXPR)) - -/* If set in CALL_EXPR, the receiver is 'super'. */ -#define CALL_USING_SUPER(EXPR) TREE_LANG_FLAG_4 (EXPR_CHECK (EXPR)) - /* True if NODE (a statement) can complete normally. */ #define CAN_COMPLETE_NORMALLY(NODE) TREE_LANG_FLAG_6 (NODE) -/* True if NODE (an IDENTIFIER) bears the name of an outer field from - inner class (or vice versa) access function. */ -#define NESTED_FIELD_ACCESS_IDENTIFIER_P(NODE) \ - TREE_LANG_FLAG_6 (IDENTIFIER_NODE_CHECK (NODE)) - /* True if NODE belongs to an inner class TYPE_DECL node. Verifies that NODE as the attributes of a decl. */ #define INNER_CLASS_DECL_P(NODE) (TYPE_NAME (TREE_TYPE (NODE)) == NODE \ && DECL_CONTEXT (NODE)) -/* True if NODE is a top level class TYPE_DECL node: NODE isn't - an inner class or NODE is a static class. */ -#define TOPLEVEL_CLASS_DECL_P(NODE) (!INNER_CLASS_DECL_P (NODE) \ - || CLASS_STATIC (NODE)) - -/* True if the class decl NODE was declared in an inner scope and is - not a toplevel class */ -#define PURE_INNER_CLASS_DECL_P(NODE) \ - (INNER_CLASS_DECL_P (NODE) && !CLASS_STATIC (NODE)) - /* True if NODE belongs to an inner class RECORD_TYPE node. Checks that TYPE_NAME bears a decl. An array type wouldn't. */ #define INNER_CLASS_TYPE_P(NODE) (TREE_CODE (TYPE_NAME (NODE)) == TYPE_DECL \ && DECL_CONTEXT (TYPE_NAME (NODE))) -#define TOPLEVEL_CLASS_TYPE_P(NODE) (!INNER_CLASS_TYPE_P (NODE) \ - || CLASS_STATIC (TYPE_NAME (NODE))) - /* True if the class type NODE was declared in an inner scope and is not a toplevel class */ #define PURE_INNER_CLASS_TYPE_P(NODE) \ @@ -1782,33 +1651,9 @@ extern tree *type_map; #define FINISH_RECORD_CONSTRUCTOR(CONS) \ VEC_pop (constructor_elt, CONSTRUCTOR_ELTS (CONS)) -/* Macros on constructors invocations. */ -#define CALL_CONSTRUCTOR_P(NODE) \ - (TREE_CODE (NODE) == NEW_CLASS_EXPR || CALL_EXPLICIT_CONSTRUCTOR_P (NODE)) - -#define CALL_EXPLICIT_CONSTRUCTOR_P(NODE) \ - (CALL_THIS_CONSTRUCTOR_P (NODE) || CALL_SUPER_CONSTRUCTOR_P (NODE)) - -#define CALL_THIS_CONSTRUCTOR_P(NODE) \ - (TREE_CODE (NODE) == CALL_EXPR \ - && EXPR_WFL_NODE (TREE_OPERAND (NODE, 0)) == this_identifier_node) - -#define CALL_SUPER_CONSTRUCTOR_P(NODE) \ - (TREE_CODE (NODE) == CALL_EXPR \ - && EXPR_WFL_NODE (TREE_OPERAND (NODE, 0)) == super_identifier_node) - -/* Using a FINALLY_EXPR node */ -#define FINALLY_EXPR_LABEL(NODE) TREE_OPERAND (FINALLY_EXPR_CHECK (NODE), 0) -#define FINALLY_EXPR_BLOCK(NODE) TREE_OPERAND (FINALLY_EXPR_CHECK (NODE), 1) - #define BLOCK_EXPR_DECLS(NODE) BLOCK_VARS(NODE) #define BLOCK_EXPR_BODY(NODE) BLOCK_SUBBLOCKS(NODE) -/* True for an implicit block surrounding declaration not at start of {...}. */ -#define BLOCK_IS_IMPLICIT(NODE) TREE_LANG_FLAG_1 (BLOCK_CHECK (NODE)) -#define BLOCK_EMPTY_P(NODE) \ - (TREE_CODE (NODE) == BLOCK && BLOCK_EXPR_BODY (NODE) == empty_stmt_node) - #define BUILD_MONITOR_ENTER(WHERE, ARG) \ { \ (WHERE) = build3 (CALL_EXPR, int_type_node, \ @@ -1827,25 +1672,10 @@ extern tree *type_map; TREE_SIDE_EFFECTS (WHERE) = 1; \ } -/* Nonzero if TYPE is an unchecked exception */ -#define IS_UNCHECKED_EXCEPTION_P(TYPE) \ - (inherits_from_p ((TYPE), runtime_exception_type_node) \ - || inherits_from_p ((TYPE), error_exception_type_node)) - /* True when we can perform static class initialization optimization */ #define STATIC_CLASS_INIT_OPT_P() \ (flag_optimize_sci && (optimize >= 2) && ! flag_emit_class_files) -extern int java_error_count; - -/* Make the current function where this macro is invoked report error - messages and and return, if any */ -#define java_parse_abort_on_error() \ - { \ - if (java_error_count > save_error_count) \ - return; \ - } - /* These are the possible values for the `state' field of the class structure. This must be kept in sync with libgcj. */ enum @@ -1913,6 +1743,6 @@ extern tree build_expr_wfl (tree, const char *, int, int); extern void java_genericize (tree); extern int java_gimplify_expr (tree *, tree *, tree *); -extern tree extract_field_decl (tree); +extern FILE *finput; #endif /* ! GCC_JAVA_TREE_H */ diff --git a/gcc/java/jcf-depend.c b/gcc/java/jcf-depend.c index 1134d36546d..63c7d235c50 100644 --- a/gcc/java/jcf-depend.c +++ b/gcc/java/jcf-depend.c @@ -1,6 +1,6 @@ /* Functions for handling dependency tracking when reading .class files. - Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -100,7 +100,7 @@ jcf_dependency_set_dep_file (const char *name) } void -jcf_dependency_add_file (const char *filename, int system_p) +jcf_dependency_add_file (const char *filename ATTRIBUTE_UNUSED, int system_p) { if (! dependencies) return; @@ -109,7 +109,10 @@ jcf_dependency_add_file (const char *filename, int system_p) if (system_p && ! system_files) return; - deps_add_dep (dependencies, filename); + + /* FIXME: Don't emit any dependencies. In many cases we'll just see + temporary files emitted by ecj... */ + /* deps_add_dep (dependencies, filename); */ } void diff --git a/gcc/java/jcf-dump.c b/gcc/java/jcf-dump.c index a5e3444cb87..66c2515c3d5 100644 --- a/gcc/java/jcf-dump.c +++ b/gcc/java/jcf-dump.c @@ -96,6 +96,7 @@ int flag_javap_compatible = 0; static void print_access_flags (FILE *, uint16, char); static void print_constant_terse (FILE*, JCF*, int, int); +static void print_constant_terse_with_index (FILE *, JCF *, int, int); static void print_constant (FILE *, JCF *, int, int); static void print_constant_ref (FILE *, JCF *, int); static void disassemble_method (JCF*, const unsigned char *, int); @@ -109,6 +110,11 @@ static void process_class (struct JCF *); static void print_constant_pool (struct JCF *); static void print_exception_table (struct JCF *, const unsigned char *entries, int); +static void indent (FILE *, int); +static void print_element_value (FILE *, JCF *, int); +static void print_annotation (FILE *, JCF *, int); +static void print_annotations (FILE *, JCF *, int); +static void print_parameter_annotations (FILE *, JCF *, int); #define PRINT_SIGNATURE_RESULT_ONLY 1 #define PRINT_SIGNATURE_ARGS_ONLY 2 @@ -184,7 +190,7 @@ utf8_equal_string (JCF *jcf, int index, const char * value) { fprintf (out, "Field name:"); \ print_constant_terse (out, jcf, NAME, CONSTANT_Utf8); \ print_access_flags (out, ACCESS_FLAGS, 'f'); \ - fprintf (out, " Signature: "); \ + fprintf (out, " Descriptor: "); \ if (flag_print_constant_pool) \ fprintf (out, "%d=", SIGNATURE); \ print_signature (out, jcf, SIGNATURE, 0); \ @@ -227,7 +233,7 @@ utf8_equal_string (JCF *jcf, int index, const char * value) fprintf (out, "\nMethod name:"); \ print_constant_terse (out, jcf, NAME, CONSTANT_Utf8); \ print_access_flags (out, ACCESS_FLAGS, 'm'); \ - fprintf (out, " Signature: "); \ + fprintf (out, " Descriptor: "); \ if (flag_print_constant_pool) \ fprintf (out, "%d=", SIGNATURE); \ print_signature (out, jcf, SIGNATURE, 0); \ @@ -295,6 +301,26 @@ utf8_equal_string (JCF *jcf, int index, const char * value) print_signature (out, jcf, signature_index, 0); \ fprintf (out, " (pc: %d length: %d)\n", start_pc, length); }} +#define HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE(COUNT) \ +{ int n = (COUNT); int i; \ + COMMON_HANDLE_ATTRIBUTE(JCF, attribute_name, attribute_length); \ + fprintf (out, ", count: %d\n", n); \ + for (i = 0; i < n; i++) { \ + int start_pc = JCF_readu2 (jcf); \ + int length = JCF_readu2 (jcf); \ + int name_index = JCF_readu2 (jcf); \ + int signature_index = JCF_readu2 (jcf); \ + int slot = JCF_readu2 (jcf); \ + fprintf (out, " slot#%d: name: ", slot); \ + if (flag_print_constant_pool) \ + fprintf (out, "%d=", name_index); \ + print_name (out, jcf, name_index); \ + fprintf (out, ", type: "); \ + if (flag_print_constant_pool) \ + fprintf (out, "%d=", signature_index); \ + print_signature (out, jcf, signature_index, 0); \ + fprintf (out, " (pc: %d length: %d)\n", start_pc, length); }} + #define HANDLE_LINENUMBERTABLE_ATTRIBUTE(COUNT) \ { int n = (COUNT); int i; \ COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ @@ -357,6 +383,60 @@ utf8_equal_string (JCF *jcf, int index, const char * value) for (i = 0; i < n; i++) { c = JCF_readu(jcf); fputc(c, out); } \ if (c != '\r' && c != '\n') fputc('\n', out); } +#define HANDLE_ENCLOSINGMETHOD_ATTRIBUTE() \ + { uint16 class_index, method_index; \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + class_index = JCF_readu2 (jcf); \ + method_index = JCF_readu2 (jcf); \ + fprintf (out, "\n Class: "); \ + print_constant_terse_with_index (out, jcf, class_index, CONSTANT_Class); \ + fprintf (out, "\n Method: "); \ + print_constant_terse_with_index (out, jcf, method_index, \ + CONSTANT_NameAndType); \ + fputc ('\n', out); \ +} + +#define HANDLE_SIGNATURE_ATTRIBUTE() \ +{ \ + uint16 signature; \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + signature = JCF_readu2 (jcf); \ + fprintf (out, "\n Value: "); \ + print_constant_terse_with_index (out, jcf, signature, CONSTANT_Utf8); \ + fputc ('\n', out); \ +} + +#define HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE() \ +{ \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + print_annotations (out, jcf, 1); \ +} + +#define HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE() \ +{ \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + print_annotations (out, jcf, 1); \ +} + +#define HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE() \ +{ \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + print_parameter_annotations (out, jcf, 1); \ +} + +#define HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE() \ +{ \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + print_parameter_annotations (out, jcf, 1); \ +} + +#define HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE() \ +{ \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + print_element_value (out, jcf, 1); \ +} + + #define PROCESS_OTHER_ATTRIBUTE(JCF, INDEX, LENGTH) \ { COMMON_HANDLE_ATTRIBUTE(JCF, INDEX, LENGTH); \ fputc ('\n', out); JCF_SKIP (JCF, LENGTH); } @@ -367,6 +447,158 @@ utf8_equal_string (JCF *jcf, int index, const char * value) #include "javaop.h" + + +static void +indent (FILE *stream, int level) +{ + int i; + for (i = 0; i < level; ++i) + fprintf (stream, " "); +} + +static void +print_element_value (FILE *stream, JCF *jcf, int level) +{ + uint8 tag = JCF_readu (jcf); + indent (stream, level); + switch (tag) + { + case 'B': + case 'C': + case 'S': + case 'Z': + case 'I': + { + uint16 cindex = JCF_readu2 (jcf); + print_constant_terse_with_index (stream, jcf, cindex, + CONSTANT_Integer); + } + break; + case 'D': + { + uint16 cindex = JCF_readu2 (jcf); + print_constant_terse_with_index (stream, jcf, cindex, + CONSTANT_Double); + } + break; + case 'F': + { + uint16 cindex = JCF_readu2 (jcf); + print_constant_terse_with_index (stream, jcf, cindex, + CONSTANT_Float); + } + break; + case 'J': + { + uint16 cindex = JCF_readu2 (jcf); + print_constant_terse_with_index (stream, jcf, cindex, + CONSTANT_Long); + } + break; + case 's': + { + uint16 cindex = JCF_readu2 (jcf); + /* Despite what the JVM spec says, compilers generate a Utf8 + constant here, not a String. */ + print_constant_terse_with_index (stream, jcf, cindex, + CONSTANT_Utf8); + } + break; + + case 'e': + { + uint16 type_name_index = JCF_readu2 (jcf); + uint16 const_name_index = JCF_readu2 (jcf); + fprintf (stream, "enum class: "); + print_constant_terse_with_index (stream, jcf, type_name_index, + CONSTANT_Utf8); + fprintf (stream, "\n"); + indent (stream, level); + fprintf (stream, "Field: "); + print_constant_terse_with_index (stream, jcf, const_name_index, + CONSTANT_Utf8); + } + break; + case 'c': + { + uint16 class_info_index = JCF_readu2 (jcf); + print_constant_terse_with_index (stream, jcf, class_info_index, + CONSTANT_Utf8); + } + break; + case '@': + { + fprintf (stream, "Annotation:\n"); + print_annotation (stream, jcf, level + 1); + } + break; + case '[': + { + uint16 n_array_elts = JCF_readu2 (jcf); + fprintf (stream, "array[%d]: [\n", (int) n_array_elts); + while (n_array_elts--) + print_element_value (stream, jcf, level + 1); + indent (stream, level); + fprintf (stream, "]"); + } + break; + default: + fprintf (stream, "Unexpected tag value: %d", (int) tag); + break; + } + fputc ('\n', stream); +} + +static void +print_annotation (FILE *stream, JCF *jcf, int level) +{ + uint16 type_index = JCF_readu2 (jcf); + uint16 npairs = JCF_readu2 (jcf); + fprintf (stream, "\n"); + indent (stream, level); + fprintf (stream, "Annotation name: "); + print_constant_terse_with_index (stream, jcf, type_index, + CONSTANT_Utf8); + if (npairs) + { + fprintf (stream, "\n"); + while (npairs--) + { + uint16 name_index = JCF_readu2 (jcf); + indent (stream, level + 1); + fprintf (stream, "Name: "); + print_constant_terse_with_index (stream, jcf, name_index, + CONSTANT_Utf8); + fprintf (stream, "\n"); + print_element_value (stream, jcf, level + 2); + } + } +} + +static void +print_annotations (FILE *stream, JCF *jcf, int level) +{ + uint16 num = JCF_readu2 (jcf); + while (num--) + print_annotation (stream, jcf, level); +} + +static void +print_parameter_annotations (FILE *stream, JCF *jcf, int level) +{ + uint8 nparams = JCF_readu (jcf); + uint8 i; + for (i = 0; i < nparams; ++i) + { + indent (stream, level); + fprintf (stream, "Parameter annotations (%d):\n", (int) i); + print_annotations (stream, jcf, level + 1); + } +} + + + static void print_constant_ref (FILE *stream, JCF *jcf, int index) { diff --git a/gcc/java/jcf-io.c b/gcc/java/jcf-io.c index c8651b6715f..426b2532b12 100644 --- a/gcc/java/jcf-io.c +++ b/gcc/java/jcf-io.c @@ -1,5 +1,5 @@ /* Utility routines for finding and reading Java(TM) .class files. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005 + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -450,6 +450,9 @@ find_class (const char *classname, int classname_length, JCF *jcf, char *buffer; hashval_t hash; + /* FIXME: ecj hack. */ + source_ok = 0; + /* Create the hash table, if it does not already exist. */ if (!memoized_class_lookups) memoized_class_lookups = htab_create (37, diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index 9f0ccaa094d..079228e8954 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -1,6 +1,6 @@ /* Parser for Java(TM) .class files. - Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -35,6 +35,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "flags.h" #include "java-except.h" #include "input.h" +#include "javaop.h" #include "java-tree.h" #include "toplev.h" #include "parse.h" @@ -43,6 +44,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "assert.h" #include "tm_p.h" #include "cgraph.h" +#include "vecprim.h" #ifdef HAVE_LOCALE_H #include @@ -89,23 +91,32 @@ static location_t file_start_location; /* The Java archive that provides main_class; the main input file. */ static GTY(()) struct JCF * main_jcf; +/* The number of source files passd to us by -fsource-filename and an + array of pointers to each name. Used by find_sourcefile(). */ +static int num_files = 0; +static char **filenames; + static struct ZipFile *localToFile; +/* A map of byte offsets in the reflection data that are fields which + need renumbering. */ +bitmap field_offsets; +bitmap_obstack bit_obstack; + /* Declarations of some functions used here. */ -static void handle_innerclass_attribute (int count, JCF *); +static void handle_innerclass_attribute (int count, JCF *, int len); static tree give_name_to_class (JCF *jcf, int index); static char *compute_class_name (struct ZipDirectory *zdir); static int classify_zip_file (struct ZipDirectory *zdir); static void parse_zip_file_entries (void); static void process_zip_dir (FILE *); -static void parse_source_file_1 (tree, const char *, FILE *); -static void parse_source_file_2 (void); -static void parse_source_file_3 (void); static void parse_class_file (void); static void handle_deprecated (void); static void set_source_filename (JCF *, int); static void jcf_parse (struct JCF*); static void load_inner_classes (tree); +static void handle_annotation (JCF *jcf, int level); +static void java_layout_seen_class_methods (void); /* Handle "Deprecated" attribute. */ static void @@ -124,6 +135,181 @@ handle_deprecated (void) } } + + +/* Reverse a string. */ +static char * +reverse (const char *s) +{ + if (s == NULL) + return NULL; + else + { + int len = strlen (s); + char *d = xmalloc (len + 1); + const char *sp; + char *dp; + + d[len] = 0; + for (dp = &d[0], sp = &s[len-1]; sp >= s; dp++, sp--) + *dp = *sp; + + return d; + } +} + +/* Compare two strings for qsort(). */ +static int +cmpstringp (const void *p1, const void *p2) +{ + /* The arguments to this function are "pointers to + pointers to char", but strcmp() arguments are "pointers + to char", hence the following cast plus dereference */ + + return strcmp(*(char **) p1, *(char **) p2); +} + +/* Create an array of strings, one for each source file that we've + seen. fsource_filename can either be the name of a single .java + file or a file that contains a list of filenames separated by + newlines. */ +void +java_read_sourcefilenames (const char *fsource_filename) +{ + if (fsource_filename + && filenames == 0 + && strlen (fsource_filename) > strlen (".java") + && strcmp ((fsource_filename + + strlen (fsource_filename) + - strlen (".java")), + ".java") != 0) + { +/* fsource_filename isn't a .java file but a list of filenames + separated by newlines */ + FILE *finput = fopen (fsource_filename, "r"); + int len = 0; + int longest_line = 0; + + gcc_assert (finput); + + /* Find out how many files there are, and how long the filenames are. */ + while (! feof (finput)) + { + int ch = getc (finput); + if (ch == '\n') + { + num_files++; + if (len > longest_line) + longest_line = len; + len = 0; + continue; + } + if (ch == EOF) + break; + len++; + } + + rewind (finput); + + /* Read the filenames. Put a pointer to each filename into the + array FILENAMES. */ + { + char *linebuf = alloca (longest_line + 1); + int i = 0; + int charpos; + + filenames = xmalloc (num_files * sizeof (char*)); + + charpos = 0; + for (;;) + { + int ch = getc (finput); + if (ch == EOF) + break; + if (ch == '\n') + { + linebuf[charpos] = 0; + gcc_assert (i < num_files); + /* ??? Perhaps we should use lrealpath() here. Doing + so would tidy up things like /../ but the rest of + gcc seems to assume relative pathnames, not + absolute pathnames. */ +/* realname = lrealpath (linebuf); */ + filenames[i++] = reverse (linebuf); + charpos = 0; + continue; + } + gcc_assert (charpos < longest_line); + linebuf[charpos++] = ch; + } + + if (num_files > 1) + qsort (filenames, num_files, sizeof (char *), cmpstringp); + } + fclose (finput); + } + else + { + filenames = xmalloc (sizeof (char*)); + filenames[0] = reverse (fsource_filename); + num_files = 1; + } +} + +/* Given a relative pathname such as foo/bar.java, attempt to find a + longer pathname with the same suffix. + + This is a best guess heuristic; with some weird class hierarcies we + may fail to pick the correct source file. For example, if we have + the filenames foo/bar.java and also foo/foo/bar.java, we do not + have enough information to know which one is the right match for + foo/bar.java. */ + +static const char * +find_sourcefile (const char *name) +{ + int i = 0, j = num_files-1; + char *found = NULL; + + if (filenames) + { + char *revname = reverse (name); + + do + { + int k = (i+j) / 2; + int cmp = strncmp (revname, filenames[k], strlen (revname)); + if (cmp == 0) + { + /* OK, so we found one. But is it a unique match? */ + if ((k > i + && strncmp (revname, filenames[k-1], strlen (revname)) == 0) + || (k < j + && (strncmp (revname, filenames[k+1], strlen (revname)) + == 0))) + ; + else + found = filenames[k]; + break; + } + if (cmp > 0) + i = k+1; + else + j = k-1; + } + while (i <= j); + + free (revname); + } + + if (found && strlen (found) > strlen (name)) + return reverse (found); + else + return name; +} + + + /* Handle "SourceFile" attribute. */ static void @@ -144,6 +330,7 @@ set_source_filename (JCF *jcf, int index) || old_filename[old_len - new_len - 1] == '\\')) { #ifndef USE_MAPPED_LOCATION + input_filename = find_sourcefile (input_filename); DECL_SOURCE_LOCATION (TYPE_NAME (current_class)) = input_location; file_start_location = input_location; #endif @@ -177,6 +364,7 @@ set_source_filename (JCF *jcf, int index) } } + sfname = find_sourcefile (sfname); #ifdef USE_MAPPED_LOCATION line_table.maps[line_table.used-1].to_file = sfname; #else @@ -187,6 +375,519 @@ set_source_filename (JCF *jcf, int index) if (current_class == main_class) main_input_filename = sfname; } + + + +/* Annotation handling. + + The technique we use here is to copy the annotation data directly + from the input class file into the ouput file. We don't decode the + data at all, merely rewriting constant indexes whenever we come + across them: this is necessary becasue the constant pool in the + output file isn't the same as the constant pool in in the input. + + The main advantage of this technique is that the resulting + annotation data is pointer-free, so it doesn't have to be relocated + at startup time. As a consequence of this, annotations have no + peformance impact unless they are used. Also, this representation + is very dense. */ + + +/* Expand TYPE_REFLECTION_DATA by DELTA bytes. Return the address of + the start of the newly allocated region. */ + +static unsigned char* +annotation_grow (int delta) +{ + unsigned char **data = &TYPE_REFLECTION_DATA (current_class); + long *datasize = &TYPE_REFLECTION_DATASIZE (current_class); + long len = *datasize; + + if (*data == NULL) + { + *data = xmalloc (delta); + } + else + { + int newlen = *datasize + delta; + if (floor_log2 (newlen) != floor_log2 (*datasize)) + *data = xrealloc (*data, 2 << (floor_log2 (newlen))); + } + *datasize += delta; + return *data + len; +} + +/* annotation_rewrite_TYPE. Rewrite various int types at p. Use Java + byte order (i.e. big endian.) */ + +static void +annotation_rewrite_byte (unsigned int n, unsigned char *p) +{ + p[0] = n; +} + +static void +annotation_rewrite_short (unsigned int n, unsigned char *p) +{ + p[0] = n>>8; + p[1] = n; +} + +static void +annotation_rewrite_int (unsigned int n, unsigned char *p) +{ + p[0] = n>>24; + p[1] = n>>16; + p[2] = n>>8; + p[3] = n; +} + +/* Read a 16-bit unsigned int in Java byte order (i.e. big + endian.) */ + +static uint16 +annotation_read_short (unsigned char *p) +{ + uint16 tmp = p[0]; + tmp = (tmp << 8) | p[1]; + return tmp; +} + +/* annotation_write_TYPE. Rewrite various int types, appending them + to TYPE_REFLECTION_DATA. Use Java byte order (i.e. big + endian.) */ + +static void +annotation_write_byte (unsigned int n) +{ + annotation_rewrite_byte (n, annotation_grow (1)); +} + +static void +annotation_write_short (unsigned int n) +{ + annotation_rewrite_short (n, annotation_grow (2)); +} + +static void +annotation_write_int (unsigned int n) +{ + annotation_rewrite_int (n, annotation_grow (4)); +} + +/* Create a 64-bit constant in the constant pool. + + This is used for both integer and floating-point types. As a + consequence, it will not work if the target floating-point format + is anything other than IEEE-754. While this is arguably a bug, the + runtime library makes exactly the same assumption and it's unlikely + that Java will ever run on a non-IEEE machine. */ + +static int +handle_long_constant (JCF *jcf, CPool *cpool, enum cpool_tag kind, + int index, bool big_endian) +{ + /* If we're on a 64-bit platform we can fit a long or double + into the same space as a jword. */ + if (POINTER_SIZE >= 64) + index = find_constant1 (cpool, kind, JPOOL_LONG (jcf, index)); + + /* In a compiled program the constant pool is in native word + order. How weird is that??? */ + else if (big_endian) + index = find_constant2 (cpool, kind, + JPOOL_INT (jcf, index), + JPOOL_INT (jcf, index+1)); + else + index = find_constant2 (cpool, kind, + JPOOL_INT (jcf, index+1), + JPOOL_INT (jcf, index)); + + return index; +} + +/* Given a class file and an index into its constant pool, create an + entry in the outgoing constant pool for the same item. */ + +static uint16 +handle_constant (JCF *jcf, int index, enum cpool_tag purpose) +{ + enum cpool_tag kind; + CPool *cpool = cpool_for_class (output_class); + + if (index == 0) + return 0; + + if (! CPOOL_INDEX_IN_RANGE (&jcf->cpool, index)) + error ("", index); + + kind = JPOOL_TAG (jcf, index); + + if ((kind & ~CONSTANT_ResolvedFlag) != purpose) + { + if (purpose == CONSTANT_Class + && kind == CONSTANT_Utf8) + ; + else + error ("right_zip = 1; \ } +#define HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE() \ +{ \ + handle_member_annotations (index, jcf, name_data, attribute_length, attr_type); \ +} + +#define HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE() \ +{ \ + JCF_SKIP(jcf, attribute_length); \ +} + +#define HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE() \ +{ \ + handle_parameter_annotations (index, jcf, name_data, attribute_length, attr_type); \ +} + +#define HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE() \ +{ \ + JCF_SKIP(jcf, attribute_length); \ +} + +#define HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE() \ +{ \ + handle_default_annotation (index, jcf, name_data, attribute_length, attr_type); \ +} + +#define HANDLE_ENCLOSINGMETHOD_ATTRIBUTE() \ +{ \ + handle_enclosingmethod_attribute (index, jcf, name_data, \ + attribute_length, attr_type); \ +} + +#define HANDLE_SIGNATURE_ATTRIBUTE() \ +{ \ + handle_signature_attribute (index, jcf, name_data, \ + attribute_length, attr_type); \ +} + #include "jcf-reader.c" tree @@ -403,9 +1144,15 @@ get_name_constant (JCF *jcf, int index) the outer context with the newly resolved innerclass. */ static void -handle_innerclass_attribute (int count, JCF *jcf) +handle_innerclass_attribute (int count, JCF *jcf, int attribute_length) { - int c = (count); + int c = count; + + annotation_write_byte (JV_CLASS_ATTR); + annotation_write_int (attribute_length+1); + annotation_write_byte (JV_INNER_CLASSES_KIND); + annotation_write_short (count); + while (c--) { /* Read inner_class_info_index. This may be 0 */ @@ -418,6 +1165,12 @@ handle_innerclass_attribute (int count, JCF *jcf) int ini = JCF_readu2 (jcf); /* Read the access flag. */ int acc = JCF_readu2 (jcf); + + annotation_write_short (handle_constant (jcf, icii, CONSTANT_Class)); + annotation_write_short (handle_constant (jcf, ocii, CONSTANT_Class)); + annotation_write_short (handle_constant (jcf, ini, CONSTANT_Utf8)); + annotation_write_short (acc); + /* If icii is 0, don't try to read the class. */ if (icii >= 0) { @@ -553,6 +1306,8 @@ read_class (tree name) if (current_jcf->java_source) { + gcc_unreachable (); +#if 0 const char *filename = current_jcf->filename; char *real_path; tree given_file, real_file; @@ -590,15 +1345,16 @@ read_class (tree name) JCF_FINISH (current_jcf); java_pop_parser_context (generate); java_parser_context_restore_global (); +#endif } else { if (class == NULL_TREE || ! CLASS_PARSED_P (class)) { - java_parser_context_save_global (); - java_push_parser_context (); +/* java_parser_context_save_global (); */ +/* java_push_parser_context (); */ output_class = current_class = class; - ctxp->save_location = input_location; +/* ctxp->save_location = input_location; */ if (JCF_SEEN_IN_ZIP (current_jcf)) read_zip_member(current_jcf, current_jcf->zipd, current_jcf->zipd->zipf); @@ -608,8 +1364,8 @@ read_class (tree name) if (current_class != class && icv != NULL_TREE) TREE_TYPE (icv) = current_class; class = current_class; - java_pop_parser_context (0); - java_parser_context_restore_global (); +/* java_pop_parser_context (0); */ +/* java_parser_context_restore_global (); */ } layout_class (class); load_inner_classes (class); @@ -789,6 +1545,10 @@ jcf_parse (JCF* jcf) code = jcf_parse_final_attributes (jcf); if (code != 0) fatal_error ("error while parsing final attributes"); + + if (TYPE_REFLECTION_DATA (current_class)) + annotation_write_byte (JV_DONE_ATTR); + #ifdef USE_MAPPED_LOCATION linemap_add (&line_table, LC_LEAVE, false, NULL, 0); #endif @@ -803,9 +1563,12 @@ jcf_parse (JCF* jcf) /* If we don't have the right archive, emit a verbose warning. If we're generating bytecode, emit the warning only if -fforce-classes-archive-check was specified. */ +#if 0 + /* ECJ HACK: ignore this. */ if (!jcf->right_zip && (!flag_emit_class_files || flag_force_classes_archive_check)) fatal_error ("the % that was found in %qs didn't have the special zero-length % attribute. This generally means that your classpath is incorrectly set. Use % to see the info page describing how to set the classpath", jcf->filename); +#endif } else all_class_list = tree_cons (NULL_TREE, @@ -843,6 +1606,42 @@ duplicate_class_warning (const char *filename) } static void +java_layout_seen_class_methods (void) +{ + tree previous_list = all_class_list; + tree end = NULL_TREE; + tree current; + + while (1) + { + for (current = previous_list; + current != end; current = TREE_CHAIN (current)) + { + tree decl = TREE_VALUE (current); + tree cls = TREE_TYPE (decl); + + input_location = DECL_SOURCE_LOCATION (decl); + + if (! CLASS_LOADED_P (cls)) + load_class (cls, 0); + + layout_class_methods (cls); + } + + /* Note that new classes might have been added while laying out + methods, changing the value of all_class_list. */ + + if (previous_list != all_class_list) + { + end = previous_list; + previous_list = all_class_list; + } + else + break; + } +} + +static void parse_class_file (void) { tree method; @@ -856,8 +1655,6 @@ parse_class_file (void) gen_indirect_dispatch_tables (current_class); - java_mark_class_local (current_class); - for (method = TYPE_METHODS (current_class); method != NULL_TREE; method = TREE_CHAIN (method)) { @@ -956,80 +1753,12 @@ parse_class_file (void) end_java_method (); } - if (flag_emit_class_files) - write_classfile (current_class); - finish_class (); (*debug_hooks->end_source_file) (LOCATION_LINE (save_location)); input_location = save_location; } -/* Parse a source file, as pointed by the current value of INPUT_FILENAME. */ - -static void -parse_source_file_1 (tree real_file, const char *filename, FILE *finput) -{ - int save_error_count = java_error_count; - - /* Mark the file as parsed. */ - HAS_BEEN_ALREADY_PARSED_P (real_file) = 1; - - lang_init_source (1); /* Error msgs have no method prototypes */ - - /* There's no point in trying to find the current encoding unless we - are going to do something intelligent with it -- hence the test - for iconv. */ -#if defined (HAVE_LOCALE_H) && defined (HAVE_ICONV) && defined (HAVE_LANGINFO_CODESET) - setlocale (LC_CTYPE, ""); - if (current_encoding == NULL) - current_encoding = nl_langinfo (CODESET); -#endif - if (current_encoding == NULL || *current_encoding == '\0') - current_encoding = DEFAULT_ENCODING; - -#ifdef USE_MAPPED_LOCATION - linemap_add (&line_table, LC_ENTER, false, filename, 0); - input_location = linemap_line_start (&line_table, 0, 125); -#else - input_filename = filename; - input_line = 0; -#endif - ctxp->file_start_location = input_location; - ctxp->filename = filename; - - jcf_dependency_add_file (input_filename, 0); - - /* Initialize the parser */ - java_init_lex (finput, current_encoding); - java_parse_abort_on_error (); - - java_parse (); /* Parse and build partial tree nodes. */ - java_parse_abort_on_error (); -} - -/* Process a parsed source file, resolving names etc. */ - -static void -parse_source_file_2 (void) -{ - int save_error_count = java_error_count; - flag_verify_invocations = true; - java_complete_class (); /* Parse unsatisfied class decl. */ - java_parse_abort_on_error (); -} - -static void -parse_source_file_3 (void) -{ - int save_error_count = java_error_count; - java_check_circular_reference (); /* Check on circular references */ - java_parse_abort_on_error (); - java_fix_constructors (); /* Fix the constructors */ - java_parse_abort_on_error (); - java_reorder_fields (); /* Reorder the fields */ -} - void add_predefined_file (tree name) { @@ -1074,6 +1803,9 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) FILE *finput = NULL; int in_quotes = 0; + bitmap_obstack_initialize (&bit_obstack); + field_offsets = BITMAP_ALLOC (&bit_obstack); + if (flag_filelist_file) { int avail = 2000; @@ -1150,7 +1882,12 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) next++; } - if (list[0]) + /* Exclude .java files. */ + if (strlen (list) > 5 && ! strcmp (list + strlen (list) - 5, ".java")) + { + /* Nothing. */ + } + else if (list[0]) { node = get_identifier (list); @@ -1268,6 +2005,8 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) } else { + gcc_unreachable (); +#if 0 java_push_parser_context (); java_parser_context_save_global (); @@ -1277,19 +2016,15 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) #ifdef USE_MAPPED_LOCATION linemap_add (&line_table, LC_LEAVE, false, NULL, 0); #endif +#endif } } - for (ctxp = ctxp_for_generation; ctxp; ctxp = ctxp->next) - { - input_location = ctxp->file_start_location; - parse_source_file_2 (); - } - - for (ctxp = ctxp_for_generation; ctxp; ctxp = ctxp->next) + /* Do this before lowering any code. */ + for (node = current_file_list; node; node = TREE_CHAIN (node)) { - input_location = ctxp->file_start_location; - parse_source_file_3 (); + if (CLASS_FILE_P (node)) + java_mark_class_local (TREE_TYPE (node)); } for (node = current_file_list; node; node = TREE_CHAIN (node)) @@ -1312,12 +2047,14 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) } input_location = save_location; - java_expand_classes (); - if (java_report_errors () || flag_syntax_only) - return; + bitmap_obstack_release (&bit_obstack); + +/* java_expand_classes (); */ +/* if (java_report_errors () || flag_syntax_only) */ +/* return; */ /* Expand all classes compiled from source. */ - java_finish_classes (); +/* java_finish_classes (); */ finish: /* Arrange for any necessary initialization to happen. */ @@ -1408,15 +2145,6 @@ parse_zip_file_entries (void) current_jcf = TYPE_JCF (class); output_class = current_class = class; - if (CLASS_FROM_CURRENTLY_COMPILED_P (current_class)) - { - /* We've already compiled this class. */ - duplicate_class_warning (current_jcf->filename); - break; - } - - CLASS_FROM_CURRENTLY_COMPILED_P (current_class) = 1; - /* This is a dummy class, and now we're compiling it for real. */ gcc_assert (! TYPE_DUMMY (class)); @@ -1531,6 +2259,16 @@ process_zip_dir (FILE *finput) class = lookup_class (get_identifier (class_name)); + if (CLASS_FROM_CURRENTLY_COMPILED_P (class)) + { + /* We've already compiled this class. */ + duplicate_class_warning (file_name); + continue; + } + /* This function is only called when processing a zip file seen + on the command line. */ + CLASS_FROM_CURRENTLY_COMPILED_P (class) = 1; + jcf->read_state = finput; jcf->filbuf = jcf_filbuf_from_stdio; jcf->java_source = 0; @@ -1542,12 +2280,5 @@ process_zip_dir (FILE *finput) } } -/* Initialization. */ - -void -init_jcf_parse (void) -{ - init_src_parse (); -} - #include "gt-java-jcf-parse.h" +#include "gtype-java.h" diff --git a/gcc/java/jcf-path.c b/gcc/java/jcf-path.c index 65cd80ef30c..7baef2e35e9 100644 --- a/gcc/java/jcf-path.c +++ b/gcc/java/jcf-path.c @@ -1,5 +1,5 @@ /* Handle CLASSPATH, -classpath, and path searching. - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -457,6 +457,38 @@ jcf_path_next (void *x) return (void *) ent->next; } +static const char +PATH_SEPARATOR_STR[] = {PATH_SEPARATOR, '\0'}; + +char * +jcf_path_compute (const char *prefix) +{ + struct entry *iter; + char *result; + int length = strlen (prefix) + 1; + int first; + + for (iter = sealed; iter != NULL; iter = iter->next) + length += strlen (iter->name) + 1; + + result = (char *) xmalloc (length); + strcpy (result, prefix); + first = 1; + for (iter = sealed; iter != NULL; iter = iter->next) + { + if (! first) + strcat (result, PATH_SEPARATOR_STR); + first = 0; + strcat (result, iter->name); + /* Ugly: we want to strip the '/' from zip entries when + computing a string classpath. */ + if ((iter->flags & FLAG_ZIP) != 0) + result[strlen (result) - 1] = '\0'; + } + + return result; +} + /* We guarantee that the return path will either be a zip file, or it will end with a directory separator. */ char * diff --git a/gcc/java/jcf-reader.c b/gcc/java/jcf-reader.c index 219cf657be1..2ac3124a2a3 100644 --- a/gcc/java/jcf-reader.c +++ b/gcc/java/jcf-reader.c @@ -1,7 +1,7 @@ /* This file read a Java(TM) .class file. It is not stand-alone: It depends on tons of macros, and the intent is you #include this file after you've defined the macros. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -28,12 +28,12 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "jcf.h" #include "zipfile.h" -static int get_attribute (JCF *); +static int get_attribute (JCF *, int, jv_attr_type); static int jcf_parse_preamble (JCF *); static int jcf_parse_constant_pool (JCF *); static void jcf_parse_class (JCF *); static int jcf_parse_fields (JCF *); -static int jcf_parse_one_method (JCF *); +static int jcf_parse_one_method (JCF *, int); static int jcf_parse_methods (JCF *); static int jcf_parse_final_attributes (JCF *); #ifdef NEED_PEEK_ATTRIBUTE @@ -103,7 +103,8 @@ skip_attribute (JCF *jcf, int number_of_attribute) #endif static int -get_attribute (JCF *jcf) +get_attribute (JCF *jcf, int index, + jv_attr_type attr_type ATTRIBUTE_UNUSED) { uint16 attribute_name = (JCF_FILL (jcf, 6), JCF_readu2 (jcf)); uint32 attribute_length = JCF_readu4 (jcf); @@ -168,7 +169,7 @@ get_attribute (JCF *jcf) attributes_count = JCF_readu2 (jcf); for (j = 0; j < attributes_count; j++) { - int code = get_attribute (jcf); + int code = get_attribute (jcf, index, JV_METHOD_ATTR); if (code != 0) return code; } @@ -199,6 +200,14 @@ get_attribute (JCF *jcf) } else #endif +#ifdef HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE + if (MATCH_ATTRIBUTE ("LocalVariableTypeTable")) + { + uint16 count = JCF_readu2 (jcf); + HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE (count); + } + else +#endif #ifdef HANDLE_INNERCLASSES_ATTRIBUTE if (MATCH_ATTRIBUTE ("InnerClasses")) { @@ -235,6 +244,55 @@ get_attribute (JCF *jcf) } else #endif +#ifdef HANDLE_ENCLOSINGMETHOD_ATTRIBUTE + if (MATCH_ATTRIBUTE ("EnclosingMethod")) + { + HANDLE_ENCLOSINGMETHOD_ATTRIBUTE (); + } + else +#endif +#ifdef HANDLE_SIGNATURE_ATTRIBUTE + if (MATCH_ATTRIBUTE ("Signature")) + { + HANDLE_SIGNATURE_ATTRIBUTE (); + } + else +#endif +#ifdef HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE + if (MATCH_ATTRIBUTE ("RuntimeVisibleAnnotations")) + { + HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE (); + } + else +#endif +#ifdef HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE + if (MATCH_ATTRIBUTE ("RuntimeInvisibleAnnotations")) + { + HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE (); + } + else +#endif +#ifdef HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE + if (MATCH_ATTRIBUTE ("RuntimeVisibleParameterAnnotations")) + { + HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE (); + } + else +#endif +#ifdef HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE + if (MATCH_ATTRIBUTE ("RuntimeInvisibleParameterAnnotations")) + { + HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE (); + } + else +#endif +#ifdef HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE + if (MATCH_ATTRIBUTE ("AnnotationDefault")) + { + HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE (); + } + else +#endif { #ifdef PROCESS_OTHER_ATTRIBUTE PROCESS_OTHER_ATTRIBUTE(jcf, attribute_name, attribute_length); @@ -384,7 +442,7 @@ jcf_parse_fields (JCF* jcf) #endif for (j = 0; j < attribute_count; j++) { - int code = get_attribute (jcf); + int code = get_attribute (jcf, i, JV_FIELD_ATTR); if (code != 0) return code; } @@ -401,7 +459,7 @@ jcf_parse_fields (JCF* jcf) /* Read methods. */ static int -jcf_parse_one_method (JCF* jcf) +jcf_parse_one_method (JCF* jcf, int index) { int i; uint16 access_flags = (JCF_FILL (jcf, 8), JCF_readu2 (jcf)); @@ -413,7 +471,7 @@ jcf_parse_one_method (JCF* jcf) #endif for (i = 0; i < attribute_count; i++) { - int code = get_attribute (jcf); + int code = get_attribute (jcf, index, JV_METHOD_ATTR); if (code != 0) return code; } @@ -435,7 +493,7 @@ jcf_parse_methods (JCF* jcf) #endif for (i = 0; i < methods_count; i++) { - int code = jcf_parse_one_method (jcf); + int code = jcf_parse_one_method (jcf, i); if (code != 0) return code; } @@ -456,7 +514,7 @@ jcf_parse_final_attributes (JCF *jcf) #endif for (i = 0; i < attributes_count; i++) { - int code = get_attribute (jcf); + int code = get_attribute (jcf, i, JV_CLASS_ATTR); if (code != 0) return code; } diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c deleted file mode 100644 index b68ec250229..00000000000 --- a/gcc/java/jcf-write.c +++ /dev/null @@ -1,3569 +0,0 @@ -/* Write out a Java(TM) class file. - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "jcf.h" -#include "tree.h" -#include "real.h" -#include "java-tree.h" -#include "obstack.h" -#include "rtl.h" -#include "flags.h" -#include "java-opcodes.h" -#include "parse.h" /* for BLOCK_EXPR_BODY */ -#include "buffer.h" -#include "toplev.h" -#include "ggc.h" -#include "tm_p.h" - -extern struct obstack temporary_obstack; - -/* Base directory in which `.class' files should be written. - NULL means to put the file into the same directory as the - corresponding .java file. */ -const char *jcf_write_base_directory = NULL; - -/* Make sure bytecode.data is big enough for at least N more bytes. */ - -#define RESERVE(N) \ - do { CHECK_OP(state); \ - if (state->bytecode.ptr + (N) > state->bytecode.limit) \ - buffer_grow (&state->bytecode, N); } while (0) - -/* Add a 1-byte instruction/operand I to bytecode.data, - assuming space has already been RESERVE'd. */ - -#define OP1(I) (*state->bytecode.ptr++ = (I), CHECK_OP(state)) - -/* Like OP1, but I is a 2-byte big endian integer. */ - -#define OP2(I) \ - do { int _i = (I); OP1 (_i >> 8); OP1 (_i); CHECK_OP(state); } while (0) - -/* Like OP1, but I is a 4-byte big endian integer. */ - -#define OP4(I) \ - do { int _i = (I); OP1 (_i >> 24); OP1 (_i >> 16); \ - OP1 (_i >> 8); OP1 (_i); CHECK_OP(state); } while (0) - -/* Macro to call each time we push I words on the JVM stack. */ - -#define NOTE_PUSH(I) \ - do { state->code_SP += (I); \ - if (state->code_SP > state->code_SP_max) \ - state->code_SP_max = state->code_SP; } while (0) - -/* Macro to call each time we pop I words from the JVM stack. */ - -#define NOTE_POP(I) \ - do { state->code_SP -= (I); gcc_assert (state->code_SP >= 0); } while (0) - -/* A chunk or segment of a .class file. */ - -struct chunk -{ - /* The next segment of this .class file. */ - struct chunk *next; - - /* The actual data in this segment to be written to the .class file. */ - unsigned char *data; - - /* The size of the segment to be written to the .class file. */ - int size; -}; - -#define PENDING_CLEANUP_PC (-3) -#define PENDING_EXIT_PC (-2) -#define UNDEFINED_PC (-1) - -/* Each "block" represents a label plus the bytecode instructions following. - There may be branches out of the block, but no incoming jumps, except - to the beginning of the block. - - If (pc < 0), the jcf_block is not an actual block (i.e. it has no - associated code yet), but it is an undefined label. -*/ - -struct jcf_block -{ - /* For blocks that that are defined, the next block (in pc order). - For blocks that are not-yet-defined the end label of a LABELED_BLOCK_EXPR - or a cleanup expression (from a TRY_FINALLY_EXPR), - this is the next (outer) such end label, in a stack headed by - labeled_blocks in jcf_partial. */ - struct jcf_block *next; - - /* In the not-yet-defined end label for an unfinished EXIT_BLOCK_EXPR. - pc is PENDING_EXIT_PC. - In the not-yet-defined end label for pending cleanup subroutine, - pc is PENDING_CLEANUP_PC. - For other not-yet-defined labels, pc is UNDEFINED_PC. - - If the label has been defined: - Until perform_relocations is finished, this is the maximum possible - value of the bytecode offset at the beginning of this block. - After perform_relocations, it is the actual offset (pc). */ - int pc; - - int linenumber; - - /* After finish_jcf_block is called, the actual instructions - contained in this block. Before that NULL, and the instructions - are in state->bytecode. */ - union { - struct chunk *chunk; - - /* If pc==PENDING_CLEANUP_PC, start_label is the start of the region - covered by the cleanup. */ - struct jcf_block *start_label; - } v; - - union { - /* Set of relocations (in reverse offset order) for this block. */ - struct jcf_relocation *relocations; - - /* If this block is that of the not-yet-defined end label of - a LABELED_BLOCK_EXPR, where LABELED_BLOCK is that LABELED_BLOCK_EXPR. - If pc==PENDING_CLEANUP_PC, the cleanup that needs to be run. */ - tree labeled_block; - } u; -}; - -/* A "relocation" type for the 0-3 bytes of padding at the start - of a tableswitch or a lookupswitch. */ -#define SWITCH_ALIGN_RELOC 4 - -/* A relocation type for the labels in a tableswitch or a lookupswitch; - these are relative to the start of the instruction, but (due to - th 0-3 bytes of padding), we don't know the offset before relocation. */ -#define BLOCK_START_RELOC 1 - -struct jcf_relocation -{ - /* Next relocation for the current jcf_block. */ - struct jcf_relocation *next; - - /* The (byte) offset within the current block that needs to be relocated. */ - HOST_WIDE_INT offset; - - /* 0 if offset is a 4-byte relative offset. - 4 (SWITCH_ALIGN_RELOC) if offset points to 0-3 padding bytes inserted - for proper alignment in tableswitch/lookupswitch instructions. - 1 (BLOCK_START_RELOC) if offset points to a 4-byte offset relative - to the start of the containing block. - -1 if offset is a 2-byte relative offset. - < -1 if offset is the address of an instruction with a 2-byte offset - that does not have a corresponding 4-byte offset version, in which - case the absolute value of kind is the inverted opcode. - > 4 if offset is the address of an instruction (such as jsr) with a - 2-byte offset that does have a corresponding 4-byte offset version, - in which case kind is the opcode of the 4-byte version (such as jsr_w). */ - int kind; - - /* The label the relocation wants to actually transfer to. */ - struct jcf_block *label; -}; - -#define RELOCATION_VALUE_0 ((HOST_WIDE_INT)0) -#define RELOCATION_VALUE_1 ((HOST_WIDE_INT)1) - -/* State for single catch clause. */ - -struct jcf_handler -{ - struct jcf_handler *next; - - struct jcf_block *start_label; - struct jcf_block *end_label; - struct jcf_block *handler_label; - - /* The sub-class of Throwable handled, or NULL_TREE (for finally). */ - tree type; -}; - -/* State for the current switch statement. */ - -struct jcf_switch_state -{ - struct jcf_switch_state *prev; - struct jcf_block *default_label; - - struct jcf_relocation *cases; - int num_cases; - HOST_WIDE_INT min_case, max_case; -}; - -/* This structure is used to contain the various pieces that will - become a .class file. */ - -struct jcf_partial -{ - struct chunk *first; - struct chunk *chunk; - struct obstack *chunk_obstack; - tree current_method; - - /* List of basic blocks for the current method. */ - struct jcf_block *blocks; - struct jcf_block *last_block; - - struct localvar_info *first_lvar; - struct localvar_info *last_lvar; - int lvar_count; - - CPool cpool; - - int linenumber_count; - - /* Until perform_relocations, this is a upper bound on the number - of bytes (so far) in the instructions for the current method. */ - int code_length; - - /* Stack of undefined ending labels for LABELED_BLOCK_EXPR. */ - struct jcf_block *labeled_blocks; - - /* The current stack size (stack pointer) in the current method. */ - int code_SP; - - /* The largest extent of stack size (stack pointer) in the current method. */ - int code_SP_max; - - /* Contains a mapping from local var slot number to localvar_info. */ - struct buffer localvars; - - /* The buffer allocated for bytecode for the current jcf_block. */ - struct buffer bytecode; - - /* Chain of exception handlers for the current method. */ - struct jcf_handler *handlers; - - /* Last element in handlers chain. */ - struct jcf_handler *last_handler; - - /* Number of exception handlers for the current method. */ - int num_handlers; - - /* Number of finalizers we are currently nested within. */ - int num_finalizers; - - /* If non-NULL, use this for the return value. */ - tree return_value_decl; - - /* Information about the current switch statement. */ - struct jcf_switch_state *sw_state; - - /* The count of jsr instructions that have been emitted. */ - long num_jsrs; -}; - -static void generate_bytecode_insns (tree, int, struct jcf_partial *); -static struct chunk * alloc_chunk (struct chunk *, unsigned char *, - int, struct obstack *); -static unsigned char * append_chunk (unsigned char *, int, - struct jcf_partial *); -static void append_chunk_copy (unsigned char *, int, struct jcf_partial *); -static struct jcf_block * gen_jcf_label (struct jcf_partial *); -static void finish_jcf_block (struct jcf_partial *); -static void define_jcf_label (struct jcf_block *, struct jcf_partial *); -static struct jcf_block * get_jcf_label_here (struct jcf_partial *); -static void put_linenumber (int, struct jcf_partial *); -static void localvar_alloc (tree, struct jcf_partial *); -static void maybe_free_localvar (tree, struct jcf_partial *, int); -static int get_access_flags (tree); -static void write_chunks (FILE *, struct chunk *); -static int adjust_typed_op (tree, int); -static void generate_bytecode_conditional (tree, struct jcf_block *, - struct jcf_block *, int, - struct jcf_partial *); -static void generate_bytecode_return (tree, struct jcf_partial *); -static void perform_relocations (struct jcf_partial *); -static void init_jcf_state (struct jcf_partial *, struct obstack *); -static void init_jcf_method (struct jcf_partial *, tree); -static void release_jcf_state (struct jcf_partial *); -static int get_classfile_modifiers (tree class); -static struct chunk * generate_classfile (tree, struct jcf_partial *); -static struct jcf_handler *alloc_handler (struct jcf_block *, - struct jcf_block *, - struct jcf_partial *); -static void emit_iinc (tree, HOST_WIDE_INT, struct jcf_partial *); -static void emit_reloc (HOST_WIDE_INT, int, struct jcf_block *, - struct jcf_partial *); -static void push_constant1 (HOST_WIDE_INT, struct jcf_partial *); -static void push_constant2 (HOST_WIDE_INT, struct jcf_partial *); -static void push_int_const (HOST_WIDE_INT, struct jcf_partial *); -static int find_constant_wide (HOST_WIDE_INT, HOST_WIDE_INT, - struct jcf_partial *); -static void push_long_const (HOST_WIDE_INT, HOST_WIDE_INT, - struct jcf_partial *); -static int find_constant_index (tree, struct jcf_partial *); -static void push_long_const (HOST_WIDE_INT, HOST_WIDE_INT, - struct jcf_partial *); -static void field_op (tree, int, struct jcf_partial *); -static void maybe_wide (int, int, struct jcf_partial *); -static void emit_dup (int, int, struct jcf_partial *); -static void emit_pop (int, struct jcf_partial *); -static void emit_load_or_store (tree, int, struct jcf_partial *); -static void emit_load (tree, struct jcf_partial *); -static void emit_store (tree, struct jcf_partial *); -static void emit_unop (enum java_opcode, tree, struct jcf_partial *); -static void emit_binop (enum java_opcode, tree, struct jcf_partial *); -static void emit_reloc (HOST_WIDE_INT, int, struct jcf_block *, - struct jcf_partial *); -static void emit_switch_reloc (struct jcf_block *, struct jcf_partial *); -static void emit_case_reloc (struct jcf_relocation *, struct jcf_partial *); -static void emit_if (struct jcf_block *, int, int, struct jcf_partial *); -static void emit_goto (struct jcf_block *, struct jcf_partial *); -static void emit_jsr (struct jcf_block *, struct jcf_partial *); -static void call_cleanups (struct jcf_block *, struct jcf_partial *); -static char *make_class_file_name (tree); -static unsigned char *append_synthetic_attribute (struct jcf_partial *); -static void append_deprecated_attribute (struct jcf_partial *); -static void append_innerclasses_attribute (struct jcf_partial *, tree); -static void append_innerclasses_attribute_entry (struct jcf_partial *, tree, tree); -static void append_gcj_attribute (struct jcf_partial *, tree); - -/* Utility macros for appending (big-endian) data to a buffer. - We assume a local variable 'ptr' points into where we want to - write next, and we assume enough space has been allocated. */ - -#ifdef ENABLE_JC1_CHECKING -static int CHECK_PUT (void *, struct jcf_partial *, int); - -static int -CHECK_PUT (void *ptr, struct jcf_partial *state, int i) -{ - gcc_assert ((unsigned char *) ptr >= state->chunk->data - && (unsigned char *) ptr + i <= state->chunk->data + state->chunk->size); - return 0; -} -#else -#define CHECK_PUT(PTR, STATE, I) ((void)0) -#endif - -#define PUT1(X) (CHECK_PUT(ptr, state, 1), *ptr++ = (X)) -#define PUT2(X) (PUT1((X) >> 8), PUT1((X) & 0xFF)) -#define PUT4(X) (PUT2((X) >> 16), PUT2((X) & 0xFFFF)) -#define PUTN(P, N) (CHECK_PUT(ptr, state, N), memcpy(ptr, P, N), ptr += (N)) - -/* There are some cases below where CHECK_PUT is guaranteed to fail. - Use the following macros in those specific cases. */ -#define UNSAFE_PUT1(X) (*ptr++ = (X)) -#define UNSAFE_PUT2(X) (UNSAFE_PUT1((X) >> 8), UNSAFE_PUT1((X) & 0xFF)) -#define UNSAFE_PUT4(X) (UNSAFE_PUT2((X) >> 16), UNSAFE_PUT2((X) & 0xFFFF)) -#define UNSAFE_PUTN(P, N) (memcpy(ptr, P, N), ptr += (N)) - - -/* Allocate a new chunk on obstack WORK, and link it in after LAST. - Set the data and size fields to DATA and SIZE, respectively. - However, if DATA is NULL and SIZE>0, allocate a buffer as well. */ - -static struct chunk * -alloc_chunk (struct chunk *last, unsigned char *data, - int size, struct obstack *work) -{ - struct chunk *chunk = obstack_alloc (work, sizeof(struct chunk)); - - if (data == NULL && size > 0) - data = obstack_alloc (work, size); - - chunk->next = NULL; - chunk->data = data; - chunk->size = size; - if (last != NULL) - last->next = chunk; - return chunk; -} - -#ifdef ENABLE_JC1_CHECKING -static int CHECK_OP (struct jcf_partial *); - -static int -CHECK_OP (struct jcf_partial *state) -{ - gcc_assert (state->bytecode.ptr <= state->bytecode.limit); - return 0; -} -#else -#define CHECK_OP(STATE) ((void) 0) -#endif - -static unsigned char * -append_chunk (unsigned char *data, int size, struct jcf_partial *state) -{ - state->chunk = alloc_chunk (state->chunk, data, size, state->chunk_obstack); - if (state->first == NULL) - state->first = state->chunk; - return state->chunk->data; -} - -static void -append_chunk_copy (unsigned char *data, int size, struct jcf_partial *state) -{ - unsigned char *ptr = append_chunk (NULL, size, state); - memcpy (ptr, data, size); -} - -static struct jcf_block * -gen_jcf_label (struct jcf_partial *state) -{ - struct jcf_block *block - = obstack_alloc (state->chunk_obstack, sizeof (struct jcf_block)); - block->next = NULL; - block->linenumber = -1; - block->pc = UNDEFINED_PC; - return block; -} - -static void -finish_jcf_block (struct jcf_partial *state) -{ - struct jcf_block *block = state->last_block; - struct jcf_relocation *reloc; - int code_length = BUFFER_LENGTH (&state->bytecode); - int pc = state->code_length; - append_chunk_copy (state->bytecode.data, code_length, state); - BUFFER_RESET (&state->bytecode); - block->v.chunk = state->chunk; - - /* Calculate code_length to the maximum value it can have. */ - pc += block->v.chunk->size; - for (reloc = block->u.relocations; reloc != NULL; reloc = reloc->next) - { - int kind = reloc->kind; - if (kind == SWITCH_ALIGN_RELOC) - pc += 3; - else if (kind > BLOCK_START_RELOC) - pc += 2; /* 2-byte offset may grow to 4-byte offset */ - else if (kind < -1) - pc += 5; /* May need to add a goto_w. */ - } - state->code_length = pc; -} - -static void -define_jcf_label (struct jcf_block *label, struct jcf_partial *state) -{ - if (state->last_block != NULL) - finish_jcf_block (state); - label->pc = state->code_length; - if (state->blocks == NULL) - state->blocks = label; - else - state->last_block->next = label; - state->last_block = label; - label->next = NULL; - label->u.relocations = NULL; -} - -static struct jcf_block * -get_jcf_label_here (struct jcf_partial *state) -{ - if (state->last_block != NULL && BUFFER_LENGTH (&state->bytecode) == 0) - return state->last_block; - else - { - struct jcf_block *label = gen_jcf_label (state); - define_jcf_label (label, state); - return label; - } -} - -/* Note a line number entry for the current PC and given LINE. */ - -static void -put_linenumber (int line, struct jcf_partial *state) -{ - struct jcf_block *label = get_jcf_label_here (state); - if (label->linenumber > 0) - { - label = gen_jcf_label (state); - define_jcf_label (label, state); - } - label->linenumber = line; - state->linenumber_count++; -} - -/* Allocate a new jcf_handler, for a catch clause that catches exceptions - in the range (START_LABEL, END_LABEL). */ - -static struct jcf_handler * -alloc_handler (struct jcf_block *start_label, struct jcf_block *end_label, - struct jcf_partial *state) -{ - struct jcf_handler *handler - = obstack_alloc (state->chunk_obstack, sizeof (struct jcf_handler)); - handler->start_label = start_label; - handler->end_label = end_label; - handler->handler_label = get_jcf_label_here (state); - if (state->handlers == NULL) - state->handlers = handler; - else - state->last_handler->next = handler; - state->last_handler = handler; - handler->next = NULL; - state->num_handlers++; - return handler; -} - - -/* The index of jvm local variable allocated for this DECL. - This is assigned when generating .class files; - contrast DECL_LOCAL_SLOT_NUMBER which is set when *reading* a .class file. - (We don't allocate DECL_LANG_SPECIFIC for locals from Java source code.) */ - -#define DECL_LOCAL_INDEX(DECL) DECL_ALIGN(DECL) - -struct localvar_info -{ - struct localvar_info *next; - - tree decl; - struct jcf_block *start_label; - struct jcf_block *end_label; -}; - -#define localvar_buffer ((struct localvar_info**) state->localvars.data) -#define localvar_max \ - ((struct localvar_info**) state->localvars.ptr - localvar_buffer) - -static void -localvar_alloc (tree decl, struct jcf_partial *state) -{ - struct jcf_block *start_label = get_jcf_label_here (state); - int wide = TYPE_IS_WIDE (TREE_TYPE (decl)); - int index; - struct localvar_info *info; - struct localvar_info **ptr = localvar_buffer; - struct localvar_info **limit - = (struct localvar_info**) state->localvars.ptr; - for (index = 0; ptr < limit; index++, ptr++) - { - if (ptr[0] == NULL - && (! wide || ((ptr+1) < limit && ptr[1] == NULL))) - break; - } - if (ptr == limit) - { - buffer_grow (&state->localvars, 2 * sizeof (struct localvar_info*)); - ptr = (struct localvar_info**) state->localvars.data + index; - state->localvars.ptr = (unsigned char *) (ptr + 1 + wide); - } - info = obstack_alloc (state->chunk_obstack, sizeof (struct localvar_info)); - ptr[0] = info; - if (wide) - ptr[1] = (struct localvar_info *)(~0); - DECL_LOCAL_INDEX (decl) = index; - info->decl = decl; - info->start_label = start_label; - - if (debug_info_level > DINFO_LEVEL_TERSE - && DECL_NAME (decl) != NULL_TREE) - { - /* Generate debugging info. */ - info->next = NULL; - if (state->last_lvar != NULL) - state->last_lvar->next = info; - else - state->first_lvar = info; - state->last_lvar = info; - state->lvar_count++; - } -} - -static void -maybe_free_localvar (tree decl, struct jcf_partial *state, int really) -{ - struct jcf_block *end_label = get_jcf_label_here (state); - int index = DECL_LOCAL_INDEX (decl); - struct localvar_info **ptr = &localvar_buffer [index]; - struct localvar_info *info = *ptr; - int wide = TYPE_IS_WIDE (TREE_TYPE (decl)); - - info->end_label = end_label; - - gcc_assert (info->decl == decl); - if (! really) - return; - ptr[0] = NULL; - if (wide) - { - gcc_assert (ptr[1] == (struct localvar_info *) (~0)); - ptr[1] = NULL; - } -} - - -#define STACK_TARGET 1 -#define IGNORE_TARGET 2 - -/* Get the access flags of a class (TYPE_DECL), a method (FUNCTION_DECL), or - a field (FIELD_DECL or VAR_DECL, if static), as encoded in a .class file. */ - -static int -get_access_flags (tree decl) -{ - int flags = 0; - int isfield = TREE_CODE (decl) == FIELD_DECL || TREE_CODE (decl) == VAR_DECL; - - if (isfield || TREE_CODE (decl) == FUNCTION_DECL) - { - if (TREE_PROTECTED (decl)) - flags |= ACC_PROTECTED; - if (TREE_PRIVATE (decl)) - flags |= ACC_PRIVATE; - } - else if (TREE_CODE (decl) == TYPE_DECL) - { - if (CLASS_PUBLIC (decl)) - flags |= ACC_PUBLIC; - if (CLASS_FINAL (decl)) - flags |= ACC_FINAL; - if (CLASS_SUPER (decl)) - flags |= ACC_SUPER; - if (CLASS_ABSTRACT (decl)) - flags |= ACC_ABSTRACT; - if (CLASS_INTERFACE (decl)) - flags |= ACC_INTERFACE; - if (CLASS_STATIC (decl)) - flags |= ACC_STATIC; - if (CLASS_PRIVATE (decl)) - flags |= ACC_PRIVATE; - if (CLASS_PROTECTED (decl)) - flags |= ACC_PROTECTED; - if (ANONYMOUS_CLASS_P (TREE_TYPE (decl)) - || LOCAL_CLASS_P (TREE_TYPE (decl))) - flags |= ACC_PRIVATE; - if (CLASS_STRICTFP (decl)) - flags |= ACC_STRICT; - } - else - gcc_unreachable (); - - if (TREE_CODE (decl) == FUNCTION_DECL) - { - if (METHOD_PUBLIC (decl)) - flags |= ACC_PUBLIC; - if (METHOD_FINAL (decl)) - flags |= ACC_FINAL; - if (METHOD_NATIVE (decl)) - flags |= ACC_NATIVE; - if (METHOD_STATIC (decl)) - flags |= ACC_STATIC; - if (METHOD_SYNCHRONIZED (decl)) - flags |= ACC_SYNCHRONIZED; - if (METHOD_ABSTRACT (decl)) - flags |= ACC_ABSTRACT; - if (METHOD_STRICTFP (decl)) - flags |= ACC_STRICT; - } - if (isfield) - { - if (FIELD_PUBLIC (decl)) - flags |= ACC_PUBLIC; - if (FIELD_FINAL (decl)) - flags |= ACC_FINAL; - if (FIELD_STATIC (decl)) - flags |= ACC_STATIC; - if (FIELD_VOLATILE (decl)) - flags |= ACC_VOLATILE; - if (FIELD_TRANSIENT (decl)) - flags |= ACC_TRANSIENT; - } - return flags; -} - -/* Write the list of segments starting at CHUNKS to STREAM. */ - -static void -write_chunks (FILE* stream, struct chunk *chunks) -{ - for (; chunks != NULL; chunks = chunks->next) - fwrite (chunks->data, chunks->size, 1, stream); -} - -/* Push a 1-word constant in the constant pool at the given INDEX. - (Caller is responsible for doing NOTE_PUSH.) */ - -static void -push_constant1 (HOST_WIDE_INT index, struct jcf_partial *state) -{ - RESERVE (3); - if (index < 256) - { - OP1 (OPCODE_ldc); - OP1 (index); - } - else - { - OP1 (OPCODE_ldc_w); - OP2 (index); - } -} - -/* Push a 2-word constant in the constant pool at the given INDEX. - (Caller is responsible for doing NOTE_PUSH.) */ - -static void -push_constant2 (HOST_WIDE_INT index, struct jcf_partial *state) -{ - RESERVE (3); - OP1 (OPCODE_ldc2_w); - OP2 (index); -} - -/* Push 32-bit integer constant on VM stack. - Caller is responsible for doing NOTE_PUSH. */ - -static void -push_int_const (HOST_WIDE_INT i, struct jcf_partial *state) -{ - RESERVE(3); - if (i >= -1 && i <= 5) - OP1(OPCODE_iconst_0 + i); - else if (i >= -128 && i < 128) - { - OP1(OPCODE_bipush); - OP1(i); - } - else if (i >= -32768 && i < 32768) - { - OP1(OPCODE_sipush); - OP2(i); - } - else - { - i = find_constant1 (&state->cpool, CONSTANT_Integer, - (jword)(i & 0xFFFFFFFF)); - push_constant1 (i, state); - } -} - -static int -find_constant_wide (HOST_WIDE_INT lo, HOST_WIDE_INT hi, - struct jcf_partial *state) -{ - unsigned HOST_WIDE_INT w1; - HOST_WIDE_INT w2; - lshift_double (lo, hi, -32, 64, &w1, &w2, 1); - return find_constant2 (&state->cpool, CONSTANT_Long, - (jword)(w1 & 0xFFFFFFFF), (jword)(lo & 0xFFFFFFFF)); -} - -/* Find or allocate a constant pool entry for the given VALUE. - Return the index in the constant pool. */ - -static int -find_constant_index (tree value, struct jcf_partial *state) -{ - if (TREE_CODE (value) == INTEGER_CST) - { - if (TYPE_PRECISION (TREE_TYPE (value)) <= 32) - return find_constant1 (&state->cpool, CONSTANT_Integer, - (jword)(TREE_INT_CST_LOW (value) & 0xFFFFFFFF)); - else - return find_constant_wide (TREE_INT_CST_LOW (value), - TREE_INT_CST_HIGH (value), state); - } - else if (TREE_CODE (value) == REAL_CST) - { - long words[2]; - - /* IEEE NaN can have many values, but the Java VM spec defines a - canonical NaN. */ - if (flag_emit_class_files - && REAL_VALUE_ISNAN (TREE_REAL_CST (value))) - { - if (TYPE_PRECISION (TREE_TYPE (value)) == 32) - return find_constant1 (&state->cpool, CONSTANT_Float, - 0x7fc00000); - else - return find_constant2 (&state->cpool, CONSTANT_Double, - 0x7ff80000, 0x00000000); - } - - real_to_target (words, &TREE_REAL_CST (value), - TYPE_MODE (TREE_TYPE (value))); - words[0] &= 0xffffffff; - words[1] &= 0xffffffff; - - if (TYPE_PRECISION (TREE_TYPE (value)) == 32) - return find_constant1 (&state->cpool, CONSTANT_Float, (jword)words[0]); - else - return find_constant2 (&state->cpool, CONSTANT_Double, - (jword)words[1-FLOAT_WORDS_BIG_ENDIAN], - (jword)words[FLOAT_WORDS_BIG_ENDIAN]); - } - else if (TREE_CODE (value) == STRING_CST) - return find_string_constant (&state->cpool, value); - - else - gcc_unreachable (); -} - -/* Push 64-bit long constant on VM stack. - Caller is responsible for doing NOTE_PUSH. */ - -static void -push_long_const (HOST_WIDE_INT lo, HOST_WIDE_INT hi, struct jcf_partial *state) -{ - unsigned HOST_WIDE_INT highpart; - HOST_WIDE_INT dummy; - jint lowpart = WORD_TO_INT (lo); - - rshift_double (lo, hi, 32, 64, &highpart, &dummy, 1); - - if (highpart == 0 && (lowpart == 0 || lowpart == 1)) - { - RESERVE(1); - OP1(OPCODE_lconst_0 + lowpart); - } - else if ((highpart == 0 && lowpart > 0 && lowpart < 32768) - || (highpart == (unsigned HOST_WIDE_INT)-1 - && lowpart < 0 && lowpart >= -32768)) - { - push_int_const (lowpart, state); - RESERVE (1); - OP1 (OPCODE_i2l); - } - else - push_constant2 (find_constant_wide (lo, hi, state), state); -} - -static void -field_op (tree field, int opcode, struct jcf_partial *state) -{ - int index = find_fieldref_index (&state->cpool, field); - RESERVE (3); - OP1 (opcode); - OP2 (index); -} - -/* Returns an integer in the range 0 (for 'int') through 4 (for object - reference) to 7 (for 'short') which matches the pattern of how JVM - opcodes typically depend on the operand type. */ - -static int -adjust_typed_op (tree type, int max) -{ - switch (TREE_CODE (type)) - { - case POINTER_TYPE: - case RECORD_TYPE: return 4; - case BOOLEAN_TYPE: - return TYPE_PRECISION (type) == 32 || max < 5 ? 0 : 5; - case INTEGER_TYPE: - if (type == char_type_node || type == promoted_char_type_node) - return TYPE_PRECISION (type) == 32 || max < 6 ? 0 : 6; - switch (TYPE_PRECISION (type)) - { - case 8: return max < 5 ? 0 : 5; - case 16: return max < 7 ? 0 : 7; - case 32: return 0; - case 64: return 1; - } - break; - case REAL_TYPE: - switch (TYPE_PRECISION (type)) - { - case 32: return 2; - case 64: return 3; - } - break; - default: - break; - } - gcc_unreachable (); -} - -static void -maybe_wide (int opcode, int index, struct jcf_partial *state) -{ - if (index >= 256) - { - RESERVE (4); - OP1 (OPCODE_wide); - OP1 (opcode); - OP2 (index); - } - else - { - RESERVE (2); - OP1 (opcode); - OP1 (index); - } -} - -/* Compile code to duplicate with offset, where - SIZE is the size of the stack item to duplicate (1 or 2), abd - OFFSET is where to insert the result (must be 0, 1, or 2). - (The new words get inserted at stack[SP-size-offset].) */ - -static void -emit_dup (int size, int offset, struct jcf_partial *state) -{ - int kind; - if (size == 0) - return; - RESERVE(1); - if (offset == 0) - kind = size == 1 ? OPCODE_dup : OPCODE_dup2; - else if (offset == 1) - kind = size == 1 ? OPCODE_dup_x1 : OPCODE_dup2_x1; - else if (offset == 2) - kind = size == 1 ? OPCODE_dup_x2 : OPCODE_dup2_x2; - else - gcc_unreachable (); - OP1 (kind); - NOTE_PUSH (size); -} - -static void -emit_pop (int size, struct jcf_partial *state) -{ - RESERVE (1); - OP1 (OPCODE_pop - 1 + size); -} - -static void -emit_iinc (tree var, HOST_WIDE_INT value, struct jcf_partial *state) -{ - int slot = DECL_LOCAL_INDEX (var); - - if (value < -128 || value > 127 || slot >= 256) - { - RESERVE (6); - OP1 (OPCODE_wide); - OP1 (OPCODE_iinc); - OP2 (slot); - OP2 (value); - } - else - { - RESERVE (3); - OP1 (OPCODE_iinc); - OP1 (slot); - OP1 (value); - } -} - -static void -emit_load_or_store (tree var, /* Variable to load from or store into. */ - int opcode, /* Either OPCODE_iload or OPCODE_istore. */ - struct jcf_partial *state) -{ - tree type = TREE_TYPE (var); - int kind = adjust_typed_op (type, 4); - int index = DECL_LOCAL_INDEX (var); - if (index <= 3) - { - RESERVE (1); - OP1 (opcode + 5 + 4 * kind + index); /* [ilfda]{load,store}_[0123] */ - } - else - maybe_wide (opcode + kind, index, state); /* [ilfda]{load,store} */ -} - -static void -emit_load (tree var, struct jcf_partial *state) -{ - emit_load_or_store (var, OPCODE_iload, state); - NOTE_PUSH (TYPE_IS_WIDE (TREE_TYPE (var)) ? 2 : 1); -} - -static void -emit_store (tree var, struct jcf_partial *state) -{ - emit_load_or_store (var, OPCODE_istore, state); - NOTE_POP (TYPE_IS_WIDE (TREE_TYPE (var)) ? 2 : 1); -} - -static void -emit_unop (enum java_opcode opcode, tree type ATTRIBUTE_UNUSED, - struct jcf_partial *state) -{ - RESERVE(1); - OP1 (opcode); -} - -static void -emit_binop (enum java_opcode opcode, tree type, struct jcf_partial *state) -{ - int size = TYPE_IS_WIDE (type) ? 2 : 1; - RESERVE(1); - OP1 (opcode); - NOTE_POP (size); -} - -static void -emit_reloc (HOST_WIDE_INT value, int kind, - struct jcf_block *target, struct jcf_partial *state) -{ - struct jcf_relocation *reloc - = obstack_alloc (state->chunk_obstack, sizeof (struct jcf_relocation)); - struct jcf_block *block = state->last_block; - reloc->next = block->u.relocations; - block->u.relocations = reloc; - reloc->offset = BUFFER_LENGTH (&state->bytecode); - reloc->label = target; - reloc->kind = kind; - if (kind == 0 || kind == BLOCK_START_RELOC) - OP4 (value); - else if (kind != SWITCH_ALIGN_RELOC) - OP2 (value); -} - -static void -emit_switch_reloc (struct jcf_block *label, struct jcf_partial *state) -{ - emit_reloc (RELOCATION_VALUE_0, BLOCK_START_RELOC, label, state); -} - -/* Similar to emit_switch_reloc, - but re-uses an existing case reloc. */ - -static void -emit_case_reloc (struct jcf_relocation *reloc, struct jcf_partial *state) -{ - struct jcf_block *block = state->last_block; - reloc->next = block->u.relocations; - block->u.relocations = reloc; - reloc->offset = BUFFER_LENGTH (&state->bytecode); - reloc->kind = BLOCK_START_RELOC; - OP4 (0); -} - -/* Emit a conditional jump to TARGET with a 2-byte relative jump offset - The opcode is OPCODE, the inverted opcode is INV_OPCODE. */ - -static void -emit_if (struct jcf_block *target, int opcode, int inv_opcode, - struct jcf_partial *state) -{ - RESERVE(3); - OP1 (opcode); - /* value is 1 byte from reloc back to start of instruction. */ - emit_reloc (RELOCATION_VALUE_1, - inv_opcode, target, state); -} - -static void -emit_goto (struct jcf_block *target, struct jcf_partial *state) -{ - RESERVE(3); - OP1 (OPCODE_goto); - /* Value is 1 byte from reloc back to start of instruction. */ - emit_reloc (RELOCATION_VALUE_1, OPCODE_goto_w, target, state); -} - -static void -emit_jsr (struct jcf_block *target, struct jcf_partial *state) -{ - RESERVE(3); - OP1 (OPCODE_jsr); - /* Value is 1 byte from reloc back to start of instruction. */ - emit_reloc (RELOCATION_VALUE_1, OPCODE_jsr_w, target, state); - state->num_jsrs++; -} - -/* Generate code to evaluate EXP. If the result is true, - branch to TRUE_LABEL; otherwise, branch to FALSE_LABEL. - TRUE_BRANCH_FIRST is a code generation hint that the - TRUE_LABEL may follow right after this. (The idea is that we - may be able to optimize away GOTO TRUE_LABEL; TRUE_LABEL:) */ - -static void -generate_bytecode_conditional (tree exp, - struct jcf_block *true_label, - struct jcf_block *false_label, - int true_branch_first, - struct jcf_partial *state) -{ - tree exp0, exp1, type; - int save_SP = state->code_SP; - enum java_opcode op, negop; - bool unordered = 0; - - switch (TREE_CODE (exp)) - { - case INTEGER_CST: - emit_goto (integer_zerop (exp) ? false_label : true_label, state); - break; - case COND_EXPR: - { - struct jcf_block *then_label = gen_jcf_label (state); - struct jcf_block *else_label = gen_jcf_label (state); - int save_SP_before, save_SP_after; - generate_bytecode_conditional (TREE_OPERAND (exp, 0), - then_label, else_label, 1, state); - define_jcf_label (then_label, state); - save_SP_before = state->code_SP; - generate_bytecode_conditional (TREE_OPERAND (exp, 1), - true_label, false_label, 1, state); - save_SP_after = state->code_SP; - state->code_SP = save_SP_before; - define_jcf_label (else_label, state); - generate_bytecode_conditional (TREE_OPERAND (exp, 2), - true_label, false_label, - true_branch_first, state); - gcc_assert (state->code_SP == save_SP_after); - } - break; - case TRUTH_NOT_EXPR: - generate_bytecode_conditional (TREE_OPERAND (exp, 0), false_label, - true_label, ! true_branch_first, state); - break; - case TRUTH_ANDIF_EXPR: - { - struct jcf_block *next_label = gen_jcf_label (state); - generate_bytecode_conditional (TREE_OPERAND (exp, 0), - next_label, false_label, 1, state); - define_jcf_label (next_label, state); - generate_bytecode_conditional (TREE_OPERAND (exp, 1), - true_label, false_label, 1, state); - } - break; - case TRUTH_ORIF_EXPR: - { - struct jcf_block *next_label = gen_jcf_label (state); - generate_bytecode_conditional (TREE_OPERAND (exp, 0), - true_label, next_label, 1, state); - define_jcf_label (next_label, state); - generate_bytecode_conditional (TREE_OPERAND (exp, 1), - true_label, false_label, 1, state); - } - break; - compare_1: - /* Assuming op is one of the 2-operand if_icmp instructions, - set it to the corresponding 1-operand if instructions. */ - op = op - 6; - /* FALLTHROUGH */ - compare_2: - /* The opcodes with their inverses are allocated in pairs. - E.g. The inverse of if_icmplt (161) is if_icmpge (162). */ - negop = (op & 1) ? op + 1 : op - 1; - compare_2_ptr: - if (true_branch_first) - { - emit_if (false_label, negop, op, state); - emit_goto (true_label, state); - } - else - { - emit_if (true_label, op, negop, state); - emit_goto (false_label, state); - } - break; - - case UNEQ_EXPR: - unordered = 1; - case EQ_EXPR: - op = OPCODE_if_icmpeq; - goto compare; - - case LTGT_EXPR: - unordered = 1; - case NE_EXPR: - op = OPCODE_if_icmpne; - goto compare; - - case UNLE_EXPR: - unordered = 1; - case GT_EXPR: - op = OPCODE_if_icmpgt; - goto compare; - - case UNGE_EXPR: - unordered = 1; - case LT_EXPR: - op = OPCODE_if_icmplt; - goto compare; - - case UNLT_EXPR: - unordered = 1; - case GE_EXPR: - op = OPCODE_if_icmpge; - goto compare; - - case UNGT_EXPR: - unordered = 1; - case LE_EXPR: - op = OPCODE_if_icmple; - goto compare; - - compare: - if (unordered) - { - /* UNLT_EXPR(a, b) means 'a < b || unordered(a, b)'. This is - the same as the Java source expression '!(a >= b)', so handle - it that way. */ - struct jcf_block *tmp = true_label; - true_label = false_label; - false_label = tmp; - true_branch_first = !true_branch_first; - } - - exp0 = TREE_OPERAND (exp, 0); - exp1 = TREE_OPERAND (exp, 1); - type = TREE_TYPE (exp0); - switch (TREE_CODE (type)) - { - int opf; - case POINTER_TYPE: case RECORD_TYPE: - switch (TREE_CODE (exp)) - { - case EQ_EXPR: op = OPCODE_if_acmpeq; break; - case NE_EXPR: op = OPCODE_if_acmpne; break; - default: - gcc_unreachable (); - } - if (integer_zerop (exp1) || integer_zerop (exp0)) - { - generate_bytecode_insns (integer_zerop (exp0) ? exp1 : exp0, - STACK_TARGET, state); - op = op + (OPCODE_ifnull - OPCODE_if_acmpeq); - negop = (op & 1) ? op - 1 : op + 1; - NOTE_POP (1); - goto compare_2_ptr; - } - generate_bytecode_insns (exp0, STACK_TARGET, state); - generate_bytecode_insns (exp1, STACK_TARGET, state); - NOTE_POP (2); - goto compare_2; - case REAL_TYPE: - generate_bytecode_insns (exp0, STACK_TARGET, state); - generate_bytecode_insns (exp1, STACK_TARGET, state); - if (op == OPCODE_if_icmplt || op == OPCODE_if_icmple) - opf = OPCODE_fcmpg; - else - opf = OPCODE_fcmpl; - if (TYPE_PRECISION (type) > 32) - { - opf += 2; - NOTE_POP (4); - } - else - NOTE_POP (2); - RESERVE (1); - OP1 (opf); - goto compare_1; - case INTEGER_TYPE: - if (TYPE_PRECISION (type) > 32) - { - generate_bytecode_insns (exp0, STACK_TARGET, state); - generate_bytecode_insns (exp1, STACK_TARGET, state); - NOTE_POP (4); - RESERVE (1); - OP1 (OPCODE_lcmp); - goto compare_1; - } - /* FALLTHROUGH */ - default: - if (integer_zerop (exp1)) - { - generate_bytecode_insns (exp0, STACK_TARGET, state); - NOTE_POP (1); - goto compare_1; - } - if (integer_zerop (exp0)) - { - switch (op) - { - case OPCODE_if_icmplt: - case OPCODE_if_icmpge: - op += 2; - break; - case OPCODE_if_icmpgt: - case OPCODE_if_icmple: - op -= 2; - break; - default: - break; - } - generate_bytecode_insns (exp1, STACK_TARGET, state); - NOTE_POP (1); - goto compare_1; - } - generate_bytecode_insns (exp0, STACK_TARGET, state); - generate_bytecode_insns (exp1, STACK_TARGET, state); - NOTE_POP (2); - goto compare_2; - } - - default: - generate_bytecode_insns (exp, STACK_TARGET, state); - NOTE_POP (1); - if (true_branch_first) - { - emit_if (false_label, OPCODE_ifeq, OPCODE_ifne, state); - emit_goto (true_label, state); - } - else - { - emit_if (true_label, OPCODE_ifne, OPCODE_ifeq, state); - emit_goto (false_label, state); - } - break; - } - gcc_assert (save_SP == state->code_SP); -} - -/* Call pending cleanups i.e. those for surrounding TRY_FINALLY_EXPRs. - but only as far out as LIMIT (since we are about to jump to the - emit label that is LIMIT). */ - -static void -call_cleanups (struct jcf_block *limit, struct jcf_partial *state) -{ - struct jcf_block *block = state->labeled_blocks; - for (; block != limit; block = block->next) - { - if (block->pc == PENDING_CLEANUP_PC) - emit_jsr (block, state); - } -} - -static void -generate_bytecode_return (tree exp, struct jcf_partial *state) -{ - tree return_type = TREE_TYPE (TREE_TYPE (state->current_method)); - int returns_void = TREE_CODE (return_type) == VOID_TYPE; - int op; - again: - if (exp != NULL) - { - switch (TREE_CODE (exp)) - { - case COMPOUND_EXPR: - generate_bytecode_insns (TREE_OPERAND (exp, 0), IGNORE_TARGET, - state); - exp = TREE_OPERAND (exp, 1); - goto again; - case COND_EXPR: - { - struct jcf_block *then_label = gen_jcf_label (state); - struct jcf_block *else_label = gen_jcf_label (state); - generate_bytecode_conditional (TREE_OPERAND (exp, 0), - then_label, else_label, 1, state); - define_jcf_label (then_label, state); - generate_bytecode_return (TREE_OPERAND (exp, 1), state); - define_jcf_label (else_label, state); - generate_bytecode_return (TREE_OPERAND (exp, 2), state); - } - return; - default: - generate_bytecode_insns (exp, - returns_void ? IGNORE_TARGET - : STACK_TARGET, state); - } - } - if (returns_void) - { - op = OPCODE_return; - call_cleanups (NULL, state); - } - else - { - op = OPCODE_ireturn + adjust_typed_op (return_type, 4); - if (state->num_finalizers > 0) - { - if (state->return_value_decl == NULL_TREE) - { - state->return_value_decl - = build_decl (VAR_DECL, NULL_TREE, TREE_TYPE (exp)); - localvar_alloc (state->return_value_decl, state); - } - emit_store (state->return_value_decl, state); - call_cleanups (NULL, state); - emit_load (state->return_value_decl, state); - /* If we call maybe_free_localvar (state->return_value_decl, state, 1), - then we risk the save decl erroneously re-used in the - finalizer. Instead, we keep the state->return_value_decl - allocated through the rest of the method. This is not - the greatest solution, but it is at least simple and safe. */ - } - } - RESERVE (1); - OP1 (op); -} - -/* Generate bytecode for sub-expression EXP of METHOD. - TARGET is one of STACK_TARGET or IGNORE_TARGET. */ - -static void -generate_bytecode_insns (tree exp, int target, struct jcf_partial *state) -{ - tree type, arg; - enum java_opcode jopcode; - int op; - HOST_WIDE_INT value; - int post_op; - int size; - int offset; - - if (exp == NULL && target == IGNORE_TARGET) - return; - - type = TREE_TYPE (exp); - - switch (TREE_CODE (exp)) - { - case BLOCK: - if (BLOCK_EXPR_BODY (exp)) - { - tree local; - tree body = BLOCK_EXPR_BODY (exp); - long jsrs = state->num_jsrs; - for (local = BLOCK_EXPR_DECLS (exp); local; ) - { - tree next = TREE_CHAIN (local); - localvar_alloc (local, state); - local = next; - } - /* Avoid deep recursion for long blocks. */ - while (TREE_CODE (body) == COMPOUND_EXPR) - { - generate_bytecode_insns (TREE_OPERAND (body, 0), target, state); - body = TREE_OPERAND (body, 1); - } - generate_bytecode_insns (body, target, state); - - for (local = BLOCK_EXPR_DECLS (exp); local; ) - { - tree next = TREE_CHAIN (local); - maybe_free_localvar (local, state, state->num_jsrs <= jsrs); - local = next; - } - } - break; - case COMPOUND_EXPR: - generate_bytecode_insns (TREE_OPERAND (exp, 0), IGNORE_TARGET, state); - /* Normally the first operand to a COMPOUND_EXPR must complete - normally. However, in the special case of a do-while - statement this is not necessarily the case. */ - if (CAN_COMPLETE_NORMALLY (TREE_OPERAND (exp, 0))) - generate_bytecode_insns (TREE_OPERAND (exp, 1), target, state); - break; - case EXPR_WITH_FILE_LOCATION: - { - location_t saved_location = input_location; - tree body = EXPR_WFL_NODE (exp); - if (IS_EMPTY_STMT (body)) - break; -#ifdef USE_MAPPED_LOCATION - input_location = EXPR_LOCATION (exp); -#else - input_filename = EXPR_WFL_FILENAME (exp); - input_line = EXPR_WFL_LINENO (exp); -#endif - if (EXPR_WFL_EMIT_LINE_NOTE (exp) && input_line > 0 - && debug_info_level > DINFO_LEVEL_NONE) - put_linenumber (input_line, state); - generate_bytecode_insns (body, target, state); - input_location = saved_location; - } - break; - case INTEGER_CST: - if (target == IGNORE_TARGET) ; /* do nothing */ - else if (TREE_CODE (type) == POINTER_TYPE) - { - gcc_assert (integer_zerop (exp)); - RESERVE(1); - OP1 (OPCODE_aconst_null); - NOTE_PUSH (1); - } - else if (TYPE_PRECISION (type) <= 32) - { - push_int_const (TREE_INT_CST_LOW (exp), state); - NOTE_PUSH (1); - } - else - { - push_long_const (TREE_INT_CST_LOW (exp), TREE_INT_CST_HIGH (exp), - state); - NOTE_PUSH (2); - } - break; - case REAL_CST: - { - int prec = TYPE_PRECISION (type) >> 5; - RESERVE(1); - if (real_zerop (exp) && ! REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (exp))) - OP1 (prec == 1 ? OPCODE_fconst_0 : OPCODE_dconst_0); - else if (real_onep (exp)) - OP1 (prec == 1 ? OPCODE_fconst_1 : OPCODE_dconst_1); - else if (prec == 1 && real_twop (exp)) - OP1 (OPCODE_fconst_2); - /* ??? We could also use iconst_3/ldc followed by i2f/i2d - for other float/double when the value is a small integer. */ - else - { - offset = find_constant_index (exp, state); - if (prec == 1) - push_constant1 (offset, state); - else - push_constant2 (offset, state); - } - NOTE_PUSH (prec); - } - break; - case STRING_CST: - push_constant1 (find_string_constant (&state->cpool, exp), state); - NOTE_PUSH (1); - break; - case VAR_DECL: - if (TREE_STATIC (exp)) - { - field_op (exp, OPCODE_getstatic, state); - NOTE_PUSH (TYPE_IS_WIDE (TREE_TYPE (exp)) ? 2 : 1); - break; - } - /* ... fall through ... */ - case PARM_DECL: - emit_load (exp, state); - break; - case NON_LVALUE_EXPR: - case INDIRECT_REF: - generate_bytecode_insns (TREE_OPERAND (exp, 0), target, state); - break; - case ARRAY_REF: - generate_bytecode_insns (TREE_OPERAND (exp, 0), target, state); - generate_bytecode_insns (TREE_OPERAND (exp, 1), target, state); - if (target != IGNORE_TARGET) - { - jopcode = OPCODE_iaload + adjust_typed_op (type, 7); - RESERVE(1); - OP1 (jopcode); - if (! TYPE_IS_WIDE (type)) - NOTE_POP (1); - } - break; - case COMPONENT_REF: - { - tree obj = TREE_OPERAND (exp, 0); - tree field = TREE_OPERAND (exp, 1); - int is_static = FIELD_STATIC (field); - generate_bytecode_insns (obj, - is_static ? IGNORE_TARGET : target, state); - if (target != IGNORE_TARGET) - { - if (DECL_NAME (field) == length_identifier_node && !is_static - && TYPE_ARRAY_P (TREE_TYPE (obj))) - { - RESERVE (1); - OP1 (OPCODE_arraylength); - } - else - { - field_op (field, is_static ? OPCODE_getstatic : OPCODE_getfield, - state); - if (! is_static) - NOTE_POP (1); - NOTE_PUSH (TYPE_IS_WIDE (TREE_TYPE (field)) ? 2 : 1); - } - } - } - break; - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: - case EQ_EXPR: - case NE_EXPR: - case GT_EXPR: - case LT_EXPR: - case GE_EXPR: - case LE_EXPR: - case UNLT_EXPR: - case UNLE_EXPR: - case UNGT_EXPR: - case UNGE_EXPR: - case UNEQ_EXPR: - case LTGT_EXPR: - { - struct jcf_block *then_label = gen_jcf_label (state); - struct jcf_block *else_label = gen_jcf_label (state); - struct jcf_block *end_label = gen_jcf_label (state); - generate_bytecode_conditional (exp, - then_label, else_label, 1, state); - define_jcf_label (then_label, state); - push_int_const (1, state); - emit_goto (end_label, state); - define_jcf_label (else_label, state); - push_int_const (0, state); - define_jcf_label (end_label, state); - NOTE_PUSH (1); - } - break; - case COND_EXPR: - { - struct jcf_block *then_label = gen_jcf_label (state); - struct jcf_block *else_label = gen_jcf_label (state); - struct jcf_block *end_label = gen_jcf_label (state); - generate_bytecode_conditional (TREE_OPERAND (exp, 0), - then_label, else_label, 1, state); - define_jcf_label (then_label, state); - generate_bytecode_insns (TREE_OPERAND (exp, 1), target, state); - if (CAN_COMPLETE_NORMALLY (TREE_OPERAND (exp, 1)) - /* Not all expressions have CAN_COMPLETE_NORMALLY set properly. */ - || TREE_CODE (TREE_TYPE (exp)) != VOID_TYPE) - emit_goto (end_label, state); - define_jcf_label (else_label, state); - generate_bytecode_insns (TREE_OPERAND (exp, 2), target, state); - define_jcf_label (end_label, state); - /* COND_EXPR can be used in a binop. The stack must be adjusted. */ - if (TREE_TYPE (exp) != void_type_node) - NOTE_POP (TYPE_IS_WIDE (TREE_TYPE (exp)) ? 2 : 1); - } - break; - case CASE_EXPR: - { - struct jcf_switch_state *sw_state = state->sw_state; - struct jcf_relocation *reloc - = obstack_alloc (state->chunk_obstack, sizeof (struct jcf_relocation)); - HOST_WIDE_INT case_value = TREE_INT_CST_LOW (TREE_OPERAND (exp, 0)); - reloc->kind = 0; - reloc->label = get_jcf_label_here (state); - reloc->offset = case_value; - reloc->next = sw_state->cases; - sw_state->cases = reloc; - if (sw_state->num_cases == 0) - { - sw_state->min_case = case_value; - sw_state->max_case = case_value; - } - else - { - if (case_value < sw_state->min_case) - sw_state->min_case = case_value; - if (case_value > sw_state->max_case) - sw_state->max_case = case_value; - } - sw_state->num_cases++; - } - break; - case DEFAULT_EXPR: - state->sw_state->default_label = get_jcf_label_here (state); - break; - - case SWITCH_EXPR: - { - /* The SWITCH_EXPR has three parts, generated in the following order: - 1. the switch_expression (the value used to select the correct case); - 2. the switch_body; - 3. the switch_instruction (the tableswitch/loopupswitch instruction.). - After code generation, we will re-order them in the order 1, 3, 2. - This is to avoid any extra GOTOs. */ - struct jcf_switch_state sw_state; - struct jcf_block *expression_last; /* Last block of the switch_expression. */ - struct jcf_block *body_last; /* Last block of the switch_body. */ - struct jcf_block *switch_instruction; /* First block of switch_instruction. */ - struct jcf_block *instruction_last; /* Last block of the switch_instruction. */ - struct jcf_block *body_block; - int switch_length; - sw_state.prev = state->sw_state; - state->sw_state = &sw_state; - sw_state.cases = NULL; - sw_state.num_cases = 0; - sw_state.default_label = NULL; - generate_bytecode_insns (TREE_OPERAND (exp, 0), STACK_TARGET, state); - expression_last = state->last_block; - /* Force a new block here. */ - body_block = gen_jcf_label (state); - define_jcf_label (body_block, state); - generate_bytecode_insns (TREE_OPERAND (exp, 1), IGNORE_TARGET, state); - body_last = state->last_block; - - switch_instruction = gen_jcf_label (state); - define_jcf_label (switch_instruction, state); - if (sw_state.default_label == NULL) - sw_state.default_label = gen_jcf_label (state); - - if (sw_state.num_cases <= 1) - { - if (sw_state.num_cases == 0) - { - emit_pop (1, state); - NOTE_POP (1); - } - else - { - push_int_const (sw_state.cases->offset, state); - NOTE_PUSH (1); - emit_if (sw_state.cases->label, - OPCODE_if_icmpeq, OPCODE_if_icmpne, state); - } - emit_goto (sw_state.default_label, state); - } - else - { - HOST_WIDE_INT i; - unsigned HOST_WIDE_INT delta; - /* Copy the chain of relocs into a sorted array. */ - struct jcf_relocation **relocs - = XNEWVEC (struct jcf_relocation *, sw_state.num_cases); - /* The relocs arrays is a buffer with a gap. - The assumption is that cases will normally come in "runs". */ - int gap_start = 0; - int gap_end = sw_state.num_cases; - struct jcf_relocation *reloc; - for (reloc = sw_state.cases; reloc != NULL; reloc = reloc->next) - { - HOST_WIDE_INT case_value = reloc->offset; - while (gap_end < sw_state.num_cases) - { - struct jcf_relocation *end = relocs[gap_end]; - if (case_value <= end->offset) - break; - relocs[gap_start++] = end; - gap_end++; - } - while (gap_start > 0) - { - struct jcf_relocation *before = relocs[gap_start-1]; - if (case_value >= before->offset) - break; - relocs[--gap_end] = before; - gap_start--; - } - relocs[gap_start++] = reloc; - /* Note we don't check for duplicates. This is - handled by the parser. */ - } - - /* We could have DELTA < 0 if sw_state.min_case is - something like Integer.MIN_VALUE. That is why delta is - unsigned. */ - delta = sw_state.max_case - sw_state.min_case; - if (2 * (unsigned) sw_state.num_cases >= delta) - { /* Use tableswitch. */ - int index = 0; - RESERVE (13 + 4 * (sw_state.max_case - sw_state.min_case + 1)); - OP1 (OPCODE_tableswitch); - emit_reloc (RELOCATION_VALUE_0, - SWITCH_ALIGN_RELOC, NULL, state); - emit_switch_reloc (sw_state.default_label, state); - OP4 (sw_state.min_case); - OP4 (sw_state.max_case); - for (i = sw_state.min_case; ; ) - { - reloc = relocs[index]; - if (i == reloc->offset) - { - emit_case_reloc (reloc, state); - if (i == sw_state.max_case) - break; - index++; - } - else - emit_switch_reloc (sw_state.default_label, state); - i++; - } - } - else - { /* Use lookupswitch. */ - RESERVE(9 + 8 * sw_state.num_cases); - OP1 (OPCODE_lookupswitch); - emit_reloc (RELOCATION_VALUE_0, - SWITCH_ALIGN_RELOC, NULL, state); - emit_switch_reloc (sw_state.default_label, state); - OP4 (sw_state.num_cases); - for (i = 0; i < sw_state.num_cases; i++) - { - struct jcf_relocation *reloc = relocs[i]; - OP4 (reloc->offset); - emit_case_reloc (reloc, state); - } - } - free (relocs); - } - - instruction_last = state->last_block; - if (sw_state.default_label->pc < 0) - define_jcf_label (sw_state.default_label, state); - else /* Force a new block. */ - sw_state.default_label = get_jcf_label_here (state); - /* Now re-arrange the blocks so the switch_instruction - comes before the switch_body. */ - switch_length = state->code_length - switch_instruction->pc; - switch_instruction->pc = body_block->pc; - instruction_last->next = body_block; - instruction_last->v.chunk->next = body_block->v.chunk; - expression_last->next = switch_instruction; - expression_last->v.chunk->next = switch_instruction->v.chunk; - body_last->next = sw_state.default_label; - body_last->v.chunk->next = NULL; - state->chunk = body_last->v.chunk; - for (; body_block != sw_state.default_label; body_block = body_block->next) - body_block->pc += switch_length; - - state->sw_state = sw_state.prev; - break; - } - - case RETURN_EXPR: - exp = TREE_OPERAND (exp, 0); - if (exp == NULL_TREE) - exp = build_java_empty_stmt (); - else if (TREE_CODE (exp) != MODIFY_EXPR) - gcc_unreachable (); - else - exp = TREE_OPERAND (exp, 1); - generate_bytecode_return (exp, state); - break; - case LABELED_BLOCK_EXPR: - { - struct jcf_block *end_label = gen_jcf_label (state); - end_label->next = state->labeled_blocks; - state->labeled_blocks = end_label; - end_label->pc = PENDING_EXIT_PC; - end_label->u.labeled_block = exp; - if (LABELED_BLOCK_BODY (exp)) - generate_bytecode_insns (LABELED_BLOCK_BODY (exp), target, state); - gcc_assert (state->labeled_blocks == end_label); - state->labeled_blocks = end_label->next; - define_jcf_label (end_label, state); - } - break; - case LOOP_EXPR: - { - tree body = TREE_OPERAND (exp, 0); -#if 0 - if (TREE_CODE (body) == COMPOUND_EXPR - && TREE_CODE (TREE_OPERAND (body, 0)) == EXIT_EXPR) - { - /* Optimize: H: if (TEST) GOTO L; BODY; GOTO H; L: - to: GOTO L; BODY; L: if (!TEST) GOTO L; */ - struct jcf_block *head_label; - struct jcf_block *body_label; - struct jcf_block *end_label = gen_jcf_label (state); - struct jcf_block *exit_label = state->labeled_blocks; - head_label = gen_jcf_label (state); - emit_goto (head_label, state); - body_label = get_jcf_label_here (state); - generate_bytecode_insns (TREE_OPERAND (body, 1), target, state); - define_jcf_label (head_label, state); - generate_bytecode_conditional (TREE_OPERAND (body, 0), - end_label, body_label, 1, state); - define_jcf_label (end_label, state); - } - else -#endif - { - struct jcf_block *head_label = get_jcf_label_here (state); - generate_bytecode_insns (body, IGNORE_TARGET, state); - if (CAN_COMPLETE_NORMALLY (body)) - emit_goto (head_label, state); - } - } - break; - case EXIT_EXPR: - { - struct jcf_block *label = state->labeled_blocks; - struct jcf_block *end_label = gen_jcf_label (state); - generate_bytecode_conditional (TREE_OPERAND (exp, 0), - label, end_label, 0, state); - define_jcf_label (end_label, state); - } - break; - case EXIT_BLOCK_EXPR: - { - struct jcf_block *label = state->labeled_blocks; - while (label->u.labeled_block != EXIT_BLOCK_LABELED_BLOCK (exp)) - label = label->next; - call_cleanups (label, state); - emit_goto (label, state); - } - break; - - case PREDECREMENT_EXPR: value = -1; post_op = 0; goto increment; - case PREINCREMENT_EXPR: value = 1; post_op = 0; goto increment; - case POSTDECREMENT_EXPR: value = -1; post_op = 1; goto increment; - case POSTINCREMENT_EXPR: value = 1; post_op = 1; goto increment; - increment: - - arg = TREE_OPERAND (exp, 1); - exp = TREE_OPERAND (exp, 0); - type = TREE_TYPE (exp); - size = TYPE_IS_WIDE (type) ? 2 : 1; - if ((TREE_CODE (exp) == VAR_DECL || TREE_CODE (exp) == PARM_DECL) - && ! TREE_STATIC (exp) - && TREE_CODE (type) == INTEGER_TYPE - && TYPE_PRECISION (type) == 32) - { - if (target != IGNORE_TARGET && post_op) - emit_load (exp, state); - emit_iinc (exp, value, state); - if (target != IGNORE_TARGET && ! post_op) - emit_load (exp, state); - break; - } - if (TREE_CODE (exp) == COMPONENT_REF) - { - generate_bytecode_insns (TREE_OPERAND (exp, 0), STACK_TARGET, state); - emit_dup (1, 0, state); - /* Stack: ..., objectref, objectref. */ - field_op (TREE_OPERAND (exp, 1), OPCODE_getfield, state); - NOTE_PUSH (size-1); - /* Stack: ..., objectref, oldvalue. */ - offset = 1; - } - else if (TREE_CODE (exp) == ARRAY_REF) - { - generate_bytecode_insns (TREE_OPERAND (exp, 0), STACK_TARGET, state); - generate_bytecode_insns (TREE_OPERAND (exp, 1), STACK_TARGET, state); - emit_dup (2, 0, state); - /* Stack: ..., array, index, array, index. */ - jopcode = OPCODE_iaload + adjust_typed_op (TREE_TYPE (exp), 7); - RESERVE(1); - OP1 (jopcode); - NOTE_POP (2-size); - /* Stack: ..., array, index, oldvalue. */ - offset = 2; - } - else if (TREE_CODE (exp) == VAR_DECL || TREE_CODE (exp) == PARM_DECL) - { - generate_bytecode_insns (exp, STACK_TARGET, state); - /* Stack: ..., oldvalue. */ - offset = 0; - } - else - gcc_unreachable (); - - if (target != IGNORE_TARGET && post_op) - emit_dup (size, offset, state); - /* Stack, if ARRAY_REF: ..., [result, ] array, index, oldvalue. */ - /* Stack, if COMPONENT_REF: ..., [result, ] objectref, oldvalue. */ - /* Stack, otherwise: ..., [result, ] oldvalue. */ - generate_bytecode_insns (arg, STACK_TARGET, state); - emit_binop ((value >= 0 ? OPCODE_iadd : OPCODE_isub) - + adjust_typed_op (type, 3), - type, state); - if (target != IGNORE_TARGET && ! post_op) - emit_dup (size, offset, state); - /* Stack, if ARRAY_REF: ..., [result, ] array, index, newvalue. */ - /* Stack, if COMPONENT_REF: ..., [result, ] objectref, newvalue. */ - /* Stack, otherwise: ..., [result, ] newvalue. */ - goto finish_assignment; - - case MODIFY_EXPR: - { - tree lhs = TREE_OPERAND (exp, 0); - tree rhs = TREE_OPERAND (exp, 1); - int offset = 0; - - /* See if we can use the iinc instruction. */ - if ((TREE_CODE (lhs) == VAR_DECL || TREE_CODE (lhs) == PARM_DECL) - && ! TREE_STATIC (lhs) - && TREE_CODE (TREE_TYPE (lhs)) == INTEGER_TYPE - && TYPE_PRECISION (TREE_TYPE (lhs)) == 32 - && (TREE_CODE (rhs) == PLUS_EXPR || TREE_CODE (rhs) == MINUS_EXPR)) - { - tree arg0 = TREE_OPERAND (rhs, 0); - tree arg1 = TREE_OPERAND (rhs, 1); - HOST_WIDE_INT min_value = -32768; - HOST_WIDE_INT max_value = 32767; - if (TREE_CODE (rhs) == MINUS_EXPR) - { - min_value++; - max_value++; - } - else if (arg1 == lhs) - { - arg0 = arg1; - arg1 = TREE_OPERAND (rhs, 0); - } - if (lhs == arg0 && TREE_CODE (arg1) == INTEGER_CST) - { - HOST_WIDE_INT hi_value = TREE_INT_CST_HIGH (arg1); - value = TREE_INT_CST_LOW (arg1); - if ((hi_value == 0 && value <= max_value) - || (hi_value == -1 && value >= min_value)) - { - if (TREE_CODE (rhs) == MINUS_EXPR) - value = -value; - emit_iinc (lhs, value, state); - if (target != IGNORE_TARGET) - emit_load (lhs, state); - break; - } - } - } - - if (TREE_CODE (lhs) == COMPONENT_REF) - { - generate_bytecode_insns (TREE_OPERAND (lhs, 0), - STACK_TARGET, state); - offset = 1; - } - else if (TREE_CODE (lhs) == ARRAY_REF) - { - generate_bytecode_insns (TREE_OPERAND(lhs, 0), - STACK_TARGET, state); - generate_bytecode_insns (TREE_OPERAND(lhs, 1), - STACK_TARGET, state); - offset = 2; - } - else - offset = 0; - - /* If the rhs is a binary expression and the left operand is - `==' to the lhs then we have an OP= expression. In this - case we must do some special processing. */ - if (BINARY_CLASS_P (rhs) && lhs == TREE_OPERAND (rhs, 0)) - { - if (TREE_CODE (lhs) == COMPONENT_REF) - { - tree field = TREE_OPERAND (lhs, 1); - if (! FIELD_STATIC (field)) - { - /* Duplicate the object reference so we can get - the field. */ - emit_dup (TYPE_IS_WIDE (field) ? 2 : 1, 0, state); - NOTE_POP (1); - } - field_op (field, (FIELD_STATIC (field) - ? OPCODE_getstatic - : OPCODE_getfield), - state); - - NOTE_PUSH (TYPE_IS_WIDE (TREE_TYPE (field)) ? 2 : 1); - } - else if (TREE_CODE (lhs) == VAR_DECL - || TREE_CODE (lhs) == PARM_DECL) - { - if (FIELD_STATIC (lhs)) - { - field_op (lhs, OPCODE_getstatic, state); - NOTE_PUSH (TYPE_IS_WIDE (TREE_TYPE (lhs)) ? 2 : 1); - } - else - emit_load (lhs, state); - } - else if (TREE_CODE (lhs) == ARRAY_REF) - { - /* Duplicate the array and index, which are on the - stack, so that we can load the old value. */ - emit_dup (2, 0, state); - NOTE_POP (2); - jopcode = OPCODE_iaload + adjust_typed_op (TREE_TYPE (lhs), 7); - RESERVE (1); - OP1 (jopcode); - NOTE_PUSH (TYPE_IS_WIDE (TREE_TYPE (lhs)) ? 2 : 1); - } - else - gcc_unreachable (); - - /* This function correctly handles the case where the LHS - of a binary expression is NULL_TREE. */ - rhs = build2 (TREE_CODE (rhs), TREE_TYPE (rhs), - NULL_TREE, TREE_OPERAND (rhs, 1)); - } - - generate_bytecode_insns (rhs, STACK_TARGET, state); - if (target != IGNORE_TARGET) - emit_dup (TYPE_IS_WIDE (type) ? 2 : 1 , offset, state); - exp = lhs; - } - /* FALLTHROUGH */ - - finish_assignment: - if (TREE_CODE (exp) == COMPONENT_REF) - { - tree field = TREE_OPERAND (exp, 1); - if (! FIELD_STATIC (field)) - NOTE_POP (1); - field_op (field, - FIELD_STATIC (field) ? OPCODE_putstatic : OPCODE_putfield, - state); - - NOTE_POP (TYPE_IS_WIDE (TREE_TYPE (field)) ? 2 : 1); - } - else if (TREE_CODE (exp) == VAR_DECL - || TREE_CODE (exp) == PARM_DECL) - { - if (FIELD_STATIC (exp)) - { - field_op (exp, OPCODE_putstatic, state); - NOTE_POP (TYPE_IS_WIDE (TREE_TYPE (exp)) ? 2 : 1); - } - else - emit_store (exp, state); - } - else if (TREE_CODE (exp) == ARRAY_REF) - { - jopcode = OPCODE_iastore + adjust_typed_op (TREE_TYPE (exp), 7); - RESERVE (1); - OP1 (jopcode); - NOTE_POP (TYPE_IS_WIDE (TREE_TYPE (exp)) ? 4 : 3); - } - else - gcc_unreachable (); - break; - case PLUS_EXPR: - jopcode = OPCODE_iadd; - goto binop; - case MINUS_EXPR: - jopcode = OPCODE_isub; - goto binop; - case MULT_EXPR: - jopcode = OPCODE_imul; - goto binop; - case TRUNC_DIV_EXPR: - case RDIV_EXPR: - jopcode = OPCODE_idiv; - goto binop; - case TRUNC_MOD_EXPR: - jopcode = OPCODE_irem; - goto binop; - case LSHIFT_EXPR: jopcode = OPCODE_ishl; goto binop; - case RSHIFT_EXPR: - jopcode = TYPE_UNSIGNED (type) ? OPCODE_iushr : OPCODE_ishr; - goto binop; - case URSHIFT_EXPR: jopcode = OPCODE_iushr; goto binop; - case TRUTH_AND_EXPR: - case BIT_AND_EXPR: jopcode = OPCODE_iand; goto binop; - case TRUTH_OR_EXPR: - case BIT_IOR_EXPR: jopcode = OPCODE_ior; goto binop; - case TRUTH_XOR_EXPR: - case BIT_XOR_EXPR: jopcode = OPCODE_ixor; goto binop; - binop: - { - tree arg0 = TREE_OPERAND (exp, 0); - tree arg1 = TREE_OPERAND (exp, 1); - jopcode += adjust_typed_op (type, 3); - if (arg0 != NULL_TREE && operand_equal_p (arg0, arg1, 0)) - { - /* fold may (e.g) convert 2*x to x+x. */ - generate_bytecode_insns (arg0, target, state); - emit_dup (TYPE_PRECISION (TREE_TYPE (arg0)) > 32 ? 2 : 1, 0, state); - } - else - { - /* ARG0 will be NULL_TREE if we're handling an `OP=' - expression. In this case the stack already holds the - LHS. See the MODIFY_EXPR case. */ - if (arg0 != NULL_TREE) - generate_bytecode_insns (arg0, target, state); - if (jopcode >= OPCODE_lshl && jopcode <= OPCODE_lushr) - arg1 = convert (int_type_node, arg1); - generate_bytecode_insns (arg1, target, state); - } - /* For most binary operations, both operands and the result have the - same type. Shift operations are different. Using arg1's type - gets us the correct SP adjustment in all cases. */ - if (target == STACK_TARGET) - emit_binop (jopcode, TREE_TYPE (arg1), state); - break; - } - case TRUTH_NOT_EXPR: - case BIT_NOT_EXPR: - generate_bytecode_insns (TREE_OPERAND (exp, 0), target, state); - if (target == STACK_TARGET) - { - int is_long = TYPE_PRECISION (TREE_TYPE (exp)) > 32; - push_int_const (TREE_CODE (exp) == BIT_NOT_EXPR ? -1 : 1, state); - RESERVE (2); - if (is_long) - OP1 (OPCODE_i2l); - NOTE_PUSH (1 + is_long); - OP1 (OPCODE_ixor + is_long); - NOTE_POP (1 + is_long); - } - break; - case NEGATE_EXPR: - jopcode = OPCODE_ineg; - jopcode += adjust_typed_op (type, 3); - generate_bytecode_insns (TREE_OPERAND (exp, 0), target, state); - if (target == STACK_TARGET) - emit_unop (jopcode, type, state); - break; - case INSTANCEOF_EXPR: - { - int index = find_class_constant (&state->cpool, TREE_OPERAND (exp, 1)); - generate_bytecode_insns (TREE_OPERAND (exp, 0), target, state); - RESERVE (3); - OP1 (OPCODE_instanceof); - OP2 (index); - } - break; - case SAVE_EXPR: - /* The first time through, the argument of the SAVE_EXPR will be - something complex. Evaluate it, and replace the argument with - a VAR_DECL that holds the result. */ - arg = TREE_OPERAND (exp, 0); - if (TREE_CODE (arg) != VAR_DECL || DECL_NAME (arg)) - { - tree type = TREE_TYPE (exp); - tree decl = build_decl (VAR_DECL, NULL_TREE, type); - generate_bytecode_insns (arg, STACK_TARGET, state); - localvar_alloc (decl, state); - TREE_OPERAND (exp, 0) = decl; - emit_dup (TYPE_IS_WIDE (type) ? 2 : 1, 0, state); - emit_store (decl, state); - } - else - { - emit_load (arg, state); - } - break; - case CONVERT_EXPR: - case NOP_EXPR: - case FLOAT_EXPR: - case FIX_TRUNC_EXPR: - { - tree src = TREE_OPERAND (exp, 0); - tree src_type = TREE_TYPE (src); - tree dst_type = TREE_TYPE (exp); - generate_bytecode_insns (TREE_OPERAND (exp, 0), target, state); - if (target == IGNORE_TARGET || src_type == dst_type) - break; - if (TREE_CODE (dst_type) == POINTER_TYPE) - { - if (TREE_CODE (exp) == CONVERT_EXPR) - { - int index = find_class_constant (&state->cpool, - TREE_TYPE (dst_type)); - RESERVE (3); - OP1 (OPCODE_checkcast); - OP2 (index); - } - } - else /* Convert numeric types. */ - { - int src_prec = TYPE_PRECISION (src_type); - int dst_prec = TYPE_PRECISION (dst_type); - int wide_src = src_prec > 32; - int wide_dst = dst_prec > 32; - if (TREE_CODE (dst_type) == REAL_TYPE) - { - NOTE_POP (1 + wide_src); - RESERVE (1); - if (TREE_CODE (src_type) == REAL_TYPE) - OP1 (wide_dst ? OPCODE_f2d : OPCODE_d2f); - else if (src_prec == 64) - OP1 (OPCODE_l2f + wide_dst); - else - OP1 (OPCODE_i2f + wide_dst); - NOTE_PUSH (1 + wide_dst); - } - /* Convert to integral type (but ignore non-widening - and non-narrowing integer type conversions). */ - else if (TREE_CODE (src_type) == REAL_TYPE - || src_prec != dst_prec) - { - NOTE_POP (1 + wide_src); - RESERVE (1); - if (TREE_CODE (src_type) == REAL_TYPE) - OP1 (OPCODE_f2i + wide_dst + 3 * wide_src); - else if (wide_dst) - OP1 (OPCODE_i2l); - else if (wide_src) - OP1 (OPCODE_l2i); - if (dst_prec < 32) - { - RESERVE (1); - /* Already converted to int, if needed. */ - if (dst_prec <= 8) - OP1 (OPCODE_i2b); - else if (TYPE_UNSIGNED (dst_type)) - OP1 (OPCODE_i2c); - else - OP1 (OPCODE_i2s); - } - NOTE_PUSH (1 + wide_dst); - } - } - } - break; - - case TRY_EXPR: - { - tree try_clause = TREE_OPERAND (exp, 0); - struct jcf_block *start_label = get_jcf_label_here (state); - struct jcf_block *end_label; /* End of try clause. */ - struct jcf_block *finished_label = gen_jcf_label (state); - tree clause = TREE_OPERAND (exp, 1); - gcc_assert (target == IGNORE_TARGET); - generate_bytecode_insns (try_clause, IGNORE_TARGET, state); - end_label = get_jcf_label_here (state); - if (end_label == start_label) - break; - if (CAN_COMPLETE_NORMALLY (try_clause)) - emit_goto (finished_label, state); - while (clause != NULL_TREE) - { - tree catch_clause = TREE_OPERAND (clause, 0); - tree exception_decl = BLOCK_EXPR_DECLS (catch_clause); - struct jcf_handler *handler = alloc_handler (start_label, - end_label, state); - if (exception_decl == NULL_TREE) - handler->type = NULL_TREE; - else - handler->type = TREE_TYPE (TREE_TYPE (exception_decl)); - generate_bytecode_insns (catch_clause, IGNORE_TARGET, state); - clause = TREE_CHAIN (clause); - if (CAN_COMPLETE_NORMALLY (catch_clause) && clause != NULL_TREE) - emit_goto (finished_label, state); - } - define_jcf_label (finished_label, state); - } - break; - - case TRY_FINALLY_EXPR: - { - struct jcf_block *finished_label = NULL; - struct jcf_block *finally_label, *start_label, *end_label; - struct jcf_handler *handler; - tree try_block = TREE_OPERAND (exp, 0); - tree finally = TREE_OPERAND (exp, 1); - tree return_link = NULL_TREE, exception_decl = NULL_TREE; - - tree exception_type; - - finally_label = gen_jcf_label (state); - start_label = get_jcf_label_here (state); - /* If the `finally' clause can complete normally, we emit it - as a subroutine and let the other clauses call it via - `jsr'. If it can't complete normally, then we simply emit - `goto's directly to it. */ - if (CAN_COMPLETE_NORMALLY (finally)) - { - finally_label->pc = PENDING_CLEANUP_PC; - finally_label->next = state->labeled_blocks; - state->labeled_blocks = finally_label; - state->num_finalizers++; - } - - generate_bytecode_insns (try_block, target, state); - - if (CAN_COMPLETE_NORMALLY (finally)) - { - gcc_assert (state->labeled_blocks == finally_label); - state->labeled_blocks = finally_label->next; - } - end_label = get_jcf_label_here (state); - - if (end_label == start_label) - { - state->num_finalizers--; - define_jcf_label (finally_label, state); - generate_bytecode_insns (finally, IGNORE_TARGET, state); - break; - } - - if (CAN_COMPLETE_NORMALLY (finally)) - { - return_link = build_decl (VAR_DECL, NULL_TREE, - return_address_type_node); - finished_label = gen_jcf_label (state); - } - - if (CAN_COMPLETE_NORMALLY (try_block)) - { - if (CAN_COMPLETE_NORMALLY (finally)) - { - emit_jsr (finally_label, state); - emit_goto (finished_label, state); - } - else - emit_goto (finally_label, state); - } - - /* Handle exceptions. */ - - exception_type = build_pointer_type (throwable_type_node); - if (CAN_COMPLETE_NORMALLY (finally)) - { - /* We're going to generate a subroutine, so we'll need to - save and restore the exception around the `jsr'. */ - exception_decl = build_decl (VAR_DECL, NULL_TREE, exception_type); - localvar_alloc (return_link, state); - } - handler = alloc_handler (start_label, end_label, state); - handler->type = NULL_TREE; - if (CAN_COMPLETE_NORMALLY (finally)) - { - localvar_alloc (exception_decl, state); - NOTE_PUSH (1); - emit_store (exception_decl, state); - emit_jsr (finally_label, state); - emit_load (exception_decl, state); - RESERVE (1); - OP1 (OPCODE_athrow); - NOTE_POP (1); - } - else - { - /* We're not generating a subroutine. In this case we can - simply have the exception handler pop the exception and - then fall through to the `finally' block. */ - NOTE_PUSH (1); - emit_pop (1, state); - NOTE_POP (1); - } - - /* The finally block. If we're generating a subroutine, first - save return PC into return_link. Otherwise, just generate - the code for the `finally' block. */ - define_jcf_label (finally_label, state); - if (CAN_COMPLETE_NORMALLY (finally)) - { - NOTE_PUSH (1); - emit_store (return_link, state); - } - - generate_bytecode_insns (finally, IGNORE_TARGET, state); - if (CAN_COMPLETE_NORMALLY (finally)) - { - maybe_wide (OPCODE_ret, DECL_LOCAL_INDEX (return_link), state); - maybe_free_localvar (exception_decl, state, 1); - maybe_free_localvar (return_link, state, 1); - define_jcf_label (finished_label, state); - } - } - break; - case THROW_EXPR: - generate_bytecode_insns (TREE_OPERAND (exp, 0), STACK_TARGET, state); - RESERVE (1); - OP1 (OPCODE_athrow); - break; - case NEW_ARRAY_INIT: - { - VEC(constructor_elt,gc) *v = CONSTRUCTOR_ELTS (TREE_OPERAND (exp, 0)); - tree array_type = TREE_TYPE (TREE_TYPE (exp)); - tree element_type = TYPE_ARRAY_ELEMENT (array_type); - unsigned HOST_WIDE_INT idx; - tree value; - HOST_WIDE_INT length = java_array_type_length (array_type); - if (target == IGNORE_TARGET) - { - FOR_EACH_CONSTRUCTOR_VALUE (v, idx, value) - generate_bytecode_insns (value, target, state); - break; - } - push_int_const (length, state); - NOTE_PUSH (1); - RESERVE (3); - if (JPRIMITIVE_TYPE_P (element_type)) - { - int atype = encode_newarray_type (element_type); - OP1 (OPCODE_newarray); - OP1 (atype); - } - else - { - int index = find_class_constant (&state->cpool, - TREE_TYPE (element_type)); - OP1 (OPCODE_anewarray); - OP2 (index); - } - offset = 0; - jopcode = OPCODE_iastore + adjust_typed_op (element_type, 7); - FOR_EACH_CONSTRUCTOR_VALUE (v, idx, value) - { - int save_SP = state->code_SP; - emit_dup (1, 0, state); - push_int_const (offset, state); - NOTE_PUSH (1); - generate_bytecode_insns (value, STACK_TARGET, state); - RESERVE (1); - OP1 (jopcode); - state->code_SP = save_SP; - offset++; - } - } - break; - case JAVA_EXC_OBJ_EXPR: - NOTE_PUSH (1); /* Pushed by exception system. */ - break; - case MIN_EXPR: - case MAX_EXPR: - { - /* This copes with cases where fold() has created MIN or MAX - from a conditional expression. */ - enum tree_code code = TREE_CODE (exp) == MIN_EXPR ? LT_EXPR : GT_EXPR; - tree op0 = TREE_OPERAND (exp, 0); - tree op1 = TREE_OPERAND (exp, 1); - tree x; - gcc_assert (! TREE_SIDE_EFFECTS (op0) && ! TREE_SIDE_EFFECTS (op1)); - x = build3 (COND_EXPR, TREE_TYPE (exp), - build2 (code, boolean_type_node, op0, op1), - op0, op1); - generate_bytecode_insns (x, target, state); - break; - } - case NEW_CLASS_EXPR: - { - tree class = TREE_TYPE (TREE_TYPE (exp)); - int need_result = target != IGNORE_TARGET; - int index = find_class_constant (&state->cpool, class); - RESERVE (4); - OP1 (OPCODE_new); - OP2 (index); - if (need_result) - OP1 (OPCODE_dup); - NOTE_PUSH (1 + need_result); - } - /* ... fall though ... */ - case CALL_EXPR: - { - tree f = TREE_OPERAND (exp, 0); - tree x = TREE_OPERAND (exp, 1); - int save_SP = state->code_SP; - int nargs; - if (TREE_CODE (f) == ADDR_EXPR) - f = TREE_OPERAND (f, 0); - if (f == soft_newarray_node) - { - int type_code = TREE_INT_CST_LOW (TREE_VALUE (x)); - generate_bytecode_insns (TREE_VALUE (TREE_CHAIN (x)), - STACK_TARGET, state); - RESERVE (2); - OP1 (OPCODE_newarray); - OP1 (type_code); - break; - } - else if (f == soft_multianewarray_node) - { - int ndims; - int idim; - int index = find_class_constant (&state->cpool, - TREE_TYPE (TREE_TYPE (exp))); - x = TREE_CHAIN (x); /* Skip class argument. */ - ndims = TREE_INT_CST_LOW (TREE_VALUE (x)); - for (idim = ndims; --idim >= 0; ) - { - x = TREE_CHAIN (x); - generate_bytecode_insns (TREE_VALUE (x), STACK_TARGET, state); - } - RESERVE (4); - OP1 (OPCODE_multianewarray); - OP2 (index); - OP1 (ndims); - NOTE_POP (ndims - 1); - break; - } - else if (f == soft_anewarray_node) - { - tree cl = TYPE_ARRAY_ELEMENT (TREE_TYPE (TREE_TYPE (exp))); - int index = find_class_constant (&state->cpool, TREE_TYPE (cl)); - generate_bytecode_insns (TREE_VALUE (x), STACK_TARGET, state); - RESERVE (3); - OP1 (OPCODE_anewarray); - OP2 (index); - break; - } - else if (f == soft_monitorenter_node - || f == soft_monitorexit_node - || f == throw_node) - { - if (f == soft_monitorenter_node) - op = OPCODE_monitorenter; - else if (f == soft_monitorexit_node) - op = OPCODE_monitorexit; - else - op = OPCODE_athrow; - generate_bytecode_insns (TREE_VALUE (x), STACK_TARGET, state); - RESERVE (1); - OP1 (op); - NOTE_POP (1); - break; - } - for ( ; x != NULL_TREE; x = TREE_CHAIN (x)) - { - generate_bytecode_insns (TREE_VALUE (x), STACK_TARGET, state); - } - nargs = state->code_SP - save_SP; - state->code_SP = save_SP; - if (f == soft_fmod_node) - { - RESERVE (1); - OP1 (OPCODE_drem); - NOTE_PUSH (2); - break; - } - if (TREE_CODE (exp) == NEW_CLASS_EXPR) - NOTE_POP (1); /* Pop implicit this. */ - if (TREE_CODE (f) == FUNCTION_DECL && DECL_CONTEXT (f) != NULL_TREE) - { - tree context = DECL_CONTEXT (f); - int index, interface = 0; - RESERVE (5); - - /* If the method is not static, use the qualifying type. - However, don't use the qualifying type if the method - was declared in Object. */ - if (! METHOD_STATIC (f) - && ! DECL_CONSTRUCTOR_P (f) - && ! METHOD_PRIVATE (f) - && DECL_CONTEXT (f) != object_type_node) - { - tree arg1 = TREE_VALUE (TREE_OPERAND (exp, 1)); - context = TREE_TYPE (TREE_TYPE (arg1)); - } - - if (METHOD_STATIC (f)) - OP1 (OPCODE_invokestatic); - else if (DECL_CONSTRUCTOR_P (f) || CALL_USING_SUPER (exp) - || METHOD_PRIVATE (f)) - OP1 (OPCODE_invokespecial); - else - { - if (CLASS_INTERFACE (TYPE_NAME (context))) - interface = 1; - if (interface) - OP1 (OPCODE_invokeinterface); - else - OP1 (OPCODE_invokevirtual); - } - - index = find_methodref_with_class_index (&state->cpool, f, - context); - OP2 (index); - if (interface) - { - gcc_assert (nargs > 0); - OP1 (nargs); - OP1 (0); - } - f = TREE_TYPE (TREE_TYPE (f)); - if (TREE_CODE (f) != VOID_TYPE) - { - int size = TYPE_IS_WIDE (f) ? 2 : 1; - /* Always note the push here, so that we correctly - compute the required maximum stack size. */ - NOTE_PUSH (size); - if (target == IGNORE_TARGET) - { - emit_pop (size, state); - NOTE_POP (size); - } - } - break; - } - } - /* fall through */ - default: - error("internal error in generate_bytecode_insn - tree code not implemented: %s", - tree_code_name [(int) TREE_CODE (exp)]); - } -} - -static void -perform_relocations (struct jcf_partial *state) -{ - struct jcf_block *block; - struct jcf_relocation *reloc; - int pc; - int shrink; - - /* Before we start, the pc field of each block is an upper bound on - the block's start pc (it may be less, if previous blocks need less - than their maximum). - - The minimum size of each block is in the block's chunk->size. */ - - /* First, figure out the actual locations of each block. */ - pc = 0; - shrink = 0; - for (block = state->blocks; block != NULL; block = block->next) - { - int block_size = block->v.chunk->size; - - block->pc = pc; - - /* Optimize GOTO L; L: by getting rid of the redundant goto. - Assumes relocations are in reverse order. */ - reloc = block->u.relocations; - while (reloc != NULL - && reloc->kind == OPCODE_goto_w - && reloc->label->pc == block->next->pc - && reloc->offset + 2 == block_size) - { - reloc = reloc->next; - block->u.relocations = reloc; - block->v.chunk->size -= 3; - block_size -= 3; - shrink += 3; - } - - /* Optimize GOTO L; ... L: GOTO X by changing the first goto to - jump directly to X. We're careful here to avoid an infinite - loop if the `goto's themselves form one. We do this - optimization because we can generate a goto-to-goto for some - try/finally blocks. */ - while (reloc != NULL - && reloc->kind == OPCODE_goto_w - && reloc->label != block - && reloc->label->v.chunk->data != NULL - && reloc->label->v.chunk->data[0] == OPCODE_goto) - { - /* Find the reloc for the first instruction of the - destination block. */ - struct jcf_relocation *first_reloc; - for (first_reloc = reloc->label->u.relocations; - first_reloc; - first_reloc = first_reloc->next) - { - if (first_reloc->offset == 1 - && first_reloc->kind == OPCODE_goto_w) - { - reloc->label = first_reloc->label; - break; - } - } - - /* If we didn't do anything, exit the loop. */ - if (first_reloc == NULL) - break; - } - - for (reloc = block->u.relocations; reloc != NULL; reloc = reloc->next) - { - if (reloc->kind == SWITCH_ALIGN_RELOC) - { - /* We assume this is the first relocation in this block, - so we know its final pc. */ - int where = pc + reloc->offset; - int pad = ((where + 3) & ~3) - where; - block_size += pad; - } - else if (reloc->kind < -1 || reloc->kind > BLOCK_START_RELOC) - { - int delta = reloc->label->pc - (pc + reloc->offset - 1); - int expand = reloc->kind > 0 ? 2 : 5; - - if (delta > 0) - delta -= shrink; - if (delta >= -32768 && delta <= 32767) - { - shrink += expand; - reloc->kind = -1; - } - else - block_size += expand; - } - } - pc += block_size; - } - - for (block = state->blocks; block != NULL; block = block->next) - { - struct chunk *chunk = block->v.chunk; - int old_size = chunk->size; - int next_pc = block->next == NULL ? pc : block->next->pc; - int new_size = next_pc - block->pc; - unsigned char *new_ptr; - unsigned char *old_buffer = chunk->data; - unsigned char *old_ptr = old_buffer + old_size; - if (new_size != old_size) - { - chunk->data = obstack_alloc (state->chunk_obstack, new_size); - chunk->size = new_size; - } - new_ptr = chunk->data + new_size; - - /* We do the relocations from back to front, because - the relocations are in reverse order. */ - for (reloc = block->u.relocations; ; reloc = reloc->next) - { - /* new_ptr and old_ptr point into the old and new buffers, - respectively. (If no relocations cause the buffer to - grow, the buffer will be the same buffer, and new_ptr==old_ptr.) - The bytes at higher address have been copied and relocations - handled; those at lower addresses remain to process. */ - - /* Lower old index of piece to be copied with no relocation. - I.e. high index of the first piece that does need relocation. */ - int start = reloc == NULL ? 0 - : reloc->kind == SWITCH_ALIGN_RELOC ? reloc->offset - : (reloc->kind == 0 || reloc->kind == BLOCK_START_RELOC) - ? reloc->offset + 4 - : reloc->offset + 2; - int32 value; - int new_offset; - int n = (old_ptr - old_buffer) - start; - new_ptr -= n; - old_ptr -= n; - /* Don't "copy" bytes in place, this causes valgrind - warnings. */ - if (n > 0 && new_ptr != old_ptr) - memcpy (new_ptr, old_ptr, n); - if (old_ptr == old_buffer) - break; - - new_offset = new_ptr - chunk->data; - new_offset -= (reloc->kind == -1 ? 2 : 4); - if (reloc->kind == 0) - { - old_ptr -= 4; - value = GET_u4 (old_ptr); - } - else if (reloc->kind == BLOCK_START_RELOC) - { - old_ptr -= 4; - value = 0; - new_offset = 0; - } - else if (reloc->kind == SWITCH_ALIGN_RELOC) - { - int where = block->pc + reloc->offset; - int pad = ((where + 3) & ~3) - where; - while (--pad >= 0) - *--new_ptr = 0; - continue; - } - else - { - old_ptr -= 2; - value = GET_u2 (old_ptr); - } - value += reloc->label->pc - (block->pc + new_offset); - *--new_ptr = (unsigned char) value; value >>= 8; - *--new_ptr = (unsigned char) value; value >>= 8; - if (reloc->kind != -1) - { - *--new_ptr = (unsigned char) value; value >>= 8; - *--new_ptr = (unsigned char) value; - } - if (reloc->kind > BLOCK_START_RELOC) - { - /* Convert: OP TARGET to: OP_w TARGET; (OP is goto or jsr). */ - --old_ptr; - *--new_ptr = reloc->kind; - } - else if (reloc->kind < -1) - { - /* Convert: ifCOND TARGET to: ifNCOND T; goto_w TARGET; T: */ - --old_ptr; - *--new_ptr = OPCODE_goto_w; - *--new_ptr = 3; - *--new_ptr = 0; - *--new_ptr = - reloc->kind; - } - } - gcc_assert (new_ptr == chunk->data); - } - state->code_length = pc; -} - -static void -init_jcf_state (struct jcf_partial *state, struct obstack *work) -{ - state->chunk_obstack = work; - state->first = state->chunk = NULL; - CPOOL_INIT (&state->cpool); - BUFFER_INIT (&state->localvars); - BUFFER_INIT (&state->bytecode); -} - -static void -init_jcf_method (struct jcf_partial *state, tree method) -{ - state->current_method = method; - state->blocks = state->last_block = NULL; - state->linenumber_count = 0; - state->first_lvar = state->last_lvar = NULL; - state->lvar_count = 0; - state->labeled_blocks = NULL; - state->code_length = 0; - BUFFER_RESET (&state->bytecode); - BUFFER_RESET (&state->localvars); - state->code_SP = 0; - state->code_SP_max = 0; - state->handlers = NULL; - state->last_handler = NULL; - state->num_handlers = 0; - state->num_finalizers = 0; - state->return_value_decl = NULL_TREE; -} - -static void -release_jcf_state (struct jcf_partial *state) -{ - CPOOL_FINISH (&state->cpool); - obstack_free (state->chunk_obstack, state->first); -} - -/* Get the access flags (modifiers) of a class (TYPE_DECL) to be used in the - access_flags field of the class file header. */ - -static int -get_classfile_modifiers (tree class) -{ - /* These are the flags which are valid class file modifiers. - See JVMS2 S4.1. */ - int valid_toplevel_class_flags = (ACC_PUBLIC | ACC_FINAL | ACC_SUPER | - ACC_INTERFACE | ACC_ABSTRACT); - int flags = get_access_flags (class); - - /* ACC_SUPER should always be set, except for interfaces. */ - if (! (flags & ACC_INTERFACE)) - flags |= ACC_SUPER; - - /* A protected member class becomes public at the top level. */ - if (flags & ACC_PROTECTED) - flags |= ACC_PUBLIC; - - /* Filter out flags that are not valid for a class or interface in the - top-level access_flags field. */ - flags &= valid_toplevel_class_flags; - - return flags; -} - -/* Get the access flags (modifiers) for a method to be used in the class - file. */ - -static int -get_method_access_flags (tree decl) -{ - int flags = get_access_flags (decl); - - /* Promote "private" inner-class constructors to package-private. */ - if (DECL_CONSTRUCTOR_P (decl) - && INNER_CLASS_DECL_P (TYPE_NAME (DECL_CONTEXT (decl)))) - flags &= ~(ACC_PRIVATE); - - return flags; -} - -/* Generate and return a list of chunks containing the class CLAS - in the .class file representation. The list can be written to a - .class file using write_chunks. Allocate chunks from obstack WORK. */ - -static GTY(()) tree SourceFile_node; -static struct chunk * -generate_classfile (tree clas, struct jcf_partial *state) -{ - struct chunk *cpool_chunk; - const char *source_file, *s; - unsigned char *ptr; - int i; - unsigned char *fields_count_ptr; - int fields_count = 0; - unsigned char *methods_count_ptr; - int methods_count = 0; - tree part; - int total_supers - = clas == object_type_node ? 0 : BINFO_N_BASE_BINFOS (TYPE_BINFO (clas)); - - ptr = append_chunk (NULL, 8, state); - PUT4 (0xCafeBabe); /* Magic number */ - PUT2 (3); /* Minor version */ - PUT2 (45); /* Major version */ - - append_chunk (NULL, 0, state); - cpool_chunk = state->chunk; - - /* Next allocate the chunk containing access_flags through fields_count. */ - if (clas == object_type_node) - i = 10; - else - i = 8 + 2 * total_supers; - ptr = append_chunk (NULL, i, state); - i = get_classfile_modifiers (TYPE_NAME (clas)); - PUT2 (i); /* access_flags */ - i = find_class_constant (&state->cpool, clas); PUT2 (i); /* this_class */ - if (clas == object_type_node) - { - PUT2(0); /* super_class */ - PUT2(0); /* interfaces_count */ - } - else - { - tree binfo = TYPE_BINFO (clas); - tree base_binfo = BINFO_BASE_BINFO (binfo, 0); - int j = find_class_constant (&state->cpool, BINFO_TYPE (base_binfo)); - - PUT2 (j); /* super_class */ - PUT2 (total_supers - 1); /* interfaces_count */ - for (i = 1; BINFO_BASE_ITERATE (binfo, i, base_binfo); i++) - { - j = find_class_constant (&state->cpool, BINFO_TYPE (base_binfo)); - PUT2 (j); - } - } - fields_count_ptr = ptr; - - for (part = TYPE_FIELDS (clas); part; part = TREE_CHAIN (part)) - { - int have_value, attr_count = 0; - if (DECL_NAME (part) == NULL_TREE || DECL_ARTIFICIAL (part)) - continue; - ptr = append_chunk (NULL, 8, state); - i = get_access_flags (part); PUT2 (i); - i = find_utf8_constant (&state->cpool, DECL_NAME (part)); PUT2 (i); - i = find_utf8_constant (&state->cpool, - build_java_signature (TREE_TYPE (part))); - PUT2(i); - have_value = DECL_INITIAL (part) != NULL_TREE - && FIELD_STATIC (part) && CONSTANT_VALUE_P (DECL_INITIAL (part)) - && FIELD_FINAL (part) - && (JPRIMITIVE_TYPE_P (TREE_TYPE (part)) - || TREE_TYPE (part) == string_ptr_type_node); - if (have_value) - attr_count++; - - if (FIELD_THISN (part) || FIELD_LOCAL_ALIAS (part) - || FIELD_SYNTHETIC (part)) - attr_count++; - if (FIELD_DEPRECATED (part)) - attr_count++; - - PUT2 (attr_count); /* attributes_count */ - if (have_value) - { - tree init = DECL_INITIAL (part); - static tree ConstantValue_node = NULL_TREE; - if (TREE_TYPE (part) != TREE_TYPE (init)) - fatal_error ("field initializer type mismatch"); - ptr = append_chunk (NULL, 8, state); - if (ConstantValue_node == NULL_TREE) - ConstantValue_node = get_identifier ("ConstantValue"); - i = find_utf8_constant (&state->cpool, ConstantValue_node); - PUT2 (i); /* attribute_name_index */ - PUT4 (2); /* attribute_length */ - i = find_constant_index (init, state); PUT2 (i); - } - /* Emit the "Synthetic" attribute for val$ and this$ - fields and other fields which need it. */ - if (FIELD_THISN (part) || FIELD_LOCAL_ALIAS (part) - || FIELD_SYNTHETIC (part)) - ptr = append_synthetic_attribute (state); - if (FIELD_DEPRECATED (part)) - append_deprecated_attribute (state); - fields_count++; - } - ptr = fields_count_ptr; UNSAFE_PUT2 (fields_count); - - ptr = methods_count_ptr = append_chunk (NULL, 2, state); - PUT2 (0); - - for (part = TYPE_METHODS (clas); part; part = TREE_CHAIN (part)) - { - struct jcf_block *block; - tree function_body = DECL_FUNCTION_BODY (part); - tree body = function_body == NULL_TREE ? NULL_TREE - : BLOCK_EXPR_BODY (function_body); - tree name = DECL_CONSTRUCTOR_P (part) ? init_identifier_node - : DECL_NAME (part); - tree type = TREE_TYPE (part); - tree save_function = current_function_decl; - int synthetic_p = 0; - - /* Invisible Miranda methods shouldn't end up in the .class - file. */ - if (METHOD_INVISIBLE (part)) - continue; - - current_function_decl = part; - ptr = append_chunk (NULL, 8, state); - i = get_method_access_flags (part); PUT2 (i); - i = find_utf8_constant (&state->cpool, name); PUT2 (i); - i = find_utf8_constant (&state->cpool, build_java_signature (type)); - PUT2 (i); - i = (body != NULL_TREE) + (DECL_FUNCTION_THROWS (part) != NULL_TREE); - - /* Make room for the Synthetic attribute (of zero length.) */ - if (DECL_FINIT_P (part) - || DECL_INSTINIT_P (part) - || NESTED_FIELD_ACCESS_IDENTIFIER_P (DECL_NAME (part)) - || TYPE_DOT_CLASS (clas) == part) - { - i++; - synthetic_p = 1; - } - /* Make room for Deprecated attribute. */ - if (METHOD_DEPRECATED (part)) - i++; - - PUT2 (i); /* attributes_count */ - - if (synthetic_p) - ptr = append_synthetic_attribute (state); - - if (body != NULL_TREE) - { - int code_attributes_count = 0; - static tree Code_node = NULL_TREE; - tree t; - unsigned char *attr_len_ptr; - struct jcf_handler *handler; - if (Code_node == NULL_TREE) - Code_node = get_identifier ("Code"); - ptr = append_chunk (NULL, 14, state); - i = find_utf8_constant (&state->cpool, Code_node); PUT2 (i); - attr_len_ptr = ptr; - init_jcf_method (state, part); - get_jcf_label_here (state); /* Force a first block. */ - for (t = DECL_ARGUMENTS (part); t != NULL_TREE; t = TREE_CHAIN (t)) - localvar_alloc (t, state); - state->num_jsrs = 0; - generate_bytecode_insns (body, IGNORE_TARGET, state); - if (CAN_COMPLETE_NORMALLY (body)) - { - gcc_assert (TREE_CODE (TREE_TYPE (type)) == VOID_TYPE); - RESERVE (1); - OP1 (OPCODE_return); - } - for (t = DECL_ARGUMENTS (part); t != NULL_TREE; t = TREE_CHAIN (t)) - maybe_free_localvar (t, state, 1); - if (state->return_value_decl != NULL_TREE) - maybe_free_localvar (state->return_value_decl, state, 1); - finish_jcf_block (state); - perform_relocations (state); - - ptr = attr_len_ptr; - i = 8 + state->code_length + 4 + 8 * state->num_handlers; - if (state->linenumber_count > 0) - { - code_attributes_count++; - i += 8 + 4 * state->linenumber_count; - } - if (state->lvar_count > 0) - { - code_attributes_count++; - i += 8 + 10 * state->lvar_count; - } - UNSAFE_PUT4 (i); /* attribute_length */ - UNSAFE_PUT2 (state->code_SP_max); /* max_stack */ - UNSAFE_PUT2 (localvar_max); /* max_locals */ - UNSAFE_PUT4 (state->code_length); - - /* Emit the exception table. */ - ptr = append_chunk (NULL, 2 + 8 * state->num_handlers, state); - PUT2 (state->num_handlers); /* exception_table_length */ - handler = state->handlers; - for (; handler != NULL; handler = handler->next) - { - int type_index; - PUT2 (handler->start_label->pc); - PUT2 (handler->end_label->pc); - PUT2 (handler->handler_label->pc); - if (handler->type == NULL_TREE) - type_index = 0; - else - type_index = find_class_constant (&state->cpool, - handler->type); - PUT2 (type_index); - } - - ptr = append_chunk (NULL, 2, state); - PUT2 (code_attributes_count); - - /* Write the LineNumberTable attribute. */ - if (state->linenumber_count > 0) - { - static tree LineNumberTable_node = NULL_TREE; - ptr = append_chunk (NULL, - 8 + 4 * state->linenumber_count, state); - if (LineNumberTable_node == NULL_TREE) - LineNumberTable_node = get_identifier ("LineNumberTable"); - i = find_utf8_constant (&state->cpool, LineNumberTable_node); - PUT2 (i); /* attribute_name_index */ - i = 2+4*state->linenumber_count; PUT4(i); /* attribute_length */ - i = state->linenumber_count; PUT2 (i); - for (block = state->blocks; block != NULL; block = block->next) - { - int line = block->linenumber; - if (line > 0) - { - PUT2 (block->pc); - PUT2 (line); - } - } - } - - /* Write the LocalVariableTable attribute. */ - if (state->lvar_count > 0) - { - static tree LocalVariableTable_node = NULL_TREE; - struct localvar_info *lvar = state->first_lvar; - ptr = append_chunk (NULL, 8 + 10 * state->lvar_count, state); - if (LocalVariableTable_node == NULL_TREE) - LocalVariableTable_node = get_identifier("LocalVariableTable"); - i = find_utf8_constant (&state->cpool, LocalVariableTable_node); - PUT2 (i); /* attribute_name_index */ - i = 2 + 10 * state->lvar_count; PUT4 (i); /* attribute_length */ - i = state->lvar_count; PUT2 (i); - for ( ; lvar != NULL; lvar = lvar->next) - { - tree name = DECL_NAME (lvar->decl); - tree sig = build_java_signature (TREE_TYPE (lvar->decl)); - i = lvar->start_label->pc; PUT2 (i); - i = lvar->end_label->pc - i; PUT2 (i); - i = find_utf8_constant (&state->cpool, name); PUT2 (i); - i = find_utf8_constant (&state->cpool, sig); PUT2 (i); - i = DECL_LOCAL_INDEX (lvar->decl); PUT2 (i); - } - } - } - if (DECL_FUNCTION_THROWS (part) != NULL_TREE) - { - tree t = DECL_FUNCTION_THROWS (part); - int throws_count = list_length (t); - static tree Exceptions_node = NULL_TREE; - if (Exceptions_node == NULL_TREE) - Exceptions_node = get_identifier ("Exceptions"); - ptr = append_chunk (NULL, 8 + 2 * throws_count, state); - i = find_utf8_constant (&state->cpool, Exceptions_node); - PUT2 (i); /* attribute_name_index */ - i = 2 + 2 * throws_count; PUT4(i); /* attribute_length */ - i = throws_count; PUT2 (i); - for (; t != NULL_TREE; t = TREE_CHAIN (t)) - { - i = find_class_constant (&state->cpool, TREE_VALUE (t)); - PUT2 (i); - } - } - - if (METHOD_DEPRECATED (part)) - append_deprecated_attribute (state); - - methods_count++; - current_function_decl = save_function; - } - ptr = methods_count_ptr; UNSAFE_PUT2 (methods_count); - - source_file = DECL_SOURCE_FILE (TYPE_NAME (clas)); - for (s = source_file; ; s++) - { - char ch = *s; - if (ch == '\0') - break; - if (ch == '/' || ch == '\\') - source_file = s+1; - } - ptr = append_chunk (NULL, 10, state); - - i = 1; /* Source file always exists as an attribute */ - if (INNER_CLASS_TYPE_P (clas) || DECL_INNER_CLASS_LIST (TYPE_NAME (clas))) - i++; - if (clas == object_type_node) - i++; - if (CLASS_DEPRECATED (TYPE_NAME (clas))) - i++; - - PUT2 (i); /* attributes_count */ - - /* generate the SourceFile attribute. */ - if (SourceFile_node == NULL_TREE) - { - SourceFile_node = get_identifier ("SourceFile"); - } - - i = find_utf8_constant (&state->cpool, SourceFile_node); - PUT2 (i); /* attribute_name_index */ - PUT4 (2); - i = find_utf8_constant (&state->cpool, get_identifier (source_file)); - PUT2 (i); - append_gcj_attribute (state, clas); - append_innerclasses_attribute (state, clas); - if (CLASS_DEPRECATED (TYPE_NAME (clas))) - append_deprecated_attribute (state); - - /* New finally generate the contents of the constant pool chunk. */ - i = count_constant_pool_bytes (&state->cpool); - ptr = obstack_alloc (state->chunk_obstack, i); - cpool_chunk->data = ptr; - cpool_chunk->size = i; - write_constant_pool (&state->cpool, ptr, i); - return state->first; -} - -static GTY(()) tree Synthetic_node; -static unsigned char * -append_synthetic_attribute (struct jcf_partial *state) -{ - unsigned char *ptr = append_chunk (NULL, 6, state); - int i; - - if (Synthetic_node == NULL_TREE) - { - Synthetic_node = get_identifier ("Synthetic"); - } - i = find_utf8_constant (&state->cpool, Synthetic_node); - PUT2 (i); /* Attribute string index */ - PUT4 (0); /* Attribute length */ - - return ptr; -} - -static void -append_deprecated_attribute (struct jcf_partial *state) -{ - unsigned char *ptr = append_chunk (NULL, 6, state); - int i; - - i = find_utf8_constant (&state->cpool, get_identifier ("Deprecated")); - PUT2 (i); /* Attribute string index */ - PUT4 (0); /* Attribute length */ -} - -static void -append_gcj_attribute (struct jcf_partial *state, tree class) -{ - unsigned char *ptr; - int i; - - if (class != object_type_node) - return; - - ptr = append_chunk (NULL, 6, state); /* 2+4 */ - i = find_utf8_constant (&state->cpool, - get_identifier ("gnu.gcj.gcj-compiled")); - PUT2 (i); /* Attribute string index */ - PUT4 (0); /* Attribute length */ -} - -static tree InnerClasses_node; -static void -append_innerclasses_attribute (struct jcf_partial *state, tree class) -{ - tree orig_decl = TYPE_NAME (class); - tree current, decl; - int length = 0, i; - unsigned char *ptr, *length_marker, *number_marker; - - if (!INNER_CLASS_TYPE_P (class) && !DECL_INNER_CLASS_LIST (orig_decl)) - return; - - ptr = append_chunk (NULL, 8, state); /* 2+4+2 */ - - if (InnerClasses_node == NULL_TREE) - { - InnerClasses_node = get_identifier ("InnerClasses"); - } - i = find_utf8_constant (&state->cpool, InnerClasses_node); - PUT2 (i); - length_marker = ptr; PUT4 (0); /* length, to be later patched */ - number_marker = ptr; PUT2 (0); /* number of classes, tblp */ - - /* Generate the entries: all inner classes visible from the one we - process: itself, up and down. */ - while (class && INNER_CLASS_TYPE_P (class)) - { - const char *n; - - decl = TYPE_NAME (class); - n = IDENTIFIER_POINTER (DECL_NAME (decl)) + - IDENTIFIER_LENGTH (DECL_NAME (decl)); - - while (n[-1] != '$') - n--; - append_innerclasses_attribute_entry (state, decl, get_identifier (n)); - length++; - - class = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (class))); - } - - decl = orig_decl; - for (current = DECL_INNER_CLASS_LIST (decl); - current; current = TREE_CHAIN (current)) - { - append_innerclasses_attribute_entry (state, TREE_PURPOSE (current), - TREE_VALUE (current)); - length++; - } - - ptr = length_marker; PUT4 (8*length+2); - ptr = number_marker; PUT2 (length); -} - -static void -append_innerclasses_attribute_entry (struct jcf_partial *state, - tree decl, tree name) -{ - int icii, icaf; - int ocii = 0, ini = 0; - unsigned char *ptr = append_chunk (NULL, 8, state); - - icii = find_class_constant (&state->cpool, TREE_TYPE (decl)); - - /* Sun's implementation seems to generate ocii to 0 for inner - classes (which aren't considered members of the class they're - in.) The specs are saying that if the class is anonymous, - inner_name_index must be zero. */ - if (!ANONYMOUS_CLASS_P (TREE_TYPE (decl))) - { - ocii = find_class_constant (&state->cpool, - TREE_TYPE (DECL_CONTEXT (decl))); - ini = find_utf8_constant (&state->cpool, name); - } - icaf = get_access_flags (decl); - - PUT2 (icii); PUT2 (ocii); PUT2 (ini); PUT2 (icaf); -} - -static char * -make_class_file_name (tree clas) -{ - const char *dname, *cname, *slash; - char *r; - struct stat sb; - char sep; - - cname = IDENTIFIER_POINTER (identifier_subst (DECL_NAME (TYPE_NAME (clas)), - "", '.', DIR_SEPARATOR, - ".class")); - if (jcf_write_base_directory == NULL) - { - /* Make sure we put the class file into the .java file's - directory, and not into some subdirectory thereof. */ - char *t; - dname = DECL_SOURCE_FILE (TYPE_NAME (clas)); - slash = strrchr (dname, DIR_SEPARATOR); -#ifdef DIR_SEPARATOR_2 - if (! slash) - slash = strrchr (dname, DIR_SEPARATOR_2); -#endif - if (! slash) - { - dname = "."; - slash = dname + 1; - sep = DIR_SEPARATOR; - } - else - sep = *slash; - - t = strrchr (cname, DIR_SEPARATOR); - if (t) - cname = t + 1; - } - else - { - char *s; - - dname = jcf_write_base_directory; - - s = strrchr (dname, DIR_SEPARATOR); -#ifdef DIR_SEPARATOR_2 - if (! s) - s = strrchr (dname, DIR_SEPARATOR_2); -#endif - if (s) - sep = *s; - else - sep = DIR_SEPARATOR; - - slash = dname + strlen (dname); - } - - r = XNEWVEC (char, slash - dname + strlen (cname) + 2); - strncpy (r, dname, slash - dname); - r[slash - dname] = sep; - strcpy (&r[slash - dname + 1], cname); - - /* We try to make new directories when we need them. We only do - this for directories which "might not" exist. For instance, we - assume the `-d' directory exists, but we don't assume that any - subdirectory below it exists. It might be worthwhile to keep - track of which directories we've created to avoid gratuitous - stat()s. */ - dname = r + (slash - dname) + 1; - while (1) - { - char *s = strchr (dname, sep); - if (s == NULL) - break; - *s = '\0'; - /* Try to make directory if it doesn't already exist. */ - if (stat (r, &sb) == -1 - && mkdir (r, 0755) == -1 - /* The directory might have been made by another process. */ - && errno != EEXIST) - fatal_error ("can't create directory %s: %m", r); - - *s = sep; - /* Skip consecutive separators. */ - for (dname = s + 1; *dname && *dname == sep; ++dname) - ; - } - - return r; -} - -/* Write out the contents of a class (RECORD_TYPE) CLAS, as a .class file. - The output .class file name is make_class_file_name(CLAS). */ - -void -write_classfile (tree clas) -{ - struct obstack *work = &temporary_obstack; - struct jcf_partial state[1]; - char *class_file_name = make_class_file_name (clas); - struct chunk *chunks; - - if (class_file_name != NULL) - { - FILE *stream; - char *temporary_file_name; - char pid [sizeof (long) * 2 + 2]; - - /* The .class file is initially written to a ".PID" file so that - if multiple instances of the compiler are running at once - they do not see partially formed class files nor override - each other, which may happen in libjava with parallel build. - */ - sprintf (pid, ".%lx", (unsigned long) getpid ()); - temporary_file_name = concat (class_file_name, pid, NULL); - stream = fopen (temporary_file_name, "wb"); - if (stream == NULL) - fatal_error ("can't open %s for writing: %m", temporary_file_name); - - jcf_dependency_add_target (class_file_name); - init_jcf_state (state, work); - chunks = generate_classfile (clas, state); - write_chunks (stream, chunks); - if (fclose (stream)) - fatal_error ("error closing %s: %m", temporary_file_name); - - /* If a file named by the string pointed to by `new' exists - prior to the call to the `rename' function, the behavior - is implementation-defined. ISO 9899-1990 7.9.4.2. - - For example, on Win32 with MSVCRT, it is an error. */ - - unlink (class_file_name); - - if (rename (temporary_file_name, class_file_name) == -1) - { - int errno_saved = errno; - remove (temporary_file_name); - errno = errno_saved; - fatal_error ("can't create %s: %m", class_file_name); - } - free (temporary_file_name); - free (class_file_name); - } - release_jcf_state (state); -} - -/* TODO: - string concatenation - synchronized statement - */ - -#include "gt-java-jcf-write.h" diff --git a/gcc/java/jcf.h b/gcc/java/jcf.h index 0e378970298..866dc4164ea 100644 --- a/gcc/java/jcf.h +++ b/gcc/java/jcf.h @@ -241,18 +241,22 @@ typedef struct JCF GTY(()) { #define ACC_VISIBILITY (ACC_PUBLIC | ACC_PRIVATE | ACC_PROTECTED) -#define CONSTANT_Class 7 -#define CONSTANT_Fieldref 9 -#define CONSTANT_Methodref 10 -#define CONSTANT_InterfaceMethodref 11 -#define CONSTANT_String 8 -#define CONSTANT_Integer 3 -#define CONSTANT_Float 4 -#define CONSTANT_Long 5 -#define CONSTANT_Double 6 -#define CONSTANT_NameAndType 12 -#define CONSTANT_Utf8 1 -#define CONSTANT_Unicode 2 +enum cpool_tag +{ + CONSTANT_Class = 7, + CONSTANT_Fieldref = 9, + CONSTANT_Methodref = 10, + CONSTANT_InterfaceMethodref = 11, + CONSTANT_String = 8, + CONSTANT_Integer = 3, + CONSTANT_Float = 4, + CONSTANT_Long = 5, + CONSTANT_Double = 6, + CONSTANT_NameAndType = 12, + CONSTANT_Utf8 = 1, + CONSTANT_Unicode = 2, + CONSTANT_None = 0 +}; #define DEFAULT_CLASS_PATH "." @@ -309,6 +313,7 @@ extern void jcf_path_seal (int); extern void *jcf_path_start (void); extern void *jcf_path_next (void *); extern char *jcf_path_name (void *); +extern char *jcf_path_compute (const char *); extern int jcf_path_is_zipfile (void *); extern int jcf_path_is_system (void *); extern int jcf_path_max_len (void); diff --git a/gcc/java/jv-scan.c b/gcc/java/jv-scan.c deleted file mode 100644 index cb2baceba4a..00000000000 --- a/gcc/java/jv-scan.c +++ /dev/null @@ -1,290 +0,0 @@ -/* Main for jv-scan - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "intl.h" - -#include "obstack.h" /* We use obstacks in lex.c */ - -#include "version.h" - -#ifdef HAVE_LOCALE_H -#include -#endif - -#ifdef HAVE_LANGINFO_CODESET -#include -#endif - -#include - -extern void fatal_error (const char *gmsgid, ...) - ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; -void warning (int opt, const char *gmsgid, ...) ATTRIBUTE_PRINTF_2; -void warning0 (const char *gmsgid, ...) ATTRIBUTE_PRINTF_1; -void report (void); - -static void usage (void) ATTRIBUTE_NORETURN; -static void help (void) ATTRIBUTE_NORETURN; -static void version (void) ATTRIBUTE_NORETURN; - -#define JC1_LITE -#include "jcf.h" -#include "parse.h" - -/* Current input file and output file IO streams. */ -FILE *finput, *out; - -/* Executable name. */ -char *exec_name; - -struct line_maps line_table; - -/* Flags matching command line options. */ -int flag_find_main = 0; -int flag_dump_class = 0; -int flag_list_filename = 0; -int flag_complexity = 0; -int flag_assert = 1; - -int pedantic = 0; - - - -/* This is used to mark options with no short value. */ -#define LONG_OPT(Num) ((Num) + 128) - -#define OPT_HELP LONG_OPT (0) -#define OPT_VERSION LONG_OPT (1) -#define OPT_ENCODING LONG_OPT (2) - -static const struct option options[] = -{ - { "help", no_argument, NULL, OPT_HELP }, - { "version", no_argument, NULL, OPT_VERSION }, - { "print-main", no_argument, &flag_find_main, 1 }, - { "list-filename", no_argument, &flag_list_filename, 1 }, - { "list-class", no_argument, &flag_dump_class, 1 }, - { "encoding", required_argument, NULL, OPT_ENCODING }, - { "complexity", no_argument, &flag_complexity, 1 }, - { "no-assert", no_argument, &flag_assert, 0 }, - { "assert", no_argument, &flag_assert, 1 }, - { NULL, no_argument, NULL, 0 } -}; - -static void -usage (void) -{ - fprintf (stderr, _("Try 'jv-scan --help' for more information.\n")); - exit (1); -} - -static void -help (void) -{ - printf (_("Usage: jv-scan [OPTION]... FILE...\n\n")); - printf (_("Print useful information read from Java source files.\n\n")); - printf (_(" --no-assert Don't recognize the assert keyword\n")); - printf (_(" --complexity Print cyclomatic complexity of input file\n")); - printf (_(" --encoding NAME Specify encoding of input file\n")); - printf (_(" --print-main Print name of class containing 'main'\n")); - printf (_(" --list-class List all classes defined in file\n")); - printf (_(" --list-filename Print input filename when listing class names\n")); - printf (_(" -o FILE Set output file name\n")); - printf ("\n"); - printf (_(" --help Print this help, then exit\n")); - printf (_(" --version Print version number, then exit\n")); - printf ("\n"); - printf (_("For bug reporting instructions, please see:\n" - "%s.\n"), bug_report_url); - exit (0); -} - -static void -version (void) -{ - printf ("jv-scan (GCC) %s\n\n", version_string); - printf ("Copyright %s 2006 Free Software Foundation, Inc.\n", _("(C)")); - printf (_("This is free software; see the source for copying conditions. There is NO\n" - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n")); - exit (0); -} - -/* jc1-lite main entry point */ -int -main (int argc, char **argv) -{ - int i = 1; - const char *output_file = NULL; - const char *encoding = NULL; - long ft; - int opt; - - exec_name = argv[0]; - - /* Default for output */ - out = stdout; - - /* Unlock the stdio streams. */ - unlock_std_streams (); - - gcc_init_libintl (); - - /* Process options first. We use getopt_long and not - getopt_long_only because we only support `--' long options here. */ - while ((opt = getopt_long (argc, argv, "o:", options, NULL)) != -1) - { - switch (opt) - { - case 0: - /* Already handled. */ - break; - - case 'o': - output_file = optarg; - break; - - case OPT_HELP: - help (); - break; - - case OPT_VERSION: - version (); - break; - - case OPT_ENCODING: - encoding = optarg; - break; - - default: - usage (); - break; - } - } - - /* No flags? Do nothing */ - if (! flag_find_main && ! flag_dump_class && ! flag_complexity) - return 0; - - /* Check on bad usage */ - if (flag_find_main + flag_dump_class + flag_complexity > 1) - fatal_error - ("only one of '--print-main', '--list-class', and '--complexity' allowed"); - - if (output_file && !(out = fopen (output_file, "w"))) - fatal_error ("can't open output file '%s'", output_file); - - ft = ftell (out); - - gcc_obstack_init (&temporary_obstack); - java_push_parser_context (); - - for ( i = optind; i < argc; i++ ) - if (argv [i]) - { - char *filename = argv[i]; - if ( (finput = fopen (filename, "r")) ) - { - /* There's no point in trying to find the current encoding - unless we are going to do something intelligent with it - -- hence the test for iconv. */ -#if defined (HAVE_LOCALE_H) && defined (HAVE_ICONV) && defined (HAVE_LANGINFO_CODESET) - setlocale (LC_CTYPE, ""); - if (encoding == NULL) - encoding = nl_langinfo (CODESET); -#endif - if (encoding == NULL || *encoding == '\0') - encoding = DEFAULT_ENCODING; - - main_input_filename = filename; - java_init_lex (finput, encoding); - ctxp->filename = filename; - yyparse (); - report (); - if (ftell (out) != ft) - fputc ('\n', out); - ft = ftell (out); - fclose (finput); - reset_report (); - } - else - fatal_error ("file not found '%s'", argv [i]); - } - - /* Flush and close */ - if (ftell (out) != ft) - fputc ('\n', out); - if (!output_file) - fclose (out); - - return 0; -} - - - -/* Error report, memory, obstack initialization and other utility - functions. Use actually c-format msgid, but as functions with - the same name elsewhere use gcc-internal-format, assume all users - here use intersection between c-format and gcc-internal-format. */ - -void -fatal_error (const char *gmsgid, ...) -{ - va_list ap; - va_start (ap, gmsgid); - fprintf (stderr, _("%s: error: "), exec_name); - vfprintf (stderr, _(gmsgid), ap); - fputc ('\n', stderr); - va_end (ap); - exit (1); -} - -void -warning (int opt ATTRIBUTE_UNUSED, const char *gmsgid, ...) -{ - va_list ap; - va_start (ap, gmsgid); - fprintf (stderr, _("%s: warning: "), exec_name); - vfprintf (stderr, _(gmsgid), ap); - fputc ('\n', stderr); - va_end (ap); -} - -void -warning0 (const char *gmsgid, ...) -{ - va_list ap; - va_start (ap, gmsgid); - fprintf (stderr, _("%s: warning: "), exec_name); - vfprintf (stderr, _(gmsgid), ap); - fputc ('\n', stderr); - va_end (ap); -} - -void -fancy_abort (const char *file, int line, const char *func) -{ - fatal_error ("abort in %s, at %s:%d", func, file, line); -} diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c index e0cddc0d4d5..f4fb0ba38ab 100644 --- a/gcc/java/jvgenmain.c +++ b/gcc/java/jvgenmain.c @@ -1,5 +1,5 @@ /* Program to generate "main" a Java(TM) class containing a main method. - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -57,14 +57,23 @@ main (int argc, char **argv) FILE *stream; const char *mangled_classname; int i, last_arg; + int indirect = 0; + char *prog_name = argv[0]; /* Unlock the stdio streams. */ unlock_std_streams (); gcc_init_libintl (); + if (argc > 1 && ! strcmp (argv[1], "-findirect-dispatch")) + { + indirect = 1; + ++argv; + --argc; + } + if (argc < 2) - usage (argv[0]); + usage (prog_name); for (i = 1; i < argc; ++i) { @@ -77,7 +86,7 @@ main (int argc, char **argv) } if (i < argc - 2 || i == argc) - usage (argv[0]); + usage (prog_name); last_arg = i; classname = argv[i]; @@ -85,7 +94,7 @@ main (int argc, char **argv) /* gcj always appends `main' to classname. We need to strip this here. */ p = strrchr (classname, 'm'); if (p == NULL || p == classname || strcmp (p, "main") != 0) - usage (argv[0]); + usage (prog_name); else *p = '\0'; @@ -99,7 +108,7 @@ main (int argc, char **argv) if (stream == NULL) { fprintf (stderr, _("%s: Cannot open output file: %s\n"), - argv[0], outfile); + prog_name, outfile); exit (1); } } @@ -130,13 +139,18 @@ main (int argc, char **argv) fprintf (stream, "int main (int argc, const char **argv)\n"); fprintf (stream, "{\n"); fprintf (stream, " _Jv_Compiler_Properties = props;\n"); - fprintf (stream, " extern void *%s;\n", mangled_classname); - fprintf (stream, " JvRunMain (%s, argc, argv);\n", mangled_classname); + if (indirect) + fprintf (stream, " JvRunMainName (\"%s\", argc, argv);\n", classname); + else + { + fprintf (stream, " extern void *%s;\n", mangled_classname); + fprintf (stream, " JvRunMain (%s, argc, argv);\n", mangled_classname); + } fprintf (stream, "}\n"); if (stream != stdout && fclose (stream) != 0) { fprintf (stderr, _("%s: Failed to close output file %s\n"), - argv[0], argv[2]); + prog_name, argv[2]); exit (1); } return 0; diff --git a/gcc/java/jvspec.c b/gcc/java/jvspec.c index 275dda7c92c..a26f4f68567 100644 --- a/gcc/java/jvspec.c +++ b/gcc/java/jvspec.c @@ -1,7 +1,7 @@ /* Specific flags and argument handling of the front-end of the GNU compiler for the Java(TM) language. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -29,6 +29,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "coretypes.h" #include "tm.h" #include "gcc.h" +#include "jcf.h" /* Name of spec file. */ #define SPEC_FILE "libgcj.spec" @@ -58,7 +59,7 @@ int lang_specific_extra_outfiles = 0; int shared_libgcc = 1; static const char jvgenmain_spec[] = - "jvgenmain %{D*} %b %m.i |\n\ + "jvgenmain %{findirect-dispatch} %{D*} %b %m.i |\n\ cc1 %m.i %1 \ %{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\ %{g*} %{O*} \ @@ -74,7 +75,7 @@ static const char jvgenmain_spec[] = % 0) num_args += 1; /* for "-ffilelist-file" */ @@ -495,6 +476,9 @@ lang_specific_driver (int *in_argc, const char *const **in_argv, shared_libgcc = 0; #endif + if (java_files_count > 0) + ++num_args; + num_args += shared_libgcc; num_args += link_for_bc_abi; @@ -514,6 +498,10 @@ lang_specific_driver (int *in_argc, const char *const **in_argv, arglist[j++] = "-xnone"; } + if (java_files_count > 0) + arglist[j++] = "-fsaw-java-file"; + + jcf_path_init (); for (i = 1; i < argc; i++, j++) { arglist[j] = argv[i]; @@ -528,11 +516,51 @@ lang_specific_driver (int *in_argc, const char *const **in_argv, arglist[j] = "-xnone"; } - if (strcmp (argv[i], "-classpath") == 0 - || strcmp (argv[i], "-bootclasspath") == 0 - || strcmp (argv[i], "-CLASSPATH") == 0 - || strcmp (argv[i], "-encoding") == 0 - || strcmp (argv[i], "-extdirs") == 0) + if (argv[i][1] == 'I') + { + jcf_path_include_arg (&argv[i][2]); + --j; + continue; + } + if (! strcmp (argv[i], "-classpath") + || ! strcmp (argv[i], "-CLASSPATH")) + { + jcf_path_classpath_arg (argv[i + 1]); + ++i; + --j; + continue; + } + if (! strcmp (argv[i], "-bootclasspath")) + { + jcf_path_bootclasspath_arg (argv[i + 1]); + ++i; + --j; + continue; + } + if (! strncmp (argv[i], "-fCLASSPATH=", 12) + || ! strncmp (argv[i], "-fclasspath=", 12)) + { + char *p = strchr (argv[i], '='); + jcf_path_classpath_arg (p + 1); + --j; + continue; + } + if (! strncmp (argv[i], "-fbootclasspath=", 16)) + { + char *p = strchr (argv[i], '='); + jcf_path_bootclasspath_arg (p + 1); + --j; + continue; + } + if (! strcmp (argv[i], "-extdirs")) + { + jcf_path_extdirs_arg (argv[i + 1]); + ++i; + --j; + continue; + } + + if (strcmp (argv[i], "-encoding") == 0) { arglist[j] = concat ("-f", argv[i]+1, "=", argv[i+1], NULL); i++; @@ -580,6 +608,11 @@ lang_specific_driver (int *in_argc, const char *const **in_argv, } } + /* Handle classpath setting. We specify the bootclasspath since + that requires the fewest changes to our existing code... */ + jcf_path_seal (0); + arglist[j++] = jcf_path_compute ("-fbootclasspath="); + if (combine_inputs) { if (fclose (filelist_file)) diff --git a/gcc/java/keyword.gperf b/gcc/java/keyword.gperf deleted file mode 100644 index 922c987145c..00000000000 --- a/gcc/java/keyword.gperf +++ /dev/null @@ -1,91 +0,0 @@ -%{ -/* Keyword definition for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 2001, 2002, 2003 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -%} -struct java_keyword { const char *const name; const int token; }; -#ifdef __GNUC__ -__inline -#endif -static unsigned int hash (const char *, unsigned int); -#ifdef __GNUC__ -__inline -#endif -const struct java_keyword *java_keyword (const char *, unsigned int); -%% -abstract, ABSTRACT_TK -default, DEFAULT_TK -if, IF_TK -private, PRIVATE_TK -throw, THROW_TK -boolean, BOOLEAN_TK -do, DO_TK -implements, IMPLEMENTS_TK -protected, PROTECTED_TK -throws, THROWS_TK -break, BREAK_TK -double, DOUBLE_TK -import, IMPORT_TK -public, PUBLIC_TK -transient, TRANSIENT_TK -byte, BYTE_TK -else, ELSE_TK -instanceof, INSTANCEOF_TK -return, RETURN_TK -try, TRY_TK -case, CASE_TK -extends, EXTENDS_TK -int, INT_TK -short, SHORT_TK -void, VOID_TK -catch, CATCH_TK -final, FINAL_TK -interface, INTERFACE_TK -static, STATIC_TK -volatile, VOLATILE_TK -char, CHAR_TK -finally, FINALLY_TK -long, LONG_TK -super, SUPER_TK -while, WHILE_TK -class, CLASS_TK -float, FLOAT_TK -native, NATIVE_TK -switch, SWITCH_TK -const, CONST_TK -for, FOR_TK -new, NEW_TK -synchronized, SYNCHRONIZED_TK -continue, CONTINUE_TK -goto, GOTO_TK -package, PACKAGE_TK -this, THIS_TK -strictfp, STRICT_TK -# true, false and null aren't keyword. But we match them easily this way -true, TRUE_TK -false, FALSE_TK -null, NULL_TK -assert, ASSERT_TK diff --git a/gcc/java/keyword.h b/gcc/java/keyword.h deleted file mode 100644 index a6faf741b97..00000000000 --- a/gcc/java/keyword.h +++ /dev/null @@ -1,189 +0,0 @@ -/* ANSI-C code produced by gperf version 2.7.2 */ -/* Command-line: gperf -L ANSI-C -C -F ', 0' -p -t -j1 -i 1 -g -o -N java_keyword -k'1,4,$' keyword.gperf */ -/* Keyword definition for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 2001, 2002, 2003 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -struct java_keyword { const char *const name; const int token; }; -#ifdef __GNUC__ -__inline -#endif -static unsigned int hash (const char *, unsigned int); -#ifdef __GNUC__ -__inline -#endif -const struct java_keyword *java_keyword (const char *, unsigned int); - -#define TOTAL_KEYWORDS 52 -#define MIN_WORD_LENGTH 2 -#define MAX_WORD_LENGTH 12 -#define MIN_HASH_VALUE 7 -#define MAX_HASH_VALUE 85 -/* maximum key range = 79, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -hash (const char *str, unsigned int len) -{ - static const unsigned char asso_values[] = - { - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 1, 34, 3, - 1, 1, 18, 7, 21, 28, 86, 14, 1, 86, - 18, 20, 37, 86, 15, 6, 2, 5, 40, 36, - 86, 36, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86 - }; - int hval = len; - - switch (hval) - { - default: - case 4: - hval += asso_values[(unsigned char)str[3]]; - case 3: - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -#ifdef __GNUC__ -__inline -#endif -const struct java_keyword * -java_keyword (const char *str, unsigned int len) -{ - static const struct java_keyword wordlist[] = - { - {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, - {"", 0}, - {"else", ELSE_TK}, - {"true", TRUE_TK}, - {"case", CASE_TK}, - {"assert", ASSERT_TK}, - {"default", DEFAULT_TK}, - {"", 0}, - {"abstract", ABSTRACT_TK}, - {"continue", CONTINUE_TK}, - {"extends", EXTENDS_TK}, - {"const", CONST_TK}, - {"static", STATIC_TK}, - {"this", THIS_TK}, - {"long", LONG_TK}, - {"class", CLASS_TK}, - {"", 0}, - {"synchronized", SYNCHRONIZED_TK}, - {"do", DO_TK}, - {"null", NULL_TK}, - {"final", FINAL_TK}, - {"float", FLOAT_TK}, - {"super", SUPER_TK}, - {"short", SHORT_TK}, - {"", 0}, - {"false", FALSE_TK}, - {"transient", TRANSIENT_TK}, - {"catch", CATCH_TK}, - {"int", INT_TK}, - {"throws", THROWS_TK}, - {"switch", SWITCH_TK}, - {"for", FOR_TK}, - {"char", CHAR_TK}, - {"", 0}, - {"interface", INTERFACE_TK}, - {"byte", BYTE_TK}, - {"try", TRY_TK}, - {"double", DOUBLE_TK}, - {"while", WHILE_TK}, - {"return", RETURN_TK}, - {"implements", IMPLEMENTS_TK}, - {"void", VOID_TK}, - {"public", PUBLIC_TK}, - {"if", IF_TK}, - {"protected", PROTECTED_TK}, - {"volatile", VOLATILE_TK}, - {"goto", GOTO_TK}, - {"", 0}, - {"native", NATIVE_TK}, - {"break", BREAK_TK}, - {"", 0}, - {"import", IMPORT_TK}, - {"new", NEW_TK}, - {"instanceof", INSTANCEOF_TK}, - {"package", PACKAGE_TK}, - {"boolean", BOOLEAN_TK}, - {"", 0}, - {"finally", FINALLY_TK}, - {"throw", THROW_TK}, - {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, - {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, - {"", 0}, {"", 0}, {"", 0}, - {"strictfp", STRICT_TK}, - {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, - {"private", PRIVATE_TK} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= 0) - { - const char *s = wordlist[key].name; - - if (*str == *s && !strcmp (str + 1, s + 1)) - return &wordlist[key]; - } - } - return 0; -} diff --git a/gcc/java/lang-specs.h b/gcc/java/lang-specs.h index 1531bf28437..be439d42c2c 100644 --- a/gcc/java/lang-specs.h +++ b/gcc/java/lang-specs.h @@ -1,5 +1,5 @@ /* Definitions for specs for the GNU compiler for the Java(TM) language. - Copyright (C) 1996, 1998, 1999, 2000, 2001, 2003, 2004 + Copyright (C) 1996, 1998, 1999, 2000, 2001, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GCC. @@ -35,7 +35,30 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ %{fjni:%{femit-class-file:%e-fjni and -femit-class-file are incompatible}}\ %{femit-class-file:%{!fsyntax-only:%e-femit-class-file should used along with -fsyntax-only}}\ %{femit-class-files:%{!fsyntax-only:%e-femit-class-file should used along with -fsyntax-only}}\ - %{!E:jc1 %i %(jc1) %(cc1_options) %{+e*} %{I*}\ - %{MD:-MD_} %{MMD:-MMD_} %{M} %{MM} %{MA} %{MT*} %{MF*}\ - %{!fsyntax-only:%(invoke_as)}}", 0, 0, 0}, + %{E:%{e-E is not valid for gcj}}\ + %{.java|fsaw-java-file:ecj1 %i %{W*} %{w} %{g*} \ + %{fbootclasspath*} \ + %{fenable-assertions*} \ + %{fdisable-assertions*} \ + %{fencoding*} %{ffilelist-file} \ + %{foutput-class-dir*} %{g*} \ + %{fsource*} %{!fsource*:-fsource=1.5} \ + %{ftarget*} %{!femit-class-files|!ftarget*:-ftarget=1.5} \ + %{!findirect-dispatch:-fzip-dependency %U.zip} \ + %{!fsyntax-only:-fzip-target %U.jar}}\n \ + %{.class|.zip|.jar|!fsyntax-only:jc1 \ + %{.java|fsaw-java-file:%U.jar -fsource-filename=%i % Set the extension directory path +fsource-filename= +Java Joined Undocumented + ffilelist-file Java Var(flag_filelist_file) Input file is a file with a list of filenames to compile +fsaw-java-file +Java Undocumented RejectNegative + fforce-classes-archive-check Java Var(flag_force_classes_archive_check) Always check for non gcj generated classes archives @@ -188,5 +197,175 @@ fbootstrap-classes Java Var(flag_bootstrap_classes) Generated should be loaded by bootstrap loader +fsource= +Java Joined +Set the source language version + +ftarget= +Java Joined +Set the target VM version + version Java + +; +; Warnings handled by ecj. +; FIXME: document them +; + +Wconstructor-name +Java + +Wpkg-default-method +Java + +Wmasked-catch-block +Java + +Wall-deprecation +Java + +Wunused-local +Java + +Wunused-argument +Java + +Wunused-import +Java + +Wunused-private +Java + +Wunused-label +Java + +Wlocal-hiding +Java + +Wfield-hiding +Java + +Wspecial-param-hiding +Java + +Wcondition-assign +Java + +Wsynthetic-access +Java + +Wnls +Java + +Wstatic-receiver +Java + +Windirect-static +Java + +Wno-effect-assign +Java + +Wintf-non-inherited +Java + +Wchar-concat +Java + +Wserial +Java + +Wempty-block +Java + +Wuseless-type-check +Java + +Wuncheck +Java + +Wraw +Java + +Wfinal-bound +Java + +Wsuppress +Java + +Wwarning-token +Java + +Wunnecessary-else +Java + +Wjavadoc +Java + +Wall-javadoc +Java + +Wtasks +Java + +Wassert-identifier +Java + +Wenum-identifier +Java + +Wfinally +Java + +Wunused-thrown +Java + +Wunqualified-field +Java + +Wtype-hiding +Java + +Wvarargs-cast +Java + +Wnull +Java + +Wboxing +Java + +Wover-ann +Java + +Wdep-ann +Java + +Wintf-annotation +Java + +Wenum-switch +Java + +Whiding +Java + +Wstatic-access +Java + +Wunused +Java + +Wparam-assign +Java + +Wdiscouraged +Java + +Wforbidden +Java + +Wfallthrough +Java + diff --git a/gcc/java/lex.c b/gcc/java/lex.c deleted file mode 100644 index 730c1447fbd..00000000000 --- a/gcc/java/lex.c +++ /dev/null @@ -1,2073 +0,0 @@ -/* Language lexer for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -/* It defines java_lex (yylex) that reads a Java ASCII source file - possibly containing Unicode escape sequence or utf8 encoded - characters and returns a token for everything found but comments, - white spaces and line terminators. When necessary, it also fills - the java_lval (yylval) union. It's implemented to be called by a - re-entrant parser generated by Bison. - - The lexical analysis conforms to the Java grammar described in "The - Java(TM) Language Specification. J. Gosling, B. Joy, G. Steele. - Addison Wesley 1996" (http://java.sun.com/docs/books/jls/html/3.doc.html) */ - -#include "keyword.h" -#include "flags.h" -#include "chartables.h" -#ifndef JC1_LITE -#include "timevar.h" -#endif - -/* Function declarations. */ -static char *java_sprint_unicode (int); -static void java_unicode_2_utf8 (unicode_t); -static void java_lex_error (const char *, int); -#ifndef JC1_LITE -static int do_java_lex (YYSTYPE *); -static int java_lex (YYSTYPE *); -static int java_is_eol (FILE *, int); -static tree build_wfl_node (tree); -#endif -static int java_parse_escape_sequence (void); -static int java_start_char_p (unicode_t); -static int java_part_char_p (unicode_t); -static int java_space_char_p (unicode_t); -static void java_parse_doc_section (int); -static void java_parse_end_comment (int); -static int java_read_char (java_lexer *); -static int java_get_unicode (void); -static int java_peek_unicode (void); -static void java_next_unicode (void); -static int java_read_unicode (java_lexer *, int *); -#ifndef JC1_LITE -static int utf8_cmp (const unsigned char *, int, const char *); -#endif - -java_lexer *java_new_lexer (FILE *, const char *); -#ifndef JC1_LITE -static void error_if_numeric_overflow (tree); -#endif - -#ifdef HAVE_ICONV -/* This is nonzero if we have initialized `need_byteswap'. */ -static int byteswap_init = 0; - -/* Some versions of iconv() (e.g., glibc 2.1.3) will return UCS-2 in - big-endian order -- not native endian order. We handle this by - doing a conversion once at startup and seeing what happens. This - flag holds the results of this determination. */ -static int need_byteswap = 0; -#endif - -void -java_init_lex (FILE *finput, const char *encoding) -{ -#ifndef JC1_LITE - int java_lang_imported = 0; - - if (!java_lang_id) - java_lang_id = get_identifier ("java.lang"); - if (!inst_id) - inst_id = get_identifier ("inst$"); - if (!wpv_id) - wpv_id = get_identifier ("write_parm_value$"); - - if (!java_lang_imported) - { - tree node = build_tree_list (build_unknown_wfl (java_lang_id), - NULL_TREE); - read_import_dir (TREE_PURPOSE (node)); - TREE_CHAIN (node) = ctxp->import_demand_list; - ctxp->import_demand_list = node; - java_lang_imported = 1; - } - - if (!wfl_operator) - { -#ifndef JC1_LITE -#ifdef USE_MAPPED_LOCATION - wfl_operator = build_expr_wfl (NULL_TREE, input_location); -#else - wfl_operator = build_expr_wfl (NULL_TREE, ctxp->filename, 0, 0); -#endif -#endif - } - if (!label_id) - label_id = get_identifier ("$L"); - if (!wfl_append) - wfl_append = build_unknown_wfl (get_identifier ("append")); - if (!wfl_string_buffer) - wfl_string_buffer = - build_unknown_wfl (get_identifier (flag_emit_class_files - ? "java.lang.StringBuffer" - : "gnu.gcj.runtime.StringBuffer")); - if (!wfl_to_string) - wfl_to_string = build_unknown_wfl (get_identifier ("toString")); - - CPC_INITIALIZER_LIST (ctxp) = CPC_STATIC_INITIALIZER_LIST (ctxp) = - CPC_INSTANCE_INITIALIZER_LIST (ctxp) = NULL_TREE; - - memset (ctxp->modifier_ctx, 0, sizeof (ctxp->modifier_ctx)); - ctxp->current_parsed_class = NULL; - ctxp->package = NULL_TREE; -#endif - -#ifndef JC1_LITE - ctxp->save_location = input_location; -#endif - ctxp->java_error_flag = 0; - ctxp->lexer = java_new_lexer (finput, encoding); -} - -static char * -java_sprint_unicode (int c) -{ - static char buffer [10]; - if (c < ' ' || c >= 127) - sprintf (buffer, "\\u%04x", c); - else - { - buffer [0] = c; - buffer [1] = '\0'; - } - return buffer; -} - -/* Create a new lexer object. */ - -java_lexer * -java_new_lexer (FILE *finput, const char *encoding) -{ - java_lexer *lex = XNEW (java_lexer); - int enc_error = 0; - - lex->finput = finput; - lex->bs_count = 0; - lex->unget_value = 0; - lex->next_unicode = 0; - lex->avail_unicode = 0; - lex->next_columns = 1; - lex->encoding = encoding; - lex->position.line = 1; - lex->position.col = 1; -#ifndef JC1_LITE -#ifdef USE_MAPPED_LOCATION - input_location - = linemap_line_start (&line_table, 1, 120); -#else - input_line = 1; -#endif -#endif - -#ifdef HAVE_ICONV - lex->handle = iconv_open ("UCS-2", encoding); - if (lex->handle != (iconv_t) -1) - { - lex->first = -1; - lex->last = -1; - lex->out_first = -1; - lex->out_last = -1; - lex->read_anything = 0; - lex->use_fallback = 0; - - /* Work around broken iconv() implementations by doing checking at - runtime. We assume that if the UTF-8 => UCS-2 encoder is broken, - then all UCS-2 encoders will be broken. Perhaps not a valid - assumption. */ - if (! byteswap_init) - { - iconv_t handle; - - byteswap_init = 1; - - handle = iconv_open ("UCS-2", "UTF-8"); - if (handle != (iconv_t) -1) - { - unicode_t result; - unsigned char in[3]; - char *inp, *outp; - size_t inc, outc, r; - - /* This is the UTF-8 encoding of \ufeff. */ - in[0] = 0xef; - in[1] = 0xbb; - in[2] = 0xbf; - - inp = (char *) in; - inc = 3; - outp = (char *) &result; - outc = 2; - - r = iconv (handle, (ICONV_CONST char **) &inp, &inc, - &outp, &outc); - iconv_close (handle); - /* Conversion must be complete for us to use the result. */ - if (r != (size_t) -1 && inc == 0 && outc == 0) - need_byteswap = (result != 0xfeff); - } - } - - lex->byte_swap = need_byteswap; - } - else -#endif /* HAVE_ICONV */ - { - /* If iconv failed, use the internal decoder if the default - encoding was requested. This code is used on platforms where - iconv exists but is insufficient for our needs. For - instance, on Solaris 2.5 iconv cannot handle UTF-8 or UCS-2. - - On Solaris the default encoding, as returned by nl_langinfo(), - is `646' (aka ASCII), but the Solaris iconv_open() doesn't - understand that. We work around that by pretending - `646' to be the same as UTF-8. */ - if (strcmp (encoding, DEFAULT_ENCODING) && strcmp (encoding, "646")) - enc_error = 1; -#ifdef HAVE_ICONV - else - { - lex->use_fallback = 1; - lex->encoding = "UTF-8"; - } -#endif /* HAVE_ICONV */ - } - - if (enc_error) - fatal_error ("unknown encoding: %qs\nThis might mean that your locale's encoding is not supported\nby your system's iconv(3) implementation. If you aren't trying\nto use a particular encoding for your input file, try the\n%<--encoding=UTF-8%> option", encoding); - - return lex; -} - -void -java_destroy_lexer (java_lexer *lex) -{ -#ifdef HAVE_ICONV - if (! lex->use_fallback) - iconv_close (lex->handle); -#endif - free (lex); -} - -static int -java_read_char (java_lexer *lex) -{ -#ifdef HAVE_ICONV - if (! lex->use_fallback) - { - size_t ir, inbytesleft, in_save, out_count, out_save; - char *inp, *outp; - unicode_t result; - - /* If there is data which has already been converted, use it. */ - if (lex->out_first == -1 || lex->out_first >= lex->out_last) - { - lex->out_first = 0; - lex->out_last = 0; - - while (1) - { - /* See if we need to read more data. If FIRST == 0 then - the previous conversion attempt ended in the middle of - a character at the end of the buffer. Otherwise we - only have to read if the buffer is empty. */ - if (lex->first == 0 || lex->first >= lex->last) - { - int r; - - if (lex->first >= lex->last) - { - lex->first = 0; - lex->last = 0; - } - if (feof (lex->finput)) - return UEOF; - r = fread (&lex->buffer[lex->last], 1, - sizeof (lex->buffer) - lex->last, - lex->finput); - lex->last += r; - } - - inbytesleft = lex->last - lex->first; - out_count = sizeof (lex->out_buffer) - lex->out_last; - - if (inbytesleft == 0) - { - /* We've tried to read and there is nothing left. */ - return UEOF; - } - - in_save = inbytesleft; - out_save = out_count; - inp = &lex->buffer[lex->first]; - outp = (char *) &lex->out_buffer[lex->out_last]; - ir = iconv (lex->handle, (ICONV_CONST char **) &inp, - &inbytesleft, &outp, &out_count); - - /* If we haven't read any bytes, then look to see if we - have read a BOM. */ - if (! lex->read_anything && out_save - out_count >= 2) - { - unicode_t uc = * (unicode_t *) &lex->out_buffer[0]; - if (uc == 0xfeff) - { - lex->byte_swap = 0; - lex->out_first += 2; - } - else if (uc == 0xfffe) - { - lex->byte_swap = 1; - lex->out_first += 2; - } - lex->read_anything = 1; - } - - if (lex->byte_swap) - { - unsigned int i; - for (i = 0; i < out_save - out_count; i += 2) - { - char t = lex->out_buffer[lex->out_last + i]; - lex->out_buffer[lex->out_last + i] - = lex->out_buffer[lex->out_last + i + 1]; - lex->out_buffer[lex->out_last + i + 1] = t; - } - } - - lex->first += in_save - inbytesleft; - lex->out_last += out_save - out_count; - - /* If we converted anything at all, move along. */ - if (out_count != out_save) - break; - - if (ir == (size_t) -1) - { - if (errno == EINVAL) - { - /* This is ok. This means that the end of our buffer - is in the middle of a character sequence. We just - move the valid part of the buffer to the beginning - to force a read. */ - memmove (&lex->buffer[0], &lex->buffer[lex->first], - lex->last - lex->first); - lex->last -= lex->first; - lex->first = 0; - } - else - { - /* A more serious error. */ - char buffer[128]; - sprintf (buffer, - "Unrecognized character for encoding '%s'", - lex->encoding); - java_lex_error (buffer, 0); - return UEOF; - } - } - } - } - - if (lex->out_first == -1 || lex->out_first >= lex->out_last) - { - /* Don't have any data. */ - return UEOF; - } - - /* Success. */ - result = * ((unicode_t *) &lex->out_buffer[lex->out_first]); - lex->out_first += 2; - return result; - } - else -#endif /* HAVE_ICONV */ - { - int c, c1, c2; - c = getc (lex->finput); - - if (c == EOF) - return UEOF; - if (c < 128) - return (unicode_t) c; - else - { - if ((c & 0xe0) == 0xc0) - { - c1 = getc (lex->finput); - if ((c1 & 0xc0) == 0x80) - { - unicode_t r = (unicode_t)(((c & 0x1f) << 6) + (c1 & 0x3f)); - /* Check for valid 2-byte characters. We explicitly - allow \0 because this encoding is common in the - Java world. */ - if (r == 0 || (r >= 0x80 && r <= 0x7ff)) - return r; - } - } - else if ((c & 0xf0) == 0xe0) - { - c1 = getc (lex->finput); - if ((c1 & 0xc0) == 0x80) - { - c2 = getc (lex->finput); - if ((c2 & 0xc0) == 0x80) - { - unicode_t r = (unicode_t)(((c & 0xf) << 12) + - (( c1 & 0x3f) << 6) - + (c2 & 0x3f)); - /* Check for valid 3-byte characters. - Don't allow surrogate, \ufffe or \uffff. */ - if (IN_RANGE (r, 0x800, 0xffff) - && ! IN_RANGE (r, 0xd800, 0xdfff) - && r != 0xfffe && r != 0xffff) - return r; - } - } - } - - /* We simply don't support invalid characters. We also - don't support 4-, 5-, or 6-byte UTF-8 sequences, as these - cannot be valid Java characters. */ - java_lex_error ("malformed UTF-8 character", 0); - } - } - - /* We only get here on error. */ - return UEOF; -} - -static int -java_read_unicode (java_lexer *lex, int *unicode_escape_p) -{ - int c; - - if (lex->unget_value) - { - c = lex->unget_value; - lex->unget_value = 0; - } - else - c = java_read_char (lex); - - *unicode_escape_p = 0; - - if (c != '\\') - { - lex->bs_count = 0; - return c; - } - - ++lex->bs_count; - if ((lex->bs_count) % 2 == 1) - { - /* Odd number of \ seen. */ - c = java_read_char (lex); - if (c == 'u') - { - unicode_t unicode = 0; - int shift = 12; - - /* Recognize any number of `u's in \u. */ - while ((c = java_read_char (lex)) == 'u') - ; - - shift = 12; - do - { - if (c == UEOF) - { - java_lex_error ("prematurely terminated \\u sequence", 0); - return UEOF; - } - - if (hex_p (c)) - unicode |= (unicode_t)(hex_value (c) << shift); - else - { - java_lex_error ("non-hex digit in \\u sequence", 0); - break; - } - - c = java_read_char (lex); - shift -= 4; - } - while (shift >= 0); - - if (c != UEOF) - lex->unget_value = c; - - lex->bs_count = 0; - *unicode_escape_p = 1; - return unicode; - } - lex->unget_value = c; - } - return (unicode_t) '\\'; -} - -/* Get the next Unicode character (post-Unicode-escape-handling). - Move the current position to just after returned character. */ - -static int -java_get_unicode (void) -{ - int next = java_peek_unicode (); - java_next_unicode (); - return next; -} - -/* Return the next Unicode character (post-Unicode-escape-handling). - Do not move the current position, which remains just before - the returned character. */ - -static int -java_peek_unicode (void) -{ - int unicode_escape_p; - java_lexer *lex = ctxp->lexer; - int next; - - if (lex->avail_unicode) - return lex->next_unicode; - - next = java_read_unicode (lex, &unicode_escape_p); - - if (next == '\r') - { - /* We have to read ahead to see if we got \r\n. - In that case we return a single line terminator. */ - int dummy; - next = java_read_unicode (lex, &dummy); - if (next != '\n' && next != UEOF) - lex->unget_value = next; - /* In either case we must return a newline. */ - next = '\n'; - } - - lex->next_unicode = next; - lex->avail_unicode = 1; - - if (next == UEOF) - { - lex->next_columns = 0; - return next; - } - - if (next == '\n') - { - lex->next_columns = 1 - lex->position.col; - } - else if (next == '\t') - { - int cur_col = lex->position.col; - lex->next_columns = ((cur_col + 7) & ~7) + 1 - cur_col; - - } - else - { - lex->next_columns = 1; - } - if (unicode_escape_p) - lex->next_columns = 6; - return next; -} - -/* Move forward one Unicode character (post-Unicode-escape-handling). - Only allowed after java_peek_unicode. The combination java_peek_unicode - followed by java_next_unicode is equivalent to java_get_unicode. */ - -static void java_next_unicode (void) -{ - struct java_lexer *lex = ctxp->lexer; - lex->position.col += lex->next_columns; - if (lex->next_unicode == '\n') - { - lex->position.line++; -#ifndef JC1_LITE -#ifdef USE_MAPPED_LOCATION - input_location - = linemap_line_start (&line_table, lex->position.line, 120); -#else - input_line = lex->position.line; -#endif -#endif - } - lex->avail_unicode = 0; -} - -#if 0 -/* The inverse of java_next_unicode. - Not currently used, but could be if it would be cleaner or faster. - java_peek_unicode == java_get_unicode + java_unget_unicode. - java_get_unicode == java_peek_unicode + java_next_unicode. -*/ -static void java_unget_unicode () -{ - struct java_lexer *lex = ctxp->lexer; - if (lex->avail_unicode) - fatal_error ("internal error - bad unget"); - lex->avail_unicode = 1; - lex->position.col -= lex->next_columns; -} -#endif - -/* Parse the end of a C style comment. - * C is the first character following the '/' and '*'. */ -static void -java_parse_end_comment (int c) -{ - for ( ;; c = java_get_unicode ()) - { - switch (c) - { - case UEOF: - java_lex_error ("Comment not terminated at end of input", 0); - return; - case '*': - switch (c = java_peek_unicode ()) - { - case UEOF: - java_lex_error ("Comment not terminated at end of input", 0); - return; - case '/': - java_next_unicode (); - return; - case '*': /* Reparse only '*'. */ - ; - } - } - } -} - -/* Parse the documentation section. Keywords must be at the beginning - of a documentation comment line (ignoring white space and any `*' - character). Parsed keyword(s): @DEPRECATED. */ - -static void -java_parse_doc_section (int c) -{ - int last_was_star; - - /* We reset this here, because only the most recent doc comment - applies to the following declaration. */ - ctxp->deprecated = 0; - - /* We loop over all the lines of the comment. We'll eventually exit - if we hit EOF prematurely, or when we see the comment - terminator. */ - while (1) - { - /* These first steps need only be done if we're still looking - for the deprecated tag. If we've already seen it, we might - as well skip looking for it again. */ - if (! ctxp->deprecated) - { - /* Skip whitespace and '*'s. We must also check for the end - of the comment here. */ - while (JAVA_WHITE_SPACE_P (c) || c == '*') - { - last_was_star = (c == '*'); - c = java_get_unicode (); - if (last_was_star && c == '/') - { - /* We just saw the comment terminator. */ - return; - } - } - - if (c == UEOF) - goto eof; - - if (c == '@') - { - const char *deprecated = "@deprecated"; - int i; - - for (i = 0; deprecated[i]; ++i) - { - if (c != deprecated[i]) - break; - /* We write the code in this way, with the - update at the end, so that after the loop - we're left with the next character in C. */ - c = java_get_unicode (); - } - - if (c == UEOF) - goto eof; - - /* @deprecated must be followed by a space or newline. - We also allow a '*' in case it appears just before - the end of a comment. In this position only we also - must allow any Unicode space character. */ - if (c == ' ' || c == '\n' || c == '*' || java_space_char_p (c)) - { - if (! deprecated[i]) - ctxp->deprecated = 1; - } - } - } - - /* We've examined the relevant content from this line. Now we - skip the remaining characters and start over with the next - line. We also check for end of comment here. */ - while (c != '\n' && c != UEOF) - { - last_was_star = (c == '*'); - c = java_get_unicode (); - if (last_was_star && c == '/') - return; - } - - if (c == UEOF) - goto eof; - /* We have to advance past the \n. */ - c = java_get_unicode (); - if (c == UEOF) - goto eof; - } - - eof: - java_lex_error ("Comment not terminated at end of input", 0); -} - -/* Return true if C is a valid start character for a Java identifier. - This is only called if C >= 128 -- smaller values are handled - inline. However, this function handles all values anyway. */ -static int -java_start_char_p (unicode_t c) -{ - unsigned int hi = c / 256; - const char *const page = type_table[hi]; - unsigned long val = (unsigned long) page; - int flags; - - if ((val & ~ LETTER_MASK) != 0) - flags = page[c & 255]; - else - flags = val; - - return flags & LETTER_START; -} - -/* Return true if C is a valid part character for a Java identifier. - This is only called if C >= 128 -- smaller values are handled - inline. However, this function handles all values anyway. */ -static int -java_part_char_p (unicode_t c) -{ - unsigned int hi = c / 256; - const char *const page = type_table[hi]; - unsigned long val = (unsigned long) page; - int flags; - - if ((val & ~ LETTER_MASK) != 0) - flags = page[c & 255]; - else - flags = val; - - return flags & LETTER_PART; -} - -/* Return true if C is whitespace. */ -static int -java_space_char_p (unicode_t c) -{ - unsigned int hi = c / 256; - const char *const page = type_table[hi]; - unsigned long val = (unsigned long) page; - int flags; - - if ((val & ~ LETTER_MASK) != 0) - flags = page[c & 255]; - else - flags = val; - - return flags & LETTER_SPACE; -} - -static int -java_parse_escape_sequence (void) -{ - int c; - - switch (c = java_get_unicode ()) - { - case 'b': - return (unicode_t)0x8; - case 't': - return (unicode_t)0x9; - case 'n': - return (unicode_t)0xa; - case 'f': - return (unicode_t)0xc; - case 'r': - return (unicode_t)0xd; - case '"': - return (unicode_t)0x22; - case '\'': - return (unicode_t)0x27; - case '\\': - return (unicode_t)0x5c; - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': - { - int more = 3; - unicode_t char_lit = 0; - - if (c > '3') - { - /* According to the grammar, `\477' has a well-defined - meaning -- it is `\47' followed by `7'. */ - --more; - } - char_lit = 0; - for (;;) - { - char_lit = 8 * char_lit + c - '0'; - if (--more == 0) - break; - c = java_peek_unicode (); - if (! RANGE (c, '0', '7')) - break; - java_next_unicode (); - } - - return char_lit; - } - default: - java_lex_error ("Invalid character in escape sequence", -1); - return JAVA_CHAR_ERROR; - } -} - -#ifndef JC1_LITE -#define IS_ZERO(X) REAL_VALUES_EQUAL (X, dconst0) - -/* Subroutine of java_lex: converts floating-point literals to tree - nodes. LITERAL_TOKEN is the input literal, JAVA_LVAL is where to - store the result. FFLAG indicates whether the literal was tagged - with an 'f', indicating it is of type 'float'; NUMBER_BEGINNING - is the line number on which to report any error. */ - -static void java_perform_atof (YYSTYPE *, char *, int, int); - -static void -java_perform_atof (YYSTYPE *java_lval, char *literal_token, int fflag, - int number_beginning) -{ - REAL_VALUE_TYPE value; - tree type = (fflag ? FLOAT_TYPE_NODE : DOUBLE_TYPE_NODE); - - SET_REAL_VALUE_ATOF (value, - REAL_VALUE_ATOF (literal_token, TYPE_MODE (type))); - - if (REAL_VALUE_ISINF (value) || REAL_VALUE_ISNAN (value)) - { - JAVA_FLOAT_RANGE_ERROR (fflag ? "float" : "double"); - value = DCONST0; - } - else if (IS_ZERO (value)) - { - /* We check to see if the value is really 0 or if we've found an - underflow. We do this in the most primitive imaginable way. */ - int really_zero = 1; - char *p = literal_token; - if (*p == '-') - ++p; - while (*p && *p != 'e' && *p != 'E') - { - if (*p != '0' && *p != '.') - { - really_zero = 0; - break; - } - ++p; - } - if (! really_zero) - { - int save_col = ctxp->lexer->position.col; - ctxp->lexer->position.col = number_beginning; - java_lex_error ("Floating point literal underflow", 0); - ctxp->lexer->position.col = save_col; - } - } - - SET_LVAL_NODE (build_real (type, value)); -} -#endif - -static int yylex (YYSTYPE *); - -static int -#ifdef JC1_LITE -yylex (YYSTYPE *java_lval) -#else -do_java_lex (YYSTYPE *java_lval) -#endif -{ - int c; - char *string; - - /* Translation of the Unicode escape in the raw stream of Unicode - characters. Takes care of line terminator. */ - step1: - /* Skip white spaces: SP, TAB and FF or ULT. */ - for (;;) - { - c = java_peek_unicode (); - if (c != '\n' && ! JAVA_WHITE_SPACE_P (c)) - break; - java_next_unicode (); - } - - /* Handle EOF here. */ - if (c == UEOF) /* Should probably do something here... */ - return 0; - -#ifndef JC1_LITE -#ifdef USE_MAPPED_LOCATION - LINEMAP_POSITION_FOR_COLUMN (input_location, &line_table, - ctxp->lexer->position.col); -#else - ctxp->lexer->token_start = ctxp->lexer->position; -#endif -#endif - - /* Numeric literals. */ - if (JAVA_ASCII_DIGIT (c) || (c == '.')) - { - /* This section of code is borrowed from gcc/c-lex.c. */ -#define TOTAL_PARTS ((HOST_BITS_PER_WIDE_INT / HOST_BITS_PER_CHAR) * 2 + 2) - int parts[TOTAL_PARTS]; - HOST_WIDE_INT high, low; - /* End borrowed section. */ - -#define MAX_TOKEN_LEN 256 - char literal_token [MAX_TOKEN_LEN + 1]; - int literal_index = 0, radix = 10, long_suffix = 0, overflow = 0, bytes; - int found_hex_digits = 0, found_non_octal_digits = -1; - int i; -#ifndef JC1_LITE - int number_beginning = ctxp->lexer->position.col; - tree value; -#endif - - for (i = 0; i < TOTAL_PARTS; i++) - parts [i] = 0; - - if (c == '0') - { - java_next_unicode (); - c = java_peek_unicode (); - if (c == 'x' || c == 'X') - { - radix = 16; - java_next_unicode (); - c = java_peek_unicode (); - } - else if (JAVA_ASCII_DIGIT (c)) - { - literal_token [literal_index++] = '0'; - radix = 8; - } - else if (c == '.' || c == 'e' || c =='E') - { - literal_token [literal_index++] = '0'; - /* Handle C during floating-point parsing. */ - } - else - { - /* We have a zero literal: 0, 0{l,L}, 0{f,F}, 0{d,D}. */ - switch (c) - { - case 'L': case 'l': - java_next_unicode (); - SET_LVAL_NODE (long_zero_node); - return (INT_LIT_TK); - case 'f': case 'F': - java_next_unicode (); - SET_LVAL_NODE (float_zero_node); - return (FP_LIT_TK); - case 'd': case 'D': - java_next_unicode (); - SET_LVAL_NODE (double_zero_node); - return (FP_LIT_TK); - default: - SET_LVAL_NODE (integer_zero_node); - return (INT_LIT_TK); - } - } - } - - /* Terminate LITERAL_TOKEN in case we bail out on large tokens. */ - literal_token [MAX_TOKEN_LEN] = '\0'; - - /* Parse the first part of the literal, until we find something - which is not a number. */ - while ((radix == 16 ? JAVA_ASCII_HEXDIGIT (c) : JAVA_ASCII_DIGIT (c)) - && literal_index < MAX_TOKEN_LEN) - { - /* We store in a string (in case it turns out to be a FP) and in - PARTS if we have to process a integer literal. */ - int numeric = hex_value (c); - int count; - - /* Remember when we find a valid hexadecimal digit. */ - if (radix == 16) - found_hex_digits = 1; - /* Remember when we find an invalid octal digit. */ - else if (radix == 8 && numeric >= 8 && found_non_octal_digits < 0) - found_non_octal_digits = literal_index; - - literal_token [literal_index++] = c; - /* This section of code if borrowed from gcc/c-lex.c. */ - for (count = 0; count < TOTAL_PARTS; count++) - { - parts[count] *= radix; - if (count) - { - parts[count] += (parts[count-1] >> HOST_BITS_PER_CHAR); - parts[count-1] &= (1 << HOST_BITS_PER_CHAR) - 1; - } - else - parts[0] += numeric; - } - if (parts [TOTAL_PARTS-1] != 0) - overflow = 1; - /* End borrowed section. */ - java_next_unicode (); - c = java_peek_unicode (); - } - - /* If we have something from the FP char set but not a digit, parse - a FP literal. */ - if (JAVA_ASCII_FPCHAR (c) && !JAVA_ASCII_DIGIT (c)) - { - /* stage==0: seen digits only - * stage==1: seen '.' - * stage==2: seen 'e' or 'E'. - * stage==3: seen '+' or '-' after 'e' or 'E'. - * stage==4: seen type suffix ('f'/'F'/'d'/'D') - */ - int stage = 0; - int seen_digit = (literal_index ? 1 : 0); - int seen_exponent = 0; - int fflag = 0; /* 1 for {f,F}, 0 for {d,D}. FP literal are - double unless specified. */ - - /* It is ok if the radix is 8 because this just means we've - seen a leading `0'. However, radix==16 is invalid. */ - if (radix == 16) - java_lex_error ("Can't express non-decimal FP literal", 0); - radix = 10; - - for (; literal_index < MAX_TOKEN_LEN;) - { - if (c == '.') - { - if (stage < 1) - { - stage = 1; - literal_token [literal_index++ ] = c; - java_next_unicode (); - c = java_peek_unicode (); - if (literal_index == 1 && !JAVA_ASCII_DIGIT (c)) - BUILD_OPERATOR (DOT_TK); - } - else - java_lex_error ("Invalid character in FP literal", 0); - } - - if ((c == 'e' || c == 'E') && literal_index < MAX_TOKEN_LEN) - { - if (stage < 2) - { - /* {E,e} must have seen at least a digit. */ - if (!seen_digit) - java_lex_error - ("Invalid FP literal, mantissa must have digit", 0); - seen_digit = 0; - seen_exponent = 1; - stage = 2; - literal_token [literal_index++] = c; - java_next_unicode (); - c = java_peek_unicode (); - } - else - java_lex_error ("Invalid character in FP literal", 0); - } - if ( c == 'f' || c == 'F' || c == 'd' || c == 'D') - { - fflag = ((c == 'd') || (c == 'D')) ? 0 : 1; - stage = 4; /* So we fall through. */ - } - - if ((c=='-' || c =='+') && stage == 2 - && literal_index < MAX_TOKEN_LEN) - { - stage = 3; - literal_token [literal_index++] = c; - java_next_unicode (); - c = java_peek_unicode (); - } - - if (((stage == 0 && JAVA_ASCII_FPCHAR (c)) - || (stage == 1 && JAVA_ASCII_FPCHAR (c) && !(c == '.')) - || (stage == 2 && (JAVA_ASCII_DIGIT (c) || JAVA_FP_PM (c))) - || (stage == 3 && JAVA_ASCII_DIGIT (c))) - && literal_index < MAX_TOKEN_LEN) - { - if (JAVA_ASCII_DIGIT (c)) - seen_digit = 1; - if (stage == 2) - stage = 3; - literal_token [literal_index++ ] = c; - java_next_unicode (); - c = java_peek_unicode (); - } - else if (literal_index < MAX_TOKEN_LEN) - { - if (stage == 4) /* Don't push back fF/dD. */ - java_next_unicode (); - - /* An exponent (if any) must have seen a digit. */ - if (seen_exponent && !seen_digit) - java_lex_error - ("Invalid FP literal, exponent must have digit", 0); - - literal_token [literal_index] = '\0'; - -#ifndef JC1_LITE - java_perform_atof (java_lval, literal_token, - fflag, number_beginning); -#endif - return FP_LIT_TK; - } - } - } /* JAVA_ASCII_FPCHAR (c) */ - - /* Here we get back to converting the integral literal. */ - if (radix == 16 && ! found_hex_digits) - java_lex_error - ("0x must be followed by at least one hexadecimal digit", 0); - else if (radix == 8 && found_non_octal_digits >= 0) - { - int back = literal_index - found_non_octal_digits; - ctxp->lexer->position.col -= back; - java_lex_error ("Octal literal contains digit out of range", 0); - ctxp->lexer->position.col += back; - } - else if (c == 'L' || c == 'l') - { - java_next_unicode (); - long_suffix = 1; - } - - /* This section of code is borrowed from gcc/c-lex.c. */ - if (!overflow) - { - bytes = GET_TYPE_PRECISION (long_type_node); - for (i = bytes; i < TOTAL_PARTS; i++) - if (parts [i]) - { - overflow = 1; - break; - } - } - high = low = 0; - for (i = 0; i < HOST_BITS_PER_WIDE_INT / HOST_BITS_PER_CHAR; i++) - { - high |= ((HOST_WIDE_INT) parts[i + (HOST_BITS_PER_WIDE_INT - / HOST_BITS_PER_CHAR)] - << (i * HOST_BITS_PER_CHAR)); - low |= (HOST_WIDE_INT) parts[i] << (i * HOST_BITS_PER_CHAR); - } - /* End borrowed section. */ - -#ifndef JC1_LITE - /* Range checking. */ - /* Temporarily set type to unsigned. */ - value = build_int_cst_wide (long_suffix - ? unsigned_long_type_node - : unsigned_int_type_node, low, high); - SET_LVAL_NODE (value); - - /* For base 10 numbers, only values up to the highest value - (plus one) can be written. For instance, only ints up to - 2147483648 can be written. The special case of the largest - negative value is handled elsewhere. For other bases, any - number can be represented. */ - if (overflow || (radix == 10 - && tree_int_cst_lt (long_suffix - ? decimal_long_max - : decimal_int_max, - value))) - { - if (long_suffix) - JAVA_RANGE_ERROR ("Numeric overflow for 'long' literal"); - else - JAVA_RANGE_ERROR ("Numeric overflow for 'int' literal"); - } - - /* Sign extend the value. */ - value = build_int_cst_wide_type (long_suffix ? long_type_node - : int_type_node, low, high); - - if (radix != 10) - { - value = copy_node (value); - JAVA_NOT_RADIX10_FLAG (value) = 1; - } - - SET_LVAL_NODE (value); -#endif - return INT_LIT_TK; - } - - /* We may have an ID here. */ - if (JAVA_START_CHAR_P (c)) - { - int ascii_index = 0, all_ascii = 1; - - /* Keyword, boolean literal or null literal. */ - while (c != UEOF && JAVA_PART_CHAR_P (c)) - { - java_unicode_2_utf8 (c); - if (c >= 128) - all_ascii = 0; - java_next_unicode (); - ascii_index++; - c = java_peek_unicode (); - } - - obstack_1grow (&temporary_obstack, '\0'); - string = obstack_finish (&temporary_obstack); - - /* If we have something all ascii, we consider a keyword, a boolean - literal, a null literal or an all ASCII identifier. Otherwise, - this is an identifier (possibly not respecting formation rule). */ - if (all_ascii) - { - const struct java_keyword *kw; - if ((kw=java_keyword (string, ascii_index))) - { - switch (kw->token) - { - case PUBLIC_TK: case PROTECTED_TK: case STATIC_TK: - case ABSTRACT_TK: case FINAL_TK: case NATIVE_TK: - case SYNCHRONIZED_TK: case TRANSIENT_TK: case VOLATILE_TK: - case PRIVATE_TK: case STRICT_TK: - SET_MODIFIER_CTX (kw->token); - return MODIFIER_TK; - case FLOAT_TK: - SET_LVAL_NODE (float_type_node); - return FP_TK; - case DOUBLE_TK: - SET_LVAL_NODE (double_type_node); - return FP_TK; - case BOOLEAN_TK: - SET_LVAL_NODE (boolean_type_node); - return BOOLEAN_TK; - case BYTE_TK: - SET_LVAL_NODE (byte_type_node); - return INTEGRAL_TK; - case SHORT_TK: - SET_LVAL_NODE (short_type_node); - return INTEGRAL_TK; - case INT_TK: - SET_LVAL_NODE (int_type_node); - return INTEGRAL_TK; - case LONG_TK: - SET_LVAL_NODE (long_type_node); - return INTEGRAL_TK; - case CHAR_TK: - SET_LVAL_NODE (char_type_node); - return INTEGRAL_TK; - - /* Keyword based literals. */ - case TRUE_TK: - case FALSE_TK: - SET_LVAL_NODE ((kw->token == TRUE_TK ? - boolean_true_node : boolean_false_node)); - return BOOL_LIT_TK; - case NULL_TK: - SET_LVAL_NODE (null_pointer_node); - return NULL_TK; - - case ASSERT_TK: - if (flag_assert) - { - BUILD_OPERATOR (kw->token); - return kw->token; - } - else - break; - - /* Some keyword we want to retain information on the location - they where found. */ - case CASE_TK: - case DEFAULT_TK: - case SUPER_TK: - case THIS_TK: - case RETURN_TK: - case BREAK_TK: - case CONTINUE_TK: - case TRY_TK: - case CATCH_TK: - case THROW_TK: - case INSTANCEOF_TK: - BUILD_OPERATOR (kw->token); - - default: - return kw->token; - } - } - } - - java_lval->node = BUILD_ID_WFL (GET_IDENTIFIER (string)); - return ID_TK; - } - - java_next_unicode (); - - /* Character literals. */ - if (c == '\'') - { - int char_lit; - - if ((c = java_get_unicode ()) == '\\') - char_lit = java_parse_escape_sequence (); - else - { - if (c == '\n' || c == '\'') - java_lex_error ("Invalid character literal", 0); - char_lit = c; - } - - c = java_get_unicode (); - - if ((c == '\n') || (c == UEOF)) - java_lex_error ("Character literal not terminated at end of line", 0); - if (c != '\'') - java_lex_error ("Syntax error in character literal", 0); - - if (char_lit == JAVA_CHAR_ERROR) - char_lit = 0; /* We silently convert it to zero. */ - - SET_LVAL_NODE (build_int_cst (char_type_node, char_lit)); - return CHAR_LIT_TK; - } - - /* String literals. */ - if (c == '"') - { - int no_error = 1; - char *string; - - for (;;) - { - c = java_peek_unicode (); - if (c == '\n' || c == UEOF) /* ULT. */ - { - java_lex_error ("String not terminated at end of line", 0); - break; - } - java_next_unicode (); - if (c == '"') - break; - if (c == '\\') - c = java_parse_escape_sequence (); - if (c == JAVA_CHAR_ERROR) - { - no_error = 0; - c = 0; /* We silently convert it to zero. */ - } - java_unicode_2_utf8 (c); - } - - obstack_1grow (&temporary_obstack, '\0'); - string = obstack_finish (&temporary_obstack); -#ifndef JC1_LITE - if (!no_error || (c != '"')) - java_lval->node = error_mark_node; /* FIXME: Requires further - testing. */ - else - java_lval->node = build_string (strlen (string), string); -#endif - obstack_free (&temporary_obstack, string); - return STRING_LIT_TK; - } - - switch (c) - { - case '/': - /* Check for comment. */ - switch (c = java_peek_unicode ()) - { - case '/': - java_next_unicode (); - for (;;) - { - c = java_get_unicode (); - if (c == UEOF) - { - /* It is ok to end a `//' comment with EOF, unless - we're being pedantic. */ - if (pedantic) - java_lex_error ("Comment not terminated at end of input", - 0); - return 0; - } - if (c == '\n') /* ULT */ - goto step1; - } - break; - - case '*': - java_next_unicode (); - if ((c = java_get_unicode ()) == '*') - { - c = java_get_unicode (); - if (c == '/') - { - /* Empty documentation comment. We have to reset - the deprecation marker as only the most recent - doc comment applies. */ - ctxp->deprecated = 0; - } - else - java_parse_doc_section (c); - } - else - java_parse_end_comment ((c = java_get_unicode ())); - goto step1; - break; - - case '=': - java_next_unicode (); - BUILD_OPERATOR2 (DIV_ASSIGN_TK); - - default: - BUILD_OPERATOR (DIV_TK); - } - - case '(': - BUILD_OPERATOR (OP_TK); - case ')': - return CP_TK; - case '{': -#ifndef JC1_LITE - java_lval->operator.token = OCB_TK; - java_lval->operator.location = BUILD_LOCATION(); -#ifdef USE_MAPPED_LOCATION - if (ctxp->ccb_indent == 1) - ctxp->first_ccb_indent1 = input_location; -#else - if (ctxp->ccb_indent == 1) - ctxp->first_ccb_indent1 = input_line; -#endif -#endif - ctxp->ccb_indent++; - return OCB_TK; - case '}': - ctxp->ccb_indent--; -#ifndef JC1_LITE - java_lval->operator.token = CCB_TK; - java_lval->operator.location = BUILD_LOCATION(); -#ifdef USE_MAPPED_LOCATION - if (ctxp->ccb_indent == 1) - ctxp->last_ccb_indent1 = input_location; -#else - if (ctxp->ccb_indent == 1) - ctxp->last_ccb_indent1 = input_line; -#endif -#endif - return CCB_TK; - case '[': - BUILD_OPERATOR (OSB_TK); - case ']': - return CSB_TK; - case ';': - return SC_TK; - case ',': - return C_TK; - case '.': - BUILD_OPERATOR (DOT_TK); - - /* Operators. */ - case '=': - c = java_peek_unicode (); - if (c == '=') - { - java_next_unicode (); - BUILD_OPERATOR (EQ_TK); - } - else - { - /* Equals is used in two different locations. In the - variable_declarator: rule, it has to be seen as '=' as opposed - to being seen as an ordinary assignment operator in - assignment_operators: rule. */ - BUILD_OPERATOR (ASSIGN_TK); - } - - case '>': - switch ((c = java_peek_unicode ())) - { - case '=': - java_next_unicode (); - BUILD_OPERATOR (GTE_TK); - case '>': - java_next_unicode (); - switch ((c = java_peek_unicode ())) - { - case '>': - java_next_unicode (); - c = java_peek_unicode (); - if (c == '=') - { - java_next_unicode (); - BUILD_OPERATOR2 (ZRS_ASSIGN_TK); - } - else - { - BUILD_OPERATOR (ZRS_TK); - } - case '=': - java_next_unicode (); - BUILD_OPERATOR2 (SRS_ASSIGN_TK); - default: - BUILD_OPERATOR (SRS_TK); - } - default: - BUILD_OPERATOR (GT_TK); - } - - case '<': - switch ((c = java_peek_unicode ())) - { - case '=': - java_next_unicode (); - BUILD_OPERATOR (LTE_TK); - case '<': - java_next_unicode (); - if ((c = java_peek_unicode ()) == '=') - { - java_next_unicode (); - BUILD_OPERATOR2 (LS_ASSIGN_TK); - } - else - { - BUILD_OPERATOR (LS_TK); - } - default: - BUILD_OPERATOR (LT_TK); - } - - case '&': - switch ((c = java_peek_unicode ())) - { - case '&': - java_next_unicode (); - BUILD_OPERATOR (BOOL_AND_TK); - case '=': - java_next_unicode (); - BUILD_OPERATOR2 (AND_ASSIGN_TK); - default: - BUILD_OPERATOR (AND_TK); - } - - case '|': - switch ((c = java_peek_unicode ())) - { - case '|': - java_next_unicode (); - BUILD_OPERATOR (BOOL_OR_TK); - case '=': - java_next_unicode (); - BUILD_OPERATOR2 (OR_ASSIGN_TK); - default: - BUILD_OPERATOR (OR_TK); - } - - case '+': - switch ((c = java_peek_unicode ())) - { - case '+': - java_next_unicode (); - BUILD_OPERATOR (INCR_TK); - case '=': - java_next_unicode (); - BUILD_OPERATOR2 (PLUS_ASSIGN_TK); - default: - BUILD_OPERATOR (PLUS_TK); - } - - case '-': - switch ((c = java_peek_unicode ())) - { - case '-': - java_next_unicode (); - BUILD_OPERATOR (DECR_TK); - case '=': - java_next_unicode (); - BUILD_OPERATOR2 (MINUS_ASSIGN_TK); - default: - BUILD_OPERATOR (MINUS_TK); - } - - case '*': - if ((c = java_peek_unicode ()) == '=') - { - java_next_unicode (); - BUILD_OPERATOR2 (MULT_ASSIGN_TK); - } - else - { - BUILD_OPERATOR (MULT_TK); - } - - case '^': - if ((c = java_peek_unicode ()) == '=') - { - java_next_unicode (); - BUILD_OPERATOR2 (XOR_ASSIGN_TK); - } - else - { - BUILD_OPERATOR (XOR_TK); - } - - case '%': - if ((c = java_peek_unicode ()) == '=') - { - java_next_unicode (); - BUILD_OPERATOR2 (REM_ASSIGN_TK); - } - else - { - BUILD_OPERATOR (REM_TK); - } - - case '!': - if ((c = java_peek_unicode()) == '=') - { - java_next_unicode (); - BUILD_OPERATOR (NEQ_TK); - } - else - { - BUILD_OPERATOR (NEG_TK); - } - - case '?': - BUILD_OPERATOR (REL_QM_TK); - case ':': - BUILD_OPERATOR (REL_CL_TK); - case '~': - BUILD_OPERATOR (NOT_TK); - } - - if (c == 0x1a) /* CTRL-Z. */ - { - if ((c = java_peek_unicode ()) == UEOF) - return 0; /* Ok here. */ - } - - /* Everything else is an invalid character in the input. */ - { - char lex_error_buffer [128]; - sprintf (lex_error_buffer, "Invalid character '%s' in input", - java_sprint_unicode (c)); - java_lex_error (lex_error_buffer, -1); - } - return 0; -} - -#ifndef JC1_LITE - -/* The exported interface to the lexer. */ -static int -java_lex (YYSTYPE *java_lval) -{ - int r; - - timevar_push (TV_LEX); - r = do_java_lex (java_lval); - timevar_pop (TV_LEX); - return r; -} - -/* This is called by the parser to see if an error should be generated - due to numeric overflow. This function only handles the particular - case of the largest negative value, and is only called in the case - where this value is not preceded by `-'. */ -static void -error_if_numeric_overflow (tree value) -{ - if (TREE_CODE (value) == INTEGER_CST - && !JAVA_NOT_RADIX10_FLAG (value) - && tree_int_cst_sgn (value) < 0) - { - if (TREE_TYPE (value) == long_type_node) - java_lex_error ("Numeric overflow for 'long' literal", 0); - else - java_lex_error ("Numeric overflow for 'int' literal", 0); - } -} - -#endif /* JC1_LITE */ - -static void -java_unicode_2_utf8 (unicode_t unicode) -{ - if (RANGE (unicode, 0x01, 0x7f)) - obstack_1grow (&temporary_obstack, (char)unicode); - else if (RANGE (unicode, 0x80, 0x7ff) || unicode == 0) - { - obstack_1grow (&temporary_obstack, - (unsigned char)(0xc0 | ((0x7c0 & unicode) >> 6))); - obstack_1grow (&temporary_obstack, - (unsigned char)(0x80 | (unicode & 0x3f))); - } - else /* Range 0x800-0xffff. */ - { - obstack_1grow (&temporary_obstack, - (unsigned char)(0xe0 | (unicode & 0xf000) >> 12)); - obstack_1grow (&temporary_obstack, - (unsigned char)(0x80 | (unicode & 0x0fc0) >> 6)); - obstack_1grow (&temporary_obstack, - (unsigned char)(0x80 | (unicode & 0x003f))); - } -} - -#ifndef JC1_LITE -static tree -build_wfl_node (tree node) -{ -#ifdef USE_MAPPED_LOCATION - node = build_expr_wfl (node, input_location); -#else - node = build_expr_wfl (node, ctxp->filename, - ctxp->lexer->token_start.line, - ctxp->lexer->token_start.col); -#endif - /* Prevent java_complete_lhs from short-circuiting node (if constant). */ - TREE_TYPE (node) = NULL_TREE; - return node; -} -#endif - -static void -java_lex_error (const char *msg ATTRIBUTE_UNUSED, int forward ATTRIBUTE_UNUSED) -{ -#ifndef JC1_LITE - int col = (ctxp->lexer->position.col - + forward * ctxp->lexer->next_columns); -#if USE_MAPPED_LOCATION - source_location save_location = input_location; - LINEMAP_POSITION_FOR_COLUMN (input_location, &line_table, col); - - /* Might be caught in the middle of some error report. */ - ctxp->java_error_flag = 0; - java_error (NULL); - java_error (msg); - input_location = save_location; -#else - java_lc save = ctxp->lexer->token_start; - ctxp->lexer->token_start.line = ctxp->lexer->position.line; - ctxp->lexer->token_start.col = col; - - /* Might be caught in the middle of some error report. */ - ctxp->java_error_flag = 0; - java_error (NULL); - java_error (msg); - ctxp->lexer->token_start = save; -#endif -#endif -} - -#ifndef JC1_LITE -static int -java_is_eol (FILE *fp, int c) -{ - int next; - switch (c) - { - case '\r': - next = getc (fp); - if (next != '\n' && next != EOF) - ungetc (next, fp); - return 1; - case '\n': - return 1; - default: - return 0; - } -} -#endif - -char * -java_get_line_col (const char *filename ATTRIBUTE_UNUSED, - int line ATTRIBUTE_UNUSED, int col ATTRIBUTE_UNUSED) -{ -#ifdef JC1_LITE - return 0; -#else - /* Dumb implementation. Doesn't try to cache or optimize things. */ - /* First line of the file is line 1, first column is 1. */ - - /* COL == -1 means, at the CR/LF in LINE. */ - /* COL == -2 means, at the first non space char in LINE. */ - - FILE *fp; - int c, ccol, cline = 1; - int current_line_col = 0; - int first_non_space = 0; - char *base; - - if (!(fp = fopen (filename, "r"))) - fatal_error ("can't open %s: %m", filename); - - while (cline != line) - { - c = getc (fp); - if (c == EOF) - { - static const char msg[] = "<>"; - obstack_grow (&temporary_obstack, msg, sizeof(msg)-1); - goto have_line; - } - if (java_is_eol (fp, c)) - cline++; - } - - /* Gather the chars of the current line in a buffer. */ - for (;;) - { - c = getc (fp); - if (c < 0 || java_is_eol (fp, c)) - break; - if (!first_non_space && !JAVA_WHITE_SPACE_P (c)) - first_non_space = current_line_col; - obstack_1grow (&temporary_obstack, c); - current_line_col++; - } - have_line: - - obstack_1grow (&temporary_obstack, '\n'); - - if (col == -1) - { - col = current_line_col; - first_non_space = 0; - } - else if (col == -2) - col = first_non_space; - else - first_non_space = 0; - - /* Place the '^' a the right position. */ - base = obstack_base (&temporary_obstack); - for (col += 2, ccol = 0; ccol < col; ccol++) - { - /* Compute \t when reaching first_non_space. */ - char c = (first_non_space ? - (base [ccol] == '\t' ? '\t' : ' ') : ' '); - obstack_1grow (&temporary_obstack, c); - } - obstack_grow0 (&temporary_obstack, "^", 1); - - fclose (fp); - return obstack_finish (&temporary_obstack); -#endif -} - -#ifndef JC1_LITE -static int -utf8_cmp (const unsigned char *str, int length, const char *name) -{ - const unsigned char *limit = str + length; - int i; - - for (i = 0; name[i]; ++i) - { - int ch = UTF8_GET (str, limit); - if (ch != name[i]) - return ch - name[i]; - } - - return str == limit ? 0 : 1; -} - -/* A sorted list of all C++ keywords. */ - -static const char *const cxx_keywords[] = -{ - "_Complex", - "__alignof", - "__alignof__", - "__asm", - "__asm__", - "__attribute", - "__attribute__", - "__builtin_va_arg", - "__complex", - "__complex__", - "__const", - "__const__", - "__extension__", - "__imag", - "__imag__", - "__inline", - "__inline__", - "__label__", - "__null", - "__real", - "__real__", - "__restrict", - "__restrict__", - "__signed", - "__signed__", - "__typeof", - "__typeof__", - "__volatile", - "__volatile__", - "and", - "and_eq", - "asm", - "auto", - "bitand", - "bitor", - "bool", - "break", - "case", - "catch", - "char", - "class", - "compl", - "const", - "const_cast", - "continue", - "default", - "delete", - "do", - "double", - "dynamic_cast", - "else", - "enum", - "explicit", - "export", - "extern", - "false", - "float", - "for", - "friend", - "goto", - "if", - "inline", - "int", - "long", - "mutable", - "namespace", - "new", - "not", - "not_eq", - "operator", - "or", - "or_eq", - "private", - "protected", - "public", - "register", - "reinterpret_cast", - "return", - "short", - "signed", - "sizeof", - "static", - "static_cast", - "struct", - "switch", - "template", - "this", - "throw", - "true", - "try", - "typedef", - "typeid", - "typename", - "typeof", - "union", - "unsigned", - "using", - "virtual", - "void", - "volatile", - "wchar_t", - "while", - "xor", - "xor_eq" -}; - -/* Return true if NAME is a C++ keyword. */ - -int -cxx_keyword_p (const char *name, int length) -{ - int last = ARRAY_SIZE (cxx_keywords); - int first = 0; - int mid = (last + first) / 2; - int old = -1; - - for (mid = (last + first) / 2; - mid != old; - old = mid, mid = (last + first) / 2) - { - int kwl = strlen (cxx_keywords[mid]); - int min_length = kwl > length ? length : kwl; - int r = utf8_cmp ((const unsigned char *) name, min_length, cxx_keywords[mid]); - - if (r == 0) - { - int i; - /* We've found a match if all the remaining characters are `$'. */ - for (i = min_length; i < length && name[i] == '$'; ++i) - ; - if (i == length) - return 1; - r = 1; - } - - if (r < 0) - last = mid; - else - first = mid; - } - return 0; -} -#endif /* JC1_LITE */ diff --git a/gcc/java/lex.h b/gcc/java/lex.h deleted file mode 100644 index 20f7680b0fd..00000000000 --- a/gcc/java/lex.h +++ /dev/null @@ -1,247 +0,0 @@ -/* Language lexer definitions for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -#ifndef GCC_JAVA_LEX_H -#define GCC_JAVA_LEX_H - -#include "input.h" - -/* Extern global variables declarations */ -extern FILE *finput; - -/* A Unicode character, as read from the input file */ -typedef unsigned short unicode_t; - -#ifndef HAVE_ICONV_H -#undef HAVE_ICONV -#endif - -#if defined HAVE_ICONV -#include -#endif /* HAVE_ICONV */ - -/* Default encoding to use if no encoding is specified. */ -#define DEFAULT_ENCODING "UTF-8" - -typedef struct java_lc_s GTY(()) { - int line; /* line number (1-based) */ - int col; /* column number number (1-based) */ -} java_lc; - -struct java_lexer -{ - /* The file from which we're reading. */ - FILE *finput; - - /* Number of consecutive backslashes we've read. */ - int bs_count; - - /* Next available Unicode character. - * This is post-Unicode-escape-processing. -1 if EOF. */ - int next_unicode; - - /* True if next_unicode is next available character, or EOF. */ - bool avail_unicode; - - /* Number of source columns of the previous Unicode character (next_unicode). - If next_unicode==-2, then this is the number of columns of the previous - Unicode character (most recent result of java_{get,peek}_unicode). */ - int next_columns; - - /* If nonzero, a value that was pushed back. This is a unicode character, - but (unlike next_unicode) is pre-'\uXXXX'-processing. It is also used - when a '\r' is *not* followed by a '\n'. */ - unicode_t unget_value; - - /* Name of the character encoding we're using. */ - const char *encoding; - - /* Current source position. */ - java_lc position; - -#ifndef USE_MAPPED_LOCATION - java_lc token_start; /* Error's line column info */ -#endif - -#ifdef HAVE_ICONV - /* Nonzero if we've read any bytes. We only recognize the - byte-order-marker (BOM) as the first word. */ - unsigned int read_anything : 1; - - /* Nonzero if we have to byte swap. */ - unsigned int byte_swap : 1; - - /* Nonzero if we're using the fallback decoder. */ - unsigned int use_fallback : 1; - - /* The handle for the iconv converter we're using. */ - iconv_t handle; - - /* Bytes we've read from the file but have not sent to iconv. */ - char buffer[1024]; - - /* Index of first valid character in buffer, -1 if no valid - characters. */ - int first; - - /* Index of last valid character in buffer, plus one. -1 if no - valid characters in buffer. */ - int last; - - /* This is a buffer of characters already converted by iconv. We - use `char' here because we're assuming that iconv() converts to - UCS-2, and then we convert it ourselves. */ - unsigned char out_buffer[1024]; - - /* Index of first valid output character. -1 if no valid - characters. */ - int out_first; - - /* Index of last valid output character, plus one. -1 if no valid - characters. */ - int out_last; - -#endif /* HAVE_ICONV */ -}; -typedef struct java_lexer java_lexer; - -/* Destroy a lexer object. */ -extern void java_destroy_lexer (java_lexer *); - -#define JAVA_LINE_MAX 80 - -/* Build a location compound integer */ -#ifdef USE_MAPPED_LOCATION -#define BUILD_LOCATION() input_location -#else -#define BUILD_LOCATION() ((ctxp->lexer->token_start.line << 12) \ - | (ctxp->lexer->token_start.col & 0xfff)) -#endif - -/* Those macros are defined differently if we compile jc1-lite - (JC1_LITE defined) or jc1. */ -#ifdef JC1_LITE - -#define DCONST0 0 -#define REAL_VALUE_TYPE int -#define GET_IDENTIFIER(S) xstrdup ((S)) -#define REAL_VALUE_ATOF(LIT,MODE) 0 -#define REAL_VALUE_ISINF(VALUE) 0 -#define REAL_VALUE_ISNAN(VALUE) 0 -#define SET_REAL_VALUE_ATOF(TARGET,SOURCE) -#define FLOAT_TYPE_NODE 0 -#define DOUBLE_TYPE_NODE 0 -#define SET_MODIFIER_CTX(TOKEN) java_lval->value = (TOKEN) -#define GET_TYPE_PRECISION(NODE) 4 -#define BUILD_OPERATOR(TOKEN) return TOKEN -#define BUILD_OPERATOR2(TOKEN) return ASSIGN_ANY_TK -#define SET_LVAL_NODE(NODE) -#define BUILD_ID_WFL(EXP) (EXP) -#define JAVA_FLOAT_RANGE_ERROR(S) {} -#define JAVA_RANGE_ERROR(S) do { } while (0) - -#else - -#define DCONST0 dconst0 -#define GET_IDENTIFIER(S) get_identifier ((S)) -#define SET_REAL_VALUE_ATOF(TARGET,SOURCE) (TARGET) = (SOURCE) -#define FLOAT_TYPE_NODE float_type_node -#define DOUBLE_TYPE_NODE double_type_node -/* Set modifier_ctx according to TOKEN */ -#define SET_MODIFIER_CTX(TOKEN) \ - { \ - ctxp->modifier_ctx [(TOKEN)-PUBLIC_TK] = build_wfl_node (NULL_TREE); \ - java_lval->value = (TOKEN)-PUBLIC_TK; \ - } -/* Type precision for long */ -#define GET_TYPE_PRECISION(NODE) TYPE_PRECISION (long_type_node) / 8; -/* Build an operator tree node and return TOKEN */ -#define BUILD_OPERATOR(TOKEN) \ - { \ - java_lval->operator.token = (TOKEN); \ - java_lval->operator.location = BUILD_LOCATION(); \ - return (TOKEN); \ - } - -/* Build an operator tree node but return ASSIGN_ANY_TK */ -#define BUILD_OPERATOR2(TOKEN) \ - { \ - java_lval->operator.token = (TOKEN); \ - java_lval->operator.location = BUILD_LOCATION(); \ - return ASSIGN_ANY_TK; \ - } -/* Set java_lval->node and TREE_TYPE(java_lval->node) in macros */ -#define SET_LVAL_NODE(NODE) java_lval->node = (NODE) -/* Wrap identifier around a wfl */ -#define BUILD_ID_WFL(EXP) build_wfl_node ((EXP)) -/* Special ways to report error on numeric literals */ -#define JAVA_FLOAT_RANGE_ERROR(m) \ - { \ - char *msg = XNEWVEC (char, 100 + strlen (m)); \ - sprintf (msg, "Floating point literal exceeds range of `%s'", (m)); \ - JAVA_RANGE_ERROR(msg); \ - free (msg); \ - } -#define JAVA_RANGE_ERROR(msg) \ - do { \ - int save_col = ctxp->lexer->position.col; \ - ctxp->lexer->position.col = number_beginning; \ - java_lex_error (msg, 0); \ - ctxp->lexer->position.col = save_col; \ - } while (0) - -#endif /* Definitions for jc1 compilation only */ - -/* Macros to decode character ranges */ -#define RANGE(c, l, h) (((c) >= l && (c) <= h)) -#define JAVA_WHITE_SPACE_P(c) (c == ' ' || c == '\t' || c == '\f') -#define JAVA_START_CHAR_P(c) ((c < 128 \ - && (ISIDST (c) || c == '$')) \ - || (c >= 128 && java_start_char_p (c))) -#define JAVA_PART_CHAR_P(c) ((c < 128 \ - && (ISIDNUM (c) \ - || c == '$' \ - || c == 0x0000 \ - || RANGE (c, 0x01, 0x08) \ - || RANGE (c, 0x0e, 0x1b) \ - || c == 0x7f)) \ - || (c >= 128 && java_part_char_p (c))) -#define JAVA_ASCII_DIGIT(c) ISDIGIT (c) -#define JAVA_ASCII_OCTDIGIT(c) RANGE (c, '0', '7') -#define JAVA_ASCII_HEXDIGIT(c) ISXDIGIT (c) -#define JAVA_ASCII_FPCHAR(c) (RANGE (c, 'd', 'f') || RANGE (c, 'D', 'F') || \ - c == '.' || JAVA_ASCII_DIGIT (c)) -#define JAVA_FP_SUFFIX(c) (c == 'D' || c == 'd' || c == 'f' || c == 'F') -#define JAVA_FP_EXP(c) (c == 'E' || c == 'F') -#define JAVA_FP_PM(c) (c == '-' || c == '+') -#define JAVA_ASCII_LETTER(c) ISALPHA (c) - -/* Constants */ -#define JAVA_READ_BUFFER 256 -#define JAVA_CHAR_ERROR -2 -#define UEOF -1 - -#endif /* ! GCC_JAVA_LEX_H */ diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c index 0fe5220b5b2..69a0898f8ad 100644 --- a/gcc/java/mangle.c +++ b/gcc/java/mangle.c @@ -1,6 +1,6 @@ /* Functions related to mangling class names for the GNU compiler for the Java(TM) language. - Copyright (C) 1998, 1999, 2001, 2002, 2003 + Copyright (C) 1998, 1999, 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc. This file is part of GCC. @@ -73,6 +73,167 @@ struct obstack *mangle_obstack; /* atms: array template mangled string. */ static GTY(()) tree atms; +static int +utf8_cmp (const unsigned char *str, int length, const char *name) +{ + const unsigned char *limit = str + length; + int i; + + for (i = 0; name[i]; ++i) + { + int ch = UTF8_GET (str, limit); + if (ch != name[i]) + return ch - name[i]; + } + + return str == limit ? 0 : 1; +} + +/* A sorted list of all C++ keywords. */ +static const char *const cxx_keywords[] = +{ + "_Complex", + "__alignof", + "__alignof__", + "__asm", + "__asm__", + "__attribute", + "__attribute__", + "__builtin_va_arg", + "__complex", + "__complex__", + "__const", + "__const__", + "__extension__", + "__imag", + "__imag__", + "__inline", + "__inline__", + "__label__", + "__null", + "__real", + "__real__", + "__restrict", + "__restrict__", + "__signed", + "__signed__", + "__typeof", + "__typeof__", + "__volatile", + "__volatile__", + "and", + "and_eq", + "asm", + "auto", + "bitand", + "bitor", + "bool", + "break", + "case", + "catch", + "char", + "class", + "compl", + "const", + "const_cast", + "continue", + "default", + "delete", + "do", + "double", + "dynamic_cast", + "else", + "enum", + "explicit", + "export", + "extern", + "false", + "float", + "for", + "friend", + "goto", + "if", + "inline", + "int", + "long", + "mutable", + "namespace", + "new", + "not", + "not_eq", + "operator", + "or", + "or_eq", + "private", + "protected", + "public", + "register", + "reinterpret_cast", + "return", + "short", + "signed", + "sizeof", + "static", + "static_cast", + "struct", + "switch", + "template", + "this", + "throw", + "true", + "try", + "typedef", + "typeid", + "typename", + "typeof", + "union", + "unsigned", + "using", + "virtual", + "void", + "volatile", + "wchar_t", + "while", + "xor", + "xor_eq" +}; + +/* Return true if NAME is a C++ keyword. */ +static int +cxx_keyword_p (const char *name, int length) +{ + int last = ARRAY_SIZE (cxx_keywords); + int first = 0; + int mid = (last + first) / 2; + int old = -1; + + for (mid = (last + first) / 2; + mid != old; + old = mid, mid = (last + first) / 2) + { + int kwl = strlen (cxx_keywords[mid]); + int min_length = kwl > length ? length : kwl; + int r = utf8_cmp ((const unsigned char *) name, min_length, cxx_keywords[mid]); + + if (r == 0) + { + int i; + /* We've found a match if all the remaining characters are `$'. */ + for (i = min_length; i < length && name[i] == '$'; ++i) + ; + if (i == length) + return 1; + r = 1; + } + + if (r < 0) + last = mid; + else + first = mid; + } + return 0; +} + /* This is the mangling interface: a decl, a class field (.class) and the vtable. */ diff --git a/gcc/java/parse-scan.y b/gcc/java/parse-scan.y deleted file mode 100644 index cedba9eb8e3..00000000000 --- a/gcc/java/parse-scan.y +++ /dev/null @@ -1,1377 +0,0 @@ -/* Parser grammar for quick source code scan of Java(TM) language programs. - Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -/* This file parses Java source code. Action can be further completed -to achieve a desired behavior. This file isn't part of the Java -language gcc front end. - -The grammar conforms to the Java grammar described in "The Java(TM) -Language Specification. J. Gosling, B. Joy, G. Steele. Addison Wesley -1996, ISBN 0-201-63451-1" - -Some rules have been modified to support JDK1.1 inner classes -definitions and other extensions. */ - -%{ -#define JC1_LITE - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "obstack.h" -#include "toplev.h" - -extern FILE *finput, *out; - - const char *main_input_filename; - -/* Obstack for the lexer. */ -struct obstack temporary_obstack; - -/* The current parser context. */ -struct parser_ctxt *ctxp; - -/* Error and warning counts, because they're used elsewhere */ -int java_error_count; -int java_warning_count; - -/* Tweak default rules when necessary. */ -static int absorber; -#define USE_ABSORBER absorber = 0 - -/* Keep track of the current package name. */ -static const char *package_name; - -/* Keep track of whether things have be listed before. */ -static int previous_output; - -/* Record modifier uses */ -static int modifier_value; - -/* Record (almost) cyclomatic complexity. */ -static int complexity; - -/* Keeps track of number of bracket pairs after a variable declarator - id. */ -static int bracket_count; - -/* Numbers anonymous classes */ -static int anonymous_count; - -/* This is used to record the current class context. */ -struct class_context -{ - char *name; - struct class_context *next; -}; - -/* The global class context. */ -static struct class_context *current_class_context; - -/* A special constant used to represent an anonymous context. */ -static const char *anonymous_context = "ANONYMOUS"; - -/* Count of method depth. */ -static int method_depth; - -/* Record a method declaration */ -struct method_declarator { - const char *method_name; - const char *args; -}; -#define NEW_METHOD_DECLARATOR(D,N,A) \ -{ \ - (D) = XNEW (struct method_declarator); \ - (D)->method_name = (N); \ - (D)->args = (A); \ -} - -/* Two actions for this grammar */ -static int make_class_name_recursive (struct obstack *stack, - struct class_context *ctx); -static char *get_class_name (void); -static void report_class_declaration (const char *); -static void report_main_declaration (struct method_declarator *); -static void push_class_context (const char *); -static void pop_class_context (void); - -void report (void); - -#include "lex.h" -#include "parse.h" -%} - -%union { - char *node; - struct method_declarator *declarator; - int value; /* For modifiers */ -} - -%{ -extern int flag_assert; - -#include "lex.c" -%} - -%pure_parser - -/* Things defined here have to match the order of what's in the - binop_lookup table. */ - -%token PLUS_TK MINUS_TK MULT_TK DIV_TK REM_TK -%token LS_TK SRS_TK ZRS_TK -%token AND_TK XOR_TK OR_TK -%token BOOL_AND_TK BOOL_OR_TK -%token EQ_TK NEQ_TK GT_TK GTE_TK LT_TK LTE_TK - -/* This maps to the same binop_lookup entry than the token above */ - -%token PLUS_ASSIGN_TK MINUS_ASSIGN_TK MULT_ASSIGN_TK DIV_ASSIGN_TK -%token REM_ASSIGN_TK -%token LS_ASSIGN_TK SRS_ASSIGN_TK ZRS_ASSIGN_TK -%token AND_ASSIGN_TK XOR_ASSIGN_TK OR_ASSIGN_TK - - -/* Modifier TOKEN have to be kept in this order. Don't scramble it */ - -%token PUBLIC_TK PRIVATE_TK PROTECTED_TK -%token STATIC_TK FINAL_TK SYNCHRONIZED_TK -%token VOLATILE_TK TRANSIENT_TK NATIVE_TK -%token PAD_TK ABSTRACT_TK MODIFIER_TK -%token STRICT_TK - -/* Keep those two in order, too */ -%token DECR_TK INCR_TK - -/* From now one, things can be in any order */ - -%token DEFAULT_TK IF_TK THROW_TK -%token BOOLEAN_TK DO_TK IMPLEMENTS_TK -%token THROWS_TK BREAK_TK IMPORT_TK -%token ELSE_TK INSTANCEOF_TK RETURN_TK -%token VOID_TK CATCH_TK INTERFACE_TK -%token CASE_TK EXTENDS_TK FINALLY_TK -%token SUPER_TK WHILE_TK CLASS_TK -%token SWITCH_TK CONST_TK TRY_TK -%token FOR_TK NEW_TK CONTINUE_TK -%token GOTO_TK PACKAGE_TK THIS_TK -%token ASSERT_TK - -%token BYTE_TK SHORT_TK INT_TK LONG_TK -%token CHAR_TK INTEGRAL_TK - -%token FLOAT_TK DOUBLE_TK FP_TK - -%token ID_TK - -%token REL_QM_TK REL_CL_TK NOT_TK NEG_TK - -%token ASSIGN_ANY_TK ASSIGN_TK -%token OP_TK CP_TK OCB_TK CCB_TK OSB_TK CSB_TK SC_TK C_TK DOT_TK - -%token STRING_LIT_TK CHAR_LIT_TK INT_LIT_TK FP_LIT_TK -%token TRUE_TK FALSE_TK BOOL_LIT_TK NULL_TK - -%type ID_TK identifier name simple_name qualified_name type - primitive_type reference_type array_type formal_parameter_list - formal_parameter class_or_interface_type class_type interface_type -%type method_declarator -%type MODIFIER_TK - -%% -/* 19.2 Production from 2.3: The Syntactic Grammar */ -goal: - compilation_unit -; - -/* 19.3 Productions from 3: Lexical structure */ -literal: - INT_LIT_TK -| FP_LIT_TK -| BOOL_LIT_TK -| CHAR_LIT_TK -| STRING_LIT_TK -| NULL_TK -; - -/* 19.4 Productions from 4: Types, Values and Variables */ -type: - primitive_type -| reference_type -; - -primitive_type: - INTEGRAL_TK - { - /* use preset global here. FIXME */ - $$ = xstrdup ("int"); - } -| FP_TK - { - /* use preset global here. FIXME */ - $$ = xstrdup ("double"); - } -| BOOLEAN_TK - { - /* use preset global here. FIXME */ - $$ = xstrdup ("boolean"); - } -; - -reference_type: - class_or_interface_type -| array_type -; - -class_or_interface_type: - name -; - -class_type: - class_or_interface_type /* Default rule */ -; - -interface_type: - class_or_interface_type -; - -array_type: - primitive_type dims - { - while (bracket_count-- > 0) - $$ = concat ("[", $1, NULL); - } -| name dims - { - while (bracket_count-- > 0) - $$ = concat ("[", $1, NULL); - } -; - -/* 19.5 Productions from 6: Names */ -name: - simple_name /* Default rule */ -| qualified_name /* Default rule */ -; - -simple_name: - identifier /* Default rule */ -; - -qualified_name: - name DOT_TK identifier - { - $$ = concat ($1, ".", $3, NULL); - } -; - -identifier: - ID_TK -; - -/* 19.6: Production from 7: Packages */ -compilation_unit: -| package_declaration -| import_declarations -| type_declarations -| package_declaration import_declarations -| package_declaration type_declarations -| import_declarations type_declarations -| package_declaration import_declarations type_declarations -; - -import_declarations: - import_declaration -| import_declarations import_declaration -; - -type_declarations: - type_declaration -| type_declarations type_declaration -; - -package_declaration: - PACKAGE_TK name SC_TK - { package_name = $2; } -; - -import_declaration: - single_type_import_declaration -| type_import_on_demand_declaration -; - -single_type_import_declaration: - IMPORT_TK name SC_TK -; - -type_import_on_demand_declaration: - IMPORT_TK name DOT_TK MULT_TK SC_TK -; - -type_declaration: - class_declaration -| interface_declaration -| empty_statement -; - -/* 19.7 Shortened from the original: - modifiers: modifier | modifiers modifier - modifier: any of public... */ -modifiers: - MODIFIER_TK - { - if ($1 == PUBLIC_TK) - modifier_value++; - if ($1 == STATIC_TK) - modifier_value++; - USE_ABSORBER; - } -| modifiers MODIFIER_TK - { - if ($2 == PUBLIC_TK) - modifier_value++; - if ($2 == STATIC_TK) - modifier_value++; - USE_ABSORBER; - } -; - -/* 19.8.1 Production from $8.1: Class Declaration */ -class_declaration: - modifiers CLASS_TK identifier super interfaces - { - report_class_declaration($3); - modifier_value = 0; - } - class_body -| CLASS_TK identifier super interfaces - { report_class_declaration($2); } - class_body -; - -super: -| EXTENDS_TK class_type -; - -interfaces: -| IMPLEMENTS_TK interface_type_list -; - -interface_type_list: - interface_type - { USE_ABSORBER; } -| interface_type_list C_TK interface_type - { USE_ABSORBER; } -; - -class_body: - OCB_TK CCB_TK - { pop_class_context (); } -| OCB_TK class_body_declarations CCB_TK - { pop_class_context (); } -; - -class_body_declarations: - class_body_declaration -| class_body_declarations class_body_declaration -; - -class_body_declaration: - class_member_declaration -| static_initializer -| constructor_declaration -| block /* Added, JDK1.1, instance initializer */ -; - -class_member_declaration: - field_declaration -| method_declaration -| class_declaration /* Added, JDK1.1 inner classes */ -| interface_declaration /* Added, JDK1.1 inner classes */ -| empty_statement -; - -/* 19.8.2 Productions from 8.3: Field Declarations */ -field_declaration: - type variable_declarators SC_TK - { USE_ABSORBER; } -| modifiers type variable_declarators SC_TK - { modifier_value = 0; } -; - -variable_declarators: - /* Should we use build_decl_list () instead ? FIXME */ - variable_declarator /* Default rule */ -| variable_declarators C_TK variable_declarator -; - -variable_declarator: - variable_declarator_id -| variable_declarator_id ASSIGN_TK variable_initializer -; - -variable_declarator_id: - identifier - { bracket_count = 0; USE_ABSORBER; } -| variable_declarator_id OSB_TK CSB_TK - { ++bracket_count; } -; - -variable_initializer: - expression -| array_initializer -; - -/* 19.8.3 Productions from 8.4: Method Declarations */ -method_declaration: - method_header - { ++method_depth; } - method_body - { --method_depth; } -; - -method_header: - type method_declarator throws - { USE_ABSORBER; } -| VOID_TK method_declarator throws -| modifiers type method_declarator throws - { modifier_value = 0; } -| modifiers VOID_TK method_declarator throws - { - report_main_declaration ($3); - modifier_value = 0; - } -; - -method_declarator: - identifier OP_TK CP_TK - { - struct method_declarator *d; - NEW_METHOD_DECLARATOR (d, $1, NULL); - $$ = d; - } -| identifier OP_TK formal_parameter_list CP_TK - { - struct method_declarator *d; - NEW_METHOD_DECLARATOR (d, $1, $3); - $$ = d; - } -| method_declarator OSB_TK CSB_TK -; - -formal_parameter_list: - formal_parameter -| formal_parameter_list C_TK formal_parameter - { - $$ = concat ($1, ",", $3, NULL); - } -; - -formal_parameter: - type variable_declarator_id - { - USE_ABSORBER; - if (bracket_count) - { - int i; - char *n = XNEWVEC (char, bracket_count + 1 + strlen ($$)); - for (i = 0; i < bracket_count; ++i) - n[i] = '['; - strcpy (n + bracket_count, $$); - $$ = n; - } - else - $$ = $1; - } -| modifiers type variable_declarator_id /* Added, JDK1.1 final locals */ - { - if (bracket_count) - { - int i; - char *n = XNEWVEC (char, bracket_count + 1 + strlen ($2)); - for (i = 0; i < bracket_count; ++i) - n[i] = '['; - strcpy (n + bracket_count, $2); - $$ = n; - } - else - $$ = $2; - } -; - -throws: -| THROWS_TK class_type_list -; - -class_type_list: - class_type - { USE_ABSORBER; } -| class_type_list C_TK class_type - { USE_ABSORBER; } -; - -method_body: - block -| SC_TK -; - -/* 19.8.4 Productions from 8.5: Static Initializers */ -static_initializer: - static block -; - -static: /* Test lval.sub_token here */ - MODIFIER_TK - { USE_ABSORBER; } -; - -/* 19.8.5 Productions from 8.6: Constructor Declarations */ -/* NOTE FOR FURTHER WORK ON CONSTRUCTORS: - - If a forbidden modifier is found, the error is either the use of - a forbidden modifier for a constructor OR bogus attempt to declare a - method without having specified the return type. FIXME */ -constructor_declaration: - constructor_declarator throws constructor_body -| modifiers constructor_declarator throws constructor_body - { modifier_value = 0; } -/* extra SC_TK, FIXME */ -| constructor_declarator throws constructor_body SC_TK -/* extra SC_TK, FIXME */ -| modifiers constructor_declarator throws constructor_body SC_TK - { modifier_value = 0; } -/* I'm not happy with the SC_TK addition. It isn't in the grammar and should - probably be matched by and empty statement. But it doesn't work. FIXME */ -; - -constructor_declarator: - simple_name OP_TK CP_TK - { USE_ABSORBER; } -| simple_name OP_TK formal_parameter_list CP_TK - { USE_ABSORBER; } -; - -constructor_body: - OCB_TK CCB_TK -| OCB_TK explicit_constructor_invocation CCB_TK -| OCB_TK block_statements CCB_TK -| OCB_TK explicit_constructor_invocation block_statements CCB_TK -; - -/* Error recovery for that rule moved down expression_statement: rule. */ -explicit_constructor_invocation: - this_or_super OP_TK CP_TK SC_TK -| this_or_super OP_TK argument_list CP_TK SC_TK - /* Added, JDK1.1 inner classes. Modified because the rule - 'primary' couldn't work. */ -| name DOT_TK SUPER_TK OP_TK argument_list CP_TK SC_TK - { USE_ABSORBER; } -| name DOT_TK SUPER_TK OP_TK CP_TK SC_TK - { USE_ABSORBER; } -; - -this_or_super: /* Added, simplifies error diagnostics */ - THIS_TK -| SUPER_TK -; - -/* 19.9 Productions from 9: Interfaces */ -/* 19.9.1 Productions from 9.1: Interfaces Declarations */ -interface_declaration: - INTERFACE_TK identifier - { report_class_declaration ($2); modifier_value = 0; } - interface_body -| modifiers INTERFACE_TK identifier - { report_class_declaration ($3); modifier_value = 0; } - interface_body -| INTERFACE_TK identifier extends_interfaces - { report_class_declaration ($2); modifier_value = 0; } - interface_body -| modifiers INTERFACE_TK identifier extends_interfaces - { report_class_declaration ($3); modifier_value = 0; } - interface_body -; - -extends_interfaces: - EXTENDS_TK interface_type -| extends_interfaces C_TK interface_type -; - -interface_body: - OCB_TK CCB_TK - { pop_class_context (); } -| OCB_TK interface_member_declarations CCB_TK - { pop_class_context (); } -; - -interface_member_declarations: - interface_member_declaration -| interface_member_declarations interface_member_declaration -; - -interface_member_declaration: - constant_declaration -| abstract_method_declaration -| class_declaration /* Added, JDK1.1 inner classes */ -| interface_declaration /* Added, JDK1.1 inner classes */ -| empty_statement -; - -constant_declaration: - field_declaration -; - -abstract_method_declaration: - method_header SC_TK -; - -/* 19.10 Productions from 10: Arrays */ -array_initializer: - OCB_TK CCB_TK -| OCB_TK variable_initializers CCB_TK -| OCB_TK C_TK CCB_TK -| OCB_TK variable_initializers C_TK CCB_TK -; - -variable_initializers: - variable_initializer -| variable_initializers C_TK variable_initializer -; - -/* 19.11 Production from 14: Blocks and Statements */ -block: - OCB_TK CCB_TK -| OCB_TK block_statements CCB_TK -; - -block_statements: - block_statement -| block_statements block_statement -; - -block_statement: - local_variable_declaration_statement -| statement -| class_declaration /* Added, JDK1.1 inner classes */ -; - -local_variable_declaration_statement: - local_variable_declaration SC_TK /* Can't catch missing ';' here */ -; - -local_variable_declaration: - type variable_declarators - { USE_ABSORBER; } -| modifiers type variable_declarators /* Added, JDK1.1 final locals */ - { modifier_value = 0; } -; - -statement: - statement_without_trailing_substatement -| labeled_statement -| if_then_statement -| if_then_else_statement -| while_statement -| for_statement -; - -statement_nsi: - statement_without_trailing_substatement -| labeled_statement_nsi -| if_then_else_statement_nsi -| while_statement_nsi -| for_statement_nsi -; - -statement_without_trailing_substatement: - block -| empty_statement -| expression_statement -| switch_statement -| do_statement -| break_statement -| continue_statement -| return_statement -| synchronized_statement -| throw_statement -| try_statement -| assert_statement -; - -empty_statement: - SC_TK -; - -label_decl: - identifier REL_CL_TK - { USE_ABSORBER; } -; - -labeled_statement: - label_decl statement -; - -labeled_statement_nsi: - label_decl statement_nsi -; - -/* We concentrate here a bunch of error handling rules that we couldn't write - earlier, because expression_statement catches a missing ';'. */ -expression_statement: - statement_expression SC_TK -; - -statement_expression: - assignment -| pre_increment_expression -| pre_decrement_expression -| post_increment_expression -| post_decrement_expression -| method_invocation -| class_instance_creation_expression -; - -if_then_statement: - IF_TK OP_TK expression CP_TK statement { ++complexity; } -; - -if_then_else_statement: - IF_TK OP_TK expression CP_TK statement_nsi ELSE_TK statement - { ++complexity; } -; - -if_then_else_statement_nsi: - IF_TK OP_TK expression CP_TK statement_nsi ELSE_TK statement_nsi - { ++complexity; } -; - -switch_statement: - SWITCH_TK OP_TK expression CP_TK switch_block -; - -switch_block: - OCB_TK CCB_TK -| OCB_TK switch_labels CCB_TK -| OCB_TK switch_block_statement_groups CCB_TK -| OCB_TK switch_block_statement_groups switch_labels CCB_TK -; - -switch_block_statement_groups: - switch_block_statement_group -| switch_block_statement_groups switch_block_statement_group -; - -switch_block_statement_group: - switch_labels block_statements { ++complexity; } -; - - -switch_labels: - switch_label -| switch_labels switch_label -; - -switch_label: - CASE_TK constant_expression REL_CL_TK -| DEFAULT_TK REL_CL_TK -; - -while_expression: - WHILE_TK OP_TK expression CP_TK { ++complexity; } -; - -while_statement: - while_expression statement -; - -while_statement_nsi: - while_expression statement_nsi -; - -do_statement_begin: - DO_TK -; - -do_statement: - do_statement_begin statement WHILE_TK OP_TK expression CP_TK SC_TK - { ++complexity; } -; - -for_statement: - for_begin SC_TK expression SC_TK for_update CP_TK statement -| for_begin SC_TK SC_TK for_update CP_TK statement -; - -for_statement_nsi: - for_begin SC_TK expression SC_TK for_update CP_TK statement_nsi -| for_begin SC_TK SC_TK for_update CP_TK statement_nsi -; - -for_header: - FOR_TK OP_TK -; - -for_begin: - for_header for_init { ++complexity; } -; -for_init: /* Can be empty */ -| statement_expression_list -| local_variable_declaration -; - -for_update: /* Can be empty */ -| statement_expression_list -; - -statement_expression_list: - statement_expression -| statement_expression_list C_TK statement_expression -; - -break_statement: - BREAK_TK SC_TK -| BREAK_TK identifier SC_TK -; - -/* `continue' with a label is considered for complexity but ordinary - continue is not. */ -continue_statement: - CONTINUE_TK SC_TK - | CONTINUE_TK identifier SC_TK { ++complexity; } -; - -return_statement: - RETURN_TK SC_TK -| RETURN_TK expression SC_TK -; - -throw_statement: - THROW_TK expression SC_TK { ++complexity; } -; - -assert_statement: - ASSERT_TK expression REL_CL_TK expression SC_TK -| ASSERT_TK expression SC_TK -| ASSERT_TK error - {yyerror ("Missing term"); RECOVER;} -| ASSERT_TK expression error - {yyerror ("';' expected"); RECOVER;} -; -synchronized_statement: - synchronized OP_TK expression CP_TK block -| synchronized OP_TK expression CP_TK error -; - -synchronized: /* Test lval.sub_token here */ - MODIFIER_TK - { USE_ABSORBER; } -; - -try_statement: - TRY_TK block catches -| TRY_TK block finally -| TRY_TK block catches finally -; - -catches: - catch_clause -| catches catch_clause -; - -catch_clause: - CATCH_TK OP_TK formal_parameter CP_TK block { ++complexity; } -; - -finally: - FINALLY_TK block { ++complexity; } -; - -/* 19.12 Production from 15: Expressions */ -primary: - primary_no_new_array -| array_creation_expression -; - -primary_no_new_array: - literal -| THIS_TK -| OP_TK expression CP_TK -| class_instance_creation_expression -| field_access -| method_invocation -| array_access -| type_literals - /* Added, JDK1.1 inner classes. Documentation is wrong - referring to a 'ClassName' (class_name) rule that doesn't - exist. Used name instead. */ -| name DOT_TK THIS_TK - { USE_ABSORBER; } -; - -type_literals: - name DOT_TK CLASS_TK - { USE_ABSORBER; } -| array_type DOT_TK CLASS_TK - { USE_ABSORBER; } -| primitive_type DOT_TK CLASS_TK - { USE_ABSORBER; } -| VOID_TK DOT_TK CLASS_TK - { USE_ABSORBER; } -; - -class_instance_creation_expression: - NEW_TK class_type OP_TK argument_list CP_TK -| NEW_TK class_type OP_TK CP_TK -| anonymous_class_creation -| something_dot_new identifier OP_TK CP_TK -| something_dot_new identifier OP_TK CP_TK class_body -| something_dot_new identifier OP_TK argument_list CP_TK -| something_dot_new identifier OP_TK argument_list CP_TK class_body -; - -anonymous_class_creation: - NEW_TK class_type OP_TK CP_TK - { report_class_declaration (anonymous_context); } - class_body -| NEW_TK class_type OP_TK argument_list CP_TK - { report_class_declaration (anonymous_context); } - class_body -; - -something_dot_new: /* Added, not part of the specs. */ - name DOT_TK NEW_TK - { USE_ABSORBER; } -| primary DOT_TK NEW_TK -; - -argument_list: - expression -| argument_list C_TK expression -| argument_list C_TK error -; - -array_creation_expression: - NEW_TK primitive_type dim_exprs -| NEW_TK class_or_interface_type dim_exprs -| NEW_TK primitive_type dim_exprs dims -| NEW_TK class_or_interface_type dim_exprs dims - /* Added, JDK1.1 anonymous array. Initial documentation rule - modified */ -| NEW_TK class_or_interface_type dims array_initializer -| NEW_TK primitive_type dims array_initializer -; - -dim_exprs: - dim_expr -| dim_exprs dim_expr -; - -dim_expr: - OSB_TK expression CSB_TK -; - -dims: - OSB_TK CSB_TK - { bracket_count = 1; } -| dims OSB_TK CSB_TK - { bracket_count++; } -; - -field_access: - primary DOT_TK identifier -| SUPER_TK DOT_TK identifier -; - -/* We include method invocation in the complexity measure on the - theory that most method calls are virtual and therefore involve a - decision point. */ -method_invocation: - name OP_TK CP_TK - { USE_ABSORBER; ++complexity; } -| name OP_TK argument_list CP_TK - { USE_ABSORBER; ++complexity; } -| primary DOT_TK identifier OP_TK CP_TK { ++complexity; } -| primary DOT_TK identifier OP_TK argument_list CP_TK { ++complexity; } -| SUPER_TK DOT_TK identifier OP_TK CP_TK { ++complexity; } -| SUPER_TK DOT_TK identifier OP_TK argument_list CP_TK { ++complexity; } -; - -array_access: - name OSB_TK expression CSB_TK - { USE_ABSORBER; } -| primary_no_new_array OSB_TK expression CSB_TK -; - -postfix_expression: - primary -| name - { USE_ABSORBER; } -| post_increment_expression -| post_decrement_expression -; - -post_increment_expression: - postfix_expression INCR_TK -; - -post_decrement_expression: - postfix_expression DECR_TK -; - -unary_expression: - pre_increment_expression -| pre_decrement_expression -| PLUS_TK unary_expression -| MINUS_TK unary_expression -| unary_expression_not_plus_minus -; - -pre_increment_expression: - INCR_TK unary_expression -; - -pre_decrement_expression: - DECR_TK unary_expression -; - -unary_expression_not_plus_minus: - postfix_expression -| NOT_TK unary_expression -| NEG_TK unary_expression -| cast_expression -; - -cast_expression: /* Error handling here is potentially weak */ - OP_TK primitive_type dims CP_TK unary_expression -| OP_TK primitive_type CP_TK unary_expression -| OP_TK expression CP_TK unary_expression_not_plus_minus -| OP_TK name dims CP_TK unary_expression_not_plus_minus -; - -multiplicative_expression: - unary_expression -| multiplicative_expression MULT_TK unary_expression -| multiplicative_expression DIV_TK unary_expression -| multiplicative_expression REM_TK unary_expression -; - -additive_expression: - multiplicative_expression -| additive_expression PLUS_TK multiplicative_expression -| additive_expression MINUS_TK multiplicative_expression -; - -shift_expression: - additive_expression -| shift_expression LS_TK additive_expression -| shift_expression SRS_TK additive_expression -| shift_expression ZRS_TK additive_expression -; - -relational_expression: - shift_expression -| relational_expression LT_TK shift_expression -| relational_expression GT_TK shift_expression -| relational_expression LTE_TK shift_expression -| relational_expression GTE_TK shift_expression -| relational_expression INSTANCEOF_TK reference_type -; - -equality_expression: - relational_expression -| equality_expression EQ_TK relational_expression -| equality_expression NEQ_TK relational_expression -; - -and_expression: - equality_expression -| and_expression AND_TK equality_expression -; - -exclusive_or_expression: - and_expression -| exclusive_or_expression XOR_TK and_expression -; - -inclusive_or_expression: - exclusive_or_expression -| inclusive_or_expression OR_TK exclusive_or_expression -; - -conditional_and_expression: - inclusive_or_expression -| conditional_and_expression BOOL_AND_TK inclusive_or_expression - { ++complexity; } -; - -conditional_or_expression: - conditional_and_expression -| conditional_or_expression BOOL_OR_TK conditional_and_expression - { ++complexity; } -; - -conditional_expression: /* Error handling here is weak */ - conditional_or_expression -| conditional_or_expression REL_QM_TK expression REL_CL_TK conditional_expression - { ++complexity; } -; - -assignment_expression: - conditional_expression -| assignment -; - -assignment: - left_hand_side assignment_operator assignment_expression -; - -left_hand_side: - name - { USE_ABSORBER; } -| field_access -| array_access -; - -assignment_operator: - ASSIGN_ANY_TK -| ASSIGN_TK -; - -expression: - assignment_expression -; - -constant_expression: - expression -; - -%% - -/* Create a new parser context */ - -void -java_push_parser_context (void) -{ - struct parser_ctxt *tmp = XCNEW (struct parser_ctxt); - - tmp->next = ctxp; - ctxp = tmp; -} - -static void -push_class_context (const char *name) -{ - struct class_context *ctx; - - ctx = XNEW (struct class_context); - ctx->name = (char *) name; - ctx->next = current_class_context; - current_class_context = ctx; -} - -static void -pop_class_context (void) -{ - struct class_context *ctx; - - if (current_class_context == NULL) - return; - - ctx = current_class_context->next; - if (current_class_context->name != anonymous_context) - free (current_class_context->name); - free (current_class_context); - - current_class_context = ctx; - if (current_class_context == NULL) - anonymous_count = 0; -} - -/* Recursively construct the class name. This is just a helper - function for get_class_name(). */ -static int -make_class_name_recursive (struct obstack *stack, struct class_context *ctx) -{ - if (! ctx) - return 0; - - make_class_name_recursive (stack, ctx->next); - - /* Replace an anonymous context with the appropriate counter value. */ - if (ctx->name == anonymous_context) - { - char buf[50]; - ++anonymous_count; - sprintf (buf, "%d", anonymous_count); - ctx->name = xstrdup (buf); - } - - obstack_grow (stack, ctx->name, strlen (ctx->name)); - obstack_1grow (stack, '$'); - - return ISDIGIT (ctx->name[0]); -} - -/* Return a newly allocated string holding the name of the class. */ -static char * -get_class_name (void) -{ - char *result; - int last_was_digit; - struct obstack name_stack; - - obstack_init (&name_stack); - - /* Duplicate the logic of parse.y:maybe_make_nested_class_name(). */ - last_was_digit = make_class_name_recursive (&name_stack, - current_class_context->next); - - if (! last_was_digit - && method_depth - && current_class_context->name != anonymous_context) - { - char buf[50]; - ++anonymous_count; - sprintf (buf, "%d", anonymous_count); - obstack_grow (&name_stack, buf, strlen (buf)); - obstack_1grow (&name_stack, '$'); - } - - if (current_class_context->name == anonymous_context) - { - char buf[50]; - ++anonymous_count; - sprintf (buf, "%d", anonymous_count); - current_class_context->name = xstrdup (buf); - obstack_grow0 (&name_stack, buf, strlen (buf)); - } - else - obstack_grow0 (&name_stack, current_class_context->name, - strlen (current_class_context->name)); - - result = xstrdup (obstack_finish (&name_stack)); - obstack_free (&name_stack, NULL); - - return result; -} - -/* Actions defined here */ - -static void -report_class_declaration (const char * name) -{ - extern int flag_dump_class, flag_list_filename; - - push_class_context (name); - if (flag_dump_class) - { - char *name = get_class_name (); - - if (!previous_output) - { - if (flag_list_filename) - fprintf (out, "%s: ", main_input_filename); - previous_output = 1; - } - - if (package_name) - fprintf (out, "%s.%s ", package_name, name); - else - fprintf (out, "%s ", name); - - free (name); - } -} - -static void -report_main_declaration (struct method_declarator *declarator) -{ - extern int flag_find_main; - - if (flag_find_main - && modifier_value == 2 - && !strcmp (declarator->method_name, "main") - && declarator->args - && declarator->args [0] == '[' - && (! strcmp (declarator->args+1, "String") - || ! strcmp (declarator->args + 1, "java.lang.String")) - && current_class_context) - { - if (!previous_output) - { - char *name = get_class_name (); - if (package_name) - fprintf (out, "%s.%s ", package_name, name); - else - fprintf (out, "%s", name); - free (name); - previous_output = 1; - } - } -} - -void -report (void) -{ - extern int flag_complexity; - if (flag_complexity) - fprintf (out, "%s %d\n", main_input_filename, complexity); -} - -/* Reset global status used by the report functions. */ - -void -reset_report (void) -{ - previous_output = 0; - package_name = NULL; - current_class_context = NULL; - complexity = 0; -} - -void -yyerror (const char *msg ATTRIBUTE_UNUSED) -{ - fprintf (stderr, "%s: %s\n", main_input_filename, msg); - exit (1); -} - -#ifdef __XGETTEXT__ -/* Depending on the version of Bison used to compile this grammar, - it may issue generic diagnostics spelled "syntax error" or - "parse error". To prevent this from changing the translation - template randomly, we list all the variants of this particular - diagnostic here. Translators: there is no fine distinction - between diagnostics with "syntax error" in them, and diagnostics - with "parse error" in them. It's okay to give them both the same - translation. */ -const char d1[] = N_("syntax error"); -const char d2[] = N_("parse error"); -const char d3[] = N_("syntax error; also virtual memory exhausted"); -const char d4[] = N_("parse error; also virtual memory exhausted"); -const char d5[] = N_("syntax error: cannot back up"); -const char d6[] = N_("parse error: cannot back up"); -#endif diff --git a/gcc/java/parse.h b/gcc/java/parse.h dissimilarity index 92% index 6b14ffe871e..74831714ddc 100644 --- a/gcc/java/parse.h +++ b/gcc/java/parse.h @@ -1,968 +1,73 @@ -/* Language parser definitions for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -#ifndef GCC_JAVA_PARSE_H -#define GCC_JAVA_PARSE_H - -#include "lex.h" - -/* Extern global variable declarations */ -extern int java_error_count; -extern struct obstack temporary_obstack; -extern int quiet_flag; - -#ifndef JC1_LITE -/* Function extern to java/ */ -extern int int_fits_type_p (tree, tree); -extern tree stabilize_reference (tree); -#endif - -/* Macros for verbose debug info */ -#ifdef VERBOSE_SKELETON -#define RULE( rule ) printf ( "jv_yacc:%d: rule %s\n", lineno, rule ) -#else -#define RULE( rule ) -#endif - -#ifdef VERBOSE_SKELETON -#undef SOURCE_FRONTEND_DEBUG -#define SOURCE_FRONTEND_DEBUG(X) \ - {if (!quiet_flag) {printf ("* "); printf X; putchar ('\n');} } -#else -#define SOURCE_FRONTEND_DEBUG(X) -#endif - -/* Macro for error recovering */ -#ifdef YYDEBUG -#define RECOVERED \ - { if (!quiet_flag) {printf ("** Recovered\n");} } -#define DRECOVERED(s) \ - { if (!quiet_flag) {printf ("** Recovered (%s)\n", #s);}} -#else -#define RECOVERED -#define DRECOVERED(s) -#endif - -#define DRECOVER(s) {yyerrok; DRECOVERED(s);} -#define RECOVER {yyerrok; RECOVERED;} - -#define YYERROR_NOW ctxp->java_error_flag = 1 -#define YYNOT_TWICE if (ctxp->prevent_ese != input_line) - -/* Accepted modifiers */ -#define CLASS_MODIFIERS ACC_PUBLIC|ACC_ABSTRACT|ACC_FINAL|ACC_STRICT -#define FIELD_MODIFIERS ACC_PUBLIC|ACC_PROTECTED|ACC_PRIVATE|ACC_FINAL| \ - ACC_STATIC|ACC_TRANSIENT|ACC_VOLATILE -#define METHOD_MODIFIERS ACC_PUBLIC|ACC_PROTECTED|ACC_PRIVATE|ACC_ABSTRACT| \ - ACC_STATIC|ACC_FINAL|ACC_SYNCHRONIZED|ACC_NATIVE| \ - ACC_STRICT -#define INTERFACE_MODIFIERS ACC_PUBLIC|ACC_ABSTRACT|ACC_STRICT -#define INTERFACE_INNER_MODIFIERS ACC_PUBLIC|ACC_PROTECTED|ACC_ABSTRACT| \ - ACC_STATIC|ACC_PRIVATE -#define INTERFACE_METHOD_MODIFIERS ACC_PUBLIC|ACC_ABSTRACT -#define INTERFACE_FIELD_MODIFIERS ACC_PUBLIC|ACC_STATIC|ACC_FINAL - -/* Getting a modifier WFL */ -#define MODIFIER_WFL(M) (ctxp->modifier_ctx [(M) - PUBLIC_TK]) - -/* Check on modifiers */ -#ifdef USE_MAPPED_LOCATION -#define THIS_MODIFIER_ONLY(f, m, v, count, l) \ - if ((f) & (m)) \ - { \ - tree node = MODIFIER_WFL (v); \ - if (!l) \ - l = node; \ - else \ - { \ - expanded_location lloc = expand_location (EXPR_LOCATION (l)); \ - expanded_location nloc = expand_location (EXPR_LOCATION (node)); \ - if (nloc.column > lloc.column || nloc.line > lloc.line) \ - l = node; \ - } \ - count++; \ - } -#else -#define THIS_MODIFIER_ONLY(f, m, v, count, l) \ - if ((f) & (m)) \ - { \ - tree node = MODIFIER_WFL (v); \ - if ((l) \ - && ((EXPR_WFL_COLNO (node) > EXPR_WFL_COLNO (l)) \ - || (EXPR_WFL_LINENO (node) > EXPR_WFL_LINENO (l)))) \ - l = node; \ - else if (!(l)) \ - l = node; \ - count++; \ - } -#endif - -#ifdef ATTRIBUTE_GCC_DIAG -extern void parse_error_context (tree cl, const char *gmsgid, ...) ATTRIBUTE_GCC_DIAG(2,3); -#endif - -#define ABSTRACT_CHECK(FLAG, V, CL, S) \ - if ((FLAG) & (V)) \ - parse_error_context ((CL), "%s method can't be abstract", (S)); - -#define JCONSTRUCTOR_CHECK(FLAG, V, CL, S) \ - if ((FLAG) & (V)) \ - parse_error_context ((CL), "Constructor can't be %s", (S)); \ - -/* Misc. */ -#define exit_java_complete_class() \ - { \ - return; \ - } - -#define CLASS_OR_INTERFACE(decl, s1, s2) \ - (decl ? \ - ((get_access_flags_from_decl (TYPE_NAME (TREE_TYPE (decl))) \ - & ACC_INTERFACE) ? \ - s2 : s1) : ((s1 [0]=='S'|| s1 [0]=='s') ? \ - (s1 [0]=='S' ? "Supertype" : "supertype") : \ - (s1 [0] > 'A' ? "Type" : "type"))) - -#define GET_REAL_TYPE(TYPE) \ - (TREE_CODE (TYPE) == TREE_LIST ? TREE_PURPOSE (TYPE) : TYPE) - -/* Get TYPE name string, regardless whether TYPE is a class or an - array. */ -#define GET_TYPE_NAME(TYPE) \ - (TREE_CODE (TYPE_NAME (TYPE)) == IDENTIFIER_NODE ? \ - IDENTIFIER_POINTER (TYPE_NAME (TYPE)) : \ - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (TYPE)))) - -/* Pedantic warning on obsolete modifiers. Note: when cl is NULL, - flags was set artificially, such as for an interface method. */ -#define OBSOLETE_MODIFIER_WARNING(cl, flags, __modifier, arg) \ - { \ - if (flag_redundant && (cl) && ((flags) & (__modifier))) \ - parse_warning_context (cl, \ - "Discouraged redundant use of %qs modifier in declaration of %s", \ - java_accstring_lookup (__modifier), arg); \ - } -#define OBSOLETE_MODIFIER_WARNING2(cl, flags, __modifier, arg1, arg2) \ - { \ - if (flag_redundant && (cl) && ((flags) & (__modifier))) \ - parse_warning_context (cl, \ - "Discouraged redundant use of %qs modifier in declaration of %s %qs", \ - java_accstring_lookup (__modifier), arg1, arg2);\ - } - -/* Quickly build a temporary pointer on hypothetical type NAME. */ -#define BUILD_PTR_FROM_NAME(ptr, name) \ - do { \ - ptr = make_node (POINTER_TYPE); \ - TYPE_NAME (ptr) = name; \ - } while (0) - -#define INCOMPLETE_TYPE_P(NODE) \ - ((TREE_CODE (NODE) == POINTER_TYPE) \ - && !TREE_TYPE (NODE) \ - && TREE_CODE (TYPE_NAME (NODE)) == IDENTIFIER_NODE) - -#ifndef USE_MAPPED_LOCATION -/* Set the EMIT_LINE_NOTE flag of a EXPR_WLF to 1 if debug information - are requested. Works in the context of a parser rule. */ -#define JAVA_MAYBE_GENERATE_DEBUG_INFO(node) \ - do {if (debug_info_level != DINFO_LEVEL_NONE) \ - EXPR_WFL_EMIT_LINE_NOTE (node) = 1; } while (0) -#endif - -/* Types classification, according to the JLS, section 4.2 */ -#define JFLOAT_TYPE_P(TYPE) (TYPE && TREE_CODE ((TYPE)) == REAL_TYPE) -#define JINTEGRAL_TYPE_P(TYPE) ((TYPE) \ - && (TREE_CODE ((TYPE)) == INTEGER_TYPE)) -#define JNUMERIC_TYPE_P(TYPE) ((TYPE) \ - && (JFLOAT_TYPE_P ((TYPE)) \ - || JINTEGRAL_TYPE_P ((TYPE)))) -#define JPRIMITIVE_TYPE_P(TYPE) ((TYPE) \ - && (JNUMERIC_TYPE_P ((TYPE)) \ - || TREE_CODE ((TYPE)) == BOOLEAN_TYPE)) - -#define JBSC_TYPE_P(TYPE) ((TYPE) && (((TYPE) == byte_type_node) \ - || ((TYPE) == short_type_node) \ - || ((TYPE) == char_type_node))) - -/* Not defined in the LRM */ -#define JSTRING_TYPE_P(TYPE) ((TYPE) \ - && ((TYPE) == string_type_node || \ - (TREE_CODE (TYPE) == POINTER_TYPE && \ - TREE_TYPE (TYPE) == string_type_node))) -#define JSTRING_P(NODE) ((NODE) \ - && (TREE_CODE (NODE) == STRING_CST \ - || IS_CRAFTED_STRING_BUFFER_P (NODE) \ - || JSTRING_TYPE_P (TREE_TYPE (NODE)))) - -#define JREFERENCE_TYPE_P(TYPE) ((TYPE) \ - && (TREE_CODE (TYPE) == RECORD_TYPE \ - || (TREE_CODE (TYPE) == POINTER_TYPE \ - && TREE_CODE (TREE_TYPE (TYPE)) == \ - RECORD_TYPE))) -#define JNULLP_TYPE_P(TYPE) ((TYPE) && (TREE_CODE (TYPE) == POINTER_TYPE) \ - && (TYPE) == TREE_TYPE (null_pointer_node)) - -/* Other predicates */ -#define JDECL_P(NODE) (NODE && (TREE_CODE (NODE) == PARM_DECL \ - || TREE_CODE (NODE) == VAR_DECL \ - || TREE_CODE (NODE) == FIELD_DECL)) - -#define TYPE_INTERFACE_P(TYPE) \ - (CLASS_P (TYPE) && CLASS_INTERFACE (TYPE_NAME (TYPE))) - -#define TYPE_CLASS_P(TYPE) (CLASS_P (TYPE) \ - && !CLASS_INTERFACE (TYPE_NAME (TYPE))) - -/* Identifier business related to 1.1 language extensions. */ - -#define IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS(NODE) \ - (TREE_CODE (NODE) == IDENTIFIER_NODE && \ - IDENTIFIER_LENGTH (NODE) >= 8 && \ - IDENTIFIER_POINTER (NODE)[7] != '0') - -/* Build the string val$ and store it into N. The is used to - construct the name of inner class hidden fields used to alias outer - scope local variables. */ -#define MANGLE_OUTER_LOCAL_VARIABLE_NAME(N, O) \ - { \ - char *mangled_name; \ - obstack_grow (&temporary_obstack, "val$", 4); \ - obstack_grow (&temporary_obstack, \ - IDENTIFIER_POINTER ((O)), IDENTIFIER_LENGTH ((O))); \ - obstack_1grow (&temporary_obstack, '\0'); \ - mangled_name = obstack_finish (&temporary_obstack); \ - (N) = get_identifier (mangled_name); \ - obstack_free (&temporary_obstack, mangled_name); \ - } - -/* Build the string parm$ and store in into the identifier N. This - is used to construct the name of hidden parameters used to - initialize outer scope aliases. */ -#define MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID(N, O) \ - { \ - char *mangled_name; \ - obstack_grow (&temporary_obstack, "parm$", 5); \ - obstack_grow (&temporary_obstack, \ - IDENTIFIER_POINTER ((O)), IDENTIFIER_LENGTH ((O))); \ - obstack_1grow (&temporary_obstack, '\0'); \ - mangled_name = obstack_finish (&temporary_obstack); \ - (N) = get_identifier (mangled_name); \ - obstack_free (&temporary_obstack, mangled_name); \ - } - -#define MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR(N, S) \ - { \ - char *mangled_name; \ - obstack_grow (&temporary_obstack, "parm$", 5); \ - obstack_grow (&temporary_obstack, (S), strlen ((S))); \ - obstack_1grow (&temporary_obstack, '\0'); \ - mangled_name = obstack_finish (&temporary_obstack); \ - (N) = get_identifier (mangled_name); \ - obstack_free (&temporary_obstack, mangled_name); \ - } - -/* Skip THIS and artificial parameters found in function decl M and - assign the result to C. We don't do that for $finit$, since it's - knowingly called with artificial parms. */ -#define SKIP_THIS_AND_ARTIFICIAL_PARMS(C,M) \ - { \ - int i; \ - (C) = TYPE_ARG_TYPES (TREE_TYPE ((M))); \ - if (!METHOD_STATIC ((M))) \ - (C) = TREE_CHAIN (C); \ - if (DECL_CONSTRUCTOR_P ((M)) \ - && PURE_INNER_CLASS_TYPE_P (DECL_CONTEXT ((M)))) \ - (C) = TREE_CHAIN (C); \ - if (!DECL_FINIT_P ((M))) \ - for (i = DECL_FUNCTION_NAP ((M)); i; i--) \ - (C) = TREE_CHAIN (C); \ - } - -/* Mark final parameters in method M, by comparison of the argument - list L. This macro is used to set the flag once the method has been - build. */ -#define MARK_FINAL_PARMS(M, L) \ - { \ - tree current = TYPE_ARG_TYPES (TREE_TYPE ((M))); \ - tree list = (L); \ - if (!METHOD_STATIC ((M))) \ - current = TREE_CHAIN (current); \ - for (; current != end_params_node; \ - current = TREE_CHAIN (current), list = TREE_CHAIN (list)) \ - ARG_FINAL_P (current) = ARG_FINAL_P (list); \ - if (current != list) \ - abort (); \ - } - -/* Reset the ARG_FINAL_P that might have been set in method M args. */ -#define UNMARK_FINAL_PARMS(M) \ - { \ - tree current; \ - for (current = TYPE_ARG_TYPES (TREE_TYPE ((M))); \ - current != end_params_node; current = TREE_CHAIN (current)) \ - ARG_FINAL_P (current) = 0; \ - } - -/* Reverse a crafted parameter list as required. */ -#define CRAFTED_PARAM_LIST_FIXUP(P) \ - { \ - if ((P)) \ - { \ - tree last = (P); \ - (P) = nreverse (P); \ - TREE_CHAIN (last) = end_params_node; \ - } \ - else \ - (P) = end_params_node; \ - } - -/* Modes governing the creation of a alias initializer parameter - lists. AIPL stands for Alias Initializer Parameter List. */ -enum { - AIPL_FUNCTION_CREATION, /* Suitable for artificial method creation */ - AIPL_FUNCTION_DECLARATION, /* Suitable for declared methods */ - AIPL_FUNCTION_CTOR_INVOCATION, /* Invocation of constructors */ - AIPL_FUNCTION_FINIT_INVOCATION /* Invocation of $finit$ */ -}; - -/* Standard error messages */ -#define ERROR_CANT_CONVERT_TO_BOOLEAN(OPERATOR, NODE, TYPE) \ - parse_error_context ((OPERATOR), \ - "Incompatible type for %qs. Can't convert %qs to boolean", \ - operator_string ((NODE)), lang_printable_name ((TYPE),0)) - -#define ERROR_CANT_CONVERT_TO_NUMERIC(OPERATOR, NODE, TYPE) \ - parse_error_context ((OPERATOR), \ - "Incompatible type for %qs. Can't convert %qs to numeric type", \ - operator_string ((NODE)), lang_printable_name ((TYPE), 0)) - -#define ERROR_CAST_NEEDED_TO_INTEGRAL(OPERATOR, NODE, TYPE) \ -do { \ - tree _operator = (OPERATOR), _node = (NODE), _type = (TYPE); \ - if (JPRIMITIVE_TYPE_P (_type)) \ - parse_error_context (_operator, \ -"Incompatible type for %qs. Explicit cast needed to convert %qs to integral",\ - operator_string(_node), \ - lang_printable_name (_type, 0)); \ - else \ - parse_error_context (_operator, \ - "Incompatible type for %qs. Can't convert %qs to integral", \ - operator_string(_node), \ - lang_printable_name (_type, 0)); \ -} while (0) - -#define ERROR_VARIABLE_NOT_INITIALIZED(WFL, V) \ - parse_error_context \ - ((WFL), "Variable %qs may not have been initialized", \ - IDENTIFIER_POINTER (V)) - -/* Definition for loop handling. This is Java's own definition of a - loop body. See parse.y for documentation. It's valid once you hold - a loop's body (LOOP_EXPR_BODY) */ - -/* The loop main block is the one hold the condition and the loop body */ -#define LOOP_EXPR_BODY_MAIN_BLOCK(NODE) TREE_OPERAND (NODE, 0) -/* And then there is the loop update block */ -#define LOOP_EXPR_BODY_UPDATE_BLOCK(NODE) TREE_OPERAND (NODE, 1) - -/* Inside the loop main block, there is the loop condition and the - loop body. They may be reversed if the loop being described is a - do-while loop. NOTE: if you use a WFL around the EXIT_EXPR so you - can issue debug info for it, the EXIT_EXPR will be one operand - further. */ -#define LOOP_EXPR_BODY_CONDITION_EXPR(NODE, R) \ - TREE_OPERAND (LOOP_EXPR_BODY_MAIN_BLOCK (NODE), (R ? 1 : 0)) - -/* Here is the labeled block the loop real body is encapsulated in */ -#define LOOP_EXPR_BODY_LABELED_BODY(NODE, R) \ - TREE_OPERAND (LOOP_EXPR_BODY_MAIN_BLOCK (NODE), (R ? 0 : 1)) -/* And here is the loop's real body */ -#define LOOP_EXPR_BODY_BODY_EXPR(NODE, R) \ - LABELED_BLOCK_BODY (LOOP_EXPR_BODY_LABELED_BODY(NODE, R)) - -#define PUSH_LABELED_BLOCK(B) \ - { \ - TREE_CHAIN (B) = ctxp->current_labeled_block; \ - ctxp->current_labeled_block = (B); \ - } -#define POP_LABELED_BLOCK() \ - ctxp->current_labeled_block = TREE_CHAIN (ctxp->current_labeled_block) - -#define PUSH_LOOP(L) \ - { \ - TREE_CHAIN (L) = ctxp->current_loop; \ - ctxp->current_loop = (L); \ - } -#define POP_LOOP() ctxp->current_loop = TREE_CHAIN (ctxp->current_loop) - -#define PUSH_EXCEPTIONS(E) \ - currently_caught_type_list = \ - tree_cons (NULL_TREE, (E), currently_caught_type_list); - -#define POP_EXCEPTIONS() \ - currently_caught_type_list = TREE_CHAIN (currently_caught_type_list) - -/* Check that we're inside a try block. */ -#define IN_TRY_BLOCK_P() \ - (currently_caught_type_list \ - && ((TREE_VALUE (currently_caught_type_list) != \ - DECL_FUNCTION_THROWS (current_function_decl)) \ - || TREE_CHAIN (currently_caught_type_list))) - -/* Check that we have exceptions in E. */ -#define EXCEPTIONS_P(E) ((E) ? TREE_VALUE (E) : NULL_TREE) - -/* Anonymous array access */ -#define ANONYMOUS_ARRAY_BASE_TYPE(N) TREE_OPERAND ((N), 0) -#define ANONYMOUS_ARRAY_DIMS_SIG(N) TREE_OPERAND ((N), 1) -#define ANONYMOUS_ARRAY_INITIALIZER(N) TREE_OPERAND ((N), 2) - -/* Invocation modes, as returned by invocation_mode (). */ -enum { - INVOKE_STATIC, - INVOKE_NONVIRTUAL, - INVOKE_SUPER, - INVOKE_INTERFACE, - INVOKE_VIRTUAL -}; - -/* Unresolved type identifiers handling. When we process the source - code, we blindly accept an unknown type identifier and try to - resolve it later. When an unknown type identifier is encountered - and used, we record in a struct jdep element what the incomplete - type is and what it should patch. Later, java_complete_class will - process all classes known to have unresolved type - dependencies. Within each of these classes, this routine will - process unresolved type dependencies (JDEP_TO_RESOLVE), patch what - needs to be patched in the dependent tree node (JDEP_GET_PATCH, - JDEP_APPLY_PATCH) and perform other actions dictated by the context - of the patch (JDEP_KIND). The ideas are: we patch only what needs - to be patched, and with java_complete_class called at the right - time, we will start processing incomplete function bodies tree - nodes with everything external to function's bodies already - completed, it makes things much simpler. */ - -enum jdep_code { - JDEP_NO_PATCH, /* Must be first */ - JDEP_SUPER, /* Patch the type of one type - supertype. Requires some check - before it's done */ - JDEP_FIELD, /* Patch the type of a class field */ - - /* JDEP_{METHOD,METHOD_RETURN,METHOD_END} to be kept in order */ - JDEP_METHOD, /* Mark the beginning of the patching - of a method declaration, including - it's arguments */ - JDEP_METHOD_RETURN, /* Mark the beginning of the patching - of a method declaration. Arguments - aren't patched, only the returned - type is */ - JDEP_METHOD_END, /* Mark the end of the patching of a - method declaration. It indicates - that it's time to compute and - install a new signature */ - - JDEP_INTERFACE, /* Patch the type of a Class/interface - extension */ - JDEP_VARIABLE, /* Patch the type of a variable declaration */ - JDEP_PARM, /* Patch the type of a parm declaration */ - JDEP_TYPE, /* Patch a random tree node type, - without the need for any specific - actions */ - JDEP_EXCEPTION, /* Patch exceptions specified by `throws' */ - JDEP_ANONYMOUS /* Patch anonymous classes - (implementation or extension.) */ - -}; - -typedef struct _jdep { - ENUM_BITFIELD(jdep_code) kind : 8; /* Type of patch */ - - unsigned int flag0 : 1; /* Some flags */ - tree decl; /* Tied decl/or WFL */ - tree solv; /* What to solve */ - tree wfl; /* Where thing to resolve where found */ - tree misc; /* Miscellaneous info (optional). */ - tree enclosing; /* The enclosing (current) class */ - tree *patch; /* Address of a location to patch */ - struct _jdep *next; /* Linked list */ -} jdep; - - -#define JDEP_DECL(J) ((J)->decl) -#define JDEP_DECL_WFL(J) ((J)->decl) -#define JDEP_KIND(J) ((J)->kind) -#define JDEP_WFL(J) ((J)->wfl) -#define JDEP_MISC(J) ((J)->misc) -#define JDEP_ENCLOSING(J) ((J)->enclosing) -#define JDEP_CLASS(J) ((J)->class) -#define JDEP_APPLY_PATCH(J,P) (*(J)->patch = (P)) -#define JDEP_GET_PATCH(J) ((J)->patch) -#define JDEP_CHAIN(J) ((J)->next) -#define JDEP_TO_RESOLVE(J) ((J)->solv) -#define JDEP_RESOLVED_DECL(J) ((J)->solv) -#define JDEP_RESOLVED(J, D) ((J)->solv = D) -#define JDEP_RESOLVED_P(J) \ - (!(J)->solv || TREE_CODE ((J)->solv) != POINTER_TYPE) - -struct jdeplist_s { - jdep *first; - jdep *last; - struct jdeplist_s *next; -}; -typedef struct jdeplist_s jdeplist; - -#define CLASSD_FIRST(CD) ((CD)->first) -#define CLASSD_LAST(CD) ((CD)->last) -#define CLASSD_CHAIN(CD) ((CD)->next) - -#define JDEP_INSERT(L,J) \ - { \ - if (!(L)->first) \ - (L)->last = (L)->first = (J); \ - else \ - { \ - JDEP_CHAIN ((L)->last) = (J); \ - (L)->last = (J); \ - } \ - } - -/* if TYPE can't be resolved, obtain something suitable for its - resolution (TYPE is saved in SAVE before being changed). and set - CHAIN to 1. Otherwise, type is set to something usable. CHAIN is - usually used to determine that a new DEP must be installed on TYPE. - Note that when compiling java.lang.Object, references to Object are - java.lang.Object. */ -#define SET_TYPE_FOR_RESOLUTION(TYPE, SAVE, CHAIN) \ - { \ - tree _returned_type; \ - (CHAIN) = 0; \ - if (TREE_TYPE (GET_CPC ()) == object_type_node \ - && TREE_CODE (TYPE) == EXPR_WITH_FILE_LOCATION \ - && EXPR_WFL_NODE (TYPE) == unqualified_object_id_node) \ - (TYPE) = object_type_node; \ - else \ - { \ - if (unresolved_type_p (type, &_returned_type)) \ - { \ - if (_returned_type) \ - (TYPE) = _returned_type; \ - else \ - { \ - tree _type; \ - WFL_STRIP_BRACKET (_type, TYPE); \ - (SAVE) = (_type); \ - (TYPE) = obtain_incomplete_type (TYPE); \ - CHAIN = 1; \ - } \ - } \ - } \ - } - -#define WFL_STRIP_BRACKET(TARGET, TYPE) \ -{ \ - tree __type = (TYPE); \ - if (TYPE && TREE_CODE (TYPE) == EXPR_WITH_FILE_LOCATION) \ - { \ - tree _node; \ - if (build_type_name_from_array_name (EXPR_WFL_NODE (TYPE), &_node)) \ - { \ - tree _new = copy_node (TYPE); \ - EXPR_WFL_NODE (_new) = _node; \ - __type = _new; \ - } \ - } \ - (TARGET) = __type; \ -} - -/* If NAME contains one or more trailing []s, NAMELEN will be the - adjusted to be the index of the last non bracket character in - NAME. ARRAY_DIMS will contain the number of []s found. */ - -#define STRING_STRIP_BRACKETS(NAME, NAMELEN, ARRAY_DIMS) \ -{ \ - ARRAY_DIMS = 0; \ - while (NAMELEN >= 2 && (NAME)[NAMELEN - 1] == ']') \ - { \ - NAMELEN -= 2; \ - (ARRAY_DIMS)++; \ - } \ -} - -/* Promote a type if it won't be registered as a patch */ -#define PROMOTE_RECORD_IF_COMPLETE(TYPE, IS_INCOMPLETE) \ - { \ - if (!(IS_INCOMPLETE) && TREE_CODE (TYPE) == RECORD_TYPE) \ - (TYPE) = promote_type (TYPE); \ - } - -/* Insert a DECL in the current block */ -#define BLOCK_CHAIN_DECL(NODE) \ - { \ - TREE_CHAIN ((NODE)) = \ - BLOCK_EXPR_DECLS (GET_CURRENT_BLOCK (current_function_decl)); \ - BLOCK_EXPR_DECLS (GET_CURRENT_BLOCK (current_function_decl)) = (NODE); \ - } - -/* Return the current block, either found in the body of the currently - declared function or in the current static block being defined. */ -#define GET_CURRENT_BLOCK(F) ((F) ? DECL_FUNCTION_BODY ((F)) : \ - current_static_block) - -#ifndef USE_MAPPED_LOCATION -/* Retrieve line/column from a WFL. */ -#define EXPR_WFL_GET_LINECOL(V,LINE,COL) \ - { \ - (LINE) = (V) >> 12; \ - (COL) = (V) & 0xfff; \ - } -#endif - -#define EXPR_WFL_QUALIFICATION(WFL) TREE_OPERAND ((WFL), 1) -#define QUAL_WFL(NODE) TREE_PURPOSE (NODE) -#define QUAL_RESOLUTION(NODE) TREE_VALUE (NODE) -#define QUAL_DECL_TYPE(NODE) GET_SKIP_TYPE (NODE) - -#define GET_SKIP_TYPE(NODE) \ - (TREE_CODE (TREE_TYPE (NODE)) == POINTER_TYPE ? \ - TREE_TYPE (TREE_TYPE (NODE)): TREE_TYPE (NODE)) - -/* Handy macros for the walk operation */ -#define COMPLETE_CHECK_OP(NODE, N) \ -{ \ - TREE_OPERAND ((NODE), (N)) = \ - java_complete_tree (TREE_OPERAND ((NODE), (N))); \ - if (TREE_OPERAND ((NODE), (N)) == error_mark_node) \ - return error_mark_node; \ -} -#define COMPLETE_CHECK_OP_0(NODE) COMPLETE_CHECK_OP(NODE, 0) -#define COMPLETE_CHECK_OP_1(NODE) COMPLETE_CHECK_OP(NODE, 1) -#define COMPLETE_CHECK_OP_2(NODE) COMPLETE_CHECK_OP(NODE, 2) - -/* Building invocations: append(ARG) and StringBuffer(ARG) */ -#define BUILD_APPEND(ARG) \ - ((JSTRING_TYPE_P (TREE_TYPE (ARG)) || JPRIMITIVE_TYPE_P (TREE_TYPE (ARG))) \ - ? build_method_invocation (wfl_append, \ - ARG ? build_tree_list (NULL, (ARG)) : NULL_TREE)\ - : build_method_invocation (wfl_append, \ - ARG ? build_tree_list (NULL, \ - build1 (CONVERT_EXPR, \ - object_type_node,\ - (ARG))) \ - : NULL_TREE)) -#define BUILD_STRING_BUFFER(ARG) \ - build_new_invocation (wfl_string_buffer, \ - (ARG ? build_tree_list (NULL, (ARG)) : NULL_TREE)) - -#define BUILD_THROW(WHERE, WHAT) \ - { \ - (WHERE) = \ - build3 (CALL_EXPR, void_type_node, \ - build_address_of (throw_node), \ - build_tree_list (NULL_TREE, (WHAT)), NULL_TREE); \ - TREE_SIDE_EFFECTS ((WHERE)) = 1; \ - } - -/* Set wfl_operator for the most accurate error location */ -#ifdef USE_MAPPED_LOCATION -#define SET_WFL_OPERATOR(WHICH, NODE, WFL) \ - SET_EXPR_LOCATION (WHICH, \ - (TREE_CODE (WFL) == EXPR_WITH_FILE_LOCATION ? \ - EXPR_LOCATION (WFL) : EXPR_LOCATION (NODE))) -#else -#define SET_WFL_OPERATOR(WHICH, NODE, WFL) \ - EXPR_WFL_LINECOL (WHICH) = \ - (TREE_CODE (WFL) == EXPR_WITH_FILE_LOCATION ? \ - EXPR_WFL_LINECOL (WFL) : EXPR_WFL_LINECOL (NODE)) -#endif - -#define PATCH_METHOD_RETURN_ERROR() \ - { \ - if (ret_decl) \ - *ret_decl = NULL_TREE; \ - return error_mark_node; \ - } - -/* Convenient macro to check. Assumes that CLASS is a CLASS_DECL. */ -#define CHECK_METHODS(CLASS) \ - { \ - if (CLASS_INTERFACE ((CLASS))) \ - java_check_abstract_methods ((CLASS)); \ - else \ - java_check_regular_methods ((CLASS)); \ - } - -#define CLEAR_DEPRECATED ctxp->deprecated = 0 - -#define CHECK_DEPRECATED_NO_RESET(DECL) \ - { \ - if (ctxp->deprecated) \ - DECL_DEPRECATED (DECL) = 1; \ - } - -/* Using and reseting the @deprecated tag flag */ -#define CHECK_DEPRECATED(DECL) \ - { \ - if (ctxp->deprecated) \ - DECL_DEPRECATED (DECL) = 1; \ - ctxp->deprecated = 0; \ - } - -/* Register an import */ -#define REGISTER_IMPORT(WHOLE, NAME) \ -{ \ - IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P ((NAME)) = 1; \ - ctxp->import_list = tree_cons ((WHOLE), (NAME), ctxp->import_list); \ -} - -/* Macro to access the osb (opening square bracket) count */ -#define CURRENT_OSB(C) (C)->osb_number [(C)->osb_depth] - -/* Parser context data structure. */ -struct parser_ctxt GTY(()) { - const char *filename; /* Current filename */ - location_t file_start_location; - location_t save_location; - struct parser_ctxt *next; - - java_lexer * GTY((skip)) lexer; /* Current lexer state */ - char marker_begining; /* Marker. Should be a sub-struct */ - int ccb_indent; /* Number of unmatched { seen. */ - /* The next two fields are only source_location if USE_MAPPED_LOCATION. - Otherwise, they are integer line number, but we can't have #ifdefs - in GTY structures. */ - source_location first_ccb_indent1; /* First { at ident level 1 */ - source_location last_ccb_indent1; /* Last } at ident level 1 */ - int parser_ccb_indent; /* Keep track of {} indent, parser */ - int osb_depth; /* Current depth of [ in an expression */ - int osb_limit; /* Limit of this depth */ - int * GTY ((skip)) osb_number; /* Keep track of ['s */ - char marker_end; /* End marker. Should be a sub-struct */ - - /* The flags section */ - - /* Indicates a context used for saving the parser status. The - context must be popped when the status is restored. */ - unsigned saved_data_ctx:1; - /* Indicates that a context already contains saved data and that the - next save operation will require a new context to be created. */ - unsigned saved_data:1; - /* Report error when true */ - unsigned java_error_flag:1; - /* @deprecated tag seen */ - unsigned deprecated:1; - /* Flag to report certain errors (fix this documentation. FIXME) */ - unsigned class_err:1; - - /* This section is used only if we compile jc1 */ - tree modifier_ctx [12]; /* WFL of modifiers */ - tree class_type; /* Current class */ - tree function_decl; /* Current function decl, save/restore */ - - int prevent_ese; /* Prevent expression statement error */ - - int formal_parameter_number; /* Number of parameters found */ - int interface_number; /* # itfs declared to extend an itf def */ - - tree package; /* Defined package ID */ - - /* These two lists won't survive file traversal */ - tree class_list; /* List of classes in a CU */ - jdeplist * GTY((skip)) classd_list; /* Classe dependencies in a CU */ - - tree current_parsed_class; /* Class currently parsed */ - tree current_parsed_class_un; /* Curr. parsed class unqualified name */ - - tree non_static_initialized; /* List of non static initialized fields */ - tree static_initialized; /* List of static non final initialized */ - tree instance_initializers; /* List of instance initializers stmts */ - - tree import_list; /* List of import */ - tree import_demand_list; /* List of import on demand */ - - tree current_loop; /* List of the currently nested - loops/switches */ - tree current_labeled_block; /* List of currently nested - labeled blocks. */ - - int pending_block; /* Pending block to close */ - - int explicit_constructor_p; /* >0 when processing an explicit - constructor. This flag is used to trap - illegal argument usage during an - explicit constructor invocation. */ -}; - -/* A set of macros to push/pop/access the currently parsed class. */ -#define GET_CPC_LIST() ctxp->current_parsed_class - -/* Currently class being parsed is an inner class if an enclosing - class has been already pushed. This truth value is only valid prior - an inner class is pushed. After, use FIXME. */ -#define CPC_INNER_P() GET_CPC_LIST () - -/* The TYPE_DECL node of the class currently being parsed. */ -#define GET_CPC() TREE_VALUE (GET_CPC_LIST ()) - -/* Get the currently parsed class unqualified IDENTIFIER_NODE. */ -#define GET_CPC_UN() TREE_PURPOSE (GET_CPC_LIST ()) - -/* Get a parsed class unqualified IDENTIFIER_NODE from its CPC node. */ -#define GET_CPC_UN_NODE(N) TREE_PURPOSE (N) - -/* Get the currently parsed class DECL_TYPE from its CPC node. */ -#define GET_CPC_DECL_NODE(N) TREE_VALUE (N) - -/* The currently parsed enclosing currently parsed TREE_LIST node. */ -#define GET_ENCLOSING_CPC() TREE_CHAIN (GET_CPC_LIST ()) - -/* Get the next enclosing context. */ -#define GET_NEXT_ENCLOSING_CPC(C) TREE_CHAIN (C) - -/* The DECL_TYPE node of the enclosing currently parsed - class. NULL_TREE if the currently parsed class isn't an inner - class. */ -#define GET_ENCLOSING_CPC_CONTEXT() (GET_ENCLOSING_CPC () ? \ - TREE_VALUE (GET_ENCLOSING_CPC ()) : \ - NULL_TREE) - -/* Make sure that innerclass T sits in an appropriate enclosing - context. */ -#define INNER_ENCLOSING_SCOPE_CHECK(T) \ - (INNER_CLASS_TYPE_P ((T)) && !ANONYMOUS_CLASS_P ((T)) \ - && ((current_this \ - /* We have a this and it's not the right one */ \ - && (DECL_CONTEXT (TYPE_NAME ((T))) \ - != TYPE_NAME (TREE_TYPE (TREE_TYPE (current_this)))) \ - && !inherits_from_p (TREE_TYPE (TREE_TYPE (current_this)), \ - TREE_TYPE (DECL_CONTEXT (TYPE_NAME (T)))) \ - && !common_enclosing_instance_p (TREE_TYPE (TREE_TYPE (current_this)),\ - (T)) \ - && INNER_CLASS_TYPE_P (TREE_TYPE (TREE_TYPE (current_this))) \ - && !inherits_from_p \ - (TREE_TYPE (DECL_CONTEXT \ - (TYPE_NAME (TREE_TYPE (TREE_TYPE (current_this))))),\ - TREE_TYPE (DECL_CONTEXT (TYPE_NAME (T))))) \ - /* We don't have a this, which is OK if the current function is \ - static. */ \ - || (!current_this \ - && current_function_decl \ - && ! METHOD_STATIC (current_function_decl)))) - -/* Push macro. First argument to PUSH_CPC is a DECL_TYPE, second - argument is the unqualified currently parsed class name. */ -#define PUSH_CPC(C,R) { \ - ctxp->current_parsed_class = \ - tree_cons ((R), (C), GET_CPC_LIST ()); \ - } - -/* In case of an error, push an error. */ -#define PUSH_ERROR() PUSH_CPC (error_mark_node, error_mark_node) - -/* Pop macro. Before we pop, we link the current inner class decl (if any) - to its enclosing class. */ -#define POP_CPC() { \ - link_nested_class_to_enclosing (); \ - ctxp->current_parsed_class = \ - TREE_CHAIN (GET_CPC_LIST ()); \ - } - -#define DEBUG_CPC() \ - do \ - { \ - tree tmp = ctxp->current_parsed_class; \ - while (tmp) \ - { \ - fprintf (stderr, "%s ", \ - IDENTIFIER_POINTER (TREE_PURPOSE (tmp))); \ - tmp = TREE_CHAIN (tmp); \ - } \ - } \ - while (0); - -/* Access to the various initializer statement lists */ -#define CPC_INITIALIZER_LIST(C) ((C)->non_static_initialized) -#define CPC_STATIC_INITIALIZER_LIST(C) ((C)->static_initialized) -#define CPC_INSTANCE_INITIALIZER_LIST(C) ((C)->instance_initializers) - -/* Access to the various initializer statements */ -#define CPC_INITIALIZER_STMT(C) (TREE_PURPOSE (CPC_INITIALIZER_LIST (C))) -#define CPC_STATIC_INITIALIZER_STMT(C) \ - (TREE_PURPOSE (CPC_STATIC_INITIALIZER_LIST (C))) -#define CPC_INSTANCE_INITIALIZER_STMT(C) \ - (TREE_PURPOSE (CPC_INSTANCE_INITIALIZER_LIST (C))) - -/* Set various initializer statements */ -#define SET_CPC_INITIALIZER_STMT(C,S) \ - if (CPC_INITIALIZER_LIST (C)) \ - TREE_PURPOSE (CPC_INITIALIZER_LIST (C)) = (S); -#define SET_CPC_STATIC_INITIALIZER_STMT(C,S) \ - if (CPC_STATIC_INITIALIZER_LIST (C)) \ - TREE_PURPOSE (CPC_STATIC_INITIALIZER_LIST (C)) = (S); -#define SET_CPC_INSTANCE_INITIALIZER_STMT(C,S) \ - if (CPC_INSTANCE_INITIALIZER_LIST(C)) \ - TREE_PURPOSE (CPC_INSTANCE_INITIALIZER_LIST (C)) = (S); - -/* This is used by the lexer to communicate with the parser. It is - set on an integer constant if the radix is NOT 10, so that the parser - can correctly diagnose a numeric overflow. */ -#define JAVA_NOT_RADIX10_FLAG(NODE) TREE_LANG_FLAG_0(NODE) - -#ifndef JC1_LITE -void java_complete_class (void); -void java_check_circular_reference (void); -void java_fix_constructors (void); -void java_layout_classes (void); -void java_reorder_fields (void); -tree java_method_add_stmt (tree, tree); -int java_report_errors (void); -extern tree do_resolve_class (tree, tree, tree, tree, tree); -#endif -char *java_get_line_col (const char *, int, int); -extern void reset_report (void); - -/* Always in use, no matter what you compile */ -void java_push_parser_context (void); -void java_pop_parser_context (int); -void java_init_lex (FILE *, const char *); -extern void java_parser_context_save_global (void); -extern void java_parser_context_restore_global (void); -int yyparse (void); -extern int java_parse (void); -extern void yyerror (const char *) -#ifdef JC1_LITE -ATTRIBUTE_NORETURN -#endif -; -extern void java_expand_classes (void); -extern void java_finish_classes (void); - -extern GTY(()) struct parser_ctxt *ctxp; -extern GTY(()) struct parser_ctxt *ctxp_for_generation; -extern GTY(()) struct parser_ctxt *ctxp_for_generation_last; - -#endif /* ! GCC_JAVA_PARSE_H */ +/* Language parser definitions for the GNU compiler for the Java(TM) language. + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. + Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) + +This file is part of GCC. + +GCC 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. + +GCC 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 GCC; see the file COPYING. If not, write to +the Free Software Foundation, 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. + +Java and all Java-based marks are trademarks or registered trademarks +of Sun Microsystems, Inc. in the United States and other countries. +The Free Software Foundation is independent of Sun Microsystems, Inc. */ + +#ifndef GCC_JAVA_PARSE_H +#define GCC_JAVA_PARSE_H + +/* Extern global variable declarations */ +extern struct obstack temporary_obstack; +extern int quiet_flag; + +#ifdef VERBOSE_SKELETON +#undef SOURCE_FRONTEND_DEBUG +#define SOURCE_FRONTEND_DEBUG(X) \ + {if (!quiet_flag) {printf ("* "); printf X; putchar ('\n');} } +#else +#define SOURCE_FRONTEND_DEBUG(X) +#endif + +/* Types classification, according to the JLS, section 4.2 */ +#define JFLOAT_TYPE_P(TYPE) (TYPE && TREE_CODE ((TYPE)) == REAL_TYPE) +#define JINTEGRAL_TYPE_P(TYPE) ((TYPE) \ + && (TREE_CODE ((TYPE)) == INTEGER_TYPE)) +#define JNUMERIC_TYPE_P(TYPE) ((TYPE) \ + && (JFLOAT_TYPE_P ((TYPE)) \ + || JINTEGRAL_TYPE_P ((TYPE)))) +#define JPRIMITIVE_TYPE_P(TYPE) ((TYPE) \ + && (JNUMERIC_TYPE_P ((TYPE)) \ + || TREE_CODE ((TYPE)) == BOOLEAN_TYPE)) + +/* Not defined in the LRM */ +#define JSTRING_TYPE_P(TYPE) ((TYPE) \ + && ((TYPE) == string_type_node || \ + (TREE_CODE (TYPE) == POINTER_TYPE && \ + TREE_TYPE (TYPE) == string_type_node))) +#define JREFERENCE_TYPE_P(TYPE) ((TYPE) \ + && (TREE_CODE (TYPE) == RECORD_TYPE \ + || (TREE_CODE (TYPE) == POINTER_TYPE \ + && TREE_CODE (TREE_TYPE (TYPE)) == \ + RECORD_TYPE))) + +int java_report_errors (void); +extern tree do_resolve_class (tree, tree, tree, tree, tree); + +/* Always in use, no matter what you compile */ +void java_push_parser_context (void); +void java_pop_parser_context (int); +extern void java_parser_context_save_global (void); +extern void java_parser_context_restore_global (void); + +#endif /* ! GCC_JAVA_PARSE_H */ diff --git a/gcc/java/parse.y b/gcc/java/parse.y deleted file mode 100644 index 4b6521ca243..00000000000 --- a/gcc/java/parse.y +++ /dev/null @@ -1,16552 +0,0 @@ -/* Source code parsing and tree node generation for the GNU compiler - for the Java(TM) language. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) - -This file is part of GCC. - -GCC 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. - -GCC 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 GCC; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. - -Java and all Java-based marks are trademarks or registered trademarks -of Sun Microsystems, Inc. in the United States and other countries. -The Free Software Foundation is independent of Sun Microsystems, Inc. */ - -/* This file parses java source code and issues a tree node image -suitable for code generation (byte code and targeted CPU assembly -language). - -The grammar conforms to the Java grammar described in "The Java(TM) -Language Specification. J. Gosling, B. Joy, G. Steele. Addison Wesley -1996, ISBN 0-201-63451-1" - -The following modifications were brought to the original grammar: - -method_body: added the rule '| block SC_TK' -static_initializer: added the rule 'static block SC_TK'. - -Note: All the extra rules described above should go away when the - empty_statement rule will work. - -statement_nsi: 'nsi' should be read no_short_if. - -Some rules have been modified to support JDK1.1 inner classes -definitions and other extensions. */ - -%{ -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include -#include "tree.h" -#include "rtl.h" -#include "real.h" -#include "obstack.h" -#include "toplev.h" -#include "pretty-print.h" -#include "diagnostic.h" -#include "flags.h" -#include "java-tree.h" -#include "jcf.h" -#include "lex.h" -#include "parse.h" -#include "zipfile.h" -#include "convert.h" -#include "buffer.h" -#include "function.h" -#include "except.h" -#include "ggc.h" -#include "debug.h" -#include "tree-inline.h" -#include "tree-dump.h" -#include "cgraph.h" -#include "target.h" - -/* Local function prototypes */ -static char *java_accstring_lookup (int); -static const char *accessibility_string (int); -static void classitf_redefinition_error (const char *,tree, tree, tree); -static void variable_redefinition_error (tree, tree, tree, int); -static tree create_class (int, tree, tree, tree); -static tree create_interface (int, tree, tree); -static void end_class_declaration (int); -static tree find_field (tree, tree); -static tree lookup_field_wrapper (tree, tree); -static int duplicate_declaration_error_p (tree, tree, tree); -static void register_fields (int, tree, tree); -static tree parser_qualified_classname (tree); -static int parser_check_super (tree, tree, tree); -static int parser_check_super_interface (tree, tree, tree); -static void check_modifiers_consistency (int); -static tree lookup_cl (tree); -static tree lookup_java_method2 (tree, tree, int); -static tree method_header (int, tree, tree, tree); -static void fix_method_argument_names (tree ,tree); -static tree method_declarator (tree, tree); -static void parse_warning_context (tree cl, const char *gmsgid, ...) ATTRIBUTE_GCC_DIAG(2,3); -#ifdef USE_MAPPED_LOCATION -static void issue_warning_error_from_context - (source_location, const char *gmsgid, va_list *); -#else -static void issue_warning_error_from_context - (tree, const char *gmsgid, va_list *); -#endif -static void parse_ctor_invocation_error (void); -static tree parse_jdk1_1_error (const char *); -static void complete_class_report_errors (jdep *); -static int process_imports (void); -static void read_import_dir (tree); -static int find_in_imports_on_demand (tree, tree); -static void find_in_imports (tree, tree); -static bool inner_class_accessible (tree, tree); -static void check_inner_class_access (tree, tree, tree); -static int check_pkg_class_access (tree, tree, bool, tree); -static tree resolve_package (tree, tree *, tree *); -static tree resolve_class (tree, tree, tree, tree); -static void declare_local_variables (int, tree, tree); -static void dump_java_tree (enum tree_dump_index, tree); -static void source_start_java_method (tree); -static void source_end_java_method (void); -static tree find_name_in_single_imports (tree); -static void check_abstract_method_header (tree); -static tree lookup_java_interface_method2 (tree, tree); -static tree resolve_expression_name (tree, tree *); -static tree maybe_create_class_interface_decl (tree, tree, tree, tree); -static int check_class_interface_creation (int, int, tree, tree, tree, tree); -static tree patch_method_invocation (tree, tree, tree, int, int *, tree *); -static tree resolve_and_layout (tree, tree); -static tree qualify_and_find (tree, tree, tree); -static tree resolve_no_layout (tree, tree); -static int invocation_mode (tree, int); -static tree find_applicable_accessible_methods_list (int, tree, tree, tree); -static void search_applicable_methods_list (int, tree, tree, tree, tree *, tree *); -static tree find_most_specific_methods_list (tree, tree); -static int argument_types_convertible (tree, tree); -static tree patch_invoke (tree, tree, tree); -static int maybe_use_access_method (int, tree *, tree *); -static tree lookup_method_invoke (int, tree, tree, tree, tree); -static tree register_incomplete_type (int, tree, tree, tree); -static tree check_inner_circular_reference (tree, tree); -static tree check_circular_reference (tree); -static tree obtain_incomplete_type (tree); -static tree java_complete_lhs (tree); -static tree java_complete_tree (tree); -static tree maybe_generate_pre_expand_clinit (tree); -static int analyze_clinit_body (tree, tree); -static int maybe_yank_clinit (tree); -static void start_complete_expand_method (tree); -static void java_complete_expand_method (tree); -static void java_expand_method_bodies (tree); -static int unresolved_type_p (tree, tree *); -static void create_jdep_list (struct parser_ctxt *); -static tree build_expr_block (tree, tree); -static tree enter_block (void); -static tree exit_block (void); -static tree lookup_name_in_blocks (tree); -static void maybe_absorb_scoping_blocks (void); -static tree build_method_invocation (tree, tree); -static tree build_new_invocation (tree, tree); -static tree build_assignment (int, int, tree, tree); -static tree build_binop (enum tree_code, int, tree, tree); -static tree patch_assignment (tree, tree); -static tree patch_binop (tree, tree, tree, int); -static tree build_unaryop (int, int, tree); -static tree build_incdec (int, int, tree, int); -static tree patch_unaryop (tree, tree); -static tree build_cast (int, tree, tree); -static tree build_null_of_type (tree); -static tree patch_cast (tree, tree); -static int valid_ref_assignconv_cast_p (tree, tree, int); -static int valid_builtin_assignconv_identity_widening_p (tree, tree); -static int valid_cast_to_p (tree, tree); -static int valid_method_invocation_conversion_p (tree, tree); -static tree try_builtin_assignconv (tree, tree, tree); -static tree try_reference_assignconv (tree, tree); -static tree build_unresolved_array_type (tree); -static int build_type_name_from_array_name (tree, tree *); -static tree build_array_from_name (tree, tree, tree, tree *); -static tree build_array_ref (int, tree, tree); -static tree patch_array_ref (tree); -#ifdef USE_MAPPED_LOCATION -static tree make_qualified_name (tree, tree, source_location); -#else -static tree make_qualified_name (tree, tree, int); -#endif -static tree merge_qualified_name (tree, tree); -static tree make_qualified_primary (tree, tree, int); -static int resolve_qualified_expression_name (tree, tree *, tree *, tree *); -static void qualify_ambiguous_name (tree); -static tree resolve_field_access (tree, tree *, tree *); -static tree build_newarray_node (tree, tree, int); -static tree patch_newarray (tree); -static tree resolve_type_during_patch (tree); -static tree build_this (int); -static tree build_wfl_wrap (tree, int); -static tree build_return (int, tree); -static tree patch_return (tree); -static tree maybe_access_field (tree, tree, tree); -static int complete_function_arguments (tree); -static int check_for_static_method_reference (tree, tree, tree, tree, tree); -static int not_accessible_p (tree, tree, tree, int); -static void check_deprecation (tree, tree); -static int class_in_current_package (tree); -static tree build_if_else_statement (int, tree, tree, tree); -static tree patch_if_else_statement (tree); -static tree add_stmt_to_block (tree, tree, tree); -static tree patch_exit_expr (tree); -static tree build_labeled_block (int, tree); -static tree finish_labeled_statement (tree, tree); -static tree build_bc_statement (int, int, tree); -static tree patch_bc_statement (tree); -static tree patch_loop_statement (tree); -static tree build_new_loop (tree); -static tree build_loop_body (int, tree, int); -static tree finish_loop_body (int, tree, tree, int); -static tree build_debugable_stmt (int, tree); -static tree finish_for_loop (int, tree, tree, tree); -static tree patch_switch_statement (tree); -static tree string_constant_concatenation (tree, tree); -static tree build_string_concatenation (tree, tree); -static tree patch_string_cst (tree); -static tree patch_string (tree); -static tree encapsulate_with_try_catch (int, tree, tree, tree); -#ifdef USE_MAPPED_LOCATION -static tree build_assertion (source_location, tree, tree); -#else -static tree build_assertion (int, tree, tree); -#endif -static tree build_try_statement (int, tree, tree); -static tree build_try_finally_statement (int, tree, tree); -static tree patch_try_statement (tree); -static tree patch_synchronized_statement (tree, tree); -static tree patch_throw_statement (tree, tree); -static void add_exception_to_throws (tree, tree); -#ifdef USE_MAPPED_LOCATION -static void check_thrown_exceptions (source_location, tree, tree); -#else -static void check_thrown_exceptions (int, tree, tree); -#endif -static int check_thrown_exceptions_do (tree); -static bool ctors_unchecked_throws_clause_p (tree); -static void check_concrete_throws_clauses (tree, tree, tree, tree); -static void check_throws_clauses (tree, tree, tree); -static void finish_method_declaration (tree); -static tree build_super_invocation (tree); -static int verify_constructor_circularity (tree, tree); -static char *constructor_circularity_msg (tree, tree); -static tree build_this_super_qualified_invocation (int, tree, tree, int, int); -static const char *get_printable_method_name (tree); -static tree patch_conditional_expr (tree, tree, tree); -static tree generate_finit (tree); -static tree generate_instinit (tree); -static tree build_instinit_invocation (tree); -static void fix_constructors (tree); -static tree build_alias_initializer_parameter_list (int, tree, tree, int *); -static tree craft_constructor (tree, tree); -static tree get_constructor_super (tree); -static tree create_artificial_method (tree, int, tree, tree, tree); -static void start_artificial_method_body (tree); -static void end_artificial_method_body (tree); -static int check_method_redefinition (tree, tree); -static int check_method_types_complete (tree); -static bool hack_is_accessible_p (tree, tree); -static void java_check_regular_methods (tree); -static void check_interface_throws_clauses (tree, tree); -static void java_check_abstract_methods (tree); -static void unreachable_stmt_error (tree); -static int not_accessible_field_error (tree, tree); -static tree find_expr_with_wfl (tree); -static void missing_return_error (tree); -static tree build_new_array_init (int, tree); -static tree patch_new_array_init (tree, tree); -static tree maybe_build_array_element_wfl (tree); -static int array_constructor_check_entry (tree, constructor_elt *); -static const char *purify_type_name (const char *); -static tree fold_constant_for_init (tree, tree); -static jdeplist *reverse_jdep_list (struct parser_ctxt *); -static void static_ref_err (tree, tree, tree); -static void parser_add_interface (tree, tree, tree); -static void add_superinterfaces (tree, tree); -static tree jdep_resolve_class (jdep *); -static int note_possible_classname (const char *, int); -static void java_complete_expand_classes (void); -static void java_complete_expand_class (tree); -static void java_complete_expand_methods (tree); -static tree cut_identifier_in_qualified (tree); -static tree java_stabilize_reference (tree); -static tree do_unary_numeric_promotion (tree); -static char * operator_string (tree); -static tree do_merge_string_cste (tree, const char *, int, int); -static tree merge_string_cste (tree, tree, int); -static tree java_refold (tree); -static int java_decl_equiv (tree, tree); -static int binop_compound_p (enum tree_code); -static tree search_loop (tree); -static int labeled_block_contains_loop_p (tree, tree); -static int check_abstract_method_definitions (int, tree, tree); -static void java_check_abstract_method_definitions (tree); -static void java_debug_context_do (int); -static void java_parser_context_push_initialized_field (void); -static void java_parser_context_pop_initialized_field (void); -static tree reorder_static_initialized (tree); -static void java_parser_context_suspend (void); -static void java_parser_context_resume (void); -static int pop_current_osb (struct parser_ctxt *); - -/* JDK 1.1 work. FIXME */ - -static tree maybe_make_nested_class_name (tree); -static int make_nested_class_name (tree); -static void link_nested_class_to_enclosing (void); -static tree resolve_inner_class (tree, tree, tree, tree); -static tree find_as_inner_class (tree, tree, tree); -static tree find_as_inner_class_do (tree, tree); -static int check_inner_class_redefinition (tree, tree); - -static tree build_thisn_assign (void); -static tree build_current_thisn (tree); -static tree build_access_to_thisn (tree, tree, int); -static tree maybe_build_thisn_access_method (tree); - -static tree build_nested_field_access (tree, tree); -static tree build_nested_field_access_methods (tree); -static tree build_nested_field_access_method (tree, tree, tree, tree, tree); -static tree build_nested_field_access_expr (int, tree, tree, tree, tree); -static tree build_nested_method_access_method (tree); -static tree build_new_access_id (void); - -static int nested_member_access_p (tree, tree); -static int nested_field_expanded_access_p (tree, tree *, tree *, tree *); -static tree nested_field_access_fix (tree, tree, tree); - -static tree build_incomplete_class_ref (int, tree); -static tree patch_incomplete_class_ref (tree); -static tree create_anonymous_class (tree); -static void patch_anonymous_class (tree, tree, tree); -static void add_inner_class_fields (tree, tree); - -static tree build_dot_class_method (tree); -static tree build_dot_class_method_invocation (tree, tree); -static void create_new_parser_context (int); -static tree maybe_build_class_init_for_field (tree, tree); - -static int emit_test_initialization (void **, void *); - -static char *string_convert_int_cst (tree); - -/* Number of error found so far. */ -int java_error_count; -/* Number of warning found so far. */ -int java_warning_count; -/* Cyclic inheritance report, as it can be set by layout_class */ -const char *cyclic_inheritance_report; - -/* The current parser context */ -struct parser_ctxt *ctxp; - -/* List of things that were analyzed for which code will be generated */ -struct parser_ctxt *ctxp_for_generation = NULL; -struct parser_ctxt *ctxp_for_generation_last = NULL; - -/* binop_lookup maps token to tree_code. It is used where binary - operations are involved and required by the parser. RDIV_EXPR - covers both integral/floating point division. The code is changed - once the type of both operator is worked out. */ - -static const enum tree_code binop_lookup[19] = - { - PLUS_EXPR, MINUS_EXPR, MULT_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR, - LSHIFT_EXPR, RSHIFT_EXPR, URSHIFT_EXPR, - BIT_AND_EXPR, BIT_XOR_EXPR, BIT_IOR_EXPR, - TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, - EQ_EXPR, NE_EXPR, GT_EXPR, GE_EXPR, LT_EXPR, LE_EXPR, - }; -#define BINOP_LOOKUP(VALUE) \ - binop_lookup [((VALUE) - PLUS_TK) % ARRAY_SIZE (binop_lookup)] - -/* This is the end index for binary operators that can also be used - in compound assignments. */ -#define BINOP_COMPOUND_CANDIDATES 11 - -/* The "$L" identifier we use to create labels. */ -static GTY(()) tree label_id; - -/* The "StringBuffer" identifier used for the String `+' operator. */ -static GTY(()) tree wfl_string_buffer; - -/* The "append" identifier used for String `+' operator. */ -static GTY(()) tree wfl_append; - -/* The "toString" identifier used for String `+' operator. */ -static GTY(()) tree wfl_to_string; - -/* The "java.lang" import qualified name. */ -static GTY(()) tree java_lang_id; - -/* The generated `inst$' identifier used for generated enclosing - instance/field access functions. */ -static GTY(()) tree inst_id; - -/* Context and flag for static blocks */ -static GTY(()) tree current_static_block; - -/* The generated `write_parm_value$' identifier. */ -static GTY(()) tree wpv_id; - -/* Hold THIS for the scope of the current method decl. */ -static GTY(()) tree current_this; - -/* Hold a list of catch clauses list. The first element of this list is - the list of the catch clauses of the currently analyzed try block. */ -static GTY(()) tree currently_caught_type_list; - -/* This holds a linked list of all the case labels for the current - switch statement. It is only used when checking to see if there - are duplicate labels. FIXME: probably this should just be attached - to the switch itself; then it could be referenced via - `ctxp->current_loop'. */ -static GTY(()) tree case_label_list; - -/* Anonymous class counter. Will be reset to 1 every time a non - anonymous class gets created. */ -static int anonymous_class_counter = 1; - -static GTY(()) tree src_parse_roots[1]; - -/* All classes seen from source code */ -#define gclass_list src_parse_roots[0] - -/* Check modifiers. If one doesn't fit, retrieve it in its declaration - line and point it out. */ -/* Should point out the one that don't fit. ASCII/unicode, going - backward. FIXME */ - -#define check_modifiers(__message, __value, __mask) do { \ - if ((__value) & ~(__mask)) \ - { \ - size_t i, remainder = (__value) & ~(__mask); \ - for (i = 0; i < ARRAY_SIZE (ctxp->modifier_ctx); i++) \ - if ((1 << i) & remainder) \ - parse_error_context (ctxp->modifier_ctx [i], (__message), \ - java_accstring_lookup (1 << i)); \ - } \ -} while (0) - -%} - -%union { - tree node; - int sub_token; - struct { - int token; -#ifdef USE_MAPPED_LOCATION - source_location location; -#else - int location; -#endif - } operator; - int value; -} - -%{ -#ifdef USE_MAPPED_LOCATION -#define SET_EXPR_LOCATION_FROM_TOKEN(EXPR, TOKEN) \ - SET_EXPR_LOCATION(EXPR, (TOKEN).location) -#else -#define SET_EXPR_LOCATION_FROM_TOKEN(EXPR, TOKEN) \ - (EXPR_WFL_LINECOL (EXPR) = (TOKEN).location) -#endif - -#include "lex.c" -%} - -%pure_parser - -/* Things defined here have to match the order of what's in the - binop_lookup table. */ - -%token PLUS_TK MINUS_TK MULT_TK DIV_TK REM_TK -%token LS_TK SRS_TK ZRS_TK -%token AND_TK XOR_TK OR_TK -%token BOOL_AND_TK BOOL_OR_TK -%token EQ_TK NEQ_TK GT_TK GTE_TK LT_TK LTE_TK - -/* This maps to the same binop_lookup entry than the token above */ - -%token PLUS_ASSIGN_TK MINUS_ASSIGN_TK MULT_ASSIGN_TK DIV_ASSIGN_TK -%token REM_ASSIGN_TK -%token LS_ASSIGN_TK SRS_ASSIGN_TK ZRS_ASSIGN_TK -%token AND_ASSIGN_TK XOR_ASSIGN_TK OR_ASSIGN_TK - - -/* Modifier TOKEN have to be kept in this order. Don't scramble it */ - -%token PUBLIC_TK PRIVATE_TK PROTECTED_TK -%token STATIC_TK FINAL_TK SYNCHRONIZED_TK -%token VOLATILE_TK TRANSIENT_TK NATIVE_TK -%token PAD_TK ABSTRACT_TK STRICT_TK -%token MODIFIER_TK - -/* Keep those two in order, too */ -%token DECR_TK INCR_TK - -/* From now one, things can be in any order */ - -%token DEFAULT_TK IF_TK THROW_TK -%token BOOLEAN_TK DO_TK IMPLEMENTS_TK -%token THROWS_TK BREAK_TK IMPORT_TK -%token ELSE_TK INSTANCEOF_TK RETURN_TK -%token VOID_TK CATCH_TK INTERFACE_TK -%token CASE_TK EXTENDS_TK FINALLY_TK -%token SUPER_TK WHILE_TK CLASS_TK -%token SWITCH_TK CONST_TK TRY_TK -%token FOR_TK NEW_TK CONTINUE_TK -%token GOTO_TK PACKAGE_TK THIS_TK -%token ASSERT_TK - -%token BYTE_TK SHORT_TK INT_TK LONG_TK -%token CHAR_TK INTEGRAL_TK - -%token FLOAT_TK DOUBLE_TK FP_TK - -%token ID_TK - -%token REL_QM_TK REL_CL_TK NOT_TK NEG_TK - -%token ASSIGN_ANY_TK ASSIGN_TK -%token OP_TK CP_TK OCB_TK CCB_TK OSB_TK CSB_TK SC_TK C_TK DOT_TK - -%token STRING_LIT_TK CHAR_LIT_TK INT_LIT_TK FP_LIT_TK -%token TRUE_TK FALSE_TK BOOL_LIT_TK NULL_TK - -%type modifiers MODIFIER_TK final synchronized - -%type super ID_TK identifier -%type name simple_name qualified_name -%type type_declaration compilation_unit - field_declaration method_declaration extends_interfaces - interfaces interface_type_list - import_declarations package_declaration - type_declarations interface_body - interface_member_declaration constant_declaration - interface_member_declarations interface_type - abstract_method_declaration -%type class_body_declaration class_member_declaration - static_initializer constructor_declaration block -%type class_body_declarations constructor_header -%type class_or_interface_type class_type class_type_list - constructor_declarator explicit_constructor_invocation -%type dim_expr dim_exprs this_or_super throws - -%type variable_declarator_id variable_declarator - variable_declarators variable_initializer - variable_initializers constructor_body - array_initializer - -%type class_body block_end constructor_block_end -%type statement statement_without_trailing_substatement - labeled_statement if_then_statement label_decl - if_then_else_statement while_statement for_statement - statement_nsi labeled_statement_nsi do_statement - if_then_else_statement_nsi while_statement_nsi - for_statement_nsi statement_expression_list for_init - for_update statement_expression expression_statement - primary_no_new_array expression primary array_type - array_creation_initialized array_creation_uninitialized - class_instance_creation_expression field_access - method_invocation array_access something_dot_new - argument_list postfix_expression while_expression - post_increment_expression post_decrement_expression - unary_expression_not_plus_minus unary_expression - pre_increment_expression pre_decrement_expression - cast_expression - multiplicative_expression additive_expression - shift_expression relational_expression - equality_expression and_expression - exclusive_or_expression inclusive_or_expression - conditional_and_expression conditional_or_expression - conditional_expression assignment_expression - left_hand_side assignment for_header for_begin - constant_expression do_statement_begin empty_statement - switch_statement synchronized_statement throw_statement - try_statement assert_statement - switch_expression switch_block - catches catch_clause catch_clause_parameter finally - anonymous_class_creation trap_overflow_corner_case -%type return_statement break_statement continue_statement - -%type ASSIGN_TK MULT_ASSIGN_TK DIV_ASSIGN_TK -%type REM_ASSIGN_TK PLUS_ASSIGN_TK MINUS_ASSIGN_TK -%type LS_ASSIGN_TK SRS_ASSIGN_TK ZRS_ASSIGN_TK -%type AND_ASSIGN_TK XOR_ASSIGN_TK OR_ASSIGN_TK -%type ASSIGN_ANY_TK assignment_operator -%token EQ_TK GTE_TK ZRS_TK SRS_TK GT_TK LTE_TK LS_TK -%token BOOL_AND_TK AND_TK BOOL_OR_TK OR_TK INCR_TK PLUS_TK -%token DECR_TK MINUS_TK MULT_TK DIV_TK XOR_TK REM_TK NEQ_TK -%token NEG_TK REL_QM_TK REL_CL_TK NOT_TK LT_TK OCB_TK CCB_TK -%token OP_TK OSB_TK DOT_TK THROW_TK INSTANCEOF_TK -%type THIS_TK SUPER_TK RETURN_TK BREAK_TK CONTINUE_TK -%type CASE_TK DEFAULT_TK TRY_TK CATCH_TK SYNCHRONIZED_TK -%type NEW_TK ASSERT_TK - -%type method_body - -%type literal INT_LIT_TK FP_LIT_TK BOOL_LIT_TK CHAR_LIT_TK - STRING_LIT_TK NULL_TK VOID_TK - -%type IF_TK WHILE_TK FOR_TK - -%type formal_parameter_list formal_parameter - method_declarator method_header - -%type primitive_type reference_type type - BOOLEAN_TK INTEGRAL_TK FP_TK - -/* Added or modified JDK 1.1 rule types */ -%type type_literals - -%% -/* 19.2 Production from 2.3: The Syntactic Grammar */ -goal: compilation_unit - {} -; - -/* 19.3 Productions from 3: Lexical structure */ -literal: - INT_LIT_TK -| FP_LIT_TK -| BOOL_LIT_TK -| CHAR_LIT_TK -| STRING_LIT_TK -| NULL_TK -; - -/* 19.4 Productions from 4: Types, Values and Variables */ -type: - primitive_type -| reference_type -; - -primitive_type: - INTEGRAL_TK -| FP_TK -| BOOLEAN_TK -; - -reference_type: - class_or_interface_type -| array_type -; - -class_or_interface_type: - name -; - -class_type: - class_or_interface_type /* Default rule */ -; - -interface_type: - class_or_interface_type -; - -array_type: - primitive_type dims - { - int osb = pop_current_osb (ctxp); - tree t = build_java_array_type (($1), -1); - while (--osb) - t = build_unresolved_array_type (t); - $$ = t; - } -| name dims - { - int osb = pop_current_osb (ctxp); - tree t = $1; - while (osb--) - t = build_unresolved_array_type (t); - $$ = t; - } -; - -/* 19.5 Productions from 6: Names */ -name: - simple_name /* Default rule */ -| qualified_name /* Default rule */ -; - -simple_name: - identifier /* Default rule */ -; - -qualified_name: - name DOT_TK identifier - { $$ = make_qualified_name ($1, $3, $2.location); } -; - -identifier: - ID_TK -; - -/* 19.6: Production from 7: Packages */ -compilation_unit: - {$$ = NULL;} -| package_declaration -| import_declarations -| type_declarations -| package_declaration import_declarations -| package_declaration type_declarations -| import_declarations type_declarations -| package_declaration import_declarations type_declarations -; - -import_declarations: - import_declaration - { - $$ = NULL; - } -| import_declarations import_declaration - { - $$ = NULL; - } -; - -type_declarations: - type_declaration -| type_declarations type_declaration -; - -package_declaration: - PACKAGE_TK name SC_TK - { - ctxp->package = EXPR_WFL_NODE ($2); - } -| PACKAGE_TK error - {yyerror ("Missing name"); RECOVER;} -| PACKAGE_TK name error - {yyerror ("';' expected"); RECOVER;} -; - -import_declaration: - single_type_import_declaration -| type_import_on_demand_declaration -; - -single_type_import_declaration: - IMPORT_TK name SC_TK - { - tree name = EXPR_WFL_NODE ($2), last_name; - int i = IDENTIFIER_LENGTH (name)-1; - const char *last = &IDENTIFIER_POINTER (name)[i]; - while (last != IDENTIFIER_POINTER (name)) - { - if (last [0] == '.') - break; - last--; - } - last_name = get_identifier (++last); - if (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (last_name)) - { - tree err = find_name_in_single_imports (last_name); - if (err && err != name) - parse_error_context - ($2, "Ambiguous class: %qs and %qs", - IDENTIFIER_POINTER (name), - IDENTIFIER_POINTER (err)); - else - REGISTER_IMPORT ($2, last_name); - } - else - REGISTER_IMPORT ($2, last_name); - } -| IMPORT_TK error - {yyerror ("Missing name"); RECOVER;} -| IMPORT_TK name error - {yyerror ("';' expected"); RECOVER;} -; - -type_import_on_demand_declaration: - IMPORT_TK name DOT_TK MULT_TK SC_TK - { - tree name = EXPR_WFL_NODE ($2); - tree it; - /* Search for duplicates. */ - for (it = ctxp->import_demand_list; it; it = TREE_CHAIN (it)) - if (EXPR_WFL_NODE (TREE_PURPOSE (it)) == name) - break; - /* Don't import the same thing more than once, just ignore - duplicates (7.5.2) */ - if (! it) - { - read_import_dir ($2); - ctxp->import_demand_list = - chainon (ctxp->import_demand_list, - build_tree_list ($2, NULL_TREE)); - } - } -| IMPORT_TK name DOT_TK error - {yyerror ("'*' expected"); RECOVER;} -| IMPORT_TK name DOT_TK MULT_TK error - {yyerror ("';' expected"); RECOVER;} -; - -type_declaration: - class_declaration - { end_class_declaration (0); } -| interface_declaration - { end_class_declaration (0); } -| empty_statement -| error - { - YYERROR_NOW; - yyerror ("Class or interface declaration expected"); - } -; - -/* 19.7 Shortened from the original: - modifiers: modifier | modifiers modifier - modifier: any of public... */ -modifiers: - MODIFIER_TK - { - $$ = (1 << $1); - } -| modifiers MODIFIER_TK - { - int acc = (1 << $2); - if ($$ & acc) - parse_error_context - (ctxp->modifier_ctx [$2], "Modifier %qs declared twice", - java_accstring_lookup (acc)); - else - { - $$ |= acc; - } - } -; - -/* 19.8.1 Production from $8.1: Class Declaration */ -class_declaration: - modifiers CLASS_TK identifier super interfaces - { create_class ($1, $3, $4, $5); } - class_body - {;} -| CLASS_TK identifier super interfaces - { create_class (0, $2, $3, $4); } - class_body - {;} -| modifiers CLASS_TK error - { yyerror ("Missing class name"); RECOVER; } -| CLASS_TK error - { yyerror ("Missing class name"); RECOVER; } -| CLASS_TK identifier error - { - if (!ctxp->class_err) yyerror ("'{' expected"); - DRECOVER(class1); - } -| modifiers CLASS_TK identifier error - { if (!ctxp->class_err) yyerror ("'{' expected"); RECOVER; } -; - -super: - { $$ = NULL; } -| EXTENDS_TK class_type - { $$ = $2; } -| EXTENDS_TK class_type error - {yyerror ("'{' expected"); ctxp->class_err=1;} -| EXTENDS_TK error - {yyerror ("Missing super class name"); ctxp->class_err=1;} -; - -interfaces: - { $$ = NULL_TREE; } -| IMPLEMENTS_TK interface_type_list - { $$ = $2; } -| IMPLEMENTS_TK error - { - ctxp->class_err=1; - yyerror ("Missing interface name"); - } -; - -interface_type_list: - interface_type - { - ctxp->interface_number = 1; - $$ = build_tree_list ($1, NULL_TREE); - } -| interface_type_list C_TK interface_type - { - ctxp->interface_number++; - $$ = chainon ($1, build_tree_list ($3, NULL_TREE)); - } -| interface_type_list C_TK error - {yyerror ("Missing interface name"); RECOVER;} -; - -class_body: - OCB_TK CCB_TK - { - $$ = GET_CPC (); - } -| OCB_TK class_body_declarations CCB_TK - { - $$ = GET_CPC (); - } -; - -class_body_declarations: - class_body_declaration -| class_body_declarations class_body_declaration -; - -class_body_declaration: - class_member_declaration -| static_initializer -| constructor_declaration -| block /* Added, JDK1.1, instance initializer */ - { - if (!IS_EMPTY_STMT ($1)) - { - TREE_CHAIN ($1) = CPC_INSTANCE_INITIALIZER_STMT (ctxp); - SET_CPC_INSTANCE_INITIALIZER_STMT (ctxp, $1); - } - } -; - -class_member_declaration: - field_declaration -| method_declaration -| class_declaration /* Added, JDK1.1 inner classes */ - { end_class_declaration (1); } -| interface_declaration /* Added, JDK1.1 inner interfaces */ - { end_class_declaration (1); } -| empty_statement -; - -/* 19.8.2 Productions from 8.3: Field Declarations */ -field_declaration: - type variable_declarators SC_TK - { register_fields (0, $1, $2); } -| modifiers type variable_declarators SC_TK - { - check_modifiers - ("Illegal modifier %qs for field declaration", - $1, FIELD_MODIFIERS); - check_modifiers_consistency ($1); - register_fields ($1, $2, $3); - } -; - -variable_declarators: - /* Should we use build_decl_list () instead ? FIXME */ - variable_declarator /* Default rule */ -| variable_declarators C_TK variable_declarator - { $$ = chainon ($1, $3); } -| variable_declarators C_TK error - {yyerror ("Missing term"); RECOVER;} -; - -variable_declarator: - variable_declarator_id - { $$ = build_tree_list ($1, NULL_TREE); } -| variable_declarator_id ASSIGN_TK variable_initializer - { - if (java_error_count) - $3 = NULL_TREE; - $$ = build_tree_list - ($1, build_assignment ($2.token, $2.location, $1, $3)); - } -| variable_declarator_id ASSIGN_TK error - { - yyerror ("Missing variable initializer"); - $$ = build_tree_list ($1, NULL_TREE); - RECOVER; - } -| variable_declarator_id ASSIGN_TK variable_initializer error - { - yyerror ("';' expected"); - $$ = build_tree_list ($1, NULL_TREE); - RECOVER; - } -; - -variable_declarator_id: - identifier -| variable_declarator_id OSB_TK CSB_TK - { $$ = build_unresolved_array_type ($1); } -| identifier error - {yyerror ("Invalid declaration"); DRECOVER(vdi);} -| variable_declarator_id OSB_TK error - { - yyerror ("']' expected"); - DRECOVER(vdi); - } -| variable_declarator_id CSB_TK error - {yyerror ("Unbalanced ']'"); DRECOVER(vdi);} -; - -variable_initializer: - expression -| array_initializer -; - -/* 19.8.3 Productions from 8.4: Method Declarations */ -method_declaration: - method_header - { - current_function_decl = $1; - if (current_function_decl - && TREE_CODE (current_function_decl) == FUNCTION_DECL) - source_start_java_method (current_function_decl); - else - current_function_decl = NULL_TREE; - } - method_body - { finish_method_declaration ($3); } -| method_header error - {YYNOT_TWICE yyerror ("'{' expected"); RECOVER;} -; - -method_header: - type method_declarator throws - { $$ = method_header (0, $1, $2, $3); } -| VOID_TK method_declarator throws - { $$ = method_header (0, void_type_node, $2, $3); } -| modifiers type method_declarator throws - { $$ = method_header ($1, $2, $3, $4); } -| modifiers VOID_TK method_declarator throws - { $$ = method_header ($1, void_type_node, $3, $4); } -| type error - { - yyerror ("Invalid method declaration, method name required"); - $$ = NULL_TREE; - RECOVER; - } -| modifiers type error - { - yyerror ("Identifier expected"); - $$ = NULL_TREE; - RECOVER; - } -| VOID_TK error - { - yyerror ("Identifier expected"); - $$ = NULL_TREE; - RECOVER; - } -| modifiers VOID_TK error - { - yyerror ("Identifier expected"); - $$ = NULL_TREE; - RECOVER; - } -| modifiers error - { - yyerror ("Invalid method declaration, return type required"); - $$ = NULL_TREE; - RECOVER; - } -; - -method_declarator: - identifier OP_TK CP_TK - { - ctxp->formal_parameter_number = 0; - $$ = method_declarator ($1, NULL_TREE); - } -| identifier OP_TK formal_parameter_list CP_TK - { $$ = method_declarator ($1, $3); } -| method_declarator OSB_TK CSB_TK - { - SET_EXPR_LOCATION_FROM_TOKEN (wfl_operator, $2); - TREE_PURPOSE ($1) = - build_unresolved_array_type (TREE_PURPOSE ($1)); - parse_warning_context - (wfl_operator, - "Discouraged form of returned type specification"); - } -| identifier OP_TK error - {yyerror ("')' expected"); DRECOVER(method_declarator);} -| method_declarator OSB_TK error - {yyerror ("']' expected"); RECOVER;} -; - -formal_parameter_list: - formal_parameter - { - ctxp->formal_parameter_number = 1; - } -| formal_parameter_list C_TK formal_parameter - { - ctxp->formal_parameter_number += 1; - $$ = chainon ($1, $3); - } -| formal_parameter_list C_TK error - { yyerror ("Missing formal parameter term"); RECOVER; } -; - -formal_parameter: - type variable_declarator_id - { - $$ = build_tree_list ($2, $1); - } -| final type variable_declarator_id /* Added, JDK1.1 final parms */ - { - $$ = build_tree_list ($3, $2); - ARG_FINAL_P ($$) = 1; - } -| type error - { - yyerror ("Missing identifier"); RECOVER; - $$ = NULL_TREE; - } -| final type error - { - yyerror ("Missing identifier"); RECOVER; - $$ = NULL_TREE; - } -; - -final: - modifiers - { - check_modifiers ("Illegal modifier %qs. Only % was expected here", - $1, ACC_FINAL); - if ($1 != ACC_FINAL) - MODIFIER_WFL (FINAL_TK) = build_wfl_node (NULL_TREE); - } -; - -throws: - { $$ = NULL_TREE; } -| THROWS_TK class_type_list - { $$ = $2; } -| THROWS_TK error - {yyerror ("Missing class type term"); RECOVER;} -; - -class_type_list: - class_type - { $$ = build_tree_list ($1, $1); } -| class_type_list C_TK class_type - { $$ = tree_cons ($3, $3, $1); } -| class_type_list C_TK error - {yyerror ("Missing class type term"); RECOVER;} -; - -method_body: - block -| SC_TK { $$ = NULL_TREE; } -; - -/* 19.8.4 Productions from 8.5: Static Initializers */ -static_initializer: - static block - { - TREE_CHAIN ($2) = CPC_STATIC_INITIALIZER_STMT (ctxp); - SET_CPC_STATIC_INITIALIZER_STMT (ctxp, $2); - current_static_block = NULL_TREE; - } -; - -static: /* Test lval.sub_token here */ - modifiers - { - check_modifiers ("Illegal modifier %qs for static initializer", $1, ACC_STATIC); - /* Can't have a static initializer in an innerclass */ - if ($1 | ACC_STATIC && - GET_CPC_LIST () && !TOPLEVEL_CLASS_DECL_P (GET_CPC ())) - parse_error_context - (MODIFIER_WFL (STATIC_TK), - "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes", - IDENTIFIER_POINTER (DECL_NAME (GET_CPC ()))); - SOURCE_FRONTEND_DEBUG (("Modifiers: %d", $1)); - } -; - -/* 19.8.5 Productions from 8.6: Constructor Declarations */ -constructor_declaration: - constructor_header - { - current_function_decl = $1; - source_start_java_method (current_function_decl); - } - constructor_body - { finish_method_declaration ($3); } -; - -constructor_header: - constructor_declarator throws - { $$ = method_header (0, NULL_TREE, $1, $2); } -| modifiers constructor_declarator throws - { $$ = method_header ($1, NULL_TREE, $2, $3); } -; - -constructor_declarator: - simple_name OP_TK CP_TK - { - ctxp->formal_parameter_number = 0; - $$ = method_declarator ($1, NULL_TREE); - } -| simple_name OP_TK formal_parameter_list CP_TK - { $$ = method_declarator ($1, $3); } -; - -constructor_body: - /* Unlike regular method, we always need a complete (empty) - body so we can safely perform all the required code - addition (super invocation and field initialization) */ - block_begin constructor_block_end - { - BLOCK_EXPR_BODY ($2) = build_java_empty_stmt (); - $$ = $2; - } -| block_begin explicit_constructor_invocation constructor_block_end - { $$ = $3; } -| block_begin block_statements constructor_block_end - { $$ = $3; } -| block_begin explicit_constructor_invocation block_statements constructor_block_end - { $$ = $4; } -; - -constructor_block_end: - block_end -; - -/* Error recovery for that rule moved down expression_statement: rule. */ -explicit_constructor_invocation: - this_or_super OP_TK CP_TK SC_TK - { - $$ = build_method_invocation ($1, NULL_TREE); - $$ = build_debugable_stmt (EXPR_WFL_LINECOL ($1), $$); - $$ = java_method_add_stmt (current_function_decl, $$); - } -| this_or_super OP_TK argument_list CP_TK SC_TK - { - $$ = build_method_invocation ($1, $3); - $$ = build_debugable_stmt (EXPR_WFL_LINECOL ($1), $$); - $$ = java_method_add_stmt (current_function_decl, $$); - } - /* Added, JDK1.1 inner classes. Modified because the rule - 'primary' couldn't work. */ -| name DOT_TK SUPER_TK OP_TK argument_list CP_TK SC_TK - {$$ = parse_jdk1_1_error ("explicit constructor invocation"); } -| name DOT_TK SUPER_TK OP_TK CP_TK SC_TK - {$$ = parse_jdk1_1_error ("explicit constructor invocation"); } -; - -this_or_super: /* Added, simplifies error diagnostics */ - THIS_TK - { - tree wfl = build_wfl_node (this_identifier_node); - SET_EXPR_LOCATION_FROM_TOKEN (wfl, $1); - $$ = wfl; - } -| SUPER_TK - { - tree wfl = build_wfl_node (super_identifier_node); - SET_EXPR_LOCATION_FROM_TOKEN (wfl, $1); - $$ = wfl; - } -; - -/* 19.9 Productions from 9: Interfaces */ -/* 19.9.1 Productions from 9.1: Interfaces Declarations */ -interface_declaration: - INTERFACE_TK identifier - { create_interface (0, $2, NULL_TREE); } - interface_body - { ; } -| modifiers INTERFACE_TK identifier - { create_interface ($1, $3, NULL_TREE); } - interface_body - { ; } -| INTERFACE_TK identifier extends_interfaces - { create_interface (0, $2, $3); } - interface_body - { ; } -| modifiers INTERFACE_TK identifier extends_interfaces - { create_interface ($1, $3, $4); } - interface_body - { ; } -| INTERFACE_TK identifier error - { yyerror ("'{' expected"); RECOVER; } -| modifiers INTERFACE_TK identifier error - { yyerror ("'{' expected"); RECOVER; } -; - -extends_interfaces: - EXTENDS_TK interface_type - { - ctxp->interface_number = 1; - $$ = build_tree_list ($2, NULL_TREE); - } -| extends_interfaces C_TK interface_type - { - ctxp->interface_number++; - $$ = chainon ($1, build_tree_list ($3, NULL_TREE)); - } -| EXTENDS_TK error - {yyerror ("Invalid interface type"); RECOVER;} -| extends_interfaces C_TK error - {yyerror ("Missing term"); RECOVER;} -; - -interface_body: - OCB_TK CCB_TK - { $$ = NULL_TREE; } -| OCB_TK interface_member_declarations CCB_TK - { $$ = NULL_TREE; } -; - -interface_member_declarations: - interface_member_declaration -| interface_member_declarations interface_member_declaration -; - -interface_member_declaration: - constant_declaration -| abstract_method_declaration -| class_declaration /* Added, JDK1.1 inner classes */ - { end_class_declaration (1); } -| interface_declaration /* Added, JDK1.1 inner interfaces */ - { end_class_declaration (1); } -| empty_statement -; - -constant_declaration: - field_declaration -; - -abstract_method_declaration: - method_header SC_TK - { - check_abstract_method_header ($1); - current_function_decl = NULL_TREE; /* FIXME ? */ - } -| method_header error - {yyerror ("';' expected"); RECOVER;} -; - -/* 19.10 Productions from 10: Arrays */ -array_initializer: - OCB_TK CCB_TK - { $$ = build_new_array_init ($1.location, NULL_TREE); } -| OCB_TK C_TK CCB_TK - { $$ = build_new_array_init ($1.location, NULL_TREE); } -| OCB_TK variable_initializers CCB_TK - { $$ = build_new_array_init ($1.location, $2); } -| OCB_TK variable_initializers C_TK CCB_TK - { $$ = build_new_array_init ($1.location, $2); } -; - -variable_initializers: - variable_initializer - { - $$ = tree_cons (maybe_build_array_element_wfl ($1), - $1, NULL_TREE); - } -| variable_initializers C_TK variable_initializer - { - $$ = tree_cons (maybe_build_array_element_wfl ($3), $3, $1); - } -| variable_initializers C_TK error - {yyerror ("Missing term"); RECOVER;} -; - -/* 19.11 Production from 14: Blocks and Statements */ -block: - block_begin block_end - { $$ = $2; } -| block_begin block_statements block_end - { $$ = $3; } -; - -block_begin: - OCB_TK - { enter_block (); } -; - -block_end: - CCB_TK - { - maybe_absorb_scoping_blocks (); - $$ = exit_block (); - if (!BLOCK_SUBBLOCKS ($$)) - BLOCK_SUBBLOCKS ($$) = build_java_empty_stmt (); - } -; - -block_statements: - block_statement -| block_statements block_statement -; - -block_statement: - local_variable_declaration_statement -| statement - { java_method_add_stmt (current_function_decl, $1); } -| class_declaration /* Added, JDK1.1 local classes */ - { - LOCAL_CLASS_P (TREE_TYPE (GET_CPC ())) = 1; - end_class_declaration (1); - } -; - -local_variable_declaration_statement: - local_variable_declaration SC_TK /* Can't catch missing ';' here */ -; - -local_variable_declaration: - type variable_declarators - { declare_local_variables (0, $1, $2); } -| final type variable_declarators /* Added, JDK1.1 final locals */ - { declare_local_variables ($1, $2, $3); } -; - -statement: - statement_without_trailing_substatement -| labeled_statement -| if_then_statement -| if_then_else_statement -| while_statement -| for_statement - { $$ = exit_block (); } -; - -statement_nsi: - statement_without_trailing_substatement -| labeled_statement_nsi -| if_then_else_statement_nsi -| while_statement_nsi -| for_statement_nsi - { $$ = exit_block (); } -; - -statement_without_trailing_substatement: - block -| empty_statement -| expression_statement -| switch_statement -| do_statement -| break_statement -| continue_statement -| return_statement -| synchronized_statement -| throw_statement -| try_statement -| assert_statement -; - -empty_statement: - SC_TK - { - if (flag_extraneous_semicolon - && ! current_static_block - && (! current_function_decl || - /* Verify we're not in a inner class declaration */ - (GET_CPC () != TYPE_NAME - (DECL_CONTEXT (current_function_decl))))) - - { -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (wfl_operator, input_location); -#else - EXPR_WFL_SET_LINECOL (wfl_operator, input_line, -1); -#endif - parse_warning_context (wfl_operator, "An empty declaration is a deprecated feature that should not be used"); - } - $$ = build_java_empty_stmt (); - } -; - -label_decl: - identifier REL_CL_TK - { - $$ = build_labeled_block (EXPR_WFL_LINECOL ($1), - EXPR_WFL_NODE ($1)); - pushlevel (2); - push_labeled_block ($$); - PUSH_LABELED_BLOCK ($$); - } -; - -labeled_statement: - label_decl statement - { $$ = finish_labeled_statement ($1, $2); } -| identifier error - {yyerror ("':' expected"); RECOVER;} -; - -labeled_statement_nsi: - label_decl statement_nsi - { $$ = finish_labeled_statement ($1, $2); } -; - -/* We concentrate here a bunch of error handling rules that we couldn't write - earlier, because expression_statement catches a missing ';'. */ -expression_statement: - statement_expression SC_TK - { - /* We have a statement. Generate a WFL around it so - we can debug it */ -#ifdef USE_MAPPED_LOCATION - $$ = expr_add_location ($1, input_location, 1); -#else - $$ = build_expr_wfl ($1, input_filename, input_line, 0); - JAVA_MAYBE_GENERATE_DEBUG_INFO ($$); -#endif - /* We know we have a statement, so set the debug - info to be eventually generate here. */ - } -| error SC_TK - { - YYNOT_TWICE yyerror ("Invalid expression statement"); - DRECOVER (expr_stmt); - } -| error OCB_TK - { - YYNOT_TWICE yyerror ("Invalid expression statement"); - DRECOVER (expr_stmt); - } -| error CCB_TK - { - YYNOT_TWICE yyerror ("Invalid expression statement"); - DRECOVER (expr_stmt); - } -| this_or_super OP_TK error - {yyerror ("')' expected"); RECOVER;} -| this_or_super OP_TK CP_TK error - { - parse_ctor_invocation_error (); - RECOVER; - } -| this_or_super OP_TK argument_list error - {yyerror ("')' expected"); RECOVER;} -| this_or_super OP_TK argument_list CP_TK error - { - parse_ctor_invocation_error (); - RECOVER; - } -| name DOT_TK SUPER_TK error - {yyerror ("'(' expected"); RECOVER;} -| name DOT_TK SUPER_TK OP_TK error - {yyerror ("')' expected"); RECOVER;} -| name DOT_TK SUPER_TK OP_TK argument_list error - {yyerror ("')' expected"); RECOVER;} -| name DOT_TK SUPER_TK OP_TK argument_list CP_TK error - {yyerror ("';' expected"); RECOVER;} -| name DOT_TK SUPER_TK OP_TK CP_TK error - {yyerror ("';' expected"); RECOVER;} -; - -statement_expression: - assignment -| pre_increment_expression -| pre_decrement_expression -| post_increment_expression -| post_decrement_expression -| method_invocation -| class_instance_creation_expression -; - -if_then_statement: - IF_TK OP_TK expression CP_TK statement - { - $$ = build_if_else_statement ($2.location, $3, - $5, NULL_TREE); - } -| IF_TK error - {yyerror ("'(' expected"); RECOVER;} -| IF_TK OP_TK error - {yyerror ("Missing term"); RECOVER;} -| IF_TK OP_TK expression error - {yyerror ("')' expected"); RECOVER;} -; - -if_then_else_statement: - IF_TK OP_TK expression CP_TK statement_nsi ELSE_TK statement - { $$ = build_if_else_statement ($2.location, $3, $5, $7); } -; - -if_then_else_statement_nsi: - IF_TK OP_TK expression CP_TK statement_nsi ELSE_TK statement_nsi - { $$ = build_if_else_statement ($2.location, $3, $5, $7); } -; - -switch_statement: - switch_expression - { - enter_block (); - } - switch_block - { - /* Make into "proper list" of COMPOUND_EXPRs. - I.e. make the last statement also have its own - COMPOUND_EXPR. */ - maybe_absorb_scoping_blocks (); - TREE_OPERAND ($1, 1) = exit_block (); - $$ = build_debugable_stmt (EXPR_WFL_LINECOL ($1), $1); - } -; - -switch_expression: - SWITCH_TK OP_TK expression CP_TK - { - $$ = build3 (SWITCH_EXPR, NULL_TREE, $3, - NULL_TREE, NULL_TREE); - SET_EXPR_LOCATION_FROM_TOKEN ($$, $2); - } -| SWITCH_TK error - {yyerror ("'(' expected"); RECOVER;} -| SWITCH_TK OP_TK error - {yyerror ("Missing term or ')'"); DRECOVER(switch_statement);} -| SWITCH_TK OP_TK expression CP_TK error - {yyerror ("'{' expected"); RECOVER;} -; - -/* Default assignment is there to avoid type node on switch_block - node. */ - -switch_block: - OCB_TK CCB_TK - { $$ = NULL_TREE; } -| OCB_TK switch_labels CCB_TK - { $$ = NULL_TREE; } -| OCB_TK switch_block_statement_groups CCB_TK - { $$ = NULL_TREE; } -| OCB_TK switch_block_statement_groups switch_labels CCB_TK - { $$ = NULL_TREE; } -; - -switch_block_statement_groups: - switch_block_statement_group -| switch_block_statement_groups switch_block_statement_group -; - -switch_block_statement_group: - switch_labels block_statements -; - -switch_labels: - switch_label -| switch_labels switch_label -; - -switch_label: - CASE_TK constant_expression REL_CL_TK - { - tree lab = build1 (CASE_EXPR, NULL_TREE, $2); - SET_EXPR_LOCATION_FROM_TOKEN (lab, $1); - java_method_add_stmt (current_function_decl, lab); - } -| DEFAULT_TK REL_CL_TK - { - tree lab = make_node (DEFAULT_EXPR); - SET_EXPR_LOCATION_FROM_TOKEN (lab, $1); - java_method_add_stmt (current_function_decl, lab); - } -| CASE_TK error - {yyerror ("Missing or invalid constant expression"); RECOVER;} -| CASE_TK constant_expression error - {yyerror ("':' expected"); RECOVER;} -| DEFAULT_TK error - {yyerror ("':' expected"); RECOVER;} -; - -while_expression: - WHILE_TK OP_TK expression CP_TK - { - tree body = build_loop_body ($2.location, $3, 0); - $$ = build_new_loop (body); - } -; - -while_statement: - while_expression statement - { $$ = finish_loop_body (0, NULL_TREE, $2, 0); } -| WHILE_TK error - {YYERROR_NOW; yyerror ("'(' expected"); RECOVER;} -| WHILE_TK OP_TK error - {yyerror ("Missing term and ')' expected"); RECOVER;} -| WHILE_TK OP_TK expression error - {yyerror ("')' expected"); RECOVER;} -; - -while_statement_nsi: - while_expression statement_nsi - { $$ = finish_loop_body (0, NULL_TREE, $2, 0); } -; - -do_statement_begin: - DO_TK - { - tree body = build_loop_body (0, NULL_TREE, 1); - $$ = build_new_loop (body); - } - /* Need error handing here. FIXME */ -; - -do_statement: - do_statement_begin statement WHILE_TK OP_TK expression CP_TK SC_TK - { $$ = finish_loop_body ($4.location, $5, $2, 1); } -; - -for_statement: - for_begin SC_TK expression SC_TK for_update CP_TK statement - { - if (CONSTANT_CLASS_P ($3)) - $3 = build_wfl_node ($3); - $$ = finish_for_loop (EXPR_WFL_LINECOL ($3), $3, $5, $7); - } -| for_begin SC_TK SC_TK for_update CP_TK statement - { - $$ = finish_for_loop (0, NULL_TREE, $4, $6); - /* We have not condition, so we get rid of the EXIT_EXPR */ - LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY ($$), 0) = - build_java_empty_stmt (); - } -| for_begin SC_TK error - {yyerror ("Invalid control expression"); RECOVER;} -| for_begin SC_TK expression SC_TK error - {yyerror ("Invalid update expression"); RECOVER;} -| for_begin SC_TK SC_TK error - {yyerror ("Invalid update expression"); RECOVER;} -; - -for_statement_nsi: - for_begin SC_TK expression SC_TK for_update CP_TK statement_nsi - { $$ = finish_for_loop (EXPR_WFL_LINECOL ($3), $3, $5, $7);} -| for_begin SC_TK SC_TK for_update CP_TK statement_nsi - { - $$ = finish_for_loop (0, NULL_TREE, $4, $6); - /* We have not condition, so we get rid of the EXIT_EXPR */ - LOOP_EXPR_BODY_CONDITION_EXPR (LOOP_EXPR_BODY ($$), 0) = - build_java_empty_stmt (); - } -; - -for_header: - FOR_TK OP_TK - { - /* This scope defined for local variable that may be - defined within the scope of the for loop */ - enter_block (); - } -| FOR_TK error - {yyerror ("'(' expected"); DRECOVER(for_1);} -| FOR_TK OP_TK error - {yyerror ("Invalid init statement"); RECOVER;} -; - -for_begin: - for_header for_init - { - /* We now declare the loop body. The loop is - declared as a for loop. */ - tree body = build_loop_body (0, NULL_TREE, 0); - $$ = build_new_loop (body); - FOR_LOOP_P ($$) = 1; - /* The loop is added to the current block the for - statement is defined within */ - java_method_add_stmt (current_function_decl, $$); - } -; -for_init: /* Can be empty */ - { $$ = build_java_empty_stmt (); } -| statement_expression_list - { - /* Init statement recorded within the previously - defined block scope */ - $$ = java_method_add_stmt (current_function_decl, $1); - } -| local_variable_declaration - { - /* Local variable are recorded within the previously - defined block scope */ - $$ = NULL_TREE; - } -| statement_expression_list error - {yyerror ("';' expected"); DRECOVER(for_init_1);} -; - -for_update: /* Can be empty */ - {$$ = build_java_empty_stmt ();} -| statement_expression_list - { $$ = build_debugable_stmt (BUILD_LOCATION (), $1); } -; - -statement_expression_list: - statement_expression - { $$ = add_stmt_to_compound (NULL_TREE, NULL_TREE, $1); } -| statement_expression_list C_TK statement_expression - { $$ = add_stmt_to_compound ($1, NULL_TREE, $3); } -| statement_expression_list C_TK error - {yyerror ("Missing term"); RECOVER;} -; - -break_statement: - BREAK_TK SC_TK - { $$ = build_bc_statement ($1.location, 1, NULL_TREE); } -| BREAK_TK identifier SC_TK - { $$ = build_bc_statement ($1.location, 1, $2); } -| BREAK_TK error - {yyerror ("Missing term"); RECOVER;} -| BREAK_TK identifier error - {yyerror ("';' expected"); RECOVER;} -; - -continue_statement: - CONTINUE_TK SC_TK - { $$ = build_bc_statement ($1.location, 0, NULL_TREE); } -| CONTINUE_TK identifier SC_TK - { $$ = build_bc_statement ($1.location, 0, $2); } -| CONTINUE_TK error - {yyerror ("Missing term"); RECOVER;} -| CONTINUE_TK identifier error - {yyerror ("';' expected"); RECOVER;} -; - -return_statement: - RETURN_TK SC_TK - { $$ = build_return ($1.location, NULL_TREE); } -| RETURN_TK expression SC_TK - { $$ = build_return ($1.location, $2); } -| RETURN_TK error - {yyerror ("Missing term"); RECOVER;} -| RETURN_TK expression error - {yyerror ("';' expected"); RECOVER;} -; - -throw_statement: - THROW_TK expression SC_TK - { - $$ = build1 (THROW_EXPR, NULL_TREE, $2); - SET_EXPR_LOCATION_FROM_TOKEN ($$, $1); - } -| THROW_TK error - {yyerror ("Missing term"); RECOVER;} -| THROW_TK expression error - {yyerror ("';' expected"); RECOVER;} -; - -assert_statement: - ASSERT_TK expression REL_CL_TK expression SC_TK - { - $$ = build_assertion ($1.location, $2, $4); - } -| ASSERT_TK expression SC_TK - { - $$ = build_assertion ($1.location, $2, NULL_TREE); - } -| ASSERT_TK error - {yyerror ("Missing term"); RECOVER;} -| ASSERT_TK expression error - {yyerror ("';' expected"); RECOVER;} -; - -synchronized_statement: - synchronized OP_TK expression CP_TK block - { - $$ = build2 (SYNCHRONIZED_EXPR, NULL_TREE, $3, $5); - EXPR_WFL_LINECOL ($$) = - EXPR_WFL_LINECOL (MODIFIER_WFL (SYNCHRONIZED_TK)); - } -| synchronized OP_TK expression CP_TK error - {yyerror ("'{' expected"); RECOVER;} -| synchronized error - {yyerror ("'(' expected"); RECOVER;} -| synchronized OP_TK error CP_TK - {yyerror ("Missing term"); RECOVER;} -| synchronized OP_TK error - {yyerror ("Missing term"); RECOVER;} -; - -synchronized: - modifiers - { - check_modifiers ( - "Illegal modifier %qs. Only % was expected here", - $1, ACC_SYNCHRONIZED); - if ($1 != ACC_SYNCHRONIZED) - MODIFIER_WFL (SYNCHRONIZED_TK) = - build_wfl_node (NULL_TREE); - } -; - -try_statement: - TRY_TK block catches - { $$ = build_try_statement ($1.location, $2, $3); } -| TRY_TK block finally - { $$ = build_try_finally_statement ($1.location, $2, $3); } -| TRY_TK block catches finally - { $$ = build_try_finally_statement - ($1.location, build_try_statement ($1.location, - $2, $3), $4); - } -| TRY_TK error - {yyerror ("'{' expected"); DRECOVER (try_statement);} -; - -catches: - catch_clause -| catches catch_clause - { - TREE_CHAIN ($2) = $1; - $$ = $2; - } -; - -catch_clause: - catch_clause_parameter block - { - java_method_add_stmt (current_function_decl, $2); - exit_block (); - $$ = $1; - } -; - -catch_clause_parameter: - CATCH_TK OP_TK formal_parameter CP_TK - { - /* We add a block to define a scope for - formal_parameter (CCBP). The formal parameter is - declared initialized by the appropriate function - call */ - tree ccpb; - tree init; - if ($3) - { - ccpb = enter_block (); - init = build_assignment - (ASSIGN_TK, $2.location, TREE_PURPOSE ($3), - build0 (JAVA_EXC_OBJ_EXPR, ptr_type_node)); - declare_local_variables (0, TREE_VALUE ($3), - build_tree_list - (TREE_PURPOSE ($3), init)); - $$ = build1 (JAVA_CATCH_EXPR, NULL_TREE, ccpb); - SET_EXPR_LOCATION_FROM_TOKEN ($$, $1); - } - else - { - $$ = error_mark_node; - } - } -| CATCH_TK error - {yyerror ("'(' expected"); RECOVER; $$ = NULL_TREE;} -| CATCH_TK OP_TK error - { - yyerror ("Missing term or ')' expected"); - RECOVER; $$ = NULL_TREE; - } -| CATCH_TK OP_TK error CP_TK /* That's for () */ - {yyerror ("Missing term"); RECOVER; $$ = NULL_TREE;} -; - -finally: - FINALLY_TK block - { $$ = $2; } -| FINALLY_TK error - {yyerror ("'{' expected"); RECOVER; } -; - -/* 19.12 Production from 15: Expressions */ -primary: - primary_no_new_array -| array_creation_uninitialized -| array_creation_initialized -; - -primary_no_new_array: - literal -| THIS_TK - { $$ = build_this ($1.location); } -| OP_TK expression CP_TK - {$$ = $2;} -| class_instance_creation_expression -| field_access -| method_invocation -| array_access -| type_literals - /* Added, JDK1.1 inner classes. Documentation is wrong - referring to a 'ClassName' (class_name) rule that doesn't - exist. Used name: instead. */ -| name DOT_TK THIS_TK - { - tree wfl = build_wfl_node (this_identifier_node); - $$ = make_qualified_primary ($1, wfl, EXPR_WFL_LINECOL ($1)); - } -| OP_TK expression error - {yyerror ("')' expected"); RECOVER;} -| name DOT_TK error - {yyerror ("'class' or 'this' expected" ); RECOVER;} -| primitive_type DOT_TK error - {yyerror ("'class' expected" ); RECOVER;} -| VOID_TK DOT_TK error - {yyerror ("'class' expected" ); RECOVER;} -; - -type_literals: - name DOT_TK CLASS_TK - { $$ = build_incomplete_class_ref ($2.location, $1); } -| array_type DOT_TK CLASS_TK - { $$ = build_incomplete_class_ref ($2.location, $1); } -| primitive_type DOT_TK CLASS_TK - { $$ = build_incomplete_class_ref ($2.location, $1); } -| VOID_TK DOT_TK CLASS_TK - { - $$ = build_incomplete_class_ref ($2.location, - void_type_node); - } -; - -class_instance_creation_expression: - NEW_TK class_type OP_TK argument_list CP_TK - { $$ = build_new_invocation ($2, $4); } -| NEW_TK class_type OP_TK CP_TK - { $$ = build_new_invocation ($2, NULL_TREE); } -| anonymous_class_creation - /* Added, JDK1.1 inner classes, modified to use name or - primary instead of primary solely which couldn't work in - all situations. */ -| something_dot_new identifier OP_TK CP_TK - { - tree ctor = build_new_invocation ($2, NULL_TREE); - $$ = make_qualified_primary ($1, ctor, - EXPR_WFL_LINECOL ($1)); - } -| something_dot_new identifier OP_TK CP_TK class_body -| something_dot_new identifier OP_TK argument_list CP_TK - { - tree ctor = build_new_invocation ($2, $4); - $$ = make_qualified_primary ($1, ctor, - EXPR_WFL_LINECOL ($1)); - } -| something_dot_new identifier OP_TK argument_list CP_TK class_body -| NEW_TK error SC_TK - {$$ = NULL_TREE; yyerror ("'(' expected"); DRECOVER(new_1);} -| NEW_TK class_type error - {$$ = NULL_TREE; yyerror ("'(' expected"); RECOVER;} -| NEW_TK class_type OP_TK error - {$$ = NULL_TREE; yyerror ("')' or term expected"); RECOVER;} -| NEW_TK class_type OP_TK argument_list error - {$$ = NULL_TREE; yyerror ("')' expected"); RECOVER;} -| something_dot_new error - { - $$ = NULL_TREE; - YYERROR_NOW; - yyerror ("Identifier expected"); - RECOVER; - } -| something_dot_new identifier error - {$$ = NULL_TREE; yyerror ("'(' expected"); RECOVER;} -; - -/* Created after JDK1.1 rules originally added to - class_instance_creation_expression, but modified to use - 'class_type' instead of 'TypeName' (type_name) which is mentioned - in the documentation but doesn't exist. */ - -anonymous_class_creation: - NEW_TK class_type OP_TK argument_list CP_TK - { create_anonymous_class ($2); } - class_body - { - tree id = build_wfl_node (DECL_NAME (GET_CPC ())); - EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL ($2); - - end_class_declaration (1); - - /* Now we can craft the new expression */ - $$ = build_new_invocation (id, $4); - - /* Note that we can't possibly be here if - `class_type' is an interface (in which case the - anonymous class extends Object and implements - `class_type', hence its constructor can't have - arguments.) */ - - /* Otherwise, the innerclass must feature a - constructor matching `argument_list'. Anonymous - classes are a bit special: it's impossible to - define constructor for them, hence constructors - must be generated following the hints provided by - the `new' expression. Whether a super constructor - of that nature exists or not is to be verified - later on in get_constructor_super. - - It's during the expansion of a `new' statement - referring to an anonymous class that a ctor will - be generated for the anonymous class, with the - right arguments. */ - - } -| NEW_TK class_type OP_TK CP_TK - { create_anonymous_class ($2); } - class_body - { - tree id = build_wfl_node (DECL_NAME (GET_CPC ())); - EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL ($2); - - end_class_declaration (1); - - /* Now we can craft the new expression. The - statement doesn't need to be remember so that a - constructor can be generated, since its signature - is already known. */ - $$ = build_new_invocation (id, NULL_TREE); - } -; - -something_dot_new: /* Added, not part of the specs. */ - name DOT_TK NEW_TK - { $$ = $1; } -| primary DOT_TK NEW_TK - { $$ = $1; } -; - -argument_list: - expression - { - $$ = tree_cons (NULL_TREE, $1, NULL_TREE); - ctxp->formal_parameter_number = 1; - } -| argument_list C_TK expression - { - ctxp->formal_parameter_number += 1; - $$ = tree_cons (NULL_TREE, $3, $1); - } -| argument_list C_TK error - {yyerror ("Missing term"); RECOVER;} -; - -array_creation_uninitialized: - NEW_TK primitive_type dim_exprs - { $$ = build_newarray_node ($2, $3, 0); } -| NEW_TK class_or_interface_type dim_exprs - { $$ = build_newarray_node ($2, $3, 0); } -| NEW_TK primitive_type dim_exprs dims - { $$ = build_newarray_node ($2, $3, pop_current_osb (ctxp));} -| NEW_TK class_or_interface_type dim_exprs dims - { $$ = build_newarray_node ($2, $3, pop_current_osb (ctxp));} -| NEW_TK error CSB_TK - {yyerror ("'[' expected"); DRECOVER ("]");} -| NEW_TK error OSB_TK - {yyerror ("']' expected"); RECOVER;} -; - -array_creation_initialized: - /* Added, JDK1.1 anonymous array. Initial documentation rule - modified */ - NEW_TK class_or_interface_type dims array_initializer - { - char *sig; - int osb = pop_current_osb (ctxp); - while (osb--) - obstack_grow (&temporary_obstack, "[]", 2); - obstack_1grow (&temporary_obstack, '\0'); - sig = obstack_finish (&temporary_obstack); - $$ = build3 (NEW_ANONYMOUS_ARRAY_EXPR, NULL_TREE, - $2, get_identifier (sig), $4); - } -| NEW_TK primitive_type dims array_initializer - { - int osb = pop_current_osb (ctxp); - tree type = $2; - while (osb--) - type = build_java_array_type (type, -1); - $$ = build3 (NEW_ANONYMOUS_ARRAY_EXPR, NULL_TREE, - build_pointer_type (type), NULL_TREE, $4); - } -| NEW_TK error CSB_TK - {yyerror ("'[' expected"); DRECOVER ("]");} -| NEW_TK error OSB_TK - {yyerror ("']' expected"); RECOVER;} -; - -dim_exprs: - dim_expr - { $$ = build_tree_list (NULL_TREE, $1); } -| dim_exprs dim_expr - { $$ = tree_cons (NULL_TREE, $2, $$); } -; - -dim_expr: - OSB_TK expression CSB_TK - { - if (JNUMERIC_TYPE_P (TREE_TYPE ($2))) - { - $2 = build_wfl_node ($2); - TREE_TYPE ($2) = NULL_TREE; - } - EXPR_WFL_LINECOL ($2) = $1.location; - $$ = $2; - } -| OSB_TK expression error - {yyerror ("']' expected"); RECOVER;} -| OSB_TK error - { - yyerror ("Missing term"); - yyerror ("']' expected"); - RECOVER; - } -; - -dims: - OSB_TK CSB_TK - { - int allocate = 0; - /* If not initialized, allocate memory for the osb - numbers stack */ - if (!ctxp->osb_limit) - { - allocate = ctxp->osb_limit = 32; - ctxp->osb_depth = -1; - } - /* If capacity overflown, reallocate a bigger chunk */ - else if (ctxp->osb_depth+1 == ctxp->osb_limit) - allocate = ctxp->osb_limit << 1; - - if (allocate) - { - allocate *= sizeof (int); - if (ctxp->osb_number) - ctxp->osb_number = xrealloc (ctxp->osb_number, - allocate); - else - ctxp->osb_number = xmalloc (allocate); - } - ctxp->osb_depth++; - CURRENT_OSB (ctxp) = 1; - } -| dims OSB_TK CSB_TK - { CURRENT_OSB (ctxp)++; } -| dims OSB_TK error - { yyerror ("']' expected"); RECOVER;} -; - -field_access: - primary DOT_TK identifier - { $$ = make_qualified_primary ($1, $3, $2.location); } - /* FIXME - REWRITE TO: - { $$ = build_binop (COMPONENT_REF, $2.location, $1, $3); } */ -| SUPER_TK DOT_TK identifier - { - tree super_wfl = build_wfl_node (super_identifier_node); - SET_EXPR_LOCATION_FROM_TOKEN (super_wfl, $1); - $$ = make_qualified_name (super_wfl, $3, $2.location); - } -| SUPER_TK error - {yyerror ("Field expected"); DRECOVER (super_field_acces);} -; - -method_invocation: - name OP_TK CP_TK - { $$ = build_method_invocation ($1, NULL_TREE); } -| name OP_TK argument_list CP_TK - { $$ = build_method_invocation ($1, $3); } -| primary DOT_TK identifier OP_TK CP_TK - { - if (TREE_CODE ($1) == THIS_EXPR) - $$ = build_this_super_qualified_invocation - (1, $3, NULL_TREE, 0, $2.location); - else - { - tree invok = build_method_invocation ($3, NULL_TREE); - $$ = make_qualified_primary ($1, invok, $2.location); - } - } -| primary DOT_TK identifier OP_TK argument_list CP_TK - { - if (TREE_CODE ($1) == THIS_EXPR) - $$ = build_this_super_qualified_invocation - (1, $3, $5, 0, $2.location); - else - { - tree invok = build_method_invocation ($3, $5); - $$ = make_qualified_primary ($1, invok, $2.location); - } - } -| SUPER_TK DOT_TK identifier OP_TK CP_TK - { - $$ = build_this_super_qualified_invocation - (0, $3, NULL_TREE, $1.location, $2.location); - } -| SUPER_TK DOT_TK identifier OP_TK argument_list CP_TK - { - $$ = build_this_super_qualified_invocation - (0, $3, $5, $1.location, $2.location); - } - /* Screws up thing. I let it here until I'm convinced it can - be removed. FIXME -| primary DOT_TK error - {yyerror ("'(' expected"); DRECOVER(bad);} */ -| SUPER_TK DOT_TK error CP_TK - { yyerror ("'(' expected"); DRECOVER (method_invocation); } -| SUPER_TK DOT_TK error DOT_TK - { yyerror ("'(' expected"); DRECOVER (method_invocation); } -; - -array_access: - name OSB_TK expression CSB_TK - { $$ = build_array_ref ($2.location, $1, $3); } -| primary_no_new_array OSB_TK expression CSB_TK - { $$ = build_array_ref ($2.location, $1, $3); } -| array_creation_initialized OSB_TK expression CSB_TK - { $$ = build_array_ref ($2.location, $1, $3); } -| name OSB_TK error - { - yyerror ("Missing term and ']' expected"); - DRECOVER(array_access); - } -| name OSB_TK expression error - { - yyerror ("']' expected"); - DRECOVER(array_access); - } -| primary_no_new_array OSB_TK error - { - yyerror ("Missing term and ']' expected"); - DRECOVER(array_access); - } -| primary_no_new_array OSB_TK expression error - { - yyerror ("']' expected"); - DRECOVER(array_access); - } -| array_creation_initialized OSB_TK error - { - yyerror ("Missing term and ']' expected"); - DRECOVER(array_access); - } -| array_creation_initialized OSB_TK expression error - { - yyerror ("']' expected"); - DRECOVER(array_access); - } -; - -postfix_expression: - primary -| name -| post_increment_expression -| post_decrement_expression -; - -post_increment_expression: - postfix_expression INCR_TK - { $$ = build_incdec ($2.token, $2.location, $1, 1); } -; - -post_decrement_expression: - postfix_expression DECR_TK - { $$ = build_incdec ($2.token, $2.location, $1, 1); } -; - -trap_overflow_corner_case: - pre_increment_expression -| pre_decrement_expression -| PLUS_TK unary_expression - {$$ = build_unaryop ($1.token, $1.location, $2); } -| unary_expression_not_plus_minus -| PLUS_TK error - {yyerror ("Missing term"); RECOVER} -; - -unary_expression: - trap_overflow_corner_case - { - if ($1) - error_if_numeric_overflow ($1); - $$ = $1; - } -| MINUS_TK trap_overflow_corner_case - {$$ = build_unaryop ($1.token, $1.location, $2); } -| MINUS_TK error - {yyerror ("Missing term"); RECOVER} -; - -pre_increment_expression: - INCR_TK unary_expression - {$$ = build_incdec ($1.token, $1.location, $2, 0); } -| INCR_TK error - {yyerror ("Missing term"); RECOVER} -; - -pre_decrement_expression: - DECR_TK unary_expression - {$$ = build_incdec ($1.token, $1.location, $2, 0); } -| DECR_TK error - {yyerror ("Missing term"); RECOVER} -; - -unary_expression_not_plus_minus: - postfix_expression -| NOT_TK unary_expression - {$$ = build_unaryop ($1.token, $1.location, $2); } -| NEG_TK unary_expression - {$$ = build_unaryop ($1.token, $1.location, $2); } -| cast_expression -| NOT_TK error - {yyerror ("Missing term"); RECOVER} -| NEG_TK error - {yyerror ("Missing term"); RECOVER} -; - -cast_expression: /* Error handling here is potentially weak */ - OP_TK primitive_type dims CP_TK unary_expression - { - tree type = $2; - int osb = pop_current_osb (ctxp); - while (osb--) - type = build_java_array_type (type, -1); - $$ = build_cast ($1.location, type, $5); - } -| OP_TK primitive_type CP_TK unary_expression - { $$ = build_cast ($1.location, $2, $4); } -| OP_TK expression CP_TK unary_expression_not_plus_minus - { $$ = build_cast ($1.location, $2, $4); } -| OP_TK name dims CP_TK unary_expression_not_plus_minus - { - const char *ptr; - int osb = pop_current_osb (ctxp); - obstack_grow (&temporary_obstack, - IDENTIFIER_POINTER (EXPR_WFL_NODE ($2)), - IDENTIFIER_LENGTH (EXPR_WFL_NODE ($2))); - while (osb--) - obstack_grow (&temporary_obstack, "[]", 2); - obstack_1grow (&temporary_obstack, '\0'); - ptr = obstack_finish (&temporary_obstack); - EXPR_WFL_NODE ($2) = get_identifier (ptr); - $$ = build_cast ($1.location, $2, $5); - } -| OP_TK primitive_type OSB_TK error - {yyerror ("']' expected, invalid type expression");} -| OP_TK error - { - YYNOT_TWICE yyerror ("Invalid type expression"); RECOVER; - RECOVER; - } -| OP_TK primitive_type dims CP_TK error - {yyerror ("Missing term"); RECOVER;} -| OP_TK primitive_type CP_TK error - {yyerror ("Missing term"); RECOVER;} -| OP_TK name dims CP_TK error - {yyerror ("Missing term"); RECOVER;} -; - -multiplicative_expression: - unary_expression -| multiplicative_expression MULT_TK unary_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), - $2.location, $1, $3); - } -| multiplicative_expression DIV_TK unary_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| multiplicative_expression REM_TK unary_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| multiplicative_expression MULT_TK error - {yyerror ("Missing term"); RECOVER;} -| multiplicative_expression DIV_TK error - {yyerror ("Missing term"); RECOVER;} -| multiplicative_expression REM_TK error - {yyerror ("Missing term"); RECOVER;} -; - -additive_expression: - multiplicative_expression -| additive_expression PLUS_TK multiplicative_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| additive_expression MINUS_TK multiplicative_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| additive_expression PLUS_TK error - {yyerror ("Missing term"); RECOVER;} -| additive_expression MINUS_TK error - {yyerror ("Missing term"); RECOVER;} -; - -shift_expression: - additive_expression -| shift_expression LS_TK additive_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| shift_expression SRS_TK additive_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| shift_expression ZRS_TK additive_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| shift_expression LS_TK error - {yyerror ("Missing term"); RECOVER;} -| shift_expression SRS_TK error - {yyerror ("Missing term"); RECOVER;} -| shift_expression ZRS_TK error - {yyerror ("Missing term"); RECOVER;} -; - -relational_expression: - shift_expression -| relational_expression LT_TK shift_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| relational_expression GT_TK shift_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| relational_expression LTE_TK shift_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| relational_expression GTE_TK shift_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| relational_expression INSTANCEOF_TK reference_type - { $$ = build_binop (INSTANCEOF_EXPR, $2.location, $1, $3); } -| relational_expression LT_TK error - {yyerror ("Missing term"); RECOVER;} -| relational_expression GT_TK error - {yyerror ("Missing term"); RECOVER;} -| relational_expression LTE_TK error - {yyerror ("Missing term"); RECOVER;} -| relational_expression GTE_TK error - {yyerror ("Missing term"); RECOVER;} -| relational_expression INSTANCEOF_TK error - {yyerror ("Invalid reference type"); RECOVER;} -; - -equality_expression: - relational_expression -| equality_expression EQ_TK relational_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| equality_expression NEQ_TK relational_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| equality_expression EQ_TK error - {yyerror ("Missing term"); RECOVER;} -| equality_expression NEQ_TK error - {yyerror ("Missing term"); RECOVER;} -; - -and_expression: - equality_expression -| and_expression AND_TK equality_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| and_expression AND_TK error - {yyerror ("Missing term"); RECOVER;} -; - -exclusive_or_expression: - and_expression -| exclusive_or_expression XOR_TK and_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| exclusive_or_expression XOR_TK error - {yyerror ("Missing term"); RECOVER;} -; - -inclusive_or_expression: - exclusive_or_expression -| inclusive_or_expression OR_TK exclusive_or_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| inclusive_or_expression OR_TK error - {yyerror ("Missing term"); RECOVER;} -; - -conditional_and_expression: - inclusive_or_expression -| conditional_and_expression BOOL_AND_TK inclusive_or_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| conditional_and_expression BOOL_AND_TK error - {yyerror ("Missing term"); RECOVER;} -; - -conditional_or_expression: - conditional_and_expression -| conditional_or_expression BOOL_OR_TK conditional_and_expression - { - $$ = build_binop (BINOP_LOOKUP ($2.token), $2.location, - $1, $3); - } -| conditional_or_expression BOOL_OR_TK error - {yyerror ("Missing term"); RECOVER;} -; - -conditional_expression: /* Error handling here is weak */ - conditional_or_expression -| conditional_or_expression REL_QM_TK expression REL_CL_TK conditional_expression - { - $$ = build3 (CONDITIONAL_EXPR, NULL_TREE, $1, $3, $5); - SET_EXPR_LOCATION_FROM_TOKEN ($$, $2); - } -| conditional_or_expression REL_QM_TK REL_CL_TK error - { - YYERROR_NOW; - yyerror ("Missing term"); - DRECOVER (1); - } -| conditional_or_expression REL_QM_TK error - {yyerror ("Missing term"); DRECOVER (2);} -| conditional_or_expression REL_QM_TK expression REL_CL_TK error - {yyerror ("Missing term"); DRECOVER (3);} -; - -assignment_expression: - conditional_expression -| assignment -; - -assignment: - left_hand_side assignment_operator assignment_expression - { $$ = build_assignment ($2.token, $2.location, $1, $3); } -| left_hand_side assignment_operator error - { - YYNOT_TWICE yyerror ("Missing term"); - DRECOVER (assign); - } -; - -left_hand_side: - name -| field_access -| array_access -; - -assignment_operator: - ASSIGN_ANY_TK -| ASSIGN_TK -; - -expression: - assignment_expression -; - -constant_expression: - expression -; - -%% - -/* Helper function to retrieve an OSB count. Should be used when the - `dims:' rule is being used. */ - -static int -pop_current_osb (struct parser_ctxt *ctxp) -{ - int to_return; - - if (ctxp->osb_depth < 0) - abort (); - - to_return = CURRENT_OSB (ctxp); - ctxp->osb_depth--; - - return to_return; -} - - - -/* This section of the code deal with save/restoring parser contexts. - Add mode documentation here. FIXME */ - -/* Helper function. Create a new parser context. With - COPY_FROM_PREVIOUS set to a nonzero value, content of the previous - context is copied, otherwise, the new context is zeroed. The newly - created context becomes the current one. */ - -static void -create_new_parser_context (int copy_from_previous) -{ - struct parser_ctxt *new; - - new = ggc_alloc (sizeof (struct parser_ctxt)); - if (copy_from_previous) - { - memcpy (new, ctxp, sizeof (struct parser_ctxt)); - /* This flag, indicating the context saves global values, - should only be set by java_parser_context_save_global. */ - new->saved_data_ctx = 0; - } - else - memset (new, 0, sizeof (struct parser_ctxt)); - - new->next = ctxp; - ctxp = new; -} - -/* Create a new parser context and make it the current one. */ - -void -java_push_parser_context (void) -{ - create_new_parser_context (0); -} - -void -java_pop_parser_context (int generate) -{ - tree current; - struct parser_ctxt *next; - - if (!ctxp) - return; - - next = ctxp->next; - if (next) - { - input_location = ctxp->save_location; - current_class = ctxp->class_type; - } - - /* If the old and new lexers differ, then free the old one. */ - if (ctxp->lexer && next && ctxp->lexer != next->lexer) - java_destroy_lexer (ctxp->lexer); - - /* Set the single import class file flag to 0 for the current list - of imported things */ - for (current = ctxp->import_list; current; current = TREE_CHAIN (current)) - IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (TREE_VALUE (current)) = 0; - - /* If we pushed a context to parse a class intended to be generated, - we keep it so we can remember the class. What we could actually - do is to just update a list of class names. */ - if (generate) - { - if (ctxp_for_generation_last == NULL) - ctxp_for_generation = ctxp; - else - ctxp_for_generation_last->next = ctxp; - ctxp->next = NULL; - ctxp_for_generation_last = ctxp; - } - - /* And restore those of the previous context */ - if ((ctxp = next)) /* Assignment is really meant here */ - for (current = ctxp->import_list; current; current = TREE_CHAIN (current)) - IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (TREE_VALUE (current)) = 1; -} - -/* Create a parser context for the use of saving some global - variables. */ - -void -java_parser_context_save_global (void) -{ - if (!ctxp) - { - java_push_parser_context (); - ctxp->saved_data_ctx = 1; - } - - /* If this context already stores data, create a new one suitable - for data storage. */ - else if (ctxp->saved_data) - { - create_new_parser_context (1); - ctxp->saved_data_ctx = 1; - } - - ctxp->save_location = input_location; - ctxp->class_type = current_class; - ctxp->function_decl = current_function_decl; - ctxp->saved_data = 1; -} - -/* Restore some global variables from the previous context. Make the - previous context the current one. */ - -void -java_parser_context_restore_global (void) -{ - input_location = ctxp->save_location; - current_class = ctxp->class_type; - if (wfl_operator) -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (wfl_operator, ctxp->save_location); -#else - EXPR_WFL_FILENAME_NODE (wfl_operator) = get_identifier (input_filename); -#endif - current_function_decl = ctxp->function_decl; - ctxp->saved_data = 0; - if (ctxp->saved_data_ctx) - java_pop_parser_context (0); -} - -/* Suspend vital data for the current class/function being parsed so - that an other class can be parsed. Used to let local/anonymous - classes be parsed. */ - -static void -java_parser_context_suspend (void) -{ - /* This makes debugging through java_debug_context easier */ - static const char *const name = ""; - - /* Duplicate the previous context, use it to save the globals we're - interested in */ - create_new_parser_context (1); - ctxp->function_decl = current_function_decl; - ctxp->class_type = current_class; - - /* Then create a new context which inherits all data from the - previous one. This will be the new current context */ - create_new_parser_context (1); - - /* Help debugging */ - ctxp->next->filename = name; -} - -/* Resume vital data for the current class/function being parsed so - that an other class can be parsed. Used to let local/anonymous - classes be parsed. The trick is the data storing file position - informations must be restored to their current value, so parsing - can resume as if no context was ever saved. */ - -static void -java_parser_context_resume (void) -{ - struct parser_ctxt *old = ctxp; /* This one is to be discarded */ - struct parser_ctxt *saver = old->next; /* This one contain saved info */ - struct parser_ctxt *restored = saver->next; /* This one is the old current */ - - /* We need to inherit the list of classes to complete/generate */ - restored->classd_list = old->classd_list; - restored->class_list = old->class_list; - - /* Restore the current class and function from the saver */ - current_class = saver->class_type; - current_function_decl = saver->function_decl; - - /* Retrieve the restored context */ - ctxp = restored; - - /* Re-installed the data for the parsing to carry on */ - memcpy (&ctxp->marker_begining, &old->marker_begining, - (size_t)(&ctxp->marker_end - &ctxp->marker_begining)); -} - -/* Add a new anchor node to which all statement(s) initializing static - and non static initialized upon declaration field(s) will be - linked. */ - -static void -java_parser_context_push_initialized_field (void) -{ - tree node; - - node = build_tree_list (NULL_TREE, NULL_TREE); - TREE_CHAIN (node) = CPC_STATIC_INITIALIZER_LIST (ctxp); - CPC_STATIC_INITIALIZER_LIST (ctxp) = node; - - node = build_tree_list (NULL_TREE, NULL_TREE); - TREE_CHAIN (node) = CPC_INITIALIZER_LIST (ctxp); - CPC_INITIALIZER_LIST (ctxp) = node; - - node = build_tree_list (NULL_TREE, NULL_TREE); - TREE_CHAIN (node) = CPC_INSTANCE_INITIALIZER_LIST (ctxp); - CPC_INSTANCE_INITIALIZER_LIST (ctxp) = node; -} - -/* Pop the lists of initialized field. If this lists aren't empty, - remember them so we can use it to create and populate the finit$ - or functions. */ - -static void -java_parser_context_pop_initialized_field (void) -{ - tree stmts; - tree class_type = TREE_TYPE (GET_CPC ()); - - if (CPC_INITIALIZER_LIST (ctxp)) - { - stmts = CPC_INITIALIZER_STMT (ctxp); - CPC_INITIALIZER_LIST (ctxp) = TREE_CHAIN (CPC_INITIALIZER_LIST (ctxp)); - if (stmts && !java_error_count) - TYPE_FINIT_STMT_LIST (class_type) = reorder_static_initialized (stmts); - } - - if (CPC_STATIC_INITIALIZER_LIST (ctxp)) - { - stmts = CPC_STATIC_INITIALIZER_STMT (ctxp); - CPC_STATIC_INITIALIZER_LIST (ctxp) = - TREE_CHAIN (CPC_STATIC_INITIALIZER_LIST (ctxp)); - /* Keep initialization in order to enforce 8.5 */ - if (stmts && !java_error_count) - TYPE_CLINIT_STMT_LIST (class_type) = nreverse (stmts); - } - - /* JDK 1.1 instance initializers */ - if (CPC_INSTANCE_INITIALIZER_LIST (ctxp)) - { - stmts = CPC_INSTANCE_INITIALIZER_STMT (ctxp); - CPC_INSTANCE_INITIALIZER_LIST (ctxp) = - TREE_CHAIN (CPC_INSTANCE_INITIALIZER_LIST (ctxp)); - if (stmts && !java_error_count) - TYPE_II_STMT_LIST (class_type) = nreverse (stmts); - } -} - -static tree -reorder_static_initialized (tree list) -{ - /* We have to keep things in order. The alias initializer have to - come first, then the initialized regular field, in reverse to - keep them in lexical order. */ - tree marker, previous = NULL_TREE; - for (marker = list; marker; previous = marker, marker = TREE_CHAIN (marker)) - if (TREE_CODE (marker) == TREE_LIST - && !TREE_VALUE (marker) && !TREE_PURPOSE (marker)) - break; - - /* No static initialized, the list is fine as is */ - if (!previous) - list = TREE_CHAIN (marker); - - /* No marker? reverse the whole list */ - else if (!marker) - list = nreverse (list); - - /* Otherwise, reverse what's after the marker and the new reordered - sublist will replace the marker. */ - else - { - TREE_CHAIN (previous) = NULL_TREE; - list = nreverse (list); - list = chainon (TREE_CHAIN (marker), list); - } - return list; -} - -/* Helper functions to dump the parser context stack. */ - -#define TAB_CONTEXT(C) \ - {int i; for (i = 0; i < (C); i++) fputc (' ', stderr);} - -static void -java_debug_context_do (int tab) -{ - struct parser_ctxt *copy = ctxp; - while (copy) - { - TAB_CONTEXT (tab); - fprintf (stderr, "ctxt: 0x%0lX\n", (unsigned long)copy); - TAB_CONTEXT (tab); - fprintf (stderr, "filename: %s\n", copy->filename); - TAB_CONTEXT (tab); - fprintf (stderr, "package: %s\n", - (copy->package ? - IDENTIFIER_POINTER (copy->package) : "")); - TAB_CONTEXT (tab); - fprintf (stderr, "context for saving: %d\n", copy->saved_data_ctx); - TAB_CONTEXT (tab); - fprintf (stderr, "saved data: %d\n", copy->saved_data); - copy = copy->next; - tab += 2; - } -} - -/* Dump the stacked up parser contexts. Intended to be called from a - debugger. */ - -void -java_debug_context (void) -{ - java_debug_context_do (0); -} - - - -/* Flag for the error report routine to issue the error the first time - it's called (overriding the default behavior which is to drop the - first invocation and honor the second one, taking advantage of a - richer context. */ -static int force_error = 0; - -/* Reporting an constructor invocation error. */ -static void -parse_ctor_invocation_error (void) -{ - if (DECL_CONSTRUCTOR_P (current_function_decl)) - yyerror ("Constructor invocation must be first thing in a constructor"); - else - yyerror ("Only constructors can invoke constructors"); -} - -/* Reporting JDK1.1 features not implemented. */ - -static tree -parse_jdk1_1_error (const char *msg) -{ - sorry (": %qs JDK1.1(TM) feature", msg); - java_error_count++; - return build_java_empty_stmt (); -} - -static int do_warning = 0; - -void -yyerror (const char *msgid) -{ -#ifdef USE_MAPPED_LOCATION - static source_location elc; - expanded_location xloc = expand_location (input_location); - int current_line = xloc.line; -#else - static java_lc elc; - int save_lineno; - int current_line = input_line; -#endif - static int prev_lineno; - static const char *prev_msg; - - char *remainder, *code_from_source; - - if (!force_error && prev_lineno == current_line) - return; -#ifndef USE_MAPPED_LOCATION - current_line = ctxp->lexer->token_start.line; -#endif - - /* Save current error location but report latter, when the context is - richer. */ - if (ctxp->java_error_flag == 0) - { - ctxp->java_error_flag = 1; -#ifdef USE_MAPPED_LOCATION - elc = input_location; -#else - elc = ctxp->lexer->token_start; -#endif - /* Do something to use the previous line if we're reaching the - end of the file... */ -#ifdef VERBOSE_SKELETON - printf ("* Error detected (%s)\n", (msgid ? msgid : "(null)")); -#endif - return; - } - - /* Ignore duplicate message on the same line. BTW, this is dubious. FIXME */ - if (!force_error && msgid == prev_msg && prev_lineno == current_line) - return; - - ctxp->java_error_flag = 0; - if (do_warning) - java_warning_count++; - else - java_error_count++; - -#if 0 /* FIXME */ - if (elc.col == 0 && msgid && msgid[1] == ';') - elc = ctxp->prev_line_end; -#endif - - prev_msg = msgid; - -#ifdef USE_MAPPED_LOCATION - prev_lineno = current_line; - code_from_source = java_get_line_col (xloc.file, current_line, xloc.column); -#else - save_lineno = input_line; - prev_lineno = input_line = current_line; - code_from_source = java_get_line_col (input_filename, current_line, - ctxp->lexer->token_start.col); -#endif - - - obstack_grow0 (&temporary_obstack, - code_from_source, strlen (code_from_source)); - remainder = obstack_finish (&temporary_obstack); - if (do_warning) - warning (0, "%s.\n%s", msgid, remainder); - else - error ("%s.\n%s", msgid, remainder); - - /* This allow us to cheaply avoid an extra 'Invalid expression - statement' error report when errors have been already reported on - the same line. This occurs when we report an error but don't have - a synchronization point other than ';', which - expression_statement is the only one to take care of. */ -#ifndef USE_MAPPED_LOCATION - input_line = save_lineno; -#endif - ctxp->prevent_ese = input_line; -} - -static void -issue_warning_error_from_context ( -#ifdef USE_MAPPED_LOCATION - source_location cl, -#else - tree cl, -#endif - const char *gmsgid, va_list *ap) -{ -#ifdef USE_MAPPED_LOCATION - source_location saved_location = input_location; - expanded_location xloc = expand_location (cl); -#else - java_lc save_lc = ctxp->lexer->token_start; - const char *saved = ctxp->filename, *saved_input_filename; -#endif - char buffer [4096]; - text_info text; - - text.err_no = errno; - text.args_ptr = ap; - text.format_spec = gmsgid; - pp_format (global_dc->printer, &text); - pp_output_formatted_text (global_dc->printer); - strncpy (buffer, pp_formatted_text (global_dc->printer), sizeof (buffer) - 1); - buffer[sizeof (buffer) - 1] = '\0'; - pp_clear_output_area (global_dc->printer); - - force_error = 1; - -#ifdef USE_MAPPED_LOCATION - if (xloc.file != NULL) - { - ctxp->filename = xloc.file; - input_location = cl; - } -#else - ctxp->lexer->token_start.line = EXPR_WFL_LINENO (cl); - ctxp->lexer->token_start.col = (EXPR_WFL_COLNO (cl) == 0xfff ? -1 - : EXPR_WFL_COLNO (cl) == 0xffe ? -2 - : EXPR_WFL_COLNO (cl)); - - /* We have a CL, that's a good reason for using it if it contains data */ - if (TREE_CODE (cl) == EXPR_WITH_FILE_LOCATION && EXPR_WFL_FILENAME_NODE (cl)) - ctxp->filename = EXPR_WFL_FILENAME (cl); - saved_input_filename = input_filename; - input_filename = ctxp->filename; -#endif - java_error (NULL); - java_error (buffer); -#ifdef USE_MAPPED_LOCATION - input_location = saved_location; -#else - ctxp->filename = saved; - input_filename = saved_input_filename; - ctxp->lexer->token_start = save_lc; -#endif - force_error = 0; -} - -/* Issue an error message at a current source line CL. - FUTURE/FIXME: change cl to be a source_location. */ - -void -parse_error_context (tree cl, const char *gmsgid, ...) -{ - va_list ap; - va_start (ap, gmsgid); -#ifdef USE_MAPPED_LOCATION - issue_warning_error_from_context (EXPR_LOCATION (cl), gmsgid, &ap); -#else - issue_warning_error_from_context (cl, gmsgid, &ap); -#endif - va_end (ap); -} - -/* Issue a warning at a current source line CL. - FUTURE/FIXME: change cl to be a source_location. */ - -static void -parse_warning_context (tree cl, const char *gmsgid, ...) -{ - va_list ap; - va_start (ap, gmsgid); - - do_warning = 1; -#ifdef USE_MAPPED_LOCATION - issue_warning_error_from_context (EXPR_LOCATION (cl), gmsgid, &ap); -#else - issue_warning_error_from_context (cl, gmsgid, &ap); -#endif - do_warning = 0; - va_end (ap); -} - -static tree -find_expr_with_wfl (tree node) -{ - while (node) - { - enum tree_code_class code; - tree to_return; - - switch (TREE_CODE (node)) - { - case BLOCK: - node = BLOCK_EXPR_BODY (node); - continue; - - case COMPOUND_EXPR: - to_return = find_expr_with_wfl (TREE_OPERAND (node, 0)); - if (to_return) - return to_return; - node = TREE_OPERAND (node, 1); - continue; - - case LOOP_EXPR: - node = TREE_OPERAND (node, 0); - continue; - - case LABELED_BLOCK_EXPR: - node = LABELED_BLOCK_BODY (node); - continue; - - default: - code = TREE_CODE_CLASS (TREE_CODE (node)); - if (((code == tcc_unary) || (code == tcc_binary) - || (code == tcc_expression)) - && EXPR_WFL_LINECOL (node)) - return node; - return NULL_TREE; - } - } - return NULL_TREE; -} - -/* Issue a missing return statement error. Uses METHOD to figure the - last line of the method the error occurs in. */ - -static void -missing_return_error (tree method) -{ -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (wfl_operator, DECL_FUNCTION_LAST_LINE (method)); -#else - EXPR_WFL_SET_LINECOL (wfl_operator, DECL_FUNCTION_LAST_LINE (method), -2); -#endif - parse_error_context (wfl_operator, "Missing return statement"); -} - -/* Issue an unreachable statement error. From NODE, find the next - statement to report appropriately. */ -static void -unreachable_stmt_error (tree node) -{ - /* Browse node to find the next expression node that has a WFL. Use - the location to report the error */ - if (TREE_CODE (node) == COMPOUND_EXPR) - node = find_expr_with_wfl (TREE_OPERAND (node, 1)); - else - node = find_expr_with_wfl (node); - - if (node) - { -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (wfl_operator, EXPR_LOCATION (node)); -#else - EXPR_WFL_SET_LINECOL (wfl_operator, EXPR_WFL_LINENO (node), -2); -#endif - parse_error_context (wfl_operator, "Unreachable statement"); - } - else - abort (); -} - -static int -not_accessible_field_error (tree wfl, tree decl) -{ - parse_error_context - (wfl, "Can't access %s field %<%s.%s%> from %qs", - accessibility_string (get_access_flags_from_decl (decl)), - GET_TYPE_NAME (DECL_CONTEXT (decl)), - IDENTIFIER_POINTER (DECL_NAME (decl)), - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (current_class)))); - return 1; -} - -int -java_report_errors (void) -{ - if (java_error_count) - fprintf (stderr, "%d error%s", - java_error_count, (java_error_count == 1 ? "" : "s")); - if (java_warning_count) - fprintf (stderr, "%s%d warning%s", (java_error_count ? ", " : ""), - java_warning_count, (java_warning_count == 1 ? "" : "s")); - if (java_error_count || java_warning_count) - putc ('\n', stderr); - return java_error_count; -} - -static char * -java_accstring_lookup (int flags) -{ - static char buffer [80]; -#define COPY_RETURN(S) {strcpy (buffer, S); return buffer;} - - /* Access modifier looked-up first for easier report on forbidden - access. */ - if (flags & ACC_PUBLIC) COPY_RETURN ("public"); - if (flags & ACC_PRIVATE) COPY_RETURN ("private"); - if (flags & ACC_PROTECTED) COPY_RETURN ("protected"); - if (flags & ACC_STATIC) COPY_RETURN ("static"); - if (flags & ACC_FINAL) COPY_RETURN ("final"); - if (flags & ACC_SYNCHRONIZED) COPY_RETURN ("synchronized"); - if (flags & ACC_VOLATILE) COPY_RETURN ("volatile"); - if (flags & ACC_TRANSIENT) COPY_RETURN ("transient"); - if (flags & ACC_NATIVE) COPY_RETURN ("native"); - if (flags & ACC_INTERFACE) COPY_RETURN ("interface"); - if (flags & ACC_ABSTRACT) COPY_RETURN ("abstract"); - - buffer [0] = '\0'; - return buffer; -#undef COPY_RETURN -} - -/* Returns a string denoting the accessibility of a class or a member as - indicated by FLAGS. We need a separate function from - java_accstring_lookup, as the latter can return spurious "static", etc. - if package-private access is defined (in which case none of the - relevant access control bits in FLAGS is set). */ - -static const char * -accessibility_string (int flags) -{ - if (flags & ACC_PRIVATE) return "private"; - if (flags & ACC_PROTECTED) return "protected"; - if (flags & ACC_PUBLIC) return "public"; - - return "package-private"; -} - -/* Issuing error messages upon redefinition of classes, interfaces or - variables. */ - -static void -classitf_redefinition_error (const char *context, tree id, tree decl, tree cl) -{ - parse_error_context (cl, "%s %qs already defined in %s:%d", - context, IDENTIFIER_POINTER (id), - DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl)); - /* Here we should point out where its redefined. It's a unicode. FIXME */ -} - -static void -variable_redefinition_error (tree context, tree name, tree type, int line) -{ - const char *type_name; - - /* Figure a proper name for type. We might haven't resolved it */ - if (TREE_CODE (type) == POINTER_TYPE && !TREE_TYPE (type)) - type_name = IDENTIFIER_POINTER (TYPE_NAME (type)); - else - type_name = lang_printable_name (type, 0); - - parse_error_context (context, - "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d", - IDENTIFIER_POINTER (name), - type_name, IDENTIFIER_POINTER (name), line); -} - -/* If ANAME is terminated with `[]', it indicates an array. This - function returns the number of `[]' found and if this number is - greater than zero, it extracts the array type name and places it in - the node pointed to by TRIMMED unless TRIMMED is null. */ - -static int -build_type_name_from_array_name (tree aname, tree *trimmed) -{ - const char *name = IDENTIFIER_POINTER (aname); - int len = IDENTIFIER_LENGTH (aname); - int array_dims; - - STRING_STRIP_BRACKETS (name, len, array_dims); - - if (array_dims && trimmed) - *trimmed = get_identifier_with_length (name, len); - - return array_dims; -} - -static tree -build_array_from_name (tree type, tree type_wfl, tree name, tree *ret_name) -{ - int more_dims = 0; - - /* Eventually get more dims */ - more_dims = build_type_name_from_array_name (name, &name); - - /* If we have, then craft a new type for this variable */ - if (more_dims) - { - tree save = type; - - /* If we have a pointer, use its type */ - if (TREE_CODE (type) == POINTER_TYPE) - type = TREE_TYPE (type); - - /* Building the first dimension of a primitive type uses this - function */ - if (JPRIMITIVE_TYPE_P (type)) - { - type = build_java_array_type (type, -1); - more_dims--; - } - /* Otherwise, if we have a WFL for this type, use it (the type - is already an array on an unresolved type, and we just keep - on adding dimensions) */ - else if (type_wfl) - { - type = type_wfl; - more_dims += build_type_name_from_array_name (TYPE_NAME (save), - NULL); - } - - /* Add all the dimensions */ - while (more_dims--) - type = build_unresolved_array_type (type); - - /* The type may have been incomplete in the first place */ - if (type_wfl) - type = obtain_incomplete_type (type); - } - - if (ret_name) - *ret_name = name; - return type; -} - -/* Build something that the type identifier resolver will identify as - being an array to an unresolved type. TYPE_WFL is a WFL on a - identifier. */ - -static tree -build_unresolved_array_type (tree type_or_wfl) -{ - const char *ptr; - tree wfl; - - /* TYPE_OR_WFL might be an array on a resolved type. In this case, - just create a array type */ - if (TREE_CODE (type_or_wfl) == RECORD_TYPE) - return build_java_array_type (type_or_wfl, -1); - - obstack_grow (&temporary_obstack, - IDENTIFIER_POINTER (EXPR_WFL_NODE (type_or_wfl)), - IDENTIFIER_LENGTH (EXPR_WFL_NODE (type_or_wfl))); - obstack_grow0 (&temporary_obstack, "[]", 2); - ptr = obstack_finish (&temporary_obstack); -#ifdef USE_MAPPED_LOCATION - wfl = build_expr_wfl (get_identifier (ptr), EXPR_LOCATION (type_or_wfl)); -#else - wfl = build_expr_wfl (get_identifier (ptr), - EXPR_WFL_FILENAME (type_or_wfl), - EXPR_WFL_LINENO (type_or_wfl), - EXPR_WFL_COLNO (type_or_wfl)); -#endif - /* Re-install the existing qualifications so that the type can be - resolved properly. */ - EXPR_WFL_QUALIFICATION (wfl) = EXPR_WFL_QUALIFICATION (type_or_wfl); - return wfl; -} - -static void -parser_add_interface (tree class_decl, tree interface_decl, tree wfl) -{ - if (maybe_add_interface (TREE_TYPE (class_decl), TREE_TYPE (interface_decl))) - parse_error_context (wfl, "Interface %qs repeated", - IDENTIFIER_POINTER (DECL_NAME (interface_decl))); -} - -/* Bulk of common class/interface checks. Return 1 if an error was - encountered. TAG is 0 for a class, 1 for an interface. */ - -static int -check_class_interface_creation (int is_interface, int flags, tree raw_name, - tree qualified_name, tree decl, tree cl) -{ - tree node; - int sca = 0; /* Static class allowed */ - int icaf = 0; /* Inner class allowed flags */ - int uaaf = CLASS_MODIFIERS; /* Usually allowed access flags */ - - if (!quiet_flag) - fprintf (stderr, " %s%s %s", - (CPC_INNER_P () ? "inner" : ""), - (is_interface ? "interface" : "class"), - IDENTIFIER_POINTER (qualified_name)); - - /* Scope of an interface/class type name: - - Can't be imported by a single type import - - Can't already exists in the package */ - if (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (raw_name) - && (node = find_name_in_single_imports (raw_name)) - && !CPC_INNER_P ()) - { - parse_error_context - (cl, "%s name %qs clashes with imported type %qs", - (is_interface ? "Interface" : "Class"), - IDENTIFIER_POINTER (raw_name), IDENTIFIER_POINTER (node)); - return 1; - } - if (decl && CLASS_COMPLETE_P (decl)) - { - classitf_redefinition_error ((is_interface ? "Interface" : "Class"), - qualified_name, decl, cl); - return 1; - } - - if (check_inner_class_redefinition (raw_name, cl)) - return 1; - - /* If public, file name should match class/interface name, except - when dealing with an inner class */ - if (!CPC_INNER_P () && (flags & ACC_PUBLIC )) - { - const char *fname = input_filename; - const char *f; - - for (f = fname + strlen (fname); - f != fname && ! IS_DIR_SEPARATOR (*f); - f--) - ; - if (IS_DIR_SEPARATOR (*f)) - f++; - if (strncmp (IDENTIFIER_POINTER (raw_name), - f , IDENTIFIER_LENGTH (raw_name)) || - f [IDENTIFIER_LENGTH (raw_name)] != '.') - parse_error_context - (cl, "Public %s %qs must be defined in a file called %<%s.java%>", - (is_interface ? "interface" : "class"), - IDENTIFIER_POINTER (qualified_name), - IDENTIFIER_POINTER (raw_name)); - } - - /* Static classes can be declared only in top level classes. Note: - once static, a inner class is a top level class. */ - if (flags & ACC_STATIC) - { - /* Catch the specific error of declaring an class inner class - with no toplevel enclosing class. Prevent check_modifiers from - complaining a second time */ - if (CPC_INNER_P () && !TOPLEVEL_CLASS_DECL_P (GET_CPC())) - { - parse_error_context (cl, "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes", - IDENTIFIER_POINTER (qualified_name)); - sca = ACC_STATIC; - } - /* Else, in the context of a top-level class declaration, let - `check_modifiers' do its job, otherwise, give it a go */ - else - sca = (GET_CPC_LIST () ? ACC_STATIC : 0); - } - - /* Inner classes can be declared private or protected - within their enclosing classes. */ - if (CPC_INNER_P ()) - { - /* A class which is local to a block can't be public, private, - protected or static. But it is created final, so allow this - one. */ - if (current_function_decl) - icaf = sca = uaaf = ACC_FINAL; - else - { - check_modifiers_consistency (flags); - icaf = ACC_PROTECTED; - if (! CLASS_INTERFACE (GET_CPC ())) - icaf |= ACC_PRIVATE; - } - } - - if (is_interface) - { - if (CPC_INNER_P ()) - uaaf = INTERFACE_INNER_MODIFIERS; - else - uaaf = INTERFACE_MODIFIERS; - - check_modifiers ("Illegal modifier %qs for interface declaration", - flags, uaaf); - } - else - check_modifiers ((current_function_decl ? - "Illegal modifier %qs for local class declaration" : - "Illegal modifier %qs for class declaration"), - flags, uaaf|sca|icaf); - return 0; -} - -/* Construct a nested class name. If the final component starts with - a digit, return true. Otherwise return false. */ -static int -make_nested_class_name (tree cpc_list) -{ - tree name; - - if (!cpc_list) - return 0; - - make_nested_class_name (TREE_CHAIN (cpc_list)); - - /* Pick the qualified name when dealing with the first upmost - enclosing class */ - name = (TREE_CHAIN (cpc_list) - ? TREE_PURPOSE (cpc_list) : DECL_NAME (TREE_VALUE (cpc_list))); - obstack_grow (&temporary_obstack, - IDENTIFIER_POINTER (name), IDENTIFIER_LENGTH (name)); - obstack_1grow (&temporary_obstack, '$'); - - return ISDIGIT (IDENTIFIER_POINTER (name)[0]); -} - -/* Can't redefine a class already defined in an earlier scope. */ - -static int -check_inner_class_redefinition (tree raw_name, tree cl) -{ - tree scope_list; - - for (scope_list = GET_CPC_LIST (); scope_list; - scope_list = GET_NEXT_ENCLOSING_CPC (scope_list)) - if (raw_name == GET_CPC_UN_NODE (scope_list)) - { - parse_error_context - (cl, "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes", - IDENTIFIER_POINTER (raw_name)); - return 1; - } - return 0; -} - -/* Tries to find a decl for CLASS_TYPE within ENCLOSING. May return an - invisible/non-accessible matching decl when an accessible one could not be - found, in order to give a better error message when accessibility is - checked later. */ - -static tree -resolve_inner_class (tree context, tree cl, tree enclosing, tree class_type) -{ - tree local_super = NULL_TREE; - tree candidate = NULL_TREE; - - /* This hash table is used to register the classes we're going - through when searching the current class as an inner class, in - order to detect circular references. */ - htab_t circularity_hash = htab_create (20, htab_hash_pointer, htab_eq_pointer, - NULL); - - while (enclosing) - { - tree decl; - - *htab_find_slot (circularity_hash, enclosing, INSERT) = enclosing; - - if ((decl = find_as_inner_class (enclosing, class_type, cl))) - { - if (inner_class_accessible (decl, context)) - { - candidate = decl; - break; - } - else - if (candidate == NULL_TREE) - candidate = decl; - } - - /* Now go to the upper classes, bail out if necessary. We will - analyze the returned SUPER and act accordingly (see - do_resolve_class). */ - if (JPRIMITIVE_TYPE_P (TREE_TYPE (enclosing)) - || TREE_TYPE (enclosing) == void_type_node) - { - parse_error_context (cl, "Qualifier must be a reference"); - enclosing = NULL_TREE; - break; - } - local_super = CLASSTYPE_SUPER (TREE_TYPE (enclosing)); - if (!local_super || local_super == object_type_node) - break; - - if (TREE_CODE (local_super) == POINTER_TYPE) - local_super = do_resolve_class (NULL, NULL, local_super, NULL, NULL); - else - local_super = TYPE_NAME (local_super); - - /* We may not have checked for circular inheritance yet, so do so - here to prevent an infinite loop. */ - if (htab_find (circularity_hash, local_super) != NULL) - { - if (!cl) - cl = lookup_cl (enclosing); - - parse_error_context - (cl, "Cyclic inheritance involving %s", - IDENTIFIER_POINTER (DECL_NAME (enclosing))); - enclosing = NULL_TREE; - } - else - enclosing = local_super; - } - - htab_delete (circularity_hash); - - /* We failed, but we might have found a matching class that wasn't - accessible. Return that to get a better error message. */ - return candidate; -} - -/* Within ENCLOSING, find a decl for NAME and return it. NAME can be - qualified. */ - -static tree -find_as_inner_class (tree enclosing, tree name, tree cl) -{ - tree qual, to_return; - if (!enclosing) - return NULL_TREE; - - name = TYPE_NAME (name); - - /* First search: within the scope of `enclosing', search for name */ - if (QUALIFIED_P (name) && cl && EXPR_WFL_NODE (cl) == name) - qual = EXPR_WFL_QUALIFICATION (cl); - else if (cl) - qual = build_tree_list (cl, NULL_TREE); - else - qual = build_tree_list (build_unknown_wfl (name), NULL_TREE); - - if ((to_return = find_as_inner_class_do (qual, enclosing))) - return to_return; - - /* We're dealing with a qualified name. Try to resolve thing until - we get something that is an enclosing class. */ - if (QUALIFIED_P (name) && cl && EXPR_WFL_NODE (cl) == name) - { - tree acc = NULL_TREE, decl = NULL_TREE, ptr; - - for (qual = EXPR_WFL_QUALIFICATION (cl); qual && !decl; - qual = TREE_CHAIN (qual)) - { - acc = merge_qualified_name (acc, - EXPR_WFL_NODE (TREE_PURPOSE (qual))); - BUILD_PTR_FROM_NAME (ptr, acc); - decl = do_resolve_class (NULL_TREE, NULL_TREE, ptr, NULL_TREE, cl); - } - - /* A NULL qual and a decl means that the search ended - successfully?!? We have to do something then. FIXME */ - - if (decl) - enclosing = decl; - else - qual = EXPR_WFL_QUALIFICATION (cl); - } - /* Otherwise, create a qual for the other part of the resolution. */ - else - qual = build_tree_list (build_unknown_wfl (name), NULL_TREE); - - return find_as_inner_class_do (qual, enclosing); -} - -/* We go inside the list of sub classes and try to find a way - through. */ - -static tree -find_as_inner_class_do (tree qual, tree enclosing) -{ - if (!qual) - return NULL_TREE; - - for (; qual && enclosing; qual = TREE_CHAIN (qual)) - { - tree name_to_match = EXPR_WFL_NODE (TREE_PURPOSE (qual)); - tree next_enclosing = NULL_TREE; - tree inner_list; - - for (inner_list = DECL_INNER_CLASS_LIST (enclosing); - inner_list; inner_list = TREE_CHAIN (inner_list)) - { - if (TREE_VALUE (inner_list) == name_to_match) - { - next_enclosing = TREE_PURPOSE (inner_list); - break; - } - } - enclosing = next_enclosing; - } - - return (!qual && enclosing ? enclosing : NULL_TREE); -} - -static void -link_nested_class_to_enclosing (void) -{ - if (GET_ENCLOSING_CPC ()) - { - tree enclosing = GET_ENCLOSING_CPC_CONTEXT (); - DECL_INNER_CLASS_LIST (enclosing) = - tree_cons (GET_CPC (), GET_CPC_UN (), - DECL_INNER_CLASS_LIST (enclosing)); - } -} - -static tree -maybe_make_nested_class_name (tree name) -{ - tree id = NULL_TREE; - - if (CPC_INNER_P ()) - { - /* If we're in a function, we must append a number to create the - nested class name. However, we don't do this if the class we - are constructing is anonymous, because in that case we'll - already have a number as the class name. */ - if (! make_nested_class_name (GET_CPC_LIST ()) - && current_function_decl != NULL_TREE - && ! ISDIGIT (IDENTIFIER_POINTER (name)[0])) - { - char buf[10]; - sprintf (buf, "%d", anonymous_class_counter); - ++anonymous_class_counter; - obstack_grow (&temporary_obstack, buf, strlen (buf)); - obstack_1grow (&temporary_obstack, '$'); - } - obstack_grow0 (&temporary_obstack, - IDENTIFIER_POINTER (name), - IDENTIFIER_LENGTH (name)); - id = get_identifier (obstack_finish (&temporary_obstack)); - if (ctxp->package) - QUALIFIED_P (id) = 1; - } - return id; -} - -/* If DECL is NULL, create and push a new DECL, record the current - line CL and do other maintenance things. */ - -static tree -maybe_create_class_interface_decl (tree decl, tree raw_name, - tree qualified_name, tree cl) -{ - if (!decl) - decl = push_class (make_class (), qualified_name); - - /* Take care of the file and line business */ -#ifdef USE_MAPPED_LOCATION - DECL_SOURCE_LOCATION (decl) = EXPR_LOCATION (cl); -#else - DECL_SOURCE_FILE (decl) = EXPR_WFL_FILENAME (cl); - DECL_SOURCE_LINE (decl) = EXPR_WFL_LINENO (cl); -#endif - CLASS_FROM_SOURCE_P (TREE_TYPE (decl)) = 1; - CLASS_PARSED_P (TREE_TYPE (decl)) = 1; -#ifdef USE_MAPPED_LOCATION - { - tree tmp = maybe_get_identifier (EXPR_FILENAME (cl)); - CLASS_FROM_CURRENTLY_COMPILED_P (TREE_TYPE (decl)) = - tmp && IS_A_COMMAND_LINE_FILENAME_P (tmp); - } -#else - CLASS_FROM_CURRENTLY_COMPILED_P (TREE_TYPE (decl)) = - IS_A_COMMAND_LINE_FILENAME_P (EXPR_WFL_FILENAME_NODE (cl)); -#endif - - PUSH_CPC (decl, raw_name); - DECL_CONTEXT (decl) = GET_ENCLOSING_CPC_CONTEXT (); - - /* Link the declaration to the already seen ones */ - TREE_CHAIN (decl) = ctxp->class_list; - ctxp->class_list = decl; - - /* Create a new nodes in the global lists */ - gclass_list = tree_cons (NULL_TREE, decl, gclass_list); - all_class_list = tree_cons (NULL_TREE, decl, all_class_list); - - /* Install a new dependency list element */ - create_jdep_list (ctxp); - - /* We keep the compilation unit imports in the class so that - they can be used later to resolve type dependencies that - aren't necessary to solve now. */ - TYPE_IMPORT_LIST (TREE_TYPE (decl)) = ctxp->import_list; - TYPE_IMPORT_DEMAND_LIST (TREE_TYPE (decl)) = ctxp->import_demand_list; - - TYPE_PACKAGE (TREE_TYPE (decl)) = ctxp->package; - - SOURCE_FRONTEND_DEBUG (("Defining class/interface %s", - IDENTIFIER_POINTER (qualified_name))); - return decl; -} - -static void -add_superinterfaces (tree decl, tree interface_list) -{ - tree node; - /* Superinterface(s): if present and defined, parser_check_super_interface () - takes care of ensuring that: - - This is an accessible interface type, - - Circularity detection. - parser_add_interface is then called. If present but not defined, - the check operation is delayed until the super interface gets - defined. */ - for (node = interface_list; node; node = TREE_CHAIN (node)) - { - tree current = TREE_PURPOSE (node); - tree idecl = IDENTIFIER_CLASS_VALUE (EXPR_WFL_NODE (current)); - if (idecl && CLASS_LOADED_P (TREE_TYPE (idecl))) - { - if (!parser_check_super_interface (idecl, decl, current)) - parser_add_interface (decl, idecl, current); - } - else - register_incomplete_type (JDEP_INTERFACE, - current, decl, NULL_TREE); - } -} - -/* Create an interface in pass1 and return its decl. Return the - interface's decl in pass 2. */ - -static tree -create_interface (int flags, tree id, tree super) -{ - tree raw_name = EXPR_WFL_NODE (id); - tree q_name = parser_qualified_classname (raw_name); - tree decl = IDENTIFIER_CLASS_VALUE (q_name); - - /* Certain syntax errors are making SUPER be like ID. Avoid this - case. */ - if (ctxp->class_err && id == super) - super = NULL; - - EXPR_WFL_NODE (id) = q_name; /* Keep source location, even if refined. */ - - /* Basic checks: scope, redefinition, modifiers */ - if (check_class_interface_creation (1, flags, raw_name, q_name, decl, id)) - { - PUSH_ERROR (); - return NULL_TREE; - } - - /* Suspend the current parsing context if we're parsing an inner - interface */ - if (CPC_INNER_P ()) - { - java_parser_context_suspend (); - /* Interface members are public. */ - if (CLASS_INTERFACE (GET_CPC ())) - flags |= ACC_PUBLIC; - } - - /* Push a new context for (static) initialized upon declaration fields */ - java_parser_context_push_initialized_field (); - - /* Interface modifiers check - - public/abstract allowed (already done at that point) - - abstract is obsolete (comes first, it's a warning, or should be) - - Can't use twice the same (checked in the modifier rule) */ - if ((flags & ACC_ABSTRACT) && flag_redundant) - parse_warning_context - (MODIFIER_WFL (ABSTRACT_TK), - "Redundant use of % modifier. Interface %qs is implicitly abstract", IDENTIFIER_POINTER (raw_name)); - - /* Create a new decl if DECL is NULL, otherwise fix it */ - decl = maybe_create_class_interface_decl (decl, raw_name, q_name, id); - - /* Interfaces are always abstract. */ - flags |= ACC_ABSTRACT; - - /* Inner interfaces are always static. */ - if (INNER_CLASS_DECL_P (decl)) - flags |= ACC_STATIC; - - /* Set super info and mark the class a complete */ - set_super_info (ACC_INTERFACE | flags, TREE_TYPE (decl), - object_type_node, ctxp->interface_number); - ctxp->interface_number = 0; - CLASS_COMPLETE_P (decl) = 1; - add_superinterfaces (decl, super); - - /* Eventually sets the @deprecated tag flag */ - CHECK_DEPRECATED (decl); - - return decl; -} - -/* Patch anonymous class CLASS, by either extending or implementing - DEP. */ - -static void -patch_anonymous_class (tree type_decl, tree class_decl, tree wfl) -{ - tree class = TREE_TYPE (class_decl); - tree type = TREE_TYPE (type_decl); - tree binfo = TYPE_BINFO (class); - - /* If it's an interface, implement it */ - if (CLASS_INTERFACE (type_decl)) - { - if (parser_check_super_interface (type_decl, class_decl, wfl)) - return; - - if (!VEC_space (tree, BINFO_BASE_BINFOS (binfo), 1)) - { - /* Extend the binfo - by reallocating and copying it. */ - tree new_binfo; - tree base_binfo; - int i; - - new_binfo = make_tree_binfo ((BINFO_N_BASE_BINFOS (binfo) + 1) * 2); - for (i = 0; BINFO_BASE_ITERATE (binfo, i, base_binfo); i++) - BINFO_BASE_APPEND (new_binfo, base_binfo); - CLASS_HAS_SUPER_FLAG (new_binfo) = CLASS_HAS_SUPER_FLAG (binfo); - BINFO_VTABLE (new_binfo) = BINFO_VTABLE (binfo); - TYPE_BINFO (class) = new_binfo; - } - - /* And add the interface */ - parser_add_interface (class_decl, type_decl, wfl); - } - /* Otherwise, it's a type we want to extend */ - else - { - if (parser_check_super (type_decl, class_decl, wfl)) - return; - BINFO_TYPE (BINFO_BASE_BINFO (binfo, 0)) = type; - } -} - -/* Create an anonymous class which extends/implements TYPE_NAME, and return - its decl. */ - -static tree -create_anonymous_class (tree type_name) -{ - char buffer [80]; - tree super = NULL_TREE, itf = NULL_TREE; - tree id, type_decl, class; - - /* The unqualified name of the anonymous class. It's just a number. */ - sprintf (buffer, "%d", anonymous_class_counter++); - id = build_wfl_node (get_identifier (buffer)); - EXPR_WFL_LINECOL (id) = EXPR_WFL_LINECOL (type_name); - - /* We know about the type to extend/implement. We go ahead */ - if ((type_decl = IDENTIFIER_CLASS_VALUE (EXPR_WFL_NODE (type_name)))) - { - /* Create a class which either implements on extends the designated - class. The class bears an inaccessible name. */ - if (CLASS_INTERFACE (type_decl)) - { - /* It's OK to modify it here. It's been already used and - shouldn't be reused */ - ctxp->interface_number = 1; - /* Interfaces should presented as a list of WFLs */ - itf = build_tree_list (type_name, NULL_TREE); - } - else - super = type_name; - } - - class = create_class (ACC_FINAL, id, super, itf); - - /* We didn't know anything about the stuff. We register a dependence. */ - if (!type_decl) - register_incomplete_type (JDEP_ANONYMOUS, type_name, class, NULL_TREE); - - ANONYMOUS_CLASS_P (TREE_TYPE (class)) = 1; - return class; -} - -/* Create a class in pass1 and return its decl. Return class - interface's decl in pass 2. */ - -static tree -create_class (int flags, tree id, tree super, tree interfaces) -{ - tree raw_name = EXPR_WFL_NODE (id); - tree class_id, decl; - tree super_decl_type; - - /* Certain syntax errors are making SUPER be like ID. Avoid this - case. */ - if (ctxp->class_err && id == super) - super = NULL; - - class_id = parser_qualified_classname (raw_name); - decl = IDENTIFIER_CLASS_VALUE (class_id); - EXPR_WFL_NODE (id) = class_id; - - /* Basic check: scope, redefinition, modifiers */ - if (check_class_interface_creation (0, flags, raw_name, class_id, decl, id)) - { - PUSH_ERROR (); - return NULL_TREE; - } - - /* Suspend the current parsing context if we're parsing an inner - class or an anonymous class. */ - if (CPC_INNER_P ()) - { - java_parser_context_suspend (); - /* Interface members are public. */ - if (CLASS_INTERFACE (GET_CPC ())) - flags |= ACC_PUBLIC; - } - - /* Push a new context for (static) initialized upon declaration fields */ - java_parser_context_push_initialized_field (); - - /* Class modifier check: - - Allowed modifier (already done at that point) - - abstract AND final forbidden - - Public classes defined in the correct file */ - if ((flags & ACC_ABSTRACT) && (flags & ACC_FINAL)) - parse_error_context - (id, "Class %qs can't be declared both abstract and final", - IDENTIFIER_POINTER (raw_name)); - - /* Create a new decl if DECL is NULL, otherwise fix it */ - decl = maybe_create_class_interface_decl (decl, raw_name, class_id, id); - - /* If SUPER exists, use it, otherwise use Object */ - if (super) - { - /* java.lang.Object can't extend anything. */ - if (TREE_TYPE (IDENTIFIER_CLASS_VALUE (class_id)) == object_type_node) - { - parse_error_context (id, "% can't extend anything"); - return NULL_TREE; - } - - super_decl_type = - register_incomplete_type (JDEP_SUPER, super, decl, NULL_TREE); - } - else if (TREE_TYPE (decl) != object_type_node) - super_decl_type = object_type_node; - /* We're defining java.lang.Object */ - else - super_decl_type = NULL_TREE; - - /* A class nested in an interface is implicitly static. */ - if (INNER_CLASS_DECL_P (decl) - && CLASS_INTERFACE (TYPE_NAME (TREE_TYPE (DECL_CONTEXT (decl))))) - { - flags |= ACC_STATIC; - } - - /* Set super info and mark the class as complete. */ - set_super_info (flags, TREE_TYPE (decl), super_decl_type, - ctxp->interface_number); - ctxp->interface_number = 0; - CLASS_COMPLETE_P (decl) = 1; - add_superinterfaces (decl, interfaces); - - /* TYPE_VFIELD' is a compiler-generated field used to point to - virtual function tables. In gcj, every class has a common base - virtual function table in java.lang.object. */ - TYPE_VFIELD (TREE_TYPE (decl)) = TYPE_VFIELD (object_type_node); - - /* Add the private this$ field, Replicate final locals still in - scope as private final fields mangled like val$. - This does not occur for top level (static) inner classes. */ - if (PURE_INNER_CLASS_DECL_P (decl)) - add_inner_class_fields (decl, current_function_decl); - - /* Eventually sets the @deprecated tag flag */ - CHECK_DEPRECATED (decl); - - /* Reset the anonymous class counter when declaring non inner classes */ - if (!INNER_CLASS_DECL_P (decl)) - anonymous_class_counter = 1; - - return decl; -} - -/* End a class declaration: register the statements used to create - finit$ and , pop the current class and resume the prior - parser context if necessary. */ - -static void -end_class_declaration (int resume) -{ - /* If an error occurred, context weren't pushed and won't need to be - popped by a resume. */ - int no_error_occurred = ctxp->next && GET_CPC () != error_mark_node; - - if (GET_CPC () != error_mark_node) - dump_java_tree (TDI_class, GET_CPC ()); - - java_parser_context_pop_initialized_field (); - POP_CPC (); - if (resume && no_error_occurred) - java_parser_context_resume (); - - /* We're ending a class declaration, this is a good time to reset - the interface cout. Note that might have been already done in - create_interface, but if at that time an inner class was being - dealt with, the interface count was reset in a context created - for the sake of handling inner classes declaration. */ - ctxp->interface_number = 0; -} - -static void -add_inner_class_fields (tree class_decl, tree fct_decl) -{ - tree block, marker, f; - - f = add_field (TREE_TYPE (class_decl), - build_current_thisn (TREE_TYPE (class_decl)), - build_pointer_type (TREE_TYPE (DECL_CONTEXT (class_decl))), - ACC_PRIVATE); - FIELD_THISN (f) = 1; - - if (!fct_decl) - return; - - for (block = GET_CURRENT_BLOCK (fct_decl); - block && TREE_CODE (block) == BLOCK; block = BLOCK_SUPERCONTEXT (block)) - { - tree decl; - for (decl = BLOCK_EXPR_DECLS (block); decl; decl = TREE_CHAIN (decl)) - { - tree name, pname; - tree wfl, init, list; - - /* Avoid non final arguments. */ - if (!LOCAL_FINAL_P (decl)) - continue; - - MANGLE_OUTER_LOCAL_VARIABLE_NAME (name, DECL_NAME (decl)); - MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID (pname, DECL_NAME (decl)); - wfl = build_wfl_node (name); - init = build_wfl_node (pname); - /* Build an initialization for the field: it will be - initialized by a parameter added to finit$, bearing a - mangled name of the field itself (param$.) The - parameter is provided to finit$ by the constructor - invoking it (hence the constructor will also feature a - hidden parameter, set to the value of the outer context - local at the time the inner class is created.) - - Note: we take into account all possible locals that can - be accessed by the inner class. It's actually not trivial - to minimize these aliases down to the ones really - used. One way to do that would be to expand all regular - methods first, then finit$ to get a picture of what's - used. It works with the exception that we would have to - go back on all constructor invoked in regular methods to - have their invocation reworked (to include the right amount - of alias initializer parameters.) - - The only real way around, I think, is a first pass to - identify locals really used in the inner class. We leave - the flag FIELD_LOCAL_ALIAS_USED around for that future - use. - - On the other hand, it only affect local inner classes, - whose constructors (and finit$ call) will be featuring - unnecessary arguments. It's easy for a developer to keep - this number of parameter down by using the `final' - keyword only when necessary. For the time being, we can - issue a warning on unnecessary finals. FIXME */ - init = build_assignment (ASSIGN_TK, EXPR_WFL_LINECOL (wfl), - wfl, init); - - /* Register the field. The TREE_LIST holding the part - initialized/initializer will be marked ARG_FINAL_P so - that the created field can be marked - FIELD_LOCAL_ALIAS. */ - list = build_tree_list (wfl, init); - ARG_FINAL_P (list) = 1; - register_fields (ACC_PRIVATE | ACC_FINAL, TREE_TYPE (decl), list); - } - } - - if (!CPC_INITIALIZER_STMT (ctxp)) - return; - - /* If we ever registered an alias field, insert and marker to - remember where the list ends. The second part of the list (the one - featuring initialized fields) so it can be later reversed to - enforce 8.5. The marker will be removed during that operation. */ - marker = build_tree_list (NULL_TREE, NULL_TREE); - TREE_CHAIN (marker) = CPC_INITIALIZER_STMT (ctxp); - SET_CPC_INITIALIZER_STMT (ctxp, marker); -} - -/* Can't use lookup_field () since we don't want to load the class and - can't set the CLASS_LOADED_P flag */ - -static tree -find_field (tree class, tree name) -{ - tree decl; - for (decl = TYPE_FIELDS (class); decl; decl = TREE_CHAIN (decl)) - { - if (DECL_NAME (decl) == name) - return decl; - } - return NULL_TREE; -} - -/* Wrap around lookup_field that doesn't potentially upset the value - of CLASS */ - -static tree -lookup_field_wrapper (tree class, tree name) -{ - tree type = class; - tree decl = NULL_TREE; - java_parser_context_save_global (); - - /* Last chance: if we're within the context of an inner class, we - might be trying to access a local variable defined in an outer - context. We try to look for it now. */ - if (INNER_CLASS_TYPE_P (class) && TREE_CODE (name) == IDENTIFIER_NODE) - { - tree new_name; - MANGLE_OUTER_LOCAL_VARIABLE_NAME (new_name, name); - decl = lookup_field (&type, new_name); - if (decl && decl != error_mark_node) - FIELD_LOCAL_ALIAS_USED (decl) = 1; - } - if (!decl || decl == error_mark_node) - { - type = class; - decl = lookup_field (&type, name); - } - - /* If the field still hasn't been found, try the next enclosing context. */ - if (!decl && INNER_CLASS_TYPE_P (class)) - { - tree outer_type = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (class))); - decl = lookup_field_wrapper (outer_type, name); - } - - java_parser_context_restore_global (); - return decl == error_mark_node ? NULL : decl; -} - -/* Find duplicate field within the same class declarations and report - the error. Returns 1 if a duplicated field was found, 0 - otherwise. */ - -static int -duplicate_declaration_error_p (tree new_field_name, tree new_type, tree cl) -{ - /* This might be modified to work with method decl as well */ - tree decl = find_field (TREE_TYPE (GET_CPC ()), new_field_name); - if (decl) - { - char *t1 = xstrdup (purify_type_name - ((TREE_CODE (new_type) == POINTER_TYPE - && TREE_TYPE (new_type) == NULL_TREE) ? - IDENTIFIER_POINTER (TYPE_NAME (new_type)) : - lang_printable_name (new_type, 1))); - /* The type may not have been completed by the time we report - the error */ - char *t2 = xstrdup (purify_type_name - ((TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE - && TREE_TYPE (TREE_TYPE (decl)) == NULL_TREE) ? - IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl))) : - lang_printable_name (TREE_TYPE (decl), 1))); - parse_error_context - (cl, "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)", - t1, IDENTIFIER_POINTER (new_field_name), - t2, IDENTIFIER_POINTER (DECL_NAME (decl)), - DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl)); - free (t1); - free (t2); - return 1; - } - return 0; -} - -/* Field registration routine. If TYPE doesn't exist, field - declarations are linked to the undefined TYPE dependency list, to - be later resolved in java_complete_class () */ - -static void -register_fields (int flags, tree type, tree variable_list) -{ - tree current, saved_type; - tree class_type = NULL_TREE; - location_t saved_location = input_location; - int must_chain = 0; - tree wfl = NULL_TREE; - - if (GET_CPC ()) - class_type = TREE_TYPE (GET_CPC ()); - - if (!class_type || class_type == error_mark_node) - return; - - /* If we're adding fields to interfaces, those fields are public, - static, final */ - if (CLASS_INTERFACE (TYPE_NAME (class_type))) - { - OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (PUBLIC_TK), - flags, ACC_PUBLIC, "interface field(s)"); - OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (STATIC_TK), - flags, ACC_STATIC, "interface field(s)"); - OBSOLETE_MODIFIER_WARNING (MODIFIER_WFL (FINAL_TK), - flags, ACC_FINAL, "interface field(s)"); - check_modifiers ("Illegal interface member modifier %qs", flags, - INTERFACE_FIELD_MODIFIERS); - flags |= (ACC_PUBLIC | ACC_STATIC | ACC_FINAL); - } - - /* Obtain a suitable type for resolution, if necessary */ - SET_TYPE_FOR_RESOLUTION (type, wfl, must_chain); - - /* If TYPE is fully resolved and we don't have a reference, make one */ - PROMOTE_RECORD_IF_COMPLETE (type, must_chain); - - for (current = variable_list, saved_type = type; current; - current = TREE_CHAIN (current), type = saved_type) - { - tree real_type; - tree field_decl; - tree cl = TREE_PURPOSE (current); - tree init = TREE_VALUE (current); - tree current_name = EXPR_WFL_NODE (cl); - - /* Can't declare non-final static fields in inner classes */ - if ((flags & ACC_STATIC) && !TOPLEVEL_CLASS_TYPE_P (class_type) - && !(flags & ACC_FINAL)) - parse_error_context - (cl, "Field %qs can't be static in inner class %qs unless it is final", - IDENTIFIER_POINTER (EXPR_WFL_NODE (cl)), - lang_printable_name (class_type, 0)); - - /* Process NAME, as it may specify extra dimension(s) for it */ - type = build_array_from_name (type, wfl, current_name, ¤t_name); - - /* Type adjustment. We may have just readjusted TYPE because - the variable specified more dimensions. Make sure we have - a reference if we can and don't have one already. Also - change the name if we have an init. */ - if (type != saved_type) - { - PROMOTE_RECORD_IF_COMPLETE (type, must_chain); - if (init) - EXPR_WFL_NODE (TREE_OPERAND (init, 0)) = current_name; - } - - real_type = GET_REAL_TYPE (type); - /* Check for redeclarations */ - if (duplicate_declaration_error_p (current_name, real_type, cl)) - continue; - - /* Set input_line to the line the field was found and create a - declaration for it. Eventually sets the @deprecated tag flag. */ -#ifdef USE_MAPPED_LOCATION - input_location = EXPR_LOCATION (cl); -#else - input_line = EXPR_WFL_LINENO (cl); -#endif - field_decl = add_field (class_type, current_name, real_type, flags); - CHECK_DEPRECATED_NO_RESET (field_decl); - - /* If the field denotes a final instance variable, then we - allocate a LANG_DECL_SPECIFIC part to keep track of its - initialization. We also mark whether the field was - initialized upon its declaration. We don't do that if the - created field is an alias to a final local. */ - if (!ARG_FINAL_P (current) && (flags & ACC_FINAL)) - { - MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (field_decl); - DECL_FIELD_FINAL_WFL (field_decl) = cl; - } - - /* If the couple initializer/initialized is marked ARG_FINAL_P, - we mark the created field FIELD_LOCAL_ALIAS, so that we can - hide parameters to this inner class finit$ and - constructors. It also means that the field isn't final per - say. */ - if (ARG_FINAL_P (current)) - { - FIELD_LOCAL_ALIAS (field_decl) = 1; - FIELD_FINAL (field_decl) = 0; - } - - /* Check if we must chain. */ - if (must_chain) - register_incomplete_type (JDEP_FIELD, wfl, field_decl, type); - - /* If we have an initialization value tied to the field */ - if (init) - { - /* The field is declared static */ - if (flags & ACC_STATIC) - { - /* We include the field and its initialization part into - a list used to generate . After is - walked, field initializations will be processed and - fields initialized with known constants will be taken - out of and have their DECL_INITIAL set - appropriately. */ - TREE_CHAIN (init) = CPC_STATIC_INITIALIZER_STMT (ctxp); - SET_CPC_STATIC_INITIALIZER_STMT (ctxp, init); - if (TREE_OPERAND (init, 1) - && TREE_CODE (TREE_OPERAND (init, 1)) == NEW_ARRAY_INIT) - TREE_STATIC (TREE_OPERAND (init, 1)) = 1; - } - /* A non-static field declared with an immediate initialization is - to be initialized in , if any. This field is remembered - to be processed at the time of the generation of . */ - else - { - TREE_CHAIN (init) = CPC_INITIALIZER_STMT (ctxp); - SET_CPC_INITIALIZER_STMT (ctxp, init); - } - MODIFY_EXPR_FROM_INITIALIZATION_P (init) = 1; - DECL_INITIAL (field_decl) = TREE_OPERAND (init, 1); - } - } - - CLEAR_DEPRECATED; - input_location = saved_location; -} - -/* Generate finit$, using the list of initialized fields to populate - its body. finit$'s parameter(s) list is adjusted to include the - one(s) used to initialized the field(s) caching outer context - local(s). */ - -static tree -generate_finit (tree class_type) -{ - int count = 0; - tree list = TYPE_FINIT_STMT_LIST (class_type); - tree mdecl, current, parms; - - parms = build_alias_initializer_parameter_list (AIPL_FUNCTION_CREATION, - class_type, NULL_TREE, - &count); - CRAFTED_PARAM_LIST_FIXUP (parms); - mdecl = create_artificial_method (class_type, ACC_PRIVATE, void_type_node, - finit_identifier_node, parms); - fix_method_argument_names (parms, mdecl); - layout_class_method (class_type, CLASSTYPE_SUPER (class_type), - mdecl, NULL_TREE); - DECL_FUNCTION_NAP (mdecl) = count; - start_artificial_method_body (mdecl); - - for (current = list; current; current = TREE_CHAIN (current)) - java_method_add_stmt (mdecl, - build_debugable_stmt (EXPR_WFL_LINECOL (current), - current)); - end_artificial_method_body (mdecl); - return mdecl; -} - -/* Generate a function to run the instance initialization code. The - private method is called `instinit$'. Unless we're dealing with an - anonymous class, we determine whether all ctors of CLASS_TYPE - declare a checked exception in their `throws' clause in order to - see whether it's necessary to encapsulate the instance initializer - statements in a try/catch/rethrow sequence. */ - -static tree -generate_instinit (tree class_type) -{ - tree current; - tree compound = NULL_TREE; - tree parms = tree_cons (this_identifier_node, - build_pointer_type (class_type), end_params_node); - tree mdecl = create_artificial_method (class_type, ACC_PRIVATE, - void_type_node, - instinit_identifier_node, parms); - - layout_class_method (class_type, CLASSTYPE_SUPER (class_type), - mdecl, NULL_TREE); - - /* Gather all the statements in a compound */ - for (current = TYPE_II_STMT_LIST (class_type); - current; current = TREE_CHAIN (current)) - compound = add_stmt_to_compound (compound, NULL_TREE, current); - - /* We need to encapsulate COMPOUND by a try/catch statement to - rethrow exceptions that might occur in the instance initializer. - We do that only if all ctors of CLASS_TYPE are set to catch a - checked exception. This doesn't apply to anonymous classes (since - they don't have declared ctors.) */ - if (!ANONYMOUS_CLASS_P (class_type) && - ctors_unchecked_throws_clause_p (class_type)) - { - compound = encapsulate_with_try_catch (0, exception_type_node, compound, - build1 (THROW_EXPR, NULL_TREE, - build_wfl_node (wpv_id))); - DECL_FUNCTION_THROWS (mdecl) = build_tree_list (NULL_TREE, - exception_type_node); - } - - start_artificial_method_body (mdecl); - java_method_add_stmt (mdecl, compound); - end_artificial_method_body (mdecl); - - return mdecl; -} - -/* FIXME */ -static tree -build_instinit_invocation (tree class_type) -{ - tree to_return = NULL_TREE; - - if (TYPE_II_STMT_LIST (class_type)) - { - tree parm = build_tree_list (NULL_TREE, - build_wfl_node (this_identifier_node)); - to_return = - build_method_invocation (build_wfl_node (instinit_identifier_node), - parm); - } - return to_return; -} - -/* Shared across method_declarator and method_header to remember the - patch stage that was reached during the declaration of the method. - A method DECL is built differently is there is no patch - (JDEP_NO_PATCH) or a patch (JDEP_METHOD or JDEP_METHOD_RETURN) - pending on the currently defined method. */ - -static int patch_stage; - -/* Check the method declaration and add the method to its current - class. If the argument list is known to contain incomplete types, - the method is partially added and the registration will be resume - once the method arguments resolved. If TYPE is NULL, we're dealing - with a constructor. */ - -static tree -method_header (int flags, tree type, tree mdecl, tree throws) -{ - tree type_wfl = NULL_TREE; - tree meth_name = NULL_TREE; - tree current, orig_arg, this_class = NULL; - tree id, meth; - location_t saved_location; - int constructor_ok = 0, must_chain; - int count; - - if (mdecl == error_mark_node) - return error_mark_node; - meth = TREE_VALUE (mdecl); - id = TREE_PURPOSE (mdecl); - - check_modifiers_consistency (flags); - - if (GET_CPC ()) - this_class = TREE_TYPE (GET_CPC ()); - - if (!this_class || this_class == error_mark_node) - return NULL_TREE; - - /* There are some forbidden modifiers for an abstract method and its - class must be abstract as well. */ - if (type && (flags & ACC_ABSTRACT)) - { - ABSTRACT_CHECK (flags, ACC_PRIVATE, id, "Private"); - ABSTRACT_CHECK (flags, ACC_STATIC, id, "Static"); - ABSTRACT_CHECK (flags, ACC_FINAL, id, "Final"); - ABSTRACT_CHECK (flags, ACC_NATIVE, id, "Native"); - ABSTRACT_CHECK (flags, ACC_SYNCHRONIZED, id, "Synchronized"); - ABSTRACT_CHECK (flags, ACC_STRICT, id, "Strictfp"); - if (!CLASS_ABSTRACT (TYPE_NAME (this_class)) - && !CLASS_INTERFACE (TYPE_NAME (this_class))) - parse_error_context - (id, - "Class %qs must be declared abstract to define abstract method %qs", - IDENTIFIER_POINTER (DECL_NAME (GET_CPC ())), - IDENTIFIER_POINTER (EXPR_WFL_NODE (id))); - } - - /* A native method can't be strictfp. */ - if ((flags & ACC_NATIVE) && (flags & ACC_STRICT)) - parse_error_context (id, "native method %qs can't be strictfp", - IDENTIFIER_POINTER (EXPR_WFL_NODE (id))); - /* No such thing as a transient or volatile method. */ - if ((flags & ACC_TRANSIENT)) - parse_error_context (id, "method %qs can't be transient", - IDENTIFIER_POINTER (EXPR_WFL_NODE (id))); - if ((flags & ACC_VOLATILE)) - parse_error_context (id, "method %qs can't be volatile", - IDENTIFIER_POINTER (EXPR_WFL_NODE (id))); - - /* Things to be checked when declaring a constructor */ - if (!type) - { - int ec = java_error_count; - /* 8.6: Constructor declarations: we might be trying to define a - method without specifying a return type. */ - if (EXPR_WFL_NODE (id) != GET_CPC_UN ()) - parse_error_context - (id, "Invalid method declaration, return type required"); - /* 8.6.3: Constructor modifiers */ - else - { - JCONSTRUCTOR_CHECK (flags, ACC_ABSTRACT, id, "abstract"); - JCONSTRUCTOR_CHECK (flags, ACC_STATIC, id, "static"); - JCONSTRUCTOR_CHECK (flags, ACC_FINAL, id, "final"); - JCONSTRUCTOR_CHECK (flags, ACC_NATIVE, id, "native"); - JCONSTRUCTOR_CHECK (flags, ACC_SYNCHRONIZED, id, "synchronized"); - JCONSTRUCTOR_CHECK (flags, ACC_STRICT, id, "strictfp"); - } - /* If we found error here, we don't consider it's OK to tread - the method definition as a constructor, for the rest of this - function */ - if (ec == java_error_count) - constructor_ok = 1; - } - - /* Method declared within the scope of an interface are implicitly - abstract and public. Conflicts with other erroneously provided - modifiers are checked right after. */ - - if (CLASS_INTERFACE (TYPE_NAME (this_class))) - { - /* If FLAGS isn't set because of a modifier, turn the - corresponding modifier WFL to NULL so we issue a warning on - the obsolete use of the modifier */ - if (!(flags & ACC_PUBLIC)) - MODIFIER_WFL (PUBLIC_TK) = NULL; - if (!(flags & ACC_ABSTRACT)) - MODIFIER_WFL (ABSTRACT_TK) = NULL; - flags |= ACC_PUBLIC; - flags |= ACC_ABSTRACT; - } - - /* Inner class can't declare static methods */ - if ((flags & ACC_STATIC) && !TOPLEVEL_CLASS_TYPE_P (this_class)) - { - parse_error_context - (id, "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static", - IDENTIFIER_POINTER (EXPR_WFL_NODE (id)), - lang_printable_name (this_class, 0)); - } - - /* Modifiers context reset moved up, so abstract method declaration - modifiers can be later checked. */ - - /* Set constructor returned type to void and method name to , - unless we found an error identifier the constructor (in which - case we retain the original name) */ - if (!type) - { - type = void_type_node; - if (constructor_ok) - meth_name = init_identifier_node; - } - else - meth_name = EXPR_WFL_NODE (id); - - /* Do the returned type resolution and registration if necessary */ - SET_TYPE_FOR_RESOLUTION (type, type_wfl, must_chain); - - if (meth_name) - type = build_array_from_name (type, type_wfl, meth_name, &meth_name); - EXPR_WFL_NODE (id) = meth_name; - PROMOTE_RECORD_IF_COMPLETE (type, must_chain); - - if (must_chain) - { - patch_stage = JDEP_METHOD_RETURN; - register_incomplete_type (patch_stage, type_wfl, id, type); - TREE_TYPE (meth) = GET_REAL_TYPE (type); - } - else - TREE_TYPE (meth) = type; - - saved_location = input_location; - /* When defining an abstract or interface method, the curly - bracket at level 1 doesn't exist because there is no function - body */ -#ifdef USE_MAPPED_LOCATION - input_location = (ctxp->first_ccb_indent1 ? ctxp->first_ccb_indent1 : - EXPR_LOCATION (id)); -#else - input_line = (ctxp->first_ccb_indent1 ? (int) ctxp->first_ccb_indent1 : - EXPR_WFL_LINENO (id)); -#endif - - /* Remember the original argument list */ - orig_arg = TYPE_ARG_TYPES (meth); - - if (patch_stage) /* includes ret type and/or all args */ - { - jdep *jdep; - meth = add_method_1 (this_class, flags, meth_name, meth); - /* Patch for the return type */ - if (patch_stage == JDEP_METHOD_RETURN) - { - jdep = CLASSD_LAST (ctxp->classd_list); - JDEP_GET_PATCH (jdep) = &TREE_TYPE (TREE_TYPE (meth)); - } - /* This is the stop JDEP. METH allows the function's signature - to be computed. */ - register_incomplete_type (JDEP_METHOD_END, NULL_TREE, meth, NULL_TREE); - } - else - meth = add_method (this_class, flags, meth_name, - build_java_signature (meth)); - - /* Remember final parameters */ - MARK_FINAL_PARMS (meth, orig_arg); - - /* Fix the method argument list so we have the argument name - information */ - fix_method_argument_names (orig_arg, meth); - - /* Register the parameter number and re-install the current line - number */ - DECL_MAX_LOCALS (meth) = ctxp->formal_parameter_number+1; - input_location = saved_location; - - /* Register exception specified by the `throws' keyword for - resolution and set the method decl appropriate field to the list. - Note: the grammar ensures that what we get here are class - types. */ - if (throws) - { - throws = nreverse (throws); - for (current = throws; current; current = TREE_CHAIN (current)) - { - register_incomplete_type (JDEP_EXCEPTION, TREE_VALUE (current), - NULL_TREE, NULL_TREE); - JDEP_GET_PATCH (CLASSD_LAST (ctxp->classd_list)) = - &TREE_VALUE (current); - } - DECL_FUNCTION_THROWS (meth) = throws; - } - - if (TREE_TYPE (GET_CPC ()) != object_type_node) - DECL_FUNCTION_WFL (meth) = id; - - /* Set the flag if we correctly processed a constructor */ - if (constructor_ok) - { - DECL_CONSTRUCTOR_P (meth) = 1; - /* Compute and store the number of artificial parameters declared - for this constructor */ - for (count = 0, current = TYPE_FIELDS (this_class); current; - current = TREE_CHAIN (current)) - if (FIELD_LOCAL_ALIAS (current)) - count++; - DECL_FUNCTION_NAP (meth) = count; - } - - /* Eventually set the @deprecated tag flag */ - CHECK_DEPRECATED (meth); - - return meth; -} - -static void -fix_method_argument_names (tree orig_arg, tree meth) -{ - tree arg = TYPE_ARG_TYPES (TREE_TYPE (meth)); - if (TREE_CODE (TREE_TYPE (meth)) == METHOD_TYPE) - { - TREE_PURPOSE (arg) = this_identifier_node; - arg = TREE_CHAIN (arg); - } - while (orig_arg != end_params_node) - { - TREE_PURPOSE (arg) = TREE_PURPOSE (orig_arg); - orig_arg = TREE_CHAIN (orig_arg); - arg = TREE_CHAIN (arg); - } -} - -/* Complete the method declaration with METHOD_BODY. */ - -static void -finish_method_declaration (tree method_body) -{ - int flags; - - if (!current_function_decl) - return; - - flags = get_access_flags_from_decl (current_function_decl); - - /* 8.4.5 Method Body */ - if ((flags & ACC_ABSTRACT || flags & ACC_NATIVE) && method_body) - { - tree name = DECL_NAME (current_function_decl); - parse_error_context (DECL_FUNCTION_WFL (current_function_decl), - "%s method %qs can't have a body defined", - (METHOD_NATIVE (current_function_decl) ? - "Native" : "Abstract"), - IDENTIFIER_POINTER (name)); - method_body = NULL_TREE; - } - else if (!(flags & ACC_ABSTRACT) && !(flags & ACC_NATIVE) && !method_body) - { - tree name = DECL_NAME (current_function_decl); - parse_error_context - (DECL_FUNCTION_WFL (current_function_decl), - "Non native and non abstract method %qs must have a body defined", - IDENTIFIER_POINTER (name)); - method_body = NULL_TREE; - } - - if (flag_emit_class_files && method_body - && TREE_CODE (method_body) == NOP_EXPR - && TREE_TYPE (current_function_decl) - && TREE_TYPE (TREE_TYPE (current_function_decl)) == void_type_node) - method_body = build1 (RETURN_EXPR, void_type_node, NULL); - - BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (current_function_decl)) = method_body; - maybe_absorb_scoping_blocks (); - /* Exit function's body */ - exit_block (); - /* Merge last line of the function with first line, directly in the - function decl. It will be used to emit correct debug info. */ - DECL_FUNCTION_LAST_LINE (current_function_decl) = ctxp->last_ccb_indent1; - - /* Since function's argument's list are shared, reset the - ARG_FINAL_P parameter that might have been set on some of this - function parameters. */ - UNMARK_FINAL_PARMS (current_function_decl); - - /* So we don't have an irrelevant function declaration context for - the next static block we'll see. */ - current_function_decl = NULL_TREE; -} - -/* Build a an error message for constructor circularity errors. */ - -static char * -constructor_circularity_msg (tree from, tree to) -{ - static char string [4096]; - char *t = xstrdup (lang_printable_name (from, 2)); - sprintf (string, "'%s' invokes '%s'", t, lang_printable_name (to, 2)); - free (t); - return string; -} - -/* Verify a circular call to METH. Return 1 if an error is found, 0 - otherwise. */ - -static GTY(()) tree vcc_list; -static int -verify_constructor_circularity (tree meth, tree current) -{ - tree c; - - for (c = DECL_CONSTRUCTOR_CALLS (current); c; c = TREE_CHAIN (c)) - { - if (TREE_VALUE (c) == meth) - { - char *t; - if (vcc_list) - { - tree liste; - vcc_list = nreverse (vcc_list); - for (liste = vcc_list; liste; liste = TREE_CHAIN (liste)) - { - parse_error_context - (TREE_PURPOSE (TREE_PURPOSE (liste)), "%s", - constructor_circularity_msg - (TREE_VALUE (liste), TREE_VALUE (TREE_PURPOSE (liste)))); - java_error_count--; - } - } - t = xstrdup (lang_printable_name (meth, 2)); - parse_error_context (TREE_PURPOSE (c), - "%s: recursive invocation of constructor %qs", - constructor_circularity_msg (current, meth), t); - free (t); - vcc_list = NULL_TREE; - return 1; - } - } - for (c = DECL_CONSTRUCTOR_CALLS (current); c; c = TREE_CHAIN (c)) - { - vcc_list = tree_cons (c, current, vcc_list); - if (verify_constructor_circularity (meth, TREE_VALUE (c))) - return 1; - vcc_list = TREE_CHAIN (vcc_list); - } - return 0; -} - -/* Check modifiers that can be declared but exclusively */ - -static void -check_modifiers_consistency (int flags) -{ - int acc_count = 0; - tree cl = NULL_TREE; - - THIS_MODIFIER_ONLY (flags, ACC_PUBLIC, PUBLIC_TK, acc_count, cl); - THIS_MODIFIER_ONLY (flags, ACC_PRIVATE, PRIVATE_TK, acc_count, cl); - THIS_MODIFIER_ONLY (flags, ACC_PROTECTED, PROTECTED_TK, acc_count, cl); - if (acc_count > 1) - parse_error_context - (cl, "Inconsistent member declaration. At most one of %, %, or % may be specified"); - - acc_count = 0; - cl = NULL_TREE; - THIS_MODIFIER_ONLY (flags, ACC_FINAL, FINAL_TK, acc_count, cl); - THIS_MODIFIER_ONLY (flags, ACC_VOLATILE, VOLATILE_TK, acc_count, cl); - if (acc_count > 1) - parse_error_context (cl, - "Inconsistent member declaration. At most one of % or % may be specified"); -} - -/* Check the methode header METH for abstract specifics features */ - -static void -check_abstract_method_header (tree meth) -{ - int flags = get_access_flags_from_decl (meth); - - OBSOLETE_MODIFIER_WARNING2 (MODIFIER_WFL (ABSTRACT_TK), flags, - ACC_ABSTRACT, "abstract method", - IDENTIFIER_POINTER (DECL_NAME (meth))); - OBSOLETE_MODIFIER_WARNING2 (MODIFIER_WFL (PUBLIC_TK), flags, - ACC_PUBLIC, "abstract method", - IDENTIFIER_POINTER (DECL_NAME (meth))); - - check_modifiers ("Illegal modifier %qs for interface method", - flags, INTERFACE_METHOD_MODIFIERS); -} - -/* Create a FUNCTION_TYPE node and start augmenting it with the - declared function arguments. Arguments type that can't be resolved - are left as they are, but the returned node is marked as containing - incomplete types. */ - -static tree -method_declarator (tree id, tree list) -{ - tree arg_types = NULL_TREE, current, node; - tree meth = make_node (FUNCTION_TYPE); - jdep *jdep; - - patch_stage = JDEP_NO_PATCH; - - if (GET_CPC () == error_mark_node) - return error_mark_node; - - /* If we're dealing with an inner class constructor, we hide the - this$ decl in the name field of its parameter declaration. We - also might have to hide the outer context local alias - initializers. Not done when the class is a toplevel class. */ - if (PURE_INNER_CLASS_DECL_P (GET_CPC ()) - && EXPR_WFL_NODE (id) == GET_CPC_UN ()) - { - tree aliases_list, type, thisn; - /* First the aliases, linked to the regular parameters */ - aliases_list = - build_alias_initializer_parameter_list (AIPL_FUNCTION_DECLARATION, - TREE_TYPE (GET_CPC ()), - NULL_TREE, NULL); - list = chainon (nreverse (aliases_list), list); - - /* Then this$ */ - type = TREE_TYPE (DECL_CONTEXT (GET_CPC ())); - thisn = build_current_thisn (TREE_TYPE (GET_CPC ())); - list = tree_cons (build_wfl_node (thisn), build_pointer_type (type), - list); - } - - for (current = list; current; current = TREE_CHAIN (current)) - { - int must_chain = 0; - tree wfl_name = TREE_PURPOSE (current); - tree type = TREE_VALUE (current); - tree name = EXPR_WFL_NODE (wfl_name); - tree already, arg_node; - tree type_wfl = NULL_TREE; - tree real_type; - - /* Obtain a suitable type for resolution, if necessary */ - SET_TYPE_FOR_RESOLUTION (type, type_wfl, must_chain); - - /* Process NAME, as it may specify extra dimension(s) for it */ - type = build_array_from_name (type, type_wfl, name, &name); - EXPR_WFL_NODE (wfl_name) = name; - - real_type = GET_REAL_TYPE (type); - if (TREE_CODE (real_type) == RECORD_TYPE) - { - real_type = promote_type (real_type); - if (TREE_CODE (type) == TREE_LIST) - TREE_PURPOSE (type) = real_type; - } - - /* Check redefinition */ - for (already = arg_types; already; already = TREE_CHAIN (already)) - if (TREE_PURPOSE (already) == name) - { - parse_error_context - (wfl_name, "Variable %qs is used more than once in the argument list of method %qs", - IDENTIFIER_POINTER (name), - IDENTIFIER_POINTER (EXPR_WFL_NODE (id))); - break; - } - - /* If we've an incomplete argument type, we know there is a location - to patch when the type get resolved, later. */ - jdep = NULL; - if (must_chain) - { - patch_stage = JDEP_METHOD; - type = register_incomplete_type (patch_stage, - type_wfl, wfl_name, type); - jdep = CLASSD_LAST (ctxp->classd_list); - JDEP_MISC (jdep) = id; - } - - /* The argument node: a name and a (possibly) incomplete type. */ - arg_node = build_tree_list (name, real_type); - /* Remember arguments declared final. */ - ARG_FINAL_P (arg_node) = ARG_FINAL_P (current); - - if (jdep) - JDEP_GET_PATCH (jdep) = &TREE_VALUE (arg_node); - TREE_CHAIN (arg_node) = arg_types; - arg_types = arg_node; - } - TYPE_ARG_TYPES (meth) = chainon (nreverse (arg_types), end_params_node); - node = build_tree_list (id, meth); - return node; -} - -static int -unresolved_type_p (tree wfl, tree *returned) -{ - if (TREE_CODE (wfl) == EXPR_WITH_FILE_LOCATION) - { - if (returned) - { - tree decl = IDENTIFIER_CLASS_VALUE (EXPR_WFL_NODE (wfl)); - if (decl && current_class && (decl == TYPE_NAME (current_class))) - *returned = TREE_TYPE (decl); - else if (GET_CPC_UN () == EXPR_WFL_NODE (wfl)) - *returned = TREE_TYPE (GET_CPC ()); - else - *returned = NULL_TREE; - } - return 1; - } - if (returned) - *returned = wfl; - return 0; -} - -/* From NAME, build a qualified identifier node using the - qualification from the current package definition. */ - -static tree -parser_qualified_classname (tree name) -{ - tree nested_class_name; - - if ((nested_class_name = maybe_make_nested_class_name (name))) - return nested_class_name; - - if (ctxp->package) - return merge_qualified_name (ctxp->package, name); - else - return name; -} - -/* Called once the type a interface extends is resolved. Returns 0 if - everything is OK. */ - -static int -parser_check_super_interface (tree super_decl, tree this_decl, tree this_wfl) -{ - tree super_type = TREE_TYPE (super_decl); - - /* Has to be an interface */ - if (!CLASS_INTERFACE (super_decl)) - { - parse_error_context - (this_wfl, "%s %qs can't implement/extend %s %qs", - (CLASS_INTERFACE (TYPE_NAME (TREE_TYPE (this_decl))) ? - "Interface" : "Class"), - IDENTIFIER_POINTER (DECL_NAME (this_decl)), - (TYPE_ARRAY_P (super_type) ? "array" : "class"), - IDENTIFIER_POINTER (DECL_NAME (super_decl))); - return 1; - } - - /* Check top-level interface access. Inner classes are subject to member - access rules (6.6.1). */ - if (! INNER_CLASS_P (super_type) - && check_pkg_class_access (DECL_NAME (super_decl), - NULL_TREE, true, this_decl)) - return 1; - - SOURCE_FRONTEND_DEBUG (("Completing interface %s with %s", - IDENTIFIER_POINTER (DECL_NAME (this_decl)), - IDENTIFIER_POINTER (DECL_NAME (super_decl)))); - return 0; -} - -/* Makes sure that SUPER_DECL is suitable to extend THIS_DECL. Returns - 0 if everything is OK. */ - -static int -parser_check_super (tree super_decl, tree this_decl, tree wfl) -{ - tree super_type = TREE_TYPE (super_decl); - - /* SUPER should be a CLASS (neither an array nor an interface) */ - if (TYPE_ARRAY_P (super_type) || CLASS_INTERFACE (TYPE_NAME (super_type))) - { - parse_error_context - (wfl, "Class %qs can't subclass %s %qs", - IDENTIFIER_POINTER (DECL_NAME (this_decl)), - (CLASS_INTERFACE (TYPE_NAME (super_type)) ? "interface" : "array"), - IDENTIFIER_POINTER (DECL_NAME (super_decl))); - return 1; - } - - if (CLASS_FINAL (TYPE_NAME (super_type))) - { - parse_error_context (wfl, "Can't subclass final classes: %s", - IDENTIFIER_POINTER (DECL_NAME (super_decl))); - return 1; - } - - /* Check top-level class scope. Inner classes are subject to member access - rules (6.6.1). */ - if (! INNER_CLASS_P (super_type) - && (check_pkg_class_access (DECL_NAME (super_decl), wfl, true, NULL_TREE))) - return 1; - - SOURCE_FRONTEND_DEBUG (("Completing class %s with %s", - IDENTIFIER_POINTER (DECL_NAME (this_decl)), - IDENTIFIER_POINTER (DECL_NAME (super_decl)))); - return 0; -} - -/* Create a new dependency list and link it (in a LIFO manner) to the - CTXP list of type dependency list. */ - -static void -create_jdep_list (struct parser_ctxt *ctxp) -{ - jdeplist *new = xmalloc (sizeof (jdeplist)); - new->first = new->last = NULL; - new->next = ctxp->classd_list; - ctxp->classd_list = new; -} - -static jdeplist * -reverse_jdep_list (struct parser_ctxt *ctxp) -{ - jdeplist *prev = NULL, *current, *next; - for (current = ctxp->classd_list; current; current = next) - { - next = current->next; - current->next = prev; - prev = current; - } - return prev; -} - -/* Create a fake pointer based on the ID stored in - TYPE_NAME. TYPE_NAME can be a WFL or a incomplete type asking to be - registered again. */ - -static tree -obtain_incomplete_type (tree type_name) -{ - tree ptr = NULL_TREE, name; - - if (TREE_CODE (type_name) == EXPR_WITH_FILE_LOCATION) - name = EXPR_WFL_NODE (type_name); - else if (INCOMPLETE_TYPE_P (type_name)) - name = TYPE_NAME (type_name); - else - abort (); - - /* Workaround from build_pointer_type for incomplete types. */ - BUILD_PTR_FROM_NAME (ptr, name); - TYPE_MODE (ptr) = ptr_mode; - layout_type (ptr); - - return ptr; -} - -/* Register a incomplete type whose name is WFL. Reuse PTR if PTR is - non NULL instead of computing a new fake type based on WFL. The new - dependency is inserted in the current type dependency list, in FIFO - manner. */ - -static tree -register_incomplete_type (int kind, tree wfl, tree decl, tree ptr) -{ - jdep *new = xmalloc (sizeof (jdep)); - - if (!ptr && kind != JDEP_METHOD_END) /* JDEP_METHOD_END is a mere marker */ - ptr = obtain_incomplete_type (wfl); - - JDEP_KIND (new) = kind; - JDEP_DECL (new) = decl; - JDEP_TO_RESOLVE (new) = ptr; - JDEP_WFL (new) = wfl; - JDEP_CHAIN (new) = NULL; - JDEP_MISC (new) = NULL_TREE; - /* For some dependencies, set the enclosing class of the current - class to be the enclosing context */ - if ((kind == JDEP_INTERFACE || kind == JDEP_ANONYMOUS || kind == JDEP_SUPER) - && GET_ENCLOSING_CPC ()) - JDEP_ENCLOSING (new) = TREE_VALUE (GET_ENCLOSING_CPC ()); - else - JDEP_ENCLOSING (new) = GET_CPC (); - JDEP_GET_PATCH (new) = (tree *)NULL; - - JDEP_INSERT (ctxp->classd_list, new); - - return ptr; -} - -/* This checks for circular references with innerclasses. We start - from SOURCE and should never reach TARGET. Extended/implemented - types in SOURCE have their enclosing context checked not to reach - TARGET. When the last enclosing context of SOURCE is reached, its - extended/implemented types are also checked not to reach TARGET. - In case of error, WFL of the offending type is returned; NULL_TREE - otherwise. */ - -static tree -check_inner_circular_reference (tree source, tree target) -{ - tree base_binfo; - tree ctx, cl; - int i; - - for (i = 0; BINFO_BASE_ITERATE (TYPE_BINFO (source), i, base_binfo); i++) - { - tree su; - - /* We can end up with a NULL_TREE or an incomplete type here if - we encountered previous type resolution errors. It's safe to - simply ignore these cases. */ - su = BINFO_TYPE (base_binfo); - if (INCOMPLETE_TYPE_P (su)) - continue; - - if (inherits_from_p (su, target)) - return lookup_cl (TYPE_NAME (su)); - - for (ctx = DECL_CONTEXT (TYPE_NAME (su)); ctx; ctx = DECL_CONTEXT (ctx)) - { - /* An enclosing context shouldn't be TARGET */ - if (ctx == TYPE_NAME (target)) - return lookup_cl (TYPE_NAME (su)); - - /* When we reach the enclosing last context, start a check - on it, with the same target */ - if (! DECL_CONTEXT (ctx) && - (cl = check_inner_circular_reference (TREE_TYPE (ctx), target))) - return cl; - } - } - return NULL_TREE; -} - -/* Explore TYPE's `extends' clause member(s) and return the WFL of the - offending type if a circularity is detected. NULL_TREE is returned - otherwise. TYPE can be an interface or a class. */ - -static tree -check_circular_reference (tree type) -{ - tree base_binfo; - int i; - - if (!BINFO_N_BASE_BINFOS (TYPE_BINFO (type))) - return NULL_TREE; - - if (! CLASS_INTERFACE (TYPE_NAME (type))) - { - if (inherits_from_p (CLASSTYPE_SUPER (type), type)) - return lookup_cl (TYPE_NAME (type)); - return NULL_TREE; - } - - for (i = 0; BINFO_BASE_ITERATE (TYPE_BINFO (type), i, base_binfo); i++) - { - if (BINFO_TYPE (base_binfo) != object_type_node - && interface_of_p (type, BINFO_TYPE (base_binfo))) - return lookup_cl (TYPE_NAME (BINFO_TYPE (base_binfo))); - } - return NULL_TREE; -} - -void -java_check_circular_reference (void) -{ - tree current; - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - { - tree type = TREE_TYPE (current); - tree cl; - - cl = check_circular_reference (type); - if (! cl) - cl = check_inner_circular_reference (type, type); - if (cl) - parse_error_context (cl, "Cyclic class inheritance%s", - (cyclic_inheritance_report ? - cyclic_inheritance_report : "")); - } -} - -/* Augment the parameter list PARM with parameters crafted to - initialize outer context locals aliases. Through ARTIFICIAL, a - count is kept of the number of crafted parameters. MODE governs - what eventually gets created: something suitable for a function - creation or a function invocation, either the constructor or - finit$. */ - -static tree -build_alias_initializer_parameter_list (int mode, tree class_type, tree parm, - int *artificial) -{ - tree field; - tree additional_parms = NULL_TREE; - - for (field = TYPE_FIELDS (class_type); field; field = TREE_CHAIN (field)) - if (FIELD_LOCAL_ALIAS (field)) - { - const char *buffer = IDENTIFIER_POINTER (DECL_NAME (field)); - tree purpose = NULL_TREE, value = NULL_TREE, name = NULL_TREE; - tree mangled_id; - - switch (mode) - { - case AIPL_FUNCTION_DECLARATION: - MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR (mangled_id, - &buffer [4]); - purpose = build_wfl_node (mangled_id); - if (TREE_CODE (TREE_TYPE (field)) == POINTER_TYPE) - value = build_wfl_node (TYPE_NAME (TREE_TYPE (field))); - else - value = TREE_TYPE (field); - break; - - case AIPL_FUNCTION_CREATION: - MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR (purpose, - &buffer [4]); - value = TREE_TYPE (field); - break; - - case AIPL_FUNCTION_FINIT_INVOCATION: - MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR (mangled_id, - &buffer [4]); - /* Now, this is wrong. purpose should always be the NAME - of something and value its matching value (decl, type, - etc...) FIXME -- but there is a lot to fix. */ - - /* When invoked for this kind of operation, we already - know whether a field is used or not. */ - purpose = TREE_TYPE (field); - value = build_wfl_node (mangled_id); - break; - - case AIPL_FUNCTION_CTOR_INVOCATION: - /* There are two case: the constructor invocation happens - outside the local inner, in which case, locales from the outer - context are directly used. - - Otherwise, we fold to using the alias directly. */ - if (class_type == current_class) - value = field; - else - { - name = get_identifier (&buffer[4]); - value = IDENTIFIER_LOCAL_VALUE (name); - } - break; - } - additional_parms = tree_cons (purpose, value, additional_parms); - if (artificial) - *artificial +=1; - } - if (additional_parms) - { - if (ANONYMOUS_CLASS_P (class_type) - && mode == AIPL_FUNCTION_CTOR_INVOCATION) - additional_parms = nreverse (additional_parms); - parm = chainon (additional_parms, parm); - } - - return parm; -} - -/* Craft a constructor for CLASS_DECL -- what we should do when none - where found. ARGS is non NULL when a special signature must be - enforced. This is the case for anonymous classes. */ - -static tree -craft_constructor (tree class_decl, tree args) -{ - tree class_type = TREE_TYPE (class_decl); - tree parm = NULL_TREE; - /* Inherit access flags for the constructor from its enclosing class. */ - int valid_ctor_flags = ACC_PUBLIC | ACC_PROTECTED | ACC_PRIVATE; - int flags = (get_access_flags_from_decl (class_decl) & valid_ctor_flags); - int i = 0, artificial = 0; - tree decl, ctor_name; - char buffer [80]; - - ctor_name = init_identifier_node; - - /* If we're dealing with an inner class constructor, we hide the - this$ decl in the name field of its parameter declaration. */ - if (PURE_INNER_CLASS_TYPE_P (class_type)) - { - tree type = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (class_type))); - parm = tree_cons (build_current_thisn (class_type), - build_pointer_type (type), parm); - - /* Some more arguments to be hidden here. The values of the local - variables of the outer context that the inner class needs to see. */ - parm = build_alias_initializer_parameter_list (AIPL_FUNCTION_CREATION, - class_type, parm, - &artificial); - } - - /* Then if there are any args to be enforced, enforce them now */ - for (; args && args != end_params_node; args = TREE_CHAIN (args)) - { - /* If we see a `void *', we need to change it to Object. */ - if (TREE_VALUE (args) == TREE_TYPE (null_pointer_node)) - TREE_VALUE (args) = object_ptr_type_node; - - sprintf (buffer, "parm%d", i++); - parm = tree_cons (get_identifier (buffer), TREE_VALUE (args), parm); - } - - CRAFTED_PARAM_LIST_FIXUP (parm); - decl = create_artificial_method (class_type, flags, void_type_node, - ctor_name, parm); - fix_method_argument_names (parm, decl); - /* Now, mark the artificial parameters. */ - DECL_FUNCTION_NAP (decl) = artificial; - DECL_FUNCTION_SYNTHETIC_CTOR (decl) = DECL_CONSTRUCTOR_P (decl) = 1; - DECL_INLINE (decl) = 1; - return decl; -} - - -/* Fix the constructors. This will be called right after circular - references have been checked. It is necessary to fix constructors - early even if no code generation will take place for that class: - some generated constructor might be required by the class whose - compilation triggered this one to be simply loaded. */ - -void -java_fix_constructors (void) -{ - tree current; - - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - { - tree class_type = TREE_TYPE (current); - int saw_ctor = 0; - tree decl; - - if (CLASS_INTERFACE (TYPE_NAME (class_type))) - continue; - - output_class = current_class = class_type; - for (decl = TYPE_METHODS (class_type); decl; decl = TREE_CHAIN (decl)) - { - if (DECL_CONSTRUCTOR_P (decl)) - { - fix_constructors (decl); - saw_ctor = 1; - } - } - - /* Anonymous class constructor can't be generated that early. */ - if (!saw_ctor && !ANONYMOUS_CLASS_P (class_type)) - craft_constructor (current, NULL_TREE); - } -} - -/* safe_layout_class just makes sure that we can load a class without - disrupting the current_class, input_file, input_line, etc, information - about the class processed currently. */ - -void -safe_layout_class (tree class) -{ - tree save_current_class = current_class; - location_t save_location = input_location; - - layout_class (class); - - current_class = save_current_class; - input_location = save_location; -} - -static tree -jdep_resolve_class (jdep *dep) -{ - tree decl; - - /* Set the correct context for class resolution. */ - current_class = TREE_TYPE (JDEP_ENCLOSING (dep)); - - if (JDEP_RESOLVED_P (dep)) - decl = JDEP_RESOLVED_DECL (dep); - else - { - decl = resolve_class (JDEP_ENCLOSING (dep), JDEP_TO_RESOLVE (dep), - JDEP_DECL (dep), JDEP_WFL (dep)); - JDEP_RESOLVED (dep, decl); - /* If there is no WFL, that's ok. We generate this warning - elsewhere. */ - if (decl && JDEP_WFL (dep) != NULL_TREE) - check_deprecation (JDEP_WFL (dep), decl); - } - - if (!decl) - complete_class_report_errors (dep); - else if (INNER_CLASS_DECL_P (decl)) - { - tree inner = TREE_TYPE (decl); - if (! CLASS_LOADED_P (inner)) - { - safe_layout_class (inner); - if (TYPE_SIZE (inner) == error_mark_node) - TYPE_SIZE (inner) = NULL_TREE; - } - check_inner_class_access (decl, JDEP_ENCLOSING (dep), JDEP_WFL (dep)); - } - return decl; -} - -/* Complete unsatisfied class declaration and their dependencies */ - -void -java_complete_class (void) -{ - tree cclass; - jdeplist *cclassd; - int error_found; - tree type; - - /* Process imports */ - process_imports (); - - /* Reverse things so we have the right order */ - ctxp->class_list = nreverse (ctxp->class_list); - ctxp->classd_list = reverse_jdep_list (ctxp); - - for (cclassd = ctxp->classd_list, cclass = ctxp->class_list; - cclass && cclassd; - cclass = TREE_CHAIN (cclass), cclassd = CLASSD_CHAIN (cclassd)) - { - jdep *dep; - - for (dep = CLASSD_FIRST (cclassd); dep; dep = JDEP_CHAIN (dep)) - { - tree decl; - if (!(decl = jdep_resolve_class (dep))) - continue; - - /* Now it's time to patch */ - switch (JDEP_KIND (dep)) - { - case JDEP_SUPER: - /* Simply patch super */ - if (parser_check_super (decl, JDEP_DECL (dep), JDEP_WFL (dep))) - continue; - BINFO_TYPE (BINFO_BASE_BINFO - (TYPE_BINFO (TREE_TYPE (JDEP_DECL (dep))), 0)) - = TREE_TYPE (decl); - break; - - case JDEP_FIELD: - { - /* We do part of the job done in add_field */ - tree field_decl = JDEP_DECL (dep); - tree field_type = TREE_TYPE (decl); - if (TREE_CODE (field_type) == RECORD_TYPE) - field_type = promote_type (field_type); - TREE_TYPE (field_decl) = field_type; - DECL_ALIGN (field_decl) = 0; - DECL_USER_ALIGN (field_decl) = 0; - layout_decl (field_decl, 0); - SOURCE_FRONTEND_DEBUG - (("Completed field/var decl '%s' with '%s'", - IDENTIFIER_POINTER (DECL_NAME (field_decl)), - IDENTIFIER_POINTER (DECL_NAME (decl)))); - break; - } - case JDEP_METHOD: /* We start patching a method */ - case JDEP_METHOD_RETURN: - error_found = 0; - while (1) - { - if (decl) - { - type = TREE_TYPE(decl); - if (TREE_CODE (type) == RECORD_TYPE) - type = promote_type (type); - JDEP_APPLY_PATCH (dep, type); - SOURCE_FRONTEND_DEBUG - (((JDEP_KIND (dep) == JDEP_METHOD_RETURN ? - "Completing fct '%s' with ret type '%s'": - "Completing arg '%s' with type '%s'"), - IDENTIFIER_POINTER (EXPR_WFL_NODE - (JDEP_DECL_WFL (dep))), - IDENTIFIER_POINTER (DECL_NAME (decl)))); - } - else - error_found = 1; - dep = JDEP_CHAIN (dep); - if (JDEP_KIND (dep) == JDEP_METHOD_END) - break; - else - decl = jdep_resolve_class (dep); - } - if (!error_found) - { - tree mdecl = JDEP_DECL (dep), signature; - /* Recompute and reset the signature, check first that - all types are now defined. If they're not, - don't build the signature. */ - if (check_method_types_complete (mdecl)) - { - signature = build_java_signature (TREE_TYPE (mdecl)); - set_java_signature (TREE_TYPE (mdecl), signature); - } - } - else - continue; - break; - - case JDEP_INTERFACE: - if (parser_check_super_interface (decl, JDEP_DECL (dep), - JDEP_WFL (dep))) - continue; - parser_add_interface (JDEP_DECL (dep), decl, JDEP_WFL (dep)); - break; - - case JDEP_PARM: - case JDEP_VARIABLE: - type = TREE_TYPE(decl); - if (TREE_CODE (type) == RECORD_TYPE) - type = promote_type (type); - JDEP_APPLY_PATCH (dep, type); - break; - - case JDEP_TYPE: - JDEP_APPLY_PATCH (dep, TREE_TYPE (decl)); - SOURCE_FRONTEND_DEBUG - (("Completing a random type dependency on a '%s' node", - tree_code_name [TREE_CODE (JDEP_DECL (dep))])); - break; - - case JDEP_EXCEPTION: - JDEP_APPLY_PATCH (dep, TREE_TYPE (decl)); - SOURCE_FRONTEND_DEBUG - (("Completing '%s' 'throws' argument node", - IDENTIFIER_POINTER (EXPR_WFL_NODE (JDEP_WFL (dep))))); - break; - - case JDEP_ANONYMOUS: - patch_anonymous_class (decl, JDEP_DECL (dep), JDEP_WFL (dep)); - break; - - default: - abort (); - } - } - } - return; -} - -/* Resolve class CLASS_TYPE. Handle the case of trying to resolve an - array. */ - -static tree -resolve_class (tree enclosing, tree class_type, tree decl, tree cl) -{ - tree tname = TYPE_NAME (class_type); - tree resolved_type = TREE_TYPE (class_type); - int array_dims = 0; - tree resolved_type_decl; - - if (resolved_type != NULL_TREE) - { - tree resolved_type_decl = TYPE_NAME (resolved_type); - if (resolved_type_decl == NULL_TREE - || TREE_CODE (resolved_type_decl) == IDENTIFIER_NODE) - { - resolved_type_decl = build_decl (TYPE_DECL, - TYPE_NAME (class_type), - resolved_type); - } - return resolved_type_decl; - } - - /* 1- Check to see if we have an array. If true, find what we really - want to resolve */ - if ((array_dims = build_type_name_from_array_name (tname, - &TYPE_NAME (class_type)))) - WFL_STRIP_BRACKET (cl, cl); - - /* 2- Resolve the bare type */ - if (!(resolved_type_decl = do_resolve_class (enclosing, NULL_TREE, class_type, - decl, cl))) - return NULL_TREE; - resolved_type = TREE_TYPE (resolved_type_decl); - - /* 3- If we have an array, reconstruct the array down to its nesting */ - if (array_dims) - { - for (; array_dims; array_dims--) - resolved_type = build_java_array_type (resolved_type, -1); - resolved_type_decl = TYPE_NAME (resolved_type); - } - TREE_TYPE (class_type) = resolved_type; - return resolved_type_decl; -} - -/* Effectively perform the resolution of class CLASS_TYPE. DECL or CL - are used to report error messages; CL must either be NULL_TREE or a - WFL wrapping a class. Do not try to replace TYPE_NAME (class_type) - by a variable, since it is changed by find_in_imports{_on_demand} - and (but it doesn't really matter) qualify_and_find. */ - -tree -do_resolve_class (tree enclosing, tree import_type, tree class_type, tree decl, - tree cl) -{ - tree new_class_decl = NULL_TREE; - tree saved_enclosing_type = enclosing ? TREE_TYPE (enclosing) : NULL_TREE; - tree candidate = NULL_TREE; - tree decl_result; - - if (QUALIFIED_P (TYPE_NAME (class_type))) - { - /* If the type name is of the form `Q . Id', then Q is either a - package name or a class name. First we try to find Q as a - class and then treat Id as a member type. If we can't find Q - as a class then we fall through. */ - tree q, left, left_type, right; - if (split_qualified_name (&left, &right, TYPE_NAME (class_type)) == 0) - { - BUILD_PTR_FROM_NAME (left_type, left); - q = do_resolve_class (enclosing, import_type, left_type, decl, cl); - if (q) - { - enclosing = q; - saved_enclosing_type = TREE_TYPE (q); - BUILD_PTR_FROM_NAME (class_type, right); - } - } - } - - if (enclosing) - { - tree context = enclosing; - - /* 0- Search in the current class as an inner class. - Maybe some code here should be added to load the class or - something, at least if the class isn't an inner class and ended - being loaded from class file. FIXME. */ - while (enclosing) - { - new_class_decl = resolve_inner_class (context, cl, enclosing, class_type); - - if (new_class_decl) - { - if (inner_class_accessible (new_class_decl, context)) - break; - else - if (candidate == NULL_TREE) - candidate = new_class_decl; - new_class_decl = NULL_TREE; - } - - /* Now that we've looked through all superclasses, try the enclosing - context. */ - enclosing = DECL_CONTEXT (enclosing); - } - - if (new_class_decl) - return new_class_decl; - } - - /* 1- Check for the type in single imports. Look at enclosing classes and, - if we're laying out a superclass, at the import list for the subclass. - This will change TYPE_NAME() if something relevant is found. */ - if (import_type && TYPE_IMPORT_LIST (import_type)) - find_in_imports (import_type, class_type); - find_in_imports (saved_enclosing_type, class_type); - - /* 2- And check for the type in the current compilation unit */ - if ((new_class_decl = IDENTIFIER_CLASS_VALUE (TYPE_NAME (class_type)))) - { - if (!CLASS_LOADED_P (TREE_TYPE (new_class_decl))) - load_class (TYPE_NAME (class_type), 0); - return IDENTIFIER_CLASS_VALUE (TYPE_NAME (class_type)); - } - - /* 3- Search according to the current package definition */ - if (!QUALIFIED_P (TYPE_NAME (class_type))) - { - if ((new_class_decl = qualify_and_find (class_type, - TYPE_PACKAGE (current_class), TYPE_NAME (class_type)))) - return new_class_decl; - } - - /* 4- Check the import on demands. Don't allow bar.baz to be - imported from foo.* */ - if (!QUALIFIED_P (TYPE_NAME (class_type))) - { - if (import_type - && TYPE_IMPORT_DEMAND_LIST (import_type) - && find_in_imports_on_demand (import_type, class_type)) - return NULL_TREE; - if (find_in_imports_on_demand (saved_enclosing_type, class_type)) - return NULL_TREE; - } - - /* If found in find_in_imports_on_demand, the type has already been - loaded. */ - if ((new_class_decl = IDENTIFIER_CLASS_VALUE (TYPE_NAME (class_type)))) - return new_class_decl; - - /* 5- Check another compilation unit that bears the name of type */ - load_class (TYPE_NAME (class_type), 0); - - if (!cl) - cl = lookup_cl (decl); - - /* If we don't have a value for CL, then we're being called recursively. - We can't check package access just yet, but it will be taken care of - by the caller. */ - if (cl) - { - if (check_pkg_class_access (TYPE_NAME (class_type), cl, true, NULL_TREE)) - return NULL_TREE; - } - - /* 6- Last call for a resolution */ - decl_result = IDENTIFIER_CLASS_VALUE (TYPE_NAME (class_type)); - - /* The final lookup might have registered a.b.c into a.b$c If we - failed at the first lookup, progressively change the name if - applicable and use the matching DECL instead. */ - if (!decl_result && QUALIFIED_P (TYPE_NAME (class_type))) - { - char *separator; - tree name = TYPE_NAME (class_type); - char *namebuffer = alloca (IDENTIFIER_LENGTH (name) + 1); - - strcpy (namebuffer, IDENTIFIER_POINTER (name)); - - do { - - /* Reach the last '.', and if applicable, replace it by a `$' and - see if this exists as a type. */ - if ((separator = strrchr (namebuffer, '.'))) - { - *separator = '$'; - name = get_identifier (namebuffer); - decl_result = IDENTIFIER_CLASS_VALUE (name); - } - } while (!decl_result && separator); - } - if (decl_result) - return decl_result; - else - return candidate; -} - -static tree -qualify_and_find (tree class_type, tree package, tree name) -{ - tree new_qualified = merge_qualified_name (package, name); - tree new_class_decl; - - if (!IDENTIFIER_CLASS_VALUE (new_qualified)) - load_class (new_qualified, 0); - if ((new_class_decl = IDENTIFIER_CLASS_VALUE (new_qualified))) - { - if (!CLASS_LOADED_P (TREE_TYPE (new_class_decl))) - load_class (TREE_TYPE (new_class_decl), 0); - TYPE_NAME (class_type) = new_qualified; - return IDENTIFIER_CLASS_VALUE (new_qualified); - } - return NULL_TREE; -} - -/* Resolve NAME and lay it out (if not done and if not the current - parsed class). Return a decl node. This function is meant to be - called when type resolution is necessary during the walk pass. */ - -static tree -resolve_and_layout (tree something, tree cl) -{ - tree decl, decl_type; - - /* Don't do that on the current class */ - if (something == current_class) - return TYPE_NAME (current_class); - - /* Don't do anything for void and other primitive types */ - if (JPRIMITIVE_TYPE_P (something) || something == void_type_node) - return NULL_TREE; - - /* Pointer types can be reall pointer types or fake pointers. When - finding a real pointer, recheck for primitive types */ - if (TREE_CODE (something) == POINTER_TYPE) - { - if (TREE_TYPE (something)) - { - something = TREE_TYPE (something); - if (JPRIMITIVE_TYPE_P (something) || something == void_type_node) - return NULL_TREE; - } - else - something = TYPE_NAME (something); - } - - /* Don't do anything for arrays of primitive types */ - if (TREE_CODE (something) == RECORD_TYPE && TYPE_ARRAY_P (something) - && JPRIMITIVE_TYPE_P (TYPE_ARRAY_ELEMENT (something))) - return NULL_TREE; - - /* Something might be a WFL */ - if (TREE_CODE (something) == EXPR_WITH_FILE_LOCATION) - something = EXPR_WFL_NODE (something); - - /* Otherwise, if something is not and IDENTIFIER_NODE, it can be a - TYPE_DECL or a real TYPE. */ - else if (TREE_CODE (something) != IDENTIFIER_NODE) - something = (TREE_CODE (TYPE_NAME (something)) == TYPE_DECL ? - DECL_NAME (TYPE_NAME (something)) : TYPE_NAME (something)); - - if (!(decl = resolve_no_layout (something, cl))) - return NULL_TREE; - - /* Resolve and layout if necessary */ - decl_type = TREE_TYPE (decl); - layout_class_methods (decl_type); - /* Check methods */ - if (CLASS_FROM_SOURCE_P (decl_type)) - java_check_methods (decl); - /* Layout the type if necessary */ - if (decl_type != current_class && !CLASS_LOADED_P (decl_type)) - safe_layout_class (decl_type); - - return decl; -} - -/* Resolve a class, returns its decl but doesn't perform any - layout. The current parsing context is saved and restored */ - -static tree -resolve_no_layout (tree name, tree cl) -{ - tree ptr, decl; - BUILD_PTR_FROM_NAME (ptr, name); - java_parser_context_save_global (); - decl = resolve_class (TYPE_NAME (current_class), ptr, NULL_TREE, cl); - java_parser_context_restore_global (); - - return decl; -} - -/* Called when reporting errors. Skip the '[]'s in a complex array - type description that failed to be resolved. purify_type_name can't - use an identifier tree. */ - -static const char * -purify_type_name (const char *name) -{ - int len = strlen (name); - int bracket_found; - - STRING_STRIP_BRACKETS (name, len, bracket_found); - if (bracket_found) - { - char *stripped_name = xmemdup (name, len, len+1); - stripped_name [len] = '\0'; - return stripped_name; - } - return name; -} - -/* The type CURRENT refers to can't be found. We print error messages. */ - -static void -complete_class_report_errors (jdep *dep) -{ - const char *name; - - if (!JDEP_WFL (dep)) - return; - - name = IDENTIFIER_POINTER (EXPR_WFL_NODE (JDEP_WFL (dep))); - switch (JDEP_KIND (dep)) - { - case JDEP_SUPER: - parse_error_context - (JDEP_WFL (dep), "Superclass %qs of class %qs not found", - purify_type_name (name), - IDENTIFIER_POINTER (DECL_NAME (JDEP_DECL (dep)))); - break; - case JDEP_FIELD: - parse_error_context - (JDEP_WFL (dep), "Type %qs not found in declaration of field %qs", - purify_type_name (name), - IDENTIFIER_POINTER (DECL_NAME (JDEP_DECL (dep)))); - break; - case JDEP_METHOD: /* Covers arguments */ - parse_error_context - (JDEP_WFL (dep), "Type %qs not found in the declaration of the argument %qs of method %qs", - purify_type_name (name), - IDENTIFIER_POINTER (EXPR_WFL_NODE (JDEP_DECL_WFL (dep))), - IDENTIFIER_POINTER (EXPR_WFL_NODE (JDEP_MISC (dep)))); - break; - case JDEP_METHOD_RETURN: /* Covers return type */ - parse_error_context - (JDEP_WFL (dep), "Type %qs not found in the declaration of the return type of method %qs", - purify_type_name (name), - IDENTIFIER_POINTER (EXPR_WFL_NODE (JDEP_DECL_WFL (dep)))); - break; - case JDEP_INTERFACE: - parse_error_context - (JDEP_WFL (dep), "Superinterface %qs of %s %qs not found", - IDENTIFIER_POINTER (EXPR_WFL_NODE (JDEP_WFL (dep))), - (CLASS_OR_INTERFACE (JDEP_DECL (dep), "class", "interface")), - IDENTIFIER_POINTER (DECL_NAME (JDEP_DECL (dep)))); - break; - case JDEP_VARIABLE: - parse_error_context - (JDEP_WFL (dep), "Type %qs not found in the declaration of the local variable %qs", - purify_type_name (IDENTIFIER_POINTER - (EXPR_WFL_NODE (JDEP_WFL (dep)))), - IDENTIFIER_POINTER (DECL_NAME (JDEP_DECL (dep)))); - break; - case JDEP_EXCEPTION: /* As specified by `throws' */ - parse_error_context - (JDEP_WFL (dep), "Class %qs not found in %", - IDENTIFIER_POINTER (EXPR_WFL_NODE (JDEP_WFL (dep)))); - break; - default: - /* Fix for -Wall. Just break doing nothing. The error will be - caught later */ - break; - } -} - -/* Return a static string containing the DECL prototype string. If - DECL is a constructor, use the class name instead of the form - */ - -static const char * -get_printable_method_name (tree decl) -{ - const char *to_return; - tree name = NULL_TREE; - - if (DECL_CONSTRUCTOR_P (decl)) - { - name = DECL_NAME (decl); - DECL_NAME (decl) = DECL_NAME (TYPE_NAME (DECL_CONTEXT (decl))); - } - - to_return = lang_printable_name (decl, 2); - if (DECL_CONSTRUCTOR_P (decl)) - DECL_NAME (decl) = name; - - return to_return; -} - -/* Track method being redefined inside the same class. As a side - effect, set DECL_NAME to an IDENTIFIER (prior entering this - function it's a FWL, so we can track errors more accurately.) */ - -static int -check_method_redefinition (tree class, tree method) -{ - tree redef, sig; - - /* There's no need to verify and finit$ and instinit$ */ - if (DECL_CLINIT_P (method) - || DECL_FINIT_P (method) || DECL_INSTINIT_P (method)) - return 0; - - sig = TYPE_ARGUMENT_SIGNATURE (TREE_TYPE (method)); - for (redef = TYPE_METHODS (class); redef; redef = TREE_CHAIN (redef)) - { - if (redef == method) - break; - if (DECL_NAME (redef) == DECL_NAME (method) - && sig == TYPE_ARGUMENT_SIGNATURE (TREE_TYPE (redef)) - && !DECL_ARTIFICIAL (method)) - { - parse_error_context - (DECL_FUNCTION_WFL (method), "Duplicate %s declaration %qs", - (DECL_CONSTRUCTOR_P (redef) ? "constructor" : "method"), - get_printable_method_name (redef)); - return 1; - } - } - return 0; -} - -/* Return 1 if check went ok, 0 otherwise. */ -static int -check_abstract_method_definitions (int do_interface, tree class_decl, - tree type) -{ - tree class = TREE_TYPE (class_decl); - tree method, end_type; - int ok = 1; - - end_type = (do_interface ? object_type_node : type); - for (method = TYPE_METHODS (type); method; method = TREE_CHAIN (method)) - { - tree other_super, other_method, method_sig, method_name; - int found = 0; - int end_type_reached = 0; - - if (!METHOD_ABSTRACT (method) || METHOD_FINAL (method)) - continue; - - /* Now verify that somewhere in between TYPE and CLASS, - abstract method METHOD gets a non abstract definition - that is inherited by CLASS. */ - - method_sig = build_java_signature (TREE_TYPE (method)); - method_name = DECL_NAME (method); - if (TREE_CODE (method_name) == EXPR_WITH_FILE_LOCATION) - method_name = EXPR_WFL_NODE (method_name); - - other_super = class; - do { - if (other_super == end_type) - end_type_reached = 1; - - /* Method search */ - for (other_method = TYPE_METHODS (other_super); other_method; - other_method = TREE_CHAIN (other_method)) - { - tree s = build_java_signature (TREE_TYPE (other_method)); - tree other_name = DECL_NAME (other_method); - - if (TREE_CODE (other_name) == EXPR_WITH_FILE_LOCATION) - other_name = EXPR_WFL_NODE (other_name); - if (!DECL_CLINIT_P (other_method) - && !DECL_CONSTRUCTOR_P (other_method) - && method_name == other_name - && method_sig == s - && !METHOD_ABSTRACT (other_method)) - { - found = 1; - break; - } - } - other_super = CLASSTYPE_SUPER (other_super); - } while (!end_type_reached); - - /* Report that abstract METHOD didn't find an implementation - that CLASS can use. */ - if (!found) - { - char *t = xstrdup (lang_printable_name - (TREE_TYPE (TREE_TYPE (method)), 0)); - tree ccn = DECL_NAME (TYPE_NAME (DECL_CONTEXT (method))); - - parse_error_context - (lookup_cl (class_decl), - "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract", - IDENTIFIER_POINTER (DECL_NAME (class_decl)), - t, lang_printable_name (method, 2), - (CLASS_INTERFACE (TYPE_NAME (DECL_CONTEXT (method))) ? - "interface" : "class"), - IDENTIFIER_POINTER (ccn), - (CLASS_INTERFACE (class_decl) ? "interface" : "class"), - IDENTIFIER_POINTER (DECL_NAME (class_decl))); - ok = 0; - free (t); - } - } - - if (ok && do_interface) - { - /* Check for implemented interfaces. */ - int i; - tree base_binfo; - - for (i = 1; - ok && BINFO_BASE_ITERATE (TYPE_BINFO (type), i, base_binfo); - i++) - ok = check_abstract_method_definitions (1, class_decl, - BINFO_TYPE (base_binfo)); - } - - return ok; -} - -/* Check that CLASS_DECL somehow implements all inherited abstract - methods. */ - -static void -java_check_abstract_method_definitions (tree class_decl) -{ - tree class = TREE_TYPE (class_decl); - tree super, base_binfo; - int i; - - if (CLASS_ABSTRACT (class_decl)) - return; - - /* Check for inherited types */ - super = class; - do { - super = CLASSTYPE_SUPER (super); - check_abstract_method_definitions (0, class_decl, super); - } while (super != object_type_node); - - /* Check for implemented interfaces. */ - for (i = 1; BINFO_BASE_ITERATE (TYPE_BINFO (class), i, base_binfo); i++) - check_abstract_method_definitions (1, class_decl, BINFO_TYPE (base_binfo)); -} - -/* Check all the types method DECL uses and return 1 if all of them - are now complete, 0 otherwise. This is used to check whether its - safe to build a method signature or not. */ - -static int -check_method_types_complete (tree decl) -{ - tree type = TREE_TYPE (decl); - tree args; - - if (!INCOMPLETE_TYPE_P (TREE_TYPE (type))) - return 0; - - args = TYPE_ARG_TYPES (type); - if (TREE_CODE (type) == METHOD_TYPE) - args = TREE_CHAIN (args); - for (; args != end_params_node; args = TREE_CHAIN (args)) - if (INCOMPLETE_TYPE_P (TREE_VALUE (args))) - return 0; - - return 1; -} - -/* Visible interface to check methods contained in CLASS_DECL */ - -void -java_check_methods (tree class_decl) -{ - if (CLASS_METHOD_CHECKED_P (TREE_TYPE (class_decl))) - return; - - if (CLASS_INTERFACE (class_decl)) - java_check_abstract_methods (class_decl); - else - java_check_regular_methods (class_decl); - - CLASS_METHOD_CHECKED_P (TREE_TYPE (class_decl)) = 1; -} - -/* Like not_accessible_p, but doesn't refer to the current class at - all. */ -static bool -hack_is_accessible_p (tree member, tree from_where) -{ - int flags = get_access_flags_from_decl (member); - - if (from_where == DECL_CONTEXT (member) - || (flags & ACC_PUBLIC)) - return true; - - if ((flags & ACC_PROTECTED)) - { - if (inherits_from_p (from_where, DECL_CONTEXT (member))) - return true; - } - - if ((flags & ACC_PRIVATE)) - return false; - - /* Package private, or protected. */ - return in_same_package (TYPE_NAME (from_where), - TYPE_NAME (DECL_CONTEXT (member))); -} - -/* Check all the methods of CLASS_DECL. Methods are first completed - then checked according to regular method existence rules. If no - constructor for CLASS_DECL were encountered, then build its - declaration. */ -static void -java_check_regular_methods (tree class_decl) -{ - int saw_constructor = ANONYMOUS_CLASS_P (TREE_TYPE (class_decl)); - tree method; - tree class = TREE_TYPE (class_decl); - tree found = NULL_TREE; - tree mthrows; - - /* It is not necessary to check methods defined in java.lang.Object */ - if (class == object_type_node) - return; - - if (!TYPE_NVIRTUALS (class)) - TYPE_METHODS (class) = nreverse (TYPE_METHODS (class)); - - /* Should take interfaces into account. FIXME */ - for (method = TYPE_METHODS (class); method; method = TREE_CHAIN (method)) - { - tree sig; - tree method_wfl = DECL_FUNCTION_WFL (method); - int aflags; - - /* Check for redefinitions */ - if (check_method_redefinition (class, method)) - continue; - - /* We verify things thrown by the method. They must inherit from - java.lang.Throwable. */ - for (mthrows = DECL_FUNCTION_THROWS (method); - mthrows; mthrows = TREE_CHAIN (mthrows)) - { - if (!inherits_from_p (TREE_VALUE (mthrows), throwable_type_node)) - parse_error_context - (TREE_PURPOSE (mthrows), "Class %qs in % clause must be a subclass of class %", - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (TREE_VALUE (mthrows))))); - } - - /* If we see one constructor a mark so we don't generate the - default one. Also skip other verifications: constructors - can't be inherited hence hidden or overridden. */ - if (DECL_CONSTRUCTOR_P (method)) - { - saw_constructor = 1; - continue; - } - - sig = build_java_argument_signature (TREE_TYPE (method)); - found = lookup_argument_method_generic (class, DECL_NAME (method), sig, - SEARCH_SUPER | SEARCH_INTERFACE); - - /* Inner class can't declare static methods */ - if (METHOD_STATIC (method) && !TOPLEVEL_CLASS_DECL_P (class_decl)) - { - char *t = xstrdup (lang_printable_name (class, 0)); - parse_error_context - (method_wfl, "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static", - lang_printable_name (method, 2), t); - free (t); - } - - /* Nothing overrides or it's a private method. */ - if (!found) - continue; - if (METHOD_PRIVATE (found)) - { - found = NULL_TREE; - continue; - } - - /* If `found' is declared in an interface, make sure the - modifier matches. */ - if (CLASS_INTERFACE (TYPE_NAME (DECL_CONTEXT (found))) - && clinit_identifier_node != DECL_NAME (found) - && !METHOD_PUBLIC (method)) - { - tree found_decl = TYPE_NAME (DECL_CONTEXT (found)); - parse_error_context (method_wfl, "Class %qs must override %qs with a public method in order to implement interface %qs", - IDENTIFIER_POINTER (DECL_NAME (class_decl)), - lang_printable_name (found, 0), - IDENTIFIER_POINTER (DECL_NAME (found_decl))); - } - - /* Can't override a method with the same name and different return - types. */ - if (TREE_TYPE (TREE_TYPE (found)) != TREE_TYPE (TREE_TYPE (method))) - { - char *t = xstrdup - (lang_printable_name (TREE_TYPE (TREE_TYPE (found)), 2)); - parse_error_context - (method_wfl, - "Method %qs was defined with return type %qs in class %qs", - lang_printable_name (found, 2), t, - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (DECL_CONTEXT (found))))); - free (t); - } - - aflags = get_access_flags_from_decl (found); - - /* Can't override final. Can't override static. */ - if (METHOD_FINAL (found) || METHOD_STATIC (found)) - { - /* Static *can* override static */ - if (METHOD_STATIC (found) && METHOD_STATIC (method)) - continue; - parse_error_context - (method_wfl, - "%s methods can't be overridden. Method %qs is %s in class %qs", - (METHOD_FINAL (found) ? "Final" : "Static"), - lang_printable_name (found, 2), - (METHOD_FINAL (found) ? "final" : "static"), - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (DECL_CONTEXT (found))))); - continue; - } - - /* Static method can't override instance method. */ - if (METHOD_STATIC (method)) - { - parse_error_context - (method_wfl, - "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs", - lang_printable_name (found, 2), - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (DECL_CONTEXT (found))))); - continue; - } - - /* - Overriding/hiding public must be public - - Overriding/hiding protected must be protected or public - - If the overridden or hidden method has default (package) - access, then the overriding or hiding method must not be - private; otherwise, a compile-time error occurs. If - `found' belongs to an interface, things have been already - taken care of. */ - if (!CLASS_INTERFACE (TYPE_NAME (DECL_CONTEXT (found))) - && ((METHOD_PUBLIC (found) && !METHOD_PUBLIC (method)) - || (METHOD_PROTECTED (found) - && !(METHOD_PUBLIC (method) || METHOD_PROTECTED (method))) - || (!(aflags & (ACC_PUBLIC | ACC_PRIVATE | ACC_STATIC)) - && METHOD_PRIVATE (method)))) - { - parse_error_context - (method_wfl, - "Methods can't be overridden to be more private. Method %qs is not %s in class %qs", lang_printable_name (method, 2), - (METHOD_PUBLIC (method) ? "public" : - (METHOD_PRIVATE (method) ? "private" : "protected")), - IDENTIFIER_POINTER (DECL_NAME - (TYPE_NAME (DECL_CONTEXT (found))))); - continue; - } - - /* Check this method against all the other implementations it - overrides. Here we only check the class hierarchy; the rest - of the checking is done later. If this method is just a - Miranda method, we can skip the check. */ - if (! METHOD_INVISIBLE (method)) - check_concrete_throws_clauses (class, method, DECL_NAME (method), sig); - } - - /* The above throws clause check only looked at superclasses. Now - we must also make sure that all methods declared in interfaces - have compatible throws clauses. FIXME: there are more efficient - ways to organize this checking; we should implement one. */ - check_interface_throws_clauses (class, class); - - if (!TYPE_NVIRTUALS (class)) - TYPE_METHODS (class) = nreverse (TYPE_METHODS (class)); - - /* Search for inherited abstract method not yet implemented in this - class. */ - java_check_abstract_method_definitions (class_decl); - - if (!saw_constructor) - abort (); -} - -/* Check to make sure that all the methods in all the interfaces - implemented by CLASS_DECL are compatible with the concrete - implementations available in CHECK_CLASS_DECL. */ -static void -check_interface_throws_clauses (tree check_class_decl, tree class_decl) -{ - for (; class_decl != NULL_TREE; class_decl = CLASSTYPE_SUPER (class_decl)) - { - int i; - - if (! CLASS_LOADED_P (class_decl)) - { - if (CLASS_FROM_SOURCE_P (class_decl)) - safe_layout_class (class_decl); - else - load_class (class_decl, 1); - } - - for (i = BINFO_N_BASE_BINFOS (TYPE_BINFO (class_decl)) - 1; i > 0; --i) - { - tree interface - = BINFO_TYPE (BINFO_BASE_BINFO (TYPE_BINFO (class_decl), i)); - tree iface_method; - - for (iface_method = TYPE_METHODS (interface); - iface_method != NULL_TREE; - iface_method = TREE_CHAIN (iface_method)) - { - tree sig, method; - - /* First look for a concrete method implemented or - inherited by this class. No need to search - interfaces here, since we're already looking through - all of them. */ - sig = build_java_argument_signature (TREE_TYPE (iface_method)); - method - = lookup_argument_method_generic (check_class_decl, - DECL_NAME (iface_method), - sig, SEARCH_VISIBLE); - /* If we don't find an implementation, that is ok. Any - potential errors from that are diagnosed elsewhere. - Also, multiple inheritance with conflicting throws - clauses is fine in the absence of a concrete - implementation. */ - if (method != NULL_TREE && !METHOD_ABSTRACT (method) - && !METHOD_INVISIBLE (iface_method)) - { - tree method_wfl = DECL_FUNCTION_WFL (method); - check_throws_clauses (method, method_wfl, iface_method); - } - } - - /* Now check superinterfaces. */ - check_interface_throws_clauses (check_class_decl, interface); - } - } -} - -/* Check throws clauses of a method against the clauses of all the - methods it overrides. We do this by searching up the class - hierarchy, examining all matching accessible methods. */ -static void -check_concrete_throws_clauses (tree class, tree self_method, - tree name, tree signature) -{ - tree method = lookup_argument_method_generic (class, name, signature, - SEARCH_SUPER | SEARCH_VISIBLE); - while (method != NULL_TREE) - { - if (! METHOD_INVISIBLE (method) && hack_is_accessible_p (method, class)) - check_throws_clauses (self_method, DECL_FUNCTION_WFL (self_method), - method); - - method = lookup_argument_method_generic (DECL_CONTEXT (method), - name, signature, - SEARCH_SUPER | SEARCH_VISIBLE); - } -} - -/* Generate an error if the `throws' clause of METHOD (if any) is - incompatible with the `throws' clause of FOUND (if any). */ -static void -check_throws_clauses (tree method, tree method_wfl, tree found) -{ - tree mthrows; - - for (mthrows = DECL_FUNCTION_THROWS (method); - mthrows; mthrows = TREE_CHAIN (mthrows)) - { - tree fthrows; - - /* We don't verify unchecked expressions */ - if (IS_UNCHECKED_EXCEPTION_P (TREE_VALUE (mthrows))) - continue; - /* Checked expression must be compatible */ - for (fthrows = DECL_FUNCTION_THROWS (found); - fthrows; fthrows = TREE_CHAIN (fthrows)) - { - if (inherits_from_p (TREE_VALUE (mthrows), TREE_VALUE (fthrows))) - break; - } - if (!fthrows) - { - parse_error_context - (method_wfl, "Invalid checked exception class %qs in % clause. The exception must be a subclass of an exception thrown by %qs from class %qs", - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (TREE_VALUE (mthrows)))), - lang_printable_name (found, 2), - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (DECL_CONTEXT (found))))); - } - } -} - -/* Check abstract method of interface INTERFACE */ -static void -java_check_abstract_methods (tree interface_decl) -{ - int i; - tree method, found; - tree interface = TREE_TYPE (interface_decl); - tree base_binfo; - - for (method = TYPE_METHODS (interface); method; method = TREE_CHAIN (method)) - { - /* 2- Check for double definition inside the defining interface */ - if (check_method_redefinition (interface, method)) - continue; - - /* 3- Overriding is OK as far as we preserve the return type. */ - found = lookup_java_interface_method2 (interface, method); - if (found) - { - char *t; - t = xstrdup (lang_printable_name (TREE_TYPE (TREE_TYPE (found)), 2)); - parse_error_context - (DECL_FUNCTION_WFL (found), - "Method %qs was defined with return type %qs in class %qs", - lang_printable_name (found, 2), t, - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (DECL_CONTEXT (found))))); - free (t); - continue; - } - } - - /* 4- Inherited methods can't differ by their returned types */ - for (i = 0; BINFO_BASE_ITERATE (TYPE_BINFO (interface), i, base_binfo); i++) - { - tree sub_interface_method, sub_interface; - - sub_interface = BINFO_TYPE (base_binfo); - for (sub_interface_method = TYPE_METHODS (sub_interface); - sub_interface_method; - sub_interface_method = TREE_CHAIN (sub_interface_method)) - { - found = lookup_java_interface_method2 (interface, - sub_interface_method); - if (found && (found != sub_interface_method)) - { - parse_error_context - (lookup_cl (sub_interface_method), - "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs", - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (interface))), - lang_printable_name (found, 2), - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME - (DECL_CONTEXT (sub_interface_method)))), - IDENTIFIER_POINTER - (DECL_NAME (TYPE_NAME (DECL_CONTEXT (found))))); - } - } - } -} - -/* Lookup methods in interfaces using their name and partial - signature. Return a matching method only if their types differ. */ - -static tree -lookup_java_interface_method2 (tree class, tree method_decl) -{ - int i; - tree base_binfo; - tree to_return; - - for (i = 0; BINFO_BASE_ITERATE (TYPE_BINFO (class), i, base_binfo); i++) - { - if ((BINFO_TYPE (base_binfo) != object_type_node) - && (to_return = - lookup_java_method2 (BINFO_TYPE (base_binfo), method_decl, 1))) - return to_return; - } - for (i = 0; BINFO_BASE_ITERATE (TYPE_BINFO (class), i, base_binfo); i++) - { - to_return = lookup_java_interface_method2 - (BINFO_TYPE (base_binfo), method_decl); - if (to_return) - return to_return; - } - - return NULL_TREE; -} - -/* Lookup method using their name and partial signature. Return a - matching method only if their types differ. */ - -static tree -lookup_java_method2 (tree clas, tree method_decl, int do_interface) -{ - tree method, method_signature, method_name, method_type, name; - - method_signature = build_java_argument_signature (TREE_TYPE (method_decl)); - name = DECL_NAME (method_decl); - method_name = (TREE_CODE (name) == EXPR_WITH_FILE_LOCATION ? - EXPR_WFL_NODE (name) : name); - method_type = TREE_TYPE (TREE_TYPE (method_decl)); - - while (clas != NULL_TREE) - { - for (method = TYPE_METHODS (clas); - method != NULL_TREE; method = TREE_CHAIN (method)) - { - tree method_sig = build_java_argument_signature (TREE_TYPE (method)); - tree name = DECL_NAME (method); - if ((TREE_CODE (name) == EXPR_WITH_FILE_LOCATION ? - EXPR_WFL_NODE (name) : name) == method_name - && method_sig == method_signature - && TREE_TYPE (TREE_TYPE (method)) != method_type) - return method; - } - clas = (do_interface ? NULL_TREE : CLASSTYPE_SUPER (clas)); - } - return NULL_TREE; -} - -/* Return the line that matches DECL line number, and try its best to - position the column number. Used during error reports. - FUTURE/FIXME: return source_location instead of node. */ - -static GTY(()) tree cl_v; -static tree -lookup_cl (tree decl) -{ -#ifndef USE_MAPPED_LOCATION - char *line, *found; -#endif - - if (!decl) - return NULL_TREE; - - if (cl_v == NULL_TREE) - { - cl_v = build_unknown_wfl (NULL_TREE); - } - -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (cl_v, DECL_SOURCE_LOCATION (decl)); -#else - EXPR_WFL_FILENAME_NODE (cl_v) = get_identifier (DECL_SOURCE_FILE (decl)); - EXPR_WFL_SET_LINECOL (cl_v, DECL_SOURCE_LINE (decl), -1); - - line = java_get_line_col (EXPR_WFL_FILENAME (cl_v), - EXPR_WFL_LINENO (cl_v), EXPR_WFL_COLNO (cl_v)); - - found = strstr ((const char *)line, - (const char *)IDENTIFIER_POINTER (DECL_NAME (decl))); - if (found) - EXPR_WFL_SET_LINECOL (cl_v, EXPR_WFL_LINENO (cl_v), found - line); -#endif - - return cl_v; -} - -/* Look for a simple name in the single-type import list */ - -static tree -find_name_in_single_imports (tree name) -{ - tree node; - - for (node = ctxp->import_list; node; node = TREE_CHAIN (node)) - if (TREE_VALUE (node) == name) - return (EXPR_WFL_NODE (TREE_PURPOSE (node))); - - return NULL_TREE; -} - -/* Process all single-type import. */ - -static int -process_imports (void) -{ - tree import; - int error_found; - - for (import = ctxp->import_list; import; import = TREE_CHAIN (import)) - { - tree to_be_found = EXPR_WFL_NODE (TREE_PURPOSE (import)); - char *original_name; - - /* Don't load twice something already defined. */ - if (IDENTIFIER_CLASS_VALUE (to_be_found)) - continue; - - original_name = xmemdup (IDENTIFIER_POINTER (to_be_found), - IDENTIFIER_LENGTH (to_be_found), - IDENTIFIER_LENGTH (to_be_found) + 1); - - while (1) - { - tree left; - - QUALIFIED_P (to_be_found) = 1; - load_class (to_be_found, 0); - error_found = - check_pkg_class_access (to_be_found, TREE_PURPOSE (import), true, NULL_TREE); - - /* We found it, we can bail out */ - if (IDENTIFIER_CLASS_VALUE (to_be_found)) - { - check_deprecation (TREE_PURPOSE (import), - IDENTIFIER_CLASS_VALUE (to_be_found)); - break; - } - - /* We haven't found it. Maybe we're trying to access an - inner class. The only way for us to know is to try again - after having dropped a qualifier. If we can't break it further, - we have an error. */ - if (split_qualified_name (&left, NULL, to_be_found)) - break; - - to_be_found = left; - } - if (!IDENTIFIER_CLASS_VALUE (to_be_found)) - { - parse_error_context (TREE_PURPOSE (import), - "Class or interface %qs not found in import", - original_name); - error_found = 1; - } - - free (original_name); - if (error_found) - return 1; - } - return 0; -} - -/* Possibly find and mark a class imported by a single-type import - statement. */ - -static void -find_in_imports (tree enclosing_type, tree class_type) -{ - tree import; - if (enclosing_type && TYPE_IMPORT_LIST (enclosing_type)) - import = TYPE_IMPORT_LIST (enclosing_type); - else - import = ctxp->import_list; - - while (import) - { - if (TREE_VALUE (import) == TYPE_NAME (class_type)) - { - TYPE_NAME (class_type) = EXPR_WFL_NODE (TREE_PURPOSE (import)); - QUALIFIED_P (TYPE_NAME (class_type)) = 1; - return; - } - import = TREE_CHAIN (import); - } -} - -static int -note_possible_classname (const char *name, int len) -{ - tree node; - if (len > 5 && strncmp (&name [len-5], ".java", 5) == 0) - len = len - 5; - else if (len > 6 && strncmp (&name [len-6], ".class", 6) == 0) - len = len - 6; - else - return 0; - node = ident_subst (name, len, "", '/', '.', ""); - IS_A_CLASSFILE_NAME (node) = 1; /* Or soon to be */ - QUALIFIED_P (node) = strchr (name, '/') ? 1 : 0; - return 1; -} - -/* Read a import directory, gathering potential match for further type - references. Indifferently reads a filesystem or a ZIP archive - directory. */ - -static void -read_import_dir (tree wfl) -{ - tree package_id = EXPR_WFL_NODE (wfl); - const char *package_name = IDENTIFIER_POINTER (package_id); - int package_length = IDENTIFIER_LENGTH (package_id); - DIR *dirp = NULL; - JCF *saved_jcf = current_jcf; - - int found = 0; - int k; - void *entry; - struct buffer filename[1]; - - if (IS_AN_IMPORT_ON_DEMAND_P (package_id)) - return; - IS_AN_IMPORT_ON_DEMAND_P (package_id) = 1; - - BUFFER_INIT (filename); - buffer_grow (filename, package_length + 100); - - for (entry = jcf_path_start (); entry != NULL; entry = jcf_path_next (entry)) - { - const char *entry_name = jcf_path_name (entry); - int entry_length = strlen (entry_name); - if (jcf_path_is_zipfile (entry)) - { - ZipFile *zipf; - buffer_grow (filename, entry_length); - memcpy (filename->data, entry_name, entry_length - 1); - filename->data[entry_length-1] = '\0'; - zipf = opendir_in_zip ((const char *) filename->data, jcf_path_is_system (entry)); - if (zipf == NULL) - error ("malformed .zip archive in CLASSPATH: %s", entry_name); - else - { - ZipDirectory *zipd = (ZipDirectory *) zipf->central_directory; - BUFFER_RESET (filename); - for (k = 0; k < package_length; k++) - { - char ch = package_name[k]; - *filename->ptr++ = ch == '.' ? '/' : ch; - } - *filename->ptr++ = '/'; - - for (k = 0; k < zipf->count; k++, zipd = ZIPDIR_NEXT (zipd)) - { - const char *current_entry = ZIPDIR_FILENAME (zipd); - int current_entry_len = zipd->filename_length; - - if (current_entry_len >= BUFFER_LENGTH (filename) - && strncmp ((const char *) filename->data, current_entry, - BUFFER_LENGTH (filename)) != 0) - continue; - found |= note_possible_classname (current_entry, - current_entry_len); - } - } - } - else - { - BUFFER_RESET (filename); - buffer_grow (filename, entry_length + package_length + 4); - strcpy ((char *) filename->data, entry_name); - filename->ptr = filename->data + entry_length; - for (k = 0; k < package_length; k++) - { - char ch = package_name[k]; - *filename->ptr++ = ch == '.' ? '/' : ch; - } - *filename->ptr = '\0'; - - dirp = opendir ((const char *) filename->data); - if (dirp == NULL) - continue; - *filename->ptr++ = '/'; - for (;;) - { - int len; - const char *d_name; - struct dirent *direntp = readdir (dirp); - if (!direntp) - break; - d_name = direntp->d_name; - len = strlen (direntp->d_name); - buffer_grow (filename, len+1); - strcpy ((char *) filename->ptr, d_name); - found |= note_possible_classname ((const char *) filename->data + entry_length, - package_length+len+1); - } - if (dirp) - closedir (dirp); - } - } - - free (filename->data); - - /* Here we should have a unified way of retrieving an entry, to be - indexed. */ - if (!found) - { - static int first = 1; - if (first) - { - error ("Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives", package_name); - java_error_count++; - first = 0; - } - else - parse_error_context (wfl, "Package %qs not found in import", - package_name); - current_jcf = saved_jcf; - return; - } - current_jcf = saved_jcf; -} - -/* Possibly find a type in the import on demands specified - types. Returns 1 if an error occurred, 0 otherwise. Run through the - entire list, to detected potential double definitions. */ - -static int -find_in_imports_on_demand (tree enclosing_type, tree class_type) -{ - tree class_type_name = TYPE_NAME (class_type); - tree cl = NULL_TREE; - int seen_once = -1; /* -1 when not set, 1 if seen once, >1 otherwise. */ - int to_return = -1; /* -1 when not set, 0 or 1 otherwise */ - tree node; - tree import; - - if (enclosing_type && TYPE_IMPORT_DEMAND_LIST (enclosing_type)) - import = TYPE_IMPORT_DEMAND_LIST (enclosing_type); - else - import = ctxp->import_demand_list; - - for (; import; import = TREE_CHAIN (import)) - { - location_t saved_location = input_location; - int access_check; - const char *id_name; - tree decl, type_name_copy; - - obstack_grow (&temporary_obstack, - IDENTIFIER_POINTER (EXPR_WFL_NODE (TREE_PURPOSE (import))), - IDENTIFIER_LENGTH (EXPR_WFL_NODE (TREE_PURPOSE (import)))); - obstack_1grow (&temporary_obstack, '.'); - obstack_grow0 (&temporary_obstack, - IDENTIFIER_POINTER (class_type_name), - IDENTIFIER_LENGTH (class_type_name)); - id_name = obstack_finish (&temporary_obstack); - - if (! (node = maybe_get_identifier (id_name))) - continue; - - /* Setup input_line so that it refers to the line of the import (in - case we parse a class file and encounter errors */ -#ifdef USE_MAPPED_LOCATION - input_location = EXPR_LOCATION (TREE_PURPOSE (import)); -#else - input_line = EXPR_WFL_LINENO (TREE_PURPOSE (import)); -#endif - - type_name_copy = TYPE_NAME (class_type); - TYPE_NAME (class_type) = node; - QUALIFIED_P (node) = 1; - decl = IDENTIFIER_CLASS_VALUE (node); - access_check = -1; - /* If there is no DECL set for the class or if the class isn't - loaded and not seen in source yet, then load */ - if (!decl || ! CLASS_LOADED_P (TREE_TYPE (decl))) - { - load_class (node, 0); - decl = IDENTIFIER_CLASS_VALUE (node); - } - if (decl && ! INNER_CLASS_P (TREE_TYPE (decl))) - access_check = check_pkg_class_access (node, TREE_PURPOSE (import), - false, NULL_TREE); - else - /* 6.6.1: Inner classes are subject to member access rules. */ - access_check = 0; - - input_location = saved_location; - - /* If the loaded class is not accessible or couldn't be loaded, - we restore the original TYPE_NAME and process the next - import. */ - if (access_check || !decl) - { - TYPE_NAME (class_type) = type_name_copy; - continue; - } - - /* If the loaded class is accessible, we keep a tab on it to - detect and report multiple inclusions. */ - if (IS_A_CLASSFILE_NAME (node)) - { - if (seen_once < 0) - { - cl = TREE_PURPOSE (import); - seen_once = 1; - } - else if (seen_once >= 0) - { - tree location = (cl ? cl : TREE_PURPOSE (import)); - tree package = (cl ? EXPR_WFL_NODE (cl) : - EXPR_WFL_NODE (TREE_PURPOSE (import))); - seen_once++; - parse_error_context - (location, - "Type %qs also potentially defined in package %qs", - IDENTIFIER_POINTER (TYPE_NAME (class_type)), - IDENTIFIER_POINTER (package)); - } - } - to_return = access_check; - } - - if (seen_once == 1) - return to_return; - else - return (seen_once < 0 ? 0 : seen_once); /* It's ok not to have found */ -} - -static tree -resolve_package (tree pkg, tree *next, tree *type_name) -{ - tree current; - tree decl = NULL_TREE; - *type_name = NULL_TREE; - - /* The trick is to determine when the package name stops and were - the name of something contained in the package starts. Then we - return a fully qualified name of what we want to get. */ - - *next = EXPR_WFL_QUALIFICATION (pkg); - - /* Try to progressively construct a type name */ - if (TREE_CODE (pkg) == EXPR_WITH_FILE_LOCATION) - for (current = EXPR_WFL_QUALIFICATION (pkg); - current; current = TREE_CHAIN (current)) - { - /* If we don't have what we're expecting, exit now. TYPE_NAME - will be null and the error caught later. */ - if (TREE_CODE (QUAL_WFL (current)) != EXPR_WITH_FILE_LOCATION) - break; - *type_name = - merge_qualified_name (*type_name, EXPR_WFL_NODE (QUAL_WFL (current))); - if ((decl = resolve_no_layout (*type_name, NULL_TREE))) - { - /* resolve_package should be used in a loop, hence we - point at this one to naturally process the next one at - the next iteration. */ - *next = current; - break; - } - } - return decl; -} - -/* Check accessibility of inner class DECL, from the context ENCLOSING_DECL, - according to member access rules. */ - -static bool -inner_class_accessible (tree decl, tree enclosing_decl) -{ - tree enclosing_decl_type; - - enclosing_decl_type = TREE_TYPE (enclosing_decl); - - if (CLASS_PRIVATE (decl)) - { - /* Access is permitted only within the body of the top-level - class in which DECL is declared. */ - tree top_level = decl; - while (DECL_CONTEXT (top_level)) - top_level = DECL_CONTEXT (top_level); - while (DECL_CONTEXT (enclosing_decl)) - enclosing_decl = DECL_CONTEXT (enclosing_decl); - if (top_level == enclosing_decl) - return true; - } - else if (CLASS_PROTECTED (decl)) - { - tree decl_context; - /* Access is permitted from within the same package... */ - if (in_same_package (decl, enclosing_decl)) - return true; - - /* ... or from within the body of a subtype of the context in which - DECL is declared. */ - decl_context = DECL_CONTEXT (decl); - while (enclosing_decl) - { - if (CLASS_INTERFACE (decl)) - { - if (interface_of_p (TREE_TYPE (decl_context), - enclosing_decl_type)) - return true; - } - else - { - /* Eww. The order of the arguments is different!! */ - if (inherits_from_p (enclosing_decl_type, - TREE_TYPE (decl_context))) - return true; - } - enclosing_decl = DECL_CONTEXT (enclosing_decl); - } - } - else if (! CLASS_PUBLIC (decl)) - { - /* Access is permitted only from within the same package as DECL. */ - if (in_same_package (decl, enclosing_decl)) - return true; - } - else - /* Class is public. */ - return true; - - return false; -} - -/* Check accessibility of inner classes according to member access rules. - DECL is the inner class, ENCLOSING_DECL is the class from which the - access is being attempted. */ - -static void -check_inner_class_access (tree decl, tree enclosing_decl, tree cl) -{ - const char *access; - - /* We don't issue an error message when CL is null. CL can be null - as a result of processing a JDEP crafted by source_start_java_method - for the purpose of patching its parm decl. But the error would - have been already trapped when fixing the method's signature. - DECL can also be NULL in case of earlier errors. */ - if (!decl || !cl) - return; - - if (inner_class_accessible (decl, enclosing_decl)) - return; - - if (CLASS_PRIVATE (decl)) - access = "private"; - else if (CLASS_PROTECTED (decl)) - access = "protected"; - else - access = "non-public"; - - parse_error_context (cl, "Nested %s %s is %s; cannot be accessed from here", - (CLASS_INTERFACE (decl) ? "interface" : "class"), - lang_printable_name (decl, 2), access); -} - -/* Accessibility check for top-level classes. If CLASS_NAME is in a - foreign package, it must be PUBLIC. Return 0 if no access - violations were found, 1 otherwise. If VERBOSE is true and an error - was found, it is reported and accounted for. If CL is NULL then - look it up with THIS_DECL. */ - -static int -check_pkg_class_access (tree class_name, tree cl, bool verbose, tree this_decl) -{ - tree type; - - if (!IDENTIFIER_CLASS_VALUE (class_name)) - return 0; - - if (!(type = TREE_TYPE (IDENTIFIER_CLASS_VALUE (class_name)))) - return 0; - - if (!CLASS_PUBLIC (TYPE_NAME (type))) - { - /* Access to a private class within the same package is - allowed. */ - tree l, r; - split_qualified_name (&l, &r, class_name); - if (!QUALIFIED_P (class_name) && !ctxp->package) - /* Both in the empty package. */ - return 0; - if (l == ctxp->package) - /* Both in the same package. */ - return 0; - - if (verbose) - parse_error_context - (cl == NULL ? lookup_cl (this_decl): cl, - "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed", - (CLASS_INTERFACE (TYPE_NAME (type)) ? "interface" : "class"), - IDENTIFIER_POINTER (class_name)); - return 1; - } - return 0; -} - -/* Local variable declaration. */ - -static void -declare_local_variables (int modifier, tree type, tree vlist) -{ - tree decl, current, saved_type; - tree type_wfl = NULL_TREE; - int must_chain = 0; - int final_p = 0; - - /* Push a new block if statements were seen between the last time we - pushed a block and now. Keep a count of blocks to close */ - if (BLOCK_EXPR_BODY (GET_CURRENT_BLOCK (current_function_decl))) - { - tree b = enter_block (); - BLOCK_IS_IMPLICIT (b) = 1; - } - - if (modifier) - { - size_t i; - for (i = 0; i < ARRAY_SIZE (ctxp->modifier_ctx); i++) - if (1 << i & modifier) - break; - if (modifier == ACC_FINAL) - final_p = 1; - else - { - parse_error_context - (ctxp->modifier_ctx [i], - "Only % is allowed as a local variables modifier"); - return; - } - } - - /* Obtain an incomplete type if TYPE is not complete. TYPE_WFL will - hold the TYPE value if a new incomplete has to be created (as - opposed to being found already existing and reused). */ - SET_TYPE_FOR_RESOLUTION (type, type_wfl, must_chain); - - /* If TYPE is fully resolved and we don't have a reference, make one */ - PROMOTE_RECORD_IF_COMPLETE (type, must_chain); - - /* Go through all the declared variables */ - for (current = vlist, saved_type = type; current; - current = TREE_CHAIN (current), type = saved_type) - { - tree other, real_type; - tree wfl = TREE_PURPOSE (current); - tree name = EXPR_WFL_NODE (wfl); - tree init = TREE_VALUE (current); - - /* Process NAME, as it may specify extra dimension(s) for it */ - type = build_array_from_name (type, type_wfl, name, &name); - - /* Variable redefinition check */ - if ((other = lookup_name_in_blocks (name))) - { - variable_redefinition_error (wfl, name, TREE_TYPE (other), - DECL_SOURCE_LINE (other)); - continue; - } - - /* Type adjustment. We may have just readjusted TYPE because - the variable specified more dimensions. Make sure we have - a reference if we can and don't have one already. */ - PROMOTE_RECORD_IF_COMPLETE (type, must_chain); - - real_type = GET_REAL_TYPE (type); - /* Never layout this decl. This will be done when its scope - will be entered */ - decl = build_decl (VAR_DECL, name, real_type); - MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl); - DECL_FINAL (decl) = final_p; - BLOCK_CHAIN_DECL (decl); - - /* Don't try to use an INIT statement when an error was found */ - if (init && java_error_count) - init = NULL_TREE; - - /* Remember it if this is an initialized-upon-declaration final - variable. */ - if (init && final_p) - { - DECL_LOCAL_FINAL_IUD (decl) = 1; - } - - /* Add the initialization function to the current function's code */ - if (init) - { - /* Name might have been readjusted */ - EXPR_WFL_NODE (TREE_OPERAND (init, 0)) = name; - MODIFY_EXPR_FROM_INITIALIZATION_P (init) = 1; - java_method_add_stmt (current_function_decl, - build_debugable_stmt (EXPR_WFL_LINECOL (init), - init)); - } - - /* Setup dependency the type of the decl */ - if (must_chain) - { - jdep *dep; - register_incomplete_type (JDEP_VARIABLE, type_wfl, decl, type); - dep = CLASSD_LAST (ctxp->classd_list); - JDEP_GET_PATCH (dep) = &TREE_TYPE (decl); - } - } - SOURCE_FRONTEND_DEBUG (("Defined locals")); -} - -/* Called during parsing. Build decls from argument list. */ - -static void -source_start_java_method (tree fndecl) -{ - tree tem; - tree parm_decl; - int i; - - if (!fndecl) - return; - - current_function_decl = fndecl; - - /* New scope for the function */ - enter_block (); - for (tem = TYPE_ARG_TYPES (TREE_TYPE (fndecl)), i = 0; - tem != end_params_node; tem = TREE_CHAIN (tem), i++) - { - tree type = TREE_VALUE (tem); - tree name = TREE_PURPOSE (tem); - - /* If type is incomplete. Create an incomplete decl and ask for - the decl to be patched later */ - if (INCOMPLETE_TYPE_P (type)) - { - jdep *jdep; - tree real_type = GET_REAL_TYPE (type); - parm_decl = build_decl (PARM_DECL, name, real_type); - type = obtain_incomplete_type (type); - register_incomplete_type (JDEP_PARM, NULL_TREE, NULL_TREE, type); - jdep = CLASSD_LAST (ctxp->classd_list); - JDEP_MISC (jdep) = name; - JDEP_GET_PATCH (jdep) = &TREE_TYPE (parm_decl); - } - else - parm_decl = build_decl (PARM_DECL, name, type); - - /* Remember if a local variable was declared final (via its - TREE_LIST of type/name.) Set DECL_FINAL accordingly. */ - if (ARG_FINAL_P (tem)) - { - MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (parm_decl); - DECL_FINAL (parm_decl) = 1; - } - - if (name == this_identifier_node) - DECL_ARTIFICIAL (parm_decl) = 1; - - BLOCK_CHAIN_DECL (parm_decl); - } - tem = BLOCK_EXPR_DECLS (DECL_FUNCTION_BODY (current_function_decl)); - BLOCK_EXPR_DECLS (DECL_FUNCTION_BODY (current_function_decl)) = - nreverse (tem); - DECL_ARG_SLOT_COUNT (current_function_decl) = i; - DECL_MAX_LOCALS (current_function_decl) = i; -} - -/* Called during parsing. Creates an artificial method declaration. */ - -static tree -create_artificial_method (tree class, int flags, tree type, - tree name, tree args) -{ - tree mdecl; - location_t save_location = input_location; - - input_location = DECL_SOURCE_LOCATION (TYPE_NAME (class)); - mdecl = make_node (FUNCTION_TYPE); - TREE_TYPE (mdecl) = type; - TYPE_ARG_TYPES (mdecl) = args; - /* We used to compute the signature of MDECL here and then use - add_method(), but that failed because our caller might modify - the type of the returned method, which trashes the cache in - get_type_from_signature(). */ - mdecl = add_method_1 (class, flags, name, mdecl); - input_location = save_location; - DECL_ARTIFICIAL (mdecl) = 1; - return mdecl; -} - -/* Starts the body if an artificial method. */ - -static void -start_artificial_method_body (tree mdecl) -{ -#ifdef USE_MAPPED_LOCATION - DECL_SOURCE_LOCATION (mdecl) = ctxp->file_start_location; - DECL_FUNCTION_LAST_LINE (mdecl) = ctxp->file_start_location; -#else - DECL_SOURCE_LINE (mdecl) = 1; - DECL_FUNCTION_LAST_LINE (mdecl) = 1; -#endif - source_start_java_method (mdecl); - enter_block (); -} - -static void -end_artificial_method_body (tree mdecl) -{ - /* exit_block modifies DECL_FUNCTION_BODY (current_function_decl). - It has to be evaluated first. (if mdecl is current_function_decl, - we have an undefined behavior if no temporary variable is used.) */ - tree b = exit_block (); - BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (mdecl)) = b; - exit_block (); -} - -/* Dump a tree of some kind. This is a convenience wrapper for the - dump_* functions in tree-dump.c. */ -static void -dump_java_tree (enum tree_dump_index phase, tree t) -{ - FILE *stream; - int flags; - - stream = dump_begin (phase, &flags); - flags |= TDF_SLIM; - if (stream) - { - dump_node (t, flags, stream); - dump_end (phase, stream); - } -} - -/* Terminate a function and expand its body. */ - -static void -source_end_java_method (void) -{ - tree fndecl = current_function_decl; - - if (!fndecl) - return; - - java_parser_context_save_global (); -#ifdef USE_MAPPED_LOCATION - input_location = ctxp->last_ccb_indent1; -#else - input_line = ctxp->last_ccb_indent1; -#endif - - /* Turn function bodies with only a NOP expr null, so they don't get - generated at all and we won't get warnings when using the -W - -Wall flags. */ - if (IS_EMPTY_STMT (BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (fndecl)))) - BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (fndecl)) = NULL_TREE; - - if (BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (fndecl)) - && ! flag_emit_class_files) - finish_method (fndecl); - - current_function_decl = NULL_TREE; - java_parser_context_restore_global (); - current_function_decl = NULL_TREE; -} - -/* Record EXPR in the current function block. Complements compound - expression second operand if necessary. */ - -tree -java_method_add_stmt (tree fndecl, tree expr) -{ - if (!GET_CURRENT_BLOCK (fndecl)) - return NULL_TREE; - return add_stmt_to_block (GET_CURRENT_BLOCK (fndecl), NULL_TREE, expr); -} - -static tree -add_stmt_to_block (tree b, tree type, tree stmt) -{ - tree body = BLOCK_EXPR_BODY (b), c; - - if (java_error_count) - return body; - - if ((c = add_stmt_to_compound (body, type, stmt)) == body) - return body; - - BLOCK_EXPR_BODY (b) = c; - TREE_SIDE_EFFECTS (c) = 1; - return c; -} - -/* Lays out the methods for the classes seen so far. */ - -void -java_layout_seen_class_methods (void) -{ - tree previous_list = all_class_list; - tree end = NULL_TREE; - tree current; - - while (1) - { - for (current = previous_list; - current != end; current = TREE_CHAIN (current)) - { - tree decl = TREE_VALUE (current); - tree cls = TREE_TYPE (decl); - - input_location = DECL_SOURCE_LOCATION (decl); - - if (! CLASS_LOADED_P (cls)) - load_class (cls, 0); - - layout_class_methods (cls); - } - - /* Note that new classes might have been added while laying out - methods, changing the value of all_class_list. */ - - if (previous_list != all_class_list) - { - end = previous_list; - previous_list = all_class_list; - } - else - break; - } -} - -static GTY(()) tree stop_reordering; -void -java_reorder_fields (void) -{ - tree current; - - for (current = gclass_list; current; current = TREE_CHAIN (current)) - { - output_class = current_class = TREE_TYPE (TREE_VALUE (current)); - - if (current_class == stop_reordering) - break; - - /* Reverse the fields, but leave the dummy field in front. - Fields are already ordered for Object and Class */ - if (TYPE_FIELDS (current_class) && current_class != object_type_node - && current_class != class_type_node) - { - /* If the dummy field is there, reverse the right fields and - just layout the type for proper fields offset */ - if (!DECL_NAME (TYPE_FIELDS (current_class))) - { - tree fields = TYPE_FIELDS (current_class); - /* This works around a problem where on some platforms, - the field might be given its size incorrectly. */ - DECL_SIZE (fields) = NULL_TREE; - DECL_SIZE_UNIT (fields) = NULL_TREE; - TREE_CHAIN (fields) = nreverse (TREE_CHAIN (fields)); - TYPE_SIZE (current_class) = NULL_TREE; - } - /* We don't have a dummy field, we need to layout the class, - after having reversed the fields */ - else - { - TYPE_FIELDS (current_class) = - nreverse (TYPE_FIELDS (current_class)); - TYPE_SIZE (current_class) = NULL_TREE; - } - } - } - /* There are cases were gclass_list will be empty. */ - if (gclass_list) - stop_reordering = TREE_TYPE (TREE_VALUE (gclass_list)); -} - -/* Layout the methods of all classes loaded in one way or another. - Check methods of source parsed classes. Then reorder the - fields and layout the classes or the type of all source parsed - classes */ - -void -java_layout_classes (void) -{ - tree current; - int save_error_count = java_error_count; - - /* Layout the methods of all classes seen so far */ - java_layout_seen_class_methods (); - java_parse_abort_on_error (); - all_class_list = NULL_TREE; - - /* Then check the methods of all parsed classes */ - for (current = gclass_list; current; current = TREE_CHAIN (current)) - if (CLASS_FROM_SOURCE_P (TREE_TYPE (TREE_VALUE (current)))) - java_check_methods (TREE_VALUE (current)); - java_parse_abort_on_error (); - - for (current = gclass_list; current; current = TREE_CHAIN (current)) - { - output_class = current_class = TREE_TYPE (TREE_VALUE (current)); - layout_class (current_class); - - /* Error reported by the caller */ - if (java_error_count) - return; - } - - /* We might have reloaded classes durign the process of laying out - classes for code generation. We must layout the methods of those - late additions, as constructor checks might use them */ - java_layout_seen_class_methods (); - java_parse_abort_on_error (); -} - -/* Expand methods in the current set of classes remembered for - generation. */ - -static void -java_complete_expand_classes (void) -{ - tree current; - - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - if (!INNER_CLASS_DECL_P (current)) - java_complete_expand_class (current); -} - -/* Expand the methods found in OUTER, starting first by OUTER's inner - classes, if any. */ - -static void -java_complete_expand_class (tree outer) -{ - tree inner_list; - - /* We need to go after all inner classes and start expanding them, - starting with most nested ones. We have to do that because nested - classes might add functions to outer classes */ - - for (inner_list = DECL_INNER_CLASS_LIST (outer); - inner_list; inner_list = TREE_CHAIN (inner_list)) - java_complete_expand_class (TREE_PURPOSE (inner_list)); - - java_complete_expand_methods (outer); -} - -/* Expand methods registered in CLASS_DECL. The general idea is that - we expand regular methods first. This allows us get an estimate on - how outer context local alias fields are really used so we can add - to the constructor just enough code to initialize them properly (it - also lets us generate finit$ correctly.) Then we expand the - constructors and then . */ - -static void -java_complete_expand_methods (tree class_decl) -{ - tree clinit, decl, first_decl; - - output_class = current_class = TREE_TYPE (class_decl); - - /* Pre-expand to figure whether we really need it or - not. If we do need it, we pre-expand the static fields so they're - ready to be used somewhere else. will be fully expanded - after we processed the constructors. */ - first_decl = TYPE_METHODS (current_class); - clinit = maybe_generate_pre_expand_clinit (current_class); - - /* Then generate finit$ (if we need to) because constructors will - try to use it.*/ - if (TYPE_FINIT_STMT_LIST (current_class)) - java_complete_expand_method (generate_finit (current_class)); - - /* Then generate instinit$ (if we need to) because constructors will - try to use it. */ - if (TYPE_II_STMT_LIST (current_class)) - java_complete_expand_method (generate_instinit (current_class)); - - /* Now do the constructors */ - for (decl = first_decl ; !java_error_count && decl; decl = TREE_CHAIN (decl)) - { - if (!DECL_CONSTRUCTOR_P (decl)) - continue; - java_complete_expand_method (decl); - } - - /* First, do the ordinary methods. */ - for (decl = first_decl; decl; decl = TREE_CHAIN (decl)) - { - /* Ctors aren't part of this batch. */ - if (DECL_CONSTRUCTOR_P (decl) || DECL_CLINIT_P (decl)) - continue; - - /* Skip abstract or native methods -- but do handle native - methods when generating JNI stubs. */ - if (METHOD_ABSTRACT (decl) || (! flag_jni && METHOD_NATIVE (decl))) - { - DECL_FUNCTION_BODY (decl) = NULL_TREE; - continue; - } - - if (METHOD_NATIVE (decl)) - { - tree body; - current_function_decl = decl; - body = build_jni_stub (decl); - BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (decl)) = body; - } - - java_complete_expand_method (decl); - } - - /* If there is indeed a , fully expand it now */ - if (clinit) - { - /* Prevent the use of `this' inside */ - ctxp->explicit_constructor_p = 1; - java_complete_expand_method (clinit); - ctxp->explicit_constructor_p = 0; - } - - /* We might have generated a class$ that we now want to expand */ - if (TYPE_DOT_CLASS (current_class)) - java_complete_expand_method (TYPE_DOT_CLASS (current_class)); - - /* Now verify constructor circularity (stop after the first one we - prove wrong.) */ - if (!CLASS_INTERFACE (class_decl)) - for (decl = TYPE_METHODS (current_class); decl; decl = TREE_CHAIN (decl)) - if (DECL_CONSTRUCTOR_P (decl) - && verify_constructor_circularity (decl, decl)) - break; -} - -/* Attempt to create . Pre-expand static fields so they can be - safely used in some other methods/constructors. */ - -static tree -maybe_generate_pre_expand_clinit (tree class_type) -{ - tree current, mdecl; - - if (!TYPE_CLINIT_STMT_LIST (class_type)) - return NULL_TREE; - - /* Go through all static fields and pre expand them */ - for (current = TYPE_FIELDS (class_type); current; - current = TREE_CHAIN (current)) - if (FIELD_STATIC (current)) - build_field_ref (NULL_TREE, class_type, DECL_NAME (current)); - - /* Then build the method */ - mdecl = create_artificial_method (class_type, ACC_STATIC, void_type_node, - clinit_identifier_node, end_params_node); - layout_class_method (class_type, CLASSTYPE_SUPER (class_type), - mdecl, NULL_TREE); - start_artificial_method_body (mdecl); - - /* We process the list of assignment we produced as the result of - the declaration of initialized static field and add them as - statement to the method. */ - for (current = TYPE_CLINIT_STMT_LIST (class_type); current; - current = TREE_CHAIN (current)) - { - tree stmt = current; - /* We build the assignment expression that will initialize the - field to its value. There are strict rules on static - initializers (8.5). FIXME */ - if (TREE_CODE (stmt) != BLOCK && !IS_EMPTY_STMT (stmt)) - stmt = build_debugable_stmt (EXPR_WFL_LINECOL (stmt), stmt); - java_method_add_stmt (mdecl, stmt); - } - - end_artificial_method_body (mdecl); - - /* Now we want to place as the last method (because we need - it at least for interface so that it doesn't interfere with the - dispatch table based lookup. */ - if (TREE_CHAIN (TYPE_METHODS (class_type))) - { - current = TREE_CHAIN (TYPE_METHODS (class_type)); - TYPE_METHODS (class_type) = current; - - while (TREE_CHAIN (current)) - current = TREE_CHAIN (current); - - TREE_CHAIN (current) = mdecl; - TREE_CHAIN (mdecl) = NULL_TREE; - } - - return mdecl; -} - -/* Analyzes a method body and look for something that isn't a - MODIFY_EXPR with a constant value. Return true if is - needed, false otherwise. */ - -static int -analyze_clinit_body (tree this_class, tree bbody) -{ - while (bbody) - switch (TREE_CODE (bbody)) - { - case BLOCK: - bbody = BLOCK_EXPR_BODY (bbody); - break; - - case EXPR_WITH_FILE_LOCATION: - bbody = EXPR_WFL_NODE (bbody); - break; - - case COMPOUND_EXPR: - if (analyze_clinit_body (this_class, TREE_OPERAND (bbody, 0))) - return 1; - bbody = TREE_OPERAND (bbody, 1); - break; - - case MODIFY_EXPR: - /* If we're generating to class file and we're dealing with an - array initialization, we return 1 to keep */ - if (TREE_CODE (TREE_OPERAND (bbody, 1)) == NEW_ARRAY_INIT - && flag_emit_class_files) - return 1; - - /* There are a few cases where we're required to keep - : - - If this is an assignment whose operand is not constant, - - If this is an assignment to a non-initialized field, - - If this field is not a member of the current class. - */ - return (! TREE_CONSTANT (TREE_OPERAND (bbody, 1)) - || ! DECL_INITIAL (TREE_OPERAND (bbody, 0)) - || DECL_CONTEXT (TREE_OPERAND (bbody, 0)) != this_class); - - case NOP_EXPR: - /* We might see an empty statement here, which is - ignorable. */ - return ! IS_EMPTY_STMT (bbody); - - default: - return 1; - } - return 0; -} - - -/* See whether we could get rid of . Criteria are: all static - final fields have constant initial values and the body of - is empty. Return 1 if was discarded, 0 otherwise. */ - -static int -maybe_yank_clinit (tree mdecl) -{ - tree type, current; - tree fbody, bbody; - - if (!DECL_CLINIT_P (mdecl)) - return 0; - - /* If the body isn't empty, then we keep . Note that if - we're emitting classfiles, this isn't enough not to rule it - out. */ - fbody = DECL_FUNCTION_BODY (mdecl); - bbody = BLOCK_EXPR_BODY (fbody); - if (bbody && bbody != error_mark_node) - bbody = BLOCK_EXPR_BODY (bbody); - else - return 0; - if (bbody && ! flag_emit_class_files && !IS_EMPTY_STMT (bbody)) - return 0; - - type = DECL_CONTEXT (mdecl); - current = TYPE_FIELDS (type); - - for (current = (current ? TREE_CHAIN (current) : current); - current; current = TREE_CHAIN (current)) - { - tree f_init; - - /* We're not interested in non-static fields. */ - if (!FIELD_STATIC (current)) - continue; - - /* Nor in fields without initializers. */ - f_init = DECL_INITIAL (current); - if (f_init == NULL_TREE) - continue; - - /* Anything that isn't String or a basic type is ruled out -- or - if we know how to deal with it (when doing things natively) we - should generated an empty so that SUID are computed - correctly. */ - if (! JSTRING_TYPE_P (TREE_TYPE (current)) - && ! JNUMERIC_TYPE_P (TREE_TYPE (current))) - return 0; - - if (! FIELD_FINAL (current) || ! TREE_CONSTANT (f_init)) - return 0; - } - - /* Now we analyze the method body and look for something that - isn't a MODIFY_EXPR */ - if (bbody && !IS_EMPTY_STMT (bbody) && analyze_clinit_body (type, bbody)) - return 0; - - /* Get rid of in the class' list of methods */ - if (TYPE_METHODS (type) == mdecl) - TYPE_METHODS (type) = TREE_CHAIN (mdecl); - else - for (current = TYPE_METHODS (type); current; - current = TREE_CHAIN (current)) - if (TREE_CHAIN (current) == mdecl) - { - TREE_CHAIN (current) = TREE_CHAIN (mdecl); - break; - } - - return 1; -} - -/* Install the argument from MDECL. Suitable to completion and - expansion of mdecl's body. */ - -void -start_complete_expand_method (tree mdecl) -{ - tree tem; - - pushlevel (1); /* Prepare for a parameter push */ - tem = BLOCK_EXPR_DECLS (DECL_FUNCTION_BODY (current_function_decl)); - DECL_ARGUMENTS (mdecl) = tem; - - for (; tem; tem = TREE_CHAIN (tem)) - { - /* TREE_CHAIN (tem) will change after pushdecl. */ - tree next = TREE_CHAIN (tem); - tree type = TREE_TYPE (tem); - if (targetm.calls.promote_prototypes (type) - && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node) - && INTEGRAL_TYPE_P (type)) - type = integer_type_node; - DECL_ARG_TYPE (tem) = type; - layout_decl (tem, 0); - pushdecl (tem); - /* Re-install the next so that the list is kept and the loop - advances. */ - TREE_CHAIN (tem) = next; - } - pushdecl_force_head (DECL_ARGUMENTS (mdecl)); - input_location = DECL_SOURCE_LOCATION (mdecl); - build_result_decl (mdecl); -} - - -/* Complete and expand a method. */ - -static void -java_complete_expand_method (tree mdecl) -{ - tree fbody, block_body, exception_copy; - - current_function_decl = mdecl; - /* Fix constructors before expanding them */ - if (DECL_CONSTRUCTOR_P (mdecl)) - fix_constructors (mdecl); - - /* Expand functions that have a body */ - if (!DECL_FUNCTION_BODY (mdecl)) - return; - - fbody = DECL_FUNCTION_BODY (mdecl); - block_body = BLOCK_EXPR_BODY (fbody); - exception_copy = NULL_TREE; - - current_function_decl = mdecl; - - if (! quiet_flag) - fprintf (stderr, " [%s.", - lang_printable_name (DECL_CONTEXT (mdecl), 0)); - announce_function (mdecl); - if (! quiet_flag) - fprintf (stderr, "]"); - - /* Prepare the function for tree completion */ - start_complete_expand_method (mdecl); - - /* Install the current this */ - current_this = (!METHOD_STATIC (mdecl) ? - BLOCK_EXPR_DECLS (DECL_FUNCTION_BODY (mdecl)) : NULL_TREE); - - /* Install exceptions thrown with `throws' */ - PUSH_EXCEPTIONS (DECL_FUNCTION_THROWS (mdecl)); - - if (block_body != NULL_TREE) - { - block_body = java_complete_tree (block_body); - - /* Before we check initialization, attached all class initialization - variable to the block_body */ - htab_traverse (DECL_FUNCTION_INIT_TEST_TABLE (mdecl), - attach_init_test_initialization_flags, block_body); - - if (! METHOD_NATIVE (mdecl)) - { - check_for_initialization (block_body, mdecl); - - /* Go through all the flags marking the initialization of - static variables and see whether they're definitively - assigned, in which case the type is remembered as - definitively initialized in MDECL. */ - if (STATIC_CLASS_INIT_OPT_P ()) - { - /* Always register the context as properly initialized in - MDECL. This used with caution helps removing extra - initialization of self. */ - if (METHOD_STATIC (mdecl)) - { - *(htab_find_slot - (DECL_FUNCTION_INITIALIZED_CLASS_TABLE (mdecl), - DECL_CONTEXT (mdecl), INSERT)) = DECL_CONTEXT (mdecl); - } - } - } - ctxp->explicit_constructor_p = 0; - } - - BLOCK_EXPR_BODY (fbody) = block_body; - - /* If we saw a return but couldn't evaluate it properly, we'll have - an error_mark_node here. */ - if (block_body != error_mark_node - && (block_body == NULL_TREE || CAN_COMPLETE_NORMALLY (block_body)) - && TREE_CODE (TREE_TYPE (TREE_TYPE (mdecl))) != VOID_TYPE) - missing_return_error (current_function_decl); - - /* See if we can get rid of if MDECL happens to be */ - maybe_yank_clinit (mdecl); - - /* Pop the current level, with special measures if we found errors. */ - if (java_error_count) - pushdecl_force_head (DECL_ARGUMENTS (mdecl)); - poplevel (1, 0, 1); - - /* Pop the exceptions and sanity check */ - POP_EXCEPTIONS(); - if (currently_caught_type_list) - abort (); -} - -/* For with each class for which there's code to generate. */ - -static void -java_expand_method_bodies (tree class) -{ - tree decl; - for (decl = TYPE_METHODS (class); decl; decl = TREE_CHAIN (decl)) - { - tree block; - - if (! DECL_FUNCTION_BODY (decl)) - continue; - - current_function_decl = decl; - - block = BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (decl)); - - /* Save the function body for gimplify and inlining. */ - DECL_SAVED_TREE (decl) = block; - - /* It's time to assign the variable flagging static class - initialization based on which classes invoked static methods - are definitely initializing. This should be flagged. */ - if (STATIC_CLASS_INIT_OPT_P ()) - { - tree list = DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND (decl); - for (; list != NULL_TREE; list = TREE_CHAIN (list)) - { - /* Executed for each statement calling a static function. - LIST is a TREE_LIST whose PURPOSE is the called function - and VALUE is a compound whose second operand can be patched - with static class initialization flag assignments. */ - - tree called_method = TREE_PURPOSE (list); - tree compound = TREE_VALUE (list); - tree assignment_compound_list - = build_tree_list (called_method, NULL); - - /* For each class definitely initialized in - CALLED_METHOD, fill ASSIGNMENT_COMPOUND with - assignment to the class initialization flag. */ - htab_traverse (DECL_FUNCTION_INITIALIZED_CLASS_TABLE (called_method), - emit_test_initialization, - assignment_compound_list); - - if (TREE_VALUE (assignment_compound_list)) - TREE_OPERAND (compound, 1) - = TREE_VALUE (assignment_compound_list); - } - } - - /* Expand the function body. */ - source_end_java_method (); - } -} - - - -/* This section of the code deals with accessing enclosing context - fields either directly by using the relevant access to this$ or - by invoking an access method crafted for that purpose. */ - -/* Build the necessary access across nested class boundaries. - This routine could be optimized to cache previous result - (decl, current_class and returned access). When an access method - needs to be generated, it always takes the form of a read. It might - be later turned into a write by calling nested_field_access_fix. */ - -static tree -build_nested_field_access (tree id, tree decl) -{ - tree access = NULL_TREE; - tree ctx = NULL_TREE; - tree decl_ctx = DECL_CONTEXT (decl); - bool is_static = FIELD_STATIC (decl); - - if (DECL_CONTEXT (TYPE_NAME (current_class))) - ctx = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (current_class))); - - /* For non-static fields, if the immediate enclosing context of the - current class is the field decl's class or inherits from it, - build the access as `this$.'. Note that we will break - the `private' barrier if we're not emitting bytecodes. */ - if (!is_static - && ctx - && (ctx == decl_ctx || inherits_from_p (ctx, decl_ctx)) - && (!FIELD_PRIVATE (decl) || !flag_emit_class_files)) - { - tree thisn = build_current_thisn (current_class); - access = make_qualified_primary (build_wfl_node (thisn), - id, EXPR_WFL_LINECOL (id)); - } - /* Otherwise, generate and use accessor methods for the field as - needed. */ - else - { - int lc = EXPR_WFL_LINECOL (id); - - /* Now we chain the required number of calls to the access$0 to - get a hold to the enclosing instance we need for a non-static - field, and then we build the field access. */ - if (!is_static) - access = build_access_to_thisn (current_class, decl_ctx, lc); - - /* If the field is private and we're generating bytecode, then - we generate an access method. */ - if (FIELD_PRIVATE (decl) && flag_emit_class_files) - { - tree name = build_nested_field_access_methods (decl); - access = build_nested_field_access_expr (lc, decl_ctx, - name, access, NULL_TREE); - } - /* Otherwise we use `access$(this$). ... access$(this$).' - for non-static fields. - Once again we break the `private' access rule from a foreign - class. */ - else if (is_static) - { - tree class_name = DECL_NAME (TYPE_NAME (decl_ctx)); - access - = make_qualified_primary (build_wfl_node (class_name), id, lc); - } - else - access = make_qualified_primary (access, id, lc); - } - - return resolve_expression_name (access, NULL); -} - -/* Return a nonzero value if DECL describes a member access across nested - class boundaries. That is, DECL is in a class that either encloses, - is enclosed by or shares a common enclosing class with the class - TYPE. */ - -static int -nested_member_access_p (tree type, tree decl) -{ - bool is_static = false; - tree decl_type = DECL_CONTEXT (decl); - tree type_root, decl_type_root; - - if (decl_type == type - || (TREE_CODE (decl) != FIELD_DECL - && TREE_CODE (decl) != VAR_DECL - && TREE_CODE (decl) != FUNCTION_DECL)) - return 0; - - if (!INNER_CLASS_TYPE_P (type) - && !(TREE_CODE (decl_type) == RECORD_TYPE - && INNER_CLASS_TYPE_P (decl_type))) - return 0; - - is_static = (TREE_CODE (decl) == FUNCTION_DECL) - ? METHOD_STATIC (decl) - : FIELD_STATIC (decl); - - /* If TYPE extends the declaration context of the non-static - member we're trying to access, then this isn't a nested member - access we need to worry about. */ - if (!is_static && inherits_from_p (type, decl_type)) - return 0; - - for (type_root = type; - DECL_CONTEXT (TYPE_NAME (type_root)); - type_root = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (type_root)))) - { - if (type_root == decl_type) - return 1; - } - - if (TREE_CODE (decl_type) == RECORD_TYPE - && INNER_CLASS_TYPE_P (decl_type)) - { - for (decl_type_root = decl_type; - DECL_CONTEXT (TYPE_NAME (decl_type_root)); - decl_type_root - = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (decl_type_root)))) - { - if (decl_type_root == type) - return 1; - } - } - else - decl_type_root = decl_type; - - if (type_root == decl_type_root) - return 1; - - /* Before we give up, see whether it is a non-static field - inherited from the enclosing context we are considering. */ - if (!DECL_CONTEXT (TYPE_NAME (type_root)) - && !is_static - && inherits_from_p (type_root, decl_type)) - return 1; - - return 0; -} - -/* Return a nonzero value if NODE represents a cross-nested-class - access that has already been expanded. As a side effect, it returns - the name of the field being accessed and the argument passed to the - access function, suitable for a regeneration of the access method - call if necessary. */ - -static int -nested_field_expanded_access_p (tree node, tree *name, tree *arg_type, - tree *arg) -{ - int identified = 0; - - if (TREE_CODE (node) != CALL_EXPR) - return 0; - - /* Well, GCJ generates slightly different tree nodes when compiling - to native or bytecodes. It's the case for function calls. */ - - if (flag_emit_class_files - && TREE_CODE (node) == CALL_EXPR - && NESTED_FIELD_ACCESS_IDENTIFIER_P (DECL_NAME (TREE_OPERAND (node, 0)))) - identified = 1; - else if (!flag_emit_class_files) - { - node = TREE_OPERAND (node, 0); - - if (node && TREE_OPERAND (node, 0) - && TREE_CODE (TREE_OPERAND (node, 0)) == ADDR_EXPR) - { - node = TREE_OPERAND (node, 0); - if (TREE_OPERAND (node, 0) - && TREE_CODE (TREE_OPERAND (node, 0)) == FUNCTION_DECL - && (NESTED_FIELD_ACCESS_IDENTIFIER_P - (DECL_NAME (TREE_OPERAND (node, 0))))) - identified = 1; - } - } - - if (identified && name && arg_type && arg) - { - tree argument = TREE_OPERAND (node, 1); - *name = DECL_NAME (TREE_OPERAND (node, 0)); - - /* The accessors for static fields do not take in a this$ argument, - so we take the class name from the accessor's context instead. */ - if (argument) - { - *arg_type = TREE_TYPE (TREE_TYPE (TREE_VALUE (argument))); - *arg = TREE_VALUE (argument); - } - else - { - *arg_type = DECL_CONTEXT (TREE_OPERAND (node, 0)); - *arg = NULL_TREE; - } - } - return identified; -} - -/* Detect in NODE cross-nested-class field read access and - transform it into a write with RHS as an argument. This function - is called from the java_complete_lhs when an assignment to a LHS can - be identified. */ - -static tree -nested_field_access_fix (tree wfl, tree node, tree rhs) -{ - tree name, arg_type, arg; - - if (nested_field_expanded_access_p (node, &name, &arg_type, &arg)) - { - node = build_nested_field_access_expr (EXPR_WFL_LINECOL (wfl), - arg_type, name, arg, rhs); - return java_complete_tree (node); - } - return NULL_TREE; -} - -/* Construct the expression that calls an access method: - .access$( [, ]); - - ARG2 can be NULL and will be omitted in that case. It will denote a - read access. */ - -static tree -build_nested_field_access_expr (int lc, tree type, tree access_method_name, - tree arg1, tree arg2) -{ - tree args, cn, access; - - if (arg1) - args = build_tree_list (NULL_TREE, arg1); - else - args = NULL_TREE; - - if (arg2) - { - if (args) - args = tree_cons (NULL_TREE, arg2, args); - else - args = build_tree_list (NULL_TREE, arg2); - } - - access - = build_method_invocation (build_wfl_node (access_method_name), args); - cn = build_wfl_node (DECL_NAME (TYPE_NAME (type))); - - return make_qualified_primary (cn, access, lc); -} - -/* Build the name of a synthetic accessor used to access class members - across nested class boundaries. */ - -static tree -build_new_access_id (void) -{ - static int access_n_counter = 1; - char buffer [128]; - - sprintf (buffer, "access$%d", access_n_counter++); - return get_identifier (buffer); -} - -/* Create the static access functions for the cross-nested-class field DECL. - We define a read: - TREE_TYPE () access$ (DECL_CONTEXT () inst$) { - return inst$.field; - } - and a write access: - TREE_TYPE () access$ (DECL_CONTEXT () inst$, - TREE_TYPE () value$) { - return inst$.field = value$; - } - For static fields, these methods are generated without the instance - parameter. - We should have a usage flag on the DECL so we can lazily turn the ones - we're using for code generation. FIXME. -*/ - -static tree -build_nested_field_access_methods (tree decl) -{ - tree id, args, stmt, mdecl, class_name = NULL_TREE; - bool is_static = FIELD_STATIC (decl); - - if (FIELD_NESTED_ACCESS_P (decl)) - return FIELD_NESTED_ACCESS (decl); - - MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl); - - /* Create the identifier and a function named after it. */ - id = build_new_access_id (); - - /* The identifier is marked as bearing the name of a generated write - access function for outer field accessed from inner classes. */ - NESTED_FIELD_ACCESS_IDENTIFIER_P (id) = 1; - - /* Create the read access. */ - if (!is_static) - { - args = build_tree_list (inst_id, - build_pointer_type (DECL_CONTEXT (decl))); - TREE_CHAIN (args) = end_params_node; - stmt = make_qualified_primary (build_wfl_node (inst_id), - build_wfl_node (DECL_NAME (decl)), 0); - } - else - { - args = end_params_node; - class_name = DECL_NAME (TYPE_NAME (DECL_CONTEXT (decl))); - stmt = make_qualified_primary (build_wfl_node (class_name), - build_wfl_node (DECL_NAME (decl)), 0); - } - stmt = build_return (0, stmt); - mdecl = build_nested_field_access_method (DECL_CONTEXT (decl), - TREE_TYPE (decl), id, args, stmt); - DECL_FUNCTION_ACCESS_DECL (mdecl) = decl; - - /* Create the write access method. No write access for final variable */ - if (!FIELD_FINAL (decl)) - { - if (!is_static) - { - args = build_tree_list (inst_id, - build_pointer_type (DECL_CONTEXT (decl))); - TREE_CHAIN (args) = build_tree_list (wpv_id, TREE_TYPE (decl)); - TREE_CHAIN (TREE_CHAIN (args)) = end_params_node; - stmt = make_qualified_primary (build_wfl_node (inst_id), - build_wfl_node (DECL_NAME (decl)), - 0); - } - else - { - args = build_tree_list (wpv_id, TREE_TYPE (decl)); - TREE_CHAIN (args) = end_params_node; - stmt = make_qualified_primary (build_wfl_node (class_name), - build_wfl_node (DECL_NAME (decl)), - 0); - } - stmt = build_return (0, build_assignment (ASSIGN_TK, 0, stmt, - build_wfl_node (wpv_id))); - mdecl = build_nested_field_access_method (DECL_CONTEXT (decl), - TREE_TYPE (decl), id, - args, stmt); - } - DECL_FUNCTION_ACCESS_DECL (mdecl) = decl; - - /* Return the access name */ - return FIELD_NESTED_ACCESS (decl) = id; -} - -/* Build a field access method NAME. */ - -static tree -build_nested_field_access_method (tree class, tree type, tree name, - tree args, tree body) -{ - tree saved_current_function_decl, mdecl; - - /* Create the method */ - mdecl = create_artificial_method (class, ACC_STATIC, type, name, args); - fix_method_argument_names (args, mdecl); - layout_class_method (class, NULL_TREE, mdecl, NULL_TREE); - - /* Attach the method body. */ - saved_current_function_decl = current_function_decl; - start_artificial_method_body (mdecl); - java_method_add_stmt (mdecl, body); - end_artificial_method_body (mdecl); - current_function_decl = saved_current_function_decl; - - return mdecl; -} - - -/* This section deals with building access function necessary for - certain kinds of method invocation across nested class boundaries. */ - -static tree -build_nested_method_access_method (tree decl) -{ - tree saved_current_function_decl, mdecl; - tree args = NULL_TREE, call_args = NULL_TREE; - tree carg, id, body, class; - char buffer [80]; - int parm_id_count = 0; - - /* Test this abort with an access to a private field */ - if (!strcmp (IDENTIFIER_POINTER (DECL_NAME (decl)), "access$")) - abort (); - - /* Check the cache first */ - if (DECL_FUNCTION_INNER_ACCESS (decl)) - return DECL_FUNCTION_INNER_ACCESS (decl); - - class = DECL_CONTEXT (decl); - - /* Obtain an access identifier and mark it */ - id = build_new_access_id (); - NESTED_FIELD_ACCESS_IDENTIFIER_P (id) = 1; - - carg = TYPE_ARG_TYPES (TREE_TYPE (decl)); - /* Create the arguments, as much as the original */ - for (; carg && carg != end_params_node; - carg = TREE_CHAIN (carg)) - { - sprintf (buffer, "write_parm_value$%d", parm_id_count++); - args = chainon (args, build_tree_list (get_identifier (buffer), - TREE_VALUE (carg))); - } - args = chainon (args, end_params_node); - - /* Create the method */ - mdecl = create_artificial_method (class, ACC_STATIC, - TREE_TYPE (TREE_TYPE (decl)), id, args); - layout_class_method (class, NULL_TREE, mdecl, NULL_TREE); - /* There is a potential bug here. We should be able to use - fix_method_argument_names, but then arg names get mixed up and - eventually a constructor will have its this$0 altered and the - outer context won't be assignment properly. The testcase is - stub.java FIXME */ - TYPE_ARG_TYPES (TREE_TYPE (mdecl)) = args; - - /* Attach the method body. */ - saved_current_function_decl = current_function_decl; - start_artificial_method_body (mdecl); - - /* The actual method invocation uses the same args. When invoking a - static methods that way, we don't want to skip the first argument. */ - carg = args; - if (!METHOD_STATIC (decl)) - carg = TREE_CHAIN (carg); - for (; carg && carg != end_params_node; carg = TREE_CHAIN (carg)) - call_args = tree_cons (NULL_TREE, build_wfl_node (TREE_PURPOSE (carg)), - call_args); - - body = build_method_invocation (build_wfl_node (DECL_NAME (decl)), - call_args); - if (!METHOD_STATIC (decl)) - body = make_qualified_primary (build_wfl_node (TREE_PURPOSE (args)), - body, 0); - if (TREE_TYPE (TREE_TYPE (decl)) != void_type_node) - body = build_return (0, body); - java_method_add_stmt (mdecl,body); - end_artificial_method_body (mdecl); - current_function_decl = saved_current_function_decl; - - /* Back tag the access function so it know what it accesses. */ - DECL_FUNCTION_ACCESS_DECL (decl) = mdecl; - - /* Tag the current method so it knows it has an access generated. */ - return DECL_FUNCTION_INNER_ACCESS (decl) = mdecl; -} - - -/* This section of the code deals with building expressions to access - the enclosing instance of an inner class. The enclosing instance is - kept in a generated field called this$, with being the - inner class nesting level (starting from 0.) */ - -/* Build an access to a given this$, always chaining access call to - others. Access methods to this$ are build on the fly if - necessary. This CAN'T be used to solely access this$ from - this$ (which alway yield to special cases and optimization, see - for example build_nested_field_access). */ - -static tree -build_access_to_thisn (tree from, tree to, int lc) -{ - tree access = NULL_TREE; - - while (from != to && PURE_INNER_CLASS_TYPE_P (from)) - { - if (!access) - { - access = build_current_thisn (from); - access = build_wfl_node (access); - } - else - { - tree access0_wfl, cn; - - maybe_build_thisn_access_method (from); - access0_wfl = build_wfl_node (access0_identifier_node); - cn = build_wfl_node (DECL_NAME (TYPE_NAME (from))); - EXPR_WFL_LINECOL (access0_wfl) = lc; - access = build_tree_list (NULL_TREE, access); - access = build_method_invocation (access0_wfl, access); - access = make_qualified_primary (cn, access, lc); - } - - /* If FROM isn't an inner class, that's fine, we've done enough. - What we're looking for can be accessed from there. */ - from = DECL_CONTEXT (TYPE_NAME (from)); - if (!from) - break; - from = TREE_TYPE (from); - } - return access; -} - -/* Build an access function to the this$ local to TYPE. NULL_TREE - is returned if nothing needs to be generated. Otherwise, the method - generated and a method decl is returned. - - NOTE: These generated methods should be declared in a class file - attribute so that they can't be referred to directly. */ - -static tree -maybe_build_thisn_access_method (tree type) -{ - tree mdecl, args, stmt, rtype; - tree saved_current_function_decl; - - /* If TYPE is a top-level class, no access method is required. - If there already is such an access method, bail out. */ - if (CLASS_ACCESS0_GENERATED_P (type) || !PURE_INNER_CLASS_TYPE_P (type)) - return NULL_TREE; - - /* We generate the method. The method looks like: - static access$0 ( inst$) { return inst$.this$; } - */ - args = build_tree_list (inst_id, build_pointer_type (type)); - TREE_CHAIN (args) = end_params_node; - rtype = build_pointer_type (TREE_TYPE (DECL_CONTEXT (TYPE_NAME (type)))); - mdecl = create_artificial_method (type, ACC_STATIC, rtype, - access0_identifier_node, args); - fix_method_argument_names (args, mdecl); - layout_class_method (type, NULL_TREE, mdecl, NULL_TREE); - stmt = build_current_thisn (type); - stmt = make_qualified_primary (build_wfl_node (inst_id), - build_wfl_node (stmt), 0); - stmt = build_return (0, stmt); - - saved_current_function_decl = current_function_decl; - start_artificial_method_body (mdecl); - java_method_add_stmt (mdecl, stmt); - end_artificial_method_body (mdecl); - current_function_decl = saved_current_function_decl; - - CLASS_ACCESS0_GENERATED_P (type) = 1; - - return mdecl; -} - -/* Craft an correctly numbered `this$'string. this$0 is used for - the first level of innerclassing. this$1 for the next one, etc... - This function can be invoked with TYPE to NULL, available and then - has to count the parser context. */ - -static GTY(()) tree saved_thisn; -static GTY(()) tree saved_type; - -static tree -build_current_thisn (tree type) -{ - static int saved_i = -1; - static int saved_type_i = 0; - tree decl; - char buffer [24]; - int i = 0; - - if (type) - { - if (type == saved_type) - i = saved_type_i; - else - { - for (i = -1, decl = DECL_CONTEXT (TYPE_NAME (type)); - decl; decl = DECL_CONTEXT (decl), i++) - ; - - saved_type = type; - saved_type_i = i; - } - } - else - i = list_length (GET_CPC_LIST ())-2; - - if (i == saved_i) - return saved_thisn; - - sprintf (buffer, "this$%d", i); - saved_i = i; - saved_thisn = get_identifier (buffer); - return saved_thisn; -} - -/* Return the assignment to the hidden enclosing context `this$' - by the second incoming parameter to the innerclass constructor. The - form used is `this.this$ = this$;'. */ - -static tree -build_thisn_assign (void) -{ - if (current_class && PURE_INNER_CLASS_TYPE_P (current_class)) - { - tree thisn = build_current_thisn (current_class); - tree lhs = make_qualified_primary (build_wfl_node (this_identifier_node), - build_wfl_node (thisn), 0); - tree rhs = build_wfl_node (thisn); -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (lhs, input_location); -#else - EXPR_WFL_SET_LINECOL (lhs, input_line, 0); -#endif - return build_assignment (ASSIGN_TK, EXPR_WFL_LINECOL (lhs), lhs, rhs); - } - return NULL_TREE; -} - - -/* Building the synthetic `class$' used to implement the `.class' 1.1 - extension for non primitive types. This method looks like: - - static Class class$(String type) throws NoClassDefFoundError - { - try {return (java.lang.Class.forName (String));} - catch (ClassNotFoundException e) { - throw new NoClassDefFoundError(e.getMessage());} - } */ - -static GTY(()) tree get_message_wfl; -static GTY(()) tree type_parm_wfl; - -static tree -build_dot_class_method (tree class) -{ -#define BWF(S) build_wfl_node (get_identifier ((S))) -#ifdef USE_MAPPED_LOCATION -#define MQN(X,Y) make_qualified_name ((X), (Y), UNKNOWN_LOCATION) -#else -#define MQN(X,Y) make_qualified_name ((X), (Y), 0) -#endif - tree args, tmp, saved_current_function_decl, mdecl, qual_name; - tree stmt, throw_stmt; - - if (!get_message_wfl) - { - get_message_wfl = build_wfl_node (get_identifier ("getMessage")); - type_parm_wfl = build_wfl_node (get_identifier ("type$")); - } - - /* Build the arguments */ - args = build_tree_list (get_identifier ("type$"), - build_pointer_type (string_type_node)); - TREE_CHAIN (args) = end_params_node; - - /* Build the qualified name java.lang.Class.forName */ - tmp = MQN (MQN (MQN (BWF ("java"), - BWF ("lang")), BWF ("Class")), BWF ("forName")); - - /* Create the "class$" function */ - mdecl = create_artificial_method (class, ACC_STATIC, - build_pointer_type (class_type_node), - classdollar_identifier_node, args); - qual_name = MQN (MQN (BWF ("java"), BWF ("lang")), - BWF ("NoClassDefFoundError")); - DECL_FUNCTION_THROWS (mdecl) = build_tree_list (NULL_TREE, qual_name); - register_incomplete_type (JDEP_EXCEPTION, qual_name, NULL_TREE, NULL_TREE); - JDEP_GET_PATCH (CLASSD_LAST (ctxp->classd_list)) = - &TREE_VALUE (DECL_FUNCTION_THROWS (mdecl)); - - /* We start by building the try block. We need to build: - return (java.lang.Class.forName (type)); */ - stmt = build_method_invocation (tmp, - build_tree_list (NULL_TREE, type_parm_wfl)); - stmt = build_return (0, stmt); - - /* Now onto the catch block. We start by building the expression - throwing a new exception: throw new NoClassDefFoundError (_.getMessage) */ -#ifdef USE_MAPPED_LOCATION - throw_stmt = make_qualified_name (build_wfl_node (wpv_id), - get_message_wfl, UNKNOWN_LOCATION); -#else - throw_stmt = make_qualified_name (build_wfl_node (wpv_id), - get_message_wfl, 0); -#endif - throw_stmt = build_method_invocation (throw_stmt, NULL_TREE); - - /* Build new NoClassDefFoundError (_.getMessage) */ - throw_stmt = build_new_invocation - (build_wfl_node (get_identifier ("NoClassDefFoundError")), - build_tree_list (build_pointer_type (string_type_node), throw_stmt)); - - /* Build the throw, (it's too early to use BUILD_THROW) */ - throw_stmt = build1 (THROW_EXPR, NULL_TREE, throw_stmt); - - /* Encapsulate STMT in a try block. The catch clause executes THROW_STMT */ - qual_name = MQN (MQN (BWF ("java"), BWF ("lang")), - BWF ("ClassNotFoundException")); - stmt = encapsulate_with_try_catch (0, qual_name, stmt, throw_stmt); - - fix_method_argument_names (args, mdecl); - layout_class_method (class, NULL_TREE, mdecl, NULL_TREE); - saved_current_function_decl = current_function_decl; - start_artificial_method_body (mdecl); - java_method_add_stmt (mdecl, stmt); - end_artificial_method_body (mdecl); - current_function_decl = saved_current_function_decl; - TYPE_DOT_CLASS (class) = mdecl; - - return mdecl; -} - -static tree -build_dot_class_method_invocation (tree this_class, tree type) -{ - tree dot_class_method = TYPE_DOT_CLASS (this_class); - tree sig_id, s, t; - - if (TYPE_ARRAY_P (type)) - sig_id = build_java_signature (type); - else - sig_id = DECL_NAME (TYPE_NAME (type)); - - /* Ensure that the proper name separator is used */ - sig_id = unmangle_classname (IDENTIFIER_POINTER (sig_id), - IDENTIFIER_LENGTH (sig_id)); - - s = build_string (IDENTIFIER_LENGTH (sig_id), - IDENTIFIER_POINTER (sig_id)); - t = build_method_invocation (build_wfl_node (DECL_NAME (dot_class_method)), - build_tree_list (NULL_TREE, s)); - if (DECL_CONTEXT (dot_class_method) != this_class) - { - tree class_name = DECL_NAME (TYPE_NAME (DECL_CONTEXT (dot_class_method))); - t = make_qualified_primary (build_wfl_node (class_name), t, 0); - } - return t; -} - -/* This section of the code deals with constructor. */ - -/* Craft a body for default constructor. Patch existing constructor - bodies with call to super() and field initialization statements if - necessary. */ - -static void -fix_constructors (tree mdecl) -{ - tree iii; /* Instance Initializer Invocation */ - tree *bodyp = &DECL_FUNCTION_BODY (mdecl); - tree thisn_assign, compound = NULL_TREE; - tree class_type = DECL_CONTEXT (mdecl); - - if (DECL_FIXED_CONSTRUCTOR_P (mdecl)) - return; - DECL_FIXED_CONSTRUCTOR_P (mdecl) = 1; - - if (!*bodyp) - { - /* It is an error for the compiler to generate a default - constructor if the superclass doesn't have a constructor that - takes no argument, or the same args for an anonymous class */ - tree sdecl = get_constructor_super (mdecl); - if (sdecl == NULL_TREE) - { - tree sclass_decl = TYPE_NAME (CLASSTYPE_SUPER (class_type)); - tree save = DECL_NAME (mdecl); - const char *n = IDENTIFIER_POINTER (DECL_NAME (sclass_decl)); - DECL_NAME (mdecl) = DECL_NAME (sclass_decl); - parse_error_context - (lookup_cl (TYPE_NAME (class_type)), - "No constructor matching %qs found in class %qs", - lang_printable_name (mdecl, 2), n); - DECL_NAME (mdecl) = save; - } - - if (ANONYMOUS_CLASS_P (class_type)) - { - /* Copy throws clause from the super constructor. */ - tree throws = DECL_FUNCTION_THROWS (sdecl); - DECL_FUNCTION_THROWS (mdecl) = copy_list (throws); - } - - /* The constructor body must be crafted by hand. It's the - constructor we defined when we realize we didn't have the - CLASSNAME() constructor */ - start_artificial_method_body (mdecl); - - /* Insert an assignment to the this$ hidden field, if - necessary */ - if ((thisn_assign = build_thisn_assign ())) - java_method_add_stmt (mdecl, thisn_assign); - - /* We don't generate a super constructor invocation if we're - compiling java.lang.Object. build_super_invocation takes care - of that. */ - java_method_add_stmt (mdecl, build_super_invocation (mdecl)); - - /* FIXME */ - if ((iii = build_instinit_invocation (class_type))) - java_method_add_stmt (mdecl, iii); - - end_artificial_method_body (mdecl); - } - /* Search for an explicit constructor invocation */ - else - { - int found = 0; - int invokes_this = 0; - tree main_block = BLOCK_EXPR_BODY (*bodyp); - - while (*bodyp) - { - tree body = *bodyp; - switch (TREE_CODE (body)) - { - case CALL_EXPR: - found = CALL_EXPLICIT_CONSTRUCTOR_P (body); - if (CALL_THIS_CONSTRUCTOR_P (body)) - invokes_this = 1; - break; - case COMPOUND_EXPR: - case EXPR_WITH_FILE_LOCATION: - bodyp = &TREE_OPERAND (body, 0); - continue; - case BLOCK: - bodyp = &BLOCK_EXPR_BODY (body); - continue; - default: - break; - } - break; - } - - /* Generate the assignment to this$, if necessary */ - if ((thisn_assign = build_thisn_assign ())) - compound = add_stmt_to_compound (compound, NULL_TREE, thisn_assign); - - /* The constructor is missing an invocation of super() */ - if (!found) - compound = add_stmt_to_compound (compound, NULL_TREE, - build_super_invocation (mdecl)); - /* Explicit super() invocation should take place before the - instance initializer blocks. */ - else - { - compound = add_stmt_to_compound (compound, NULL_TREE, *bodyp); - *bodyp = build_java_empty_stmt (); - } - - DECL_INIT_CALLS_THIS (mdecl) = invokes_this; - - /* Insert the instance initializer block right after. */ - if (!invokes_this && (iii = build_instinit_invocation (class_type))) - compound = add_stmt_to_compound (compound, NULL_TREE, iii); - - /* Fix the constructor main block if we're adding extra stmts */ - if (compound) - { - compound = add_stmt_to_compound (compound, NULL_TREE, - BLOCK_EXPR_BODY (main_block)); - BLOCK_EXPR_BODY (main_block) = compound; - } - } -} - -/* Browse constructors in the super class, searching for a constructor - that doesn't take any argument. Return the constructor if one is found, - NULL_TREE otherwise. If the current class is an anonymous inner class, - look for something that has the same signature. */ -static tree -get_constructor_super (tree mdecl) -{ - tree class = CLASSTYPE_SUPER (current_class); - int super_inner = PURE_INNER_CLASS_TYPE_P (class); - tree sdecl; - - if (!class) - return NULL_TREE; - - if (ANONYMOUS_CLASS_P (current_class)) - { - tree mdecl_arg_type; - SKIP_THIS_AND_ARTIFICIAL_PARMS (mdecl_arg_type, mdecl); - for (sdecl = TYPE_METHODS (class); sdecl; sdecl = TREE_CHAIN (sdecl)) - if (DECL_CONSTRUCTOR_P (sdecl)) - { - tree m_arg_type; - tree arg_type = TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (sdecl))); - if (super_inner) - arg_type = TREE_CHAIN (arg_type); - for (m_arg_type = mdecl_arg_type; - (arg_type != end_params_node - && m_arg_type != end_params_node); - arg_type = TREE_CHAIN (arg_type), - m_arg_type = TREE_CHAIN (m_arg_type)) - if (!valid_method_invocation_conversion_p - (TREE_VALUE (arg_type), - TREE_VALUE (m_arg_type))) - break; - - if (arg_type == end_params_node && m_arg_type == end_params_node) - return sdecl; - } - } - else - { - for (sdecl = TYPE_METHODS (class); sdecl; sdecl = TREE_CHAIN (sdecl)) - { - tree arg = TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (sdecl))); - if (super_inner) - arg = TREE_CHAIN (arg); - if (DECL_CONSTRUCTOR_P (sdecl) && arg == end_params_node) - return sdecl; - } - } - return NULL_TREE; -} - -/* Generate code for all context remembered for code generation. */ - -static GTY(()) tree reversed_class_list; -void -java_expand_classes (void) -{ - int save_error_count = 0; - static struct parser_ctxt *cur_ctxp = NULL; - location_t save_location; - - java_parse_abort_on_error (); - if (!(ctxp = ctxp_for_generation)) - return; - java_layout_classes (); - java_parse_abort_on_error (); - save_location = input_location; - - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - tree current; - for (current = cur_ctxp->class_list; - current; - current = TREE_CHAIN (current)) - gen_indirect_dispatch_tables (TREE_TYPE (current)); - } - - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - ctxp = cur_ctxp; - input_location = ctxp->file_start_location; - lang_init_source (2); /* Error msgs have method prototypes */ - java_complete_expand_classes (); /* Complete and expand classes */ - java_parse_abort_on_error (); - } - input_location = save_location; - - /* Find anonymous classes and expand their constructor. This extra pass is - necessary because the constructor itself is only generated when the - method in which it is defined is expanded. */ - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - tree current; - ctxp = cur_ctxp; - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - { - output_class = current_class = TREE_TYPE (current); - if (ANONYMOUS_CLASS_P (current_class)) - { - tree d; - for (d = TYPE_METHODS (current_class); d; d = TREE_CHAIN (d)) - { - if (DECL_CONSTRUCTOR_P (d)) - { - java_complete_expand_method (d); - break; /* There is only one constructor. */ - } - } - } - } - } - - /* Expanding the constructors of anonymous classes generates access - methods. Scan all the methods looking for null DECL_RESULTs -- - this will be the case if a method hasn't been expanded. */ - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - tree current; - ctxp = cur_ctxp; - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - { - tree d; - output_class = current_class = TREE_TYPE (current); - for (d = TYPE_METHODS (current_class); d; d = TREE_CHAIN (d)) - { - if (DECL_RESULT (d) == NULL_TREE) - java_complete_expand_method (d); - } - } - } - - /* ??? Instead of all this we could iterate around the list of - classes until there were no more un-expanded methods. It would - take a little longer -- one pass over the whole list of methods - -- but it would be simpler. Like this: */ -#if 0 - { - int something_changed; - - do - { - something_changed = 0; - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - tree current; - ctxp = cur_ctxp; - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - { - tree d; - output_class = current_class = TREE_TYPE (current); - for (d = TYPE_METHODS (current_class); d; d = TREE_CHAIN (d)) - { - if (DECL_RESULT (d) == NULL_TREE) - { - something_changed = 1; - java_complete_expand_method (d); - } - } - } - } - } - while (something_changed); - } -#endif - - /* If we've found error at that stage, don't try to generate - anything, unless we're checking the syntax only - (but not using -fsyntax-only for the purpose of generating - bytecode). */ - if (java_error_count - && (!flag_syntax_only && !flag_emit_class_files)) - return; - - /* Now things are stable, go for generation of the class data. */ - - /* We pessimistically marked all methods and fields external until - we knew what set of classes we were planning to compile. Now mark - those that will be generated locally as not external. */ - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - tree current; - ctxp = cur_ctxp; - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - java_mark_class_local (TREE_TYPE (current)); - } - - /* Compile the classes. */ - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - tree current; - reversed_class_list = NULL; - - ctxp = cur_ctxp; - - /* We write out the classes in reverse order. This ensures that - inner classes are written before their containing classes, - which is important for parallel builds. Otherwise, the - class file for the outer class may be found, but the class - file for the inner class may not be present. In that - situation, the compiler cannot fall back to the original - source, having already read the outer class, so we must - prevent that situation. */ - for (current = ctxp->class_list; - current; - current = TREE_CHAIN (current)) - reversed_class_list - = tree_cons (NULL_TREE, current, reversed_class_list); - - for (current = reversed_class_list; - current; - current = TREE_CHAIN (current)) - { - output_class = current_class = TREE_TYPE (TREE_VALUE (current)); - if (flag_emit_class_files) - write_classfile (current_class); - else if (! flag_syntax_only) - java_expand_method_bodies (current_class); - } - } -} - -void -java_finish_classes (void) -{ - static struct parser_ctxt *cur_ctxp = NULL; - for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next) - { - tree current; - ctxp = cur_ctxp; - for (current = ctxp->class_list; current; current = TREE_CHAIN (current)) - { - output_class = current_class = TREE_TYPE (current); - finish_class (); - } - } -} - -/* Wrap non WFL PRIMARY around a WFL and set EXPR_WFL_QUALIFICATION to - a tree list node containing RIGHT. Fore coming RIGHTs will be - chained to this hook. LOCATION contains the location of the - separating `.' operator. */ - -static tree -make_qualified_primary (tree primary, tree right, int location) -{ - tree wfl; - - if (TREE_CODE (primary) != EXPR_WITH_FILE_LOCATION) - wfl = build_wfl_wrap (primary, location); - else - { - wfl = primary; - /* If wfl wasn't qualified, we build a first anchor */ - if (!EXPR_WFL_QUALIFICATION (wfl)) - EXPR_WFL_QUALIFICATION (wfl) = build_tree_list (wfl, NULL_TREE); - } - - /* And chain them */ - EXPR_WFL_LINECOL (right) = location; - chainon (EXPR_WFL_QUALIFICATION (wfl), build_tree_list (right, NULL_TREE)); - PRIMARY_P (wfl) = 1; - return wfl; -} - -/* Simple merge of two name separated by a `.' */ - -static tree -merge_qualified_name (tree left, tree right) -{ - tree node; - if (!left && !right) - return NULL_TREE; - - if (!left) - return right; - - if (!right) - return left; - - obstack_grow (&temporary_obstack, IDENTIFIER_POINTER (left), - IDENTIFIER_LENGTH (left)); - obstack_1grow (&temporary_obstack, '.'); - obstack_grow0 (&temporary_obstack, IDENTIFIER_POINTER (right), - IDENTIFIER_LENGTH (right)); - node = get_identifier (obstack_base (&temporary_obstack)); - obstack_free (&temporary_obstack, obstack_base (&temporary_obstack)); - QUALIFIED_P (node) = 1; - return node; -} - -/* Merge the two parts of a qualified name into LEFT. Set the - location information of the resulting node to LOCATION, usually - inherited from the location information of the `.' operator. */ - -static tree -make_qualified_name (tree left, tree right, -#ifdef USE_MAPPED_LOCATION - source_location location -#else - int location -#endif - ) -{ -#ifdef USE_COMPONENT_REF - tree node = build3 (COMPONENT_REF, NULL_TREE, left, right, NULL_TREE); - SET_EXPR_LOCATION (node, location); - return node; -#else - tree left_id = EXPR_WFL_NODE (left); - tree right_id = EXPR_WFL_NODE (right); - tree wfl, merge; - - merge = merge_qualified_name (left_id, right_id); - - /* Left wasn't qualified and is now qualified */ -#ifdef USE_MAPPED_LOCATION - if (!QUALIFIED_P (left_id)) - { - tree wfl = build_expr_wfl (left_id, EXPR_LOCATION (left)); - EXPR_WFL_QUALIFICATION (left) = build_tree_list (wfl, NULL_TREE); - } - - wfl = build_expr_wfl (right_id, location); -#else - if (!QUALIFIED_P (left_id)) - { - tree wfl = build_expr_wfl (left_id, ctxp->filename, 0, 0); - EXPR_WFL_LINECOL (wfl) = EXPR_WFL_LINECOL (left); - EXPR_WFL_QUALIFICATION (left) = build_tree_list (wfl, NULL_TREE); - } - - wfl = build_expr_wfl (right_id, ctxp->filename, 0, 0); - EXPR_WFL_LINECOL (wfl) = location; -#endif - chainon (EXPR_WFL_QUALIFICATION (left), build_tree_list (wfl, NULL_TREE)); - EXPR_WFL_NODE (left) = merge; - return left; -#endif -} - -/* Extract the last identifier component of the qualified in WFL. The - last identifier is removed from the linked list */ - -static tree -cut_identifier_in_qualified (tree wfl) -{ - tree q; - tree previous = NULL_TREE; - for (q = EXPR_WFL_QUALIFICATION (wfl); ; previous = q, q = TREE_CHAIN (q)) - if (!TREE_CHAIN (q)) - { - if (!previous) - /* Operating on a non qualified qualified WFL. */ - abort (); - - TREE_CHAIN (previous) = NULL_TREE; - return TREE_PURPOSE (q); - } -} - -/* Resolve the expression name NAME. Return its decl. */ - -static tree -resolve_expression_name (tree id, tree *orig) -{ - tree name = EXPR_WFL_NODE (id); - tree decl; - - /* 6.5.5.1: Simple expression names */ - if (!PRIMARY_P (id) && !QUALIFIED_P (name)) - { - /* 15.13.1: NAME can appear within the scope of a local variable - declaration */ - if ((decl = IDENTIFIER_LOCAL_VALUE (name))) - return decl; - - /* 15.13.1: NAME can appear within a class declaration */ - else - { - decl = lookup_field_wrapper (current_class, name); - if (decl) - { - tree access = NULL_TREE; - int fs = FIELD_STATIC (decl); - - /* If we're accessing an outer scope local alias, make - sure we change the name of the field we're going to - build access to. */ - if (FIELD_LOCAL_ALIAS_USED (decl)) - name = DECL_NAME (decl); - - check_deprecation (id, decl); - - /* Instance variable (8.3.1.1) can't appear within - static method, static initializer or initializer for - a static variable. */ - if (!fs && METHOD_STATIC (current_function_decl)) - { - static_ref_err (id, name, current_class); - return error_mark_node; - } - /* Instance variables can't appear as an argument of - an explicit constructor invocation */ - if (!fs && ctxp->explicit_constructor_p - && !enclosing_context_p (DECL_CONTEXT (decl), current_class)) - { - parse_error_context - (id, "Can't reference %qs before the superclass constructor has been called", IDENTIFIER_POINTER (name)); - return error_mark_node; - } - - /* If we're processing an inner class and we're trying - to access a field belonging to an outer class, build - the access to the field. - As usual, we have to treat initialized static final - variables as a special case. */ - if (nested_member_access_p (current_class, decl) - && ! (JDECL_P (decl) && CLASS_FINAL_VARIABLE_P (decl) - && DECL_INITIAL (decl) != NULL_TREE - && (JSTRING_TYPE_P (TREE_TYPE (decl)) - || JNUMERIC_TYPE_P (TREE_TYPE (decl))) - && TREE_CONSTANT (DECL_INITIAL (decl)))) - { - if (!fs && CLASS_STATIC (TYPE_NAME (current_class))) - { - static_ref_err (id, DECL_NAME (decl), current_class); - return error_mark_node; - } - access = build_nested_field_access (id, decl); - if (orig) - *orig = access; - return access; - } - - /* Otherwise build what it takes to access the field */ - access = build_field_ref ((fs ? NULL_TREE : current_this), - DECL_CONTEXT (decl), name); - if (fs) - access = maybe_build_class_init_for_field (decl, access); - /* We may be asked to save the real field access node */ - if (orig) - *orig = access; - /* Last check: can we access the field? */ - if (not_accessible_p (current_class, decl, NULL_TREE, 0)) - { - not_accessible_field_error (id, decl); - return error_mark_node; - } - /* And we return what we got */ - return access; - } - /* Fall down to error report on undefined variable */ - } - } - /* 6.5.5.2 Qualified Expression Names */ - else - { - if (orig) - *orig = NULL_TREE; - qualify_ambiguous_name (id); - /* 15.10.1 Field Access Using a Primary and/or Expression Name */ - /* 15.10.2: Accessing Superclass Members using super */ - return resolve_field_access (id, orig, NULL); - } - - /* We've got an error here */ - if (INNER_CLASS_TYPE_P (current_class)) - parse_error_context (id, - "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final", - IDENTIFIER_POINTER (name), - IDENTIFIER_POINTER (DECL_NAME - (TYPE_NAME (current_class)))); - else - parse_error_context (id, "Undefined variable %qs", - IDENTIFIER_POINTER (name)); - - return error_mark_node; -} - -static void -static_ref_err (tree wfl, tree field_id, tree class_type) -{ - parse_error_context - (wfl, - "Can't make a static reference to nonstatic variable %qs in class %qs", - IDENTIFIER_POINTER (field_id), - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (class_type)))); -} - -/* 15.10.1 Field Access Using a Primary and/or Expression Name. - We return something suitable to generate the field access. We also - return the field decl in FIELD_DECL and its type in FIELD_TYPE. If - recipient's address can be null. */ - -static tree -resolve_field_access (tree qual_wfl, tree *field_decl, tree *field_type) -{ - int is_static = 0; - tree field_ref; - tree decl = NULL_TREE, where_found, type_found; - - if (resolve_qualified_expression_name (qual_wfl, &decl, - &where_found, &type_found)) - return error_mark_node; - - /* Resolve the LENGTH field of an array here */ - if (DECL_P (decl) && DECL_NAME (decl) == length_identifier_node - && type_found && TYPE_ARRAY_P (type_found) - && ! flag_emit_class_files) - { - tree length = build_java_array_length_access (where_found); - field_ref = length; - - /* In case we're dealing with a static array, we need to - initialize its class before the array length can be fetched. */ - if (TREE_CODE (where_found) == VAR_DECL && FIELD_STATIC (where_found)) - { - build_static_field_ref (where_found); - field_ref = build_class_init (DECL_CONTEXT (where_found), field_ref); - } - } - /* We might have been trying to resolve field.method(). In which - case, the resolution is over and decl is the answer */ - else if (JDECL_P (decl) && IDENTIFIER_LOCAL_VALUE (DECL_NAME (decl)) == decl) - field_ref = decl; - else if (JDECL_P (decl)) - { - if (!type_found) - type_found = DECL_CONTEXT (decl); - is_static = FIELD_STATIC (decl); - field_ref = build_field_ref ((is_static ? - NULL_TREE : where_found), - type_found, DECL_NAME (decl)); - if (field_ref == error_mark_node) - return error_mark_node; - if (is_static) - field_ref = maybe_build_class_init_for_field (decl, field_ref); - - /* If we're looking at a static field, we may need to generate a - class initialization for it. This can happen when the access - looks like `field.ref', where `field' is a static field in an - interface we implement. */ - if (!flag_emit_class_files - && TREE_CODE (where_found) == VAR_DECL - && FIELD_STATIC (where_found)) - { - build_static_field_ref (where_found); - field_ref = build_class_init (DECL_CONTEXT (where_found), field_ref); - } - } - else - field_ref = decl; - - if (field_decl) - *field_decl = decl; - if (field_type) - *field_type = (QUAL_DECL_TYPE (decl) ? - QUAL_DECL_TYPE (decl) : TREE_TYPE (decl)); - return field_ref; -} - -/* If NODE is an access to a static field, strip out the class - initialization part and return the field decl, otherwise, return - NODE. */ - -tree -extract_field_decl (tree node) -{ - if (TREE_CODE (node) == COMPOUND_EXPR) - { - tree op1 = TREE_OPERAND (node, 1); - if (TREE_CODE (op1) == COMPOUND_EXPR) - { - tree call = TREE_OPERAND (op1, 0); - if (TREE_CODE (call) == CALL_EXPR - && TREE_CODE (TREE_OPERAND (call, 0)) == ADDR_EXPR - && (TREE_OPERAND (TREE_OPERAND (call, 0), 0) - == soft_initclass_node)) - return TREE_OPERAND (op1, 1); - } - else if (JDECL_P (op1)) - return op1; - } - return node; -} - -/* 6.5.5.2: Qualified Expression Names */ - -static int -resolve_qualified_expression_name (tree wfl, tree *found_decl, - tree *where_found, tree *type_found) -{ - int from_type = 0; /* Field search initiated from a type */ - int from_super = 0, from_cast = 0, from_qualified_this = 0; - int previous_call_static = 0; - int is_static; - tree decl = NULL_TREE, type = NULL_TREE, q; - /* For certain for of inner class instantiation */ - tree saved_current, saved_this; -#define RESTORE_THIS_AND_CURRENT_CLASS \ - { current_class = saved_current; current_this = saved_this;} - - *type_found = *where_found = NULL_TREE; - - for (q = EXPR_WFL_QUALIFICATION (wfl); q; q = TREE_CHAIN (q)) - { - tree qual_wfl = QUAL_WFL (q); - tree ret_decl; /* for EH checking */ -#ifdef USE_MAPPED_LOCATION - source_location location; /* for EH checking */ -#else - int location; /* for EH checking */ -#endif - - /* 15.10.1 Field Access Using a Primary */ - switch (TREE_CODE (qual_wfl)) - { - case CALL_EXPR: - case NEW_CLASS_EXPR: - /* If the access to the function call is a non static field, - build the code to access it. */ - if (JDECL_P (decl) && !FIELD_STATIC (decl)) - { - decl = maybe_access_field (decl, *where_found, - DECL_CONTEXT (decl)); - if (decl == error_mark_node) - return 1; - } - - /* And code for the function call */ - if (complete_function_arguments (qual_wfl)) - return 1; - - /* We might have to setup a new current class and a new this - for the search of an inner class, relative to the type of - a expression resolved as `decl'. The current values are - saved and restored shortly after */ - saved_current = current_class; - saved_this = current_this; - if (decl - && (TREE_CODE (qual_wfl) == NEW_CLASS_EXPR - || from_qualified_this)) - { - /* If we still have `from_qualified_this', we have the form - .this.f() and we need to build .this */ - if (from_qualified_this) - { - decl = build_access_to_thisn (current_class, type, 0); - decl = java_complete_tree (decl); - type = TREE_TYPE (TREE_TYPE (decl)); - } - current_class = type; - current_this = decl; - from_qualified_this = 0; - } - - if (from_super && TREE_CODE (qual_wfl) == CALL_EXPR) - CALL_USING_SUPER (qual_wfl) = 1; -#ifdef USE_MAPPED_LOCATION - location = (TREE_CODE (qual_wfl) == CALL_EXPR - ? EXPR_LOCATION (TREE_OPERAND (qual_wfl, 0)) - : UNKNOWN_LOCATION); -#else - location = (TREE_CODE (qual_wfl) == CALL_EXPR ? - EXPR_WFL_LINECOL (TREE_OPERAND (qual_wfl, 0)) : 0); -#endif - *where_found = patch_method_invocation (qual_wfl, decl, type, - from_super, - &is_static, &ret_decl); - from_super = 0; - if (*where_found == error_mark_node) - { - RESTORE_THIS_AND_CURRENT_CLASS; - return 1; - } - *type_found = type = QUAL_DECL_TYPE (*where_found); - - *where_found = force_evaluation_order (*where_found); - - /* If we're creating an inner class instance, check for that - an enclosing instance is in scope */ - if (TREE_CODE (qual_wfl) == NEW_CLASS_EXPR - && INNER_ENCLOSING_SCOPE_CHECK (type)) - { - parse_error_context - (qual_wfl, "No enclosing instance for inner class %qs is in scope%s", - lang_printable_name (type, 0), - (!current_this ? "" : - "; an explicit one must be provided when creating this inner class")); - RESTORE_THIS_AND_CURRENT_CLASS; - return 1; - } - - /* In case we had to change then to resolve a inner class - instantiation using a primary qualified by a `new' */ - RESTORE_THIS_AND_CURRENT_CLASS; - -#ifdef USE_MAPPED_LOCATION - if (location != UNKNOWN_LOCATION) -#else - if (location) -#endif - { - tree arguments = NULL_TREE; - if (TREE_CODE (qual_wfl) == CALL_EXPR - && TREE_OPERAND (qual_wfl, 1) != NULL_TREE) - arguments = TREE_VALUE (TREE_OPERAND (qual_wfl, 1)); - check_thrown_exceptions (location, ret_decl, arguments); - } - - /* If the previous call was static and this one is too, - build a compound expression to hold the two (because in - that case, previous function calls aren't transported as - forcoming function's argument. */ - if (previous_call_static && is_static) - { - /* We must set CAN_COMPLETE_NORMALLY for the first call - since it is done nowhere else. */ - CAN_COMPLETE_NORMALLY (decl) = 1; - decl = build2 (COMPOUND_EXPR, TREE_TYPE (*where_found), - decl, *where_found); - TREE_SIDE_EFFECTS (decl) = 1; - } - else - { - previous_call_static = is_static; - decl = *where_found; - } - from_type = 0; - continue; - - case NEW_ARRAY_EXPR: - case NEW_ANONYMOUS_ARRAY_EXPR: - *where_found = decl = java_complete_tree (qual_wfl); - if (decl == error_mark_node) - return 1; - *type_found = type = QUAL_DECL_TYPE (decl); - continue; - - case CONVERT_EXPR: - *where_found = decl = java_complete_tree (qual_wfl); - if (decl == error_mark_node) - return 1; - *type_found = type = QUAL_DECL_TYPE (decl); - from_cast = 1; - continue; - - case CONDITIONAL_EXPR: - case STRING_CST: - case MODIFY_EXPR: - *where_found = decl = java_complete_tree (qual_wfl); - if (decl == error_mark_node) - return 1; - *type_found = type = QUAL_DECL_TYPE (decl); - continue; - - case ARRAY_REF: - /* If the access to the function call is a non static field, - build the code to access it. */ - if (JDECL_P (decl) && !FIELD_STATIC (decl)) - { - decl = maybe_access_field (decl, *where_found, type); - if (decl == error_mark_node) - return 1; - } - /* And code for the array reference expression */ - decl = java_complete_tree (qual_wfl); - if (decl == error_mark_node) - return 1; - type = QUAL_DECL_TYPE (decl); - continue; - - case PLUS_EXPR: - if ((decl = java_complete_tree (qual_wfl)) == error_mark_node) - return 1; - if ((type = patch_string (decl))) - decl = type; - *where_found = QUAL_RESOLUTION (q) = decl; - *type_found = type = TREE_TYPE (decl); - break; - - case CLASS_LITERAL: - if ((decl = java_complete_tree (qual_wfl)) == error_mark_node) - return 1; - *where_found = QUAL_RESOLUTION (q) = decl; - *type_found = type = TREE_TYPE (decl); - break; - - default: - /* Fix for -Wall Just go to the next statement. Don't - continue */ - break; - } - - /* If we fall here, we weren't processing a (static) function call. */ - previous_call_static = 0; - - /* It can be the keyword THIS */ - if (TREE_CODE (qual_wfl) == EXPR_WITH_FILE_LOCATION - && EXPR_WFL_NODE (qual_wfl) == this_identifier_node) - { - if (!current_this) - { - parse_error_context - (wfl, "Keyword % used outside allowed context"); - return 1; - } - if (ctxp->explicit_constructor_p - && type == current_class) - { - parse_error_context (wfl, "Can't reference % before the superclass constructor has been called"); - return 1; - } - /* We have to generate code for intermediate access */ - if (!from_type || TREE_TYPE (TREE_TYPE (current_this)) == type) - { - *where_found = decl = current_this; - *type_found = type = QUAL_DECL_TYPE (decl); - } - /* We're trying to access the this from somewhere else. Make sure - it's allowed before doing so. */ - else - { - if (!enclosing_context_p (type, current_class)) - { - char *p = xstrdup (lang_printable_name (type, 0)); - parse_error_context (qual_wfl, "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs", - p, p, - lang_printable_name (current_class, 0)); - free (p); - return 1; - } - from_qualified_this = 1; - /* If there's nothing else after that, we need to - produce something now, otherwise, the section of the - code that needs to produce .this will generate - what is necessary. */ - if (!TREE_CHAIN (q)) - { - decl = build_access_to_thisn (current_class, type, 0); - *where_found = decl = java_complete_tree (decl); - *type_found = type = TREE_TYPE (decl); - } - } - - from_type = 0; - continue; - } - - /* 15.10.2 Accessing Superclass Members using SUPER */ - if (TREE_CODE (qual_wfl) == EXPR_WITH_FILE_LOCATION - && EXPR_WFL_NODE (qual_wfl) == super_identifier_node) - { - tree node; - /* Check on the restricted use of SUPER */ - if (METHOD_STATIC (current_function_decl) - || current_class == object_type_node) - { - parse_error_context - (wfl, "Keyword % used outside allowed context"); - return 1; - } - /* Otherwise, treat SUPER as (SUPER_CLASS)THIS */ - node = build_cast (EXPR_WFL_LINECOL (qual_wfl), - CLASSTYPE_SUPER (current_class), - build_this (EXPR_WFL_LINECOL (qual_wfl))); - *where_found = decl = java_complete_tree (node); - if (decl == error_mark_node) - return 1; - *type_found = type = QUAL_DECL_TYPE (decl); - from_super = from_type = 1; - continue; - } - - /* 15.13.1: Can't search for field name in packages, so we - assume a variable/class name was meant. */ - if (RESOLVE_PACKAGE_NAME_P (qual_wfl)) - { - tree name; - if ((decl = resolve_package (wfl, &q, &name))) - { - tree list; - *where_found = decl; - - check_pkg_class_access (DECL_NAME (decl), qual_wfl, true, NULL); - - /* We want to be absolutely sure that the class is laid - out. We're going to search something inside it. */ - *type_found = type = TREE_TYPE (decl); - layout_class (type); - from_type = 1; - - /* Fix them all the way down, if any are left. */ - if (q) - { - list = TREE_CHAIN (q); - while (list) - { - RESOLVE_PACKAGE_NAME_P (QUAL_WFL (list)) = 0; - list = TREE_CHAIN (list); - } - } - } - else - { - if (from_super || from_cast) - parse_error_context - ((from_cast ? qual_wfl : wfl), - "No variable %qs defined in class %qs", - IDENTIFIER_POINTER (EXPR_WFL_NODE (qual_wfl)), - lang_printable_name (type, 0)); - else - parse_error_context - (qual_wfl, "Undefined variable or class name: %qs", - IDENTIFIER_POINTER (name)); - return 1; - } - } - - /* We have a type name. It's been already resolved when the - expression was qualified. */ - else if (RESOLVE_TYPE_NAME_P (qual_wfl) && QUAL_RESOLUTION (q)) - { - decl = QUAL_RESOLUTION (q); - - /* Sneak preview. If next we see a `new', we're facing a - qualification which resulted in a type being selected - instead of a field. Report the error. */ - if(TREE_CHAIN (q) - && TREE_CODE (TREE_PURPOSE (TREE_CHAIN (q))) == NEW_CLASS_EXPR) - { - parse_error_context (qual_wfl, "Undefined variable %qs", - IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl))); - return 1; - } - - check_pkg_class_access (DECL_NAME (decl), qual_wfl, true, NULL); - - check_deprecation (qual_wfl, decl); - - type = TREE_TYPE (decl); - from_type = 1; - } - /* We resolve an expression name */ - else - { - tree field_decl = NULL_TREE; - - /* If there exists an early resolution, use it. That occurs - only once and we know that there are more things to - come. Don't do that when processing something after SUPER - (we need more thing to be put in place below */ - if (!from_super && QUAL_RESOLUTION (q)) - { - decl = QUAL_RESOLUTION (q); - if (!type) - { - if (TREE_CODE (decl) == FIELD_DECL - || TREE_CODE (decl) == VAR_DECL) - { - if (TREE_CODE (decl) == FIELD_DECL - && !FIELD_STATIC (decl)) - { - if (current_this) - *where_found = current_this; - else - { - static_ref_err (qual_wfl, DECL_NAME (decl), - current_class); - return 1; - } - } - else - { - *where_found = TREE_TYPE (decl); - if (TREE_CODE (*where_found) == POINTER_TYPE) - *where_found = TREE_TYPE (*where_found); - } - if (nested_member_access_p (current_class, decl)) - decl = build_nested_field_access (qual_wfl, decl); - } - else - { - *where_found = TREE_TYPE (decl); - if (TREE_CODE (*where_found) == POINTER_TYPE) - *where_found = TREE_TYPE (*where_found); - } - } - } - - /* Report and error if we're using a numerical literal as a - qualifier. It can only be an INTEGER_CST. */ - else if (TREE_CODE (qual_wfl) == INTEGER_CST) - { - parse_error_context - (wfl, "Can't use type %qs as a qualifier", - lang_printable_name (TREE_TYPE (qual_wfl), 0)); - return 1; - } - - /* We have to search for a field, knowing the type of its - container. The flag FROM_TYPE indicates that we resolved - the last member of the expression as a type name, which - means that for the resolution of this field, we'll look - for other errors than if it was resolved as a member of - an other field. */ - else - { - int is_static; - tree field_decl_type; /* For layout */ - - if (!from_type && !JREFERENCE_TYPE_P (type)) - { - parse_error_context - (qual_wfl, "Attempt to reference field %qs in %<%s %s%>", - IDENTIFIER_POINTER (EXPR_WFL_NODE (qual_wfl)), - lang_printable_name (type, 0), - IDENTIFIER_POINTER (DECL_NAME (decl))); - return 1; - } - - field_decl = lookup_field_wrapper (type, - EXPR_WFL_NODE (qual_wfl)); - - /* Maybe what we're trying to access to is an inner - class, only if decl is a TYPE_DECL. */ - if (!field_decl && TREE_CODE (decl) == TYPE_DECL) - { - tree ptr, inner_decl; - - BUILD_PTR_FROM_NAME (ptr, EXPR_WFL_NODE (qual_wfl)); - inner_decl = resolve_class (decl, ptr, NULL_TREE, qual_wfl); - if (inner_decl) - { - check_inner_class_access (inner_decl, decl, qual_wfl); - type = TREE_TYPE (inner_decl); - decl = inner_decl; - from_type = 1; - continue; - } - } - - if (field_decl == NULL_TREE) - { - parse_error_context - (qual_wfl, "No variable %qs defined in type %qs", - IDENTIFIER_POINTER (EXPR_WFL_NODE (qual_wfl)), - GET_TYPE_NAME (type)); - return 1; - } - if (field_decl == error_mark_node) - return 1; - - /* Layout the type of field_decl, since we may need - it. Don't do primitive types or loaded classes. The - situation of non primitive arrays may not handled - properly here. FIXME */ - if (TREE_CODE (TREE_TYPE (field_decl)) == POINTER_TYPE) - field_decl_type = TREE_TYPE (TREE_TYPE (field_decl)); - else - field_decl_type = TREE_TYPE (field_decl); - if (!JPRIMITIVE_TYPE_P (field_decl_type) - && !CLASS_LOADED_P (field_decl_type) - && !TYPE_ARRAY_P (field_decl_type)) - resolve_and_layout (field_decl_type, NULL_TREE); - - /* Check on accessibility here */ - if (not_accessible_p (current_class, field_decl, - *type_found, from_super)) - return not_accessible_field_error (qual_wfl,field_decl); - check_deprecation (qual_wfl, field_decl); - - /* There are things to check when fields are accessed - from type. There are no restrictions on a static - declaration of the field when it is accessed from an - interface */ - is_static = FIELD_STATIC (field_decl); - if (!from_super && from_type - && !TYPE_INTERFACE_P (type) - && !is_static - && (current_function_decl - && METHOD_STATIC (current_function_decl))) - { - static_ref_err (qual_wfl, EXPR_WFL_NODE (qual_wfl), type); - return 1; - } - from_cast = from_super = 0; - - /* If it's an access from a type but isn't static, we - make it relative to `this'. */ - if (!is_static && from_type) - decl = current_this; - - /* If we need to generate something to get a proper - handle on what this field is accessed from, do it - now. */ - if (!is_static) - { - decl = maybe_access_field (decl, *where_found, *type_found); - if (decl == error_mark_node) - return 1; - } - - /* We want to keep the location where we found it, and the - type we found. */ - *where_found = decl; - *type_found = type; - - /* Generate the correct expression for field access from - qualified this */ - if (from_qualified_this) - { - field_decl - = build_nested_field_access (qual_wfl, field_decl); - from_qualified_this = 0; - } - - /* If needed, generate accessors for static field access. */ - if (is_static - && FIELD_PRIVATE (field_decl) - && flag_emit_class_files - && nested_member_access_p (current_class, field_decl)) - field_decl = build_nested_field_access (qual_wfl, field_decl); - - /* This is the decl found and eventually the next one to - search from */ - decl = field_decl; - } - from_type = 0; - type = QUAL_DECL_TYPE (decl); - - /* Sneak preview. If decl is qualified by a `new', report - the error here to be accurate on the peculiar construct */ - if (TREE_CHAIN (q) - && TREE_CODE (TREE_PURPOSE (TREE_CHAIN (q))) == NEW_CLASS_EXPR - && !JREFERENCE_TYPE_P (type)) - { - parse_error_context (qual_wfl, "Attempt to reference field % in a %qs", - lang_printable_name (type, 0)); - return 1; - } - } - /* `q' might have changed due to a after package resolution - re-qualification */ - if (!q) - break; - } - *found_decl = decl; - return 0; -} - -/* 6.6 Qualified name and access control. Returns 1 if MEMBER (a decl) - can't be accessed from REFERENCE (a record type). If MEMBER - features a protected access, we then use WHERE which, if non null, - holds the type of MEMBER's access that is checked against - 6.6.2.1. This function should be used when decl is a field or a - method. */ - -static int -not_accessible_p (tree reference, tree member, tree where, int from_super) -{ - int access_flag = get_access_flags_from_decl (member); - bool is_static = false; - - if (TREE_CODE (member) == FIELD_DECL || - TREE_CODE (member) == VAR_DECL) - is_static = FIELD_STATIC (member); - else - is_static = METHOD_STATIC (member); - - /* Access always granted for members declared public */ - if (access_flag & ACC_PUBLIC) - return 0; - - /* Check access on protected members */ - if (access_flag & ACC_PROTECTED) - { - /* Access granted if it occurs from within the package - containing the class in which the protected member is - declared */ - if (class_in_current_package (DECL_CONTEXT (member))) - return 0; - - /* If accessed with the form `super.member', then access is granted */ - if (from_super) - return 0; - - /* If WHERE is active, access was made through a qualifier. For - non-static members, access is granted if the type of the qualifier - is or is a sublass of the type the access is made from (6.6.2.1.) */ - if (where && !is_static) - { - while (reference) - { - if (inherits_from_p (where, reference)) - return 0; - if (INNER_CLASS_TYPE_P (reference)) - reference = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (reference))); - else - break; - } - return 1; - } - - /* Otherwise, access is granted if occurring from within the class - where member is declared, or a subclass of it. */ - while (reference) - { - if (inherits_from_p (reference, DECL_CONTEXT (member))) - return 0; - if (INNER_CLASS_TYPE_P (reference)) - reference = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (reference))); - else - break; - } - return 1; - } - - /* Check access on private members. Access is granted only if it - occurs from within the class in which it is declared -- that does - it for innerclasses too. */ - if (access_flag & ACC_PRIVATE) - { - if (reference == DECL_CONTEXT (member) || - common_enclosing_context_p (DECL_CONTEXT (member), reference)) - return 0; - return 1; - } - - /* Default access is permitted only when occurring from within the - package in which the context (MEMBER) is declared. */ - return !class_in_current_package (DECL_CONTEXT (member)); -} - -/* Test deprecated decl access. */ -static void -check_deprecation (tree wfl, tree decl) -{ - const char *file; - tree elt; - - if (! warn_deprecated) - return; - - /* We want to look at the element type of arrays here, so we strip - all surrounding array types. */ - if (TYPE_ARRAY_P (TREE_TYPE (decl))) - { - elt = TREE_TYPE (decl); - while (TYPE_ARRAY_P (elt)) - elt = TYPE_ARRAY_ELEMENT (elt); - /* We'll end up with a pointer type, so we use TREE_TYPE to go - to the record. */ - decl = TYPE_NAME (TREE_TYPE (elt)); - } - file = DECL_SOURCE_FILE (decl); - - /* Complain if the field is deprecated and the file it was defined - in isn't compiled at the same time the file which contains its - use is */ - if (DECL_DEPRECATED (decl) - && !IS_A_COMMAND_LINE_FILENAME_P (get_identifier (file))) - { - const char *the; - switch (TREE_CODE (decl)) - { - case FUNCTION_DECL: - the = "method"; - break; - case FIELD_DECL: - case VAR_DECL: - the = "field"; - break; - case TYPE_DECL: - parse_warning_context (wfl, "The class %qs has been deprecated", - IDENTIFIER_POINTER (DECL_NAME (decl))); - return; - default: - abort (); - } - /* Don't issue a message if the context as been deprecated as a - whole. */ - if (! CLASS_DEPRECATED (TYPE_NAME (DECL_CONTEXT (decl)))) - parse_warning_context - (wfl, "The %s %qs in class %qs has been deprecated", - the, lang_printable_name (decl, 0), - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (DECL_CONTEXT (decl))))); - } -} - -/* Returns 1 if class was declared in the current package, 0 otherwise */ - -static int -class_in_current_package (tree class) -{ - if (TYPE_PACKAGE (current_class) == TYPE_PACKAGE (class)) - return 1; - return 0; -} - -/* This function may generate code to access DECL from WHERE. This is - done only if certain conditions meet. */ - -static tree -maybe_access_field (tree decl, tree where, tree type) -{ - if (TREE_CODE (decl) == FIELD_DECL && decl != current_this - && !FIELD_STATIC (decl)) - decl = build_field_ref (where ? where : current_this, - (type ? type : DECL_CONTEXT (decl)), - DECL_NAME (decl)); - return decl; -} - -/* Build a method invocation, by patching PATCH. If non NULL - and according to the situation, PRIMARY and WHERE may be - used. IS_STATIC is set to 1 if the invoked function is static. */ - -static tree -patch_method_invocation (tree patch, tree primary, tree where, int from_super, - int *is_static, tree *ret_decl) -{ - tree wfl = TREE_OPERAND (patch, 0); - tree args = TREE_OPERAND (patch, 1); - tree name = EXPR_WFL_NODE (wfl); - tree list; - int is_static_flag = 0; - int is_super_init = 0; - tree this_arg = NULL_TREE; - int is_array_clone_call = 0; - - /* Should be overridden if everything goes well. Otherwise, if - something fails, it should keep this value. It stop the - evaluation of a bogus assignment. See java_complete_tree, - MODIFY_EXPR: for the reasons why we sometimes want to keep on - evaluating an assignment */ - TREE_TYPE (patch) = error_mark_node; - - /* Since lookup functions are messing with line numbers, save the - context now. */ - java_parser_context_save_global (); - - /* 15.11.1: Compile-Time Step 1: Determine Class or Interface to Search */ - - /* Resolution of qualified name, excluding constructors */ - if (QUALIFIED_P (name) && !CALL_CONSTRUCTOR_P (patch)) - { - tree identifier, identifier_wfl, type, resolved; - /* Extract the last IDENTIFIER of the qualified - expression. This is a wfl and we will use it's location - data during error report. */ - identifier_wfl = cut_identifier_in_qualified (wfl); - identifier = EXPR_WFL_NODE (identifier_wfl); - - /* Given the context, IDENTIFIER is syntactically qualified - as a MethodName. We need to qualify what's before */ - qualify_ambiguous_name (wfl); - resolved = resolve_field_access (wfl, NULL, NULL); - - if (TREE_CODE (resolved) == VAR_DECL && FIELD_STATIC (resolved) - && FIELD_FINAL (resolved) - && !inherits_from_p (DECL_CONTEXT (resolved), current_class) - && !flag_emit_class_files) - resolved = build_class_init (DECL_CONTEXT (resolved), resolved); - - if (resolved == error_mark_node) - PATCH_METHOD_RETURN_ERROR (); - - type = GET_SKIP_TYPE (resolved); - resolve_and_layout (type, NULL_TREE); - - if (JPRIMITIVE_TYPE_P (type)) - { - parse_error_context - (identifier_wfl, - "Can't invoke a method on primitive type %qs", - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)))); - PATCH_METHOD_RETURN_ERROR (); - } - - list = lookup_method_invoke (0, identifier_wfl, type, identifier, args); - args = nreverse (args); - - /* We're resolving a call from a type */ - if (TREE_CODE (resolved) == TYPE_DECL) - { - if (CLASS_INTERFACE (resolved)) - { - parse_error_context - (identifier_wfl, - "Can't make static reference to method %qs in interface %qs", - IDENTIFIER_POINTER (identifier), - IDENTIFIER_POINTER (name)); - PATCH_METHOD_RETURN_ERROR (); - } - if (list) - { - if (METHOD_STATIC (list)) - maybe_use_access_method (0, &list, NULL); - else - { - char *fct_name = xstrdup (lang_printable_name (list, 2)); - parse_error_context - (identifier_wfl, - "Can't make static reference to method %<%s %s%> in class %qs", - lang_printable_name (TREE_TYPE (TREE_TYPE (list)), 0), - fct_name, - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)))); - free (fct_name); - PATCH_METHOD_RETURN_ERROR (); - } - } - } - else - this_arg = primary = resolved; - - if (TYPE_ARRAY_P (type) && identifier == get_identifier ("clone")) - is_array_clone_call = 1; - - /* IDENTIFIER_WFL will be used to report any problem further */ - wfl = identifier_wfl; - } - /* Resolution of simple names, names generated after a primary: or - constructors */ - else - { - tree class_to_search = NULL_TREE; - int lc; /* Looking for Constructor */ - - /* We search constructor in their target class */ - if (CALL_CONSTRUCTOR_P (patch)) - { - if (TREE_CODE (patch) == NEW_CLASS_EXPR) - class_to_search = EXPR_WFL_NODE (wfl); - else if (EXPR_WFL_NODE (TREE_OPERAND (patch, 0)) == - this_identifier_node) - class_to_search = NULL_TREE; - else if (EXPR_WFL_NODE (TREE_OPERAND (patch, 0)) == - super_identifier_node) - { - is_super_init = 1; - if (CLASSTYPE_SUPER (current_class)) - class_to_search = - DECL_NAME (TYPE_NAME (CLASSTYPE_SUPER (current_class))); - else - { - parse_error_context (wfl, "Can't invoke super constructor on java.lang.Object"); - PATCH_METHOD_RETURN_ERROR (); - } - } - - /* Class to search is NULL if we're searching the current one */ - if (class_to_search) - { - class_to_search = resolve_and_layout (class_to_search, wfl); - - if (!class_to_search) - { - parse_error_context - (wfl, "Class %qs not found in type declaration", - IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl))); - PATCH_METHOD_RETURN_ERROR (); - } - - /* Can't instantiate an abstract class, but we can - invoke it's constructor. It's use within the `new' - context is denied here. */ - if (CLASS_ABSTRACT (class_to_search) - && TREE_CODE (patch) == NEW_CLASS_EXPR) - { - parse_error_context - (wfl, "Class %qs is an abstract class. It can't be instantiated", - IDENTIFIER_POINTER (EXPR_WFL_NODE (wfl))); - PATCH_METHOD_RETURN_ERROR (); - } - - class_to_search = TREE_TYPE (class_to_search); - } - else - class_to_search = current_class; - lc = 1; - } - /* This is a regular search in the local class, unless an - alternate class is specified. */ - else - { - if (where != NULL_TREE) - class_to_search = where; - else if (QUALIFIED_P (name)) - class_to_search = current_class; - else - { - class_to_search = current_class; - - for (;;) - { - if (has_method (class_to_search, name)) - break; - if (! INNER_CLASS_TYPE_P (class_to_search)) - { - parse_error_context (wfl, - "No method named %qs in scope", - IDENTIFIER_POINTER (name)); - PATCH_METHOD_RETURN_ERROR (); - } - class_to_search - = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (class_to_search))); - } - } - lc = 0; - } - - /* NAME is a simple identifier or comes from a primary. Search - in the class whose declaration contain the method being - invoked. */ - resolve_and_layout (class_to_search, NULL_TREE); - - list = lookup_method_invoke (lc, wfl, class_to_search, name, args); - /* Don't continue if no method were found, as the next statement - can't be executed then. */ - if (!list) - PATCH_METHOD_RETURN_ERROR (); - - if (TYPE_ARRAY_P (class_to_search) - && DECL_NAME (list) == get_identifier ("clone")) - is_array_clone_call = 1; - - /* Check for static reference of non static methods. */ - if (check_for_static_method_reference (wfl, patch, list, - class_to_search, primary)) - PATCH_METHOD_RETURN_ERROR (); - - /* Check for inner classes creation from illegal contexts */ - if (lc && (INNER_CLASS_TYPE_P (class_to_search) - && !CLASS_STATIC (TYPE_NAME (class_to_search))) - && INNER_ENCLOSING_SCOPE_CHECK (class_to_search) - && !DECL_INIT_P (current_function_decl)) - { - parse_error_context - (wfl, "No enclosing instance for inner class %qs is in scope%s", - lang_printable_name (class_to_search, 0), - (!current_this ? "" : - "; an explicit one must be provided when creating this inner class")); - PATCH_METHOD_RETURN_ERROR (); - } - - /* Non static methods are called with the current object extra - argument. If PATCH is a `new TYPE()', the argument is the value - returned by the object allocator. If method is resolved as a - primary, use the primary otherwise use the current THIS. */ - args = nreverse (args); - if (TREE_CODE (patch) != NEW_CLASS_EXPR) - { - this_arg = primary ? primary : current_this; - - /* If we're using an access method, things are different. - There are two family of cases: - - 1) We're not generating bytecodes: - - - LIST is non-static. Its invocation is transformed from - x(a1,...,an) into this$.x(a1,....an). - - LIST is static. Its invocation is transformed from - x(a1,...,an) into TYPE_OF(this$).x(a1,....an) - - 2) We're generating bytecodes: - - - LIST is non-static. Its invocation is transformed from - x(a1,....,an) into access$(this$,a1,...,an). - - LIST is static. Its invocation is transformed from - x(a1,....,an) into TYPE_OF(this$).x(a1,....an). - - Of course, this$ can be arbitrarily complex, ranging from - this$0 (the immediate outer context) to - access$0(access$0(...(this$0))). - - maybe_use_access_method returns a nonzero value if the - this_arg has to be moved into the (then generated) stub - argument list. In the meantime, the selected function - might have been replaced by a generated stub. */ - if (METHOD_STATIC (list)) - maybe_use_access_method (0, &list, NULL); - else if (!primary && - maybe_use_access_method (is_super_init, &list, &this_arg)) - { - args = tree_cons (NULL_TREE, this_arg, args); - this_arg = NULL_TREE; /* So it doesn't get chained twice */ - } - } - } - - /* Merge point of all resolution schemes. If we have nothing, this - is an error, already signaled */ - if (!list) - PATCH_METHOD_RETURN_ERROR (); - - /* Check accessibility, position the is_static flag, build and - return the call */ - if (not_accessible_p (DECL_CONTEXT (current_function_decl), list, - (primary ? TREE_TYPE (TREE_TYPE (primary)) : - NULL_TREE), from_super) - /* Calls to clone() on array types are permitted as a special-case. */ - && !is_array_clone_call) - { - const char *const fct_name = IDENTIFIER_POINTER (DECL_NAME (list)); - const char *const access = - accessibility_string (get_access_flags_from_decl (list)); - const char *const klass = - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (DECL_CONTEXT (list)))); - const char *const refklass = - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (current_class))); - const char *const what = (DECL_CONSTRUCTOR_P (list) - ? "constructor" : "method"); - parse_error_context (wfl, - "Can't access %s %s %<%s.%s%> from %qs", - access, what, klass, fct_name, refklass); - PATCH_METHOD_RETURN_ERROR (); - } - - /* Deprecation check: check whether the method being invoked or the - instance-being-created's type are deprecated. */ - if (TREE_CODE (patch) == NEW_CLASS_EXPR) - check_deprecation (wfl, TYPE_NAME (DECL_CONTEXT (list))); - check_deprecation (wfl, list); - - /* If invoking a innerclass constructor, there are hidden parameters - to pass */ - if (TREE_CODE (patch) == NEW_CLASS_EXPR - && PURE_INNER_CLASS_TYPE_P (DECL_CONTEXT (list))) - { - /* And make sure we add the accessed local variables to be saved - in field aliases. */ - args = build_alias_initializer_parameter_list - (AIPL_FUNCTION_CTOR_INVOCATION, DECL_CONTEXT (list), args, NULL); - - /* Secretly pass the current_this/primary as a second argument */ - if (primary || current_this) - { - tree extra_arg; - tree this_type = (current_this ? - TREE_TYPE (TREE_TYPE (current_this)) : NULL_TREE); - /* Method's (list) enclosing context */ - tree mec = DECL_CONTEXT (TYPE_NAME (DECL_CONTEXT (list))); - /* If we have a primary, use it. */ - if (primary) - extra_arg = primary; - /* The current `this' is an inner class but isn't a direct - enclosing context for the inner class we're trying to - create. Build an access to the proper enclosing context - and use it. */ - else if (current_this && PURE_INNER_CLASS_TYPE_P (this_type) - && this_type != TREE_TYPE (mec)) - { - - extra_arg = build_access_to_thisn (current_class, - TREE_TYPE (mec), 0); - extra_arg = java_complete_tree (extra_arg); - } - /* Otherwise, just use the current `this' as an enclosing - context. */ - else - extra_arg = current_this; - args = tree_cons (NULL_TREE, extra_arg, args); - } - else - args = tree_cons (NULL_TREE, integer_zero_node, args); - } - - /* This handles the situation where a constructor invocation needs - to have an enclosing context passed as a second parameter (the - constructor is one of an inner class). */ - if ((is_super_init || - (TREE_CODE (patch) == CALL_EXPR && name == this_identifier_node)) - && PURE_INNER_CLASS_TYPE_P (DECL_CONTEXT (list))) - { - tree dest = TYPE_NAME (DECL_CONTEXT (list)); - tree extra_arg = - build_access_to_thisn (current_class, DECL_CONTEXT (dest), 0); - extra_arg = java_complete_tree (extra_arg); - args = tree_cons (NULL_TREE, extra_arg, args); - } - - is_static_flag = METHOD_STATIC (list); - if (! is_static_flag && this_arg != NULL_TREE) - args = tree_cons (NULL_TREE, this_arg, args); - - /* In the context of an explicit constructor invocation, we can't - invoke any method relying on `this'. Exceptions are: we're - invoking a static function, primary exists and is not the current - this, we're creating a new object. */ - if (ctxp->explicit_constructor_p - && !is_static_flag - && (!primary || primary == current_this) - && (TREE_CODE (patch) != NEW_CLASS_EXPR)) - { - parse_error_context (wfl, "Can't reference % before the superclass constructor has been called"); - PATCH_METHOD_RETURN_ERROR (); - } - java_parser_context_restore_global (); - if (is_static) - *is_static = is_static_flag; - /* Sometimes, we want the decl of the selected method. Such as for - EH checking */ - if (ret_decl) - *ret_decl = list; - patch = patch_invoke (patch, list, args); - - /* Now is a good time to insert the call to finit$ */ - if (is_super_init && CLASS_HAS_FINIT_P (current_class)) - { - tree finit_parms, finit_call; - - /* Prepare to pass hidden parameters to finit$, if any. */ - finit_parms = build_alias_initializer_parameter_list - (AIPL_FUNCTION_FINIT_INVOCATION, current_class, NULL_TREE, NULL); - - finit_call = - build_method_invocation (build_wfl_node (finit_identifier_node), - finit_parms); - - /* Generate the code used to initialize fields declared with an - initialization statement and build a compound statement along - with the super constructor invocation. */ - CAN_COMPLETE_NORMALLY (patch) = 1; - patch = build2 (COMPOUND_EXPR, void_type_node, patch, - java_complete_tree (finit_call)); - } - return patch; -} - -/* Check that we're not trying to do a static reference to a method in - non static method. Return 1 if it's the case, 0 otherwise. */ - -static int -check_for_static_method_reference (tree wfl, tree node, tree method, - tree where, tree primary) -{ - if (METHOD_STATIC (current_function_decl) - && !METHOD_STATIC (method) && !primary && !CALL_CONSTRUCTOR_P (node)) - { - char *fct_name = xstrdup (lang_printable_name (method, 0)); - parse_error_context - (wfl, "Can't make static reference to method %<%s %s%> in class %qs", - lang_printable_name (TREE_TYPE (TREE_TYPE (method)), 0), fct_name, - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (where)))); - free (fct_name); - return 1; - } - return 0; -} - -/* Fix the invocation of *MDECL if necessary in the case of an - invocation across a nested class. *THIS_ARG might be modified - appropriately and an alternative access to *MDECL might be - returned. */ - -static int -maybe_use_access_method (int is_super_init, tree *mdecl, tree *this_arg) -{ - tree ctx; - tree md = *mdecl, ta = NULL_TREE; - int to_return = 0; - int non_static_context = !METHOD_STATIC (md); - - if (is_super_init - || DECL_FINIT_P (md) - || DECL_INSTINIT_P (md) - || !nested_member_access_p (current_class, md)) - return 0; - - /* If we're calling a method found in an enclosing class, generate - what it takes to retrieve the right `this'. Don't do that if we're - invoking a static method. Note that if MD's type is unrelated to - CURRENT_CLASS, then the current this can be used. */ - - if (non_static_context - && !inherits_from_p (current_class, DECL_CONTEXT (md)) - && DECL_CONTEXT (TYPE_NAME (current_class))) - { - ta = *this_arg; - ctx = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (current_class))); - if (inherits_from_p (ctx, DECL_CONTEXT (md))) - { - ta = build_current_thisn (current_class); - ta = build_wfl_node (ta); - } - else - { - tree type = ctx; - while (type) - { - maybe_build_thisn_access_method (type); - if (inherits_from_p (type, DECL_CONTEXT (md))) - { - ta = build_access_to_thisn (ctx, type, 0); - break; - } - type = (DECL_CONTEXT (TYPE_NAME (type)) ? - TREE_TYPE (DECL_CONTEXT (TYPE_NAME (type))) : NULL_TREE); - } - } - ta = java_complete_tree (ta); - } - - /* We might have to use an access method to get to MD. We can - break the method access rule as long as we're not generating - bytecode. */ - if (METHOD_PRIVATE (md) && flag_emit_class_files) - { - md = build_nested_method_access_method (md); - to_return = 1; - } - - *mdecl = md; - if (this_arg) - *this_arg = ta; - - /* Returning a nonzero value indicates we were doing a non static - method invocation that is now a static invocation. It will have - callee displace `this' to insert it in the regular argument - list. */ - return (non_static_context && to_return); -} - -/* Patch an invoke expression METHOD and ARGS, based on its invocation - mode. */ - -static tree -patch_invoke (tree patch, tree method, tree args) -{ - tree dtable, func; - tree original_call, t, ta; - tree check = NULL_TREE; - - /* Last step for args: convert build-in types. If we're dealing with - a new TYPE() type call, the first argument to the constructor - isn't found in the incoming argument list, but delivered by - `new' */ - t = TYPE_ARG_TYPES (TREE_TYPE (method)); - if (TREE_CODE (patch) == NEW_CLASS_EXPR) - t = TREE_CHAIN (t); - for (ta = args; t != end_params_node && ta; - t = TREE_CHAIN (t), ta = TREE_CHAIN (ta)) - if (JPRIMITIVE_TYPE_P (TREE_TYPE (TREE_VALUE (ta))) && - TREE_TYPE (TREE_VALUE (ta)) != TREE_VALUE (t)) - TREE_VALUE (ta) = convert (TREE_VALUE (t), TREE_VALUE (ta)); - - /* Resolve unresolved returned type issues */ - t = TREE_TYPE (TREE_TYPE (method)); - if (TREE_CODE (t) == POINTER_TYPE && !CLASS_LOADED_P (TREE_TYPE (t))) - resolve_and_layout (TREE_TYPE (t), NULL); - - if (flag_emit_class_files) - func = method; - else - { - switch (invocation_mode (method, CALL_USING_SUPER (patch))) - { - case INVOKE_VIRTUAL: - { - tree signature = build_java_signature (TREE_TYPE (method)); - tree special; - maybe_rewrite_invocation (&method, &args, &signature, &special); - - dtable = invoke_build_dtable (0, args); - func = build_invokevirtual (dtable, method, special); - } - break; - - case INVOKE_NONVIRTUAL: - /* If the object for the method call is null, we throw an - exception. We don't do this if the object is the current - method's `this'. In other cases we just rely on an - optimization pass to eliminate redundant checks. */ - if (TREE_VALUE (args) != current_this) - { - /* We use a save_expr here to make sure we only evaluate - the new `self' expression once. */ - tree save_arg = save_expr (TREE_VALUE (args)); - TREE_VALUE (args) = save_arg; - check = java_check_reference (save_arg, 1); - } - /* Fall through. */ - - case INVOKE_SUPER: - case INVOKE_STATIC: - { - tree signature = build_java_signature (TREE_TYPE (method)); - tree special; - maybe_rewrite_invocation (&method, &args, &signature, &special); - func = build_known_method_ref (method, TREE_TYPE (method), - DECL_CONTEXT (method), - signature, args, special); - } - break; - - case INVOKE_INTERFACE: - dtable = invoke_build_dtable (1, args); - func = build_invokeinterface (dtable, method); - break; - - default: - abort (); - } - - /* Ensure self_type is initialized, (invokestatic). FIXME */ - func = build1 (NOP_EXPR, build_pointer_type (TREE_TYPE (method)), func); - } - - TREE_TYPE (patch) = TREE_TYPE (TREE_TYPE (method)); - TREE_OPERAND (patch, 0) = func; - TREE_OPERAND (patch, 1) = args; - patch = check_for_builtin (method, patch); - original_call = patch; - - /* We're processing a `new TYPE ()' form. New is called and its - returned value is the first argument to the constructor. We build - a COMPOUND_EXPR and use saved expression so that the overall NEW - expression value is a pointer to a newly created and initialized - class. */ - if (TREE_CODE (original_call) == NEW_CLASS_EXPR) - { - tree class = DECL_CONTEXT (method); - tree c1, saved_new, new; - tree alloc_node; - - if (flag_emit_class_files) - { - TREE_TYPE (patch) = build_pointer_type (class); - return patch; - } - if (!TYPE_SIZE (class)) - safe_layout_class (class); - alloc_node = - (class_has_finalize_method (class) ? alloc_object_node - : alloc_no_finalizer_node); - new = build3 (CALL_EXPR, promote_type (class), - build_address_of (alloc_node), - build_tree_list (NULL_TREE, build_class_ref (class)), - NULL_TREE); - saved_new = save_expr (new); - c1 = build_tree_list (NULL_TREE, saved_new); - TREE_CHAIN (c1) = TREE_OPERAND (original_call, 1); - TREE_OPERAND (original_call, 1) = c1; - TREE_SET_CODE (original_call, CALL_EXPR); - patch = build2 (COMPOUND_EXPR, TREE_TYPE (new), patch, saved_new); - } - - /* If CHECK is set, then we are building a check to see if the object - is NULL. */ - if (check != NULL_TREE) - { - /* We have to call force_evaluation_order now because creating a - COMPOUND_EXPR wraps the arg list in a way that makes it - unrecognizable by force_evaluation_order later. Yuk. */ - patch = build2 (COMPOUND_EXPR, TREE_TYPE (patch), check, - force_evaluation_order (patch)); - TREE_SIDE_EFFECTS (patch) = 1; - } - - /* In order to be able to modify PATCH later, we SAVE_EXPR it and - put it as the first expression of a COMPOUND_EXPR. The second - expression being an empty statement to be later patched if - necessary. We remember a TREE_LIST (the PURPOSE is the method, - the VALUE is the compound) in a hashtable and return a - COMPOUND_EXPR built so that the result of the evaluation of the - original PATCH node is returned. */ - if (STATIC_CLASS_INIT_OPT_P () - && current_function_decl && METHOD_STATIC (method)) - { - tree list; - tree fndecl = current_function_decl; - /* We have to call force_evaluation_order now because creating a - COMPOUND_EXPR wraps the arg list in a way that makes it - unrecognizable by force_evaluation_order later. Yuk. */ - tree save = force_evaluation_order (patch); - tree type = TREE_TYPE (patch); - - patch = build2 (COMPOUND_EXPR, type, save, build_java_empty_stmt ()); - list = tree_cons (method, patch, - DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND (fndecl)); - - DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND (fndecl) = list; - - patch = build2 (COMPOUND_EXPR, type, patch, save); - } - - return patch; -} - -static int -invocation_mode (tree method, int super) -{ - int access = get_access_flags_from_decl (method); - - if (super) - return INVOKE_SUPER; - - if (access & ACC_STATIC) - return INVOKE_STATIC; - - /* We have to look for a constructor before we handle nonvirtual - calls; otherwise the constructor will look nonvirtual. */ - if (DECL_CONSTRUCTOR_P (method)) - return INVOKE_STATIC; - - if (access & ACC_PRIVATE) - return INVOKE_NONVIRTUAL; - - /* Binary compatibility: just because it's final today, that doesn't - mean it'll be final tomorrow. */ - if (! flag_indirect_dispatch - || DECL_CONTEXT (method) == object_type_node) - { - if (access & ACC_FINAL) - return INVOKE_NONVIRTUAL; - - if (CLASS_FINAL (TYPE_NAME (DECL_CONTEXT (method)))) - return INVOKE_NONVIRTUAL; - } - - if (CLASS_INTERFACE (TYPE_NAME (DECL_CONTEXT (method)))) - return INVOKE_INTERFACE; - - return INVOKE_VIRTUAL; -} - -/* Retrieve a refined list of matching methods. It covers the step - 15.11.2 (Compile-Time Step 2) */ - -static tree -lookup_method_invoke (int lc, tree cl, tree class, tree name, tree arg_list) -{ - tree atl = end_params_node; /* Arg Type List */ - tree method, signature, list, node; - const char *candidates; /* Used for error report */ - char *dup; - - /* Fix the arguments */ - for (node = arg_list; node; node = TREE_CHAIN (node)) - { - tree current_arg = TREE_TYPE (TREE_VALUE (node)); - /* Non primitive type may have to be resolved */ - if (!JPRIMITIVE_TYPE_P (current_arg)) - resolve_and_layout (current_arg, NULL_TREE); - /* And promoted */ - if (TREE_CODE (current_arg) == RECORD_TYPE) - current_arg = promote_type (current_arg); - /* If we're building an anonymous constructor call, and one of - the arguments has array type, cast it to a size-less array - type. This prevents us from getting a strange gcj-specific - "sized array" signature in the constructor's signature. */ - if (lc && ANONYMOUS_CLASS_P (class) - && TREE_CODE (current_arg) == POINTER_TYPE - && TYPE_ARRAY_P (TREE_TYPE (current_arg))) - { - tree elt = TYPE_ARRAY_ELEMENT (TREE_TYPE (current_arg)); - current_arg = build_pointer_type (build_java_array_type (elt, -1)); - } - atl = tree_cons (NULL_TREE, current_arg, atl); - } - - /* Presto. If we're dealing with an anonymous class and a - constructor call, generate the right constructor now, since we - know the arguments' types. */ - - if (lc && ANONYMOUS_CLASS_P (class)) - { - tree mdecl = craft_constructor (TYPE_NAME (class), atl); - /* The anonymous class may have already been laid out, so make sure - the new constructor is laid out here. */ - layout_class_method (class, CLASSTYPE_SUPER (class), mdecl, NULL_TREE); - } - - /* Find all candidates and then refine the list, searching for the - most specific method. */ - list = find_applicable_accessible_methods_list (lc, class, name, atl); - list = find_most_specific_methods_list (list, class); - if (list && !TREE_CHAIN (list)) - return TREE_VALUE (list); - - /* Issue an error. List candidates if any. Candidates are listed - only if accessible (non accessible methods may end-up here for - the sake of a better error report). */ - candidates = NULL; - if (list) - { - tree current; - obstack_grow (&temporary_obstack, ". Candidates are:\n", 18); - for (current = list; current; current = TREE_CHAIN (current)) - { - tree cm = TREE_VALUE (current); - char string [4096]; - if (!cm || not_accessible_p (class, cm, NULL_TREE, 0)) - continue; - sprintf - (string, " '%s' in '%s'%s", - get_printable_method_name (cm), - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (DECL_CONTEXT (cm)))), - (TREE_CHAIN (current) ? "\n" : "")); - obstack_grow (&temporary_obstack, string, strlen (string)); - } - obstack_1grow (&temporary_obstack, '\0'); - candidates = obstack_finish (&temporary_obstack); - } - /* Issue the error message */ - method = make_node (FUNCTION_TYPE); - TYPE_ARG_TYPES (method) = atl; - signature = build_java_argument_signature (method); - dup = xstrdup (lang_printable_name (class, 0)); - parse_error_context (cl, "Can't find %s %<%s(%s)%> in type %qs%s", - (lc ? "constructor" : "method"), - (lc ? dup : IDENTIFIER_POINTER (name)), - IDENTIFIER_POINTER (signature), dup, - (candidates ? candidates : "")); - free (dup); - return NULL_TREE; -} - -/* 15.11.2.1: Find Methods that are Applicable and Accessible. LC is 1 - when we're looking for a constructor. */ - -static tree -find_applicable_accessible_methods_list (int lc, tree class, tree name, - tree arglist) -{ - static htab_t searched_classes; - static int search_not_done = 0; - tree list = NULL_TREE, all_list = NULL_TREE; - tree base_binfo; - int i; - - /* Check the hash table to determine if this class has been searched - already. */ - if (searched_classes) - { - if (htab_find (searched_classes, class) != NULL) - return NULL; - } - else - { - searched_classes = htab_create (10, htab_hash_pointer, - htab_eq_pointer, NULL); - } - - search_not_done++; - *htab_find_slot (searched_classes, class, INSERT) = class; - - if (!CLASS_LOADED_P (class)) - { - load_class (class, 1); - safe_layout_class (class); - } - - /* Search interfaces */ - if (TREE_CODE (TYPE_NAME (class)) == TYPE_DECL - && CLASS_INTERFACE (TYPE_NAME (class))) - { - search_applicable_methods_list (lc, TYPE_METHODS (class), - name, arglist, &list, &all_list); - for (i = 1; BINFO_BASE_ITERATE (TYPE_BINFO (class), i, base_binfo); i++) - { - tree t = BINFO_TYPE (base_binfo); - tree rlist; - - rlist = find_applicable_accessible_methods_list (lc, t, name, - arglist); - list = chainon (rlist, list); - } - } - /* Search classes */ - else - { - search_applicable_methods_list (lc, TYPE_METHODS (class), - name, arglist, &list, &all_list); - - /* When looking finit$, class$ or instinit$, we turn LC to 1 so - that we only search in class. Note that we should have found - something at this point. */ - if (ID_FINIT_P (name) || ID_CLASSDOLLAR_P (name) || ID_INSTINIT_P (name)) - { - lc = 1; - if (!list) - abort (); - } - - /* We must search all interfaces of this class */ - if (!lc) - { - for (i = 1; - BINFO_BASE_ITERATE (TYPE_BINFO (class), i, base_binfo); i++) - { - tree t = BINFO_TYPE (base_binfo); - if (t != object_type_node) - { - tree rlist - = find_applicable_accessible_methods_list (lc, t, - name, arglist); - list = chainon (rlist, list); - } - } - } - - /* Search superclass */ - if (!lc && CLASSTYPE_SUPER (class) != NULL_TREE) - { - tree rlist; - class = CLASSTYPE_SUPER (class); - rlist = find_applicable_accessible_methods_list (lc, class, - name, arglist); - list = chainon (rlist, list); - } - } - - search_not_done--; - - /* We're done. Reset the searched classes list and finally search - java.lang.Object if it wasn't searched already. */ - if (!search_not_done) - { - if (!lc - && TYPE_METHODS (object_type_node) - && htab_find (searched_classes, object_type_node) == NULL) - { - search_applicable_methods_list (lc, - TYPE_METHODS (object_type_node), - name, arglist, &list, &all_list); - } - htab_delete (searched_classes); - searched_classes = NULL; - } - - /* Either return the list obtained or all selected (but - inaccessible) methods for better error report. */ - return (!list ? all_list : list); -} - -/* Effectively search for the appropriate method in method */ - -static void -search_applicable_methods_list (int lc, tree method, tree name, tree arglist, - tree *list, tree *all_list) -{ - for (; method; method = TREE_CHAIN (method)) - { - /* When dealing with constructor, stop here, otherwise search - other classes */ - if (lc && !DECL_CONSTRUCTOR_P (method)) - continue; - else if (!lc && (DECL_CONSTRUCTOR_P (method) - || (DECL_NAME (method) != name))) - continue; - - if (argument_types_convertible (method, arglist)) - { - /* Retain accessible methods only */ - if (!not_accessible_p (DECL_CONTEXT (current_function_decl), - method, NULL_TREE, 0)) - *list = tree_cons (NULL_TREE, method, *list); - else - /* Also retain all selected method here */ - *all_list = tree_cons (NULL_TREE, method, *list); - } - } -} - -/* 15.11.2.2 Choose the Most Specific Method */ - -static tree -find_most_specific_methods_list (tree list, tree class) -{ - int max = 0; - int abstract, candidates; - tree current, new_list = NULL_TREE; - for (current = list; current; current = TREE_CHAIN (current)) - { - tree method; - DECL_SPECIFIC_COUNT (TREE_VALUE (current)) = 0; - - for (method = list; method; method = TREE_CHAIN (method)) - { - tree method_v, current_v; - /* Don't test a method against itself */ - if (method == current) - continue; - - method_v = TREE_VALUE (method); - current_v = TREE_VALUE (current); - - /* Compare arguments and location where methods where declared */ - if (argument_types_convertible (method_v, current_v)) - { - /* We have a rather odd special case here. The front - end doesn't properly implement inheritance, so we - work around it here. The idea is, if we are - comparing a method declared in a class to one - declared in an interface, and the invocation's - qualifying class is a class (and not an interface), - then we consider the method's class to be the - qualifying class of the invocation. This lets us - fake the result of ordinary inheritance. */ - tree context_v = DECL_CONTEXT (current_v); - if (TYPE_INTERFACE_P (DECL_CONTEXT (method_v)) - && ! TYPE_INTERFACE_P (context_v) - && ! TYPE_INTERFACE_P (class)) - context_v = class; - - if (valid_method_invocation_conversion_p - (DECL_CONTEXT (method_v), context_v)) - { - int v = (DECL_SPECIFIC_COUNT (current_v) += 1); - max = (v > max ? v : max); - } - } - } - } - - /* Review the list and select the maximally specific methods */ - for (current = list, abstract = -1, candidates = -1; - current; current = TREE_CHAIN (current)) - if (DECL_SPECIFIC_COUNT (TREE_VALUE (current)) == max) - { - new_list = tree_cons (NULL_TREE, TREE_VALUE (current), new_list); - abstract += (METHOD_ABSTRACT (TREE_VALUE (current)) ? 1 : 0); - candidates++; - } - - /* If we have several and they're all abstract, just pick the - closest one. */ - if (candidates > 0 && candidates == abstract) - { - /* FIXME: merge the throws clauses. There is no convenient way - to do this in gcj right now, since ideally we'd like to - introduce a new METHOD_DECL here, but that is really not - possible. */ - new_list = nreverse (new_list); - TREE_CHAIN (new_list) = NULL_TREE; - return new_list; - } - - /* We have several (we couldn't find a most specific), all but one - are abstract, we pick the only non abstract one. */ - if (candidates > 0 && (candidates == abstract+1)) - { - for (current = new_list; current; current = TREE_CHAIN (current)) - if (!METHOD_ABSTRACT (TREE_VALUE (current))) - { - TREE_CHAIN (current) = NULL_TREE; - new_list = current; - } - } - - /* If we can't find one, lower expectations and try to gather multiple - maximally specific methods */ - while (!new_list && max) - { - while (--max > 0) - { - if (DECL_SPECIFIC_COUNT (TREE_VALUE (current)) == max) - new_list = tree_cons (NULL_TREE, TREE_VALUE (current), new_list); - } - } - - return new_list; -} - -/* Make sure that the type of each M2_OR_ARGLIST arguments can be - converted by method invocation conversion (5.3) to the type of the - corresponding parameter of M1. Implementation expects M2_OR_ARGLIST - to change less often than M1. */ - -static GTY(()) tree m2_arg_value; -static GTY(()) tree m2_arg_cache; - -static int -argument_types_convertible (tree m1, tree m2_or_arglist) -{ - tree m1_arg, m2_arg; - - SKIP_THIS_AND_ARTIFICIAL_PARMS (m1_arg, m1) - - if (m2_arg_value == m2_or_arglist) - m2_arg = m2_arg_cache; - else - { - /* M2_OR_ARGLIST can be a function DECL or a raw list of - argument types */ - if (m2_or_arglist && TREE_CODE (m2_or_arglist) == FUNCTION_DECL) - { - m2_arg = TYPE_ARG_TYPES (TREE_TYPE (m2_or_arglist)); - if (!METHOD_STATIC (m2_or_arglist)) - m2_arg = TREE_CHAIN (m2_arg); - } - else - m2_arg = m2_or_arglist; - - m2_arg_value = m2_or_arglist; - m2_arg_cache = m2_arg; - } - - while (m1_arg != end_params_node && m2_arg != end_params_node) - { - resolve_and_layout (TREE_VALUE (m1_arg), NULL_TREE); - if (!valid_method_invocation_conversion_p (TREE_VALUE (m1_arg), - TREE_VALUE (m2_arg))) - break; - m1_arg = TREE_CHAIN (m1_arg); - m2_arg = TREE_CHAIN (m2_arg); - } - return m1_arg == end_params_node && m2_arg == end_params_node; -} - -/* Qualification routines */ - -/* Given a name x.y.z, look up x locally. If it's found, save the - decl. If it's not found, mark the name as RESOLVE_PACKAGE_NAME_P, - so that we later try and load the appropriate classes. */ -static void -qualify_ambiguous_name (tree id) -{ - tree name, decl; - - /* We inspect the first item of the qualification list. As a sanity - check, make sure that it is an identfier node. */ - tree qual = EXPR_WFL_QUALIFICATION (id); - tree qual_wfl = QUAL_WFL (qual); - - if (TREE_CODE (qual_wfl) != EXPR_WITH_FILE_LOCATION) - return; - - name = EXPR_WFL_NODE (qual_wfl); - - /* If we don't have an identifier, or we have a 'this' or 'super', - then field access processing is all we need : there is nothing - for us to do. */ - if (!name || TREE_CODE (name) != IDENTIFIER_NODE || - name == this_identifier_node || - name == super_identifier_node) - return; - - /* If name appears within the scope of a local variable declaration - or parameter declaration, or is a field within an enclosing - class, then it is an expression name. Save the decl and let - resolve_field_access do it's work. */ - if ((decl = IDENTIFIER_LOCAL_VALUE (name)) || - (decl = lookup_field_wrapper (current_class, name))) - { - QUAL_RESOLUTION (qual) = decl; - return; - } - - /* If name is a known class name (either declared or imported), mark - us as a type name. */ - if ((decl = resolve_and_layout (name, NULL_TREE))) - { - RESOLVE_TYPE_NAME_P (qual_wfl) = 1; - QUAL_RESOLUTION (qual) = decl; - } - - /* Check here that NAME isn't declared by more than one - type-import-on-demand declaration of the compilation unit - containing NAME. FIXME */ - - /* We couldn't find a declaration for the name. Assume for now that - we have a qualified class name that needs to be loaded from an - external class file. */ - else - RESOLVE_PACKAGE_NAME_P (qual_wfl) = 1; - - /* Propagate the qualification across other components of the - qualified name */ - for (qual = TREE_CHAIN (qual); qual; - qual_wfl = QUAL_WFL (qual), qual = TREE_CHAIN (qual)) - { - if (RESOLVE_PACKAGE_NAME_P (qual_wfl)) - RESOLVE_PACKAGE_NAME_P (QUAL_WFL (qual)) = 1; - } - - /* Store the global qualification for the ambiguous part of ID back - into ID fields */ - if (RESOLVE_TYPE_NAME_P (qual_wfl)) - RESOLVE_TYPE_NAME_P (id) = 1; - else if (RESOLVE_PACKAGE_NAME_P (qual_wfl)) - RESOLVE_PACKAGE_NAME_P (id) = 1; -} - -/* Patch tree nodes in a function body. When a BLOCK is found, push - local variable decls if present. - Same as java_complete_lhs, but does resolve static finals to values. */ - -static tree -java_complete_tree (tree node) -{ - node = java_complete_lhs (node); - if (JDECL_P (node) && CLASS_FINAL_VARIABLE_P (node) - && DECL_INITIAL (node) != NULL_TREE) - { - tree value = fold_constant_for_init (node, node); - if (value != NULL_TREE) - return value; - } - return node; -} - -static tree -java_stabilize_reference (tree node) -{ - if (TREE_CODE (node) == COMPOUND_EXPR) - { - tree op0 = TREE_OPERAND (node, 0); - tree op1 = TREE_OPERAND (node, 1); - TREE_OPERAND (node, 0) = save_expr (op0); - TREE_OPERAND (node, 1) = java_stabilize_reference (op1); - return node; - } - return stabilize_reference (node); -} - -/* Patch tree nodes in a function body. When a BLOCK is found, push - local variable decls if present. - Same as java_complete_tree, but does not resolve static finals to values. */ - -static tree -java_complete_lhs (tree node) -{ - tree nn, cn, wfl_op1, wfl_op2, wfl_op3; - int flag; - - /* CONVERT_EXPR always has its type set, even though it needs to be - worked out. */ - if (TREE_TYPE (node) && TREE_CODE (node) != CONVERT_EXPR) - return node; - - /* The switch block implements cases processing container nodes - first. Contained nodes are always written back. Leaves come - next and return a value. */ - switch (TREE_CODE (node)) - { - case BLOCK: - - /* 1- Block section. - Set the local values on decl names so we can identify them - faster when they're referenced. At that stage, identifiers - are legal so we don't check for declaration errors. */ - for (cn = BLOCK_EXPR_DECLS (node); cn; cn = TREE_CHAIN (cn)) - { - DECL_CONTEXT (cn) = current_function_decl; - IDENTIFIER_LOCAL_VALUE (DECL_NAME (cn)) = cn; - } - if (BLOCK_EXPR_BODY (node) == NULL_TREE) - CAN_COMPLETE_NORMALLY (node) = 1; - else - { - tree stmt = BLOCK_EXPR_BODY (node); - tree *ptr; - int error_seen = 0; - if (TREE_CODE (stmt) == COMPOUND_EXPR) - { - /* Re-order from (((A; B); C); ...; Z) to - (A; (B; (C ; (...; Z)))). - This makes it easier to scan the statements left-to-right - without using recursion (which might overflow the stack - if the block has many statements. */ - for (;;) - { - tree left = TREE_OPERAND (stmt, 0); - if (TREE_CODE (left) != COMPOUND_EXPR) - break; - TREE_OPERAND (stmt, 0) = TREE_OPERAND (left, 1); - TREE_OPERAND (left, 1) = stmt; - stmt = left; - } - BLOCK_EXPR_BODY (node) = stmt; - } - - /* Now do the actual complete, without deep recursion for - long blocks. */ - ptr = &BLOCK_EXPR_BODY (node); - while (TREE_CODE (*ptr) == COMPOUND_EXPR - && !IS_EMPTY_STMT (TREE_OPERAND (*ptr, 1))) - { - tree cur = java_complete_tree (TREE_OPERAND (*ptr, 0)); - tree *next = &TREE_OPERAND (*ptr, 1); - TREE_OPERAND (*ptr, 0) = cur; - if (IS_EMPTY_STMT (cur)) - { - /* Optimization; makes it easier to detect empty bodies. - Most useful for with all-constant initializer. */ - *ptr = *next; - continue; - } - if (TREE_CODE (cur) == ERROR_MARK) - error_seen++; - else if (! CAN_COMPLETE_NORMALLY (cur)) - { - wfl_op2 = *next; - for (;;) - { - if (TREE_CODE (wfl_op2) == BLOCK) - wfl_op2 = BLOCK_EXPR_BODY (wfl_op2); - else if (TREE_CODE (wfl_op2) == COMPOUND_EXPR) - wfl_op2 = TREE_OPERAND (wfl_op2, 0); - else - break; - } - if (TREE_CODE (wfl_op2) != CASE_EXPR - && TREE_CODE (wfl_op2) != DEFAULT_EXPR) - unreachable_stmt_error (*ptr); - } - if (TREE_TYPE (*ptr) == NULL_TREE) - TREE_TYPE (*ptr) = void_type_node; - ptr = next; - } - *ptr = java_complete_tree (*ptr); - - if (TREE_CODE (*ptr) == ERROR_MARK || error_seen > 0) - return error_mark_node; - CAN_COMPLETE_NORMALLY (node) = CAN_COMPLETE_NORMALLY (*ptr); - } - /* Turn local bindings to null */ - for (cn = BLOCK_EXPR_DECLS (node); cn; cn = TREE_CHAIN (cn)) - IDENTIFIER_LOCAL_VALUE (DECL_NAME (cn)) = NULL_TREE; - - TREE_TYPE (node) = void_type_node; - break; - - /* 2- They are expressions but ultimately deal with statements */ - - case THROW_EXPR: - wfl_op1 = TREE_OPERAND (node, 0); - COMPLETE_CHECK_OP_0 (node); - /* 14.19 A throw statement cannot complete normally. */ - CAN_COMPLETE_NORMALLY (node) = 0; - return patch_throw_statement (node, wfl_op1); - - case SYNCHRONIZED_EXPR: - wfl_op1 = TREE_OPERAND (node, 0); - return patch_synchronized_statement (node, wfl_op1); - - case TRY_EXPR: - return patch_try_statement (node); - - case TRY_FINALLY_EXPR: - COMPLETE_CHECK_OP_0 (node); - COMPLETE_CHECK_OP_1 (node); - if (IS_EMPTY_STMT (TREE_OPERAND (node, 0))) - /* Reduce try/finally nodes with an empty try block. */ - return TREE_OPERAND (node, 1); - if (IS_EMPTY_STMT (TREE_OPERAND (node, 1))) - /* Likewise for an empty finally block. */ - return TREE_OPERAND (node, 0); - CAN_COMPLETE_NORMALLY (node) - = (CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 0)) - && CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 1))); - TREE_TYPE (node) = TREE_TYPE (TREE_OPERAND (node, 0)); - return node; - - case LABELED_BLOCK_EXPR: - PUSH_LABELED_BLOCK (node); - if (LABELED_BLOCK_BODY (node)) - COMPLETE_CHECK_OP_1 (node); - TREE_TYPE (node) = void_type_node; - POP_LABELED_BLOCK (); - - if (IS_EMPTY_STMT (LABELED_BLOCK_BODY (node))) - { - LABELED_BLOCK_BODY (node) = NULL_TREE; - CAN_COMPLETE_NORMALLY (node) = 1; - } - else if (CAN_COMPLETE_NORMALLY (LABELED_BLOCK_BODY (node))) - CAN_COMPLETE_NORMALLY (node) = 1; - return node; - - case EXIT_BLOCK_EXPR: - return patch_bc_statement (node); - - case CASE_EXPR: - cn = java_complete_tree (TREE_OPERAND (node, 0)); - if (cn == error_mark_node) - return cn; - - /* First, the case expression must be constant. Values of final - fields are accepted. */ - nn = fold_constant_for_init (cn, NULL_TREE); - if (nn != NULL_TREE) - cn = nn; - - cn = fold (cn); - if ((TREE_CODE (cn) == COMPOUND_EXPR - || TREE_CODE (cn) == COMPONENT_REF) - && JDECL_P (TREE_OPERAND (cn, 1)) - && FIELD_FINAL (TREE_OPERAND (cn, 1)) - && DECL_INITIAL (TREE_OPERAND (cn, 1))) - { - cn = fold_constant_for_init (DECL_INITIAL (TREE_OPERAND (cn, 1)), - TREE_OPERAND (cn, 1)); - } - /* Accept final locals too. */ - else if (TREE_CODE (cn) == VAR_DECL && DECL_FINAL (cn) - && DECL_INITIAL (cn)) - cn = fold_constant_for_init (DECL_INITIAL (cn), cn); - - if (!TREE_CONSTANT (cn)) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - parse_error_context (node, "Constant expression required"); - return error_mark_node; - } - - nn = ctxp->current_loop; - - /* It must be assignable to the type of the switch expression. */ - if (!try_builtin_assignconv (NULL_TREE, - TREE_TYPE (TREE_OPERAND (nn, 0)), cn)) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - parse_error_context - (wfl_operator, - "Incompatible type for case. Can't convert %qs to %", - lang_printable_name (TREE_TYPE (cn), 0)); - return error_mark_node; - } - - cn = fold (convert (int_type_node, cn)); - TREE_CONSTANT_OVERFLOW (cn) = 0; - CAN_COMPLETE_NORMALLY (cn) = 1; - - /* Save the label on a list so that we can later check for - duplicates. */ - case_label_list = tree_cons (node, cn, case_label_list); - - /* Multiple instance of a case label bearing the same value is - checked later. The case expression is all right so far. */ - if (TREE_CODE (cn) == VAR_DECL) - cn = DECL_INITIAL (cn); - TREE_OPERAND (node, 0) = cn; - TREE_TYPE (node) = void_type_node; - CAN_COMPLETE_NORMALLY (node) = 1; - TREE_SIDE_EFFECTS (node) = 1; - break; - - case DEFAULT_EXPR: - nn = ctxp->current_loop; - /* Only one default label is allowed per switch statement */ - if (SWITCH_HAS_DEFAULT (nn)) - { -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (wfl_operator, EXPR_LOCATION (node)); -#else - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); -#endif - parse_error_context (wfl_operator, - "Duplicate case label: %"); - return error_mark_node; - } - else - SWITCH_HAS_DEFAULT (nn) = 1; - TREE_TYPE (node) = void_type_node; - TREE_SIDE_EFFECTS (node) = 1; - CAN_COMPLETE_NORMALLY (node) = 1; - break; - - case SWITCH_EXPR: - case LOOP_EXPR: - PUSH_LOOP (node); - /* Check whether the loop was enclosed in a labeled - statement. If not, create one, insert the loop in it and - return the node */ - nn = patch_loop_statement (node); - - /* Anyways, walk the body of the loop */ - if (TREE_CODE (node) == LOOP_EXPR) - TREE_OPERAND (node, 0) = java_complete_tree (TREE_OPERAND (node, 0)); - /* Switch statement: walk the switch expression and the cases */ - else - node = patch_switch_statement (node); - - if (node == error_mark_node || TREE_OPERAND (node, 0) == error_mark_node) - nn = error_mark_node; - else - { - TREE_TYPE (nn) = TREE_TYPE (node) = void_type_node; - /* If we returned something different, that's because we - inserted a label. Pop the label too. */ - if (nn != node) - { - if (CAN_COMPLETE_NORMALLY (node)) - CAN_COMPLETE_NORMALLY (nn) = 1; - POP_LABELED_BLOCK (); - } - } - POP_LOOP (); - return nn; - - case EXIT_EXPR: - TREE_OPERAND (node, 0) = java_complete_tree (TREE_OPERAND (node, 0)); - return patch_exit_expr (node); - - case COND_EXPR: - /* Condition */ - TREE_OPERAND (node, 0) = java_complete_tree (TREE_OPERAND (node, 0)); - if (TREE_OPERAND (node, 0) == error_mark_node) - return error_mark_node; - /* then-else branches */ - TREE_OPERAND (node, 1) = java_complete_tree (TREE_OPERAND (node, 1)); - if (TREE_OPERAND (node, 1) == error_mark_node) - return error_mark_node; - { - /* This is a special case due to build_assertion(). When - assertions are disabled we build a COND_EXPR in which - Operand 1 is the body of the assertion. If that happens to - be a string concatenation we'll need to patch it here. */ - tree patched = patch_string (TREE_OPERAND (node, 1)); - if (patched) - TREE_OPERAND (node, 1) = patched; - } - TREE_OPERAND (node, 2) = java_complete_tree (TREE_OPERAND (node, 2)); - if (TREE_OPERAND (node, 2) == error_mark_node) - return error_mark_node; - return patch_if_else_statement (node); - break; - - case CONDITIONAL_EXPR: - /* Condition */ - wfl_op1 = TREE_OPERAND (node, 0); - COMPLETE_CHECK_OP_0 (node); - wfl_op2 = TREE_OPERAND (node, 1); - COMPLETE_CHECK_OP_1 (node); - wfl_op3 = TREE_OPERAND (node, 2); - COMPLETE_CHECK_OP_2 (node); - return patch_conditional_expr (node, wfl_op1, wfl_op2); - - /* 3- Expression section */ - case COMPOUND_EXPR: - wfl_op2 = TREE_OPERAND (node, 1); - TREE_OPERAND (node, 0) = nn = - java_complete_tree (TREE_OPERAND (node, 0)); - if (IS_EMPTY_STMT (wfl_op2)) - CAN_COMPLETE_NORMALLY (node) = CAN_COMPLETE_NORMALLY (nn); - else - { - if (! CAN_COMPLETE_NORMALLY (nn) && TREE_CODE (nn) != ERROR_MARK) - { - /* An unreachable condition in a do-while statement - is *not* (technically) an unreachable statement. */ - nn = wfl_op2; - if (TREE_CODE (nn) == EXPR_WITH_FILE_LOCATION) - nn = EXPR_WFL_NODE (nn); - /* NN can be NULL_TREE exactly when UPDATE is, in - finish_for_loop. */ - if (nn != NULL_TREE && TREE_CODE (nn) != EXIT_EXPR) - { - SET_WFL_OPERATOR (wfl_operator, node, wfl_op2); - if (SUPPRESS_UNREACHABLE_ERROR (nn)) - { - /* Perhaps this warning should have an - associated flag. The code being compiled is - pedantically correct, but useless. */ - parse_warning_context (wfl_operator, - "Unreachable statement"); - } - else - parse_error_context (wfl_operator, - "Unreachable statement"); - } - } - TREE_OPERAND (node, 1) = java_complete_tree (TREE_OPERAND (node, 1)); - if (TREE_OPERAND (node, 1) == error_mark_node) - return error_mark_node; - /* Even though we might allow the case where the first - operand doesn't return normally, we still should compute - CAN_COMPLETE_NORMALLY correctly. */ - CAN_COMPLETE_NORMALLY (node) - = (CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 0)) - && CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 1))); - } - TREE_TYPE (node) = TREE_TYPE (TREE_OPERAND (node, 1)); - break; - - case RETURN_EXPR: - /* CAN_COMPLETE_NORMALLY (node) = 0; */ - return patch_return (node); - - case EXPR_WITH_FILE_LOCATION: - if (!EXPR_WFL_NODE (node) /* Or a PRIMARY flag ? */ - || TREE_CODE (EXPR_WFL_NODE (node)) == IDENTIFIER_NODE) - { - node = resolve_expression_name (node, NULL); - if (node == error_mark_node) - return node; - CAN_COMPLETE_NORMALLY (node) = 1; - } - else - { - tree body; - location_t save_location = input_location; -#ifdef USE_MAPPED_LOCATION - input_location = EXPR_LOCATION (node); - if (input_location == UNKNOWN_LOCATION) - input_location = save_location; -#else - input_line = EXPR_WFL_LINENO (node); -#endif - body = java_complete_tree (EXPR_WFL_NODE (node)); - input_location = save_location; - EXPR_WFL_NODE (node) = body; - TREE_SIDE_EFFECTS (node) = TREE_SIDE_EFFECTS (body); - CAN_COMPLETE_NORMALLY (node) = CAN_COMPLETE_NORMALLY (body); - if (IS_EMPTY_STMT (body) || TREE_CONSTANT (body)) - { - /* Makes it easier to constant fold, detect empty bodies. */ - return body; - } - if (body == error_mark_node) - { - /* Its important for the evaluation of assignment that - this mark on the TREE_TYPE is propagated. */ - TREE_TYPE (node) = error_mark_node; - return error_mark_node; - } - else - TREE_TYPE (node) = TREE_TYPE (EXPR_WFL_NODE (node)); - - } - break; - - case NEW_ARRAY_EXPR: - /* Patch all the dimensions */ - flag = 0; - for (cn = TREE_OPERAND (node, 1); cn; cn = TREE_CHAIN (cn)) - { - int location = EXPR_WFL_LINECOL (TREE_VALUE (cn)); - tree dim = convert (int_type_node, - java_complete_tree (TREE_VALUE (cn))); - if (dim == error_mark_node) - { - flag = 1; - continue; - } - else - { - TREE_VALUE (cn) = dim; - /* Setup the location of the current dimension, for - later error report. */ -#ifdef USE_MAPPED_LOCATION - TREE_PURPOSE (cn) = expr_add_location (NULL_TREE, location, 0); -#else - TREE_PURPOSE (cn) = - build_expr_wfl (NULL_TREE, input_filename, 0, 0); - EXPR_WFL_LINECOL (TREE_PURPOSE (cn)) = location; -#endif - } - } - /* They complete the array creation expression, if no errors - were found. */ - CAN_COMPLETE_NORMALLY (node) = 1; - return (flag ? error_mark_node - : force_evaluation_order (patch_newarray (node))); - - case NEW_ANONYMOUS_ARRAY_EXPR: - /* Create the array type if necessary. */ - if (ANONYMOUS_ARRAY_DIMS_SIG (node)) - { - tree type = ANONYMOUS_ARRAY_BASE_TYPE (node); - if (!(type = resolve_type_during_patch (type))) - return error_mark_node; - type = build_array_from_name (type, NULL_TREE, - ANONYMOUS_ARRAY_DIMS_SIG (node), NULL); - ANONYMOUS_ARRAY_BASE_TYPE (node) = build_pointer_type (type); - } - node = patch_new_array_init (ANONYMOUS_ARRAY_BASE_TYPE (node), - ANONYMOUS_ARRAY_INITIALIZER (node)); - if (node == error_mark_node) - return error_mark_node; - CAN_COMPLETE_NORMALLY (node) = 1; - return node; - - case NEW_CLASS_EXPR: - case CALL_EXPR: - /* Complete function's argument(s) first */ - if (complete_function_arguments (node)) - return error_mark_node; - else - { - tree decl, wfl = TREE_OPERAND (node, 0); - int in_this = CALL_THIS_CONSTRUCTOR_P (node); - int from_super = (EXPR_WFL_NODE (TREE_OPERAND (node, 0)) == - super_identifier_node); - tree arguments; -#ifdef USE_MAPPED_LOCATION - source_location location = EXPR_LOCATION (node); -#else - int location = EXPR_WFL_LINECOL (node); -#endif - - node = patch_method_invocation (node, NULL_TREE, NULL_TREE, - from_super, 0, &decl); - if (node == error_mark_node) - return error_mark_node; - - if (TREE_CODE (node) == CALL_EXPR - && TREE_OPERAND (node, 1) != NULL_TREE) - arguments = TREE_VALUE (TREE_OPERAND (node, 1)); - else - arguments = NULL_TREE; - check_thrown_exceptions (location, decl, arguments); - /* If we call this(...), register signature and positions */ - if (in_this) - DECL_CONSTRUCTOR_CALLS (current_function_decl) = - tree_cons (wfl, decl, - DECL_CONSTRUCTOR_CALLS (current_function_decl)); - CAN_COMPLETE_NORMALLY (node) = 1; - return force_evaluation_order (node); - } - - case MODIFY_EXPR: - /* Save potential wfls */ - wfl_op1 = TREE_OPERAND (node, 0); - TREE_OPERAND (node, 0) = nn = java_complete_lhs (wfl_op1); - - if (MODIFY_EXPR_FROM_INITIALIZATION_P (node) - && TREE_CODE (nn) == VAR_DECL && TREE_STATIC (nn) - && DECL_INITIAL (nn) != NULL_TREE) - { - tree value; - - value = fold_constant_for_init (nn, nn); - - /* When we have a primitype type, or a string and we're not - emitting a class file, we actually don't want to generate - anything for the assignment. */ - if (value != NULL_TREE && - (JPRIMITIVE_TYPE_P (TREE_TYPE (value)) || - (TREE_TYPE (value) == string_ptr_type_node && - ! flag_emit_class_files))) - { - /* Prepare node for patch_assignment */ - TREE_OPERAND (node, 1) = value; - /* Call patch assignment to verify the assignment */ - if (patch_assignment (node, wfl_op1) == error_mark_node) - return error_mark_node; - /* Set DECL_INITIAL properly (a conversion might have - been decided by patch_assignment) and return the - empty statement. */ - else - { - tree patched = patch_string (TREE_OPERAND (node, 1)); - if (patched) - DECL_INITIAL (nn) = patched; - else - DECL_INITIAL (nn) = TREE_OPERAND (node, 1); - DECL_FIELD_FINAL_IUD (nn) = 1; - return build_java_empty_stmt (); - } - } - if (! flag_emit_class_files) - DECL_INITIAL (nn) = NULL_TREE; - } - wfl_op2 = TREE_OPERAND (node, 1); - - if (TREE_OPERAND (node, 0) == error_mark_node) - return error_mark_node; - - flag = COMPOUND_ASSIGN_P (wfl_op2); - if (flag) - { - /* This might break when accessing outer field from inner - class. TESTME, FIXME */ - tree lvalue = java_stabilize_reference (TREE_OPERAND (node, 0)); - - /* Hand stabilize the lhs on both places */ - TREE_OPERAND (node, 0) = lvalue; - TREE_OPERAND (TREE_OPERAND (node, 1), 0) = - (flag_emit_class_files ? lvalue : save_expr (lvalue)); - - /* 15.25.2.a: Left hand is not an array access. FIXME */ - /* Now complete the RHS. We write it back later on. */ - nn = java_complete_tree (TREE_OPERAND (node, 1)); - - if ((cn = patch_string (nn))) - nn = cn; - - /* The last part of the rewrite for E1 op= E2 is to have - E1 = (T)(E1 op E2), with T being the type of E1. */ - nn = java_complete_tree (build_cast (EXPR_WFL_LINECOL (wfl_op2), - TREE_TYPE (lvalue), nn)); - - /* If the assignment is compound and has reference type, - then ensure the LHS has type String and nothing else. */ - if (JREFERENCE_TYPE_P (TREE_TYPE (lvalue)) - && ! JSTRING_TYPE_P (TREE_TYPE (lvalue))) - parse_error_context (wfl_op2, - "Incompatible type for %<+=%>. Can't convert %qs to %", - lang_printable_name (TREE_TYPE (lvalue), 0)); - - /* 15.25.2.b: Left hand is an array access. FIXME */ - } - - /* If we're about to patch a NEW_ARRAY_INIT, we call a special - function to complete this RHS. Note that a NEW_ARRAY_INIT - might have been already fully expanded if created as a result - of processing an anonymous array initializer. We avoid doing - the operation twice by testing whether the node already bears - a type. */ - else if (TREE_CODE (wfl_op2) == NEW_ARRAY_INIT && !TREE_TYPE (wfl_op2)) - nn = patch_new_array_init (TREE_TYPE (TREE_OPERAND (node, 0)), - TREE_OPERAND (node, 1)); - /* Otherwise we simply complete the RHS */ - else - nn = java_complete_tree (TREE_OPERAND (node, 1)); - - if (nn == error_mark_node) - return error_mark_node; - - /* Write back the RHS as we evaluated it. */ - TREE_OPERAND (node, 1) = nn; - - /* In case we're handling = with a String as a RHS, we need to - produce a String out of the RHS (it might still be a - STRING_CST or a StringBuffer at this stage */ - if ((nn = patch_string (TREE_OPERAND (node, 1)))) - TREE_OPERAND (node, 1) = nn; - - if ((nn = nested_field_access_fix (wfl_op1, TREE_OPERAND (node, 0), - TREE_OPERAND (node, 1)))) - { - /* We return error_mark_node if nested_field_access_fix - detects we write into a final. */ - if (nn == error_mark_node) - return error_mark_node; - node = nn; - } - else - { - node = patch_assignment (node, wfl_op1); - if (node == error_mark_node) - return error_mark_node; - /* Reorganize the tree if necessary. */ - if (flag && (!JREFERENCE_TYPE_P (TREE_TYPE (node)) - || JSTRING_P (TREE_TYPE (node)))) - node = java_refold (node); - } - - /* Seek to set DECL_INITIAL to a proper value, since it might have - undergone a conversion in patch_assignment. We do that only when - it's necessary to have DECL_INITIAL properly set. */ - nn = TREE_OPERAND (node, 0); - if (TREE_CODE (nn) == VAR_DECL - && DECL_INITIAL (nn) && CONSTANT_VALUE_P (DECL_INITIAL (nn)) - && FIELD_STATIC (nn) && FIELD_FINAL (nn) - && (JPRIMITIVE_TYPE_P (TREE_TYPE (nn)) - || TREE_TYPE (nn) == string_ptr_type_node)) - DECL_INITIAL (nn) = TREE_OPERAND (node, 1); - - CAN_COMPLETE_NORMALLY (node) = 1; - return node; - - case MULT_EXPR: - case PLUS_EXPR: - case MINUS_EXPR: - case LSHIFT_EXPR: - case RSHIFT_EXPR: - case URSHIFT_EXPR: - case BIT_AND_EXPR: - case BIT_XOR_EXPR: - case BIT_IOR_EXPR: - case TRUNC_MOD_EXPR: - case TRUNC_DIV_EXPR: - case RDIV_EXPR: - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: - case EQ_EXPR: - case NE_EXPR: - case GT_EXPR: - case GE_EXPR: - case LT_EXPR: - case LE_EXPR: - /* Operands 0 and 1 are WFL in certain cases only. patch_binop - knows how to handle those cases. */ - wfl_op1 = TREE_OPERAND (node, 0); - wfl_op2 = TREE_OPERAND (node, 1); - - CAN_COMPLETE_NORMALLY (node) = 1; - /* Don't complete string nodes if dealing with the PLUS operand. */ - if (TREE_CODE (node) != PLUS_EXPR || !JSTRING_P (wfl_op1)) - { - nn = java_complete_tree (wfl_op1); - if (nn == error_mark_node) - return error_mark_node; - - TREE_OPERAND (node, 0) = nn; - } - if (TREE_CODE (node) != PLUS_EXPR || !JSTRING_P (wfl_op2)) - { - nn = java_complete_tree (wfl_op2); - if (nn == error_mark_node) - return error_mark_node; - - TREE_OPERAND (node, 1) = nn; - } - return patch_binop (node, wfl_op1, wfl_op2, 0); - - case INSTANCEOF_EXPR: - wfl_op1 = TREE_OPERAND (node, 0); - COMPLETE_CHECK_OP_0 (node); - return patch_binop (node, wfl_op1, TREE_OPERAND (node, 1), 0); - - case UNARY_PLUS_EXPR: - case NEGATE_EXPR: - case TRUTH_NOT_EXPR: - case BIT_NOT_EXPR: - case PREDECREMENT_EXPR: - case PREINCREMENT_EXPR: - case POSTDECREMENT_EXPR: - case POSTINCREMENT_EXPR: - case CONVERT_EXPR: - /* There are cases were wfl_op1 is a WFL. patch_unaryop knows - how to handle those cases. */ - wfl_op1 = TREE_OPERAND (node, 0); - CAN_COMPLETE_NORMALLY (node) = 1; - if (TREE_CODE (node) == PREDECREMENT_EXPR - || TREE_CODE (node) == PREINCREMENT_EXPR - || TREE_CODE (node) == POSTDECREMENT_EXPR - || TREE_CODE (node) == POSTINCREMENT_EXPR) - { /* We don't want static finals to be resolved to their value - to avoid ICEing later. It solves PR8923. */ - TREE_OPERAND (node, 0) = java_complete_lhs (wfl_op1); - } - else - { - TREE_OPERAND (node, 0) = java_complete_tree (wfl_op1); - } - if (TREE_OPERAND (node, 0) == error_mark_node) - return error_mark_node; - node = patch_unaryop (node, wfl_op1); - CAN_COMPLETE_NORMALLY (node) = 1; - break; - - case ARRAY_REF: - /* There are cases were wfl_op1 is a WFL. patch_array_ref knows - how to handle those cases. */ - wfl_op1 = TREE_OPERAND (node, 0); - TREE_OPERAND (node, 0) = java_complete_tree (wfl_op1); - if (TREE_OPERAND (node, 0) == error_mark_node) - return error_mark_node; - if (!flag_emit_class_files) - TREE_OPERAND (node, 0) = save_expr (TREE_OPERAND (node, 0)); - /* The same applies to wfl_op2 */ - wfl_op2 = TREE_OPERAND (node, 1); - TREE_OPERAND (node, 1) = java_complete_tree (wfl_op2); - if (TREE_OPERAND (node, 1) == error_mark_node) - return error_mark_node; - if (!flag_emit_class_files) - TREE_OPERAND (node, 1) = save_expr (TREE_OPERAND (node, 1)); - return patch_array_ref (node); - - case RECORD_TYPE: - return node;; - - case COMPONENT_REF: - /* The first step in the re-write of qualified name handling. FIXME. - So far, this is only to support PRIMTYPE.class -> - PRIMCLASS.TYPE. */ - { - tree prim_class = TREE_OPERAND (node, 0); - tree name = TREE_OPERAND (node, 1); - tree field; - - gcc_assert (TREE_CODE (prim_class) == NOP_EXPR); - prim_class = java_complete_tree (TREE_TYPE (prim_class)); - gcc_assert (TREE_CODE (prim_class) == RECORD_TYPE); - field = lookup_field_wrapper (prim_class, name); - - if (field == NULL_TREE) - { - error ("missing static field %qs", IDENTIFIER_POINTER (name)); - return error_mark_node; - } - if (! FIELD_STATIC (field)) - { - error ("not a static field %qs", IDENTIFIER_POINTER (name)); - return error_mark_node; - } - return field; - } - break; - - case THIS_EXPR: - /* Can't use THIS in a static environment */ - if (!current_this) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - parse_error_context (wfl_operator, - "Keyword % used outside allowed context"); - TREE_TYPE (node) = error_mark_node; - return error_mark_node; - } - if (ctxp->explicit_constructor_p) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - parse_error_context - (wfl_operator, "Can't reference % or % before the superclass constructor has been called"); - TREE_TYPE (node) = error_mark_node; - return error_mark_node; - } - return current_this; - - case CLASS_LITERAL: - CAN_COMPLETE_NORMALLY (node) = 1; - node = patch_incomplete_class_ref (node); - if (node == error_mark_node) - return error_mark_node; - break; - - default: - CAN_COMPLETE_NORMALLY (node) = 1; - /* Ok: may be we have a STRING_CST or a crafted `StringBuffer' - and it's time to turn it into the appropriate String object */ - if ((nn = patch_string (node))) - node = nn; - else - internal_error ("No case for %s", tree_code_name [TREE_CODE (node)]); - } - return node; -} - -/* Complete function call's argument. Return a nonzero value is an - error was found. */ - -static int -complete_function_arguments (tree node) -{ - int flag = 0; - tree cn; - - ctxp->explicit_constructor_p += (CALL_EXPLICIT_CONSTRUCTOR_P (node) ? 1 : 0); - for (cn = TREE_OPERAND (node, 1); cn; cn = TREE_CHAIN (cn)) - { - tree wfl = TREE_VALUE (cn), parm, temp; - parm = java_complete_tree (wfl); - - if (parm == error_mark_node) - { - flag = 1; - continue; - } - /* If we have a string literal that we haven't transformed yet or a - crafted string buffer, as a result of the use of the String - `+' operator. Build `parm.toString()' and expand it. */ - if ((temp = patch_string (parm))) - parm = temp; - - TREE_VALUE (cn) = parm; - } - ctxp->explicit_constructor_p -= (CALL_EXPLICIT_CONSTRUCTOR_P (node) ? 1 : 0); - return flag; -} - -/* Sometimes (for loops and variable initialized during their - declaration), we want to wrap a statement around a WFL and turn it - debugable. */ - -static tree -build_debugable_stmt (int location, tree stmt) -{ - if (TREE_CODE (stmt) != EXPR_WITH_FILE_LOCATION) - { -#ifdef USE_MAPPED_LOCATION - stmt = expr_add_location (stmt, location, 1); -#else - stmt = build_expr_wfl (stmt, input_filename, 0, 0); - EXPR_WFL_LINECOL (stmt) = location; - JAVA_MAYBE_GENERATE_DEBUG_INFO (stmt); -#endif - } - return stmt; -} - -static tree -build_expr_block (tree body, tree decls) -{ - tree node = make_node (BLOCK); - BLOCK_EXPR_DECLS (node) = decls; - BLOCK_EXPR_BODY (node) = body; - if (body) - TREE_TYPE (node) = TREE_TYPE (body); - TREE_SIDE_EFFECTS (node) = 1; - return node; -} - -/* Create a new function block and link it appropriately to current - function block chain */ - -static tree -enter_block (void) -{ - tree b = build_expr_block (NULL_TREE, NULL_TREE); - - /* Link block B supercontext to the previous block. The current - function DECL is used as supercontext when enter_a_block is called - for the first time for a given function. The current function body - (DECL_FUNCTION_BODY) is set to be block B. */ - - tree fndecl = current_function_decl; - - if (!fndecl) { - BLOCK_SUPERCONTEXT (b) = current_static_block; - current_static_block = b; - } - - else if (!DECL_FUNCTION_BODY (fndecl)) - { - BLOCK_SUPERCONTEXT (b) = fndecl; - DECL_FUNCTION_BODY (fndecl) = b; - } - else - { - BLOCK_SUPERCONTEXT (b) = DECL_FUNCTION_BODY (fndecl); - DECL_FUNCTION_BODY (fndecl) = b; - } - return b; -} - -/* Exit a block by changing the current function body - (DECL_FUNCTION_BODY) to the current block super context, only if - the block being exited isn't the method's top level one. */ - -static tree -exit_block (void) -{ - tree b; - if (current_function_decl) - { - b = DECL_FUNCTION_BODY (current_function_decl); - if (BLOCK_SUPERCONTEXT (b) != current_function_decl) - DECL_FUNCTION_BODY (current_function_decl) = BLOCK_SUPERCONTEXT (b); - } - else - { - b = current_static_block; - - if (BLOCK_SUPERCONTEXT (b)) - current_static_block = BLOCK_SUPERCONTEXT (b); - } - return b; -} - -/* Lookup for NAME in the nested function's blocks, all the way up to - the current toplevel one. It complies with Java's local variable - scoping rules. */ - -static tree -lookup_name_in_blocks (tree name) -{ - tree b = GET_CURRENT_BLOCK (current_function_decl); - - while (b != current_function_decl) - { - tree current; - - /* Paranoid sanity check. To be removed */ - if (TREE_CODE (b) != BLOCK) - abort (); - - for (current = BLOCK_EXPR_DECLS (b); current; - current = TREE_CHAIN (current)) - if (DECL_NAME (current) == name) - return current; - b = BLOCK_SUPERCONTEXT (b); - } - return NULL_TREE; -} - -static void -maybe_absorb_scoping_blocks (void) -{ - while (BLOCK_IS_IMPLICIT (GET_CURRENT_BLOCK (current_function_decl))) - { - tree b = exit_block (); - java_method_add_stmt (current_function_decl, b); - SOURCE_FRONTEND_DEBUG (("Absorbing scoping block at line %d", input_line)); - } -} - - -/* This section of the source is reserved to build_* functions that - are building incomplete tree nodes and the patch_* functions that - are completing them. */ - -/* Wrap a non WFL node around a WFL. */ - -static tree -build_wfl_wrap (tree node, int location) -{ - tree wfl, node_to_insert = node; - - /* We want to process THIS . xxx symbolically, to keep it consistent - with the way we're processing SUPER. A THIS from a primary as a - different form than a SUPER. Turn THIS into something symbolic */ - if (TREE_CODE (node) == THIS_EXPR) - node_to_insert = wfl = build_wfl_node (this_identifier_node); - else -#ifdef USE_MAPPED_LOCATION - wfl = build_unknown_wfl (NULL_TREE); - - SET_EXPR_LOCATION (wfl, location); -#else - wfl = build_expr_wfl (NULL_TREE, ctxp->filename, 0, 0); - - EXPR_WFL_LINECOL (wfl) = location; -#endif - EXPR_WFL_QUALIFICATION (wfl) = build_tree_list (node_to_insert, NULL_TREE); - return wfl; -} - -/* Build a super() constructor invocation. Returns an empty statement if - we're currently dealing with the class java.lang.Object. */ - -static tree -build_super_invocation (tree mdecl) -{ - if (DECL_CONTEXT (mdecl) == object_type_node) - return build_java_empty_stmt (); - else - { - tree super_wfl = build_wfl_node (super_identifier_node); - tree a = NULL_TREE, t; - - /* This is called after parsing is done, so the parser context - won't be accurate. Set location info from current_class decl. */ - tree class_wfl = lookup_cl (TYPE_NAME (current_class)); - EXPR_WFL_LINECOL (super_wfl) = EXPR_WFL_LINECOL (class_wfl); - - /* If we're dealing with an anonymous class, pass the arguments - of the crafted constructor along. */ - if (ANONYMOUS_CLASS_P (DECL_CONTEXT (mdecl))) - { - SKIP_THIS_AND_ARTIFICIAL_PARMS (t, mdecl); - for (; t != end_params_node; t = TREE_CHAIN (t)) - a = tree_cons (NULL_TREE, build_wfl_node (TREE_PURPOSE (t)), a); - } - return build_method_invocation (super_wfl, a); - } -} - -/* Build a SUPER/THIS qualified method invocation. */ - -static tree -build_this_super_qualified_invocation (int use_this, tree name, tree args, - int lloc, int rloc) -{ - tree invok; - tree wfl = - build_wfl_node (use_this ? this_identifier_node : super_identifier_node); - EXPR_WFL_LINECOL (wfl) = lloc; - invok = build_method_invocation (name, args); - return make_qualified_primary (wfl, invok, rloc); -} - -/* Build an incomplete CALL_EXPR node. */ - -static tree -build_method_invocation (tree name, tree args) -{ - tree call = build3 (CALL_EXPR, NULL_TREE, name, args, NULL_TREE); - TREE_SIDE_EFFECTS (call) = 1; - EXPR_WFL_LINECOL (call) = EXPR_WFL_LINECOL (name); - return call; -} - -/* Build an incomplete new xxx(...) node. */ - -static tree -build_new_invocation (tree name, tree args) -{ - tree call = build3 (NEW_CLASS_EXPR, NULL_TREE, name, args, NULL_TREE); - TREE_SIDE_EFFECTS (call) = 1; - EXPR_WFL_LINECOL (call) = EXPR_WFL_LINECOL (name); - return call; -} - -/* Build an incomplete assignment expression. */ - -static tree -build_assignment (int op, int op_location, tree lhs, tree rhs) -{ - tree assignment; - /* Build the corresponding binop if we deal with a Compound - Assignment operator. Mark the binop sub-tree as part of a - Compound Assignment expression */ - if (op != ASSIGN_TK) - { - rhs = build_binop (BINOP_LOOKUP (op), op_location, lhs, rhs); - COMPOUND_ASSIGN_P (rhs) = 1; - } - assignment = build2 (MODIFY_EXPR, NULL_TREE, lhs, rhs); - TREE_SIDE_EFFECTS (assignment) = 1; - EXPR_WFL_LINECOL (assignment) = op_location; - return assignment; -} - -/* Print an INTEGER_CST node as decimal in a static buffer, and return - the buffer. This is used only for string conversion. */ -static char * -string_convert_int_cst (tree node) -{ - /* Long.MIN_VALUE is -9223372036854775808, 20 characters. */ - static char buffer[21]; - - unsigned HOST_WIDE_INT lo = TREE_INT_CST_LOW (node); - unsigned HOST_WIDE_INT hi = TREE_INT_CST_HIGH (node); - char *p = buffer + sizeof (buffer); - int neg = 0; - - unsigned HOST_WIDE_INT hibit = (((unsigned HOST_WIDE_INT) 1) - << (HOST_BITS_PER_WIDE_INT - 1)); - - *--p = '\0'; - - /* If negative, note the fact and negate the value. */ - if ((hi & hibit)) - { - lo = ~lo; - hi = ~hi; - if (++lo == 0) - ++hi; - neg = 1; - } - - /* Divide by 10 until there are no bits left. */ - do - { - unsigned HOST_WIDE_INT acc = 0; - unsigned HOST_WIDE_INT outhi = 0, outlo = 0; - unsigned int i; - - /* Use long division to compute the result and the remainder. */ - for (i = 0; i < 2 * HOST_BITS_PER_WIDE_INT; ++i) - { - /* Shift a bit into accumulator. */ - acc <<= 1; - if ((hi & hibit)) - acc |= 1; - - /* Shift the value. */ - hi <<= 1; - if ((lo & hibit)) - hi |= 1; - lo <<= 1; - - /* Shift the correct bit into the result. */ - outhi <<= 1; - if ((outlo & hibit)) - outhi |= 1; - outlo <<= 1; - if (acc >= 10) - { - acc -= 10; - outlo |= 1; - } - } - - /* '0' == 060 in Java, but might not be here (think EBCDIC). */ - *--p = '\060' + acc; - - hi = outhi; - lo = outlo; - } - while (hi || lo); - - if (neg) - *--p = '\055'; /* '-' == 055 in Java, but might not be here. */ - - return p; -} - -/* Print an INTEGER_CST node in a static buffer, and return the - buffer. This is used only for error handling. */ -char * -print_int_node (tree node) -{ - static char buffer [80]; - if (TREE_CONSTANT_OVERFLOW (node)) - sprintf (buffer, ""); - - if (TREE_INT_CST_HIGH (node) == 0) - sprintf (buffer, HOST_WIDE_INT_PRINT_UNSIGNED, - TREE_INT_CST_LOW (node)); - else if (TREE_INT_CST_HIGH (node) == -1 - && TREE_INT_CST_LOW (node) != 0) - sprintf (buffer, "-" HOST_WIDE_INT_PRINT_UNSIGNED, - -TREE_INT_CST_LOW (node)); - else - sprintf (buffer, HOST_WIDE_INT_PRINT_DOUBLE_HEX, - TREE_INT_CST_HIGH (node), TREE_INT_CST_LOW (node)); - - return buffer; -} - - -/* Return 1 if an assignment to a FINAL is attempted in a non suitable - context. */ - -/* 15.25 Assignment operators. */ - -static tree -patch_assignment (tree node, tree wfl_op1) -{ - tree rhs = TREE_OPERAND (node, 1); - tree lvalue = TREE_OPERAND (node, 0), llvalue; - tree lhs_type = NULL_TREE, rhs_type, new_rhs = NULL_TREE; - int error_found = 0; - int lvalue_from_array = 0; - int is_return = 0; - - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - /* Lhs can be a named variable */ - if (JDECL_P (lvalue)) - { - lhs_type = TREE_TYPE (lvalue); - } - /* Or Lhs can be an array access. */ - else if (TREE_CODE (lvalue) == ARRAY_REF) - { - lhs_type = TREE_TYPE (lvalue); - lvalue_from_array = 1; - } - /* Or a field access */ - else if (TREE_CODE (lvalue) == COMPONENT_REF) - lhs_type = TREE_TYPE (lvalue); - /* Or a function return slot */ - else if (TREE_CODE (lvalue) == RESULT_DECL) - { - /* If the return type is an integral type, then we create the - RESULT_DECL with a promoted type, but we need to do these - checks against the unpromoted type to ensure type safety. So - here we look at the real type, not the type of the decl we - are modifying. */ - lhs_type = TREE_TYPE (TREE_TYPE (current_function_decl)); - is_return = 1; - } - /* Otherwise, we might want to try to write into an optimized static - final, this is an of a different nature, reported further on. */ - else if (TREE_CODE (wfl_op1) == EXPR_WITH_FILE_LOCATION - && resolve_expression_name (wfl_op1, &llvalue)) - { - lhs_type = TREE_TYPE (lvalue); - } - else - { - parse_error_context (wfl_op1, "Invalid left hand side of assignment"); - error_found = 1; - } - - rhs_type = TREE_TYPE (rhs); - - /* 5.1 Try the assignment conversion for builtin type. */ - new_rhs = try_builtin_assignconv (wfl_op1, lhs_type, rhs); - - /* 5.2 If it failed, try a reference conversion */ - if (!new_rhs) - new_rhs = try_reference_assignconv (lhs_type, rhs); - - /* 15.25.2 If we have a compound assignment, convert RHS into the - type of the LHS */ - else if (COMPOUND_ASSIGN_P (TREE_OPERAND (node, 1))) - new_rhs = convert (lhs_type, rhs); - - /* Explicit cast required. This is an error */ - if (!new_rhs) - { - char *t1 = xstrdup (lang_printable_name (TREE_TYPE (rhs), 0)); - char *t2 = xstrdup (lang_printable_name (lhs_type, 0)); - tree wfl; - char operation [32]; /* Max size known */ - - /* If the assignment is part of a declaration, we use the WFL of - the declared variable to point out the error and call it a - declaration problem. If the assignment is a genuine = - operator, we call is a operator `=' problem, otherwise we - call it an assignment problem. In both of these last cases, - we use the WFL of the operator to indicate the error. */ - - if (MODIFY_EXPR_FROM_INITIALIZATION_P (node)) - { - wfl = wfl_op1; - strcpy (operation, "declaration"); - } - else - { - wfl = wfl_operator; - if (COMPOUND_ASSIGN_P (TREE_OPERAND (node, 1))) - strcpy (operation, "assignment"); - else if (is_return) - strcpy (operation, "'return'"); - else - strcpy (operation, "'='"); - } - - if (!valid_cast_to_p (rhs_type, lhs_type)) - parse_error_context - (wfl, "Incompatible type for %s. Can't convert %qs to %qs", - operation, t1, t2); - else - parse_error_context (wfl, "Incompatible type for %s. Explicit cast needed to convert %qs to %qs", - operation, t1, t2); - free (t1); free (t2); - error_found = 1; - } - - if (error_found) - return error_mark_node; - - /* If we're processing a `return' statement, promote the actual type - to the promoted type. */ - if (is_return) - new_rhs = convert (TREE_TYPE (lvalue), new_rhs); - - /* 10.10: Array Store Exception runtime check */ - if (!flag_emit_class_files - && lvalue_from_array - && JREFERENCE_TYPE_P (TYPE_ARRAY_ELEMENT (lhs_type))) - { - tree array, store_check, base, index_expr; - - /* Save RHS so that it doesn't get re-evaluated by the store check. */ - new_rhs = save_expr (new_rhs); - - /* Get the INDIRECT_REF. */ - array = TREE_OPERAND (TREE_OPERAND (lvalue, 0), 0); - /* Get the array pointer expr. */ - array = TREE_OPERAND (array, 0); - store_check = build_java_arraystore_check (array, new_rhs); - - index_expr = TREE_OPERAND (lvalue, 1); - - if (TREE_CODE (index_expr) == COMPOUND_EXPR) - { - /* A COMPOUND_EXPR here is a bounds check. The bounds check must - happen before the store check, so prepare to insert the store - check within the second operand of the existing COMPOUND_EXPR. */ - base = index_expr; - } - else - base = lvalue; - - index_expr = TREE_OPERAND (base, 1); - TREE_OPERAND (base, 1) = build2 (COMPOUND_EXPR, TREE_TYPE (index_expr), - store_check, index_expr); - } - - /* Final locals can be used as case values in switch - statement. Prepare them for this eventuality. */ - if (TREE_CODE (lvalue) == VAR_DECL - && DECL_FINAL (lvalue) - && TREE_CONSTANT (new_rhs) - && IDENTIFIER_LOCAL_VALUE (DECL_NAME (lvalue)) - && JINTEGRAL_TYPE_P (TREE_TYPE (lvalue)) - ) - { - TREE_CONSTANT (lvalue) = 1; - TREE_INVARIANT (lvalue) = 1; - DECL_INITIAL (lvalue) = new_rhs; - } - - /* Copy the rhs if it's a reference. */ - if (! flag_check_references && ! flag_emit_class_files && optimize > 0) - { - switch (TREE_CODE (new_rhs)) - { - case ARRAY_REF: - case INDIRECT_REF: - case COMPONENT_REF: - /* Transform a = foo.bar - into a = ({int tmp; tmp = foo.bar;}). - We need to ensure that if a read from memory fails - because of a NullPointerException, a destination variable - will remain unchanged. An explicit temporary does what - we need. - - If flag_check_references is set, this is unnecessary - because we'll check each reference before doing any - reads. If optimize is not set the result will never be - written to a stack slot that contains the LHS. */ - { - tree tmp = build_decl (VAR_DECL, get_identifier (""), - TREE_TYPE (new_rhs)); - tree block = make_node (BLOCK); - tree assignment - = build2 (MODIFY_EXPR, TREE_TYPE (new_rhs), tmp, fold (new_rhs)); - DECL_CONTEXT (tmp) = current_function_decl; - TREE_TYPE (block) = TREE_TYPE (new_rhs); - BLOCK_VARS (block) = tmp; - BLOCK_EXPR_BODY (block) = assignment; - TREE_SIDE_EFFECTS (block) = 1; - new_rhs = block; - } - break; - default: - break; - } - } - - TREE_OPERAND (node, 0) = lvalue; - TREE_OPERAND (node, 1) = new_rhs; - TREE_TYPE (node) = lhs_type; - return node; -} - -/* Check that type SOURCE can be cast into type DEST. If the cast - can't occur at all, return NULL; otherwise, return a possibly - modified rhs. */ - -static tree -try_reference_assignconv (tree lhs_type, tree rhs) -{ - tree new_rhs = NULL_TREE; - tree rhs_type = TREE_TYPE (rhs); - - if (!JPRIMITIVE_TYPE_P (rhs_type) && JREFERENCE_TYPE_P (lhs_type)) - { - /* `null' may be assigned to any reference type */ - if (rhs == null_pointer_node) - new_rhs = null_pointer_node; - /* Try the reference assignment conversion */ - else if (valid_ref_assignconv_cast_p (rhs_type, lhs_type, 0)) - new_rhs = rhs; - /* This is a magic assignment that we process differently */ - else if (TREE_CODE (rhs) == JAVA_EXC_OBJ_EXPR) - new_rhs = rhs; - } - return new_rhs; -} - -/* Check that RHS can be converted into LHS_TYPE by the assignment - conversion (5.2), for the cases of RHS being a builtin type. Return - NULL_TREE if the conversion fails or if because RHS isn't of a - builtin type. Return a converted RHS if the conversion is possible. */ - -static tree -try_builtin_assignconv (tree wfl_op1, tree lhs_type, tree rhs) -{ - tree new_rhs = NULL_TREE; - tree rhs_type = TREE_TYPE (rhs); - - /* Handle boolean specially. */ - if (TREE_CODE (rhs_type) == BOOLEAN_TYPE - || TREE_CODE (lhs_type) == BOOLEAN_TYPE) - { - if (TREE_CODE (rhs_type) == BOOLEAN_TYPE - && TREE_CODE (lhs_type) == BOOLEAN_TYPE) - new_rhs = rhs; - } - - /* 5.1.1 Try Identity Conversion, - 5.1.2 Try Widening Primitive Conversion */ - else if (valid_builtin_assignconv_identity_widening_p (lhs_type, rhs_type)) - new_rhs = convert (lhs_type, rhs); - - /* Try a narrowing primitive conversion (5.1.3): - - expression is a constant expression of type byte, short, char, - or int, AND - - variable is byte, short or char AND - - The value of the expression is representable in the type of the - variable */ - else if ((rhs_type == byte_type_node || rhs_type == short_type_node - || rhs_type == char_type_node || rhs_type == int_type_node) - && TREE_CONSTANT (rhs) - && (lhs_type == byte_type_node || lhs_type == char_type_node - || lhs_type == short_type_node)) - { - if (int_fits_type_p (rhs, lhs_type)) - new_rhs = convert (lhs_type, rhs); - else if (wfl_op1) /* Might be called with a NULL */ - parse_warning_context - (wfl_op1, - "Constant expression %qs too wide for narrowing primitive conversion to %qs", - print_int_node (rhs), lang_printable_name (lhs_type, 0)); - /* Reported a warning that will turn into an error further - down, so we don't return */ - } - - return new_rhs; -} - -/* Return 1 if RHS_TYPE can be converted to LHS_TYPE by identity - conversion (5.1.1) or widening primitive conversion (5.1.2). Return - 0 is the conversion test fails. This implements parts the method - invocation conversion (5.3). */ - -static int -valid_builtin_assignconv_identity_widening_p (tree lhs_type, tree rhs_type) -{ - /* 5.1.1: This is the identity conversion part. */ - if (lhs_type == rhs_type) - return 1; - - /* Reject non primitive types and boolean conversions. */ - if (!JNUMERIC_TYPE_P (lhs_type) || !JNUMERIC_TYPE_P (rhs_type)) - return 0; - - /* 5.1.2: widening primitive conversion. byte, even if it's smaller - than a char can't be converted into a char. Short can't too, but - the < test below takes care of that */ - if (lhs_type == char_type_node && rhs_type == byte_type_node) - return 0; - - /* Accept all promoted type here. Note, we can't use <= in the test - below, because we still need to bounce out assignments of short - to char and the likes */ - if (lhs_type == int_type_node - && (rhs_type == promoted_byte_type_node - || rhs_type == promoted_short_type_node - || rhs_type == promoted_char_type_node - || rhs_type == promoted_boolean_type_node)) - return 1; - - /* From here, an integral is widened if its precision is smaller - than the precision of the LHS or if the LHS is a floating point - type, or the RHS is a float and the RHS a double. */ - if ((JINTEGRAL_TYPE_P (rhs_type) && JINTEGRAL_TYPE_P (lhs_type) - && (TYPE_PRECISION (rhs_type) < TYPE_PRECISION (lhs_type))) - || (JINTEGRAL_TYPE_P (rhs_type) && JFLOAT_TYPE_P (lhs_type)) - || (rhs_type == float_type_node && lhs_type == double_type_node)) - return 1; - - return 0; -} - -/* Check that something of SOURCE type can be assigned or cast to - something of DEST type at runtime. Return 1 if the operation is - valid, 0 otherwise. If CAST is set to 1, we're treating the case - were SOURCE is cast into DEST, which borrows a lot of the - assignment check. */ - -static int -valid_ref_assignconv_cast_p (tree source, tree dest, int cast) -{ - /* SOURCE or DEST might be null if not from a declared entity. */ - if (!source || !dest) - return 0; - if (JNULLP_TYPE_P (source)) - return 1; - if (TREE_CODE (source) == POINTER_TYPE) - source = TREE_TYPE (source); - if (TREE_CODE (dest) == POINTER_TYPE) - dest = TREE_TYPE (dest); - - /* If source and dest are being compiled from bytecode, they may need to - be loaded. */ - if (CLASS_P (source) && !CLASS_LOADED_P (source)) - { - load_class (source, 1); - safe_layout_class (source); - } - if (CLASS_P (dest) && !CLASS_LOADED_P (dest)) - { - load_class (dest, 1); - safe_layout_class (dest); - } - - /* Case where SOURCE is a class type */ - if (TYPE_CLASS_P (source)) - { - if (TYPE_CLASS_P (dest)) - return (source == dest - || inherits_from_p (source, dest) - || (cast && inherits_from_p (dest, source))); - if (TYPE_INTERFACE_P (dest)) - { - /* If doing a cast and SOURCE is final, the operation is - always correct a compile time (because even if SOURCE - does not implement DEST, a subclass of SOURCE might). */ - if (cast && !CLASS_FINAL (TYPE_NAME (source))) - return 1; - /* Otherwise, SOURCE must implement DEST */ - return interface_of_p (dest, source); - } - /* DEST is an array, cast permitted if SOURCE is of Object type */ - return (cast && source == object_type_node ? 1 : 0); - } - if (TYPE_INTERFACE_P (source)) - { - if (TYPE_CLASS_P (dest)) - { - /* If not casting, DEST must be the Object type */ - if (!cast) - return dest == object_type_node; - /* We're doing a cast. The cast is always valid is class - DEST is not final, otherwise, DEST must implement SOURCE */ - else if (!CLASS_FINAL (TYPE_NAME (dest))) - return 1; - else - return interface_of_p (source, dest); - } - if (TYPE_INTERFACE_P (dest)) - { - /* If doing a cast, then if SOURCE and DEST contain method - with the same signature but different return type, then - this is a (compile time) error */ - if (cast) - { - tree method_source, method_dest; - tree source_type; - tree source_sig; - tree source_name; - for (method_source = TYPE_METHODS (source); method_source; - method_source = TREE_CHAIN (method_source)) - { - source_sig = - build_java_argument_signature (TREE_TYPE (method_source)); - source_type = TREE_TYPE (TREE_TYPE (method_source)); - source_name = DECL_NAME (method_source); - for (method_dest = TYPE_METHODS (dest); - method_dest; method_dest = TREE_CHAIN (method_dest)) - if (source_sig == - build_java_argument_signature (TREE_TYPE (method_dest)) - && source_name == DECL_NAME (method_dest) - && source_type != TREE_TYPE (TREE_TYPE (method_dest))) - return 0; - } - return 1; - } - else - return source == dest || interface_of_p (dest, source); - } - else - { - /* Array */ - return (cast - && (DECL_NAME (TYPE_NAME (source)) - == java_lang_cloneable_identifier_node - || (DECL_NAME (TYPE_NAME (source)) - == java_io_serializable_identifier_node))); - } - } - if (TYPE_ARRAY_P (source)) - { - if (TYPE_CLASS_P (dest)) - return dest == object_type_node; - /* Can't cast an array to an interface unless the interface is - java.lang.Cloneable or java.io.Serializable. */ - if (TYPE_INTERFACE_P (dest)) - return (DECL_NAME (TYPE_NAME (dest)) - == java_lang_cloneable_identifier_node - || (DECL_NAME (TYPE_NAME (dest)) - == java_io_serializable_identifier_node)); - else /* Arrays */ - { - tree source_element_type = TYPE_ARRAY_ELEMENT (source); - tree dest_element_type = TYPE_ARRAY_ELEMENT (dest); - - /* In case of severe errors, they turn out null */ - if (!dest_element_type || !source_element_type) - return 0; - if (source_element_type == dest_element_type) - return 1; - return valid_ref_assignconv_cast_p (source_element_type, - dest_element_type, cast); - } - return 0; - } - return 0; -} - -static int -valid_cast_to_p (tree source, tree dest) -{ - if (TREE_CODE (source) == POINTER_TYPE) - source = TREE_TYPE (source); - if (TREE_CODE (dest) == POINTER_TYPE) - dest = TREE_TYPE (dest); - - if (TREE_CODE (source) == RECORD_TYPE && TREE_CODE (dest) == RECORD_TYPE) - return valid_ref_assignconv_cast_p (source, dest, 1); - - else if (JNUMERIC_TYPE_P (source) && JNUMERIC_TYPE_P (dest)) - return 1; - - else if (TREE_CODE (source) == BOOLEAN_TYPE - && TREE_CODE (dest) == BOOLEAN_TYPE) - return 1; - - return 0; -} - -static tree -do_unary_numeric_promotion (tree arg) -{ - tree type = TREE_TYPE (arg); - if (TREE_CODE (type) == INTEGER_TYPE && TYPE_PRECISION (type) < 32) - arg = convert (int_type_node, arg); - return arg; -} - -/* Return a nonzero value if SOURCE can be converted into DEST using - the method invocation conversion rule (5.3). */ -static int -valid_method_invocation_conversion_p (tree dest, tree source) -{ - return ((JPRIMITIVE_TYPE_P (source) && JPRIMITIVE_TYPE_P (dest) - && valid_builtin_assignconv_identity_widening_p (dest, source)) - || ((JREFERENCE_TYPE_P (source) || JNULLP_TYPE_P (source)) - && (JREFERENCE_TYPE_P (dest) || JNULLP_TYPE_P (dest)) - && valid_ref_assignconv_cast_p (source, dest, 0))); -} - -/* Build an incomplete binop expression. */ - -static tree -build_binop (enum tree_code op, int op_location, tree op1, tree op2) -{ - tree binop = build2 (op, NULL_TREE, op1, op2); - TREE_SIDE_EFFECTS (binop) = 1; - /* Store the location of the operator, for better error report. The - string of the operator will be rebuild based on the OP value. */ - EXPR_WFL_LINECOL (binop) = op_location; - return binop; -} - -/* Build the string of the operator retained by NODE. If NODE is part - of a compound expression, add an '=' at the end of the string. This - function is called when an error needs to be reported on an - operator. The string is returned as a pointer to a static character - buffer. */ - -static char * -operator_string (tree node) -{ -#define BUILD_OPERATOR_STRING(S) \ - { \ - sprintf (buffer, "%s%s", S, (COMPOUND_ASSIGN_P (node) ? "=" : "")); \ - return buffer; \ - } - - static char buffer [10]; - switch (TREE_CODE (node)) - { - case MULT_EXPR: BUILD_OPERATOR_STRING ("*"); - case RDIV_EXPR: BUILD_OPERATOR_STRING ("/"); - case TRUNC_MOD_EXPR: BUILD_OPERATOR_STRING ("%"); - case PLUS_EXPR: BUILD_OPERATOR_STRING ("+"); - case MINUS_EXPR: BUILD_OPERATOR_STRING ("-"); - case LSHIFT_EXPR: BUILD_OPERATOR_STRING ("<<"); - case RSHIFT_EXPR: BUILD_OPERATOR_STRING (">>"); - case URSHIFT_EXPR: BUILD_OPERATOR_STRING (">>>"); - case BIT_AND_EXPR: BUILD_OPERATOR_STRING ("&"); - case BIT_XOR_EXPR: BUILD_OPERATOR_STRING ("^"); - case BIT_IOR_EXPR: BUILD_OPERATOR_STRING ("|"); - case TRUTH_ANDIF_EXPR: BUILD_OPERATOR_STRING ("&&"); - case TRUTH_ORIF_EXPR: BUILD_OPERATOR_STRING ("||"); - case EQ_EXPR: BUILD_OPERATOR_STRING ("=="); - case NE_EXPR: BUILD_OPERATOR_STRING ("!="); - case GT_EXPR: BUILD_OPERATOR_STRING (">"); - case GE_EXPR: BUILD_OPERATOR_STRING (">="); - case LT_EXPR: BUILD_OPERATOR_STRING ("<"); - case LE_EXPR: BUILD_OPERATOR_STRING ("<="); - case UNARY_PLUS_EXPR: BUILD_OPERATOR_STRING ("+"); - case NEGATE_EXPR: BUILD_OPERATOR_STRING ("-"); - case TRUTH_NOT_EXPR: BUILD_OPERATOR_STRING ("!"); - case BIT_NOT_EXPR: BUILD_OPERATOR_STRING ("~"); - case PREINCREMENT_EXPR: /* Fall through */ - case POSTINCREMENT_EXPR: BUILD_OPERATOR_STRING ("++"); - case PREDECREMENT_EXPR: /* Fall through */ - case POSTDECREMENT_EXPR: BUILD_OPERATOR_STRING ("--"); - default: - internal_error ("unregistered operator %s", - tree_code_name [TREE_CODE (node)]); - } - return NULL; -#undef BUILD_OPERATOR_STRING -} - -/* Return 1 if VAR_ACCESS1 is equivalent to VAR_ACCESS2. */ - -static int -java_decl_equiv (tree var_acc1, tree var_acc2) -{ - if (JDECL_P (var_acc1)) - return (var_acc1 == var_acc2); - - return (TREE_CODE (var_acc1) == COMPONENT_REF - && TREE_CODE (var_acc2) == COMPONENT_REF - && TREE_OPERAND (TREE_OPERAND (var_acc1, 0), 0) - == TREE_OPERAND (TREE_OPERAND (var_acc2, 0), 0) - && TREE_OPERAND (var_acc1, 1) == TREE_OPERAND (var_acc2, 1)); -} - -/* Return a nonzero value if CODE is one of the operators that can be - used in conjunction with the `=' operator in a compound assignment. */ - -static int -binop_compound_p (enum tree_code code) -{ - int i; - for (i = 0; i < BINOP_COMPOUND_CANDIDATES; i++) - if (binop_lookup [i] == code) - break; - - return i < BINOP_COMPOUND_CANDIDATES; -} - -/* Reorganize after a fold to get SAVE_EXPR to generate what we want. */ - -static tree -java_refold (tree t) -{ - tree c, b, ns, decl; - - if (TREE_CODE (t) != MODIFY_EXPR) - return t; - - c = TREE_OPERAND (t, 1); - if (! (c && TREE_CODE (c) == COMPOUND_EXPR - && TREE_CODE (TREE_OPERAND (c, 0)) == MODIFY_EXPR - && binop_compound_p (TREE_CODE (TREE_OPERAND (c, 1))))) - return t; - - /* Now the left branch of the binary operator. */ - b = TREE_OPERAND (TREE_OPERAND (c, 1), 0); - if (! (b && TREE_CODE (b) == NOP_EXPR - && TREE_CODE (TREE_OPERAND (b, 0)) == SAVE_EXPR)) - return t; - - ns = TREE_OPERAND (TREE_OPERAND (b, 0), 0); - if (! (ns && TREE_CODE (ns) == NOP_EXPR - && TREE_CODE (TREE_OPERAND (ns, 0)) == SAVE_EXPR)) - return t; - - decl = TREE_OPERAND (TREE_OPERAND (ns, 0), 0); - if ((JDECL_P (decl) || TREE_CODE (decl) == COMPONENT_REF) - /* It's got to be the an equivalent decl */ - && java_decl_equiv (decl, TREE_OPERAND (TREE_OPERAND (c, 0), 0))) - { - /* Shorten the NOP_EXPR/SAVE_EXPR path. */ - TREE_OPERAND (TREE_OPERAND (c, 1), 0) = TREE_OPERAND (ns, 0); - /* Substitute the COMPOUND_EXPR by the BINOP_EXPR */ - TREE_OPERAND (t, 1) = TREE_OPERAND (c, 1); - /* Change the right part of the BINOP_EXPR */ - TREE_OPERAND (TREE_OPERAND (t, 1), 1) = TREE_OPERAND (c, 0); - } - - return t; -} - -/* Binary operators (15.16 up to 15.18). We return error_mark_node on - errors but we modify NODE so that it contains the type computed - according to the expression, when it's fixed. Otherwise, we write - error_mark_node as the type. It allows us to further the analysis - of remaining nodes and detects more errors in certain cases. */ - -static tree -patch_binop (tree node, tree wfl_op1, tree wfl_op2, int folding) -{ - tree op1 = TREE_OPERAND (node, 0); - tree op2 = TREE_OPERAND (node, 1); - tree op1_type = TREE_TYPE (op1); - tree op2_type = TREE_TYPE (op2); - tree prom_type = NULL_TREE, cn; - enum tree_code code = TREE_CODE (node); - - /* If 1, tell the routine that we have to return error_mark_node - after checking for the initialization of the RHS */ - int error_found = 0; - - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - /* If either op_type are NULL, this might be early signs of an - error situation, unless it's too early to tell (in case we're - handling a `+', `==', `!=' or `instanceof'.) We want to set op_type - correctly so the error can be later on reported accurately. */ - if (! (code == PLUS_EXPR || code == NE_EXPR - || code == EQ_EXPR || code == INSTANCEOF_EXPR)) - { - tree n; - if (! op1_type) - { - n = java_complete_tree (op1); - op1_type = TREE_TYPE (n); - } - if (! op2_type) - { - n = java_complete_tree (op2); - op2_type = TREE_TYPE (n); - } - } - - switch (code) - { - /* 15.16 Multiplicative operators */ - case MULT_EXPR: /* 15.16.1 Multiplication Operator * */ - case RDIV_EXPR: /* 15.16.2 Division Operator / */ - case TRUNC_DIV_EXPR: /* 15.16.2 Integral type Division Operator / */ - case TRUNC_MOD_EXPR: /* 15.16.3 Remainder operator % */ - if (!JNUMERIC_TYPE_P (op1_type) || !JNUMERIC_TYPE_P (op2_type)) - { - if (!JNUMERIC_TYPE_P (op1_type)) - ERROR_CANT_CONVERT_TO_NUMERIC (wfl_operator, node, op1_type); - if (!JNUMERIC_TYPE_P (op2_type) && (op1_type != op2_type)) - ERROR_CANT_CONVERT_TO_NUMERIC (wfl_operator, node, op2_type); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - break; - } - prom_type = binary_numeric_promotion (op1_type, op2_type, &op1, &op2); - - /* Detect integral division by zero */ - if ((code == RDIV_EXPR || code == TRUNC_MOD_EXPR) - && TREE_CODE (prom_type) == INTEGER_TYPE - && (op2 == integer_zero_node || op2 == long_zero_node || - (TREE_CODE (op2) == INTEGER_CST && - ! TREE_INT_CST_LOW (op2) && ! TREE_INT_CST_HIGH (op2)))) - { - parse_warning_context - (wfl_operator, - "Evaluating this expression will result in an arithmetic exception being thrown"); - TREE_CONSTANT (node) = 0; - TREE_INVARIANT (node) = 0; - } - - /* Change the division operator if necessary */ - if (code == RDIV_EXPR && TREE_CODE (prom_type) == INTEGER_TYPE) - TREE_SET_CODE (node, TRUNC_DIV_EXPR); - - /* Before divisions as is disappear, try to simplify and bail if - applicable, otherwise we won't perform even simple - simplifications like (1-1)/3. We can't do that with floating - point number, folds can't handle them at this stage. */ - if (code == RDIV_EXPR && TREE_CONSTANT (op1) && TREE_CONSTANT (op2) - && JINTEGRAL_TYPE_P (op1) && JINTEGRAL_TYPE_P (op2)) - { - TREE_TYPE (node) = prom_type; - node = fold (node); - if (TREE_CODE (node) != code) - return node; - } - - if (TREE_CODE (prom_type) == INTEGER_TYPE - && flag_use_divide_subroutine - && ! flag_emit_class_files - && (code == RDIV_EXPR || code == TRUNC_MOD_EXPR)) - return build_java_soft_divmod (TREE_CODE (node), prom_type, op1, op2); - - /* This one is more complicated. FLOATs are processed by a - function call to soft_fmod. Duplicate the value of the - COMPOUND_ASSIGN_P flag. */ - if (code == TRUNC_MOD_EXPR) - { - tree mod = build_java_binop (TRUNC_MOD_EXPR, prom_type, op1, op2); - COMPOUND_ASSIGN_P (mod) = COMPOUND_ASSIGN_P (node); - return mod; - } - break; - - /* 15.17 Additive Operators */ - case PLUS_EXPR: /* 15.17.1 String Concatenation Operator + */ - - /* Operation is valid if either one argument is a string - constant, a String object or a StringBuffer crafted for the - purpose of the a previous usage of the String concatenation - operator */ - - if (TREE_CODE (op1) == STRING_CST - || TREE_CODE (op2) == STRING_CST - || JSTRING_TYPE_P (op1_type) - || JSTRING_TYPE_P (op2_type) - || IS_CRAFTED_STRING_BUFFER_P (op1) - || IS_CRAFTED_STRING_BUFFER_P (op2)) - return build_string_concatenation (op1, op2); - - case MINUS_EXPR: /* 15.17.2 Additive Operators (+ and -) for - Numeric Types */ - if (!JNUMERIC_TYPE_P (op1_type) || !JNUMERIC_TYPE_P (op2_type)) - { - if (!JNUMERIC_TYPE_P (op1_type)) - ERROR_CANT_CONVERT_TO_NUMERIC (wfl_operator, node, op1_type); - if (!JNUMERIC_TYPE_P (op2_type) && (op1_type != op2_type)) - ERROR_CANT_CONVERT_TO_NUMERIC (wfl_operator, node, op2_type); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - break; - } - prom_type = binary_numeric_promotion (op1_type, op2_type, &op1, &op2); - break; - - /* 15.18 Shift Operators */ - case LSHIFT_EXPR: - case RSHIFT_EXPR: - case URSHIFT_EXPR: - if (!JINTEGRAL_TYPE_P (op1_type) || !JINTEGRAL_TYPE_P (op2_type)) - { - if (!JINTEGRAL_TYPE_P (op1_type)) - ERROR_CAST_NEEDED_TO_INTEGRAL (wfl_operator, node, op1_type); - else - { - if (JNUMERIC_TYPE_P (op2_type)) - parse_error_context (wfl_operator, - "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral", - operator_string (node), - lang_printable_name (op2_type, 0)); - else - parse_error_context (wfl_operator, - "Incompatible type for %qs. Can't convert shift distance from %qs to integral", - operator_string (node), - lang_printable_name (op2_type, 0)); - } - TREE_TYPE (node) = error_mark_node; - error_found = 1; - break; - } - - /* Unary numeric promotion (5.6.1) is performed on each operand - separately */ - op1 = do_unary_numeric_promotion (op1); - op2 = do_unary_numeric_promotion (op2); - - /* If the right hand side is of type `long', first cast it to - `int'. */ - if (TREE_TYPE (op2) == long_type_node) - op2 = build1 (CONVERT_EXPR, int_type_node, op2); - - /* The type of the shift expression is the type of the promoted - type of the left-hand operand */ - prom_type = TREE_TYPE (op1); - - /* Shift int only up to 0x1f and long up to 0x3f */ - if (prom_type == int_type_node) - op2 = fold_build2 (BIT_AND_EXPR, int_type_node, op2, - build_int_cst (NULL_TREE, 0x1f)); - else - op2 = fold_build2 (BIT_AND_EXPR, int_type_node, op2, - build_int_cst (NULL_TREE, 0x3f)); - - /* The >>> operator is a >> operating on unsigned quantities */ - if (code == URSHIFT_EXPR && (folding || ! flag_emit_class_files)) - { - tree to_return; - tree utype = java_unsigned_type (prom_type); - op1 = convert (utype, op1); - - to_return = fold_build2 (RSHIFT_EXPR, utype, op1, op2); - to_return = convert (prom_type, to_return); - /* Copy the original value of the COMPOUND_ASSIGN_P flag */ - COMPOUND_ASSIGN_P (to_return) = COMPOUND_ASSIGN_P (node); - TREE_SIDE_EFFECTS (to_return) - = TREE_SIDE_EFFECTS (op1) | TREE_SIDE_EFFECTS (op2); - return to_return; - } - break; - - /* 15.19.1 Type Comparison Operator instanceof */ - case INSTANCEOF_EXPR: - - TREE_TYPE (node) = boolean_type_node; - - /* OP1_TYPE might be NULL when OP1 is a string constant. */ - if ((cn = patch_string (op1))) - { - op1 = cn; - op1_type = TREE_TYPE (op1); - } - if (op1_type == NULL_TREE) - abort (); - - if (!(op2_type = resolve_type_during_patch (op2))) - return error_mark_node; - - /* The first operand must be a reference type or the null type */ - if (!JREFERENCE_TYPE_P (op1_type) && op1 != null_pointer_node) - error_found = 1; /* Error reported further below */ - - /* The second operand must be a reference type */ - if (!JREFERENCE_TYPE_P (op2_type)) - { - SET_WFL_OPERATOR (wfl_operator, node, wfl_op2); - parse_error_context - (wfl_operator, "Invalid argument %qs for %", - lang_printable_name (op2_type, 0)); - error_found = 1; - } - - if (!error_found && valid_ref_assignconv_cast_p (op1_type, op2_type, 1)) - { - /* If the first operand is null, the result is always false */ - if (op1 == null_pointer_node) - return boolean_false_node; - else if (flag_emit_class_files) - { - TREE_OPERAND (node, 1) = op2_type; - TREE_SIDE_EFFECTS (node) = TREE_SIDE_EFFECTS (op1); - return node; - } - /* Otherwise we have to invoke instance of to figure it out */ - else - return build_instanceof (op1, op2_type); - } - /* There is no way the expression operand can be an instance of - the type operand. This is a compile time error. */ - else - { - char *t1 = xstrdup (lang_printable_name (op1_type, 0)); - SET_WFL_OPERATOR (wfl_operator, node, wfl_op1); - parse_error_context - (wfl_operator, "Impossible for %qs to be instance of %qs", - t1, lang_printable_name (op2_type, 0)); - free (t1); - error_found = 1; - } - - break; - - /* 15.21 Bitwise and Logical Operators */ - case BIT_AND_EXPR: - case BIT_XOR_EXPR: - case BIT_IOR_EXPR: - if (JINTEGRAL_TYPE_P (op1_type) && JINTEGRAL_TYPE_P (op2_type)) - /* Binary numeric promotion is performed on both operand and the - expression retain that type */ - prom_type = binary_numeric_promotion (op1_type, op2_type, &op1, &op2); - - else if (TREE_CODE (op1_type) == BOOLEAN_TYPE - && TREE_CODE (op1_type) == BOOLEAN_TYPE) - /* The type of the bitwise operator expression is BOOLEAN */ - prom_type = boolean_type_node; - else - { - if (!JINTEGRAL_TYPE_P (op1_type)) - ERROR_CAST_NEEDED_TO_INTEGRAL (wfl_operator, node, op1_type); - if (!JINTEGRAL_TYPE_P (op2_type) && (op1_type != op2_type)) - ERROR_CAST_NEEDED_TO_INTEGRAL (wfl_operator, node, op2_type); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - /* Insert a break here if adding thing before the switch's - break for this case */ - } - break; - - /* 15.22 Conditional-And Operator */ - case TRUTH_ANDIF_EXPR: - /* 15.23 Conditional-Or Operator */ - case TRUTH_ORIF_EXPR: - /* Operands must be of BOOLEAN type */ - if (TREE_CODE (op1_type) != BOOLEAN_TYPE || - TREE_CODE (op2_type) != BOOLEAN_TYPE) - { - if (TREE_CODE (op1_type) != BOOLEAN_TYPE) - ERROR_CANT_CONVERT_TO_BOOLEAN (wfl_operator, node, op1_type); - if (TREE_CODE (op2_type) != BOOLEAN_TYPE && (op1_type != op2_type)) - ERROR_CANT_CONVERT_TO_BOOLEAN (wfl_operator, node, op2_type); - TREE_TYPE (node) = boolean_type_node; - error_found = 1; - break; - } - else if (integer_zerop (op1)) - { - return code == TRUTH_ANDIF_EXPR ? op1 : op2; - } - else if (integer_onep (op1)) - { - return code == TRUTH_ANDIF_EXPR ? op2 : op1; - } - /* The type of the conditional operators is BOOLEAN */ - prom_type = boolean_type_node; - break; - - /* 15.19.1 Numerical Comparison Operators <, <=, >, >= */ - case LT_EXPR: - case GT_EXPR: - case LE_EXPR: - case GE_EXPR: - /* The type of each of the operands must be a primitive numeric - type */ - if (!JNUMERIC_TYPE_P (op1_type) || ! JNUMERIC_TYPE_P (op2_type)) - { - if (!JNUMERIC_TYPE_P (op1_type)) - ERROR_CANT_CONVERT_TO_NUMERIC (wfl_operator, node, op1_type); - if (!JNUMERIC_TYPE_P (op2_type) && (op1_type != op2_type)) - ERROR_CANT_CONVERT_TO_NUMERIC (wfl_operator, node, op2_type); - TREE_TYPE (node) = boolean_type_node; - error_found = 1; - break; - } - /* Binary numeric promotion is performed on the operands */ - binary_numeric_promotion (op1_type, op2_type, &op1, &op2); - /* The type of the relation expression is always BOOLEAN */ - prom_type = boolean_type_node; - break; - - /* 15.20 Equality Operator */ - case EQ_EXPR: - case NE_EXPR: - /* It's time for us to patch the strings. */ - if ((cn = patch_string (op1))) - { - op1 = cn; - op1_type = TREE_TYPE (op1); - } - if ((cn = patch_string (op2))) - { - op2 = cn; - op2_type = TREE_TYPE (op2); - } - - /* 15.20.1 Numerical Equality Operators == and != */ - /* Binary numeric promotion is performed on the operands */ - if (JNUMERIC_TYPE_P (op1_type) && JNUMERIC_TYPE_P (op2_type)) - binary_numeric_promotion (op1_type, op2_type, &op1, &op2); - - /* 15.20.2 Boolean Equality Operators == and != */ - else if (TREE_CODE (op1_type) == BOOLEAN_TYPE && - TREE_CODE (op2_type) == BOOLEAN_TYPE) - ; /* Nothing to do here */ - - /* 15.20.3 Reference Equality Operators == and != */ - /* Types have to be either references or the null type. If - they're references, it must be possible to convert either - type to the other by casting conversion. */ - else if ((op1 == null_pointer_node && op2 == null_pointer_node) - || (op1 == null_pointer_node && JREFERENCE_TYPE_P (op2_type)) - || (JREFERENCE_TYPE_P (op1_type) && op2 == null_pointer_node) - || (JREFERENCE_TYPE_P (op1_type) && JREFERENCE_TYPE_P (op2_type) - && (valid_ref_assignconv_cast_p (op1_type, op2_type, 1) - || valid_ref_assignconv_cast_p (op2_type, - op1_type, 1)))) - ; /* Nothing to do here */ - - /* Else we have an error figure what can't be converted into - what and report the error */ - else - { - char *t1; - t1 = xstrdup (lang_printable_name (op1_type, 0)); - parse_error_context - (wfl_operator, - "Incompatible type for %qs. Can't convert %qs to %qs", - operator_string (node), t1, - lang_printable_name (op2_type, 0)); - free (t1); - TREE_TYPE (node) = boolean_type_node; - error_found = 1; - break; - } - prom_type = boolean_type_node; - break; - default: - abort (); - } - - if (error_found) - return error_mark_node; - - TREE_OPERAND (node, 0) = op1; - TREE_OPERAND (node, 1) = op2; - TREE_TYPE (node) = prom_type; - TREE_SIDE_EFFECTS (node) = TREE_SIDE_EFFECTS (op1) | TREE_SIDE_EFFECTS (op2); - - /* fold does not respect side-effect order as required for Java but not C. - * Also, it sometimes create SAVE_EXPRs which are bad when emitting - * bytecode. - */ - if (flag_emit_class_files ? (TREE_CONSTANT (op1) && TREE_CONSTANT (op2)) - : ! TREE_SIDE_EFFECTS (node)) - node = fold (node); - return node; -} - -/* Concatenate the STRING_CST CSTE and STRING. When AFTER is a non - zero value, the value of CSTE comes after the valude of STRING */ - -static tree -do_merge_string_cste (tree cste, const char *string, int string_len, int after) -{ - const char *old = TREE_STRING_POINTER (cste); - int old_len = TREE_STRING_LENGTH (cste); - int len = old_len + string_len; - char *new = alloca (len+1); - - if (after) - { - memcpy (new, string, string_len); - memcpy (&new [string_len], old, old_len); - } - else - { - memcpy (new, old, old_len); - memcpy (&new [old_len], string, string_len); - } - new [len] = '\0'; - return build_string (len, new); -} - -/* Tries to merge OP1 (a STRING_CST) and OP2 (if suitable). Return a - new STRING_CST on success, NULL_TREE on failure. */ - -static tree -merge_string_cste (tree op1, tree op2, int after) -{ - /* Handle two string constants right away. */ - if (TREE_CODE (op2) == STRING_CST) - return do_merge_string_cste (op1, TREE_STRING_POINTER (op2), - TREE_STRING_LENGTH (op2), after); - - /* Reasonable integer constant can be treated right away. */ - if (TREE_CODE (op2) == INTEGER_CST && !TREE_CONSTANT_OVERFLOW (op2)) - { - static const char *const boolean_true = "true"; - static const char *const boolean_false = "false"; - static const char *const null_pointer = "null"; - char ch[4]; - const char *string; - - if (op2 == boolean_true_node) - string = boolean_true; - else if (op2 == boolean_false_node) - string = boolean_false; - else if (op2 == null_pointer_node - || (integer_zerop (op2) - && TREE_CODE (TREE_TYPE (op2)) == POINTER_TYPE)) - /* FIXME: null is not a compile-time constant, so it is only safe to - merge if the overall expression is non-constant. However, this - code always merges without checking the overall expression. */ - string = null_pointer; - else if (TREE_TYPE (op2) == char_type_node) - { - /* Convert the character into UTF-8. */ - unsigned int c = (unsigned int) TREE_INT_CST_LOW (op2); - unsigned char *p = (unsigned char *) ch; - if (0x01 <= c && c <= 0x7f) - *p++ = (unsigned char) c; - else if (c < 0x7ff) - { - *p++ = (unsigned char) (c >> 6 | 0xc0); - *p++ = (unsigned char) ((c & 0x3f) | 0x80); - } - else - { - *p++ = (unsigned char) (c >> 12 | 0xe0); - *p++ = (unsigned char) (((c >> 6) & 0x3f) | 0x80); - *p++ = (unsigned char) ((c & 0x3f) | 0x80); - } - *p = '\0'; - - string = ch; - } - else - string = string_convert_int_cst (op2); - - return do_merge_string_cste (op1, string, strlen (string), after); - } - return NULL_TREE; -} - -/* Tries to statically concatenate OP1 and OP2 if possible. Either one - has to be a STRING_CST and the other part must be a STRING_CST or a - INTEGRAL constant. Return a new STRING_CST if the operation - succeed, NULL_TREE otherwise. - - If the case we want to optimize for space, we might want to return - NULL_TREE for each invocation of this routine. FIXME */ - -static tree -string_constant_concatenation (tree op1, tree op2) -{ - if (TREE_CODE (op1) == STRING_CST || (TREE_CODE (op2) == STRING_CST)) - { - tree string, rest; - int invert; - - string = (TREE_CODE (op1) == STRING_CST ? op1 : op2); - rest = (string == op1 ? op2 : op1); - invert = (string == op1 ? 0 : 1 ); - - /* Walk REST, only if it looks reasonable */ - if (TREE_CODE (rest) != STRING_CST - && !IS_CRAFTED_STRING_BUFFER_P (rest) - && !JSTRING_TYPE_P (TREE_TYPE (rest)) - && TREE_CODE (rest) == EXPR_WITH_FILE_LOCATION) - { - rest = java_complete_tree (rest); - if (rest == error_mark_node) - return error_mark_node; - rest = fold (rest); - } - return merge_string_cste (string, rest, invert); - } - return NULL_TREE; -} - -/* Implement the `+' operator. Does static optimization if possible, - otherwise create (if necessary) and append elements to a - StringBuffer. The StringBuffer will be carried around until it is - used for a function call or an assignment. Then toString() will be - called on it to turn it into a String object. */ - -static tree -build_string_concatenation (tree op1, tree op2) -{ - tree result; - int side_effects = TREE_SIDE_EFFECTS (op1) | TREE_SIDE_EFFECTS (op2); - - /* Try to do some static optimization */ - if ((result = string_constant_concatenation (op1, op2))) - return result; - - /* Discard empty strings on either side of the expression */ - if (TREE_CODE (op1) == STRING_CST && TREE_STRING_LENGTH (op1) == 0) - { - op1 = op2; - op2 = NULL_TREE; - } - else if (TREE_CODE (op2) == STRING_CST && TREE_STRING_LENGTH (op2) == 0) - op2 = NULL_TREE; - - /* If operands are string constant, turn then into object references */ - if (TREE_CODE (op1) == STRING_CST) - op1 = patch_string_cst (op1); - if (op2 && TREE_CODE (op2) == STRING_CST) - op2 = patch_string_cst (op2); - - /* If either one of the constant is null and the other non null - operand is a String constant, return it. */ - if ((TREE_CODE (op1) == STRING_CST) && !op2) - return op1; - - /* If OP1 isn't already a StringBuffer, create and - initialize a new one */ - if (!IS_CRAFTED_STRING_BUFFER_P (op1)) - { - /* Two solutions here: - 1) OP1 is a constant string reference, we call new StringBuffer(OP1) - 2) OP1 is something else, we call new StringBuffer().append(OP1). */ - if (TREE_CONSTANT (op1) && JSTRING_TYPE_P (TREE_TYPE (op1))) - op1 = BUILD_STRING_BUFFER (op1); - else - { - tree aNew = BUILD_STRING_BUFFER (NULL_TREE); - op1 = make_qualified_primary (aNew, BUILD_APPEND (op1), 0); - } - } - - if (op2) - { - /* OP1 is no longer the last node holding a crafted StringBuffer */ - IS_CRAFTED_STRING_BUFFER_P (op1) = 0; - /* Create a node for `{new...,xxx}.append (op2)' */ - op1 = make_qualified_primary (op1, BUILD_APPEND (op2), 0); - } - - /* Mark the last node holding a crafted StringBuffer */ - IS_CRAFTED_STRING_BUFFER_P (op1) = 1; - - TREE_SIDE_EFFECTS (op1) = side_effects; - return op1; -} - -/* Patch the string node NODE. NODE can be a STRING_CST of a crafted - StringBuffer. If no string were found to be patched, return - NULL. */ - -static tree -patch_string (tree node) -{ - if (node == error_mark_node) - return error_mark_node; - if (TREE_CODE (node) == STRING_CST) - return patch_string_cst (node); - else if (IS_CRAFTED_STRING_BUFFER_P (node)) - { - int saved = ctxp->explicit_constructor_p; - tree invoke = build_method_invocation (wfl_to_string, NULL_TREE); - tree ret; - /* Temporary disable forbid the use of `this'. */ - ctxp->explicit_constructor_p = 0; - ret = java_complete_tree (make_qualified_primary (node, invoke, 0)); - /* String concatenation arguments must be evaluated in order too. */ - ret = force_evaluation_order (ret); - /* Restore it at its previous value */ - ctxp->explicit_constructor_p = saved; - return ret; - } - return NULL_TREE; -} - -/* Build the internal representation of a string constant. */ - -static tree -patch_string_cst (tree node) -{ - int location; - if (! flag_emit_class_files) - { - node = get_identifier (TREE_STRING_POINTER (node)); - location = alloc_name_constant (CONSTANT_String, node); - node = build_ref_from_constant_pool (location); - } - TREE_CONSTANT (node) = 1; - TREE_INVARIANT (node) = 1; - - /* ??? Guessing that the class file code can't handle casts. */ - if (! flag_emit_class_files) - node = convert (string_ptr_type_node, node); - else - TREE_TYPE (node) = string_ptr_type_node; - - return node; -} - -/* Build an incomplete unary operator expression. */ - -static tree -build_unaryop (int op_token, int op_location, tree op1) -{ - enum tree_code op; - tree unaryop; - switch (op_token) - { - case PLUS_TK: op = UNARY_PLUS_EXPR; break; - case MINUS_TK: op = NEGATE_EXPR; break; - case NEG_TK: op = TRUTH_NOT_EXPR; break; - case NOT_TK: op = BIT_NOT_EXPR; break; - default: abort (); - } - - unaryop = build1 (op, NULL_TREE, op1); - TREE_SIDE_EFFECTS (unaryop) = 1; - /* Store the location of the operator, for better error report. The - string of the operator will be rebuild based on the OP value. */ - EXPR_WFL_LINECOL (unaryop) = op_location; - return unaryop; -} - -/* Special case for the ++/-- operators, since they require an extra - argument to build, which is set to NULL and patched - later. IS_POST_P is 1 if the operator, 0 otherwise. */ - -static tree -build_incdec (int op_token, int op_location, tree op1, int is_post_p) -{ - static const enum tree_code lookup [2][2] = - { - { PREDECREMENT_EXPR, PREINCREMENT_EXPR, }, - { POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, }, - }; - tree node = build2 (lookup [is_post_p][(op_token - DECR_TK)], - NULL_TREE, op1, NULL_TREE); - TREE_SIDE_EFFECTS (node) = 1; - /* Store the location of the operator, for better error report. The - string of the operator will be rebuild based on the OP value. */ - EXPR_WFL_LINECOL (node) = op_location; - - /* Report an error if the operand is a constant. */ - if (TREE_CONSTANT (op1)) { - parse_error_context (node, "%qs cannot be used with a constant", - operator_string (node)); - return error_mark_node; - } - - return node; -} - -/* Build an incomplete cast operator, based on the use of the - CONVERT_EXPR. Note that TREE_TYPE of the constructed node is - set. java_complete_tree is trained to walk a CONVERT_EXPR even - though its type is already set. */ - -static tree -build_cast (int location, tree type, tree exp) -{ - tree node = build1 (CONVERT_EXPR, type, exp); - EXPR_WFL_LINECOL (node) = location; - return node; -} - -/* Build an incomplete class reference operator. */ -static tree -build_incomplete_class_ref (int location, tree class_name) -{ - tree node = build1 (CLASS_LITERAL, NULL_TREE, class_name); - tree class_decl = GET_CPC (); - tree this_class = TREE_TYPE (class_decl); - - /* Generate the synthetic static method `class$'. (Previously we - deferred this, causing different method tables to be emitted - for native code and bytecode.) */ - if (!TYPE_DOT_CLASS (this_class) - && !JPRIMITIVE_TYPE_P (class_name) - && !(TREE_CODE (class_name) == VOID_TYPE)) - { - tree cpc_list = GET_CPC_LIST(); - tree cpc = cpc_list; - tree target_class; - - /* For inner classes, add a 'class$' method to their outermost - context, creating it if necessary. */ - - while (GET_NEXT_ENCLOSING_CPC(cpc)) - cpc = GET_NEXT_ENCLOSING_CPC(cpc); - class_decl = TREE_VALUE (cpc); - - target_class = TREE_TYPE (class_decl); - - if (CLASS_INTERFACE (TYPE_NAME (target_class))) - { - /* For interfaces, adding a static 'class$' method directly - is illegal. So create an inner class to contain the new - method. Empirically this matches the behavior of javac. */ - tree t, inner; - /* We want the generated inner class inside the outermost class. */ - GET_CPC_LIST() = cpc; - t = build_wfl_node (DECL_NAME (TYPE_NAME (object_type_node))); - inner = create_anonymous_class (t); - target_class = TREE_TYPE (inner); - end_class_declaration (1); - GET_CPC_LIST() = cpc_list; - } - - if (TYPE_DOT_CLASS (target_class) == NULL_TREE) - build_dot_class_method (target_class); - - if (this_class != target_class) - TYPE_DOT_CLASS (this_class) = TYPE_DOT_CLASS (target_class); - } - - EXPR_WFL_LINECOL (node) = location; - return node; -} - -/* Complete an incomplete class reference operator. */ -static tree -patch_incomplete_class_ref (tree node) -{ - tree type = TREE_OPERAND (node, 0); - tree ref_type; - - if (!(ref_type = resolve_type_during_patch (type))) - return error_mark_node; - - /* If we're not emitting class files and we know ref_type is a - compiled class, build a direct reference. */ - if ((! flag_emit_class_files && is_compiled_class (ref_type)) - || JPRIMITIVE_TYPE_P (ref_type) - || TREE_CODE (ref_type) == VOID_TYPE) - { - tree dot = build_class_ref (ref_type); - /* A class referenced by `foo.class' is initialized. */ - if (!flag_emit_class_files) - dot = build_class_init (ref_type, dot); - return java_complete_tree (dot); - } - - /* If we're emitting class files and we have to deal with non - primitive types, we invoke the synthetic static method `class$'. */ - ref_type = build_dot_class_method_invocation (current_class, ref_type); - return java_complete_tree (ref_type); -} - -/* 15.14 Unary operators. We return error_mark_node in case of error, - but preserve the type of NODE if the type is fixed. */ - -static tree -patch_unaryop (tree node, tree wfl_op) -{ - tree op = TREE_OPERAND (node, 0); - tree op_type = TREE_TYPE (op); - tree prom_type = NULL_TREE, value, decl; - int nested_field_flag = 0; - int code = TREE_CODE (node); - int error_found = 0; - - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - switch (code) - { - /* 15.13.2 Postfix Increment Operator ++ */ - case POSTINCREMENT_EXPR: - /* 15.13.3 Postfix Increment Operator -- */ - case POSTDECREMENT_EXPR: - /* 15.14.1 Prefix Increment Operator ++ */ - case PREINCREMENT_EXPR: - /* 15.14.2 Prefix Decrement Operator -- */ - case PREDECREMENT_EXPR: - op = decl = extract_field_decl (op); - nested_field_flag - = nested_field_expanded_access_p (op, NULL, NULL, NULL); - /* We might be trying to change an outer field accessed using - access method. */ - if (nested_field_flag) - { - /* Retrieve the decl of the field we're trying to access. We - do that by first retrieving the function we would call to - access the field. It has been already verified that this - field isn't final */ - if (flag_emit_class_files) - decl = TREE_OPERAND (op, 0); - else - decl = TREE_OPERAND (TREE_OPERAND (TREE_OPERAND (op, 0), 0), 0); - decl = DECL_FUNCTION_ACCESS_DECL (decl); - } - /* We really should have a JAVA_ARRAY_EXPR to avoid this */ - else if (!JDECL_P (decl) - && TREE_CODE (decl) != COMPONENT_REF - && !(flag_emit_class_files && TREE_CODE (decl) == ARRAY_REF) - && TREE_CODE (decl) != INDIRECT_REF - && !(TREE_CODE (decl) == COMPOUND_EXPR - && TREE_OPERAND (decl, 1) - && (TREE_CODE (TREE_OPERAND (decl, 1)) == INDIRECT_REF))) - { - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - - /* From now on, we know that op is a variable and that it has a - valid wfl. We use wfl_op to locate errors related to the - ++/-- operand. */ - if (!JNUMERIC_TYPE_P (op_type)) - { - parse_error_context - (wfl_op, "Invalid argument type %qs to %qs", - lang_printable_name (op_type, 0), operator_string (node)); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - else - { - /* Before the addition, binary numeric promotion is performed on - both operands, if really necessary */ - if (JINTEGRAL_TYPE_P (op_type)) - { - value = build_int_cst (op_type, 1); - TREE_TYPE (node) = op_type; - } - else - { - value = build_int_cst (NULL_TREE, 1); - TREE_TYPE (node) = - binary_numeric_promotion (op_type, - TREE_TYPE (value), &op, &value); - } - - /* We remember we might be accessing an outer field */ - if (nested_field_flag) - { - /* We re-generate an access to the field */ - value = build2 (PLUS_EXPR, TREE_TYPE (op), - build_nested_field_access (wfl_op, decl), value); - - /* And we patch the original access$() into a write - with plus_op as a rhs */ - return nested_field_access_fix (node, op, value); - } - - /* And write back into the node. */ - TREE_OPERAND (node, 0) = op; - TREE_OPERAND (node, 1) = value; - /* Convert the overall back into its original type, if - necessary, and return */ - if (JINTEGRAL_TYPE_P (op_type)) - return fold (node); - else - return fold (convert (op_type, node)); - } - break; - - /* 15.14.3 Unary Plus Operator + */ - case UNARY_PLUS_EXPR: - /* 15.14.4 Unary Minus Operator - */ - case NEGATE_EXPR: - if (!JNUMERIC_TYPE_P (op_type)) - { - ERROR_CANT_CONVERT_TO_NUMERIC (wfl_operator, node, op_type); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - /* Unary numeric promotion is performed on operand */ - else - { - op = do_unary_numeric_promotion (op); - prom_type = TREE_TYPE (op); - if (code == UNARY_PLUS_EXPR) - return fold (op); - } - break; - - /* 15.14.5 Bitwise Complement Operator ~ */ - case BIT_NOT_EXPR: - if (!JINTEGRAL_TYPE_P (op_type)) - { - ERROR_CAST_NEEDED_TO_INTEGRAL (wfl_operator, node, op_type); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - else - { - op = do_unary_numeric_promotion (op); - prom_type = TREE_TYPE (op); - } - break; - - /* 15.14.6 Logical Complement Operator ! */ - case TRUTH_NOT_EXPR: - if (TREE_CODE (op_type) != BOOLEAN_TYPE) - { - ERROR_CANT_CONVERT_TO_BOOLEAN (wfl_operator, node, op_type); - /* But the type is known. We will report an error if further - attempt of a assignment is made with this rhs */ - TREE_TYPE (node) = boolean_type_node; - error_found = 1; - } - else - prom_type = boolean_type_node; - break; - - /* 15.15 Cast Expression */ - case CONVERT_EXPR: - value = patch_cast (node, wfl_operator); - if (value == error_mark_node) - { - /* If this cast is part of an assignment, we tell the code - that deals with it not to complain about a mismatch, - because things have been cast, anyways */ - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - else - { - value = fold (value); - return value; - } - break; - - case NOP_EXPR: - /* This can only happen when the type is already known. */ - gcc_assert (TREE_TYPE (node) != NULL_TREE); - prom_type = TREE_TYPE (node); - break; - } - - if (error_found) - return error_mark_node; - - /* There are cases where node has been replaced by something else - and we don't end up returning here: UNARY_PLUS_EXPR, - CONVERT_EXPR, {POST,PRE}{INCR,DECR}EMENT_EXPR. */ - TREE_OPERAND (node, 0) = fold (op); - TREE_TYPE (node) = prom_type; - TREE_SIDE_EFFECTS (node) = TREE_SIDE_EFFECTS (op); - return fold (node); -} - -/* Generic type resolution that sometimes takes place during node - patching. Returned the resolved type or generate an error - message. Return the resolved type or NULL_TREE. */ - -static tree -resolve_type_during_patch (tree type) -{ - if (unresolved_type_p (type, NULL)) - { - tree type_decl = resolve_and_layout (EXPR_WFL_NODE (type), type); - if (!type_decl) - { - parse_error_context (type, - "Class %qs not found in type declaration", - IDENTIFIER_POINTER (EXPR_WFL_NODE (type))); - return NULL_TREE; - } - - check_deprecation (type, type_decl); - - return TREE_TYPE (type_decl); - } - return type; -} - -/* 5.5 Casting Conversion. error_mark_node is returned if an error is - found. Otherwise NODE or something meant to replace it is returned. */ - -static tree -patch_cast (tree node, tree wfl_op) -{ - tree op = TREE_OPERAND (node, 0); - tree cast_type = TREE_TYPE (node); - tree patched, op_type; - char *t1; - - /* Some string patching might be necessary at this stage */ - if ((patched = patch_string (op))) - TREE_OPERAND (node, 0) = op = patched; - op_type = TREE_TYPE (op); - - /* First resolve OP_TYPE if unresolved */ - if (!(cast_type = resolve_type_during_patch (cast_type))) - return error_mark_node; - - /* Check on cast that are proven correct at compile time */ - if (JNUMERIC_TYPE_P (cast_type) && JNUMERIC_TYPE_P (op_type)) - { - /* Same type */ - if (cast_type == op_type) - return node; - - /* A narrowing conversion from a floating-point number to an - integral type requires special handling (5.1.3). */ - if (JFLOAT_TYPE_P (op_type) && JINTEGRAL_TYPE_P (cast_type)) - if (cast_type != long_type_node) - op = convert (integer_type_node, op); - - /* Try widening/narrowing conversion. Potentially, things need - to be worked out in gcc so we implement the extreme cases - correctly. fold_convert() needs to be fixed. */ - return convert (cast_type, op); - } - - /* It's also valid to cast a boolean into a boolean */ - if (op_type == boolean_type_node && cast_type == boolean_type_node) - return node; - - /* null can be casted to references */ - if (op == null_pointer_node && JREFERENCE_TYPE_P (cast_type)) - return build_null_of_type (cast_type); - - /* The remaining legal casts involve conversion between reference - types. Check for their compile time correctness. */ - if (JREFERENCE_TYPE_P (op_type) && JREFERENCE_TYPE_P (cast_type) - && valid_ref_assignconv_cast_p (op_type, cast_type, 1)) - { - TREE_TYPE (node) = promote_type (cast_type); - /* Now, the case can be determined correct at compile time if - OP_TYPE can be converted into CAST_TYPE by assignment - conversion (5.2) */ - - if (valid_ref_assignconv_cast_p (op_type, cast_type, 0)) - { - TREE_SET_CODE (node, NOP_EXPR); - return node; - } - - if (flag_emit_class_files) - { - TREE_SET_CODE (node, CONVERT_EXPR); - return node; - } - - /* The cast requires a run-time check */ - return build3 (CALL_EXPR, promote_type (cast_type), - build_address_of (soft_checkcast_node), - tree_cons (NULL_TREE, build_class_ref (cast_type), - build_tree_list (NULL_TREE, op)), - NULL_TREE); - } - - /* Any other casts are proven incorrect at compile time */ - t1 = xstrdup (lang_printable_name (op_type, 0)); - parse_error_context (wfl_op, "Invalid cast from %qs to %qs", - t1, lang_printable_name (cast_type, 0)); - free (t1); - return error_mark_node; -} - -/* Build a null constant and give it the type TYPE. */ - -static tree -build_null_of_type (tree type) -{ - tree node = build_int_cst (promote_type (type), 0); - return node; -} - -/* Build an ARRAY_REF incomplete tree node. Note that operand 1 isn't - a list of indices. */ -static tree -build_array_ref (int location, tree array, tree index) -{ - tree node = build4 (ARRAY_REF, NULL_TREE, array, index, - NULL_TREE, NULL_TREE); - EXPR_WFL_LINECOL (node) = location; - return node; -} - -/* 15.12 Array Access Expression */ - -static tree -patch_array_ref (tree node) -{ - tree array = TREE_OPERAND (node, 0); - tree array_type = TREE_TYPE (array); - tree index = TREE_OPERAND (node, 1); - tree index_type = TREE_TYPE (index); - int error_found = 0; - - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - if (TREE_CODE (array_type) == POINTER_TYPE) - array_type = TREE_TYPE (array_type); - - /* The array reference must be an array */ - if (!TYPE_ARRAY_P (array_type)) - { - parse_error_context - (wfl_operator, - "%<[]%> can only be applied to arrays. It can't be applied to %qs", - lang_printable_name (array_type, 0)); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - - /* The array index undergoes unary numeric promotion. The promoted - type must be int */ - index = do_unary_numeric_promotion (index); - if (TREE_TYPE (index) != int_type_node) - { - if (valid_cast_to_p (index_type, int_type_node)) - parse_error_context (wfl_operator, - "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %", - lang_printable_name (index_type, 0)); - else - parse_error_context (wfl_operator, - "Incompatible type for %<[]%>. Can't convert %qs to %", - lang_printable_name (index_type, 0)); - TREE_TYPE (node) = error_mark_node; - error_found = 1; - } - - if (error_found) - return error_mark_node; - - array_type = TYPE_ARRAY_ELEMENT (array_type); - - if (flag_emit_class_files) - { - TREE_OPERAND (node, 0) = array; - TREE_OPERAND (node, 1) = index; - } - else - node = build_java_arrayaccess (array, array_type, index); - TREE_TYPE (node) = array_type; - return node; -} - -/* 15.9 Array Creation Expressions */ - -static tree -build_newarray_node (tree type, tree dims, int extra_dims) -{ - tree node = build3 (NEW_ARRAY_EXPR, NULL_TREE, type, - nreverse (dims), - build_int_cst (NULL_TREE, extra_dims)); - return node; -} - -static tree -patch_newarray (tree node) -{ - tree type = TREE_OPERAND (node, 0); - tree dims = TREE_OPERAND (node, 1); - tree cdim, array_type; - int error_found = 0; - int ndims = 0; - int xdims = TREE_INT_CST_LOW (TREE_OPERAND (node, 2)); - - /* Dimension types are verified. It's better for the types to be - verified in order. */ - for (cdim = dims, ndims = 0; cdim; cdim = TREE_CHAIN (cdim), ndims++ ) - { - int dim_error = 0; - tree dim = TREE_VALUE (cdim); - - /* Dim might have been saved during its evaluation */ - dim = (TREE_CODE (dim) == SAVE_EXPR ? TREE_OPERAND (dim, 0) : dim); - - /* The type of each specified dimension must be an integral type. */ - if (!JINTEGRAL_TYPE_P (TREE_TYPE (dim))) - dim_error = 1; - - /* Each expression undergoes an unary numeric promotion (5.6.1) and the - promoted type must be int. */ - else - { - dim = do_unary_numeric_promotion (dim); - if (TREE_TYPE (dim) != int_type_node) - dim_error = 1; - } - - /* Report errors on types here */ - if (dim_error) - { - parse_error_context - (TREE_PURPOSE (cdim), - "Incompatible type for dimension in array creation expression. %s convert %qs to %", - (valid_cast_to_p (TREE_TYPE (dim), int_type_node) ? - "Explicit cast needed to" : "Can't"), - lang_printable_name (TREE_TYPE (dim), 0)); - error_found = 1; - } - - TREE_PURPOSE (cdim) = NULL_TREE; - } - - /* Resolve array base type if unresolved */ - if (!(type = resolve_type_during_patch (type))) - error_found = 1; - - if (error_found) - { - /* We don't want further evaluation of this bogus array creation - operation */ - TREE_TYPE (node) = error_mark_node; - return error_mark_node; - } - - /* Set array_type to the actual (promoted) array type of the result. */ - if (TREE_CODE (type) == RECORD_TYPE) - type = build_pointer_type (type); - while (--xdims >= 0) - { - type = promote_type (build_java_array_type (type, -1)); - } - dims = nreverse (dims); - array_type = type; - for (cdim = dims; cdim; cdim = TREE_CHAIN (cdim)) - { - type = array_type; - array_type - = build_java_array_type (type, - TREE_CODE (cdim) == INTEGER_CST - ? (HOST_WIDE_INT) TREE_INT_CST_LOW (cdim) - : -1); - array_type = promote_type (array_type); - } - dims = nreverse (dims); - - /* The node is transformed into a function call. Things are done - differently according to the number of dimensions. If the number - of dimension is equal to 1, then the nature of the base type - (primitive or not) matters. */ - if (ndims == 1) - return build_new_array (type, TREE_VALUE (dims)); - - /* Can't reuse what's already written in expr.c because it uses the - JVM stack representation. Provide a build_multianewarray. FIXME */ - return build3 (CALL_EXPR, array_type, - build_address_of (soft_multianewarray_node), - tree_cons (NULL_TREE, - build_class_ref (TREE_TYPE (array_type)), - tree_cons (NULL_TREE, - build_int_cst (NULL_TREE, ndims), - dims)), - NULL_TREE); -} - -/* 10.6 Array initializer. */ - -/* Build a wfl for array element that don't have one, so we can - pin-point errors. */ - -static tree -maybe_build_array_element_wfl (tree node) -{ - if (TREE_CODE (node) != EXPR_WITH_FILE_LOCATION) - { - /* FIXME - old code used "prev_lc.line" and "elc.prev_col */ - return build_expr_wfl (NULL_TREE, -#ifdef USE_MAPPED_LOCATION - input_location -#else - ctxp->filename, - ctxp->lexer->token_start.line, - ctxp->lexer->token_start.col -#endif - ); - } - else - return NULL_TREE; -} - -/* Build a NEW_ARRAY_INIT that features a CONSTRUCTOR node. This makes - identification of initialized arrays easier to detect during walk - and expansion. */ - -static tree -build_new_array_init (int location, tree values) -{ - tree constructor = build_constructor_from_list (NULL_TREE, - nreverse (values)); - tree to_return = build1 (NEW_ARRAY_INIT, NULL_TREE, constructor); - EXPR_WFL_LINECOL (to_return) = location; - return to_return; -} - -/* Expand a NEW_ARRAY_INIT node. Return error_mark_node if an error - occurred. Otherwise return NODE after having set its type - appropriately. */ - -static tree -patch_new_array_init (tree type, tree node) -{ - int error_seen = 0; - tree element_type; - unsigned HOST_WIDE_INT length; - constructor_elt *current; - int all_constant = 1; - tree init = TREE_OPERAND (node, 0); - - if (TREE_CODE (type) != POINTER_TYPE || ! TYPE_ARRAY_P (TREE_TYPE (type))) - { - parse_error_context (node, - "Invalid array initializer for non-array type %qs", - lang_printable_name (type, 1)); - return error_mark_node; - } - type = TREE_TYPE (type); - element_type = TYPE_ARRAY_ELEMENT (type); - - for (length = 0; - VEC_iterate (constructor_elt, CONSTRUCTOR_ELTS (init), - length, current); - length++) - { - tree elt = current->value; - if (elt == NULL_TREE || TREE_CODE (elt) != NEW_ARRAY_INIT) - { - error_seen |= array_constructor_check_entry (element_type, current); - elt = current->value; - /* When compiling to native code, STRING_CST is converted to - INDIRECT_REF, but still with a TREE_CONSTANT flag. */ - if (! TREE_CONSTANT (elt) || TREE_CODE (elt) == INDIRECT_REF) - all_constant = 0; - } - else - { - current->value = patch_new_array_init (element_type, elt); - current->index = NULL_TREE; - all_constant = 0; - } - if (elt && TREE_CODE (elt) == TREE_LIST - && TREE_VALUE (elt) == error_mark_node) - error_seen = 1; - } - - if (error_seen) - return error_mark_node; - - /* Create a new type. We can't reuse the one we have here by - patching its dimension because it originally is of dimension -1 - hence reused by gcc. This would prevent triangular arrays. */ - type = build_java_array_type (element_type, length); - TREE_TYPE (init) = TREE_TYPE (TREE_CHAIN (TREE_CHAIN (TYPE_FIELDS (type)))); - TREE_TYPE (node) = promote_type (type); - TREE_CONSTANT (init) = all_constant; - TREE_INVARIANT (init) = all_constant; - TREE_CONSTANT (node) = all_constant; - TREE_INVARIANT (node) = all_constant; - return node; -} - -/* Verify that one entry of the initializer element list can be - assigned to the array base type. Report 1 if an error occurred, 0 - otherwise. */ - -static int -array_constructor_check_entry (tree type, constructor_elt *entry) -{ - char *array_type_string = NULL; /* For error reports */ - tree value, type_value, new_value, wfl_value, patched; - int error_seen = 0; - - new_value = NULL_TREE; - wfl_value = entry->value; - - value = java_complete_tree (entry->value); - /* patch_string return error_mark_node if arg is error_mark_node */ - if ((patched = patch_string (value))) - value = patched; - if (value == error_mark_node) - return 1; - - type_value = TREE_TYPE (value); - - /* At anytime, try_builtin_assignconv can report a warning on - constant overflow during narrowing. */ - SET_WFL_OPERATOR (wfl_operator, entry->index, wfl_value); - new_value = try_builtin_assignconv (wfl_operator, type, value); - if (!new_value && (new_value = try_reference_assignconv (type, value))) - type_value = promote_type (type); - - /* Check and report errors */ - if (!new_value) - { - const char *const msg = (!valid_cast_to_p (type_value, type) ? - "Can't" : "Explicit cast needed to"); - if (!array_type_string) - array_type_string = xstrdup (lang_printable_name (type, 1)); - parse_error_context - (wfl_operator, "Incompatible type for array. %s convert %qs to %qs", - msg, lang_printable_name (type_value, 1), array_type_string); - error_seen = 1; - } - - if (new_value) - entry->value = new_value; - - if (array_type_string) - free (array_type_string); - - entry->index = NULL_TREE; - return error_seen; -} - -static tree -build_this (int location) -{ - tree node = build_wfl_node (this_identifier_node); - TREE_SET_CODE (node, THIS_EXPR); - EXPR_WFL_LINECOL (node) = location; - return node; -} - -/* 14.15 The return statement. It builds a modify expression that - assigns the returned value to the RESULT_DECL that hold the value - to be returned. */ - -static tree -build_return (int location, tree op) -{ - tree node = build1 (RETURN_EXPR, NULL_TREE, op); - EXPR_WFL_LINECOL (node) = location; - node = build_debugable_stmt (location, node); - return node; -} - -static tree -patch_return (tree node) -{ - tree return_exp = TREE_OPERAND (node, 0); - tree meth = current_function_decl; - tree mtype = TREE_TYPE (TREE_TYPE (current_function_decl)); - int error_found = 0; - - TREE_TYPE (node) = error_mark_node; - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - /* It's invalid to have a return value within a function that is - declared with the keyword void or that is a constructor */ - if (return_exp && (mtype == void_type_node || DECL_CONSTRUCTOR_P (meth))) - error_found = 1; - - /* It's invalid to use a return statement in a static block */ - if (DECL_CLINIT_P (current_function_decl)) - error_found = 1; - - /* It's invalid to have a no return value within a function that - isn't declared with the keyword `void' */ - if (!return_exp && (mtype != void_type_node && !DECL_CONSTRUCTOR_P (meth))) - error_found = 2; - - if (DECL_INSTINIT_P (current_function_decl)) - error_found = 1; - - if (error_found) - { - if (DECL_INSTINIT_P (current_function_decl)) - parse_error_context (wfl_operator, - "% inside instance initializer"); - - else if (DECL_CLINIT_P (current_function_decl)) - parse_error_context (wfl_operator, - "% inside static initializer"); - - else if (!DECL_CONSTRUCTOR_P (meth)) - { - char *t = xstrdup (lang_printable_name (mtype, 0)); - parse_error_context (wfl_operator, - "% with%s value from %<%s %s%>", - (error_found == 1 ? "" : "out"), - t, lang_printable_name (meth, 2)); - free (t); - } - else - parse_error_context (wfl_operator, - "% with value from constructor %qs", - lang_printable_name (meth, 2)); - return error_mark_node; - } - - /* If we have a return_exp, build a modify expression and expand - it. Note: at that point, the assignment is declared valid, but we - may want to carry some more hacks */ - if (return_exp) - { - tree exp = java_complete_tree (return_exp); - tree modify, patched; - - if ((patched = patch_string (exp))) - exp = patched; - - modify = build2 (MODIFY_EXPR, NULL_TREE, DECL_RESULT (meth), exp); - EXPR_WFL_LINECOL (modify) = EXPR_WFL_LINECOL (node); - modify = java_complete_tree (modify); - - if (modify != error_mark_node) - { - TREE_SIDE_EFFECTS (modify) = 1; - TREE_OPERAND (node, 0) = modify; - } - else - return error_mark_node; - } - TREE_TYPE (node) = void_type_node; - TREE_SIDE_EFFECTS (node) = 1; - return node; -} - -/* 14.8 The if Statement */ - -static tree -build_if_else_statement (int location, tree expression, tree if_body, - tree else_body) -{ - tree node; - if (!else_body) - else_body = build_java_empty_stmt (); - node = build3 (COND_EXPR, NULL_TREE, expression, if_body, else_body); - EXPR_WFL_LINECOL (node) = location; - node = build_debugable_stmt (location, node); - return node; -} - -static tree -patch_if_else_statement (tree node) -{ - tree expression = TREE_OPERAND (node, 0); - int can_complete_normally - = (CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 1)) - | CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 2))); - - TREE_TYPE (node) = error_mark_node; - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - /* The type of expression must be boolean */ - if (TREE_TYPE (expression) != boolean_type_node - && TREE_TYPE (expression) != promoted_boolean_type_node) - { - parse_error_context - (wfl_operator, - "Incompatible type for %. Can't convert %qs to %", - lang_printable_name (TREE_TYPE (expression), 0)); - return error_mark_node; - } - - TREE_TYPE (node) = void_type_node; - TREE_SIDE_EFFECTS (node) = 1; - CAN_COMPLETE_NORMALLY (node) = can_complete_normally; - return node; -} - -/* 14.6 Labeled Statements */ - -/* Action taken when a labeled statement is parsed. a new - LABELED_BLOCK_EXPR is created. No statement is attached to the - label, yet. LABEL can be NULL_TREE for artificially-generated blocks. */ - -static tree -build_labeled_block (int location, tree label) -{ - tree label_name ; - tree label_decl, node; - if (label == NULL_TREE || label == continue_identifier_node) - label_name = label; - else - { - label_name = merge_qualified_name (label_id, label); - /* Issue an error if we try to reuse a label that was previously - declared */ - if (IDENTIFIER_LOCAL_VALUE (label_name)) - { - EXPR_WFL_LINECOL (wfl_operator) = location; - parse_error_context (wfl_operator, - "Declaration of %qs shadows a previous label declaration", - IDENTIFIER_POINTER (label)); - EXPR_WFL_LINECOL (wfl_operator) = - EXPR_WFL_LINECOL (IDENTIFIER_LOCAL_VALUE (label_name)); - parse_error_context (wfl_operator, - "This is the location of the previous declaration of label %qs", - IDENTIFIER_POINTER (label)); - java_error_count--; - } - } - - label_decl = create_label_decl (label_name); - node = build2 (LABELED_BLOCK_EXPR, NULL_TREE, label_decl, NULL_TREE); - EXPR_WFL_LINECOL (node) = location; - TREE_SIDE_EFFECTS (node) = 1; - return node; -} - -/* A labeled statement LBE is attached a statement. */ - -static tree -finish_labeled_statement (tree lbe, /* Labeled block expr */ - tree statement) -{ - /* In anyways, tie the loop to its statement */ - LABELED_BLOCK_BODY (lbe) = statement; - pop_labeled_block (); - POP_LABELED_BLOCK (); - return lbe; -} - -/* 14.10, 14.11, 14.12 Loop Statements */ - -/* Create an empty LOOP_EXPR and make it the last in the nested loop - list. */ - -static tree -build_new_loop (tree loop_body) -{ - tree loop = build1 (LOOP_EXPR, NULL_TREE, loop_body); - TREE_SIDE_EFFECTS (loop) = 1; - PUSH_LOOP (loop); - return loop; -} - -/* Create a loop body according to the following structure: - COMPOUND_EXPR - COMPOUND_EXPR (loop main body) - EXIT_EXPR (this order is for while/for loops. - LABELED_BLOCK_EXPR the order is reversed for do loops) - LABEL_DECL (a continue occurring here branches at the - BODY end of this labeled block) - INCREMENT (if any) - - REVERSED, if nonzero, tells that the loop condition expr comes - after the body, like in the do-while loop. - - To obtain a loop, the loop body structure described above is - encapsulated within a LOOP_EXPR surrounded by a LABELED_BLOCK_EXPR: - - LABELED_BLOCK_EXPR - LABEL_DECL (use this label to exit the loop) - LOOP_EXPR - */ - -static tree -build_loop_body (int location, tree condition, int reversed) -{ - tree first, second, body; - - condition = build1 (EXIT_EXPR, NULL_TREE, condition); /* Force walk */ - EXPR_WFL_LINECOL (condition) = location; /* For accurate error report */ - condition = build_debugable_stmt (location, condition); - TREE_SIDE_EFFECTS (condition) = 1; - - body = build_labeled_block (0, continue_identifier_node); - first = (reversed ? body : condition); - second = (reversed ? condition : body); - return build2 (COMPOUND_EXPR, NULL_TREE, - build2 (COMPOUND_EXPR, NULL_TREE, first, second), - build_java_empty_stmt ()); -} - -/* Install CONDITION (if any) and loop BODY (using REVERSED to tell - their order) on the current loop. Unlink the current loop from the - loop list. */ - -static tree -finish_loop_body (int location, tree condition, tree body, int reversed) -{ - tree to_return = ctxp->current_loop; - tree loop_body = LOOP_EXPR_BODY (to_return); - if (condition) - { - tree cnode = LOOP_EXPR_BODY_CONDITION_EXPR (loop_body, reversed); - /* We wrapped the EXIT_EXPR around a WFL so we can debug it. - The real EXIT_EXPR is one operand further. */ - EXPR_WFL_LINECOL (cnode) = location; - if (TREE_CODE (cnode) == EXPR_WITH_FILE_LOCATION) - { - cnode = EXPR_WFL_NODE (cnode); - /* This one is for accurate error reports */ - EXPR_WFL_LINECOL (cnode) = location; - } - TREE_OPERAND (cnode, 0) = condition; - } - LOOP_EXPR_BODY_BODY_EXPR (loop_body, reversed) = body; - POP_LOOP (); - return to_return; -} - -/* Tailored version of finish_loop_body for FOR loops, when FOR - loops feature the condition part */ - -static tree -finish_for_loop (int location, tree condition, tree update, tree body) -{ - /* Put the condition and the loop body in place */ - tree loop = finish_loop_body (location, condition, body, 0); - /* LOOP is the current loop which has been now popped of the loop - stack. Mark the update block as reachable and install it. We do - this because the (current interpretation of the) JLS requires - that the update expression be considered reachable even if the - for loop's body doesn't complete normally. */ - if (update != NULL_TREE && !IS_EMPTY_STMT (update)) - { - tree up2 = update; - if (TREE_CODE (up2) == EXPR_WITH_FILE_LOCATION) - up2 = EXPR_WFL_NODE (up2); - /* It is possible for the update expression to be an - EXPR_WFL_NODE wrapping nothing. */ - if (up2 != NULL_TREE && !IS_EMPTY_STMT (up2)) - { - /* Try to detect constraint violations. These would be - programming errors somewhere. */ - if (! EXPR_P (up2) || TREE_CODE (up2) == LOOP_EXPR) - abort (); - SUPPRESS_UNREACHABLE_ERROR (up2) = 1; - } - } - LOOP_EXPR_BODY_UPDATE_BLOCK (LOOP_EXPR_BODY (loop)) = update; - return loop; -} - -/* Try to find the loop a block might be related to. This comprises - the case where the LOOP_EXPR is found as the second operand of a - COMPOUND_EXPR, because the loop happens to have an initialization - part, then expressed as the first operand of the COMPOUND_EXPR. If - the search finds something, 1 is returned. Otherwise, 0 is - returned. The search is assumed to start from a - LABELED_BLOCK_EXPR's block. */ - -static tree -search_loop (tree statement) -{ - if (TREE_CODE (statement) == LOOP_EXPR) - return statement; - - if (TREE_CODE (statement) == BLOCK) - statement = BLOCK_SUBBLOCKS (statement); - else - return NULL_TREE; - - if (statement && TREE_CODE (statement) == COMPOUND_EXPR) - while (statement && TREE_CODE (statement) == COMPOUND_EXPR) - statement = TREE_OPERAND (statement, 1); - - return (TREE_CODE (statement) == LOOP_EXPR - && FOR_LOOP_P (statement) ? statement : NULL_TREE); -} - -/* Return 1 if LOOP can be found in the labeled block BLOCK. 0 is - returned otherwise. */ - -static int -labeled_block_contains_loop_p (tree block, tree loop) -{ - if (!block) - return 0; - - if (LABELED_BLOCK_BODY (block) == loop) - return 1; - - if (FOR_LOOP_P (loop) && search_loop (LABELED_BLOCK_BODY (block)) == loop) - return 1; - - return 0; -} - -/* If the loop isn't surrounded by a labeled statement, create one and - insert LOOP as its body. */ - -static tree -patch_loop_statement (tree loop) -{ - tree loop_label; - - TREE_TYPE (loop) = void_type_node; - if (labeled_block_contains_loop_p (ctxp->current_labeled_block, loop)) - return loop; - - loop_label = build_labeled_block (0, NULL_TREE); - /* LOOP is an EXPR node, so it should have a valid EXPR_WFL_LINECOL - that LOOP_LABEL could enquire about, for a better accuracy. FIXME */ - LABELED_BLOCK_BODY (loop_label) = loop; - PUSH_LABELED_BLOCK (loop_label); - return loop_label; -} - -/* 14.13, 14.14: break and continue Statements */ - -/* Build a break or a continue statement. a null NAME indicates an - unlabeled break/continue statement. */ - -static tree -build_bc_statement (int location, int is_break, tree name) -{ - tree break_continue, label_block_expr = NULL_TREE; - - if (name) - { - if (!(label_block_expr = IDENTIFIER_LOCAL_VALUE - (merge_qualified_name (label_id, EXPR_WFL_NODE (name))))) - /* Null means that we don't have a target for this named - break/continue. In this case, we make the target to be the - label name, so that the error can be reported accurately in - patch_bc_statement. */ - label_block_expr = EXPR_WFL_NODE (name); - } - /* Unlabeled break/continue will be handled during the - break/continue patch operation */ - break_continue = build1 (EXIT_BLOCK_EXPR, NULL_TREE, label_block_expr); - - IS_BREAK_STMT_P (break_continue) = is_break; - TREE_SIDE_EFFECTS (break_continue) = 1; - EXPR_WFL_LINECOL (break_continue) = location; - break_continue = build_debugable_stmt (location, break_continue); - return break_continue; -} - -/* Verification of a break/continue statement. */ - -static tree -patch_bc_statement (tree node) -{ - tree bc_label = EXIT_BLOCK_LABELED_BLOCK (node), target_stmt; - tree labeled_block = ctxp->current_labeled_block; - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - /* Having an identifier here means that the target is unknown. */ - if (bc_label != NULL_TREE && TREE_CODE (bc_label) == IDENTIFIER_NODE) - { - parse_error_context (wfl_operator, "No label definition found for %qs", - IDENTIFIER_POINTER (bc_label)); - return error_mark_node; - } - if (! IS_BREAK_STMT_P (node)) - { - /* It's a continue statement. */ - for (;; labeled_block = TREE_CHAIN (labeled_block)) - { - if (labeled_block == NULL_TREE) - { - if (bc_label == NULL_TREE) - parse_error_context (wfl_operator, - "% must be in loop"); - else - parse_error_context - (wfl_operator, "continue label %qs does not name a loop", - IDENTIFIER_POINTER (bc_label)); - return error_mark_node; - } - if ((DECL_NAME (LABELED_BLOCK_LABEL (labeled_block)) - == continue_identifier_node) - && (bc_label == NULL_TREE - || TREE_CHAIN (labeled_block) == bc_label)) - { - bc_label = labeled_block; - break; - } - } - } - else if (!bc_label) - { - for (;; labeled_block = TREE_CHAIN (labeled_block)) - { - if (labeled_block == NULL_TREE) - { - parse_error_context (wfl_operator, - "% must be in loop or switch"); - return error_mark_node; - } - target_stmt = LABELED_BLOCK_BODY (labeled_block); - if (TREE_CODE (target_stmt) == SWITCH_EXPR - || search_loop (target_stmt)) - { - bc_label = labeled_block; - break; - } - } - } - - EXIT_BLOCK_LABELED_BLOCK (node) = bc_label; - CAN_COMPLETE_NORMALLY (bc_label) = 1; - - /* Our break/continue don't return values. */ - TREE_TYPE (node) = void_type_node; - /* Encapsulate the break within a compound statement so that it's - expanded all the times by expand_expr (and not clobbered - sometimes, like after a if statement) */ - node = add_stmt_to_compound (NULL_TREE, void_type_node, node); - TREE_SIDE_EFFECTS (node) = 1; - return node; -} - -/* Process the exit expression belonging to a loop. Its type must be - boolean. */ - -static tree -patch_exit_expr (tree node) -{ - tree expression = TREE_OPERAND (node, 0); - TREE_TYPE (node) = error_mark_node; - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - - /* The type of expression must be boolean */ - if (TREE_TYPE (expression) != boolean_type_node) - { - parse_error_context - (wfl_operator, - "Incompatible type for loop conditional. Can't convert %qs to %", - lang_printable_name (TREE_TYPE (expression), 0)); - return error_mark_node; - } - /* Now we know things are allright, invert the condition, fold and - return */ - TREE_OPERAND (node, 0) = - fold_build1 (TRUTH_NOT_EXPR, boolean_type_node, expression); - - if (! integer_zerop (TREE_OPERAND (node, 0)) - && ctxp->current_loop != NULL_TREE - && TREE_CODE (ctxp->current_loop) == LOOP_EXPR) - CAN_COMPLETE_NORMALLY (ctxp->current_loop) = 1; - if (! integer_onep (TREE_OPERAND (node, 0))) - CAN_COMPLETE_NORMALLY (node) = 1; - - - TREE_TYPE (node) = void_type_node; - return node; -} - -/* 14.9 Switch statement */ - -static tree -patch_switch_statement (tree node) -{ - tree se = TREE_OPERAND (node, 0), se_type; - tree save, iter; - - /* Complete the switch expression */ - se = TREE_OPERAND (node, 0) = java_complete_tree (se); - se_type = TREE_TYPE (se); - /* The type of the switch expression must be char, byte, short or - int */ - if (! JINTEGRAL_TYPE_P (se_type) || se_type == long_type_node) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - parse_error_context (wfl_operator, - "Incompatible type for %. Can't convert %qs to %", - lang_printable_name (se_type, 0)); - /* This is what java_complete_tree will check */ - TREE_OPERAND (node, 0) = error_mark_node; - return error_mark_node; - } - - /* Save and restore the outer case label list. */ - save = case_label_list; - case_label_list = NULL_TREE; - - TREE_OPERAND (node, 1) = java_complete_tree (TREE_OPERAND (node, 1)); - - /* See if we've found a duplicate label. We can't leave this until - code generation, because in `--syntax-only' and `-C' modes we - don't do ordinary code generation. */ - for (iter = case_label_list; iter != NULL_TREE; iter = TREE_CHAIN (iter)) - { - HOST_WIDE_INT val = TREE_INT_CST_LOW (TREE_VALUE (iter)); - tree subiter; - for (subiter = TREE_CHAIN (iter); - subiter != NULL_TREE; - subiter = TREE_CHAIN (subiter)) - { - HOST_WIDE_INT subval = TREE_INT_CST_LOW (TREE_VALUE (subiter)); - if (val == subval) - { - EXPR_WFL_LINECOL (wfl_operator) - = EXPR_WFL_LINECOL (TREE_PURPOSE (iter)); - /* The case_label_list is in reverse order, so print the - outer label first. */ - parse_error_context (wfl_operator, "duplicate case label: %<" - HOST_WIDE_INT_PRINT_DEC "%>", subval); - EXPR_WFL_LINECOL (wfl_operator) - = EXPR_WFL_LINECOL (TREE_PURPOSE (subiter)); - parse_error_context (wfl_operator, "original label is here"); - - break; - } - } - } - - case_label_list = save; - - /* Ready to return */ - if (TREE_CODE (TREE_OPERAND (node, 1)) == ERROR_MARK) - { - TREE_TYPE (node) = error_mark_node; - return error_mark_node; - } - TREE_TYPE (node) = void_type_node; - TREE_SIDE_EFFECTS (node) = 1; - CAN_COMPLETE_NORMALLY (node) - = CAN_COMPLETE_NORMALLY (TREE_OPERAND (node, 1)) - || ! SWITCH_HAS_DEFAULT (node); - return node; -} - -/* Assertions. */ - -/* Build an assertion expression for `assert CONDITION : VALUE'; VALUE - might be NULL_TREE. */ -static tree -build_assertion ( -#ifdef USE_MAPPED_LOCATION - source_location location, -#else - int location, -#endif - tree condition, tree value) -{ - tree node; - tree klass = GET_CPC (); - - if (! enable_assertions (klass)) - { - condition = build2 (TRUTH_ANDIF_EXPR, NULL_TREE, - boolean_false_node, condition); - if (value == NULL_TREE) - value = build_java_empty_stmt (); - return build_if_else_statement (location, condition, - value, NULL_TREE); - } - - if (! CLASS_USES_ASSERTIONS (klass)) - { - tree field, classdollar, id, call; - tree class_type = TREE_TYPE (klass); - - field = add_field (class_type, - get_identifier ("$assertionsDisabled"), - boolean_type_node, - ACC_PRIVATE | ACC_STATIC | ACC_FINAL); - MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (field); - FIELD_SYNTHETIC (field) = 1; - - classdollar = build_incomplete_class_ref (location, class_type); - - /* Call CLASS.desiredAssertionStatus(). */ - id = build_wfl_node (get_identifier ("desiredAssertionStatus")); - call = build3 (CALL_EXPR, NULL_TREE, id, NULL_TREE, NULL_TREE); - call = make_qualified_primary (classdollar, call, location); - TREE_SIDE_EFFECTS (call) = 1; - - /* Invert to obtain !CLASS.desiredAssertionStatus(). This may - seem odd, but we do it to generate code identical to that of - the JDK. */ - call = build1 (TRUTH_NOT_EXPR, NULL_TREE, call); - TREE_SIDE_EFFECTS (call) = 1; - DECL_INITIAL (field) = call; - - /* Record the initializer in the initializer statement list. */ - call = build2 (MODIFY_EXPR, NULL_TREE, field, call); - TREE_CHAIN (call) = CPC_STATIC_INITIALIZER_STMT (ctxp); - SET_CPC_STATIC_INITIALIZER_STMT (ctxp, call); - MODIFY_EXPR_FROM_INITIALIZATION_P (call) = 1; - - CLASS_USES_ASSERTIONS (klass) = 1; - } - - if (value != NULL_TREE) - value = tree_cons (NULL_TREE, value, NULL_TREE); - - node = build_wfl_node (get_identifier ("java")); - node = make_qualified_name (node, build_wfl_node (get_identifier ("lang")), - location); - node = make_qualified_name (node, build_wfl_node (get_identifier ("AssertionError")), - location); - - node = build3 (NEW_CLASS_EXPR, NULL_TREE, node, value, NULL_TREE); - TREE_SIDE_EFFECTS (node) = 1; - /* It is too early to use BUILD_THROW. */ - node = build1 (THROW_EXPR, NULL_TREE, node); - TREE_SIDE_EFFECTS (node) = 1; - - /* We invert the condition; if we just put NODE as the `else' part - then we generate weird-looking bytecode. */ - condition = build1 (TRUTH_NOT_EXPR, NULL_TREE, condition); - /* Check $assertionsDisabled. */ - condition - = build2 (TRUTH_ANDIF_EXPR, NULL_TREE, - build1 (TRUTH_NOT_EXPR, NULL_TREE, - build_wfl_node (get_identifier ("$assertionsDisabled"))), - condition); - node = build_if_else_statement (location, condition, node, NULL_TREE); - return node; -} - -/* 14.18 The try/catch statements */ - -/* Encapsulate TRY_STMTS' in a try catch sequence. The catch clause - catches TYPE and executes CATCH_STMTS. */ - -static tree -encapsulate_with_try_catch (int location, tree type_or_name, tree try_stmts, - tree catch_stmts) -{ - tree try_block, catch_clause_param, catch_block, catch; - - /* First build a try block */ - try_block = build_expr_block (try_stmts, NULL_TREE); - - /* Build a catch block: we need a catch clause parameter */ - if (TREE_CODE (type_or_name) == EXPR_WITH_FILE_LOCATION) - { - tree catch_type = obtain_incomplete_type (type_or_name); - jdep *dep; - catch_clause_param = build_decl (VAR_DECL, wpv_id, catch_type); - register_incomplete_type (JDEP_VARIABLE, type_or_name, - catch_clause_param, catch_type); - dep = CLASSD_LAST (ctxp->classd_list); - JDEP_GET_PATCH (dep) = &TREE_TYPE (catch_clause_param); - } - else - catch_clause_param = build_decl (VAR_DECL, wpv_id, - build_pointer_type (type_or_name)); - - /* And a block */ - catch_block = build_expr_block (NULL_TREE, catch_clause_param); - - /* Initialize the variable and store in the block */ - catch = build2 (MODIFY_EXPR, NULL_TREE, catch_clause_param, - build0 (JAVA_EXC_OBJ_EXPR, ptr_type_node)); - add_stmt_to_block (catch_block, NULL_TREE, catch); - - /* Add the catch statements */ - add_stmt_to_block (catch_block, NULL_TREE, catch_stmts); - - /* Now we can build a JAVA_CATCH_EXPR */ - catch_block = build1 (JAVA_CATCH_EXPR, NULL_TREE, catch_block); - - return build_try_statement (location, try_block, catch_block); -} - -static tree -build_try_statement (int location, tree try_block, tree catches) -{ - tree node = build2 (TRY_EXPR, NULL_TREE, try_block, catches); - EXPR_WFL_LINECOL (node) = location; - return node; -} - -static tree -build_try_finally_statement (int location, tree try_block, tree finally) -{ - tree node = build2 (TRY_FINALLY_EXPR, NULL_TREE, try_block, finally); - EXPR_WFL_LINECOL (node) = location; - return node; -} - -static tree -patch_try_statement (tree node) -{ - int error_found = 0; - tree try = TREE_OPERAND (node, 0); - /* Exception handlers are considered in left to right order */ - tree catch = nreverse (TREE_OPERAND (node, 1)); - tree current, caught_type_list = NULL_TREE; - - /* Check catch clauses, if any. Every time we find an error, we try - to process the next catch clause. We process the catch clause before - the try block so that when processing the try block we can check thrown - exceptions against the caught type list. */ - for (current = catch; current; current = TREE_CHAIN (current)) - { - tree carg_decl, carg_type; - tree sub_current, catch_block, catch_clause; - int unreachable; - - /* At this point, the structure of the catch clause is - JAVA_CATCH_EXPR (catch node) - BLOCK (with the decl of the parameter) - COMPOUND_EXPR - MODIFY_EXPR (assignment of the catch parameter) - BLOCK (catch clause block) - */ - catch_clause = TREE_OPERAND (current, 0); - carg_decl = BLOCK_EXPR_DECLS (catch_clause); - carg_type = TREE_TYPE (TREE_TYPE (carg_decl)); - - /* Catch clauses can't have more than one parameter declared, - but it's already enforced by the grammar. Make sure that the - only parameter of the clause statement in of class Throwable - or a subclass of Throwable, but that was done earlier. The - catch clause parameter type has also been resolved. */ - - /* Just make sure that the catch clause parameter type inherits - from java.lang.Throwable */ - if (!inherits_from_p (carg_type, throwable_type_node)) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (current); - parse_error_context (wfl_operator, - "Can't catch class %qs. Catch clause parameter type must be a subclass of class %", - lang_printable_name (carg_type, 0)); - error_found = 1; - continue; - } - - /* Partial check for unreachable catch statement: The catch - clause is reachable iff is no earlier catch block A in - the try statement such that the type of the catch - clause's parameter is the same as or a subclass of the - type of A's parameter */ - unreachable = 0; - for (sub_current = catch; - sub_current != current; sub_current = TREE_CHAIN (sub_current)) - { - tree sub_catch_clause, decl; - sub_catch_clause = TREE_OPERAND (sub_current, 0); - decl = BLOCK_EXPR_DECLS (sub_catch_clause); - - if (inherits_from_p (carg_type, TREE_TYPE (TREE_TYPE (decl)))) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (current); - parse_error_context - (wfl_operator, - "% not reached because of the catch clause at line %d", - EXPR_WFL_LINENO (sub_current)); - unreachable = error_found = 1; - break; - } - } - /* Complete the catch clause block */ - catch_block = java_complete_tree (TREE_OPERAND (current, 0)); - if (catch_block == error_mark_node) - { - error_found = 1; - continue; - } - if (CAN_COMPLETE_NORMALLY (catch_block)) - CAN_COMPLETE_NORMALLY (node) = 1; - TREE_OPERAND (current, 0) = catch_block; - - if (unreachable) - continue; - - /* Things to do here: the exception must be thrown */ - - /* Link this type to the caught type list */ - caught_type_list = tree_cons (NULL_TREE, carg_type, caught_type_list); - } - - PUSH_EXCEPTIONS (caught_type_list); - if ((try = java_complete_tree (try)) == error_mark_node) - error_found = 1; - if (CAN_COMPLETE_NORMALLY (try)) - CAN_COMPLETE_NORMALLY (node) = 1; - POP_EXCEPTIONS (); - - /* Verification ends here */ - if (error_found) - return error_mark_node; - - TREE_OPERAND (node, 0) = try; - TREE_OPERAND (node, 1) = catch; - TREE_TYPE (node) = void_type_node; - return node; -} - -/* 14.17 The synchronized Statement */ - -static tree -patch_synchronized_statement (tree node, tree wfl_op1) -{ - tree expr = java_complete_tree (TREE_OPERAND (node, 0)); - tree block = TREE_OPERAND (node, 1); - - tree tmp, enter, exit, expr_decl, assignment; - - if (expr == error_mark_node) - { - block = java_complete_tree (block); - return expr; - } - - /* We might be trying to synchronize on a STRING_CST */ - if ((tmp = patch_string (expr))) - expr = tmp; - - /* The TYPE of expr must be a reference type */ - if (!JREFERENCE_TYPE_P (TREE_TYPE (expr))) - { - SET_WFL_OPERATOR (wfl_operator, node, wfl_op1); - parse_error_context (wfl_operator, "Incompatible type for %. Can't convert %qs to %", - lang_printable_name (TREE_TYPE (expr), 0)); - return error_mark_node; - } - - /* Generate a try-finally for the synchronized statement, except - that the handler that catches all throw exception calls - _Jv_MonitorExit and then rethrow the exception. - The synchronized statement is then implemented as: - TRY - { - _Jv_MonitorEnter (expression) - synchronized_block - _Jv_MonitorExit (expression) - } - CATCH_ALL - { - e = _Jv_exception_info (); - _Jv_MonitorExit (expression) - Throw (e); - } */ - - expr_decl = build_decl (VAR_DECL, generate_name (), TREE_TYPE (expr)); - BUILD_MONITOR_ENTER (enter, expr_decl); - BUILD_MONITOR_EXIT (exit, expr_decl); - CAN_COMPLETE_NORMALLY (enter) = 1; - CAN_COMPLETE_NORMALLY (exit) = 1; - assignment = build2 (MODIFY_EXPR, NULL_TREE, expr_decl, expr); - TREE_SIDE_EFFECTS (assignment) = 1; - node = build2 (COMPOUND_EXPR, NULL_TREE, - build2 (COMPOUND_EXPR, NULL_TREE, assignment, enter), - build2 (TRY_FINALLY_EXPR, NULL_TREE, block, exit)); - node = build_expr_block (node, expr_decl); - - return java_complete_tree (node); -} - -/* 14.16 The throw Statement */ - -static tree -patch_throw_statement (tree node, tree wfl_op1) -{ - tree expr = TREE_OPERAND (node, 0); - tree type = TREE_TYPE (expr); - int unchecked_ok = 0, tryblock_throws_ok = 0; - - /* Thrown expression must be assignable to java.lang.Throwable */ - if (!try_reference_assignconv (throwable_type_node, expr)) - { - SET_WFL_OPERATOR (wfl_operator, node, wfl_op1); - parse_error_context (wfl_operator, - "Can't throw %qs; it must be a subclass of class %", - lang_printable_name (type, 0)); - /* If the thrown expression was a reference, we further the - compile-time check. */ - if (!JREFERENCE_TYPE_P (type)) - return error_mark_node; - } - - /* At least one of the following must be true */ - - /* The type of the throw expression is a not checked exception, - i.e. is a unchecked expression. */ - unchecked_ok = IS_UNCHECKED_EXCEPTION_P (TREE_TYPE (type)); - - SET_WFL_OPERATOR (wfl_operator, node, wfl_op1); - /* An instance can't throw a checked exception unless that exception - is explicitly declared in the `throws' clause of each - constructor. This doesn't apply to anonymous classes, since they - don't have declared constructors. */ - if (!unchecked_ok - && DECL_INSTINIT_P (current_function_decl) - && !ANONYMOUS_CLASS_P (current_class)) - { - tree current; - for (current = TYPE_METHODS (current_class); current; - current = TREE_CHAIN (current)) - if (DECL_CONSTRUCTOR_P (current) - && !check_thrown_exceptions_do (TREE_TYPE (expr))) - { - parse_error_context (wfl_operator, "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their % clause)", - lang_printable_name (TREE_TYPE (expr), 0)); - return error_mark_node; - } - } - - /* Throw is contained in a try statement and at least one catch - clause can receive the thrown expression or the current method is - declared to throw such an exception. Or, the throw statement is - contained in a method or constructor declaration and the type of - the Expression is assignable to at least one type listed in the - throws clause the declaration. */ - if (!unchecked_ok) - tryblock_throws_ok = check_thrown_exceptions_do (TREE_TYPE (expr)); - if (!(unchecked_ok || tryblock_throws_ok)) - { - /* If there is a surrounding try block that has no matching - clatch clause, report it first. A surrounding try block exits - only if there is something after the list of checked - exception thrown by the current function (if any). */ - if (IN_TRY_BLOCK_P ()) - parse_error_context (wfl_operator, "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding % block", - lang_printable_name (type, 0)); - /* If we have no surrounding try statement and the method doesn't have - any throws, report it now. FIXME */ - - /* We report that the exception can't be throw from a try block - in all circumstances but when the `throw' is inside a static - block. */ - else if (!EXCEPTIONS_P (currently_caught_type_list) - && !tryblock_throws_ok) - { - if (DECL_CLINIT_P (current_function_decl)) - parse_error_context (wfl_operator, - "Checked exception %qs can't be thrown in initializer", - lang_printable_name (type, 0)); - else - parse_error_context (wfl_operator, - "Checked exception %qs isn't thrown from a % block", - lang_printable_name (type, 0)); - } - /* Otherwise, the current method doesn't have the appropriate - throws declaration */ - else - parse_error_context (wfl_operator, "Checked exception %qs doesn't match any of current method's % declaration(s)", - lang_printable_name (type, 0)); - return error_mark_node; - } - - if (! flag_emit_class_files) - BUILD_THROW (node, expr); - - return node; -} - -/* Add EXCEPTION to the throws clause of MDECL. If MDECL already throws - a super-class of EXCEPTION, keep the superclass instead. If MDECL already - throws a sub-class of EXCEPTION, replace the sub-class with EXCEPTION. */ -static void -add_exception_to_throws (tree mdecl, tree exception) -{ - tree mthrows; - - /* Ignore unchecked exceptions. */ - if (IS_UNCHECKED_EXCEPTION_P (exception)) - return; - - for (mthrows = DECL_FUNCTION_THROWS (mdecl); - mthrows; mthrows = TREE_CHAIN (mthrows)) - { - if (inherits_from_p (exception, TREE_VALUE (mthrows))) - return; - if (inherits_from_p (TREE_VALUE (mthrows), exception)) - { - TREE_VALUE (mthrows) = exception; - return; - } - } - - mthrows = DECL_FUNCTION_THROWS (mdecl); - DECL_FUNCTION_THROWS (mdecl) = build_tree_list (mthrows, exception); -} - -/* Check that exception said to be thrown by method DECL can be - effectively caught from where DECL is invoked. THIS_EXPR is the - expression that computes `this' for the method call. */ -static void -check_thrown_exceptions ( -#ifdef USE_MAPPED_LOCATION - source_location location, -#else - - int location, -#endif - tree decl, tree this_expr) -{ - tree throws; - int is_array_call = 0; - - /* Skip check within generated methods, such as access$. */ - if (NESTED_FIELD_ACCESS_IDENTIFIER_P (DECL_NAME (current_function_decl))) - return; - - if (this_expr != NULL_TREE - && TREE_CODE (TREE_TYPE (this_expr)) == POINTER_TYPE - && TYPE_ARRAY_P (TREE_TYPE (TREE_TYPE (this_expr)))) - is_array_call = 1; - - /* For all the unchecked exceptions thrown by DECL. */ - for (throws = DECL_FUNCTION_THROWS (decl); throws; - throws = TREE_CHAIN (throws)) - if (!check_thrown_exceptions_do (TREE_VALUE (throws))) - { - /* Suppress errors about cloning arrays. */ - if (is_array_call && DECL_NAME (decl) == get_identifier ("clone")) - continue; - -#ifdef USE_MAPPED_LOCATION - SET_EXPR_LOCATION (wfl_operator, location); -#else - EXPR_WFL_LINECOL (wfl_operator) = location; -#endif - if (ANONYMOUS_CLASS_P (DECL_CONTEXT (current_function_decl)) - && (DECL_FINIT_P (current_function_decl) - || DECL_INIT_P (current_function_decl) - || DECL_CONSTRUCTOR_P (current_function_decl))) - { - /* Add "throws" to the initializer's exception list */ - tree exception = TREE_VALUE (throws); - add_exception_to_throws (current_function_decl, exception); - } - else if (DECL_FINIT_P (current_function_decl)) - { - parse_error_context - (wfl_operator, "Exception %qs can't be thrown in initializer", - lang_printable_name (TREE_VALUE (throws), 0)); - } - else - { - parse_error_context - (wfl_operator, "Exception %qs must be caught, or it must be declared in the % clause of %qs", - lang_printable_name (TREE_VALUE (throws), 0), - (DECL_INIT_P (current_function_decl) ? - IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (current_class))) : - IDENTIFIER_POINTER (DECL_NAME (current_function_decl)))); - } - } -} - -/* Return 1 if checked EXCEPTION is caught at the current nesting level of - try-catch blocks, OR is listed in the `throws' clause of the - current method. */ - -static int -check_thrown_exceptions_do (tree exception) -{ - tree list = currently_caught_type_list; - resolve_and_layout (exception, NULL_TREE); - /* First, all the nested try-catch-finally at that stage. The - last element contains `throws' clause exceptions, if any. */ - if (IS_UNCHECKED_EXCEPTION_P (exception)) - return 1; - while (list) - { - tree caught; - for (caught = TREE_VALUE (list); caught; caught = TREE_CHAIN (caught)) - if (valid_ref_assignconv_cast_p (exception, TREE_VALUE (caught), 0)) - return 1; - list = TREE_CHAIN (list); - } - return 0; -} - -/* This function goes over all of CLASS_TYPE ctors and checks whether - each of them features at least one unchecked exception in its - `throws' clause. If it's the case, it returns `true', `false' - otherwise. */ - -static bool -ctors_unchecked_throws_clause_p (tree class_type) -{ - tree current; - - for (current = TYPE_METHODS (class_type); current; - current = TREE_CHAIN (current)) - { - bool ctu = false; /* Ctor Throws Unchecked */ - if (DECL_CONSTRUCTOR_P (current)) - { - tree throws; - for (throws = DECL_FUNCTION_THROWS (current); throws && !ctu; - throws = TREE_CHAIN (throws)) - if (inherits_from_p (TREE_VALUE (throws), exception_type_node)) - ctu = true; - } - /* We return false as we found one ctor that is unfit. */ - if (!ctu && DECL_CONSTRUCTOR_P (current)) - return false; - } - /* All ctors feature at least one unchecked exception in their - `throws' clause. */ - return true; -} - -/* 15.24 Conditional Operator ?: */ - -static tree -patch_conditional_expr (tree node, tree wfl_cond, tree wfl_op1) -{ - tree cond = TREE_OPERAND (node, 0); - tree op1 = TREE_OPERAND (node, 1); - tree op2 = TREE_OPERAND (node, 2); - tree resulting_type = NULL_TREE; - tree t1, t2, patched; - int error_found = 0; - - /* The condition and operands of ?: might be StringBuffers crafted - as a result of a string concatenation. Obtain decent ones here. */ - if ((patched = patch_string (cond))) - TREE_OPERAND (node, 0) = cond = patched; - if ((patched = patch_string (op1))) - TREE_OPERAND (node, 1) = op1 = patched; - if ((patched = patch_string (op2))) - TREE_OPERAND (node, 2) = op2 = patched; - - t1 = TREE_TYPE (op1); - t2 = TREE_TYPE (op2); - - /* The first expression must be a boolean */ - if (TREE_TYPE (cond) != boolean_type_node) - { - SET_WFL_OPERATOR (wfl_operator, node, wfl_cond); - parse_error_context (wfl_operator, - "Incompatible type for %. Can't convert %qs to %", - lang_printable_name (TREE_TYPE (cond), 0)); - error_found = 1; - } - - /* Second and third can be numeric, boolean (i.e. primitive), - references or null. Anything else results in an error */ - if (!((JNUMERIC_TYPE_P (t1) && JNUMERIC_TYPE_P (t2)) - || ((JREFERENCE_TYPE_P (t1) || op1 == null_pointer_node) - && (JREFERENCE_TYPE_P (t2) || op2 == null_pointer_node)) - || (t1 == boolean_type_node && t2 == boolean_type_node))) - error_found = 1; - - /* Determine the type of the conditional expression. Same types are - easy to deal with */ - else if (t1 == t2) - resulting_type = t1; - - /* There are different rules for numeric types */ - else if (JNUMERIC_TYPE_P (t1)) - { - /* if byte/short found, the resulting type is short */ - if ((t1 == byte_type_node && t2 == short_type_node) - || (t1 == short_type_node && t2 == byte_type_node)) - resulting_type = short_type_node; - - /* If t1 is a constant int and t2 is of type byte, short or char - and t1's value fits in t2, then the resulting type is t2 */ - else if ((t1 == int_type_node && TREE_CONSTANT (TREE_OPERAND (node, 1))) - && JBSC_TYPE_P (t2) && int_fits_type_p (TREE_OPERAND (node, 1), t2)) - resulting_type = t2; - - /* If t2 is a constant int and t1 is of type byte, short or char - and t2's value fits in t1, then the resulting type is t1 */ - else if ((t2 == int_type_node && TREE_CONSTANT (TREE_OPERAND (node, 2))) - && JBSC_TYPE_P (t1) && int_fits_type_p (TREE_OPERAND (node, 2), t1)) - resulting_type = t1; - - /* Otherwise, binary numeric promotion is applied and the - resulting type is the promoted type of operand 1 and 2 */ - else - resulting_type = binary_numeric_promotion (t1, t2, - &TREE_OPERAND (node, 1), - &TREE_OPERAND (node, 2)); - } - - /* Cases of a reference and a null type */ - else if (JREFERENCE_TYPE_P (t1) && op2 == null_pointer_node) - resulting_type = t1; - - else if (JREFERENCE_TYPE_P (t2) && op1 == null_pointer_node) - resulting_type = t2; - - /* Last case: different reference types. If a type can be converted - into the other one by assignment conversion, the latter - determines the type of the expression */ - else if ((resulting_type = try_reference_assignconv (t1, op2))) - resulting_type = promote_type (t1); - - else if ((resulting_type = try_reference_assignconv (t2, op1))) - resulting_type = promote_type (t2); - - /* If we don't have any resulting type, we're in trouble */ - if (!resulting_type) - { - char *t = xstrdup (lang_printable_name (t1, 0)); - SET_WFL_OPERATOR (wfl_operator, node, wfl_op1); - parse_error_context (wfl_operator, - "Incompatible type for %. Can't convert %qs to %qs", - t, lang_printable_name (t2, 0)); - free (t); - error_found = 1; - } - - if (error_found) - { - TREE_TYPE (node) = error_mark_node; - return error_mark_node; - } - - TREE_TYPE (node) = resulting_type; - TREE_SET_CODE (node, COND_EXPR); - CAN_COMPLETE_NORMALLY (node) = 1; - return node; -} - -/* Wrap EXPR with code to initialize DECL's class, if appropriate. */ - -static tree -maybe_build_class_init_for_field (tree decl, tree expr) -{ - tree clas = DECL_CONTEXT (decl); - if (flag_emit_class_files) - return expr; - - if (TREE_CODE (decl) == VAR_DECL && FIELD_STATIC (decl) - && FIELD_FINAL (decl)) - { - tree init = DECL_INITIAL (decl); - if (init != NULL_TREE) - init = fold_constant_for_init (init, decl); - if (init != NULL_TREE && CONSTANT_VALUE_P (init)) - return expr; - } - - return build_class_init (clas, expr); -} - -/* Try to constant fold NODE. - If NODE is not a constant expression, return NULL_EXPR. - CONTEXT is a static final VAR_DECL whose initializer we are folding. */ - -static tree -fold_constant_for_init (tree node, tree context) -{ - tree op0, op1, val; - enum tree_code code = TREE_CODE (node); - - switch (code) - { - case INTEGER_CST: - if (node == null_pointer_node) - return NULL_TREE; - case STRING_CST: - case REAL_CST: - return node; - - case PLUS_EXPR: - case MINUS_EXPR: - case MULT_EXPR: - case TRUNC_MOD_EXPR: - case RDIV_EXPR: - case LSHIFT_EXPR: - case RSHIFT_EXPR: - case URSHIFT_EXPR: - case BIT_AND_EXPR: - case BIT_XOR_EXPR: - case BIT_IOR_EXPR: - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: - case EQ_EXPR: - case NE_EXPR: - case GT_EXPR: - case GE_EXPR: - case LT_EXPR: - case LE_EXPR: - op0 = TREE_OPERAND (node, 0); - op1 = TREE_OPERAND (node, 1); - val = fold_constant_for_init (op0, context); - if (val == NULL_TREE || ! TREE_CONSTANT (val)) - return NULL_TREE; - TREE_OPERAND (node, 0) = val; - val = fold_constant_for_init (op1, context); - if (val == NULL_TREE || ! TREE_CONSTANT (val)) - return NULL_TREE; - TREE_OPERAND (node, 1) = val; - return patch_binop (node, op0, op1, 1); - - case UNARY_PLUS_EXPR: - case NEGATE_EXPR: - case TRUTH_NOT_EXPR: - case BIT_NOT_EXPR: - case CONVERT_EXPR: - case NOP_EXPR: - op0 = TREE_OPERAND (node, 0); - val = fold_constant_for_init (op0, context); - if (val == NULL_TREE || ! TREE_CONSTANT (val)) - return NULL_TREE; - TREE_OPERAND (node, 0) = val; - val = patch_unaryop (node, op0); - if (! TREE_CONSTANT (val)) - return NULL_TREE; - return val; - - break; - - case COND_EXPR: - val = fold_constant_for_init (TREE_OPERAND (node, 0), context); - if (val == NULL_TREE || ! TREE_CONSTANT (val)) - return NULL_TREE; - TREE_OPERAND (node, 0) = val; - val = fold_constant_for_init (TREE_OPERAND (node, 1), context); - if (val == NULL_TREE || ! TREE_CONSTANT (val)) - return NULL_TREE; - TREE_OPERAND (node, 1) = val; - val = fold_constant_for_init (TREE_OPERAND (node, 2), context); - if (val == NULL_TREE || ! TREE_CONSTANT (val)) - return NULL_TREE; - TREE_OPERAND (node, 2) = val; - return integer_zerop (TREE_OPERAND (node, 0)) ? TREE_OPERAND (node, 2) - : TREE_OPERAND (node, 1); - - case VAR_DECL: - case FIELD_DECL: - if (! FIELD_FINAL (node) - || DECL_INITIAL (node) == NULL_TREE) - return NULL_TREE; - val = DECL_INITIAL (node); - /* Guard against infinite recursion. */ - DECL_INITIAL (node) = NULL_TREE; - val = fold_constant_for_init (val, node); - if (val != NULL_TREE && TREE_CODE (val) != STRING_CST) - val = try_builtin_assignconv (NULL_TREE, TREE_TYPE (node), val); - DECL_INITIAL (node) = val; - return val; - - case EXPR_WITH_FILE_LOCATION: - /* Compare java_complete_tree and resolve_expression_name. */ - if (!EXPR_WFL_NODE (node) /* Or a PRIMARY flag ? */ - || TREE_CODE (EXPR_WFL_NODE (node)) == IDENTIFIER_NODE) - { - tree name = EXPR_WFL_NODE (node); - tree decl; - if (PRIMARY_P (node)) - return NULL_TREE; - else if (! QUALIFIED_P (name)) - { - decl = lookup_field_wrapper (DECL_CONTEXT (context), name); - if (decl == NULL_TREE - || (! FIELD_STATIC (decl) && ! FIELD_FINAL (decl))) - return NULL_TREE; - return fold_constant_for_init (decl, decl); - } - else - { - tree r = NULL_TREE; - /* Install the proper context for the field resolution. */ - tree saved_current_class = current_class; - /* Wait until the USE_COMPONENT_REF re-write. FIXME. */ - current_class = DECL_CONTEXT (context); - qualify_ambiguous_name (node); - r = resolve_field_access (node, &decl, NULL); - /* Restore prior context. */ - current_class = saved_current_class; - if (r != error_mark_node && decl != NULL_TREE) - return fold_constant_for_init (decl, decl); - return NULL_TREE; - } - } - else - { - op0 = TREE_OPERAND (node, 0); - val = fold_constant_for_init (op0, context); - if (val == NULL_TREE || ! TREE_CONSTANT (val)) - return NULL_TREE; - TREE_OPERAND (node, 0) = val; - return val; - } - -#ifdef USE_COMPONENT_REF - case IDENTIFIER: - case COMPONENT_REF: - ?; -#endif - - default: - return NULL_TREE; - } -} - -#ifdef USE_COMPONENT_REF -/* Context is 'T' for TypeName, 'P' for PackageName, - 'M' for MethodName, 'E' for ExpressionName, and 'A' for AmbiguousName. */ - -tree -resolve_simple_name (tree name, int context) -{ -} - -tree -resolve_qualified_name (tree name, int context) -{ -} -#endif - -void -init_src_parse (void) -{ - /* Sanity check; we've been bit by this before. */ - if (ARRAY_SIZE (ctxp->modifier_ctx) != MODIFIER_TK - PUBLIC_TK) - abort (); -} - - - -/* This section deals with the functions that are called when tables - recording class initialization information are traversed. */ - -/* This function is called for each class that is known definitely - initialized when a given static method was called. This function - augments a compound expression (INFO) storing all assignment to - initialized static class flags if a flag already existed, otherwise - a new one is created. */ - -static int -emit_test_initialization (void **entry_p, void *info) -{ - tree l = (tree) info; - tree decl, init; - tree key = (tree) *entry_p; - tree *ite; - htab_t cf_ht = DECL_FUNCTION_INIT_TEST_TABLE (current_function_decl); - - /* If we haven't found a flag and we're dealing with self registered - with current_function_decl, then don't do anything. Self is - always added as definitely initialized but this information is - valid only if used outside the current function. */ - if (current_function_decl == TREE_PURPOSE (l) - && java_treetreehash_find (cf_ht, key) == NULL) - return true; - - ite = java_treetreehash_new (cf_ht, key); - - /* If we don't have a variable, create one and install it. */ - if (*ite == NULL) - { - tree block; - - decl = build_decl (VAR_DECL, NULL_TREE, boolean_type_node); - MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (decl); - LOCAL_CLASS_INITIALIZATION_FLAG (decl) = 1; - DECL_CONTEXT (decl) = current_function_decl; - DECL_INITIAL (decl) = boolean_true_node; - /* Don't emit any symbolic debugging info for this decl. */ - DECL_IGNORED_P (decl) = 1; - - /* The trick is to find the right context for it. */ - block = BLOCK_SUBBLOCKS (GET_CURRENT_BLOCK (current_function_decl)); - TREE_CHAIN (decl) = BLOCK_EXPR_DECLS (block); - BLOCK_EXPR_DECLS (block) = decl; - *ite = decl; - } - else - decl = *ite; - - /* Now simply augment the compound that holds all the assignments - pertaining to this method invocation. */ - init = build2 (MODIFY_EXPR, boolean_type_node, decl, boolean_true_node); - TREE_SIDE_EFFECTS (init) = 1; - TREE_VALUE (l) = add_stmt_to_compound (TREE_VALUE (l), void_type_node, init); - TREE_SIDE_EFFECTS (TREE_VALUE (l)) = 1; - - return true; -} - -#ifdef __XGETTEXT__ -/* Depending on the version of Bison used to compile this grammar, - it may issue generic diagnostics spelled "syntax error" or - "parse error". To prevent this from changing the translation - template randomly, we list all the variants of this particular - diagnostic here. Translators: there is no fine distinction - between diagnostics with "syntax error" in them, and diagnostics - with "parse error" in them. It's okay to give them both the same - translation. */ -const char d1[] = N_("syntax error"); -const char d2[] = N_("parse error"); -const char d3[] = N_("syntax error; also virtual memory exhausted"); -const char d4[] = N_("parse error; also virtual memory exhausted"); -const char d5[] = N_("syntax error: cannot back up"); -const char d6[] = N_("parse error: cannot back up"); -#endif - -#include "gt-java-parse.h" -#include "gtype-java.h" diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c index c0d6e4ab20a..26c0031355f 100644 --- a/gcc/java/typeck.c +++ b/gcc/java/typeck.c @@ -356,7 +356,7 @@ tree build_java_array_type (tree element_type, HOST_WIDE_INT length) { tree sig, t, fld, atype, arfld; - char buf[23]; /* 20 for the digits of a 64 bit number + "[]" + \0 */ + char buf[23]; tree elsig = build_java_signature (element_type); tree el_name = element_type; buf[0] = '['; diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 3653a8df5d7..2e972548e94 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,1234 @@ +2007-01-05 Tom Tromey + + * testsuite/libjava.loader/loader.exp (gcj_loader_run): Find + dummy.class in srcdir. + +2007-01-03 Tom Tromey + + * testsuite/libjava.cni/cni.exp (gcj_cni_compile_cxx_to_o): Add -I + for srcdir. + +2007-01-03 Tom Tromey + + * testsuite/*: Added many .jar and .h files. + * testsuite/libjava.special/special.exp + (gcj_special_try_compiler): New proc. + * testsuite/libjava.loader/loader.exp (gcj_loader_run): Don't + bytecompile source. Search for .jar files. + (gcj_loader_test_one): Don't look for MyLoader.java. + * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_test_one): Don't + bytecompile sources or build headers. + (gcj_jvmti_run): Look for .jar files. + * testsuite/libjava.jni/jni.exp (gcj_jni_run): Compile .jar + files. + (gcj_jni_test_one): Don't bytecompile sources or build headers. + Set classpath when invoking gij. + (gcj_jni_invocation_test_one): Likewise. + * testsuite/libjava.cni/cni.exp (gcj_cni_test_one): Don't build + headers or bytecompile sources. + (gcj_cni_run): Use .jar files, not .java files. + * testsuite/libjava.lang/lang.exp: Compile .jar files. + +2007-01-02 Tom Tromey + + * configure: Rebuilt. + * configure.ac: Check for gjar. + +2007-01-02 Tom Tromey + + * testsuite/libjava.jacks/jacks.exp: Removed. + * testsuite/libjava.jacks/jacks.xfail: Removed. + +2006-12-22 Tom Tromey + + * sources.am, Makefile.in: Rebuilt. + * java/io/natObjectInputStream.cc (allocateObject): Now method on + VMObjectStream. + (currentLoader): Removed. + * java/io/ObjectInputStream.java: Removed. + * java/io/VMObjectInputStream.java: New file. + * scripts/classes.pl (scan): Ignore .svn directories. + * gcj/javaprims.h: Updated. + +2006-12-22 Tom Tromey + + * testsuite/libjava.jni/register2.c: Include jni.h, not + register2.h. + * testsuite/libjava.cni/cni.exp (gcj_cni_build_headers): + Special-case shortfield. + +2006-12-20 Andrew Haley + + * java/lang/natClass.cc (getDeclaredAnnotations): Call + ClassLoader.getDeclaredAnnotations and + ClassLoader.putDeclaredAnnotations. + * java/lang/ClassLoader.java (AnnotationsKey): New class. + (getDeclaredAnnotations, putDeclaredAnnotations): New. + +2006-12-19 Andrew Haley + + * java/lang/natClassLoader.cc (_Jv_CheckABIVersion): Move here + from include/jvm.h. + Add BC ABI Version 1. + Throw a ClassFormatError if we're not ABI-compatible. + (_Jv_RegisterClasses): Throw a ClassFormatError if we're not + ABI-compatible. + (_Jv_RegisterClasses_Counted): Likewise. + (_Jv_NewClassFromInitializer): Likewise. + Call Class::initializerSize to get size of initializer struct. + * include/jvm.h (_Jv_CheckABIVersion): Move to natClassLoader.cc. + * java/lang/Class.h (Class::initializerSize): New function. + +2006-12-18 Tom Tromey + + * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_build_headers): + Don't use jv-scan. + +2006-12-18 Tom Tromey + + * HACKING: Updated. + * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.93. + +2006-12-15 Tom Tromey + + * configure, Makefile.in: Rebuilt. + * Makefile.am (gcjh.stamp): Use JAVA_MAINTAINER_MODE. + * configure.ac: Added --enable-java-maintainer-mode. + +2006-12-15 Tom Tromey + + * testsuite/libjava.compile: Removed. + +2006-12-15 Andrew Haley + + * Makefile.am (AM_MAKEFLAGS): Pass JAR to sub-make. + (libgcj_tools_la_GCJFLAGS): Pass -fsource-filename to gcj. + +2006-12-14 Gary Benson + + * include/java-stack.h (stackwalker_nnl_trace_fn, + GetStackWalkerFirstNonNullLoader): Declare. + * stacktrace.cc (stackwalker_nnl_trace_fn, + GetStackWalkerFirstNonNullLoader): New methods. + * gnu/classpath/natVMStackWalker.cc + (firstNonNullClassLoader): New method. + * gnu/classpath/VMStackWalker.java + (firstNonNullClassLoader): Replace with native method. + +2006-12-13 Gary Benson + + * stacktrace.cc (stackwalker_trace_fn, + GetStackWalkerCallingClass): Be less strict about caller. + * gnu/classpath/natVMStackWalker.cc + (getCallingClassLoader): New method. + * gnu/classpath/VMStackWalker.java + (getCallingClassLoader): Replace with native method. + +2006-12-12 Tom Tromey + + * sources.am, Makefile.in: Rebuilt. + * gnu/java/rmi/rmic/CompilerProcess.java: Removed. + * gnu/java/rmi/rmic/RMICException.java: Removed. + * gnu/java/rmi/rmic/Compiler.java: Removed. + * gnu/java/rmi/rmic/Compile_gcj.java: Removed. + * gnu/java/rmi/rmic/Compile_jikes.java: Removed. + * gnu/java/rmi/rmic/TabbedWriter.java: Removed. + * gnu/java/rmi/rmic/Compile_kjc.java: Removed. + * gnu/java/rmi/rmic/RMIC.java: Removed. + * Makefile.am (toolexeclib_LTLIBRARIES): Uncomment + libgcj-tools.la. + (jar_DATA): Uncomment libgcj-tools jar. + (libgcj_tools_la_SOURCES): Uncomment. + (libgcj_tools_la_GCJFLAGS): Likewise. + (libgcj_tools_la_LDFLAGS): Likewise. + (libgcj_tools_la_DEPENDENCIES): Likewise. + (libgcj_tools_la_LINK): Likewise. + (libgcj-tools-$(gcc_version).jar): Uncomment. + (bin_PROGRAMS): Add gappletviewer, gjarsigner, gkeytool, gjar, + gjavah, gnative2ascii, gorbd, grmid, gserialver, gtnameserv. + (gjar_SOURCES): New variable. + (gjar_LDFLAGS): Likewise. + (gjar_LINK): Likewise. + (gjar_LDADD): Likewise. + (gjar_DEPENDENCIES): Likewise. + (gjavah_SOURCES): Likewise. + (gjavah_LDFLAGS): Likewise. + (gjavah_LINK): Likewise. + (gjavah_LDADD): Likewise. + (gjavah_DEPENDENCIES): Likewise. + (gnative2ascii_SOURCES): Likewise. + (gnative2ascii_LDFLAGS): Likewise. + (gnative2ascii_LINK): Likewise. + (gnative2ascii_LDADD): Likewise. + (gnative2ascii_DEPENDENCIES): Likewise. + (gorbd_SOURCES): Likewise. + (gorbd_LDFLAGS): Likewise. + (gorbd_LINK): Likewise. + (gorbd_LDADD): Likewise. + (gorbd_DEPENDENCIES): Likewise. + (grmid_SOURCES): Likewise. + (grmid_LDFLAGS): Likewise. + (grmid_LINK): Likewise. + (grmid_LDADD): Likewise. + (grmid_DEPENDENCIES): Likewise. + (gserialver_SOURCES): Likewise. + (gserialver_LDFLAGS): Likewise. + (gserialver_LINK): Likewise. + (gserialver_LDADD): Likewise. + (gserialver_DEPENDENCIES): Likewise. + (gtnameserv_SOURCES): Likewise. + (gtnameserv_LDFLAGS): Likewise. + (gtnameserv_LINK): Likewise. + (gtnameserv_LDADD): Likewise. + (gtnameserv_DEPENDENCIES): Likewise. + (grmic_LDADD): Link against tools library. + (grmic_LDFLAGS): Changed --main. + (grmiregistry_LDADD): Link against tools library. + (grmiregistry_LDFLAGS): Changed --main. + (grmic_DEPENDENCIES): Updated. + (grmiregistry_DEPENDENCIES): Likewise. + +2006-12-12 Tom Tromey + + * sources.am, Makefile.in: Rebuilt. + * gnu/java/nio/FileLockImpl.java: New override. + * gnu/java/nio/SelectorProviderImpl.java: New override. + * gnu/java/nio/PipeImpl.java: New override. + * gnu/java/nio/SocketChannelSelectionKeyImpl.java: New override. + * gnu/java/nio/NIOSocket.java: New override. + * gnu/java/nio/SocketChannelSelectionKey.java: New override. + * java/io/FileDescriptor.java: New override. + * java/io/RandomAccessFile.java: New override. + * java/io/FileInputStream.java: New override. + * java/io/FileOutputStream.java: New override. + * configure.ac: Pass --disable-Werror, --disable-tool-wrappers to + Classpath configure. + * java/io/ObjectInputStream.java (readClassDescriptor): Don't pass + class loader to ObjectStreamField. + * java/net/DatagramSocket.java: New override. + * java/net/Socket.java: New override. + * java/net/MulticastSocket.java: New override. + * gnu/classpath/VMStackWalker.java (firstNonNullClassLoader): New + method from Classpath. + * java/lang/Class.java (newInstance): Fixed return type. + (forName): Likewise. + (getClasses): Likewise. + (getComponentType): Likewise. + (getConstructors): Likewise. + (getDeclaredClasses): Likewise. + (getDeclaredConstructors): Likewise. + (getDeclaringClass): Likewise. + (getInterfaces): Likewise. + (getSuperclass): Likewise. + (internalGetClasses): Genericized. + (getMethod): Likewise. + (isAssignableFrom): Likewise. + * java/util/zip/natDeflater.cc (getBytesWritten): Renamed. + (getBytesRead): Likewise. + * java/util/zip/Deflater.java (getBytesRead, getBytesWritten): New + methods. + (getTotalIn, getTotalOut): Rewrote. + * java/net/NetworkInterface.java: New override. + * java/lang/ClassLoader.java (defineClass): New overload from + Classpath. + +2006-12-11 Gary Benson + + * gcj/Makefile.in: Rebuilt. + +2006-12-11 Gary Benson + + * Makefile.in: Rebuilt. + * include/Makefile.in: Likewise. + * testsuite/Makefile.in: Likewise. + +2006-12-08 Mohan Embar + + * configure, Makefile.in: Rebuilt. + * configure.ac: (GCJ_FOR_ECJX) New substitution. + (host_exeext): Likewise. + (ENABLE_SHARED): New conditional, + * Makefile.am: Added GCJ_FOR_ECJX and GCJ_FOR_ECJX_LINK. + (install-exec-hook): Correctly rename ecjx to ecj1. + (ecjx_LINK, ecjx_LDFLAGS, ecjx_LDADD, ecjx_DEPENDENCIES): Define + as a function of whether we're doing a native and/or shared build. + +2006-12-08 Mohan Embar + + * posix-threads.cc (_Jv_ThreadUnpark): Removed. + (ParkHelper::unpark): Ported from _Jv_ThreadUnpark. + (ParkHelper::deactivate): Implemented. + (_Jv_ThreadPark): Removed. + (ParkHelper::park): Ported from _Jv_ThreadPark; moved + mutex locking and unlocking to inside if statement. + * win32-threads.cc (compare_and_exchange): New helper function. + (_Jv_ThreadUnpark, _Jv_ThreadPark): Removed. + (ParkHelper::init): Implemented. + (ParkHelper::init_event): Implemented. + (ParkHelper::deactivate): Implemented. + (ParkHelper::destroy): Implemented. + (ParkHelper::unpark): Implemented. + (ParkHelper::park): Implemented. + * java/lang/natThread.cc (initialize_native): Use ParkHelper + instead of POSIX synchronization constructs. + (finalize_native): Likewise. + (interrupt): Use ParkHelper method instead of _Jv_ThreadUnpark(). + (finish_): Use ParkHelper::deactivate(). + * include/jvm.h (struct natThread): Use ParkHelper instead of POSIX + synchronization constructs. + * include/posix-threads.h: Include sysdep/locks.h + (_Jv_ThreadUnpark, _Jv_ThreadPark): Removed. + (ParkHelper): New struct. + (ParkHelper::init): Implemented. + (ParkHelper::destroy): Implemented. + * include/win32-threads.h (ParkHelper): New struct. + (TEXT): undefined this macro. + * sun/misc/natUnsafe.cc (unpark): Use ParkHelper instead of + _Jv_ThreadUnpark. + (park): Use ParkHelper instead of _Jv_ThreadPark. + +2006-12-08 Ben Konrath + + PR libgcj/30110: + * Makefile.am: Add contents of classpath/external to src.zip. + * Makefile.in: Regenerate. + +2006-12-07 Tom Tromey + + PR libgcj/30076: + * defineclass.cc (read_fields): Sort fields here. + (handleFieldsEnd): Removed. + (handleField): Added field map argument. + (struct _Jv_ClassReader): Updated. + (handleParameterAnnotations): Use writeInt for the length. + +2006-12-07 Gary Benson + + * include/java-stack.h (stackwalker_trace_fn, + GetStackWalkerCallingClass): Declare. + * stacktrace.cc (stackwalker_trace_fn, + GetStackWalkerCallingClass): New methods. + * gnu/classpath/natVMStackWalker.cc + (getCallingClass): Use the above. + * gnu/classpath/VMStackWalker.java + (getCallingClass): Replace with native method. + +2006-12-06 Tom Tromey + + PR java/24938: + * sources.am, Makefile.in: Rebuilt. + * gnu/CORBA/DynAn/gnuDynValue.java: Removed. + * gnu/CORBA/DynAn/RecordAny.java: Removed. + * gnu/CORBA/DynAn/RecordAny.h: Rebuilt. + +2006-12-06 Andrew Haley + + * gcj/javaprims.h (_Jv_is_proxy): Declare. + * java/lang/reflect/natVMProxy.cc (_Jv_is_proxy): Define + (run_proxy): Register this proxy invocation with a _Jv_InterpFrame. + * include/java-stack.h (struct _Jv_StackFrame): Add proxyClass and + proxyMethod. + * stacktrace.cc (UnwindTraceFn): Add frame_proxy handling. + (getLineNumberForFrame): Likewise. + (FillInFrameInfo): Likewise. + +2006-12-05 Andrew Haley + + * Makefile.am: Add java/lang/reflect/natVMProxy.cc. + * java/lang/reflect/Method.java (exception_types, parameter_types, + return_type): Make package private. + * include/jvm.h (_Jv_makeUtf8Const(const char *s)): New function. + (_Jv_Linker::layout_vtable_methods): Given + public linkage. + (_Jv_Linker::search_method_in_class): Likewise. + * interpret.cc (_Jv_init_cif): Renamed from init_cif. Given + public linkage. + * include/java-interp.h (_Jv_init_cif): Likewise. + * java/lang/reflect/natVMProxy.cc: New file. + * java/lang/VMCompiler.java (precompiles): New method. + (compileClass): Use it. + * java/lang/reflect/VMProxy.java + (HAVE_NATIVE_GENERATE_PROXY_CLASS): true. + (generateProxyClass): Native. + +2006-12-05 Tom Tromey + + * Makefile.in: Rebuilt. + * Makefile.am (libexecsubdir): New variable. + (install-exec-hook): Install ecj1 in libexecsubdir. + (libexecsub_PROGRAMS): Renamed. + +2006-12-05 Tom Tromey + + PR java/29495: + * testsuite/libjava.lang/PR29495.out: New file. + * testsuite/libjava.lang/PR29495.java: New file. + +2006-12-05 Gary Benson + + * gnu/classpath/natVMStackWalker.cc: Comment fixes. + +2006-12-05 Gary Benson + + * gnu/classpath/natVMStackWalker.cc (getCallingClass): Unwind + the stack when the caller is a compiled frame and the caller + of the caller is an interpreted frame. + +2006-12-04 Adam Megacz + + * gnu/gcj/runtime/natSharedLibLoader.cc (init): add "::" to fix + syntax error + +2006-12-04 Adam Megacz + + * include/win32.h (_Jv_platform_process): change to Win32Process + +2006-12-04 Gary Benson + + * stacktrace.cc (GetClassContext): Remove. + * include/java-stack.h (GetClassContext): Likewise. + +2006-12-04 Gary Benson + + * java/lang/SecurityManager.java: Removed. + * java/lang/VMSecurityManager.java: Likewise. + * java/lang/natVMSecurityManager.cc: Likewise. + * javax/naming/spi/NamingManager.java: Likewise. + * gnu/CORBA/ObjectCreator.java: Likewise. + * sun/reflect/Reflection.java: Replaced with reference. + * sun/reflect/natReflection.cc: Removed. + * gcj/javaprims.h: Removed reference to VMSecurityManager. + * Makefile.am (nat_source_files): Removed natReflection.cc + and natVMSecurityManager.cc. + * sources.am, Makefile.in: Rebuilt. + +2006-12-01 Gary Benson + + * java/net/URLClassLoader.java + (findClass): Inhibit calling this.toString() further into VM + initialization. + (runtimeInitialized): Removed. + * java/net/natURLClassLoader.cc: Removed. + * Makefile.am: Reflect the above. + * Makefile.in: Rebuilt. + +2006-11-30 Tom Tromey + + * java/lang/Class.java (getAnnotations): Don't recurse. + +2006-11-30 Gary Benson + + * include/java-stack.h (GetStackWalkerStack): Declare. + * stacktrace.cc (GetStackWalkerStack): New method. + * gnu/classpath/natVMStackWalker.cc (getClassContext): Likewise. + * gnu/classpath/VMStackWalker.java + (getClassContext): Replace stub with native method declaration. + (getCallingClass): Remove "throws NotImplementedException". + (getCallingClassLoader): Likewise. + +2006-11-30 Gary Benson + + * java/lang/ClassLoader.java: Merged javadoc. + (getParent, getSystemClassLoader): Use VMStackWalker. + +2006-11-30 Gary Benson + + * java/lang/Thread.java: Merged javadoc. + (getContextClassLoader): Use VMStackWalker. + +2006-11-29 Gary Benson + + * java/lang/Package.java: Removed. + * java/security/Security.java: Likewise. + * java/util/ResourceBundle.java: Likewise. + * java/util/natResourceBundle.cc: Likewise. + * Makefile.am (nat_source_files): Removed natResourceBundle.cc. + * sources.am, Makefile.in: Rebuilt. + +2006-11-29 Gary Benson + + * gnu/classpath/VMStackWalker.java: Added javadoc. + +2006-11-27 Andrew Haley + + * sun/reflect/misc/ReflectUtil.java (checkPackageAccess): + Implement. + +2006-11-23 Andrew Haley + + * java/lang/natClassLoader.cc (_Jv_RegisterClasses): Abort if we + are ABI-incompatible. + +2006-11-23 Andrew Haley + + * Makefile.am (nat_source_files): Add gnu/classpath/natVMStackWalker.cc. + * sources.am: Rebuild. + * gnu/classpath/natVMStackWalker.cc: New file. + * gnu/classpath/VMStackWalker.java: New file. + * headers.txt: prepend + _Jv_Thread_t* _Jv_ThreadGetData(java::lang::Thread* thread) + * include/java-stack.h: Add VMStackWalker namespace. + Add friend class gnu::classpath::VMStackWalker. + +2006-11-23 Gary Benson + + * java/security/Security.java: Merge with classpath. + * java/lang/Package.java: Likewise. + +2006-11-21 Andrew Haley + + * java/lang/Class.h: (isEnum, isSynthetic, isAnnotation): Move + to native code. + * java/lang/Class.java (isEnum, isSynthetic, isAnnotation): + Likewise. + +2006-11-17 Andrew Haley + + * java/net/natVMURLConnection.cc: Check for HAVE_MAGIC_OPEN. + * configure.ac: Add HAVE_MAGIC_OPEN. + * include/config.h.in: Regenerated. + * configure: Regenerated. + +2006-11-07 Andrew Haley + + * java/lang/VMCompiler.java (compileClass): Revert mistaken + change. + + * java/lang/natVMClassLoader.cc (defineClass): Register the new + class with the initiating loader. + +2006-11-06 Andrew Haley + + * defineclass.cc (prepare_pool_entry): Be careful about which + constant pool entries have their '/' characters stripped. + (handleGenericSignature): Likewise. + (handleAnnotationElement): Likewise. + (handleAnnotation): Likewise. + (read_one_class_attribute): Likewise. + (handleMethod): Likewise. + + * include/java-cpool.h (JV_CONSTANT_LazyFlag): New. + * java/lang/natClass.cc (check_constant): Likewise. + * link.cc (resolve_pool_entry): Mask JV_CONSTANT_LazyFlag. + +2006-11-01 Andrew Haley + + * java/lang/natClass.cc (parseAnnotationElement): Set result from + anno_class. + +2006-10-21 Tom Tromey + + * testsuite/libjava.lang/PR260.out: Rewrote for 1.5. + * testsuite/libjava.lang/pr179.out: Rewrote for 1.5. + * testsuite/libjava.lang/pr179.java: Updated comments. + * testsuite/libjava.compile/inner_1.xfail: Removed. + +2006-10-20 Tom Tromey + + * testsuite/libjava.cni/cni.exp (gcj_cni_build_headers): Don't use + jv-scan. + * testsuite/lib/libjava.exp (test_libjava_from_javac): Removed. + (find_jvscan): Removed. + +2006-10-20 Tom Tromey + + * testsuite/libjava.jni/jni.exp (gcj_jni_build_header): Use + -force. + * testsuite/lib/libjava.exp (find_gcjh): Find 'gjavah' instead. + * testsuite/libjava.cni/cni.exp (gcj_cni_build_headers): Pass -cni + and -force to gcjh. + * Makefile.in: Rebuilt. + * Makefile.am (MYGCJH): Use gjavah. + +2006-10-18 Tom Tromey + + PR classpath/28203: + * java/lang/Class.java (getAnnotations): Rewrote. + * java/lang/reflect/Method.java (METHOD_MODIFIERS): Now + package-private. + * java/lang/reflect/Field.java (FIELD_MODIFIERS): Now + package-private. + * gcj/field.h (_Jv_FIELD_CONSTANT_VALUE): Removed. + * defineclass.cc (handleConstantValueAttribute): Added found_value + argument. Don't use _Jv_FIELD_CONSTANT_VALUE. + (read_one_field_attribute): Updated. + (read_fields): Likewise. + (handleField): Mask with FIELD_MODIFIERS, not ALL_FLAGS. + (handleMethod): Mask with METHOD_MODIFIERS, not ALL_FLAGS. + +2006-10-17 Tom Tromey + + * defineclass.cc (handleMemberAnnotations): Write member index + after 'kind'. + (handleAnnotation): Call prepare_pool_entry. + * java/lang/reflect/natMethod.cc (getDeclaredAnnotationsInternal): + Removed unused variable. + (getParameterAnnotationsInternal): Likewise. + * java/lang/reflect/natField.cc (getDeclaredAnnotationsInternal): + Removed unused variable. + * java/lang/reflect/natConstructor.cc + (getDeclaredAnnotationsInternal): Removed unused variable. + (getParameterAnnotationsInternal): Likewise. + * java/lang/natClass.cc (parseAnnotation): Create annotation. + (parseAnnotationElement): Handle 'c' and 'e' cases more + correctly. + (getMethodDefaultValue): Fixed variable names. + (parseAnnotationElement): Create String for 's' entry. + * java/lang/reflect/Constructor.java (getAnnotation): New method. + * java/lang/reflect/Field.java (getAnnotation): New method. + * java/lang/reflect/Method.java (getAnnotation): New method. + +2006-10-17 Tom Tromey + + * java/lang/natClass.cc (parseAnnotationElement): Expect a utf8 + constant in the "string" case. + * defineclass.cc (handleAnnotationElement): Expect a utf8 constant + in the "string" case. + +2006-10-17 Tom Tromey + + * configure, Makefile.in: Rebuilt. + * Makefile.am (install-exec-hook): Now unconditional. Rename ecjx + if needed. + (jar_DATA): Add ecj jar when needed. + (toolexec_PROGRAMS): New variable. + (ecjx_SOURCES, ecjx_LDFLAGS, ecjx_LDADD, ecjx_DEPENDENCIES): + Likewise. + * prims.cc (JvRunMainName): New function. + * include/jvm.h (JvRunMainName): Declare. + * configure.ac: Added --with-ecj-jar. + (ECJ_JAR): New subst. + (ECJ_BUILD_JAR): Likewise. + (INSTALL_ECJ_JAR): New conditional. + (BUILD_ECJ1): Likewise. + +2006-10-13 Tom Tromey + + * HACKING: Updated. + * sources.am, Makefile.in: Rebuilt. + * scripts/makemake.tcl (emit_bc_rule): Updated for class files in + srcdir. + (emit_package_rule): Likewise. + (emit_process_package_rule): Likewise. + * Makefile.am (gcjh.stamp): Conditional on MAINTAINER_MODE. Put + headers in srcdir. + (libgcj-$(gcc_version).jar): Updated to find classes in source + tree. + (BOOTCLASSPATH): Likewise. + (install-data-local): Likewise. + Added all the .class and CNI .h files. + +2006-10-12 Andrew Haley + + * java/lang/natThreadLocal.cc: New file. + * java/lang/ThreadLocal.java: Rewrite to use native TLS. + * Makefile.am: Add java/lang/natThreadLocal.cc. + * sources.am: Move classpath/java/lang/ThreadLocal.java to + java/lang/ThreadLocal.java. + +2006-10-11 Tom Tromey + + * sources.am, Makefile.in, include/config.h.in, configure: + Rebuilt. + * Makefile.am (nat_source_files): Added natConfiguration.cc. + * gnu/classpath/natConfiguration.cc: New file. + * configure.ac (AWT_TOOLKIT): New define. + (LIBGCJ_PREFIX): Likewise. + * gnu/classpath/Configuration.java: New file. + * sources.am: Rebuilt. + * scripts/makemake.tcl: Don't special case Configuration.java. + +2006-10-10 Tom Tromey + + * gcj/javaprims.h: Updated. + * sources.am, Makefile.in: Rebuilt. + * standard.omit.in: Removed process source files. + * scripts/makemake.tcl: Removed ConcreteProcess special case. + (emit_package_rule): Also special-case Process. + (emit_process_package_rule): New proc. + * Makefile.am (inner_nat_headers): Removed + PLATFORM_INNER_NAT_HDRS. + * configure: Rebuilt. + * configure.ac (PLATFORM_INNER_NAT_HDRS): Removed subst. + Don't create ConcreteProcess.java link. + (PLATFORM): New subst. + * java/lang/natWin32Process.cc: Updated. + * java/lang/natPosixProcess.cc: Updated. + * java/lang/natEcosProcess.cc: Updated. + * java/lang/Win32Process.java (Win32Process): Renamed from + ConcreteProcess. + * java/lang/EcosProcess.java (EcosProcess): Renamed from + ConcreteProcess. + * java/lang/PosixProcess.java (PosixProcess): Renamed from + ConcreteProcess. + * include/win32.h (_Jv_platform_process): New define. + * java/lang/natRuntime.cc (execInternal): Use + _Jv_platform_process. + * include/posix.h (_Jv_platform_process): New define. + +2006-10-09 Andrew Haley + + * win32-threads.cc (_Jv_ThreadUnpark, _Jv_ThreadPark): New + functions. + +2006-10-06 Tom Tromey + + PR libgcj/29278: + * Makefile.in: Rebuilt. + * Makefile.am ($(generic_header_files)): Depend on gcjh.stamp. + (gcjh.stamp): New target. + +2006-10-06 Andrew Haley + + * posix-threads.cc (_Jv_ThreadUnpark, _Jv_ThreadPark): Moved here + from sun/misc/natUnsafe.cc. + * sun/misc/natUnsafe.cc (class spinlock): New class. + (compareAndSwap): New methods. + (compareAndSwapInt, compareAndSwapLong, compareAndSwapObject) + (putOrderedLong, putLongVolatile, putObjectVolatile, putLong) + (getIntVolatile, getObjectVolatile, getLong, getLongVolatile): + Rewrite to use gcj's own atomic functions rather than gcc + builtins. + (unpark): Moved to posix-threads.cc + (park): Likewise. + * include/jvm.h (struct natThread::alive_flag): Moved here from + Thread.java. + (struct natThread): Likewise. + * include/posix-threads.h: (_Jv_ThreadUnpark, _Jv_ThreadPark): + moved here from sun/misc/natUnsafe.cc. + * java/lang/natThread.cc (initialize_native): Set alive_flag here. + (isAlive): Moved here from Thread.java. + (interrupt): alive_flag is now in the natThread structure. + (interrupt): Call _Jv_ThreadUnpark(). + (finish_): parkPermit and alive_flag are now in the natThread + structure. + (start): LIkewise. + (_Jv_AttachCurrentThread): Likewise. + * java/lang/Thread.java (alive_flag): Remove. + (parkPermit): Likewise. + (Thread): Don't set alive_flag. + (isAlive): Make native. + +2006-09-13 Andrew Haley + + * Makefile.am: Add sun/reflect/natReflection.cc. + * Makefile.in: Rebuild. + * sun/reflect/natReflection.cc: New file. + * sun/reflect/Reflection.java (getCallerClass): Now native. + * stacktrace.cc (GetClassContext): Don't check the class if + checkClass is NULL. + +2006-09-12 Andrew Haley + + * java/lang/Thread.java (alive_flag): Make it a byte. + (THREAD_DEAD, THREAD_ALIVE, THREAD_SIGNALED): new constants. + (parkPermit): New variable. + (data): Now package private. + (Thread): Set alive_flag to THREAD_DEAD, not false. + (isAlive): Test against THREAD_DEAD. + * java/lang/natThread.cc (initialize_native): Initialize + park_mutex and park_cond. + (finish_): Set parkPermit THREAD_PARK_DEAD. + (interrupt): Rewrite. Use an atomic update rather than a mutex to + access alive_flag. + If the thread is parked, unpark it. + (start): Set alive_flag to THREAD_ALIVE, not true. + (finalize_native): Destroy park_mutex and park_cond. + * sun/misc/natUnsafe.cc (unpark): New method. + (park): New method. + * include/jvm.h (struct natThread): Moved here. + +2006-06-07 Andrew Haley + + * include/jvm.h (_Jv_Linker::maybe_adjust_signature): New. + (_Jv_Linker::uaddr): New. + * link.cc (resolve_pool_entry): Call search_method_in_superclasses + instead of an open-coded loop around search_method_in_class. + (search_method_in_class): Add a new arg, check_perms. + (search_method_in_superclasses): New. + (link_symbol_table): Call maybe_adjust_signature() to extract the + least significnt bit of the signature pointer. Do this three + times, for instace method calls, static methods, and interfaces. + Call search_method_in_superclasses() instead of + _Jv_LookupDeclaredMethod. + (typedef uaddr): Delete. + +2006-09-11 Andrew Haley + + * gij.cc (main): Remove bogus code that sets LTDL_SHLIBPATH_VAR + and forks. + +2006-06-16 Andrew Haley + + * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Don't + copy the whole Class instance from the initializer: instead, copy + everything but the first word (the vtable pointer). + Change prototype to (const char* class_initializer). + (_Jv_RegisterNewClasses): Change prototype to (const char**). + * java/lang/Class.h (_Jv_RegisterNewClasses): Change prototype to + (const char**). + +2006-08-31 Tom Tromey + + PR libgcj/28698: + * libgcj_bc.c (DECLARE_PRIM_TYPE): New macro. Declare primitive + classes. + +2006-08-21 Bryce McKinlay + + * java/lang/natThread.cc (_Jv_AttachCurrentThread): Attach thread + to GC. + (_Jv_DetachCurrentThread): Detach thread from GC. + * include/boehm-gc.h (_Jv_GCAttachThread, _Jv_GCDetachThread): + Declare. + * boehm.cc (_Jv_GCAttachThread): New function. + (_Jv_GCDetachThread): Likewise. + +2006-08-16 Jakub Jelinek + Bryce McKinlay + + * configure, Makefile.in: Rebuilt. + * Makefile.am (toolexeclib_LTLIBRARIES): Add libgcj_bc.la. + (libgcj_bc_la_SOURCES): New variable. + (libgcj_bc_la_LDFLAGS): Likewise. + (libgcj_bc_la_LIBADD): Likewise. + (libgcj_bc_la_DEPENDENCIES): Likewise. + (libgcj_bc_la_LINK): Likewise. + (libgcj_bc_dummy_LINK): Likewise. + (libgcj_bc.la): New target. + (install-exec-hook): Likewise. + * libgcj.spec.in (*lib): Use LIBGCJ_SPEC. + * libgcj_bc.c: New file. + * configure.ac (LIBGCJ_SPEC): New subst. + * configure.host (use_libgcj_bc): New variable. + +2006-08-26 Andrew John Hughes + + * link.cc: + Increment loaded classes when printing verbose output. + * gnu/java/lang/management/natVMMemoryMXBeanImpl.cc: + Added comments. + * gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc: + (getMemoryManagerNames(jstring)): Implemented. + (isValid(jstring)): Implemented. + * gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc: + (getLoadedClassCount()): Implemented. + (getUnloadedClassCount()): Likewise. + (isVerbose()): Likewise. + (setVerbose(jboolean)): Likewise. + * java/lang/management/natVMManagementFactory.cc: + (getMemoryPoolNames()): Implemented. + (getMemoryManagerNames()): Likewise. + (getGarbageCollectorNames()): Likewise. + * include/jvm.h: + Add loaded and unloaded class counts. + * defineclasses.c: + Increment loaded classes count. + * prims.cc: + Add loaded and unloaded class counts. + +2006-08-16 Tom Tromey + + * include/posix-threads.h (_Jv_MutexLock): No longer inline. + * posix-threads.cc (_Jv_CondWait): Set thread's state. + * include/jvm.h (class JvSetThreadState): New class. + (JvThreadState): New enum. + * java/lang/Thread.java (state): New field. + * java/lang/natThread.cc (_Jv_ThreadRun): Use + getUncaughtExceptionHandler. + (start): Set state. + (_Jv_AttachCurrentThread): Likewise. + (finish_): Likewise. + (getState): Wrote. + +2006-08-15 Tom Tromey + + * gnu/gcj/runtime/natSharedLibLoader.cc (init): Added missing + '::'. + * gnu/gcj/convert/natIconv.cc (init): Added missing '::'. + (read): Likewise. + * gnu/gcj/natCore.cc (create): Added missing '::'. + * gnu/classpath/natSystemProperties.cc (insertSystemProperties): + Added missing '::' + +2006-08-14 Tom Tromey + + * Makefile.in: Rebuilt. + * Makefile.am (libgcj_la_LIBADD): Add LIBMAGIC. + * java/net/natVMURLConnection.cc: Wrote, based on Classpath. + * configure, config.h.in: Rebuilt. + * configure.ac: Check for magic.h and -lmagic. + +2006-08-14 Tom Tromey + + * java/lang/natThread.cc (getId): Removed. + * java/lang/Thread.java (threadId): New field. + (totalThreadsCreated): Likewise. + (Thread): Set threadId. + (getId): No longer native. + +2006-08-14 Tom Tromey + + * sources.am, Makefile.in: Rebuilt. + * Makefile.am (nat_source_files): Added new .cc files. + (libgcj-$(gcc_version).jar): Include 'sun'. + (src.zip): Likewise. + * java/lang/natThread.cc (getId): New stub. + (getState): Likewise. + * scripts/makemake.tcl (emit_source_var): Use -decreasing when + sorting. + * gnu/java/lang/management/natVMMemoryMXBeanImpl.cc: New file. + * gnu/java/lang/management/natVMCompilationMXBeanImpl.cc: New file. + * gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc: New + file. + * gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc: New file. + * gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc: New file. + * gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc: New file. + * gnu/java/lang/management/natVMThreadMXBeanImpl.cc: New file. + * gnu/java/nio/natVMChannel.cc: New file. + * gcj/javaprims.h: Updated. + * sources.am: Likewise. + * java/lang/management/natVMManagementFactory.cc: New file. + * java/net/natVMURLConnection.cc: New file. + * java/util/concurrent/atomic/natAtomicLong.cc: New file. + * sun/misc/natUnsafe.cc: New file. + +2006-08-07 Andrew John Hughes + + * libjava/Makefile.in, + * libjava/sources.am: + Regenerated. + * libjava/scripts/makemake.tcl: + Added gconf and dnd peers as BC. + +2006-08-07 Andrew John Hughes + + * libjava/Makefile.in, + * libjava/sources.am: + Regenerated. + * libjava/scripts/makemake.tcl: + Added external/jsr166. + +2006-08-07 Andrew John Hughes + + * libjava/configure, + * libjava/Makefile.in: + Regenerated. + * libjava/scripts/makemake.tcl: + Handle the Escher peers as we handle Qt. + * libjava/gcj/Makefile.in: + Regenerated. + * libjava/configure.ac: + Handle Escher peers and disable plugin when Gtk+ is not used. + * libjava/sources.am: + Regenerated. + * libjava/classpath/gnu/java/awt/peer/x/fonts.properties: + Removed (as recently on generics branch of Classpath). + * libjava/include/Makefile.in, + * libjava/testsuite/Makefile.in: + Regenerated. + +2006-07-23 Andrew John Hughes + + * libjava/Makefile.in: + Regenerated. + * libjava/scripts/classes.pl: + Ignore .svn directories. + * libjava/scripts/makemake.tcl: + Include sun directory. + * libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java, + * libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java, + * libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java, + * libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java, + * libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java, + * libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java, + * libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java, + * libjava/gnu/java/nio/VMChannel.java: + Copied over from classpath/vm/reference. + * libjava/gnu/java/nio/channels/FileChannelImpl.java: + (getNativeFD()): Implemented. + * libjava/gcj/javaprims.h: + Updated for generics merge from 20060709. + * libjava/javax/naming/spi/NamingManager.java: + Copied over from classpath/vm/reference. + * libjava/sources.am: + Regenerated. + * libjava/java/lang/Thread.java: + (getId()): Implemented. + (getState()): Likewise. + (getAllStackTraces()): Likewise. + (getStackTrace()): Likewise. + * libjava/java/lang/management/VMManagementFactory.java, + * libjava/java/net/VMURLConnection.java: + Copied over from classpath/vm/reference. + * libjava/classpath/vm/reference/java/lang/management/VMThreadInfo.java: + Removed. + * libjava/classpath/native/fdlibm/namespace.h: + Changed back to GCJ LOCAL version. + * libjava/sun/reflect/Reflection.java, + * libjava/sun/reflect/misc/ReflectUtil.java, + * libjava/sun/misc/Unsafe.java: + Copied over from classpath/vm/reference. + +2006-07-07 Andrew John Hughes + + * sources.am, Makefile.in: Rebuilt. + * gnu/java/lang/management/VMRuntimeMXBeanImpl.java, + * gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc: + New files. + * include/jvm.h: + Add new variables used in prims.cc. + * Makefile.am: + Add natVMRuntimeMXBeanImpl.cc. + * prims.cc: + (_Jv_CreateJavaVM): Retain start time and input + arguments. + +2006-07-21 Tom Tromey + + PR libgcj/4105: + * java/lang/natClass.cc (findInnerClassAttribute): New method. + (findDeclaredClasses): Likewise. + (getDeclaredClasses): Implemented. + (getDeclaringClass): Likewise. + (isAnonymousClass): Likewise. + (isMemberClass): Likewise. + (check_constant): Pass message in exception. Allow resolved + constants. + (resolve_class_constant): New function. + * defineclass.cc (read_one_class_attribute): Handle InnerClasses. + * java/lang/Class.h (isAnonymousClass, isLocalClass, + isMemberClass): Declare. + * java/lang/Class.java (getSimpleName): Implemented. + (isAnonymousClass, isLocalClass, isMemberClass): New methods. + +2006-07-16 Tom Tromey + + * configure: Rebuilt. + * configure.ac (JV_API_VERSION, JV_VERSION): Claim 1.5. + +2006-07-12 Andrew Haley + + * Makefile.am (java/lang/Object.lo): Add -fsource-filename. + (java/lang/Class.lo): Likewise. + * Makefile.in: Regenerate. + +2006-07-07 Tom Tromey + + * defineclass.cc (input_data, input_offset): New fields. + (reflection_data, data_stream): Likewise. + (get_reflection_stream): New method. + (_Jv_ClassReader): Initialize new fields. + (parse): Call finish_reflection_data. + (finish_reflection_data): New method. + (handleEnclosingMethod): Likewise. + (handleGenericSignature): Likewise. + (handleAnnotationElement): Likewise. + (handleAnnotation): Likewise. + (handleAnnotations): Likewise. + (handleMemberAnnotations): Likewise. + (handleAnnotationDefault): Likewise. + (handleParameterAnnotations): Likewise. + (read_one_field_attribute): Handle new attributes. + (read_one_method_attribute): Likewise. + (read_one_class_attribute): Likewise. + * include/jvm.h (resolve_method_entry): New method. + * java/lang/Class.h (jv_attr_type, jv_attr_kind): New enums. + (Class): Updated for new methods. Field, Method, Constructor now + friends. + (reflection_data): New field. + * java/lang/Class.java (asSubclass, cast): New methods. + (getEnclosingClass, getEnclosingConstructor): Now native. + (getEnclosingMethod): Likewise. + (getClassSignature): New method. + (getGenericInterfaces, getGenericSuperclass, getTypeParameters): + Likewise. + (Class): Implements AnnotatedElement. + (getAnnotation, isAnnotationPresent, getAnnotations): New methods. + (getDeclaredAnnotations): New method. + (getDeclaredAnnotationsInternal): Likewise. + * java/lang/reflect/natConstructor.cc (anno_a_t, anno_aa_t): New + typedefs. + (getSignature): New method. + (getDeclaredAnnotationsInternal): Likewise. + (getParameterAnnotationsInternal): Likewise. + * java/lang/reflect/natField.cc (anno_a_t): New typedef. + (getSignature): New method. + (getDeclaredAnnotationsInternal): Likewise. + * java/lang/reflect/natMethod.cc (anno_a_t, anno_aa_t): New + typedefs. + (getSignature): New method. + (getDefaultValue): Likewise. + (getDeclaredAnnotationsInternal): Likewise. + (getParameterAnnotationsInternal): Likewise. + * java/lang/reflect/Constructor.java (addTypeParameters): + Genericized. + (getSignature): Now native. + (getDeclaredAnnotations, getDeclaredAnnotationsInternal, + getParameterAnnotations, getParameterAnnotationsInternal): New + methods. + * java/lang/reflect/Field.java (getDeclaringClass, getType): + Genericized. + (getSignature): Now native. + (getDeclaredAnnotations, getDeclaredAnnotationsInternal): New + methods. + * java/lang/reflect/Method.java (getReturnType): Genericized. + (getParameterTypes, getExceptionTypes, getTypeParameters): + Likewise. + (getSignature): Now native. + (getDefaultValue, getDeclaredAnnotations, + getParameterAnnotations, getDeclaredAnnotationsInternal, + getParameterAnnotationsInternal): New methods. + * java/lang/natClass.cc (read_u1): New functions. + (read_u2): Likewise. + (read_4): New function. + (getReflectionSignature): New methods. + (getClassSignature): New method. + (getEnclosingMethodData): Likewise. + (getEnclosingClass): Likewise. + (getEnclosingMethod): Likewise. + (getEnclosingConstructor): Likewise. + (check_constant): New function. + (parseAnnotationElement): Likewise. + (parseAnnotation): Likewise. + (parseAnnotations): Likewise. + (parseParameterAnnotations): Likewise. + (getMethodDefaultValue): New method. + (getDeclaredAnnotations): New methods. + (getDeclaredAnnotationsInternal): New method. + * boehm.cc (_Jv_MarkObj): Mark 'reflection_data' field. + * link.cc (resolve_method_entry): New method. + (resolve_pool_entry): Use it. + +2006-07-07 Andrew Haley + + * Makefile.am: Use -fsource-filename when compiling libgcj. + * Makefile.in: Regenerate. + +2006-06-23 Tom Tromey + + Merged in classpath-generics. + * sources.am, Makefile.in: Rebuilt. + * Makefile.am (generic_header_files): Don't filter out omitted + headers. + (generic_header_files): Rewrote. + (MYGCJH): New variable. + Removed all .h rules. + * headers.txt: New file. + * java/io/PrintStream.java (PrintStream): Implement Appendable. + * java/lang/Class.java: Genericized. + (getEnumConstants): New method. + (isEnum): Likewise. + (isSynthetic): Likewise. + (isAnnotation): Likewise. + * java/lang/reflect/Constructor.java (getDeclaringClass, + getTypeParameters, declaringClass): Genericized. + * java/lang/reflect/Method.java (invoke): Now varargs. + * java/lang/ref/Reference.java (Reference): Imported genericized + version from Classpath. + (get): Now native. + * java/lang/ref/natReference.cc (get): New method. + * java/lang/ProcessBuilder.java: New file. + * java/lang/System.java (environmentMap): New field. + (clearProperty): New method. + (getenv): Likewise. + (EnvironmentCollection): New class. + (EnvironmentMap): Likewise. + (EnvironmentSet): Likewise. + * java/lang/StringBuilder.java (StringBuilder): Implements + Appendable. + * gnu/classpath/SystemProperties.java (remove): New method. + +2006-06-23 Tom Tromey + + * testsuite/libjava.loader/TestLeak.java: Don't use wildcard + import for java.lang.reflect. + +2006-06-21 Tom Tromey + + * gnu/classpath/natSystemProperties.cc (insertSystemProperties): + Set java.class.version to 49. + +2006-06-21 Tom Tromey + + * link.cc (resolve_pool_entry): Initialize field's declaring + class, not its qualifying class. + +2006-06-21 Tom Tromey + + * testsuite/libjava.jacks/jacks.xfail: Updated for ecj. + +2006-06-20 Tom Tromey + + * testsuite/libjava.compile/Where.xfail: Now 'no-link'. + +2006-06-19 Tom Tromey + + * gnu/java/lang/natMainThread.cc (call_main): Link main class. + +2006-06-19 Tom Tromey + + * testsuite/lib/libjava.exp (test_libjava): Don't compile via + bytecode. Run BC compilations from source. + +2006-06-19 Tom Tromey + + * testsuite/libjava.lang/TestProxy.java: Don't use wildcard + imports for java.lang.reflect. + +2006-06-13 Tom Tromey + + * testsuite/libjava.lang/stringconst.xfail: Removed. + * testsuite/libjava.lang/ArrayStore2.xfail: Removed. + +2006-06-08 Tom Tromey + + * sources.am, Makefile.in: Rebuilt. + * Makefile.am (libgcj_la_LIBADD): Add Object.lo and Class.lo. + (java/lang/Object.lo): New target. + (java/lang/Class.lo): Likewise. + * scripts/makemake.tcl (emit_package_rule): Add special case for + Object and Class. + +2006-06-06 Tom Tromey + + * Makefile.in: Rebuilt. + * Makefile.am (gcj_dbtool_DEPENDENCIES): Add gcj_dbtool.lo. + +2006-06-06 Tom Tromey + + * Makefile.in: Rebuilt. + * Makefile.am (nat_headers): Don't list Main.h. + (generic_header_files): Likewise. + +2006-06-05 Tom Tromey + + * testsuite/libjava.loader/TestLeak.java (MyLoader): Now static. + * testsuite/libjava.jacks/jacks.exp (gcj_jacks_write): Use -w. + * testsuite/lib/libjava.exp (libjava_arguments): Add -w. + * testsuite/libjava.compile/G19990210_2.java: Removed. + * testsuite/libjava.compile/PR208.java: Removed. + * testsuite/libjava.compile/PR208.xfail: Removed. + * testsuite/libjava.compile/support/Case.java: Removed. + * testsuite/libjava.compile/Case.java: Removed. + +2006-06-04 Tom Tromey + + * sources.am, Makefile.in: Rebuilt. + * Makefile.am (gcj_dbtool_LDADD): Add + gnu-gcj-tools-gcj_dbtool.lo. + (gcj_dbtool_SOURCES): Updated. + (EXTRA_libgcj_la_SOURCES): New macro. + * scripts/makemake.tcl (emit_package_rule): Compile class files + from the package. + (gcj_dbtool/Main.java, Class.java, Object.java): Removed + package_map settings. + (emit_package_rule): Special case gnu.gcj.tools.gcj_dbtool. + +2006-06-04 Tom Tromey + + * java/lang/Class.java (getClassLoaderInternal): Now native. + 2006-12-20 Adam Megacz * configure.ac: add $built_gcc_dir to $GCJH and $GCJ when diff --git a/libjava/HACKING b/libjava/HACKING index 9c8f531ebb6..3c07e5ab4d9 100644 --- a/libjava/HACKING +++ b/libjava/HACKING @@ -62,9 +62,14 @@ To import a new release: scripts/makemake.tcl > sources.am automake - Build, fix, till everything works. + Be sure to update gnu/classpath/Configuration.java to reflect + the new version Possibly update the gcj/javaprims.h file with scripts/classes.pl (See below, it can only be done after the first source->bytecode pass has finished.) + You will need to configure with --enable-maintainer-mode and you + will need to update the .class files and generated CNI header files in + your working tree Over time we plan to remove as many of the remaining divergences as possible. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index d2b5a49c65f..9f11234e04e 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -29,6 +29,8 @@ target_noncanonical = @target_noncanonical@ # This is required by TL_AC_GXX_INCLUDE_DIR. libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) +libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) + ## ## What gets installed, and where. ## @@ -50,6 +52,9 @@ pkgconfigdir = $(libdir)/pkgconfig jardir = $(datadir)/java jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar +if INSTALL_ECJ_JAR +jar_DATA += $(ECJ_BUILD_JAR) +endif if JAVA_HOME_SET JAVA_HOME_DIR = $(JAVA_HOME) @@ -67,7 +72,8 @@ db_pathtail = gcj-$(gcc_version)/$(db_name) ## For now, only on native systems. FIXME. if NATIVE bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool \ - gappletviewer gjarsigner gkeytool + gappletviewer gjarsigner gkeytool gjar gjavah gnative2ascii \ + gorbd grmid gserialver gtnameserv ## It is convenient to actually build and install the default database ## when gcj-dbtool is available. @@ -76,6 +82,13 @@ endif bin_SCRIPTS = addr2name.awk +if BUILD_ECJ1 +## We build ecjx and not ecj1 because in one mode, ecjx will not work +## until after 'make install', and we don't want it to be picked up in +## the build tree by gcj via a -B option. +libexecsub_PROGRAMS = ecjx +endif + ## ################################################################ ## @@ -94,6 +107,8 @@ extra_ldflags_libjava = @extra_ldflags_libjava@ GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \ $(LDFLAGS) -o $@ +GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ +GCJ_FOR_ECJX_LINK = $(GCJ_FOR_ECJX) -o $@ LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) \ $(LDFLAGS) $(extra_ldflags_libjava) -o $@ @@ -154,7 +169,7 @@ AM_CPPFLAGS = -I$(top_srcdir) \ $(GCINCS) $(THREADINCS) $(INCLTDL) \ $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) -BOOTCLASSPATH = $(here)/classpath/lib +BOOTCLASSPATH = $(srcdir)/classpath/lib ## ################################################################ @@ -172,7 +187,6 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \ libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc stacktrace.cc \ link.cc defineclass.cc interpret.cc verify.cc \ - java/lang/Class.java java/lang/Object.java \ $(nat_source_files) if USING_BOEHMGC @@ -219,17 +233,28 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcj_la_LIBADD = \ classpath/native/fdlibm/libfdlibm.la \ + java/lang/Object.lo \ + java/lang/Class.lo \ + java/process-$(PLATFORM).lo \ $(all_packages_source_files:.list=.lo) \ $(bc_objects) \ $(propertyo_files) \ - $(LIBFFI) $(ZLIBS) $(GCLIBS) + $(LIBMAGIC) $(LIBFFI) $(ZLIBS) $(GCLIBS) libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ + java/lang/Object.lo \ + java/lang/Class.lo \ + java/process-$(PLATFORM).lo \ $(all_packages_source_files:.list=.lo) \ $(LIBLTDL) $(libgcj_la_LIBADD) libgcj_la_LINK = $(LIBLINK) -libgcj_tools_la_SOURCES = classpath/tools/tools.jar -libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes +## A hack to make sure the various gcj-related macros, like +## LTGCJCOMPILE, are defined by automake. This is never actually +## compiled. +EXTRA_libgcj_la_SOURCES = java/lang/Object.java + +libgcj_tools_la_SOURCES = classpath/tools/tools.zip +libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes -fsource-filename=$(here)/classpath/tools/all-classes.lst libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec @@ -303,10 +328,12 @@ $(propertyo_files): %.lo: classpath/resource/% $(LTGCJCOMPILE) -o $@ -c $< -Wc,--resource,$(@:.lo=) libgcj-$(gcc_version).jar: classpath/lib/compile-classes - cd classpath/lib; $(JAR) -cfM \ - ../../libgcj-$(gcc_version).jar gnu java javax org +## Note that this now omits the property files. +## It doesn't matter since we don't use the jar at runtime. + here=`pwd`; cd $(srcdir)/classpath/lib; $(JAR) -cfM \ + $$here/libgcj-$(gcc_version).jar gnu java javax org sun -libgcj-tools-$(gcc_version).jar: classpath/tools/tools.jar +libgcj-tools-$(gcc_version).jar: classpath/tools/tools.zip cp $< $@ CLEANFILES = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar @@ -339,7 +366,13 @@ lib-gnu-awt-xlib.la: $(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_DEPEND ## Compiling a list of java sources to a single .o. %.lo: %.list - $(LTGCJCOMPILE) -c -o $@ -MT $@ -MD -MP -MF $(basename $@).deps @$< + $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(here)/classpath/lib/classes -MT $@ -MD -MP -MF $(basename $@).deps @$< + +java/lang/Object.lo: classpath/lib/java/lang/Object.class + $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(srcdir)/$(basename $@).java $< + +java/lang/Class.lo: classpath/lib/java/lang/Class.class + $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(srcdir)/$(basename $@).java $< ## ################################################################ @@ -358,13 +391,18 @@ omitted_headers = java/lang/ClassLoader.h java/lang/Thread.h \ java/lang/reflect/Field.h java/lang/reflect/Method.h \ java/lang/reflect/Proxy.h gnu/gcj/runtime/ExtensionClassLoader.h -generic_header_files = $(filter-out $(omitted_headers),$(ordinary_header_files) $(xlib_nat_headers)) \ - gnu/gcj/tools/gcj_dbtool/Main.h +generic_header_files = $(ordinary_header_files) $(xlib_nat_headers) + +MYGCJH = gjavah + +$(generic_header_files): gcjh.stamp -$(generic_header_files): %.h: classpath/lib/%.class - name=`echo $< | sed -e 's/\.class$$//' -e 's,classpath/lib/,,'`; \ - $(mkinstalldirs) `dirname $$name`; \ - $(GCJH) -d . -classpath '' -bootclasspath classpath/lib $$name +gcjh.stamp: classpath/lib/compile-classes +if JAVA_MAINTAINER_MODE + $(MYGCJH) --cni --all $(srcdir)/classpath/lib \ + --cmdfile=$(srcdir)/headers.txt -d $(srcdir) --force +endif + echo > gcjh.stamp inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ java/io/ObjectInputStream$$GetField.h \ @@ -376,170 +414,42 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ gnu/java/net/PlainSocketImpl$$SocketInputStream.h \ gnu/java/net/PlainSocketImpl$$SocketOutputStream.h \ gnu/java/nio/PipeImpl$$SinkChannelImpl.h \ - gnu/java/nio/PipeImpl$$SourceChannelImpl.h \ - $(PLATFORM_INNER_NAT_HDRS) + gnu/java/nio/PipeImpl$$SourceChannelImpl.h -nat_headers = $(ordinary_header_files) $(inner_nat_headers) \ - gnu/gcj/tools/gcj_dbtool/Main.h +nat_headers = $(ordinary_header_files) $(inner_nat_headers) nat_headers_install = $(ordinary_header_files) xlib_nat_headers = $(gnu_awt_xlib_header_files) $(gnu_gcj_xlib_header_files) -java/lang/ClassLoader.h: classpath/lib/java/lang/ClassLoader.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \ - -prepend 'void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \ - -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);' \ - java/lang/ClassLoader - -java/lang/Thread.h: classpath/lib/java/lang/Thread.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'class _Jv_JNIEnv;' \ - -prepend 'class _Jv_Thread_t;' \ - -prepend '#define _JV_NOT_OWNER 1' \ - -prepend '#define _JV_INTERRUPTED 2' \ - -prepend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \ - -prepend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \ - -prepend 'void _Jv_ThreadRun (java::lang::Thread* thread);' \ - -prepend 'jint _Jv_AttachCurrentThread(java::lang::Thread* thread);' \ - -prepend 'java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \ - -prepend 'java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \ - -prepend 'jint _Jv_DetachCurrentThread ();' \ - -prepend '_Jv_Thread_t* _Jv_ThreadGetData (java::lang::Thread* thread);' \ - -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) ();' \ - -friend '_Jv_Thread_t* ::_Jv_ThreadGetData (java::lang::Thread* thread);' \ - java/lang/Thread - -java/lang/String.h: classpath/lib/java/lang/String.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jchar* _Jv_GetStringChars (jstring str);' \ - -prepend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \ - -prepend 'jstring* _Jv_StringGetSlot (jstring);' \ - -prepend 'jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);' \ - -prepend 'jstring _Jv_NewStringLatin1 (const char*, jsize);' \ - -prepend 'jstring _Jv_AllocString (jsize);' \ - -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);' \ - java/lang/String - -java/lang/reflect/Constructor.h: classpath/lib/java/lang/reflect/Constructor.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \ - -prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \ - -friend 'jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);' \ - -friend 'jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \ - -friend 'class java::lang::Class;' \ - java/lang/reflect/Constructor - -java/lang/reflect/Field.h: classpath/lib/java/lang/reflect/Field.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \ - -prepend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \ - -friend 'jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);' \ - -friend 'jobject (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \ - -friend 'class java::lang::Class;' \ - java/lang/reflect/Field - -java/lang/reflect/Method.h: classpath/lib/java/lang/reflect/Method.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \ - -prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \ - -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;' \ - java/lang/reflect/Method - -java/lang/reflect/Proxy.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - java/lang/reflect/Proxy - -java/lang/reflect/Proxy$$ProxyData.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/reflect/Proxy$$ProxyData' - -java/lang/reflect/Proxy$$ProxyType.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/reflect/Proxy$$ProxyType' - -gnu/gcj/runtime/ExtensionClassLoader.h: classpath/lib/gnu/gcj/runtime/ExtensionClassLoader.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -friend 'class ::java::lang::ClassLoader;' \ - gnu/gcj/runtime/ExtensionClassLoader - -java/io/ObjectInputStream$$GetField.h: classpath/lib/java/io/ObjectInputStream.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/io/ObjectInputStream$$GetField' - -java/io/ObjectOutputStream$$PutField.h: classpath/lib/java/io/ObjectOutputStream.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/io/ObjectOutputStream$$PutField' - -java/nio/DirectByteBufferImpl$$ReadWrite.h: classpath/lib/java/nio/DirectByteBufferImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/DirectByteBufferImpl$$ReadWrite' - -java/nio/channels/Pipe$$SinkChannel.h: classpath/lib/java/nio/channels/Pipe.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/channels/Pipe$$SinkChannel' - -java/nio/channels/Pipe$$SourceChannel.h: classpath/lib/java/nio/channels/Pipe.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/channels/Pipe$$SourceChannel' - -gnu/java/net/PlainSocketImpl$$SocketInputStream.h: classpath/lib/gnu/java/net/PlainSocketImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/net/PlainSocketImpl$$SocketInputStream' - -gnu/java/net/PlainSocketImpl$$SocketOutputStream.h: classpath/lib/gnu/java/net/PlainSocketImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/net/PlainSocketImpl$$SocketOutputStream' - -gnu/java/nio/PipeImpl$$SinkChannelImpl.h: classpath/lib/gnu/java/nio/PipeImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/nio/PipeImpl$$SinkChannelImpl' - -gnu/java/nio/PipeImpl$$SourceChannelImpl.h: classpath/lib/gnu/java/nio/PipeImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/nio/PipeImpl$$SourceChannelImpl' - -## Only used by PosixProcess.java -java/lang/ConcreteProcess$$ProcessManager.h: classpath/lib/java/lang/ConcreteProcess.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/ConcreteProcess$$ProcessManager' - ## Headers we maintain by hand and which we want to install. extra_headers = java/lang/Object.h java/lang/Class.h $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h: @: +install-exec-hook: install-toolexeclibLTLIBRARIES install-libexecsubPROGRAMS ## Support for libgcj_bc: dummy shared library used only at link-time. if USE_LIBGCJ_BC ## Install libgcj_bc dummy lib in the target directory. We also need to delete ## libtool's .la file, this prevents libtool resetting the lib again ## later. -install-exec-hook: install-toolexeclibLTLIBRARIES @echo Installing dummy lib libgcj_bc.so.1.0.0; \ - rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ - mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ + rm $(toolexeclibdir)/libgcj_bc.so; \ + mv $(toolexeclibdir)/libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so; \ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ - -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ - rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ - $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ - rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la; + -o $(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ + rm $(toolexeclibdir)/libgcj_bc.so.1; \ + $(LN_S) libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so.1; \ + rm $(toolexeclibdir)/libgcj_bc.la; endif +if BUILD_ECJ1 +if NATIVE + mv $(DESTDIR)$(libexecsubdir)/ecjx$(EXEEXT) $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext) +else !NATIVE +## Undo the prepending of the target prefix + mv $(DESTDIR)$(libexecsubdir)/$(target_noncanonical)-ecjx$(EXEEXT) $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext) +endif !NATIVE +endif BUILD_ECJ1 ## Install the headers. It is fairly ugly that we have to do this by ## hand. @@ -564,16 +474,16 @@ install-data-local: done -@rm -f tmp-ilist ## Install inner class headers. - $(INSTALL_DATA) 'java/io/ObjectOutputStream$$PutField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ - $(INSTALL_DATA) 'java/io/ObjectInputStream$$GetField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ - $(INSTALL_DATA) 'java/nio/channels/Pipe$$SinkChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ - $(INSTALL_DATA) 'java/nio/channels/Pipe$$SourceChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ - $(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyData.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ - $(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ - $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ - $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ - $(INSTALL_DATA) 'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ - $(INSTALL_DATA) 'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ + $(INSTALL_DATA) $(srcdir)/'java/io/ObjectOutputStream$$PutField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ + $(INSTALL_DATA) $(srcdir)/'java/io/ObjectInputStream$$GetField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ + $(INSTALL_DATA) $(srcdir)/'java/nio/channels/Pipe$$SinkChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ + $(INSTALL_DATA) $(srcdir)/'java/nio/channels/Pipe$$SourceChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ + $(INSTALL_DATA) $(srcdir)/'java/lang/reflect/Proxy$$ProxyData.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ + $(INSTALL_DATA) $(srcdir)/'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ ## Don't install java/nio/DirectByteBufferImpl$$ReadWrite.h here. It's for internal use only. @@ -709,7 +619,6 @@ jv_convert_LDADD = -L$(here)/.libs libgcj.la jv_convert_DEPENDENCIES = libgcj.la libgcj.spec gcj_dbtool_SOURCES = \ -gnu/gcj/tools/gcj_dbtool/Main.java \ gnu/gcj/tools/gcj_dbtool/natMain.cc ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We @@ -725,10 +634,10 @@ gcj_dbtool_LINK = $(GCJLINK) ## searched before the build-tree ones, and we'd get errors because of ## different libraries with the same SONAME from picky linkers such as ## Solaris'. FIXME: should be _libs on some systems. -gcj_dbtool_LDADD = -L$(here)/.libs libgcj.la +gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la ## Depend on the spec file to make sure it is up to date before ## linking this program. -gcj_dbtool_DEPENDENCIES = libgcj.la libgcj.spec +gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la libgcj.spec gij_SOURCES = ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We @@ -743,27 +652,38 @@ gij_LDADD = -L$(here)/.libs libgij.la ## linking this program. gij_DEPENDENCIES = libgij.la -## This is a dummy definition. -grmic_SOURCES = -grmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ - -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) -grmic_LINK = $(GCJLINK) -## See jv_convert_LDADD. -grmic_LDADD = -L$(here)/.libs libgcj.la -## Depend on the spec file to make sure it is up to date before -## linking this program. -grmic_DEPENDENCIES = libgcj.la libgcj.spec +## Build an ecjx from a .jar. +ecjx_SOURCES = +## We use the BC ABI here so that we don't need to compile ecj.jar. +## Hopefully the user has compiled it into his system .db. +## However, even if not it will run reasonably quickly. -## This is a dummy definition. -grmiregistry_SOURCES = -grmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ - -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) -grmiregistry_LINK = $(GCJLINK) -## See jv_convert_LDADD. -grmiregistry_LDADD = -L$(here)/.libs libgcj.la -## Depend on the spec file to make sure it is up to date before -## linking this program. -grmiregistry_DEPENDENCIES = libgcj.la libgcj.spec +ECJX_BASE_FLAGS = -findirect-dispatch \ + --main=org.eclipse.jdt.internal.compiler.batch.GCCMain + +if NATIVE + +ecjx_LINK = $(GCJLINK) + +if ENABLE_SHARED +## Use ecj.jar at runtime. +ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR) +else !ENABLE_SHARED +## Use ecj.jar at compile time. +ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) +endif !ENABLE_SHARED + +ecjx_LDADD = -L$(here)/.libs libgcj.la +ecjx_DEPENDENCIES = libgcj.la libgcj.spec + +else !NATIVE + +ecjx_LINK = $(GCJ_FOR_ECJX_LINK) +ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) +ecjx_LDADD = +ecjx_DEPENDENCIES = + +endif !NATIVE ## This is a dummy definition. gappletviewer_SOURCES = @@ -772,8 +692,6 @@ gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \ gappletviewer_LINK = $(GCJLINK) ## See jv_convert_LDADD. gappletviewer_LDADD = -L$(here)/.libs libgcj-tools.la -## Depend on the spec file to make sure it is up to date before -## linking this program. gappletviewer_DEPENDENCIES = libgcj-tools.la ## This is a dummy definition. @@ -783,8 +701,6 @@ gjarsigner_LDFLAGS = --main=gnu.classpath.tools.jarsigner.Main \ gjarsigner_LINK = $(GCJLINK) ## See jv_convert_LDADD. gjarsigner_LDADD = -L$(here)/.libs libgcj-tools.la -## Depend on the spec file to make sure it is up to date before -## linking this program. gjarsigner_DEPENDENCIES = libgcj-tools.la ## This is a dummy definition. @@ -794,18 +710,99 @@ gkeytool_LDFLAGS = --main=gnu.classpath.tools.keytool.Main \ gkeytool_LINK = $(GCJLINK) ## See jv_convert_LDADD. gkeytool_LDADD = -L$(here)/.libs libgcj-tools.la -## Depend on the spec file to make sure it is up to date before -## linking this program. gkeytool_DEPENDENCIES = libgcj-tools.la +## This is a dummy definition. +gjar_SOURCES = +gjar_LDFLAGS = --main=gnu.classpath.tools.jar.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +gjar_LINK = $(GCJLINK) +## See jv_convert_LDADD. +gjar_LDADD = -L$(here)/.libs libgcj-tools.la +gjar_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +gjavah_SOURCES = +gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +gjavah_LINK = $(GCJLINK) +## See jv_convert_LDADD. +gjavah_LDADD = -L$(here)/.libs libgcj-tools.la +gjavah_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +gnative2ascii_SOURCES = +gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +gnative2ascii_LINK = $(GCJLINK) +## See jv_convert_LDADD. +gnative2ascii_LDADD = -L$(here)/.libs libgcj-tools.la +gnative2ascii_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +gorbd_SOURCES = +gorbd_LDFLAGS = --main=gnu.classpath.tools.orbd.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +gorbd_LINK = $(GCJLINK) +## See jv_convert_LDADD. +gorbd_LDADD = -L$(here)/.libs libgcj-tools.la +gorbd_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +grmid_SOURCES = +grmid_LDFLAGS = --main=gnu.classpath.tools.rmid.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +grmid_LINK = $(GCJLINK) +## See jv_convert_LDADD. +grmid_LDADD = -L$(here)/.libs libgcj-tools.la +grmid_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +gserialver_SOURCES = +gserialver_LDFLAGS = --main=gnu.classpath.tools.serialver.SerialVer \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +gserialver_LINK = $(GCJLINK) +## See jv_convert_LDADD. +gserialver_LDADD = -L$(here)/.libs libgcj-tools.la +gserialver_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +gtnameserv_SOURCES = +gtnameserv_LDFLAGS = --main=gnu.classpath.tools.tnameserv.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +gtnameserv_LINK = $(GCJLINK) +## See jv_convert_LDADD. +gtnameserv_LDADD = -L$(here)/.libs libgcj-tools.la +gtnameserv_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +grmic_SOURCES = +grmic_LDFLAGS = --main=gnu.classpath.tools.rmic.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +grmic_LINK = $(GCJLINK) +## See jv_convert_LDADD. +grmic_LDADD = -L$(here)/.libs libgcj-tools.la +grmic_DEPENDENCIES = libgcj-tools.la + +## This is a dummy definition. +grmiregistry_SOURCES = +grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) +grmiregistry_LINK = $(GCJLINK) +## See jv_convert_LDADD. +grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la +grmiregistry_DEPENDENCIES = libgcj-tools.la + ## ################################################################ ## This lists all the C++ source files in subdirectories. nat_source_files = \ -gnu/classpath/natSystemProperties.cc \ gnu/classpath/jdwp/natVMFrame.cc \ gnu/classpath/jdwp/natVMMethod.cc \ gnu/classpath/jdwp/natVMVirtualMachine.cc \ +gnu/classpath/natConfiguration.cc \ +gnu/classpath/natSystemProperties.cc \ +gnu/classpath/natVMStackWalker.cc \ gnu/gcj/natCore.cc \ gnu/gcj/convert/JIS0208_to_Unicode.cc \ gnu/gcj/convert/JIS0212_to_Unicode.cc \ @@ -824,16 +821,26 @@ gnu/gcj/runtime/natSystemClassLoader.cc \ gnu/gcj/runtime/natStringBuffer.cc \ gnu/gcj/util/natDebug.cc \ gnu/java/lang/natMainThread.cc \ +gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc \ +gnu/java/lang/management/natVMCompilationMXBeanImpl.cc \ +gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc \ +gnu/java/lang/management/natVMMemoryMXBeanImpl.cc \ +gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc \ +gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc \ +gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc \ +gnu/java/lang/management/natVMThreadMXBeanImpl.cc \ gnu/java/net/natPlainDatagramSocketImpl.cc \ gnu/java/net/natPlainSocketImpl.cc \ gnu/java/net/protocol/core/natCoreInputStream.cc \ gnu/java/nio/natPipeImpl.cc \ gnu/java/nio/natSelectorImpl.cc \ gnu/java/nio/natNIOServerSocket.cc \ +gnu/java/nio/natVMChannel.cc \ gnu/java/nio/channels/natFileChannelImpl.cc \ java/io/natFile.cc \ java/io/natObjectInputStream.cc \ java/io/natVMObjectStreamClass.cc \ +java/lang/management/natVMManagementFactory.cc \ java/lang/natCharacter.cc \ java/lang/natClass.cc \ java/lang/natClassLoader.cc \ @@ -848,27 +855,29 @@ java/lang/natStringBuffer.cc \ java/lang/natStringBuilder.cc \ java/lang/natSystem.cc \ java/lang/natThread.cc \ +java/lang/natThreadLocal.cc \ java/lang/natVMClassLoader.cc \ -java/lang/natVMSecurityManager.cc \ java/lang/natVMThrowable.cc \ java/lang/ref/natReference.cc \ java/lang/reflect/natArray.cc \ java/lang/reflect/natConstructor.cc \ java/lang/reflect/natField.cc \ java/lang/reflect/natMethod.cc \ -java/net/natVMNetworkInterface.cc \ +java/lang/reflect/natVMProxy.cc \ java/net/natVMInetAddress.cc \ -java/net/natURLClassLoader.cc \ +java/net/natVMNetworkInterface.cc \ +java/net/natVMURLConnection.cc \ java/nio/channels/natVMChannels.cc \ java/nio/natDirectByteBufferImpl.cc \ java/security/natVMAccessController.cc \ java/security/natVMAccessControlState.cc \ java/text/natCollator.cc \ -java/util/natResourceBundle.cc \ java/util/natVMTimeZone.cc \ +java/util/concurrent/atomic/natAtomicLong.cc \ java/util/logging/natLogger.cc \ java/util/zip/natDeflater.cc \ -java/util/zip/natInflater.cc +java/util/zip/natInflater.cc \ +sun/misc/natUnsafe.cc xlib_nat_source_files = \ gnu/gcj/xlib/natClip.cc \ @@ -905,7 +914,7 @@ src.zip: here=`pwd`; \ ( \ ( cd $(srcdir)/classpath; \ - find java gnu javax org -name '*.java' -print | \ + find java gnu javax org sun -name '*.java' -print | \ while read file; do \ ## Ugly code to avoid "echo -C". Must separate each entry by a newline ## Gross but easy. @@ -913,6 +922,27 @@ src.zip: echo $(srcdir)/classpath; \ echo $$file; \ done ); \ + ( cd $(srcdir)/classpath/external/sax; \ + find org -name '*.java' -print | \ + while read file; do \ + echo "x-C" | sed -e 's/^.//'; \ + echo $(srcdir)/classpath/external/sax; \ + echo $$file; \ + done ); \ + ( cd $(srcdir)/classpath/external/relaxngDatatype; \ + find org -name '*.java' -print | \ + while read file; do \ + echo "x-C" | sed -e 's/^.//'; \ + echo $(srcdir)/classpath/external/relaxngDatatype; \ + echo $$file; \ + done ); \ + ( cd $(srcdir)/classpath/external/w3c_dom; \ + find org -name '*.java' -print | \ + while read file; do \ + echo "x-C" | sed -e 's/^.//'; \ + echo $(srcdir)/classpath/external/w3c_dom; \ + echo $$file; \ + done ); \ ## Now the build tree. ( cd classpath; \ find gnu java -name '*.java' -print | \ @@ -1026,7 +1056,8 @@ AM_MAKEFLAGS = \ "NM=$(NM)" \ "PICFLAG=$(PICFLAG)" \ "RANLIB=$(RANLIB)" \ - "DESTDIR=$(DESTDIR)" + "DESTDIR=$(DESTDIR)" \ + "JAR=$(JAR)" # Subdir rules rely on $(FLAGS_TO_PASS) FLAGS_TO_PASS = $(AM_MAKEFLAGS) diff --git a/libjava/Makefile.in b/libjava/Makefile.in index aeec4397909..e79f3c2638f 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -43,20 +43,26 @@ target_triplet = @target@ @TESTSUBDIR_TRUE@am__append_1 = testsuite @USE_LIBGCJ_BC_TRUE@am__append_2 = libgcj_bc.la @XLIB_AWT_TRUE@am__append_3 = lib-gnu-awt-xlib.la +@INSTALL_ECJ_JAR_TRUE@am__append_4 = $(ECJ_BUILD_JAR) @NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT) \ @NATIVE_TRUE@ grmic$(EXEEXT) grmiregistry$(EXEEXT) \ @NATIVE_TRUE@ gcj-dbtool$(EXEEXT) gappletviewer$(EXEEXT) \ -@NATIVE_TRUE@ gjarsigner$(EXEEXT) gkeytool$(EXEEXT) -@BASH_JAR_TRUE@am__append_4 = scripts/jar -@USING_GCC_TRUE@am__append_5 = $(WARNINGS) -@USING_BOEHMGC_TRUE@am__append_6 = boehm.cc -@USING_NOGC_TRUE@am__append_7 = nogc.cc -@USING_POSIX_PLATFORM_TRUE@am__append_8 = posix.cc -@USING_WIN32_PLATFORM_TRUE@am__append_9 = win32.cc -@USING_DARWIN_CRT_TRUE@am__append_10 = darwin.cc -@USING_POSIX_THREADS_TRUE@am__append_11 = posix-threads.cc -@USING_WIN32_THREADS_TRUE@am__append_12 = win32-threads.cc -@USING_NO_THREADS_TRUE@am__append_13 = no-threads.cc +@NATIVE_TRUE@ gjarsigner$(EXEEXT) gkeytool$(EXEEXT) \ +@NATIVE_TRUE@ gjar$(EXEEXT) gjavah$(EXEEXT) \ +@NATIVE_TRUE@ gnative2ascii$(EXEEXT) gorbd$(EXEEXT) \ +@NATIVE_TRUE@ grmid$(EXEEXT) gserialver$(EXEEXT) \ +@NATIVE_TRUE@ gtnameserv$(EXEEXT) +@BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT) +@BASH_JAR_TRUE@am__append_5 = scripts/jar +@USING_GCC_TRUE@am__append_6 = $(WARNINGS) +@USING_BOEHMGC_TRUE@am__append_7 = boehm.cc +@USING_NOGC_TRUE@am__append_8 = nogc.cc +@USING_POSIX_PLATFORM_TRUE@am__append_9 = posix.cc +@USING_WIN32_PLATFORM_TRUE@am__append_10 = win32.cc +@USING_DARWIN_CRT_TRUE@am__append_11 = darwin.cc +@USING_POSIX_THREADS_TRUE@am__append_12 = posix-threads.cc +@USING_WIN32_THREADS_TRUE@am__append_13 = win32-threads.cc +@USING_NO_THREADS_TRUE@am__append_14 = no-threads.cc DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ $(srcdir)/../config.guess $(srcdir)/../config.sub \ $(srcdir)/../depcomp $(srcdir)/../install-sh \ @@ -68,7 +74,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ $(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@noinst_PROGRAMS = \ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gen-from-JIS$(EXEEXT) -@XLIB_AWT_TRUE@am__append_14 = $(xlib_nat_headers) +@XLIB_AWT_TRUE@am__append_15 = $(xlib_nat_headers) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ @@ -94,9 +100,8 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ CONFIG_HEADER = $(top_builddir)/include/config.h \ $(top_builddir)/gcj/libgcj-config.h CONFIG_CLEAN_FILES = libgcj.pc libgcj.spec libgcj-test.spec \ - scripts/jar java/io/natFile.cc java/lang/ConcreteProcess.java \ - java/lang/natConcreteProcess.cc java/net/natVMInetAddress.cc \ - java/net/natVMNetworkInterface.cc \ + scripts/jar java/io/natFile.cc java/lang/natConcreteProcess.cc \ + java/net/natVMInetAddress.cc java/net/natVMNetworkInterface.cc \ gnu/java/net/natPlainSocketImpl.cc \ gnu/java/net/natPlainDatagramSocketImpl.cc \ gnu/java/nio/natPipeImpl.cc gnu/java/nio/natSelectorImpl.cc \ @@ -110,8 +115,9 @@ am__vpath_adj = case $$p in \ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(dbexecdir)" \ "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" \ - "$(DESTDIR)$(jardir)" "$(DESTDIR)$(toolexecmainlibdir)" + "$(DESTDIR)$(libexecsubdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" \ + "$(DESTDIR)$(toolexecmainlibdir)" dbexecLTLIBRARIES_INSTALL = $(INSTALL) toolexeclibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(dbexec_LTLIBRARIES) $(toolexeclib_LTLIBRARIES) @@ -152,49 +158,52 @@ am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ gnu/gcj.lo gnu/gcj/convert.lo gnu/gcj/io.lo gnu/gcj/jvmti.lo \ gnu/gcj/runtime.lo gnu/gcj/util.lo gnu/java/awt.lo \ gnu/java/awt/color.lo gnu/java/awt/dnd.lo gnu/java/awt/font.lo \ - gnu/java/awt/font/opentype.lo \ + gnu/java/awt/font/autofit.lo gnu/java/awt/font/opentype.lo \ gnu/java/awt/font/opentype/truetype.lo gnu/java/awt/image.lo \ gnu/java/awt/java2d.lo gnu/java/awt/peer.lo \ - gnu/java/awt/print.lo gnu/java/io.lo gnu/java/lang.lo \ - gnu/java/lang/management.lo gnu/java/lang/reflect.lo \ - gnu/java/locale.lo gnu/java/math.lo gnu/java/net.lo \ - gnu/java/net/loader.lo gnu/java/net/local.lo \ + gnu/java/awt/peer/headless.lo gnu/java/awt/print.lo \ + gnu/java/io.lo gnu/java/lang.lo gnu/java/lang/management.lo \ + gnu/java/lang/reflect.lo gnu/java/locale.lo gnu/java/math.lo \ + gnu/java/net.lo gnu/java/net/loader.lo gnu/java/net/local.lo \ gnu/java/net/protocol/core.lo gnu/java/net/protocol/file.lo \ gnu/java/net/protocol/ftp.lo gnu/java/net/protocol/gcjlib.lo \ gnu/java/net/protocol/http.lo gnu/java/net/protocol/https.lo \ gnu/java/net/protocol/jar.lo gnu/java/nio.lo \ gnu/java/nio/channels.lo gnu/java/nio/charset.lo \ gnu/java/rmi.lo gnu/java/rmi/activation.lo gnu/java/rmi/dgc.lo \ - gnu/java/rmi/registry.lo gnu/java/rmi/rmic.lo \ - gnu/java/rmi/server.lo gnu/java/security.lo \ - gnu/java/security/action.lo gnu/java/security/ber.lo \ - gnu/java/security/der.lo gnu/java/security/hash.lo \ - gnu/java/security/jce/hash.lo gnu/java/security/jce/prng.lo \ - gnu/java/security/jce/sig.lo gnu/java/security/key.lo \ - gnu/java/security/key/dss.lo gnu/java/security/key/rsa.lo \ - gnu/java/security/pkcs.lo gnu/java/security/prng.lo \ - gnu/java/security/provider.lo gnu/java/security/sig.lo \ - gnu/java/security/sig/dss.lo gnu/java/security/sig/rsa.lo \ - gnu/java/security/util.lo gnu/java/security/x509.lo \ - gnu/java/security/x509/ext.lo gnu/java/text.lo \ - gnu/java/util.lo gnu/java/util/jar.lo gnu/java/util/prefs.lo \ - gnu/java/util/regex.lo gnu/javax/crypto.lo \ - gnu/javax/crypto/assembly.lo gnu/javax/crypto/cipher.lo \ - gnu/javax/crypto/jce.lo gnu/javax/crypto/jce/cipher.lo \ - gnu/javax/crypto/jce/key.lo gnu/javax/crypto/jce/keyring.lo \ - gnu/javax/crypto/jce/mac.lo gnu/javax/crypto/jce/params.lo \ - gnu/javax/crypto/jce/prng.lo gnu/javax/crypto/jce/sig.lo \ - gnu/javax/crypto/jce/spec.lo gnu/javax/crypto/key.lo \ - gnu/javax/crypto/key/dh.lo gnu/javax/crypto/key/srp6.lo \ - gnu/javax/crypto/keyring.lo gnu/javax/crypto/kwa.lo \ - gnu/javax/crypto/mac.lo gnu/javax/crypto/mode.lo \ - gnu/javax/crypto/pad.lo gnu/javax/crypto/prng.lo \ - gnu/javax/crypto/sasl.lo gnu/javax/crypto/sasl/anonymous.lo \ + gnu/java/rmi/registry.lo gnu/java/rmi/server.lo \ + gnu/java/security.lo gnu/java/security/action.lo \ + gnu/java/security/ber.lo gnu/java/security/der.lo \ + gnu/java/security/hash.lo gnu/java/security/jce/hash.lo \ + gnu/java/security/jce/prng.lo gnu/java/security/jce/sig.lo \ + gnu/java/security/key.lo gnu/java/security/key/dss.lo \ + gnu/java/security/key/rsa.lo gnu/java/security/pkcs.lo \ + gnu/java/security/prng.lo gnu/java/security/provider.lo \ + gnu/java/security/sig.lo gnu/java/security/sig/dss.lo \ + gnu/java/security/sig/rsa.lo gnu/java/security/util.lo \ + gnu/java/security/x509.lo gnu/java/security/x509/ext.lo \ + gnu/java/text.lo gnu/java/util.lo gnu/java/util/jar.lo \ + gnu/java/util/prefs.lo gnu/java/util/regex.lo \ + gnu/javax/crypto.lo gnu/javax/crypto/assembly.lo \ + gnu/javax/crypto/cipher.lo gnu/javax/crypto/jce.lo \ + gnu/javax/crypto/jce/cipher.lo gnu/javax/crypto/jce/key.lo \ + gnu/javax/crypto/jce/keyring.lo gnu/javax/crypto/jce/mac.lo \ + gnu/javax/crypto/jce/params.lo gnu/javax/crypto/jce/prng.lo \ + gnu/javax/crypto/jce/sig.lo gnu/javax/crypto/jce/spec.lo \ + gnu/javax/crypto/key.lo gnu/javax/crypto/key/dh.lo \ + gnu/javax/crypto/key/srp6.lo gnu/javax/crypto/keyring.lo \ + gnu/javax/crypto/kwa.lo gnu/javax/crypto/mac.lo \ + gnu/javax/crypto/mode.lo gnu/javax/crypto/pad.lo \ + gnu/javax/crypto/prng.lo gnu/javax/crypto/sasl.lo \ + gnu/javax/crypto/sasl/anonymous.lo \ gnu/javax/crypto/sasl/crammd5.lo \ gnu/javax/crypto/sasl/plain.lo gnu/javax/crypto/sasl/srp.lo \ gnu/javax/imageio.lo gnu/javax/imageio/bmp.lo \ gnu/javax/imageio/gif.lo gnu/javax/imageio/jpeg.lo \ - gnu/javax/imageio/png.lo gnu/javax/net/ssl.lo \ + gnu/javax/imageio/png.lo gnu/javax/management.lo \ + gnu/javax/naming/giop.lo gnu/javax/naming/ictxImpl/trans.lo \ + gnu/javax/naming/jndi/url/corbaname.lo \ + gnu/javax/naming/jndi/url/rmi.lo gnu/javax/net/ssl.lo \ gnu/javax/net/ssl/provider.lo gnu/javax/print.lo \ gnu/javax/print/ipp.lo gnu/javax/print/ipp/attribute.lo \ gnu/javax/print/ipp/attribute/defaults.lo \ @@ -205,6 +214,7 @@ am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ gnu/javax/security/auth/login.lo gnu/javax/sound/sampled/AU.lo \ gnu/javax/sound/sampled/WAV.lo gnu/javax/swing/plaf/gnu.lo \ gnu/javax/swing/plaf/metal.lo gnu/javax/swing/text/html.lo \ + gnu/javax/swing/text/html/css.lo \ gnu/javax/swing/text/html/parser.lo \ gnu/javax/swing/text/html/parser/models.lo \ gnu/javax/swing/text/html/parser/support.lo \ @@ -224,11 +234,13 @@ am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ java/rmi/dgc.lo java/rmi/registry.lo java/rmi/server.lo \ java/security.lo java/security/acl.lo java/security/cert.lo \ java/security/interfaces.lo java/security/spec.lo java/sql.lo \ - java/text.lo java/util.lo java/util/jar.lo \ - java/util/logging.lo java/util/prefs.lo java/util/regex.lo \ - java/util/zip.lo javax/accessibility.lo javax/crypto.lo \ - javax/crypto/interfaces.lo javax/crypto/spec.lo \ - javax/management.lo javax/management/openmbean.lo \ + java/text.lo java/util.lo java/util/concurrent.lo \ + java/util/concurrent/atomic.lo java/util/concurrent/locks.lo \ + java/util/jar.lo java/util/logging.lo java/util/prefs.lo \ + java/util/regex.lo java/util/zip.lo javax/accessibility.lo \ + javax/crypto.lo javax/crypto/interfaces.lo \ + javax/crypto/spec.lo javax/management.lo \ + javax/management/loading.lo javax/management/openmbean.lo \ javax/naming.lo javax/naming/directory.lo \ javax/naming/event.lo javax/naming/ldap.lo javax/naming/spi.lo \ javax/net.lo javax/net/ssl.lo javax/print.lo \ @@ -249,24 +261,25 @@ am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ javax/swing/text/html.lo javax/swing/text/html/parser.lo \ javax/swing/text/rtf.lo javax/swing/tree.lo \ javax/swing/undo.lo javax/transaction.lo \ - javax/transaction/xa.lo org/ietf/jgss.lo + javax/transaction/xa.lo org/ietf/jgss.lo sun/misc.lo \ + sun/reflect.lo sun/reflect/annotation.lo sun/reflect/misc.lo am__DEPENDENCIES_2 = gnu-CORBA.lo gnu-java-awt-dnd-peer-gtk.lo \ - gnu-java-awt-peer-gtk.lo gnu-java-awt-peer-qt.lo \ - gnu-java-awt-peer-swing.lo gnu-java-beans.lo \ - gnu-java-util-prefs-gconf.lo gnu-javax-rmi.lo \ - gnu-javax-sound-midi.lo gnu-xml.lo javax-imageio.lo \ - javax-rmi.lo javax-xml.lo org-omg.lo org-relaxng.lo org-w3c.lo \ - org-xml.lo + gnu-java-awt-peer-gtk.lo gnu-java-awt-peer-swing.lo \ + gnu-java-beans.lo gnu-java-util-prefs-gconf.lo \ + gnu-javax-rmi.lo gnu-javax-sound-midi.lo gnu-xml.lo \ + javax-imageio.lo javax-rmi.lo javax-xml.lo org-omg.lo \ + org-relaxng.lo org-w3c.lo org-xml.lo am__DEPENDENCIES_3 = $(patsubst classpath/resource/%,%,$(addsuffix \ .lo,$(property_files))) am__DEPENDENCIES_4 = am__libgcj_la_SOURCES_DIST = prims.cc jni.cc jvmti.cc exception.cc \ stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \ - java/lang/Class.java java/lang/Object.java \ - gnu/classpath/natSystemProperties.cc \ gnu/classpath/jdwp/natVMFrame.cc \ gnu/classpath/jdwp/natVMMethod.cc \ - gnu/classpath/jdwp/natVMVirtualMachine.cc gnu/gcj/natCore.cc \ + gnu/classpath/jdwp/natVMVirtualMachine.cc \ + gnu/classpath/natConfiguration.cc \ + gnu/classpath/natSystemProperties.cc \ + gnu/classpath/natVMStackWalker.cc gnu/gcj/natCore.cc \ gnu/gcj/convert/JIS0208_to_Unicode.cc \ gnu/gcj/convert/JIS0212_to_Unicode.cc \ gnu/gcj/convert/Unicode_to_JIS.cc gnu/gcj/convert/natIconv.cc \ @@ -281,40 +294,55 @@ am__libgcj_la_SOURCES_DIST = prims.cc jni.cc jvmti.cc exception.cc \ gnu/gcj/runtime/natSystemClassLoader.cc \ gnu/gcj/runtime/natStringBuffer.cc gnu/gcj/util/natDebug.cc \ gnu/java/lang/natMainThread.cc \ + gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc \ + gnu/java/lang/management/natVMCompilationMXBeanImpl.cc \ + gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc \ + gnu/java/lang/management/natVMMemoryMXBeanImpl.cc \ + gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc \ + gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc \ + gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc \ + gnu/java/lang/management/natVMThreadMXBeanImpl.cc \ gnu/java/net/natPlainDatagramSocketImpl.cc \ gnu/java/net/natPlainSocketImpl.cc \ gnu/java/net/protocol/core/natCoreInputStream.cc \ gnu/java/nio/natPipeImpl.cc gnu/java/nio/natSelectorImpl.cc \ gnu/java/nio/natNIOServerSocket.cc \ + gnu/java/nio/natVMChannel.cc \ gnu/java/nio/channels/natFileChannelImpl.cc java/io/natFile.cc \ java/io/natObjectInputStream.cc \ - java/io/natVMObjectStreamClass.cc java/lang/natCharacter.cc \ - java/lang/natClass.cc java/lang/natClassLoader.cc \ - java/lang/natConcreteProcess.cc java/lang/natDouble.cc \ - java/lang/natFloat.cc java/lang/natMath.cc \ - java/lang/natObject.cc java/lang/natRuntime.cc \ - java/lang/natString.cc java/lang/natStringBuffer.cc \ - java/lang/natStringBuilder.cc java/lang/natSystem.cc \ - java/lang/natThread.cc java/lang/natVMClassLoader.cc \ - java/lang/natVMSecurityManager.cc java/lang/natVMThrowable.cc \ - java/lang/ref/natReference.cc java/lang/reflect/natArray.cc \ + java/io/natVMObjectStreamClass.cc \ + java/lang/management/natVMManagementFactory.cc \ + java/lang/natCharacter.cc java/lang/natClass.cc \ + java/lang/natClassLoader.cc java/lang/natConcreteProcess.cc \ + java/lang/natDouble.cc java/lang/natFloat.cc \ + java/lang/natMath.cc java/lang/natObject.cc \ + java/lang/natRuntime.cc java/lang/natString.cc \ + java/lang/natStringBuffer.cc java/lang/natStringBuilder.cc \ + java/lang/natSystem.cc java/lang/natThread.cc \ + java/lang/natThreadLocal.cc java/lang/natVMClassLoader.cc \ + java/lang/natVMThrowable.cc java/lang/ref/natReference.cc \ + java/lang/reflect/natArray.cc \ java/lang/reflect/natConstructor.cc \ java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc \ - java/net/natVMNetworkInterface.cc java/net/natVMInetAddress.cc \ - java/net/natURLClassLoader.cc \ + java/lang/reflect/natVMProxy.cc java/net/natVMInetAddress.cc \ + java/net/natVMNetworkInterface.cc \ + java/net/natVMURLConnection.cc \ java/nio/channels/natVMChannels.cc \ java/nio/natDirectByteBufferImpl.cc \ java/security/natVMAccessController.cc \ java/security/natVMAccessControlState.cc \ - java/text/natCollator.cc java/util/natResourceBundle.cc \ - java/util/natVMTimeZone.cc java/util/logging/natLogger.cc \ - java/util/zip/natDeflater.cc java/util/zip/natInflater.cc \ - boehm.cc nogc.cc posix.cc win32.cc darwin.cc posix-threads.cc \ + java/text/natCollator.cc java/util/natVMTimeZone.cc \ + java/util/concurrent/atomic/natAtomicLong.cc \ + java/util/logging/natLogger.cc java/util/zip/natDeflater.cc \ + java/util/zip/natInflater.cc sun/misc/natUnsafe.cc boehm.cc \ + nogc.cc posix.cc win32.cc darwin.cc posix-threads.cc \ win32-threads.cc no-threads.cc -am__objects_2 = gnu/classpath/natSystemProperties.lo \ - gnu/classpath/jdwp/natVMFrame.lo \ +am__objects_2 = gnu/classpath/jdwp/natVMFrame.lo \ gnu/classpath/jdwp/natVMMethod.lo \ - gnu/classpath/jdwp/natVMVirtualMachine.lo gnu/gcj/natCore.lo \ + gnu/classpath/jdwp/natVMVirtualMachine.lo \ + gnu/classpath/natConfiguration.lo \ + gnu/classpath/natSystemProperties.lo \ + gnu/classpath/natVMStackWalker.lo gnu/gcj/natCore.lo \ gnu/gcj/convert/JIS0208_to_Unicode.lo \ gnu/gcj/convert/JIS0212_to_Unicode.lo \ gnu/gcj/convert/Unicode_to_JIS.lo gnu/gcj/convert/natIconv.lo \ @@ -329,34 +357,47 @@ am__objects_2 = gnu/classpath/natSystemProperties.lo \ gnu/gcj/runtime/natSystemClassLoader.lo \ gnu/gcj/runtime/natStringBuffer.lo gnu/gcj/util/natDebug.lo \ gnu/java/lang/natMainThread.lo \ + gnu/java/lang/management/natVMClassLoadingMXBeanImpl.lo \ + gnu/java/lang/management/natVMCompilationMXBeanImpl.lo \ + gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.lo \ + gnu/java/lang/management/natVMMemoryMXBeanImpl.lo \ + gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.lo \ + gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.lo \ + gnu/java/lang/management/natVMRuntimeMXBeanImpl.lo \ + gnu/java/lang/management/natVMThreadMXBeanImpl.lo \ gnu/java/net/natPlainDatagramSocketImpl.lo \ gnu/java/net/natPlainSocketImpl.lo \ gnu/java/net/protocol/core/natCoreInputStream.lo \ gnu/java/nio/natPipeImpl.lo gnu/java/nio/natSelectorImpl.lo \ gnu/java/nio/natNIOServerSocket.lo \ + gnu/java/nio/natVMChannel.lo \ gnu/java/nio/channels/natFileChannelImpl.lo java/io/natFile.lo \ java/io/natObjectInputStream.lo \ - java/io/natVMObjectStreamClass.lo java/lang/natCharacter.lo \ - java/lang/natClass.lo java/lang/natClassLoader.lo \ - java/lang/natConcreteProcess.lo java/lang/natDouble.lo \ - java/lang/natFloat.lo java/lang/natMath.lo \ - java/lang/natObject.lo java/lang/natRuntime.lo \ - java/lang/natString.lo java/lang/natStringBuffer.lo \ - java/lang/natStringBuilder.lo java/lang/natSystem.lo \ - java/lang/natThread.lo java/lang/natVMClassLoader.lo \ - java/lang/natVMSecurityManager.lo java/lang/natVMThrowable.lo \ - java/lang/ref/natReference.lo java/lang/reflect/natArray.lo \ + java/io/natVMObjectStreamClass.lo \ + java/lang/management/natVMManagementFactory.lo \ + java/lang/natCharacter.lo java/lang/natClass.lo \ + java/lang/natClassLoader.lo java/lang/natConcreteProcess.lo \ + java/lang/natDouble.lo java/lang/natFloat.lo \ + java/lang/natMath.lo java/lang/natObject.lo \ + java/lang/natRuntime.lo java/lang/natString.lo \ + java/lang/natStringBuffer.lo java/lang/natStringBuilder.lo \ + java/lang/natSystem.lo java/lang/natThread.lo \ + java/lang/natThreadLocal.lo java/lang/natVMClassLoader.lo \ + java/lang/natVMThrowable.lo java/lang/ref/natReference.lo \ + java/lang/reflect/natArray.lo \ java/lang/reflect/natConstructor.lo \ java/lang/reflect/natField.lo java/lang/reflect/natMethod.lo \ - java/net/natVMNetworkInterface.lo java/net/natVMInetAddress.lo \ - java/net/natURLClassLoader.lo \ + java/lang/reflect/natVMProxy.lo java/net/natVMInetAddress.lo \ + java/net/natVMNetworkInterface.lo \ + java/net/natVMURLConnection.lo \ java/nio/channels/natVMChannels.lo \ java/nio/natDirectByteBufferImpl.lo \ java/security/natVMAccessController.lo \ java/security/natVMAccessControlState.lo \ - java/text/natCollator.lo java/util/natResourceBundle.lo \ - java/util/natVMTimeZone.lo java/util/logging/natLogger.lo \ - java/util/zip/natDeflater.lo java/util/zip/natInflater.lo + java/text/natCollator.lo java/util/natVMTimeZone.lo \ + java/util/concurrent/atomic/natAtomicLong.lo \ + java/util/logging/natLogger.lo java/util/zip/natDeflater.lo \ + java/util/zip/natInflater.lo sun/misc/natUnsafe.lo @USING_BOEHMGC_TRUE@am__objects_3 = boehm.lo @USING_NOGC_TRUE@am__objects_4 = nogc.lo @USING_POSIX_PLATFORM_TRUE@am__objects_5 = posix.lo @@ -367,10 +408,9 @@ am__objects_2 = gnu/classpath/natSystemProperties.lo \ @USING_NO_THREADS_TRUE@am__objects_10 = no-threads.lo am_libgcj_la_OBJECTS = prims.lo jni.lo jvmti.lo exception.lo \ stacktrace.lo link.lo defineclass.lo interpret.lo verify.lo \ - java/lang/Class.lo java/lang/Object.lo $(am__objects_2) \ - $(am__objects_3) $(am__objects_4) $(am__objects_5) \ - $(am__objects_6) $(am__objects_7) $(am__objects_8) \ - $(am__objects_9) $(am__objects_10) + $(am__objects_2) $(am__objects_3) $(am__objects_4) \ + $(am__objects_5) $(am__objects_6) $(am__objects_7) \ + $(am__objects_8) $(am__objects_9) $(am__objects_10) libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS) am_libgcj_bc_la_OBJECTS = libgcj_bc.lo libgcj_bc_la_OBJECTS = $(am_libgcj_bc_la_OBJECTS) @@ -380,11 +420,13 @@ libgij_la_OBJECTS = $(am_libgij_la_OBJECTS) am_libjvm_la_OBJECTS = jni-libjvm.lo libjvm_la_OBJECTS = $(am_libjvm_la_OBJECTS) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +libexecsubPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) $(libexecsub_PROGRAMS) $(noinst_PROGRAMS) +am_ecjx_OBJECTS = +ecjx_OBJECTS = $(am_ecjx_OBJECTS) am_gappletviewer_OBJECTS = gappletviewer_OBJECTS = $(am_gappletviewer_OBJECTS) -am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT) \ - gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT) +am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT) gcj_dbtool_OBJECTS = $(am_gcj_dbtool_OBJECTS) am__gen_from_JIS_SOURCES_DIST = gnu/gcj/convert/gen-from-JIS.c \ gnu/gcj/convert/make-trie.c @@ -394,14 +436,28 @@ gen_from_JIS_OBJECTS = $(am_gen_from_JIS_OBJECTS) gen_from_JIS_LDADD = $(LDADD) am_gij_OBJECTS = gij_OBJECTS = $(am_gij_OBJECTS) +am_gjar_OBJECTS = +gjar_OBJECTS = $(am_gjar_OBJECTS) am_gjarsigner_OBJECTS = gjarsigner_OBJECTS = $(am_gjarsigner_OBJECTS) +am_gjavah_OBJECTS = +gjavah_OBJECTS = $(am_gjavah_OBJECTS) am_gkeytool_OBJECTS = gkeytool_OBJECTS = $(am_gkeytool_OBJECTS) +am_gnative2ascii_OBJECTS = +gnative2ascii_OBJECTS = $(am_gnative2ascii_OBJECTS) +am_gorbd_OBJECTS = +gorbd_OBJECTS = $(am_gorbd_OBJECTS) am_grmic_OBJECTS = grmic_OBJECTS = $(am_grmic_OBJECTS) +am_grmid_OBJECTS = +grmid_OBJECTS = $(am_grmid_OBJECTS) am_grmiregistry_OBJECTS = grmiregistry_OBJECTS = $(am_grmiregistry_OBJECTS) +am_gserialver_OBJECTS = +gserialver_OBJECTS = $(am_gserialver_OBJECTS) +am_gtnameserv_OBJECTS = +gtnameserv_OBJECTS = $(am_gtnameserv_OBJECTS) am_jv_convert_OBJECTS = jv_convert_OBJECTS = $(am_jv_convert_OBJECTS) binSCRIPT_INSTALL = $(INSTALL_SCRIPT) @@ -430,19 +486,26 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \ $(GCJFLAGS) GCJLD = $(GCJ) SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_tools_la_SOURCES) \ - $(libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \ - $(libgij_la_SOURCES) $(libjvm_la_SOURCES) \ - $(gappletviewer_SOURCES) $(gcj_dbtool_SOURCES) \ - $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(gjarsigner_SOURCES) \ - $(gkeytool_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) \ + $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) \ + $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \ + $(libjvm_la_SOURCES) $(ecjx_SOURCES) $(gappletviewer_SOURCES) \ + $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) \ + $(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \ + $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \ + $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \ + $(gserialver_SOURCES) $(gtnameserv_SOURCES) \ $(jv_convert_SOURCES) DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \ $(libgcj_tools_la_SOURCES) $(am__libgcj_la_SOURCES_DIST) \ - $(libgcj_bc_la_SOURCES) $(libgij_la_SOURCES) \ - $(libjvm_la_SOURCES) $(gappletviewer_SOURCES) \ - $(gcj_dbtool_SOURCES) $(am__gen_from_JIS_SOURCES_DIST) \ - $(gij_SOURCES) $(gjarsigner_SOURCES) $(gkeytool_SOURCES) \ - $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES) + $(EXTRA_libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \ + $(libgij_la_SOURCES) $(libjvm_la_SOURCES) $(ecjx_SOURCES) \ + $(gappletviewer_SOURCES) $(gcj_dbtool_SOURCES) \ + $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \ + $(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \ + $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \ + $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \ + $(gserialver_SOURCES) $(gtnameserv_SOURCES) \ + $(jv_convert_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ @@ -481,6 +544,8 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BASH_JAR_FALSE = @BASH_JAR_FALSE@ BASH_JAR_TRUE = @BASH_JAR_TRUE@ +BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ +BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -500,7 +565,11 @@ DIVIDESPEC = @DIVIDESPEC@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +ECJ_BUILD_JAR = @ECJ_BUILD_JAR@ +ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ +ENABLE_SHARED_FALSE = @ENABLE_SHARED_FALSE@ +ENABLE_SHARED_TRUE = @ENABLE_SHARED_TRUE@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ @@ -511,6 +580,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ GCTESTSPEC = @GCTESTSPEC@ @@ -522,6 +592,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ INSTALL_DATA = @INSTALL_DATA@ +INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ +INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -530,6 +602,8 @@ JAR = @JAR@ JAVA_HOME = @JAVA_HOME@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JC1GCSPEC = @JC1GCSPEC@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -548,6 +622,7 @@ LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@ LIBGCJ_SPEC = @LIBGCJ_SPEC@ LIBICONV = @LIBICONV@ LIBLTDL = @LIBLTDL@ +LIBMAGIC = @LIBMAGIC@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ @@ -572,7 +647,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ -PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@ +PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -614,6 +689,8 @@ USING_WIN32_THREADS_TRUE = @USING_WIN32_THREADS_TRUE@ VERSION = @VERSION@ XLIB_AWT_FALSE = @XLIB_AWT_FALSE@ XLIB_AWT_TRUE = @XLIB_AWT_TRUE@ +X_AWT_FALSE = @X_AWT_FALSE@ +X_AWT_TRUE = @X_AWT_TRUE@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -659,6 +736,7 @@ here = @here@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ +host_exeext = @host_exeext@ host_os = @host_os@ host_subdir = @host_subdir@ host_vendor = @host_vendor@ @@ -710,13 +788,15 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) $(foreach o # This is required by TL_AC_GXX_INCLUDE_DIR. libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) +libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) toolexeclib_LTLIBRARIES = libgcj.la libgij.la libgcj-tools.la \ $(am__append_2) $(am__append_3) toolexecmainlib_DATA = libgcj.spec dbexec_LTLIBRARIES = libjvm.la pkgconfigdir = $(libdir)/pkgconfig jardir = $(datadir)/java -jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar +jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar \ + $(am__append_4) @JAVA_HOME_SET_FALSE@JAVA_HOME_DIR = $(prefix) @JAVA_HOME_SET_TRUE@JAVA_HOME_DIR = $(JAVA_HOME) @JAVA_HOME_SET_FALSE@BOOT_CLASS_PATH_DIR = $(jardir)/libgcj-$(gcc_version).jar @@ -724,11 +804,12 @@ jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar db_name = classmap.db db_pathtail = gcj-$(gcc_version)/$(db_name) @NATIVE_TRUE@dbexec_DATA = $(db_name) -bin_SCRIPTS = addr2name.awk $(am__append_4) +bin_SCRIPTS = addr2name.awk $(am__append_5) GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \ $(LDFLAGS) -o $@ +GCJ_FOR_ECJX_LINK = $(GCJ_FOR_ECJX) -o $@ LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) \ $(LDFLAGS) $(extra_ldflags_libjava) -o $@ @@ -760,7 +841,7 @@ AM_GCJFLAGS = \ --encoding=UTF-8 \ -Wno-deprecated -fbootstrap-classes -AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_5) +AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_6) PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long JCFLAGS = -g JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS) @@ -772,7 +853,7 @@ AM_CPPFLAGS = -I$(top_srcdir) \ $(GCINCS) $(THREADINCS) $(INCLTDL) \ $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) -BOOTCLASSPATH = $(here)/classpath/lib +BOOTCLASSPATH = $(srcdir)/classpath/lib libgij_la_SOURCES = gij.cc libgij_la_DEPENDENCIES = libgcj.la libgcj.spec libgij_la_LIBADD = -L$(here)/.libs libgcj.la @@ -781,10 +862,9 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \ libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc \ stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \ - java/lang/Class.java java/lang/Object.java $(nat_source_files) \ - $(am__append_6) $(am__append_7) $(am__append_8) \ + $(nat_source_files) $(am__append_7) $(am__append_8) \ $(am__append_9) $(am__append_10) $(am__append_11) \ - $(am__append_12) $(am__append_13) + $(am__append_12) $(am__append_13) $(am__append_14) nat_files = $(nat_source_files:.cc=.lo) xlib_nat_files = $(xlib_nat_source_files:.cc=.lo) @@ -796,18 +876,25 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \ libgcj_la_LIBADD = \ classpath/native/fdlibm/libfdlibm.la \ + java/lang/Object.lo \ + java/lang/Class.lo \ + java/process-$(PLATFORM).lo \ $(all_packages_source_files:.list=.lo) \ $(bc_objects) \ $(propertyo_files) \ - $(LIBFFI) $(ZLIBS) $(GCLIBS) + $(LIBMAGIC) $(LIBFFI) $(ZLIBS) $(GCLIBS) libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ + java/lang/Object.lo \ + java/lang/Class.lo \ + java/process-$(PLATFORM).lo \ $(all_packages_source_files:.list=.lo) \ $(LIBLTDL) $(libgcj_la_LIBADD) libgcj_la_LINK = $(LIBLINK) -libgcj_tools_la_SOURCES = classpath/tools/tools.jar -libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes +EXTRA_libgcj_la_SOURCES = java/lang/Object.java +libgcj_tools_la_SOURCES = classpath/tools/tools.zip +libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes -fsource-filename=$(here)/classpath/tools/all-classes.lst libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` @@ -873,6 +960,7 @@ classpath/gnu/CORBA/CDR/Vio.java \ classpath/gnu/CORBA/CDR/gnuRuntime.java \ classpath/gnu/CORBA/CDR/gnuValueStream.java \ classpath/gnu/CORBA/CdrEncapsCodecImpl.java \ +classpath/gnu/CORBA/CollocatedOrbs.java \ classpath/gnu/CORBA/Connected_objects.java \ classpath/gnu/CORBA/CorbaList.java \ classpath/gnu/CORBA/DefaultSocketFactory.java \ @@ -881,7 +969,7 @@ classpath/gnu/CORBA/DuplicateNameHolder.java \ classpath/gnu/CORBA/DynAn/AbstractAny.java \ classpath/gnu/CORBA/DynAn/DivideableAny.java \ classpath/gnu/CORBA/DynAn/NameValuePairHolder.java \ -gnu/CORBA/DynAn/RecordAny.java \ +classpath/gnu/CORBA/DynAn/RecordAny.java \ classpath/gnu/CORBA/DynAn/UndivideableAny.java \ classpath/gnu/CORBA/DynAn/ValueChangeListener.java \ classpath/gnu/CORBA/DynAn/gnuDynAny.java \ @@ -892,7 +980,7 @@ classpath/gnu/CORBA/DynAn/gnuDynFixed.java \ classpath/gnu/CORBA/DynAn/gnuDynSequence.java \ classpath/gnu/CORBA/DynAn/gnuDynStruct.java \ classpath/gnu/CORBA/DynAn/gnuDynUnion.java \ -gnu/CORBA/DynAn/gnuDynValue.java \ +classpath/gnu/CORBA/DynAn/gnuDynValue.java \ classpath/gnu/CORBA/DynAn/gnuDynValueBox.java \ classpath/gnu/CORBA/DynAnySeqHolder.java \ classpath/gnu/CORBA/EmptyExceptionHolder.java \ @@ -941,7 +1029,7 @@ classpath/gnu/CORBA/NamingService/NameValidator.java \ classpath/gnu/CORBA/NamingService/NamingMap.java \ classpath/gnu/CORBA/NamingService/NamingServiceTransient.java \ classpath/gnu/CORBA/NamingService/TransientContext.java \ -gnu/CORBA/ObjectCreator.java \ +classpath/gnu/CORBA/ObjectCreator.java \ classpath/gnu/CORBA/OctetHolder.java \ classpath/gnu/CORBA/OrbFocused.java \ classpath/gnu/CORBA/OrbFunctional.java \ @@ -973,6 +1061,7 @@ classpath/gnu/CORBA/Poa/gnuServantRetentionPolicy.java \ classpath/gnu/CORBA/Poa/gnuThreadPolicy.java \ classpath/gnu/CORBA/RawReply.java \ classpath/gnu/CORBA/ResponseHandlerImpl.java \ +classpath/gnu/CORBA/SafeForDirectCalls.java \ classpath/gnu/CORBA/ServiceDetailHolder.java \ classpath/gnu/CORBA/ServiceRequestAdapter.java \ classpath/gnu/CORBA/SetOverrideTypeHolder.java \ @@ -1037,14 +1126,16 @@ gnu/awt/xlib/XToolkit.java gnu_awt_xlib_header_files = $(patsubst %.java,%.h,$(gnu_awt_xlib_source_files)) gnu_classpath_source_files = \ -classpath/gnu/classpath/Configuration.java \ +gnu/classpath/Configuration.java \ +classpath/gnu/classpath/ListenerData.java \ classpath/gnu/classpath/NotImplementedException.java \ classpath/gnu/classpath/Pointer.java \ classpath/gnu/classpath/Pointer32.java \ classpath/gnu/classpath/Pointer64.java \ classpath/gnu/classpath/ServiceFactory.java \ classpath/gnu/classpath/ServiceProviderLoadingAction.java \ -gnu/classpath/SystemProperties.java +gnu/classpath/SystemProperties.java \ +gnu/classpath/VMStackWalker.java gnu_classpath_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_source_files))) gnu_classpath_debug_source_files = \ @@ -1234,6 +1325,10 @@ gnu/gcj/runtime/StringBuffer.java \ gnu/gcj/runtime/SystemClassLoader.java gnu_gcj_runtime_header_files = $(patsubst %.java,%.h,$(gnu_gcj_runtime_source_files)) +gnu_gcj_tools_gcj_dbtool_source_files = \ +gnu/gcj/tools/gcj_dbtool/Main.java + +gnu_gcj_tools_gcj_dbtool_header_files = $(patsubst %.java,%.h,$(gnu_gcj_tools_gcj_dbtool_source_files)) gnu_gcj_util_source_files = \ gnu/gcj/util/Debug.java @@ -1271,9 +1366,11 @@ classpath/gnu/java/awt/BitwiseXORComposite.java \ classpath/gnu/java/awt/Buffers.java \ classpath/gnu/java/awt/ClasspathToolkit.java \ classpath/gnu/java/awt/ComponentDataBlitOp.java \ +classpath/gnu/java/awt/ComponentReshapeEvent.java \ classpath/gnu/java/awt/EmbeddedWindow.java \ classpath/gnu/java/awt/EventModifier.java \ -classpath/gnu/java/awt/GradientPaintContext.java +classpath/gnu/java/awt/GradientPaintContext.java \ +classpath/gnu/java/awt/LowPriorityEvent.java gnu_java_awt_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_source_files))) gnu_java_awt_color_source_files = \ @@ -1307,6 +1404,20 @@ classpath/gnu/java/awt/font/FontFactory.java \ classpath/gnu/java/awt/font/GNUGlyphVector.java gnu_java_awt_font_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_source_files))) +gnu_java_awt_font_autofit_source_files = \ +classpath/gnu/java/awt/font/autofit/AxisHints.java \ +classpath/gnu/java/awt/font/autofit/Constants.java \ +classpath/gnu/java/awt/font/autofit/GlyphHints.java \ +classpath/gnu/java/awt/font/autofit/Latin.java \ +classpath/gnu/java/awt/font/autofit/LatinAxis.java \ +classpath/gnu/java/awt/font/autofit/LatinMetrics.java \ +classpath/gnu/java/awt/font/autofit/Scaler.java \ +classpath/gnu/java/awt/font/autofit/Script.java \ +classpath/gnu/java/awt/font/autofit/ScriptMetrics.java \ +classpath/gnu/java/awt/font/autofit/Segment.java \ +classpath/gnu/java/awt/font/autofit/Width.java + +gnu_java_awt_font_autofit_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_autofit_source_files))) gnu_java_awt_font_opentype_source_files = \ classpath/gnu/java/awt/font/opentype/CharGlyphMap.java \ classpath/gnu/java/awt/font/opentype/GlyphNamer.java \ @@ -1344,16 +1455,19 @@ classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \ classpath/gnu/java/awt/java2d/QuadSegment.java \ classpath/gnu/java/awt/java2d/RasterGraphics.java \ classpath/gnu/java/awt/java2d/Segment.java \ +classpath/gnu/java/awt/java2d/ShapeCache.java \ classpath/gnu/java/awt/java2d/TexturePaintContext.java gnu_java_awt_java2d_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_java2d_source_files))) gnu_java_awt_peer_source_files = \ classpath/gnu/java/awt/peer/ClasspathFontPeer.java \ classpath/gnu/java/awt/peer/EmbeddedWindowPeer.java \ -classpath/gnu/java/awt/peer/GLightweightPeer.java +classpath/gnu/java/awt/peer/GLightweightPeer.java \ +classpath/gnu/java/awt/peer/NativeEventLoopRunningEvent.java gnu_java_awt_peer_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_peer_source_files))) gnu_java_awt_peer_gtk_source_files = \ +classpath/gnu/java/awt/peer/gtk/AsyncImage.java \ classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java \ classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java \ classpath/gnu/java/awt/peer/gtk/CairoSurface.java \ @@ -1363,7 +1477,6 @@ classpath/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java \ classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java \ classpath/gnu/java/awt/peer/gtk/GThreadMutex.java \ classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java \ -classpath/gnu/java/awt/peer/gtk/GdkFontMetrics.java \ classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java \ classpath/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java \ classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \ @@ -1389,6 +1502,7 @@ classpath/gnu/java/awt/peer/gtk/GtkImage.java \ classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java \ classpath/gnu/java/awt/peer/gtk/GtkLabelPeer.java \ classpath/gnu/java/awt/peer/gtk/GtkListPeer.java \ +classpath/gnu/java/awt/peer/gtk/GtkMainThread.java \ classpath/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java \ classpath/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java \ classpath/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java \ @@ -1406,6 +1520,11 @@ classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java \ classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java \ classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java +gnu_java_awt_peer_headless_source_files = \ +classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java \ +classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java + +gnu_java_awt_peer_headless_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_peer_headless_source_files))) gnu_java_awt_peer_qt_source_files = \ classpath/gnu/java/awt/peer/qt/MainQtThread.java \ classpath/gnu/java/awt/peer/qt/NativeWrapper.java \ @@ -1459,14 +1578,35 @@ classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java \ classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java \ classpath/gnu/java/awt/peer/swing/SwingFramePeer.java \ classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java \ +classpath/gnu/java/awt/peer/swing/SwingListPeer.java \ classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java \ classpath/gnu/java/awt/peer/swing/SwingMenuItemPeer.java \ classpath/gnu/java/awt/peer/swing/SwingMenuPeer.java \ classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java \ +classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java \ classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java \ classpath/gnu/java/awt/peer/swing/SwingToolkit.java \ classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java +gnu_java_awt_peer_x_source_files = \ +classpath/gnu/java/awt/peer/x/GLGraphics.java \ +classpath/gnu/java/awt/peer/x/ImageConverter.java \ +classpath/gnu/java/awt/peer/x/KeyboardMapping.java \ +classpath/gnu/java/awt/peer/x/XDialogPeer.java \ +classpath/gnu/java/awt/peer/x/XEventPump.java \ +classpath/gnu/java/awt/peer/x/XFontPeer.java \ +classpath/gnu/java/awt/peer/x/XFontPeer2.java \ +classpath/gnu/java/awt/peer/x/XFramePeer.java \ +classpath/gnu/java/awt/peer/x/XGraphics.java \ +classpath/gnu/java/awt/peer/x/XGraphics2D.java \ +classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \ +classpath/gnu/java/awt/peer/x/XGraphicsDevice.java \ +classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java \ +classpath/gnu/java/awt/peer/x/XImage.java \ +classpath/gnu/java/awt/peer/x/XLightweightPeer.java \ +classpath/gnu/java/awt/peer/x/XToolkit.java \ +classpath/gnu/java/awt/peer/x/XWindowPeer.java + gnu_java_awt_print_source_files = \ classpath/gnu/java/awt/print/JavaPrinterGraphics.java \ classpath/gnu/java/awt/print/JavaPrinterJob.java \ @@ -1563,6 +1703,7 @@ classpath/gnu/java/io/ASN1ParsingException.java \ classpath/gnu/java/io/Base64InputStream.java \ classpath/gnu/java/io/ClassLoaderObjectInputStream.java \ classpath/gnu/java/io/NullOutputStream.java \ +classpath/gnu/java/io/ObjectIdentityMap2Int.java \ classpath/gnu/java/io/ObjectIdentityWrapper.java \ classpath/gnu/java/io/PlatformHelper.java @@ -1759,6 +1900,7 @@ classpath/gnu/java/net/BASE64.java \ classpath/gnu/java/net/CRLFInputStream.java \ classpath/gnu/java/net/CRLFOutputStream.java \ classpath/gnu/java/net/DefaultContentHandlerFactory.java \ +classpath/gnu/java/net/DefaultProxySelector.java \ classpath/gnu/java/net/EmptyX509TrustManager.java \ classpath/gnu/java/net/GetLocalHostAction.java \ classpath/gnu/java/net/HeaderFieldHelper.java \ @@ -1859,23 +2001,24 @@ classpath/gnu/java/nio/ChannelReader.java \ classpath/gnu/java/nio/ChannelWriter.java \ gnu/java/nio/DatagramChannelImpl.java \ gnu/java/nio/DatagramChannelSelectionKey.java \ -classpath/gnu/java/nio/FileLockImpl.java \ +gnu/java/nio/FileLockImpl.java \ classpath/gnu/java/nio/InputStreamChannel.java \ classpath/gnu/java/nio/NIOConstants.java \ classpath/gnu/java/nio/NIODatagramSocket.java \ gnu/java/nio/NIOServerSocket.java \ -classpath/gnu/java/nio/NIOSocket.java \ +gnu/java/nio/NIOSocket.java \ classpath/gnu/java/nio/OutputStreamChannel.java \ -classpath/gnu/java/nio/PipeImpl.java \ +gnu/java/nio/PipeImpl.java \ classpath/gnu/java/nio/SelectionKeyImpl.java \ classpath/gnu/java/nio/SelectorImpl.java \ -classpath/gnu/java/nio/SelectorProviderImpl.java \ +gnu/java/nio/SelectorProviderImpl.java \ gnu/java/nio/ServerSocketChannelImpl.java \ gnu/java/nio/ServerSocketChannelSelectionKey.java \ gnu/java/nio/SocketChannelImpl.java \ gnu/java/nio/SocketChannelSelectionKey.java \ -classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java \ +gnu/java/nio/SocketChannelSelectionKeyImpl.java \ gnu/java/nio/VMChannel.java \ +classpath/gnu/java/nio/VMChannelOwner.java \ gnu/java/nio/VMPipe.java \ gnu/java/nio/VMSelector.java @@ -1973,17 +2116,6 @@ classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java \ classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java gnu_java_rmi_registry_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_rmi_registry_source_files))) -gnu_java_rmi_rmic_source_files = \ -gnu/java/rmi/rmic/Compile_gcj.java \ -gnu/java/rmi/rmic/Compile_jikes.java \ -gnu/java/rmi/rmic/Compile_kjc.java \ -gnu/java/rmi/rmic/Compiler.java \ -gnu/java/rmi/rmic/CompilerProcess.java \ -gnu/java/rmi/rmic/RMIC.java \ -gnu/java/rmi/rmic/RMICException.java \ -gnu/java/rmi/rmic/TabbedWriter.java - -gnu_java_rmi_rmic_header_files = $(patsubst %.java,%.h,$(gnu_java_rmi_rmic_source_files)) gnu_java_rmi_server_source_files = \ classpath/gnu/java/rmi/server/ActivatableRef.java \ classpath/gnu/java/rmi/server/ActivatableServerRef.java \ @@ -2012,7 +2144,8 @@ classpath/gnu/java/security/Engine.java \ classpath/gnu/java/security/OID.java \ classpath/gnu/java/security/PolicyFile.java \ classpath/gnu/java/security/Properties.java \ -classpath/gnu/java/security/Registry.java +classpath/gnu/java/security/Registry.java \ +classpath/gnu/java/security/Requires.java gnu_java_security_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_security_source_files))) gnu_java_security_action_source_files = \ @@ -2191,6 +2324,7 @@ gnu_java_security_sig_rsa_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu_java_security_util_source_files = \ classpath/gnu/java/security/util/Base64.java \ classpath/gnu/java/security/util/ByteArray.java \ +classpath/gnu/java/security/util/ByteBufferOutputStream.java \ classpath/gnu/java/security/util/DerUtil.java \ classpath/gnu/java/security/util/ExpirableObject.java \ classpath/gnu/java/security/util/FormatUtil.java \ @@ -2463,6 +2597,7 @@ classpath/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java gnu_javax_crypto_jce_spec_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_crypto_jce_spec_source_files))) gnu_javax_crypto_key_source_files = \ classpath/gnu/javax/crypto/key/BaseKeyAgreementParty.java \ +classpath/gnu/javax/crypto/key/GnuPBEKey.java \ classpath/gnu/javax/crypto/key/GnuSecretKey.java \ classpath/gnu/javax/crypto/key/IKeyAgreementParty.java \ classpath/gnu/javax/crypto/key/IncomingMessage.java \ @@ -2727,78 +2862,148 @@ classpath/gnu/javax/imageio/png/PNGPhys.java \ classpath/gnu/javax/imageio/png/PNGTime.java gnu_javax_imageio_png_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_imageio_png_source_files))) +gnu_javax_management_source_files = \ +classpath/gnu/javax/management/Server.java + +gnu_javax_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_management_source_files))) +gnu_javax_naming_giop_source_files = \ +classpath/gnu/javax/naming/giop/ContextContinuation.java \ +classpath/gnu/javax/naming/giop/CorbalocParser.java \ +classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java \ +classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java \ +classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java \ +classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java \ +classpath/gnu/javax/naming/giop/ListEnumeration.java + +gnu_javax_naming_giop_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_giop_source_files))) +gnu_javax_naming_ictxImpl_trans_source_files = \ +classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java + +gnu_javax_naming_ictxImpl_trans_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_ictxImpl_trans_source_files))) +gnu_javax_naming_jndi_url_corbaname_source_files = \ +classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java + +gnu_javax_naming_jndi_url_corbaname_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_jndi_url_corbaname_source_files))) +gnu_javax_naming_jndi_url_rmi_source_files = \ +classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java \ +classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java \ +classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java \ +classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java \ +classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java \ +classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java \ +classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java + +gnu_javax_naming_jndi_url_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_jndi_url_rmi_source_files))) gnu_javax_net_ssl_source_files = \ +classpath/gnu/javax/net/ssl/AbstractSessionContext.java \ classpath/gnu/javax/net/ssl/Base64.java \ classpath/gnu/javax/net/ssl/EntropySource.java \ classpath/gnu/javax/net/ssl/NullManagerParameters.java \ +classpath/gnu/javax/net/ssl/PreSharedKeyManager.java \ +classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java \ classpath/gnu/javax/net/ssl/PrivateCredentials.java \ classpath/gnu/javax/net/ssl/SRPManagerParameters.java \ classpath/gnu/javax/net/ssl/SRPTrustManager.java \ +classpath/gnu/javax/net/ssl/SSLCipherSuite.java \ +classpath/gnu/javax/net/ssl/SSLProtocolVersion.java \ +classpath/gnu/javax/net/ssl/SSLRecordHandler.java \ +classpath/gnu/javax/net/ssl/Session.java \ +classpath/gnu/javax/net/ssl/SessionStoreException.java \ classpath/gnu/javax/net/ssl/StaticTrustAnchors.java gnu_javax_net_ssl_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_net_ssl_source_files))) gnu_javax_net_ssl_provider_source_files = \ +classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java \ classpath/gnu/javax/net/ssl/provider/Alert.java \ classpath/gnu/javax/net/ssl/provider/AlertException.java \ +classpath/gnu/javax/net/ssl/provider/Builder.java \ classpath/gnu/javax/net/ssl/provider/Certificate.java \ +classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java \ classpath/gnu/javax/net/ssl/provider/CertificateRequest.java \ +classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java \ +classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java \ +classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java \ classpath/gnu/javax/net/ssl/provider/CertificateType.java \ +classpath/gnu/javax/net/ssl/provider/CertificateURL.java \ classpath/gnu/javax/net/ssl/provider/CertificateVerify.java \ +classpath/gnu/javax/net/ssl/provider/CipherAlgorithm.java \ classpath/gnu/javax/net/ssl/provider/CipherSuite.java \ +classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java \ +classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java \ +classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java \ +classpath/gnu/javax/net/ssl/provider/ClientHandshake.java \ classpath/gnu/javax/net/ssl/provider/ClientHello.java \ +classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java \ classpath/gnu/javax/net/ssl/provider/ClientKeyExchange.java \ +classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java \ classpath/gnu/javax/net/ssl/provider/CompressionMethod.java \ +classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java \ classpath/gnu/javax/net/ssl/provider/Constructed.java \ classpath/gnu/javax/net/ssl/provider/ContentType.java \ -classpath/gnu/javax/net/ssl/provider/Context.java \ +classpath/gnu/javax/net/ssl/provider/Debug.java \ +classpath/gnu/javax/net/ssl/provider/DelegatedTask.java \ classpath/gnu/javax/net/ssl/provider/DiffieHellman.java \ -classpath/gnu/javax/net/ssl/provider/DigestInputStream.java \ -classpath/gnu/javax/net/ssl/provider/DigestOutputStream.java \ -classpath/gnu/javax/net/ssl/provider/Enumerated.java \ +classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java \ +classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java \ +classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java \ classpath/gnu/javax/net/ssl/provider/Extension.java \ -classpath/gnu/javax/net/ssl/provider/Extensions.java \ +classpath/gnu/javax/net/ssl/provider/ExtensionList.java \ classpath/gnu/javax/net/ssl/provider/Finished.java \ -classpath/gnu/javax/net/ssl/provider/GNUSecurityParameters.java \ classpath/gnu/javax/net/ssl/provider/Handshake.java \ -classpath/gnu/javax/net/ssl/provider/JCESecurityParameters.java \ -classpath/gnu/javax/net/ssl/provider/JDBCSessionContext.java \ +classpath/gnu/javax/net/ssl/provider/HelloRequest.java \ +classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java \ classpath/gnu/javax/net/ssl/provider/Jessie.java \ -classpath/gnu/javax/net/ssl/provider/JessieDHPrivateKey.java \ -classpath/gnu/javax/net/ssl/provider/JessieDHPublicKey.java \ -classpath/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java \ -classpath/gnu/javax/net/ssl/provider/JessieRSAPublicKey.java \ -classpath/gnu/javax/net/ssl/provider/KeyPool.java \ +classpath/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java \ +classpath/gnu/javax/net/ssl/provider/MacAlgorithm.java \ classpath/gnu/javax/net/ssl/provider/MacException.java \ -classpath/gnu/javax/net/ssl/provider/OverflowException.java \ +classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java \ +classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java \ +classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java \ classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java \ classpath/gnu/javax/net/ssl/provider/Random.java \ -classpath/gnu/javax/net/ssl/provider/RecordInput.java \ -classpath/gnu/javax/net/ssl/provider/RecordInputStream.java \ -classpath/gnu/javax/net/ssl/provider/RecordOutputStream.java \ -classpath/gnu/javax/net/ssl/provider/RecordingInputStream.java \ +classpath/gnu/javax/net/ssl/provider/Record.java \ classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java \ +classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java \ classpath/gnu/javax/net/ssl/provider/SSLHMac.java \ -classpath/gnu/javax/net/ssl/provider/SSLRSASignature.java \ +classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java \ classpath/gnu/javax/net/ssl/provider/SSLRandom.java \ -classpath/gnu/javax/net/ssl/provider/SSLServerSocket.java \ -classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactory.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocket.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocketFactory.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocketInputStream.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocketOutputStream.java \ -classpath/gnu/javax/net/ssl/provider/SecurityParameters.java \ +classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java \ +classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java \ +classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ServerDHParams.java \ +classpath/gnu/javax/net/ssl/provider/ServerHandshake.java \ classpath/gnu/javax/net/ssl/provider/ServerHello.java \ +classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java \ classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java \ -classpath/gnu/javax/net/ssl/provider/Session.java \ -classpath/gnu/javax/net/ssl/provider/SessionContext.java \ +classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java \ +classpath/gnu/javax/net/ssl/provider/ServerNameList.java \ +classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ServerRSAParams.java \ +classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/SessionImpl.java \ classpath/gnu/javax/net/ssl/provider/Signature.java \ -classpath/gnu/javax/net/ssl/provider/SynchronizedRandom.java \ +classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java \ +classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java \ classpath/gnu/javax/net/ssl/provider/TLSHMac.java \ classpath/gnu/javax/net/ssl/provider/TLSRandom.java \ +classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java \ +classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java \ +classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java \ classpath/gnu/javax/net/ssl/provider/Util.java \ +classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java \ classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java \ -classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java \ -classpath/gnu/javax/net/ssl/provider/XMLSessionContext.java +classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java gnu_javax_net_ssl_provider_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_net_ssl_provider_source_files))) gnu_javax_print_source_files = \ @@ -2920,6 +3125,7 @@ gnu_javax_security_auth_header_files = $(patsubst classpath/%,%,$(patsubst %.jav gnu_javax_security_auth_callback_source_files = \ classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java \ classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java \ +classpath/gnu/javax/security/auth/callback/CertificateCallback.java \ classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java \ classpath/gnu/javax/security/auth/callback/DefaultCallbackHandler.java \ classpath/gnu/javax/security/auth/callback/GnuCallbacks.java \ @@ -2968,10 +3174,25 @@ classpath/gnu/javax/swing/text/html/CombinedAttributes.java \ classpath/gnu/javax/swing/text/html/ImageViewIconFactory.java gnu_javax_swing_text_html_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_swing_text_html_source_files))) +gnu_javax_swing_text_html_css_source_files = \ +classpath/gnu/javax/swing/text/html/css/BorderStyle.java \ +classpath/gnu/javax/swing/text/html/css/BorderWidth.java \ +classpath/gnu/javax/swing/text/html/css/CSSColor.java \ +classpath/gnu/javax/swing/text/html/css/CSSLexicalException.java \ +classpath/gnu/javax/swing/text/html/css/CSSParser.java \ +classpath/gnu/javax/swing/text/html/css/CSSParserCallback.java \ +classpath/gnu/javax/swing/text/html/css/CSSParserException.java \ +classpath/gnu/javax/swing/text/html/css/CSSScanner.java \ +classpath/gnu/javax/swing/text/html/css/FontSize.java \ +classpath/gnu/javax/swing/text/html/css/FontStyle.java \ +classpath/gnu/javax/swing/text/html/css/FontWeight.java \ +classpath/gnu/javax/swing/text/html/css/Length.java \ +classpath/gnu/javax/swing/text/html/css/Selector.java + +gnu_javax_swing_text_html_css_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_swing_text_html_css_source_files))) gnu_javax_swing_text_html_parser_source_files = \ classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java \ classpath/gnu/javax/swing/text/html/parser/HTML_401F.java \ -classpath/gnu/javax/swing/text/html/parser/HTML_401Swing.java \ classpath/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java \ classpath/gnu/javax/swing/text/html/parser/gnuDTD.java \ classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java \ @@ -3234,6 +3455,8 @@ classpath/gnu/xml/transform/OtherwiseNode.java \ classpath/gnu/xml/transform/ParameterNode.java \ classpath/gnu/xml/transform/ProcessingInstructionNode.java \ classpath/gnu/xml/transform/SAXSerializer.java \ +classpath/gnu/xml/transform/SAXTemplatesHandler.java \ +classpath/gnu/xml/transform/SAXTransformerHandler.java \ classpath/gnu/xml/transform/SortKey.java \ classpath/gnu/xml/transform/StreamSerializer.java \ classpath/gnu/xml/transform/StrippingInstruction.java \ @@ -3558,6 +3781,7 @@ classpath/java/awt/datatransfer/FlavorEvent.java \ classpath/java/awt/datatransfer/FlavorListener.java \ classpath/java/awt/datatransfer/FlavorMap.java \ classpath/java/awt/datatransfer/FlavorTable.java \ +classpath/java/awt/datatransfer/MimeType.java \ classpath/java/awt/datatransfer/MimeTypeParseException.java \ classpath/java/awt/datatransfer/StringSelection.java \ classpath/java/awt/datatransfer/SystemFlavorMap.java \ @@ -3886,11 +4110,11 @@ classpath/java/io/DeleteFileHelper.java \ classpath/java/io/EOFException.java \ classpath/java/io/Externalizable.java \ java/io/File.java \ -classpath/java/io/FileDescriptor.java \ +java/io/FileDescriptor.java \ classpath/java/io/FileFilter.java \ -classpath/java/io/FileInputStream.java \ +java/io/FileInputStream.java \ classpath/java/io/FileNotFoundException.java \ -classpath/java/io/FileOutputStream.java \ +java/io/FileOutputStream.java \ classpath/java/io/FilePermission.java \ classpath/java/io/FileReader.java \ classpath/java/io/FileWriter.java \ @@ -3911,7 +4135,7 @@ classpath/java/io/LineNumberReader.java \ classpath/java/io/NotActiveException.java \ classpath/java/io/NotSerializableException.java \ classpath/java/io/ObjectInput.java \ -java/io/ObjectInputStream.java \ +classpath/java/io/ObjectInputStream.java \ classpath/java/io/ObjectInputValidation.java \ classpath/java/io/ObjectOutput.java \ classpath/java/io/ObjectOutputStream.java \ @@ -3930,7 +4154,7 @@ java/io/PrintStream.java \ classpath/java/io/PrintWriter.java \ classpath/java/io/PushbackInputStream.java \ classpath/java/io/PushbackReader.java \ -classpath/java/io/RandomAccessFile.java \ +java/io/RandomAccessFile.java \ classpath/java/io/Reader.java \ classpath/java/io/SequenceInputStream.java \ classpath/java/io/Serializable.java \ @@ -3943,6 +4167,7 @@ classpath/java/io/StringWriter.java \ classpath/java/io/SyncFailedException.java \ classpath/java/io/UTFDataFormatException.java \ classpath/java/io/UnsupportedEncodingException.java \ +java/io/VMObjectInputStream.java \ java/io/VMObjectStreamClass.java \ classpath/java/io/WriteAbortedException.java \ classpath/java/io/Writer.java @@ -3959,6 +4184,7 @@ classpath/java/lang/Boolean.java \ classpath/java/lang/Byte.java \ classpath/java/lang/CharSequence.java \ java/lang/Character.java \ +java/lang/Class.java \ classpath/java/lang/ClassCastException.java \ classpath/java/lang/ClassCircularityError.java \ classpath/java/lang/ClassFormatError.java \ @@ -3968,8 +4194,9 @@ classpath/java/lang/CloneNotSupportedException.java \ classpath/java/lang/Cloneable.java \ classpath/java/lang/Comparable.java \ classpath/java/lang/Compiler.java \ -java/lang/ConcreteProcess.java \ +classpath/java/lang/Deprecated.java \ classpath/java/lang/Double.java \ +java/lang/EcosProcess.java \ classpath/java/lang/Enum.java \ classpath/java/lang/EnumConstantNotPresentException.java \ classpath/java/lang/Error.java \ @@ -4003,16 +4230,20 @@ classpath/java/lang/NoSuchMethodException.java \ classpath/java/lang/NullPointerException.java \ classpath/java/lang/Number.java \ classpath/java/lang/NumberFormatException.java \ +java/lang/Object.java \ classpath/java/lang/OutOfMemoryError.java \ -java/lang/Package.java \ +classpath/java/lang/Override.java \ +classpath/java/lang/Package.java \ +java/lang/PosixProcess.java \ classpath/java/lang/Process.java \ +java/lang/ProcessBuilder.java \ classpath/java/lang/Readable.java \ classpath/java/lang/Runnable.java \ java/lang/Runtime.java \ classpath/java/lang/RuntimeException.java \ classpath/java/lang/RuntimePermission.java \ classpath/java/lang/SecurityException.java \ -java/lang/SecurityManager.java \ +classpath/java/lang/SecurityManager.java \ classpath/java/lang/Short.java \ classpath/java/lang/StackOverflowError.java \ classpath/java/lang/StackTraceElement.java \ @@ -4021,11 +4252,12 @@ java/lang/String.java \ java/lang/StringBuffer.java \ java/lang/StringBuilder.java \ classpath/java/lang/StringIndexOutOfBoundsException.java \ +classpath/java/lang/SuppressWarnings.java \ java/lang/System.java \ java/lang/Thread.java \ classpath/java/lang/ThreadDeath.java \ classpath/java/lang/ThreadGroup.java \ -classpath/java/lang/ThreadLocal.java \ +java/lang/ThreadLocal.java \ classpath/java/lang/Throwable.java \ classpath/java/lang/TypeNotPresentException.java \ classpath/java/lang/UnknownError.java \ @@ -4036,18 +4268,24 @@ java/lang/VMClassLoader.java \ java/lang/VMCompiler.java \ java/lang/VMDouble.java \ java/lang/VMFloat.java \ -java/lang/VMSecurityManager.java \ java/lang/VMThrowable.java \ classpath/java/lang/VerifyError.java \ classpath/java/lang/VirtualMachineError.java \ -classpath/java/lang/Void.java +classpath/java/lang/Void.java \ +java/lang/Win32Process.java java_lang_header_files = $(filter-out java/lang/Object.h java/lang/Class.h,$(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_lang_source_files)))) java_lang_annotation_source_files = \ classpath/java/lang/annotation/Annotation.java \ classpath/java/lang/annotation/AnnotationFormatError.java \ classpath/java/lang/annotation/AnnotationTypeMismatchException.java \ -classpath/java/lang/annotation/IncompleteAnnotationException.java +classpath/java/lang/annotation/Documented.java \ +classpath/java/lang/annotation/ElementType.java \ +classpath/java/lang/annotation/IncompleteAnnotationException.java \ +classpath/java/lang/annotation/Inherited.java \ +classpath/java/lang/annotation/Retention.java \ +classpath/java/lang/annotation/RetentionPolicy.java \ +classpath/java/lang/annotation/Target.java java_lang_annotation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_lang_annotation_source_files))) java_lang_instrument_source_files = \ @@ -4068,6 +4306,7 @@ classpath/java/lang/management/MemoryMXBean.java \ classpath/java/lang/management/MemoryManagerMXBean.java \ classpath/java/lang/management/MemoryNotificationInfo.java \ classpath/java/lang/management/MemoryPoolMXBean.java \ +classpath/java/lang/management/MemoryType.java \ classpath/java/lang/management/MemoryUsage.java \ classpath/java/lang/management/OperatingSystemMXBean.java \ classpath/java/lang/management/RuntimeMXBean.java \ @@ -4112,7 +4351,8 @@ java_lang_reflect_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, java_math_source_files = \ classpath/java/math/BigDecimal.java \ classpath/java/math/BigInteger.java \ -classpath/java/math/MathContext.java +classpath/java/math/MathContext.java \ +classpath/java/math/RoundingMode.java java_math_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_math_source_files))) java_net_source_files = \ @@ -4122,7 +4362,7 @@ classpath/java/net/ConnectException.java \ classpath/java/net/ContentHandler.java \ classpath/java/net/ContentHandlerFactory.java \ classpath/java/net/DatagramPacket.java \ -classpath/java/net/DatagramSocket.java \ +java/net/DatagramSocket.java \ classpath/java/net/DatagramSocketImpl.java \ classpath/java/net/DatagramSocketImplFactory.java \ classpath/java/net/FileNameMap.java \ @@ -4134,16 +4374,18 @@ classpath/java/net/InetSocketAddress.java \ classpath/java/net/JarURLConnection.java \ classpath/java/net/MalformedURLException.java \ classpath/java/net/MimeTypeMapper.java \ -classpath/java/net/MulticastSocket.java \ +java/net/MulticastSocket.java \ classpath/java/net/NetPermission.java \ -classpath/java/net/NetworkInterface.java \ +java/net/NetworkInterface.java \ classpath/java/net/NoRouteToHostException.java \ classpath/java/net/PasswordAuthentication.java \ classpath/java/net/PortUnreachableException.java \ classpath/java/net/ProtocolException.java \ +classpath/java/net/Proxy.java \ +classpath/java/net/ProxySelector.java \ classpath/java/net/ResolverCache.java \ classpath/java/net/ServerSocket.java \ -classpath/java/net/Socket.java \ +java/net/Socket.java \ classpath/java/net/SocketAddress.java \ classpath/java/net/SocketException.java \ classpath/java/net/SocketImpl.java \ @@ -4408,7 +4650,7 @@ classpath/java/security/PublicKey.java \ classpath/java/security/SecureClassLoader.java \ classpath/java/security/SecureRandom.java \ classpath/java/security/SecureRandomSpi.java \ -java/security/Security.java \ +classpath/java/security/Security.java \ classpath/java/security/SecurityPermission.java \ classpath/java/security/Signature.java \ classpath/java/security/SignatureException.java \ @@ -4574,8 +4816,10 @@ java_util_source_files = \ classpath/java/util/AbstractCollection.java \ classpath/java/util/AbstractList.java \ classpath/java/util/AbstractMap.java \ +classpath/external/jsr166/java/util/AbstractQueue.java \ classpath/java/util/AbstractSequentialList.java \ classpath/java/util/AbstractSet.java \ +classpath/external/jsr166/java/util/ArrayDeque.java \ classpath/java/util/ArrayList.java \ classpath/java/util/Arrays.java \ classpath/java/util/BitSet.java \ @@ -4586,9 +4830,12 @@ classpath/java/util/Comparator.java \ classpath/java/util/ConcurrentModificationException.java \ java/util/Currency.java \ classpath/java/util/Date.java \ +classpath/external/jsr166/java/util/Deque.java \ classpath/java/util/Dictionary.java \ classpath/java/util/DuplicateFormatFlagsException.java \ classpath/java/util/EmptyStackException.java \ +classpath/java/util/EnumMap.java \ +classpath/java/util/EnumSet.java \ classpath/java/util/Enumeration.java \ classpath/java/util/EventListener.java \ classpath/java/util/EventListenerProxy.java \ @@ -4623,16 +4870,20 @@ classpath/java/util/Map.java \ classpath/java/util/MissingFormatArgumentException.java \ classpath/java/util/MissingFormatWidthException.java \ classpath/java/util/MissingResourceException.java \ +classpath/external/jsr166/java/util/NavigableMap.java \ +classpath/external/jsr166/java/util/NavigableSet.java \ classpath/java/util/NoSuchElementException.java \ classpath/java/util/Observable.java \ classpath/java/util/Observer.java \ +classpath/java/util/PriorityQueue.java \ classpath/java/util/Properties.java \ classpath/java/util/PropertyPermission.java \ classpath/java/util/PropertyPermissionCollection.java \ classpath/java/util/PropertyResourceBundle.java \ +classpath/external/jsr166/java/util/Queue.java \ classpath/java/util/Random.java \ classpath/java/util/RandomAccess.java \ -java/util/ResourceBundle.java \ +classpath/java/util/ResourceBundle.java \ classpath/java/util/Set.java \ classpath/java/util/SimpleTimeZone.java \ classpath/java/util/SortedMap.java \ @@ -4652,7 +4903,81 @@ java/util/VMTimeZone.java \ classpath/java/util/Vector.java \ classpath/java/util/WeakHashMap.java -java_util_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_util_source_files))) +java_util_header_files = $(patsubst classpath/%,%,$(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_source_files)))) +java_util_concurrent_source_files = \ +classpath/external/jsr166/java/util/concurrent/AbstractExecutorService.java \ +classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/BlockingDeque.java \ +classpath/external/jsr166/java/util/concurrent/BlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/BrokenBarrierException.java \ +classpath/external/jsr166/java/util/concurrent/Callable.java \ +classpath/external/jsr166/java/util/concurrent/CancellationException.java \ +classpath/external/jsr166/java/util/concurrent/CompletionService.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentLinkedQueue.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentNavigableMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java \ +classpath/java/util/concurrent/CopyOnWriteArrayList.java \ +classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java \ +classpath/external/jsr166/java/util/concurrent/CountDownLatch.java \ +classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java \ +classpath/external/jsr166/java/util/concurrent/DelayQueue.java \ +classpath/external/jsr166/java/util/concurrent/Delayed.java \ +classpath/external/jsr166/java/util/concurrent/Exchanger.java \ +classpath/external/jsr166/java/util/concurrent/ExecutionException.java \ +classpath/external/jsr166/java/util/concurrent/Executor.java \ +classpath/external/jsr166/java/util/concurrent/ExecutorCompletionService.java \ +classpath/external/jsr166/java/util/concurrent/ExecutorService.java \ +classpath/external/jsr166/java/util/concurrent/Executors.java \ +classpath/external/jsr166/java/util/concurrent/Future.java \ +classpath/external/jsr166/java/util/concurrent/FutureTask.java \ +classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java \ +classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/RejectedExecutionException.java \ +classpath/external/jsr166/java/util/concurrent/RejectedExecutionHandler.java \ +classpath/external/jsr166/java/util/concurrent/RunnableFuture.java \ +classpath/external/jsr166/java/util/concurrent/RunnableScheduledFuture.java \ +classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java \ +classpath/external/jsr166/java/util/concurrent/ScheduledFuture.java \ +classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java \ +classpath/external/jsr166/java/util/concurrent/Semaphore.java \ +classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java \ +classpath/external/jsr166/java/util/concurrent/ThreadFactory.java \ +classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java \ +classpath/external/jsr166/java/util/concurrent/TimeUnit.java \ +classpath/external/jsr166/java/util/concurrent/TimeoutException.java + +java_util_concurrent_header_files = $(patsubst classpath/%,%,$(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_concurrent_source_files)))) +java_util_concurrent_atomic_source_files = \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicBoolean.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerArray.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongArray.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicMarkableReference.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicReference.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceArray.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicStampedReference.java + +java_util_concurrent_atomic_header_files = $(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_concurrent_atomic_source_files))) +java_util_concurrent_locks_source_files = \ +classpath/external/jsr166/java/util/concurrent/locks/AbstractOwnableSynchronizer.java \ +classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \ +classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java \ +classpath/external/jsr166/java/util/concurrent/locks/Condition.java \ +classpath/external/jsr166/java/util/concurrent/locks/Lock.java \ +classpath/external/jsr166/java/util/concurrent/locks/LockSupport.java \ +classpath/external/jsr166/java/util/concurrent/locks/ReadWriteLock.java \ +classpath/external/jsr166/java/util/concurrent/locks/ReentrantLock.java \ +classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java + +java_util_concurrent_locks_header_files = $(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_concurrent_locks_source_files))) java_util_jar_source_files = \ classpath/java/util/jar/Attributes.java \ classpath/java/util/jar/JarEntry.java \ @@ -4856,8 +5181,14 @@ javax_management_source_files = \ classpath/javax/management/Attribute.java \ classpath/javax/management/AttributeList.java \ classpath/javax/management/AttributeNotFoundException.java \ +classpath/javax/management/BadAttributeValueExpException.java \ +classpath/javax/management/BadBinaryOpValueExpException.java \ +classpath/javax/management/BadStringOperationException.java \ classpath/javax/management/DynamicMBean.java \ +classpath/javax/management/InstanceAlreadyExistsException.java \ +classpath/javax/management/InstanceNotFoundException.java \ classpath/javax/management/IntrospectionException.java \ +classpath/javax/management/InvalidApplicationException.java \ classpath/javax/management/InvalidAttributeValueException.java \ classpath/javax/management/JMException.java \ classpath/javax/management/JMRuntimeException.java \ @@ -4870,28 +5201,65 @@ classpath/javax/management/MBeanInfo.java \ classpath/javax/management/MBeanNotificationInfo.java \ classpath/javax/management/MBeanOperationInfo.java \ classpath/javax/management/MBeanParameterInfo.java \ +classpath/javax/management/MBeanPermission.java \ +classpath/javax/management/MBeanRegistration.java \ +classpath/javax/management/MBeanRegistrationException.java \ +classpath/javax/management/MBeanServer.java \ +classpath/javax/management/MBeanServerBuilder.java \ +classpath/javax/management/MBeanServerConnection.java \ +classpath/javax/management/MBeanServerDelegate.java \ +classpath/javax/management/MBeanServerDelegateMBean.java \ +classpath/javax/management/MBeanServerFactory.java \ +classpath/javax/management/MBeanServerNotification.java \ +classpath/javax/management/MBeanServerPermission.java \ +classpath/javax/management/MBeanTrustPermission.java \ +classpath/javax/management/MalformedObjectNameException.java \ classpath/javax/management/NotCompliantMBeanException.java \ classpath/javax/management/Notification.java \ classpath/javax/management/NotificationBroadcaster.java \ classpath/javax/management/NotificationEmitter.java \ classpath/javax/management/NotificationFilter.java \ classpath/javax/management/NotificationListener.java \ +classpath/javax/management/ObjectInstance.java \ +classpath/javax/management/ObjectName.java \ classpath/javax/management/OperationsException.java \ +classpath/javax/management/QueryExp.java \ classpath/javax/management/ReflectionException.java \ +classpath/javax/management/RuntimeErrorException.java \ +classpath/javax/management/RuntimeMBeanException.java \ classpath/javax/management/RuntimeOperationsException.java \ -classpath/javax/management/StandardMBean.java +classpath/javax/management/ServiceNotFoundException.java \ +classpath/javax/management/StandardMBean.java \ +classpath/javax/management/ValueExp.java javax_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_source_files))) +javax_management_loading_source_files = \ +classpath/javax/management/loading/ClassLoaderRepository.java + +javax_management_loading_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_loading_source_files))) javax_management_openmbean_source_files = \ classpath/javax/management/openmbean/ArrayType.java \ classpath/javax/management/openmbean/CompositeData.java \ classpath/javax/management/openmbean/CompositeDataSupport.java \ classpath/javax/management/openmbean/CompositeType.java \ classpath/javax/management/openmbean/InvalidKeyException.java \ +classpath/javax/management/openmbean/InvalidOpenTypeException.java \ +classpath/javax/management/openmbean/KeyAlreadyExistsException.java \ classpath/javax/management/openmbean/OpenDataException.java \ +classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java \ +classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java \ +classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanInfo.java \ +classpath/javax/management/openmbean/OpenMBeanInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanOperationInfo.java \ +classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanParameterInfo.java \ +classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java \ classpath/javax/management/openmbean/OpenType.java \ classpath/javax/management/openmbean/SimpleType.java \ classpath/javax/management/openmbean/TabularData.java \ +classpath/javax/management/openmbean/TabularDataSupport.java \ classpath/javax/management/openmbean/TabularType.java javax_management_openmbean_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_openmbean_source_files))) @@ -4992,7 +5360,7 @@ classpath/javax/naming/spi/DirStateFactory.java \ classpath/javax/naming/spi/DirectoryManager.java \ classpath/javax/naming/spi/InitialContextFactory.java \ classpath/javax/naming/spi/InitialContextFactoryBuilder.java \ -javax/naming/spi/NamingManager.java \ +classpath/javax/naming/spi/NamingManager.java \ classpath/javax/naming/spi/ObjectFactory.java \ classpath/javax/naming/spi/ObjectFactoryBuilder.java \ classpath/javax/naming/spi/ResolveResult.java \ @@ -5008,6 +5376,7 @@ classpath/javax/net/VanillaSocketFactory.java javax_net_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_net_source_files))) javax_net_ssl_source_files = \ +classpath/javax/net/ssl/CertPathTrustManagerParameters.java \ classpath/javax/net/ssl/HandshakeCompletedEvent.java \ classpath/javax/net/ssl/HandshakeCompletedListener.java \ classpath/javax/net/ssl/HostnameVerifier.java \ @@ -5015,9 +5384,12 @@ classpath/javax/net/ssl/HttpsURLConnection.java \ classpath/javax/net/ssl/KeyManager.java \ classpath/javax/net/ssl/KeyManagerFactory.java \ classpath/javax/net/ssl/KeyManagerFactorySpi.java \ +classpath/javax/net/ssl/KeyStoreBuilderParameters.java \ classpath/javax/net/ssl/ManagerFactoryParameters.java \ classpath/javax/net/ssl/SSLContext.java \ classpath/javax/net/ssl/SSLContextSpi.java \ +classpath/javax/net/ssl/SSLEngine.java \ +classpath/javax/net/ssl/SSLEngineResult.java \ classpath/javax/net/ssl/SSLException.java \ classpath/javax/net/ssl/SSLHandshakeException.java \ classpath/javax/net/ssl/SSLKeyException.java \ @@ -5036,6 +5408,7 @@ classpath/javax/net/ssl/TrivialHostnameVerifier.java \ classpath/javax/net/ssl/TrustManager.java \ classpath/javax/net/ssl/TrustManagerFactory.java \ classpath/javax/net/ssl/TrustManagerFactorySpi.java \ +classpath/javax/net/ssl/X509ExtendedKeyManager.java \ classpath/javax/net/ssl/X509KeyManager.java \ classpath/javax/net/ssl/X509TrustManager.java @@ -5827,30 +6200,44 @@ classpath/javax/swing/text/TextAction.java \ classpath/javax/swing/text/Utilities.java \ classpath/javax/swing/text/View.java \ classpath/javax/swing/text/ViewFactory.java \ -classpath/javax/swing/text/WrappedPlainView.java +classpath/javax/swing/text/WrappedPlainView.java \ +classpath/javax/swing/text/ZoneView.java javax_swing_text_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_text_source_files))) javax_swing_text_html_source_files = \ classpath/javax/swing/text/html/BRView.java \ classpath/javax/swing/text/html/BlockView.java \ classpath/javax/swing/text/html/CSS.java \ +classpath/javax/swing/text/html/CSSBorder.java \ classpath/javax/swing/text/html/CSSParser.java \ +classpath/javax/swing/text/html/FormSubmitEvent.java \ classpath/javax/swing/text/html/FormView.java \ +classpath/javax/swing/text/html/FrameSetView.java \ +classpath/javax/swing/text/html/FrameView.java \ classpath/javax/swing/text/html/HRuleView.java \ classpath/javax/swing/text/html/HTML.java \ classpath/javax/swing/text/html/HTMLDocument.java \ classpath/javax/swing/text/html/HTMLEditorKit.java \ classpath/javax/swing/text/html/HTMLFrameHyperlinkEvent.java \ +classpath/javax/swing/text/html/HTMLWriter.java \ classpath/javax/swing/text/html/ImageView.java \ classpath/javax/swing/text/html/InlineView.java \ classpath/javax/swing/text/html/ListView.java \ classpath/javax/swing/text/html/MinimalHTMLWriter.java \ +classpath/javax/swing/text/html/MultiAttributeSet.java \ +classpath/javax/swing/text/html/MultiStyle.java \ classpath/javax/swing/text/html/NullView.java \ classpath/javax/swing/text/html/ObjectView.java \ classpath/javax/swing/text/html/Option.java \ classpath/javax/swing/text/html/ParagraphView.java \ +classpath/javax/swing/text/html/ResetableModel.java \ +classpath/javax/swing/text/html/ResetablePlainDocument.java \ +classpath/javax/swing/text/html/ResetableToggleButtonModel.java \ +classpath/javax/swing/text/html/SelectComboBoxModel.java \ +classpath/javax/swing/text/html/SelectListModel.java \ classpath/javax/swing/text/html/StyleSheet.java \ -classpath/javax/swing/text/html/TableView.java +classpath/javax/swing/text/html/TableView.java \ +classpath/javax/swing/text/html/ViewAttributeSet.java javax_swing_text_html_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_text_html_source_files))) javax_swing_text_html_parser_source_files = \ @@ -6763,6 +7150,28 @@ classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java \ classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java \ classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java +sun_misc_source_files = \ +classpath/sun/misc/Service.java \ +classpath/sun/misc/ServiceConfigurationError.java \ +sun/misc/Unsafe.java + +sun_misc_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_misc_source_files))) +sun_reflect_source_files = \ +sun/reflect/Reflection.java + +sun_reflect_header_files = $(patsubst %.java,%.h,$(sun_reflect_source_files)) +sun_reflect_annotation_source_files = \ +classpath/sun/reflect/annotation/AnnotationInvocationHandler.java \ +classpath/sun/reflect/annotation/AnnotationParser.java \ +classpath/sun/reflect/annotation/AnnotationType.java \ +classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java \ +classpath/sun/reflect/annotation/ExceptionProxy.java + +sun_reflect_annotation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_reflect_annotation_source_files))) +sun_reflect_misc_source_files = \ +sun/reflect/misc/ReflectUtil.java + +sun_reflect_misc_header_files = $(patsubst %.java,%.h,$(sun_reflect_misc_source_files)) all_packages_source_files = \ gnu/awt.list \ gnu/awt/j2d.list \ @@ -6786,11 +7195,13 @@ all_packages_source_files = \ gnu/java/awt/color.list \ gnu/java/awt/dnd.list \ gnu/java/awt/font.list \ + gnu/java/awt/font/autofit.list \ gnu/java/awt/font/opentype.list \ gnu/java/awt/font/opentype/truetype.list \ gnu/java/awt/image.list \ gnu/java/awt/java2d.list \ gnu/java/awt/peer.list \ + gnu/java/awt/peer/headless.list \ gnu/java/awt/print.list \ gnu/java/io.list \ gnu/java/lang.list \ @@ -6815,7 +7226,6 @@ all_packages_source_files = \ gnu/java/rmi/activation.list \ gnu/java/rmi/dgc.list \ gnu/java/rmi/registry.list \ - gnu/java/rmi/rmic.list \ gnu/java/rmi/server.list \ gnu/java/security.list \ gnu/java/security/action.list \ @@ -6873,6 +7283,11 @@ all_packages_source_files = \ gnu/javax/imageio/gif.list \ gnu/javax/imageio/jpeg.list \ gnu/javax/imageio/png.list \ + gnu/javax/management.list \ + gnu/javax/naming/giop.list \ + gnu/javax/naming/ictxImpl/trans.list \ + gnu/javax/naming/jndi/url/corbaname.list \ + gnu/javax/naming/jndi/url/rmi.list \ gnu/javax/net/ssl.list \ gnu/javax/net/ssl/provider.list \ gnu/javax/print.list \ @@ -6890,6 +7305,7 @@ all_packages_source_files = \ gnu/javax/swing/plaf/gnu.list \ gnu/javax/swing/plaf/metal.list \ gnu/javax/swing/text/html.list \ + gnu/javax/swing/text/html/css.list \ gnu/javax/swing/text/html/parser.list \ gnu/javax/swing/text/html/parser/models.list \ gnu/javax/swing/text/html/parser/support.list \ @@ -6939,6 +7355,9 @@ all_packages_source_files = \ java/sql.list \ java/text.list \ java/util.list \ + java/util/concurrent.list \ + java/util/concurrent/atomic.list \ + java/util/concurrent/locks.list \ java/util/jar.list \ java/util/logging.list \ java/util/prefs.list \ @@ -6949,6 +7368,7 @@ all_packages_source_files = \ javax/crypto/interfaces.list \ javax/crypto/spec.list \ javax/management.list \ + javax/management/loading.list \ javax/management/openmbean.list \ javax/naming.list \ javax/naming/directory.list \ @@ -6993,7 +7413,11 @@ all_packages_source_files = \ javax/swing/undo.list \ javax/transaction.list \ javax/transaction/xa.list \ - org/ietf/jgss.list + org/ietf/jgss.list \ + sun/misc.list \ + sun/reflect.list \ + sun/reflect/annotation.list \ + sun/reflect/misc.list ordinary_header_files = \ $(gnu_awt_header_files) \ @@ -7013,16 +7437,19 @@ ordinary_header_files = \ $(gnu_gcj_io_header_files) \ $(gnu_gcj_jvmti_header_files) \ $(gnu_gcj_runtime_header_files) \ + $(gnu_gcj_tools_gcj_dbtool_header_files) \ $(gnu_gcj_util_header_files) \ $(gnu_java_awt_header_files) \ $(gnu_java_awt_color_header_files) \ $(gnu_java_awt_dnd_header_files) \ $(gnu_java_awt_font_header_files) \ + $(gnu_java_awt_font_autofit_header_files) \ $(gnu_java_awt_font_opentype_header_files) \ $(gnu_java_awt_font_opentype_truetype_header_files) \ $(gnu_java_awt_image_header_files) \ $(gnu_java_awt_java2d_header_files) \ $(gnu_java_awt_peer_header_files) \ + $(gnu_java_awt_peer_headless_header_files) \ $(gnu_java_awt_print_header_files) \ $(gnu_java_io_header_files) \ $(gnu_java_lang_header_files) \ @@ -7047,7 +7474,6 @@ ordinary_header_files = \ $(gnu_java_rmi_activation_header_files) \ $(gnu_java_rmi_dgc_header_files) \ $(gnu_java_rmi_registry_header_files) \ - $(gnu_java_rmi_rmic_header_files) \ $(gnu_java_rmi_server_header_files) \ $(gnu_java_security_header_files) \ $(gnu_java_security_action_header_files) \ @@ -7105,6 +7531,11 @@ ordinary_header_files = \ $(gnu_javax_imageio_gif_header_files) \ $(gnu_javax_imageio_jpeg_header_files) \ $(gnu_javax_imageio_png_header_files) \ + $(gnu_javax_management_header_files) \ + $(gnu_javax_naming_giop_header_files) \ + $(gnu_javax_naming_ictxImpl_trans_header_files) \ + $(gnu_javax_naming_jndi_url_corbaname_header_files) \ + $(gnu_javax_naming_jndi_url_rmi_header_files) \ $(gnu_javax_net_ssl_header_files) \ $(gnu_javax_net_ssl_provider_header_files) \ $(gnu_javax_print_header_files) \ @@ -7122,6 +7553,7 @@ ordinary_header_files = \ $(gnu_javax_swing_plaf_gnu_header_files) \ $(gnu_javax_swing_plaf_metal_header_files) \ $(gnu_javax_swing_text_html_header_files) \ + $(gnu_javax_swing_text_html_css_header_files) \ $(gnu_javax_swing_text_html_parser_header_files) \ $(gnu_javax_swing_text_html_parser_models_header_files) \ $(gnu_javax_swing_text_html_parser_support_header_files) \ @@ -7171,6 +7603,9 @@ ordinary_header_files = \ $(java_sql_header_files) \ $(java_text_header_files) \ $(java_util_header_files) \ + $(java_util_concurrent_header_files) \ + $(java_util_concurrent_atomic_header_files) \ + $(java_util_concurrent_locks_header_files) \ $(java_util_jar_header_files) \ $(java_util_logging_header_files) \ $(java_util_prefs_header_files) \ @@ -7181,6 +7616,7 @@ ordinary_header_files = \ $(javax_crypto_interfaces_header_files) \ $(javax_crypto_spec_header_files) \ $(javax_management_header_files) \ + $(javax_management_loading_header_files) \ $(javax_management_openmbean_header_files) \ $(javax_naming_header_files) \ $(javax_naming_directory_header_files) \ @@ -7225,13 +7661,16 @@ ordinary_header_files = \ $(javax_swing_undo_header_files) \ $(javax_transaction_header_files) \ $(javax_transaction_xa_header_files) \ - $(org_ietf_jgss_header_files) + $(org_ietf_jgss_header_files) \ + $(sun_misc_header_files) \ + $(sun_reflect_header_files) \ + $(sun_reflect_annotation_header_files) \ + $(sun_reflect_misc_header_files) bc_objects = \ gnu-CORBA.lo \ gnu-java-awt-dnd-peer-gtk.lo \ gnu-java-awt-peer-gtk.lo \ - gnu-java-awt-peer-qt.lo \ gnu-java-awt-peer-swing.lo \ gnu-java-beans.lo \ gnu-java-util-prefs-gconf.lo \ @@ -7247,14 +7686,21 @@ bc_objects = \ org-xml.lo property_files = \ - classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties \ - classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties \ + classpath/resource/gnu/classpath/tools/appletviewer/messages.properties \ + classpath/resource/gnu/classpath/tools/common/Messages.properties \ classpath/resource/gnu/classpath/tools/getopt/Messages.properties \ classpath/resource/gnu/classpath/tools/jar/messages.properties \ + classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties \ classpath/resource/gnu/classpath/tools/jarsigner/messages.properties \ + classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties \ classpath/resource/gnu/classpath/tools/keytool/messages.properties \ classpath/resource/gnu/classpath/tools/native2ascii/messages.properties \ + classpath/resource/gnu/classpath/tools/orbd/messages.properties \ + classpath/resource/gnu/classpath/tools/rmic/messages.properties \ + classpath/resource/gnu/classpath/tools/rmid/messages.properties \ + classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties \ classpath/resource/gnu/classpath/tools/serialver/messages.properties \ + classpath/resource/gnu/classpath/tools/tnameserv/messages.properties \ classpath/resource/gnu/java/awt/peer/gtk/font.properties \ classpath/resource/gnu/java/awt/peer/x/fonts.properties \ classpath/resource/gnu/java/util/regex/MessagesBundle.properties \ @@ -7266,7 +7712,6 @@ property_files = \ classpath/resource/java/util/iso4217.properties \ classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \ classpath/resource/org/ietf/jgss/MessagesBundle.properties \ - classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory \ classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \ classpath/resource/META-INF/services/javax.sound.midi.spi.MidiDeviceProvider \ classpath/resource/META-INF/services/javax.sound.midi.spi.MidiFileReader \ @@ -7283,9 +7728,8 @@ omitted_headers = java/lang/ClassLoader.h java/lang/Thread.h \ java/lang/reflect/Field.h java/lang/reflect/Method.h \ java/lang/reflect/Proxy.h gnu/gcj/runtime/ExtensionClassLoader.h -generic_header_files = $(filter-out $(omitted_headers),$(ordinary_header_files) $(xlib_nat_headers)) \ - gnu/gcj/tools/gcj_dbtool/Main.h - +generic_header_files = $(ordinary_header_files) $(xlib_nat_headers) +MYGCJH = gjavah inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ java/io/ObjectInputStream$$GetField.h \ java/nio/DirectByteBufferImpl$$ReadWrite.h \ @@ -7296,12 +7740,9 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ gnu/java/net/PlainSocketImpl$$SocketInputStream.h \ gnu/java/net/PlainSocketImpl$$SocketOutputStream.h \ gnu/java/nio/PipeImpl$$SinkChannelImpl.h \ - gnu/java/nio/PipeImpl$$SourceChannelImpl.h \ - $(PLATFORM_INNER_NAT_HDRS) - -nat_headers = $(ordinary_header_files) $(inner_nat_headers) \ - gnu/gcj/tools/gcj_dbtool/Main.h + gnu/java/nio/PipeImpl$$SourceChannelImpl.h +nat_headers = $(ordinary_header_files) $(inner_nat_headers) nat_headers_install = $(ordinary_header_files) xlib_nat_headers = $(gnu_awt_xlib_header_files) $(gnu_gcj_xlib_header_files) extra_headers = java/lang/Object.h java/lang/Class.h @@ -7323,15 +7764,14 @@ jv_convert_LINK = $(GCJLINK) jv_convert_LDADD = -L$(here)/.libs libgcj.la jv_convert_DEPENDENCIES = libgcj.la libgcj.spec gcj_dbtool_SOURCES = \ -gnu/gcj/tools/gcj_dbtool/Main.java \ gnu/gcj/tools/gcj_dbtool/natMain.cc gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) gcj_dbtool_LINK = $(GCJLINK) -gcj_dbtool_LDADD = -L$(here)/.libs libgcj.la -gcj_dbtool_DEPENDENCIES = libgcj.la libgcj.spec +gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la +gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la libgcj.spec gij_SOURCES = gij_LDFLAGS = -rpath $(libdir)/gcj-$(gcc_version) -rpath $(toolexeclibdir) \ -shared-libgcc $(THREADLDFLAGS) @@ -7339,20 +7779,19 @@ gij_LDFLAGS = -rpath $(libdir)/gcj-$(gcc_version) -rpath $(toolexeclibdir) \ gij_LINK = $(GCJLINK) gij_LDADD = -L$(here)/.libs libgij.la gij_DEPENDENCIES = libgij.la -grmic_SOURCES = -grmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ - -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) - -grmic_LINK = $(GCJLINK) -grmic_LDADD = -L$(here)/.libs libgcj.la -grmic_DEPENDENCIES = libgcj.la libgcj.spec -grmiregistry_SOURCES = -grmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ - -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) - -grmiregistry_LINK = $(GCJLINK) -grmiregistry_LDADD = -L$(here)/.libs libgcj.la -grmiregistry_DEPENDENCIES = libgcj.la libgcj.spec +ecjx_SOURCES = +ECJX_BASE_FLAGS = -findirect-dispatch \ + --main=org.eclipse.jdt.internal.compiler.batch.GCCMain + +@NATIVE_FALSE@ecjx_LINK = $(GCJ_FOR_ECJX_LINK) +@NATIVE_TRUE@ecjx_LINK = $(GCJLINK) +@ENABLE_SHARED_FALSE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) +@ENABLE_SHARED_TRUE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR) +@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) +@NATIVE_FALSE@ecjx_LDADD = +@NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs libgcj.la +@NATIVE_FALSE@ecjx_DEPENDENCIES = +@NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec gappletviewer_SOURCES = gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) @@ -7374,11 +7813,76 @@ gkeytool_LDFLAGS = --main=gnu.classpath.tools.keytool.Main \ gkeytool_LINK = $(GCJLINK) gkeytool_LDADD = -L$(here)/.libs libgcj-tools.la gkeytool_DEPENDENCIES = libgcj-tools.la +gjar_SOURCES = +gjar_LDFLAGS = --main=gnu.classpath.tools.jar.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +gjar_LINK = $(GCJLINK) +gjar_LDADD = -L$(here)/.libs libgcj-tools.la +gjar_DEPENDENCIES = libgcj-tools.la +gjavah_SOURCES = +gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +gjavah_LINK = $(GCJLINK) +gjavah_LDADD = -L$(here)/.libs libgcj-tools.la +gjavah_DEPENDENCIES = libgcj-tools.la +gnative2ascii_SOURCES = +gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +gnative2ascii_LINK = $(GCJLINK) +gnative2ascii_LDADD = -L$(here)/.libs libgcj-tools.la +gnative2ascii_DEPENDENCIES = libgcj-tools.la +gorbd_SOURCES = +gorbd_LDFLAGS = --main=gnu.classpath.tools.orbd.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +gorbd_LINK = $(GCJLINK) +gorbd_LDADD = -L$(here)/.libs libgcj-tools.la +gorbd_DEPENDENCIES = libgcj-tools.la +grmid_SOURCES = +grmid_LDFLAGS = --main=gnu.classpath.tools.rmid.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +grmid_LINK = $(GCJLINK) +grmid_LDADD = -L$(here)/.libs libgcj-tools.la +grmid_DEPENDENCIES = libgcj-tools.la +gserialver_SOURCES = +gserialver_LDFLAGS = --main=gnu.classpath.tools.serialver.SerialVer \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +gserialver_LINK = $(GCJLINK) +gserialver_LDADD = -L$(here)/.libs libgcj-tools.la +gserialver_DEPENDENCIES = libgcj-tools.la +gtnameserv_SOURCES = +gtnameserv_LDFLAGS = --main=gnu.classpath.tools.tnameserv.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +gtnameserv_LINK = $(GCJLINK) +gtnameserv_LDADD = -L$(here)/.libs libgcj-tools.la +gtnameserv_DEPENDENCIES = libgcj-tools.la +grmic_SOURCES = +grmic_LDFLAGS = --main=gnu.classpath.tools.rmic.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +grmic_LINK = $(GCJLINK) +grmic_LDADD = -L$(here)/.libs libgcj-tools.la +grmic_DEPENDENCIES = libgcj-tools.la +grmiregistry_SOURCES = +grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \ + -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) + +grmiregistry_LINK = $(GCJLINK) +grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la +grmiregistry_DEPENDENCIES = libgcj-tools.la nat_source_files = \ -gnu/classpath/natSystemProperties.cc \ gnu/classpath/jdwp/natVMFrame.cc \ gnu/classpath/jdwp/natVMMethod.cc \ gnu/classpath/jdwp/natVMVirtualMachine.cc \ +gnu/classpath/natConfiguration.cc \ +gnu/classpath/natSystemProperties.cc \ +gnu/classpath/natVMStackWalker.cc \ gnu/gcj/natCore.cc \ gnu/gcj/convert/JIS0208_to_Unicode.cc \ gnu/gcj/convert/JIS0212_to_Unicode.cc \ @@ -7397,16 +7901,26 @@ gnu/gcj/runtime/natSystemClassLoader.cc \ gnu/gcj/runtime/natStringBuffer.cc \ gnu/gcj/util/natDebug.cc \ gnu/java/lang/natMainThread.cc \ +gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc \ +gnu/java/lang/management/natVMCompilationMXBeanImpl.cc \ +gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc \ +gnu/java/lang/management/natVMMemoryMXBeanImpl.cc \ +gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc \ +gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc \ +gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc \ +gnu/java/lang/management/natVMThreadMXBeanImpl.cc \ gnu/java/net/natPlainDatagramSocketImpl.cc \ gnu/java/net/natPlainSocketImpl.cc \ gnu/java/net/protocol/core/natCoreInputStream.cc \ gnu/java/nio/natPipeImpl.cc \ gnu/java/nio/natSelectorImpl.cc \ gnu/java/nio/natNIOServerSocket.cc \ +gnu/java/nio/natVMChannel.cc \ gnu/java/nio/channels/natFileChannelImpl.cc \ java/io/natFile.cc \ java/io/natObjectInputStream.cc \ java/io/natVMObjectStreamClass.cc \ +java/lang/management/natVMManagementFactory.cc \ java/lang/natCharacter.cc \ java/lang/natClass.cc \ java/lang/natClassLoader.cc \ @@ -7421,27 +7935,29 @@ java/lang/natStringBuffer.cc \ java/lang/natStringBuilder.cc \ java/lang/natSystem.cc \ java/lang/natThread.cc \ +java/lang/natThreadLocal.cc \ java/lang/natVMClassLoader.cc \ -java/lang/natVMSecurityManager.cc \ java/lang/natVMThrowable.cc \ java/lang/ref/natReference.cc \ java/lang/reflect/natArray.cc \ java/lang/reflect/natConstructor.cc \ java/lang/reflect/natField.cc \ java/lang/reflect/natMethod.cc \ -java/net/natVMNetworkInterface.cc \ +java/lang/reflect/natVMProxy.cc \ java/net/natVMInetAddress.cc \ -java/net/natURLClassLoader.cc \ +java/net/natVMNetworkInterface.cc \ +java/net/natVMURLConnection.cc \ java/nio/channels/natVMChannels.cc \ java/nio/natDirectByteBufferImpl.cc \ java/security/natVMAccessController.cc \ java/security/natVMAccessControlState.cc \ java/text/natCollator.cc \ -java/util/natResourceBundle.cc \ java/util/natVMTimeZone.cc \ +java/util/concurrent/atomic/natAtomicLong.cc \ java/util/logging/natLogger.cc \ java/util/zip/natDeflater.cc \ -java/util/zip/natInflater.cc +java/util/zip/natInflater.cc \ +sun/misc/natUnsafe.cc xlib_nat_source_files = \ gnu/gcj/xlib/natClip.cc \ @@ -7466,7 +7982,7 @@ gnu/gcj/xlib/natXImage.cc \ gnu/gcj/xlib/natXUnmapEvent.cc sourcesdir = $(jardir) -headers_to_make = $(nat_headers) $(am__append_14) +headers_to_make = $(nat_headers) $(am__append_15) # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and @@ -7505,7 +8021,8 @@ AM_MAKEFLAGS = \ "NM=$(NM)" \ "PICFLAG=$(PICFLAG)" \ "RANLIB=$(RANLIB)" \ - "DESTDIR=$(DESTDIR)" + "DESTDIR=$(DESTDIR)" \ + "JAR=$(JAR)" # Subdir rules rely on $(FLAGS_TO_PASS) @@ -7523,7 +8040,7 @@ MULTICLEAN = true all: all-recursive .SUFFIXES: -.SUFFIXES: .class .java .h .properties .list .c .cc .jar .lo .o .obj +.SUFFIXES: .class .java .h .properties .list .c .cc .lo .o .obj .zip am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/sources.am $(am__configure_deps) @@ -7696,24 +8213,6 @@ classpath/tools/libgcj_tools_la-tools.lo: \ classpath/tools/$(DEPDIR)/$(am__dirstamp) libgcj-tools.la: $(libgcj_tools_la_OBJECTS) $(libgcj_tools_la_DEPENDENCIES) $(libgcj_tools_la_LINK) -rpath $(toolexeclibdir) $(libgcj_tools_la_LDFLAGS) $(libgcj_tools_la_OBJECTS) $(libgcj_tools_la_LIBADD) $(LIBS) -java/lang/$(am__dirstamp): - @$(mkdir_p) java/lang - @: > java/lang/$(am__dirstamp) -java/lang/$(DEPDIR)/$(am__dirstamp): - @$(mkdir_p) java/lang/$(DEPDIR) - @: > java/lang/$(DEPDIR)/$(am__dirstamp) -java/lang/Class.lo: java/lang/$(am__dirstamp) \ - java/lang/$(DEPDIR)/$(am__dirstamp) -java/lang/Object.lo: java/lang/$(am__dirstamp) \ - java/lang/$(DEPDIR)/$(am__dirstamp) -gnu/classpath/$(am__dirstamp): - @$(mkdir_p) gnu/classpath - @: > gnu/classpath/$(am__dirstamp) -gnu/classpath/$(DEPDIR)/$(am__dirstamp): - @$(mkdir_p) gnu/classpath/$(DEPDIR) - @: > gnu/classpath/$(DEPDIR)/$(am__dirstamp) -gnu/classpath/natSystemProperties.lo: gnu/classpath/$(am__dirstamp) \ - gnu/classpath/$(DEPDIR)/$(am__dirstamp) gnu/classpath/jdwp/$(am__dirstamp): @$(mkdir_p) gnu/classpath/jdwp @: > gnu/classpath/jdwp/$(am__dirstamp) @@ -7727,6 +8226,18 @@ gnu/classpath/jdwp/natVMMethod.lo: gnu/classpath/jdwp/$(am__dirstamp) \ gnu/classpath/jdwp/natVMVirtualMachine.lo: \ gnu/classpath/jdwp/$(am__dirstamp) \ gnu/classpath/jdwp/$(DEPDIR)/$(am__dirstamp) +gnu/classpath/$(am__dirstamp): + @$(mkdir_p) gnu/classpath + @: > gnu/classpath/$(am__dirstamp) +gnu/classpath/$(DEPDIR)/$(am__dirstamp): + @$(mkdir_p) gnu/classpath/$(DEPDIR) + @: > gnu/classpath/$(DEPDIR)/$(am__dirstamp) +gnu/classpath/natConfiguration.lo: gnu/classpath/$(am__dirstamp) \ + gnu/classpath/$(DEPDIR)/$(am__dirstamp) +gnu/classpath/natSystemProperties.lo: gnu/classpath/$(am__dirstamp) \ + gnu/classpath/$(DEPDIR)/$(am__dirstamp) +gnu/classpath/natVMStackWalker.lo: gnu/classpath/$(am__dirstamp) \ + gnu/classpath/$(DEPDIR)/$(am__dirstamp) gnu/gcj/$(am__dirstamp): @$(mkdir_p) gnu/gcj @: > gnu/gcj/$(am__dirstamp) @@ -7810,6 +8321,36 @@ gnu/java/lang/$(DEPDIR)/$(am__dirstamp): @: > gnu/java/lang/$(DEPDIR)/$(am__dirstamp) gnu/java/lang/natMainThread.lo: gnu/java/lang/$(am__dirstamp) \ gnu/java/lang/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/$(am__dirstamp): + @$(mkdir_p) gnu/java/lang/management + @: > gnu/java/lang/management/$(am__dirstamp) +gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp): + @$(mkdir_p) gnu/java/lang/management/$(DEPDIR) + @: > gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMClassLoadingMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMCompilationMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMMemoryMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMRuntimeMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) +gnu/java/lang/management/natVMThreadMXBeanImpl.lo: \ + gnu/java/lang/management/$(am__dirstamp) \ + gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) gnu/java/net/$(am__dirstamp): @$(mkdir_p) gnu/java/net @: > gnu/java/net/$(am__dirstamp) @@ -7842,6 +8383,8 @@ gnu/java/nio/natSelectorImpl.lo: gnu/java/nio/$(am__dirstamp) \ gnu/java/nio/$(DEPDIR)/$(am__dirstamp) gnu/java/nio/natNIOServerSocket.lo: gnu/java/nio/$(am__dirstamp) \ gnu/java/nio/$(DEPDIR)/$(am__dirstamp) +gnu/java/nio/natVMChannel.lo: gnu/java/nio/$(am__dirstamp) \ + gnu/java/nio/$(DEPDIR)/$(am__dirstamp) gnu/java/nio/channels/$(am__dirstamp): @$(mkdir_p) gnu/java/nio/channels @: > gnu/java/nio/channels/$(am__dirstamp) @@ -7863,6 +8406,21 @@ java/io/natObjectInputStream.lo: java/io/$(am__dirstamp) \ java/io/$(DEPDIR)/$(am__dirstamp) java/io/natVMObjectStreamClass.lo: java/io/$(am__dirstamp) \ java/io/$(DEPDIR)/$(am__dirstamp) +java/lang/management/$(am__dirstamp): + @$(mkdir_p) java/lang/management + @: > java/lang/management/$(am__dirstamp) +java/lang/management/$(DEPDIR)/$(am__dirstamp): + @$(mkdir_p) java/lang/management/$(DEPDIR) + @: > java/lang/management/$(DEPDIR)/$(am__dirstamp) +java/lang/management/natVMManagementFactory.lo: \ + java/lang/management/$(am__dirstamp) \ + java/lang/management/$(DEPDIR)/$(am__dirstamp) +java/lang/$(am__dirstamp): + @$(mkdir_p) java/lang + @: > java/lang/$(am__dirstamp) +java/lang/$(DEPDIR)/$(am__dirstamp): + @$(mkdir_p) java/lang/$(DEPDIR) + @: > java/lang/$(DEPDIR)/$(am__dirstamp) java/lang/natCharacter.lo: java/lang/$(am__dirstamp) \ java/lang/$(DEPDIR)/$(am__dirstamp) java/lang/natClass.lo: java/lang/$(am__dirstamp) \ @@ -7891,9 +8449,9 @@ java/lang/natSystem.lo: java/lang/$(am__dirstamp) \ java/lang/$(DEPDIR)/$(am__dirstamp) java/lang/natThread.lo: java/lang/$(am__dirstamp) \ java/lang/$(DEPDIR)/$(am__dirstamp) -java/lang/natVMClassLoader.lo: java/lang/$(am__dirstamp) \ +java/lang/natThreadLocal.lo: java/lang/$(am__dirstamp) \ java/lang/$(DEPDIR)/$(am__dirstamp) -java/lang/natVMSecurityManager.lo: java/lang/$(am__dirstamp) \ +java/lang/natVMClassLoader.lo: java/lang/$(am__dirstamp) \ java/lang/$(DEPDIR)/$(am__dirstamp) java/lang/natVMThrowable.lo: java/lang/$(am__dirstamp) \ java/lang/$(DEPDIR)/$(am__dirstamp) @@ -7920,17 +8478,19 @@ java/lang/reflect/natField.lo: java/lang/reflect/$(am__dirstamp) \ java/lang/reflect/$(DEPDIR)/$(am__dirstamp) java/lang/reflect/natMethod.lo: java/lang/reflect/$(am__dirstamp) \ java/lang/reflect/$(DEPDIR)/$(am__dirstamp) +java/lang/reflect/natVMProxy.lo: java/lang/reflect/$(am__dirstamp) \ + java/lang/reflect/$(DEPDIR)/$(am__dirstamp) java/net/$(am__dirstamp): @$(mkdir_p) java/net @: > java/net/$(am__dirstamp) java/net/$(DEPDIR)/$(am__dirstamp): @$(mkdir_p) java/net/$(DEPDIR) @: > java/net/$(DEPDIR)/$(am__dirstamp) -java/net/natVMNetworkInterface.lo: java/net/$(am__dirstamp) \ - java/net/$(DEPDIR)/$(am__dirstamp) java/net/natVMInetAddress.lo: java/net/$(am__dirstamp) \ java/net/$(DEPDIR)/$(am__dirstamp) -java/net/natURLClassLoader.lo: java/net/$(am__dirstamp) \ +java/net/natVMNetworkInterface.lo: java/net/$(am__dirstamp) \ + java/net/$(DEPDIR)/$(am__dirstamp) +java/net/natVMURLConnection.lo: java/net/$(am__dirstamp) \ java/net/$(DEPDIR)/$(am__dirstamp) java/nio/channels/$(am__dirstamp): @$(mkdir_p) java/nio/channels @@ -7973,10 +8533,17 @@ java/util/$(am__dirstamp): java/util/$(DEPDIR)/$(am__dirstamp): @$(mkdir_p) java/util/$(DEPDIR) @: > java/util/$(DEPDIR)/$(am__dirstamp) -java/util/natResourceBundle.lo: java/util/$(am__dirstamp) \ - java/util/$(DEPDIR)/$(am__dirstamp) java/util/natVMTimeZone.lo: java/util/$(am__dirstamp) \ java/util/$(DEPDIR)/$(am__dirstamp) +java/util/concurrent/atomic/$(am__dirstamp): + @$(mkdir_p) java/util/concurrent/atomic + @: > java/util/concurrent/atomic/$(am__dirstamp) +java/util/concurrent/atomic/$(DEPDIR)/$(am__dirstamp): + @$(mkdir_p) java/util/concurrent/atomic/$(DEPDIR) + @: > java/util/concurrent/atomic/$(DEPDIR)/$(am__dirstamp) +java/util/concurrent/atomic/natAtomicLong.lo: \ + java/util/concurrent/atomic/$(am__dirstamp) \ + java/util/concurrent/atomic/$(DEPDIR)/$(am__dirstamp) java/util/logging/$(am__dirstamp): @$(mkdir_p) java/util/logging @: > java/util/logging/$(am__dirstamp) @@ -7995,6 +8562,16 @@ java/util/zip/natDeflater.lo: java/util/zip/$(am__dirstamp) \ java/util/zip/$(DEPDIR)/$(am__dirstamp) java/util/zip/natInflater.lo: java/util/zip/$(am__dirstamp) \ java/util/zip/$(DEPDIR)/$(am__dirstamp) +sun/misc/$(am__dirstamp): + @$(mkdir_p) sun/misc + @: > sun/misc/$(am__dirstamp) +sun/misc/$(DEPDIR)/$(am__dirstamp): + @$(mkdir_p) sun/misc/$(DEPDIR) + @: > sun/misc/$(DEPDIR)/$(am__dirstamp) +sun/misc/natUnsafe.lo: sun/misc/$(am__dirstamp) \ + sun/misc/$(DEPDIR)/$(am__dirstamp) +java/lang/Object.lo: java/lang/$(am__dirstamp) \ + java/lang/$(DEPDIR)/$(am__dirstamp) libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES) $(libgcj_la_LINK) -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(libgcj_la_OBJECTS) $(libgcj_la_LIBADD) $(LIBS) libgij.la: $(libgij_la_OBJECTS) $(libgij_la_DEPENDENCIES) @@ -8029,6 +8606,34 @@ clean-binPROGRAMS: echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done +install-libexecsubPROGRAMS: $(libexecsub_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(libexecsubdir)" || $(mkdir_p) "$(DESTDIR)$(libexecsubdir)" + @list='$(libexecsub_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecsubPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(libexecsubdir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecsubPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(libexecsubdir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-libexecsubPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(libexecsub_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(libexecsubdir)/$$f'"; \ + rm -f "$(DESTDIR)$(libexecsubdir)/$$f"; \ + done + +clean-libexecsubPROGRAMS: + @list='$(libexecsub_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; for p in $$list; do \ @@ -8036,6 +8641,9 @@ clean-noinstPROGRAMS: echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done +ecjx$(EXEEXT): $(ecjx_OBJECTS) $(ecjx_DEPENDENCIES) + @rm -f ecjx$(EXEEXT) + $(ecjx_LINK) $(ecjx_LDFLAGS) $(ecjx_OBJECTS) $(ecjx_LDADD) $(LIBS) gappletviewer$(EXEEXT): $(gappletviewer_OBJECTS) $(gappletviewer_DEPENDENCIES) @rm -f gappletviewer$(EXEEXT) $(gappletviewer_LINK) $(gappletviewer_LDFLAGS) $(gappletviewer_OBJECTS) $(gappletviewer_LDADD) $(LIBS) @@ -8045,9 +8653,6 @@ gnu/gcj/tools/gcj_dbtool/$(am__dirstamp): gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/$(am__dirstamp): @$(mkdir_p) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) @: > gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/$(am__dirstamp) -gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT): \ - gnu/gcj/tools/gcj_dbtool/$(am__dirstamp) \ - gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/$(am__dirstamp) gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT): \ gnu/gcj/tools/gcj_dbtool/$(am__dirstamp) \ gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/$(am__dirstamp) @@ -8065,18 +8670,39 @@ gen-from-JIS$(EXEEXT): $(gen_from_JIS_OBJECTS) $(gen_from_JIS_DEPENDENCIES) gij$(EXEEXT): $(gij_OBJECTS) $(gij_DEPENDENCIES) @rm -f gij$(EXEEXT) $(gij_LINK) $(gij_LDFLAGS) $(gij_OBJECTS) $(gij_LDADD) $(LIBS) +gjar$(EXEEXT): $(gjar_OBJECTS) $(gjar_DEPENDENCIES) + @rm -f gjar$(EXEEXT) + $(gjar_LINK) $(gjar_LDFLAGS) $(gjar_OBJECTS) $(gjar_LDADD) $(LIBS) gjarsigner$(EXEEXT): $(gjarsigner_OBJECTS) $(gjarsigner_DEPENDENCIES) @rm -f gjarsigner$(EXEEXT) $(gjarsigner_LINK) $(gjarsigner_LDFLAGS) $(gjarsigner_OBJECTS) $(gjarsigner_LDADD) $(LIBS) +gjavah$(EXEEXT): $(gjavah_OBJECTS) $(gjavah_DEPENDENCIES) + @rm -f gjavah$(EXEEXT) + $(gjavah_LINK) $(gjavah_LDFLAGS) $(gjavah_OBJECTS) $(gjavah_LDADD) $(LIBS) gkeytool$(EXEEXT): $(gkeytool_OBJECTS) $(gkeytool_DEPENDENCIES) @rm -f gkeytool$(EXEEXT) $(gkeytool_LINK) $(gkeytool_LDFLAGS) $(gkeytool_OBJECTS) $(gkeytool_LDADD) $(LIBS) +gnative2ascii$(EXEEXT): $(gnative2ascii_OBJECTS) $(gnative2ascii_DEPENDENCIES) + @rm -f gnative2ascii$(EXEEXT) + $(gnative2ascii_LINK) $(gnative2ascii_LDFLAGS) $(gnative2ascii_OBJECTS) $(gnative2ascii_LDADD) $(LIBS) +gorbd$(EXEEXT): $(gorbd_OBJECTS) $(gorbd_DEPENDENCIES) + @rm -f gorbd$(EXEEXT) + $(gorbd_LINK) $(gorbd_LDFLAGS) $(gorbd_OBJECTS) $(gorbd_LDADD) $(LIBS) grmic$(EXEEXT): $(grmic_OBJECTS) $(grmic_DEPENDENCIES) @rm -f grmic$(EXEEXT) $(grmic_LINK) $(grmic_LDFLAGS) $(grmic_OBJECTS) $(grmic_LDADD) $(LIBS) +grmid$(EXEEXT): $(grmid_OBJECTS) $(grmid_DEPENDENCIES) + @rm -f grmid$(EXEEXT) + $(grmid_LINK) $(grmid_LDFLAGS) $(grmid_OBJECTS) $(grmid_LDADD) $(LIBS) grmiregistry$(EXEEXT): $(grmiregistry_OBJECTS) $(grmiregistry_DEPENDENCIES) @rm -f grmiregistry$(EXEEXT) $(grmiregistry_LINK) $(grmiregistry_LDFLAGS) $(grmiregistry_OBJECTS) $(grmiregistry_LDADD) $(LIBS) +gserialver$(EXEEXT): $(gserialver_OBJECTS) $(gserialver_DEPENDENCIES) + @rm -f gserialver$(EXEEXT) + $(gserialver_LINK) $(gserialver_LDFLAGS) $(gserialver_OBJECTS) $(gserialver_LDADD) $(LIBS) +gtnameserv$(EXEEXT): $(gtnameserv_OBJECTS) $(gtnameserv_DEPENDENCIES) + @rm -f gtnameserv$(EXEEXT) + $(gtnameserv_LINK) $(gtnameserv_LDFLAGS) $(gtnameserv_OBJECTS) $(gtnameserv_LDADD) $(LIBS) jv-convert$(EXEEXT): $(jv_convert_OBJECTS) $(jv_convert_DEPENDENCIES) @rm -f jv-convert$(EXEEXT) $(jv_convert_LINK) $(jv_convert_LDFLAGS) $(jv_convert_OBJECTS) $(jv_convert_LDADD) $(LIBS) @@ -8110,8 +8736,12 @@ mostlyclean-compile: -rm -f gnu/classpath/jdwp/natVMMethod.lo -rm -f gnu/classpath/jdwp/natVMVirtualMachine.$(OBJEXT) -rm -f gnu/classpath/jdwp/natVMVirtualMachine.lo + -rm -f gnu/classpath/natConfiguration.$(OBJEXT) + -rm -f gnu/classpath/natConfiguration.lo -rm -f gnu/classpath/natSystemProperties.$(OBJEXT) -rm -f gnu/classpath/natSystemProperties.lo + -rm -f gnu/classpath/natVMStackWalker.$(OBJEXT) + -rm -f gnu/classpath/natVMStackWalker.lo -rm -f gnu/gcj/convert/JIS0208_to_Unicode.$(OBJEXT) -rm -f gnu/gcj/convert/JIS0208_to_Unicode.lo -rm -f gnu/gcj/convert/JIS0212_to_Unicode.$(OBJEXT) @@ -8146,7 +8776,6 @@ mostlyclean-compile: -rm -f gnu/gcj/runtime/natStringBuffer.lo -rm -f gnu/gcj/runtime/natSystemClassLoader.$(OBJEXT) -rm -f gnu/gcj/runtime/natSystemClassLoader.lo - -rm -f gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT) -rm -f gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT) -rm -f gnu/gcj/util/natDebug.$(OBJEXT) -rm -f gnu/gcj/util/natDebug.lo @@ -8190,6 +8819,22 @@ mostlyclean-compile: -rm -f gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXImage.lo -rm -f gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.$(OBJEXT) -rm -f gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo + -rm -f gnu/java/lang/management/natVMClassLoadingMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMClassLoadingMXBeanImpl.lo + -rm -f gnu/java/lang/management/natVMCompilationMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMCompilationMXBeanImpl.lo + -rm -f gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.lo + -rm -f gnu/java/lang/management/natVMMemoryMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMMemoryMXBeanImpl.lo + -rm -f gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.lo + -rm -f gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.lo + -rm -f gnu/java/lang/management/natVMRuntimeMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMRuntimeMXBeanImpl.lo + -rm -f gnu/java/lang/management/natVMThreadMXBeanImpl.$(OBJEXT) + -rm -f gnu/java/lang/management/natVMThreadMXBeanImpl.lo -rm -f gnu/java/lang/natMainThread.$(OBJEXT) -rm -f gnu/java/lang/natMainThread.lo -rm -f gnu/java/net/natPlainDatagramSocketImpl.$(OBJEXT) @@ -8206,16 +8851,18 @@ mostlyclean-compile: -rm -f gnu/java/nio/natPipeImpl.lo -rm -f gnu/java/nio/natSelectorImpl.$(OBJEXT) -rm -f gnu/java/nio/natSelectorImpl.lo + -rm -f gnu/java/nio/natVMChannel.$(OBJEXT) + -rm -f gnu/java/nio/natVMChannel.lo -rm -f java/io/natFile.$(OBJEXT) -rm -f java/io/natFile.lo -rm -f java/io/natObjectInputStream.$(OBJEXT) -rm -f java/io/natObjectInputStream.lo -rm -f java/io/natVMObjectStreamClass.$(OBJEXT) -rm -f java/io/natVMObjectStreamClass.lo - -rm -f java/lang/Class.$(OBJEXT) - -rm -f java/lang/Class.lo -rm -f java/lang/Object.$(OBJEXT) -rm -f java/lang/Object.lo + -rm -f java/lang/management/natVMManagementFactory.$(OBJEXT) + -rm -f java/lang/management/natVMManagementFactory.lo -rm -f java/lang/natCharacter.$(OBJEXT) -rm -f java/lang/natCharacter.lo -rm -f java/lang/natClass.$(OBJEXT) @@ -8244,10 +8891,10 @@ mostlyclean-compile: -rm -f java/lang/natSystem.lo -rm -f java/lang/natThread.$(OBJEXT) -rm -f java/lang/natThread.lo + -rm -f java/lang/natThreadLocal.$(OBJEXT) + -rm -f java/lang/natThreadLocal.lo -rm -f java/lang/natVMClassLoader.$(OBJEXT) -rm -f java/lang/natVMClassLoader.lo - -rm -f java/lang/natVMSecurityManager.$(OBJEXT) - -rm -f java/lang/natVMSecurityManager.lo -rm -f java/lang/natVMThrowable.$(OBJEXT) -rm -f java/lang/natVMThrowable.lo -rm -f java/lang/ref/natReference.$(OBJEXT) @@ -8260,12 +8907,14 @@ mostlyclean-compile: -rm -f java/lang/reflect/natField.lo -rm -f java/lang/reflect/natMethod.$(OBJEXT) -rm -f java/lang/reflect/natMethod.lo - -rm -f java/net/natURLClassLoader.$(OBJEXT) - -rm -f java/net/natURLClassLoader.lo + -rm -f java/lang/reflect/natVMProxy.$(OBJEXT) + -rm -f java/lang/reflect/natVMProxy.lo -rm -f java/net/natVMInetAddress.$(OBJEXT) -rm -f java/net/natVMInetAddress.lo -rm -f java/net/natVMNetworkInterface.$(OBJEXT) -rm -f java/net/natVMNetworkInterface.lo + -rm -f java/net/natVMURLConnection.$(OBJEXT) + -rm -f java/net/natVMURLConnection.lo -rm -f java/nio/channels/natVMChannels.$(OBJEXT) -rm -f java/nio/channels/natVMChannels.lo -rm -f java/nio/natDirectByteBufferImpl.$(OBJEXT) @@ -8276,16 +8925,18 @@ mostlyclean-compile: -rm -f java/security/natVMAccessController.lo -rm -f java/text/natCollator.$(OBJEXT) -rm -f java/text/natCollator.lo + -rm -f java/util/concurrent/atomic/natAtomicLong.$(OBJEXT) + -rm -f java/util/concurrent/atomic/natAtomicLong.lo -rm -f java/util/logging/natLogger.$(OBJEXT) -rm -f java/util/logging/natLogger.lo - -rm -f java/util/natResourceBundle.$(OBJEXT) - -rm -f java/util/natResourceBundle.lo -rm -f java/util/natVMTimeZone.$(OBJEXT) -rm -f java/util/natVMTimeZone.lo -rm -f java/util/zip/natDeflater.$(OBJEXT) -rm -f java/util/zip/natDeflater.lo -rm -f java/util/zip/natInflater.$(OBJEXT) -rm -f java/util/zip/natInflater.lo + -rm -f sun/misc/natUnsafe.$(OBJEXT) + -rm -f sun/misc/natUnsafe.lo distclean-compile: -rm -f *.tab.c @@ -8311,7 +8962,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/win32-threads.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/win32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@classpath/tools/$(DEPDIR)/libgcj_tools_la-tools.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/classpath/$(DEPDIR)/natConfiguration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/classpath/$(DEPDIR)/natSystemProperties.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/classpath/$(DEPDIR)/natVMStackWalker.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/classpath/jdwp/$(DEPDIR)/natVMFrame.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/classpath/jdwp/$(DEPDIR)/natVMMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/classpath/jdwp/$(DEPDIR)/natVMVirtualMachine.Plo@am__quote@ @@ -8333,7 +8986,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natSharedLibLoader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natStringBuffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natSystemClassLoader.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/Main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/natMain.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/util/$(DEPDIR)/natDebug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/xlib/$(DEPDIR)/lib_gnu_awt_xlib_la-natClip.Plo@am__quote@ @@ -8357,17 +9009,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/xlib/$(DEPDIR)/lib_gnu_awt_xlib_la-natXImage.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/xlib/$(DEPDIR)/lib_gnu_awt_xlib_la-natXUnmapEvent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/$(DEPDIR)/natMainThread.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMClassLoadingMXBeanImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMCompilationMXBeanImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMGarbageCollectorMXBeanImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMMemoryMXBeanImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMMemoryManagerMXBeanImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMMemoryPoolMXBeanImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMRuntimeMXBeanImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/lang/management/$(DEPDIR)/natVMThreadMXBeanImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/natPlainDatagramSocketImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/natPlainSocketImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/core/$(DEPDIR)/natCoreInputStream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/natNIOServerSocket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/natPipeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/natSelectorImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/natVMChannel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/channels/$(DEPDIR)/natFileChannelImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natFile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natObjectInputStream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natVMObjectStreamClass.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/Class.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/Object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natCharacter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natClass.Plo@am__quote@ @@ -8383,27 +9043,30 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natStringBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natSystem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natThread.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natThreadLocal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natVMClassLoader.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natVMSecurityManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natVMThrowable.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@java/lang/management/$(DEPDIR)/natVMManagementFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/ref/$(DEPDIR)/natReference.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natArray.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natField.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natMethod.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natURLClassLoader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@java/lang/reflect/$(DEPDIR)/natVMProxy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natVMInetAddress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natVMNetworkInterface.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@java/net/$(DEPDIR)/natVMURLConnection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/nio/$(DEPDIR)/natDirectByteBufferImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/nio/channels/$(DEPDIR)/natVMChannels.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/security/$(DEPDIR)/natVMAccessControlState.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/security/$(DEPDIR)/natVMAccessController.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/text/$(DEPDIR)/natCollator.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@java/util/$(DEPDIR)/natResourceBundle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/util/$(DEPDIR)/natVMTimeZone.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@java/util/concurrent/atomic/$(DEPDIR)/natAtomicLong.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/util/logging/$(DEPDIR)/natLogger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/util/zip/$(DEPDIR)/natDeflater.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/util/zip/$(DEPDIR)/natInflater.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sun/misc/$(DEPDIR)/natUnsafe.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \ @@ -8593,7 +9256,7 @@ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo: gnu/gcj/xlib/natXUnmapEvent. @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_gnu_awt_xlib_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo `test -f 'gnu/gcj/xlib/natXUnmapEvent.cc' || echo '$(srcdir)/'`gnu/gcj/xlib/natXUnmapEvent.cc -.jar.o: +.java.o: @am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \ @am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ @am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi @@ -8601,7 +9264,7 @@ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo: gnu/gcj/xlib/natXUnmapEvent. @AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ $< -.jar.obj: +.java.obj: @am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \ @am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi @@ -8609,7 +9272,7 @@ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo: gnu/gcj/xlib/natXUnmapEvent. @AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -.jar.lo: +.java.lo: @am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \ @am__fastdepGCJ_TRUE@ if $(LTGCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ @am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi @@ -8617,14 +9280,14 @@ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo: gnu/gcj/xlib/natXUnmapEvent. @AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepGCJ_FALSE@ $(LTGCJCOMPILE) -c -o $@ $< -classpath/tools/libgcj_tools_la-tools.lo: classpath/tools/tools.jar -@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(libgcj_tools_la_GCJFLAGS) $(GCJFLAGS) -MT classpath/tools/libgcj_tools_la-tools.lo -MD -MP -MF "classpath/tools/$(DEPDIR)/libgcj_tools_la-tools.Tpo" -c -o classpath/tools/libgcj_tools_la-tools.lo `test -f 'classpath/tools/tools.jar' || echo '$(srcdir)/'`classpath/tools/tools.jar; \ +classpath/tools/libgcj_tools_la-tools.lo: classpath/tools/tools.zip +@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(libgcj_tools_la_GCJFLAGS) $(GCJFLAGS) -MT classpath/tools/libgcj_tools_la-tools.lo -MD -MP -MF "classpath/tools/$(DEPDIR)/libgcj_tools_la-tools.Tpo" -c -o classpath/tools/libgcj_tools_la-tools.lo `test -f 'classpath/tools/tools.zip' || echo '$(srcdir)/'`classpath/tools/tools.zip; \ @am__fastdepGCJ_TRUE@ then mv -f "classpath/tools/$(DEPDIR)/libgcj_tools_la-tools.Tpo" "classpath/tools/$(DEPDIR)/libgcj_tools_la-tools.Plo"; else rm -f "classpath/tools/$(DEPDIR)/libgcj_tools_la-tools.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='classpath/tools/tools.jar' object='classpath/tools/libgcj_tools_la-tools.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='classpath/tools/tools.zip' object='classpath/tools/libgcj_tools_la-tools.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(libgcj_tools_la_GCJFLAGS) $(GCJFLAGS) -c -o classpath/tools/libgcj_tools_la-tools.lo `test -f 'classpath/tools/tools.jar' || echo '$(srcdir)/'`classpath/tools/tools.jar +@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(libgcj_tools_la_GCJFLAGS) $(GCJFLAGS) -c -o classpath/tools/libgcj_tools_la-tools.lo `test -f 'classpath/tools/tools.zip' || echo '$(srcdir)/'`classpath/tools/tools.zip -.java.o: +.zip.o: @am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \ @am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ @am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi @@ -8632,7 +9295,7 @@ classpath/tools/libgcj_tools_la-tools.lo: classpath/tools/tools.jar @AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ $< -.java.obj: +.zip.obj: @am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \ @am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi @@ -8640,7 +9303,7 @@ classpath/tools/libgcj_tools_la-tools.lo: classpath/tools/tools.jar @AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -.java.lo: +.zip.lo: @am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \ @am__fastdepGCJ_TRUE@ if $(LTGCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ @am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi @@ -8664,12 +9327,14 @@ clean-libtool: -rm -rf gnu/gcj/util/.libs gnu/gcj/util/_libs -rm -rf gnu/gcj/xlib/.libs gnu/gcj/xlib/_libs -rm -rf gnu/java/lang/.libs gnu/java/lang/_libs + -rm -rf gnu/java/lang/management/.libs gnu/java/lang/management/_libs -rm -rf gnu/java/net/.libs gnu/java/net/_libs -rm -rf gnu/java/net/protocol/core/.libs gnu/java/net/protocol/core/_libs -rm -rf gnu/java/nio/.libs gnu/java/nio/_libs -rm -rf gnu/java/nio/channels/.libs gnu/java/nio/channels/_libs -rm -rf java/io/.libs java/io/_libs -rm -rf java/lang/.libs java/lang/_libs + -rm -rf java/lang/management/.libs java/lang/management/_libs -rm -rf java/lang/ref/.libs java/lang/ref/_libs -rm -rf java/lang/reflect/.libs java/lang/reflect/_libs -rm -rf java/net/.libs java/net/_libs @@ -8678,8 +9343,10 @@ clean-libtool: -rm -rf java/security/.libs java/security/_libs -rm -rf java/text/.libs java/text/_libs -rm -rf java/util/.libs java/util/_libs + -rm -rf java/util/concurrent/atomic/.libs java/util/concurrent/atomic/_libs -rm -rf java/util/logging/.libs java/util/logging/_libs -rm -rf java/util/zip/.libs java/util/zip/_libs + -rm -rf sun/misc/.libs sun/misc/_libs distclean-libtool: -rm -f libtool @@ -9015,7 +9682,7 @@ check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \ + for dir in "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecsubdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive @@ -9063,6 +9730,8 @@ distclean-generic: -rm -f gnu/gcj/xlib/$(am__dirstamp) -rm -f gnu/java/lang/$(DEPDIR)/$(am__dirstamp) -rm -f gnu/java/lang/$(am__dirstamp) + -rm -f gnu/java/lang/management/$(DEPDIR)/$(am__dirstamp) + -rm -f gnu/java/lang/management/$(am__dirstamp) -rm -f gnu/java/net/$(DEPDIR)/$(am__dirstamp) -rm -f gnu/java/net/$(am__dirstamp) -rm -f gnu/java/net/protocol/core/$(DEPDIR)/$(am__dirstamp) @@ -9075,6 +9744,8 @@ distclean-generic: -rm -f java/io/$(am__dirstamp) -rm -f java/lang/$(DEPDIR)/$(am__dirstamp) -rm -f java/lang/$(am__dirstamp) + -rm -f java/lang/management/$(DEPDIR)/$(am__dirstamp) + -rm -f java/lang/management/$(am__dirstamp) -rm -f java/lang/ref/$(DEPDIR)/$(am__dirstamp) -rm -f java/lang/ref/$(am__dirstamp) -rm -f java/lang/reflect/$(DEPDIR)/$(am__dirstamp) @@ -9091,25 +9762,28 @@ distclean-generic: -rm -f java/text/$(am__dirstamp) -rm -f java/util/$(DEPDIR)/$(am__dirstamp) -rm -f java/util/$(am__dirstamp) + -rm -f java/util/concurrent/atomic/$(DEPDIR)/$(am__dirstamp) + -rm -f java/util/concurrent/atomic/$(am__dirstamp) -rm -f java/util/logging/$(DEPDIR)/$(am__dirstamp) -rm -f java/util/logging/$(am__dirstamp) -rm -f java/util/zip/$(DEPDIR)/$(am__dirstamp) -rm -f java/util/zip/$(am__dirstamp) + -rm -f sun/misc/$(DEPDIR)/$(am__dirstamp) + -rm -f sun/misc/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -@USE_LIBGCJ_BC_FALSE@install-exec-hook: clean: clean-recursive clean-am: clean-binPROGRAMS clean-dbexecLTLIBRARIES clean-generic \ - clean-libtool clean-noinstPROGRAMS \ + clean-libexecsubPROGRAMS clean-libtool clean-noinstPROGRAMS \ clean-toolexeclibLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) classpath/tools/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/classpath/jdwp/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/jvmti/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/security/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/zip/$(DEPDIR) + -rm -rf ./$(DEPDIR) classpath/tools/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/classpath/jdwp/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/jvmti/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/management/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/management/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/security/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/concurrent/atomic/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/zip/$(DEPDIR) sun/misc/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-local distclean-tags @@ -9128,7 +9802,8 @@ install-data-am: install-data-local install-jarDATA install-exec-am: install-binPROGRAMS install-binSCRIPTS \ install-dbexecDATA install-dbexecLTLIBRARIES \ - install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA + install-libexecsubPROGRAMS install-toolexeclibLTLIBRARIES \ + install-toolexecmainlibDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook @@ -9141,7 +9816,7 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./$(DEPDIR) classpath/tools/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/classpath/jdwp/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/jvmti/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/security/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/zip/$(DEPDIR) + -rm -rf ./$(DEPDIR) classpath/tools/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/classpath/jdwp/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/jvmti/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/management/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/management/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/security/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/concurrent/atomic/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/zip/$(DEPDIR) sun/misc/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -9161,24 +9836,26 @@ ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall-dbexecDATA uninstall-dbexecLTLIBRARIES \ uninstall-info-am uninstall-jarDATA \ - uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA + uninstall-libexecsubPROGRAMS uninstall-toolexeclibLTLIBRARIES \ + uninstall-toolexecmainlibDATA uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-binPROGRAMS clean-dbexecLTLIBRARIES \ - clean-generic clean-libtool clean-noinstPROGRAMS \ - clean-recursive clean-toolexeclibLTLIBRARIES ctags \ - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ - dist-tarZ dist-zip distcheck distclean distclean-compile \ - distclean-generic distclean-libtool distclean-local \ - distclean-recursive distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-binSCRIPTS \ - install-data install-data-am install-data-local \ - install-dbexecDATA install-dbexecLTLIBRARIES install-exec \ - install-exec-am install-exec-hook install-info install-info-am \ - install-jarDATA install-man install-strip \ + clean-generic clean-libexecsubPROGRAMS clean-libtool \ + clean-noinstPROGRAMS clean-recursive \ + clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \ + dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-libtool distclean-local distclean-recursive \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-binSCRIPTS install-data \ + install-data-am install-data-local install-dbexecDATA \ + install-dbexecLTLIBRARIES install-exec install-exec-am \ + install-exec-hook install-info install-info-am install-jarDATA \ + install-libexecsubPROGRAMS install-man install-strip \ install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic \ @@ -9188,8 +9865,8 @@ uninstall-info: uninstall-info-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-binSCRIPTS uninstall-dbexecDATA \ uninstall-dbexecLTLIBRARIES uninstall-info-am \ - uninstall-jarDATA uninstall-toolexeclibLTLIBRARIES \ - uninstall-toolexecmainlibDATA + uninstall-jarDATA uninstall-libexecsubPROGRAMS \ + uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA $(db_name): gcj-dbtool$(EXEEXT) @@ -9211,10 +9888,10 @@ $(propertyo_files): %.lo: classpath/resource/% $(LTGCJCOMPILE) -o $@ -c $< -Wc,--resource,$(@:.lo=) libgcj-$(gcc_version).jar: classpath/lib/compile-classes - cd classpath/lib; $(JAR) -cfM \ - ../../libgcj-$(gcc_version).jar gnu java javax org + here=`pwd`; cd $(srcdir)/classpath/lib; $(JAR) -cfM \ + $$here/libgcj-$(gcc_version).jar gnu java javax org sun -libgcj-tools-$(gcc_version).jar: classpath/tools/tools.jar +libgcj-tools-$(gcc_version).jar: classpath/tools/tools.zip cp $< $@ mostlyclean-local: @@ -9234,2563 +9911,1631 @@ lib-gnu-awt-xlib.la: $(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_DEPEND -rpath $(toolexeclibdir) $(lib_gnu_awt_xlib_la_LDFLAGS) $(LIBS) %.lo: %.list - $(LTGCJCOMPILE) -c -o $@ -MT $@ -MD -MP -MF $(basename $@).deps @$< + $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(here)/classpath/lib/classes -MT $@ -MD -MP -MF $(basename $@).deps @$< + +java/lang/Object.lo: classpath/lib/java/lang/Object.class + $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(srcdir)/$(basename $@).java $< + +java/lang/Class.lo: classpath/lib/java/lang/Class.class + $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(srcdir)/$(basename $@).java $< gnu-CORBA.lo: $(gnu_CORBA_source_files) - @find classpath/lib/gnu/CORBA -name '*.class' > gnu-CORBA.list + @find $(srcdir)/classpath/lib/gnu/CORBA -name '*.class' > gnu-CORBA.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-CORBA.lo @gnu-CORBA.list @rm -f gnu-CORBA.list gnu/awt.list: $(gnu_awt_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_awt_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/awt.list + echo $(srcdir)/classpath/lib/gnu/awt/*.class > gnu/awt.list -include gnu/awt.deps gnu/awt/j2d.list: $(gnu_awt_j2d_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_awt_j2d_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/awt/j2d.list + echo $(srcdir)/classpath/lib/gnu/awt/j2d/*.class > gnu/awt/j2d.list -include gnu/awt/j2d.deps gnu/awt/xlib.list: $(gnu_awt_xlib_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_awt_xlib_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/awt/xlib.list + echo $(srcdir)/classpath/lib/gnu/awt/xlib/*.class > gnu/awt/xlib.list -include gnu/awt/xlib.deps gnu/classpath.list: $(gnu_classpath_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath.list + echo $(srcdir)/classpath/lib/gnu/classpath/*.class > gnu/classpath.list -include gnu/classpath.deps gnu/classpath/debug.list: $(gnu_classpath_debug_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_debug_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/debug.list + echo $(srcdir)/classpath/lib/gnu/classpath/debug/*.class > gnu/classpath/debug.list -include gnu/classpath/debug.deps gnu/classpath/jdwp.list: $(gnu_classpath_jdwp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/*.class > gnu/classpath/jdwp.list -include gnu/classpath/jdwp.deps gnu/classpath/jdwp/event.list: $(gnu_classpath_jdwp_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/event.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/event/*.class > gnu/classpath/jdwp/event.list -include gnu/classpath/jdwp/event.deps gnu/classpath/jdwp/event/filters.list: $(gnu_classpath_jdwp_event_filters_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_event_filters_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/event/filters.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/event/filters/*.class > gnu/classpath/jdwp/event/filters.list -include gnu/classpath/jdwp/event/filters.deps gnu/classpath/jdwp/exception.list: $(gnu_classpath_jdwp_exception_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_exception_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/exception.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/exception/*.class > gnu/classpath/jdwp/exception.list -include gnu/classpath/jdwp/exception.deps gnu/classpath/jdwp/id.list: $(gnu_classpath_jdwp_id_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_id_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/id.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/id/*.class > gnu/classpath/jdwp/id.list -include gnu/classpath/jdwp/id.deps gnu/classpath/jdwp/processor.list: $(gnu_classpath_jdwp_processor_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_processor_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/processor.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/processor/*.class > gnu/classpath/jdwp/processor.list -include gnu/classpath/jdwp/processor.deps gnu/classpath/jdwp/transport.list: $(gnu_classpath_jdwp_transport_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_transport_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/transport.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/transport/*.class > gnu/classpath/jdwp/transport.list -include gnu/classpath/jdwp/transport.deps gnu/classpath/jdwp/util.list: $(gnu_classpath_jdwp_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/util.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/util/*.class > gnu/classpath/jdwp/util.list -include gnu/classpath/jdwp/util.deps gnu/gcj.list: $(gnu_gcj_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj.list + echo $(srcdir)/classpath/lib/gnu/gcj/*.class > gnu/gcj.list -include gnu/gcj.deps gnu/gcj/convert.list: $(gnu_gcj_convert_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_convert_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/convert.list + echo $(srcdir)/classpath/lib/gnu/gcj/convert/*.class > gnu/gcj/convert.list -include gnu/gcj/convert.deps gnu/gcj/io.list: $(gnu_gcj_io_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_io_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/io.list + echo $(srcdir)/classpath/lib/gnu/gcj/io/*.class > gnu/gcj/io.list -include gnu/gcj/io.deps gnu/gcj/jvmti.list: $(gnu_gcj_jvmti_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_jvmti_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/jvmti.list + echo $(srcdir)/classpath/lib/gnu/gcj/jvmti/*.class > gnu/gcj/jvmti.list -include gnu/gcj/jvmti.deps gnu/gcj/runtime.list: $(gnu_gcj_runtime_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_runtime_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/runtime.list + echo $(srcdir)/classpath/lib/gnu/gcj/runtime/*.class > gnu/gcj/runtime.list -include gnu/gcj/runtime.deps +gnu/gcj/tools/gcj_dbtool.list: $(gnu_gcj_tools_gcj_dbtool_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/gcj/tools/gcj_dbtool/*.class > gnu/gcj/tools/gcj_dbtool.list + +-include gnu/gcj/tools/gcj_dbtool.deps + gnu/gcj/util.list: $(gnu_gcj_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/util.list + echo $(srcdir)/classpath/lib/gnu/gcj/util/*.class > gnu/gcj/util.list -include gnu/gcj/util.deps gnu/gcj/xlib.list: $(gnu_gcj_xlib_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_xlib_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/xlib.list + echo $(srcdir)/classpath/lib/gnu/gcj/xlib/*.class > gnu/gcj/xlib.list -include gnu/gcj/xlib.deps gnu/java/awt.list: $(gnu_java_awt_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt.list + echo $(srcdir)/classpath/lib/gnu/java/awt/*.class > gnu/java/awt.list -include gnu/java/awt.deps gnu/java/awt/color.list: $(gnu_java_awt_color_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_color_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/color.list + echo $(srcdir)/classpath/lib/gnu/java/awt/color/*.class > gnu/java/awt/color.list -include gnu/java/awt/color.deps gnu/java/awt/dnd.list: $(gnu_java_awt_dnd_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_dnd_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/dnd.list + echo $(srcdir)/classpath/lib/gnu/java/awt/dnd/*.class > gnu/java/awt/dnd.list -include gnu/java/awt/dnd.deps gnu-java-awt-dnd-peer-gtk.lo: $(gnu_java_awt_dnd_peer_gtk_source_files) - @find classpath/lib/gnu/java/awt/dnd/peer/gtk -name '*.class' > gnu-java-awt-dnd-peer-gtk.list + @find $(srcdir)/classpath/lib/gnu/java/awt/dnd/peer/gtk -name '*.class' > gnu-java-awt-dnd-peer-gtk.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-dnd-peer-gtk.lo @gnu-java-awt-dnd-peer-gtk.list @rm -f gnu-java-awt-dnd-peer-gtk.list gnu/java/awt/font.list: $(gnu_java_awt_font_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_font_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/font.list + echo $(srcdir)/classpath/lib/gnu/java/awt/font/*.class > gnu/java/awt/font.list -include gnu/java/awt/font.deps +gnu/java/awt/font/autofit.list: $(gnu_java_awt_font_autofit_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/java/awt/font/autofit/*.class > gnu/java/awt/font/autofit.list + +-include gnu/java/awt/font/autofit.deps + gnu/java/awt/font/opentype.list: $(gnu_java_awt_font_opentype_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_font_opentype_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/font/opentype.list + echo $(srcdir)/classpath/lib/gnu/java/awt/font/opentype/*.class > gnu/java/awt/font/opentype.list -include gnu/java/awt/font/opentype.deps gnu/java/awt/font/opentype/truetype.list: $(gnu_java_awt_font_opentype_truetype_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_font_opentype_truetype_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/font/opentype/truetype.list + echo $(srcdir)/classpath/lib/gnu/java/awt/font/opentype/truetype/*.class > gnu/java/awt/font/opentype/truetype.list -include gnu/java/awt/font/opentype/truetype.deps gnu/java/awt/image.list: $(gnu_java_awt_image_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_image_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/image.list + echo $(srcdir)/classpath/lib/gnu/java/awt/image/*.class > gnu/java/awt/image.list -include gnu/java/awt/image.deps gnu/java/awt/java2d.list: $(gnu_java_awt_java2d_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_java2d_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/java2d.list + echo $(srcdir)/classpath/lib/gnu/java/awt/java2d/*.class > gnu/java/awt/java2d.list -include gnu/java/awt/java2d.deps gnu/java/awt/peer.list: $(gnu_java_awt_peer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_peer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/peer.list + echo $(srcdir)/classpath/lib/gnu/java/awt/peer/*.class > gnu/java/awt/peer.list -include gnu/java/awt/peer.deps gnu-java-awt-peer-gtk.lo: $(gnu_java_awt_peer_gtk_source_files) - @find classpath/lib/gnu/java/awt/peer/gtk -name '*.class' > gnu-java-awt-peer-gtk.list + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/gtk -name '*.class' > gnu-java-awt-peer-gtk.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-gtk.lo @gnu-java-awt-peer-gtk.list @rm -f gnu-java-awt-peer-gtk.list +gnu/java/awt/peer/headless.list: $(gnu_java_awt_peer_headless_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/java/awt/peer/headless/*.class > gnu/java/awt/peer/headless.list + +-include gnu/java/awt/peer/headless.deps + gnu-java-awt-peer-qt.lo: $(gnu_java_awt_peer_qt_source_files) - @find classpath/lib/gnu/java/awt/peer/qt -name '*.class' > gnu-java-awt-peer-qt.list + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/qt -name '*.class' > gnu-java-awt-peer-qt.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-qt.lo @gnu-java-awt-peer-qt.list @rm -f gnu-java-awt-peer-qt.list gnu-java-awt-peer-swing.lo: $(gnu_java_awt_peer_swing_source_files) - @find classpath/lib/gnu/java/awt/peer/swing -name '*.class' > gnu-java-awt-peer-swing.list + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/swing -name '*.class' > gnu-java-awt-peer-swing.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-swing.lo @gnu-java-awt-peer-swing.list @rm -f gnu-java-awt-peer-swing.list +gnu-java-awt-peer-x.lo: $(gnu_java_awt_peer_x_source_files) + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/x -name '*.class' > gnu-java-awt-peer-x.list + $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-x.lo @gnu-java-awt-peer-x.list + @rm -f gnu-java-awt-peer-x.list + gnu/java/awt/print.list: $(gnu_java_awt_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/print.list + echo $(srcdir)/classpath/lib/gnu/java/awt/print/*.class > gnu/java/awt/print.list -include gnu/java/awt/print.deps gnu-java-beans.lo: $(gnu_java_beans_source_files) - @find classpath/lib/gnu/java/beans -name '*.class' > gnu-java-beans.list + @find $(srcdir)/classpath/lib/gnu/java/beans -name '*.class' > gnu-java-beans.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-beans.lo @gnu-java-beans.list @rm -f gnu-java-beans.list gnu/java/io.list: $(gnu_java_io_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_io_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/io.list + echo $(srcdir)/classpath/lib/gnu/java/io/*.class > gnu/java/io.list -include gnu/java/io.deps gnu/java/lang.list: $(gnu_java_lang_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_lang_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/lang.list + echo $(srcdir)/classpath/lib/gnu/java/lang/*.class > gnu/java/lang.list -include gnu/java/lang.deps gnu/java/lang/management.list: $(gnu_java_lang_management_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_lang_management_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/lang/management.list + echo $(srcdir)/classpath/lib/gnu/java/lang/management/*.class > gnu/java/lang/management.list -include gnu/java/lang/management.deps gnu/java/lang/reflect.list: $(gnu_java_lang_reflect_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_lang_reflect_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/lang/reflect.list + echo $(srcdir)/classpath/lib/gnu/java/lang/reflect/*.class > gnu/java/lang/reflect.list -include gnu/java/lang/reflect.deps gnu/java/locale.list: $(gnu_java_locale_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_locale_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/locale.list + echo $(srcdir)/classpath/lib/gnu/java/locale/*.class > gnu/java/locale.list -include gnu/java/locale.deps gnu/java/math.list: $(gnu_java_math_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_math_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/math.list + echo $(srcdir)/classpath/lib/gnu/java/math/*.class > gnu/java/math.list -include gnu/java/math.deps gnu/java/net.list: $(gnu_java_net_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net.list + echo $(srcdir)/classpath/lib/gnu/java/net/*.class > gnu/java/net.list -include gnu/java/net.deps gnu/java/net/loader.list: $(gnu_java_net_loader_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_loader_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/loader.list + echo $(srcdir)/classpath/lib/gnu/java/net/loader/*.class > gnu/java/net/loader.list -include gnu/java/net/loader.deps gnu/java/net/local.list: $(gnu_java_net_local_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_local_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/local.list + echo $(srcdir)/classpath/lib/gnu/java/net/local/*.class > gnu/java/net/local.list -include gnu/java/net/local.deps gnu/java/net/protocol/core.list: $(gnu_java_net_protocol_core_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_core_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/core.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/core/*.class > gnu/java/net/protocol/core.list -include gnu/java/net/protocol/core.deps gnu/java/net/protocol/file.list: $(gnu_java_net_protocol_file_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_file_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/file.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/file/*.class > gnu/java/net/protocol/file.list -include gnu/java/net/protocol/file.deps gnu/java/net/protocol/ftp.list: $(gnu_java_net_protocol_ftp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_ftp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/ftp.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/ftp/*.class > gnu/java/net/protocol/ftp.list -include gnu/java/net/protocol/ftp.deps gnu/java/net/protocol/gcjlib.list: $(gnu_java_net_protocol_gcjlib_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_gcjlib_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/gcjlib.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/gcjlib/*.class > gnu/java/net/protocol/gcjlib.list -include gnu/java/net/protocol/gcjlib.deps gnu/java/net/protocol/http.list: $(gnu_java_net_protocol_http_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_http_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/http.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/http/*.class > gnu/java/net/protocol/http.list -include gnu/java/net/protocol/http.deps gnu/java/net/protocol/https.list: $(gnu_java_net_protocol_https_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_https_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/https.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/https/*.class > gnu/java/net/protocol/https.list -include gnu/java/net/protocol/https.deps gnu/java/net/protocol/jar.list: $(gnu_java_net_protocol_jar_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_jar_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/jar.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/jar/*.class > gnu/java/net/protocol/jar.list -include gnu/java/net/protocol/jar.deps gnu/java/nio.list: $(gnu_java_nio_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_nio_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/nio.list + echo $(srcdir)/classpath/lib/gnu/java/nio/*.class > gnu/java/nio.list -include gnu/java/nio.deps gnu/java/nio/channels.list: $(gnu_java_nio_channels_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_nio_channels_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/nio/channels.list + echo $(srcdir)/classpath/lib/gnu/java/nio/channels/*.class > gnu/java/nio/channels.list -include gnu/java/nio/channels.deps gnu/java/nio/charset.list: $(gnu_java_nio_charset_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_nio_charset_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/nio/charset.list + echo $(srcdir)/classpath/lib/gnu/java/nio/charset/*.class > gnu/java/nio/charset.list -include gnu/java/nio/charset.deps gnu/java/rmi.list: $(gnu_java_rmi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/*.class > gnu/java/rmi.list -include gnu/java/rmi.deps gnu/java/rmi/activation.list: $(gnu_java_rmi_activation_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_activation_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/activation.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/activation/*.class > gnu/java/rmi/activation.list -include gnu/java/rmi/activation.deps gnu/java/rmi/dgc.list: $(gnu_java_rmi_dgc_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_dgc_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/dgc.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/dgc/*.class > gnu/java/rmi/dgc.list -include gnu/java/rmi/dgc.deps gnu/java/rmi/registry.list: $(gnu_java_rmi_registry_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_registry_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/registry.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/registry/*.class > gnu/java/rmi/registry.list -include gnu/java/rmi/registry.deps -gnu/java/rmi/rmic.list: $(gnu_java_rmi_rmic_source_files) - @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_rmic_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/rmic.list - --include gnu/java/rmi/rmic.deps - gnu/java/rmi/server.list: $(gnu_java_rmi_server_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_server_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/server.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/server/*.class > gnu/java/rmi/server.list -include gnu/java/rmi/server.deps gnu/java/security.list: $(gnu_java_security_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security.list + echo $(srcdir)/classpath/lib/gnu/java/security/*.class > gnu/java/security.list -include gnu/java/security.deps gnu/java/security/action.list: $(gnu_java_security_action_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_action_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/action.list + echo $(srcdir)/classpath/lib/gnu/java/security/action/*.class > gnu/java/security/action.list -include gnu/java/security/action.deps gnu/java/security/ber.list: $(gnu_java_security_ber_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_ber_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/ber.list + echo $(srcdir)/classpath/lib/gnu/java/security/ber/*.class > gnu/java/security/ber.list -include gnu/java/security/ber.deps gnu/java/security/der.list: $(gnu_java_security_der_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_der_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/der.list + echo $(srcdir)/classpath/lib/gnu/java/security/der/*.class > gnu/java/security/der.list -include gnu/java/security/der.deps gnu/java/security/hash.list: $(gnu_java_security_hash_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_hash_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/hash.list + echo $(srcdir)/classpath/lib/gnu/java/security/hash/*.class > gnu/java/security/hash.list -include gnu/java/security/hash.deps gnu/java/security/jce/hash.list: $(gnu_java_security_jce_hash_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_jce_hash_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/jce/hash.list + echo $(srcdir)/classpath/lib/gnu/java/security/jce/hash/*.class > gnu/java/security/jce/hash.list -include gnu/java/security/jce/hash.deps gnu/java/security/jce/prng.list: $(gnu_java_security_jce_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_jce_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/jce/prng.list + echo $(srcdir)/classpath/lib/gnu/java/security/jce/prng/*.class > gnu/java/security/jce/prng.list -include gnu/java/security/jce/prng.deps gnu/java/security/jce/sig.list: $(gnu_java_security_jce_sig_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_jce_sig_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/jce/sig.list + echo $(srcdir)/classpath/lib/gnu/java/security/jce/sig/*.class > gnu/java/security/jce/sig.list -include gnu/java/security/jce/sig.deps gnu/java/security/key.list: $(gnu_java_security_key_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_key_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/key.list + echo $(srcdir)/classpath/lib/gnu/java/security/key/*.class > gnu/java/security/key.list -include gnu/java/security/key.deps gnu/java/security/key/dss.list: $(gnu_java_security_key_dss_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_key_dss_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/key/dss.list + echo $(srcdir)/classpath/lib/gnu/java/security/key/dss/*.class > gnu/java/security/key/dss.list -include gnu/java/security/key/dss.deps gnu/java/security/key/rsa.list: $(gnu_java_security_key_rsa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_key_rsa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/key/rsa.list + echo $(srcdir)/classpath/lib/gnu/java/security/key/rsa/*.class > gnu/java/security/key/rsa.list -include gnu/java/security/key/rsa.deps gnu/java/security/pkcs.list: $(gnu_java_security_pkcs_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_pkcs_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/pkcs.list + echo $(srcdir)/classpath/lib/gnu/java/security/pkcs/*.class > gnu/java/security/pkcs.list -include gnu/java/security/pkcs.deps gnu/java/security/prng.list: $(gnu_java_security_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/prng.list + echo $(srcdir)/classpath/lib/gnu/java/security/prng/*.class > gnu/java/security/prng.list -include gnu/java/security/prng.deps gnu/java/security/provider.list: $(gnu_java_security_provider_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_provider_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/provider.list + echo $(srcdir)/classpath/lib/gnu/java/security/provider/*.class > gnu/java/security/provider.list -include gnu/java/security/provider.deps gnu/java/security/sig.list: $(gnu_java_security_sig_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_sig_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/sig.list + echo $(srcdir)/classpath/lib/gnu/java/security/sig/*.class > gnu/java/security/sig.list -include gnu/java/security/sig.deps gnu/java/security/sig/dss.list: $(gnu_java_security_sig_dss_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_sig_dss_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/sig/dss.list + echo $(srcdir)/classpath/lib/gnu/java/security/sig/dss/*.class > gnu/java/security/sig/dss.list -include gnu/java/security/sig/dss.deps gnu/java/security/sig/rsa.list: $(gnu_java_security_sig_rsa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_sig_rsa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/sig/rsa.list + echo $(srcdir)/classpath/lib/gnu/java/security/sig/rsa/*.class > gnu/java/security/sig/rsa.list -include gnu/java/security/sig/rsa.deps gnu/java/security/util.list: $(gnu_java_security_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/util.list + echo $(srcdir)/classpath/lib/gnu/java/security/util/*.class > gnu/java/security/util.list -include gnu/java/security/util.deps gnu/java/security/x509.list: $(gnu_java_security_x509_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_x509_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/x509.list + echo $(srcdir)/classpath/lib/gnu/java/security/x509/*.class > gnu/java/security/x509.list -include gnu/java/security/x509.deps gnu/java/security/x509/ext.list: $(gnu_java_security_x509_ext_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_x509_ext_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/x509/ext.list + echo $(srcdir)/classpath/lib/gnu/java/security/x509/ext/*.class > gnu/java/security/x509/ext.list -include gnu/java/security/x509/ext.deps gnu/java/text.list: $(gnu_java_text_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_text_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/text.list + echo $(srcdir)/classpath/lib/gnu/java/text/*.class > gnu/java/text.list -include gnu/java/text.deps gnu/java/util.list: $(gnu_java_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util.list + echo $(srcdir)/classpath/lib/gnu/java/util/*.class > gnu/java/util.list -include gnu/java/util.deps gnu/java/util/jar.list: $(gnu_java_util_jar_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_jar_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util/jar.list + echo $(srcdir)/classpath/lib/gnu/java/util/jar/*.class > gnu/java/util/jar.list -include gnu/java/util/jar.deps gnu/java/util/prefs.list: $(gnu_java_util_prefs_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_prefs_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util/prefs.list + echo $(srcdir)/classpath/lib/gnu/java/util/prefs/*.class > gnu/java/util/prefs.list -include gnu/java/util/prefs.deps gnu-java-util-prefs-gconf.lo: $(gnu_java_util_prefs_gconf_source_files) - @find classpath/lib/gnu/java/util/prefs/gconf -name '*.class' > gnu-java-util-prefs-gconf.list + @find $(srcdir)/classpath/lib/gnu/java/util/prefs/gconf -name '*.class' > gnu-java-util-prefs-gconf.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-util-prefs-gconf.lo @gnu-java-util-prefs-gconf.list @rm -f gnu-java-util-prefs-gconf.list gnu/java/util/regex.list: $(gnu_java_util_regex_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_regex_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util/regex.list + echo $(srcdir)/classpath/lib/gnu/java/util/regex/*.class > gnu/java/util/regex.list -include gnu/java/util/regex.deps gnu/javax/crypto.list: $(gnu_javax_crypto_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/*.class > gnu/javax/crypto.list -include gnu/javax/crypto.deps gnu/javax/crypto/assembly.list: $(gnu_javax_crypto_assembly_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_assembly_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/assembly.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/assembly/*.class > gnu/javax/crypto/assembly.list -include gnu/javax/crypto/assembly.deps gnu/javax/crypto/cipher.list: $(gnu_javax_crypto_cipher_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_cipher_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/cipher.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/cipher/*.class > gnu/javax/crypto/cipher.list -include gnu/javax/crypto/cipher.deps gnu/javax/crypto/jce.list: $(gnu_javax_crypto_jce_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/*.class > gnu/javax/crypto/jce.list -include gnu/javax/crypto/jce.deps gnu/javax/crypto/jce/cipher.list: $(gnu_javax_crypto_jce_cipher_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_cipher_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/cipher.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/cipher/*.class > gnu/javax/crypto/jce/cipher.list -include gnu/javax/crypto/jce/cipher.deps gnu/javax/crypto/jce/key.list: $(gnu_javax_crypto_jce_key_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_key_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/key.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/key/*.class > gnu/javax/crypto/jce/key.list -include gnu/javax/crypto/jce/key.deps gnu/javax/crypto/jce/keyring.list: $(gnu_javax_crypto_jce_keyring_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_keyring_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/keyring.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/keyring/*.class > gnu/javax/crypto/jce/keyring.list -include gnu/javax/crypto/jce/keyring.deps gnu/javax/crypto/jce/mac.list: $(gnu_javax_crypto_jce_mac_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_mac_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/mac.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/mac/*.class > gnu/javax/crypto/jce/mac.list -include gnu/javax/crypto/jce/mac.deps gnu/javax/crypto/jce/params.list: $(gnu_javax_crypto_jce_params_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_params_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/params.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/params/*.class > gnu/javax/crypto/jce/params.list -include gnu/javax/crypto/jce/params.deps gnu/javax/crypto/jce/prng.list: $(gnu_javax_crypto_jce_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/prng.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/prng/*.class > gnu/javax/crypto/jce/prng.list -include gnu/javax/crypto/jce/prng.deps gnu/javax/crypto/jce/sig.list: $(gnu_javax_crypto_jce_sig_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_sig_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/sig.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/sig/*.class > gnu/javax/crypto/jce/sig.list -include gnu/javax/crypto/jce/sig.deps gnu/javax/crypto/jce/spec.list: $(gnu_javax_crypto_jce_spec_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_spec_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/spec.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/spec/*.class > gnu/javax/crypto/jce/spec.list -include gnu/javax/crypto/jce/spec.deps gnu/javax/crypto/key.list: $(gnu_javax_crypto_key_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_key_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/key.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/key/*.class > gnu/javax/crypto/key.list -include gnu/javax/crypto/key.deps gnu/javax/crypto/key/dh.list: $(gnu_javax_crypto_key_dh_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_key_dh_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/key/dh.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/key/dh/*.class > gnu/javax/crypto/key/dh.list -include gnu/javax/crypto/key/dh.deps gnu/javax/crypto/key/srp6.list: $(gnu_javax_crypto_key_srp6_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_key_srp6_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/key/srp6.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/key/srp6/*.class > gnu/javax/crypto/key/srp6.list -include gnu/javax/crypto/key/srp6.deps gnu/javax/crypto/keyring.list: $(gnu_javax_crypto_keyring_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_keyring_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/keyring.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/keyring/*.class > gnu/javax/crypto/keyring.list -include gnu/javax/crypto/keyring.deps gnu/javax/crypto/kwa.list: $(gnu_javax_crypto_kwa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_kwa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/kwa.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/kwa/*.class > gnu/javax/crypto/kwa.list -include gnu/javax/crypto/kwa.deps gnu/javax/crypto/mac.list: $(gnu_javax_crypto_mac_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_mac_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/mac.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/mac/*.class > gnu/javax/crypto/mac.list -include gnu/javax/crypto/mac.deps gnu/javax/crypto/mode.list: $(gnu_javax_crypto_mode_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_mode_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/mode.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/mode/*.class > gnu/javax/crypto/mode.list -include gnu/javax/crypto/mode.deps gnu/javax/crypto/pad.list: $(gnu_javax_crypto_pad_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_pad_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/pad.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/pad/*.class > gnu/javax/crypto/pad.list -include gnu/javax/crypto/pad.deps gnu/javax/crypto/prng.list: $(gnu_javax_crypto_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/prng.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/prng/*.class > gnu/javax/crypto/prng.list -include gnu/javax/crypto/prng.deps gnu/javax/crypto/sasl.list: $(gnu_javax_crypto_sasl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/*.class > gnu/javax/crypto/sasl.list -include gnu/javax/crypto/sasl.deps gnu/javax/crypto/sasl/anonymous.list: $(gnu_javax_crypto_sasl_anonymous_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_anonymous_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/anonymous.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/anonymous/*.class > gnu/javax/crypto/sasl/anonymous.list -include gnu/javax/crypto/sasl/anonymous.deps gnu/javax/crypto/sasl/crammd5.list: $(gnu_javax_crypto_sasl_crammd5_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_crammd5_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/crammd5.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/crammd5/*.class > gnu/javax/crypto/sasl/crammd5.list -include gnu/javax/crypto/sasl/crammd5.deps gnu/javax/crypto/sasl/plain.list: $(gnu_javax_crypto_sasl_plain_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_plain_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/plain.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/plain/*.class > gnu/javax/crypto/sasl/plain.list -include gnu/javax/crypto/sasl/plain.deps gnu/javax/crypto/sasl/srp.list: $(gnu_javax_crypto_sasl_srp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_srp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/srp.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/srp/*.class > gnu/javax/crypto/sasl/srp.list -include gnu/javax/crypto/sasl/srp.deps gnu/javax/imageio.list: $(gnu_javax_imageio_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/*.class > gnu/javax/imageio.list -include gnu/javax/imageio.deps gnu/javax/imageio/bmp.list: $(gnu_javax_imageio_bmp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_bmp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/bmp.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/bmp/*.class > gnu/javax/imageio/bmp.list -include gnu/javax/imageio/bmp.deps gnu/javax/imageio/gif.list: $(gnu_javax_imageio_gif_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_gif_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/gif.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/gif/*.class > gnu/javax/imageio/gif.list -include gnu/javax/imageio/gif.deps gnu/javax/imageio/jpeg.list: $(gnu_javax_imageio_jpeg_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_jpeg_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/jpeg.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/jpeg/*.class > gnu/javax/imageio/jpeg.list -include gnu/javax/imageio/jpeg.deps gnu/javax/imageio/png.list: $(gnu_javax_imageio_png_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_png_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/png.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/png/*.class > gnu/javax/imageio/png.list -include gnu/javax/imageio/png.deps +gnu/javax/management.list: $(gnu_javax_management_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/management/*.class > gnu/javax/management.list + +-include gnu/javax/management.deps + +gnu/javax/naming/giop.list: $(gnu_javax_naming_giop_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/giop/*.class > gnu/javax/naming/giop.list + +-include gnu/javax/naming/giop.deps + +gnu/javax/naming/ictxImpl/trans.list: $(gnu_javax_naming_ictxImpl_trans_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/ictxImpl/trans/*.class > gnu/javax/naming/ictxImpl/trans.list + +-include gnu/javax/naming/ictxImpl/trans.deps + +gnu/javax/naming/jndi/url/corbaname.list: $(gnu_javax_naming_jndi_url_corbaname_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/jndi/url/corbaname/*.class > gnu/javax/naming/jndi/url/corbaname.list + +-include gnu/javax/naming/jndi/url/corbaname.deps + +gnu/javax/naming/jndi/url/rmi.list: $(gnu_javax_naming_jndi_url_rmi_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/jndi/url/rmi/*.class > gnu/javax/naming/jndi/url/rmi.list + +-include gnu/javax/naming/jndi/url/rmi.deps + gnu/javax/net/ssl.list: $(gnu_javax_net_ssl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_net_ssl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/net/ssl.list + echo $(srcdir)/classpath/lib/gnu/javax/net/ssl/*.class > gnu/javax/net/ssl.list -include gnu/javax/net/ssl.deps gnu/javax/net/ssl/provider.list: $(gnu_javax_net_ssl_provider_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_net_ssl_provider_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/net/ssl/provider.list + echo $(srcdir)/classpath/lib/gnu/javax/net/ssl/provider/*.class > gnu/javax/net/ssl/provider.list -include gnu/javax/net/ssl/provider.deps gnu/javax/print.list: $(gnu_javax_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print.list + echo $(srcdir)/classpath/lib/gnu/javax/print/*.class > gnu/javax/print.list -include gnu/javax/print.deps gnu/javax/print/ipp.list: $(gnu_javax_print_ipp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/*.class > gnu/javax/print/ipp.list -include gnu/javax/print/ipp.deps gnu/javax/print/ipp/attribute.list: $(gnu_javax_print_ipp_attribute_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/*.class > gnu/javax/print/ipp/attribute.list -include gnu/javax/print/ipp/attribute.deps gnu/javax/print/ipp/attribute/defaults.list: $(gnu_javax_print_ipp_attribute_defaults_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_defaults_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/defaults.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/defaults/*.class > gnu/javax/print/ipp/attribute/defaults.list -include gnu/javax/print/ipp/attribute/defaults.deps gnu/javax/print/ipp/attribute/job.list: $(gnu_javax_print_ipp_attribute_job_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_job_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/job.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/job/*.class > gnu/javax/print/ipp/attribute/job.list -include gnu/javax/print/ipp/attribute/job.deps gnu/javax/print/ipp/attribute/printer.list: $(gnu_javax_print_ipp_attribute_printer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_printer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/printer.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/printer/*.class > gnu/javax/print/ipp/attribute/printer.list -include gnu/javax/print/ipp/attribute/printer.deps gnu/javax/print/ipp/attribute/supported.list: $(gnu_javax_print_ipp_attribute_supported_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_supported_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/supported.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/supported/*.class > gnu/javax/print/ipp/attribute/supported.list -include gnu/javax/print/ipp/attribute/supported.deps gnu-javax-rmi.lo: $(gnu_javax_rmi_source_files) - @find classpath/lib/gnu/javax/rmi -name '*.class' > gnu-javax-rmi.list + @find $(srcdir)/classpath/lib/gnu/javax/rmi -name '*.class' > gnu-javax-rmi.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-rmi.lo @gnu-javax-rmi.list @rm -f gnu-javax-rmi.list gnu/javax/security/auth.list: $(gnu_javax_security_auth_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_security_auth_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/security/auth.list + echo $(srcdir)/classpath/lib/gnu/javax/security/auth/*.class > gnu/javax/security/auth.list -include gnu/javax/security/auth.deps gnu/javax/security/auth/callback.list: $(gnu_javax_security_auth_callback_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_security_auth_callback_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/security/auth/callback.list + echo $(srcdir)/classpath/lib/gnu/javax/security/auth/callback/*.class > gnu/javax/security/auth/callback.list -include gnu/javax/security/auth/callback.deps gnu/javax/security/auth/login.list: $(gnu_javax_security_auth_login_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_security_auth_login_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/security/auth/login.list + echo $(srcdir)/classpath/lib/gnu/javax/security/auth/login/*.class > gnu/javax/security/auth/login.list -include gnu/javax/security/auth/login.deps gnu-javax-sound-midi.lo: $(gnu_javax_sound_midi_source_files) - @find classpath/lib/gnu/javax/sound/midi -name '*.class' > gnu-javax-sound-midi.list + @find $(srcdir)/classpath/lib/gnu/javax/sound/midi -name '*.class' > gnu-javax-sound-midi.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-sound-midi.lo @gnu-javax-sound-midi.list @rm -f gnu-javax-sound-midi.list gnu/javax/sound/sampled/AU.list: $(gnu_javax_sound_sampled_AU_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_sound_sampled_AU_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/sound/sampled/AU.list + echo $(srcdir)/classpath/lib/gnu/javax/sound/sampled/AU/*.class > gnu/javax/sound/sampled/AU.list -include gnu/javax/sound/sampled/AU.deps gnu/javax/sound/sampled/WAV.list: $(gnu_javax_sound_sampled_WAV_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_sound_sampled_WAV_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/sound/sampled/WAV.list + echo $(srcdir)/classpath/lib/gnu/javax/sound/sampled/WAV/*.class > gnu/javax/sound/sampled/WAV.list -include gnu/javax/sound/sampled/WAV.deps gnu/javax/swing/plaf/gnu.list: $(gnu_javax_swing_plaf_gnu_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_plaf_gnu_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/plaf/gnu.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/plaf/gnu/*.class > gnu/javax/swing/plaf/gnu.list -include gnu/javax/swing/plaf/gnu.deps gnu/javax/swing/plaf/metal.list: $(gnu_javax_swing_plaf_metal_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_plaf_metal_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/plaf/metal.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/plaf/metal/*.class > gnu/javax/swing/plaf/metal.list -include gnu/javax/swing/plaf/metal.deps gnu/javax/swing/text/html.list: $(gnu_javax_swing_text_html_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/*.class > gnu/javax/swing/text/html.list -include gnu/javax/swing/text/html.deps +gnu/javax/swing/text/html/css.list: $(gnu_javax_swing_text_html_css_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/css/*.class > gnu/javax/swing/text/html/css.list + +-include gnu/javax/swing/text/html/css.deps + gnu/javax/swing/text/html/parser.list: $(gnu_javax_swing_text_html_parser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/*.class > gnu/javax/swing/text/html/parser.list -include gnu/javax/swing/text/html/parser.deps gnu/javax/swing/text/html/parser/models.list: $(gnu_javax_swing_text_html_parser_models_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_models_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser/models.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/models/*.class > gnu/javax/swing/text/html/parser/models.list -include gnu/javax/swing/text/html/parser/models.deps gnu/javax/swing/text/html/parser/support.list: $(gnu_javax_swing_text_html_parser_support_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_support_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser/support.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/support/*.class > gnu/javax/swing/text/html/parser/support.list -include gnu/javax/swing/text/html/parser/support.deps gnu/javax/swing/text/html/parser/support/low.list: $(gnu_javax_swing_text_html_parser_support_low_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_support_low_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser/support/low.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/support/low/*.class > gnu/javax/swing/text/html/parser/support/low.list -include gnu/javax/swing/text/html/parser/support/low.deps gnu/javax/swing/tree.list: $(gnu_javax_swing_tree_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_tree_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/tree.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/tree/*.class > gnu/javax/swing/tree.list -include gnu/javax/swing/tree.deps gnu-xml.lo: $(gnu_xml_source_files) - @find classpath/lib/gnu/xml -name '*.class' > gnu-xml.list + @find $(srcdir)/classpath/lib/gnu/xml -name '*.class' > gnu-xml.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml.lo @gnu-xml.list @rm -f gnu-xml.list java/applet.list: $(java_applet_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_applet_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/applet.list + echo $(srcdir)/classpath/lib/java/applet/*.class > java/applet.list -include java/applet.deps java/awt.list: $(java_awt_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt.list + echo $(srcdir)/classpath/lib/java/awt/*.class > java/awt.list -include java/awt.deps java/awt/color.list: $(java_awt_color_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_color_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/color.list + echo $(srcdir)/classpath/lib/java/awt/color/*.class > java/awt/color.list -include java/awt/color.deps java/awt/datatransfer.list: $(java_awt_datatransfer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_datatransfer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/datatransfer.list + echo $(srcdir)/classpath/lib/java/awt/datatransfer/*.class > java/awt/datatransfer.list -include java/awt/datatransfer.deps java/awt/dnd.list: $(java_awt_dnd_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_dnd_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/dnd.list + echo $(srcdir)/classpath/lib/java/awt/dnd/*.class > java/awt/dnd.list -include java/awt/dnd.deps java/awt/dnd/peer.list: $(java_awt_dnd_peer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_dnd_peer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/dnd/peer.list + echo $(srcdir)/classpath/lib/java/awt/dnd/peer/*.class > java/awt/dnd/peer.list -include java/awt/dnd/peer.deps java/awt/event.list: $(java_awt_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/event.list + echo $(srcdir)/classpath/lib/java/awt/event/*.class > java/awt/event.list -include java/awt/event.deps java/awt/font.list: $(java_awt_font_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_font_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/font.list + echo $(srcdir)/classpath/lib/java/awt/font/*.class > java/awt/font.list -include java/awt/font.deps java/awt/geom.list: $(java_awt_geom_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_geom_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/geom.list + echo $(srcdir)/classpath/lib/java/awt/geom/*.class > java/awt/geom.list -include java/awt/geom.deps java/awt/im.list: $(java_awt_im_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_im_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/im.list + echo $(srcdir)/classpath/lib/java/awt/im/*.class > java/awt/im.list -include java/awt/im.deps java/awt/im/spi.list: $(java_awt_im_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_im_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/im/spi.list + echo $(srcdir)/classpath/lib/java/awt/im/spi/*.class > java/awt/im/spi.list -include java/awt/im/spi.deps java/awt/image.list: $(java_awt_image_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_image_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/image.list + echo $(srcdir)/classpath/lib/java/awt/image/*.class > java/awt/image.list -include java/awt/image.deps java/awt/image/renderable.list: $(java_awt_image_renderable_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_image_renderable_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/image/renderable.list + echo $(srcdir)/classpath/lib/java/awt/image/renderable/*.class > java/awt/image/renderable.list -include java/awt/image/renderable.deps java/awt/peer.list: $(java_awt_peer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_peer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/peer.list + echo $(srcdir)/classpath/lib/java/awt/peer/*.class > java/awt/peer.list -include java/awt/peer.deps java/awt/print.list: $(java_awt_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/print.list + echo $(srcdir)/classpath/lib/java/awt/print/*.class > java/awt/print.list -include java/awt/print.deps java/beans.list: $(java_beans_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_beans_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/beans.list + echo $(srcdir)/classpath/lib/java/beans/*.class > java/beans.list -include java/beans.deps java/beans/beancontext.list: $(java_beans_beancontext_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_beans_beancontext_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/beans/beancontext.list + echo $(srcdir)/classpath/lib/java/beans/beancontext/*.class > java/beans/beancontext.list -include java/beans/beancontext.deps java/io.list: $(java_io_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_io_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/io.list + echo $(srcdir)/classpath/lib/java/io/*.class > java/io.list -include java/io.deps java/lang.list: $(java_lang_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang.list + echo $(srcdir)/classpath/lib/java/lang/*.class | tr ' ' '\n' | fgrep -v Object.class | fgrep -v Class.class | grep -v '[^/]Process' > java/lang.list -include java/lang.deps java/lang/annotation.list: $(java_lang_annotation_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_annotation_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/annotation.list + echo $(srcdir)/classpath/lib/java/lang/annotation/*.class > java/lang/annotation.list -include java/lang/annotation.deps java/lang/instrument.list: $(java_lang_instrument_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_instrument_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/instrument.list + echo $(srcdir)/classpath/lib/java/lang/instrument/*.class > java/lang/instrument.list -include java/lang/instrument.deps java/lang/management.list: $(java_lang_management_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_management_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/management.list + echo $(srcdir)/classpath/lib/java/lang/management/*.class > java/lang/management.list -include java/lang/management.deps java/lang/ref.list: $(java_lang_ref_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_ref_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/ref.list + echo $(srcdir)/classpath/lib/java/lang/ref/*.class > java/lang/ref.list -include java/lang/ref.deps java/lang/reflect.list: $(java_lang_reflect_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_reflect_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/reflect.list + echo $(srcdir)/classpath/lib/java/lang/reflect/*.class > java/lang/reflect.list -include java/lang/reflect.deps java/math.list: $(java_math_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_math_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/math.list + echo $(srcdir)/classpath/lib/java/math/*.class > java/math.list -include java/math.deps java/net.list: $(java_net_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_net_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/net.list + echo $(srcdir)/classpath/lib/java/net/*.class > java/net.list -include java/net.deps java/nio.list: $(java_nio_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio.list + echo $(srcdir)/classpath/lib/java/nio/*.class > java/nio.list -include java/nio.deps java/nio/channels.list: $(java_nio_channels_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_channels_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/channels.list + echo $(srcdir)/classpath/lib/java/nio/channels/*.class > java/nio/channels.list -include java/nio/channels.deps java/nio/channels/spi.list: $(java_nio_channels_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_channels_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/channels/spi.list + echo $(srcdir)/classpath/lib/java/nio/channels/spi/*.class > java/nio/channels/spi.list -include java/nio/channels/spi.deps java/nio/charset.list: $(java_nio_charset_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_charset_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/charset.list + echo $(srcdir)/classpath/lib/java/nio/charset/*.class > java/nio/charset.list -include java/nio/charset.deps java/nio/charset/spi.list: $(java_nio_charset_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_charset_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/charset/spi.list + echo $(srcdir)/classpath/lib/java/nio/charset/spi/*.class > java/nio/charset/spi.list -include java/nio/charset/spi.deps java/rmi.list: $(java_rmi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi.list + echo $(srcdir)/classpath/lib/java/rmi/*.class > java/rmi.list -include java/rmi.deps java/rmi/activation.list: $(java_rmi_activation_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_activation_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/activation.list + echo $(srcdir)/classpath/lib/java/rmi/activation/*.class > java/rmi/activation.list -include java/rmi/activation.deps java/rmi/dgc.list: $(java_rmi_dgc_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_dgc_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/dgc.list + echo $(srcdir)/classpath/lib/java/rmi/dgc/*.class > java/rmi/dgc.list -include java/rmi/dgc.deps java/rmi/registry.list: $(java_rmi_registry_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_registry_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/registry.list + echo $(srcdir)/classpath/lib/java/rmi/registry/*.class > java/rmi/registry.list -include java/rmi/registry.deps java/rmi/server.list: $(java_rmi_server_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_server_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/server.list + echo $(srcdir)/classpath/lib/java/rmi/server/*.class > java/rmi/server.list -include java/rmi/server.deps java/security.list: $(java_security_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security.list + echo $(srcdir)/classpath/lib/java/security/*.class > java/security.list -include java/security.deps java/security/acl.list: $(java_security_acl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_acl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/acl.list + echo $(srcdir)/classpath/lib/java/security/acl/*.class > java/security/acl.list -include java/security/acl.deps java/security/cert.list: $(java_security_cert_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_cert_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/cert.list + echo $(srcdir)/classpath/lib/java/security/cert/*.class > java/security/cert.list -include java/security/cert.deps java/security/interfaces.list: $(java_security_interfaces_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_interfaces_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/interfaces.list + echo $(srcdir)/classpath/lib/java/security/interfaces/*.class > java/security/interfaces.list -include java/security/interfaces.deps java/security/spec.list: $(java_security_spec_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_spec_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/spec.list + echo $(srcdir)/classpath/lib/java/security/spec/*.class > java/security/spec.list -include java/security/spec.deps java/sql.list: $(java_sql_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_sql_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/sql.list + echo $(srcdir)/classpath/lib/java/sql/*.class > java/sql.list -include java/sql.deps java/text.list: $(java_text_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_text_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/text.list + echo $(srcdir)/classpath/lib/java/text/*.class > java/text.list -include java/text.deps java/util.list: $(java_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util.list + echo $(srcdir)/classpath/lib/java/util/*.class > java/util.list -include java/util.deps +java/util/concurrent.list: $(java_util_concurrent_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/util/concurrent/*.class > java/util/concurrent.list + +-include java/util/concurrent.deps + +java/util/concurrent/atomic.list: $(java_util_concurrent_atomic_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/util/concurrent/atomic/*.class > java/util/concurrent/atomic.list + +-include java/util/concurrent/atomic.deps + +java/util/concurrent/locks.list: $(java_util_concurrent_locks_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/util/concurrent/locks/*.class > java/util/concurrent/locks.list + +-include java/util/concurrent/locks.deps + java/util/jar.list: $(java_util_jar_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_jar_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/jar.list + echo $(srcdir)/classpath/lib/java/util/jar/*.class > java/util/jar.list -include java/util/jar.deps java/util/logging.list: $(java_util_logging_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_logging_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/logging.list + echo $(srcdir)/classpath/lib/java/util/logging/*.class > java/util/logging.list -include java/util/logging.deps java/util/prefs.list: $(java_util_prefs_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_prefs_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/prefs.list + echo $(srcdir)/classpath/lib/java/util/prefs/*.class > java/util/prefs.list -include java/util/prefs.deps java/util/regex.list: $(java_util_regex_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_regex_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/regex.list + echo $(srcdir)/classpath/lib/java/util/regex/*.class > java/util/regex.list -include java/util/regex.deps java/util/zip.list: $(java_util_zip_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_zip_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/zip.list + echo $(srcdir)/classpath/lib/java/util/zip/*.class > java/util/zip.list -include java/util/zip.deps javax/accessibility.list: $(javax_accessibility_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_accessibility_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/accessibility.list + echo $(srcdir)/classpath/lib/javax/accessibility/*.class > javax/accessibility.list -include javax/accessibility.deps javax/crypto.list: $(javax_crypto_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_crypto_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/crypto.list + echo $(srcdir)/classpath/lib/javax/crypto/*.class > javax/crypto.list -include javax/crypto.deps javax/crypto/interfaces.list: $(javax_crypto_interfaces_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_crypto_interfaces_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/crypto/interfaces.list + echo $(srcdir)/classpath/lib/javax/crypto/interfaces/*.class > javax/crypto/interfaces.list -include javax/crypto/interfaces.deps javax/crypto/spec.list: $(javax_crypto_spec_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_crypto_spec_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/crypto/spec.list + echo $(srcdir)/classpath/lib/javax/crypto/spec/*.class > javax/crypto/spec.list -include javax/crypto/spec.deps javax-imageio.lo: $(javax_imageio_source_files) - @find classpath/lib/javax/imageio -name '*.class' > javax-imageio.list + @find $(srcdir)/classpath/lib/javax/imageio -name '*.class' > javax-imageio.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-imageio.lo @javax-imageio.list @rm -f javax-imageio.list javax/management.list: $(javax_management_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_management_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/management.list + echo $(srcdir)/classpath/lib/javax/management/*.class > javax/management.list -include javax/management.deps +javax/management/loading.list: $(javax_management_loading_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/management/loading/*.class > javax/management/loading.list + +-include javax/management/loading.deps + javax/management/openmbean.list: $(javax_management_openmbean_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_management_openmbean_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/management/openmbean.list + echo $(srcdir)/classpath/lib/javax/management/openmbean/*.class > javax/management/openmbean.list -include javax/management/openmbean.deps javax/naming.list: $(javax_naming_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming.list + echo $(srcdir)/classpath/lib/javax/naming/*.class > javax/naming.list -include javax/naming.deps javax/naming/directory.list: $(javax_naming_directory_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_directory_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/directory.list + echo $(srcdir)/classpath/lib/javax/naming/directory/*.class > javax/naming/directory.list -include javax/naming/directory.deps javax/naming/event.list: $(javax_naming_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/event.list + echo $(srcdir)/classpath/lib/javax/naming/event/*.class > javax/naming/event.list -include javax/naming/event.deps javax/naming/ldap.list: $(javax_naming_ldap_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_ldap_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/ldap.list + echo $(srcdir)/classpath/lib/javax/naming/ldap/*.class > javax/naming/ldap.list -include javax/naming/ldap.deps javax/naming/spi.list: $(javax_naming_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/spi.list + echo $(srcdir)/classpath/lib/javax/naming/spi/*.class > javax/naming/spi.list -include javax/naming/spi.deps javax/net.list: $(javax_net_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_net_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/net.list + echo $(srcdir)/classpath/lib/javax/net/*.class > javax/net.list -include javax/net.deps javax/net/ssl.list: $(javax_net_ssl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_net_ssl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/net/ssl.list + echo $(srcdir)/classpath/lib/javax/net/ssl/*.class > javax/net/ssl.list -include javax/net/ssl.deps javax/print.list: $(javax_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print.list + echo $(srcdir)/classpath/lib/javax/print/*.class > javax/print.list -include javax/print.deps javax/print/attribute.list: $(javax_print_attribute_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_attribute_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print/attribute.list + echo $(srcdir)/classpath/lib/javax/print/attribute/*.class > javax/print/attribute.list -include javax/print/attribute.deps javax/print/attribute/standard.list: $(javax_print_attribute_standard_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_attribute_standard_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print/attribute/standard.list + echo $(srcdir)/classpath/lib/javax/print/attribute/standard/*.class > javax/print/attribute/standard.list -include javax/print/attribute/standard.deps javax/print/event.list: $(javax_print_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print/event.list + echo $(srcdir)/classpath/lib/javax/print/event/*.class > javax/print/event.list -include javax/print/event.deps javax-rmi.lo: $(javax_rmi_source_files) - @find classpath/lib/javax/rmi -name '*.class' > javax-rmi.list + @find $(srcdir)/classpath/lib/javax/rmi -name '*.class' > javax-rmi.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-rmi.lo @javax-rmi.list @rm -f javax-rmi.list javax/security/auth.list: $(javax_security_auth_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth.list + echo $(srcdir)/classpath/lib/javax/security/auth/*.class > javax/security/auth.list -include javax/security/auth.deps javax/security/auth/callback.list: $(javax_security_auth_callback_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_callback_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/callback.list + echo $(srcdir)/classpath/lib/javax/security/auth/callback/*.class > javax/security/auth/callback.list -include javax/security/auth/callback.deps javax/security/auth/kerberos.list: $(javax_security_auth_kerberos_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_kerberos_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/kerberos.list + echo $(srcdir)/classpath/lib/javax/security/auth/kerberos/*.class > javax/security/auth/kerberos.list -include javax/security/auth/kerberos.deps javax/security/auth/login.list: $(javax_security_auth_login_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_login_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/login.list + echo $(srcdir)/classpath/lib/javax/security/auth/login/*.class > javax/security/auth/login.list -include javax/security/auth/login.deps javax/security/auth/spi.list: $(javax_security_auth_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/spi.list + echo $(srcdir)/classpath/lib/javax/security/auth/spi/*.class > javax/security/auth/spi.list -include javax/security/auth/spi.deps javax/security/auth/x500.list: $(javax_security_auth_x500_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_x500_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/x500.list + echo $(srcdir)/classpath/lib/javax/security/auth/x500/*.class > javax/security/auth/x500.list -include javax/security/auth/x500.deps javax/security/cert.list: $(javax_security_cert_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_cert_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/cert.list + echo $(srcdir)/classpath/lib/javax/security/cert/*.class > javax/security/cert.list -include javax/security/cert.deps javax/security/sasl.list: $(javax_security_sasl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_sasl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/sasl.list + echo $(srcdir)/classpath/lib/javax/security/sasl/*.class > javax/security/sasl.list -include javax/security/sasl.deps javax/sound/midi.list: $(javax_sound_midi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_midi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/midi.list + echo $(srcdir)/classpath/lib/javax/sound/midi/*.class > javax/sound/midi.list -include javax/sound/midi.deps javax/sound/midi/spi.list: $(javax_sound_midi_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_midi_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/midi/spi.list + echo $(srcdir)/classpath/lib/javax/sound/midi/spi/*.class > javax/sound/midi/spi.list -include javax/sound/midi/spi.deps javax/sound/sampled.list: $(javax_sound_sampled_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_sampled_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/sampled.list + echo $(srcdir)/classpath/lib/javax/sound/sampled/*.class > javax/sound/sampled.list -include javax/sound/sampled.deps javax/sound/sampled/spi.list: $(javax_sound_sampled_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_sampled_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/sampled/spi.list + echo $(srcdir)/classpath/lib/javax/sound/sampled/spi/*.class > javax/sound/sampled/spi.list -include javax/sound/sampled/spi.deps javax/sql.list: $(javax_sql_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sql_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sql.list + echo $(srcdir)/classpath/lib/javax/sql/*.class > javax/sql.list -include javax/sql.deps javax/swing.list: $(javax_swing_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing.list + echo $(srcdir)/classpath/lib/javax/swing/*.class > javax/swing.list -include javax/swing.deps javax/swing/border.list: $(javax_swing_border_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_border_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/border.list + echo $(srcdir)/classpath/lib/javax/swing/border/*.class > javax/swing/border.list -include javax/swing/border.deps javax/swing/colorchooser.list: $(javax_swing_colorchooser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_colorchooser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/colorchooser.list + echo $(srcdir)/classpath/lib/javax/swing/colorchooser/*.class > javax/swing/colorchooser.list -include javax/swing/colorchooser.deps javax/swing/event.list: $(javax_swing_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/event.list + echo $(srcdir)/classpath/lib/javax/swing/event/*.class > javax/swing/event.list -include javax/swing/event.deps javax/swing/filechooser.list: $(javax_swing_filechooser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_filechooser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/filechooser.list + echo $(srcdir)/classpath/lib/javax/swing/filechooser/*.class > javax/swing/filechooser.list -include javax/swing/filechooser.deps javax/swing/plaf.list: $(javax_swing_plaf_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/*.class > javax/swing/plaf.list -include javax/swing/plaf.deps javax/swing/plaf/basic.list: $(javax_swing_plaf_basic_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_basic_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/basic.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/basic/*.class > javax/swing/plaf/basic.list -include javax/swing/plaf/basic.deps javax/swing/plaf/metal.list: $(javax_swing_plaf_metal_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_metal_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/metal.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/metal/*.class > javax/swing/plaf/metal.list -include javax/swing/plaf/metal.deps javax/swing/plaf/multi.list: $(javax_swing_plaf_multi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_multi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/multi.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/multi/*.class > javax/swing/plaf/multi.list -include javax/swing/plaf/multi.deps javax/swing/plaf/synth.list: $(javax_swing_plaf_synth_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_synth_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/synth.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/synth/*.class > javax/swing/plaf/synth.list -include javax/swing/plaf/synth.deps javax/swing/table.list: $(javax_swing_table_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_table_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/table.list + echo $(srcdir)/classpath/lib/javax/swing/table/*.class > javax/swing/table.list -include javax/swing/table.deps javax/swing/text.list: $(javax_swing_text_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text.list + echo $(srcdir)/classpath/lib/javax/swing/text/*.class > javax/swing/text.list -include javax/swing/text.deps javax/swing/text/html.list: $(javax_swing_text_html_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_html_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text/html.list + echo $(srcdir)/classpath/lib/javax/swing/text/html/*.class > javax/swing/text/html.list -include javax/swing/text/html.deps javax/swing/text/html/parser.list: $(javax_swing_text_html_parser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_html_parser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text/html/parser.list + echo $(srcdir)/classpath/lib/javax/swing/text/html/parser/*.class > javax/swing/text/html/parser.list -include javax/swing/text/html/parser.deps javax/swing/text/rtf.list: $(javax_swing_text_rtf_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_rtf_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text/rtf.list + echo $(srcdir)/classpath/lib/javax/swing/text/rtf/*.class > javax/swing/text/rtf.list -include javax/swing/text/rtf.deps javax/swing/tree.list: $(javax_swing_tree_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_tree_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/tree.list + echo $(srcdir)/classpath/lib/javax/swing/tree/*.class > javax/swing/tree.list -include javax/swing/tree.deps javax/swing/undo.list: $(javax_swing_undo_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_undo_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/undo.list + echo $(srcdir)/classpath/lib/javax/swing/undo/*.class > javax/swing/undo.list -include javax/swing/undo.deps javax/transaction.list: $(javax_transaction_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_transaction_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/transaction.list + echo $(srcdir)/classpath/lib/javax/transaction/*.class > javax/transaction.list -include javax/transaction.deps javax/transaction/xa.list: $(javax_transaction_xa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_transaction_xa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/transaction/xa.list + echo $(srcdir)/classpath/lib/javax/transaction/xa/*.class > javax/transaction/xa.list -include javax/transaction/xa.deps javax-xml.lo: $(javax_xml_source_files) - @find classpath/lib/javax/xml -name '*.class' > javax-xml.list + @find $(srcdir)/classpath/lib/javax/xml -name '*.class' > javax-xml.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-xml.lo @javax-xml.list @rm -f javax-xml.list org/ietf/jgss.list: $(org_ietf_jgss_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(org_ietf_jgss_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > org/ietf/jgss.list + echo $(srcdir)/classpath/lib/org/ietf/jgss/*.class > org/ietf/jgss.list -include org/ietf/jgss.deps org-omg.lo: $(org_omg_source_files) - @find classpath/lib/org/omg -name '*.class' > org-omg.list + @find $(srcdir)/classpath/lib/org/omg -name '*.class' > org-omg.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-omg.lo @org-omg.list @rm -f org-omg.list org-relaxng.lo: $(org_relaxng_source_files) - @find classpath/lib/org/relaxng -name '*.class' > org-relaxng.list + @find $(srcdir)/classpath/lib/org/relaxng -name '*.class' > org-relaxng.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-relaxng.lo @org-relaxng.list @rm -f org-relaxng.list org-w3c.lo: $(org_w3c_source_files) - @find classpath/lib/org/w3c -name '*.class' > org-w3c.list + @find $(srcdir)/classpath/lib/org/w3c -name '*.class' > org-w3c.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-w3c.lo @org-w3c.list @rm -f org-w3c.list org-xml.lo: $(org_xml_source_files) - @find classpath/lib/org/xml -name '*.class' > org-xml.list + @find $(srcdir)/classpath/lib/org/xml -name '*.class' > org-xml.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-xml.lo @org-xml.list @rm -f org-xml.list -$(generic_header_files): %.h: classpath/lib/%.class - name=`echo $< | sed -e 's/\.class$$//' -e 's,classpath/lib/,,'`; \ - $(mkinstalldirs) `dirname $$name`; \ - $(GCJH) -d . -classpath '' -bootclasspath classpath/lib $$name - -java/lang/ClassLoader.h: classpath/lib/java/lang/ClassLoader.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \ - -prepend 'void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \ - -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);' \ - java/lang/ClassLoader - -java/lang/Thread.h: classpath/lib/java/lang/Thread.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'class _Jv_JNIEnv;' \ - -prepend 'class _Jv_Thread_t;' \ - -prepend '#define _JV_NOT_OWNER 1' \ - -prepend '#define _JV_INTERRUPTED 2' \ - -prepend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \ - -prepend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \ - -prepend 'void _Jv_ThreadRun (java::lang::Thread* thread);' \ - -prepend 'jint _Jv_AttachCurrentThread(java::lang::Thread* thread);' \ - -prepend 'java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \ - -prepend 'java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \ - -prepend 'jint _Jv_DetachCurrentThread ();' \ - -prepend '_Jv_Thread_t* _Jv_ThreadGetData (java::lang::Thread* thread);' \ - -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) ();' \ - -friend '_Jv_Thread_t* ::_Jv_ThreadGetData (java::lang::Thread* thread);' \ - java/lang/Thread - -java/lang/String.h: classpath/lib/java/lang/String.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jchar* _Jv_GetStringChars (jstring str);' \ - -prepend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \ - -prepend 'jstring* _Jv_StringGetSlot (jstring);' \ - -prepend 'jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);' \ - -prepend 'jstring _Jv_NewStringLatin1 (const char*, jsize);' \ - -prepend 'jstring _Jv_AllocString (jsize);' \ - -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);' \ - java/lang/String - -java/lang/reflect/Constructor.h: classpath/lib/java/lang/reflect/Constructor.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \ - -prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \ - -friend 'jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);' \ - -friend 'jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \ - -friend 'class java::lang::Class;' \ - java/lang/reflect/Constructor - -java/lang/reflect/Field.h: classpath/lib/java/lang/reflect/Field.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \ - -prepend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \ - -friend 'jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);' \ - -friend 'jobject (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \ - -friend 'class java::lang::Class;' \ - java/lang/reflect/Field - -java/lang/reflect/Method.h: classpath/lib/java/lang/reflect/Method.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -prepend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \ - -prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \ - -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;' \ - java/lang/reflect/Method - -java/lang/reflect/Proxy.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - java/lang/reflect/Proxy - -java/lang/reflect/Proxy$$ProxyData.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/reflect/Proxy$$ProxyData' - -java/lang/reflect/Proxy$$ProxyType.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/reflect/Proxy$$ProxyType' - -gnu/gcj/runtime/ExtensionClassLoader.h: classpath/lib/gnu/gcj/runtime/ExtensionClassLoader.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - -friend 'class ::java::lang::ClassLoader;' \ - gnu/gcj/runtime/ExtensionClassLoader - -java/io/ObjectInputStream$$GetField.h: classpath/lib/java/io/ObjectInputStream.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/io/ObjectInputStream$$GetField' - -java/io/ObjectOutputStream$$PutField.h: classpath/lib/java/io/ObjectOutputStream.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/io/ObjectOutputStream$$PutField' - -java/nio/DirectByteBufferImpl$$ReadWrite.h: classpath/lib/java/nio/DirectByteBufferImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/DirectByteBufferImpl$$ReadWrite' - -java/nio/channels/Pipe$$SinkChannel.h: classpath/lib/java/nio/channels/Pipe.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/channels/Pipe$$SinkChannel' - -java/nio/channels/Pipe$$SourceChannel.h: classpath/lib/java/nio/channels/Pipe.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/channels/Pipe$$SourceChannel' - -gnu/java/net/PlainSocketImpl$$SocketInputStream.h: classpath/lib/gnu/java/net/PlainSocketImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/net/PlainSocketImpl$$SocketInputStream' - -gnu/java/net/PlainSocketImpl$$SocketOutputStream.h: classpath/lib/gnu/java/net/PlainSocketImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/net/PlainSocketImpl$$SocketOutputStream' - -gnu/java/nio/PipeImpl$$SinkChannelImpl.h: classpath/lib/gnu/java/nio/PipeImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/nio/PipeImpl$$SinkChannelImpl' - -gnu/java/nio/PipeImpl$$SourceChannelImpl.h: classpath/lib/gnu/java/nio/PipeImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'gnu/java/nio/PipeImpl$$SourceChannelImpl' - -java/lang/ConcreteProcess$$ProcessManager.h: classpath/lib/java/lang/ConcreteProcess.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/ConcreteProcess$$ProcessManager' +sun/misc.list: $(sun_misc_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/misc/*.class > sun/misc.list + +-include sun/misc.deps + +sun/reflect.list: $(sun_reflect_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/*.class > sun/reflect.list + +-include sun/reflect.deps + +sun/reflect/annotation.list: $(sun_reflect_annotation_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/annotation/*.class > sun/reflect/annotation.list + +-include sun/reflect/annotation.deps + +sun/reflect/misc.list: $(sun_reflect_misc_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/misc/*.class > sun/reflect/misc.list + +-include sun/reflect/misc.deps + +java/process-Ecos.list: java/lang/EcosProcess.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/EcosProcess*.class > java/process-Ecos.list + +-include java/process-Ecos.deps + +java/process-Win32.list: java/lang/Win32Process.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/Win32Process*.class > java/process-Win32.list + +-include java/process-Win32.deps + +java/process-Posix.list: java/lang/PosixProcess.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/PosixProcess*.class > java/process-Posix.list + +-include java/process-Posix.deps + +$(generic_header_files): gcjh.stamp + +gcjh.stamp: classpath/lib/compile-classes +@JAVA_MAINTAINER_MODE_TRUE@ $(MYGCJH) --cni --all $(srcdir)/classpath/lib \ +@JAVA_MAINTAINER_MODE_TRUE@ --cmdfile=$(srcdir)/headers.txt -d $(srcdir) --force + echo > gcjh.stamp $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h: @: -@USE_LIBGCJ_BC_TRUE@install-exec-hook: install-toolexeclibLTLIBRARIES +install-exec-hook: install-toolexeclibLTLIBRARIES install-libexecsubPROGRAMS @USE_LIBGCJ_BC_TRUE@ @echo Installing dummy lib libgcj_bc.so.1.0.0; \ -@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ -@USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ +@USE_LIBGCJ_BC_TRUE@ rm $(toolexeclibdir)/libgcj_bc.so; \ +@USE_LIBGCJ_BC_TRUE@ mv $(toolexeclibdir)/libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so; \ @USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ -@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ -@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ -@USE_LIBGCJ_BC_TRUE@ $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ -@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la; +@USE_LIBGCJ_BC_TRUE@ -o $(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ +@USE_LIBGCJ_BC_TRUE@ rm $(toolexeclibdir)/libgcj_bc.so.1; \ +@USE_LIBGCJ_BC_TRUE@ $(LN_S) libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so.1; \ +@USE_LIBGCJ_BC_TRUE@ rm $(toolexeclibdir)/libgcj_bc.la; +@BUILD_ECJ1_TRUE@@NATIVE_TRUE@ mv $(DESTDIR)$(libexecsubdir)/ecjx$(EXEEXT) $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext) +@BUILD_ECJ1_TRUE@@NATIVE_FALSE@ mv $(DESTDIR)$(libexecsubdir)/$(target_noncanonical)-ecjx$(EXEEXT) $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext) install-data-local: $(PRE_INSTALL) @@ -11809,16 +11554,16 @@ install-data-local: $(INSTALL_DATA) $$p $(DESTDIR)$(gxx_include_dir)/$$f; \ done -@rm -f tmp-ilist - $(INSTALL_DATA) 'java/io/ObjectOutputStream$$PutField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ - $(INSTALL_DATA) 'java/io/ObjectInputStream$$GetField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ - $(INSTALL_DATA) 'java/nio/channels/Pipe$$SinkChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ - $(INSTALL_DATA) 'java/nio/channels/Pipe$$SourceChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ - $(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyData.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ - $(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ - $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ - $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ - $(INSTALL_DATA) 'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ - $(INSTALL_DATA) 'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ + $(INSTALL_DATA) $(srcdir)/'java/io/ObjectOutputStream$$PutField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ + $(INSTALL_DATA) $(srcdir)/'java/io/ObjectInputStream$$GetField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ + $(INSTALL_DATA) $(srcdir)/'java/nio/channels/Pipe$$SinkChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ + $(INSTALL_DATA) $(srcdir)/'java/nio/channels/Pipe$$SourceChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ + $(INSTALL_DATA) $(srcdir)/'java/lang/reflect/Proxy$$ProxyData.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ + $(INSTALL_DATA) $(srcdir)/'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ + $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ maintainer-check: libgcj.la $(NM) .libs/libgcj.a | grep ' T ' \ @@ -11892,12 +11637,33 @@ src.zip: here=`pwd`; \ ( \ ( cd $(srcdir)/classpath; \ - find java gnu javax org -name '*.java' -print | \ + find java gnu javax org sun -name '*.java' -print | \ while read file; do \ echo "x-C" | sed -e 's/^.//'; \ echo $(srcdir)/classpath; \ echo $$file; \ done ); \ + ( cd $(srcdir)/classpath/external/sax; \ + find org -name '*.java' -print | \ + while read file; do \ + echo "x-C" | sed -e 's/^.//'; \ + echo $(srcdir)/classpath/external/sax; \ + echo $$file; \ + done ); \ + ( cd $(srcdir)/classpath/external/relaxngDatatype; \ + find org -name '*.java' -print | \ + while read file; do \ + echo "x-C" | sed -e 's/^.//'; \ + echo $(srcdir)/classpath/external/relaxngDatatype; \ + echo $$file; \ + done ); \ + ( cd $(srcdir)/classpath/external/w3c_dom; \ + find org -name '*.java' -print | \ + while read file; do \ + echo "x-C" | sed -e 's/^.//'; \ + echo $(srcdir)/classpath/external/w3c_dom; \ + echo $$file; \ + done ); \ ( cd classpath; \ find gnu java -name '*.java' -print | \ while read file; do \ diff --git a/libjava/boehm.cc b/libjava/boehm.cc index 2e382959ee4..19d7e53133e 100644 --- a/libjava/boehm.cc +++ b/libjava/boehm.cc @@ -168,6 +168,9 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void *env) p = (GC_PTR) c->aux_info; MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c); + p = (GC_PTR) c->reflection_data; + MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c); + // The class chain must be marked for runtime-allocated Classes // loaded by the bootstrap ClassLoader. p = (GC_PTR) c->next_or_version; diff --git a/libjava/classpath/.cdtproject b/libjava/classpath/.cdtproject new file mode 100644 index 00000000000..2ec939f28d9 --- /dev/null +++ b/libjava/classpath/.cdtproject @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/libjava/classpath/.classpath b/libjava/classpath/.classpath new file mode 100644 index 00000000000..ec7cfd1755f --- /dev/null +++ b/libjava/classpath/.classpath @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/libjava/classpath/.cvsignore b/libjava/classpath/.cvsignore new file mode 100644 index 00000000000..422f3b45527 --- /dev/null +++ b/libjava/classpath/.cvsignore @@ -0,0 +1,18 @@ +aclocal.m4 +compile +configure +config.guess +config.log +config.cache +config.status +config.sub +config.h.in +config.h +libtool +ltmain.sh +Makefile +Makefile.in +stamp-h +stamp-h.in +autom4te*.cache +install diff --git a/libjava/classpath/.externalToolBuilders/Autogen.launch b/libjava/classpath/.externalToolBuilders/Autogen.launch new file mode 100644 index 00000000000..a6051b111c3 --- /dev/null +++ b/libjava/classpath/.externalToolBuilders/Autogen.launch @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/libjava/classpath/.externalToolBuilders/ClasspathHeaders.launch b/libjava/classpath/.externalToolBuilders/ClasspathHeaders.launch new file mode 100644 index 00000000000..0c8481719eb --- /dev/null +++ b/libjava/classpath/.externalToolBuilders/ClasspathHeaders.launch @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/libjava/classpath/.externalToolBuilders/ClasspathJar.launch b/libjava/classpath/.externalToolBuilders/ClasspathJar.launch new file mode 100644 index 00000000000..269e62c0e63 --- /dev/null +++ b/libjava/classpath/.externalToolBuilders/ClasspathJar.launch @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/libjava/classpath/.externalToolBuilders/CompileNative.launch b/libjava/classpath/.externalToolBuilders/CompileNative.launch new file mode 100644 index 00000000000..c6a6b9f06a9 --- /dev/null +++ b/libjava/classpath/.externalToolBuilders/CompileNative.launch @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/libjava/classpath/.externalToolBuilders/Configure.launch b/libjava/classpath/.externalToolBuilders/Configure.launch new file mode 100644 index 00000000000..d2347ae8428 --- /dev/null +++ b/libjava/classpath/.externalToolBuilders/Configure.launch @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/libjava/classpath/.externalToolBuilders/CreateLocaleData.launch b/libjava/classpath/.externalToolBuilders/CreateLocaleData.launch new file mode 100644 index 00000000000..0610d24a561 --- /dev/null +++ b/libjava/classpath/.externalToolBuilders/CreateLocaleData.launch @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/libjava/classpath/.project b/libjava/classpath/.project new file mode 100644 index 00000000000..ebc689daf2f --- /dev/null +++ b/libjava/classpath/.project @@ -0,0 +1,77 @@ + + + classpath + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Autogen.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Configure.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/CreateLocaleData.launch + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/ClasspathHeaders.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/CompileNative.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/ClasspathJar.launch + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/libjava/classpath/.settings/org.eclipse.jdt.core.prefs b/libjava/classpath/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..812e62a8400 --- /dev/null +++ b/libjava/classpath/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,243 @@ +#Tue Feb 07 05:21:36 EST 2006 +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line_shifted +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0 +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=17 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=17 +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line_shifted +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=18 +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=18 +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.blank_lines_before_package=2 +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=82 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=18 +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=18 +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=insert +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false diff --git a/libjava/classpath/.settings/org.eclipse.jdt.ui.prefs b/libjava/classpath/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000000..e03780f20c3 --- /dev/null +++ b/libjava/classpath/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,12 @@ +#Tue Jan 11 17:36:31 MST 2005 +comment_format_source_code=true +comment_new_line_for_parameter=true +comment_format_html=true +comment_line_length=80 +comment_format_header=false +eclipse.preferences.version=1 +comment_indent_parameter_description=true +comment_format_comments=true +comment_separate_root_tags=true +comment_clear_blank_lines=true +comment_indent_root_tags=true diff --git a/libjava/classpath/AUTHORS b/libjava/classpath/AUTHORS index 5dd3eab469b..4efc086df61 100644 --- a/libjava/classpath/AUTHORS +++ b/libjava/classpath/AUTHORS @@ -9,6 +9,7 @@ Anthony Balkissoon (abalkiss@redhat.com) Stuart Ballard (stuart.a.ballard@gmail.com) Mark Benvenuto (mcb54@columbia.edu) Gary Benson (gbenson@redhat.com) +Tania Bento (tbento@redhat.com) Geoff Berry (gcb@gnu.org) James E. Blair (corvus@gnu.org) Eric Blake (ebb9@email.byu.edu) @@ -17,16 +18,19 @@ Chris Burdess (dog@gnu.org) David Daney (ddaney@avtrex.com) Nic Ferrier (nferrier@tapsellferrier.co.uk) Paul Fisher (rao@gnu.org) +Thomas Fitzsimmons (fitzsim@redhat.com) +Jeroen Frijters (jeroen@frijters.net) David Gilbert (david.gilbert@object-refinery.com) Anthony Green (green@redhat.com) Jochen Hoenicke (Jochen.Hoenicke@Informatik.Uni-Oldenburg.de) -Kazumitsu Ito (kaz@maczuka.gcd.org) Andrew John Hughes (gnu_andrew@member.fsf.org) +Kazumitsu Ito (kaz@maczuka.gcd.org) Olivier Jolly (olivier.jolly@pcedev.com) Brian Jones (cbj@gnu.org) -Roman Kennke (roman@kennke.org) -Michael Koch (konqueror@gmx.de) John Keiser (jkeiser@iname.com) +Roman Kennke (roman@kennke.org) +Michael Koch (konqueror@gmx.de) +Francis Kung (fkung@redhat.com) John Leuner (jewel@debian.org) Warren Levy (warrenl@cygnus.com) Sven de Marothy (sven@physto.se) @@ -37,6 +41,9 @@ Raif S. Naffah (raif@swiftdsl.com.au) Aaron M. Renn (arenn@urbanophile.com) Andrew Selkirk (aselkirk@sympatico.ca) Christian Thalinger (twisti@complang.tuwien.ac.at) +Andreas Tobler (a.tobler@schweiz.org) +Mario Torre (neugens@limasoftware.net) +Dalibor Topic (robilad@kaffe.org) Tom Tromey (tromey@cygnus.com) Ronald Veldema (rveldema@cs.vu.nl) Mark Wielaard (mark@klomp.org) diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index 13eda590a7f..83de49090b6 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -1,50 +1,9047 @@ -2006-08-02 Sven de Marothy +2006-12-14 Andrew Haley + + * tools/gnu/classpath/tools/jar/Creator.java: Close the + inputStream. + +2006-10-12 Andrew Haley + + * java/lang/InheritableThreadLocal.java: Rename NULL to sentinel. + * java/lang/ThreadLocal.java: Likewise. + +2006-09-13 Andrew Haley + + * external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java: + Revert previous gcj-specific disabling of checks. + * external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java: + Likewise. + * classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java: + Likewise. + +2006-09-13 Andrew Haley + + * java/util/PriorityQueue.java: Throw IllegalArgumentException for + capacity < 1. + (Iterator.remove()): Decrement index after removing element. + +2006-12-11 Jeroen Frijters + + * javax/net/ssl/SSLSocketFactory.java (getDefault): + Chain exception cause. + +2006-12-11 Roman Kennke + + * .classpath: Include ASM in Eclipse classpath. + +2006-12-11 Andrew John Hughes + + * gnu/java/lang/management/BeanImpl.java: + (translate(String)): Trim strings of whitespace. + * javax/management/MBeanAttributeInfo.java: + (MBeanAttributeInfo(String,String,Method,Method)): + Use Class.getName() for normal (non-parameterized) cases. + * javax/management/MBeanConstructorInfo.java: + (MBeanConstructorInfo(String, Constructor)): + Likewise. + * javax/management/MBeanOperationInfo.java: + (MBeanOperationInfo(String, Method)): + Likewise. + +2006-12-11 Andrew John Hughes + + * java/lang/Class.java: + (getClasses()): Return Class[]. + (internalGetClasses()): Likewise. + (getConstructor(Class...)): Add type parameter + to parameters. + (getDeclaredConstructor(Class...)): Likewise. + (getDeclaredClasses()): Return Class[]. + (getDeclaredClasses(boolean)): Likewise. + (getDeclaredConstructors()): Return Constructor[]. + (getDeclaredConstructors(boolean)): Likewise. + (getDeclaredMethod(String,Class...)): Add type + parameter to parameters. + (getInterfaces()): Return Class[]. + (getMethods(String,Class...)): Add type + parameter to parameters. + * java/text/CollationKey.java: + Make non-final. + * java/text/DecimalFormatSymbols.java: + Likewise. + +2006-12-11 Andrew John Hughes + + * gnu/java/lang/management/BeanImpl.java: + (translate(String)): Handle Map and List as + Strings of the form "java.util.Map" and + "java.util.List" + * javax/management/MBeanAttributeInfo.java: + (MBeanAttributeInfo(String,String,Method,Method)): + Use generic parameter and return types. + * javax/management/MBeanConstructorInfo.java: + (MBeanConstructorInfo(String, Constructor)): + Use generic parameter types. + * javax/management/MBeanOperationInfo.java: + (MBeanOperationInfo(String, Method)): + Use generic parameter and return types. + +2006-12-10 Andrew John Hughes + + * gnu/java/lang/management/BeanImpl.java: + (translate(String)): Comment out code for using type + variables for Map and List. + * java/lang/Thread.java: + (Thread(ThreadGroup,Runnable,String,long)): Fix + incrementation of totalThreadsCreated to be prior to use. + +2006-12-10 Andrew John Hughes + + * javax/management/MBeanServerFactory.java: + (createMBeanServer(String)): Added security check. + (findMBeanServer(String)): Likewise. + (newMBeanServer(String)): Likewise. + (releaseMBeanServer(String)): Likewise. + * javax/management/MBeanServerPermission.java: + New file. + +2006-12-08 David Daney + + * native/jni/java-nio/gnu_java_nio_VMChannel.c (is_non_blocking_fd): + Fix comment. + +2006-12-08 David Daney + + * NEWS: Mention URLConnection.[get|set]ReadTimeout. + +2006-12-08 David Daney + + * gnu/java/net/protocol/http/HTTPConnection.java (imports): Add + SocketException. + (HTTPConnection): Handle NumberFormatException in properties parsing. + (Pool.get): Set timeout on reused sockets. + * gnu/java/net/protocol/http/HTTPURLConnection.java (proxyPort): + Initialize. + (HTTPURLConnection): Cleanup properties handling. + (getConnection): Use both connection and read timeouts. + (setConnectTimeout): Removed. + (setReadTimeout): New method. + * java/net/URLConnection.java (timeout): Renamed to... + (connectTimeout): ... connectTimeout throughout. + (readTimeout): New field. + (getReadTimeout): New method. + (setReadTimeout): New method. + +2006-12-08 Tania Bento + + * java/awt/ScrollPane.java + (doLayout): Change the location of the scrollpane's child + to (0, 0). + +2006-12-08 David Daney + + * native/jni/java-nio/gnu_java_nio_VMChannel.c (is_non_blocking_fd): + New method. + (Java_gnu_java_nio_VMChannel_read__ILjava_nio_ByteBuffer_2): Throw + SocketTimeoutException if a blocking socket timesout. + (Java_gnu_java_nio_VMChannel_readScattering): Same. + (Java_gnu_java_nio_VMChannel_read__I): Same. + (Java_gnu_java_nio_VMChannel_connect): Initialize the fd set. + (Java_gnu_java_nio_VMChannel_connect6): Same. + +2006-12-08 Mark Wielaard + + * configure.ac (VERSION): Set to 0.93-generics. + * NEWS: Add release date. + +2006-12-08 Tania Bento + + * java/awt/ScrollPane.java + (getScrollPosition): Throw NullPointerException if scrollpane + does have a child. + (setScrollPosition(int, int)): Throw NullPointerException if + scrollpane does have a child. Check that both ints are within + the allowed bounds; If they are not, scroll to the closest allowed + bound. + +2006-12-07 Roman Kennke + + * javax/swing/JEditorPane.java + (EditorKitMapping): New inner helper class. + (editorKits): New static field for caching editor kit instances. + (static_initiazer): Initialize static mappings here. + (createEditorKitForContentType): Try to use cached instance. + Use correct classloader for loading. + (getEditorKitClassNameForContentType): Make use of EditorKitMapping + class. + (getEditorKitForContentType): Store the fetched editor kit. + Fallback to createDefaultEditorKit(). + (init): Don't clean the static registry here. + (registerEditorKitForContentType(String,String,ClassLoader)): + Implemented. + (registerEditorKitForContentType(String,String)): Delegate to + the other version of this method with the thread's context + classloader. + +2006-12-07 Mark Wielaard + + * examples/gnu/classpath/examples/swing/HtmlDemo.java + (setPage): Don't convert URL to String for setPage(). + +2006-12-07 Mark Wielaard + + * tools/Makefile.am (clean-local): Remove iasm and asm.lst. + +2006-12-07 Mark Wielaard + + * tools/Makefile.am: Explicitly define and use bootclasspath as + GLIBJ_BOOTCLASSPATH + +2006-12-07 Mark Wielaard + + * javax/swing/JEditorPane.java (createEditorKitForContentType): + Always load from system class loader. + +2006-12-07 Mark Wielaard + + * java/net/URL.java (URL(URL,String,URLStreamHandler,boolean)): New + private constructor. + (URL(URL,String,URLStreamHandler)): Call new constructor. + (URL(URL,String)): Likewise. + (URL(String)): Likewise. + +2006-12-07 Tom Tromey + + * NEWS: Mention ASM. + * INSTALL: Don't mention --with-asm. + * tools/external/README: New file. + * tools/toolwrapper.c (main): Don't use ASM_JAR. + * tools/gjavah.in: Don't use PATH_TO_ASM. + * tools/grmic.in: Likewise. + * tools/Makefile.am (GLIBJ_CLASSPATH): Removed PATH_TO_ASM, added + 'asm'. + (javah, rmic): Removed variables. + (bin_PROGRAMS): Updated. + (gappletviewer_CFLAGS): Don't define ASM_JAR. + (gjarsigner_CFLAGS): Likewise. + (gkeytool_CFLAGS): Likewise. + (gjar_CFLAGS): Likewise. + (gnative2ascii_CFLAGS): Likewise. + (gserialver_CFLAGS): Likewise. + (grmiregistry_CFLAGS): Likewise. + (gtnameserv_CFLAGS): Likewise. + (gorbd_CFLAGS): Likewise. + (grmid_CFLAGS): Likewise. + (gjavah_CFLAGS): Likewise. + (grmic_CFLAGS): Likewise. + (bin_SCRIPTS): Updated. + (TOOLS_JAVA_FILES): Updated. + ($(TOOLS_ZIP)): Compile ASM sources. Copy resource files. + * configure.ac: Removed --with-asm. Always build gjavah. + +2006-12-06 Roman Kennke + + * examples/gnu/classpath/examples/swing/BrowserEditorKit.java: + New class. + * examples/gnu/classpath/examples/swing/HtmlDemo.java + (LoadActionListener): Call setPage() helper method. + (createContent): Register tweaked editor kit. For FormSubmitEvents + call submitForm(), otherwise setPage(). + (postData): Helper method for posting form data. + (setPage): Helper method for navigating to a new URL. + (submitForm): Helper method for submitting a form. + * examples/gnu/classpath/examples/swing/forms.html: + Added text/password fields and select boxes. + * examples/gnu/classpath/examples/swing/welcome.html: Fixed typo. + +2006-12-06 Roman Kennke + + * javax/swing/text/html/FormView.java + (SubmitThread.postData): Implemented. + (SubmitThread.run): Pass data to postData(). + (actionPerformed): Reset form when reset button is activated. + (createComponent): Add support for select lists and comboboxes. + Don't set value of text and password fields here, this is done + now in HTMLDocument for consistency. + (getElementFormData): Add support for fetching form data from + select lists and comboboxes as well as textareas. + (getSelectData): New helper method. Fetches form data from + select boxes. + (getTextAreaData): New helper method. Fetches form data from + textareas. + (resetForm): New helper method. Resets the entire form. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.FormAction.end): Handle SELECT and OPTION tags. + (HTMLReader.FormAction.start): Handle SELECT and OPTION tags. + (HTMLReader.FormAction.setModel): Initialize text and password + values here. Also, use the resetable special models. + Group radio buttons into ButtonGroup for exclusive selection. + (HTMLReader.FormTagAction): New class. Handles FORM tags. + (HTMLReader.buttonGroups): New field. + (HTMLReader.numOptions): New field. + (HTMLReader.option): New field. + (HTMLReader.selectModel): New field. + (HTMLReader.textAreaDocument): Make ResetablePlainDocument. + (HTMLReader.handleText): Handle OPTION text. + (HTMLReader.initTags): Map FORM tags to FormTagAction. + (HTMLReader.textAreaContent): Set initial content. + * javax/swing/text/html/Option.java + (Option): Make copy of attribute set. Initialize selected state. + (getValue): Fetch value from attribute set. + * javax/swing/text/html/ResetableModel.java: New interface. + * javax/swing/text/html/ResetablePlainDocument.java: New class. + Supports resetting the state. + * javax/swing/text/html/ResetableToggleButtonModel.java: Likewise. + * javax/swing/text/html/SelectComboBoxModel.java: Likewise. + * javax/swing/text/html/SelectListModel.java: Likewise. + +2006-12-06 Roman Kennke + + * javax/swing/text/DefaultCaret.java + (appear): Adjust visibility here. + (setDotImpl): Don't adjust visibility here. + (moveDotImpl): Don't adjust visibility here. + +2006-12-06 Roman Kennke + + * gnu/java/awt/peer/gtk/AsyncImage.java + (Loader.run): Synchronize on the AsyncImage to avoid threading + issues. + (addObservers): Check for obs==null outside and synchronize on + this inside to avoid locking issues. + (checkImage): New helper method. + (notifyObservers): Check that the correct lock is held and + remove actual locking. + * gnu/java/awt/peer/gtk/GtkToolkit.java + (checkImage): Added special handling for AsyncImages. + +2006-12-06 Roman Kennke + + * examples/gnu/classpath/examples/swing/Demo.java + (getIcon): Made package private. + * examples/gnu/classpath/examples/swing/HtmlDemo.java + (hyperlinkUpdate): Convert URL to string. + +2006-12-06 Mark Wielaard + + * gnu/java/awt/peer/gtk/AsyncImage.java (addObserver): Never notify + null Observer. + +2006-12-06 Roman Kennke + + * examples/gnu/classpath/examples/icons/back.png, + * examples/gnu/classpath/examples/icons/reload.png: + New icons for the HTML browser. + * examples/gnu/classpath/examples/swing/HtmlDemo.java + (history): New field. Manages the browsing history. + (HtmlDemo): Initialize history. + (createContent): Set location and add history. Add toolbar. + (createToolBar): New helper method. + (main): Make default size bigger. + * examples/gnu/classpath/examples/swing/frame1.html, + * examples/gnu/classpath/examples/swing/frame2.html, + * examples/gnu/classpath/examples/swing/frame3.html, + * examples/gnu/classpath/examples/swing/frame4.html, + * examples/gnu/classpath/examples/swing/frames.html, + * examples/gnu/classpath/examples/swing/tables.html: + New example pages. + * examples/gnu/classpath/examples/swing/welcome.html + Add a couple of links and new test pages. + +2006-12-06 Roman Kennke + + * javax/swing/JEditorPane.java + (getStream): Buffer the stream for efficiency. + (setPage): Don't scroll the view at this point. + * javax/swing/plaf/basic/BasicTextUI.java + (RootView.paint): Call RootView's setSize to get synchronization. + (RootView.setSize): Synchronize to prevent race in layout code. + * javax/swing/text/AbstractDocument.java + (notifyListeners): New field. + (fireChangedUpdate): Track notifyListener field. + (fireRemoveUpdate): Track notifyListener field. + (fireIndertUpdate): Track notifyListener field. + (writeLock): Check notifyListener and throw IllegalStateException. + * javax/swing/text/View.java + (preferenceChanged): Create local var for better thread safety and + more efficiency. + +2006-12-06 Thomas Fitzsimmons + + * java/awt/ScrollPane.java (addNotify): Add a parent panel for any + lightweight component, not just for non-Panel components. + (addImpl): Do not call doLayout. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c + (setNativeBounds): Ensure widget parent is a GtkFixed before + calling gtk_fixed_move. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c + (setNativeBounds): Likewise. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c + (setNativeBounds): Likewise. + +2006-12-06 Roman Kennke + + * javax/swing/text/html/TableView.java + (RowView.layoutMajorAxis): Check column index for invalid value. + (updateGrid): Check column index for invalid value. + +2006-12-06 Roman Kennke + + * javax/swing/text/html/BlockView.java + (getAlignment): Align blocks horizontally by the superclass. + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Replace equals comparison by == for efficiency. + Add mapping for misplaced tr, td and th tags. Include object mapping. + * javax/swing/text/html/TableView.java + (RowView.replace): Invalidate grid early. + (gridValid): Initialize with false. + (create): Only create RowView and CellView for correctly placed + tags. Avoid unnecessary casts. + (getAlignment): Removed. + (replace): Invalidate grid early. + +2006-12-06 Francis Kung + + * java/awt/geom/RectangularShape.java + (getBounds): Remove empty rectangle check. + +2006-12-06 Ben Konrath + + Fixes PR 29853. + * gnu/xml/dom/DomAttr.java: Don't report mutation if oldValue and + newValue are the same. + * gnu/xml/dom/DomNode.java: Set parent if null during mutation. + +2006-12-06 Tania Bento + + * javax/swing/border/CompoundBorder.java: + (isBorderOpaque): If inside border is null, return true if outside + border is opaque, false otherwise; if outside border is null, return + true if inside border is opaque, false otherwise; if inside or + outside border are both not null, then return true only if both the + inside and outside border are opaque, false otherwise. + +2006-12-06 Tania Bento + + * javax/swing/border/CompoundBorder.java: + (isBorderOpaque): If inside and outside border both have a null + value, return true. + +2006-12-06 Chris Burdess + + Fixes PR 29272. + * javax/xml/parsers/DocumentBuilderFactory.java: Fix broken Javadoc. + * gnu/xml/stream/SAXParser.java: Fix file descriptor leak. + +2006-12-06 Chris Burdess + + Fixes PR 29264. + * gnu/xml/stream/XMLStreamWriterImpl.java: Allow arbitrary text in + writeDTD method. + +2006-12-06 Chris Burdess + + Fixes PR 28816. + * javax/xml/validation/SchemaFactory.java: Use correct algorithm to + discover schema factory implementation class. + +2006-12-05 Francis Kung + + * java/awt/BasicStroke.java + (capEnd): Prevent division by zero. + * java/awt/geom/Arc2D.java + (ArcIterator.ArcIterator): Do not shift the arc to make the extent positive. + (ArcIterator.currentSegment): Handle a negative extent. + +2006-12-05 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (constructor): Handle translated subimages properly, ie, if the image's + 0,0 position is not the data buffer's first element. + +2006-12-05 Roman Kennke + + * gnu/java/awt/peer/gtk/AsyncImage.java + (Loader.run): Nullify observers after loading. + (observers): Made package private. + (addObserver): Check for null observers field. Create local + variable for thread safety. + (getHeight): Use addObserver() for checking state of field + and notifying observer when necessary. + (getWidth): Use addObserver() for checking state of field + and notifying observer when necessary. + (getProperty): Use addObserver() for checking state of field + and notifying observer when necessary. + (notifyObservers): Check for null observers field. Create local + variable for thread safety. + +2006-12-05 Roman Kennke + + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Removed debug output. + * javax/swing/text/html/InlineView.java + (getBreakWeight): Likewise. + * javax/swing/text/html/StyleSheet.java + (addRule): Likewise. + (ListPainter.paint): Removed debug output. + +2006-12-05 Roman Kennke + + * javax/swing/text/html/BlockView.java + (painter): Made package visible. + * javax/swing/text/html/StyleSheet.java + (translateBorder): New helper method. + (translateHTMLToCSS): Add mappings for border attributes. + * javax/swing/text/html/TableView.java + Made class subclass of BlockView to get CSS goodness. + (CellView.rowSpan): New field. + (CellView.setPropertiesFromAttributes): Fetch rowspan. + (RowView.overlap): New field. + (RowView.rowIndex): New field. + (RowView.layoutMajorAxis): Skip overlapping cells. + (RowView.layoutMinorAxis): Layout cells that span more than 1 row. + (numColumns): New field. + (tmpRect): New field. + (TableView): Initialize tmpRect. + (calculateColumnRequirements): Adjusted and fixed for multirows. + (getAlignment): Overridden to center tables. + (paint): Overridden to fix clipping. + (getStyleSheet): Made protected. + (layoutMajorAxis): Invalidate rows. + (setPropertiesFromAttributes): Made protected and call super. + (updateGrid): Update the overlapping information for multirows. + +2006-12-05 Roman Kennke + + * gnu/java/awt/peer/gtk/AsyncImage.java + (addObserver): Check for null and ignore null observers. + (getWidth): Check for null and ignore null observers. + (getHeight): Check for null and ignore null observers. + (getProperty): Check for null and ignore null observers. + +2006-12-05 Francis Kung + + * java/awt/BasicStroke.java + (capEnd): Prevent division by zero. + * java/awt/geom/Arc2D.java + (ArcIterator.ArcIterator): Do not shift the arc to make the extent positive. + (ArcIterator.currentSegment): Handle a negative extent. + +2006-12-05 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (constructor): Handle translated subimages properly, ie, if the image's + 0,0 position is not the data buffer's first element. + +2006-12-05 Roman Kennke + + * javax/swing/text/html/ImageView.java + (imageUpdate): Use spans field to determine if the CSS width/height + are set. Call safePreferenceChanged to protect view structure + from threading issues. + (spans): Made package private. + (ImageView): Initialize loadOnDemand with false. + (loadImage): Call Toolkit.prepareImage() to make sure we have + our Observer registered. + (safePreferenceChanged): New helper method. Calls preferenceChanged + in a thread safe environment. + +2006-12-05 Roman Kennke + + * NEWS: Add entry about improved HTML support. + +2006-12-05 Roman Kennke + + * javax/swing/text/html/ImageView.java + (ImageView): Initialize spans array here. + (setPropertiesFromAttributes): Moved init of spans array to + constructor. + +2006-12-05 Roman Kennke + + * javax/swing/text/html/BlockView.java + (painter): Made package visible. + * javax/swing/text/html/StyleSheet.java + (translateBorder): New helper method. + (translateHTMLToCSS): Add mappings for border attributes. + * javax/swing/text/html/TableView.java + Made class subclass of BlockView to get CSS goodness. + (CellView.rowSpan): New field. + (CellView.setPropertiesFromAttributes): Fetch rowspan. + (RowView.overlap): New field. + (RowView.rowIndex): New field. + (RowView.layoutMajorAxis): Skip overlapping cells. + (RowView.layoutMinorAxis): Layout cells that span more than 1 row. + (numColumns): New field. + (tmpRect): New field. + (TableView): Initialize tmpRect. + (calculateColumnRequirements): Adjusted and fixed for multirows. + (getAlignment): Overridden to center tables. + (paint): Overridden to fix clipping. + (getStyleSheet): Made protected. + (layoutMajorAxis): Invalidate rows. + (setPropertiesFromAttributes): Made protected and call super. + (updateGrid): Update the overlapping information for multirows. + +2006-12-05 Roman Kennke + + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Removed debug output. + * javax/swing/text/html/InlineView.java + (getBreakWeight): Likewise. + * javax/swing/text/html/StyleSheet.java + (addRule): Likewise. + (ListPainter.paint): Removed debug output. + +2006-12-06 Roman Kennke + + * javax/swing/text/html/BlockView.java + (getAlignment): Align blocks horizontally by the superclass. + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Replace equals comparison by == for efficiency. + Add mapping for misplaced tr, td and th tags. Include object mapping. + * javax/swing/text/html/TableView.java + (RowView.replace): Invalidate grid early. + (gridValid): Initialize with false. + (create): Only create RowView and CellView for correctly placed + tags. Avoid unnecessary casts. + (getAlignment): Removed. + (replace): Invalidate grid early. + + +2006-12-06 Roman Kennke + + * javax/swing/text/html/TableView.java + (RowView.layoutMajorAxis): Check column index for invalid value. + (updateGrid): Check column index for invalid value. + +2006-12-06 Roman Kennke + + * javax/swing/JEditorPane.java + (getStream): Buffer the stream for efficiency. + (setPage): Don't scroll the view at this point. + * javax/swing/plaf/basic/BasicTextUI.java + (RootView.paint): Call RootView's setSize to get synchronization. + (RootView.setSize): Synchronize to prevent race in layout code. + * javax/swing/text/AbstractDocument.java + (notifyListeners): New field. + (fireChangedUpdate): Track notifyListener field. + (fireRemoveUpdate): Track notifyListener field. + (fireIndertUpdate): Track notifyListener field. + (writeLock): Check notifyListener and throw IllegalStateException. + * javax/swing/text/View.java + (preferenceChanged): Create local var for better thread safety and + more efficiency. + +2006-12-06 Roman Kennke + + * examples/gnu/classpath/examples/icons/back.png, + * examples/gnu/classpath/examples/icons/reload.png: + New icons for the HTML browser. + * examples/gnu/classpath/examples/swing/HtmlDemo.java + (history): New field. Manages the browsing history. + (HtmlDemo): Initialize history. + (createContent): Set location and add history. Add toolbar. + (createToolBar): New helper method. + (main): Make default size bigger. + * examples/gnu/classpath/examples/swing/frame1.html, + * examples/gnu/classpath/examples/swing/frame2.html, + * examples/gnu/classpath/examples/swing/frame3.html, + * examples/gnu/classpath/examples/swing/frame4.html, + * examples/gnu/classpath/examples/swing/frames.html, + * examples/gnu/classpath/examples/swing/tables.html: + New example pages. + * examples/gnu/classpath/examples/swing/welcome.html + Add a couple of links and new test pages. + +2006-12-06 Roman Kennke + + * examples/gnu/classpath/examples/swing/Demo.java + (getIcon): Made package private. + * examples/gnu/classpath/examples/swing/HtmlDemo.java + (hyperlinkUpdate): Convert URL to string. + +2006-12-06 Roman Kennke + + * javax/swing/text/DefaultCaret.java + (appear): Adjust visibility here. + (setDotImpl): Don't adjust visibility here. + (moveDotImpl): Don't adjust visibility here. + +2006-12-06 Roman Kennke + + * javax/swing/text/html/FormView.java + (SubmitThread.postData): Implemented. + (SubmitThread.run): Pass data to postData(). + (actionPerformed): Reset form when reset button is activated. + (createComponent): Add support for select lists and comboboxes. + Don't set value of text and password fields here, this is done + now in HTMLDocument for consistency. + (getElementFormData): Add support for fetching form data from + select lists and comboboxes as well as textareas. + (getSelectData): New helper method. Fetches form data from + select boxes. + (getTextAreaData): New helper method. Fetches form data from + textareas. + (resetForm): New helper method. Resets the entire form. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.FormAction.end): Handle SELECT and OPTION tags. + (HTMLReader.FormAction.start): Handle SELECT and OPTION tags. + (HTMLReader.FormAction.setModel): Initialize text and password + values here. Also, use the resetable special models. + Group radio buttons into ButtonGroup for exclusive selection. + (HTMLReader.FormTagAction): New class. Handles FORM tags. + (HTMLReader.buttonGroups): New field. + (HTMLReader.numOptions): New field. + (HTMLReader.option): New field. + (HTMLReader.selectModel): New field. + (HTMLReader.textAreaDocument): Make ResetablePlainDocument. + (HTMLReader.handleText): Handle OPTION text. + (HTMLReader.initTags): Map FORM tags to FormTagAction. + (HTMLReader.textAreaContent): Set initial content. + * javax/swing/text/html/Option.java + (Option): Make copy of attribute set. Initialize selected state. + (getValue): Fetch value from attribute set. + * javax/swing/text/html/ResetableModel.java: New interface. + * javax/swing/text/html/ResetablePlainDocument.java: New class. + Supports resetting the state. + * javax/swing/text/html/ResetableToggleButtonModel.java: Likewise. + * javax/swing/text/html/SelectComboBoxModel.java: Likewise. + * javax/swing/text/html/SelectListModel.java: Likewise. + +2006-12-06 Roman Kennke + + * examples/gnu/classpath/examples/swing/BrowserEditorKit.java: + New class. + * examples/gnu/classpath/examples/swing/HtmlDemo.java + (LoadActionListener): Call setPage() helper method. + (createContent): Register tweaked editor kit. For FormSubmitEvents + call submitForm(), otherwise setPage(). + (postData): Helper method for posting form data. + (setPage): Helper method for navigating to a new URL. + (submitForm): Helper method for submitting a form. + * examples/gnu/classpath/examples/swing/forms.html: + Added text/password fields and select boxes. + * examples/gnu/classpath/examples/swing/welcome.html: Fixed typo. + +2006-12-07 Mark Wielaard + + * java/net/URL.java (URL(URL,String,URLStreamHandler,boolean)): New + private constructor. + (URL(URL,String,URLStreamHandler)): Call new constructor. + (URL(URL,String)): Likewise. + (URL(String)): Likewise. + +2006-12-07 Mark Wielaard + + * javax/swing/JEditorPane.java (createEditorKitForContentType): + Always load from system class loader. + +2006-12-06 Ben Konrath + + Fixes PR 29853. + * gnu/xml/dom/DomAttr.java: Don't report mutation if oldValue and + newValue are the same. + * gnu/xml/dom/DomNode.java: Set parent if null during mutation. + +2006-12-06 Chris Burdess + + Fixes PR 29272. + * javax/xml/parsers/DocumentBuilderFactory.java: Fix broken Javadoc. + * gnu/xml/stream/SAXParser.java: Fix file descriptor leak. + +2006-12-06 Chris Burdess + + Fixes PR 29264. + * gnu/xml/stream/XMLStreamWriterImpl.java: Allow arbitrary text in + writeDTD method. + +2006-12-056 Chris Burdess + + Fixes PR 28816. + * javax/xml/validation/SchemaFactory.java: Use correct algorithm to + discover schema factory implementation class. + +2006-12-05 Roman Kennke + + * gnu/java/awt/peer/gtk/AsyncImage.java: New class. Supports + asynchronous loading of images. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawImage): Fetch real image from possibly AsyncImage. + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (drawImage): Fetch real image from possibly AsyncImage. + * gnu/java/awt/peer/gtk/GtkToolkit.java + (createImage(URL)): Create async image. + (imageOrError): Made method static for easy access from AsyncImage. + (prepareImage): For async images, register the observer to the + image. + +2006-12-05 Roman Kennke + + (paintComponent): Include paint area from event. + (updateComponent): Include paint area from event. + +2006-12-06 Thomas Fitzsimmons + + * java/awt/ScrollPane.java (addNotify): Add a parent panel for any + lightweight component, not just for non-Panel components. + (addImpl): Do not call doLayout. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c + (setNativeBounds): Ensure widget parent is a GtkFixed before + calling gtk_fixed_move. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c + (setNativeBounds): Likewise. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c + (setNativeBounds): Likewise. + +2006-12-04 Thomas Fitzsimmons + + * java/awt/Component.java (getFontImpl): Return a default font if + topmost parent's font is null. + +2006-12-04 Mark Wielaard + + * javax/swing/text/html/CSS.java (parseMarginShorthand): + Remove debug output. + +2006-12-04 Roman Kennke + + * java/awt/font/TextLayout.java + (hitTestChar): Fixed conditions for inclusion of range. + Use layout information in the run for more efficiency. + +2006-12-04 Roman Kennke + + * javax/swing/text/GlyphView.java + (J2DGlyphPainter): New inner class. + (checkPainter): For Java2D capable environments create + a J2DGlyphPainter. + +2006-12-04 Roman Kennke + + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (FreeTypeGlyphVector): Don't filter control chars here. + (getGlyphs): Filter control chars and replace them by + hair space char. + +2006-12-04 Roman Kennke + + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_connect): Retry on EINTR. + +2006-12-04 Andrew John Hughes + + * gnu/java/lang/management/BeanImpl.java: + (translate(String)): Don't assume the list uses "E", + just use the first and only type variable. + * java/lang/management/ManagementFactory.java: + (getPlatformMBeanServer()): Register logging bean. + * javax/management/openmbean/OpenType.java: + (OpenType(String,String,String)): Actually use + the string created to handle arrays. + +2006-12-04 Mark Wielaard + + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (JCL_thread_interrupted): Use CallStaticBooleanMethod. + +2006-12-04 Mark Wielaard + + * vm/reference/gnu/java/nio/VMChannel.java (isThreadInterrupted): + Make static. + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (JCL_thread_interrupted): Only take JNIEnv. + (vm_channel_class): New static variable. + (initID): Set vm_channel_class. + Wrap all reads() and writes() in do-while blocks that check + interrupted status. + +2006-12-04 Andrew John Hughes + + * gnu/javax/management/Server.java: + Make map final and initialise it. + (unregisterMBean(ObjectName)): Match against + delegate's object name and not the instance. + * java/lang/management/ManagementFactory.java: + Added constant fields. + (getPlatformMBeanServer()): Implemented. + * javax/management/MBeanServerFactory.java: New file. + +2006-12-04 Roman Kennke + + * javax/swing/text/BoxView.java + (paint): Replaced painting algorithm with more simple and more + reliable painting of the box. + * javax/swing/text/html/BlockView.java + (PositionInfo): New inner class. Stores additional CSS + positioning information. + (positionInfo): New field. + (BlockView): Initialize positionInfo field. + (fetchLayoutInfo): New helper method. Fetches additional + CSS positioning information. + (layoutMajorAxis): Perform additional CSS layout. + (layoutMinorAxis): Perform additional CSS layout. + (positionView): New helper method. + (replace): Overridden to fetch additional layout information. + * javax/swing/text/html/CSS.java + (Attribute.POSITION): New field. + (Attribute.LEFT): New field. + (Attribute.RIGHT): New field. + (Attribute.TOP): New field. + (Attribute.BOTTOM): New field. + (getValue): Create Length for left, right, top and bottom + attributes. + +2006-12-04 Roman Kennke + + * gnu/javax/swing/text/html/parser/support/Parser.java + (Sgml): Consume any whitespace that immediately follows + and sgml insertion. + (parseDocument): Consume any initial whitespace. + +2006-12-03 Mark Wielaard + + * gnu/javax/management/Server.java (beans): Initialize. + (registerMBean): Don't initialize beans. + +2006-12-03 Mark Wielaard + + * java/util/logging/LogManager.java (getLevelProperty): Check + whether value is null before passing to Level.parse(). + +2006-12-04 Robert Lougher + + * java/lang/management/ThreadInfo.java (ThreadInfo): Check + whether given a null lock and lockOwner. + +2006-12-03 Mark Wielaard + + * javax/swing/JEditorPane.java (PageLoader.in): Made a PageStream. + (PageLoader.page): Made package local. + (PageLoader.run): Don't reset loader. + (PageLoader.cancel): New method. + (loading): Renamed to loader. + (getPage): Return loader.page. + (setPage): Always set loader. Never reset to null. + +2006-12-03 Mark Wielaard + + * javax/swing/plaf/basic/BasicTreeUI.java (paint): Check whether + path[k] is null. + (isLastChild): Return false when path is null. + +2006-12-03 Mark Wielaard + + * gnu/java/awt/peer/gtk/GtkComponentPeer.java (paintArea): Renamed + to currentPaintArea. + (paintComponent): Work with local reference to currentPaintArea. + (updateComponent): Likewise. + (coalescePaintEvent): Set currentPaintArea. + +2006-12-02 Andrew John Hughes + + * javax/management/MBeanServerBuilder.java: New file. + +2006-12-01 Mark Wielaard + + * java/text/DecimalFormat.java (parse): Always increment parsing + index and adjust pos result. + +2006-12-01 Roman Kennke + + * javax/swing/text/html/HTML.java + (Attribute.DYNAMIC_CLASS): New field. + (Attribute.PSEUDO_CLASS): New field. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.CharacterAction.start): Initialize anchor with link + pseudo attribute. + (updateSpecialClass): New helper method. Updates the dynamic + or pseudo class for anchor tags. + * javax/swing/text/html/HTMLEditorKit.java + (LinkController.lastAnchorElement): New field. For tracking + enter/exit of anchors. + (LinkController.activateLink): Set pseudo class to 'visited'. + (LinkController.mouseMoved): Added support for tracking + the 'hover' dynamic class. + * javax/swing/text/html/InlineView.java + (changedUpdate): Fetch new properties. + * javax/swing/text/html/StyleSheet.java + (attributeSetToMap): New helper method. + (getRule): Also append dynamic and pseudo class to key. + (resolveStyle): Resolve style based generally on all attributes. + * javax/swing/text/html/TableView.java + (RowView.layoutMajorAxis): Make sure the grid is valid. + (updateGrid): Made package private. + * gnu/javax/swing/text/html/css/Selector.java + (calculateSpecificity): Added support for dynamic and pseudo classes. + (matches): Changed to operate on general attributes. + Added support for dynamic and pseudo classes. + +2006-12-01 Mario Torre + + * java/text/DecimalFormat.java (formatInternal): move the formatting of + fractional portion in a separate method. + Also fixes the handling of decimal separator and its associated field. + (handleFractionalPart): new method, needed to relax a bit + formatInternal. + +2006-12-01 Andrew John Hughes + + * java/beans/beancontext/BeanContextServicesSupport.java: + (BCSSProxyServiceProvider.getCurrentServiceSelectors(BeanContextServices, + Class)): Implemented. + (BCSSProxyServiceProvider.getService(BeanContextServices, Object, + Class, Object)): Implemented. + (BCSSProxyServiceProvider.releaseService(BeanContextServices, + Object, Object)): Implemented. + (BCSSProxyServiceProvider.serviceRevoked(BeanContextServiceRevokedEvent)): + Implemented. + (initialiseBeanContextResources()): Implemented. + (releaseBeanContextResoures()): Implemented. + +2006-12-01 Mark Wielaard + + * include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Regenerated. + +2006-12-01 Roman Kennke + + * gnu/javax/swing/text/html/css/BorderStyle.java: New class for + handling border styles. + * gnu/javax/swing/text/html/css/BorderWidth.java + (isValid): New method. + * gnu/javax/swing/text/html/css/Length.java + (isValid): New method. + * javax/swing/text/html/CSS.java + (addInternal): Added shorthand parsing for border, padding and + margin. + (parseBackgroundShorthand): Added API docs. + (parsePaddingShorthand): New method. Handles padding shorthand + values. + (parseMarginShorthand): New method. Handles margin shorthand + values. + (parseBorderShorthand): New method. Handles border shorthand + values. + * javax/swing/text/html/StyleSheet.java + (translateHTMLToCSS): Set specific padding attributes. + (BoxPainter.BoxPainter): Don't handle PADDING and MARGIN here. + These shorthands are now handled in CSS. + (BoxPainter.paint): Exclude the outer margin. + +2006-12-01 Roman Kennke + + * gnu/javax/swing/text/html/css/Length.java + (emBase): New field. + (exBase): New field. + (isFontEMRelative): New field. + (isFontEXRelative): New field. + (Length): Recognize and setup EM and EX relative values. + (getValue): Handle EM and EX relative values. + (isEMRelative): New method. + (isEXRelative): New method. + (setEMBase): New method. + (setEXBase): New method. + (setFontBases): New method. + * gnu/javax/swing/text/html/parser/support/Parser.java + (_handleEmptyTag): Use new isBlock() helper method. + (_handleEndTag_remaining): Use new isBlock() helper method. + (_handleStartTag): Consume whitespace after block start tag. + (Comment): Consume whitespace after a comment. + (isBlock): New helper method. + (readAttributes): Consider all characters in unquoted attribute + values. + * javax/swing/text/html/BlockView.java + (layoutMinorAxis): Use cached span value. + (paint): Added debug code (commented out). + (setPropertiesFromAttributes): Set the EM and EX base on lengths. + * javax/swing/text/html/CSSBorder.java + (CSSBorder): Take StyleSheet as argument. Call getBorderWidth() + with stylesheet. + (getBorderWidth): Set the EM and EX base on the length values. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.ParagraphAction.end): Do not set the inParagraph field. + (HTMLReader.ParagraphAction.start): Do not set the inParagraph field. + (HTMLReader.inImpliedParagraph): Removed. + (HTMLReader.inParagraph): Removed. + (HTMLReader.parseStack): New field. + (HTMLReader.addContent): Use new paragraph handling. + (HTMLReader.addSpecialElement): Use new paragraph handling. + (HTMLReader.blockClose): Use new paragraph handling. + (HTMLReader.blockOpen): Use new paragraph handling. + (HTMLReader.inImpliedParagraph): New helper method. + (HTMLReader.inParagraph): New helper method. + * javax/swing/text/html/ImageView.java + (attributes): New field. Caches view attributes. + (spans): New field. Caches CSS spans. + (getAttributes): Correctly setup CSS view attributes. + (getPreferredSpan): Use caches spans. + (getStyleSheet): Use the view's getDocument() method. + (setPropertiesFromAttributes): Cache spans and setup EM and EX. + (updateSize): Use cached spans. + * javax/swing/text/html/ParagraphView.java + (setPropertiesFromAttributes): Setup EM and EX. + * javax/swing/text/html/StyleSheet.java + (BoxPainter.BoxPainter): Setup EM and EX correctly. + (getEMBase): New helper method. + (getEXBase): New helper method. + * javax/swing/text/html/TableView.java + (width): New field. Caches the table width. + (calculateMinorAxisRequirements): Use caches span. + (setPropertiesFromAttributes): Cache span and setup EM/EX. + (updateGrid): Correctly setup EM/EX. + +2006-11-30 Roman Kennke + + * javax/swing/text/html/FormSubmitEvent.java: New class. + * javax/swing/text/html/FormView.java + (SubmitThread): New class for submitting data in a separate thread. + (actionPerformed): Fetch the actual for data. + (addData): New helper method. + (getElementFormData): New helper method. + (getFormData): New helper method. + (getInputFormData): New helper method. + (submitData): Implemented. + * javax/swing/text/html/FrameView.java + (createComponent): Add this as hyperlink listener. + Set the target document as frame document. + (getTopEditorPane): New helper method. + (hyperlinkUpdate): Implementation of the HyperlinkListener interface. + (handleHyperlinkEvent): New helper method. + (handleFormSubmitEvent): New helper method. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.BaseAction.start): Track the base target. + (HTMLReader.BaseAction.end): Removed. + (baseTarget): New field. + (frameDocument): New field. + (getBaseTarget): New property accessor. + (isFrameDocument): New property accessor. + (processHTMLFrameHyperlinkEvent): Implemented. + (setFrameDocument): New property accessor. + (updateFrame): New helper method. + (updateFrameSet): New helper method. + * javax/swing/text/html/HTMLEditorKit.java + (LinkController.createHyperlinkEvent): Handle frame documents. + (autoFormSubmission): New field. + (HTMLEditorKit): Set autoFormSubmission to true. + (isAutoFormSubmission): New property accessor. + (setAutoFormSubmission): New property accessor. + +2006-11-30 Roman Kennke + + * javax/swing/text/ElementIterator.java + (ElementRef): New inner class. + (currentDepth): Removed. + (currentElement): Removed. + (previousItem): Removed. + (stack): New field. Holds the iteration stack. + (state): Removed. + (ElementIterator(Document)): Removed init of removed fields. + (ElementIterator(Element)): Removed init of removed fields. + (current): Changed to stack based algorithm. + (deepestLeaf): New helper method. + (depth): Changed to stack based algorithm. + (first): Changed to stack based algorithm. + (next): Changed to stack based algorithm. + (previous): Changed to stack based algorithm. + +2006-11-30 Francis Kung + + * .settings/org.eclipse.jdt.core.prefs: Set compilar compliance to 1.4. + * .externalToolBuilders/ClasspathJar.launch: Include sun.* classses. + +2006-11-30 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (draw): Set transform in buffered composite. + (drawComposite): Do not transform bounds; round bounds. + (drawGlyphVector): Set transform in buffered composite. + (drawRenderedImage): Set transform in buffered composite. + (fill): Set transform in buffered composite. + (updateBufferedImage): Fix scanline & height calculations. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (createPath): Simplify width & height calculation. + (drawImage): Also transform width & height. + +2006-11-30 Roman Kennke + + * javax/swing/text/html/FrameSetView.java: New class. Implements + HTML framesets. + * javax/swing/text/html/FrameView.java: New class. Implements + HTML frames. + * javax/swing/text/html/HTMLDocument.java: + (HTMLReader.addSpecialElement): Only add one artificial space. + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Uncomment code for FrameSetView and FrameView. + * gnu/javax/swing/text/html/parser/support/Parser.java + (_handleEmptyTag): Also consume whitespace after frame tags. + +2006-11-30 Gary Benson + + * java/lang/Thread.java: Javadoc fixes. + +2006-11-29 Tom Tromey + + PR classpath/28203: + * java/lang/Class.java (getAnnotations): Rewrote. + +2006-11-29 Tania Bento + + * tools/gnu/classpath/tools/appletviewer/TagParser.java: + (parseParams): Unescape 'val' before putting it into the Map. + (unescapeString): New private method. + +2006-11-29 Tom Tromey + + * tools/gnu/classpath/tools/getopt/package.html: New file. + +2006-11-29 David Gilbert + + * javax/swing/plaf/metal/MetalIconFactory.java + (HorizontalSliderThumbIcon.paintIcon()): Commented out gradient paint, + (VerticalSliderThumbIcon.paintIcon()): Likewise. + +2006-11-29 Mario Torre + + * java/text/NumberFormat.java (getCurrencyInstance): Replaced dollar sign + with the default international currency sign \u00A4. + * java/text/DecimalFormat.java (scanFix): Fix to use the localized symbol + table for string formatting. + (formatInternal): likewise. + (scanNegativePattern): likewise. + (applyPattern): likewise. + * java/text/DecimalFormatSymbols.java (clone): Revert to old version as + Locale is immutable and does not need clone. + +2006-11-29 Francis Kung + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawLine): Remove hard-coded pixel shifting. + +2006-11-29 Roman Kennke + + * java/awt/Component.java + (isShowing): Simplified condition code and avoid unnecessary + if-codepaths. + (coalesceEvents): Always coalesce paint events and let the peer + figure out the expanding of the repaint area. + * gnu/java/awt/peer/swing/SwingComponentPeer.java + (currentPaintEvents): Removed. Replaced by paintArea. + (paintArea): New field. Tracks the dirty area. + (SwingComponentPeer): Removed init of currentPaintEvents. + (coalescePaintEvent): Simplified to only union the dirty regions. + (handleEvent): Paint dirty region that was tracked in paintArea. + * gnu/java/awt/peer/gtk/GtkComponentPeer.java + (paintArea): New field. Tracks the dirty region. + (coalescePaintEvent): Implemented to track the dirty region. + (paintComponent): Use the dirty region in paintArea. Protect + state by putting the paint and dispose code in a try-finally. + (updateComponent): Use the dirty region in paintArea. Protect + state by putting the paint and dispose code in a try-finally. + +2006-11-29 Roman Kennke + + * java/awt/font/TextLayout.java + (getVisualHighlightShape): Removed debug output. + +2006-11-28 Andrew Haley + + * vm/reference/sun/reflect/misc/ReflectUtil.java + (checkPackageAccess): Implement. + +2006-11-28 Dalibor Topic + + * native/jni/java-lang/java_lang_VMDouble.c: + (parseDoubleFromChars) New function. Factored out from ... + (Java_java_lang_VMDouble_parseDouble): Factored out the parsing. + (dtoa_toString): New function. Factored out from ... + (Java_java_lang_VMDouble_toString) : Factored out the conversion. + Changed conversion mode to 2, as modes 0 and 1 don't round + as the API spec demands. Invoke conversion function as often + as necessary with growing precision until a reversible + representation of the double in form of a string is reached. + +2006-11-28 Roman Kennke + + * javax/swing/JComponent.java + (putClientProperty): Do not fire event when both old and new + value are == null. + +2006-11-27 Andrew John Hughes + + * java/lang/Enum.java: + Make name and ordinal final. + +2006-11-27 Casey Marshall + + * java/util/jar/JarEntry.java (certs): removed. + (jarfile): new field. + (getCertificates): read the certificates from the containing JarFile. + * java/util/jar/JarFile.java (JarEnumeration.nextElement): don't + fill in 'certs,' fill in 'jarfile' for the entry. + (getEntry): likewise. + +2006-11-27 Francis Kung + + * java/awt/image/WritableRaster.java + (createChild): Implemented. + +2006-11-27 Roman Kennke + + * java/awt/font/TextLayout.java + (TextLayout(TextLayout,int,int)): Also layout the new runs. + (getVisualHighlightShape): Implemented. + (layoutRuns): Fixed boundary so that the last run is also laid out. + (left): New helper method. + (right): New helper method. + +2006-11-27 Roman Kennke + + * java/awt/font/TextLayout.java + (getCaretShape(TextHitInfo,Rectangle2D)): Implemented. + (getCaretShape(TextHitInfo)): Use natural bounds. + (getCaretShapes(int,Rectangle2D,CaretPolicy)): New API method. + (getCaretShapes(int,Rectangle2D)): Delegate to new method + above with DEFAULT_CARET_POLICY. + (getCaretShapes(int)): Use natural bounds. + +2006-11-27 Roman Kennke + + * java/awt/font/TextLayout.java + (Run.font): New field. + (Run.location): New field. + (Run.Run): Initialize font. + (font): Removed field. This is moved into Run as the actual font + is something run-specific. + (TextLayout(String,Font,FontRenderContext)): Set font on the + single runs. Layout the runs here. + (TextLayout(TextLayout,int,int)): Copy over the run fonts. + (findRunAtIndex): New helper method. + (getCaretInfo): Implemented. + (layoutRuns): New helper method. + (toString): Don't put font in output string. + +2006-11-27 Raif S. Naffah + + * AUTHORS: Added Jeroen Fritjers. + +2006-11-27 neugens + + * java/text/DecimalFormat.java (formatInternal): Add an explicit test + for FieldPosition to be null. + Check if the factional part is just 0 and can be omitted from the + result. + (scanNegativePattern): Fixed index out of bound exception when searching + for international currency symbol in negative pattern. + +2006-11-27 Andrew John Hughes + + * java/beans/beancontext/BeanContextSupport.java: + (readObject(ObjectInputStream)): Implemented. + (writeObject(ObjectOutputStream)): Likewise. + (BCSChild.getTargetChild()): Added. + (bcsPreDeserializationHook()): Implemented. + (bcsPreSerializationHook()): Likewise. + (childDeserializedHook(Object,BCSChild)): Likewise. + (isSerializing()): Likewise. + (readChildren(ObjectInputStream)): Likewise. + (writeChildren(ObjectOutputStream)): Likewise. + +2006-11-26 Roger Sayle eyesopen.com> + Ian Lance Taylor airs.com> + Paolo Bonzini gnu.org> + + Fixes bug #25557. + + * lib/gen-classlist.sh.in: Avoid using test's -ef operator for + increased portability. Likewise, use -f instead of -e. + +2006-11-26 Mark Wielaard + + * lib/Makefile.am (propertydirs): Removed. + (resources): Explicitly create all dirs. + +2006-11-26 Mark Wielaard + + * gnu/java/net/PlainSocketImpl.java (accept): Reset timeout on Socket. + +2006-11-26 Dalibor Topic + + * native/target/.cvsignore, + native/target/generic/.cvsignore, + native/target/Linux/.cvsignore: + Removed no longer used files. + + * native/target: Removed no longer used directory. + +2006-11-26 Dalibor Topic + + Fixes bug #29133. + + * libraries/clib/nio/gnu_java_nio_VMSelector.c + (Java_gnu_java_nio_VMSelector_select): + Use strerror if strerror_r is not available. + + Reported by: Michael Franz , + Riccardo Mottola + +2006-11-26 Dalibor Topic + + Fixes bug #26756. + + * native/jni/midi-dssi/Makefile.am (AM_CFLAGS): Removed + STRICT_WARNING_CFLAGS since it caused the build to fail + on GNU/Linux. + +2006-11-26 Ian Rogers + + * doc/vmintegration.texinfo: Update VM Threading Model section. + +2006-11-26 Tom Tromey + + * native/jni/java-net/java_net_VMNetworkInterface.c: Conditionally + include ifaddrs.h. + (Java_java_net_VMNetworkInterface_getVMInterfaces): Updated + conditional. + * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: + Conditionally include ifaddrs.h. + (getif_address): Updated conditional. + (getif_index): Likewise. + * configure.ac: Check for ifaddrs.h. + +2006-11-25 Mark Wielaard + + * java/io/File.java (list): Return empty list for unreadable dirs. + +2006-11-25 Mark Wielaard + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawGlyphVector): + Synchronize on font peer. + (setFont): Likewise. + * gnu/java/awt/peer/gtk/GdkFontPeer.java (getFontMetrics): Mark + synchronized. + (getTextMetrics): Likewise. + +2006-11-25 Roman Kennke + + * javax/swing/text/GapContent.java + (getPositionsInRange): Rewritten to use the more efficient + binary search searchFirst() and avoid an NPE that was caused + by GC'ed positions. + +2006-11-25 Mark Wielaard + + * javax/swing/text/CompositeView.java (modelToView): Never return + null. + +2006-11-25 Mark Wielaard + + * javax/swing/text/html/TableView.java (calculateColumnRequirements): + Check whether rowView instanceof RowView. + (updateGrid): Likewise. + +2006-11-25 Mario Torre + + PR28462 + * java/text/DecimalFormat.java: Almost new rewrite, and update to 1.5. + * java/text/NumberFormat.java (format): all format methods, fixed + FieldPosition argument should never be null. + (format(Object, StringBuffer, FieldPosition)): fixed signature, + method is not final. + * java/text/DecimalFormatSymbols.java (clone): fixed to also clone + locale. + * AUTHORS: added my name to the file. + +2006-11-25 Mark Wielaard + + * javax/swing/text/html/StyleSheet.java (paint): Guard against + getChildAllocation() returning null. + +2006-11-25 Mark Wielaard + + * gnu/javax/swing/text/html/css/Selector.java (calculateSpecificity): + Use clazzIndex for id substring. + +2006-11-25 Mark Wielaard + + * java/awt/EventQueue.java (pop): Only terminate dispatchThread when + it is still running. + +2006-11-25 Mark Wielaard + + Fixes bug #28822 + * doc/api/Makefile.am (create_html): Guard GJDOC invocation with + CREATE_API_DOCS + +2006-11-24 Tania Bento + + * java/awt/font/TextHitInfo.java + (equals(TextHitInfo)): If TextHitInfo parameter is null, return false. + (beforeOffset): Decreased first parameter by 1. + +2006-11-24 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (constructor): Check sample model when setting fastCM flag. + (updateBufferedImage): Check scanline and sample model offsets before + copying data directly into the image data buffer. + +2006-11-24 Francis Kung + + * gnu/java/awt/java2d/QuadSegment.java + (offsetSubdivided): Handle special straight-line cases. + +2006-11-24 Roman Kennke + + * java/awt/dnd/DropTarget.java + (DropTargetAutoScroller.HYSTERESIS): New constant. + (DropTargetAutoScroller.DELAY): New constant. + (DropTargetAutoScroller.inner): New field. A cached + Rectangle instance. + (DropTargetAutoScroller.outer): New field. A cached + Rectangle instance. + (DropTargetAutoScroller.timer): New field. The actual timer. + (DropTargetAutoScroller.DropTargetAutoScroller): + Initialize timer. + (DropTargetAutoScroller.actionPerformed): Implemented. + (DropTargetAutoScroller.stop): Implemented. + (DropTargetAutoScroller.updateLocation): Implemented. + (clearAutoscroll): Stop the autoscroller before nullifying it. + (createDropTargetAutoScroller): Don't set the field here, + only return a new instance. + (dragEnter): Only do something when active. Initialize + auto scrolling. + (dragExit): Only do something when active. Stop auto scrolling. + (dragOver): Only do something when active. Update auto scrolling. + (drop): Only do something when active. Update auto scrolling. + (dropActionChanged): Only do something when active. Update + auto scrolling. + (initializeAutoScrolling): Check if component is an instance + of Autoscroll, otherwise do nothing. + (setActive): Disable autoscrolling when deactivating. + (setComponent): When component is set to null, disable autoscrolling. + +2006-11-24 David Gilbert + + * java/beans/beancontext/BeanContextServicesSupport.java + (getChildBeanContextServicesListener): Implemented. + +2006-11-23 Roman Kennke + + * gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java + (createGraphics): Use constructor to create new instance of + BufferedImageGraphics. + * java/awt/Toolkit.java + (getDefaultToolkit): Really try to get a real toolkit. Only + use HeadlessToolkit if no other is available. + * gnu/java/awt/peer/gtk/GtkToolkit.java + (checkHeadless): New helper method. Checks for headless environment + and throws HeadlessException if appropriate. + (createButton): Check for headless. + (createCanvas): Check for headless. + (createCheckbox): Check for headless. + (createCheckboxMenuItem): Check for headless. + (createChoice): Check for headless. + (createDialog): Check for headless. + (createDragGestureRecognizer): Check for headless. + (createDragSourceContextPeer): Check for headless. + (createEmbeddedWindow): Check for headless. + (createFileDialog): Check for headless. + (createFrame): Check for headless. + (createCheckbox): Check for headless. + (createLabel): Check for headless. + (createList): Check for headless. + (createMenu): Check for headless. + (createMenuBar): Check for headless. + (createMenuItem): Check for headless. + (createPanel): Check for headless. + (createPopupMenu): Check for headless. + (createScrollbar): Check for headless. + (createScrollPane): Check for headless. + (createTextArea): Check for headless. + (createTextField): Check for headless. + (createWindow): Check for headless. + +2006-11-23 David Gilbert + + * java/beans/beancontext/BeanContextSupport.java + (deserialize): Implemented, + (serialize): Implemented. + +2006-11-23 Roman Kennke + + * gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java + (createGraphics): Try to use Cairo graphics if available. + +2006-11-22 David Gilbert + + * java/beans/beancontext/BeanContextSupport.java + (toArray): Added API docs, + (toArray(Object[])): Added API docs, removed NotImplementedException. + +2006-11-22 Tania Bento + + * javax/swing/JRootPane.java + (setLayeredPane): Added documentation; throw + IllegalComponentStateException if layered pane parameter is null. + +2006-11-22 David Gilbert + + * java/beans/beancontext/BeanContextSupport.java + (avoidingGui): Removed NotImplementedException. + +2006-11-22 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (drawGlyphVector): Clip updated area to glyph bounds. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (createPath): Eliminate distortion when pixel-shifting rectangles; separate + x-coordinate and y-coordinate pixel shifting. + (shifted): Removed method. + (shiftX): New method, recognising scaling transforms. + (shiftY): New method, recognising scaling transforms. + (walkPath): Separate x-coordinate and y-coordinate pixel shifting. + +2006-11-22 Roman Kennke + + * java/awt/font/TextLayout.java + (hash): New field. Caches the hash code. + (hashCode): Implemented. + +2006-11-22 Roman Kennke + + * java/awt/image/ImageFilter.java + Reformat whole class. + (getFilterInstance): Don't touch the consumer field. Don't check + consumer. + (imageComplete): Don't check consumer. + (setColorModel): Don't check consumer. + (setDimensions): Don't check consumer. + (setHints): Don't check consumer. + (setPixels): Don't check consumer. + (setProperties): Pass the original property too. + * java/awt/image/IndexColorModel.java + (IndexColorModel(int,int,byte[],byte[],byte[],int)): Set the + transparent pixel by calling the new helper method. + (IndexColorModel(int,int,byte[],int,boolean,int)): Set the + transparent pixel by calling the new helper method. + (IndexColorModel(int,int,int[],int,boolean,int,int)): Set the + transparent pixel by calling the new helper method. + (coerceData): Removed. This is not needed. + (getAlpha): Simply return value from color map. The transparent + pixel has to be there. + (setTransparentPixel): New helper method. Inserts the transparent + pixel. + * java/awt/image/RGBImageFilter.java + Reformat whole class. + (convertColorModelToDefault): Removed. No longer needed. + (filterIndexColorModel): Don't handle transparent pixels + separately. + (filterRGBPixels): Set pixels on consumer already. + (makeColor): Removed. No longer needed. + * java/awt/image/ReplicateScaleFilter.java + (replicatePixels): Removed. + (setDimension): Correctly compute destination size, avoid double + calculations. + (setPixels): Avoid double calculations. Fixed some boundary cases. + (setupSources): New helper method. + * java/awt/image/SampleModel.java + (setDataElements): Also handle TYPE_SHORT, TYPE_FLOAT + and TYPE_DOUBLE. + * java/awt/image/SinglePixelPackedSampleModel.java + (setDataElements(int,int,int,int,Object,DataBuffer)): Removed. + This is not needed as the superclass already copies line + by line. + (setDataElements(int,int,Object,DataBuffer)): Simplified code, + removed some checks that the RI also doesn't perform. Call + DataBuffer.setElem(). + +2006-11-22 Roman Kennke + + * java/awt/text/TextLayout.java + (getLogicalRangesForVisualSelection): Implemented. + +2006-11-21 Andrew John Hughes + + * sun/reflect/annotation/AnnotationParser.java, + * sun/reflect/annotation/AnnotationType.java, + * sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java, + * sun/reflect/annotation/ExceptionProxy.java: + Stubbed. + * sun/misc/ServiceConfigurationError.java, + * sun/misc/Service.java: + Implemented. + +2006-11-21 Roman Kennke + + * java/awt/text/TextLayout.java + (Run.isLeftToRight): New helper method. + (logicalToVisual): New field. Maps logical indices to visual + indices. + (visualToLogical): New field. Maps visual indices to logical + indices. + (TextLayout): Setup mappings. + (setupMappings): New method for setting up the mappings. + (getCharacterLevel): Reorganized code. + (getNextLeftHit(int)): Implemented. + (getNextLeftHit(int,CaretPolicy)): New method. + (getNextLeftHit(TextHitInfo)): Implemented. + (getNextRightHit(int)): Implemented. + (getNextRightHit(int,CaretPolicy)): New method. + (getNextRightHit(TextHitInfo)): New method. + (getVisualOtherHit): Implemented. + (checkHitInfo): New helper methods for checking parameters. + (hitToCaret): New helper method. Maps hit infos to caret locations. + (caretToHit): New helper method. Maps caret locations to hit infos. + (isCharacterLTR): New helper method. + (CaretPolicy.getStrongCaret): Implemented. + +2006-11-21 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (draw): Include stroke width when calculating bounds. + (updateBufferedImage): Round bounds more generously, handle negative + height/width values, and clip more intelligently. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (createPath): Add shortcut optimization for lines. + (draw): Include stroke width when calculating bounds. + (drawLine): Delegate to main draw() method. + (drawRect): Likewise. + (fillRect): Delegate to main fill() method. + (findStrokedBounds): New method. + (setCustomPaint): Round bounds more generously. + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (drawLine): Removed. + (drawRect): Removed. + (fillRect): Removed. + +2006-11-21 Francis Kung + + * gnu/java/awt/java2d/TexturePaintContext.java + (getRaster): Handle negative coordinate values. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (setPaint): Moved custom paint processing to a new method. + (setPaintPixels): Added x, y parameters. + (getRealBounds): Added documentation. + (copy): Copy clipping information. + (drawLine): Process custom paints. + (setCustomPaint): New method. + (fill): Process custom paints. + (drawGlyphVector): Process custom paints. + (drawRect): Process custom paints. + (draw): Process custom paints. + * gnu/java/awt/peer/gtk/CairoSurface.java + (cairoCM_opaque): New constant. + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (argb32): Removed constant. + (rgb32): Removed constant. + (BufferedImageGraphics(BufferedImage)): Updated constant names. + (BufferedImageGraphics(BufferedImageGraphics)): Copy color model flags. + (updateBufferedImage): Transform to device-space before updating. + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels): Added x, y + parameters. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels): Set pattern + source at designated x, y origin. + +2006-11-21 Roman Kennke + + * java/awt/text/TextLayout.java + (Run): New inner helper class. + (length): New field. + (naturalBounds): New field. + (offset): New field. + (runIndices): Removed. This is now encapsulate in a Run object. + (runs): Changed to Run[]. + (string): Changed to char[]. + (totalAdvance): New field. Caches advance value. + (TextLayout(String,Font,FontRenderContext)): Change to store + string as char[] and run layout as Run[]. Clean out empty + run items. + (TextLayout(TextLayout,int,int)): Change to store + string as char[] and run layout as Run[]. + (clone): Call private constructor for maximum efficiency. + (determineWhitespace): Adapted to use char[] data. + (draw): Adapted to use Run objects. + (getAdvance): Cache computed total advance. + (getBlackBoxBounds): Adapted to use Run objects. + (getCaretInfo): Use natural layout bounds. + (getCharacterCount): Return length field. + (getLogicalHighlightShape): Adapted to use Run objects. + (getNaturalBounds): New helper method. Calculates and returns the + natural bounds of this text layout. + (getOutline): Adapted to use Run objects. + (getStringProperties): Adapted to use char[] data. + (getVisibleAdvance): Adapted to use char[] and Run data. + (handleJustify): Adapted to use char[] and Run data. + (hitTestChar(float,float,Rectangle2D)): Implemented. + (hitTestChar(float,float)): Use natural bounds. + (setCharIndices): Adapted to use char[] and Run data. + (toString): Adapted to use char[] and Run data. + * java/text/Bidi.java + (requiresBidi): Exclude paragraph separators from bidi-triggers. + +2006-11-21 Roman Kennke + + * gnu/java/awt/peer/gtk/GdkFontMetrics.java: + Removed. This is now an inner class in GdkFontPeer. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawString(float,float)): Use text layout cache from + GdkFontPeer. + (getFontMetrics): Delegate to GdkFontPeer. + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (getGlyphCodes): Also check array size. + (getGlyphPositions): Also check array size. + * gnu/java/awt/peer/gtk/GdkFontPeer.java + (GdkFontLineMetrics.fm): Removed. + (GdkFontLineMetrics.strikeThroughOffset): Removed. + (GdkFontLineMetrics.strikeThroughThickness): Removed. + (GdkFontLineMetrics.underlineOffset): Removed. + (GdkFontLineMetrics.underlineThickness): Removed. + (GdkFontLineMetrics.GdkFontLineMetrics): Don't take + FontMetrics argument. Don't init removed fields. + (GdkFontLineMetrics.getAscent): Return font peer's field. + (GdkFontLineMetrics.getDescent): Return font peer's field. + (GdkFontLineMetrics.getHeight): Return font peer's field. + (GdkFontLineMetrics.getLeading): Return font peer's field. + (GdkFontLineMetrics.getNumChars): Reformat. + (GdkFontLineMetrics.getStrikeThroughOffset): Return half ascent. + (GdkFontLineMetrics.getStrikeThroughThickness): Return 1. + (GdkFontLineMetrics.getUnderlineOffset): Return font peer's field. + (GdkFontLineMetrics.getUnderlineThickness): Return font peer's field. + (GdkFontMetrics): Moved class in here as inner class. + Make it use the font peer's fields and for the char(s) width + and string width method, use TextLayout to measure the actual widths. + (ascent): New field. + (bundle): Removed. + (DEFAULT_CTX): New constant field. + (descent): New field. + (FONT_METRICS_ASCENT): New constant. + (FONT_METRICS_DESCENT): New constant. + (FONT_METRICS_HEIGHT): New constant. + (FONT_METRICS_MAX_ADVANCE): New constant. + (FONT_METRICS_MAX_ASCENT): New constant. + (FONT_METRICS_MAX_DESCENT): New constant. + (FONT_METRICS_UNDERLINE_OFFSET): New constant. + (FONT_METRICS_UNDERLINE_THICKNESS): New constant. + (height): New field. + (maxAdvance): New field. + (maxAscent): New field. + (maxDescent): New field. + (metrics): New field. Stores a FontMetrics for this font. + (textLayoutCache): New field. Caches TextLayout instances. + (underlineOffset): New field. + (underlineThickness): New field. + (cinit): Don't initialize resource bundle. + (GdkFontPeer): Setup the metrics. + (getFontMetrics): Return stored metrics if possible. + (getLineMetrics): Adapt to new constructor. + (initFont): New helper method. + (setupMetrics): New helper method. + * gnu/java/awt/peer/gtk/GtkToolkit.java + (LRUCache): Made class a static class. + (getFontMetrics): Delegate to GdkFontPeer. + * native/jni/gtk-peer/gdkfont.h + Added new constant defines. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c + (getFontMetrics): Rewritten to fetch the font metrics from + FreeType. + +2006-11-20 Tania Bento + + * javax/swing/ButtonGroup.java: + (setSelected): Select the ButtonModel if all conditions + are met. + +2006-11-20 Tania Bento + + * javax/swing/JSlider.java: + (updateLabelUIs): Removed casting. + +2006-11-20 Mark Wielaard + + * gnu/java/util/regex/RE.java (messages): Don't initialize. + (bundle): New static final String field. + (getLocalizedMessage): Initialize messages when still null. + * gnu/java/util/regex/RESyntax.java (SYNTAX_IS_FINAL): Removed. + (set): Use RE.getLocalizedMessage(). + (clear): Likewise. + (setLineSeparator): Likewise. + +2006-11-20 Roman Kennke + + * javax/swing/text/html/StyleSheet.java + (linked): New field. + (styleSheet): Replaced by linked. + (addStyleSheet): Use an arraylist for simplicity. + (getRule): Removed useless instantiation. + (getStyleSheets): Convert array list to array. + (removeStyleSheet): Use an arraylist for simplicity. + (resolveStyle): Include styles from linked lists. + +2006-11-20 Roman Kennke + + * javax/swing/text/BoxView.java + (BoxView): Initialize with invalid req's. + (forwardUpdate): Trigger repaint when children changed the + major axis. + (getResizeWeight): Return resizable when the pref differs from + the min or the pref differs from the max size. + (layoutMajorAxis): Actually sum up the preferred sizes. + (paint): Made binary search more robust. + (replace): Let arrays shrink when needed. + (replaceLayoutArray): Let arrays shrink when needed. + (setAxis): Trigger preferenceChanged. + * javax/swing/text/CompositeView.java + (getInsideAllocation): Call insets method to take account + of overriding subclasses. + * javax/swing/text/DefaultStyledDocument.java + (ElementBuffer.finishEdit): Clear the stack and edits buffer. + (ElementBuffer.insertUpdate): Only remove the found element, not + all. + * javax/swing/text/GlyphView.java + (insertUpdate): Pass null in preferenceChanged. + (removeUpdate): Pass null in preferenceChanged. + (changedUpdate): Pass null in preferenceChanged. + * javax/swing/text/Utilities.java + (drawTabbedText): Avoid single calls to charWidth() and instead + call charsWidth() on whole chunks. + * javax/swing/text/html/HTMLDocument.java + (BlockElement.getName): Fall back to super when necessary. + (RunElement.getName): Fall back to super when necessary. + (HTMLReader.MAX_THRESHOLD): New constant field. + (HTMLReader.GROW_THRESHOLD): New constant field. + (HTMLReader.theshold): New field. + (HTMLReader.HTMLReader): Fetch threshold from document. + (HTMLReader.addContent): Sucessivly grow the threshold. + (createLeafElement): Don't create two elemens and don't set + attribute. + * javax/swing/text/html/TableView.java + (RowView.replace): Invalidate grid. + (gridValid): Made package private. + (layoutMinorAxis): Mark all rows as invalid. + (replace): Invalidate grid. + +2006-11-20 Roman Kennke + + * javax/swing/text/AbstractDocument.java + (DefaultDocumentEvent.changes): Changed to be a HashMap. + (DefaultDocumentEvent.modified): Made private. + (DefaultDocumentEvent.THRESHOLD): New constant field. + (DefaultDocumentEvent.DefaultDocumentEvent): Don't initialize + changes table. + (DefaultDocumentEvent.addEdit): Switch to hashmap only when + exceeding threshold. + (DefaultDocumentEvent.getChange): Use iterative approach + when we have no hashmap yet. + (documentCV): Removed. + (numWriters): Renamed from numWritersWaiting. + (createPosition): Reformat. + (getCurrentWriter): Synchronized. + (readLock): Implement more straightforward. + (readUnlock): Implement more straightforward. + (writeLock): Implement more straightforward. + (writeUnlock): Implement more straightforward. + (remove): Write-lock here. + (removeImpl): Don't write-lock here. + +2006-11-20 Roman Kennke + + * javax/swing/JEditorPane.java + (setPage): Set priority on loading thread. + +2006-11-20 Roman Kennke + + * javax/swing/plaf/basic/BasicTextUI.java + (RootView.paint): Avoid allocation. + (cachedInsets): New field. Caches an Insets instance. + (getNextVisualPositionFrom): Read-lock the document to avoid + thread nastiness. Push allocation. + (getPreferredSize): Push fake allocation when not yet laid out. + (getVisibleEditorRect): Use cached insets. + (viewToModel): Read-lock the document to avoid + thread nastiness. Push allocation. + +2006-11-20 Roman Kennke + + * javax/swing/text/StyleContext.java + (attributeSetPool): Synchronize this map. + (addAttribute): Synchronize this method. + (addAttributes: Synchronize this method. + (readObject): Install synchronized map on target object. + (removeAttribute): Synchronize this method. + (removeAttributes): Synchronize this method. + (removeAttributes): Synchronize this method. + +2006-11-20 Roman Kennke + + * javax/swing/text/GapContent.java + (GapContentPosition.GapContentPosition): Removed constructor. + (Mark): Made subclass of WeakReference to refer directly to + the associated position. + (Mark.refCount): Removed. + (Mark.Mark(int,GapContentPosition,ReferenceQueue): + New constructor. Used to reference a position and register the + reference queue. + (Mark.Mark(index)): Call super and don't adjust mark offset. + (Mark.compareTo): Removed. + (Mark.equals): Removed. + (Mark.getOffset): Return at least null. Removed assert. + (Mark.getPosition): New helper method. + (garbageMarks): New field. + (positions): Removed. + (searchMark): New field. + (GapContent): Removed init of positions map. + (addImpl): New helper method. + (adjustPositionsInRange): Removed. + (compare): New helper method. + (createPosition): Rewritten for new datastructures. This now + performs a much more efficient binary search for finding + a position at the requested offste. + (garbageCollect): Rewritten to collect unused marks. + (getPositionsInRange): Adjusted for new data structures. + (removeImpl): New helper method. + (replace): Use new addImpl() and removeImpl() helper method for + correctly adjusting the positions and gap. + (search): Rewritten. Implements a more suitable binary search. + (searchFirst): New helper method. + (setPositionsInRange): Removed. + (shiftEnd): Update the marks here. + (shiftGap): Update the marks here. + (shiftGapEndUp): Update the marks here. + (shiftGapStartDown): Update the marks here. + +2006-11-20 Marco Trudel + + * java/util/jar/JarFile.java (digestAlgorithms): New field used to cache + digest algorithm implementations. + (readSignatures): Parse the manifest once and reuse that data. + Add support for line breaks. + (verifyHashes): Use the parsed manifest entry. + (readManifestEntry): Removed. + +2006-11-20 Andrew John Hughes + + * java/beans/beancontext/BeanContextServicesSupport.java: + Added more documentation. + (addService(Class,BeanContextServiceProvider,boolean)): + Synchronized over global hierarchy lock. + (bcsPreDeserializationHook(ObjectInputStream)): Implemented. + (bcsPreSerializationHook(ObjectOutputStream)): Implemented. + (childJustRemovedHook(Object,BCSChild)): Implemented. + (createBCSSServiceProvider(Class,BeanContextServiceProvider)): + Implemented. + (fireServiceRevoked(BeanContextServiceRevokedEvent)): + Added revocation-only listeners. + (getBeanContextServicesPeer()): Implemented. + (getCurrentServiceClasses(Class)): Synchronized over global + hierarchy lock. + (getCurrentServiceSelectors(Class)): Synchronized over global + hierarchy lock, and fixed FIXME. + (getService(BeanContextChild,Object,Class,Object, + BeanContextServiceRevokedListener)): Implemented. + (hasService(Class)): Synchronized over global hierarchy lock. + (releaseService(BeanContextChild,Object,Object)): Implemented. + (revokeService(Class,BeanContextServiceProvider,boolean)): Implemented. + * java/beans/beancontext/BeanContextSupport.java: + (remove(Object, boolean)): Documentation correction. + +2006-11-19 Roman Kennke + + * javax/swing/JEditorPane.java + (PageStream): New inner class. + (PageLoader): New inner class. + (loading): New field. + (setPage): Implemented asynchronous loading. + * javax/swing/text/DefaultStyledDocument.java + (ElementBuffer.create): New helper method. + (create): Use new ElementBuffer method instead of hack. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.flushImpl): New helper method. + (HTMLReader.addContent): Use flushImpl(). + (HTMLReader.blockClose): Added null check. + (HTMLReader.flush): Use flushImpl(). + * javax/swing/text/html/HTMLEditorKit.java + (createDefaultDocument): Set load priority to 4 and token threshold + to 100. + * javax/swing/text/html/TableView.java + (insertUpdate): Overridden to provide correct view factory. + (removeUpdate): Overridden to provide correct view factory. + (changedUpdate): Overridden to provide correct view factory. + +2006-11-19 Roman Kennke + + * javax/swing/text/BoxView.java + (clipRect): New field. + (tmpRect): New field. + (layout): Reorganized code. Now uses layoutAxis() helper method. + (layoutAxis): New helper method. + (paint): Optimized by using cached Rectangle objects and + a binary search for child views inside the clip. + * javax/swing/text/CompositeView.java + (insideAllocation): Made private and initialized in constructor. + (getInsideAllocation): Removed initialization block for + insideAllocation field. Avoid unnecessary allocations. + * javax/swing/text/GlyphView.java + (DefaultGlyphPainter.paint): Only paint the actual glyphs here + The remaining stuff (background, underline and striking) is + done in the GlpyhView itself. Avoid unnecessary allocations. + (cached): A cached Segment instance. + (getText): Return cached segment. + (paint): Paint underline, strike and background here. Avoid + unecessary allocs. + +2006-11-19 Roman Kennke + + * javax/swing/text/html/StyleSheet.java + (getFontSize): Removed debug output. + (ListPainter.tmpRect): New field. + (ListPainter.paint): Align bullet vertically centered to + the first line of the paragraph. + +2006-11-17 Roman Kennke + + * gnu/javax/swing/text/html/css/CSSParser.java + (parseDeclaration): Trim string before reporting. + * gnu/javax/swing/text/html/css/FontSize.java + (size): New field. + (isRelative): New field. + (sizeIndex): New field. + (FontSize): Initialize new fields. + (getValue): Changed to call getValue(int). + (getValue(int)): New method. Implements relative font sizes. + (isRelative): New method. + (mapAbsolute): Store index. + (mapEM): New helper method. + (mapLarger): New helper method. + (mapPercent): New helper method. + (mapRelative): New helper method. + (mapSmaller): New helper method. + (mapValue): New helper method. + * javax/swing/text/html/CSS.java + (parseBackgroundShorthand): Create CSSColor directly. + * javax/swing/text/html/StyleSheet.java + (addRule): Invalidate resolved styles. + (getFont): Call new getFontSize() method to resolve relative + font sizes. + (getFontSize): New helper method. Resolves relative font sizes. + (translateHTMLToCSS): Create CSS objects directly. + +2006-11-13 Andrew John Hughes + + * gnu/java/util/regex/RETokenNamedProperty.java: + (getHandler(String)): Add support for 'all'. + +2006-11-18 Andrew John Hughes + + * gnu/javax/management/Server.java: + Initial implementation of a GNU management server. + * javax/management/MBeanPermission.java, + * javax/management/MBeanRegistration.java, + * javax/management/MBeanTrustPermission.java: + Implemented. + +2006-11-17 Mark Wielaard + + * docs/www.gnu.org/newsitems.txt: Add Sun GPL news announcement. + +2006-11-17 Gary Benson + + * java/net/DatagramSocket.java (getLocalAddress, connect, + receive): Perform security check on address not hostname. + +2006-11-16 Roman Kennke + + * gnu/javax/swing/text/html/parser/support/Parser.java + (_handleText): Fixed condition for consuming whitespace. + Removed validator check, this is superfluous now. + +2006-11-16 Roman Kennke + + * gnu/javax/swing/text/html/css/CSSParser.java + (parseRuleset): Support 'combined' selectors. + (main): Adapt callback for combined selectors support. + * gnu/javax/swing/text/html/css/CSSParserCallback.java + (startStatement): Take selector array as argument, to + support combined selectors. + * javax/swing/text/html/BlockView.java + (calculateMinorAxisRequirements): Fetch and apply alignment. + * javax/swing/text/html/StyleSheet.java + (CSSStyle): Inverted the constants for correct precedence. + (CSSStyleSheetParserCallback.styles): New field. Stores the current + styles. + (CSSStyleSheetParserCallback.style): Removed. + (CSSStyleSheetParserCallback.declaration): Update multiple styles. + (CSSStyleSheetParserCallback.end): Push multiple styles. + (CSSStyleSheetParserCallback.start): Initialize multiple styles. + +2006-11-16 Roman Kennke + + * javax/swing/text/FlowView.java + (LogicalView.getPreferredSpan): Calculate maximum correctly. + * javax/swing/text/GlyphView.java + (tabExpander): New field. + (tabX): New field. + (breakView): Set tabX on broken view. + (getPartialSpan): Let the painter fetch the span. + (getTabbedSpan): Update the tab expander field. Maybe trigger + relayout. + (getTabExpander): Simply return the stored expander. + * javax/swing/text/Utilities.java + (getTabbedTextOffset): Made algoritm a little smarter and more + efficient. + (getTabbedTextWidth): Don't add single char widths, instead add + chunks of characters. + * javax/swing/text/html/ParagraphView.java + (calculateMinorAxisRequirements): Adjust margin only when the + CSS span is not fixed. + +2006-11-16 David Gilbert + + * java/beans/beancontext/BeanContextSupport.java + (getChildBeanContextMembershipListener): Implemented, + (getChildPropertyChangeListener): Implemented, + (getChildSerializable): Implemented, + (getChildVetoableChangeListener): Implemented, + (getChildVisibility): Implemented, + (setDesignTime): Use same property name as Sun's implementation. + +2006-11-16 David Gilbert + + * java/beans/DesignMode.java: Reformatted and removed a FIXME, + * java/beans/Statement.java + (toString): Updated to match reference implementation. + +2006-11-15 Roman Kennke + + * javax/swing/text/html/HTMLEditorKit.java + (InsertHTMLTextAction.actionPerformed): Also try inserting + the alternate tag. Adjust the selection accordingly. + (InsertHTMLTextAction.adjustSelection): New helper method. + Adjusts the selection after an insertion. + (insertAtBoundary): Delegate to deprecated method. + (insertAtBoundry): Implemented missing method. + (tryInsert): New helper method. + (defaultActions): Implemented to fill the array with + a couple of InsertHTMLTextActions. + +2006-11-15 Roman Kennke + + * javax/swing/text/html/ImageView.java + (Observer): New class. Observes image loading. + (haveHeight): New field. + (haveWidth): New field. + (height): New field. + (width): New field. + (image): New field. + (imageIcon): New field. + (loading): New field. + (observer): New field. + (reloadImage): New field. + (reloadProperties): New field. + (ImageView): Initialize observer and some flags. + (getImage): Update the image state and return the image. + (loadImage): New helper method. Actually starts loading. + (paint): Rewritten to paint the image directly, not via Icon. + (reloadImage): Rewritten. Loads the image and its properties. + (renderIcon): Removed. No more necessary. + (setPropertiesFromAttributes): Don't nullify image here. + Added comment about missing impl. + (setSize): Added comment about missing impl. + (updateSize): New helper method. Updates the size attributes. + (updateState): New helper method. Makes sure the image + and its properties are valid. + +2006-11-15 Roman Kennke + + * gnu/javax/swing/text/html/parser/support/Parser.java + (_handleEndTag_remaining): Consume whitespace after a closing + block like tag. + +2006-11-15 Roman Kennke + + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.ParagraphAction.end): Call super instead of blockClose() + directly. + (HTMLReader.ParagraphAction.start): Call super instead of blockOpen() + directly. + (HTMLReader.parseStack): Removed. + (HTMLReader.blockClose): Simply call addContent() with ' ' + instead of doing more complicated stuff. Removed parseStack + handling. + (HTMLReader.blockOpen): Removed parseStack handling. + (getInsertingReader): Removed parseStack init. + * gnu/javax/swing/text/html/parser/htmlValidator.java + (closeTag): Return true only when the tag actually should be + closed. + * gnu/javax/swing/text/html/parser/support/Parser.java + (_handleEndTag): Only actually close the tag when the validator + allows it. + +2006-11-15 Roman Kennke + + * javax/swing/text/html/CSS.java + (Attribute.BORDER_SPACING): New field for the CSS border-spacing + attribute. + * javax/swing/text/html/StyleSheet.java + (BoxPainter.bottomPadding): New field. + (BoxPainter.leftPadding): New field. + (BoxPainter.rightPadding): New field. + (BoxPainter.topPadding): New field. + (BoxPainter.BoxPainter): Fetch the MARGIN and PADDING* attributes + too. + (BoxPainter.getInset): Recognize and include the padding. + (translateHTMLToCSS): Added mapping for CELLPADDING and CELLSPACING. + javax/swing/text/html/TableView.java + (RowView.calculateMajorAxisRequirements): Adjust req's for + cellSpacing. + (RowView.layoutMajorAxis): Adjust multi-column span for cellSpacing. + (cellSpacing): New field. + (columnRequirements): Made package private to avoid accessor method. + (calculateMinorAxisRequirements): Include cellSpacing. + (calculateMajorAxisRequirements): Overridden to include cellSpacing. + (layoutMajorAxis): Likewise. + (layoutColumns): Respect cellSpacing. + (setParent): Overridden to fetch the CSS attributes when view gets + connected. + (setPropertiesFromAttributes): New method. Fetches the cell + spacing from the CSS attributes. + +2006-11-15 Roman Kennke + + * gnu/javax/swing/text/html/parser/support/Parser.java + (_handleText): Consume whitespace directly before a closing tag. + (restOfTag): Consume whitespace directly after opening. + * gnu/javax/swing/text/html/parser/support/textPreProcessor.java + (preprocess): Don't perform array boundary checking by + catch AIOOBE, instead check the boundary in loop condition. + * gnu/javax/swing/text/html/parser/support/low/Constants.java + (TAG_CLOSE): New constants. Describes the token pattern for + a closing tag. + +2006-11-14 Roman Kennke + + * javax/swing/text/html/ImageView.java + (getPreferredSpan): Use CSS length values. + * javax/swing/text/html/TableView.java + (CellView.calculateMajorAxisRequirements): Overridden to + set the maximum reqs to maximum. + (RowView.getMaximumSize): For the X_AXIS, set the maximum + span to maximum. + (RowView.getMinimumSpan): Overridden. For the X_AXIS, return + the total column reqs. + (RowView.getPreferredSpan): Overridden. For the X_AXIS, return + the total column reqs. + * gnu/javax/swing/text/html/css/CSSColor.java + (convertValue): Catch NumberFormatExceptions for more robustness. + * gnu/javax/swing/text/html/css/FontSize.java + (mapPixels): Actually map px values. Catch NFE for more robustness. + +2006-11-14 Roman Kennke + + * gnu/java/awt/font/autofit/AxisHints.java, + * gnu/java/awt/font/autofit/Constants.java, + * gnu/java/awt/font/autofit/GlyphHints.java, + * nu/java/awt/font/autofit/Latin.java, + * nu/java/awt/font/autofit/LatinAxis.java, + * gnu/java/awt/font/autofit/LatinMetrics.java, + * gnu/java/awt/font/autofit/Scaler.java, + * gnu/java/awt/font/autofit/Script.java, + * gnu/java/awt/font/autofit/ScriptMetrics.java, + * gnu/java/awt/font/autofit/Segment.java, + * gnu/java/awt/font/autofit/Width.java: + New classes. This is some skeleton stuff for the FreeType-alike + auto-gridfitter. + * gnu/java/awt/font/opentype/CharGlyphMap.java: Made class public. + * gnu/java/awt/font/opentype/OpenTypeFont.java + (unitsPerEm): Made field public. + (getRawGlyphOutline): New method. Fetches the raw outline. + * gnu/java/awt/font/opentype/Scaler.java + (getRawGlyphOutline): New method. Fetches the raw outline. + * gnu/java/awt/font/opentype/truetype/GlyphLoader.java + (loadGlyph): New method. This is used to load raw outlines. + * gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java + (getRawOutline): New method. Fetches the raw outline. + * gnu/java/awt/font/opentype/truetype/Zone.java: + Made class public. + +2006-11-14 Roman Kennke + + * javax/swing/RepaintManager.java + (RepaintManager): Fetch the default state for the double buffering + from a system property gnu.swing.doublebuffering. + +2006-11-14 Roman Kennke + + * javax/swing/plaf/basic/BasicLabelUI.java + (cachedInsets): New field. + (getFontMetrics): New helper method. Fetches the font metrics + from the component or the toolkit. + (getPreferredSize): Use getFontMetrics() helper method for + fetching the font metrics. + (paint): Use getFontMetrics() helper method for + fetching the font metrics. Only paint if icon or text + are != null. Use cached insets. + (paintDisabledText): Don't store/restore color object. The + JComponent painting mechanism takes care of this by calling + create(). + (paintEnabledText): Don't store/restore color object. The + JComponent painting mechanism takes care of this by calling + create(). + +2006-11-14 Roman Kennke + + * gnu/java/awt/peer/GLightweightPeer.java + (handleEvent): Try to do something reasonable and trigger painting + for the lightweight component. + (getFontMetrics): Fetch and return a font metrics object from + the Toolkit. + +2006-11-13 Andrew John Hughes + + * gnu/java/util/regex/RETokenNamedProperty.java: + (getHandler(String)): Add support for 'all'. + +2006-11-13 Andreas Tobler + + * AUTHORS: Add myself. + +2006-11-13 Thomas Fitzsimmons + + * AUTHORS: Add Tania Bento, Thomas Fitzsimmons, Francis Kung and + Dalibor Topic. Re-order 'K' section. Remove trailing space from + Roman Kennke's entry. + +2006-11-13 Roman Kennke + + * java/awt/image/IndexColorModel.java + (createCompatibleSampleModel): Implemented missing method. + +2006-11-11 Andreas Tobler + + * gnu/java/awt/peer/gtk/GtkImageConsumer.java (setPixels): Handle data + from big endian systems correctly. + +2006-11-11 Roman Kennke + + * gnu/javax/swing/text/html/css/CSSColor.java + (isValidColor): New helper method. Checks strings if they + form a valid color value. + * gnu/javax/swing/text/html/css/Length.java + (Length): Catch number format exceptions. + * javax/swing/text/html/CSS.java + (addInternal): New method. Checks for shorthand CSS attributes + and parses them. + (parseBackgroundShorthand): New method. Parses the background + shorthand attribute. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.LinkAction): Made class a subclass of HiddenAction. + (HTMLReader.LinkAction.start): Implemented to load the linked + stylesheet. + (HTMLReader.LinkAction.end): Removed. This is not needed. + * javax/swing/text/html/StyleSheet.java + (CSSStyleSheetParserCallback.declaration): Push declaration + through CSS.addInternal() to parse shorthand attributes. + (addCSSAttribute): Push declaration through CSS.addInternal() + to parse shorthand attributes. + (importStyleSheet): Implemented. This adds a stylesheet from + an URL. + * javax/swing/text/html/TableView.java + (calculateColumnRequirements): Increase column index for + non CellView children to avoid endless loop. + * javax/swing/text/CompositeView.java + (setParent): Comparen with numChildren not with real arraylength. + +2006-11-11 David Gilbert + + * java/beans/beancontext/BeanContextSupport.java + (getChildBeanContextChild): Implemented. + +2006-11-10 Roman Kennke + + * javax/swing/text/View.java + (updateLayout): Only repaint when needed. + +2006-11-10 David Gilbert + + * java/util/Collections.java + (sort(List)): Minor API doc addition, + (sort(List, Comparator)): Likewise. + +2006-11-10 David Fu + + * javax/swing/text/html/HTMLWriter.java + (traverse): Removed Classpath specific handling of implied + tags. + (traverseHtmlFragment): Removed Classpath specific handling of + implied tags. + +2006-11-10 Roman Kennke + + * javax/swing/text/ParagraphView.java + (Row.getMaximumSize): Removed. This method is not necessary. + * javax/swing/text/html/TableView.java + (CellView): Moved attribute init to setPropertiesFromAttributes(). + (setPropertiesFromAttributes): Fetch attributes here. + (RowView.RowView): Documented. + (RowView.getMaximumSpan): Overridden to restrict the max span + in the Y direction. + (RowView.layoutMajorAxis): Correctly layout the spans. + (columnWidths): New field. Stores the width attributes of + the columns. + (calculateColumnRequirements): Added support for relative + (== percent) width attributes. + (calculateMajorAxisRequirements): Removed. + (calculateMinorAxisRequirements): Removed unnecessary code. + (getMaximumSpan): Overridden to restrict the table's width. + (layoutColumns): Documented. Implement more clever table layout, + i.e. for relative columns etc. + (layoutMinorAxis): Don't mark rows invalid. + (updateGrid): Added docs. Initialize column widths. + +2006-11-09 Roman Kennke + + * gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment, + * gnu/java/awt/peer/headless/HeadlessToolkit: New classes. + Implement basic headless toolkit. + * java/awt/Toolkit.java + (getDefaultToolkit): Check headless property and create + headless toolkit when true. + +2006-11-09 Ingo Proetel +2006-11-09 Roman Kennke + + * gnu/java/awt/peer/swing/SwingButtonPeer.java + (SwingButton.button): New field. + (SwingButton.SwingButton): Added constructor. + (SwingButton.isShowing): Access button field instead of + the surrounding class. + (SwingButton.getParent): Access button field instead of + the surrounding class. + (SwingButtonPeer): Call new SwingButton constructor. + * gnu/java/awt/peer/swing/SwingComponent.java: + Several documentation updates. + * gnu/java/awt/peer/swing/SwingComponentPeer.java + (currentPaintEvents): New field. + (peerFont): New field. + (SwingComponentPeer): Initialize currentPaintEvents fields. + (coalescePaintEvents): Implemented. + (dispose): Unregister peer from heavyweight list of its container. + (getGraphics): Fetch graphics from parent component. + (handleEvent): Discard paint event if its coalesced. + (init): Register component with its container for proper painting. + (paint): Call peerPaint(). + (peerPaint): Added argument that indicates if we should update. + Call paint or update on the actual AWT component. + (peerPaintComponent): New method. Paints the peer (Swing) component. + (setFont): Set peerFont field. + * gnu/java/awt/peer/swing/SwingContainerPeer.java + (backbuffer): New field. + (focusOwner): New field. + (heavyweightDescendents): New field. + (SwingContainerPeer): Take Container as argument. Don't call init + yet. + (addHeavyweightDescendent): New method. + (getFocusOwner): New helper method. + (getInsets): Delegate to insets(). + (handleKeyEvent): Dispatch event to focus owner. + (handleMouseEvent): Dispatch to child component. + (isDoubleBuffering): New helper method. + (peerPaint): Overridden to implement container painting with + double buffering. + (peerPaintChildren): New method. Paints the descendents of this + container. + (removeHeavyweightDescendent): New helper method. + * gnu/java/awt/peer/swing/SwingFramePeer.java + (peerPaint): Removed. + (peerPaintComponent): Overridden to paint the menu bar. + * gnu/java/awt/peer/swing/SwingLabelPeer.java + (SwingLabel.label): New field. + (SwingLabel.SwingLabel): Added constructor with Label argument. + (SwingLabel.getGraphics): Implemented to fetch the graphics from + the actual AWT component. + (SwingLabel.getParent): Implemented to fetch the parent from + the AWT component. + (SwingLabel.isShowing): Access the label field. + (SwingLabelPeer): Set alignment from label. + * gnu/java/awt/peer/swing/SwingListPeer.java: New class. + * gnu/java/awt/peer/swing/SwingMenuBarPeer.java: Documentation + fixlet. + * gnu/java/awt/peer/swing/SwingPanelPeer.java: + Don't be a lighweight peer. + (SwingPanelPeer): Call init. + * gnu/java/awt/peer/swing/SwingTextAreaPeer.java: New class. + * gnu/java/awt/peer/swing/SwingTextFieldPeer.java + (SwingTextField.textField): New field. + (SwingTextField.SwingTextField): New constructor. + (SwingTextField.isShowing): Access field not enclosing class. + (SwingTextField.getGraphics): New method. + (SwingTextField.getParent): New method. + (SwingTextFieldPeer): Call new constructor. + (select): Renamed arguments. + * gnu/java/awt/peer/swing/SwingWindowPeer.java + (SwingWindowPeer): Call init. + +2006-11-09 Tania Bento + + * javax/swing/JLabel.java + (JLabel(Icon)): Changed documentation; Changed text to null. + (JLabel(Icon,int)): Likewise. + (JLabel(text)): Changed documenation. + (JLabel(text,int)): Likewise. + (JLabel(text,Icon,int)): Changed documentation; Throw + IllegalArgumentException if int is not one of LEFT, RIGHT, + CENTER, LEADING or TRAILING. + +2006-11-09 David Gilbert + + * java/beans/beancontext/BeanContextSupport.java + (BeanContextSupport): Use correct dtime default, + (BeanContextSupport(BeanContext)): Likewise, + (BeanContextSupport(BeanContext, Locale)): Likewise, plus renamed + locale argument, + (BeanContextSupport(BeanContext, Locale, boolean)): Likewise, + (BeanContextSupport(BeanContext, Locale, boolean, boolean)): Likewise. + +2006-11-09 David Gilbert + + * java/beans/beancontext/BeanContextSupport.java + (getBeanContextPeer): Implemented. + +2006-11-09 Roman Kennke + + * javax/swing/text/html/BlockView.java + (cssHeight): Removed. + (cssWidth): Removed. + (cssSpans): New field. Replaces the two fields above. + (BlockView): Allocate cssSpans array. + (layoutMinorAxis): Fetch and use child span, not this view's span. + (setCSSSpan): Adjusted to use cssSpans array. + (setPropertiesFromAttributes): Adjusted to use cssSpans array. + +2006-11-09 Roman Kennke + + * javax/swing/text/html/InlineView.java + (nowrap): New field. + (getBreakWeight): Add support for nowrap. + (setPropertiesFromAttributes): Fetch the nowrap setting. + +2006-11-09 Roman Kennke + + * gnu/javax/swing/text/html/css/CSSParser.java + (parseRuleset): Use new Selector class. + (parseValue): Parse multiple anys, not only one. + (main): Allow stylesheet be specified on the command line. + Use new Selector class. + * gnu/javax/swing/text/html/css/CSSParserCallback.java + (startStatement): Use Selector class. + * gnu/javax/swing/text/html/css/CSSScanner.java + (readName): Actually read a character in the loop to avoid + endless loop. + * gnu/javax/swing/text/html/css/Length.java + (getValue): Only multiply when we have a percentage value. + * gnu/javax/swing/text/html/css/Selector.java: + New class. Provides handling of CSS selectors. + * javax/swing/text/html/StyleSheet.java + (CSSStyle.PREC_AUTHOR_IMPORTANT): New constant field. + (CSSStyle.PREC_AUTHOR_NORMAL): New constant field. + (CSSStyle.PREC_NORM): New constant field. + (CSSStyle.PREC_UA): New constant field. + (CSSStyle.PREC_USER_IMPORTANT): New constant field. + (CSSStyle.precedence): New field. + (CSSStyle.priority): Removed. + (CSSStyle.selector): New field. + (CSSStyle.CSSStyle(int,Selector)): Initialize with Selector + and precendence. + (CSSStyle.compareTo): Adjusted to use the precedence and + specificity of the selector. + (CSSStyleSheetParserCallback.precedence): New field. + (CSSStyleSheetParserCallback.selector): Removed. + (CSSStyleSheetParserCallback.style): New field. + (CSSStyleSheetParserCallback.CSSStyleSheetParserCallback): + Initialize with precedence. + (CSSStyleSheetParserCallback.declaration): Don't look up + existing rule, simply create new one. + (CSSStyleSheetParserCallback.endStatement): Append style + to stylesheet. + (CSSStyleSheetParserCallback.startStatement): Use new Selector + class. + (css): Changed to be ArrayList. + (addRule): Create parser with author-normal precendence. + (getRule): Fixed implementation. + (loadRules): Create parser with UA precendence. + (resolveStyle): Use Selector class for resolving and matching + stylesheet rules. + (translateHTMLToCSS): Added mappings for a couple of HTML + attributes. + +2006-11-09 David Gilbert + + Fixes bug #29770 + * java/beans/SimpleBeanInfo.java + (loadImage): Check for nulls. + +2006-11-09 Robert Schuster + + * native/jni/java-nio/gnu_java_nio_VMChannel.c: + (getpeername): Added 16 byte offset to memcpy operation. + +2006-11-09 Robert Schuster + + * native/jni/java-nio/gnu_java_nio_VMChannel.c: + (getsockname): Added 16 byte offset to memcpy operation. + +2006-11-08 Mark Wielaard + + Fixes bug #29754 + * java/io/OutputStreamWriter.java + (OutputStreamWriter(OutputStream,Charset)): Set encodingName. + (OutputStreamWriter(OutputStream,CharsetEncoder)): Likewise. + +2006-11-08 Roman Kennke + + * javax/swing/text/html/HTMLEditorKit.java + (getParser): Use plain HTML_401F DTD. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.print): Removed method and all calls to it. + (HTMLReader.printBuffer): Removed method and all calls to it. + (HTMLReader.inImpliedParagraph): New field. + (HTMLReader.inParagraph): New field. + (HTMLReader.addContent): Create implied p-tag if necessary. + (HTMLReader.addSpecialElement): Create implied p-tag if necessary. + (HTMLReader.blockClose): Close implied p-tag if necessary. + (HTMLReader.blockOpen): Close implied p-tag if necessary. + * gnu/javax/swing/text/html/parser/HTML_401Swing.java: Removed. + +2006-11-08 Roman Kennke + + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Removed mapping for TD tag. This + is done in TableView. + * javax/swing/text/html/TableView.java: + Implemented from scratch. + +2006-11-07 Roman Kennke + + * gnu/javax/swing/text/html/parser/support/Parser.java + (_handleText): Check if text content is actually allowed before + passing empty text fragments on to the parser callbacks. + +2006-11-07 Mark Wielaard + + * gnu/java/net/protocol/jar/Handler.java (parseURL): Flatten jar + path. + (flat): New method. + +2006-11-07 Tania Bento + + * java/awt/FlowLayout.java + (getSize): If parent does not have a component, then a + different formula is used to calcuate the width. + +2006-11-07 Roman Kennke + + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Include ListView. + * javax/swing/text/html/ListView.java + (paint): Removed comment. + * javax/swing/text/html/StyleSheet.java + (CSSStyle.priority): New field. + (CSSStyle.CSSStyle(int)): New constructor with priority. + (CSSStyle.compareTo): New method. Used for sorting the styles. + (CSSStyleSheetParserCallback.declaration): Store the style + with the complete selector. + (ListPainter.attributes): Renamed as field. + (ListPainter.styleSheet): New field. + (ListPainter.type): New field. + (ListPainter.ListPainter): Pass StyleSheet to constructor. + (ListPainter.paint): Provide simplistic implementation. + (getListPainter): Pass StyleSheet to constructor. + (resolveStyle): Fixed CSS style resolving. + +2006-11-07 Roman Kennke + + * gnu/javax/swing/text/html/css/BorderWidth.java: + New class. Handles CSS border width values. + * gnu/javax/swing/text/html/css/Length.java + (floatValue): Made protected so that BorderWidth can access it. + * javax/swing/text/html/CSS.java + (Attribute.BORDER_BOTTOM_COLOR): New static field. + (Attribute.BORDER_BOTTOM_STYLE): New static field. + (Attribute.BORDER_LEFT_COLOR): New static field. + (Attribute.BORDER_LEFT_STYLE): New static field. + (Attribute.BORDER_RIGHT_COLOR): New static field. + (Attribute.BORDER_RIGHT_STYLE): New static field. + (Attribute.BORDER_TOP_COLOR): New static field. + (Attribute.BORDER_TOP_STYLE): New static field. + (getValue): Added some mappings for the border color and + border width values. + * javax/swing/text/html/CSSBorder.java: New class. Implements + CSS borders. + * javax/swing/text/html/StyleSheet.java + (BoxPainter.background): New field. + (BoxPainter.border): New field. + (BoxPainter.bottomInset): Documented. + (BoxPainter.leftInset): Documented. + (BoxPainter.rightInset): Documented. + (BoxPainter.topInset): Documented. + (BoxPainter.BoxPainter): Added support for borders and background. + (BoxPainter.getInset): Add border insets. + (BoxPainter.paint): Implemented. Paints the background and the + CSS border. + (addRule): Be less picky about parse and IO exceptions. + (getBoxPainter): Adjust to new BoxPainter constructor. + +2006-11-07 Andreas + + * examples/Makefile.am: Add rule to install the *.html files we use + in the Swing Demo. + +2006-11-06 Francis Kung + + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (fillRect): Handle custom composites. + (drawRenderedImage): Handle custom composites. + (drawImage): Handle custom composites. + (createBuffer): New method. + (drawLine): Handle custom composites. + (drawComposite): New method. + (fill): Handle custom composites. + (getNativeCM): New method. + (drawGlyphVector): Handle custom composites. + (drawRect): Handle custom composites. + (draw): Handle custom composites. + * gnu/java/awt/peer/gtk/VolatileImageGraphics.java + (drawComposite): Unset composite during draw call, to prevent parent + from handling composite again. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (getBufferCM): Added comments. + (getNativeCM): Made abstract. + (setComposite): Removed comments. + +2006-11-06 Roman Kennke + + * examples/gnu/classpath/examples/swing/HtmlDemo.java: + Fixed initial window size and start document. + +2006-11-06 Roman Kennke + + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.addSpecialElement): Removed comment about + htmlAttributeSet. + (HTMLReader.handleComment): Create SimpleAttributeSet instead + of htmlAttributeSet. + * javax/swing/text/html/parser/DocumentParser.java + (gnuParser.handleStartTag): Use SimpleAttributeSet instead + of htmlAttributeSet. + * javax/swing/text/html/parser/ParserDelegator.java + (gnuParser.handleStartTag): Use SimpleAttributeSet instead + of htmlAttributeSet. + * gnu/javax/swing/text/html/parser/GnuParserDelegator.java + (gnuParser.handleStartTag): Use SimpleAttributeSet instead + of htmlAttributeSet. + * gnu/javax/swing/text/html/parser/support/Parser.java + (getAttributes): Return a SimpleAttributeSet. + (restOfTag): Don't set resolving parent here. + +2006-11-06 Tania Bento + + * java/awt/TextComponent.java + (setSelectionStart): Added check. + +2006-11-06 Tania Bento + + * java/awt/TextField.java + (minimumSize(int)): Check if minimum size has been previously + set and changed values of Dimension returned if peer == null. + (preferredSize(int)): Check if preferred size has been previously + set and changed values of Dimension returned if peer == null. + +2006-11-06 Roman Kennke + + * javax/swing/JTree.java + (TreeModelHandler.treeNodesRemoved): Implemented. + (TreeModelHandler.treeStructureChanged): Implemented. + (nodeStates): Made package private. + +2006-11-06 Francis Kung + + PR 29420 + * javax/swing/JTree.java + (clearSelectionPathStates): New private method to clean up nodeStates. + (removeSelectionPath): Call clearSelectionPathStates(). + (removeSelectionPaths): Call clearSelectionPathStates(). + (removeSelectionRow): Call clearSelectionPathStates(). + (setSelectionPath): Call clearSelectionPathStates(). + (setSelectionPaths): Call clearSelectionPathStates(). + (setSelectionRow): Call clearSelectionPathStates(). + +2006-11-06 Ito Kazumitsu + + Fixes bug #29703 + * java/util/regex/Matcher.java(reset): Reset inputCharIndexed. + +2006-11-06 Roman Kennke + + * examples/gnu/classpath/examples/swing/HtmlDemo.java: + Changed to implement a minimalistic browser. + * examples/gnu/classpath/examples/swing/forms.html, + * examples/gnu/classpath/examples/swing/textstyles.html, + * examples/gnu/classpath/examples/swing/welcome.html: + Some example content. + +2006-11-06 Roman Kennke + + * javax/swing/text/ComponentView.java + (setParent): Lock the document and repaint the hosting + container. + * javax/swing/text/FlowView.java + (FlowStrategy.createView): Removed comment. + (FlowView): Initialize span with Short.MAX_VALUE. + (getFlowStart): Return 0 unconditionally. + (layout): Moved code around to make it more readable. + (loadChildren): Always set the parent. + * javax/swing/text/GlyphView.java + (DefaultGlyphPainter.fontMetrics): New field. + (DefaultGlyphPainter.getAscent): Use new helper method to + synchronize the font metrics. + (DefaultGlyphPainter.getBoundedPosition): Use new helper method + to synchronize the font metrics. + (DefaultGlyphPainter.getDescent): Use new helper method to + synchronize the font metrics. + (DefaultGlyphPainter.getHeight): Use new helper method to + synchronize the font metrics. + (DefaultGlyphPainter.getSpan): Use new helper method to + synchronize the font metrics. + (DefaultGlyphPainter.modelToView): Use new helper method to + synchronize the font metrics. + (DefaultGlyphPainter.updateFontMetrics): New helper method for + font metrics caching. + (DefaultGlyphPainter.viewToModel): Use new helper method to + synchronize the font metrics. Fixed view to model mapping. + * javax/swing/text/View.java + (removeAll): Pass null to replace(). + (setParent): Only reparent children that have this view as parent. + +2006-11-05 Mark Wielaard + + * include/gnu_java_net_VMPlainDatagramSocketImpl.h: Removed. + * include/gnu_java_nio_channels_FileChannelImpl.h: Removed. + * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c: + Removed. + * native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c: + Removed. + * native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES): + Remove gnu_java_nio_channels_FileChannelImpl.c. + +2006-11-03 Roman Kennke + + * javax/swing/text/html/BlockView.java + (attributes): New field. + (cssHeight): New field. + (cssWidth): New field. + (painter): New field. + (calculateMajorAxisRequirements): Overridden to account for + CSS settings. + (calculateMinorAxisRequirements): Overridden to account for + CSS settings. + (layoutMinorAxis): Overridden to account for CSS settings. + (changedUpdate): Formatting fixlet. + (constrainSize): New helper method. + (getAlignment): Fix alignment. + (getAttributes): Cache attributes for better performance. + (getStyleSheet): Fetch stylesheet from document rather than creating + a new one. + (paint): Remove comment. + (setCSSSpan): New helper method. + (setPropertiesFromAttributes): Implemented to fetch the + recognized properties. + * javax/swing/text/html/CSS.java + (getValue): Added mapping for width and height attributes. + * javax/swing/text/html/InlineView.java + (longestWord): New field. + (getLongestWord): New helper method. + (calculateLongestWord): New helper method. + (getMinimumSpan): Overridden to constrain the minimum span by the + longest word. + * javax/swing/text/html/ParagraphView.java + (cssHeight): New field. + (cssWidth): New field. + (calculateMinorAxisRequirements): Overridden to account for + CSS settings. + (setCSSSpan): New helper method. + (setPropertiesFromAttributes): Fetch CSS width and height. Added + null check. + * gnu/javax/swing/text/html/css/Length.java + (percentage): New field. + (Length): Determine percentage values. + (getValue(float)): New method for handling percentage values. + (isPercentage): New method. + +2006-11-03 Tania Bento + + * java/awt/TextArea.java + (getMinimumSize): Changed documentation. + (getPreferredSize): Changed documentation. + (getMinimumSize(int,int)): Changed documenation. + (getPreferredSize(int,int)): Changed documenation. + (minimumSize): Changed documentation. + (preferredSize): Changed documenation. + (minimumSize(int,int)): Changed documentation. Checked if + minimum size had been previously set and changed values of + Dimension returned if peer == null. + (preferredSize(int, int)): Checked if preferred size had been + previously set and changed values of Dimension returned if + peer = null. + +2006-11-03 Tania Bento + + * java/awt/event/ComponentEvent.java + (paramString): Changed format of string representation returned. + +2006-11-03 Roman Kennke + + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.FormAction.start): Added support for textarea. + (HTMLReader.FormAction.end): Added support for textarea. + (HTMLReader.HeadAction.end): Call super to actually close the + block. + (HTMLReader.inTextArea): New field. + (HTMLReader.textAreaDocument): New field. + (HTMLReader.handleText): Call textAreaContent when inside + a textarea tag. + (HTMLReader.textAreaContent): Implemented to initialize + the text area's model. + * javax/swing/text/html/FormView.java + (createComponent): Added support for textarea tag. + +2006-11-03 Roman Kennke + + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.IsindexAction.start): Implemented. + +2006-11-03 Roman Kennke + + * javax/swing/text/html/StyleSheet.java + (addRule): Implemented. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.inStyleTag): New field. + (HTMLReader.styles): New field. + (HTMLReader.HeadAction.end): Implemented to read all stylesheets, + if any. + (HTMLReader.StyleAction.start): Set inStyleTag flag. + (HTMLReader.StyleAction.end): Set inStyleTag flag. + (HTMLReader.handleText): When inside a style tag, add + content to the styles array. + +2006-11-02 Roman Kennke + + * javax/swing/text/html/FormView.java + (maxIsPreferred): New field. + (createComponent): Initialize components correctly. + (getMaximumSpan): Return the preferred span for components + that need this. The maxIsPreferred flag is set accordingly + in createComponent. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.FormAction.start): Implemented to set the + correct model as attribute. + (HTMLReader.FormAction.setModel): New helper method. + (HTMLReader.FormAction.end): Call super to finish the element. + Added TODO about things left to do. + (HTMLReader.handleComment): Use SimpleAttributeSet rather + than htmlAttributeSet. + * javax/swing/text/html/HTMLEditorKit.java + (HTMLFactory.create): Create BlockView for FORM tags. + Create FormView for INPUT, TEXTAREA and SELECT tags. + +2006-11-02 David Gilbert + + * java/awt/geom/GeneralPath.java: API doc fixes. + +2006-11-02 Roman Kennke + + * javax/swing/text/html/ImageView.java + (getImageURL): Fetch attribute from element. Consider the + base URL for relative image locations. + +2006-11-02 Roman Kennke + + * javax/swing/JEditorPane.java + (setContentType): Strip off attributes. + * javax/swing/text/html/HTMLEditorKit.java + (LinkController.activateLink(int,JEditorPane,int,int): New + method. Implements activation of a hyperlink. + (LinkController.activateLinke(int,JEditorPane)): Delegate + to the other activateLink() method. + (LinkController.createHyperlinkEvent): New helper method. + (LinkController.mouseClicked): Implemented to activate the link. + (LinkController.mouseDragged): Added comment that this + method does nothing. + (LinkController.mouseMoved): Update cursor for hyperlinks. + (mouseHandler): Renamed field to linkController. + (HTMLEditorKit): Create a link controller. + (clone): Give the clone a new link controller. + (deinstall): De-install link controller as mouseMotionListener too. + (install): Install link controller as mouseMotionListener too. + +2006-11-02 Roman Kennke + + PR 29644 + * javax/swing/text/FlowView.java + (FlowStrategy.changedUpdate): Reversed condition. This caused + wrong layout and bad performance. + (FlowStrategy.insertUpdate): Reversed condition. This caused + wrong layout and bad performance. + (FlowStrategy.removeUpdate): Reversed condition. This caused + wrong layout and bad performance. + (LogicalView): Changed to be a subclass of CompositeView. + (LogicalView()): Only take one Element argument. + (LogicalView.childAllocation): New method for implementing + the abstract CompositeView method. + (LogicalView.forwardUpdateToView): Overridden for correct + reparenting. + (getMinimumSpan): Overridden to handle line breaking correctly. + (getPreferredSpan): Implemented to handle line breaking correctly. + (getViewAtPoint): New method for implementing + the abstract CompositeView method. + (getViewIndexAtPosition): Overridden to handle leaf elements + correctly. + (isAfter): New method for implementing + the abstract CompositeView method. + (isBefore): New method for implementing + the abstract CompositeView method. + (loadChildren): Overridden to handle leaf elements + correctly. + (paint): New method for implementing + the abstract CompositeView method. + (calculateMinorAxisRequirements): Use preferredSpan in calculation. + (loadChildren): Initialize flow layout by sending a synthetic + insertUpdate() to the layout strategy. + * javax/swing/text/GlyphView.java + (DefaultGlyphPainter.getBoundedPosition): Fall back to Toolkit's + font metrics if component is not available. Add initial offset + to result. + (breakView): Be more clever when breaking the view. + (getBreakLocation): New helper method to determine a good + break location. + (getBreakWeight): Be more clever when breaking the view. + (getTabbedSpan): Make sure we have a painter. Use view's + start and end offset rather than the element's. + * javax/swing/text/Utilities.java + (drawTabbedText): Avoid useless add and sub with the y offset. + +2006-11-02 Roman Kennke + + PR 29644 + * gnu/java/awt/peer/ClasspathFontPeer.java + (getStringBounds): Removed abstract method. This is replaced + in java.awt.Font to use a TextLayout. + * gnu/java/awt/peer/gtk/GtkWindowPeer.java + (GtkWindowPeer): Set a font on the window object. + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (FreetypeGlyphVector(Font,String,FontRenderContext,int)): + Changed to take char,int,int instead of String. Filter + control characters. + (FreetypeGlyphVector(Font,String,FontRenderContext)): + Create char array out of string. + (getLogicalBounds): Don't translate bounds. They already are + translated. + * gnu/java/awt/peer/gtk/GdkFontMetrics.java + (stringWidth): Filter out control characters. + * gnu/java/awt/peer/gtk/GdkFontPeer.java + (getStringBounds): Removed unneeded method. + (layoutGlyphVector): Pass char array directly to FreetypeGlyphVector + constructor. + * gnu/java/awt/peer/qt/QtFontPeer.java + (getStringBounds): Removed unneeded method. + * gnu/java/awt/peer/x/XFontPeer.java + (getStringBounds): Removed unneeded method. + * gnu/java/awt/peer/x/XFontPeer2.java + (getStringBounds): Removed unneeded method. + * java/awt/Font.java + (getStringBounds(char[],int,int,FontRenderContext)): + Use TextLayout to determine the bounds. + (getStringBounds(CharacterIterator,int,int,FontRenderContext)): + Delegate to the char[] version of this method. + (getStringBounds(String,FontRenderContext)): + Delegate to the char[] version of this method. + (getStringBounds(String,int,int,FontRenderContext)): + Delegate to the String version of this method. + +2006-11-01 Tania Bento + + * java/awt/ScrollPaneAdjustable.java + (paramString): Changed format of string representation returned. + (paramStringHelper): New private method. + +2006-11-01 Tania Bento + + * java/awt/GridBagLayout.java + (toString): Implemented method. + +2006-10-30 Thomas Fitzsimmons + + * native/plugin/gcjwebplugin.cc (GCJ_New): Move GLib threading + initialization to NP_Initialize. + (NP_Initialize): Initialize GLib threading. + +2006-10-31 Tania Bento + + * javax/swing/JTextField.java + (fireActionPerformed): When creating the new event, if + actionCommand == null, then getText() is used. + +2006-10-31 Francis Kung + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (fillArc): Corrected arc type to Arc2D.PIE. + +2006-10-31 Roman Kennke + + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.PreAction.end): Implemented. + (HTMLReader.PreAction.start): Implemented. + (HTMLReader.inPreTag): New field. + (HTMLReader.handleTag): When inside a pre tag, call preContent(). + (HTMLReader.preContent): Implemented. + +2006-10-31 Tania Bento + + * javax/swing/JTextField.java + (fireActionPerformed): When creating the new event, + actionCommand should be used as the command, not + getText(). + +2006-10-31 Roman Kennke + + * javax/swing/text/html/HTMLEditorKit.java + (write): Use HTMLWriter or MinimalHTMLWriter for writing + HTML or Styled documents. + +2006-10-31 David Fu + + * javax/swing/text/html/HTMLWriter.java: New class. + +2006-10-30 Roman Kennke + + * java/awt/dnd/DragSourceContext.java + (dragExit): Use constant fields instead of 0. + (updateCurrentCursor): Completed implementation. + +2006-10-30 Roman Kennke + + * java/awt/dnd/DragGestureRecognizer.java + (resetRecognizer): Added API docs. Do not replace the events object + but rather clear() it. Removed not implemented tag. + +2006-10-30 Roman Kennke + + * java/awt/datatransfer/DataFlavor.java + (writeExternal): Remove not implemented tag. + +2006-10-30 Roman Kennke + + * java/awt/datatransfer/DataFlavor.java + (javaFileListFlavor): Don't explicitly specify class. + (plainTextFlavor): Don't explicitly specify class. + (mimeType): Changed to type MimeType. Remove final. + (representationClass): Remove final. + (DataFlavor): Don't do anything here. + (DataFlavor(Class,String,String)): Removed. + (DataFlavor(Class,String)): Initialize here. + (DataFlavor(String,String,ClassLoader)): Initialize in init(). + (DataFlavor(String,String)): Initialize in init(). + (DataFlavor(String)): Initialize in init(). + (init): New initialization method. + (getMimeType): Delegate to MimeType.toString(). + (getParameter(String,String)): Removed. Is now done in MimeType. + (getParameter(String)): Delegate to MimeType. + (getPrimaryType): Delegate to MimeType. + (getRepresentationClassFromMime): Removed. + (getRepresentationClassFromMimeThrows): Removed. + (getSubType): Delegate to MimeType. + (hashCode): Take MimeType.toString() for the hashCode. + (isFlavorRemoveObjectType): Return true only when representation + class is remove and serializable and the mime type is remote. + (isFlavorSerializedObjectType): Return true only when representation + class is serializable and the mime type is serialized. + (isMimeTypeEqual): Rewritten to delegate to MimeType.matches(). + (isMimeTypeSerializedObject): Delegate to isMimeTypeEqual(). + (readExternal): Implemented stub method. + (writeExternal): Implemented stub method. + * java/awt/datatransfer/MimeType.java: New helper class. + +2006-10-28 Roman Kennke + + * javax/swing/TransferHandler.java + (importData): Implemented stub method. Added API docs. + +2006-10-26 Christian Elias Naur + + * native/jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_depth): New + function. + * native/jni/classpath/classpath_jawt.h: Likewise. + * native/jawt/jawt.c (_Jv_GetDrawingSurfaceInfo): Added + initializer for surface_info_x11->depth. + +2006-10-26 Tania Bento + + * java/awt/FileDialog.java: + (setFile): Changed if-clause condition. + +2006-10-25 Francis Kung + + * include/gnu_java_nio_VMChannel.h, + * include/java_net_VMNetworkInterface.h, + * include/gnu_java_nio_EpollSelectorImpl.h, + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h, + * include/gnu_java_nio_FileChannelImpl.h, + * include/gnu_java_nio_KqueueSelectorImpl.h, + * include/gnu_java_nio_VMPipe.h, + * include/gnu_java_net_VMPlainSocketImpl.h: Regenerated. + +2006-10-25 Tania Bento + + * java/awt/Dialog.java: Created new private variable + next_dialog_number. + (Dialog(Frame, String, boolean, GraphicsConfiguration)): + Set cursor to default cursor. + (Dialog(Dialog, STring, boolean, GraphicsConfiguration)): + Same. + (generateName): New method. + (getUniqueLong): New private method. + * java/awt/FileDialog.java: Created new private variable + next_file_dialog_number. + (setFile): If file == "", set it to null. + (generateName): New method. + (getUniqueLong): New private method. + +2006-10-25 Robert Schuster + + * java/net/MulticastSocket.java: + (setNetworkInterface): Rewritten. + +2006-10-25 Robert Schuster + + * native/jni/java-net/javanet.h: Added declaration for + _javanet_create_inetaddress. + * native/jni/java-net/javanet.c: + (_javanet_create_inetaddress): Removed static keyword. + +2006-10-25 Robert Schuster + + * gnu/java/net/PlainDatagramSocketImpl.java: + (connect): Use VMChannel instance for connect call. + (getTimeToLive): Call VMPlainSocketImpl.getTimeToLive. + (setTimeToLive): Call VMPlainSocketImpl.setTimeToLive. + (setOption): Handle multicast options. + (getOption): Handle multicast options. + * gnu/java/net/PlainSocketImpl.java: + (getTimeToLive): Call VMPlainSocketImpl.getTimeToLive. + (setTimeToLive): Call VMPlainSocketImpl.setTimeToLive. + (setOption): Filter unappropriate options. + (getOption): Filter unappropriate options. + (connect): Use given SocketAddress. + (close): Reset address and port. + (getInetAddress): + * include/Makefile.am: Removed all occurences of + gnu_java_net_VMPlainDatagramSocketImpl.h. + * include/gnu_java_net_VMPlainDatagramSocketImpl.h: Removed. + * native/jni/java-net/Makefile.am: Removed + gnu_java_net_VMPlainDatagramSocketImpl.c from sources. + * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c: + Removed. + as SocketException, declare to throw SocketException. + * native/jni/java-nio/gnu_java_nio_VMChannel.c: Added definitions + for SocketException and ConnectException. + (Java_gnu_java_nio_VMChannel_connect): Throw SocketException instead + of IOException. + (Java_gnu_java_nio_VMChannel_connect6): Throw SocketException instead + of IOException. + (Java_gnu_java_nio_VMChannel_accept): Rewritten. + (JCL_thread_interrupted): New function. + (initIDs): Added initialisation for isThreadInterrupted method id. + * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: Added + CPNET_IP_TTL to java_sockopt enum. + (Java_gnu_java_net_VMPlainSocketImpl_setOption): Handle CPNET_IP_TTL + case, handle SO_LINGER case properly. + (Java_gnu_java_net_VMPlainSocketImpl_getOption): Handle CPNET_IP_TTL + case, handle SO_LINGER case properly. + (Java_gnu_java_net_VMPlainSocketImpl_getMulticastInterface): New + function. + (Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface): New + function. + (Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6): New + function. + (Java_gnu_java_net_VMPlainSocketImpl_leave6): Fixed constant to be + IPV6_LEAVE_GROUP. + * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java: Removed. + * vm/reference/gnu/java/nio/VMChannel.java: + (connect(int, byte[], int, int)): Declare to throw SocketException. + (connect6): Declare to throw SocketException. + (connect(InetSocketAddress, int)): Catch IOException and rethrow + (isThreadInterrupted): New method. + * vm/reference/gnu/java/net/VMPlainSocketImpl.java: Added CP_IP_TTL + field. + (setTimeToLive): New method. + (getTimeToLive): New method. + (setMulticastInterface(int, InetAddress)): New method. + (setMulticastInterface(int, int, Inet4Address): New method. + (setMulticastInterface6(int, int, Inet6Address): New method. + (setOptions): Handle SO_LINGER case. + (getOptions): Add missing SO_REUSEADDR case. + * java/net/Socket.java: + (Socket(InetAddress, int, InetAddress, int, boolean)): Close socket + when exception was thrown out of connect(). + (setSoLinger): Replaced instantiations with valueOf calls, replaced + Boolean.FALSE with Integer.valueOf(-1). + * native/jni/native-lib/cpio.h: Added cpio_closeOnExec declaration. + * native/jni/native-lib/cpio.c: Added cpio_closeOnExec implementation. + * NEWS: Documented VM interface changes. + +2006-10-25 Robert Schuster + + * java/net/Inet6Address.java: + (isMulticastAddress): Fixed check. + +2006-10-25 Robert Schuster + + Fixes PR29576 + * java/net/MulticastSocket.java: + (getNetworkInterface): Return a special NetworkInterface instance + if the socket's multicast interface is set to any. + +2006-10-25 Robert Schuster + + Fixes PR29576 + * java/net/NetworkInterface.java: + (createAnyInterface): New method. + (equals): Added if-statement to handle case where netif.name is null. + * vm/reference/java/net/VMNetworkInterface.java: + (hashCode): Rewritten. + (VMNetworkInterface): New constructor. + +2006-10-24 Thomas Fitzsimmons + + * tools/Makefile.am: Add ASM_JAR define to each tool's CFLAGS. + * tools/toolwrapper.c (main): Set bootclasspath, not classpath. + Add ASM_JAR to bootclasspath. + +2006-10-24 Tania Bento + + * java/awt/Scrollbar.java: + (setLineIncrement): Removed unnecessary if-clause and if + lineIncrement == 0, then it should be set to 1, not 0. + (setPageIncrement): Removed unnecessary if-clause and if + pageIncrement == 0, then it should be set to 1, not 0. + (setValues): If visibleAmount <= 0, it should be set to 1, not 0. + If maximum <= minimum, maximum should be set to mininum + 1. The + actual value of maximum is maximum - visibleAmount, so I made + this change to the appropriate if-check. Remove the two unneccessary + if-clauses. + +2006-10-23 Francis Kung + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (cairoSetFont): New method. + (copy): Set font using setFont method. + (setFont): Call cairoSetFont. + (setup): Set font using setFont method. + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Added method. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (install_font_peer): Removed. + (cairoDrawGlyphVector): Removed call to install_font_peer. + (cairoSetFont): New method. + +2006-10-23 Thomas Fitzsimmons + + * gnu/java/awt/peer/NativeEventLoopRunningEvent.java: New file. + * gnu/java/awt/peer/gtk/GtkMainThread.java: Post + NativeEventLoopRunningEvent after GTK main loop start and stop. + * java/awt/EventQueue.java (isShutdown): Check nativeLoopRunning. + (getNextEvent): Set dispatchThread to null. + (postEventImpl): Set nativeLoopRunning. + (pop): Interrupt event dispatch thread. + * java/awt/Frame.java (noteFrame): Synchronize on weakFrames. + +2006-10-22 Christian Thalinger + + * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c (config-int.h): + Added include. + * native/jni/java-nio/gnu_java_nio_VMChannel.c (config-int.h): + Likewise. + +2006-10-23 Marco Trudel + + * gnu/javax/crypto/pad/PKCS7.java (unpad): Removed an unnecessary test. + * javax/crypto/CipherOutputStream.java: Re-implemented. + * gnu/javax/crypto/jce/cipher/CipherAdapter.java + (engineUpdate(byte[], int, int)): Always keep data for unpadding in padded + decryption mode and check if it is a complete block. + (engineUpdate(byte[], int, int, byte[], int)): Likewise. + (engineDoFinal(byte[], int, int)): In padded decryption mode, take + partially processed data into account. + +2006-10-21 Tom Tromey + + PR classpath/29086: + * java/util/AbstractCollection.java (toArray): Removed cast. + +2006-10-20 Tom Tromey + + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java (printClass): + Don't use mangled class name for .h file. + * tools/gnu/classpath/tools/javah/JniStubPrinter.java (printClass): + Don't use mangled class name for .c file. + * tools/gnu/classpath/tools/javah/CniPrintStream.java (writeClass): + Handle classes from the default package. + +2006-10-20 Francis Kung + + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Added missing constants. + +2006-10-19 Francis Kung + + PR 29510 + * java/awt/image/BufferedImage.java + (constructor): Updated some properties of default image types. + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (argb32): Updated field to match default in BufferedImage. + +2006-10-18 Roman Kennke + + PR 29419 + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (copyArea): Changed size comparison to return when size == 0 + too. + * javax/swing/JViewport.java + (paintBackingStore): Check width and height of blitted area + and only do blit if its > 0. + (paintBlit): Check width and height of blitted area + and only do blit if its > 0. + +2006-10-18 Roman Kennke + + PR 27091 + * gnu/java/awt/peer/gtk/GtkFramePeer.java + (maximize): New native method. + (unmaximize): New native method. + (iconify): New native method. + (deiconify): New native method. + (getState): Implemented. + (setState): Implemented. + * gnu/java/awt/peer/gtk/GtkWindowPeer.java + (oldState): Rename to windowState and made protected, so that + the FramePeer can access it. + (postWindowEvent): Handle state change events more gently and + correctly. + * java/awt/Frame.java + (getState): Fetch state from getExtendedState(). + (setExtendedState): Update the peer. Check if the state change + is actually supported. + (getExtendedState): Update the state from the peer. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c + (maximize): New method. + (unmaximize): New method. + (iconify): New method. + (deiconify): New method. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c + (AWT_FRAME_NORMAL): New macro. + (AWT_FRAME_ICONIFIED): New macro. + (AWT_FRAME_MAXIMIZED_BOTH): New macro. + (window_window_state_cb): Rewritten to handle window state changes + more gently (mostly on the java side of the world). + * include/gnu_java_awt_peer_gtk_GtkFramePeer.h: Regenerated. + +2006-10-18 Tania Bento + + * java/awt/CardLayout.java: + (maximumLayoutSize): Return a new Dimension with Integer.MAX_VALUE as + its height and width if Container passed as argument is null. + (gotoComponent): Consider the case where the component is not visible. + +2006-10-18 Thomas Fitzsimmons + + * resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties: + Rename file... + * resource/gnu/classpath/tools/appletviewer/messages.properties: + New file. + * resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties: + Remove file. + * tools/gnu/classpath/tools/appletviewer/AppletWarning.java: + Remove file. + * tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java: + Likewise. + * tools/gnu/classpath/tools/appletviewer/Messages.java: New file. + * tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java: + Retrieve user-visible strings through Messages.getString. + * tools/gnu/classpath/tools/appletviewer/Main.java: Likewise. + * tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java: + Likewise. + * tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java: + Likewise. + * tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java: + Likewise. + * tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java: + Likewise. + * tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java: + Likewise. + * tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java: + Likewise. + +2006-10-18 Roman Kennke + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c + (AWT_WINDOW_OPENED): Remove unnecessary macro. + (window_show_cb): Removed unnecessary function. + (connect_signals): Don't connect signal for show. * + gnu/java/awt/peer/gtk/GtkWindowPeer.java + (hasBeenShown): Removed. This is handled in java.awt.Window. + (postWindowEvent): Removed handling of WINDOW_OPENED. This is done + in java.awt.Window. * java/awt/Window.java + (dispose): Post WINDOW_CLOSED here, not WINDOW_OPENED. + +2006-10-18 Francis Kung + + * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java + (drawRenderedImage): New method. + (drawImage): New method. + (CairoSurfaceGraphics): Set clip. + (createBuffer): New method. + (getBufferCM): New method. + (drawComposite): New method. + (fill): New method. + (getNativeCM): New method. + (drawGlyphVector): New method. + (draw): New method. + * gnu/java/awt/peer/gtk/VolatileImageGraphics.java + (getNativeCM): Reflect renamed field. + * gnu/java/awt/peer/gtk/CairoSurface.java + (cairoCM_pre): Renamed from cairoColorModel. + (cairoColorModel): Set premultiplication to false. + +2006-10-18 Roman Kennke + + PR 28769 + * javax/swing/JScrollPane.java + (viewportBorder): Made field private. + (wheelScrollingEnabled): Made field private. + (JScrollPane): Enabled wheel scrolling by default. + * javax/swing/JTree.java + (TreeSelectionRedirector.valueChanged): Don't repaint anything + here. + (getScrollableUnitIncrement): Fixed thinko. + * javax/swing/plaf/basic/BasicScrollBarUI.java + (static scrollByBlock): New static method to avoid code duplication + for the BasicScrollPane wheel scrolling. + (static scrollByUnits): New static method to avoid code duplication + for the BasicScrollPane wheel scrolling. + (scrollByBlock): Delegate to static helper method. + (scrollByUnit): Delegate to static helper method. + * javax/swing/plaf/basic/BasicScrollPaneUI.java + (MouseWheelHandler.mouseWheelMoved): Delegate to BasicScrollBarUI + static helper methods to avoid code duplication. + (MouseWheelHandler.bounds): Removed. + (MouseWheelHandler.getValue): Removed. + (MouseWheelHandler.scroll): Removed. + +2006-10-18 Roman Kennke + + PR 29502 + * gnu/java/awt/peer/gtk/GtkWindowPeer.java + (updateComponent): Don't override this here. + * java/awt/Window.java + (addWindowListener): Ignore null listener. Set newEventsOnly flag. + (addWindowFocusListener): Ignore null listener. Set newEventsOnly + flag. + (addWindowStateListener): Ignore null listener. Set newEventsOnly + flag. + +2006-10-18 Roman Kennke + + * javax/swing/JEditorPane.java + (getStream): Try to detect and set the content type of the + connection stream. + +2006-10-18 Roman Kennke + + * javax/swing/RepaintManager.java + (RepaintWorkerEvent): Pass full set of params to super. + (RepaintWorker.dispatch): Overridden to allow apps to call this + via reflection. + (addDirtyRegion): Synchronize a little more to protect the + dirtyComponents field and avoid NPEs. + (invokeLater): Pass full set of params to RepaintWorkerEvent + constructor. + +2006-10-18 Roman Kennke + + * javax/swing/JEditorPane.java + (page): Removed field. The page is now stored in the correct + document property. + (getPage): Fetch page URL from document property. + (read): Set the document for this JEditorPane. Use a Reader + for reading in the document. + (setPage): Call getStream() to get the stream from which we read. + Fire property change. Store page in document property. + +2006-10-18 Roman Kennke + + * java/awt/datatransfer/DataFlavor.java + (DataFlavor(String)): Removed check for space in mime string. + +2006-10-18 Roman Kennke + + * java/awt/Container.java + (validateTree): Call ContainerPeer.begin|endLayout() rather than + begin|endValidate(). + (validate): Call ContainerPeer.begin|endValidate() here. + Added some local vars to avoid NPEs. + +2006-10-18 Roman Kennke + + * native/target/.cvsignore + * native/target/Linux/.cvsignore + * native/target/generic/.cvsignore: + Added to let CVS ignore the generated Makefile and Makefile.in + files. + +2006-10-18 Roman Kennke + + PR 29448 + * java/awt/Window.java + (eventTypeEnabled): Overridden to handle WindowEvents. + (processEvent): Switch between processWindowEvent(), + processWindowFocusEvent() and processWindowStateEvent() here, + rather than simply calling processWindowEvent(). + (processWindowEvent): Only dispatch event to listener, do not + switch to processWindowFocusEvent() or processWindowStateEvent() + here. + * javax/swing/JFrame.java + (frameInit): Explicitly enable window and key events here. + (processWindowEvent): Throw out some unnecessary code. + * javax/swing/JWindow.java + (windowInit): Explicitly enable key events here. + * javax/swing/JDialog.java + (close_action): Renamed to closeAction. + (dialogInit): Explicitly enable window events here. + (getDefaultCloseOperation): Renamed close_action to closeAction. + (processWindowEvent): Throw out some unnecessary code. + Renamed close_action to closeAction. + (setDefaultCloseOperation): Renamed close_action to closeAction. + +2006-10-17 Thomas Fitzsimmons + + * gnu/java/awt/peer/gtk/GtkMainThread.java: Introduce running flag + to track native GTK event loop status. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Set and + clear running flag when native GTK event loop starts and stops. + +2006-10-17 Roman Kennke + + * javax/swing/TransferHandler.java + (exportToClipboard): Implemented. + +2006-10-17 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java (draw): Extend updated + region to account for pixel-shifting. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java (shiftDrawCalls): Made + proctected. + +2006-10-17 Francis Kung + + PR 29450 + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (getLogicalBounds): Translate individual glyphs before appending bounds. + (getOutline): Translate individual glyphs before appending outline. + +2006-10-17 Cameron McCormack + + PR 29014 + * java/awt/font/TextLayout.java + (bidi): New field. + (constructor): Store bidi in field. + (getCharacterLevel): Implemented. + +2006-10-17 Roman Kennke + + * javax/swing/TransferHandler.java + (PropertyTransferable): New inner class. Handles transfers + from component properties. + (createTransferable): Implemented. + +2006-10-17 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (drawComposite): Ensure composite does not extend beyond buffer + bounds. + * java/awt/image/Raster.java + (createChild): Ensure child does not extend beyond parent's + bounds. + * java/awt/image/WritableRaster.java + (createWritableChild): Ensure child does not extend beyond + parent's bounds. + +2006-10-17 Jeroen Frijters + + * native/jni/classpath/jcl.c + (JNI_OnLoad): Corrected calling convention. + +2006-10-16 Roman Kennke + + * javax/swing/TransferHandler.java + (propertyName): New field. + (TransferHandler(String)): Store property name in field. + (canImport): Implemented stub method. + (exportDone): This is a no-op. Removed not-implemented mark. + (getPropertyDataFlavor): New helper method. + (getPropertyDescriptor): New helper method. + +2006-10-16 Roman Kennke + + * javax/swing/AbstractButton.java + (AccessibleJButton.getAfterIndex): Implemented. + (AccessibleJButton.getAtIndex): Implemented. + (AccessibleJButton.getBeforeIndex): Implemented. + (AccessibleJButton.getCharacterAttribute): Completed incomplete + method implementation. + +2006-10-16 Roman Kennke + + * javax/swing/JLabel.java + (AccessibleJLabel.getIndexAtPoint): Implemented. + (AccessibleJLabel.getCharacterBounds): Implemented. + (AccessibleJLabel.getTextRectangle): New helper method. + +2006-10-16 Roman Kennke + + * javax/swing/filechooser/FileSystemView.java + (getFileSystemView): Mark as implemented. + +2006-10-14 Roman Kennke + + PR 27957 + * javax/swing/JComponent.java + (toolTipText): Removed field. + (createToolTip): Don't set tooltip text here. This is done + in the ToolTipManager. + (setToolTipText): Set tooltip text as client property. + (getToolTipText): Get tooltip text from client property. + * javax/swing/ToolTipManager.java + (currentComponent): Made field non-static and of type JComponent. + (currentPoint): Made field non-static. + (currentTip): Made field non-static. + (popup): Made field non-static. + (toolTipText): New field. Stores the current tooltip text. + (checkTipUpdate): New helper method. Checks for updates of + the tooltip text and triggers the appropriate actions. + (getContentPaneDeepestComponent): Removed unneeded casts. + (mouseEntered): Removed unneeded cast. Initially fetch tooltip + text from component. + (mouseMoved): Check for tooltip text updates. + (showTip): Set tooltip text from current setting. + +2006-10-14 Roman Kennke + + PR 27956 + * javax/swing/JSlider.java + (setPaintLabels): Call setLabelTable() instead of setting + the field directly. This also updates the label's size. + +2006-10-13 Tom Tromey + + * tools/gnu/classpath/tools/javah/ClassWrapper.java (toString): New + method. + +2006-10-13 Tania Bento + + * java/awt/ScrollPane.java + (setLayout): Should throw AWTError whenever called. + +2006-10-13 Roman Kennke + + PR 29448 + * java/awt/Component.java + (dispatchEventImpl): Special handle ComponentReshapeEvents to + update the AWT's knowledge about a component's size. + * gnu/java/awt/ComponentReshapeEvent.java: New class. + * gnu/java/awt/peer/gtk/GtkWindowPeer.java + (postConfigureEvent): Directly dispatch a ComponentReshapeEvent + to update the AWT's knowledge about the component bounds. + +2006-10-13 Tania Bento + + * java/awt/ScrollPaneAdjustable.java + (setMaximum): Should throw AWTError whenever called. + (setMinimum): Same. + (setVisibleAmount): Same. + +2006-10-13 Tania Bento + + * java/awt/ScrollPane.java + (addImpl): When calling super, index should be value passed, + not -1. + (getIsValidString): New helper method for paramString(). + (getScrollbarDisplayString): New helper method for paramString(). + (paramString): Changed format of outputted string. + +2006-10-13 David Gilbert + + * javax/swing/tree/DefaultTreeSelectionModel.java + (clone): Added cast to TreePath[]. + +2006-10-13 Roman Kennke + + PR 27780 + * javax/swing/JMenuItem.java + (isDragging): New field. Indicates if we are inside a mouse + drag. + (createMenuDragMouseEvent): Removed unneeded method. + (processMenuDragMouseEvent): Track if we are dragging. + (processMouseEvent): Simply forward to processMenuDragMouseEvent(). + * javax/swing/plaf/basic/BasicMenuItemUI.java + (MenuDragMouseHandler.menuDragMouseDragged): Fetch + MenuSelectionManager from event. + (MenuDragMouseHandler.menuDragMouseEntered): Fetch + MenuSelectionManager from event. + (MenuDragMouseHandler.menuDragMouseExited): Fetch + MenuSelectionManager from event. + (MenuDragMouseHandler.menuDragMouseReleased): Click on mouse + release inside menu item, otherwise clear selection. + (MenuInputHandler.mouseReleased): Avoid multiple calls to getX() + and getY(). Call doClick() rather than the doClick() of JMenuItem. + (doClick): Perform an immediate click. + +2006-10-13 Thomas Fitzsimmons + + * javax/swing/DefaultComboBoxModel.java (setSelectedItem): Simply + return if object is not in the list. + +2006-10-12 Andrew Haley + + * java/lang/InheritableThreadLocal.java: Rename NULL to sentinel. + * java/lang/ThreadLocal.java: Likewise. + +2006-10-12 Roman Kennke + + PR 27956 + * javax/swing/JSlider.java + (LabelUIResource): New inner class. A JLabel as UIResource. + (createStandardLabels): Don't set label bounds here. + Create LabelUIResource instances. + (setInverted): Repaint. + (setLabelTable): Update the label UIs. Revalidate and repaint. + (setMajorTickSpacing): Update the label table. Repaint if + necessary. + (setMinorTickSpacing): Repaint if necessary. + (setOrientation): Revalidate. + (setPaintLabels): Revalidate and repaint. + (setPaintTicks): Revalidate and repaint. + (setPaintTrack): Repaint. + (updateLabelUIs): Set the label sizes here. + (updateUI): Also update the label UIs. + * javax/swing/plaf/basic/BasicSliderUI.java + (ComponentHandler.componentResized): Don't revalidate. + (FocusHandler.focusGained): Don't set field. + (FocusHandler.focusLost): Don't set field. + (PropertyChangeHandler.propertyChange): Calculate geometry + and repaint for a couple more properties. + (TrackListener.mouseReleased): Repaint. + (hasFocus): Removed unneeded field. + (calculateContentRect): No need to check for content size < 0. + (calculateFocusRect): Use insets from insetCache. + (calculateLabelRect): Fixed calculation of label rectangle. + It is relative to the tick rectangle, rather than the content + rectangle. + (calculateTickRect): Small restructuring to avoid unnecessary + comparisons. + (calculateTrackRect): Fixed calculation of track rectangle. + (getMaximumSize): Fixed. Fetch preferred size and set + the height of width to Short.MAX_VALUE. + (getMinimumHorizontalSize): Fixed to return UIManager value. + (getMinimumVerticalSize): Fixed to return UIManager value. + (getPreferredHorizontalSize): Fixed to return UIManager value. + (getPreferredVerticalSize): Fixed to return UIManager value. + (getMinimumSize): Fixed to return the UIManager value plus + insets added. + (getPreferredSize): Fixed to return the UIManager value plus + insets added. + (getWidthOfWidestLabel): Restructured for more cleanness and + efficiency. + (hitClip): New helper method. + (paintHorizontalLabel): Replaced by more efficient and clean + implementation. + (paintVerticalLabel): Replaced by more efficient and clean + implementation. + (paintLabels): Replaced by more efficient and clean + implementation. + (paint): Check if rectangles intersect with clip for maximum + efficiency. + (recalculateIfInsetsChanged): Fixed. This method should + recalculate only when the insets changed. + (setThumbLocation): Repaint with a reasonable clip. + (xPositionForValue): Made more clean and efficient. + (yPositionForValue): Made more clean and efficient. + * javax/swing/plaf/basic/BasicLookAndFeel.java + (initComponenDefaults): Added Slider.horizontalSize, + Slider.verticalSize, Slider.minimumHorizontalSize and + Slider.minimumVerticalSize properties. + * javax/swing/plaf/metal/MetalSliderUI.java + (getTickLength): Add 1 for horizontal sliders and 3 for + vertical sliders. + (paintMajorTickForHorizSlider): Fix colors. Fix line locations. + (paintMinorTickForHorizSlider): Fix colors. Fix line locations. + (paintMajorTickForVertSlider): Fix colors. Fix line locations. + (paintMinorTickForVertSlider): Fix colors. Fix line locations. + +2006-10-12 Roman Kennke + + PR 28696 + * javax/swing/text/FlowView.java + (FlowStrategy.layout): Preserve logical views from getting lost. + (FlowStrategy.layoutRow): Fix line breaking. + (FlowStrategy.adjustRow): Fix line breaking. + (FlowStrategy.changedUpdate): Mark layout invalid, or repaint. + (FlowStrategy.insertUpdate): Mark layout invalid, or repaint. + (FlowStrategy.removeUpdate): Mark layout invalid, or repaint. + (createView): Don't check index. + (contains): New helper method. + (reparent): New helper method. + (layoutDirty): Removed unneeded field. + (FlowView): Removed layoutDirty field init. + (changedUpdate): Removed layoutDirty handling. + (insertUpdate): Removed layoutDirty handling. + (removeUpdate): Removed layoutDirty handling. + (layout): Use isLayoutValid() rather than the layoutDirty field. + * javax/swing/text/GlyphView.java + (startOffset): Removed. + (endOffset): Removed. + (offset): New field. + (length): New field. + (GlyphView): Initialize new fields. Removed old fields. + (createFragment): Create fragment with new relative offsets. + (getEndOffset): Work with new relative offsets. + (getStartOffset): Work with new relative offsets. + * javax/swing/text/ParagraphView.java + (Row.getStartOffset): Overidden to determine the minimum start + offset from the children. + (Row.getEndOffset): Overidden to determine the maximum end + offset from the children. + * javax/swing/text/html/BRView.java + Make subclass of InlineView. + (getBreakWeight): Fall back to super for Y_AXIS. + +2006-10-12 Roman Kennke + + PR 28733 + * javax/swing/plaf/basic/BasicTabbedPaneUI.java + (TabPaneLayout.normalizeTabRuns): Replaced algorithm with + one that avoids faulty state that could cause division by zero + error. + +2006-10-12 Roman Kennke + + PR 28057 + * javax/swing/plaf/basic/BasicRadioButtonUI.java + (paint): Determine correct icon. Added support for HTML label. + Added small optimizations. + (getPreferredSize): Only consider the buttons iconTextGap, and + only when the text is not null. + * javax/swing/plaf/basic/BasicLookAndFeel.java + (initComponentDefaults): Fetch border for RadioButton from + BasicButtons.getRadioButtonBorder(). + * javax/swing/plaf/metal/MetalRadioButtonUI.java + (paintFocus): Paint focus rectangle one pixel smaller. + +2006-10-12 Roman Kennke + + PR 29418 + * javax/swing/tree/AbstractLayoutCache.java + (getNodeDimensions): Don't throw InternalError, but instead + return null. + (getRowsForPaths): Check for null here. + (isFixedRowHeight): Returns true when rowHeight > 0. + (setSelectionModel): Set this as the row mapper for the selection + model. + * javax/swing/tree/VariableHeightLayoutCache.java + (NodeRecord.NodeRecord): Initialize bounds field. + (getBounds): Simply return the bounds field. + (row2Node): Changed to be an ArrayList. + (RECT_CACHE): New field. Caches a Rectangle instance. + (countRows): Added y parameter and return value. The method + now takes the current y position as parameter, and returns + the updated y position. + (getBounds): Fixed to return the correct bounds. + (getPathForRow): Replaced by fixed implementation. + (getPreferredHeight): Replaced by more efficient implementation. + This simply fetches the last node record and returns its lower + bounds. + (getPreferredWidth): Added null check. + (getVisibleChildCount): Added null check. + (getVisiblePathsFrom): Added null check. + (setExpandedState): Also expand the ancestors of the node + to be expanded. + (setModel): Set dirty flag rather than updating for real. + (setNodeDimensions): Overridden to set the dirty flag. + (setRowHeight): Overridden to set the dirty flag. + (update): Don't special case the root here, this is done now + in countRows(). + +2006-10-12 Roman Kennke + + * javax/swing/JComponent.java + (paintImmediately2): Added support for components which need + to force themselves as paint root. + (isPaintRoot): New method. This should be overridden by components + which need to force themselves as paint root. + * javax/swing/JViewport.java + (isPaintRoot): Overridden to force the viewport as paint root + when running in backingstore mode. + +2006-10-12 Roman Kennke + + * javax/swing/tree/DefaultTreeSelectionModel.java + (PathPlaceHolder): New inner class. Wraps a path and its status + wrt to its newness. + (selectedPaths): New field. A supporting datastructure. + (tmpPaths): New field. A supporting datastructure. + (DefaultTreeSelectionModel): Initialize the list selection model, + the leadIndex and the supporting datastructures. + (addPropertyChangeListener): Create changeSupport object lazily. + (addSelectionPaths): Mostly rewritten to handle the different + selection modes correctly. + (addSelectionPath): Delegate to addSelectionPaths(). + (arePathsContiguous): Replaced with more efficient implementation + using BitSet + (canPathBeAdded): Removed unneeded method. + (canPathsBeAdded): Replaced with more efficient implementation. + (clearSelection): Create correct event. Clear the fields correctly, + including the supporting datastructures. + (clone): Also clone the supporting datastructures and nullify + changeSupport field. + (getMaxSelectionRow): Delegate to list selection model. + (getMinSelectionRow): Delegate to list selection model. + (getPath): Removed unneeded method. + (getPropertyChangeListeners): Handle null changeSupport field + correctly. + (getRow): Handle null rowMapper field correctly. + (getSelectionRows): Handle invisible rows correctly. + (insureRowContinuity): Replaced by more efficient and correct + implementation. + (isRowSelected): Delegate to list selection model. + (notifyPathChange): Made more efficient by use of PathPlaceHolder + class. + (removePropertyChangeListener): Handle null changeSupport field. + (removeSelectionPaths): Mostly rewritten to handle the different + selection modes correctly. + (removeSelectionPath): Delegate to removeSelectionPaths(). + (resetRowSelection): Handle list selection model. + (selectOne): Removed unneeded field. + (setRowMapper): Reset the row selection. + (setSelectionMode): Check for invalid mode and set to + DISCONTINUOUS_TREE_SELECTION in this case. Fire property change. + (setSelectionPaths): Mostly rewritten to handle the different + selection modes correctly. + (setSelectionPath): Delegate to setSelectionPaths(). + (updateLeadIndex): Made more efficient. + +2006-10-11 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (buffer, locked): New fields. + (constructors): Initialize new variables. + (createBuffer): New method. + (draw): Implement custom composites. + (drawComposite): New method. + (drawGlyphVector): Implement custom composites. + (drawImage): Implement custom composites. + (drawRenderedImage): Implement custom composites. + (fill): Implement custom composites. + (getBufferCM): New method. + (getNativeCM): New method. + (updateBufferedImage): Fix premultiplication. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (copy): Copy composite. + (drawImage): Set background properly. + (getBufferCM): New method. + (setComposite): Reset alpha composite when using custom composite. + * gnu/java/awt/peer/gtk/CairoSurface.java + (cairoColorModel): New field. + (nativeColorModel): Renamed. + (constructor): Use renamed createCairoSampleModel method. + (createCairoSampleModel): New method. + (createNativeSampleModel): Renamed. + (getBufferedImage): Use renamed cairoColorModel field. + * gnu/java/awt/peer/gtk/GtkVolatileImage.java + (gdkColorModel): New field. + (createGdkSampleModel): New method. + (getPixels): Added comments. + (getSnapshot): Use GDK colour and sample models. + * gnu/java/awt/peer/gtk/VolatileImageGraphics.java + (createBuffer): Use GDK colour and sample models. + (getNativeCM): Added comments. + * java/awt/image/BufferedImage.java + (constructor): Set premultiplied flag properly. + +2006-10-11 Edwin Steiner + + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_lock): Special case Long.MAX_VALUE. + +2006-10-10 Francis Kung + + PR 29372 + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (createPath): Added isDraw parameter. + (draw): Updated createPath call. + (fill): Updated createPath call. + +2006-10-10 Tom Tromey + + PR classpath/29362: + * gnu/xml/transform/TransformerImpl.java (transform): Only strip if + there is a stylesheet. + +2006-10-10 Roman Kennke + + * java/awt/Toolkit.java + (getDefaultTookit): Make method synchronized to avoid + accidentally creating more than one toolkits from different + threads. + +2006-10-10 Roman Kennke + + * java/awt/LightweightDispatcher.java + (handleMouseEvent): Redispatch MOUSE_WHEEL events too. + (redispatch): Transfer the button to the redispatched event. + +2006-10-10 Francis Kung + + * java/awt/image/ColorModel.java (coerceData): Implemented. + +2006-10-09 Christian Elias Naur + + * vm/reference/java/lang/VMClassLoader.java: + (defineClassWithTransformers): Use proper class name format. + +2006-10-09 Gary Benson + + * java/net/ServerSocket.java + (implAccept): Add security check. + (accept): Close socket if security check fails. + (setSocketFactory): Add security check and already-set check. + +2006-10-09 Roman Kennke + + PR 29325 + * javax/swing/JSplitPane.java + (dividerLocation): New field. Stores the divider location. + (JSplitPane): Initialize dividerLocation with -1. + (addImpl): Removed unneeded local variables. + (getDividerLocation): Manage dividerLocation in the JSplitPane + class, not in the UI. + (setDividerLocation): Manage dividerLocation in the JSplitPane + class, not in the UI. Only call the UI method for notification. + * javax/swing/plaf/basic/BasicSplitPaneUI.java + (BasicHorizontalLayoutManager.layoutContainer): Fetch divider + location from the JSplitPane. Honour the minimumSize, but only + if the divider location hasn't been set explicitly. + (BasicHorizontalLayoutManager.minimumLayoutSize): Removed unneeded + statement. + (BasicHorizontalLayoutManager.preferredLayoutSize): Removed unneeded + statement. + (BasicHorizontalLayoutManager.resetToPreferredSizes): Don't touch + the divider location. + (dividerLocationSet): New field. + (dividerLocation): Removed field. + (createActionMap): Fetch and set divider location on the JSplitPane. + (getDividerLocation): Return the actual real divider location. + (getMaximumSize): Removed unneeded cast. + (getPreferredSize): Removed unneeded cast. + (getMinimumSize): Removed unneeded cast. + (installUI): Initialize dividerLocationSet with false. + (uninstallUI): Initialize dividerLocationSet with false. + (setDividerLocation): Set dividerLocationSet to true. + +2006-10-09 Robert Schuster + + * native/jni/java-net/gnu_java_net/VMPlainSocketImpl.c: + (Java_gnu_java_net_VMPlainSocketImpl_joinGroup): Properly + convert jstring into char *. + (Java_gnu_java_net_VMPlainSocketImpl_joinGroup6): Dito. + (Java_gnu_java_net_VMPlainSocketImpl_leaveGroup): Dito. + (Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6): Dito. + (getif_address): Added const modifier to second argument. + (getif_index): Dito. + +2006-10-09 Roman Kennke + + * javax/swing/JTree.java + (isSelected): Added API docs. + +2006-10-09 Roman Kennke + + * javax/swing/JTree.java + (isSelected): Delegate to the selection model directly. + +2006-10-09 Robert Schuster + + * gnu/java/nio/KqueueSelectorImpl.java: Renamed field + sizeof_struct_kevent to _sizeof_struct_kevent. + +2006-10-07 Audrius Meskauskas + + * tools/gnu/classpath/tools/rmic/RMICException.java: + javadoc corrections, reformatted. + +2006-10-07 Christian Elias Naur + + * gnu/java/lang/InstrumentationImpl.java: + Made constructor package visible. + +2006-10-05 Gary Benson + + * java/net/Socket.java + (Socket): Perform security check on address not hostname. + +2006-10-04 Roman Kennke + + * javax/swing/tree/VariableHeightLayoutCache.java + (getBounds): When rect is null, create a new Rectangle. + +2006-10-04 Christian Thalinger + + * native/jni/java-nio/javanio.c (cpnio_read, cpnio_readv) + (cpnio_write, cpnio_writev, cpnio_socket, cpnio_connect) + (cpnio_accept, cpnio_sendto, cpnio_recvfrom, cpnio_fcntl) + (cpnio_select): Use CPNIO_EXPORT. + * native/jni/java-nio/javanio.h (CPNIO_EXPORT): Define to static + inline instead of extern inline, as newer GCCs changed their + behavior. + +2006-10-04 Gary Benson + + * java/net/InetAddress.java: Updated javadoc. + (, getByLiteral): Throw InternalError on failures. + +2006-10-03 Francis Kung + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (compCtx): New field for composite context. + (copy): Copy composite. + (dispose): Dispose of composite context. + (getNativeCM): New method. + (setComposite): Discard old composite context and set up new context. + (setRenderingHints): Update composite context. + * gnu/java/awt/peer/gtk/CairoSurface.java + (nativeColorModel): New field, renamed from nativeModel. + (nativeModel): Renamed field to nativeColorModel. + (CairoSurface(int, int)): Call new method to create sample model. + (createNativeSampleModel): New method. + (getBufferedImage): Updated variable name. + * gnu/java/awt/peer/gtk/VolatileImageGraphics.java + (buffer): New field. + (createBuffer): New method. + (draw): New method. + (drawComposite): New method. + (drawGlyphVector): New method. + (drawImage(Image, AffineTransform, Color, ImageObserver)): New method. + (drawImage(Image, int, int, ImageObserver)): Check composite. + (drawImage(Image, int, int, int, int, ImageObserver)): Check composite. + (fill): New method. + (getNativeCM): New method. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c + (Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels): Use + intermediary pixbuf to grab on-screen pixels. + +2006-10-03 Tom Tromey + + PR classpath/28987: + * java/util/IdentityHashMap.java (tombstone): Removed. + (emptyslot): Removed. + (nullslot): New field. + (IdentityHashMap): Don't fill array. + (clear): Fill with null. + (hash): Now final. Use linear probing. + (xform): New method. + (unxform): Likewise. + (removeAtIndex): Likewise. + (clone, containsKey, containsValue, entrySet, get, hashCode, + keySet, put, remove, values): Updated. + (IdentityIterator, IdentityEntry): Likewise. + (writeObject): Likewise. + +2006-10-03 Tom Tromey + + * java/util/Locale.java (hashcode): Updated javadoc. + (hashcodeCache): Removed. + (Locale): Updated. + (hashCode): Updated. + (writeObject): New method. + (readObject): Updated. + +2006-10-02 Francis Kung + + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + (updateBufferedImage): Recognise that raw data is alpha-premultiplied. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (clearRect): Paint background colour with AlphaComposite.SRC rule. + (drawImage(Image, AffineTransform, Color, ImageObserver)): Alpha + pre-multiply data before drawing. + (fillRect): Draw using regular fill() method. + (setComposite): Handle null case with AlphaComposite.SrcOver default. + * gnu/java/awt/peer/gtk/CairoSurface.java + (nativeModel): Use correct value for alpha premultiplication (true). + * java/awt/image/BufferedImage.java + (coerceData): Update isPremultiplied field. + +2006-10-02 Andrew John Hughes + + * gnu/classpath/ListenerData.java: + New class for holding listener data. + * gnu/java/lang/management/MemoryMXBeanImpl.java: + ListenerData class moved to its own file. + * javax/management/MBeanServerDelegate.java, + * javax/management/MBeanServerDelegateMBean.java, + * javax/management/MBeanServerNotification.java: + Implemented. + +2006-10-02 Tania Bento + + * java/ast/Rectangle.java: + (Rectangle(Rectangle)): Do not throw NPE. + (Rectangle(Point, Dimension)): Same. + (Rectangle(Point)): Same. + (Rectangle(Dimension)): Same. + +2006-09-29 Casey Marshall + + PR 29190 + * gnu/java/nio/EpollSelectionKeyImpl.java: extend + `AbstractSelectionKey.' + (cancel, isValid): removed. + * gnu/java/nio/EpollSelectorImpl.java (cancelledKeys): removed. + (events): new field. + (INITIAL_CAPACITY, MAX_DOUBLING_CAPACITY, CAPACITY_INCREMENT): new + fields. + (): initialize those constants. + (): don't initialize `cancelledKeys;' initialize `events.' + (doSelect): deregister cancelled keys; remove keys attached to + closed channels; wrap `epoll_wait' in `begin' and `end' calls; use + `events' buffer; reallocate `events' buffer if needed. + (register): reallocate `events' buffer if needed. + (reallocateBuffer): new method. + (cancel): removed. + +2006-09-29 Roman Kennke + + PR 28929 + * javax/swing/JViewport.java + (cinit): Renamed system property to gnu.swing.scrollmode + to avoid bloat. Default to BACKINGSTORE, this is much + more reliable. + (repaint): Forward repaint() to parent as is specified. + +2006-09-29 Tania Bento + + * javax/swing/plaf/basic/BasicTableUI.java + (getPreferredSize): The number of iterations for the for-loop should be + the number of columns in the table's column model, not the number of + columns of the table. + * javax/swing/JTable.java + (JTable(TableModel, TableColumnModel, ListSelectionModel): Removed 4 + lines that are not needed. + (initializeLocalVars): dragEnabled should be set to false, not true. + (getCellRenderer): Added a check to prevent an + ArrayIndexOutOfBoundsException. + (doLayout): The number of iterations for the for-loops should be the + number of columns in the table's column model, not the number of columns + of the table. + +2006-09-29 Roman Kennke + + * gnu/java/awt/java2d/AbstractGraphics2D.java: Updated + API docs. + (isOptimized): Initialize with true. + (paintRaster): Removed unneeded field. + (shapeCache): New static field. Caches certain shapes for reuse. + (computeIntersection): Removed unneeded casts. + (drawArc): Use shape cache. + (drawImage): Removed unneeded statement. + (drawLine): Use shape cache. Pass untranslated coordinates + to rawDrawLine(). + (drawOval): Use shape cache. + (drawPolygon): Use shape cache. + (drawRect): Overridden to provide accelerated rectangle drawing + if possible and to use the shape cache. + (drawRoundRect): Use shape cache. + (fillArc): Use shape cache. + (fillOval): Use shape cache. + (fillPolygon): Use shape cache. + (fillRect): Pass untranslated coordinates to rawFillRect(). + Use shape cache. + (fillRoundRect): Use shape cache. + (fillScanlineAA): Removed unneeded statement. + (fillScanline): Updated API docs. + (fillShapeAntialias): Removed unnecessary cast. + (fillShapeImpl): Update API docs. Removed unnecessary cast. + (fillShape): Updated API docs. + (getShapeCache): New helper method. + * gnu/java/awt/java2d/ShapeCache.java: New class. Caches + certain shapes for reuse in AbstractGraphics2D. + +2006-09-28 Andrew John Hughes + + * javax/management/BadBinaryOpValueExpException.java: + (getExp()): Implemented. + * javax/management/MBeanConnection.java: + Renamed to MBeanServerConnection. + * javax/management/MBeanServer.java: + (setAttribute(Attribute)): Fixed... + (setAttribute(ObjectName,Attribute)): to this. + * javax/management/MBeanServerConnection.java: + Renamed from MBeanConnection. + * javax/management/QueryExp.java: + Extend Serializable. + * javax/management/ValueExp.java: + Likewise. + * javax/management/loading/ClassLoaderRepository.java: + (loadClass(String)): Throw ClassNotFoundException. + (loadClassBefore(ClassLoader,String)): Likewise. + (loadClassWithout(String, ClassLoader): Fixed... + (loadClassWithout(ClassLoader,String)): to this. + +2006-09-28 Roman Kennke + + * javax/swing/tree/DefaultTreeCellRenderer.java + (DefaultTreeCellRenderer): Fetch drawsFocusBorderAroundIcon + property from UIManager. + (paint): Rewritten to use super's implementation and only paint + background and focus indicator before. + (paintFocus): New helper method. + (getXOffset): New helper method. + +2006-09-28 Andrew John Hughes + + * javax/management/BadBinaryOpValueExpException.java, + * javax/management/MBeanConnection.java, + * javax/management/MBeanServer.java, + * javax/management/ObjectInstance.java: + Implemented. + * javax/management/ObjectName.java: + (setMBeanServer(MBeanServer)): Implemented. + * javax/management/QueryExp.java, + * javax/management/ValueExp.java, + * javax/management/loading/ClassLoaderRepository.java: + Implemented. + +2006-09-27 Robert Schuster + + * gnu/java/nio/VMChannelOwner.java: Removed unneeded imports. + +2006-09-27 Robert Schuster + + * vm/reference/gnu/java/nio/VMChannel.java: Removed unneeded imports. + * vm/reference/gnu/java/nio/VMPipe.java: Removed unneeded imports. + * gnu/java/nio/EpollSelectorImpl.java: + (doSelect): Use Integer.valueOf() instead of constructor call. + (register): Use Integer.valueOf() instead of constructor call. + +2006-09-27 Roman Kennke + + * java/awt/Container.java + (addContainerListener): Activate newEventsOnly for the component. + Ignore null listeners. + +2006-09-27 Roman Kennke + + * java/awt/EventQueue.java + (Queue): New inner class. Implements the actual queue. + (LOW_PRIORITY): New constant field. + (NORM_PRIORITY): New constant field. + (queueHead): Removed. Moved into Queue. + (queueTail): Removed. Moved into Queue. + (queues): New field. + (EventQueue): Initialize two internal queues, one for + normal events, one for low priority events. + (getNextEventImpl): New helper method, fetches the next event. + (getNextEvent): Use getNextEventImpl() for fetching the event. + (peekEvent): Use getNextEventImpl() for fetching the event. + (peekEvent(int)): Search for event in all queues. + (postEventImpl(AWTEvent)): Moved actual posting into + postEventImpl(AWTEvent,int). Prioritize events here. + (postEventImpl(AWTEvent,int)): Take priority parameter and insert + event into correct queue. Re-enable event coalescing. + * gnu/java/awt/LowPriorityEvent.java: New marker interface. + * javax/swing/RepaintManager.java + (RepaintWorkerEvent): New internal class. This is a low priority + event for the repaint worker. + (addDirtyRegion): Use new internal invokeLater() for sending + a low priority event. + (addInvalidComponent): Use new internal invokeLater() for sending + a low priority event. + (commitBuffer): Added some null checks. + (invokeLater): New helper method. Sends a low priority + repaint worker event on the event queue. + +2006-09-27 Roman Kennke + + PR 29036 + PR 29161 + * javax/swing/plaf/basic/BasicButtonUI.java + (cachedInsets): New field. + (installListeners): Fire synthetic property change to initialize + TEXT_LAYOUT_CACHE for the button because the font has been + installed before. + (uninstallUI): Clear the TEXT_LAYOUT_CACHE for the button. + (paint): Use cached insets. + (paintText): Let new method forward to old one, not vice versa. + * javax/swing/plaf/basic/BasicMenuItemUI.java + (defaultAcceleratorLabelGap): Removed unused field. + (MenuGap): Removed unused field. + (propertyChangeListener): Made private. + (getAcceleratorRect): Removed unused method. + (getAcceleratorText): Removed unused method. + (getPath): Removed unnecessary cast. + (installListeners): Fire synthetic property change to initialize + TEXT_LAYOUT_CACHE for the button because the font has been + installed before. + (uninstallUI): Clear the TEXT_LAYOUT_CACHE for the button. + (layoutMenuItem): Removed unused statements. + +2006-09-27 Roman Kennke + + PR 29218 + * javax/swing/tree/DefaultTreeModel.java + (isLeaf): Check if the node allows children when + asksAllowsChildren is true, otherwise fall back + to return the node's leaf property. + +2006-09-27 Mario Torre + + * scripts/check_jni_methods.sh: removed methods from the + ignore list: + Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class + Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache + Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class + Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key + Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key + * native/jni/gconf-peer/GConfNativePeer.c: fixed coding style + to better follow the GNU style. + * include/gnu_java_util_prefs_gconf_GConfNativePeer.h. + regenerated header file for GConfNativePeer. + +2006-09-27 Robert Schuster + + * INSTALL: Added information about grmic being built when ASM + is available, added information about gconf dependency, indented + Qt4 dependency section. + * configure.ac: Added information about grmic being built when ASM + is available. + +2006-09-27 Ian Rogers + + * native/jni/classpath/jcl.c (JNI_OnLoad): Don't call + DeleteGlobalRef on a local ref. + +2006-09-24 Mario Torre + + * scripts/check_jni_methods.sh: added two new methods in the + ignore list: + Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key + and + Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key + * native/jni/gconf-peer/GConfNativePeer.c: + (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys): + refacored method name, renamed from + Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys. + Added code to unescape escaped GConf key names. + (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes): + refacored method name, renamed from + Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes. + Added code to unescape escaped GConf key names. + (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key): + new function. + (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key): + new function. + * gnu/java/util/prefs/gconf/GConfNativePeer.java: removed + version javadoc tag. + (escapeString): new method. + (unescapeString): likewise. + (gconf_escape_key): new native method. + (gconf_unescape_key): likewise. + (gconf_client_suggest_sync): update native method signature, now + explicity throws BackingStoreException. + (gconf_client_all_nodes): update native method signature, now + explicity throws BackingStoreException. Refactored method name, + renamed from gconf_client_gconf_client_all_nodes. + (gconf_client_all_keys): update native method signature, now + explicity throws BackingStoreException. Refactored method name, + renamed from gconf_client_gconf_client_all_keys. + (getKeys): refactored to use the new method name + gconf_client_all_keys. + (getChildrenNodes): refactored to use the new method name + gconf_client_all_nodes. + * gnu/java/util/prefs/GConfBasedPreferences.java: removed + version javadoc tag. + (GConfBasedPreferences): Added code to escape node names from + invalid characters so that GConf now accept invalid node names. + (GConfBasedPreferences): Moved code to register the current + node to the list of nodes watched by GConf outside the constructor. + (childSpi): Added code to register the current node to the + list of nodes watched by GConf. + (getGConfKey): Added code to escape key names from + invalid characters so that GConf now accept invalid key names. + +2006-09-26 Tom Tromey + + * tools/gnu/classpath/tools/javah/Printer.java (Printer): Don't + call mkdirs in output-directory case. + (getPrintStream): Create output directory. + * tools/gnu/classpath/tools/javah/Main.java (makeOutputDirectory): + Don't call mkdirs. + +2006-09-27 Raif S. Naffah + + * tools/gnu/classpath/tools/javah/CniIncludePrinter.java (CniIncludePrinter): + Accept three additional arguments. + (writePreambleImpl): New method. + (getPrintStreamImpl): Likewise. + (printClass): Adapted to use new methods in Printer superclass. + * tools/gnu/classpath/tools/javah/CniStubPrinter.java: Likewise. + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java: Likewise. + * tools/gnu/classpath/tools/javah/JniStubPrinter.java: Likewise. + * tools/gnu/classpath/tools/javah/Main.java (outFileName): New field. + (force): Likewise. + (getParser): Add support for -o option. + Check that only one of -d or -o is defined. + Add support for -jni option. + Add support for -force option. + (makeOutputFile): New method. + (writeHeaders): Removed File argument from signature. + (run): Take into account newly added fields. + Invoke concrete PrintStream implementations with augmented constructors. + * tools/gnu/classpath/tools/javah/Printer.java (outputFileObject): New field. + (isDirectory): Likewise. + (force): Likewise. + (wrotePreamble): Likewise. + (Printer): Changed ctor to accept three additional arguments. + (printClass): Changed signature to accept one ClassWrapper argument. + (writePreambleImpl): New abstract method. + (getPrintStreamImpl): Likewise. + (getPrintStream): New method. + (writePreamble): Likewise. + +2006-09-26 Tania Bento + + * java/awt/GridLayout.java + (toString): There is no common before hgap. + * java/awt/Rectangle.java + (Rectangle(Rectangle)): Throw NPE if Rectangle is null. + (Rectangle(Point, Rectangle)): Throw NPE if either Point or + Rectangle is null. + (Rectangle(Point)): Throw NPE if Point is null. + (Rectangle(Dimension)): Throw NPE if Dimension is null. + +2006-09-26 David Gilbert + + * javax/swing/plaf/metal/MetalIconFactory.java + (FileIcon16.paintIcon): Apply vertical shift by the number of pixels + returned by getShift(), + (FileIcon16.getShift): Updated API docs, + (FolderIcon16.paintIcon): Apply vertical shift by the number of pixels + returned by getShift(), + (FolderIcon16.getShift): Updated API docs, + (TreeFolderIcon.getShift): Likewise, + (TreeLeafIcon.getShift): Likewise. + +2006-09-26 David Gilbert + + * javax/swing/plaf/metal/MetalIconFactory.java + (FileIcon16.paintIcon): Fetch colors from look and feel, + (FolderIcon16.paintIcon): Likewise. + +2006-09-25 Casey Marshall + + * gnu/java/nio/FileChannelImpl.java (read): revert back to using + `readScattering.' + (write): revert back to using `writeGathering.' + * vm/reference/gnu/java/nio/VMChannel.java (writeGathering): find + the first buffer that has data remaining, and start at that one. + +2006-09-25 Tom Tromey + + * native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LDFLAGS): New + variable. + +2006-09-25 Tom Tromey + + * tools/.cvsignore: Updated. + +2006-09-25 Tom Tromey + + PR libgcj/29178: + * gnu/java/nio/charset/US_ASCII.java (Encoder.canEncode): New method. + (Encoder.canEncode): Likewise. + (Encoder.encodeLoop): Return unmappable for all non-ASCII characters. + * gnu/java/nio/charset/ByteCharset.java (Encoder.canEncode): New + method. + (Encoder.canEncode): Likewise. + * gnu/java/nio/charset/ISO_8859_1.java (Encoder.canEncode): New + method. + (Encoder.canEncode): Likewise. + +2006-09-25 Tom Tromey + + * native/fdlibm/mprec.c (mprec_calloc): Renamed. + (Balloc): Updated. + +2006-09-25 Francis Kung + + * java/awt/image/ColorModel.java + (coerceData): Made abstract. + (coerceDataWorker): New protected method. + * java/awt/image/ComponentColorModel.java + (coerceData): Return new instance of proper ColorModel. + * java/awt/image/DirectColorModel.java + (coerceData): Return new instance of proper ColorModel. + * java/awt/image/IndexColorModel.java + (coerceData): New method. + +2006-09-24 Casey Marshall + + * gnu/java/nio/FileChannelImpl.java + (read): call `read' in a loop, don't use `readScattering.' + (write): call `write' in a loop, don't use `writeGathering.' + +2006-09-24 Mark Wielaard + + * configure.ac: Move -pedantic from WARNING to STRICT flags. + +2006-09-24 Jeroen Frijters + + * java/nio/channels/spi/AbstractSelectableChannel.java + (register): Set interestOps and attachment when the key already + exists. + +2006-09-24 Jeroen Frijters + + * java/net/ServerSocket.java + (bind(SocketAddress,int)): Added support for null address. + Throw proper exception if already bound. + Handle unresolved addresses correctly. Ignore exceptions that + happen during close in error path (to prevent losing the original + exception.) + +2006-09-24 Mark Wielaard + + Suggested by Aaron M. Ucko + Fixes bug #29203 + * native/fdlibm/mprec.c (ulp): Define L as int32_t. + +2006-09-24 Jeroen Frijters + + * java/nio/channels/spi/AbstractSelectableChannel.java + (implCloseChannel): Cancel all keys after closing the channel. + +2006-09-22 Casey Marshall + + * gnu/java/nio/EpollSelectorImpl.java (doSelect): remove keys + after we delete them. + (selectedKeys): return an empty set if nothing's been selected. + * native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c + (Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete): don't + throw an exception on EBADF. + (Java_gnu_java_nio_EpollSelectorImpl_epoll_1wait): don't + throw exception on EINTR, just return 0. + +2006-09-22 Casey Marshall + + * native/jni/java-io/java_io_VMFile.c (Java_java_io_VMFile_list): + remove `const' from `filename.' + * native/jni/native-lib/cpio.c (cpio_readDir): remove `const' from + `filename.' + * native/jni/native-lib/cpio.h (cpio_readDir): likewise. + +2006-09-22 Casey Marshall + + * configure.ac (AC_CHECK_FUNCS): check for `readdir_r.' + * native/jni/java-io/java_io_VMFile.c (Java_java_io_VMFile_list): + allocate `filename,' and handle changes to `cpio_readDir.' + * native/jni/native-lib/cpio.c (cpio_readDir): use `readdir_r' if + available; copy the filename into the destination buffer; return + an error code if readdir returns NULL, but errno is 0. + * native/jni/native-lib/cpio.h (cpio_readDir): change second + parameter to `const char *.' + +2006-09-23 Andrew John Hughes + + * javax/management/ObjectName.java: + Implemented. + +2006-09-22 Thomas Fitzsimmons + + * resource/gnu/classpath/tools/orbd: New directory. + * resource/gnu/classpath/tools/rmic: Likewise. + * resource/gnu/classpath/tools/rmid: Likewise. + * resource/gnu/classpath/tools/rmiregistry: Likewise. + * resource/gnu/classpath/tools/tnameserv: Likewise. + * tools/gnu/classpath/tools/giop: Move contents to... + * tools/gnu/classpath/tools/orbd, + tools/gnu/classpath/tools/tnameserv: New directories. + * tools/gnu/classpath/tools/rmi/rmic: Move contents to... + * tools/gnu/classpath/tools/rmic: New directory. + * tools/gnu/classpath/tools/rmi/rmid: Move contents to... + * tools/gnu/classpath/tools/rmid: New directory. + * tools/gnu/classpath/tools/rmi/registry: Move contents to... + * tools/gnu/classpath/tools/rmiregistry: New directory. + * resource/gnu/classpath/tools/orbd/messages.properties: New file. + * resource/gnu/classpath/tools/rmic/messages.properties: Likewise. + * resource/gnu/classpath/tools/rmid/messages.properties: Likewise. + * resource/gnu/classpath/tools/rmiregistry/messages.properties: + Likewise. + * resource/gnu/classpath/tools/tnameserv/messages.properties: + Likewise. + * tools/gnu/classpath/tools/orbd/Main.java, + tools/gnu/classpath/tools/orbd/Messages.java, + tools/gnu/classpath/tools/orbd/PersistentContext.java, + tools/gnu/classpath/tools/orbd/PersistentContextMap.java, + tools/gnu/classpath/tools/orbd/PersistentMap.java, + tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java, + tools/gnu/classpath/tools/rmic/CompilationError.java, + tools/gnu/classpath/tools/rmic/Generator.java, + tools/gnu/classpath/tools/rmic/GiopIo.java, + tools/gnu/classpath/tools/rmic/HashFinder.java, + tools/gnu/classpath/tools/rmic/Main.java, + tools/gnu/classpath/tools/rmic/Messages.java, + tools/gnu/classpath/tools/rmic/MethodGenerator.java, + tools/gnu/classpath/tools/rmic/RMICException.java, + tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java, + tools/gnu/classpath/tools/rmic/RmicBackend.java, + tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java, + tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java, + tools/gnu/classpath/tools/rmic/Variables.java, + tools/gnu/classpath/tools/rmic/WrapUnWrapper.java, + tools/gnu/classpath/tools/rmic/templates, + tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java, + tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java, + tools/gnu/classpath/tools/rmid/Main.java, + tools/gnu/classpath/tools/rmid/Messages.java, + tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java, + tools/gnu/classpath/tools/rmiregistry/Main.java, + tools/gnu/classpath/tools/rmiregistry/Messages.java, + tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java, + tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java, + tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java, + tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java, + tools/gnu/classpath/tools/tnameserv/Main.java, + tools/gnu/classpath/tools/tnameserv/Messages.java: New files. + * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java: Import + RMIC.java from cp-tools. + * configure.ac (AC_CONFIG_FILES): Add tools/grmiregistry, + tools/gtnameserv, tools/gorbd, tools/grmid and tools/grmic. + (AC_CONFIG_COMMANDS): Add grmiregistry, gtnameserv, gorbd, grmid + and grmic. + * examples/Makefile.am (GLIBJ_CLASSPATH): Add tools.zip. + * gnu/CORBA/NamingService/NamingServiceTransient.java (main): + Rename... + (start): New method. + * tools/Makefile.am: Add build support for new tool wrappers. + * tools/gorbd.in: New file. + * tools/grmic.in: Likewise. + * tools/grmid.in: Likewise. + * tools/grmiregistry.in: Likewise. + * tools/gtnameserv.in: Likewise. + * tools/gnu/classpath/tools/AbstractMethodGenerator.java: Move to... + * tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java: New + file. + * tools/gnu/classpath/tools/HelpPrinter.java: Remove file. + * tools/gnu/classpath/tools/rmi/Persistent.java: Move to... + * tools/gnu/classpath/tools/common/Persistent.java: New file. + +2006-09-22 Ito Kazumitsu + + Fixes bug #29047 + * gnu/java/util/regex/RETokenRepeated.java + (findMatch): Rewriten without using recursive calls, + (FindMatchControlStack): New class, + (FindMatchControl): New class, + (TryAnotherResult): New class, + (tryAnother): New method. + +2006-09-22 Gary Benson + + * java/net/SocketPermission.java + (processHostport): Cope with IPv6 addresses with a + one-digit first component. + +2006-09-22 Roman Kennke + + * java/awt/Component.java + (enableEvents): Set newEventsOnly flag. + * java/awt/Container.java + (dispatchEventImpl): Consume event if lightweight dispatcher + dispatched the event. Don't call processEvent() here, this + is already done in Component.dispatchEventImpl(). For + heavyweights or when the lightweight dispatcher could + not dispatch, fall back to calling super. + (dispatchNoLightweight): New helper method to avoid + recursivly calling the lightweight dispatcher. + * java/awt/LightweightDispatcher.java + (dragButton): Removed field. + (dragTarget): Removed field. + (mouseEventTarget): New field. + (convertPointToChild): Removed method. + (dispatchEvent): Don't depend on component beeing + a window. + (findTarget): Improved algorithm for finding a target. + Before we went down to the deepest component and went + up again to find a suitable target. Now we go + down only once, without going up. + (handleMouseEvent): Broke method down into some smaller + helper methods. + (isDragging): New helper method. + (isMouseListening): New helper method. + (redispatch): New helper method. + (trackEnterExit): New helper method. + +2006-09-22 David Gilbert + + * javax/swing/SizeSequence.java + (getSize): Return 0 if index is out of bounds. + +2006-09-21 Tom Tromey + + * tools/gnu/classpath/tools/javah/PathOptionGroup.java + (PathOptionGroup): Make -I a joined option. + * tools/gnu/classpath/tools/keytool/CACertCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/CertReqCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/DeleteCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/ExportCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/GenKeyCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/ImportCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/ListCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/MainCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/PrintCertCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Updated. + * tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: Updated. + * tools/gnu/classpath/tools/appletviewer/Main.java: Updated. + * tools/gnu/classpath/tools/jar/Main.java: Updated. + * tools/gnu/classpath/tools/jarsigner/Main.java: Updated. + * tools/gnu/classpath/tools/javah/Main.java: Updated. + * tools/gnu/classpath/tools/native2ascii/Main.java: Updated. + * tools/gnu/classpath/tools/serialver/SerialVer.java: Updated. + * resource/gnu/classpath/tools/getopt/Messages.properties: Removed + unused entries. + * resource/gnu/classpath/tools/common/Messages.properties: New file. + * tools/gnu/classpath/tools/common/Messages.java: New file. + * tools/gnu/classpath/tools/getopt/Messages.java: Now package-private. + * tools/gnu/classpath/tools/common/ClasspathToolParser.java: Moved + from getopt. + (ClasspathToolParser): Add -J option here. + (ClasspathToolParser): Call other constructor in this class. + * tools/gnu/classpath/tools/getopt/Parser.java (handleLongOption): + Handle joined options. + (handleShortOptions): Likewise. + (handleShortOption): Removed. + (finalGroup): New field. + (Parser): Initialize new field. Don't add -J option. + (addFinal): New method. + * tools/gnu/classpath/tools/getopt/OptionGroup.java (printHelp): Use + isJoined. + * tools/gnu/classpath/tools/getopt/Option.java (isJoined): New method. + (Option): Check short option for validity. + (Option): New constructors. + (joined): New field. + +2006-09-21 csm + + * gnu/java/net/PlainDatagramSocketImpl.java (send): ignore + `InterruptedIOException;' try again if it gets thrown. + (receive): likewise, but re-throw `SocketTimeoutException.' + * gnu/java/nio/EpollSelectorImpl.java (doSelect): just return 0 + if we have nothing to select. + +2006-09-21 Francis Kung + + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java: + (getLogicalBounds): Respect glyph transformations. + (getGlyphOutline): Added null pointer check. + (getGlyphTransform): Do not generate identity transform (API permits null). + (setGlyphPosition): Do not invalidate transform. + (setGlyphTransform): Do not modify glyph position. + +2006-09-21 Francis Kung + + * java/awt/image/ColorModel.java (coerceData): Set alpha premultiplied flag. + +2006-09-21 Francis Kung + + * java/awt/image/ColorModel.java (coerceData): Return proper colour model. + * java/awt/image/ComponentColorModel.java (coerceData): Likewise. + * java/awt/image/DirectColorModel.java (coerceData): Likewise. + +2006-09-21 Tania Bento + + * javax/swing/JTabbedPane.java: + (insertTab): Notify ChangeListeners if the tab inserted is selected. + (setModel): A ChangeListener should be created only if there does not + currently exist one. + +2006-09-21 David Gilbert + + * javax/swing/plaf/basic/BasicInternalFrameTitlePane.java + (MaximizeAction.actionPerformed): Change icon on maxButton. + +2006-09-21 Roman Kennke + + * javax/swing/plaf/basic/BasicScrollPaneUI.java + (syncScrollPaneWithViewport): Fixed typo (hsb vs. vsb). + Use more efficient getViewPosition() and getViewSize() methods + to avoid creating a rectangle. + (HSBChangeListener.stateChanged): Update the view position + unconditionally. Let the Viewport figure out if something + changed. + (VSBChangeListener.stateChanged): Update the view position + unconditionally. Let the Viewport figure out if something + changed. + * javax/swing/JViewport.java + (ViewListener.componentResized): Fire state change, because + the extentSize changes. + (extentSize): Removed unneeded field. + (viewSize): Removed unneeded field. + (getExtentSize): Return the viewport's size here. + (getViewRect): Reformatted. + (getViewSize): Reordered for only one return statement. + (paintImmediately2): Fixed up javadoc. + (paint): Removed unneeded statement. + (setExtentSize): Set viewport size and check for actual change + of value. + (setViewPosition): Simplified condition. Set scrollUnderway + true and don't set isViewSizeSet. Avoid creating one Point + object. + (setViewSize): Fixed != comparison with equals(). Set scrollUnderway + to false. + * javax/swing/JScrollBar.java + (ScrollBarListener): New class. Forwards change events from + the model as adjustment events. + (sbChangeListener): New field. + (JScrollBar): Install listener on new model. + (fireAdjustmentValueChanged(int,int,int)): Delegate to new helper + method. + (fireAdjustmentValueChanged(int,int,int,boolean)): New helper + method to allow custom isAdjusting value. + (setMaximum): Only forward to model. + (setMinimum): Only forward to model. + (setValue): Only forward to model. + (setVisibleAmount): Only forward to model. + (setValues): Only forward to model. + (setModel): Update the change listener. + +2006-09-20 Christian Thalinger + + * java/util/Formatter.java (basicIntegralConversion): Removed + check for ZERO && !LEFT_JUSTIFY. + +2006-09-20 Roman Kennke + + PR 29036 + * javax/swing/plaf/metal/DefaultMetalTheme.java + (PLAIN_CONTROL_TEXT_FONT): New constant field. + (BOLD_CONTROL_TEXT_FONT): New constant field. + (PLAIN_MENU_TEXT_FONT): New constant field. + (BOLD_MENU_TEXT_FONT): New constant field. + (controlTextFont): Removed. + (menuTextFont): Removed. + (CONTROL_TEXT_FONT): New constant field. + (MENU_TEXT_FONT): New constant field. + (getControlTextFont): Use getFont() helper method for fetching + the correct font. + (getMenuTextFont): Use getFont() helper method for fetching + the correct font. + (getFont): New helper method. + (isBoldMetal): New helper method. + +2006-09-20 Casey Marshall + + * NEWS: mention epoll selector along with the kqueue one. + +2006-09-20 Casey Marshall + + * native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c + (Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete): ignore ENOENT. + +2006-09-20 Francis Kung + + PR 29011 + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java: + (getGlyphTransform): Use translation instead of scale. + (performDefaultLayout): Increment position values instead of resetting, and + pre-increment instead of post-increment. + (setGlyphTransform): Handle null case with identity transform. + +2006-09-20 Casey Marshall + + * configure.ac (AC_CHECK_HEADERS): check for `sys/epoll.h.' + (AC_CHECK_FUNCS): check for `epoll_create.' + * gnu/java/nio/EpollSelectionKeyImpl.java: new file. + * gnu/java/nio/EpollSelectorImpl.java: new file. + * gnu/java/nio/SelectorProviderImpl.java (epoll_failed): new class + field. + (openSelector): return epoll selector if requested and available. + * include/Makefile.am (H_FILES): add gnu_java_nio_EpollSelectorImpl.h. + (gnu_java_nio_EpollSelectorImpl.h): new target. + * include/gnu_java_nio_EpollSelectorImpl.h: new file. + * native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES): add + gnu_java_nio_EpollSelectorImpl.c. + * native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c: new file. + +2006-09-20 Casey Marshall + + * gnu/java/nio/SocketChannelImpl.java (finishConnect): don't + call `isConnected.' + (isConnected): return false if `connectionPending' is true. + +2006-09-20 Francis Kung + + PR 29011 + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java: + (constructor): Expanded glyphPositions array to accomodate Y-coordinates. + (getGlyphOutline): Call getGylphTransform to generate transform. + (getGylphPosition): Read position directly out of array. + (getGlyphPositions): Read positions directly out of array. + (getGlyphTransform): Generate transform based on gylphPositions array. + (performDefaultLayout): Populate glyphPositions array instead of transforms. + (setGlyphPosition): Set position directly into array. + (setGlyphTransform): Update positions array as well. + +2006-09-20 David Daney + + PR classpath/28661 + * gnu/java/net/protocol/http/HTTPURLConnection.java (connect): Add + default content-type for POST method. + +2006-09-20 David Gilbert + + * javax/swing/plaf/basic/BasicRadioButtonUI.java + (BasicRadioButtonUI): Don't fetch icon here, + (installDefaults): Initialise icon here, + (getDefaultIcon): Just return icon. + +2006-09-20 Mark Wielaard + + * native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES): + Add gnu_java_nio_channels_FileChannelImpl.c and javanio.h. + (EXTRA_DIST): Include javanio.c. + +2006-09-20 David Gilbert + + * java/awt/geom/RoundRectangle2D.java: + (getPathIterator): Reimplemented, + and updated various API doc comments. + +2006-09-20 Roman Kennke + + * java/awt/Container.java + (addImpl): Set the new component's parent after it has been + added to the array. Call addNotify() and invalidate() + after the component has been added, so that the peer + gets to know about the component structure when it is created. + * java/awt/Window.java + (dispatchEventImpl): Only revalidate when window is resized, + let the other stuff be processed by the superclass. + (dispose): Post WINDOW_CLOSED event only when some listener + is registered or event is explicitly enabled. + (show): Post WINDOW_OPENED event when appropriate. + +2006-09-20 Roman Kennke + + * java/awt/Component.java + (addNotify): Invalidate here. Fetch peer font. + (getFont): Delegate to helper method, to protect from + overriding client code. Lock the tree while fetching the font. + (getFontImpl): New helper method. Moved code from getFont() in + here. + (removeNotify): Nullify peerFont too. + (setFont): Synchronize on tree and component to avoid threading + issues. Update the peerFont correctly. + (validate): Update the peer font if necessary, before validating. + (getGraphics): Revert to recursive graphics fetching. + Set component font on the Graphics object. + (translateEvent): Removed unnecessary cast. + * java/awt/Container.java + (invalidateTree): Made final and private. Made implementation + slightly more efficient. + (setFont): Get old and new font via getFont() to account for + the real font, and only invalidate the tree when they are not + the same and not equal. + (visitChild): Set the font of the child on the component graphics. + * java/awt/Frame.java + (setMenuBar): Create local reference of peer for thread safety. + Only call simple invalidate, not invalidateTree(). + +2006-09-19 Cameron McCormack + + PR 29012 + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java: + (constructor): Copy image field. + +2006-09-19 David Gilbert + + * javax/swing/JMenuBar.java + (getHelpMenu): Implemented to throw an Error, and added API docs, + (getMargin): Added API docs, + (setMargin): Likewise. + +2006-09-19 David Gilbert + + * javax/swing/AbstractButton.java + (AbstractButton): Don't call updateUI(), + * javax/swing/JButton.java + (JButton(String, Icon)): Call setModel() before init(), + * javax/swing/JMenuItem.java + (JMenuItem()): Delegate to another constructor, + (JMenuItem(Icon)): Likewise, + (JMenuItem(Action)): Set model, + (JMenuItem(String, Icon)): Likewise, + * javax/swing/JToggleButton.java + (init): Call setModel() before init(). + +2006-09-19 Mark Wielaard + + Fixes bug #29137 + * java/util/logging/LogManager.java (addLogger): Always check for + existing children of a new Logger. + +2006-09-19 Roman Kennke + + * javax/swing/plaf/basic/BasicScrollPaneUI.java + (HSBChangeListener.stateChanged): Moved handling of header to + syncScrollPaneWithViewport(). + (VSBChangeListener.stateChanged): Moved handling of header to + syncScrollPaneWithViewport(). + (ViewportChangedHandler.stateChanged): Removed unused statements. + (syncScrollPaneWithViewport): Added null checks. Use setValues + rather then the single setter methods to avoid multiple + adjustments and side effects. Also snyc the headers here. + (updateScrollBarDisplayPolicy): Revalidate and repaint here. + (uninstallUI): Removed unnecessary cast and this qualifier as well + as the call to super. + +2006-09-19 Gary Benson + + * java/net/ResolverCache.java: New class (a DNS cache). + * java/net/InetAddress.java + (internalGetCanonicalHostName, getAllByName): Use the above. + +2006-09-19 Jeroen Frijters + + * gnu/java/nio/SocketChannelImpl.java: Removed unused import. + * java/net/ServerSocket.java + (port): New field. + (bind): Set port field. + (close): Set impl to null. + (isClosed): Check impl and channel instead of using VMChannel. + (toString): Use port field and getLocalPort() method. + * java/net/Socket.java + (isClosed): Check impl and channel instead of using VMChannel. + +2006-09-18 Tom Tromey + + * java/util/concurrent/CopyOnWriteArrayList.java + (CopyOnWriteArrayList): New constructor. + +2006-09-18 Casey Marshall + + * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c + (Java_gnu_java_net_VMPlainSocketImpl_listen): remove debug printf. + +2006-09-18 Tom Tromey + + * gnu/javax/net/ssl/provider/SSLSocket.java (isBound, isClosed, + isConnected): Removed old comment. + (getRemoteSocketAddress): Uncommented. + (setOOBInline, getOOBInline, setKeepAlive, getKeepAlive, + setTrafficClass, getTrafficClass, setReuseAddress, + getReuseAddress, shutdownInput, shutdownOutput, isInputShutdown, + isOutputShutdown): Uncommented. + +2006-09-18 David Pirkle + + Fixes PR 28589 + * gnu/xml/transform/XSLURIResolver.java: Test SAXSource for specific + input stream during resolution. + +2006-09-18 Roman Kennke + + * java/awt/LightweightDispatcher.java + (findTarget): Correctly translate child coordinates. + Use Component.eventTypeEnabled() for checking if a component + has a certain event enabled. + (handleMouseEvent): Find the correct mouse event target. + Use Component.eventTypeEnabled() for checking if a component + has a certain event enabled. + +2006-09-18 Roman Kennke + + * java/awt/Component.java + (show): Test for the peer beeing lightweight directly. + (paintAll): Validate before painting. Don't paint when not + showing. Call peer.paint() when the component is heavyweight. + (repaint): Delegate to the parent when lightweight, rather + than skipping to the nearest heavyweight. + (createImage): Added null check to prevent NPE. + (dispatchEvent): Moved old event dispatching and toolkit + event dispatching to dispatchEventImpl. + (addComponentListener): Don't enable event. Only add listener + when not null. Switch to new event dispatching only. + (addFocusListener): Likewise. + (addHierarchyListener): Likewise. + (addHierarchyBoundsListener): Likewise. + (addKeyListener): Likewise. + (addMouseListener): Likewise. + (addMouseMotionListener): Likewise. + (addMouseWheelListener): Likewise. + (addInputMethodListener): Likewise. + (coalesceEvents): For mouse events coalesce them only when + their modifiers are equal. For paint events coalesce the events + when one contains the other, without going through complicated + heuristics. + (dispatchEventImpl): Moved old event dispatching and toolkit + event dispatching to dispatchEventImpl. + (coalescePaintEvents): Removed. + (HeavyweightInLightweightListener.componentHidden): + Fixed condition. + * java/awt/Container.java + (addImpl): Don't enable events on lightweights. + (remove): Reordered operations. Don't remove any listeners. + Throw ArrayIndexOutOfBoundsException when index >= ncomponents. + Only removeNotify() when peer is != null. Only invalidate if + not already invalid. Only fire ContainerEvent if there is + an interested listener or the event is enabled. Dispatch this + event directly without the event queue. + (removeAll): Likewise. + (paintComponents): Only paint when showing. Also paint heavyweights. + Don't paint the container itself. + (removeNotify): Create local variables for improved thread safety. + (addNotifyContainerChildren): Don't enable events for lightweights. + +2006-09-18 Roman Kennke + + * java/awt/EventQueue.java + (INITIAL_QUEUE_DEPTH): Removed obsolete field. + (next_in): Removed obsolete field. + (next_out): Removed obsolete field. + (queueHead): New field. Markes the head of the queue. + (queueTail): New field. Markes the tail of the queue. + (queue): Removed obsolete field. + (EventQueue): Documented empty block. + (getNextEvent): Changed array based implementation to single-linked + list based implementation. + (invokeAndWait): Use an Object as synchronization object rather + than the current thread. + (peekEvent(int)): Changed array based implementation to single-linked + list based implementation. + (peekEvent()): Changed array based implementation to single-linked + list based implementation. + (pop()): Changed array based implementation to single-linked + list based implementation. + (postEvent): Foward to postEventImpl. + (postEventImpl): Changed array based implementation to single-linked + list based implementation. + (push): Changed array based implementation to single-linked + list based implementation. + * java/awt/AWTEvent.java + (queueNext): New field. Implements a single-linked list for + the EventQueue. + +2006-09-17 Mark Wielaard + + * javax/swing/text/html/HTMLEditorKit (getStyleSheet): Load + resource from HTMLEditorKit.class. + +2006-09-17 Mark Wielaard + + * javax/swing/plaf/basic/BasicToolBarUI.java + (setBorderToNonRollover): Check whether border is null. + (setBorderToRollover): Likewise. + +2006-09-17 Mark Wielaard + + * javax/swing/JTree.java (setLeadSelectionPath): Handle null path. + +2006-09-17 Mark Wielaard + + * native/jni/java-nio/javanio.c (cpnio_fcntl): Last argument is long. + * native/jni/java-nio/javanio.h (cpnio_fcntl): Likewise. + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_lock): Likewise. + (Java_gnu_java_nio_VMChannel_unlock): Likewise. + +2006-09-17 Casey Marshall + + * native/jni/classpath/jcl.c (JNI_OnLoad): mark `reserved' as + unused. + +2006-09-17 Chris Burdess + + Fixes PR 27610 27687. + * gnu/xml/dom/ls/SAXEventSink.java: Permit limited subclassing. + * gnu/xml/transform/SAXTemplatesHandler.java, + * gnu/xml/transform/SAXTransformerHandler.java: New files. + * gnu/xml/transform/TransformerFactoryImpl.java: Implement + SAXTransformerFactory. + +2006-09-16 Casey Marshall + + * NEWS: updated. + * configure.ac (AC_CHECK_HEADERS): check for `sys/event.h'. + (AC_CHECK_FUNCS): add checks for readv, writev, getifaddrs, + kqueue, and kevent. + (HAVE_INET6): define if IPv6 is supported. + * gnu/java/net/PlainDatagramSocketImpl.java (channel): new field. + (native_fd): removed. + (impl): new field. + (): throw IOException; initialize fields. + (finalize): removed. + (getNativeFD): removed. + (bind): use `PlainSocketImpl.bind.' + (create): use `PlainSocketImpl.initSocket.' + (disconnect): use `PlainSocketImpl.disconnect.' + (getLocalPort): new method. + (send): use `VMChannel.send.' + (receive): use `VMChannel.receive.' + (setOption): use `PlainSocketImpl.setOption.' + (getOption): use `PlainSocketImpl.getOption.' + (close): use `VMChannel.State.close.' + (join): use `PlainSocketImpl.join.' + (leave): use `PlainSocketImpl.leave.' + (joinGroup, leaveGroup): implemented. + * gnu/java/net/PlainSocketImpl.java: make non-final. + (native_fd): removed. + (impl): new field. + (channel): new field. + (): initialize `impl.' + (finalize, getNativeFD): removed. + (setOption): use `PlainSocketImpl.setOption.' + (getOption): use `PlainSocketImpl.getOption.' + (shutdownInput): use `PlainSocketImpl.shutdownInput.' + (shutdownOutput): use `PlainSocketImpl.shutdownOutput.' + (create): create `channel,' initialize `impl's native state. + (connect): use `connect(SocketAddress, int).' + (connect): use `SocketChannelImpl.connect;' initialize `address' + and `port.' + (bind): use `VMPlainSocketImpl.bind.' + (listen): use `VMPlainSocketImpl.listen.' + (accept): use `SocketChannelImpl.accept.' + (available): use `VMChannel.available.' + (close): use `PlainSocketImpl.close.' + (sendUrgentData): use `PlainSocketImpl.sendUrgentData.' + (getVMChannel, getInetAddress, getLocalPort, getLocalAddress, + getPort): new methods. + (SocketInputStream.read): use `VMChannel.read.' + (SocketInputStream.read): use `SocketChannel.read.' + (SocketOutputStream.write): use `VMChannel.write.' + (SocketOutputStream.write): use `SocketChannel.write.' + * gnu/java/nio/DatagramChannelImpl.java: implement VMChannel. + (channel): new field. + (): initialize `channel.' + (implCloseSelectableChannel): use `VMChannel.close.' + (implConfigureBlocking): use `VMChannel.setBlocking.' + (connect): use `VMChannel.connect.' + (disconnect): use `VMChannel.disconnect.' + (isConnected): use `VMChannel.getPeerAddress.' + (write): use `VMChannel.write.' + (write): use `VMChannel.writeGathering.' + (read): use `VMChannel.read.' + (read): use `VMChannel.readScattering.' + (receive): use `VMChannel.receive.' + (send): use `VMChannel.send.' + (getVMChannel): new method. + * gnu/java/nio/DatagramChannelSelectionKey.java (getNativeFD): + access native FD through VMChannel.State. + * gnu/java/nio/FileChannelImpl.java: moved from + gnu/java/nio/channels/FileChannelImpl.java. + * gnu/java/nio/FileLockImpl.java: fix imports. + * gnu/java/nio/KqueueSelectionKeyImpl.java: new file. + * gnu/java/nio/KqueueSelectorImpl.java: new file. + * gnu/java/nio/NIOSocket.java (impl): removed. + (channel): new field. + (): init superclass with a `NIOSocketImpl;' init `channel.' + (getPlainSocketImpl, setChannel): removed. + (isConnected): new method. + * gnu/java/nio/NIOSocketImpl.java: new file. + * gnu/java/nio/PipeImpl.java (SourceChannelImpl): implement + `VMChannelOwner.' + (SourceChannelImpl.native_fd): removed. + (SourceChannelImpl.): init with a `VMChannel.' + (SourceChannelImpl.getNativeFD): removed. + (SourceChannelImpl.getVMChannel): new method. + (SourceChannelImpl.implCloseSelectableChannel): implement. + (SinkChannelImpl): implement `VMChannelOwner.' + (SinkChannelImpl.native_fd): removed. + (SinkChannelImpl.): init with a `VMChannel.' + (SinkChannelImpl.implCloseSelectableChannel): implement. + (SinkChannelImpl.getNativeFD): removed. + (SinkChannelImpl.getVMChannel): new method. + * gnu/java/nio/SelectionKeyImpl.java (getNativeFD): mark + deprecated. + * gnu/java/nio/SelectorProviderImpl.java (SELECTOR_IMPL_KQUEUE, + SELECTOR_IMPL_EPOLL, SELECTOR_IMPL): new constants. + (openSelector): return kqueue selector if available. + * gnu/java/nio/ServerSocketChannelImpl.java: implement + `VMChannelOwner.' + (channel): new field. + (): init `channel.' + (finalizer): check if the `VMChannel.State' is valid. + (implCloseSelectableChannel): use `VMChannel.close.' + (implConfigureBlocking): use `VMChannel.setBlocking.' + (accept): use `VMChannel.accept.' + (getVMChannel): new method. + * gnu/java/nio/ServerSocketChannelSelectionKey.java (getNativeFD): + access native FD through `VMChannel.State.' + * gnu/java/nio/SocketChannelImpl.java: implement `VMChannelOwner.' + (impl): removed. + (channel, connected, connectAddress): new field. + (): new constructors. + (getPlainSocketImpl): removed. + (implCloseSelectableChannel): use `VMChannel.close.' + (implConfigureBlocking): use `VMChannel.setBlocking.' + (connect): use `connect(SocketAddress,int).' + (connect): use `VMChannel.connect.' + (finishConnect): don't use a selector. + (isConnected): use `VMChannel.getPeerAddress.' + (read): use `VMChannel.read.' + (read): use `VMChannel.readScattering.' + (write): use `VMChannel.write.' + (write): use `VMChannel.writeGathering.' + (getVMChannel): new method. + * gnu/java/nio/SocketChannelSelectionKey.java (getNativeFD): get + native FD from `VMChannel.State.' + * gnu/java/nio/SocketChannelSelectionKeyImpl.java (getNativeFD): + get native FD from `VMChannel.State.' + * gnu/java/nio/VMChannelOwner.java: new file. + * gnu/java/nio/channels/FileChannelImpl.java: removed. + * include/Makefile.am: generate `gnu_java_nio_FileChannelImpl.h' + and `gnu_java_nio_KqueueSelectorImpl.h;' don't generate + `gnu_java_nio_channels_FileChannelImpl.h.' + * include/gnu_java_net_VMPlainSocketImpl.h: regenerated. + * include/gnu_java_nio_FileChannelImpl.h: new file. + * include/gnu_java_nio_KqueueSelectorImpl.h: new file. + * include/gnu_java_nio_VMChannel.h: regenerated. + * include/gnu_java_nio_VMPipe.h: regenerated. + * include/java_net_VMNetworkInterface.h: regenerated. + * java/io/FileDescriptor.java: fix imports. + * java/io/FileInputStream.java (): handle exceptions. + (read): wrap the destination arary. + * java/io/FileOutputStream.java (): handle exceptions. + (write): wrap the source array. + * java/io/RandomAccessFile.java (): handle exceptions. + * java/net/DatagramSocket.java (): handle exceptions. + (receive): handle length/port setting. + (connect): bind to any address/port if the argument is null. + * java/net/NetworkInterface.java (name, inetAddress): removed. + (netif): new field. + (): make private. + (getName): return `netif.name.' + (getInetAddresses): access `netif.addresses.' + (getDisplayName): return `netif.name.' + (getByName, getByAddress): handle changes to `VMNetworkInterface.' + (condense): removed. + (getNetworkInterfaces): handle changes to `VMNetworkInterface.' + (equals): compare `netif' fields. + (hashCode): get hash codes from `netif.' + (toString): use a StringBuffer. + * java/net/ServerSocket.java (close): don't set `impl' to null. + (isClosed): use `VMChannel.State.isClosed.' + * java/net/Socket.java (getLocalAddress): don't use `getOption' if + the `SocketImpl' is a `PlainSocketImpl.' + (close): just close the `impl.' + (toString): use `super.toString' in the value we return. + (isConnected): just access `impl,' not `getImpl.' + (isBound): use `PlainSocketImpl' methods if we can. + (isClosed): look at `VMChannel.State.' + * native/jni/classpath/jcl.c (JNI_OnLoad): new function. + (JCL_NewRawDataObject): don't initialize cached fields here; throw + an exception if they were not. + (JCL_GetRawData): throw an exception if cached fields weren't + created. + * native/jni/java-lang/java_lang_VMProcess.c: handle + FileChannelImpl move. + * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c + (IO_EXCEPTION, SOCKET_EXCEPTION, BIND_EXCEPTION, + THROW_NO_NETWORK): new macros. + (Java_gnu_java_net_VMPlainSocketImpl_bind): reipmlemented. + (Java_gnu_java_net_VMPlainSocketImpl_bind6): new function. + (Java_gnu_java_net_VMPlainSocketImpl_listen): reimplemented. + (java_sockopt): new enum. + (Java_gnu_java_net_VMPlainSocketImpl_setOption): reimplemented. + (Java_gnu_java_net_VMPlainSocketImpl_getOption): reimplemented. + (Java_gnu_java_net_VMPlainSocketImpl_shutdownInput): + reimplemented. + (Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput): + reimplemented. + (Java_gnu_java_net_VMPlainSocketImpl_sendUrgentData): new + function. + (Java_gnu_java_net_VMPlainSocketImpl_join): new function. + (Java_gnu_java_net_VMPlainSocketImpl_join6): new function. + (Java_gnu_java_net_VMPlainSocketImpl_read): removed. + (Java_gnu_java_net_VMPlainSocketImpl_leave): new function. + (Java_gnu_java_net_VMPlainSocketImpl_leave6): new function. + (Java_gnu_java_net_VMPlainSocketImpl_joinGroup): new function. + (Java_gnu_java_net_VMPlainSocketImpl_write): removed. + (Java_gnu_java_net_VMPlainSocketImpl_joinGroup6): new function. + (Java_gnu_java_net_VMPlainSocketImpl_leaveGroup): new function. + (Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6): new function. + (getif_address): new function. + (getif_index): new function. + * native/jni/java-net/java_net_VMNetworkInterface.c + (java_net_VMNetworkInterface_init, + java_net_VMNetworkInterface_addAddress): new file-scope globals. + (Java_java_net_VMNetworkInterface_initIds): new function. + (struct netif_entry): new struct. + (free_netif_list): new function. + (Java_java_net_VMNetworkInterface_getInterfaces): removed. + (Java_java_net_VMNetworkInterface_getVMInterfaces): new function. + * native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES): remove + gnu_java_nio_channels_FileChannelImpl.c, add + gnu_java_nio_KqueueSelectorImpl.c. + * native/jni/java-nio/gnu_java_nio_KqueueSelectorImpl.c: new file. + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (INTERRUPTED_IO_EXCEPTION, SOCKET_TIMEOUT_EXCEPTION, ALIGN_UP, + ALIGN_DOWN): new macros. + (JCL_init_buffer): get the address through GetDirectBufferAddress + if possible. + (Java_gnu_java_nio_VMChannel_stdin_1fd, + Java_gnu_java_nio_VMChannel_stdout_1fd, + Java_gnu_java_nio_VMChannel_stderr_1fd): new functions. + (Java_gnu_java_nio_VMChannel_setBlocking): fix setting blocking + value. + (Java_gnu_java_nio_VMChannel_read): renamed... + (Java_gnu_java_nio_VMChannel_read__ILjava_nio_ByteBuffer_2): to + this; handle interrupted IO; add HAVE_READ check. + (Java_gnu_java_nio_VMChannel_write): renamed... + (Java_gnu_java_nio_VMChannel_write__ILjava_nio_ByteBuffer_2): to + this; handle zero-length write; add HAVE_WRITE check. + (Java_gnu_java_nio_VMChannel_receive): new function. + (Java_gnu_java_nio_VMChannel_send): new function. + (Java_gnu_java_nio_VMChannel_send6): new function. + (Java_gnu_java_nio_VMChannel_read__I): new function. + (Java_gnu_java_nio_VMChannel_write__II): new function. + (Java_gnu_java_nio_VMChannel_socket): new function. + (Java_gnu_java_nio_VMChannel_connect): new function. + (Java_gnu_java_nio_VMChannel_connect6): new function. + (Java_gnu_java_nio_VMChannel_getsockname): new function. + (Java_gnu_java_nio_VMChannel_getpeername): new function. + (Java_gnu_java_nio_VMChannel_accept): new function. + (Java_gnu_java_nio_VMChannel_disconnect): new function. + (Java_gnu_java_nio_VMChannel_close): new function. + (Java_gnu_java_nio_VMChannel_available): new function. + (FileChannel_mode): new enum. + (Java_gnu_java_nio_VMChannel_open): new function. + (Java_gnu_java_nio_VMChannel_position): new function. + (Java_gnu_java_nio_VMChannel_seek): new function. + (Java_gnu_java_nio_VMChannel_truncate): new funciton. + (Java_gnu_java_nio_VMChannel_lock): new function. + (Java_gnu_java_nio_VMChannel_unlock): new function. + (Java_gnu_java_nio_VMChannel_size): new function. + (Java_gnu_java_nio_VMChannel_map): new function. + (Java_gnu_java_nio_VMChannel_flush): new function. + * native/jni/java-nio/gnu_java_nio_VMPipe.c + (Java_gnu_java_nio_VMPipe_init): removed. + (Java_gnu_java_nio_VMPipe_pipe0): new function. + * native/jni/java-nio/javanio.c: new file. + * native/jni/java-nio/javanio.h: new file. + * native/jni/native-lib/cpnet.c (cpnet_getHostByName): fix for + systems without `gethostbyname_r.' + * vm/reference/gnu/java/net/VMPlainSocketImpl.java (nfd): new + field. + (, ): new constructors. + (setOption, getOption): make instance methods; defer to native + implementation. + (connect): removed. + (bind): make an instance method; defer to native methods. + (accept): removed. + (available): removed. + (listen): make an instance method; defer to native method. + (read): removed. + (join, leave): new methods. + (write): removed. + (joinGroup, leaveGroup): new methods. + (shutdownInput, shutdownOutput): make instance methods. + (sendUrgentData): removed. + (State): new class. + * vm/reference/gnu/java/nio/VMChannel.java: make final. + (fd): removed. + (nfd): new field. + (): new, public constructors. + (getVMChannel): methods removed. + (getState, getStdin, getStdout, getStderr, stdin_fd, stdout_fd, + stderr_fd): new methods. + (setBlocking): make an instance method. + (available): new method. + (read): get native fd from `nfd.' + (read): new single-byte read method. + (readScattering): get native fd from `nfd.' + (receive): new method. + (write, writeGathering): get native fd from `nfd.' + (send): new method. + (write): new single-byte write method. + (initSocket): new method. + (connect): new method. + (disconnect): new method. + (getLocalAddress): new method. + (getPeerAddress): new method. + (accept): new method. + (openFile): new method. + (position): new method. + (seek): new method. + (truncate): new method. + (lock): new method. + (unlock): new method. + (size): new method. + (map): new method. + (flush): new method. + (close): new method. + (State): new class. + (Kind): new class. + * vm/reference/gnu/java/nio/VMPipe.java (init): removed. + (pipe, pipe0): new method. + * vm/reference/java/net/VMNetworkInterface.java (name, addresses): + new fields. + (): call `initIds.' + (initIds): new method. + (getInterfaces): removed. + (getVMInterfaces): new method. + (addAddress): new method. + * vm/reference/java/nio/channels/VMChannels.java: fix imports. + +2006-09-16 Chris Burdess + + Fixes PR 28572. + * gnu/xml/transform/StreamSerializer.java: Don't escape XML entities + when in text output mode. + +2006-09-16 Chris Burdess + + Fixes PR 27293. + * gnu/xml/dom/DomNode.java: Increment length of node during insert. + +2006-09-14 Michael Koch + + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Recreated. + +2006-09-15 Chistian Elias Naur + + * java/io/ObjectStreamClass.java (setClass(Class, ObjectStreamClass)): + Added !cl.isArray() to serialVersionUID mismatch check. + +2006-09-14 Francis Kung + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (gnu_java_awt_peer_gtk_CairoGraphics2D_setGradient): Updated constants to + be compatibe with Cairo 1.2.x. + +2006-09-14 Francis Kung + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java: Added interpolation constants. + (cairoSurfaceSetFilter): Removed method. + (drawImage): Pass interpolation type as argument to drawing methods. + (drawPixels): Added interpolation parameter. + (drawRaster): Pass interpolation type as argument to drawing method. + (getInterpolation): New method. + (setRenderingHint): Store hints, but do not set interpolation in cairo. + (setRenderingHints): Store hints, but do not set interpolation in cairo. + * gnu/java/awt/peer/gtk/CairoSurface.java + (drawSurface): Added interpolation parameter. + (nativeDrawSurface): Added interpolation parameter. + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels): Added interpolation + parameter. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter): Removed. + * native/jni/gtk-peer/cairographics2d.h + (java_awt_rendering_hints_filter): Added bicubic interpolation constant. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels): Added interpolation + parameter. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter): Removed. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c + (Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface): Added + interpolation parameter. + +2006-09-14 Gary Benson + + * java/net/InetAddress.java + (internalGetCanonicalHostName): New method. + (getCanonicalHostName): Use internalGetCanonicalHostName. + (getByLiteral): New method. + (getAllByName): Use getByLiteral. + * java/net/SocketPermission.java + (host): Replaced with... + (hostname, address): New fields. + (equals, hashcode): Reflect the above. + (setHostPort): Parse host into hostname or address. + (implies): Rewrite host checks. + +2006-09-14 David Gilbert + + Fixes PR28699 + * java/awt/Menu.java + (insert(MenuItem, int)): Fixed loop range, + (insert(String, int)): Updated API docs. + +2006-09-14 Christian Thalinger + + Fixes PR22800 + * native/fdlibm/mprec.h (Storeinc): Define correctly for LE + architectures (like Arm). + * native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits): + Reverted SWAP_DOUBLE patch. + (doubleToRawLongBits): Likewise. + (longBitsToDouble): Likewise. + +2006-09-14 David Gilbert + + * java/awt/Menu.java: Reformatted source file. + +2006-09-14 Jeroen Frijters + + * gnu/java/rmi/server/ActivatableRef.java + (readExternal, writeExternal): Partial fix for serialization format. + +2006-09-14 Jeroen Frijters + + PR classpath/28984 + * java/io/InputStreamReader.java + (read(char[],int,int)): Fixed bug. + +2006-09-13 Francis Kung + + * java/awt/image/BandCombineOp.java: Updated documentation. + (filter(Raster, WritableRaster)): Use int arrays, and added simple cache. + +2006-09-13 Tom Tromey + + PR classpath/29034: + * java/io/PipedReader.java (read): Return early if len==0. + * java/io/PipedInputStream.java (read): Return early if len==0. + +2006-09-13 Francis Kung + + * java/awt/image/ConvolveOp.java (filter(Raster, WritableRaster)): + Removed hard-coded max sample value. + * java/awt/image/RescaleOp.java (filter(Raster, WritableRaster)): + Fixed finding of max sample value. + +2006-09-12 David Gilbert + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (setPaint): Check null argument ('p'). + +2006-09-12 Francis Kung + + PR 27940 + * gnu/java/awt/java2d/TexturePaintContext.java + (constructor): Fixed typo, getMinY instead of getMaxX. + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (setPaint): Implemented support for custom Paint classes. + (setPaintPixels): Renamed from setTexturePixels, added repeat parameter. + (setTexturePixels): Renamed to setPaintPixels, added repeat parameter. + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Renamed setTexturePixels + to setPaintPixels, and added repeat parameter. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c: + Renamed setTexturePixels to setPaintPixels, and added repeat parameter. + +2006-09-12 Gary Benson + + * java/net/NetworkInterface.java (getInetAddresses): + Fix port used in security check. + +2006-09-12 David Gilbert + + * javax/swing/plaf/metal/DefaultMetalTheme.java + (CONTROL_TEXT_FONT): Renamed 'controlTextFont', + (MENU_TEXT_FONT): Renamed 'menuTextFont', + (getControlTextFont): Check 'swing.boldMetal' setting before + initialising font, + (getMenuTextFont): Likewise. + +2006-09-12 David Gilbert + + * javax/swing/plaf/metal/OceanTheme.java + (addCustomEntriesToTable): Added 'List.focusCellHighlightBorder' entry. + +2006-09-12 David Gilbert + + * javax/swing/plaf/metal/MetalIconFactory.java + (InternalFrameDefaultMenuIcon.paintIcon): Use theme colors. + +2006-09-12 David Gilbert + + * javax/swing/AbstractSpinnerModel.java: API doc updates. + +2006-09-12 David Gilbert + + * javax/swing/AbstractButton.java + (AbstractButton): Initialise textIconGap field. + +2006-09-11 Tom Tromey + + * tools/gnu/classpath/tools/javah/FieldHelper.java (print): Print + "volatile" when needed. + +2006-09-11 David Gilbert + + * java/text/AttributedCharacterIterator.java + (LANGUAGE): Initialise with lower case string, + (INPUT_METHOD_SEGMENT): Likewise, + (READING): Likewise, + * java/text/AttributedStringIterator.java + (getRunLimit): Check all attributes for changes. + +2006-09-11 David Gilbert + + * java/text/AttributedCharacterIterator.java: Added @since tag, + renamed some variables (no underscores) and removed some spaces to + match the common style, + * java/text/AttributedString.java: Likewise, + * java/text/AttributedStringIterator.java: Likewise. + +2006-09-11 Gary Benson + + * java/net/Inet4Address.java + (FAMILY): Renamed back to AF_INET. + (, writeReplace): Reflect the above. + * java/net/Inet6Address.java + (FAMILY): Renamed back to AF_INET6. + (): Reflect the above. + +2006-09-11 Cameron McCormack + + Fixes PR29010 + * java/text/AttributedString.java + (AttributedString(AttributedCharacterIterator, int, int, + AttributedCharacterIterator.Attribute[])): Fixed check for defined + attribute. + +2006-09-11 Gary Benson + + * java/net/Inet4Address.java + (AF_INET): Renamed to FAMILY. + (, writeReplace): Reflect the above. + * java/net/Inet6Address.java + (AF_INET6): Renamed to FAMILY. + (): Reflect the above. + +2006-09-10 Ito Kazumitsu + + Fixes bug #28867 + Originally in Kaffe: 2004-04-16 Helmer Kraemer + * java/net/ServerSocket.java(implAccept): Deleted socket.implCreated. + * java/net/Socket.java: Avoid creating a redundant file descriptor. + (implCreated): Deleted, (getImpl): Don't check impleCreated, + (bind): Call getImpl().create(true). + +2006-09-09 Chris Burdess + + * gnu/xml/xpath/Expr.java: Ensure that node-set evaluation returns + an instance of org.w3c.dom.NodeList. + +2006-09-08 Thomas Fitzsimmons + + * tools/gnu/classpath/tools/appletviewer/Main.java: Warn about + missing security manager when run in standalone mode. + +2006-09-08 Francis Kung + + * java/awt/image/AffineTransformOp.java: Updated documentation. + (createCompatibleDestRaster): Updated formatting. + (filter(BufferedImage, BufferedImage)): Updated formatting. + (filter(Raster, WritableRaster)): Delegated processing to native peers for + if colour model is compatible. + (filterBicubic): Get entire pixel at once, and use appropriate array type. + (filterBilinear): Get entire pixel at once, and use appropriate array type. + +2006-09-08 Gary Benson + + * java/net/InetAddress.java + (family): Updated javadoc and made private. + (): Add an address family argument. + (readObject): Don't overwrite family. + * java/net/Inet4Address.java + (AF_INET): New constant. + (): Use AF_INET as the family. + (writeReplace): Likewise. + * java/net/Inet6Address.java + (AF_INET6): New constant. + (): Use AF_INET6 as the family. + +2006-09-08 Gary Benson + + * java/net/InetAddress.java + (getHostName): Move lookup into getCanonicalHostName. + (getCanonicalHostName): Move lookup from getHostName, + Perform security check on canonical name (ie after lookup). + +2006-09-08 Gary Benson + + * java/net/Inet4Address.java (isMulticastAddress, + isLoopbackAddress, isAnyLocalAddress, isLinkLocalAddress, + isSiteLocalAddress, isMCGlobal, isMCNodeLocal, isMCLinkLocal, + isMCSiteLocal, isMCOrgLocal, getHostAddress): Moved + implementations from InetAddress. + * java/net/InetAddress.java (isMulticastAddress, + isLoopbackAddress, isAnyLocalAddress, isLinkLocalAddress, + isSiteLocalAddress, isMCGlobal, isMCNodeLocal, isMCLinkLocal, + isMCSiteLocal, isMCOrgLocal, getHostAddress): Replace + implementations with UnsupportedOperationExceptions. + +2006-09-08 Gary Benson + + * java/net/InetAddress.java + (inaddr_any): Removed. + (ANY_IF, LOCALHOST): Create using getByAddress. + (): Updated javadoc. + (getHostName): Cache hostname even if the lookup failed. + (getByAddress): Create Inet4Address objects when passed + IPv4-mapped IPv6 addresses. + (aton): Removed. + (getAllByName): Create address objects using getByAddress. + Do not perform security checks unless actually required. + Do not strip whitespace from the hostname. + (getInaddrAny): Removed. + (getLocalHost): Return the loopback address if getByName + throws a SecurityException. + (readResolve): Updated javadoc. + * vm/reference/java/net/VMInetAddress.java (aton): Declared. + * include/java_net_VMInetAddress.h + (Java_java_net_VMInetAddress_aton): Likewise. + * native/jni/java-net/java_net_VMInetAddress.c + (Java_java_net_VMInetAddress_aton): New method. + * native/jni/native-lib/cpnet.h (cpnet_aton): Declared. + * native/jni/native-lib/cpnet.c (cpnet_aton): New method. + * configure.ac (AC_CHECK_FUNCS): Checks for cpnet_aton. + * java/net/Inet4Address.java (writeReplace): Updated javadoc. + * NEWS: Added note about updated VM interface. + +2006-09-07 David Gilbert + + * javax/swing/plaf/basic/BasicInternalFrameUI.java + (setNorthPane): Assign component to titlePane. + +2006-09-07 Audrius Meskauskas + + * gnu/CORBA/NamingService/NameParser.java (corbaloc): + Remove unused variable alt_addr. + * gnu/CORBA/NamingService/NameTransformer.java (toName): + Remove unused variables. + +2006-09-07 David Gilbert + + * javax/swing/plaf/metal/MetalScrollBarUI.java + (installDefaults): Initialise scrollBarWidth from UI defaults here, + (createDecreaseButton): Don't fetch scrollBarWidth here, + (createIncreaseButton): Likewise. + +2006-09-07 David Gilbert + + * java/awt/image/MemoryImageSource.java: Added API docs. + +2006-09-06 David Gilbert + + * javax/swing/plaf/basic/BasicScrollBarUI.java + (installDefaults): Call configureScrollBarColors(). + +2006-09-06 Francis Kung + + * java/awt/image/RescaleOp.java: Updated documentation and formatting. + (constructor): Make copy of arrays. + (createCompatibleDestImage): Changed treatment of null ColorModel. + (filter(BufferedImage, BufferedImage)): Re-implemented. + (filter(Raster, WritableRaster, boolean[])): New method. + (filter(Raster, WritableRaster)): Re-implemented. + (getOffsets): Prevent ArrayIndexOutOfBoundsException. + (getPoint2D): Cleaned up formatting. + (getScaleFactors): Prevent ArrayIndexOutOfBoundsException. + +2006-09-06 David Gilbert + + * javax/swing/UIManager.java + (getBoolean(Object)): Reimplemented, + (getBoolean(Object, Locale)): Likewise, + (getBorder(Object)): Likewise, + (getBorder(Object, Locale)): Likewise, + (getColor(Object)): Likewise, + (getColor(Object, Locale)): Likewise, + (getDimension(Object)): Likewise, + (getDimension(Object, Locale)): Likewise, + (getFont(Object)): Likewise, + (getFont(Object, Locale)): Likewise, + (getIcon(Object)): Likewise, + (getIcon(Object, Locale)): Likewise, + (getInsets(Object)): Updated API docs, + (getInsets(Object, Locale)): Likewise, + (getInt(Object)): Reimplemented, + (getInt(Object, Locale)): Likewise, + (getString(Object)): Likewise, + (getString(Object, Locale)): Likewise. + +2006-09-06 David Gilbert + + * javax/swing/UIManager.java + (MultiplexUIDefaults.MultiplexUIDefaults()): Don't allow null fallback, + (getDefaults): Initialise MultiplexUIDefaults with empty fallback. + +2006-09-06 David Gilbert + + * javax/swing/plaf/metal/MetalLookAndFeel.java + (initComponentDefaults): Corrected various font defaults. + +2006-09-05 David Gilbert + + * java/awt/List.java: Added @since to various methods. + +2006-09-05 Andrew John Hughes + + * native/jni/native-lib/cpprocess.c: + (forkAndExec(char*,char*,int,int,pid_t,char*)): + Add redirection of stdout to stderr. + * native/jni/native-lib/cpprocess.h: + Added redirect argument. + * native/jni/java-lang/java_lang_VMProcess.c + (Java_java_lang_VMProcess_nativeSpawn): Readd redirect argument. + * vm/reference/java/lang/VMProcess.java: Likewise. + * include/java_lang_VMProcess.h: Regenerated. + +2006-09-05 Andreas Tobler + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c: Adjust + __attribute to __attribute__. + + * native/jni/java-nio/java_nio_MappedByteBufferImpl.c: Remove duplicate + header include. + +2006-09-05 David Gilbert + + * java/awt/List.java: Source code reformatted. + +2006-09-05 Audrius Meskauskas + + * gnu/CORBA/CollocatedOrbs.java, + gnu/CORBA/SafeForDirectCalls.java: New files. + * gnu/CORBA/NamingService/Binding_iterator_impl.java: + Implement gnu.CORBA.SafeForDirectCalls. + * gnu/CORBA/NamingService/Ext.java: Likewise. + * gnu/CORBA/NamingService/TransientContext.java: Likewise. + * gnu/CORBA/OrbFunctional.java (createIor):Cache the address + of the local host. (ior_to_object): Return the local object + where possible. (run): Register/unregister this ORB. + * gnu/CORBA/Poa/LocalRequest.java (v_invoke): Call gnuPOA.checkDiscarding. + * gnu/CORBA/Poa/gnuPOA.java (checkDiscarding): Made package private. + * gnu/CORBA/Poa/gnuServantObject.java (noRetain): New field. + (constructors): Initialize noRetain. (_invoke): Drop servant + if noRetain is true. (getHandler): Always seach for the new servant + if noRetain is true. + * gnu/CORBA/SimpleDelegate.java (create_request): Implemented. + * NEWS: Added note about the new feature. + +2006-09-05 David Gilbert + + * java/awt/Choice.java + (addItem): Fixed API doc glitch. + +2006-09-05 Francis Kung + + * java/awt/image/LookupOp.java: Updated documentation & formatting. + (createCompatibleDestImage): Re-implemented. + (filter(BufferedImage, BufferedImage)): Added check for src/dest image + compatibility, and use ColorConvertOp for color conversion if needed. + (filter(Raster, WritableRaster)): Made exceptions more descriptive. + +2006-09-05 Audrius Meskauskas + + gnu/CORBA/CDR/Vio.java, + org/omg/CORBA_2_3/ORB.java, + org/omg/CORBA_2_3/portable/InputStream.java, + org/omg/CORBA_2_3/portable/OutputStream.java, + org/omg/CosNaming/BindingIteratorHelper.java, + org/omg/CosNaming/BindingTypeHelper.java, + org/omg/CosNaming/NameComponentHelper.java, + org/omg/CosNaming/NameHelper.java, + org/omg/CosNaming/NamingContextExtHelper.java, + org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java, + org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java, + org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java, + org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java, + org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java, + org/omg/CosNaming/NamingContextHelper.java, + org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java, + org/omg/CosNaming/NamingContextPackage/InvalidName.java, + org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java, + org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java, + org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java, + org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java, + org/omg/DynamicAny/AnySeqHelper.java, + org/omg/DynamicAny/DynAnyFactoryHelper.java, + org/omg/DynamicAny/DynAnyFactoryOperations.java, + org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java, + org/omg/DynamicAny/DynAnyHelper.java, + org/omg/DynamicAny/DynAnyOperations.java, + org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java, + org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java, + org/omg/DynamicAny/DynAnySeqHelper.java, + org/omg/DynamicAny/DynArrayHelper.java, + org/omg/DynamicAny/DynEnumHelper.java, + org/omg/DynamicAny/DynFixedHelper.java, + org/omg/DynamicAny/DynSequenceHelper.java, + org/omg/DynamicAny/DynStructHelper.java, + org/omg/DynamicAny/DynStructOperations.java, + org/omg/DynamicAny/DynUnionHelper.java, + org/omg/DynamicAny/DynValueHelper.java, + org/omg/DynamicAny/NameDynAnyPairHelper.java, + org/omg/DynamicAny/NameDynAnyPairSeqHelper.java, + org/omg/IOP/CodecFactoryHelper.java, + org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java, + org/omg/IOP/CodecOperations.java, + org/omg/IOP/CodecPackage/FormatMismatchHelper.java, + org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java, + org/omg/IOP/CodecPackage/TypeMismatchHelper.java, + org/omg/IOP/ComponentIdHelper.java, + org/omg/IOP/ExceptionDetailMessage.java, + org/omg/IOP/MultipleComponentProfileHelper.java, + org/omg/IOP/ProfileIdHelper.java, + org/omg/IOP/ServiceContextListHelper.java, + org/omg/IOP/ServiceIdHelper.java, + org/omg/IOP/TAG_CODE_SETS.java, + org/omg/PortableInterceptor/ClientRequestInfoOperations.java, + org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java, + org/omg/PortableInterceptor/CurrentHelper.java, + org/omg/PortableInterceptor/IORInfo.java, + org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java, + org/omg/PortableInterceptor/ORBIdHelper.java, + org/omg/PortableInterceptor/ORBInitInfoOperations.java, + org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java, + org/omg/PortableInterceptor/ORBInitializerOperations.java, + org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java, + org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java, + org/omg/PortableInterceptor/RequestInfoOperations.java, + org/omg/PortableInterceptor/ServerIdHelper.java, + org/omg/PortableInterceptor/ServerRequestInfoOperations.java, + org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java, + org/omg/PortableServer/AdapterActivatorOperations.java, + org/omg/PortableServer/CurrentHelper.java, + org/omg/PortableServer/CurrentPackage/NoContextHelper.java, + org/omg/PortableServer/ForwardRequestHelper.java, + org/omg/PortableServer/IdAssignmentPolicyValue.java, + org/omg/PortableServer/IdUniquenessPolicyValue.java, + org/omg/PortableServer/ImplicitActivationPolicyValue.java, + org/omg/PortableServer/LifespanPolicyValue.java, + org/omg/PortableServer/POA.java, + org/omg/PortableServer/POAHelper.java, + org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java, + org/omg/PortableServer/POAManagerPackage/State.java, + org/omg/PortableServer/POAOperations.java, + org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java, + org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java, + org/omg/PortableServer/POAPackage/InvalidPolicy.java, + org/omg/PortableServer/POAPackage/NoServantHelper.java, + org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java, + org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java, + org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java, + org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java, + org/omg/PortableServer/POAPackage/WrongAdapterHelper.java, + org/omg/PortableServer/POAPackage/WrongPolicyHelper.java, + org/omg/PortableServer/RequestProcessingPolicyValue.java, + org/omg/PortableServer/ServantActivatorHelper.java, + org/omg/PortableServer/ServantLocatorHelper.java, + org/omg/PortableServer/ServantLocatorOperations.java, + org/omg/PortableServer/ServantRetentionPolicyValue.java, + org/omg/PortableServer/ThreadPolicyValue.java, + org/omg/PortableServer/_ServantActivatorStub.java, + org/omg/PortableServer/_ServantLocatorStub.java, + org/omg/PortableServer/portable/Delegate.java: Documentation fixes. + +2006-09-05 Audrius Meskauskas + + * javax/rmi/CORBA/Tie.java, + org/omg/CORBA/AnyHolder.java, + org/omg/CORBA/AnySeqHelper.java, + org/omg/CORBA/AnySeqHolder.java, + org/omg/CORBA/BooleanHolder.java, + org/omg/CORBA/BooleanSeqHelper.java, + org/omg/CORBA/BooleanSeqHolder.java, + org/omg/CORBA/ByteHolder.java, + org/omg/CORBA/CharHolder.java, + org/omg/CORBA/CharSeqHelper.java, + org/omg/CORBA/CharSeqHolder.java, + org/omg/CORBA/Context.java, + org/omg/CORBA/CurrentHelper.java, + org/omg/CORBA/CustomValue.java, + org/omg/CORBA/DataOutputStream.java, + org/omg/CORBA/DefinitionKindHelper.java, + org/omg/CORBA/DomainManagerOperations.java, + org/omg/CORBA/DoubleHolder.java, + org/omg/CORBA/DoubleSeqHelper.java, + org/omg/CORBA/DoubleSeqHolder.java, + org/omg/CORBA/DynAny.java, + org/omg/CORBA/DynSequence.java, + org/omg/CORBA/DynValue.java, + org/omg/CORBA/DynamicImplementation.java, + org/omg/CORBA/FieldNameHelper.java, + org/omg/CORBA/FixedHolder.java, + org/omg/CORBA/FloatHolder.java, + org/omg/CORBA/FloatSeqHelper.java, + org/omg/CORBA/FloatSeqHolder.java, + org/omg/CORBA/IdentifierHelper.java, + org/omg/CORBA/IntHolder.java, + org/omg/CORBA/LocalObject.java, + org/omg/CORBA/LongHolder.java, + org/omg/CORBA/LongLongSeqHelper.java, + org/omg/CORBA/LongLongSeqHolder.java, + org/omg/CORBA/LongSeqHelper.java, + org/omg/CORBA/LongSeqHolder.java, + org/omg/CORBA/ORB.java, + org/omg/CORBA/ObjectHelper.java, + org/omg/CORBA/ObjectHolder.java, + org/omg/CORBA/OctetSeqHelper.java, + org/omg/CORBA/OctetSeqHolder.java, + org/omg/CORBA/PolicyErrorCodeHelper.java, + org/omg/CORBA/PolicyErrorHelper.java, + org/omg/CORBA/PolicyHelper.java, + org/omg/CORBA/PolicyListHelper.java, + org/omg/CORBA/PolicyTypeHelper.java, + org/omg/CORBA/PrincipalHolder.java, + org/omg/CORBA/RepositoryIdHelper.java, + org/omg/CORBA/Request.java, + org/omg/CORBA/ShortHolder.java, + org/omg/CORBA/ShortSeqHelper.java, + org/omg/CORBA/ShortSeqHolder.java, + org/omg/CORBA/StringSeqHelper.java, + org/omg/CORBA/StringSeqHolder.java, + org/omg/CORBA/ULongLongSeqHelper.java, + org/omg/CORBA/ULongLongSeqHolder.java, + org/omg/CORBA/ULongSeqHelper.java, + org/omg/CORBA/ULongSeqHolder.java, + org/omg/CORBA/UShortSeqHelper.java, + org/omg/CORBA/UShortSeqHolder.java, + org/omg/CORBA/ValueBaseHelper.java, + org/omg/CORBA/ValueBaseHolder.java, + org/omg/CORBA/VersionSpecHelper.java, + org/omg/CORBA/WCharSeqHelper.java, + org/omg/CORBA/WCharSeqHolder.java, + org/omg/CORBA/WStringSeqHelper.java, + org/omg/CORBA/WStringSeqHolder.java, + org/omg/CORBA/WrongTransactionHelper.java, + org/omg/CORBA/_IDLTypeStub.java, + org/omg/CORBA/_PolicyStub.java, + org/omg/CORBA/portable/BoxedValueHelper.java, + org/omg/CORBA/portable/Delegate.java, + org/omg/CORBA/portable/ObjectImpl.java, + org/omg/CORBA/portable/ServantObject.java, + org/omg/CORBA/portable/StreamableValue.java, + org/omg/CosNaming/BindingType.java, + org/omg/CosNaming/IstringHelper.java, + org/omg/DynamicAny/FieldNameHelper.java, + org/omg/PortableServer/Servant.java: Documentation fixes. + +2006-09-04 David Gilbert + + * java/awt/Rectangle.java + (setRect(double, double, double, double)): Modified rounding of input + values. + +2006-09-03 Audrius Meskauskas + + * gnu/javax/swing/text/html/parser/HTML_401F.java (defineElements): + Disallow H1 - H6 in the paragraphs. + * gnu/javax/swing/text/html/parser/support/textPreProcessor.java + (preprocess): Leave at most one leading and/or trailing space. + * javax/swing/text/html/HTMLDocument.java (HTMLReader.handleText): + Do not add any text after closing the HTML tag. + +2006-09-02 Roman Kennke + + PR 28928 + * javax/swing/plaf/basic/BasicTextUI.java + (RootView.getPreferredSpan): Default to 10 when there is no + real view. + (RootView.getMinimumSpan): Forward to view and default to 10 + when there is no real view. + (RootView.getMaximumSpan): Return Integer.MAX_VALUE. + (getMaximumSize): Check for overflow. + * javax/swing/text/FieldView.java + (getResizeWeight): Removed unneeded assignment. + +2006-09-01 Francis Kung + * java/awt/image/ColorConvertOp.java + (copyImage): Updated javadoc and comments. + (copyRaster): Add javadoc. + (createCompatibleColorModel): Add javadocs and comments. + (createCompatibleDestImage): Use correct transfer type. + (createCompatibleDestRaster): Add new parameter for transfer type. + (filter): Use correct transfer type. + * java/awt/image/ConvolveOp.java: Updated javadocs. + (createCompatibleDestImage): Set new image properties correctly. + (filter(BufferedImage, BufferedImage): Correct handling of premultiplication. + (filter(WritableRaster, Raster): Clip sample values to [0-255]. + +2006-09-01 Robert Schuster + + * javax/swing/table/DefaultTableModel.java: + (checkSize): Added null check for dataVector. + +2006-09-01 Robert Schuster + + * javax/swing/plaf/basic/BasicSplitPaneUI.java: + (BasicHorizontalLayout.getAlignmentX): Return fixed value. + (BasicHorizontalLayout.getAlignmentY): Return fixed value. + +2006-09-01 Robert Schuster + + * javax/swing/plaf/metal/MetalCheckBoxIcon.java: + (paintIcon): Removed unused import statements, lowered cast requirement + from JCheckBox to AbstractButton. + +2006-09-01 Robert Schuster + + * javax/swing/plaf/basic/BasicLookAndFeel.java: + (initComponentDefaults): Added, changed and removed some + tabbed pane properties. + +2006-09-01 Robert Schuster + + * examples/gnu/classpath/examples/swing/TabbedPaneDemo.java: + (createContent): Changed menu item name and tab naming. + +2006-09-01 Roman Kennke + + PR 28922 + * javax/swing/plaf/basic/BasicHTML.java + (HTMLRootView.getAttributes): Overridden to return null. + (HTMLRootView.getElement): Overridden to return the view's + element. + +2006-09-01 Robert Schuster + + * javax/swing/plaf/basic/BasicTabbedPaneUI.java: + (calculateTabAreaHeight): Use getTabRunOverlay method instead + of accessing variable directly. + (calculateTabAreaWidth): Dito. + +2006-08-31 Keith Seitz + + * include/jvmti.h: Include jvmti_md.h. + +2006-08-31 Keith Seitz + + From Martin Platter : + * Makefile.am (include_HEADERS): Include jvmti.h. + * include/jvmti.h (jvmtiEnv) [!__cplusplus]: Add missing '*'. + (jvmtiError): Remove superfluous comma after last entry. + (jvmtiEvent): It's "BREAKPOINT" not "BERAKPOINT". + (_Jv_jvmtiEnv.StopThread): Add missing exception parameter. + (_Jv_jvmtiEnv.RawMonitorWait): Add missing millis parameter. + (_Jv_jvmtiEnv.GetSourceFileName): source_name_ptr is pointer to + character pointer. + (_Jv_JVMTIEnv::StopThread): Add missing exception parameter. + (_Jv_JVMTIEnv::RawMonitorWait): Add missing millis parameter. + (_Jv_JVMTIEnv::GetSourceFileName): source_name_ptr is pointer to + character pointer. + +2006-08-31 Roman Kennke + + * javax/swing/text/BoxView.java + (getWidth): Return the width with insets added, not with one + added and one removed. + (getHeight): Return the height with insets added, not with one + added and one removed. + * javax/swing/text/GlyphView.java + (DefaultGlyphPainter.viewToModel): Need to add the start offset. + * javax/swing/text/ParagraphView.java + (Row.getAlignment): Adjust alignment with respect to + the justification attribute. + (Row.getLeftInset): Overridden to adjust for firstLineIndent + attribute. + * javax/swing/text/html/CSS.java + (getValue): Convert length values. + * javax/swing/text/html/Paragraph.java + (painter): New field. + (paint): Implemented to delegate painting to the BoxPainter too. + (setPropertiesFromAttributes): Implemented to load attributes + from CSS. + * javax/swing/text/html/StyleSheet.java + (BoxPainter.as): Removed field. + (BoxPainter.leftInset): New field. + (BoxPainter.bottomInset): New field. + (BoxPainter.rightInset): New field. + (BoxPainter.topInset): New field. + (BoxPainter.BoxPainter): Implemented to load the insets from + CSS. + (BoxPainter.getInset): Implemented. + * gnu/javax/swing/text/html/Length.java: New class. + Converts CSS length units to usable values. + +2006-08-31 Andreas Tobler + + * configure.ac: Add check for gethostbyname_r. + Add check for MSG_NOSIGNAL and SO_NOSIGPIPE. + * native/jni/native-lib/cpnet.c (SOCKET_NOSIGNAL): Define + SOCKET_NOSIGNAL according to the configure check. + (cpnet_send): Use SOCKET_NOSIGNAL. + (cpnet_sendTo): Likewise. + (cpnet_getHostByName): Use gethostbyname in case gethostbyname_r is not + defined. + * native/jni/native-lib/cpio.c: Define O_SYNC and O_DSYNC in case they + are not available. + + * lib/Makefile.am (cssfiles): Add new rule to install css files. + +2006-08-31 Roman Kennke + + * javax/swing/JEditorPane.java + (getPreferredSize): Replace preferred size with minimum + UI size only if the scrollable does _not_ track the viewport + size and only if the viewport's size is smaller than the + scrollable's size. + (getScrollableTracksViewportWidth): Avoid unnecessary multiple + method calls. + * javax/swing/plaf/basic/BasicTextUI.java + (getPreferredSize): Read-lock the document to avoid + concurrency problems. + (getMaximumSize): Return maximum size of the view. + Read-lock the document to avoid concurrency problems. + (getMinimumSize): Return minimum size of the view. + Read-lock the document to avoid concurrency problems. + +2006-08-31 Gary Benson + + * java/net/SocketPermission.java + (maybeBracketIPv6Address): Renamed to processHostport. + (processHostport): Also translate "" to "localhost". + (setHostPort): Remove special cases for empty hostport and for + extra colons in hostport (processHostport handles these now). + +2006-08-31 Mark Wielaard + + * javax/swing/text/ZoneView.java (Zone): Make static class. + Constructor takes axis parameter. + (createZone): Create Zone with getAxis() as major axis. + +2006-08-30 Roman Kennke + + * javax/swing/text/ZoneView.java + (loadChildren): Implemented. + (getViewIndexAtPosition): Implemented. + (checkZoneAt): New helper method. + (splitZone): New helper method. + (getPreferredZoneEnd): New helper method. + +2006-08-30 Roman Kennke + + * javax/swing/text/ZoneView.java: New class. + +2006-08-30 Roman Kennke + + * javax/swing/JMenu.java + (getMenu): Removed unneeded cast. + (getPopupMenuOrigin): Made positioning algorithm better respect + the screen bounds. + (setMenuLocation): Also set the location on the popup if it's + not null. + (setModel): Use menuChangeListener so that we don't override + the changeListener field from AbstractButton. + (setPopupMenuVisible): Use custom location if set, otherwise + fallback to getPopupMenuOrigin(). + +2006-08-29 Roman Kennke + + * javax/swing/text/InternationalFormatter.java + (stringToValue): Fixed bounds check. + * javax/swing/text/MaskFormatter.java + (MaskFormatter): Don't explicitly set allosInvalid property. + (convertStringToValue): New helper method. + (convertValueToString): New helper method. + (convertValue): Removed. Replaced by the 2 convert* methods + above. + (getPadCharAt): Removed. + (isCharValid): Removed. + (pad): Removed. + (stringToValue): Fixed stringToValue conversion. + (stripLiterals): Removed. + (valueToString): Fixed valueToString conversion. + * javax/swing/text/DefaultFormatter.java + (DefaultFormatter): Default to commitsOnValidEdit = false. + +2006-08-29 Roman Kennke + + * javax/swing/text/TextAction.java + (getTextComponent): Check event for null and return null in + this case. + (augmentList): Augment Actions based on their names. + * javax/swing/text/DefaultEditorKit.java + (BeginAction.actionPerformed): Check target for null. + (BeginLineAction.actionPerformed): Check target for null. + (CopyAction.actionPerformed): Check target for null. + (CutAction.actionPerformed): Check target for null. + (EndAction.actionPerformed): Check target for null. + (EndLineAction.actionPerformed): Check target for null. + (InsertBreakAction.actionPerformed): Check target for null. + (InsertTabAction.actionPerformed): Check target for null. + (PasteAction.actionPerformed): Check target for null. + (SelectAllAction.actionPerformed): Check target for null. + (SelectionBeginAction.actionPerformed): Check target for null. + (SelectionBeginLineAction.actionPerformed): Check target for null. + (SelectionEndAction.actionPerformed): Check target for null. + (SelectionEndLineAction.actionPerformed): Check target for null. + (SelectLineAction.actionPerformed): Check target for null. + (SelectWordAction.actionPerformed): Check target for null. + +2006-08-29 Roman Kennke + + * javax/swing/plaf/basic/BasicTextUI.java + (FocusHandler): New class. This is moved from the anonymous + inner focus listener class to a static member class, and + is now shared between components. + (DocumentHandler): This class is combined with the PropertyHandler + into the Handler class. + (PropertyChangeHandler): This class is combined with the + DocumentHandler into the Handler class. + (Handler): New class. This combines the Property and Document + handler into one class. + (RootView.changedUpdate): Only forward if real view != null. + (RootView.insertUpdate): Only forward if real view != null. + (RootView.removeUpdate): Only forward if real view != null. + (documentHandler): Removed field and replaced by handler. + (focuslistener): Made field static and renamed to focusListener. + (handler): New field. + (kit): Lazily initialize field. + (rootView): Lazily initialize field. + (updateHandler): Removed and replaced by handler. + (getEditorKit): Lazily instantiate field. + (installDefaults): Don't set margin twice. Install correct + property for disabledTextColor. Moved caret and highlighter + initialization to installFixedDefaults. + (installFixedDefaults): New method. Installs defaults that + can't be overridden by subclasses. + (installListeners): Only install focus handler when new + system property gnu.swing.text.no-xlike-clipboard is not set. + Lazily initialize focus handler. + (installUI): Lazily initialize rootView. Install handler + both for property and document changes. + (uninstallDefaults): Uninstall the UI defaults. + (uninstallFixedDefaults): New method. Uninstalls the fixed + defaults. + (installListeners): Only uninstall focus handler when not null. + (uninstallUI): Uninstall property and document listener here. + +2006-08-29 Gary Benson + + * java/net/SocketPermission.java + (maybeBracketIPv6Address): New method. + (): Pass the hostport argument through the above. + + * java/net/NetworkInterface.java (getInetAddresses): + Don't bracket IPv6 addresses. + +2006-08-28 Roman Kennke + + * javax/swing/text/BoxView.java + (calculateMinorAxisRequirements): Initialize max size + with Integer.MAX_VALUE. + * javax/swing/text/Utilities.java + (getBreakLocation): For simple chars, scan the text directly. + * javax/swing/text/WrappedPlainView.java + (tabBase): New field. + (tabSize): New field. + (calculateBreakPosition): Use Utilities. Fixed for correct + break calculation. + (changedUpdate): Update children directly. + (insertUpdate): Update children directly. Notify children. + (removeUpdate): Update children directly. Notify children. + (updateChildren): New helper method. + (nextTabStop): Fixed to return correct results. + (paint): Update tabBase. + (updateMetrics): Update tab size. + +2006-08-28 Roman Kennke + + * javax/swing/text/Position.java + (Bias.Forward): Initialize with 'Forward' rather then 'forward'. + (Bias.Backward): Initialize with 'Backward' rather then 'backward'. + +2006-08-28 Roman Kennke + + * javax/swing/text/View.java + (height): Removed unneeded field. + (width): Removed unneeded field. + (getBreakWeight): Return GoodBreakWeight when pos is after + the view's span. + (getToolTipText): Check view index more carefully. Avoid + Rectangle creation. + (insertUpdate): Only execute method body if view count > 0. + When updateChildren returns false, clear the ec variable. + (updateChildren): Added null checks. + (viewToModel): Initialize bias array correctly. + * javax/swing/text/CompositeView.java + (children): Made private. + (numChildren): New field. + (loadChildren): Check factory for null. Don't load children + when factory is null. + (replace): Removed null check. Nullify removed children. Made + growing the array more efficient. + (getViewCount): Return numChildren rather then the real array + size. + * javax/swing/text/BoxView.java + (getViewAtPoint): Fixed algorithm for finding the view. + (replace): Made array growing more efficient. + (replaceLayoutArray): New helper method for growing/patching + the layout arrays. + (viewToModel): Make sure we have a valid layout. + +2006-08-28 Tania Bento + + * java/awt/MenuShortcut.java + (MenuShortcut (int, boolean)): Set keyName. + (toString): Modified string output. + (setKeyName): New private method. + +2006-08-28 Roman Kennke + + * javax/swing/text/GapContent.java + (Mark.getOffset): Made assert less strict, include boundary. + (search): Made package private to avoid accessor method. + +2006-08-28 Roman Kennke + + * javax/swing/text/StringContent.java + (InsertUndo.positions): New field. + (InsertUndo.redo): Update the undo positions. + (InsertUndo.undo): Fetch the undo positions. + (Mark): New class. Layer of indirection to allow Positions + to be GC'ed while we still hold references to the Mark. + (RemoveUndo.len): New field. + (RemoveUndo.positions): New field. + (RemoveUndo.RemoveUndo): Fetch undo positions. + (RemoveUndo.redo): Re-fetch positions and string. + (RemoveUndo.undo): Update undo positions. + (StickyPosition.mark): New field. + (StickyPosition.offset): Removed field. + (StickyPosition.StickyPosition): Create new Mark. Register + Position in queueOfDeath. Update reference count on mark. + (StickyPosition.getOffset): Return offset stored in mark. + (StickyPosition.setOffset): Removed unneeded method. + (UndoPosRef): New class. Handles undo/redo on positions/marks. + (EMPTY): New field. + (marks): New field. Stores the marks. + (positions): Removed field. + (queueOfDeath): New field. Used for GCing the positions. + (StringContent): Initialize queueOfDeath. + (createPosition): Lazily create marks vector. + (garbageCollect): New helper method. Collects positions + to be GCed and updates their marks. + (getChars): Fixed bounds check. + (getPositionsInRange): When v == null, create new Vector, + otherwise use v. Store UndoPosRefs in vector. + (getString): Added comment about bug in RI. + (insertString): Use new helper method for replacing the array. + Correctly update positions. + (length): Removed this qualifier. + (remove): Use new helper method for replacing the array. + Correctly update positions. + (replace): New helper method for growing or patching the array. + (updateUndoPositions): Implemented. Updates the positions + for undo/redo operations. + +2006-08-27 Roman Kennke + + * javax/swing/text/StyleContext.java + (NamedStyle.attributes): Made field transient. + (NamedStyle.changeEvent): Made field transient. + (NamedStyle.name): Removed field. The name is stored as + attribute. + (NamedStyle.NamedStyle(String,Style)): Call setName() for + storing the name and check for null name and resolveParent. + Don't initialize changeEvent. + (NamedStyle.copyAttributes): Return a new NamedStyle, + rather than a plain copy of the attributes field. + (NamedStyle.fireStateChange): Lazily create changeEvent + field. + (NamedStyle.getName): Fetch name from attributes. + (NamedStyle.setName): Store name from attributes. + (NamedStyle.readObject): Implemented for correct + deserialization. + (NamedStyle.writeObject): Implemented for correct + serialization. + (NamedStyle.setResolveParent): When new parent is null, + remove resolveParent attribute. Use addAttribute() method + rather than StyleContext addAttribute(). + (NamedStyle.toString): Fixed to produce output equal to the + RI. + (SmallAttributeSet.resolveParent): New field. + (SmallAttributeSet.SmallAttributeSet(AttributeSet)): Update + the resolveParent field correctly. + (SmallAttributeSet.SmallAttributeSet(Object[])): Don't copy + array but store it directly. Update + the resolveParent field correctly. + (SmallAttributeSet.clone): Return this as the object is + immutable. + (SmallAttributeSet.containsAttributes): Make sure that keys + and values are the same. + (SmallAttributeSet.containsAttribute): Make sure that keys + and values are the same. + (SmallAttributeSet.copyAttributes): Return this as the object is + immutable. + (SmallAttributeSet.equals): Fixed comparison. Two AttributeSet + are equal if they have the same number of attributes and + one contains the other. + (SmallAttributeSet.getAttribute): Improved lookup of + resolveParent. + (SmallAttributeSet.getResolveParent): Improved lookup of + resolveParent. + (SmallAttributeSet.isEqual): When comparing object is a + SmallAttributeSet, consider them equal only if they are the + same object. + (SmallAttributeSet.toString): Fixed to produce output equal to the + RI. + (attributeSetPool): New field. + (defaultStyleContext): Initialize lazily. + (defaultStyle): Removed field. This is stored in the style context + as attribute. + (listenerList): Removed field. The NamedStyle stores the + listeners. + (readAttributeKeys): New static field. Used for looking up + the serialization mappings when reading. + (search): New field. Used as search key. + (staticAttributeKeys): Replaced by read/writeAttributeKeys. + (styles): New field. Stores the styles and listeners. + (styleTable): Removed field. Replaced by styles field. + (writeAttributeKeys): New static field. Used for looking up + the serialization mappings when writing. + (static_initializer): Register mappings for all keys in + StyleConstants. + (StyleContext): Initialize styles correctly. + (addAttributes): Fixed caching of immutable attributes. + (addAttribute): Fixed caching of immutable attributes. + (removeAttributes): Fixed caching of immutable attributes. + (removeAttribute): Fixed caching of immutable attributes. + (addChangeListener): Add listener to styles field. + (removeChangeListener): Remove listener from styles field. + (getChangeListeners): Fetch listeners from styles field. + (addStyle): Add style to styles field. + (cleanupPool): New method. + (getDefaultStyleContext): Lazily create context. + (getEmptySet): Simply return SimpleAttributeSet.EMPTY. + (getMutableAttributeSet): New helper method. Used for + caching. + (getStaticAttribute): Fetch key from readAttributeKeys. + (getStyleNames): Return names from styles field. + (getStyle): Lookup style in styles field. + (removeStyle): Remove style from styles field. + (readAttributeSet): Fixed deserialization. + (writeAttributeSet): Fixed serialization. + (readObject): Fixed deserialization. + (writeObject): Fixed serialization. + (reclaim): Simply cleanup the pool. + (registerStaticAttributeKey): Store mapping in both ways. + (searchImmutableSet): New helper method for caching. + (toString): Fixed for output like the RI. + * javax/swing/text/StyleConstants.java + (keys): New field. Stores all known keys. + (StyleConstants): Store created key in keys list. + * javax/swing/event/EventListenerList.java + (readObject): Fixed deserialization. + (writeObject): Fixed serialization. + +2006-08-25 Roman Kennke + + * javax/swing/text/CompositeView.java + (insets): Removed. Replaced by single short fields. + (top): New field. Replaces insets. + (bottom): New field. Replaces insets. + (left): New field. Replaces insets. + (right): New field. Replaces insets. + (CompositeView): Initialize insets fields. + (createDefaultLocation): Removed unneeded method. + (getBottomInset): Return field directly. + (getTopInset): Return field directly. + (getLeftInset): Return field directly. + (getRightInset): Return field directly. + (getInsideAllocation): Adjusted to work on new insets fields. + (getViewIndex): Fixed check. + (loadChildren): Don't replace the old children. + (replace): Make sure that there is an array to operate on. + Only set parent to null, when it is this View. + (setInsets): Adjusted to work with new insets fields. + (setParagraphInsets): Fixed to pull insets directly from + StyleConstants. + +2006-08-25 Roman Kennke + + * javax/swing/text/ComponentView.java + (Interceptor): New inner helper class. Used to propagate + invalidate requests and cache component layout sizes. + (interceptor): New field. + (getAlignment): Fetch alignment from interceptor container. + (getComponent): Don't create component here. This is done + in setParent(). + (getMaximumSpan): Fetch layout info from interceptor. Check + for illegal axis. + (getMinimumSpan): Fetch layout info from interceptor. Check + for illegal axis. + (getPreferredSpan): Fetch layout info from interceptor. Check + for illegal axis. + (modelToView): Fixed model to view mapping. + (viewToModel): Fixed view to model mapping. + (paint): Check for null. Set bounds on interceptor rather + then component. + (setParentImpl): Install interceptor between component + and hosting container. + (setParent): Call super.setParent() immediately. + +2006-08-25 Roman Kennke + + * javax/swing/text/LabelView.java + (setPropertiesFromAttributes): Only set background when + the corresponding attribute is actually defined, otherwise + set to null, as the StyleConstants would return black. + * javax/swing/text/DefaultStyledDocument.java + (ElementBuffer.documentEvent): Removed obsolete field. + (ElementBuffer.change): Do prepareEdits() and finishEdits() + to correctly update the element structure. + (ElementBuffer.insertContentTag): Removed unused statement. + (ElementBuffer.recreateAfterFracture): Removed + unused obsolete method. + (setCharacterAttributes): Removed unused statement. + +2006-08-25 Roman Kennke + + * examples/gnu/classpath/examples/swing/Demo.java + (LaterMain.run): Removed unused local variable. + (Demo): Don't put desktop in scrollpane. + (addChildren): Removed unused method. + (mkButtonBar): Added HTML demo. + (mkMenuBar): Added HTML demo. + (mkPanel): Removed unused method. + (mkScrollPane): Removed unused method. + (mkTree): Removed unused method. + (valign2str): Removed unused method. + * examples/gnu/classpath/examples/swing/HtmlDemo.java: + Initialize text field with some HTML that already works. + (DEBUG): New field. Set to true for debugging output. + (createContent): Dump element tree after parsing. + +2006-08-25 Roman Kennke + + * javax/swing/text/html/CSS.java + (getValue): Added color value conversion. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.ConvertAction): New class, converts HTML style tags + to CSS attributes. + (HTMLReader.initTags): Register ConvertAction for tag. + * javax/swing/text/html/InlineView.java + (setPropertiesFromAttributes): Implemented to fetch + CSS character attributes. + * javax/swing/text/html/StyleSheet.java + (addCSSAttribute): Convert value. + (getBackground): Implemented to fetch CSS background color + attribute. + (getForeground): Implemented to fetch CSS color + attribute. + (getFont): Adjust font size for superscript and subscript. + (translateHTMLToCSS): Rudimentary implementation that + copies the original attributes, so that any CSS attributes in + there are preserved. + (stringToColor): Use CSSColor for conversion. + * gnu/javax/swing/text/html/css/CSSColor.java: + New class. Converts CSS color values to RGB color values. + * gnu/javax/swing/text/html/CharacterAttributeTranslator.java: + Removed. This is more or less replaced by CSSColor and the + ConvertAction in HTMLReader. + +2006-08-25 Roman Kennke + + * javax/swing/text/BoxView.java + (childReqs): Removed obsolete field. + (baselineLayout): Reimplemented for correct baseline layout. + (baselineRequirements): Reimplemented for correct baseline + layout. + (updateChildRequirements): Removed obsolete method. + * javax/swing/text/GlyphView.java + (DefaultGlyphPainter.getSpan): Removed unused statement. + (DefaultGlyphPainter.paint): Dont paint subscript/superscript + specially. The subscript/superscript layout is performed + via the alignment, the font is supplied by the StyleContext. + (breakView): Removed unused statements. + (getAlignment): Adjust alignment according to the + superscript/subscript setting. + (getFont): Reimplemented to fetch the font from the style + context, or from the document if the stylecontext is not + available. + (getPreferredSpan): Adjust span for superscript. Use switch + instead of if-else. + * javax/swing/text/LabelView.java + (setPropertiesFromAttributes): Fetch background and foreground + from document / style context. + (isSubscript): Resync properties if needed. + * javax/swing/text/ParagraphView.java + (Row.calculateMinorAxisRequirements): Overridden to perform + a baseline layout. + (Row.layoutMinorAxis): Overridden to perform a baseline layout. + +2006-08-24 Roman Kennke + + * javax/swing/text/Utilities.java + (BUF_LENGTH): Removed unused field. + (drawTabbedText): Removed unneeded cast. + (getBreakLocation): Removed unneeded cast. + Fixed offset to account for Segments not starting at 0. + +2006-08-24 Roman Kennke + + * javax/swing/plaf/basic/BasicTabbedPaneUI.java + (TabbedPaneLayout.normalizeTabRuns): Removed unused statement. + (TabbedPaneScrollLayout.layoutContainer): Likewise. + (ScrollingPane.updateUI): Likewise. + (calculateTabWidth): Rewritten to correctly and efficiently + layout the tab width. + (layoutLabel): Call SwingUtilities method with the tabPane + as argument. + (paintContentBorderLeftEdge): Removed unused statement. + (paintContentBorderRightEdge): Removed unused statement. + (paintContentBorder): Removed unused statement. + +2006-08-24 Roman Kennke + + * javax/swing/plaf/basic/BasicTextUI.java + (RootView.getAttributes): Overridden to return null, + as the RootView has no parent. + +2006-08-24 Roman Kennke + + * javax/swing/text/html/CSSParser.java: Removed. + * javax/swing/text/html/CSS.java + (getValue): New helper method. Returns special converter + instances for certain kinds of property values. + * javax/swing/text/html/HTMLDocument.java + (HTMLReader.CharacterAction.start): Don't translate tags + here. Instead, store the attributes directly with the tag + as key. + (content): Removed field. The Content object is handled + by AbstractDocument. + (styleSheet): Removed field. The styleSheet is the styleContext + of this document and handled by the DefaultStyledDocument already. + (HTMLDocument(Content,StyleSheet): Simply call super here. + The super classes already handle the content and styleContext. + (HTMLDocument()): Call this() with a default GapContent and + StyleSheet. + (getStyleSheet): Return the styleContext here. + (insertUpdate): New method. Overridden to add the + CONTENT dummy tag to the element's attributes. + (setBase): Set the base on the styleContext. + * javax/swing/text/html/HTMLEditorKit.java + (styleContext): Removed unneeded field. + (styleSheet): Made field private. + (HTMLEditorKit): Do nothing here. The StyleSheet is + created lazily in getStyleSheet(). A styleContext is not + needed here. + (getStyleSheet): Create StyleSheet correctly. + (insertHTML): Removed unneeded cast. + * javax/swing/text/html/InlineView.java + (attributes): New field. + (changedUpdate): Reload attributes. Trigger preferenceChanged. + (getAttributes): Implemented to fetch the attributes from + the stylesheet. + * javax/swing/text/html/MultiAttributeSet.java: New class. + Multiplexes between several AttributeSets. + * javax/swing/text/html/MultiStyle.java: New class. + Multiplexes between several Styles. + * javax/swing/text/html/ParagraphView.java + (attributes): New field. + (getAttributes): Implemented to fetch the attributes from + the stylesheet. + * javax/swing/text/html/StyleSheet.java + (CssParser): Removed inner class. + (CSSStyle): New inner class. Represents a style defined + by a CSS rule. + (CSSStyleSheetParserCallback): New class, for parsing + CSS stylesheets. + (css): New field. Stores the CSS rules. + (resolvedStyles): New field. Stores resolved styles. + (StyleSheet): Initialize resolvedStyles map. + (addRule): Removed bogus impl. + (getFont): Implemented to fetch font, based on CSS rules. + (getResolvedStyle): New helper method. Looks up resolved + styles, and resolves a style if necessary. + (resolveStyle): New pair of helper methods. Resolves + CSS style rules. + (getRule(String)): Provide rudimentary implementation. + (getRule(Tag,Element)): Implemented. + (getViewAttributes): Implemented. + (loadRules): Implemented. + (translateHTMLToCSS): Tagged as not implemented. + * javax/swing/text/html/ViewAttributeSet.java: New class. + +2006-08-24 Roman Kennke + + * javax/swing/text/FlowView.java: + (LogicalView.getAttributes): New method. Overrides super + impl to return the attributes of the FlowView instance. + * javax/swing/text/LabelView.java: + (setPropertiesFromAttributes): Fetch attributes from + View, rather then from the Element. (In the HTML + package the getAttributes() method is overridden to + return different attributes). Fetch font from the StyledDocument. + +2006-08-24 Roman Kennke + + * javax/swing/text/DefaultEditorKit.java: + (DefaultKeyTypedAction.actionPerform): Also filter + ALT and CTRL modifiers. + +2006-08-24 Roman Kennke + + * gnu/javax/swing/text/html/css/FontSize.java, + * gnu/javax/swing/text/html/css/FontStyle.java, + * gnu/javax/swing/text/html/css/FontWeight.java: + New classes. Used to convert CSS font attributes to AWT/Swing + Font constants. + +2006-08-24 Francis Kung + * gnu/java/awt/color/PyccConverter.java: Throw UnsupportedOperationExceptions. + * java/awt/image/ColorConvertOp.java: Updated javadocs. + (srccs, dstcs, rasterValid): Variables removed. + (ColorConvertOp(RenderingHints)): Initialize spaces to empty array. + (copyRaster): Check for null rendering hints + (createCompatibleColorModel): New private method. + (createCompatibleDestImage): Re-implemented. + (createCompatibleDestRaster(Raster, ColorSpace, boolean)): New private method. + (createCompatibleDestRaster(Raster)): Re-implemented. + (filter(BufferedImage, BufferedImage)): Add checks; fix temp image creation. + (filter(Raster, WritableRaster)): Add checks; fix temp raster creation. + (getPoint2D): Clean up formatting. + * java/awt/image/ComponentColorModel.java + (constructor): use findBits method instead of passing null. + (findBits): New method. + +2006-08-24 Gary Benson + + * java/net/NetworkInterface.java (getInetAddresses): Bracket IPv6 + addresses. + +2006-08-24 Jeroen Frijters + + * java/lang/ref/Reference.java + (queue, nextOnQueue): Made volatile. + (enqueue): Made thread safe. + * java/lang/ref/ReferenceQueue.java + (lock): New field. + (poll): Removed synchronized. + (enqueue): Changed to synchronize on lock object, to update Reference + state and return success status. + (dequeue, remove): Synchronize on lock object. + +2006-08-24 Jeroen Frijters + + * java/security/SecureClassLoader.java + (protectionDomainCache): Changed to HashMap. + (SecureClassLoader): Removed redundant security check. + (defineClass(String,byte[],int,int,CodeSource): Moved + protection domain lookup/construction to new method. + (defineClass(String,ByteBuffer,CodeSource): New method. + (getProtectionDomain): New method. + +2006-08-23 Roman Kennke + + * javax/swing/JComponent.java + (isRepainting): Made package private. + (paintChild): New field. + (findOpaqueParent): Removed method. This is now in + paintImmediately(). + (findOverlapFreeParent): Removed method. This is now + in paintImmediately2(). + (findPaintRoot): Removed method. This is now + in paintImmediately2(). + (isCompletelyObscured): Changed to take rectangle as single + ints as argument. + (isPaintingDoubleBuffered): Removed method. This is now + in paintImmediately2(). + (isPartiallyObscured): New helper method. + (onTop): New helper method for optimization. + (paintChildren): Paint only to specific child when + requested like this from paintImmediately2(). + (paintDoubleBuffered): Changed to take rectangle as single int + arguments. + (paintImmediately2): Changed to take rectangle as single int + arguments. Optimized determination of paint root. + (paintImmediately(Rectangle)): Change to delegate to + paintImmediately(int,int,int,int). + (paintImmediately(int,int,int,int)): Look for opaque ancestor + and start painting there. + (paint): Call paintDoubleBuffered() with int arguments. Only + paint component, when not completely occupied by opaque child. + (processKeyBinding): Removed unnecessary cast. + (isOccupiedByChild): New helper method. + * javax/swing/RepaintManager.java + (repaintUnderway): Removed obsolete field. + (commitRequests): Removed obsolete field. + (RepaintManager): Removed initialization of obsolete fields. + (addDirtyRegion): Removed unused statement. + (commitBuffer): Changed to take plain ints as argument. + (compileRepaintRoots): Optimized to avoid use of Rectangle. + Compute offsets in place, rather than using SwingUtilities. + (paintDirtyRegions): Removed unused field. + * javax/swing/JMenuItem.java + (onTop): Return true when not descendant of JInternalFrame. + * javax/swing/JPopupMenu.java + (onTop): Return true. + * javax/swing/JToolTip.java + (onTop): Return true. + * javax/swing/JViewport.java + (paintImmediately2): Change signature to match the + corresponding JComponent method. + +2006-08-23 Tania Bento + + * java/awt/Color.java + (brighter): Modified algorithm to correctly determine the + new brighter colour. + +2006-08-23 Roman Kennke + + * java/awt/Container.java + (maxSize): Removed field. This is already declared in Component. + (validateTree): Check for ContainerPeer. Don't addNotify here. + Only validate Component instances if they are invalid. + +2006-08-22 Roman Kennke + + * javax/swing/JComponent.java + (preferredSize): Removed field. + (maximumSize): Removed field. + (minimumSize): Removed field. + (getMaximumSize): Adjusted to delegate to Component, rather + then managing the size in JComponent. + (getMinimumSize): Adjusted to delegate to Component, rather + then managing the size in JComponent. + (getPreferredSize): Adjusted to delegate to Component, rather + then managing the size in JComponent. + (isMaximumSizeSet): Removed. + (isMinimumSizeSet): Removed. + (isPreferredSizeSet): Removed. + (setMaximumSize): Removed. + (setMinimumSize): Removed + (setPreferredSize): Removed. + +2006-08-22 Roman Kennke + + * javax/swing/AbstractButton.java + (ButtonChangeListener.stateChanged): Delegate to combined + handler. + (EventHandler): New inner class. Handles all three types + of events on the model. + (eventHandler): New field. Stores the combined event + handler. + (AbstractButton): Moved listener initialization to + setModel(). + (createActionListener): Return combined handler. + (createChangeListener): Return combined handler. + (createItemListener): Return combined handler. + (getEventHandler): New helper method for creating the combined + handler. + (setModel): Initialize listeners here. + * javax/swing/plaf/basic/BasicButtonListener.java + (ButtonAction): New class. Implements the keyboard action + for buttons. + (checkOpacity): Implemented. + (createDefaultActionMap): New helper method. + (installKeyboardActions): Rewritten to install InputMap + and ActionMap according to 'new' keyboard input method. + (mouseClicked): Commented as no-op. + (mouseDragged): Commented as no-op. + (mouseMoved): Commented as no-op. + (propertyChange): Check for contentAreaFilled change and + update opacity. Pull handling of HTLM in font and text handler. + (stateChanged): Repaint button. + (uninstallKeyboardActions): Properly uninstall keyboard actions. + * javax/swing/plaf/basic/BasicButtonUI.java + (listener): Removed. + (sharedListener): New static field. Stores the shared listener. + (sharedUI): New static field. Stores the shared UI. + (createButtonListener): Return shared instance here. + (createUI): Return shared instance here. + (getButtonListener): New helper method. Looks for the + BasicButtonListener installed on a button and returns it. + (installDefaults): Correctly install rollover property here. + Fetch defaultTextShiftOffset. Initialize opaqueness correctly. + (installKeyboardActions): Fetch listener with new helper method. + (installListeners): Don't use removed field. Check for null. + (installUI): Added comment about order of method invocations. + (uninstallDefaults): Don't uninstall non-uninstallable properties. + (uninstallKeyboardActions): Fetch listener with new helper method. + (uninstallListeners): Fetch listener with new helper method. + (paintIcon): Paint icon offset when pressed and armed. + * javax/swing/plaf/metal/MetalButtonListener.java: Removed. + * javax/swing/plaf/metal/MetalButtonUI.java + (sharedUI): New field. Stores the shared UI. + (MetalButtonUI): Don't initialize fields here. + (createButtonListener): Removed method. Use super impl. + (createUI): Return shared instance. + (getDisabledTextColor): Update field here. + (getFocusColor): Update field here. + (getSelectColor): Update field here. + (installDefaults): Don't handle rollover property here. + (uninstallDefaults): Don't handle rollover property here. + (paintButtonPressed): Use accessor method to update the + field value. + +2006-08-21 Mark Wielaard + + Merge NATIVE_LAYER branch. + + 2006-08-20 Mark Wielaard + + * doc/tools.texinfo: Add file from trunk. + * native/jni/Makefile.am (DIST_SUBDIRS): Add native-lib. + * native/jni/java-io/java_io_VMFile.c: Include lstat and readlink + headers. + * native/jni/java-lang/java_lang_VMProcess.c + (Java_java_lang_VMProcess_nativeSpawn): Remove redirect argument. + * native/jni/java-net/java_net_VMInetAddress.c + (Java_java_net_VMInetAddress_getHostByName): Remove unused variable. + * native/jni/native-lib/Makefile.am: Remove empty and nonexisting + files. + * native/jni/native-lib/cpio.c (cpio_setFileReadonly): Use correct + mask. + * native/jni/native-lib/cpnet.c (cpnet_connect): Removed unused + theaddr. + * native/jni/native-lib/cpnet.h (cpnet_freeAddresses): Moved from + cpnet.h. + * native/jni/native-lib/cpnet.h (cpnet_freeAddresses): Declare, + don't implement. + * vm/reference/java/lang/VMProcess.java: Removed unused redirect + argument. + * include/java_lang_VMProcess.h: Regenerated. + + 2006-07-09 Guilhem Lavaux + + * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c + (nativeReceive): Fixed the type of the arrays (use java types). + (nativeSendTo): Force throwing an exception if port is 0. + + * native/jni/java-net/javanet.c: + (_javanet_accept): Throw SocketTimeoutException if ETIMEDOUT is + returned. + (_javanet_recvfrom): Likewise. + (_javanet_sendto): Throw a NullPointerException if the socket is + not connected and no address is given. + + * native/jni/java-net/javanet.h + (NULL_EXCEPTION): Defined. + + 2006-06-16 Guilhem Lavaux + + * native/jni/java-net/java_net_VMInetAddress.c + (Java_java_net_VMInetAddress_getHostByName): Fix detection of + error. + + * native/jni/java-net/javanet.c + (_javanet_accept): Fixed bogus call to TARGET. + (_javanet_create_inetaddress): Fixed address generation. Fixed + bogus memory free. + (_javanet_bind): set "Reuse address" flag. + + * native/jni/native-lib/cpio.c + (cpio_getModificationTime): Fixed type. + (cpio_removeFile): Use rmdir too. + + * native/jni/native-lib/cpnet.c + (cpnet_getHostByName): Fixed error detection. + + * native/jni/native-lib/cpnet.h + (cpnet_newIPV4address, cpnet_newIPV6address): Put zero in the + memory. + (cpnet_IPV4AddressToBytes): Fixed types. + + 2006-06-10 Guilhem Lavaux + + * native/jni/native-lib/cpio.c + (cpio_openDir, cpio_closeDir, cpio_readDir): Implemented. + + * native/jni/native-lib/cpnet.h: + (cpnet_bytesToIPV4Address): Fixed type casting to avoid being + messed by signs in jbyte. + + * native/jni/native-lib/cpproc.h + (CPIO_EXEC_NUM_PIPES): Compilation fix. + + 2006-05-09 Guilhem Lavaux + + * native/jni/native-lib/cpnet.c + (cpnet_getSocketTimeout, cpnet_setSocketTimeout): Reimplemented. + (waitForWritable, waitForReadable): New functions. + (socketTimeouts): New static global table to hold timeouts for all + socket fds. + (cpnet_accept,cpnet_bind,cpnet_sendTo,cpnet_recv,cpnet_recvFrom): + Added waitForXXXX safeguards to handle socket timeouts. + + * native/jni/java-net/javanet.c + (_javanet_accept): Check for the right error value when a timeout + occurs. + + 2006-03-25 Guilhem Lavaux + + * native/jni/java-io/Makefile.am, + native/jni/java-lang/Makefile.am, + native/jni/java-net/Makefile.am, + native/jni/java-nio/Makefile.am: Link to libclasspathnative.la now. + + * native/jni/native-lib/Makefile.am: Added cpproc.c + + * native/jni/native-lib/cpio.c: Implemented missing functions for + CPIO. + + * native/jni/native-lib/cpnet.c + (cpnet_getHostByName): Fixed address array initialization. + + * native/jni/native-lib/cpproc.c: Implemented. + + 2006-02-19 Guilhem Lavaux + + * configure.ac: Invoke GCC_ATTRIBUTE_UNUSED. + + * m4/gcc_attribute.m4: New file from ac_archive. + + * native/jni/java-net/javanet.c: Adapted to cpnet API + modification. + + * native/jni/native-lib/cpnet.c: Implemented. + + * native/jni/native-lib/cpnet.h + (cpnet_openSocketDatagram, + cpnet_openSocketStream): These calls need an address family now. + (cpnet_IPV4AddressToBytes, + cpnet_bytesToIPV4Address): Convert the address to network order. + + 2006-02-19 Guilhem Lavaux + + * native/jni/java-io/java_io_VMFile.c, + native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c, + native/jni/midi-dssi/dssi_data.h, + native/jni/native-lib/cpio.c, + native/jni/native-lib/cpmath.h: Removed cpmath + dependency. Fixed coding style. + + 2006-02-18 Guilhem Lavaux + + * native/jni/java-lang/java_lang_VMProcess.c: Removed TARGET + dependency. Simplified the JNI code by moving some part into the + native layer. + + * native/jni/native-lib/cpproc.h: New interface to handle processes. + + 2006-02-18 Guilhem Lavaux + + * native/jni/java-net/java_net_VMInetAddress.c: Fixed compilation + errors. Removed any remaining TARGET invocations. + + * native/jni/java-net/javanet.c + (_javanet_create_inetaddress): Removed spurious arr and + octets. Fixed compilation errors. + + * native/jni/native-lib/cpnet.h + (cpnet_getHostname, cpnet_getHostByName, cpnet_getHostByAddr, + cpnet_setIPV4Any, cpnet_freeAddresses, cpnet_isIPV6Address, + cpnet_isIPV4Address): New functions. + (cpnet_bytesToIPV4Address): Fixed interface to be consistent with + the rest. + + 2006-01-28 Guilhem Lavaux + + * native/jni/java-io/java_io_VMFile.c, + native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c, + native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c, + native/jni/java-net/javanet.c, + native/jni/java-net/javanet.h: Adapted the VM layer code + to the new native layer. + + * native/jni/native-lib/cpnet.h + (cpnet_addMembership, + cpnet_dropMembership, + cpnet_getAvailableBytes): Added the declarations of + some new functions. + (cpnet_newIPV6Address, + cpnet_IPV6AddressToBytes, + cpnet_bytesToIPV6Address): Implemented. + (cpnet_newIPV4Address): Initialize the sin_family field. + + 2006-01-28 Guilhem Lavaux + + * native/target: Removed. + + * configure.ac: Removed target from CLASSPATH_INCLUDES and + Makefile generation. + + * native/jni/native-lib/Makefile.am, + native/jni/native-lib/cpnet.h, + native/jni/native-lib/cpnet.c + native/jni/native-lib/cpio.h, + native/jni/native-lib/cpio.c, + native/jni/native-lib/cpmath.h: Imported new native compatibility + layer. + +2006-08-21 Roman Kennke + + * gnu/javax/swing/text/html/css/CSSParser.java: + New class. + * gnu/javax/swing/text/html/css/CSSParserCallback.java: + New interface. + * gnu/javax/swing/text/html/css/CSSParserException.java: + New exception. + * gnu/javax/swing/text/html/css/CSSScanner.java: + Adjusted API comments. Made all constants package private. + (EOF): New constant field. + (parseBuffer): Made package private. + (tokenEnd): Made package private. + (CSSScanner): Initialize lookahead buffer with -1. + (main): Print out to System.out rather then System.err. + (nextToken): Push back character after IDENT. + +2006-08-21 Jeroen Frijters + + * java/io/File.java (normalizePath): Fixed handling of "//" and "\\". + +2006-08-21 Roman Kennke + + * gnu/javax/swing/text/html/css/CSSScanner.java + (main): Use buffered input stream. + (nextToken): Removed 65536 workaround. Use int value directly + without cast to char. + (readComment): Use int value directly without cast to char. + Cast to char only when putting the character into the buffer. + (readEscape): Likewise. + (readIdent): Likewise. + (readName): Likewise. + (readNum): Likewise. + (readString): Likewise. + (readWhitespace): Likewise. + +2006-08-21 Ingo Proetel + + * java/io/InputStreamReader.java + (bytesCache): New field. + (cacheLock): New field. + (read(byte[],int,int): Avoid allocations of new byte + array on every call and reuse cached byte array if possible. + +2006-08-21 Roman Kennke + + * gnu/java/net/local/LocalSocketImpl.java + Only load native lib if this is supported by runtime. + * native/jni/java-net/local.c + Include config.h unconditionally. + * native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c + Include config.h unconditionally. + +2006-08-21 Friedjof Siebert + + * java/io/ObjectInputStream.java + (objectLookupTable): Changed to be a Vector. + (ObjectInputStream): Initialize objectLookupTable as Vector. + (assignNewHandle): Store Object using handle index rather than + Hashtable, using the new rememberHandle() method. + (hierarchy): New method. This replaces inputGetObjectStreamClasses() + with a caching in ObjectStreamClass. + (inputGetObjectStreamClass): Replaced by hierarchy(). + (lookupHandle): New method. Looks up an object by it's handle + index. + (parseContent): Avoid creating of Integer objects. Use + hierarchy() method for looking up the class hierarchy. + (processResolution): Use rememberHandle() to store + handle per index, rather than Hashtabling the object. + (readFields): + (rememberHandle): New method. + * java/io/ObjectOutputStream.java + (OIDLookupTable): Use ObjectIdentityMap2Int instead of + Hashtable for improved lookup performance. + (ObjectOutputStream): Initialize OIDLookupTable as + ObjectIdentityMap2Int. + (assignNewHandle): Change to use ObjectIdentityMap2Int. + (findHandle): Change to use ObjectIdentityMap2Int. + (getBooleanField): Removed. + (getByteField): Removed. + (getCharField): Removed. + (getDoubleField): Removed. + (getField): Removed. + (getFloatField): Removed. + (getIntField): Removed. + (getLongField): Removed. + (getObjectField): Removed. + (writeFields(Object,ObjectStreamClass)): Use new helper method. + (writeFields(Object,ObjectStreamField)): New helper method. + Use switch rather then if-else cascade. + (writeObject): Use int handle, rather then Integer. + * java/io/ObjectStreamClass.java + (hierarchy): New field. Caches the class hierarchy. + (methodCache): New field. Caches methods. + (readObjectSignature): New field. Stores the read signature. + (uidCache): New field. Caches UIDs. + (writeObjectSignature): New field. Stores the write signature. + (cacheMethods): Cache methods in methodCache. + (calculateClassID): Outsourced from getClassUID() + for computing the UIDs. + (getClassUIDFromField): Outsourced from getClassUID() for + fetching the UID from the class field. + (getClassUID): Use cached uid if possible. Use new helper + methods for fetching the UID from the field or computing + from scratch. + (getObjectStreamClasses): Removed. Replaced by more + efficient hierarchy() method, that also caches the result. + (hierarchy): Replaces getObjectStreamClasses() for caching + the result. + (loadedByBootOrApplicationClassLoader): New helper method. + (setClass): Invalidate hierarchy cache. + (setSuperclass): Invalidate hierarchy cache. + * java/io/ObjectStreamField.java + (field): Made field package private for access from other + classes. + * gnu/java/io/ObjectIdentityWrapper.java: Removed. + * gnu/java/io/ObjectIdentityMap2Int.java: Efficient + hashtable for mapping objects to ints. + +2006-08-21 Roman Kennke + + * java/io/File.java + (getAbsolutePath): Fetch absolute path from + VMFile.getAbsolutePath(). Moved actual impl to there. + (isAbsolute): Let VMFile determine the absoluteness. + (toURL): Let VMFile convert the filename. + * vm/reference/java/io/VMFile.java + (getAbsolutePath): New method. + (isAbsolute): New method. + (toURL): New method. + +2006-08-21 Jeroen Frijters + + * NEWS: Added note about updated VM interface. + +2006-08-20 Andrew John Hughes + + * java/lang/management/ManagementFactory.java: + Updated documentation. + +2006-08-20 Ito Kazumitsu + + Fixes bug #28412 + * gnu/java/util/regex/CharIndexed.java(move1, setHitEnd, hitEnd): + New methods. + * gnu/java/util/regex/CharIndexedCharSequence.java, + gnu/java/util/regex/CharIndexedInputStream.java: Implemented the + new methods above. + * gnu/java/util/regex/RE.java(REG_FIX_STARTING_POSITION): New flag, + (match): call the new method setHitEnd of the input, + (getMatchImpl): Handle the new flag REG_FIX_STARTING_POSITION, + Some optimization commented out, Use CharIndexed#move1 instead of move. + * gnu/java/util/regex/REMatch.java: Made some debugging methods public. + * gnu/java/util/regex/REToken.java(match): The method body has been + moved to an internal private method, (matchFake): New method, + (setHitEnd): New method. + * gnu/java/util/regex/RETokenChar.java(matchThis): Call setHitEnd + if the match is not complete, (matchOneString): Count the number of + characters which matched the pattern. + * gnu/java/util/regex/RETokenEnd.java(fake): New field, + (setFake): New method, (match): Call super.match or super.matchFake. + * gnu/java/util/regex/RETokenEndSub.java(setHitEnd): New method. + * gnu/java/util/regex/RETokenOneOf.java(match): call the new method + setHitEnd of the input, + * gnu/java/util/regex/RETokenRepeated.java(match): Likewise. + * java/util/regex/Matcher.java(lookingAt, match): Use the new flag + RE.REG_FIX_STARTING_POSITION, (hitEnd, toString): New methods. + +2006-08-18 Tom Tromey + + * gnu/javax/swing/text/html/css/CSSScanner.java (readWhitespace): Push + the 'int', not the cast char. + +2006-08-18 Roger Sayle + + * scripts/check_jni_methods.sh: Don't use the "set -C" command + which isn't available in all shells. + +2006-08-18 Roger Sayle + + * lib/Makefile.am (resources): Fix some shell portability issues. + +2006-08-18 Thomas Fitzsimmons + + * configure.ac (tool-wrappers): Check for ltdl support when tool + wrapper binaries are enabled. + * tools/Makefile.am (LIBJVM): Remove variable. + (AM_CPPFLAGS): Add LIBJVM define. + (gappletviewer_LDFLAGS, gjarsigner_LDFLAGS, gkeytool_LDFLAGS, + gjar_LDFLAGS, gnative2ascii_LDFLAGS, gserialver_LDFLAGS, + gjavah_LDFLAGS): Remove variables. + * tools/toolwrapper.c (main): Use dlopen to load libjvm library. + +2006-08-18 Tom Tromey + + * gnu/java/util/prefs/NodeWriter.java (writeParents): Removed + debugging prints. + * gnu/java/util/prefs/NodeReader.java (readNodes): Removed debugging + print. + (readEntries): Likewise. + +2006-08-17 Roman Kennke + + * javax/swing/plaf/basic/BasicTabbedPaneUI.java + (layoutLabel): Reset the text and icon rectangles. + +2006-08-17 Thomas Fitzsimmons + + PR classpath/28537 + * native/plugin/Makefile.am (libgcjwebplugin_la_CXXFLAGS): + Transform gappletviewer name using program_transform_name. + +2006-08-17 Jeroen Frijters + + * javax/swing/filechooser/FileSystemView.java + (getFileSystemView): Always return UnixFileSystemView, since + that's the only one we got. Marked with NotImplementedException. + * javax/swing/plaf/basic/BasicFileChooserUI.java + (mouseClicked, installUI): Don't parse path by hand. + +2006-08-17 Roman Kennke + + * javax/swing/JComponent.java + (scrollRectToVisible): Handle intermediate non-JComponents + more gracefully. + +2006-08-17 Roman Kennke + + * javax/swing/RepaintManager.java + (blitBuffer): Removed. This is now done in commitBuffer(). + (commitBuffer): Always paint on the root window or applet. + No need to look for intermediate heavyweights. Optimized + rectangle translation. + (commitRemainingBuffers): Removed. Not needed anymore. + (getHeavyweightParent): Removed. Not needed anymore. + (getOffscreenBuffer): Fetch offscreen image from the + actual root component. + (paintDirtyRegions): Don't call commitRemainingBuffers(). + +2006-08-17 Roman Kennke + + * javax/swing/SwingUtilities.java + (clipString): New helper method for trimming strings. + (layoutCompoundLabelImpl): Fixed algorithm to conform + testsuites. Trim text if it's too long. Avoid creating + new Rectangles. Optimized for performance. + (layoutCompoundLabel): Use switch rather then if-else-chain. + * javax/swing/plaf/basic/BasicButtonUI.java + (viewR): New field. + (iconR): New field. + (textR): New field. + (paint): Reset and use cached rectangles. Only call paintIcon() + if icon is not null. Don't call paintButtonPressed() when + button is selected, only when it is both armed and pressed. + * javax/swing/plaf/basic/BasicGraphicsUtils.java + (getPreferredButtonSize): Reused cached rectangles rather + then creating new ones. Don't create new Rectangle via + Rectangle.union(). + * javax/swing/plaf/basic/BasicLabelUI.java + (getPreferredSize): Correctly reset cached rectangles. Especially + the view rect must have a big size to give it room for layouting. + Short cut layout when text == null. + (paint): Correctly reset cached rectangles. + * javax/swing/plaf/basic/BasicMenuItemUI.java + (resetRectangles): New helper method. + (getPreferredMenuItemSize): Correctly reset the cached rectangles. + (paintMenuItem): Correctly reset the cached rectangles. + * javax/swing/plaf/basic/BasicRadioButtonUI.java + (getPreferredSize): Use cached Rectangle objects and initialize + them correctly. + (paint): Use cached Rectangle objects and initialize + them correctly. + +2006-08-17 David Gilbert + + * java/util/Calendar.java: API doc additions. + +2006-08-17 Robert Schuster + + * javax/swing/DefaultButtonModel.java: + (setRollover): Simplified statement. + +2006-08-17 Jeroen Frijters + + * gnu/java/rmi/server/RMIClassLoaderImpl.java + (loadClass): Rewritten to use getClassLoader. + (loadProxyClass): Implemented. + (getClassLoader): Fixed support for null or empty codebase. + * gnu/java/rmi/server/RMIObjectInputStream.java + (resolveClass): Use user class loader as default class loader. + (resolveProxyClass): Delegate to RMIClassLoader.loadProxyClass. + * gnu/javax/rmi/CORBA/UtilDelegateImpl.java + (loadClass): Simplified and use user class loader instead of + context class loader as default. + * java/io/ObjectInputStream.java + (currentLoader): Use VMStackWalker.firstNonNullClassLoader(). + * vm/reference/gnu/classpath/VMStackWalker.java + (firstNonNullClassLoader): New method. + * vm/reference/java/io/VMObjectInputStream.java + (loaderAction, currentClassLoader): Removed. + +2006-08-17 Robert Schuster + + * javax/swing/plaf/basic/BasicTabbedPaneUI.java: + (getTabBounds(JTabbedPane, int)): Added code to shift rectangle + by current scroll offset, added method documention. + (getTabBounds(int, Rectangle)): Added method documentation. + * javax/swing/plaf/metal/MetalTabbedPaneUI.java: + (paintContentBorderLeftEdge): Changed y to 1. + +2006-08-17 Robert Schuster + + * javax/swing/plaf/basic/BasicTabbedPaneUI.java: + (MouseHandler.mouseReleased): Implemented. + (MouseHandler.mousePressed): Added delegation to tabbed pane. + (MouseHandler.mouseEntered): Dito. + (MouseHandler.mouseExited): Dito. + (MouseHandler.mouseMoved): Dito. + (MouseHandler.redispatchEvent): New method. + (PropertyChangeHandler.propertyChange): Added extra block level, + added code to handle tab placement changes, added comment. + (updateViewPosition): Set unneeded coordinate to 0, added comment. + +2006-08-16 Roman Kennke + + * gnu/javax/swing/text/html/css/CSSScanner.java: New file. + * gnu/javax/swing/text/html/css/CSSLexicalException.java: + New file. + +2006-08-16 Mark Wielaard + + * java/awt/Component.java (orientation): Renamed to + componentOrientation. + (setComponentOrientation): Use new field name. + (getComponentOrientation): Likewise. + +2006-08-16 Roman Kennke + + PR 28750 + * javax/swing/plaf/basic/BasicTreeUI.java + (CellEditorHandler.editingCancelled): Call completeEditing + directly. + (CellEditorHandler.editingStopped): Call completeEditing + directly. + (NodeDimensionHandler.getNodeDimensions): Rewritten + to use the preferred sizes of the renderer and editor. + (TreeExpansionHandler.treeCollapsed): Complete editing + here. + (TreeSelectionHandler.valueChanged): Complete editing + here. + (cancelEditing): Call completeEditing with false, false and + false. Don't call finish (removed method). + (completeEditing(boolean,boolean,boolean): Only do something when + stopEditingInCompleteEditing is true. Nullify editingComponent + and editingPath. Remove editingComponent from tree. Update + the layout when necessary and repaint. + (completeEditing): Stop editing when necessary. + (editorRequestFocus): New helper method. Request focus + on the actual editor. + (finish) Removed. This is now done in completeEditing(). + (prepareForUIInstall): Set stopEditingInCompleteEditing to true. + (setLargeModel): Complete editing here. + (setRootVisible): Complete editing here. + (setRowHeight): Complete editing here. + (setSelectionModel): Complete editing here. + (startEditing): Correctly initialize and start editing. + (updateExpandedDescendants): Complete editing here. + * javax/swing/tree/DefaultTreeCellEditor.java + (DefaultTextField): Fetch size from super and use renderer's height + if appropriate. + (EditorContainer.EditorContainer): Set layout to null, just + to make sure. + (EditorContainer.doLayout): Layout so that the editor + is offset to the right of the icon. + (EditorContainer.getPreferredSize): Implemented to + provide a reasonable preferred size. + (EditorContainer.paint): Position icon in the middle. + Also paint border if appropriate. + (EditorContainer.setBounds): Removed. + (RealEditorListener): Removed. + (DefaultTreeCellEditor): Set correct border. + (cancelCellEditing): Message real editor. Call finish(). + (createCellEditor): Don't add listener. + (determineOffset): Correctly determine offset, and update + the icon. + (finish): New helper method. + (getTreeCellEditorComponent): Set correct font. Call + prepareForEditing() and determineOffset() to correctly initialize + the state. + (stopCellEditing): Messsage realEditor to stop editing. Call + finish to clean up. + (stopEditingTimer): Removed. + (valueChanged): Correctly reset lastPath. + * javax/swing/tree/DefaultTreeCellRenderer.java + (getPreferredSize): Return super plus some extra space for + better readability. + +2006-08-16 Roman Kennke + + * javax/swing/plaf/metal/MetalTreeUI.java + (LineStyleListener): New property listener, that updates + the line style setting if the corresponding property + changes. + (lineStyleListener): New field. + (lineStyle): New field. + (LINE_STYLE_ANGLED): New constant field. + (LINE_STYLE_HORIZONTAL): New constant field. + (LINE_STYLE_NONE): New constant field. + (LINE_STYLE_VALUE_ANGLED): New constant field. + (LINE_STYLE_VALUE_HORIZONTAL): New constant field. + (LINE_STYLE_VALUE_NONE): New constant field. + (LINE_STYLE_PROPERTY): New constant field. + (decodeLineStyle): Implemented. + (installUI): Install line style listener. Set initial + lineStyle. + (uninstallUI): Uninstall line style listener. + (paintHorizontalPartOfLeg): Only call super for angled + lineStyle. + (paintVerticalPartOfLeg): Only call super for angled + lineStyle. + (paintHorizontalSeparators): Implemented. + (paint): If lineStyle==HORIZONTAL, call + paintHorizontalSeparators(). + * examples/gnu/classpath/examples/swing/TreeDemo.java + (createContent): Add panel for selecting line styles. + +2006-08-16 Robert Schuster + + * examples/gnu/classpath/demo/swing/TabbedPaneDemo.java: + (createContent): Rewritten. + (createPlacementChangingMenuItem): New method. + (createLayoutPolicyChangingMenuItem): New method. + (createTabbedPane): New method. + (createTabContent): New method. + +2006-08-16 Robert Schuster + + * javax/swing/plaf/basic/BasicTabbedPaneUI.java: + (MouseHandler.mousePressed): Fixed indentation, intercept clicks on + disabled tabs, do proper revalidation in WRAP_TAB_LAYOUT mode. + +2006-08-16 Robert Schuster + + * javax/swing/text/WrappedPlainView.java: + (WrappedLine.modelToView): Provide variable pos as argument and not a fixed value. + (calculateBreakPosition): Add p0 to return value. + +2006-08-15 Roman Kennke + + * javax/swing/plaf/basic/BasicTreeUI.java + (MouseHandler.selectedOnPress): New field. + (MouseHandler.handleEvent): New helper method for handling + selection and start/stop editing for mouse events. + (MouseHandler.mouseDragged): Commented as no-op method. + (MouseHandler.mouseMoved): Commented as no-op method. + (MouseHandler.mousePressed): Use handleEvent() to handle + selection and editing handling. + (MouseHandler.mouseReleased): Use handleEvent() to handle + selection and editing handling. + (MouseInputHandler.MouseInputHandler): Register itself + as mouse listener on source. Redispatch event to + destination. + (MouseInputHandler.dispatch): New helper method. + (MouseInputHandler.mouseClicked): Dispatch event. + (MouseInputHandler.mouseDragged): Dispatch event. + (MouseInputHandler.mouseEntered): Stop dispatching + if dragging stopped. + (MouseInputHandler.mouseExited): Stop dispatching + if dragging stopped. + (MouseInputHandler.mouseMoved): Stop dispatching. + (MouseInputHandler.mousePressed): Marked as no-op. + (MouseInputHandler.mouseReleased): Dispatch and stop + dispatching afterwards. + (MouseInputHandler.removeFromSource): Implemented. + (PropertyChangeHandler.propertyChange): Also handle + editable property changes by calling setEditable(). + (SelectionModelPropertyChangeHandler.propertyChange): + Reset row selection. + (startEditTimer): Removed. + (setCellEditor): Call updateEditor(). + (setEditable): Call updateEditor(). + (startEditingAtPath): Make path fully visible before starting + editing. + (startEditing): Maybe cancel previous edit session. Add + editing component itself, not its parent container. + Register MouseInputHandler for correctly redispatching + initial events. + (stopEditing): Message cellEditor and only completeEditing() + when approved by cell editor. + (updateCellEditor): Complete editing before updating + the cell editor. Get cell editor from JTree if possible, + otherwise create default editor. Update the listeners + on the editor. + * javax/swing/tree/DefaultTreeCellEditor.java + (CLICK_COUNT_TO_START): Removed. + (DefaultTreeCellEditor): Install correct border. Let setTree() + update the listeners. Don't initialize lastPath and font yet. + (actionPerformed): Implemented to start editing. + (createTreeCellEditor): Set click count to start to 1, rather than + 3. + (isCellEditable): Prepare editor here. Determine if we can + start immediately, or if we trigger a timer to do so. + (prepareForEditing): Don't removeAll() (not necessary), + check editingComponent to be non-null. + (setTree): Update listeners. + (shouldStartEditingTimer): Check for left mouse button. + (startEditingTimer): Lazily create timer. + +2006-08-15 Lillian Angel + + * java/awt/dnd/DropTargetDragEvent.java + (getTransferable): Implemented. + +2006-08-15 Roman Kennke + + * java/util/Vector.java + (removeAll): Added comment about NPE. + (retainAll): Added comment about NPE. + +2006-08-15 Roman Kennke + + * java/util/zip/ZipFile.java + (UTF8DECODER): Removed. + (UTF8CHARSET): New constant field. Stores the UTF8 charset. + (utf8Decoder): New instance field. + (decodeChars): Lazily create UTF8 decoder. Use instance + field rather than a static field to avoid corruption. + +2006-08-15 Roman Kennke + + * java/io/PrintStream.java + (line_separator): Provide default for system property. + * java/io/FileDescriptor.java + (valid): Create local copy of channel field for better + threading safetly. + +2006-08-15 Ingo Proetel + + * java/util/zip/ZipFile.java + (PartialInputStream.UTF8DECODER): New constant field, used + for decoding UTF8 strings. + (readLeShort): Access buffer directly if it has enough bytes + available. + (readLeInt): Access buffer directly if it has enough bytes + available. + (decodeChars): New helper method for decoding UTF8 strings. + (readString): Avoid NIO charset decoder if possible. + +2006-08-15 Roman Kennke + + * java/util/Vector.java + (removeAll): Don't explicitly null-check here. The RI allows + null arguments when Vector is empty. In other cases we + implicitly throw an NPE. + (retainAll): Don't explicitly null-check here. The RI allows + null arguments when Vector is empty. In other cases we + implicitly throw an NPE. + +2006-08-14 Casey Marshall + + Merge in ssl-nio-branch work. See `ChangeLog-ssl-nio' for a record + of changes made on this branch. + Files modified: + * gnu/classpath/debug/Component.java + * gnu/classpath/debug/SystemLogger.java + * gnu/java/security/action/GetPropertyAction.java + * gnu/java/security/action/GetSecurityPropertyAction.java + * gnu/javax/crypto/RSACipherImpl.java + * gnu/javax/net/ssl/PrivateCredentials.java + * gnu/javax/net/ssl/provider/Alert.java + * gnu/javax/net/ssl/provider/AlertException.java + * gnu/javax/net/ssl/provider/Certificate.java + * gnu/javax/net/ssl/provider/CertificateRequest.java + * gnu/javax/net/ssl/provider/CertificateType.java + * gnu/javax/net/ssl/provider/CertificateVerify.java + * gnu/javax/net/ssl/provider/CipherSuite.java + * gnu/javax/net/ssl/provider/ClientHello.java + * gnu/javax/net/ssl/provider/ClientKeyExchange.java + * gnu/javax/net/ssl/provider/CompressionMethod.java + * gnu/javax/net/ssl/provider/Constructed.java + * gnu/javax/net/ssl/provider/ContentType.java + * gnu/javax/net/ssl/provider/DiffieHellman.java + * gnu/javax/net/ssl/provider/Extension.java + * gnu/javax/net/ssl/provider/Finished.java + * gnu/javax/net/ssl/provider/Handshake.java + * gnu/javax/net/ssl/provider/Jessie.java + * gnu/javax/net/ssl/provider/ProtocolVersion.java + * gnu/javax/net/ssl/provider/Random.java + * gnu/javax/net/ssl/provider/ServerHello.java + * gnu/javax/net/ssl/provider/ServerKeyExchange.java + * gnu/javax/net/ssl/provider/Signature.java + * gnu/javax/net/ssl/provider/Util.java + * gnu/javax/net/ssl/provider/X509KeyManagerFactory.java + * gnu/javax/net/ssl/provider/X509TrustManagerFactory.java + * java/security/MessageDigest.java + * java/security/MessageDigestSpi.java + * java/security/Signature.java + * java/security/SignatureSpi.java + * javax/crypto/Mac.java + * javax/crypto/MacSpi.java + * javax/net/ssl/HandshakeCompletedEvent.java + * javax/net/ssl/HttpsURLConnection.java + * javax/net/ssl/SSLContext.java + * javax/net/ssl/SSLContextSpi.java + * javax/net/ssl/SSLSession.java + Files added: + * gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java + * gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java + * gnu/javax/net/ssl/provider/SimpleSessionContext.java + * gnu/javax/net/ssl/provider/ServerRSAParams.java + * gnu/javax/net/ssl/provider/SSLContextImpl.java + * gnu/javax/net/ssl/provider/ServerDHParams.java + * gnu/javax/net/ssl/provider/ClientHelloBuilder.java + * gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java + * gnu/javax/net/ssl/provider/SignatureAlgorithm.java + * gnu/javax/net/ssl/provider/CipherSuiteList.java + * gnu/javax/net/ssl/provider/ServerNameList.java + * gnu/javax/net/ssl/provider/SSLServerSocketImpl.java + * gnu/javax/net/ssl/provider/CompressionMethodList.java + * gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java + * gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java + * gnu/javax/net/ssl/provider/TrustedAuthorities.java + * gnu/javax/net/ssl/provider/CertificateStatusRequest.java + * gnu/javax/net/ssl/provider/ServerHelloDone.java + * gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java + * gnu/javax/net/ssl/provider/SSLSocketImpl.java + * gnu/javax/net/ssl/provider/ServerHelloBuilder.java + * gnu/javax/net/ssl/provider/Record.java + * gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java + * gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java + * gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java + * gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java + * gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java + * gnu/javax/net/ssl/provider/CertificateBuilder.java + * gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java + * gnu/javax/net/ssl/provider/CertificateStatusType.java + * gnu/javax/net/ssl/provider/ExtensionList.java + * gnu/javax/net/ssl/provider/ClientCertificateTypeList.java + * gnu/javax/net/ssl/provider/ClientPSKParameters.java + * gnu/javax/net/ssl/provider/X500PrincipalList.java + * gnu/javax/net/ssl/provider/ServerHandshake.java + * gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java + * gnu/javax/net/ssl/provider/SessionImpl.java + * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java + * gnu/javax/net/ssl/provider/ServerPSKParameters.java + * gnu/javax/net/ssl/provider/TruncatedHMAC.java + * gnu/javax/net/ssl/provider/MaxFragmentLength.java + * gnu/javax/net/ssl/provider/HelloRequest.java + * gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java + * gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java + * gnu/javax/net/ssl/provider/CipherAlgorithm.java + * gnu/javax/net/ssl/provider/ClientHandshake.java + * gnu/javax/net/ssl/provider/ExchangeKeys.java + * gnu/javax/net/ssl/provider/CertificateURL.java + * gnu/javax/net/ssl/provider/EmptyExchangeKeys.java + * gnu/javax/net/ssl/provider/CertificateRequestBuilder.java + * gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java + * gnu/javax/net/ssl/provider/Builder.java + * gnu/javax/net/ssl/provider/Debug.java + * gnu/javax/net/ssl/provider/SSLEngineImpl.java + * gnu/javax/net/ssl/provider/MacAlgorithm.java + * gnu/javax/net/ssl/provider/DelegatedTask.java + * gnu/javax/net/ssl/provider/InputSecurityParameters.java + * gnu/javax/net/ssl/provider/ClientHelloV2.java + * gnu/javax/net/ssl/provider/OutputSecurityParameters.java + * gnu/javax/net/ssl/provider/AbstractHandshake.java + * javax/net/ssl/SSLEngine.java + * javax/net/ssl/CertPathTrustManagerParameters.java + * javax/net/ssl/KeyStoreBuilderParameters.java + * javax/net/ssl/X509ExtendedKeyManager.java + * javax/net/ssl/SSLEngineResult.java + * gnu/javax/net/ssl/PreSharedKeyManager.java + * gnu/javax/net/ssl/Session.java + * gnu/javax/net/ssl/PreSharedKeyManagerParameters.java + * gnu/javax/net/ssl/SSLCipherSuite.java + * gnu/javax/net/ssl/AbstractSessionContext.java + * gnu/javax/net/ssl/SessionStoreException.java + * gnu/javax/net/ssl/SSLRecordHandler.java + * gnu/javax/net/ssl/SSLProtocolVersion.java + * gnu/javax/crypto/key/GnuPBEKey.java + * gnu/java/security/util/ByteBufferOutputStream.java + * gnu/java/security/Requires.java + * gnu/javax/security/auth/callback/CertificateCallback.java + Files removed: + * gnu/javax/net/ssl/provider/Context.java + * gnu/javax/net/ssl/provider/DigestInputStream.java + * gnu/javax/net/ssl/provider/DigestOutputStream.java + * gnu/javax/net/ssl/provider/Enumerated.java + * gnu/javax/net/ssl/provider/Extensions.java + * gnu/javax/net/ssl/provider/GNUSecurityParameters.java + * gnu/javax/net/ssl/provider/JCESecurityParameters.java + * gnu/javax/net/ssl/provider/JDBCSessionContext.java + * gnu/javax/net/ssl/provider/JessieDHPrivateKey.java + * gnu/javax/net/ssl/provider/JessieDHPublicKey.java + * gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java + * gnu/javax/net/ssl/provider/JessieRSAPublicKey.java + * gnu/javax/net/ssl/provider/KeyPool.java + * gnu/javax/net/ssl/provider/OverflowException.java + * gnu/javax/net/ssl/provider/RecordInput.java + * gnu/javax/net/ssl/provider/RecordInputStream.java + * gnu/javax/net/ssl/provider/RecordOutputStream.java + * gnu/javax/net/ssl/provider/RecordingInputStream.java + * gnu/javax/net/ssl/provider/SSLRSASignature.java + * gnu/javax/net/ssl/provider/SSLServerSocket.java + * gnu/javax/net/ssl/provider/SSLServerSocketFactory.java + * gnu/javax/net/ssl/provider/SSLSocket.java + * gnu/javax/net/ssl/provider/SSLSocketFactory.java + * gnu/javax/net/ssl/provider/SSLSocketInputStream.java + * gnu/javax/net/ssl/provider/SSLSocketOutputStream.java + * gnu/javax/net/ssl/provider/SecurityParameters.java + * gnu/javax/net/ssl/provider/Session.java + * gnu/javax/net/ssl/provider/SessionContext.java + * gnu/javax/net/ssl/provider/SynchronizedRandom.java + * gnu/javax/net/ssl/provider/XMLSessionContext.java + +2006-08-14 Roman Kennke + + * javax/swing/plaf/basic/BasicSplitPaneDivider.java + (DividerLayout.layoutContainer): Removed debug output. + * javax/swing/plaf/basic/BasicSplitPaneUI.java + (BasicHorizontalLayoutManager.axis): New field. + (BasicHorizontalLayoutManager.BasicHorizontalLayoutManager(int)): + New constructor. + (BasicHorizontalLayoutManager.BasicHorizontalLayoutManager()): + Call new axis constructor. + (BasicHorizontalLayoutManager.getAvailableSize): Refactored to + handle direction. + (BasicHorizontalLayoutManager.getInitialLocation): Refactored to + handle direction. + (BasicHorizontalLayoutManager.getPreferredSizeOfComponent): + Refactored to handle direction. + (BasicHorizontalLayoutManager.getSizeOfComponent): Refactored + to handle direction. + (BasicHorizontalLayoutManager.minimumLayoutSize): Refactored to + handle direction. + (BasicHorizontalLayoutManager.preferredLayoutSize): Refactored + to handle direction. + (BasicHorizontalLayoutManager.minimumSizeOfComponent): Refactored + to handle direction. + (BasicHorizontalLayoutManager.setComponentToSize): Refactored + to handle direction. + (BasicHorizontalLayoutManager.updateComponents): Don't reset + divider size. + (BasicVerticalLayoutManager.BasicVerticalLayoutManager): + New explicit constructor. Calls super with vertical axis. + (BasicVerticalLayoutManager.getAvailableSize): Functionality moved + to BasicHorizontalLayoutManager. + (BasicVerticalLayoutManager.getInitialLocation): Functionality + moved to BasicHorizontalLayoutManager. + (BasicVerticalLayoutManager.getPreferredSizeOfComponent): + Functionality moved to BasicHorizontalLayoutManager. + (BasicVerticalLayoutManager.getSizeOfComponent): Functionality + moved to BasicHorizontalLayoutManager. + (BasicVerticalLayoutManager.minimumLayoutSize): Functionality + moved to BasicHorizontalLayoutManager. + (BasicVerticalLayoutManager.minimumSizeOfComponent): + Functionality moved to BasicHorizontalLayoutManager. + (BasicVerticalLayoutManager.preferredLayoutSize): Functionality + moved to BasicHorizontalLayoutManager. + (BasicVerticalLayoutManager.setComponentToSize): Functionality + moved to BasicHorizontalLayoutManager. + * javax/swing/plaf/metal/MetalSplitPaneDivider.java + (BUTTON_SPRITE): Renamed to BUTTON_SPRITE_L. + (BUTTON_SPRITE_R): New constant field. + (MetalOneTouchButton.paint): Paint R sprite for right buttons, + L sprite for left buttons. + +2006-08-14 Andreas Tobler + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c + (query_formats): g_free 'name' after usage. + g_strfreev 'ch', the gdk_pixbuf_format_get_extensions instance. + g_strfreev 'ch', the gdk_pixbuf_format_get_mime_types instance. + +2006-08-14 Thomas Fitzsimmons + + PR classpath/27723 + * configure.ac (MOZILLA_FOUND): Add pkg-config check for + seamonkey-plugin. + +2006-08-14 Francis Kung + + PR 28694 + * java/awt/image/ColorModel.java + (coerceData): Added check for non-transparent images. + +2006-08-14 Francis Kung + + * java/awt/image/BandCombineOp.java + (BandCombineOp): Perform checks on validity of matrix. + (createCompatibleDestRaster): Add checks and choose raster type dynamically. + (filter): Updated to work with new matrix storage. + (getMatrix): Updated javadoc. + (getPoint2D): Formatting change. + +2006-08-14 Francis Kung + + * java/awt/image/AffineTransformOp.java + (AffineTransformOp): Updated javadoc. + (createCompatibleDestImage): Match behaviour of reference implementation. + (createCompatibleDestRaster): Formatting changes. + (filter(BufferedImage, BufferedImage)): Create compatible destination image. + (filter(Raster, WritableRaster)): Re-implemented. + (filterBicubic): New private method. + (filterBilinear): New private method. + (filterNearest): New private method. + (getBounds2D): No longer fixed around one point for rotations. + (getInterpolationType): Add support for bicubic interpolation. + +2006-08-14 Roman Kennke + + * javax/swing/plaf/metal/MetalLookAndFeel.java + (MetalLookAndFeel): Moved theme initialization to + getDefaults(). + (createDefaultTheme): Forward to getCurrentTheme(). + (getDefaults): Initialize theme before doing anything else. + (getCurrentTheme): Recognize swing.metalTheme property. + +2006-08-14 Roman Kennke + + * javax/swing/JTable + (getScrollableUnitIncrement): Expose partially exposed + row in scrolling direction. - * gnu/java/awt/peer/gtk/GtkChoicePeer.java - (remove): Force event on removing item 0 when it's selected. - (handleEvent): Always call Choice.selected(). - * java/awt/Choice.java: - (remove): Simplify and correct. +2006-08-14 Audrius Meskauskas -2006-07-30 Sven de Marothy + * javax/swing/JTable (getScrollableUnitIncrement): + Removing my name as the whole method body have been + recently completely replaced. - * java/awt/Choice.java: - (accessibleAction): Call select() directly. - (add, insert, remove): Reimplement. - (dispatchEventImpl): Always call super. - (processItemEvent): Does not set the index. - * include/gnu_java_awt_peer_gtk_GtkChoicePeer.h - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c - (append): removed. - (nativeAdd): Name changed to add. - (selection_changed_cb): Simplify callback. - * gnu/java/awt/peer/gtk/GtkChoicePeer.java - (selected): New field. - (add): Replaced with native impl. - (handleEvent): New method. +2006-08-14 Roman Kennke + + PR 28028 + * javax/swing/text/Utilities.java + (getTabbedTextOffset): Don't add p0 here. + +2006-08-14 Roman Kennke + + PR 28719 + * javax/swing/plaf/basic/BasicScrollPaneUI.java + (MouseWheelHandler.mouseWheelMoved): Scroll negative delta + when wheel is going up. + +2006-08-14 Roman Kennke + + PR 28693 + * javax/swing/plaf/basic/BasicSplitPaneDivider.java + (BasicOneTouchButton): New inner class. + (DividerLayout.changeButtonOrientation): Removed. + (DividerLayout.positionButtons): Moved into layoutContainer. + (DividerLayout.layoutContainer): Reworked for correct layout. + (OneTouchAction): New inner class. + (centerOneTouchButtons): New field. + (BasicSplitPaneDivider): Initialize centerOneTouchButton from + UIManager. + (createLeftOneTouchButton): Reimplemented to return + BasicOneTouchButton. + (createRightOneTouchButton): Reimplemented to return + BasicOneTouchButton. + (getPreferredSize): Reimplemented to return fixed preferredSize. + (oneTouchExpandableChanged): Add OneTouchAction action to + buttons. Don't install mouse listeners. + (MouseHandler.mousePressed): Removed handling of one touch buttons. + (paint): Don't trigger extra paint for buttons. + (propertyChange): Revalidate splitPane when orientation is changed. + (setBasicSplitPaneUI): Call oneTouchExpandableChanged only when + oneTouchExpandable is true. + * javax/swing/plaf/basic/BasicSplitPaneUI.java + (installDefaults): Install dividerSize on the divider too. + * javax/swing/plaf/metal/MetalSplitPaneDivider.java + (MetalDividerLayout): Removed. Functionality is already + in BasicSplitPaneDivider.DividerLayout. + (MetalOneTouchButton): New inner class. + (BUTTON_SPRITE): New constant field. + (MetalSplitPaneDivider): Don't change layout. + (createLeftOneTouchButton): Overridden to return custom button + for Metal. + (createRightOneTouchButton): Overridden to return custom button + for Metal. + (paint): Don't trigger button painting. Call super instead. + +2006-08-13 Roman Kennke + + * javax/swing/plaf/basic/BasicTableHeaderUI.java + (installKeyboardAction): Unmarked as stub. Added comment + explaining that the RI seems to do nothing here. + (uninstallKeyboardAction): Unmarked as stub. Added comment + explaining that the RI seems to do nothing here. + +2006-08-13 Roman Kennke + + PR 28135 + * javax/swing/ScrollPaneLayout.java + (layoutContainer): Consider the viewportBorder of the + JScrollPane. + (minimumLayoutSize): Consider the viewportBorder of the + JScrollPane. + (preferredLayoutSize): Consider the viewportBorder of the + JScrollPane. + * javax/swing/plaf/basic/BasicScrollPaneUI.java + (installDefaults): Also install viewportBorder if specified. + (paint): Paint viewportBorder if present. + (uninstallDefaults): Uninstall viewportBorder if appropriate. + Don't nullify foreground, background and font. Uninstall + border via LookAndFeel helper method to avoid uninstall + user set border. + +2006-08-13 Roman Kennke + + PR 28696 + * javax/swing/plaf/basic/BasicHTML.java + (HTMLRootView.HTMLRootView): Trigger initial layout. + (HTMLRootView.setSize): Overridden to forward to real view. + * javax/swing/plaf/basic/BasicToolTipUI.java + (PropertyChangeHandler): New inner class. Updates the HTML + renderer. + (propertyChangeHandler): New field. + (getMaximumSize): Add HTML width delta. + (getMinimumSize): Add HTML width delta. + (getPreferredSize): Reimplemented to use HTML view for size + calculation if appropriate, otherwise use simple stringWidth() + measurement. + (installListeners): Install propertyChangeHandler. + (uninstallListeners): Uninstall propertyChangeHandler. + (installUI): Update HTML renderer. + (uninstallUI): Update HTML renderer. + (paint): Reimplemented to use HTML view for rendering if + appropriate, simple drawString otherwise. + * javax/swing/plaf/metal/MetalToolTipUI.java + (getPreferredSize): Call super and add accelerator delta. + (paint): Simply call super. + +2006-08-13 Roman Kennke + + * javax/swing/JMenu.java + (changeListener): Renamed to menuChangeListener to avoid + shadowing changeListener field from AbstractButton. + +2006-08-13 Roman Kennke + + * javax/swing/JTree.java + (getScrollableUnitIncrement): Fixed direction. + (getScrollableBlockIncrement): Implemented to scroll one + page. + * javax/swing/tree/VariableHeightLayoutCache.java + (distance): Consider y + height already outside the node. + +2006-08-13 Roman Kennke + + * javax/swing/JTable.java + (getScrollableUnitIncrement): Fixed direction. Make it behave + like the RI. + (getScrollableBlockIncrement): Fixed direction. Make it behave + like the RI. + +2006-08-13 Roman Kennke + + * javax/swing/JList.java + (getScrollableUnitIncrement): Fixed direction. Implemented + horizontal scrolling. Improved usability. + (getScrollableBlockIncrement): Fixed direction. Improved usability. + +2006-08-13 Roman Kennke + + * javax/swing/plaf/basic/BasicScrollBarUI.java + (scrollByUnit): Scroll by -unit when direction is not positive + and +unit otherwise. + (scrollByBlock): Scroll by -unit when direction is not positive + and +unit otherwise. + +2006-08-13 Roman Kennke + + PR 28028 + * javax/swing/text/PlainView.java + (paint): Limit painted area to the lines inside the clip + and allocation. + +2006-08-13 Roman Kennke + + * javax/swing/plaf/basic/BasicTextUI.java + (uninstallListeners): Unregister document listener. + +2006-08-13 Sven de Marothy + + * java/util/Locale.java + (hashcodeCache): New field. + (hashCode): use the above field instead of the serialized one + (writeObject): Removed method. + (readObject): Intern strings. + (equals): Revert to previous method. + +2006-08-13 Roman Kennke + + * javax/swing/JTabbedPane.java + (JTabbedPane): Call setModel() here and let this install the + change listener correctly. + (setModel): Correctly uninstall and reinstall ChangeListener when + model changes. + +2006-08-13 Raif S. Naffah + + PR Classpath/23952 + * java/util/ResourceBundle.java (CACHE_SIZE): New constant. + (bundleCache): Replaced with an LRU of CACHE_SIZE elements. + (lastDefaultLocale): Removed. + (emptyLocale): Likewise. + (BundleKey.defaultLocale): New field. + (BundleKey.BundleKey): Add a Locale (as a 1st positional) argument. + (BundleKey.set): Likewise. + (BundleKey.equals): Take defaultLocal field into consideration. + (getBundle(String, Locale, ClassLoader)): Use updated BundleKey and LRU. + +2006-08-13 Roman Kennke -2006-07-06 Paul Eggert + * javax/swing/JMenu.java + (MenuChangeListener): New inner class, helps firing menu events. + (changeListener): New field. + (add(text)): Create new JMenuItem here and call add(JMenuItem). + (add(Action)): Create Action using createActionComponent() + and add via add(Component). + (setModel): Install and uninstall MenuChangeListener here. + +2006-08-13 Raif S. Naffah + + PR Classpath/27372 + * java/math/BigInteger.java: Updated copyright year. + (init): Consume as little bytes as possible. + (BigInteger(int, int, Random)): Ensure bitLength bits are used. + (valueOf(String, int)): Throw NumberFormatException for malformed strings + as per RI's documentation. + +2006-08-13 Sven de Marothy + + * java/util/Locale.java + (hashcode): Is a serialized field, not transient. + (equals): Should NOT compare strings by reference. + (readObject/writeObject): Use the default methods and handle the hash + seperately. + +2006-08-13 Raif S. Naffah + + PR Classpath/28678 + * gnu/java/security/Engine.java (getInstance(String, String, Provider)): + Updated documentation. + Formatting. + (getInstance(String, String, Provider, Object[])): Likewise. + Separate checks for null and empty string arguments. + Include as much information as possible in the exception's message. + Do not swallow original exception; instead use it as the cause of the + resulting exception. + * gnu/javax/security/auth/callback/AbstractCallbackHandler.java + (getInstance(String)): Updated documentation. + Formatting. + Store last exception caught when iterating through all providers. + If no implementation found, raise last exception if one was caught. + (getInstance(String, String)): Updated documentation. + Formatting. + Check for null or empty provider as per RI-5's documentation. + (getInstance(String, Provider)): Updated documentation. + Formatting. + Use as much information as possible in the exception message. + Do not swallow original exception; instead use it as the cause for the + ultimate raised exception(s). + * java/security/cert/CertificateFactory.java: Likewise. + * java/security/cert/CertPathBuilder.java: Likewise. + * java/security/cert/CertPathValidator.java: Likewise. + * java/security/cert/CertStore.java: Likewise. + * java/security/AlgorithmParameterGenerator.java: Likewise. + * java/security/AlgorithmParameters.java: Likewise. + * java/security/KeyFactory.java: Likewise. + * java/security/KeyPairGenerator.java: Likewise. + * java/security/KeyStore.java: Likewise. + * java/security/MessageDigest.java: Likewise. + * java/security/SecureRandom.java: Likewise. + * java/security/Signature.java: Likewise. + * javax/crypto/Cipher.java: Likewise. + * javax/crypto/ExemptionMechanism.java: Likewise. + * javax/crypto/KeyAgreement.java: Likewise. + * javax/crypto/KeyGenerator.java: Likewise. + * javax/crypto/Mac.java: Likewise. + * javax/crypto/SecretKeyFactory.java: Likewise. + * javax/net/ssl/KeyManagerFactory.java: Likewise. + * javax/net/ssl/SSLContext.java: Likewise. + * javax/net/ssl/TrustManagerFactory.java: Likewise. + +2006-08-13 Roman Kennke + + * javax/swing/JEditorPane.java + (getScrollableTracksViewportHeight): Also check maximum size. + * javax/swing/JTextPane.java + (insertIcon): Use input attributes for adding the icon + attribute. + * javax/swing/plaf/basic/BasicTextUI.java + (RootView.setSize): Overridden to forward to real view. + (getPreferredSize): Trigger setSize() on the view. + (viewToModel(JTextComponent,Point)): Pass Position.Bias array + to viewToModel() call, rather then null. + * javax/swing/text/ParagraphView.java + (changedUpdate): Invalide layout. Call super. + * javax/swing/text/SimpleAttributeSet.java + (clone): Use super's clone method to create clone. + * javax/swing/text/StyleConstants.java + (setIcon): Also set element name attribute. + * javax/swing/text/StyledEditorKit.java + (BoldAction.actionPerformed): Actually set the bold attribute, + not italic. + (setCharacterAttributes): Replaced with more straightforward + impl. + * javax/swing/text/TextAction.java + (getFocusedComponent): Implemented. + * javax/swing/text/Utilities.java + (getNextVisualPositionFrom): Pass Position.Bias arrays instead + of null. + * javax/swing/text/View.java + (changedUpdate): Nullify element change when updateChildren + says so. + +2006-08-11 Andrew John Hughes + + * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java: + Fix documentation typos. + +2006-08-11 David Daney + + PR classpath/28580 + * gnu/java/net/protocol/http/Request.java (readResponse): Call + createResponseBodyStream in more cases and with new parameter. + (createResponseBodyStream): Added new parameter mayHaveBody. Handle + HEAD and !mayHaveBody responses specially. + +2006-08-11 Roman Kennke + + * javax/swing/text/GlyphView.java + (DefaultGlyphPainter.modelToView): Fixed model->view mapping. + * javax/swing/text/LabelView.java + (valid): New flag indicating if the text attributes are valid. + (LabelView): Initialize valid field with false. + (setPropertiesFromAttributes): Call setter methods instead + of setting properties directly. Set valid to true. + (changedUpdate): Invalidate attributes. Call super. + (getBackground): Sync attributes if necessary. + (getForeground): Sync attributes if necessary. + (getFont): Sync attributes if necessary. + (isUnderline): Sync attributes if necessary. + (isSuperscript): Sync attributes if necessary. + (isStrikeThrough): Sync attributes if necessary. + (getFontMetrics): Sync attributes if necessary. Fetch font metrics + from toolkit if Container is not available yet. + +2006-08-11 Roman Kennke + + * javax/swing/text/PlainView.java + (tabBase): New field. + (tabSize): New field. + (updateMetrics): Update tabSize. + (lineToRect): Only allocate when really necessary. + (modelToView): Use tabBase for offset calculations. + (paint): Only allocate when really necessary. Update tabBase. + (nextTabStop): Fixed tab calculation. + (viewToModel): Correctly handle multiline text and locations + outside the view's bounds. Set bias. + (getLineLength): Use tabBase. + * javax/swing/text/Utilities.java + (drawTabbedText): Don't special case newlines. The views + must take care of this. - Port to hosts whose 'sort' and 'tail' implementations - treat operands with leading '+' as file names, as POSIX - has required since 2001. However, make sure the code still - works on pre-POSIX hosts. - * libjava/classpath/ltmain.sh: Don't assume "sort +2" is - equivalent to "sort -k 3", since POSIX 1003.1-2001 no longer - requires this. - This uses the same fix that is already in - libjava/libltdl/ltmain.sh. +2006-08-11 Roman Kennke -2006-07-04 Peter O'Gorman + * javax/swing/text/GapContent.java + (UndoPosRef): New inner class. Used for resetting positions + after undo/redo operations. + (InsertUndo.positions): New field. + (InsertUndo.undo): Store positions in removed range. + (InsertUndo.redo): Restore positions in re-inserted range. + (UndoRemove.positions): New field. + (UndoRemove.UndoRemove): Store positions in removed range. + (UndoRemove.undo): Restore positions in re-inserted range. + (UndoRemove.redo): Store positions in removed range. + (insertString): Create InsertUndo instance before actually + inserting the string. + (remove): Create UndoRemove instance before actually + removing. + (getPositionsInRange): Don't clear the Vector. Return Vector + of UndoPosRefs. + (updateUndoPositions): Implemented to reset all UndoPosRefs + in the vector. + +2006-08-11 Jeroen Frijters + + * java/io/ObjectInputStream.java (readClassDescriptor): + Use class's class loader to resolve field types. + * java/io/ObjectStreamField.java + (ObjectStreamField(String,String,ClassLoader)): Removed. + (ObjectStreamField(String,String)): Don't try to resolve typename. + (resolveType): New method. + +2006-08-10 Roman Kennke + + * javax/swing/text/BoxView.java + (calculateMajorAxisRequirements): Sum up the preferred and + maximum sizes. + (isAfter): Also add in the rectangle's with/height. + (childAllocation): Don't trigger layout here. + (layoutMinorAxis): Removed debug output. + (getWidth): Consider the insets. + (getHeight): Consider the insets. + (setSize): Consider the insets. + (updateRequirements): Check axis and throw + IllegalArgumentException. + +2006-08-10 Roman Kennke + + * javax/swing/text/AbstractDocument.java + (BidiRootName): New constant field, denotes the element name + for bidi root elements. + (AsyncLoadPriority): New constant field, denotes the property + to store the asynchronousLoadPriority. + (I18N): New constant field, denotes the property for + I18N support. + (bidiRoot): Made field type BidiRootElement. + (AbstractDocument): Build initial element structure for + bidi. + (getAsynchronousLoadPriority): Implemented. Returns the + value stored in the document properties. + (setAsynchronousLoadPriority): Implemented. Sets the + value stored in the document properties. + (getEndPosition): Implemented to use a Position from the + content. + (getStartPosition): Implemented to use a Position from the + content. + (insertStringImpl): Update the I18N setting if necessary. + (insertUpdate): Update the bidi structure if necessary. + (postRemoveUpdate): Update the bidi structure if necessary. + (putProperty): Update the I18N setting and bidi structure + if necessary. + (updateBidi): New helper method for updating the bidi + structure. + (getBidis): New helper method. Fetches the Bidi analysers + for the paragraphs of the range to check. + (dump): Also dump the bidi structure. + (AbstractElement.dump): Indent the '>' correctly. + (AbstractElement.children): Check numChildren rather then + children.length. + (BidiRootElement): New inner class. + (BidiElement): New inner class. + +2006-08-10 Roman Kennke + + * javax/swing/text/GapContent.java + (getChars): Optimized to only copy array when really necessary. + Respect the partialReturn property. + +2006-08-10 Lillian Angel + + * gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java + (getComponentPeer): Added check to prevent NPE. - * ltconfig: chmod 644 before ranlib during install. +2006-08-10 Gary Benson + + * java/security/AccessControlContext.java (): + Avoid a duplicated AccessController.getContext() call. + +2006-08-09 Mark Wielaard + + * doc/www.gnu.org/newsitems.txt: Add 0.92. + * doc/www.gnu.org/downloads/downloads.wml: Likewise. + * doc/www.gnu.org/announce/20060809.wml: New file. 2006-08-09 Mark Wielaard - * configure.ac (VERSION): Set to 0.92. + * configure.ac (VERSION): Set to 0.92-generics. * NEWS: Add updates for 0.92 release. -2006-08-08 Roman Kennke +2006-08-09 Tom Tromey + + PR classpath/28658: + * java/text/SimpleDateFormat.java (parse): Let an unquoted space in + the pattern match any number of spaces in the text. + +2006-08-09 Sven de Marothy + + * java/awt/image/BufferedImage.java + (BufferedImage): Reimplement predefined-type constructor. + (observers/tileObservers): Field renamed to tileObservers. + (createDefaultIndexedColorModel): New method. + +2006-08-09 Tom Tromey + + PR classpath/28666: + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c + (Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModes): + Create a 'short' array. + +2006-08-09 Tom Tromey + + * tools/gnu/classpath/tools/javah/JniHelper.java (getName): Properly + handle arrays. + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java + (writeFields): Print "L" after int constant. Don't mangle the field + name. Only print int/long fields. + +2006-08-09 Tom Tromey + + * tools/gnu/classpath/tools/javah/Main.java (getParser): Name program + "javah". + +2006-08-09 Sven de Marothy + + * javax/swing/JTree.java + (JTree): Default SelectionModel should be DefaultTreeSelectionModel. + (setSelectionModel): Null parameter should create an EmptySelectionM. + +2006-08-09 Roman Kennke + + * javax/swing/text/AbstractDocument.java + (insertString): Perform modifications inside a write lock. + (insertStringImpl): Don't lock here. This is already done + in insertString(). + (replace): Perform modifications inside a write lock. + (AbstractElement.AbstractElement): Call addAttributes() to + add the attributes. + (AbstractElement.getName): Fetch name from the ElementNameAttibute. + (BranchElement.lastIndex): New field. Optimizes getElementIndex(). + (BranchElement.BranchElement): Set lastIndex to -1. + (BranchElement.getElementIndex): Implemented more efficient + search. + +2006-08-09 Roman Kennke + + * javax/swing/text/DefaultStyledDocument.java + (Edit): Moved this inner class into ElementBuffer where it + is actually needed. + (edits): Moved this field into ElementBuffer. + (getEditForParagraphAndIndex): Removed obsolete method. + (insertUpdate): Added some optimizations and fixes. Split + out handling insertion after newlines. + (insertAfterNewline): New helper method. Handles insertions + after a newline. + (ElementBuffer.Edit): New inner class. Moved here from + DefaultStyledDocument. + (ElementBuffer.createdFracture): New field. + (ElementBuffer.documentEvent): Made private. + (ElementBuffer.edits): New field. Moved here from + DefaultStyledDocument. + (ElementBuffer.fracNotCreated): Replaced by createdFracture. + (ElementBuffer.fracturedChild): New field. + (ElementBuffer.fracturedParent): New field. + (ElementBuffer.insertPath): New field. + (ElementBuffer.lastFractured): Removed. Replaced by fracturedChild and + fracturedParent. + (ElementBuffer.offsetLastIndex): New field. + (ElementBuffer.offsetLastIndexReplace): New field. + (ElementBuffer.recreateLeafs): New field. + (ElementBuffer.ElementBuffer): Don't initialize stack here. + (ElementBuffer.canJoin): New helper method. + (ElementBuffer.changeUpdate): Changed to use elementStack with + Edits rather than Elements. Let the split method do the work. + (ElementBuffer.cloneAsNecessary): New helper method. + (ElementBuffer.createFracture): Changed to fracture the bottommost + child in the stack. + (ElementBuffer.finishEdit): New helper method. Moved out + from insertUpdate to perform the actual changes and update + the event. + (fracture): New helper method. + (insertContentTag): Fixed some bugs and changed to use Edit + instances in the stack, rather then Elements. + (insertElement): New helper method. Moved out from insertUpdate() + to process the ElementSpecs. + (insertFirstContentTag): Fixed some problems and changed to use Edit + instances in the stack, rather then Elements. + (insertFracture): Removed. Basically moved into createFracture() + and fracture(). + (insertParagraph): Removed. + (insertUpdate): Split out the ElementSpec processing into + insertElement(). Use Edit instances in the stack. Fixed some + problems. + (insert): Split out the preparation and finishing code into + prepareEdit() and finishEdit(). + (join): New helper method. + (pop): New helper method. + (prepareEdit): New helper method. + (recreateFracturedElement): New helper method. + (recreateLeaves): Removed. + (recreate): New helper method. + (removeElements): New helper method. Split out from removeUpdate(). + (removeUpdate): Split out the actual removal. Use the + Edit stack to perform removal and perform the remove actions + and event updates afterwards, just like in insertImpl(). + (remove): Use prepareEdit() and finishEdit(). + (split): Replaced with more flexible impl. + +2006-08-09 Sven de Marothy + + * gnu/java/awt/peer/gtk/CairoSurface.java + Change class to extend WritableRaster and not DataBuffer. + (CairoDataBuffer): New inner class. + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java + Accomodate the above change. + +2006-08-09 Sven de Marothy + + * gnu/java/awt/peer/gtk/GtkMainThread.java + New file. + * gnu/java/awt/peer/gtk/GtkChoicePeer.java + * gnu/java/awt/peer/gtk/GtkComponentPeer.java + Replace GtkToolkit.mainThread with GtkMainThread.mainThread. + * gnu/java/awt/peer/gtk/GtkToolkit.java + Minor style fixes; removed unused fields, + set fields to private where possible. + (createDialog, createFrame, createWindow, createEmbeddedWindow): + Call GtkMainThread.createWindow(). + * gnu/java/awt/peer/gtk/GtkWindowPeer.java + (dispose): New method. + * include/gnu_java_awt_peer_gtk_GtkToolkit.h + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + (gtkQuit): New native method. + +2006-08-08 Lillian Angel + + * java/awt/Component.java + (setDropTarget): Added check. + +2006-08-08 Lillian Angel + + * gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java + (GtkDragSourceContextPeer): Added FIXME. Changed call + to setTarget. + * gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java + (GtkDropTargetContextPeer): Removed target initialization. + * java/awt/Component.java + (setTarget): Removed commented out code. + +2006-08-08 Mark Wielaard + + * javax/swing/text/DefaultHighlighter.java: Qualify + Highlighter.HighlightPainter class name for gcj. + +2006-08-05 Roman Kennke + + * javax/swing/plaf/basic/BasicTableUI.java + (MouseInputHandler.mousePressed): Request focus on list + component. + +2006-08-05 Roman Kennke + + * javax/swing/plaf/basic/BasicListUI.java + (MouseInputHandler.mousePressed): Request focus on list + component. + +2006-08-05 Roman Kennke PR 28650 * javax/swing/plaf/basic/BasicMenuBarUI.java @@ -208,7 +9205,7 @@ (getMinimumSize): Added specnote about this method never beeing called in the RI. -2006-08-06 Sven de Marothy +2006-08-03 Sven de Marothy * gnu/java/awt/peer/gtk/ComponentGraphics.java (grab, nativeGrab): New methods. @@ -218,7 +9215,7 @@ * gnu/java/awt/peer/gtk/GtkComponentPeer.java (print): Implement. * java/awt/Component.java - (printAll): Should call peer print method. + (printAll): Should call peer print method. 2006-08-06 Thomas Minor <1nocentrabidlamb@sexMagnet.com> @@ -236,10 +9233,10 @@ 2006-08-06 Roman Kennke * NEWS: Added note about the X peers. - * INSTALL: Added install notes about the X peers. + * INSTALL: Added install notes about the X peers. 2006-08-06 Raif S. Naffah - Paul Jenner + Paul Jenner * README: Update bug, patches and cvs instructions plus new URLs of various external projects. @@ -256,13 +9253,347 @@ g_type_init earlier in function to correctly initialize the type system used by the backend. -2006-08-05 Robert Schuster +2006-08-05 Roman Kennke + + * javax/swing/text/DefaultHighlight.java + (DefaultHighlightPainter.paintHighlight): Removed method. + (DefaultHighlightPainter.paintLayer): Implemented. + (DefaultHighlightPainter.paint): Implemented more efficient + painting for multiline-highlights. + (HighlightEntry.p0): Changed to be a Position. + (HighlightEntry.p1): Changed to be a Position. + (HighlightEntry.HighlightEntry): Changed to take Position + arfuments. + (HighlightEntry.getStartOffset): Changed to return p0.getOffset(); + (HighlightEntry.getEndOffset): Changed to return p1.getOffset(); + (LayerHighlightEntry): New inner class. Extends HighlightEntry + and tracks the painted rectangle for efficient repainting. + (addHighlight): Handle layered highlight. + (changeHighlight): Handle layered highlight. + (paintLayeredHighlights): Implemented. + (paint): Paint only non-layered highlights here. + (removeAllHighlights): Trigger correct repaint. + (removeHighlight): Handle layered highlight here for + more efficient repainting. + * javax/swing/text/GlyphView.java + (paint): Handle layered highlights. + * javax/swing/text/PlainView.java + (paint): Handle layered highlights. + * javax/swing/text/WrappedPlainView.java + (WrappedLine.paint): Handle layered highlights. + +2006-08-07 Audrius Meskauskas + + PR 26972 + * NEWS: As suggested by Paul Jennier, added note about the fix of + the InitialContext. + +2006-08-07 Audrius Meskauskas + + * NEWS: Added entry about the context factories for JNDI. + +2006-08-07 Audrius Meskauskas + + PR 27383 + * gnu/CORBA/Connected_objects.java (size): New method. + * gnu/CORBA/OrbFunctional.java (countConnectedObjects): + New method. + * javax/naming/spi/NamingManager.java (getURLContext): + Also search for the URL context factories in + gnu/javax/naming/jndi/url. + * gnu/javax/naming/giop/ContextContinuation.java, + gnu/javax/naming/giop/CorbalocParser.java, + gnu/javax/naming/giop/GiopNamingEnumeration.java, + gnu/javax/naming/giop/GiopNamingServiceFactory.java, + gnu/javax/naming/giop/GiopNamingServiceURLContext.java, + gnu/javax/naming/giop/ListBindingsEnumeration.java, + gnu/javax/naming/giop/ListEnumeration.java, + gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java, + gnu/javax/naming/jndi/url/rmi/ContextContinuation.java, + gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java, + gnu/javax/naming/jndi/url/rmi/ListEnumeration.java, + gnu/javax/naming/jndi/url/rmi/RmiContinuation.java, + gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java, + gnu/javax/naming/jndi/url/rmi/rmiURLContext.java, + gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java: New files. + +2006-08-06 Sven de Marothy + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawGlyphVector): Synchronize against font object when drawing. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (nativeDrawGlyphVector): Use pango locking when drawing. + (install_font_peer): Use pango locking when creating the cairo face. + +2006-08-06 C. Scott Marshall + + Fixes PR 28608. + * java/nio/DirectByteBufferImpl.java (duplicate): only reset if + the mark has been set. + * native/jni/java-nio/java_nio_VMDirectByteBuffer.c + (Java_java_nio_VMDirectByteBuffer_allocate): zero out the + allocated data. + +2006-08-06 Mark Wielaard + + PR 28555 + Suggested by Matthew Burgess + * gnu/xml/transform/ApplyTemplatesNode.java (clone): Check whether + withParams is null. + * gnu/xml/transform/ForEachNode.java (clone): Check whether + sortKeys is null. + +2006-08-06 Raif S. Naffah + Paul Jenner + + * README: Update bug, patches and cvs instructions plus new URLs of + various external projects. + +2006-08-05 Andrew John Hughes + + * gnu/java/lang/management/BeanImpl.java: + (cacheMBeanInfo(MBeanInfo)): Override given MBeanInfo + with open variant. + (getCachedMBeanInfo()): Return open variant. + (getMBeanInfo()): Likewise. + (getTypeFromClass(Class)): Implemented. + (translateSignature(MBeanParameterInfo)): Likewise. + (translate(String)): Likewise. + * javax/management/StandardMBean.java: + (getMBeanInfo()): Return attribute names with capital letters, + as in docs for java.lang.management.ManagementFactory, and + ensure descriptions are not "". + * javax/management/openmbean/OpenMBeanConstructorInfoSupport.java, + * javax/management/openmbean/OpenMBeanInfoSupport.java, + * javax/management/openmbean/OpenMBeanOperationInfoSupport.java: + (toString()): Use Arrays.toString(). + * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: + (OpenMBeanParameterInfoSupport(String, String, OpenType)): + Set open type here rather than in other constructors. + +2006-08-05 Andrew John Hughes + + * javax/management/MBeanFeatureInfo.java: + Make string variable package-private. + * javax/management/StandardMBean.java: + (getMBeanInterface()): Made final. + * javax/management/openmbean/SimpleType.java: + Made final. + +2006-08-05 Jeroen Frijters + + * java/awt/Component.java (setDropTarget): Commented out GTK specific + code. + +2006-08-05 Andrew John Hughes + + * examples/gnu/classpath/examples/swing/FillRect.java, + * gnu/CORBA/Focused_ORB.java, + * gnu/CORBA/interfaces/gnuSocketFactory.java, + * gnu/classpath/ByteArray.java, + * gnu/classpath/ObjectPool.java, + * gnu/java/awt/peer/ClasspathTextLayoutPeer.java, + * gnu/java/awt/peer/x/fonts.properties, + * gnu/java/security/util/Prime2.java, + * gnu/javax/imageio/gif/GIFStream.java, + * javax/swing/text/html/HTMLTableView.java, + * native/cni/Makefile.am, + * org/omg/CORBA/SendingContext/RunTimeOperations.java, + * org/omg/CORBA/SendingContext/Runtime.java, + * resource/gnu/regexp/MessagesBundle.properties, + * resource/gnu/regexp/MessagesBundle_fr.properties, + * resource/gnu/regexp/MessagesBundle_it.properties, + * tools/appletviewer.in, + * tools/jarsigner.in, + * tools/keytool.in, + * vm/reference/java/lang/management/VMThreadInfo.java: + Removed. + * examples/gnu/classpath/examples/awt/aicas.png, + * examples/gnu/classpath/examples/awt/palme.gif, + * examples/gnu/classpath/examples/java2d/aicas.png, + * examples/gnu/classpath/examples/java2d/palme.gif, + * gnu/java/awt/font/opentype/truetype/doc-files/ZonePathIterator-1.dia, + * gnu/java/awt/font/opentype/truetype/doc-files/ZonePathIterator-1.png, + * java/awt/doc-files/capjoin.png, + * java/awt/geom/doc-files/Area-1.png, + * java/awt/geom/doc-files/Ellipse-1.png, + * java/awt/geom/doc-files/GeneralPath-1.png: + Added. + +2006-08-05 Andrew John Hughes + + * configdiag.jnlp: + Removed. + +2006-08-05 Andrew John Hughes + + * gnu/java/lang/management/BeanImpl.java: + (getAttribute(String)): Implemented. + +2006-08-05 Roman Kennke + + * javax/swing/text/JTextComponent.java + (AccessibleJTextComponent.dot): Renamed field into caretDot. + (AccessibleJTextComponent.textComp): Removed field + and replace with JTextComponent.this construct. + (AccessibleJTextComponent.AccessibleJTextComponent): + Fetch caret position. + (caretUpdate): Implemented. Fires property change events and + updates the caretDot field. + (changedUpdate): Implemented. Fires property change events. + (insertUpdate): Implemented. Fires property change events. + (removeUpdate): Implemented. Fires property change events. + (cut): Replaced textComp with JTextComponent.this construct. + (paste): Replaced textComp with JTextComponent.this construct. + (replaceText): Replaced textComp with JTextComponent.this construct. + (selectText): Replaced textComp with JTextComponent.this construct. + (getCaretPosition): Replaced textComp with JTextComponent.this + construct. + (getCharCount): Replaced textComp with JTextComponent.this construct. + (getSelectedText): Replaced textComp with JTextComponent.this + construct. + (getSelectionEnd): Replaced textComp with JTextComponent.this + construct. + (getSelectionStart): Replaced textComp with JTextComponent.this + construct. + (getTextRange): Replaced textComp with JTextComponent.this + construct. + (doAccessibleAction): Implemented. + (getAccessibleActionCount): Implemented. + (getAccessibleActionDescription): Implemented. + (getAccessibleStateSet): Implemented. + (getAfterIndex): Implemented. + (getBeforeIndex): Implemented. + (getAtIndex): Implemented. + (getAtIndexImpl): New helper method. + (getCharacterAttribute): Implemented. + (getCharacterBounds): Implemented. + (getIndexAtPoint): Implemented. + (insertTextAtIndex): Implemented. + (setAttributes): Implemented. + (setTextContents): Implemented. + +2006-08-05 Raif S. Naffah + + * configure.ac: Better handling of default-preferences-peer option. + +2006-08-04 Andreas Tobler + + * java/awt/BasicStroke.java (dashedStroke): Cast coords.clone to + double[]. + +2006-08-04 Andrew John Hughes + + * javax/management/openmbean/TabularData.java: + Documentation corrections. + * javax/management/openmbean/TabularDataSupport.java: + New file. + +2006-08-04 Francis Kung + + * java/awt/BasicStroke.java + (dashedStroke): Implemented. + +2006-08-04 Andrew John Hughes + + * javax/management/BadAttributeValueExpException.java, + * javax/management/BadStringOperationException.java, + * javax/management/InstanceAlreadyExistsException.java, + * javax/management/InstanceNotFoundException.java, + * javax/management/InvalidApplicationException.java, + * javax/management/MBeanRegistrationException.java, + * javax/management/MalformedObjectNameException.java, + * javax/management/RuntimeErrorException.java, + * javax/management/RuntimeMBeanException.java, + * javax/management/ServiceNotFoundException.java: + New files. + +2006-08-04 Roman Kennke + + * javax/swing/SwingUtilities.java + (layoutCompoundLabel(JComponent,FontMetrics,String,Icon,int,int,int, + int,Rectangle,Rectangle,Rectangle,int)): Delegate to new + layoutCompoundLabelImpl(). + (layoutCompoundLabel(FontMetrics,String,Icon,int,int,int,int, + Rectangle,Rectangle,Rectangle,int)): Delegate to new + layoutCompoundLabelImpl(). + (layoutCompoundLabelImpl): New helper method. Moved impl from + layoutCompoundLabel() to here and added handling of HTML. + * javax/swing/plaf/basic/BasicButtonUI.java + (installUI): Update HTML view if appropriate. + (uninstallUI): New method. Do the usual uninstallUI things + and uninstall HTML view. + (getMinimumSize): New method. Adjusts the minimum size + by the HTML view minimum size. + (getMaximumSize): New method. Adjusts the maximum size + by the HTML view maximum size. + (getPreferredSize): Pass the button's iconTextGap to the + BasicGraphicsUtils method. + (paint): Let HTML view paint the text, if present. + * javax/swing/plaf/basic/BasicButtonListener.java + (propertyChange): Update the HTML view when the button's + text is changed. + +2006-08-04 Mario Torre + + Reported by Raif S. Naffah + * native/jni/gconf-peer/GConfNativePeer.c (init_gconf_client): + g_type_init earlier in function to correctly initialize the + type system used by the backend. + +2006-08-04 Audrius Meskauskas + + PR 26972 + * javax/naming/Name.java (addAll, getPrefix, getSuffix): + Documented. + * gnu/javax/naming/ictxImpl/trans/GnuName.java: New file. + +2006-08-04 Robert Schuster Reported by Henrik Gulbrandsen - Fixes PR27864. - * gnu/xml/dom/DomIterator.java: - (successor): Added if-statement. + Fixes PR27864. + * gnu/xml/dom/DomIterator.java: + (successor): Added if-statement. + +2006-08-04 Mark Wielaard + + * scripts/Makefile.am (EXTRA_DIST): Add import-cacerts.sh. + +2006-08-04 Robert Schuster + + * javax/swing/plaf/metal/MetalMenuBarUI.java: + (update): Check size and paint smaller gradient. + * javax/swing/plaf/metal/MetalBorders.java: + (MenuBarBorder): Removed borderColor field. + (MenuBarBorder.paintBorder): Added note, fetch color from UIManager or + MetalLookAndFeel. + +2006-08-03 Roman Kennke + PR 27637 + * javax/swing/plaf/basic/BasicInternalFrameUI.java + (ComponentHandler.componentResized): Reimplemented to handle + arbitrary parents. + (InternalFramePropertyChangeHandler.propertyChange): (Un)install + component listener on changed ancestor. + (installListeners): Install componentListener. + (uninstallListeners): Uninstall componentListener. + +2006-08-03 Carsten Neumann + + * StrictMath.java (cbrt): Return argument if it is a NaN. + (cosh): Likewise. + (expm1): Likewise. + (sinh): Likewise. + +2006-08-03 Carsten Neumann + + * java/lang/StrictMath.java (tanh): New method. + +2006-08-03 Raif S. Naffah + + * scripts/import-cacerts.sh: Batch CA certificates import script. + 2006-08-03 Roman Kennke PR 27606 @@ -277,7 +9608,63 @@ Handle indentation. (IndentIcon): New class. Wraps and indents another icon. -2006-08-03 Roman Kennke +2006-08-02 Andrew John Hughes + + * javax/management/MBeanConstructorInfo.java: + (MBeanConstructorInfo(String,String,MBeanParameterInfo[]): + Copy array rather than directly assigning. + * javax/management/MBeanInfo.java: + (MBeanInfo(String,String,MBeanAttributeInfo[], + MBeanConstructorInfo[], MBeanOperationInfo[], + MBeanNotificationInfo[])): Likewise. + * javax/management/MBeanOperationInfo.java: + (MBeanOperationInfo(String,String,MBeanParameterInfo[],String,int)): + Likewise. + * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java, + * javax/management/openmbean/OpenMBeanConstructorInfoSupport.java: + New files. + * javax/management/openmbean/OpenMBeanInfo.java: + Corrected documentation. + * javax/management/openmbean/OpenMBeanInfoSupport.java: + New file. + * javax/management/openmbean/OpenMBeanOperationInfo.java: + Corrected documentation. + * javax/management/openmbean/OpenMBeanOperationInfoSupport.java: + New file. + * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: + (MBeanParameterInfo(String,String,OpenType,Object,Object[])): + Call other constructor rather than reimplementing. + +2006-08-02 Lillian Angel + + * java/awt/dnd/DragSource.java + (isDragImageSupported): Implemented. + (getDragThreshold): Changed default value. + * java/awt/dnd/DropTarget.java + (DropTarget): Default action is changed to ACTION_COPY_OR_MOVE. + (DropTarget): Likewise. + (DropTarget): If FlavorMap passed in is null, we should use the system default. + (addDropTargetListener): Added check to determine if new DropTargetListener + is this class. If so, an IllegalArgumentException is thrown. If the + new listener is null, nothing happens. + +2006-08-02 Thomas Fitzsimmons + + * configure.ac (MOZILLA_FOUND): Fall back to + mozilla-firefox-plugin. + +2006-08-02 Sven de Marothy + + * java/awt/geom/AffineTransform.java + (hashCode): Tweak impl. + * java/awt/font/FontRenderContext.java + (hashCode): Implement. + +2006-08-02 Carsten Neumann + + * java/lang/StrictMath.java (sinh): New method. + +2006-08-02 Roman Kennke PR 27605 * javax/swing/JComboBox.java @@ -303,7 +9690,70 @@ (createPropertyChangeListener): Return null just like the RI. -2006-08-03 Roman Kennke +2006-08-02 Sven de Marothy + + * gnu/java/awt/peer/gtk/GtkChoicePeer.java + (remove): Force event on removing item 0 when it's selected. + (handleEvent): Always call Choice.selected(). + * java/awt/Choice.java: + (remove): Simplify and correct. + +2006-08-02 Mark Wielaard + + PR 28535 + * configure.ac (gconf-peer): Check for gdk-2.0. + * native/jni/gconf-peer/Makefile.am + (AM_LDFLAGS): Use GDK_LIBS. + (AM_CFLAGS): Use GDK_CFLAGS. + +2006-08-02 Thomas Minor <1nocentrabidlamb@sexMagnet.com> + + * java/net/URL.java (getContent(Class[])): Implement. + +2006-08-02 Roman Kennke + + PR 27624 + * javax/swing/JMenu.java + (JMenu()): Removed setting of delay. + (JMenu(String)): Removed setting of delay. + (JMenu(Action)): Removed setting of delay. + (JMenu(String,boolean)): Removed setting of delay. + (setSelectedHelper): Removed unneeded method. + (setSelected): Simply set the model state. + (setPopupMenuVisible): Recognize the popup location + determined by getPopupMenuOrigin(). + (getPopupMenuOrigin): Recognize the UI properties for + X and Y offset. + (menuSelectionChanged): Call setSelected() directly. + * javax/swing/JPopupMenu.java + (menuSelectionChanged): If invoker is a JMenu, then delegate + to that to get the position right. + * javax/swing/Popup.java + (LightweightPopup.show): Insert the popup as first component + in the layer, so that it overlaps it's caller. + * javax/swing/plaf/basic/BasicMenuItemUI.java + (getPath): Don't include the popup. + * javax/swing/plaf/basic/BasicMenuUI.java + (SelectMenuAction): New class. This invokes the popup when + a menu is selected. + (installDefaults): Install delay of 200 ms. + (setupPostTimer): Implemented. + (MouseInputHandler.mouseClicked): Do nothing here. + (MouseInputHandler.mouseEntered): Use MenuSelectionManager + magic to handle the selection. Open the menu via a timer. + (MouseInputHandler.mousePressed): Use MenuSelectionManager + magic to handle the selection. Open the menu via a timer. + (MenuDragMouseHandler.menuMouseDragged): Probably use + timer. + (menuDragMouseEntered): Do nothing here. + +2006-08-02 Andrew John Hughes + + * javax/management/openmbean/InvalidOpenTypeException.java, + * javax/management/openmbean/KeyAlreadyExistsException.java: + New files. + +2006-08-02 Roman Kennke PR 27604 * javax/swing/plaf/basic/BasicChooserUI.java @@ -321,12 +9771,16 @@ (getSystemDisplayName): Implemented to return the real name of a file, special handling files like '.' or '..'. +2006-08-03 Mark Wielaard + + * examples/gnu/classpath/examples/icons/badge.png: Add file. + 2006-08-03 Roman Kennke PR 28562 * javax/swing/plaf/basic/BasicOptionPaneUI.java (PropertyChangeHandler.propertyChange): Cleanly reinstall - components when visual property chanegs. + components when visual property chanegs. 2006-08-03 Roman Kennke @@ -348,72 +9802,102 @@ Set renderer to a default handler when the current renderer in the JTree is null. -2006-08-03 Mark Wielaard - - * scripts/Makefile.am (EXTRA_DIST): Add import-cacerts.sh. - -2006-08-03 Raif S. Naffah +2006-08-02 Raif S. Naffah - * scripts/import-cacerts.sh: Batch CA certificates import script. + PR Classpath/23899 + * java/security/SecureRandom.java (next): Call nextBytes as per specs. -2006-08-03 Raif S. Naffah +2006-08-02 Raif S. Naffah PR Classpath/28556 - * gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java - (encodePrivateKey): Updated documentation to clarify that RFC-2459 - states that the parameters field of the AlgorithmIdentifier element - MUST be NULL if present. Amended the code to reflect the specs. + * gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java (encodePrivateKey): + Updated documentation to clarify that RFC-2459 states that the parameters + field of the AlgorithmIdentifier element MUST be NULL if present. + Amended the code to reflect the specs. (decodePrivateKey): Handle case of NULL AlgorithmIdentifier.parameters. -2006-08-03 Raif S. Naffah +2006-08-01 Andrew John Hughes - PR Classpath/23899 - * java/security/SecureRandom.java (next): Call nextBytes as per specs. + * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: + Call parameter 'defaultValue' not 'defValue'. -2006-08-03 Thomas Fitzsimmons +2006-08-01 Andrew John Hughes - * native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add - -avoid-version. - * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS): - Likewise. - * native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS): - Likewise. - * native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS): - Likewise. + * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: + New file. -2006-08-03 Thomas Fitzsimmons +2006-08-01 Roman Kennke + + PR 28562 + * javax/swing/plaf/basic/BasicOptionPaneUI.java + (PropertyChangeHandler.propertyChange): Cleanly reinstall + components when visual property chanegs. + +2006-08-01 Andrew John Hughes + + * javax/management/openmbean/OpenMBeanAttributeInfo.java: + (toString()): Corrected documentation. + * javax/management/openmbean/OpenMBeanConstructorInfo.java, + * javax/management/openmbean/OpenMBeanInfo.java, + * javax/management/openmbean/OpenMBeanOperationInfo.java: + New files. + * javax/management/openmbean/OpenMBeanParameterInfo.java: + (toString()): Corrected documentation. + +2006-08-01 Tania Bento - * native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Add - -avoid-version. + * java/awt/Choice.java + (remove(int)): Added documentation. -2006-08-03 Andrew John Hughes +2006-08-01 Tania Bento + + * java/awt/Choice.java + (remove(int)): An IllegalArgumentException should not be thrown + if int is invalid. Update selectedIndex and peer selection. - * examples/gnu/classpath/examples/management/TestBeans.java: - New file. - * javax/management/MBeanAttributeInfo.java: - (toString()): Implemented. - * javax/management/MBeanConstructorInfo.java: - (toString()): Implemented. - * javax/management/MBeanFeatureInfo.java: - (toString()): Implemented. - * javax/management/MBeanInfo.java: - (toString()): Implemented. - * javax/management/MBeanNotificationInfo.java: - (toString()): Implemented. - * javax/management/MBeanOperationInfo.java: - (toString()): Implemented. - * javax/management/MBeanParameterInfo.java: - (toString()): Implemented. - * javax/management/StandardMBean.java: - (getMBeanInfo()): Fix attribute naming. +2006-08-01 Tania Bento -2006-08-02 Mark Wielaard + * java/awt/CardLayout.java + (toString): Changed format of string outputted. + (goToComponent): Changed the order of the if-clause. - PR 28535 - * configure.ac (gconf-peer): Check for gdk-2.0. - * native/jni/gconf-peer/Makefile.am - (AM_LDFLAGS): Use GDK_LIBS. - (AM_CFLAGS): Use GDK_CFLAGS. +2006-07-31 Tom Tromey + + * INSTALL: Updated for ASM. + +2006-07-31 Tom Tromey + + PR libgcj/23682: + * java/nio/channels/SelectionKey.java (attach): Now synchronized. + (attachment): Likewise. + * java/nio/channels/spi/AbstractSelectionKey.java (cancel): Now + synchronized. + (isValid): Likewise. + * gnu/java/nio/SelectionKeyImpl.java (impl): Now final + (ch): Likewise. + (interestOps): Synchronize. + (readyOps): Likewise. + * gnu/java/nio/SelectorImpl.java (register): Synchronize around + interestOps call. + +2006-07-31 Roman Kennke + + * NEWS: Added note about the X peers. + * INSTALL: Added install notes about the X peers. + +2006-07-31 Carsten Neumann + + * StrictMath.java (getLowDWord): Return long instead of int. + (getHighDWord): Likewise. + (buildDouble): Take two long arguments. + (cbrt): Adapted to int -> long change. + (expm1): Likewise. + (cosh): Likewise. + +2006-07-31 Thomas Fitzsimmons + + * native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Add + -avoid-version. 2006-07-31 Raif S. Naffah @@ -438,6 +9922,11 @@ 2006-07-30 Mark Wielaard + * javax/swing/JComponent.java (getListeners): Revert + un-genericization. + +2006-07-30 Mark Wielaard + * resource/java/security/classpath.security: Add /dev/urandom as default securerandom.source. @@ -447,6 +9936,39 @@ 6 weeks. (nonLeniencyCheck): weeks is either 5 or 6. +2006-07-30 Andrew John Hughes + + * javax/management/openmbean/OpenMBeanAttributeInfo.java, + * javax/management/openmbean/OpenMBeanParameterInfo.java: + New files. + +2006-07-30 Matt Wringe + + * gnu/java/security/Engine.java + (getInstance): Ignore self referencing aliases. + +2006-07-30 Sven de Marothy + + * java/awt/Choice.java: + (accessibleAction): Call select() directly. + (add, insert, remove): Reimplement. + (dispatchEventImpl): Always call super. + (processItemEvent): Does not set the index. + * include/gnu_java_awt_peer_gtk_GtkChoicePeer.h + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c + (append): removed. + (nativeAdd): Name changed to add. + (selection_changed_cb): Simplify callback. + * gnu/java/awt/peer/gtk/GtkChoicePeer.java + (selected): New field. + (add): Replaced with native impl. + (handleEvent): New method. + +2006-07-30 Sven de Marothy + + * java/awt/Choice.java: + Reformat, fix copyright year. + 2006-07-29 Mark Wielaard * javax/swing/JComponent.java (paintingDoubleBuffered): Renamed @@ -454,6 +9976,27 @@ as a method. 2006-07-29 Andrew John Hughes + + * examples/gnu/classpath/examples/management/TestBeans.java: + New file. + * javax/management/MBeanAttributeInfo.java: + (toString()): Implemented. + * javax/management/MBeanConstructorInfo.java: + (toString()): Implemented. + * javax/management/MBeanFeatureInfo.java: + (toString()): Implemented. + * javax/management/MBeanInfo.java: + (toString()): Implemented. + * javax/management/MBeanNotificationInfo.java: + (toString()): Implemented. + * javax/management/MBeanOperationInfo.java: + (toString()): Implemented. + * javax/management/MBeanParameterInfo.java: + (toString()): Implemented. + * javax/management/StandardMBean.java: + (getMBeanInfo()): Fix attribute naming. + +2006-07-29 Andrew John Hughes * gnu/java/lang/management/BeanImpl.java: Extended javax.management.StandardMBean. @@ -479,7 +10022,7 @@ (getMemoryManagerMXBeans()): Likewise. (getGarbageCollectorMXBeans()): Likewise. * javax/management/MBeanFeatureInfo.java: - (hashCode()): Fixed to check for null values. + hashCode()): Fixed to check for null values. 2006-07-29 Matt Wringe @@ -492,6 +10035,16 @@ (get): Method removed, no longer needs to overwrite parent implementation +2006-07-29 Mark Wielaard + + * gnu/java/awt/peer/gtk/GdkTextLayout.java: Removed. + * gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java: Removed. + * include/gnu_java_awt_peer_gtk_GdkTextLayout.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h: Removed. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: Removed. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c: + Removed. + 2006-07-29 Sven de Marothy * java/math/BigDecimal.java @@ -542,6 +10095,51 @@ (joinSegments): Refactored some code into joinOuterSegments. (solidStroke): Connect segments together properly. +2006-07-28 Thomas Fitzsimmons + + * native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add + -avoid-version. + * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS): + Likewise. + * native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS): + Likewise. + * native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS): + Likewise. + +2006-07-28 Tom Tromey + + * configure.ac: Enable -Werror by default on Linux-with-gcc. + +2006-07-28 Lillian Angel + + * native/jni/gtk-peer/GtkDragSourceContextPeer.c: + Removed function declarations. + (connect_signals_for_widget): Removed implementation because + stub functions have been removed. + (drag_begin_cb): Removed function. + (drag_motion_cb): Likewise. + (drag_data_get_cb): Likewise. + (drag_data_delete_cb): Likewise. + (drag_drop_cb): Likewise. + (drag_end_cb): Likewise. + (drag_data_received_cb): Likewise. + +2006-07-28 Mark Wielaard + + * configure.ac: Set version to 0.93-pre. + +2006-07-29 Raif S. Naffah + + * tools/Makefile.am: Added source 1.4 compliance option when ECJ is used. + +2006-07-29 Raif S. Naffah + + * tools/gnu/classpath/tools/keytool/Command.java: Removed unused import. + (getCallbackHandler): Fully qualify linked class in javadoc. + * tools/gnu/classpath/tools/keytool/GenKeyCmd.java (cmdOptionsParser): Removed. + * tools/gnu/classpath/tools/keytool/ImportCmd.java (imported): Likewise. + * tools/gnu/classpath/tools/keytool/Main.java (printHelp): Likewise. + 2006-07-27 Tom Tromey PR classpath/28486: @@ -1295,6 +10893,14 @@ (GtkMouseDragGestureRecognizer): fixed potential threading issue: removed call to registerListeners from the constructor. +2006-07-23 Andrew John Hughes + + * gnu/java/lang/management/MemoryPoolMXBeanImpl.java, + * java/lang/management/MemoryPoolMXBean.java: + (getType()): Changed return type to MemoryType. + * java/lang/management/MemoryType.java: + New file. + 2006-07-23 Mark Wielaard * configure.ac: Check for moc and moc-qt4. @@ -1386,6 +10992,13 @@ * gnu/java/awt/peer/gtk/CairoSurface.java (CairoSurface): Rearrange code for the pixel swap routine to be more efficient. +2006-07-21 Carsten Neumann + + * java/util/CopyOnWriteArrayList.java (indexOf(E, int)): New method. + (lastIndexOf(E, int)): Likewise. + (add(E)): Increase the size of newData array by one. + (add(int, E)): Likewise. + 2006-07-20 Lillian Angel * gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java: @@ -2610,12 +12223,26 @@ TYPE_BYTE_GRAY and TYPE_USHORT_GRAY, and throw an IllegalArgumentException for an unrecognised type. +2006-07-10 Andrew John Hughes + + * java/lang/management/ManagementFactory.java: + (getMemoryPoolMXBeans): Genericized fully. + (getMemoryManagerMXBeans): Likewise. + (getGarbageCollectorMXBeans): Likewise. + +2006-07-10 Tom Tromey + + * java/lang/management/ManagementFactory.java (getMemoryPoolMXBeans): + Genericized. + (getMemoryManagerMXBeans): Likewise. + (getGarbageCollectorMXBeans): Likewise. + 2006-07-10 Mario Torre - * java/awt/BasicStroke.java: Removed unused import. - * gnu/java/awt/java2d/CubicSegment.java (clone): Fixed. - * gnu/java/awt/java2d/LineSegment.java (clone): Fixed. - * gnu/java/awt/java2d/QuadSegment.java (clone): Fixed. + * java/awt/BasicStroke.java: Removed unused import. + * gnu/java/awt/java2d/CubicSegment.java (clone): Fixed. + * gnu/java/awt/java2d/LineSegment.java (clone): Fixed. + * gnu/java/awt/java2d/QuadSegment.java (clone): Fixed. 2006-07-10 Matt Wringe @@ -2736,6 +12363,10 @@ org/omg/PortableServer/ServantLocatorHelper.java: Remove the typecode caching and always use OrbRestricted.Singleton. +2006-07-09 Tom Tromey + + * java/util/logging/LoggingMXBean.java (getLoggerNames): Genericized. + 2006-07-09 Mark Wielaard * gnu/java/awt/peer/gtk/ComponentGraphics.java (hasXRenderExtension): @@ -3067,6 +12698,12 @@ 2006-07-05 Andrew John Hughes + * java/lang/Thread.java: + (getAllStackTraces(Map)): + Added generic type signature. + +2006-07-05 Andrew John Hughes + * NEWS: Updated. * doc/vmintegration.texinfo: Likewise. * examples/gnu/classpath/examples/management/TestGarbageCollector.java, @@ -4647,6 +14284,10 @@ (setDisplayedMnemonicIndex): Removed unnecessary validation, (getDisplayedMnemonicIndex): Updated API docs. +2006-06-21 Jeroen Frijters + + * java/util/Collections (entrySet): Fixed compile error. + 2006-06-21 David Gilbert * javax/swing/DefaultListSelectionModel.java @@ -5196,6 +14837,11 @@ * java/text/AttributedString.java (AttributedString): Fix constructor to stop at end point. +2006-06-17 Tom Tromey + + * lib/gen-classlist.sh.in: Search all top-level directories, not + just 'org', in external. + 2006-06-12 Mario torre * gnu/java/util/prefs/GConfBasedPreferences.java: new class. @@ -5288,11 +14934,6 @@ * tools/.cvsignore: Added new tool names. -2006-06-16 Tom Tromey - - * vm/reference/sun/reflect/misc/ReflectUtil.java: Moved... - * vm/reference/sun/misc/ReflectUtil.java: ...from here. - 2006-06-16 Keith Seitz * gnu/classpath/jdwp/event/EventManager.java (getDefault): Redo @@ -5317,11 +14958,15 @@ 2006-06-16 Tom Tromey - * NEWS: Updated for JSR 166. - * vm/reference/sun/reflect/Reflection.java (verifyMemberAccess): - Removed. - (getCallerClass): Now static. - * vm/reference/sun/reflect/misc/ReflectUtil.java: New file. + * NEWS: Updated for JSR 166. + +2006-06-16 Tom Tromey + + * lib/Makefile.am (compile_classpath): Added jsr166. + * configure.ac: Added external/jsr166/Makefile. + * external/Makefile.am (SUBDIRS): Added jsr166. + * external/jsr166/Makefile.am: New file. + * lib/gen-classlist.sh.in: Look in external/jsr166. 2006-06-16 Kyle Galloway @@ -5336,7 +14981,22 @@ 2006-06-16 Tom Tromey - * external/jsr166: Removed files from cvs trunk. + Imported JSR 166 reference implementation: + * .classpath: Added external/jsr166. + * java/util/concurrent/CopyOnWriteArrayList.java: New file. + * java/util/AbstractQueue.java: Removed. + * java/util/Queue.java: Removed. + * external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java + (runPeriodic): Added explicit cast. + * external/jsr166/java/util/ArrayDeque.java (clone): Use + elements.clone. + +2006-06-16 Tom Tromey + + * vm/reference/sun/reflect/Reflection.java (verifyMemberAccess): + Removed. + (getCallerClass): Now static. + * vm/reference/sun/reflect/misc/ReflectUtil.java: New file. 2006-06-16 Lillian Angel @@ -5424,6 +15084,14 @@ (drawImage): Don't use setClip() but instead clipRect() to intersect the current clip with a new one. +2006-06-15 Tom Tromey + + * scripts/sanitize-jsr166: New file. + * external/jsr166/IMPORTING: New file. + * vm/reference/sun/reflect/Reflection.java: New file. + * vm/reference/gnu/classpath/Unsafe.java: Moved... + * vm/reference/sun/misc/Unsafe.java: ...here. + 2006-06-15 Thomas Fitzsimmons * configure.ac: Rename appletviewer to gappletviewer, jarsigner to @@ -5555,6 +15223,14 @@ (writeShape): Likewise, * java/awt/Shape.java: Small updates to API docs. +2006-06-14 Andrew John Hughes + + * javax/naming/InitialContext.java: + (list(javax.naming.Name)): Fixed generic type. + (list(String)): Likewise. + (listBindings(javax.naming.Name)): Likewise. + (listBindings(String)): Likewise. + 2006-06-14 Roman Kennke * javax/swing/plaf/basic/BasicComboBoxUI.java @@ -6592,10 +16268,6 @@ * java/util/InputMismatchException.java: Documented. - -2005-04-20 Tom Tromey - - * java/util/InputMismatchException.java: New file. 2006-06-07 Andreas Tobler @@ -6703,13 +16375,6 @@ (clip(Shape)): Implemented correctly, so that the current shape gets intersected by the parameter shape. -2006-06-07 Andrew John Hughes - - * java/math/BigDecimal.java: - (compareTo(Object)): Make this call the other - one. - (compareTo(BigDecimal)): Recreated. - 2006-06-07 Lillian Angel * javax/swing/plaf/basic/BasicTabbedPaneUI.java @@ -7177,44 +16842,13 @@ * java/util/Formatter.java: Documented. -2006-03-20 Andrew John Hughes - - * java/util/Formatter.java: - Make the class final. - -2005-09-26 Tom Tromey - - * java/util/Formatter.java (format): Set fmtLocale. - (applyLocalization): New method. - (basicIntegralConversion): Likewise. - (hexOrOctalConversion): Use it. - (decimalConversion): New method. - (format): Use decimalConversion, dateTimeConversion. - (genericFormat): Upper-case earlier. Justify correctly. - (singleDateTimeConversion): New method. - (dateTimeConversion): Likewise. - -2005-09-25 Tom Tromey - - * java/util/Formatter.java (lineSeparator): Use SystemProperties. +2006-06-04 Tom Tromey -2005-09-24 Tom Tromey - - * java/util/FormattableFlags.java (PLUS, SPACE, ZERO, COMMA, - PAREN): New constants. - * java/util/Formattable.java: New file. - * java/util/Formatter.java: New file. - -2005-08-13 Tom Tromey - - * java/util/FormattableFlags.java: New file. - -2006-06-04 Sven de Marothy - - * gnu/java/awt/peer/gtk/GtkComponentPeer.java - (createVolatileImage): Pass peer to VolatileImage constructor. - * java/awt/Component.java - (createVolatileImage): Call peer method directly. + * javax/naming/Context.java (list): Genericized. + (listBindings): Likewise. + * javax/naming/Reference.java (addrs): Genericized. + * javax/naming/InitialContext.java (myProps): Fixed type. + (init): Genericized. 2006-06-04 Andrew John Hughes @@ -7233,59 +16867,19 @@ * java/util/UnknownFormatFlagsException.java: Documented. -2005-08-13 Tom Tromey - - * java/util/UnknownFormatConversionException.java - (serialVersionUID): New field. - (s): Renamed from 'conv' for serialization. - * java/util/MissingFormatWidthException.java (serialVersionUID): - New field. - (s): Renamed from 'width' for serialization. - * java/util/MissingFormatArgumentException.java - (serialVersionUID): New field. - (s): Renamed from 'spec' for serialization. - * java/util/IllegalFormatWidthException.java (serialVersionUID): - New field. - (w): Renamed from 'width' for serialization. - * java/util/IllegalFormatPrecisionException.java - (serialVersionUID): New field. - (p): Renamed from 'precision' for serialization. - * java/util/IllegalFormatFlagsException.java (serialVersionUID): - New field. - * java/util/IllegalFormatConversionException.java - (serialVersionUID): New field. - (c): Renamed from 'conv' for serialization. - (arg): Renamed from 'argClass' for serialization. - * java/util/IllegalFormatCodePointException.java - (serialVersionUID): New field. - (c): Renamed from 'codepoint' for serialization. - * java/util/FormatFlagsConversionMismatchException.java - (serialVersionUID): New field. - (f): Renamed from 'flags' for serialization. - (c): Renamed from 'conversion' for serialization. - * java/util/DuplicateFormatFlagsException.java (serialVersionUID): - New field. - * java/util/IllegalFormatException.java (serialVersionUID): New - field. - * java/util/FormatterClosedException.java (serialVersionUID): New - field. +2006-06-04 Andrew John Hughes -2005-04-20 Tom Tromey - - * java/util/DuplicateFormatFlagsException.java: New file. - * java/util/FormatFlagsConversionMismatchException.java: New file. - * java/util/FormatterClosedException.java: New file. - * java/util/IllegalFormatCodePointException.java: New file. - * java/util/IllegalFormatConversionException.java: New file. - * java/util/UnknownFormatFlagsException.java: New file. - * java/util/UnknownFormatConversionException.java: New file. - * java/util/MissingFormatWidthException.java: New file. - * java/util/MissingFormatArgumentException.java: New file. - * java/util/IllegalFormatWidthException.java: New file. - * java/util/IllegalFormatPrecisionException.java: New file. - * java/util/IllegalFormatFlagsException.java: New file. - * java/util/IllegalFormatException.java: New file. + * java/lang/System.java: + (getenv()): Handle cases where split only + returns an array of size 1. + +2006-06-04 Sven de Marothy + * gnu/java/awt/peer/gtk/GtkComponentPeer.java + (createVolatileImage): Pass peer to VolatileImage constructor. + * java/awt/Component.java + (createVolatileImage): Call peer method directly. + 2006-06-04 Sven de Marothy * gnu/java/awt/peer/gtk/CairoSurface.java @@ -7299,130 +16893,6 @@ (getFlippedBuffer): New method * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c Avoid window casts. - -2006-03-20 Andrew John Hughes - - * java/lang/System.java: - (nanoTime()): Documented. - -2006-03-20 Tom Tromey - - * java/lang/System.java: - (nanoTime()): Implemented. - -2006-03-01 Anthony Balkissoon - - * java/math/BigDecimal.java: - (precision): Fixed overflow problem with large numbers. - (longValueExact): New method. - (intValueExact): Likewise. - (byteValueExact): Likewise. - (shortValueExact): Likewise. - -2006-03-01 Anthony Balkissoon - - * java/math/BigDecimal.java: - (remainder(BigDecimal)): New method. - (divideAndRemainder(BigDecimal)): Likewise. - (divideToIntegralValue(BigDecimal)): Likewise. - (floor): New implementation method. - -2006-02-28 Anthony Balkissoon - - * java/math/BigDecimal.java: - (divide(BigDecimal, int, RoundingMode)): New method. - (divide(BigDecimal, RoundingMode)): Likewise. - (divide(BigDecimal, int, int)): Removed incorrect throwing of exception - when the new scale is < 0. - (setScale(int, RoundingMode)): New method. - (ulp): Likewise. - -2006-02-27 Anthony Balkissoon - - * java/math/BigDecimal.java: Replaced occurences of BigInteger.valueOf - with BigInteger.ZERO, BigInteger.ONE, BigInteger.TEN where appropriate. - (add(BigDecimal, MathContext)): New method. - (subtract(BigDecimal, MathContext)): Likewise. - (precision): Fixed to correctly handle BigIntegers with more than 19 - digits. - (pow(int, MathContext)): New method. - -2006-02-27 Anthony Balkissoon - - * java/math/BigDecimal.java: Added @throws clause to constructors. - (mathContext): Removed this unneeded field. - (BigDecimal(int, MathContext)): New constructor. - (BigDecimal(BigInteger, int, MathContext)): Likewise. - (multiply(BigDecimal, MathContext)): New method. - (negate(MathContext)): Likewise. - (plus(MathContext)): Likewise. - (numDigitsInLong): Fixed to properly handle negatives. - -2006-02-24 Anthony Balkissoon - - * java/math/BigDecimal.java: - (BigDecimal(long, MathContext)): New constructor. - (BigDecimal(BigInteger, MathContext)): Likewise. - (BigDecimal(String, MathContext)): Likewise. - (BigDecimal(double, MathContext)): Likewise. - (round): Fixed a typo where the precision field was used instead of a - call to the precision method, and also store the new precision in the - returned BigDecimal. - (abs(MathContext)): New method. - -2006-02-24 Anthony Balkissoon - - * java/math/BigDecimal.java - (toBigInteger): Fixed problem where this method couldn't handle - negative values for scale. - (toBigIntegerExact): New method. - (stripTrailingZeros): Likewise. - -2006-02-23 Anthony Balkissoon - - * java/math/BigDecimal.java: - (toString): Fixed a problem where the negative sign was being displayed - twice in the exponent. - (toEngineeringString): New method. - (toPlainString): Likewise. - (pow): Likewise. - -2006-02-23 Anthony Balkissoon - - * java/math/BigDecimal.java: - (toString): Rewrote this method to behave as specified. Added API - comments to explain behaviour. - (scaleByPowerOfTen): New method. - -2006-02-22 Anthony Balkissoon - - * java/math/BigDecimal.java: - (BigDecimal(char[], int, int, MathContext)): New constructor. - (BigDecimal(char[], MathContext)): Likewise. - (BigDecimal(char[])): Likewise. - (BigDecimal(char[], int, int)): Likewise. - (BigDecimal(String)): Fixed handling of exponent and scale. - -2006-02-21 Anthony Balkissoon - - * java/math/BigDecimal.java: - (mathContext): New field. - (precision): Likewise. - (BigDecimal(int)): New constructor. - (BigDecimal(long)): Likewise. - (BigDecimal(BigInteger)): Added API docs. - (BigDecimal(BigInteger, int)): Removed incorrect NumberFormatException - and added API docs. - (plus): New method. - (round): Likewise. - (precision): Likewise. - (valueOf): Likewise. - (numDigitsInLong): New implementation method. - -2006-02-21 Anthony Balkissoon - - * java/math/MathContext.java: New class. - 2006-06-04 Andrew John Hughes * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c: @@ -7495,11 +16965,17 @@ * java/lang/annotation/IncompleteAnnotationException.java: Documented. -2004-08-07 Tom Tromey - - * java/lang/annotation/IncompleteAnnotationException.java: New - file. +2006-06-03 Andrew John Hughes + * java/lang/ProcessBuilder.java: + Documented. + (environment): Create as a copy. + * java/lang/System.java: + (EnvironmentMap.EnvironmentMap(Map)): + New constructor. + (EnvironmentMap.put(String,String)): Override superclass + method with checks for nulls and non-Strings. + 2006-06-02 Sven de Marothy * gnu/java/awt/peer/gtk/CairoGraphics2D.java @@ -8187,11 +17663,6 @@ * native/jni/gtk-peer/gtkpeer.h Remove graphics2d structure. -2006-05-29 Mark Wielaard - - * java/io/ObjectStreamConstants.java: Removed double declaration - of SC_ENUM. - 2006-05-29 Audrius Meskauskas * gnu/java/awt/peer/gtk/GdkGraphics2D.java (copying constructor): @@ -9532,6 +19003,14 @@ 2006-05-15 Tom Tromey + * java/text/MessageFormat.java (format): Now varargs. + +2006-05-15 Tom Tromey + + * java/lang/Thread.java (State): Fixed typo. + +2006-05-15 Tom Tromey + * java/net/URLClassLoader.java: Moved inner classes to gnu.java.net.loader. (factoryCache): Changed type. @@ -9572,6 +19051,19 @@ Announce inclusion of appletviewer. * INSTALL: Note gcjwebplugin dependencies. +2006-05-15 Mark Wielaard + + * configure.ac (VERSION): Set to 0.91-generics. + +2006-05-15 Mark Wielaard + + * NEWS: Add release date and VMClassLoader.getBootPackages() + changes. + +2006-05-15 Christian Thalinger + + * README: Added CACAO to list of VMs. + 2006-05-15 Audrius Meskauskas * javax/swing/RepaintManager.java (paintDirtyRegions): @@ -9714,11 +19206,6 @@ * java/awt/Graphics2D.java: Added some API doc comments. -2006-05-15 Mark Wielaard - - * NEWS: Add release date and VMClassLoader.getBootPackages() - changes. - 2006-05-15 David Gilbert * javax/swing/JTabbedPane.java @@ -9764,10 +19251,6 @@ (getPageAttributes): New method. (setPageable,cancel,isCancelled): Implement. -2006-05-15 Christian Thalinger - - * README: Added CACAO to list of VMs. - 2006-05-14 David Gilbert * javax/swing/JCheckBoxMenuItem.java @@ -9827,12 +19310,46 @@ * native/jni/java-net/javanet.c (_javanet_accept): Don't use C++ comments. +2006-05-14 Chris Burdess + + * gnu/xml/dom/DomNode.java: Permit comments and PIs in doctype + nodes to be preserved during cloneNode. + 2006-05-14 Mark Wielaard PR 27459 * native/jni/java-net/javanet.c (_javanet_accept): Reset the inherited timeout on socket. +2006-05-14 Lillian Angel + + * java/util/SimpleTimeZone.java: Reverted patch. + (SimpleTimeZone): Throw exception if startMonth == + endMonth. + (SimpleTimeZone): Likewise. + (checkRule): Rewritten to properly check all values (more + efficently). + This code is now more stable, at least less buggy than before. + Fixed API documentation. + (setStartRule): Moved checkRule call to end. + (setStartRule): Likewise. + (setEndRule): Likewise. + (setEndRule): Likewise. + +2006-05-14 Audrius Meskauskas + + * javax/swing/tree/DefaultTreeSelectionModel.java (leadRow): + Initialise to -1. + +2006-05-14 Robert Schuster + + PR classpath/27595 + * javax/swing/text/AbstractDocument.java: + (insertString): Flipped if-expression and its blocks. + (remove): Dito. + (replace): Flipped if-expression and its blocks, added note, invoke + insertString and remove instead of insertStringImpl and removeImpl. + 2006-05-14 Raif S. Naffah * tools/gnu/classpath/tools/jarsigner/Main.java (main): Formatting. @@ -10040,13 +19557,13 @@ Set correct socket parameters SO_SNDTIMEO and SO_RCVTIMEO. 2006-05-12 Sven de Marothy - + * gnu/javax/print/CupsServer.java (CupsServer): Make the Cups host configurable. * java/lang/System.java: Document the system property. 2006-05-12 Roman Kennke - + * javax/swing/border/TitledBorder.java (paintBorder): Rewritten for simplicity and correctness. (layoutBorderWithTitle): New helper method. @@ -10056,9 +19573,9 @@ (getRealJustification): Removed. (getMeasurements): Removed. (Measurements): Removed. - + 2006-05-12 David Gilbert - + * javax/swing/plaf/basic/BasicPanelUI.java (sharedUI): New field, (createUI): Return a shared instance rather than a new instance, @@ -10143,14 +19660,14 @@ * gnu/java/awt/font/GNUGlyphVector.java (GNUGlyphVector): Don't apply the font renderer context's transform. - + 2006-05-11 Mark Wielaard * java/util/logging/Logger.java (global): Initialize inside static PrivilegedAction. 2006-05-11 David Gilbert - + * javax/swing/JFrame.java (EXIT_ON_CLOSE): Added note to API docs, (close_action): Renamed closeAction, @@ -10160,31 +19677,31 @@ (getDefaultCloseOperation): Updated for renamed field, added API docs, (processWindowEvent): Updated for renamed field, (setDefaultCloseOperation): Likewise, and updated API docs. - + 2006-05-11 David Gilbert - + * javax/swing/JFrame.java (paramString): Reimplemented, * javax/swing/SwingUtilities.java (convertWindowConstantToString): New method. - + 2006-05-11 David Gilbert - + * javax/swing/WindowConstants.java: Updated API docs. - + 2006-05-11 David Gilbert - + * javax/swing/plaf/basic/BasicToggleButtonUI.java: Updated API docs, (createUI): Removed 'final' qualifier for parameter, (paint): Reformatted. - + 2006-05-11 David Gilbert - + * javax/swing/plaf/basic/BasicCheckBoxUI.java: Added API docs plus, (createUI): Removed 'final' qualifier on method argument. - + 2006-05-11 David Gilbert - + * javax/swing/plaf/basic/BasicCheckBoxUI.java (getDefaultIcon): Removed this redundant method. @@ -10197,12 +19714,12 @@ * java/awt/Component.java: (dispatchEventImpl): Added comment. - -2006-05-11 Mark Wielaard - + + 2006-05-11 Mark Wielaard + * tools/gnu/classpath/tools/appletviewer/Main.java (main): Cast Option constructor null argument to String. - + 2006-05-11 Mark Wielaard * java/awt/geom/GeneralPath.java (WIND_EVEN_ODD, WIND_NON_ZERO): @@ -10224,21 +19741,22 @@ 2006-05-10 Roman Kennke - PR 27481 + PR classpath/27481 * javax/swing/plaf/basic/BasicInternalFrameUI.java (installDefaults): Set background of content pane to null, if no custom color has been installed by the application yet. -2006-05-10 Sven de Marothy - - * java/awt/print/PrinterJob.java: - (lookupPrintServices): Un-comment-out. - 2006-05-10 Roman Kennke + PR classpath/27481 * javax/swing/JRootPane.java (createContentPane): Don't set background to null. +2006-05-10 Sven de Marothy + + * java/awt/print/PrinterJob.java: + (lookupPrintServices): Un-comment-out. + 2006-05-11 Raif S. Naffah * tools/gnu/classpath/tools/getopt/OptionGroup.java @@ -10373,7 +19891,7 @@ 2006-05-09 Robert Schuster - Fixed PR24216. + PR classpath/24216 * javax/swing/text/AbstractDocument.java: (insertString): Added more documentation, added argument check. (remove): Added more documentation. @@ -11714,6 +21232,14 @@ * javax/swing/tree/DefaultTreeModel.java (reload): Implemented. (reload(TreeNode)): Implemented. +2006-04-25 Tom Tromey + + * javax/swing/JComboBox.java (AccessibleJComboBox): Now public. + * javax/swing/tree/VariableHeightLayoutCache.java + (getVisiblePathsFrom): Genericized. + * javax/swing/tree/FixedHeightLayoutCache.java (getVisiblePathsFrom): + Genericized. + 2006-04-25 Audrius Meskauskas * javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed): @@ -11881,40 +21407,16 @@ (updateClip): New method. (clipShape): New method. -2006-04-23 Audrius Meskauskas - - * examples/gnu/classpath/examples/swing/TreeDemo.java: - (createContent): Added check box to swith between single and - multiple selection. - * javax/swing/JTree.java (leadSelectionPath): Removed. - (addSelectionInterval): Explained. (getLeadSelectionPath): - Request the path from model. (getPathsBetweenRows): Explained. - (setLeadSelectionPath): Set the path in model. - * javax/swing/plaf/basic/BasicTreeUI.java - (TreeIncrementAction.actionPerformed, isMultiSelectionEvent, - isToggleSelectionEvent, selectPath, selectPathForEvent): Rewritten. - (MouseHandler.mousePressed): Call selectPathForEvent. - -2006-04-23 Roman Kennke - - * gnu/java/awt/java2d/AbstractGraphics2D.java: New file. - 2006-04-23 Jeroen Frijters - * NEWS: Added entry about new Package constructor. * java/lang/Package.java: Added compatibility constructor to ease VM interface migration. 2006-04-23 Jeroen Frijters - * NEWS: Added information about annotation support. - * java/lang/Class.java: Implement AnnotatedElement. - (equals): Reformatted to match generics branch. - (getEnumConstants): Implemented. - (getAnnotation, getAnnotations, getDeclaredAnnotations, - isAnnotationPresent): Merged from generics branch. - * vm/reference/java/lang/VMClass.java (getDeclaredAnnotations): - New method. + * java/lang/Class.java (getEnumConstants): Implemented without + delegating to VMClass. + * vm/reference/java/lang/VMClass.java (getEnumConstants): Removed. 2006-04-23 Jeroen Frijters @@ -11922,17 +21424,28 @@ Package constructor. * java/lang/Package.java (Package): Added ClassLoader argument. (loader): New field. - (getAnnotation, getAnnotations, getDeclaredAnnotations, - isAnnotationPresent): Merged from generics branch. + (getDeclaredAnnotations): Implemented without help from VMPackage. * vm/reference/java/lang/VMClassLoader.java (static): Added argument to Package constructor. + * vm/reference/java/lang/VMPackage.java: Removed. + +2006-04-23 Audrius Meskauskas + + * examples/gnu/classpath/examples/swing/TreeDemo.java: + (createContent): Added check box to swith between single and + multiple selection. + * javax/swing/JTree.java (leadSelectionPath): Removed. + (addSelectionInterval): Explained. (getLeadSelectionPath): + Request the path from model. (getPathsBetweenRows): Explained. + (setLeadSelectionPath): Set the path in model. + * javax/swing/plaf/basic/BasicTreeUI.java + (TreeIncrementAction.actionPerformed, isMultiSelectionEvent, + isToggleSelectionEvent, selectPath, selectPathForEvent): Rewritten. + (MouseHandler.mousePressed): Call selectPathForEvent. -2005-12-14 Nicolas Geoffray +2006-04-23 Roman Kennke - * java/lang/ClassLoader - (defineClass(String,byte[],int,int,ProtectionDomain)): - Calls VMClassLoader.defineClassWithTransformers instead - of VMClassLoader.defineClass. + * gnu/java/awt/java2d/AbstractGraphics2D.java: New file. 2006-04-22 Andrew John Hughes @@ -11940,18 +21453,6 @@ Mention changes to VMProcess and VMSystem. * doc/vmintegration.texinfo: Change documentation on VMProcess and VMSystem. - * java/lang/reflect/Modifier.java: - (toString(int,StringBuilder)): Merged from generics - branch. - * vm/reference/java/lang/reflect/Constructor.java - (toString()): Use StringBuilder. - (toGenericString()): Likewise. - * vm/reference/java/lang/reflect/Field.java: - (toString()): Use StringBuilder. - (toGenericString()): Likewise. - * vm/reference/java/lang/reflect/Method.java - (toString()): Use StringBuilder. - (toGenericString()): Likewise. * include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h, * include/gnu_java_awt_peer_gtk_GdkFontPeer.h, * include/gnu_java_awt_peer_gtk_GdkGraphics.h, @@ -12053,40 +21554,6 @@ * include/java_lang_VMSystem.h: Regenerated with GCJ 4.1. -2005-12-05 Casey Marshall - - * native/jni/classpath/jcl.h (environ): define, or declare - 'extern.' - * native/jni/java-lang/java_lang_VMProcess.c: include . - Remove 'extern' define. - * native/jni/java-lang/java_lang_VMSystem.c - (Java_java_lang_VMSystem_environ): don't declare 'environ.' - -2005-09-25 Jeroen Frijters - - * java/lang/System.java, - vm/reference/java/lang/VMSystem.java: Removed generic type - from VMSystem.environ() signature. - -2005-05-04 Tom Tromey - - * native/jni/java-lang/java_lang_VMProcess.c - (Java_java_lang_VMProcess_nativeSpawn): Added 'redirect' - argument. Use defines instead of contents. - * vm/reference/java/lang/VMProcess.java (redirect): New field. - (spawn): Updated. - (setProcessInfo): Updated. - (VMProcess): Added 'redirect' argument. - (nativeSpawn): Likewise. - (exec): New overload. - -2005-01-20 Andrew John Hughes - - * include/java_lang_VMSystem.h: - (Java_java_lang_VMSystem_environ): added - * vm/reference/java/lang/VMSystem.java: - (environ()): new native method - 2006-04-22 Casey Marshall Fixes PR classpath/27228. @@ -12156,6 +21623,13 @@ * java/sql/Time.java: Likewise. * java/sql/Timestamp.java: Likewise. +2006-04-21 Jeroen Frijters + + * java/lang/reflect/AccessibleObject.java: + Implemented AnnotatedElement. + (getAnnotation, getAnnotations, getDeclaredAnnotations, + isAnnotationPresent): New methods. + 2006-04-21 Tom Tromey PR classpath/27163: @@ -12184,13 +21658,6 @@ (SpinnerDateModel(Date, Comparable, Comparable, int)): Fix argument checking to call compareTo() on start and end. -2006-04-21 Jeroen Frijters - - * java/lang/reflect/AccessibleObject.java: - Implemented AnnotatedElement. - (getAnnotation, getAnnotations, getDeclaredAnnotations, - isAnnotationPresent): New methods. - 2006-04-21 David Gilbert * javax/swing/border/AbstractBorder.java: API doc updates, @@ -12639,27 +22106,12 @@ (createActionMap): Modified actions to fetch slider/ui from the event source. -2006-04-17 David Gilbert - - * javax/swing/JToolBar.java - (AccessibleJToolBar.AccessibleJToolBar()): Updated API docs, - (AccessibleJToolBar.getAccessibleStateSet): Implemented, - (AccessibleJToolBar.getAccessibleRole): Updated API docs, - (getAccessibleContext): Likewise. - 2006-04-17 Andrew John Hughes * java/lang/Enum.java: Documented. 2006-04-17 Andrew John Hughes - * NEWS: - Mention merge of instrumentation classes. - * doc/vmintegration.texinfo: - Move instrumentation to correct section. - -2006-04-17 Andrew John Hughes - * gnu/java/lang/InstrumentationImpl.java: Moved from java.lang. * java/lang/InstrumentationImpl.java: @@ -12670,43 +22122,19 @@ Corrected reference to InstrumentationImpl. * vm/reference/java/lang/VMInstrumentationImpl.java: Removed. - -2005-12-14 Nicolas Geoffray - - * vm/reference/java/lang/VMClassLoader - (defineClassWithTransformers): New method. - (instrumenter): New Field. - -2005-12-04 Nicolas Geoffray - - * vm/reference/java/lang/VMInstrumentationImpl.java - (redefineClasses): Added an extra parameter of type - java.lang.instrument.Instrument. - * java/lang/InstrumentationImpl.java - (redefineClasses): Added the Instrumentation object - to the arguments of VMInstrumentationImpl.redefineClasses - call. - -2005-12-03 Nicolas Geoffray - * java/lang/InstrumentationImpl.java: - New file. - * vm/reference/java/lang/VMInstrumentationImpl.java: - New file. - -2006-04-17 Jeroen Frijters - - * java/util/Collection.java: Implemented java.lang.Iterable. +2006-04-17 Andrew John Hughes -2006-04-17 Jeroen Frijters + * java/lang/annotation/Annotation.java: + Documented. + +2006-04-17 David Gilbert - * java/lang/Boolean.java: Implemented Comparable. - * java/lang/ClassLoader.java - (getResources): Not final anymore in 1.5. - * java/lang/Enum.java, java/lang/Iterable.java: - Copied from generics branch. - * java/lang/Thread.java (destroy): Marked deprecated. - * java/lang/ThreadLocal.java (remove): New method. + * javax/swing/JToolBar.java + (AccessibleJToolBar.AccessibleJToolBar()): Updated API docs, + (AccessibleJToolBar.getAccessibleStateSet): Implemented, + (AccessibleJToolBar.getAccessibleRole): Updated API docs, + (getAccessibleContext): Likewise. 2006-04-17 Dalibor Topic @@ -12783,59 +22211,6 @@ (getActionMap): New method, (createActionMap): New method. -2006-04-17 Andrew John Hughes - - * java/lang/annotation/Annotation.java: - Documented. - -2005-06-09 Andrew John Hughes - - * java/lang/reflect/AnnotatedElement.java: Documented. - -2005-01-07 Andrew John Hughes - - * java/lang/reflect/AnnotatedElement.java: - Added import of java.lang.annotation.Annotation - -2004-08-26 Tom Tromey - - * java/lang/reflect/AnnotatedElement.java: New file. - -2004-08-07 Tom Tromey - - * java/lang/annotation/Annotation.java: New file. - -2005-12-13 Tom Tromey - - * java/lang/instrument/ClassDefinition.java: Reformatted. - * java/lang/instrument/UnmodifiableClassException.java: Reformatted. - * java/lang/instrument/IllegalClassFormatException.java: Reformatted. - -2005-12-13 Tom Tromey - - * java/lang/instrument/ClassDefinition.java (ClassDefinition): Now - public. - -2005-12-05 Tom Tromey - - * java/lang/instrument/Instrumentation.java (redefineClasses): Javadoc - fix. - * java/lang/instrument/ClassFileTransformer.java (transform): Javadoc - fix. - -2005-12-03 Nicolas Geoffray - - * java/lang/instrument: New directory. - * java/lang/instrument/ClassDefinition.java: - New file. - * java/lang/instrument/ClassFileTransformer.java: - New file. - * java/lang/instrument/IllegalClassFormatException.java: - New file. - * java/lang/instrument/Instrumentation.java: - New file. - * java/lang/instrument/UnmodifiableClassException.java: - New file. 2006-04-16 Andrew John Hughes @@ -12890,13 +22265,13 @@ (INDETERMINATE): Added field. (MANAGES_DESCENDANTS): Likewise. (TRUNCATED): Likewise. - * vm/reference/java/lang/reflect/Constructor.java: - Fixed copyright header to match generics branch. - * vm/reference/java/lang/reflect/Field.java: - Fixed copyright header to match generics branch. - (toGenericString()): Ported from generics branch. - (getGenericType()): Likewise. - (getSignature()): Likewise. + +2006-04-14 Tom Tromey + + * javax/swing/tree/DefaultTreeSelectionModel.java (getListeners): + Genericized. + * javax/swing/tree/AbstractLayoutCache.java (getVisiblePathsFrom): + Genericized. 2006-04-14 Robert Schuster @@ -12983,6 +22358,11 @@ (AccessibleJSplitPane.getMinimumAccessibleValue): Implemented, (AccessibleJSplitPane.getMaximumAccessibleValue): Implemented. +2006-04-10 Tom Tromey + + * javax/imageio/metadata/IIOMetadataFormatImpl.java (addObjectValue): + Fixed parameter bounds. + 2006-04-13 Andrew John Hughes * gnu/javax/crypto/assembly/Assembly.java, @@ -14152,125 +23532,6 @@ (getInputStream): Override available function for InflaterInputStream instance. -2006-04-03 Andrew John Hughes - - * gnu/java/lang/reflect/ClassSignatureParser.java, - * gnu/java/lang/reflect/FieldSignatureParser.java, - * gnu/java/lang/reflect/GenericSignatureParser.java, - * gnu/java/lang/reflect/MethodSignatureParser.java, - * gnu/java/lang/reflect/TypeImpl.java, - * java/lang/Class.java, - * java/lang/reflect/GenericDeclaration.java, - * java/lang/reflect/MalformedParameterizedTypeException.java, - * java/lang/reflect/TypeVariable.java, - * java/util/Arrays.java, - * vm/reference/java/lang/VMClass.java, - * vm/reference/java/lang/reflect/Constructor.java, - * vm/reference/java/lang/reflect/Method.java: - Incorporate changes from the generics branch. - -2005-10-01 Jeroen Frijters - - * vm/reference/java/lang/reflect/Constructor.java - (getSignature): New method. - (getGenericExceptionTypes): New method. - (getGenericParameterTypes): New method. - * vm/reference/java/lang/reflect/Method.java - (getSignature): New method. - (getGenericExceptionTypes): New method. - (getGenericParameterTypes): New method. - (getGenericReturnType): New method. - -2005-09-30 Jeroen Frijters - - * gnu/java/lang/reflect/FieldSignatureParser.java: New file. - * gnu/java/lang/reflect/ClassSignatureParser.java, - gnu/java/lang/reflect/GenericSignatureParser.java, - gnu/java/lang/reflect/MethodSignatureParser.java: - Finished implementation. - -2005-09-25 Jeroen Frijters - - * gnu/java/lang/reflect/ClassSignatureParser.java, - gnu/java/lang/reflect/GenericSignatureParser.java, - gnu/java/lang/reflect/MethodSignatureParser.java: New files. - * java/lang/Class.java - (getGenericInterfaces, getGenericSuperclass, getTypeParameters): - Implemented. - * vm/reference/java/lang/VMClass.java - (getSimpleName, getDeclaredAnnotations, getCanonicalName, - getEnclosingClass, getEnclosingConstructor, getEnclosingMethod, - isAnonymousClass, isLocalClass, isMemberClass): - Removed generic types from signatures. - (getGenericInterfaces, getGenericSuperclass, getTypeParameters): - Removed. - (getClassSignature): New method. - * vm/reference/java/lang/reflect/Constructor.java - (getTypeParameters): Implemented. - * vm/reference/java/lang/reflect/Method.java - (getTypeParameters, getSignature): New methods. - -2005-06-09 Andrew John Hughes - - * java/lang/Class.java: - (asSubclass(Class)): Documented. - (getCanonicalName()): Implemented. - (getEnclosingClass()): Implemented. - (getEnclosingConstructor()): Implemented. - (getEnclosingMethod()): Implemented. - (getGenericInterfaces()): Implemented. - (getGenericSuperclass()): Implemented. - (getTypeParameters()): Implemented. - (isAnonymousClass()): Implemented. - (isLocalClass()): Implemented. - (isMemberClass()): Implemented. - * vm/reference/java/lang/VMClass.java: - (getSuperClass(Class)): Updated return type. - (getSimpleName(Class)): Use VM methods directly. - (getCanonicalName(Class)): Implemented. - (getEnclosingClass(Class)): New native method. - (getEnclosingConstructor(Class)): New native method. - (getEnclosingMethod(Class)): New native method. - (getGenericInterfaces(Class)): New native method. - (getGenericSuperclass(Class)): New native method. - (getTypeParameters(Class)): New native method. - (isAnonymousClass(Class)): New native method. - (isLocalClass(Class)): New native method. - (isMemberClass(Class)): New native method. - * vm/reference/java/lang/reflect/Constructor.java: - (getTypeParameters()): Changed to native method. - -2005-05-05 Andrew John Hughes - - * java/lang/Class.java: - (getSimpleName()): Implemented. - * vm/reference/java/lang/VMClass.java: - (getSimpleName()): Reference implementation. - -2005-04-20 Tom Tromey - - * java/util/Arrays.java (hashCode): New methods. - (deepHashCode): New method. - (deepEquals): Likewise. - (toString): New methods. - (deepToString): New method. - -2005-04-04 Andrew John Hughes - - * java/lang/Class.java: - (isEnum()): New method implemented. - (isSynthetic()): New method implemented. - (isAnnotation()): New method implemented. - * vm/reference/java/lang/VMClass.java: - (isEnum()): New native method. - (isSynthetic()): New native method. - (isAnnotation()): New native method. - -2005-03-21 Andrew John Hughes - - * java/lang/Class.java: - Implements java.lang.reflect.Type - 2006-04-03 Thomas Fitzsimmons * javax/imageio/plugins/jpeg/JPEGImageReadParam.java: New file. @@ -14379,6 +23640,29 @@ (Logger): Set parent to root. (setParent): Directly check root field. +2006-04-02 Andrew John Hughes + + * java/util/Collections.java: + (binarySearch(List, T)): Fixed signature. + (unmodifiableList(List)): Likewise. + (UnmodifiableList(List)): Fixed constructor. + (UnmodifiableRandomAccessList(List)): Likewise. + (unmodifiableMap(Map)): Fixed signature. + (UnmodifiableMap(Map)): Fixed constructor. + (unmodifiableSortedMap(Map)): Fixed signature. + (UnmodifiableSortedMap(Map)): Fixed constructor. + +2006-04-02 Andrew John Hughes + + * java/io/ObjectOutputStream.java: + (writeObject(Object)): Added enum support. + (writeClassDescriptor(ObjectStreamClass)): Likewise. + * java/io/ObjectStreamClass.java: + (isEnum()): New package-private method. + (setFlags(Class)): Added enum support. + * java/io/ObjectStreamConstants.java: + (SC_ENUM): Added. + 2006-04-02 Robert Schuster * javax/swing/text/Segment.java: @@ -14737,6 +24021,14 @@ component after the removal. (removeAll): Set selection to -1 before removing the tabs. +2006-03-29 Andrew John Hughes + + * java/io/ObjectInputStream.java: + (parseContent(byte)): Added enum support. + * java/io/ObjectStreamConstants.java: + (TC_ENUM): Added. + (TC_MAX): Changed to new maximum, TC_ENUM. + 2006-03-29 Lillian Angel Partial fix for bug #26929 @@ -14951,10 +24243,50 @@ (paintRightTabBorder): Likewise. (installDefaults): Fetch tabsOpaque property from the UIDefaults. +2006-03-27 Tom Tromey + + PR classpath/25189: + * java/lang/Enum.java (valueOf): Ensure that the named field + is an enum constant. + (compareTo): Check class of enum. + +2006-03-27 Tom Tromey + + * java/lang/reflect/ParameterizedType.java: Javadoc fix. + +2006-03-27 Tom Tromey + + * vm/reference/java/lang/reflect/Method.java (METHOD_MODIFIERS): + New constant. + (getModifiersInternal): Renamed from getModifiers. + (getModifiers): New method. + (isBridge): Likewise. + (isSynthetic): Likewise. + (isVarArgs): Likewise. + * vm/reference/java/lang/reflect/Field.java (FIELD_MODIFIERS): + New constant. + (getModifiersInternal): Renamed from getModifiers. + (getModifiers): New method. + (isSynthetic): Likewise. + (isEnumConstant): Likewise. + * vm/reference/java/lang/reflect/Constructor.java + (getModifiersInternal): Renamed from getModifiers. + (getModifiers): New method + (CONSTRUCTOR_MODIFIERS): New constant. + (isSynthetic): New method. + (isVarArgs): Likewise. + * java/lang/reflect/Member.java (isSynthetic): New method. + +2006-03-28 Tom Tromey + + * java/net/Proxy.java (TYPE): Added missing ";". + 2006-03-27 Andrew John Hughes - * java/rmi/activation/ActivationGroup_Stub.java: - Made final. + * java/math/RoundingMode.java: + Fixed serialization UID. + * java/net/Proxy.java: + (Type): Likewise. 2006-03-27 Andrew John Hughes @@ -14962,7 +24294,19 @@ (append(char)): Documented. (append(CharSequence)): Likewise. (append(CharSequence,int,int)): Likewise. + +2006-03-27 Jeroen Frijters + + * vm/reference/java/lang/reflect/Constructor.java + (getTypeParameters): Check return value of getSignature for null. + * vm/reference/java/lang/reflect/Method.java + (getTypeParameters): Check return value of getSignature for null. +2006-03-27 Andrew John Hughes + + * java/rmi/activation/ActivationGroup_Stub.java: + Made final. + 2006-03-27 Tom Tromey * java/io/CharArrayWriter.java (append): New overloads. @@ -15038,29 +24382,19 @@ NotImplementedException, (AccessibleJSlider.getAccessibleValue): Updated API docs. -2006-03-26 Tom Tromey +2006-03-26 Andrew John Hughes + + * java/lang/ProcessBuilder.java: + Made final. + +2006-03-26 Andrew John Hughes - * NEWS: Updated. - * vm/reference/java/lang/reflect/Method.java (METHOD_MODIFIERS): - New constant. - (getModifiersInternal): Renamed from getModifiers. - (getModifiers): New method. - (isBridge): Likewise. - (isSynthetic): Likewise. - (isVarArgs): Likewise. - * vm/reference/java/lang/reflect/Field.java (FIELD_MODIFIERS): - New constant. - (getModifiersInternal): Renamed from getModifiers. - (getModifiers): New method. - (isSynthetic): Likewise. - (isEnumConstant): Likewise. - * vm/reference/java/lang/reflect/Constructor.java - (getModifiersInternal): Renamed from getModifiers. - (getModifiers): New method - (CONSTRUCTOR_MODIFIERS): New constant. - (isSynthetic): New method. - (isVarArgs): Likewise. - * java/lang/reflect/Member.java (isSynthetic): New method. + * gnu/java/net/protocol/http/Headers.java: + Match layout of file on HEAD. + * gnu/javax/swing/text/html/parser/htmlValidator.java: + Likewise. + * java/awt/datatransfer/DataFlavor.java + Likewise. 2006-03-26 Andrew John Hughes @@ -15999,6 +25333,48 @@ (setComponent): Fire PropertyChangeEvent, (setTipText): Likewise. +2006-03-20 Andrew John Hughes + + * java/util/Formatter.java: + Make the class final. + +2006-03-20 Andrew John Hughes + + * java/lang/System.java: + (nanoTime()): Documented. + * java/lang/Thread.java: + (setUncaughtExceptionHandler(UncaughtExceptionHandler): + Added docs and security check. + (getUncaughtExceptionHandler()): Documented. + (setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler): + Added docs and security check. + (getDefaultUncaughtExceptionHandler()): Documented. + (getId()): Documented. + (Thread.State): Documented. + * vm/reference/gnu/classpath/Unsafe.java: + Documented. + (getUnsafe()): Updated to handle security. + +2006-03-20 Tom Tromey + + * java/lang/System.java: + (nanoTime()): Implemented. + * java/lang/Thread.java: + (getId()): Implemented. + * java/util/AbstractMap.java: + (SimpleImmutableEntry): New 1.6 class. + (BasicMapEntry): Modified to be SimpleEntry. + * java/util/Collections.java: + Modified to use SimpleEntry. + * java/util/EnumMap.java: Likewise. + * java/util/HashMap.java: Likewise. + * java/util/Hashtable.java: Likewise. + * java/util/TreeMap.java: Likewise. + * vm/reference/gnu/classpath/Unsafe.java: + New class to handle low-level facilities for concurrency. + * vm/reference/java/lang/VMSystem.java: + (nanoTime()): Implemented. + 2006-03-20 Tom Tromey * java/security/cert/PKIXCertPathChecker.java: Javadoc fix. @@ -17641,6 +27017,13 @@ * javax/swing/tree/TreeNode.java: Fixed bad API doc tags, * javax/swing/tree/TreePath.java: Likewise. +2006-03-13 Tom Tromey + + * javax/swing/text/html/StyleSheet.java (removeAttributes): + Genericized. + * javax/swing/plaf/synth/SynthLookAndFeel.java (load): Genericized. + * java/rmi/server/RMIClassLoader.java (loadProxyClass): Genericized. + 2006-03-13 Keith Seitz * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java @@ -18374,6 +27757,12 @@ * .classpath: added exclude pattern on source folders (Makefiles, README and .cvsignore) +2006-03-08 Michael Koch + + * java/net/Proxy.java (NO_PROXY): Made final. + (equals): Likewise. + (hashCode): Likewise. + 2006-03-08 Keith Seitz * vm/reference/gnu/classpath/jdwp/VMMethod.java: New file. @@ -18422,21 +27811,17 @@ (InetSocketAddress(String,int)): Use new private constructor. (createUnresolved): New method. +2006-03-07 Michael Koch + + * gnu/java/net/DefaultProxySelector.java, + java/net/Proxy.java, java/net/ProxySelector.java: + New files. + 2006-03-07 Audrius Meskauskas * java/rmi/server/UID.java (constructor): Assign last and time fields after pause. -2006-03-07 Tom Tromey - - * java/lang/System.java (clearProperty): New method, merged from - generics branch. - (getProperty): Removed 'else'. - (getProperty): Check for empty key. - (setProperty): Likewise. - * gnu/classpath/SystemProperties.java (remove): New method, merged - from generics branch. - 2006-03-07 Audrius Meskauskas * java/rmi/server/UID.java: New file (replacing). @@ -18511,57 +27896,62 @@ 2006-03-07 Audrius Meskauskas * gnu/java/rmi/server/UnicastRef.java, - gnu/java/rmi/server/UnicastServer.java: Formatted. - + * gnu/java/rmi/server/UnicastServer.java: Formatted. + 2006-03-07 Audrius Meskauskas - * gnu/java/rmi/server/CombinedClassLoader.java (findClass, - findLibrary, findResouce, findResources): check all loaders in - array. - + * gnu/java/rmi/server/CombinedClassLoader.java + (findClass, findLibrary, findResouce, findResources): check + all loaders in array. + 2006-03-07 Audrius Meskauskas - PR 25526 - * gnu/java/rmi/dgc/DGCImpl.java (LeaseRecord, leaseCache): Removed. - (RefProtector): new inner class. (dirty): Rewritten. + PR 25526 + * gnu/java/rmi/dgc/DGCImpl.java (LeaseRecord, leaseCache): Removed. + (RefProtector): new inner class. (dirty): Rewritten. * gnu/java/rmi/server/UnicastRef.java (dgcId, dgcInterfaceHash, dgcSequence, DIRTY, this_id): New fields. (equals, hashCode, notifyDGC): new methods. (readExternal): Create LeaseRenewingTask if non local. - * gnu/java/rmi/server/UnicastServer.java (objects): - Use WeakHashMap. (refcache): Use WeakIdentityHashMap. + * gnu/java/rmi/server/UnicastServer.java (objects): + Use WeakHashMap. (refcache): Use WeakIdentityHashMap. (getExported): New method. * gnu/java/rmi/dgc/LeaseRenewingTask.java: New file. - + 2006-03-06 Mark Wielaard * doc/www.gnu.org/announce/20060306.wml: New file. * doc/www.gnu.org/newsitems.txt: Add 0.90 release announcement. * doc/www.gnu.org/downloads/downloads.wml: Add 0.90. - -2006-03-06 Mark Wielaard - - * NEWS: Fix typo. - + 2006-03-06 David Gilbert * javax/swing/plaf/metal/MetalLookAndFeel.java - (initComponentDefaults): Use Boolean.TRUE for - 'CheckBoxMenuItem.borderPainted'. + (initComponentDefaults): Use Boolean.TRUE for + 'CheckBoxMenuItem.borderPainted'. + +2006-03-06 Wolfgang Baer -2006-03-06 Lillian Angel + * gnu/java/net/protocol/http/Headers.java: Added documentation all over. + (dateFormat): Made private. + (put): Replace only the last occurance and the value. + (putAll): Reimplemented with the put method. - PR classpath/26569 +2006-03-06 Lillian Angel + + PR classpath/26569 * java/awt/List.java - (preferredSize): Return the size of the list if the peer is null. + (preferredSize): Return the size of the list if the peer is + null. * gnu/java/awt/peer/gtk/GtkListPeer.java - (preferredSize): Code was returning the minimum size of the list. - Added adjustment to the width of the list so it is a proper size. - + (preferredSize): Code was returning the minimum size of the + list. Added adjustment to the width of the list so it is a + proper size. + 2006-03-06 Wolfgang Baer * gnu/java/net/protocol/http/HTTPURLConnection.java: Organized imports. (getRequestProperty): Remove duplicated null check. - * java/net/URLConnection.java: + * java/net/URLConnection.java: (URLConnection): Javadoc fix. (addRequestProperty): Likewise. (getDefaultRequestProperty): Likewise. @@ -18573,85 +27963,94 @@ (getRequestProperty): Likewise. (setDefaultRequestProperty): Likewise. (setRequestProperty): Likewise. - + +2006-03-06 Robert Schuster + + * examples/gnu/classpath/examples/swing/TextArea.java: New file. + * examples/gnu/classpath/examples/swing/Demo.java: + (mkButtonBar): Changed layout manager to GridLayout, added entry for + textarea example. + (mkMenuBar): Added entry for text area example. + 2006-03-06 Tom Tromey * javax/swing/plaf/synth/Region.java (FILE_CHOOSER): Renamed. (FORMATTED_TEXT_FIELD): Likewise. - + 2006-03-06 Tom Tromey * javax/swing/plaf/synth/SynthPainter.java: Finished. - -2006-03-06 Mark Wielaard - - Fixes bug #26568 reported by Paul Jenner - * native/fdlibm/fdlibm.h (__ieee754_rem_pio2): Return an int32_t. - (isnan): Define explicitly isnan if it is not a macro. - -2006-03-06 Anthony Balkissoon - - * NEWS: Fixed typo. - + 2006-03-06 Robert Schuster * examples/gnu/classpath/examples/swing/Demo.java: (mkMenuBar): Added menu entry that will display the VM's name, version and distributor. - + 2006-03-06 Tom Tromey - + * javax/swing/plaf/synth/SynthLookAndFeel.java (getDescription): Javadoc fix. (getName): Likewise. + +2006-03-06 Raif S. Naffah -2006-03-06 Mark Wielaard - - * configure.ac (VERSION): Set to 0.91-pre. - * NEWS: Add updates for 0.90 release. - -2006-03-06 Robert Schuster - - * javax/swing/text/PlainDocument.java: Fix copyright header, - added author tags. - (insertUpdate): Do not copy the whole document any more, added some - more variables to prevent needless method calls. - -2006-03-06 Christian Thalinger - - * configure.ac: Check for FREETYPE2. This is a reverted patch and - is required on Darwin. - * native/jni/gtk-peer/Makefile.am (AM_LDFLAGS): Added FREETYPE2. - (AM_CFLAGS): Likewise. - + * java/util/jar/Manifest.java: Removed unused imports. + (CRLF): New constant. + (read): Added method documentation. + Use UTF-8 encoding instead of 8859_1. + (write): Added method documentation. + Use BufferedOutputStream (w/ 4K buffer) instead of PrintWriter. + (write_main_section): Replace PrintWriter arg with OutputStream. + Replace JarException with IOException. + (write_version_info): Likewise. + (write_main_attributes): Likewise. + (write_attribute_entry): Likewise. + (write_individual_sections): Likewise. + (write_entry_attributes): Likewise. + (write_header): Replace PrintWriter arg with OutputStream. + Re-implemented. + 2006-03-06 David Gilbert + * javax/swing/tree/FixedHeightLayoutCache.java: Reformatted and fixed - API doc tag warnings, + API doc tag warnings, * javax/swing/tree/VariableHeightLayoutCache.java: Likewise. 2006-03-06 Dalibor Topic * gnu/java/net/protocol/file/Connection.java (unquote): - Update position in buffer after decoding a unicode character - outside of the basic plane. + Update position in buffer after decoding a unicode character + outside of the basic plane. + +2006-03-06 Dalibor Topic + * java/net/URI.java + (quote): Pass Unicode characters outside the basic plane through. + 2006-03-06 Robert Schuster - + * javax/swing/plaf/basic/BasicTextUI.java: (damageRange): Rewritten if-expressions to correctly identify the - break condition. + break condition. -2006-03-06 Robert Schuster +2006-03-06 Mark Wielaard - * javax/swing/text/DefaultCaret.java: - (mouseDragged): Do selection when shift is pressed. - (mouseClicked): Implemented. + * configure.ac: Set version to 0.90-generics. + * NEWS: Fix typos. -2006-03-06 Dalibor Topic +2006-03-06 Mark Wielaard + + Fixes bug #26568 reported by Paul Jenner + * native/fdlibm/fdlibm.h (__ieee754_rem_pio2): Return an int32_t. + (isnan): Define explicitly isnan if it is not a macro. + +2006-03-06 Robert Schuster - * libraries/javalib/external/classpath/java/net/URI.java (quote): - Pass Unicode characters outside the basic plane through. + * javax/swing/text/GapContent.java: + (insertString): Throw exception when argument is below + zero. 2006-03-06 Robert Schuster @@ -18660,6 +28059,30 @@ code to generate another Element when newly inserted characters and old ones will be on the same line. +2006-03-06 Robert Schuster + + * javax/swing/text/DefaultCaret.java: + (mouseDragged): Do selection when shift is pressed. + (mouseClicked): Implemented. + +2006-03-06 Robert Schuster + + * javax/swing/text/PlainDocument.java: Fix copyright header, + added author tags. + (insertUpdate): Do not copy the whole document any more, added some + more variables to prevent needless method calls. + +2006-03-06 Christian Thalinger + + * configure.ac: Check for FREETYPE2. This is a reverted patch and + is required on Darwin. + * native/jni/gtk-peer/Makefile.am (AM_LDFLAGS): Added FREETYPE2. + (AM_CFLAGS): Likewise. + +2006-03-06 Mark Wielaard + + * NEWS: Add updates for 0.90 release. + 2006-03-05 Robert Schuster * javax/swing/text/GapContent.java: @@ -18668,16 +28091,22 @@ 2006-03-05 David Gilbert - * javax/swing/plaf/metal/MetalComboBoxButton.java - (MetalComboBoxButton(JComboBox, Icon, boolean, CellRendererPane, - JList)): Fixed API doc tag, - * javax/swing/plaf/metal/MetalInternalFrameTitlePane - (createLayout): Fixed API doc warning. + + * javax/swing/filechooser/FileFilter.java: + (accept): Fixed API doc tag, + (getDescription): Likewise, + * javax/swing/filechooser/FileView.java: + (isTraversable): Fixed API doc tag. 2006-03-05 David Gilbert - * javax/swing/DefaultFocusManager.java: Fixed bad API doc tags, - * javax/swing/FocusManager.java: Likewise. + * javax/swing/colorchooser/ColorSelectionModel.java: Reformatted and + added API docs all over. + +2006-03-05 David Gilbert + + * javax/swing/plaf/ComboBoxUI.java: Fixed typo in class description, + and corrected a bad API doc tag. 2006-03-05 David Gilbert @@ -18693,26 +28122,23 @@ 2006-03-05 David Gilbert - * javax/swing/plaf/ComboBoxUI.java: Fixed typo in class description, - and corrected a bad API doc tag. - -2006-03-05 David Gilbert + * javax/swing/DefaultFocusManager.java: Fixed bad API doc tags, + * javax/swing/FocusManager.java: Likewise. - * javax/swing/colorchooser/ColorSelectionModel.java: Reformatted and - added API docs all over. 2006-03-05 David Gilbert - * javax/swing/filechooser/FileFilter.java: - (accept): Fixed API doc tag, - (getDescription): Likewise, - * javax/swing/filechooser/FileView.java: - (isTraversable): Fixed API doc tag. - + + * javax/swing/plaf/metal/MetalComboBoxButton.java + (MetalComboBoxButton(JComboBox, Icon, boolean, CellRendererPane, + JList)): Fixed API doc tag, + * javax/swing/plaf/metal/MetalInternalFrameTitlePane + (createLayout): Fixed API doc warning. + 2006-03-05 Tom Tromey * vm/reference/java/lang/reflect/Constructor.java (toString): Use - ClassHelper.getUserName. + ClassHelper.getUserName. * vm/reference/java/lang/reflect/Method.java (toString): Use ClassHelper.getUserName. (getUserTypeName): Removed. @@ -18723,12 +28149,13 @@ 2006-03-05 Olivier Jolly Fixes PR 22813 - * java/net/URLClassLoader.java (FileURLLoader.getResource): + * java/net/URLClassLoader.java (FileURLLoader.getResource): Allows directories as valid resources. -2006-03-04 Mark Wielaard +2006-03-05 Mark Wielaard - * configure.ac (VERSION): Set to 0.90-pre. + * configure.ac (VERSION): Set to 0.90-pre-generics. + * Merge with CVS trunk from classpath-0_90-branch-point. 2006-03-04 Tom Tromey @@ -19826,12 +29253,73 @@ (decodePublicKey): Added logging. Handle optional NULL element. -2006-02-26 Raif S. Naffah +2006-02-26 Raif S. Naffah + + * java/util/logging/FileHandler.java: Fixed a javadoc reference. + +2006-03-03 Tom Tromey + + * java/awt/MenuBar.java (shortcuts): Genericized. + +2006-03-03 Tom Tromey + + * java/beans/EventSetDescriptor.java (EventSetDescriptor): + Genericized. + (getListenerType): Likewise. + * java/beans/Introspector.java (getBeanInfo): Genericized. + * java/beans/DefaultPersistenceDelegate.java (initialize): + Genericized. + +2006-03-01 Anthony Balkissoon + + * java/math/BigDecimal.java: + (precision): Fixed overflow problem with large numbers. + (longValueExact): New method. + (intValueExact): Likewise. + (byteValueExact): Likewise. + (shortValueExact): Likewise. + +2006-03-01 Anthony Balkissoon + + * java/math/BigDecimal.java: + (remainder(BigDecimal)): New method. + (divideAndRemainder(BigDecimal)): Likewise. + (divideToIntegralValue(BigDecimal)): Likewise. + (floor): New implementation method. + +2006-02-28 Anthony Balkissoon + + * java/math/BigDecimal.java: + (divide(BigDecimal, int, RoundingMode)): New method. + (divide(BigDecimal, RoundingMode)): Likewise. + (divide(BigDecimal, int, int)): Removed incorrect throwing of exception + when the new scale is < 0. + (setScale(int, RoundingMode)): New method. + (ulp): Likewise. + +2006-02-27 Anthony Balkissoon - * java/util/logging/FileHandler.java: Fixed a javadoc reference. + * java/math/BigDecimal.java: Replaced occurences of BigInteger.valueOf + with BigInteger.ZERO, BigInteger.ONE, BigInteger.TEN where appropriate. + (add(BigDecimal, MathContext)): New method. + (subtract(BigDecimal, MathContext)): Likewise. + (precision): Fixed to correctly handle BigIntegers with more than 19 + digits. + (pow(int, MathContext)): New method. -2006-02-25 Chris Burdess +2006-02-27 Anthony Balkissoon + * java/math/BigDecimal.java: Added @throws clause to constructors. + (mathContext): Removed this unneeded field. + (BigDecimal(int, MathContext)): New constructor. + (BigDecimal(BigInteger, int, MathContext)): Likewise. + (multiply(BigDecimal, MathContext)): New method. + (negate(MathContext)): Likewise. + (plus(MathContext)): Likewise. + (numDigitsInLong): Fixed to properly handle negatives. + +2006-02-25 Chris Burdess + * gnu/java/net/CRLFInputStream.java, gnu/java/net/LineInputStream.java: Streams that use mark capabilities on the underlying stream do not expose mark @@ -19855,6 +29343,26 @@ manipulating an array of icharacter positions which _match has already visited. +2006-02-24 Anthony Balkissoon + + * java/math/BigDecimal.java: + (BigDecimal(long, MathContext)): New constructor. + (BigDecimal(BigInteger, MathContext)): Likewise. + (BigDecimal(String, MathContext)): Likewise. + (BigDecimal(double, MathContext)): Likewise. + (round): Fixed a typo where the precision field was used instead of a + call to the precision method, and also store the new precision in the + returned BigDecimal. + (abs(MathContext)): New method. + +2006-02-24 Anthony Balkissoon + + * java/math/BigDecimal.java + (toBigInteger): Fixed problem where this method couldn't handle + negative values for scale. + (toBigIntegerExact): New method. + (stripTrailingZeros): Likewise. + 2006-02-24 David Daney PR classpath/26082 @@ -19869,9 +29377,9 @@ (maxConnections) : Removed. (GetHTTPPropertiesAction.run): Don't initialize maxConnections. (getConnection): Moved pool management logic to HTTPConnection.Pool. - + 2006-02-24 Lillian Angel - + * java/awt/Container.java: Added new field. True if Container has been cleared and heavyweights need to be repainted. @@ -19879,28 +29387,28 @@ reset backCleared. (update): Set backCleared to true after the background of the container has been cleared. - + 2006-02-24 Lillian Angel - + * java/awt/TextField.java (addNotify): Added call to super. - + 2006-02-24 Lillian Angel - - * java/awt/Component.java + + * java/awt/Component.java (reshape): Reverted last patch. Should have check here. (addNotify): Added check. If parent is lightweight, then initialize listener on the parent. (HeavyweightInLightweightListener): New class. - + 2006-02-24 Roman Kennke - + * javax/swing/plaf/basic/BasicComboPopup.java (show): Register the popup with the autocloser after it has been opened completely, by putting the registration on the eventqueue. - + 2006-02-24 Andrew John Hughes - + * gnu/java/security/prng/BasePRNG.java: (clone()): Added cast of buffer to byte[]. * gnu/javax/crypto/mac/TMMH16.java: @@ -19909,9 +29417,9 @@ Added missing defines from old fdlibm.h needed by Darwin. (GET_FLOAT_WORD(i,d)): Re-added. (SET_FLOAT_WORD(d,i)): Re-added. - + 2006-02-24 Roman Kennke - + * java/awt/Container.java: (dispatcher): Removed field. (dispatchEventImpl): Removed lightweight dispatching. @@ -19922,21 +29430,21 @@ * java/awt/Toolkit.java (Toolkit): Install LightweightDispatcher in global listener array. - + 2006-02-24 Chris Burdess - + Fixes PR 26324 * gnu/java/net/CRLFInputStream.java: Fix incorrect end condition when off > 0. - + 2006-02-24 Andrew John Hughes - + * NEWS: Mentions the VMMath runtime changes. * doc/vmintegration.texinfo: Updated to include VMMath. - + 2006-02-24 Roman Kennke - + * javax/swing/plaf/basic/BasicLookAndFeel.java (PopupHelper.autoClosePopups): New field. (PopupHelper.mousePressed): Also autoclose any registered popups. @@ -19946,15 +29454,15 @@ (registerForAutoClose): New method. * javax/swing/plaf/basic/BasicComboPopup.java (show): Register this popup for autoclosing. - + 2006-02-24 Raif S. Naffah - + * gnu/javax/crypto/mac/TMMH16.java (clone): New method. * gnu/java/security/prng/MDGenerator.java (clone): New method. * gnu/java/security/prng/BasePRNG.java (clone): Clone buffer. - + 2006-02-24 Roman Kennke - + Reported by Ingo Proetel * java/util/logging/LogManager.java (addLogger): Search the parent loggers for log level @@ -19962,14 +29470,30 @@ (readConfiguration): Provide minimal default configuration if no configuration can be found otherwise. -2006-02-23 Roman Kennke +2006-02-23 Anthony Balkissoon + + * java/math/BigDecimal.java: + (toString): Fixed a problem where the negative sign was being displayed + twice in the exponent. + (toEngineeringString): New method. + (toPlainString): Likewise. + (pow): Likewise. + +2006-02-23 Anthony Balkissoon + + * java/math/BigDecimal.java: + (toString): Rewrote this method to behave as specified. Added API + comments to explain behaviour. + (scaleByPowerOfTen): New method. +2006-02-23 Roman Kennke + * javax/swing/JRootPane.java (isOptimizedDrawingEnabled): Implemented to return true when the glassPane is not visible. - + 2006-02-23 Roman Kennke - + * javax/swing/plaf/basic/BasicLookAndFeel.java (PopupHelper): New inner class. (popupHelper): New field. @@ -20028,9 +29552,9 @@ * java/awt/Graphics.java (hitClip): Scott's proposed fix. Added check to handle a null clip. - + 2006-02-23 Wolfgang Baer - + * javax/print/attribute/standard/MediaSize.java: (media): Field renamed to mediaName for serialization. (MediaSize): Adapted to new fieldname. @@ -20080,9 +29604,9 @@ (hashCode): Likewise. (getHeight): Likewise. (getWidth): Likewise. - + 2006-02-23 Andrew John Hughes - + * include/java_lang_VMMath.h: (Java_java_lang_VMMath_cbrt(JNIEnv*,jclass,jdouble)): Added. (Java_java_lang_VMMath_cosh(JNIEnv*,jclass,jdouble)): Added. @@ -20203,14 +29727,14 @@ (toString): Reimplemented. (readObject): New method for serialization. (writeObject): Likewise. - + 2006-02-23 Roman Kennke - + * javax/swing/RepaintManager.java (commitBuffer): Clip the repaint area with the current clip. - + 2006-02-23 Raif S. Naffah - + * gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java (DEFAULT_PRIME_SIZE): Made public. (DEFAULT_EXPONENT_SIZE): Likewise. @@ -20272,6 +29796,15 @@ (engineGeneratePublic): Likewise. * gnu/javax/crypto/DiffieHellmanImpl: Removed. +2006-02-22 Anthony Balkissoon + + * java/math/BigDecimal.java: + (BigDecimal(char[], int, int, MathContext)): New constructor. + (BigDecimal(char[], MathContext)): Likewise. + (BigDecimal(char[])): Likewise. + (BigDecimal(char[], int, int)): Likewise. + (BigDecimal(String)): Fixed handling of exponent and scale. + 2006-02-22 Mark Wielaard * java/awt/Checkbox.java (setState): Check that state actually changed @@ -20286,14 +29819,14 @@ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c (postItemEventID): Method now takes boolean. (item_toggled_cb): Likewise. - + 2006-02-22 Robert Schuster - + * javax/swing/text/DefaultHighlighter.java: (changeHighlight): Added code to minimize the damaged area. - + 2006-02-22 Robert Schuster - + * javax/swing/text/PlainView.java: (getPreferredSpan): Added missing 'break'. statement which corrects an unwanted fall through. @@ -20301,44 +29834,65 @@ removed, call preferenceChanged accordingly. (viewToModel): Restrict line number to be within 0 and the number of elements-1. - + 2006-02-22 Robert Schuster - + * javax/swing/text/Utilities.java: (getPositionAbove): Prefer first value by changing comparison from < to <=. (getPositionBelow): Dito. - + 2006-02-22 Robert Schuster - + * javax/swing/text/DefaultEditorKit.java: Added checks and fallback behavior when magic caret position is null. - + 2006-02-22 Roman Kennke - + * javax/swing/JTextField.java (isValidateRoot): New method. - + 2006-02-22 Roman Kennke - + * javax/swing/JEditorPane.java (getPreferredSize): Rewritten to behave like the reference impl. (getScrollableTracksViewportWidth): Likewise. (getScrollableTracksViewportHeight): Likewise. - + 2006-02-22 Roman Kennke - + * javax/swing/RepaintManager.java (addInvalidComponent): Also consider the component itself. - + 2006-02-22 Mark Wielaard - + * javax/swing/text/html/HTMLDocument.java (createDefaultRoot): Fully qualify AbstractDocument.AttributeContext. (blockOpen): Likewise. + +2006-02-21 Anthony Balkissoon -2006-02-21 Mark Wielaard + * java/math/BigDecimal.java: + (mathContext): New field. + (precision): Likewise. + (BigDecimal(int)): New constructor. + (BigDecimal(long)): Likewise. + (BigDecimal(BigInteger)): Added API docs. + (BigDecimal(BigInteger, int)): Removed incorrect NumberFormatException + and added API docs. + (plus): New method. + (round): Likewise. + (precision): Likewise. + (valueOf): Likewise. + (numDigitsInLong): New implementation method. + +2006-02-21 Anthony Balkissoon + + * java/math/MathContext.java: New class. + * java/math/RoundingMode: New Enum. +2006-02-21 Mark Wielaard + * java/awt/Component.java (translateEvent): Translate AdjustmentEvents to 1.0 Events. * java/awt/Scrollbar.java (dispatchEventImpl): Set valueIsAdjusting. @@ -20352,25 +29906,25 @@ (Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues): Renamed to Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValue * include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: Regenerated. - + 2006-02-21 Roman Kennke - + * javax/swing/text/View.java (setParent): Set child parent to null when disconnecting the view from the View hierarchy. - + 2006-02-21 Wolfgang Baer - + * javax/print/StreamPrintService.java: Added and enhanced documentation. - + 2006-02-21 Roman Kennke - + * javax/swing/text/WrappedPlainView.java (calculateBreakPosition): Changed to use the view's allocation instead of the container's preferredSize. - + 2006-02-21 Wolfgang Baer - + * java/awt/CardLayout.java: (first): Updated api documentation. (last): Likewise. @@ -20380,21 +29934,21 @@ IllegalArgumentException if layout of container is not this. (gotoComponent): Updated api documentation. Throw IllegalArgumentException if layout of container is not this. - + 2006-02-21 Roman Kennke - + * javax/swing/text/NavigationFilter.java (getNextVisualPositionFrom): New method. - + 2006-02-21 Roman Kennke - + * javax/swing/plaf/basic/BasicTextUI.java (RootView.setView): Call setParent() on the view with this as argument instead of null. (setView): Don't set root view's parent here. - + 2006-02-21 Roman Kennke - + * javax/swing/text/AbstractDocument.java (AbstractElement.getAttribute): Use getResolveParent() to fetch the resolving parent. @@ -20466,9 +30020,9 @@ * javax/swing/text/html/InlineView.java (setPropertiesFromAttributes): Call super. * javax/swing/text/html/NullView.java: New class. - + 2006-02-21 Roman Kennke - + PR classpath/26368 * javax/swing/text/GapContent.java (GapContentPosition): Made class private. @@ -20486,9 +30040,9 @@ positions. (dumpPositions): Handle WeakReference positions. (clearPositionReferences): New method. - + 2006-02-21 Robert Schuster - + * javax/swing/plaf/basic/BasicTextUI.java: (paint): Remove unneccessary part of the if-expression. (damageRange): Added case where the range spans multiple lines. @@ -20518,71 +30072,71 @@ (ENDSIG): Likewise. * java/util/zip/ZipOutputStream.java (writeLeInt(long)): New method. - + 2006-02-21 Michael Koch - + * gnu/javax/net/ssl/provider/PRNG.java: Removed. - + 2006-02-20 Mark Wielaard - + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c (begin_drawing_operation): Output stacktrace and return on bad cairo status. (end_drawing_operation): Likewise. And reset cairo_t. - + 2006-02-20 Robert Schuster - + * javax/swing/text/DefaultEditorKit.java: Fixed comparison in backward selection action. - + 2006-02-20 Olivier Jolly - + * java/lang/reflect/Proxy.java: (ProxyData.getProxyData): Skipped overriding of core methods. (ProxyData.isCoreObjectMethod): New method. - + 2006-02-20 Mark Wielaard - + * gnu/java/nio/charset/Provider.java (Provider): Package private. - + 2006-02-20 Roman Kennke - + * javax/swing/text/html/Option.java: New class. - + 2006-02-20 Lillian Angel - + * java/swt/Window.java (show): Calling show() on the owned windows caused problems. Changed back to get the peer and call setVisible. - + 2006-02-20 Roman Kennke - + * javax/swing/plaf/basic/BasicTextUI.java (damageRange): Implemented this method. - + 2006-02-20 Robert Schuster - + * javax/swing/text/GapContent.java: (shiftGapEndUp): Corrected new mark value. * javax/swing/text/AbstractDocument.java: (remove): Changed order of operations. - + 2006-02-20 Robert Schuster - + * javax/swing/text/GapContent.java: (shiftGapEndUp): Reverted. * javax/swing/text/AbstractDocument.java: (remove): Reverted. - + 2006-02-20 Robert Schuster - + * javax/swing/text/GapContent.java: (shiftGapEndUp): Corrected new mark value. * javax/swing/text/AbstractDocument.java: (remove): Changed order of operations. - + 2006-02-20 Mark Wielaard - + * java/awt/Menu.java (add(MenuItem)): Use item.getParent() to get parent field. (insert): Likewise. @@ -20626,9 +30180,9 @@ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c (Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_nativeSetHelpMenu): Removed. - + 2006-02-20 Audrius Meskauskas - + * gnu/java/rmi/server/RMIObjectInputStream.java (resolveProxyClass): Expect that proxy interfaces may have different class loaders. * gnu/java/rmi/server/UnicastServerRef.java: Rewritten. @@ -20644,16 +30198,16 @@ * gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate): Set Parent and Bounds of our children if either or parent is showing, or we are a Window and are showing ourselves now. - + 2006-02-19 Audrius Meskauskas - + * gnu/classpath/tools/rmi/rmic/RmicCompiler.java (convertStubName): New method. * gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav: Another stub name fix. - + 2006-02-19 Audrius Meskauskas - + * gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java (compile): Call convertStubName. (convertStubName): New method. * gnu/classpath/tools/rmi/RMIC.java (main): Stub name fix. @@ -20780,9 +30334,9 @@ * java/awt/datatransfer/DataFlavor.java (tryToLoadClass): Rewritten. (getRepresentationClassFromMime): Add exception cause to IllegalArgumentException. - + 2006-02-17 Lillian Angel - + * gnu/java/awt/peer/gtk/GtkComponentPeer.java: Removed unneeded import. * gnu/java/awt/peer/gtk/GtkFramePeer.java: @@ -20791,9 +30345,9 @@ Fixed comment, this is not yet handled in the JDK 1.5. * java/awt/Container.java: Removed unneeded import. - + 2006-02-17 Lillian Angel - + * gnu/java/awt/peer/gtk/GtkComponentPeer.java (setBounds): Removed check. Coordinates should always be changed to incorporate the parent's coordinates. @@ -20832,17 +30386,17 @@ attribute values. Fixed number of characters read following a reset when detecting end of character data with characters after a Unicode surrogate pair. - + 2006-02-17 Roman Kennke - + * javax/swing/text/html/HTMLEditorKit.java (HTMLFactory.create): Create InlineView for content tags. * javax/swing/text/html/HTMLDocument.java (HTMLReader.flush): Call create() on first flush and insert on subsequent flushes. - + 2006-02-17 Roman Kennke - + * javax/swing/text/AbstractDocument.java (BranchElement.getStartOffset): Implemented workaround for wrong NPE. @@ -20857,9 +30411,9 @@ (createDefaultRoot): Use createBranchElement() and createLeafElement instead of the constructors. (create): Rewritten. - + 2006-02-17 Keith Seitz - + * gnu/classpath/jdwp/id/JdwpId.java (size): Remove. (SIZE): New constant. * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java @@ -20876,9 +30430,9 @@ Use model index for data model and column index for column model. (getColumnClass): Convert to model index before requesting class from model. - + 2006-02-17 Roman Kennke - + * javax/swing/text/html/HTMLDocument.java (createDefaultRoot): Implemented. (createLeafElement): Implemented. @@ -20889,15 +30443,15 @@ (HTMLReader.ParagraphAction.end): Call blockClose at the very least. (HTMLReader.blockOpen): Add name attribute with the current tag. (HTMLReader.addContent): Add name attribute with HTML.Tag.CONTENT. - + 2006-02-17 Audrius Meskauskas - + * javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler): Rewritten. * javax/swing/table/JTableHeader.java: Documenting related methods. - + 2006-02-17 Jeroen Frijters - + Fixes PR 25752 * gnu/java/net/protocol/ftp/FTPURLConnection.java (connect): Changed to use SystemProperties. @@ -20905,34 +30459,34 @@ url is a directory, if not use retrieve. (getOutputStream): Don't worry about directories, simply always try to do a store. - + 2006-02-17 Jeroen Frijters - + * gnu/java/net/protocol/ftp/ActiveModeDTP.java (ActiveModeDTP): Mark accept thread as daemon. - + 2006-02-17 Michael Koch - + * tools/.cvsignore: Ignore tools.zip. - + 2006-02-16 Keith Seitz - + * vm/reference/gnu/classpath/jdwp/VMIdManager.java (newReferenceTypeId): Set the ID's reference. (): Remove comments for field, method, and frame ID types, which will not be handled by VMIdManager. - + 2006-02-17 Audrius Meskauskas - + * javax/swing/JTable.java (getCellEditor, getCellRenderer): Use model index, not the column number. * javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler): Rewritten. (draggingHeaderRect): New field. (paint): Animate column movement by painting draggingHeaderRect. * NEWS: Added entry about JTable columns. - + 2006-02-16 Keith Seitz - + * gnu/classpath/jdwp/id/JdwpId.java (size): Make static. Return default size of eight bytes. * gnu/classpath/jdwp/id/ObjectId.java (size): Remove. @@ -20943,25 +30497,25 @@ method. 2006-02-16 David Daney - + PR classpath/26312 * gnu/java/net/protocol/http/ChunkedInputStream.java (read): Mask return value with 0xff. - + 2006-02-16 Keith Seitz - + * gnu/classpath/jdwp/event/EventRequest.java (getFilters): New method. (matches): Use Iterator instead of ListIterator. - + 2006-02-16 Keith Seitz - + * gnu/classpath/jdwp/Jdwp.java (_doInitialization): Name the packet processor thread for easier debugging. (_enforceSuspendPolicy): Suspend the current thread, not the JDWP main thread. - + 2006-02-16 Audrius Meskauskas - + * javax/swing/JTable.java (TableColumnPropertyChangeHandler.propertyChange): Return without action if table header resizing column in not null. (doLayout): @@ -20969,13 +30523,13 @@ * javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler.mouseExited, MouseInputHandler.mouseReleased): Rewritten. (MouseInputHandler.endResizing): New method. - + 2006-02-16 Roman Kennke - + * javax/swing/text/html/InlineView.java: New file. - + 2006-02-16 Roman Kennke - + * javax/swing/JTabbedPane.java (AccessibleJTable.getAccessibleChild): Implemented to return the Page instance for the specified index. @@ -20988,19 +30542,19 @@ (Page.getAccessibleChildrenCount): New method. (Page.getAccessibleChild): New methdod. (Page.getLocale): New method. - + 2006-02-16 Roman Kennke - + * javax/swing/plaf/basic/BasicTabbedPaneUI.java (TabbedPaneLayout.calculateTabRects): Expand tabRuns array when tabCount gets greater than tabRuns.length. (TabbedPaneScrollLayout.calculateTabRects): Expand tabRuns array when tabCount gets greater than tabRuns.length. (paintTabArea): Don't set tabCount == runCount. - + 2006-02-16 Roman Kennke - - * javax/swing/plaf/basic/BasicTextUI.java + + * javax/swing/plaf/basic/BasicTextUI.java (installUI): Moved installation of PropertyChangeListener to installListeners(). Call modelChanged() after everything is is installed. @@ -21016,19 +30570,19 @@ on exit. javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler.mouseDragged): Do not repaint the header. - + 2006-02-16 Roman Kennke - + * javax/swing/JViewport.java (static_initializer): Set default scrollMode to backingstore. - + 2006-02-16 Audrius Meskauskas - + * javax/swing/JTable.java (moveToCellBeingEdited): Clone the value, returned by getCellRect. To not translate the component. - + 2006-02-16 Roman Kennke - + * javax/swing/JComponent.java (rectCache): Made field non-static to avoid nasty interferences. (computeVisibleRect): Avoid creation of new Rectangles and double @@ -21036,13 +30590,13 @@ of Rectangle2D.intersect(). (repaint): Interect the dirty region with the visible rectangle of this component to avoid unnecessary painting. - + 2006-02-16 Gary Benson - + * java/lang/Thread.java (stop): Add a missing access check. - + 2006-02-16 Robert Schuster - + * javax/swing/text/JTextComponent.java: (replaceSelection): Added code to update the magic caret position. * javax/swing/text/DefaultEditorKit.java: Added code to update @@ -21136,29 +30690,29 @@ * javax/swing/JTable.java, javax/swing/plaf/basic/BasicTableHeaderUI.java, javax/swing/table/DefaultTableModel.java: Documented. - + 2006-02-15 Lillian Angel - + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: Removed duplicate methods. - + 2006-02-15 Audrius Meskauskas - + * javax/swing/JTable.java (distributeSpillResizing): New method. (doLayout): Use distributeSpillResizing when resizing. * javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler): Rewritten. (installListeners): Add mouse motion listener. (uninstallListeners): Remove mouse motion listener. - + 2006-02-15 Lillian Angel - + * gnu/java/awt/peer/gtk/GtkDialogPeer.java (setVisible): Removed method. * gnu/java/awt/peer/gtk/GtkWindowPeer.java (setLocation): New method. (setLocationUnlocked): New method. (show): Changed to use setLocation instead of setBounds. - * java/awt/Component.java + * java/awt/Component.java (show): Should call peer.show(), not peer.setVisible(), so the location of the component is correctly set. (preferredSize): Added curly braces so else statements are @@ -21173,46 +30727,46 @@ GtkWindowPeer_nativeSetLocation and Java_gnu_java_awt_peer_gtk_GtkWindowPeer _nativeSetLocationUnlocked. - + 2006-02-15 Mark Wielaard - + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): Downcast gtk_plug_new result when used. - + 2006-02-15 Olivier Jolly - + * java/io/ObjectOutputStream.java (writeClassDescriptor): Call assignNewHandle() after writing Proxy class. - + 2006-02-15 Olivier jolly - + Fixes bug #14144 * java/io/ObjectInputStream.java (readClassDescriptor): Class doesn't have to be abstract for first_nonserial. - + 2006-02-15 Roman Kennke - + * javax/swing/JInternalFrame.java (setClosed): Call dispose to actually make the frame invisible and unselected. - + 2006-02-15 Roman Kennke - + * javax/swing/JInternalFrame.java (dispose): Call setVisible(false) instead of hide. (doDefaultCloseOperation): Likewise. - + 2006-02-15 Roman Kennke - + * javax/swing/JComponent.java (paintChildren): Also check for the visibility of a child component to avoid artifacts. (repaint): Simply add this component to the RepaintManager rather than trying to do useless optimization here. - + 2006-02-15 David Gilbert - + * javax/swing/JSpinner.java (DefaultEditor.DefaultEditor(JSpinner)): Add self to text field as a PropertyChangeListener, @@ -21318,15 +30872,15 @@ * javax/swing/SpinnerNumberModel.java (getNextValue): Check for null maximum, (getPreviousValue): Check for null minimum. - + 2006-02-15 Roman Kennke - + * javax/swing/plaf/basic/BasicTableUI.java (paint): Paint vertical and horizontal lines one pixel shifted left/top. - + 2006-02-15 Jeroen Frijters - + * java/util/zip/ZipFile.java (checkZipFile): Inlined readLeInt and rewritten for robustness. (readLeShort(DataInput,byte[]), readLeInt(DataInput,byte[], @@ -21344,9 +30898,9 @@ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (window_get_frame_extents): Return early of the window has no decorations. - + 2006-02-15 Audrius Meskauskas - + * examples/gnu/classpath/examples/swing/TableDemo.java (TModel, createContent): Explain which value appears in the header. * javax/swing/JTable.java (setColumnModel): Only set the @@ -21388,27 +30942,27 @@ * javax/swing/ToolTipManager.java: Removed unneeded imports. * javax/swing/Timer.java: Some small reindention. (task): Made package private to avoid synthetic accessor method. - + 2006-02-14 Roman Kennke - - * javax/swing/SwingUtilities.java + + * javax/swing/SwingUtilities.java (layoutCompoundLabel): Dont set textIconGap to 0 when there is no icon. - + 2006-02-14 Audrius Meskauskas - + * examples/gnu/classpath/examples/swing/TableDemo.java: Making the columns variable width. * javax/swing/JTable.java (distributeSpill, doLayout): Call getPreferredSize and not getSize(). - + 2006-02-14 Roman Kennke - + * javax/swing/DefaultCellEditor.java (DefaultCellEditor): API doc fixlet. - + 2006-02-14 Roman Kennke - + * javax/swing/JViewport.java (isPaintRoot): New field. (repaint): Only call super here. Also added a comment regarding @@ -21416,27 +30970,27 @@ (paintBlit): Implemented real blitting. (paintImmediately2): New method. Overrides the same package private method in JComponent. - + 2006-02-14 Roman Kennke - + * javax/swing/plaf/basic/BasicTableUI.java (paint): Check for boundary cases when determining the painting area. - + 2006-02-14 Mark Wielaard - + * java/awt/Menu.java (add): Always set parent of item to this. Call addNotify() on item when we have a MenuPeer already. (insert): Always adjust parent for item. Call addNotify() on item if we already have a peer. (remove(int)): Always clear item parent. Call removeNotify() on item if we had a peer. - + 2006-02-14 Audrius Meskauskas - + * javax/swing/JTable.java (rowAtPoint): Return -1 if the computed row == getRowCount(). - + 2006-02-14 Lillian Angel * gnu/java/awt/peer/gtk/GtkDialogPeer.java @@ -21472,45 +31026,45 @@ tools/gnu/classpath/tools/giop/nameservice/PersistentContextMap.java, tools/gnu/classpath/tools/giop/nameservice/PersistentMap.java: New files. - + 2006-02-14 David Gilbert - + * javax/swing/JComponent.java (getListeners): Check for PropertyChangeListener.class and delegate to getPropertyChangeListeners() for that case. - + 2006-02-13 Roman Kennke - + * javax/swing/plaf/basic/BasicTableUI.java (paint): Determine the cells that need painting based on the current clip. Use getCellRect() for calculating the cell bounds. - + 2006-02-13 Roman Kennke - + * javax/swing/JTable.java (rectCache): New field. (getCellRect): Returns cached Rectangle instance. - + 2006-02-13 Roman Kennke - + * javax/swing/JLayeredPane.java (removeAll): New method. Avoid potential memory leak. (isOptimizedDrawingEnabled): Replaced heuristic with accurate calculation. - + 2006-02-14 Stuart Ballard - + * javax/swing/undo/StateEdit.java (RCSID): Match Sun's value. * javax/swing/undo/StateEditable.java (RCSID): Likewise. - + 2006-02-13 Tom Tromey - + * vm/reference/java/lang/reflect/Method.java: Javadoc fix. * vm/reference/java/lang/reflect/Constructor.java: Javadoc fix. - + 2006-02-13 Roman Kennke - + * javax/swing/RepaintManager.java (offscreenBuffers): New field. (doubleBuffer): Removed field. @@ -21528,18 +31082,18 @@ (paintImmediately2): Don't paint on screen here. (paintDoubleBuffered): Rewritten for real double buffering. (paintSimple): Draw to screen in this method. - + 2006-02-13 Roman Kennke - + * javax/swing/JRootPane.java (JRootPane): Set opaque property to true. - + 2006-02-13 Tom Tromey - + * .classpath: Updated for external/relaxngDatatype. - + 2006-02-13 Chris Burdess - + * gnu/xml/stream/UnicodeReader.java, gnu/xml/validation/datatype/Annotation.java, gnu/xml/validation/datatype/AnySimpleType.java, @@ -21636,9 +31190,9 @@ lib/Makefile.am, lib/gen-classlist.sh.in: Added external RELAX NG pluggable datatypes library API. - + 2006-02-13 Mark Wielaard - + * gnu/java/awt/peer/gtk/GtkGenericPeer.java (awtWidget): Made field final. (gtkWidgetModifyFont(Font)): New protected helper method. @@ -21669,51 +31223,51 @@ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c (Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetModifyFont): Removed. - + 2006-02-13 Mark Wielaard - + * java/lang/Math.java (static): Explicitly call System.loadLibrary("javalang"). - + 2006-02-13 Wolfgang Baer - + * javax/print/StreamPrintServiceFactory.java: New file. - + 2006-02-13 Tom Tromey - + * tools/.cvsignore: Added Makefile. - + 2006-02-13 Wolfgang Baer - + * java/awt/print/PrinterGraphics.java: Reformatted. * java/awt/print/Paper.java: Likewise. * java/awt/print/PageFormat.java: Likewise. * java/awt/print/Pageable.java: Likewise. - + 2006-02-13 Lillian Angel - + * java/awt/BorderLayout.java (layoutContainer): Rewrote part of this function to properly set the bounds of the components. (setBounds): Removed method, not needed. - + 2006-02-13 Roman Kennke - + * javax/swing/text/DefaultStyledDocument.java (ElementBuffer.clone): Fixed replace call. (clone): Removed method. - + 2006-02-13 Roman Kennke - + * java/rmi/server/UnicastRemoteObject.java: Reformatted. - + 2006-02-13 Roman Kennke - + * java/rmi/server/UnicastRemoteObject.java (exportObject(Remote)): Forward method call to export(Remote,int). - + 2006-02-13 Andrew John Hughes - + * include/Makefile.am: Swapped Math.h for VMMath.h * include/java_lang_Math.h: @@ -21761,14 +31315,14 @@ (rint(double)): New native method. 2006-02-13 Lillian Angel - + * java/awt/Component.java (repaint): No need to call isShowing, it is done in the other repaint call. (repaint): Likewise. (repaint): Likewise. - + 2006-02-13 Lillian Angel - + * java/awt/Component.java (repaint): Reverted last change. (repaint): Likewise. @@ -21785,21 +31339,21 @@ (repaint): No need to call isShowing, it is done in the other repaint call. (repaint): Likewise. (repaint): Likewise. - + 2006-02-13 Roman Kennke - + * javax/swing/text/AbstractDocument.java (setParent): Added API docs. Call setParent(null) on children before disconnecting this view from the View hierarchy. - + 2006-02-13 Roman Kennke - + * javax/swing/text/AbstractDocument.java (readUnlock): Don't attempt to unlock when the current threads also holds a write lock. - + 2006-02-13 David Gilbert - + * javax/swing/plaf/metal/MetalBorders.java (ButtonBorder.getBorderInsets(Component)): Return insets directly, (ButtonBorder.getBorderInsets(Component, Insets)): Don't check for null @@ -21841,34 +31395,34 @@ stands for only one character. (match): Added the processing of the Vector addition. (matchN), (matchP): Do not check next token if addition is used. - + 2006-02-12 Olivier Jolly - + * AUTHORS: add self. - + 2006-02-12 Tom Tromey - + * gnu/classpath/ServiceProviderLoadingAction.java: Javadoc fix. * gnu/classpath/ServiceFactory.java (ServiceIterator): Javadoc fix. (securityContext): Likewise. (log): Likewise. - + 2006-02-12 Dalibor Topic - + Fixes PR 26218. - + * gnu/java/net/protocol/file/Connection.java (unquote): Convert Unicode characters outside basic plane to UTF-8, rather than throwing an exception. - + 2006-02-12 Tom Tromey - + * javax/sound/sampled/LineEvent.java (readObject): New method. (writeObject): Likewise. (serialVersionUID): New field. - + 2006-02-12 Mark Wielaard - + * java/beans/PropertyChangeSupport.java (addPropertyChangeListener): Silently ignores null listener. (addPropertyChangeListener(String, PropertyChangeListener): Likewise. @@ -21907,9 +31461,9 @@ * java/io/InputStream.java (read(byte[],int,int)): Changed argument validation to prevent integer overflow. Remove redundant check. - + 2006-02-12 Jeroen Frijters - + Fixes PR 26220 * java/io/InputStreamReader.java (InputStreamReader(InputStream)): Use SystemProperties. @@ -21986,9 +31540,9 @@ tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav: Rewritten. * tools/gnu/classpath/tools/giop/grmic/HashFinder.java: New file. - + 2006-02-11 Raif S. Naffah - + * gnu/java/security/jce/sig/EncodedKeyFactory.java (engineGeneratePublic): Added support for raw key-specifications. (engineGeneratePrivate): Likewise. @@ -22012,19 +31566,19 @@ (encodePublicKey): Likewise. (encodePrivateKey): Likewise. (decodePublicKey): Likewise. - + 2006-02-10 Roman Kennke - + * javax/swing/text/StyleContext.java (registerStaticAttributeKey): New static method. - + 2006-02-10 Roman Kennke - + * javax/swing/text/DefaultStyledDocument.java (ElementBuffer.clone): New method. - + 2006-02-10 Roman Kennke - + * javax/swing/text/ParagraphView.java (findOffsetToCharactersInString): New method. (getClosestPositionTo): New method. @@ -22033,16 +31587,16 @@ (adjustRow): New method. (breakView): New method. (getBreakWeight): New method. - + 2006-02-10 Roman Kennke - + * javax/swing/text/GapContent.java (updateUndoPositions): New method. * javax/swing/text/StringContent.java (updateUndoPositions): New method. - + 2006-02-10 Raif S. Naffah - + * gnu/java/security/key/rsa/GnuRSAPrivateKey.java (GnuRSAPrivateKey(9)): Made it public. * gnu/java/security/jce/sig/RSAKeyFactory.java: New file. @@ -22051,16 +31605,16 @@ (engineGeneratePrivate): Likewise. (engineGetKeySpec): Likewise. (engineTranslateKey): Corrected order of MPIs and use ctors with 5 args. - + 2006-02-10 Robert Schuster - + * javax/swing/text/Utilities.java: (getTabbedTextOffset): Fixed usage of variable p0. (getPositionAbove): Rewritten. (getPositionBelow): Rewritten. - + 2006-02-09 Roman Kennke - + * javax/swing/text/BoxView.java (getAxis): Added @since tag. (setAxis): Added @since tag. @@ -22087,28 +31641,28 @@ (modelToView): Don't throw BadLocationException. This should really only be thrown if the position is outside the document model, not if it's outside the view's boundary. - + 2006-02-09 Audrius Meskauskas - + * tools/Makefile.am: Handle rmi and giop folders separately. - + 2006-02-09 David Gilbert - + * javax/swing/SpinnerDateModel.java: Updated API docs all over, * javax/swing/SpinnerNumberModel.java: Likewise. - + 2006-02-09 David Gilbert - + * javax/swing/SpinnerDateModel.java: Removed tabs, * javax/swing/SpinnerNumberModel.java: Likewise. - + 2006-02-09 Anthony Balkissoon - + * doc/unicode/SpecialCasing-4.0.0.txt: New file. * doc/unicode/UnicodeData-4.0.0.txt: New file. - + 2006-02-09 Wolfgang Baer - + Fixes bug #26081 * gnu/java/net/protocol/http/HTTPURLConnection.java: (isRedirect): Removed, moved to Response.java. @@ -22117,9 +31671,9 @@ codes 404 and 410 throw a FileNotFoundException. * gnu/java/net/protocol/http/Response.java (isError): New method. (isRedirect): New method, moved from HTTPURLConnection.java. - + 2006-02-09 Audrius Meskauskas - + * tools/Makefile.am: Add tools/gnu/classpath/tools/rmi folder. * tools/gnu/classpath/tools/giop/GRMIC.txt: Explain it called from RMIC. * tools/gnu/classpath/tools/giop/grmic/Generator.java (getResource): @@ -22139,23 +31693,23 @@ tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12MethodVoid.jav: New files. * NEWS: Corrected entry about the tools. - + 2006-02-09 Lillian Angel - + * gnu/java/awt/peer/gtk/GtkComponentPeer.java (handleEvent): Added more to check to prevent assertion errors. * gnu/java/awt/peer/gtk/GtkPanelPeer.java (handleEvent): Likewise. * gnu/java/awt/peer/gtk/GtkWindowPeer.java (handleEvent): Likewise. - + 2006-02-09 Mark Wielaard - + * javax/swing/JTable.java (tableChanged): Interpret null event as "everything changed". - + 2006-02-09 Roman Kennke - + * javax/swing/text/DefaultCaret.java (DocumentHandler.removeUpdate): When update policy is 'on eventqueue', and the update doesn't come from the @@ -22163,31 +31717,31 @@ valid. (moveDot): Make sure the new dot location is valid. (setDot): Set the mark the same as the dot. - + 2006-02-09 Roman Kennke - + * javax/swing/text/AbstractDocument.java (remove): Perform all operations within a write lock and in the correct order. - + 2006-02-09 Mark Wielaard - + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c (Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create): Make sure max is creater than min, adjusting page_size if necessary. (Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues): Likewise. - + 2006-02-09 Lillian Angel - + * gnu/java/awt/peer/gtk/GtkPanelPeer.java (handleEvent): Added code to handle PaintEvent.UPDATE. Sun does not call update(Graphics g) on Panels. * gnu/java/awt/peer/gtk/GtkWindowPeer.java (handleEvent): New method. Added code to handle PaintEvent.UPDATE. Sun does not call update(Graphics g) on Panels. - + 2006-02-09 Roman Kennke - + * javax/swing/text/BoxView.java (myAxis): Made field private. (xLayoutValid): Replaced by layoutValid array. @@ -22257,14 +31811,14 @@ (replace): Added API docs. (forwardUpdate): Rewritten to only notify child views that need to be notified. - + 2006-02-09 Roman Kennke - + * javax/swing/plaf/basic/BasicTextUI.java (RootView.paint): Call setSize() before painting the view. - + 2006-02-09 Ito Kazumitsu - + Fixes bug #26112 * gnu/regexp/RE.java(REG_REPLACE_USE_BACKSLASHESCAPE): New execution flag which enables backslash escape in a replacement. @@ -22320,9 +31874,9 @@ (getRequestProperties): Throw IllegalStateException if connected. (setRequestProperty): Call super method for exception tests. (addRequestProperty): Likewise. - + 2006-02-09 Wolfgang Baer - + * gnu/java/net/protocol/http/Request.java: (Request): Remove initialization of removed field. (requestBodyNegotiationThreshold): Removed now unused field. @@ -22341,18 +31895,18 @@ (setMinimum): Fixed test for updating value, (setMaximum): Likewise, (setStepSize): Likewise. - + 2006-02-08 Tom Tromey - + * tools/.cvsignore: Added Makefile.in. - + 2006-02-08 Audrius Meskauskas - + * java/rmi/server/RemoteRef.java, java/rmi/server/RemoteStub.java: Commented. - + 2006-02-08 David Gilbert - + * javax/swing/SpinnerDateModel.java (SpinnerDateModel(Date, Comparable, Comparable, int)): Added argument checks, @@ -22366,25 +31920,25 @@ (select): Fixed up code, added some checks to prevent errors. (dispatchEventImpl): Removed. This function is not needed. It causes several assertion errors. - + 2006-02-08 Roman Kennke - + * javax/swing/text/PlainView.java (drawLine): Call drawUnselectedText() with end offset - 1 to avoid drawing unnecessary characters. - + 2006-02-08 Lillian Angel - + * gnu/java/awt/peer/gtk/GtkComponentPeer.java (handleEvent): Fixed check to determine if height or width is less than 1. - + 2006-02-08 Audrius Meskauskas - + *tools/Makefile.am (ALL_TOOLS_FILES): Add $(TOOLS_HELPS). - + 2006-02-08 Audrius Meskauskas - + * examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java, examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java: Documenting the code generator. @@ -22422,26 +31976,26 @@ tools/gnu/classpath/tools/giop/grmic/templates/Tie.jav, tools/gnu/classpath/tools/giop/grmic/templates/TieMethod.jav, tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav: New files. - + 2006-02-07 David Gilbert - + * java/awt/BasicStroke.java: Updated API docs all over, * java/awt/doc-files/capjoin.png: New file. - + 2006-02-07 Lillian Angel - + * gnu/java/awt/peer/gtk/GtkComponentPeer.java (handleEvent): Added check. Should not paint or update the component if it's width and height are both 0. - + 2006-02-07 Roman Kennke - + * javax/swing/text/AbstractDocument.java (insertString): Enclose locking/unlocking in try-finally block and also keep locked while notifying the listeners. - + 2006-02-07 Roman Kennke - + * javax/swing/text/GlyphView.java (GlyphView): Initialize startOffset and endOffset with -1 (indicating element boundary). @@ -22449,15 +32003,15 @@ (getEndOffset): Return element boundary if endOffset < 0. (createFragment): Set startOffset and endOffset fields of fragment if one of p0 or p1 is not at the element boundary. - + 2006-02-07 Roman Kennke - + * javax/swing/CellRendererPane.java (paintComponent): Enclosed painting in try finally to properly clean up even when throwing an exception. - + 2006-02-07 Roman Kennke - + * javax/swing/UIManager.java (listeners): Made this an instance of java.beans.PropertyChangeSupport instead of the obsoleted @@ -22469,9 +32023,9 @@ of actions "delete-next" and "delete-previous", added new TextAction implementations for "selection-begin", "selection-begin-line", "selection-end" and "selection-end-line". - + 2006-02-07 Roman Kennke - + * javax/swing/plaf/basic/BasicTextUI.java (paint): Acquire read lock on the document before calling paintSafely. @@ -22479,24 +32033,24 @@ (paintBackground): Implemented to actually paint the background. (update): Overridden to _not_ paint the background. This is done in paintBackground in this UI. - + 2006-02-07 Roman Kennke - + * javax/swing/text/View.java (forwardUpdate): Don't notify newly added child views as specified. - + 2006-02-07 Robert Schuster - + * gnu/java/beans/decoder/DefaultExceptionListener.java: Removed. - + 2006-02-07 Roman Kennke - + * javax/swing/text/DefaultStyledDocument.java (ElementBuffer.insert): Only register change when the element actually changed. - + 2006-02-07 Raif S. Naffah - + * gnu/java/security/key/KeyPairCodecFactory.java (getEncodingName): New method. (getEncodingShortName): Likewise. @@ -22535,9 +32089,9 @@ * gnu/java/security/der/DERWriter.java (writeBitString): Use writeLength() instead of write(). return buf.length + 1 instead of buf.length. - + 2006-02-07 Roman Kennke - + * javax/swing/plaf/basic/BasicTextUI.java (RootView.preferenceChange): Changed view parameter to view so that it doesn't hide a field of that class. @@ -22547,21 +32101,21 @@ (updateHandler): Made field private. (getVisibleEditorRect): Removed unneeded local variable that shadowed a field with the same name and purpose. - + 2006-02-07 Robert Schuster - + * javax/swing/text/JTextComponent.java: (getSelectedText): Calculate offset and use that as second argument. - + 2006-02-07 Roman Kennke - + * javax/swing/JTextPane.java (setCharacterAttributes): Replace input attributes when replace==true. - + 2006-02-07 Roman Kennke - + * java/awt/Component.java (firePropertyChange(String,byte,byte)): Made method public. (firePropertyChange(String,char,char)): Made method public. @@ -22569,28 +32123,28 @@ (firePropertyChange(String,long,long)): Made method public. (firePropertyChange(String,float,float)): Made method public. (firePropertyChange(String,double,double)): Made method public. - + 2006-02-06 Tom Tromey - + * gnu/CORBA/NamingService/NamingServiceTransient.java (main): Use 2006. * gnu/java/rmi/registry/RegistryImpl.java (version): Use 2006. - + 2006-02-06 Anthony Green - + * gnu/xml/aelfred2/XmlParser.java: Add missing break;. - + 2006-02-07 Raif S. Naffah - + * .settings/org.eclipse.jdt.core.prefs: Force a line split on extends and implements. Force a white-space after unary operators. Don't force a new-line after @params. Add new-line at end-of-file. * scripts/eclipse-gnu.xml: Export version of the above named GNU. - + 2006-02-07 Raif S. Naffah - + * gnu/java/security/provider/GnuDSAPublicKey.java (getEncoded): Use Registry constant. * gnu/java/security/provider/GnuDSAPrivateKey.java (getEncoded): @@ -22629,18 +32183,18 @@ (setPropertiesFromAttributes): Use null for background when no background is set. StyleConstants.getBackground() doesn't work for this, because it returns Color.BLACK in that case. - + 2006-02-06 Roman Kennke - + * java/awt/Container.java (changeSupport): Removed duplicate (from Component) field. (addPropertyChangeListener): Call super. - + 2006-02-06 Ito Kazumitsu - + * java/util/regex/Matcher.java(matches): set RE.REG_TRY_ENTIRE_MATCH as an execution flag of getMatch. - + 2006-02-06 Ito Kazumitsu Fixes bug #25812 @@ -22669,9 +32223,9 @@ * gnu/regexp/RETokenWordBoundary.java: Likewise. * gnu/regexp/RETokenIndependent.java: New file. * gnu/regexp/RETokenLookBehind.java: New file. - + 2006-02-06 Roman Kennke - + * java/awt/Component.java (firePropertyChange(String,byte,byte)): New method. (firePropertyChange(String,char,char)): New method. @@ -22704,9 +32258,9 @@ (firePropertyChange(String,float,float)): Removed. (firePropertyChange(String,long,long)): Removed. (firePropertyChange(String,short,short)): Removed. - + 2006-02-06 Roman Kennke - + * javax/swing/event/SwingPropertyChangeSupport.java (listeners): Removed field. (propertyListeners): Removed field. @@ -22718,19 +32272,19 @@ (getPropertyChangeListeners): Removed methods. (firePropertyChange): Removed methods. (hasListeners): Removed methods. - + 2006-02-06 Jeroen Frijters - + Fixes PR 25313 * java/net/InetAddress.java (readResolve): Implemented. - + 2006-02-06 Jeroen Frijters - + Fixes PR 26121 * java/io/ObjectInputStream.java (readNextBlock()): Handle TC_RESET. - + 2006-02-06 Wolfgang Baer * javax/print/attribute/standard/Compression.java, @@ -22762,22 +32316,22 @@ Throw ConnectException instead of IOException if connection failed. * native/jni/java-net/javanet.h: Add a define for java.net.ConnectException - + 2006-02-05 Mark Wielaard - + Fixes bug #26101 reported by Egon Willighagen * javax/swing/DefaultListCellRenderer.java (getListCellRendererComponent): Turn null value into empty string. - + 2006-02-04 Ito Kazumitsu - + * gnu/regexp/RETokenNamedProperty.java(getHandler): Check for a Unicode block if the name starts with "In". (UnicodeBlockHandler): New inner class. - + 2006-02-04 Roman Kennke - + * java/awt/Container.java (getComponentZOrder): New method. (setComponentZOrder): New method. @@ -22833,12 +32387,12 @@ (USE_DEFAULTS): more documentation to clarify behavior. (setup): amended to handle new attribute. * gnu/java/security/util/PRNG.java: New file. - + 2006-02-03 Lillian Angel - + * javax/swing/plaf/basic/BasicColorChooserUI.java: chooser field should be protected, not package-private. - + 2006-02-03 Lillian Angel * javax/swing/text/DefaultStyledDocument.java @@ -22854,20 +32408,20 @@ when fracturing. (getEditForParagraphAndIndex): No need to check index. We should use the same edit for each paragraph. - + 2006-02-03 Mark Wielaard - + * javax/swing/event/SwingPropertyChangeSupport.java (propertyListeners): Change type to HashMap. (SwingPropertyChangeSupport): Allocate HashMap. - + 2006-02-03 Raif S. Naffah - + * java/security/KeyPairGenerator.java (getInstance): Test for instanceof KeyPairGenerator before KeyPairGeneratorSpi. - + 2006-02-02 Roman Kennke - + * javax/swing/RepaintManager.java Made fields private. (RepaintWorker.run): Enclosed work stuff in try finally block in @@ -22895,15 +32449,15 @@ (paintDirtyRegions): Compute repaint order here, based on size of damaged regions. Fine tuned synchronization. Avoid use of working copies of dirtyComponent. - + 2006-02-02 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insertUpdate): JoinNextDirection should push the 'next' paragraph on the stack. - + 2006-02-02 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insertUpdate): Rewrote code for Originate. This prevents leaves being created multiple times. If it is on the last @@ -22912,44 +32466,44 @@ (insertContentTag): Rewrote to add new leaf directly if this is a branch with no children. Otherwise, it recreates the remainder of the tree as before. - + 2006-02-02 Ito Kazumitsu - + * gnu/regexp/REMatch.java(REMatchList): New inner utility class for making a list of REMatch instances. * gnu/regexp/RETokenOneOf.java(match): Rewritten using REMatchList. * gnu/regexp/RETokenRepeated.java(findDoables): New method. (match): Rewritten using REMatchList. (matchRest): Rewritten using REMatchList. - + 2006-02-02 Audrius Meskauskas - + * examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java (friendsMove): Call repaint() only after endOfGame is assigned. - + 2006-02-02 Mark Wielaard - + Fixes bug #25769 reported by Artemus Harper * java/util/AbstractCollection.java (toString): Only use Iterator, check whether collection contains itself. - + 2006-02-01 Casey Marshall - + Partial fix for PR classpath/25143. * javax/crypto/EncryptedPrivateKeyInfo.java (algName): new field. (): fill in `algName,' derive `algOid' from `algName.' (getOid): new method. (encode): embed NULL value for parameters if `params' is `null.' - + 2006-02-01 Casey Marshall - + Tag check and OTHER_NAME fixes suggested by Rafael Teixeira . * gnu/java/security/x509/ext/GeneralNames.java (): fix tag check; fix OTHER_NAME parsing; fix DIRECTORY_NAME parsing. - + 2006-02-01 Casey Marshall - + toString fix suggested by Rafael Teixeira . * gnu/java/security/der/DERValue.java (getLength, getEncoded, getEncodedLength): throw an exception, @@ -22962,28 +32516,28 @@ directly. 2006-02-01 Tom Tromey - + * java/security/Security.java (loadProviders): Use system class loader. - + 2006-02-01 Mark Wielaard - + * gnu/regexp/RE.java (getRETokenNamedProperty): Chain exception. * gnu/regexp/RETokenNamedProperty.java (LETTER, MARK, SEPARATOR, SYMBOL, NUMBER, PUNCTUATION, OTHER): New final byte[] fields. (getHandler): Check for grouped properties L, M, Z, S, N, P or C. (UnicodeCategoriesHandler): New private static class. - + 2006-02-01 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java: Removed unneeded fields. (insertUpdate): Removed field initialization. (insertContentTag): Rewrote part of function. Still not complete. - + 2006-02-01 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insertParagraph): Cleaned up code. (insertFirstContentTag): Fixed call to recreateLeaves. @@ -23002,49 +32556,49 @@ scripts/unicode-blocks.pl and doc/unicode/Blocks-4.0.0.txt. * scripts/unicode-blocks.pl: Copied this over from the generics branch but replaced some 1.5-only features (such as enum). - + 2006-01-31 Roman Kennke - + * javax/swing/text/PasswordView.java (drawSelectedText): Use drawEchoCharacter() method to draw echo character. (drawUnselectedText): Use drawEchoCharacter() method to draw echo character. - + 2006-01-31 Roman Kennke - + * javax/swing/JTextField.java (getPreferredSize): Also include textfield's insets in width calculation. - + 2006-01-31 Roman Kennke - + * javax/swing/plaf/basic/BasicTextUI.java (getPreferredSize): Include the textcomponent's insets in preferredSize. - + 2006-01-31 Roman Kennke - + * javax/swing/table/DefaultTableCellRenderer.java (getTableCellRendererComponent): Moved setting of the value into setValue(). Removed (bogus) special handling of JTextField values. (setValue): Made ?: statement more clear by rewriting it with if .. else. - + 2006-01-31 Roman Kennke - + * javax/swing/JLayeredPane.java (insertIndexForLayer): Fixed algorithm to correctly determine inser index for positions >= 0. (addImpl): Fixed API docs for the index parameter. - + 2006-01-31 Mark Wielaard - + * java/net/URI.java (getURIGroup): Check for null to see whether group actually exists. - + 2006-01-31 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (changeUpdate): Fixed calls to split to incorporate new parameter. @@ -23053,22 +32607,22 @@ (insertContentTag): Fixed check to use recreateLeaves. Added a FIXME comment. (split): Added a new parameter for edits. - + 2006-01-31 Roman Kennke - + * javax/swing/plaf/basic/BasicRootPaneUI.java (installDefaults): Don't install a background color here. - + 2006-01-31 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insert): Removed comment. (insertUpdate): Added comment. (recreateLeaves): Removed call to push newBranch onto the stack. This does not need to be done here. - + 2006-01-31 Chris Burdess - + * gnu/xml/stream/SAXParser.java, gnu/xml/stream/UnicodeReader.java, gnu/xml/stream/XIncludeFilter.java, @@ -23105,15 +32659,15 @@ * javax/swing/plaf/text/Utilites.java (drawTabbedText): The coordinates denote the baseline of the text not the upper left corner. - + 2006-01-31 Roman Kennke - + * javax/swing/plaf/basic/BasicTextUI.java (createKeymap): Don't store KeyBindings[] as focusInputMap in UIManager. Added FIXME regarding the implementation of this method. - + 2006-01-30 David Gilbert - + * examples/gnu/classpath/examples/swing/ButtonDemo.java (ButtonDemo): Move content initialisation to new method, (initFrameContent): New method, @@ -23123,15 +32677,15 @@ * examples/gnu/classpath/examples/swing/ScrollBarDemo.java: Likewise, * examples/gnu/classpath/examples/swing/SliderDemo.java: Likewise, * examples/gnu/classpath/examples/swing/TextFieldDemo.java: Likewise. - + 2006-01-30 David Gilbert - + * examples/gnu/classpath/examples/swing/Demo.java (Demo): Set frame size, (mkButtonBar): Removed stacked sub-panels. - + 2006-01-30 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java: Added new fields. (insert): Initialized fields. Removed call to addEdit, @@ -23149,16 +32703,16 @@ (recreateLeaves): Fixed code and cleaned it up a bit. (insertFracture): Set fracNotCreated field. (addEdit): Removed, this method is not needed. - + 2006-01-30 Roman Kennke - + * javax/swing/JRootPane.java (RootLayout.prefSize): Removed caching for preferredSize. (RootLayout.invalidateLayout): Likewise. (RootLayout.preferredLayoutSize): Likewise. - + 2006-01-30 Roman Kennke - + PR classpath/26035 * javax/swing/JFrame.java (frameInit): Handle the defaultLookAndFeelDecorated flag. @@ -23185,23 +32739,23 @@ IllegalArgumentException when orientation is illegal. (JProgressBar(int, int, int)): Likewise and throw exception. (setOrientation): Likewise. - + 2006-01-30 Roman Kennke - + * javax/swing/ViewportLayout.java (minimumLayoutSize): Rewritten to unconditionally return (4,4). - + 2006-01-30 Mark Wielaard - + * javax/swing/JProgressBar.java (orientation): Always set by constructor. (JProgressBar(int)): Document default on 'illegal' value. (JProgressBar(int, int, int)): Likewise and set orientation to HORIZONTAL when 'illegal'. (setOrientation): Likewise. - + 2006-01-30 Roman Kennke - + * javax/swing/plaf/basic/BasicListUI.java (ListDataHandler.contentsChanged): Update the updateLayoutStateNeeded flag. @@ -23213,30 +32767,30 @@ listeners on new list model. (maybeUpdateLayoutState): Don't consider the validation state of the list. - + 2006-01-30 Mark Wielaard - + * gnu/xml/transform/ApplyTemplatesNode.java (clone): Check whether sortKeys is null. - + 2006-01-30 Roman Kennke - + * javax/swing/JLayeredPane.java (insertIndexForLayer): Fixed algorithm to correctly insert components within different layers and -1 position. - + 2006-01-30 Mark Wielaard - + * doc/api/Makefile.am (create_html): Add -validhtml. - + 2006-01-30 Roman Kennke - + * javax/swing/JLayeredPane.java (insertIndexForLayer): Fixed algorithm to correctly insert components within same layer and -1 position. - + 2006-01-30 Ito Kazumitsu - + Fixes bug #24876 * gnu/regexp/gnu/regexp/RE.java(REG_TRY_ENTIRE_MATCH): New execution flag. @@ -23260,7 +32814,7 @@ * gnu/javax/crypto/mac/HMac.java (clone): Clone ipadHash, opadHash, and the ipad buffer. * gnu/javax/crypto/mac/BaseMac.java (clone): Clone underlyingHash. - + 2006-01-30 Audrius Meskauskas PR 26027 @@ -23277,19 +32831,19 @@ * java/beans/Encoder.java: (setExceptionListener): Use shared DefaultExceptionListener instance. - + 2006-01-29 Roman Kennke - + * javax/swing/ScrollPaneLayout.java (minimumLayoutSize): Rewritten to match JDKs behaviour. - + 2006-01-29 Mark Wielaard - + * java/net/SocketPermission.java (setActions): Trim and lower case action. - + 2006-01-29 Raif S. Naffah - + * gnu/java/security/util/Prime2.java (passEulerCriterion): Was incorrectly failing primality test for some known primes. Fixed. (passFermatLittleTheorem): Removed. @@ -23297,55 +32851,55 @@ (isProbablePrime): Cache primes that pass the primality tests. Use BigInteger.isProbablePrime(int) for primality tests. (debugBI): New static debugging method. - + 2006-01-28 Roman Kennke - + * javax/swing/plaf/basic/BasicListUI.java (updateLayoutState): Removed unneeded special case for VERTICAL. - + 2006-01-28 Roman Kennke - + * javax/swing/plaf/basic/BasicListUI.java (getCellBounds): Determine correct list width when having a layoutOrientation of VERTICAL. (maybeUpdateLayoutState): Don't consider the validation state of the list. - + 2006-01-28 Mark Wielaard - + Reported by Dimitri Fontaine * java/awt/print/NoPrinterJob.java: New (fake) class. * java/awt/print/PrinterJob.java (getPrinterJob): Return NoPrinterJob. - + 2006-01-28 Mark Wielaard - + * gnu/javax/crypto/mac/HMac.java (clone): Cast cloned ipad to byte[]. - + 2006-01-28 Audrius Meskauskas - + * gnu/classpath/examples/swing/Demo.java (mkTree): Make a larger tree. (addChildren): New method. - + 2006-01-28 Raif S. Naffah - + * gnu/javax/crypto/jce/mac/MacAdapter.java (MacAdapter(IMac, Map)): New constructor for cloning purposes. (clone): New implementation that ensures cloning. * gnu/javax/crypto/mac/HMac.java (clone): Implement Cloneable. * gnu/java/security/Registry.java: Changed value of GNU_SECURITY to "GNU". - + 2006-01-27 Audrius Meskauskas - + * javax/swing/plaf/basic/BasicTreeUI.java (updateCachedPreferredSize): Call updateCurrentVisiblePath. - + 2006-01-27 Roman Kennke - + * examples/gnu/classpath/examples/swing/MiniDemo.java: New file. - + 2006-01-27 Roman Kennke - + * examples/gnu/classpath/examples/swing/ButtonDemo.java (createContent): Only create new content if we don't have one already. @@ -23367,9 +32921,9 @@ * examples/gnu/classpath/examples/swing/TextFieldDemo.java (createContent): Only create new content if we don't have one already. - + 2006-01-27 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insertFirstContentTag): Removed check, not needed. This still needs to be fixed for some cases. Added call to @@ -23379,19 +32933,19 @@ leaves after the initial insertion. This still needs more work. (handleInsertAfterNewline): Removed else, not needed. - + 2006-01-27 Roman Kennke - + * javax/swing/JLayeredPane.java (inserIndexForLayer): Fixed direction of search. - + 2006-01-27 Audrius Meskauskas - + * javax/swing/JTree.java (constructor): Put EXPANDED for the root node into nodeStates. - + 2006-01-27 Roman Kennke - + * javax/swing/JLayeredPane.java (FRAME_CONTENT_LAYER): Made field final. (componentToLayer): Made field private. @@ -23427,9 +32981,9 @@ statement. * java/lang/String.java: (String(int[], int, int)): New API constructor. - + 2006-01-27 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insert): Moved this loop to insertUpdate. (insertUpdate): Likewise. Fixed variable @@ -23457,21 +33011,21 @@ * vm/reference/java/io/VMObjectInputStream.java (loaderAction.run): If no user class loaders found on the stack, return the thread context class loader. (currentClassLoader): Explained. - + 2006-01-27 Roman Kennke - + * java/awt/Container.java (swapComponents): Removed unspecified method. * javax/swing/JLayeredPane.java (setPosition): Reimplemented correctly. (swapComponents): New helper method. - + 2006-01-27 Mark Wielaard - + * configure.ac: Set version to 0.21-pre. - + 2006-01-27 Roman Kennke - + PR classpath/25968 * javax/swing/JComponent.java (findOverlapFreeParent): Improved the algorithm to make better use @@ -23482,14 +33036,14 @@ (computeBlit): Fixed check to decide if blitting is possible or not, so that it doesn't blit if nothing was scrolled (in order to update the buffer when the view updates itself). - + 2006-01-27 Roman Kennke - + * javax/swing/plaf/metal/MetalFileChooserUI.java (createList): Don't set scrollbar policy. - + 2006-01-27 Roman Kennke - + * javax/swing/plaf/basic/BasicPopupMenuUI.java (PopupMenuHandler.popupMenuWillBecomeInvisible): Fixed to also handle non-Swing toplevel containers. @@ -23498,9 +33052,9 @@ * javax/swing/Popup.java (JWindowPopup.JWindowPopup()): Correctly set parent window on popup. - + 2006-01-27 Roman Kennke - + * javax/swing/plaf/basic/BasicInternalFrameUI.java (InternalFramePropertyChangeListener): Don't implement VetoableChangeListener. @@ -23509,9 +33063,9 @@ (installListeners): Don't install vetoableChangeListener. * javax/swing/event/DocumentEvent.java (EventType): Made class final. - + 2006-01-27 Roman Kennke - + * javax/swing/SwingUtilities.java (calculateInsetArea): Removed unneeded method. The method calculateInnerArea has the same purpose and is actually specified. @@ -23519,9 +33073,9 @@ * javax/swing/plaf/basic/BasicMenuItemUI.java (paintMenuItem): Use SwingUtilities.calculateInnerArea() instead of SwingUtilities.calculateInsetArea(). - + 2006-01-27 Roman Kennke - + * javax/swing/plaf/basic/BasicTreeUI.java (installDefaults): Removed requestFocusInWindow() call. * javax/swing/JComponent.java @@ -23530,9 +33084,9 @@ (printChildren): Made method protected. (printComponent): Made method protected. (printBorder): Made method protected. - + 2006-01-27 Roman Kennke - + * javax/swing/AbstractButton.java (ButtonChangeListener.ButtonChangeListener()): Made constructor package private. @@ -23572,26 +33126,26 @@ (AccessibleJWindow.AccessibleJWindow): Made constructor protected. * javax/swing/RepaintManager.java (RepaintWorker): Made class private. - + 2006-01-27 Roman Kennke - + * gnu/java/awt/peer/swing/SwingComponentPeer.java (handleEvent): Removed debug statement. - + 2006-01-27 Roman Kennke - + * java/awt/Component.java (coalescePaintEvents): Don't try to optimize coalescing. This hurts more than it helps. - + 2006-01-26 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (createFracture): Commented out a known problem, added FIXME tag. - + 2006-01-26 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (ElementBuffer): Added fields. (remove): Initialized pos. @@ -24084,9 +33638,9 @@ * java/lang/Character.java: (codePointCount(char[], int, int)): New API method. (codePointCount(CharSequence, int, int)): Likewise. - + 2006-01-25 Audrius Meskauskas - + PR 25205 * javax/swing/DefaultCellEditor.java (getTreeCellEditorComponent): Rewritten. @@ -24121,13 +33675,13 @@ (stopCellEditing): Rewritten. (stopEditingTimer): New method. (valueChanged): Do not configure editing component here. - + 2006-01-25 Roman Kennke - + * javax/swing/text/html/FormView.java: New file. - + 2006-01-25 Roman Kennke - + * javax/swing/JSplitPane.java (addImpl): Call resetToPreferredSizes() when no dividerLocation has been set in order to set an initial layout. @@ -24146,17 +33700,17 @@ * javax/swing/plaf/basic/BasicLookAndFeel.java (initComponentDefaults): Added SplitPaneDivider.draggingColor default value. - + 2006-01-25 Roman Kennke - + * javax/swing/JSplitPane.java (addImpl): Removed invalidate() and layout() call. * javax/swing/plaf/basic/BasicSplitPaneUI.java (PropertyHandler.propertyChange): Remove layoutContainer() and repaint() call. - + 2006-01-25 Roman Kennke - + * configure.ac * native/Makefile.am * native/jni/classpath/Makefile.am @@ -24259,9 +33813,9 @@ * native/target/posix/target_posix_network.c * native/target/posix/target_posix_network.h: Removed. - + 2006-01-24 Wolfgang Baer - + * javax/print/PrintService.java, * javax/print/DocPrintJob.java, * javax/print/CancelablePrintJob.java: @@ -24293,32 +33847,32 @@ * java/beans/DefaultPersistenceDelegate: (initialize): Added call to superclass' implementation, added early return. - + 2006-01-24 Tom Tromey - + * java/util/regex/PatternSyntaxException.java: Added @since. * java/util/regex/Matcher.java (Matcher): Implements MatchResult. * java/util/regex/MatchResult.java: New file. - + 2006-01-24 David Gilbert - + * javax/swing/text/StringContent.java: Added API docs all over, plus minor reformatting. - + 2006-01-24 Gary Benson - + * java/net/SocketPermission.java: Implemented serialization. - + 2006-01-24 David Gilbert - + * javax/swing/text/StringContent.java (remove): Modified argument check to prevent removal of last character, (getChars): Removed null argument check to allow NullPointerException, added API docs, (checkLocation): Added API docs and white space. - + 2006-01-23 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insertUpdate): Should only call createFracture with StartTagType. Added check. @@ -24354,20 +33908,20 @@ * javax/swing/plaf/synth/package.html: New files. Added the public API and framework classes for the Synth look and feel. - + 2006-01-23 David Gilbert - + * javax/swing/text/Segment.java: API docs all over. - + 2006-01-23 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (split): Should not use createLeafElement and createBranchElement here. We should just instaniate the LeafElements and BranchElements instead to avoid the case where create*Element is overridden. - + 2006-01-23 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insertFirstContentTag): Moved check outside of if-statement. This should be checked before creating the new leaf element. @@ -24377,18 +33931,18 @@ greater than the offset, then we need to create a temp leaf as a place holder. Otherwise, the leaf elements should be created normally. - + 2006-01-23 Gary Benson - + * java/net/SocketPermission.java: Almost completely rewritten. - + 2006-01-23 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insertFracture): Set temp leaf's attributes to prevent an NPE. - + 2006-01-23 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java: Formatted ElementBuffer and added new fields. (remove): Added check to determine if length is 0. @@ -24461,14 +34015,14 @@ an empty string matched. Added special handling of {0}. * gnu/regexp/RETokenBackRef.java(match): Sets empty flag when an empty string matched. Fixed the case insensitive matching. - + 2006-01-21 Roman Kennke - + * javax/swing/plaf/metal/MetalSplitPaneDivider.java (paint): Added painting of border if one is installed. - + 2006-01-21 Roman Kennke - + PR classpath/25843: * javax/swing/plaf/basic/BasicBorders.java (getSplitPaneDividerBorder): Use new border constructor @@ -24506,52 +34060,52 @@ (getMinimumDividerLocation): Fixed calculation of minimum location. 2006-01-21 Guilhem Lavaux - + * m4/acinclude.m4 (CLASSPATH_WITH_GLIBJ): Add support for fastjar. - + * lib/Makefile.am: Likewise. - + 2006-01-21 Roman Kennke - + * javax/swing/PopupFactory.java (getPopup): If there is no Swing root found in any way, use a heavyweight popup. This is useful for mixed Swing/AWT GUIs, or for the Swing AWT peers. - + 2006-01-20 Tom Tromey - + * gnu/java/net/protocol/http/HTTPURLConnection.java (connect): Read response body for redirect. - + 2006-01-20 Chris Burdess - + * gnu/java/net/protocol/http/HTTPURLConnection.java: Don't follow redirects on 304. - + 2006-01-20 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (pad): Removed, not needed. (printElements): Likewise. (printEdit): Likewise. - + 2006-01-20 Roman Kennke - + * javax/swing/text/DefaultFormatter.java (DefaultFormatter): Don't set a value class. - + 2006-01-19 Audrius Meskauskas - + * javax/swing/DefaultCellEditor.java: Commented. - + 2006-01-19 Roman Kennke - + * javax/swing/JOptionPane.java Added cast to Frame for JDialog constructor. - + 2006-01-19 Roman Kennke - + * javax/swing/JWindow.java (JWindow(Window)): Fixed to accept null owner argument. (JWindow(Window,GraphicsConfiguration)): Fixed to accept null @@ -24565,22 +34119,22 @@ is called. * javax/swing/JFileChooser.java (createDialog): Added cast to Frame for JDialog constructor. - + 2006-01-19 Audrius Meskauskas - + * javax/swing/JTable.java (rowAtPoint): Rewritten. - + 2006-01-19 Roman Kennke - + * javax/swing/JWindow.java: Added API docs to the constructors. - + 2006-01-19 Audrius Meskauskas - + * javax/swing/JTable.java: Commenting method headers. (EditorUpdateTimer): Removed. - + 2006-01-19 Roman Kennke - + * javax/swing/JDialog.java (JDialog()): Call SwingUtilities.getOwnerFrame() with null. (JDialog(Frame,String,boolean,GraphicsConfiguration)): Call @@ -24600,9 +34154,9 @@ * javax/swing/SwingUtilities.java (getOwnerFrame): Changed to take a owner parameter that is returned as owner frame when not null. - + 2006-01-19 Roman Kennke - + * gnu/java/awt/peer/swing/SwingFramePeer.java (handleMouseEvent): Fixed handling of mouse events. (handleMouseMotionEvent): Fixed handling of mouse events. @@ -24693,27 +34247,27 @@ * java/security/SignatureSpi.java: Likewise. * java/security/SignedObject.java: Likewise. * java/security/Signer.java: Likewise. - + 2006-01-18 Roman Kennke - + * configure.ac: Added --enable-posix-layer option to enable build of the posix target layer. - + 2006-01-18 Roman Kennke - + * native/jni/java-net/java_net_VMInetAddress.c (Java_java_net_VMInetAddress_lookupInaddrAny): Use target native macro for INADDR_ANY. - + 2006-01-18 Roman Kennke - + * native/jni/java-util/java_util_VMTimeZone.c: (Java_java_util_VMTimeZone_getSystemTimeZoneId): Rewritten to use target native layer. (jint_to_charbuf): Removed unneeded helper function. - + 2006-01-18 Roman Kennke - + * native/jni/java-nio/gnu_java_nio_VMPipe.c: Removed unnecessary include. * native/jni/java-nio/gnu_java_nio_VMSelector.c: @@ -24781,14 +34335,14 @@ * native/jni/java-net/javanet.h: Defined SOCKET_TIMEOUT_EXCEPTION, PORT_UNREACHABLE_EXCEPTION and SOCKOPT_SO_BROADCAST. - + 2006-01-17 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (insert): Cleaned up loop. No need to make so many calls to getAddedElements and getRemovedElements. (insertFracture): Removed unneeded array. - + 2006-01-17 Lillian Angel * javax/swing/text/JTextComponent.java @@ -24806,9 +34360,9 @@ (paste): Implemented. (replaceText): Implemented. (selectText): Implemented. - + 2006-01-17 Anthony Balkissoon - + * javax/swing/text/DefaultStyledDocument.java: (pad): New debugging method. (printElements): Likewise. @@ -24856,9 +34410,9 @@ * javax/swing/text/StyleContent.java: (SmallAttributeSet.toString): Fixed an off-by-one error in the loop that was causing an ArrayOutOfBoundsException. - + 2006-01-17 Roman Kennke - + * native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c: (Java_gnu_java_nio_channels_FileChannelImpl_init): Improved exception messages a little. @@ -24897,9 +34451,9 @@ to use the corresponding target native macro. (Java_gnu_java_nio_channels_FileChannelImpl_unlock): Reimplemented to use the corresponding target native macro. - + 2006-01-17 Lillian Angel - + * javax/swing/text/DefaultTextUI.java: Added deprecated tag. * javax/swing/text/JTextComponent.java @@ -24938,29 +34492,29 @@ (selectText): Likewise. (setAttributes): Likewise. (getAccessibleContext): Implemented. - + 2006-01-17 Ito Kazumitsu - + Fixes bug #25817 * gnu/regexp/RETokenRange.java(constructor): Keep lo and hi as they are. (match): Changed the case insensitive comparison. - + 2006-01-17 Ito Kazumitsu - + * gnu/regexp/RETokenChar.java(chain): Do not concatenate tokens whose insens flags are diffent. - + 2006-01-17 Roman Kennke - + * native/target/generic/target_generic_network.c: (targetGenericNetwork_receive): Fixed signature to match the corresponding .h file. (targetGenericNetwork_receiveWithAddressPort): Fixed signature to match the corresponding .h file. - + 2006-01-17 Roman Kennke - + * native/jni/classpath/jcl.c: (JCL_malloc): Replaced calls to malloc with the corresponding target layer macro. @@ -25022,9 +34576,9 @@ (targetGenericNetwork_receive): Fixed signature to use signed chars for buffer parameter to avoid warning when passing a jbyte to the function. - + 2006-01-17 David Gilbert - + * javax/swing/text/StyleConstants.java (getAlignment): Removed isDefined() check, so that resolving parent is used for lookup, @@ -25060,9 +34614,9 @@ * gnu/java/net/protocol/http/Request.java (createResponseBodyStream): Remove Content-Encoding for compressed streams. - + 2006-01-16 Chris Burdess - + * gnu/xml/stream/XMLParser.java, gnu/xml/stream/XMLStreamWriterImpl.java: Thoroughly check XMLStreamWriter arguments for conformance to the XML specifications. @@ -25116,25 +34670,25 @@ * native/target/generic/Makefile.am: Include new memory and math layer. * native/target/posix/Makefile.am: New file. Includes posix in dist. - + 2006-01-16 Ito Kazumitsu - + Fixes bug #22884 * gnu/regexp/RE.java(initialize): Parse embedded flags. * gnu/regexp/RESyntax.java(RE_EMBEDDED_FLAGS): New syntax bit. - + 2006-01-16 Roman Kennke - + * native/target/generic/target_generic_network.c: Fixed typo. * native/target/generic/target_generic_network.h: Fixed typo. - + 2006-01-16 Nicolas Geoffray - + * doc/vmintegration.texinfo: Updated subsection of the java.lang.InstrumentationImpl documentation. - + 2006-01-16 Roman Kennke - + * native/target/RTEMS/target_native.h, * native/target/RTEMS/target_native_file.h, * native/target/RTEMS/target_native_io.h, @@ -25143,9 +34697,9 @@ * native/target/RTEMS/target_native_misc.h, * native/target/RTEMS/target_native_network.h: New files. Implement the target native layer for the RTEMS platform. - + 2006-01-16 Roman Kennke - + * native/target/SunOS/target_native.h, * native/target/SunOS/target_native_file.h, * native/target/SunOS/target_native_io.h, @@ -25154,9 +34708,9 @@ * native/target/SunOS/target_native_misc.h, * native/target/SunOS/target_native_network.h: New files. Implement the target native layer for the SunOS platform. - + 2006-01-16 Roman Kennke - + * native/target/MinGW/target_native.h, * native/target/MinGW/target_native_file.h, * native/target/MinGW/target_native_io.h, @@ -25166,9 +34720,9 @@ * native/target/MinGW/target_native_network.h: New files. Implement the target native layer for the MinGW platform. - + 2006-01-16 Audrius Meskauskas - + PR 25770 * javax/swing/DefaultCellEditor.java (delegate): Assign new instance immediately. @@ -25258,13 +34812,13 @@ * native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c: Likewise. * native/target/generic/target_generic_file.h: Likewise. - + 2006-01-16 David Gilbert - + * javax/swing/text/MutableAttributeSet.java: Updated API docs all over. - + 2006-01-16 David Gilbert - + * javax/swing/text/SimpleAttributeSet.java (SimpleAttributeSet()): Initialise storage directly, (SimpleAttributeSet(AttributeSet)): Removed null check and documented @@ -25272,27 +34826,27 @@ (containsAttribute): If key is found locally, don't check resolving parent if the value doesn't match, (getAttribute): Removed redundant instanceof and cast. - + 2006-01-16 Gary Benson - + * java/lang/System.java (setSecurityManager): Ensure policy files are loaded before a security manager is put in place. - + 2006-01-16 David Gilbert - + * javax/swing/text/SimpleAttributeSet.java: Updated API docs all over. - + 2006-01-16 Wolfgang Baer - + * javax/print/attribute/standard/MediaSize.java: (static_initializer): Added comment. (MediaSize): Added javadoc to mention cache registration. (MediaSize): Likewise. (MediaSize): Likewise. (MediaSize): Likewise. - + 2006-01-16 Raif S. Naffah - + PR classpath/25202 * gnu/javax/security/auth/login/ConfigFileTokenizer.java: New class. * gnu/javax/security/auth/login/ConfigFileParser.java: New class. @@ -25305,6 +34859,19 @@ (getConfig(): replaced calls to NullConfiguration with GnuConfiguration. +2006-01-15 Tom Tromey + + * javax/swing/text/html/HTMLDocument.java (parseBuffer): Genericized. + * javax/swing/text/StyleContext.java (removeAttributes): Genericized. + * java/beans/PersistenceDelegate.java (initialize): Genericized. + * java/beans/Encoder.java (getPersistenceDelegate): Genericized. + (setPersistenceDelegate): Likewise. + +2006-01-15 Wolfgang Baer + + * javax/print/attribute/standard/PrinterStateReasons.java: + (printerStateReasonSet): Genericize the return type. + 2006-01-15 Audrius Meskauskas * javax/swing/table/DefaultTableCellRenderer.java @@ -25321,19 +34888,19 @@ Fixes bug #25387 * javax/print/Doc.java: Added and enhanced documentation. * javax/print/SimpleDoc.java: New file. - + 2006-01-14 Wolfgang Baer - + * javax/print/attribute/standard/MediaSize.java: (Other.TABLOID): New MediaSize added in 1.5 - + 2006-01-14 Chris Burdess - + * gnu/xml/stream/SAXParser.java: Ensure that parser is reset correctly when I/O and runtime exceptions occur during parsing. - + 2006-01-13 Roman Kennke - + * gnu/java/awt/peer/swing/SwingButtonPeer.java, * gnu/java/awt/peer/swing/SwingCanvasPeer.java, * gnu/java/awt/peer/swing/SwingComponent.java, @@ -25350,37 +34917,37 @@ * gnu/java/awt/peer/swing/SwingWindowPeer.java, * gnu/java/awt/peer/swing/package.html: New files. Implemented some basic AWT peers based on Swing. - + 2006-01-13 Roman Kennke - + * java/awt/peer/ComponentPeer.java: Added API docs all over. - + 2006-01-13 Roman Kennke - + * java/awt/MenuComponent.java: Reformatted to better match our coding style. - + 2006-01-13 Roman Kennke - + * java/awt/Frame.java: Reformatted to better match our coding style. - + 2006-01-13 Roman Kennke - + * java/awt/MenuBar.java (accessibleContext): Removed unnecessary field. This is already defined in MenuComponent. (setHelpMenu): Renamed the peer variable to myPeer because it was hiding a field of MenuComponent. (addNotify): Removed unnecessary cast. - + 2006-01-13 Roman Kennke - + * java/awt/MenuBar.java: Reformatted to better match our coding style. - + 2006-01-13 Roman Kennke - + * java/awt/MenuBar.java (frame): New field. (removeNotify): Clear frame field when beeing removed from the @@ -25394,9 +34961,9 @@ dispatchEventImpl() to here. (dispatchEventImpl): Moved handling of old style events to dispatchEvent(). - + 2006-01-13 Roman Kennke - + * java/awt/Component.java (dispatchEvent): Moved handling of old style events from dispatchEventImpl() to this method. @@ -25405,14 +34972,14 @@ dispatchEvent(). 2006-01-13 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (createDefaultRoot): Removed FIXME. (setLogicalStyle): Added fireUndoableEditUpdate call and removed FIXME. - + 2006-01-13 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java (Edit): New inner class. (changeUpdate): Changed addEdit call to add a new @@ -25424,9 +34991,9 @@ (insertContentTag): Likewise. (insert): Added loop to go through edits Vector and perform addEdit on each object. - + 2006-01-13 Chris Burdess - + * gnu/xml/transform/AbstractNumberNode.java, gnu/xml/transform/ApplyImportsNode.java, gnu/xml/transform/ApplyTemplatesNode.java, @@ -25464,9 +35031,9 @@ * doc/www.gnu.org/announce/20060113.wml: New file. * doc/www.gnu.org/newsitems.txt: Add 0.20 release announcement. * doc/www.gnu.org/downloads/downloads.wml: Add 0.20. - + 2006-01-13 Lillian Angel - + * javax/swing/text/DefaultStyledDocument.java: Removed unused fields. (insert): Removed unused fields. @@ -25476,17 +35043,22 @@ (insertContentTag): Removed call to prepareContentInsertion. (printElements): Removed, not needed. (attributeSetsAreSame): Removed, not needed. + +2005-01-13 Mark Wielaard -2006-01-13 Mark Wielaard + * java/lang/reflect/Modifier.java (toString(int, StringBuffer)): + Duplicate of toString(int, StringBuilder). + +2005-01-13 Mark Wielaard * configure.ac: Set version to 0.20. * NEWS: Add entries for all the new work done. -2006-01-13 Mark Wielaard +2005-01-13 Mark Wielaard * javax/swing/text/DefaultCaret.java: Chain all AssertionErrors. -2006-01-13 Mark Wielaard +2005-01-13 Mark Wielaard * java/util/regex/Pattern.java (Pattern): Chain REException. @@ -25494,19 +35066,19 @@ * gnu/xml/xpath/NameTest.java: Removed debugging output. -2006-01-13 Jeroen Frijters +2005-01-13 Jeroen Frijters * java/security/Security.java (getProperty): Added hack to skip security check when trusted code is direct caller. -2006-01-13 Jeroen Frijters +2005-01-13 Jeroen Frijters * java/io/PrintStream.java (line_separator, PrintStream(OutputStream,boolean)): Use SystemProperties. -2006-01-13 Jeroen Frijters +2005-01-13 Jeroen Frijters * gnu/java/nio/charset/Provider.java: Added comment about its special relation with CharsetProvider. @@ -25518,12 +35090,12 @@ (CharsetProvider): Add special case to skip security check for built in providers. -2006-01-13 Mark Wielaard +2005-01-13 Mark Wielaard * javax/swing/JMenuItem.java (JMenuItem(Action)): Check whether name, accel, mnemonic and command are defined before setting. -2006-01-12 Mark Wielaard +2005-01-12 Mark Wielaard * javax/swing/plaf/metal/MetalFileChooserUI.java (FileRenderer.getListCellRendererComponent): Set empty name and null @@ -26610,3 +36182,4 @@ * java/net/InetAddress.java (getAllByName): use LOCALHOST if localhost is null or is an empty string. Trim hostname before lookup. + diff --git a/libjava/classpath/ChangeLog-2004 b/libjava/classpath/ChangeLog-2004 index 2f2a97129e4..58e8d1e0459 100644 --- a/libjava/classpath/ChangeLog-2004 +++ b/libjava/classpath/ChangeLog-2004 @@ -1598,6 +1598,14 @@ * javax/swing/plaf/basic/BasicComboBoxUI.java: (paintCurrentValue): renders "" if no item is selected +2004-12-18 Tom Tromey + + * java/lang/String.java (String(StringBuilder)): Rewrote. + * java/lang/StringBuilder.java (shared): Removed. + (ensureCapacity): Updated. + (substrinng): Likewise. + (toString): Likewise. + 2004-12-17 Michael Koch * gnu/java/locale/LocaleInformation_de.java, @@ -2608,47 +2616,47 @@ change event. 2004-11-28 Michael Koch - + * gnu/java/awt/peer/gtk/GdkGraphics2D.java: Fix typo. - + 2004-11-27 Sven de Marothy - + * gnu/java/awt/peer/gtk/GdkGraphics2D.java - Reformatted. - (drawRaster): Added FIXME. - (drawRaster): Changed to work with packed-sample models. - + Reformatted. + (drawRaster): Added FIXME. + (drawRaster): Changed to work with packed-sample models. + 2004-11-26 Michael Koch - + * javax/swing/JList.java, javax/swing/JTree.java: Added much new methods and fixed much methods setting bound properties. - + 2004-11-26 Sven de Marothy - - * gnu/java/awt/peer/gtk/GdkGraphics2D.java - (drawRaster): Set alpha component to opaque if image has no alpha + + * gnu/java/awt/peer/gtk/GdkGraphics2D.java + (drawRaster): Set alpha component to opaque if image has no alpha 2004-11-26 Jeroen Frijters - + * java/io/File.java (canWrite): Moved directory write test to VMFile. * vm/reference/java/io/VMFile.java (canWriteDirectory): New method. - + 2004-11-25 Sven de Marothy - + * java/awt/image/MultiPixelPackedSampleModel.java (MultiPixelPackedSampleModel): Corrected parameters, order of bit shifts and masks, stride length off by one. - + 2004-11-25 Sven de Marothy - + * java/awt/image/IndexColorModel.java (IndexColorModel): Add FIXME with respect to alpha handling. (getAlpha): Default to returning opaque pixels. - + 2004-11-25 Mark Wielaard - + * doc/vmintegration.texinfo: Fix link to Japhar. * doc/www.gnu.org/stories.wml: Likewise. * doc/www.gnu.org/announce/19990206.wml: Likewise. @@ -2668,91 +2676,91 @@ getAccessibleContext): Implement. (TextComponent): Extends Accessible. (getIndexAtPoint, getCharacterBounds): New methods. - + 2004-11-23 Jerry Quinn - + * java/awt/Button.java (AccessibleAWTButton.getAccessibleActionDescription): Explain the source of 'click'. - + 2004-11-23 Jerry Quinn - + * java/awt/Checkbox.java: Remove stub comments. - + 2004-11-23 Jerry Quinn - + * java/awt/Button.java (AccessibleAWTButton.getAccessibleActionDescription): Return 'click'. - + 2004-11-23 Jerry Quinn - + * java/awt/Checkbox.java (AccessibleAWTCheckBox): Remove todo comments. - + 2004-11-23 Jerry Quinn - + * java/awt/Checkbox.java (itemStateChanged): Implement function. (getAccessibleContext): Add AccessibleAWTCheckBox to item listeners. 2004-11-23 Jerry Quinn - + * java/awt/TextArea.java (AccessibleAWTTextArea, getAccessibleContext): Implement. * java/awt/TextField.java (AccessibleAWTTextField, getAccessibleContext): Implement. - + 2004-11-23 Jerry Quinn - + * java/awt/Checkbox.java (AccessibleAWTCheckBox): Implement. (getAccessibleContext): Implement. 2004-11-23 Jerry Quinn - + * java/awt/MenuItem.java (AccessibleAWTMenuItem): Implement. - + 2004-11-23 Jerry Quinn - + * java/awt/Choice.java (AccessibleAWTChoice): Implement. - + 2004-11-23 Jerry Quinn - + * java/awt/MenuItem.java (AccessibleAWTMenuItem): Implement. - + 2004-11-23 Michael Koch - + * javax/swing/DefaultSingleSelectionModel.java, javax/swing/JPasswordField.java, javax/swing/tree/AbstractLayoutCache.java: Reformatted and javadocs cleaned up. - + 2004-11-23 Michael Koch - + * java/nio/channels/spi/AbstractSelectableChannel.java (register): Only reuse valid selection keys. - + 2004-11-23 Michael Koch - + * gnu/java/nio/NIOServerSocket.java (getPlainSocketImpl): Removed debug code. - + 2004-11-23 Michael Koch - + * java/awt/Component.java: Fixed argument names to match javadocs. (setFont): Rewritten set property first and then fire event. (setLocale): Likewise. * javax/swing/text/JTextComponent.java (setEditable): Likewise. - + 2004-11-23 Michael Koch - + * java/util/zip/InflaterInputStream.java (onebytebuffer): Little reformatting to match libgcj's version. (read): Likewise. - + 2004-11-23 Michael Koch - + * gnu/java/nio/NIOServerSocket.java (getPlainSocketImpl): Implemented in java with reflection. * include/gnu_java_nio_NIOServerSocket.h, @@ -2761,20 +2769,20 @@ Don't generate include/gnu_java_nio_NIOServerSocket.h. * native/jni/java-nio/Makefile.am: Don't build native/jni/java-nio/gnu_java_nio_NIOServerSocket.c. - + 2004-11-22 Michael Koch - + * gnu/java/nio/SocketChannelImpl.java (read): Made check for blocking un-ambiguous. Removed wrong check for data array length. - + 2004-11-22 Patrik Reali - + * doc/www.gnu.org/newsitems.txt doc/www.gnu.org/announce/20041115.wml doc/www.gnu.org/downloads/downloads.wml: classpath 0.12 announcement - + 2004-11-21 Michael Koch - + * gnu/java/nio/SocketChannelImpl.java (read): Only return 0 when no bytes for reading available in non-blocking mode. @@ -2787,9 +2795,9 @@ (propertyChangeSupportSerializedDataVersion): Made static. * java/beans/VetoableChangeSupport.java (propertyChangeSupportSerializedDataVersion): Likewise. - + 2004-11-21 Michael Koch - + * java/awt/CardLayout.java: Made some constants static. (serialVersionUID): Made private. @@ -2798,20 +2806,20 @@ (getModifiersEx): Added missing @param tag. * java/awt/image/RGBImageFilter.java (filterRGBPixels): Reformatted, removed wrong @param tag. - + 2004-11-21 Michael Koch - + * java/net/URLConnection.java (getContent): Added missing @return tag. - + 2004-11-21 Michael Koch - + * javax/swing/text/FieldView.java, javax/swing/text/JTextComponent.java: Removed debug code. - + 2004-11-21 Jeroen Frijters - + * java/nio/DirectByteBufferImpl.java (ReadOnly): New inner subclass. (ReadWrite): New inner subclass. @@ -2828,17 +2836,17 @@ * java/nio/MappedByteBufferImpl.java (slice, duplicate): Modified to instantiate appropriate DirectByteBufferImpl subclass. - + 2004-11-21 Michael Koch - + * javax/swing/BorderFactory.java (BorderFactory): Added private constructor. * javax/swing/SwingUtilities.java (SwingUtilities): Likewise. (computeStringWidth): New method. - + 2004-11-21 Michael Koch - + * java/awt/color/ICC_Profile.java (icSigNamedColorTag): Removed. * java/awt/datatransfer/DataFlavor.java @@ -2846,9 +2854,9 @@ * java/awt/image/AffineTransformOp.java: Reworked javadocs. (TYPE_BICUBIC): Added @since tag. - + 2004-11-21 Michael Koch - + * gnu/classpath/RawData.java: Made abstract. * gnu/classpath/RawData32.java, gnu/classpath/RawData64.java: New files. @@ -2869,14 +2877,14 @@ * native/jni/java-nio/java_nio_VMDirectByteBuffer.c, * vm/reference/java/nio/VMDirectByteBuffer.java: New files. - + 2004-11-20 Tom Tromey - + * java/util/ResourceBundle.java (tryBundle): Use Class.isAssignableFrom rather than catching ClassCastException. - + 2004-11-20 Bryce McKinlay - + * java/util/ResourceBundle.java (bundleCache): Renamed from resourceBundleCache. Update comments. (getObject): Don't catch MissingResourceException. @@ -2892,9 +2900,9 @@ name using given classloader. (tryBundle(String, Locale, ClassLoader, boolean): New. Qualify baseName for given Locale and attempt to load bundle. - + 2004-11-18 Jeroen Frijters - + * gnu/java/io/decode/DecoderUTF8.java (charsInByteArray, convertToChars, read): Added surrogate pair support. @@ -2935,96 +2943,96 @@ (OutputStreamWriter): Removed call to Encoder.setBadCharValue(). * java/lang/String.java: Removed try/catch block around Encoder/Decoder calls that no longer throw CharConversionException. - + 2004-11-17 Michael Koch - + * java/awt/print/PrinterJob.java: Reformatted. - + 2004-11-17 Jerry Quinn - + * java/awt/print/PrinterJob.java (lookupPrintServices, getPrintService, setPrintService): Implement. (lookupStreamPrintServices): Add commented out implementation. (printer): New field. - + 2004-11-17 Michael Koch - + * java/net/Socket.java (getPort): Return 0 in error case. - + 2004-11-17 Michael Koch - + * java/nio/DirectByteBufferImpl.java (owner): Updated comment. (allocate): New method. - + 2004-11-17 Michael Koch - + * java/net/URL.java (URL): Handle case when argument is null. - + 2004-11-17 Michael Koch - + * java/beans/Beans.java, java/beans/PropertyChangeEvent.java, java/beans/PropertyEditorSupport.java: Fixed javadocs. - + 2004-11-17 Michael Koch - + * java/util/Timer.java (DEFAULT_SIZE): Made static. - + 2004-11-17 Michael Koch - + * java/awt/image/AffineTransformOp.java, java/awt/image/ColorConvertOp.java, java/awt/image/LookupOp.java, java/awt/image/RescaleOp.java: Added final keywords where they belong. - + 2004-11-17 Michael Koch - + * java/awt/CardLayout.java, java/awt/Component.java, java/awt/Font.java, java/awt/image/SinglePixelPackedSampleModel.java: Fixed javadocs and argument names all over. - + 2004-11-17 Michael Koch - + * java/awt/image/DataBufferShort.java: Fixed file header. * java/awt/image/DataBufferUShort.java: Likewise. (DataBufferUShort): Throw NullPointerException if dataArray is null. - + 2004-11-17 Michael Koch - + * java/net/InetAddress.java (getCanonicalHostName): Support IPv6 addresses. - + 2004-11-17 Sven de Marothy - + * java/awt/geom/Arc2D.java, (setAngleStart): Corrected (wrong sign on atan2 y parameter) (setAngles): Likewise (containsAngle): Return false on zero extent, don't include final angle (contains): Treat OPEN-type arcs like CHORD ones, not as PIE ones. - + 2004-11-16 Sven de Marothy - + * java/awt/geom/AffineTransform.java, (inverseTransform): Fixed bug and simplified code. (createTransformedShape): Return null on null parameter. - + 2004-11-16 Michael Koch - + * java/util/Collections.java (synchronizedSortedMap): Removed some cruft in javadoc. - + 2004-11-16 Michael Koch - + * gnu/java/locale/LocaleInformation_de.java: Added some new locale informations to the contents object. - + 2004-11-16 Michael Koch - + * java/io/BufferedReader.java, java/io/FileInputStream.java, java/io/FileOutputStream.java, @@ -3045,9 +3053,9 @@ java/nio/ByteOrder.java, java/nio/channels/Channel.java: Fixed javadocs all over. - + 2004-11-16 Michael Koch - + * java/awt/color/ICC_ColorSpace.java, java/awt/color/ICC_Profile.java, java/awt/color/ICC_ProfileGray.java, @@ -3059,22 +3067,22 @@ (EPSILON): Made static. (RS_EPSILON): Likewise. (PE_EPSILON): Likewide. - + 2004-11-16 Michael Koch - + * gnu/java/locale/LocaleInformation_de.java: Fix compile error. - + 2004-11-16 Sven de Marothy - + * javax/swing/SwingUtilities.java: (computeDifference): Implemented (computeIntersection): Likewise (computeUnion): Likewise (isRectangleContainingRectangle): Likewise - + 2004-11-16 Michael Koch - + * java/awt/BasicStroke.java, java/awt/Button.java, java/awt/Canvas.java, @@ -3108,50 +3116,50 @@ java/awt/image/ShortLookupTable.java, java/awt/print/Book.java: Fixed javadocs and method argument names all over. - + 2004-11-16 Michael Koch - + * gnu/java/locale/LocaleInformation_de.java: Reordered entries in contents array, added support for ap/pm and territorial names. - + 2004-11-16 Michael Koch - + * gnu/java/locale/LocaleInformation_de.java: Reformatted. Replaced some definitions with their generated counterparts. - + 2004-11-16 Michael Koch - + * gnu/java/locale/LocaleInformation_de.java: Removed some comments to make it easier to merge this with the new generated classes. - + 2004-11-16 Michael Koch - + * configure.ac: Added scripts/Makefile to output files. * Makefile.am (SUBDIRS): Add scripts * scripts/Makefile.am: New file. - + 2004-11-16 Michael Koch - + * gnu/java/awt/peer/gtk/GdkFontPeer.java (buildString): Optimise String building. - + 2004-11-15 Michael Koch - + * native/jni/Makefile.am: Add checking of JNI methods. * scripts/check_jni_methods.sh: New file. - + 2004-11-15 Michael Koch - + * acinclude.m4 (CLASSPATH_WITH_GLIBJ): Added support to not build the class files/glibj.zip. Handle --disable-examples argument. * Makefile.am: Build examples subdir conditionally. - + 2004-11-15 Craig Black - + * gnu/java/beans/BeanInfoEmbryo.java: Use TreeMap for proper sorting. - + 2004-11-15 Jeroen Frijters - + * java/lang/StackTraceElement.java: Made final. * java/nio/channels/Channels.java: Added private constructor. * java/rmi/Naming.java: Added private constructor. @@ -3195,42 +3203,42 @@ (SynchronizedPrintRequestAttributeSet): Made private. (SynchronizedPrintServiceAttributeSet): Made private. * javax/security/auth/PrivateCredentialPermission.java: Made final. - + 2004-11-14 Mark Wielaard - + * configure.ac: Set version to 0.12+cvs. - + 2004-11-14 Mark Wielaard - + * configure.ac: Set version to 0.12. * NEWS: Add new items for this release. - + 2004-11-14 Mattias Rehnberg - + * java/net/Inet6Address.java (getHostAddress): Fix textual representation of IPv6 address with embedded zeroes to conform to RFC 2373. - + 2004-11-14 Mark Wielaard - + * configure.ac (--disable-Werror): Make no the default. - + 2004-11-14 Mark Wielaard - + * javax/swing/ToolTipManager.java (mouseMoved): Set currentComponent when not yet set. - + 2004-11-13 Robert Schuster - + Complete 1.4 support * java/beans/PropertyDescriptor.java: (setReadMethod): New method (setWriteMethod): New method (equals): Implemented (1.4) (checkMethods): operates on arguments now (private) - + 2004-11-12 Steven Augart - + * gnu/classpath/Configuration.java.in: Added JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION. * configure.ac: Added @@ -3239,29 +3247,29 @@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION. 2004-11-12 Sven de Marothy - + * java/awt/Polygon.java (contains): Reimplemented. - + 2004-11-11 Mark Wielaard - + * gnu/java/awt/peer/gtk/GdkGraphics2D.java: Indentation fixups. * gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise. - + 2004-11-11 Paul Jenner - + * java/awt/image/Raster.java (createPackedRaster): Implemented. - + 2004-11-11 Mark Wielaard - + * javax/swing/plaf/basic/BasicTableHeaderUI.java: Indentation fixups. * javax/swing/plaf/basic/BasicViewportUI.java: Likewise. * javax/swing/text/PlainDocument.java: Likewise. * javax/swing/text/SimpleAttributeSet.java: Likewise. * javax/swing/text/Utilities.java: Likewise. - + 2004-11-11 Graydon Hoare - + * javax/swing/plaf/basic/BasicTextUI.java: Listen to focus events, indicate focus via caret. * javax/swing/text/GapContent.java (getString): Return substring. @@ -3271,14 +3279,14 @@ (removeUpdate): Likewise. * javax/swing/text/Utilities.java (drawTabbedText): Always advance on tab and newline, even if no painting happens. - + 2004-11-11 Thomas Fitzsimmons - + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c (setFont): Set pango context's description and language. - + 2004-11-11 Mark Wielaard - + * include/gnu_java_awt_peer_gtk_GdkFontMetrics.h: Regenerated. * include/gnu_java_awt_peer_gtk_GdkGraphics.h: Likewise. * include/gnu_java_awt_peer_gtk_GtkClipboard.h: Likewise. @@ -3288,9 +3296,9 @@ * include/java_lang_Math.h: Likewise. * include/java_lang_VMProcess.h: Likewise. * include/java_net_InetAddress.h: Likewise. - + 2004-11-11 Graydon Hoare - + * gnu/java/awt/peer/gtk/GdkGraphics2D.java (GdkGraphics2D): Set clip after transform. (drawImage): Protect against null image. @@ -3406,14 +3414,14 @@ (capitalize): added documentation (DoubleKey): [class] added documentation (isReachable): new method, refactoring of a large expression - + 2004-11-08 Jeroen Frijters - + * java/net/URLStreamHandler.java (parseURL): Fixed file path canonicalisation. - + 2004-11-08 Jeroen Frijters - + * java/io/File.java: (createTempFile): Use VMFile.IS_DOS_8_3 instead of separatorChar to determine file system naming restrictions. @@ -3512,9 +3520,9 @@ * gnu/java/security/pkcs/PKCS7SignedData.java, * gnu/java/security/pkcs/SignerInfo.java: new files. - + 2004-11-07 Casey Marshall - + * gnu/java/security/provider/Gnu.java (): add entries in a priviliged action. Add new algorithms. @@ -3567,29 +3575,29 @@ * gnu/java/security/x509/ext/SubjectAlternativeNames.java, * gnu/java/security/x509/ext/SubjectKeyIdentifier.java: new files. - + 2004-11-07 Sven de Marothy - + * java/awt/geom/GeneralPath.java (evaluateCrossings): Fixed epsilon value, should always be nonzero. - + 2004-11-07 Jerry Quinn - + * java/awt/image/BandedSampleModel.java (scanlineStride): Remove field hiding ComponentSampleModel.scanlineStride. - + 2004-11-06 Thomas Fitzsimmons - + * java/awt/DefaultKeyboardFocusManager.java (dispatchEvent): Track Window focus owner on FOCUS_GAINED events. - + 2004-11-06 Tom Tromey - + * doc/hacking.texinfo (Source Code Style Guide): Fixed grammatical error. - + 2004-11-06 Tom Tromey - + * gnu/java/rmi/server/UnicastConnectionManager.java (clients): Now package-private. (connections): Likewise. @@ -3601,16 +3609,16 @@ (ptr): Likewise. * gnu/java/security/PolicyFile.java (debug): Now package-private. * gnu/classpath/ServiceFactory.java (log): Now package-private. - + 2004-11-06 Tom Tromey - + * javax/naming/directory/BasicAttributes.java (attributes): Now package-private. * javax/imageio/spi/ServiceRegistry.java (categories): Now package-private. - + 2004-11-06 Tom Tromey - + * java/net/URLClassLoader.java (URLClassLoader): Now package-private. * java/nio/charset/CoderResult.java (CoderResult): Now @@ -3620,27 +3628,27 @@ * java/rmi/server/RMIClassLoader.java (MyClassLoader): Now package-private. * java/util/TimeZone.java (timezones): Now package-private. - + 2004-11-06 Tom Tromey - + * java/security/Permissions.java (perms): Now package-private. * java/security/UnresolvedPermission.java (permissions): Now package-private. - + 2004-11-06 Tom Tromey - + * java/io/FilePermission.java: Reindented. - + 2004-11-06 Tom Tromey - + * java/io/ObjectOutputStream.java (currentObjectStreamClass): Now package-private. (setBlockDataMode): Likewise. * java/io/DeleteFileHelper.java (DeleteFileHelper): Now package-private. - + 2004-11-06 Tom Tromey - + * gnu/java/nio/charset/ISO_8859_1.java (Decoder): Now package-private. (Encoder): Likewise. @@ -3649,9 +3657,9 @@ * gnu/java/nio/charset/US_ASCII.java (Decoder): Now package-private. (Encoder): Likewise. - + 2004-11-06 Robert Schuster - + Fixes bug #10908 * gnu/java/beans/IntrospectionIncubator.java: (addMethod): static methods are discarded now, too. @@ -3678,126 +3686,176 @@ * java/awt/image/BandCombineOp.java, java/awt/image/LookupOp.java, java/awt/image/ConvolveOp.java: New classes. - + 2004-11-06 Andrew Haley - + * java/io/ObjectInputStream.java (readObject): ENDBLOCKDATA is generated if the class has a write method, not if it has a read method. - + 2004-11-06 Mark Wielaard - + * java/util/Vector.java (readObject): Removed. - + 2004-11-06 Tom Tromey - + * gnu/java/net/protocol/http/Connection.java (sendRequest): Fix typo. - + 2004-11-06 Michael Koch - + PR libjava/14009 * gnu/java/net/protocol/http/Connection.java (sendRequest): Handle case when url.getFile() returns an empty string. - + 2004-11-06 Patrik Reali - + * doc/www.gnu.org/newsitems.txt: JDK 1.0 compatibility news + +2004-11-06 Tom Tromey -2004-11-05 Noa Resare + * java/lang/Void.java (TYPE): Added cast to initializer. + * java/lang/Short.java (TYPE): Added cast to initializer. + * java/lang/Long.java (TYPE): Added cast to initializer. + * java/lang/Integer.java (TYPE): Added cast to initializer. + * java/lang/Float.java (TYPE): Added cast to initializer. + * java/lang/Double.java (TYPE): Added cast to initializer. + * java/lang/Character.java (TYPE): Added cast to initializer. + * java/lang/Byte.java (TYPE): Added cast to initializer. + * java/lang/Boolean.java (TYPE): Added cast to initializer. + * java/util/Hashtable.java (elements): Fixed return type. +2004-11-05 Noa Resare + * java/net/Socket.java(getPort): Return 0 instead of -1 on unconnected sockets. - + 2004-11-05 Sven de Marothy * gnu/java/awt/peer/gtk/GtkComponentPeer.java (createImage): Created bitmap should be filled with bg color - + 2004-11-04 Torsten Rupp - + * native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c: Replaced 'this' arguments by 'obj' to make source compatible with C++ compilers. - + 2004-11-04 Torsten Rupp - + * native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c: Add dummy return values for WITHOUT_NETWORK code path. (Java_gnu_java_net_PlainDatagramSocketImpl_receive0): Check fid not NULL for maxlen field id. - + 2004-11-04 Torsten Rupp - + * native/jni/java-net/gnu_java_net_PlainSocketImpl.c: Added missing return values for WITHOUT_NETWORK code path. - + 2004-11-03 Tom Tromey - + * Makefile.am (EXTRA_DIST): Added ChangeLog-2003. - + 2004-11-03 Tom Tromey - + * include/jni.h (struct JNINativeInterface) : Now returns jobjectArray. (_Jv_JNIEnv::NewObjectArray): Likewise. + +2004-11-03 Tom Tromey + + * java/util/Collection.java (iterator): Fixed return type. + + * java/util/AbstractSet.java (removeAll): Fixed iterator + declaration. + * java/util/AbstractList.java (RandomAccessSubList): RandomAccess + is not generic. 2004-11-02 Mattias Rehnberg * java/io/Vector.java (readObject, writeObject): New function to match Sun's serialized output for Vector. - - * java/io/ObjectOutputStream.java + + * java/io/ObjectOutputStream.java (writeObject): Move the assignment of the class handle to after the assignment of class descriptor handle. - + 2004-11-02 Thomas Fitzsimmons - + * java/awt/Font.java (name): New field. (size): Likewise. (style): Likewise. - + 2004-11-01 Andrew John Hughes - + * java/util/GregorianCalendar.java: Added/amended documentation. 2004-11-01 Jeroen Frijters - + * java/lang/ClassLoader.java: (addFileURL): New method. (getSystemClassLoaderUrls): Fixed to treat lone separators as current directory. + +2004-11-01 Tom Tromey -2004-10-31 Robert Schuster + * java/util/AbstractMap.java: Removed old FIXME comment. + * java/lang/Long.java (rotateRight): Fixed return type. + * java/lang/Integer.java (reverse): Use correct name for + variable. + * java/lang/Character.java (valueOf): Use MIN_VALUE, not + MIN_CACHE. + * java/lang/Byte.java (valueOf): Use MIN_VALUE, not MIN_CACHE. + + * gnu/java/util/DoubleEnumeration.java: Genericized. + + * java/lang/Appendable.java (append): Throws IOException. + + * java/util/Hashtable.java: Genericized. + + * java/util/HashMap.java (putAll): Use correct type for iterator. + (putAllInternal): Likewise. + * java/lang/Class.java (cast): Call VMClass.cast. + * java/util/Collections.java (UnmodifiableMap.remove): Corrected + return type. + (entrySet): Likewise. + (entries): Corrected type. + + * vm/reference/java/lang/reflect/Constructor.java + (getTypeParameters): Stubbed. + +2004-10-31 Robert Schuster + Fixes documentation and indentation * java/beans/PropertyEditorSupport.java: reworked initial API doc (value): changed name from val - + 2004-10-31 Robert Schuster - + Updates to 1.5 * java/beans/PropertyEditorSupport.java (PropertyEditorSupport()): Changed modifier to public (PropertyEditorSupport(Object): Changed modifier to public (setSource): New method (getSource): New method - + 2004-10-31 Robert Schuster - + Fixes bug #10799 * java/beans/PropertyEditorSupport.java (setValue): Fire property change event - + 2004-10-31 Noa Resare - + * java/util/Calendar.java (explicitDSTOffset): New instance field. (set(int,int)): Set and use new field. (set(int,int,int)): Check new field. - + 2004-10-29 Jerry Quinn * java/awt/image/ColorConvertOp.java: New class. @@ -3956,36 +4014,36 @@ 2004-10-26 Andreas Tobler - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c - (Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create): Use the - GTK_TEXT_VIEW macro. - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c - (connect_awt_hook_cb): Mark unused variable unused. - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c + (Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create): Use the + GTK_TEXT_VIEW macro. + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c + (connect_awt_hook_cb): Mark unused variable unused. + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c (selection_get): Do the cast right. - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c - (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create): According to - the gtk API gtk_combo_box_new_text actually returns a GtkWidget. - Remove unused var menu. - (selection_changed): Remove unused value. - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c - (Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds): Fix pointer - warning with using an intermediate variable. - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c - (area_updated): Fix unused var warning for BE archs. - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c - (Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals): Remove unused - var. - (realize_cb): Mark unused variable unused. - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c - (seek_glyphstring_idx): Fix a C90 warning. + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c + (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create): According to + the gtk API gtk_combo_box_new_text actually returns a GtkWidget. + Remove unused var menu. + (selection_changed): Remove unused value. + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c + (Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds): Fix pointer + warning with using an intermediate variable. + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c + (area_updated): Fix unused var warning for BE archs. + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c + (Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals): Remove unused + var. + (realize_cb): Mark unused variable unused. + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c + (seek_glyphstring_idx): Fix a C90 warning. 2004-10-26 Andreas Tobler @@ -4749,7 +4807,7 @@ 2004-10-20 Andrew John Hughes - * java/util/Currency.java: + * java/util/Currency.java Documented variables and methods more fully. Caches the currency instances, so that a request for a locale, l, only ever returns the same @@ -4758,11 +4816,11 @@ 2004-10-20 Andrew John Hughes - * java/util/Collections.java: + * java/util/Collections.java Added documentation. - * java/util/SortedMap.java: + * java/util/SortedMap.java Clarified some method examples. - * java/util/SortedSet.java: + * java/util/SortedSet.java Clarified some method examples. 2004-10-20 Michael Koch @@ -5167,6 +5225,13 @@ * autogen.sh: Replaced with a GNOME-like script that aborts when the versions of autoconf, automake or libtool are not sufficient. + +2004-10-14 Tom Tromey + + * java/lang/StringBuilder.java (append): Typo fix; indentation + fix. + * java/beans/BeanDescriptor.java (BeanDescriptor): Typo fix. + 2004-10-13 Michael Koch * java/awt/image/ByteLookupTable.java @@ -5378,10 +5443,10 @@ 2004-10-10 Sven de Marothy - * native/jni/java-lang/java_lang_Double.c - (parseDouble): Add handling of NaN/Infinity (bug #10491) - * java/nio/ByteBufferHelper.java - (putDouble): Use Double.toRawLongBits instead (bug #9106) + * native/jni/java-lang/java_lang_Double.c + (parseDouble): Add handling of NaN/Infinity (bug #10491) + * java/nio/ByteBufferHelper.java + (putDouble): Use Double.toRawLongBits instead (bug #9106) 2004-10-10 Andreas Tobler @@ -5434,6 +5499,107 @@ * javax/swing/JList.java (init): Revert accidental commit. +2004-10-09 Tom Tromey + + * java/beans/EventHandler.java (create): Now generic methods. + * java/beans/Beans.java (getInstanceOf): Updated argument type. + (isInstanceOf): Likewise. + * java/beans/BeanDescriptor.java (beanClass, customizerClass): + Updated type. + (BeanDescriptor): Updated argument types. + (getBeanClass, getCustomizerClass): Updated return types. + + * java/lang/reflect/Proxy.java (getProxyClass): Updated argument + and return types. + (isProxyClass): Likewise. + (newProxyInstance): Likewise. + + * java/applet/AppletContext.java (getApplets): Updated return + type. + (getStreamKeys): Likewise. + + * java/lang/String.java: Implement Comparable. + + * java/util/Properties.java: Extend Hashtable. + (save): Mark as @Deprecated. + * java/lang/System.java (clearProperty): New method. + (setProperty): Check for empty key. + (getProperty): Likewise. + + * java/lang/SecurityManager.java (currentLoadedClass): Updated + return type. + + * java/lang/Float.java: Updated status. + * java/lang/Void.java: Updated status. + * java/lang/Double.java: Updated status. + * java/lang/Long.java: Updated status. + * java/lang/Character.java: Updated status. + * java/lang/Integer.java: Updated status. + * java/lang/Short.java: Updated status. + * java/lang/Byte.java: Updated status. + * java/lang/Boolean.java: Updated status. + + * java/lang/ClassLoader.java (defineClass): New method. + (findClass): Updated return type. + (findLoadedClass): Likewise. + (findSystemClass): Likewise. + (findResources): Likewise. + (getSystemResources): Likewise. + (loadClass): Likewise. + (resolveClass): Updated argument type. + (setSigners): Likewise. + (loadedClasses, definedPackages): Updated types. + (packageAssertionStatus): Likewise. + (systemClassAssertionStatus): Likewise. + (classAssertionStatus): Likewise. + (defineClass): Updated return type. + (getResource): Likewise. + (clearAssertionStatus): Clear packageAssertionStatus and + classAssertionStatus. + + * java/lang/Void.java (TYPE): Changed type. + * java/lang/Character.java: Implement Comparable. + (TYPE): Changed type. + (SIZE): New field. + (MAX_CACHE, charCache): New fields. + (valueOf): New method. + (reverseBytes): Likewise. + * java/lang/Double.java: Implement Comparable. + (TYPE): Changed type. + (SIZE): New field. + (valueOf): New method. + * java/lang/Float.java: Implement Comparable + (TYPE): Changed type. + (SIZE): New field. + (valueOf): New method. + * java/lang/Short.java: Implement Comparable. + (TYPE): Changed type. + (MIN_CACHE, MAX_CACHE, shortCache): New fields. + (valueOf): New method. + (reverseBytes): Likewise. + * java/lang/Byte.java: Implement Comparable. + (TYPE): Changed type. + (SIZE): New field. + (byteCache): Likewise. + (valueOf): New method. + * java/lang/Boolean.java (TYPE): Changed type. + * java/lang/Long.java (TYPE): Changed type. + (SIZE): New field. + (valueOf): New method. + (bitCount, rotateLeft, rotateRight, highestOneBit, + numberOfLeadingZeros, lowestOneBit, numberOfTrailingZeros, + signum, reverseBytes, reverse): New methods. + Implement Comparable. + * java/lang/Integer.java: Implement Comparable. + (SIZE): New field. + (intCache): Likewise. + (MIN_CACHE, MAX_CACHE): Likewise. + (valueOf): New method. + (bitCount, rotateLeft, rotateRight, highestOneBit, + numberOfLeadingZeros, lowestOneBit, numberOfTrailingZeros, + signum, reverseBytes, reverse): New methods. + (TYPE): Changed type. + 2004-10-08 Bryce McKinlay * java/util/Calendar.java (set): Invalidate DST_OFFSET @@ -6001,22 +6167,22 @@ java/awt/GridBagConstraints.java, java/awt/GridBagLayout.java, java/awt/GridLayout.java, - java/awt/Image.java, + java/awt/Image.java, java/awt/KeyboardFocusManager.java, - java/awt/Label.java, - java/awt/List.java, + java/awt/Label.java, + java/awt/List.java, java/awt/MediaTracker.java, - java/awt/Menu.java, - java/awt/MenuBar.java, - java/awt/MenuComponent.java, - java/awt/Panel.java, - java/awt/PopupMenu.java, + java/awt/Menu.java, + java/awt/MenuBar.java, + java/awt/MenuComponent.java, + java/awt/Panel.java, + java/awt/PopupMenu.java, java/awt/ScrollPane.java, - java/awt/Scrollbar.java, - java/awt/SystemColor.java, - java/awt/TextArea.java, - java/awt/TextField.java, - java/awt/Toolkit.java, + java/awt/Scrollbar.java, + java/awt/SystemColor.java, + java/awt/TextArea.java, + java/awt/TextField.java, + java/awt/Toolkit.java, java/awt/Window.java, java/awt/color/ICC_Profile.java, java/awt/datatransfer/DataFlavor.java, @@ -6027,7 +6193,7 @@ java/awt/dnd/DropTargetContext.java, java/awt/dnd/DropTargetDragEvent.java, java/awt/dnd/peer/DropTargetContextPeer.java, - java/awt/event/AdjustmentEvent.java, + java/awt/event/AdjustmentEvent.java, java/awt/event/InputEvent.java, java/awt/event/InvocationEvent.java, java/awt/event/KeyEvent.java, @@ -6068,7 +6234,7 @@ efficient. 2004-09-27 Bryce McKinlay - + * java.util.Calendar.java (cache): New private static field. Cached mappings of locales->calendar classes. (ctorArgTypes): New private static field. Singleton argument for @@ -6119,7 +6285,7 @@ (getLineOfOffset): Likewise. (getRowHeight): Likewise. (replaceRange): Likewise. - (insert): Reformatted. + (insert): Reformatted. 2004-09-27 Michael Koch @@ -6132,6 +6298,10 @@ (getModel): Likewise. (setModel): Likewise. +2004-09-27 Tom Tromey + + * java/lang/Deprecated.java: Fixed retention. + 2004-09-26 Michael Koch * javax/swing/JTextField.java @@ -6335,6 +6505,23 @@ * javax/swing/UIDefaults.java (removePropertyChangeListener): Made public. +2004-09-26 Andrew John Hughes + + * java/lang/Appendable.java + Documented this class. + (append(CharSequence, int, int)): added. + +2004-09-26 Andrew John Hughes + + * java/lang/Comparable.java + Updated status to be 1.5. + * java/lang/Iterable.java + Added missing documentation. + * java/lang/Readable.java + Added documentation. + * java/lang/Thread.java + (UncaughtExceptionHandler): documented. + 2004-09-25 Michael Koch * javax/swing/JApplet.java: @@ -6352,7 +6539,7 @@ (setUI): New method. 2004-09-25 Shashank Bapat - Mark Wielaard + Mark Wielaard * gnu/regexp/RE.java (initialize): Add RETokenLookAhead support. * gnu/regexp/RETokenLookAhead.java: New file. @@ -6941,6 +7128,12 @@ * configure.ac: Set version to 0.11+cvs. +2004-09-18 Tom Tromey + + * java/lang/annotation/Retention.java: Documented. + * java/lang/annotation/RetentionPolicy.java: Documented. + * java/lang/StringBuilder.java: Updated documentation. + 2004-09-17 Tom Tromey * vm/reference/java/lang/VMProcess.java (ProcessThread): Added @@ -7167,6 +7360,17 @@ (getDefaultTimeZone): Fixed test to distinguish between hours and minutes in specified timezone. +2004-09-07 Tom Tromey + + * java/lang/SuppressWarnings.java: Document. + + * java/lang/StringBuilder.java: New file. + * java/lang/String.java (String(StringBuilder)): New constructor. + * java/lang/StringBuffer.java: Added comment. + + * java/lang/Override.java: Documented. + * java/lang/Deprecated.java: Documented. + 2004-09-06 Andrew John Hughes * java/awt/Canvas.java @@ -7247,7 +7451,7 @@ 2004-09-05 Mark Wielaard - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c (setChars): Only call pango_itemize() when vec->glyphitems != NULL. Only call pango_shape() when gi->glyphs->num_glyphs > 0. @@ -7567,7 +7771,7 @@ (modelToView): New method. * javax/swing/text/PlainView.java (modelToView): Made public. - + 2004-09-04 Michael Koch * javax/swing/text/AbstractDocument.java @@ -7790,6 +7994,13 @@ * examples/gnu/classpath/examples/swing/Demo.java: Added demo for JTextField. + +2004-09-04 Tom Tromey + + * java/lang/SuppressWarnings.java: Added imports. + * java/lang/Override.java: Added imports. + * java/lang/Deprecated.java: Added imports. + 2004-09-03 Mark Wielaard * Makefile.am (SUBDIRS): Remove external. @@ -7800,6 +8011,12 @@ * external/*: Removed. * NEWS: Mention GNU JAXP. +2004-09-03 Tom Tromey + + * java/util/EnumMap.java: New file. + * java/util/EnumSet.java: New file. + * java/util/BitSet.java (containsAll): New method. + 2004-08-31 Mark Wielaard * NEWS: Add new news. @@ -7835,6 +8052,7 @@ * vm/reference/java/io/VMFile.java: Reindented. + 2004-08-29 Mark Wielaard * resource/org/.cvsignore: New file. @@ -7901,9 +8119,41 @@ 2004-08-27 Sven de Marothy - * java/awt/geom/Area.java + * java/awt/geom/Area.java Implemented. +2004-08-26 Tom Tromey + + * java/lang/reflect/AnnotatedElement.java: New file. + * vm/reference/java/lang/reflect/Constructor.java (Constructor): + Now generic. Implements GenericDeclaration. + (clazz): Now generic. + (getDeclaringClass): Likewise. + (getExceptionTypes): Likewise. + (getParameterTypes): Likewise. + (newInstance): Likewise. + (constructNative): Likewise. + * java/lang/reflect/GenericDeclaration.java: New file. + * java/lang/reflect/GenericSignatureFormatError.java: New file. + * java/lang/reflect/WildcardType.java: New file. + * java/lang/reflect/TypeVariable.java: New file. + * java/lang/reflect/ParameterizedType.java: New file. + * java/lang/MalformedParameterizedTypeException.java: New file. + * java/lang/TypeNotPresentException.java: New file. + * java/lang/reflect/GenericArrayType.java: New file. + * java/lang/reflect/Type.java: New file. + + * java/io/Writer.java (Writer): Implements Closeable, Flushable, + Appendable. + (append): New methods. + * java/io/OutputStream.java (OutputStream): Implements Closeable, + Flushable. + * java/io/Reader.java (Reader): Implements Closeable. + * java/io/InputStream.java (InputStream): Implements Closeable. + * java/nio/channels/Channel.java (Channel): Extends Closeable. + * java/io/Flushable.java: New file. + * java/io/Closeable.java: New file. + 2004-08-25 Mark Wielaard * java/awt/geom/Arc2D.java (ArcIterator): Make package private. @@ -7912,7 +8162,7 @@ * java/awt/geom/Arc2D.java Reformatted. - setArc(): Correct documentation to say 'upper left corner'. + (setArc()): Correct documentation to say 'upper left corner'. (setArcByTangent,contains,intersects): Implemented. (containsAngle): Corrected to handle negative extents. ArcIterator: Set to private. @@ -7933,7 +8183,7 @@ * java/awt/KeyboardFocusManager.java Added missing documentation. - + 2004-08-22 Patrik Reali * doc/www.gnu.org/newsitems.txt: news on JSpinner and java crypto @@ -7963,7 +8213,7 @@ (getContext): set `inGetContext' as early as possible. Include the call just prior to `doPrivileged' too. Handle new form of `contexts' stack. - + 2004-08-20 Casey Marshall * java/security/cert/X509CRLSelector.java: new file. @@ -7978,16 +8228,16 @@ * javax/swing/JTextArea.java Implemented insert() method and added additional documentation. - + 2004-08-18 Andrew John Hughes - + * javax/swing/SpinnerListModel.java, javax/swing/SpinnerModel.java Implemented SpinnerListModel. Added documentation to SpinnerModel. - + 2004-08-18 Bryce McKinlay - - PR libgcj/17081 + + PR libgcj/17081 * java/net/URI.java (string): New field. Make all other fields transient. (readObject): Implemented. @@ -8013,24 +8263,24 @@ * java/util/AbstractCollection.java, java/util/AbstractList.java, java/util/AbstractMap.java, java/util/AbstractSequentialList.java, java/util/ArrayList.java, java/util/Arrays.java, - java/util/BitSet.java, java/util/Calendar.java, - java/util/Collection.java, java/util/ListIterator.java, - java/util/Map.java, java/util/SortedSet.java: - Added additional exceptions to documentation, along - with some additions and corrections. - + java/util/BitSet.java, java/util/Calendar.java, + java/util/Collection.java, java/util/ListIterator.java, + java/util/Map.java, java/util/SortedSet.java: + Added additional exceptions to documentation, along + with some additions and corrections. + 2004-08-16 Tom Tromey * .classpath: Updated. 2004-08-16 Tom Tromey - Bug 9596. + Bug 9596. * java/lang/Class.java (getName): Fixed javadoc. - + 2004-08-16 Tom Tromey - Bug 9949. + Bug 9949. * java/text/AttributedString.java (AttributedString): Use ArrayList to build array of attribute ranges. Don't use `attribs' before it is set. @@ -8065,6 +8315,12 @@ * java/io/File.java File(String,String): Fixed handling of empty path. +2004-08-16 Tom Tromey + + * java/util/AbstractQueue.java (addAll): Return a result. + (element): Fixed typo. + * java/util/PriorityQueue.java: New file. + 2004-08-15 Casey Marshall * java/security/DummyKeyPairGenerator.java (clone): removed @@ -8079,40 +8335,82 @@ * java/security/SignatureSpi.java (clone): likewise. * javax/crypto/MacSpi.java (clone): likewise. +2004-08-15 Matthias Pfisterer + Tom Tromey + + * java/util/HashMap.java (HashMap): Fixed parameterization in + `new'. + (putAll): Fixed parameterization. + (containsValue): Likewise. + (clone): Likewise. + (getEntry): Likewise. + * java/util/Dictionary.java (remove): Fixed parameterization. + * java/util/Collections.java (shuffle): Fixed indentation and + type of iterator. + (copy): Fixed argument types. + (SingletonSet.containsAll): Fixed type parameterizations. + (SingletonList.containsAll): Likewise. + (EmptyMap.get): Likewise. + (isSequential): Likewise. + (EmptySet): Genericized. + (EmptyList): Likewise. + (EmptyMap): Likewise. + (compare): Likewise. + (SynchronizedCollection.containsAll): Fixed type + parameterization. + (SynchronizedCollection.iterator): Likewise. + (SynchronizedList.listIterator): Likewise. + (SynchronizedList.subList): Likewise. + (SynchronizedMap.keySet): Likewise. + (SynchronizedMap.values): Likewise. + (synchronizedSortedSet): Likewise. + (UnmodifiableCollection.containsAll): Likewise. + (UnmodifiableList.listIterator): Likewise. + * java/util/Calendar.java: Implement Comparable. + (compareTo): New method. + * java/util/Arrays.java (sort): Declare type variable. + (asList): Corrected argument type. + (ArrayList): Genericized. + * java/util/ArrayList.java: Genericized. + * java/util/AbstractSet.java (removeAll): Fix type errors in + iterator declarations. + * java/util/AbstractSequentialList.java (addAll): Genericize + iterator `i'. + 2004-08-14 Ka-Hing Cheung * javax/swing/AbstractSpinnerModel.java, - javax/swing/JSpinner.java, + javax/swing/JSpinner.java, javax/swing/SpinnerNumberModel.java, - javax/swing/plaf/basic/BasicSpinnerUI.java: - New files. + javax/swing/plaf/basic/BasicSpinnerUI.java: + New files. * javax/swing/plaf/basic/BasicLookAndFeel.java - (initClassDefaults): Added defaults for BasicSpinnerUI. - + (initClassDefaults): Added defaults for BasicSpinnerUI. + 2004-08-14 Mark Wielaard - + * examples/gnu/classpath/examples/swing/Demo.java (mkSpinner): - New method. - (mkButtonBar): Add Spinner. + New method. + (mkButtonBar): Add Spinner. 2004-08-14 Casey Marshall - + The Big Crypto Merge of 2004. - + * configure.ac: generate jgss resource Makefiles. * lib/Makefile.am: updated for jgss resources. - + * lib/gen-classlist.sh.in: updated for classes in org/. * javax/security/auth/x500/X500Principal.java: replaced with GNU - Crypto's version. - + Crypto's version. + * resource/org/Makefile.am, * resource/org/ietf/Makefile.am, * resource/org/ietf/jgss/Makefile.am: new files. - + Files imported from GNU Crypto. * javax/crypto/BadPaddingException.java * javax/crypto/Cipher.java @@ -8266,7 +8564,7 @@ (toIso88591, toUtf16Be, toUtf8): new methods. * gnu/java/security/der/DERValue.java: formatting changes only. * gnu/java/security/der/DER.java: likewise. - + 2004-08-14 Mark Wielaard * configure.ac: Add --enable-gtk-cairo checking (cairo, pangoft2). @@ -8297,7 +8595,7 @@ * java/lang/Rectangle.java (intersects): Check r.width and r.height first. - + 2004-08-13 Tom Tromey * java/nio/CharBuffer.java (put): Fix typo. @@ -8307,13 +8605,9 @@ * java/nio/LongBuffer.java (put): Fix typo. * java/nio/ShortBuffer.java (put): Fix typo. -2004-08-09 Florian Weimer - - * java/nio/ByteBuffer.java (put): Fix typo. - 2004-08-12 Guilhem Lavaux - * java/net/URL.java (URL): Delete whitespaces in the protocol string. + * java/net/URL.java (URL): Delete whitespaces in the protocol string. 2004-08-12 Tom Tromey @@ -8324,15 +8618,19 @@ * doc/www.gnu.org/newsitems.txt: added newitem about generics branch +2004-08-09 Florian Weimer + + * java/nio/ByteBuffer.java (put): Fix typo. + 2004-08-09 Thomas Fitzsimmons - PR AWT/16121 +PR AWT/16121 * native/jni/gtk-peer/gthread-jni.c: Include stdio.h. Eliminate type-punning compiler warnings using unions. (throw): Replace bzero with memset. - + 2004-08-09 Andreas Tobler - Thomas Fitzsimmons + Thomas Fitzsimmons * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: Move NSA_PB macros to gtkpeer.h. Include gtkpeer.h. @@ -8414,12 +8712,12 @@ (nativeSetIconImage): Rename to nativeSetIconImageFromDecoder. (free_pixbuf_data): New helper function. (nativeSetIconImageFromData): New function. - + 2004-08-08 Kim Ho * java/awt/Component.java: (processMouseEvent): Consume event after - listene rs process it. + listeners process it. (processMouseMotionEvent): ditto. (processMouseWheelEvent): ditto. * java/awt/Container.java: @@ -8442,12 +8740,113 @@ (createRigidArea): Likewise. (createVerticalBox): Likewise. +2004-08-08 Tom Tromey + + * java/lang/Enum.java: Added package declaration. + + * java/util/Collections.java (reverseOrder): Syntax fix. + + * external/jaxp/source/gnu/xml/aelfred2/XmlParser.java: Don't use + `enum' keyword. + + * java/lang/Class.java, java/lang/Enum.java, + java/lang/InheritableThreadLocal.java, + java/util/AbstractCollection.java, java/util/Arrays.java, + java/util/Collections.java, java/util/LinkedList.java, + java/util/TreeSet.java, java/util/Vector.java: Fixed minor syntax + errors. + +2004-08-07 Tom Tromey + + * java/util/AbstractQueue.java: New file. + * java/util/LinkedList.java (element): New method. + (offer): Likewise. + (peek): Likewise. + (poll): Likewise. + (remove): Likewise. + (LinkedList): Implement Queue. + * java/util/Queue.java: New file. + + * java/lang/Enum.java: New file. + * java/lang/Object.java (getClass): Now generic. + + * java/lang/StringBuffer.java (StringBuffer(CharSequence)): New + constructor. + (append(CharSequence)): New method + (append(CharSequence,int,int)): Likewise. + (StringBuffer): Implements Appendable. + + * java/lang/ref/WeakReference.java: Now generic. + * java/lang/ref/SoftReference.java: Now generic. + * java/lang/ref/ReferenceQueue.java: Now generic. + * java/lang/ref/Reference.java: Now generic. + * java/lang/ref/PhantomReference.java: Now generic. + + * java/lang/annotation/AnnotationFormatError.java: New file. + * java/lang/annotation/IncompleteAnnotationException.java: New + file. + * java/lang/annotation/AnnotationTypeMismatchException.java: New + file. + * java/lang/annotation/RetentionPolicy.java: New file. + * java/lang/annotation/ElementType.java: New file. + * java/lang/annotation/Target.java: New file. + * java/lang/annotation/Retention.java: New file. + * java/lang/annotation/Inherited.java: New file. + * java/lang/annotation/Documented.java: New file. + * java/lang/annotation/Annotation.java: New file. + * java/lang/Override.java: Fixed formatting. + * java/lang/Deprecated.java: Now Documented. + 2004-08-06 Tom Tromey * java/net/DatagramSocket.java: Fixed typo. * java/awt/image/Kernel.java (clone): Use super.clone(). +2004-08-06 Tom Tromey + + * java/lang/Class.java (asSubClass): Cast `this', not argument. + + * vm/reference/java/lang/VMClass.java (cast): Declare. + * java/io/SequenceInputStream.java (SequenceInputStream): + Constructor now generic. + (e): Updated. + (getNextStream): Likewise. + * java/lang/Thread.java (UncaughtExceptionHandler): New + interface. + (State): New enum. + * java/lang/Readable.java: New file. + * java/lang/Appendable.java: New file. + * java/lang/Iterable.java: Documented. + * java/lang/Class.java (asSubClass): New method. + (Class): Now generic. + * java/lang/Boolean.java (parseBoolean): New methods. + (compareTo): Likewise. + (Boolean): Now implements Comparable. + * java/lang/ThreadLocal.java: Now generic. + * java/lang/InheritableThreadLocal.java: Now generic. + * java/lang/Deprecated.java: New file. + * java/lang/Override.java: New file. + * java/lang/SuppressWarnings.java: New file. + +2004-08-05 Tom Tromey + + * java/lang/Iterable.java: New file. + * java/lang/Comparable.java, java/util/AbstractCollection.java, + java/util/AbstractList.java, java/util/AbstractMap.java, + java/util/AbstractSequentialList.java, java/util/AbstractSet.java, + java/util/Arrays.java, java/util/Collection.java, + java/util/Collections.java, java/util/Comparator.java, + java/util/Dictionary.java, java/util/Enumeration.java, + java/util/HashMap.java, java/util/HashSet.java, + java/util/Iterator.java, java/util/LinkedHashSet.java, + java/util/LinkedList.java, java/util/List.java, + java/util/ListIterator.java, java/util/Map.java, + java/util/Set.java, java/util/SortedMap.java, + java/util/SortedSet.java, java/util/Stack.java, + java/util/TreeSet.java, java/util/Vector.java: Updated to use + generics. + 2004-08-04 Patrik Reali * doc/www.gnu.org/newsitems.txt: latest AWT+SWING screenshots @@ -8476,6 +8875,17 @@ float[] coords. * java/awt/geom/RoundRectangle2D.java: Several bugfixes (Bug #6007). +2004-08-01 Sven de Marothy + + * java/awt/geom/CubicCurve2.java: Reindent. + (contains): Implemented. + (intersects): Implemented. + * java/awt/geom/QuadCurve2D.java: Likewise. + * java/awt/geom/GeneralPath.java: Reindent and document. + Fully (re)implemented using separate xpoints and ypoints + float[] coords. + * java/awt/geom/RoundRectangle2D.java: Several bugfixes (Bug #6007). + 2004-08-01 Mark Wielaard * NEWS: Mention new examples. diff --git a/libjava/classpath/ChangeLog-2005 b/libjava/classpath/ChangeLog-2005 index 45ad84db66f..ed9dca268d3 100644 --- a/libjava/classpath/ChangeLog-2005 +++ b/libjava/classpath/ChangeLog-2005 @@ -1028,6 +1028,16 @@ handle XML namespace; handle xml:base; normalize CR/LF pairs created as a result of mixed text and character entity references. +2005-12-14 Nicolas Geoffray + + * java/lang/ClassLoader + (defineClass(String,byte[],int,int,ProtectionDomain)): + Calls VMClassLoader.defineClassWithTransformers instead + of VMClassLoader.defineClass. + * vm/reference/java/lang/VMClassLoader + (defineClassWithTransformers): New method. + (instrumenter): New Field. + 2005-12-14 Roman Kennke * gnu/java/awt/peer/gtk/GdkGraphics.java @@ -1111,6 +1121,17 @@ * java/io/File.java (File): Throw IllegalArgumentException if URI is non-hierarchical. +2005-12-13 Tom Tromey + + * java/lang/instrument/ClassDefinition.java: Reformatted. + * java/lang/instrument/UnmodifiableClassException.java: Reformatted. + * java/lang/instrument/IllegalClassFormatException.java: Reformatted. + +2005-12-13 Tom Tromey + + * java/lang/instrument/ClassDefinition.java (ClassDefinition): Now + public. + 2005-12-13 Lillian Angel * javax/swing/text/html/HTMLEditorKit.java @@ -1311,168 +1332,144 @@ * lib/copy-vmresources.sh.in: Added some '.' after find. -2005-12-09 Lillian Angel - - * javax/swing/text/html/CSS.java: - Fixed class signature. - * javax/swing/text/html/HTMLEditorKit.java: - Fixed class signature. - (LinkController): New class added with only stubs. Functions - are not implmented yet. - (InsertHTMLTextAction): New class. Constructors implemented. - (insertHTML): Implemented. - (insertAtBoundary): Added, not yet implemented. - (insertAtBoundry): Implemented. - (actionPerformed): Added, not yet implemented. - (HTMLTextAction): New class. - (getHTMLDocument): Implemented. - (getHTMLEditorKit): Implemented. - (getElementsAt): Implemented. - (elementCountToTag): Added, not yet implemented. - (findElementMatchingTag): Likewise. - (getViewFactory): Implemented. - (HTMLFactory): Moved to beginning of class, with other inner classes. - (ParserCallBack): Added constructor, not yet implemented. - (clone): Added, not yet implemented. Calls super. - (createInputAttributes): Likewise. - (install): Likewise. - (deinstall): Likewise. - (getActions): Likewise. - (getInputAttributes): Likewise. - (getDefaultCursor): Implemented. - (getLinkCursor): Implemented. - (SetLinkCursor): Implemented. - (setDefaultLinkCursor): Implemented. - (AccessibleContext): Can't implement until AccessibleHTML is - implemented. Currently, returns null because accessibility is not supported. - -2005-12-09 Anthony Balkissoon - - * javax/swing/JEditorPane.java: - (setText): Allow the EditorKit to read the text into the Document, - allowing for other than plain text. - -2005-12-09 Lillian Angel - - * javax/swing/text/html/HTMLDocument.java - (getReader): Added function. Not implemented. It was - added so a certain mauve test committed compiles with - classpath fine. - -2005-12-09 Lillian Angel - - * javax/swing/text/html/HTMLEditorKit.java - (getViewFactory): Fixed class name of ViewFactory returned. - (HTMLFactory): Fixed class name to match API. - -2005-12-08 Lillian Angel - - * javax/swing/text/html/HTMLEditorKit.java - (insertHTML): Added method, not implemented yet. - (read): Likewise. - (write): Likewise. - (getContentType): Implemented. - (getViewFactory): Implemented. - (HTMLViewFactory): New package-private inner class, implemented. - -2005-12-08 Lillian Angel - - * javax/swing/text/StyledEditorKit.java - (create): Reverted to use BoxView. I need to write - a mauve test to be sure about this. - -2005-12-08 Lillian Angel - - * javax/swing/text/StyledEditorKit.java - (create): Changed to use BlockView here instead of BoxView. - -2005-12-08 Anthony Balkissoon +2005-12-09 Tom Tromey - * javax/swing/JEditorPane.java: - (init): Changed to no-argument instead of taking in an EditorKit and - passing it to setEditorKit. Callers will have to call setEditorKit - themselves. - (JEditorPane()): Changed call to init to have no arguments, call - setEditorKit after init. - (JEditorPane(String, String)): Likewise. - (JEditorPane(URL)): Don't call default constructor, call init and then - setEditorKit using the appropriate EditorKit for text/html. - -2005-12-08 Anthony Balkissoon - - * javax/swing/JEditorPane.java: - (registerMap): New field. - (editorMap): New field. - (JEditorPane()): Call init instead of setEditorKit. - (JEditorPane(String, String)): Likewise. - (init): New method. - (createEditorKitForContentType): Implemented and documented. - (getEditorKitClassNameForContentType): Likewise. - (getEditorKitForContentType): Likewise. - (registerEditorKitForContentType): Likewise. - (replaceSelection): Call super (this is temporary until the real - implementation happens. There is already a TODO noting that this needs - to be implemented. - (setEditorKitForContentType): Implemented and documented. - -2005-12-08 Lillian Angel - - * javax/swing/text/html/BlockView.java: - New class added. - (BlockView): Implemented. - (setParent): Implemented. - (calculateMajorAxisRequirements): Added, not fully implemented. - (calculateMinorAxisRequirements): Likewise. - (layoutMinorAxis): Likewise. - (paint): Implemented, but some code is commented out since - StyleSheet is not yet implemented. - (getAttributes): Likewise. - (getResizeWeight): Implemented. - (getAlignment): Implemented. - (changedUpdate): Implemented. - (getPreferredSpan): Implemented. - (getMinimumSpan): Implemented. - (getMaximumSpan): Implemented. - (setPropertiesFromAttributes): Added, not implemented yet. Need - to wait for StyleSheet to be implemented. - -2005-12-08 Tom Tromey - - * javax/security/auth/login/LoginContext.java (LoginContext): New - constructor. - * javax/security/auth/login/CredentialNotFoundException.java: New - file. - * javax/security/auth/login/CredentialExpiredException.java: Extends - CredentialException. - * javax/security/auth/login/CredentialException.java: New file. - * javax/security/auth/login/AccountNotFoundException.java: New file. - * javax/security/auth/login/AccountLockedException.java: New file. - * javax/security/auth/login/AccountExpiredException.java: Extends - AccountException. - * javax/security/auth/login/AccountException.java: New file. - -2005-12-08 Roman Kennke - - * javax/swing/JComponent.java - (JComponent): Don't set a layout here. The default setting should be - null. - -2005-12-07 Tom Tromey - - * java/lang/Float.java (toHexString): New method. - * java/lang/Double.java (toHexString): New method. - -2005-12-07 Gary Benson - - * java/io/RandomAccessFile.java (RandomAccessFile): Don't create - DataOutputStream for read-only files to avoid unnecessary security - manager check. - -2005-12-07 Ito Kazumitsu - - Fixes bug #25273 - * java/text/DecimalFormat.java(scanFormat): Don't set - minimumIntegerDigits to 0. + * javax/print/attribute/standard/Chromaticity.java + (getCategory): Genericized. + * javax/print/attribute/standard/ColorSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/Compression.java + (getCategory): Genericized. + * javax/print/attribute/standard/Copies.java + (getCategory): Genericized. + * javax/print/attribute/standard/CopiesSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/DateTimeAtCompleted.java + (getCategory): Genericized. + * javax/print/attribute/standard/DateTimeAtCreation.java + (getCategory): Genericized. + * javax/print/attribute/standard/DateTimeAtProcessing.java + (getCategory): Genericized. + * javax/print/attribute/standard/Destination.java + (getCategory): Genericized. + * javax/print/attribute/standard/DocumentName.java + (getCategory): Genericized. + * javax/print/attribute/standard/Fidelity.java + (getCategory): Genericized. + * javax/print/attribute/standard/Finishings.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobHoldUntil.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobImpressions.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobImpressionsCompleted.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobImpressionsSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobKOctets.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobKOctetsProcessed.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobKOctetsSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobMediaSheets.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobMediaSheetsCompleted.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobMediaSheetsSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobMessageFromOperator.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobName.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobOriginatingUserName.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobPriority.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobPrioritySupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobSheets.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobState.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobStateReason.java + (getCategory): Genericized. + * javax/print/attribute/standard/JobStateReasons.java + (getCategory): Genericized. + * javax/print/attribute/standard/Media.java + (getCategory): Genericized. + * javax/print/attribute/standard/MediaPrintableArea.java + (getCategory): Genericized. + * javax/print/attribute/standard/MediaSize.java + (getCategory): Genericized. + * javax/print/attribute/standard/MultipleDocumentHandling.java + (getCategory): Genericized. + * javax/print/attribute/standard/NumberOfDocuments.java + (getCategory): Genericized. + * javax/print/attribute/standard/NumberOfInterveningJobs.java + (getCategory): Genericized. + * javax/print/attribute/standard/NumberUp.java + (getCategory): Genericized. + * javax/print/attribute/standard/NumberUpSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/OrientationRequested.java + (getCategory): Genericized. + * javax/print/attribute/standard/OutputDeviceAssigned.java + (getCategory): Genericized. + * javax/print/attribute/standard/PDLOverrideSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/PageRanges.java + (getCategory): Genericized. + * javax/print/attribute/standard/PagesPerMinute.java + (getCategory): Genericized. + * javax/print/attribute/standard/PagesPerMinuteColor.java + (getCategory): Genericized. + * javax/print/attribute/standard/PresentationDirection.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrintQuality.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterInfo.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterIsAcceptingJobs.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterLocation.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterMakeAndModel.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterMessageFromOperator.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterMoreInfo.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterMoreInfoManufacturer.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterName.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterResolution.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterState.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterStateReason.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterStateReasons.java + (getCategory): Genericized. + * javax/print/attribute/standard/PrinterURI.java + (getCategory): Genericized. + * javax/print/attribute/standard/QueuedJobCount.java + (getCategory): Genericized. + * javax/print/attribute/standard/ReferenceUriSchemesSupported.java + (getCategory): Genericized. + * javax/print/attribute/standard/RequestingUserName.java + (getCategory): Genericized. + * javax/print/attribute/standard/Severity.java + (getCategory): Genericized. + * javax/print/attribute/standard/SheetCollate.java + (getCategory): Genericized. + * javax/print/attribute/standard/Sides.java + (getCategory): Genericized. + * javax/print/attribute/HashAttributeSet.java (get): Genericized. + (remove): Likewise. + * javax/print/attribute/Attribute.java (getCategory): Fixed return + type. 2005-12-06 Anthony Balkissoon @@ -1538,6 +1535,73 @@ preferred size. Also, I added a comment explaining a possible bug in this method. +2005-12-06 Tom Tromey + + * javax/security/auth/Subject.java (Subject): Genericized. + (getPrincipals): Likewise. + (getPrivateCredentials): Likewise. + (getPublicCredentials): Likewise. + (getPublicCredentials): Likewise. + +2005-12-06 Tom Tromey + + * javax/imageio/ImageIO.java (ImageReaderIterator): Genericized. + Added new constructor. + (ImageWriterIterator): Likewise. + (getReadersByFilter): Genericized. + (getWritersByFilter): Likewise. + (getImageReadersBySuffix): Likewise. + (getImageWriters): Likewise. + (hasNext): Likewise. + * javax/print/attribute/AttributeSetUtilities.java + (verifyAttributeCategory): Genericized. + (verifyAttributeValue): Likewise. + (verifyCategoryForValue): Likewise. + * javax/print/attribute/AttributeSet.java (containsKey): Genericized. + (get): Likewise. + (remove): Likewise. + * javax/print/attribute/Attribute.java (getCategory): Genericized. + * javax/print/attribute/HashAttributeSet.java (HashAttributeSet): + Genericized. + (containsKey): Likewise. + * javax/imageio/spi/ServiceRegistry.java (deregisterAll): + Genericized. + * javax/imageio/spi/IIOServiceProvider.java (onDeregistration): + Genericized. + (onRegistration): Likewise. + * javax/imageio/metadata/IIOMetadataFormatImpl.java (getObjectClass): + Genericized. + (getObjectMaxValue): Likewise. + (getObjectMinValue): Likewise. + * javax/imageio/ImageIO.java (getImageReadersBySuffix): Genericized. + (getImageWriters): Likewise. + +2005-12-05 Casey Marshall + + * native/jni/classpath/jcl.h (environ): define, or declare + 'extern.' + * native/jni/java-lang/java_lang_VMProcess.c: include . + Remove 'extern' define. + * native/jni/java-lang/java_lang_VMSystem.c + (Java_java_lang_VMSystem_environ): don't declare 'environ.' + +2005-12-05 Tom Tromey + + * java/lang/instrument/Instrumentation.java (redefineClasses): Javadoc + fix. + * java/lang/instrument/ClassFileTransformer.java (transform): Javadoc + fix. + +2005-12-04 Nicolas Geoffray + + * vm/reference/java/lang/VMInstrumentationImpl.java + (redefineClasses): Added an extra parameter of type + java.lang.instrument.Instrument. + * java/lang/InstrumentationImpl.java + (redefineClasses): Added the Instrumentation object + to the arguments of VMInstrumentationImpl.redefineClasses + call. + 2005-12-05 Mark Wielaard Fixes bug classpath/25257 @@ -1562,12 +1626,55 @@ (getClipboard): Return null when access denied. (clipboard): Removed static field. +2005-12-03 Nicolas Geoffray + + * java/lang/instrument: New directory. + * java/lang/instrument/ClassDefinition.java: + New file. + * java/lang/instrument/ClassFileTransformer.java: + New file. + * java/lang/instrument/IllegalClassFormatException.java: + New file. + * java/lang/instrument/Instrumentation.java: + New file. + * java/lang/instrument/UnmodifiableClassException.java: + New file. + * java/lang/InstrumentationImpl.java: + New file. + * vm/reference/java/lang/VMInstrumentationImpl.java: + New file. + 2005-12-03 Mark Wielaard * configure.ac (AC_CONFIG_FILES): Removed native/jni/sampled-jack/Makefile. (AC_ARG_ENABLE [jack]): Removed. +2005-12-02 Tom Tromey + + * javax/sound/sampled/Port.java (Info): Genericized. + * javax/sound/sampled/Line.java (Info): Genericized. + (getLineClass): Likewise. + * javax/sound/sampled/DataLine.java (Info): Genericized. + * javax/sound/sampled/AudioFormat.java (AudioFormat): Genericized. + (properties): Likewise. + * javax/sound/sampled/AudioFileFormat.java (AudioFileFormat): + Genericized. + (properties): Likewise. + +2005-12-02 Tom Tromey + + * javax/naming/directory/InitialDirContext.java (search): Genericized. + * javax/naming/directory/BasicAttributes.java (getAll): Genericized. + (getIDs): Likewise. + * javax/naming/directory/BasicAttribute.java (getAll): Fixed return + type. + * javax/naming/InitialContext.java: Genericized. + (list): Likewise. + (listBindings): Likewise. + * javax/naming/CompoundName.java (getAll): Genericized. + * javax/naming/CompositeName.java (getAll): Genericized. + 2005-12-02 Anthony Balkissoon * javax/swing/text/InternationalFormatter.java: @@ -1608,6 +1715,65 @@ should return a factory, not just a formatter. (createFormatterFactory): New method adapted from createFormatter. +2005-12-01 Tom Tromey + + * javax/imageio/spi/RegisterableService.java (onRegistration): + Genericized. + (onDeregistration): Likewise. + * javax/imageio/spi/ServiceRegistry.java (ServiceRegistry): + Genericized. + (deregisterServiceProvider): Likewise. + (getCategories): Likewise. + (getServiceProviderByClass): Likewise. + (getServiceProviders): Likewise. + (lookupProviders): Likewise. + (registerServiceProvider): Likewise. + (registerServiceProviders): Likewise. + (setOrdering): Likewise. + (unsetOrdering): Likewise. + * javax/imageio/spi/ImageOutputStreamSpi.java (outputClass): + Genericized. + (ImageOutputStreamSpi): Likewise. + (getOutputClass): Likewise. + * javax/imageio/spi/ImageInputStreamSpi.java (inputClass): + Genericized. + (ImageInputStreamSpi): Likewise. + (getInputClass): Likewise. + * javax/imageio/metadata/IIOMetadataFormatImpl.java (addAttribute): + Genericized. + (addObjectValue): Likewise. + * javax/imageio/metadata/IIOMetadataFormat.java (getObjectClass): + Genericized. + (getObjectMaxValue): Likewise. + (getObjectMinValue): Likewise. + * javax/imageio/ImageIO.java (getImageReaders): Genericized. + (getImageReadersByFormatName): Likewise. + (getImageReadersByMIMEType): Likewise. + (getImageTranscoders): Likewise. + (getImageWritersByFormatName): Likewise. + (getImageWritersByMIMEType): Likewise. + (getImageWritersBySuffix): Likewise. + (getImageReader): Use getOriginatingProvider. + (getImageWriter): Likewise. + * javax/imageio/ImageWriter.java (progressListeners): Genericized. + (warningListeners): Likewise. + (warningLocales): Likewise. + (prepareInsertEmpty): Likewise. + (prepareWriteEmpty): Likewise. + * javax/imageio/ImageReader.java (progressListeners): Genericized. + (updateListeners): Likewise. + (warningListeners): Likewise. + (warningLocales): Likewise. + (getDestination): Likewise. + (getImageMetadata): Likewise. + (getImageTypes): Likewise. + (getStreamMetadata): Likewise. + (readAll): Likewise. + * javax/imageio/IIOImage.java (IIOImage): Genericized. + (thumbnails): Likewise. + (getThumbnails): Likewise. + (setThumbnails): Likewise. + 2005-12-01 Anthony Green PR bootstrap/25207 @@ -1741,6 +1907,48 @@ (nativeToFlavorMap): removed generalization. (flavorToNativeMap): likewise. +2005-11-29 Tom Tromey + + * javax/swing/text/StyleContext.java (removeAttributes): Genericized. + (getAttributeNames): Likewise. + * javax/swing/text/SimpleAttributeSet.java (getAttributeNames): + Genericized. + (removeAttributes): Likewise. + * javax/swing/text/DefaultStyledDocument.java (getStyleNames): + Genericized. + * javax/swing/text/AbstractDocument.java (getAttributeNames): + Genericized. + (removeAttributes): Likewise. + * javax/swing/table/TableColumnModel.java (getColumns): Genericized. + * javax/swing/table/AbstractTableModel.java (getColumnClass): + Genericized. + * javax/swing/tree/VariableHeightLayoutCache.java + (getVisiblePathsFrom): Genericized. + * javax/swing/tree/FixedHeightLayoutCache.java (getVisiblePathsFrom): + Genericized. + * javax/swing/undo/StateEdit.java (postState): Genericized. + (preState): Likewise. + * javax/security/sasl/SaslServerFactory.java (createSaslServer): + Genericized. + * javax/security/sasl/SaslClientFactory.java (createSaslClient): + Genericized. + (getMechanismNames): Likewise. + * javax/security/sasl/Sasl.java (createSaslClient): Genericized. + (createSaslServer): Likewise. + (getSaslClientFactories): Likewise. + (getSaslServerFactories): Likewise. + * javax/security/auth/spi/LoginModule.java (initialize): Genericized. + * javax/security/auth/login/AppConfigurationEntry.java + (AppConfigurationEntry): Genericized. + (getOptions): Likewise. + * javax/sql/RowSet.java (getTypeMap): Genericized. + (setTypeMap): Likewise. + * java/sql/Array.java (getResultSet): Genericized. + * java/security/cert/X509CertSelector.java (getExtendedKeyUsage): + Genericized. + * java/security/Permissions.java (elements): Genericized. + * java/rmi/server/RMIClassLoader.java (loadClass): Genericized. + 2005-11-29 Lillian Angel * javax/swing/plaf/metal/MetalFileChooserUI.java @@ -1874,6 +2082,91 @@ 2005-11-27 Tom Tromey + * javax/print/attribute/standard/PrinterStateReasons.java: + Genericized. + * javax/print/attribute/standard/JobStateReasons.java: Genericized. + * javax/print/PrintService.java (getAttribute): Genericized. + (getDefaultAttributeValue): Likewise. + (getSupportedAttributeCategories): Likewise. + (getSupportedAttributeValues): Likewise. + (isAttributeValueSupported): Likewise. + +2005-11-27 Tom Tromey + + * javax/naming/spi/StateFactory.java (getStateToBind): Genericized. + * javax/naming/spi/Resolver.java (resolveToClass): Genericized. + * javax/naming/spi/ObjectFactoryBuilder.java (createObjectFactory): + Genericized. + * javax/naming/spi/NamingManager.java (getInitialContext): + Genericized. + (getURLContext): Likewise. + (getObjectInstance): Likewise. + (getStateToBind): Likewise. + * javax/naming/spi/InitialContextFactoryBuilder.java + (createInitialContextFactory): Genericized. + * javax/naming/spi/InitialContextFactory.java (getInitialContext): + Genericized. + * javax/naming/spi/DirectoryManager.java (getObjectInstance): + Genericized. + (getStateToBind): Likewise. + * javax/naming/spi/DirStateFactory.java (getStateToBind): + Genericized. + * javax/naming/spi/ObjectFactory.java (getObjectInstance): + Genericized. + * javax/naming/spi/DirObjectFactory.java (getObjectInstance): + Genericized. + * javax/naming/ldap/LdapReferralException.java (getReferralContext): + Genericized. + * javax/naming/ldap/ControlFactory.java (getControlInstance): + Genericized. + * javax/naming/ldap/InitialLdapContext.java (InitialLdapContext): + Genericized. + * javax/naming/directory/DirContext.java (search): Genericized. + * javax/naming/directory/Attributes.java (getAll): Genericized. + (getIDs): Likewise. + * javax/naming/directory/Attribute.java (getAll): Genericized. + * javax/naming/directory/BasicAttribute.java (values): Genericized. + (getAll): Likewise. + * javax/naming/directory/InitialDirContext.java (InitialDirContext): + Genericized. + * javax/naming/ReferralException.java (getReferralContext): + Genericized. + * javax/naming/Name.java (getAll): Genericized. + * javax/naming/Context.java (getEnvironment): Genericized. + (list): Likewise. + (listBindings): Likewise. + * javax/naming/NamingEnumeration.java: Genericized. + (next): Likewise. + * javax/naming/Reference.java (addrs): Genericized. + (getAll): Likewise. + * javax/naming/CannotProceedException.java (environment): Genericized. + (getEnvironment): Likewise. + (setEnvironment): Likewise. + * javax/naming/InitialContext.java (myProps): Genericized. + (InitialContext): Likewise. + (init): Likewise. + * javax/naming/CompoundName.java (CompoundName): Genericized. + * javax/naming/CompositeName.java (CompositeName): Genericized. + +2005-11-27 Tom Tromey + + * java/sql/Struct.java (getAttributes): Genericized. + * java/sql/ResultSet.java (getObject): Genericized. + * java/sql/Ref.java (getObject): Genericized. + * java/sql/DriverManager.java (getDrivers): Genericized. + * java/sql/Connection.java (getTypeMap): Genericized. + (setTypeMap): Likewise. + * java/sql/CallableStatement.java (getObject): Genericized. + (getObject): Likewise. + * java/sql/Array.java (getBaseTypeName): Fixed javadoc. + (getArray): Likewise. + (getResultSet): Likewise. + (getResultSet): Likewise. + (getArray): Genericized. + (getResultSet): Likewise. + +2005-11-27 Tom Tromey + * java/beans/PropertyChangeSupport.java (fireIndexedPropertyChange): New methods. * java/beans/IndexedPropertyChangeEvent.java: New file. @@ -1883,6 +2176,181 @@ * java/lang/StackTraceElement.java (StackTraceElement): New constructor. +2005-11-25 Tom Tromey + + * javax/swing/text/StyleContext.java (getStyleNames): Genericized. + * javax/swing/text/MutableAttributeSet.java (removeAttributes): + Genericized. + * javax/swing/text/DefaultFormatter.java (getValueClass): Genericized. + (setValueClass): Likewise. + * javax/swing/text/AttributeSet.java (getAttributeNames): Genericized. + * javax/swing/text/AbstractDocument.java (getDocumentProperties): + Genericized. + (setDocumentProperties): Likewise. + (removeAttributes): Likewise. + * javax/swing/SwingUtilities.java (getAncestorOfClass): Genericized. + * javax/swing/LookAndFeel.java (makeIcon): Genericized. + * javax/swing/JTable.java (getColumnClass): Genericized. + (getDefaultRenderer): Likewise. + (setDefaultRenderer): Likewise. + (getDefaultEditor): Likewise. + (setDefaultEditor): Likewise. + * javax/swing/JLayeredPane.java (getComponentToLayer): Genericized. + * javax/swing/DefaultListModel.java (elements): Genericized. + * javax/swing/ButtonGroup.java (buttons): Genericized. + (getElements): Likewise. + * javax/swing/SpinnerListModel.java (SpinnerListModel): Genericized. + (getList): Likewise. + (setList): Likewise. + * javax/swing/SortingFocusTraversalPolicy.java + (SortingFocusTraversalPolicy): Genericized. + (getComparator): Likewise. + (setComparator): Likewise. + * javax/swing/JTree.java (JTree): Genericized. + (getDescendantToggledPaths): Likewise. + (getExpandedDescendants): Likewise. + (removeDescendantToggledPaths): Likewise. + * javax/swing/JList.java (JList): Genericized. + Likewise. + * javax/swing/JComboBox.java (JComboBox): Genericized. + * javax/swing/DefaultComboBoxModel.java (DefaultComboBoxModel): + Genericized. + * javax/swing/UIDefaults.java: Genericized superclass. + (getUIClass): Likewise. + * javax/swing/event/EventListenerList.java (getListenerCount): + Genericized. + * javax/swing/plaf/basic/BasicDirectoryModel.java (getDirectories): + Genericized. + (getFiles): Likewise. + (sort): Likewise. + * javax/swing/plaf/basic/BasicTreeUI.java (drawingCache): Genericized. + * javax/swing/plaf/basic/BasicFileChooserUI.java (iconCache): + Genericized. + * javax/swing/table/TableModel.java (getColumnClass): Genericized. + * javax/swing/table/DefaultTableColumnModel.java (tableColumns): + Genericized. + (getColumns): Likewise. + (moveColumn): Updated. + * javax/swing/text/html/parser/ContentModel.java (getElements): + Genericized. + * javax/swing/text/html/parser/DTD.java (entityHash): Fixed type. + * javax/swing/text/html/parser/AttributeList.java (AttributeList): + Genericized. + (values): Likewise. + (getValues): Likewise. + * javax/swing/tree/AbstractLayoutCache.java (getVisiblePathsFrom): + Genericized. + * javax/swing/tree/DefaultMutableTreeNode.java (EMPTY_ENUMERATION): + Genericized. + * javax/swing/undo/StateEditable.java (restoreState): Genericized. + (storeState): Likewise. + +2005-11-25 Tom Tromey + + * java/rmi/server/RMIClassLoaderSpi.java (loadClass): Genericized. + (loadProxyClass): Likewise. + (getClassAnnotation): Likewise. + * java/rmi/server/RMIClassLoader.java (loadClass): Genericized. + (getClassAnnotation): Likewise. + * java/rmi/server/LoaderHandler.java (loadClass): Genericized. + +2005-11-25 Tom Tromey + + * java/awt/Font.java (Font): Genericized. + (deriveFont): Likewise. + (getAttributes): Likewise. + (getFont): Likewise. + +2005-11-25 Tom Tromey + + * java/text/NumberFormat.java (format): No longer final. + * java/text/AttributedCharacterIterator.java (getAllAttributeKeys): + Genericized. + (getAttributes): Likewise. + (getRunLimit): Likewise. + (getRunStart): Likewise. + * java/text/AttributedString.java (AttributedString): Genericized. + (addAttributes): Likewise. + * java/text/Collator.java: Implement Comparator. + +2005-11-25 Tom Tromey + + * java/security/cert/X509Extension.java (getCriticalExtensionOIDs): + Genericized. + (getNonCriticalExtensionOIDs): Likewise. + * java/security/cert/X509Certificate.java (getExtendedKeyUsage): + Genericized. + (getIssuerAlternativeNames): Likewise. + (getSubjectAlternativeNames): Likewise. + * java/security/cert/X509CertSelector.java (setExtendedKeyUsage): + Genericized. + (setSubjectAlternativeNames): Likewise. + * java/security/cert/X509CRLSelector.java (getIssuerNames): + Genericized. + (setIssuerNames): Likewise. + * java/security/cert/X509CRL.java (getRevokedCertificates): + Genericized. + * java/security/cert/PolicyNode.java (getChildren): Genericized. + (getExpectedPolicies): Likewise. + (getPolicyQualifiers): Likewise. + * java/security/cert/PKIXCertPathChecker.java (check): Genericized. + (getSupportedExtensions): Likewise. + * java/security/cert/CertificateFactorySpi.java + (engineGenerateCertPath): Genericized. + (engineGenerateCertificates): Likewise. + (engineGenerateCRLs): Likewise. + (engineGetCertPathEncodings): Likewise. + * java/security/cert/CertificateFactory.java (generateCertificates): + Genericized. + (generateCertPath): Likewise. + (generateCRLs): Likewise. + (getCertPathEncodings): Likewise. + * java/security/cert/CertStoreSpi.java (engineGetCertificates): + Genericized. + (engineGetCRLs): Likewise. + * java/security/cert/CertStore.java (getCertificates): Genericized. + (getCRLs): Likewise. + * java/security/cert/CertPath.java (getCertificates): Genericized. + (getEncodings): Likewise. + * java/security/cert/PKIXParameters.java (PKIXParameters): + Genericized. + (getCertStores): Likewise. + (getCertPathCheckers): Likewise. + (getInitialPolicies): Likewise. + (getTrustAnchors): Likewise. + (setCertPathCheckers): Likewise. + (setCertStores): Likewise. + (setInitialPolicies): Likewise. + (setTrustAnchors): Likewise. + * java/security/cert/PKIXBuilderParameters.java + (PKIXBuilderParameters): Genericized. + * java/security/cert/CollectionCertStoreParameters.java + (CollectionCertStoreParameters): Genericized. + (getCollection): Likewise. + * java/security/cert/PolicyQualifierInfo.java: No longer final. + +2005-11-25 Tom Tromey + + * java/security/Security.java (getAlgorithms): Genericized. + (getProviders): Likewise. + * java/security/SecureClassLoader.java (defineClass): Genericized. + (protectionDomainCache): Likewise. + * java/security/PermissionCollection.java (elements): Genericized. + (toString): Updated. + * java/security/KeyStoreSpi.java (engineAliases): Genericized. + * java/security/KeyStore.java (aliases): Genericized. + * java/security/KeyFactorySpi.java (engineGetKeySpec): Genericized. + (engineTranslateKey): Fixed javadoc. + * java/security/KeyFactory.java (getKeySpec): Genericized. + * java/security/IdentityScope.java (identities): Genericized. + * java/security/AlgorithmParametersSpi.java (engineGetParameterSpec): + Genericized. + * java/security/AlgorithmParameters.java (getParameterSpec): + Genericized. + * java/security/AccessController.java (doPrivileged): Genericized. + * java/security/PrivilegedExceptionAction.java: Genericized. + * java/security/PrivilegedAction.java: Genericized. + 2005-11-25 Guilhem Lavaux * native/jni/java-io/javaio.c, native/jni/java-io/javaio.h: @@ -4851,8 +5319,18 @@ 2005-11-02 Andrew John Hughes - * AUTHORS: Added myself. + * examples/Makefile.am: + Comment out JIKES and GCJ conditionals. + * lib/Makefile.am: + Comment out JIKES, KJC and GCJ conditionals. + * m4/acinclude.m4: + Comment out selection of GCJ, Jikes and KJC as compilers for + the branch. +2005-11-02 Andrew John Hughes + + * AUTHORS: Added myself. + 2005-11-02 Mark Wielaard * javax/swing/Timer.java (Waker.run): Only break out when !running. @@ -4870,6 +5348,24 @@ * lib/copy-vmresources.sh.in: Added definition for top_srcdir. +2005-11-02 Mark Wielaard + + * configure.ac (AC_INIT): Set version to 0.19-generics. + * lib/Makefile.am: Add typeHiding, unchecked, unused and varargsCast + to ECJ compile warning rule. + +2005-11-02 Tom Tromey + + * javax/sound/midi/Instrument.java (Instrument): Genericized argument + type. + * javax/sound/midi/SoundbankResource.java (SoundbankResource): + Genericized argument type. + (getDataClass): Genericized return type. + * javax/sound/midi/Sequence.java (tracks): Changed type. + (init): Updated. + (getTracks): Updated. + (getTickLength): Updated. + 2005-11-02 Andreas Tobler * NEWS: Mention Qt4 configury for OS-X. @@ -5955,6 +6451,44 @@ 2005-10-24 Tom Tromey + * javax/accessibility/AccessibleStateSet.java (states): + Changed type. + * javax/accessibility/AccessibleRelationSet.java (relations): + Changed type. + +2005-10-24 Tom Tromey + + * java/security/acl/Group.java (isMember): Javadoc fix. + (members): Changed return type. + * java/security/acl/AclEntry.java (addPermission): Fixed javadoc. + (checkPermission): Likewise. + (permissions): Changed return type. + * java/security/acl/Acl.java (entries): Changed return type. + (getPermissions): Likewise. + +2005-10-24 Tom Tromey + + * gnu/java/nio/SelectorImpl.java (keys): Changed type. + (selected): Likewise. + (SelectorImpl): Updated. + (keys): Changed return type. + (getFDsAsArray): Updated. + (select): Likewise. + (selectedKeys): Changed return type. + (deregisterCancelledKeys): Updated. + * java/nio/channels/Selector.java (selectedKeys): Changed return + type. + (keys): Likewise. + +2005-10-24 Tom Tromey + + * java/awt/image/ReplicateScaleFilter.java (setProperties): Changed + argument type. + * java/awt/image/CropImageFilter.java (setProperties): Changed + argument type. + +2005-10-24 Tom Tromey + * java/io/ObjectOutputStream.java (useProtocolVersion): Fixed typo in javadoc. @@ -7075,6 +7609,82 @@ org/omg/CORBA/ORB.java: Adapted to support the gnu.CORBA.ListenerPort property. +2005-10-16 Andrew John Hughes + + * java/awt/image/BufferedImage.java: + (getSources()): Genericized. + * java/awt/image/ImageFilter.java: + (setProperties(Hashtable)): Likewise. + * java/awt/image/MemoryImageSource.java: + (MemoryImageSource(int,int,int[],int,int,Hashtable)): Likewise. + * java/awt/image/PixelGrabber.java: + (setProperties(Hashtable)): Likewise. + * java/awt/image/renderable/RenderableImageOp.java: + (getSources()): Likewise. + * java/beans/Beans.java: + (getInstanceOf(Object,Class)): Likewise. + (isInstanceOf(Object,Class)): Likewise. + * java/beans/EventSetDescriptor.java: + (EventSetDescriptor(Class,String,Class,String)): Likewise. + (EventSetDescriptor(Class,String,Class,String[],String,String)): + Likewise. + (EventSetDescriptor(Class,Method[],Method,Method)): Likewise. + (EventSetDescriptor(String,Class,MethodDescriptor,Method,Method)): + Likewise. + (getListenerType()): Likewise. + * java/beans/FeatureDescriptor.java: + (FeatureDescriptor()): Likewise. + (attributeNames()): Likewise. + * java/beans/IndexedPropertyDescriptor.java: + (IndexedPropertyDescriptor(String,Class)): Likewise. + (IndexedPropertyDescriptor(String,Class,String,String,String,String)): + Likewise. + (getIndexedPropertyType()): Likewise. + * java/beans/Introspector.java: + (getBeanInfo(Class)): Likewise. + (flushFromCaches(Class)): Likewise. + (getBeanInfo(Class,Class)): Likewise. + * java/beans/PropertyDescriptor.java: + (PropertyDescriptor(String,Class)): Likewise. + (getPropertyType()): Likewise. + (getPropertyEditorClass()): Likewise. + (setPropertyEditorClass(Class)): Likewise. + (checkMethods(Method,Method)): Likewise. + * java/beans/PropertyEditorManager.java: + (registerEditor(Class,Class)): Likewise. + (getEditor(Class)): Likewise. + * java/io/ObjectInputStream.java: + (resolveClass(ObjectStreamClass)): Likewise. + * java/io/ObjectOutputStream.java: + (annotateClass(Class)): Likewise. + (annotateProxyClass(Class)): Likewise. + * java/io/ObjectStreamClass.java: + (lookup(Class)): Likewise. + (forClass()): Likewise. + * java/io/ObjectStreamField.java: + (ObjectStreamField(String,Class)): Likewise. + (ObjectStreamField(String,Class,boolean)): Likewise. + * java/net/NetworkInterface.java: + (getInetAddresses()): Likewise. + (getNetworkInterfaces()): Likewise. + * java/net/URLClassLoader.java: + (findClass(String)): Likewise. + (findResources(String)): Likewise. + * java/net/URLConnection.java: + (getHeaderFields()): Likewise. + (getRequestProperties()): Likewise. + * javax/swing/text/TextAction.java: + (augmentList(Action[],Action[])): Likewise. + * javax/swing/text/html/HTML.java: + (attrMap): Likewise. + (tagMap): Likewise. + * javax/swing/text/html/parser/DTD.java: + (dtdHash): Likewise. + (elementHash): Likewise. + (entityHash): Likewise. + (defineAttributes(String,AttributeList)): Likewise. + (newElement(String)): Likewise. + 2005-10-15 Audrius Meskauskas * org/omg/CORBA/DynamicImplementation.java: Made concrete. @@ -7436,6 +8046,77 @@ (initComponentDefaults): added default value for 'List.focusCellHighlightBorder'. +2005-10-12 Andrew John Hughes + + * java/awt/datatransfer/DataFlavor.java: + (DataFlavor(Class,String,String): Genericized. + * java/awt/dnd/DragGestureEvent.java: + (DragGestureEvent(DragGestureRecognizer,int,Point, + List)): Likewise. + (iterator()): Likewise. + * java/awt/dnd/DragSource.java: + (createDragGestureRecognizer(Class,Component,int, + DragGestureListener)): Likewise. + * java/awt/dnd/DropTargetContext.java: + (getCurrentDataFlavorsAsList()): Likewise. + * java/awt/dnd/DropTargetDragEvent.java: + (getCurrentDataFlavorsAsList()): Likewise. + * java/awt/dnd/DropTargetDropEvent.java: + (getCurrentDataFlavorsAsList()): Likewise. + * java/awt/font/TextLayout.java: + (TextLayout(String,Map, FontRenderContext)): Likewise. + * java/awt/image/BufferedImage.java: + (BufferedImage(ColorModel,WritableRaster,boolean,Hashtable)): + Likewise. + * java/awt/image/ImageConsumer.java: + (setProperties(Hashtable)): Likewise. + * java/awt/image/MemoryImageSource.java: + (MemoryImageSource(int,int,ColorModel,byte[],int,int,Hashtable)): + Likewise. + (MemoryImageSource(int,int,ColorModel,int[],int,int,Hashtable)): + Likewise. + * java/awt/image/RenderedImage.java: + (getSources()): Likewise. + * java/awt/image/renderable/ParameterBlock.java: + (sources): Likewise. + (parameters): Likewise. + (ParameterBlock()): Likewise. + (ParameterBlock(Vector)): Likewise. + (ParameterBlock(Vector,Vector)): Likewise. + (clone()): Added casts to handle new Vector type. + (getSources()): Genericized. + (setSources(Vector)): Likewise. + (getParameters()): Likewise. + (setParameters(Vector)): Likewise. + * java/awt/image/renderable/RenderableImage.java: + (getSources()): Likewise. + * javax/swing/tree/DefaultMutableTreeNode.java: + (children): Likewise. + (getSharedAncestor(DefaultMutableTreeNode)): Likewise. + (getDepth()): Likewise. + (pathFromAncestorEnumeration(TreeNode)): Likewise. + (PostOrderEnumeration)): Likewise. + * javax/swing/undo/CompoundEdit.java: + (edits): Likewise. + (CompoundEdit()): Likewise. + (undo()): Likewise. + (redo()): Likewise. + (lastEdit()): Likewise. + (die()): Likewise. + (isSignificant()): Likewise. + * javax/swing/undo/UndoableEditSupport.java: + (listeners): Likewise. + (getUndoableEditListeners()): Likewise. + * lib/Makefile.am: + Turn off listing unused imports (at least for now). + * org/omg/CosNaming/_NamingContextExtImplBase.java: + (_methods): Likewise. + * org/omg/CosNaming/_NamingContextImplBase.java: + (methods): Likewise. + * vm/reference/java/lang/reflect/Method.java: + (getTypeParameters()): Corrected return type. + 2005-10-12 Lillian Angel * javax/swing/UIDefaults.java @@ -8129,6 +8810,27 @@ (createLineBorder(Color)): Forward call to createLineBorder(Color, int) with thickness of 1. +2005-10-06 Tom Tromey + + * java/util/ListResourceBundle.java (getKeys): Fixed return type. + * java/util/ResourceBundle.java (getKeys): Fixed return type. + * java/util/AbstractMap.java (entrySet): Fixed return type. + (clone): Updated. + (equals): Likewise. + (iterator): Likewise. + * java/util/Collections.java (fill): Fixed argument type. + (reverse): Likewise. + (unmodifiableCollection): Likewise. + (UnmodifiableCollection): Likewise. + (UnmodifiableIterator): Likewise. + (unmodifiableSet): Likewise. + (UnmodifiableSet): Likewise. + (unmodifiableList): Likewise. + * java/util/TreeSet.java (TreeSet(SortedSet)): Fixed argument + type. + (headSet): Fixed return type. + * java/util/StringTokenizer.java: Implements Enumeration. + 2005-10-06 Anthony Green * native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c @@ -8278,6 +8980,93 @@ * configure.ac: Add Qt4 configury bits for OS-X. +2005-10-05 Tom Tromey + + * java/util/jar/Attributes.java: Implements Map. + (map): Changed type. + (entrySet): Changed return type. + (keySet): Likewise. + (putAll): Changed argument type. + (values): Changed return type. + * java/util/jar/Manifest.java (getEntries): Genericized. + (Manifest): Updated. + (entries): Changed type. + (read_individual_sections): Updated. + (read_section_name): Likewise. + (write_main_attributes): Likewise. + (write_attribute_entry): Likewise. + (write_individual_sections): Likewise. + (write_entry_attributes): Likewise. + * java/util/jar/JarFile.java (entries): Genericized. + (JarEnumeration): Implements Enumeration. + (JarEnumeration.nextElement): Changed return type. + (JarEnumeration.entries): Changed type. + +2005-10-05 Tom Tromey + + * java/awt/datatransfer/SystemFlavorMap.java (getNativesForFlavors): + Genericized. + (getFlavorsForNatives): Likewise. + (getFlavorsForNative): Likewise. + (getNativesForFlavor): Likewise. + * java/awt/datatransfer/DataFlavor.java (DataFlavor): Genericized. + (getDefaultRepresentationClass): Likewise. + (getRepresentationClass): Likewise. + (tryToLoadClass): Likewise. + (representationClass): Likewise. + * java/awt/datatransfer/FlavorTable.java (getNativesForFlavor): + Genericized. + (getFlavorsForNative): Likewise. + * java/awt/datatransfer/FlavorMap.java (getFlavorsForNatives): + Genericized. + (getNativesForFlavors): Likewise. + +2005-10-05 Tom Tromey + + * java/util/zip/ZipFile.java (entries): Fixed return type. + +2005-10-05 Tom Tromey + + * java/util/prefs/Preferences.java (systemNodeForPackage): Genericized. + (userNodeForPackage): Likewise. + +2005-10-05 Tom Tromey + + * javax/swing/tree/DefaultTreeSelectionModel.java (getListeners): + Genericized. + * javax/swing/tree/DefaultTreeModel.java (getListeners): Genericized. + * javax/swing/Timer.java (getListeners): Genericized. + * javax/swing/text/StyleContext.java (getListeners): Genericized. + * javax/swing/text/DefaultCaret.java (getListeners): Genericized. + * javax/swing/text/AbstractDocument.java (getListeners): + Genericized. + * javax/swing/table/DefaultTableColumnModel.java (getListeners): + Genericized. + * javax/swing/table/AbstractTableModel.java (getListeners): + Genericized. + * javax/swing/JComponent.java (getListeners): Genericized. + * javax/swing/DefaultSingleSelectionModel.java (getListeners): + Genericized. + * javax/swing/DefaultListSelectionModel.java (getListeners): + Genericized. + * javax/swing/DefaultButtonModel.java (getListeners): Genericized. + * javax/swing/DefaultBoundedRangeModel.java (getListeners): + Genericized. + * javax/swing/AbstractSpinnerModel.java (getListeners): Genericized. + * javax/swing/event/EventListenerList.java (add): Genericized. + (getListeners): Likewise. + (remove): Likewise. + * java/awt/dnd/DragSource.java (getListeners): Genericized. + * java/awt/TextField.java (getListeners): Genericized. + * java/awt/Window.java (getListeners): Genericized. + * java/awt/Scrollbar.java (getListeners): Genericized. + * java/awt/List.java (getListeners): Genericized. + * java/awt/Choice.java (getListeners): Genericized. + * java/awt/TextComponent.java (getListeners): Genericized. + * java/awt/CheckboxMenuItem.java (getListeners): Genericized. + * java/awt/Button.java (getListeners): Genericized. + * java/awt/Container.java (getListeners): Genericized. + 2005-10-05 Lillian Angel * javax/swing/plaf/basic/BasicTreeUI.java @@ -8512,6 +9301,16 @@ (resizeAndRepaint): New method. (initializeLocalVars): New method. +2005-10-04 Tom Tromey + + * java/awt/Dialog.java (show): Now deprecated. + (hide): Likewise. + +2005-10-04 Tom Tromey + + * java/lang/ref/Reference.java (nextOnQueue): Changed type. + * java/lang/ref/ReferenceQueue.java (first): Changed type. + 2005-10-04 David Gilbert * javax/swing/plaf/basic/BasicFileChooserUI.java: Added API docs all @@ -9045,6 +9844,21 @@ * javax/imageio/ImageWriter.java: Complete and document. * javax/imageio/package.html: Write. +2005-10-01 Jeroen Frijters + + * vm/reference/java/lang/reflect/Constructor.java + (getSignature): New method. + (getGenericExceptionTypes): New method. + (getGenericParameterTypes): New method. + * vm/reference/java/lang/reflect/Field.java + (getGenericType): New method. + (getSignature): New method. + * vm/reference/java/lang/reflect/Method.java + (getSignature): New method. + (getGenericExceptionTypes): New method. + (getGenericParameterTypes): New method. + (getGenericReturnType): New method. + 2005-10-01 Tom Tromey PR classpath/23890: @@ -9090,6 +9904,14 @@ Call cairo_pattern_set_extend after gr->pattern has been set and checked versus NULL. +2005-09-30 Jeroen Frijters + + * gnu/java/lang/reflect/FieldSignatureParser.java: New file. + * gnu/java/lang/reflect/ClassSignatureParser.java, + gnu/java/lang/reflect/GenericSignatureParser.java, + gnu/java/lang/reflect/MethodSignatureParser.java: + Finished implementation. + 2005-09-30 Roman Kennke * javax/swing/JTextPane.java @@ -9444,6 +10266,65 @@ * javax/swing/plaf/basic/BasicMenuItemUI.java (paintMenuItem): adjusted arrow icon position. +2005-09-28 Andrew John Hughes + + * gnu/java/awt/peer/qt/QtGraphics.java: + (getRenderingHints()): Create a clone as no such + constructor exists with generic typing. + (setRenderingHints(Map)): Added parametric typing + and fixed use of RenderingHints constructor. + * java/awt/AWTEventMulticaster.java: + (getListeners(EventListener,Class)): Added generic + typing. + * java/awt/Component.java: + (getListeners(Class)): Likewise. + (getFocusTraversalKeys(int)): Likewise. + * java/awt/Font.java: + (Font(Map)): Likewise. + (deriveFont(Map)): Likewise. + (getAttributes()): Likewise. + (getAvailableAttributes()): Simplified naming with static import. + (getFont(Map)): Added generic typing. + * java/awt/Graphics2D.java: + (setRenderingHints(Map)): Likewise. + (addRenderingHints(Map)): Likewise. + * java/awt/KeyboardFocusManager.java: + (setDefaultFocusTraversalKeys(int,Set)): + Likewise. + (getKeyEventDispatchers()): Likewise. + (getKeyEventPostProcessors()): Likewise. + * java/awt/MenuItem.java: + (getListeners(Class)): Likewise. + * java/awt/RenderingHints.java: + (RenderingHints(Map)): Likewise. + (putAll(Map)): Likewise. + (keySet()): Likewise. + (values()): Likewise. + (entrySet()): Likewise. + * java/awt/Toolkit.java: + (desktopProperties): Likewise. + (createDragGestureRecognizer(Class,DragSource,Component,int, + DragGestureListener)): Likewise. + (mapInputMethodHighlight(InputMethodHighlight)): Likewise. + * java/lang/Class.java: + (getDeclaringClass()): Likewise. + * java/lang/Enum.java: + (valueOf(Class,String)): Fixed return type. + * java/lang/SecurityManager.java: + (checkMemberAccess(Class,int)): Likewise. + * java/lang/reflect/Array.java: + (newInstance(Class,int)): Likewise. + (newInstance(Class,int[])): Likewise. + * vm/reference/java/lang/reflect/Constructor.java: + (getTypeParameters()): Type parameter changed from ? to Constructor. + * vm/reference/java/lang/reflect/Field.java: + (getDeclaringClass()): Added generic typing. + (getType()): Likewise. + * vm/reference/java/lang/reflect/Method.java: + (getDeclaringClass()): Likewise. + (getExceptionTypes()): Likewise. + (getParameterTypes()): Likewise. + 2005-09-28 Anthony Balkissoon * javax/swing/text/AbstractDocument.java: @@ -9689,6 +10570,79 @@ * javax/swing/plaf/metal/MetalBorders.java (ToolBarBorder): now implements SwingConstants. +2005-09-27 Tom Tromey + + * java/sql/Timestamp.java (compareTo(Date)): Changed argument type + from Object. + * javax/naming/Name.java (Name): Implements Comparable. + * java/util/Date.java (Date): Implements Comparable. + (compareTo(Object)): Removed. + * java/text/CollationKey.java (CollationKey): Implements + Comparable. + (compareTo(Object)): Removed. + * java/net/URI.java (URI): Implements Comparable. + (compareTo): Updated argument type. + * java/math/BigDecimal.java (BigInteger): Implements + Comparable. + (compareTo(Object)): Removed. + * java/math/BigInteger.java (BigInteger): Implements + Comparable. + (compareTo(Object)): Removed. + * java/io/File.java (File): Implements Comparable. + (compareTo(Object)): Removed. + +2005-09-27 Tom Tromey + + * java/nio/charset/spi/CharsetProvider.java (charsets): Changed + return type. + * java/nio/charset/Charset.java (aliases): Changed return type. + (availableCharsets): Likewise. + * java/nio/channels/spi/AbstractSelector.java (cancelledKeys): + Changed type. + (AbstractSelector): Updated. + (cancelledKeys): Updated. + +2005-09-27 Tom Tromey + + * java/util/logging/LogManager.java (loggers): Genericized type. + (LogManager): Updated. + (addLogger): Likewise. + (findAncestor): Likewise. + (getLogger): Likewise. + (getLoggerNames): Fixed return type. + (reset): Updated. + +2005-09-27 Tom Tromey + + * java/util/zip/ZipFile.java (entries): Updated return type. + (ZipEntryEnumeration): Updated 'implements' type. + (entries): Updated type. + (ZipEntryEnumeration.elements): Likewise. + (readEntries): Updated. + (getEntries): Likewise. + (getEntry): Likewise. + (getInputStream): Likewise. + +2005-09-27 Tom Tromey + + * java/lang/Compiler.java (compileClass): Updated argument type. + +2005-09-27 Tom Tromey + + * java/awt/im/InputMethodHighlight.java (InputMethodHighlight): + Updated argument types. + (getStyle): Updated return type. + * java/awt/MenuBar.java (shortcuts): Updated return type. + * java/awt/Window.java (hide): Now deprecated. + (show): Likewise. + +2005-09-27 Tom Tromey + + * java/lang/String.java (CASE_INSENSITIVE_ORDER): Now a + Comparator. + (CaseInsensitiveComparator): Updated. + (CaseInsensitiveComparator.compare): Changed argument types. + 2005-09-27 Anthony Green * javax/sound/midi/MidiSystem.java (getSequence): Add @@ -9830,6 +10784,18 @@ * javax/sound/midi/MidiFileFormat.java (bytes, microseconds): Rename to byteLength and microsecondLength respectively. +2005-09-26 Tom Tromey + + * java/util/Formatter.java (format): Set fmtLocale. + (applyLocalization): New method. + (basicIntegralConversion): Likewise. + (hexOrOctalConversion): Use it. + (decimalConversion): New method. + (format): Use decimalConversion, dateTimeConversion. + (genericFormat): Upper-case earlier. Justify correctly. + (singleDateTimeConversion): New method. + (dateTimeConversion): Likewise. + 2005-09-26 Lillian Angel * javax/swing/ToolTipManager.java @@ -9956,6 +10922,43 @@ (adjustGreater): New helper function. (adjustSmaller): New helper function. +2005-09-25 Jeroen Frijters + + * gnu/java/lang/reflect/ClassSignatureParser.java, + gnu/java/lang/reflect/GenericSignatureParser.java, + gnu/java/lang/reflect/MethodSignatureParser.java: New files. + * java/lang/Class.java + (constructor): Changed type to generic type. + (cast, getEnumConstants): Added cast. + (getGenericInterfaces, getGenericSuperclass, getTypeParameters): + Implemented. + * vm/reference/java/lang/VMClass.java + (getSimpleName, getDeclaredAnnotations, getCanonicalName, + getEnclosingClass, getEnclosingConstructor, getEnclosingMethod, + isAnonymousClass, isLocalClass, isMemberClass): + Removed generic types from signatures. + (getGenericInterfaces, getGenericSuperclass, getTypeParameters): + Removed. + (getClassSignature): New method. + * vm/reference/java/lang/reflect/Constructor.java + (getTypeParameters): Implemented. + * vm/reference/java/lang/reflect/Method.java + (getTypeParameters, getSignature): New methods. + +2005-09-25 Jeroen Frijters + + * java/lang/System.java, + vm/reference/java/lang/VMSystem.java: Removed generic type + from VMSystem.environ() signature. + +2005-09-25 Jeroen Frijters + + * java/lang/MalformedParameterizedTypeException.java: Removed. + +2005-09-25 Tom Tromey + + * java/util/Formatter.java (lineSeparator): Use SystemProperties. + 2005-09-25 Casey Marshall Fixes PR classpath/23916. Fix suggested by Santiago Gala @@ -9997,6 +11000,26 @@ * gnu/java/security/provider/DiffieHellmanKeyPairGeneratorImpl.java: new files. +2005-09-24 Tom Tromey + + * java/util/FormattableFlags.java (PLUS, SPACE, ZERO, COMMA, + PAREN): New constants. + * java/util/UnknownFormatConversionException.java + (UnknownFormatConversionException): Set exception text. + * java/util/IllegalFormatException.java (IllegalFormatException): + New constructor. + * java/util/FormatFlagsConversionMismatchException.java + (FormatFlagsConversionMismatchException): Set exception text. + * java/lang/String.java (format): New methods. + * java/io/PrintStream.java (printf): New methods. + (format): Likewise. + * java/io/PrintWriter.java (printf): New methods. + (format): Likewise. + * java/util/Formattable.java: New file. + * java/util/FormatterClosedException.java (serialVersionUID): + Fixed. + * java/util/Formatter.java: New file. + 2005-09-24 Roman Kennke * javax/swing/SizeRequirements.java @@ -10555,11 +11578,57 @@ * javax/swing/filechooser/FileFilter.java: reformatted and added API docs. -2004-10-09 Tom Tromey - - * java/lang/ClassLoader.java - (defineClass(String,ByteBuffer,ProtectionDomain)): New method. +2005-09-21 Andrew John Hughes + * gnu/classpath/ByteArray.java, + * gnu/classpath/ObjectPool.java, + * gnu/javax/crypto/DiffieHellmanImpl.java, + * gnu/javax/crypto/GnuDHPrivateKey.java, + * gnu/javax/crypto/RSACipherImpl.java, + * java/lang/Deprecated.java, + * java/lang/Enum.java, + * java/lang/Iterable.java, + * java/lang/MalformedParameterizedTypeException.java, + * java/lang/Override.java, + * java/lang/ProcessBuilder.java, + * java/lang/SuppressWarnings.java, + * java/lang/annotation/Annotation.java, + * java/lang/annotation/Documented.java, + * java/lang/annotation/ElementType.java, + * java/lang/annotation/IncompleteAnnotationException.java, + * java/lang/annotation/Inherited.java, + * java/lang/annotation/Retention.java, + * java/lang/annotation/RetentionPolicy.java, + * java/lang/annotation/Target.java, + * java/lang/reflect/AnnotatedElement.java, + * java/lang/reflect/GenericDeclaration.java, + * java/lang/reflect/MalformedParameterizedTypeException.java, + * java/lang/reflect/TypeVariable.java, + * java/util/AbstractQueue.java, + * java/util/DuplicateFormatFlagsException.java, + * java/util/EnumMap.java, + * java/util/EnumSet.java, + * java/util/FormatFlagsConversionMismatchException.java, + * java/util/FormatterClosedException.java, + * java/util/IllegalFormatCodePointException.java, + * java/util/IllegalFormatConversionException.java, + * java/util/IllegalFormatException.java, + * java/util/IllegalFormatFlagsException.java, + * java/util/IllegalFormatPrecisionException.java, + * java/util/IllegalFormatWidthException.java, + * java/util/InputMismatchException.java, + * java/util/InvalidPropertiesFormatException.java, + * java/util/MissingFormatArgumentException.java, + * java/util/MissingFormatWidthException.java, + * java/util/PriorityQueue.java, + * java/util/Queue.java, + * java/util/UnknownFormatConversionException.java, + * java/util/UnknownFormatFlagsException.java, + * org/omg/CORBA/SendingContext/RunTimeOperations.java, + * org/omg/CORBA/SendingContext/Runtime.java, + * vm/reference/java/lang/VMPackage.java: + Fixed address within GPL. + 2005-09-21 Lillian Angel * javax/swing/ToolTipManager.java @@ -10797,6 +11866,36 @@ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (isRealized): Leave GDK critical region when exiting early. +2005-09-19 Andrew John Hughes + + * java/util/Collections.java: + Fixes Bug #PR22921. + (emptySet()): Implemented. + (emptyList()): Implemented. + (emptyMap()): Implemented. + (rotate(List,int)): Fixed signature. + (shuffle(List)): Fixed signature. + (shuffle(List,Random)): Fixed signature. + (frequency(Collection,Object)): Documented. + (addAll(Collection, T... a)): Implemented. + (disjoint(Collection,Collection)): Implemented. + (swap(List,int,int)): Fixed signature. + (checkedCollection(Collection,Class)): Implemented. + (Collections.CheckedCollection): New inner class. + (Collections.CheckedIterator): New inner class. + (checkedList(List, Class)): Implemented. + (Collections.CheckedList): New inner class. + (Collections.CheckedRandomAccessList): New inner class. + (Collections.CheckedListIterator): New inner class. + (checkedMap(Map,Class,Class)): Implemented. + (Collections.CheckedMap): New inner class. + (checkedSet(Set,Class)): Implemented. + (Collections.CheckedSet): New inner class. + (checkedSortedMap(SortedMap,Class,Class)): Implemented. + (Collections.CheckedSortedMap): New inner class. + (checkedSortedSet(SortedSet,Class)): Implemented. + (Collections.CheckedSortedSet): New inner class. + 2005-09-19 Tom Tromey * java/awt/PopupMenu.java (AccessibleAWTPopupMenu.serialVersionUID): @@ -11414,6 +12513,10 @@ (ButtonBorder.paintBorder): draw a different border for a disabled button. +2005-09-15 Tom Tromey + + * java/lang/EnumConstantNotPresentException.java: New file. + 2005-09-15 Anthony Green * java/awt/Color.java (RGBtoHSB): Don't use integer division when @@ -15789,10 +16892,81 @@ 2005-08-14 Sven de Marothy - * java/awt/Container.java - (addImpl): Call addNotify() only if the container has a peer. + * gnu/java/awt/ClasspathToolkit.java + (getScreenSize, getColorModel, getFontMetrics, getImage, createImage, + createImageProducer, registerImageIOSpis): + Remove redundant (overloaded) methods. + * gnu/java/awt/peer/gtk/GtkToolkit.java + (registerImageIOSpis): Move registration to static initializer. + * javax/imageio/spi/IIORegistry.java: + Remove call to Toolkit registration method. + +2005-08-13 Mark Wielaard -2005-08-13 Jeroen Frijters + * gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer): Make + field final. + +2005-08-14 Sven de Marothy + + * java/awt/Container.java + (addImpl): Call addNotify() only if the container has a peer. + +2005-08-13 Tom Tromey + + * java/util/Collections.java (reverseOrder): New method. + (frequency): Likewise. + (ReverseComparator): No longer final. + +2005-08-13 Tom Tromey + + * java/util/Timer.java (Timer(String)): New constructor. + (Timer(String,boolean)): Likewise. + (purge): New method. + (TaskQueue.purge): Likewise. + +2005-08-13 Tom Tromey + + * java/util/FormattableFlags.java: New file. + +2005-08-13 Tom Tromey + + * java/util/UnknownFormatConversionException.java + (serialVersionUID): New field. + (s): Renamed from 'conv' for serialization. + * java/util/MissingFormatWidthException.java (serialVersionUID): + New field. + (s): Renamed from 'width' for serialization. + * java/util/MissingFormatArgumentException.java + (serialVersionUID): New field. + (s): Renamed from 'spec' for serialization. + * java/util/IllegalFormatWidthException.java (serialVersionUID): + New field. + (w): Renamed from 'width' for serialization. + * java/util/IllegalFormatPrecisionException.java + (serialVersionUID): New field. + (p): Renamed from 'precision' for serialization. + * java/util/IllegalFormatFlagsException.java (serialVersionUID): + New field. + * java/util/IllegalFormatConversionException.java + (serialVersionUID): New field. + (c): Renamed from 'conv' for serialization. + (arg): Renamed from 'argClass' for serialization. + * java/util/IllegalFormatCodePointException.java + (serialVersionUID): New field. + (c): Renamed from 'codepoint' for serialization. + * java/util/FormatFlagsConversionMismatchException.java + (serialVersionUID): New field. + (f): Renamed from 'flags' for serialization. + (c): Renamed from 'conversion' for serialization. + * java/util/DuplicateFormatFlagsException.java (serialVersionUID): + New field. + * java/util/IllegalFormatException.java (serialVersionUID): New + field. + * java/util/FormatterClosedException.java (serialVersionUID): New + field. + * java/util/InvalidPropertiesFormatException.java: New file. + +2005-08-13 Jeroen Frijters * java/io/ObjectInputStream.java (readClassDescriptor): Don't cache caller's class loader. @@ -16761,6 +17935,11 @@ (installUI): set the items visible. Fixes exceptions that are thrown because item is not explicitly set visible. +2005-08-03 Ewout Prangsma + + * java/lang/Enum.java: + (valueOf(Class,String)): Implemented. + 2005-08-03 Roman Kennke * javax/swing/plaf/basic/BasicViewportUI.java @@ -17116,7 +18295,7 @@ * scripts/eclipse-gnu.xml: Drop extends, implements, throws into new line. -2005-07-31 Jan Roehrich +2005-07-31 Jan Roehrich * javax.swing.plaf.basic.BasicTreeUI: fixed indentation. @@ -21087,6 +22266,12 @@ * org/omg/IOP/TransactionService.java, org/omg/IOP/CodeSets.java: New files. +2005-06-17 Jeroen Frijters + + * java/lang/ThreadLocal.java, + java/util/TreeMap.java: Fixes to make compiling with Eclipse Java + Compiler SVN HEAD possible. + 2005-06-17 Audrius Meskauskas * org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java, @@ -21414,6 +22599,21 @@ * java/util/regex/Pattern.java (constructor): Switch syntax from PERL5 to JAVA_1_4. +2005-06-11 Andrew John Hughes + + * doc/unicode/Blocks-4.0.0.txt: + New block listings for Unicode 4.0.0. + * java/lang/Character.java: + Added new fields for 1.5, both in Character and UnicodeBlock. + (UnicodeBlock.of(int)): Implemented. + (UnicodeBlock.forName(String)): Implemented. + * java/lang/annotation/ElementType.java: + Corrected serial UID. + * java/lang/annotation/RetentionPolicy.java: + Likewise. + * scripts/unicode-blocks.pl + Updated to handle Unicode 4.0.0. + 2005-06-11 Audrius Meskauskas * org/omg/CORBA/ORB.java, @@ -21488,6 +22688,72 @@ (gdkDrawDrawable): Check if cairo pattern is non-null before setting its matrix. +2005-06-09 Andrew John Hughes + + * java/lang/Class.java: + (internalGetClasses()): Use collections with type parameters. + (internalGetFields()): Likewise. + (internalGetMethods()): Likewise. + (getSuperclass()): Changed to new return type. + (asSubclass(Class)): Documented. + (getEnumConstants()): Calls VMClass. + (getAnnotation(Class)): Implemented. + (getAnnotations()): Implemented. + (getCanonicalName()): Implemented. + (getDeclaredAnnotations()): Implemented. + (getEnclosingClass()): Implemented. + (getEnclosingConstructor()): Implemented. + (getEnclosingMethod()): Implemented. + (getGenericInterfaces()): Implemented. + (getGenericSuperclass()): Implemented. + (getTypeParameters()): Implemented. + (isAnnotationPresent(Class)): Implemented. + (isAnonymousClass()): Implemented. + (isLocalClass()): Implemented. + (isMemberClass()): Implemented. + * java/lang/Package.java: + (getAnnotation(Class)): Implemented. + (getAnnotations()): Implemented. + (getDeclaredAnnotations()): Implemented. + (isAnnotationPresent(Class)): Implemented. + * java/lang/annotation/AnnotationTypeMismatchException.java: + Added serial version UID. + * java/lang/annotation/ElementType.java: Likewise. + * java/lang/annotation/RetentionPolicy.java: Likewise. + * java/lang/reflect/AnnotatedElement.java: Documented. + * java/lang/reflect/Modifier.java: + (toString(int)): Switched to using StringBuilder. + (toString(int,StringBuilder)): Likewise. + * vm/reference/java/lang/VMClass.java: + (getSuperClass(Class)): Updated return type. + (getSimpleName(Class)): Use VM methods directly. + (getEnumConstants(Class)): Implementation moved from Class. + (getDeclaredAnnotations(Class)): New native method. + (getCanonicalName(Class)): Implemented. + (getEnclosingClass(Class)): New native method. + (getEnclosingConstructor(Class)): New native method. + (getEnclosingMethod(Class)): New native method. + (getGenericInterfaces(Class)): New native method. + (getGenericSuperclass(Class)): New native method. + (getTypeParameters(Class)): New native method. + (isAnonymousClass(Class)): New native method. + (isLocalClass(Class)): New native method. + (isMemberClass(Class)): New native method. + * vm/reference/java/lang/VMPackage.java: + New VM class corresponding to java.lang.Package. + (getDeclaredAnnotations(Class)): New native method. + * vm/reference/java/lang/VMSystem.java: + Removed unnecessary imports. + * vm/reference/java/lang/reflect/Constructor.java: + (toString()): Changed StringBuffer to StringBuilder. + (getTypeParameters()): Changed to native method. + * vm/reference/java/lang/reflect/Field.java: + (toString()): Changed StringBuffer to StringBuilder. + * vm/reference/java/lang/reflect/Method.java: + (getReturnType()): Updated return type. + (toString()): Changed StringBuffer to StringBuilder. + (invoke(Object,...)): Updated arguments. + 2005-06-09 Thomas Fitzsimmons * gnu/java/awt/peer/gtk/GtkPanelPeer.java, @@ -22201,8 +23467,8 @@ 2005-05-29 Audrius Meskauskas - * org/omg/CORBA/Functional_ORB.java (serve, useProperties, init): Implementing - the property-configurable time-outs. + * org/omg/CORBA/Functional_ORB.java (serve, useProperties, init): + Implementing the property-configurable time-outs. 2005-05-29 Audrius Meskauskas @@ -24037,11 +25303,38 @@ (getPreferredSpan): Corrected the calculation of the span of the view. +2005-05-05 Andrew John Hughes + + * java/lang/Class.java: + (getSimpleName()): Implemented. + * vm/reference/java/lang/VMClass.java: + (getSimpleName()): Reference implementation. + +2005-05-05 Andrew John Hughes + + * include/java_lang_VMProcess.h: + Regenerated. + * native/jni/java-lang/java_lang_VMProcess.c: + Added missing #include statement. + 2005-05-05 Chris Burdess * gnu/xml/transform/StreamSerializer.java: Produce compact, human-readable XML for non-UTF/ASCII encodings using NIO. +2005-05-04 Tom Tromey + + * native/jni/java-lang/java_lang_VMProcess.c + (Java_java_lang_VMProcess_nativeSpawn): Added 'redirect' + argument. Use defines instead of contents. + * vm/reference/java/lang/VMProcess.java (redirect): New field. + (spawn): Updated. + (setProcessInfo): Updated. + (VMProcess): Added 'redirect' argument. + (nativeSpawn): Likewise. + (exec): New overload. + * java/lang/ProcessBuilder.java: New file. + 2005-05-04 Mark Wielaard * java/awt/BufferCapabilities.java (BufferCapabilities): Make @@ -24277,7 +25570,7 @@ 2005-04-28 Robert Schuster - * java/beans/Introspector.java: Fixed bug #12624, BeanDescriptors + * java/beans/Introspector: Fixed bug #12624, BeanDescriptors will now be set correctly. (flushCaches): Now flushes all cached intermediate data. @@ -24710,6 +26003,118 @@ include/gnu_java_nio_charset_iconv_IconvEncoder.h: Regenerated with gcjh from gcc 4.0 branch. +2005-04-20 Tom Tromey + + * .classpath: Updated. + +2005-04-20 Tom Tromey + + * vm/reference/java/lang/VMThread.java (run): Use thread's + uncaught handler. + * java/lang/Thread.java (defaultHandler): New field. + (setDefaultUncaughtExceptionHandler, + getDefaultUncaughtExceptionHandler, setUncaughtExceptionHandler, + getUncaughtExceptionHandler): New methods. + * java/lang/ThreadGroup.java (ThreadGroup): Implements + UncaughtExceptionHandler. + (uncaughtException): Use getDefaultUncaughtExceptionHandler. + +2005-04-20 Tom Tromey + + * java/lang/reflect/MalformedParameterizedTypeException.java: New + file. + +2005-04-20 Tom Tromey + + * java/util/PriorityQueue.java (PriorityQueue): Implements + Serializable. + (serialVersionUID): New field. + * java/util/EnumMap.java (serialVersionUID): New field. + * java/util/EnumSet.java (serialVersionUID): New field. + +2005-04-20 Tom Tromey + + * java/util/Arrays.java (hashCode): New methods. + (deepHashCode): New method. + (deepEquals): Likewise. + (toString): New methods. + (deepToString): New method. + +2005-04-20 Tom Tromey + + * java/util/zip/Inflater.java (getTotalIn): Deprecated. + (getBytesRead): New method + (getTotalOut): Deprecated. + (getBytesWritten): New method. + (totalIn, totalOut): Now 'long'. + * java/util/zip/DeflaterEngine.java (totalIn): Now 'long'. + (getTotalIn): Return 'long'. + * java/util/zip/Deflater.java (totalOut): Now 'long'. + (getTotalOut): Deprecated. + (getBytesWritten): New method. + (getTotalIn): Deprecated. + (getBytesRead): New method. + +2005-04-20 Tom Tromey + + * java/nio/charset/Charset.java (compareTo): Changed argument + type. + * java/nio/ShortBuffer.java (compareTo): Changed argument type. + * java/nio/LongBuffer.java (compareTo): Changed argument type. + * java/nio/IntBuffer.java (compareTo): Changed argument type. + * java/nio/FloatBuffer.java (compareTo): Changed argument type. + * java/nio/DoubleBuffer.java (compareTo): Changed argument type. + * java/nio/ByteBuffer.java (compareTo): Changed argument type. + * java/nio/CharBuffer.java (CharBuffer): Implements Readable, + Appendable. + (append): New methods. + (compareTo): Changed argument type. + (read): New method. + +2005-04-20 Tom Tromey + + * java/io/PrintStream.java (append): Don't throw IOException. + * java/io/StringWriter.java (append): New overloads. + * java/io/PrintWriter.java (append): New overloads. + (PrintWriter): New constructors. + * java/io/CharArrayWriter.java (append): New overloads. + * java/io/RandomAccessFile.java (RandomAccessFile): Implements + Closeable. + * java/io/Reader.java (Reader): Implements Readable. + (read): New method. + +2005-04-20 Tom Tromey + + * java/math/BigInteger.java (TEN): New constant. + * java/math/BigDecimal.java (ZERO, ONE): Now public. + (TEN): New constant. + +2005-04-20 Tom Tromey + + * java/lang/Short.java (reverseBytes): Argument is 'short'. + +2005-04-20 Tom Tromey + + * java/lang/ThreadLocal.java (remove): New method. + +2005-04-20 Tom Tromey + + * java/util/DuplicateFormatFlagsException.java: New file. + * java/util/FormatFlagsConversionMismatchException.java: New + file. + * java/util/FormatterClosedException.java: New file. + * java/util/IllegalFormatCodePointException.java: New file. + * java/util/IllegalFormatConversionException.java: New file. + * java/util/UnknownFormatFlagsException.java: New file. + * java/util/UnknownFormatConversionException.java: New file. + * java/util/MissingFormatWidthException.java: New file. + * java/util/MissingFormatArgumentException.java: New file. + * java/util/InputMismatchException.java: New file. + * java/util/IllegalFormatWidthException.java: New file. + * java/util/IllegalFormatPrecisionException.java: New file. + * java/util/IllegalFormatFlagsException.java: New file. + * java/util/IllegalFormatException.java: New file. + 2005-04-20 Roman Kennke * javax/swing/plaf/basic/BasicLookAndFeel.java @@ -24829,6 +26234,12 @@ * gnu/java/io/encode/package.html: Removed +2005-04-19 Sven de Marothy + + * java/util/Calendar.java: + (compareTo(java.util.Calendar)): Handle instability + in obtaining the milliseconds value. + 2005-04-19 Michael Koch * java/awt/geom/QuadCurve2D.java: @@ -25041,9 +26452,42 @@ 2005-04-17 Roman Kennke * javax/swing/text/SimpleAttributeSet.java + (addAttribute): Removed null pointer check. + * javax/swing/text/StyleContext.java + (NamedStyle.setResolveParent): Added null pointer check. + +2005-04-17 Roman Kennke + + * examples/gnu/classpath/exammples/swing/Demo.java: + Print a short summary for available values for the property + swing.defaultlaf. + Set MetalLookAndFeel as default. + Pulled out GNULookAndFeel so that it is accessible. + * examples/gnu/classpath/exammples/swing/GNULookAndFeel.java: + Pulled out this class from Demo.java. + +2005-04-17 Roman Kennke + + * javax/swing/UIManager.java: + Make the UIManager respect the swing.defaultlaf system + property. + +2005-04-17 Roman Kennke + + * javax/swing/text/SimpleAttributeSet.java (addAttribute): Check for null and remove key in that case. This fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21064 . +2005-04-16 Ewout Prangsma + + * java/util/PriorityQueue.java: + (PriorityQueue(Collection)): Added explicit cast + for comparators. + (PriorityQueue(PriorityQueue)): Likewise. + (PriorityQueue(SortedSet)): Likewise. + * java/util/TreeSet.java: + (TreeSet(SortedSet)): Likewise. + 2005-04-16 Roman Kennke * java/awt/BorderLayout.java @@ -25674,6 +27118,36 @@ the whole screen. This is not a fully accelerated fullscreen exclusive mode. +2005-04-04 Andrew John Hughes + + * java/lang/Class.java: + (newInstance): Returns an instance of T instead of Object. + (isEnum()): Now calls VMClass for a proper implementation. + (isSynthetic()): New method implemented. + (isAnnotation()): New method implemented. + * vm/reference/java/lang/VMClass.java: + (isEnum()): New native method. + (isSynthetic()): New native method. + (isAnnotation()): New native method. + * vm/reference/java/lang/reflect/Constructor.java: + (newInstance(Object...)): Changed input parameter to a vararg. + +2005-04-03 Andrew John Hughes + + * java/lang/System.java: + (getenv()): Use Collections.unmodifiableMap to wrap an + EnvironmentMap. + (EnvironmentCollection): Reduced to just String check changes. + (EnvironmentSet): Likewise. + (EnvironmentMap): Likewise. + (EnvironmentIterator): Removed. + +2005-04-02 Andrew John Hughes + + * java/lang/StringBuilder.java: + Change references to System.arraycopy to + VMSystem.arraycopy. + 2005-04-03 Guilhem Lavaux Rei Odaira @@ -25841,7 +27315,7 @@ * gnu/xml/dom/html2/DomHTMLParser.java: Changed 'enum' references to become 'enumeration'. - + 2005-03-22 Archie Cobbs * configure.ac: Generate scripts/classpath.spec. @@ -25863,7 +27337,19 @@ * doc/www.gnu.org/events/escape_fosdem05.wml: Add link to kaffe presentation. -2005-03-17 Archie Cobbs +2005-03-21 Andrew John Hughes + + * java/lang/Class.java: + Implements java.lang.reflect.Type + * java/lang/ClassLoader.java: + (getResources(String)): No longer final. + * java/lang/Enum.java: + Added serialization UID. + * java/lang/Thread.java: + (destroy()): Deprecated. + (Thread.State): Added serialization UID. + +2005-03-19 Archie Cobbs * vm/reference/java/lang/VMClassLoader.java: handle ZIP files on the boot loader class path in getResources() @@ -25875,6 +27361,22 @@ org/omg/CORBA/CompletionStatusHelper.java: New files. +2005-03-19 Andrew John Hughes + + * java/lang/IllegalArgumentException: + (IllegalArgumentException(String, Throwable)): + Implemented. + (IllegalArgumentException(Throwable)): Likewise. + (IllegalStateException(String, Throwable)): + Implemented. + (IllegalStateException(Throwable)): Likewise. + (SecurityException(String, Throwable)): + Implemented. + (SecurityException(Throwable)): Likewise. + (UnsupportedOperationException(String, Throwable)): + Implemented. + (UnsupportedOperationException(Throwable)): Likewise. + 2005-03-18 Mark Wielaard * doc/www/downloads/downloads.wml: Add 0.14. @@ -25885,17 +27387,6 @@ * java/util/zip/GZIPInputStream.java: (GZIPInputStream): Read header in constructor. -2005-03-18 Andrew John Hughes - - * gnu/javax/swing/text/html/parser/htmlAttributeSet.java: - (getAttributeNames()): Replaced 'enum' with 'enumeration'. - * gnu/javax/swing/text/html/parser/htmlValidator.java: - (validateParameters(TagElement,htmlAttributeSet)): - Replaced 'enum' with 'enumeration'. - (validateAttribute(TagElement,htmlAttributeSet, - Enumeration,Enumeration)): - Likewise. - 2005-03-18 Audrius Meskauskas * ChangeLog.usermap: New file (replacing). @@ -26065,6 +27556,17 @@ * gnu/xml/aelfred2/XmlParser.java: Fixed typo. +2005-03-13 Andrew John Hughes + + * gnu/javax/swing/text/html/parser/htmlAttributeSet.java: + (getAttributeNames()): Replaced 'enum' with 'enumeration'. + * gnu/javax/swing/text/html/parser/htmlValidator.java: + (validateParameters(TagElement,htmlAttributeSet)): + Replaced 'enum' with 'enumeration'. + (validateAttribute(TagElement,htmlAttributeSet, + Enumeration,Enumeration)): + Likewise. + 2005-03-12 Audrius Meskauskas * org/omg/CORBA/StringSeqHelper.java, @@ -26787,14 +28289,14 @@ org/omg/CORBA/CompletionStatus.java: Documenting that serialVersionUID is from v1.4. -2005-04-06 Audrius Meskauskas +2005-03-06 Audrius Meskauskas * org/omg/CORBA/Context.java, org/omg/CORBA/ContextList.java: New files. -2005-04-06 Audrius Meskauskas +2005-03-06 Audrius Meskauskas * org/omg/CORBA/TCKind.java: Making fields final. -2005-04-06 Audrius Meskauskas +2005-03-06 Audrius Meskauskas * org/omg/CORBA/Any.java, org/omg/CORBA/Principal.java, @@ -27404,16 +28906,6 @@ 2005-02-20 Andrew John Hughes - Merge of interfaces and exceptions to HEAD from - the generics branch. - - * java/lang/StringBuilder.java: Serial version updated. - * java/lang/annotation/AnnotationTypeMismatchException.java: Likewise. - - Changes from generics branch: - - 2005-02-20 Andrew John Hughes - * java/io/Closeable.java: Documented. * java/io/Flushable.java: Documented. * java/lang/Appendable.java: Corrected line overrun. @@ -27426,34 +28918,100 @@ * java/lang/reflect/ParameterizedType.java: Likewise. * java/lang/reflect/Type.java: Likewise. * java/lang/reflect/WildcardType.java: Likewise. - - 2005-01-07 Andrew John Hughes - * java/lang/annotation/AnnotationTypeMismatchException.java: - Added import of java.lang.reflect.Method +2005-02-20 Mark Wielaard - 2004-08-26 Tom Tromey + * java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by + taking dstSavings into account. - * java/lang/reflect/GenericSignatureFormatError.java: New file. - * java/lang/reflect/WildcardType.java: New file. - * java/lang/reflect/ParameterizedType.java: New file. - * java/lang/reflect/GenericArrayType.java: New file. - * java/lang/reflect/Type.java: New file. - * java/io/Flushable.java: New file. - * java/io/Closeable.java: New file. +2005-02-20 Sven de Marothy - 2004-08-07 Tom Tromey - - * java/lang/annotation/AnnotationFormatError.java: New file. - * java/lang/annotation/AnnotationTypeMismatchException.java: New - file. + * java/text/SimpleDateFormat.java, + (parse): Set DST_OFFSET to the correct value. - 2004-08-06 Tom Tromey +2005-02-20 Rutger Ovidius - * java/lang/Readable.java: New file. + * gnu/java/security/provider/Gnu.java (Gnu): Add SHA-160 alias. 2005-02-20 Mark Wielaard + * java/text/SimpleDateFormat.java + (SimpleDateFormat(String, DateFormatSymbols)): Throw + NullPointerException when formatData is null. + +2005-02-19 Michael Koch + + * gnu/java/locale/LocaleInformation_af.java, + gnu/java/locale/LocaleInformation_am.java, + gnu/java/locale/LocaleInformation_ca.java, + gnu/java/locale/LocaleInformation_cs.java, + gnu/java/locale/LocaleInformation_cy.java, + gnu/java/locale/LocaleInformation_da.java, + gnu/java/locale/LocaleInformation_de.java, + gnu/java/locale/LocaleInformation_el.java, + gnu/java/locale/LocaleInformation_en.java, + gnu/java/locale/LocaleInformation_eo.java, + gnu/java/locale/LocaleInformation_es.java, + gnu/java/locale/LocaleInformation_et.java, + gnu/java/locale/LocaleInformation_eu.java, + gnu/java/locale/LocaleInformation_fa.java, + gnu/java/locale/LocaleInformation_fi.java, + gnu/java/locale/LocaleInformation_fr.java, + gnu/java/locale/LocaleInformation_ga.java, + gnu/java/locale/LocaleInformation_hr.java, + gnu/java/locale/LocaleInformation_hu.java, + gnu/java/locale/LocaleInformation_hy.java, + gnu/java/locale/LocaleInformation_id.java, + gnu/java/locale/LocaleInformation_is.java, + gnu/java/locale/LocaleInformation_it.java, + gnu/java/locale/LocaleInformation_ja.java, + gnu/java/locale/LocaleInformation_ka.java, + gnu/java/locale/LocaleInformation_ko.java, + gnu/java/locale/LocaleInformation_lo.java, + gnu/java/locale/LocaleInformation_lt.java, + gnu/java/locale/LocaleInformation_lv.java, + gnu/java/locale/LocaleInformation_mk.java, + gnu/java/locale/LocaleInformation_mn.java, + gnu/java/locale/LocaleInformation_ms.java, + gnu/java/locale/LocaleInformation_mt.java, + gnu/java/locale/LocaleInformation_nb.java, + gnu/java/locale/LocaleInformation_nl.java, + gnu/java/locale/LocaleInformation_nn.java, + gnu/java/locale/LocaleInformation_pl.java, + gnu/java/locale/LocaleInformation_pt.java, + gnu/java/locale/LocaleInformation_ro.java, + gnu/java/locale/LocaleInformation_ru.java, + gnu/java/locale/LocaleInformation_sk.java, + gnu/java/locale/LocaleInformation_sl.java, + gnu/java/locale/LocaleInformation_sq.java, + gnu/java/locale/LocaleInformation_sv.java, + gnu/java/locale/LocaleInformation_th.java, + gnu/java/locale/LocaleInformation_tr.java, + gnu/java/locale/LocaleInformation_vi.java, + gnu/java/locale/LocaleInformation_zh.java, + gnu/java/locale/LocaleInformation_zh_Hant.java: Updated. + * gnu/java/locale/LocaleInformation_az_Cyrl.java: New file. + +2005-02-19 Archie Cobbs + + * java/lang/Throwable.java: simplify initializing cause in constructor + +2005-02-19 Michael Koch + + * javax/swing/JToggleButton.java: Removed empty line. + +2005-02-18 Bryce McKinlay + + * java/util/LinkedHashMap (addEntry): Call remove() with key argument, + not the HashEntry. Reported by Jean-Marie White. + +2005-02-18 Mark Wielaard + + * doc/www.gnu.org/events/escape_fosdem05.wml: New event. + * doc/www.gnu.org/newsitems.txt: Add Escape the Java Trap. + * doc/www.gnu.org/events/events.wml: Likewise. +2005-02-20 Mark Wielaard + * java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by taking dstSavings into account. @@ -28383,11 +29941,12 @@ 2005-02-14 Sven de Marothy - * java/util/Calendar.java - (clear): Dates should clear to local time. - * java/util/GregorianCalendar.java - (computeTime): Fix priority problem with DAY_OF_WEEK, - Handle non-sunday-startig weeks and minimumDaysInFirstWeek. + * java/util/Calendar.java + (clear): Dates should clear to local time. + + * java/util/GregorianCalendar.java + (computeTime): Fix priority problem with DAY_OF_WEEK, + Handle non-sunday-startig weeks and minimumDaysInFirstWeek. 2005-02-13 Mark Wielaard @@ -28793,8 +30352,7 @@ 2005-02-05 C. Brian Jones - * gnu/java/rmi/registry/: Added back to classpath again, used by core - library. + * gnu/java/rmi/registry/: added back to classpath again, used by core library * gnu/java/rmi/registry/RegistryImpl.java: ditto * gnu/java/rmi/registry/RegistryImpl_Skel.java: ditto * gnu/java/rmi/registry/RegistryImpl_Stub.java: ditto @@ -28961,6 +30519,27 @@ javax/security/auth/callback/TextOutputCallback.java, javax/security/auth/callback/UnsupportedCallbackException.java: Removed CVS version tags. + +2005-02-01 Andrew John Hughes + + * java/lang/Appendable.java: + Changed formatting to match HEAD. + * java/text/MessageFormat.java: + Likewise. + * javax/swing/AbstractSet.java, + javax/swing/DefaultCellRenderer.java: + Finally removed. + +2005-01-31 Andrew John Hughes + + * acinclude.m4: + (CLASSPATH_FIND_JAVAC): Add ECJ option. + (CLASSPATH_WITH_ECJ): New function. + (CLASSPATH_CHECK_ECJ): New function. + * examples/Makefile.am: + Allow examples to be built with ecj. + * lib/Makefile.am: + Allow Classpath to be built with ecj. 2005-01-31 Andrew John Hughes @@ -29683,7 +31262,7 @@ (formatWithAttribute(java.util.Date, gnu.java.text.FormatBuffer, java.text.FieldPosition)): Changed to use CompiledField. New handler for RFC 822 timezones added. - + 2005-01-22 Andrew John Hughes * java/awt/Checkbox.java: @@ -29764,6 +31343,25 @@ 2005-01-20 Andrew John Hughes + * include/java_lang_VMSystem.h: + (Java_java_lang_VMSystem_environ): added + * java/lang/System.java: + Added cached environmentMap. + (getenv()): documented and implemented + (EnvironmentCollection): new class for use + by getenv() + (EnvironmentSet): likewise + (EnvironmentIterator): clone of + UnmodifiableIterator from java.util + * native/jni/java-lang/java_lang_VMSystem.c: + (environ(JNIEnv, jclass)): implemented + * vm/reference/java/lang/VMSystem.java: + (getenv()): removed + (environ()): new native method + (getenv(String)): made native like HEAD + +2005-01-20 Andrew John Hughes + * java/util/Currency.java: Added new countryMap which maps country codes to international currency codes. The cache @@ -29855,26 +31453,6 @@ (AccessibleAWTCheckbox.getAccessibleStateSet()): implemented and documented (getAccessibleContext()): name of accessible class corrected - -2005-01-19 Andrew John Hughes - - Merge of java.lang.Appendable to HEAD from - the generics branch. - - 2004-08-06 Tom Tromey - - * java/lang/Appendable.java: New file. - - 2004-09-26 Andrew John Hughes - - * java/lang/Appendable.java - Documented this class. - (append(CharSequence, int, int)): added. - - 2004-10-31 Robert Schuster - - * java/lang/Appendable.java (append): - Throws IOException. 2005-01-19 Michael Koch @@ -30009,6 +31587,35 @@ javax/imageio/metadata/IIONamedNodeMap.java, javax/imageio/metadata/IIONodeList.java: New files + +2005-01-17 Andrew John Hughes + + * java/util/IdentityHashMap.java: + added parameteric typing + (entries): generically typed + (IdentityHashMap(Map)): + likewise + (entrySet()): likewise + (entrySet().iterator()): likewise + (get(Object)): likewise + (keySet()): likewise + (keySet().iterator()): likewise + (put(K,V)): likewise + (putAll(Map)): likewise + (remove(Object)): likewise + (values()): likewise + (values().iterator()): likewise + (IdentityIterator): likewise + (IdentityIterator.next()): likewise + (IdentityEntry): likewise + (IdentityEntry.getKey()): likewise + (IdentityEntry.getValue()): likewise + (IdentityEntry.putValue(V)): likewise + (readObject()): appropriate casting + +2005-01-16 Tom Tromey + + * .classpath: Updated. 2005-01-17 Andrew John Hughes @@ -30022,65 +31629,119 @@ * java/lang/ClassLoader.java (getExtClassLoaderUrls): Add check for null returned from getFiles(). -2005-01-15 Andrew John Hughes +2005-01-16 Andrew John Hughes + + Final merge of HEAD patches to generics branch + All changes are listed in merged Changelog. + In addition, + * java/lang/System.java: + (getenv()): changed Runtime.securityManager to + SecurityManager.current + (getenv(String)): likewise + (remove(String)): pointed to SystemProperties + * gnu/classpath/SystemProperties.java: + (remove(String)): implemented and documented +2005-01-15 Tom Tromey + + * javax/imageo/metadata: Merged from trunk. + +2005-01-15 Andrew John Hughes + * java/text/SimpleDateFormat.java: (getDateFormatSymbols()): return a copy (setDateFormatSymbols(java.text.DateFormatSymbols)): throw exception on null input (clone()): implemented to clone internal fields - + 2005-01-15 Mark Wielaard - + Reported by Martin Platter * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c (Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile): Correct method signature of gtkSetFilename. 2005-01-14 Sven de Marothy - + * java/util/GregorianCalendar.java (GregorianCalendar): Update fields in the constructor - + 2005-01-14 Arnaud Vandyck - + * javax/swing/text/StringContent.java: New file. - + 2005-01-13 Andrew John Hughes - + * java/text/SimpleDateFormat.java: (parse): extend try{} block so all illegal arguments are caught and returned as null - + 2005-01-13 Sven de Marothy - + * java/text/SimpleDateFormat.java (parse): comparison should be case-insensitive, ignore null strings. - + 2005-01-13 Jeroen Frijters - + * vm/reference/java/nio/channels/VMChannels.java: Class shouldn't be public. (newInputStream,newOutputStream): No need to be public. - + 2005-01-13 Michael Koch - + * scripts/check_jni_methods.sh: Don't use GNU sed specific features. + +2005-01-13 Andrew John Hughes -2005-01-12 Andrew John Hughes + * java/util/Arrays.java: + (sort(T[],int,int,Comparator)): Typed + Object[] to T[] + * java/util/Collections.java; + (compare(T,T,)): typed generically + (binarySearch(List,T,Comparator)): + re-typed and added casts to List + (rotate(List, int)): added (incorrect?) + super type to compile + (shuffle(List): likewise + (shuffle(List,int,int)): added (incorrect?) + super type to compile + (entrySet()): unmodifiable version removed invalid + static typing of K and V + * java/util/HashMap.java: + (entries): re-typed to Set> + (putAll(Map)): cast and foreach + statement added + (putAllInternal(Map)): likewise + * java/util/Hashtable.java: + same as for HashMap + * java/util/LinkedHashEntry.java: + (pred,succ): generically typed + (LinkedHashEntry(K,V)): likewise + (cleanup()): likewise + (get(Object)): likewise + (addEntry(K,V,int,boolean)): likewise + * java/util/LinkedList.java: + changed incorrect cast + (LinkedListItr): re-typed to unique I from T + * java/util/TreeSet.java: + cast set to SortedSet before using +2005-01-12 Andrew John Hughes + * java/text/DecimalFormatSymbols.java (DecimalFormatSymbols(java.util.Locale)): defaults changed to "?" and "XXX" to match a nuance of Sun's impl. along with documentation - + 2005-01-12 Michael Koch - + * gnu/java/security/x509/X509Certificate.java (parse): Handle val == null case. - + 2005-01-12 Michael Koch - + * java/nio/channels/Channels.java (newInputStream(ReadableByteChannel)): Call VMChannels.newInputStream(ReadableByteChannel). @@ -30089,14 +31750,14 @@ (newInputStream(FileChannelImpl)): Removed. (newOutputStream(FileChannelImpl)): Likewise. * vm/reference/java/nio/channels/VMChannels.java: Nw file. - * native/jni/java-nio/Makefile.am: + * native/jni/java-nio/Makefile.am: * native/jni/java-nio/java_nio_channels_Channels.c, include/java_nio_channels_Channels.h: Removed. * include/Makefile.am: Don't generate java_nio_channels_Channels.h. Removed java_nio_channels_Channels.c. - + 2005-01-12 Michael Koch - + * gnu/java/net/PlainSocketImpl.java (shutdownInput): Made native. Throws IOException. Added Javadoc. (shutdownOutput): Likewise. @@ -30110,48 +31771,93 @@ * native/jni/java-net/javanet.h (_javanet_shutdownInput): Likewise. (_javanet_shutdownOutput): Likewise. - + 2005-01-12 Michael Koch - + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible): Removed setting of gdk_env. + +2005-01-12 Andrew John Hughes -2005-01-11 Mark Wielaard + * java/util/Collections.java + all occurences of + (toArray(E[] a)): fixed parameteric type to be different + from collection type + (entrySet()): immutable version retyped to return Map.Entry + * java/util/TreeMap.java + Completion of generic typing for all methods and variables + (entries, comparator): generically typed + (TreeMap(Comparator): likewise + (TreeMap(Map ): likewise + (TreeMap(SortedMap sm): likewise + (comparator()): likewise + (containsKey(Object)): cast to K for getKey() + (entrySet()): generically typed + (get(Object)): cast to K for getKey() + (keySet()): generically typed + (put(K,V)): likewise + (putAll(Map)): likewise + (remove(Object)): removed invalid generic typing + (values()): generically typed + (deleteFixup(Node, Node)): likewise + (highestLessThan(K)): likewise + (insertFixup(Node)): likewise + (lastNode()): likewise + (lowestGreatThan(K, boolean): likewise + (predecessor(Node)): likewise + (putKeysLinear(Iterator, int)): likewise and doc + correction + (removeNode(Node)): generically typed + (rotateLeft(Node)): likewise + (rotateRight(Node)): likewise + (sucessor(Node)): likewise + (SubMap): generically typed with SK and SV + +2005-01-12 Andrew John Hughes - * acinclude.m4 (CLASSPATH_WITH_GJDOC): Test for gjdoc, not jay. + * java/util/EnumMap.java + Corrected comment for accuracy. + * java/util/EnumSet.java + Corrected indenting. + * java/util/Hashtable.java + Corrected bracketing of author. +2005-01-11 Mark Wielaard + + * acinclude.m4 (CLASSPATH_WITH_GJDOC): Test for gjdoc, not jay. + 2005-01-12 Thomas Fitzsimmons - + * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c (mouseWheel): Call XFlush. (keyPress): Likewise. (keyRelease): Likewise. - + 2005-01-11 Michael Koch - + * javax/swing/UIDefaults.java (UIDefaults): Fixed typo in javadoc (Thanks to Thomas Zander for reporting) Fixed HTML entity and removed a redundant comma. - + 2005-01-11 Michael Koch - + * configure.ac: Check for gdk-pixbuf-2.0. - + 2005-01-11 Graydon Hoare - + * gnu/java/awt/ClasspathToolkit.java (registerImageIOSpis): New method. * gnu/java/awt/image/ImageDecoder.java (imageDecoder): New constructor using InputStream (startProduction): Handle existing InputStream. - * gnu/java/awt/peer/gtk/GdkGraphics2D.java + * gnu/java/awt/peer/gtk/GdkGraphics2D.java (findSimpleIntegerArray): Make public and static. (updateBufferedImage): Set each pixel, in a loop. * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java: Implement ImageIO SPI classes. (createBufferedImage): Rewrite in terms of SPI classes. - * gnu/java/awt/peer/gtk/GtkToolkit.java + * gnu/java/awt/peer/gtk/GtkToolkit.java (registerImageIOSpis): New method. * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Borrow a patch from aph, applied to trunk, @@ -30213,9 +31919,9 @@ (Currency(java.util.Locale)): throw IllegalArgumentException for empty country string and NullPointerException for null locale or country - + 2005-01-11 Graydon Hoare - + * gnu/java/awt/ClasspathToolkit.java (nativeQueueEmpty) (wakeNativeQueue) @@ -30267,59 +31973,124 @@ * gnu/java/awt/peer/gtk/GtkWindowPeer.java: Likewise. * gnu/java/awt/peer/gtk/GtkGenericPeer.java: Likewise. (q): New method. - + 2005-01-11 Michael Koch - + * native/jni/gtk-peer/Makefile.am: Removed gnu_java_awt_peer_gtk_GtkMainThread.c. * include/Makefile.am: Don't generate gnu_java_awt_peer_gtk_GtkMainThread.h * include/gnu_java_awt_peer_gtk_GtkMainThread.h: Removed. - + 2005-01-11 Michael Koch - + * javax/swing/text/DefaultEditorKit.java (deinstall): Removed. (install): Likewise. - + 2005-01-11 Michael Koch - + * javax/swing/UIDefaults.java (put): Handle value of null. - + 2005-01-11 Chris Burdess - + * gnu/java/net/protocol/http/HTTPConnection.java: Use correct form of Host header when using a non-default port number. - + 2005-01-11 Chris Burdess - + * javax/net/ssl/HttpsURLConnection.java: Do not request SSLv3 provider during class initialization. - + 2005-01-11 Michael Koch - + * java/awt/Robot.java, java/awt/Scrollbar.java, java/awt/print/PrinterJob.java, javax/swing/JTable.java, javax/swing/text/AbstractDocument.java: Reworked import statements. - + 2005-01-11 Michael Koch - + * java/beans/XMLDecoder.java: Reworked imports, fixed class javadoc. * java/io/File.java, java/lang/System.java, java/net/Inet4Address.java, java/util/Currency.java, java/util/ResourceBundle.java: Reworked imports. + +2005-01-11 Tom Tromey + + * java/util/AbstractList.java (set, add): Fixed argument types. + * java/util/ArrayList.java: Properly handle generic arrays. + * java/util/Arrays.java (sort): Fixed type of temporary 'elem'. + * java/util/BitSet.java (containsAll): Use correct variable name. + * java/util/Collections.java (copy): Use correct + parameterizations. + (min): Likewise. + (putAll): Likewise. + (compare): Fixed argument types. + (sort): Properly handle generic arrays. + * java/util/EnumSet.java (clone): Ignore + CloneNotSupportedException. + (addAll, contains, containsAll, remove, removeAll, retainAll, + copyOf, complementOf): Don't use generic instanceof. + (copyOf): Cast result of 'clone'. + * java/util/HashMap.java (HashMap): Properly handle generic + arrays. + (clone): Likewise. + (rehash): Likewise. + (readObject): Likewise. + (putAll): Don't use generic instanceof. + (getEntry): Likewise. + (putAllInternal): Use correct parameterizations. + (next): Fixed return type. + * java/util/Hashtable.java (Hashtable): Properly handle generic + arrays. + (clone): Likewise. + (rehash): Likewise. + (readObject): Likewise. + (hash): Fixed argument type. + (getEntry): Don't use generic instanceof. + (next): Cast return values. + (nextElement): Fixed return type. + * java/util/LinkedList.java (toArray): Added cast. + (LinkedListItr): Now generic. + * java/util/TreeMap.java (TreeMap): Now generic. + (Node): Likewise. + (left, right, parent): Updated types. + (firstKey, get, headMap, lastKey, remove, subMap, tailMap, + firstNode, getNode): Updated types. + * java/util/TreeSet.java (TreeSet): Fixed cast. + (clone): Likewise. + (readObject): Likewise. + * java/util/Vector.java (Vector): Properly handle generic arrays. + (trimToSize): Likewise. + (ensureCapacity): Likewise. + (toArray): Likewise. + (addAll): Fixed parameterization. + * java/util/WeakHashMap.java (WeakBucket): Now generic. + (value, next): Updated types. + (WeakEntry): Parameterized superinterface. + (key, getKey, getValue, setValue): Updated types. + (getEntry): Fixed type of local 'key'. + (get): Updated. + (put): Fixed return type. + (remove): Updated. + +2005-01-11 Tom Tromey + + * .classpath: Updated for Eclipse 3.1. + * .settings/org.eclipse.jdt.core.prefs: New file. + * .settings/org.eclipse.jdt.ui.prefs: New file. 2005-01-10 Tom Tromey - + * java/io/BufferedInputStream.java: Fixed indentation. - + 2005-01-10 Michael Koch - + * javax/swing/JEditorPane.java (read): Implemented. (write): Likewise. @@ -30336,19 +32107,127 @@ (setEditorKit): Likewise. (setEditorKitForContentType): Removed wrong implementation. (setPage): Implemented. - + 2005-01-10 Michael Koch - + * scripts/check_jni_methods.sh: Dont ignore Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImageFromData. - + 2005-01-10 Thomas Fitzsimmons - + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c (nativeSetIconImageFromData): Re-add native implementation. - + +2005-01-10 Andrew John Hughes + + * java/util/AbstractMap.java: + (putAll(Map)): added cast to + Map + * java/util/EnumMap.java: + Corrected instanceof tests, generic array creation, + use of Enum.getDeclaringClass() and wrong typing + of iterator methods + (clone()): re-written to use the EnumMap(EnumMap) + constructor + +2005-01-10 Andrew John Hughes + + * java/awt/AWTKeyStroke.java: + Typed static cache and vktable generically + (removeEldestEntry(Map.Entry)): + typed generically + (registerSubclass(Class)): typed generically + (readResolve()): removed unnecessary cast + (setFocusTraversalKeys(int, Set)): + typed generically + * java/awt/Container.java: + (setFocusTraversalKeys(int, Set)): + typed generically + (getFocusTraversalKeys(int)): typed generically + * java/awt/GridBagLayout.java: + comptable, internalcomptable now generically typed + (GridBagLayout()): generic typing + (sortBySpan(Component,int,ArrayList,boolean)): + typed generically + * java/awt/KeyboardFocusManager.java: + (getDefaultFocusTraversalKeys(int)): typed generically + * java/awt/dnd/DragGestureRecognizer.java: + typed events generically + * java/awt/dnd/DropTargetContext.java: + removed unnecessary import and added serialization UID + * java/awt/im/InputContext.java: + typed descriptors and recent generically + * java/awt/im/spi/InputMethodContext.java: + removed unnecessary import + * java/io/DeleteFileHelper.java: + filesToDelete typed generically + (add(java.io.File)): typed generically + (deleteFiles()): iteration changed to foreach + * java/io/ObjectInputStream.java: + typed objectLookupTable, validators, classLookupTable, oscs + generically + (resolveProxyClass(String[]): typed generically + * java/io/ObjectOutputStream.java: + removed unnecessary import + typed OIDLookupTable generically + * java/io/ObjectStreamClass.java: + typed oscs and classLookupTable generically + * java/io/ObjectStreamField.java: + type typed generically + (getType()): typed generically + (checkFieldType()): typed generically + * java/lang/Byte.java: + (compareTo(Object)): removed as unneeded + * java/lang/Character.java: + (compareTo(Object)): removed as unneeded + * java/lang/Class.java: + Typing changed from K to T in accordance with docs + and semantics (is a type, not a key) + (getEnumConstants()): implemented using reflection + (isEnum()): implemented using reflection + * java/lang/Double.java: + (compareTo(Object)): removed as unneeded + * java/lang/Float.java: + (compareTo(Object)): removed as unneeded + * java/lang/InheritableThreadLocal.java: + removed invalid static generic typing + * java/lang/Integer.java: + (compareTo(Object)): removed as unneeded + * java/lang/Long.java: + (compareTo(Object)): removed as unneeded + * java/lang/Short.java: + (compareTo(Object)): removed as unneeded + * java/util/AbstractQueue.java: + Typing changed from T to E in accordance with docs + and semantics (is primarily a element) + * java/util/Collection.java: + (containsAll(Collection c)): typed generically + * java/util/EnumMap.java: + (EnumMap(Class)): removed invalid array creation + * java/util/LinkedHashMap.java: + Added generic typing + (LinkedHashMap(Map)): added + generics + (get(Object)): returns V instead of Object + (removeEldestEntry(Map.Entry)): typed generically + * java/util/PriorityQueue.java: + removed invalid generic instanceof and generic array + creation + (iterator().remove()): added reference to outer class + * java/util/WeakHashMap.java + Added generic typing + (WeakHashMap(Map)): added + generics + (get(Object)): returns V instead of Object + (put(K,V)): generically typed + (remove(Object)): returns V instead of Object + (entrySet()): returns generic set + (keySet()): returns generic set + (putAll(Map)): generically typed + (values()): returns generic collection + 2005-01-09 Mark Wielaard - + * java/security/AlgorithmParameterGenerator.java (getInstance): Mention provider when throwing NoSuchProviderException. * java/security/AlgorithmParameters.java (getInstance): Likewise. @@ -30356,9 +32235,9 @@ * java/security/KeyStore.java (getInstance): Likewise. * java/security/SecureRandom.java (getInstance): Likewise. * java/security/cert/CertificateFactory.java (getInstance): Likewise. - + 2005-01-09 Mark Wielaard - + * native/jni/java-io/java_io_VMFile.c (Java_java_io_VMFile_create): Call JCL_free_cstring() when done with string. @@ -30369,13 +32248,13 @@ (Java_java_lang_VMSystem_getenv): Likewise. * native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c (Java_gnu_java_nio_channels_FileChannelImpl_open): Likewise. - + 2005-01-09 Mark Wielaard - + * configure.ac: Update version to 0.13+cvs. - + 2005-01-09 Mark Wielaard - + * acinclude.m4 (CLASSPATH_WITH_GJDOC): Renamed from CLASSPATH_ENABLE_GJDOC. Can now take argument to use as gjdoc program. Doesn't depend on xml tools. @@ -30391,36 +32270,36 @@ (clean): Also remove create_html file. (create_html): Rewritten. * doc/api/classpath-copyright.xml: Removed. - + 2005-01-09 Patrik Reali - + * doc/www.gnu.org/newsitems.txt doc/www.gnu.org/announce/20050107.wml doc/www.gnu.org/downloads/downloads.wml: classpath 0.13 release news - + 2005-01-08 Ito Kazumitsu - + * java/nio/charset/Charset.java (providers): New method to make an array of CharsetProviders defined in META-INF/services/java.nio.charset.spi.CharsetProvider. (charsetForName, availableCharsets): Use the new method providers(). - + 2005-01-08 Michael Koch - + * java/util/SimpleTimeZone.java (checkRule): Throw IllegalArgumentException on invalid month values. - + 2005-01-08 Michael Koch - + * gnu/java/net/protocol/http/HTTPConnection.java (newRequest): Use "/" as path if no path given in URL. - + 2005-01-08 Michael Koch - + * resource/Makefile.am: Install classpath.security file. - + 2005-01-08 Michael Koch - + * resource/java/util/iso639_fr.properties, resource/java/util/iso3166.properties, resource/java/util/iso3166_de.properties, @@ -30430,15 +32309,15 @@ resource/java/util/iso639-a2-old.properties, resource/java/util/iso3166-a3.properties, resource/java/util/iso639_ga.properties: Removed. - + 2005-01-07 Tom Tromey - + * java/lang/Package.java (getPackages): Use VMClassLoader when appropriate. (getPackage): Likewise. - + 2005-01-07 Michael Koch - + * java/nio/Buffer.java (address): New field. * java/nio/DirectByteBufferImpl.java (address): Removed. * java/nio/MappedByteBufferImpl.java (address): Likewise.. @@ -30449,9 +32328,9 @@ * java/nio/IntViewBufferImpl.java (IntViewBufferImpl): Likewise. * java/nio/LongViewBufferImpl.java (LongViewBufferImpl): Likewise. * java/nio/ShortViewBufferImpl.java (ShortViewBufferImpl): Likewise. - + 2005-01-07 Olga Rodimina - + * javax/swing/JTable.java (columnAtPoint): New Method. Implemented. (rowAtPoint): Likewise. @@ -30537,6 +32416,39 @@ * java/util/SimpleTimeZone.java: (getOffset): offset end date with daylight savings +2005-01-07 Andrew John Hughes + + * java/io/PrintStream.java: + (PrintStream(String, String)): added UnsupportedEncodingException + (PrintStream(File, String)): added UnsupportedEncodingException + * java/lang/Deprecated.java: + Changed import to java.lang.annotation.RetentionPolicy.RUNTIME + * java/lang/InheritableThreadLocal.java: + Corrected typo `Locals' to `Local' + * java/lang/String.java: + (compareTo(Object)): removed + * java/lang/annotation/AnnotationTypeMismatchException.java: + Added import of java.lang.reflect.Method + * java/lang/annotation/Documentation.java: + Added import of java.lang.annotation.RetentionPolicy.RUNTIME + * java/lang/annotation/Inherited.java: + Added import of java.lang.annotation.RetentionPolicy.RUNTIME + Added import of java.lang.annotation.ElementType.ANNOTATION_TYPE + * java/lang/annotation/Retention.java: ditto + * java/lang/annotation/Target.java: ditto + * java/lang/reflect/AnnotatedElement.java: + Added import of java.lang.annotation.Annotation + * java/util/AbstractCollection.java: + (toArray(T[])): converted returned type to T[] from Object[] + * java/util/EnumMap.java: + Added import of java.io.Serializable + * java/util/EnumSet.java: ditto + * java/util/TreeSet.java: + (TreeSet(SortedMap backingMap)): type of input parameter + corrected. + * vm/reference/java/lang/VMClass.java: + (cast(Object, Class)): typed method parameterically + 2005-01-06 Tom Tromey * java/lang/ClassLoader.java (findClass): Fixed documentation. @@ -30546,41 +32458,41 @@ * configure.ac: Update version to 0.13. * NEWS: Add news about 0.13. * INSTALL: Mention new dependencies and configure flags. - + 2005-01-06 Mark Wielaard - + * configure.ac: Add explicit X and libXtst tests when gtk+ peers are enabled. - + 2005-01-06 Michael Koch - + * java/util/TimeZone.java (setID): Throw NullPointerException if needed. - + 2005-01-05 Mark Wielaard - + * lib/gen-classlist.sh.in: Don't split locales in classes.locale1 and classes.locale2. * lib/Makefile.am (JAVAC): Compile only classes.locale. (CLEANFILES): Remove classes.locale1 and classes.locale2, add classes.locale. - + 2005-01-05 Tom Tromey - + * java/util/zip/ZipEntry.java (setCompressedSize): Allow any argument. (compressedSize): Now 'long'. Default to -1. (getCompressedSize): Rewrote. - + 2005-01-05 Ranjit Mathew - + * java/util/IdentityHashMap.java (put): Replace mistaken use of "<<" by "*". - + 2005-01-05 Michael Koch - + * gnu/java/locale/LocaleInformation_mn_MN.java: - New file. + New file. * gnu/java/locale/LocaleInformation_aa.java, gnu/java/locale/LocaleInformation_aa_DJ.java, gnu/java/locale/LocaleInformation_aa_ER.java, @@ -30829,9 +32741,9 @@ gnu/java/locale/LocaleInformation_zh_SG_Hans.java, gnu/java/locale/LocaleInformation_zh_TW_Hant.java: Regenerated. - + 2005-01-04 Tom Tromey - + * vm/reference/java/lang/VMProcess.java (VMProcess): Constructor now package-private. (processThread, workList, reapedPid, reapedExitValue, state, cmd, @@ -30842,32 +32754,32 @@ modifiers. * vm/reference/java/security/VMAccessController.java (DEFAULT_CONTEXT): Reordered modifiers. - + * gnu/java/nio/SelectorImpl.java: Removed unused import. * gnu/java/security/der/DERWriter.java: Removed unused import. * gnu/java/net/protocol/http/Connection.java: Removed unused import. * gnu/java/nio/PipeImpl.java (read): Reordered modifiers. Fixed indentation. - (write): Likewise. + (write): Likewise. * gnu/java/rmi/server/ConnectionRunnerPool.java (getConnectionRunner): Reordered modifiers. * gnu/java/text/FormatCharacterIterator.java (debug): Removed useless `final'. (dumpTable): Likewise. * gnu/java/net/PlainDatagramSocketImpl.java (bind): Reordered - modifiers. + modifiers. (create, setOption, getOption, close, join, leave): Likewise. * gnu/java/net/PlainSocketImpl.java (create): Reordered modifiers. (bind, listen, accept): Likewise. - + 2005-01-04 Tom Tromey - + * Makefile.am (EXTRA_DIST): Added ChangeLog-2004. - + 2005-01-04 Robert Schuster - + * gnu/java/beans/DummyAppletStub.java: Add dummy implementation of AppletStub for java.beans.Beans.instantiate. * gnu/java/beans/DummyAppletContext.java: Add dummy implementation @@ -30877,9 +32789,9 @@ (instantiate): Added two more overloaded variants, reworked user documentation, fixed exception behavior, fixed behavior when deserializing null. - + 2005-01-03 Michael Koch - + * javax/swing/plaf/metal/MetalLookAndFeel.java (getControlTextFont): New method. (getMenuTextFont): Likewise. @@ -30887,22 +32799,22 @@ (getSystemTextFont): Likewise. (getUserTextFont): Likewise. (getWindowTitleFont): Likewise. - + 2005-01-03 Michael Koch - + * javax/swing/text/AbstractDocument.java (documentFilter): New field. (getDocumentFilter): New method. (setDocumentFilter): Likewise. - (dump): Likewise. - + (dump): Likewise. + 2005-01-03 Michael Koch - - * javax/swing/JTree.java + + * javax/swing/JTree.java (DynamicUtilTreeNode.hasChildren): Clarify javadoc. - + 2005-01-03 Thomas Fitzsimmons - + * gnu/java/awt/ClasspathToolkit.java (createRobot): New method. * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java (getDefaultScreenDevice): Implement. @@ -31034,10 +32946,10 @@ * native/jni/xmlj/xmlj_sax.c: Likewise. * native/jni/xmlj/xmlj_transform.c: Likewise. * native/jni/xmlj/xmlj_xpath.c: Likewise. - + 2005-01-02 Michael Koch - - * javax/swing/text/AbstractDocument.java + + * javax/swing/text/AbstractDocument.java (AbstractElement.getLength): Fixed off-by-one error. (AbstractElement.children): Made abstract. (AbstractElement.getAllowsChildren): Likewise. @@ -31051,19 +32963,29 @@ (LeafElement.toString): Likewise. * javax/swing/text/GapContent.java (GapContent): Put default content into buffer. - * javax/swing/text/PlainDocument.java + * javax/swing/text/PlainDocument.java (reindex): Use empty attribute sets instead of null. (createDefaultRoot): Reimplemented. (insertUpdate): Call super method. (removeUpdate): Likewise. (getParagraphElement): Implemented. + +2005-01-02 Tom Tromey -2005-01-01 Michael Koch + * java/io/PrintStream.java: Implement Appendable. + (PrintStream(String)): New constructor. + (PrintStream(String,String)): Likewise. + (PrintStream(File)): New constructor. + (PrintStream(File,String)): Likewise. + (append): New methods. + + * java/lang/System.java (getenv): Added @since. + * java/lang/System.java (getenv(String)): Rewrote. + (getenv): New method. + * vm/reference/java/lang/VMSystem.java (getenv): New methods. + +2005-01-01 Michael Koch + * javax/swing/DefaultBoundedRangeModel.java (fireValueChanged): Fixed off-by-one error. - - -Local Variables: -coding: iso-latin-1-unix -End: diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj index 4eeed878155..c6b5d5432ca 100644 --- a/libjava/classpath/ChangeLog.gcj +++ b/libjava/classpath/ChangeLog.gcj @@ -1,182 +1,80 @@ -2006-11-03 Gary Benson +2006-12-23 Andreas Tobler - * java/net/Inet4Address.java - (FAMILY): Renamed to AF_INET. - (, writeReplace): Reflect the above. - * java/net/Inet6Address.java - (FAMILY): Renamed to AF_INET6. - (): Reflect the above. + * classpath/tools/Makefile.am: Replace cp -a with a more portable + cp -pR. + * classpath/tools/Makefile.in: Regenerate. -2006-10-10 Tom Tromey +2006-12-18 Tom Tromey - PR classpath/29362: - * gnu/xml/transform/TransformerImpl.java (transform): Only strip if - there is a stylesheet. + * tools/Makefile.in: Rebuilt. + * tools/Makefile.am (GLIBJ_CLASSPATH): Look in srcdir. -2006-10-05 Gary Benson +2006-12-18 Tom Tromey - * java/net/SocketPermission.java - (processHostport): Cope with IPv6 addresses with a - one-digit first component. + * tools/Makefile.in: Rebuilt. + * tools/Makefile.am ($(TOOLS_ZIP)): Put classes in srcdir. + * tools/asm, tools/classes: Check in .class files. -2006-09-25 Tom Tromey +2006-12-18 Gary Benson - * native/jni/gconf-peer/Makefile.in: Rebuilt. - * native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LDFLAGS): New - variable. + * tools/Makefile.am: Fix typo. + * tools/Makefile.in: Rebuilt. -2006-09-25 Tom Tromey +2006-12-15 Andrew Haley - PR libgcj/29178: - * gnu/java/nio/charset/US_ASCII.java (Encoder.canEncode): New method. - (Encoder.canEncode): Likewise. - (Encoder.encodeLoop): Return unmappable for all non-ASCII characters. - * gnu/java/nio/charset/ByteCharset.java (Encoder.canEncode): New - method. - (Encoder.canEncode): Likewise. - * gnu/java/nio/charset/ISO_8859_1.java (Encoder.canEncode): New - method. - (Encoder.canEncode): Likewise. + * tools/Makefile.am (TOOLS_ZIP): Pass -g -w to javac. + Create all-classes.lst that contains all source filenames. + Delete asm.lst. -2006-09-25 Tom Tromey +2006-12-15 Tom Tromey - * native/fdlibm/mprec.c (mprec_calloc): Renamed. - (Balloc): Updated. + * configure, lib/Makefile.in: Rebuilt. + * lib/Makefile.am (compile-classes): Use JAVA_MAINTAINER_MODE. + * configure.ac: Added --enable-java-maintainer-mode. -2006-09-25 Mark Wielaard +2006-12-12 Tom Tromey - Suggested by Aaron M. Ucko - Fixes bug #29203 - * native/fdlibm/mprec.c (ulp): Define L as int32_t. - -2006-09-22 David Daney - - PR classpath/28661 - * gnu/java/net/protocol/http/HTTPURLConnection.java (connect): Add - default content-type for POST method. - -2006-09-20 Gary Benson - - * java/net/InetAddress.java: Updated to latest. - * java/net/Inet4Address.java: Likewise. - * java/net/Inet6Address.java: Likewise. - * java/net/ResolverCache.java: Likewise. - * java/net/SocketPermission.java: Likewise. - - * java/net/Inet4Address.java - (AF_INET): Renamed to FAMILY. - (, writeReplace): Reflect the above. - * java/net/Inet6Address.java - (AF_INET6): Renamed to FAMILY. - (): Reflect the above. - -2006-09-18 Tom Tromey - - * gnu/javax/net/ssl/provider/SSLSocket.java (isBound, isClosed, - isConnected): Removed old comment. - (getRemoteSocketAddress): Uncommented. - (setOOBInline, getOOBInline, setKeepAlive, getKeepAlive, - setTrafficClass, getTrafficClass, setReuseAddress, - getReuseAddress, shutdownInput, shutdownOutput, isInputShutdown, - isOutputShutdown): Uncommented. - -2006-09-11 David Daney - - PR classpath/28580 - * gnu/java/net/protocol/http/Request.java (readResponse): Call - createResponseBodyStream in more cases and with new parameter. - (createResponseBodyStream): Added new parameter mayHaveBody. Handle - HEAD and !mayHaveBody responses specially. - -2006-09-05 Gary Benson - - * java/net/SocketPermission.java - (maybeBracketIPv6Address): Renamed to processHostport. - (processHostport): Also translate "" to "localhost". - (setHostPort): Remove special cases for empty hostport and for - extra colons in hostport (processHostport handles these now). - -2006-08-31 Keith Seitz - - * include/jvmti.h: Update from Classpath to get latest fixes and - improvements. - -2006-08-29 Gary Benson - - * java/net/SocketPermission.java - (maybeBracketIPv6Address): New method. - (): Pass the hostport argument through the above. - - * java/net/NetworkInterface.java (getInetAddresses): - Revert the previous change. - -2006-08-24 Gary Benson - - * java/net/NetworkInterface.java (getInetAddresses): Bracket IPv6 - addresses. - -2006-08-18 Roger Sayle - - * scripts/check_jni_methods.sh: Don't use the "set -C" command - which isn't available in all shells. + * Makefile.in, tools/Makefile.in: Rebuilt. + * Makefile.am (SUBDIRS): Removed gcj-local change. + (DIST_SUBDIRS): Likewise. + * tools/Makefile.am (JCOMPILER): Use gcj, not gcjx. + (GLIBJ_BOOTCLASSPATH): Find core classes in srcdir. -2006-08-18 Tom Tromey +2006-12-11 Tom Tromey - * gnu/java/util/prefs/NodeWriter.java (writeParents): Removed - debugging prints. - * gnu/java/util/prefs/NodeReader.java (readNodes): Removed debugging - print. - (readEntries): Likewise. + * Merged in Classpath from libgcj-import-20061211. -2006-08-09 Tom Tromey +2006-10-17 Tom Tromey - PR classpath/28666: - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c - (Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModes): - Create a 'short' array. + * sun/reflect/annotation/AnnotationInvocationHandler.java + (invoke): Clone array values before return. + (create): New method. + (arrayClone): Likewise. -2006-08-07 Tom Tromey +2006-10-12 Tom Tromey - PR libgcj/28609: - * ltconfig: Copied from gcc. + * lib/Makefile.in: Rebuilt. + * lib/Makefile.am (JAVAC): Put classes in srcdir. + (compile-classes): Conditional on MAINTAINER_MODE. -2006-07-20 Keith Seitz +2006-07-18 Tom Tromey - * include/jvmti.h: Include copy from upstream before next merge. + * lib/Makefile.in: Rebuilt. + * lib/Makefile.am (JAVAC): Add -w, -g, and --encoding. -2006-07-12 Tom Tromey +2006-07-06 Tom Tromey - PR libgcj/27271: - * java/util/zip/ZipFile.java (getInputStream): Call addDummyByte - on PartialInputStream. - (PartialInputStream.dummyByteCount): New field. - (PartialInputStream.fillBuffer): Handle dummy byte. - (PartialInputStream.read): Likewise. - (PartialInputStream.addDummyByte): New method. + * lib/Makefile.in: Rebuilt. + * lib/Makefile.am (JAVAC): Define when FOUND_GCJ is true. + (compile-classes): Remove special case for gcj. -2006-06-14 Tom Tromey +2006-06-23 Tom Tromey - PR java/28024: - * aclocal.m4, configure: Rebuilt. - * m4/acinclude.m4 (REGEN_WITH_JAY): Use backquote, not $(...). - * configure.ac (QT_INCLUDE_DIR): Use backquote, not $(...). + * Imported Classpath generics 0.91, presesrving local changes. 2006-06-09 Tom Tromey - PR classpath/23863: - * native/fdlibm/dtoa.c (_dtoa): Free contents of _Jv_reent when - finished. - * native/fdlibm/mprec.c: New version from newlib. Commented out - some includes. Added . - (_reent, _Bigint): New defines. - (_REENT_CHECK_MP, _REENT_MP_FREELIST, _REENT_MP_P5S): Likewise. - (__ULong, __Long): New types. - (_calloc_r): New function. - (Balloc): Dynamically add new _freelist entries as needed. - * native/fdlibm/mprec.h (struct _Jv_Bigint): Don't use - MAX_BIGNUMS to size _x[]. - (struct _Jv_reent): _freelist now a _Jv_Bigint**. Removed - _allocation_map, num. Added _max_k. + * lib/Makefile.gcj (GCJF): Added -g and -ftarget=1.5. 2006-05-30 Thomas Fitzsimmons diff --git a/libjava/classpath/ChangeLog.usermap b/libjava/classpath/ChangeLog.usermap new file mode 100644 index 00000000000..c0d43db6e04 --- /dev/null +++ b/libjava/classpath/ChangeLog.usermap @@ -0,0 +1,60 @@ +abies:'Artur Biesiadowski ' +alexl:'Alex Lancaster ' +anwalt:'Andy Walter ' +aph:'Andrew Haley ' +archie172:'Archie Cobbs ' +arenn:'Aaron M. Renn ' +aselkirk:'Andrew Selkirk ' +audriusa:'Audrius Meskauskas ' +avdyk:'Arnaud Vandyck ' +brawer:'Sascha Brawer ' +bryce:'Bryce McKinlay ' +cbj:'Brian Jones ' +corvus:'James E. Blair ' +craig:'Craig Black ' +daryllee:'Daryl Lee ' +djee:'David Jee ' +dog:'Chris Burdess ' +egagnon:'Etienne M. Gagnon ' +ericb:'Eric Blake ' +fitzsim:'Thomas Fitzsimmons ' +fnasser:'Fernando Nasser ' +gadek:'Grzegorz B. Prokopski ' +gcb:'Geoff Berry ' +glavaux:'Guilhem Lavaux ' +gnu_andrew:'Andrew John Hughes ' +graydon:'graydon hoare ' +green:'Anthony Green ' +iproetel:'Ingo Proetel ' +jaz:'Jon A. Zeppieri ' +jewel:'John Leuner ' +jfrijters:'Jeroen Frijters ' +jgeorgal:'Giannis Georgalis ' +jochen:'Jochen Hoenicke ' +joey:'Joseph C. Lesh ' +jsturm:'Jeff Sturm ' +julian:'Julian Scheid ' +kho:'Kim Ho ' +mark:'Mark Wielaard ' +mcb:'Mark Benvenuto ' +mkoch:'Michael Koch ' +nferrier:'Nic Ferrier ' +noa:'Noa Resare ' +overholt:'Andrew Overholt ' +patrik_reali:'Patrik Reali ' +rabbit78:'Roman Kennke ' +raif:'Raif S. Naffah ' +rao:'Paul Fisher ' +robilad:'Dalibor Topic ' +rodimina:'Olga Rodimina ' +rschuster:'Robert Schuster ' +rsdio:'Casey Marshall ' +rupp:'Torsten Rupp ' +rveldema:'Ronald Veldema ' +saugart:'Steven Augart ' +shalom:'John Keiser ' +siebert:'Fridtjof Siebert ' +smarothy:'Sven de Marothy ' +stuart:'Stuart Ballard ' +tromey:'Tom Tromey ' +warrenl:'Warren Levy ' diff --git a/libjava/classpath/INSTALL b/libjava/classpath/INSTALL index dae909effde..27bb7c0d225 100644 --- a/libjava/classpath/INSTALL +++ b/libjava/classpath/INSTALL @@ -1,4 +1,4 @@ -Installing GNU Classpath - Last updated: September 7, 2005 +Installing GNU Classpath - Last updated: June 19, 2006 First, this is a development release only! Unless you are interested in active development and debugging, or just like running random alpha code, @@ -54,6 +54,11 @@ Suggested Software For building gcjwebplugin you'll need the Mozilla plugin support headers and libraries. + The GConf-based backend for java.util.prefs needs the following + library headers: + + - gconf 2.11.2 (or higher) + For building the Qt AWT peer JNI native libraries you have to specify --enable-qt-peer and need the following library: @@ -65,10 +70,10 @@ Suggested Software http://escher.sourceforge.net Please note that at the moment most operating systems do not - ship Qt4 by default. We recommend using GNU Classpath' Qt4 - support only for its developers and bug reporters. See - http://developer.classpath.org/mediation/ClasspathShowcase - for details on how to get it to work. + ship Qt4 by default. We recommend using GNU Classpath' Qt4 + support only for its developers and bug reporters. See + http://developer.classpath.org/mediation/ClasspathShowcase + for details on how to get it to work. For building the xmlj JAXP implementation (disabled by default, use configure --enable-xmlj) you need the following installed: diff --git a/libjava/classpath/LICENSE b/libjava/classpath/LICENSE index ae2588d4476..44620dcef0c 100644 --- a/libjava/classpath/LICENSE +++ b/libjava/classpath/LICENSE @@ -299,6 +299,19 @@ terms: above copyright notice and this permission notice are included in all copies or substantial portions of the software. +The files in java/util/concurrent and subdirectories (with the +exception of CopyOnWriteArrayList.java), along with +java.util.NavigableMap, java.util.NavigableSet, java.util.Deque and +java.util.ArrayDeque, are taken from JSR166 concurrency materials +maintained by Doug Lea and distributed under the following terms: + + Written by Doug Lea with assistance from members of JCP JSR-166 + Expert Group and released to the public domain, as explained at + http://creativecommons.org/licenses/publicdomain + +CopyOnWriteArrayList.java has been reimplemented for GNU Classpath, +and is distributed under the same terms as other GNU Classpath files, +as specified at the top of this file. Directory external/relaxngDatatype RELAX NG Pluggable Datatype Libraries. All files are distributed under @@ -345,4 +358,3 @@ the following notice: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/libjava/classpath/Makefile.in b/libjava/classpath/Makefile.in index 9ed7b6deca2..649ffa5729a 100644 --- a/libjava/classpath/Makefile.in +++ b/libjava/classpath/Makefile.in @@ -48,12 +48,14 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -186,6 +188,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -307,7 +311,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ # lib first, to compile .class files before native code, last examples diff --git a/libjava/classpath/NEWS b/libjava/classpath/NEWS index a787833e587..0ebecf396a0 100644 --- a/libjava/classpath/NEWS +++ b/libjava/classpath/NEWS @@ -1,5 +1,59 @@ +New in release 0.94 (UNRELEASED) + +* The ASM library is now included. A separate copy is no longer needed. + +* The setReadTimeout and getReadTimeout methods have been added to + java.net.URLConnection. They are now fully implemented for http URLs. + +New in release 0.93 (Dec 8, 2006) + +* CORBA objects that exist on the same virtual machine and only are connected + to another ORB are now accessed directly and no longer via network. It is + the same feature that RMI implementation provides. These faster calls should + be completely transparent, as the parameters are cloned, where required. + Currently the direct calls are only possible for the non-deprecated objects + that are connected to the ORB via POA. +* The 'javah' tool has been added. It requires the ASM library + (see asm.objectweb.org); it can be enabled with the --with-asm + option to configure +* Added the rmi and corbaname URL context factories for JNDI. +* Fixes in the JNDI InitialContext now allows to plug-in user implementation. +* Removed currentClassLoader method from + vm/reference/java/io/ObjectInputStream.java. +* Added firstNonNullClassLoader method to + vm/reference/gnu/classpath/VMStackWalker.java. VMs are encouraged to + provide a more efficient implementation. +* Added aton method to vm/reference/java/net/VMInetAddress.java. +* NetworkInterface has been implemented for systems that provide the + `getifaddrs' function. +* java.nio.channels.Selector implementations have been added that use + the kqueue notification mechanism on Mac OS X and *BSD, and that use + the epoll notification mechanism on Linux 2.6. +* java.nio has been refactored to support more non-blocking operations + natively. Blocking IO classes have been refactored to call + non-blocking classes. Non-blocking accepts, connects, and + scatter-gather IO should now be better supported. +* HTML support for Swing has been greatly enhanced. + +Runtime interface changes: + +* java.net.VMNetworkInterface and java.net.NetworkInterface have been + updated to keep native-modified state in the former, and to simplify + the native code in our reference implementation. +* gnu.java.nio.VMChannel has been expanded to better support native + non-blocking IO. Most native state data (such as file descriptor + integers) has been abstracted away into private state in the runtime + interface. +* gnu.java.nio.VMPipe has been similarly changed. +* gnu.java.net.VMPlainSocketImpl has been changed to remove some + functionality now provided by VMChannel; datagram socket-specific + methods have also been moved here, deprecating VMPlainDatagramSocketImpl. +* gnu.java.net.VMPlainDatagramSocketImpl removed. + New in release 0.92 (Aug 9, 2006) +* GConf is used as a backend for java.util.prefs. GNU Classpath + thanks to Mario Torre for this contribution! * libjawtgnu.so has been renamed libjawt.so for binary compatibility. libjawt.so should be installed in a VM-specific directory rather than directly in /usr/lib. Proprietary VMs put their libjawt.so @@ -29,6 +83,7 @@ New in release 0.92 (Aug 9, 2006) * jarsigner A new configure option --enable-tool-wrappers causes wrapper binaries to be built for VMs that support the JNI Invocation API. +* We've imported the JSR 166 (concurrency) reference implementation. * javax.sound.midi providers have been added to read and write standard MIDI files. * A javax.sound.sampled .au and .wav file readers have been added. diff --git a/libjava/classpath/aclocal.m4 b/libjava/classpath/aclocal.m4 index c6085b3d893..70d0475ff96 100644 --- a/libjava/classpath/aclocal.m4 +++ b/libjava/classpath/aclocal.m4 @@ -875,11 +875,13 @@ AC_SUBST([am__untar]) m4_include([../../config/depstand.m4]) m4_include([../../config/lead-dot.m4]) +m4_include([../../config/no-executables.m4]) m4_include([../../libtool.m4]) m4_include([m4/acattribute.m4]) m4_include([m4/accross.m4]) m4_include([m4/acinclude.m4]) m4_include([m4/ax_create_stdint_h.m4]) +m4_include([m4/gcc_attribute.m4]) m4_include([m4/iconv.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) diff --git a/libjava/classpath/compile b/libjava/classpath/compile new file mode 100755 index 00000000000..1b1d2321695 --- /dev/null +++ b/libjava/classpath/compile @@ -0,0 +1,142 @@ +#! /bin/sh +# Wrapper for compilers which do not understand `-c -o'. + +scriptversion=2005-05-14.22 + +# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; +esac + +ofile= +cfile= +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/libjava/classpath/config.guess b/libjava/classpath/config.guess index c085f4f51a2..2fc3acce2ea 100755 --- a/libjava/classpath/config.guess +++ b/libjava/classpath/config.guess @@ -1,10 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2006-05-13' +timestamp='2003-06-17' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -18,15 +17,13 @@ timestamp='2006-05-13' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. - # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -56,7 +53,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -69,11 +66,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; + echo "$timestamp" ; exit 0 ;; --version | -v ) - echo "$version" ; exit ;; + echo "$version" ; exit 0 ;; --help | --h* | -h ) - echo "$usage"; exit ;; + echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -107,7 +104,7 @@ set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; @@ -126,7 +123,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -139,6 +136,13 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +## for Red Hat Linux +if test -f /etc/redhat-release ; then + VENDOR=redhat ; +else + VENDOR= ; +fi + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in @@ -199,32 +203,50 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit ;; + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) + if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac + fi # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU @@ -262,49 +284,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac - # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha*:OpenVMS:*:*) + echo alpha-hp-vms + exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit ;; + exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit ;; + exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit ;; + exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; + exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit ;; + exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit ;; + exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -312,32 +327,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in else echo pyramid-pyramid-bsd fi - exit ;; + exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit ;; + exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; + sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -346,10 +361,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; + exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; + exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -361,10 +376,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit ;; + exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; + exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -375,40 +390,37 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; + exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; + exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit ;; + exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; + exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; + exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; + exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -432,33 +444,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && exit 0 echo mips-mips-riscos${UNAME_RELEASE} - exit ;; + exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit ;; + exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit ;; + exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit ;; + exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit ;; + exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit ;; + exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit ;; + exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit ;; + exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -474,29 +485,29 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit ;; + exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit ;; + exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit ;; + exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit ;; + exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; + exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit ;; + exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -504,7 +515,7 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; + exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -519,18 +530,14 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit ;; + exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then @@ -544,28 +551,28 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; + exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix - exit ;; + exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit ;; + exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit ;; + exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit ;; + exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit ;; + exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit ;; + exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -627,19 +634,9 @@ EOF esac if [ ${HP_ARCH} = "hppa2.0w" ] then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else @@ -647,11 +644,11 @@ EOF fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; + exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit ;; + exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -679,176 +676,150 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 - exit ;; + exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit ;; + exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit ;; + exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit ;; + exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit ;; + exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit ;; + exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit ;; + exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit ;; + exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit ;; + exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + exit 0 ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; + exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; + exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; + exit 0 ;; + *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) + # Determine whether the default compiler uses glibc. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #if __GLIBC__ >= 2 + LIBC=gnu + #else + LIBC= + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit ;; + exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; + exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - x86:Interix*:[345]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[345]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + exit 0 ;; + x86:Interix*:[34]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks - exit ;; + exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix - exit ;; + exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; + exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit ;; + exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + exit 0 ;; *:GNU:*:*) - # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; + exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit ;; + exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; + exit 0 ;; cris:Linux:*:*) echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; + exit 0 ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; + echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu + exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; + exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -865,12 +836,8 @@ EOF #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; mips64:Linux:*:*) eval $set_cc_for_build @@ -888,22 +855,15 @@ EOF #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; + echo powerpc-${VENDOR:-unknown}-linux-gnu + exit 0 ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; + echo powerpc64-${VENDOR:-unknown}-linux-gnu + exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -917,7 +877,7 @@ EOF objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; + exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -925,28 +885,25 @@ EOF PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit ;; + exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit ;; + exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; + echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu + exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; + exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; + exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; + exit 0 ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; + echo x86_64-${VENDOR:-unknown}-linux-gnu + exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -964,15 +921,15 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; + exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; + exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; + exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -989,33 +946,23 @@ EOF LIBC=gnulibc1 # endif #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit ;; + exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... @@ -1023,27 +970,24 @@ EOF # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; + exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; + exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop - exit ;; + exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; + exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; + exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; + exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -1051,16 +995,15 @@ EOF else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + exit 0 ;; + i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; + exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit ;; + exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit ;; + exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit ;; + exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; + exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit ;; + exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; + exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; + exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; + exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit ;; + exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit ;; + exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit ;; + exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1152,72 +1095,68 @@ EOF else echo ns32k-sni-sysv fi - exit ;; + exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit ;; + exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit ;; + exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; + exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit ;; + exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit ;; + exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit ;; + exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit ;; + exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit ;; + exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit ;; + exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit ;; + exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit ;; + exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit ;; + exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; + exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; + exit 0 ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; + case `uname -p` in + *86) UNAME_PROCESSOR=i686 ;; + powerpc) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; + exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1225,25 +1164,22 @@ EOF UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; + exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) + exit 0 ;; + NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; + exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit ;; + exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit ;; + exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; + exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1254,47 +1190,28 @@ EOF UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; + exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit ;; + exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit ;; + exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit ;; + exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit ;; + exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit ;; + exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its - exit ;; + exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; + exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1326,7 +1243,7 @@ main () #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); + printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1415,12 +1332,11 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) @@ -1429,22 +1345,22 @@ then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit ;; + exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit 0 ;; c34*) echo c34-convex-bsd - exit ;; + exit 0 ;; c38*) echo c38-convex-bsd - exit ;; + exit 0 ;; c4*) echo c4-convex-bsd - exit ;; + exit 0 ;; esac fi @@ -1455,9 +1371,7 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess -and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + ftp://ftp.gnu.org/pub/gnu/config/ If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/libjava/classpath/config.sub b/libjava/classpath/config.sub index 4d936e23942..6b2ff9f6a7a 100755 --- a/libjava/classpath/config.sub +++ b/libjava/classpath/config.sub @@ -1,10 +1,9 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2006-05-13' +timestamp='2003-06-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -22,15 +21,14 @@ timestamp='2006-05-13' # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. - # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # @@ -72,7 +70,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -85,11 +83,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; + echo "$timestamp" ; exit 0 ;; --version | -v ) - echo "$version" ; exit ;; + echo "$version" ; exit 0 ;; --help | --h* | -h ) - echo "$usage"; exit ;; + echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -101,7 +99,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit ;; + exit 0;; * ) break ;; @@ -120,9 +118,7 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -148,7 +144,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis) os= basic_machine=$1 ;; @@ -173,10 +169,6 @@ case $os in -hiux*) os=-hiuxwe2 ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -193,10 +185,6 @@ case $os in # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -240,17 +228,14 @@ case $basic_machine in | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore \ + | ip2k \ + | m32r | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -259,32 +244,28 @@ case $basic_machine in | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ - | mt \ | msp430 \ - | nios | nios2 \ | ns16k | ns32k \ - | or32 \ + | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | s390 | s390x \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ + | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -295,9 +276,6 @@ case $basic_machine in ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; - ms1) - basic_machine=mt-unknown - ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -318,19 +296,19 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ - | bfin-* | bs2000-* \ + | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ + | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32c-* | m32r-* | m32rle-* \ + | ip2k-* \ + | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -339,36 +317,31 @@ case $basic_machine in | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ + | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | s390-* | s390x-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ | ymp-* \ | z8k-*) ;; @@ -388,9 +361,6 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) - basic_machine=abacus-unknown - ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -408,9 +378,6 @@ case $basic_machine in amd64) basic_machine=x86_64-pc ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -470,27 +437,12 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16c) - basic_machine=cr16c-unknown - os=-elf - ;; crds | unos) basic_machine=m68k-crds ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -513,10 +465,6 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -695,6 +643,10 @@ case $basic_machine in mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -707,9 +659,6 @@ case $basic_machine in basic_machine=i386-pc os=-msdos ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; mvs) basic_machine=i370-ibm os=-mvs @@ -778,6 +727,10 @@ case $basic_machine in np1) basic_machine=np1-gould ;; + nv1) + basic_machine=nv1-cray + os=-unicosmp + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -785,12 +738,9 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - openrisc | openrisc-*) + or32 | or32-*) basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 + os=-coff ;; OSE68000 | ose68000) basic_machine=m68000-ericsson @@ -817,12 +767,6 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; @@ -879,10 +823,6 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -893,12 +833,6 @@ case $basic_machine in rtpc | rtpc-*) basic_machine=romp-ibm ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; sa29200) basic_machine=a29k-amd os=-udi @@ -1022,10 +956,6 @@ case $basic_machine in tower | tower-32) basic_machine=m68k-ncr ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; udi29k) basic_machine=a29k-amd os=-udi @@ -1069,10 +999,6 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; xps | xps100) basic_machine=xps100-honeywell ;; @@ -1103,9 +1029,6 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; - mmix) - basic_machine=mmix-knuth - ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1122,10 +1045,13 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) @@ -1198,23 +1124,19 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1232,15 +1154,12 @@ case $os in os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -1253,9 +1172,6 @@ case $os in -opened*) os=-openedition ;; - -os400*) - os=-os400 - ;; -wince*) os=-wince ;; @@ -1277,9 +1193,6 @@ case $os in -atheos*) os=-atheos ;; - -syllable*) - os=-syllable - ;; -386bsd) os=-bsd ;; @@ -1302,9 +1215,6 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) - os=-tpf - ;; -triton*) os=-sysv3 ;; @@ -1341,9 +1251,6 @@ case $os in -kaos*) os=-kaos ;; - -zvmoe) - os=-zvmoe - ;; -none) ;; *) @@ -1366,9 +1273,6 @@ else # system, and we'll never get to this point. case $basic_machine in - spu-*) - os=-elf - ;; *-acorn) os=-riscix1.2 ;; @@ -1378,8 +1282,8 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff + c4x-* | tic4x-*) + os=-coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1424,15 +1328,9 @@ case $basic_machine in *-be) os=-beos ;; - *-haiku) - os=-haiku - ;; *-ibm) os=-aix ;; - *-knuth) - os=-mmixware - ;; *-wec) os=-proelf ;; @@ -1565,15 +1463,9 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; - -os400*) - vendor=ibm - ;; -ptx*) vendor=sequent ;; - -tpf*) - vendor=ibm - ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; @@ -1598,7 +1490,7 @@ case $basic_machine in esac echo $basic_machine$os -exit +exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/libjava/classpath/configure b/libjava/classpath/configure index cbfa0d88f17..7ef4d4d214e 100755 --- a/libjava/classpath/configure +++ b/libjava/classpath/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for GNU Classpath 0.92. +# Generated by GNU Autoconf 2.59 for GNU Classpath 0.94-pre. # # Report bugs to . # @@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='GNU Classpath' PACKAGE_TARNAME='classpath' -PACKAGE_VERSION='0.92' -PACKAGE_STRING='GNU Classpath 0.92' +PACKAGE_VERSION='0.94-pre' +PACKAGE_STRING='GNU Classpath 0.94-pre' PACKAGE_BUGREPORT='classpath@gnu.org' ac_unique_file="java/lang/System.java" @@ -312,7 +312,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY FOUND_CACAO_TRUE FOUND_CACAO_FALSE CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE RANLIB ac_ct_RANLIB LIBTOOL CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH USER_SPECIFIED_JAVAH_TRUE USER_SPECIFIED_JAVAH_FALSE CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING JIKESWARNINGS KJC GCJX ECJ FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE FOUND_GCJX_TRUE FOUND_GCJX_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE nativeexeclibdir glibjdir VM_BINARY FOUND_CACAO_TRUE FOUND_CACAO_FALSE CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S RANLIB ac_ct_RANLIB LIBTOOL CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH USER_SPECIFIED_JAVAH_TRUE USER_SPECIFIED_JAVAH_FALSE CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING JIKESWARNINGS KJC GCJX ECJ FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE FOUND_GCJX_TRUE FOUND_GCJX_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -793,7 +793,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GNU Classpath 0.92 to adapt to many kinds of systems. +\`configure' configures GNU Classpath 0.94-pre to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -864,19 +864,23 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Classpath 0.92:";; + short | recursive ) echo "Configuration of GNU Classpath 0.94-pre:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-java-maintainer-mode + allow rebuilding of .class and .h files --enable-collections create collections.jar default=no --enable-jni compile JNI source default=yes --enable-core-jni compile JNI sources for core default=yes - --enable-default-preferences-peer - fully qualified class name of default Preferences - API Backend + --enable-default-preferences-peer[=peer type or class name] + specify one of: "gconf" [default] for a GConf based + backend, "file" for a file based one, "memory" for a + transient one, or a fully qualified class name + implementing java.util.prefs.PreferencesFactory --disable-gconf-peer compile GConf native peers (disabled by --disable-jni) default=yes @@ -1062,7 +1066,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -GNU Classpath configure 0.92 +GNU Classpath configure 0.94-pre generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1076,7 +1080,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Classpath $as_me 0.92, which was +It was created by GNU Classpath $as_me 0.94-pre, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1522,6 +1526,22 @@ test -n "$target_alias" && NONENONEs,x,x, && program_prefix=${target_alias}- +# Check whether --enable-java-maintainer-mode or --disable-java-maintainer-mode was given. +if test "${enable_java_maintainer_mode+set}" = set; then + enableval="$enable_java_maintainer_mode" + +fi; + + +if test "$enable_java_maintainer_mode" = yes; then + JAVA_MAINTAINER_MODE_TRUE= + JAVA_MAINTAINER_MODE_FALSE='#' +else + JAVA_MAINTAINER_MODE_TRUE='#' + JAVA_MAINTAINER_MODE_FALSE= +fi + + if expr ${target_cpu} : '.*86' > /dev/null; then target_cpu=x86; fi LIBVERSION="0:0:0" @@ -1824,7 +1844,7 @@ fi # Define the identity of the package. PACKAGE='classpath' - VERSION='0.92' + VERSION='0.94-pre' cat >>confdefs.h <<_ACEOF @@ -2039,6 +2059,8 @@ echo "${ECHO_T}$am_cv_prog_tar_ustar" >&6 + + # Check whether --enable-collections or --disable-collections was given. if test "${enable_collections+set}" = set; then enableval="$enable_collections" @@ -2109,12 +2131,18 @@ fi # Check whether --enable-default-preferences-peer or --disable-default-preferences-peer was given. if test "${enable_default_preferences_peer+set}" = set; then enableval="$enable_default_preferences_peer" - + case "${enableval}" in + file) DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory ;; + gconf|yes|true) DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory ;; + memory) DEFAULT_PREFS_PEER=gnu.java.util.prefs.MemoryBasedFactory ;; + no|false) { { echo "$as_me:$LINENO: error: bad value '${enableval}' for --enable-default-preferences-peer" >&5 +echo "$as_me: error: bad value '${enableval}' for --enable-default-preferences-peer" >&2;} + { (exit 1); exit 1; }; } ;; + *) DEFAULT_PREFS_PEER=${enableval} ;; + esac +else + DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory fi; -DEFAULT_PREFS_PEER=$enable_default_preferences_peer -if test "$DEFAULT_PREFS_PEER" = ""; then - DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory -fi # Check whether --enable-gconf-peer or --disable-gconf-peer was given. if test "${enable_gconf_peer+set}" = set; then @@ -2152,10 +2180,10 @@ if test "${enable_Werror+set}" = set; then case "${enableval}" in yes) ENABLE_WERROR=yes ;; no) ENABLE_WERROR=no ;; - *) ENABLE_WERROR=no ;; + *) ENABLE_WERROR=default ;; esac else - ENABLE_WERROR=no + ENABLE_WERROR=default fi; # Check whether --enable-default-toolkit or --disable-default-toolkit was given. @@ -2606,6 +2634,39 @@ main () return 0; } _ACEOF +# FIXME: Cleanup? +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + gcc_no_link=no +else + gcc_no_link=yes +fi + +if test x$gcc_no_link = xyes; then + # Setting cross_compile will disable run tests; it will + # also disable AC_CHECK_FILE but that's generally + # correct if we can't link. + cross_compiling=yes + EXEEXT= +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. @@ -2742,6 +2803,7 @@ echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT +fi echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then @@ -3945,6 +4007,11 @@ if test "${ac_cv_lib_asound_snd_seq_open+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lasound $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4274,15 +4341,6 @@ fi - multi_os_directory=`$CC -print-multi-os-directory` - case $multi_os_directory in - .) toolexeclibdir=${libdir} ;; # Avoid trailing /. - *) toolexeclibdir=${libdir}/${multi_os_directory} ;; - esac - - - - # Check whether --with-native-libdir or --without-native-libdir was given. if test "${with_native_libdir+set}" = set; then withval="$with_native_libdir" @@ -4291,7 +4349,7 @@ if test "${with_native_libdir+set}" = set; then else - nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER` + nativeexeclibdir='${libdir}/${PACKAGE}' fi; @@ -4363,1180 +4421,1564 @@ fi if test "${enable_tool_wrappers+set}" = set; then enableval="$enable_tool_wrappers" case x"${enableval}" in - xyes) COMPILE_WRAPPERS=yes ;; - xno) COMPILE_WRAPPERS=no ;; - x) COMPILE_WRAPPERS=yes ;; - *) COMPILE_WRAPPERS=yes ;; - esac + xyes) + COMPILE_WRAPPERS=yes; + +for ac_header in ltdl.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - COMPILE_WRAPPERS=no -fi; + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -if test "x${COMPILE_WRAPPERS}" = xyes; then - CREATE_WRAPPERS_TRUE= - CREATE_WRAPPERS_FALSE='#' +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi else - CREATE_WRAPPERS_TRUE='#' - CREATE_WRAPPERS_FALSE= + ac_cpp_err=yes fi - - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes else - echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## -------------------------------- ## +## Report this to classpath@gnu.org ## +## -------------------------------- ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 ;; esac -done - +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -n "$ac_tool_prefix"; then - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - echo "$as_me:$LINENO: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6 else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: cannot find ltdl.h" >&5 +echo "$as_me: error: cannot find ltdl.h" >&2;} + { (exit 1); exit 1; }; } fi - test -n "$ac_ct_CXX" && break done -test -n "$ac_ct_CXX" || ac_ct_CXX="g++" - - CXX=$ac_ct_CXX -fi -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C++ compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then +echo "$as_me:$LINENO: checking for lt_dlopen in -lltdl" >&5 +echo $ECHO_N "checking for lt_dlopen in -lltdl... $ECHO_C" >&6 +if test "${ac_cv_lib_ltdl_lt_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_check_lib_save_LIBS=$LIBS +LIBS="-lltdl $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char lt_dlopen (); int main () { -#ifndef __GNUC__ - choke me -#endif - +lt_dlopen (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_compiler_gnu=yes + ac_cv_lib_ltdl_lt_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no +ac_cv_lib_ltdl_lt_dlopen=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 -GXX=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -CXXFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cxx_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ +echo "$as_me:$LINENO: result: $ac_cv_lib_ltdl_lt_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_ltdl_lt_dlopen" >&6 +if test $ac_cv_lib_ltdl_lt_dlopen = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBLTDL 1 _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -int -main () -{ + LIBS="-lltdl $LIBS" - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cxx_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cxx_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + { { echo "$as_me:$LINENO: error: cannot find libltdl" >&5 +echo "$as_me: error: cannot find libltdl" >&2;} + { (exit 1); exit 1; }; } fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi + + ;; + xno) COMPILE_WRAPPERS=no ;; + x) COMPILE_WRAPPERS=yes ;; + *) COMPILE_WRAPPERS=yes ;; + esac else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi + COMPILE_WRAPPERS=no +fi; + + +if test "x${COMPILE_WRAPPERS}" = xyes; then + CREATE_WRAPPERS_TRUE= + CREATE_WRAPPERS_FALSE='#' +else + CREATE_WRAPPERS_TRUE='#' + CREATE_WRAPPERS_FALSE= fi -for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -continue + +echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6 fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -depcc="$CXX" am_compiler_list= +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break + +# Check whether --enable-static or --disable-static was given. +if test "${enable_static+set}" = set; then + enableval="$enable_static" + p=${PACKAGE-default} +case $enableval in +yes) enable_static=yes ;; +no) enable_static=no ;; +*) + enable_static=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_static=no +fi; +# Check whether --enable-shared or --disable-shared was given. +if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + p=${PACKAGE-default} +case $enableval in +yes) enable_shared=yes ;; +no) enable_shared=no ;; +*) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_shared=yes +fi; +# Check whether --enable-fast-install or --disable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval="$enable_fast_install" + p=${PACKAGE-default} +case $enableval in +yes) enable_fast_install=yes ;; +no) enable_fast_install=no ;; +*) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$ac_save_ifs" + ;; +esac +else + enable_fast_install=yes +fi; + +# Check whether --with-gnu-ld or --without-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval="$with_gnu_ld" + test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi; +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 +else + echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break fi fi done + IFS="$ac_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$lt_cv_path_LD" +if test -n "$LD"; then + echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + lt_cv_prog_gnu_ld=yes +else + lt_cv_prog_gnu_ld=no +fi +fi +echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 +with_gnu_ld=$lt_cv_prog_gnu_ld + + +echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 +reload_flag=$lt_cv_ld_reload_flag +test -n "$reload_flag" && reload_flag=" $reload_flag" + +echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/${ac_tool_prefix}nm + if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then + lt_cv_path_NM="$tmp_nm -B" + break + elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then + lt_cv_path_NM="$tmp_nm -p" + break + else + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi + +NM="$lt_cv_path_NM" +echo "$as_me:$LINENO: result: $NM" >&5 +echo "${ECHO_T}$NM" >&6 + +echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5 +echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6 +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [regex]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given egrep regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi4*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin* | mingw* |pw32*) + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + # this will be overwritten by pass_all, but leave it in just in case + lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.012) + lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System' + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' + ;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | kfreebsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20*|hpux11*) + case $host_cpu in + hppa*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + esac + ;; + +irix5* | irix6*) + case $host_os in + irix5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" + ;; + *) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" + ;; + esac + lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux-gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | knetbsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' + fi + ;; + +newsos6) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +osf3* | osf4* | osf5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' + lt_cv_file_magic_test_file=/shlib/libc.so + lt_cv_deplibs_check_method=pass_all + ;; + +sco3.2v5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=/lib/libc.so + ;; + +sysv5uw[78]* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + case $host_vendor in + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + esac + ;; +esac - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none fi +echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method -fi -echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# find the maximum length of command line arguments +echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi + i=0 + teststring="ABCD" + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; -# Check whether --enable-static or --disable-static was given. -if test "${enable_static+set}" = set; then - enableval="$enable_static" - p=${PACKAGE-default} -case $enableval in -yes) enable_static=yes ;; -no) enable_static=no ;; -*) - enable_static=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_static=yes + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for *BSD fi - done - IFS="$ac_save_ifs" - ;; -esac + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len" ; then + echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else - enable_static=no -fi; -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - p=${PACKAGE-default} -case $enableval in -yes) enable_shared=yes ;; -no) enable_shared=no ;; -*) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac + echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6 +fi + + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - enable_shared=yes -fi; -# Check whether --enable-fast-install or --disable-fast-install was given. -if test "${enable_fast_install+set}" = set; then - enableval="$enable_fast_install" - p=${PACKAGE-default} -case $enableval in -yes) enable_fast_install=yes ;; -no) enable_fast_install=no ;; -*) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_fast_install=yes + case $MAGIC_CMD in + /*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; + ?:/*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. + ;; + *) + ac_save_MAGIC_CMD="$MAGIC_CMD" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="/usr/bin:$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break fi done IFS="$ac_save_ifs" + MAGIC_CMD="$ac_save_MAGIC_CMD" ;; esac -else - enable_fast_install=yes -fi; +fi -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6 else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -if test "${lt_cv_path_LD+set}" = set; then + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6 +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do + case $MAGIC_CMD in + /*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; + ?:/*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. + ;; + *) + ac_save_MAGIC_CMD="$MAGIC_CMD" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="/usr/bin:$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + egrep "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac fi + break fi done IFS="$ac_save_ifs" + MAGIC_CMD="$ac_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6 else - lt_cv_path_LD="$LD" # Let the user override the test with a path. + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi + + else + MAGIC_CMD=: + fi fi -LD="$lt_cv_path_LD" -if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 + fi + ;; +esac + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${lt_cv_prog_gnu_ld+set}" = set; then + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - lt_cv_prog_gnu_ld=yes + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else - lt_cv_prog_gnu_ld=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi -echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 -with_gnu_ld=$lt_cv_prog_gnu_ld +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi -echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 -if test "${lt_cv_ld_reload_flag+set}" = set; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - lt_cv_ld_reload_flag='-r' + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 -reload_flag=$lt_cv_ld_reload_flag -test -n "$reload_flag" && reload_flag=" $reload_flag" -echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 -if test "${lt_cv_path_NM+set}" = set; then +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do - test -z "$ac_dir" && ac_dir=. - tmp_nm=$ac_dir/${ac_tool_prefix}nm - if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then - lt_cv_path_NM="$tmp_nm -B" - break - elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - lt_cv_path_NM="$tmp_nm -p" - break - else - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - fi - fi - done - IFS="$ac_save_ifs" - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi + + STRIP=$ac_ct_STRIP +else + STRIP="$ac_cv_prog_STRIP" fi -NM="$lt_cv_path_NM" -echo "$as_me:$LINENO: result: $NM" >&5 -echo "${ECHO_T}$NM" >&6 -echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5 -echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6 -if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [regex]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given egrep regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. +# Check for any special flags to pass to ltconfig. +libtool_flags="--cache-file=$cache_file" +test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" +test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" +test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" +test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc" +test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" -case $host_os in -aix*) - lt_cv_deplibs_check_method=pass_all - ;; -beos*) - lt_cv_deplibs_check_method=pass_all - ;; +# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval="$enable_libtool_lock" -bsdi4*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; +fi; +test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" +test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" -cygwin* | mingw* |pw32*) - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' + +# Check whether --with-pic or --without-pic was given. +if test "${with_pic+set}" = set; then + withval="$with_pic" + pic_mode="$withval" +else + pic_mode=default +fi; +test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic" +test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 5558 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* ;; -darwin* | rhapsody*) - # this will be overwritten by pass_all, but leave it in just in case - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.012) - lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System' - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac - lt_cv_deplibs_check_method=pass_all +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case "`/usr/bin/file conftest.o`" in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* ;; -freebsd* | kfreebsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case "`/usr/bin/file conftest.o`" in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac ;; esac - else - lt_cv_deplibs_check_method=pass_all + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +lt_cv_cc_needs_belf=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; -hpux10.20*|hpux11*) - case $host_cpu in - hppa*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - esac - ;; +esac -irix5* | irix6*) - case $host_os in - irix5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" - ;; - esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` - lt_cv_deplibs_check_method=pass_all - ;; -# This must be Linux ELF. -linux-gnu*) - lt_cv_deplibs_check_method=pass_all - ;; +# Save cache, so that ltconfig can load it +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. -netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file else - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' + echo "not updating unwritable cache $cache_file" fi - ;; +fi +rm -f confcache -newsos6) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; +# Actually configure libtool. ac_aux_dir is where install-sh is found. +AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ +MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \ +AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \ +objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \ +deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \ +${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ +$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \ +|| { { echo "$as_me:$LINENO: error: libtool configure failed" >&5 +echo "$as_me: error: libtool configure failed" >&2;} + { (exit 1); exit 1; }; } -osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so - lt_cv_deplibs_check_method=pass_all - ;; +# Reload cache, that may have been modified by ltconfig +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; -solaris*) - lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so - ;; +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh" -sysv5uw[78]* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - case $host_vendor in - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - esac - ;; -esac +# Redirect the config.log output again, so that the ltconfig log is not +# clobbered by the next message. +exec 5>>./config.log -fi -echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! -# find the maximum length of command line arguments -echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 -if test "${lt_cv_sys_max_cmd_len+set}" = set; then +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - cygwin* | mingw*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for *BSD - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - esac + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done fi - -if test -n "$lt_cv_sys_max_cmd_len" ; then - echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - -# Only perform the check for file, if the check method requires it -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $MAGIC_CMD in - /*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; - ?:/*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. - ;; - *) - ac_save_MAGIC_CMD="$MAGIC_CMD" - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="/usr/bin:$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - egrep "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done -EOF - fi ;; - esac - fi - break - fi - done - IFS="$ac_save_ifs" - MAGIC_CMD="$ac_save_MAGIC_CMD" - ;; -esac fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi -if test -z "$lt_cv_path_MAGIC_CMD"; then + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then if test -n "$ac_tool_prefix"; then - echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6 -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $MAGIC_CMD in - /*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; - ?:/*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. - ;; - *) - ac_save_MAGIC_CMD="$MAGIC_CMD" - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="/usr/bin:$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - egrep "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done -EOF - fi ;; - esac - fi - break - fi - done - IFS="$ac_save_ifs" - MAGIC_CMD="$ac_save_MAGIC_CMD" - ;; -esac fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6 +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - else - MAGIC_CMD=: - fi fi - - fi - ;; -esac - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5545,7 +5987,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5554,28 +5996,33 @@ done fi fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then +if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. else + ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do @@ -5583,40 +6030,54 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi fi fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then +if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5625,7 +6086,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5634,27 +6095,31 @@ done fi fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi + test -n "$CC" && break + done fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5663,183 +6128,127 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" + ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - - -# Check for any special flags to pass to ltconfig. -libtool_flags="--cache-file=$cache_file" -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" -test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" -test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc" -test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" - + test -n "$ac_ct_CC" && break +done -# Check whether --enable-libtool-lock or --disable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" + CC=$ac_ct_CC +fi -fi; -test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" -test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" +fi -# Check whether --with-pic or --without-pic was given. -if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" -else - pic_mode=default -fi; -test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic" -test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -*-*-irix6*) - # Find out which ABI we are using. - echo '#line 5724 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case "`/usr/bin/file conftest.o`" in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; - -x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_i386" - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; + (exit $ac_status); } -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 -if test "${lt_cv_cc_needs_belf+set}" = set; then +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_compiler_gnu=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF +fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -5854,9 +6263,9 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 @@ -5870,261 +6279,431 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=yes + ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -lt_cv_cc_needs_belf=no +ac_cv_prog_cc_g=no fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" fi - ;; - - -esac - - -# Save cache, so that ltconfig can load it -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file +else + if test "$GCC" = yes; then + CFLAGS="-O2" else - echo "not updating unwritable cache $cache_file" + CFLAGS= fi fi -rm -f confcache +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} -# Actually configure libtool. ac_aux_dir is where install-sh is found. -AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \ -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \ -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \ -deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \ -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ -$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \ -|| { { echo "$as_me:$LINENO: error: libtool configure failed" >&5 -echo "$as_me: error: libtool configure failed" >&2;} - { (exit 1); exit 1; }; } +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std1 is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std1. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; -# Reload cache, that may have been modified by ltconfig -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh" +fi +rm -f conftest.err conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' +fi -# Redirect the config.log output again, so that the ltconfig log is not -# clobbered by the next message. -exec 5>>./config.log +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac -ac_ext=cc -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir else - ac_cpp_err=yes + am_cv_CC_dependencies_compiler_type=none fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break fi -rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break + + +if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= fi - done - ac_cv_prog_CXXCPP=$CXXCPP +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= fi - CXXCPP=$ac_cv_prog_CXXCPP +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_prog_CXXCPP=$CXXCPP -fi -echo "$as_me:$LINENO: result: $CXXCPP" >&5 -echo "${ECHO_T}$CXXCPP" >&6 -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. @@ -6154,345 +6733,208 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh" -lt_save_CC="$CC" -lt_save_CFLAGS="$CFLAGS" -AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \ -MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ -LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \ -AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \ -objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \ -deplibs_check_method="$deplibs_check_method" \ -file_magic_cmd="$file_magic_cmd" \ -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \ ---build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \ -|| { { echo "$as_me:$LINENO: error: libtool tag configuration failed" >&5 -echo "$as_me: error: libtool tag configuration failed" >&2;} - { (exit 1); exit 1; }; } -CC="$lt_save_CC" -CFLAGS="$lt_save_CFLAGS" - -# Redirect the config.log output again, so that the ltconfig log is not -# clobbered by the next message. -exec 5>>./config.log - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + ac_cpp_err=yes fi - - CC=$ac_ct_CC +if test -z "$ac_cpp_err"; then + : else - CC="$ac_cv_prog_CC" + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue fi +rm -f conftest.err conftest.$ac_ext -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi + + done + ac_cv_prog_CPP=$CPP fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. + CPP=$ac_cv_prog_CPP else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + ac_cpp_err=yes fi - - CC=$ac_ct_CC +if test -z "$ac_cpp_err"; then + : else - CC="$ac_cv_prog_CC" -fi + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done +rm -f conftest.err conftest.$ac_ext -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= fi +else + ac_cpp_err=yes fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } fi -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then +if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6501,7 +6943,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6510,31 +6952,31 @@ done fi fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - test -n "$CC" && break + test -n "$CXX" && break done fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6543,7 +6985,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" + ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6552,250 +6994,67 @@ done fi fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi - test -n "$ac_ct_CC" && break + test -n "$ac_ct_CXX" && break done +test -n "$ac_ct_CXX" || ac_ct_CXX="g++" - CC=$ac_ct_CC -fi - + CXX=$ac_ct_CXX fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - # Provide some information about the compiler. echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 + "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; int main () { -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +#ifndef __GNUC__ + choke me +#endif + ; return 0; } _ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext +rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? @@ -6804,7 +7063,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 @@ -6817,38 +7076,42 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break + ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 +ac_compiler_gnu=no fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi +echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +CXXFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac +int +main () +{ -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif + ; + return 0; +} _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 @@ -6859,7 +7122,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 @@ -6872,7 +7135,33 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - for ac_declaration in \ + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cxx_g=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ @@ -6905,7 +7194,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 @@ -6950,7 +7239,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 @@ -6978,23 +7267,17 @@ if test -n "$ac_declaration"; then echo '#endif' >>confdefs.h fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -depcc="$CC" am_compiler_list= +depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -7016,7 +7299,7 @@ else # directory. mkdir sub - am_cv_CC_dependencies_compiler_type=none + am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi @@ -7069,7 +7352,7 @@ else # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode + am_cv_CXX_dependencies_compiler_type=$depmode break fi fi @@ -7078,47 +7361,42 @@ else cd .. rm -rf conftest.dir else - am_cv_CC_dependencies_compiler_type=none + am_cv_CXX_dependencies_compiler_type=none fi fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type +echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes +for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. @@ -7148,8 +7426,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi @@ -7186,8 +7464,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi @@ -7215,17 +7493,17 @@ if $ac_preproc_ok; then fi done - ac_cv_prog_CPP=$CPP + ac_cv_prog_CXXCPP=$CXXCPP fi - CPP=$ac_cv_prog_CPP + CXXCPP=$ac_cv_prog_CXXCPP else - ac_cv_prog_CPP=$CPP + ac_cv_prog_CXXCPP=$CXXCPP fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 +echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes +for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. @@ -7255,8 +7533,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi @@ -7293,8 +7571,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi @@ -7320,19 +7598,56 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +LIBTOOL_DEPS=$LIBTOOL_DEPS" $ac_aux_dir/ltcf-cxx.sh" +lt_save_CC="$CC" +lt_save_CFLAGS="$CFLAGS" +AR="$AR" LTCC="$CC" CC="$CXX" CXX="$CXX" CFLAGS="$CXXFLAGS" CPPFLAGS="$CPPFLAGS" \ +MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \ +AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \ +objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \ +deplibs_check_method="$deplibs_check_method" \ +file_magic_cmd="$file_magic_cmd" \ +${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig -o libtool $libtool_flags \ +--build="$build" --add-tag=CXX $ac_aux_dir/ltcf-cxx.sh $host \ +|| { { echo "$as_me:$LINENO: error: libtool tag configuration failed" >&5 +echo "$as_me: error: libtool tag configuration failed" >&2;} + { (exit 1); exit 1; }; } +CC="$lt_save_CC" +CFLAGS="$lt_save_CFLAGS" + +# Redirect the config.log output again, so that the ltconfig log is not +# clobbered by the next message. +exec 5>>./config.log + + + +# Handle -Werror default case. +if test "$ENABLE_WERROR" = default; then + case "$host_os" in + *linux*) + if test "$GCC" = yes; then + ENABLE_WERROR=yes + fi + ;; + esac +fi if test "x${COMPILE_COLLECTIONS}" = xyes; then # Extract the first word of "perl", so it can be a program name with args. @@ -7383,6 +7698,165 @@ fi fi if test "x${COMPILE_JNI}" = xyes; then + + + + echo "$as_me:$LINENO: checking __attribute__((,,))" >&5 +echo $ECHO_N "checking __attribute__((,,))... $ECHO_C" >&6 + if test "${cv_c_gcc_attribute_supported+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +extern int testfunction(int x) __attribute__((,,)) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cv_c_gcc_attribute_supported=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cv_c_gcc_attribute_supported=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + + if test "x$cv_c_gcc_attribute_supported" = xyes; then + true + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GNUC25_ATTRIB +_ACEOF + + + else + true + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + + fi + + + + + + + + + + + echo "$as_me:$LINENO: checking __attribute__((unused))" >&5 +echo $ECHO_N "checking __attribute__((unused))... $ECHO_C" >&6 + if test "${cv_c_gcc_attribute_unused+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +extern int testfunction(int x) __attribute__((unused)) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cv_c_gcc_attribute_unused=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cv_c_gcc_attribute_unused=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + + if test "x$cv_c_gcc_attribute_unused" = xyes; then + true + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GNUC25_UNUSED +_ACEOF + + + else + true + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + + fi + + + + + + echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then @@ -7849,6 +8323,9 @@ fi + + + for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \ asm/ioctls.h \ inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \ @@ -7857,7 +8334,9 @@ for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \ crt_externs.h \ fcntl.h \ sys/mman.h \ - magic.h + magic.h \ + sys/event.h sys/epoll.h \ + ifaddrs.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -8127,17 +8606,30 @@ rm -f conftest* + + + + + + + + + + + for ac_func in ftruncate fsync select \ gethostname socket strerror fork pipe execve open close \ - lseek fstat read write htonl memset htons connect \ + lseek fstat read readv write writev htonl memset htons connect \ getsockname getpeername bind listen accept \ recvfrom send sendto setsockopt getsockopt time mktime \ - localtime_r \ + gethostbyname_r localtime_r \ strerror_r \ fcntl \ mmap munmap mincore msync madvise getpagesize sysconf \ lstat readlink \ - + inet_aton inet_addr inet_pton \ + getifaddrs kqueue kevent epoll_create \ + readdir_r do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -8145,7 +8637,12 @@ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -8247,6 +8744,11 @@ if test "${ac_cv_lib_magic_magic_open+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lmagic $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -8310,6 +8812,61 @@ fi + echo "$as_me:$LINENO: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 +echo $ECHO_N "checking whether struct sockaddr_in6 is in netinet/in.h... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +struct sockaddr_in6 addr6; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_INET6 1 +_ACEOF + + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 if test "${ac_cv_header_time+set}" = set; then @@ -8566,7 +9123,12 @@ echo $ECHO_N "checking for tzname... $ECHO_C" >&6 if test "${ac_cv_var_tzname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9542,7 +10104,12 @@ else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9593,7 +10160,12 @@ rm -f conftest.err conftest.$ac_objext \ if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9750,10 +10322,10 @@ _ACEOF if test "x${GCC}" = xyes; then - WARNING_CFLAGS='-pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long' + WARNING_CFLAGS='-W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long' - STRICT_WARNING_CFLAGS=-Wstrict-prototypes + STRICT_WARNING_CFLAGS='-Wstrict-prototypes -pedantic' ERROR_CFLAGS= @@ -10112,7 +10684,12 @@ if test "$ac_x_libraries" = no; then # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lXt $LIBS" - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10224,7 +10801,12 @@ else echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10276,7 +10858,12 @@ echo "${ECHO_T}no" >&6 X_LIBS="$X_LIBS -R$x_libraries" else LIBS="$ac_xsave_LIBS -R $x_libraries" - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10346,7 +10933,12 @@ echo "${ECHO_T}neither works" >&6 # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10402,6 +10994,11 @@ if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10471,6 +11068,11 @@ if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10551,7 +11153,12 @@ echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 if test "${ac_cv_func_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10645,6 +11252,11 @@ if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10714,6 +11326,11 @@ if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10790,7 +11407,12 @@ echo $ECHO_N "checking for connect... $ECHO_C" >&6 if test "${ac_cv_func_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10884,6 +11506,11 @@ if test "${ac_cv_lib_socket_connect+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10953,7 +11580,12 @@ echo $ECHO_N "checking for remove... $ECHO_C" >&6 if test "${ac_cv_func_remove+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11047,6 +11679,11 @@ if test "${ac_cv_lib_posix_remove+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -11116,7 +11753,12 @@ echo $ECHO_N "checking for shmat... $ECHO_C" >&6 if test "${ac_cv_func_shmat+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -11210,6 +11852,11 @@ if test "${ac_cv_lib_ipc_shmat+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -11290,6 +11937,11 @@ if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -11367,6 +12019,11 @@ if test "${ac_cv_lib_Xtst_XTestQueryExtension+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lXtst ${X_LIBS} $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -11734,6 +12391,11 @@ if test "${ac_cv_lib_Xrender_XRenderQueryExtension+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lXrender ${X_LIBS} $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -11809,6 +12471,11 @@ if test "${ac_cv_lib_Xrandr_XRRQueryExtension+set}" = set; then else ac_check_lib_save_LIBS=$LIBS LIBS="-lXrandr ${X_LIBS} $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -12391,6 +13058,116 @@ echo "$as_me: Set QT_CFLAGS... $QT_CFLAGS" >&6;} fi + echo "$as_me:$LINENO: checking for MSG_NOSIGNAL" >&5 +echo $ECHO_N "checking for MSG_NOSIGNAL... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + int f = MSG_NOSIGNAL; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MSG_NOSIGNAL 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: checking for SO_NOSIGPIPE " >&5 +echo $ECHO_N "checking for SO_NOSIGPIPE ... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + int f = SO_NOSIGPIPE; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SO_NOSIGPIPE 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test "x${COMPILE_PLUGIN}" = xyes; then @@ -12783,6 +13560,104 @@ echo "${ECHO_T}$MOZILLA_LIBS" >&6 fi fi + if test "x${MOZILLA_FOUND}" = xno; then + + succeeded=no + + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG + +if test -n "$PKG_CONFIG"; then + echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + echo "$as_me:$LINENO: checking for seamonkey-plugin" >&5 +echo $ECHO_N "checking for seamonkey-plugin... $ECHO_C" >&6 + + if $PKG_CONFIG --exists "seamonkey-plugin" ; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + succeeded=yes + + echo "$as_me:$LINENO: checking MOZILLA_CFLAGS" >&5 +echo $ECHO_N "checking MOZILLA_CFLAGS... $ECHO_C" >&6 + MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "seamonkey-plugin"` + echo "$as_me:$LINENO: result: $MOZILLA_CFLAGS" >&5 +echo "${ECHO_T}$MOZILLA_CFLAGS" >&6 + + echo "$as_me:$LINENO: checking MOZILLA_LIBS" >&5 +echo $ECHO_N "checking MOZILLA_LIBS... $ECHO_C" >&6 + MOZILLA_LIBS=`$PKG_CONFIG --libs "seamonkey-plugin"` + echo "$as_me:$LINENO: result: $MOZILLA_LIBS" >&5 +echo "${ECHO_T}$MOZILLA_LIBS" >&6 + else + MOZILLA_CFLAGS="" + MOZILLA_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "seamonkey-plugin"` + + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + MOZILLA_FOUND=yes + else + MOZILLA_FOUND=no + fi + + fi succeeded=no @@ -13210,7 +14085,7 @@ fi -CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/target/Linux -I\$(top_srcdir)/native/target/generic" +CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/jni/native-lib" if test "x${COMPILE_JNI}" = xyes; then @@ -18536,15 +19411,15 @@ case "$with_escher" in use_escher=false ;; "yes") - { { echo "$as_me:$LINENO: error: Please suply an absolute path to Escher library" >&5 -echo "$as_me: error: Please suply an absolute path to Escher library" >&2;} + { { echo "$as_me:$LINENO: error: Please supply an absolute path to Escher library" >&5 +echo "$as_me: error: Please supply an absolute path to Escher library" >&2;} { (exit 1); exit 1; }; } ;; *) use_escher=true PATH_TO_ESCHER=$with_escher ;; -esac; +esac @@ -18725,7 +19600,12 @@ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18841,12 +19721,12 @@ fi - ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/plugin/Makefile native/target/Makefile native/target/Linux/Makefile native/target/generic/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d" + ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d" if test "x${COMPILE_WRAPPERS}" = xno then - ac_config_files="$ac_config_files tools/gappletviewer tools/gjarsigner tools/gkeytool tools/gjar tools/gnative2ascii tools/gserialver" + ac_config_files="$ac_config_files tools/gappletviewer tools/gjarsigner tools/gkeytool tools/gjar tools/gnative2ascii tools/gserialver tools/grmiregistry tools/gtnameserv tools/gorbd tools/grmid tools/grmic tools/gjavah" ac_config_commands="$ac_config_commands gappletviewer" @@ -18860,18 +19740,17 @@ then ac_config_commands="$ac_config_commands gserialver" -fi + ac_config_commands="$ac_config_commands grmiregistry" + ac_config_commands="$ac_config_commands gtnameserv" -if test "x${COMPILE_WRAPPERS}" = xno -then - ac_config_files="$ac_config_files tools/appletviewer tools/jarsigner tools/keytool" + ac_config_commands="$ac_config_commands gorbd" - ac_config_commands="$ac_config_commands appletviewer" + ac_config_commands="$ac_config_commands grmid" - ac_config_commands="$ac_config_commands jarsigner" + ac_config_commands="$ac_config_commands grmic" - ac_config_commands="$ac_config_commands keytool" + ac_config_commands="$ac_config_commands gjavah" fi @@ -18970,6 +19849,13 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs +if test -z "${JAVA_MAINTAINER_MODE_TRUE}" && test -z "${JAVA_MAINTAINER_MODE_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"JAVA_MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"JAVA_MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${CREATE_COLLECTIONS_TRUE}" && test -z "${CREATE_COLLECTIONS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"CREATE_COLLECTIONS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -19075,17 +19961,17 @@ echo "$as_me: error: conditional \"CREATE_WRAPPERS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi @@ -19493,7 +20379,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by GNU Classpath $as_me 0.92, which was +This file was extended by GNU Classpath $as_me 0.94-pre, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19559,7 +20445,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -GNU Classpath config.status 0.92 +GNU Classpath config.status 0.94-pre configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" @@ -19695,6 +20581,7 @@ do "external/sax/Makefile" ) CONFIG_FILES="$CONFIG_FILES external/sax/Makefile" ;; "external/w3c_dom/Makefile" ) CONFIG_FILES="$CONFIG_FILES external/w3c_dom/Makefile" ;; "external/relaxngDatatype/Makefile" ) CONFIG_FILES="$CONFIG_FILES external/relaxngDatatype/Makefile" ;; + "external/jsr166/Makefile" ) CONFIG_FILES="$CONFIG_FILES external/jsr166/Makefile" ;; "gnu/classpath/Configuration.java" ) CONFIG_FILES="$CONFIG_FILES gnu/classpath/Configuration.java" ;; "gnu/java/security/Configuration.java" ) CONFIG_FILES="$CONFIG_FILES gnu/java/security/Configuration.java" ;; "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; @@ -19714,10 +20601,8 @@ do "native/jni/xmlj/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/xmlj/Makefile" ;; "native/jni/midi-alsa/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/midi-alsa/Makefile" ;; "native/jni/midi-dssi/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/midi-dssi/Makefile" ;; + "native/jni/native-lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/native-lib/Makefile" ;; "native/plugin/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/plugin/Makefile" ;; - "native/target/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/target/Makefile" ;; - "native/target/Linux/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/target/Linux/Makefile" ;; - "native/target/generic/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/target/generic/Makefile" ;; "resource/Makefile" ) CONFIG_FILES="$CONFIG_FILES resource/Makefile" ;; "resource/META-INF/services/java.util.prefs.PreferencesFactory" ) CONFIG_FILES="$CONFIG_FILES resource/META-INF/services/java.util.prefs.PreferencesFactory" ;; "scripts/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;; @@ -19735,9 +20620,12 @@ do "tools/gjar" ) CONFIG_FILES="$CONFIG_FILES tools/gjar" ;; "tools/gnative2ascii" ) CONFIG_FILES="$CONFIG_FILES tools/gnative2ascii" ;; "tools/gserialver" ) CONFIG_FILES="$CONFIG_FILES tools/gserialver" ;; - "tools/appletviewer" ) CONFIG_FILES="$CONFIG_FILES tools/appletviewer" ;; - "tools/jarsigner" ) CONFIG_FILES="$CONFIG_FILES tools/jarsigner" ;; - "tools/keytool" ) CONFIG_FILES="$CONFIG_FILES tools/keytool" ;; + "tools/grmiregistry" ) CONFIG_FILES="$CONFIG_FILES tools/grmiregistry" ;; + "tools/gtnameserv" ) CONFIG_FILES="$CONFIG_FILES tools/gtnameserv" ;; + "tools/gorbd" ) CONFIG_FILES="$CONFIG_FILES tools/gorbd" ;; + "tools/grmid" ) CONFIG_FILES="$CONFIG_FILES tools/grmid" ;; + "tools/grmic" ) CONFIG_FILES="$CONFIG_FILES tools/grmic" ;; + "tools/gjavah" ) CONFIG_FILES="$CONFIG_FILES tools/gjavah" ;; "$ac_config_links_1" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "mkcollections.pl" ) CONFIG_COMMANDS="$CONFIG_COMMANDS mkcollections.pl" ;; @@ -19748,9 +20636,12 @@ do "gjar" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gjar" ;; "gnative2ascii" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gnative2ascii" ;; "gserialver" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gserialver" ;; - "appletviewer" ) CONFIG_COMMANDS="$CONFIG_COMMANDS appletviewer" ;; - "jarsigner" ) CONFIG_COMMANDS="$CONFIG_COMMANDS jarsigner" ;; - "keytool" ) CONFIG_COMMANDS="$CONFIG_COMMANDS keytool" ;; + "grmiregistry" ) CONFIG_COMMANDS="$CONFIG_COMMANDS grmiregistry" ;; + "gtnameserv" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gtnameserv" ;; + "gorbd" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gorbd" ;; + "grmid" ) CONFIG_COMMANDS="$CONFIG_COMMANDS grmid" ;; + "grmic" ) CONFIG_COMMANDS="$CONFIG_COMMANDS grmic" ;; + "gjavah" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gjavah" ;; "gen-classlist" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gen-classlist" ;; "copy-vmresources" ) CONFIG_COMMANDS="$CONFIG_COMMANDS copy-vmresources" ;; "include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;; @@ -19852,6 +20743,8 @@ s,@target@,$target,;t t s,@target_cpu@,$target_cpu,;t t s,@target_vendor@,$target_vendor,;t t s,@target_os@,$target_os,;t t +s,@JAVA_MAINTAINER_MODE_TRUE@,$JAVA_MAINTAINER_MODE_TRUE,;t t +s,@JAVA_MAINTAINER_MODE_FALSE@,$JAVA_MAINTAINER_MODE_FALSE,;t t s,@LIBVERSION@,$LIBVERSION,;t t s,@CLASSPATH_MODULE@,$CLASSPATH_MODULE,;t t s,@CLASSPATH_CONVENIENCE@,$CLASSPATH_CONVENIENCE,;t t @@ -19916,7 +20809,6 @@ s,@CREATE_QT_PEER_LIBRARIES_TRUE@,$CREATE_QT_PEER_LIBRARIES_TRUE,;t t s,@CREATE_QT_PEER_LIBRARIES_FALSE@,$CREATE_QT_PEER_LIBRARIES_FALSE,;t t s,@CREATE_PLUGIN_TRUE@,$CREATE_PLUGIN_TRUE,;t t s,@CREATE_PLUGIN_FALSE@,$CREATE_PLUGIN_FALSE,;t t -s,@toolexeclibdir@,$toolexeclibdir,;t t s,@nativeexeclibdir@,$nativeexeclibdir,;t t s,@glibjdir@,$glibjdir,;t t s,@VM_BINARY@,$VM_BINARY,;t t @@ -19927,15 +20819,15 @@ s,@CREATE_JNI_HEADERS_FALSE@,$CREATE_JNI_HEADERS_FALSE,;t t s,@CREATE_WRAPPERS_TRUE@,$CREATE_WRAPPERS_TRUE,;t t s,@CREATE_WRAPPERS_FALSE@,$CREATE_WRAPPERS_FALSE,;t t s,@LN_S@,$LN_S,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@LIBTOOL@,$LIBTOOL,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@LIBTOOL@,$LIBTOOL,;t t s,@CXXCPP@,$CXXCPP,;t t s,@PERL@,$PERL,;t t s,@COLLECTIONS_PREFIX@,$COLLECTIONS_PREFIX,;t t @@ -21340,9 +22232,12 @@ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} gjar ) chmod 755 tools/gjar ;; gnative2ascii ) chmod 755 tools/gnative2ascii ;; gserialver ) chmod 755 tools/gserialver ;; - appletviewer ) chmod 755 tools/appletviewer ;; - jarsigner ) chmod 755 tools/jarsigner ;; - keytool ) chmod 755 tools/keytool ;; + grmiregistry ) chmod 755 tools/grmiregistry ;; + gtnameserv ) chmod 755 tools/gtnameserv ;; + gorbd ) chmod 755 tools/gorbd ;; + grmid ) chmod 755 tools/grmid ;; + grmic ) chmod 755 tools/grmic ;; + gjavah ) chmod 755 tools/gjavah ;; gen-classlist ) chmod 755 lib/gen-classlist.sh ;; copy-vmresources ) chmod 755 lib/copy-vmresources.sh ;; esac @@ -21384,4 +22279,3 @@ cat ${srcdir}/lib/standard.omit.in > lib/standard.omit if test x$use_escher != xtrue; then echo gnu/java/awt/peer/x/.*java$ >> lib/standard.omit fi - diff --git a/libjava/classpath/configure.ac b/libjava/classpath/configure.ac index 193b1d5f988..83bab19d0a6 100644 --- a/libjava/classpath/configure.ac +++ b/libjava/classpath/configure.ac @@ -6,11 +6,18 @@ dnl ----------------------------------------------------------- dnl define([AC_CACHE_LOAD], )dnl dnl define([AC_CACHE_SAVE], )dnl -AC_INIT([GNU Classpath],[0.92],[classpath@gnu.org],[classpath]) +AC_INIT([GNU Classpath],[0.94-pre],[classpath@gnu.org],[classpath]) AC_CONFIG_SRCDIR(java/lang/System.java) AC_CANONICAL_TARGET +dnl GCJ LOCAL +AC_ARG_ENABLE(java-maintainer-mode, + AS_HELP_STRING([--enable-java-maintainer-mode], + [allow rebuilding of .class and .h files])) +AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes) +dnl END GCJ LOCAL + dnl ----------------------------------------------------------- dnl Fold all IA-32 CPU architectures into "x86" dnl ----------------------------------------------------------- @@ -41,6 +48,9 @@ AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar]) AC_CONFIG_HEADERS([include/config.h]) AC_PREFIX_DEFAULT(/usr/local/classpath) +dnl GCC LOCAL +GCC_NO_EXECUTABLES + dnl ----------------------------------------------------------- dnl Enable collections.jar (disabled by default) dnl ----------------------------------------------------------- @@ -85,13 +95,17 @@ AM_CONDITIONAL(CREATE_CORE_JNI_LIBRARIES, test "x${COMPILE_CORE_JNI}" = xyes) dnl ----------------------------------------------------------- dnl Default Preference Backend dnl ----------------------------------------------------------- -AC_ARG_ENABLE(default-preferences-peer, - AS_HELP_STRING([--enable-default-preferences-peer], - [fully qualified class name of default Preferences API Backend])) -DEFAULT_PREFS_PEER=$enable_default_preferences_peer -if test "$DEFAULT_PREFS_PEER" = ""; then - DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory -fi +AC_ARG_ENABLE([default-preferences-peer], + [AS_HELP_STRING([--enable-default-preferences-peer@<:@=peer type or class name@:>@], + [specify one of: "gconf" [default] for a GConf based backend, "file" for a file based one, "memory" for a transient one, or a fully qualified class name implementing java.util.prefs.PreferencesFactory])], + [case "${enableval}" in + file) DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory ;; + gconf|yes|true) DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory ;; + memory) DEFAULT_PREFS_PEER=gnu.java.util.prefs.MemoryBasedFactory ;; + no|false) AC_MSG_ERROR(bad value '${enableval}' for --enable-default-preferences-peer) ;; + *) DEFAULT_PREFS_PEER=${enableval} ;; + esac], + [DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory]) dnl AC_SUBST(DEFAULT_PREFS_PEER) dnl ----------------------------------------------------------- @@ -120,9 +134,9 @@ AC_ARG_ENABLE([Werror], [case "${enableval}" in yes) ENABLE_WERROR=yes ;; no) ENABLE_WERROR=no ;; - *) ENABLE_WERROR=no ;; + *) ENABLE_WERROR=default ;; esac], - [ENABLE_WERROR=no]) + [ENABLE_WERROR=default]) dnl ----------------------------------------------------------- dnl Default AWT toolkit @@ -222,24 +236,15 @@ AC_ARG_ENABLE([plugin], AM_CONDITIONAL(CREATE_PLUGIN, test "x${COMPILE_PLUGIN}" = xyes) dnl ----------------------------------------------------------- -dnl GCJ LOCAL: Calculates and substitutes toolexeclibdir. $libdir is -dnl defined to the same value for all multilibs. We define toolexeclibdir -dnl so that we can refer to the multilib installation directories from -dnl classpath's build files. -dnl ----------------------------------------------------------- -CLASSPATH_TOOLEXECLIBDIR - -dnl ----------------------------------------------------------- dnl Sets the native libraries installation dir dnl ----------------------------------------------------------- -dnl GCJ LOCAL: default to ${toolexeclibdir}/gcj-${gcc_version} AC_ARG_WITH([native-libdir], [AS_HELP_STRING(--with-native-libdir,sets the installation directory for native libraries [default='${libdir}/${PACKAGE}'])], [ nativeexeclibdir=${withval} ], [ - nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER` + nativeexeclibdir='${libdir}/${PACKAGE}' ]) AC_SUBST(nativeexeclibdir) @@ -292,7 +297,11 @@ dnl ----------------------------------------------------------- AC_ARG_ENABLE([tool-wrappers], [AS_HELP_STRING(--enable-tool-wrappers,create tool wrapper binaries [default=no])], [case x"${enableval}" in - xyes) COMPILE_WRAPPERS=yes ;; + xyes) + COMPILE_WRAPPERS=yes; + AC_CHECK_HEADERS([ltdl.h],, [AC_MSG_ERROR(cannot find ltdl.h)]) + AC_CHECK_LIB(ltdl, lt_dlopen,, [AC_MSG_ERROR(cannot find libltdl)]) + ;; xno) COMPILE_WRAPPERS=no ;; x) COMPILE_WRAPPERS=yes ;; *) COMPILE_WRAPPERS=yes ;; @@ -306,13 +315,25 @@ AC_PROG_INSTALL dnl ----------------------------------------------------------- dnl Checks for programs. dnl ----------------------------------------------------------- -AC_PROG_CXX + dnl Initialize libtool AC_DISABLE_STATIC AC_PROG_LIBTOOL dnl AC_PROG_AWK AC_PROG_CC AC_PROG_CPP +AC_PROG_CXX + +# Handle -Werror default case. +if test "$ENABLE_WERROR" = default; then + case "$host_os" in + *linux*) + if test "$GCC" = yes; then + ENABLE_WERROR=yes + fi + ;; + esac +fi if test "x${COMPILE_COLLECTIONS}" = xyes; then AC_PATH_PROG(PERL, [perl]) @@ -323,6 +344,8 @@ if test "x${COMPILE_COLLECTIONS}" = xyes; then fi if test "x${COMPILE_JNI}" = xyes; then + GCC_ATTRIBUTE_UNUSED + AC_HEADER_STDC dnl Checking sizeof void * is needed for fdlibm to work properly on ppc64, @@ -344,7 +367,9 @@ if test "x${COMPILE_JNI}" = xyes; then crt_externs.h \ fcntl.h \ sys/mman.h \ - magic.h]) + magic.h \ + sys/event.h sys/epoll.h \ + ifaddrs.h]) AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t])) AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t])) @@ -353,20 +378,29 @@ if test "x${COMPILE_JNI}" = xyes; then AC_CHECK_FUNCS([ftruncate fsync select \ gethostname socket strerror fork pipe execve open close \ - lseek fstat read write htonl memset htons connect \ + lseek fstat read readv write writev htonl memset htons connect \ getsockname getpeername bind listen accept \ recvfrom send sendto setsockopt getsockopt time mktime \ - localtime_r \ + gethostbyname_r localtime_r \ strerror_r \ fcntl \ mmap munmap mincore msync madvise getpagesize sysconf \ lstat readlink \ - ]) + inet_aton inet_addr inet_pton \ + getifaddrs kqueue kevent epoll_create \ + readdir_r ]) LIBMAGIC= AC_CHECK_LIB(magic, magic_open, LIBMAGIC=-lmagic) AC_SUBST(LIBMAGIC) + AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct sockaddr_in6 addr6;]])], + [AC_DEFINE(HAVE_INET6, 1, + [Define if inet6 structures are defined in netinet/in.h.]) + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) + AC_HEADER_TIME AC_STRUCT_TM AC_STRUCT_TIMEZONE @@ -401,17 +435,17 @@ if test "x${COMPILE_JNI}" = xyes; then dnl When using gcc we want warnings, lots of warnings :-) if test "x${GCC}" = xyes; then - dnl We want ISO C90 pedantic ansi, but with longlong (jlong) support + dnl We want ISO C90 ansi, but with longlong (jlong) support dnl and modern POSIX and BSD C library functions/prototypes. dnl Warning flags for (almost) everybody. dnl Should probably be configurable - WARNING_CFLAGS='-pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long' + WARNING_CFLAGS='-W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long' AC_SUBST(WARNING_CFLAGS) dnl Strict warning flags which not every module uses. dnl Should probably be configurable. - STRICT_WARNING_CFLAGS=-Wstrict-prototypes + STRICT_WARNING_CFLAGS='-Wstrict-prototypes -pedantic' AC_SUBST(STRICT_WARNING_CFLAGS) dnl Whether or not to add -Werror, also not used by all modueles. @@ -538,6 +572,28 @@ if test "x${COMPILE_JNI}" = xyes; then AC_SUBST(QT_CFLAGS) AC_SUBST(QT_LIBS) fi + dnl ********************************************************************** + dnl Check for MSG_NOSIGNAL + dnl ********************************************************************** + AC_MSG_CHECKING(for MSG_NOSIGNAL) + AC_TRY_COMPILE([#include ], + [ int f = MSG_NOSIGNAL; ], + [ AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MSG_NOSIGNAL, 1, + [Define this symbol if you have MSG_NOSIGNAL]) ], + [ AC_MSG_RESULT(no)] + ) + dnl ********************************************************************** + dnl Check for SO_NOSIGPIPE (Darwin equivalent for MSG_NOSIGNAL) + dnl ********************************************************************** + AC_MSG_CHECKING(for SO_NOSIGPIPE ) + AC_TRY_COMPILE([#include ], + [ int f = SO_NOSIGPIPE; ], + [ AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SO_NOSIGPIPE, 1, + [Define this symbol if you have SO_NOSIGPIPE]) ], + [ AC_MSG_RESULT(no)] + ) dnl Check for plugin support headers and libraries. if test "x${COMPILE_PLUGIN}" = xyes; then @@ -551,6 +607,9 @@ if test "x${COMPILE_JNI}" = xyes; then if test "x${MOZILLA_FOUND}" = xno; then PKG_CHECK_MODULES(MOZILLA, mozilla-firefox-plugin, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no]) fi + if test "x${MOZILLA_FOUND}" = xno; then + PKG_CHECK_MODULES(MOZILLA, seamonkey-plugin, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no]) + fi PKG_CHECK_MODULES(GLIB, glib-2.0) AC_SUBST(MOZILLA_CFLAGS) @@ -568,7 +627,7 @@ dnl ----------------------------------------------------------- dnl Add the include files for the native abstraction layer. dnl Used by AM_CPPFLAGS in the different modules. dnl ----------------------------------------------------------- -CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/target/Linux -I\$(top_srcdir)/native/target/generic" +CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/jni/native-lib" AC_SUBST(CLASSPATH_INCLUDES) dnl ----------------------------------------------------------- @@ -746,13 +805,13 @@ case "$with_escher" in use_escher=false ;; "yes") - AC_MSG_ERROR([Please suply an absolute path to Escher library]) + AC_MSG_ERROR([Please supply an absolute path to Escher library]) ;; *) use_escher=true PATH_TO_ESCHER=$with_escher ;; -esac; +esac AM_CONDITIONAL(USE_ESCHER, test x$use_escher = xtrue) AC_SUBST(PATH_TO_ESCHER) @@ -795,6 +854,7 @@ external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile +external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile @@ -814,10 +874,8 @@ native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile +native/jni/native-lib/Makefile native/plugin/Makefile -native/target/Makefile -native/target/Linux/Makefile -native/target/generic/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory scripts/Makefile @@ -837,24 +895,25 @@ tools/gjarsigner tools/gkeytool tools/gjar tools/gnative2ascii -tools/gserialver]) +tools/gserialver +tools/grmiregistry +tools/gtnameserv +tools/gorbd +tools/grmid +tools/grmic +tools/gjavah]) AC_CONFIG_COMMANDS([gappletviewer],[chmod 755 tools/gappletviewer]) AC_CONFIG_COMMANDS([gjarsigner],[chmod 755 tools/gjarsigner]) AC_CONFIG_COMMANDS([gkeytool],[chmod 755 tools/gkeytool]) AC_CONFIG_COMMANDS([gjar],[chmod 755 tools/gjar]) AC_CONFIG_COMMANDS([gnative2ascii],[chmod 755 tools/gnative2ascii]) AC_CONFIG_COMMANDS([gserialver],[chmod 755 tools/gserialver]) -fi - - -if test "x${COMPILE_WRAPPERS}" = xno -then -AC_CONFIG_FILES([tools/appletviewer -tools/jarsigner -tools/keytool]) -AC_CONFIG_COMMANDS([appletviewer],[chmod 755 tools/appletviewer]) -AC_CONFIG_COMMANDS([jarsigner],[chmod 755 tools/jarsigner]) -AC_CONFIG_COMMANDS([keytool],[chmod 755 tools/keytool]) +AC_CONFIG_COMMANDS([grmiregistry],[chmod 755 tools/grmiregistry]) +AC_CONFIG_COMMANDS([gtnameserv],[chmod 755 tools/gtnameserv]) +AC_CONFIG_COMMANDS([gorbd],[chmod 755 tools/gorbd]) +AC_CONFIG_COMMANDS([grmid],[chmod 755 tools/grmid]) +AC_CONFIG_COMMANDS([grmic],[chmod 755 tools/grmic]) +AC_CONFIG_COMMANDS([gjavah], [chmod 755 tools/gjavah]) fi AC_CONFIG_COMMANDS([gen-classlist],[chmod 755 lib/gen-classlist.sh]) @@ -866,4 +925,3 @@ cat ${srcdir}/lib/standard.omit.in > lib/standard.omit if test x$use_escher != xtrue; then echo gnu/java/awt/peer/x/.*java$ >> lib/standard.omit fi - diff --git a/libjava/classpath/doc/.cvsignore b/libjava/classpath/doc/.cvsignore new file mode 100644 index 00000000000..1c4ea81e2c8 --- /dev/null +++ b/libjava/classpath/doc/.cvsignore @@ -0,0 +1,13 @@ +Makefile +Makefile.in +*.info +*.aux +*.cp +*.dvi +*.fn +*.ky +*.log +*.pg +*.toc +*.tp +*.vr diff --git a/libjava/classpath/doc/Makefile.in b/libjava/classpath/doc/Makefile.in index 20a87292fea..56bd79eaf56 100644 --- a/libjava/classpath/doc/Makefile.in +++ b/libjava/classpath/doc/Makefile.in @@ -41,12 +41,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -166,6 +168,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -287,7 +291,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ SUBDIRS = api EXTRA_DIST = README.jaxp diff --git a/libjava/classpath/doc/api/.cvsignore b/libjava/classpath/doc/api/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/doc/api/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/doc/api/Makefile.am b/libjava/classpath/doc/api/Makefile.am index 96c586e07f3..b63b31f3444 100644 --- a/libjava/classpath/doc/api/Makefile.am +++ b/libjava/classpath/doc/api/Makefile.am @@ -36,6 +36,7 @@ clean-local: create_html: -$(MKDIR) html > /dev/null 2>&1 +if CREATE_API_DOCS $(GJDOC) \ -use \ -sourcepath "$(sourcepath)" \ @@ -51,3 +52,4 @@ create_html: -header $(classpathbox) -footer $(classpathbox) \ -subpackages java:javax:org touch create_html +endif diff --git a/libjava/classpath/doc/api/Makefile.in b/libjava/classpath/doc/api/Makefile.in index 4ed24cefeb6..231a47a31f9 100644 --- a/libjava/classpath/doc/api/Makefile.in +++ b/libjava/classpath/doc/api/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -159,6 +161,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -280,7 +284,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ @CREATE_API_DOCS_TRUE@noinst_DATA = html sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax @@ -475,21 +478,21 @@ clean-local: create_html: -$(MKDIR) html > /dev/null 2>&1 - $(GJDOC) \ - -use \ - -sourcepath "$(sourcepath)" \ - -encoding UTF-8 \ - -breakiterator \ - -licensetext \ - -linksource \ - -splitindex \ - -validhtml \ - -d html \ - -doctitle "GNU Classpath $(VERSION)" \ - -windowtitle "GNU Classpath $(VERSION) Documentation" \ - -header $(classpathbox) -footer $(classpathbox) \ - -subpackages java:javax:org - touch create_html +@CREATE_API_DOCS_TRUE@ $(GJDOC) \ +@CREATE_API_DOCS_TRUE@ -use \ +@CREATE_API_DOCS_TRUE@ -sourcepath "$(sourcepath)" \ +@CREATE_API_DOCS_TRUE@ -encoding UTF-8 \ +@CREATE_API_DOCS_TRUE@ -breakiterator \ +@CREATE_API_DOCS_TRUE@ -licensetext \ +@CREATE_API_DOCS_TRUE@ -linksource \ +@CREATE_API_DOCS_TRUE@ -splitindex \ +@CREATE_API_DOCS_TRUE@ -validhtml \ +@CREATE_API_DOCS_TRUE@ -d html \ +@CREATE_API_DOCS_TRUE@ -doctitle "GNU Classpath $(VERSION)" \ +@CREATE_API_DOCS_TRUE@ -windowtitle "GNU Classpath $(VERSION) Documentation" \ +@CREATE_API_DOCS_TRUE@ -header $(classpathbox) -footer $(classpathbox) \ +@CREATE_API_DOCS_TRUE@ -subpackages java:javax:org +@CREATE_API_DOCS_TRUE@ touch create_html # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/libjava/classpath/doc/vmintegration.texinfo b/libjava/classpath/doc/vmintegration.texinfo index e7f85d088b5..6d59b5d8fb4 100644 --- a/libjava/classpath/doc/vmintegration.texinfo +++ b/libjava/classpath/doc/vmintegration.texinfo @@ -144,7 +144,7 @@ A simple, small bytecode interpreter that works out-of-the-box with pure GNU Classpath; it is emerging as the preferred platform for quickly testing a new build of GNU Classpath. Licensed under the GPL. -@item @uref{http://oss.software.ibm.com/jikesrvm,Jikes RVM} +@item @uref{http://jikesrvm.sourceforge.net/,Jikes RVM} A free runtime environment for Java, written in Java. Works out-of-the-box with pure GNU Classpath. Features an optimizing JIT. Runs on the x86 and PowerPC architectures, on the AIX, Linux, and Mac @@ -1859,8 +1859,7 @@ Classpath places a few requirements on the VM that uses it. Classpath currently uses only JNI 1.1, except for one JNI 1.2 function in the JNI Invocation API: GetEnv(). And GetEnv() is only used in the -``portable native sync'' code, so it's only actually used by Jikes RVM -and Kaffe. +now deprecated ``portable native sync'' code. A future direction will probably be to require that all VMs provide JNI 1.2. If this poses problems, please raise them on the classpath @@ -1870,42 +1869,95 @@ mailing list. @comment node-name, next, previous, up @section VM Threading Model -Classpath's AWT peers use GTK+. GTK+ uses GLIB. Normally, Classpath -will initialize GLIB's @dfn{gthreads} to use -the platform's native threading model@footnote{The native threading -model is pthreads on Linux and AIX, the two platforms Classpath -currently runs on.} - -If the Java runtime doesn't use the native threading model, then you -will want Classpath to tell GLIB to use the Java threading primitives -instead. Otherwise, GLIB would use the native threading model to -perform operations such as creating thread-local data, and that just -doesn't work on systems (such as Kaffe in some configurations, and -such as Jikes RVM) that use @i{m}:@i{n} threading. - -Historically, enabling the Java threading primitives had been done at -build time, by configuring classpath with the -@option{--portable-native-sync} option. This had bad consequences, -though -- it meant that the prebuild GNU Classpath package distributed -with Debian GNU/Linux would not be usable with VMs that could -otherwise have used it. Instead, we encourage -the use of the Java system property -@code{gnu.classpath.awt.gtk.portable.native.sync}. A VM that wants -GLIB to use the Java threading primitives should modify -@code{VMRuntime.insertSystemProperties()} to include code like the -following: - -@example -static void insertSystemProperties(Properties @var{p}) -@end example -... -@example -@var{p}.put("gnu.classpath.awt.gtk.portable.native.sync", "true"); -@end example - -So, the configure option -@option{--portable-native-sync} is deprecated, and should go away in a -subsequent release of GNU Classpath. +VM authors can implement a number of different threading models. When +native code is also threaded there is the potential for one threading +model to deadlock the other. The +@uref{http://java.sun.com/docs/books/jni/html/other.html#29406,Java +Native Interface Programmer's Guide and Specification} suggests +consulting VM documentation in such situations. Classpath uses +existing libraries, for example the AWT peers can use the GTK+ +graphics library. As these libraries assume a different threading +model, there is the potential for the native code to deadlock a VM. + +The different threading models available to a VM author are: +@enumerate +@item +@i{Native threads}: Map a Java thread to an underlying operating system +thread (normally a POSIX compatible pthread). This approach reduces +the potential for deadlock as there is only one thread scheduling +mechanism. +@item +@i{Green threads 1}: Green threads are threads scheduled by the VM, +typically by switching swapping registers. In early VMs green threads +were seen as advantageous as they didn't require the operating system +to resechedule, save and swap all of a threads registers. The green +thread 1 model switches thread on an externally created event, such as +a timer interrupt. An example of a VM using this approach is Kaffe +configured with its jthreads model. +@item +@i{Green threads 2}: The essential difference with this model is to +not switch threads on an event, but at fixed points in the code being +executed by the VM. Points chosen could be backward branches (loops) +or method calls. This approach can be advantageous to nonconservative +garbage collectors, as non-running threads would be at known points +and can have fixed register maps. It can also reduce the number of +registers it is necessary to swap when switching threads. +@item +@i{M:N threading}: a flaw to green threading is that it is unable to +use multiple processors. @i{M}:@i{N} threading fixes this problem by +running groups of green threads on multiple underlying native +threads. An example of a VM using this approach is the Jikes RVM, +which uses @i{M}:@i{N} threading combined with the green thread 2 +model. +@end enumerate + +An example of the problem of mixing threading models is: +@itemize @bullet +@item +A Java thread calls a native method. The native method aquires a lock. +@item +The native method calls back into the VM. +@item +An event triggers the VM to reschedule the currently running thread. +@item +A new VM thread, executing on the same underlying native thread, calls +a native method. +@item +The native method tries to aquire the lock already aquired earlier. As +the lock is busy the thread waits and allows the operating system to +reschedule native threads. +@item +The operating system reschedules the VM thread again, but the lock is +still busy and in some threading models will remain busy forever +(the VM is deadlocked). +@end itemize + +VMs that don't use the underlying operating system thread scheduling +mechanism need to avoid deadlock. One now deprecated approach was to +build Classpath and VMs on top of a wrapper thread library (aka +portable native sync). The wrapper thread library used was GLIB's +@dfn{gthreads}. This approach has been deprecated because: +@enumerate +@item +The wrapper library is only in use by some native libraries. For +example, GTK+ uses the gthread library but QT does not. +@item +The wrapper library can't be in use prior to the VM starting as the VM +must replace the wrapper libraries functions with its own. This +prevents the VM from running as a plugin in an application that +already uses the wrapper library. +@end enumerate + +An alternative approach is for the VM to detect deadlocked native code +and swap Java threads off of that native thread. The VM can't, +however, swap two blocked native threads that are potentially +deadlocking each other on a lock. The lock will be associated with the +native thread. To prevent this from happening the VM must hijack +functions that operate on locks. This is done by redifining the lock +functions inside the VM and configuring the linker so that it uses the +VMs symbol in preference to that of the external thread support +library. The VM's lock function can then reschedule Java threads if it +must wait for the lock. @node Boot Library Path Property, , VM Threading Model, Miscellaneous VM Requirements @comment node-name, next, previous, up diff --git a/libjava/classpath/examples/.cvsignore b/libjava/classpath/examples/.cvsignore new file mode 100644 index 00000000000..d79d635e81a --- /dev/null +++ b/libjava/classpath/examples/.cvsignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +examples.zip +Makefile.jawt +Makefile.java2d + diff --git a/libjava/classpath/examples/Makefile.am b/libjava/classpath/examples/Makefile.am index 84e3ebe0fc9..6940bdf2599 100644 --- a/libjava/classpath/examples/Makefile.am +++ b/libjava/classpath/examples/Makefile.am @@ -1,23 +1,23 @@ ## Input file for automake to generate the Makefile.in used by configure -GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip' +GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip':'$(top_builddir)/tools/tools.zip' # Setup the compiler to use the GNU Classpath library we just build -if FOUND_GCJ -JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath $(GLIBJ_CLASSPATH) --classpath . -C -else -if FOUND_JIKES -JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(GLIBJ_CLASSPATH):. -else +#if FOUND_GCJ +#JCOMPILER = $(GCJ) --bootclasspath '$(top_builddir)/lib' --classpath . -C +#else +#if FOUND_JIKES +#JCOMPILER = $(JIKES) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:. +#else if FOUND_GCJX JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(GLIBJ_CLASSPATH):. else if FOUND_ECJ -JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . +JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . else error dunno how to setup the JCOMPILER and compile endif -endif -endif +#endif +#endif endif # All our example java source files @@ -36,11 +36,14 @@ BUILT_SOURCES = $(EXAMPLE_ZIP) # the png icons we use in some of the examples. EXAMPLE_ICONS = $(srcdir)/gnu/classpath/examples/icons/*.png +# the html pages we use in the swing demo example. +EXAMPLE_HTML = $(srcdir)/gnu/classpath/examples/swing/*.html + # The example specific README files. READMES = $(srcdir)/gnu/classpath/examples/CORBA/swing/README.html # All the files we find "interesting" -ALL_EXAMPLE_FILES = $(EXAMPLE_JAVA_FILES) $(EXAMPLE_C_FILES) $(EXAMPLE_CH_FILES) $(EXAMPLE_ICONS) $(READMES) +ALL_EXAMPLE_FILES = $(EXAMPLE_JAVA_FILES) $(EXAMPLE_C_FILES) $(EXAMPLE_CH_FILES) $(EXAMPLE_ICONS) $(EXAMPLE_HTML) $(READMES) # Some architecture independent data to be installed. example_DATA = $(EXAMPLE_ZIP) README @@ -100,6 +103,8 @@ dist-hook: $(EXAMPLE_ZIP): $(EXAMPLE_JAVA_FILES) mkdir -p classes/gnu/classpath/examples/icons cp $(EXAMPLE_ICONS) classes/gnu/classpath/examples/icons + mkdir -p classes/gnu/classpath/examples/swing + cp $(EXAMPLE_HTML) classes/gnu/classpath/examples/swing $(JCOMPILER) -d classes $(EXAMPLE_JAVA_FILES) (cd classes; \ if test "$(ZIP)" != ""; then $(ZIP) -r ../$(EXAMPLE_ZIP) .; fi; \ diff --git a/libjava/classpath/examples/Makefile.in b/libjava/classpath/examples/Makefile.in index d40f2018d24..6e929df647e 100644 --- a/libjava/classpath/examples/Makefile.in +++ b/libjava/classpath/examples/Makefile.in @@ -43,12 +43,14 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -168,6 +170,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -289,15 +293,20 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -GLIBJ_CLASSPATH = '$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip' -@FOUND_ECJ_TRUE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . -@FOUND_GCJX_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(GLIBJ_CLASSPATH):. -@FOUND_GCJ_FALSE@@FOUND_JIKES_TRUE@JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(GLIBJ_CLASSPATH):. +GLIBJ_CLASSPATH = '$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip':'$(top_builddir)/tools/tools.zip' +@FOUND_ECJ_TRUE@@FOUND_GCJX_FALSE@JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . # Setup the compiler to use the GNU Classpath library we just build -@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath $(GLIBJ_CLASSPATH) --classpath . -C +#if FOUND_GCJ +#JCOMPILER = $(GCJ) --bootclasspath '$(top_builddir)/lib' --classpath . -C +#else +#if FOUND_JIKES +#JCOMPILER = $(JIKES) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:. +#else +@FOUND_GCJX_TRUE@JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(GLIBJ_CLASSPATH):. +#endif +#endif # All our example java source files EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java @@ -315,11 +324,14 @@ BUILT_SOURCES = $(EXAMPLE_ZIP) # the png icons we use in some of the examples. EXAMPLE_ICONS = $(srcdir)/gnu/classpath/examples/icons/*.png +# the html pages we use in the swing demo example. +EXAMPLE_HTML = $(srcdir)/gnu/classpath/examples/swing/*.html + # The example specific README files. READMES = $(srcdir)/gnu/classpath/examples/CORBA/swing/README.html # All the files we find "interesting" -ALL_EXAMPLE_FILES = $(EXAMPLE_JAVA_FILES) $(EXAMPLE_C_FILES) $(EXAMPLE_CH_FILES) $(EXAMPLE_ICONS) $(READMES) +ALL_EXAMPLE_FILES = $(EXAMPLE_JAVA_FILES) $(EXAMPLE_C_FILES) $(EXAMPLE_CH_FILES) $(EXAMPLE_ICONS) $(EXAMPLE_HTML) $(READMES) # Some architecture independent data to be installed. example_DATA = $(EXAMPLE_ZIP) README @@ -522,7 +534,7 @@ uninstall-am: uninstall-exampleDATA uninstall-info-am uninstall-local uninstall uninstall-am uninstall-exampleDATA uninstall-info-am \ uninstall-local -@FOUND_ECJ_FALSE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@error dunno how to setup the JCOMPILER and compile +@FOUND_ECJ_FALSE@@FOUND_GCJX_FALSE@error dunno how to setup the JCOMPILER and compile # Make sure all sources and icons are also installed so users can use them. # (Be careful to strip off the srcdir part of the path when installing.) @@ -573,6 +585,8 @@ dist-hook: $(EXAMPLE_ZIP): $(EXAMPLE_JAVA_FILES) mkdir -p classes/gnu/classpath/examples/icons cp $(EXAMPLE_ICONS) classes/gnu/classpath/examples/icons + mkdir -p classes/gnu/classpath/examples/swing + cp $(EXAMPLE_HTML) classes/gnu/classpath/examples/swing $(JCOMPILER) -d classes $(EXAMPLE_JAVA_FILES) (cd classes; \ if test "$(ZIP)" != ""; then $(ZIP) -r ../$(EXAMPLE_ZIP) .; fi; \ diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java index fb5ebdbb5dc..38c4ecb987a 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/NamingService/Demo.java @@ -39,7 +39,6 @@ exception statement from your version. */ package gnu.classpath.examples.CORBA.NamingService; import gnu.CORBA.IOR; -import gnu.CORBA.NamingService.NamingServiceTransient; import org.omg.CORBA.ORB; import org.omg.CORBA.Object; @@ -97,7 +96,7 @@ public class Demo { public void run() { - NamingServiceTransient.main(args); + gnu.classpath.tools.tnameserv.Main.main(args); } }.start(); diff --git a/libjava/classpath/examples/gnu/classpath/examples/awt/aicas.png b/libjava/classpath/examples/gnu/classpath/examples/awt/aicas.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf39654b9fee3b0669cdaff063c113d7127b288 GIT binary patch literal 2320 zcwPYz3GeoaP)1^@s652jM300006VoOIv00000 z008+zyMF)x010qNS#tmY3lIPR3lIUVBfWJ1000McNliru)C&R+4H-f^oU;G`2%Skp zK~#90?VK-kqf8gZpZ2UE4qTD*IqHZjl69#Iu8~>Sy5ib1=PW06scT%3iA&rYw@B*1 zHSQZp9k}4$S7e6(AqnJ9v+3q{PS2(gn45=t=iWP+?pZjU{=^@OSd(ed@n{-YpKZ%J zz8%^C0FY`m3IP8?JhUkrb1)&fcwdE274oZzm*!K1)avywDJG zjJ*iCsRy1RI@*M@b0OD>nD@$XI?a|cOG=(Uot+6;#S0h2`vUAl$abqm6-5Dnm2;r$ zd0$RI&elSTI}}Myqx5#w9FxWZE0k974onN;q3Bqn((O5%N#+#$)5;kvn3okcalhW0@xt zAwAcnr&4Eg7RsNrn2fPcHRhOESx4?OtcPwu2XFHSHN4l3B7~Rm4VZ=XXAd03F`W00 z&mMMf97WbXhJ|*i_KgiIq+& zDv|KmR4kx;vhi3%dk(|M%~lXZ5^&p4(AEinm7;EJBfsA4`>-9BxwfqnJT{eN>~EVU z8WzMKz9@ix#eZ{$~Q`J%ID50|3q?Ndo^VOBiFRfoXgeVVMx?F#G;e5z|D|82Xa~7Q`8c z*oBQ|-(L_hf9=o>D3HtAWkvnbb2A32M8xp!3ZdP!Lc3}Gdeos`UaY*wDjYwc`A~Xo zUm+aaU z&TLFS2>nt9080{pU!4YJ!OT-7VJ2#2A)QH(`Muk!XAI1qQ&Ck&7Q{526uLJmmSyPS zy#_B8di+D}%0`ulNoYU+GeILu!P!`jkmgjANE`FyX`R84ue<|sBtCZ!I(ef%AHLVP3K0+>+3+3luu$sq`k3h zhqEgi4NbQ0uNOCsMbj9z!%#QJNs`;DMGV(uL;&zvxXlniDuDpi+r@2dd~7O~*J+@w z6Noh-b1s$Sstegr=b`4a2w{wsb*Q(Zd?+IC9YZ%*^3LV#+D0M^R=1^E?4@D7wy!c- zn}so05Yx(YWd4JieIItaxM#KTZhNi|U8Wj=R?ag1}mqk{j4qPTKXK%IzI`iYEO2D9%|jEvw5^SX zCc_*E$$NM^$?f6jmlu!(Sm#_s-qD0%n25TJIuWhc_SM31{`C0ZVok_&AXRV*IuD;k znfr6PEft0)XF`7mHd@`A>~!F>C?ld+6VSb>0|3q;2v*u7fpT7HXtMR|QO``gY1%r0 z*KI(nxKx(H8s2MGx1}y*OO8rJ{Cd>U)=6O|-_}M$ldaeGRpIzV5-_~ilI6Iwa60`N z1_4cbW*CN$WVv*i!Gf6bLRu6A7}~6zDtmnyJQmS(nW8Ilr8UKEZFKw~>9|xPEfo1@ z;dJ^FaZEEJa*q_MFMj^5EYy+tFh5a_a{!r;&S&uxuVZCA5hgRc-}kAyE|%{X6By0|Ar_E;rnl3jDepYjRyGsT>}7!;stbFL%Y>V z9*SXHXLgmCcXx@1zW)aE?r!7Hn_aZXi?}1te0_a|B+FJ91k`oCa-fG)>r= zhGD-?6@?_{_*lb!pKh|}DJ$e2L~w=P}ekz|1iejIAZ|7?d|^y?+}!MC!>itCT6XW58rRpf(a_<#9vY3t#+m!9@IT_*Q&^|*T$e62I*zI5d8pUx q`|tPpSX-1nz%n6!4{%zvD9?XV@Fdd($%x!UVbq}!?l_ZxrFjquWch*GI2{o03Ffy65RCZO%^%qZUZJ%D% zIBV9Nu&J!`vqToHPL-Q9xozqSc7`?EQj8tu&EL9xU#ZxnrOQ|B-M>xyP+P~*XJ=N6sGDFWPkD;*+D-&cC?+XxZkRyC-B`e!Bhi<+lSr zCVbiWc>Bq_3w&m0@GPFL6)Rn@Ae467l>3o$0Y@Qc$_-y8`HpUlRhm6p`){|Hvi|uy zxiDSfaKA+LiP_(UmY&iSinwWSlmN5*dKisvHG$0t%M}*O2xu&xqf1LF*~--_Gyk+G5opf km-K-Ljt5b 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 km-K-Ljt5 + + + + + + + + + + + + + + + + + + diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java index 19bc27c1de8..3c7f0b887ef 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java @@ -28,7 +28,6 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; -import javax.swing.tree.*; import javax.swing.plaf.basic.BasicLookAndFeel; import javax.swing.plaf.metal.DefaultMetalTheme; @@ -67,7 +66,7 @@ public class Demo return getIcon("/gnu/classpath/examples/icons/big-" + s + ".png", s); } - private static Icon getIcon(String location, String name) + static Icon getIcon(String location, String name) { URL url = Demo.class.getResource(location); if (url == null) System.err.println("WARNING " + location + " not found."); @@ -161,6 +160,8 @@ public class Demo NavigationFilterDemo.createDemoFactory()))); examples.add(new JMenuItem(new PopupAction("JNI Overhead", JNIOverhead.createDemoFactory()))); + examples.add(new JMenuItem(new PopupAction("HTML Demo", + HtmlDemo.createDemoFactory()))); final JMenuItem vmMenu; @@ -294,21 +295,6 @@ public class Demo return bar; } - private static String valign2str(int a) - { - switch (a) - { - case SwingConstants.CENTER: - return "Center"; - case SwingConstants.TOP: - return "Top"; - case SwingConstants.BOTTOM: - return "Bottom"; - default: - return "Unknown"; - } - } - static String halign2str(int a) { switch (a) @@ -354,17 +340,6 @@ public class Demo return mkButton(null, i, -1, -1, -1, -1); } - - private static JScrollPane mkScrollPane(JComponent inner) - { - JScrollPane jsp; - jsp = new JScrollPane(inner, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - - return jsp; - } - public Demo() { frame = new JFrame("Swing Activity Board"); @@ -376,10 +351,7 @@ public class Demo JPanel main = new JPanel(); main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS)); desktop = createDesktop(); - - // Put the desktop in a scrollpane. The scrollbars may show then - // up when the them or LaF is changed. - main.add(new JScrollPane(desktop)); + main.add(desktop); main.add(mkButtonBar()); component.add(main, BorderLayout.CENTER); frame.pack(); @@ -391,7 +363,7 @@ public class Demo { public void run() { - Demo demo = new Demo(); + new Demo(); } } @@ -407,16 +379,6 @@ public class Demo return b; } - private static JPanel mkPanel(JComponent[] inners) - { - JPanel p = new JPanel(); - for (int i = 0; i < inners.length; ++i) - { - p.add(inners[i]); - } - return p; - } - static JButton mkDisposerButton(final JFrame c) { JButton close = mkBigButton("Close"); @@ -479,52 +441,6 @@ public class Demo } } - /** - * Create the tree. - * - * @return thr scroll pane, containing the tree. - */ - private static JComponent mkTree() - { - DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root node"); - - addChildren("Node", root, 12); - - JTree tree = new JTree(root); - tree.setLargeModel(true); - DefaultTreeSelectionModel dtsm = new DefaultTreeSelectionModel(); - dtsm.setSelectionMode(DefaultTreeSelectionModel.SINGLE_TREE_SELECTION); - tree.setSelectionModel(dtsm); - - // Make it editable. - tree.setEditable(true); - - JComponent t = mkScrollPane(tree); - t.setPreferredSize(new Dimension(200,200)); - return t; - } - - /** - * Add the specified number of children to this parent node. For each - * child, the method is called recursively adding the nChildren-3 number of - * grandchildren. - * - * @param parent the parent node - * @param nChildren the number of children - */ - private static void addChildren(String name, DefaultMutableTreeNode parent, - int nChildren) - { - for (int i = 0; i < nChildren; i++) - { - String child_name = parent+"."+i; - DefaultMutableTreeNode child = new DefaultMutableTreeNode - (child_name); - parent.add(child); - addChildren(child_name, child, nChildren-3); - } - } - private JPanel mkButtonBar() { JPanel panel = new JPanel(new GridLayout(3, 1, 5, 5)); @@ -558,6 +474,8 @@ public class Demo MetalThemeEditor.createDemoFactory()))); panel.add(new JButton(new PopupAction("JNI Overhead", JNIOverhead.createDemoFactory()))); + panel.add(new JButton(new PopupAction("HTML", + HtmlDemo.createDemoFactory()))); JButton exitDisposer = mkDisposerButton(frame); panel.add(exitDisposer); diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java index 223ee07cd4a..1a24ae2760e 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/HtmlDemo.java @@ -40,20 +40,31 @@ package gnu.classpath.examples.swing; import java.awt.BorderLayout; import java.awt.Dimension; -import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; +import java.util.LinkedList; +import javax.swing.BoxLayout; +import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JComponent; +import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JTextArea; +import javax.swing.JTextField; import javax.swing.JTextPane; +import javax.swing.JToolBar; import javax.swing.SwingUtilities; -import javax.swing.text.Element; -import javax.swing.text.html.HTMLDocument; +import javax.swing.event.HyperlinkEvent; +import javax.swing.event.HyperlinkListener; +import javax.swing.text.html.FormSubmitEvent; /** * Parses and displays HTML content. @@ -62,28 +73,54 @@ import javax.swing.text.html.HTMLDocument; */ public class HtmlDemo extends JPanel { - - JTextPane html = new JTextPane(); - JTextArea text = new JTextArea("" + - "123456789HR!
987654321"+ - "123456789BR!
987654321"+ - "

Insertion target

"+ - "ma"+ - "supnormalsubnormal

Table:"+ - "ax
bc
yz
"); - - JPanel buttons; + private class LoadActionListener + implements ActionListener + { + + public void actionPerformed(ActionEvent event) + { + String urlStr = url.getText(); + try + { + setPage(new URL(url.getText())); + } + catch (MalformedURLException ex) + { + // Do something more useful here. + ex.printStackTrace(); + } + } + } + + /** + * Setting this to true causes the parsed element structure to be dumped. + */ + private static final boolean DEBUG = true; + + /** + * The URL entry field. + */ + JTextField url = new JTextField(); + + JTextPane html = new JTextPane(); int n; + /** + * The browsing history. + * + * Package private to avoid accessor method. + */ + LinkedList history; + public HtmlDemo() { super(); - html.setContentType("text/html"); // not now. + history = new LinkedList(); createContent(); } - + /** * Returns a panel with the demo content. The panel uses a BorderLayout(), and * the BorderLayout.SOUTH area is empty, to allow callers to add controls to @@ -93,158 +130,128 @@ public class HtmlDemo extends JPanel private void createContent() { setLayout(new BorderLayout()); - - JPanel center = new JPanel(); - GridLayout layout = new GridLayout(); - layout.setRows(2); - center.setLayout(layout); - center.add(new JScrollPane(text)); - center.add(new JScrollPane(html)); - - buttons = new JPanel(); - - JButton parse = new JButton("parse"); - parse.addActionListener(new ActionListener() + + JEditorPane.registerEditorKitForContentType("text/html", + BrowserEditorKit.class.getName()); + html.setEditable(false); + html.addHyperlinkListener(new HyperlinkListener() + { + + public void hyperlinkUpdate(HyperlinkEvent event) { - public void actionPerformed(ActionEvent event) + if (event instanceof FormSubmitEvent) { - String t = text.getText(); - System.out.println("HtmlDemo.java.createContent:Parsing started"); - html.setText(t); - System.out.println("HtmlDemo.java.createContent:Parsing completed"); + submitForm((FormSubmitEvent) event); } - }); - - buttons.add(parse); - - JButton insertBeforeEnd = new JButton("before end"); - insertBeforeEnd.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent event) + else { - HTMLDocument doc = (HTMLDocument) html.getDocument(); - Element el = doc.getElement("insertHere"); - System.out.println("Element found:"+el); - try - { - doc.insertBeforeEnd(el,"before end "+(n++)); - } - catch (Exception e) + URL u = event.getURL(); + if (u != null) { - e.printStackTrace(); + setPage(u); } } - }); - - JButton insertBeforeStart = new JButton("before start"); - insertBeforeStart.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent event) - { - HTMLDocument doc = (HTMLDocument) html.getDocument(); - Element el = doc.getElement("insertHere"); - System.out.println("Element found:"+el); - try - { - doc.insertBeforeStart(el,"before start "+(n++)); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - }); - - JButton insertAfterEnd = new JButton("after end"); - insertAfterEnd.addActionListener(new ActionListener() + } + + }); + + JScrollPane scroller = new JScrollPane(html); + JPanel urlPanel = new JPanel(); + urlPanel.setLayout(new BoxLayout(urlPanel, BoxLayout.X_AXIS)); + url.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); + LoadActionListener action = new LoadActionListener(); + url.addActionListener(action); + urlPanel.add(url); + JButton loadButton = new JButton("go"); + urlPanel.add(loadButton); + loadButton.addActionListener(action); + + // Setup control panel. + JToolBar controlPanel = createToolBar(); + JPanel browserPanel = new JPanel(); + browserPanel.setLayout(new BorderLayout()); + browserPanel.add(urlPanel, BorderLayout.NORTH); + browserPanel.add(scroller, BorderLayout.CENTER); + add(controlPanel, BorderLayout.NORTH); + add(browserPanel, BorderLayout.CENTER); + + // Load start page. + try { - public void actionPerformed(ActionEvent event) - { - HTMLDocument doc = (HTMLDocument) html.getDocument(); - Element el = doc.getElement("insertHere"); - System.out.println("Element found:"+el); - try - { - doc.insertAfterEnd(el,"after end "+(n++)); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - }); - - JButton insertAfterStart = new JButton("after start"); - insertAfterStart.addActionListener(new ActionListener() + URL startpage = getClass().getResource("welcome.html"); + html.setPage(startpage); + url.setText(startpage.toString()); + history.addLast(startpage); + } + catch (Exception ex) { - public void actionPerformed(ActionEvent event) - { - HTMLDocument doc = (HTMLDocument) html.getDocument(); - Element el = doc.getElement("insertHere"); - System.out.println("Element found:"+el); - try - { - doc.insertAfterStart(el,"after start "+(n++)); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - }); - + System.err.println("couldn't load page: "/* + startpage*/); + ex.printStackTrace(); + } + setPreferredSize(new Dimension(800, 600)); + } + - JButton setInner = new JButton("inner"); - setInner.addActionListener(new ActionListener() + /** + * Creates the toolbar with the control buttons. + * + * @return the toolbar with the control buttons + */ + JToolBar createToolBar() + { + JToolBar tb = new JToolBar(); + Icon backIcon = Demo.getIcon("/gnu/classpath/examples/icons/back.png", + "back"); + JButton back = new JButton(backIcon); + back.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent ev) { - public void actionPerformed(ActionEvent event) + if (history.size() > 1) { - HTMLDocument doc = (HTMLDocument) html.getDocument(); - Element el = doc.getElement("insertHere"); - System.out.println("Element found:"+el); + URL last = (URL) history.removeLast(); + last = (URL) history.getLast(); + url.setText(last.toString()); try { - doc.setInnerHTML(el,"inner "+(n++)); + html.setPage(last); } - catch (Exception e) + catch (IOException ex) { - e.printStackTrace(); + // Do something more useful. + ex.printStackTrace(); } } - }); - - JButton setOuter = new JButton("outer"); - setOuter.addActionListener(new ActionListener() + } + }); + tb.add(back); + Icon reloadIcon = Demo.getIcon("/gnu/classpath/examples/icons/reload.png", + "reload"); + JButton reload = new JButton(reloadIcon); + reload.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent ev) { - public void actionPerformed(ActionEvent event) + if (history.size() > 0) { - HTMLDocument doc = (HTMLDocument) html.getDocument(); - Element el = doc.getElement("insertHere"); - System.out.println("Element found:"+el); + URL last = (URL) history.getLast(); + url.setText(last.toString()); try { - doc.setOuterHTML(el,"outer "+(n++)); + html.setPage(last); } - catch (Exception e) + catch (IOException ex) { - e.printStackTrace(); + // Do something more useful. + ex.printStackTrace(); } } - }); - - - buttons.add(insertBeforeStart); - buttons.add(insertAfterStart); - buttons.add(insertBeforeEnd); - buttons.add(insertAfterEnd); - - buttons.add(setInner); - buttons.add(setOuter); - - add(center, BorderLayout.CENTER); - add(buttons, BorderLayout.SOUTH); + } + }); + tb.add(reload); + return tb; } - + /** * The executable method to display the editable table. * @@ -259,27 +266,102 @@ public class HtmlDemo extends JPanel public void run() { HtmlDemo demo = new HtmlDemo(); - - JButton exit = new JButton("exit"); - exit.addActionListener(new ActionListener() - { - public void actionPerformed(ActionEvent event) - { - System.exit(0); - } - }); - - demo.buttons.add(exit); - JFrame frame = new JFrame(); frame.getContentPane().add(demo); - frame.setSize(new Dimension(700, 480)); + frame.setSize(new Dimension(750, 480)); frame.setVisible(true); } }); } /** + * Helper method to navigate to a new URL. + * + * @param u the new URL to navigate to + */ + void setPage(URL u) + { + try + { + url.setText(u.toString()); + html.setPage(u); + history.addLast(u); + } + catch (IOException ex) + { + // Do something more useful here. + ex.printStackTrace(); + } + } + + /** + * Submits a form when a FormSubmitEvent is received. The HTML API + * provides automatic form submit but when this is enabled we don't + * receive any notification and can't update our location field. + * + * @param ev the form submit event + */ + void submitForm(FormSubmitEvent ev) + { + URL url = ev.getURL(); + String data = ev.getData(); + FormSubmitEvent.MethodType method = ev.getMethod(); + if (method == FormSubmitEvent.MethodType.POST) + { + try + { + URLConnection conn = url.openConnection(); + postData(conn, data); + } + catch (IOException ex) + { + // Deal with this. + ex.printStackTrace(); + } + } + else + { + try + { + url = new URL(url.toString() + "?" + data); + } + catch (MalformedURLException ex) + { + ex.printStackTrace(); + } + } + setPage(url); + } + + /** + * Posts the form data for forms with HTTP POST method. + * + * @param conn the connection + * @param data the form data + */ + private void postData(URLConnection conn, String data) + { + conn.setDoOutput(true); + PrintWriter out = null; + try + { + out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream())); + out.print(data); + out.flush(); + } + catch (IOException ex) + { + // Deal with this! + ex.printStackTrace(); + } + finally + { + if (out != null) + out.close(); + } + } + + /** * Returns a DemoFactory that creates a HtmlDemo. * * @return a DemoFactory that creates a HtmlDemo diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java index 527fe455e4b..bd0e6bf15b6 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/TabbedPaneDemo.java @@ -39,15 +39,24 @@ exception statement from your version. */ package gnu.classpath.examples.swing; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuItem; import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JScrollPane; import javax.swing.JTabbedPane; +import javax.swing.JTextArea; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; @@ -55,6 +64,10 @@ public class TabbedPaneDemo extends JPanel implements ActionListener { + static Color[] colors = { Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, + Color.MAGENTA, Color.ORANGE, Color.PINK, + Color.ORANGE, Color.RED, Color.BLUE, Color.YELLOW + }; TabbedPaneDemo() { super(); @@ -64,25 +77,123 @@ public class TabbedPaneDemo private void createContent() { JPanel p = new JPanel(); - p.setLayout(new GridLayout(2, 2)); - JTabbedPane tabs1 = new JTabbedPane(SwingConstants.TOP); - tabs1.add("Top Item 1", new JButton("Content: Top Item 1")); - tabs1.add("Top Item 2", new JButton("Content: Top Item 2")); - JTabbedPane tabs2 = new JTabbedPane(SwingConstants.LEFT); - tabs2.add("Left Item 1", new JButton("Content: Left Item 1")); - tabs2.add("Left Item 2", new JButton("Content: Left Item 2")); - JTabbedPane tabs3 = new JTabbedPane(SwingConstants.BOTTOM); - tabs3.add("Bottom Item 1", new JButton("Content: Bottom Item 1")); - tabs3.add("Bottom Item 2", new JButton("Content: Bottom Item 2")); - JTabbedPane tabs4 = new JTabbedPane(SwingConstants.RIGHT); - tabs4.add("Right Item 1", new JButton("Content: Right Item 1")); - tabs4.add("Right Item 2", new JButton("Content: Right Item 2")); - p.add(tabs1); - p.add(tabs2); - p.add(tabs3); - p.add(tabs4); + p.setLayout(new GridLayout(1, 1)); + + int COUNT = 25; + JTabbedPane tp = createTabbedPane(SwingConstants.TOP, "tab", COUNT); + p.add(tp); + + final JPopupMenu popup = new JPopupMenu(); + + JMenu menu = new JMenu("tab placement"); + menu.add(createPlacementChangingMenuItem("top", + SwingConstants.TOP, + tp)); + + menu.add(createPlacementChangingMenuItem("bottom", + SwingConstants.BOTTOM, + tp)); + + menu.add(createPlacementChangingMenuItem("left", + SwingConstants.LEFT, + tp)); + + menu.add(createPlacementChangingMenuItem("right", + SwingConstants.RIGHT, + tp)); + popup.add(menu); + + menu = new JMenu("tab layout"); + menu.add(createLayoutPolicyChangingMenuItem("wrapping tabs", + JTabbedPane.WRAP_TAB_LAYOUT, + tp)); + + menu.add(createLayoutPolicyChangingMenuItem("scrolling tabs", + JTabbedPane.SCROLL_TAB_LAYOUT, + tp)); + popup.add(menu); + + tp.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent e) { + showPopup(e); + } + + public void mouseReleased(MouseEvent e) { + showPopup(e); + } + + void showPopup(MouseEvent e) { + if (e.isPopupTrigger()) { + popup.show(e.getComponent(), e.getX(), e.getY()); + } + } + }); + setLayout(new BorderLayout()); add(p, BorderLayout.CENTER); + + } + + private JMenuItem createPlacementChangingMenuItem(String t, + final int v, + final JTabbedPane dst) + { + JMenuItem item = new JMenuItem(t); + + item.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent ae) + { + dst.setTabPlacement(v); + } + }); + + return item; + } + + private JMenuItem createLayoutPolicyChangingMenuItem(String t, + final int v, + final JTabbedPane dst) + { + JMenuItem item = new JMenuItem(t); + + item.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent ae) + { + dst.setTabLayoutPolicy(v); + } + }); + + return item; + } + + private JTabbedPane createTabbedPane(int direction, String name, int count) + { + JTabbedPane pane = new JTabbedPane(direction); + + for(int i = 0; i< count; i++) + { + pane.addTab(name + " " + i, createTabContent(name + " " + i)); + if (Math.random() >= 0.75) + pane.setEnabledAt(i, false); + } + + return pane; + } + + private JPanel createTabContent(String name) + { + JTextArea ta; + JPanel panel = new JPanel(); + panel.add(new JLabel(name)); + panel.add(new JButton(name)); + panel.add(new JScrollPane(ta = new JTextArea(5, 5))); + + ta.setBackground(colors[(int) (Math.random() * colors.length)]); + + return panel; } public void actionPerformed(ActionEvent e) diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java index 32f765f73bb..8da37507152 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/TreeDemo.java @@ -39,17 +39,17 @@ exception statement from your version. */ package gnu.classpath.examples.swing; import java.awt.BorderLayout; -import java.awt.JobAttributes.DefaultSelectionType; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.DebugGraphics; +import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.SwingUtilities; @@ -59,7 +59,6 @@ import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.DefaultTreeSelectionModel; import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; public class TreeDemo extends JPanel @@ -222,11 +221,39 @@ public class TreeDemo p2.add(add); p2.add(cbSingle); p2.add(cbRoot); - + tree.getSelectionModel(). setSelectionMode(DefaultTreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); + // Panel for selecting line style. + ActionListener l = new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + JRadioButton b = (JRadioButton) e.getSource(); + tree.putClientProperty("JTree.lineStyle", b.getText()); + tree.repaint(); + } + }; + JPanel lineStylePanel = new JPanel(); + ButtonGroup buttons = new ButtonGroup(); + lineStylePanel.add(new JLabel("Line style: ")); + JRadioButton none = new JRadioButton("None"); + lineStylePanel.add(none); + buttons.add(none); + none.addActionListener(l); + JRadioButton angled = new JRadioButton("Angled"); + lineStylePanel.add(angled); + buttons.add(angled); + angled.addActionListener(l); + JRadioButton horizontal = new JRadioButton("Horizontal"); + lineStylePanel.add(horizontal); + buttons.add(horizontal); + horizontal.addActionListener(l); + p2.add(lineStylePanel); + add(p2, BorderLayout.NORTH); + add(new JScrollPane(tree), BorderLayout.CENTER); add(choice, BorderLayout.SOUTH); } diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/forms.html b/libjava/classpath/examples/gnu/classpath/examples/swing/forms.html new file mode 100644 index 00000000000..010a94c9360 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/forms.html @@ -0,0 +1,98 @@ + + + + + + HTML text styles + + +

+ Back to start page +

Some form elements

+

Textarea

+ + +

Input fields

+

+ + +

+ +

Buttons

+

+ + + +

+ +

Checkboxes and Radiobuttons

+

+ Check this! + Or this +

+

+ A radio button + Another radio +

+

Select lists and combo boxes

+

+ +

+

+ +

+
+ + \ No newline at end of file diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame1.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame1.html new file mode 100644 index 00000000000..b9150592fa7 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/frame1.html @@ -0,0 +1,41 @@ + + + +

Top Left Frame

+ + diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame2.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame2.html new file mode 100644 index 00000000000..9dbf33c5a0b --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/frame2.html @@ -0,0 +1,42 @@ + + + +

Top Right + Frame

+ + diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame3.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame3.html new file mode 100644 index 00000000000..e677bd6a100 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/frame3.html @@ -0,0 +1,42 @@ + + + +

Bottom Left Frame

+ + + diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frame4.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frame4.html new file mode 100644 index 00000000000..1da53b1017b --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/frame4.html @@ -0,0 +1,41 @@ + + + +

Bottom Left Frame

+ + diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/frames.html b/libjava/classpath/examples/gnu/classpath/examples/swing/frames.html new file mode 100644 index 00000000000..e7e2bf87c95 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/frames.html @@ -0,0 +1,44 @@ + + + + + + + + + \ No newline at end of file diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/tables.html b/libjava/classpath/examples/gnu/classpath/examples/swing/tables.html new file mode 100644 index 00000000000..af908e1ab23 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/tables.html @@ -0,0 +1,66 @@ + + + + + + HTML text styles + + +

Table examples

+

Table with grid and mixed rowspan/colspan

+ + + + + + + + + + + + + + + + + + + +
Spans two columnsSpans three rows
Spans two rowsThis is the center
This should be in the middle of row number 3
A small one cell boxSpans two x two cells
Another small one cell box
+ diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/textstyles.html b/libjava/classpath/examples/gnu/classpath/examples/swing/textstyles.html new file mode 100644 index 00000000000..786e18b77b8 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/textstyles.html @@ -0,0 +1,78 @@ + + + + + + HTML text styles + + + Back to start page +

Colors

+

The following are the 16 named colors in HTML. Of course you can also + use all RGB colors by specifying a value in the #RRGGBB + notation.

+

+ Black, Gray, + Maroon, Red, + Green, Lime, + Olive, Yellow, + Navy, Blue, + Purple, Fuchsia, + Teal, Aqua, + Silver, White

+

Font styles

+

The following lists the logical and physical font styles that can be set + by certain HTML tags

+

+ +

Address
, Bold, Big, + Citation, Code, Deleted, + Emphasized, Italic, Inserted, Quote, + Stroke-Through, Example, Small, + Strike, Strong, Subscript, + Superscript, Underlined, Variable +

+

Header Level 1

+

Header Level 2

+

Header Level 3

+

Header Level 4

+
Header Level 5
+
Header Level 6
+
Some centered Text
+ + \ No newline at end of file diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/welcome.html b/libjava/classpath/examples/gnu/classpath/examples/swing/welcome.html new file mode 100644 index 00000000000..8bc987494c1 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/welcome.html @@ -0,0 +1,63 @@ + + + + + GNU Classpath HTML Browser + + + +

Welcome to GNU Classpath

+

A couple of websites that you might want to try out

+ + +

Testpages

+

These few pages are here to demonstrate and test the HTML rendering + capabilities of GNU Classpath's Swing.

+ + + \ No newline at end of file diff --git a/libjava/classpath/external/.cvsignore b/libjava/classpath/external/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/external/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/external/Makefile.am b/libjava/classpath/external/Makefile.am index 7f62733739e..2eeef805ad3 100644 --- a/libjava/classpath/external/Makefile.am +++ b/libjava/classpath/external/Makefile.am @@ -1,5 +1,5 @@ ## Input file for automake to generate the Makefile.in used by configure -SUBDIRS = sax w3c_dom relaxngDatatype +SUBDIRS = sax w3c_dom relaxngDatatype jsr166 EXTRA_DIST = README diff --git a/libjava/classpath/external/Makefile.in b/libjava/classpath/external/Makefile.in index ffc37bb6f1f..4cf0f43bc8f 100644 --- a/libjava/classpath/external/Makefile.in +++ b/libjava/classpath/external/Makefile.in @@ -41,12 +41,14 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -166,6 +168,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -287,9 +291,8 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -SUBDIRS = sax w3c_dom relaxngDatatype +SUBDIRS = sax w3c_dom relaxngDatatype jsr166 EXTRA_DIST = README all: all-recursive diff --git a/libjava/classpath/external/jsr166/.cvsignore b/libjava/classpath/external/jsr166/.cvsignore new file mode 100644 index 00000000000..70845e08eb0 --- /dev/null +++ b/libjava/classpath/external/jsr166/.cvsignore @@ -0,0 +1 @@ +Makefile.in diff --git a/libjava/classpath/external/jsr166/IMPORTING b/libjava/classpath/external/jsr166/IMPORTING new file mode 100644 index 00000000000..30bf3f47450 --- /dev/null +++ b/libjava/classpath/external/jsr166/IMPORTING @@ -0,0 +1,31 @@ +The code in this directory comes from the JSR 166 +reference implementation. The RI consists of a public +domain part and a part that is copyright Sun. We remove +the copyrighted code prior to import so as not to taint +our source repository. + +To do a new import: + +* Download the RI from the source repository. + http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java + I clicked on the "download tarball" link. + +* Unpack the tarball in a fresh directory. + mkdir tmp; cd tmp; tar zxvvf .../java.tar.gz + +* Clean up the results. + .../classpath/scripts/sanitize-jsr166 + +* Import these using 'cvs import' into the appropriate subdirectory. + The vendor branch name is 'JSR166'. + +* Merge the vendor branch onto the branch you're using (currently + the generics branch, but eventually it will be the trunk). + +* Build the result. + +* When it works, check it in. + +In general we try to avoid divergence from upstream as much +as possible. You may need to write new classes or methods in +order for the build to succeed. diff --git a/libjava/classpath/external/jsr166/Makefile.am b/libjava/classpath/external/jsr166/Makefile.am new file mode 100644 index 00000000000..fa2db2ebfd3 --- /dev/null +++ b/libjava/classpath/external/jsr166/Makefile.am @@ -0,0 +1,74 @@ +## Input file for automake to generate the Makefile.in used by configure + +EXTRA_DIST = IMPORTING \ +readme \ +java/util/AbstractQueue.java \ +java/util/concurrent/ScheduledThreadPoolExecutor.java \ +java/util/concurrent/ExecutorCompletionService.java \ +java/util/concurrent/LinkedBlockingQueue.java \ +java/util/concurrent/BlockingDeque.java \ +java/util/concurrent/Delayed.java \ +java/util/concurrent/ThreadFactory.java \ +java/util/concurrent/ArrayBlockingQueue.java \ +java/util/concurrent/RunnableFuture.java \ +java/util/concurrent/LinkedBlockingDeque.java \ +java/util/concurrent/CopyOnWriteArraySet.java \ +java/util/concurrent/DelayQueue.java \ +java/util/concurrent/SynchronousQueue.java \ +java/util/concurrent/Executor.java \ +java/util/concurrent/ExecutionException.java \ +java/util/concurrent/Semaphore.java \ +java/util/concurrent/BrokenBarrierException.java \ +java/util/concurrent/CompletionService.java \ +java/util/concurrent/CyclicBarrier.java \ +java/util/concurrent/AbstractExecutorService.java \ +java/util/concurrent/TimeoutException.java \ +java/util/concurrent/ConcurrentMap.java \ +java/util/concurrent/PriorityBlockingQueue.java \ +java/util/concurrent/CancellationException.java \ +java/util/concurrent/ConcurrentSkipListSet.java \ +java/util/concurrent/ConcurrentLinkedQueue.java \ +java/util/concurrent/RejectedExecutionHandler.java \ +java/util/concurrent/TimeUnit.java \ +java/util/concurrent/RejectedExecutionException.java \ +java/util/concurrent/ExecutorService.java \ +java/util/concurrent/ConcurrentHashMap.java \ +java/util/concurrent/ScheduledExecutorService.java \ +java/util/concurrent/ThreadPoolExecutor.java \ +java/util/concurrent/BlockingQueue.java \ +java/util/concurrent/ConcurrentSkipListMap.java \ +java/util/concurrent/ConcurrentNavigableMap.java \ +java/util/concurrent/Future.java \ +java/util/concurrent/FutureTask.java \ +java/util/concurrent/CountDownLatch.java \ +java/util/concurrent/RunnableScheduledFuture.java \ +java/util/concurrent/Callable.java \ +java/util/concurrent/locks/ReentrantLock.java \ +java/util/concurrent/locks/Lock.java \ +java/util/concurrent/locks/Condition.java \ +java/util/concurrent/locks/AbstractQueuedSynchronizer.java \ +java/util/concurrent/locks/AbstractOwnableSynchronizer.java \ +java/util/concurrent/locks/LockSupport.java \ +java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \ +java/util/concurrent/locks/ReadWriteLock.java \ +java/util/concurrent/locks/ReentrantReadWriteLock.java \ +java/util/concurrent/Executors.java \ +java/util/concurrent/atomic/AtomicLongFieldUpdater.java \ +java/util/concurrent/atomic/AtomicLongArray.java \ +java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java \ +java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java \ +java/util/concurrent/atomic/AtomicBoolean.java \ +java/util/concurrent/atomic/AtomicReferenceArray.java \ +java/util/concurrent/atomic/AtomicStampedReference.java \ +java/util/concurrent/atomic/AtomicIntegerArray.java \ +java/util/concurrent/atomic/AtomicMarkableReference.java \ +java/util/concurrent/atomic/AtomicReference.java \ +java/util/concurrent/atomic/AtomicInteger.java \ +java/util/concurrent/atomic/AtomicLong.java \ +java/util/concurrent/ScheduledFuture.java \ +java/util/concurrent/Exchanger.java \ +java/util/Deque.java \ +java/util/NavigableMap.java \ +java/util/Queue.java \ +java/util/NavigableSet.java \ +java/util/ArrayDeque.java diff --git a/libjava/classpath/external/jsr166/Makefile.in b/libjava/classpath/external/jsr166/Makefile.in new file mode 100644 index 00000000000..ccfca8788e5 --- /dev/null +++ b/libjava/classpath/external/jsr166/Makefile.in @@ -0,0 +1,522 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = external/jsr166 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ + $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ + $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ + $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ + $(top_srcdir)/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/include/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@ +BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ +CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ +CLASSPATH_MODULE = @CLASSPATH_MODULE@ +COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ +CP = @CP@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@ +CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@ +CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@ +CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@ +CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@ +CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@ +CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@ +CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@ +CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@ +CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@ +CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@ +CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@ +CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@ +CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@ +CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@ +CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@ +CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@ +CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@ +CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@ +CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@ +CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@ +CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@ +CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@ +CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@ +CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@ +CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ +DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +ECJ = @ECJ@ +EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +EXAMPLESDIR = @EXAMPLESDIR@ +EXEEXT = @EXEEXT@ +FASTJAR = @FASTJAR@ +FIND = @FIND@ +FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@ +FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@ +FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ +FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ +FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@ +FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@ +FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ +FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ +FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ +FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ +FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ +FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GCJ = @GCJ@ +GCJX = @GCJX@ +GCONF_CFLAGS = @GCONF_CFLAGS@ +GCONF_LIBS = @GCONF_LIBS@ +GDK_CFLAGS = @GDK_CFLAGS@ +GDK_LIBS = @GDK_LIBS@ +GJDOC = @GJDOC@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@ +INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@ +INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@ +INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ +JAY = @JAY@ +JAY_SKELETON = @JAY_SKELETON@ +JIKES = @JIKES@ +JIKESENCODING = @JIKESENCODING@ +JIKESWARNINGS = @JIKESWARNINGS@ +KJC = @KJC@ +LDFLAGS = @LDFLAGS@ +LIBDEBUG = @LIBDEBUG@ +LIBICONV = @LIBICONV@ +LIBMAGIC = @LIBMAGIC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVERSION = @LIBVERSION@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MKDIR = @MKDIR@ +MOC = @MOC@ +MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ +MOZILLA_LIBS = @MOZILLA_LIBS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ +PANGOFT2_LIBS = @PANGOFT2_LIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_ESCHER = @PATH_TO_ESCHER@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGIN_DIR = @PLUGIN_DIR@ +QT_CFLAGS = @QT_CFLAGS@ +QT_LIBS = @QT_LIBS@ +RANLIB = @RANLIB@ +REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@ +REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@ +REMOVE = @REMOVE@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ +STRIP = @STRIP@ +USER_CLASSLIB = @USER_CLASSLIB@ +USER_JAVAH = @USER_JAVAH@ +USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ +USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ +USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ +USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ +USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ +VERSION = @VERSION@ +VM_BINARY = @VM_BINARY@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +XML_CFLAGS = @XML_CFLAGS@ +XML_LIBS = @XML_LIBS@ +XSLT_CFLAGS = @XSLT_CFLAGS@ +XSLT_LIBS = @XSLT_LIBS@ +XTEST_LIBS = @XTEST_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZIP = @ZIP@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +default_toolkit = @default_toolkit@ +exec_prefix = @exec_prefix@ +glibjdir = @glibjdir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +nativeexeclibdir = @nativeexeclibdir@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +vm_classes = @vm_classes@ +EXTRA_DIST = IMPORTING \ +readme \ +java/util/AbstractQueue.java \ +java/util/concurrent/ScheduledThreadPoolExecutor.java \ +java/util/concurrent/ExecutorCompletionService.java \ +java/util/concurrent/LinkedBlockingQueue.java \ +java/util/concurrent/BlockingDeque.java \ +java/util/concurrent/Delayed.java \ +java/util/concurrent/ThreadFactory.java \ +java/util/concurrent/ArrayBlockingQueue.java \ +java/util/concurrent/RunnableFuture.java \ +java/util/concurrent/LinkedBlockingDeque.java \ +java/util/concurrent/CopyOnWriteArraySet.java \ +java/util/concurrent/DelayQueue.java \ +java/util/concurrent/SynchronousQueue.java \ +java/util/concurrent/Executor.java \ +java/util/concurrent/ExecutionException.java \ +java/util/concurrent/Semaphore.java \ +java/util/concurrent/BrokenBarrierException.java \ +java/util/concurrent/CompletionService.java \ +java/util/concurrent/CyclicBarrier.java \ +java/util/concurrent/AbstractExecutorService.java \ +java/util/concurrent/TimeoutException.java \ +java/util/concurrent/ConcurrentMap.java \ +java/util/concurrent/PriorityBlockingQueue.java \ +java/util/concurrent/CancellationException.java \ +java/util/concurrent/ConcurrentSkipListSet.java \ +java/util/concurrent/ConcurrentLinkedQueue.java \ +java/util/concurrent/RejectedExecutionHandler.java \ +java/util/concurrent/TimeUnit.java \ +java/util/concurrent/RejectedExecutionException.java \ +java/util/concurrent/ExecutorService.java \ +java/util/concurrent/ConcurrentHashMap.java \ +java/util/concurrent/ScheduledExecutorService.java \ +java/util/concurrent/ThreadPoolExecutor.java \ +java/util/concurrent/BlockingQueue.java \ +java/util/concurrent/ConcurrentSkipListMap.java \ +java/util/concurrent/ConcurrentNavigableMap.java \ +java/util/concurrent/Future.java \ +java/util/concurrent/FutureTask.java \ +java/util/concurrent/CountDownLatch.java \ +java/util/concurrent/RunnableScheduledFuture.java \ +java/util/concurrent/Callable.java \ +java/util/concurrent/locks/ReentrantLock.java \ +java/util/concurrent/locks/Lock.java \ +java/util/concurrent/locks/Condition.java \ +java/util/concurrent/locks/AbstractQueuedSynchronizer.java \ +java/util/concurrent/locks/AbstractOwnableSynchronizer.java \ +java/util/concurrent/locks/LockSupport.java \ +java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \ +java/util/concurrent/locks/ReadWriteLock.java \ +java/util/concurrent/locks/ReentrantReadWriteLock.java \ +java/util/concurrent/Executors.java \ +java/util/concurrent/atomic/AtomicLongFieldUpdater.java \ +java/util/concurrent/atomic/AtomicLongArray.java \ +java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java \ +java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java \ +java/util/concurrent/atomic/AtomicBoolean.java \ +java/util/concurrent/atomic/AtomicReferenceArray.java \ +java/util/concurrent/atomic/AtomicStampedReference.java \ +java/util/concurrent/atomic/AtomicIntegerArray.java \ +java/util/concurrent/atomic/AtomicMarkableReference.java \ +java/util/concurrent/atomic/AtomicReference.java \ +java/util/concurrent/atomic/AtomicInteger.java \ +java/util/concurrent/atomic/AtomicLong.java \ +java/util/concurrent/ScheduledFuture.java \ +java/util/concurrent/Exchanger.java \ +java/util/Deque.java \ +java/util/NavigableMap.java \ +java/util/Queue.java \ +java/util/NavigableSet.java \ +java/util/ArrayDeque.java + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu external/jsr166/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu external/jsr166/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + $(mkdir_p) $(distdir)/java/util $(distdir)/java/util/concurrent $(distdir)/java/util/concurrent/atomic $(distdir)/java/util/concurrent/locks + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-exec install-exec-am \ + install-info install-info-am install-man install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libjava/classpath/external/jsr166/java/util/AbstractQueue.java b/libjava/classpath/external/jsr166/java/util/AbstractQueue.java new file mode 100644 index 00000000000..644df6c491d --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/AbstractQueue.java @@ -0,0 +1,166 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util; + +/** + * This class provides skeletal implementations of some {@link Queue} + * operations. The implementations in this class are appropriate when + * the base implementation does not allow null + * elements. Methods {@link #add add}, {@link #remove remove}, and + * {@link #element element} are based on {@link #offer offer}, {@link + * #poll poll}, and {@link #peek peek}, respectively but throw + * exceptions instead of indicating failure via false or + * null returns. + * + *

A Queue implementation that extends this class must + * minimally define a method {@link Queue#offer} which does not permit + * insertion of null elements, along with methods {@link + * Queue#peek}, {@link Queue#poll}, {@link Collection#size}, and a + * {@link Collection#iterator} supporting {@link + * Iterator#remove}. Typically, additional methods will be overridden + * as well. If these requirements cannot be met, consider instead + * subclassing {@link AbstractCollection}. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public abstract class AbstractQueue + extends AbstractCollection + implements Queue { + + /** + * Constructor for use by subclasses. + */ + protected AbstractQueue() { + } + + /** + * Inserts the specified element into this queue if it is possible to do so + * immediately without violating capacity restrictions, returning + * true upon success and throwing an IllegalStateException + * if no space is currently available. + * + *

This implementation returns true if offer succeeds, + * else throws an IllegalStateException. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this queue + * @throws NullPointerException if the specified element is null and + * this queue does not permit null elements + * @throws IllegalArgumentException if some property of this element + * prevents it from being added to this queue + */ + public boolean add(E e) { + if (offer(e)) + return true; + else + throw new IllegalStateException("Queue full"); + } + + /** + * Retrieves and removes the head of this queue. This method differs + * from {@link #poll poll} only in that it throws an exception if this + * queue is empty. + * + *

This implementation returns the result of poll + * unless the queue is empty. + * + * @return the head of this queue + * @throws NoSuchElementException if this queue is empty + */ + public E remove() { + E x = poll(); + if (x != null) + return x; + else + throw new NoSuchElementException(); + } + + /** + * Retrieves, but does not remove, the head of this queue. This method + * differs from {@link #peek peek} only in that it throws an exception if + * this queue is empty. + * + *

This implementation returns the result of peek + * unless the queue is empty. + * + * @return the head of this queue + * @throws NoSuchElementException if this queue is empty + */ + public E element() { + E x = peek(); + if (x != null) + return x; + else + throw new NoSuchElementException(); + } + + /** + * Removes all of the elements from this queue. + * The queue will be empty after this call returns. + * + *

This implementation repeatedly invokes {@link #poll poll} until it + * returns null. + */ + public void clear() { + while (poll() != null) + ; + } + + /** + * Adds all of the elements in the specified collection to this + * queue. Attempts to addAll of a queue to itself result in + * IllegalArgumentException. Further, the behavior of + * this operation is undefined if the specified collection is + * modified while the operation is in progress. + * + *

This implementation iterates over the specified collection, + * and adds each element returned by the iterator to this + * queue, in turn. A runtime exception encountered while + * trying to add an element (including, in particular, a + * null element) may result in only some of the elements + * having been successfully added when the associated exception is + * thrown. + * + * @param c collection containing elements to be added to this queue + * @return true if this queue changed as a result of the call + * @throws ClassCastException if the class of an element of the specified + * collection prevents it from being added to this queue + * @throws NullPointerException if the specified collection contains a + * null element and this queue does not permit null elements, + * or if the specified collection is null + * @throws IllegalArgumentException if some property of an element of the + * specified collection prevents it from being added to this + * queue, or if the specified collection is this queue + * @throws IllegalStateException if not all the elements can be added at + * this time due to insertion restrictions + * @see #add(Object) + */ + public boolean addAll(Collection c) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + boolean modified = false; + Iterator e = c.iterator(); + while (e.hasNext()) { + if (add(e.next())) + modified = true; + } + return modified; + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/ArrayDeque.java b/libjava/classpath/external/jsr166/java/util/ArrayDeque.java new file mode 100644 index 00000000000..c0ee16ea7b3 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/ArrayDeque.java @@ -0,0 +1,839 @@ +/* + * Written by Josh Bloch of Google Inc. and released to the public domain, + * as explained at http://creativecommons.org/licenses/publicdomain. + */ + +package java.util; +import java.io.*; + +/** + * Resizable-array implementation of the {@link Deque} interface. Array + * deques have no capacity restrictions; they grow as necessary to support + * usage. They are not thread-safe; in the absence of external + * synchronization, they do not support concurrent access by multiple threads. + * Null elements are prohibited. This class is likely to be faster than + * {@link Stack} when used as a stack, and faster than {@link LinkedList} + * when used as a queue. + * + *

Most ArrayDeque operations run in amortized constant time. + * Exceptions include {@link #remove(Object) remove}, {@link + * #removeFirstOccurrence removeFirstOccurrence}, {@link #removeLastOccurrence + * removeLastOccurrence}, {@link #contains contains}, {@link #iterator + * iterator.remove()}, and the bulk operations, all of which run in linear + * time. + * + *

The iterators returned by this class's iterator method are + * fail-fast: If the deque is modified at any time after the iterator + * is created, in any way except through the iterator's own remove + * method, the iterator will generally throw a {@link + * ConcurrentModificationException}. Thus, in the face of concurrent + * modification, the iterator fails quickly and cleanly, rather than risking + * arbitrary, non-deterministic behavior at an undetermined time in the + * future. + * + *

Note that the fail-fast behavior of an iterator cannot be guaranteed + * as it is, generally speaking, impossible to make any hard guarantees in the + * presence of unsynchronized concurrent modification. Fail-fast iterators + * throw ConcurrentModificationException on a best-effort basis. + * Therefore, it would be wrong to write a program that depended on this + * exception for its correctness: the fail-fast behavior of iterators + * should be used only to detect bugs. + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @author Josh Bloch and Doug Lea + * @since 1.6 + * @param the type of elements held in this collection + */ +public class ArrayDeque extends AbstractCollection + implements Deque, Cloneable, Serializable +{ + /** + * The array in which the elements of the deque are stored. + * The capacity of the deque is the length of this array, which is + * always a power of two. The array is never allowed to become + * full, except transiently within an addX method where it is + * resized (see doubleCapacity) immediately upon becoming full, + * thus avoiding head and tail wrapping around to equal each + * other. We also guarantee that all array cells not holding + * deque elements are always null. + */ + private transient E[] elements; + + /** + * The index of the element at the head of the deque (which is the + * element that would be removed by remove() or pop()); or an + * arbitrary number equal to tail if the deque is empty. + */ + private transient int head; + + /** + * The index at which the next element would be added to the tail + * of the deque (via addLast(E), add(E), or push(E)). + */ + private transient int tail; + + /** + * The minimum capacity that we'll use for a newly created deque. + * Must be a power of 2. + */ + private static final int MIN_INITIAL_CAPACITY = 8; + + // ****** Array allocation and resizing utilities ****** + + /** + * Allocate empty array to hold the given number of elements. + * + * @param numElements the number of elements to hold + */ + private void allocateElements(int numElements) { + int initialCapacity = MIN_INITIAL_CAPACITY; + // Find the best power of two to hold elements. + // Tests "<=" because arrays aren't kept full. + if (numElements >= initialCapacity) { + initialCapacity = numElements; + initialCapacity |= (initialCapacity >>> 1); + initialCapacity |= (initialCapacity >>> 2); + initialCapacity |= (initialCapacity >>> 4); + initialCapacity |= (initialCapacity >>> 8); + initialCapacity |= (initialCapacity >>> 16); + initialCapacity++; + + if (initialCapacity < 0) // Too many elements, must back off + initialCapacity >>>= 1;// Good luck allocating 2 ^ 30 elements + } + elements = (E[]) new Object[initialCapacity]; + } + + /** + * Double the capacity of this deque. Call only when full, i.e., + * when head and tail have wrapped around to become equal. + */ + private void doubleCapacity() { + assert head == tail; + int p = head; + int n = elements.length; + int r = n - p; // number of elements to the right of p + int newCapacity = n << 1; + if (newCapacity < 0) + throw new IllegalStateException("Sorry, deque too big"); + Object[] a = new Object[newCapacity]; + System.arraycopy(elements, p, a, 0, r); + System.arraycopy(elements, 0, a, r, p); + elements = (E[])a; + head = 0; + tail = n; + } + + /** + * Copies the elements from our element array into the specified array, + * in order (from first to last element in the deque). It is assumed + * that the array is large enough to hold all elements in the deque. + * + * @return its argument + */ + private T[] copyElements(T[] a) { + if (head < tail) { + System.arraycopy(elements, head, a, 0, size()); + } else if (head > tail) { + int headPortionLen = elements.length - head; + System.arraycopy(elements, head, a, 0, headPortionLen); + System.arraycopy(elements, 0, a, headPortionLen, tail); + } + return a; + } + + /** + * Constructs an empty array deque with an initial capacity + * sufficient to hold 16 elements. + */ + public ArrayDeque() { + elements = (E[]) new Object[16]; + } + + /** + * Constructs an empty array deque with an initial capacity + * sufficient to hold the specified number of elements. + * + * @param numElements lower bound on initial capacity of the deque + */ + public ArrayDeque(int numElements) { + allocateElements(numElements); + } + + /** + * Constructs a deque containing the elements of the specified + * collection, in the order they are returned by the collection's + * iterator. (The first element returned by the collection's + * iterator becomes the first element, or front of the + * deque.) + * + * @param c the collection whose elements are to be placed into the deque + * @throws NullPointerException if the specified collection is null + */ + public ArrayDeque(Collection c) { + allocateElements(c.size()); + addAll(c); + } + + // The main insertion and extraction methods are addFirst, + // addLast, pollFirst, pollLast. The other methods are defined in + // terms of these. + + /** + * Inserts the specified element at the front of this deque. + * + * @param e the element to add + * @throws NullPointerException if the specified element is null + */ + public void addFirst(E e) { + if (e == null) + throw new NullPointerException(); + elements[head = (head - 1) & (elements.length - 1)] = e; + if (head == tail) + doubleCapacity(); + } + + /** + * Inserts the specified element at the end of this deque. + * + *

This method is equivalent to {@link #add}. + * + * @param e the element to add + * @throws NullPointerException if the specified element is null + */ + public void addLast(E e) { + if (e == null) + throw new NullPointerException(); + elements[tail] = e; + if ( (tail = (tail + 1) & (elements.length - 1)) == head) + doubleCapacity(); + } + + /** + * Inserts the specified element at the front of this deque. + * + * @param e the element to add + * @return true (as specified by {@link Deque#offerFirst}) + * @throws NullPointerException if the specified element is null + */ + public boolean offerFirst(E e) { + addFirst(e); + return true; + } + + /** + * Inserts the specified element at the end of this deque. + * + * @param e the element to add + * @return true (as specified by {@link Deque#offerLast}) + * @throws NullPointerException if the specified element is null + */ + public boolean offerLast(E e) { + addLast(e); + return true; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E removeFirst() { + E x = pollFirst(); + if (x == null) + throw new NoSuchElementException(); + return x; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E removeLast() { + E x = pollLast(); + if (x == null) + throw new NoSuchElementException(); + return x; + } + + public E pollFirst() { + int h = head; + E result = elements[h]; // Element is null if deque empty + if (result == null) + return null; + elements[h] = null; // Must null out slot + head = (h + 1) & (elements.length - 1); + return result; + } + + public E pollLast() { + int t = (tail - 1) & (elements.length - 1); + E result = elements[t]; + if (result == null) + return null; + elements[t] = null; + tail = t; + return result; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E getFirst() { + E x = elements[head]; + if (x == null) + throw new NoSuchElementException(); + return x; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E getLast() { + E x = elements[(tail - 1) & (elements.length - 1)]; + if (x == null) + throw new NoSuchElementException(); + return x; + } + + public E peekFirst() { + return elements[head]; // elements[head] is null if deque empty + } + + public E peekLast() { + return elements[(tail - 1) & (elements.length - 1)]; + } + + /** + * Removes the first occurrence of the specified element in this + * deque (when traversing the deque from head to tail). + * If the deque does not contain the element, it is unchanged. + * More formally, removes the first element e such that + * o.equals(e) (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + * @param o element to be removed from this deque, if present + * @return true if the deque contained the specified element + */ + public boolean removeFirstOccurrence(Object o) { + if (o == null) + return false; + int mask = elements.length - 1; + int i = head; + E x; + while ( (x = elements[i]) != null) { + if (o.equals(x)) { + delete(i); + return true; + } + i = (i + 1) & mask; + } + return false; + } + + /** + * Removes the last occurrence of the specified element in this + * deque (when traversing the deque from head to tail). + * If the deque does not contain the element, it is unchanged. + * More formally, removes the last element e such that + * o.equals(e) (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + * @param o element to be removed from this deque, if present + * @return true if the deque contained the specified element + */ + public boolean removeLastOccurrence(Object o) { + if (o == null) + return false; + int mask = elements.length - 1; + int i = (tail - 1) & mask; + E x; + while ( (x = elements[i]) != null) { + if (o.equals(x)) { + delete(i); + return true; + } + i = (i - 1) & mask; + } + return false; + } + + // *** Queue methods *** + + /** + * Inserts the specified element at the end of this deque. + * + *

This method is equivalent to {@link #addLast}. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws NullPointerException if the specified element is null + */ + public boolean add(E e) { + addLast(e); + return true; + } + + /** + * Inserts the specified element at the end of this deque. + * + *

This method is equivalent to {@link #offerLast}. + * + * @param e the element to add + * @return true (as specified by {@link Queue#offer}) + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + return offerLast(e); + } + + /** + * Retrieves and removes the head of the queue represented by this deque. + * + * This method differs from {@link #poll poll} only in that it throws an + * exception if this deque is empty. + * + *

This method is equivalent to {@link #removeFirst}. + * + * @return the head of the queue represented by this deque + * @throws NoSuchElementException {@inheritDoc} + */ + public E remove() { + return removeFirst(); + } + + /** + * Retrieves and removes the head of the queue represented by this deque + * (in other words, the first element of this deque), or returns + * null if this deque is empty. + * + *

This method is equivalent to {@link #pollFirst}. + * + * @return the head of the queue represented by this deque, or + * null if this deque is empty + */ + public E poll() { + return pollFirst(); + } + + /** + * Retrieves, but does not remove, the head of the queue represented by + * this deque. This method differs from {@link #peek peek} only in + * that it throws an exception if this deque is empty. + * + *

This method is equivalent to {@link #getFirst}. + * + * @return the head of the queue represented by this deque + * @throws NoSuchElementException {@inheritDoc} + */ + public E element() { + return getFirst(); + } + + /** + * Retrieves, but does not remove, the head of the queue represented by + * this deque, or returns null if this deque is empty. + * + *

This method is equivalent to {@link #peekFirst}. + * + * @return the head of the queue represented by this deque, or + * null if this deque is empty + */ + public E peek() { + return peekFirst(); + } + + // *** Stack methods *** + + /** + * Pushes an element onto the stack represented by this deque. In other + * words, inserts the element at the front of this deque. + * + *

This method is equivalent to {@link #addFirst}. + * + * @param e the element to push + * @throws NullPointerException if the specified element is null + */ + public void push(E e) { + addFirst(e); + } + + /** + * Pops an element from the stack represented by this deque. In other + * words, removes and returns the first element of this deque. + * + *

This method is equivalent to {@link #removeFirst()}. + * + * @return the element at the front of this deque (which is the top + * of the stack represented by this deque) + * @throws NoSuchElementException {@inheritDoc} + */ + public E pop() { + return removeFirst(); + } + + private void checkInvariants() { + assert elements[tail] == null; + assert head == tail ? elements[head] == null : + (elements[head] != null && + elements[(tail - 1) & (elements.length - 1)] != null); + assert elements[(head - 1) & (elements.length - 1)] == null; + } + + /** + * Removes the element at the specified position in the elements array, + * adjusting head and tail as necessary. This can result in motion of + * elements backwards or forwards in the array. + * + *

This method is called delete rather than remove to emphasize + * that its semantics differ from those of {@link List#remove(int)}. + * + * @return true if elements moved backwards + */ + private boolean delete(int i) { + checkInvariants(); + final E[] elements = this.elements; + final int mask = elements.length - 1; + final int h = head; + final int t = tail; + final int front = (i - h) & mask; + final int back = (t - i) & mask; + + // Invariant: head <= i < tail mod circularity + if (front >= ((t - h) & mask)) + throw new ConcurrentModificationException(); + + // Optimize for least element motion + if (front < back) { + if (h <= i) { + System.arraycopy(elements, h, elements, h + 1, front); + } else { // Wrap around + System.arraycopy(elements, 0, elements, 1, i); + elements[0] = elements[mask]; + System.arraycopy(elements, h, elements, h + 1, mask - h); + } + elements[h] = null; + head = (h + 1) & mask; + return false; + } else { + if (i < t) { // Copy the null tail as well + System.arraycopy(elements, i + 1, elements, i, back); + tail = t - 1; + } else { // Wrap around + System.arraycopy(elements, i + 1, elements, i, mask - i); + elements[mask] = elements[0]; + System.arraycopy(elements, 1, elements, 0, t); + tail = (t - 1) & mask; + } + return true; + } + } + + // *** Collection Methods *** + + /** + * Returns the number of elements in this deque. + * + * @return the number of elements in this deque + */ + public int size() { + return (tail - head) & (elements.length - 1); + } + + /** + * Returns true if this deque contains no elements. + * + * @return true if this deque contains no elements + */ + public boolean isEmpty() { + return head == tail; + } + + /** + * Returns an iterator over the elements in this deque. The elements + * will be ordered from first (head) to last (tail). This is the same + * order that elements would be dequeued (via successive calls to + * {@link #remove} or popped (via successive calls to {@link #pop}). + * + * @return an iterator over the elements in this deque + */ + public Iterator iterator() { + return new DeqIterator(); + } + + public Iterator descendingIterator() { + return new DescendingIterator(); + } + + private class DeqIterator implements Iterator { + /** + * Index of element to be returned by subsequent call to next. + */ + private int cursor = head; + + /** + * Tail recorded at construction (also in remove), to stop + * iterator and also to check for comodification. + */ + private int fence = tail; + + /** + * Index of element returned by most recent call to next. + * Reset to -1 if element is deleted by a call to remove. + */ + private int lastRet = -1; + + public boolean hasNext() { + return cursor != fence; + } + + public E next() { + if (cursor == fence) + throw new NoSuchElementException(); + E result = elements[cursor]; + // This check doesn't catch all possible comodifications, + // but does catch the ones that corrupt traversal + if (tail != fence || result == null) + throw new ConcurrentModificationException(); + lastRet = cursor; + cursor = (cursor + 1) & (elements.length - 1); + return result; + } + + public void remove() { + if (lastRet < 0) + throw new IllegalStateException(); + if (delete(lastRet)) { // if left-shifted, undo increment in next() + cursor = (cursor - 1) & (elements.length - 1); + fence = tail; + } + lastRet = -1; + } + } + + private class DescendingIterator implements Iterator { + /* + * This class is nearly a mirror-image of DeqIterator, using + * tail instead of head for initial cursor, and head instead of + * tail for fence. + */ + private int cursor = tail; + private int fence = head; + private int lastRet = -1; + + public boolean hasNext() { + return cursor != fence; + } + + public E next() { + if (cursor == fence) + throw new NoSuchElementException(); + cursor = (cursor - 1) & (elements.length - 1); + E result = elements[cursor]; + if (head != fence || result == null) + throw new ConcurrentModificationException(); + lastRet = cursor; + return result; + } + + public void remove() { + if (lastRet < 0) + throw new IllegalStateException(); + if (!delete(lastRet)) { + cursor = (cursor + 1) & (elements.length - 1); + fence = head; + } + lastRet = -1; + } + } + + /** + * Returns true if this deque contains the specified element. + * More formally, returns true if and only if this deque contains + * at least one element e such that o.equals(e). + * + * @param o object to be checked for containment in this deque + * @return true if this deque contains the specified element + */ + public boolean contains(Object o) { + if (o == null) + return false; + int mask = elements.length - 1; + int i = head; + E x; + while ( (x = elements[i]) != null) { + if (o.equals(x)) + return true; + i = (i + 1) & mask; + } + return false; + } + + /** + * Removes a single instance of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the first element e such that + * o.equals(e) (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + *

This method is equivalent to {@link #removeFirstOccurrence}. + * + * @param o element to be removed from this deque, if present + * @return true if this deque contained the specified element + */ + public boolean remove(Object o) { + return removeFirstOccurrence(o); + } + + /** + * Removes all of the elements from this deque. + * The deque will be empty after this call returns. + */ + public void clear() { + int h = head; + int t = tail; + if (h != t) { // clear all cells + head = tail = 0; + int i = h; + int mask = elements.length - 1; + do { + elements[i] = null; + i = (i + 1) & mask; + } while (i != t); + } + } + + /** + * Returns an array containing all of the elements in this deque + * in proper sequence (from first to last element). + * + *

The returned array will be "safe" in that no references to it are + * maintained by this deque. (In other words, this method must allocate + * a new array). The caller is thus free to modify the returned array. + * + *

This method acts as bridge between array-based and collection-based + * APIs. + * + * @return an array containing all of the elements in this deque + */ + public Object[] toArray() { + return copyElements(new Object[size()]); + } + + /** + * Returns an array containing all of the elements in this deque in + * proper sequence (from first to last element); the runtime type of the + * returned array is that of the specified array. If the deque fits in + * the specified array, it is returned therein. Otherwise, a new array + * is allocated with the runtime type of the specified array and the + * size of this deque. + * + *

If this deque fits in the specified array with room to spare + * (i.e., the array has more elements than this deque), the element in + * the array immediately following the end of the deque is set to + * null. + * + *

Like the {@link #toArray()} method, this method acts as bridge between + * array-based and collection-based APIs. Further, this method allows + * precise control over the runtime type of the output array, and may, + * under certain circumstances, be used to save allocation costs. + * + *

Suppose x is a deque known to contain only strings. + * The following code can be used to dump the deque into a newly + * allocated array of String: + * + *

+     *     String[] y = x.toArray(new String[0]);
+ * + * Note that toArray(new Object[0]) is identical in function to + * toArray(). + * + * @param a the array into which the elements of the deque are to + * be stored, if it is big enough; otherwise, a new array of the + * same runtime type is allocated for this purpose + * @return an array containing all of the elements in this deque + * @throws ArrayStoreException if the runtime type of the specified array + * is not a supertype of the runtime type of every element in + * this deque + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + int size = size(); + if (a.length < size) + a = (T[])java.lang.reflect.Array.newInstance( + a.getClass().getComponentType(), size); + copyElements(a); + if (a.length > size) + a[size] = null; + return a; + } + + // *** Object methods *** + + /** + * Returns a copy of this deque. + * + * @return a copy of this deque + */ + public ArrayDeque clone() { + try { + ArrayDeque result = (ArrayDeque) super.clone(); + // Classpath local: we don't have Arrays.copyOf yet. + // result.elements = Arrays.copyOf(elements, elements.length); + result.elements = (E[]) elements.clone(); + return result; + + } catch (CloneNotSupportedException e) { + throw new AssertionError(); + } + } + + /** + * Appease the serialization gods. + */ + private static final long serialVersionUID = 2340985798034038923L; + + /** + * Serialize this deque. + * + * @serialData The current size (int) of the deque, + * followed by all of its elements (each an object reference) in + * first-to-last order. + */ + private void writeObject(ObjectOutputStream s) throws IOException { + s.defaultWriteObject(); + + // Write out size + s.writeInt(size()); + + // Write out elements in order. + int mask = elements.length - 1; + for (int i = head; i != tail; i = (i + 1) & mask) + s.writeObject(elements[i]); + } + + /** + * Deserialize this deque. + */ + private void readObject(ObjectInputStream s) + throws IOException, ClassNotFoundException { + s.defaultReadObject(); + + // Read in size and allocate array + int size = s.readInt(); + allocateElements(size); + head = 0; + tail = size; + + // Read in all elements in the proper order. + for (int i = 0; i < size; i++) + elements[i] = (E)s.readObject(); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/Deque.java b/libjava/classpath/external/jsr166/java/util/Deque.java new file mode 100644 index 00000000000..a769561dc0a --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/Deque.java @@ -0,0 +1,547 @@ +/* + * Written by Doug Lea and Josh Bloch with assistance from members of + * JCP JSR-166 Expert Group and released to the public domain, as explained + * at http://creativecommons.org/licenses/publicdomain + */ + +package java.util; + +/** + * A linear collection that supports element insertion and removal at + * both ends. The name deque is short for "double ended queue" + * and is usually pronounced "deck". Most Deque + * implementations place no fixed limits on the number of elements + * they may contain, but this interface supports capacity-restricted + * deques as well as those with no fixed size limit. + * + *

This interface defines methods to access the elements at both + * ends of the deque. Methods are provided to insert, remove, and + * examine the element. Each of these methods exists in two forms: + * one throws an exception if the operation fails, the other returns a + * special value (either null or false, depending on + * the operation). The latter form of the insert operation is + * designed specifically for use with capacity-restricted + * Deque implementations; in most implementations, insert + * operations cannot fail. + * + *

The twelve methods described above are summarized in the + * following table: + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
First Element (Head) Last Element (Tail)
Throws exceptionSpecial valueThrows exceptionSpecial value
Insert{@link #addFirst addFirst(e)}{@link #offerFirst offerFirst(e)}{@link #addLast addLast(e)}{@link #offerLast offerLast(e)}
Remove{@link #removeFirst removeFirst()}{@link #pollFirst pollFirst()}{@link #removeLast removeLast()}{@link #pollLast pollLast()}
Examine{@link #getFirst getFirst()}{@link #peekFirst peekFirst()}{@link #getLast getLast()}{@link #peekLast peekLast()}
+ * + *

This interface extends the {@link Queue} interface. When a deque is + * used as a queue, FIFO (First-In-First-Out) behavior results. Elements are + * added at the end of the deque and removed from the beginning. The methods + * inherited from the Queue interface are precisely equivalent to + * Deque methods as indicated in the following table: + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Queue Method Equivalent Deque Method
{@link java.util.Queue#add add(e)}{@link #addLast addLast(e)}
{@link java.util.Queue#offer offer(e)}{@link #offerLast offerLast(e)}
{@link java.util.Queue#remove remove()}{@link #removeFirst removeFirst()}
{@link java.util.Queue#poll poll()}{@link #pollFirst pollFirst()}
{@link java.util.Queue#element element()}{@link #getFirst getFirst()}
{@link java.util.Queue#peek peek()}{@link #peek peekFirst()}
+ * + *

Deques can also be used as LIFO (Last-In-First-Out) stacks. This + * interface should be used in preference to the legacy {@link Stack} class. + * When a deque is used as a stack, elements are pushed and popped from the + * beginning of the deque. Stack methods are precisely equivalent to + * Deque methods as indicated in the table below: + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Stack Method Equivalent Deque Method
{@link #push push(e)}{@link #addFirst addFirst(e)}
{@link #pop pop()}{@link #removeFirst removeFirst()}
{@link #peek peek()}{@link #peekFirst peekFirst()}
+ * + *

Note that the {@link #peek peek} method works equally well when + * a deque is used as a queue or a stack; in either case, elements are + * drawn from the beginning of the deque. + * + *

This interface provides two methods to remove interior + * elements, {@link #removeFirstOccurrence removeFirstOccurrence} and + * {@link #removeLastOccurrence removeLastOccurrence}. + * + *

Unlike the {@link List} interface, this interface does not + * provide support for indexed access to elements. + * + *

While Deque implementations are not strictly required + * to prohibit the insertion of null elements, they are strongly + * encouraged to do so. Users of any Deque implementations + * that do allow null elements are strongly encouraged not to + * take advantage of the ability to insert nulls. This is so because + * null is used as a special return value by various methods + * to indicated that the deque is empty. + * + *

Deque implementations generally do not define + * element-based versions of the equals and hashCode + * methods, but instead inherit the identity-based versions from class + * Object. + * + *

This interface is a member of the Java Collections + * Framework. + * + * @author Doug Lea + * @author Josh Bloch + * @since 1.6 + * @param the type of elements held in this collection + */ + +public interface Deque extends Queue { + /** + * Inserts the specified element at the front of this deque if it is + * possible to do so immediately without violating capacity restrictions. + * When using a capacity-restricted deque, it is generally preferable to + * use method {@link #offerFirst}. + * + * @param e the element to add + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void addFirst(E e); + + /** + * Inserts the specified element at the end of this deque if it is + * possible to do so immediately without violating capacity restrictions. + * When using a capacity-restricted deque, it is generally preferable to + * use method {@link #offerLast}. + * + *

This method is equivalent to {@link #add}. + * + * @param e the element to add + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void addLast(E e); + + /** + * Inserts the specified element at the front of this deque unless it would + * violate capacity restrictions. When using a capacity-restricted deque, + * this method is generally preferable to the {@link #addFirst} method, + * which can fail to insert an element only by throwing an exception. + * + * @param e the element to add + * @return true if the element was added to this deque, else + * false + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean offerFirst(E e); + + /** + * Inserts the specified element at the end of this deque unless it would + * violate capacity restrictions. When using a capacity-restricted deque, + * this method is generally preferable to the {@link #addLast} method, + * which can fail to insert an element only by throwing an exception. + * + * @param e the element to add + * @return true if the element was added to this deque, else + * false + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean offerLast(E e); + + /** + * Retrieves and removes the first element of this deque. This method + * differs from {@link #pollFirst pollFirst} only in that it throws an + * exception if this deque is empty. + * + * @return the head of this deque + * @throws NoSuchElementException if this deque is empty + */ + E removeFirst(); + + /** + * Retrieves and removes the last element of this deque. This method + * differs from {@link #pollLast pollLast} only in that it throws an + * exception if this deque is empty. + * + * @return the tail of this deque + * @throws NoSuchElementException if this deque is empty + */ + E removeLast(); + + /** + * Retrieves and removes the first element of this deque, + * or returns null if this deque is empty. + * + * @return the head of this deque, or null if this deque is empty + */ + E pollFirst(); + + /** + * Retrieves and removes the last element of this deque, + * or returns null if this deque is empty. + * + * @return the tail of this deque, or null if this deque is empty + */ + E pollLast(); + + /** + * Retrieves, but does not remove, the first element of this deque. + * + * This method differs from {@link #peekFirst peekFirst} only in that it + * throws an exception if this deque is empty. + * + * @return the head of this deque + * @throws NoSuchElementException if this deque is empty + */ + E getFirst(); + + /** + * Retrieves, but does not remove, the last element of this deque. + * This method differs from {@link #peekLast peekLast} only in that it + * throws an exception if this deque is empty. + * + * @return the tail of this deque + * @throws NoSuchElementException if this deque is empty + */ + E getLast(); + + /** + * Retrieves, but does not remove, the first element of this deque, + * or returns null if this deque is empty. + * + * @return the head of this deque, or null if this deque is empty + */ + E peekFirst(); + + /** + * Retrieves, but does not remove, the last element of this deque, + * or returns null if this deque is empty. + * + * @return the tail of this deque, or null if this deque is empty + */ + E peekLast(); + + /** + * Removes the first occurrence of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the first element e such that + * (o==null ? e==null : o.equals(e)) + * (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + * @param o element to be removed from this deque, if present + * @return true if an element was removed as a result of this call + * @throws ClassCastException if the class of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements (optional) + */ + boolean removeFirstOccurrence(Object o); + + /** + * Removes the last occurrence of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the last element e such that + * (o==null ? e==null : o.equals(e)) + * (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + * @param o element to be removed from this deque, if present + * @return true if an element was removed as a result of this call + * @throws ClassCastException if the class of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements (optional) + */ + boolean removeLastOccurrence(Object o); + + // *** Queue methods *** + + /** + * Inserts the specified element into the queue represented by this deque + * (in other words, at the tail of this deque) if it is possible to do so + * immediately without violating capacity restrictions, returning + * true upon success and throwing an + * IllegalStateException if no space is currently available. + * When using a capacity-restricted deque, it is generally preferable to + * use {@link #offer(Object) offer}. + * + *

This method is equivalent to {@link #addLast}. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean add(E e); + + /** + * Inserts the specified element into the queue represented by this deque + * (in other words, at the tail of this deque) if it is possible to do so + * immediately without violating capacity restrictions, returning + * true upon success and false if no space is currently + * available. When using a capacity-restricted deque, this method is + * generally preferable to the {@link #add} method, which can fail to + * insert an element only by throwing an exception. + * + *

This method is equivalent to {@link #offerLast}. + * + * @param e the element to add + * @return true if the element was added to this deque, else + * false + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean offer(E e); + + /** + * Retrieves and removes the head of the queue represented by this deque + * (in other words, the first element of this deque). + * This method differs from {@link #poll poll} only in that it throws an + * exception if this deque is empty. + * + *

This method is equivalent to {@link #removeFirst()}. + * + * @return the head of the queue represented by this deque + * @throws NoSuchElementException if this deque is empty + */ + E remove(); + + /** + * Retrieves and removes the head of the queue represented by this deque + * (in other words, the first element of this deque), or returns + * null if this deque is empty. + * + *

This method is equivalent to {@link #pollFirst()}. + * + * @return the first element of this deque, or null if + * this deque is empty + */ + E poll(); + + /** + * Retrieves, but does not remove, the head of the queue represented by + * this deque (in other words, the first element of this deque). + * This method differs from {@link #peek peek} only in that it throws an + * exception if this deque is empty. + * + *

This method is equivalent to {@link #getFirst()}. + * + * @return the head of the queue represented by this deque + * @throws NoSuchElementException if this deque is empty + */ + E element(); + + /** + * Retrieves, but does not remove, the head of the queue represented by + * this deque (in other words, the first element of this deque), or + * returns null if this deque is empty. + * + *

This method is equivalent to {@link #peekFirst()}. + * + * @return the head of the queue represented by this deque, or + * null if this deque is empty + */ + E peek(); + + + // *** Stack methods *** + + /** + * Pushes an element onto the stack represented by this deque (in other + * words, at the head of this deque) if it is possible to do so + * immediately without violating capacity restrictions, returning + * true upon success and throwing an + * IllegalStateException if no space is currently available. + * + *

This method is equivalent to {@link #addFirst}. + * + * @param e the element to push + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void push(E e); + + /** + * Pops an element from the stack represented by this deque. In other + * words, removes and returns the first element of this deque. + * + *

This method is equivalent to {@link #removeFirst()}. + * + * @return the element at the front of this deque (which is the top + * of the stack represented by this deque) + * @throws NoSuchElementException if this deque is empty + */ + E pop(); + + + // *** Collection methods *** + + /** + * Removes the first occurrence of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the first element e such that + * (o==null ? e==null : o.equals(e)) + * (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + *

This method is equivalent to {@link #removeFirstOccurrence}. + * + * @param o element to be removed from this deque, if present + * @return true if an element was removed as a result of this call + * @throws ClassCastException if the class of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements (optional) + */ + boolean remove(Object o); + + /** + * Returns true if this deque contains the specified element. + * More formally, returns true if and only if this deque contains + * at least one element e such that + * (o==null ? e==null : o.equals(e)). + * + * @param o element whose presence in this deque is to be tested + * @return true if this deque contains the specified element + * @throws ClassCastException if the type of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null and this + * deque does not permit null elements (optional) + */ + boolean contains(Object o); + + /** + * Returns the number of elements in this deque. + * + * @return the number of elements in this deque + */ + public int size(); + + /** + * Returns an iterator over the elements in this deque in proper sequence. + * The elements will be returned in order from first (head) to last (tail). + * + * @return an iterator over the elements in this deque in proper sequence + */ + Iterator iterator(); + + /** + * Returns an iterator over the elements in this deque in reverse + * sequential order. The elements will be returned in order from + * last (tail) to first (head). + * + * @return an iterator over the elements in this deque in reverse + * sequence + */ + Iterator descendingIterator(); + +} diff --git a/libjava/classpath/external/jsr166/java/util/NavigableMap.java b/libjava/classpath/external/jsr166/java/util/NavigableMap.java new file mode 100644 index 00000000000..a55f84bddd8 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/NavigableMap.java @@ -0,0 +1,395 @@ +/* + * Written by Doug Lea and Josh Bloch with assistance from members of JCP + * JSR-166 Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util; + +/** + * A {@link SortedMap} extended with navigation methods returning the + * closest matches for given search targets. Methods + * {@code lowerEntry}, {@code floorEntry}, {@code ceilingEntry}, + * and {@code higherEntry} return {@code Map.Entry} objects + * associated with keys respectively less than, less than or equal, + * greater than or equal, and greater than a given key, returning + * {@code null} if there is no such key. Similarly, methods + * {@code lowerKey}, {@code floorKey}, {@code ceilingKey}, and + * {@code higherKey} return only the associated keys. All of these + * methods are designed for locating, not traversing entries. + * + *

A {@code NavigableMap} may be accessed and traversed in either + * ascending or descending key order. The {@code descendingMap} + * method returns a view of the map with the senses of all relational + * and directional methods inverted. The performance of ascending + * operations and views is likely to be faster than that of descending + * ones. Methods {@code subMap}, {@code headMap}, + * and {@code tailMap} differ from the like-named {@code + * SortedMap} methods in accepting additional arguments describing + * whether lower and upper bounds are inclusive versus exclusive. + * Submaps of any {@code NavigableMap} must implement the {@code + * NavigableMap} interface. + * + *

This interface additionally defines methods {@code firstEntry}, + * {@code pollFirstEntry}, {@code lastEntry}, and + * {@code pollLastEntry} that return and/or remove the least and + * greatest mappings, if any exist, else returning {@code null}. + * + *

Implementations of entry-returning methods are expected to + * return {@code Map.Entry} pairs representing snapshots of mappings + * at the time they were produced, and thus generally do not + * support the optional {@code Entry.setValue} method. Note however + * that it is possible to change mappings in the associated map using + * method {@code put}. + * + *

Methods + * {@link #subMap(Object, Object) subMap(K, K)}, + * {@link #headMap(Object) headMap(K)}, and + * {@link #tailMap(Object) tailMap(K)} + * are specified to return {@code SortedMap} to allow existing + * implementations of {@code SortedMap} to be compatibly retrofitted to + * implement {@code NavigableMap}, but extensions and implementations + * of this interface are encouraged to override these methods to return + * {@code NavigableMap}. Similarly, + * {@link #keySet()} can be overriden to return {@code NavigableSet}. + * + *

This interface is a member of the + * + * Java Collections Framework. + * + * @author Doug Lea + * @author Josh Bloch + * @param the type of keys maintained by this map + * @param the type of mapped values + * @since 1.6 + */ +public interface NavigableMap extends SortedMap { + /** + * Returns a key-value mapping associated with the greatest key + * strictly less than the given key, or {@code null} if there is + * no such key. + * + * @param key the key + * @return an entry with the greatest key less than {@code key}, + * or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + Map.Entry lowerEntry(K key); + + /** + * Returns the greatest key strictly less than the given key, or + * {@code null} if there is no such key. + * + * @param key the key + * @return the greatest key less than {@code key}, + * or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + K lowerKey(K key); + + /** + * Returns a key-value mapping associated with the greatest key + * less than or equal to the given key, or {@code null} if there + * is no such key. + * + * @param key the key + * @return an entry with the greatest key less than or equal to + * {@code key}, or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + Map.Entry floorEntry(K key); + + /** + * Returns the greatest key less than or equal to the given key, + * or {@code null} if there is no such key. + * + * @param key the key + * @return the greatest key less than or equal to {@code key}, + * or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + K floorKey(K key); + + /** + * Returns a key-value mapping associated with the least key + * greater than or equal to the given key, or {@code null} if + * there is no such key. + * + * @param key the key + * @return an entry with the least key greater than or equal to + * {@code key}, or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + Map.Entry ceilingEntry(K key); + + /** + * Returns the least key greater than or equal to the given key, + * or {@code null} if there is no such key. + * + * @param key the key + * @return the least key greater than or equal to {@code key}, + * or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + K ceilingKey(K key); + + /** + * Returns a key-value mapping associated with the least key + * strictly greater than the given key, or {@code null} if there + * is no such key. + * + * @param key the key + * @return an entry with the least key greater than {@code key}, + * or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + Map.Entry higherEntry(K key); + + /** + * Returns the least key strictly greater than the given key, or + * {@code null} if there is no such key. + * + * @param key the key + * @return the least key greater than {@code key}, + * or {@code null} if there is no such key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + * and this map does not permit null keys + */ + K higherKey(K key); + + /** + * Returns a key-value mapping associated with the least + * key in this map, or {@code null} if the map is empty. + * + * @return an entry with the least key, + * or {@code null} if this map is empty + */ + Map.Entry firstEntry(); + + /** + * Returns a key-value mapping associated with the greatest + * key in this map, or {@code null} if the map is empty. + * + * @return an entry with the greatest key, + * or {@code null} if this map is empty + */ + Map.Entry lastEntry(); + + /** + * Removes and returns a key-value mapping associated with + * the least key in this map, or {@code null} if the map is empty. + * + * @return the removed first entry of this map, + * or {@code null} if this map is empty + */ + Map.Entry pollFirstEntry(); + + /** + * Removes and returns a key-value mapping associated with + * the greatest key in this map, or {@code null} if the map is empty. + * + * @return the removed last entry of this map, + * or {@code null} if this map is empty + */ + Map.Entry pollLastEntry(); + + /** + * Returns a reverse order view of the mappings contained in this map. + * The descending map is backed by this map, so changes to the map are + * reflected in the descending map, and vice-versa. If either map is + * modified while an iteration over a collection view of either map + * is in progress (except through the iterator's own {@code remove} + * operation), the results of the iteration are undefined. + * + *

The returned map has an ordering equivalent to + * {@link Collections#reverseOrder(Comparator) Collections.reverseOrder}(comparator()). + * The expression {@code m.descendingMap().descendingMap()} returns a + * view of {@code m} essentially equivalent to {@code m}. + * + * @return a reverse order view of this map + */ + NavigableMap descendingMap(); + + /** + * Returns a {@link NavigableSet} view of the keys contained in this map. + * The set's iterator returns the keys in ascending order. + * The set is backed by the map, so changes to the map are reflected in + * the set, and vice-versa. If the map is modified while an iteration + * over the set is in progress (except through the iterator's own {@code + * remove} operation), the results of the iteration are undefined. The + * set supports element removal, which removes the corresponding mapping + * from the map, via the {@code Iterator.remove}, {@code Set.remove}, + * {@code removeAll}, {@code retainAll}, and {@code clear} operations. + * It does not support the {@code add} or {@code addAll} operations. + * + * @return a navigable set view of the keys in this map + */ + NavigableSet navigableKeySet(); + + /** + * Returns a reverse order {@link NavigableSet} view of the keys contained in this map. + * The set's iterator returns the keys in descending order. + * The set is backed by the map, so changes to the map are reflected in + * the set, and vice-versa. If the map is modified while an iteration + * over the set is in progress (except through the iterator's own {@code + * remove} operation), the results of the iteration are undefined. The + * set supports element removal, which removes the corresponding mapping + * from the map, via the {@code Iterator.remove}, {@code Set.remove}, + * {@code removeAll}, {@code retainAll}, and {@code clear} operations. + * It does not support the {@code add} or {@code addAll} operations. + * + * @return a reverse order navigable set view of the keys in this map + */ + NavigableSet descendingKeySet(); + + /** + * Returns a view of the portion of this map whose keys range from + * {@code fromKey} to {@code toKey}. If {@code fromKey} and + * {@code toKey} are equal, the returned map is empty unless + * {@code fromExclusive} and {@code toExclusive} are both true. The + * returned map is backed by this map, so changes in the returned map are + * reflected in this map, and vice-versa. The returned map supports all + * optional map operations that this map supports. + * + *

The returned map will throw an {@code IllegalArgumentException} + * on an attempt to insert a key outside of its range, or to construct a + * submap either of whose endpoints lie outside its range. + * + * @param fromKey low endpoint of the keys in the returned map + * @param fromInclusive {@code true} if the low endpoint + * is to be included in the returned view + * @param toKey high endpoint of the keys in the returned map + * @param toInclusive {@code true} if the high endpoint + * is to be included in the returned view + * @return a view of the portion of this map whose keys range from + * {@code fromKey} to {@code toKey} + * @throws ClassCastException if {@code fromKey} and {@code toKey} + * cannot be compared to one another using this map's comparator + * (or, if the map has no comparator, using natural ordering). + * Implementations may, but are not required to, throw this + * exception if {@code fromKey} or {@code toKey} + * cannot be compared to keys currently in the map. + * @throws NullPointerException if {@code fromKey} or {@code toKey} + * is null and this map does not permit null keys + * @throws IllegalArgumentException if {@code fromKey} is greater than + * {@code toKey}; or if this map itself has a restricted + * range, and {@code fromKey} or {@code toKey} lies + * outside the bounds of the range + */ + NavigableMap subMap(K fromKey, boolean fromInclusive, + K toKey, boolean toInclusive); + + /** + * Returns a view of the portion of this map whose keys are less than (or + * equal to, if {@code inclusive} is true) {@code toKey}. The returned + * map is backed by this map, so changes in the returned map are reflected + * in this map, and vice-versa. The returned map supports all optional + * map operations that this map supports. + * + *

The returned map will throw an {@code IllegalArgumentException} + * on an attempt to insert a key outside its range. + * + * @param toKey high endpoint of the keys in the returned map + * @param inclusive {@code true} if the high endpoint + * is to be included in the returned view + * @return a view of the portion of this map whose keys are less than + * (or equal to, if {@code inclusive} is true) {@code toKey} + * @throws ClassCastException if {@code toKey} is not compatible + * with this map's comparator (or, if the map has no comparator, + * if {@code toKey} does not implement {@link Comparable}). + * Implementations may, but are not required to, throw this + * exception if {@code toKey} cannot be compared to keys + * currently in the map. + * @throws NullPointerException if {@code toKey} is null + * and this map does not permit null keys + * @throws IllegalArgumentException if this map itself has a + * restricted range, and {@code toKey} lies outside the + * bounds of the range + */ + NavigableMap headMap(K toKey, boolean inclusive); + + /** + * Returns a view of the portion of this map whose keys are greater than (or + * equal to, if {@code inclusive} is true) {@code fromKey}. The returned + * map is backed by this map, so changes in the returned map are reflected + * in this map, and vice-versa. The returned map supports all optional + * map operations that this map supports. + * + *

The returned map will throw an {@code IllegalArgumentException} + * on an attempt to insert a key outside its range. + * + * @param fromKey low endpoint of the keys in the returned map + * @param inclusive {@code true} if the low endpoint + * is to be included in the returned view + * @return a view of the portion of this map whose keys are greater than + * (or equal to, if {@code inclusive} is true) {@code fromKey} + * @throws ClassCastException if {@code fromKey} is not compatible + * with this map's comparator (or, if the map has no comparator, + * if {@code fromKey} does not implement {@link Comparable}). + * Implementations may, but are not required to, throw this + * exception if {@code fromKey} cannot be compared to keys + * currently in the map. + * @throws NullPointerException if {@code fromKey} is null + * and this map does not permit null keys + * @throws IllegalArgumentException if this map itself has a + * restricted range, and {@code fromKey} lies outside the + * bounds of the range + */ + NavigableMap tailMap(K fromKey, boolean inclusive); + + /** + * {@inheritDoc} + * + *

Equivalent to {@code subMap(fromKey, true, toKey, false)}. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + SortedMap subMap(K fromKey, K toKey); + + /** + * {@inheritDoc} + * + *

Equivalent to {@code headMap(toKey, false)}. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + SortedMap headMap(K toKey); + + /** + * {@inheritDoc} + * + *

Equivalent to {@code tailMap(fromKey, true)}. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + SortedMap tailMap(K fromKey); +} diff --git a/libjava/classpath/external/jsr166/java/util/NavigableSet.java b/libjava/classpath/external/jsr166/java/util/NavigableSet.java new file mode 100644 index 00000000000..e14fe347d71 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/NavigableSet.java @@ -0,0 +1,290 @@ +/* + * Written by Doug Lea and Josh Bloch with assistance from members of JCP + * JSR-166 Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util; + +/** + * A {@link SortedSet} extended with navigation methods reporting + * closest matches for given search targets. Methods {@code lower}, + * {@code floor}, {@code ceiling}, and {@code higher} return elements + * respectively less than, less than or equal, greater than or equal, + * and greater than a given element, returning {@code null} if there + * is no such element. A {@code NavigableSet} may be accessed and + * traversed in either ascending or descending order. The {@code + * descendingSet} method returns a view of the set with the senses of + * all relational and directional methods inverted. The performance of + * ascending operations and views is likely to be faster than that of + * descending ones. This interface additionally defines methods + * {@code pollFirst} and {@code pollLast} that return and remove the + * lowest and highest element, if one exists, else returning {@code + * null}. Methods {@code subSet}, {@code headSet}, + * and {@code tailSet} differ from the like-named {@code + * SortedSet} methods in accepting additional arguments describing + * whether lower and upper bounds are inclusive versus exclusive. + * Subsets of any {@code NavigableSet} must implement the {@code + * NavigableSet} interface. + * + *

The return values of navigation methods may be ambiguous in + * implementations that permit {@code null} elements. However, even + * in this case the result can be disambiguated by checking + * {@code contains(null)}. To avoid such issues, implementations of + * this interface are encouraged to not permit insertion of + * {@code null} elements. (Note that sorted sets of {@link + * Comparable} elements intrinsically do not permit {@code null}.) + * + *

Methods + * {@link #subSet(Object, Object) subSet(E, E)}, + * {@link #headSet(Object) headSet(E)}, and + * {@link #tailSet(Object) tailSet(E)} + * are specified to return {@code SortedSet} to allow existing + * implementations of {@code SortedSet} to be compatibly retrofitted to + * implement {@code NavigableSet}, but extensions and implementations + * of this interface are encouraged to override these methods to return + * {@code NavigableSet}. + * + *

This interface is a member of the + * + * Java Collections Framework. + * + * @author Doug Lea + * @author Josh Bloch + * @param the type of elements maintained by this set + * @since 1.6 + */ +public interface NavigableSet extends SortedSet { + /** + * Returns the greatest element in this set strictly less than the + * given element, or {@code null} if there is no such element. + * + * @param e the value to match + * @return the greatest element less than {@code e}, + * or {@code null} if there is no such element + * @throws ClassCastException if the specified element cannot be + * compared with the elements currently in the set + * @throws NullPointerException if the specified element is null + * and this set does not permit null elements + */ + E lower(E e); + + /** + * Returns the greatest element in this set less than or equal to + * the given element, or {@code null} if there is no such element. + * + * @param e the value to match + * @return the greatest element less than or equal to {@code e}, + * or {@code null} if there is no such element + * @throws ClassCastException if the specified element cannot be + * compared with the elements currently in the set + * @throws NullPointerException if the specified element is null + * and this set does not permit null elements + */ + E floor(E e); + + /** + * Returns the least element in this set greater than or equal to + * the given element, or {@code null} if there is no such element. + * + * @param e the value to match + * @return the least element greater than or equal to {@code e}, + * or {@code null} if there is no such element + * @throws ClassCastException if the specified element cannot be + * compared with the elements currently in the set + * @throws NullPointerException if the specified element is null + * and this set does not permit null elements + */ + E ceiling(E e); + + /** + * Returns the least element in this set strictly greater than the + * given element, or {@code null} if there is no such element. + * + * @param e the value to match + * @return the least element greater than {@code e}, + * or {@code null} if there is no such element + * @throws ClassCastException if the specified element cannot be + * compared with the elements currently in the set + * @throws NullPointerException if the specified element is null + * and this set does not permit null elements + */ + E higher(E e); + + /** + * Retrieves and removes the first (lowest) element, + * or returns {@code null} if this set is empty. + * + * @return the first element, or {@code null} if this set is empty + */ + E pollFirst(); + + /** + * Retrieves and removes the last (highest) element, + * or returns {@code null} if this set is empty. + * + * @return the last element, or {@code null} if this set is empty + */ + E pollLast(); + + /** + * Returns an iterator over the elements in this set, in ascending order. + * + * @return an iterator over the elements in this set, in ascending order + */ + Iterator iterator(); + + /** + * Returns a reverse order view of the elements contained in this set. + * The descending set is backed by this set, so changes to the set are + * reflected in the descending set, and vice-versa. If either set is + * modified while an iteration over either set is in progress (except + * through the iterator's own {@code remove} operation), the results of + * the iteration are undefined. + * + *

The returned set has an ordering equivalent to + * {@link Collections#reverseOrder(Comparator) Collections.reverseOrder}(comparator()). + * The expression {@code s.descendingSet().descendingSet()} returns a + * view of {@code s} essentially equivalent to {@code s}. + * + * @return a reverse order view of this set + */ + NavigableSet descendingSet(); + + /** + * Returns an iterator over the elements in this set, in descending order. + * Equivalent in effect to {@code descendingSet().iterator()}. + * + * @return an iterator over the elements in this set, in descending order + */ + Iterator descendingIterator(); + + /** + * Returns a view of the portion of this set whose elements range from + * {@code fromElement} to {@code toElement}. If {@code fromElement} and + * {@code toElement} are equal, the returned set is empty unless {@code + * fromExclusive} and {@code toExclusive} are both true. The returned set + * is backed by this set, so changes in the returned set are reflected in + * this set, and vice-versa. The returned set supports all optional set + * operations that this set supports. + * + *

The returned set will throw an {@code IllegalArgumentException} + * on an attempt to insert an element outside its range. + * + * @param fromElement low endpoint of the returned set + * @param fromInclusive {@code true} if the low endpoint + * is to be included in the returned view + * @param toElement high endpoint of the returned set + * @param toInclusive {@code true} if the high endpoint + * is to be included in the returned view + * @return a view of the portion of this set whose elements range from + * {@code fromElement}, inclusive, to {@code toElement}, exclusive + * @throws ClassCastException if {@code fromElement} and + * {@code toElement} cannot be compared to one another using this + * set's comparator (or, if the set has no comparator, using + * natural ordering). Implementations may, but are not required + * to, throw this exception if {@code fromElement} or + * {@code toElement} cannot be compared to elements currently in + * the set. + * @throws NullPointerException if {@code fromElement} or + * {@code toElement} is null and this set does + * not permit null elements + * @throws IllegalArgumentException if {@code fromElement} is + * greater than {@code toElement}; or if this set itself + * has a restricted range, and {@code fromElement} or + * {@code toElement} lies outside the bounds of the range. + */ + NavigableSet subSet(E fromElement, boolean fromInclusive, + E toElement, boolean toInclusive); + + /** + * Returns a view of the portion of this set whose elements are less than + * (or equal to, if {@code inclusive} is true) {@code toElement}. The + * returned set is backed by this set, so changes in the returned set are + * reflected in this set, and vice-versa. The returned set supports all + * optional set operations that this set supports. + * + *

The returned set will throw an {@code IllegalArgumentException} + * on an attempt to insert an element outside its range. + * + * @param toElement high endpoint of the returned set + * @param inclusive {@code true} if the high endpoint + * is to be included in the returned view + * @return a view of the portion of this set whose elements are less than + * (or equal to, if {@code inclusive} is true) {@code toElement} + * @throws ClassCastException if {@code toElement} is not compatible + * with this set's comparator (or, if the set has no comparator, + * if {@code toElement} does not implement {@link Comparable}). + * Implementations may, but are not required to, throw this + * exception if {@code toElement} cannot be compared to elements + * currently in the set. + * @throws NullPointerException if {@code toElement} is null and + * this set does not permit null elements + * @throws IllegalArgumentException if this set itself has a + * restricted range, and {@code toElement} lies outside the + * bounds of the range + */ + NavigableSet headSet(E toElement, boolean inclusive); + + /** + * Returns a view of the portion of this set whose elements are greater + * than (or equal to, if {@code inclusive} is true) {@code fromElement}. + * The returned set is backed by this set, so changes in the returned set + * are reflected in this set, and vice-versa. The returned set supports + * all optional set operations that this set supports. + * + *

The returned set will throw an {@code IllegalArgumentException} + * on an attempt to insert an element outside its range. + * + * @param fromElement low endpoint of the returned set + * @param inclusive {@code true} if the low endpoint + * is to be included in the returned view + * @return a view of the portion of this set whose elements are greater + * than or equal to {@code fromElement} + * @throws ClassCastException if {@code fromElement} is not compatible + * with this set's comparator (or, if the set has no comparator, + * if {@code fromElement} does not implement {@link Comparable}). + * Implementations may, but are not required to, throw this + * exception if {@code fromElement} cannot be compared to elements + * currently in the set. + * @throws NullPointerException if {@code fromElement} is null + * and this set does not permit null elements + * @throws IllegalArgumentException if this set itself has a + * restricted range, and {@code fromElement} lies outside the + * bounds of the range + */ + NavigableSet tailSet(E fromElement, boolean inclusive); + + /** + * {@inheritDoc} + * + *

Equivalent to {@code subSet(fromElement, true, toElement, false)}. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + SortedSet subSet(E fromElement, E toElement); + + /** + * {@inheritDoc} + * + *

Equivalent to {@code headSet(toElement, false)}. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} +na */ + SortedSet headSet(E toElement); + + /** + * {@inheritDoc} + * + *

Equivalent to {@code tailSet(fromElement, true)}. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + SortedSet tailSet(E fromElement); +} diff --git a/libjava/classpath/external/jsr166/java/util/Queue.java b/libjava/classpath/external/jsr166/java/util/Queue.java new file mode 100644 index 00000000000..5711545b07b --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/Queue.java @@ -0,0 +1,189 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util; + +/** + * A collection designed for holding elements prior to processing. + * Besides basic {@link java.util.Collection Collection} operations, + * queues provide additional insertion, extraction, and inspection + * operations. Each of these methods exists in two forms: one throws + * an exception if the operation fails, the other returns a special + * value (either null or false, depending on the + * operation). The latter form of the insert operation is designed + * specifically for use with capacity-restricted Queue + * implementations; in most implementations, insert operations cannot + * fail. + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Throws exceptionReturns special value
Insert{@link #add add(e)}{@link #offer offer(e)}
Remove{@link #remove remove()}{@link #poll poll()}
Examine{@link #element element()}{@link #peek peek()}
+ * + *

Queues typically, but do not necessarily, order elements in a + * FIFO (first-in-first-out) manner. Among the exceptions are + * priority queues, which order elements according to a supplied + * comparator, or the elements' natural ordering, and LIFO queues (or + * stacks) which order the elements LIFO (last-in-first-out). + * Whatever the ordering used, the head of the queue is that + * element which would be removed by a call to {@link #remove() } or + * {@link #poll()}. In a FIFO queue, all new elements are inserted at + * the tail of the queue. Other kinds of queues may use + * different placement rules. Every Queue implementation + * must specify its ordering properties. + * + *

The {@link #offer offer} method inserts an element if possible, + * otherwise returning false. This differs from the {@link + * java.util.Collection#add Collection.add} method, which can fail to + * add an element only by throwing an unchecked exception. The + * offer method is designed for use when failure is a normal, + * rather than exceptional occurrence, for example, in fixed-capacity + * (or "bounded") queues. + * + *

The {@link #remove()} and {@link #poll()} methods remove and + * return the head of the queue. + * Exactly which element is removed from the queue is a + * function of the queue's ordering policy, which differs from + * implementation to implementation. The remove() and + * poll() methods differ only in their behavior when the + * queue is empty: the remove() method throws an exception, + * while the poll() method returns null. + * + *

The {@link #element()} and {@link #peek()} methods return, but do + * not remove, the head of the queue. + * + *

The Queue interface does not define the blocking queue + * methods, which are common in concurrent programming. These methods, + * which wait for elements to appear or for space to become available, are + * defined in the {@link java.util.concurrent.BlockingQueue} interface, which + * extends this interface. + * + *

Queue implementations generally do not allow insertion + * of null elements, although some implementations, such as + * {@link LinkedList}, do not prohibit insertion of null. + * Even in the implementations that permit it, null should + * not be inserted into a Queue, as null is also + * used as a special return value by the poll method to + * indicate that the queue contains no elements. + * + *

Queue implementations generally do not define + * element-based versions of methods equals and + * hashCode but instead inherit the identity based versions + * from class Object, because element-based equality is not + * always well-defined for queues with the same elements but different + * ordering properties. + * + * + *

This interface is a member of the + * + * Java Collections Framework. + * + * @see java.util.Collection + * @see LinkedList + * @see PriorityQueue + * @see java.util.concurrent.LinkedBlockingQueue + * @see java.util.concurrent.BlockingQueue + * @see java.util.concurrent.ArrayBlockingQueue + * @see java.util.concurrent.LinkedBlockingQueue + * @see java.util.concurrent.PriorityBlockingQueue + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public interface Queue extends Collection { + /** + * Inserts the specified element into this queue if it is possible to do so + * immediately without violating capacity restrictions, returning + * true upon success and throwing an IllegalStateException + * if no space is currently available. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this queue + * @throws NullPointerException if the specified element is null and + * this queue does not permit null elements + * @throws IllegalArgumentException if some property of this element + * prevents it from being added to this queue + */ + boolean add(E e); + + /** + * Inserts the specified element into this queue if it is possible to do + * so immediately without violating capacity restrictions. + * When using a capacity-restricted queue, this method is generally + * preferable to {@link #add}, which can fail to insert an element only + * by throwing an exception. + * + * @param e the element to add + * @return true if the element was added to this queue, else + * false + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this queue + * @throws NullPointerException if the specified element is null and + * this queue does not permit null elements + * @throws IllegalArgumentException if some property of this element + * prevents it from being added to this queue + */ + boolean offer(E e); + + /** + * Retrieves and removes the head of this queue. This method differs + * from {@link #poll poll} only in that it throws an exception if this + * queue is empty. + * + * @return the head of this queue + * @throws NoSuchElementException if this queue is empty + */ + E remove(); + + /** + * Retrieves and removes the head of this queue, + * or returns null if this queue is empty. + * + * @return the head of this queue, or null if this queue is empty + */ + E poll(); + + /** + * Retrieves, but does not remove, the head of this queue. This method + * differs from {@link #peek peek} only in that it throws an exception + * if this queue is empty. + * + * @return the head of this queue + * @throws NoSuchElementException if this queue is empty + */ + E element(); + + /** + * Retrieves, but does not remove, the head of this queue, + * or returns null if this queue is empty. + * + * @return the head of this queue, or null if this queue is empty + */ + E peek(); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/AbstractExecutorService.java b/libjava/classpath/external/jsr166/java/util/concurrent/AbstractExecutorService.java new file mode 100644 index 00000000000..ac15c501083 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/AbstractExecutorService.java @@ -0,0 +1,270 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; + +/** + * Provides default implementations of {@link ExecutorService} + * execution methods. This class implements the submit, + * invokeAny and invokeAll methods using a + * {@link RunnableFuture} returned by newTaskFor, which defaults + * to the {@link FutureTask} class provided in this package. For example, + * the implementation of submit(Runnable) creates an + * associated RunnableFuture that is executed and + * returned. Subclasses may override the newTaskFor methods + * to return RunnableFuture implementations other than + * FutureTask. + * + *

Extension example. Here is a sketch of a class + * that customizes {@link ThreadPoolExecutor} to use + * a CustomTask class instead of the default FutureTask: + *

+ * public class CustomThreadPoolExecutor extends ThreadPoolExecutor {
+ *
+ *   static class CustomTask<V> implements RunnableFuture<V> {...}
+ *
+ *   protected <V> RunnableFuture<V> newTaskFor(Callable<V> c) {
+ *       return new CustomTask<V>(c);
+ *   }
+ *   protected <V> RunnableFuture<V> newTaskFor(Runnable r, V v) {
+ *       return new CustomTask<V>(r, v);
+ *   }
+ *   // ... add constructors, etc.
+ * }
+ * 
+ * @since 1.5 + * @author Doug Lea + */ +public abstract class AbstractExecutorService implements ExecutorService { + + /** + * Returns a RunnableFuture for the given runnable and default + * value. + * + * @param runnable the runnable task being wrapped + * @param value the default value for the returned future + * @return a RunnableFuture which when run will run the + * underlying runnable and which, as a Future, will yield + * the given value as its result and provide for cancellation of + * the underlying task. + * @since 1.6 + */ + protected RunnableFuture newTaskFor(Runnable runnable, T value) { + return new FutureTask(runnable, value); + } + + /** + * Returns a RunnableFuture for the given callable task. + * + * @param callable the callable task being wrapped + * @return a RunnableFuture which when run will call the + * underlying callable and which, as a Future, will yield + * the callable's result as its result and provide for + * cancellation of the underlying task. + * @since 1.6 + */ + protected RunnableFuture newTaskFor(Callable callable) { + return new FutureTask(callable); + } + + public Future submit(Runnable task) { + if (task == null) throw new NullPointerException(); + RunnableFuture ftask = newTaskFor(task, null); + execute(ftask); + return ftask; + } + + public Future submit(Runnable task, T result) { + if (task == null) throw new NullPointerException(); + RunnableFuture ftask = newTaskFor(task, result); + execute(ftask); + return ftask; + } + + public Future submit(Callable task) { + if (task == null) throw new NullPointerException(); + RunnableFuture ftask = newTaskFor(task); + execute(ftask); + return ftask; + } + + /** + * the main mechanics of invokeAny. + */ + private T doInvokeAny(Collection> tasks, + boolean timed, long nanos) + throws InterruptedException, ExecutionException, TimeoutException { + if (tasks == null) + throw new NullPointerException(); + int ntasks = tasks.size(); + if (ntasks == 0) + throw new IllegalArgumentException(); + List> futures= new ArrayList>(ntasks); + ExecutorCompletionService ecs = + new ExecutorCompletionService(this); + + // For efficiency, especially in executors with limited + // parallelism, check to see if previously submitted tasks are + // done before submitting more of them. This interleaving + // plus the exception mechanics account for messiness of main + // loop. + + try { + // Record exceptions so that if we fail to obtain any + // result, we can throw the last exception we got. + ExecutionException ee = null; + long lastTime = (timed)? System.nanoTime() : 0; + Iterator> it = tasks.iterator(); + + // Start one task for sure; the rest incrementally + futures.add(ecs.submit(it.next())); + --ntasks; + int active = 1; + + for (;;) { + Future f = ecs.poll(); + if (f == null) { + if (ntasks > 0) { + --ntasks; + futures.add(ecs.submit(it.next())); + ++active; + } + else if (active == 0) + break; + else if (timed) { + f = ecs.poll(nanos, TimeUnit.NANOSECONDS); + if (f == null) + throw new TimeoutException(); + long now = System.nanoTime(); + nanos -= now - lastTime; + lastTime = now; + } + else + f = ecs.take(); + } + if (f != null) { + --active; + try { + return f.get(); + } catch (InterruptedException ie) { + throw ie; + } catch (ExecutionException eex) { + ee = eex; + } catch (RuntimeException rex) { + ee = new ExecutionException(rex); + } + } + } + + if (ee == null) + ee = new ExecutionException(); + throw ee; + + } finally { + for (Future f : futures) + f.cancel(true); + } + } + + public T invokeAny(Collection> tasks) + throws InterruptedException, ExecutionException { + try { + return doInvokeAny(tasks, false, 0); + } catch (TimeoutException cannotHappen) { + assert false; + return null; + } + } + + public T invokeAny(Collection> tasks, + long timeout, TimeUnit unit) + throws InterruptedException, ExecutionException, TimeoutException { + return doInvokeAny(tasks, true, unit.toNanos(timeout)); + } + + public List> invokeAll(Collection> tasks) + throws InterruptedException { + if (tasks == null) + throw new NullPointerException(); + List> futures = new ArrayList>(tasks.size()); + boolean done = false; + try { + for (Callable t : tasks) { + RunnableFuture f = newTaskFor(t); + futures.add(f); + execute(f); + } + for (Future f : futures) { + if (!f.isDone()) { + try { + f.get(); + } catch (CancellationException ignore) { + } catch (ExecutionException ignore) { + } + } + } + done = true; + return futures; + } finally { + if (!done) + for (Future f : futures) + f.cancel(true); + } + } + + public List> invokeAll(Collection> tasks, + long timeout, TimeUnit unit) + throws InterruptedException { + if (tasks == null || unit == null) + throw new NullPointerException(); + long nanos = unit.toNanos(timeout); + List> futures = new ArrayList>(tasks.size()); + boolean done = false; + try { + for (Callable t : tasks) + futures.add(newTaskFor(t)); + + long lastTime = System.nanoTime(); + + // Interleave time checks and calls to execute in case + // executor doesn't have any/much parallelism. + Iterator> it = futures.iterator(); + while (it.hasNext()) { + execute((Runnable)(it.next())); + long now = System.nanoTime(); + nanos -= now - lastTime; + lastTime = now; + if (nanos <= 0) + return futures; + } + + for (Future f : futures) { + if (!f.isDone()) { + if (nanos <= 0) + return futures; + try { + f.get(nanos, TimeUnit.NANOSECONDS); + } catch (CancellationException ignore) { + } catch (ExecutionException ignore) { + } catch (TimeoutException toe) { + return futures; + } + long now = System.nanoTime(); + nanos -= now - lastTime; + lastTime = now; + } + } + done = true; + return futures; + } finally { + if (!done) + for (Future f : futures) + f.cancel(true); + } + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java b/libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java new file mode 100644 index 00000000000..bdf34d28a20 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java @@ -0,0 +1,778 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.locks.*; +import java.util.*; + +/** + * A bounded {@linkplain BlockingQueue blocking queue} backed by an + * array. This queue orders elements FIFO (first-in-first-out). The + * head of the queue is that element that has been on the + * queue the longest time. The tail of the queue is that + * element that has been on the queue the shortest time. New elements + * are inserted at the tail of the queue, and the queue retrieval + * operations obtain elements at the head of the queue. + * + *

This is a classic "bounded buffer", in which a + * fixed-sized array holds elements inserted by producers and + * extracted by consumers. Once created, the capacity cannot be + * increased. Attempts to put an element into a full queue + * will result in the operation blocking; attempts to take an + * element from an empty queue will similarly block. + * + *

This class supports an optional fairness policy for ordering + * waiting producer and consumer threads. By default, this ordering + * is not guaranteed. However, a queue constructed with fairness set + * to true grants threads access in FIFO order. Fairness + * generally decreases throughput but reduces variability and avoids + * starvation. + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public class ArrayBlockingQueue extends AbstractQueue + implements BlockingQueue, java.io.Serializable { + + /** + * Serialization ID. This class relies on default serialization + * even for the items array, which is default-serialized, even if + * it is empty. Otherwise it could not be declared final, which is + * necessary here. + */ + private static final long serialVersionUID = -817911632652898426L; + + /** The queued items */ + private final E[] items; + /** items index for next take, poll or remove */ + private int takeIndex; + /** items index for next put, offer, or add. */ + private int putIndex; + /** Number of items in the queue */ + private int count; + + /* + * Concurrency control uses the classic two-condition algorithm + * found in any textbook. + */ + + /** Main lock guarding all access */ + private final ReentrantLock lock; + /** Condition for waiting takes */ + private final Condition notEmpty; + /** Condition for waiting puts */ + private final Condition notFull; + + // Internal helper methods + + /** + * Circularly increment i. + */ + final int inc(int i) { + return (++i == items.length)? 0 : i; + } + + /** + * Inserts element at current put position, advances, and signals. + * Call only when holding lock. + */ + private void insert(E x) { + items[putIndex] = x; + putIndex = inc(putIndex); + ++count; + notEmpty.signal(); + } + + /** + * Extracts element at current take position, advances, and signals. + * Call only when holding lock. + */ + private E extract() { + final E[] items = this.items; + E x = items[takeIndex]; + items[takeIndex] = null; + takeIndex = inc(takeIndex); + --count; + notFull.signal(); + return x; + } + + /** + * Utility for remove and iterator.remove: Delete item at position i. + * Call only when holding lock. + */ + void removeAt(int i) { + final E[] items = this.items; + // if removing front item, just advance + if (i == takeIndex) { + items[takeIndex] = null; + takeIndex = inc(takeIndex); + } else { + // slide over all others up through putIndex. + for (;;) { + int nexti = inc(i); + if (nexti != putIndex) { + items[i] = items[nexti]; + i = nexti; + } else { + items[i] = null; + putIndex = i; + break; + } + } + } + --count; + notFull.signal(); + } + + /** + * Creates an ArrayBlockingQueue with the given (fixed) + * capacity and default access policy. + * + * @param capacity the capacity of this queue + * @throws IllegalArgumentException if capacity is less than 1 + */ + public ArrayBlockingQueue(int capacity) { + this(capacity, false); + } + + /** + * Creates an ArrayBlockingQueue with the given (fixed) + * capacity and the specified access policy. + * + * @param capacity the capacity of this queue + * @param fair if true then queue accesses for threads blocked + * on insertion or removal, are processed in FIFO order; + * if false the access order is unspecified. + * @throws IllegalArgumentException if capacity is less than 1 + */ + public ArrayBlockingQueue(int capacity, boolean fair) { + if (capacity <= 0) + throw new IllegalArgumentException(); + this.items = (E[]) new Object[capacity]; + lock = new ReentrantLock(fair); + notEmpty = lock.newCondition(); + notFull = lock.newCondition(); + } + + /** + * Creates an ArrayBlockingQueue with the given (fixed) + * capacity, the specified access policy and initially containing the + * elements of the given collection, + * added in traversal order of the collection's iterator. + * + * @param capacity the capacity of this queue + * @param fair if true then queue accesses for threads blocked + * on insertion or removal, are processed in FIFO order; + * if false the access order is unspecified. + * @param c the collection of elements to initially contain + * @throws IllegalArgumentException if capacity is less than + * c.size(), or less than 1. + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public ArrayBlockingQueue(int capacity, boolean fair, + Collection c) { + this(capacity, fair); + if (capacity < c.size()) + throw new IllegalArgumentException(); + + for (Iterator it = c.iterator(); it.hasNext();) + add(it.next()); + } + + /** + * Inserts the specified element at the tail of this queue if it is + * possible to do so immediately without exceeding the queue's capacity, + * returning true upon success and throwing an + * IllegalStateException if this queue is full. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws IllegalStateException if this queue is full + * @throws NullPointerException if the specified element is null + */ + public boolean add(E e) { + return super.add(e); + } + + /** + * Inserts the specified element at the tail of this queue if it is + * possible to do so immediately without exceeding the queue's capacity, + * returning true upon success and false if this queue + * is full. This method is generally preferable to method {@link #add}, + * which can fail to insert an element only by throwing an exception. + * + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + if (e == null) throw new NullPointerException(); + final ReentrantLock lock = this.lock; + lock.lock(); + try { + if (count == items.length) + return false; + else { + insert(e); + return true; + } + } finally { + lock.unlock(); + } + } + + /** + * Inserts the specified element at the tail of this queue, waiting + * for space to become available if the queue is full. + * + * @throws InterruptedException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public void put(E e) throws InterruptedException { + if (e == null) throw new NullPointerException(); + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + try { + while (count == items.length) + notFull.await(); + } catch (InterruptedException ie) { + notFull.signal(); // propagate to non-interrupted thread + throw ie; + } + insert(e); + } finally { + lock.unlock(); + } + } + + /** + * Inserts the specified element at the tail of this queue, waiting + * up to the specified wait time for space to become available if + * the queue is full. + * + * @throws InterruptedException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public boolean offer(E e, long timeout, TimeUnit unit) + throws InterruptedException { + + if (e == null) throw new NullPointerException(); + long nanos = unit.toNanos(timeout); + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + for (;;) { + if (count != items.length) { + insert(e); + return true; + } + if (nanos <= 0) + return false; + try { + nanos = notFull.awaitNanos(nanos); + } catch (InterruptedException ie) { + notFull.signal(); // propagate to non-interrupted thread + throw ie; + } + } + } finally { + lock.unlock(); + } + } + + public E poll() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + if (count == 0) + return null; + E x = extract(); + return x; + } finally { + lock.unlock(); + } + } + + public E take() throws InterruptedException { + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + try { + while (count == 0) + notEmpty.await(); + } catch (InterruptedException ie) { + notEmpty.signal(); // propagate to non-interrupted thread + throw ie; + } + E x = extract(); + return x; + } finally { + lock.unlock(); + } + } + + public E poll(long timeout, TimeUnit unit) throws InterruptedException { + long nanos = unit.toNanos(timeout); + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + for (;;) { + if (count != 0) { + E x = extract(); + return x; + } + if (nanos <= 0) + return null; + try { + nanos = notEmpty.awaitNanos(nanos); + } catch (InterruptedException ie) { + notEmpty.signal(); // propagate to non-interrupted thread + throw ie; + } + + } + } finally { + lock.unlock(); + } + } + + public E peek() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return (count == 0) ? null : items[takeIndex]; + } finally { + lock.unlock(); + } + } + + // this doc comment is overridden to remove the reference to collections + // greater in size than Integer.MAX_VALUE + /** + * Returns the number of elements in this queue. + * + * @return the number of elements in this queue + */ + public int size() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return count; + } finally { + lock.unlock(); + } + } + + // this doc comment is a modified copy of the inherited doc comment, + // without the reference to unlimited queues. + /** + * Returns the number of additional elements that this queue can ideally + * (in the absence of memory or resource constraints) accept without + * blocking. This is always equal to the initial capacity of this queue + * less the current size of this queue. + * + *

Note that you cannot always tell if an attempt to insert + * an element will succeed by inspecting remainingCapacity + * because it may be the case that another thread is about to + * insert or remove an element. + */ + public int remainingCapacity() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return items.length - count; + } finally { + lock.unlock(); + } + } + + /** + * Removes a single instance of the specified element from this queue, + * if it is present. More formally, removes an element e such + * that o.equals(e), if this queue contains one or more such + * elements. + * Returns true if this queue contained the specified element + * (or equivalently, if this queue changed as a result of the call). + * + * @param o element to be removed from this queue, if present + * @return true if this queue changed as a result of the call + */ + public boolean remove(Object o) { + if (o == null) return false; + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int i = takeIndex; + int k = 0; + for (;;) { + if (k++ >= count) + return false; + if (o.equals(items[i])) { + removeAt(i); + return true; + } + i = inc(i); + } + + } finally { + lock.unlock(); + } + } + + /** + * Returns true if this queue contains the specified element. + * More formally, returns true if and only if this queue contains + * at least one element e such that o.equals(e). + * + * @param o object to be checked for containment in this queue + * @return true if this queue contains the specified element + */ + public boolean contains(Object o) { + if (o == null) return false; + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int i = takeIndex; + int k = 0; + while (k++ < count) { + if (o.equals(items[i])) + return true; + i = inc(i); + } + return false; + } finally { + lock.unlock(); + } + } + + /** + * Returns an array containing all of the elements in this queue, in + * proper sequence. + * + *

The returned array will be "safe" in that no references to it are + * maintained by this queue. (In other words, this method must allocate + * a new array). The caller is thus free to modify the returned array. + * + *

This method acts as bridge between array-based and collection-based + * APIs. + * + * @return an array containing all of the elements in this queue + */ + public Object[] toArray() { + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + Object[] a = new Object[count]; + int k = 0; + int i = takeIndex; + while (k < count) { + a[k++] = items[i]; + i = inc(i); + } + return a; + } finally { + lock.unlock(); + } + } + + /** + * Returns an array containing all of the elements in this queue, in + * proper sequence; the runtime type of the returned array is that of + * the specified array. If the queue fits in the specified array, it + * is returned therein. Otherwise, a new array is allocated with the + * runtime type of the specified array and the size of this queue. + * + *

If this queue fits in the specified array with room to spare + * (i.e., the array has more elements than this queue), the element in + * the array immediately following the end of the queue is set to + * null. + * + *

Like the {@link #toArray()} method, this method acts as bridge between + * array-based and collection-based APIs. Further, this method allows + * precise control over the runtime type of the output array, and may, + * under certain circumstances, be used to save allocation costs. + * + *

Suppose x is a queue known to contain only strings. + * The following code can be used to dump the queue into a newly + * allocated array of String: + * + *

+     *     String[] y = x.toArray(new String[0]);
+ * + * Note that toArray(new Object[0]) is identical in function to + * toArray(). + * + * @param a the array into which the elements of the queue are to + * be stored, if it is big enough; otherwise, a new array of the + * same runtime type is allocated for this purpose + * @return an array containing all of the elements in this queue + * @throws ArrayStoreException if the runtime type of the specified array + * is not a supertype of the runtime type of every element in + * this queue + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + if (a.length < count) + a = (T[])java.lang.reflect.Array.newInstance( + a.getClass().getComponentType(), + count + ); + + int k = 0; + int i = takeIndex; + while (k < count) { + a[k++] = (T)items[i]; + i = inc(i); + } + if (a.length > count) + a[count] = null; + return a; + } finally { + lock.unlock(); + } + } + + public String toString() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return super.toString(); + } finally { + lock.unlock(); + } + } + + /** + * Atomically removes all of the elements from this queue. + * The queue will be empty after this call returns. + */ + public void clear() { + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int i = takeIndex; + int k = count; + while (k-- > 0) { + items[i] = null; + i = inc(i); + } + count = 0; + putIndex = 0; + takeIndex = 0; + notFull.signalAll(); + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int i = takeIndex; + int n = 0; + int max = count; + while (n < max) { + c.add(items[i]); + items[i] = null; + i = inc(i); + ++n; + } + if (n > 0) { + count = 0; + putIndex = 0; + takeIndex = 0; + notFull.signalAll(); + } + return n; + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c, int maxElements) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + if (maxElements <= 0) + return 0; + final E[] items = this.items; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int i = takeIndex; + int n = 0; + int sz = count; + int max = (maxElements < count)? maxElements : count; + while (n < max) { + c.add(items[i]); + items[i] = null; + i = inc(i); + ++n; + } + if (n > 0) { + count -= n; + takeIndex = i; + notFull.signalAll(); + } + return n; + } finally { + lock.unlock(); + } + } + + + /** + * Returns an iterator over the elements in this queue in proper sequence. + * The returned Iterator is a "weakly consistent" iterator that + * will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + * @return an iterator over the elements in this queue in proper sequence + */ + public Iterator iterator() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return new Itr(); + } finally { + lock.unlock(); + } + } + + /** + * Iterator for ArrayBlockingQueue + */ + private class Itr implements Iterator { + /** + * Index of element to be returned by next, + * or a negative number if no such. + */ + private int nextIndex; + + /** + * nextItem holds on to item fields because once we claim + * that an element exists in hasNext(), we must return it in + * the following next() call even if it was in the process of + * being removed when hasNext() was called. + */ + private E nextItem; + + /** + * Index of element returned by most recent call to next. + * Reset to -1 if this element is deleted by a call to remove. + */ + private int lastRet; + + Itr() { + lastRet = -1; + if (count == 0) + nextIndex = -1; + else { + nextIndex = takeIndex; + nextItem = items[takeIndex]; + } + } + + public boolean hasNext() { + /* + * No sync. We can return true by mistake here + * only if this iterator passed across threads, + * which we don't support anyway. + */ + return nextIndex >= 0; + } + + /** + * Checks whether nextIndex is valid; if so setting nextItem. + * Stops iterator when either hits putIndex or sees null item. + */ + private void checkNext() { + if (nextIndex == putIndex) { + nextIndex = -1; + nextItem = null; + } else { + nextItem = items[nextIndex]; + if (nextItem == null) + nextIndex = -1; + } + } + + public E next() { + final ReentrantLock lock = ArrayBlockingQueue.this.lock; + lock.lock(); + try { + if (nextIndex < 0) + throw new NoSuchElementException(); + lastRet = nextIndex; + E x = nextItem; + nextIndex = inc(nextIndex); + checkNext(); + return x; + } finally { + lock.unlock(); + } + } + + public void remove() { + final ReentrantLock lock = ArrayBlockingQueue.this.lock; + lock.lock(); + try { + int i = lastRet; + if (i == -1) + throw new IllegalStateException(); + lastRet = -1; + + int ti = takeIndex; + removeAt(i); + // back up cursor (reset to front if was first element) + nextIndex = (i == ti) ? takeIndex : i; + checkNext(); + } finally { + lock.unlock(); + } + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/BlockingDeque.java b/libjava/classpath/external/jsr166/java/util/concurrent/BlockingDeque.java new file mode 100644 index 00000000000..d77a96555ad --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/BlockingDeque.java @@ -0,0 +1,613 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; + +/** + * A {@link Deque} that additionally supports blocking operations that wait + * for the deque to become non-empty when retrieving an element, and wait for + * space to become available in the deque when storing an element. + * + *

BlockingDeque methods come in four forms, with different ways + * of handling operations that cannot be satisfied immediately, but may be + * satisfied at some point in the future: + * one throws an exception, the second returns a special value (either + * null or false, depending on the operation), the third + * blocks the current thread indefinitely until the operation can succeed, + * and the fourth blocks for only a given maximum time limit before giving + * up. These methods are summarized in the following table: + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
First Element (Head)
Throws exceptionSpecial valueBlocksTimes out
Insert{@link #addFirst addFirst(e)}{@link #offerFirst(Object) offerFirst(e)}{@link #putFirst putFirst(e)}{@link #offerFirst(Object, long, TimeUnit) offerFirst(e, time, unit)}
Remove{@link #removeFirst removeFirst()}{@link #pollFirst pollFirst()}{@link #takeFirst takeFirst()}{@link #pollFirst(long, TimeUnit) pollFirst(time, unit)}
Examine{@link #getFirst getFirst()}{@link #peekFirst peekFirst()}not applicablenot applicable
Last Element (Tail)
Throws exceptionSpecial valueBlocksTimes out
Insert{@link #addLast addLast(e)}{@link #offerLast(Object) offerLast(e)}{@link #putLast putLast(e)}{@link #offerLast(Object, long, TimeUnit) offerLast(e, time, unit)}
Remove{@link #removeLast() removeLast()}{@link #pollLast() pollLast()}{@link #takeLast takeLast()}{@link #pollLast(long, TimeUnit) pollLast(time, unit)}
Examine{@link #getLast getLast()}{@link #peekLast peekLast()}not applicablenot applicable
+ * + *

Like any {@link BlockingQueue}, a BlockingDeque is thread safe, + * does not permit null elements, and may (or may not) be + * capacity-constrained. + * + *

A BlockingDeque implementation may be used directly as a FIFO + * BlockingQueue. The methods inherited from the + * BlockingQueue interface are precisely equivalent to + * BlockingDeque methods as indicated in the following table: + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
BlockingQueue Method Equivalent BlockingDeque Method
Insert
{@link #add(Object) add(e)}{@link #addLast(Object) addLast(e)}
{@link #offer(Object) offer(e)}{@link #offerLast(Object) offerLast(e)}
{@link #put(Object) put(e)}{@link #putLast(Object) putLast(e)}
{@link #offer(Object, long, TimeUnit) offer(e, time, unit)}{@link #offerLast(Object, long, TimeUnit) offerLast(e, time, unit)}
Remove
{@link #remove() remove()}{@link #removeFirst() removeFirst()}
{@link #poll() poll()}{@link #pollFirst() pollFirst()}
{@link #take() take()}{@link #takeFirst() takeFirst()}
{@link #poll(long, TimeUnit) poll(time, unit)}{@link #pollFirst(long, TimeUnit) pollFirst(time, unit)}
Examine
{@link #element() element()}{@link #getFirst() getFirst()}
{@link #peek() peek()}{@link #peekFirst() peekFirst()}
+ * + *

Memory consistency effects: As with other concurrent + * collections, actions in a thread prior to placing an object into a + * {@code BlockingDeque} + * happen-before + * actions subsequent to the access or removal of that element from + * the {@code BlockingDeque} in another thread. + * + *

This interface is a member of the + * + * Java Collections Framework. + * + * @since 1.6 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public interface BlockingDeque extends BlockingQueue, Deque { + /* + * We have "diamond" multiple interface inheritance here, and that + * introduces ambiguities. Methods might end up with different + * specs depending on the branch chosen by javadoc. Thus a lot of + * methods specs here are copied from superinterfaces. + */ + + /** + * Inserts the specified element at the front of this deque if it is + * possible to do so immediately without violating capacity restrictions, + * throwing an IllegalStateException if no space is currently + * available. When using a capacity-restricted deque, it is generally + * preferable to use {@link #offerFirst(Object) offerFirst}. + * + * @param e the element to add + * @throws IllegalStateException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException {@inheritDoc} + */ + void addFirst(E e); + + /** + * Inserts the specified element at the end of this deque if it is + * possible to do so immediately without violating capacity restrictions, + * throwing an IllegalStateException if no space is currently + * available. When using a capacity-restricted deque, it is generally + * preferable to use {@link #offerLast(Object) offerLast}. + * + * @param e the element to add + * @throws IllegalStateException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException {@inheritDoc} + */ + void addLast(E e); + + /** + * Inserts the specified element at the front of this deque if it is + * possible to do so immediately without violating capacity restrictions, + * returning true upon success and false if no space is + * currently available. + * When using a capacity-restricted deque, this method is generally + * preferable to the {@link #addFirst(Object) addFirst} method, which can + * fail to insert an element only by throwing an exception. + * + * @param e the element to add + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException {@inheritDoc} + */ + boolean offerFirst(E e); + + /** + * Inserts the specified element at the end of this deque if it is + * possible to do so immediately without violating capacity restrictions, + * returning true upon success and false if no space is + * currently available. + * When using a capacity-restricted deque, this method is generally + * preferable to the {@link #addLast(Object) addLast} method, which can + * fail to insert an element only by throwing an exception. + * + * @param e the element to add + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException {@inheritDoc} + */ + boolean offerLast(E e); + + /** + * Inserts the specified element at the front of this deque, + * waiting if necessary for space to become available. + * + * @param e the element to add + * @throws InterruptedException if interrupted while waiting + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void putFirst(E e) throws InterruptedException; + + /** + * Inserts the specified element at the end of this deque, + * waiting if necessary for space to become available. + * + * @param e the element to add + * @throws InterruptedException if interrupted while waiting + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void putLast(E e) throws InterruptedException; + + /** + * Inserts the specified element at the front of this deque, + * waiting up to the specified wait time if necessary for space to + * become available. + * + * @param e the element to add + * @param timeout how long to wait before giving up, in units of + * unit + * @param unit a TimeUnit determining how to interpret the + * timeout parameter + * @return true if successful, or false if + * the specified waiting time elapses before space is available + * @throws InterruptedException if interrupted while waiting + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean offerFirst(E e, long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Inserts the specified element at the end of this deque, + * waiting up to the specified wait time if necessary for space to + * become available. + * + * @param e the element to add + * @param timeout how long to wait before giving up, in units of + * unit + * @param unit a TimeUnit determining how to interpret the + * timeout parameter + * @return true if successful, or false if + * the specified waiting time elapses before space is available + * @throws InterruptedException if interrupted while waiting + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean offerLast(E e, long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Retrieves and removes the first element of this deque, waiting + * if necessary until an element becomes available. + * + * @return the head of this deque + * @throws InterruptedException if interrupted while waiting + */ + E takeFirst() throws InterruptedException; + + /** + * Retrieves and removes the last element of this deque, waiting + * if necessary until an element becomes available. + * + * @return the tail of this deque + * @throws InterruptedException if interrupted while waiting + */ + E takeLast() throws InterruptedException; + + /** + * Retrieves and removes the first element of this deque, waiting + * up to the specified wait time if necessary for an element to + * become available. + * + * @param timeout how long to wait before giving up, in units of + * unit + * @param unit a TimeUnit determining how to interpret the + * timeout parameter + * @return the head of this deque, or null if the specified + * waiting time elapses before an element is available + * @throws InterruptedException if interrupted while waiting + */ + E pollFirst(long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Retrieves and removes the last element of this deque, waiting + * up to the specified wait time if necessary for an element to + * become available. + * + * @param timeout how long to wait before giving up, in units of + * unit + * @param unit a TimeUnit determining how to interpret the + * timeout parameter + * @return the tail of this deque, or null if the specified + * waiting time elapses before an element is available + * @throws InterruptedException if interrupted while waiting + */ + E pollLast(long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Removes the first occurrence of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the first element e such that + * o.equals(e) (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + * @param o element to be removed from this deque, if present + * @return true if an element was removed as a result of this call + * @throws ClassCastException if the class of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null (optional) + */ + boolean removeFirstOccurrence(Object o); + + /** + * Removes the last occurrence of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the last element e such that + * o.equals(e) (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + * @param o element to be removed from this deque, if present + * @return true if an element was removed as a result of this call + * @throws ClassCastException if the class of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null (optional) + */ + boolean removeLastOccurrence(Object o); + + // *** BlockingQueue methods *** + + /** + * Inserts the specified element into the queue represented by this deque + * (in other words, at the tail of this deque) if it is possible to do so + * immediately without violating capacity restrictions, returning + * true upon success and throwing an + * IllegalStateException if no space is currently available. + * When using a capacity-restricted deque, it is generally preferable to + * use {@link #offer(Object) offer}. + * + *

This method is equivalent to {@link #addLast(Object) addLast}. + * + * @param e the element to add + * @throws IllegalStateException {@inheritDoc} + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean add(E e); + + /** + * Inserts the specified element into the queue represented by this deque + * (in other words, at the tail of this deque) if it is possible to do so + * immediately without violating capacity restrictions, returning + * true upon success and false if no space is currently + * available. When using a capacity-restricted deque, this method is + * generally preferable to the {@link #add} method, which can fail to + * insert an element only by throwing an exception. + * + *

This method is equivalent to {@link #offerLast(Object) offerLast}. + * + * @param e the element to add + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean offer(E e); + + /** + * Inserts the specified element into the queue represented by this deque + * (in other words, at the tail of this deque), waiting if necessary for + * space to become available. + * + *

This method is equivalent to {@link #putLast(Object) putLast}. + * + * @param e the element to add + * @throws InterruptedException {@inheritDoc} + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void put(E e) throws InterruptedException; + + /** + * Inserts the specified element into the queue represented by this deque + * (in other words, at the tail of this deque), waiting up to the + * specified wait time if necessary for space to become available. + * + *

This method is equivalent to + * {@link #offerLast(Object,long,TimeUnit) offerLast}. + * + * @param e the element to add + * @return true if the element was added to this deque, else + * false + * @throws InterruptedException {@inheritDoc} + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this deque + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + boolean offer(E e, long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Retrieves and removes the head of the queue represented by this deque + * (in other words, the first element of this deque). + * This method differs from {@link #poll poll} only in that it + * throws an exception if this deque is empty. + * + *

This method is equivalent to {@link #removeFirst() removeFirst}. + * + * @return the head of the queue represented by this deque + * @throws NoSuchElementException if this deque is empty + */ + E remove(); + + /** + * Retrieves and removes the head of the queue represented by this deque + * (in other words, the first element of this deque), or returns + * null if this deque is empty. + * + *

This method is equivalent to {@link #pollFirst()}. + * + * @return the head of this deque, or null if this deque is empty + */ + E poll(); + + /** + * Retrieves and removes the head of the queue represented by this deque + * (in other words, the first element of this deque), waiting if + * necessary until an element becomes available. + * + *

This method is equivalent to {@link #takeFirst() takeFirst}. + * + * @return the head of this deque + * @throws InterruptedException if interrupted while waiting + */ + E take() throws InterruptedException; + + /** + * Retrieves and removes the head of the queue represented by this deque + * (in other words, the first element of this deque), waiting up to the + * specified wait time if necessary for an element to become available. + * + *

This method is equivalent to + * {@link #pollFirst(long,TimeUnit) pollFirst}. + * + * @return the head of this deque, or null if the + * specified waiting time elapses before an element is available + * @throws InterruptedException if interrupted while waiting + */ + E poll(long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Retrieves, but does not remove, the head of the queue represented by + * this deque (in other words, the first element of this deque). + * This method differs from {@link #peek peek} only in that it throws an + * exception if this deque is empty. + * + *

This method is equivalent to {@link #getFirst() getFirst}. + * + * @return the head of this deque + * @throws NoSuchElementException if this deque is empty + */ + E element(); + + /** + * Retrieves, but does not remove, the head of the queue represented by + * this deque (in other words, the first element of this deque), or + * returns null if this deque is empty. + * + *

This method is equivalent to {@link #peekFirst() peekFirst}. + * + * @return the head of this deque, or null if this deque is empty + */ + E peek(); + + /** + * Removes the first occurrence of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the first element e such that + * o.equals(e) (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + *

This method is equivalent to + * {@link #removeFirstOccurrence(Object) removeFirstOccurrence}. + * + * @param o element to be removed from this deque, if present + * @return true if this deque changed as a result of the call + * @throws ClassCastException if the class of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null (optional) + */ + boolean remove(Object o); + + /** + * Returns true if this deque contains the specified element. + * More formally, returns true if and only if this deque contains + * at least one element e such that o.equals(e). + * + * @param o object to be checked for containment in this deque + * @return true if this deque contains the specified element + * @throws ClassCastException if the class of the specified element + * is incompatible with this deque (optional) + * @throws NullPointerException if the specified element is null (optional) + */ + public boolean contains(Object o); + + /** + * Returns the number of elements in this deque. + * + * @return the number of elements in this deque + */ + public int size(); + + /** + * Returns an iterator over the elements in this deque in proper sequence. + * The elements will be returned in order from first (head) to last (tail). + * + * @return an iterator over the elements in this deque in proper sequence + */ + Iterator iterator(); + + // *** Stack methods *** + + /** + * Pushes an element onto the stack represented by this deque. In other + * words, inserts the element at the front of this deque unless it would + * violate capacity restrictions. + * + *

This method is equivalent to {@link #addFirst(Object) addFirst}. + * + * @throws IllegalStateException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException {@inheritDoc} + */ + void push(E e); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/BlockingQueue.java b/libjava/classpath/external/jsr166/java/util/concurrent/BlockingQueue.java new file mode 100644 index 00000000000..b47cc984273 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/BlockingQueue.java @@ -0,0 +1,344 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +import java.util.Collection; +import java.util.Queue; + +/** + * A {@link java.util.Queue} that additionally supports operations + * that wait for the queue to become non-empty when retrieving an + * element, and wait for space to become available in the queue when + * storing an element. + * + *

BlockingQueue methods come in four forms, with different ways + * of handling operations that cannot be satisfied immediately, but may be + * satisfied at some point in the future: + * one throws an exception, the second returns a special value (either + * null or false, depending on the operation), the third + * blocks the current thread indefinitely until the operation can succeed, + * and the fourth blocks for only a given maximum time limit before giving + * up. These methods are summarized in the following table: + * + *

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Throws exceptionSpecial valueBlocksTimes out
Insert{@link #add add(e)}{@link #offer offer(e)}{@link #put put(e)}{@link #offer(Object, long, TimeUnit) offer(e, time, unit)}
Remove{@link #remove remove()}{@link #poll poll()}{@link #take take()}{@link #poll(long, TimeUnit) poll(time, unit)}
Examine{@link #element element()}{@link #peek peek()}not applicablenot applicable
+ * + *

A BlockingQueue does not accept null elements. + * Implementations throw NullPointerException on attempts + * to add, put or offer a null. A + * null is used as a sentinel value to indicate failure of + * poll operations. + * + *

A BlockingQueue may be capacity bounded. At any given + * time it may have a remainingCapacity beyond which no + * additional elements can be put without blocking. + * A BlockingQueue without any intrinsic capacity constraints always + * reports a remaining capacity of Integer.MAX_VALUE. + * + *

BlockingQueue implementations are designed to be used + * primarily for producer-consumer queues, but additionally support + * the {@link java.util.Collection} interface. So, for example, it is + * possible to remove an arbitrary element from a queue using + * remove(x). However, such operations are in general + * not performed very efficiently, and are intended for only + * occasional use, such as when a queued message is cancelled. + * + *

BlockingQueue implementations are thread-safe. All + * queuing methods achieve their effects atomically using internal + * locks or other forms of concurrency control. However, the + * bulk Collection operations addAll, + * containsAll, retainAll and removeAll are + * not necessarily performed atomically unless specified + * otherwise in an implementation. So it is possible, for example, for + * addAll(c) to fail (throwing an exception) after adding + * only some of the elements in c. + * + *

A BlockingQueue does not intrinsically support + * any kind of "close" or "shutdown" operation to + * indicate that no more items will be added. The needs and usage of + * such features tend to be implementation-dependent. For example, a + * common tactic is for producers to insert special + * end-of-stream or poison objects, that are + * interpreted accordingly when taken by consumers. + * + *

+ * Usage example, based on a typical producer-consumer scenario. + * Note that a BlockingQueue can safely be used with multiple + * producers and multiple consumers. + *

+ * class Producer implements Runnable {
+ *   private final BlockingQueue queue;
+ *   Producer(BlockingQueue q) { queue = q; }
+ *   public void run() {
+ *     try {
+ *       while (true) { queue.put(produce()); }
+ *     } catch (InterruptedException ex) { ... handle ...}
+ *   }
+ *   Object produce() { ... }
+ * }
+ *
+ * class Consumer implements Runnable {
+ *   private final BlockingQueue queue;
+ *   Consumer(BlockingQueue q) { queue = q; }
+ *   public void run() {
+ *     try {
+ *       while (true) { consume(queue.take()); }
+ *     } catch (InterruptedException ex) { ... handle ...}
+ *   }
+ *   void consume(Object x) { ... }
+ * }
+ *
+ * class Setup {
+ *   void main() {
+ *     BlockingQueue q = new SomeQueueImplementation();
+ *     Producer p = new Producer(q);
+ *     Consumer c1 = new Consumer(q);
+ *     Consumer c2 = new Consumer(q);
+ *     new Thread(p).start();
+ *     new Thread(c1).start();
+ *     new Thread(c2).start();
+ *   }
+ * }
+ * 
+ * + *

Memory consistency effects: As with other concurrent + * collections, actions in a thread prior to placing an object into a + * {@code BlockingQueue} + * happen-before + * actions subsequent to the access or removal of that element from + * the {@code BlockingQueue} in another thread. + * + *

This interface is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public interface BlockingQueue extends Queue { + /** + * Inserts the specified element into this queue if it is possible to do + * so immediately without violating capacity restrictions, returning + * true upon success and throwing an + * IllegalStateException if no space is currently available. + * When using a capacity-restricted queue, it is generally preferable to + * use {@link #offer(Object) offer}. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this queue + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this queue + */ + boolean add(E e); + + /** + * Inserts the specified element into this queue if it is possible to do + * so immediately without violating capacity restrictions, returning + * true upon success and false if no space is currently + * available. When using a capacity-restricted queue, this method is + * generally preferable to {@link #add}, which can fail to insert an + * element only by throwing an exception. + * + * @param e the element to add + * @return true if the element was added to this queue, else + * false + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this queue + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this queue + */ + boolean offer(E e); + + /** + * Inserts the specified element into this queue, waiting if necessary + * for space to become available. + * + * @param e the element to add + * @throws InterruptedException if interrupted while waiting + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this queue + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this queue + */ + void put(E e) throws InterruptedException; + + /** + * Inserts the specified element into this queue, waiting up to the + * specified wait time if necessary for space to become available. + * + * @param e the element to add + * @param timeout how long to wait before giving up, in units of + * unit + * @param unit a TimeUnit determining how to interpret the + * timeout parameter + * @return true if successful, or false if + * the specified waiting time elapses before space is available + * @throws InterruptedException if interrupted while waiting + * @throws ClassCastException if the class of the specified element + * prevents it from being added to this queue + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this queue + */ + boolean offer(E e, long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Retrieves and removes the head of this queue, waiting if necessary + * until an element becomes available. + * + * @return the head of this queue + * @throws InterruptedException if interrupted while waiting + */ + E take() throws InterruptedException; + + /** + * Retrieves and removes the head of this queue, waiting up to the + * specified wait time if necessary for an element to become available. + * + * @param timeout how long to wait before giving up, in units of + * unit + * @param unit a TimeUnit determining how to interpret the + * timeout parameter + * @return the head of this queue, or null if the + * specified waiting time elapses before an element is available + * @throws InterruptedException if interrupted while waiting + */ + E poll(long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Returns the number of additional elements that this queue can ideally + * (in the absence of memory or resource constraints) accept without + * blocking, or Integer.MAX_VALUE if there is no intrinsic + * limit. + * + *

Note that you cannot always tell if an attempt to insert + * an element will succeed by inspecting remainingCapacity + * because it may be the case that another thread is about to + * insert or remove an element. + * + * @return the remaining capacity + */ + int remainingCapacity(); + + /** + * Removes a single instance of the specified element from this queue, + * if it is present. More formally, removes an element e such + * that o.equals(e), if this queue contains one or more such + * elements. + * Returns true if this queue contained the specified element + * (or equivalently, if this queue changed as a result of the call). + * + * @param o element to be removed from this queue, if present + * @return true if this queue changed as a result of the call + * @throws ClassCastException if the class of the specified element + * is incompatible with this queue (optional) + * @throws NullPointerException if the specified element is null (optional) + */ + boolean remove(Object o); + + /** + * Returns true if this queue contains the specified element. + * More formally, returns true if and only if this queue contains + * at least one element e such that o.equals(e). + * + * @param o object to be checked for containment in this queue + * @return true if this queue contains the specified element + * @throws ClassCastException if the class of the specified element + * is incompatible with this queue (optional) + * @throws NullPointerException if the specified element is null (optional) + */ + public boolean contains(Object o); + + /** + * Removes all available elements from this queue and adds them + * to the given collection. This operation may be more + * efficient than repeatedly polling this queue. A failure + * encountered while attempting to add elements to + * collection c may result in elements being in neither, + * either or both collections when the associated exception is + * thrown. Attempts to drain a queue to itself result in + * IllegalArgumentException. Further, the behavior of + * this operation is undefined if the specified collection is + * modified while the operation is in progress. + * + * @param c the collection to transfer elements into + * @return the number of elements transferred + * @throws UnsupportedOperationException if addition of elements + * is not supported by the specified collection + * @throws ClassCastException if the class of an element of this queue + * prevents it from being added to the specified collection + * @throws NullPointerException if the specified collection is null + * @throws IllegalArgumentException if the specified collection is this + * queue, or some property of an element of this queue prevents + * it from being added to the specified collection + */ + int drainTo(Collection c); + + /** + * Removes at most the given number of available elements from + * this queue and adds them to the given collection. A failure + * encountered while attempting to add elements to + * collection c may result in elements being in neither, + * either or both collections when the associated exception is + * thrown. Attempts to drain a queue to itself result in + * IllegalArgumentException. Further, the behavior of + * this operation is undefined if the specified collection is + * modified while the operation is in progress. + * + * @param c the collection to transfer elements into + * @param maxElements the maximum number of elements to transfer + * @return the number of elements transferred + * @throws UnsupportedOperationException if addition of elements + * is not supported by the specified collection + * @throws ClassCastException if the class of an element of this queue + * prevents it from being added to the specified collection + * @throws NullPointerException if the specified collection is null + * @throws IllegalArgumentException if the specified collection is this + * queue, or some property of an element of this queue prevents + * it from being added to the specified collection + */ + int drainTo(Collection c, int maxElements); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/BrokenBarrierException.java b/libjava/classpath/external/jsr166/java/util/concurrent/BrokenBarrierException.java new file mode 100644 index 00000000000..3f93fbb9dc4 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/BrokenBarrierException.java @@ -0,0 +1,38 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * Exception thrown when a thread tries to wait upon a barrier that is + * in a broken state, or which enters the broken state while the thread + * is waiting. + * + * @see CyclicBarrier + * + * @since 1.5 + * @author Doug Lea + * + */ +public class BrokenBarrierException extends Exception { + private static final long serialVersionUID = 7117394618823254244L; + + /** + * Constructs a BrokenBarrierException with no specified detail + * message. + */ + public BrokenBarrierException() {} + + /** + * Constructs a BrokenBarrierException with the specified + * detail message. + * + * @param message the detail message + */ + public BrokenBarrierException(String message) { + super(message); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/Callable.java b/libjava/classpath/external/jsr166/java/util/concurrent/Callable.java new file mode 100644 index 00000000000..abc4d04075a --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/Callable.java @@ -0,0 +1,36 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A task that returns a result and may throw an exception. + * Implementors define a single method with no arguments called + * call. + * + *

The Callable interface is similar to {@link + * java.lang.Runnable}, in that both are designed for classes whose + * instances are potentially executed by another thread. A + * Runnable, however, does not return a result and cannot + * throw a checked exception. + * + *

The {@link Executors} class contains utility methods to + * convert from other common forms to Callable classes. + * + * @see Executor + * @since 1.5 + * @author Doug Lea + * @param the result type of method call + */ +public interface Callable { + /** + * Computes a result, or throws an exception if unable to do so. + * + * @return computed result + * @throws Exception if unable to compute a result + */ + V call() throws Exception; +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/CancellationException.java b/libjava/classpath/external/jsr166/java/util/concurrent/CancellationException.java new file mode 100644 index 00000000000..2c29544a0ea --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/CancellationException.java @@ -0,0 +1,34 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * Exception indicating that the result of a value-producing task, + * such as a {@link FutureTask}, cannot be retrieved because the task + * was cancelled. + * + * @since 1.5 + * @author Doug Lea + */ +public class CancellationException extends IllegalStateException { + private static final long serialVersionUID = -9202173006928992231L; + + /** + * Constructs a CancellationException with no detail message. + */ + public CancellationException() {} + + /** + * Constructs a CancellationException with the specified detail + * message. + * + * @param message the detail message + */ + public CancellationException(String message) { + super(message); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/CompletionService.java b/libjava/classpath/external/jsr166/java/util/concurrent/CompletionService.java new file mode 100644 index 00000000000..df9f719c49d --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/CompletionService.java @@ -0,0 +1,97 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A service that decouples the production of new asynchronous tasks + * from the consumption of the results of completed tasks. Producers + * submit tasks for execution. Consumers take + * completed tasks and process their results in the order they + * complete. A CompletionService can for example be used to + * manage asynchronous IO, in which tasks that perform reads are + * submitted in one part of a program or system, and then acted upon + * in a different part of the program when the reads complete, + * possibly in a different order than they were requested. + * + *

Typically, a CompletionService relies on a separate + * {@link Executor} to actually execute the tasks, in which case the + * CompletionService only manages an internal completion + * queue. The {@link ExecutorCompletionService} class provides an + * implementation of this approach. + * + *

Memory consistency effects: Actions in a thread prior to + * submitting a task to a {@code CompletionService} + * happen-before + * actions taken by that task, which in turn happen-before + * actions following a successful return from the corresponding {@code take()}. + * + */ +public interface CompletionService { + /** + * Submits a value-returning task for execution and returns a Future + * representing the pending results of the task. Upon completion, + * this task may be taken or polled. + * + * @param task the task to submit + * @return a Future representing pending completion of the task + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if the task is null + */ + Future submit(Callable task); + + /** + * Submits a Runnable task for execution and returns a Future + * representing that task. Upon completion, this task may be + * taken or polled. + * + * @param task the task to submit + * @param result the result to return upon successful completion + * @return a Future representing pending completion of the task, + * and whose get() method will return the given + * result value upon completion + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if the task is null + */ + Future submit(Runnable task, V result); + + /** + * Retrieves and removes the Future representing the next + * completed task, waiting if none are yet present. + * + * @return the Future representing the next completed task + * @throws InterruptedException if interrupted while waiting + */ + Future take() throws InterruptedException; + + + /** + * Retrieves and removes the Future representing the next + * completed task or null if none are present. + * + * @return the Future representing the next completed task, or + * null if none are present + */ + Future poll(); + + /** + * Retrieves and removes the Future representing the next + * completed task, waiting if necessary up to the specified wait + * time if none are yet present. + * + * @param timeout how long to wait before giving up, in units of + * unit + * @param unit a TimeUnit determining how to interpret the + * timeout parameter + * @return the Future representing the next completed task or + * null if the specified waiting time elapses + * before one is present + * @throws InterruptedException if interrupted while waiting + */ + Future poll(long timeout, TimeUnit unit) throws InterruptedException; +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java new file mode 100644 index 00000000000..7f6d4493c06 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java @@ -0,0 +1,1277 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.locks.*; +import java.util.*; +import java.io.Serializable; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +/** + * A hash table supporting full concurrency of retrievals and + * adjustable expected concurrency for updates. This class obeys the + * same functional specification as {@link java.util.Hashtable}, and + * includes versions of methods corresponding to each method of + * Hashtable. However, even though all operations are + * thread-safe, retrieval operations do not entail locking, + * and there is not any support for locking the entire table + * in a way that prevents all access. This class is fully + * interoperable with Hashtable in programs that rely on its + * thread safety but not on its synchronization details. + * + *

Retrieval operations (including get) generally do not + * block, so may overlap with update operations (including + * put and remove). Retrievals reflect the results + * of the most recently completed update operations holding + * upon their onset. For aggregate operations such as putAll + * and clear, concurrent retrievals may reflect insertion or + * removal of only some entries. Similarly, Iterators and + * Enumerations return elements reflecting the state of the hash table + * at some point at or since the creation of the iterator/enumeration. + * They do not throw {@link ConcurrentModificationException}. + * However, iterators are designed to be used by only one thread at a time. + * + *

The allowed concurrency among update operations is guided by + * the optional concurrencyLevel constructor argument + * (default 16), which is used as a hint for internal sizing. The + * table is internally partitioned to try to permit the indicated + * number of concurrent updates without contention. Because placement + * in hash tables is essentially random, the actual concurrency will + * vary. Ideally, you should choose a value to accommodate as many + * threads as will ever concurrently modify the table. Using a + * significantly higher value than you need can waste space and time, + * and a significantly lower value can lead to thread contention. But + * overestimates and underestimates within an order of magnitude do + * not usually have much noticeable impact. A value of one is + * appropriate when it is known that only one thread will modify and + * all others will only read. Also, resizing this or any other kind of + * hash table is a relatively slow operation, so, when possible, it is + * a good idea to provide estimates of expected table sizes in + * constructors. + * + *

This class and its views and iterators implement all of the + * optional methods of the {@link Map} and {@link Iterator} + * interfaces. + * + *

Like {@link Hashtable} but unlike {@link HashMap}, this class + * does not allow null to be used as a key or value. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of keys maintained by this map + * @param the type of mapped values + */ +public class ConcurrentHashMap extends AbstractMap + implements ConcurrentMap, Serializable { + private static final long serialVersionUID = 7249069246763182397L; + + /* + * The basic strategy is to subdivide the table among Segments, + * each of which itself is a concurrently readable hash table. + */ + + /* ---------------- Constants -------------- */ + + /** + * The default initial capacity for this table, + * used when not otherwise specified in a constructor. + */ + static final int DEFAULT_INITIAL_CAPACITY = 16; + + /** + * The default load factor for this table, used when not + * otherwise specified in a constructor. + */ + static final float DEFAULT_LOAD_FACTOR = 0.75f; + + /** + * The default concurrency level for this table, used when not + * otherwise specified in a constructor. + */ + static final int DEFAULT_CONCURRENCY_LEVEL = 16; + + /** + * The maximum capacity, used if a higher value is implicitly + * specified by either of the constructors with arguments. MUST + * be a power of two <= 1<<30 to ensure that entries are indexable + * using ints. + */ + static final int MAXIMUM_CAPACITY = 1 << 30; + + /** + * The maximum number of segments to allow; used to bound + * constructor arguments. + */ + static final int MAX_SEGMENTS = 1 << 16; // slightly conservative + + /** + * Number of unsynchronized retries in size and containsValue + * methods before resorting to locking. This is used to avoid + * unbounded retries if tables undergo continuous modification + * which would make it impossible to obtain an accurate result. + */ + static final int RETRIES_BEFORE_LOCK = 2; + + /* ---------------- Fields -------------- */ + + /** + * Mask value for indexing into segments. The upper bits of a + * key's hash code are used to choose the segment. + */ + final int segmentMask; + + /** + * Shift value for indexing within segments. + */ + final int segmentShift; + + /** + * The segments, each of which is a specialized hash table + */ + final Segment[] segments; + + transient Set keySet; + transient Set> entrySet; + transient Collection values; + + /* ---------------- Small Utilities -------------- */ + + /** + * Applies a supplemental hash function to a given hashCode, which + * defends against poor quality hash functions. This is critical + * because ConcurrentHashMap uses power-of-two length hash tables, + * that otherwise encounter collisions for hashCodes that do not + * differ in lower bits. + */ + private static int hash(int h) { + // This function ensures that hashCodes that differ only by + // constant multiples at each bit position have a bounded + // number of collisions (approximately 8 at default load factor). + h ^= (h >>> 20) ^ (h >>> 12); + return h ^ (h >>> 7) ^ (h >>> 4); + } + + /** + * Returns the segment that should be used for key with given hash + * @param hash the hash code for the key + * @return the segment + */ + final Segment segmentFor(int hash) { + return segments[(hash >>> segmentShift) & segmentMask]; + } + + /* ---------------- Inner Classes -------------- */ + + /** + * ConcurrentHashMap list entry. Note that this is never exported + * out as a user-visible Map.Entry. + * + * Because the value field is volatile, not final, it is legal wrt + * the Java Memory Model for an unsynchronized reader to see null + * instead of initial value when read via a data race. Although a + * reordering leading to this is not likely to ever actually + * occur, the Segment.readValueUnderLock method is used as a + * backup in case a null (pre-initialized) value is ever seen in + * an unsynchronized access method. + */ + static final class HashEntry { + final K key; + final int hash; + volatile V value; + final HashEntry next; + + HashEntry(K key, int hash, HashEntry next, V value) { + this.key = key; + this.hash = hash; + this.next = next; + this.value = value; + } + + @SuppressWarnings("unchecked") + static final HashEntry[] newArray(int i) { + return new HashEntry[i]; + } + } + + /** + * Segments are specialized versions of hash tables. This + * subclasses from ReentrantLock opportunistically, just to + * simplify some locking and avoid separate construction. + */ + static final class Segment extends ReentrantLock implements Serializable { + /* + * Segments maintain a table of entry lists that are ALWAYS + * kept in a consistent state, so can be read without locking. + * Next fields of nodes are immutable (final). All list + * additions are performed at the front of each bin. This + * makes it easy to check changes, and also fast to traverse. + * When nodes would otherwise be changed, new nodes are + * created to replace them. This works well for hash tables + * since the bin lists tend to be short. (The average length + * is less than two for the default load factor threshold.) + * + * Read operations can thus proceed without locking, but rely + * on selected uses of volatiles to ensure that completed + * write operations performed by other threads are + * noticed. For most purposes, the "count" field, tracking the + * number of elements, serves as that volatile variable + * ensuring visibility. This is convenient because this field + * needs to be read in many read operations anyway: + * + * - All (unsynchronized) read operations must first read the + * "count" field, and should not look at table entries if + * it is 0. + * + * - All (synchronized) write operations should write to + * the "count" field after structurally changing any bin. + * The operations must not take any action that could even + * momentarily cause a concurrent read operation to see + * inconsistent data. This is made easier by the nature of + * the read operations in Map. For example, no operation + * can reveal that the table has grown but the threshold + * has not yet been updated, so there are no atomicity + * requirements for this with respect to reads. + * + * As a guide, all critical volatile reads and writes to the + * count field are marked in code comments. + */ + + private static final long serialVersionUID = 2249069246763182397L; + + /** + * The number of elements in this segment's region. + */ + transient volatile int count; + + /** + * Number of updates that alter the size of the table. This is + * used during bulk-read methods to make sure they see a + * consistent snapshot: If modCounts change during a traversal + * of segments computing size or checking containsValue, then + * we might have an inconsistent view of state so (usually) + * must retry. + */ + transient int modCount; + + /** + * The table is rehashed when its size exceeds this threshold. + * (The value of this field is always (int)(capacity * + * loadFactor).) + */ + transient int threshold; + + /** + * The per-segment table. + */ + transient volatile HashEntry[] table; + + /** + * The load factor for the hash table. Even though this value + * is same for all segments, it is replicated to avoid needing + * links to outer object. + * @serial + */ + final float loadFactor; + + Segment(int initialCapacity, float lf) { + loadFactor = lf; + setTable(HashEntry.newArray(initialCapacity)); + } + + @SuppressWarnings("unchecked") + static final Segment[] newArray(int i) { + return new Segment[i]; + } + + /** + * Sets table to new HashEntry array. + * Call only while holding lock or in constructor. + */ + void setTable(HashEntry[] newTable) { + threshold = (int)(newTable.length * loadFactor); + table = newTable; + } + + /** + * Returns properly casted first entry of bin for given hash. + */ + HashEntry getFirst(int hash) { + HashEntry[] tab = table; + return tab[hash & (tab.length - 1)]; + } + + /** + * Reads value field of an entry under lock. Called if value + * field ever appears to be null. This is possible only if a + * compiler happens to reorder a HashEntry initialization with + * its table assignment, which is legal under memory model + * but is not known to ever occur. + */ + V readValueUnderLock(HashEntry e) { + lock(); + try { + return e.value; + } finally { + unlock(); + } + } + + /* Specialized implementations of map methods */ + + V get(Object key, int hash) { + if (count != 0) { // read-volatile + HashEntry e = getFirst(hash); + while (e != null) { + if (e.hash == hash && key.equals(e.key)) { + V v = e.value; + if (v != null) + return v; + return readValueUnderLock(e); // recheck + } + e = e.next; + } + } + return null; + } + + boolean containsKey(Object key, int hash) { + if (count != 0) { // read-volatile + HashEntry e = getFirst(hash); + while (e != null) { + if (e.hash == hash && key.equals(e.key)) + return true; + e = e.next; + } + } + return false; + } + + boolean containsValue(Object value) { + if (count != 0) { // read-volatile + HashEntry[] tab = table; + int len = tab.length; + for (int i = 0 ; i < len; i++) { + for (HashEntry e = tab[i]; e != null; e = e.next) { + V v = e.value; + if (v == null) // recheck + v = readValueUnderLock(e); + if (value.equals(v)) + return true; + } + } + } + return false; + } + + boolean replace(K key, int hash, V oldValue, V newValue) { + lock(); + try { + HashEntry e = getFirst(hash); + while (e != null && (e.hash != hash || !key.equals(e.key))) + e = e.next; + + boolean replaced = false; + if (e != null && oldValue.equals(e.value)) { + replaced = true; + e.value = newValue; + } + return replaced; + } finally { + unlock(); + } + } + + V replace(K key, int hash, V newValue) { + lock(); + try { + HashEntry e = getFirst(hash); + while (e != null && (e.hash != hash || !key.equals(e.key))) + e = e.next; + + V oldValue = null; + if (e != null) { + oldValue = e.value; + e.value = newValue; + } + return oldValue; + } finally { + unlock(); + } + } + + + V put(K key, int hash, V value, boolean onlyIfAbsent) { + lock(); + try { + int c = count; + if (c++ > threshold) // ensure capacity + rehash(); + HashEntry[] tab = table; + int index = hash & (tab.length - 1); + HashEntry first = tab[index]; + HashEntry e = first; + while (e != null && (e.hash != hash || !key.equals(e.key))) + e = e.next; + + V oldValue; + if (e != null) { + oldValue = e.value; + if (!onlyIfAbsent) + e.value = value; + } + else { + oldValue = null; + ++modCount; + tab[index] = new HashEntry(key, hash, first, value); + count = c; // write-volatile + } + return oldValue; + } finally { + unlock(); + } + } + + void rehash() { + HashEntry[] oldTable = table; + int oldCapacity = oldTable.length; + if (oldCapacity >= MAXIMUM_CAPACITY) + return; + + /* + * Reclassify nodes in each list to new Map. Because we are + * using power-of-two expansion, the elements from each bin + * must either stay at same index, or move with a power of two + * offset. We eliminate unnecessary node creation by catching + * cases where old nodes can be reused because their next + * fields won't change. Statistically, at the default + * threshold, only about one-sixth of them need cloning when + * a table doubles. The nodes they replace will be garbage + * collectable as soon as they are no longer referenced by any + * reader thread that may be in the midst of traversing table + * right now. + */ + + HashEntry[] newTable = HashEntry.newArray(oldCapacity<<1); + threshold = (int)(newTable.length * loadFactor); + int sizeMask = newTable.length - 1; + for (int i = 0; i < oldCapacity ; i++) { + // We need to guarantee that any existing reads of old Map can + // proceed. So we cannot yet null out each bin. + HashEntry e = oldTable[i]; + + if (e != null) { + HashEntry next = e.next; + int idx = e.hash & sizeMask; + + // Single node on list + if (next == null) + newTable[idx] = e; + + else { + // Reuse trailing consecutive sequence at same slot + HashEntry lastRun = e; + int lastIdx = idx; + for (HashEntry last = next; + last != null; + last = last.next) { + int k = last.hash & sizeMask; + if (k != lastIdx) { + lastIdx = k; + lastRun = last; + } + } + newTable[lastIdx] = lastRun; + + // Clone all remaining nodes + for (HashEntry p = e; p != lastRun; p = p.next) { + int k = p.hash & sizeMask; + HashEntry n = newTable[k]; + newTable[k] = new HashEntry(p.key, p.hash, + n, p.value); + } + } + } + } + table = newTable; + } + + /** + * Remove; match on key only if value null, else match both. + */ + V remove(Object key, int hash, Object value) { + lock(); + try { + int c = count - 1; + HashEntry[] tab = table; + int index = hash & (tab.length - 1); + HashEntry first = tab[index]; + HashEntry e = first; + while (e != null && (e.hash != hash || !key.equals(e.key))) + e = e.next; + + V oldValue = null; + if (e != null) { + V v = e.value; + if (value == null || value.equals(v)) { + oldValue = v; + // All entries following removed node can stay + // in list, but all preceding ones need to be + // cloned. + ++modCount; + HashEntry newFirst = e.next; + for (HashEntry p = first; p != e; p = p.next) + newFirst = new HashEntry(p.key, p.hash, + newFirst, p.value); + tab[index] = newFirst; + count = c; // write-volatile + } + } + return oldValue; + } finally { + unlock(); + } + } + + void clear() { + if (count != 0) { + lock(); + try { + HashEntry[] tab = table; + for (int i = 0; i < tab.length ; i++) + tab[i] = null; + ++modCount; + count = 0; // write-volatile + } finally { + unlock(); + } + } + } + } + + + + /* ---------------- Public operations -------------- */ + + /** + * Creates a new, empty map with the specified initial + * capacity, load factor and concurrency level. + * + * @param initialCapacity the initial capacity. The implementation + * performs internal sizing to accommodate this many elements. + * @param loadFactor the load factor threshold, used to control resizing. + * Resizing may be performed when the average number of elements per + * bin exceeds this threshold. + * @param concurrencyLevel the estimated number of concurrently + * updating threads. The implementation performs internal sizing + * to try to accommodate this many threads. + * @throws IllegalArgumentException if the initial capacity is + * negative or the load factor or concurrencyLevel are + * nonpositive. + */ + public ConcurrentHashMap(int initialCapacity, + float loadFactor, int concurrencyLevel) { + if (!(loadFactor > 0) || initialCapacity < 0 || concurrencyLevel <= 0) + throw new IllegalArgumentException(); + + if (concurrencyLevel > MAX_SEGMENTS) + concurrencyLevel = MAX_SEGMENTS; + + // Find power-of-two sizes best matching arguments + int sshift = 0; + int ssize = 1; + while (ssize < concurrencyLevel) { + ++sshift; + ssize <<= 1; + } + segmentShift = 32 - sshift; + segmentMask = ssize - 1; + this.segments = Segment.newArray(ssize); + + if (initialCapacity > MAXIMUM_CAPACITY) + initialCapacity = MAXIMUM_CAPACITY; + int c = initialCapacity / ssize; + if (c * ssize < initialCapacity) + ++c; + int cap = 1; + while (cap < c) + cap <<= 1; + + for (int i = 0; i < this.segments.length; ++i) + this.segments[i] = new Segment(cap, loadFactor); + } + + /** + * Creates a new, empty map with the specified initial capacity + * and load factor and with the default concurrencyLevel (16). + * + * @param initialCapacity The implementation performs internal + * sizing to accommodate this many elements. + * @param loadFactor the load factor threshold, used to control resizing. + * Resizing may be performed when the average number of elements per + * bin exceeds this threshold. + * @throws IllegalArgumentException if the initial capacity of + * elements is negative or the load factor is nonpositive + * + * @since 1.6 + */ + public ConcurrentHashMap(int initialCapacity, float loadFactor) { + this(initialCapacity, loadFactor, DEFAULT_CONCURRENCY_LEVEL); + } + + /** + * Creates a new, empty map with the specified initial capacity, + * and with default load factor (0.75) and concurrencyLevel (16). + * + * @param initialCapacity the initial capacity. The implementation + * performs internal sizing to accommodate this many elements. + * @throws IllegalArgumentException if the initial capacity of + * elements is negative. + */ + public ConcurrentHashMap(int initialCapacity) { + this(initialCapacity, DEFAULT_LOAD_FACTOR, DEFAULT_CONCURRENCY_LEVEL); + } + + /** + * Creates a new, empty map with a default initial capacity (16), + * load factor (0.75) and concurrencyLevel (16). + */ + public ConcurrentHashMap() { + this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_CONCURRENCY_LEVEL); + } + + /** + * Creates a new map with the same mappings as the given map. + * The map is created with a capacity of 1.5 times the number + * of mappings in the given map or 16 (whichever is greater), + * and a default load factor (0.75) and concurrencyLevel (16). + * + * @param m the map + */ + public ConcurrentHashMap(Map m) { + this(Math.max((int) (m.size() / DEFAULT_LOAD_FACTOR) + 1, + DEFAULT_INITIAL_CAPACITY), + DEFAULT_LOAD_FACTOR, DEFAULT_CONCURRENCY_LEVEL); + putAll(m); + } + + /** + * Returns true if this map contains no key-value mappings. + * + * @return true if this map contains no key-value mappings + */ + public boolean isEmpty() { + final Segment[] segments = this.segments; + /* + * We keep track of per-segment modCounts to avoid ABA + * problems in which an element in one segment was added and + * in another removed during traversal, in which case the + * table was never actually empty at any point. Note the + * similar use of modCounts in the size() and containsValue() + * methods, which are the only other methods also susceptible + * to ABA problems. + */ + int[] mc = new int[segments.length]; + int mcsum = 0; + for (int i = 0; i < segments.length; ++i) { + if (segments[i].count != 0) + return false; + else + mcsum += mc[i] = segments[i].modCount; + } + // If mcsum happens to be zero, then we know we got a snapshot + // before any modifications at all were made. This is + // probably common enough to bother tracking. + if (mcsum != 0) { + for (int i = 0; i < segments.length; ++i) { + if (segments[i].count != 0 || + mc[i] != segments[i].modCount) + return false; + } + } + return true; + } + + /** + * Returns the number of key-value mappings in this map. If the + * map contains more than Integer.MAX_VALUE elements, returns + * Integer.MAX_VALUE. + * + * @return the number of key-value mappings in this map + */ + public int size() { + final Segment[] segments = this.segments; + long sum = 0; + long check = 0; + int[] mc = new int[segments.length]; + // Try a few times to get accurate count. On failure due to + // continuous async changes in table, resort to locking. + for (int k = 0; k < RETRIES_BEFORE_LOCK; ++k) { + check = 0; + sum = 0; + int mcsum = 0; + for (int i = 0; i < segments.length; ++i) { + sum += segments[i].count; + mcsum += mc[i] = segments[i].modCount; + } + if (mcsum != 0) { + for (int i = 0; i < segments.length; ++i) { + check += segments[i].count; + if (mc[i] != segments[i].modCount) { + check = -1; // force retry + break; + } + } + } + if (check == sum) + break; + } + if (check != sum) { // Resort to locking all segments + sum = 0; + for (int i = 0; i < segments.length; ++i) + segments[i].lock(); + for (int i = 0; i < segments.length; ++i) + sum += segments[i].count; + for (int i = 0; i < segments.length; ++i) + segments[i].unlock(); + } + if (sum > Integer.MAX_VALUE) + return Integer.MAX_VALUE; + else + return (int)sum; + } + + /** + * Returns the value to which the specified key is mapped, + * or {@code null} if this map contains no mapping for the key. + * + *

More formally, if this map contains a mapping from a key + * {@code k} to a value {@code v} such that {@code key.equals(k)}, + * then this method returns {@code v}; otherwise it returns + * {@code null}. (There can be at most one such mapping.) + * + * @throws NullPointerException if the specified key is null + */ + public V get(Object key) { + int hash = hash(key.hashCode()); + return segmentFor(hash).get(key, hash); + } + + /** + * Tests if the specified object is a key in this table. + * + * @param key possible key + * @return true if and only if the specified object + * is a key in this table, as determined by the + * equals method; false otherwise. + * @throws NullPointerException if the specified key is null + */ + public boolean containsKey(Object key) { + int hash = hash(key.hashCode()); + return segmentFor(hash).containsKey(key, hash); + } + + /** + * Returns true if this map maps one or more keys to the + * specified value. Note: This method requires a full internal + * traversal of the hash table, and so is much slower than + * method containsKey. + * + * @param value value whose presence in this map is to be tested + * @return true if this map maps one or more keys to the + * specified value + * @throws NullPointerException if the specified value is null + */ + public boolean containsValue(Object value) { + if (value == null) + throw new NullPointerException(); + + // See explanation of modCount use above + + final Segment[] segments = this.segments; + int[] mc = new int[segments.length]; + + // Try a few times without locking + for (int k = 0; k < RETRIES_BEFORE_LOCK; ++k) { + int sum = 0; + int mcsum = 0; + for (int i = 0; i < segments.length; ++i) { + int c = segments[i].count; + mcsum += mc[i] = segments[i].modCount; + if (segments[i].containsValue(value)) + return true; + } + boolean cleanSweep = true; + if (mcsum != 0) { + for (int i = 0; i < segments.length; ++i) { + int c = segments[i].count; + if (mc[i] != segments[i].modCount) { + cleanSweep = false; + break; + } + } + } + if (cleanSweep) + return false; + } + // Resort to locking all segments + for (int i = 0; i < segments.length; ++i) + segments[i].lock(); + boolean found = false; + try { + for (int i = 0; i < segments.length; ++i) { + if (segments[i].containsValue(value)) { + found = true; + break; + } + } + } finally { + for (int i = 0; i < segments.length; ++i) + segments[i].unlock(); + } + return found; + } + + /** + * Legacy method testing if some key maps into the specified value + * in this table. This method is identical in functionality to + * {@link #containsValue}, and exists solely to ensure + * full compatibility with class {@link java.util.Hashtable}, + * which supported this method prior to introduction of the + * Java Collections framework. + + * @param value a value to search for + * @return true if and only if some key maps to the + * value argument in this table as + * determined by the equals method; + * false otherwise + * @throws NullPointerException if the specified value is null + */ + public boolean contains(Object value) { + return containsValue(value); + } + + /** + * Maps the specified key to the specified value in this table. + * Neither the key nor the value can be null. + * + *

The value can be retrieved by calling the get method + * with a key that is equal to the original key. + * + * @param key key with which the specified value is to be associated + * @param value value to be associated with the specified key + * @return the previous value associated with key, or + * null if there was no mapping for key + * @throws NullPointerException if the specified key or value is null + */ + public V put(K key, V value) { + if (value == null) + throw new NullPointerException(); + int hash = hash(key.hashCode()); + return segmentFor(hash).put(key, hash, value, false); + } + + /** + * {@inheritDoc} + * + * @return the previous value associated with the specified key, + * or null if there was no mapping for the key + * @throws NullPointerException if the specified key or value is null + */ + public V putIfAbsent(K key, V value) { + if (value == null) + throw new NullPointerException(); + int hash = hash(key.hashCode()); + return segmentFor(hash).put(key, hash, value, true); + } + + /** + * Copies all of the mappings from the specified map to this one. + * These mappings replace any mappings that this map had for any of the + * keys currently in the specified map. + * + * @param m mappings to be stored in this map + */ + public void putAll(Map m) { + for (Map.Entry e : m.entrySet()) + put(e.getKey(), e.getValue()); + } + + /** + * Removes the key (and its corresponding value) from this map. + * This method does nothing if the key is not in the map. + * + * @param key the key that needs to be removed + * @return the previous value associated with key, or + * null if there was no mapping for key + * @throws NullPointerException if the specified key is null + */ + public V remove(Object key) { + int hash = hash(key.hashCode()); + return segmentFor(hash).remove(key, hash, null); + } + + /** + * {@inheritDoc} + * + * @throws NullPointerException if the specified key is null + */ + public boolean remove(Object key, Object value) { + int hash = hash(key.hashCode()); + if (value == null) + return false; + return segmentFor(hash).remove(key, hash, value) != null; + } + + /** + * {@inheritDoc} + * + * @throws NullPointerException if any of the arguments are null + */ + public boolean replace(K key, V oldValue, V newValue) { + if (oldValue == null || newValue == null) + throw new NullPointerException(); + int hash = hash(key.hashCode()); + return segmentFor(hash).replace(key, hash, oldValue, newValue); + } + + /** + * {@inheritDoc} + * + * @return the previous value associated with the specified key, + * or null if there was no mapping for the key + * @throws NullPointerException if the specified key or value is null + */ + public V replace(K key, V value) { + if (value == null) + throw new NullPointerException(); + int hash = hash(key.hashCode()); + return segmentFor(hash).replace(key, hash, value); + } + + /** + * Removes all of the mappings from this map. + */ + public void clear() { + for (int i = 0; i < segments.length; ++i) + segments[i].clear(); + } + + /** + * Returns a {@link Set} view of the keys contained in this map. + * The set is backed by the map, so changes to the map are + * reflected in the set, and vice-versa. The set supports element + * removal, which removes the corresponding mapping from this map, + * via the Iterator.remove, Set.remove, + * removeAll, retainAll, and clear + * operations. It does not support the add or + * addAll operations. + * + *

The view's iterator is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + */ + public Set keySet() { + Set ks = keySet; + return (ks != null) ? ks : (keySet = new KeySet()); + } + + /** + * Returns a {@link Collection} view of the values contained in this map. + * The collection is backed by the map, so changes to the map are + * reflected in the collection, and vice-versa. The collection + * supports element removal, which removes the corresponding + * mapping from this map, via the Iterator.remove, + * Collection.remove, removeAll, + * retainAll, and clear operations. It does not + * support the add or addAll operations. + * + *

The view's iterator is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + */ + public Collection values() { + Collection vs = values; + return (vs != null) ? vs : (values = new Values()); + } + + /** + * Returns a {@link Set} view of the mappings contained in this map. + * The set is backed by the map, so changes to the map are + * reflected in the set, and vice-versa. The set supports element + * removal, which removes the corresponding mapping from the map, + * via the Iterator.remove, Set.remove, + * removeAll, retainAll, and clear + * operations. It does not support the add or + * addAll operations. + * + *

The view's iterator is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + */ + public Set> entrySet() { + Set> es = entrySet; + return (es != null) ? es : (entrySet = new EntrySet()); + } + + /** + * Returns an enumeration of the keys in this table. + * + * @return an enumeration of the keys in this table + * @see #keySet + */ + public Enumeration keys() { + return new KeyIterator(); + } + + /** + * Returns an enumeration of the values in this table. + * + * @return an enumeration of the values in this table + * @see #values + */ + public Enumeration elements() { + return new ValueIterator(); + } + + /* ---------------- Iterator Support -------------- */ + + abstract class HashIterator { + int nextSegmentIndex; + int nextTableIndex; + HashEntry[] currentTable; + HashEntry nextEntry; + HashEntry lastReturned; + + HashIterator() { + nextSegmentIndex = segments.length - 1; + nextTableIndex = -1; + advance(); + } + + public boolean hasMoreElements() { return hasNext(); } + + final void advance() { + if (nextEntry != null && (nextEntry = nextEntry.next) != null) + return; + + while (nextTableIndex >= 0) { + if ( (nextEntry = currentTable[nextTableIndex--]) != null) + return; + } + + while (nextSegmentIndex >= 0) { + Segment seg = segments[nextSegmentIndex--]; + if (seg.count != 0) { + currentTable = seg.table; + for (int j = currentTable.length - 1; j >= 0; --j) { + if ( (nextEntry = currentTable[j]) != null) { + nextTableIndex = j - 1; + return; + } + } + } + } + } + + public boolean hasNext() { return nextEntry != null; } + + HashEntry nextEntry() { + if (nextEntry == null) + throw new NoSuchElementException(); + lastReturned = nextEntry; + advance(); + return lastReturned; + } + + public void remove() { + if (lastReturned == null) + throw new IllegalStateException(); + ConcurrentHashMap.this.remove(lastReturned.key); + lastReturned = null; + } + } + + final class KeyIterator + extends HashIterator + implements Iterator, Enumeration + { + public K next() { return super.nextEntry().key; } + public K nextElement() { return super.nextEntry().key; } + } + + final class ValueIterator + extends HashIterator + implements Iterator, Enumeration + { + public V next() { return super.nextEntry().value; } + public V nextElement() { return super.nextEntry().value; } + } + + /** + * Custom Entry class used by EntryIterator.next(), that relays + * setValue changes to the underlying map. + */ + final class WriteThroughEntry + extends AbstractMap.SimpleEntry + { + WriteThroughEntry(K k, V v) { + super(k,v); + } + + /** + * Set our entry's value and write through to the map. The + * value to return is somewhat arbitrary here. Since a + * WriteThroughEntry does not necessarily track asynchronous + * changes, the most recent "previous" value could be + * different from what we return (or could even have been + * removed in which case the put will re-establish). We do not + * and cannot guarantee more. + */ + public V setValue(V value) { + if (value == null) throw new NullPointerException(); + V v = super.setValue(value); + ConcurrentHashMap.this.put(getKey(), value); + return v; + } + } + + final class EntryIterator + extends HashIterator + implements Iterator> + { + public Map.Entry next() { + HashEntry e = super.nextEntry(); + return new WriteThroughEntry(e.key, e.value); + } + } + + final class KeySet extends AbstractSet { + public Iterator iterator() { + return new KeyIterator(); + } + public int size() { + return ConcurrentHashMap.this.size(); + } + public boolean contains(Object o) { + return ConcurrentHashMap.this.containsKey(o); + } + public boolean remove(Object o) { + return ConcurrentHashMap.this.remove(o) != null; + } + public void clear() { + ConcurrentHashMap.this.clear(); + } + } + + final class Values extends AbstractCollection { + public Iterator iterator() { + return new ValueIterator(); + } + public int size() { + return ConcurrentHashMap.this.size(); + } + public boolean contains(Object o) { + return ConcurrentHashMap.this.containsValue(o); + } + public void clear() { + ConcurrentHashMap.this.clear(); + } + } + + final class EntrySet extends AbstractSet> { + public Iterator> iterator() { + return new EntryIterator(); + } + public boolean contains(Object o) { + if (!(o instanceof Map.Entry)) + return false; + Map.Entry e = (Map.Entry)o; + V v = ConcurrentHashMap.this.get(e.getKey()); + return v != null && v.equals(e.getValue()); + } + public boolean remove(Object o) { + if (!(o instanceof Map.Entry)) + return false; + Map.Entry e = (Map.Entry)o; + return ConcurrentHashMap.this.remove(e.getKey(), e.getValue()); + } + public int size() { + return ConcurrentHashMap.this.size(); + } + public void clear() { + ConcurrentHashMap.this.clear(); + } + } + + /* ---------------- Serialization Support -------------- */ + + /** + * Save the state of the ConcurrentHashMap instance to a + * stream (i.e., serialize it). + * @param s the stream + * @serialData + * the key (Object) and value (Object) + * for each key-value mapping, followed by a null pair. + * The key-value mappings are emitted in no particular order. + */ + private void writeObject(java.io.ObjectOutputStream s) throws IOException { + s.defaultWriteObject(); + + for (int k = 0; k < segments.length; ++k) { + Segment seg = segments[k]; + seg.lock(); + try { + HashEntry[] tab = seg.table; + for (int i = 0; i < tab.length; ++i) { + for (HashEntry e = tab[i]; e != null; e = e.next) { + s.writeObject(e.key); + s.writeObject(e.value); + } + } + } finally { + seg.unlock(); + } + } + s.writeObject(null); + s.writeObject(null); + } + + /** + * Reconstitute the ConcurrentHashMap instance from a + * stream (i.e., deserialize it). + * @param s the stream + */ + private void readObject(java.io.ObjectInputStream s) + throws IOException, ClassNotFoundException { + s.defaultReadObject(); + + // Initialize each segment to be minimally sized, and let grow. + for (int i = 0; i < segments.length; ++i) { + segments[i].setTable(new HashEntry[1]); + } + + // Read the keys and values, and put the mappings in the table + for (;;) { + K key = (K) s.readObject(); + V value = (V) s.readObject(); + if (key == null) + break; + put(key, value); + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentLinkedQueue.java b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentLinkedQueue.java new file mode 100644 index 00000000000..000f4a4c93a --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentLinkedQueue.java @@ -0,0 +1,480 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; +import java.util.concurrent.atomic.*; + + +/** + * An unbounded thread-safe {@linkplain Queue queue} based on linked nodes. + * This queue orders elements FIFO (first-in-first-out). + * The head of the queue is that element that has been on the + * queue the longest time. + * The tail of the queue is that element that has been on the + * queue the shortest time. New elements + * are inserted at the tail of the queue, and the queue retrieval + * operations obtain elements at the head of the queue. + * A ConcurrentLinkedQueue is an appropriate choice when + * many threads will share access to a common collection. + * This queue does not permit null elements. + * + *

This implementation employs an efficient "wait-free" + * algorithm based on one described in Simple, + * Fast, and Practical Non-Blocking and Blocking Concurrent Queue + * Algorithms by Maged M. Michael and Michael L. Scott. + * + *

Beware that, unlike in most collections, the size method + * is NOT a constant-time operation. Because of the + * asynchronous nature of these queues, determining the current number + * of elements requires a traversal of the elements. + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. + * + *

Memory consistency effects: As with other concurrent + * collections, actions in a thread prior to placing an object into a + * {@code ConcurrentLinkedQueue} + * happen-before + * actions subsequent to the access or removal of that element from + * the {@code ConcurrentLinkedQueue} in another thread. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + * + */ +public class ConcurrentLinkedQueue extends AbstractQueue + implements Queue, java.io.Serializable { + private static final long serialVersionUID = 196745693267521676L; + + /* + * This is a straight adaptation of Michael & Scott algorithm. + * For explanation, read the paper. The only (minor) algorithmic + * difference is that this version supports lazy deletion of + * internal nodes (method remove(Object)) -- remove CAS'es item + * fields to null. The normal queue operations unlink but then + * pass over nodes with null item fields. Similarly, iteration + * methods ignore those with nulls. + * + * Also note that like most non-blocking algorithms in this + * package, this implementation relies on the fact that in garbage + * collected systems, there is no possibility of ABA problems due + * to recycled nodes, so there is no need to use "counted + * pointers" or related techniques seen in versions used in + * non-GC'ed settings. + */ + + private static class Node { + private volatile E item; + private volatile Node next; + + private static final + AtomicReferenceFieldUpdater + nextUpdater = + AtomicReferenceFieldUpdater.newUpdater + (Node.class, Node.class, "next"); + private static final + AtomicReferenceFieldUpdater + itemUpdater = + AtomicReferenceFieldUpdater.newUpdater + (Node.class, Object.class, "item"); + + Node(E x) { item = x; } + + Node(E x, Node n) { item = x; next = n; } + + E getItem() { + return item; + } + + boolean casItem(E cmp, E val) { + return itemUpdater.compareAndSet(this, cmp, val); + } + + void setItem(E val) { + itemUpdater.set(this, val); + } + + Node getNext() { + return next; + } + + boolean casNext(Node cmp, Node val) { + return nextUpdater.compareAndSet(this, cmp, val); + } + + void setNext(Node val) { + nextUpdater.set(this, val); + } + + } + + private static final + AtomicReferenceFieldUpdater + tailUpdater = + AtomicReferenceFieldUpdater.newUpdater + (ConcurrentLinkedQueue.class, Node.class, "tail"); + private static final + AtomicReferenceFieldUpdater + headUpdater = + AtomicReferenceFieldUpdater.newUpdater + (ConcurrentLinkedQueue.class, Node.class, "head"); + + private boolean casTail(Node cmp, Node val) { + return tailUpdater.compareAndSet(this, cmp, val); + } + + private boolean casHead(Node cmp, Node val) { + return headUpdater.compareAndSet(this, cmp, val); + } + + + /** + * Pointer to header node, initialized to a dummy node. The first + * actual node is at head.getNext(). + */ + private transient volatile Node head = new Node(null, null); + + /** Pointer to last node on list **/ + private transient volatile Node tail = head; + + + /** + * Creates a ConcurrentLinkedQueue that is initially empty. + */ + public ConcurrentLinkedQueue() {} + + /** + * Creates a ConcurrentLinkedQueue + * initially containing the elements of the given collection, + * added in traversal order of the collection's iterator. + * @param c the collection of elements to initially contain + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public ConcurrentLinkedQueue(Collection c) { + for (Iterator it = c.iterator(); it.hasNext();) + add(it.next()); + } + + // Have to override just to update the javadoc + + /** + * Inserts the specified element at the tail of this queue. + * + * @return true (as specified by {@link Collection#add}) + * @throws NullPointerException if the specified element is null + */ + public boolean add(E e) { + return offer(e); + } + + /** + * Inserts the specified element at the tail of this queue. + * + * @return true (as specified by {@link Queue#offer}) + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + if (e == null) throw new NullPointerException(); + Node n = new Node(e, null); + for (;;) { + Node t = tail; + Node s = t.getNext(); + if (t == tail) { + if (s == null) { + if (t.casNext(s, n)) { + casTail(t, n); + return true; + } + } else { + casTail(t, s); + } + } + } + } + + public E poll() { + for (;;) { + Node h = head; + Node t = tail; + Node first = h.getNext(); + if (h == head) { + if (h == t) { + if (first == null) + return null; + else + casTail(t, first); + } else if (casHead(h, first)) { + E item = first.getItem(); + if (item != null) { + first.setItem(null); + return item; + } + // else skip over deleted item, continue loop, + } + } + } + } + + public E peek() { // same as poll except don't remove item + for (;;) { + Node h = head; + Node t = tail; + Node first = h.getNext(); + if (h == head) { + if (h == t) { + if (first == null) + return null; + else + casTail(t, first); + } else { + E item = first.getItem(); + if (item != null) + return item; + else // remove deleted node and continue + casHead(h, first); + } + } + } + } + + /** + * Returns the first actual (non-header) node on list. This is yet + * another variant of poll/peek; here returning out the first + * node, not element (so we cannot collapse with peek() without + * introducing race.) + */ + Node first() { + for (;;) { + Node h = head; + Node t = tail; + Node first = h.getNext(); + if (h == head) { + if (h == t) { + if (first == null) + return null; + else + casTail(t, first); + } else { + if (first.getItem() != null) + return first; + else // remove deleted node and continue + casHead(h, first); + } + } + } + } + + + /** + * Returns true if this queue contains no elements. + * + * @return true if this queue contains no elements + */ + public boolean isEmpty() { + return first() == null; + } + + /** + * Returns the number of elements in this queue. If this queue + * contains more than Integer.MAX_VALUE elements, returns + * Integer.MAX_VALUE. + * + *

Beware that, unlike in most collections, this method is + * NOT a constant-time operation. Because of the + * asynchronous nature of these queues, determining the current + * number of elements requires an O(n) traversal. + * + * @return the number of elements in this queue + */ + public int size() { + int count = 0; + for (Node p = first(); p != null; p = p.getNext()) { + if (p.getItem() != null) { + // Collections.size() spec says to max out + if (++count == Integer.MAX_VALUE) + break; + } + } + return count; + } + + /** + * Returns true if this queue contains the specified element. + * More formally, returns true if and only if this queue contains + * at least one element e such that o.equals(e). + * + * @param o object to be checked for containment in this queue + * @return true if this queue contains the specified element + */ + public boolean contains(Object o) { + if (o == null) return false; + for (Node p = first(); p != null; p = p.getNext()) { + E item = p.getItem(); + if (item != null && + o.equals(item)) + return true; + } + return false; + } + + /** + * Removes a single instance of the specified element from this queue, + * if it is present. More formally, removes an element e such + * that o.equals(e), if this queue contains one or more such + * elements. + * Returns true if this queue contained the specified element + * (or equivalently, if this queue changed as a result of the call). + * + * @param o element to be removed from this queue, if present + * @return true if this queue changed as a result of the call + */ + public boolean remove(Object o) { + if (o == null) return false; + for (Node p = first(); p != null; p = p.getNext()) { + E item = p.getItem(); + if (item != null && + o.equals(item) && + p.casItem(item, null)) + return true; + } + return false; + } + + /** + * Returns an iterator over the elements in this queue in proper sequence. + * The returned iterator is a "weakly consistent" iterator that + * will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + * @return an iterator over the elements in this queue in proper sequence + */ + public Iterator iterator() { + return new Itr(); + } + + private class Itr implements Iterator { + /** + * Next node to return item for. + */ + private Node nextNode; + + /** + * nextItem holds on to item fields because once we claim + * that an element exists in hasNext(), we must return it in + * the following next() call even if it was in the process of + * being removed when hasNext() was called. + */ + private E nextItem; + + /** + * Node of the last returned item, to support remove. + */ + private Node lastRet; + + Itr() { + advance(); + } + + /** + * Moves to next valid node and returns item to return for + * next(), or null if no such. + */ + private E advance() { + lastRet = nextNode; + E x = nextItem; + + Node p = (nextNode == null)? first() : nextNode.getNext(); + for (;;) { + if (p == null) { + nextNode = null; + nextItem = null; + return x; + } + E item = p.getItem(); + if (item != null) { + nextNode = p; + nextItem = item; + return x; + } else // skip over nulls + p = p.getNext(); + } + } + + public boolean hasNext() { + return nextNode != null; + } + + public E next() { + if (nextNode == null) throw new NoSuchElementException(); + return advance(); + } + + public void remove() { + Node l = lastRet; + if (l == null) throw new IllegalStateException(); + // rely on a future traversal to relink. + l.setItem(null); + lastRet = null; + } + } + + /** + * Save the state to a stream (that is, serialize it). + * + * @serialData All of the elements (each an E) in + * the proper order, followed by a null + * @param s the stream + */ + private void writeObject(java.io.ObjectOutputStream s) + throws java.io.IOException { + + // Write out any hidden stuff + s.defaultWriteObject(); + + // Write out all elements in the proper order. + for (Node p = first(); p != null; p = p.getNext()) { + Object item = p.getItem(); + if (item != null) + s.writeObject(item); + } + + // Use trailing null as sentinel + s.writeObject(null); + } + + /** + * Reconstitute the Queue instance from a stream (that is, + * deserialize it). + * @param s the stream + */ + private void readObject(java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + // Read in capacity, and any hidden stuff + s.defaultReadObject(); + head = new Node(null, null); + tail = head; + // Read in all elements and place in queue + for (;;) { + E item = (E)s.readObject(); + if (item == null) + break; + else + offer(item); + } + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentMap.java b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentMap.java new file mode 100644 index 00000000000..6e5bd073880 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentMap.java @@ -0,0 +1,134 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.Map; + +/** + * A {@link java.util.Map} providing additional atomic + * putIfAbsent, remove, and replace methods. + * + *

Memory consistency effects: As with other concurrent + * collections, actions in a thread prior to placing an object into a + * {@code ConcurrentMap} as a key or value + * happen-before + * actions subsequent to the access or removal of that object from + * the {@code ConcurrentMap} in another thread. + * + *

This interface is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of keys maintained by this map + * @param the type of mapped values + */ +public interface ConcurrentMap extends Map { + /** + * If the specified key is not already associated + * with a value, associate it with the given value. + * This is equivalent to + *

+     *   if (!map.containsKey(key))
+     *       return map.put(key, value);
+     *   else
+     *       return map.get(key);
+ * except that the action is performed atomically. + * + * @param key key with which the specified value is to be associated + * @param value value to be associated with the specified key + * @return the previous value associated with the specified key, or + * null if there was no mapping for the key. + * (A null return can also indicate that the map + * previously associated null with the key, + * if the implementation supports null values.) + * @throws UnsupportedOperationException if the put operation + * is not supported by this map + * @throws ClassCastException if the class of the specified key or value + * prevents it from being stored in this map + * @throws NullPointerException if the specified key or value is null, + * and this map does not permit null keys or values + * @throws IllegalArgumentException if some property of the specified key + * or value prevents it from being stored in this map + * + */ + V putIfAbsent(K key, V value); + + /** + * Removes the entry for a key only if currently mapped to a given value. + * This is equivalent to + *
+     *   if (map.containsKey(key) && map.get(key).equals(value)) {
+     *       map.remove(key);
+     *       return true;
+     *   } else return false;
+ * except that the action is performed atomically. + * + * @param key key with which the specified value is associated + * @param value value expected to be associated with the specified key + * @return true if the value was removed + * @throws UnsupportedOperationException if the remove operation + * is not supported by this map + * @throws ClassCastException if the key or value is of an inappropriate + * type for this map (optional) + * @throws NullPointerException if the specified key or value is null, + * and this map does not permit null keys or values (optional) + */ + boolean remove(Object key, Object value); + + /** + * Replaces the entry for a key only if currently mapped to a given value. + * This is equivalent to + *
+     *   if (map.containsKey(key) && map.get(key).equals(oldValue)) {
+     *       map.put(key, newValue);
+     *       return true;
+     *   } else return false;
+ * except that the action is performed atomically. + * + * @param key key with which the specified value is associated + * @param oldValue value expected to be associated with the specified key + * @param newValue value to be associated with the specified key + * @return true if the value was replaced + * @throws UnsupportedOperationException if the put operation + * is not supported by this map + * @throws ClassCastException if the class of a specified key or value + * prevents it from being stored in this map + * @throws NullPointerException if a specified key or value is null, + * and this map does not permit null keys or values + * @throws IllegalArgumentException if some property of a specified key + * or value prevents it from being stored in this map + */ + boolean replace(K key, V oldValue, V newValue); + + /** + * Replaces the entry for a key only if currently mapped to some value. + * This is equivalent to + *
+     *   if (map.containsKey(key)) {
+     *       return map.put(key, value);
+     *   } else return null;
+ * except that the action is performed atomically. + * + * @param key key with which the specified value is associated + * @param value value to be associated with the specified key + * @return the previous value associated with the specified key, or + * null if there was no mapping for the key. + * (A null return can also indicate that the map + * previously associated null with the key, + * if the implementation supports null values.) + * @throws UnsupportedOperationException if the put operation + * is not supported by this map + * @throws ClassCastException if the class of the specified key or value + * prevents it from being stored in this map + * @throws NullPointerException if the specified key or value is null, + * and this map does not permit null keys or values + * @throws IllegalArgumentException if some property of the specified key + * or value prevents it from being stored in this map + */ + V replace(K key, V value); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentNavigableMap.java b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentNavigableMap.java new file mode 100644 index 00000000000..7d86afb7034 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentNavigableMap.java @@ -0,0 +1,148 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; + +/** + * A {@link ConcurrentMap} supporting {@link NavigableMap} operations, + * and recursively so for its navigable sub-maps. + * + *

This interface is a member of the + * + * Java Collections Framework. + * + * @author Doug Lea + * @param the type of keys maintained by this map + * @param the type of mapped values + * @since 1.6 + */ +public interface ConcurrentNavigableMap + extends ConcurrentMap, NavigableMap +{ + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + ConcurrentNavigableMap subMap(K fromKey, boolean fromInclusive, + K toKey, boolean toInclusive); + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + ConcurrentNavigableMap headMap(K toKey, boolean inclusive); + + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + ConcurrentNavigableMap tailMap(K fromKey, boolean inclusive); + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + ConcurrentNavigableMap subMap(K fromKey, K toKey); + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + ConcurrentNavigableMap headMap(K toKey); + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + ConcurrentNavigableMap tailMap(K fromKey); + + /** + * Returns a reverse order view of the mappings contained in this map. + * The descending map is backed by this map, so changes to the map are + * reflected in the descending map, and vice-versa. + * + *

The returned map has an ordering equivalent to + * {@link Collections#reverseOrder(Comparator) Collections.reverseOrder}(comparator()). + * The expression {@code m.descendingMap().descendingMap()} returns a + * view of {@code m} essentially equivalent to {@code m}. + * + * @return a reverse order view of this map + */ + ConcurrentNavigableMap descendingMap(); + + /** + * Returns a {@link NavigableSet} view of the keys contained in this map. + * The set's iterator returns the keys in ascending order. + * The set is backed by the map, so changes to the map are + * reflected in the set, and vice-versa. The set supports element + * removal, which removes the corresponding mapping from the map, + * via the {@code Iterator.remove}, {@code Set.remove}, + * {@code removeAll}, {@code retainAll}, and {@code clear} + * operations. It does not support the {@code add} or {@code addAll} + * operations. + * + *

The view's {@code iterator} is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + * @return a navigable set view of the keys in this map + */ + public NavigableSet navigableKeySet(); + + /** + * Returns a {@link NavigableSet} view of the keys contained in this map. + * The set's iterator returns the keys in ascending order. + * The set is backed by the map, so changes to the map are + * reflected in the set, and vice-versa. The set supports element + * removal, which removes the corresponding mapping from the map, + * via the {@code Iterator.remove}, {@code Set.remove}, + * {@code removeAll}, {@code retainAll}, and {@code clear} + * operations. It does not support the {@code add} or {@code addAll} + * operations. + * + *

The view's {@code iterator} is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + *

This method is equivalent to method {@code navigableKeySet}. + * + * @return a navigable set view of the keys in this map + */ + NavigableSet keySet(); + + /** + * Returns a reverse order {@link NavigableSet} view of the keys contained in this map. + * The set's iterator returns the keys in descending order. + * The set is backed by the map, so changes to the map are + * reflected in the set, and vice-versa. The set supports element + * removal, which removes the corresponding mapping from the map, + * via the {@code Iterator.remove}, {@code Set.remove}, + * {@code removeAll}, {@code retainAll}, and {@code clear} + * operations. It does not support the {@code add} or {@code addAll} + * operations. + * + *

The view's {@code iterator} is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + * @return a reverse order navigable set view of the keys in this map + */ + public NavigableSet descendingKeySet(); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java new file mode 100644 index 00000000000..52cd17a52d3 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java @@ -0,0 +1,3114 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; +import java.util.concurrent.atomic.*; + +/** + * A scalable concurrent {@link ConcurrentNavigableMap} implementation. + * The map is sorted according to the {@linkplain Comparable natural + * ordering} of its keys, or by a {@link Comparator} provided at map + * creation time, depending on which constructor is used. + * + *

This class implements a concurrent variant of SkipLists providing + * expected average log(n) time cost for the + * containsKey, get, put and + * remove operations and their variants. Insertion, removal, + * update, and access operations safely execute concurrently by + * multiple threads. Iterators are weakly consistent, returning + * elements reflecting the state of the map at some point at or since + * the creation of the iterator. They do not throw {@link + * ConcurrentModificationException}, and may proceed concurrently with + * other operations. Ascending key ordered views and their iterators + * are faster than descending ones. + * + *

All Map.Entry pairs returned by methods in this class + * and its views represent snapshots of mappings at the time they were + * produced. They do not support the Entry.setValue + * method. (Note however that it is possible to change mappings in the + * associated map using put, putIfAbsent, or + * replace, depending on exactly which effect you need.) + * + *

Beware that, unlike in most collections, the size + * method is not a constant-time operation. Because of the + * asynchronous nature of these maps, determining the current number + * of elements requires a traversal of the elements. Additionally, + * the bulk operations putAll, equals, and + * clear are not guaranteed to be performed + * atomically. For example, an iterator operating concurrently with a + * putAll operation might view only some of the added + * elements. + * + *

This class and its views and iterators implement all of the + * optional methods of the {@link Map} and {@link Iterator} + * interfaces. Like most other concurrent collections, this class does + * not permit the use of null keys or values because some + * null return values cannot be reliably distinguished from the absence of + * elements. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @author Doug Lea + * @param the type of keys maintained by this map + * @param the type of mapped values + * @since 1.6 + */ +public class ConcurrentSkipListMap extends AbstractMap + implements ConcurrentNavigableMap, + Cloneable, + java.io.Serializable { + /* + * This class implements a tree-like two-dimensionally linked skip + * list in which the index levels are represented in separate + * nodes from the base nodes holding data. There are two reasons + * for taking this approach instead of the usual array-based + * structure: 1) Array based implementations seem to encounter + * more complexity and overhead 2) We can use cheaper algorithms + * for the heavily-traversed index lists than can be used for the + * base lists. Here's a picture of some of the basics for a + * possible list with 2 levels of index: + * + * Head nodes Index nodes + * +-+ right +-+ +-+ + * |2|---------------->| |--------------------->| |->null + * +-+ +-+ +-+ + * | down | | + * v v v + * +-+ +-+ +-+ +-+ +-+ +-+ + * |1|----------->| |->| |------>| |----------->| |------>| |->null + * +-+ +-+ +-+ +-+ +-+ +-+ + * v | | | | | + * Nodes next v v v v v + * +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ + * | |->|A|->|B|->|C|->|D|->|E|->|F|->|G|->|H|->|I|->|J|->|K|->null + * +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ + * + * The base lists use a variant of the HM linked ordered set + * algorithm. See Tim Harris, "A pragmatic implementation of + * non-blocking linked lists" + * http://www.cl.cam.ac.uk/~tlh20/publications.html and Maged + * Michael "High Performance Dynamic Lock-Free Hash Tables and + * List-Based Sets" + * http://www.research.ibm.com/people/m/michael/pubs.htm. The + * basic idea in these lists is to mark the "next" pointers of + * deleted nodes when deleting to avoid conflicts with concurrent + * insertions, and when traversing to keep track of triples + * (predecessor, node, successor) in order to detect when and how + * to unlink these deleted nodes. + * + * Rather than using mark-bits to mark list deletions (which can + * be slow and space-intensive using AtomicMarkedReference), nodes + * use direct CAS'able next pointers. On deletion, instead of + * marking a pointer, they splice in another node that can be + * thought of as standing for a marked pointer (indicating this by + * using otherwise impossible field values). Using plain nodes + * acts roughly like "boxed" implementations of marked pointers, + * but uses new nodes only when nodes are deleted, not for every + * link. This requires less space and supports faster + * traversal. Even if marked references were better supported by + * JVMs, traversal using this technique might still be faster + * because any search need only read ahead one more node than + * otherwise required (to check for trailing marker) rather than + * unmasking mark bits or whatever on each read. + * + * This approach maintains the essential property needed in the HM + * algorithm of changing the next-pointer of a deleted node so + * that any other CAS of it will fail, but implements the idea by + * changing the pointer to point to a different node, not by + * marking it. While it would be possible to further squeeze + * space by defining marker nodes not to have key/value fields, it + * isn't worth the extra type-testing overhead. The deletion + * markers are rarely encountered during traversal and are + * normally quickly garbage collected. (Note that this technique + * would not work well in systems without garbage collection.) + * + * In addition to using deletion markers, the lists also use + * nullness of value fields to indicate deletion, in a style + * similar to typical lazy-deletion schemes. If a node's value is + * null, then it is considered logically deleted and ignored even + * though it is still reachable. This maintains proper control of + * concurrent replace vs delete operations -- an attempted replace + * must fail if a delete beat it by nulling field, and a delete + * must return the last non-null value held in the field. (Note: + * Null, rather than some special marker, is used for value fields + * here because it just so happens to mesh with the Map API + * requirement that method get returns null if there is no + * mapping, which allows nodes to remain concurrently readable + * even when deleted. Using any other marker value here would be + * messy at best.) + * + * Here's the sequence of events for a deletion of node n with + * predecessor b and successor f, initially: + * + * +------+ +------+ +------+ + * ... | b |------>| n |----->| f | ... + * +------+ +------+ +------+ + * + * 1. CAS n's value field from non-null to null. + * From this point on, no public operations encountering + * the node consider this mapping to exist. However, other + * ongoing insertions and deletions might still modify + * n's next pointer. + * + * 2. CAS n's next pointer to point to a new marker node. + * From this point on, no other nodes can be appended to n. + * which avoids deletion errors in CAS-based linked lists. + * + * +------+ +------+ +------+ +------+ + * ... | b |------>| n |----->|marker|------>| f | ... + * +------+ +------+ +------+ +------+ + * + * 3. CAS b's next pointer over both n and its marker. + * From this point on, no new traversals will encounter n, + * and it can eventually be GCed. + * +------+ +------+ + * ... | b |----------------------------------->| f | ... + * +------+ +------+ + * + * A failure at step 1 leads to simple retry due to a lost race + * with another operation. Steps 2-3 can fail because some other + * thread noticed during a traversal a node with null value and + * helped out by marking and/or unlinking. This helping-out + * ensures that no thread can become stuck waiting for progress of + * the deleting thread. The use of marker nodes slightly + * complicates helping-out code because traversals must track + * consistent reads of up to four nodes (b, n, marker, f), not + * just (b, n, f), although the next field of a marker is + * immutable, and once a next field is CAS'ed to point to a + * marker, it never again changes, so this requires less care. + * + * Skip lists add indexing to this scheme, so that the base-level + * traversals start close to the locations being found, inserted + * or deleted -- usually base level traversals only traverse a few + * nodes. This doesn't change the basic algorithm except for the + * need to make sure base traversals start at predecessors (here, + * b) that are not (structurally) deleted, otherwise retrying + * after processing the deletion. + * + * Index levels are maintained as lists with volatile next fields, + * using CAS to link and unlink. Races are allowed in index-list + * operations that can (rarely) fail to link in a new index node + * or delete one. (We can't do this of course for data nodes.) + * However, even when this happens, the index lists remain sorted, + * so correctly serve as indices. This can impact performance, + * but since skip lists are probabilistic anyway, the net result + * is that under contention, the effective "p" value may be lower + * than its nominal value. And race windows are kept small enough + * that in practice these failures are rare, even under a lot of + * contention. + * + * The fact that retries (for both base and index lists) are + * relatively cheap due to indexing allows some minor + * simplifications of retry logic. Traversal restarts are + * performed after most "helping-out" CASes. This isn't always + * strictly necessary, but the implicit backoffs tend to help + * reduce other downstream failed CAS's enough to outweigh restart + * cost. This worsens the worst case, but seems to improve even + * highly contended cases. + * + * Unlike most skip-list implementations, index insertion and + * deletion here require a separate traversal pass occuring after + * the base-level action, to add or remove index nodes. This adds + * to single-threaded overhead, but improves contended + * multithreaded performance by narrowing interference windows, + * and allows deletion to ensure that all index nodes will be made + * unreachable upon return from a public remove operation, thus + * avoiding unwanted garbage retention. This is more important + * here than in some other data structures because we cannot null + * out node fields referencing user keys since they might still be + * read by other ongoing traversals. + * + * Indexing uses skip list parameters that maintain good search + * performance while using sparser-than-usual indices: The + * hardwired parameters k=1, p=0.5 (see method randomLevel) mean + * that about one-quarter of the nodes have indices. Of those that + * do, half have one level, a quarter have two, and so on (see + * Pugh's Skip List Cookbook, sec 3.4). The expected total space + * requirement for a map is slightly less than for the current + * implementation of java.util.TreeMap. + * + * Changing the level of the index (i.e, the height of the + * tree-like structure) also uses CAS. The head index has initial + * level/height of one. Creation of an index with height greater + * than the current level adds a level to the head index by + * CAS'ing on a new top-most head. To maintain good performance + * after a lot of removals, deletion methods heuristically try to + * reduce the height if the topmost levels appear to be empty. + * This may encounter races in which it possible (but rare) to + * reduce and "lose" a level just as it is about to contain an + * index (that will then never be encountered). This does no + * structural harm, and in practice appears to be a better option + * than allowing unrestrained growth of levels. + * + * The code for all this is more verbose than you'd like. Most + * operations entail locating an element (or position to insert an + * element). The code to do this can't be nicely factored out + * because subsequent uses require a snapshot of predecessor + * and/or successor and/or value fields which can't be returned + * all at once, at least not without creating yet another object + * to hold them -- creating such little objects is an especially + * bad idea for basic internal search operations because it adds + * to GC overhead. (This is one of the few times I've wished Java + * had macros.) Instead, some traversal code is interleaved within + * insertion and removal operations. The control logic to handle + * all the retry conditions is sometimes twisty. Most search is + * broken into 2 parts. findPredecessor() searches index nodes + * only, returning a base-level predecessor of the key. findNode() + * finishes out the base-level search. Even with this factoring, + * there is a fair amount of near-duplication of code to handle + * variants. + * + * For explanation of algorithms sharing at least a couple of + * features with this one, see Mikhail Fomitchev's thesis + * (http://www.cs.yorku.ca/~mikhail/), Keir Fraser's thesis + * (http://www.cl.cam.ac.uk/users/kaf24/), and Hakan Sundell's + * thesis (http://www.cs.chalmers.se/~phs/). + * + * Given the use of tree-like index nodes, you might wonder why + * this doesn't use some kind of search tree instead, which would + * support somewhat faster search operations. The reason is that + * there are no known efficient lock-free insertion and deletion + * algorithms for search trees. The immutability of the "down" + * links of index nodes (as opposed to mutable "left" fields in + * true trees) makes this tractable using only CAS operations. + * + * Notation guide for local variables + * Node: b, n, f for predecessor, node, successor + * Index: q, r, d for index node, right, down. + * t for another index node + * Head: h + * Levels: j + * Keys: k, key + * Values: v, value + * Comparisons: c + */ + + private static final long serialVersionUID = -8627078645895051609L; + + /** + * Generates the initial random seed for the cheaper per-instance + * random number generators used in randomLevel. + */ + private static final Random seedGenerator = new Random(); + + /** + * Special value used to identify base-level header + */ + private static final Object BASE_HEADER = new Object(); + + /** + * The topmost head index of the skiplist. + */ + private transient volatile HeadIndex head; + + /** + * The comparator used to maintain order in this map, or null + * if using natural ordering. + * @serial + */ + private final Comparator comparator; + + /** + * Seed for simple random number generator. Not volatile since it + * doesn't matter too much if different threads don't see updates. + */ + private transient int randomSeed; + + /** Lazily initialized key set */ + private transient KeySet keySet; + /** Lazily initialized entry set */ + private transient EntrySet entrySet; + /** Lazily initialized values collection */ + private transient Values values; + /** Lazily initialized descending key set */ + private transient ConcurrentNavigableMap descendingMap; + + /** + * Initializes or resets state. Needed by constructors, clone, + * clear, readObject. and ConcurrentSkipListSet.clone. + * (Note that comparator must be separately initialized.) + */ + final void initialize() { + keySet = null; + entrySet = null; + values = null; + descendingMap = null; + randomSeed = seedGenerator.nextInt() | 0x0100; // ensure nonzero + head = new HeadIndex(new Node(null, BASE_HEADER, null), + null, null, 1); + } + + /** Updater for casHead */ + private static final + AtomicReferenceFieldUpdater + headUpdater = AtomicReferenceFieldUpdater.newUpdater + (ConcurrentSkipListMap.class, HeadIndex.class, "head"); + + /** + * compareAndSet head node + */ + private boolean casHead(HeadIndex cmp, HeadIndex val) { + return headUpdater.compareAndSet(this, cmp, val); + } + + /* ---------------- Nodes -------------- */ + + /** + * Nodes hold keys and values, and are singly linked in sorted + * order, possibly with some intervening marker nodes. The list is + * headed by a dummy node accessible as head.node. The value field + * is declared only as Object because it takes special non-V + * values for marker and header nodes. + */ + static final class Node { + final K key; + volatile Object value; + volatile Node next; + + /** + * Creates a new regular node. + */ + Node(K key, Object value, Node next) { + this.key = key; + this.value = value; + this.next = next; + } + + /** + * Creates a new marker node. A marker is distinguished by + * having its value field point to itself. Marker nodes also + * have null keys, a fact that is exploited in a few places, + * but this doesn't distinguish markers from the base-level + * header node (head.node), which also has a null key. + */ + Node(Node next) { + this.key = null; + this.value = this; + this.next = next; + } + + /** Updater for casNext */ + static final AtomicReferenceFieldUpdater + nextUpdater = AtomicReferenceFieldUpdater.newUpdater + (Node.class, Node.class, "next"); + + /** Updater for casValue */ + static final AtomicReferenceFieldUpdater + valueUpdater = AtomicReferenceFieldUpdater.newUpdater + (Node.class, Object.class, "value"); + + /** + * compareAndSet value field + */ + boolean casValue(Object cmp, Object val) { + return valueUpdater.compareAndSet(this, cmp, val); + } + + /** + * compareAndSet next field + */ + boolean casNext(Node cmp, Node val) { + return nextUpdater.compareAndSet(this, cmp, val); + } + + /** + * Returns true if this node is a marker. This method isn't + * actually called in any current code checking for markers + * because callers will have already read value field and need + * to use that read (not another done here) and so directly + * test if value points to node. + * @param n a possibly null reference to a node + * @return true if this node is a marker node + */ + boolean isMarker() { + return value == this; + } + + /** + * Returns true if this node is the header of base-level list. + * @return true if this node is header node + */ + boolean isBaseHeader() { + return value == BASE_HEADER; + } + + /** + * Tries to append a deletion marker to this node. + * @param f the assumed current successor of this node + * @return true if successful + */ + boolean appendMarker(Node f) { + return casNext(f, new Node(f)); + } + + /** + * Helps out a deletion by appending marker or unlinking from + * predecessor. This is called during traversals when value + * field seen to be null. + * @param b predecessor + * @param f successor + */ + void helpDelete(Node b, Node f) { + /* + * Rechecking links and then doing only one of the + * help-out stages per call tends to minimize CAS + * interference among helping threads. + */ + if (f == next && this == b.next) { + if (f == null || f.value != f) // not already marked + appendMarker(f); + else + b.casNext(this, f.next); + } + } + + /** + * Returns value if this node contains a valid key-value pair, + * else null. + * @return this node's value if it isn't a marker or header or + * is deleted, else null. + */ + V getValidValue() { + Object v = value; + if (v == this || v == BASE_HEADER) + return null; + return (V)v; + } + + /** + * Creates and returns a new SimpleImmutableEntry holding current + * mapping if this node holds a valid value, else null. + * @return new entry or null + */ + AbstractMap.SimpleImmutableEntry createSnapshot() { + V v = getValidValue(); + if (v == null) + return null; + return new AbstractMap.SimpleImmutableEntry(key, v); + } + } + + /* ---------------- Indexing -------------- */ + + /** + * Index nodes represent the levels of the skip list. Note that + * even though both Nodes and Indexes have forward-pointing + * fields, they have different types and are handled in different + * ways, that can't nicely be captured by placing field in a + * shared abstract class. + */ + static class Index { + final Node node; + final Index down; + volatile Index right; + + /** + * Creates index node with given values. + */ + Index(Node node, Index down, Index right) { + this.node = node; + this.down = down; + this.right = right; + } + + /** Updater for casRight */ + static final AtomicReferenceFieldUpdater + rightUpdater = AtomicReferenceFieldUpdater.newUpdater + (Index.class, Index.class, "right"); + + /** + * compareAndSet right field + */ + final boolean casRight(Index cmp, Index val) { + return rightUpdater.compareAndSet(this, cmp, val); + } + + /** + * Returns true if the node this indexes has been deleted. + * @return true if indexed node is known to be deleted + */ + final boolean indexesDeletedNode() { + return node.value == null; + } + + /** + * Tries to CAS newSucc as successor. To minimize races with + * unlink that may lose this index node, if the node being + * indexed is known to be deleted, it doesn't try to link in. + * @param succ the expected current successor + * @param newSucc the new successor + * @return true if successful + */ + final boolean link(Index succ, Index newSucc) { + Node n = node; + newSucc.right = succ; + return n.value != null && casRight(succ, newSucc); + } + + /** + * Tries to CAS right field to skip over apparent successor + * succ. Fails (forcing a retraversal by caller) if this node + * is known to be deleted. + * @param succ the expected current successor + * @return true if successful + */ + final boolean unlink(Index succ) { + return !indexesDeletedNode() && casRight(succ, succ.right); + } + } + + /* ---------------- Head nodes -------------- */ + + /** + * Nodes heading each level keep track of their level. + */ + static final class HeadIndex extends Index { + final int level; + HeadIndex(Node node, Index down, Index right, int level) { + super(node, down, right); + this.level = level; + } + } + + /* ---------------- Comparison utilities -------------- */ + + /** + * Represents a key with a comparator as a Comparable. + * + * Because most sorted collections seem to use natural ordering on + * Comparables (Strings, Integers, etc), most internal methods are + * geared to use them. This is generally faster than checking + * per-comparison whether to use comparator or comparable because + * it doesn't require a (Comparable) cast for each comparison. + * (Optimizers can only sometimes remove such redundant checks + * themselves.) When Comparators are used, + * ComparableUsingComparators are created so that they act in the + * same way as natural orderings. This penalizes use of + * Comparators vs Comparables, which seems like the right + * tradeoff. + */ + static final class ComparableUsingComparator implements Comparable { + final K actualKey; + final Comparator cmp; + ComparableUsingComparator(K key, Comparator cmp) { + this.actualKey = key; + this.cmp = cmp; + } + public int compareTo(K k2) { + return cmp.compare(actualKey, k2); + } + } + + /** + * If using comparator, return a ComparableUsingComparator, else + * cast key as Comparable, which may cause ClassCastException, + * which is propagated back to caller. + */ + private Comparable comparable(Object key) throws ClassCastException { + if (key == null) + throw new NullPointerException(); + if (comparator != null) + return new ComparableUsingComparator((K)key, comparator); + else + return (Comparable)key; + } + + /** + * Compares using comparator or natural ordering. Used when the + * ComparableUsingComparator approach doesn't apply. + */ + int compare(K k1, K k2) throws ClassCastException { + Comparator cmp = comparator; + if (cmp != null) + return cmp.compare(k1, k2); + else + return ((Comparable)k1).compareTo(k2); + } + + /** + * Returns true if given key greater than or equal to least and + * strictly less than fence, bypassing either test if least or + * fence are null. Needed mainly in submap operations. + */ + boolean inHalfOpenRange(K key, K least, K fence) { + if (key == null) + throw new NullPointerException(); + return ((least == null || compare(key, least) >= 0) && + (fence == null || compare(key, fence) < 0)); + } + + /** + * Returns true if given key greater than or equal to least and less + * or equal to fence. Needed mainly in submap operations. + */ + boolean inOpenRange(K key, K least, K fence) { + if (key == null) + throw new NullPointerException(); + return ((least == null || compare(key, least) >= 0) && + (fence == null || compare(key, fence) <= 0)); + } + + /* ---------------- Traversal -------------- */ + + /** + * Returns a base-level node with key strictly less than given key, + * or the base-level header if there is no such node. Also + * unlinks indexes to deleted nodes found along the way. Callers + * rely on this side-effect of clearing indices to deleted nodes. + * @param key the key + * @return a predecessor of key + */ + private Node findPredecessor(Comparable key) { + if (key == null) + throw new NullPointerException(); // don't postpone errors + for (;;) { + Index q = head; + Index r = q.right; + for (;;) { + if (r != null) { + Node n = r.node; + K k = n.key; + if (n.value == null) { + if (!q.unlink(r)) + break; // restart + r = q.right; // reread r + continue; + } + if (key.compareTo(k) > 0) { + q = r; + r = r.right; + continue; + } + } + Index d = q.down; + if (d != null) { + q = d; + r = d.right; + } else + return q.node; + } + } + } + + /** + * Returns node holding key or null if no such, clearing out any + * deleted nodes seen along the way. Repeatedly traverses at + * base-level looking for key starting at predecessor returned + * from findPredecessor, processing base-level deletions as + * encountered. Some callers rely on this side-effect of clearing + * deleted nodes. + * + * Restarts occur, at traversal step centered on node n, if: + * + * (1) After reading n's next field, n is no longer assumed + * predecessor b's current successor, which means that + * we don't have a consistent 3-node snapshot and so cannot + * unlink any subsequent deleted nodes encountered. + * + * (2) n's value field is null, indicating n is deleted, in + * which case we help out an ongoing structural deletion + * before retrying. Even though there are cases where such + * unlinking doesn't require restart, they aren't sorted out + * here because doing so would not usually outweigh cost of + * restarting. + * + * (3) n is a marker or n's predecessor's value field is null, + * indicating (among other possibilities) that + * findPredecessor returned a deleted node. We can't unlink + * the node because we don't know its predecessor, so rely + * on another call to findPredecessor to notice and return + * some earlier predecessor, which it will do. This check is + * only strictly needed at beginning of loop, (and the + * b.value check isn't strictly needed at all) but is done + * each iteration to help avoid contention with other + * threads by callers that will fail to be able to change + * links, and so will retry anyway. + * + * The traversal loops in doPut, doRemove, and findNear all + * include the same three kinds of checks. And specialized + * versions appear in findFirst, and findLast and their + * variants. They can't easily share code because each uses the + * reads of fields held in locals occurring in the orders they + * were performed. + * + * @param key the key + * @return node holding key, or null if no such + */ + private Node findNode(Comparable key) { + for (;;) { + Node b = findPredecessor(key); + Node n = b.next; + for (;;) { + if (n == null) + return null; + Node f = n.next; + if (n != b.next) // inconsistent read + break; + Object v = n.value; + if (v == null) { // n is deleted + n.helpDelete(b, f); + break; + } + if (v == n || b.value == null) // b is deleted + break; + int c = key.compareTo(n.key); + if (c == 0) + return n; + if (c < 0) + return null; + b = n; + n = f; + } + } + } + + /** + * Specialized variant of findNode to perform Map.get. Does a weak + * traversal, not bothering to fix any deleted index nodes, + * returning early if it happens to see key in index, and passing + * over any deleted base nodes, falling back to getUsingFindNode + * only if it would otherwise return value from an ongoing + * deletion. Also uses "bound" to eliminate need for some + * comparisons (see Pugh Cookbook). Also folds uses of null checks + * and node-skipping because markers have null keys. + * @param okey the key + * @return the value, or null if absent + */ + private V doGet(Object okey) { + Comparable key = comparable(okey); + Node bound = null; + Index q = head; + Index r = q.right; + Node n; + K k; + int c; + for (;;) { + Index d; + // Traverse rights + if (r != null && (n = r.node) != bound && (k = n.key) != null) { + if ((c = key.compareTo(k)) > 0) { + q = r; + r = r.right; + continue; + } else if (c == 0) { + Object v = n.value; + return (v != null)? (V)v : getUsingFindNode(key); + } else + bound = n; + } + + // Traverse down + if ((d = q.down) != null) { + q = d; + r = d.right; + } else + break; + } + + // Traverse nexts + for (n = q.node.next; n != null; n = n.next) { + if ((k = n.key) != null) { + if ((c = key.compareTo(k)) == 0) { + Object v = n.value; + return (v != null)? (V)v : getUsingFindNode(key); + } else if (c < 0) + break; + } + } + return null; + } + + /** + * Performs map.get via findNode. Used as a backup if doGet + * encounters an in-progress deletion. + * @param key the key + * @return the value, or null if absent + */ + private V getUsingFindNode(Comparable key) { + /* + * Loop needed here and elsewhere in case value field goes + * null just as it is about to be returned, in which case we + * lost a race with a deletion, so must retry. + */ + for (;;) { + Node n = findNode(key); + if (n == null) + return null; + Object v = n.value; + if (v != null) + return (V)v; + } + } + + /* ---------------- Insertion -------------- */ + + /** + * Main insertion method. Adds element if not present, or + * replaces value if present and onlyIfAbsent is false. + * @param kkey the key + * @param value the value that must be associated with key + * @param onlyIfAbsent if should not insert if already present + * @return the old value, or null if newly inserted + */ + private V doPut(K kkey, V value, boolean onlyIfAbsent) { + Comparable key = comparable(kkey); + for (;;) { + Node b = findPredecessor(key); + Node n = b.next; + for (;;) { + if (n != null) { + Node f = n.next; + if (n != b.next) // inconsistent read + break;; + Object v = n.value; + if (v == null) { // n is deleted + n.helpDelete(b, f); + break; + } + if (v == n || b.value == null) // b is deleted + break; + int c = key.compareTo(n.key); + if (c > 0) { + b = n; + n = f; + continue; + } + if (c == 0) { + if (onlyIfAbsent || n.casValue(v, value)) + return (V)v; + else + break; // restart if lost race to replace value + } + // else c < 0; fall through + } + + Node z = new Node(kkey, value, n); + if (!b.casNext(n, z)) + break; // restart if lost race to append to b + int level = randomLevel(); + if (level > 0) + insertIndex(z, level); + return null; + } + } + } + + /** + * Returns a random level for inserting a new node. + * Hardwired to k=1, p=0.5, max 31 (see above and + * Pugh's "Skip List Cookbook", sec 3.4). + * + * This uses the simplest of the generators described in George + * Marsaglia's "Xorshift RNGs" paper. This is not a high-quality + * generator but is acceptable here. + */ + private int randomLevel() { + int x = randomSeed; + x ^= x << 13; + x ^= x >>> 17; + randomSeed = x ^= x << 5; + if ((x & 0x8001) != 0) // test highest and lowest bits + return 0; + int level = 1; + while (((x >>>= 1) & 1) != 0) ++level; + return level; + } + + /** + * Creates and adds index nodes for the given node. + * @param z the node + * @param level the level of the index + */ + private void insertIndex(Node z, int level) { + HeadIndex h = head; + int max = h.level; + + if (level <= max) { + Index idx = null; + for (int i = 1; i <= level; ++i) + idx = new Index(z, idx, null); + addIndex(idx, h, level); + + } else { // Add a new level + /* + * To reduce interference by other threads checking for + * empty levels in tryReduceLevel, new levels are added + * with initialized right pointers. Which in turn requires + * keeping levels in an array to access them while + * creating new head index nodes from the opposite + * direction. + */ + level = max + 1; + Index[] idxs = (Index[])new Index[level+1]; + Index idx = null; + for (int i = 1; i <= level; ++i) + idxs[i] = idx = new Index(z, idx, null); + + HeadIndex oldh; + int k; + for (;;) { + oldh = head; + int oldLevel = oldh.level; + if (level <= oldLevel) { // lost race to add level + k = level; + break; + } + HeadIndex newh = oldh; + Node oldbase = oldh.node; + for (int j = oldLevel+1; j <= level; ++j) + newh = new HeadIndex(oldbase, newh, idxs[j], j); + if (casHead(oldh, newh)) { + k = oldLevel; + break; + } + } + addIndex(idxs[k], oldh, k); + } + } + + /** + * Adds given index nodes from given level down to 1. + * @param idx the topmost index node being inserted + * @param h the value of head to use to insert. This must be + * snapshotted by callers to provide correct insertion level + * @param indexLevel the level of the index + */ + private void addIndex(Index idx, HeadIndex h, int indexLevel) { + // Track next level to insert in case of retries + int insertionLevel = indexLevel; + Comparable key = comparable(idx.node.key); + if (key == null) throw new NullPointerException(); + + // Similar to findPredecessor, but adding index nodes along + // path to key. + for (;;) { + int j = h.level; + Index q = h; + Index r = q.right; + Index t = idx; + for (;;) { + if (r != null) { + Node n = r.node; + // compare before deletion check avoids needing recheck + int c = key.compareTo(n.key); + if (n.value == null) { + if (!q.unlink(r)) + break; + r = q.right; + continue; + } + if (c > 0) { + q = r; + r = r.right; + continue; + } + } + + if (j == insertionLevel) { + // Don't insert index if node already deleted + if (t.indexesDeletedNode()) { + findNode(key); // cleans up + return; + } + if (!q.link(r, t)) + break; // restart + if (--insertionLevel == 0) { + // need final deletion check before return + if (t.indexesDeletedNode()) + findNode(key); + return; + } + } + + if (--j >= insertionLevel && j < indexLevel) + t = t.down; + q = q.down; + r = q.right; + } + } + } + + /* ---------------- Deletion -------------- */ + + /** + * Main deletion method. Locates node, nulls value, appends a + * deletion marker, unlinks predecessor, removes associated index + * nodes, and possibly reduces head index level. + * + * Index nodes are cleared out simply by calling findPredecessor. + * which unlinks indexes to deleted nodes found along path to key, + * which will include the indexes to this node. This is done + * unconditionally. We can't check beforehand whether there are + * index nodes because it might be the case that some or all + * indexes hadn't been inserted yet for this node during initial + * search for it, and we'd like to ensure lack of garbage + * retention, so must call to be sure. + * + * @param okey the key + * @param value if non-null, the value that must be + * associated with key + * @return the node, or null if not found + */ + final V doRemove(Object okey, Object value) { + Comparable key = comparable(okey); + for (;;) { + Node b = findPredecessor(key); + Node n = b.next; + for (;;) { + if (n == null) + return null; + Node f = n.next; + if (n != b.next) // inconsistent read + break; + Object v = n.value; + if (v == null) { // n is deleted + n.helpDelete(b, f); + break; + } + if (v == n || b.value == null) // b is deleted + break; + int c = key.compareTo(n.key); + if (c < 0) + return null; + if (c > 0) { + b = n; + n = f; + continue; + } + if (value != null && !value.equals(v)) + return null; + if (!n.casValue(v, null)) + break; + if (!n.appendMarker(f) || !b.casNext(n, f)) + findNode(key); // Retry via findNode + else { + findPredecessor(key); // Clean index + if (head.right == null) + tryReduceLevel(); + } + return (V)v; + } + } + } + + /** + * Possibly reduce head level if it has no nodes. This method can + * (rarely) make mistakes, in which case levels can disappear even + * though they are about to contain index nodes. This impacts + * performance, not correctness. To minimize mistakes as well as + * to reduce hysteresis, the level is reduced by one only if the + * topmost three levels look empty. Also, if the removed level + * looks non-empty after CAS, we try to change it back quick + * before anyone notices our mistake! (This trick works pretty + * well because this method will practically never make mistakes + * unless current thread stalls immediately before first CAS, in + * which case it is very unlikely to stall again immediately + * afterwards, so will recover.) + * + * We put up with all this rather than just let levels grow + * because otherwise, even a small map that has undergone a large + * number of insertions and removals will have a lot of levels, + * slowing down access more than would an occasional unwanted + * reduction. + */ + private void tryReduceLevel() { + HeadIndex h = head; + HeadIndex d; + HeadIndex e; + if (h.level > 3 && + (d = (HeadIndex)h.down) != null && + (e = (HeadIndex)d.down) != null && + e.right == null && + d.right == null && + h.right == null && + casHead(h, d) && // try to set + h.right != null) // recheck + casHead(d, h); // try to backout + } + + /* ---------------- Finding and removing first element -------------- */ + + /** + * Specialized variant of findNode to get first valid node. + * @return first node or null if empty + */ + Node findFirst() { + for (;;) { + Node b = head.node; + Node n = b.next; + if (n == null) + return null; + if (n.value != null) + return n; + n.helpDelete(b, n.next); + } + } + + /** + * Removes first entry; returns its snapshot. + * @return null if empty, else snapshot of first entry + */ + Map.Entry doRemoveFirstEntry() { + for (;;) { + Node b = head.node; + Node n = b.next; + if (n == null) + return null; + Node f = n.next; + if (n != b.next) + continue; + Object v = n.value; + if (v == null) { + n.helpDelete(b, f); + continue; + } + if (!n.casValue(v, null)) + continue; + if (!n.appendMarker(f) || !b.casNext(n, f)) + findFirst(); // retry + clearIndexToFirst(); + return new AbstractMap.SimpleImmutableEntry(n.key, (V)v); + } + } + + /** + * Clears out index nodes associated with deleted first entry. + */ + private void clearIndexToFirst() { + for (;;) { + Index q = head; + for (;;) { + Index r = q.right; + if (r != null && r.indexesDeletedNode() && !q.unlink(r)) + break; + if ((q = q.down) == null) { + if (head.right == null) + tryReduceLevel(); + return; + } + } + } + } + + + /* ---------------- Finding and removing last element -------------- */ + + /** + * Specialized version of find to get last valid node. + * @return last node or null if empty + */ + Node findLast() { + /* + * findPredecessor can't be used to traverse index level + * because this doesn't use comparisons. So traversals of + * both levels are folded together. + */ + Index q = head; + for (;;) { + Index d, r; + if ((r = q.right) != null) { + if (r.indexesDeletedNode()) { + q.unlink(r); + q = head; // restart + } + else + q = r; + } else if ((d = q.down) != null) { + q = d; + } else { + Node b = q.node; + Node n = b.next; + for (;;) { + if (n == null) + return (b.isBaseHeader())? null : b; + Node f = n.next; // inconsistent read + if (n != b.next) + break; + Object v = n.value; + if (v == null) { // n is deleted + n.helpDelete(b, f); + break; + } + if (v == n || b.value == null) // b is deleted + break; + b = n; + n = f; + } + q = head; // restart + } + } + } + + /** + * Specialized variant of findPredecessor to get predecessor of last + * valid node. Needed when removing the last entry. It is possible + * that all successors of returned node will have been deleted upon + * return, in which case this method can be retried. + * @return likely predecessor of last node + */ + private Node findPredecessorOfLast() { + for (;;) { + Index q = head; + for (;;) { + Index d, r; + if ((r = q.right) != null) { + if (r.indexesDeletedNode()) { + q.unlink(r); + break; // must restart + } + // proceed as far across as possible without overshooting + if (r.node.next != null) { + q = r; + continue; + } + } + if ((d = q.down) != null) + q = d; + else + return q.node; + } + } + } + + /** + * Removes last entry; returns its snapshot. + * Specialized variant of doRemove. + * @return null if empty, else snapshot of last entry + */ + Map.Entry doRemoveLastEntry() { + for (;;) { + Node b = findPredecessorOfLast(); + Node n = b.next; + if (n == null) { + if (b.isBaseHeader()) // empty + return null; + else + continue; // all b's successors are deleted; retry + } + for (;;) { + Node f = n.next; + if (n != b.next) // inconsistent read + break; + Object v = n.value; + if (v == null) { // n is deleted + n.helpDelete(b, f); + break; + } + if (v == n || b.value == null) // b is deleted + break; + if (f != null) { + b = n; + n = f; + continue; + } + if (!n.casValue(v, null)) + break; + K key = n.key; + Comparable ck = comparable(key); + if (!n.appendMarker(f) || !b.casNext(n, f)) + findNode(ck); // Retry via findNode + else { + findPredecessor(ck); // Clean index + if (head.right == null) + tryReduceLevel(); + } + return new AbstractMap.SimpleImmutableEntry(key, (V)v); + } + } + } + + /* ---------------- Relational operations -------------- */ + + // Control values OR'ed as arguments to findNear + + private static final int EQ = 1; + private static final int LT = 2; + private static final int GT = 0; // Actually checked as !LT + + /** + * Utility for ceiling, floor, lower, higher methods. + * @param kkey the key + * @param rel the relation -- OR'ed combination of EQ, LT, GT + * @return nearest node fitting relation, or null if no such + */ + Node findNear(K kkey, int rel) { + Comparable key = comparable(kkey); + for (;;) { + Node b = findPredecessor(key); + Node n = b.next; + for (;;) { + if (n == null) + return ((rel & LT) == 0 || b.isBaseHeader())? null : b; + Node f = n.next; + if (n != b.next) // inconsistent read + break; + Object v = n.value; + if (v == null) { // n is deleted + n.helpDelete(b, f); + break; + } + if (v == n || b.value == null) // b is deleted + break; + int c = key.compareTo(n.key); + if ((c == 0 && (rel & EQ) != 0) || + (c < 0 && (rel & LT) == 0)) + return n; + if ( c <= 0 && (rel & LT) != 0) + return (b.isBaseHeader())? null : b; + b = n; + n = f; + } + } + } + + /** + * Returns SimpleImmutableEntry for results of findNear. + * @param key the key + * @param rel the relation -- OR'ed combination of EQ, LT, GT + * @return Entry fitting relation, or null if no such + */ + AbstractMap.SimpleImmutableEntry getNear(K key, int rel) { + for (;;) { + Node n = findNear(key, rel); + if (n == null) + return null; + AbstractMap.SimpleImmutableEntry e = n.createSnapshot(); + if (e != null) + return e; + } + } + + + /* ---------------- Constructors -------------- */ + + /** + * Constructs a new, empty map, sorted according to the + * {@linkplain Comparable natural ordering} of the keys. + */ + public ConcurrentSkipListMap() { + this.comparator = null; + initialize(); + } + + /** + * Constructs a new, empty map, sorted according to the specified + * comparator. + * + * @param comparator the comparator that will be used to order this map. + * If null, the {@linkplain Comparable natural + * ordering} of the keys will be used. + */ + public ConcurrentSkipListMap(Comparator comparator) { + this.comparator = comparator; + initialize(); + } + + /** + * Constructs a new map containing the same mappings as the given map, + * sorted according to the {@linkplain Comparable natural ordering} of + * the keys. + * + * @param m the map whose mappings are to be placed in this map + * @throws ClassCastException if the keys in m are not + * {@link Comparable}, or are not mutually comparable + * @throws NullPointerException if the specified map or any of its keys + * or values are null + */ + public ConcurrentSkipListMap(Map m) { + this.comparator = null; + initialize(); + putAll(m); + } + + /** + * Constructs a new map containing the same mappings and using the + * same ordering as the specified sorted map. + * + * @param m the sorted map whose mappings are to be placed in this + * map, and whose comparator is to be used to sort this map + * @throws NullPointerException if the specified sorted map or any of + * its keys or values are null + */ + public ConcurrentSkipListMap(SortedMap m) { + this.comparator = m.comparator(); + initialize(); + buildFromSorted(m); + } + + /** + * Returns a shallow copy of this ConcurrentSkipListMap + * instance. (The keys and values themselves are not cloned.) + * + * @return a shallow copy of this map + */ + public ConcurrentSkipListMap clone() { + ConcurrentSkipListMap clone = null; + try { + clone = (ConcurrentSkipListMap) super.clone(); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + + clone.initialize(); + clone.buildFromSorted(this); + return clone; + } + + /** + * Streamlined bulk insertion to initialize from elements of + * given sorted map. Call only from constructor or clone + * method. + */ + private void buildFromSorted(SortedMap map) { + if (map == null) + throw new NullPointerException(); + + HeadIndex h = head; + Node basepred = h.node; + + // Track the current rightmost node at each level. Uses an + // ArrayList to avoid committing to initial or maximum level. + ArrayList> preds = new ArrayList>(); + + // initialize + for (int i = 0; i <= h.level; ++i) + preds.add(null); + Index q = h; + for (int i = h.level; i > 0; --i) { + preds.set(i, q); + q = q.down; + } + + Iterator> it = + map.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry e = it.next(); + int j = randomLevel(); + if (j > h.level) j = h.level + 1; + K k = e.getKey(); + V v = e.getValue(); + if (k == null || v == null) + throw new NullPointerException(); + Node z = new Node(k, v, null); + basepred.next = z; + basepred = z; + if (j > 0) { + Index idx = null; + for (int i = 1; i <= j; ++i) { + idx = new Index(z, idx, null); + if (i > h.level) + h = new HeadIndex(h.node, h, idx, i); + + if (i < preds.size()) { + preds.get(i).right = idx; + preds.set(i, idx); + } else + preds.add(idx); + } + } + } + head = h; + } + + /* ---------------- Serialization -------------- */ + + /** + * Save the state of this map to a stream. + * + * @serialData The key (Object) and value (Object) for each + * key-value mapping represented by the map, followed by + * null. The key-value mappings are emitted in key-order + * (as determined by the Comparator, or by the keys' natural + * ordering if no Comparator). + */ + private void writeObject(java.io.ObjectOutputStream s) + throws java.io.IOException { + // Write out the Comparator and any hidden stuff + s.defaultWriteObject(); + + // Write out keys and values (alternating) + for (Node n = findFirst(); n != null; n = n.next) { + V v = n.getValidValue(); + if (v != null) { + s.writeObject(n.key); + s.writeObject(v); + } + } + s.writeObject(null); + } + + /** + * Reconstitute the map from a stream. + */ + private void readObject(final java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + // Read in the Comparator and any hidden stuff + s.defaultReadObject(); + // Reset transients + initialize(); + + /* + * This is nearly identical to buildFromSorted, but is + * distinct because readObject calls can't be nicely adapted + * as the kind of iterator needed by buildFromSorted. (They + * can be, but doing so requires type cheats and/or creation + * of adaptor classes.) It is simpler to just adapt the code. + */ + + HeadIndex h = head; + Node basepred = h.node; + ArrayList> preds = new ArrayList>(); + for (int i = 0; i <= h.level; ++i) + preds.add(null); + Index q = h; + for (int i = h.level; i > 0; --i) { + preds.set(i, q); + q = q.down; + } + + for (;;) { + Object k = s.readObject(); + if (k == null) + break; + Object v = s.readObject(); + if (v == null) + throw new NullPointerException(); + K key = (K) k; + V val = (V) v; + int j = randomLevel(); + if (j > h.level) j = h.level + 1; + Node z = new Node(key, val, null); + basepred.next = z; + basepred = z; + if (j > 0) { + Index idx = null; + for (int i = 1; i <= j; ++i) { + idx = new Index(z, idx, null); + if (i > h.level) + h = new HeadIndex(h.node, h, idx, i); + + if (i < preds.size()) { + preds.get(i).right = idx; + preds.set(i, idx); + } else + preds.add(idx); + } + } + } + head = h; + } + + /* ------ Map API methods ------ */ + + /** + * Returns true if this map contains a mapping for the specified + * key. + * + * @param key key whose presence in this map is to be tested + * @return true if this map contains a mapping for the specified key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + */ + public boolean containsKey(Object key) { + return doGet(key) != null; + } + + /** + * Returns the value to which the specified key is mapped, + * or {@code null} if this map contains no mapping for the key. + * + *

More formally, if this map contains a mapping from a key + * {@code k} to a value {@code v} such that {@code key} compares + * equal to {@code k} according to the map's ordering, then this + * method returns {@code v}; otherwise it returns {@code null}. + * (There can be at most one such mapping.) + * + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + */ + public V get(Object key) { + return doGet(key); + } + + /** + * Associates the specified value with the specified key in this map. + * If the map previously contained a mapping for the key, the old + * value is replaced. + * + * @param key key with which the specified value is to be associated + * @param value value to be associated with the specified key + * @return the previous value associated with the specified key, or + * null if there was no mapping for the key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key or value is null + */ + public V put(K key, V value) { + if (value == null) + throw new NullPointerException(); + return doPut(key, value, false); + } + + /** + * Removes the mapping for the specified key from this map if present. + * + * @param key key for which mapping should be removed + * @return the previous value associated with the specified key, or + * null if there was no mapping for the key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + */ + public V remove(Object key) { + return doRemove(key, null); + } + + /** + * Returns true if this map maps one or more keys to the + * specified value. This operation requires time linear in the + * map size. + * + * @param value value whose presence in this map is to be tested + * @return true if a mapping to value exists; + * false otherwise + * @throws NullPointerException if the specified value is null + */ + public boolean containsValue(Object value) { + if (value == null) + throw new NullPointerException(); + for (Node n = findFirst(); n != null; n = n.next) { + V v = n.getValidValue(); + if (v != null && value.equals(v)) + return true; + } + return false; + } + + /** + * Returns the number of key-value mappings in this map. If this map + * contains more than Integer.MAX_VALUE elements, it + * returns Integer.MAX_VALUE. + * + *

Beware that, unlike in most collections, this method is + * NOT a constant-time operation. Because of the + * asynchronous nature of these maps, determining the current + * number of elements requires traversing them all to count them. + * Additionally, it is possible for the size to change during + * execution of this method, in which case the returned result + * will be inaccurate. Thus, this method is typically not very + * useful in concurrent applications. + * + * @return the number of elements in this map + */ + public int size() { + long count = 0; + for (Node n = findFirst(); n != null; n = n.next) { + if (n.getValidValue() != null) + ++count; + } + return (count >= Integer.MAX_VALUE)? Integer.MAX_VALUE : (int)count; + } + + /** + * Returns true if this map contains no key-value mappings. + * @return true if this map contains no key-value mappings + */ + public boolean isEmpty() { + return findFirst() == null; + } + + /** + * Removes all of the mappings from this map. + */ + public void clear() { + initialize(); + } + + /* ---------------- View methods -------------- */ + + /* + * Note: Lazy initialization works for views because view classes + * are stateless/immutable so it doesn't matter wrt correctness if + * more than one is created (which will only rarely happen). Even + * so, the following idiom conservatively ensures that the method + * returns the one it created if it does so, not one created by + * another racing thread. + */ + + /** + * Returns a {@link NavigableSet} view of the keys contained in this map. + * The set's iterator returns the keys in ascending order. + * The set is backed by the map, so changes to the map are + * reflected in the set, and vice-versa. The set supports element + * removal, which removes the corresponding mapping from the map, + * via the {@code Iterator.remove}, {@code Set.remove}, + * {@code removeAll}, {@code retainAll}, and {@code clear} + * operations. It does not support the {@code add} or {@code addAll} + * operations. + * + *

The view's {@code iterator} is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + *

This method is equivalent to method {@code navigableKeySet}. + * + * @return a navigable set view of the keys in this map + */ + public NavigableSet keySet() { + KeySet ks = keySet; + return (ks != null) ? ks : (keySet = new KeySet(this)); + } + + public NavigableSet navigableKeySet() { + KeySet ks = keySet; + return (ks != null) ? ks : (keySet = new KeySet(this)); + } + + /** + * Returns a {@link Collection} view of the values contained in this map. + * The collection's iterator returns the values in ascending order + * of the corresponding keys. + * The collection is backed by the map, so changes to the map are + * reflected in the collection, and vice-versa. The collection + * supports element removal, which removes the corresponding + * mapping from the map, via the Iterator.remove, + * Collection.remove, removeAll, + * retainAll and clear operations. It does not + * support the add or addAll operations. + * + *

The view's iterator is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + */ + public Collection values() { + Values vs = values; + return (vs != null) ? vs : (values = new Values(this)); + } + + /** + * Returns a {@link Set} view of the mappings contained in this map. + * The set's iterator returns the entries in ascending key order. + * The set is backed by the map, so changes to the map are + * reflected in the set, and vice-versa. The set supports element + * removal, which removes the corresponding mapping from the map, + * via the Iterator.remove, Set.remove, + * removeAll, retainAll and clear + * operations. It does not support the add or + * addAll operations. + * + *

The view's iterator is a "weakly consistent" iterator + * that will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + *

The Map.Entry elements returned by + * iterator.next() do not support the + * setValue operation. + * + * @return a set view of the mappings contained in this map, + * sorted in ascending key order + */ + public Set> entrySet() { + EntrySet es = entrySet; + return (es != null) ? es : (entrySet = new EntrySet(this)); + } + + public ConcurrentNavigableMap descendingMap() { + ConcurrentNavigableMap dm = descendingMap; + return (dm != null) ? dm : (descendingMap = new SubMap + (this, null, false, null, false, true)); + } + + public NavigableSet descendingKeySet() { + return descendingMap().navigableKeySet(); + } + + /* ---------------- AbstractMap Overrides -------------- */ + + /** + * Compares the specified object with this map for equality. + * Returns true if the given object is also a map and the + * two maps represent the same mappings. More formally, two maps + * m1 and m2 represent the same mappings if + * m1.entrySet().equals(m2.entrySet()). This + * operation may return misleading results if either map is + * concurrently modified during execution of this method. + * + * @param o object to be compared for equality with this map + * @return true if the specified object is equal to this map + */ + public boolean equals(Object o) { + if (o == this) + return true; + if (!(o instanceof Map)) + return false; + Map m = (Map) o; + try { + for (Map.Entry e : this.entrySet()) + if (! e.getValue().equals(m.get(e.getKey()))) + return false; + for (Map.Entry e : m.entrySet()) { + Object k = e.getKey(); + Object v = e.getValue(); + if (k == null || v == null || !v.equals(get(k))) + return false; + } + return true; + } catch (ClassCastException unused) { + return false; + } catch (NullPointerException unused) { + return false; + } + } + + /* ------ ConcurrentMap API methods ------ */ + + /** + * {@inheritDoc} + * + * @return the previous value associated with the specified key, + * or null if there was no mapping for the key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key or value is null + */ + public V putIfAbsent(K key, V value) { + if (value == null) + throw new NullPointerException(); + return doPut(key, value, true); + } + + /** + * {@inheritDoc} + * + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key is null + */ + public boolean remove(Object key, Object value) { + if (key == null) + throw new NullPointerException(); + if (value == null) + return false; + return doRemove(key, value) != null; + } + + /** + * {@inheritDoc} + * + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if any of the arguments are null + */ + public boolean replace(K key, V oldValue, V newValue) { + if (oldValue == null || newValue == null) + throw new NullPointerException(); + Comparable k = comparable(key); + for (;;) { + Node n = findNode(k); + if (n == null) + return false; + Object v = n.value; + if (v != null) { + if (!oldValue.equals(v)) + return false; + if (n.casValue(v, newValue)) + return true; + } + } + } + + /** + * {@inheritDoc} + * + * @return the previous value associated with the specified key, + * or null if there was no mapping for the key + * @throws ClassCastException if the specified key cannot be compared + * with the keys currently in the map + * @throws NullPointerException if the specified key or value is null + */ + public V replace(K key, V value) { + if (value == null) + throw new NullPointerException(); + Comparable k = comparable(key); + for (;;) { + Node n = findNode(k); + if (n == null) + return null; + Object v = n.value; + if (v != null && n.casValue(v, value)) + return (V)v; + } + } + + /* ------ SortedMap API methods ------ */ + + public Comparator comparator() { + return comparator; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public K firstKey() { + Node n = findFirst(); + if (n == null) + throw new NoSuchElementException(); + return n.key; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public K lastKey() { + Node n = findLast(); + if (n == null) + throw new NoSuchElementException(); + return n.key; + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromKey} or {@code toKey} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public ConcurrentNavigableMap subMap(K fromKey, + boolean fromInclusive, + K toKey, + boolean toInclusive) { + if (fromKey == null || toKey == null) + throw new NullPointerException(); + return new SubMap + (this, fromKey, fromInclusive, toKey, toInclusive, false); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code toKey} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public ConcurrentNavigableMap headMap(K toKey, + boolean inclusive) { + if (toKey == null) + throw new NullPointerException(); + return new SubMap + (this, null, false, toKey, inclusive, false); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromKey} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public ConcurrentNavigableMap tailMap(K fromKey, + boolean inclusive) { + if (fromKey == null) + throw new NullPointerException(); + return new SubMap + (this, fromKey, inclusive, null, false, false); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromKey} or {@code toKey} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public ConcurrentNavigableMap subMap(K fromKey, K toKey) { + return subMap(fromKey, true, toKey, false); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code toKey} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public ConcurrentNavigableMap headMap(K toKey) { + return headMap(toKey, false); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromKey} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public ConcurrentNavigableMap tailMap(K fromKey) { + return tailMap(fromKey, true); + } + + /* ---------------- Relational operations -------------- */ + + /** + * Returns a key-value mapping associated with the greatest key + * strictly less than the given key, or null if there is + * no such key. The returned entry does not support the + * Entry.setValue method. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public Map.Entry lowerEntry(K key) { + return getNear(key, LT); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public K lowerKey(K key) { + Node n = findNear(key, LT); + return (n == null)? null : n.key; + } + + /** + * Returns a key-value mapping associated with the greatest key + * less than or equal to the given key, or null if there + * is no such key. The returned entry does not support + * the Entry.setValue method. + * + * @param key the key + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public Map.Entry floorEntry(K key) { + return getNear(key, LT|EQ); + } + + /** + * @param key the key + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public K floorKey(K key) { + Node n = findNear(key, LT|EQ); + return (n == null)? null : n.key; + } + + /** + * Returns a key-value mapping associated with the least key + * greater than or equal to the given key, or null if + * there is no such entry. The returned entry does not + * support the Entry.setValue method. + * + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public Map.Entry ceilingEntry(K key) { + return getNear(key, GT|EQ); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public K ceilingKey(K key) { + Node n = findNear(key, GT|EQ); + return (n == null)? null : n.key; + } + + /** + * Returns a key-value mapping associated with the least key + * strictly greater than the given key, or null if there + * is no such key. The returned entry does not support + * the Entry.setValue method. + * + * @param key the key + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public Map.Entry higherEntry(K key) { + return getNear(key, GT); + } + + /** + * @param key the key + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified key is null + */ + public K higherKey(K key) { + Node n = findNear(key, GT); + return (n == null)? null : n.key; + } + + /** + * Returns a key-value mapping associated with the least + * key in this map, or null if the map is empty. + * The returned entry does not support + * the Entry.setValue method. + */ + public Map.Entry firstEntry() { + for (;;) { + Node n = findFirst(); + if (n == null) + return null; + AbstractMap.SimpleImmutableEntry e = n.createSnapshot(); + if (e != null) + return e; + } + } + + /** + * Returns a key-value mapping associated with the greatest + * key in this map, or null if the map is empty. + * The returned entry does not support + * the Entry.setValue method. + */ + public Map.Entry lastEntry() { + for (;;) { + Node n = findLast(); + if (n == null) + return null; + AbstractMap.SimpleImmutableEntry e = n.createSnapshot(); + if (e != null) + return e; + } + } + + /** + * Removes and returns a key-value mapping associated with + * the least key in this map, or null if the map is empty. + * The returned entry does not support + * the Entry.setValue method. + */ + public Map.Entry pollFirstEntry() { + return doRemoveFirstEntry(); + } + + /** + * Removes and returns a key-value mapping associated with + * the greatest key in this map, or null if the map is empty. + * The returned entry does not support + * the Entry.setValue method. + */ + public Map.Entry pollLastEntry() { + return doRemoveLastEntry(); + } + + + /* ---------------- Iterators -------------- */ + + /** + * Base of iterator classes: + */ + abstract class Iter implements Iterator { + /** the last node returned by next() */ + Node lastReturned; + /** the next node to return from next(); */ + Node next; + /** Cache of next value field to maintain weak consistency */ + V nextValue; + + /** Initializes ascending iterator for entire range. */ + Iter() { + for (;;) { + next = findFirst(); + if (next == null) + break; + Object x = next.value; + if (x != null && x != next) { + nextValue = (V) x; + break; + } + } + } + + public final boolean hasNext() { + return next != null; + } + + /** Advances next to higher entry. */ + final void advance() { + if ((lastReturned = next) == null) + throw new NoSuchElementException(); + for (;;) { + next = next.next; + if (next == null) + break; + Object x = next.value; + if (x != null && x != next) { + nextValue = (V) x; + break; + } + } + } + + public void remove() { + Node l = lastReturned; + if (l == null) + throw new IllegalStateException(); + // It would not be worth all of the overhead to directly + // unlink from here. Using remove is fast enough. + ConcurrentSkipListMap.this.remove(l.key); + lastReturned = null; + } + + } + + final class ValueIterator extends Iter { + public V next() { + V v = nextValue; + advance(); + return v; + } + } + + final class KeyIterator extends Iter { + public K next() { + Node n = next; + advance(); + return n.key; + } + } + + final class EntryIterator extends Iter> { + public Map.Entry next() { + Node n = next; + V v = nextValue; + advance(); + return new AbstractMap.SimpleImmutableEntry(n.key, v); + } + } + + // Factory methods for iterators needed by ConcurrentSkipListSet etc + + Iterator keyIterator() { + return new KeyIterator(); + } + + Iterator valueIterator() { + return new ValueIterator(); + } + + Iterator> entryIterator() { + return new EntryIterator(); + } + + /* ---------------- View Classes -------------- */ + + /* + * View classes are static, delegating to a ConcurrentNavigableMap + * to allow use by SubMaps, which outweighs the ugliness of + * needing type-tests for Iterator methods. + */ + + static final List toList(Collection c) { + // Using size() here would be a pessimization. + List list = new ArrayList(); + for (E e : c) + list.add(e); + return list; + } + + static final class KeySet extends AbstractSet implements NavigableSet { + private final ConcurrentNavigableMap m; + KeySet(ConcurrentNavigableMap map) { m = map; } + public int size() { return m.size(); } + public boolean isEmpty() { return m.isEmpty(); } + public boolean contains(Object o) { return m.containsKey(o); } + public boolean remove(Object o) { return m.remove(o) != null; } + public void clear() { m.clear(); } + public E lower(E e) { return m.lowerKey(e); } + public E floor(E e) { return m.floorKey(e); } + public E ceiling(E e) { return m.ceilingKey(e); } + public E higher(E e) { return m.higherKey(e); } + public Comparator comparator() { return m.comparator(); } + public E first() { return m.firstKey(); } + public E last() { return m.lastKey(); } + public E pollFirst() { + Map.Entry e = m.pollFirstEntry(); + return e == null? null : e.getKey(); + } + public E pollLast() { + Map.Entry e = m.pollLastEntry(); + return e == null? null : e.getKey(); + } + public Iterator iterator() { + if (m instanceof ConcurrentSkipListMap) + return ((ConcurrentSkipListMap)m).keyIterator(); + else + return ((ConcurrentSkipListMap.SubMap)m).keyIterator(); + } + public boolean equals(Object o) { + if (o == this) + return true; + if (!(o instanceof Set)) + return false; + Collection c = (Collection) o; + try { + return containsAll(c) && c.containsAll(this); + } catch (ClassCastException unused) { + return false; + } catch (NullPointerException unused) { + return false; + } + } + public Object[] toArray() { return toList(this).toArray(); } + public T[] toArray(T[] a) { return toList(this).toArray(a); } + public Iterator descendingIterator() { + return descendingSet().iterator(); + } + public NavigableSet subSet(E fromElement, + boolean fromInclusive, + E toElement, + boolean toInclusive) { + return new ConcurrentSkipListSet + (m.subMap(fromElement, fromInclusive, + toElement, toInclusive)); + } + public NavigableSet headSet(E toElement, boolean inclusive) { + return new ConcurrentSkipListSet(m.headMap(toElement, inclusive)); + } + public NavigableSet tailSet(E fromElement, boolean inclusive) { + return new ConcurrentSkipListSet(m.tailMap(fromElement, inclusive)); + } + public NavigableSet subSet(E fromElement, E toElement) { + return subSet(fromElement, true, toElement, false); + } + public NavigableSet headSet(E toElement) { + return headSet(toElement, false); + } + public NavigableSet tailSet(E fromElement) { + return tailSet(fromElement, true); + } + public NavigableSet descendingSet() { + return new ConcurrentSkipListSet(m.descendingMap()); + } + } + + static final class Values extends AbstractCollection { + private final ConcurrentNavigableMap m; + Values(ConcurrentNavigableMap map) { + m = map; + } + public Iterator iterator() { + if (m instanceof ConcurrentSkipListMap) + return ((ConcurrentSkipListMap)m).valueIterator(); + else + return ((SubMap)m).valueIterator(); + } + public boolean isEmpty() { + return m.isEmpty(); + } + public int size() { + return m.size(); + } + public boolean contains(Object o) { + return m.containsValue(o); + } + public void clear() { + m.clear(); + } + public Object[] toArray() { return toList(this).toArray(); } + public T[] toArray(T[] a) { return toList(this).toArray(a); } + } + + static final class EntrySet extends AbstractSet> { + private final ConcurrentNavigableMap m; + EntrySet(ConcurrentNavigableMap map) { + m = map; + } + + public Iterator> iterator() { + if (m instanceof ConcurrentSkipListMap) + return ((ConcurrentSkipListMap)m).entryIterator(); + else + return ((SubMap)m).entryIterator(); + } + + public boolean contains(Object o) { + if (!(o instanceof Map.Entry)) + return false; + Map.Entry e = (Map.Entry)o; + V1 v = m.get(e.getKey()); + return v != null && v.equals(e.getValue()); + } + public boolean remove(Object o) { + if (!(o instanceof Map.Entry)) + return false; + Map.Entry e = (Map.Entry)o; + return m.remove(e.getKey(), + e.getValue()); + } + public boolean isEmpty() { + return m.isEmpty(); + } + public int size() { + return m.size(); + } + public void clear() { + m.clear(); + } + public boolean equals(Object o) { + if (o == this) + return true; + if (!(o instanceof Set)) + return false; + Collection c = (Collection) o; + try { + return containsAll(c) && c.containsAll(this); + } catch (ClassCastException unused) { + return false; + } catch (NullPointerException unused) { + return false; + } + } + public Object[] toArray() { return toList(this).toArray(); } + public T[] toArray(T[] a) { return toList(this).toArray(a); } + } + + /** + * Submaps returned by {@link ConcurrentSkipListMap} submap operations + * represent a subrange of mappings of their underlying + * maps. Instances of this class support all methods of their + * underlying maps, differing in that mappings outside their range are + * ignored, and attempts to add mappings outside their ranges result + * in {@link IllegalArgumentException}. Instances of this class are + * constructed only using the subMap, headMap, and + * tailMap methods of their underlying maps. + * + * @serial include + */ + static final class SubMap extends AbstractMap + implements ConcurrentNavigableMap, Cloneable, + java.io.Serializable { + private static final long serialVersionUID = -7647078645895051609L; + + /** Underlying map */ + private final ConcurrentSkipListMap m; + /** lower bound key, or null if from start */ + private final K lo; + /** upper bound key, or null if to end */ + private final K hi; + /** inclusion flag for lo */ + private final boolean loInclusive; + /** inclusion flag for hi */ + private final boolean hiInclusive; + /** direction */ + private final boolean isDescending; + + // Lazily initialized view holders + private transient KeySet keySetView; + private transient Set> entrySetView; + private transient Collection valuesView; + + /** + * Creates a new submap, initializing all fields + */ + SubMap(ConcurrentSkipListMap map, + K fromKey, boolean fromInclusive, + K toKey, boolean toInclusive, + boolean isDescending) { + if (fromKey != null && toKey != null && + map.compare(fromKey, toKey) > 0) + throw new IllegalArgumentException("inconsistent range"); + this.m = map; + this.lo = fromKey; + this.hi = toKey; + this.loInclusive = fromInclusive; + this.hiInclusive = toInclusive; + this.isDescending = isDescending; + } + + /* ---------------- Utilities -------------- */ + + private boolean tooLow(K key) { + if (lo != null) { + int c = m.compare(key, lo); + if (c < 0 || (c == 0 && !loInclusive)) + return true; + } + return false; + } + + private boolean tooHigh(K key) { + if (hi != null) { + int c = m.compare(key, hi); + if (c > 0 || (c == 0 && !hiInclusive)) + return true; + } + return false; + } + + private boolean inBounds(K key) { + return !tooLow(key) && !tooHigh(key); + } + + private void checkKeyBounds(K key) throws IllegalArgumentException { + if (key == null) + throw new NullPointerException(); + if (!inBounds(key)) + throw new IllegalArgumentException("key out of range"); + } + + /** + * Returns true if node key is less than upper bound of range + */ + private boolean isBeforeEnd(ConcurrentSkipListMap.Node n) { + if (n == null) + return false; + if (hi == null) + return true; + K k = n.key; + if (k == null) // pass by markers and headers + return true; + int c = m.compare(k, hi); + if (c > 0 || (c == 0 && !hiInclusive)) + return false; + return true; + } + + /** + * Returns lowest node. This node might not be in range, so + * most usages need to check bounds + */ + private ConcurrentSkipListMap.Node loNode() { + if (lo == null) + return m.findFirst(); + else if (loInclusive) + return m.findNear(lo, m.GT|m.EQ); + else + return m.findNear(lo, m.GT); + } + + /** + * Returns highest node. This node might not be in range, so + * most usages need to check bounds + */ + private ConcurrentSkipListMap.Node hiNode() { + if (hi == null) + return m.findLast(); + else if (hiInclusive) + return m.findNear(hi, m.LT|m.EQ); + else + return m.findNear(hi, m.LT); + } + + /** + * Returns lowest absolute key (ignoring directonality) + */ + private K lowestKey() { + ConcurrentSkipListMap.Node n = loNode(); + if (isBeforeEnd(n)) + return n.key; + else + throw new NoSuchElementException(); + } + + /** + * Returns highest absolute key (ignoring directonality) + */ + private K highestKey() { + ConcurrentSkipListMap.Node n = hiNode(); + if (n != null) { + K last = n.key; + if (inBounds(last)) + return last; + } + throw new NoSuchElementException(); + } + + private Map.Entry lowestEntry() { + for (;;) { + ConcurrentSkipListMap.Node n = loNode(); + if (!isBeforeEnd(n)) + return null; + Map.Entry e = n.createSnapshot(); + if (e != null) + return e; + } + } + + private Map.Entry highestEntry() { + for (;;) { + ConcurrentSkipListMap.Node n = hiNode(); + if (n == null || !inBounds(n.key)) + return null; + Map.Entry e = n.createSnapshot(); + if (e != null) + return e; + } + } + + private Map.Entry removeLowest() { + for (;;) { + Node n = loNode(); + if (n == null) + return null; + K k = n.key; + if (!inBounds(k)) + return null; + V v = m.doRemove(k, null); + if (v != null) + return new AbstractMap.SimpleImmutableEntry(k, v); + } + } + + private Map.Entry removeHighest() { + for (;;) { + Node n = hiNode(); + if (n == null) + return null; + K k = n.key; + if (!inBounds(k)) + return null; + V v = m.doRemove(k, null); + if (v != null) + return new AbstractMap.SimpleImmutableEntry(k, v); + } + } + + /** + * Submap version of ConcurrentSkipListMap.getNearEntry + */ + private Map.Entry getNearEntry(K key, int rel) { + if (isDescending) { // adjust relation for direction + if ((rel & m.LT) == 0) + rel |= m.LT; + else + rel &= ~m.LT; + } + if (tooLow(key)) + return ((rel & m.LT) != 0)? null : lowestEntry(); + if (tooHigh(key)) + return ((rel & m.LT) != 0)? highestEntry() : null; + for (;;) { + Node n = m.findNear(key, rel); + if (n == null || !inBounds(n.key)) + return null; + K k = n.key; + V v = n.getValidValue(); + if (v != null) + return new AbstractMap.SimpleImmutableEntry(k, v); + } + } + + // Almost the same as getNearEntry, except for keys + private K getNearKey(K key, int rel) { + if (isDescending) { // adjust relation for direction + if ((rel & m.LT) == 0) + rel |= m.LT; + else + rel &= ~m.LT; + } + if (tooLow(key)) { + if ((rel & m.LT) == 0) { + ConcurrentSkipListMap.Node n = loNode(); + if (isBeforeEnd(n)) + return n.key; + } + return null; + } + if (tooHigh(key)) { + if ((rel & m.LT) != 0) { + ConcurrentSkipListMap.Node n = hiNode(); + if (n != null) { + K last = n.key; + if (inBounds(last)) + return last; + } + } + return null; + } + for (;;) { + Node n = m.findNear(key, rel); + if (n == null || !inBounds(n.key)) + return null; + K k = n.key; + V v = n.getValidValue(); + if (v != null) + return k; + } + } + + /* ---------------- Map API methods -------------- */ + + public boolean containsKey(Object key) { + if (key == null) throw new NullPointerException(); + K k = (K)key; + return inBounds(k) && m.containsKey(k); + } + + public V get(Object key) { + if (key == null) throw new NullPointerException(); + K k = (K)key; + return ((!inBounds(k)) ? null : m.get(k)); + } + + public V put(K key, V value) { + checkKeyBounds(key); + return m.put(key, value); + } + + public V remove(Object key) { + K k = (K)key; + return (!inBounds(k))? null : m.remove(k); + } + + public int size() { + long count = 0; + for (ConcurrentSkipListMap.Node n = loNode(); + isBeforeEnd(n); + n = n.next) { + if (n.getValidValue() != null) + ++count; + } + return count >= Integer.MAX_VALUE? Integer.MAX_VALUE : (int)count; + } + + public boolean isEmpty() { + return !isBeforeEnd(loNode()); + } + + public boolean containsValue(Object value) { + if (value == null) + throw new NullPointerException(); + for (ConcurrentSkipListMap.Node n = loNode(); + isBeforeEnd(n); + n = n.next) { + V v = n.getValidValue(); + if (v != null && value.equals(v)) + return true; + } + return false; + } + + public void clear() { + for (ConcurrentSkipListMap.Node n = loNode(); + isBeforeEnd(n); + n = n.next) { + if (n.getValidValue() != null) + m.remove(n.key); + } + } + + /* ---------------- ConcurrentMap API methods -------------- */ + + public V putIfAbsent(K key, V value) { + checkKeyBounds(key); + return m.putIfAbsent(key, value); + } + + public boolean remove(Object key, Object value) { + K k = (K)key; + return inBounds(k) && m.remove(k, value); + } + + public boolean replace(K key, V oldValue, V newValue) { + checkKeyBounds(key); + return m.replace(key, oldValue, newValue); + } + + public V replace(K key, V value) { + checkKeyBounds(key); + return m.replace(key, value); + } + + /* ---------------- SortedMap API methods -------------- */ + + public Comparator comparator() { + Comparator cmp = m.comparator(); + if (isDescending) + return Collections.reverseOrder(cmp); + else + return cmp; + } + + /** + * Utility to create submaps, where given bounds override + * unbounded(null) ones and/or are checked against bounded ones. + */ + private SubMap newSubMap(K fromKey, + boolean fromInclusive, + K toKey, + boolean toInclusive) { + if (isDescending) { // flip senses + K tk = fromKey; + fromKey = toKey; + toKey = tk; + boolean ti = fromInclusive; + fromInclusive = toInclusive; + toInclusive = ti; + } + if (lo != null) { + if (fromKey == null) { + fromKey = lo; + fromInclusive = loInclusive; + } + else { + int c = m.compare(fromKey, lo); + if (c < 0 || (c == 0 && !loInclusive && fromInclusive)) + throw new IllegalArgumentException("key out of range"); + } + } + if (hi != null) { + if (toKey == null) { + toKey = hi; + toInclusive = hiInclusive; + } + else { + int c = m.compare(toKey, hi); + if (c > 0 || (c == 0 && !hiInclusive && toInclusive)) + throw new IllegalArgumentException("key out of range"); + } + } + return new SubMap(m, fromKey, fromInclusive, + toKey, toInclusive, isDescending); + } + + public SubMap subMap(K fromKey, + boolean fromInclusive, + K toKey, + boolean toInclusive) { + if (fromKey == null || toKey == null) + throw new NullPointerException(); + return newSubMap(fromKey, fromInclusive, toKey, toInclusive); + } + + public SubMap headMap(K toKey, + boolean inclusive) { + if (toKey == null) + throw new NullPointerException(); + return newSubMap(null, false, toKey, inclusive); + } + + public SubMap tailMap(K fromKey, + boolean inclusive) { + if (fromKey == null) + throw new NullPointerException(); + return newSubMap(fromKey, inclusive, null, false); + } + + public SubMap subMap(K fromKey, K toKey) { + return subMap(fromKey, true, toKey, false); + } + + public SubMap headMap(K toKey) { + return headMap(toKey, false); + } + + public SubMap tailMap(K fromKey) { + return tailMap(fromKey, true); + } + + public SubMap descendingMap() { + return new SubMap(m, lo, loInclusive, + hi, hiInclusive, !isDescending); + } + + /* ---------------- Relational methods -------------- */ + + public Map.Entry ceilingEntry(K key) { + return getNearEntry(key, (m.GT|m.EQ)); + } + + public K ceilingKey(K key) { + return getNearKey(key, (m.GT|m.EQ)); + } + + public Map.Entry lowerEntry(K key) { + return getNearEntry(key, (m.LT)); + } + + public K lowerKey(K key) { + return getNearKey(key, (m.LT)); + } + + public Map.Entry floorEntry(K key) { + return getNearEntry(key, (m.LT|m.EQ)); + } + + public K floorKey(K key) { + return getNearKey(key, (m.LT|m.EQ)); + } + + public Map.Entry higherEntry(K key) { + return getNearEntry(key, (m.GT)); + } + + public K higherKey(K key) { + return getNearKey(key, (m.GT)); + } + + public K firstKey() { + return isDescending? highestKey() : lowestKey(); + } + + public K lastKey() { + return isDescending? lowestKey() : highestKey(); + } + + public Map.Entry firstEntry() { + return isDescending? highestEntry() : lowestEntry(); + } + + public Map.Entry lastEntry() { + return isDescending? lowestEntry() : highestEntry(); + } + + public Map.Entry pollFirstEntry() { + return isDescending? removeHighest() : removeLowest(); + } + + public Map.Entry pollLastEntry() { + return isDescending? removeLowest() : removeHighest(); + } + + /* ---------------- Submap Views -------------- */ + + public NavigableSet keySet() { + KeySet ks = keySetView; + return (ks != null) ? ks : (keySetView = new KeySet(this)); + } + + public NavigableSet navigableKeySet() { + KeySet ks = keySetView; + return (ks != null) ? ks : (keySetView = new KeySet(this)); + } + + public Collection values() { + Collection vs = valuesView; + return (vs != null) ? vs : (valuesView = new Values(this)); + } + + public Set> entrySet() { + Set> es = entrySetView; + return (es != null) ? es : (entrySetView = new EntrySet(this)); + } + + public NavigableSet descendingKeySet() { + return descendingMap().navigableKeySet(); + } + + Iterator keyIterator() { + return new SubMapKeyIterator(); + } + + Iterator valueIterator() { + return new SubMapValueIterator(); + } + + Iterator> entryIterator() { + return new SubMapEntryIterator(); + } + + /** + * Variant of main Iter class to traverse through submaps. + */ + abstract class SubMapIter implements Iterator { + /** the last node returned by next() */ + Node lastReturned; + /** the next node to return from next(); */ + Node next; + /** Cache of next value field to maintain weak consistency */ + V nextValue; + + SubMapIter() { + for (;;) { + next = isDescending ? hiNode() : loNode(); + if (next == null) + break; + Object x = next.value; + if (x != null && x != next) { + if (! inBounds(next.key)) + next = null; + else + nextValue = (V) x; + break; + } + } + } + + public final boolean hasNext() { + return next != null; + } + + final void advance() { + if ((lastReturned = next) == null) + throw new NoSuchElementException(); + if (isDescending) + descend(); + else + ascend(); + } + + private void ascend() { + for (;;) { + next = next.next; + if (next == null) + break; + Object x = next.value; + if (x != null && x != next) { + if (tooHigh(next.key)) + next = null; + else + nextValue = (V) x; + break; + } + } + } + + private void descend() { + for (;;) { + next = m.findNear(lastReturned.key, LT); + if (next == null) + break; + Object x = next.value; + if (x != null && x != next) { + if (tooLow(next.key)) + next = null; + else + nextValue = (V) x; + break; + } + } + } + + public void remove() { + Node l = lastReturned; + if (l == null) + throw new IllegalStateException(); + m.remove(l.key); + lastReturned = null; + } + + } + + final class SubMapValueIterator extends SubMapIter { + public V next() { + V v = nextValue; + advance(); + return v; + } + } + + final class SubMapKeyIterator extends SubMapIter { + public K next() { + Node n = next; + advance(); + return n.key; + } + } + + final class SubMapEntryIterator extends SubMapIter> { + public Map.Entry next() { + Node n = next; + V v = nextValue; + advance(); + return new AbstractMap.SimpleImmutableEntry(n.key, v); + } + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java new file mode 100644 index 00000000000..7da50d593ae --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java @@ -0,0 +1,456 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; +import sun.misc.Unsafe; + +/** + * A scalable concurrent {@link NavigableSet} implementation based on + * a {@link ConcurrentSkipListMap}. The elements of the set are kept + * sorted according to their {@linkplain Comparable natural ordering}, + * or by a {@link Comparator} provided at set creation time, depending + * on which constructor is used. + * + *

This implementation provides expected average log(n) time + * cost for the contains, add, and remove + * operations and their variants. Insertion, removal, and access + * operations safely execute concurrently by multiple threads. + * Iterators are weakly consistent, returning elements + * reflecting the state of the set at some point at or since the + * creation of the iterator. They do not throw {@link + * ConcurrentModificationException}, and may proceed concurrently with + * other operations. Ascending ordered views and their iterators are + * faster than descending ones. + * + *

Beware that, unlike in most collections, the size + * method is not a constant-time operation. Because of the + * asynchronous nature of these sets, determining the current number + * of elements requires a traversal of the elements. Additionally, the + * bulk operations addAll, removeAll, + * retainAll, and containsAll are not + * guaranteed to be performed atomically. For example, an iterator + * operating concurrently with an addAll operation might view + * only some of the added elements. + * + *

This class and its iterators implement all of the + * optional methods of the {@link Set} and {@link Iterator} + * interfaces. Like most other concurrent collection implementations, + * this class does not permit the use of null elements, + * because null arguments and return values cannot be reliably + * distinguished from the absence of elements. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @author Doug Lea + * @param the type of elements maintained by this set + * @since 1.6 + */ +public class ConcurrentSkipListSet + extends AbstractSet + implements NavigableSet, Cloneable, java.io.Serializable { + + private static final long serialVersionUID = -2479143111061671589L; + + /** + * The underlying map. Uses Boolean.TRUE as value for each + * element. This field is declared final for the sake of thread + * safety, which entails some ugliness in clone() + */ + private final ConcurrentNavigableMap m; + + /** + * Constructs a new, empty set that orders its elements according to + * their {@linkplain Comparable natural ordering}. + */ + public ConcurrentSkipListSet() { + m = new ConcurrentSkipListMap(); + } + + /** + * Constructs a new, empty set that orders its elements according to + * the specified comparator. + * + * @param comparator the comparator that will be used to order this set. + * If null, the {@linkplain Comparable natural + * ordering} of the elements will be used. + */ + public ConcurrentSkipListSet(Comparator comparator) { + m = new ConcurrentSkipListMap(comparator); + } + + /** + * Constructs a new set containing the elements in the specified + * collection, that orders its elements according to their + * {@linkplain Comparable natural ordering}. + * + * @param c The elements that will comprise the new set + * @throws ClassCastException if the elements in c are + * not {@link Comparable}, or are not mutually comparable + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public ConcurrentSkipListSet(Collection c) { + m = new ConcurrentSkipListMap(); + addAll(c); + } + + /** + * Constructs a new set containing the same elements and using the + * same ordering as the specified sorted set. + * + * @param s sorted set whose elements will comprise the new set + * @throws NullPointerException if the specified sorted set or any + * of its elements are null + */ + public ConcurrentSkipListSet(SortedSet s) { + m = new ConcurrentSkipListMap(s.comparator()); + addAll(s); + } + + /** + * For use by submaps + */ + ConcurrentSkipListSet(ConcurrentNavigableMap m) { + this.m = m; + } + + /** + * Returns a shallow copy of this ConcurrentSkipListSet + * instance. (The elements themselves are not cloned.) + * + * @return a shallow copy of this set + */ + public ConcurrentSkipListSet clone() { + ConcurrentSkipListSet clone = null; + try { + clone = (ConcurrentSkipListSet) super.clone(); + clone.setMap(new ConcurrentSkipListMap(m)); + } catch (CloneNotSupportedException e) { + throw new InternalError(); + } + + return clone; + } + + /* ---------------- Set operations -------------- */ + + /** + * Returns the number of elements in this set. If this set + * contains more than Integer.MAX_VALUE elements, it + * returns Integer.MAX_VALUE. + * + *

Beware that, unlike in most collections, this method is + * NOT a constant-time operation. Because of the + * asynchronous nature of these sets, determining the current + * number of elements requires traversing them all to count them. + * Additionally, it is possible for the size to change during + * execution of this method, in which case the returned result + * will be inaccurate. Thus, this method is typically not very + * useful in concurrent applications. + * + * @return the number of elements in this set + */ + public int size() { + return m.size(); + } + + /** + * Returns true if this set contains no elements. + * @return true if this set contains no elements + */ + public boolean isEmpty() { + return m.isEmpty(); + } + + /** + * Returns true if this set contains the specified element. + * More formally, returns true if and only if this set + * contains an element e such that o.equals(e). + * + * @param o object to be checked for containment in this set + * @return true if this set contains the specified element + * @throws ClassCastException if the specified element cannot be + * compared with the elements currently in this set + * @throws NullPointerException if the specified element is null + */ + public boolean contains(Object o) { + return m.containsKey(o); + } + + /** + * Adds the specified element to this set if it is not already present. + * More formally, adds the specified element e to this set if + * the set contains no element e2 such that e.equals(e2). + * If this set already contains the element, the call leaves the set + * unchanged and returns false. + * + * @param e element to be added to this set + * @return true if this set did not already contain the + * specified element + * @throws ClassCastException if e cannot be compared + * with the elements currently in this set + * @throws NullPointerException if the specified element is null + */ + public boolean add(E e) { + return m.putIfAbsent(e, Boolean.TRUE) == null; + } + + /** + * Removes the specified element from this set if it is present. + * More formally, removes an element e such that + * o.equals(e), if this set contains such an element. + * Returns true if this set contained the element (or + * equivalently, if this set changed as a result of the call). + * (This set will not contain the element once the call returns.) + * + * @param o object to be removed from this set, if present + * @return true if this set contained the specified element + * @throws ClassCastException if o cannot be compared + * with the elements currently in this set + * @throws NullPointerException if the specified element is null + */ + public boolean remove(Object o) { + return m.remove(o, Boolean.TRUE); + } + + /** + * Removes all of the elements from this set. + */ + public void clear() { + m.clear(); + } + + /** + * Returns an iterator over the elements in this set in ascending order. + * + * @return an iterator over the elements in this set in ascending order + */ + public Iterator iterator() { + return m.navigableKeySet().iterator(); + } + + /** + * Returns an iterator over the elements in this set in descending order. + * + * @return an iterator over the elements in this set in descending order + */ + public Iterator descendingIterator() { + return m.descendingKeySet().iterator(); + } + + + /* ---------------- AbstractSet Overrides -------------- */ + + /** + * Compares the specified object with this set for equality. Returns + * true if the specified object is also a set, the two sets + * have the same size, and every member of the specified set is + * contained in this set (or equivalently, every member of this set is + * contained in the specified set). This definition ensures that the + * equals method works properly across different implementations of the + * set interface. + * + * @param o the object to be compared for equality with this set + * @return true if the specified object is equal to this set + */ + public boolean equals(Object o) { + // Override AbstractSet version to avoid calling size() + if (o == this) + return true; + if (!(o instanceof Set)) + return false; + Collection c = (Collection) o; + try { + return containsAll(c) && c.containsAll(this); + } catch (ClassCastException unused) { + return false; + } catch (NullPointerException unused) { + return false; + } + } + + /** + * Removes from this set all of its elements that are contained in + * the specified collection. If the specified collection is also + * a set, this operation effectively modifies this set so that its + * value is the asymmetric set difference of the two sets. + * + * @param c collection containing elements to be removed from this set + * @return true if this set changed as a result of the call + * @throws ClassCastException if the types of one or more elements in this + * set are incompatible with the specified collection + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public boolean removeAll(Collection c) { + // Override AbstractSet version to avoid unnecessary call to size() + boolean modified = false; + for (Iterator i = c.iterator(); i.hasNext(); ) + if (remove(i.next())) + modified = true; + return modified; + } + + /* ---------------- Relational operations -------------- */ + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + */ + public E lower(E e) { + return m.lowerKey(e); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + */ + public E floor(E e) { + return m.floorKey(e); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + */ + public E ceiling(E e) { + return m.ceilingKey(e); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if the specified element is null + */ + public E higher(E e) { + return m.higherKey(e); + } + + public E pollFirst() { + Map.Entry e = m.pollFirstEntry(); + return e == null? null : e.getKey(); + } + + public E pollLast() { + Map.Entry e = m.pollLastEntry(); + return e == null? null : e.getKey(); + } + + + /* ---------------- SortedSet operations -------------- */ + + + public Comparator comparator() { + return m.comparator(); + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E first() { + return m.firstKey(); + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E last() { + return m.lastKey(); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromElement} or + * {@code toElement} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public NavigableSet subSet(E fromElement, + boolean fromInclusive, + E toElement, + boolean toInclusive) { + return new ConcurrentSkipListSet + (m.subMap(fromElement, fromInclusive, + toElement, toInclusive)); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code toElement} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public NavigableSet headSet(E toElement, boolean inclusive) { + return new ConcurrentSkipListSet(m.headMap(toElement, inclusive)); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromElement} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public NavigableSet tailSet(E fromElement, boolean inclusive) { + return new ConcurrentSkipListSet(m.tailMap(fromElement, inclusive)); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromElement} or + * {@code toElement} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public NavigableSet subSet(E fromElement, E toElement) { + return subSet(fromElement, true, toElement, false); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code toElement} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public NavigableSet headSet(E toElement) { + return headSet(toElement, false); + } + + /** + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException if {@code fromElement} is null + * @throws IllegalArgumentException {@inheritDoc} + */ + public NavigableSet tailSet(E fromElement) { + return tailSet(fromElement, true); + } + + /** + * Returns a reverse order view of the elements contained in this set. + * The descending set is backed by this set, so changes to the set are + * reflected in the descending set, and vice-versa. + * + *

The returned set has an ordering equivalent to + * {@link Collections#reverseOrder(Comparator) Collections.reverseOrder}(comparator()). + * The expression {@code s.descendingSet().descendingSet()} returns a + * view of {@code s} essentially equivalent to {@code s}. + * + * @return a reverse order view of this set + */ + public NavigableSet descendingSet() { + return new ConcurrentSkipListSet(m.descendingMap()); + } + + // Support for resetting map in clone + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long mapOffset; + static { + try { + mapOffset = unsafe.objectFieldOffset + (ConcurrentSkipListSet.class.getDeclaredField("m")); + } catch (Exception ex) { throw new Error(ex); } + } + private void setMap(ConcurrentNavigableMap map) { + unsafe.putObjectVolatile(this, mapOffset, map); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java b/libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java new file mode 100644 index 00000000000..39c0e5868de --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java @@ -0,0 +1,364 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain. Use, modify, and + * redistribute this code in any way without acknowledgement. + */ + +package java.util.concurrent; +import java.util.*; + +/** + * A {@link java.util.Set} that uses an internal {@link CopyOnWriteArrayList} + * for all of its operations. Thus, it shares the same basic properties: + *

    + *
  • It is best suited for applications in which set sizes generally + * stay small, read-only operations + * vastly outnumber mutative operations, and you need + * to prevent interference among threads during traversal. + *
  • It is thread-safe. + *
  • Mutative operations (add, set, remove, etc.) + * are expensive since they usually entail copying the entire underlying + * array. + *
  • Iterators do not support the mutative remove operation. + *
  • Traversal via iterators is fast and cannot encounter + * interference from other threads. Iterators rely on + * unchanging snapshots of the array at the time the iterators were + * constructed. + *
+ * + *

Sample Usage. The following code sketch uses a + * copy-on-write set to maintain a set of Handler objects that + * perform some action upon state updates. + * + *

+ * class Handler { void handle(); ... }
+ *
+ * class X {
+ *    private final CopyOnWriteArraySet<Handler> handlers
+ *       = new CopyOnWriteArraySet<Handler>();
+ *    public void addHandler(Handler h) { handlers.add(h); }
+ *
+ *    private long internalState;
+ *    private synchronized void changeState() { internalState = ...; }
+ *
+ *    public void update() {
+ *       changeState();
+ *       for (Handler handler : handlers)
+ *          handler.handle();
+ *    }
+ * }
+ * 
+ * + *

This class is a member of the + * + * Java Collections Framework. + * + * @see CopyOnWriteArrayList + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public class CopyOnWriteArraySet extends AbstractSet + implements java.io.Serializable { + private static final long serialVersionUID = 5457747651344034263L; + + private final CopyOnWriteArrayList al; + + /** + * Creates an empty set. + */ + public CopyOnWriteArraySet() { + al = new CopyOnWriteArrayList(); + } + + /** + * Creates a set containing all of the elements of the specified + * collection. + * + * @param c the collection of elements to initially contain + * @throws NullPointerException if the specified collection is null + */ + public CopyOnWriteArraySet(Collection c) { + al = new CopyOnWriteArrayList(); + al.addAllAbsent(c); + } + + /** + * Returns the number of elements in this set. + * + * @return the number of elements in this set + */ + public int size() { + return al.size(); + } + + /** + * Returns true if this set contains no elements. + * + * @return true if this set contains no elements + */ + public boolean isEmpty() { + return al.isEmpty(); + } + + /** + * Returns true if this set contains the specified element. + * More formally, returns true if and only if this set + * contains an element e such that + * (o==null ? e==null : o.equals(e)). + * + * @param o element whose presence in this set is to be tested + * @return true if this set contains the specified element + */ + public boolean contains(Object o) { + return al.contains(o); + } + + /** + * Returns an array containing all of the elements in this set. + * If this set makes any guarantees as to what order its elements + * are returned by its iterator, this method must return the + * elements in the same order. + * + *

The returned array will be "safe" in that no references to it + * are maintained by this set. (In other words, this method must + * allocate a new array even if this set is backed by an array). + * The caller is thus free to modify the returned array. + * + *

This method acts as bridge between array-based and collection-based + * APIs. + * + * @return an array containing all the elements in this set + */ + public Object[] toArray() { + return al.toArray(); + } + + /** + * Returns an array containing all of the elements in this set; the + * runtime type of the returned array is that of the specified array. + * If the set fits in the specified array, it is returned therein. + * Otherwise, a new array is allocated with the runtime type of the + * specified array and the size of this set. + * + *

If this set fits in the specified array with room to spare + * (i.e., the array has more elements than this set), the element in + * the array immediately following the end of the set is set to + * null. (This is useful in determining the length of this + * set only if the caller knows that this set does not contain + * any null elements.) + * + *

If this set makes any guarantees as to what order its elements + * are returned by its iterator, this method must return the elements + * in the same order. + * + *

Like the {@link #toArray()} method, this method acts as bridge between + * array-based and collection-based APIs. Further, this method allows + * precise control over the runtime type of the output array, and may, + * under certain circumstances, be used to save allocation costs. + * + *

Suppose x is a set known to contain only strings. + * The following code can be used to dump the set into a newly allocated + * array of String: + * + *

+     *     String[] y = x.toArray(new String[0]);
+ * + * Note that toArray(new Object[0]) is identical in function to + * toArray(). + * + * @param a the array into which the elements of this set are to be + * stored, if it is big enough; otherwise, a new array of the same + * runtime type is allocated for this purpose. + * @return an array containing all the elements in this set + * @throws ArrayStoreException if the runtime type of the specified array + * is not a supertype of the runtime type of every element in this + * set + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + return al.toArray(a); + } + + /** + * Removes all of the elements from this set. + * The set will be empty after this call returns. + */ + public void clear() { + al.clear(); + } + + /** + * Removes the specified element from this set if it is present. + * More formally, removes an element e such that + * (o==null ? e==null : o.equals(e)), + * if this set contains such an element. Returns true if + * this set contained the element (or equivalently, if this set + * changed as a result of the call). (This set will not contain the + * element once the call returns.) + * + * @param o object to be removed from this set, if present + * @return true if this set contained the specified element + */ + public boolean remove(Object o) { + return al.remove(o); + } + + /** + * Adds the specified element to this set if it is not already present. + * More formally, adds the specified element e to this set if + * the set contains no element e2 such that + * (e==null ? e2==null : e.equals(e2)). + * If this set already contains the element, the call leaves the set + * unchanged and returns false. + * + * @param e element to be added to this set + * @return true if this set did not already contain the specified + * element + */ + public boolean add(E e) { + return al.addIfAbsent(e); + } + + /** + * Returns true if this set contains all of the elements of the + * specified collection. If the specified collection is also a set, this + * method returns true if it is a subset of this set. + * + * @param c collection to be checked for containment in this set + * @return true if this set contains all of the elements of the + * specified collection + * @throws NullPointerException if the specified collection is null + * @see #contains(Object) + */ + public boolean containsAll(Collection c) { + return al.containsAll(c); + } + + /** + * Adds all of the elements in the specified collection to this set if + * they're not already present. If the specified collection is also a + * set, the addAll operation effectively modifies this set so + * that its value is the union of the two sets. The behavior of + * this operation is undefined if the specified collection is modified + * while the operation is in progress. + * + * @param c collection containing elements to be added to this set + * @return true if this set changed as a result of the call + * @throws NullPointerException if the specified collection is null + * @see #add(Object) + */ + public boolean addAll(Collection c) { + return al.addAllAbsent(c) > 0; + } + + /** + * Removes from this set all of its elements that are contained in the + * specified collection. If the specified collection is also a set, + * this operation effectively modifies this set so that its value is the + * asymmetric set difference of the two sets. + * + * @param c collection containing elements to be removed from this set + * @return true if this set changed as a result of the call + * @throws ClassCastException if the class of an element of this set + * is incompatible with the specified collection (optional) + * @throws NullPointerException if this set contains a null element and the + * specified collection does not permit null elements (optional), + * or if the specified collection is null + * @see #remove(Object) + */ + public boolean removeAll(Collection c) { + return al.removeAll(c); + } + + /** + * Retains only the elements in this set that are contained in the + * specified collection. In other words, removes from this set all of + * its elements that are not contained in the specified collection. If + * the specified collection is also a set, this operation effectively + * modifies this set so that its value is the intersection of the + * two sets. + * + * @param c collection containing elements to be retained in this set + * @return true if this set changed as a result of the call + * @throws ClassCastException if the class of an element of this set + * is incompatible with the specified collection (optional) + * @throws NullPointerException if this set contains a null element and the + * specified collection does not permit null elements (optional), + * or if the specified collection is null + * @see #remove(Object) + */ + public boolean retainAll(Collection c) { + return al.retainAll(c); + } + + /** + * Returns an iterator over the elements contained in this set + * in the order in which these elements were added. + * + *

The returned iterator provides a snapshot of the state of the set + * when the iterator was constructed. No synchronization is needed while + * traversing the iterator. The iterator does NOT support the + * remove method. + * + * @return an iterator over the elements in this set + */ + public Iterator iterator() { + return al.iterator(); + } + + /** + * Compares the specified object with this set for equality. + * Returns {@code true} if the specified object is the same object + * as this object, or if it is also a {@link Set} and the elements + * returned by an {@linkplain List#iterator() iterator} over the + * specified set are the same as the elements returned by an + * iterator over this set. More formally, the two iterators are + * considered to return the same elements if they return the same + * number of elements and for every element {@code e1} returned by + * the iterator over the specified set, there is an element + * {@code e2} returned by the iterator over this set such that + * {@code (e1==null ? e2==null : e1.equals(e2))}. + * + * @param o object to be compared for equality with this set + * @return {@code true} if the specified object is equal to this set + */ + public boolean equals(Object o) { + if (o == this) + return true; + if (!(o instanceof Set)) + return false; + Set set = (Set)(o); + Iterator it = set.iterator(); + + // Uses O(n^2) algorithm that is only appropriate + // for small sets, which CopyOnWriteArraySets should be. + + // Use a single snapshot of underlying array + Object[] elements = al.getArray(); + int len = elements.length; + // Mark matched elements to avoid re-checking + boolean[] matched = new boolean[len]; + int k = 0; + outer: while (it.hasNext()) { + if (++k > len) + return false; + Object x = it.next(); + for (int i = 0; i < len; ++i) { + if (!matched[i] && eq(x, elements[i])) { + matched[i] = true; + continue outer; + } + } + return false; + } + return k == len; + } + + /** + * Test for equality, coping with nulls. + */ + private static boolean eq(Object o1, Object o2) { + return (o1 == null ? o2 == null : o1.equals(o2)); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/CountDownLatch.java b/libjava/classpath/external/jsr166/java/util/concurrent/CountDownLatch.java new file mode 100644 index 00000000000..016c1a7a55c --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/CountDownLatch.java @@ -0,0 +1,290 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.locks.*; +import java.util.concurrent.atomic.*; + +/** + * A synchronization aid that allows one or more threads to wait until + * a set of operations being performed in other threads completes. + * + *

A {@code CountDownLatch} is initialized with a given count. + * The {@link #await await} methods block until the current count reaches + * zero due to invocations of the {@link #countDown} method, after which + * all waiting threads are released and any subsequent invocations of + * {@link #await await} return immediately. This is a one-shot phenomenon + * -- the count cannot be reset. If you need a version that resets the + * count, consider using a {@link CyclicBarrier}. + * + *

A {@code CountDownLatch} is a versatile synchronization tool + * and can be used for a number of purposes. A + * {@code CountDownLatch} initialized with a count of one serves as a + * simple on/off latch, or gate: all threads invoking {@link #await await} + * wait at the gate until it is opened by a thread invoking {@link + * #countDown}. A {@code CountDownLatch} initialized to N + * can be used to make one thread wait until N threads have + * completed some action, or some action has been completed N times. + * + *

A useful property of a {@code CountDownLatch} is that it + * doesn't require that threads calling {@code countDown} wait for + * the count to reach zero before proceeding, it simply prevents any + * thread from proceeding past an {@link #await await} until all + * threads could pass. + * + *

Sample usage: Here is a pair of classes in which a group + * of worker threads use two countdown latches: + *

    + *
  • The first is a start signal that prevents any worker from proceeding + * until the driver is ready for them to proceed; + *
  • The second is a completion signal that allows the driver to wait + * until all workers have completed. + *
+ * + *
+ * class Driver { // ...
+ *   void main() throws InterruptedException {
+ *     CountDownLatch startSignal = new CountDownLatch(1);
+ *     CountDownLatch doneSignal = new CountDownLatch(N);
+ *
+ *     for (int i = 0; i < N; ++i) // create and start threads
+ *       new Thread(new Worker(startSignal, doneSignal)).start();
+ *
+ *     doSomethingElse();            // don't let run yet
+ *     startSignal.countDown();      // let all threads proceed
+ *     doSomethingElse();
+ *     doneSignal.await();           // wait for all to finish
+ *   }
+ * }
+ *
+ * class Worker implements Runnable {
+ *   private final CountDownLatch startSignal;
+ *   private final CountDownLatch doneSignal;
+ *   Worker(CountDownLatch startSignal, CountDownLatch doneSignal) {
+ *      this.startSignal = startSignal;
+ *      this.doneSignal = doneSignal;
+ *   }
+ *   public void run() {
+ *      try {
+ *        startSignal.await();
+ *        doWork();
+ *        doneSignal.countDown();
+ *      } catch (InterruptedException ex) {} // return;
+ *   }
+ *
+ *   void doWork() { ... }
+ * }
+ *
+ * 
+ * + *

Another typical usage would be to divide a problem into N parts, + * describe each part with a Runnable that executes that portion and + * counts down on the latch, and queue all the Runnables to an + * Executor. When all sub-parts are complete, the coordinating thread + * will be able to pass through await. (When threads must repeatedly + * count down in this way, instead use a {@link CyclicBarrier}.) + * + *

+ * class Driver2 { // ...
+ *   void main() throws InterruptedException {
+ *     CountDownLatch doneSignal = new CountDownLatch(N);
+ *     Executor e = ...
+ *
+ *     for (int i = 0; i < N; ++i) // create and start threads
+ *       e.execute(new WorkerRunnable(doneSignal, i));
+ *
+ *     doneSignal.await();           // wait for all to finish
+ *   }
+ * }
+ *
+ * class WorkerRunnable implements Runnable {
+ *   private final CountDownLatch doneSignal;
+ *   private final int i;
+ *   WorkerRunnable(CountDownLatch doneSignal, int i) {
+ *      this.doneSignal = doneSignal;
+ *      this.i = i;
+ *   }
+ *   public void run() {
+ *      try {
+ *        doWork(i);
+ *        doneSignal.countDown();
+ *      } catch (InterruptedException ex) {} // return;
+ *   }
+ *
+ *   void doWork() { ... }
+ * }
+ *
+ * 
+ * + *

Memory consistency effects: Actions in a thread prior to calling + * {@code countDown()} + * happen-before + * actions following a successful return from a corresponding + * {@code await()} in another thread. + * + * @since 1.5 + * @author Doug Lea + */ +public class CountDownLatch { + /** + * Synchronization control For CountDownLatch. + * Uses AQS state to represent count. + */ + private static final class Sync extends AbstractQueuedSynchronizer { + private static final long serialVersionUID = 4982264981922014374L; + + Sync(int count) { + setState(count); + } + + int getCount() { + return getState(); + } + + public int tryAcquireShared(int acquires) { + return getState() == 0? 1 : -1; + } + + public boolean tryReleaseShared(int releases) { + // Decrement count; signal when transition to zero + for (;;) { + int c = getState(); + if (c == 0) + return false; + int nextc = c-1; + if (compareAndSetState(c, nextc)) + return nextc == 0; + } + } + } + + private final Sync sync; + + /** + * Constructs a {@code CountDownLatch} initialized with the given count. + * + * @param count the number of times {@link #countDown} must be invoked + * before threads can pass through {@link #await} + * @throws IllegalArgumentException if {@code count} is negative + */ + public CountDownLatch(int count) { + if (count < 0) throw new IllegalArgumentException("count < 0"); + this.sync = new Sync(count); + } + + /** + * Causes the current thread to wait until the latch has counted down to + * zero, unless the thread is {@linkplain Thread#interrupt interrupted}. + * + *

If the current count is zero then this method returns immediately. + * + *

If the current count is greater than zero then the current + * thread becomes disabled for thread scheduling purposes and lies + * dormant until one of two things happen: + *

    + *
  • The count reaches zero due to invocations of the + * {@link #countDown} method; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread. + *
+ * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + * @throws InterruptedException if the current thread is interrupted + * while waiting + */ + public void await() throws InterruptedException { + sync.acquireSharedInterruptibly(1); + } + + /** + * Causes the current thread to wait until the latch has counted down to + * zero, unless the thread is {@linkplain Thread#interrupt interrupted}, + * or the specified waiting time elapses. + * + *

If the current count is zero then this method returns immediately + * with the value {@code true}. + * + *

If the current count is greater than zero then the current + * thread becomes disabled for thread scheduling purposes and lies + * dormant until one of three things happen: + *

    + *
  • The count reaches zero due to invocations of the + * {@link #countDown} method; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + *
  • The specified waiting time elapses. + *
+ * + *

If the count reaches zero then the method returns with the + * value {@code true}. + * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

If the specified waiting time elapses then the value {@code false} + * is returned. If the time is less than or equal to zero, the method + * will not wait at all. + * + * @param timeout the maximum time to wait + * @param unit the time unit of the {@code timeout} argument + * @return {@code true} if the count reached zero and {@code false} + * if the waiting time elapsed before the count reached zero + * @throws InterruptedException if the current thread is interrupted + * while waiting + */ + public boolean await(long timeout, TimeUnit unit) + throws InterruptedException { + return sync.tryAcquireSharedNanos(1, unit.toNanos(timeout)); + } + + /** + * Decrements the count of the latch, releasing all waiting threads if + * the count reaches zero. + * + *

If the current count is greater than zero then it is decremented. + * If the new count is zero then all waiting threads are re-enabled for + * thread scheduling purposes. + * + *

If the current count equals zero then nothing happens. + */ + public void countDown() { + sync.releaseShared(1); + } + + /** + * Returns the current count. + * + *

This method is typically used for debugging and testing purposes. + * + * @return the current count + */ + public long getCount() { + return sync.getCount(); + } + + /** + * Returns a string identifying this latch, as well as its state. + * The state, in brackets, includes the String {@code "Count ="} + * followed by the current count. + * + * @return a string identifying this latch, as well as its state + */ + public String toString() { + return super.toString() + "[Count = " + sync.getCount() + "]"; + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java b/libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java new file mode 100644 index 00000000000..e72577537d4 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java @@ -0,0 +1,454 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.locks.*; + +/** + * A synchronization aid that allows a set of threads to all wait for + * each other to reach a common barrier point. CyclicBarriers are + * useful in programs involving a fixed sized party of threads that + * must occasionally wait for each other. The barrier is called + * cyclic because it can be re-used after the waiting threads + * are released. + * + *

A CyclicBarrier supports an optional {@link Runnable} command + * that is run once per barrier point, after the last thread in the party + * arrives, but before any threads are released. + * This barrier action is useful + * for updating shared-state before any of the parties continue. + * + *

Sample usage: Here is an example of + * using a barrier in a parallel decomposition design: + *

+ * class Solver {
+ *   final int N;
+ *   final float[][] data;
+ *   final CyclicBarrier barrier;
+ *
+ *   class Worker implements Runnable {
+ *     int myRow;
+ *     Worker(int row) { myRow = row; }
+ *     public void run() {
+ *       while (!done()) {
+ *         processRow(myRow);
+ *
+ *         try {
+ *           barrier.await();
+ *         } catch (InterruptedException ex) {
+ *           return;
+ *         } catch (BrokenBarrierException ex) {
+ *           return;
+ *         }
+ *       }
+ *     }
+ *   }
+ *
+ *   public Solver(float[][] matrix) {
+ *     data = matrix;
+ *     N = matrix.length;
+ *     barrier = new CyclicBarrier(N,
+ *                                 new Runnable() {
+ *                                   public void run() {
+ *                                     mergeRows(...);
+ *                                   }
+ *                                 });
+ *     for (int i = 0; i < N; ++i)
+ *       new Thread(new Worker(i)).start();
+ *
+ *     waitUntilDone();
+ *   }
+ * }
+ * 
+ * Here, each worker thread processes a row of the matrix then waits at the + * barrier until all rows have been processed. When all rows are processed + * the supplied {@link Runnable} barrier action is executed and merges the + * rows. If the merger + * determines that a solution has been found then done() will return + * true and each worker will terminate. + * + *

If the barrier action does not rely on the parties being suspended when + * it is executed, then any of the threads in the party could execute that + * action when it is released. To facilitate this, each invocation of + * {@link #await} returns the arrival index of that thread at the barrier. + * You can then choose which thread should execute the barrier action, for + * example: + *

  if (barrier.await() == 0) {
+ *     // log the completion of this iteration
+ *   }
+ * + *

The CyclicBarrier uses an all-or-none breakage model + * for failed synchronization attempts: If a thread leaves a barrier + * point prematurely because of interruption, failure, or timeout, all + * other threads waiting at that barrier point will also leave + * abnormally via {@link BrokenBarrierException} (or + * {@link InterruptedException} if they too were interrupted at about + * the same time). + * + *

Memory consistency effects: Actions in a thread prior to calling + * {@code await()} + * happen-before + * actions that are part of the barrier action, which in turn + * happen-before actions following a successful return from the + * corresponding {@code await()} in other threads. + * + * @since 1.5 + * @see CountDownLatch + * + * @author Doug Lea + */ +public class CyclicBarrier { + /** + * Each use of the barrier is represented as a generation instance. + * The generation changes whenever the barrier is tripped, or + * is reset. There can be many generations associated with threads + * using the barrier - due to the non-deterministic way the lock + * may be allocated to waiting threads - but only one of these + * can be active at a time (the one to which count applies) + * and all the rest are either broken or tripped. + * There need not be an active generation if there has been a break + * but no subsequent reset. + */ + private static class Generation { + boolean broken = false; + } + + /** The lock for guarding barrier entry */ + private final ReentrantLock lock = new ReentrantLock(); + /** Condition to wait on until tripped */ + private final Condition trip = lock.newCondition(); + /** The number of parties */ + private final int parties; + /* The command to run when tripped */ + private final Runnable barrierCommand; + /** The current generation */ + private Generation generation = new Generation(); + + /** + * Number of parties still waiting. Counts down from parties to 0 + * on each generation. It is reset to parties on each new + * generation or when broken. + */ + private int count; + + /** + * Updates state on barrier trip and wakes up everyone. + * Called only while holding lock. + */ + private void nextGeneration() { + // signal completion of last generation + trip.signalAll(); + // set up next generation + count = parties; + generation = new Generation(); + } + + /** + * Sets current barrier generation as broken and wakes up everyone. + * Called only while holding lock. + */ + private void breakBarrier() { + generation.broken = true; + count = parties; + trip.signalAll(); + } + + /** + * Main barrier code, covering the various policies. + */ + private int dowait(boolean timed, long nanos) + throws InterruptedException, BrokenBarrierException, + TimeoutException { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + final Generation g = generation; + + if (g.broken) + throw new BrokenBarrierException(); + + if (Thread.interrupted()) { + breakBarrier(); + throw new InterruptedException(); + } + + int index = --count; + if (index == 0) { // tripped + boolean ranAction = false; + try { + final Runnable command = barrierCommand; + if (command != null) + command.run(); + ranAction = true; + nextGeneration(); + return 0; + } finally { + if (!ranAction) + breakBarrier(); + } + } + + // loop until tripped, broken, interrupted, or timed out + for (;;) { + try { + if (!timed) + trip.await(); + else if (nanos > 0L) + nanos = trip.awaitNanos(nanos); + } catch (InterruptedException ie) { + if (g == generation && ! g.broken) { + breakBarrier(); + throw ie; + } else { + // We're about to finish waiting even if we had not + // been interrupted, so this interrupt is deemed to + // "belong" to subsequent execution. + Thread.currentThread().interrupt(); + } + } + + if (g.broken) + throw new BrokenBarrierException(); + + if (g != generation) + return index; + + if (timed && nanos <= 0L) { + breakBarrier(); + throw new TimeoutException(); + } + } + } finally { + lock.unlock(); + } + } + + /** + * Creates a new CyclicBarrier that will trip when the + * given number of parties (threads) are waiting upon it, and which + * will execute the given barrier action when the barrier is tripped, + * performed by the last thread entering the barrier. + * + * @param parties the number of threads that must invoke {@link #await} + * before the barrier is tripped + * @param barrierAction the command to execute when the barrier is + * tripped, or {@code null} if there is no action + * @throws IllegalArgumentException if {@code parties} is less than 1 + */ + public CyclicBarrier(int parties, Runnable barrierAction) { + if (parties <= 0) throw new IllegalArgumentException(); + this.parties = parties; + this.count = parties; + this.barrierCommand = barrierAction; + } + + /** + * Creates a new CyclicBarrier that will trip when the + * given number of parties (threads) are waiting upon it, and + * does not perform a predefined action when the barrier is tripped. + * + * @param parties the number of threads that must invoke {@link #await} + * before the barrier is tripped + * @throws IllegalArgumentException if {@code parties} is less than 1 + */ + public CyclicBarrier(int parties) { + this(parties, null); + } + + /** + * Returns the number of parties required to trip this barrier. + * + * @return the number of parties required to trip this barrier + */ + public int getParties() { + return parties; + } + + /** + * Waits until all {@linkplain #getParties parties} have invoked + * await on this barrier. + * + *

If the current thread is not the last to arrive then it is + * disabled for thread scheduling purposes and lies dormant until + * one of the following things happens: + *

    + *
  • The last thread arrives; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * one of the other waiting threads; or + *
  • Some other thread times out while waiting for barrier; or + *
  • Some other thread invokes {@link #reset} on this barrier. + *
+ * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

If the barrier is {@link #reset} while any thread is waiting, + * or if the barrier {@linkplain #isBroken is broken} when + * await is invoked, or while any thread is waiting, then + * {@link BrokenBarrierException} is thrown. + * + *

If any thread is {@linkplain Thread#interrupt interrupted} while waiting, + * then all other waiting threads will throw + * {@link BrokenBarrierException} and the barrier is placed in the broken + * state. + * + *

If the current thread is the last thread to arrive, and a + * non-null barrier action was supplied in the constructor, then the + * current thread runs the action before allowing the other threads to + * continue. + * If an exception occurs during the barrier action then that exception + * will be propagated in the current thread and the barrier is placed in + * the broken state. + * + * @return the arrival index of the current thread, where index + * {@link #getParties()} - 1 indicates the first + * to arrive and zero indicates the last to arrive + * @throws InterruptedException if the current thread was interrupted + * while waiting + * @throws BrokenBarrierException if another thread was + * interrupted or timed out while the current thread was + * waiting, or the barrier was reset, or the barrier was + * broken when {@code await} was called, or the barrier + * action (if present) failed due an exception. + */ + public int await() throws InterruptedException, BrokenBarrierException { + try { + return dowait(false, 0L); + } catch (TimeoutException toe) { + throw new Error(toe); // cannot happen; + } + } + + /** + * Waits until all {@linkplain #getParties parties} have invoked + * await on this barrier, or the specified waiting time elapses. + * + *

If the current thread is not the last to arrive then it is + * disabled for thread scheduling purposes and lies dormant until + * one of the following things happens: + *

    + *
  • The last thread arrives; or + *
  • The specified timeout elapses; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * one of the other waiting threads; or + *
  • Some other thread times out while waiting for barrier; or + *
  • Some other thread invokes {@link #reset} on this barrier. + *
+ * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

If the specified waiting time elapses then {@link TimeoutException} + * is thrown. If the time is less than or equal to zero, the + * method will not wait at all. + * + *

If the barrier is {@link #reset} while any thread is waiting, + * or if the barrier {@linkplain #isBroken is broken} when + * await is invoked, or while any thread is waiting, then + * {@link BrokenBarrierException} is thrown. + * + *

If any thread is {@linkplain Thread#interrupt interrupted} while + * waiting, then all other waiting threads will throw {@link + * BrokenBarrierException} and the barrier is placed in the broken + * state. + * + *

If the current thread is the last thread to arrive, and a + * non-null barrier action was supplied in the constructor, then the + * current thread runs the action before allowing the other threads to + * continue. + * If an exception occurs during the barrier action then that exception + * will be propagated in the current thread and the barrier is placed in + * the broken state. + * + * @param timeout the time to wait for the barrier + * @param unit the time unit of the timeout parameter + * @return the arrival index of the current thread, where index + * {@link #getParties()} - 1 indicates the first + * to arrive and zero indicates the last to arrive + * @throws InterruptedException if the current thread was interrupted + * while waiting + * @throws TimeoutException if the specified timeout elapses + * @throws BrokenBarrierException if another thread was + * interrupted or timed out while the current thread was + * waiting, or the barrier was reset, or the barrier was broken + * when {@code await} was called, or the barrier action (if + * present) failed due an exception + */ + public int await(long timeout, TimeUnit unit) + throws InterruptedException, + BrokenBarrierException, + TimeoutException { + return dowait(true, unit.toNanos(timeout)); + } + + /** + * Queries if this barrier is in a broken state. + * + * @return {@code true} if one or more parties broke out of this + * barrier due to interruption or timeout since + * construction or the last reset, or a barrier action + * failed due to an exception; {@code false} otherwise. + */ + public boolean isBroken() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return generation.broken; + } finally { + lock.unlock(); + } + } + + /** + * Resets the barrier to its initial state. If any parties are + * currently waiting at the barrier, they will return with a + * {@link BrokenBarrierException}. Note that resets after + * a breakage has occurred for other reasons can be complicated to + * carry out; threads need to re-synchronize in some other way, + * and choose one to perform the reset. It may be preferable to + * instead create a new barrier for subsequent use. + */ + public void reset() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + breakBarrier(); // break the current generation + nextGeneration(); // start a new generation + } finally { + lock.unlock(); + } + } + + /** + * Returns the number of parties currently waiting at the barrier. + * This method is primarily useful for debugging and assertions. + * + * @return the number of parties currently blocked in {@link #await} + */ + public int getNumberWaiting() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return parties - count; + } finally { + lock.unlock(); + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java b/libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java new file mode 100644 index 00000000000..8b839878c3a --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/DelayQueue.java @@ -0,0 +1,487 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + + +package java.util.concurrent; +import java.util.concurrent.locks.*; +import java.util.*; + +/** + * An unbounded {@linkplain BlockingQueue blocking queue} of + * Delayed elements, in which an element can only be taken + * when its delay has expired. The head of the queue is that + * Delayed element whose delay expired furthest in the + * past. If no delay has expired there is no head and poll + * will return null. Expiration occurs when an element's + * getDelay(TimeUnit.NANOSECONDS) method returns a value less + * than or equal to zero. Even though unexpired elements cannot be + * removed using take or poll, they are otherwise + * treated as normal elements. For example, the size method + * returns the count of both expired and unexpired elements. + * This queue does not permit null elements. + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + */ + +public class DelayQueue extends AbstractQueue + implements BlockingQueue { + + private transient final ReentrantLock lock = new ReentrantLock(); + private transient final Condition available = lock.newCondition(); + private final PriorityQueue q = new PriorityQueue(); + + /** + * Creates a new DelayQueue that is initially empty. + */ + public DelayQueue() {} + + /** + * Creates a DelayQueue initially containing the elements of the + * given collection of {@link Delayed} instances. + * + * @param c the collection of elements to initially contain + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public DelayQueue(Collection c) { + this.addAll(c); + } + + /** + * Inserts the specified element into this delay queue. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws NullPointerException if the specified element is null + */ + public boolean add(E e) { + return offer(e); + } + + /** + * Inserts the specified element into this delay queue. + * + * @param e the element to add + * @return true + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + E first = q.peek(); + q.offer(e); + if (first == null || e.compareTo(first) < 0) + available.signalAll(); + return true; + } finally { + lock.unlock(); + } + } + + /** + * Inserts the specified element into this delay queue. As the queue is + * unbounded this method will never block. + * + * @param e the element to add + * @throws NullPointerException {@inheritDoc} + */ + public void put(E e) { + offer(e); + } + + /** + * Inserts the specified element into this delay queue. As the queue is + * unbounded this method will never block. + * + * @param e the element to add + * @param timeout This parameter is ignored as the method never blocks + * @param unit This parameter is ignored as the method never blocks + * @return true + * @throws NullPointerException {@inheritDoc} + */ + public boolean offer(E e, long timeout, TimeUnit unit) { + return offer(e); + } + + /** + * Retrieves and removes the head of this queue, or returns null + * if this queue has no elements with an expired delay. + * + * @return the head of this queue, or null if this + * queue has no elements with an expired delay + */ + public E poll() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + E first = q.peek(); + if (first == null || first.getDelay(TimeUnit.NANOSECONDS) > 0) + return null; + else { + E x = q.poll(); + assert x != null; + if (q.size() != 0) + available.signalAll(); + return x; + } + } finally { + lock.unlock(); + } + } + + /** + * Retrieves and removes the head of this queue, waiting if necessary + * until an element with an expired delay is available on this queue. + * + * @return the head of this queue + * @throws InterruptedException {@inheritDoc} + */ + public E take() throws InterruptedException { + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + for (;;) { + E first = q.peek(); + if (first == null) { + available.await(); + } else { + long delay = first.getDelay(TimeUnit.NANOSECONDS); + if (delay > 0) { + long tl = available.awaitNanos(delay); + } else { + E x = q.poll(); + assert x != null; + if (q.size() != 0) + available.signalAll(); // wake up other takers + return x; + + } + } + } + } finally { + lock.unlock(); + } + } + + /** + * Retrieves and removes the head of this queue, waiting if necessary + * until an element with an expired delay is available on this queue, + * or the specified wait time expires. + * + * @return the head of this queue, or null if the + * specified waiting time elapses before an element with + * an expired delay becomes available + * @throws InterruptedException {@inheritDoc} + */ + public E poll(long timeout, TimeUnit unit) throws InterruptedException { + long nanos = unit.toNanos(timeout); + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + for (;;) { + E first = q.peek(); + if (first == null) { + if (nanos <= 0) + return null; + else + nanos = available.awaitNanos(nanos); + } else { + long delay = first.getDelay(TimeUnit.NANOSECONDS); + if (delay > 0) { + if (nanos <= 0) + return null; + if (delay > nanos) + delay = nanos; + long timeLeft = available.awaitNanos(delay); + nanos -= delay - timeLeft; + } else { + E x = q.poll(); + assert x != null; + if (q.size() != 0) + available.signalAll(); + return x; + } + } + } + } finally { + lock.unlock(); + } + } + + /** + * Retrieves, but does not remove, the head of this queue, or + * returns null if this queue is empty. Unlike + * poll, if no expired elements are available in the queue, + * this method returns the element that will expire next, + * if one exists. + * + * @return the head of this queue, or null if this + * queue is empty. + */ + public E peek() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.peek(); + } finally { + lock.unlock(); + } + } + + public int size() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.size(); + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int n = 0; + for (;;) { + E first = q.peek(); + if (first == null || first.getDelay(TimeUnit.NANOSECONDS) > 0) + break; + c.add(q.poll()); + ++n; + } + if (n > 0) + available.signalAll(); + return n; + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c, int maxElements) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + if (maxElements <= 0) + return 0; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int n = 0; + while (n < maxElements) { + E first = q.peek(); + if (first == null || first.getDelay(TimeUnit.NANOSECONDS) > 0) + break; + c.add(q.poll()); + ++n; + } + if (n > 0) + available.signalAll(); + return n; + } finally { + lock.unlock(); + } + } + + /** + * Atomically removes all of the elements from this delay queue. + * The queue will be empty after this call returns. + * Elements with an unexpired delay are not waited for; they are + * simply discarded from the queue. + */ + public void clear() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + q.clear(); + } finally { + lock.unlock(); + } + } + + /** + * Always returns Integer.MAX_VALUE because + * a DelayQueue is not capacity constrained. + * + * @return Integer.MAX_VALUE + */ + public int remainingCapacity() { + return Integer.MAX_VALUE; + } + + /** + * Returns an array containing all of the elements in this queue. + * The returned array elements are in no particular order. + * + *

The returned array will be "safe" in that no references to it are + * maintained by this queue. (In other words, this method must allocate + * a new array). The caller is thus free to modify the returned array. + * + *

This method acts as bridge between array-based and collection-based + * APIs. + * + * @return an array containing all of the elements in this queue + */ + public Object[] toArray() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.toArray(); + } finally { + lock.unlock(); + } + } + + /** + * Returns an array containing all of the elements in this queue; the + * runtime type of the returned array is that of the specified array. + * The returned array elements are in no particular order. + * If the queue fits in the specified array, it is returned therein. + * Otherwise, a new array is allocated with the runtime type of the + * specified array and the size of this queue. + * + *

If this queue fits in the specified array with room to spare + * (i.e., the array has more elements than this queue), the element in + * the array immediately following the end of the queue is set to + * null. + * + *

Like the {@link #toArray()} method, this method acts as bridge between + * array-based and collection-based APIs. Further, this method allows + * precise control over the runtime type of the output array, and may, + * under certain circumstances, be used to save allocation costs. + * + *

The following code can be used to dump a delay queue into a newly + * allocated array of Delayed: + * + *

+     *     Delayed[] a = q.toArray(new Delayed[0]);
+ * + * Note that toArray(new Object[0]) is identical in function to + * toArray(). + * + * @param a the array into which the elements of the queue are to + * be stored, if it is big enough; otherwise, a new array of the + * same runtime type is allocated for this purpose + * @return an array containing all of the elements in this queue + * @throws ArrayStoreException if the runtime type of the specified array + * is not a supertype of the runtime type of every element in + * this queue + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.toArray(a); + } finally { + lock.unlock(); + } + } + + /** + * Removes a single instance of the specified element from this + * queue, if it is present, whether or not it has expired. + */ + public boolean remove(Object o) { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.remove(o); + } finally { + lock.unlock(); + } + } + + /** + * Returns an iterator over all the elements (both expired and + * unexpired) in this queue. The iterator does not return the + * elements in any particular order. The returned + * Iterator is a "weakly consistent" iterator that will + * never throw {@link ConcurrentModificationException}, and + * guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed + * to) reflect any modifications subsequent to construction. + * + * @return an iterator over the elements in this queue + */ + public Iterator iterator() { + return new Itr(toArray()); + } + + /** + * Snapshot iterator that works off copy of underlying q array. + */ + private class Itr implements Iterator { + final Object[] array; // Array of all elements + int cursor; // index of next element to return; + int lastRet; // index of last element, or -1 if no such + + Itr(Object[] array) { + lastRet = -1; + this.array = array; + } + + public boolean hasNext() { + return cursor < array.length; + } + + public E next() { + if (cursor >= array.length) + throw new NoSuchElementException(); + lastRet = cursor; + return (E)array[cursor++]; + } + + public void remove() { + if (lastRet < 0) + throw new IllegalStateException(); + Object x = array[lastRet]; + lastRet = -1; + // Traverse underlying queue to find == element, + // not just a .equals element. + lock.lock(); + try { + for (Iterator it = q.iterator(); it.hasNext(); ) { + if (it.next() == x) { + it.remove(); + return; + } + } + } finally { + lock.unlock(); + } + } + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/Delayed.java b/libjava/classpath/external/jsr166/java/util/concurrent/Delayed.java new file mode 100644 index 00000000000..b1ff4eee555 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/Delayed.java @@ -0,0 +1,33 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +import java.util.*; + +/** + * A mix-in style interface for marking objects that should be + * acted upon after a given delay. + * + *

An implementation of this interface must define a + * compareTo method that provides an ordering consistent with + * its getDelay method. + * + * @since 1.5 + * @author Doug Lea + */ +public interface Delayed extends Comparable { + + /** + * Returns the remaining delay associated with this object, in the + * given time unit. + * + * @param unit the time unit + * @return the remaining delay; zero or negative values indicate + * that the delay has already elapsed + */ + long getDelay(TimeUnit unit); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/Exchanger.java b/libjava/classpath/external/jsr166/java/util/concurrent/Exchanger.java new file mode 100644 index 00000000000..fb917f4321e --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/Exchanger.java @@ -0,0 +1,656 @@ +/* + * Written by Doug Lea, Bill Scherer, and Michael Scott with + * assistance from members of JCP JSR-166 Expert Group and released to + * the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.atomic.*; +import java.util.concurrent.locks.LockSupport; + +/** + * A synchronization point at which threads can pair and swap elements + * within pairs. Each thread presents some object on entry to the + * {@link #exchange exchange} method, matches with a partner thread, + * and receives its partner's object on return. An Exchanger may be + * viewed as a bidirectional form of a {@link SynchronousQueue}. + * Exchangers may be useful in applications such as genetic algorithms + * and pipeline designs. + * + *

Sample Usage: + * Here are the highlights of a class that uses an {@code Exchanger} + * to swap buffers between threads so that the thread filling the + * buffer gets a freshly emptied one when it needs it, handing off the + * filled one to the thread emptying the buffer. + *

{@code
+ * class FillAndEmpty {
+ *   Exchanger exchanger = new Exchanger();
+ *   DataBuffer initialEmptyBuffer = ... a made-up type
+ *   DataBuffer initialFullBuffer = ...
+ *
+ *   class FillingLoop implements Runnable {
+ *     public void run() {
+ *       DataBuffer currentBuffer = initialEmptyBuffer;
+ *       try {
+ *         while (currentBuffer != null) {
+ *           addToBuffer(currentBuffer);
+ *           if (currentBuffer.isFull())
+ *             currentBuffer = exchanger.exchange(currentBuffer);
+ *         }
+ *       } catch (InterruptedException ex) { ... handle ... }
+ *     }
+ *   }
+ *
+ *   class EmptyingLoop implements Runnable {
+ *     public void run() {
+ *       DataBuffer currentBuffer = initialFullBuffer;
+ *       try {
+ *         while (currentBuffer != null) {
+ *           takeFromBuffer(currentBuffer);
+ *           if (currentBuffer.isEmpty())
+ *             currentBuffer = exchanger.exchange(currentBuffer);
+ *         }
+ *       } catch (InterruptedException ex) { ... handle ...}
+ *     }
+ *   }
+ *
+ *   void start() {
+ *     new Thread(new FillingLoop()).start();
+ *     new Thread(new EmptyingLoop()).start();
+ *   }
+ * }
+ * }
+ * + *

Memory consistency effects: For each pair of threads that + * successfully exchange objects via an {@code Exchanger}, actions + * prior to the {@code exchange()} in each thread + * happen-before + * those subsequent to a return from the corresponding {@code exchange()} + * in the other thread. + * + * @since 1.5 + * @author Doug Lea and Bill Scherer and Michael Scott + * @param The type of objects that may be exchanged + */ +public class Exchanger { + /* + * Algorithm Description: + * + * The basic idea is to maintain a "slot", which is a reference to + * a Node containing both an Item to offer and a "hole" waiting to + * get filled in. If an incoming "occupying" thread sees that the + * slot is null, it CAS'es (compareAndSets) a Node there and waits + * for another to invoke exchange. That second "fulfilling" thread + * sees that the slot is non-null, and so CASes it back to null, + * also exchanging items by CASing the hole, plus waking up the + * occupying thread if it is blocked. In each case CAS'es may + * fail because a slot at first appears non-null but is null upon + * CAS, or vice-versa. So threads may need to retry these + * actions. + * + * This simple approach works great when there are only a few + * threads using an Exchanger, but performance rapidly + * deteriorates due to CAS contention on the single slot when + * there are lots of threads using an exchanger. So instead we use + * an "arena"; basically a kind of hash table with a dynamically + * varying number of slots, any one of which can be used by + * threads performing an exchange. Incoming threads pick slots + * based on a hash of their Thread ids. If an incoming thread + * fails to CAS in its chosen slot, it picks an alternative slot + * instead. And similarly from there. If a thread successfully + * CASes into a slot but no other thread arrives, it tries + * another, heading toward the zero slot, which always exists even + * if the table shrinks. The particular mechanics controlling this + * are as follows: + * + * Waiting: Slot zero is special in that it is the only slot that + * exists when there is no contention. A thread occupying slot + * zero will block if no thread fulfills it after a short spin. + * In other cases, occupying threads eventually give up and try + * another slot. Waiting threads spin for a while (a period that + * should be a little less than a typical context-switch time) + * before either blocking (if slot zero) or giving up (if other + * slots) and restarting. There is no reason for threads to block + * unless there are unlikely to be any other threads present. + * Occupants are mainly avoiding memory contention so sit there + * quietly polling for a shorter period than it would take to + * block and then unblock them. Non-slot-zero waits that elapse + * because of lack of other threads waste around one extra + * context-switch time per try, which is still on average much + * faster than alternative approaches. + * + * Sizing: Usually, using only a few slots suffices to reduce + * contention. Especially with small numbers of threads, using + * too many slots can lead to just as poor performance as using + * too few of them, and there's not much room for error. The + * variable "max" maintains the number of slots actually in + * use. It is increased when a thread sees too many CAS + * failures. (This is analogous to resizing a regular hash table + * based on a target load factor, except here, growth steps are + * just one-by-one rather than proportional.) Growth requires + * contention failures in each of three tried slots. Requiring + * multiple failures for expansion copes with the fact that some + * failed CASes are not due to contention but instead to simple + * races between two threads or thread pre-emptions occurring + * between reading and CASing. Also, very transient peak + * contention can be much higher than the average sustainable + * levels. The max limit is decreased on average 50% of the times + * that a non-slot-zero wait elapses without being fulfilled. + * Threads experiencing elapsed waits move closer to zero, so + * eventually find existing (or future) threads even if the table + * has been shrunk due to inactivity. The chosen mechanics and + * thresholds for growing and shrinking are intrinsically + * entangled with indexing and hashing inside the exchange code, + * and can't be nicely abstracted out. + * + * Hashing: Each thread picks its initial slot to use in accord + * with a simple hashcode. The sequence is the same on each + * encounter by any given thread, but effectively random across + * threads. Using arenas encounters the classic cost vs quality + * tradeoffs of all hash tables. Here, we use a one-step FNV-1a + * hash code based on the current thread's Thread.getId(), along + * with a cheap approximation to a mod operation to select an + * index. The downside of optimizing index selection in this way + * is that the code is hardwired to use a maximum table size of + * 32. But this value more than suffices for known platforms and + * applications. + * + * Probing: On sensed contention of a selected slot, we probe + * sequentially through the table, analogously to linear probing + * after collision in a hash table. (We move circularly, in + * reverse order, to mesh best with table growth and shrinkage + * rules.) Except that to minimize the effects of false-alarms + * and cache thrashing, we try the first selected slot twice + * before moving. + * + * Padding: Even with contention management, slots are heavily + * contended, so use cache-padding to avoid poor memory + * performance. Because of this, slots are lazily constructed + * only when used, to avoid wasting this space unnecessarily. + * While isolation of locations is not much of an issue at first + * in an application, as time goes on and garbage-collectors + * perform compaction, slots are very likely to be moved adjacent + * to each other, which can cause much thrashing of cache lines on + * MPs unless padding is employed. + * + * This is an improvement of the algorithm described in the paper + * "A Scalable Elimination-based Exchange Channel" by William + * Scherer, Doug Lea, and Michael Scott in Proceedings of SCOOL05 + * workshop. Available at: http://hdl.handle.net/1802/2104 + */ + + /** The number of CPUs, for sizing and spin control */ + private static final int NCPU = Runtime.getRuntime().availableProcessors(); + + /** + * The capacity of the arena. Set to a value that provides more + * than enough space to handle contention. On small machines + * most slots won't be used, but it is still not wasted because + * the extra space provides some machine-level address padding + * to minimize interference with heavily CAS'ed Slot locations. + * And on very large machines, performance eventually becomes + * bounded by memory bandwidth, not numbers of threads/CPUs. + * This constant cannot be changed without also modifying + * indexing and hashing algorithms. + */ + private static final int CAPACITY = 32; + + /** + * The value of "max" that will hold all threads without + * contention. When this value is less than CAPACITY, some + * otherwise wasted expansion can be avoided. + */ + private static final int FULL = + Math.max(0, Math.min(CAPACITY, NCPU / 2) - 1); + + /** + * The number of times to spin (doing nothing except polling a + * memory location) before blocking or giving up while waiting to + * be fulfilled. Should be zero on uniprocessors. On + * multiprocessors, this value should be large enough so that two + * threads exchanging items as fast as possible block only when + * one of them is stalled (due to GC or preemption), but not much + * longer, to avoid wasting CPU resources. Seen differently, this + * value is a little over half the number of cycles of an average + * context switch time on most systems. The value here is + * approximately the average of those across a range of tested + * systems. + */ + private static final int SPINS = (NCPU == 1) ? 0 : 2000; + + /** + * The number of times to spin before blocking in timed waits. + * Timed waits spin more slowly because checking the time takes + * time. The best value relies mainly on the relative rate of + * System.nanoTime vs memory accesses. The value is empirically + * derived to work well across a variety of systems. + */ + private static final int TIMED_SPINS = SPINS / 20; + + /** + * Sentinel item representing cancellation of a wait due to + * interruption, timeout, or elapsed spin-waits. This value is + * placed in holes on cancellation, and used as a return value + * from waiting methods to indicate failure to set or get hole. + */ + private static final Object CANCEL = new Object(); + + /** + * Value representing null arguments/returns from public + * methods. This disambiguates from internal requirement that + * holes start out as null to mean they are not yet set. + */ + private static final Object NULL_ITEM = new Object(); + + /** + * Nodes hold partially exchanged data. This class + * opportunistically subclasses AtomicReference to represent the + * hole. So get() returns hole, and compareAndSet CAS'es value + * into hole. This class cannot be parameterized as "V" because + * of the use of non-V CANCEL sentinels. + */ + private static final class Node extends AtomicReference { + /** The element offered by the Thread creating this node. */ + public final Object item; + + /** The Thread waiting to be signalled; null until waiting. */ + public volatile Thread waiter; + + /** + * Creates node with given item and empty hole. + * @param item the item + */ + public Node(Object item) { + this.item = item; + } + } + + /** + * A Slot is an AtomicReference with heuristic padding to lessen + * cache effects of this heavily CAS'ed location. While the + * padding adds noticeable space, all slots are created only on + * demand, and there will be more than one of them only when it + * would improve throughput more than enough to outweigh using + * extra space. + */ + private static final class Slot extends AtomicReference { + // Improve likelihood of isolation on <= 64 byte cache lines + long q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, qa, qb, qc, qd, qe; + } + + /** + * Slot array. Elements are lazily initialized when needed. + * Declared volatile to enable double-checked lazy construction. + */ + private volatile Slot[] arena = new Slot[CAPACITY]; + + /** + * The maximum slot index being used. The value sometimes + * increases when a thread experiences too many CAS contentions, + * and sometimes decreases when a spin-wait elapses. Changes + * are performed only via compareAndSet, to avoid stale values + * when a thread happens to stall right before setting. + */ + private final AtomicInteger max = new AtomicInteger(); + + /** + * Main exchange function, handling the different policy variants. + * Uses Object, not "V" as argument and return value to simplify + * handling of sentinel values. Callers from public methods decode + * and cast accordingly. + * + * @param item the (non-null) item to exchange + * @param timed true if the wait is timed + * @param nanos if timed, the maximum wait time + * @return the other thread's item, or CANCEL if interrupted or timed out + */ + private Object doExchange(Object item, boolean timed, long nanos) { + Node me = new Node(item); // Create in case occupying + int index = hashIndex(); // Index of current slot + int fails = 0; // Number of CAS failures + + for (;;) { + Object y; // Contents of current slot + Slot slot = arena[index]; + if (slot == null) // Lazily initialize slots + createSlot(index); // Continue loop to reread + else if ((y = slot.get()) != null && // Try to fulfill + slot.compareAndSet(y, null)) { + Node you = (Node)y; // Transfer item + if (you.compareAndSet(null, item)) { + LockSupport.unpark(you.waiter); + return you.item; + } // Else cancelled; continue + } + else if (y == null && // Try to occupy + slot.compareAndSet(null, me)) { + if (index == 0) // Blocking wait for slot 0 + return timed? awaitNanos(me, slot, nanos): await(me, slot); + Object v = spinWait(me, slot); // Spin wait for non-0 + if (v != CANCEL) + return v; + me = new Node(item); // Throw away cancelled node + int m = max.get(); + if (m > (index >>>= 1)) // Decrease index + max.compareAndSet(m, m - 1); // Maybe shrink table + } + else if (++fails > 1) { // Allow 2 fails on 1st slot + int m = max.get(); + if (fails > 3 && m < FULL && max.compareAndSet(m, m + 1)) + index = m + 1; // Grow on 3rd failed slot + else if (--index < 0) + index = m; // Circularly traverse + } + } + } + + /** + * Returns a hash index for the current thread. Uses a one-step + * FNV-1a hash code (http://www.isthe.com/chongo/tech/comp/fnv/) + * based on the current thread's Thread.getId(). These hash codes + * have more uniform distribution properties with respect to small + * moduli (here 1-31) than do other simple hashing functions. + * + *

To return an index between 0 and max, we use a cheap + * approximation to a mod operation, that also corrects for bias + * due to non-power-of-2 remaindering (see {@link + * java.util.Random#nextInt}). Bits of the hashcode are masked + * with "nbits", the ceiling power of two of table size (looked up + * in a table packed into three ints). If too large, this is + * retried after rotating the hash by nbits bits, while forcing new + * top bit to 0, which guarantees eventual termination (although + * with a non-random-bias). This requires an average of less than + * 2 tries for all table sizes, and has a maximum 2% difference + * from perfectly uniform slot probabilities when applied to all + * possible hash codes for sizes less than 32. + * + * @return a per-thread-random index, 0 <= index < max + */ + private final int hashIndex() { + long id = Thread.currentThread().getId(); + int hash = (((int)(id ^ (id >>> 32))) ^ 0x811c9dc5) * 0x01000193; + + int m = max.get(); + int nbits = (((0xfffffc00 >> m) & 4) | // Compute ceil(log2(m+1)) + ((0x000001f8 >>> m) & 2) | // The constants hold + ((0xffff00f2 >>> m) & 1)); // a lookup table + int index; + while ((index = hash & ((1 << nbits) - 1)) > m) // May retry on + hash = (hash >>> nbits) | (hash << (33 - nbits)); // non-power-2 m + return index; + } + + /** + * Creates a new slot at given index. Called only when the slot + * appears to be null. Relies on double-check using builtin + * locks, since they rarely contend. This in turn relies on the + * arena array being declared volatile. + * + * @param index the index to add slot at + */ + private void createSlot(int index) { + // Create slot outside of lock to narrow sync region + Slot newSlot = new Slot(); + Slot[] a = arena; + synchronized (a) { + if (a[index] == null) + a[index] = newSlot; + } + } + + /** + * Tries to cancel a wait for the given node waiting in the given + * slot, if so, helping clear the node from its slot to avoid + * garbage retention. + * + * @param node the waiting node + * @param the slot it is waiting in + * @return true if successfully cancelled + */ + private static boolean tryCancel(Node node, Slot slot) { + if (!node.compareAndSet(null, CANCEL)) + return false; + if (slot.get() == node) // pre-check to minimize contention + slot.compareAndSet(node, null); + return true; + } + + // Three forms of waiting. Each just different enough not to merge + // code with others. + + /** + * Spin-waits for hole for a non-0 slot. Fails if spin elapses + * before hole filled. Does not check interrupt, relying on check + * in public exchange method to abort if interrupted on entry. + * + * @param node the waiting node + * @return on success, the hole; on failure, CANCEL + */ + private static Object spinWait(Node node, Slot slot) { + int spins = SPINS; + for (;;) { + Object v = node.get(); + if (v != null) + return v; + else if (spins > 0) + --spins; + else + tryCancel(node, slot); + } + } + + /** + * Waits for (by spinning and/or blocking) and gets the hole + * filled in by another thread. Fails if interrupted before + * hole filled. + * + * When a node/thread is about to block, it sets its waiter field + * and then rechecks state at least one more time before actually + * parking, thus covering race vs fulfiller noticing that waiter + * is non-null so should be woken. + * + * Thread interruption status is checked only surrounding calls to + * park. The caller is assumed to have checked interrupt status + * on entry. + * + * @param node the waiting node + * @return on success, the hole; on failure, CANCEL + */ + private static Object await(Node node, Slot slot) { + Thread w = Thread.currentThread(); + int spins = SPINS; + for (;;) { + Object v = node.get(); + if (v != null) + return v; + else if (spins > 0) // Spin-wait phase + --spins; + else if (node.waiter == null) // Set up to block next + node.waiter = w; + else if (w.isInterrupted()) // Abort on interrupt + tryCancel(node, slot); + else // Block + LockSupport.park(node); + } + } + + /** + * Waits for (at index 0) and gets the hole filled in by another + * thread. Fails if timed out or interrupted before hole filled. + * Same basic logic as untimed version, but a bit messier. + * + * @param node the waiting node + * @param nanos the wait time + * @return on success, the hole; on failure, CANCEL + */ + private Object awaitNanos(Node node, Slot slot, long nanos) { + int spins = TIMED_SPINS; + long lastTime = 0; + Thread w = null; + for (;;) { + Object v = node.get(); + if (v != null) + return v; + long now = System.nanoTime(); + if (w == null) + w = Thread.currentThread(); + else + nanos -= now - lastTime; + lastTime = now; + if (nanos > 0) { + if (spins > 0) + --spins; + else if (node.waiter == null) + node.waiter = w; + else if (w.isInterrupted()) + tryCancel(node, slot); + else + LockSupport.parkNanos(node, nanos); + } + else if (tryCancel(node, slot) && !w.isInterrupted()) + return scanOnTimeout(node); + } + } + + /** + * Sweeps through arena checking for any waiting threads. Called + * only upon return from timeout while waiting in slot 0. When a + * thread gives up on a timed wait, it is possible that a + * previously-entered thread is still waiting in some other + * slot. So we scan to check for any. This is almost always + * overkill, but decreases the likelihood of timeouts when there + * are other threads present to far less than that in lock-based + * exchangers in which earlier-arriving threads may still be + * waiting on entry locks. + * + * @param node the waiting node + * @return another thread's item, or CANCEL + */ + private Object scanOnTimeout(Node node) { + Object y; + for (int j = arena.length - 1; j >= 0; --j) { + Slot slot = arena[j]; + if (slot != null) { + while ((y = slot.get()) != null) { + if (slot.compareAndSet(y, null)) { + Node you = (Node)y; + if (you.compareAndSet(null, node.item)) { + LockSupport.unpark(you.waiter); + return you.item; + } + } + } + } + } + return CANCEL; + } + + /** + * Creates a new Exchanger. + */ + public Exchanger() { + } + + /** + * Waits for another thread to arrive at this exchange point (unless + * the current thread is {@linkplain Thread#interrupt interrupted}), + * and then transfers the given object to it, receiving its object + * in return. + * + *

If another thread is already waiting at the exchange point then + * it is resumed for thread scheduling purposes and receives the object + * passed in by the current thread. The current thread returns immediately, + * receiving the object passed to the exchange by that other thread. + * + *

If no other thread is already waiting at the exchange then the + * current thread is disabled for thread scheduling purposes and lies + * dormant until one of two things happens: + *

    + *
  • Some other thread enters the exchange; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the current + * thread. + *
+ *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * for the exchange, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + * @param x the object to exchange + * @return the object provided by the other thread + * @throws InterruptedException if the current thread was + * interrupted while waiting + */ + public V exchange(V x) throws InterruptedException { + if (!Thread.interrupted()) { + Object v = doExchange(x == null? NULL_ITEM : x, false, 0); + if (v == NULL_ITEM) + return null; + if (v != CANCEL) + return (V)v; + Thread.interrupted(); // Clear interrupt status on IE throw + } + throw new InterruptedException(); + } + + /** + * Waits for another thread to arrive at this exchange point (unless + * the current thread is {@linkplain Thread#interrupt interrupted} or + * the specified waiting time elapses), and then transfers the given + * object to it, receiving its object in return. + * + *

If another thread is already waiting at the exchange point then + * it is resumed for thread scheduling purposes and receives the object + * passed in by the current thread. The current thread returns immediately, + * receiving the object passed to the exchange by that other thread. + * + *

If no other thread is already waiting at the exchange then the + * current thread is disabled for thread scheduling purposes and lies + * dormant until one of three things happens: + *

    + *
  • Some other thread enters the exchange; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + *
  • The specified waiting time elapses. + *
+ *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * for the exchange, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

If the specified waiting time elapses then {@link + * TimeoutException} is thrown. If the time is less than or equal + * to zero, the method will not wait at all. + * + * @param x the object to exchange + * @param timeout the maximum time to wait + * @param unit the time unit of the timeout argument + * @return the object provided by the other thread + * @throws InterruptedException if the current thread was + * interrupted while waiting + * @throws TimeoutException if the specified waiting time elapses + * before another thread enters the exchange + */ + public V exchange(V x, long timeout, TimeUnit unit) + throws InterruptedException, TimeoutException { + if (!Thread.interrupted()) { + Object v = doExchange(x == null? NULL_ITEM : x, + true, unit.toNanos(timeout)); + if (v == NULL_ITEM) + return null; + if (v != CANCEL) + return (V)v; + if (!Thread.interrupted()) + throw new TimeoutException(); + } + throw new InterruptedException(); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ExecutionException.java b/libjava/classpath/external/jsr166/java/util/concurrent/ExecutionException.java new file mode 100644 index 00000000000..bc561e58ebb --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ExecutionException.java @@ -0,0 +1,65 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * Exception thrown when attempting to retrieve the result of a task + * that aborted by throwing an exception. This exception can be + * inspected using the {@link #getCause()} method. + * + * @see Future + * @since 1.5 + * @author Doug Lea + */ +public class ExecutionException extends Exception { + private static final long serialVersionUID = 7830266012832686185L; + + /** + * Constructs an ExecutionException with no detail message. + * The cause is not initialized, and may subsequently be + * initialized by a call to {@link #initCause(Throwable) initCause}. + */ + protected ExecutionException() { } + + /** + * Constructs an ExecutionException with the specified detail + * message. The cause is not initialized, and may subsequently be + * initialized by a call to {@link #initCause(Throwable) initCause}. + * + * @param message the detail message + */ + protected ExecutionException(String message) { + super(message); + } + + /** + * Constructs an ExecutionException with the specified detail + * message and cause. + * + * @param message the detail message + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method) + */ + public ExecutionException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Constructs an ExecutionException with the specified cause. + * The detail message is set to: + *

+     *  (cause == null ? null : cause.toString())
+ * (which typically contains the class and detail message of + * cause). + * + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method) + */ + public ExecutionException(Throwable cause) { + super(cause); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/Executor.java b/libjava/classpath/external/jsr166/java/util/concurrent/Executor.java new file mode 100644 index 00000000000..a61e9215291 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/Executor.java @@ -0,0 +1,112 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * An object that executes submitted {@link Runnable} tasks. This + * interface provides a way of decoupling task submission from the + * mechanics of how each task will be run, including details of thread + * use, scheduling, etc. An Executor is normally used + * instead of explicitly creating threads. For example, rather than + * invoking new Thread(new(RunnableTask())).start() for each + * of a set of tasks, you might use: + * + *
+ * Executor executor = anExecutor;
+ * executor.execute(new RunnableTask1());
+ * executor.execute(new RunnableTask2());
+ * ...
+ * 
+ * + * However, the Executor interface does not strictly + * require that execution be asynchronous. In the simplest case, an + * executor can run the submitted task immediately in the caller's + * thread: + * + *
+ * class DirectExecutor implements Executor {
+ *     public void execute(Runnable r) {
+ *         r.run();
+ *     }
+ * }
+ * + * More typically, tasks are executed in some thread other + * than the caller's thread. The executor below spawns a new thread + * for each task. + * + *
+ * class ThreadPerTaskExecutor implements Executor {
+ *     public void execute(Runnable r) {
+ *         new Thread(r).start();
+ *     }
+ * }
+ * + * Many Executor implementations impose some sort of + * limitation on how and when tasks are scheduled. The executor below + * serializes the submission of tasks to a second executor, + * illustrating a composite executor. + * + *
+ * class SerialExecutor implements Executor {
+ *     final Queue<Runnable> tasks = new ArrayDeque<Runnable>();
+ *     final Executor executor;
+ *     Runnable active;
+ *
+ *     SerialExecutor(Executor executor) {
+ *         this.executor = executor;
+ *     }
+ *
+ *     public synchronized void execute(final Runnable r) {
+ *         tasks.offer(new Runnable() {
+ *             public void run() {
+ *                 try {
+ *                     r.run();
+ *                 } finally {
+ *                     scheduleNext();
+ *                 }
+ *             }
+ *         });
+ *         if (active == null) {
+ *             scheduleNext();
+ *         }
+ *     }
+ *
+ *     protected synchronized void scheduleNext() {
+ *         if ((active = tasks.poll()) != null) {
+ *             executor.execute(active);
+ *         }
+ *     }
+ * }
+ * + * The Executor implementations provided in this package + * implement {@link ExecutorService}, which is a more extensive + * interface. The {@link ThreadPoolExecutor} class provides an + * extensible thread pool implementation. The {@link Executors} class + * provides convenient factory methods for these Executors. + * + *

Memory consistency effects: Actions in a thread prior to + * submitting a {@code Runnable} object to an {@code Executor} + * happen-before + * its execution begins, perhaps in another thread. + * + * @since 1.5 + * @author Doug Lea + */ +public interface Executor { + + /** + * Executes the given command at some time in the future. The command + * may execute in a new thread, in a pooled thread, or in the calling + * thread, at the discretion of the Executor implementation. + * + * @param command the runnable task + * @throws RejectedExecutionException if this task cannot be + * accepted for execution. + * @throws NullPointerException if command is null + */ + void execute(Runnable command); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ExecutorCompletionService.java b/libjava/classpath/external/jsr166/java/util/concurrent/ExecutorCompletionService.java new file mode 100644 index 00000000000..9b7a0e027a0 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ExecutorCompletionService.java @@ -0,0 +1,174 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A {@link CompletionService} that uses a supplied {@link Executor} + * to execute tasks. This class arranges that submitted tasks are, + * upon completion, placed on a queue accessible using take. + * The class is lightweight enough to be suitable for transient use + * when processing groups of tasks. + * + *

+ * + * Usage Examples. + * + * Suppose you have a set of solvers for a certain problem, each + * returning a value of some type Result, and would like to + * run them concurrently, processing the results of each of them that + * return a non-null value, in some method use(Result r). You + * could write this as: + * + *

+ *   void solve(Executor e,
+ *              Collection<Callable<Result>> solvers)
+ *     throws InterruptedException, ExecutionException {
+ *       CompletionService<Result> ecs
+ *           = new ExecutorCompletionService<Result>(e);
+ *       for (Callable<Result> s : solvers)
+ *           ecs.submit(s);
+ *       int n = solvers.size();
+ *       for (int i = 0; i < n; ++i) {
+ *           Result r = ecs.take().get();
+ *           if (r != null)
+ *               use(r);
+ *       }
+ *   }
+ * 
+ * + * Suppose instead that you would like to use the first non-null result + * of the set of tasks, ignoring any that encounter exceptions, + * and cancelling all other tasks when the first one is ready: + * + *
+ *   void solve(Executor e,
+ *              Collection<Callable<Result>> solvers)
+ *     throws InterruptedException {
+ *       CompletionService<Result> ecs
+ *           = new ExecutorCompletionService<Result>(e);
+ *       int n = solvers.size();
+ *       List<Future<Result>> futures
+ *           = new ArrayList<Future<Result>>(n);
+ *       Result result = null;
+ *       try {
+ *           for (Callable<Result> s : solvers)
+ *               futures.add(ecs.submit(s));
+ *           for (int i = 0; i < n; ++i) {
+ *               try {
+ *                   Result r = ecs.take().get();
+ *                   if (r != null) {
+ *                       result = r;
+ *                       break;
+ *                   }
+ *               } catch (ExecutionException ignore) {}
+ *           }
+ *       }
+ *       finally {
+ *           for (Future<Result> f : futures)
+ *               f.cancel(true);
+ *       }
+ *
+ *       if (result != null)
+ *           use(result);
+ *   }
+ * 
+ */ +public class ExecutorCompletionService implements CompletionService { + private final Executor executor; + private final AbstractExecutorService aes; + private final BlockingQueue> completionQueue; + + /** + * FutureTask extension to enqueue upon completion + */ + private class QueueingFuture extends FutureTask { + QueueingFuture(RunnableFuture task) { + super(task, null); + this.task = task; + } + protected void done() { completionQueue.add(task); } + private final Future task; + } + + private RunnableFuture newTaskFor(Callable task) { + if (aes == null) + return new FutureTask(task); + else + return aes.newTaskFor(task); + } + + private RunnableFuture newTaskFor(Runnable task, V result) { + if (aes == null) + return new FutureTask(task, result); + else + return aes.newTaskFor(task, result); + } + + /** + * Creates an ExecutorCompletionService using the supplied + * executor for base task execution and a + * {@link LinkedBlockingQueue} as a completion queue. + * + * @param executor the executor to use + * @throws NullPointerException if executor is null + */ + public ExecutorCompletionService(Executor executor) { + if (executor == null) + throw new NullPointerException(); + this.executor = executor; + this.aes = (executor instanceof AbstractExecutorService) ? + (AbstractExecutorService) executor : null; + this.completionQueue = new LinkedBlockingQueue>(); + } + + /** + * Creates an ExecutorCompletionService using the supplied + * executor for base task execution and the supplied queue as its + * completion queue. + * + * @param executor the executor to use + * @param completionQueue the queue to use as the completion queue + * normally one dedicated for use by this service + * @throws NullPointerException if executor or completionQueue are null + */ + public ExecutorCompletionService(Executor executor, + BlockingQueue> completionQueue) { + if (executor == null || completionQueue == null) + throw new NullPointerException(); + this.executor = executor; + this.aes = (executor instanceof AbstractExecutorService) ? + (AbstractExecutorService) executor : null; + this.completionQueue = completionQueue; + } + + public Future submit(Callable task) { + if (task == null) throw new NullPointerException(); + RunnableFuture f = newTaskFor(task); + executor.execute(new QueueingFuture(f)); + return f; + } + + public Future submit(Runnable task, V result) { + if (task == null) throw new NullPointerException(); + RunnableFuture f = newTaskFor(task, result); + executor.execute(new QueueingFuture(f)); + return f; + } + + public Future take() throws InterruptedException { + return completionQueue.take(); + } + + public Future poll() { + return completionQueue.poll(); + } + + public Future poll(long timeout, TimeUnit unit) throws InterruptedException { + return completionQueue.poll(timeout, unit); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ExecutorService.java b/libjava/classpath/external/jsr166/java/util/concurrent/ExecutorService.java new file mode 100644 index 00000000000..77731926562 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ExecutorService.java @@ -0,0 +1,306 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.List; +import java.util.Collection; +import java.security.PrivilegedAction; +import java.security.PrivilegedExceptionAction; + +/** + * An {@link Executor} that provides methods to manage termination and + * methods that can produce a {@link Future} for tracking progress of + * one or more asynchronous tasks. + * + *

+ * An ExecutorService can be shut down, which will cause it + * to stop accepting new tasks. After being shut down, the executor + * will eventually terminate, at which point no tasks are actively + * executing, no tasks are awaiting execution, and no new tasks can be + * submitted. An unused ExecutorService should be shut down + * to allow reclamation of its resources. + * + *

Method submit extends base method {@link + * Executor#execute} by creating and returning a {@link Future} that + * can be used to cancel execution and/or wait for completion. + * Methods invokeAny and invokeAll perform the most + * commonly useful forms of bulk execution, executing a collection of + * tasks and then waiting for at least one, or all, to + * complete. (Class {@link ExecutorCompletionService} can be used to + * write customized variants of these methods.) + * + *

The {@link Executors} class provides factory methods for the + * executor services provided in this package. + * + *

Usage Example

+ * + * Here is a sketch of a network service in which threads in a thread + * pool service incoming requests. It uses the preconfigured {@link + * Executors#newFixedThreadPool} factory method: + * + *
+ * class NetworkService {
+ *   private final ServerSocket serverSocket;
+ *   private final ExecutorService pool;
+ *
+ *   public NetworkService(int port, int poolSize)
+ *       throws IOException {
+ *     serverSocket = new ServerSocket(port);
+ *     pool = Executors.newFixedThreadPool(poolSize);
+ *   }
+ *
+ *   public void serve() {
+ *     try {
+ *       for (;;) {
+ *         pool.execute(new Handler(serverSocket.accept()));
+ *       }
+ *     } catch (IOException ex) {
+ *       pool.shutdown();
+ *     }
+ *   }
+ * }
+ *
+ * class Handler implements Runnable {
+ *   private final Socket socket;
+ *   Handler(Socket socket) { this.socket = socket; }
+ *   public void run() {
+ *     // read and service request
+ *   }
+ * }
+ * 
+ * + *

Memory consistency effects: Actions in a thread prior to the + * submission of a {@code Runnable} or {@code Callable} task to an + * {@code ExecutorService} + * happen-before + * any actions taken by that task, which in turn happen-before the + * result is retrieved via {@code Future.get()}. + * + * @since 1.5 + * @author Doug Lea + */ +public interface ExecutorService extends Executor { + + /** + * Initiates an orderly shutdown in which previously submitted + * tasks are executed, but no new tasks will be accepted. + * Invocation has no additional effect if already shut down. + * + * @throws SecurityException if a security manager exists and + * shutting down this ExecutorService may manipulate + * threads that the caller is not permitted to modify + * because it does not hold {@link + * java.lang.RuntimePermission}("modifyThread"), + * or the security manager's checkAccess method + * denies access. + */ + void shutdown(); + + /** + * Attempts to stop all actively executing tasks, halts the + * processing of waiting tasks, and returns a list of the tasks that were + * awaiting execution. + * + *

There are no guarantees beyond best-effort attempts to stop + * processing actively executing tasks. For example, typical + * implementations will cancel via {@link Thread#interrupt}, so any + * task that fails to respond to interrupts may never terminate. + * + * @return list of tasks that never commenced execution + * @throws SecurityException if a security manager exists and + * shutting down this ExecutorService may manipulate + * threads that the caller is not permitted to modify + * because it does not hold {@link + * java.lang.RuntimePermission}("modifyThread"), + * or the security manager's checkAccess method + * denies access. + */ + List shutdownNow(); + + /** + * Returns true if this executor has been shut down. + * + * @return true if this executor has been shut down + */ + boolean isShutdown(); + + /** + * Returns true if all tasks have completed following shut down. + * Note that isTerminated is never true unless + * either shutdown or shutdownNow was called first. + * + * @return true if all tasks have completed following shut down + */ + boolean isTerminated(); + + /** + * Blocks until all tasks have completed execution after a shutdown + * request, or the timeout occurs, or the current thread is + * interrupted, whichever happens first. + * + * @param timeout the maximum time to wait + * @param unit the time unit of the timeout argument + * @return true if this executor terminated and + * false if the timeout elapsed before termination + * @throws InterruptedException if interrupted while waiting + */ + boolean awaitTermination(long timeout, TimeUnit unit) + throws InterruptedException; + + + /** + * Submits a value-returning task for execution and returns a + * Future representing the pending results of the task. The + * Future's get method will return the task's result upon + * successful completion. + * + *

+ * If you would like to immediately block waiting + * for a task, you can use constructions of the form + * result = exec.submit(aCallable).get(); + * + *

Note: The {@link Executors} class includes a set of methods + * that can convert some other common closure-like objects, + * for example, {@link java.security.PrivilegedAction} to + * {@link Callable} form so they can be submitted. + * + * @param task the task to submit + * @return a Future representing pending completion of the task + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if the task is null + */ + Future submit(Callable task); + + /** + * Submits a Runnable task for execution and returns a Future + * representing that task. The Future's get method will + * return the given result upon successful completion. + * + * @param task the task to submit + * @param result the result to return + * @return a Future representing pending completion of the task + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if the task is null + */ + Future submit(Runnable task, T result); + + /** + * Submits a Runnable task for execution and returns a Future + * representing that task. The Future's get method will + * return null upon successful completion. + * + * @param task the task to submit + * @return a Future representing pending completion of the task + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if the task is null + */ + Future submit(Runnable task); + + /** + * Executes the given tasks, returning a list of Futures holding + * their status and results when all complete. + * {@link Future#isDone} is true for each + * element of the returned list. + * Note that a completed task could have + * terminated either normally or by throwing an exception. + * The results of this method are undefined if the given + * collection is modified while this operation is in progress. + * + * @param tasks the collection of tasks + * @return A list of Futures representing the tasks, in the same + * sequential order as produced by the iterator for the + * given task list, each of which has completed. + * @throws InterruptedException if interrupted while waiting, in + * which case unfinished tasks are cancelled. + * @throws NullPointerException if tasks or any of its elements are null + * @throws RejectedExecutionException if any task cannot be + * scheduled for execution + */ + + List> invokeAll(Collection> tasks) + throws InterruptedException; + + /** + * Executes the given tasks, returning a list of Futures holding + * their status and results + * when all complete or the timeout expires, whichever happens first. + * {@link Future#isDone} is true for each + * element of the returned list. + * Upon return, tasks that have not completed are cancelled. + * Note that a completed task could have + * terminated either normally or by throwing an exception. + * The results of this method are undefined if the given + * collection is modified while this operation is in progress. + * + * @param tasks the collection of tasks + * @param timeout the maximum time to wait + * @param unit the time unit of the timeout argument + * @return a list of Futures representing the tasks, in the same + * sequential order as produced by the iterator for the + * given task list. If the operation did not time out, + * each task will have completed. If it did time out, some + * of these tasks will not have completed. + * @throws InterruptedException if interrupted while waiting, in + * which case unfinished tasks are cancelled + * @throws NullPointerException if tasks, any of its elements, or + * unit are null + * @throws RejectedExecutionException if any task cannot be scheduled + * for execution + */ + List> invokeAll(Collection> tasks, + long timeout, TimeUnit unit) + throws InterruptedException; + + /** + * Executes the given tasks, returning the result + * of one that has completed successfully (i.e., without throwing + * an exception), if any do. Upon normal or exceptional return, + * tasks that have not completed are cancelled. + * The results of this method are undefined if the given + * collection is modified while this operation is in progress. + * + * @param tasks the collection of tasks + * @return the result returned by one of the tasks + * @throws InterruptedException if interrupted while waiting + * @throws NullPointerException if tasks or any of its elements + * are null + * @throws IllegalArgumentException if tasks is empty + * @throws ExecutionException if no task successfully completes + * @throws RejectedExecutionException if tasks cannot be scheduled + * for execution + */ + T invokeAny(Collection> tasks) + throws InterruptedException, ExecutionException; + + /** + * Executes the given tasks, returning the result + * of one that has completed successfully (i.e., without throwing + * an exception), if any do before the given timeout elapses. + * Upon normal or exceptional return, tasks that have not + * completed are cancelled. + * The results of this method are undefined if the given + * collection is modified while this operation is in progress. + * + * @param tasks the collection of tasks + * @param timeout the maximum time to wait + * @param unit the time unit of the timeout argument + * @return the result returned by one of the tasks. + * @throws InterruptedException if interrupted while waiting + * @throws NullPointerException if tasks, any of its elements, or + * unit are null + * @throws TimeoutException if the given timeout elapses before + * any task successfully completes + * @throws ExecutionException if no task successfully completes + * @throws RejectedExecutionException if tasks cannot be scheduled + * for execution + */ + T invokeAny(Collection> tasks, + long timeout, TimeUnit unit) + throws InterruptedException, ExecutionException, TimeoutException; +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/Executors.java b/libjava/classpath/external/jsr166/java/util/concurrent/Executors.java new file mode 100644 index 00000000000..f44e66160f7 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/Executors.java @@ -0,0 +1,666 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.security.AccessControlContext; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.PrivilegedExceptionAction; +import java.security.AccessControlException; + +/** + * Factory and utility methods for {@link Executor}, {@link + * ExecutorService}, {@link ScheduledExecutorService}, {@link + * ThreadFactory}, and {@link Callable} classes defined in this + * package. This class supports the following kinds of methods: + * + *

    + *
  • Methods that create and return an {@link ExecutorService} + * set up with commonly useful configuration settings. + *
  • Methods that create and return a {@link ScheduledExecutorService} + * set up with commonly useful configuration settings. + *
  • Methods that create and return a "wrapped" ExecutorService, that + * disables reconfiguration by making implementation-specific methods + * inaccessible. + *
  • Methods that create and return a {@link ThreadFactory} + * that sets newly created threads to a known state. + *
  • Methods that create and return a {@link Callable} + * out of other closure-like forms, so they can be used + * in execution methods requiring Callable. + *
+ * + * @since 1.5 + * @author Doug Lea + */ +public class Executors { + + /** + * Creates a thread pool that reuses a fixed number of threads + * operating off a shared unbounded queue. At any point, at most + * nThreads threads will be active processing tasks. + * If additional tasks are submitted when all threads are active, + * they will wait in the queue until a thread is available. + * If any thread terminates due to a failure during execution + * prior to shutdown, a new one will take its place if needed to + * execute subsequent tasks. The threads in the pool will exist + * until it is explicitly {@link ExecutorService#shutdown shutdown}. + * + * @param nThreads the number of threads in the pool + * @return the newly created thread pool + * @throws IllegalArgumentException if nThreads <= 0 + */ + public static ExecutorService newFixedThreadPool(int nThreads) { + return new ThreadPoolExecutor(nThreads, nThreads, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + } + + /** + * Creates a thread pool that reuses a fixed number of threads + * operating off a shared unbounded queue, using the provided + * ThreadFactory to create new threads when needed. At any point, + * at most nThreads threads will be active processing + * tasks. If additional tasks are submitted when all threads are + * active, they will wait in the queue until a thread is + * available. If any thread terminates due to a failure during + * execution prior to shutdown, a new one will take its place if + * needed to execute subsequent tasks. The threads in the pool will + * exist until it is explicitly {@link ExecutorService#shutdown + * shutdown}. + * + * @param nThreads the number of threads in the pool + * @param threadFactory the factory to use when creating new threads + * @return the newly created thread pool + * @throws NullPointerException if threadFactory is null + * @throws IllegalArgumentException if nThreads <= 0 + */ + public static ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory) { + return new ThreadPoolExecutor(nThreads, nThreads, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(), + threadFactory); + } + + /** + * Creates an Executor that uses a single worker thread operating + * off an unbounded queue. (Note however that if this single + * thread terminates due to a failure during execution prior to + * shutdown, a new one will take its place if needed to execute + * subsequent tasks.) Tasks are guaranteed to execute + * sequentially, and no more than one task will be active at any + * given time. Unlike the otherwise equivalent + * newFixedThreadPool(1) the returned executor is + * guaranteed not to be reconfigurable to use additional threads. + * + * @return the newly created single-threaded Executor + */ + public static ExecutorService newSingleThreadExecutor() { + return new FinalizableDelegatedExecutorService + (new ThreadPoolExecutor(1, 1, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue())); + } + + /** + * Creates an Executor that uses a single worker thread operating + * off an unbounded queue, and uses the provided ThreadFactory to + * create a new thread when needed. Unlike the otherwise + * equivalent newFixedThreadPool(1, threadFactory) the + * returned executor is guaranteed not to be reconfigurable to use + * additional threads. + * + * @param threadFactory the factory to use when creating new + * threads + * + * @return the newly created single-threaded Executor + * @throws NullPointerException if threadFactory is null + */ + public static ExecutorService newSingleThreadExecutor(ThreadFactory threadFactory) { + return new FinalizableDelegatedExecutorService + (new ThreadPoolExecutor(1, 1, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(), + threadFactory)); + } + + /** + * Creates a thread pool that creates new threads as needed, but + * will reuse previously constructed threads when they are + * available. These pools will typically improve the performance + * of programs that execute many short-lived asynchronous tasks. + * Calls to execute will reuse previously constructed + * threads if available. If no existing thread is available, a new + * thread will be created and added to the pool. Threads that have + * not been used for sixty seconds are terminated and removed from + * the cache. Thus, a pool that remains idle for long enough will + * not consume any resources. Note that pools with similar + * properties but different details (for example, timeout parameters) + * may be created using {@link ThreadPoolExecutor} constructors. + * + * @return the newly created thread pool + */ + public static ExecutorService newCachedThreadPool() { + return new ThreadPoolExecutor(0, Integer.MAX_VALUE, + 60L, TimeUnit.SECONDS, + new SynchronousQueue()); + } + + /** + * Creates a thread pool that creates new threads as needed, but + * will reuse previously constructed threads when they are + * available, and uses the provided + * ThreadFactory to create new threads when needed. + * @param threadFactory the factory to use when creating new threads + * @return the newly created thread pool + * @throws NullPointerException if threadFactory is null + */ + public static ExecutorService newCachedThreadPool(ThreadFactory threadFactory) { + return new ThreadPoolExecutor(0, Integer.MAX_VALUE, + 60L, TimeUnit.SECONDS, + new SynchronousQueue(), + threadFactory); + } + + /** + * Creates a single-threaded executor that can schedule commands + * to run after a given delay, or to execute periodically. + * (Note however that if this single + * thread terminates due to a failure during execution prior to + * shutdown, a new one will take its place if needed to execute + * subsequent tasks.) Tasks are guaranteed to execute + * sequentially, and no more than one task will be active at any + * given time. Unlike the otherwise equivalent + * newScheduledThreadPool(1) the returned executor is + * guaranteed not to be reconfigurable to use additional threads. + * @return the newly created scheduled executor + */ + public static ScheduledExecutorService newSingleThreadScheduledExecutor() { + return new DelegatedScheduledExecutorService + (new ScheduledThreadPoolExecutor(1)); + } + + /** + * Creates a single-threaded executor that can schedule commands + * to run after a given delay, or to execute periodically. (Note + * however that if this single thread terminates due to a failure + * during execution prior to shutdown, a new one will take its + * place if needed to execute subsequent tasks.) Tasks are + * guaranteed to execute sequentially, and no more than one task + * will be active at any given time. Unlike the otherwise + * equivalent newScheduledThreadPool(1, threadFactory) + * the returned executor is guaranteed not to be reconfigurable to + * use additional threads. + * @param threadFactory the factory to use when creating new + * threads + * @return a newly created scheduled executor + * @throws NullPointerException if threadFactory is null + */ + public static ScheduledExecutorService newSingleThreadScheduledExecutor(ThreadFactory threadFactory) { + return new DelegatedScheduledExecutorService + (new ScheduledThreadPoolExecutor(1, threadFactory)); + } + + /** + * Creates a thread pool that can schedule commands to run after a + * given delay, or to execute periodically. + * @param corePoolSize the number of threads to keep in the pool, + * even if they are idle. + * @return a newly created scheduled thread pool + * @throws IllegalArgumentException if corePoolSize < 0 + */ + public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) { + return new ScheduledThreadPoolExecutor(corePoolSize); + } + + /** + * Creates a thread pool that can schedule commands to run after a + * given delay, or to execute periodically. + * @param corePoolSize the number of threads to keep in the pool, + * even if they are idle. + * @param threadFactory the factory to use when the executor + * creates a new thread. + * @return a newly created scheduled thread pool + * @throws IllegalArgumentException if corePoolSize < 0 + * @throws NullPointerException if threadFactory is null + */ + public static ScheduledExecutorService newScheduledThreadPool( + int corePoolSize, ThreadFactory threadFactory) { + return new ScheduledThreadPoolExecutor(corePoolSize, threadFactory); + } + + + /** + * Returns an object that delegates all defined {@link + * ExecutorService} methods to the given executor, but not any + * other methods that might otherwise be accessible using + * casts. This provides a way to safely "freeze" configuration and + * disallow tuning of a given concrete implementation. + * @param executor the underlying implementation + * @return an ExecutorService instance + * @throws NullPointerException if executor null + */ + public static ExecutorService unconfigurableExecutorService(ExecutorService executor) { + if (executor == null) + throw new NullPointerException(); + return new DelegatedExecutorService(executor); + } + + /** + * Returns an object that delegates all defined {@link + * ScheduledExecutorService} methods to the given executor, but + * not any other methods that might otherwise be accessible using + * casts. This provides a way to safely "freeze" configuration and + * disallow tuning of a given concrete implementation. + * @param executor the underlying implementation + * @return a ScheduledExecutorService instance + * @throws NullPointerException if executor null + */ + public static ScheduledExecutorService unconfigurableScheduledExecutorService(ScheduledExecutorService executor) { + if (executor == null) + throw new NullPointerException(); + return new DelegatedScheduledExecutorService(executor); + } + + /** + * Returns a default thread factory used to create new threads. + * This factory creates all new threads used by an Executor in the + * same {@link ThreadGroup}. If there is a {@link + * java.lang.SecurityManager}, it uses the group of {@link + * System#getSecurityManager}, else the group of the thread + * invoking this defaultThreadFactory method. Each new + * thread is created as a non-daemon thread with priority set to + * the smaller of Thread.NORM_PRIORITY and the maximum + * priority permitted in the thread group. New threads have names + * accessible via {@link Thread#getName} of + * pool-N-thread-M, where N is the sequence + * number of this factory, and M is the sequence number + * of the thread created by this factory. + * @return a thread factory + */ + public static ThreadFactory defaultThreadFactory() { + return new DefaultThreadFactory(); + } + + /** + * Returns a thread factory used to create new threads that + * have the same permissions as the current thread. + * This factory creates threads with the same settings as {@link + * Executors#defaultThreadFactory}, additionally setting the + * AccessControlContext and contextClassLoader of new threads to + * be the same as the thread invoking this + * privilegedThreadFactory method. A new + * privilegedThreadFactory can be created within an + * {@link AccessController#doPrivileged} action setting the + * current thread's access control context to create threads with + * the selected permission settings holding within that action. + * + *

Note that while tasks running within such threads will have + * the same access control and class loader settings as the + * current thread, they need not have the same {@link + * java.lang.ThreadLocal} or {@link + * java.lang.InheritableThreadLocal} values. If necessary, + * particular values of thread locals can be set or reset before + * any task runs in {@link ThreadPoolExecutor} subclasses using + * {@link ThreadPoolExecutor#beforeExecute}. Also, if it is + * necessary to initialize worker threads to have the same + * InheritableThreadLocal settings as some other designated + * thread, you can create a custom ThreadFactory in which that + * thread waits for and services requests to create others that + * will inherit its values. + * + * @return a thread factory + * @throws AccessControlException if the current access control + * context does not have permission to both get and set context + * class loader. + */ + public static ThreadFactory privilegedThreadFactory() { + return new PrivilegedThreadFactory(); + } + + /** + * Returns a {@link Callable} object that, when + * called, runs the given task and returns the given result. This + * can be useful when applying methods requiring a + * Callable to an otherwise resultless action. + * @param task the task to run + * @param result the result to return + * @return a callable object + * @throws NullPointerException if task null + */ + public static Callable callable(Runnable task, T result) { + if (task == null) + throw new NullPointerException(); + return new RunnableAdapter(task, result); + } + + /** + * Returns a {@link Callable} object that, when + * called, runs the given task and returns null. + * @param task the task to run + * @return a callable object + * @throws NullPointerException if task null + */ + public static Callable callable(Runnable task) { + if (task == null) + throw new NullPointerException(); + return new RunnableAdapter(task, null); + } + + /** + * Returns a {@link Callable} object that, when + * called, runs the given privileged action and returns its result. + * @param action the privileged action to run + * @return a callable object + * @throws NullPointerException if action null + */ + public static Callable callable(final PrivilegedAction action) { + if (action == null) + throw new NullPointerException(); + return new Callable() { + public Object call() { return action.run(); }}; + } + + /** + * Returns a {@link Callable} object that, when + * called, runs the given privileged exception action and returns + * its result. + * @param action the privileged exception action to run + * @return a callable object + * @throws NullPointerException if action null + */ + public static Callable callable(final PrivilegedExceptionAction action) { + if (action == null) + throw new NullPointerException(); + return new Callable() { + public Object call() throws Exception { return action.run(); }}; + } + + /** + * Returns a {@link Callable} object that will, when + * called, execute the given callable under the current + * access control context. This method should normally be + * invoked within an {@link AccessController#doPrivileged} action + * to create callables that will, if possible, execute under the + * selected permission settings holding within that action; or if + * not possible, throw an associated {@link + * AccessControlException}. + * @param callable the underlying task + * @return a callable object + * @throws NullPointerException if callable null + * + */ + public static Callable privilegedCallable(Callable callable) { + if (callable == null) + throw new NullPointerException(); + return new PrivilegedCallable(callable); + } + + /** + * Returns a {@link Callable} object that will, when + * called, execute the given callable under the current + * access control context, with the current context class loader + * as the context class loader. This method should normally be + * invoked within an {@link AccessController#doPrivileged} action + * to create callables that will, if possible, execute under the + * selected permission settings holding within that action; or if + * not possible, throw an associated {@link + * AccessControlException}. + * @param callable the underlying task + * + * @return a callable object + * @throws NullPointerException if callable null + * @throws AccessControlException if the current access control + * context does not have permission to both set and get context + * class loader. + */ + public static Callable privilegedCallableUsingCurrentClassLoader(Callable callable) { + if (callable == null) + throw new NullPointerException(); + return new PrivilegedCallableUsingCurrentClassLoader(callable); + } + + // Non-public classes supporting the public methods + + /** + * A callable that runs given task and returns given result + */ + static final class RunnableAdapter implements Callable { + final Runnable task; + final T result; + RunnableAdapter(Runnable task, T result) { + this.task = task; + this.result = result; + } + public T call() { + task.run(); + return result; + } + } + + /** + * A callable that runs under established access control settings + */ + static final class PrivilegedCallable implements Callable { + private final AccessControlContext acc; + private final Callable task; + private T result; + private Exception exception; + PrivilegedCallable(Callable task) { + this.task = task; + this.acc = AccessController.getContext(); + } + + public T call() throws Exception { + AccessController.doPrivileged(new PrivilegedAction() { + public T run() { + try { + result = task.call(); + } catch (Exception ex) { + exception = ex; + } + return null; + } + }, acc); + if (exception != null) + throw exception; + else + return result; + } + } + + /** + * A callable that runs under established access control settings and + * current ClassLoader + */ + static final class PrivilegedCallableUsingCurrentClassLoader implements Callable { + private final ClassLoader ccl; + private final AccessControlContext acc; + private final Callable task; + private T result; + private Exception exception; + PrivilegedCallableUsingCurrentClassLoader(Callable task) { + this.task = task; + this.ccl = Thread.currentThread().getContextClassLoader(); + this.acc = AccessController.getContext(); + acc.checkPermission(new RuntimePermission("getContextClassLoader")); + acc.checkPermission(new RuntimePermission("setContextClassLoader")); + } + + public T call() throws Exception { + AccessController.doPrivileged(new PrivilegedAction() { + public T run() { + ClassLoader savedcl = null; + Thread t = Thread.currentThread(); + try { + ClassLoader cl = t.getContextClassLoader(); + if (ccl != cl) { + t.setContextClassLoader(ccl); + savedcl = cl; + } + result = task.call(); + } catch (Exception ex) { + exception = ex; + } finally { + if (savedcl != null) + t.setContextClassLoader(savedcl); + } + return null; + } + }, acc); + if (exception != null) + throw exception; + else + return result; + } + } + + /** + * The default thread factory + */ + static class DefaultThreadFactory implements ThreadFactory { + static final AtomicInteger poolNumber = new AtomicInteger(1); + final ThreadGroup group; + final AtomicInteger threadNumber = new AtomicInteger(1); + final String namePrefix; + + DefaultThreadFactory() { + SecurityManager s = System.getSecurityManager(); + group = (s != null)? s.getThreadGroup() : + Thread.currentThread().getThreadGroup(); + namePrefix = "pool-" + + poolNumber.getAndIncrement() + + "-thread-"; + } + + public Thread newThread(Runnable r) { + Thread t = new Thread(group, r, + namePrefix + threadNumber.getAndIncrement(), + 0); + if (t.isDaemon()) + t.setDaemon(false); + if (t.getPriority() != Thread.NORM_PRIORITY) + t.setPriority(Thread.NORM_PRIORITY); + return t; + } + } + + /** + * Thread factory capturing access control and class loader + */ + static class PrivilegedThreadFactory extends DefaultThreadFactory { + private final ClassLoader ccl; + private final AccessControlContext acc; + + PrivilegedThreadFactory() { + super(); + this.ccl = Thread.currentThread().getContextClassLoader(); + this.acc = AccessController.getContext(); + acc.checkPermission(new RuntimePermission("setContextClassLoader")); + } + + public Thread newThread(final Runnable r) { + return super.newThread(new Runnable() { + public void run() { + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + Thread.currentThread().setContextClassLoader(ccl); + r.run(); + return null; + } + }, acc); + } + }); + } + + } + + /** + * A wrapper class that exposes only the ExecutorService methods + * of an ExecutorService implementation. + */ + static class DelegatedExecutorService extends AbstractExecutorService { + private final ExecutorService e; + DelegatedExecutorService(ExecutorService executor) { e = executor; } + public void execute(Runnable command) { e.execute(command); } + public void shutdown() { e.shutdown(); } + public List shutdownNow() { return e.shutdownNow(); } + public boolean isShutdown() { return e.isShutdown(); } + public boolean isTerminated() { return e.isTerminated(); } + public boolean awaitTermination(long timeout, TimeUnit unit) + throws InterruptedException { + return e.awaitTermination(timeout, unit); + } + public Future submit(Runnable task) { + return e.submit(task); + } + public Future submit(Callable task) { + return e.submit(task); + } + public Future submit(Runnable task, T result) { + return e.submit(task, result); + } + public List> invokeAll(Collection> tasks) + throws InterruptedException { + return e.invokeAll(tasks); + } + public List> invokeAll(Collection> tasks, + long timeout, TimeUnit unit) + throws InterruptedException { + return e.invokeAll(tasks, timeout, unit); + } + public T invokeAny(Collection> tasks) + throws InterruptedException, ExecutionException { + return e.invokeAny(tasks); + } + public T invokeAny(Collection> tasks, + long timeout, TimeUnit unit) + throws InterruptedException, ExecutionException, TimeoutException { + return e.invokeAny(tasks, timeout, unit); + } + } + + static class FinalizableDelegatedExecutorService + extends DelegatedExecutorService { + FinalizableDelegatedExecutorService(ExecutorService executor) { + super(executor); + } + protected void finalize() { + super.shutdown(); + } + } + + /** + * A wrapper class that exposes only the ScheduledExecutorService + * methods of a ScheduledExecutorService implementation. + */ + static class DelegatedScheduledExecutorService + extends DelegatedExecutorService + implements ScheduledExecutorService { + private final ScheduledExecutorService e; + DelegatedScheduledExecutorService(ScheduledExecutorService executor) { + super(executor); + e = executor; + } + public ScheduledFuture schedule(Runnable command, long delay, TimeUnit unit) { + return e.schedule(command, delay, unit); + } + public ScheduledFuture schedule(Callable callable, long delay, TimeUnit unit) { + return e.schedule(callable, delay, unit); + } + public ScheduledFuture scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { + return e.scheduleAtFixedRate(command, initialDelay, period, unit); + } + public ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) { + return e.scheduleWithFixedDelay(command, initialDelay, delay, unit); + } + } + + + /** Cannot instantiate. */ + private Executors() {} +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/Future.java b/libjava/classpath/external/jsr166/java/util/concurrent/Future.java new file mode 100644 index 00000000000..0459ee453f0 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/Future.java @@ -0,0 +1,142 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A Future represents the result of an asynchronous + * computation. Methods are provided to check if the computation is + * complete, to wait for its completion, and to retrieve the result of + * the computation. The result can only be retrieved using method + * get when the computation has completed, blocking if + * necessary until it is ready. Cancellation is performed by the + * cancel method. Additional methods are provided to + * determine if the task completed normally or was cancelled. Once a + * computation has completed, the computation cannot be cancelled. + * If you would like to use a Future for the sake + * of cancellability but not provide a usable result, you can + * declare types of the form Future<?> and + * return null as a result of the underlying task. + * + *

+ * Sample Usage (Note that the following classes are all + * made-up.)

+ *

+ * interface ArchiveSearcher { String search(String target); }
+ * class App {
+ *   ExecutorService executor = ...
+ *   ArchiveSearcher searcher = ...
+ *   void showSearch(final String target)
+ *       throws InterruptedException {
+ *     Future<String> future
+ *       = executor.submit(new Callable<String>() {
+ *         public String call() {
+ *             return searcher.search(target);
+ *         }});
+ *     displayOtherThings(); // do other things while searching
+ *     try {
+ *       displayText(future.get()); // use future
+ *     } catch (ExecutionException ex) { cleanup(); return; }
+ *   }
+ * }
+ * 
+ * + * The {@link FutureTask} class is an implementation of Future that + * implements Runnable, and so may be executed by an Executor. + * For example, the above construction with submit could be replaced by: + *
+ *     FutureTask<String> future =
+ *       new FutureTask<String>(new Callable<String>() {
+ *         public String call() {
+ *           return searcher.search(target);
+ *       }});
+ *     executor.execute(future);
+ * 
+ * + *

Memory consistency effects: Actions taken by the asynchronous computation + * happen-before + * actions following the corresponding {@code Future.get()} in another thread. + * + * @see FutureTask + * @see Executor + * @since 1.5 + * @author Doug Lea + * @param The result type returned by this Future's get method + */ +public interface Future { + + /** + * Attempts to cancel execution of this task. This attempt will + * fail if the task has already completed, has already been cancelled, + * or could not be cancelled for some other reason. If successful, + * and this task has not started when cancel is called, + * this task should never run. If the task has already started, + * then the mayInterruptIfRunning parameter determines + * whether the thread executing this task should be interrupted in + * an attempt to stop the task. + * + *

After this method returns, subsequent calls to {@link #isDone} will + * always return true. Subsequent calls to {@link #isCancelled} + * will always return true if this method returned true. + * + * @param mayInterruptIfRunning true if the thread executing this + * task should be interrupted; otherwise, in-progress tasks are allowed + * to complete + * @return false if the task could not be cancelled, + * typically because it has already completed normally; + * true otherwise + */ + boolean cancel(boolean mayInterruptIfRunning); + + /** + * Returns true if this task was cancelled before it completed + * normally. + * + * @return true if this task was cancelled before it completed + */ + boolean isCancelled(); + + /** + * Returns true if this task completed. + * + * Completion may be due to normal termination, an exception, or + * cancellation -- in all of these cases, this method will return + * true. + * + * @return true if this task completed + */ + boolean isDone(); + + /** + * Waits if necessary for the computation to complete, and then + * retrieves its result. + * + * @return the computed result + * @throws CancellationException if the computation was cancelled + * @throws ExecutionException if the computation threw an + * exception + * @throws InterruptedException if the current thread was interrupted + * while waiting + */ + V get() throws InterruptedException, ExecutionException; + + /** + * Waits if necessary for at most the given time for the computation + * to complete, and then retrieves its result, if available. + * + * @param timeout the maximum time to wait + * @param unit the time unit of the timeout argument + * @return the computed result + * @throws CancellationException if the computation was cancelled + * @throws ExecutionException if the computation threw an + * exception + * @throws InterruptedException if the current thread was interrupted + * while waiting + * @throws TimeoutException if the wait timed out + */ + V get(long timeout, TimeUnit unit) + throws InterruptedException, ExecutionException, TimeoutException; +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java b/libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java new file mode 100644 index 00000000000..bbe49d7aed0 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/FutureTask.java @@ -0,0 +1,325 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.locks.*; + +/** + * A cancellable asynchronous computation. This class provides a base + * implementation of {@link Future}, with methods to start and cancel + * a computation, query to see if the computation is complete, and + * retrieve the result of the computation. The result can only be + * retrieved when the computation has completed; the get + * method will block if the computation has not yet completed. Once + * the computation has completed, the computation cannot be restarted + * or cancelled. + * + *

A FutureTask can be used to wrap a {@link Callable} or + * {@link java.lang.Runnable} object. Because FutureTask + * implements Runnable, a FutureTask can be + * submitted to an {@link Executor} for execution. + * + *

In addition to serving as a standalone class, this class provides + * protected functionality that may be useful when creating + * customized task classes. + * + * @since 1.5 + * @author Doug Lea + * @param The result type returned by this FutureTask's get method + */ +public class FutureTask implements RunnableFuture { + /** Synchronization control for FutureTask */ + private final Sync sync; + + /** + * Creates a FutureTask that will upon running, execute the + * given Callable. + * + * @param callable the callable task + * @throws NullPointerException if callable is null + */ + public FutureTask(Callable callable) { + if (callable == null) + throw new NullPointerException(); + sync = new Sync(callable); + } + + /** + * Creates a FutureTask that will upon running, execute the + * given Runnable, and arrange that get will return the + * given result on successful completion. + * + * @param runnable the runnable task + * @param result the result to return on successful completion. If + * you don't need a particular result, consider using + * constructions of the form: + * Future<?> f = new FutureTask<Object>(runnable, null) + * @throws NullPointerException if runnable is null + */ + public FutureTask(Runnable runnable, V result) { + sync = new Sync(Executors.callable(runnable, result)); + } + + public boolean isCancelled() { + return sync.innerIsCancelled(); + } + + public boolean isDone() { + return sync.innerIsDone(); + } + + public boolean cancel(boolean mayInterruptIfRunning) { + return sync.innerCancel(mayInterruptIfRunning); + } + + /** + * @throws CancellationException {@inheritDoc} + */ + public V get() throws InterruptedException, ExecutionException { + return sync.innerGet(); + } + + /** + * @throws CancellationException {@inheritDoc} + */ + public V get(long timeout, TimeUnit unit) + throws InterruptedException, ExecutionException, TimeoutException { + return sync.innerGet(unit.toNanos(timeout)); + } + + /** + * Protected method invoked when this task transitions to state + * isDone (whether normally or via cancellation). The + * default implementation does nothing. Subclasses may override + * this method to invoke completion callbacks or perform + * bookkeeping. Note that you can query status inside the + * implementation of this method to determine whether this task + * has been cancelled. + */ + protected void done() { } + + /** + * Sets the result of this Future to the given value unless + * this future has already been set or has been cancelled. + * This method is invoked internally by the run method + * upon successful completion of the computation. + * @param v the value + */ + protected void set(V v) { + sync.innerSet(v); + } + + /** + * Causes this future to report an ExecutionException + * with the given throwable as its cause, unless this Future has + * already been set or has been cancelled. + * This method is invoked internally by the run method + * upon failure of the computation. + * @param t the cause of failure + */ + protected void setException(Throwable t) { + sync.innerSetException(t); + } + + // The following (duplicated) doc comment can be removed once + // + // 6270645: Javadoc comments should be inherited from most derived + // superinterface or superclass + // is fixed. + /** + * Sets this Future to the result of its computation + * unless it has been cancelled. + */ + public void run() { + sync.innerRun(); + } + + /** + * Executes the computation without setting its result, and then + * resets this Future to initial state, failing to do so if the + * computation encounters an exception or is cancelled. This is + * designed for use with tasks that intrinsically execute more + * than once. + * @return true if successfully run and reset + */ + protected boolean runAndReset() { + return sync.innerRunAndReset(); + } + + /** + * Synchronization control for FutureTask. Note that this must be + * a non-static inner class in order to invoke the protected + * done method. For clarity, all inner class support + * methods are same as outer, prefixed with "inner". + * + * Uses AQS sync state to represent run status + */ + private final class Sync extends AbstractQueuedSynchronizer { + private static final long serialVersionUID = -7828117401763700385L; + + /** State value representing that task is running */ + private static final int RUNNING = 1; + /** State value representing that task ran */ + private static final int RAN = 2; + /** State value representing that task was cancelled */ + private static final int CANCELLED = 4; + + /** The underlying callable */ + private final Callable callable; + /** The result to return from get() */ + private V result; + /** The exception to throw from get() */ + private Throwable exception; + + /** + * The thread running task. When nulled after set/cancel, this + * indicates that the results are accessible. Must be + * volatile, to ensure visibility upon completion. + */ + private volatile Thread runner; + + Sync(Callable callable) { + this.callable = callable; + } + + private boolean ranOrCancelled(int state) { + return (state & (RAN | CANCELLED)) != 0; + } + + /** + * Implements AQS base acquire to succeed if ran or cancelled + */ + protected int tryAcquireShared(int ignore) { + return innerIsDone()? 1 : -1; + } + + /** + * Implements AQS base release to always signal after setting + * final done status by nulling runner thread. + */ + protected boolean tryReleaseShared(int ignore) { + runner = null; + return true; + } + + boolean innerIsCancelled() { + return getState() == CANCELLED; + } + + boolean innerIsDone() { + return ranOrCancelled(getState()) && runner == null; + } + + V innerGet() throws InterruptedException, ExecutionException { + acquireSharedInterruptibly(0); + if (getState() == CANCELLED) + throw new CancellationException(); + if (exception != null) + throw new ExecutionException(exception); + return result; + } + + V innerGet(long nanosTimeout) throws InterruptedException, ExecutionException, TimeoutException { + if (!tryAcquireSharedNanos(0, nanosTimeout)) + throw new TimeoutException(); + if (getState() == CANCELLED) + throw new CancellationException(); + if (exception != null) + throw new ExecutionException(exception); + return result; + } + + void innerSet(V v) { + for (;;) { + int s = getState(); + if (s == RAN) + return; + if (s == CANCELLED) { + // aggressively release to set runner to null, + // in case we are racing with a cancel request + // that will try to interrupt runner + releaseShared(0); + return; + } + if (compareAndSetState(s, RAN)) { + result = v; + releaseShared(0); + done(); + return; + } + } + } + + void innerSetException(Throwable t) { + for (;;) { + int s = getState(); + if (s == RAN) + return; + if (s == CANCELLED) { + // aggressively release to set runner to null, + // in case we are racing with a cancel request + // that will try to interrupt runner + releaseShared(0); + return; + } + if (compareAndSetState(s, RAN)) { + exception = t; + result = null; + releaseShared(0); + done(); + return; + } + } + } + + boolean innerCancel(boolean mayInterruptIfRunning) { + for (;;) { + int s = getState(); + if (ranOrCancelled(s)) + return false; + if (compareAndSetState(s, CANCELLED)) + break; + } + if (mayInterruptIfRunning) { + Thread r = runner; + if (r != null) + r.interrupt(); + } + releaseShared(0); + done(); + return true; + } + + void innerRun() { + if (!compareAndSetState(0, RUNNING)) + return; + try { + runner = Thread.currentThread(); + if (getState() == RUNNING) // recheck after setting thread + innerSet(callable.call()); + else + releaseShared(0); // cancel + } catch (Throwable ex) { + innerSetException(ex); + } + } + + boolean innerRunAndReset() { + if (!compareAndSetState(0, RUNNING)) + return false; + try { + runner = Thread.currentThread(); + if (getState() == RUNNING) + callable.call(); // don't set result + runner = null; + return compareAndSetState(RUNNING, 0); + } catch (Throwable ex) { + innerSetException(ex); + return false; + } + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java b/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java new file mode 100644 index 00000000000..91acccfbe8c --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java @@ -0,0 +1,1021 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; +import java.util.concurrent.locks.*; + +/** + * An optionally-bounded {@linkplain BlockingDeque blocking deque} based on + * linked nodes. + * + *

The optional capacity bound constructor argument serves as a + * way to prevent excessive expansion. The capacity, if unspecified, + * is equal to {@link Integer#MAX_VALUE}. Linked nodes are + * dynamically created upon each insertion unless this would bring the + * deque above capacity. + * + *

Most operations run in constant time (ignoring time spent + * blocking). Exceptions include {@link #remove(Object) remove}, + * {@link #removeFirstOccurrence removeFirstOccurrence}, {@link + * #removeLastOccurrence removeLastOccurrence}, {@link #contains + * contains}, {@link #iterator iterator.remove()}, and the bulk + * operations, all of which run in linear time. + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.6 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public class LinkedBlockingDeque + extends AbstractQueue + implements BlockingDeque, java.io.Serializable { + + /* + * Implemented as a simple doubly-linked list protected by a + * single lock and using conditions to manage blocking. + */ + + /* + * We have "diamond" multiple interface/abstract class inheritance + * here, and that introduces ambiguities. Often we want the + * BlockingDeque javadoc combined with the AbstractQueue + * implementation, so a lot of method specs are duplicated here. + */ + + private static final long serialVersionUID = -387911632671998426L; + + /** Doubly-linked list node class */ + static final class Node { + E item; + Node prev; + Node next; + Node(E x, Node p, Node n) { + item = x; + prev = p; + next = n; + } + } + + /** Pointer to first node */ + private transient Node first; + /** Pointer to last node */ + private transient Node last; + /** Number of items in the deque */ + private transient int count; + /** Maximum number of items in the deque */ + private final int capacity; + /** Main lock guarding all access */ + private final ReentrantLock lock = new ReentrantLock(); + /** Condition for waiting takes */ + private final Condition notEmpty = lock.newCondition(); + /** Condition for waiting puts */ + private final Condition notFull = lock.newCondition(); + + /** + * Creates a LinkedBlockingDeque with a capacity of + * {@link Integer#MAX_VALUE}. + */ + public LinkedBlockingDeque() { + this(Integer.MAX_VALUE); + } + + /** + * Creates a LinkedBlockingDeque with the given (fixed) capacity. + * + * @param capacity the capacity of this deque + * @throws IllegalArgumentException if capacity is less than 1 + */ + public LinkedBlockingDeque(int capacity) { + if (capacity <= 0) throw new IllegalArgumentException(); + this.capacity = capacity; + } + + /** + * Creates a LinkedBlockingDeque with a capacity of + * {@link Integer#MAX_VALUE}, initially containing the elements of + * the given collection, added in traversal order of the + * collection's iterator. + * + * @param c the collection of elements to initially contain + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public LinkedBlockingDeque(Collection c) { + this(Integer.MAX_VALUE); + for (E e : c) + add(e); + } + + + // Basic linking and unlinking operations, called only while holding lock + + /** + * Links e as first element, or returns false if full. + */ + private boolean linkFirst(E e) { + if (count >= capacity) + return false; + ++count; + Node f = first; + Node x = new Node(e, null, f); + first = x; + if (last == null) + last = x; + else + f.prev = x; + notEmpty.signal(); + return true; + } + + /** + * Links e as last element, or returns false if full. + */ + private boolean linkLast(E e) { + if (count >= capacity) + return false; + ++count; + Node l = last; + Node x = new Node(e, l, null); + last = x; + if (first == null) + first = x; + else + l.next = x; + notEmpty.signal(); + return true; + } + + /** + * Removes and returns first element, or null if empty. + */ + private E unlinkFirst() { + Node f = first; + if (f == null) + return null; + Node n = f.next; + first = n; + if (n == null) + last = null; + else + n.prev = null; + --count; + notFull.signal(); + return f.item; + } + + /** + * Removes and returns last element, or null if empty. + */ + private E unlinkLast() { + Node l = last; + if (l == null) + return null; + Node p = l.prev; + last = p; + if (p == null) + first = null; + else + p.next = null; + --count; + notFull.signal(); + return l.item; + } + + /** + * Unlink e + */ + private void unlink(Node x) { + Node p = x.prev; + Node n = x.next; + if (p == null) { + if (n == null) + first = last = null; + else { + n.prev = null; + first = n; + } + } else if (n == null) { + p.next = null; + last = p; + } else { + p.next = n; + n.prev = p; + } + --count; + notFull.signalAll(); + } + + // BlockingDeque methods + + /** + * @throws IllegalStateException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public void addFirst(E e) { + if (!offerFirst(e)) + throw new IllegalStateException("Deque full"); + } + + /** + * @throws IllegalStateException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public void addLast(E e) { + if (!offerLast(e)) + throw new IllegalStateException("Deque full"); + } + + /** + * @throws NullPointerException {@inheritDoc} + */ + public boolean offerFirst(E e) { + if (e == null) throw new NullPointerException(); + lock.lock(); + try { + return linkFirst(e); + } finally { + lock.unlock(); + } + } + + /** + * @throws NullPointerException {@inheritDoc} + */ + public boolean offerLast(E e) { + if (e == null) throw new NullPointerException(); + lock.lock(); + try { + return linkLast(e); + } finally { + lock.unlock(); + } + } + + /** + * @throws NullPointerException {@inheritDoc} + * @throws InterruptedException {@inheritDoc} + */ + public void putFirst(E e) throws InterruptedException { + if (e == null) throw new NullPointerException(); + lock.lock(); + try { + while (!linkFirst(e)) + notFull.await(); + } finally { + lock.unlock(); + } + } + + /** + * @throws NullPointerException {@inheritDoc} + * @throws InterruptedException {@inheritDoc} + */ + public void putLast(E e) throws InterruptedException { + if (e == null) throw new NullPointerException(); + lock.lock(); + try { + while (!linkLast(e)) + notFull.await(); + } finally { + lock.unlock(); + } + } + + /** + * @throws NullPointerException {@inheritDoc} + * @throws InterruptedException {@inheritDoc} + */ + public boolean offerFirst(E e, long timeout, TimeUnit unit) + throws InterruptedException { + if (e == null) throw new NullPointerException(); + long nanos = unit.toNanos(timeout); + lock.lockInterruptibly(); + try { + for (;;) { + if (linkFirst(e)) + return true; + if (nanos <= 0) + return false; + nanos = notFull.awaitNanos(nanos); + } + } finally { + lock.unlock(); + } + } + + /** + * @throws NullPointerException {@inheritDoc} + * @throws InterruptedException {@inheritDoc} + */ + public boolean offerLast(E e, long timeout, TimeUnit unit) + throws InterruptedException { + if (e == null) throw new NullPointerException(); + long nanos = unit.toNanos(timeout); + lock.lockInterruptibly(); + try { + for (;;) { + if (linkLast(e)) + return true; + if (nanos <= 0) + return false; + nanos = notFull.awaitNanos(nanos); + } + } finally { + lock.unlock(); + } + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E removeFirst() { + E x = pollFirst(); + if (x == null) throw new NoSuchElementException(); + return x; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E removeLast() { + E x = pollLast(); + if (x == null) throw new NoSuchElementException(); + return x; + } + + public E pollFirst() { + lock.lock(); + try { + return unlinkFirst(); + } finally { + lock.unlock(); + } + } + + public E pollLast() { + lock.lock(); + try { + return unlinkLast(); + } finally { + lock.unlock(); + } + } + + public E takeFirst() throws InterruptedException { + lock.lock(); + try { + E x; + while ( (x = unlinkFirst()) == null) + notEmpty.await(); + return x; + } finally { + lock.unlock(); + } + } + + public E takeLast() throws InterruptedException { + lock.lock(); + try { + E x; + while ( (x = unlinkLast()) == null) + notEmpty.await(); + return x; + } finally { + lock.unlock(); + } + } + + public E pollFirst(long timeout, TimeUnit unit) + throws InterruptedException { + long nanos = unit.toNanos(timeout); + lock.lockInterruptibly(); + try { + for (;;) { + E x = unlinkFirst(); + if (x != null) + return x; + if (nanos <= 0) + return null; + nanos = notEmpty.awaitNanos(nanos); + } + } finally { + lock.unlock(); + } + } + + public E pollLast(long timeout, TimeUnit unit) + throws InterruptedException { + long nanos = unit.toNanos(timeout); + lock.lockInterruptibly(); + try { + for (;;) { + E x = unlinkLast(); + if (x != null) + return x; + if (nanos <= 0) + return null; + nanos = notEmpty.awaitNanos(nanos); + } + } finally { + lock.unlock(); + } + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E getFirst() { + E x = peekFirst(); + if (x == null) throw new NoSuchElementException(); + return x; + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E getLast() { + E x = peekLast(); + if (x == null) throw new NoSuchElementException(); + return x; + } + + public E peekFirst() { + lock.lock(); + try { + return (first == null) ? null : first.item; + } finally { + lock.unlock(); + } + } + + public E peekLast() { + lock.lock(); + try { + return (last == null) ? null : last.item; + } finally { + lock.unlock(); + } + } + + public boolean removeFirstOccurrence(Object o) { + if (o == null) return false; + lock.lock(); + try { + for (Node p = first; p != null; p = p.next) { + if (o.equals(p.item)) { + unlink(p); + return true; + } + } + return false; + } finally { + lock.unlock(); + } + } + + public boolean removeLastOccurrence(Object o) { + if (o == null) return false; + lock.lock(); + try { + for (Node p = last; p != null; p = p.prev) { + if (o.equals(p.item)) { + unlink(p); + return true; + } + } + return false; + } finally { + lock.unlock(); + } + } + + // BlockingQueue methods + + /** + * Inserts the specified element at the end of this deque unless it would + * violate capacity restrictions. When using a capacity-restricted deque, + * it is generally preferable to use method {@link #offer(Object) offer}. + * + *

This method is equivalent to {@link #addLast}. + * + * @throws IllegalStateException if the element cannot be added at this + * time due to capacity restrictions + * @throws NullPointerException if the specified element is null + */ + public boolean add(E e) { + addLast(e); + return true; + } + + /** + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + return offerLast(e); + } + + /** + * @throws NullPointerException {@inheritDoc} + * @throws InterruptedException {@inheritDoc} + */ + public void put(E e) throws InterruptedException { + putLast(e); + } + + /** + * @throws NullPointerException {@inheritDoc} + * @throws InterruptedException {@inheritDoc} + */ + public boolean offer(E e, long timeout, TimeUnit unit) + throws InterruptedException { + return offerLast(e, timeout, unit); + } + + /** + * Retrieves and removes the head of the queue represented by this deque. + * This method differs from {@link #poll poll} only in that it throws an + * exception if this deque is empty. + * + *

This method is equivalent to {@link #removeFirst() removeFirst}. + * + * @return the head of the queue represented by this deque + * @throws NoSuchElementException if this deque is empty + */ + public E remove() { + return removeFirst(); + } + + public E poll() { + return pollFirst(); + } + + public E take() throws InterruptedException { + return takeFirst(); + } + + public E poll(long timeout, TimeUnit unit) throws InterruptedException { + return pollFirst(timeout, unit); + } + + /** + * Retrieves, but does not remove, the head of the queue represented by + * this deque. This method differs from {@link #peek peek} only in that + * it throws an exception if this deque is empty. + * + *

This method is equivalent to {@link #getFirst() getFirst}. + * + * @return the head of the queue represented by this deque + * @throws NoSuchElementException if this deque is empty + */ + public E element() { + return getFirst(); + } + + public E peek() { + return peekFirst(); + } + + /** + * Returns the number of additional elements that this deque can ideally + * (in the absence of memory or resource constraints) accept without + * blocking. This is always equal to the initial capacity of this deque + * less the current size of this deque. + * + *

Note that you cannot always tell if an attempt to insert + * an element will succeed by inspecting remainingCapacity + * because it may be the case that another thread is about to + * insert or remove an element. + */ + public int remainingCapacity() { + lock.lock(); + try { + return capacity - count; + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + lock.lock(); + try { + for (Node p = first; p != null; p = p.next) + c.add(p.item); + int n = count; + count = 0; + first = last = null; + notFull.signalAll(); + return n; + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c, int maxElements) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + lock.lock(); + try { + int n = 0; + while (n < maxElements && first != null) { + c.add(first.item); + first.prev = null; + first = first.next; + --count; + ++n; + } + if (first == null) + last = null; + notFull.signalAll(); + return n; + } finally { + lock.unlock(); + } + } + + // Stack methods + + /** + * @throws IllegalStateException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public void push(E e) { + addFirst(e); + } + + /** + * @throws NoSuchElementException {@inheritDoc} + */ + public E pop() { + return removeFirst(); + } + + // Collection methods + + /** + * Removes the first occurrence of the specified element from this deque. + * If the deque does not contain the element, it is unchanged. + * More formally, removes the first element e such that + * o.equals(e) (if such an element exists). + * Returns true if this deque contained the specified element + * (or equivalently, if this deque changed as a result of the call). + * + *

This method is equivalent to + * {@link #removeFirstOccurrence(Object) removeFirstOccurrence}. + * + * @param o element to be removed from this deque, if present + * @return true if this deque changed as a result of the call + */ + public boolean remove(Object o) { + return removeFirstOccurrence(o); + } + + /** + * Returns the number of elements in this deque. + * + * @return the number of elements in this deque + */ + public int size() { + lock.lock(); + try { + return count; + } finally { + lock.unlock(); + } + } + + /** + * Returns true if this deque contains the specified element. + * More formally, returns true if and only if this deque contains + * at least one element e such that o.equals(e). + * + * @param o object to be checked for containment in this deque + * @return true if this deque contains the specified element + */ + public boolean contains(Object o) { + if (o == null) return false; + lock.lock(); + try { + for (Node p = first; p != null; p = p.next) + if (o.equals(p.item)) + return true; + return false; + } finally { + lock.unlock(); + } + } + + /** + * Variant of removeFirstOccurrence needed by iterator.remove. + * Searches for the node, not its contents. + */ + boolean removeNode(Node e) { + lock.lock(); + try { + for (Node p = first; p != null; p = p.next) { + if (p == e) { + unlink(p); + return true; + } + } + return false; + } finally { + lock.unlock(); + } + } + + /** + * Returns an array containing all of the elements in this deque, in + * proper sequence (from first to last element). + * + *

The returned array will be "safe" in that no references to it are + * maintained by this deque. (In other words, this method must allocate + * a new array). The caller is thus free to modify the returned array. + * + *

This method acts as bridge between array-based and collection-based + * APIs. + * + * @return an array containing all of the elements in this deque + */ + public Object[] toArray() { + lock.lock(); + try { + Object[] a = new Object[count]; + int k = 0; + for (Node p = first; p != null; p = p.next) + a[k++] = p.item; + return a; + } finally { + lock.unlock(); + } + } + + /** + * Returns an array containing all of the elements in this deque, in + * proper sequence; the runtime type of the returned array is that of + * the specified array. If the deque fits in the specified array, it + * is returned therein. Otherwise, a new array is allocated with the + * runtime type of the specified array and the size of this deque. + * + *

If this deque fits in the specified array with room to spare + * (i.e., the array has more elements than this deque), the element in + * the array immediately following the end of the deque is set to + * null. + * + *

Like the {@link #toArray()} method, this method acts as bridge between + * array-based and collection-based APIs. Further, this method allows + * precise control over the runtime type of the output array, and may, + * under certain circumstances, be used to save allocation costs. + * + *

Suppose x is a deque known to contain only strings. + * The following code can be used to dump the deque into a newly + * allocated array of String: + * + *

+     *     String[] y = x.toArray(new String[0]);
+ * + * Note that toArray(new Object[0]) is identical in function to + * toArray(). + * + * @param a the array into which the elements of the deque are to + * be stored, if it is big enough; otherwise, a new array of the + * same runtime type is allocated for this purpose + * @return an array containing all of the elements in this deque + * @throws ArrayStoreException if the runtime type of the specified array + * is not a supertype of the runtime type of every element in + * this deque + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + lock.lock(); + try { + if (a.length < count) + a = (T[])java.lang.reflect.Array.newInstance( + a.getClass().getComponentType(), + count + ); + + int k = 0; + for (Node p = first; p != null; p = p.next) + a[k++] = (T)p.item; + if (a.length > k) + a[k] = null; + return a; + } finally { + lock.unlock(); + } + } + + public String toString() { + lock.lock(); + try { + return super.toString(); + } finally { + lock.unlock(); + } + } + + /** + * Atomically removes all of the elements from this deque. + * The deque will be empty after this call returns. + */ + public void clear() { + lock.lock(); + try { + first = last = null; + count = 0; + notFull.signalAll(); + } finally { + lock.unlock(); + } + } + + /** + * Returns an iterator over the elements in this deque in proper sequence. + * The elements will be returned in order from first (head) to last (tail). + * The returned Iterator is a "weakly consistent" iterator that + * will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + * @return an iterator over the elements in this deque in proper sequence + */ + public Iterator iterator() { + return new Itr(); + } + + /** + * Returns an iterator over the elements in this deque in reverse + * sequential order. The elements will be returned in order from + * last (tail) to first (head). + * The returned Iterator is a "weakly consistent" iterator that + * will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + */ + public Iterator descendingIterator() { + return new DescendingItr(); + } + + /** + * Base class for Iterators for LinkedBlockingDeque + */ + private abstract class AbstractItr implements Iterator { + /** + * The next node to return in next + */ + Node next; + + /** + * nextItem holds on to item fields because once we claim that + * an element exists in hasNext(), we must return item read + * under lock (in advance()) even if it was in the process of + * being removed when hasNext() was called. + */ + E nextItem; + + /** + * Node returned by most recent call to next. Needed by remove. + * Reset to null if this element is deleted by a call to remove. + */ + private Node lastRet; + + AbstractItr() { + advance(); // set to initial position + } + + /** + * Advances next, or if not yet initialized, sets to first node. + * Implemented to move forward vs backward in the two subclasses. + */ + abstract void advance(); + + public boolean hasNext() { + return next != null; + } + + public E next() { + if (next == null) + throw new NoSuchElementException(); + lastRet = next; + E x = nextItem; + advance(); + return x; + } + + public void remove() { + Node n = lastRet; + if (n == null) + throw new IllegalStateException(); + lastRet = null; + // Note: removeNode rescans looking for this node to make + // sure it was not already removed. Otherwise, trying to + // re-remove could corrupt list. + removeNode(n); + } + } + + /** Forward iterator */ + private class Itr extends AbstractItr { + void advance() { + final ReentrantLock lock = LinkedBlockingDeque.this.lock; + lock.lock(); + try { + next = (next == null)? first : next.next; + nextItem = (next == null)? null : next.item; + } finally { + lock.unlock(); + } + } + } + + /** + * Descending iterator for LinkedBlockingDeque + */ + private class DescendingItr extends AbstractItr { + void advance() { + final ReentrantLock lock = LinkedBlockingDeque.this.lock; + lock.lock(); + try { + next = (next == null)? last : next.prev; + nextItem = (next == null)? null : next.item; + } finally { + lock.unlock(); + } + } + } + + /** + * Save the state of this deque to a stream (that is, serialize it). + * + * @serialData The capacity (int), followed by elements (each an + * Object) in the proper order, followed by a null + * @param s the stream + */ + private void writeObject(java.io.ObjectOutputStream s) + throws java.io.IOException { + lock.lock(); + try { + // Write out capacity and any hidden stuff + s.defaultWriteObject(); + // Write out all elements in the proper order. + for (Node p = first; p != null; p = p.next) + s.writeObject(p.item); + // Use trailing null as sentinel + s.writeObject(null); + } finally { + lock.unlock(); + } + } + + /** + * Reconstitute this deque from a stream (that is, + * deserialize it). + * @param s the stream + */ + private void readObject(java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + s.defaultReadObject(); + count = 0; + first = null; + last = null; + // Read in all elements and place in queue + for (;;) { + E item = (E)s.readObject(); + if (item == null) + break; + add(item); + } + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java b/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java new file mode 100644 index 00000000000..3dedee56da0 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java @@ -0,0 +1,807 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.atomic.*; +import java.util.concurrent.locks.*; +import java.util.*; + +/** + * An optionally-bounded {@linkplain BlockingQueue blocking queue} based on + * linked nodes. + * This queue orders elements FIFO (first-in-first-out). + * The head of the queue is that element that has been on the + * queue the longest time. + * The tail of the queue is that element that has been on the + * queue the shortest time. New elements + * are inserted at the tail of the queue, and the queue retrieval + * operations obtain elements at the head of the queue. + * Linked queues typically have higher throughput than array-based queues but + * less predictable performance in most concurrent applications. + * + *

The optional capacity bound constructor argument serves as a + * way to prevent excessive queue expansion. The capacity, if unspecified, + * is equal to {@link Integer#MAX_VALUE}. Linked nodes are + * dynamically created upon each insertion unless this would bring the + * queue above capacity. + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + * + */ +public class LinkedBlockingQueue extends AbstractQueue + implements BlockingQueue, java.io.Serializable { + private static final long serialVersionUID = -6903933977591709194L; + + /* + * A variant of the "two lock queue" algorithm. The putLock gates + * entry to put (and offer), and has an associated condition for + * waiting puts. Similarly for the takeLock. The "count" field + * that they both rely on is maintained as an atomic to avoid + * needing to get both locks in most cases. Also, to minimize need + * for puts to get takeLock and vice-versa, cascading notifies are + * used. When a put notices that it has enabled at least one take, + * it signals taker. That taker in turn signals others if more + * items have been entered since the signal. And symmetrically for + * takes signalling puts. Operations such as remove(Object) and + * iterators acquire both locks. + */ + + /** + * Linked list node class + */ + static class Node { + /** The item, volatile to ensure barrier separating write and read */ + volatile E item; + Node next; + Node(E x) { item = x; } + } + + /** The capacity bound, or Integer.MAX_VALUE if none */ + private final int capacity; + + /** Current number of elements */ + private final AtomicInteger count = new AtomicInteger(0); + + /** Head of linked list */ + private transient Node head; + + /** Tail of linked list */ + private transient Node last; + + /** Lock held by take, poll, etc */ + private final ReentrantLock takeLock = new ReentrantLock(); + + /** Wait queue for waiting takes */ + private final Condition notEmpty = takeLock.newCondition(); + + /** Lock held by put, offer, etc */ + private final ReentrantLock putLock = new ReentrantLock(); + + /** Wait queue for waiting puts */ + private final Condition notFull = putLock.newCondition(); + + /** + * Signals a waiting take. Called only from put/offer (which do not + * otherwise ordinarily lock takeLock.) + */ + private void signalNotEmpty() { + final ReentrantLock takeLock = this.takeLock; + takeLock.lock(); + try { + notEmpty.signal(); + } finally { + takeLock.unlock(); + } + } + + /** + * Signals a waiting put. Called only from take/poll. + */ + private void signalNotFull() { + final ReentrantLock putLock = this.putLock; + putLock.lock(); + try { + notFull.signal(); + } finally { + putLock.unlock(); + } + } + + /** + * Creates a node and links it at end of queue. + * @param x the item + */ + private void insert(E x) { + last = last.next = new Node(x); + } + + /** + * Removes a node from head of queue, + * @return the node + */ + private E extract() { + Node first = head.next; + head = first; + E x = first.item; + first.item = null; + return x; + } + + /** + * Lock to prevent both puts and takes. + */ + private void fullyLock() { + putLock.lock(); + takeLock.lock(); + } + + /** + * Unlock to allow both puts and takes. + */ + private void fullyUnlock() { + takeLock.unlock(); + putLock.unlock(); + } + + + /** + * Creates a LinkedBlockingQueue with a capacity of + * {@link Integer#MAX_VALUE}. + */ + public LinkedBlockingQueue() { + this(Integer.MAX_VALUE); + } + + /** + * Creates a LinkedBlockingQueue with the given (fixed) capacity. + * + * @param capacity the capacity of this queue + * @throws IllegalArgumentException if capacity is not greater + * than zero + */ + public LinkedBlockingQueue(int capacity) { + if (capacity <= 0) throw new IllegalArgumentException(); + this.capacity = capacity; + last = head = new Node(null); + } + + /** + * Creates a LinkedBlockingQueue with a capacity of + * {@link Integer#MAX_VALUE}, initially containing the elements of the + * given collection, + * added in traversal order of the collection's iterator. + * + * @param c the collection of elements to initially contain + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public LinkedBlockingQueue(Collection c) { + this(Integer.MAX_VALUE); + for (E e : c) + add(e); + } + + + // this doc comment is overridden to remove the reference to collections + // greater in size than Integer.MAX_VALUE + /** + * Returns the number of elements in this queue. + * + * @return the number of elements in this queue + */ + public int size() { + return count.get(); + } + + // this doc comment is a modified copy of the inherited doc comment, + // without the reference to unlimited queues. + /** + * Returns the number of additional elements that this queue can ideally + * (in the absence of memory or resource constraints) accept without + * blocking. This is always equal to the initial capacity of this queue + * less the current size of this queue. + * + *

Note that you cannot always tell if an attempt to insert + * an element will succeed by inspecting remainingCapacity + * because it may be the case that another thread is about to + * insert or remove an element. + */ + public int remainingCapacity() { + return capacity - count.get(); + } + + /** + * Inserts the specified element at the tail of this queue, waiting if + * necessary for space to become available. + * + * @throws InterruptedException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public void put(E e) throws InterruptedException { + if (e == null) throw new NullPointerException(); + // Note: convention in all put/take/etc is to preset + // local var holding count negative to indicate failure unless set. + int c = -1; + final ReentrantLock putLock = this.putLock; + final AtomicInteger count = this.count; + putLock.lockInterruptibly(); + try { + /* + * Note that count is used in wait guard even though it is + * not protected by lock. This works because count can + * only decrease at this point (all other puts are shut + * out by lock), and we (or some other waiting put) are + * signalled if it ever changes from + * capacity. Similarly for all other uses of count in + * other wait guards. + */ + try { + while (count.get() == capacity) + notFull.await(); + } catch (InterruptedException ie) { + notFull.signal(); // propagate to a non-interrupted thread + throw ie; + } + insert(e); + c = count.getAndIncrement(); + if (c + 1 < capacity) + notFull.signal(); + } finally { + putLock.unlock(); + } + if (c == 0) + signalNotEmpty(); + } + + /** + * Inserts the specified element at the tail of this queue, waiting if + * necessary up to the specified wait time for space to become available. + * + * @return true if successful, or false if + * the specified waiting time elapses before space is available. + * @throws InterruptedException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public boolean offer(E e, long timeout, TimeUnit unit) + throws InterruptedException { + + if (e == null) throw new NullPointerException(); + long nanos = unit.toNanos(timeout); + int c = -1; + final ReentrantLock putLock = this.putLock; + final AtomicInteger count = this.count; + putLock.lockInterruptibly(); + try { + for (;;) { + if (count.get() < capacity) { + insert(e); + c = count.getAndIncrement(); + if (c + 1 < capacity) + notFull.signal(); + break; + } + if (nanos <= 0) + return false; + try { + nanos = notFull.awaitNanos(nanos); + } catch (InterruptedException ie) { + notFull.signal(); // propagate to a non-interrupted thread + throw ie; + } + } + } finally { + putLock.unlock(); + } + if (c == 0) + signalNotEmpty(); + return true; + } + + /** + * Inserts the specified element at the tail of this queue if it is + * possible to do so immediately without exceeding the queue's capacity, + * returning true upon success and false if this queue + * is full. + * When using a capacity-restricted queue, this method is generally + * preferable to method {@link BlockingQueue#add add}, which can fail to + * insert an element only by throwing an exception. + * + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + if (e == null) throw new NullPointerException(); + final AtomicInteger count = this.count; + if (count.get() == capacity) + return false; + int c = -1; + final ReentrantLock putLock = this.putLock; + putLock.lock(); + try { + if (count.get() < capacity) { + insert(e); + c = count.getAndIncrement(); + if (c + 1 < capacity) + notFull.signal(); + } + } finally { + putLock.unlock(); + } + if (c == 0) + signalNotEmpty(); + return c >= 0; + } + + + public E take() throws InterruptedException { + E x; + int c = -1; + final AtomicInteger count = this.count; + final ReentrantLock takeLock = this.takeLock; + takeLock.lockInterruptibly(); + try { + try { + while (count.get() == 0) + notEmpty.await(); + } catch (InterruptedException ie) { + notEmpty.signal(); // propagate to a non-interrupted thread + throw ie; + } + + x = extract(); + c = count.getAndDecrement(); + if (c > 1) + notEmpty.signal(); + } finally { + takeLock.unlock(); + } + if (c == capacity) + signalNotFull(); + return x; + } + + public E poll(long timeout, TimeUnit unit) throws InterruptedException { + E x = null; + int c = -1; + long nanos = unit.toNanos(timeout); + final AtomicInteger count = this.count; + final ReentrantLock takeLock = this.takeLock; + takeLock.lockInterruptibly(); + try { + for (;;) { + if (count.get() > 0) { + x = extract(); + c = count.getAndDecrement(); + if (c > 1) + notEmpty.signal(); + break; + } + if (nanos <= 0) + return null; + try { + nanos = notEmpty.awaitNanos(nanos); + } catch (InterruptedException ie) { + notEmpty.signal(); // propagate to a non-interrupted thread + throw ie; + } + } + } finally { + takeLock.unlock(); + } + if (c == capacity) + signalNotFull(); + return x; + } + + public E poll() { + final AtomicInteger count = this.count; + if (count.get() == 0) + return null; + E x = null; + int c = -1; + final ReentrantLock takeLock = this.takeLock; + takeLock.lock(); + try { + if (count.get() > 0) { + x = extract(); + c = count.getAndDecrement(); + if (c > 1) + notEmpty.signal(); + } + } finally { + takeLock.unlock(); + } + if (c == capacity) + signalNotFull(); + return x; + } + + + public E peek() { + if (count.get() == 0) + return null; + final ReentrantLock takeLock = this.takeLock; + takeLock.lock(); + try { + Node first = head.next; + if (first == null) + return null; + else + return first.item; + } finally { + takeLock.unlock(); + } + } + + /** + * Removes a single instance of the specified element from this queue, + * if it is present. More formally, removes an element e such + * that o.equals(e), if this queue contains one or more such + * elements. + * Returns true if this queue contained the specified element + * (or equivalently, if this queue changed as a result of the call). + * + * @param o element to be removed from this queue, if present + * @return true if this queue changed as a result of the call + */ + public boolean remove(Object o) { + if (o == null) return false; + boolean removed = false; + fullyLock(); + try { + Node trail = head; + Node p = head.next; + while (p != null) { + if (o.equals(p.item)) { + removed = true; + break; + } + trail = p; + p = p.next; + } + if (removed) { + p.item = null; + trail.next = p.next; + if (last == p) + last = trail; + if (count.getAndDecrement() == capacity) + notFull.signalAll(); + } + } finally { + fullyUnlock(); + } + return removed; + } + + /** + * Returns an array containing all of the elements in this queue, in + * proper sequence. + * + *

The returned array will be "safe" in that no references to it are + * maintained by this queue. (In other words, this method must allocate + * a new array). The caller is thus free to modify the returned array. + * + *

This method acts as bridge between array-based and collection-based + * APIs. + * + * @return an array containing all of the elements in this queue + */ + public Object[] toArray() { + fullyLock(); + try { + int size = count.get(); + Object[] a = new Object[size]; + int k = 0; + for (Node p = head.next; p != null; p = p.next) + a[k++] = p.item; + return a; + } finally { + fullyUnlock(); + } + } + + /** + * Returns an array containing all of the elements in this queue, in + * proper sequence; the runtime type of the returned array is that of + * the specified array. If the queue fits in the specified array, it + * is returned therein. Otherwise, a new array is allocated with the + * runtime type of the specified array and the size of this queue. + * + *

If this queue fits in the specified array with room to spare + * (i.e., the array has more elements than this queue), the element in + * the array immediately following the end of the queue is set to + * null. + * + *

Like the {@link #toArray()} method, this method acts as bridge between + * array-based and collection-based APIs. Further, this method allows + * precise control over the runtime type of the output array, and may, + * under certain circumstances, be used to save allocation costs. + * + *

Suppose x is a queue known to contain only strings. + * The following code can be used to dump the queue into a newly + * allocated array of String: + * + *

+     *     String[] y = x.toArray(new String[0]);
+ * + * Note that toArray(new Object[0]) is identical in function to + * toArray(). + * + * @param a the array into which the elements of the queue are to + * be stored, if it is big enough; otherwise, a new array of the + * same runtime type is allocated for this purpose + * @return an array containing all of the elements in this queue + * @throws ArrayStoreException if the runtime type of the specified array + * is not a supertype of the runtime type of every element in + * this queue + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + fullyLock(); + try { + int size = count.get(); + if (a.length < size) + a = (T[])java.lang.reflect.Array.newInstance + (a.getClass().getComponentType(), size); + + int k = 0; + for (Node p = head.next; p != null; p = p.next) + a[k++] = (T)p.item; + if (a.length > k) + a[k] = null; + return a; + } finally { + fullyUnlock(); + } + } + + public String toString() { + fullyLock(); + try { + return super.toString(); + } finally { + fullyUnlock(); + } + } + + /** + * Atomically removes all of the elements from this queue. + * The queue will be empty after this call returns. + */ + public void clear() { + fullyLock(); + try { + head.next = null; + assert head.item == null; + last = head; + if (count.getAndSet(0) == capacity) + notFull.signalAll(); + } finally { + fullyUnlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + Node first; + fullyLock(); + try { + first = head.next; + head.next = null; + assert head.item == null; + last = head; + if (count.getAndSet(0) == capacity) + notFull.signalAll(); + } finally { + fullyUnlock(); + } + // Transfer the elements outside of locks + int n = 0; + for (Node p = first; p != null; p = p.next) { + c.add(p.item); + p.item = null; + ++n; + } + return n; + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c, int maxElements) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + fullyLock(); + try { + int n = 0; + Node p = head.next; + while (p != null && n < maxElements) { + c.add(p.item); + p.item = null; + p = p.next; + ++n; + } + if (n != 0) { + head.next = p; + assert head.item == null; + if (p == null) + last = head; + if (count.getAndAdd(-n) == capacity) + notFull.signalAll(); + } + return n; + } finally { + fullyUnlock(); + } + } + + /** + * Returns an iterator over the elements in this queue in proper sequence. + * The returned Iterator is a "weakly consistent" iterator that + * will never throw {@link ConcurrentModificationException}, + * and guarantees to traverse elements as they existed upon + * construction of the iterator, and may (but is not guaranteed to) + * reflect any modifications subsequent to construction. + * + * @return an iterator over the elements in this queue in proper sequence + */ + public Iterator iterator() { + return new Itr(); + } + + private class Itr implements Iterator { + /* + * Basic weak-consistent iterator. At all times hold the next + * item to hand out so that if hasNext() reports true, we will + * still have it to return even if lost race with a take etc. + */ + private Node current; + private Node lastRet; + private E currentElement; + + Itr() { + final ReentrantLock putLock = LinkedBlockingQueue.this.putLock; + final ReentrantLock takeLock = LinkedBlockingQueue.this.takeLock; + putLock.lock(); + takeLock.lock(); + try { + current = head.next; + if (current != null) + currentElement = current.item; + } finally { + takeLock.unlock(); + putLock.unlock(); + } + } + + public boolean hasNext() { + return current != null; + } + + public E next() { + final ReentrantLock putLock = LinkedBlockingQueue.this.putLock; + final ReentrantLock takeLock = LinkedBlockingQueue.this.takeLock; + putLock.lock(); + takeLock.lock(); + try { + if (current == null) + throw new NoSuchElementException(); + E x = currentElement; + lastRet = current; + current = current.next; + if (current != null) + currentElement = current.item; + return x; + } finally { + takeLock.unlock(); + putLock.unlock(); + } + } + + public void remove() { + if (lastRet == null) + throw new IllegalStateException(); + final ReentrantLock putLock = LinkedBlockingQueue.this.putLock; + final ReentrantLock takeLock = LinkedBlockingQueue.this.takeLock; + putLock.lock(); + takeLock.lock(); + try { + Node node = lastRet; + lastRet = null; + Node trail = head; + Node p = head.next; + while (p != null && p != node) { + trail = p; + p = p.next; + } + if (p == node) { + p.item = null; + trail.next = p.next; + if (last == p) + last = trail; + int c = count.getAndDecrement(); + if (c == capacity) + notFull.signalAll(); + } + } finally { + takeLock.unlock(); + putLock.unlock(); + } + } + } + + /** + * Save the state to a stream (that is, serialize it). + * + * @serialData The capacity is emitted (int), followed by all of + * its elements (each an Object) in the proper order, + * followed by a null + * @param s the stream + */ + private void writeObject(java.io.ObjectOutputStream s) + throws java.io.IOException { + + fullyLock(); + try { + // Write out any hidden stuff, plus capacity + s.defaultWriteObject(); + + // Write out all elements in the proper order. + for (Node p = head.next; p != null; p = p.next) + s.writeObject(p.item); + + // Use trailing null as sentinel + s.writeObject(null); + } finally { + fullyUnlock(); + } + } + + /** + * Reconstitute this queue instance from a stream (that is, + * deserialize it). + * @param s the stream + */ + private void readObject(java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + // Read in capacity, and any hidden stuff + s.defaultReadObject(); + + count.set(0); + last = head = new Node(null); + + // Read in all elements and place in queue + for (;;) { + E item = (E)s.readObject(); + if (item == null) + break; + add(item); + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java b/libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java new file mode 100644 index 00000000000..91ae61b631f --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java @@ -0,0 +1,563 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +import java.util.concurrent.locks.*; +import java.util.*; + +/** + * An unbounded {@linkplain BlockingQueue blocking queue} that uses + * the same ordering rules as class {@link PriorityQueue} and supplies + * blocking retrieval operations. While this queue is logically + * unbounded, attempted additions may fail due to resource exhaustion + * (causing OutOfMemoryError). This class does not permit + * null elements. A priority queue relying on {@linkplain + * Comparable natural ordering} also does not permit insertion of + * non-comparable objects (doing so results in + * ClassCastException). + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. The Iterator provided in method {@link + * #iterator()} is not guaranteed to traverse the elements of + * the PriorityBlockingQueue in any particular order. If you need + * ordered traversal, consider using + * Arrays.sort(pq.toArray()). Also, method drainTo + * can be used to remove some or all elements in priority + * order and place them in another collection. + * + *

Operations on this class make no guarantees about the ordering + * of elements with equal priority. If you need to enforce an + * ordering, you can define custom classes or comparators that use a + * secondary key to break ties in primary priority values. For + * example, here is a class that applies first-in-first-out + * tie-breaking to comparable elements. To use it, you would insert a + * new FIFOEntry(anEntry) instead of a plain entry object. + * + *

+ * class FIFOEntry<E extends Comparable<? super E>>
+ *     implements Comparable<FIFOEntry<E>> {
+ *   final static AtomicLong seq = new AtomicLong();
+ *   final long seqNum;
+ *   final E entry;
+ *   public FIFOEntry(E entry) {
+ *     seqNum = seq.getAndIncrement();
+ *     this.entry = entry;
+ *   }
+ *   public E getEntry() { return entry; }
+ *   public int compareTo(FIFOEntry<E> other) {
+ *     int res = entry.compareTo(other.entry);
+ *     if (res == 0 && other.entry != this.entry)
+ *       res = (seqNum < other.seqNum ? -1 : 1);
+ *     return res;
+ *   }
+ * }
+ * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea + * @param the type of elements held in this collection + */ +public class PriorityBlockingQueue extends AbstractQueue + implements BlockingQueue, java.io.Serializable { + private static final long serialVersionUID = 5595510919245408276L; + + private final PriorityQueue q; + private final ReentrantLock lock = new ReentrantLock(true); + private final Condition notEmpty = lock.newCondition(); + + /** + * Creates a PriorityBlockingQueue with the default + * initial capacity (11) that orders its elements according to + * their {@linkplain Comparable natural ordering}. + */ + public PriorityBlockingQueue() { + q = new PriorityQueue(); + } + + /** + * Creates a PriorityBlockingQueue with the specified + * initial capacity that orders its elements according to their + * {@linkplain Comparable natural ordering}. + * + * @param initialCapacity the initial capacity for this priority queue + * @throws IllegalArgumentException if initialCapacity is less + * than 1 + */ + public PriorityBlockingQueue(int initialCapacity) { + q = new PriorityQueue(initialCapacity, null); + } + + /** + * Creates a PriorityBlockingQueue with the specified initial + * capacity that orders its elements according to the specified + * comparator. + * + * @param initialCapacity the initial capacity for this priority queue + * @param comparator the comparator that will be used to order this + * priority queue. If {@code null}, the {@linkplain Comparable + * natural ordering} of the elements will be used. + * @throws IllegalArgumentException if initialCapacity is less + * than 1 + */ + public PriorityBlockingQueue(int initialCapacity, + Comparator comparator) { + q = new PriorityQueue(initialCapacity, comparator); + } + + /** + * Creates a PriorityBlockingQueue containing the elements + * in the specified collection. If the specified collection is a + * {@link SortedSet} or a {@link PriorityQueue}, this + * priority queue will be ordered according to the same ordering. + * Otherwise, this priority queue will be ordered according to the + * {@linkplain Comparable natural ordering} of its elements. + * + * @param c the collection whose elements are to be placed + * into this priority queue + * @throws ClassCastException if elements of the specified collection + * cannot be compared to one another according to the priority + * queue's ordering + * @throws NullPointerException if the specified collection or any + * of its elements are null + */ + public PriorityBlockingQueue(Collection c) { + q = new PriorityQueue(c); + } + + /** + * Inserts the specified element into this priority queue. + * + * @param e the element to add + * @return true (as specified by {@link Collection#add}) + * @throws ClassCastException if the specified element cannot be compared + * with elements currently in the priority queue according to the + * priority queue's ordering + * @throws NullPointerException if the specified element is null + */ + public boolean add(E e) { + return offer(e); + } + + /** + * Inserts the specified element into this priority queue. + * + * @param e the element to add + * @return true (as specified by {@link Queue#offer}) + * @throws ClassCastException if the specified element cannot be compared + * with elements currently in the priority queue according to the + * priority queue's ordering + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + boolean ok = q.offer(e); + assert ok; + notEmpty.signal(); + return true; + } finally { + lock.unlock(); + } + } + + /** + * Inserts the specified element into this priority queue. As the queue is + * unbounded this method will never block. + * + * @param e the element to add + * @throws ClassCastException if the specified element cannot be compared + * with elements currently in the priority queue according to the + * priority queue's ordering + * @throws NullPointerException if the specified element is null + */ + public void put(E e) { + offer(e); // never need to block + } + + /** + * Inserts the specified element into this priority queue. As the queue is + * unbounded this method will never block. + * + * @param e the element to add + * @param timeout This parameter is ignored as the method never blocks + * @param unit This parameter is ignored as the method never blocks + * @return true + * @throws ClassCastException if the specified element cannot be compared + * with elements currently in the priority queue according to the + * priority queue's ordering + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e, long timeout, TimeUnit unit) { + return offer(e); // never need to block + } + + public E poll() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.poll(); + } finally { + lock.unlock(); + } + } + + public E take() throws InterruptedException { + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + try { + while (q.size() == 0) + notEmpty.await(); + } catch (InterruptedException ie) { + notEmpty.signal(); // propagate to non-interrupted thread + throw ie; + } + E x = q.poll(); + assert x != null; + return x; + } finally { + lock.unlock(); + } + } + + public E poll(long timeout, TimeUnit unit) throws InterruptedException { + long nanos = unit.toNanos(timeout); + final ReentrantLock lock = this.lock; + lock.lockInterruptibly(); + try { + for (;;) { + E x = q.poll(); + if (x != null) + return x; + if (nanos <= 0) + return null; + try { + nanos = notEmpty.awaitNanos(nanos); + } catch (InterruptedException ie) { + notEmpty.signal(); // propagate to non-interrupted thread + throw ie; + } + } + } finally { + lock.unlock(); + } + } + + public E peek() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.peek(); + } finally { + lock.unlock(); + } + } + + /** + * Returns the comparator used to order the elements in this queue, + * or null if this queue uses the {@linkplain Comparable + * natural ordering} of its elements. + * + * @return the comparator used to order the elements in this queue, + * or null if this queue uses the natural + * ordering of its elements + */ + public Comparator comparator() { + return q.comparator(); + } + + public int size() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.size(); + } finally { + lock.unlock(); + } + } + + /** + * Always returns Integer.MAX_VALUE because + * a PriorityBlockingQueue is not capacity constrained. + * @return Integer.MAX_VALUE + */ + public int remainingCapacity() { + return Integer.MAX_VALUE; + } + + /** + * Removes a single instance of the specified element from this queue, + * if it is present. More formally, removes an element {@code e} such + * that {@code o.equals(e)}, if this queue contains one or more such + * elements. Returns {@code true} if and only if this queue contained + * the specified element (or equivalently, if this queue changed as a + * result of the call). + * + * @param o element to be removed from this queue, if present + * @return true if this queue changed as a result of the call + */ + public boolean remove(Object o) { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.remove(o); + } finally { + lock.unlock(); + } + } + + /** + * Returns {@code true} if this queue contains the specified element. + * More formally, returns {@code true} if and only if this queue contains + * at least one element {@code e} such that {@code o.equals(e)}. + * + * @param o object to be checked for containment in this queue + * @return true if this queue contains the specified element + */ + public boolean contains(Object o) { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.contains(o); + } finally { + lock.unlock(); + } + } + + /** + * Returns an array containing all of the elements in this queue. + * The returned array elements are in no particular order. + * + *

The returned array will be "safe" in that no references to it are + * maintained by this queue. (In other words, this method must allocate + * a new array). The caller is thus free to modify the returned array. + * + *

This method acts as bridge between array-based and collection-based + * APIs. + * + * @return an array containing all of the elements in this queue + */ + public Object[] toArray() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.toArray(); + } finally { + lock.unlock(); + } + } + + + public String toString() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.toString(); + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int n = 0; + E e; + while ( (e = q.poll()) != null) { + c.add(e); + ++n; + } + return n; + } finally { + lock.unlock(); + } + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c, int maxElements) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + if (maxElements <= 0) + return 0; + final ReentrantLock lock = this.lock; + lock.lock(); + try { + int n = 0; + E e; + while (n < maxElements && (e = q.poll()) != null) { + c.add(e); + ++n; + } + return n; + } finally { + lock.unlock(); + } + } + + /** + * Atomically removes all of the elements from this queue. + * The queue will be empty after this call returns. + */ + public void clear() { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + q.clear(); + } finally { + lock.unlock(); + } + } + + /** + * Returns an array containing all of the elements in this queue; the + * runtime type of the returned array is that of the specified array. + * The returned array elements are in no particular order. + * If the queue fits in the specified array, it is returned therein. + * Otherwise, a new array is allocated with the runtime type of the + * specified array and the size of this queue. + * + *

If this queue fits in the specified array with room to spare + * (i.e., the array has more elements than this queue), the element in + * the array immediately following the end of the queue is set to + * null. + * + *

Like the {@link #toArray()} method, this method acts as bridge between + * array-based and collection-based APIs. Further, this method allows + * precise control over the runtime type of the output array, and may, + * under certain circumstances, be used to save allocation costs. + * + *

Suppose x is a queue known to contain only strings. + * The following code can be used to dump the queue into a newly + * allocated array of String: + * + *

+     *     String[] y = x.toArray(new String[0]);
+ * + * Note that toArray(new Object[0]) is identical in function to + * toArray(). + * + * @param a the array into which the elements of the queue are to + * be stored, if it is big enough; otherwise, a new array of the + * same runtime type is allocated for this purpose + * @return an array containing all of the elements in this queue + * @throws ArrayStoreException if the runtime type of the specified array + * is not a supertype of the runtime type of every element in + * this queue + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + final ReentrantLock lock = this.lock; + lock.lock(); + try { + return q.toArray(a); + } finally { + lock.unlock(); + } + } + + /** + * Returns an iterator over the elements in this queue. The + * iterator does not return the elements in any particular order. + * The returned Iterator is a "weakly consistent" + * iterator that will never throw {@link + * ConcurrentModificationException}, and guarantees to traverse + * elements as they existed upon construction of the iterator, and + * may (but is not guaranteed to) reflect any modifications + * subsequent to construction. + * + * @return an iterator over the elements in this queue + */ + public Iterator iterator() { + return new Itr(toArray()); + } + + /** + * Snapshot iterator that works off copy of underlying q array. + */ + private class Itr implements Iterator { + final Object[] array; // Array of all elements + int cursor; // index of next element to return; + int lastRet; // index of last element, or -1 if no such + + Itr(Object[] array) { + lastRet = -1; + this.array = array; + } + + public boolean hasNext() { + return cursor < array.length; + } + + public E next() { + if (cursor >= array.length) + throw new NoSuchElementException(); + lastRet = cursor; + return (E)array[cursor++]; + } + + public void remove() { + if (lastRet < 0) + throw new IllegalStateException(); + Object x = array[lastRet]; + lastRet = -1; + // Traverse underlying queue to find == element, + // not just a .equals element. + lock.lock(); + try { + for (Iterator it = q.iterator(); it.hasNext(); ) { + if (it.next() == x) { + it.remove(); + return; + } + } + } finally { + lock.unlock(); + } + } + } + + /** + * Saves the state to a stream (that is, serializes it). This + * merely wraps default serialization within lock. The + * serialization strategy for items is left to underlying + * Queue. Note that locking is not needed on deserialization, so + * readObject is not defined, just relying on default. + */ + private void writeObject(java.io.ObjectOutputStream s) + throws java.io.IOException { + lock.lock(); + try { + s.defaultWriteObject(); + } finally { + lock.unlock(); + } + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionException.java b/libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionException.java new file mode 100644 index 00000000000..30b043d6627 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionException.java @@ -0,0 +1,62 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * Exception thrown by an {@link Executor} when a task cannot be + * accepted for execution. + * + * @since 1.5 + * @author Doug Lea + */ +public class RejectedExecutionException extends RuntimeException { + private static final long serialVersionUID = -375805702767069545L; + + /** + * Constructs a RejectedExecutionException with no detail message. + * The cause is not initialized, and may subsequently be + * initialized by a call to {@link #initCause(Throwable) initCause}. + */ + public RejectedExecutionException() { } + + /** + * Constructs a RejectedExecutionException with the + * specified detail message. The cause is not initialized, and may + * subsequently be initialized by a call to {@link + * #initCause(Throwable) initCause}. + * + * @param message the detail message + */ + public RejectedExecutionException(String message) { + super(message); + } + + /** + * Constructs a RejectedExecutionException with the + * specified detail message and cause. + * + * @param message the detail message + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method) + */ + public RejectedExecutionException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Constructs a RejectedExecutionException with the + * specified cause. The detail message is set to:
 (cause ==
+     * null ? null : cause.toString())
(which typically contains + * the class and detail message of cause). + * + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method) + */ + public RejectedExecutionException(Throwable cause) { + super(cause); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionHandler.java b/libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionHandler.java new file mode 100644 index 00000000000..4b4bbeab1bb --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/RejectedExecutionHandler.java @@ -0,0 +1,33 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A handler for tasks that cannot be executed by a {@link + * ThreadPoolExecutor}. + * + * @since 1.5 + * @author Doug Lea + */ +public interface RejectedExecutionHandler { + + /** + * Method that may be invoked by a {@link ThreadPoolExecutor} when + * execute cannot accept a task. This may occur when no + * more threads or queue slots are available because their bounds + * would be exceeded, or upon shutdown of the Executor. + * + * In the absence other alternatives, the method may throw an + * unchecked {@link RejectedExecutionException}, which will be + * propagated to the caller of execute. + * + * @param r the runnable task requested to be executed + * @param executor the executor attempting to execute this task + * @throws RejectedExecutionException if there is no remedy + */ + void rejectedExecution(Runnable r, ThreadPoolExecutor executor); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/RunnableFuture.java b/libjava/classpath/external/jsr166/java/util/concurrent/RunnableFuture.java new file mode 100644 index 00000000000..d74211d130b --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/RunnableFuture.java @@ -0,0 +1,25 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A {@link Future} that is {@link Runnable}. Successful execution of + * the run method causes completion of the Future + * and allows access to its results. + * @see FutureTask + * @see Executor + * @since 1.6 + * @author Doug Lea + * @param The result type returned by this Future's get method + */ +public interface RunnableFuture extends Runnable, Future { + /** + * Sets this Future to the result of its computation + * unless it has been cancelled. + */ + void run(); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/RunnableScheduledFuture.java b/libjava/classpath/external/jsr166/java/util/concurrent/RunnableScheduledFuture.java new file mode 100644 index 00000000000..0e8cc328c1e --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/RunnableScheduledFuture.java @@ -0,0 +1,29 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A {@link ScheduledFuture} that is {@link Runnable}. Successful + * execution of the run method causes completion of the + * Future and allows access to its results. + * @see FutureTask + * @see Executor + * @since 1.6 + * @author Doug Lea + * @param The result type returned by this Future's get method + */ +public interface RunnableScheduledFuture extends RunnableFuture, ScheduledFuture { + + /** + * Returns true if this is a periodic task. A periodic task may + * re-run according to some schedule. A non-periodic task can be + * run only once. + * + * @return true if this task is periodic + */ + boolean isPeriodic(); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java b/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java new file mode 100644 index 00000000000..976537ef5d6 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java @@ -0,0 +1,159 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.atomic.*; +import java.util.*; + +/** + * An {@link ExecutorService} that can schedule commands to run after a given + * delay, or to execute periodically. + * + *

The schedule methods create tasks with various delays + * and return a task object that can be used to cancel or check + * execution. The scheduleAtFixedRate and + * scheduleWithFixedDelay methods create and execute tasks + * that run periodically until cancelled. + * + *

Commands submitted using the {@link Executor#execute} and + * {@link ExecutorService} submit methods are scheduled with + * a requested delay of zero. Zero and negative delays (but not + * periods) are also allowed in schedule methods, and are + * treated as requests for immediate execution. + * + *

All schedule methods accept relative delays and + * periods as arguments, not absolute times or dates. It is a simple + * matter to transform an absolute time represented as a {@link + * java.util.Date} to the required form. For example, to schedule at + * a certain future date, you can use: schedule(task, + * date.getTime() - System.currentTimeMillis(), + * TimeUnit.MILLISECONDS). Beware however that expiration of a + * relative delay need not coincide with the current Date at + * which the task is enabled due to network time synchronization + * protocols, clock drift, or other factors. + * + * The {@link Executors} class provides convenient factory methods for + * the ScheduledExecutorService implementations provided in this package. + * + *

Usage Example

+ * + * Here is a class with a method that sets up a ScheduledExecutorService + * to beep every ten seconds for an hour: + * + *
+ * import static java.util.concurrent.TimeUnit.*;
+ * class BeeperControl {
+ *    private final ScheduledExecutorService scheduler =
+ *       Executors.newScheduledThreadPool(1);
+ *
+ *    public void beepForAnHour() {
+ *        final Runnable beeper = new Runnable() {
+ *                public void run() { System.out.println("beep"); }
+ *            };
+ *        final ScheduledFuture<?> beeperHandle =
+ *            scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
+ *        scheduler.schedule(new Runnable() {
+ *                public void run() { beeperHandle.cancel(true); }
+ *            }, 60 * 60, SECONDS);
+ *    }
+ * }
+ * 
+ * + * @since 1.5 + * @author Doug Lea + */ +public interface ScheduledExecutorService extends ExecutorService { + + /** + * Creates and executes a one-shot action that becomes enabled + * after the given delay. + * + * @param command the task to execute + * @param delay the time from now to delay execution + * @param unit the time unit of the delay parameter + * @return a ScheduledFuture representing pending completion of + * the task and whose get() method will return + * null upon completion + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if command is null + */ + public ScheduledFuture schedule(Runnable command, + long delay, TimeUnit unit); + + /** + * Creates and executes a ScheduledFuture that becomes enabled after the + * given delay. + * + * @param callable the function to execute + * @param delay the time from now to delay execution + * @param unit the time unit of the delay parameter + * @return a ScheduledFuture that can be used to extract result or cancel + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if callable is null + */ + public ScheduledFuture schedule(Callable callable, + long delay, TimeUnit unit); + + /** + * Creates and executes a periodic action that becomes enabled first + * after the given initial delay, and subsequently with the given + * period; that is executions will commence after + * initialDelay then initialDelay+period, then + * initialDelay + 2 * period, and so on. + * If any execution of the task + * encounters an exception, subsequent executions are suppressed. + * Otherwise, the task will only terminate via cancellation or + * termination of the executor. If any execution of this task + * takes longer than its period, then subsequent executions + * may start late, but will not concurrently execute. + * + * @param command the task to execute + * @param initialDelay the time to delay first execution + * @param period the period between successive executions + * @param unit the time unit of the initialDelay and period parameters + * @return a ScheduledFuture representing pending completion of + * the task, and whose get() method will throw an + * exception upon cancellation + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if command is null + * @throws IllegalArgumentException if period less than or equal to zero + */ + public ScheduledFuture scheduleAtFixedRate(Runnable command, + long initialDelay, + long period, + TimeUnit unit); + + /** + * Creates and executes a periodic action that becomes enabled first + * after the given initial delay, and subsequently with the + * given delay between the termination of one execution and the + * commencement of the next. If any execution of the task + * encounters an exception, subsequent executions are suppressed. + * Otherwise, the task will only terminate via cancellation or + * termination of the executor. + * + * @param command the task to execute + * @param initialDelay the time to delay first execution + * @param delay the delay between the termination of one + * execution and the commencement of the next + * @param unit the time unit of the initialDelay and delay parameters + * @return a ScheduledFuture representing pending completion of + * the task, and whose get() method will throw an + * exception upon cancellation + * @throws RejectedExecutionException if the task cannot be + * scheduled for execution + * @throws NullPointerException if command is null + * @throws IllegalArgumentException if delay less than or equal to zero + */ + public ScheduledFuture scheduleWithFixedDelay(Runnable command, + long initialDelay, + long delay, + TimeUnit unit); + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledFuture.java b/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledFuture.java new file mode 100644 index 00000000000..239d681f6d9 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledFuture.java @@ -0,0 +1,19 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A delayed result-bearing action that can be cancelled. + * Usually a scheduled future is the result of scheduling + * a task with a {@link ScheduledExecutorService}. + * + * @since 1.5 + * @author Doug Lea + * @param The result type returned by this Future + */ +public interface ScheduledFuture extends Delayed, Future { +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java b/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java new file mode 100644 index 00000000000..d4da334c6e0 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java @@ -0,0 +1,626 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.atomic.*; +import java.util.*; + +/** + * A {@link ThreadPoolExecutor} that can additionally schedule + * commands to run after a given delay, or to execute + * periodically. This class is preferable to {@link java.util.Timer} + * when multiple worker threads are needed, or when the additional + * flexibility or capabilities of {@link ThreadPoolExecutor} (which + * this class extends) are required. + * + *

Delayed tasks execute no sooner than they are enabled, but + * without any real-time guarantees about when, after they are + * enabled, they will commence. Tasks scheduled for exactly the same + * execution time are enabled in first-in-first-out (FIFO) order of + * submission. + * + *

While this class inherits from {@link ThreadPoolExecutor}, a few + * of the inherited tuning methods are not useful for it. In + * particular, because it acts as a fixed-sized pool using + * corePoolSize threads and an unbounded queue, adjustments + * to maximumPoolSize have no useful effect. + * + *

Extension notes: This class overrides {@link + * AbstractExecutorService} submit methods to generate + * internal objects to control per-task delays and scheduling. To + * preserve functionality, any further overrides of these methods in + * subclasses must invoke superclass versions, which effectively + * disables additional task customization. However, this class + * provides alternative protected extension method + * decorateTask (one version each for Runnable and + * Callable) that can be used to customize the concrete task + * types used to execute commands entered via execute, + * submit, schedule, scheduleAtFixedRate, + * and scheduleWithFixedDelay. By default, a + * ScheduledThreadPoolExecutor uses a task type extending + * {@link FutureTask}. However, this may be modified or replaced using + * subclasses of the form: + * + *

+ * public class CustomScheduledExecutor extends ScheduledThreadPoolExecutor {
+ *
+ *   static class CustomTask<V> implements RunnableScheduledFuture<V> { ... }
+ *
+ *   protected <V> RunnableScheduledFuture<V> decorateTask(
+ *                Runnable r, RunnableScheduledFuture<V> task) {
+ *       return new CustomTask<V>(r, task);
+ *   }
+ *
+ *   protected <V> RunnableScheduledFuture<V> decorateTask(
+ *                Callable<V> c, RunnableScheduledFuture<V> task) {
+ *       return new CustomTask<V>(c, task);
+ *   }
+ *   // ... add constructors, etc.
+ * }
+ * 
+ * @since 1.5 + * @author Doug Lea + */ +public class ScheduledThreadPoolExecutor + extends ThreadPoolExecutor + implements ScheduledExecutorService { + + /** + * False if should cancel/suppress periodic tasks on shutdown. + */ + private volatile boolean continueExistingPeriodicTasksAfterShutdown; + + /** + * False if should cancel non-periodic tasks on shutdown. + */ + private volatile boolean executeExistingDelayedTasksAfterShutdown = true; + + /** + * Sequence number to break scheduling ties, and in turn to + * guarantee FIFO order among tied entries. + */ + private static final AtomicLong sequencer = new AtomicLong(0); + + /** Base of nanosecond timings, to avoid wrapping */ + private static final long NANO_ORIGIN = System.nanoTime(); + + /** + * Returns nanosecond time offset by origin + */ + final long now() { + return System.nanoTime() - NANO_ORIGIN; + } + + private class ScheduledFutureTask + extends FutureTask implements RunnableScheduledFuture { + + /** Sequence number to break ties FIFO */ + private final long sequenceNumber; + /** The time the task is enabled to execute in nanoTime units */ + private long time; + /** + * Period in nanoseconds for repeating tasks. A positive + * value indicates fixed-rate execution. A negative value + * indicates fixed-delay execution. A value of 0 indicates a + * non-repeating task. + */ + private final long period; + + /** + * Creates a one-shot action with given nanoTime-based trigger time. + */ + ScheduledFutureTask(Runnable r, V result, long ns) { + super(r, result); + this.time = ns; + this.period = 0; + this.sequenceNumber = sequencer.getAndIncrement(); + } + + /** + * Creates a periodic action with given nano time and period. + */ + ScheduledFutureTask(Runnable r, V result, long ns, long period) { + super(r, result); + this.time = ns; + this.period = period; + this.sequenceNumber = sequencer.getAndIncrement(); + } + + /** + * Creates a one-shot action with given nanoTime-based trigger. + */ + ScheduledFutureTask(Callable callable, long ns) { + super(callable); + this.time = ns; + this.period = 0; + this.sequenceNumber = sequencer.getAndIncrement(); + } + + public long getDelay(TimeUnit unit) { + long d = unit.convert(time - now(), TimeUnit.NANOSECONDS); + return d; + } + + public int compareTo(Delayed other) { + if (other == this) // compare zero ONLY if same object + return 0; + if (other instanceof ScheduledFutureTask) { + ScheduledFutureTask x = (ScheduledFutureTask)other; + long diff = time - x.time; + if (diff < 0) + return -1; + else if (diff > 0) + return 1; + else if (sequenceNumber < x.sequenceNumber) + return -1; + else + return 1; + } + long d = (getDelay(TimeUnit.NANOSECONDS) - + other.getDelay(TimeUnit.NANOSECONDS)); + return (d == 0)? 0 : ((d < 0)? -1 : 1); + } + + /** + * Returns true if this is a periodic (not a one-shot) action. + * + * @return true if periodic + */ + public boolean isPeriodic() { + return period != 0; + } + + /** + * Runs a periodic task. + */ + private void runPeriodic() { + boolean ok = ScheduledFutureTask.super.runAndReset(); + boolean down = isShutdown(); + // Reschedule if not cancelled and not shutdown or policy allows + if (ok && (!down || + (getContinueExistingPeriodicTasksAfterShutdownPolicy() && + !isTerminating()))) { + long p = period; + if (p > 0) + time += p; + else + time = now() - p; + // Classpath local: ecj from eclipse 3.1 does not + // compile this. + // ScheduledThreadPoolExecutor.super.getQueue().add(this); + ScheduledThreadPoolExecutor.super.getQueue().add((Runnable) this); + } + // This might have been the final executed delayed + // task. Wake up threads to check. + else if (down) + interruptIdleWorkers(); + } + + /** + * Overrides FutureTask version so as to reset/requeue if periodic. + */ + public void run() { + if (isPeriodic()) + runPeriodic(); + else + ScheduledFutureTask.super.run(); + } + } + + /** + * Specialized variant of ThreadPoolExecutor.execute for delayed tasks. + */ + private void delayedExecute(Runnable command) { + if (isShutdown()) { + reject(command); + return; + } + // Prestart a thread if necessary. We cannot prestart it + // running the task because the task (probably) shouldn't be + // run yet, so thread will just idle until delay elapses. + if (getPoolSize() < getCorePoolSize()) + prestartCoreThread(); + + super.getQueue().add(command); + } + + /** + * Cancels and clears the queue of all tasks that should not be run + * due to shutdown policy. + */ + private void cancelUnwantedTasks() { + boolean keepDelayed = getExecuteExistingDelayedTasksAfterShutdownPolicy(); + boolean keepPeriodic = getContinueExistingPeriodicTasksAfterShutdownPolicy(); + if (!keepDelayed && !keepPeriodic) + super.getQueue().clear(); + else if (keepDelayed || keepPeriodic) { + Object[] entries = super.getQueue().toArray(); + for (int i = 0; i < entries.length; ++i) { + Object e = entries[i]; + if (e instanceof RunnableScheduledFuture) { + RunnableScheduledFuture t = (RunnableScheduledFuture)e; + if (t.isPeriodic()? !keepPeriodic : !keepDelayed) + t.cancel(false); + } + } + entries = null; + purge(); + } + } + + public boolean remove(Runnable task) { + if (!(task instanceof RunnableScheduledFuture)) + return false; + return getQueue().remove(task); + } + + /** + * Modifies or replaces the task used to execute a runnable. + * This method can be used to override the concrete + * class used for managing internal tasks. + * The default implementation simply returns the given task. + * + * @param runnable the submitted Runnable + * @param task the task created to execute the runnable + * @return a task that can execute the runnable + * @since 1.6 + */ + protected RunnableScheduledFuture decorateTask( + Runnable runnable, RunnableScheduledFuture task) { + return task; + } + + /** + * Modifies or replaces the task used to execute a callable. + * This method can be used to override the concrete + * class used for managing internal tasks. + * The default implementation simply returns the given task. + * + * @param callable the submitted Callable + * @param task the task created to execute the callable + * @return a task that can execute the callable + * @since 1.6 + */ + protected RunnableScheduledFuture decorateTask( + Callable callable, RunnableScheduledFuture task) { + return task; + } + + /** + * Creates a new ScheduledThreadPoolExecutor with the given core + * pool size. + * + * @param corePoolSize the number of threads to keep in the pool, + * even if they are idle + * @throws IllegalArgumentException if corePoolSize < 0 + */ + public ScheduledThreadPoolExecutor(int corePoolSize) { + super(corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS, + new DelayedWorkQueue()); + } + + /** + * Creates a new ScheduledThreadPoolExecutor with the given + * initial parameters. + * + * @param corePoolSize the number of threads to keep in the pool, + * even if they are idle + * @param threadFactory the factory to use when the executor + * creates a new thread + * @throws IllegalArgumentException if corePoolSize < 0 + * @throws NullPointerException if threadFactory is null + */ + public ScheduledThreadPoolExecutor(int corePoolSize, + ThreadFactory threadFactory) { + super(corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS, + new DelayedWorkQueue(), threadFactory); + } + + /** + * Creates a new ScheduledThreadPoolExecutor with the given + * initial parameters. + * + * @param corePoolSize the number of threads to keep in the pool, + * even if they are idle + * @param handler the handler to use when execution is blocked + * because the thread bounds and queue capacities are reached + * @throws IllegalArgumentException if corePoolSize < 0 + * @throws NullPointerException if handler is null + */ + public ScheduledThreadPoolExecutor(int corePoolSize, + RejectedExecutionHandler handler) { + super(corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS, + new DelayedWorkQueue(), handler); + } + + /** + * Creates a new ScheduledThreadPoolExecutor with the given + * initial parameters. + * + * @param corePoolSize the number of threads to keep in the pool, + * even if they are idle + * @param threadFactory the factory to use when the executor + * creates a new thread + * @param handler the handler to use when execution is blocked + * because the thread bounds and queue capacities are reached. + * @throws IllegalArgumentException if corePoolSize < 0 + * @throws NullPointerException if threadFactory or handler is null + */ + public ScheduledThreadPoolExecutor(int corePoolSize, + ThreadFactory threadFactory, + RejectedExecutionHandler handler) { + super(corePoolSize, Integer.MAX_VALUE, 0, TimeUnit.NANOSECONDS, + new DelayedWorkQueue(), threadFactory, handler); + } + + public ScheduledFuture schedule(Runnable command, + long delay, + TimeUnit unit) { + if (command == null || unit == null) + throw new NullPointerException(); + long triggerTime = now() + unit.toNanos(delay); + RunnableScheduledFuture t = decorateTask(command, + new ScheduledFutureTask(command, null, triggerTime)); + delayedExecute(t); + return t; + } + + public ScheduledFuture schedule(Callable callable, + long delay, + TimeUnit unit) { + if (callable == null || unit == null) + throw new NullPointerException(); + if (delay < 0) delay = 0; + long triggerTime = now() + unit.toNanos(delay); + RunnableScheduledFuture t = decorateTask(callable, + new ScheduledFutureTask(callable, triggerTime)); + delayedExecute(t); + return t; + } + + public ScheduledFuture scheduleAtFixedRate(Runnable command, + long initialDelay, + long period, + TimeUnit unit) { + if (command == null || unit == null) + throw new NullPointerException(); + if (period <= 0) + throw new IllegalArgumentException(); + if (initialDelay < 0) initialDelay = 0; + long triggerTime = now() + unit.toNanos(initialDelay); + RunnableScheduledFuture t = decorateTask(command, + new ScheduledFutureTask(command, + null, + triggerTime, + unit.toNanos(period))); + delayedExecute(t); + return t; + } + + public ScheduledFuture scheduleWithFixedDelay(Runnable command, + long initialDelay, + long delay, + TimeUnit unit) { + if (command == null || unit == null) + throw new NullPointerException(); + if (delay <= 0) + throw new IllegalArgumentException(); + if (initialDelay < 0) initialDelay = 0; + long triggerTime = now() + unit.toNanos(initialDelay); + RunnableScheduledFuture t = decorateTask(command, + new ScheduledFutureTask(command, + null, + triggerTime, + unit.toNanos(-delay))); + delayedExecute(t); + return t; + } + + + /** + * Executes command with zero required delay. This has effect + * equivalent to schedule(command, 0, anyUnit). Note + * that inspections of the queue and of the list returned by + * shutdownNow will access the zero-delayed + * {@link ScheduledFuture}, not the command itself. + * + * @param command the task to execute + * @throws RejectedExecutionException at discretion of + * RejectedExecutionHandler, if task cannot be accepted + * for execution because the executor has been shut down. + * @throws NullPointerException if command is null + */ + public void execute(Runnable command) { + if (command == null) + throw new NullPointerException(); + schedule(command, 0, TimeUnit.NANOSECONDS); + } + + // Override AbstractExecutorService methods + + public Future submit(Runnable task) { + return schedule(task, 0, TimeUnit.NANOSECONDS); + } + + public Future submit(Runnable task, T result) { + return schedule(Executors.callable(task, result), + 0, TimeUnit.NANOSECONDS); + } + + public Future submit(Callable task) { + return schedule(task, 0, TimeUnit.NANOSECONDS); + } + + /** + * Sets the policy on whether to continue executing existing periodic + * tasks even when this executor has been shutdown. In + * this case, these tasks will only terminate upon + * shutdownNow, or after setting the policy to + * false when already shutdown. This value is by default + * false. + * + * @param value if true, continue after shutdown, else don't. + * @see #getContinueExistingPeriodicTasksAfterShutdownPolicy + */ + public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value) { + continueExistingPeriodicTasksAfterShutdown = value; + if (!value && isShutdown()) + cancelUnwantedTasks(); + } + + /** + * Gets the policy on whether to continue executing existing + * periodic tasks even when this executor has been + * shutdown. In this case, these tasks will only + * terminate upon shutdownNow or after setting the policy + * to false when already shutdown. This value is by + * default false. + * + * @return true if will continue after shutdown + * @see #setContinueExistingPeriodicTasksAfterShutdownPolicy + */ + public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy() { + return continueExistingPeriodicTasksAfterShutdown; + } + + /** + * Sets the policy on whether to execute existing delayed + * tasks even when this executor has been shutdown. In + * this case, these tasks will only terminate upon + * shutdownNow, or after setting the policy to + * false when already shutdown. This value is by default + * true. + * + * @param value if true, execute after shutdown, else don't. + * @see #getExecuteExistingDelayedTasksAfterShutdownPolicy + */ + public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value) { + executeExistingDelayedTasksAfterShutdown = value; + if (!value && isShutdown()) + cancelUnwantedTasks(); + } + + /** + * Gets the policy on whether to execute existing delayed + * tasks even when this executor has been shutdown. In + * this case, these tasks will only terminate upon + * shutdownNow, or after setting the policy to + * false when already shutdown. This value is by default + * true. + * + * @return true if will execute after shutdown + * @see #setExecuteExistingDelayedTasksAfterShutdownPolicy + */ + public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy() { + return executeExistingDelayedTasksAfterShutdown; + } + + + /** + * Initiates an orderly shutdown in which previously submitted + * tasks are executed, but no new tasks will be accepted. If the + * ExecuteExistingDelayedTasksAfterShutdownPolicy has + * been set false, existing delayed tasks whose delays + * have not yet elapsed are cancelled. And unless the + * ContinueExistingPeriodicTasksAfterShutdownPolicy has + * been set true, future executions of existing periodic + * tasks will be cancelled. + */ + public void shutdown() { + cancelUnwantedTasks(); + super.shutdown(); + } + + /** + * Attempts to stop all actively executing tasks, halts the + * processing of waiting tasks, and returns a list of the tasks + * that were awaiting execution. + * + *

There are no guarantees beyond best-effort attempts to stop + * processing actively executing tasks. This implementation + * cancels tasks via {@link Thread#interrupt}, so any task that + * fails to respond to interrupts may never terminate. + * + * @return list of tasks that never commenced execution. Each + * element of this list is a {@link ScheduledFuture}, + * including those tasks submitted using execute, which + * are for scheduling purposes used as the basis of a zero-delay + * ScheduledFuture. + * @throws SecurityException {@inheritDoc} + */ + public List shutdownNow() { + return super.shutdownNow(); + } + + /** + * Returns the task queue used by this executor. Each element of + * this queue is a {@link ScheduledFuture}, including those + * tasks submitted using execute which are for scheduling + * purposes used as the basis of a zero-delay + * ScheduledFuture. Iteration over this queue is + * not guaranteed to traverse tasks in the order in + * which they will execute. + * + * @return the task queue + */ + public BlockingQueue getQueue() { + return super.getQueue(); + } + + /** + * An annoying wrapper class to convince javac to use a + * DelayQueue as a BlockingQueue + */ + private static class DelayedWorkQueue + extends AbstractCollection + implements BlockingQueue { + + private final DelayQueue dq = new DelayQueue(); + public Runnable poll() { return dq.poll(); } + public Runnable peek() { return dq.peek(); } + public Runnable take() throws InterruptedException { return dq.take(); } + public Runnable poll(long timeout, TimeUnit unit) throws InterruptedException { + return dq.poll(timeout, unit); + } + + public boolean add(Runnable x) { + return dq.add((RunnableScheduledFuture)x); + } + public boolean offer(Runnable x) { + return dq.offer((RunnableScheduledFuture)x); + } + public void put(Runnable x) { + dq.put((RunnableScheduledFuture)x); + } + public boolean offer(Runnable x, long timeout, TimeUnit unit) { + return dq.offer((RunnableScheduledFuture)x, timeout, unit); + } + + public Runnable remove() { return dq.remove(); } + public Runnable element() { return dq.element(); } + public void clear() { dq.clear(); } + public int drainTo(Collection c) { return dq.drainTo(c); } + public int drainTo(Collection c, int maxElements) { + return dq.drainTo(c, maxElements); + } + + public int remainingCapacity() { return dq.remainingCapacity(); } + public boolean remove(Object x) { return dq.remove(x); } + public boolean contains(Object x) { return dq.contains(x); } + public int size() { return dq.size(); } + public boolean isEmpty() { return dq.isEmpty(); } + public Object[] toArray() { return dq.toArray(); } + public T[] toArray(T[] array) { return dq.toArray(array); } + public Iterator iterator() { + return new Iterator() { + private Iterator it = dq.iterator(); + public boolean hasNext() { return it.hasNext(); } + public Runnable next() { return it.next(); } + public void remove() { it.remove(); } + }; + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java b/libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java new file mode 100644 index 00000000000..94e9746ae85 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/Semaphore.java @@ -0,0 +1,681 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.*; +import java.util.concurrent.locks.*; +import java.util.concurrent.atomic.*; + +/** + * A counting semaphore. Conceptually, a semaphore maintains a set of + * permits. Each {@link #acquire} blocks if necessary until a permit is + * available, and then takes it. Each {@link #release} adds a permit, + * potentially releasing a blocking acquirer. + * However, no actual permit objects are used; the {@code Semaphore} just + * keeps a count of the number available and acts accordingly. + * + *

Semaphores are often used to restrict the number of threads than can + * access some (physical or logical) resource. For example, here is + * a class that uses a semaphore to control access to a pool of items: + *

+ * class Pool {
+ *   private static final int MAX_AVAILABLE = 100;
+ *   private final Semaphore available = new Semaphore(MAX_AVAILABLE, true);
+ *
+ *   public Object getItem() throws InterruptedException {
+ *     available.acquire();
+ *     return getNextAvailableItem();
+ *   }
+ *
+ *   public void putItem(Object x) {
+ *     if (markAsUnused(x))
+ *       available.release();
+ *   }
+ *
+ *   // Not a particularly efficient data structure; just for demo
+ *
+ *   protected Object[] items = ... whatever kinds of items being managed
+ *   protected boolean[] used = new boolean[MAX_AVAILABLE];
+ *
+ *   protected synchronized Object getNextAvailableItem() {
+ *     for (int i = 0; i < MAX_AVAILABLE; ++i) {
+ *       if (!used[i]) {
+ *          used[i] = true;
+ *          return items[i];
+ *       }
+ *     }
+ *     return null; // not reached
+ *   }
+ *
+ *   protected synchronized boolean markAsUnused(Object item) {
+ *     for (int i = 0; i < MAX_AVAILABLE; ++i) {
+ *       if (item == items[i]) {
+ *          if (used[i]) {
+ *            used[i] = false;
+ *            return true;
+ *          } else
+ *            return false;
+ *       }
+ *     }
+ *     return false;
+ *   }
+ *
+ * }
+ * 
+ * + *

Before obtaining an item each thread must acquire a permit from + * the semaphore, guaranteeing that an item is available for use. When + * the thread has finished with the item it is returned back to the + * pool and a permit is returned to the semaphore, allowing another + * thread to acquire that item. Note that no synchronization lock is + * held when {@link #acquire} is called as that would prevent an item + * from being returned to the pool. The semaphore encapsulates the + * synchronization needed to restrict access to the pool, separately + * from any synchronization needed to maintain the consistency of the + * pool itself. + * + *

A semaphore initialized to one, and which is used such that it + * only has at most one permit available, can serve as a mutual + * exclusion lock. This is more commonly known as a binary + * semaphore, because it only has two states: one permit + * available, or zero permits available. When used in this way, the + * binary semaphore has the property (unlike many {@link Lock} + * implementations), that the "lock" can be released by a + * thread other than the owner (as semaphores have no notion of + * ownership). This can be useful in some specialized contexts, such + * as deadlock recovery. + * + *

The constructor for this class optionally accepts a + * fairness parameter. When set false, this class makes no + * guarantees about the order in which threads acquire permits. In + * particular, barging is permitted, that is, a thread + * invoking {@link #acquire} can be allocated a permit ahead of a + * thread that has been waiting - logically the new thread places itself at + * the head of the queue of waiting threads. When fairness is set true, the + * semaphore guarantees that threads invoking any of the {@link + * #acquire() acquire} methods are selected to obtain permits in the order in + * which their invocation of those methods was processed + * (first-in-first-out; FIFO). Note that FIFO ordering necessarily + * applies to specific internal points of execution within these + * methods. So, it is possible for one thread to invoke + * {@code acquire} before another, but reach the ordering point after + * the other, and similarly upon return from the method. + * Also note that the untimed {@link #tryAcquire() tryAcquire} methods do not + * honor the fairness setting, but will take any permits that are + * available. + * + *

Generally, semaphores used to control resource access should be + * initialized as fair, to ensure that no thread is starved out from + * accessing a resource. When using semaphores for other kinds of + * synchronization control, the throughput advantages of non-fair + * ordering often outweigh fairness considerations. + * + *

This class also provides convenience methods to {@link + * #acquire(int) acquire} and {@link #release(int) release} multiple + * permits at a time. Beware of the increased risk of indefinite + * postponement when these methods are used without fairness set true. + * + *

Memory consistency effects: Actions in a thread prior to calling + * a "release" method such as {@code release()} + * happen-before + * actions following a successful "acquire" method such as {@code acquire()} + * in another thread. + * + * @since 1.5 + * @author Doug Lea + * + */ + +public class Semaphore implements java.io.Serializable { + private static final long serialVersionUID = -3222578661600680210L; + /** All mechanics via AbstractQueuedSynchronizer subclass */ + private final Sync sync; + + /** + * Synchronization implementation for semaphore. Uses AQS state + * to represent permits. Subclassed into fair and nonfair + * versions. + */ + abstract static class Sync extends AbstractQueuedSynchronizer { + private static final long serialVersionUID = 1192457210091910933L; + + Sync(int permits) { + setState(permits); + } + + final int getPermits() { + return getState(); + } + + final int nonfairTryAcquireShared(int acquires) { + for (;;) { + int available = getState(); + int remaining = available - acquires; + if (remaining < 0 || + compareAndSetState(available, remaining)) + return remaining; + } + } + + protected final boolean tryReleaseShared(int releases) { + for (;;) { + int p = getState(); + if (compareAndSetState(p, p + releases)) + return true; + } + } + + final void reducePermits(int reductions) { + for (;;) { + int current = getState(); + int next = current - reductions; + if (compareAndSetState(current, next)) + return; + } + } + + final int drainPermits() { + for (;;) { + int current = getState(); + if (current == 0 || compareAndSetState(current, 0)) + return current; + } + } + } + + /** + * NonFair version + */ + final static class NonfairSync extends Sync { + private static final long serialVersionUID = -2694183684443567898L; + + NonfairSync(int permits) { + super(permits); + } + + protected int tryAcquireShared(int acquires) { + return nonfairTryAcquireShared(acquires); + } + } + + /** + * Fair version + */ + final static class FairSync extends Sync { + private static final long serialVersionUID = 2014338818796000944L; + + FairSync(int permits) { + super(permits); + } + + protected int tryAcquireShared(int acquires) { + Thread current = Thread.currentThread(); + for (;;) { + Thread first = getFirstQueuedThread(); + if (first != null && first != current) + return -1; + int available = getState(); + int remaining = available - acquires; + if (remaining < 0 || + compareAndSetState(available, remaining)) + return remaining; + } + } + } + + /** + * Creates a {@code Semaphore} with the given number of + * permits and nonfair fairness setting. + * + * @param permits the initial number of permits available. + * This value may be negative, in which case releases + * must occur before any acquires will be granted. + */ + public Semaphore(int permits) { + sync = new NonfairSync(permits); + } + + /** + * Creates a {@code Semaphore} with the given number of + * permits and the given fairness setting. + * + * @param permits the initial number of permits available. + * This value may be negative, in which case releases + * must occur before any acquires will be granted. + * @param fair {@code true} if this semaphore will guarantee + * first-in first-out granting of permits under contention, + * else {@code false} + */ + public Semaphore(int permits, boolean fair) { + sync = (fair)? new FairSync(permits) : new NonfairSync(permits); + } + + /** + * Acquires a permit from this semaphore, blocking until one is + * available, or the thread is {@linkplain Thread#interrupt interrupted}. + * + *

Acquires a permit, if one is available and returns immediately, + * reducing the number of available permits by one. + * + *

If no permit is available then the current thread becomes + * disabled for thread scheduling purposes and lies dormant until + * one of two things happens: + *

    + *
  • Some other thread invokes the {@link #release} method for this + * semaphore and the current thread is next to be assigned a permit; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread. + *
+ * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * for a permit, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + * @throws InterruptedException if the current thread is interrupted + */ + public void acquire() throws InterruptedException { + sync.acquireSharedInterruptibly(1); + } + + /** + * Acquires a permit from this semaphore, blocking until one is + * available. + * + *

Acquires a permit, if one is available and returns immediately, + * reducing the number of available permits by one. + * + *

If no permit is available then the current thread becomes + * disabled for thread scheduling purposes and lies dormant until + * some other thread invokes the {@link #release} method for this + * semaphore and the current thread is next to be assigned a permit. + * + *

If the current thread is {@linkplain Thread#interrupt interrupted} + * while waiting for a permit then it will continue to wait, but the + * time at which the thread is assigned a permit may change compared to + * the time it would have received the permit had no interruption + * occurred. When the thread does return from this method its interrupt + * status will be set. + */ + public void acquireUninterruptibly() { + sync.acquireShared(1); + } + + /** + * Acquires a permit from this semaphore, only if one is available at the + * time of invocation. + * + *

Acquires a permit, if one is available and returns immediately, + * with the value {@code true}, + * reducing the number of available permits by one. + * + *

If no permit is available then this method will return + * immediately with the value {@code false}. + * + *

Even when this semaphore has been set to use a + * fair ordering policy, a call to {@code tryAcquire()} will + * immediately acquire a permit if one is available, whether or not + * other threads are currently waiting. + * This "barging" behavior can be useful in certain + * circumstances, even though it breaks fairness. If you want to honor + * the fairness setting, then use + * {@link #tryAcquire(long, TimeUnit) tryAcquire(0, TimeUnit.SECONDS) } + * which is almost equivalent (it also detects interruption). + * + * @return {@code true} if a permit was acquired and {@code false} + * otherwise + */ + public boolean tryAcquire() { + return sync.nonfairTryAcquireShared(1) >= 0; + } + + /** + * Acquires a permit from this semaphore, if one becomes available + * within the given waiting time and the current thread has not + * been {@linkplain Thread#interrupt interrupted}. + * + *

Acquires a permit, if one is available and returns immediately, + * with the value {@code true}, + * reducing the number of available permits by one. + * + *

If no permit is available then the current thread becomes + * disabled for thread scheduling purposes and lies dormant until + * one of three things happens: + *

    + *
  • Some other thread invokes the {@link #release} method for this + * semaphore and the current thread is next to be assigned a permit; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + *
  • The specified waiting time elapses. + *
+ * + *

If a permit is acquired then the value {@code true} is returned. + * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * to acquire a permit, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

If the specified waiting time elapses then the value {@code false} + * is returned. If the time is less than or equal to zero, the method + * will not wait at all. + * + * @param timeout the maximum time to wait for a permit + * @param unit the time unit of the {@code timeout} argument + * @return {@code true} if a permit was acquired and {@code false} + * if the waiting time elapsed before a permit was acquired + * @throws InterruptedException if the current thread is interrupted + */ + public boolean tryAcquire(long timeout, TimeUnit unit) + throws InterruptedException { + return sync.tryAcquireSharedNanos(1, unit.toNanos(timeout)); + } + + /** + * Releases a permit, returning it to the semaphore. + * + *

Releases a permit, increasing the number of available permits by + * one. If any threads are trying to acquire a permit, then one is + * selected and given the permit that was just released. That thread + * is (re)enabled for thread scheduling purposes. + * + *

There is no requirement that a thread that releases a permit must + * have acquired that permit by calling {@link #acquire}. + * Correct usage of a semaphore is established by programming convention + * in the application. + */ + public void release() { + sync.releaseShared(1); + } + + /** + * Acquires the given number of permits from this semaphore, + * blocking until all are available, + * or the thread is {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the given number of permits, if they are available, + * and returns immediately, reducing the number of available permits + * by the given amount. + * + *

If insufficient permits are available then the current thread becomes + * disabled for thread scheduling purposes and lies dormant until + * one of two things happens: + *

    + *
  • Some other thread invokes one of the {@link #release() release} + * methods for this semaphore, the current thread is next to be assigned + * permits and the number of available permits satisfies this request; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread. + *
+ * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * for a permit, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * Any permits that were to be assigned to this thread are instead + * assigned to other threads trying to acquire permits, as if + * permits had been made available by a call to {@link #release()}. + * + * @param permits the number of permits to acquire + * @throws InterruptedException if the current thread is interrupted + * @throws IllegalArgumentException if {@code permits} is negative + */ + public void acquire(int permits) throws InterruptedException { + if (permits < 0) throw new IllegalArgumentException(); + sync.acquireSharedInterruptibly(permits); + } + + /** + * Acquires the given number of permits from this semaphore, + * blocking until all are available. + * + *

Acquires the given number of permits, if they are available, + * and returns immediately, reducing the number of available permits + * by the given amount. + * + *

If insufficient permits are available then the current thread becomes + * disabled for thread scheduling purposes and lies dormant until + * some other thread invokes one of the {@link #release() release} + * methods for this semaphore, the current thread is next to be assigned + * permits and the number of available permits satisfies this request. + * + *

If the current thread is {@linkplain Thread#interrupt interrupted} + * while waiting for permits then it will continue to wait and its + * position in the queue is not affected. When the thread does return + * from this method its interrupt status will be set. + * + * @param permits the number of permits to acquire + * @throws IllegalArgumentException if {@code permits} is negative + * + */ + public void acquireUninterruptibly(int permits) { + if (permits < 0) throw new IllegalArgumentException(); + sync.acquireShared(permits); + } + + /** + * Acquires the given number of permits from this semaphore, only + * if all are available at the time of invocation. + * + *

Acquires the given number of permits, if they are available, and + * returns immediately, with the value {@code true}, + * reducing the number of available permits by the given amount. + * + *

If insufficient permits are available then this method will return + * immediately with the value {@code false} and the number of available + * permits is unchanged. + * + *

Even when this semaphore has been set to use a fair ordering + * policy, a call to {@code tryAcquire} will + * immediately acquire a permit if one is available, whether or + * not other threads are currently waiting. This + * "barging" behavior can be useful in certain + * circumstances, even though it breaks fairness. If you want to + * honor the fairness setting, then use {@link #tryAcquire(int, + * long, TimeUnit) tryAcquire(permits, 0, TimeUnit.SECONDS) } + * which is almost equivalent (it also detects interruption). + * + * @param permits the number of permits to acquire + * @return {@code true} if the permits were acquired and + * {@code false} otherwise + * @throws IllegalArgumentException if {@code permits} is negative + */ + public boolean tryAcquire(int permits) { + if (permits < 0) throw new IllegalArgumentException(); + return sync.nonfairTryAcquireShared(permits) >= 0; + } + + /** + * Acquires the given number of permits from this semaphore, if all + * become available within the given waiting time and the current + * thread has not been {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the given number of permits, if they are available and + * returns immediately, with the value {@code true}, + * reducing the number of available permits by the given amount. + * + *

If insufficient permits are available then + * the current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of three things happens: + *

    + *
  • Some other thread invokes one of the {@link #release() release} + * methods for this semaphore, the current thread is next to be assigned + * permits and the number of available permits satisfies this request; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + *
  • The specified waiting time elapses. + *
+ * + *

If the permits are acquired then the value {@code true} is returned. + * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * to acquire the permits, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * Any permits that were to be assigned to this thread, are instead + * assigned to other threads trying to acquire permits, as if + * the permits had been made available by a call to {@link #release()}. + * + *

If the specified waiting time elapses then the value {@code false} + * is returned. If the time is less than or equal to zero, the method + * will not wait at all. Any permits that were to be assigned to this + * thread, are instead assigned to other threads trying to acquire + * permits, as if the permits had been made available by a call to + * {@link #release()}. + * + * @param permits the number of permits to acquire + * @param timeout the maximum time to wait for the permits + * @param unit the time unit of the {@code timeout} argument + * @return {@code true} if all permits were acquired and {@code false} + * if the waiting time elapsed before all permits were acquired + * @throws InterruptedException if the current thread is interrupted + * @throws IllegalArgumentException if {@code permits} is negative + */ + public boolean tryAcquire(int permits, long timeout, TimeUnit unit) + throws InterruptedException { + if (permits < 0) throw new IllegalArgumentException(); + return sync.tryAcquireSharedNanos(permits, unit.toNanos(timeout)); + } + + /** + * Releases the given number of permits, returning them to the semaphore. + * + *

Releases the given number of permits, increasing the number of + * available permits by that amount. + * If any threads are trying to acquire permits, then one + * is selected and given the permits that were just released. + * If the number of available permits satisfies that thread's request + * then that thread is (re)enabled for thread scheduling purposes; + * otherwise the thread will wait until sufficient permits are available. + * If there are still permits available + * after this thread's request has been satisfied, then those permits + * are assigned in turn to other threads trying to acquire permits. + * + *

There is no requirement that a thread that releases a permit must + * have acquired that permit by calling {@link Semaphore#acquire acquire}. + * Correct usage of a semaphore is established by programming convention + * in the application. + * + * @param permits the number of permits to release + * @throws IllegalArgumentException if {@code permits} is negative + */ + public void release(int permits) { + if (permits < 0) throw new IllegalArgumentException(); + sync.releaseShared(permits); + } + + /** + * Returns the current number of permits available in this semaphore. + * + *

This method is typically used for debugging and testing purposes. + * + * @return the number of permits available in this semaphore + */ + public int availablePermits() { + return sync.getPermits(); + } + + /** + * Acquires and returns all permits that are immediately available. + * + * @return the number of permits acquired + */ + public int drainPermits() { + return sync.drainPermits(); + } + + /** + * Shrinks the number of available permits by the indicated + * reduction. This method can be useful in subclasses that use + * semaphores to track resources that become unavailable. This + * method differs from {@code acquire} in that it does not block + * waiting for permits to become available. + * + * @param reduction the number of permits to remove + * @throws IllegalArgumentException if {@code reduction} is negative + */ + protected void reducePermits(int reduction) { + if (reduction < 0) throw new IllegalArgumentException(); + sync.reducePermits(reduction); + } + + /** + * Returns {@code true} if this semaphore has fairness set true. + * + * @return {@code true} if this semaphore has fairness set true + */ + public boolean isFair() { + return sync instanceof FairSync; + } + + /** + * Queries whether any threads are waiting to acquire. Note that + * because cancellations may occur at any time, a {@code true} + * return does not guarantee that any other thread will ever + * acquire. This method is designed primarily for use in + * monitoring of the system state. + * + * @return {@code true} if there may be other threads waiting to + * acquire the lock + */ + public final boolean hasQueuedThreads() { + return sync.hasQueuedThreads(); + } + + /** + * Returns an estimate of the number of threads waiting to acquire. + * The value is only an estimate because the number of threads may + * change dynamically while this method traverses internal data + * structures. This method is designed for use in monitoring of the + * system state, not for synchronization control. + * + * @return the estimated number of threads waiting for this lock + */ + public final int getQueueLength() { + return sync.getQueueLength(); + } + + /** + * Returns a collection containing threads that may be waiting to acquire. + * Because the actual set of threads may change dynamically while + * constructing this result, the returned collection is only a best-effort + * estimate. The elements of the returned collection are in no particular + * order. This method is designed to facilitate construction of + * subclasses that provide more extensive monitoring facilities. + * + * @return the collection of threads + */ + protected Collection getQueuedThreads() { + return sync.getQueuedThreads(); + } + + /** + * Returns a string identifying this semaphore, as well as its state. + * The state, in brackets, includes the String {@code "Permits ="} + * followed by the number of permits. + * + * @return a string identifying this semaphore, as well as its state + */ + public String toString() { + return super.toString() + "[Permits = " + sync.getPermits() + "]"; + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java b/libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java new file mode 100644 index 00000000000..e47e0401cfe --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java @@ -0,0 +1,1127 @@ +/* + * Written by Doug Lea, Bill Scherer, and Michael Scott with + * assistance from members of JCP JSR-166 Expert Group and released to + * the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.locks.*; +import java.util.concurrent.atomic.*; +import java.util.*; + +/** + * A {@linkplain BlockingQueue blocking queue} in which each insert + * operation must wait for a corresponding remove operation by another + * thread, and vice versa. A synchronous queue does not have any + * internal capacity, not even a capacity of one. You cannot + * peek at a synchronous queue because an element is only + * present when you try to remove it; you cannot insert an element + * (using any method) unless another thread is trying to remove it; + * you cannot iterate as there is nothing to iterate. The + * head of the queue is the element that the first queued + * inserting thread is trying to add to the queue; if there is no such + * queued thread then no element is available for removal and + * poll() will return null. For purposes of other + * Collection methods (for example contains), a + * SynchronousQueue acts as an empty collection. This queue + * does not permit null elements. + * + *

Synchronous queues are similar to rendezvous channels used in + * CSP and Ada. They are well suited for handoff designs, in which an + * object running in one thread must sync up with an object running + * in another thread in order to hand it some information, event, or + * task. + * + *

This class supports an optional fairness policy for ordering + * waiting producer and consumer threads. By default, this ordering + * is not guaranteed. However, a queue constructed with fairness set + * to true grants threads access in FIFO order. + * + *

This class and its iterator implement all of the + * optional methods of the {@link Collection} and {@link + * Iterator} interfaces. + * + *

This class is a member of the + * + * Java Collections Framework. + * + * @since 1.5 + * @author Doug Lea and Bill Scherer and Michael Scott + * @param the type of elements held in this collection + */ +public class SynchronousQueue extends AbstractQueue + implements BlockingQueue, java.io.Serializable { + private static final long serialVersionUID = -3223113410248163686L; + + /* + * This class implements extensions of the dual stack and dual + * queue algorithms described in "Nonblocking Concurrent Objects + * with Condition Synchronization", by W. N. Scherer III and + * M. L. Scott. 18th Annual Conf. on Distributed Computing, + * Oct. 2004 (see also + * http://www.cs.rochester.edu/u/scott/synchronization/pseudocode/duals.html). + * The (Lifo) stack is used for non-fair mode, and the (Fifo) + * queue for fair mode. The performance of the two is generally + * similar. Fifo usually supports higher throughput under + * contention but Lifo maintains higher thread locality in common + * applications. + * + * A dual queue (and similarly stack) is one that at any given + * time either holds "data" -- items provided by put operations, + * or "requests" -- slots representing take operations, or is + * empty. A call to "fulfill" (i.e., a call requesting an item + * from a queue holding data or vice versa) dequeues a + * complementary node. The most interesting feature of these + * queues is that any operation can figure out which mode the + * queue is in, and act accordingly without needing locks. + * + * Both the queue and stack extend abstract class Transferer + * defining the single method transfer that does a put or a + * take. These are unified into a single method because in dual + * data structures, the put and take operations are symmetrical, + * so nearly all code can be combined. The resulting transfer + * methods are on the long side, but are easier to follow than + * they would be if broken up into nearly-duplicated parts. + * + * The queue and stack data structures share many conceptual + * similarities but very few concrete details. For simplicity, + * they are kept distinct so that they can later evolve + * separately. + * + * The algorithms here differ from the versions in the above paper + * in extending them for use in synchronous queues, as well as + * dealing with cancellation. The main differences include: + * + * 1. The original algorithms used bit-marked pointers, but + * the ones here use mode bits in nodes, leading to a number + * of further adaptations. + * 2. SynchronousQueues must block threads waiting to become + * fulfilled. + * 3. Support for cancellation via timeout and interrupts, + * including cleaning out cancelled nodes/threads + * from lists to avoid garbage retention and memory depletion. + * + * Blocking is mainly accomplished using LockSupport park/unpark, + * except that nodes that appear to be the next ones to become + * fulfilled first spin a bit (on multiprocessors only). On very + * busy synchronous queues, spinning can dramatically improve + * throughput. And on less busy ones, the amount of spinning is + * small enough not to be noticeable. + * + * Cleaning is done in different ways in queues vs stacks. For + * queues, we can almost always remove a node immediately in O(1) + * time (modulo retries for consistency checks) when it is + * cancelled. But if it may be pinned as the current tail, it must + * wait until some subsequent cancellation. For stacks, we need a + * potentially O(n) traversal to be sure that we can remove the + * node, but this can run concurrently with other threads + * accessing the stack. + * + * While garbage collection takes care of most node reclamation + * issues that otherwise complicate nonblocking algorithms, care + * is taken to "forget" references to data, other nodes, and + * threads that might be held on to long-term by blocked + * threads. In cases where setting to null would otherwise + * conflict with main algorithms, this is done by changing a + * node's link to now point to the node itself. This doesn't arise + * much for Stack nodes (because blocked threads do not hang on to + * old head pointers), but references in Queue nodes must be + * aggressively forgotten to avoid reachability of everything any + * node has ever referred to since arrival. + */ + + /** + * Shared internal API for dual stacks and queues. + */ + static abstract class Transferer { + /** + * Performs a put or take. + * + * @param e if non-null, the item to be handed to a consumer; + * if null, requests that transfer return an item + * offered by producer. + * @param timed if this operation should timeout + * @param nanos the timeout, in nanoseconds + * @return if non-null, the item provided or received; if null, + * the operation failed due to timeout or interrupt -- + * the caller can distinguish which of these occurred + * by checking Thread.interrupted. + */ + abstract Object transfer(Object e, boolean timed, long nanos); + } + + /** The number of CPUs, for spin control */ + static final int NCPUS = Runtime.getRuntime().availableProcessors(); + + /** + * The number of times to spin before blocking in timed waits. + * The value is empirically derived -- it works well across a + * variety of processors and OSes. Empirically, the best value + * seems not to vary with number of CPUs (beyond 2) so is just + * a constant. + */ + static final int maxTimedSpins = (NCPUS < 2)? 0 : 32; + + /** + * The number of times to spin before blocking in untimed waits. + * This is greater than timed value because untimed waits spin + * faster since they don't need to check times on each spin. + */ + static final int maxUntimedSpins = maxTimedSpins * 16; + + /** + * The number of nanoseconds for which it is faster to spin + * rather than to use timed park. A rough estimate suffices. + */ + static final long spinForTimeoutThreshold = 1000L; + + /** Dual stack */ + static final class TransferStack extends Transferer { + /* + * This extends Scherer-Scott dual stack algorithm, differing, + * among other ways, by using "covering" nodes rather than + * bit-marked pointers: Fulfilling operations push on marker + * nodes (with FULFILLING bit set in mode) to reserve a spot + * to match a waiting node. + */ + + /* Modes for SNodes, ORed together in node fields */ + /** Node represents an unfulfilled consumer */ + static final int REQUEST = 0; + /** Node represents an unfulfilled producer */ + static final int DATA = 1; + /** Node is fulfilling another unfulfilled DATA or REQUEST */ + static final int FULFILLING = 2; + + /** Return true if m has fulfilling bit set */ + static boolean isFulfilling(int m) { return (m & FULFILLING) != 0; } + + /** Node class for TransferStacks. */ + static final class SNode { + volatile SNode next; // next node in stack + volatile SNode match; // the node matched to this + volatile Thread waiter; // to control park/unpark + Object item; // data; or null for REQUESTs + int mode; + // Note: item and mode fields don't need to be volatile + // since they are always written before, and read after, + // other volatile/atomic operations. + + SNode(Object item) { + this.item = item; + } + + static final AtomicReferenceFieldUpdater + nextUpdater = AtomicReferenceFieldUpdater.newUpdater + (SNode.class, SNode.class, "next"); + + boolean casNext(SNode cmp, SNode val) { + return (cmp == next && + nextUpdater.compareAndSet(this, cmp, val)); + } + + static final AtomicReferenceFieldUpdater + matchUpdater = AtomicReferenceFieldUpdater.newUpdater + (SNode.class, SNode.class, "match"); + + /** + * Tries to match node s to this node, if so, waking up thread. + * Fulfillers call tryMatch to identify their waiters. + * Waiters block until they have been matched. + * + * @param s the node to match + * @return true if successfully matched to s + */ + boolean tryMatch(SNode s) { + if (match == null && + matchUpdater.compareAndSet(this, null, s)) { + Thread w = waiter; + if (w != null) { // waiters need at most one unpark + waiter = null; + LockSupport.unpark(w); + } + return true; + } + return match == s; + } + + /** + * Tries to cancel a wait by matching node to itself. + */ + void tryCancel() { + matchUpdater.compareAndSet(this, null, this); + } + + boolean isCancelled() { + return match == this; + } + } + + /** The head (top) of the stack */ + volatile SNode head; + + static final AtomicReferenceFieldUpdater + headUpdater = AtomicReferenceFieldUpdater.newUpdater + (TransferStack.class, SNode.class, "head"); + + boolean casHead(SNode h, SNode nh) { + return h == head && headUpdater.compareAndSet(this, h, nh); + } + + /** + * Creates or resets fields of a node. Called only from transfer + * where the node to push on stack is lazily created and + * reused when possible to help reduce intervals between reads + * and CASes of head and to avoid surges of garbage when CASes + * to push nodes fail due to contention. + */ + static SNode snode(SNode s, Object e, SNode next, int mode) { + if (s == null) s = new SNode(e); + s.mode = mode; + s.next = next; + return s; + } + + /** + * Puts or takes an item. + */ + Object transfer(Object e, boolean timed, long nanos) { + /* + * Basic algorithm is to loop trying one of three actions: + * + * 1. If apparently empty or already containing nodes of same + * mode, try to push node on stack and wait for a match, + * returning it, or null if cancelled. + * + * 2. If apparently containing node of complementary mode, + * try to push a fulfilling node on to stack, match + * with corresponding waiting node, pop both from + * stack, and return matched item. The matching or + * unlinking might not actually be necessary because of + * other threads performing action 3: + * + * 3. If top of stack already holds another fulfilling node, + * help it out by doing its match and/or pop + * operations, and then continue. The code for helping + * is essentially the same as for fulfilling, except + * that it doesn't return the item. + */ + + SNode s = null; // constructed/reused as needed + int mode = (e == null)? REQUEST : DATA; + + for (;;) { + SNode h = head; + if (h == null || h.mode == mode) { // empty or same-mode + if (timed && nanos <= 0) { // can't wait + if (h != null && h.isCancelled()) + casHead(h, h.next); // pop cancelled node + else + return null; + } else if (casHead(h, s = snode(s, e, h, mode))) { + SNode m = awaitFulfill(s, timed, nanos); + if (m == s) { // wait was cancelled + clean(s); + return null; + } + if ((h = head) != null && h.next == s) + casHead(h, s.next); // help s's fulfiller + return mode == REQUEST? m.item : s.item; + } + } else if (!isFulfilling(h.mode)) { // try to fulfill + if (h.isCancelled()) // already cancelled + casHead(h, h.next); // pop and retry + else if (casHead(h, s=snode(s, e, h, FULFILLING|mode))) { + for (;;) { // loop until matched or waiters disappear + SNode m = s.next; // m is s's match + if (m == null) { // all waiters are gone + casHead(s, null); // pop fulfill node + s = null; // use new node next time + break; // restart main loop + } + SNode mn = m.next; + if (m.tryMatch(s)) { + casHead(s, mn); // pop both s and m + return (mode == REQUEST)? m.item : s.item; + } else // lost match + s.casNext(m, mn); // help unlink + } + } + } else { // help a fulfiller + SNode m = h.next; // m is h's match + if (m == null) // waiter is gone + casHead(h, null); // pop fulfilling node + else { + SNode mn = m.next; + if (m.tryMatch(h)) // help match + casHead(h, mn); // pop both h and m + else // lost match + h.casNext(m, mn); // help unlink + } + } + } + } + + /** + * Spins/blocks until node s is matched by a fulfill operation. + * + * @param s the waiting node + * @param timed true if timed wait + * @param nanos timeout value + * @return matched node, or s if cancelled + */ + SNode awaitFulfill(SNode s, boolean timed, long nanos) { + /* + * When a node/thread is about to block, it sets its waiter + * field and then rechecks state at least one more time + * before actually parking, thus covering race vs + * fulfiller noticing that waiter is non-null so should be + * woken. + * + * When invoked by nodes that appear at the point of call + * to be at the head of the stack, calls to park are + * preceded by spins to avoid blocking when producers and + * consumers are arriving very close in time. This can + * happen enough to bother only on multiprocessors. + * + * The order of checks for returning out of main loop + * reflects fact that interrupts have precedence over + * normal returns, which have precedence over + * timeouts. (So, on timeout, one last check for match is + * done before giving up.) Except that calls from untimed + * SynchronousQueue.{poll/offer} don't check interrupts + * and don't wait at all, so are trapped in transfer + * method rather than calling awaitFulfill. + */ + long lastTime = (timed)? System.nanoTime() : 0; + Thread w = Thread.currentThread(); + SNode h = head; + int spins = (shouldSpin(s)? + (timed? maxTimedSpins : maxUntimedSpins) : 0); + for (;;) { + if (w.isInterrupted()) + s.tryCancel(); + SNode m = s.match; + if (m != null) + return m; + if (timed) { + long now = System.nanoTime(); + nanos -= now - lastTime; + lastTime = now; + if (nanos <= 0) { + s.tryCancel(); + continue; + } + } + if (spins > 0) + spins = shouldSpin(s)? (spins-1) : 0; + else if (s.waiter == null) + s.waiter = w; // establish waiter so can park next iter + else if (!timed) + LockSupport.park(this); + else if (nanos > spinForTimeoutThreshold) + LockSupport.parkNanos(this, nanos); + } + } + + /** + * Returns true if node s is at head or there is an active + * fulfiller. + */ + boolean shouldSpin(SNode s) { + SNode h = head; + return (h == s || h == null || isFulfilling(h.mode)); + } + + /** + * Unlinks s from the stack. + */ + void clean(SNode s) { + s.item = null; // forget item + s.waiter = null; // forget thread + + /* + * At worst we may need to traverse entire stack to unlink + * s. If there are multiple concurrent calls to clean, we + * might not see s if another thread has already removed + * it. But we can stop when we see any node known to + * follow s. We use s.next unless it too is cancelled, in + * which case we try the node one past. We don't check any + * further because we don't want to doubly traverse just to + * find sentinel. + */ + + SNode past = s.next; + if (past != null && past.isCancelled()) + past = past.next; + + // Absorb cancelled nodes at head + SNode p; + while ((p = head) != null && p != past && p.isCancelled()) + casHead(p, p.next); + + // Unsplice embedded nodes + while (p != null && p != past) { + SNode n = p.next; + if (n != null && n.isCancelled()) + p.casNext(n, n.next); + else + p = n; + } + } + } + + /** Dual Queue */ + static final class TransferQueue extends Transferer { + /* + * This extends Scherer-Scott dual queue algorithm, differing, + * among other ways, by using modes within nodes rather than + * marked pointers. The algorithm is a little simpler than + * that for stacks because fulfillers do not need explicit + * nodes, and matching is done by CAS'ing QNode.item field + * from non-null to null (for put) or vice versa (for take). + */ + + /** Node class for TransferQueue. */ + static final class QNode { + volatile QNode next; // next node in queue + volatile Object item; // CAS'ed to or from null + volatile Thread waiter; // to control park/unpark + final boolean isData; + + QNode(Object item, boolean isData) { + this.item = item; + this.isData = isData; + } + + static final AtomicReferenceFieldUpdater + nextUpdater = AtomicReferenceFieldUpdater.newUpdater + (QNode.class, QNode.class, "next"); + + boolean casNext(QNode cmp, QNode val) { + return (next == cmp && + nextUpdater.compareAndSet(this, cmp, val)); + } + + static final AtomicReferenceFieldUpdater + itemUpdater = AtomicReferenceFieldUpdater.newUpdater + (QNode.class, Object.class, "item"); + + boolean casItem(Object cmp, Object val) { + return (item == cmp && + itemUpdater.compareAndSet(this, cmp, val)); + } + + /** + * Tries to cancel by CAS'ing ref to this as item. + */ + void tryCancel(Object cmp) { + itemUpdater.compareAndSet(this, cmp, this); + } + + boolean isCancelled() { + return item == this; + } + + /** + * Returns true if this node is known to be off the queue + * because its next pointer has been forgotten due to + * an advanceHead operation. + */ + boolean isOffList() { + return next == this; + } + } + + /** Head of queue */ + transient volatile QNode head; + /** Tail of queue */ + transient volatile QNode tail; + /** + * Reference to a cancelled node that might not yet have been + * unlinked from queue because it was the last inserted node + * when it cancelled. + */ + transient volatile QNode cleanMe; + + TransferQueue() { + QNode h = new QNode(null, false); // initialize to dummy node. + head = h; + tail = h; + } + + static final AtomicReferenceFieldUpdater + headUpdater = AtomicReferenceFieldUpdater.newUpdater + (TransferQueue.class, QNode.class, "head"); + + /** + * Tries to cas nh as new head; if successful, unlink + * old head's next node to avoid garbage retention. + */ + void advanceHead(QNode h, QNode nh) { + if (h == head && headUpdater.compareAndSet(this, h, nh)) + h.next = h; // forget old next + } + + static final AtomicReferenceFieldUpdater + tailUpdater = AtomicReferenceFieldUpdater.newUpdater + (TransferQueue.class, QNode.class, "tail"); + + /** + * Tries to cas nt as new tail. + */ + void advanceTail(QNode t, QNode nt) { + if (tail == t) + tailUpdater.compareAndSet(this, t, nt); + } + + static final AtomicReferenceFieldUpdater + cleanMeUpdater = AtomicReferenceFieldUpdater.newUpdater + (TransferQueue.class, QNode.class, "cleanMe"); + + /** + * Tries to CAS cleanMe slot. + */ + boolean casCleanMe(QNode cmp, QNode val) { + return (cleanMe == cmp && + cleanMeUpdater.compareAndSet(this, cmp, val)); + } + + /** + * Puts or takes an item. + */ + Object transfer(Object e, boolean timed, long nanos) { + /* Basic algorithm is to loop trying to take either of + * two actions: + * + * 1. If queue apparently empty or holding same-mode nodes, + * try to add node to queue of waiters, wait to be + * fulfilled (or cancelled) and return matching item. + * + * 2. If queue apparently contains waiting items, and this + * call is of complementary mode, try to fulfill by CAS'ing + * item field of waiting node and dequeuing it, and then + * returning matching item. + * + * In each case, along the way, check for and try to help + * advance head and tail on behalf of other stalled/slow + * threads. + * + * The loop starts off with a null check guarding against + * seeing uninitialized head or tail values. This never + * happens in current SynchronousQueue, but could if + * callers held non-volatile/final ref to the + * transferer. The check is here anyway because it places + * null checks at top of loop, which is usually faster + * than having them implicitly interspersed. + */ + + QNode s = null; // constructed/reused as needed + boolean isData = (e != null); + + for (;;) { + QNode t = tail; + QNode h = head; + if (t == null || h == null) // saw uninitialized value + continue; // spin + + if (h == t || t.isData == isData) { // empty or same-mode + QNode tn = t.next; + if (t != tail) // inconsistent read + continue; + if (tn != null) { // lagging tail + advanceTail(t, tn); + continue; + } + if (timed && nanos <= 0) // can't wait + return null; + if (s == null) + s = new QNode(e, isData); + if (!t.casNext(null, s)) // failed to link in + continue; + + advanceTail(t, s); // swing tail and wait + Object x = awaitFulfill(s, e, timed, nanos); + if (x == s) { // wait was cancelled + clean(t, s); + return null; + } + + if (!s.isOffList()) { // not already unlinked + advanceHead(t, s); // unlink if head + if (x != null) // and forget fields + s.item = s; + s.waiter = null; + } + return (x != null)? x : e; + + } else { // complementary-mode + QNode m = h.next; // node to fulfill + if (t != tail || m == null || h != head) + continue; // inconsistent read + + Object x = m.item; + if (isData == (x != null) || // m already fulfilled + x == m || // m cancelled + !m.casItem(x, e)) { // lost CAS + advanceHead(h, m); // dequeue and retry + continue; + } + + advanceHead(h, m); // successfully fulfilled + LockSupport.unpark(m.waiter); + return (x != null)? x : e; + } + } + } + + /** + * Spins/blocks until node s is fulfilled. + * + * @param s the waiting node + * @param e the comparison value for checking match + * @param timed true if timed wait + * @param nanos timeout value + * @return matched item, or s if cancelled + */ + Object awaitFulfill(QNode s, Object e, boolean timed, long nanos) { + /* Same idea as TransferStack.awaitFulfill */ + long lastTime = (timed)? System.nanoTime() : 0; + Thread w = Thread.currentThread(); + int spins = ((head.next == s) ? + (timed? maxTimedSpins : maxUntimedSpins) : 0); + for (;;) { + if (w.isInterrupted()) + s.tryCancel(e); + Object x = s.item; + if (x != e) + return x; + if (timed) { + long now = System.nanoTime(); + nanos -= now - lastTime; + lastTime = now; + if (nanos <= 0) { + s.tryCancel(e); + continue; + } + } + if (spins > 0) + --spins; + else if (s.waiter == null) + s.waiter = w; + else if (!timed) + LockSupport.park(this); + else if (nanos > spinForTimeoutThreshold) + LockSupport.parkNanos(this, nanos); + } + } + + /** + * Gets rid of cancelled node s with original predecessor pred. + */ + void clean(QNode pred, QNode s) { + s.waiter = null; // forget thread + /* + * At any given time, exactly one node on list cannot be + * deleted -- the last inserted node. To accommodate this, + * if we cannot delete s, we save its predecessor as + * "cleanMe", deleting the previously saved version + * first. At least one of node s or the node previously + * saved can always be deleted, so this always terminates. + */ + while (pred.next == s) { // Return early if already unlinked + QNode h = head; + QNode hn = h.next; // Absorb cancelled first node as head + if (hn != null && hn.isCancelled()) { + advanceHead(h, hn); + continue; + } + QNode t = tail; // Ensure consistent read for tail + if (t == h) + return; + QNode tn = t.next; + if (t != tail) + continue; + if (tn != null) { + advanceTail(t, tn); + continue; + } + if (s != t) { // If not tail, try to unsplice + QNode sn = s.next; + if (sn == s || pred.casNext(s, sn)) + return; + } + QNode dp = cleanMe; + if (dp != null) { // Try unlinking previous cancelled node + QNode d = dp.next; + QNode dn; + if (d == null || // d is gone or + d == dp || // d is off list or + !d.isCancelled() || // d not cancelled or + (d != t && // d not tail and + (dn = d.next) != null && // has successor + dn != d && // that is on list + dp.casNext(d, dn))) // d unspliced + casCleanMe(dp, null); + if (dp == pred) + return; // s is already saved node + } else if (casCleanMe(null, pred)) + return; // Postpone cleaning s + } + } + } + + /** + * The transferer. Set only in constructor, but cannot be declared + * as final without further complicating serialization. Since + * this is accessed only at most once per public method, there + * isn't a noticeable performance penalty for using volatile + * instead of final here. + */ + private transient volatile Transferer transferer; + + /** + * Creates a SynchronousQueue with nonfair access policy. + */ + public SynchronousQueue() { + this(false); + } + + /** + * Creates a SynchronousQueue with the specified fairness policy. + * + * @param fair if true, waiting threads contend in FIFO order for + * access; otherwise the order is unspecified. + */ + public SynchronousQueue(boolean fair) { + transferer = (fair)? new TransferQueue() : new TransferStack(); + } + + /** + * Adds the specified element to this queue, waiting if necessary for + * another thread to receive it. + * + * @throws InterruptedException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public void put(E o) throws InterruptedException { + if (o == null) throw new NullPointerException(); + if (transferer.transfer(o, false, 0) == null) { + Thread.interrupted(); + throw new InterruptedException(); + } + } + + /** + * Inserts the specified element into this queue, waiting if necessary + * up to the specified wait time for another thread to receive it. + * + * @return true if successful, or false if the + * specified waiting time elapses before a consumer appears. + * @throws InterruptedException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + */ + public boolean offer(E o, long timeout, TimeUnit unit) + throws InterruptedException { + if (o == null) throw new NullPointerException(); + if (transferer.transfer(o, true, unit.toNanos(timeout)) != null) + return true; + if (!Thread.interrupted()) + return false; + throw new InterruptedException(); + } + + /** + * Inserts the specified element into this queue, if another thread is + * waiting to receive it. + * + * @param e the element to add + * @return true if the element was added to this queue, else + * false + * @throws NullPointerException if the specified element is null + */ + public boolean offer(E e) { + if (e == null) throw new NullPointerException(); + return transferer.transfer(e, true, 0) != null; + } + + /** + * Retrieves and removes the head of this queue, waiting if necessary + * for another thread to insert it. + * + * @return the head of this queue + * @throws InterruptedException {@inheritDoc} + */ + public E take() throws InterruptedException { + Object e = transferer.transfer(null, false, 0); + if (e != null) + return (E)e; + Thread.interrupted(); + throw new InterruptedException(); + } + + /** + * Retrieves and removes the head of this queue, waiting + * if necessary up to the specified wait time, for another thread + * to insert it. + * + * @return the head of this queue, or null if the + * specified waiting time elapses before an element is present. + * @throws InterruptedException {@inheritDoc} + */ + public E poll(long timeout, TimeUnit unit) throws InterruptedException { + Object e = transferer.transfer(null, true, unit.toNanos(timeout)); + if (e != null || !Thread.interrupted()) + return (E)e; + throw new InterruptedException(); + } + + /** + * Retrieves and removes the head of this queue, if another thread + * is currently making an element available. + * + * @return the head of this queue, or null if no + * element is available. + */ + public E poll() { + return (E)transferer.transfer(null, true, 0); + } + + /** + * Always returns true. + * A SynchronousQueue has no internal capacity. + * + * @return true + */ + public boolean isEmpty() { + return true; + } + + /** + * Always returns zero. + * A SynchronousQueue has no internal capacity. + * + * @return zero. + */ + public int size() { + return 0; + } + + /** + * Always returns zero. + * A SynchronousQueue has no internal capacity. + * + * @return zero. + */ + public int remainingCapacity() { + return 0; + } + + /** + * Does nothing. + * A SynchronousQueue has no internal capacity. + */ + public void clear() { + } + + /** + * Always returns false. + * A SynchronousQueue has no internal capacity. + * + * @param o the element + * @return false + */ + public boolean contains(Object o) { + return false; + } + + /** + * Always returns false. + * A SynchronousQueue has no internal capacity. + * + * @param o the element to remove + * @return false + */ + public boolean remove(Object o) { + return false; + } + + /** + * Returns false unless the given collection is empty. + * A SynchronousQueue has no internal capacity. + * + * @param c the collection + * @return false unless given collection is empty + */ + public boolean containsAll(Collection c) { + return c.isEmpty(); + } + + /** + * Always returns false. + * A SynchronousQueue has no internal capacity. + * + * @param c the collection + * @return false + */ + public boolean removeAll(Collection c) { + return false; + } + + /** + * Always returns false. + * A SynchronousQueue has no internal capacity. + * + * @param c the collection + * @return false + */ + public boolean retainAll(Collection c) { + return false; + } + + /** + * Always returns null. + * A SynchronousQueue does not return elements + * unless actively waited on. + * + * @return null + */ + public E peek() { + return null; + } + + static class EmptyIterator implements Iterator { + public boolean hasNext() { + return false; + } + public E next() { + throw new NoSuchElementException(); + } + public void remove() { + throw new IllegalStateException(); + } + } + + /** + * Returns an empty iterator in which hasNext always returns + * false. + * + * @return an empty iterator + */ + public Iterator iterator() { + return new EmptyIterator(); + } + + /** + * Returns a zero-length array. + * @return a zero-length array + */ + public Object[] toArray() { + return new Object[0]; + } + + /** + * Sets the zeroeth element of the specified array to null + * (if the array has non-zero length) and returns it. + * + * @param a the array + * @return the specified array + * @throws NullPointerException if the specified array is null + */ + public T[] toArray(T[] a) { + if (a.length > 0) + a[0] = null; + return a; + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + int n = 0; + E e; + while ( (e = poll()) != null) { + c.add(e); + ++n; + } + return n; + } + + /** + * @throws UnsupportedOperationException {@inheritDoc} + * @throws ClassCastException {@inheritDoc} + * @throws NullPointerException {@inheritDoc} + * @throws IllegalArgumentException {@inheritDoc} + */ + public int drainTo(Collection c, int maxElements) { + if (c == null) + throw new NullPointerException(); + if (c == this) + throw new IllegalArgumentException(); + int n = 0; + E e; + while (n < maxElements && (e = poll()) != null) { + c.add(e); + ++n; + } + return n; + } + + /* + * To cope with serialization strategy in the 1.5 version of + * SynchronousQueue, we declare some unused classes and fields + * that exist solely to enable serializability across versions. + * These fields are never used, so are initialized only if this + * object is ever serialized or deserialized. + */ + + static class WaitQueue implements java.io.Serializable { } + static class LifoWaitQueue extends WaitQueue { + private static final long serialVersionUID = -3633113410248163686L; + } + static class FifoWaitQueue extends WaitQueue { + private static final long serialVersionUID = -3623113410248163686L; + } + private ReentrantLock qlock; + private WaitQueue waitingProducers; + private WaitQueue waitingConsumers; + + /** + * Save the state to a stream (that is, serialize it). + * + * @param s the stream + */ + private void writeObject(java.io.ObjectOutputStream s) + throws java.io.IOException { + boolean fair = transferer instanceof TransferQueue; + if (fair) { + qlock = new ReentrantLock(true); + waitingProducers = new FifoWaitQueue(); + waitingConsumers = new FifoWaitQueue(); + } + else { + qlock = new ReentrantLock(); + waitingProducers = new LifoWaitQueue(); + waitingConsumers = new LifoWaitQueue(); + } + s.defaultWriteObject(); + } + + private void readObject(final java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + s.defaultReadObject(); + if (waitingProducers instanceof FifoWaitQueue) + transferer = new TransferQueue(); + else + transferer = new TransferStack(); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ThreadFactory.java b/libjava/classpath/external/jsr166/java/util/concurrent/ThreadFactory.java new file mode 100644 index 00000000000..eca8dceb0e9 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ThreadFactory.java @@ -0,0 +1,40 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * An object that creates new threads on demand. Using thread factories + * removes hardwiring of calls to {@link Thread#Thread(Runnable) new Thread}, + * enabling applications to use special thread subclasses, priorities, etc. + * + *

+ * The simplest implementation of this interface is just: + *

+ * class SimpleThreadFactory implements ThreadFactory {
+ *   public Thread newThread(Runnable r) {
+ *     return new Thread(r);
+ *   }
+ * }
+ * 
+ * + * The {@link Executors#defaultThreadFactory} method provides a more + * useful simple implementation, that sets the created thread context + * to known values before returning it. + * @since 1.5 + * @author Doug Lea + */ +public interface ThreadFactory { + + /** + * Constructs a new Thread. Implementations may also initialize + * priority, name, daemon status, ThreadGroup, etc. + * + * @param r a runnable to be executed by new thread instance + * @return constructed thread + */ + Thread newThread(Runnable r); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java b/libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java new file mode 100644 index 00000000000..ea89a2c082f --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java @@ -0,0 +1,1605 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; +import java.util.concurrent.locks.*; +import java.util.*; + +/** + * An {@link ExecutorService} that executes each submitted task using + * one of possibly several pooled threads, normally configured + * using {@link Executors} factory methods. + * + *

Thread pools address two different problems: they usually + * provide improved performance when executing large numbers of + * asynchronous tasks, due to reduced per-task invocation overhead, + * and they provide a means of bounding and managing the resources, + * including threads, consumed when executing a collection of tasks. + * Each ThreadPoolExecutor also maintains some basic + * statistics, such as the number of completed tasks. + * + *

To be useful across a wide range of contexts, this class + * provides many adjustable parameters and extensibility + * hooks. However, programmers are urged to use the more convenient + * {@link Executors} factory methods {@link + * Executors#newCachedThreadPool} (unbounded thread pool, with + * automatic thread reclamation), {@link Executors#newFixedThreadPool} + * (fixed size thread pool) and {@link + * Executors#newSingleThreadExecutor} (single background thread), that + * preconfigure settings for the most common usage + * scenarios. Otherwise, use the following guide when manually + * configuring and tuning this class: + * + *

+ * + *
Core and maximum pool sizes
+ * + *
A ThreadPoolExecutor will automatically adjust the + * pool size + * (see {@link ThreadPoolExecutor#getPoolSize}) + * according to the bounds set by corePoolSize + * (see {@link ThreadPoolExecutor#getCorePoolSize}) + * and + * maximumPoolSize + * (see {@link ThreadPoolExecutor#getMaximumPoolSize}). + * When a new task is submitted in method {@link + * ThreadPoolExecutor#execute}, and fewer than corePoolSize threads + * are running, a new thread is created to handle the request, even if + * other worker threads are idle. If there are more than + * corePoolSize but less than maximumPoolSize threads running, a new + * thread will be created only if the queue is full. By setting + * corePoolSize and maximumPoolSize the same, you create a fixed-size + * thread pool. By setting maximumPoolSize to an essentially unbounded + * value such as Integer.MAX_VALUE, you allow the pool to + * accommodate an arbitrary number of concurrent tasks. Most typically, + * core and maximum pool sizes are set only upon construction, but they + * may also be changed dynamically using {@link + * ThreadPoolExecutor#setCorePoolSize} and {@link + * ThreadPoolExecutor#setMaximumPoolSize}.
+ * + *
On-demand construction + * + *
By default, even core threads are initially created and + * started only when new tasks arrive, but this can be overridden + * dynamically using method {@link + * ThreadPoolExecutor#prestartCoreThread} or + * {@link ThreadPoolExecutor#prestartAllCoreThreads}. + * You probably want to prestart threads if you construct the + * pool with a non-empty queue.
+ * + *
Creating new threads
+ * + *
New threads are created using a {@link + * java.util.concurrent.ThreadFactory}. If not otherwise specified, a + * {@link Executors#defaultThreadFactory} is used, that creates threads to all + * be in the same {@link ThreadGroup} and with the same + * NORM_PRIORITY priority and non-daemon status. By supplying + * a different ThreadFactory, you can alter the thread's name, thread + * group, priority, daemon status, etc. If a ThreadFactory fails to create + * a thread when asked by returning null from newThread, + * the executor will continue, but might + * not be able to execute any tasks.
+ * + *
Keep-alive times
+ * + *
If the pool currently has more than corePoolSize threads, + * excess threads will be terminated if they have been idle for more + * than the keepAliveTime (see {@link + * ThreadPoolExecutor#getKeepAliveTime}). This provides a means of + * reducing resource consumption when the pool is not being actively + * used. If the pool becomes more active later, new threads will be + * constructed. This parameter can also be changed dynamically using + * method {@link ThreadPoolExecutor#setKeepAliveTime}. Using a value + * of Long.MAX_VALUE {@link TimeUnit#NANOSECONDS} effectively + * disables idle threads from ever terminating prior to shut down. By + * default, the keep-alive policy applies only when there are more + * than corePoolSizeThreads. But method {@link + * ThreadPoolExecutor#allowCoreThreadTimeOut} can be used to apply + * this time-out policy to core threads as well, so long as + * the keepAliveTime value is non-zero.
+ * + *
Queuing
+ * + *
Any {@link BlockingQueue} may be used to transfer and hold + * submitted tasks. The use of this queue interacts with pool sizing: + * + *
    + * + *
  • If fewer than corePoolSize threads are running, the Executor + * always prefers adding a new thread + * rather than queuing.
  • + * + *
  • If corePoolSize or more threads are running, the Executor + * always prefers queuing a request rather than adding a new + * thread.
  • + * + *
  • If a request cannot be queued, a new thread is created unless + * this would exceed maximumPoolSize, in which case, the task will be + * rejected.
  • + * + *
+ * + * There are three general strategies for queuing: + *
    + * + *
  1. Direct handoffs. A good default choice for a work + * queue is a {@link SynchronousQueue} that hands off tasks to threads + * without otherwise holding them. Here, an attempt to queue a task + * will fail if no threads are immediately available to run it, so a + * new thread will be constructed. This policy avoids lockups when + * handling sets of requests that might have internal dependencies. + * Direct handoffs generally require unbounded maximumPoolSizes to + * avoid rejection of new submitted tasks. This in turn admits the + * possibility of unbounded thread growth when commands continue to + * arrive on average faster than they can be processed.
  2. + * + *
  3. Unbounded queues. Using an unbounded queue (for + * example a {@link LinkedBlockingQueue} without a predefined + * capacity) will cause new tasks to wait in the queue when all + * corePoolSize threads are busy. Thus, no more than corePoolSize + * threads will ever be created. (And the value of the maximumPoolSize + * therefore doesn't have any effect.) This may be appropriate when + * each task is completely independent of others, so tasks cannot + * affect each others execution; for example, in a web page server. + * While this style of queuing can be useful in smoothing out + * transient bursts of requests, it admits the possibility of + * unbounded work queue growth when commands continue to arrive on + * average faster than they can be processed.
  4. + * + *
  5. Bounded queues. A bounded queue (for example, an + * {@link ArrayBlockingQueue}) helps prevent resource exhaustion when + * used with finite maximumPoolSizes, but can be more difficult to + * tune and control. Queue sizes and maximum pool sizes may be traded + * off for each other: Using large queues and small pools minimizes + * CPU usage, OS resources, and context-switching overhead, but can + * lead to artificially low throughput. If tasks frequently block (for + * example if they are I/O bound), a system may be able to schedule + * time for more threads than you otherwise allow. Use of small queues + * generally requires larger pool sizes, which keeps CPUs busier but + * may encounter unacceptable scheduling overhead, which also + * decreases throughput.
  6. + * + *
+ * + *
+ * + *
Rejected tasks
+ * + *
New tasks submitted in method {@link + * ThreadPoolExecutor#execute} will be rejected when the + * Executor has been shut down, and also when the Executor uses finite + * bounds for both maximum threads and work queue capacity, and is + * saturated. In either case, the execute method invokes the + * {@link RejectedExecutionHandler#rejectedExecution} method of its + * {@link RejectedExecutionHandler}. Four predefined handler policies + * are provided: + * + *
    + * + *
  1. In the + * default {@link ThreadPoolExecutor.AbortPolicy}, the handler throws a + * runtime {@link RejectedExecutionException} upon rejection.
  2. + * + *
  3. In {@link + * ThreadPoolExecutor.CallerRunsPolicy}, the thread that invokes + * execute itself runs the task. This provides a simple + * feedback control mechanism that will slow down the rate that new + * tasks are submitted.
  4. + * + *
  5. In {@link ThreadPoolExecutor.DiscardPolicy}, + * a task that cannot be executed is simply dropped.
  6. + * + *
  7. In {@link + * ThreadPoolExecutor.DiscardOldestPolicy}, if the executor is not + * shut down, the task at the head of the work queue is dropped, and + * then execution is retried (which can fail again, causing this to be + * repeated.)
  8. + * + *
+ * + * It is possible to define and use other kinds of {@link + * RejectedExecutionHandler} classes. Doing so requires some care + * especially when policies are designed to work only under particular + * capacity or queuing policies.
+ * + *
Hook methods
+ * + *
This class provides protected overridable {@link + * ThreadPoolExecutor#beforeExecute} and {@link + * ThreadPoolExecutor#afterExecute} methods that are called before and + * after execution of each task. These can be used to manipulate the + * execution environment; for example, reinitializing ThreadLocals, + * gathering statistics, or adding log entries. Additionally, method + * {@link ThreadPoolExecutor#terminated} can be overridden to perform + * any special processing that needs to be done once the Executor has + * fully terminated. + * + *

If hook or callback methods throw + * exceptions, internal worker threads may in turn fail and + * abruptly terminate.

+ * + *
Queue maintenance
+ * + *
Method {@link ThreadPoolExecutor#getQueue} allows access to + * the work queue for purposes of monitoring and debugging. Use of + * this method for any other purpose is strongly discouraged. Two + * supplied methods, {@link ThreadPoolExecutor#remove} and {@link + * ThreadPoolExecutor#purge} are available to assist in storage + * reclamation when large numbers of queued tasks become + * cancelled.
+ * + *
Finalization
+ * + *
A pool that is no longer referenced in a program AND + * has no remaining threads will be shutdown + * automatically. If you would like to ensure that unreferenced pools + * are reclaimed even if users forget to call {@link + * ThreadPoolExecutor#shutdown}, then you must arrange that unused + * threads eventually die, by setting appropriate keep-alive times, + * using a lower bound of zero core threads and/or setting {@link + * ThreadPoolExecutor#allowCoreThreadTimeOut}.
+ * + *

Extension example. Most extensions of this class + * override one or more of the protected hook methods. For example, + * here is a subclass that adds a simple pause/resume feature: + * + *

+ * class PausableThreadPoolExecutor extends ThreadPoolExecutor {
+ *   private boolean isPaused;
+ *   private ReentrantLock pauseLock = new ReentrantLock();
+ *   private Condition unpaused = pauseLock.newCondition();
+ *
+ *   public PausableThreadPoolExecutor(...) { super(...); }
+ *
+ *   protected void beforeExecute(Thread t, Runnable r) {
+ *     super.beforeExecute(t, r);
+ *     pauseLock.lock();
+ *     try {
+ *       while (isPaused) unpaused.await();
+ *     } catch (InterruptedException ie) {
+ *       t.interrupt();
+ *     } finally {
+ *       pauseLock.unlock();
+ *     }
+ *   }
+ *
+ *   public void pause() {
+ *     pauseLock.lock();
+ *     try {
+ *       isPaused = true;
+ *     } finally {
+ *       pauseLock.unlock();
+ *     }
+ *   }
+ *
+ *   public void resume() {
+ *     pauseLock.lock();
+ *     try {
+ *       isPaused = false;
+ *       unpaused.signalAll();
+ *     } finally {
+ *       pauseLock.unlock();
+ *     }
+ *   }
+ * }
+ * 
+ * @since 1.5 + * @author Doug Lea + */ +public class ThreadPoolExecutor extends AbstractExecutorService { + /** + * Only used to force toArray() to produce a Runnable[]. + */ + private static final Runnable[] EMPTY_RUNNABLE_ARRAY = new Runnable[0]; + + /** + * Permission for checking shutdown + */ + private static final RuntimePermission shutdownPerm = + new RuntimePermission("modifyThread"); + + /** + * Queue used for holding tasks and handing off to worker threads. + */ + private final BlockingQueue workQueue; + + /** + * Lock held on updates to poolSize, corePoolSize, maximumPoolSize, and + * workers set. + */ + private final ReentrantLock mainLock = new ReentrantLock(); + + /** + * Wait condition to support awaitTermination + */ + private final Condition termination = mainLock.newCondition(); + + /** + * Set containing all worker threads in pool. + */ + private final HashSet workers = new HashSet(); + + /** + * Timeout in nanoseconds for idle threads waiting for work. + * Threads use this timeout only when there are more than + * corePoolSize present. Otherwise they wait forever for new work. + */ + private volatile long keepAliveTime; + + /** + * If false (default) core threads stay alive even when idle. + * If true, core threads use keepAliveTime to time out waiting for work. + */ + private volatile boolean allowCoreThreadTimeOut; + + /** + * Core pool size, updated only while holding mainLock, + * but volatile to allow concurrent readability even + * during updates. + */ + private volatile int corePoolSize; + + /** + * Maximum pool size, updated only while holding mainLock + * but volatile to allow concurrent readability even + * during updates. + */ + private volatile int maximumPoolSize; + + /** + * Current pool size, updated only while holding mainLock + * but volatile to allow concurrent readability even + * during updates. + */ + private volatile int poolSize; + + /** + * Lifecycle state + */ + volatile int runState; + + // Special values for runState + /** Normal, not-shutdown mode */ + static final int RUNNING = 0; + /** Controlled shutdown mode */ + static final int SHUTDOWN = 1; + /** Immediate shutdown mode */ + static final int STOP = 2; + /** Final state */ + static final int TERMINATED = 3; + + /** + * Handler called when saturated or shutdown in execute. + */ + private volatile RejectedExecutionHandler handler; + + /** + * Factory for new threads. + */ + private volatile ThreadFactory threadFactory; + + /** + * Tracks largest attained pool size. + */ + private int largestPoolSize; + + /** + * Counter for completed tasks. Updated only on termination of + * worker threads. + */ + private long completedTaskCount; + + /** + * The default rejected execution handler + */ + private static final RejectedExecutionHandler defaultHandler = + new AbortPolicy(); + + /** + * Invokes the rejected execution handler for the given command. + */ + void reject(Runnable command) { + handler.rejectedExecution(command, this); + } + + /** + * Creates and returns a new thread running firstTask as its first + * task. Call only while holding mainLock. + * @param firstTask the task the new thread should run first (or + * null if none) + * @return the new thread, or null if threadFactory fails to create thread + */ + private Thread addThread(Runnable firstTask) { + if (runState == TERMINATED) // Don't create thread if terminated + return null; + Worker w = new Worker(firstTask); + Thread t = threadFactory.newThread(w); + if (t != null) { + w.thread = t; + workers.add(w); + int nt = ++poolSize; + if (nt > largestPoolSize) + largestPoolSize = nt; + } + return t; + } + + /** + * Creates and starts a new thread running firstTask as its first + * task, only if fewer than corePoolSize threads are running. + * @param firstTask the task the new thread should run first (or + * null if none) + * @return true if successful. + */ + private boolean addIfUnderCorePoolSize(Runnable firstTask) { + Thread t = null; + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + if (poolSize < corePoolSize) + t = addThread(firstTask); + } finally { + mainLock.unlock(); + } + if (t == null) + return false; + t.start(); + return true; + } + + /** + * Creates and starts a new thread only if fewer than maximumPoolSize + * threads are running. The new thread runs as its first task the + * next task in queue, or if there is none, the given task. + * @param firstTask the task the new thread should run first (or + * null if none) + * @return 0 if a new thread cannot be created, a positive number + * if firstTask will be run in a new thread, or a negative number + * if a new thread was created but is running some other task, in + * which case the caller must try some other way to run firstTask + * (perhaps by calling this method again). + */ + private int addIfUnderMaximumPoolSize(Runnable firstTask) { + Thread t = null; + int status = 0; + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + if (poolSize < maximumPoolSize) { + Runnable next = workQueue.poll(); + if (next == null) { + next = firstTask; + status = 1; + } else + status = -1; + t = addThread(next); + } + } finally { + mainLock.unlock(); + } + if (t == null) + return 0; + t.start(); + return status; + } + + + /** + * Gets the next task for a worker thread to run. + * @return the task + */ + Runnable getTask() { + for (;;) { + try { + switch (runState) { + case RUNNING: { + // untimed wait if core and not allowing core timeout + if (poolSize <= corePoolSize && !allowCoreThreadTimeOut) + return workQueue.take(); + + long timeout = keepAliveTime; + if (timeout <= 0) // die immediately for 0 timeout + return null; + Runnable r = workQueue.poll(timeout, TimeUnit.NANOSECONDS); + if (r != null) + return r; + if (poolSize > corePoolSize || allowCoreThreadTimeOut) + return null; // timed out + // Else, after timeout, the pool shrank. Retry + break; + } + + case SHUTDOWN: { + // Help drain queue + Runnable r = workQueue.poll(); + if (r != null) + return r; + + // Check if can terminate + if (workQueue.isEmpty()) { + interruptIdleWorkers(); + return null; + } + + // Else there could still be delayed tasks in queue. + return workQueue.take(); + } + + case STOP: + return null; + default: + assert false; + } + } catch (InterruptedException ie) { + // On interruption, re-check runstate + } + } + } + + /** + * Wakes up all threads that might be waiting for tasks. + */ + void interruptIdleWorkers() { + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + for (Worker w : workers) + w.interruptIfIdle(); + } finally { + mainLock.unlock(); + } + } + + /** + * Performs bookkeeping for a terminated worker thread. + * @param w the worker + */ + void workerDone(Worker w) { + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + completedTaskCount += w.completedTasks; + workers.remove(w); + if (--poolSize > 0) + return; + + // Else, this is the last thread. Deal with potential shutdown. + + int state = runState; + assert state != TERMINATED; + + if (state != STOP) { + // If there are queued tasks but no threads, create + // replacement thread. We must create it initially + // idle to avoid orphaned tasks in case addThread + // fails. This also handles case of delayed tasks + // that will sometime later become runnable. + if (!workQueue.isEmpty()) { + Thread t = addThread(null); + if (t != null) + t.start(); + return; + } + + // Otherwise, we can exit without replacement + if (state == RUNNING) + return; + } + + // Either state is STOP, or state is SHUTDOWN and there is + // no work to do. So we can terminate. + termination.signalAll(); + runState = TERMINATED; + // fall through to call terminate() outside of lock. + } finally { + mainLock.unlock(); + } + + assert runState == TERMINATED; + terminated(); + } + + /** + * Worker threads + */ + private class Worker implements Runnable { + + /** + * The runLock is acquired and released surrounding each task + * execution. It mainly protects against interrupts that are + * intended to cancel the worker thread from instead + * interrupting the task being run. + */ + private final ReentrantLock runLock = new ReentrantLock(); + + /** + * Initial task to run before entering run loop + */ + private Runnable firstTask; + + /** + * Per thread completed task counter; accumulated + * into completedTaskCount upon termination. + */ + volatile long completedTasks; + + /** + * Thread this worker is running in. Acts as a final field, + * but cannot be set until thread is created. + */ + Thread thread; + + Worker(Runnable firstTask) { + this.firstTask = firstTask; + } + + boolean isActive() { + return runLock.isLocked(); + } + + /** + * Interrupts thread if not running a task. + */ + void interruptIfIdle() { + final ReentrantLock runLock = this.runLock; + if (runLock.tryLock()) { + try { + thread.interrupt(); + } finally { + runLock.unlock(); + } + } + } + + /** + * Interrupts thread even if running a task. + */ + void interruptNow() { + thread.interrupt(); + } + + /** + * Runs a single task between before/after methods. + */ + private void runTask(Runnable task) { + final ReentrantLock runLock = this.runLock; + runLock.lock(); + try { + // If not shutting down then clear an outstanding interrupt. + if (runState != STOP && + Thread.interrupted() && + runState == STOP) // Re-interrupt if stopped after clearing + thread.interrupt(); + boolean ran = false; + beforeExecute(thread, task); + try { + task.run(); + ran = true; + afterExecute(task, null); + ++completedTasks; + } catch (RuntimeException ex) { + if (!ran) + afterExecute(task, ex); + // Else the exception occurred within + // afterExecute itself in which case we don't + // want to call it again. + throw ex; + } + } finally { + runLock.unlock(); + } + } + + /** + * Main run loop + */ + public void run() { + try { + Runnable task = firstTask; + firstTask = null; + while (task != null || (task = getTask()) != null) { + runTask(task); + task = null; // unnecessary but can help GC + } + } finally { + workerDone(this); + } + } + } + + // Public methods + + /** + * Creates a new ThreadPoolExecutor with the given initial + * parameters and default thread factory and rejected execution handler. + * It may be more convenient to use one of the {@link Executors} factory + * methods instead of this general purpose constructor. + * + * @param corePoolSize the number of threads to keep in the + * pool, even if they are idle. + * @param maximumPoolSize the maximum number of threads to allow in the + * pool. + * @param keepAliveTime when the number of threads is greater than + * the core, this is the maximum time that excess idle threads + * will wait for new tasks before terminating. + * @param unit the time unit for the keepAliveTime + * argument. + * @param workQueue the queue to use for holding tasks before they + * are executed. This queue will hold only the Runnable + * tasks submitted by the execute method. + * @throws IllegalArgumentException if corePoolSize, or + * keepAliveTime less than zero, or if maximumPoolSize less than or + * equal to zero, or if corePoolSize greater than maximumPoolSize. + * @throws NullPointerException if workQueue is null + */ + public ThreadPoolExecutor(int corePoolSize, + int maximumPoolSize, + long keepAliveTime, + TimeUnit unit, + BlockingQueue workQueue) { + this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, + Executors.defaultThreadFactory(), defaultHandler); + } + + /** + * Creates a new ThreadPoolExecutor with the given initial + * parameters and default rejected execution handler. + * + * @param corePoolSize the number of threads to keep in the + * pool, even if they are idle. + * @param maximumPoolSize the maximum number of threads to allow in the + * pool. + * @param keepAliveTime when the number of threads is greater than + * the core, this is the maximum time that excess idle threads + * will wait for new tasks before terminating. + * @param unit the time unit for the keepAliveTime + * argument. + * @param workQueue the queue to use for holding tasks before they + * are executed. This queue will hold only the Runnable + * tasks submitted by the execute method. + * @param threadFactory the factory to use when the executor + * creates a new thread. + * @throws IllegalArgumentException if corePoolSize, or + * keepAliveTime less than zero, or if maximumPoolSize less than or + * equal to zero, or if corePoolSize greater than maximumPoolSize. + * @throws NullPointerException if workQueue + * or threadFactory are null. + */ + public ThreadPoolExecutor(int corePoolSize, + int maximumPoolSize, + long keepAliveTime, + TimeUnit unit, + BlockingQueue workQueue, + ThreadFactory threadFactory) { + this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, + threadFactory, defaultHandler); + } + + /** + * Creates a new ThreadPoolExecutor with the given initial + * parameters and default thread factory. + * + * @param corePoolSize the number of threads to keep in the + * pool, even if they are idle. + * @param maximumPoolSize the maximum number of threads to allow in the + * pool. + * @param keepAliveTime when the number of threads is greater than + * the core, this is the maximum time that excess idle threads + * will wait for new tasks before terminating. + * @param unit the time unit for the keepAliveTime + * argument. + * @param workQueue the queue to use for holding tasks before they + * are executed. This queue will hold only the Runnable + * tasks submitted by the execute method. + * @param handler the handler to use when execution is blocked + * because the thread bounds and queue capacities are reached. + * @throws IllegalArgumentException if corePoolSize, or + * keepAliveTime less than zero, or if maximumPoolSize less than or + * equal to zero, or if corePoolSize greater than maximumPoolSize. + * @throws NullPointerException if workQueue + * or handler are null. + */ + public ThreadPoolExecutor(int corePoolSize, + int maximumPoolSize, + long keepAliveTime, + TimeUnit unit, + BlockingQueue workQueue, + RejectedExecutionHandler handler) { + this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, + Executors.defaultThreadFactory(), handler); + } + + /** + * Creates a new ThreadPoolExecutor with the given initial + * parameters. + * + * @param corePoolSize the number of threads to keep in the + * pool, even if they are idle. + * @param maximumPoolSize the maximum number of threads to allow in the + * pool. + * @param keepAliveTime when the number of threads is greater than + * the core, this is the maximum time that excess idle threads + * will wait for new tasks before terminating. + * @param unit the time unit for the keepAliveTime + * argument. + * @param workQueue the queue to use for holding tasks before they + * are executed. This queue will hold only the Runnable + * tasks submitted by the execute method. + * @param threadFactory the factory to use when the executor + * creates a new thread. + * @param handler the handler to use when execution is blocked + * because the thread bounds and queue capacities are reached. + * @throws IllegalArgumentException if corePoolSize, or + * keepAliveTime less than zero, or if maximumPoolSize less than or + * equal to zero, or if corePoolSize greater than maximumPoolSize. + * @throws NullPointerException if workQueue + * or threadFactory or handler are null. + */ + public ThreadPoolExecutor(int corePoolSize, + int maximumPoolSize, + long keepAliveTime, + TimeUnit unit, + BlockingQueue workQueue, + ThreadFactory threadFactory, + RejectedExecutionHandler handler) { + if (corePoolSize < 0 || + maximumPoolSize <= 0 || + maximumPoolSize < corePoolSize || + keepAliveTime < 0) + throw new IllegalArgumentException(); + if (workQueue == null || threadFactory == null || handler == null) + throw new NullPointerException(); + this.corePoolSize = corePoolSize; + this.maximumPoolSize = maximumPoolSize; + this.workQueue = workQueue; + this.keepAliveTime = unit.toNanos(keepAliveTime); + this.threadFactory = threadFactory; + this.handler = handler; + } + + + /** + * Executes the given task sometime in the future. The task + * may execute in a new thread or in an existing pooled thread. + * + * If the task cannot be submitted for execution, either because this + * executor has been shutdown or because its capacity has been reached, + * the task is handled by the current RejectedExecutionHandler. + * + * @param command the task to execute + * @throws RejectedExecutionException at discretion of + * RejectedExecutionHandler, if task cannot be accepted + * for execution + * @throws NullPointerException if command is null + */ + public void execute(Runnable command) { + if (command == null) + throw new NullPointerException(); + for (;;) { + if (runState != RUNNING) { + reject(command); + return; + } + if (poolSize < corePoolSize && addIfUnderCorePoolSize(command)) + return; + if (workQueue.offer(command)) + return; + int status = addIfUnderMaximumPoolSize(command); + if (status > 0) // created new thread + return; + if (status == 0) { // failed to create thread + reject(command); + return; + } + // Retry if created a new thread but it is busy with another task + } + } + + /** + * Initiates an orderly shutdown in which previously submitted + * tasks are executed, but no new tasks will be + * accepted. Invocation has no additional effect if already shut + * down. + * @throws SecurityException if a security manager exists and + * shutting down this ExecutorService may manipulate threads that + * the caller is not permitted to modify because it does not hold + * {@link java.lang.RuntimePermission}("modifyThread"), + * or the security manager's checkAccess method denies access. + */ + public void shutdown() { + // Fail if caller doesn't have modifyThread permission. + SecurityManager security = System.getSecurityManager(); + if (security != null) + security.checkPermission(shutdownPerm); + + boolean fullyTerminated = false; + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + if (workers.size() > 0) { + // Check if caller can modify worker threads. This + // might not be true even if passed above check, if + // the SecurityManager treats some threads specially. + if (security != null) { + for (Worker w: workers) + security.checkAccess(w.thread); + } + + int state = runState; + if (state == RUNNING) // don't override shutdownNow + runState = SHUTDOWN; + + try { + for (Worker w: workers) + w.interruptIfIdle(); + } catch (SecurityException se) { + // If SecurityManager allows above checks, but + // then unexpectedly throws exception when + // interrupting threads (which it ought not do), + // back out as cleanly as we can. Some threads may + // have been killed but we remain in non-shutdown + // state. + runState = state; + throw se; + } + } + else { // If no workers, trigger full termination now + fullyTerminated = true; + runState = TERMINATED; + termination.signalAll(); + } + } finally { + mainLock.unlock(); + } + if (fullyTerminated) + terminated(); + } + + + /** + * Attempts to stop all actively executing tasks, halts the + * processing of waiting tasks, and returns a list of the tasks + * that were awaiting execution. + * + *

There are no guarantees beyond best-effort attempts to stop + * processing actively executing tasks. This implementation + * cancels tasks via {@link Thread#interrupt}, so any task that + * fails to respond to interrupts may never terminate. + * + * @return list of tasks that never commenced execution + * @throws SecurityException if a security manager exists and + * shutting down this ExecutorService may manipulate threads that + * the caller is not permitted to modify because it does not hold + * {@link java.lang.RuntimePermission}("modifyThread"), + * or the security manager's checkAccess method denies access. + */ + public List shutdownNow() { + // Almost the same code as shutdown() + SecurityManager security = System.getSecurityManager(); + if (security != null) + security.checkPermission(shutdownPerm); + + boolean fullyTerminated = false; + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + if (workers.size() > 0) { + if (security != null) { + for (Worker w: workers) + security.checkAccess(w.thread); + } + + int state = runState; + if (state != TERMINATED) + runState = STOP; + try { + for (Worker w : workers) + w.interruptNow(); + } catch (SecurityException se) { + runState = state; // back out; + throw se; + } + } + else { // If no workers, trigger full termination now + fullyTerminated = true; + runState = TERMINATED; + termination.signalAll(); + } + } finally { + mainLock.unlock(); + } + if (fullyTerminated) + terminated(); + return Arrays.asList(workQueue.toArray(EMPTY_RUNNABLE_ARRAY)); + } + + public boolean isShutdown() { + return runState != RUNNING; + } + + /** + * Returns true if this executor is in the process of terminating + * after shutdown or shutdownNow but has not + * completely terminated. This method may be useful for + * debugging. A return of true reported a sufficient + * period after shutdown may indicate that submitted tasks have + * ignored or suppressed interruption, causing this executor not + * to properly terminate. + * @return true if terminating but not yet terminated. + */ + public boolean isTerminating() { + return runState == STOP; + } + + public boolean isTerminated() { + return runState == TERMINATED; + } + + public boolean awaitTermination(long timeout, TimeUnit unit) + throws InterruptedException { + long nanos = unit.toNanos(timeout); + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + for (;;) { + if (runState == TERMINATED) + return true; + if (nanos <= 0) + return false; + nanos = termination.awaitNanos(nanos); + } + } finally { + mainLock.unlock(); + } + } + + /** + * Invokes shutdown when this executor is no longer + * referenced. + */ + protected void finalize() { + shutdown(); + } + + /** + * Sets the thread factory used to create new threads. + * + * @param threadFactory the new thread factory + * @throws NullPointerException if threadFactory is null + * @see #getThreadFactory + */ + public void setThreadFactory(ThreadFactory threadFactory) { + if (threadFactory == null) + throw new NullPointerException(); + this.threadFactory = threadFactory; + } + + /** + * Returns the thread factory used to create new threads. + * + * @return the current thread factory + * @see #setThreadFactory + */ + public ThreadFactory getThreadFactory() { + return threadFactory; + } + + /** + * Sets a new handler for unexecutable tasks. + * + * @param handler the new handler + * @throws NullPointerException if handler is null + * @see #getRejectedExecutionHandler + */ + public void setRejectedExecutionHandler(RejectedExecutionHandler handler) { + if (handler == null) + throw new NullPointerException(); + this.handler = handler; + } + + /** + * Returns the current handler for unexecutable tasks. + * + * @return the current handler + * @see #setRejectedExecutionHandler + */ + public RejectedExecutionHandler getRejectedExecutionHandler() { + return handler; + } + + /** + * Returns the task queue used by this executor. Access to the + * task queue is intended primarily for debugging and monitoring. + * This queue may be in active use. Retrieving the task queue + * does not prevent queued tasks from executing. + * + * @return the task queue + */ + public BlockingQueue getQueue() { + return workQueue; + } + + /** + * Removes this task from the executor's internal queue if it is + * present, thus causing it not to be run if it has not already + * started. + * + *

This method may be useful as one part of a cancellation + * scheme. It may fail to remove tasks that have been converted + * into other forms before being placed on the internal queue. For + * example, a task entered using submit might be + * converted into a form that maintains Future status. + * However, in such cases, method {@link ThreadPoolExecutor#purge} + * may be used to remove those Futures that have been cancelled. + * + * @param task the task to remove + * @return true if the task was removed + */ + public boolean remove(Runnable task) { + return getQueue().remove(task); + } + + + /** + * Tries to remove from the work queue all {@link Future} + * tasks that have been cancelled. This method can be useful as a + * storage reclamation operation, that has no other impact on + * functionality. Cancelled tasks are never executed, but may + * accumulate in work queues until worker threads can actively + * remove them. Invoking this method instead tries to remove them now. + * However, this method may fail to remove tasks in + * the presence of interference by other threads. + */ + public void purge() { + // Fail if we encounter interference during traversal + try { + Iterator it = getQueue().iterator(); + while (it.hasNext()) { + Runnable r = it.next(); + if (r instanceof Future) { + Future c = (Future)r; + if (c.isCancelled()) + it.remove(); + } + } + } + catch (ConcurrentModificationException ex) { + return; + } + } + + /** + * Sets the core number of threads. This overrides any value set + * in the constructor. If the new value is smaller than the + * current value, excess existing threads will be terminated when + * they next become idle. If larger, new threads will, if needed, + * be started to execute any queued tasks. + * + * @param corePoolSize the new core size + * @throws IllegalArgumentException if corePoolSize + * less than zero + * @see #getCorePoolSize + */ + public void setCorePoolSize(int corePoolSize) { + if (corePoolSize < 0) + throw new IllegalArgumentException(); + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + int extra = this.corePoolSize - corePoolSize; + this.corePoolSize = corePoolSize; + if (extra < 0) { + int n = workQueue.size(); + // We have to create initially-idle threads here + // because we otherwise have no recourse about + // what to do with a dequeued task if addThread fails. + while (extra++ < 0 && n-- > 0 && poolSize < corePoolSize ) { + Thread t = addThread(null); + if (t != null) + t.start(); + else + break; + } + } + else if (extra > 0 && poolSize > corePoolSize) { + Iterator it = workers.iterator(); + while (it.hasNext() && + extra-- > 0 && + poolSize > corePoolSize && + workQueue.remainingCapacity() == 0) + it.next().interruptIfIdle(); + } + } finally { + mainLock.unlock(); + } + } + + /** + * Returns the core number of threads. + * + * @return the core number of threads + * @see #setCorePoolSize + */ + public int getCorePoolSize() { + return corePoolSize; + } + + /** + * Starts a core thread, causing it to idly wait for work. This + * overrides the default policy of starting core threads only when + * new tasks are executed. This method will return false + * if all core threads have already been started. + * @return true if a thread was started + */ + public boolean prestartCoreThread() { + return addIfUnderCorePoolSize(null); + } + + /** + * Starts all core threads, causing them to idly wait for work. This + * overrides the default policy of starting core threads only when + * new tasks are executed. + * @return the number of threads started. + */ + public int prestartAllCoreThreads() { + int n = 0; + while (addIfUnderCorePoolSize(null)) + ++n; + return n; + } + + /** + * Returns true if this pool allows core threads to time out and + * terminate if no tasks arrive within the keepAlive time, being + * replaced if needed when new tasks arrive. When true, the same + * keep-alive policy applying to non-core threads applies also to + * core threads. When false (the default), core threads are never + * terminated due to lack of incoming tasks. + * @return true if core threads are allowed to time out, + * else false + * + * @since 1.6 + */ + public boolean allowsCoreThreadTimeOut() { + return allowCoreThreadTimeOut; + } + + /** + * Sets the policy governing whether core threads may time out and + * terminate if no tasks arrive within the keep-alive time, being + * replaced if needed when new tasks arrive. When false, core + * threads are never terminated due to lack of incoming + * tasks. When true, the same keep-alive policy applying to + * non-core threads applies also to core threads. To avoid + * continual thread replacement, the keep-alive time must be + * greater than zero when setting true. This method + * should in general be called before the pool is actively used. + * @param value true if should time out, else false + * @throws IllegalArgumentException if value is true + * and the current keep-alive time is not greater than zero. + * + * @since 1.6 + */ + public void allowCoreThreadTimeOut(boolean value) { + if (value && keepAliveTime <= 0) + throw new IllegalArgumentException("Core threads must have nonzero keep alive times"); + + allowCoreThreadTimeOut = value; + } + + /** + * Sets the maximum allowed number of threads. This overrides any + * value set in the constructor. If the new value is smaller than + * the current value, excess existing threads will be + * terminated when they next become idle. + * + * @param maximumPoolSize the new maximum + * @throws IllegalArgumentException if the new maximum is + * less than or equal to zero, or + * less than the {@linkplain #getCorePoolSize core pool size} + * @see #getMaximumPoolSize + */ + public void setMaximumPoolSize(int maximumPoolSize) { + if (maximumPoolSize <= 0 || maximumPoolSize < corePoolSize) + throw new IllegalArgumentException(); + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + int extra = this.maximumPoolSize - maximumPoolSize; + this.maximumPoolSize = maximumPoolSize; + if (extra > 0 && poolSize > maximumPoolSize) { + Iterator it = workers.iterator(); + while (it.hasNext() && + extra > 0 && + poolSize > maximumPoolSize) { + it.next().interruptIfIdle(); + --extra; + } + } + } finally { + mainLock.unlock(); + } + } + + /** + * Returns the maximum allowed number of threads. + * + * @return the maximum allowed number of threads + * @see #setMaximumPoolSize + */ + public int getMaximumPoolSize() { + return maximumPoolSize; + } + + /** + * Sets the time limit for which threads may remain idle before + * being terminated. If there are more than the core number of + * threads currently in the pool, after waiting this amount of + * time without processing a task, excess threads will be + * terminated. This overrides any value set in the constructor. + * @param time the time to wait. A time value of zero will cause + * excess threads to terminate immediately after executing tasks. + * @param unit the time unit of the time argument + * @throws IllegalArgumentException if time less than zero or + * if time is zero and allowsCoreThreadTimeOut + * @see #getKeepAliveTime + */ + public void setKeepAliveTime(long time, TimeUnit unit) { + if (time < 0) + throw new IllegalArgumentException(); + if (time == 0 && allowsCoreThreadTimeOut()) + throw new IllegalArgumentException("Core threads must have nonzero keep alive times"); + this.keepAliveTime = unit.toNanos(time); + } + + /** + * Returns the thread keep-alive time, which is the amount of time + * which threads in excess of the core pool size may remain + * idle before being terminated. + * + * @param unit the desired time unit of the result + * @return the time limit + * @see #setKeepAliveTime + */ + public long getKeepAliveTime(TimeUnit unit) { + return unit.convert(keepAliveTime, TimeUnit.NANOSECONDS); + } + + /* Statistics */ + + /** + * Returns the current number of threads in the pool. + * + * @return the number of threads + */ + public int getPoolSize() { + return poolSize; + } + + /** + * Returns the approximate number of threads that are actively + * executing tasks. + * + * @return the number of threads + */ + public int getActiveCount() { + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + int n = 0; + for (Worker w : workers) { + if (w.isActive()) + ++n; + } + return n; + } finally { + mainLock.unlock(); + } + } + + /** + * Returns the largest number of threads that have ever + * simultaneously been in the pool. + * + * @return the number of threads + */ + public int getLargestPoolSize() { + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + return largestPoolSize; + } finally { + mainLock.unlock(); + } + } + + /** + * Returns the approximate total number of tasks that have been + * scheduled for execution. Because the states of tasks and + * threads may change dynamically during computation, the returned + * value is only an approximation, but one that does not ever + * decrease across successive calls. + * + * @return the number of tasks + */ + public long getTaskCount() { + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + long n = completedTaskCount; + for (Worker w : workers) { + n += w.completedTasks; + if (w.isActive()) + ++n; + } + return n + workQueue.size(); + } finally { + mainLock.unlock(); + } + } + + /** + * Returns the approximate total number of tasks that have + * completed execution. Because the states of tasks and threads + * may change dynamically during computation, the returned value + * is only an approximation, but one that does not ever decrease + * across successive calls. + * + * @return the number of tasks + */ + public long getCompletedTaskCount() { + final ReentrantLock mainLock = this.mainLock; + mainLock.lock(); + try { + long n = completedTaskCount; + for (Worker w : workers) + n += w.completedTasks; + return n; + } finally { + mainLock.unlock(); + } + } + + /** + * Method invoked prior to executing the given Runnable in the + * given thread. This method is invoked by thread t that + * will execute task r, and may be used to re-initialize + * ThreadLocals, or to perform logging. + * + *

This implementation does nothing, but may be customized in + * subclasses. Note: To properly nest multiple overridings, subclasses + * should generally invoke super.beforeExecute at the end of + * this method. + * + * @param t the thread that will run task r. + * @param r the task that will be executed. + */ + protected void beforeExecute(Thread t, Runnable r) { } + + /** + * Method invoked upon completion of execution of the given Runnable. + * This method is invoked by the thread that executed the task. If + * non-null, the Throwable is the uncaught RuntimeException + * or Error that caused execution to terminate abruptly. + * + *

Note: When actions are enclosed in tasks (such as + * {@link FutureTask}) either explicitly or via methods such as + * submit, these task objects catch and maintain + * computational exceptions, and so they do not cause abrupt + * termination, and the internal exceptions are not + * passed to this method. + * + *

This implementation does nothing, but may be customized in + * subclasses. Note: To properly nest multiple overridings, subclasses + * should generally invoke super.afterExecute at the + * beginning of this method. + * + * @param r the runnable that has completed. + * @param t the exception that caused termination, or null if + * execution completed normally. + */ + protected void afterExecute(Runnable r, Throwable t) { } + + /** + * Method invoked when the Executor has terminated. Default + * implementation does nothing. Note: To properly nest multiple + * overridings, subclasses should generally invoke + * super.terminated within this method. + */ + protected void terminated() { } + + /** + * A handler for rejected tasks that runs the rejected task + * directly in the calling thread of the execute method, + * unless the executor has been shut down, in which case the task + * is discarded. + */ + public static class CallerRunsPolicy implements RejectedExecutionHandler { + /** + * Creates a CallerRunsPolicy. + */ + public CallerRunsPolicy() { } + + /** + * Executes task r in the caller's thread, unless the executor + * has been shut down, in which case the task is discarded. + * @param r the runnable task requested to be executed + * @param e the executor attempting to execute this task + */ + public void rejectedExecution(Runnable r, ThreadPoolExecutor e) { + if (!e.isShutdown()) { + r.run(); + } + } + } + + /** + * A handler for rejected tasks that throws a + * RejectedExecutionException. + */ + public static class AbortPolicy implements RejectedExecutionHandler { + /** + * Creates an AbortPolicy. + */ + public AbortPolicy() { } + + /** + * Always throws RejectedExecutionException. + * @param r the runnable task requested to be executed + * @param e the executor attempting to execute this task + * @throws RejectedExecutionException always. + */ + public void rejectedExecution(Runnable r, ThreadPoolExecutor e) { + throw new RejectedExecutionException(); + } + } + + /** + * A handler for rejected tasks that silently discards the + * rejected task. + */ + public static class DiscardPolicy implements RejectedExecutionHandler { + /** + * Creates a DiscardPolicy. + */ + public DiscardPolicy() { } + + /** + * Does nothing, which has the effect of discarding task r. + * @param r the runnable task requested to be executed + * @param e the executor attempting to execute this task + */ + public void rejectedExecution(Runnable r, ThreadPoolExecutor e) { + } + } + + /** + * A handler for rejected tasks that discards the oldest unhandled + * request and then retries execute, unless the executor + * is shut down, in which case the task is discarded. + */ + public static class DiscardOldestPolicy implements RejectedExecutionHandler { + /** + * Creates a DiscardOldestPolicy for the given executor. + */ + public DiscardOldestPolicy() { } + + /** + * Obtains and ignores the next task that the executor + * would otherwise execute, if one is immediately available, + * and then retries execution of task r, unless the executor + * is shut down, in which case task r is instead discarded. + * @param r the runnable task requested to be executed + * @param e the executor attempting to execute this task + */ + public void rejectedExecution(Runnable r, ThreadPoolExecutor e) { + if (!e.isShutdown()) { + e.getQueue().poll(); + e.execute(r); + } + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/TimeUnit.java b/libjava/classpath/external/jsr166/java/util/concurrent/TimeUnit.java new file mode 100644 index 00000000000..2cd3d06aba1 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/TimeUnit.java @@ -0,0 +1,331 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * A TimeUnit represents time durations at a given unit of + * granularity and provides utility methods to convert across units, + * and to perform timing and delay operations in these units. A + * TimeUnit does not maintain time information, but only + * helps organize and use time representations that may be maintained + * separately across various contexts. A nanosecond is defined as one + * thousandth of a microsecond, a microsecond as one thousandth of a + * millisecond, a millisecond as one thousandth of a second, a minute + * as sixty seconds, an hour as sixty minutes, and a day as twenty four + * hours. + * + *

A TimeUnit is mainly used to inform time-based methods + * how a given timing parameter should be interpreted. For example, + * the following code will timeout in 50 milliseconds if the {@link + * java.util.concurrent.locks.Lock lock} is not available: + * + *

  Lock lock = ...;
+ *  if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...
+ * 
+ * while this code will timeout in 50 seconds: + *
+ *  Lock lock = ...;
+ *  if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...
+ * 
+ * + * Note however, that there is no guarantee that a particular timeout + * implementation will be able to notice the passage of time at the + * same granularity as the given TimeUnit. + * + * @since 1.5 + * @author Doug Lea + */ +public enum TimeUnit { + NANOSECONDS { + public long toNanos(long d) { return d; } + public long toMicros(long d) { return d/(C1/C0); } + public long toMillis(long d) { return d/(C2/C0); } + public long toSeconds(long d) { return d/(C3/C0); } + public long toMinutes(long d) { return d/(C4/C0); } + public long toHours(long d) { return d/(C5/C0); } + public long toDays(long d) { return d/(C6/C0); } + public long convert(long d, TimeUnit u) { return u.toNanos(d); } + int excessNanos(long d, long m) { return (int)(d - (m*C2)); } + }, + MICROSECONDS { + public long toNanos(long d) { return x(d, C1/C0, MAX/(C1/C0)); } + public long toMicros(long d) { return d; } + public long toMillis(long d) { return d/(C2/C1); } + public long toSeconds(long d) { return d/(C3/C1); } + public long toMinutes(long d) { return d/(C4/C1); } + public long toHours(long d) { return d/(C5/C1); } + public long toDays(long d) { return d/(C6/C1); } + public long convert(long d, TimeUnit u) { return u.toMicros(d); } + int excessNanos(long d, long m) { return (int)((d*C1) - (m*C2)); } + }, + MILLISECONDS { + public long toNanos(long d) { return x(d, C2/C0, MAX/(C2/C0)); } + public long toMicros(long d) { return x(d, C2/C1, MAX/(C2/C1)); } + public long toMillis(long d) { return d; } + public long toSeconds(long d) { return d/(C3/C2); } + public long toMinutes(long d) { return d/(C4/C2); } + public long toHours(long d) { return d/(C5/C2); } + public long toDays(long d) { return d/(C6/C2); } + public long convert(long d, TimeUnit u) { return u.toMillis(d); } + int excessNanos(long d, long m) { return 0; } + }, + SECONDS { + public long toNanos(long d) { return x(d, C3/C0, MAX/(C3/C0)); } + public long toMicros(long d) { return x(d, C3/C1, MAX/(C3/C1)); } + public long toMillis(long d) { return x(d, C3/C2, MAX/(C3/C2)); } + public long toSeconds(long d) { return d; } + public long toMinutes(long d) { return d/(C4/C3); } + public long toHours(long d) { return d/(C5/C3); } + public long toDays(long d) { return d/(C6/C3); } + public long convert(long d, TimeUnit u) { return u.toSeconds(d); } + int excessNanos(long d, long m) { return 0; } + }, + MINUTES { + public long toNanos(long d) { return x(d, C4/C0, MAX/(C4/C0)); } + public long toMicros(long d) { return x(d, C4/C1, MAX/(C4/C1)); } + public long toMillis(long d) { return x(d, C4/C2, MAX/(C4/C2)); } + public long toSeconds(long d) { return x(d, C4/C3, MAX/(C4/C3)); } + public long toMinutes(long d) { return d; } + public long toHours(long d) { return d/(C5/C4); } + public long toDays(long d) { return d/(C6/C4); } + public long convert(long d, TimeUnit u) { return u.toMinutes(d); } + int excessNanos(long d, long m) { return 0; } + }, + HOURS { + public long toNanos(long d) { return x(d, C5/C0, MAX/(C5/C0)); } + public long toMicros(long d) { return x(d, C5/C1, MAX/(C5/C1)); } + public long toMillis(long d) { return x(d, C5/C2, MAX/(C5/C2)); } + public long toSeconds(long d) { return x(d, C5/C3, MAX/(C5/C3)); } + public long toMinutes(long d) { return x(d, C5/C4, MAX/(C5/C4)); } + public long toHours(long d) { return d; } + public long toDays(long d) { return d/(C6/C5); } + public long convert(long d, TimeUnit u) { return u.toHours(d); } + int excessNanos(long d, long m) { return 0; } + }, + DAYS { + public long toNanos(long d) { return x(d, C6/C0, MAX/(C6/C0)); } + public long toMicros(long d) { return x(d, C6/C1, MAX/(C6/C1)); } + public long toMillis(long d) { return x(d, C6/C2, MAX/(C6/C2)); } + public long toSeconds(long d) { return x(d, C6/C3, MAX/(C6/C3)); } + public long toMinutes(long d) { return x(d, C6/C4, MAX/(C6/C4)); } + public long toHours(long d) { return x(d, C6/C5, MAX/(C6/C5)); } + public long toDays(long d) { return d; } + public long convert(long d, TimeUnit u) { return u.toDays(d); } + int excessNanos(long d, long m) { return 0; } + }; + + // Handy constants for conversion methods + static final long C0 = 1L; + static final long C1 = C0 * 1000L; + static final long C2 = C1 * 1000L; + static final long C3 = C2 * 1000L; + static final long C4 = C3 * 60L; + static final long C5 = C4 * 60L; + static final long C6 = C5 * 24L; + + static final long MAX = Long.MAX_VALUE; + + /** + * Scale d by m, checking for overflow. + * This has a short name to make above code more readable. + */ + static long x(long d, long m, long over) { + if (d > over) return Long.MAX_VALUE; + if (d < -over) return Long.MIN_VALUE; + return d * m; + } + + // To maintain full signature compatibility with 1.5, and to improve the + // clarity of the generated javadoc (see 6287639: Abstract methods in + // enum classes should not be listed as abstract), method convert + // etc. are not declared abstract but otherwise act as abstract methods. + + /** + * Convert the given time duration in the given unit to this + * unit. Conversions from finer to coarser granularities + * truncate, so lose precision. For example converting + * 999 milliseconds to seconds results in + * 0. Conversions from coarser to finer granularities + * with arguments that would numerically overflow saturate to + * Long.MIN_VALUE if negative or Long.MAX_VALUE + * if positive. + * + *

For example, to convert 10 minutes to milliseconds, use: + * TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES) + * + * @param sourceDuration the time duration in the given sourceUnit + * @param sourceUnit the unit of the sourceDuration argument + * @return the converted duration in this unit, + * or Long.MIN_VALUE if conversion would negatively + * overflow, or Long.MAX_VALUE if it would positively overflow. + */ + public long convert(long sourceDuration, TimeUnit sourceUnit) { + throw new AbstractMethodError(); + } + + /** + * Equivalent to NANOSECONDS.convert(duration, this). + * @param duration the duration + * @return the converted duration, + * or Long.MIN_VALUE if conversion would negatively + * overflow, or Long.MAX_VALUE if it would positively overflow. + * @see #convert + */ + public long toNanos(long duration) { + throw new AbstractMethodError(); + } + + /** + * Equivalent to MICROSECONDS.convert(duration, this). + * @param duration the duration + * @return the converted duration, + * or Long.MIN_VALUE if conversion would negatively + * overflow, or Long.MAX_VALUE if it would positively overflow. + * @see #convert + */ + public long toMicros(long duration) { + throw new AbstractMethodError(); + } + + /** + * Equivalent to MILLISECONDS.convert(duration, this). + * @param duration the duration + * @return the converted duration, + * or Long.MIN_VALUE if conversion would negatively + * overflow, or Long.MAX_VALUE if it would positively overflow. + * @see #convert + */ + public long toMillis(long duration) { + throw new AbstractMethodError(); + } + + /** + * Equivalent to SECONDS.convert(duration, this). + * @param duration the duration + * @return the converted duration, + * or Long.MIN_VALUE if conversion would negatively + * overflow, or Long.MAX_VALUE if it would positively overflow. + * @see #convert + */ + public long toSeconds(long duration) { + throw new AbstractMethodError(); + } + + /** + * Equivalent to MINUTES.convert(duration, this). + * @param duration the duration + * @return the converted duration, + * or Long.MIN_VALUE if conversion would negatively + * overflow, or Long.MAX_VALUE if it would positively overflow. + * @see #convert + * @since 1.6 + */ + public long toMinutes(long duration) { + throw new AbstractMethodError(); + } + + /** + * Equivalent to HOURS.convert(duration, this). + * @param duration the duration + * @return the converted duration, + * or Long.MIN_VALUE if conversion would negatively + * overflow, or Long.MAX_VALUE if it would positively overflow. + * @see #convert + * @since 1.6 + */ + public long toHours(long duration) { + throw new AbstractMethodError(); + } + + /** + * Equivalent to DAYS.convert(duration, this). + * @param duration the duration + * @return the converted duration + * @see #convert + * @since 1.6 + */ + public long toDays(long duration) { + throw new AbstractMethodError(); + } + + /** + * Utility to compute the excess-nanosecond argument to wait, + * sleep, join. + * @param d the duration + * @param m the number of milliseconds + * @return the number of nanoseconds + */ + abstract int excessNanos(long d, long m); + + /** + * Performs a timed Object.wait using this time unit. + * This is a convenience method that converts timeout arguments + * into the form required by the Object.wait method. + * + *

For example, you could implement a blocking poll + * method (see {@link BlockingQueue#poll BlockingQueue.poll}) + * using: + * + *

  public synchronized Object poll(long timeout, TimeUnit unit) throws InterruptedException {
+     *    while (empty) {
+     *      unit.timedWait(this, timeout);
+     *      ...
+     *    }
+     *  }
+ * + * @param obj the object to wait on + * @param timeout the maximum time to wait. If less than + * or equal to zero, do not wait at all. + * @throws InterruptedException if interrupted while waiting. + * @see Object#wait(long, int) + */ + public void timedWait(Object obj, long timeout) + throws InterruptedException { + if (timeout > 0) { + long ms = toMillis(timeout); + int ns = excessNanos(timeout, ms); + obj.wait(ms, ns); + } + } + + /** + * Performs a timed Thread.join using this time unit. + * This is a convenience method that converts time arguments into the + * form required by the Thread.join method. + * @param thread the thread to wait for + * @param timeout the maximum time to wait. If less than + * or equal to zero, do not wait at all. + * @throws InterruptedException if interrupted while waiting. + * @see Thread#join(long, int) + */ + public void timedJoin(Thread thread, long timeout) + throws InterruptedException { + if (timeout > 0) { + long ms = toMillis(timeout); + int ns = excessNanos(timeout, ms); + thread.join(ms, ns); + } + } + + /** + * Performs a Thread.sleep using this unit. + * This is a convenience method that converts time arguments into the + * form required by the Thread.sleep method. + * @param timeout the minimum time to sleep. If less than + * or equal to zero, do not sleep at all. + * @throws InterruptedException if interrupted while sleeping. + * @see Thread#sleep + */ + public void sleep(long timeout) throws InterruptedException { + if (timeout > 0) { + long ms = toMillis(timeout); + int ns = excessNanos(timeout, ms); + Thread.sleep(ms, ns); + } + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/TimeoutException.java b/libjava/classpath/external/jsr166/java/util/concurrent/TimeoutException.java new file mode 100644 index 00000000000..8b84f28e55d --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/TimeoutException.java @@ -0,0 +1,38 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent; + +/** + * Exception thrown when a blocking operation times out. Blocking + * operations for which a timeout is specified need a means to + * indicate that the timeout has occurred. For many such operations it + * is possible to return a value that indicates timeout; when that is + * not possible or desirable then TimeoutException should be + * declared and thrown. + * + * @since 1.5 + * @author Doug Lea + */ +public class TimeoutException extends Exception { + private static final long serialVersionUID = 1900926677490660714L; + + /** + * Constructs a TimeoutException with no specified detail + * message. + */ + public TimeoutException() {} + + /** + * Constructs a TimeoutException with the specified detail + * message. + * + * @param message the detail message + */ + public TimeoutException(String message) { + super(message); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicBoolean.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicBoolean.java new file mode 100644 index 00000000000..bd823bd2c23 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicBoolean.java @@ -0,0 +1,133 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; + +/** + * A boolean value that may be updated atomically. See the + * {@link java.util.concurrent.atomic} package specification for + * description of the properties of atomic variables. An + * AtomicBoolean is used in applications such as atomically + * updated flags, and cannot be used as a replacement for a + * {@link java.lang.Boolean}. + * + * @since 1.5 + * @author Doug Lea + */ +public class AtomicBoolean implements java.io.Serializable { + private static final long serialVersionUID = 4654671469794556979L; + // setup to use Unsafe.compareAndSwapInt for updates + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long valueOffset; + + static { + try { + valueOffset = unsafe.objectFieldOffset + (AtomicBoolean.class.getDeclaredField("value")); + } catch (Exception ex) { throw new Error(ex); } + } + + private volatile int value; + + /** + * Creates a new AtomicBoolean with the given initial value. + * + * @param initialValue the initial value + */ + public AtomicBoolean(boolean initialValue) { + value = initialValue ? 1 : 0; + } + + /** + * Creates a new AtomicBoolean with initial value false. + */ + public AtomicBoolean() { + } + + /** + * Returns the current value. + * + * @return the current value + */ + public final boolean get() { + return value != 0; + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(boolean expect, boolean update) { + int e = expect ? 1 : 0; + int u = update ? 1 : 0; + return unsafe.compareAndSwapInt(this, valueOffset, e, u); + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public boolean weakCompareAndSet(boolean expect, boolean update) { + int e = expect ? 1 : 0; + int u = update ? 1 : 0; + return unsafe.compareAndSwapInt(this, valueOffset, e, u); + } + + /** + * Unconditionally sets to the given value. + * + * @param newValue the new value + */ + public final void set(boolean newValue) { + value = newValue ? 1 : 0; + } + + /** + * Eventually sets to the given value. + * + * @param newValue the new value + * @since 1.6 + */ + public final void lazySet(boolean newValue) { + int v = newValue ? 1 : 0; + unsafe.putOrderedInt(this, valueOffset, v); + } + + /** + * Atomically sets to the given value and returns the previous value. + * + * @param newValue the new value + * @return the previous value + */ + public final boolean getAndSet(boolean newValue) { + for (;;) { + boolean current = get(); + if (compareAndSet(current, newValue)) + return current; + } + } + + /** + * Returns the String representation of the current value. + * @return the String representation of the current value. + */ + public String toString() { + return Boolean.toString(get()); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java new file mode 100644 index 00000000000..dc4d470c32a --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java @@ -0,0 +1,234 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; + +/** + * An int value that may be updated atomically. See the + * {@link java.util.concurrent.atomic} package specification for + * description of the properties of atomic variables. An + * AtomicInteger is used in applications such as atomically + * incremented counters, and cannot be used as a replacement for an + * {@link java.lang.Integer}. However, this class does extend + * Number to allow uniform access by tools and utilities that + * deal with numerically-based classes. + * + * @since 1.5 + * @author Doug Lea +*/ +public class AtomicInteger extends Number implements java.io.Serializable { + private static final long serialVersionUID = 6214790243416807050L; + + // setup to use Unsafe.compareAndSwapInt for updates + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long valueOffset; + + static { + try { + valueOffset = unsafe.objectFieldOffset + (AtomicInteger.class.getDeclaredField("value")); + } catch (Exception ex) { throw new Error(ex); } + } + + private volatile int value; + + /** + * Creates a new AtomicInteger with the given initial value. + * + * @param initialValue the initial value + */ + public AtomicInteger(int initialValue) { + value = initialValue; + } + + /** + * Creates a new AtomicInteger with initial value 0. + */ + public AtomicInteger() { + } + + /** + * Gets the current value. + * + * @return the current value + */ + public final int get() { + return value; + } + + /** + * Sets to the given value. + * + * @param newValue the new value + */ + public final void set(int newValue) { + value = newValue; + } + + /** + * Eventually sets to the given value. + * + * @param newValue the new value + * @since 1.6 + */ + public final void lazySet(int newValue) { + unsafe.putOrderedInt(this, valueOffset, newValue); + } + + /** + * Atomically sets to the given value and returns the old value. + * + * @param newValue the new value + * @return the previous value + */ + public final int getAndSet(int newValue) { + for (;;) { + int current = get(); + if (compareAndSet(current, newValue)) + return current; + } + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(int expect, int update) { + return unsafe.compareAndSwapInt(this, valueOffset, expect, update); + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public final boolean weakCompareAndSet(int expect, int update) { + return unsafe.compareAndSwapInt(this, valueOffset, expect, update); + } + + /** + * Atomically increments by one the current value. + * + * @return the previous value + */ + public final int getAndIncrement() { + for (;;) { + int current = get(); + int next = current + 1; + if (compareAndSet(current, next)) + return current; + } + } + + /** + * Atomically decrements by one the current value. + * + * @return the previous value + */ + public final int getAndDecrement() { + for (;;) { + int current = get(); + int next = current - 1; + if (compareAndSet(current, next)) + return current; + } + } + + /** + * Atomically adds the given value to the current value. + * + * @param delta the value to add + * @return the previous value + */ + public final int getAndAdd(int delta) { + for (;;) { + int current = get(); + int next = current + delta; + if (compareAndSet(current, next)) + return current; + } + } + + /** + * Atomically increments by one the current value. + * + * @return the updated value + */ + public final int incrementAndGet() { + for (;;) { + int current = get(); + int next = current + 1; + if (compareAndSet(current, next)) + return next; + } + } + + /** + * Atomically decrements by one the current value. + * + * @return the updated value + */ + public final int decrementAndGet() { + for (;;) { + int current = get(); + int next = current - 1; + if (compareAndSet(current, next)) + return next; + } + } + + /** + * Atomically adds the given value to the current value. + * + * @param delta the value to add + * @return the updated value + */ + public final int addAndGet(int delta) { + for (;;) { + int current = get(); + int next = current + delta; + if (compareAndSet(current, next)) + return next; + } + } + + /** + * Returns the String representation of the current value. + * @return the String representation of the current value. + */ + public String toString() { + return Integer.toString(get()); + } + + + public int intValue() { + return get(); + } + + public long longValue() { + return (long)get(); + } + + public float floatValue() { + return (float)get(); + } + + public double doubleValue() { + return (double)get(); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerArray.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerArray.java new file mode 100644 index 00000000000..2ad754fda2b --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerArray.java @@ -0,0 +1,255 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; +import java.util.*; + +/** + * An int array in which elements may be updated atomically. + * See the {@link java.util.concurrent.atomic} package + * specification for description of the properties of atomic + * variables. + * @since 1.5 + * @author Doug Lea + */ +public class AtomicIntegerArray implements java.io.Serializable { + private static final long serialVersionUID = 2862133569453604235L; + + // setup to use Unsafe.compareAndSwapInt for updates + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final int base = unsafe.arrayBaseOffset(int[].class); + private static final int scale = unsafe.arrayIndexScale(int[].class); + private final int[] array; + + private long rawIndex(int i) { + if (i < 0 || i >= array.length) + throw new IndexOutOfBoundsException("index " + i); + return base + i * scale; + } + + /** + * Creates a new AtomicIntegerArray of given length. + * + * @param length the length of the array + */ + public AtomicIntegerArray(int length) { + array = new int[length]; + // must perform at least one volatile write to conform to JMM + if (length > 0) + unsafe.putIntVolatile(array, rawIndex(0), 0); + } + + /** + * Creates a new AtomicIntegerArray with the same length as, and + * all elements copied from, the given array. + * + * @param array the array to copy elements from + * @throws NullPointerException if array is null + */ + public AtomicIntegerArray(int[] array) { + if (array == null) + throw new NullPointerException(); + int length = array.length; + this.array = new int[length]; + if (length > 0) { + int last = length-1; + for (int i = 0; i < last; ++i) + this.array[i] = array[i]; + // Do the last write as volatile + unsafe.putIntVolatile(this.array, rawIndex(last), array[last]); + } + } + + /** + * Returns the length of the array. + * + * @return the length of the array + */ + public final int length() { + return array.length; + } + + /** + * Gets the current value at position i. + * + * @param i the index + * @return the current value + */ + public final int get(int i) { + return unsafe.getIntVolatile(array, rawIndex(i)); + } + + /** + * Sets the element at position i to the given value. + * + * @param i the index + * @param newValue the new value + */ + public final void set(int i, int newValue) { + unsafe.putIntVolatile(array, rawIndex(i), newValue); + } + + /** + * Eventually sets the element at position i to the given value. + * + * @param i the index + * @param newValue the new value + * @since 1.6 + */ + public final void lazySet(int i, int newValue) { + unsafe.putOrderedInt(array, rawIndex(i), newValue); + } + + /** + * Atomically sets the element at position i to the given + * value and returns the old value. + * + * @param i the index + * @param newValue the new value + * @return the previous value + */ + public final int getAndSet(int i, int newValue) { + while (true) { + int current = get(i); + if (compareAndSet(i, current, newValue)) + return current; + } + } + + /** + * Atomically sets the element at position i to the given + * updated value if the current value == the expected value. + * + * @param i the index + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(int i, int expect, int update) { + return unsafe.compareAndSwapInt(array, rawIndex(i), + expect, update); + } + + /** + * Atomically sets the element at position i to the given + * updated value if the current value == the expected value. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param i the index + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public final boolean weakCompareAndSet(int i, int expect, int update) { + return compareAndSet(i, expect, update); + } + + /** + * Atomically increments by one the element at index i. + * + * @param i the index + * @return the previous value + */ + public final int getAndIncrement(int i) { + while (true) { + int current = get(i); + int next = current + 1; + if (compareAndSet(i, current, next)) + return current; + } + } + + /** + * Atomically decrements by one the element at index i. + * + * @param i the index + * @return the previous value + */ + public final int getAndDecrement(int i) { + while (true) { + int current = get(i); + int next = current - 1; + if (compareAndSet(i, current, next)) + return current; + } + } + + /** + * Atomically adds the given value to the element at index i. + * + * @param i the index + * @param delta the value to add + * @return the previous value + */ + public final int getAndAdd(int i, int delta) { + while (true) { + int current = get(i); + int next = current + delta; + if (compareAndSet(i, current, next)) + return current; + } + } + + /** + * Atomically increments by one the element at index i. + * + * @param i the index + * @return the updated value + */ + public final int incrementAndGet(int i) { + while (true) { + int current = get(i); + int next = current + 1; + if (compareAndSet(i, current, next)) + return next; + } + } + + /** + * Atomically decrements by one the element at index i. + * + * @param i the index + * @return the updated value + */ + public final int decrementAndGet(int i) { + while (true) { + int current = get(i); + int next = current - 1; + if (compareAndSet(i, current, next)) + return next; + } + } + + /** + * Atomically adds the given value to the element at index i. + * + * @param i the index + * @param delta the value to add + * @return the updated value + */ + public final int addAndGet(int i, int delta) { + while (true) { + int current = get(i); + int next = current + delta; + if (compareAndSet(i, current, next)) + return next; + } + } + + /** + * Returns the String representation of the current values of array. + * @return the String representation of the current values of array. + */ + public String toString() { + if (array.length > 0) // force volatile read + get(0); + return Arrays.toString(array); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java new file mode 100644 index 00000000000..102c2a7c9bd --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java @@ -0,0 +1,316 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; +import java.lang.reflect.*; + +/** + * A reflection-based utility that enables atomic updates to + * designated volatile int fields of designated classes. + * This class is designed for use in atomic data structures in which + * several fields of the same node are independently subject to atomic + * updates. + * + *

Note that the guarantees of the {@code compareAndSet} + * method in this class are weaker than in other atomic classes. + * Because this class cannot ensure that all uses of the field + * are appropriate for purposes of atomic access, it can + * guarantee atomicity only with respect to other invocations of + * {@code compareAndSet} and {@code set} on the same updater. + * + * @since 1.5 + * @author Doug Lea + * @param The type of the object holding the updatable field + */ +public abstract class AtomicIntegerFieldUpdater { + /** + * Creates and returns an updater for objects with the given field. + * The Class argument is needed to check that reflective types and + * generic types match. + * + * @param tclass the class of the objects holding the field + * @param fieldName the name of the field to be updated + * @return the updater + * @throws IllegalArgumentException if the field is not a + * volatile integer type + * @throws RuntimeException with a nested reflection-based + * exception if the class does not hold field or is the wrong type + */ + public static AtomicIntegerFieldUpdater newUpdater(Class tclass, String fieldName) { + return new AtomicIntegerFieldUpdaterImpl(tclass, fieldName); + } + + /** + * Protected do-nothing constructor for use by subclasses. + */ + protected AtomicIntegerFieldUpdater() { + } + + /** + * Atomically sets the field of the given object managed by this updater + * to the given updated value if the current value == the + * expected value. This method is guaranteed to be atomic with respect to + * other calls to compareAndSet and set, but not + * necessarily with respect to other changes in the field. + * + * @param obj An object whose field to conditionally set + * @param expect the expected value + * @param update the new value + * @return true if successful + * @throws ClassCastException if obj is not an instance + * of the class possessing the field established in the constructor + */ + public abstract boolean compareAndSet(T obj, int expect, int update); + + /** + * Atomically sets the field of the given object managed by this updater + * to the given updated value if the current value == the + * expected value. This method is guaranteed to be atomic with respect to + * other calls to compareAndSet and set, but not + * necessarily with respect to other changes in the field. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param obj An object whose field to conditionally set + * @param expect the expected value + * @param update the new value + * @return true if successful + * @throws ClassCastException if obj is not an instance + * of the class possessing the field established in the constructor + */ + public abstract boolean weakCompareAndSet(T obj, int expect, int update); + + /** + * Sets the field of the given object managed by this updater to the + * given updated value. This operation is guaranteed to act as a volatile + * store with respect to subsequent invocations of + * compareAndSet. + * + * @param obj An object whose field to set + * @param newValue the new value + */ + public abstract void set(T obj, int newValue); + + /** + * Eventually sets the field of the given object managed by this + * updater to the given updated value. + * + * @param obj An object whose field to set + * @param newValue the new value + * @since 1.6 + */ + public abstract void lazySet(T obj, int newValue); + + + /** + * Gets the current value held in the field of the given object managed + * by this updater. + * + * @param obj An object whose field to get + * @return the current value + */ + public abstract int get(T obj); + + /** + * Atomically sets the field of the given object managed by this updater + * to the given value and returns the old value. + * + * @param obj An object whose field to get and set + * @param newValue the new value + * @return the previous value + */ + public int getAndSet(T obj, int newValue) { + for (;;) { + int current = get(obj); + if (compareAndSet(obj, current, newValue)) + return current; + } + } + + /** + * Atomically increments by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the previous value + */ + public int getAndIncrement(T obj) { + for (;;) { + int current = get(obj); + int next = current + 1; + if (compareAndSet(obj, current, next)) + return current; + } + } + + /** + * Atomically decrements by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the previous value + */ + public int getAndDecrement(T obj) { + for (;;) { + int current = get(obj); + int next = current - 1; + if (compareAndSet(obj, current, next)) + return current; + } + } + + /** + * Atomically adds the given value to the current value of the field of + * the given object managed by this updater. + * + * @param obj An object whose field to get and set + * @param delta the value to add + * @return the previous value + */ + public int getAndAdd(T obj, int delta) { + for (;;) { + int current = get(obj); + int next = current + delta; + if (compareAndSet(obj, current, next)) + return current; + } + } + + /** + * Atomically increments by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the updated value + */ + public int incrementAndGet(T obj) { + for (;;) { + int current = get(obj); + int next = current + 1; + if (compareAndSet(obj, current, next)) + return next; + } + } + + /** + * Atomically decrements by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the updated value + */ + public int decrementAndGet(T obj) { + for (;;) { + int current = get(obj); + int next = current - 1; + if (compareAndSet(obj, current, next)) + return next; + } + } + + /** + * Atomically adds the given value to the current value of the field of + * the given object managed by this updater. + * + * @param obj An object whose field to get and set + * @param delta the value to add + * @return the updated value + */ + public int addAndGet(T obj, int delta) { + for (;;) { + int current = get(obj); + int next = current + delta; + if (compareAndSet(obj, current, next)) + return next; + } + } + + /** + * Standard hotspot implementation using intrinsics + */ + private static class AtomicIntegerFieldUpdaterImpl extends AtomicIntegerFieldUpdater { + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private final long offset; + private final Class tclass; + private final Class cclass; + + AtomicIntegerFieldUpdaterImpl(Class tclass, String fieldName) { + Field field = null; + Class caller = null; + int modifiers = 0; + try { + field = tclass.getDeclaredField(fieldName); + caller = sun.reflect.Reflection.getCallerClass(3); + modifiers = field.getModifiers(); + sun.reflect.misc.ReflectUtil.ensureMemberAccess( + caller, tclass, null, modifiers); + sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); + } catch(Exception ex) { + throw new RuntimeException(ex); + } + + Class fieldt = field.getType(); + if (fieldt != int.class) + throw new IllegalArgumentException("Must be integer type"); + + if (!Modifier.isVolatile(modifiers)) + throw new IllegalArgumentException("Must be volatile type"); + + this.cclass = (Modifier.isProtected(modifiers) && + caller != tclass) ? caller : null; + this.tclass = tclass; + offset = unsafe.objectFieldOffset(field); + } + + private void fullCheck(T obj) { + if (!tclass.isInstance(obj)) + throw new ClassCastException(); + if (cclass != null) + ensureProtectedAccess(obj); + } + + public boolean compareAndSet(T obj, int expect, int update) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + return unsafe.compareAndSwapInt(obj, offset, expect, update); + } + + public boolean weakCompareAndSet(T obj, int expect, int update) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + return unsafe.compareAndSwapInt(obj, offset, expect, update); + } + + public void set(T obj, int newValue) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + unsafe.putIntVolatile(obj, offset, newValue); + } + + public void lazySet(T obj, int newValue) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + unsafe.putOrderedInt(obj, offset, newValue); + } + + public final int get(T obj) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + return unsafe.getIntVolatile(obj, offset); + } + + private void ensureProtectedAccess(T obj) { + if (cclass.isInstance(obj)) { + return; + } + throw new RuntimeException( + new IllegalAccessException("Class " + + cclass.getName() + + " can not access a protected member of class " + + tclass.getName() + + " using an instance of " + + obj.getClass().getName() + ) + ); + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java new file mode 100644 index 00000000000..136dc60fb7d --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java @@ -0,0 +1,248 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; + +/** + * A long value that may be updated atomically. See the + * {@link java.util.concurrent.atomic} package specification for + * description of the properties of atomic variables. An + * AtomicLong is used in applications such as atomically + * incremented sequence numbers, and cannot be used as a replacement + * for a {@link java.lang.Long}. However, this class does extend + * Number to allow uniform access by tools and utilities that + * deal with numerically-based classes. + * + * @since 1.5 + * @author Doug Lea + */ +public class AtomicLong extends Number implements java.io.Serializable { + private static final long serialVersionUID = 1927816293512124184L; + + // setup to use Unsafe.compareAndSwapLong for updates + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long valueOffset; + + /** + * Records whether the underlying JVM supports lockless + * CompareAndSet for longs. While the unsafe.CompareAndSetLong + * method works in either case, some constructions should be + * handled at Java level to avoid locking user-visible locks. + */ + static final boolean VM_SUPPORTS_LONG_CAS = VMSupportsCS8(); + + /** + * Returns whether underlying JVM supports lockless CompareAndSet + * for longs. Called only once and cached in VM_SUPPORTS_LONG_CAS. + */ + private static native boolean VMSupportsCS8(); + + static { + try { + valueOffset = unsafe.objectFieldOffset + (AtomicLong.class.getDeclaredField("value")); + } catch (Exception ex) { throw new Error(ex); } + } + + private volatile long value; + + /** + * Creates a new AtomicLong with the given initial value. + * + * @param initialValue the initial value + */ + public AtomicLong(long initialValue) { + value = initialValue; + } + + /** + * Creates a new AtomicLong with initial value 0. + */ + public AtomicLong() { + } + + /** + * Gets the current value. + * + * @return the current value + */ + public final long get() { + return value; + } + + /** + * Sets to the given value. + * + * @param newValue the new value + */ + public final void set(long newValue) { + value = newValue; + } + + /** + * Eventually sets to the given value. + * + * @param newValue the new value + * @since 1.6 + */ + public final void lazySet(long newValue) { + unsafe.putOrderedLong(this, valueOffset, newValue); + } + + /** + * Atomically sets to the given value and returns the old value. + * + * @param newValue the new value + * @return the previous value + */ + public final long getAndSet(long newValue) { + while (true) { + long current = get(); + if (compareAndSet(current, newValue)) + return current; + } + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(long expect, long update) { + return unsafe.compareAndSwapLong(this, valueOffset, expect, update); + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public final boolean weakCompareAndSet(long expect, long update) { + return unsafe.compareAndSwapLong(this, valueOffset, expect, update); + } + + /** + * Atomically increments by one the current value. + * + * @return the previous value + */ + public final long getAndIncrement() { + while (true) { + long current = get(); + long next = current + 1; + if (compareAndSet(current, next)) + return current; + } + } + + /** + * Atomically decrements by one the current value. + * + * @return the previous value + */ + public final long getAndDecrement() { + while (true) { + long current = get(); + long next = current - 1; + if (compareAndSet(current, next)) + return current; + } + } + + /** + * Atomically adds the given value to the current value. + * + * @param delta the value to add + * @return the previous value + */ + public final long getAndAdd(long delta) { + while (true) { + long current = get(); + long next = current + delta; + if (compareAndSet(current, next)) + return current; + } + } + + /** + * Atomically increments by one the current value. + * + * @return the updated value + */ + public final long incrementAndGet() { + for (;;) { + long current = get(); + long next = current + 1; + if (compareAndSet(current, next)) + return next; + } + } + + /** + * Atomically decrements by one the current value. + * + * @return the updated value + */ + public final long decrementAndGet() { + for (;;) { + long current = get(); + long next = current - 1; + if (compareAndSet(current, next)) + return next; + } + } + + /** + * Atomically adds the given value to the current value. + * + * @param delta the value to add + * @return the updated value + */ + public final long addAndGet(long delta) { + for (;;) { + long current = get(); + long next = current + delta; + if (compareAndSet(current, next)) + return next; + } + } + + /** + * Returns the String representation of the current value. + * @return the String representation of the current value. + */ + public String toString() { + return Long.toString(get()); + } + + + public int intValue() { + return (int)get(); + } + + public long longValue() { + return (long)get(); + } + + public float floatValue() { + return (float)get(); + } + + public double doubleValue() { + return (double)get(); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongArray.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongArray.java new file mode 100644 index 00000000000..c582cba547a --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongArray.java @@ -0,0 +1,255 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; +import java.util.*; + +/** + * A long array in which elements may be updated atomically. + * See the {@link java.util.concurrent.atomic} package specification + * for description of the properties of atomic variables. + * @since 1.5 + * @author Doug Lea + */ +public class AtomicLongArray implements java.io.Serializable { + private static final long serialVersionUID = -2308431214976778248L; + + // setup to use Unsafe.compareAndSwapInt for updates + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final int base = unsafe.arrayBaseOffset(long[].class); + private static final int scale = unsafe.arrayIndexScale(long[].class); + private final long[] array; + + private long rawIndex(int i) { + if (i < 0 || i >= array.length) + throw new IndexOutOfBoundsException("index " + i); + return base + i * scale; + } + + /** + * Creates a new AtomicLongArray of given length. + * + * @param length the length of the array + */ + public AtomicLongArray(int length) { + array = new long[length]; + // must perform at least one volatile write to conform to JMM + if (length > 0) + unsafe.putLongVolatile(array, rawIndex(0), 0); + } + + /** + * Creates a new AtomicLongArray with the same length as, and + * all elements copied from, the given array. + * + * @param array the array to copy elements from + * @throws NullPointerException if array is null + */ + public AtomicLongArray(long[] array) { + if (array == null) + throw new NullPointerException(); + int length = array.length; + this.array = new long[length]; + if (length > 0) { + int last = length-1; + for (int i = 0; i < last; ++i) + this.array[i] = array[i]; + // Do the last write as volatile + unsafe.putLongVolatile(this.array, rawIndex(last), array[last]); + } + } + + /** + * Returns the length of the array. + * + * @return the length of the array + */ + public final int length() { + return array.length; + } + + /** + * Gets the current value at position i. + * + * @param i the index + * @return the current value + */ + public final long get(int i) { + return unsafe.getLongVolatile(array, rawIndex(i)); + } + + /** + * Sets the element at position i to the given value. + * + * @param i the index + * @param newValue the new value + */ + public final void set(int i, long newValue) { + unsafe.putLongVolatile(array, rawIndex(i), newValue); + } + + /** + * Eventually sets the element at position i to the given value. + * + * @param i the index + * @param newValue the new value + * @since 1.6 + */ + public final void lazySet(int i, long newValue) { + unsafe.putOrderedLong(array, rawIndex(i), newValue); + } + + + /** + * Atomically sets the element at position i to the given value + * and returns the old value. + * + * @param i the index + * @param newValue the new value + * @return the previous value + */ + public final long getAndSet(int i, long newValue) { + while (true) { + long current = get(i); + if (compareAndSet(i, current, newValue)) + return current; + } + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * + * @param i the index + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(int i, long expect, long update) { + return unsafe.compareAndSwapLong(array, rawIndex(i), + expect, update); + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param i the index + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public final boolean weakCompareAndSet(int i, long expect, long update) { + return compareAndSet(i, expect, update); + } + + /** + * Atomically increments by one the element at index i. + * + * @param i the index + * @return the previous value + */ + public final long getAndIncrement(int i) { + while (true) { + long current = get(i); + long next = current + 1; + if (compareAndSet(i, current, next)) + return current; + } + } + + /** + * Atomically decrements by one the element at index i. + * + * @param i the index + * @return the previous value + */ + public final long getAndDecrement(int i) { + while (true) { + long current = get(i); + long next = current - 1; + if (compareAndSet(i, current, next)) + return current; + } + } + + /** + * Atomically adds the given value to the element at index i. + * + * @param i the index + * @param delta the value to add + * @return the previous value + */ + public final long getAndAdd(int i, long delta) { + while (true) { + long current = get(i); + long next = current + delta; + if (compareAndSet(i, current, next)) + return current; + } + } + + /** + * Atomically increments by one the element at index i. + * + * @param i the index + * @return the updated value + */ + public final long incrementAndGet(int i) { + while (true) { + long current = get(i); + long next = current + 1; + if (compareAndSet(i, current, next)) + return next; + } + } + + /** + * Atomically decrements by one the element at index i. + * + * @param i the index + * @return the updated value + */ + public final long decrementAndGet(int i) { + while (true) { + long current = get(i); + long next = current - 1; + if (compareAndSet(i, current, next)) + return next; + } + } + + /** + * Atomically adds the given value to the element at index i. + * + * @param i the index + * @param delta the value to add + * @return the updated value + */ + public long addAndGet(int i, long delta) { + while (true) { + long current = get(i); + long next = current + delta; + if (compareAndSet(i, current, next)) + return next; + } + } + + /** + * Returns the String representation of the current values of array. + * @return the String representation of the current values of array. + */ + public String toString() { + if (array.length > 0) // force volatile read + get(0); + return Arrays.toString(array); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java new file mode 100644 index 00000000000..dafd089236e --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java @@ -0,0 +1,406 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; +import java.lang.reflect.*; + +/** + * A reflection-based utility that enables atomic updates to + * designated volatile long fields of designated classes. + * This class is designed for use in atomic data structures in which + * several fields of the same node are independently subject to atomic + * updates. + * + *

Note that the guarantees of the {@code compareAndSet} + * method in this class are weaker than in other atomic classes. + * Because this class cannot ensure that all uses of the field + * are appropriate for purposes of atomic access, it can + * guarantee atomicity only with respect to other invocations of + * {@code compareAndSet} and {@code set} on the same updater. + * + * @since 1.5 + * @author Doug Lea + * @param The type of the object holding the updatable field + */ +public abstract class AtomicLongFieldUpdater { + /** + * Creates and returns an updater for objects with the given field. + * The Class argument is needed to check that reflective types and + * generic types match. + * + * @param tclass the class of the objects holding the field + * @param fieldName the name of the field to be updated. + * @return the updater + * @throws IllegalArgumentException if the field is not a + * volatile long type. + * @throws RuntimeException with a nested reflection-based + * exception if the class does not hold field or is the wrong type. + */ + public static AtomicLongFieldUpdater newUpdater(Class tclass, String fieldName) { + if (AtomicLong.VM_SUPPORTS_LONG_CAS) + return new CASUpdater(tclass, fieldName); + else + return new LockedUpdater(tclass, fieldName); + } + + /** + * Protected do-nothing constructor for use by subclasses. + */ + protected AtomicLongFieldUpdater() { + } + + /** + * Atomically sets the field of the given object managed by this updater + * to the given updated value if the current value == the + * expected value. This method is guaranteed to be atomic with respect to + * other calls to compareAndSet and set, but not + * necessarily with respect to other changes in the field. + * + * @param obj An object whose field to conditionally set + * @param expect the expected value + * @param update the new value + * @return true if successful. + * @throws ClassCastException if obj is not an instance + * of the class possessing the field established in the constructor. + */ + public abstract boolean compareAndSet(T obj, long expect, long update); + + /** + * Atomically sets the field of the given object managed by this updater + * to the given updated value if the current value == the + * expected value. This method is guaranteed to be atomic with respect to + * other calls to compareAndSet and set, but not + * necessarily with respect to other changes in the field. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param obj An object whose field to conditionally set + * @param expect the expected value + * @param update the new value + * @return true if successful. + * @throws ClassCastException if obj is not an instance + * of the class possessing the field established in the constructor. + */ + public abstract boolean weakCompareAndSet(T obj, long expect, long update); + + /** + * Sets the field of the given object managed by this updater to the + * given updated value. This operation is guaranteed to act as a volatile + * store with respect to subsequent invocations of + * compareAndSet. + * + * @param obj An object whose field to set + * @param newValue the new value + */ + public abstract void set(T obj, long newValue); + + /** + * Eventually sets the field of the given object managed by this + * updater to the given updated value. + * + * @param obj An object whose field to set + * @param newValue the new value + * @since 1.6 + */ + public abstract void lazySet(T obj, long newValue); + + /** + * Gets the current value held in the field of the given object managed + * by this updater. + * + * @param obj An object whose field to get + * @return the current value + */ + public abstract long get(T obj); + + /** + * Atomically sets the field of the given object managed by this updater + * to the given value and returns the old value. + * + * @param obj An object whose field to get and set + * @param newValue the new value + * @return the previous value + */ + public long getAndSet(T obj, long newValue) { + for (;;) { + long current = get(obj); + if (compareAndSet(obj, current, newValue)) + return current; + } + } + + /** + * Atomically increments by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the previous value + */ + public long getAndIncrement(T obj) { + for (;;) { + long current = get(obj); + long next = current + 1; + if (compareAndSet(obj, current, next)) + return current; + } + } + + /** + * Atomically decrements by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the previous value + */ + public long getAndDecrement(T obj) { + for (;;) { + long current = get(obj); + long next = current - 1; + if (compareAndSet(obj, current, next)) + return current; + } + } + + /** + * Atomically adds the given value to the current value of the field of + * the given object managed by this updater. + * + * @param obj An object whose field to get and set + * @param delta the value to add + * @return the previous value + */ + public long getAndAdd(T obj, long delta) { + for (;;) { + long current = get(obj); + long next = current + delta; + if (compareAndSet(obj, current, next)) + return current; + } + } + + /** + * Atomically increments by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the updated value + */ + public long incrementAndGet(T obj) { + for (;;) { + long current = get(obj); + long next = current + 1; + if (compareAndSet(obj, current, next)) + return next; + } + } + + /** + * Atomically decrements by one the current value of the field of the + * given object managed by this updater. + * + * @param obj An object whose field to get and set + * @return the updated value + */ + public long decrementAndGet(T obj) { + for (;;) { + long current = get(obj); + long next = current - 1; + if (compareAndSet(obj, current, next)) + return next; + } + } + + /** + * Atomically adds the given value to the current value of the field of + * the given object managed by this updater. + * + * @param obj An object whose field to get and set + * @param delta the value to add + * @return the updated value + */ + public long addAndGet(T obj, long delta) { + for (;;) { + long current = get(obj); + long next = current + delta; + if (compareAndSet(obj, current, next)) + return next; + } + } + + private static class CASUpdater extends AtomicLongFieldUpdater { + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private final long offset; + private final Class tclass; + private final Class cclass; + + CASUpdater(Class tclass, String fieldName) { + Field field = null; + Class caller = null; + int modifiers = 0; + try { + field = tclass.getDeclaredField(fieldName); + caller = sun.reflect.Reflection.getCallerClass(3); + modifiers = field.getModifiers(); + sun.reflect.misc.ReflectUtil.ensureMemberAccess( + caller, tclass, null, modifiers); + sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); + } catch(Exception ex) { + throw new RuntimeException(ex); + } + + Class fieldt = field.getType(); + if (fieldt != long.class) + throw new IllegalArgumentException("Must be long type"); + + if (!Modifier.isVolatile(modifiers)) + throw new IllegalArgumentException("Must be volatile type"); + + this.cclass = (Modifier.isProtected(modifiers) && + caller != tclass) ? caller : null; + this.tclass = tclass; + offset = unsafe.objectFieldOffset(field); + } + + private void fullCheck(T obj) { + if (!tclass.isInstance(obj)) + throw new ClassCastException(); + if (cclass != null) + ensureProtectedAccess(obj); + } + + public boolean compareAndSet(T obj, long expect, long update) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + return unsafe.compareAndSwapLong(obj, offset, expect, update); + } + + public boolean weakCompareAndSet(T obj, long expect, long update) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + return unsafe.compareAndSwapLong(obj, offset, expect, update); + } + + public void set(T obj, long newValue) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + unsafe.putLongVolatile(obj, offset, newValue); + } + + public void lazySet(T obj, long newValue) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + unsafe.putOrderedLong(obj, offset, newValue); + } + + public long get(T obj) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + return unsafe.getLongVolatile(obj, offset); + } + + private void ensureProtectedAccess(T obj) { + if (cclass.isInstance(obj)) { + return; + } + throw new RuntimeException ( + new IllegalAccessException("Class " + + cclass.getName() + + " can not access a protected member of class " + + tclass.getName() + + " using an instance of " + + obj.getClass().getName() + ) + ); + } + } + + + private static class LockedUpdater extends AtomicLongFieldUpdater { + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private final long offset; + private final Class tclass; + private final Class cclass; + + LockedUpdater(Class tclass, String fieldName) { + Field field = null; + Class caller = null; + int modifiers = 0; + try { + field = tclass.getDeclaredField(fieldName); + caller = sun.reflect.Reflection.getCallerClass(3); + modifiers = field.getModifiers(); + sun.reflect.misc.ReflectUtil.ensureMemberAccess( + caller, tclass, null, modifiers); + sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); + } catch(Exception ex) { + throw new RuntimeException(ex); + } + + Class fieldt = field.getType(); + if (fieldt != long.class) + throw new IllegalArgumentException("Must be long type"); + + if (!Modifier.isVolatile(modifiers)) + throw new IllegalArgumentException("Must be volatile type"); + + this.cclass = (Modifier.isProtected(modifiers) && + caller != tclass) ? caller : null; + this.tclass = tclass; + offset = unsafe.objectFieldOffset(field); + } + + private void fullCheck(T obj) { + if (!tclass.isInstance(obj)) + throw new ClassCastException(); + if (cclass != null) + ensureProtectedAccess(obj); + } + + public boolean compareAndSet(T obj, long expect, long update) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + synchronized(this) { + long v = unsafe.getLong(obj, offset); + if (v != expect) + return false; + unsafe.putLong(obj, offset, update); + return true; + } + } + + public boolean weakCompareAndSet(T obj, long expect, long update) { + return compareAndSet(obj, expect, update); + } + + public void set(T obj, long newValue) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + synchronized(this) { + unsafe.putLong(obj, offset, newValue); + } + } + + public void lazySet(T obj, long newValue) { + set(obj, newValue); + } + + public long get(T obj) { + if (obj == null || obj.getClass() != tclass || cclass != null) fullCheck(obj); + synchronized(this) { + return unsafe.getLong(obj, offset); + } + } + + private void ensureProtectedAccess(T obj) { + if (cclass.isInstance(obj)) { + return; + } + throw new RuntimeException ( + new IllegalAccessException("Class " + + cclass.getName() + + " can not access a protected member of class " + + tclass.getName() + + " using an instance of " + + obj.getClass().getName() + ) + ); + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicMarkableReference.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicMarkableReference.java new file mode 100644 index 00000000000..85335b737e5 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicMarkableReference.java @@ -0,0 +1,161 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; + +/** + * An AtomicMarkableReference maintains an object reference + * along with a mark bit, that can be updated atomically. + *

+ *

Implementation note. This implementation maintains markable + * references by creating internal objects representing "boxed" + * [reference, boolean] pairs. + * + * @since 1.5 + * @author Doug Lea + * @param The type of object referred to by this reference + */ +public class AtomicMarkableReference { + + private static class ReferenceBooleanPair { + private final T reference; + private final boolean bit; + ReferenceBooleanPair(T r, boolean i) { + reference = r; bit = i; + } + } + + private final AtomicReference> atomicRef; + + /** + * Creates a new AtomicMarkableReference with the given + * initial values. + * + * @param initialRef the initial reference + * @param initialMark the initial mark + */ + public AtomicMarkableReference(V initialRef, boolean initialMark) { + atomicRef = new AtomicReference> (new ReferenceBooleanPair(initialRef, initialMark)); + } + + /** + * Returns the current value of the reference. + * + * @return the current value of the reference + */ + public V getReference() { + return atomicRef.get().reference; + } + + /** + * Returns the current value of the mark. + * + * @return the current value of the mark + */ + public boolean isMarked() { + return atomicRef.get().bit; + } + + /** + * Returns the current values of both the reference and the mark. + * Typical usage is boolean[1] holder; ref = v.get(holder); . + * + * @param markHolder an array of size of at least one. On return, + * markholder[0] will hold the value of the mark. + * @return the current value of the reference + */ + public V get(boolean[] markHolder) { + ReferenceBooleanPair p = atomicRef.get(); + markHolder[0] = p.bit; + return p.reference; + } + + /** + * Atomically sets the value of both the reference and mark + * to the given update values if the + * current reference is == to the expected reference + * and the current mark is equal to the expected mark. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param expectedReference the expected value of the reference + * @param newReference the new value for the reference + * @param expectedMark the expected value of the mark + * @param newMark the new value for the mark + * @return true if successful + */ + public boolean weakCompareAndSet(V expectedReference, + V newReference, + boolean expectedMark, + boolean newMark) { + ReferenceBooleanPair current = atomicRef.get(); + return expectedReference == current.reference && + expectedMark == current.bit && + ((newReference == current.reference && newMark == current.bit) || + atomicRef.weakCompareAndSet(current, + new ReferenceBooleanPair(newReference, + newMark))); + } + + /** + * Atomically sets the value of both the reference and mark + * to the given update values if the + * current reference is == to the expected reference + * and the current mark is equal to the expected mark. + * + * @param expectedReference the expected value of the reference + * @param newReference the new value for the reference + * @param expectedMark the expected value of the mark + * @param newMark the new value for the mark + * @return true if successful + */ + public boolean compareAndSet(V expectedReference, + V newReference, + boolean expectedMark, + boolean newMark) { + ReferenceBooleanPair current = atomicRef.get(); + return expectedReference == current.reference && + expectedMark == current.bit && + ((newReference == current.reference && newMark == current.bit) || + atomicRef.compareAndSet(current, + new ReferenceBooleanPair(newReference, + newMark))); + } + + /** + * Unconditionally sets the value of both the reference and mark. + * + * @param newReference the new value for the reference + * @param newMark the new value for the mark + */ + public void set(V newReference, boolean newMark) { + ReferenceBooleanPair current = atomicRef.get(); + if (newReference != current.reference || newMark != current.bit) + atomicRef.set(new ReferenceBooleanPair(newReference, newMark)); + } + + /** + * Atomically sets the value of the mark to the given update value + * if the current reference is == to the expected + * reference. Any given invocation of this operation may fail + * (return false) spuriously, but repeated invocation + * when the current value holds the expected value and no other + * thread is also attempting to set the value will eventually + * succeed. + * + * @param expectedReference the expected value of the reference + * @param newMark the new value for the mark + * @return true if successful + */ + public boolean attemptMark(V expectedReference, boolean newMark) { + ReferenceBooleanPair current = atomicRef.get(); + return expectedReference == current.reference && + (newMark == current.bit || + atomicRef.compareAndSet + (current, new ReferenceBooleanPair(expectedReference, + newMark))); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReference.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReference.java new file mode 100644 index 00000000000..e7c989c2b7e --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReference.java @@ -0,0 +1,124 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; + +/** + * An object reference that may be updated atomically. See the {@link + * java.util.concurrent.atomic} package specification for description + * of the properties of atomic variables. + * @since 1.5 + * @author Doug Lea + * @param The type of object referred to by this reference + */ +public class AtomicReference implements java.io.Serializable { + private static final long serialVersionUID = -1848883965231344442L; + + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long valueOffset; + + static { + try { + valueOffset = unsafe.objectFieldOffset + (AtomicReference.class.getDeclaredField("value")); + } catch (Exception ex) { throw new Error(ex); } + } + + private volatile V value; + + /** + * Creates a new AtomicReference with the given initial value. + * + * @param initialValue the initial value + */ + public AtomicReference(V initialValue) { + value = initialValue; + } + + /** + * Creates a new AtomicReference with null initial value. + */ + public AtomicReference() { + } + + /** + * Gets the current value. + * + * @return the current value + */ + public final V get() { + return value; + } + + /** + * Sets to the given value. + * + * @param newValue the new value + */ + public final void set(V newValue) { + value = newValue; + } + + /** + * Eventually sets to the given value. + * + * @param newValue the new value + * @since 1.6 + */ + public final void lazySet(V newValue) { + unsafe.putOrderedObject(this, valueOffset, newValue); + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(V expect, V update) { + return unsafe.compareAndSwapObject(this, valueOffset, expect, update); + } + + /** + * Atomically sets the value to the given updated value + * if the current value == the expected value. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public final boolean weakCompareAndSet(V expect, V update) { + return unsafe.compareAndSwapObject(this, valueOffset, expect, update); + } + + /** + * Atomically sets to the given value and returns the old value. + * + * @param newValue the new value + * @return the previous value + */ + public final V getAndSet(V newValue) { + while (true) { + V x = get(); + if (compareAndSet(x, newValue)) + return x; + } + } + + /** + * Returns the String representation of the current value. + * @return the String representation of the current value. + */ + public String toString() { + return String.valueOf(get()); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceArray.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceArray.java new file mode 100644 index 00000000000..91b601ed96e --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceArray.java @@ -0,0 +1,163 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; +import java.util.*; + +/** + * An array of object references in which elements may be updated + * atomically. See the {@link java.util.concurrent.atomic} package + * specification for description of the properties of atomic + * variables. + * @since 1.5 + * @author Doug Lea + * @param The base class of elements held in this array + */ +public class AtomicReferenceArray implements java.io.Serializable { + private static final long serialVersionUID = -6209656149925076980L; + + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final int base = unsafe.arrayBaseOffset(Object[].class); + private static final int scale = unsafe.arrayIndexScale(Object[].class); + private final Object[] array; + + private long rawIndex(int i) { + if (i < 0 || i >= array.length) + throw new IndexOutOfBoundsException("index " + i); + return base + i * scale; + } + + /** + * Creates a new AtomicReferenceArray of given length. + * @param length the length of the array + */ + public AtomicReferenceArray(int length) { + array = new Object[length]; + // must perform at least one volatile write to conform to JMM + if (length > 0) + unsafe.putObjectVolatile(array, rawIndex(0), null); + } + + /** + * Creates a new AtomicReferenceArray with the same length as, and + * all elements copied from, the given array. + * + * @param array the array to copy elements from + * @throws NullPointerException if array is null + */ + public AtomicReferenceArray(E[] array) { + if (array == null) + throw new NullPointerException(); + int length = array.length; + this.array = new Object[length]; + if (length > 0) { + int last = length-1; + for (int i = 0; i < last; ++i) + this.array[i] = array[i]; + // Do the last write as volatile + E e = array[last]; + unsafe.putObjectVolatile(this.array, rawIndex(last), e); + } + } + + /** + * Returns the length of the array. + * + * @return the length of the array + */ + public final int length() { + return array.length; + } + + /** + * Gets the current value at position i. + * + * @param i the index + * @return the current value + */ + public final E get(int i) { + return (E) unsafe.getObjectVolatile(array, rawIndex(i)); + } + + /** + * Sets the element at position i to the given value. + * + * @param i the index + * @param newValue the new value + */ + public final void set(int i, E newValue) { + unsafe.putObjectVolatile(array, rawIndex(i), newValue); + } + + /** + * Eventually sets the element at position i to the given value. + * + * @param i the index + * @param newValue the new value + * @since 1.6 + */ + public final void lazySet(int i, E newValue) { + unsafe.putOrderedObject(array, rawIndex(i), newValue); + } + + + /** + * Atomically sets the element at position i to the given + * value and returns the old value. + * + * @param i the index + * @param newValue the new value + * @return the previous value + */ + public final E getAndSet(int i, E newValue) { + while (true) { + E current = get(i); + if (compareAndSet(i, current, newValue)) + return current; + } + } + + /** + * Atomically sets the element at position i to the given + * updated value if the current value == the expected value. + * @param i the index + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(int i, E expect, E update) { + return unsafe.compareAndSwapObject(array, rawIndex(i), + expect, update); + } + + /** + * Atomically sets the element at position i to the given + * updated value if the current value == the expected value. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param i the index + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public final boolean weakCompareAndSet(int i, E expect, E update) { + return compareAndSet(i, expect, update); + } + + /** + * Returns the String representation of the current values of array. + * @return the String representation of the current values of array. + */ + public String toString() { + if (array.length > 0) // force volatile read + get(0); + return Arrays.toString(array); + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java new file mode 100644 index 00000000000..5c18eca33cf --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java @@ -0,0 +1,275 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; +import sun.misc.Unsafe; +import java.lang.reflect.*; + +/** + * A reflection-based utility that enables atomic updates to + * designated volatile reference fields of designated + * classes. This class is designed for use in atomic data structures + * in which several reference fields of the same node are + * independently subject to atomic updates. For example, a tree node + * might be declared as + * + *

+ * class Node {
+ *   private volatile Node left, right;
+ *
+ *   private static final AtomicReferenceFieldUpdater<Node, Node> leftUpdater =
+ *     AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "left");
+ *   private static AtomicReferenceFieldUpdater<Node, Node> rightUpdater =
+ *     AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "right");
+ *
+ *   Node getLeft() { return left;  }
+ *   boolean compareAndSetLeft(Node expect, Node update) {
+ *     return leftUpdater.compareAndSet(this, expect, update);
+ *   }
+ *   // ... and so on
+ * }
+ * 
+ * + *

Note that the guarantees of the {@code compareAndSet} + * method in this class are weaker than in other atomic classes. + * Because this class cannot ensure that all uses of the field + * are appropriate for purposes of atomic access, it can + * guarantee atomicity only with respect to other invocations of + * {@code compareAndSet} and {@code set} on the same updater. + * + * @since 1.5 + * @author Doug Lea + * @param The type of the object holding the updatable field + * @param The type of the field + */ +public abstract class AtomicReferenceFieldUpdater { + + /** + * Creates and returns an updater for objects with the given field. + * The Class arguments are needed to check that reflective types and + * generic types match. + * + * @param tclass the class of the objects holding the field. + * @param vclass the class of the field + * @param fieldName the name of the field to be updated. + * @return the updater + * @throws IllegalArgumentException if the field is not a volatile reference type. + * @throws RuntimeException with a nested reflection-based + * exception if the class does not hold field or is the wrong type. + */ + public static AtomicReferenceFieldUpdater newUpdater(Class tclass, Class vclass, String fieldName) { + return new AtomicReferenceFieldUpdaterImpl(tclass, + vclass, + fieldName); + } + + /** + * Protected do-nothing constructor for use by subclasses. + */ + protected AtomicReferenceFieldUpdater() { + } + + /** + * Atomically sets the field of the given object managed by this updater + * to the given updated value if the current value == the + * expected value. This method is guaranteed to be atomic with respect to + * other calls to compareAndSet and set, but not + * necessarily with respect to other changes in the field. + * + * @param obj An object whose field to conditionally set + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public abstract boolean compareAndSet(T obj, V expect, V update); + + /** + * Atomically sets the field of the given object managed by this updater + * to the given updated value if the current value == the + * expected value. This method is guaranteed to be atomic with respect to + * other calls to compareAndSet and set, but not + * necessarily with respect to other changes in the field. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param obj An object whose field to conditionally set + * @param expect the expected value + * @param update the new value + * @return true if successful. + */ + public abstract boolean weakCompareAndSet(T obj, V expect, V update); + + /** + * Sets the field of the given object managed by this updater to the + * given updated value. This operation is guaranteed to act as a volatile + * store with respect to subsequent invocations of + * compareAndSet. + * + * @param obj An object whose field to set + * @param newValue the new value + */ + public abstract void set(T obj, V newValue); + + /** + * Eventually sets the field of the given object managed by this + * updater to the given updated value. + * + * @param obj An object whose field to set + * @param newValue the new value + * @since 1.6 + */ + public abstract void lazySet(T obj, V newValue); + + /** + * Gets the current value held in the field of the given object managed + * by this updater. + * + * @param obj An object whose field to get + * @return the current value + */ + public abstract V get(T obj); + + /** + * Atomically sets the field of the given object managed by this updater + * to the given value and returns the old value. + * + * @param obj An object whose field to get and set + * @param newValue the new value + * @return the previous value + */ + public V getAndSet(T obj, V newValue) { + for (;;) { + V current = get(obj); + if (compareAndSet(obj, current, newValue)) + return current; + } + } + + private static final class AtomicReferenceFieldUpdaterImpl + extends AtomicReferenceFieldUpdater { + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private final long offset; + private final Class tclass; + private final Class vclass; + private final Class cclass; + + /* + * Internal type checks within all update methods contain + * internal inlined optimizations checking for the common + * cases where the class is final (in which case a simple + * getClass comparison suffices) or is of type Object (in + * which case no check is needed because all objects are + * instances of Object). The Object case is handled simply by + * setting vclass to null in constructor. The targetCheck and + * updateCheck methods are invoked when these faster + * screenings fail. + */ + + AtomicReferenceFieldUpdaterImpl(Class tclass, + Class vclass, + String fieldName) { + Field field = null; + Class fieldClass = null; + Class caller = null; + int modifiers = 0; + try { + field = tclass.getDeclaredField(fieldName); + caller = sun.reflect.Reflection.getCallerClass(3); + modifiers = field.getModifiers(); + sun.reflect.misc.ReflectUtil.ensureMemberAccess( + caller, tclass, null, modifiers); + sun.reflect.misc.ReflectUtil.checkPackageAccess(tclass); + fieldClass = field.getType(); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + + if (vclass != fieldClass) + throw new ClassCastException(); + + if (!Modifier.isVolatile(modifiers)) + throw new IllegalArgumentException("Must be volatile type"); + + this.cclass = (Modifier.isProtected(modifiers) && + caller != tclass) ? caller : null; + this.tclass = tclass; + if (vclass == Object.class) + this.vclass = null; + else + this.vclass = vclass; + offset = unsafe.objectFieldOffset(field); + } + + void targetCheck(T obj) { + if (!tclass.isInstance(obj)) + throw new ClassCastException(); + if (cclass != null) + ensureProtectedAccess(obj); + } + + void updateCheck(T obj, V update) { + if (!tclass.isInstance(obj) || + (update != null && vclass != null && !vclass.isInstance(update))) + throw new ClassCastException(); + if (cclass != null) + ensureProtectedAccess(obj); + } + + public boolean compareAndSet(T obj, V expect, V update) { + if (obj == null || obj.getClass() != tclass || cclass != null || + (update != null && vclass != null && + vclass != update.getClass())) + updateCheck(obj, update); + return unsafe.compareAndSwapObject(obj, offset, expect, update); + } + + public boolean weakCompareAndSet(T obj, V expect, V update) { + // same implementation as strong form for now + if (obj == null || obj.getClass() != tclass || cclass != null || + (update != null && vclass != null && + vclass != update.getClass())) + updateCheck(obj, update); + return unsafe.compareAndSwapObject(obj, offset, expect, update); + } + + public void set(T obj, V newValue) { + if (obj == null || obj.getClass() != tclass || cclass != null || + (newValue != null && vclass != null && + vclass != newValue.getClass())) + updateCheck(obj, newValue); + unsafe.putObjectVolatile(obj, offset, newValue); + } + + public void lazySet(T obj, V newValue) { + if (obj == null || obj.getClass() != tclass || cclass != null || + (newValue != null && vclass != null && + vclass != newValue.getClass())) + updateCheck(obj, newValue); + unsafe.putOrderedObject(obj, offset, newValue); + } + + public V get(T obj) { + if (obj == null || obj.getClass() != tclass || cclass != null) + targetCheck(obj); + return (V)unsafe.getObjectVolatile(obj, offset); + } + + private void ensureProtectedAccess(T obj) { + if (cclass.isInstance(obj)) { + return; + } + throw new RuntimeException ( + new IllegalAccessException("Class " + + cclass.getName() + + " can not access a protected member of class " + + tclass.getName() + + " using an instance of " + + obj.getClass().getName() + ) + ); + } + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicStampedReference.java b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicStampedReference.java new file mode 100644 index 00000000000..558808216ab --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/AtomicStampedReference.java @@ -0,0 +1,165 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.atomic; + +/** + * An AtomicStampedReference maintains an object reference + * along with an integer "stamp", that can be updated atomically. + * + *

Implementation note. This implementation maintains stamped + * references by creating internal objects representing "boxed" + * [reference, integer] pairs. + * + * @since 1.5 + * @author Doug Lea + * @param The type of object referred to by this reference + */ +public class AtomicStampedReference { + + private static class ReferenceIntegerPair { + private final T reference; + private final int integer; + ReferenceIntegerPair(T r, int i) { + reference = r; integer = i; + } + } + + private final AtomicReference> atomicRef; + + /** + * Creates a new AtomicStampedReference with the given + * initial values. + * + * @param initialRef the initial reference + * @param initialStamp the initial stamp + */ + public AtomicStampedReference(V initialRef, int initialStamp) { + atomicRef = new AtomicReference> + (new ReferenceIntegerPair(initialRef, initialStamp)); + } + + /** + * Returns the current value of the reference. + * + * @return the current value of the reference + */ + public V getReference() { + return atomicRef.get().reference; + } + + /** + * Returns the current value of the stamp. + * + * @return the current value of the stamp + */ + public int getStamp() { + return atomicRef.get().integer; + } + + /** + * Returns the current values of both the reference and the stamp. + * Typical usage is int[1] holder; ref = v.get(holder); . + * + * @param stampHolder an array of size of at least one. On return, + * stampholder[0] will hold the value of the stamp. + * @return the current value of the reference + */ + public V get(int[] stampHolder) { + ReferenceIntegerPair p = atomicRef.get(); + stampHolder[0] = p.integer; + return p.reference; + } + + /** + * Atomically sets the value of both the reference and stamp + * to the given update values if the + * current reference is == to the expected reference + * and the current stamp is equal to the expected stamp. + * May fail spuriously and does not provide ordering guarantees, + * so is only rarely an appropriate alternative to compareAndSet. + * + * @param expectedReference the expected value of the reference + * @param newReference the new value for the reference + * @param expectedStamp the expected value of the stamp + * @param newStamp the new value for the stamp + * @return true if successful + */ + public boolean weakCompareAndSet(V expectedReference, + V newReference, + int expectedStamp, + int newStamp) { + ReferenceIntegerPair current = atomicRef.get(); + return expectedReference == current.reference && + expectedStamp == current.integer && + ((newReference == current.reference && + newStamp == current.integer) || + atomicRef.weakCompareAndSet(current, + new ReferenceIntegerPair(newReference, + newStamp))); + } + + /** + * Atomically sets the value of both the reference and stamp + * to the given update values if the + * current reference is == to the expected reference + * and the current stamp is equal to the expected stamp. + * + * @param expectedReference the expected value of the reference + * @param newReference the new value for the reference + * @param expectedStamp the expected value of the stamp + * @param newStamp the new value for the stamp + * @return true if successful + */ + public boolean compareAndSet(V expectedReference, + V newReference, + int expectedStamp, + int newStamp) { + ReferenceIntegerPair current = atomicRef.get(); + return expectedReference == current.reference && + expectedStamp == current.integer && + ((newReference == current.reference && + newStamp == current.integer) || + atomicRef.compareAndSet(current, + new ReferenceIntegerPair(newReference, + newStamp))); + } + + + /** + * Unconditionally sets the value of both the reference and stamp. + * + * @param newReference the new value for the reference + * @param newStamp the new value for the stamp + */ + public void set(V newReference, int newStamp) { + ReferenceIntegerPair current = atomicRef.get(); + if (newReference != current.reference || newStamp != current.integer) + atomicRef.set(new ReferenceIntegerPair(newReference, newStamp)); + } + + /** + * Atomically sets the value of the stamp to the given update value + * if the current reference is == to the expected + * reference. Any given invocation of this operation may fail + * (return false) spuriously, but repeated invocation + * when the current value holds the expected value and no other + * thread is also attempting to set the value will eventually + * succeed. + * + * @param expectedReference the expected value of the reference + * @param newStamp the new value for the stamp + * @return true if successful + */ + public boolean attemptStamp(V expectedReference, int newStamp) { + ReferenceIntegerPair current = atomicRef.get(); + return expectedReference == current.reference && + (newStamp == current.integer || + atomicRef.compareAndSet(current, + new ReferenceIntegerPair(expectedReference, + newStamp))); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/atomic/package.html b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/package.html new file mode 100644 index 00000000000..6bc191ddf01 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/atomic/package.html @@ -0,0 +1,158 @@ + + +Atomics + + + + +A small toolkit of classes that support lock-free thread-safe +programming on single variables. In essence, the classes in this +package extend the notion of volatile values, fields, and +array elements to those that also provide an atomic conditional update +operation of the form: + +

+  boolean compareAndSet(expectedValue, updateValue);
+
+ +

This method (which varies in argument types across different +classes) atomically sets a variable to the updateValue if it +currently holds the expectedValue, reporting true on +success. The classes in this package also contain methods to get and +unconditionally set values, as well as a weaker conditional atomic +update operation weakCompareAndSet desribed below. + +

The specifications of these methods enable implementations to +employ efficient machine-level atomic instructions that are available +on contemporary processors. However on some platforms, support may +entail some form of internal locking. Thus the methods are not +strictly guaranteed to be non-blocking -- +a thread may block transiently before performing the operation. + +

Instances of classes {@link +java.util.concurrent.atomic.AtomicBoolean}, {@link +java.util.concurrent.atomic.AtomicInteger}, {@link +java.util.concurrent.atomic.AtomicLong}, and {@link +java.util.concurrent.atomic.AtomicReference} each provide access and +updates to a single variable of the corresponding type. Each class +also provides appropriate utility methods for that type. For example, +classes AtomicLong and AtomicInteger provide atomic +increment methods. One application is to generate sequence numbers, +as in: + +

+class Sequencer {
+  private AtomicLong sequenceNumber = new AtomicLong(0);
+  public long next() { return sequenceNumber.getAndIncrement(); }
+}
+
+ +

The memory effects for accesses and updates of atomics generally +follow the rules for volatiles, as stated in The Java Language +Specification, Third Edition (17.4 Memory Model): + +

    + +
  • get has the memory effects of reading a +volatile variable. + +
  • set has the memory effects of writing (assigning) a +volatile variable. + +
  • lazySet has the memory effects of writing (assigning) + a volatile variable except that it permits reorderings with + subsequent (but not previous) memory actions that do not themselves + impose reordering constraints with ordinary non-volatile + writes. Among other usage contexts, lazySet may apply when + nulling out, for the sake of garbage collection, a reference that is + never accessed again. + +
  • weakCompareAndSet atomically reads and conditionally + writes a variable but does not + create any happens-before orderings, so provides no guarantees + with respect to previous or subsequent reads and writes of any + variables other than the target of the weakCompareAndSet. + +
  • compareAndSet + and all other read-and-update operations such as getAndIncrement + have the memory effects of both reading and + writing volatile variables. +
+ +

In addition to classes representing single values, this package +contains Updater classes that can be used to obtain +compareAndSet operations on any selected volatile +field of any selected class. {@link +java.util.concurrent.atomic.AtomicReferenceFieldUpdater}, {@link +java.util.concurrent.atomic.AtomicIntegerFieldUpdater}, and {@link +java.util.concurrent.atomic.AtomicLongFieldUpdater} are +reflection-based utilities that provide access to the associated field +types. These are mainly of use in atomic data structures in which +several volatile fields of the same node (for example, the +links of a tree node) are independently subject to atomic +updates. These classes enable greater flexibility in how and when to +use atomic updates, at the expense of more awkward reflection-based +setup, less convenient usage, and weaker guarantees. + +

The {@link java.util.concurrent.atomic.AtomicIntegerArray}, {@link +java.util.concurrent.atomic.AtomicLongArray}, and {@link +java.util.concurrent.atomic.AtomicReferenceArray} classes further +extend atomic operation support to arrays of these types. These +classes are also notable in providing volatile access +semantics for their array elements, which is not supported for +ordinary arrays. + +

The atomic classes also support method weakCompareAndSet, +which has limited applicability. On some platforms, the weak version +may be more efficient than compareAndSet in the normal case, +but differs in that any given invocation of weakCompareAndSet +method may return false spuriously (that is, for no apparent +reason). A false return means only that the operation may be +retried if desired, relying on the guarantee that repeated invocation +when the variable holds expectedValue and no other thread is +also attempting to set the variable will eventually succeed. (Such +spurious failures may for example be due to memory contention effects +that are unrelated to whether the expected and current values are +equal.) Additionally weakCompareAndSet does not provide +ordering guarantees that are usually needed for synchronization +control. However, the method may be useful for updating counters and +statistics when such updates are unrelated to the other happens-before +orderings of a program. When a thread sees an update to an atomic +variable caused by a weakCompareAndSet, it does not +necessarily see updates to any other variables that occurred +before the weakCompareAndSet. This may be acceptable when +for example updating performance statistics, but rarely otherwise. + +

The {@link java.util.concurrent.atomic.AtomicMarkableReference} +class associates a single boolean with a reference. For example, this +bit might be used inside a data structure to mean that the object +being referenced has logically been deleted. The {@link +java.util.concurrent.atomic.AtomicStampedReference} class associates +an integer value with a reference. This may be used for example, to +represent version numbers corresponding to series of updates. + +

Atomic classes are designed primarily as building blocks for +implementing non-blocking data structures and related infrastructure +classes. The compareAndSet method is not a general +replacement for locking. It applies only when critical updates for an +object are confined to a single variable. + +

Atomic classes are not general purpose replacements for +java.lang.Integer and related classes. They do not +define methods such as hashCode and +compareTo. (Because atomic variables are expected to be +mutated, they are poor choices for hash table keys.) Additionally, +classes are provided only for those types that are commonly useful in +intended applications. For example, there is no atomic class for +representing byte. In those infrequent cases where you would +like to do so, you can use an AtomicInteger to hold +byte values, and cast appropriately. You can also hold floats +using Float.floatToIntBits and Float.intBitstoFloat +conversions, and doubles using Double.doubleToLongBits and +Double.longBitsToDouble conversions. + + +@since 1.5 + + diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractOwnableSynchronizer.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractOwnableSynchronizer.java new file mode 100644 index 00000000000..f3780e5a692 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractOwnableSynchronizer.java @@ -0,0 +1,57 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; + +/** + * A synchronizer that may be exclusively owned by a thread. This + * class provides a basis for creating locks and related synchronizers + * that may entail a notion of ownership. The + * AbstractOwnableSynchronizer class itself does not manage or + * use this information. However, subclasses and tools may use + * appropriately maintained values to help control and monitor access + * and provide diagnostics. + * + * @since 1.6 + * @author Doug Lea + */ +public abstract class AbstractOwnableSynchronizer + implements java.io.Serializable { + + /** Use serial ID even though all fields transient. */ + private static final long serialVersionUID = 3737899427754241961L; + + /** + * Empty constructor for use by subclasses. + */ + protected AbstractOwnableSynchronizer() { } + + /** + * The current owner of exclusive mode synchronization. + */ + private transient Thread exclusiveOwnerThread; + + /** + * Sets the thread that currently owns exclusive access. A + * null argument indicates that no thread owns access. + * This method does not otherwise impose any synchronization or + * volatile field accesses. + */ + protected final void setExclusiveOwnerThread(Thread t) { + exclusiveOwnerThread = t; + } + + /** + * Returns the thread last set by + * setExclusiveOwnerThread, or null if never + * set. This method does not otherwise impose any synchronization + * or volatile field accesses. + * @return the owner thread + */ + protected final Thread getExclusiveOwnerThread() { + return exclusiveOwnerThread; + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java new file mode 100644 index 00000000000..88a4354bc71 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java @@ -0,0 +1,1934 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.*; +import sun.misc.Unsafe; + +/** + * A version of {@link AbstractQueuedSynchronizer} in + * which synchronization state is maintained as a long. + * This class has exactly the same structure, properties, and methods + * as AbstractQueuedSynchronizer with the exception + * that all state-related parameters and results are defined + * as long rather than int. This class + * may be useful when creating synchronizers such as + * multilevel locks and barriers that require + * 64 bits of state. + * + *

See {@link AbstractQueuedSynchronizer} for usage + * notes and examples. + * + * @since 1.6 + * @author Doug Lea + */ +public abstract class AbstractQueuedLongSynchronizer + extends AbstractOwnableSynchronizer + implements java.io.Serializable { + + private static final long serialVersionUID = 7373984972572414692L; + + /* + To keep sources in sync, the remainder of this source file is + exactly cloned from AbstractQueuedSynchronizer, replacing class + name and changing ints related with sync state to longs. Please + keep it that way. + */ + + /** + * Creates a new AbstractQueuedLongSynchronizer instance + * with initial synchronization state of zero. + */ + protected AbstractQueuedLongSynchronizer() { } + + /** + * Wait queue node class. + * + *

The wait queue is a variant of a "CLH" (Craig, Landin, and + * Hagersten) lock queue. CLH locks are normally used for + * spinlocks. We instead use them for blocking synchronizers, but + * use the same basic tactic of holding some of the control + * information about a thread in the predecessor of its node. A + * "status" field in each node keeps track of whether a thread + * should block. A node is signalled when its predecessor + * releases. Each node of the queue otherwise serves as a + * specific-notification-style monitor holding a single waiting + * thread. The status field does NOT control whether threads are + * granted locks etc though. A thread may try to acquire if it is + * first in the queue. But being first does not guarantee success; + * it only gives the right to contend. So the currently released + * contender thread may need to rewait. + * + *

To enqueue into a CLH lock, you atomically splice it in as new + * tail. To dequeue, you just set the head field. + *

+     *      +------+  prev +-----+       +-----+
+     * head |      | <---- |     | <---- |     |  tail
+     *      +------+       +-----+       +-----+
+     * 
+ * + *

Insertion into a CLH queue requires only a single atomic + * operation on "tail", so there is a simple atomic point of + * demarcation from unqueued to queued. Similarly, dequeing + * involves only updating the "head". However, it takes a bit + * more work for nodes to determine who their successors are, + * in part to deal with possible cancellation due to timeouts + * and interrupts. + * + *

The "prev" links (not used in original CLH locks), are mainly + * needed to handle cancellation. If a node is cancelled, its + * successor is (normally) relinked to a non-cancelled + * predecessor. For explanation of similar mechanics in the case + * of spin locks, see the papers by Scott and Scherer at + * http://www.cs.rochester.edu/u/scott/synchronization/ + * + *

We also use "next" links to implement blocking mechanics. + * The thread id for each node is kept in its own node, so a + * predecessor signals the next node to wake up by traversing + * next link to determine which thread it is. Determination of + * successor must avoid races with newly queued nodes to set + * the "next" fields of their predecessors. This is solved + * when necessary by checking backwards from the atomically + * updated "tail" when a node's successor appears to be null. + * (Or, said differently, the next-links are an optimization + * so that we don't usually need a backward scan.) + * + *

Cancellation introduces some conservatism to the basic + * algorithms. Since we must poll for cancellation of other + * nodes, we can miss noticing whether a cancelled node is + * ahead or behind us. This is dealt with by always unparking + * successors upon cancellation, allowing them to stabilize on + * a new predecessor. + * + *

CLH queues need a dummy header node to get started. But + * we don't create them on construction, because it would be wasted + * effort if there is never contention. Instead, the node + * is constructed and head and tail pointers are set upon first + * contention. + * + *

Threads waiting on Conditions use the same nodes, but + * use an additional link. Conditions only need to link nodes + * in simple (non-concurrent) linked queues because they are + * only accessed when exclusively held. Upon await, a node is + * inserted into a condition queue. Upon signal, the node is + * transferred to the main queue. A special value of status + * field is used to mark which queue a node is on. + * + *

Thanks go to Dave Dice, Mark Moir, Victor Luchangco, Bill + * Scherer and Michael Scott, along with members of JSR-166 + * expert group, for helpful ideas, discussions, and critiques + * on the design of this class. + */ + static final class Node { + /** waitStatus value to indicate thread has cancelled */ + static final int CANCELLED = 1; + /** waitStatus value to indicate successor's thread needs unparking */ + static final int SIGNAL = -1; + /** waitStatus value to indicate thread is waiting on condition */ + static final int CONDITION = -2; + /** Marker to indicate a node is waiting in shared mode */ + static final Node SHARED = new Node(); + /** Marker to indicate a node is waiting in exclusive mode */ + static final Node EXCLUSIVE = null; + + /** + * Status field, taking on only the values: + * SIGNAL: The successor of this node is (or will soon be) + * blocked (via park), so the current node must + * unpark its successor when it releases or + * cancels. To avoid races, acquire methods must + * first indicate they need a signal, + * then retry the atomic acquire, and then, + * on failure, block. + * CANCELLED: This node is cancelled due to timeout or interrupt. + * Nodes never leave this state. In particular, + * a thread with cancelled node never again blocks. + * CONDITION: This node is currently on a condition queue. + * It will not be used as a sync queue node until + * transferred. (Use of this value here + * has nothing to do with the other uses + * of the field, but simplifies mechanics.) + * 0: None of the above + * + * The values are arranged numerically to simplify use. + * Non-negative values mean that a node doesn't need to + * signal. So, most code doesn't need to check for particular + * values, just for sign. + * + * The field is initialized to 0 for normal sync nodes, and + * CONDITION for condition nodes. It is modified only using + * CAS. + */ + volatile int waitStatus; + + /** + * Link to predecessor node that current node/thread relies on + * for checking waitStatus. Assigned during enqueing, and nulled + * out (for sake of GC) only upon dequeuing. Also, upon + * cancellation of a predecessor, we short-circuit while + * finding a non-cancelled one, which will always exist + * because the head node is never cancelled: A node becomes + * head only as a result of successful acquire. A + * cancelled thread never succeeds in acquiring, and a thread only + * cancels itself, not any other node. + */ + volatile Node prev; + + /** + * Link to the successor node that the current node/thread + * unparks upon release. Assigned once during enqueuing, and + * nulled out (for sake of GC) when no longer needed. Upon + * cancellation, we cannot adjust this field, but can notice + * status and bypass the node if cancelled. The enq operation + * does not assign next field of a predecessor until after + * attachment, so seeing a null next field does not + * necessarily mean that node is at end of queue. However, if + * a next field appears to be null, we can scan prev's from + * the tail to double-check. + */ + volatile Node next; + + /** + * The thread that enqueued this node. Initialized on + * construction and nulled out after use. + */ + volatile Thread thread; + + /** + * Link to next node waiting on condition, or the special + * value SHARED. Because condition queues are accessed only + * when holding in exclusive mode, we just need a simple + * linked queue to hold nodes while they are waiting on + * conditions. They are then transferred to the queue to + * re-acquire. And because conditions can only be exclusive, + * we save a field by using special value to indicate shared + * mode. + */ + Node nextWaiter; + + /** + * Returns true if node is waiting in shared mode + */ + final boolean isShared() { + return nextWaiter == SHARED; + } + + /** + * Returns previous node, or throws NullPointerException if + * null. Use when predecessor cannot be null. + * @return the predecessor of this node + */ + final Node predecessor() throws NullPointerException { + Node p = prev; + if (p == null) + throw new NullPointerException(); + else + return p; + } + + Node() { // Used to establish initial head or SHARED marker + } + + Node(Thread thread, Node mode) { // Used by addWaiter + this.nextWaiter = mode; + this.thread = thread; + } + + Node(Thread thread, int waitStatus) { // Used by Condition + this.waitStatus = waitStatus; + this.thread = thread; + } + } + + /** + * Head of the wait queue, lazily initialized. Except for + * initialization, it is modified only via method setHead. Note: + * If head exists, its waitStatus is guaranteed not to be + * CANCELLED. + */ + private transient volatile Node head; + + /** + * Tail of the wait queue, lazily initialized. Modified only via + * method enq to add new wait node. + */ + private transient volatile Node tail; + + /** + * The synchronization state. + */ + private volatile long state; + + /** + * Returns the current value of synchronization state. + * This operation has memory semantics of a volatile read. + * @return current state value + */ + protected final long getState() { + return state; + } + + /** + * Sets the value of synchronization state. + * This operation has memory semantics of a volatile write. + * @param newState the new state value + */ + protected final void setState(long newState) { + state = newState; + } + + /** + * Atomically sets synchronization state to the given updated + * value if the current state value equals the expected value. + * This operation has memory semantics of a volatile read + * and write. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that the actual + * value was not equal to the expected value. + */ + protected final boolean compareAndSetState(long expect, long update) { + // See below for intrinsics setup to support this + return unsafe.compareAndSwapLong(this, stateOffset, expect, update); + } + + // Queuing utilities + + /** + * The number of nanoseconds for which it is faster to spin + * rather than to use timed park. A rough estimate suffices + * to improve responsiveness with very short timeouts. + */ + static final long spinForTimeoutThreshold = 1000L; + + /** + * Inserts node into queue, initializing if necessary. See picture above. + * @param node the node to insert + * @return node's predecessor + */ + private Node enq(final Node node) { + for (;;) { + Node t = tail; + if (t == null) { // Must initialize + Node h = new Node(); // Dummy header + h.next = node; + node.prev = h; + if (compareAndSetHead(h)) { + tail = node; + return h; + } + } + else { + node.prev = t; + if (compareAndSetTail(t, node)) { + t.next = node; + return t; + } + } + } + } + + /** + * Creates and enqueues node for given thread and mode. + * + * @param current the thread + * @param mode Node.EXCLUSIVE for exclusive, Node.SHARED for shared + * @return the new node + */ + private Node addWaiter(Node mode) { + Node node = new Node(Thread.currentThread(), mode); + // Try the fast path of enq; backup to full enq on failure + Node pred = tail; + if (pred != null) { + node.prev = pred; + if (compareAndSetTail(pred, node)) { + pred.next = node; + return node; + } + } + enq(node); + return node; + } + + /** + * Sets head of queue to be node, thus dequeuing. Called only by + * acquire methods. Also nulls out unused fields for sake of GC + * and to suppress unnecessary signals and traversals. + * + * @param node the node + */ + private void setHead(Node node) { + head = node; + node.thread = null; + node.prev = null; + } + + /** + * Wakes up node's successor, if one exists. + * + * @param node the node + */ + private void unparkSuccessor(Node node) { + /* + * Try to clear status in anticipation of signalling. It is + * OK if this fails or if status is changed by waiting thread. + */ + compareAndSetWaitStatus(node, Node.SIGNAL, 0); + + /* + * Thread to unpark is held in successor, which is normally + * just the next node. But if cancelled or apparently null, + * traverse backwards from tail to find the actual + * non-cancelled successor. + */ + Node s = node.next; + if (s == null || s.waitStatus > 0) { + s = null; + for (Node t = tail; t != null && t != node; t = t.prev) + if (t.waitStatus <= 0) + s = t; + } + if (s != null) + LockSupport.unpark(s.thread); + } + + /** + * Sets head of queue, and checks if successor may be waiting + * in shared mode, if so propagating if propagate > 0. + * + * @param pred the node holding waitStatus for node + * @param node the node + * @param propagate the return value from a tryAcquireShared + */ + private void setHeadAndPropagate(Node node, long propagate) { + setHead(node); + if (propagate > 0 && node.waitStatus != 0) { + /* + * Don't bother fully figuring out successor. If it + * looks null, call unparkSuccessor anyway to be safe. + */ + Node s = node.next; + if (s == null || s.isShared()) + unparkSuccessor(node); + } + } + + // Utilities for various versions of acquire + + /** + * Cancels an ongoing attempt to acquire. + * + * @param node the node + */ + private void cancelAcquire(Node node) { + if (node != null) { // Ignore if node doesn't exist + node.thread = null; + // Can use unconditional write instead of CAS here + node.waitStatus = Node.CANCELLED; + unparkSuccessor(node); + } + } + + /** + * Checks and updates status for a node that failed to acquire. + * Returns true if thread should block. This is the main signal + * control in all acquire loops. Requires that pred == node.prev + * + * @param pred node's predecessor holding status + * @param node the node + * @return {@code true} if thread should block + */ + private static boolean shouldParkAfterFailedAcquire(Node pred, Node node) { + int s = pred.waitStatus; + if (s < 0) + /* + * This node has already set status asking a release + * to signal it, so it can safely park + */ + return true; + if (s > 0) + /* + * Predecessor was cancelled. Move up to its predecessor + * and indicate retry. + */ + node.prev = pred.prev; + else + /* + * Indicate that we need a signal, but don't park yet. Caller + * will need to retry to make sure it cannot acquire before + * parking. + */ + compareAndSetWaitStatus(pred, 0, Node.SIGNAL); + return false; + } + + /** + * Convenience method to interrupt current thread. + */ + private static void selfInterrupt() { + Thread.currentThread().interrupt(); + } + + /** + * Convenience method to park and then check if interrupted + * + * @return {@code true} if interrupted + */ + private final boolean parkAndCheckInterrupt() { + LockSupport.park(this); + return Thread.interrupted(); + } + + /* + * Various flavors of acquire, varying in exclusive/shared and + * control modes. Each is mostly the same, but annoyingly + * different. Only a little bit of factoring is possible due to + * interactions of exception mechanics (including ensuring that we + * cancel if tryAcquire throws exception) and other control, at + * least not without hurting performance too much. + */ + + /** + * Acquires in exclusive uninterruptible mode for thread already in + * queue. Used by condition wait methods as well as acquire. + * + * @param node the node + * @param arg the acquire argument + * @return {@code true} if interrupted while waiting + */ + final boolean acquireQueued(final Node node, long arg) { + try { + boolean interrupted = false; + for (;;) { + final Node p = node.predecessor(); + if (p == head && tryAcquire(arg)) { + setHead(node); + p.next = null; // help GC + return interrupted; + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + interrupted = true; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + } + + /** + * Acquires in exclusive interruptible mode. + * @param arg the acquire argument + */ + private void doAcquireInterruptibly(long arg) + throws InterruptedException { + final Node node = addWaiter(Node.EXCLUSIVE); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head && tryAcquire(arg)) { + setHead(node); + p.next = null; // help GC + return; + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + /** + * Acquires in exclusive timed mode. + * + * @param arg the acquire argument + * @param nanosTimeout max wait time + * @return {@code true} if acquired + */ + private boolean doAcquireNanos(long arg, long nanosTimeout) + throws InterruptedException { + long lastTime = System.nanoTime(); + final Node node = addWaiter(Node.EXCLUSIVE); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head && tryAcquire(arg)) { + setHead(node); + p.next = null; // help GC + return true; + } + if (nanosTimeout <= 0) { + cancelAcquire(node); + return false; + } + if (nanosTimeout > spinForTimeoutThreshold && + shouldParkAfterFailedAcquire(p, node)) + LockSupport.parkNanos(this, nanosTimeout); + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + if (Thread.interrupted()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + /** + * Acquires in shared uninterruptible mode. + * @param arg the acquire argument + */ + private void doAcquireShared(long arg) { + final Node node = addWaiter(Node.SHARED); + try { + boolean interrupted = false; + for (;;) { + final Node p = node.predecessor(); + if (p == head) { + long r = tryAcquireShared(arg); + if (r >= 0) { + setHeadAndPropagate(node, r); + p.next = null; // help GC + if (interrupted) + selfInterrupt(); + return; + } + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + interrupted = true; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + } + + /** + * Acquires in shared interruptible mode. + * @param arg the acquire argument + */ + private void doAcquireSharedInterruptibly(long arg) + throws InterruptedException { + final Node node = addWaiter(Node.SHARED); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head) { + long r = tryAcquireShared(arg); + if (r >= 0) { + setHeadAndPropagate(node, r); + p.next = null; // help GC + return; + } + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + /** + * Acquires in shared timed mode. + * + * @param arg the acquire argument + * @param nanosTimeout max wait time + * @return {@code true} if acquired + */ + private boolean doAcquireSharedNanos(long arg, long nanosTimeout) + throws InterruptedException { + + long lastTime = System.nanoTime(); + final Node node = addWaiter(Node.SHARED); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head) { + long r = tryAcquireShared(arg); + if (r >= 0) { + setHeadAndPropagate(node, r); + p.next = null; // help GC + return true; + } + } + if (nanosTimeout <= 0) { + cancelAcquire(node); + return false; + } + if (nanosTimeout > spinForTimeoutThreshold && + shouldParkAfterFailedAcquire(p, node)) + LockSupport.parkNanos(this, nanosTimeout); + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + if (Thread.interrupted()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + // Main exported methods + + /** + * Attempts to acquire in exclusive mode. This method should query + * if the state of the object permits it to be acquired in the + * exclusive mode, and if so to acquire it. + * + *

This method is always invoked by the thread performing + * acquire. If this method reports failure, the acquire method + * may queue the thread, if it is not already queued, until it is + * signalled by a release from some other thread. This can be used + * to implement method {@link Lock#tryLock()}. + * + *

The default + * implementation throws {@link UnsupportedOperationException}. + * + * @param arg the acquire argument. This value is always the one + * passed to an acquire method, or is the value saved on entry + * to a condition wait. The value is otherwise uninterpreted + * and can represent anything you like. + * @return {@code true} if successful. Upon success, this object has + * been acquired. + * @throws IllegalMonitorStateException if acquiring would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if exclusive mode is not supported + */ + protected boolean tryAcquire(long arg) { + throw new UnsupportedOperationException(); + } + + /** + * Attempts to set the state to reflect a release in exclusive + * mode. + * + *

This method is always invoked by the thread performing release. + * + *

The default implementation throws + * {@link UnsupportedOperationException}. + * + * @param arg the release argument. This value is always the one + * passed to a release method, or the current state value upon + * entry to a condition wait. The value is otherwise + * uninterpreted and can represent anything you like. + * @return {@code true} if this object is now in a fully released + * state, so that any waiting threads may attempt to acquire; + * and {@code false} otherwise. + * @throws IllegalMonitorStateException if releasing would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if exclusive mode is not supported + */ + protected boolean tryRelease(long arg) { + throw new UnsupportedOperationException(); + } + + /** + * Attempts to acquire in shared mode. This method should query if + * the state of the object permits it to be acquired in the shared + * mode, and if so to acquire it. + * + *

This method is always invoked by the thread performing + * acquire. If this method reports failure, the acquire method + * may queue the thread, if it is not already queued, until it is + * signalled by a release from some other thread. + * + *

The default implementation throws {@link + * UnsupportedOperationException}. + * + * @param arg the acquire argument. This value is always the one + * passed to an acquire method, or is the value saved on entry + * to a condition wait. The value is otherwise uninterpreted + * and can represent anything you like. + * @return a negative value on failure; zero if acquisition in shared + * mode succeeded but no subsequent shared-mode acquire can + * succeed; and a positive value if acquisition in shared + * mode succeeded and subsequent shared-mode acquires might + * also succeed, in which case a subsequent waiting thread + * must check availability. (Support for three different + * return values enables this method to be used in contexts + * where acquires only sometimes act exclusively.) Upon + * success, this object has been acquired. + * @throws IllegalMonitorStateException if acquiring would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if shared mode is not supported + */ + protected long tryAcquireShared(long arg) { + throw new UnsupportedOperationException(); + } + + /** + * Attempts to set the state to reflect a release in shared mode. + * + *

This method is always invoked by the thread performing release. + * + *

The default implementation throws + * {@link UnsupportedOperationException}. + * + * @param arg the release argument. This value is always the one + * passed to a release method, or the current state value upon + * entry to a condition wait. The value is otherwise + * uninterpreted and can represent anything you like. + * @return {@code true} if this release of shared mode may permit a + * waiting acquire (shared or exclusive) to succeed; and + * {@code false} otherwise + * @throws IllegalMonitorStateException if releasing would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if shared mode is not supported + */ + protected boolean tryReleaseShared(long arg) { + throw new UnsupportedOperationException(); + } + + /** + * Returns {@code true} if synchronization is held exclusively with + * respect to the current (calling) thread. This method is invoked + * upon each call to a non-waiting {@link ConditionObject} method. + * (Waiting methods instead invoke {@link #release}.) + * + *

The default implementation throws {@link + * UnsupportedOperationException}. This method is invoked + * internally only within {@link ConditionObject} methods, so need + * not be defined if conditions are not used. + * + * @return {@code true} if synchronization is held exclusively; + * {@code false} otherwise + * @throws UnsupportedOperationException if conditions are not supported + */ + protected boolean isHeldExclusively() { + throw new UnsupportedOperationException(); + } + + /** + * Acquires in exclusive mode, ignoring interrupts. Implemented + * by invoking at least once {@link #tryAcquire}, + * returning on success. Otherwise the thread is queued, possibly + * repeatedly blocking and unblocking, invoking {@link + * #tryAcquire} until success. This method can be used + * to implement method {@link Lock#lock}. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquire} but is otherwise uninterpreted and + * can represent anything you like. + */ + public final void acquire(long arg) { + if (!tryAcquire(arg) && + acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) + selfInterrupt(); + } + + /** + * Acquires in exclusive mode, aborting if interrupted. + * Implemented by first checking interrupt status, then invoking + * at least once {@link #tryAcquire}, returning on + * success. Otherwise the thread is queued, possibly repeatedly + * blocking and unblocking, invoking {@link #tryAcquire} + * until success or the thread is interrupted. This method can be + * used to implement method {@link Lock#lockInterruptibly}. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquire} but is otherwise uninterpreted and + * can represent anything you like. + * @throws InterruptedException if the current thread is interrupted + */ + public final void acquireInterruptibly(long arg) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + if (!tryAcquire(arg)) + doAcquireInterruptibly(arg); + } + + /** + * Attempts to acquire in exclusive mode, aborting if interrupted, + * and failing if the given timeout elapses. Implemented by first + * checking interrupt status, then invoking at least once {@link + * #tryAcquire}, returning on success. Otherwise, the thread is + * queued, possibly repeatedly blocking and unblocking, invoking + * {@link #tryAcquire} until success or the thread is interrupted + * or the timeout elapses. This method can be used to implement + * method {@link Lock#tryLock(long, TimeUnit)}. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquire} but is otherwise uninterpreted and + * can represent anything you like. + * @param nanosTimeout the maximum number of nanoseconds to wait + * @return {@code true} if acquired; {@code false} if timed out + * @throws InterruptedException if the current thread is interrupted + */ + public final boolean tryAcquireNanos(long arg, long nanosTimeout) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + return tryAcquire(arg) || + doAcquireNanos(arg, nanosTimeout); + } + + /** + * Releases in exclusive mode. Implemented by unblocking one or + * more threads if {@link #tryRelease} returns true. + * This method can be used to implement method {@link Lock#unlock}. + * + * @param arg the release argument. This value is conveyed to + * {@link #tryRelease} but is otherwise uninterpreted and + * can represent anything you like. + * @return the value returned from {@link #tryRelease} + */ + public final boolean release(long arg) { + if (tryRelease(arg)) { + Node h = head; + if (h != null && h.waitStatus != 0) + unparkSuccessor(h); + return true; + } + return false; + } + + /** + * Acquires in shared mode, ignoring interrupts. Implemented by + * first invoking at least once {@link #tryAcquireShared}, + * returning on success. Otherwise the thread is queued, possibly + * repeatedly blocking and unblocking, invoking {@link + * #tryAcquireShared} until success. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquireShared} but is otherwise uninterpreted + * and can represent anything you like. + */ + public final void acquireShared(long arg) { + if (tryAcquireShared(arg) < 0) + doAcquireShared(arg); + } + + /** + * Acquires in shared mode, aborting if interrupted. Implemented + * by first checking interrupt status, then invoking at least once + * {@link #tryAcquireShared}, returning on success. Otherwise the + * thread is queued, possibly repeatedly blocking and unblocking, + * invoking {@link #tryAcquireShared} until success or the thread + * is interrupted. + * @param arg the acquire argument. + * This value is conveyed to {@link #tryAcquireShared} but is + * otherwise uninterpreted and can represent anything + * you like. + * @throws InterruptedException if the current thread is interrupted + */ + public final void acquireSharedInterruptibly(long arg) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + if (tryAcquireShared(arg) < 0) + doAcquireSharedInterruptibly(arg); + } + + /** + * Attempts to acquire in shared mode, aborting if interrupted, and + * failing if the given timeout elapses. Implemented by first + * checking interrupt status, then invoking at least once {@link + * #tryAcquireShared}, returning on success. Otherwise, the + * thread is queued, possibly repeatedly blocking and unblocking, + * invoking {@link #tryAcquireShared} until success or the thread + * is interrupted or the timeout elapses. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquireShared} but is otherwise uninterpreted + * and can represent anything you like. + * @param nanosTimeout the maximum number of nanoseconds to wait + * @return {@code true} if acquired; {@code false} if timed out + * @throws InterruptedException if the current thread is interrupted + */ + public final boolean tryAcquireSharedNanos(long arg, long nanosTimeout) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + return tryAcquireShared(arg) >= 0 || + doAcquireSharedNanos(arg, nanosTimeout); + } + + /** + * Releases in shared mode. Implemented by unblocking one or more + * threads if {@link #tryReleaseShared} returns true. + * + * @param arg the release argument. This value is conveyed to + * {@link #tryReleaseShared} but is otherwise uninterpreted + * and can represent anything you like. + * @return the value returned from {@link #tryReleaseShared} + */ + public final boolean releaseShared(long arg) { + if (tryReleaseShared(arg)) { + Node h = head; + if (h != null && h.waitStatus != 0) + unparkSuccessor(h); + return true; + } + return false; + } + + // Queue inspection methods + + /** + * Queries whether any threads are waiting to acquire. Note that + * because cancellations due to interrupts and timeouts may occur + * at any time, a {@code true} return does not guarantee that any + * other thread will ever acquire. + * + *

In this implementation, this operation returns in + * constant time. + * + * @return {@code true} if there may be other threads waiting to acquire + */ + public final boolean hasQueuedThreads() { + return head != tail; + } + + /** + * Queries whether any threads have ever contended to acquire this + * synchronizer; that is if an acquire method has ever blocked. + * + *

In this implementation, this operation returns in + * constant time. + * + * @return {@code true} if there has ever been contention + */ + public final boolean hasContended() { + return head != null; + } + + /** + * Returns the first (longest-waiting) thread in the queue, or + * {@code null} if no threads are currently queued. + * + *

In this implementation, this operation normally returns in + * constant time, but may iterate upon contention if other threads are + * concurrently modifying the queue. + * + * @return the first (longest-waiting) thread in the queue, or + * {@code null} if no threads are currently queued + */ + public final Thread getFirstQueuedThread() { + // handle only fast path, else relay + return (head == tail)? null : fullGetFirstQueuedThread(); + } + + /** + * Version of getFirstQueuedThread called when fastpath fails + */ + private Thread fullGetFirstQueuedThread() { + /* + * The first node is normally h.next. Try to get its + * thread field, ensuring consistent reads: If thread + * field is nulled out or s.prev is no longer head, then + * some other thread(s) concurrently performed setHead in + * between some of our reads. We try this twice before + * resorting to traversal. + */ + Node h, s; + Thread st; + if (((h = head) != null && (s = h.next) != null && + s.prev == head && (st = s.thread) != null) || + ((h = head) != null && (s = h.next) != null && + s.prev == head && (st = s.thread) != null)) + return st; + + /* + * Head's next field might not have been set yet, or may have + * been unset after setHead. So we must check to see if tail + * is actually first node. If not, we continue on, safely + * traversing from tail back to head to find first, + * guaranteeing termination. + */ + + Node t = tail; + Thread firstThread = null; + while (t != null && t != head) { + Thread tt = t.thread; + if (tt != null) + firstThread = tt; + t = t.prev; + } + return firstThread; + } + + /** + * Returns true if the given thread is currently queued. + * + *

This implementation traverses the queue to determine + * presence of the given thread. + * + * @param thread the thread + * @return {@code true} if the given thread is on the queue + * @throws NullPointerException if the thread is null + */ + public final boolean isQueued(Thread thread) { + if (thread == null) + throw new NullPointerException(); + for (Node p = tail; p != null; p = p.prev) + if (p.thread == thread) + return true; + return false; + } + + /** + * Return {@code true} if the apparent first queued thread, if one + * exists, is not waiting in exclusive mode. Used only as a heuristic + * in ReentrantReadWriteLock. + */ + final boolean apparentlyFirstQueuedIsExclusive() { + Node h, s; + return ((h = head) != null && (s = h.next) != null && + s.nextWaiter != Node.SHARED); + } + + /** + * Return {@code true} if the queue is empty or if the given thread + * is at the head of the queue. This is reliable only if + * current is actually Thread.currentThread() of caller. + */ + final boolean isFirst(Thread current) { + Node h, s; + return ((h = head) == null || + ((s = h.next) != null && s.thread == current) || + fullIsFirst(current)); + } + + final boolean fullIsFirst(Thread current) { + // same idea as fullGetFirstQueuedThread + Node h, s; + Thread firstThread = null; + if (((h = head) != null && (s = h.next) != null && + s.prev == head && (firstThread = s.thread) != null)) + return firstThread == current; + Node t = tail; + while (t != null && t != head) { + Thread tt = t.thread; + if (tt != null) + firstThread = tt; + t = t.prev; + } + return firstThread == current || firstThread == null; + } + + + // Instrumentation and monitoring methods + + /** + * Returns an estimate of the number of threads waiting to + * acquire. The value is only an estimate because the number of + * threads may change dynamically while this method traverses + * internal data structures. This method is designed for use in + * monitoring system state, not for synchronization + * control. + * + * @return the estimated number of threads waiting to acquire + */ + public final int getQueueLength() { + int n = 0; + for (Node p = tail; p != null; p = p.prev) { + if (p.thread != null) + ++n; + } + return n; + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire. Because the actual set of threads may change + * dynamically while constructing this result, the returned + * collection is only a best-effort estimate. The elements of the + * returned collection are in no particular order. This method is + * designed to facilitate construction of subclasses that provide + * more extensive monitoring facilities. + * + * @return the collection of threads + */ + public final Collection getQueuedThreads() { + ArrayList list = new ArrayList(); + for (Node p = tail; p != null; p = p.prev) { + Thread t = p.thread; + if (t != null) + list.add(t); + } + return list; + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire in exclusive mode. This has the same properties + * as {@link #getQueuedThreads} except that it only returns + * those threads waiting due to an exclusive acquire. + * + * @return the collection of threads + */ + public final Collection getExclusiveQueuedThreads() { + ArrayList list = new ArrayList(); + for (Node p = tail; p != null; p = p.prev) { + if (!p.isShared()) { + Thread t = p.thread; + if (t != null) + list.add(t); + } + } + return list; + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire in shared mode. This has the same properties + * as {@link #getQueuedThreads} except that it only returns + * those threads waiting due to a shared acquire. + * + * @return the collection of threads + */ + public final Collection getSharedQueuedThreads() { + ArrayList list = new ArrayList(); + for (Node p = tail; p != null; p = p.prev) { + if (p.isShared()) { + Thread t = p.thread; + if (t != null) + list.add(t); + } + } + return list; + } + + /** + * Returns a string identifying this synchronizer, as well as its state. + * The state, in brackets, includes the String {@code "State ="} + * followed by the current value of {@link #getState}, and either + * {@code "nonempty"} or {@code "empty"} depending on whether the + * queue is empty. + * + * @return a string identifying this synchronizer, as well as its state + */ + public String toString() { + long s = getState(); + String q = hasQueuedThreads()? "non" : ""; + return super.toString() + + "[State = " + s + ", " + q + "empty queue]"; + } + + + // Internal support methods for Conditions + + /** + * Returns true if a node, always one that was initially placed on + * a condition queue, is now waiting to reacquire on sync queue. + * @param node the node + * @return true if is reacquiring + */ + final boolean isOnSyncQueue(Node node) { + if (node.waitStatus == Node.CONDITION || node.prev == null) + return false; + if (node.next != null) // If has successor, it must be on queue + return true; + /* + * node.prev can be non-null, but not yet on queue because + * the CAS to place it on queue can fail. So we have to + * traverse from tail to make sure it actually made it. It + * will always be near the tail in calls to this method, and + * unless the CAS failed (which is unlikely), it will be + * there, so we hardly ever traverse much. + */ + return findNodeFromTail(node); + } + + /** + * Returns true if node is on sync queue by searching backwards from tail. + * Called only when needed by isOnSyncQueue. + * @return true if present + */ + private boolean findNodeFromTail(Node node) { + Node t = tail; + for (;;) { + if (t == node) + return true; + if (t == null) + return false; + t = t.prev; + } + } + + /** + * Transfers a node from a condition queue onto sync queue. + * Returns true if successful. + * @param node the node + * @return true if successfully transferred (else the node was + * cancelled before signal). + */ + final boolean transferForSignal(Node node) { + /* + * If cannot change waitStatus, the node has been cancelled. + */ + if (!compareAndSetWaitStatus(node, Node.CONDITION, 0)) + return false; + + /* + * Splice onto queue and try to set waitStatus of predecessor to + * indicate that thread is (probably) waiting. If cancelled or + * attempt to set waitStatus fails, wake up to resync (in which + * case the waitStatus can be transiently and harmlessly wrong). + */ + Node p = enq(node); + int c = p.waitStatus; + if (c > 0 || !compareAndSetWaitStatus(p, c, Node.SIGNAL)) + LockSupport.unpark(node.thread); + return true; + } + + /** + * Transfers node, if necessary, to sync queue after a cancelled + * wait. Returns true if thread was cancelled before being + * signalled. + * @param current the waiting thread + * @param node its node + * @return true if cancelled before the node was signalled. + */ + final boolean transferAfterCancelledWait(Node node) { + if (compareAndSetWaitStatus(node, Node.CONDITION, 0)) { + enq(node); + return true; + } + /* + * If we lost out to a signal(), then we can't proceed + * until it finishes its enq(). Cancelling during an + * incomplete transfer is both rare and transient, so just + * spin. + */ + while (!isOnSyncQueue(node)) + Thread.yield(); + return false; + } + + /** + * Invokes release with current state value; returns saved state. + * Cancels node and throws exception on failure. + * @param node the condition node for this wait + * @return previous sync state + */ + final long fullyRelease(Node node) { + try { + long savedState = getState(); + if (release(savedState)) + return savedState; + } catch (RuntimeException ex) { + node.waitStatus = Node.CANCELLED; + throw ex; + } + // reach here if release fails + node.waitStatus = Node.CANCELLED; + throw new IllegalMonitorStateException(); + } + + // Instrumentation methods for conditions + + /** + * Queries whether the given ConditionObject + * uses this synchronizer as its lock. + * + * @param condition the condition + * @return true if owned + * @throws NullPointerException if the condition is null + */ + public final boolean owns(ConditionObject condition) { + if (condition == null) + throw new NullPointerException(); + return condition.isOwnedBy(this); + } + + /** + * Queries whether any threads are waiting on the given condition + * associated with this synchronizer. Note that because timeouts + * and interrupts may occur at any time, a true return + * does not guarantee that a future signal will awaken + * any threads. This method is designed primarily for use in + * monitoring of the system state. + * + * @param condition the condition + * @return true if there are any waiting threads + * @throws IllegalMonitorStateException if exclusive synchronization + * is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this synchronizer + * @throws NullPointerException if the condition is null + */ + public final boolean hasWaiters(ConditionObject condition) { + if (!owns(condition)) + throw new IllegalArgumentException("Not owner"); + return condition.hasWaiters(); + } + + /** + * Returns an estimate of the number of threads waiting on the + * given condition associated with this synchronizer. Note that + * because timeouts and interrupts may occur at any time, the + * estimate serves only as an upper bound on the actual number of + * waiters. This method is designed for use in monitoring of the + * system state, not for synchronization control. + * + * @param condition the condition + * @return the estimated number of waiting threads + * @throws IllegalMonitorStateException if exclusive synchronization + * is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this synchronizer + * @throws NullPointerException if the condition is null + */ + public final int getWaitQueueLength(ConditionObject condition) { + if (!owns(condition)) + throw new IllegalArgumentException("Not owner"); + return condition.getWaitQueueLength(); + } + + /** + * Returns a collection containing those threads that may be + * waiting on the given condition associated with this + * synchronizer. Because the actual set of threads may change + * dynamically while constructing this result, the returned + * collection is only a best-effort estimate. The elements of the + * returned collection are in no particular order. + * + * @param condition the condition + * @return the collection of threads + * @throws IllegalMonitorStateException if exclusive synchronization + * is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this synchronizer + * @throws NullPointerException if the condition is null + */ + public final Collection getWaitingThreads(ConditionObject condition) { + if (!owns(condition)) + throw new IllegalArgumentException("Not owner"); + return condition.getWaitingThreads(); + } + + /** + * Condition implementation for a {@link + * AbstractQueuedLongSynchronizer} serving as the basis of a {@link + * Lock} implementation. + * + *

Method documentation for this class describes mechanics, + * not behavioral specifications from the point of view of Lock + * and Condition users. Exported versions of this class will in + * general need to be accompanied by documentation describing + * condition semantics that rely on those of the associated + * AbstractQueuedLongSynchronizer. + * + *

This class is Serializable, but all fields are transient, + * so deserialized conditions have no waiters. + * + * @since 1.6 + */ + public class ConditionObject implements Condition, java.io.Serializable { + private static final long serialVersionUID = 1173984872572414699L; + /** First node of condition queue. */ + private transient Node firstWaiter; + /** Last node of condition queue. */ + private transient Node lastWaiter; + + /** + * Creates a new ConditionObject instance. + */ + public ConditionObject() { } + + // Internal methods + + /** + * Adds a new waiter to wait queue. + * @return its new wait node + */ + private Node addConditionWaiter() { + Node node = new Node(Thread.currentThread(), Node.CONDITION); + Node t = lastWaiter; + if (t == null) + firstWaiter = node; + else + t.nextWaiter = node; + lastWaiter = node; + return node; + } + + /** + * Removes and transfers nodes until hit non-cancelled one or + * null. Split out from signal in part to encourage compilers + * to inline the case of no waiters. + * @param first (non-null) the first node on condition queue + */ + private void doSignal(Node first) { + do { + if ( (firstWaiter = first.nextWaiter) == null) + lastWaiter = null; + first.nextWaiter = null; + } while (!transferForSignal(first) && + (first = firstWaiter) != null); + } + + /** + * Removes and transfers all nodes. + * @param first (non-null) the first node on condition queue + */ + private void doSignalAll(Node first) { + lastWaiter = firstWaiter = null; + do { + Node next = first.nextWaiter; + first.nextWaiter = null; + transferForSignal(first); + first = next; + } while (first != null); + } + + /** + * Returns true if given node is on this condition queue. + * Call only when holding lock. + */ + private boolean isOnConditionQueue(Node node) { + return node.next != null || node == lastWaiter; + } + + /** + * Unlinks a cancelled waiter node from condition queue. This + * is called when cancellation occurred during condition wait, + * not lock wait, and is called only after lock has been + * re-acquired by a cancelled waiter and the node is not known + * to already have been dequeued. It is needed to avoid + * garbage retention in the absence of signals. So even though + * it may require a full traversal, it comes into play only + * when timeouts or cancellations occur in the absence of + * signals. + */ + private void unlinkCancelledWaiter(Node node) { + Node t = firstWaiter; + Node trail = null; + while (t != null) { + if (t == node) { + Node next = t.nextWaiter; + if (trail == null) + firstWaiter = next; + else + trail.nextWaiter = next; + if (lastWaiter == node) + lastWaiter = trail; + break; + } + trail = t; + t = t.nextWaiter; + } + } + + // public methods + + /** + * Moves the longest-waiting thread, if one exists, from the + * wait queue for this condition to the wait queue for the + * owning lock. + * + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + public final void signal() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + Node first = firstWaiter; + if (first != null) + doSignal(first); + } + + /** + * Moves all threads from the wait queue for this condition to + * the wait queue for the owning lock. + * + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + public final void signalAll() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + Node first = firstWaiter; + if (first != null) + doSignalAll(first); + } + + /** + * Implements uninterruptible condition wait. + *

    + *
  1. Save lock state returned by {@link #getState} + *
  2. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  3. Block until signalled + *
  4. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
+ */ + public final void awaitUninterruptibly() { + Node node = addConditionWaiter(); + long savedState = fullyRelease(node); + boolean interrupted = false; + while (!isOnSyncQueue(node)) { + LockSupport.park(this); + if (Thread.interrupted()) + interrupted = true; + } + if (acquireQueued(node, savedState) || interrupted) + selfInterrupt(); + } + + /* + * For interruptible waits, we need to track whether to throw + * InterruptedException, if interrupted while blocked on + * condition, versus reinterrupt current thread, if + * interrupted while blocked waiting to re-acquire. + */ + + /** Mode meaning to reinterrupt on exit from wait */ + private static final int REINTERRUPT = 1; + /** Mode meaning to throw InterruptedException on exit from wait */ + private static final int THROW_IE = -1; + + /** + * Checks for interrupt, returning THROW_IE if interrupted + * before signalled, REINTERRUPT if after signalled, or + * 0 if not interrupted. + */ + private int checkInterruptWhileWaiting(Node node) { + return (Thread.interrupted()) ? + ((transferAfterCancelledWait(node))? THROW_IE : REINTERRUPT) : + 0; + } + + /** + * Throws InterruptedException, reinterrupts current thread, or + * does nothing, depending on mode. + */ + private void reportInterruptAfterWait(int interruptMode) + throws InterruptedException { + if (interruptMode == THROW_IE) + throw new InterruptedException(); + else if (interruptMode == REINTERRUPT) + selfInterrupt(); + } + + /** + * Implements interruptible condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled or interrupted + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw exception + *
+ */ + public final void await() throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + long savedState = fullyRelease(node); + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + LockSupport.park(this); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + } + + /** + * Implements timed condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled, interrupted, or timed out + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw InterruptedException + *
+ */ + public final long awaitNanos(long nanosTimeout) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + long savedState = fullyRelease(node); + long lastTime = System.nanoTime(); + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + if (nanosTimeout <= 0L) { + transferAfterCancelledWait(node); + break; + } + LockSupport.parkNanos(this, nanosTimeout); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + return nanosTimeout - (System.nanoTime() - lastTime); + } + + /** + * Implements absolute timed condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled, interrupted, or timed out + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw InterruptedException + *
  7. If timed out while blocked in step 4, return false, else true + *
+ */ + public final boolean awaitUntil(Date deadline) throws InterruptedException { + if (deadline == null) + throw new NullPointerException(); + long abstime = deadline.getTime(); + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + long savedState = fullyRelease(node); + boolean timedout = false; + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + if (System.currentTimeMillis() > abstime) { + timedout = transferAfterCancelledWait(node); + break; + } + LockSupport.parkUntil(this, abstime); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + return !timedout; + } + + /** + * Implements timed condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled, interrupted, or timed out + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw InterruptedException + *
  7. If timed out while blocked in step 4, return false, else true + *
+ */ + public final boolean await(long time, TimeUnit unit) throws InterruptedException { + if (unit == null) + throw new NullPointerException(); + long nanosTimeout = unit.toNanos(time); + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + long savedState = fullyRelease(node); + long lastTime = System.nanoTime(); + boolean timedout = false; + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + if (nanosTimeout <= 0L) { + timedout = transferAfterCancelledWait(node); + break; + } + LockSupport.parkNanos(this, nanosTimeout); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + return !timedout; + } + + // support for instrumentation + + /** + * Returns true if this condition was created by the given + * synchronization object. + * + * @return {@code true} if owned + */ + final boolean isOwnedBy(AbstractQueuedLongSynchronizer sync) { + return sync == AbstractQueuedLongSynchronizer.this; + } + + /** + * Queries whether any threads are waiting on this condition. + * Implements {@link AbstractQueuedLongSynchronizer#hasWaiters}. + * + * @return {@code true} if there are any waiting threads + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + protected final boolean hasWaiters() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + for (Node w = firstWaiter; w != null; w = w.nextWaiter) { + if (w.waitStatus == Node.CONDITION) + return true; + } + return false; + } + + /** + * Returns an estimate of the number of threads waiting on + * this condition. + * Implements {@link AbstractQueuedLongSynchronizer#getWaitQueueLength}. + * + * @return the estimated number of waiting threads + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + protected final int getWaitQueueLength() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + int n = 0; + for (Node w = firstWaiter; w != null; w = w.nextWaiter) { + if (w.waitStatus == Node.CONDITION) + ++n; + } + return n; + } + + /** + * Returns a collection containing those threads that may be + * waiting on this Condition. + * Implements {@link AbstractQueuedLongSynchronizer#getWaitingThreads}. + * + * @return the collection of threads + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + protected final Collection getWaitingThreads() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + ArrayList list = new ArrayList(); + for (Node w = firstWaiter; w != null; w = w.nextWaiter) { + if (w.waitStatus == Node.CONDITION) { + Thread t = w.thread; + if (t != null) + list.add(t); + } + } + return list; + } + } + + /** + * Setup to support compareAndSet. We need to natively implement + * this here: For the sake of permitting future enhancements, we + * cannot explicitly subclass AtomicLong, which would be + * efficient and useful otherwise. So, as the lesser of evils, we + * natively implement using hotspot intrinsics API. And while we + * are at it, we do the same for other CASable fields (which could + * otherwise be done with atomic field updaters). + */ + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long stateOffset; + private static final long headOffset; + private static final long tailOffset; + private static final long waitStatusOffset; + + static { + try { + stateOffset = unsafe.objectFieldOffset + (AbstractQueuedLongSynchronizer.class.getDeclaredField("state")); + headOffset = unsafe.objectFieldOffset + (AbstractQueuedLongSynchronizer.class.getDeclaredField("head")); + tailOffset = unsafe.objectFieldOffset + (AbstractQueuedLongSynchronizer.class.getDeclaredField("tail")); + waitStatusOffset = unsafe.objectFieldOffset + (Node.class.getDeclaredField("waitStatus")); + + } catch (Exception ex) { throw new Error(ex); } + } + + /** + * CAS head field. Used only by enq + */ + private final boolean compareAndSetHead(Node update) { + return unsafe.compareAndSwapObject(this, headOffset, null, update); + } + + /** + * CAS tail field. Used only by enq + */ + private final boolean compareAndSetTail(Node expect, Node update) { + return unsafe.compareAndSwapObject(this, tailOffset, expect, update); + } + + /** + * CAS waitStatus field of a node. + */ + private final static boolean compareAndSetWaitStatus(Node node, + int expect, + int update) { + return unsafe.compareAndSwapInt(node, waitStatusOffset, + expect, update); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java new file mode 100644 index 00000000000..a3abb2cf553 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java @@ -0,0 +1,2159 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.*; +import sun.misc.Unsafe; + +/** + * Provides a framework for implementing blocking locks and related + * synchronizers (semaphores, events, etc) that rely on + * first-in-first-out (FIFO) wait queues. This class is designed to + * be a useful basis for most kinds of synchronizers that rely on a + * single atomic int value to represent state. Subclasses + * must define the protected methods that change this state, and which + * define what that state means in terms of this object being acquired + * or released. Given these, the other methods in this class carry + * out all queuing and blocking mechanics. Subclasses can maintain + * other state fields, but only the atomically updated int + * value manipulated using methods {@link #getState}, {@link + * #setState} and {@link #compareAndSetState} is tracked with respect + * to synchronization. + * + *

Subclasses should be defined as non-public internal helper + * classes that are used to implement the synchronization properties + * of their enclosing class. Class + * AbstractQueuedSynchronizer does not implement any + * synchronization interface. Instead it defines methods such as + * {@link #acquireInterruptibly} that can be invoked as + * appropriate by concrete locks and related synchronizers to + * implement their public methods. + * + *

This class supports either or both a default exclusive + * mode and a shared mode. When acquired in exclusive mode, + * attempted acquires by other threads cannot succeed. Shared mode + * acquires by multiple threads may (but need not) succeed. This class + * does not "understand" these differences except in the + * mechanical sense that when a shared mode acquire succeeds, the next + * waiting thread (if one exists) must also determine whether it can + * acquire as well. Threads waiting in the different modes share the + * same FIFO queue. Usually, implementation subclasses support only + * one of these modes, but both can come into play for example in a + * {@link ReadWriteLock}. Subclasses that support only exclusive or + * only shared modes need not define the methods supporting the unused mode. + * + *

This class defines a nested {@link ConditionObject} class that + * can be used as a {@link Condition} implementation by subclasses + * supporting exclusive mode for which method {@link + * #isHeldExclusively} reports whether synchronization is exclusively + * held with respect to the current thread, method {@link #release} + * invoked with the current {@link #getState} value fully releases + * this object, and {@link #acquire}, given this saved state value, + * eventually restores this object to its previous acquired state. No + * AbstractQueuedSynchronizer method otherwise creates such a + * condition, so if this constraint cannot be met, do not use it. The + * behavior of {@link ConditionObject} depends of course on the + * semantics of its synchronizer implementation. + * + *

This class provides inspection, instrumentation, and monitoring + * methods for the internal queue, as well as similar methods for + * condition objects. These can be exported as desired into classes + * using an AbstractQueuedSynchronizer for their + * synchronization mechanics. + * + *

Serialization of this class stores only the underlying atomic + * integer maintaining state, so deserialized objects have empty + * thread queues. Typical subclasses requiring serializability will + * define a readObject method that restores this to a known + * initial state upon deserialization. + * + *

Usage

+ * + *

To use this class as the basis of a synchronizer, redefine the + * following methods, as applicable, by inspecting and/or modifying + * the synchronization state using {@link #getState}, {@link + * #setState} and/or {@link #compareAndSetState}: + * + *

    + *
  • {@link #tryAcquire} + *
  • {@link #tryRelease} + *
  • {@link #tryAcquireShared} + *
  • {@link #tryReleaseShared} + *
  • {@link #isHeldExclusively} + *
+ * + * Each of these methods by default throws {@link + * UnsupportedOperationException}. Implementations of these methods + * must be internally thread-safe, and should in general be short and + * not block. Defining these methods is the only supported + * means of using this class. All other methods are declared + * final because they cannot be independently varied. + * + *

You may also find the inherited methods from {@link + * AbstractOwnableSynchronizer} useful to keep track of the thread + * owning an exclusive synchronizer. You are encouraged to use them + * -- this enables monitoring and diagnostic tools to assist users in + * determining which threads hold locks. + * + *

Even though this class is based on an internal FIFO queue, it + * does not automatically enforce FIFO acquisition policies. The core + * of exclusive synchronization takes the form: + * + *

+ * Acquire:
+ *     while (!tryAcquire(arg)) {
+ *        enqueue thread if it is not already queued;
+ *        possibly block current thread;
+ *     }
+ *
+ * Release:
+ *     if (tryRelease(arg))
+ *        unblock the first queued thread;
+ * 
+ * + * (Shared mode is similar but may involve cascading signals.) + * + *

Because checks in acquire are invoked before enqueuing, a newly + * acquiring thread may barge ahead of others that are + * blocked and queued. However, you can, if desired, define + * tryAcquire and/or tryAcquireShared to disable + * barging by internally invoking one or more of the inspection + * methods. In particular, a strict FIFO lock can define + * tryAcquire to immediately return false if {@link + * #getFirstQueuedThread} does not return the current thread. A + * normally preferable non-strict fair version can immediately return + * false only if {@link #hasQueuedThreads} returns + * true and getFirstQueuedThread is not the current + * thread; or equivalently, that getFirstQueuedThread is both + * non-null and not the current thread. Further variations are + * possible. + * + *

Throughput and scalability are generally highest for the + * default barging (also known as greedy, + * renouncement, and convoy-avoidance) strategy. + * While this is not guaranteed to be fair or starvation-free, earlier + * queued threads are allowed to recontend before later queued + * threads, and each recontention has an unbiased chance to succeed + * against incoming threads. Also, while acquires do not + * "spin" in the usual sense, they may perform multiple + * invocations of tryAcquire interspersed with other + * computations before blocking. This gives most of the benefits of + * spins when exclusive synchronization is only briefly held, without + * most of the liabilities when it isn't. If so desired, you can + * augment this by preceding calls to acquire methods with + * "fast-path" checks, possibly prechecking {@link #hasContended} + * and/or {@link #hasQueuedThreads} to only do so if the synchronizer + * is likely not to be contended. + * + *

This class provides an efficient and scalable basis for + * synchronization in part by specializing its range of use to + * synchronizers that can rely on int state, acquire, and + * release parameters, and an internal FIFO wait queue. When this does + * not suffice, you can build synchronizers from a lower level using + * {@link java.util.concurrent.atomic atomic} classes, your own custom + * {@link java.util.Queue} classes, and {@link LockSupport} blocking + * support. + * + *

Usage Examples

+ * + *

Here is a non-reentrant mutual exclusion lock class that uses + * the value zero to represent the unlocked state, and one to + * represent the locked state. While a non-reentrant lock + * does not strictly require recording of the current owner + * thread, this class does so anyway to make usage easier to monitor. + * It also supports conditions and exposes + * one of the instrumentation methods: + * + *

+ * class Mutex implements Lock, java.io.Serializable {
+ *
+ *   // Our internal helper class
+ *   private static class Sync extends AbstractQueuedSynchronizer {
+ *     // Report whether in locked state
+ *     protected boolean isHeldExclusively() {
+ *       return getState() == 1;
+ *     }
+ *
+ *     // Acquire the lock if state is zero
+ *     public boolean tryAcquire(int acquires) {
+ *       assert acquires == 1; // Otherwise unused
+ *       if (compareAndSetState(0, 1)) {
+ *         setExclusiveOwnerThread(Thread.currentThread());
+ *         return true;
+ *       }
+ *       return false;
+ *     }
+ *
+ *     // Release the lock by setting state to zero
+ *     protected boolean tryRelease(int releases) {
+ *       assert releases == 1; // Otherwise unused
+ *       if (getState() == 0) throw new IllegalMonitorStateException();
+ *       setExclusiveOwnerThread(null);
+ *       setState(0);
+ *       return true;
+ *     }
+ *
+ *     // Provide a Condition
+ *     Condition newCondition() { return new ConditionObject(); }
+ *
+ *     // Deserialize properly
+ *     private void readObject(ObjectInputStream s)
+ *         throws IOException, ClassNotFoundException {
+ *       s.defaultReadObject();
+ *       setState(0); // reset to unlocked state
+ *     }
+ *   }
+ *
+ *   // The sync object does all the hard work. We just forward to it.
+ *   private final Sync sync = new Sync();
+ *
+ *   public void lock()                { sync.acquire(1); }
+ *   public boolean tryLock()          { return sync.tryAcquire(1); }
+ *   public void unlock()              { sync.release(1); }
+ *   public Condition newCondition()   { return sync.newCondition(); }
+ *   public boolean isLocked()         { return sync.isHeldExclusively(); }
+ *   public boolean hasQueuedThreads() { return sync.hasQueuedThreads(); }
+ *   public void lockInterruptibly() throws InterruptedException {
+ *     sync.acquireInterruptibly(1);
+ *   }
+ *   public boolean tryLock(long timeout, TimeUnit unit)
+ *       throws InterruptedException {
+ *     return sync.tryAcquireNanos(1, unit.toNanos(timeout));
+ *   }
+ * }
+ * 
+ * + *

Here is a latch class that is like a {@link CountDownLatch} + * except that it only requires a single signal to + * fire. Because a latch is non-exclusive, it uses the shared + * acquire and release methods. + * + *

+ * class BooleanLatch {
+ *
+ *   private static class Sync extends AbstractQueuedSynchronizer {
+ *     boolean isSignalled() { return getState() != 0; }
+ *
+ *     protected int tryAcquireShared(int ignore) {
+ *       return isSignalled()? 1 : -1;
+ *     }
+ *
+ *     protected boolean tryReleaseShared(int ignore) {
+ *       setState(1);
+ *       return true;
+ *     }
+ *   }
+ *
+ *   private final Sync sync = new Sync();
+ *   public boolean isSignalled() { return sync.isSignalled(); }
+ *   public void signal()         { sync.releaseShared(1); }
+ *   public void await() throws InterruptedException {
+ *     sync.acquireSharedInterruptibly(1);
+ *   }
+ * }
+ * 
+ * + * @since 1.5 + * @author Doug Lea + */ +public abstract class AbstractQueuedSynchronizer + extends AbstractOwnableSynchronizer + implements java.io.Serializable { + + private static final long serialVersionUID = 7373984972572414691L; + + /** + * Creates a new AbstractQueuedSynchronizer instance + * with initial synchronization state of zero. + */ + protected AbstractQueuedSynchronizer() { } + + /** + * Wait queue node class. + * + *

The wait queue is a variant of a "CLH" (Craig, Landin, and + * Hagersten) lock queue. CLH locks are normally used for + * spinlocks. We instead use them for blocking synchronizers, but + * use the same basic tactic of holding some of the control + * information about a thread in the predecessor of its node. A + * "status" field in each node keeps track of whether a thread + * should block. A node is signalled when its predecessor + * releases. Each node of the queue otherwise serves as a + * specific-notification-style monitor holding a single waiting + * thread. The status field does NOT control whether threads are + * granted locks etc though. A thread may try to acquire if it is + * first in the queue. But being first does not guarantee success; + * it only gives the right to contend. So the currently released + * contender thread may need to rewait. + * + *

To enqueue into a CLH lock, you atomically splice it in as new + * tail. To dequeue, you just set the head field. + *

+     *      +------+  prev +-----+       +-----+
+     * head |      | <---- |     | <---- |     |  tail
+     *      +------+       +-----+       +-----+
+     * 
+ * + *

Insertion into a CLH queue requires only a single atomic + * operation on "tail", so there is a simple atomic point of + * demarcation from unqueued to queued. Similarly, dequeing + * involves only updating the "head". However, it takes a bit + * more work for nodes to determine who their successors are, + * in part to deal with possible cancellation due to timeouts + * and interrupts. + * + *

The "prev" links (not used in original CLH locks), are mainly + * needed to handle cancellation. If a node is cancelled, its + * successor is (normally) relinked to a non-cancelled + * predecessor. For explanation of similar mechanics in the case + * of spin locks, see the papers by Scott and Scherer at + * http://www.cs.rochester.edu/u/scott/synchronization/ + * + *

We also use "next" links to implement blocking mechanics. + * The thread id for each node is kept in its own node, so a + * predecessor signals the next node to wake up by traversing + * next link to determine which thread it is. Determination of + * successor must avoid races with newly queued nodes to set + * the "next" fields of their predecessors. This is solved + * when necessary by checking backwards from the atomically + * updated "tail" when a node's successor appears to be null. + * (Or, said differently, the next-links are an optimization + * so that we don't usually need a backward scan.) + * + *

Cancellation introduces some conservatism to the basic + * algorithms. Since we must poll for cancellation of other + * nodes, we can miss noticing whether a cancelled node is + * ahead or behind us. This is dealt with by always unparking + * successors upon cancellation, allowing them to stabilize on + * a new predecessor. + * + *

CLH queues need a dummy header node to get started. But + * we don't create them on construction, because it would be wasted + * effort if there is never contention. Instead, the node + * is constructed and head and tail pointers are set upon first + * contention. + * + *

Threads waiting on Conditions use the same nodes, but + * use an additional link. Conditions only need to link nodes + * in simple (non-concurrent) linked queues because they are + * only accessed when exclusively held. Upon await, a node is + * inserted into a condition queue. Upon signal, the node is + * transferred to the main queue. A special value of status + * field is used to mark which queue a node is on. + * + *

Thanks go to Dave Dice, Mark Moir, Victor Luchangco, Bill + * Scherer and Michael Scott, along with members of JSR-166 + * expert group, for helpful ideas, discussions, and critiques + * on the design of this class. + */ + static final class Node { + /** waitStatus value to indicate thread has cancelled */ + static final int CANCELLED = 1; + /** waitStatus value to indicate successor's thread needs unparking */ + static final int SIGNAL = -1; + /** waitStatus value to indicate thread is waiting on condition */ + static final int CONDITION = -2; + /** Marker to indicate a node is waiting in shared mode */ + static final Node SHARED = new Node(); + /** Marker to indicate a node is waiting in exclusive mode */ + static final Node EXCLUSIVE = null; + + /** + * Status field, taking on only the values: + * SIGNAL: The successor of this node is (or will soon be) + * blocked (via park), so the current node must + * unpark its successor when it releases or + * cancels. To avoid races, acquire methods must + * first indicate they need a signal, + * then retry the atomic acquire, and then, + * on failure, block. + * CANCELLED: This node is cancelled due to timeout or interrupt. + * Nodes never leave this state. In particular, + * a thread with cancelled node never again blocks. + * CONDITION: This node is currently on a condition queue. + * It will not be used as a sync queue node until + * transferred. (Use of this value here + * has nothing to do with the other uses + * of the field, but simplifies mechanics.) + * 0: None of the above + * + * The values are arranged numerically to simplify use. + * Non-negative values mean that a node doesn't need to + * signal. So, most code doesn't need to check for particular + * values, just for sign. + * + * The field is initialized to 0 for normal sync nodes, and + * CONDITION for condition nodes. It is modified only using + * CAS. + */ + volatile int waitStatus; + + /** + * Link to predecessor node that current node/thread relies on + * for checking waitStatus. Assigned during enqueing, and nulled + * out (for sake of GC) only upon dequeuing. Also, upon + * cancellation of a predecessor, we short-circuit while + * finding a non-cancelled one, which will always exist + * because the head node is never cancelled: A node becomes + * head only as a result of successful acquire. A + * cancelled thread never succeeds in acquiring, and a thread only + * cancels itself, not any other node. + */ + volatile Node prev; + + /** + * Link to the successor node that the current node/thread + * unparks upon release. Assigned once during enqueuing, and + * nulled out (for sake of GC) when no longer needed. Upon + * cancellation, we cannot adjust this field, but can notice + * status and bypass the node if cancelled. The enq operation + * does not assign next field of a predecessor until after + * attachment, so seeing a null next field does not + * necessarily mean that node is at end of queue. However, if + * a next field appears to be null, we can scan prev's from + * the tail to double-check. + */ + volatile Node next; + + /** + * The thread that enqueued this node. Initialized on + * construction and nulled out after use. + */ + volatile Thread thread; + + /** + * Link to next node waiting on condition, or the special + * value SHARED. Because condition queues are accessed only + * when holding in exclusive mode, we just need a simple + * linked queue to hold nodes while they are waiting on + * conditions. They are then transferred to the queue to + * re-acquire. And because conditions can only be exclusive, + * we save a field by using special value to indicate shared + * mode. + */ + Node nextWaiter; + + /** + * Returns true if node is waiting in shared mode + */ + final boolean isShared() { + return nextWaiter == SHARED; + } + + /** + * Returns previous node, or throws NullPointerException if + * null. Use when predecessor cannot be null. + * @return the predecessor of this node + */ + final Node predecessor() throws NullPointerException { + Node p = prev; + if (p == null) + throw new NullPointerException(); + else + return p; + } + + Node() { // Used to establish initial head or SHARED marker + } + + Node(Thread thread, Node mode) { // Used by addWaiter + this.nextWaiter = mode; + this.thread = thread; + } + + Node(Thread thread, int waitStatus) { // Used by Condition + this.waitStatus = waitStatus; + this.thread = thread; + } + } + + /** + * Head of the wait queue, lazily initialized. Except for + * initialization, it is modified only via method setHead. Note: + * If head exists, its waitStatus is guaranteed not to be + * CANCELLED. + */ + private transient volatile Node head; + + /** + * Tail of the wait queue, lazily initialized. Modified only via + * method enq to add new wait node. + */ + private transient volatile Node tail; + + /** + * The synchronization state. + */ + private volatile int state; + + /** + * Returns the current value of synchronization state. + * This operation has memory semantics of a volatile read. + * @return current state value + */ + protected final int getState() { + return state; + } + + /** + * Sets the value of synchronization state. + * This operation has memory semantics of a volatile write. + * @param newState the new state value + */ + protected final void setState(int newState) { + state = newState; + } + + /** + * Atomically sets synchronization state to the given updated + * value if the current state value equals the expected value. + * This operation has memory semantics of a volatile read + * and write. + * + * @param expect the expected value + * @param update the new value + * @return true if successful. False return indicates that the actual + * value was not equal to the expected value. + */ + protected final boolean compareAndSetState(int expect, int update) { + // See below for intrinsics setup to support this + return unsafe.compareAndSwapInt(this, stateOffset, expect, update); + } + + // Queuing utilities + + /** + * The number of nanoseconds for which it is faster to spin + * rather than to use timed park. A rough estimate suffices + * to improve responsiveness with very short timeouts. + */ + static final long spinForTimeoutThreshold = 1000L; + + /** + * Inserts node into queue, initializing if necessary. See picture above. + * @param node the node to insert + * @return node's predecessor + */ + private Node enq(final Node node) { + for (;;) { + Node t = tail; + if (t == null) { // Must initialize + Node h = new Node(); // Dummy header + h.next = node; + node.prev = h; + if (compareAndSetHead(h)) { + tail = node; + return h; + } + } + else { + node.prev = t; + if (compareAndSetTail(t, node)) { + t.next = node; + return t; + } + } + } + } + + /** + * Creates and enqueues node for given thread and mode. + * + * @param current the thread + * @param mode Node.EXCLUSIVE for exclusive, Node.SHARED for shared + * @return the new node + */ + private Node addWaiter(Node mode) { + Node node = new Node(Thread.currentThread(), mode); + // Try the fast path of enq; backup to full enq on failure + Node pred = tail; + if (pred != null) { + node.prev = pred; + if (compareAndSetTail(pred, node)) { + pred.next = node; + return node; + } + } + enq(node); + return node; + } + + /** + * Sets head of queue to be node, thus dequeuing. Called only by + * acquire methods. Also nulls out unused fields for sake of GC + * and to suppress unnecessary signals and traversals. + * + * @param node the node + */ + private void setHead(Node node) { + head = node; + node.thread = null; + node.prev = null; + } + + /** + * Wakes up node's successor, if one exists. + * + * @param node the node + */ + private void unparkSuccessor(Node node) { + /* + * Try to clear status in anticipation of signalling. It is + * OK if this fails or if status is changed by waiting thread. + */ + compareAndSetWaitStatus(node, Node.SIGNAL, 0); + + /* + * Thread to unpark is held in successor, which is normally + * just the next node. But if cancelled or apparently null, + * traverse backwards from tail to find the actual + * non-cancelled successor. + */ + Node s = node.next; + if (s == null || s.waitStatus > 0) { + s = null; + for (Node t = tail; t != null && t != node; t = t.prev) + if (t.waitStatus <= 0) + s = t; + } + if (s != null) + LockSupport.unpark(s.thread); + } + + /** + * Sets head of queue, and checks if successor may be waiting + * in shared mode, if so propagating if propagate > 0. + * + * @param pred the node holding waitStatus for node + * @param node the node + * @param propagate the return value from a tryAcquireShared + */ + private void setHeadAndPropagate(Node node, int propagate) { + setHead(node); + if (propagate > 0 && node.waitStatus != 0) { + /* + * Don't bother fully figuring out successor. If it + * looks null, call unparkSuccessor anyway to be safe. + */ + Node s = node.next; + if (s == null || s.isShared()) + unparkSuccessor(node); + } + } + + // Utilities for various versions of acquire + + /** + * Cancels an ongoing attempt to acquire. + * + * @param node the node + */ + private void cancelAcquire(Node node) { + if (node != null) { // Ignore if node doesn't exist + node.thread = null; + // Can use unconditional write instead of CAS here + node.waitStatus = Node.CANCELLED; + unparkSuccessor(node); + } + } + + /** + * Checks and updates status for a node that failed to acquire. + * Returns true if thread should block. This is the main signal + * control in all acquire loops. Requires that pred == node.prev + * + * @param pred node's predecessor holding status + * @param node the node + * @return {@code true} if thread should block + */ + private static boolean shouldParkAfterFailedAcquire(Node pred, Node node) { + int s = pred.waitStatus; + if (s < 0) + /* + * This node has already set status asking a release + * to signal it, so it can safely park + */ + return true; + if (s > 0) + /* + * Predecessor was cancelled. Move up to its predecessor + * and indicate retry. + */ + node.prev = pred.prev; + else + /* + * Indicate that we need a signal, but don't park yet. Caller + * will need to retry to make sure it cannot acquire before + * parking. + */ + compareAndSetWaitStatus(pred, 0, Node.SIGNAL); + return false; + } + + /** + * Convenience method to interrupt current thread. + */ + private static void selfInterrupt() { + Thread.currentThread().interrupt(); + } + + /** + * Convenience method to park and then check if interrupted + * + * @return {@code true} if interrupted + */ + private final boolean parkAndCheckInterrupt() { + LockSupport.park(this); + return Thread.interrupted(); + } + + /* + * Various flavors of acquire, varying in exclusive/shared and + * control modes. Each is mostly the same, but annoyingly + * different. Only a little bit of factoring is possible due to + * interactions of exception mechanics (including ensuring that we + * cancel if tryAcquire throws exception) and other control, at + * least not without hurting performance too much. + */ + + /** + * Acquires in exclusive uninterruptible mode for thread already in + * queue. Used by condition wait methods as well as acquire. + * + * @param node the node + * @param arg the acquire argument + * @return {@code true} if interrupted while waiting + */ + final boolean acquireQueued(final Node node, int arg) { + try { + boolean interrupted = false; + for (;;) { + final Node p = node.predecessor(); + if (p == head && tryAcquire(arg)) { + setHead(node); + p.next = null; // help GC + return interrupted; + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + interrupted = true; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + } + + /** + * Acquires in exclusive interruptible mode. + * @param arg the acquire argument + */ + private void doAcquireInterruptibly(int arg) + throws InterruptedException { + final Node node = addWaiter(Node.EXCLUSIVE); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head && tryAcquire(arg)) { + setHead(node); + p.next = null; // help GC + return; + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + /** + * Acquires in exclusive timed mode. + * + * @param arg the acquire argument + * @param nanosTimeout max wait time + * @return {@code true} if acquired + */ + private boolean doAcquireNanos(int arg, long nanosTimeout) + throws InterruptedException { + long lastTime = System.nanoTime(); + final Node node = addWaiter(Node.EXCLUSIVE); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head && tryAcquire(arg)) { + setHead(node); + p.next = null; // help GC + return true; + } + if (nanosTimeout <= 0) { + cancelAcquire(node); + return false; + } + if (nanosTimeout > spinForTimeoutThreshold && + shouldParkAfterFailedAcquire(p, node)) + LockSupport.parkNanos(this, nanosTimeout); + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + if (Thread.interrupted()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + /** + * Acquires in shared uninterruptible mode. + * @param arg the acquire argument + */ + private void doAcquireShared(int arg) { + final Node node = addWaiter(Node.SHARED); + try { + boolean interrupted = false; + for (;;) { + final Node p = node.predecessor(); + if (p == head) { + int r = tryAcquireShared(arg); + if (r >= 0) { + setHeadAndPropagate(node, r); + p.next = null; // help GC + if (interrupted) + selfInterrupt(); + return; + } + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + interrupted = true; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + } + + /** + * Acquires in shared interruptible mode. + * @param arg the acquire argument + */ + private void doAcquireSharedInterruptibly(int arg) + throws InterruptedException { + final Node node = addWaiter(Node.SHARED); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head) { + int r = tryAcquireShared(arg); + if (r >= 0) { + setHeadAndPropagate(node, r); + p.next = null; // help GC + return; + } + } + if (shouldParkAfterFailedAcquire(p, node) && + parkAndCheckInterrupt()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + /** + * Acquires in shared timed mode. + * + * @param arg the acquire argument + * @param nanosTimeout max wait time + * @return {@code true} if acquired + */ + private boolean doAcquireSharedNanos(int arg, long nanosTimeout) + throws InterruptedException { + + long lastTime = System.nanoTime(); + final Node node = addWaiter(Node.SHARED); + try { + for (;;) { + final Node p = node.predecessor(); + if (p == head) { + int r = tryAcquireShared(arg); + if (r >= 0) { + setHeadAndPropagate(node, r); + p.next = null; // help GC + return true; + } + } + if (nanosTimeout <= 0) { + cancelAcquire(node); + return false; + } + if (nanosTimeout > spinForTimeoutThreshold && + shouldParkAfterFailedAcquire(p, node)) + LockSupport.parkNanos(this, nanosTimeout); + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + if (Thread.interrupted()) + break; + } + } catch (RuntimeException ex) { + cancelAcquire(node); + throw ex; + } + // Arrive here only if interrupted + cancelAcquire(node); + throw new InterruptedException(); + } + + // Main exported methods + + /** + * Attempts to acquire in exclusive mode. This method should query + * if the state of the object permits it to be acquired in the + * exclusive mode, and if so to acquire it. + * + *

This method is always invoked by the thread performing + * acquire. If this method reports failure, the acquire method + * may queue the thread, if it is not already queued, until it is + * signalled by a release from some other thread. This can be used + * to implement method {@link Lock#tryLock()}. + * + *

The default + * implementation throws {@link UnsupportedOperationException}. + * + * @param arg the acquire argument. This value is always the one + * passed to an acquire method, or is the value saved on entry + * to a condition wait. The value is otherwise uninterpreted + * and can represent anything you like. + * @return {@code true} if successful. Upon success, this object has + * been acquired. + * @throws IllegalMonitorStateException if acquiring would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if exclusive mode is not supported + */ + protected boolean tryAcquire(int arg) { + throw new UnsupportedOperationException(); + } + + /** + * Attempts to set the state to reflect a release in exclusive + * mode. + * + *

This method is always invoked by the thread performing release. + * + *

The default implementation throws + * {@link UnsupportedOperationException}. + * + * @param arg the release argument. This value is always the one + * passed to a release method, or the current state value upon + * entry to a condition wait. The value is otherwise + * uninterpreted and can represent anything you like. + * @return {@code true} if this object is now in a fully released + * state, so that any waiting threads may attempt to acquire; + * and {@code false} otherwise. + * @throws IllegalMonitorStateException if releasing would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if exclusive mode is not supported + */ + protected boolean tryRelease(int arg) { + throw new UnsupportedOperationException(); + } + + /** + * Attempts to acquire in shared mode. This method should query if + * the state of the object permits it to be acquired in the shared + * mode, and if so to acquire it. + * + *

This method is always invoked by the thread performing + * acquire. If this method reports failure, the acquire method + * may queue the thread, if it is not already queued, until it is + * signalled by a release from some other thread. + * + *

The default implementation throws {@link + * UnsupportedOperationException}. + * + * @param arg the acquire argument. This value is always the one + * passed to an acquire method, or is the value saved on entry + * to a condition wait. The value is otherwise uninterpreted + * and can represent anything you like. + * @return a negative value on failure; zero if acquisition in shared + * mode succeeded but no subsequent shared-mode acquire can + * succeed; and a positive value if acquisition in shared + * mode succeeded and subsequent shared-mode acquires might + * also succeed, in which case a subsequent waiting thread + * must check availability. (Support for three different + * return values enables this method to be used in contexts + * where acquires only sometimes act exclusively.) Upon + * success, this object has been acquired. + * @throws IllegalMonitorStateException if acquiring would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if shared mode is not supported + */ + protected int tryAcquireShared(int arg) { + throw new UnsupportedOperationException(); + } + + /** + * Attempts to set the state to reflect a release in shared mode. + * + *

This method is always invoked by the thread performing release. + * + *

The default implementation throws + * {@link UnsupportedOperationException}. + * + * @param arg the release argument. This value is always the one + * passed to a release method, or the current state value upon + * entry to a condition wait. The value is otherwise + * uninterpreted and can represent anything you like. + * @return {@code true} if this release of shared mode may permit a + * waiting acquire (shared or exclusive) to succeed; and + * {@code false} otherwise + * @throws IllegalMonitorStateException if releasing would place this + * synchronizer in an illegal state. This exception must be + * thrown in a consistent fashion for synchronization to work + * correctly. + * @throws UnsupportedOperationException if shared mode is not supported + */ + protected boolean tryReleaseShared(int arg) { + throw new UnsupportedOperationException(); + } + + /** + * Returns {@code true} if synchronization is held exclusively with + * respect to the current (calling) thread. This method is invoked + * upon each call to a non-waiting {@link ConditionObject} method. + * (Waiting methods instead invoke {@link #release}.) + * + *

The default implementation throws {@link + * UnsupportedOperationException}. This method is invoked + * internally only within {@link ConditionObject} methods, so need + * not be defined if conditions are not used. + * + * @return {@code true} if synchronization is held exclusively; + * {@code false} otherwise + * @throws UnsupportedOperationException if conditions are not supported + */ + protected boolean isHeldExclusively() { + throw new UnsupportedOperationException(); + } + + /** + * Acquires in exclusive mode, ignoring interrupts. Implemented + * by invoking at least once {@link #tryAcquire}, + * returning on success. Otherwise the thread is queued, possibly + * repeatedly blocking and unblocking, invoking {@link + * #tryAcquire} until success. This method can be used + * to implement method {@link Lock#lock}. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquire} but is otherwise uninterpreted and + * can represent anything you like. + */ + public final void acquire(int arg) { + if (!tryAcquire(arg) && + acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) + selfInterrupt(); + } + + /** + * Acquires in exclusive mode, aborting if interrupted. + * Implemented by first checking interrupt status, then invoking + * at least once {@link #tryAcquire}, returning on + * success. Otherwise the thread is queued, possibly repeatedly + * blocking and unblocking, invoking {@link #tryAcquire} + * until success or the thread is interrupted. This method can be + * used to implement method {@link Lock#lockInterruptibly}. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquire} but is otherwise uninterpreted and + * can represent anything you like. + * @throws InterruptedException if the current thread is interrupted + */ + public final void acquireInterruptibly(int arg) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + if (!tryAcquire(arg)) + doAcquireInterruptibly(arg); + } + + /** + * Attempts to acquire in exclusive mode, aborting if interrupted, + * and failing if the given timeout elapses. Implemented by first + * checking interrupt status, then invoking at least once {@link + * #tryAcquire}, returning on success. Otherwise, the thread is + * queued, possibly repeatedly blocking and unblocking, invoking + * {@link #tryAcquire} until success or the thread is interrupted + * or the timeout elapses. This method can be used to implement + * method {@link Lock#tryLock(long, TimeUnit)}. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquire} but is otherwise uninterpreted and + * can represent anything you like. + * @param nanosTimeout the maximum number of nanoseconds to wait + * @return {@code true} if acquired; {@code false} if timed out + * @throws InterruptedException if the current thread is interrupted + */ + public final boolean tryAcquireNanos(int arg, long nanosTimeout) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + return tryAcquire(arg) || + doAcquireNanos(arg, nanosTimeout); + } + + /** + * Releases in exclusive mode. Implemented by unblocking one or + * more threads if {@link #tryRelease} returns true. + * This method can be used to implement method {@link Lock#unlock}. + * + * @param arg the release argument. This value is conveyed to + * {@link #tryRelease} but is otherwise uninterpreted and + * can represent anything you like. + * @return the value returned from {@link #tryRelease} + */ + public final boolean release(int arg) { + if (tryRelease(arg)) { + Node h = head; + if (h != null && h.waitStatus != 0) + unparkSuccessor(h); + return true; + } + return false; + } + + /** + * Acquires in shared mode, ignoring interrupts. Implemented by + * first invoking at least once {@link #tryAcquireShared}, + * returning on success. Otherwise the thread is queued, possibly + * repeatedly blocking and unblocking, invoking {@link + * #tryAcquireShared} until success. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquireShared} but is otherwise uninterpreted + * and can represent anything you like. + */ + public final void acquireShared(int arg) { + if (tryAcquireShared(arg) < 0) + doAcquireShared(arg); + } + + /** + * Acquires in shared mode, aborting if interrupted. Implemented + * by first checking interrupt status, then invoking at least once + * {@link #tryAcquireShared}, returning on success. Otherwise the + * thread is queued, possibly repeatedly blocking and unblocking, + * invoking {@link #tryAcquireShared} until success or the thread + * is interrupted. + * @param arg the acquire argument. + * This value is conveyed to {@link #tryAcquireShared} but is + * otherwise uninterpreted and can represent anything + * you like. + * @throws InterruptedException if the current thread is interrupted + */ + public final void acquireSharedInterruptibly(int arg) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + if (tryAcquireShared(arg) < 0) + doAcquireSharedInterruptibly(arg); + } + + /** + * Attempts to acquire in shared mode, aborting if interrupted, and + * failing if the given timeout elapses. Implemented by first + * checking interrupt status, then invoking at least once {@link + * #tryAcquireShared}, returning on success. Otherwise, the + * thread is queued, possibly repeatedly blocking and unblocking, + * invoking {@link #tryAcquireShared} until success or the thread + * is interrupted or the timeout elapses. + * + * @param arg the acquire argument. This value is conveyed to + * {@link #tryAcquireShared} but is otherwise uninterpreted + * and can represent anything you like. + * @param nanosTimeout the maximum number of nanoseconds to wait + * @return {@code true} if acquired; {@code false} if timed out + * @throws InterruptedException if the current thread is interrupted + */ + public final boolean tryAcquireSharedNanos(int arg, long nanosTimeout) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + return tryAcquireShared(arg) >= 0 || + doAcquireSharedNanos(arg, nanosTimeout); + } + + /** + * Releases in shared mode. Implemented by unblocking one or more + * threads if {@link #tryReleaseShared} returns true. + * + * @param arg the release argument. This value is conveyed to + * {@link #tryReleaseShared} but is otherwise uninterpreted + * and can represent anything you like. + * @return the value returned from {@link #tryReleaseShared} + */ + public final boolean releaseShared(int arg) { + if (tryReleaseShared(arg)) { + Node h = head; + if (h != null && h.waitStatus != 0) + unparkSuccessor(h); + return true; + } + return false; + } + + // Queue inspection methods + + /** + * Queries whether any threads are waiting to acquire. Note that + * because cancellations due to interrupts and timeouts may occur + * at any time, a {@code true} return does not guarantee that any + * other thread will ever acquire. + * + *

In this implementation, this operation returns in + * constant time. + * + * @return {@code true} if there may be other threads waiting to acquire + */ + public final boolean hasQueuedThreads() { + return head != tail; + } + + /** + * Queries whether any threads have ever contended to acquire this + * synchronizer; that is if an acquire method has ever blocked. + * + *

In this implementation, this operation returns in + * constant time. + * + * @return {@code true} if there has ever been contention + */ + public final boolean hasContended() { + return head != null; + } + + /** + * Returns the first (longest-waiting) thread in the queue, or + * {@code null} if no threads are currently queued. + * + *

In this implementation, this operation normally returns in + * constant time, but may iterate upon contention if other threads are + * concurrently modifying the queue. + * + * @return the first (longest-waiting) thread in the queue, or + * {@code null} if no threads are currently queued + */ + public final Thread getFirstQueuedThread() { + // handle only fast path, else relay + return (head == tail)? null : fullGetFirstQueuedThread(); + } + + /** + * Version of getFirstQueuedThread called when fastpath fails + */ + private Thread fullGetFirstQueuedThread() { + /* + * The first node is normally h.next. Try to get its + * thread field, ensuring consistent reads: If thread + * field is nulled out or s.prev is no longer head, then + * some other thread(s) concurrently performed setHead in + * between some of our reads. We try this twice before + * resorting to traversal. + */ + Node h, s; + Thread st; + if (((h = head) != null && (s = h.next) != null && + s.prev == head && (st = s.thread) != null) || + ((h = head) != null && (s = h.next) != null && + s.prev == head && (st = s.thread) != null)) + return st; + + /* + * Head's next field might not have been set yet, or may have + * been unset after setHead. So we must check to see if tail + * is actually first node. If not, we continue on, safely + * traversing from tail back to head to find first, + * guaranteeing termination. + */ + + Node t = tail; + Thread firstThread = null; + while (t != null && t != head) { + Thread tt = t.thread; + if (tt != null) + firstThread = tt; + t = t.prev; + } + return firstThread; + } + + /** + * Returns true if the given thread is currently queued. + * + *

This implementation traverses the queue to determine + * presence of the given thread. + * + * @param thread the thread + * @return {@code true} if the given thread is on the queue + * @throws NullPointerException if the thread is null + */ + public final boolean isQueued(Thread thread) { + if (thread == null) + throw new NullPointerException(); + for (Node p = tail; p != null; p = p.prev) + if (p.thread == thread) + return true; + return false; + } + + /** + * Return {@code true} if the apparent first queued thread, if one + * exists, is not waiting in exclusive mode. Used only as a heuristic + * in ReentrantReadWriteLock. + */ + final boolean apparentlyFirstQueuedIsExclusive() { + Node h, s; + return ((h = head) != null && (s = h.next) != null && + s.nextWaiter != Node.SHARED); + } + + /** + * Return {@code true} if the queue is empty or if the given thread + * is at the head of the queue. This is reliable only if + * current is actually Thread.currentThread() of caller. + */ + final boolean isFirst(Thread current) { + Node h, s; + return ((h = head) == null || + ((s = h.next) != null && s.thread == current) || + fullIsFirst(current)); + } + + final boolean fullIsFirst(Thread current) { + // same idea as fullGetFirstQueuedThread + Node h, s; + Thread firstThread = null; + if (((h = head) != null && (s = h.next) != null && + s.prev == head && (firstThread = s.thread) != null)) + return firstThread == current; + Node t = tail; + while (t != null && t != head) { + Thread tt = t.thread; + if (tt != null) + firstThread = tt; + t = t.prev; + } + return firstThread == current || firstThread == null; + } + + + // Instrumentation and monitoring methods + + /** + * Returns an estimate of the number of threads waiting to + * acquire. The value is only an estimate because the number of + * threads may change dynamically while this method traverses + * internal data structures. This method is designed for use in + * monitoring system state, not for synchronization + * control. + * + * @return the estimated number of threads waiting to acquire + */ + public final int getQueueLength() { + int n = 0; + for (Node p = tail; p != null; p = p.prev) { + if (p.thread != null) + ++n; + } + return n; + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire. Because the actual set of threads may change + * dynamically while constructing this result, the returned + * collection is only a best-effort estimate. The elements of the + * returned collection are in no particular order. This method is + * designed to facilitate construction of subclasses that provide + * more extensive monitoring facilities. + * + * @return the collection of threads + */ + public final Collection getQueuedThreads() { + ArrayList list = new ArrayList(); + for (Node p = tail; p != null; p = p.prev) { + Thread t = p.thread; + if (t != null) + list.add(t); + } + return list; + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire in exclusive mode. This has the same properties + * as {@link #getQueuedThreads} except that it only returns + * those threads waiting due to an exclusive acquire. + * + * @return the collection of threads + */ + public final Collection getExclusiveQueuedThreads() { + ArrayList list = new ArrayList(); + for (Node p = tail; p != null; p = p.prev) { + if (!p.isShared()) { + Thread t = p.thread; + if (t != null) + list.add(t); + } + } + return list; + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire in shared mode. This has the same properties + * as {@link #getQueuedThreads} except that it only returns + * those threads waiting due to a shared acquire. + * + * @return the collection of threads + */ + public final Collection getSharedQueuedThreads() { + ArrayList list = new ArrayList(); + for (Node p = tail; p != null; p = p.prev) { + if (p.isShared()) { + Thread t = p.thread; + if (t != null) + list.add(t); + } + } + return list; + } + + /** + * Returns a string identifying this synchronizer, as well as its state. + * The state, in brackets, includes the String {@code "State ="} + * followed by the current value of {@link #getState}, and either + * {@code "nonempty"} or {@code "empty"} depending on whether the + * queue is empty. + * + * @return a string identifying this synchronizer, as well as its state + */ + public String toString() { + int s = getState(); + String q = hasQueuedThreads()? "non" : ""; + return super.toString() + + "[State = " + s + ", " + q + "empty queue]"; + } + + + // Internal support methods for Conditions + + /** + * Returns true if a node, always one that was initially placed on + * a condition queue, is now waiting to reacquire on sync queue. + * @param node the node + * @return true if is reacquiring + */ + final boolean isOnSyncQueue(Node node) { + if (node.waitStatus == Node.CONDITION || node.prev == null) + return false; + if (node.next != null) // If has successor, it must be on queue + return true; + /* + * node.prev can be non-null, but not yet on queue because + * the CAS to place it on queue can fail. So we have to + * traverse from tail to make sure it actually made it. It + * will always be near the tail in calls to this method, and + * unless the CAS failed (which is unlikely), it will be + * there, so we hardly ever traverse much. + */ + return findNodeFromTail(node); + } + + /** + * Returns true if node is on sync queue by searching backwards from tail. + * Called only when needed by isOnSyncQueue. + * @return true if present + */ + private boolean findNodeFromTail(Node node) { + Node t = tail; + for (;;) { + if (t == node) + return true; + if (t == null) + return false; + t = t.prev; + } + } + + /** + * Transfers a node from a condition queue onto sync queue. + * Returns true if successful. + * @param node the node + * @return true if successfully transferred (else the node was + * cancelled before signal). + */ + final boolean transferForSignal(Node node) { + /* + * If cannot change waitStatus, the node has been cancelled. + */ + if (!compareAndSetWaitStatus(node, Node.CONDITION, 0)) + return false; + + /* + * Splice onto queue and try to set waitStatus of predecessor to + * indicate that thread is (probably) waiting. If cancelled or + * attempt to set waitStatus fails, wake up to resync (in which + * case the waitStatus can be transiently and harmlessly wrong). + */ + Node p = enq(node); + int c = p.waitStatus; + if (c > 0 || !compareAndSetWaitStatus(p, c, Node.SIGNAL)) + LockSupport.unpark(node.thread); + return true; + } + + /** + * Transfers node, if necessary, to sync queue after a cancelled + * wait. Returns true if thread was cancelled before being + * signalled. + * @param current the waiting thread + * @param node its node + * @return true if cancelled before the node was signalled. + */ + final boolean transferAfterCancelledWait(Node node) { + if (compareAndSetWaitStatus(node, Node.CONDITION, 0)) { + enq(node); + return true; + } + /* + * If we lost out to a signal(), then we can't proceed + * until it finishes its enq(). Cancelling during an + * incomplete transfer is both rare and transient, so just + * spin. + */ + while (!isOnSyncQueue(node)) + Thread.yield(); + return false; + } + + /** + * Invokes release with current state value; returns saved state. + * Cancels node and throws exception on failure. + * @param node the condition node for this wait + * @return previous sync state + */ + final int fullyRelease(Node node) { + try { + int savedState = getState(); + if (release(savedState)) + return savedState; + } catch (RuntimeException ex) { + node.waitStatus = Node.CANCELLED; + throw ex; + } + // reach here if release fails + node.waitStatus = Node.CANCELLED; + throw new IllegalMonitorStateException(); + } + + // Instrumentation methods for conditions + + /** + * Queries whether the given ConditionObject + * uses this synchronizer as its lock. + * + * @param condition the condition + * @return true if owned + * @throws NullPointerException if the condition is null + */ + public final boolean owns(ConditionObject condition) { + if (condition == null) + throw new NullPointerException(); + return condition.isOwnedBy(this); + } + + /** + * Queries whether any threads are waiting on the given condition + * associated with this synchronizer. Note that because timeouts + * and interrupts may occur at any time, a true return + * does not guarantee that a future signal will awaken + * any threads. This method is designed primarily for use in + * monitoring of the system state. + * + * @param condition the condition + * @return true if there are any waiting threads + * @throws IllegalMonitorStateException if exclusive synchronization + * is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this synchronizer + * @throws NullPointerException if the condition is null + */ + public final boolean hasWaiters(ConditionObject condition) { + if (!owns(condition)) + throw new IllegalArgumentException("Not owner"); + return condition.hasWaiters(); + } + + /** + * Returns an estimate of the number of threads waiting on the + * given condition associated with this synchronizer. Note that + * because timeouts and interrupts may occur at any time, the + * estimate serves only as an upper bound on the actual number of + * waiters. This method is designed for use in monitoring of the + * system state, not for synchronization control. + * + * @param condition the condition + * @return the estimated number of waiting threads + * @throws IllegalMonitorStateException if exclusive synchronization + * is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this synchronizer + * @throws NullPointerException if the condition is null + */ + public final int getWaitQueueLength(ConditionObject condition) { + if (!owns(condition)) + throw new IllegalArgumentException("Not owner"); + return condition.getWaitQueueLength(); + } + + /** + * Returns a collection containing those threads that may be + * waiting on the given condition associated with this + * synchronizer. Because the actual set of threads may change + * dynamically while constructing this result, the returned + * collection is only a best-effort estimate. The elements of the + * returned collection are in no particular order. + * + * @param condition the condition + * @return the collection of threads + * @throws IllegalMonitorStateException if exclusive synchronization + * is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this synchronizer + * @throws NullPointerException if the condition is null + */ + public final Collection getWaitingThreads(ConditionObject condition) { + if (!owns(condition)) + throw new IllegalArgumentException("Not owner"); + return condition.getWaitingThreads(); + } + + /** + * Condition implementation for a {@link + * AbstractQueuedSynchronizer} serving as the basis of a {@link + * Lock} implementation. + * + *

Method documentation for this class describes mechanics, + * not behavioral specifications from the point of view of Lock + * and Condition users. Exported versions of this class will in + * general need to be accompanied by documentation describing + * condition semantics that rely on those of the associated + * AbstractQueuedSynchronizer. + * + *

This class is Serializable, but all fields are transient, + * so deserialized conditions have no waiters. + */ + public class ConditionObject implements Condition, java.io.Serializable { + private static final long serialVersionUID = 1173984872572414699L; + /** First node of condition queue. */ + private transient Node firstWaiter; + /** Last node of condition queue. */ + private transient Node lastWaiter; + + /** + * Creates a new ConditionObject instance. + */ + public ConditionObject() { } + + // Internal methods + + /** + * Adds a new waiter to wait queue. + * @return its new wait node + */ + private Node addConditionWaiter() { + Node node = new Node(Thread.currentThread(), Node.CONDITION); + Node t = lastWaiter; + if (t == null) + firstWaiter = node; + else + t.nextWaiter = node; + lastWaiter = node; + return node; + } + + /** + * Removes and transfers nodes until hit non-cancelled one or + * null. Split out from signal in part to encourage compilers + * to inline the case of no waiters. + * @param first (non-null) the first node on condition queue + */ + private void doSignal(Node first) { + do { + if ( (firstWaiter = first.nextWaiter) == null) + lastWaiter = null; + first.nextWaiter = null; + } while (!transferForSignal(first) && + (first = firstWaiter) != null); + } + + /** + * Removes and transfers all nodes. + * @param first (non-null) the first node on condition queue + */ + private void doSignalAll(Node first) { + lastWaiter = firstWaiter = null; + do { + Node next = first.nextWaiter; + first.nextWaiter = null; + transferForSignal(first); + first = next; + } while (first != null); + } + + /** + * Returns true if given node is on this condition queue. + * Call only when holding lock. + */ + private boolean isOnConditionQueue(Node node) { + return node.next != null || node == lastWaiter; + } + + /** + * Unlinks a cancelled waiter node from condition queue. This + * is called when cancellation occurred during condition wait, + * not lock wait, and is called only after lock has been + * re-acquired by a cancelled waiter and the node is not known + * to already have been dequeued. It is needed to avoid + * garbage retention in the absence of signals. So even though + * it may require a full traversal, it comes into play only + * when timeouts or cancellations occur in the absence of + * signals. + */ + private void unlinkCancelledWaiter(Node node) { + Node t = firstWaiter; + Node trail = null; + while (t != null) { + if (t == node) { + Node next = t.nextWaiter; + if (trail == null) + firstWaiter = next; + else + trail.nextWaiter = next; + if (lastWaiter == node) + lastWaiter = trail; + break; + } + trail = t; + t = t.nextWaiter; + } + } + + // public methods + + /** + * Moves the longest-waiting thread, if one exists, from the + * wait queue for this condition to the wait queue for the + * owning lock. + * + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + public final void signal() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + Node first = firstWaiter; + if (first != null) + doSignal(first); + } + + /** + * Moves all threads from the wait queue for this condition to + * the wait queue for the owning lock. + * + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + public final void signalAll() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + Node first = firstWaiter; + if (first != null) + doSignalAll(first); + } + + /** + * Implements uninterruptible condition wait. + *

    + *
  1. Save lock state returned by {@link #getState} + *
  2. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  3. Block until signalled + *
  4. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
+ */ + public final void awaitUninterruptibly() { + Node node = addConditionWaiter(); + int savedState = fullyRelease(node); + boolean interrupted = false; + while (!isOnSyncQueue(node)) { + LockSupport.park(this); + if (Thread.interrupted()) + interrupted = true; + } + if (acquireQueued(node, savedState) || interrupted) + selfInterrupt(); + } + + /* + * For interruptible waits, we need to track whether to throw + * InterruptedException, if interrupted while blocked on + * condition, versus reinterrupt current thread, if + * interrupted while blocked waiting to re-acquire. + */ + + /** Mode meaning to reinterrupt on exit from wait */ + private static final int REINTERRUPT = 1; + /** Mode meaning to throw InterruptedException on exit from wait */ + private static final int THROW_IE = -1; + + /** + * Checks for interrupt, returning THROW_IE if interrupted + * before signalled, REINTERRUPT if after signalled, or + * 0 if not interrupted. + */ + private int checkInterruptWhileWaiting(Node node) { + return (Thread.interrupted()) ? + ((transferAfterCancelledWait(node))? THROW_IE : REINTERRUPT) : + 0; + } + + /** + * Throws InterruptedException, reinterrupts current thread, or + * does nothing, depending on mode. + */ + private void reportInterruptAfterWait(int interruptMode) + throws InterruptedException { + if (interruptMode == THROW_IE) + throw new InterruptedException(); + else if (interruptMode == REINTERRUPT) + selfInterrupt(); + } + + /** + * Implements interruptible condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled or interrupted + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw exception + *
+ */ + public final void await() throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + int savedState = fullyRelease(node); + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + LockSupport.park(this); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + } + + /** + * Implements timed condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled, interrupted, or timed out + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw InterruptedException + *
+ */ + public final long awaitNanos(long nanosTimeout) throws InterruptedException { + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + int savedState = fullyRelease(node); + long lastTime = System.nanoTime(); + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + if (nanosTimeout <= 0L) { + transferAfterCancelledWait(node); + break; + } + LockSupport.parkNanos(this, nanosTimeout); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + return nanosTimeout - (System.nanoTime() - lastTime); + } + + /** + * Implements absolute timed condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled, interrupted, or timed out + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw InterruptedException + *
  7. If timed out while blocked in step 4, return false, else true + *
+ */ + public final boolean awaitUntil(Date deadline) throws InterruptedException { + if (deadline == null) + throw new NullPointerException(); + long abstime = deadline.getTime(); + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + int savedState = fullyRelease(node); + boolean timedout = false; + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + if (System.currentTimeMillis() > abstime) { + timedout = transferAfterCancelledWait(node); + break; + } + LockSupport.parkUntil(this, abstime); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + return !timedout; + } + + /** + * Implements timed condition wait. + *
    + *
  1. If current thread is interrupted, throw InterruptedException + *
  2. Save lock state returned by {@link #getState} + *
  3. Invoke {@link #release} with + * saved state as argument, throwing + * IllegalMonitorStateException if it fails. + *
  4. Block until signalled, interrupted, or timed out + *
  5. Reacquire by invoking specialized version of + * {@link #acquire} with saved state as argument. + *
  6. If interrupted while blocked in step 4, throw InterruptedException + *
  7. If timed out while blocked in step 4, return false, else true + *
+ */ + public final boolean await(long time, TimeUnit unit) throws InterruptedException { + if (unit == null) + throw new NullPointerException(); + long nanosTimeout = unit.toNanos(time); + if (Thread.interrupted()) + throw new InterruptedException(); + Node node = addConditionWaiter(); + int savedState = fullyRelease(node); + long lastTime = System.nanoTime(); + boolean timedout = false; + int interruptMode = 0; + while (!isOnSyncQueue(node)) { + if (nanosTimeout <= 0L) { + timedout = transferAfterCancelledWait(node); + break; + } + LockSupport.parkNanos(this, nanosTimeout); + if ((interruptMode = checkInterruptWhileWaiting(node)) != 0) + break; + long now = System.nanoTime(); + nanosTimeout -= now - lastTime; + lastTime = now; + } + if (acquireQueued(node, savedState) && interruptMode != THROW_IE) + interruptMode = REINTERRUPT; + if (isOnConditionQueue(node)) + unlinkCancelledWaiter(node); + if (interruptMode != 0) + reportInterruptAfterWait(interruptMode); + return !timedout; + } + + // support for instrumentation + + /** + * Returns true if this condition was created by the given + * synchronization object. + * + * @return {@code true} if owned + */ + final boolean isOwnedBy(AbstractQueuedSynchronizer sync) { + return sync == AbstractQueuedSynchronizer.this; + } + + /** + * Queries whether any threads are waiting on this condition. + * Implements {@link AbstractQueuedSynchronizer#hasWaiters}. + * + * @return {@code true} if there are any waiting threads + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + protected final boolean hasWaiters() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + for (Node w = firstWaiter; w != null; w = w.nextWaiter) { + if (w.waitStatus == Node.CONDITION) + return true; + } + return false; + } + + /** + * Returns an estimate of the number of threads waiting on + * this condition. + * Implements {@link AbstractQueuedSynchronizer#getWaitQueueLength}. + * + * @return the estimated number of waiting threads + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + protected final int getWaitQueueLength() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + int n = 0; + for (Node w = firstWaiter; w != null; w = w.nextWaiter) { + if (w.waitStatus == Node.CONDITION) + ++n; + } + return n; + } + + /** + * Returns a collection containing those threads that may be + * waiting on this Condition. + * Implements {@link AbstractQueuedSynchronizer#getWaitingThreads}. + * + * @return the collection of threads + * @throws IllegalMonitorStateException if {@link #isHeldExclusively} + * returns {@code false} + */ + protected final Collection getWaitingThreads() { + if (!isHeldExclusively()) + throw new IllegalMonitorStateException(); + ArrayList list = new ArrayList(); + for (Node w = firstWaiter; w != null; w = w.nextWaiter) { + if (w.waitStatus == Node.CONDITION) { + Thread t = w.thread; + if (t != null) + list.add(t); + } + } + return list; + } + } + + /** + * Setup to support compareAndSet. We need to natively implement + * this here: For the sake of permitting future enhancements, we + * cannot explicitly subclass AtomicInteger, which would be + * efficient and useful otherwise. So, as the lesser of evils, we + * natively implement using hotspot intrinsics API. And while we + * are at it, we do the same for other CASable fields (which could + * otherwise be done with atomic field updaters). + */ + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long stateOffset; + private static final long headOffset; + private static final long tailOffset; + private static final long waitStatusOffset; + + static { + try { + stateOffset = unsafe.objectFieldOffset + (AbstractQueuedSynchronizer.class.getDeclaredField("state")); + headOffset = unsafe.objectFieldOffset + (AbstractQueuedSynchronizer.class.getDeclaredField("head")); + tailOffset = unsafe.objectFieldOffset + (AbstractQueuedSynchronizer.class.getDeclaredField("tail")); + waitStatusOffset = unsafe.objectFieldOffset + (Node.class.getDeclaredField("waitStatus")); + + } catch (Exception ex) { throw new Error(ex); } + } + + /** + * CAS head field. Used only by enq + */ + private final boolean compareAndSetHead(Node update) { + return unsafe.compareAndSwapObject(this, headOffset, null, update); + } + + /** + * CAS tail field. Used only by enq + */ + private final boolean compareAndSetTail(Node expect, Node update) { + return unsafe.compareAndSwapObject(this, tailOffset, expect, update); + } + + /** + * CAS waitStatus field of a node. + */ + private final static boolean compareAndSetWaitStatus(Node node, + int expect, + int update) { + return unsafe.compareAndSwapInt(node, waitStatusOffset, + expect, update); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/Condition.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/Condition.java new file mode 100644 index 00000000000..5d24128e172 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/Condition.java @@ -0,0 +1,435 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; +import java.util.concurrent.*; +import java.util.Date; + +/** + * {@code Condition} factors out the {@code Object} monitor + * methods ({@link Object#wait() wait}, {@link Object#notify notify} + * and {@link Object#notifyAll notifyAll}) into distinct objects to + * give the effect of having multiple wait-sets per object, by + * combining them with the use of arbitrary {@link Lock} implementations. + * Where a {@code Lock} replaces the use of {@code synchronized} methods + * and statements, a {@code Condition} replaces the use of the Object + * monitor methods. + * + *

Conditions (also known as condition queues or + * condition variables) provide a means for one thread to + * suspend execution (to "wait") until notified by another + * thread that some state condition may now be true. Because access + * to this shared state information occurs in different threads, it + * must be protected, so a lock of some form is associated with the + * condition. The key property that waiting for a condition provides + * is that it atomically releases the associated lock and + * suspends the current thread, just like {@code Object.wait}. + * + *

A {@code Condition} instance is intrinsically bound to a lock. + * To obtain a {@code Condition} instance for a particular {@link Lock} + * instance use its {@link Lock#newCondition newCondition()} method. + * + *

As an example, suppose we have a bounded buffer which supports + * {@code put} and {@code take} methods. If a + * {@code take} is attempted on an empty buffer, then the thread will block + * until an item becomes available; if a {@code put} is attempted on a + * full buffer, then the thread will block until a space becomes available. + * We would like to keep waiting {@code put} threads and {@code take} + * threads in separate wait-sets so that we can use the optimization of + * only notifying a single thread at a time when items or spaces become + * available in the buffer. This can be achieved using two + * {@link Condition} instances. + *

+ * class BoundedBuffer {
+ *   final Lock lock = new ReentrantLock();
+ *   final Condition notFull  = lock.newCondition(); 
+ *   final Condition notEmpty = lock.newCondition(); 
+ *
+ *   final Object[] items = new Object[100];
+ *   int putptr, takeptr, count;
+ *
+ *   public void put(Object x) throws InterruptedException {
+ *     lock.lock();
+ *     try {
+ *       while (count == items.length)
+ *         notFull.await();
+ *       items[putptr] = x;
+ *       if (++putptr == items.length) putptr = 0;
+ *       ++count;
+ *       notEmpty.signal();
+ *     } finally {
+ *       lock.unlock();
+ *     }
+ *   }
+ *
+ *   public Object take() throws InterruptedException {
+ *     lock.lock();
+ *     try {
+ *       while (count == 0)
+ *         notEmpty.await();
+ *       Object x = items[takeptr];
+ *       if (++takeptr == items.length) takeptr = 0;
+ *       --count;
+ *       notFull.signal();
+ *       return x;
+ *     } finally {
+ *       lock.unlock();
+ *     }
+ *   }
+ * }
+ * 
+ * + * (The {@link java.util.concurrent.ArrayBlockingQueue} class provides + * this functionality, so there is no reason to implement this + * sample usage class.) + * + *

A {@code Condition} implementation can provide behavior and semantics + * that is + * different from that of the {@code Object} monitor methods, such as + * guaranteed ordering for notifications, or not requiring a lock to be held + * when performing notifications. + * If an implementation provides such specialized semantics then the + * implementation must document those semantics. + * + *

Note that {@code Condition} instances are just normal objects and can + * themselves be used as the target in a {@code synchronized} statement, + * and can have their own monitor {@link Object#wait wait} and + * {@link Object#notify notification} methods invoked. + * Acquiring the monitor lock of a {@code Condition} instance, or using its + * monitor methods, has no specified relationship with acquiring the + * {@link Lock} associated with that {@code Condition} or the use of its + * {@linkplain #await waiting} and {@linkplain #signal signalling} methods. + * It is recommended that to avoid confusion you never use {@code Condition} + * instances in this way, except perhaps within their own implementation. + * + *

Except where noted, passing a {@code null} value for any parameter + * will result in a {@link NullPointerException} being thrown. + * + *

Implementation Considerations

+ * + *

When waiting upon a {@code Condition}, a "spurious + * wakeup" is permitted to occur, in + * general, as a concession to the underlying platform semantics. + * This has little practical impact on most application programs as a + * {@code Condition} should always be waited upon in a loop, testing + * the state predicate that is being waited for. An implementation is + * free to remove the possibility of spurious wakeups but it is + * recommended that applications programmers always assume that they can + * occur and so always wait in a loop. + * + *

The three forms of condition waiting + * (interruptible, non-interruptible, and timed) may differ in their ease of + * implementation on some platforms and in their performance characteristics. + * In particular, it may be difficult to provide these features and maintain + * specific semantics such as ordering guarantees. + * Further, the ability to interrupt the actual suspension of the thread may + * not always be feasible to implement on all platforms. + * + *

Consequently, an implementation is not required to define exactly the + * same guarantees or semantics for all three forms of waiting, nor is it + * required to support interruption of the actual suspension of the thread. + * + *

An implementation is required to + * clearly document the semantics and guarantees provided by each of the + * waiting methods, and when an implementation does support interruption of + * thread suspension then it must obey the interruption semantics as defined + * in this interface. + * + *

As interruption generally implies cancellation, and checks for + * interruption are often infrequent, an implementation can favor responding + * to an interrupt over normal method return. This is true even if it can be + * shown that the interrupt occurred after another action may have unblocked + * the thread. An implementation should document this behavior. + * + * @since 1.5 + * @author Doug Lea + */ +public interface Condition { + + /** + * Causes the current thread to wait until it is signalled or + * {@linkplain Thread#interrupt interrupted}. + * + *

The lock associated with this {@code Condition} is atomically + * released and the current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of four things happens: + *

    + *
  • Some other thread invokes the {@link #signal} method for this + * {@code Condition} and the current thread happens to be chosen as the + * thread to be awakened; or + *
  • Some other thread invokes the {@link #signalAll} method for this + * {@code Condition}; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the + * current thread, and interruption of thread suspension is supported; or + *
  • A "spurious wakeup" occurs. + *
+ * + *

In all cases, before this method can return the current thread must + * re-acquire the lock associated with this condition. When the + * thread returns it is guaranteed to hold this lock. + * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * and interruption of thread suspension is supported, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. It is not specified, in the first + * case, whether or not the test for interruption occurs before the lock + * is released. + * + *

Implementation Considerations + * + *

The current thread is assumed to hold the lock associated with this + * {@code Condition} when this method is called. + * It is up to the implementation to determine if this is + * the case and if not, how to respond. Typically, an exception will be + * thrown (such as {@link IllegalMonitorStateException}) and the + * implementation must document that fact. + * + *

An implementation can favor responding to an interrupt over normal + * method return in response to a signal. In that case the implementation + * must ensure that the signal is redirected to another waiting thread, if + * there is one. + * + * @throws InterruptedException if the current thread is interrupted + * (and interruption of thread suspension is supported) + */ + void await() throws InterruptedException; + + /** + * Causes the current thread to wait until it is signalled. + * + *

The lock associated with this condition is atomically + * released and the current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of three things happens: + *

    + *
  • Some other thread invokes the {@link #signal} method for this + * {@code Condition} and the current thread happens to be chosen as the + * thread to be awakened; or + *
  • Some other thread invokes the {@link #signalAll} method for this + * {@code Condition}; or + *
  • A "spurious wakeup" occurs. + *
+ * + *

In all cases, before this method can return the current thread must + * re-acquire the lock associated with this condition. When the + * thread returns it is guaranteed to hold this lock. + * + *

If the current thread's interrupted status is set when it enters + * this method, or it is {@linkplain Thread#interrupt interrupted} + * while waiting, it will continue to wait until signalled. When it finally + * returns from this method its interrupted status will still + * be set. + * + *

Implementation Considerations + * + *

The current thread is assumed to hold the lock associated with this + * {@code Condition} when this method is called. + * It is up to the implementation to determine if this is + * the case and if not, how to respond. Typically, an exception will be + * thrown (such as {@link IllegalMonitorStateException}) and the + * implementation must document that fact. + */ + void awaitUninterruptibly(); + + /** + * Causes the current thread to wait until it is signalled or interrupted, + * or the specified waiting time elapses. + * + *

The lock associated with this condition is atomically + * released and the current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of five things happens: + *

    + *
  • Some other thread invokes the {@link #signal} method for this + * {@code Condition} and the current thread happens to be chosen as the + * thread to be awakened; or + *
  • Some other thread invokes the {@link #signalAll} method for this + * {@code Condition}; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the + * current thread, and interruption of thread suspension is supported; or + *
  • The specified waiting time elapses; or + *
  • A "spurious wakeup" occurs. + *
+ * + *

In all cases, before this method can return the current thread must + * re-acquire the lock associated with this condition. When the + * thread returns it is guaranteed to hold this lock. + * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * and interruption of thread suspension is supported, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. It is not specified, in the first + * case, whether or not the test for interruption occurs before the lock + * is released. + * + *

The method returns an estimate of the number of nanoseconds + * remaining to wait given the supplied {@code nanosTimeout} + * value upon return, or a value less than or equal to zero if it + * timed out. This value can be used to determine whether and how + * long to re-wait in cases where the wait returns but an awaited + * condition still does not hold. Typical uses of this method take + * the following form: + * + *

+     * synchronized boolean aMethod(long timeout, TimeUnit unit) {
+     *   long nanosTimeout = unit.toNanos(timeout);
+     *   while (!conditionBeingWaitedFor) {
+     *     if (nanosTimeout > 0)
+     *         nanosTimeout = theCondition.awaitNanos(nanosTimeout);
+     *      else
+     *        return false;
+     *   }
+     *   // ...
+     * }
+     * 
+ * + *

Design note: This method requires a nanosecond argument so + * as to avoid truncation errors in reporting remaining times. + * Such precision loss would make it difficult for programmers to + * ensure that total waiting times are not systematically shorter + * than specified when re-waits occur. + * + *

Implementation Considerations + * + *

The current thread is assumed to hold the lock associated with this + * {@code Condition} when this method is called. + * It is up to the implementation to determine if this is + * the case and if not, how to respond. Typically, an exception will be + * thrown (such as {@link IllegalMonitorStateException}) and the + * implementation must document that fact. + * + *

An implementation can favor responding to an interrupt over normal + * method return in response to a signal, or over indicating the elapse + * of the specified waiting time. In either case the implementation + * must ensure that the signal is redirected to another waiting thread, if + * there is one. + * + * @param nanosTimeout the maximum time to wait, in nanoseconds + * @return an estimate of the {@code nanosTimeout} value minus + * the time spent waiting upon return from this method. + * A positive value may be used as the argument to a + * subsequent call to this method to finish waiting out + * the desired time. A value less than or equal to zero + * indicates that no time remains. + * @throws InterruptedException if the current thread is interrupted + * (and interruption of thread suspension is supported) + */ + long awaitNanos(long nanosTimeout) throws InterruptedException; + + /** + * Causes the current thread to wait until it is signalled or interrupted, + * or the specified waiting time elapses. This method is behaviorally + * equivalent to:
+ *

+     *   awaitNanos(unit.toNanos(time)) > 0
+     * 
+ * @param time the maximum time to wait + * @param unit the time unit of the {@code time} argument + * @return {@code false} if the waiting time detectably elapsed + * before return from the method, else {@code true} + * @throws InterruptedException if the current thread is interrupted + * (and interruption of thread suspension is supported) + */ + boolean await(long time, TimeUnit unit) throws InterruptedException; + + /** + * Causes the current thread to wait until it is signalled or interrupted, + * or the specified deadline elapses. + * + *

The lock associated with this condition is atomically + * released and the current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of five things happens: + *

    + *
  • Some other thread invokes the {@link #signal} method for this + * {@code Condition} and the current thread happens to be chosen as the + * thread to be awakened; or + *
  • Some other thread invokes the {@link #signalAll} method for this + * {@code Condition}; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the + * current thread, and interruption of thread suspension is supported; or + *
  • The specified deadline elapses; or + *
  • A "spurious wakeup" occurs. + *
+ * + *

In all cases, before this method can return the current thread must + * re-acquire the lock associated with this condition. When the + * thread returns it is guaranteed to hold this lock. + * + * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while waiting + * and interruption of thread suspension is supported, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. It is not specified, in the first + * case, whether or not the test for interruption occurs before the lock + * is released. + * + * + *

The return value indicates whether the deadline has elapsed, + * which can be used as follows: + *

+     * synchronized boolean aMethod(Date deadline) {
+     *   boolean stillWaiting = true;
+     *   while (!conditionBeingWaitedFor) {
+     *     if (stillWaiting)
+     *         stillWaiting = theCondition.awaitUntil(deadline);
+     *      else
+     *        return false;
+     *   }
+     *   // ...
+     * }
+     * 
+ * + *

Implementation Considerations + * + *

The current thread is assumed to hold the lock associated with this + * {@code Condition} when this method is called. + * It is up to the implementation to determine if this is + * the case and if not, how to respond. Typically, an exception will be + * thrown (such as {@link IllegalMonitorStateException}) and the + * implementation must document that fact. + * + *

An implementation can favor responding to an interrupt over normal + * method return in response to a signal, or over indicating the passing + * of the specified deadline. In either case the implementation + * must ensure that the signal is redirected to another waiting thread, if + * there is one. + * + * @param deadline the absolute time to wait until + * @return {@code false} if the deadline has elapsed upon return, else + * {@code true} + * @throws InterruptedException if the current thread is interrupted + * (and interruption of thread suspension is supported) + */ + boolean awaitUntil(Date deadline) throws InterruptedException; + + /** + * Wakes up one waiting thread. + * + *

If any threads are waiting on this condition then one + * is selected for waking up. That thread must then re-acquire the + * lock before returning from {@code await}. + */ + void signal(); + + /** + * Wakes up all waiting threads. + * + *

If any threads are waiting on this condition then they are + * all woken up. Each thread must re-acquire the lock before it can + * return from {@code await}. + */ + void signalAll(); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/Lock.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/Lock.java new file mode 100644 index 00000000000..4b9abd66543 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/Lock.java @@ -0,0 +1,327 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; +import java.util.concurrent.TimeUnit; + +/** + * {@code Lock} implementations provide more extensive locking + * operations than can be obtained using {@code synchronized} methods + * and statements. They allow more flexible structuring, may have + * quite different properties, and may support multiple associated + * {@link Condition} objects. + * + *

A lock is a tool for controlling access to a shared resource by + * multiple threads. Commonly, a lock provides exclusive access to a + * shared resource: only one thread at a time can acquire the lock and + * all access to the shared resource requires that the lock be + * acquired first. However, some locks may allow concurrent access to + * a shared resource, such as the read lock of a {@link ReadWriteLock}. + * + *

The use of {@code synchronized} methods or statements provides + * access to the implicit monitor lock associated with every object, but + * forces all lock acquisition and release to occur in a block-structured way: + * when multiple locks are acquired they must be released in the opposite + * order, and all locks must be released in the same lexical scope in which + * they were acquired. + * + *

While the scoping mechanism for {@code synchronized} methods + * and statements makes it much easier to program with monitor locks, + * and helps avoid many common programming errors involving locks, + * there are occasions where you need to work with locks in a more + * flexible way. For example, some algorithms for traversing + * concurrently accessed data structures require the use of + * "hand-over-hand" or "chain locking": you + * acquire the lock of node A, then node B, then release A and acquire + * C, then release B and acquire D and so on. Implementations of the + * {@code Lock} interface enable the use of such techniques by + * allowing a lock to be acquired and released in different scopes, + * and allowing multiple locks to be acquired and released in any + * order. + * + *

With this increased flexibility comes additional + * responsibility. The absence of block-structured locking removes the + * automatic release of locks that occurs with {@code synchronized} + * methods and statements. In most cases, the following idiom + * should be used: + * + *

     Lock l = ...;
+ *     l.lock();
+ *     try {
+ *         // access the resource protected by this lock
+ *     } finally {
+ *         l.unlock();
+ *     }
+ * 
+ * + * When locking and unlocking occur in different scopes, care must be + * taken to ensure that all code that is executed while the lock is + * held is protected by try-finally or try-catch to ensure that the + * lock is released when necessary. + * + *

{@code Lock} implementations provide additional functionality + * over the use of {@code synchronized} methods and statements by + * providing a non-blocking attempt to acquire a lock ({@link + * #tryLock()}), an attempt to acquire the lock that can be + * interrupted ({@link #lockInterruptibly}, and an attempt to acquire + * the lock that can timeout ({@link #tryLock(long, TimeUnit)}). + * + *

A {@code Lock} class can also provide behavior and semantics + * that is quite different from that of the implicit monitor lock, + * such as guaranteed ordering, non-reentrant usage, or deadlock + * detection. If an implementation provides such specialized semantics + * then the implementation must document those semantics. + * + *

Note that {@code Lock} instances are just normal objects and can + * themselves be used as the target in a {@code synchronized} statement. + * Acquiring the + * monitor lock of a {@code Lock} instance has no specified relationship + * with invoking any of the {@link #lock} methods of that instance. + * It is recommended that to avoid confusion you never use {@code Lock} + * instances in this way, except within their own implementation. + * + *

Except where noted, passing a {@code null} value for any + * parameter will result in a {@link NullPointerException} being + * thrown. + * + *

Memory Synchronization

+ * + *

All {@code Lock} implementations must enforce the same + * memory synchronization semantics as provided by the built-in monitor + * lock, as described in + * The Java Language Specification, Third Edition (17.4 Memory Model): + *

    + *
  • A successful {@code lock} operation has the same memory + * synchronization effects as a successful Lock action. + *
  • A successful {@code unlock} operation has the same + * memory synchronization effects as a successful Unlock action. + *
+ * + * Unsuccessful locking and unlocking operations, and reentrant + * locking/unlocking operations, do not require any memory + * synchronization effects. + * + *

Implementation Considerations

+ * + *

The three forms of lock acquisition (interruptible, + * non-interruptible, and timed) may differ in their performance + * characteristics, ordering guarantees, or other implementation + * qualities. Further, the ability to interrupt the ongoing + * acquisition of a lock may not be available in a given {@code Lock} + * class. Consequently, an implementation is not required to define + * exactly the same guarantees or semantics for all three forms of + * lock acquisition, nor is it required to support interruption of an + * ongoing lock acquisition. An implementation is required to clearly + * document the semantics and guarantees provided by each of the + * locking methods. It must also obey the interruption semantics as + * defined in this interface, to the extent that interruption of lock + * acquisition is supported: which is either totally, or only on + * method entry. + * + *

As interruption generally implies cancellation, and checks for + * interruption are often infrequent, an implementation can favor responding + * to an interrupt over normal method return. This is true even if it can be + * shown that the interrupt occurred after another action may have unblocked + * the thread. An implementation should document this behavior. + * + * @see ReentrantLock + * @see Condition + * @see ReadWriteLock + * + * @since 1.5 + * @author Doug Lea + */ +public interface Lock { + + /** + * Acquires the lock. + * + *

If the lock is not available then the current thread becomes + * disabled for thread scheduling purposes and lies dormant until the + * lock has been acquired. + * + *

Implementation Considerations + * + *

A {@code Lock} implementation may be able to detect erroneous use + * of the lock, such as an invocation that would cause deadlock, and + * may throw an (unchecked) exception in such circumstances. The + * circumstances and the exception type must be documented by that + * {@code Lock} implementation. + */ + void lock(); + + /** + * Acquires the lock unless the current thread is + * {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the lock if it is available and returns immediately. + * + *

If the lock is not available then the current thread becomes + * disabled for thread scheduling purposes and lies dormant until + * one of two things happens: + * + *

    + *
  • The lock is acquired by the current thread; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the + * current thread, and interruption of lock acquisition is supported. + *
+ * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while acquiring the + * lock, and interruption of lock acquisition is supported, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

Implementation Considerations + * + *

The ability to interrupt a lock acquisition in some + * implementations may not be possible, and if possible may be an + * expensive operation. The programmer should be aware that this + * may be the case. An implementation should document when this is + * the case. + * + *

An implementation can favor responding to an interrupt over + * normal method return. + * + *

A {@code Lock} implementation may be able to detect + * erroneous use of the lock, such as an invocation that would + * cause deadlock, and may throw an (unchecked) exception in such + * circumstances. The circumstances and the exception type must + * be documented by that {@code Lock} implementation. + * + * @throws InterruptedException if the current thread is + * interrupted while acquiring the lock (and interruption + * of lock acquisition is supported). + */ + void lockInterruptibly() throws InterruptedException; + + /** + * Acquires the lock only if it is free at the time of invocation. + * + *

Acquires the lock if it is available and returns immediately + * with the value {@code true}. + * If the lock is not available then this method will return + * immediately with the value {@code false}. + * + *

A typical usage idiom for this method would be: + *

+     *      Lock lock = ...;
+     *      if (lock.tryLock()) {
+     *          try {
+     *              // manipulate protected state
+     *          } finally {
+     *              lock.unlock();
+     *          }
+     *      } else {
+     *          // perform alternative actions
+     *      }
+     * 
+ * This usage ensures that the lock is unlocked if it was acquired, and + * doesn't try to unlock if the lock was not acquired. + * + * @return {@code true} if the lock was acquired and + * {@code false} otherwise + */ + boolean tryLock(); + + /** + * Acquires the lock if it is free within the given waiting time and the + * current thread has not been {@linkplain Thread#interrupt interrupted}. + * + *

If the lock is available this method returns immediately + * with the value {@code true}. + * If the lock is not available then + * the current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of three things happens: + *

    + *
  • The lock is acquired by the current thread; or + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the + * current thread, and interruption of lock acquisition is supported; or + *
  • The specified waiting time elapses + *
+ * + *

If the lock is acquired then the value {@code true} is returned. + * + *

If the current thread: + *

    + *
  • has its interrupted status set on entry to this method; or + *
  • is {@linkplain Thread#interrupt interrupted} while acquiring + * the lock, and interruption of lock acquisition is supported, + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

If the specified waiting time elapses then the value {@code false} + * is returned. + * If the time is + * less than or equal to zero, the method will not wait at all. + * + *

Implementation Considerations + * + *

The ability to interrupt a lock acquisition in some implementations + * may not be possible, and if possible may + * be an expensive operation. + * The programmer should be aware that this may be the case. An + * implementation should document when this is the case. + * + *

An implementation can favor responding to an interrupt over normal + * method return, or reporting a timeout. + * + *

A {@code Lock} implementation may be able to detect + * erroneous use of the lock, such as an invocation that would cause + * deadlock, and may throw an (unchecked) exception in such circumstances. + * The circumstances and the exception type must be documented by that + * {@code Lock} implementation. + * + * @param time the maximum time to wait for the lock + * @param unit the time unit of the {@code time} argument + * @return {@code true} if the lock was acquired and {@code false} + * if the waiting time elapsed before the lock was acquired + * + * @throws InterruptedException if the current thread is interrupted + * while acquiring the lock (and interruption of lock + * acquisition is supported) + */ + boolean tryLock(long time, TimeUnit unit) throws InterruptedException; + + /** + * Releases the lock. + * + *

Implementation Considerations + * + *

A {@code Lock} implementation will usually impose + * restrictions on which thread can release a lock (typically only the + * holder of the lock can release it) and may throw + * an (unchecked) exception if the restriction is violated. + * Any restrictions and the exception + * type must be documented by that {@code Lock} implementation. + */ + void unlock(); + + /** + * Returns a new {@link Condition} instance that is bound to this + * {@code Lock} instance. + * + *

Before waiting on the condition the lock must be held by the + * current thread. + * A call to {@link Condition#await()} will atomically release the lock + * before waiting and re-acquire the lock before the wait returns. + * + *

Implementation Considerations + * + *

The exact operation of the {@link Condition} instance depends on + * the {@code Lock} implementation and must be documented by that + * implementation. + * + * @return A new {@link Condition} instance for this {@code Lock} instance + * @throws UnsupportedOperationException if this {@code Lock} + * implementation does not support conditions + */ + Condition newCondition(); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/LockSupport.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/LockSupport.java new file mode 100644 index 00000000000..28728ae2bba --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/LockSupport.java @@ -0,0 +1,352 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; +import java.util.concurrent.*; +import sun.misc.Unsafe; + + +/** + * Basic thread blocking primitives for creating locks and other + * synchronization classes. + * + *

This class associates, with each thread that uses it, a permit + * (in the sense of the {@link java.util.concurrent.Semaphore + * Semaphore} class). A call to {@code park} will return immediately + * if the permit is available, consuming it in the process; otherwise + * it may block. A call to {@code unpark} makes the permit + * available, if it was not already available. (Unlike with Semaphores + * though, permits do not accumulate. There is at most one.) + * + *

Methods {@code park} and {@code unpark} provide efficient + * means of blocking and unblocking threads that do not encounter the + * problems that cause the deprecated methods {@code Thread.suspend} + * and {@code Thread.resume} to be unusable for such purposes: Races + * between one thread invoking {@code park} and another thread trying + * to {@code unpark} it will preserve liveness, due to the + * permit. Additionally, {@code park} will return if the caller's + * thread was interrupted, and timeout versions are supported. The + * {@code park} method may also return at any other time, for "no + * reason", so in general must be invoked within a loop that rechecks + * conditions upon return. In this sense {@code park} serves as an + * optimization of a "busy wait" that does not waste as much time + * spinning, but must be paired with an {@code unpark} to be + * effective. + * + *

The three forms of {@code park} each also support a + * {@code blocker} object parameter. This object is recorded while + * the thread is blocked to permit monitoring and diagnostic tools to + * identify the reasons that threads are blocked. (Such tools may + * access blockers using method {@link #getBlocker}.) The use of these + * forms rather than the original forms without this parameter is + * strongly encouraged. The normal argument to supply as a + * {@code blocker} within a lock implementation is {@code this}. + * + *

These methods are designed to be used as tools for creating + * higher-level synchronization utilities, and are not in themselves + * useful for most concurrency control applications. The {@code park} + * method is designed for use only in constructions of the form: + *

while (!canProceed()) { ... LockSupport.park(this); }
+ * where neither {@code canProceed} nor any other actions prior to the + * call to {@code park} entail locking or blocking. Because only one + * permit is associated with each thread, any intermediary uses of + * {@code park} could interfere with its intended effects. + * + *

Sample Usage. Here is a sketch of a first-in-first-out + * non-reentrant lock class: + *

{@code
+ * class FIFOMutex {
+ *   private final AtomicBoolean locked = new AtomicBoolean(false);
+ *   private final Queue waiters
+ *     = new ConcurrentLinkedQueue();
+ *
+ *   public void lock() {
+ *     boolean wasInterrupted = false;
+ *     Thread current = Thread.currentThread();
+ *     waiters.add(current);
+ *
+ *     // Block while not first in queue or cannot acquire lock
+ *     while (waiters.peek() != current ||
+ *            !locked.compareAndSet(false, true)) {
+ *        LockSupport.park(this);
+ *        if (Thread.interrupted()) // ignore interrupts while waiting
+ *          wasInterrupted = true;
+ *     }
+ *
+ *     waiters.remove();
+ *     if (wasInterrupted)          // reassert interrupt status on exit
+ *        current.interrupt();
+ *   }
+ *
+ *   public void unlock() {
+ *     locked.set(false);
+ *     LockSupport.unpark(waiters.peek());
+ *   }
+ * }}
+ */ + +public class LockSupport { + private LockSupport() {} // Cannot be instantiated. + + // Hotspot implementation via intrinsics API + private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final long parkBlockerOffset; + + static { + try { + parkBlockerOffset = unsafe.objectFieldOffset + (java.lang.Thread.class.getDeclaredField("parkBlocker")); + } catch (Exception ex) { throw new Error(ex); } + } + + private static void setBlocker(Thread t, Object arg) { + // Even though volatile, hotspot doesn't need a write barrier here. + unsafe.putObject(t, parkBlockerOffset, arg); + } + + /** + * Makes available the permit for the given thread, if it + * was not already available. If the thread was blocked on + * {@code park} then it will unblock. Otherwise, its next call + * to {@code park} is guaranteed not to block. This operation + * is not guaranteed to have any effect at all if the given + * thread has not been started. + * + * @param thread the thread to unpark, or {@code null}, in which case + * this operation has no effect + */ + public static void unpark(Thread thread) { + if (thread != null) + unsafe.unpark(thread); + } + + /** + * Disables the current thread for thread scheduling purposes unless the + * permit is available. + * + *

If the permit is available then it is consumed and the call returns + * immediately; otherwise + * the current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of three things happens: + * + *

    + *
  • Some other thread invokes {@link #unpark unpark} with the + * current thread as the target; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + * + *
  • The call spuriously (that is, for no reason) returns. + *
+ * + *

This method does not report which of these caused the + * method to return. Callers should re-check the conditions which caused + * the thread to park in the first place. Callers may also determine, + * for example, the interrupt status of the thread upon return. + * + * @param blocker the synchronization object responsible for this + * thread parking + * @since 1.6 + */ + public static void park(Object blocker) { + Thread t = Thread.currentThread(); + setBlocker(t, blocker); + unsafe.park(false, 0L); + setBlocker(t, null); + } + + /** + * Disables the current thread for thread scheduling purposes, for up to + * the specified waiting time, unless the permit is available. + * + *

If the permit is available then it is consumed and the call + * returns immediately; otherwise the current thread becomes disabled + * for thread scheduling purposes and lies dormant until one of four + * things happens: + * + *

    + *
  • Some other thread invokes {@link #unpark unpark} with the + * current thread as the target; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the current + * thread; or + * + *
  • The specified waiting time elapses; or + * + *
  • The call spuriously (that is, for no reason) returns. + *
+ * + *

This method does not report which of these caused the + * method to return. Callers should re-check the conditions which caused + * the thread to park in the first place. Callers may also determine, + * for example, the interrupt status of the thread, or the elapsed time + * upon return. + * + * @param blocker the synchronization object responsible for this + * thread parking + * @param nanos the maximum number of nanoseconds to wait + * @since 1.6 + */ + public static void parkNanos(Object blocker, long nanos) { + if (nanos > 0) { + Thread t = Thread.currentThread(); + setBlocker(t, blocker); + unsafe.park(false, nanos); + setBlocker(t, null); + } + } + + /** + * Disables the current thread for thread scheduling purposes, until + * the specified deadline, unless the permit is available. + * + *

If the permit is available then it is consumed and the call + * returns immediately; otherwise the current thread becomes disabled + * for thread scheduling purposes and lies dormant until one of four + * things happens: + * + *

    + *
  • Some other thread invokes {@link #unpark unpark} with the + * current thread as the target; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the + * current thread; or + * + *
  • The specified deadline passes; or + * + *
  • The call spuriously (that is, for no reason) returns. + *
+ * + *

This method does not report which of these caused the + * method to return. Callers should re-check the conditions which caused + * the thread to park in the first place. Callers may also determine, + * for example, the interrupt status of the thread, or the current time + * upon return. + * + * @param blocker the synchronization object responsible for this + * thread parking + * @param deadline the absolute time, in milliseconds from the Epoch, + * to wait until + * @since 1.6 + */ + public static void parkUntil(Object blocker, long deadline) { + Thread t = Thread.currentThread(); + setBlocker(t, blocker); + unsafe.park(true, deadline); + setBlocker(t, null); + } + + /** + * Returns the blocker object supplied to the most recent + * invocation of a park method that has not yet unblocked, or null + * if not blocked. The value returned is just a momentary + * snapshot -- the thread may have since unblocked or blocked on a + * different blocker object. + * + * @return the blocker + * @since 1.6 + */ + public static Object getBlocker(Thread t) { + return unsafe.getObjectVolatile(t, parkBlockerOffset); + } + + /** + * Disables the current thread for thread scheduling purposes unless the + * permit is available. + * + *

If the permit is available then it is consumed and the call + * returns immediately; otherwise the current thread becomes disabled + * for thread scheduling purposes and lies dormant until one of three + * things happens: + * + *

    + * + *
  • Some other thread invokes {@link #unpark unpark} with the + * current thread as the target; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + * + *
  • The call spuriously (that is, for no reason) returns. + *
+ * + *

This method does not report which of these caused the + * method to return. Callers should re-check the conditions which caused + * the thread to park in the first place. Callers may also determine, + * for example, the interrupt status of the thread upon return. + */ + public static void park() { + unsafe.park(false, 0L); + } + + /** + * Disables the current thread for thread scheduling purposes, for up to + * the specified waiting time, unless the permit is available. + * + *

If the permit is available then it is consumed and the call + * returns immediately; otherwise the current thread becomes disabled + * for thread scheduling purposes and lies dormant until one of four + * things happens: + * + *

    + *
  • Some other thread invokes {@link #unpark unpark} with the + * current thread as the target; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + * + *
  • The specified waiting time elapses; or + * + *
  • The call spuriously (that is, for no reason) returns. + *
+ * + *

This method does not report which of these caused the + * method to return. Callers should re-check the conditions which caused + * the thread to park in the first place. Callers may also determine, + * for example, the interrupt status of the thread, or the elapsed time + * upon return. + * + * @param nanos the maximum number of nanoseconds to wait + */ + public static void parkNanos(long nanos) { + if (nanos > 0) + unsafe.park(false, nanos); + } + + /** + * Disables the current thread for thread scheduling purposes, until + * the specified deadline, unless the permit is available. + * + *

If the permit is available then it is consumed and the call + * returns immediately; otherwise the current thread becomes disabled + * for thread scheduling purposes and lies dormant until one of four + * things happens: + * + *

    + *
  • Some other thread invokes {@link #unpark unpark} with the + * current thread as the target; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + * + *
  • The specified deadline passes; or + * + *
  • The call spuriously (that is, for no reason) returns. + *
+ * + *

This method does not report which of these caused the + * method to return. Callers should re-check the conditions which caused + * the thread to park in the first place. Callers may also determine, + * for example, the interrupt status of the thread, or the current time + * upon return. + * + * @param deadline the absolute time, in milliseconds from the Epoch, + * to wait until + */ + public static void parkUntil(long deadline) { + unsafe.park(true, deadline); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReadWriteLock.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReadWriteLock.java new file mode 100644 index 00000000000..484f68d1502 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReadWriteLock.java @@ -0,0 +1,104 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; + +/** + * A ReadWriteLock maintains a pair of associated {@link + * Lock locks}, one for read-only operations and one for writing. + * The {@link #readLock read lock} may be held simultaneously by + * multiple reader threads, so long as there are no writers. The + * {@link #writeLock write lock} is exclusive. + * + *

All ReadWriteLock implementations must guarantee that + * the memory synchronization effects of writeLock operations + * (as specified in the {@link Lock} interface) also hold with respect + * to the associated readLock. That is, a thread successfully + * acquiring the read lock will see all updates made upon previous + * release of the write lock. + * + *

A read-write lock allows for a greater level of concurrency in + * accessing shared data than that permitted by a mutual exclusion lock. + * It exploits the fact that while only a single thread at a time (a + * writer thread) can modify the shared data, in many cases any + * number of threads can concurrently read the data (hence reader + * threads). + * In theory, the increase in concurrency permitted by the use of a read-write + * lock will lead to performance improvements over the use of a mutual + * exclusion lock. In practice this increase in concurrency will only be fully + * realized on a multi-processor, and then only if the access patterns for + * the shared data are suitable. + * + *

Whether or not a read-write lock will improve performance over the use + * of a mutual exclusion lock depends on the frequency that the data is + * read compared to being modified, the duration of the read and write + * operations, and the contention for the data - that is, the number of + * threads that will try to read or write the data at the same time. + * For example, a collection that is initially populated with data and + * thereafter infrequently modified, while being frequently searched + * (such as a directory of some kind) is an ideal candidate for the use of + * a read-write lock. However, if updates become frequent then the data + * spends most of its time being exclusively locked and there is little, if any + * increase in concurrency. Further, if the read operations are too short + * the overhead of the read-write lock implementation (which is inherently + * more complex than a mutual exclusion lock) can dominate the execution + * cost, particularly as many read-write lock implementations still serialize + * all threads through a small section of code. Ultimately, only profiling + * and measurement will establish whether the use of a read-write lock is + * suitable for your application. + * + * + *

Although the basic operation of a read-write lock is straight-forward, + * there are many policy decisions that an implementation must make, which + * may affect the effectiveness of the read-write lock in a given application. + * Examples of these policies include: + *

    + *
  • Determining whether to grant the read lock or the write lock, when + * both readers and writers are waiting, at the time that a writer releases + * the write lock. Writer preference is common, as writes are expected to be + * short and infrequent. Reader preference is less common as it can lead to + * lengthy delays for a write if the readers are frequent and long-lived as + * expected. Fair, or "in-order" implementations are also possible. + * + *
  • Determining whether readers that request the read lock while a + * reader is active and a writer is waiting, are granted the read lock. + * Preference to the reader can delay the writer indefinitely, while + * preference to the writer can reduce the potential for concurrency. + * + *
  • Determining whether the locks are reentrant: can a thread with the + * write lock reacquire it? Can it acquire a read lock while holding the + * write lock? Is the read lock itself reentrant? + * + *
  • Can the write lock be downgraded to a read lock without allowing + * an intervening writer? Can a read lock be upgraded to a write lock, + * in preference to other waiting readers or writers? + * + *
+ * You should consider all of these things when evaluating the suitability + * of a given implementation for your application. + * + * @see ReentrantReadWriteLock + * @see Lock + * @see ReentrantLock + * + * @since 1.5 + * @author Doug Lea + */ +public interface ReadWriteLock { + /** + * Returns the lock used for reading. + * + * @return the lock used for reading. + */ + Lock readLock(); + + /** + * Returns the lock used for writing. + * + * @return the lock used for writing. + */ + Lock writeLock(); +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantLock.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantLock.java new file mode 100644 index 00000000000..4a2fc175c17 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantLock.java @@ -0,0 +1,740 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.*; + +/** + * A reentrant mutual exclusion {@link Lock} with the same basic + * behavior and semantics as the implicit monitor lock accessed using + * {@code synchronized} methods and statements, but with extended + * capabilities. + * + *

A {@code ReentrantLock} is owned by the thread last + * successfully locking, but not yet unlocking it. A thread invoking + * {@code lock} will return, successfully acquiring the lock, when + * the lock is not owned by another thread. The method will return + * immediately if the current thread already owns the lock. This can + * be checked using methods {@link #isHeldByCurrentThread}, and {@link + * #getHoldCount}. + * + *

The constructor for this class accepts an optional + * fairness parameter. When set {@code true}, under + * contention, locks favor granting access to the longest-waiting + * thread. Otherwise this lock does not guarantee any particular + * access order. Programs using fair locks accessed by many threads + * may display lower overall throughput (i.e., are slower; often much + * slower) than those using the default setting, but have smaller + * variances in times to obtain locks and guarantee lack of + * starvation. Note however, that fairness of locks does not guarantee + * fairness of thread scheduling. Thus, one of many threads using a + * fair lock may obtain it multiple times in succession while other + * active threads are not progressing and not currently holding the + * lock. + * Also note that the untimed {@link #tryLock() tryLock} method does not + * honor the fairness setting. It will succeed if the lock + * is available even if other threads are waiting. + * + *

It is recommended practice to always immediately + * follow a call to {@code lock} with a {@code try} block, most + * typically in a before/after construction such as: + * + *

+ * class X {
+ *   private final ReentrantLock lock = new ReentrantLock();
+ *   // ...
+ *
+ *   public void m() {
+ *     lock.lock();  // block until condition holds
+ *     try {
+ *       // ... method body
+ *     } finally {
+ *       lock.unlock()
+ *     }
+ *   }
+ * }
+ * 
+ * + *

In addition to implementing the {@link Lock} interface, this + * class defines methods {@code isLocked} and + * {@code getLockQueueLength}, as well as some associated + * {@code protected} access methods that may be useful for + * instrumentation and monitoring. + * + *

Serialization of this class behaves in the same way as built-in + * locks: a deserialized lock is in the unlocked state, regardless of + * its state when serialized. + * + *

This lock supports a maximum of 2147483647 recursive locks by + * the same thread. Attempts to exceed this limit result in + * {@link Error} throws from locking methods. + * + * @since 1.5 + * @author Doug Lea + */ +public class ReentrantLock implements Lock, java.io.Serializable { + private static final long serialVersionUID = 7373984872572414699L; + /** Synchronizer providing all implementation mechanics */ + private final Sync sync; + + /** + * Base of synchronization control for this lock. Subclassed + * into fair and nonfair versions below. Uses AQS state to + * represent the number of holds on the lock. + */ + static abstract class Sync extends AbstractQueuedSynchronizer { + private static final long serialVersionUID = -5179523762034025860L; + + /** + * Performs {@link Lock#lock}. The main reason for subclassing + * is to allow fast path for nonfair version. + */ + abstract void lock(); + + /** + * Performs non-fair tryLock. tryAcquire is + * implemented in subclasses, but both need nonfair + * try for trylock method. + */ + final boolean nonfairTryAcquire(int acquires) { + final Thread current = Thread.currentThread(); + int c = getState(); + if (c == 0) { + if (compareAndSetState(0, acquires)) { + setExclusiveOwnerThread(current); + return true; + } + } + else if (current == getExclusiveOwnerThread()) { + int nextc = c + acquires; + if (nextc < 0) // overflow + throw new Error("Maximum lock count exceeded"); + setState(nextc); + return true; + } + return false; + } + + protected final boolean tryRelease(int releases) { + int c = getState() - releases; + if (Thread.currentThread() != getExclusiveOwnerThread()) + throw new IllegalMonitorStateException(); + boolean free = false; + if (c == 0) { + free = true; + setExclusiveOwnerThread(null); + } + setState(c); + return free; + } + + protected final boolean isHeldExclusively() { + // While we must in general read state before owner, + // we don't need to do so to check if current thread is owner + return getExclusiveOwnerThread() == Thread.currentThread(); + } + + final ConditionObject newCondition() { + return new ConditionObject(); + } + + // Methods relayed from outer class + + final Thread getOwner() { + return getState() == 0 ? null : getExclusiveOwnerThread(); + } + + final int getHoldCount() { + return isHeldExclusively() ? getState() : 0; + } + + final boolean isLocked() { + return getState() != 0; + } + + /** + * Reconstitutes this lock instance from a stream. + * @param s the stream + */ + private void readObject(java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + s.defaultReadObject(); + setState(0); // reset to unlocked state + } + } + + /** + * Sync object for non-fair locks + */ + final static class NonfairSync extends Sync { + private static final long serialVersionUID = 7316153563782823691L; + + /** + * Performs lock. Try immediate barge, backing up to normal + * acquire on failure. + */ + final void lock() { + if (compareAndSetState(0, 1)) + setExclusiveOwnerThread(Thread.currentThread()); + else + acquire(1); + } + + protected final boolean tryAcquire(int acquires) { + return nonfairTryAcquire(acquires); + } + } + + /** + * Sync object for fair locks + */ + final static class FairSync extends Sync { + private static final long serialVersionUID = -3000897897090466540L; + + final void lock() { + acquire(1); + } + + /** + * Fair version of tryAcquire. Don't grant access unless + * recursive call or no waiters or is first. + */ + protected final boolean tryAcquire(int acquires) { + final Thread current = Thread.currentThread(); + int c = getState(); + if (c == 0) { + if (isFirst(current) && + compareAndSetState(0, acquires)) { + setExclusiveOwnerThread(current); + return true; + } + } + else if (current == getExclusiveOwnerThread()) { + int nextc = c + acquires; + if (nextc < 0) + throw new Error("Maximum lock count exceeded"); + setState(nextc); + return true; + } + return false; + } + } + + /** + * Creates an instance of {@code ReentrantLock}. + * This is equivalent to using {@code ReentrantLock(false)}. + */ + public ReentrantLock() { + sync = new NonfairSync(); + } + + /** + * Creates an instance of {@code ReentrantLock} with the + * given fairness policy. + * + * @param fair {@code true} if this lock should use a fair ordering policy + */ + public ReentrantLock(boolean fair) { + sync = (fair)? new FairSync() : new NonfairSync(); + } + + /** + * Acquires the lock. + * + *

Acquires the lock if it is not held by another thread and returns + * immediately, setting the lock hold count to one. + * + *

If the current thread already holds the lock then the hold + * count is incremented by one and the method returns immediately. + * + *

If the lock is held by another thread then the + * current thread becomes disabled for thread scheduling + * purposes and lies dormant until the lock has been acquired, + * at which time the lock hold count is set to one. + */ + public void lock() { + sync.lock(); + } + + /** + * Acquires the lock unless the current thread is + * {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the lock if it is not held by another thread and returns + * immediately, setting the lock hold count to one. + * + *

If the current thread already holds this lock then the hold count + * is incremented by one and the method returns immediately. + * + *

If the lock is held by another thread then the + * current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of two things happens: + * + *

    + * + *
  • The lock is acquired by the current thread; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} the + * current thread. + * + *
+ * + *

If the lock is acquired by the current thread then the lock hold + * count is set to one. + * + *

If the current thread: + * + *

    + * + *
  • has its interrupted status set on entry to this method; or + * + *
  • is {@linkplain Thread#interrupt interrupted} while acquiring + * the lock, + * + *
+ * + * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

In this implementation, as this method is an explicit + * interruption point, preference is given to responding to the + * interrupt over normal or reentrant acquisition of the lock. + * + * @throws InterruptedException if the current thread is interrupted + */ + public void lockInterruptibly() throws InterruptedException { + sync.acquireInterruptibly(1); + } + + /** + * Acquires the lock only if it is not held by another thread at the time + * of invocation. + * + *

Acquires the lock if it is not held by another thread and + * returns immediately with the value {@code true}, setting the + * lock hold count to one. Even when this lock has been set to use a + * fair ordering policy, a call to {@code tryLock()} will + * immediately acquire the lock if it is available, whether or not + * other threads are currently waiting for the lock. + * This "barging" behavior can be useful in certain + * circumstances, even though it breaks fairness. If you want to honor + * the fairness setting for this lock, then use + * {@link #tryLock(long, TimeUnit) tryLock(0, TimeUnit.SECONDS) } + * which is almost equivalent (it also detects interruption). + * + *

If the current thread already holds this lock then the hold + * count is incremented by one and the method returns {@code true}. + * + *

If the lock is held by another thread then this method will return + * immediately with the value {@code false}. + * + * @return {@code true} if the lock was free and was acquired by the + * current thread, or the lock was already held by the current + * thread; and {@code false} otherwise + */ + public boolean tryLock() { + return sync.nonfairTryAcquire(1); + } + + /** + * Acquires the lock if it is not held by another thread within the given + * waiting time and the current thread has not been + * {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the lock if it is not held by another thread and returns + * immediately with the value {@code true}, setting the lock hold count + * to one. If this lock has been set to use a fair ordering policy then + * an available lock will not be acquired if any other threads + * are waiting for the lock. This is in contrast to the {@link #tryLock()} + * method. If you want a timed {@code tryLock} that does permit barging on + * a fair lock then combine the timed and un-timed forms together: + * + *

if (lock.tryLock() || lock.tryLock(timeout, unit) ) { ... }
+     * 
+ * + *

If the current thread + * already holds this lock then the hold count is incremented by one and + * the method returns {@code true}. + * + *

If the lock is held by another thread then the + * current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of three things happens: + * + *

    + * + *
  • The lock is acquired by the current thread; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + * + *
  • The specified waiting time elapses + * + *
+ * + *

If the lock is acquired then the value {@code true} is returned and + * the lock hold count is set to one. + * + *

If the current thread: + * + *

    + * + *
  • has its interrupted status set on entry to this method; or + * + *
  • is {@linkplain Thread#interrupt interrupted} while + * acquiring the lock, + * + *
+ * then {@link InterruptedException} is thrown and the current thread's + * interrupted status is cleared. + * + *

If the specified waiting time elapses then the value {@code false} + * is returned. If the time is less than or equal to zero, the method + * will not wait at all. + * + *

In this implementation, as this method is an explicit + * interruption point, preference is given to responding to the + * interrupt over normal or reentrant acquisition of the lock, and + * over reporting the elapse of the waiting time. + * + * @param timeout the time to wait for the lock + * @param unit the time unit of the timeout argument + * @return {@code true} if the lock was free and was acquired by the + * current thread, or the lock was already held by the current + * thread; and {@code false} if the waiting time elapsed before + * the lock could be acquired + * @throws InterruptedException if the current thread is interrupted + * @throws NullPointerException if the time unit is null + * + */ + public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException { + return sync.tryAcquireNanos(1, unit.toNanos(timeout)); + } + + /** + * Attempts to release this lock. + * + *

If the current thread is the holder of this lock then the hold + * count is decremented. If the hold count is now zero then the lock + * is released. If the current thread is not the holder of this + * lock then {@link IllegalMonitorStateException} is thrown. + * + * @throws IllegalMonitorStateException if the current thread does not + * hold this lock + */ + public void unlock() { + sync.release(1); + } + + /** + * Returns a {@link Condition} instance for use with this + * {@link Lock} instance. + * + *

The returned {@link Condition} instance supports the same + * usages as do the {@link Object} monitor methods ({@link + * Object#wait() wait}, {@link Object#notify notify}, and {@link + * Object#notifyAll notifyAll}) when used with the built-in + * monitor lock. + * + *

    + * + *
  • If this lock is not held when any of the {@link Condition} + * {@linkplain Condition#await() waiting} or {@linkplain + * Condition#signal signalling} methods are called, then an {@link + * IllegalMonitorStateException} is thrown. + * + *
  • When the condition {@linkplain Condition#await() waiting} + * methods are called the lock is released and, before they + * return, the lock is reacquired and the lock hold count restored + * to what it was when the method was called. + * + *
  • If a thread is {@linkplain Thread#interrupt interrupted} + * while waiting then the wait will terminate, an {@link + * InterruptedException} will be thrown, and the thread's + * interrupted status will be cleared. + * + *
  • Waiting threads are signalled in FIFO order. + * + *
  • The ordering of lock reacquisition for threads returning + * from waiting methods is the same as for threads initially + * acquiring the lock, which is in the default case not specified, + * but for fair locks favors those threads that have been + * waiting the longest. + * + *
+ * + * @return the Condition object + */ + public Condition newCondition() { + return sync.newCondition(); + } + + /** + * Queries the number of holds on this lock by the current thread. + * + *

A thread has a hold on a lock for each lock action that is not + * matched by an unlock action. + * + *

The hold count information is typically only used for testing and + * debugging purposes. For example, if a certain section of code should + * not be entered with the lock already held then we can assert that + * fact: + * + *

+     * class X {
+     *   ReentrantLock lock = new ReentrantLock();
+     *   // ...
+     *   public void m() {
+     *     assert lock.getHoldCount() == 0;
+     *     lock.lock();
+     *     try {
+     *       // ... method body
+     *     } finally {
+     *       lock.unlock();
+     *     }
+     *   }
+     * }
+     * 
+ * + * @return the number of holds on this lock by the current thread, + * or zero if this lock is not held by the current thread + */ + public int getHoldCount() { + return sync.getHoldCount(); + } + + /** + * Queries if this lock is held by the current thread. + * + *

Analogous to the {@link Thread#holdsLock} method for built-in + * monitor locks, this method is typically used for debugging and + * testing. For example, a method that should only be called while + * a lock is held can assert that this is the case: + * + *

+     * class X {
+     *   ReentrantLock lock = new ReentrantLock();
+     *   // ...
+     *
+     *   public void m() {
+     *       assert lock.isHeldByCurrentThread();
+     *       // ... method body
+     *   }
+     * }
+     * 
+ * + *

It can also be used to ensure that a reentrant lock is used + * in a non-reentrant manner, for example: + * + *

+     * class X {
+     *   ReentrantLock lock = new ReentrantLock();
+     *   // ...
+     *
+     *   public void m() {
+     *       assert !lock.isHeldByCurrentThread();
+     *       lock.lock();
+     *       try {
+     *           // ... method body
+     *       } finally {
+     *           lock.unlock();
+     *       }
+     *   }
+     * }
+     * 
+ * + * @return {@code true} if current thread holds this lock and + * {@code false} otherwise + */ + public boolean isHeldByCurrentThread() { + return sync.isHeldExclusively(); + } + + /** + * Queries if this lock is held by any thread. This method is + * designed for use in monitoring of the system state, + * not for synchronization control. + * + * @return {@code true} if any thread holds this lock and + * {@code false} otherwise + */ + public boolean isLocked() { + return sync.isLocked(); + } + + /** + * Returns {@code true} if this lock has fairness set true. + * + * @return {@code true} if this lock has fairness set true + */ + public final boolean isFair() { + return sync instanceof FairSync; + } + + /** + * Returns the thread that currently owns this lock, or + * {@code null} if not owned. When this method is called by a + * thread that is not the owner, the return value reflects a + * best-effort approximation of current lock status. For example, + * the owner may be momentarily {@code null} even if there are + * threads trying to acquire the lock but have not yet done so. + * This method is designed to facilitate construction of + * subclasses that provide more extensive lock monitoring + * facilities. + * + * @return the owner, or {@code null} if not owned + */ + protected Thread getOwner() { + return sync.getOwner(); + } + + /** + * Queries whether any threads are waiting to acquire this lock. Note that + * because cancellations may occur at any time, a {@code true} + * return does not guarantee that any other thread will ever + * acquire this lock. This method is designed primarily for use in + * monitoring of the system state. + * + * @return {@code true} if there may be other threads waiting to + * acquire the lock + */ + public final boolean hasQueuedThreads() { + return sync.hasQueuedThreads(); + } + + + /** + * Queries whether the given thread is waiting to acquire this + * lock. Note that because cancellations may occur at any time, a + * {@code true} return does not guarantee that this thread + * will ever acquire this lock. This method is designed primarily for use + * in monitoring of the system state. + * + * @param thread the thread + * @return {@code true} if the given thread is queued waiting for this lock + * @throws NullPointerException if the thread is null + */ + public final boolean hasQueuedThread(Thread thread) { + return sync.isQueued(thread); + } + + + /** + * Returns an estimate of the number of threads waiting to + * acquire this lock. The value is only an estimate because the number of + * threads may change dynamically while this method traverses + * internal data structures. This method is designed for use in + * monitoring of the system state, not for synchronization + * control. + * + * @return the estimated number of threads waiting for this lock + */ + public final int getQueueLength() { + return sync.getQueueLength(); + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire this lock. Because the actual set of threads may change + * dynamically while constructing this result, the returned + * collection is only a best-effort estimate. The elements of the + * returned collection are in no particular order. This method is + * designed to facilitate construction of subclasses that provide + * more extensive monitoring facilities. + * + * @return the collection of threads + */ + protected Collection getQueuedThreads() { + return sync.getQueuedThreads(); + } + + /** + * Queries whether any threads are waiting on the given condition + * associated with this lock. Note that because timeouts and + * interrupts may occur at any time, a {@code true} return does + * not guarantee that a future {@code signal} will awaken any + * threads. This method is designed primarily for use in + * monitoring of the system state. + * + * @param condition the condition + * @return {@code true} if there are any waiting threads + * @throws IllegalMonitorStateException if this lock is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this lock + * @throws NullPointerException if the condition is null + */ + public boolean hasWaiters(Condition condition) { + if (condition == null) + throw new NullPointerException(); + if (!(condition instanceof AbstractQueuedSynchronizer.ConditionObject)) + throw new IllegalArgumentException("not owner"); + return sync.hasWaiters((AbstractQueuedSynchronizer.ConditionObject)condition); + } + + /** + * Returns an estimate of the number of threads waiting on the + * given condition associated with this lock. Note that because + * timeouts and interrupts may occur at any time, the estimate + * serves only as an upper bound on the actual number of waiters. + * This method is designed for use in monitoring of the system + * state, not for synchronization control. + * + * @param condition the condition + * @return the estimated number of waiting threads + * @throws IllegalMonitorStateException if this lock is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this lock + * @throws NullPointerException if the condition is null + */ + public int getWaitQueueLength(Condition condition) { + if (condition == null) + throw new NullPointerException(); + if (!(condition instanceof AbstractQueuedSynchronizer.ConditionObject)) + throw new IllegalArgumentException("not owner"); + return sync.getWaitQueueLength((AbstractQueuedSynchronizer.ConditionObject)condition); + } + + /** + * Returns a collection containing those threads that may be + * waiting on the given condition associated with this lock. + * Because the actual set of threads may change dynamically while + * constructing this result, the returned collection is only a + * best-effort estimate. The elements of the returned collection + * are in no particular order. This method is designed to + * facilitate construction of subclasses that provide more + * extensive condition monitoring facilities. + * + * @param condition the condition + * @return the collection of threads + * @throws IllegalMonitorStateException if this lock is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this lock + * @throws NullPointerException if the condition is null + */ + protected Collection getWaitingThreads(Condition condition) { + if (condition == null) + throw new NullPointerException(); + if (!(condition instanceof AbstractQueuedSynchronizer.ConditionObject)) + throw new IllegalArgumentException("not owner"); + return sync.getWaitingThreads((AbstractQueuedSynchronizer.ConditionObject)condition); + } + + /** + * Returns a string identifying this lock, as well as its lock state. + * The state, in brackets, includes either the String {@code "Unlocked"} + * or the String {@code "Locked by"} followed by the + * {@linkplain Thread#getName name} of the owning thread. + * + * @return a string identifying this lock, as well as its lock state + */ + public String toString() { + Thread o = sync.getOwner(); + return super.toString() + ((o == null) ? + "[Unlocked]" : + "[Locked by thread " + o.getName() + "]"); + } +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java b/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java new file mode 100644 index 00000000000..df18a7c0884 --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java @@ -0,0 +1,1346 @@ +/* + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + */ + +package java.util.concurrent.locks; +import java.util.concurrent.*; +import java.util.concurrent.atomic.*; +import java.util.*; + +/** + * An implementation of {@link ReadWriteLock} supporting similar + * semantics to {@link ReentrantLock}. + *

This class has the following properties: + * + *

    + *
  • Acquisition order + * + *

    This class does not impose a reader or writer preference + * ordering for lock access. However, it does support an optional + * fairness policy. + * + *

    + *
    Non-fair mode (default) + *
    When constructed as non-fair (the default), the order of entry + * to the read and write lock is unspecified, subject to reentrancy + * constraints. A nonfair lock that is continously contended may + * indefinitely postpone one or more reader or writer threads, but + * will normally have higher throughput than a fair lock. + *

    + * + *

    Fair mode + *
    When constructed as fair, threads contend for entry using an + * approximately arrival-order policy. When the currently held lock + * is released either the longest-waiting single writer thread will + * be assigned the write lock, or if there is a group of reader threads + * waiting longer than all waiting writer threads, that group will be + * assigned the read lock. + * + *

    A thread that tries to acquire a fair read lock (non-reentrantly) + * will block if either the write lock is held, or there is a waiting + * writer thread. The thread will not acquire the read lock until + * after the oldest currently waiting writer thread has acquired and + * released the write lock. Of course, if a waiting writer abandons + * its wait, leaving one or more reader threads as the longest waiters + * in the queue with the write lock free, then those readers will be + * assigned the read lock. + * + *

    A thread that tries to acquire a fair write lock (non-reentrantly) + * will block unless both the read lock and write lock are free (which + * implies there are no waiting threads). (Note that the non-blocking + * {@link ReadLock#tryLock()} and {@link WriteLock#tryLock()} methods + * do not honor this fair setting and will acquire the lock if it is + * possible, regardless of waiting threads.) + *

    + *

    + * + *
  • Reentrancy + * + *

    This lock allows both readers and writers to reacquire read or + * write locks in the style of a {@link ReentrantLock}. Non-reentrant + * readers are not allowed until all write locks held by the writing + * thread have been released. + * + *

    Additionally, a writer can acquire the read lock, but not + * vice-versa. Among other applications, reentrancy can be useful + * when write locks are held during calls or callbacks to methods that + * perform reads under read locks. If a reader tries to acquire the + * write lock it will never succeed. + * + *

  • Lock downgrading + *

    Reentrancy also allows downgrading from the write lock to a read lock, + * by acquiring the write lock, then the read lock and then releasing the + * write lock. However, upgrading from a read lock to the write lock is + * not possible. + * + *

  • Interruption of lock acquisition + *

    The read lock and write lock both support interruption during lock + * acquisition. + * + *

  • {@link Condition} support + *

    The write lock provides a {@link Condition} implementation that + * behaves in the same way, with respect to the write lock, as the + * {@link Condition} implementation provided by + * {@link ReentrantLock#newCondition} does for {@link ReentrantLock}. + * This {@link Condition} can, of course, only be used with the write lock. + * + *

    The read lock does not support a {@link Condition} and + * {@code readLock().newCondition()} throws + * {@code UnsupportedOperationException}. + * + *

  • Instrumentation + *

    This class supports methods to determine whether locks + * are held or contended. These methods are designed for monitoring + * system state, not for synchronization control. + *

+ * + *

Serialization of this class behaves in the same way as built-in + * locks: a deserialized lock is in the unlocked state, regardless of + * its state when serialized. + * + *

Sample usages. Here is a code sketch showing how to exploit + * reentrancy to perform lock downgrading after updating a cache (exception + * handling is elided for simplicity): + *

+ * class CachedData {
+ *   Object data;
+ *   volatile boolean cacheValid;
+ *   ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
+ *
+ *   void processCachedData() {
+ *     rwl.readLock().lock();
+ *     if (!cacheValid) {
+ *        // Must release read lock before acquiring write lock
+ *        rwl.readLock().unlock();
+ *        rwl.writeLock().lock();
+ *        // Recheck state because another thread might have acquired
+ *        //   write lock and changed state before we did.
+ *        if (!cacheValid) {
+ *          data = ...
+ *          cacheValid = true;
+ *        }
+ *        // Downgrade by acquiring read lock before releasing write lock
+ *        rwl.readLock().lock();
+ *        rwl.writeLock().unlock(); // Unlock write, still hold read
+ *     }
+ *
+ *     use(data);
+ *     rwl.readLock().unlock();
+ *   }
+ * }
+ * 
+ * + * ReentrantReadWriteLocks can be used to improve concurrency in some + * uses of some kinds of Collections. This is typically worthwhile + * only when the collections are expected to be large, accessed by + * more reader threads than writer threads, and entail operations with + * overhead that outweighs synchronization overhead. For example, here + * is a class using a TreeMap that is expected to be large and + * concurrently accessed. + * + *
{@code
+ * class RWDictionary {
+ *    private final Map m = new TreeMap();
+ *    private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
+ *    private final Lock r = rwl.readLock();
+ *    private final Lock w = rwl.writeLock();
+ *
+ *    public Data get(String key) {
+ *        r.lock();
+ *        try { return m.get(key); }
+ *        finally { r.unlock(); }
+ *    }
+ *    public String[] allKeys() {
+ *        r.lock();
+ *        try { return m.keySet().toArray(); }
+ *        finally { r.unlock(); }
+ *    }
+ *    public Data put(String key, Data value) {
+ *        w.lock();
+ *        try { return m.put(key, value); }
+ *        finally { w.unlock(); }
+ *    }
+ *    public void clear() {
+ *        w.lock();
+ *        try { m.clear(); }
+ *        finally { w.unlock(); }
+ *    }
+ * }}
+ * + *

Implementation Notes

+ * + *

This lock supports a maximum of 65535 recursive write locks + * and 65535 read locks. Attempts to exceed these limits result in + * {@link Error} throws from locking methods. + * + * @since 1.5 + * @author Doug Lea + * + */ +public class ReentrantReadWriteLock implements ReadWriteLock, java.io.Serializable { + private static final long serialVersionUID = -6992448646407690164L; + /** Inner class providing readlock */ + private final ReentrantReadWriteLock.ReadLock readerLock; + /** Inner class providing writelock */ + private final ReentrantReadWriteLock.WriteLock writerLock; + /** Performs all synchronization mechanics */ + private final Sync sync; + + /** + * Creates a new {@code ReentrantReadWriteLock} with + * default (nonfair) ordering properties. + */ + public ReentrantReadWriteLock() { + this(false); + } + + /** + * Creates a new {@code ReentrantReadWriteLock} with + * the given fairness policy. + * + * @param fair {@code true} if this lock should use a fair ordering policy + */ + public ReentrantReadWriteLock(boolean fair) { + sync = (fair)? new FairSync() : new NonfairSync(); + readerLock = new ReadLock(this); + writerLock = new WriteLock(this); + } + + public ReentrantReadWriteLock.WriteLock writeLock() { return writerLock; } + public ReentrantReadWriteLock.ReadLock readLock() { return readerLock; } + + /** + * Synchronization implementation for ReentrantReadWriteLock. + * Subclassed into fair and nonfair versions. + */ + static abstract class Sync extends AbstractQueuedSynchronizer { + private static final long serialVersionUID = 6317671515068378041L; + + /* + * Read vs write count extraction constants and functions. + * Lock state is logically divided into two shorts: The lower + * one representing the exclusive (writer) lock hold count, + * and the upper the shared (reader) hold count. + */ + + static final int SHARED_SHIFT = 16; + static final int SHARED_UNIT = (1 << SHARED_SHIFT); + static final int MAX_COUNT = (1 << SHARED_SHIFT) - 1; + static final int EXCLUSIVE_MASK = (1 << SHARED_SHIFT) - 1; + + /** Returns the number of shared holds represented in count */ + static int sharedCount(int c) { return c >>> SHARED_SHIFT; } + /** Returns the number of exclusive holds represented in count */ + static int exclusiveCount(int c) { return c & EXCLUSIVE_MASK; } + + /** + * A counter for per-thread read hold counts. + * Maintained as a ThreadLocal; cached in cachedHoldCounter + */ + static final class HoldCounter { + int count; + // Use id, not reference, to avoid garbage retention + final long tid = Thread.currentThread().getId(); + /** Decrement if positive; return previous value */ + int tryDecrement() { + int c = count; + if (c > 0) + count = c - 1; + return c; + } + } + + /** + * ThreadLocal subclass. Easiest to explicitly define for sake + * of deserialization mechanics. + */ + static final class ThreadLocalHoldCounter + extends ThreadLocal { + public HoldCounter initialValue() { + return new HoldCounter(); + } + } + + /** + * The number of read locks held by current thread. + * Initialized only in constructor and readObject. + */ + transient ThreadLocalHoldCounter readHolds; + + /** + * The hold count of the last thread to successfully acquire + * readLock. This saves ThreadLocal lookup in the common case + * where the next thread to release is the last one to + * acquire. This is non-volatile since it is just used + * as a heuristic, and would be great for threads to cache. + */ + transient HoldCounter cachedHoldCounter; + + Sync() { + readHolds = new ThreadLocalHoldCounter(); + setState(getState()); // ensures visibility of readHolds + } + + /* + * Acquires and releases use the same code for fair and + * nonfair locks, but differ in whether/how they allow barging + * when queues are non-empty. + */ + + /** + * Return true if a reader thread that is otherwise + * eligible for lock should block because of policy + * for overtaking other waiting threads. + */ + abstract boolean readerShouldBlock(Thread current); + + /** + * Return true if a writer thread that is otherwise + * eligible for lock should block because of policy + * for overtaking other waiting threads. + */ + abstract boolean writerShouldBlock(Thread current); + + /* + * Note that tryRelease and tryAcquire can be called by + * Conditions. So it is possible that their arguments contain + * both read and write holds that are all released during a + * condition wait and re-established in tryAcquire. + */ + + protected final boolean tryRelease(int releases) { + int nextc = getState() - releases; + if (Thread.currentThread() != getExclusiveOwnerThread()) + throw new IllegalMonitorStateException(); + if (exclusiveCount(nextc) == 0) { + setExclusiveOwnerThread(null); + setState(nextc); + return true; + } else { + setState(nextc); + return false; + } + } + + protected final boolean tryAcquire(int acquires) { + /* + * Walkthrough: + * 1. if read count nonzero or write count nonzero + * and owner is a different thread, fail. + * 2. If count would saturate, fail. (This can only + * happen if count is already nonzero.) + * 3. Otherwise, this thread is eligible for lock if + * it is either a reentrant acquire or + * queue policy allows it. If so, update state + * and set owner. + */ + Thread current = Thread.currentThread(); + int c = getState(); + int w = exclusiveCount(c); + if (c != 0) { + // (Note: if c != 0 and w == 0 then shared count != 0) + if (w == 0 || current != getExclusiveOwnerThread()) + return false; + if (w + exclusiveCount(acquires) > MAX_COUNT) + throw new Error("Maximum lock count exceeded"); + } + if ((w == 0 && writerShouldBlock(current)) || + !compareAndSetState(c, c + acquires)) + return false; + setExclusiveOwnerThread(current); + return true; + } + + protected final boolean tryReleaseShared(int unused) { + HoldCounter rh = cachedHoldCounter; + Thread current = Thread.currentThread(); + if (rh == null || rh.tid != current.getId()) + rh = readHolds.get(); + if (rh.tryDecrement() <= 0) + throw new IllegalMonitorStateException(); + for (;;) { + int c = getState(); + int nextc = c - SHARED_UNIT; + if (compareAndSetState(c, nextc)) + return nextc == 0; + } + } + + protected final int tryAcquireShared(int unused) { + /* + * Walkthrough: + * 1. If write lock held by another thread, fail + * 2. If count saturated, throw error + * 3. Otherwise, this thread is eligible for + * lock wrt state, so ask if it should block + * because of queue policy. If not, try + * to grant by CASing state and updating count. + * Note that step does not check for reentrant + * acquires, which is postponed to full version + * to avoid having to check hold count in + * the more typical non-reentrant case. + * 4. If step 3 fails either because thread + * apparently not eligible or CAS fails, + * chain to version with full retry loop. + */ + Thread current = Thread.currentThread(); + int c = getState(); + if (exclusiveCount(c) != 0 && + getExclusiveOwnerThread() != current) + return -1; + if (sharedCount(c) == MAX_COUNT) + throw new Error("Maximum lock count exceeded"); + if (!readerShouldBlock(current) && + compareAndSetState(c, c + SHARED_UNIT)) { + HoldCounter rh = cachedHoldCounter; + if (rh == null || rh.tid != current.getId()) + cachedHoldCounter = rh = readHolds.get(); + rh.count++; + return 1; + } + return fullTryAcquireShared(current); + } + + /** + * Full version of acquire for reads, that handles CAS misses + * and reentrant reads not dealt with in tryAcquireShared. + */ + final int fullTryAcquireShared(Thread current) { + /* + * This code is in part redundant with that in + * tryAcquireShared but is simpler overall by not + * complicating tryAcquireShared with interactions between + * retries and lazily reading hold counts. + */ + HoldCounter rh = cachedHoldCounter; + if (rh == null || rh.tid != current.getId()) + rh = readHolds.get(); + for (;;) { + int c = getState(); + int w = exclusiveCount(c); + if ((w != 0 && getExclusiveOwnerThread() != current) || + ((rh.count | w) == 0 && readerShouldBlock(current))) + return -1; + if (sharedCount(c) == MAX_COUNT) + throw new Error("Maximum lock count exceeded"); + if (compareAndSetState(c, c + SHARED_UNIT)) { + cachedHoldCounter = rh; // cache for release + rh.count++; + return 1; + } + } + } + + /** + * Performs tryLock for write, enabling barging in both modes. + * This is identical in effect to tryAcquire except for lack + * of calls to writerShouldBlock + */ + final boolean tryWriteLock() { + Thread current = Thread.currentThread(); + int c = getState(); + if (c != 0) { + int w = exclusiveCount(c); + if (w == 0 ||current != getExclusiveOwnerThread()) + return false; + if (w == MAX_COUNT) + throw new Error("Maximum lock count exceeded"); + } + if (!compareAndSetState(c, c + 1)) + return false; + setExclusiveOwnerThread(current); + return true; + } + + /** + * Performs tryLock for read, enabling barging in both modes. + * This is identical in effect to tryAcquireShared except for + * lack of calls to readerShouldBlock + */ + final boolean tryReadLock() { + Thread current = Thread.currentThread(); + for (;;) { + int c = getState(); + if (exclusiveCount(c) != 0 && + getExclusiveOwnerThread() != current) + return false; + if (sharedCount(c) == MAX_COUNT) + throw new Error("Maximum lock count exceeded"); + if (compareAndSetState(c, c + SHARED_UNIT)) { + HoldCounter rh = cachedHoldCounter; + if (rh == null || rh.tid != current.getId()) + cachedHoldCounter = rh = readHolds.get(); + rh.count++; + return true; + } + } + } + + protected final boolean isHeldExclusively() { + // While we must in general read state before owner, + // we don't need to do so to check if current thread is owner + return getExclusiveOwnerThread() == Thread.currentThread(); + } + + // Methods relayed to outer class + + final ConditionObject newCondition() { + return new ConditionObject(); + } + + final Thread getOwner() { + // Must read state before owner to ensure memory consistency + return ((exclusiveCount(getState()) == 0)? + null : + getExclusiveOwnerThread()); + } + + final int getReadLockCount() { + return sharedCount(getState()); + } + + final boolean isWriteLocked() { + return exclusiveCount(getState()) != 0; + } + + final int getWriteHoldCount() { + return isHeldExclusively() ? exclusiveCount(getState()) : 0; + } + + final int getReadHoldCount() { + return getReadLockCount() == 0? 0 : readHolds.get().count; + } + + /** + * Reconstitute this lock instance from a stream + * @param s the stream + */ + private void readObject(java.io.ObjectInputStream s) + throws java.io.IOException, ClassNotFoundException { + s.defaultReadObject(); + readHolds = new ThreadLocalHoldCounter(); + setState(0); // reset to unlocked state + } + + final int getCount() { return getState(); } + } + + /** + * Nonfair version of Sync + */ + final static class NonfairSync extends Sync { + private static final long serialVersionUID = -8159625535654395037L; + final boolean writerShouldBlock(Thread current) { + return false; // writers can always barge + } + final boolean readerShouldBlock(Thread current) { + /* As a heuristic to avoid indefinite writer starvation, + * block if the thread that momentarily appears to be head + * of queue, if one exists, is a waiting writer. This is + * only a probablistic effect since a new reader will not + * block if there is a waiting writer behind other enabled + * readers that have not yet drained from the queue. + */ + return apparentlyFirstQueuedIsExclusive(); + } + } + + /** + * Fair version of Sync + */ + final static class FairSync extends Sync { + private static final long serialVersionUID = -2274990926593161451L; + final boolean writerShouldBlock(Thread current) { + // only proceed if queue is empty or current thread at head + return !isFirst(current); + } + final boolean readerShouldBlock(Thread current) { + // only proceed if queue is empty or current thread at head + return !isFirst(current); + } + } + + /** + * The lock returned by method {@link ReentrantReadWriteLock#readLock}. + */ + public static class ReadLock implements Lock, java.io.Serializable { + private static final long serialVersionUID = -5992448646407690164L; + private final Sync sync; + + /** + * Constructor for use by subclasses + * + * @param lock the outer lock object + * @throws NullPointerException if the lock is null + */ + protected ReadLock(ReentrantReadWriteLock lock) { + sync = lock.sync; + } + + /** + * Acquires the read lock. + * + *

Acquires the read lock if the write lock is not held by + * another thread and returns immediately. + * + *

If the write lock is held by another thread then + * the current thread becomes disabled for thread scheduling + * purposes and lies dormant until the read lock has been acquired. + */ + public void lock() { + sync.acquireShared(1); + } + + /** + * Acquires the read lock unless the current thread is + * {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the read lock if the write lock is not held + * by another thread and returns immediately. + * + *

If the write lock is held by another thread then the + * current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of two things happens: + * + *

    + * + *
  • The read lock is acquired by the current thread; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread. + * + *
+ * + *

If the current thread: + * + *

    + * + *
  • has its interrupted status set on entry to this method; or + * + *
  • is {@linkplain Thread#interrupt interrupted} while + * acquiring the read lock, + * + *
+ * + * then {@link InterruptedException} is thrown and the current + * thread's interrupted status is cleared. + * + *

In this implementation, as this method is an explicit + * interruption point, preference is given to responding to + * the interrupt over normal or reentrant acquisition of the + * lock. + * + * @throws InterruptedException if the current thread is interrupted + */ + public void lockInterruptibly() throws InterruptedException { + sync.acquireSharedInterruptibly(1); + } + + /** + * Acquires the read lock only if the write lock is not held by + * another thread at the time of invocation. + * + *

Acquires the read lock if the write lock is not held by + * another thread and returns immediately with the value + * {@code true}. Even when this lock has been set to use a + * fair ordering policy, a call to {@code tryLock()} + * will immediately acquire the read lock if it is + * available, whether or not other threads are currently + * waiting for the read lock. This "barging" behavior + * can be useful in certain circumstances, even though it + * breaks fairness. If you want to honor the fairness setting + * for this lock, then use {@link #tryLock(long, TimeUnit) + * tryLock(0, TimeUnit.SECONDS) } which is almost equivalent + * (it also detects interruption). + * + *

If the write lock is held by another thread then + * this method will return immediately with the value + * {@code false}. + * + * @return {@code true} if the read lock was acquired + */ + public boolean tryLock() { + return sync.tryReadLock(); + } + + /** + * Acquires the read lock if the write lock is not held by + * another thread within the given waiting time and the + * current thread has not been {@linkplain Thread#interrupt + * interrupted}. + * + *

Acquires the read lock if the write lock is not held by + * another thread and returns immediately with the value + * {@code true}. If this lock has been set to use a fair + * ordering policy then an available lock will not be + * acquired if any other threads are waiting for the + * lock. This is in contrast to the {@link #tryLock()} + * method. If you want a timed {@code tryLock} that does + * permit barging on a fair lock then combine the timed and + * un-timed forms together: + * + *

if (lock.tryLock() || lock.tryLock(timeout, unit) ) { ... }
+         * 
+ * + *

If the write lock is held by another thread then the + * current thread becomes disabled for thread scheduling + * purposes and lies dormant until one of three things happens: + * + *

    + * + *
  • The read lock is acquired by the current thread; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + * + *
  • The specified waiting time elapses. + * + *
+ * + *

If the read lock is acquired then the value {@code true} is + * returned. + * + *

If the current thread: + * + *

    + * + *
  • has its interrupted status set on entry to this method; or + * + *
  • is {@linkplain Thread#interrupt interrupted} while + * acquiring the read lock, + * + *
then {@link InterruptedException} is thrown and the + * current thread's interrupted status is cleared. + * + *

If the specified waiting time elapses then the value + * {@code false} is returned. If the time is less than or + * equal to zero, the method will not wait at all. + * + *

In this implementation, as this method is an explicit + * interruption point, preference is given to responding to + * the interrupt over normal or reentrant acquisition of the + * lock, and over reporting the elapse of the waiting time. + * + * @param timeout the time to wait for the read lock + * @param unit the time unit of the timeout argument + * @return {@code true} if the read lock was acquired + * @throws InterruptedException if the current thread is interrupted + * @throws NullPointerException if the time unit is null + * + */ + public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException { + return sync.tryAcquireSharedNanos(1, unit.toNanos(timeout)); + } + + /** + * Attempts to release this lock. + * + *

If the number of readers is now zero then the lock + * is made available for write lock attempts. + */ + public void unlock() { + sync.releaseShared(1); + } + + /** + * Throws {@code UnsupportedOperationException} because + * {@code ReadLocks} do not support conditions. + * + * @throws UnsupportedOperationException always + */ + public Condition newCondition() { + throw new UnsupportedOperationException(); + } + + /** + * Returns a string identifying this lock, as well as its lock state. + * The state, in brackets, includes the String {@code "Read locks ="} + * followed by the number of held read locks. + * + * @return a string identifying this lock, as well as its lock state + */ + public String toString() { + int r = sync.getReadLockCount(); + return super.toString() + + "[Read locks = " + r + "]"; + } + } + + /** + * The lock returned by method {@link ReentrantReadWriteLock#writeLock}. + */ + public static class WriteLock implements Lock, java.io.Serializable { + private static final long serialVersionUID = -4992448646407690164L; + private final Sync sync; + + /** + * Constructor for use by subclasses + * + * @param lock the outer lock object + * @throws NullPointerException if the lock is null + */ + protected WriteLock(ReentrantReadWriteLock lock) { + sync = lock.sync; + } + + /** + * Acquires the write lock. + * + *

Acquires the write lock if neither the read nor write lock + * are held by another thread + * and returns immediately, setting the write lock hold count to + * one. + * + *

If the current thread already holds the write lock then the + * hold count is incremented by one and the method returns + * immediately. + * + *

If the lock is held by another thread then the current + * thread becomes disabled for thread scheduling purposes and + * lies dormant until the write lock has been acquired, at which + * time the write lock hold count is set to one. + */ + public void lock() { + sync.acquire(1); + } + + /** + * Acquires the write lock unless the current thread is + * {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the write lock if neither the read nor write lock + * are held by another thread + * and returns immediately, setting the write lock hold count to + * one. + * + *

If the current thread already holds this lock then the + * hold count is incremented by one and the method returns + * immediately. + * + *

If the lock is held by another thread then the current + * thread becomes disabled for thread scheduling purposes and + * lies dormant until one of two things happens: + * + *

    + * + *
  • The write lock is acquired by the current thread; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread. + * + *
+ * + *

If the write lock is acquired by the current thread then the + * lock hold count is set to one. + * + *

If the current thread: + * + *

    + * + *
  • has its interrupted status set on entry to this method; + * or + * + *
  • is {@linkplain Thread#interrupt interrupted} while + * acquiring the write lock, + * + *
+ * + * then {@link InterruptedException} is thrown and the current + * thread's interrupted status is cleared. + * + *

In this implementation, as this method is an explicit + * interruption point, preference is given to responding to + * the interrupt over normal or reentrant acquisition of the + * lock. + * + * @throws InterruptedException if the current thread is interrupted + */ + public void lockInterruptibly() throws InterruptedException { + sync.acquireInterruptibly(1); + } + + /** + * Acquires the write lock only if it is not held by another thread + * at the time of invocation. + * + *

Acquires the write lock if neither the read nor write lock + * are held by another thread + * and returns immediately with the value {@code true}, + * setting the write lock hold count to one. Even when this lock has + * been set to use a fair ordering policy, a call to + * {@code tryLock()} will immediately acquire the + * lock if it is available, whether or not other threads are + * currently waiting for the write lock. This "barging" + * behavior can be useful in certain circumstances, even + * though it breaks fairness. If you want to honor the + * fairness setting for this lock, then use {@link + * #tryLock(long, TimeUnit) tryLock(0, TimeUnit.SECONDS) } + * which is almost equivalent (it also detects interruption). + * + *

If the current thread already holds this lock then the + * hold count is incremented by one and the method returns + * {@code true}. + * + *

If the lock is held by another thread then this method + * will return immediately with the value {@code false}. + * + * @return {@code true} if the lock was free and was acquired + * by the current thread, or the write lock was already held + * by the current thread; and {@code false} otherwise. + */ + public boolean tryLock( ) { + return sync.tryWriteLock(); + } + + /** + * Acquires the write lock if it is not held by another thread + * within the given waiting time and the current thread has + * not been {@linkplain Thread#interrupt interrupted}. + * + *

Acquires the write lock if neither the read nor write lock + * are held by another thread + * and returns immediately with the value {@code true}, + * setting the write lock hold count to one. If this lock has been + * set to use a fair ordering policy then an available lock + * will not be acquired if any other threads are + * waiting for the write lock. This is in contrast to the {@link + * #tryLock()} method. If you want a timed {@code tryLock} + * that does permit barging on a fair lock then combine the + * timed and un-timed forms together: + * + *

if (lock.tryLock() || lock.tryLock(timeout, unit) ) { ... }
+         * 
+ * + *

If the current thread already holds this lock then the + * hold count is incremented by one and the method returns + * {@code true}. + * + *

If the lock is held by another thread then the current + * thread becomes disabled for thread scheduling purposes and + * lies dormant until one of three things happens: + * + *

    + * + *
  • The write lock is acquired by the current thread; or + * + *
  • Some other thread {@linkplain Thread#interrupt interrupts} + * the current thread; or + * + *
  • The specified waiting time elapses + * + *
+ * + *

If the write lock is acquired then the value {@code true} is + * returned and the write lock hold count is set to one. + * + *

If the current thread: + * + *

    + * + *
  • has its interrupted status set on entry to this method; + * or + * + *
  • is {@linkplain Thread#interrupt interrupted} while + * acquiring the write lock, + * + *
+ * + * then {@link InterruptedException} is thrown and the current + * thread's interrupted status is cleared. + * + *

If the specified waiting time elapses then the value + * {@code false} is returned. If the time is less than or + * equal to zero, the method will not wait at all. + * + *

In this implementation, as this method is an explicit + * interruption point, preference is given to responding to + * the interrupt over normal or reentrant acquisition of the + * lock, and over reporting the elapse of the waiting time. + * + * @param timeout the time to wait for the write lock + * @param unit the time unit of the timeout argument + * + * @return {@code true} if the lock was free and was acquired + * by the current thread, or the write lock was already held by the + * current thread; and {@code false} if the waiting time + * elapsed before the lock could be acquired. + * + * @throws InterruptedException if the current thread is interrupted + * @throws NullPointerException if the time unit is null + * + */ + public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException { + return sync.tryAcquireNanos(1, unit.toNanos(timeout)); + } + + /** + * Attempts to release this lock. + * + *

If the current thread is the holder of this lock then + * the hold count is decremented. If the hold count is now + * zero then the lock is released. If the current thread is + * not the holder of this lock then {@link + * IllegalMonitorStateException} is thrown. + * + * @throws IllegalMonitorStateException if the current thread does not + * hold this lock. + */ + public void unlock() { + sync.release(1); + } + + /** + * Returns a {@link Condition} instance for use with this + * {@link Lock} instance. + *

The returned {@link Condition} instance supports the same + * usages as do the {@link Object} monitor methods ({@link + * Object#wait() wait}, {@link Object#notify notify}, and {@link + * Object#notifyAll notifyAll}) when used with the built-in + * monitor lock. + * + *

    + * + *
  • If this write lock is not held when any {@link + * Condition} method is called then an {@link + * IllegalMonitorStateException} is thrown. (Read locks are + * held independently of write locks, so are not checked or + * affected. However it is essentially always an error to + * invoke a condition waiting method when the current thread + * has also acquired read locks, since other threads that + * could unblock it will not be able to acquire the write + * lock.) + * + *
  • When the condition {@linkplain Condition#await() waiting} + * methods are called the write lock is released and, before + * they return, the write lock is reacquired and the lock hold + * count restored to what it was when the method was called. + * + *
  • If a thread is {@linkplain Thread#interrupt interrupted} while + * waiting then the wait will terminate, an {@link + * InterruptedException} will be thrown, and the thread's + * interrupted status will be cleared. + * + *
  • Waiting threads are signalled in FIFO order. + * + *
  • The ordering of lock reacquisition for threads returning + * from waiting methods is the same as for threads initially + * acquiring the lock, which is in the default case not specified, + * but for fair locks favors those threads that have been + * waiting the longest. + * + *
+ * + * @return the Condition object + */ + public Condition newCondition() { + return sync.newCondition(); + } + + /** + * Returns a string identifying this lock, as well as its lock + * state. The state, in brackets includes either the String + * {@code "Unlocked"} or the String {@code "Locked by"} + * followed by the {@linkplain Thread#getName name} of the owning thread. + * + * @return a string identifying this lock, as well as its lock state + */ + public String toString() { + Thread o = sync.getOwner(); + return super.toString() + ((o == null) ? + "[Unlocked]" : + "[Locked by thread " + o.getName() + "]"); + } + + /** + * Queries if this write lock is held by the current thread. + * Identical in effect to {@link + * ReentrantReadWriteLock#isWriteLockedByCurrentThread}. + * + * @return {@code true} if the current thread holds this lock and + * {@code false} otherwise + * @since 1.6 + */ + public boolean isHeldByCurrentThread() { + return sync.isHeldExclusively(); + } + + /** + * Queries the number of holds on this write lock by the current + * thread. A thread has a hold on a lock for each lock action + * that is not matched by an unlock action. Identical in effect + * to {@link ReentrantReadWriteLock#getWriteHoldCount}. + * + * @return the number of holds on this lock by the current thread, + * or zero if this lock is not held by the current thread + * @since 1.6 + */ + public int getHoldCount() { + return sync.getWriteHoldCount(); + } + } + + // Instrumentation and status + + /** + * Returns {@code true} if this lock has fairness set true. + * + * @return {@code true} if this lock has fairness set true + */ + public final boolean isFair() { + return sync instanceof FairSync; + } + + /** + * Returns the thread that currently owns the write lock, or + * {@code null} if not owned. When this method is called by a + * thread that is not the owner, the return value reflects a + * best-effort approximation of current lock status. For example, + * the owner may be momentarily {@code null} even if there are + * threads trying to acquire the lock but have not yet done so. + * This method is designed to facilitate construction of + * subclasses that provide more extensive lock monitoring + * facilities. + * + * @return the owner, or {@code null} if not owned + */ + protected Thread getOwner() { + return sync.getOwner(); + } + + /** + * Queries the number of read locks held for this lock. This + * method is designed for use in monitoring system state, not for + * synchronization control. + * @return the number of read locks held. + */ + public int getReadLockCount() { + return sync.getReadLockCount(); + } + + /** + * Queries if the write lock is held by any thread. This method is + * designed for use in monitoring system state, not for + * synchronization control. + * + * @return {@code true} if any thread holds the write lock and + * {@code false} otherwise + */ + public boolean isWriteLocked() { + return sync.isWriteLocked(); + } + + /** + * Queries if the write lock is held by the current thread. + * + * @return {@code true} if the current thread holds the write lock and + * {@code false} otherwise + */ + public boolean isWriteLockedByCurrentThread() { + return sync.isHeldExclusively(); + } + + /** + * Queries the number of reentrant write holds on this lock by the + * current thread. A writer thread has a hold on a lock for + * each lock action that is not matched by an unlock action. + * + * @return the number of holds on the write lock by the current thread, + * or zero if the write lock is not held by the current thread + */ + public int getWriteHoldCount() { + return sync.getWriteHoldCount(); + } + + /** + * Queries the number of reentrant read holds on this lock by the + * current thread. A reader thread has a hold on a lock for + * each lock action that is not matched by an unlock action. + * + * @return the number of holds on the read lock by the current thread, + * or zero if the read lock is not held by the current thread + * @since 1.6 + */ + public int getReadHoldCount() { + return sync.getReadHoldCount(); + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire the write lock. Because the actual set of threads may + * change dynamically while constructing this result, the returned + * collection is only a best-effort estimate. The elements of the + * returned collection are in no particular order. This method is + * designed to facilitate construction of subclasses that provide + * more extensive lock monitoring facilities. + * + * @return the collection of threads + */ + protected Collection getQueuedWriterThreads() { + return sync.getExclusiveQueuedThreads(); + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire the read lock. Because the actual set of threads may + * change dynamically while constructing this result, the returned + * collection is only a best-effort estimate. The elements of the + * returned collection are in no particular order. This method is + * designed to facilitate construction of subclasses that provide + * more extensive lock monitoring facilities. + * + * @return the collection of threads + */ + protected Collection getQueuedReaderThreads() { + return sync.getSharedQueuedThreads(); + } + + /** + * Queries whether any threads are waiting to acquire the read or + * write lock. Note that because cancellations may occur at any + * time, a {@code true} return does not guarantee that any other + * thread will ever acquire a lock. This method is designed + * primarily for use in monitoring of the system state. + * + * @return {@code true} if there may be other threads waiting to + * acquire the lock + */ + public final boolean hasQueuedThreads() { + return sync.hasQueuedThreads(); + } + + /** + * Queries whether the given thread is waiting to acquire either + * the read or write lock. Note that because cancellations may + * occur at any time, a {@code true} return does not guarantee + * that this thread will ever acquire a lock. This method is + * designed primarily for use in monitoring of the system state. + * + * @param thread the thread + * @return {@code true} if the given thread is queued waiting for this lock + * @throws NullPointerException if the thread is null + */ + public final boolean hasQueuedThread(Thread thread) { + return sync.isQueued(thread); + } + + /** + * Returns an estimate of the number of threads waiting to acquire + * either the read or write lock. The value is only an estimate + * because the number of threads may change dynamically while this + * method traverses internal data structures. This method is + * designed for use in monitoring of the system state, not for + * synchronization control. + * + * @return the estimated number of threads waiting for this lock + */ + public final int getQueueLength() { + return sync.getQueueLength(); + } + + /** + * Returns a collection containing threads that may be waiting to + * acquire either the read or write lock. Because the actual set + * of threads may change dynamically while constructing this + * result, the returned collection is only a best-effort estimate. + * The elements of the returned collection are in no particular + * order. This method is designed to facilitate construction of + * subclasses that provide more extensive monitoring facilities. + * + * @return the collection of threads + */ + protected Collection getQueuedThreads() { + return sync.getQueuedThreads(); + } + + /** + * Queries whether any threads are waiting on the given condition + * associated with the write lock. Note that because timeouts and + * interrupts may occur at any time, a {@code true} return does + * not guarantee that a future {@code signal} will awaken any + * threads. This method is designed primarily for use in + * monitoring of the system state. + * + * @param condition the condition + * @return {@code true} if there are any waiting threads + * @throws IllegalMonitorStateException if this lock is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this lock + * @throws NullPointerException if the condition is null + */ + public boolean hasWaiters(Condition condition) { + if (condition == null) + throw new NullPointerException(); + if (!(condition instanceof AbstractQueuedSynchronizer.ConditionObject)) + throw new IllegalArgumentException("not owner"); + return sync.hasWaiters((AbstractQueuedSynchronizer.ConditionObject)condition); + } + + /** + * Returns an estimate of the number of threads waiting on the + * given condition associated with the write lock. Note that because + * timeouts and interrupts may occur at any time, the estimate + * serves only as an upper bound on the actual number of waiters. + * This method is designed for use in monitoring of the system + * state, not for synchronization control. + * + * @param condition the condition + * @return the estimated number of waiting threads + * @throws IllegalMonitorStateException if this lock is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this lock + * @throws NullPointerException if the condition is null + */ + public int getWaitQueueLength(Condition condition) { + if (condition == null) + throw new NullPointerException(); + if (!(condition instanceof AbstractQueuedSynchronizer.ConditionObject)) + throw new IllegalArgumentException("not owner"); + return sync.getWaitQueueLength((AbstractQueuedSynchronizer.ConditionObject)condition); + } + + /** + * Returns a collection containing those threads that may be + * waiting on the given condition associated with the write lock. + * Because the actual set of threads may change dynamically while + * constructing this result, the returned collection is only a + * best-effort estimate. The elements of the returned collection + * are in no particular order. This method is designed to + * facilitate construction of subclasses that provide more + * extensive condition monitoring facilities. + * + * @param condition the condition + * @return the collection of threads + * @throws IllegalMonitorStateException if this lock is not held + * @throws IllegalArgumentException if the given condition is + * not associated with this lock + * @throws NullPointerException if the condition is null + */ + protected Collection getWaitingThreads(Condition condition) { + if (condition == null) + throw new NullPointerException(); + if (!(condition instanceof AbstractQueuedSynchronizer.ConditionObject)) + throw new IllegalArgumentException("not owner"); + return sync.getWaitingThreads((AbstractQueuedSynchronizer.ConditionObject)condition); + } + + /** + * Returns a string identifying this lock, as well as its lock state. + * The state, in brackets, includes the String {@code "Write locks ="} + * followed by the number of reentrantly held write locks, and the + * String {@code "Read locks ="} followed by the number of held + * read locks. + * + * @return a string identifying this lock, as well as its lock state + */ + public String toString() { + int c = sync.getCount(); + int w = Sync.exclusiveCount(c); + int r = Sync.sharedCount(c); + + return super.toString() + + "[Write locks = " + w + ", Read locks = " + r + "]"; + } + +} diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/locks/package.html b/libjava/classpath/external/jsr166/java/util/concurrent/locks/package.html new file mode 100644 index 00000000000..4b945258b8d --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/locks/package.html @@ -0,0 +1,50 @@ + + +Locks + + + + +Interfaces and classes providing a framework for locking and waiting +for conditions that is distinct from built-in synchronization and +monitors. The framework permits much greater flexibility in the use of +locks and conditions, at the expense of more awkward syntax. + +

The {@link java.util.concurrent.locks.Lock} interface supports +locking disciplines that differ in semantics (reentrant, fair, etc), +and that can be used in non-block-structured contexts including +hand-over-hand and lock reordering algorithms. The main implementation +is {@link java.util.concurrent.locks.ReentrantLock}. + +

The {@link java.util.concurrent.locks.ReadWriteLock} interface +similarly defines locks that may be shared among readers but are +exclusive to writers. Only a single implementation, {@link +java.util.concurrent.locks.ReentrantReadWriteLock}, is provided, since +it covers most standard usage contexts. But programmers may create +their own implementations to cover nonstandard requirements. + +

The {@link java.util.concurrent.locks.Condition} interface +describes condition variables that may be associated with Locks. +These are similar in usage to the implicit monitors accessed using +Object.wait, but offer extended capabilities. In particular, +multiple Condition objects may be associated with a single +Lock. To avoid compatibility issues, the names of +Condition methods are different than the corresponding +Object versions. + +

The {@link java.util.concurrent.locks.AbstractQueuedSynchronizer} +class serves as a useful superclass for defining locks and other +synchronizers that rely on queuing blocked threads. The {@link +java.util.concurrent.locks.AbstractQueuedLongSynchronizer} class +provides the same functionality but extends support to 64 bits of +synchronization state. Both extend class {@link +java.util.concurrent.locks.AbstractOwnableSynchronizer}, a simple +class that helps record the thread currently holding exclusive +synchronization. The {@link java.util.concurrent.locks.LockSupport} +class provides lower-level blocking and unblocking support that is +useful for those developers implementing their own customized lock +classes. + +@since 1.5 + + diff --git a/libjava/classpath/external/jsr166/java/util/concurrent/package.html b/libjava/classpath/external/jsr166/java/util/concurrent/package.html new file mode 100644 index 00000000000..20227e1fece --- /dev/null +++ b/libjava/classpath/external/jsr166/java/util/concurrent/package.html @@ -0,0 +1,222 @@ + + +Concurrency Utilities + + + + +

Utility classes commonly useful in concurrent programming. This +package includes a few small standardized extensible frameworks, as +well as some classes that provide useful functionality and are +otherwise tedious or difficult to implement. Here are brief +descriptions of the main components. See also the locks and +atomic packages. + +

Executors

+ +Interfaces. {@link java.util.concurrent.Executor} is a simple +standardized interface for defining custom thread-like subsystems, +including thread pools, asynchronous IO, and lightweight task +frameworks. Depending on which concrete Executor class is being used, +tasks may execute in a newly created thread, an existing +task-execution thread, or the thread calling execute(), and +may execute sequentially or concurrently. {@link +java.util.concurrent.ExecutorService} provides a more complete +asynchronous task execution framework. An ExecutorService manages +queuing and scheduling of tasks, and allows controlled shutdown. The +{@link java.util.concurrent.ScheduledExecutorService} subinterface +and associated interfaces add support for delayed and periodic task execution. +ExecutorServices provide methods arranging asynchronous execution of +any function expressed as {@link java.util.concurrent.Callable}, the +result-bearing analog of {@link java.lang.Runnable}. A {@link +java.util.concurrent.Future} returns the results of a function, allows +determination of whether execution has completed, and provides a means to +cancel execution. A {@link java.util.concurrent.RunnableFuture} is +a Future that possesses a run method that upon execution, +sets its results. + +

+ +Implementations. Classes {@link +java.util.concurrent.ThreadPoolExecutor} and {@link +java.util.concurrent.ScheduledThreadPoolExecutor} provide tunable, +flexible thread pools. The {@link java.util.concurrent.Executors} +class provides factory methods for the most common kinds and +configurations of Executors, as well as a few utility methods for +using them. Other utilities based on Executors include the concrete +class {@link java.util.concurrent.FutureTask} providing a common +extensible implementation of Futures, and {@link +java.util.concurrent.ExecutorCompletionService}, that assists in +coordinating the processing of groups of asynchronous tasks. + +

Queues

+ +The java.util.concurrent {@link +java.util.concurrent.ConcurrentLinkedQueue} class supplies an +efficient scalable thread-safe non-blocking FIFO queue. Five +implementations in java.util.concurrent support the extended {@link +java.util.concurrent.BlockingQueue} interface, that defines blocking +versions of put and take: {@link +java.util.concurrent.LinkedBlockingQueue}, {@link +java.util.concurrent.ArrayBlockingQueue}, {@link +java.util.concurrent.SynchronousQueue}, {@link +java.util.concurrent.PriorityBlockingQueue}, and {@link +java.util.concurrent.DelayQueue}. The different classes cover the most +common usage contexts for producer-consumer, messaging, parallel +tasking, and related concurrent designs. The {@link +java.util.concurrent.BlockingDeque} interface extends +BlockingQueue to support both FIFO and LIFO (stack-based) +operations. Class {@link java.util.concurrent.LinkedBlockingDeque} +provides an implementation. + + +

Timing

+ +The {@link java.util.concurrent.TimeUnit} class provides multiple +granularities (including nanoseconds) for specifying and controlling +time-out based operations. Most classes in the package contain +operations based on time-outs in addition to indefinite waits. In all +cases that time-outs are used, the time-out specifies the minimum time +that the method should wait before indicating that it +timed-out. Implementations make a "best effort" to detect +time-outs as soon as possible after they occur. However, an indefinite +amount of time may elapse between a time-out being detected and a +thread actually executing again after that time-out. All methods +that accept timeout parameters treat values less than or equal to +zero to mean not to wait at all. To wait "forever", you can use +a value of Long.MAX_VALUE. + +

Synchronizers

+ +Four classes aid common special-purpose synchronization idioms. +{@link java.util.concurrent.Semaphore} is a classic concurrency tool. +{@link java.util.concurrent.CountDownLatch} is a very simple yet very +common utility for blocking until a given number of signals, events, +or conditions hold. A {@link java.util.concurrent.CyclicBarrier} is a +resettable multiway synchronization point useful in some styles of +parallel programming. An {@link java.util.concurrent.Exchanger} allows +two threads to exchange objects at a rendezvous point, and is useful +in several pipeline designs. + +

Concurrent Collections

+ +Besides Queues, this package supplies Collection implementations +designed for use in multithreaded contexts: +{@link java.util.concurrent.ConcurrentHashMap}, +{@link java.util.concurrent.ConcurrentSkipListMap}, +{@link java.util.concurrent.ConcurrentSkipListSet}, +{@link java.util.concurrent.CopyOnWriteArrayList}, and +{@link java.util.concurrent.CopyOnWriteArraySet}. +When many threads are expected to access a given collection, +a ConcurrentHashMap is normally preferable to +a synchronized HashMap, and a +ConcurrentSkipListMap is normally preferable +to a synchronized TreeMap. A +CopyOnWriteArrayList is preferable to +a synchronized ArrayList when the expected number of reads +and traversals greatly outnumber the number of updates to a list. + +

The "Concurrent" prefix used with some classes in this package is a +shorthand indicating several differences from similar "synchronized" +classes. For example java.util.Hashtable and +Collections.synchronizedMap(new HashMap()) are +synchronized. But {@link java.util.concurrent.ConcurrentHashMap} is +"concurrent". A concurrent collection is thread-safe, but not +governed by a single exclusion lock. In the particular case of +ConcurrentHashMap, it safely permits any number of concurrent reads as +well as a tunable number of concurrent writes. "Synchronized" classes +can be useful when you need to prevent all access to a collection via +a single lock, at the expense of poorer scalability. In other cases in +which multiple threads are expected to access a common collection, +"concurrent" versions are normally preferable. And unsynchronized +collections are preferable when either collections are unshared, or +are accessible only when holding other locks. + +

Most concurrent Collection implementations (including most Queues) +also differ from the usual java.util conventions in that their Iterators +provide weakly consistent rather than fast-fail traversal. A +weakly consistent iterator is thread-safe, but does not necessarily +freeze the collection while iterating, so it may (or may not) reflect +any updates since the iterator was created. + + +

Memory Consistency Properties

+ + +Chapter 17 of the Java Language Specification defines the +happens-before relation on memory operations such as reads and +writes of shared variables. The results of a write by one thread are +guaranteed to be visible to a read by another thread only if the write +operation happens-before the read operation. The +{@code synchronized} and {@code volatile} constructs, as well as the +{@code Thread.start()} and {@code Thread.join()} methods, can form +happens-before relationships. In particular: + +
    +
  • Each action in a thread happens-before every action in that + thread that comes later in the program's order. + +
  • An unlock ({@code synchronized} block or method exit) of a + monitor happens-before every subsequent lock ({@code synchronized} + block or method entry) of that same monitor. And because + the happens-before relation is transitive, all actions + of a thread prior to unlocking happen-before all actions + subsequent to any thread locking that monitor. + +
  • A write to a {@code volatile} field happens-before every + subsequent read of that same field. Writes and reads of + {@code volatile} fields have similar memory consistency effects + as entering and exiting monitors, but do not entail + mutual exclusion locking. + +
  • A call to {@code start} on a thread happens-before any action in the + started thread. + +
  • All actions in a thread happen-before any other thread + successfully returns from a {@code join} on that thread. + +
+ + +The methods of all classes in {@code java.util.concurrent} and its +subpackages extend these guarantees to higher-level +synchronization. In particular: + +
    + +
  • Actions in a thread prior to placing an object into any concurrent + collection happen-before actions subsequent to the access or + removal of that element from the collection in another thread. + +
  • Actions in a thread prior to the submission of a {@code Runnable} + to an {@code Executor} happen-before its execution begins. + Similarly for {@code Callables} submitted to an {@code ExecutorService}. + +
  • Actions taken by the asynchronous computation represented by a + {@code Future} happen-before actions subsequent to the + retrieval of the result via {@code Future.get()} in another thread. + +
  • Actions prior to "releasing" synchronizer methods such as + {@code Lock.unlock}, {@code Semaphore.release}, and + {@code CountDownLatch.countDown} happen-before actions + subsequent to a successful "acquiring" method such as + {@code Lock.lock}, {@code Semaphore.acquire}, + {@code Condition.await}, and {@code CountDownLatch.await} on the + same synchronizer object in another thread. + +
  • For each pair of threads that successfully exchange objects via + an {@code Exchanger}, actions prior to the {@code exchange()} + in each thread happen-before those subsequent to the + corresponding {@code exchange()} in another thread. + +
  • Actions prior to calling {@code CyclicBarrier.await} + happen-before actions performed by the barrier action, and + actions performed by the barrier action happen-before actions + subsequent to a successful return from the corresponding {@code await} + in other threads. + +
+ +@since 1.5 + + diff --git a/libjava/classpath/external/jsr166/readme b/libjava/classpath/external/jsr166/readme new file mode 100644 index 00000000000..eef3c916996 --- /dev/null +++ b/libjava/classpath/external/jsr166/readme @@ -0,0 +1,45 @@ +The software comprising JSR166 was written by Doug Lea with assistance +from members of JCP JSR-166 Expert roup and released to the public +domain, as explained at: +http://creativecommons.org/licenses/publicdomain, excepting portions +of the class java.util.concurrent.CopyOnWriteArrayList, which were +adapted from class java.util.ArrayList, written by Sun Microsystems, +Inc, which are used with kind permission, and subject to the +following: + +Copyright 2002-2004 Sun Microsystems, Inc. All rights reserved. Use is +subject to the following license terms. + + "Sun hereby grants you a non-exclusive, worldwide, non-transferrable + license to use and distribute the Java Software technologies as part + of a larger work in source and binary forms, with or without + modification, provided that the following conditions are met: + + -Neither the name of or trademarks of Sun may be used to endorse or + promote products derived from the Java Software technology without + specific prior written permission. + + -Redistributions of source or binary code must be accompanied by the + following notice and disclaimers: + + Portions copyright Sun Microsystems, Inc. Used with kind permission. + + This software is provided AS IS, without a warranty of any kind. ALL + EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND + WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PUPOSE OR + NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN + MICROSYSTEMS, INC. AND ITS LICENSORS SHALL NOT BE LIABLE + FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF + USING, MODIFYING OR DISTRIBUTING THE SOFTWARE OR ITS + DERIVATIVES. IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR + ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR + DATA, OR FOR DIRECT, INDIRECT,CONSQUENTIAL, INCIDENTAL + OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF + THE THEORY OR LIABILITY, ARISING OUT OF THE USE OF OR + INABILITY TO USE SOFTWARE, EVEN IF SUN MICROSYSTEMS, INC. + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + You acknowledge that Software is not designed, licensed or intended for + use in the design, construction, operation or maintenance of any nuclear + facility." diff --git a/libjava/classpath/external/relaxngDatatype/.cvsignore b/libjava/classpath/external/relaxngDatatype/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/external/relaxngDatatype/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/external/relaxngDatatype/Makefile.in b/libjava/classpath/external/relaxngDatatype/Makefile.in index a70d0b24dff..0d40cf484b3 100644 --- a/libjava/classpath/external/relaxngDatatype/Makefile.in +++ b/libjava/classpath/external/relaxngDatatype/Makefile.in @@ -41,12 +41,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -157,6 +159,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -278,7 +282,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ EXTRA_DIST = README.txt \ copying.txt \ diff --git a/libjava/classpath/external/sax/.cvsignore b/libjava/classpath/external/sax/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/external/sax/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/external/sax/Makefile.in b/libjava/classpath/external/sax/Makefile.in index 47f284c1c0a..0f0077129b1 100644 --- a/libjava/classpath/external/sax/Makefile.in +++ b/libjava/classpath/external/sax/Makefile.in @@ -41,12 +41,14 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -157,6 +159,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -278,7 +282,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ EXTRA_DIST = README \ org/xml/sax/ext/Attributes2.java \ diff --git a/libjava/classpath/external/sax/org/xml/sax/AttributeList.java b/libjava/classpath/external/sax/org/xml/sax/AttributeList.java index 74b74b275e9..7d8e9beec37 100644 --- a/libjava/classpath/external/sax/org/xml/sax/AttributeList.java +++ b/libjava/classpath/external/sax/org/xml/sax/AttributeList.java @@ -1,7 +1,7 @@ // SAX Attribute List Interface. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: AttributeList.java,v 1.10 2004/12/11 15:41:09 dog Exp $ +// $Id: AttributeList.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/Attributes.java b/libjava/classpath/external/sax/org/xml/sax/Attributes.java index 6d3708eef01..51735908936 100644 --- a/libjava/classpath/external/sax/org/xml/sax/Attributes.java +++ b/libjava/classpath/external/sax/org/xml/sax/Attributes.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the public domain. -// $Id: Attributes.java,v 1.10 2004/12/11 15:41:09 dog Exp $ +// $Id: Attributes.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java b/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java index 21f84ff7ace..c0df614108d 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java +++ b/libjava/classpath/external/sax/org/xml/sax/ContentHandler.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the public domain. -// $Id: ContentHandler.java,v 1.10 2004/12/11 15:41:09 dog Exp $ +// $Id: ContentHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java b/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java index ef08d450b7e..f894298cded 100644 --- a/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java +++ b/libjava/classpath/external/sax/org/xml/sax/DTDHandler.java @@ -1,7 +1,7 @@ // SAX DTD handler. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: DTDHandler.java,v 1.10 2004/12/11 15:41:09 dog Exp $ +// $Id: DTDHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java b/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java index 8b0a07f57ce..08429b6bcf4 100644 --- a/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java +++ b/libjava/classpath/external/sax/org/xml/sax/DocumentHandler.java @@ -1,7 +1,7 @@ // SAX document handler. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: DocumentHandler.java,v 1.10 2004/12/11 15:41:09 dog Exp $ +// $Id: DocumentHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java b/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java index a5c6aa82c3c..e240ba14b48 100644 --- a/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java +++ b/libjava/classpath/external/sax/org/xml/sax/EntityResolver.java @@ -1,7 +1,7 @@ // SAX entity resolver. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: EntityResolver.java,v 1.10 2004/12/11 15:41:09 dog Exp $ +// $Id: EntityResolver.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java b/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java index 940a824cced..5ebe3926321 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java +++ b/libjava/classpath/external/sax/org/xml/sax/ErrorHandler.java @@ -1,7 +1,7 @@ // SAX error handler. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: ErrorHandler.java,v 1.10 2004/12/11 15:41:09 dog Exp $ +// $Id: ErrorHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java b/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java index 8988a73023a..7d6ce73616a 100644 --- a/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java +++ b/libjava/classpath/external/sax/org/xml/sax/HandlerBase.java @@ -1,7 +1,7 @@ // SAX default handler base class. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: HandlerBase.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: HandlerBase.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/InputSource.java b/libjava/classpath/external/sax/org/xml/sax/InputSource.java index 15b0ff00eda..3737b63712d 100644 --- a/libjava/classpath/external/sax/org/xml/sax/InputSource.java +++ b/libjava/classpath/external/sax/org/xml/sax/InputSource.java @@ -1,7 +1,7 @@ // SAX input source. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: InputSource.java,v 1.12 2004/12/11 15:41:10 dog Exp $ +// $Id: InputSource.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/Locator.java b/libjava/classpath/external/sax/org/xml/sax/Locator.java index 73ad7dac739..63947df7ac7 100644 --- a/libjava/classpath/external/sax/org/xml/sax/Locator.java +++ b/libjava/classpath/external/sax/org/xml/sax/Locator.java @@ -1,7 +1,7 @@ // SAX locator interface for document events. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: Locator.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: Locator.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/Parser.java b/libjava/classpath/external/sax/org/xml/sax/Parser.java index 73e4584539f..5866eb09ce1 100644 --- a/libjava/classpath/external/sax/org/xml/sax/Parser.java +++ b/libjava/classpath/external/sax/org/xml/sax/Parser.java @@ -1,7 +1,7 @@ // SAX parser interface. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: Parser.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: Parser.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/SAXException.java b/libjava/classpath/external/sax/org/xml/sax/SAXException.java index c6f1c58ffed..b3c23e9aedb 100644 --- a/libjava/classpath/external/sax/org/xml/sax/SAXException.java +++ b/libjava/classpath/external/sax/org/xml/sax/SAXException.java @@ -1,7 +1,7 @@ // SAX exception class. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: SAXException.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: SAXException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java b/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java index e8802ce82cc..dc411b105ce 100644 --- a/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java +++ b/libjava/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the Public Domain. -// $Id: SAXNotRecognizedException.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: SAXNotRecognizedException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java b/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java index 56a7b44951c..232ce8026de 100644 --- a/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java +++ b/libjava/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the Public Domain. -// $Id: SAXNotSupportedException.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: SAXNotSupportedException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java b/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java index ace289112e0..c49ff095be3 100644 --- a/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java +++ b/libjava/classpath/external/sax/org/xml/sax/SAXParseException.java @@ -1,7 +1,7 @@ // SAX exception class. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: SAXParseException.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: SAXParseException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/XMLFilter.java b/libjava/classpath/external/sax/org/xml/sax/XMLFilter.java index 98aaba10808..363328e2d55 100644 --- a/libjava/classpath/external/sax/org/xml/sax/XMLFilter.java +++ b/libjava/classpath/external/sax/org/xml/sax/XMLFilter.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the Public Domain. -// $Id: XMLFilter.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: XMLFilter.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/XMLReader.java b/libjava/classpath/external/sax/org/xml/sax/XMLReader.java index 3888353e5d4..92d0a94e3d1 100644 --- a/libjava/classpath/external/sax/org/xml/sax/XMLReader.java +++ b/libjava/classpath/external/sax/org/xml/sax/XMLReader.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the Public Domain. -// $Id: XMLReader.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: XMLReader.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java b/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java index 56d7cdbfefe..5c839bd1acf 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2.java @@ -1,7 +1,7 @@ // Attributes2.java - extended Attributes // http://www.saxproject.org // Public Domain: no warranty. -// $Id: Attributes2.java,v 1.8 2004/12/11 15:41:10 dog Exp $ +// $Id: Attributes2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java b/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java index ebc9c07d9ae..485a5d6ac44 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java @@ -1,7 +1,7 @@ // Attributes2Impl.java - extended AttributesImpl // http://www.saxproject.org // Public Domain: no warranty. -// $Id: Attributes2Impl.java,v 1.8 2004/12/11 15:41:10 dog Exp $ +// $Id: Attributes2Impl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java b/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java index 2e8486bc8a6..1bb4dea4a41 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/DeclHandler.java @@ -1,7 +1,7 @@ // DeclHandler.java - Optional handler for DTD declaration events. // http://www.saxproject.org // Public Domain: no warranty. -// $Id: DeclHandler.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: DeclHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java b/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java index affe7c01b5f..2b792e9df24 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java @@ -1,7 +1,7 @@ // DefaultHandler2.java - extended DefaultHandler // http://www.saxproject.org // Public Domain: no warranty. -// $Id: DefaultHandler2.java,v 1.8 2004/12/11 15:41:10 dog Exp $ +// $Id: DefaultHandler2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java b/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java index 57b0d83e852..1936f7e0421 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java @@ -1,7 +1,7 @@ // EntityResolver2.java - Extended SAX entity resolver. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: EntityResolver2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ +// $Id: EntityResolver2.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java b/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java index db020d24c78..076bdf857c2 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java @@ -1,7 +1,7 @@ // LexicalHandler.java - optional handler for lexical parse events. // http://www.saxproject.org // Public Domain: no warranty. -// $Id: LexicalHandler.java,v 1.10 2004/12/11 15:41:10 dog Exp $ +// $Id: LexicalHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java index 2fd9fc25afa..5fe3ba7706a 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2.java @@ -1,7 +1,7 @@ // Locator2.java - extended Locator // http://www.saxproject.org // Public Domain: no warranty. -// $Id: Locator2.java,v 1.8 2004/12/11 15:41:10 dog Exp $ +// $Id: Locator2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java index 52f6331b5ab..f0b35459dba 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java @@ -1,7 +1,7 @@ // Locator2Impl.java - extended LocatorImpl // http://www.saxproject.org // Public Domain: no warranty. -// $Id: Locator2Impl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ +// $Id: Locator2Impl.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/package.html b/libjava/classpath/external/sax/org/xml/sax/ext/package.html index 12866eb38b7..0b744800108 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/package.html +++ b/libjava/classpath/external/sax/org/xml/sax/ext/package.html @@ -1,5 +1,5 @@ - +

diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java index d691fcc7d00..ca859fb1450 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java @@ -1,7 +1,7 @@ // SAX default implementation for AttributeList. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: AttributeListImpl.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: AttributeListImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java index 02139d9fa7a..8753968ba0a 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the public domain. -// $Id: AttributesImpl.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: AttributesImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java b/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java index 9fc9895bdb0..e01c3be403d 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the public domain. -// $Id: DefaultHandler.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: DefaultHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java index a37467b5a23..6fa4857277c 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java @@ -1,7 +1,7 @@ // SAX default implementation for Locator. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: LocatorImpl.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: LocatorImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java b/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java index b4edc707f2b..01e11faf83e 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // This class is in the Public Domain. NO WARRANTY! -// $Id: NamespaceSupport.java,v 1.14 2004/12/11 15:41:10 dog Exp $ +// $Id: NamespaceSupport.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java b/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java index 10ef1276fdf..70c043eb42f 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/NewInstance.java @@ -3,7 +3,7 @@ // Written by Edwin Goei, edwingo@apache.org // and by David Brownell, dbrownell@users.sourceforge.net // NO WARRANTY! This class is in the Public Domain. -// $Id: NewInstance.java,v 1.9 2004/12/11 15:41:10 dog Exp $ +// $Id: NewInstance.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java index 84e18f06782..748ad1c8499 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the public domain. -// $Id: ParserAdapter.java,v 1.12 2004/12/11 15:41:10 dog Exp $ +// $Id: ParserAdapter.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java index d70b853c9ea..23139981088 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java @@ -1,7 +1,7 @@ // SAX parser factory. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: ParserFactory.java,v 1.11 2004/12/11 15:41:10 dog Exp $ +// $Id: ParserFactory.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java index bdde150bb48..64ff0a4cf88 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the Public Domain. -// $Id: XMLFilterImpl.java,v 1.12 2004/12/11 15:41:10 dog Exp $ +// $Id: XMLFilterImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java index 566e69b8d7b..d2214747d74 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the public domain. -// $Id: XMLReaderAdapter.java,v 1.1 2004/12/23 22:38:42 mark Exp $ +// $Id: XMLReaderAdapter.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java index f2f51b52b3d..0516ff24e71 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java @@ -3,7 +3,7 @@ // Written by David Megginson // and by David Brownell // NO WARRANTY! This class is in the Public Domain. -// $Id: XMLReaderFactory.java,v 1.14 2004/12/11 15:41:10 dog Exp $ +// $Id: XMLReaderFactory.java,v 1.1 2004/12/23 22:38:42 mark Exp $ package org.xml.sax.helpers; import java.io.BufferedReader; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/package.html b/libjava/classpath/external/sax/org/xml/sax/helpers/package.html index f3c7c9629cb..06d4a30a63c 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/package.html +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/package.html @@ -1,5 +1,5 @@ - +

This package contains "helper" classes, including diff --git a/libjava/classpath/external/sax/org/xml/sax/package.html b/libjava/classpath/external/sax/org/xml/sax/package.html index 4596a71f0ff..b71f67fdda7 100644 --- a/libjava/classpath/external/sax/org/xml/sax/package.html +++ b/libjava/classpath/external/sax/org/xml/sax/package.html @@ -1,5 +1,5 @@ - +

This package provides the core SAX APIs. diff --git a/libjava/classpath/external/w3c_dom/.cvsignore b/libjava/classpath/external/w3c_dom/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/external/w3c_dom/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/external/w3c_dom/COPYRIGHT.html b/libjava/classpath/external/w3c_dom/COPYRIGHT.html new file mode 100644 index 00000000000..c7e0e497a5f --- /dev/null +++ b/libjava/classpath/external/w3c_dom/COPYRIGHT.html @@ -0,0 +1,106 @@ + + + + + W3C IPR SOFTWARE NOTICE + + + +

+ W3C IPR SOFTWARE NOTICE +

+

+ Copyright © 2002 World Wide Web + Consortium, (Massachusetts + Institute of Technology, Institut + National de Recherche en Informatique et en Automatique, Keio University). All Rights + Reserved. +

+

+ The DOM bindings are published under the W3C Software Copyright Notice + and License. The software license requires "Notice of any changes or + modifications to the W3C files, including the date changes were made." + Consequently, modified versions of the DOM bindings must document that + they do not conform to the W3C standard; in the case of the IDL + definitions, the pragma prefix can no longer be 'w3c.org'; in the case of + the Java language binding, the package names can no longer be in the + 'org.w3c' package. +

+

+ Note: The original version of the W3C Software Copyright Notice + and License could be found at http://www.w3.org/Consortium/Legal/copyright-software-19980720 +

+

+ Copyright © 1994-2002 World Wide Web + Consortium, (Massachusetts + Institute of Technology, Institut + National de Recherche en Informatique et en Automatique, Keio University). All Rights + Reserved. http://www.w3.org/Consortium/Legal/ +

+

+ This W3C work (including software, documents, or other related items) is + being provided by the copyright holders under the following license. By + obtaining, using and/or copying this work, you (the licensee) agree that + you have read, understood, and will comply with the following terms and + conditions: +

+

+ Permission to use, copy, and modify this software and its documentation, + with or without modification,  for any purpose and without fee or + royalty is hereby granted, provided that you include the following on ALL + copies of the software and documentation or portions thereof, including + modifications, that you make: +

+
    +
  1. + The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. +
  2. +
  3. + Any pre-existing intellectual property disclaimers, notices, or terms + and conditions. If none exist, a short notice of the following form + (hypertext is preferred, text is permitted) should be used within the + body of any redistributed or derivative code: "Copyright © + [$date-of-software] World Wide Web + Consortium, (Massachusetts + Institute of Technology, Institut + National de Recherche en Informatique et en Automatique, Keio University). All Rights + Reserved. http://www.w3.org/Consortium/Legal/" +
  4. +
  5. + Notice of any changes or modifications to the W3C files, including the + date changes were made. (We recommend you provide URIs to the location + from which the code is derived.) +
  6. +
+

+ THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT + HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS + FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR + DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, + TRADEMARKS OR OTHER RIGHTS. +

+

+ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR + DOCUMENTATION. +

+

+ The name and trademarks of copyright holders may NOT be used in + advertising or publicity pertaining to the software without specific, + written prior permission. Title to copyright in this software and any + associated documentation will at all times remain with copyright + holders. +

+ + diff --git a/libjava/classpath/external/w3c_dom/Makefile.in b/libjava/classpath/external/w3c_dom/Makefile.in index 104bcc31a1f..6bf5ded7628 100644 --- a/libjava/classpath/external/w3c_dom/Makefile.in +++ b/libjava/classpath/external/w3c_dom/Makefile.in @@ -41,12 +41,14 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -157,6 +159,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -278,7 +282,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ EXTRA_DIST = README \ org/w3c/dom/Attr.java \ diff --git a/libjava/classpath/gnu/CORBA/CDR/Vio.java b/libjava/classpath/gnu/CORBA/CDR/Vio.java index fd878cb3555..28f1c5672f6 100644 --- a/libjava/classpath/gnu/CORBA/CDR/Vio.java +++ b/libjava/classpath/gnu/CORBA/CDR/Vio.java @@ -155,7 +155,6 @@ public abstract class Vio * read(InputStream, Class) or read(InputStream, Serializable). * * @param input a stream to read from. - * @param repository_id a repository id of the object being read, may be null. * * @return the loaded value. * @@ -173,7 +172,7 @@ public abstract class Vio * is known. Hence it may be faster to use the alternative methods, * read(InputStream, Class) or read(InputStream, Serializable). * - * @param an_input a stream to read from. + * @param input a stream to read from. * @param repository_id a repository id of the object being read, may be null. * * @return the loaded value. @@ -904,7 +903,7 @@ public abstract class Vio * * @param output an output stream to write into. * @param value a value to write. - * @param id a value repository id (can be either single string or string + * @param ids a value repository id (can be either single string or string * array). * @param helper a helper, writing object - specifical part. Can be null if * the value should be written using other methods. diff --git a/libjava/classpath/gnu/CORBA/CollocatedOrbs.java b/libjava/classpath/gnu/CORBA/CollocatedOrbs.java new file mode 100644 index 00000000000..fc1e513efec --- /dev/null +++ b/libjava/classpath/gnu/CORBA/CollocatedOrbs.java @@ -0,0 +1,164 @@ +/* CollocatedOrbs.java -- Handles collocations + 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 gnu.CORBA; + +import gnu.CORBA.Poa.gnuServantObject; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.ArrayList; + +import org.omg.CORBA.LocalObject; +import org.omg.CORBA.portable.Delegate; +import org.omg.CORBA.portable.ObjectImpl; + +/** + * This class provides support for the direct method invocations without + * involving the network in the case when both ORBs run on the same java + * virtual machine. Special attention is only needed when call is made + * between two independent ORBs, instantiated via ORB.init. The call to the + * object, obtained via IOR reference from the ORB where it was locally + * connected is always local anyway. + * + * For security reasons it may be sensible to keep this class and all support + * package private. + * + * @author Audrius Meskauskas + */ +class CollocatedOrbs +{ + /** + * This field is used in automated Classpath specific testing to disable + * the direct calls. + */ + static boolean DIRECT_CALLS_ALLOWED = true; + + /** + * Containts the references of the all running GNU Classpath ORBs in the + * local virtual machine. GNU Classpath ORBs register themselves here when + * created and unregister when either ORB.destroy is called or in the + * finalizer. + */ + private static ArrayList orbs = new ArrayList(); + + /** + * The address of the local host. + */ + static String localHost; + + static + { + try + { + localHost = InetAddress.getLocalHost().getHostAddress(); + } + catch (UnknownHostException ex) + { + throw new InternalError("Local host is not accessible:" + ex); + } + } + + /** + * Register the new ORB + * + * @param orb the orb to register + */ + static void registerOrb(OrbFunctional orb) + { + if (DIRECT_CALLS_ALLOWED) + synchronized (orbs) + { + assert ! orbs.contains(orb); + orbs.add(orb); + } + } + + /** + * Unregister the ORB. The ORB will no longer be reacheable locally but may + * be reacheable via network as if it would be remote. + * + * @param orb the orb to unregister + */ + static void unregisterOrb(OrbFunctional orb) + { + if (DIRECT_CALLS_ALLOWED) + synchronized (orbs) + { + assert orbs.contains(orb); + orbs.remove(orb); + } + } + + /** + * Search the possibly local object. If the IOR is not local or none of the + * found ORBs of this virtual machine knows about it, null is returned. + * + * @param ior the IOR to search + * @return the found local CORBA object or null in not found. + */ + static org.omg.CORBA.Object searchLocalObject(IOR ior) + { + if (! DIRECT_CALLS_ALLOWED && ! ior.Internet.host.equals(localHost)) + return null; + + synchronized (orbs) + { + OrbFunctional orb; + org.omg.CORBA.Object object; + for (int i = 0; i < orbs.size(); i++) + { + orb = (OrbFunctional) orbs.get(i); + object = orb.find_connected_object(ior.key, ior.Internet.port); + if (object != null) + { + if (object instanceof SafeForDirectCalls) + { + return object; + } + else if (object instanceof gnuServantObject) + { + return object; + } + } + } + } + return null; + } + +} diff --git a/libjava/classpath/gnu/CORBA/Connected_objects.java b/libjava/classpath/gnu/CORBA/Connected_objects.java index ce5761007c0..53ef2dd17d9 100644 --- a/libjava/classpath/gnu/CORBA/Connected_objects.java +++ b/libjava/classpath/gnu/CORBA/Connected_objects.java @@ -242,4 +242,14 @@ public class Connected_objects free_object_number++; return instance_number; } + + /** + * Get the number of the connected objects. + * + * @return the size of the internal map. + */ + public int size() + { + return objects.size(); + } } \ No newline at end of file diff --git a/libjava/classpath/gnu/CORBA/NamingService/Binding_iterator_impl.java b/libjava/classpath/gnu/CORBA/NamingService/Binding_iterator_impl.java index 79d787083ca..108ca270d21 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/Binding_iterator_impl.java +++ b/libjava/classpath/gnu/CORBA/NamingService/Binding_iterator_impl.java @@ -1,5 +1,5 @@ /* Binding_iterator.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.CORBA.NamingService; +import gnu.CORBA.SafeForDirectCalls; + import org.omg.CosNaming.Binding; import org.omg.CosNaming.BindingHolder; import org.omg.CosNaming.BindingListHolder; @@ -51,7 +53,7 @@ import org.omg.CosNaming._BindingIteratorImplBase; * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class Binding_iterator_impl - extends _BindingIteratorImplBase + extends _BindingIteratorImplBase implements SafeForDirectCalls { /** * The value, returned by the {@link #next_one} when there diff --git a/libjava/classpath/gnu/CORBA/NamingService/Ext.java b/libjava/classpath/gnu/CORBA/NamingService/Ext.java index ee27e68cd79..d339cb194e6 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/Ext.java +++ b/libjava/classpath/gnu/CORBA/NamingService/Ext.java @@ -1,5 +1,5 @@ /* TransientContextExt.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.CORBA.NamingService; +import gnu.CORBA.SafeForDirectCalls; + import org.omg.CORBA.NO_IMPLEMENT; import org.omg.CORBA.Object; import org.omg.CORBA.portable.Delegate; @@ -61,7 +63,7 @@ import org.omg.CosNaming._NamingContextExtImplBase; * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class Ext - extends _NamingContextExtImplBase + extends _NamingContextExtImplBase implements SafeForDirectCalls { /** * The older version of the naming context, where all relevant calls diff --git a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java index c750b2eb4c0..aa922b96a54 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java +++ b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java @@ -193,9 +193,6 @@ public class NameParser boolean corbaname; - // The alternative addresses, if given. - ArrayList alt_addr = new ArrayList(); - // The version numbers with default values. int major = 1; int minor = 0; diff --git a/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java b/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java index 0e0782a5756..d717b9d4011 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java +++ b/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java @@ -1,5 +1,5 @@ /* NameTransformer.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -75,10 +75,6 @@ public class NameTransformer ArrayList components = new ArrayList(); StringTokenizer st = new StringTokenizer(a_name, "./\\", true); - String id; - String kind; - String next; - // Create the buffer array, reserving the last element for null. String[] n = new String[ st.countTokens() + 1 ]; diff --git a/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java b/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java index 3669879f22a..a8cd0b313b3 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java +++ b/libjava/classpath/gnu/CORBA/NamingService/NamingServiceTransient.java @@ -85,35 +85,26 @@ public class NamingServiceTransient } /** - * Start the naming service on the current host at the given port. The - * parameter -org.omg.CORBA.ORBInitialPort NNN or -ORBInitialPort NNN, if - * present, specifies the port, on that the service must be started. If this - * key is not specified, the service starts at the port 900. + * Start the naming service on the current host at the given port. * - * The parameter -ior FILE_NAME, if present, forces to store the ior string of - * this naming service to the specified file. - * - * @param args the parameter string. + * @param portArgument the port on which the service will be + * started, or -1 to use the default port, 900 + * @param fileArgument if non-null, store the IOR string of this + * naming service in a file by this name */ - public static void main(String[] args) + public static void start(int portArgument, String fileArgument) { int port = PORT; - String iorf = null; + + if (portArgument > -1) + port = portArgument; + + String iorf = fileArgument; try { // Create and initialize the ORB final OrbFunctional orb = new OrbFunctional(); - if (args.length > 1) - for (int i = 0; i < args.length - 1; i++) - { - if (args[i].endsWith("ORBInitialPort")) - port = Integer.parseInt(args[i + 1]); - - if (args[i].equals("-ior")) - iorf = args[i + 1]; - } - OrbFunctional.setPort(port); // Create the servant and register it with the ORB @@ -133,15 +124,6 @@ public class NamingServiceTransient p.close(); } - System.out.println("GNU Classpath transient naming service " - + "started at " + iorr.Internet.host + ":" + iorr.Internet.port - + " key 'NameService'.\n\n" - + "Copyright (C) 2006 Free Software Foundation\n" - + "This tool comes with ABSOLUTELY NO WARRANTY. " - + "This is free software, and you are\nwelcome to " - + "redistribute it under conditions, defined in " - + "GNU Classpath license.\n\n" + ior); - new Thread() { public void run() @@ -154,7 +136,7 @@ public class NamingServiceTransient catch (Exception e) { System.err.println("ERROR: " + e); - e.printStackTrace(System.out); + e.printStackTrace(System.err); } // Restore the default value for allocating ports for the subsequent diff --git a/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java b/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java index c2d8275e001..cec87931e28 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java +++ b/libjava/classpath/gnu/CORBA/NamingService/TransientContext.java @@ -54,6 +54,8 @@ import org.omg.CosNaming.NamingContextPackage.NotFound; import org.omg.CosNaming.NamingContextPackage.NotFoundReason; import org.omg.CosNaming._NamingContextImplBase; +import gnu.CORBA.SafeForDirectCalls; + import java.util.Iterator; import java.util.Map; @@ -69,7 +71,7 @@ import java.util.Map; */ public class TransientContext extends _NamingContextImplBase - implements NamingContext, NamingContextOperations + implements NamingContext, NamingContextOperations, SafeForDirectCalls { /** * Use serial version UID for interoperability. diff --git a/libjava/classpath/gnu/CORBA/OrbFunctional.java b/libjava/classpath/gnu/CORBA/OrbFunctional.java index 7b9c34ada12..bfb5e3d86c1 100644 --- a/libjava/classpath/gnu/CORBA/OrbFunctional.java +++ b/libjava/classpath/gnu/CORBA/OrbFunctional.java @@ -938,48 +938,55 @@ public class OrbFunctional extends OrbRestricted /** * Start the ORBs main working cycle (receive invocation - invoke on the local - * object - send response - wait for another invocation). - * - * The method only returns after calling {@link #shutdown(boolean)}. + * object - send response - wait for another invocation). The method only + * returns after calling {@link #shutdown(boolean)}. */ public void run() { - running = true; - - // Instantiate the port server for each socket. - Iterator iter = connected_objects.entrySet().iterator(); - Map.Entry m; - Connected_objects.cObject obj; - - while (iter.hasNext()) + CollocatedOrbs.registerOrb(this); + try { - m = (Map.Entry) iter.next(); - obj = (Connected_objects.cObject) m.getValue(); + running = true; - portServer subserver; + // Instantiate the port server for each socket. + Iterator iter = connected_objects.entrySet().iterator(); + Map.Entry m; + Connected_objects.cObject obj; - if (obj.identity == null) - { - subserver = new portServer(obj.port); - portServers.add(subserver); - } - else - subserver = (portServer) identities.get(obj.identity); - - if (!subserver.isAlive()) + while (iter.hasNext()) { - // Reuse the current thread for the last portServer. - if (!iter.hasNext()) + m = (Map.Entry) iter.next(); + obj = (Connected_objects.cObject) m.getValue(); + + portServer subserver; + + if (obj.identity == null) { - // Discard the iterator, eliminating lock checks. - iter = null; - subserver.run(); - return; + subserver = new portServer(obj.port); + portServers.add(subserver); } else - subserver.start(); + subserver = (portServer) identities.get(obj.identity); + + if (! subserver.isAlive()) + { + // Reuse the current thread for the last portServer. + if (! iter.hasNext()) + { + // Discard the iterator, eliminating lock checks. + iter = null; + subserver.run(); + return; + } + else + subserver.start(); + } } } + finally + { + CollocatedOrbs.unregisterOrb(this); + } } /** @@ -1051,22 +1058,26 @@ public class OrbFunctional extends OrbRestricted org.omg.CORBA.Object object = find_local_object(ior); if (object == null) { - ObjectImpl impl = StubLocator.search(this, ior); - try - { - if (impl._get_delegate() == null) - impl._set_delegate(new IorDelegate(this, ior)); - } - catch (BAD_OPERATION ex) + // Check maybe the local object on another ORB, but same VM. + object = CollocatedOrbs.searchLocalObject(ior); + if (object == null) { - // Some colaborants may throw this exception - // in response to the attempt to get the unset delegate. - impl._set_delegate(new IorDelegate(this, ior)); - } + // Surely remote object. + ObjectImpl impl = StubLocator.search(this, ior); + try + { + if (impl._get_delegate() == null) + impl._set_delegate(new IorDelegate(this, ior)); + } + catch (BAD_OPERATION ex) + { + // Some colaborants may throw this exception + // in response to the attempt to get the unset delegate. + impl._set_delegate(new IorDelegate(this, ior)); + } - object = impl; - // TODO remove commented out code below. - // connected_objects.add(ior.key, impl, ior.Internet.port, null); + object = impl; + } } return object; } @@ -1239,15 +1250,10 @@ public class OrbFunctional extends OrbRestricted } if (ior.Id == null) ior.Id = ref.object.getClass().getName(); - try - { - ior.Internet.host = InetAddress.getLocalHost().getHostAddress(); - ior.Internet.port = ref.port; - } - catch (UnknownHostException ex) - { - throw new BAD_OPERATION("Cannot resolve the local host address"); - } + + ior.Internet.host = CollocatedOrbs.localHost; + ior.Internet.port = ref.port; + return ior; } @@ -1775,4 +1781,14 @@ public class OrbFunctional extends OrbRestricted running = false; super.finalize(); } + + /** + * Get the number of objects that are connected to this ORB. + * + * @return the number of objects, connected to this ORB. + */ + public int countConnectedObjects() + { + return connected_objects.size(); + } } \ No newline at end of file diff --git a/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java b/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java index a2c0bb106c3..4a9ef8d9044 100644 --- a/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java +++ b/libjava/classpath/gnu/CORBA/Poa/LocalRequest.java @@ -193,11 +193,14 @@ public class LocalRequest extends gnuRequest implements ResponseHandler, /** * Make an invocation and return a stream from where the results can be read. * - * @param the invoke handler (can be null, then it is obtained self + * @param handler the invoke handler (can be null, then it is obtained self * dependently). */ public org.omg.CORBA.portable.InputStream v_invoke(InvokeHandler handler) { + // Check maybe POA is in the discarding mode (will throw TRANSIENT if it is). + poa.checkDiscarding(); + // Local request must be intercepted both by server and request // interceptors. boolean s_intercept = false; @@ -246,7 +249,7 @@ public class LocalRequest extends gnuRequest implements ResponseHandler, s_interceptor.receive_request_service_contexts(s_info); } - + if (handler == null) { handler = object.getHandler(operation(), cookie, false); diff --git a/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java b/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java index bb00aab70eb..4fc51ff154b 100644 --- a/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java +++ b/libjava/classpath/gnu/CORBA/Poa/ORB_1_4.java @@ -290,4 +290,4 @@ public class ORB_1_4 } } -} \ No newline at end of file +} diff --git a/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java b/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java index 460a0a6029a..8ceec23d781 100644 --- a/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java +++ b/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java @@ -1582,7 +1582,7 @@ public class gnuPOA * * @throws TRANSIENT if the POA is in discarding mode. */ - private void checkDiscarding() + void checkDiscarding() throws TRANSIENT { if (m_manager.get_state() == State.DISCARDING) @@ -1813,4 +1813,4 @@ public class gnuPOA { return ref_template_ids; } -} \ No newline at end of file +} diff --git a/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java b/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java index 020897a45b4..77b0ff46792 100644 --- a/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java +++ b/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java @@ -129,6 +129,12 @@ public class gnuServantObject extends ObjectImpl * ids are requested from the servant. */ public final String[] repository_ids; + + /** + * True indicates that the NO_RETAIN policy applies for the servant. + * The servant must be discarded after the each call. + */ + boolean noRetain; /** * Create an object with no connected servant. The servant must be set later. @@ -147,6 +153,8 @@ public class gnuServantObject extends ObjectImpl manager = a_poa.the_POAManager(); poa = a_poa; orb = an_orb; + + noRetain = poa.applies(ServantRetentionPolicyValue.NON_RETAIN); } /** @@ -182,6 +190,8 @@ public class gnuServantObject extends ObjectImpl } repository_ids = null; orb = an_orb; + + noRetain = poa != null && poa.applies(ServantRetentionPolicyValue.NON_RETAIN); } /** @@ -222,7 +232,7 @@ public class gnuServantObject extends ObjectImpl boolean forwarding_allowed ) throws gnuForwardRequest { - if (servant != null) + if (servant != null && !noRetain) { return servantToHandler(servant); } @@ -641,13 +651,14 @@ public class gnuServantObject extends ObjectImpl poa.servant_locator.postinvoke(Id, poa, method, cookie.value, servant ); - servant = null; } } } finally { orb.currents.remove(Thread.currentThread()); + if (noRetain) + servant = null; } } catch (ForwardRequest fex) diff --git a/libjava/classpath/gnu/CORBA/SafeForDirectCalls.java b/libjava/classpath/gnu/CORBA/SafeForDirectCalls.java new file mode 100644 index 00000000000..f3efb6677f0 --- /dev/null +++ b/libjava/classpath/gnu/CORBA/SafeForDirectCalls.java @@ -0,0 +1,50 @@ +/* SafeForDirectCalls.java -- FIXME: briefly describe file purpose + 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 gnu.CORBA; + +/** + * This interface marks that the object does not modify the passed read only + * parameters and hence, if it is local, it is safe to call the methods + * directly, without cloning such parameters. Otherwise such parameters should + * be cloned. + */ +public interface SafeForDirectCalls +{ + +} diff --git a/libjava/classpath/gnu/CORBA/SimpleDelegate.java b/libjava/classpath/gnu/CORBA/SimpleDelegate.java index c6e20e17374..cb0a7d6034d 100644 --- a/libjava/classpath/gnu/CORBA/SimpleDelegate.java +++ b/libjava/classpath/gnu/CORBA/SimpleDelegate.java @@ -98,22 +98,31 @@ public class SimpleDelegate } /** - * Not implemented. - * - * @throws NO_IMPLEMENT, always. + * Create the request for the local call */ public Request create_request(org.omg.CORBA.Object target, Context context, String operation, NVList parameters, NamedValue returns ) { - throw new NO_IMPLEMENT(); + if (orb instanceof OrbFunctional) + { + ((OrbFunctional) orb).ensureRunning(); + } + gnuRequest g = new gnuRequest(); + g.setORB(orb); + g.setOperation(operation); + g.setIor(ior); + g.m_target = target; + g.ctx(context); + g.set_args(parameters); + if (returns != null) + g.set_result(returns); + return g; } /** - * Not implemented. - * - * @throws NO_IMPLEMENT, always. + * Create the request for the local call. */ public Request create_request(org.omg.CORBA.Object target, Context context, String operation, NVList parameters, @@ -121,7 +130,22 @@ public class SimpleDelegate ContextList ctx_list ) { - throw new NO_IMPLEMENT(); + if (orb instanceof OrbFunctional) + { + ((OrbFunctional) orb).ensureRunning(); + } + gnuRequest g = new gnuRequest(); + g.setORB(orb); + g.setOperation(operation); + g.setIor(ior); + g.m_target = target; + g.ctx(context); + g.set_args(parameters); + g.set_exceptions(exceptions); + g.set_context_list(ctx_list); + if (returns != null) + g.set_result(returns); + return g; } /** diff --git a/libjava/classpath/gnu/classpath/.cvsignore b/libjava/classpath/gnu/classpath/.cvsignore new file mode 100644 index 00000000000..11f6639ebbd --- /dev/null +++ b/libjava/classpath/gnu/classpath/.cvsignore @@ -0,0 +1 @@ +Configuration.java diff --git a/libjava/classpath/gnu/classpath/ListenerData.java b/libjava/classpath/gnu/classpath/ListenerData.java new file mode 100644 index 00000000000..284fa02f192 --- /dev/null +++ b/libjava/classpath/gnu/classpath/ListenerData.java @@ -0,0 +1,136 @@ +/* ListenerData.java - Class to contain data about management bean listeners + Copyright (C) 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 gnu.classpath; + +import javax.management.NotificationFilter; +import javax.management.NotificationListener; + +/** + * Container for data on management listeners. Wraps + * a {@link javax.management.NotificationListener}, + * {@link javax.management.NotificationFilter} and + * passback object in one class. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class ListenerData +{ + /** + * The listener itself. + */ + private NotificationListener listener; + + /** + * A filter to apply to incoming events. + */ + private NotificationFilter filter; + + /** + * An object to pass back to the listener on an + * event occurring. + */ + private Object passback; + + /** + * Constructs a new {@link ListenerData} with the specified + * listener, filter and passback object. + * + * @param listener the listener itself. + * @param filter the filter for incoming events. + * @param passback the object to passback on an incoming event. + */ + public ListenerData(NotificationListener listener, + NotificationFilter filter, Object passback) + { + this.listener = listener; + this.filter = filter; + this.passback = passback; + } + + /** + * Returns the listener. + * + * @return the listener. + */ + public NotificationListener getListener() + { + return listener; + } + + /** + * Returns the filter. + * + * @return the filter. + */ + public NotificationFilter getFilter() + { + return filter; + } + + /** + * Returns the passback object. + * + * @return the passback object. + */ + public Object getPassback() + { + return passback; + } + + /** + * Returns true if the supplied object is an instance of + * {@link ListenerData} and has the same listener, filter + * and passback object. + * + * @param obj the object to check. + * @return true if obj is equal to this. + */ + public boolean equals(Object obj) + { + if (obj instanceof ListenerData) + { + ListenerData data = (ListenerData) obj; + return (data.getListener() == listener && + data.getFilter() == filter && + data.getPassback() == passback); + } + return false; + } + +} diff --git a/libjava/classpath/gnu/classpath/SystemProperties.java b/libjava/classpath/gnu/classpath/SystemProperties.java index 991279eabb6..d091f1ed0c0 100644 --- a/libjava/classpath/gnu/classpath/SystemProperties.java +++ b/libjava/classpath/gnu/classpath/SystemProperties.java @@ -169,4 +169,5 @@ public class SystemProperties { return (String) properties.remove(name); } + } diff --git a/libjava/classpath/gnu/classpath/debug/Component.java b/libjava/classpath/gnu/classpath/debug/Component.java index 0cc38d7096a..dce257502a7 100644 --- a/libjava/classpath/gnu/classpath/debug/Component.java +++ b/libjava/classpath/gnu/classpath/debug/Component.java @@ -97,8 +97,13 @@ public final class Component extends Level * Trace details about the SSL key exchange. */ public static final Component SSL_KEY_EXCHANGE = new Component ("SSL KEY EXCHANGE", 2); + + /** + * Trace running of delegated tasks. + */ + public static final Component SSL_DELEGATED_TASK = new Component ("SSL DELEGATED TASK", 3); - /* Indices 3 and 4 reserved for future use by SSL components. */ + /* Index 4 reserved for future use by SSL components. */ /** * Trace the operation of cryptographic primitives. diff --git a/libjava/classpath/gnu/classpath/debug/SystemLogger.java b/libjava/classpath/gnu/classpath/debug/SystemLogger.java index 502b488702b..8919e80c785 100644 --- a/libjava/classpath/gnu/classpath/debug/SystemLogger.java +++ b/libjava/classpath/gnu/classpath/debug/SystemLogger.java @@ -42,11 +42,12 @@ import gnu.java.security.action.GetPropertyAction; import java.security.AccessController; import java.util.StringTokenizer; +import java.util.logging.Level; import java.util.logging.Logger; -public final class SystemLogger +public final class SystemLogger extends Logger { - public static final Logger SYSTEM = Logger.getLogger ("gnu.classpath"); + public static final SystemLogger SYSTEM = new SystemLogger(); static { @@ -62,12 +63,40 @@ public final class SystemLogger Component c = Component.forName (tok.nextToken ()); if (c != null) PreciseFilter.GLOBAL.enable (c); - SYSTEM.log (java.util.logging.Level.INFO, "enabled: {0}", c); + SYSTEM.log (Level.INFO, "enabled: {0}", c); } } + } - java.util.logging.Handler[] h = SYSTEM.getHandlers (); - for (int i = 0; i < h.length; i++) - System.out.println (h[i]); + /** + * Fetch the system logger instance. The logger returned is meant for debug + * and diagnostic logging for Classpath internals. + * + * @return The system logger. + */ + public static SystemLogger getSystemLogger() + { + // XXX Check some permission here? + return SYSTEM; + } + + /** + * Keep only one instance of the system logger. + */ + private SystemLogger() + { + super("gnu.classpath", null); + } + + /** + * Variable-arguments log method. + * + * @param level The level to log to. + * @param format The format string. + * @param args The arguments. + */ + public void logv(Level level, String format, Object... args) + { + log(level, format, args); } } diff --git a/libjava/classpath/gnu/java/awt/ComponentReshapeEvent.java b/libjava/classpath/gnu/java/awt/ComponentReshapeEvent.java new file mode 100644 index 00000000000..8f15c851933 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/ComponentReshapeEvent.java @@ -0,0 +1,85 @@ +/* WindowResizeEvent.java -- Used to synchronize the AWT and peer sizes + 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 gnu.java.awt; + +import java.awt.AWTEvent; +import java.awt.Component; + +/** + * This is used to update the AWT's knowledge about a Window's size when + * the user changes the window bounds. + * + * This event is _not_ posted to the eventqueue, but rather dispatched directly + * via Window.dispatchEvent(). It is the cleanest way we could find to update + * the AWT's knowledge of the window size. Small testprograms showed the + * following: + * - Component.reshape() and its derivatives are _not_ called. This makes sense + * as it could end up in loops,because this calls back into the peers. + * - Intercepting event dispatching for any events in + * EventQueue.dispatchEvent() showed that the size is still updated. So it + * is not done via an event dispatched over the eventqueue. + * + * Possible other candidates for implementation would have been: + * - Call a (private) callback method in Window/Component from the native + * side. + * - Call a (private) callback method in Window/Component via reflection. + * + * Both is uglier than sending this event directly. Note however that this + * is impossible to test, as Component.dispatchEvent() is final and can't be + * intercepted from outside code. But this impossibility to test the issue from + * outside code also means that this shouldn't raise any compatibility issues. + */ +public class ComponentReshapeEvent + extends AWTEvent +{ + + public int x; + public int y; + public int width; + public int height; + + public ComponentReshapeEvent(Component c, int x, int y, int width, int height) + { + super(c, 1999); + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } +} diff --git a/libjava/classpath/gnu/java/awt/LowPriorityEvent.java b/libjava/classpath/gnu/java/awt/LowPriorityEvent.java new file mode 100644 index 00000000000..c1558f6ff58 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/LowPriorityEvent.java @@ -0,0 +1,48 @@ +/* LowPriorityEvent.java -- Marks events with low priority + 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 gnu.java.awt; + +/** + * A marker interface that marks events with low priority. LowPriority events + * are dispatched _after_ other (normal priority) events by the EventQueue. + */ +public interface LowPriorityEvent +{ + // Empty marker interface. +} diff --git a/libjava/classpath/gnu/java/awt/color/PyccConverter.java b/libjava/classpath/gnu/java/awt/color/PyccConverter.java index cd50d8776cd..77ea28a3e92 100644 --- a/libjava/classpath/gnu/java/awt/color/PyccConverter.java +++ b/libjava/classpath/gnu/java/awt/color/PyccConverter.java @@ -37,7 +37,6 @@ exception statement from your version. */ package gnu.java.awt.color; - /** * PyccConverter - conversion routines for the PhotoYCC colorspace * @@ -52,21 +51,21 @@ public class PyccConverter implements ColorSpaceConverter { public float[] toRGB(float[] in) { - return null; + throw new UnsupportedOperationException(); } public float[] fromRGB(float[] in) { - return null; + throw new UnsupportedOperationException(); } public float[] toCIEXYZ(float[] in) { - return null; + throw new UnsupportedOperationException(); } public float[] fromCIEXYZ(float[] in) { - return null; + throw new UnsupportedOperationException(); } } diff --git a/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java b/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java index 4f922982273..b68fa105803 100644 --- a/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java +++ b/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java @@ -61,11 +61,13 @@ public class GtkDragSourceContextPeer private ComponentPeer peer; private Cursor cursor; private DragSourceContext context; + public static Component target; native void nativeStartDrag(Image i, int x, int y, int action, String target); native void connectSignals(ComponentPeer comp); native void create(ComponentPeer comp); native void nativeSetCursor(int cursor); + native void setTarget(GtkDropTargetContextPeer target); public GtkDragSourceContextPeer(DragGestureEvent e) { @@ -76,10 +78,18 @@ public class GtkDragSourceContextPeer create(peer); connectSignals(peer); cursor = comp.getCursor(); + + // FIXME: Where do we set the target? + + if ((target != null)) + setTarget(new GtkDropTargetContextPeer(target)); } ComponentPeer getComponentPeer(Component c) { + if (c == null) + return null; + Component curr = c; while (curr.getPeer() instanceof LightweightPeer) curr = curr.getParent(); @@ -93,7 +103,7 @@ public class GtkDragSourceContextPeer throws InvalidDnDOperationException { this.context = context; - + if (p == null) p = new Point(); diff --git a/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java b/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java index 50cd95d41ad..f24b3f39bcb 100644 --- a/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java +++ b/libjava/classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java @@ -50,10 +50,10 @@ public class GtkDropTargetContextPeer extends GtkGenericPeer implements DropTargetContextPeer { - - public GtkDropTargetContextPeer() + + public GtkDropTargetContextPeer(Object obj) { - super(null); + super(obj); } public void setTargetActions(int actions) diff --git a/libjava/classpath/gnu/java/awt/font/autofit/AxisHints.java b/libjava/classpath/gnu/java/awt/font/autofit/AxisHints.java new file mode 100644 index 00000000000..b2c9912342b --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/AxisHints.java @@ -0,0 +1,45 @@ +/* AxisHints.java -- FIXME: briefly describe file purpose + 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 gnu.java.awt.font.autofit; + +class AxisHints +{ + + Segment[] segments; +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Constants.java b/libjava/classpath/gnu/java/awt/font/autofit/Constants.java new file mode 100644 index 00000000000..cb3992825ab --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/Constants.java @@ -0,0 +1,61 @@ +/* Constants.java -- Some constants used in the autofitter + 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 gnu.java.awt.font.autofit; + +/** + * Some constants used in the autofitter. + */ +interface Constants +{ + + /** + * The horizontal dimension. + */ + static final int DIMENSION_HORZ = 0; + + /** + * The vertical dimension. + */ + static final int DIMENSION_VERT = 1; + + /** + * The number of dimensions. + */ + static final int DIMENSION_MAX = 2; +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java b/libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java new file mode 100644 index 00000000000..ad73a04a69b --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/GlyphHints.java @@ -0,0 +1,75 @@ +/* GlyphHints.java -- Data and methods for actual hinting + 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 gnu.java.awt.font.autofit; + +import gnu.java.awt.font.opentype.truetype.Zone; + +/** + * The data and methods used for the actual hinting process. + */ +class GlyphHints +{ + + int xScale; + int xDelta; + int yScale; + int yDelta; + + AxisHints[] axis; + + void rescale(ScriptMetrics metrics) + { + // TODO: Implement. + } + + void reload(Zone outline) + { + // TODO: Implement. + } + + void computeSegments(int dim) + { + // TODO: Implement. + } + + void linkSegments(int dim) + { + // TODO: Implement. + } +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Latin.java b/libjava/classpath/gnu/java/awt/font/autofit/Latin.java new file mode 100644 index 00000000000..0352b41a45a --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/Latin.java @@ -0,0 +1,177 @@ +/* Latin.java -- Latin specific glyph handling + 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 gnu.java.awt.font.autofit; + +import java.awt.geom.AffineTransform; + +import gnu.java.awt.font.opentype.OpenTypeFont; +import gnu.java.awt.font.opentype.truetype.Zone; + +/** + * Implements Latin specific glyph handling. + */ +class Latin + implements Script, Constants +{ + + private static final int MAX_WIDTHS = 16; + + public void applyHints(GlyphHints hints, ScriptMetrics metrics) + { + // TODO Auto-generated method stub + + } + + public void doneMetrics(ScriptMetrics metrics) + { + // TODO Auto-generated method stub + + } + + /** + * Initializes the hints object. + * + * @param hints the hints to initialize + * @param metrics the metrics to use + */ + public void initHints(GlyphHints hints, ScriptMetrics metrics) + { + hints.rescale(metrics); + LatinMetrics lm = (LatinMetrics) metrics; + hints.xScale = lm.axis[DIMENSION_HORZ].scale; + hints.xDelta = lm.axis[DIMENSION_HORZ].delta; + hints.yScale = lm.axis[DIMENSION_VERT].scale; + hints.yDelta = lm.axis[DIMENSION_VERT].delta; + // TODO: Set the scaler and other flags. + } + + /** + * Initializes the script metrics. + * + * @param metrics the script metrics to initialize + * @param face the font + */ + public void initMetrics(ScriptMetrics metrics, OpenTypeFont face) + { + assert metrics instanceof LatinMetrics; + LatinMetrics lm = (LatinMetrics) metrics; + lm.unitsPerEm = face.unitsPerEm; + + // TODO: Check for latin charmap. + + initWidths(lm, face, 'o'); + initBlues(lm, face); + } + + public void scaleMetrics(ScriptMetrics metrics) + { + // TODO Auto-generated method stub + + } + + /** + * Determines the standard stem widths. + * + * @param metrics the metrics to use + * @param face the font face + * @param ch the character that is used for getting the widths + */ + private void initWidths(LatinMetrics metrics, OpenTypeFont face, char ch) + { + GlyphHints hints = new GlyphHints(); + metrics.axis[DIMENSION_HORZ].widthCount = 0; + metrics.axis[DIMENSION_VERT].widthCount = 0; + int glyphIndex = face.getGlyph(ch); + // TODO: Avoid that AffineTransform constructor and change + // getRawGlyphOutline() to accept null or remove that parameter altogether. + // Consider this when the thing is done and we know what we need that for. + Zone outline = face.getRawGlyphOutline(glyphIndex, new AffineTransform()); + LatinMetrics dummy = new LatinMetrics(); + Scaler scaler = dummy.scaler; + dummy.unitsPerEm = metrics.unitsPerEm; + scaler.xScale = scaler.yScale = 10000; + scaler.xDelta = scaler.yDelta = 0; + scaler.face = face; + hints.rescale(dummy); + hints.reload(outline); + for (int dim = 0; dim < DIMENSION_MAX; dim++) + { + LatinAxis axis = metrics.axis[dim]; + AxisHints axHints = hints.axis[dim]; + int numWidths = 0; + hints.computeSegments(dim); + hints.linkSegments(dim); + Segment[] segs = axHints.segments; + for (int i = 0; i < segs.length; i++) + { + Segment seg = segs[i]; + Segment link = seg.link; + if (link != null && link.link == seg && link.index > i) + { + int dist = Math.abs(seg.pos - link.pos); + if (numWidths < MAX_WIDTHS) + axis.widths[numWidths++].org = dist; + } + } + } + for (int dim = 0; dim < DIMENSION_MAX; dim++) + { + LatinAxis axis = metrics.axis[dim]; + int stdw = axis.widthCount > 0 ? axis.widths[0].org + : constant(metrics, 50); + axis.edgeDistanceTreshold= stdw / 5; + } + } + + /** + * Initializes the blue zones of the font. + * + * @param metrics the metrics to use + * @param face the font face to analyze + */ + private void initBlues(LatinMetrics metrics, OpenTypeFont face) + { + // TODO: Implement. + } + + private int constant(LatinMetrics metrics, int c) + { + return c * (metrics.unitsPerEm / 2048); + } +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/LatinAxis.java b/libjava/classpath/gnu/java/awt/font/autofit/LatinAxis.java new file mode 100644 index 00000000000..8ca1e6d9ed2 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/LatinAxis.java @@ -0,0 +1,53 @@ +/* LatinAxis.java -- Axis specific data + 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 gnu.java.awt.font.autofit; + +/** + * Some axis specific data. + */ +class LatinAxis +{ + + int scale; + int delta; + + int widthCount; + Width[] widths; + float edgeDistanceTreshold; +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/LatinMetrics.java b/libjava/classpath/gnu/java/awt/font/autofit/LatinMetrics.java new file mode 100644 index 00000000000..cd955348b37 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/LatinMetrics.java @@ -0,0 +1,51 @@ +/* LatinMetrics.java -- Latin specific metrics data + 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 gnu.java.awt.font.autofit; + +/** + * Latin specific metrics data. + */ +class LatinMetrics + extends ScriptMetrics +{ + + LatinAxis[] axis; + + int unitsPerEm; +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Scaler.java b/libjava/classpath/gnu/java/awt/font/autofit/Scaler.java new file mode 100644 index 00000000000..10518512578 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/Scaler.java @@ -0,0 +1,52 @@ +/* Scaler.java -- FIXME: briefly describe file purpose + 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 gnu.java.awt.font.autofit; + +import gnu.java.awt.font.opentype.OpenTypeFont; + +class Scaler +{ + + int xScale; + int xDelta; + int yScale; + int yDelta; + OpenTypeFont face; + +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Script.java b/libjava/classpath/gnu/java/awt/font/autofit/Script.java new file mode 100644 index 00000000000..3b353010f2d --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/Script.java @@ -0,0 +1,62 @@ +/* Script.java -- Defines script specific interface to the autofitter + 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 gnu.java.awt.font.autofit; + +import gnu.java.awt.font.opentype.OpenTypeFont; + +/** + * Defines script specific methods for the auto fitter. + */ +interface Script +{ + + /** + * Initializes the metrics. + */ + void initMetrics(ScriptMetrics metrics, OpenTypeFont face); + + void scaleMetrics(ScriptMetrics metrics/* , scaler, map this */); + + void doneMetrics(ScriptMetrics metrics); + + void initHints(GlyphHints hints, ScriptMetrics metrics); + + void applyHints(GlyphHints hints, /* some outline object, */ + ScriptMetrics metrics); +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/ScriptMetrics.java b/libjava/classpath/gnu/java/awt/font/autofit/ScriptMetrics.java new file mode 100644 index 00000000000..77c815ae59d --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/ScriptMetrics.java @@ -0,0 +1,49 @@ +/* ScriptMetrics.java -- Script specific metrics data + 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 gnu.java.awt.font.autofit; + +/** + * Script specific metrics data. + */ +class ScriptMetrics +{ + + Script script; + Scaler scaler; +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Segment.java b/libjava/classpath/gnu/java/awt/font/autofit/Segment.java new file mode 100644 index 00000000000..32032a48fcc --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/Segment.java @@ -0,0 +1,47 @@ +/* Segment.java -- FIXME: briefly describe file purpose + 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 gnu.java.awt.font.autofit; + +class Segment +{ + + Segment link; + int index; + int pos; +} diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Width.java b/libjava/classpath/gnu/java/awt/font/autofit/Width.java new file mode 100644 index 00000000000..d4d540069ee --- /dev/null +++ b/libjava/classpath/gnu/java/awt/font/autofit/Width.java @@ -0,0 +1,46 @@ +/* Width.java -- FIXME: briefly describe file purpose + 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 gnu.java.awt.font.autofit; + +public class Width +{ + int org; + int cur; + int fit; +} diff --git a/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java b/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java index 6ada3b147c6..184075094b6 100644 --- a/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java +++ b/libjava/classpath/gnu/java/awt/font/opentype/CharGlyphMap.java @@ -61,7 +61,7 @@ import java.nio.IntBuffer; * * @author Sascha Brawer (brawer@dandelis.ch) */ -abstract class CharGlyphMap +public abstract class CharGlyphMap { private static final int PLATFORM_UNICODE = 0; private static final int PLATFORM_MACINTOSH = 1; diff --git a/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java b/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java index 9ee28d76bb4..efc30811f7b 100644 --- a/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java +++ b/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java @@ -52,6 +52,7 @@ import java.util.Locale; import gnu.java.awt.font.FontDelegate; import gnu.java.awt.font.GNUGlyphVector; import gnu.java.awt.font.opentype.truetype.TrueTypeScaler; +import gnu.java.awt.font.opentype.truetype.Zone; /** @@ -117,7 +118,7 @@ public final class OpenTypeFont * OpenType fonts with PostScript outlines, other values are * acceptable (such as 1000). */ - private int unitsPerEm; + public int unitsPerEm; /** @@ -697,6 +698,20 @@ public final class OpenTypeFont antialias, fractionalMetrics); } + /** + * Fetches the raw glyph outline for the specified glyph index. This is used + * for the autofitter only ATM and is otherwise not usable for outside code. + * + * @param glyph the glyph index to fetch + * @param transform the transform to apply + * + * @return the raw outline of that glyph + */ + public synchronized Zone getRawGlyphOutline(int glyph, + AffineTransform transform) + { + return scaler.getRawOutline(glyph, transform); + } /** * Returns a name for the specified glyph. This is useful for diff --git a/libjava/classpath/gnu/java/awt/font/opentype/Scaler.java b/libjava/classpath/gnu/java/awt/font/opentype/Scaler.java index 499c3ea526c..83a31c576c7 100644 --- a/libjava/classpath/gnu/java/awt/font/opentype/Scaler.java +++ b/libjava/classpath/gnu/java/awt/font/opentype/Scaler.java @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.java.awt.font.opentype; +import gnu.java.awt.font.opentype.truetype.Zone; + import java.awt.geom.AffineTransform; import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; @@ -189,4 +191,14 @@ public abstract class Scaler boolean antialiased, boolean fractionalMetrics, boolean horizontal); + + /** + * Returns the raw outline data. This is used for the autofitter atm. + * + * @param glyph the glyph index + * @param transform the transform to apply + * + * @return the raw glyph outline + */ + public abstract Zone getRawOutline(int glyph, AffineTransform transform); } diff --git a/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java b/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java index b12d7782b23..3733afe92d8 100644 --- a/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java +++ b/libjava/classpath/gnu/java/awt/font/opentype/truetype/GlyphLoader.java @@ -119,6 +119,11 @@ final class GlyphLoader 0, 0); } + public void loadGlyph(int glyphIndex, AffineTransform transform, + Zone glyphZone) + { + loadGlyph(glyphIndex, unitsPerEm, transform, false, glyphZone); + } private void loadSubGlyph(int glyphIndex, double pointSize, diff --git a/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java b/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java index e4d7309cb55..8dfdeff0790 100644 --- a/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java +++ b/libjava/classpath/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java @@ -198,6 +198,12 @@ public final class TrueTypeScaler return glyphZone.getPath(); } + public Zone getRawOutline(int glyphIndex, AffineTransform transform) + { + Zone zone = new Zone(glyphZone.getCapacity()); + glyphLoader.loadGlyph(glyphIndex, transform, zone); + return zone; + } /** * Determines the advance width and height for a glyph. diff --git a/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java b/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java index c0a3947f684..ff5bb631619 100644 --- a/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java +++ b/libjava/classpath/gnu/java/awt/font/opentype/truetype/Zone.java @@ -45,7 +45,7 @@ import java.awt.geom.PathIterator; /** * A collection of points with some additional information. */ -final class Zone +public final class Zone { private final int[] pos; private final int[] origPos; diff --git a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java index 9d017240d60..da21253980f 100644 --- a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java +++ b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java @@ -100,6 +100,20 @@ import java.util.Map; * {@link #updateRaster(Raster, int, int, int, int)} method, which always gets * called after a chunk of data got painted into the raster. *

+ *

Alternativly the backend can provide a method for filling Shapes by + * overriding the protected method fillShape(). This can be accomplished + * by a polygon filling function of the backend. Keep in mind though that + * Shapes can be quite complex (i.e. non-convex and containing holes, etc) + * which is not supported by all polygon fillers. Also it must be noted + * that fillShape() is expected to handle painting and compositing as well as + * clipping and transformation. If your backend can't support this natively, + * then you can fallback to the implementation in this class. You'll need + * to provide a writable Raster then, see above.

+ *

Another alternative is to implement fillScanline() which only requires + * the backend to be able to draw horizontal lines in device space, + * which is usually very cheap. + * The implementation should still handle painting and compositing, + * but no more clipping and transformation is required by the backend.

*

The backend is free to provide implementations for the various raw* * methods for optimized AWT 1.1 style painting of some primitives. This should * accelerate painting of Swing greatly. When doing so, the backend must also @@ -126,6 +140,9 @@ import java.util.Map; * in plain Java because they involve lots of shuffling around with large * arrays. In fact, you really would want to let the graphics card to the * work, they are made for this. + *

  • Provide an accelerated implementation for fillShape(). For instance, + * OpenGL can fill shapes very efficiently. There are some considerations + * to be made though, see above for details.
  • * *

    * @@ -144,6 +161,12 @@ public abstract class AbstractGraphics2D private static final int AA_SAMPLING = 8; /** + * Caches certain shapes to avoid massive creation of such Shapes in + * the various draw* and fill* methods. + */ + private static final ThreadLocal shapeCache = new ThreadLocal(); + + /** * The transformation for this Graphics2D instance */ protected AffineTransform transform; @@ -184,11 +207,6 @@ public abstract class AbstractGraphics2D private RenderingHints renderingHints; /** - * The paint raster. - */ - private Raster paintRaster; - - /** * The raster of the destination surface. This is where the painting is * performed. */ @@ -219,7 +237,7 @@ public abstract class AbstractGraphics2D * AbstractGraphics2D object and will be the most commonly used setting * in Swing rendering and should therefore be optimized as much as possible. */ - private boolean isOptimized; + private boolean isOptimized = true; /** * Creates a new AbstractGraphics2D instance. @@ -270,7 +288,6 @@ public abstract class AbstractGraphics2D public boolean drawImage(Image image, AffineTransform xform, ImageObserver obs) { - boolean ret = false; Rectangle areaOfInterest = new Rectangle(0, 0, image.getWidth(obs), image.getHeight(obs)); return drawImageImpl(image, xform, obs, areaOfInterest); @@ -982,7 +999,8 @@ public abstract class AbstractGraphics2D else copy.clip = new GeneralPath(clip); - copy.renderingHints = new RenderingHints(renderingHints); + copy.renderingHints = new RenderingHints(null); + copy.renderingHints.putAll(renderingHints); copy.transform = new AffineTransform(transform); // The remaining state is inmmutable and doesn't need to be copied. return copy; @@ -1143,14 +1161,31 @@ public abstract class AbstractGraphics2D { if (isOptimized) { - int tx = (int) transform.getTranslateX(); - int ty = (int) transform.getTranslateY(); - rawDrawLine(x1 + tx, y1 + ty, x2 + tx, y2 + ty); + rawDrawLine(x1, y1, x2, y2); } else { - Line2D line = new Line2D.Double(x1, y1, x2, y2); - draw(line); + ShapeCache sc = getShapeCache(); + if (sc.line == null) + sc.line = new Line2D.Float(); + sc.line.setLine(x1, y1, x2, y2); + draw(sc.line); + } + } + + public void drawRect(int x, int y, int w, int h) + { + if (isOptimized) + { + rawDrawRect(x, y, w, h); + } + else + { + ShapeCache sc = getShapeCache(); + if (sc.rect == null) + sc.rect = new Rectangle(); + sc.rect.setBounds(x, y, w, h); + draw(sc.rect); } } @@ -1166,13 +1201,15 @@ public abstract class AbstractGraphics2D { if (isOptimized) { - int tx = (int) transform.getTranslateX(); - int ty = (int) transform.getTranslateY(); - rawFillRect(x + tx, y + ty, width, height); + rawFillRect(x, y, width, height); } else { - fill(new Rectangle(x, y, width, height)); + ShapeCache sc = getShapeCache(); + if (sc.rect == null) + sc.rect = new Rectangle(); + sc.rect.setBounds(x, y, width, height); + fill(sc.rect); } } @@ -1213,8 +1250,11 @@ public abstract class AbstractGraphics2D public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { - draw(new RoundRectangle2D.Double(x, y, width, height, arcWidth, - arcHeight)); + ShapeCache sc = getShapeCache(); + if (sc.roundRect == null) + sc.roundRect = new RoundRectangle2D.Float(); + sc.roundRect.setRoundRect(x, y, width, height, arcWidth, arcHeight); + draw(sc.roundRect); } /** @@ -1230,8 +1270,11 @@ public abstract class AbstractGraphics2D public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { - fill(new RoundRectangle2D.Double(x, y, width, height, arcWidth, - arcHeight)); + ShapeCache sc = getShapeCache(); + if (sc.roundRect == null) + sc.roundRect = new RoundRectangle2D.Float(); + sc.roundRect.setRoundRect(x, y, width, height, arcWidth, arcHeight); + fill(sc.roundRect); } /** @@ -1244,7 +1287,11 @@ public abstract class AbstractGraphics2D */ public void drawOval(int x, int y, int width, int height) { - draw(new Ellipse2D.Double(x, y, width, height)); + ShapeCache sc = getShapeCache(); + if (sc.ellipse == null) + sc.ellipse = new Ellipse2D.Float(); + sc.ellipse.setFrame(x, y, width, height); + draw(sc.ellipse); } /** @@ -1257,7 +1304,11 @@ public abstract class AbstractGraphics2D */ public void fillOval(int x, int y, int width, int height) { - fill(new Ellipse2D.Double(x, y, width, height)); + ShapeCache sc = getShapeCache(); + if (sc.ellipse == null) + sc.ellipse = new Ellipse2D.Float(); + sc.ellipse.setFrame(x, y, width, height); + fill(sc.ellipse); } /** @@ -1266,8 +1317,11 @@ public abstract class AbstractGraphics2D public void drawArc(int x, int y, int width, int height, int arcStart, int arcAngle) { - draw(new Arc2D.Double(x, y, width, height, arcStart, arcAngle, - Arc2D.OPEN)); + ShapeCache sc = getShapeCache(); + if (sc.arc == null) + sc.arc = new Arc2D.Float(); + sc.arc.setArc(x, y, width, height, arcStart, arcAngle, Arc2D.OPEN); + draw(sc.arc); } /** @@ -1276,8 +1330,11 @@ public abstract class AbstractGraphics2D public void fillArc(int x, int y, int width, int height, int arcStart, int arcAngle) { - fill(new Arc2D.Double(x, y, width, height, arcStart, arcAngle, - Arc2D.OPEN)); + ShapeCache sc = getShapeCache(); + if (sc.arc == null) + sc.arc = new Arc2D.Float(); + sc.arc.setArc(x, y, width, height, arcStart, arcAngle, Arc2D.PIE); + draw(sc.arc); } public void drawPolyline(int[] xPoints, int[] yPoints, int npoints) @@ -1291,7 +1348,13 @@ public abstract class AbstractGraphics2D */ public void drawPolygon(int[] xPoints, int[] yPoints, int npoints) { - draw(new Polygon(xPoints, yPoints, npoints)); + ShapeCache sc = getShapeCache(); + if (sc.polygon == null) + sc.polygon = new Polygon(); + sc.polygon.xpoints = xPoints; + sc.polygon.ypoints = yPoints; + sc.polygon.npoints = npoints; + draw(sc.polygon); } /** @@ -1299,7 +1362,13 @@ public abstract class AbstractGraphics2D */ public void fillPolygon(int[] xPoints, int[] yPoints, int npoints) { - fill(new Polygon(xPoints, yPoints, npoints)); + ShapeCache sc = getShapeCache(); + if (sc.polygon == null) + sc.polygon = new Polygon(); + sc.polygon.xpoints = xPoints; + sc.polygon.ypoints = yPoints; + sc.polygon.npoints = npoints; + fill(sc.polygon); } /** @@ -1460,8 +1529,12 @@ public abstract class AbstractGraphics2D } /** - * Fills the specified shape. The shape has already been clipped against the - * current clip. + * Fills the specified shape. Override this if your backend can efficiently + * fill shapes. This is possible on many systems via a polygon fill + * method or something similar. But keep in mind that Shapes can be quite + * complex (non-convex, with holes etc), which is not necessarily supported + * by all polygon fillers. Also note that you must perform clipping + * before filling the shape. * * @param s the shape to fill * @param isFont true if the shape is a font outline @@ -1533,6 +1606,11 @@ public abstract class AbstractGraphics2D draw(new Line2D.Float(x0, y0, x1, y1)); } + protected void rawDrawRect(int x, int y, int w, int h) + { + draw(new Rectangle(x, y, w, h)); + } + /** * Draws a string in optimization mode. The implementation should respect the * clip and translation. It can assume that the clip is a rectangle and that @@ -1627,11 +1705,7 @@ public abstract class AbstractGraphics2D } /** - * Fills the specified polygon. This should be overridden by backends - * that support accelerated (native) polygon filling, which is the - * case for most toolkit window and offscreen image implementations. - * - * The polygon is already clipped when this method is called. + * Fills the specified polygon without anti-aliasing. */ private void fillShapeImpl(ArrayList segs, Rectangle2D deviceBounds2D, Rectangle2D userBounds, @@ -1662,7 +1736,7 @@ public abstract class AbstractGraphics2D for (Iterator i = segs.iterator(); i.hasNext();) { PolyEdge edge = (PolyEdge) i.next(); - int yindex = (int) ((int) Math.ceil(edge.y0) - (int) Math.ceil(icMinY)); + int yindex = (int) Math.ceil(edge.y0) - (int) Math.ceil(icMinY); if (edgeTable[yindex] == null) // Create bucket when needed. edgeTable[yindex] = new ArrayList(); edgeTable[yindex].add(edge); // Add edge to the bucket of its line. @@ -1766,7 +1840,8 @@ public abstract class AbstractGraphics2D } /** - * Paints a scanline between x0 and x1. + * Paints a scanline between x0 and x1. Override this when your backend + * can efficiently draw/fill horizontal lines. * * @param x0 the left offset * @param x1 the right offset @@ -1972,8 +2047,7 @@ public abstract class AbstractGraphics2D // Render full scanline. //System.err.println("scanline: " + y); if (! emptyScanline) - fillScanlineAA(alpha, leftX, (int) y, rightX - leftX, pCtx, - (int) minX); + fillScanlineAA(alpha, leftX, y, rightX - leftX, pCtx, (int) minX); } pCtx.dispose(); @@ -1986,7 +2060,7 @@ public abstract class AbstractGraphics2D * * @param alpha the alpha values in the scanline * @param x0 the beginning of the scanline - * @param y the y coordinate of the line + * @param yy the y coordinate of the line */ private void fillScanlineAA(int[] alpha, int x0, int yy, int numPixels, PaintContext pCtx, int offs) @@ -1997,7 +2071,6 @@ public abstract class AbstractGraphics2D Raster paintRaster = pCtx.getRaster(x0, yy, numPixels, 1); //System.err.println("paintColorModel: " + pCtx.getColorModel()); WritableRaster aaRaster = paintRaster.createCompatibleWritableRaster(); - int numBands = paintRaster.getNumBands(); ColorModel cm = pCtx.getColorModel(); double lastAlpha = 0.; int lastAlphaInt = 0; @@ -2156,10 +2229,10 @@ public abstract class AbstractGraphics2D private static Rectangle computeIntersection(int x, int y, int w, int h, Rectangle rect) { - int x2 = (int) rect.x; - int y2 = (int) rect.y; - int w2 = (int) rect.width; - int h2 = (int) rect.height; + int x2 = rect.x; + int y2 = rect.y; + int w2 = rect.width; + int h2 = rect.height; int dx = (x > x2) ? x : x2; int dy = (y > y2) ? y : y2; @@ -2266,4 +2339,20 @@ public abstract class AbstractGraphics2D deviceBounds.setRect(minX, minY, maxX - minX, maxY - minY); return segs; } + + /** + * Returns the ShapeCache for the calling thread. + * + * @return the ShapeCache for the calling thread + */ + private ShapeCache getShapeCache() + { + ShapeCache sc = (ShapeCache) shapeCache.get(); + if (sc == null) + { + sc = new ShapeCache(); + shapeCache.set(sc); + } + return sc; + } } diff --git a/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java b/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java index 5e15fe881d8..97a5372f6bd 100644 --- a/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java +++ b/libjava/classpath/gnu/java/awt/java2d/QuadSegment.java @@ -145,7 +145,52 @@ public class QuadSegment extends Segment Point2D cp; QuadSegment s; - if( plus ) + if(!plus) + { + n1[0] = -n1[0]; + n1[1] = -n1[1]; + n2[0] = -n2[0]; + n2[1] = -n2[1]; + } + + // Handle special cases where the control point is equal to an end point + // or end points are equal (ie, straight lines) + if (curve.getP1().equals(curve.getCtrlPt())) + { + cp = curve.getCtrlPt(); + cp.setLocation(cp.getX() + n2[0], cp.getY() + n2[1]); + n1[0] = n2[0]; + n1[1] = n2[1]; + } + else if (curve.getP2().equals(curve.getCtrlPt())) + { + cp = curve.getCtrlPt(); + cp.setLocation(cp.getX() + n1[0], cp.getY() + n1[1]); + n2[0] = n1[0]; + n2[1] = n1[1]; + } + else if (curve.getP1().equals(curve.getP2())) + { + cp = curve.getCtrlPt(); + + double deltaX = curve.getX1() - curve.getCtrlX(); + double deltaY = curve.getY1() - curve.getCtrlY(); + double length = Math.sqrt((deltaX * deltaX) + (deltaY * deltaY)); + double ratio = radius / length; + deltaX *= ratio; + deltaY *= ratio; + + if (plus) + cp.setLocation(cp.getX() + deltaX, cp.getY() + deltaY); + else + cp.setLocation(cp.getX() - deltaX, cp.getY() - deltaY); + } + else if (n1[0] == n2[0] && n1[1] == n2[1]) + { + cp = curve.getCtrlPt(); + cp.setLocation(cp.getX() + n1[0], cp.getY() + n1[1]); + } + else { cp = lineIntersection(curve.getX1() + n1[0], curve.getY1() + n1[1], @@ -155,25 +200,11 @@ public class QuadSegment extends Segment curve.getCtrlY() + n2[1], curve.getX2() + n2[0], curve.getY2() + n2[1], true); - s = new QuadSegment(curve.getX1() + n1[0], curve.getY1() + n1[1], - cp.getX(), cp.getY(), - curve.getX2() + n2[0], curve.getY2() + n2[1]); - } - else - { - cp = lineIntersection(curve.getX1() - n1[0], - curve.getY1() - n1[1], - curve.getCtrlX() - n1[0], - curve.getCtrlY() - n1[1], - curve.getCtrlX() - n2[0], - curve.getCtrlY() - n2[1], - curve.getX2() - n2[0], - curve.getY2() - n2[1], true); - - s = new QuadSegment(curve.getX1() - n1[0], curve.getY1() - n1[1], - cp.getX(), cp.getY(), - curve.getX2() - n2[0], curve.getY2() - n2[1]); } + + s = new QuadSegment(curve.getX1() + n1[0], curve.getY1() + n1[1], + cp.getX(), cp.getY(), + curve.getX2() + n2[0], curve.getY2() + n2[1]); return s; } diff --git a/libjava/classpath/gnu/java/awt/java2d/ShapeCache.java b/libjava/classpath/gnu/java/awt/java2d/ShapeCache.java new file mode 100644 index 00000000000..034b53cadd3 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/java2d/ShapeCache.java @@ -0,0 +1,85 @@ +/* ShapeCache.java -- Caches certain Shapes for reuse in AbstractGraphics2D + 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 gnu.java.awt.java2d; + +import java.awt.Polygon; +import java.awt.Rectangle; +import java.awt.geom.Arc2D; +import java.awt.geom.Ellipse2D; +import java.awt.geom.Line2D; +import java.awt.geom.RoundRectangle2D; + +/** + * Caches certain Shape objects for reuse in AbstractGraphics2D. This avoids + * massive creation of such objects. + */ +public class ShapeCache +{ + + /** + * A cached Line2D. + */ + public Line2D line; + + /** + * A cached Rectangle. + */ + public Rectangle rect; + + /** + * A cached RoundRectangle2D. + */ + public RoundRectangle2D roundRect; + + /** + * A cached Ellipse2D. + */ + public Ellipse2D ellipse; + + /** + * A cached Arc2D. + */ + public Arc2D arc; + + /** + * A cached Polygon. + */ + public Polygon polygon; + +} diff --git a/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java b/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java index 1a782ce07e3..db0a2e65804 100644 --- a/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java +++ b/libjava/classpath/gnu/java/awt/java2d/TexturePaintContext.java @@ -104,7 +104,7 @@ public class TexturePaintContext double scaleY = anchor.getHeight() / image.getHeight(); transform = (AffineTransform) xform.clone(); transform.scale(scaleX, scaleY); - transform.translate(-anchor.getMinX(), -anchor.getMaxX()); + transform.translate(-anchor.getMinX(), -anchor.getMinY()); transform = transform.createInverse(); } catch (NoninvertibleTransformException ex) @@ -177,6 +177,12 @@ public class TexturePaintContext // The modulo operation gives us the replication effect. dx = ((dx - minX) % width) + minX; dy = ((dy - minY) % height) + minY; + + // Handle possible negative values (replicating above the top-left) + if (dx < 0) + dx += width; + if (dy < 0) + dy += height; // Copy the pixel. pixel = source.getDataElements(dx, dy, pixel); diff --git a/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java b/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java index dad7bb0b08f..2176f34a5f1 100644 --- a/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java @@ -832,18 +832,4 @@ public abstract class ClasspathFontPeer public abstract Rectangle2D getMaxCharBounds (Font font, FontRenderContext rc); - /** - * Implementation of {@link Font#getStringBounds(CharacterIterator, int, - * int, FontRenderContext)} - * - * @param font the font this peer is being called from. This may be - * useful if you are sharing peers between Font objects. Otherwise it may - * be ignored. - */ - - public abstract Rectangle2D getStringBounds (Font font, - CharacterIterator ci, - int begin, int limit, - FontRenderContext frc); - } diff --git a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java index 88733b92f8c..f9a7bac8ee6 100644 --- a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java @@ -54,25 +54,14 @@ import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.awt.Toolkit; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; import java.awt.event.PaintEvent; import java.awt.image.ColorModel; import java.awt.image.ImageObserver; import java.awt.image.ImageProducer; import java.awt.image.VolatileImage; -import java.awt.peer.ComponentPeer; import java.awt.peer.ContainerPeer; import java.awt.peer.LightweightPeer; -/* - * Another possible implementation strategy for lightweight peers is - * to make GLightweightPeer a placeholder class that implements - * LightweightPeer. Then the Component and Container classes could - * identify a peer as lightweight and handle it specially. The - * current approach is probably more clear but less efficient. - */ - /** * A stub class that implements the ComponentPeer and ContainerPeer * interfaces using callbacks into the Component and Container @@ -85,47 +74,48 @@ import java.awt.peer.LightweightPeer; public class GLightweightPeer implements LightweightPeer, ContainerPeer { - private Component comp; - - private Insets containerInsets; - - public GLightweightPeer(Component comp) + public GLightweightPeer() { - this.comp = comp; + // Nothing to do here. } // -------- java.awt.peer.ContainerPeer implementation: public Insets insets() { - return getInsets (); + // Nothing to do here for lightweights. + return null; } public Insets getInsets() { - if (containerInsets == null) - containerInsets = new Insets (0,0,0,0); - return containerInsets; + // Nothing to do here for lightweights. + return null; } public void beginValidate() { + // Nothing to do here for lightweights. } public void endValidate() { + // Nothing to do here for lightweights. } public void beginLayout() { + // Nothing to do here for lightweights. } public void endLayout() { + // Nothing to do here for lightweights. } public boolean isPaintPending() { + // Nothing to do here for lightweights. return false; } @@ -133,122 +123,188 @@ public class GLightweightPeer public int checkImage(Image img, int width, int height, ImageObserver o) { - return comp.getToolkit().checkImage(img, width, height, o); + // Nothing to do here for lightweights. + return -1; } public Image createImage(ImageProducer prod) { - return comp.getToolkit().createImage(prod); + // Nothing to do here for lightweights. + return null; } /* This method is not called. */ public Image createImage(int width, int height) { + // Nothing to do here for lightweights. return null; } - public void disable() {} + public void disable() + { + // Nothing to do here for lightweights. + } - public void dispose() {} + public void dispose() + { + // Nothing to do here for lightweights. + } - public void enable() {} + public void enable() + { + // Nothing to do here for lightweights. + } public GraphicsConfiguration getGraphicsConfiguration() { + // Nothing to do here for lightweights. return null; } public FontMetrics getFontMetrics(Font f) { - return comp.getToolkit().getFontMetrics(f); + // We shouldn't end up here, but if we do we can still try do something + // reasonable. + Toolkit tk = Toolkit.getDefaultToolkit(); + return tk.getFontMetrics(f); } /* Returning null here tells the Component object that called us to * use its parent's Graphics. */ public Graphics getGraphics() { + // Nothing to do here for lightweights. return null; } public Point getLocationOnScreen() { - Point parentLocation = comp.getParent().getLocationOnScreen(); - return new Point (parentLocation.x + comp.getX(), - parentLocation.y + comp.getY()); + // Nothing to do here for lightweights. + return null; } public Dimension getMinimumSize() { - return new Dimension(comp.getWidth(), comp.getHeight()); + return minimumSize(); } - /* A lightweight component's preferred size is equivalent to its - * Component width and height values. */ public Dimension getPreferredSize() { - return new Dimension(comp.getWidth(), comp.getHeight()); + return preferredSize(); } /* Returning null here tells the Component object that called us to * use its parent's Toolkit. */ public Toolkit getToolkit() { + // Nothing to do here for lightweights. return null; } - public void handleEvent(AWTEvent e) {} + public void handleEvent(AWTEvent e) + { + // This can only happen when an application posts a PaintEvent for + // a lightweight component directly. We still support painting for + // this case. + if (e instanceof PaintEvent) + { + PaintEvent pe = (PaintEvent) e; + Component target = (Component) e.getSource(); + if (target != null && target.isShowing()) + { + Graphics g = target.getGraphics(); + if (g != null) + { + try + { + Rectangle clip = pe.getUpdateRect(); + g.setClip(clip); + target.paint(g); + } + finally + { + g.dispose(); + } + } + } + } + } - public void hide() {} + public void hide() + { + // Nothing to do here for lightweights. + } public boolean isFocusable() { + // Nothing to do here for lightweights. return false; } public boolean isFocusTraversable() { + // Nothing to do here for lightweights. return false; } public Dimension minimumSize() { - return getMinimumSize(); + return new Dimension(0, 0); } public Dimension preferredSize() { - return getPreferredSize(); + return new Dimension(0, 0); } - public void paint(Graphics graphics) {} + public void paint(Graphics graphics) + { + // Nothing to do here for lightweights. + } public boolean prepareImage(Image img, int width, int height, ImageObserver o) { - return comp.getToolkit().prepareImage(img, width, height, o); + // Nothing to do here for lightweights. + return false; } - public void print(Graphics graphics) {} + public void print(Graphics graphics) + { + // Nothing to do here for lightweights. + } public void repaint(long tm, int x, int y, int width, int height) { - Component p = comp.getParent(); - if (p != null) - p.repaint(tm, x + comp.getX(), y + comp.getY(), width, height); + // Nothing to do here for lightweights. } - public void requestFocus() {} + public void requestFocus() + { + // Nothing to do here for lightweights. + } - public boolean requestFocus(Component source, boolean bool1, boolean bool2, long x) + public boolean requestFocus(Component source, boolean bool1, boolean bool2, + long x) { + // Nothing to do here for lightweights. return false; } - public void reshape(int x, int y, int width, int height) {} + public void reshape(int x, int y, int width, int height) + { + // Nothing to do here for lightweights. + } - public void setBackground(Color color) {} + public void setBackground(Color color) + { + // Nothing to do here for lightweights. + } - public void setBounds(int x, int y, int width, int height) {} + public void setBounds(int x, int y, int width, int height) + { + // Nothing to do here for lightweights. + } /** * Sets the cursor on the heavy-weight parent peer. @@ -256,110 +312,141 @@ public class GLightweightPeer */ public void setCursor(Cursor cursor) { - Component p = comp.getParent(); - while (p != null && p.isLightweight()) - p = p.getParent(); - - if (p != null) - { - // Don't actually change the cursor of the component - // otherwise other childs inherit this cursor. - ComponentPeer peer = p.getPeer(); - if (peer != null) - peer.setCursor(cursor); - } + // Nothing to do here for lightweights. } - public void setEnabled(boolean enabled) {} + public void setEnabled(boolean enabled) + { + // Nothing to do here for lightweights. + } - public void setEventMask(long eventMask) {} + public void setEventMask(long eventMask) + { + // Nothing to do here for lightweights. + } - public void setFont(Font font) {} + public void setFont(Font font) + { + // Nothing to do here for lightweights. + } - public void setForeground(Color color) {} + public void setForeground(Color color) + { + // Nothing to do here for lightweights. + } - public void setVisible(boolean visible) {} + public void setVisible(boolean visible) + { + // Nothing to do here for lightweights. + } - public void show() {} + public void show() + { + // Nothing to do here for lightweights. + } - public ColorModel getColorModel () + public ColorModel getColorModel() { - return comp.getColorModel (); + // Nothing to do here for lightweights. + return null; } public boolean isObscured() { + // Nothing to do here for lightweights. return false; } public boolean canDetermineObscurity() { + // Nothing to do here for lightweights. return false; } - public void coalescePaintEvent(PaintEvent e) { } + public void coalescePaintEvent(PaintEvent e) + { + // Nothing to do here for lightweights. + } - public void updateCursorImmediately() { } + public void updateCursorImmediately() + { + // Nothing to do here for lightweights. + } public VolatileImage createVolatileImage(int width, int height) { + // Nothing to do here for lightweights. return null; } public boolean handlesWheelScrolling() { + // Nothing to do here for lightweights. return false; } public void createBuffers(int x, BufferCapabilities capabilities) - throws AWTException { } + throws AWTException + { + // Nothing to do here for lightweights. + } public Image getBackBuffer() { + // Nothing to do here for lightweights. return null; } - public void flip(BufferCapabilities.FlipContents contents) { } + public void flip(BufferCapabilities.FlipContents contents) + { + // Nothing to do here for lightweights. + } - public void destroyBuffers() { } + public void destroyBuffers() + { + // Nothing to do here for lightweights. + } public boolean isRestackSupported() { + // Nothing to do here for lightweights. return false; } public void cancelPendingPaint(int x, int y, int width, int height) { - + // Nothing to do here for lightweights. } public void restack() { - + // Nothing to do here for lightweights. } public Rectangle getBounds() { + // Nothing to do here for lightweights. return null; } public void reparent(ContainerPeer parent) { - + // Nothing to do here for lightweights. } public void setBounds(int x, int y, int z, int width, int height) { - + // Nothing to do here for lightweights. } public boolean isReparentSupported() { - return false; + // Nothing to do here for lightweights. + return true; } public void layout() { - + // Nothing to do here for lightweights. } } diff --git a/libjava/classpath/gnu/java/awt/peer/NativeEventLoopRunningEvent.java b/libjava/classpath/gnu/java/awt/peer/NativeEventLoopRunningEvent.java new file mode 100644 index 00000000000..962ecd9904e --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/NativeEventLoopRunningEvent.java @@ -0,0 +1,58 @@ +/* NativeEventLoopRunningEvent.java -- communicates to EventQueue the + state of the native event loop + 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 gnu.java.awt.peer; + +import java.awt.AWTEvent; + +public class NativeEventLoopRunningEvent + extends AWTEvent +{ + private boolean running; + + public NativeEventLoopRunningEvent(Object source) + { + super(source, 2999); + running = ((Boolean) source).booleanValue(); + } + + public boolean isRunning() + { + return running; + } +} diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java b/libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java new file mode 100644 index 00000000000..5238bfe7410 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/gtk/AsyncImage.java @@ -0,0 +1,283 @@ +/* AsyncImage.java -- Loads images asynchronously + 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 gnu.java.awt.peer.gtk; + +import java.awt.Graphics; +import java.awt.Image; +import java.awt.image.ImageConsumer; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; + +/** + * Supports asynchronous loading of images. + */ +public class AsyncImage + extends Image +{ + + /** + * Returned as source as long as the image is not complete. + */ + private class NullImageSource + implements ImageProducer + { + private ArrayList consumers; + + NullImageSource() + { + consumers = new ArrayList(); + } + + public void addConsumer(ImageConsumer ic) + { + consumers.add(ic); + } + + public boolean isConsumer(ImageConsumer ic) + { + return consumers.contains(ic); + } + + public void removeConsumer(ImageConsumer ic) + { + consumers.remove(ic); + } + + public void requestTopDownLeftRightResend(ImageConsumer ic) + { + startProduction(ic); + } + + public void startProduction(ImageConsumer ic) + { + consumers.add(ic); + for (int i = consumers.size() - 1; i >= 0; i--) + { + ImageConsumer c = (ImageConsumer) consumers.get(i); + c.setDimensions(1, 1); + ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); + } + } + + } + + /** + * Loads the image asynchronously. + */ + private class Loader + implements Runnable + { + private URL url; + Loader(URL u) + { + url = u; + } + + public void run() + { + Image image; + try + { + GtkImage gtkImage = new GtkImage(url); + image = CairoSurface.getBufferedImage(gtkImage); + } + catch (IllegalArgumentException iae) + { + image = null; + } + realImage = GtkToolkit.imageOrError(image); + synchronized (AsyncImage.this) + { + notifyObservers(ImageObserver.ALLBITS | ImageObserver.HEIGHT + | ImageObserver.WIDTH | ImageObserver.PROPERTIES); + observers = null; // Not needed anymore. + } + } + } + + /** + * The real image. This is null as long as the image is not complete. + */ + Image realImage; + + /** + * The image observers. + * + * This is package private to avoid accessor methods. + */ + HashSet observers; + + /** + * Creates a new AsyncImage that loads from the specified URL. + */ + AsyncImage(URL url) + { + observers = new HashSet(); + Loader l = new Loader(url); + Thread t = new Thread(l); + t.start(); + } + + public void flush() + { + // Nothing to do here. + } + + public Graphics getGraphics() + { + Image r = realImage; + Graphics g = null; + if (r != null) + g = r.getGraphics(); // Should we return some dummy graphics instead? + return g; + } + + public int getHeight(ImageObserver observer) + { + addObserver(observer); + int height = 0; + Image r = realImage; + if (r != null) + height = r.getHeight(observer); + return height; + } + + public Object getProperty(String name, ImageObserver observer) + { + addObserver(observer); + Image r = realImage; + Object prop = null; + if (r != null) + prop = r.getProperty(name, observer); + return prop; + } + + public ImageProducer getSource() + { + Image r = realImage; + ImageProducer source; + if (r == null) + source = new NullImageSource(); + else + source = r.getSource(); + return source; + } + + public int getWidth(ImageObserver observer) + { + addObserver(observer); + int width = 0; + Image r = realImage; + if (r != null) + width = r.getWidth(observer); + return width; + } + + void addObserver(ImageObserver obs) + { + if (obs != null) + { + synchronized (this) + { + // This field gets null when image loading is complete and we don't + // need to store any more observers. + HashSet observs = observers; + if (observs != null) + { + observs.add(obs); + } + else + { + // When the image is complete, notify the observer. Dunno if + // that's really needed, but to be sure. + obs.imageUpdate(this, ImageObserver.WIDTH + | ImageObserver.HEIGHT + |ImageObserver.ALLBITS + | ImageObserver.PROPERTIES, 0, 0, + realImage.getWidth(null), + realImage.getHeight(null)); + } + } + } + } + + static Image realImage(Image img, ImageObserver obs) + { + if (img instanceof AsyncImage) + { + ((AsyncImage) img).addObserver(obs); + Image r = ((AsyncImage) img).realImage; + if (r != null) + img = r; + } + return img; + } + + void notifyObservers(int status) + { + assert Thread.holdsLock(this); + // This field gets null when image loading is complete. + HashSet observs = observers; + if (observs != null) + { + Image r = realImage; + Iterator i = observs.iterator(); + while (i.hasNext()) + { + ImageObserver obs = (ImageObserver) i.next(); + obs.imageUpdate(this, status, 0, 0, r.getWidth(null), + r.getHeight(null)); + } + } + } + + int checkImage(ImageObserver obs) + { + addObserver(obs); + int flags = 0; + if (realImage != null) + flags = ImageObserver.ALLBITS | ImageObserver.WIDTH + | ImageObserver.HEIGHT | ImageObserver.PROPERTIES; + return flags; + } +} diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java index 6a74eabc5d6..c792645d3e8 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java @@ -38,22 +38,27 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.Image; import java.awt.Rectangle; import java.awt.Shape; +import java.awt.Toolkit; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; +import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; -import java.awt.image.DataBuffer; -import java.awt.image.DataBufferInt; import java.awt.image.ColorModel; -import java.awt.image.DirectColorModel; -import java.awt.image.RenderedImage; +import java.awt.image.DataBufferInt; import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.awt.image.Raster; +import java.awt.image.RenderedImage; +import java.awt.image.SinglePixelPackedSampleModel; import java.util.WeakHashMap; /** @@ -67,7 +72,13 @@ public class BufferedImageGraphics extends CairoGraphics2D /** * the buffered Image. */ - private BufferedImage image; + private BufferedImage image, buffer; + + /** + * Allows us to lock the image from updates (if we want to perform a few + * intermediary operations on the cairo surface, then update it all at once) + */ + private boolean locked; /** * Image size. @@ -89,12 +100,6 @@ public class BufferedImageGraphics extends CairoGraphics2D */ private long cairo_t; - /** - * Colormodels we recognize for fast copying. - */ - static ColorModel rgb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF); - static ColorModel argb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, - 0xFF000000); private boolean hasFastCM; private boolean hasAlpha; @@ -104,15 +109,19 @@ public class BufferedImageGraphics extends CairoGraphics2D this.image = bi; imageWidth = bi.getWidth(); imageHeight = bi.getHeight(); - if(bi.getColorModel().equals(rgb32)) + locked = false; + + if (!(image.getSampleModel() instanceof SinglePixelPackedSampleModel)) + hasFastCM = false; + else if(bi.getColorModel().equals(CairoSurface.cairoCM_opaque)) { hasFastCM = true; hasAlpha = false; } - else if(bi.getColorModel().equals(argb32)) + else if(bi.getColorModel().equals(CairoSurface.cairoColorModel)) { hasFastCM = true; - hasAlpha = false; + hasAlpha = true; } else hasFastCM = false; @@ -128,27 +137,45 @@ public class BufferedImageGraphics extends CairoGraphics2D cairo_t = surface.newCairoContext(); - DataBuffer db = bi.getRaster().getDataBuffer(); + // Get pixels out of buffered image and set in cairo surface + Raster raster = bi.getRaster(); int[] pixels; - // get pixels - if(db instanceof CairoSurface) - pixels = ((CairoSurface)db).getPixels(imageWidth * imageHeight); + if (hasFastCM) + { + SinglePixelPackedSampleModel sm = (SinglePixelPackedSampleModel)image.getSampleModel(); + int minX = image.getRaster().getSampleModelTranslateX(); + int minY = image.getRaster().getSampleModelTranslateY(); + + // Pull pixels directly out of data buffer + if(raster instanceof CairoSurface) + pixels = ((CairoSurface)raster).getPixels(raster.getWidth() * raster.getHeight()); + else + pixels = ((DataBufferInt)raster.getDataBuffer()).getData(); + + // Discard pixels that fall outside of the image's bounds + // (ie, this image is actually a subimage of a different image) + if (!(sm.getScanlineStride() == imageWidth && minX == 0 && minY == 0)) + { + int[] pixels2 = new int[imageWidth * imageHeight]; + int scanline = sm.getScanlineStride(); + + for (int i = 0; i < imageHeight; i++) + System.arraycopy(pixels, (i - minY) * scanline - minX, pixels2, i * imageWidth, imageWidth); + + pixels = pixels2; + } + + // Fill the alpha channel as opaque if image does not have alpha + if( !hasAlpha ) + for(int i = 0; i < pixels.length; i++) + pixels[i] &= 0xFFFFFFFF; + } else { - if( hasFastCM ) - { - pixels = ((DataBufferInt)db).getData(); - if( !hasAlpha ) - for(int i = 0; i < pixels.length; i++) - pixels[i] &= 0xFFFFFFFF; - } - else - { - pixels = CairoGraphics2D.findSimpleIntegerArray - (image.getColorModel(),image.getData()); - } + pixels = CairoGraphics2D.findSimpleIntegerArray(image.getColorModel(),image.getData()); } + surface.setPixels( pixels ); setup( cairo_t ); @@ -157,12 +184,17 @@ public class BufferedImageGraphics extends CairoGraphics2D BufferedImageGraphics(BufferedImageGraphics copyFrom) { + image = copyFrom.image; surface = copyFrom.surface; cairo_t = surface.newCairoContext(); imageWidth = copyFrom.imageWidth; imageHeight = copyFrom.imageHeight; + locked = false; + + hasFastCM = copyFrom.hasFastCM; + hasAlpha = copyFrom.hasAlpha; + copy( copyFrom, cairo_t ); - setClip(0, 0, surface.width, surface.height); } /** @@ -170,25 +202,82 @@ public class BufferedImageGraphics extends CairoGraphics2D */ private void updateBufferedImage(int x, int y, int width, int height) { + if (locked) + return; + + double[] points = new double[]{x, y, width+x, height+y}; + transform.transform(points, 0, points, 0, 2); + x = (int)points[0]; + y = (int)points[1]; + width = (int)Math.ceil(points[2] - points[0]); + height = (int)Math.ceil(points[3] - points[1]); + int[] pixels = surface.getPixels(imageWidth * imageHeight); if( x > imageWidth || y > imageHeight ) return; + + // Deal with negative width/height. + if (height < 0) + { + y += height; + height = -height; + } + if (width < 0) + { + x += width; + width = -width; + } + // Clip edges. - if( x < 0 ){ width = width + x; x = 0; } - if( y < 0 ){ height = height + y; y = 0; } + if( x < 0 ) + x = 0; + if( y < 0 ) + y = 0; + if( x + width > imageWidth ) width = imageWidth - x; if( y + height > imageHeight ) height = imageHeight - y; - - if( !hasFastCM ) - image.setRGB(x, y, width, height, pixels, - x + y * imageWidth, imageWidth); + + if(!hasFastCM) + { + image.setRGB(x, y, width, height, pixels, + x + y * imageWidth, imageWidth); + // The setRGB method assumes (or should assume) that pixels are NOT + // alpha-premultiplied, but Cairo stores data with premultiplication + // (thus the pixels returned in getPixels are premultiplied). + // This is ignored for consistency, however, since in + // CairoGrahpics2D.drawImage we also use non-premultiplied data + + } else - System.arraycopy(pixels, y * imageWidth, - ((DataBufferInt)image.getRaster().getDataBuffer()). - getData(), y * imageWidth, height * imageWidth); + { + int[] db = ((DataBufferInt)image.getRaster().getDataBuffer()). + getData(); + + // This should not fail, as we check the image sample model when we + // set the hasFastCM flag + SinglePixelPackedSampleModel sm = (SinglePixelPackedSampleModel)image.getSampleModel() ; + + int minX = image.getRaster().getSampleModelTranslateX(); + int minY = image.getRaster().getSampleModelTranslateY(); + + if (sm.getScanlineStride() == imageWidth && minX == 0) + { + System.arraycopy(pixels, y * imageWidth, + db, (y - minY) * imageWidth, + height * imageWidth); + } + else + { + int scanline = sm.getScanlineStride(); + for (int i = y; i < (height + y); i++) + System.arraycopy(pixels, i * imageWidth + x, db, + (i - minY) * scanline + x - minX, width); + + } + } } /** @@ -221,36 +310,246 @@ public class BufferedImageGraphics extends CairoGraphics2D */ public void draw(Shape s) { - super.draw(s); - Rectangle r = s.getBounds(); - updateBufferedImage(r.x, r.y, r.width, r.height); + // Find total bounds of shape + Rectangle r = findStrokedBounds(s); + if (shiftDrawCalls) + { + r.width++; + r.height++; + } + + // Do the drawing + if (comp == null || comp instanceof AlphaComposite) + { + super.draw(s); + updateBufferedImage(r.x, r.y, r.width, r.height); + } + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setStroke(this.getStroke()); + g2d.setColor(this.getColor()); + g2d.setTransform(transform); + g2d.draw(s); + + drawComposite(r.getBounds2D(), null); + } } public void fill(Shape s) { - super.fill(s); - Rectangle r = s.getBounds(); - updateBufferedImage(r.x, r.y, r.width, r.height); + if (comp == null || comp instanceof AlphaComposite) + { + super.fill(s); + Rectangle r = s.getBounds(); + updateBufferedImage(r.x, r.y, r.width, r.height); + } + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setPaint(this.getPaint()); + g2d.setColor(this.getColor()); + g2d.setTransform(transform); + g2d.fill(s); + + drawComposite(s.getBounds2D(), null); + } } public void drawRenderedImage(RenderedImage image, AffineTransform xform) { - super.drawRenderedImage(image, xform); - updateBufferedImage(0, 0, imageWidth, imageHeight); + if (comp == null || comp instanceof AlphaComposite) + { + super.drawRenderedImage(image, xform); + updateBufferedImage(0, 0, imageWidth, imageHeight); + } + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setRenderingHints(this.getRenderingHints()); + g2d.setTransform(transform); + g2d.drawRenderedImage(image, xform); + + drawComposite(buffer.getRaster().getBounds(), null); + } + } protected boolean drawImage(Image img, AffineTransform xform, Color bgcolor, ImageObserver obs) { - boolean rv = super.drawImage(img, xform, bgcolor, obs); - updateBufferedImage(0, 0, imageWidth, imageHeight); - return rv; + if (comp == null || comp instanceof AlphaComposite) + { + boolean rv = super.drawImage(img, xform, bgcolor, obs); + updateBufferedImage(0, 0, imageWidth, imageHeight); + return rv; + } + else + { + // Get buffered image of source + if( !(img instanceof BufferedImage) ) + { + ImageProducer source = img.getSource(); + if (source == null) + return false; + img = Toolkit.getDefaultToolkit().createImage(source); + } + BufferedImage bImg = (BufferedImage) img; + + // Find translated bounds + Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); + Point2D pt = new Point2D.Double(bImg.getWidth() + bImg.getMinX(), + bImg.getHeight() + bImg.getMinY()); + if (xform != null) + { + origin = xform.transform(origin, origin); + pt = xform.transform(pt, pt); + } + + // Create buffer and draw image + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setRenderingHints(this.getRenderingHints()); + g2d.drawImage(img, xform, obs); + + // Perform compositing + return drawComposite(new Rectangle2D.Double(origin.getX(), + origin.getY(), + pt.getX(), pt.getY()), + obs); + } } public void drawGlyphVector(GlyphVector gv, float x, float y) { - super.drawGlyphVector(gv, x, y); - updateBufferedImage(0, 0, imageWidth, imageHeight); + // Find absolute bounds, in user-space, of this glyph vector + Rectangle2D bounds = gv.getLogicalBounds(); + bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), + bounds.getWidth(), bounds.getHeight()); + + // Perform draw operation + if (comp == null || comp instanceof AlphaComposite) + { + super.drawGlyphVector(gv, x, y); + updateBufferedImage((int)bounds.getX(), (int)bounds.getY(), + (int)bounds.getWidth(), (int)bounds.getHeight()); + } + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setPaint(this.getPaint()); + g2d.setStroke(this.getStroke()); + g2d.setTransform(transform); + g2d.drawGlyphVector(gv, x, y); + + drawComposite(bounds, null); + } + } + + /** + * Perform composite drawing from the buffer onto the main image. + * + * The image to be composited should already be drawn into the buffer, in the + * proper place, after all necessary transforms have been applied. + * + * @param bounds The bounds to draw, in user-space. + * @param observer The image observer, if any (may be null). + * @return True on success, false on failure. + */ + private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) + { + // Find bounds in device space + double[] points = new double[] {bounds.getX(), bounds.getY(), + bounds.getMaxX(), bounds.getMaxY()}; + transform.transform(points, 0, points, 0, 2); + bounds = new Rectangle2D.Double(points[0], points[1], + (points[2] - points[0]), + (points[3] - points[1])); + + // Clip bounds by the stored clip, and by the internal buffer + Rectangle2D devClip = this.getClipInDevSpace(); + Rectangle2D.intersect(bounds, devClip, bounds); + devClip = new Rectangle(buffer.getMinX(), buffer.getMinY(), + buffer.getWidth(), buffer.getHeight()); + Rectangle2D.intersect(bounds, devClip, bounds); + + // Round bounds as needed, but be conservative in our rounding + // (otherwise it may leave unpainted stripes) + double x = bounds.getX(); + double y = bounds.getY(); + double w = bounds.getWidth(); + double h = bounds.getHeight(); + if (Math.floor(x) != x) + w--; + if (Math.floor(y) != y) + h--; + bounds.setRect(Math.ceil(x), Math.ceil(y), Math.floor(w), Math.floor(h)); + + // Find subimage of internal buffer for updating + BufferedImage buffer2 = buffer; + if (!bounds.equals(buffer2.getRaster().getBounds())) + buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), + (int)bounds.getWidth(), + (int)bounds.getHeight()); + + // Find subimage of main image for updating + BufferedImage current = image; + current = current.getSubimage((int)bounds.getX(), (int)bounds.getY(), + (int)bounds.getWidth(), + (int)bounds.getHeight()); + + // Perform actual composite operation + compCtx.compose(buffer2.getRaster(), current.getRaster(), + current.getRaster()); + + // Prevent the clearRect in CairoGraphics2D.drawImage from clearing + // our composited image + locked = true; + + // This MUST call directly into the "action" method in CairoGraphics2D, + // not one of the wrappers, to ensure that the composite isn't processed + // more than once! + boolean rv = super.drawImage(current, + AffineTransform.getTranslateInstance(bounds.getX(), + bounds.getY()), + new Color(0,0,0,0), null); + locked = false; + return rv; + } + + private void createBuffer() + { + if (buffer == null) + { + buffer = new BufferedImage(image.getWidth(), image.getHeight(), + BufferedImage.TYPE_INT_ARGB); + } + else + { + Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); + + g2d.setBackground(new Color(0,0,0,0)); + g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); + } + } + + protected ColorModel getNativeCM() + { + return image.getColorModel(); + } + + protected ColorModel getBufferCM() + { + return ColorModel.getRGBdefault(); } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java b/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java index b665f562e25..348801800d2 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java @@ -45,6 +45,7 @@ import java.awt.AlphaComposite; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Composite; +import java.awt.CompositeContext; import java.awt.Font; import java.awt.FontMetrics; import java.awt.GradientPaint; @@ -53,6 +54,8 @@ import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.Image; import java.awt.Paint; +import java.awt.PaintContext; +import java.awt.Point; import java.awt.Polygon; import java.awt.Rectangle; import java.awt.RenderingHints; @@ -68,6 +71,7 @@ import java.awt.geom.Arc2D; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; +import java.awt.geom.Line2D; import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.PathIterator; import java.awt.geom.Point2D; @@ -131,6 +135,7 @@ public abstract class CairoGraphics2D extends Graphics2D * The current paint */ Paint paint; + boolean customPaint; /** * The current stroke @@ -161,6 +166,7 @@ public abstract class CairoGraphics2D extends Graphics2D * The current compositing context, if any. */ Composite comp; + CompositeContext compCtx; /** * Rendering hint map. @@ -172,7 +178,7 @@ public abstract class CairoGraphics2D extends Graphics2D * coords be shifted to land on 0.5-pixel boundaries, in order to land on * "middle of pixel" coordinates and light up complete pixels. */ - private boolean shiftDrawCalls = false; + protected boolean shiftDrawCalls = false; /** * Keep track if the first clip to be set, which is restored on setClip(null); @@ -190,6 +196,18 @@ public abstract class CairoGraphics2D extends Graphics2D 0xFF000000); /** + * Native constants for interpolation methods. + * Note, this corresponds to an enum in native/jni/gtk-peer/cairographics2d.h + */ + public static final int INTERPOLATION_NEAREST = 0, + INTERPOLATION_BILINEAR = 1, + INTERPOLATION_BICUBIC = 5, + ALPHA_INTERPOLATION_SPEED = 2, + ALPHA_INTERPOLATION_QUALITY = 3, + ALPHA_INTERPOLATION_DEFAULT = 4; + // TODO: Does ALPHA_INTERPOLATION really correspond to CAIRO_FILTER_FAST/BEST/GOOD? + + /** * Constructor does nothing. */ public CairoGraphics2D() @@ -204,7 +222,7 @@ public abstract class CairoGraphics2D extends Graphics2D { nativePointer = init(cairo_t_pointer); setRenderingHints(new RenderingHints(getDefaultHints())); - font = new Font("SansSerif", Font.PLAIN, 12); + setFont(new Font("SansSerif", Font.PLAIN, 12)); setColor(Color.black); setBackground(Color.white); setPaint(Color.black); @@ -239,6 +257,8 @@ public abstract class CairoGraphics2D extends Graphics2D bg = new Color(g.bg.getRGB()); } + firstClip = g.firstClip; + originalClip = g.originalClip; clip = g.getClip(); if (g.transform == null) @@ -246,14 +266,14 @@ public abstract class CairoGraphics2D extends Graphics2D else transform = new AffineTransform(g.transform); - font = g.font; - + setFont(g.font); setColor(foreground); setBackground(bg); setPaint(paint); setStroke(stroke); setTransformImpl(transform); setClip(clip); + setComposite(comp); } /** @@ -274,6 +294,8 @@ public abstract class CairoGraphics2D extends Graphics2D { disposeNative(nativePointer); nativePointer = 0; + if (compCtx != null) + compCtx.dispose(); } /** @@ -293,6 +315,11 @@ public abstract class CairoGraphics2D extends Graphics2D int width, int height, int dx, int dy); + /** + * Find the bounds of this graphics context, in device space. + * + * @return the bounds in device-space + */ protected abstract Rectangle2D getRealBounds(); ////// Native Methods //////////////////////////////////////////////////// @@ -309,15 +336,17 @@ public abstract class CairoGraphics2D extends Graphics2D * @param i2u - affine transform array */ private native void drawPixels(long pointer, int[] pixels, int w, int h, - int stride, double[] i2u, double alpha); + int stride, double[] i2u, double alpha, + int interpolation); private native void setGradient(long pointer, double x1, double y1, double x2, double y2, int r1, int g1, int b1, int a1, int r2, int g2, int b2, int a2, boolean cyclic); - private native void setTexturePixels(long pointer, int[] pixels, int w, - int h, int stride); + private native void setPaintPixels(long pointer, int[] pixels, int w, + int h, int stride, boolean repeat, + int x, int y); /** * Set the current transform matrix @@ -365,6 +394,10 @@ public abstract class CairoGraphics2D extends Graphics2D float x, float y, int n, int[] codes, float[] positions); + /** + * Set the font in cairo. + */ + private native void cairoSetFont(long pointer, GdkFontPeer font); private native void cairoRelCurveTo(long pointer, double dx1, double dy1, double dx2, double dy2, double dx3, @@ -441,11 +474,6 @@ public abstract class CairoGraphics2D extends Graphics2D private native void cairoResetClip(long pointer); /** - * Set interpolation types - */ - private native void cairoSurfaceSetFilter(long pointer, int filter); - - /** * Draws a line from (x1,y1) to (x2,y2). * * @param pointer the native pointer @@ -666,13 +694,14 @@ public abstract class CairoGraphics2D extends Graphics2D public void setPaint(Paint p) { - if (paint == null) + if (p == null) return; paint = p; if (paint instanceof Color) { setColor((Color) paint); + customPaint = false; } else if (paint instanceof TexturePaint) { @@ -690,7 +719,8 @@ public abstract class CairoGraphics2D extends Graphics2D AffineTransformOp op = new AffineTransformOp(at, getRenderingHints()); BufferedImage texture = op.filter(img, null); int[] pixels = texture.getRGB(0, 0, width, height, null, 0, width); - setTexturePixels(nativePointer, pixels, width, height, width); + setPaintPixels(nativePointer, pixels, width, height, width, true, 0, 0); + customPaint = false; } else if (paint instanceof GradientPaint) { @@ -703,9 +733,108 @@ public abstract class CairoGraphics2D extends Graphics2D c1.getRed(), c1.getGreen(), c1.getBlue(), c1.getAlpha(), c2.getRed(), c2.getGreen(), c2.getBlue(), c2.getAlpha(), gp.isCyclic()); + customPaint = false; } else - throw new java.lang.UnsupportedOperationException(); + { + customPaint = true; + } + } + + /** + * Sets a custom paint + * + * @param bounds the bounding box, in user space + */ + protected void setCustomPaint(Rectangle bounds) + { + if (paint instanceof Color || paint instanceof TexturePaint + || paint instanceof GradientPaint) + return; + + int userX = bounds.x; + int userY = bounds.y; + int userWidth = bounds.width; + int userHeight = bounds.height; + + // Find bounds in device space + Point2D origin = transform.transform(new Point2D.Double(userX, userY), + null); + Point2D extreme = transform.transform(new Point2D.Double(userWidth + userX, + userHeight + userY), + null); + int deviceX = (int)origin.getX(); + int deviceY = (int)origin.getY(); + int deviceWidth = (int)Math.ceil(extreme.getX() - origin.getX()); + int deviceHeight = (int)Math.ceil(extreme.getY() - origin.getY()); + + // Get raster of the paint background + PaintContext pc = paint.createContext(CairoSurface.cairoColorModel, + new Rectangle(deviceX, deviceY, + deviceWidth, + deviceHeight), + bounds, + transform, hints); + + Raster raster = pc.getRaster(deviceX, deviceY, deviceWidth, + deviceHeight); + + // Clear the transform matrix in Cairo, since the raster returned by the + // PaintContext is already in device-space + AffineTransform oldTx = new AffineTransform(transform); + setTransformImpl(new AffineTransform()); + + // Set pixels in cairo, aligning the top-left of the background image + // to the top-left corner in device space + if (pc.getColorModel().equals(CairoSurface.cairoColorModel) + && raster.getSampleModel().getTransferType() == DataBuffer.TYPE_INT) + { + // Use a fast copy if the paint context can uses a Cairo-compatible + // color model + setPaintPixels(nativePointer, + (int[])raster.getDataElements(0, 0, deviceWidth, + deviceHeight, null), + deviceWidth, deviceHeight, deviceWidth, false, + deviceX, deviceY); + } + + else if (pc.getColorModel().equals(CairoSurface.cairoCM_opaque) + && raster.getSampleModel().getTransferType() == DataBuffer.TYPE_INT) + { + // We can also optimize if the context uses a similar color model + // but without an alpha channel; we just add the alpha + int[] pixels = (int[])raster.getDataElements(0, 0, deviceWidth, + deviceHeight, null); + + for (int i = 0; i < pixels.length; i++) + pixels[i] = 0xff000000 | (pixels[i] & 0x00ffffff); + + setPaintPixels(nativePointer, pixels, deviceWidth, deviceHeight, + deviceWidth, false, deviceX, deviceY); + } + + else + { + // Fall back on wrapping the raster in a BufferedImage, and + // use BufferedImage.getRGB() to do color-model conversion + WritableRaster wr = Raster.createWritableRaster(raster.getSampleModel(), + new Point(raster.getMinX(), + raster.getMinY())); + wr.setRect(raster); + + BufferedImage img2 = new BufferedImage(pc.getColorModel(), wr, + pc.getColorModel().isAlphaPremultiplied(), + null); + + setPaintPixels(nativePointer, + img2.getRGB(0, 0, deviceWidth, deviceHeight, null, 0, + deviceWidth), + deviceWidth, deviceHeight, deviceWidth, false, + deviceX, deviceY); + } + + // Restore transform + setTransformImpl(oldTx); } public Stroke getStroke() @@ -736,6 +865,33 @@ public abstract class CairoGraphics2D extends Graphics2D } } + /** + * Utility method to find the bounds of a shape, including the stroke width. + * + * @param s the shape + * @return the bounds of the shape, including stroke width + */ + protected Rectangle findStrokedBounds(Shape s) + { + Rectangle r = s.getBounds(); + + if (stroke instanceof BasicStroke) + { + int strokeWidth = (int)Math.ceil(((BasicStroke)stroke).getLineWidth()); + r.x -= strokeWidth / 2; + r.y -= strokeWidth / 2; + r.height += strokeWidth; + r.width += strokeWidth; + } + else + { + Shape s2 = stroke.createStrokedShape(s); + r = s2.getBounds(); + } + + return r; + } + public void setPaintMode() { setComposite(AlphaComposite.SrcOver); @@ -896,25 +1052,56 @@ public abstract class CairoGraphics2D extends Graphics2D */ public void setComposite(Composite comp) { + if (this.comp == comp) + return; + this.comp = comp; + if (compCtx != null) + compCtx.dispose(); + compCtx = null; if (comp instanceof AlphaComposite) { AlphaComposite a = (AlphaComposite) comp; - cairoSetOperator(nativePointer, a.getRule()); + cairoSetOperator(nativePointer, a.getRule()); } + else { - // FIXME: this check is only required "if this Graphics2D - // context is drawing to a Component on the display screen". - SecurityManager sm = System.getSecurityManager(); - if (sm != null) - sm.checkPermission(new AWTPermission("readDisplayPixels")); - - // FIXME: implement general Composite support - throw new java.lang.UnsupportedOperationException(); + cairoSetOperator(nativePointer, AlphaComposite.SRC_OVER); + + if (comp != null) + { + // FIXME: this check is only required "if this Graphics2D + // context is drawing to a Component on the display screen". + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new AWTPermission("readDisplayPixels")); + + compCtx = comp.createContext(getBufferCM(), getNativeCM(), hints); + } } } + + /** + * Returns the Colour Model describing the native, raw image data for this + * specific peer. + * + * @return ColorModel the ColorModel of native data in this peer + */ + protected abstract ColorModel getNativeCM(); + + /** + * Returns the Color Model describing the buffer that this peer uses + * for custom composites. + * + * @return ColorModel the ColorModel of the composite buffer in this peer. + */ + protected ColorModel getBufferCM() + { + // This may be overridden by some subclasses + return getNativeCM(); + } ///////////////////////// DRAWING PRIMITIVES /////////////////////////////////// @@ -929,21 +1116,30 @@ public abstract class CairoGraphics2D extends Graphics2D return; } - createPath(s); + if (customPaint) + { + Rectangle r = findStrokedBounds(s); + setCustomPaint(r); + } + + createPath(s, true); cairoStroke(nativePointer); } public void fill(Shape s) { - createPath(s); + createPath(s, false); + if (customPaint) + setCustomPaint(s.getBounds()); + double alpha = 1.0; if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); cairoFill(nativePointer, alpha); } - private void createPath(Shape s) + private void createPath(Shape s, boolean isDraw) { cairoNewPath(nativePointer); @@ -951,9 +1147,25 @@ public abstract class CairoGraphics2D extends Graphics2D if (s instanceof Rectangle2D) { Rectangle2D r = (Rectangle2D) s; - cairoRectangle(nativePointer, shifted(r.getX(), shiftDrawCalls), - shifted(r.getY(), shiftDrawCalls), r.getWidth(), - r.getHeight()); + + // Pixels need to be shifted in draw operations to ensure that they + // light up entire pixels, but we also need to make sure the rectangle + // does not get distorted by this shifting operation + double x = shiftX(r.getX(),shiftDrawCalls && isDraw); + double y = shiftY(r.getY(), shiftDrawCalls && isDraw); + double w = Math.round(r.getWidth()); + double h = Math.round(r.getHeight()); + cairoRectangle(nativePointer, x, y, w, h); + } + + // Lines are easy too + else if (s instanceof Line2D) + { + Line2D l = (Line2D) s; + cairoMoveTo(nativePointer, shiftX(l.getX1(), shiftDrawCalls && isDraw), + shiftY(l.getY1(), shiftDrawCalls && isDraw)); + cairoLineTo(nativePointer, shiftX(l.getX2(), shiftDrawCalls && isDraw), + shiftY(l.getY2(), shiftDrawCalls && isDraw)); } // We can optimize ellipses too; however we don't bother optimizing arcs: @@ -982,9 +1194,9 @@ public abstract class CairoGraphics2D extends Graphics2D } cairoArc(nativePointer, - shifted(e.getCenterX() / xscale, shiftDrawCalls), - shifted(e.getCenterY() / yscale, shiftDrawCalls), radius, 0, - Math.PI * 2); + shiftX(e.getCenterX() / xscale, shiftDrawCalls && isDraw), + shiftY(e.getCenterY() / yscale, shiftDrawCalls && isDraw), + radius, 0, Math.PI * 2); if (xscale != 1 || yscale != 1) cairoRestore(nativePointer); @@ -993,7 +1205,7 @@ public abstract class CairoGraphics2D extends Graphics2D // All other shapes are broken down and drawn in steps using the // PathIterator else - walkPath(s.getPathIterator(null), shiftDrawCalls); + walkPath(s.getPathIterator(null), shiftDrawCalls && isDraw); } /** @@ -1006,8 +1218,14 @@ public abstract class CairoGraphics2D extends Graphics2D { if (bg != null) cairoSetRGBAColor(nativePointer, bg.getRed() / 255.0, - bg.getGreen() / 255.0, bg.getBlue() / 255.0, 1.0); + bg.getGreen() / 255.0, bg.getBlue() / 255.0, + bg.getAlpha() / 255.0); + + Composite oldcomp = comp; + setComposite(AlphaComposite.Src); fillRect(x, y, width, height); + + setComposite(oldcomp); updateColor(); } @@ -1033,15 +1251,14 @@ public abstract class CairoGraphics2D extends Graphics2D // to draw a single pixel. This is emulated by drawing // a one pixel sized rectangle. if (x1 == x2 && y1 == y2) - cairoFillRect(nativePointer, x1, y1, 1, 1); + fill(new Rectangle(x1, y1, 1, 1)); else - cairoDrawLine(nativePointer, x1 + 0.5, y1 + 0.5, x2 + 0.5, y2 + 0.5); + draw(new Line2D.Double(x1, y1, x2, y2)); } public void drawRect(int x, int y, int width, int height) { - cairoDrawRect(nativePointer, shifted(x, shiftDrawCalls), - shifted(y, shiftDrawCalls), width, height); + draw(new Rectangle(x, y, width, height)); } public void fillArc(int x, int y, int width, int height, int startAngle, @@ -1049,12 +1266,12 @@ public abstract class CairoGraphics2D extends Graphics2D { fill(new Arc2D.Double((double) x, (double) y, (double) width, (double) height, (double) startAngle, - (double) arcAngle, Arc2D.OPEN)); + (double) arcAngle, Arc2D.PIE)); } public void fillRect(int x, int y, int width, int height) { - cairoFillRect(nativePointer, x, y, width, height); + fill (new Rectangle(x, y, width, height)); } public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) @@ -1117,7 +1334,7 @@ public abstract class CairoGraphics2D extends Graphics2D Rectangle2D r = getRealBounds(); - if( width < 0 || height < 0 ) + if( width <= 0 || height <= 0 ) return; // Return if outside the surface if( x + dx > r.getWidth() || y + dy > r.getHeight() ) @@ -1150,32 +1367,10 @@ public abstract class CairoGraphics2D extends Graphics2D ///////////////////////// RENDERING HINTS /////////////////////////////////// - /** - * FIXME- support better - */ public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) { hints.put(hintKey, hintValue); - if (hintKey.equals(RenderingHints.KEY_INTERPOLATION) - || hintKey.equals(RenderingHints.KEY_ALPHA_INTERPOLATION)) - { - if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) - cairoSurfaceSetFilter(nativePointer, 0); - - else if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) - cairoSurfaceSetFilter(nativePointer, 1); - - else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED)) - cairoSurfaceSetFilter(nativePointer, 2); - - else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY)) - cairoSurfaceSetFilter(nativePointer, 3); - - else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT)) - cairoSurfaceSetFilter(nativePointer, 4); - } - shiftDrawCalls = hints.containsValue(RenderingHints.VALUE_STROKE_NORMALIZE) || hints.containsValue(RenderingHints.VALUE_STROKE_DEFAULT); } @@ -1189,30 +1384,15 @@ public abstract class CairoGraphics2D extends Graphics2D { this.hints = new RenderingHints(getDefaultHints()); this.hints.add(new RenderingHints(hints)); - - if (hints.containsKey(RenderingHints.KEY_INTERPOLATION)) - { - if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) - cairoSurfaceSetFilter(nativePointer, 0); - - else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) - cairoSurfaceSetFilter(nativePointer, 1); - } - - if (hints.containsKey(RenderingHints.KEY_ALPHA_INTERPOLATION)) - { - if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED)) - cairoSurfaceSetFilter(nativePointer, 2); - - else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY)) - cairoSurfaceSetFilter(nativePointer, 3); - - else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT)) - cairoSurfaceSetFilter(nativePointer, 4); - } - + shiftDrawCalls = hints.containsValue(RenderingHints.VALUE_STROKE_NORMALIZE) || hints.containsValue(RenderingHints.VALUE_STROKE_DEFAULT); + + if (compCtx != null) + { + compCtx.dispose(); + compCtx = comp.createContext(getNativeCM(), getNativeCM(), this.hints); + } } public void addRenderingHints(Map hints) @@ -1224,6 +1404,30 @@ public abstract class CairoGraphics2D extends Graphics2D { return hints; } + + private int getInterpolation() + { + if (this.hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) + return INTERPOLATION_NEAREST; + + else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) + return INTERPOLATION_BILINEAR; + + else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BICUBIC)) + return INTERPOLATION_BICUBIC; + + else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED)) + return ALPHA_INTERPOLATION_SPEED; + + else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY)) + return ALPHA_INTERPOLATION_QUALITY; + + else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT)) + return ALPHA_INTERPOLATION_DEFAULT; + + // Do bilinear interpolation as default + return INTERPOLATION_BILINEAR; + } ///////////////////////// IMAGE. METHODS /////////////////////////////////// @@ -1259,7 +1463,7 @@ public abstract class CairoGraphics2D extends Graphics2D // Note - this can get us in trouble when the gdk lock is re-acquired. // for example by VolatileImage. See ComponentGraphics for how we work // around this. - + img = AsyncImage.realImage(img, obs); if( !(img instanceof BufferedImage) ) { ImageProducer source = img.getSource(); @@ -1269,18 +1473,18 @@ public abstract class CairoGraphics2D extends Graphics2D } BufferedImage b = (BufferedImage) img; - DataBuffer db; + Raster raster; double[] i2u = new double[6]; int width = b.getWidth(); int height = b.getHeight(); - + // If this BufferedImage has a BufferedImageGraphics object, // use the cached CairoSurface that BIG is drawing onto if( BufferedImageGraphics.bufferedImages.get( b ) != null ) - db = (DataBuffer)BufferedImageGraphics.bufferedImages.get( b ); + raster = (Raster)BufferedImageGraphics.bufferedImages.get( b ); else - db = b.getRaster().getDataBuffer(); + raster = b.getRaster(); invertedXform.getMatrix(i2u); @@ -1288,29 +1492,37 @@ public abstract class CairoGraphics2D extends Graphics2D if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); - if(db instanceof CairoSurface) + if(raster instanceof CairoSurface) { - ((CairoSurface)db).drawSurface(nativePointer, i2u, alpha); + ((CairoSurface)raster).drawSurface(nativePointer, i2u, alpha, + getInterpolation()); updateColor(); return true; } if( bgcolor != null ) { - // Fill a rectangle with the background color - // to composite the image onto. - Paint oldPaint = paint; - AffineTransform oldTransform = transform; - setPaint( bgcolor ); - setTransform( invertedXform ); - fillRect(0, 0, width, height); - setTransform( oldTransform ); - setPaint( oldPaint ); + Color oldColor = bg; + setBackground(bgcolor); + + double[] origin = new double[] {0,0}; + double[] dimensions = new double[] {width, height}; + xform.transform(origin, 0, origin, 0, 1); + xform.deltaTransform(dimensions, 0, dimensions, 0, 1); + clearRect((int)origin[0], (int)origin[1], + (int)dimensions[0], (int)dimensions[1]); + + setBackground(oldColor); } int[] pixels = b.getRGB(0, 0, width, height, null, 0, width); + + // FIXME: The above method returns data in the standard ARGB colorspace, + // meaning data should NOT be alpha pre-multiplied; however Cairo expects + // data to be premultiplied. - drawPixels(nativePointer, pixels, width, height, width, i2u, alpha); + drawPixels(nativePointer, pixels, width, height, width, i2u, alpha, + getInterpolation()); // Cairo seems to lose the current color which must be restored. updateColor(); @@ -1428,8 +1640,14 @@ public abstract class CairoGraphics2D extends Graphics2D { if (str == null || str.length() == 0) return; - (new TextLayout( str, getFont(), getFontRenderContext() )). - draw(this, x, y); + GdkFontPeer fontPeer = (GdkFontPeer) font.getPeer(); + TextLayout tl = (TextLayout) fontPeer.textLayoutCache.get(str); + if (tl == null) + { + tl = new TextLayout( str, getFont(), getFontRenderContext() ); + fontPeer.textLayoutCache.put(str, tl); + } + tl.draw(this, x, y); } public void drawString(String str, int x, int y) @@ -1449,6 +1667,9 @@ public abstract class CairoGraphics2D extends Graphics2D if( gv.getNumGlyphs() <= 0 ) return; + if (customPaint) + setCustomPaint(gv.getOutline().getBounds()); + if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); if (gv instanceof FreetypeGlyphVector && alpha == 1.0) @@ -1458,9 +1679,10 @@ public abstract class CairoGraphics2D extends Graphics2D float[] positions = gv.getGlyphPositions (0, n, null); setFont (gv.getFont ()); - synchronized( this.font ) + GdkFontPeer fontPeer = (GdkFontPeer) font.getPeer(); + synchronized (fontPeer) { - cairoDrawGlyphVector(nativePointer, (GdkFontPeer)getFont().getPeer(), + cairoDrawGlyphVector(nativePointer, fontPeer, x, y, n, codes, positions); } } @@ -1498,9 +1720,7 @@ public abstract class CairoGraphics2D extends Graphics2D public FontMetrics getFontMetrics(Font f) { - // the reason we go via the toolkit here is to try to get - // a cached object. the toolkit keeps such a cache. - return Toolkit.getDefaultToolkit().getFontMetrics(f); + return ((GdkFontPeer) f.getPeer()).getFontMetrics(f); } public void setFont(Font f) @@ -1516,6 +1736,12 @@ public abstract class CairoGraphics2D extends Graphics2D font = ((ClasspathToolkit)(Toolkit.getDefaultToolkit())) .getFont(f.getName(), f.getAttributes()); + + GdkFontPeer fontpeer = (GdkFontPeer) getFont().getPeer(); + synchronized (fontpeer) + { + cairoSetFont(nativePointer, fontpeer); + } } public Font getFont() @@ -1626,7 +1852,7 @@ public abstract class CairoGraphics2D extends Graphics2D if (comp instanceof AlphaComposite) alpha = ((AlphaComposite) comp).getAlpha(); drawPixels(nativePointer, pixels, r.getWidth(), r.getHeight(), - r.getWidth(), i2u, alpha); + r.getWidth(), i2u, alpha, getInterpolation()); // Cairo seems to lose the current color which must be restored. updateColor(); @@ -1635,12 +1861,33 @@ public abstract class CairoGraphics2D extends Graphics2D } /** - * Shifts coordinates by 0.5. + * Shifts an x-coordinate by 0.5 in device space. + */ + private double shiftX(double coord, boolean doShift) + { + if (doShift) + { + double shift = 0.5; + if (!transform.isIdentity()) + shift /= transform.getScaleX(); + return Math.round(coord) + shift; + } + else + return coord; + } + + /** + * Shifts a y-coordinate by 0.5 in device space. */ - private double shifted(double coord, boolean doShift) + private double shiftY(double coord, boolean doShift) { if (doShift) - return Math.floor(coord) + 0.5; + { + double shift = 0.5; + if (!transform.isIdentity()) + shift /= transform.getScaleY(); + return Math.round(coord) + shift; + } else return coord; } @@ -1661,35 +1908,35 @@ public abstract class CairoGraphics2D extends Graphics2D switch (seg) { case PathIterator.SEG_MOVETO: - x = shifted(coords[0], doShift); - y = shifted(coords[1], doShift); + x = shiftX(coords[0], doShift); + y = shiftY(coords[1], doShift); cairoMoveTo(nativePointer, x, y); break; case PathIterator.SEG_LINETO: - x = shifted(coords[0], doShift); - y = shifted(coords[1], doShift); + x = shiftX(coords[0], doShift); + y = shiftY(coords[1], doShift); cairoLineTo(nativePointer, x, y); break; case PathIterator.SEG_QUADTO: // splitting a quadratic bezier into a cubic: // see: http://pfaedit.sourceforge.net/bezier.html - double x1 = x + (2.0 / 3.0) * (shifted(coords[0], doShift) - x); - double y1 = y + (2.0 / 3.0) * (shifted(coords[1], doShift) - y); + double x1 = x + (2.0 / 3.0) * (shiftX(coords[0], doShift) - x); + double y1 = y + (2.0 / 3.0) * (shiftY(coords[1], doShift) - y); - double x2 = x1 + (1.0 / 3.0) * (shifted(coords[2], doShift) - x); - double y2 = y1 + (1.0 / 3.0) * (shifted(coords[3], doShift) - y); + double x2 = x1 + (1.0 / 3.0) * (shiftX(coords[2], doShift) - x); + double y2 = y1 + (1.0 / 3.0) * (shiftY(coords[3], doShift) - y); - x = shifted(coords[2], doShift); - y = shifted(coords[3], doShift); + x = shiftX(coords[2], doShift); + y = shiftY(coords[3], doShift); cairoCurveTo(nativePointer, x1, y1, x2, y2, x, y); break; case PathIterator.SEG_CUBICTO: - x = shifted(coords[4], doShift); - y = shifted(coords[5], doShift); - cairoCurveTo(nativePointer, shifted(coords[0], doShift), - shifted(coords[1], doShift), - shifted(coords[2], doShift), - shifted(coords[3], doShift), x, y); + x = shiftX(coords[4], doShift); + y = shiftY(coords[5], doShift); + cairoCurveTo(nativePointer, shiftX(coords[0], doShift), + shiftY(coords[1], doShift), + shiftX(coords[2], doShift), + shiftY(coords[3], doShift), x, y); break; case PathIterator.SEG_CLOSE: cairoClosePath(nativePointer); @@ -1807,4 +2054,4 @@ public abstract class CairoGraphics2D extends Graphics2D return rect; } -} +} \ No newline at end of file diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java b/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java index 78bc1e02db0..5b63e62e7ed 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java @@ -38,14 +38,18 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; -import java.awt.Point; +import gnu.java.awt.Buffers; + import java.awt.Graphics2D; -import java.awt.image.DataBuffer; -import java.awt.image.Raster; -import java.awt.image.WritableRaster; +import java.awt.Point; +import java.awt.color.ColorSpace; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; import java.awt.image.DirectColorModel; +import java.awt.image.SampleModel; +import java.awt.image.SinglePixelPackedSampleModel; +import java.awt.image.WritableRaster; import java.nio.ByteOrder; import java.util.Hashtable; @@ -54,7 +58,7 @@ import java.util.Hashtable; * * @author Sven de Marothy */ -public class CairoSurface extends DataBuffer +public class CairoSurface extends WritableRaster { int width = -1, height = -1; @@ -68,13 +72,27 @@ public class CairoSurface extends DataBuffer */ long bufferPointer; - - static ColorModel nativeModel = new DirectColorModel(32, - 0x00FF0000, - 0x0000FF00, - 0x000000FF, - 0xFF000000); - + // FIXME: use only the cairoCM_pre colormodel + // since that's what Cairo really uses (is there a way to do this cheaply? + // we use a non-multiplied model most of the time to avoid costly coercion + // operations...) + static ColorModel cairoColorModel = new DirectColorModel(32, 0x00FF0000, + 0x0000FF00, + 0x000000FF, + 0xFF000000); + + static ColorModel cairoCM_pre = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), + 32, 0x00FF0000, + 0x0000FF00, + 0x000000FF, + 0xFF000000, + true, + Buffers.smallestAppropriateTransferType(32)); + + // This CM corresponds to the CAIRO_FORMAT_RGB24 type in Cairo + static ColorModel cairoCM_opaque = new DirectColorModel(24, 0x00FF0000, + 0x0000FF00, + 0x000000FF); /** * Allocates and clears the buffer and creates the cairo surface. * @param width, height - the image size @@ -102,11 +120,13 @@ public class CairoSurface extends DataBuffer * with an affine transform given by i2u. */ public native void nativeDrawSurface(long surfacePointer, long contextPointer, - double[] i2u, double alpha); + double[] i2u, double alpha, + int interpolation); - public void drawSurface(long contextPointer, double[] i2u, double alpha) + public void drawSurface(long contextPointer, double[] i2u, double alpha, + int interpolation) { - nativeDrawSurface(surfacePointer, contextPointer, i2u, alpha); + nativeDrawSurface(surfacePointer, contextPointer, i2u, alpha, interpolation); } /** @@ -138,18 +158,20 @@ public class CairoSurface extends DataBuffer */ public CairoSurface(int width, int height) { - super(DataBuffer.TYPE_INT, width * height); + super(createCairoSampleModel(width, height), + null, new Point(0, 0)); if(width <= 0 || height <= 0) throw new IllegalArgumentException("Image must be at least 1x1 pixels."); - + this.width = width; this.height = height; - create(width, height, width); if(surfacePointer == 0 || bufferPointer == 0) throw new Error("Could not allocate bitmap."); + + dataBuffer = new CairoDataBuffer(); } /** @@ -158,18 +180,7 @@ public class CairoSurface extends DataBuffer */ CairoSurface(GtkImage image) { - super(DataBuffer.TYPE_INT, image.width * image.height); - - if(image.width <= 0 || image.height <= 0) - throw new IllegalArgumentException("Image must be at least 1x1 pixels."); - - width = image.width; - height = image.height; - - create(width, height, width); - - if(surfacePointer == 0 || bufferPointer == 0) - throw new Error("Could not allocate bitmap."); + this(image.width, image.height); // Copy the pixel data from the GtkImage. int[] data = image.getPixels(); @@ -260,32 +271,37 @@ public class CairoSurface extends DataBuffer */ public static BufferedImage getBufferedImage(CairoSurface surface) { - WritableRaster raster = Raster.createPackedRaster - (surface, surface.width, surface.height, surface.width, - new int[]{ 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 }, - new Point(0,0)); - - return new BufferedImage(nativeModel, raster, true, new Hashtable()); + return new BufferedImage(cairoColorModel, surface, + cairoColorModel.isAlphaPremultiplied(), + new Hashtable()); } - /** - * DataBank.getElem implementation - */ - public int getElem(int bank, int i) + private class CairoDataBuffer extends DataBuffer { - if(bank != 0 || i < 0 || i >= width*height) - throw new IndexOutOfBoundsException(i+" size: "+width*height); - return nativeGetElem(bufferPointer, i); - } + public CairoDataBuffer() + { + super(DataBuffer.TYPE_INT, width * height); + } + + /** + * DataBuffer.getElem implementation + */ + public int getElem(int bank, int i) + { + if(bank != 0 || i < 0 || i >= width * height) + throw new IndexOutOfBoundsException(i+" size: "+width * height); + return nativeGetElem(bufferPointer, i); + } - /** - * DataBank.setElem implementation - */ - public void setElem(int bank, int i, int val) - { - if(bank != 0 || i < 0 || i >= width*height) - throw new IndexOutOfBoundsException(i+" size: "+width*height); - nativeSetElem(bufferPointer, i, val); + /** + * DataBuffer.setElem implementation + */ + public void setElem(int bank, int i, int val) + { + if(bank != 0 || i < 0 || i >= width*height) + throw new IndexOutOfBoundsException(i+" size: "+width * height); + nativeSetElem(bufferPointer, i, val); + } } /** @@ -319,4 +335,14 @@ public class CairoSurface extends DataBuffer { copyAreaNative2(bufferPointer, x, y, width, height, dx, dy, stride); } + + /** + * Creates a SampleModel that matches Cairo's native format + */ + protected static SampleModel createCairoSampleModel(int w, int h) + { + return new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT, w, h, + new int[]{0x00FF0000, 0x0000FF00, + 0x000000FF, 0xFF000000}); + } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java index 7bd136c3845..36743b9c2da 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java @@ -38,10 +38,26 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import java.awt.AlphaComposite; +import java.awt.Color; import java.awt.Graphics; -import java.awt.GraphicsEnvironment; +import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; +import java.awt.GraphicsEnvironment; +import java.awt.Image; +import java.awt.Rectangle; +import java.awt.Shape; +import java.awt.Toolkit; +import java.awt.font.GlyphVector; +import java.awt.geom.AffineTransform; +import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.awt.image.RenderedImage; +import java.util.Hashtable; /** * Implementation of Graphics2D on a Cairo surface. @@ -49,6 +65,7 @@ import java.awt.geom.Rectangle2D; public class CairoSurfaceGraphics extends CairoGraphics2D { protected CairoSurface surface; + private BufferedImage buffer; private long cairo_t; /** @@ -59,6 +76,7 @@ public class CairoSurfaceGraphics extends CairoGraphics2D this.surface = surface; cairo_t = surface.newCairoContext(); setup( cairo_t ); + setClip(0, 0, surface.width, surface.height); } /** @@ -91,4 +109,200 @@ public class CairoSurfaceGraphics extends CairoGraphics2D { surface.copyAreaNative(x, y, width, height, dx, dy, surface.width); } + + /** + * Overloaded methods that do actual drawing need to account for custom + * composites + */ + public void draw(Shape s) + { + if (comp == null || comp instanceof AlphaComposite) + super.draw(s); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setStroke(this.getStroke()); + g2d.setColor(this.getColor()); + g2d.draw(s); + + drawComposite(s.getBounds2D(), null); + } + } + + public void fill(Shape s) + { + if (comp == null || comp instanceof AlphaComposite) + super.fill(s); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setPaint(this.getPaint()); + g2d.setColor(this.getColor()); + g2d.fill(s); + + drawComposite(s.getBounds2D(), null); + } + } + + public void drawRenderedImage(RenderedImage image, AffineTransform xform) + { + if (comp == null || comp instanceof AlphaComposite) + super.drawRenderedImage(image, xform); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setRenderingHints(this.getRenderingHints()); + g2d.drawRenderedImage(image, xform); + + drawComposite(buffer.getRaster().getBounds(), null); + } + + } + + protected boolean drawImage(Image img, AffineTransform xform, + Color bgcolor, ImageObserver obs) + { + if (comp == null || comp instanceof AlphaComposite) + return super.drawImage(img, xform, bgcolor, obs); + + else + { + // Get buffered image of source + if( !(img instanceof BufferedImage) ) + { + ImageProducer source = img.getSource(); + if (source == null) + return false; + img = Toolkit.getDefaultToolkit().createImage(source); + } + BufferedImage bImg = (BufferedImage) img; + + // Find translated bounds + Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); + Point2D pt = new Point2D.Double(bImg.getWidth() + bImg.getMinX(), + bImg.getHeight() + bImg.getMinY()); + if (xform != null) + { + origin = xform.transform(origin, origin); + pt = xform.transform(pt, pt); + } + + // Create buffer and draw image + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setRenderingHints(this.getRenderingHints()); + g2d.drawImage(img, xform, obs); + + // Perform compositing + return drawComposite(new Rectangle2D.Double(origin.getX(), + origin.getY(), + pt.getX(), pt.getY()), + obs); + } + } + + public void drawGlyphVector(GlyphVector gv, float x, float y) + { + if (comp == null || comp instanceof AlphaComposite) + super.drawGlyphVector(gv, x, y); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setPaint(this.getPaint()); + g2d.setStroke(this.getStroke()); + g2d.drawGlyphVector(gv, x, y); + + Rectangle2D bounds = gv.getLogicalBounds(); + bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), + bounds.getWidth(), bounds.getHeight()); + drawComposite(bounds, null); + } + } + + private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) + { + // Clip source to visible areas that need updating + Rectangle2D clip = this.getClipBounds(); + Rectangle2D.intersect(bounds, clip, bounds); + clip = new Rectangle(buffer.getMinX(), buffer.getMinY(), + buffer.getWidth(), buffer.getHeight()); + Rectangle2D.intersect(bounds, clip, bounds); + + BufferedImage buffer2 = buffer; + if (!bounds.equals(buffer2.getRaster().getBounds())) + buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), + (int)bounds.getWidth(), + (int)bounds.getHeight()); + + // Get destination clip to bounds + double[] points = new double[] {bounds.getX(), bounds.getY(), + bounds.getMaxX(), bounds.getMaxY()}; + transform.transform(points, 0, points, 0, 2); + + Rectangle2D deviceBounds = new Rectangle2D.Double(points[0], points[1], + points[2] - points[0], + points[3] - points[1]); + + Rectangle2D.intersect(deviceBounds, this.getClipInDevSpace(), deviceBounds); + + BufferedImage current = CairoSurface.getBufferedImage(surface); + current = current.getSubimage((int)deviceBounds.getX(), + (int)deviceBounds.getY(), + (int)deviceBounds.getWidth(), + (int)deviceBounds.getHeight()); + + // Perform actual composite operation + compCtx.compose(buffer2.getRaster(), current.getRaster(), + buffer2.getRaster()); + + // This MUST call directly into the "action" method in CairoGraphics2D, + // not one of the wrappers, to ensure that the composite isn't processed + // more than once! + boolean rv = super.drawImage(buffer2, + AffineTransform.getTranslateInstance(bounds.getX(), + bounds.getY()), + new Color(0,0,0,0), null); + return rv; + } + + private void createBuffer() + { + if (buffer == null) + { + buffer = new BufferedImage(getBufferCM(), + surface.createCompatibleWritableRaster(), + getBufferCM().isAlphaPremultiplied(), + new Hashtable()); + } + else + { + Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); + + g2d.setBackground(new Color(0,0,0,0)); + g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); + } + } + + protected ColorModel getNativeCM() + { + return CairoSurface.cairoCM_pre; + } + + protected ColorModel getBufferCM() + { + return CairoSurface.cairoColorModel; + } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java index ffa78e9c904..763ad7dfddd 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java @@ -38,22 +38,31 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import gnu.classpath.Pointer; + +import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.Image; +import java.awt.Point; import java.awt.Rectangle; import java.awt.Shape; import java.awt.Toolkit; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; +import java.awt.geom.Line2D; +import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; import java.awt.image.ImageObserver; import java.awt.image.ImageProducer; +import java.awt.image.Raster; import java.awt.image.RenderedImage; -import gnu.classpath.Pointer; +import java.awt.image.WritableRaster; +import java.util.Hashtable; /** * ComponentGraphics - context for drawing directly to a component, @@ -67,36 +76,11 @@ public class ComponentGraphics extends CairoGraphics2D private GtkComponentPeer component; protected long cairo_t; + private BufferedImage buffer, componentBuffer; private static ThreadLocal hasLock = new ThreadLocal(); private static Integer ONE = Integer.valueOf(1); - private void lock() - { - Integer i = (Integer) hasLock.get(); - if (i == null) - { - start_gdk_drawing(); - hasLock.set(ONE); - } - else - hasLock.set(Integer.valueOf(i.intValue() + 1)); - } - - private void unlock() - { - Integer i = (Integer) hasLock.get(); - if (i == null) - throw new IllegalStateException(); - if (i == ONE) - { - hasLock.set(null); - end_gdk_drawing(); - } - else - hasLock.set(Integer.valueOf(i.intValue() - 1)); - } - ComponentGraphics() { } @@ -128,6 +112,32 @@ public class ComponentGraphics extends CairoGraphics2D */ private native long initState(GtkComponentPeer component); + private void lock() + { + Integer i = (Integer) hasLock.get(); + if (i == null) + { + start_gdk_drawing(); + hasLock.set(ONE); + } + else + hasLock.set(Integer.valueOf(i.intValue() + 1)); + } + + private void unlock() + { + Integer i = (Integer) hasLock.get(); + if (i == null) + throw new IllegalStateException(); + if (i == ONE) + { + hasLock.set(null); + end_gdk_drawing(); + } + else + hasLock.set(Integer.valueOf(i.intValue() - 1)); + } + /** * Destroys the component surface and calls dispose on the cairo * graphics2d to destroy any super class resources. @@ -227,7 +237,20 @@ public class ComponentGraphics extends CairoGraphics2D lock(); try { - super.draw(s); + if (comp == null || comp instanceof AlphaComposite) + super.draw(s); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setStroke(this.getStroke()); + g2d.setColor(this.getColor()); + g2d.draw(s); + + drawComposite(s.getBounds2D(), null); + } } finally { @@ -240,7 +263,20 @@ public class ComponentGraphics extends CairoGraphics2D lock(); try { - super.fill(s); + if (comp == null || comp instanceof AlphaComposite) + super.fill(s); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setPaint(this.getPaint()); + g2d.setColor(this.getColor()); + g2d.fill(s); + + drawComposite(s.getBounds2D(), null); + } } finally { @@ -253,7 +289,19 @@ public class ComponentGraphics extends CairoGraphics2D lock(); try { - super.drawRenderedImage(image, xform); + if (comp == null || comp instanceof AlphaComposite) + super.drawRenderedImage(image, xform); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setRenderingHints(this.getRenderingHints()); + g2d.drawRenderedImage(image, xform); + + drawComposite(buffer.getRaster().getBounds(), null); + } } finally { @@ -268,7 +316,44 @@ public class ComponentGraphics extends CairoGraphics2D lock(); try { - rv = super.drawImage(img, xform, bgcolor, obs); + if (comp == null || comp instanceof AlphaComposite) + rv = super.drawImage(img, xform, bgcolor, obs); + + else + { + // Get buffered image of source + if( !(img instanceof BufferedImage) ) + { + ImageProducer source = img.getSource(); + if (source == null) + return false; + img = Toolkit.getDefaultToolkit().createImage(source); + } + BufferedImage bImg = (BufferedImage) img; + + // Find translated bounds + Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); + Point2D pt = new Point2D.Double(bImg.getWidth() + bImg.getMinX(), + bImg.getHeight() + bImg.getMinY()); + if (xform != null) + { + origin = xform.transform(origin, origin); + pt = xform.transform(pt, pt); + } + + // Create buffer and draw image + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setRenderingHints(this.getRenderingHints()); + g2d.drawImage(img, xform, obs); + + // Perform compositing + rv = drawComposite(new Rectangle2D.Double(origin.getX(), + origin.getY(), + pt.getX(), pt.getY()), + obs); + } } finally { @@ -282,7 +367,23 @@ public class ComponentGraphics extends CairoGraphics2D lock(); try { - super.drawGlyphVector(gv, x, y); + if (comp == null || comp instanceof AlphaComposite) + super.drawGlyphVector(gv, x, y); + + else + { + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setPaint(this.getPaint()); + g2d.setStroke(this.getStroke()); + g2d.drawGlyphVector(gv, x, y); + + Rectangle2D bounds = gv.getLogicalBounds(); + bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), + bounds.getWidth(), bounds.getHeight()); + drawComposite(bounds, null); + } } finally { @@ -367,6 +468,7 @@ public class ComponentGraphics extends CairoGraphics2D } BufferedImage bimg; + img = AsyncImage.realImage(img, observer); if (img instanceof BufferedImage) bimg = (BufferedImage) img; else @@ -379,57 +481,112 @@ public class ComponentGraphics extends CairoGraphics2D return super.drawImage(bimg, x, y, width, height, observer); } - public void drawLine(int x1, int y1, int x2, int y2) + public void setClip(Shape s) { lock(); try { - super.drawLine(x1, y1, x2, y2); + super.setClip(s); } finally { - unlock(); + unlock(); } } - public void drawRect(int x, int y, int width, int height) + + private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) { + // Clip source to visible areas that need updating + Rectangle2D clip = this.getClipBounds(); + Rectangle2D.intersect(bounds, clip, bounds); + clip = new Rectangle(buffer.getMinX(), buffer.getMinY(), + buffer.getWidth(), buffer.getHeight()); + Rectangle2D.intersect(bounds, clip, bounds); + + BufferedImage buffer2 = buffer; + if (!bounds.equals(buffer2.getRaster().getBounds())) + buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), + (int)bounds.getWidth(), + (int)bounds.getHeight()); + + // Get destination clip to bounds + double[] points = new double[] {bounds.getX(), bounds.getY(), + bounds.getMaxX(), bounds.getMaxY()}; + transform.transform(points, 0, points, 0, 2); + + Rectangle2D deviceBounds = new Rectangle2D.Double(points[0], points[1], + points[2] - points[0], + points[3] - points[1]); + + Rectangle2D.intersect(deviceBounds, this.getClipInDevSpace(), deviceBounds); + + // Get current image on the component + unlock(); + GtkImage img = grab(component); + Graphics gr = componentBuffer.createGraphics(); + gr.drawImage(img, 0, 0, null); + gr.dispose(); lock(); - try - { - super.drawRect(x, y, width, height); - } - finally - { - unlock(); - } + + BufferedImage cBuffer = componentBuffer; + if (!deviceBounds.equals(cBuffer.getRaster().getBounds())) + cBuffer = cBuffer.getSubimage((int)deviceBounds.getX(), + (int)deviceBounds.getY(), + (int)deviceBounds.getWidth(), + (int)deviceBounds.getHeight()); + + // Perform actual composite operation + compCtx.compose(buffer2.getRaster(), cBuffer.getRaster(), + cBuffer.getRaster()); + + // This MUST call directly into the "action" method in CairoGraphics2D, + // not one of the wrappers, to ensure that the composite isn't processed + // more than once! + boolean rv = super.drawImage(cBuffer, + AffineTransform.getTranslateInstance(bounds.getX(), + bounds.getY()), + null, null); + return rv; } - - public void fillRect(int x, int y, int width, int height) + + private void createBuffer() { - lock(); - try - { - super.fillRect(x, y, width, height); - } - finally + if (buffer == null) { - unlock(); + WritableRaster rst; + rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(component.awtComponent.getWidth(), + component.awtComponent.getHeight()), + new Point(0,0)); + + buffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, + GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), + new Hashtable()); } - } - - public void setClip(Shape s) - { - lock(); - try + else { - super.setClip(s); + Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); + + g2d.setBackground(new Color(0,0,0,0)); + g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); } - finally + + if (componentBuffer == null) { - unlock(); + WritableRaster rst; + rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(component.awtComponent.getWidth(), + component.awtComponent.getHeight()), + new Point(0,0)); + + componentBuffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, + GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), + new Hashtable()); } } - + + protected ColorModel getNativeCM() + { + return GtkVolatileImage.gdkColorModel; + } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java b/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java index 2c9d917934f..131a964488f 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java @@ -39,14 +39,15 @@ package gnu.java.awt.peer.gtk; import java.awt.Font; import java.awt.Shape; -import java.awt.geom.AffineTransform; -import java.awt.geom.Point2D; -import java.awt.geom.Rectangle2D; -import java.awt.geom.GeneralPath; +import java.awt.font.FontRenderContext; import java.awt.font.GlyphJustificationInfo; import java.awt.font.GlyphMetrics; import java.awt.font.GlyphVector; -import java.awt.font.FontRenderContext; +import java.awt.geom.AffineTransform; +import java.awt.geom.GeneralPath; +import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; +import java.util.Arrays; public class FreetypeGlyphVector extends GlyphVector { @@ -91,16 +92,17 @@ public class FreetypeGlyphVector extends GlyphVector */ public FreetypeGlyphVector(Font f, String s, FontRenderContext frc) { - this(f, s, frc, Font.LAYOUT_LEFT_TO_RIGHT); + this(f, s.toCharArray(), 0, s.length(), frc, Font.LAYOUT_LEFT_TO_RIGHT); } /** * Create a glyphvector from a given (Freetype) font and a String. */ - public FreetypeGlyphVector(Font f, String s, FontRenderContext frc, - int flags) + public FreetypeGlyphVector(Font f, char[] chars, int start, int len, + FontRenderContext frc, int flags) { - this.s = s; + this.s = new String(chars, start, len); + this.font = f; this.frc = frc; if( !(font.getPeer() instanceof GdkFontPeer ) ) @@ -155,14 +157,15 @@ public class FreetypeGlyphVector extends GlyphVector } glyphCodes = new int[ nGlyphs ]; - glyphPositions = new float[ nGlyphs ]; + glyphPositions = new float[(nGlyphs + 1) * 2]; glyphTransforms = new AffineTransform[ nGlyphs ]; for(int i = 0; i < nGlyphs; i++ ) { - glyphTransforms[ i ] = new AffineTransform( gv.glyphTransforms[ i ] ); - glyphCodes[i] = gv.glyphCodes[ i ]; - glyphPositions[i] = gv.glyphPositions[ i ]; + glyphTransforms[ i ] = new AffineTransform( gv.glyphTransforms[ i ] ); + glyphCodes[i] = gv.glyphCodes[ i ]; } + System.arraycopy(gv.glyphPositions, 0, glyphPositions, 0, + glyphPositions.length); } /** @@ -178,10 +181,17 @@ public class FreetypeGlyphVector extends GlyphVector for(int i = 0; i < nGlyphs; i++) { codePoints[i] = s.codePointAt( stringIndex ); - // UTF32 surrogate handling + // UTF32 surrogate handling if( codePoints[i] != (int)s.charAt( stringIndex ) ) stringIndex ++; stringIndex ++; + + if (Character.isISOControl(codePoints[i])) + { + // Replace with 'hair space'. Should better be 'zero-width space' + // but that doesn't seem to be supported by default font. + codePoints[i] = 8202; + } } glyphCodes = getGlyphs( codePoints ); @@ -242,22 +252,31 @@ public class FreetypeGlyphVector extends GlyphVector public void performDefaultLayout() { logicalBounds = null; // invalidate caches. - glyphPositions = null; - - glyphTransforms = new AffineTransform[ nGlyphs ]; - double x = 0; + glyphTransforms = new AffineTransform[nGlyphs]; + Arrays.fill(glyphTransforms, null); + glyphPositions = new float[(nGlyphs + 1) * 2]; + GlyphMetrics gm = null; + float x = 0; + float y = 0; for(int i = 0; i < nGlyphs; i++) { - GlyphMetrics gm = getGlyphMetrics( i ); - glyphTransforms[ i ] = AffineTransform.getTranslateInstance(x, 0); - x += gm.getAdvanceX(); - if( i > 0 ) - { - Point2D p = getKerning( glyphCodes[ i - 1 ], glyphCodes[ i ] ); - x += p.getX(); - } + gm = getGlyphMetrics( i ); + glyphPositions[i*2] = x; + glyphPositions[i*2 + 1] = y; + + x += gm.getAdvanceX(); + y += gm.getAdvanceY(); + + if (i != nGlyphs-1) + { + Point2D p = getKerning(glyphCodes[i], glyphCodes[i + 1]); + x += p.getX(); + y += p.getY(); + } } + glyphPositions[nGlyphs * 2] = x; + glyphPositions[nGlyphs * 2 + 1] = y; } /** @@ -276,7 +295,7 @@ public class FreetypeGlyphVector extends GlyphVector { int[] rval; - if( codeReturn == null ) + if( codeReturn == null || codeReturn.length < numEntries) rval = new int[ numEntries ]; else rval = codeReturn; @@ -286,9 +305,6 @@ public class FreetypeGlyphVector extends GlyphVector return rval; } - /** - * FIXME: Implement me. - */ public Shape getGlyphLogicalBounds(int glyphIndex) { GlyphMetrics gm = getGlyphMetrics( glyphIndex ); @@ -296,10 +312,17 @@ public class FreetypeGlyphVector extends GlyphVector return null; Rectangle2D r = gm.getBounds2D(); Point2D p = getGlyphPosition( glyphIndex ); - return new Rectangle2D.Double( p.getX() + r.getX() - gm.getLSB(), - p.getY() + r.getY(), - gm.getAdvanceX(), - r.getHeight() ); + + double[] bounds = new double[] {p.getX() + r.getX() - gm.getLSB(), + p.getY() + r.getY(), + p.getX() + r.getX() - gm.getLSB() + gm.getAdvanceX(), + p.getY() + r.getY() + r.getHeight()}; + + if (glyphTransforms[glyphIndex] != null) + glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 4); + + return new Rectangle2D.Double(bounds[0], bounds[1], bounds[2] - bounds[0], + bounds[3] - bounds[1]); } /* @@ -352,7 +375,9 @@ public class FreetypeGlyphVector extends GlyphVector public Shape getGlyphOutline(int glyphIndex) { GeneralPath gp = getGlyphOutlineNative( glyphCodes[ glyphIndex ] ); - gp.transform( glyphTransforms[ glyphIndex ] ); + if (glyphTransforms[glyphIndex] != null) + gp.transform( glyphTransforms[glyphIndex]); + return gp; } @@ -361,8 +386,8 @@ public class FreetypeGlyphVector extends GlyphVector */ public Point2D getGlyphPosition(int glyphIndex) { - return glyphTransforms[ glyphIndex ].transform( new Point2D.Double(0, 0), - null ); + return new Point2D.Float(glyphPositions[glyphIndex*2], + glyphPositions[glyphIndex*2 + 1]); } /** @@ -371,25 +396,12 @@ public class FreetypeGlyphVector extends GlyphVector public float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn) { - if( glyphPositions != null ) - return glyphPositions; - - float[] rval; - - if( positionReturn == null ) - rval = new float[2 * numEntries]; - else - rval = positionReturn; - - for( int i = beginGlyphIndex; i < numEntries; i++ ) - { - Point2D p = getGlyphPosition( i ); - rval[i * 2] = (float)p.getX(); - rval[i * 2 + 1] = (float)p.getY(); - } - - glyphPositions = rval; - return rval; + if (positionReturn == null || positionReturn.length < (numEntries * 2)) + positionReturn = new float[numEntries*2]; + + System.arraycopy(glyphPositions, beginGlyphIndex*2, positionReturn, 0, + numEntries*2); + return positionReturn; } /** @@ -397,7 +409,7 @@ public class FreetypeGlyphVector extends GlyphVector */ public AffineTransform getGlyphTransform(int glyphIndex) { - return new AffineTransform( glyphTransforms[ glyphIndex ] ); + return glyphTransforms[glyphIndex]; } /** @@ -420,10 +432,12 @@ public class FreetypeGlyphVector extends GlyphVector return logicalBounds; Rectangle2D rect = (Rectangle2D)getGlyphLogicalBounds( 0 ); + AffineTransform tx = new AffineTransform(); for( int i = 1; i < nGlyphs; i++ ) { - Rectangle2D r2 = (Rectangle2D)getGlyphLogicalBounds( i ); - rect = rect.createUnion( r2 ); + Rectangle2D r2 = (Rectangle2D)getGlyphLogicalBounds( i ); + + rect = rect.createUnion( r2 ); } logicalBounds = rect; @@ -444,8 +458,14 @@ public class FreetypeGlyphVector extends GlyphVector public Shape getOutline() { GeneralPath path = new GeneralPath(); + AffineTransform tx = new AffineTransform(); for( int i = 0; i < getNumGlyphs(); i++ ) - path.append( getGlyphOutline( i ), false ); + { + Shape outline = getGlyphOutline(i); + tx.setToTranslation(glyphPositions[i*2], glyphPositions[i*2 +1]); + outline = tx.createTransformedShape(outline); + path.append(outline, false); + } return path; } @@ -485,11 +505,9 @@ public class FreetypeGlyphVector extends GlyphVector */ public void setGlyphPosition(int glyphIndex, Point2D newPos) { - // FIXME: Scaling, etc.? - glyphTransforms[ glyphIndex ].setToTranslation( newPos.getX(), - newPos.getY() ); + glyphPositions[glyphIndex*2] = (float)(newPos.getX()); + glyphPositions[glyphIndex*2 + 1] = (float)(newPos.getY()); logicalBounds = null; - glyphPositions = null; } /** @@ -497,8 +515,7 @@ public class FreetypeGlyphVector extends GlyphVector */ public void setGlyphTransform(int glyphIndex, AffineTransform newTX) { - glyphTransforms[ glyphIndex ].setTransform( newTX ); logicalBounds = null; - glyphPositions = null; + glyphTransforms[glyphIndex] = newTX; } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontMetrics.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontMetrics.java deleted file mode 100644 index b2ffed10ea6..00000000000 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontMetrics.java +++ /dev/null @@ -1,143 +0,0 @@ -/* GdkFontMetrics.java - Copyright (C) 1999, 2002, 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 gnu.java.awt.peer.gtk; - -import gnu.java.awt.ClasspathToolkit; - -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Toolkit; - -public class GdkFontMetrics extends FontMetrics -{ - - private int[] font_metrics; - GdkFontPeer peer; - - static final int FONT_METRICS_ASCENT = 0; - static final int FONT_METRICS_MAX_ASCENT = 1; - static final int FONT_METRICS_DESCENT = 2; - static final int FONT_METRICS_MAX_DESCENT = 3; - static final int FONT_METRICS_MAX_ADVANCE = 4; - - static final int TEXT_METRICS_X_BEARING = 0; - static final int TEXT_METRICS_Y_BEARING = 1; - static final int TEXT_METRICS_WIDTH = 2; - static final int TEXT_METRICS_HEIGHT = 3; - static final int TEXT_METRICS_X_ADVANCE = 4; - static final int TEXT_METRICS_Y_ADVANCE = 5; - - /** - * Makes sure to return a Font based on the given Font that has as - * peer a GdkFontPeer. Used in the initializer. - */ - private static Font initFont(Font font) - { - if (font == null) - return new Font("Dialog", Font.PLAIN, 12); - else if (font.getPeer() instanceof GdkFontPeer) - return font; - else - { - ClasspathToolkit toolkit; - toolkit = (ClasspathToolkit) Toolkit.getDefaultToolkit(); - return toolkit.getFont(font.getName(), font.getAttributes()); - } - } - - public GdkFontMetrics (Font font) - { - super(initFont(font)); - peer = (GdkFontPeer) this.font.getPeer(); - - font_metrics = new int[5]; - double [] hires = new double[5]; - peer.getFontMetrics (hires); - for (int i = 0; i < 5; ++i) - font_metrics[i] = (int) hires[i]; - } - - public int stringWidth (String str) - { - double [] hires = new double[6]; - peer.getTextMetrics(str, hires); - return (int) hires [TEXT_METRICS_WIDTH]; - } - - public int charWidth (char ch) - { - return stringWidth (new String (new char[] { ch })); - } - - public int charsWidth (char data[], int off, int len) - { - return stringWidth (new String (data, off, len)); - } - - public int getLeading () - { - // Sun always returns 0. - return 0; - } - - public int getAscent () - { - return font_metrics[FONT_METRICS_ASCENT]; - } - - public int getMaxAscent () - { - return font_metrics[FONT_METRICS_MAX_ASCENT]; - } - - public int getDescent () - { - return font_metrics[FONT_METRICS_DESCENT]; - } - - public int getMaxDescent () - { - return font_metrics[FONT_METRICS_MAX_DESCENT]; - } - - public int getMaxAdvance () - { - return font_metrics[FONT_METRICS_MAX_ADVANCE]; - } -} diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java index 11635c3544e..5f5126ac590 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import gnu.java.awt.ClasspathToolkit; import gnu.java.awt.peer.ClasspathFontPeer; import gnu.java.awt.font.opentype.NameDecoder; @@ -48,39 +49,125 @@ import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.font.GlyphMetrics; import java.awt.font.LineMetrics; +import java.awt.font.TextLayout; import java.awt.geom.Rectangle2D; import java.text.CharacterIterator; import java.util.Locale; import java.util.Map; -import java.util.ResourceBundle; import java.nio.ByteBuffer; import java.util.HashMap; public class GdkFontPeer extends ClasspathFontPeer { + static final FontRenderContext DEFAULT_CTX = + new FontRenderContext(null, false, false); + + /** + * Caches TextLayout instances for use in charsWidth() and drawString(). + * The size of the cache has been chosen so that relativly large GUIs with + * text documents are still efficient. + */ + HashMap textLayoutCache = new GtkToolkit.LRUCache(500); + + private class GdkFontMetrics extends FontMetrics + { + + public GdkFontMetrics (Font font) + { + super(initFont(font)); + } + + public int stringWidth (String str) + { + TextLayout tl = (TextLayout) textLayoutCache.get(str); + if (tl == null) + { + tl = new TextLayout(str, font, DEFAULT_CTX); + textLayoutCache.put(str, tl); + } + return (int) tl.getAdvance(); + } + + public int charWidth (char ch) + { + return stringWidth (new String (new char[] { ch })); + } + + public int charsWidth (char data[], int off, int len) + { + return stringWidth (new String (data, off, len)); + } + + public int getHeight() + { + return (int) height; + } + + public int getLeading () + { + return (int) (height - (ascent + descent)); + } + + public int getAscent () + { + return (int) ascent; + } + + public int getMaxAscent () + { + return (int) ascent; + } + + public int getDescent () + { + return (int) descent; + } + + public int getMaxDescent () + { + return (int) maxDescent; + } + + public int getMaxAdvance () + { + return (int) maxAdvance; + } + } + static native void initStaticState(); private final int native_state = GtkGenericPeer.getUniqueInteger (); - private static ResourceBundle bundle; /** * Cache GlyphMetrics objects. */ private HashMap metricsCache; - + + private static final int FONT_METRICS_ASCENT = 0; + private static final int FONT_METRICS_MAX_ASCENT = 1; + private static final int FONT_METRICS_DESCENT = 2; + private static final int FONT_METRICS_MAX_DESCENT = 3; + private static final int FONT_METRICS_MAX_ADVANCE = 4; + private static final int FONT_METRICS_HEIGHT = 5; + private static final int FONT_METRICS_UNDERLINE_OFFSET = 6; + private static final int FONT_METRICS_UNDERLINE_THICKNESS = 7; + + float ascent; + float descent; + float maxAscent; + float maxDescent; + float maxAdvance; + float height; + float underlineOffset; + float underlineThickness; + + GdkFontMetrics metrics; + static { System.loadLibrary("gtkpeer"); initStaticState (); - try - { - bundle = ResourceBundle.getBundle ("gnu.java.awt.peer.gtk.font"); - } - catch (Throwable ignored) - { - bundle = null; - } } private ByteBuffer nameTable = null; @@ -89,8 +176,8 @@ public class GdkFontPeer extends ClasspathFontPeer private native void dispose (); private native void setFont (String family, int style, int size); - native void getFontMetrics(double [] metrics); - native void getTextMetrics(String str, double [] metrics); + native synchronized void getFontMetrics(double [] metrics); + native synchronized void getTextMetrics(String str, double [] metrics); native void releasePeerGraphicsResource(); @@ -149,6 +236,7 @@ public class GdkFontPeer extends ClasspathFontPeer initState (); setFont (this.familyName, this.style, (int)this.size); metricsCache = new HashMap(); + setupMetrics(); } public GdkFontPeer (String name, Map attributes) @@ -157,6 +245,40 @@ public class GdkFontPeer extends ClasspathFontPeer initState (); setFont (this.familyName, this.style, (int)this.size); metricsCache = new HashMap(); + setupMetrics(); + } + + + /** + * Makes sure to return a Font based on the given Font that has as + * peer a GdkFontPeer. Used in the initializer. + */ + static Font initFont(Font font) + { + if (font == null) + return new Font("Dialog", Font.PLAIN, 12); + else if (font.getPeer() instanceof GdkFontPeer) + return font; + else + { + ClasspathToolkit toolkit; + toolkit = (ClasspathToolkit) Toolkit.getDefaultToolkit(); + return toolkit.getFont(font.getName(), font.getAttributes()); + } + } + + private void setupMetrics() + { + double [] hires = new double[8]; + getFontMetrics(hires); + ascent = (float) hires[FONT_METRICS_ASCENT]; + maxAscent = (float) hires[FONT_METRICS_MAX_ASCENT]; + descent = (float) hires[FONT_METRICS_DESCENT]; + maxDescent = (float) hires[FONT_METRICS_MAX_DESCENT]; + maxAdvance = (float) hires[FONT_METRICS_MAX_ADVANCE]; + height = (float) hires[FONT_METRICS_HEIGHT]; + underlineOffset = (float) hires[FONT_METRICS_UNDERLINE_OFFSET]; + underlineThickness = (float) hires[FONT_METRICS_UNDERLINE_THICKNESS]; } /** @@ -261,26 +383,17 @@ public class GdkFontPeer extends ClasspathFontPeer return Font.ROMAN_BASELINE; } - private static class GdkFontLineMetrics extends LineMetrics + private class GdkFontLineMetrics extends LineMetrics { - private FontMetrics fm; - private int nchars; - private float strikethroughOffset, strikethroughThickness, - underlineOffset, underlineThickness; - - public GdkFontLineMetrics (GdkFontPeer fp, FontMetrics m, int n) + private int nchars; + public GdkFontLineMetrics (GdkFontPeer fp, int n) { - fm = m; nchars = n; - strikethroughOffset = 0f; - underlineOffset = 0f; - strikethroughThickness = ((float)fp.getSize(null)) / 12f; - underlineThickness = strikethroughThickness; } public float getAscent() { - return (float) fm.getAscent (); + return ascent; } public int getBaselineIndex() @@ -296,27 +409,52 @@ public class GdkFontPeer extends ClasspathFontPeer public float getDescent() { - return (float) fm.getDescent (); + return descent; } public float getHeight() { - return (float) fm.getHeight (); + return height; } - public float getLeading() { return 0.f; } - public int getNumChars() { return nchars; } - public float getStrikethroughOffset() { return 0.f; } - public float getStrikethroughThickness() { return 0.f; } - public float getUnderlineOffset() { return 0.f; } - public float getUnderlineThickness() { return 0.f; } + public float getLeading() + { + return height - (ascent + descent); + } + + public int getNumChars() + { + return nchars; + } + + public float getStrikethroughOffset() + { + // FreeType doesn't seem to provide a value here. + return ascent / 2; + } + + public float getStrikethroughThickness() + { + // FreeType doesn't seem to provide a value here. + return 1.f; + } + + public float getUnderlineOffset() + { + return underlineOffset; + } + + public float getUnderlineThickness() + { + return underlineThickness; + } } public LineMetrics getLineMetrics (Font font, CharacterIterator ci, int begin, int limit, FontRenderContext rc) { - return new GdkFontLineMetrics (this, getFontMetrics (font), limit - begin); + return new GdkFontLineMetrics (this, limit - begin); } public Rectangle2D getMaxCharBounds (Font font, FontRenderContext rc) @@ -345,15 +483,6 @@ public class GdkFontPeer extends ClasspathFontPeer return buf.getShort(4); } - public Rectangle2D getStringBounds (Font font, CharacterIterator ci, - int begin, int limit, FontRenderContext frc) - { - GlyphVector gv = new FreetypeGlyphVector( font, - buildString(ci, begin, limit), - frc); - return gv.getVisualBounds(); - } - public boolean hasUniformLineMetrics (Font font) { return true; @@ -363,22 +492,21 @@ public class GdkFontPeer extends ClasspathFontPeer char[] chars, int start, int limit, int flags) { - return new FreetypeGlyphVector( font, new String( chars, start, - limit - start), + return new FreetypeGlyphVector( font, chars, start, limit - start, frc, flags); } public LineMetrics getLineMetrics (Font font, String str, FontRenderContext frc) { - return new GdkFontLineMetrics (this, getFontMetrics (font), str.length ()); + return new GdkFontLineMetrics (this, str.length ()); } public FontMetrics getFontMetrics (Font font) { - // Get the font metrics through GtkToolkit to take advantage of - // the metrics cache. - return Toolkit.getDefaultToolkit().getFontMetrics (font); + if (metrics == null) + metrics = new GdkFontMetrics(font); + return metrics; } /** @@ -397,4 +525,5 @@ public class GdkFontPeer extends ClasspathFontPeer { metricsCache.put( new Integer( glyphCode ), metrics ); } + } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java index e095c7dad4b..db725b697df 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java @@ -44,7 +44,7 @@ import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.HeadlessException; import java.awt.image.BufferedImage; -import java.awt.image.DataBuffer; +import java.awt.image.Raster; import java.util.Locale; public class GdkGraphicsEnvironment extends GraphicsEnvironment @@ -103,9 +103,9 @@ public class GdkGraphicsEnvironment extends GraphicsEnvironment public Graphics2D createGraphics (BufferedImage image) { - DataBuffer db = image.getRaster().getDataBuffer(); - if(db instanceof CairoSurface) - return ((CairoSurface)db).getGraphics(); + Raster raster = image.getRaster(); + if(raster instanceof CairoSurface) + return ((CairoSurface)raster).getGraphics(); return new BufferedImageGraphics( image ); } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkChoicePeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkChoicePeer.java index f00461f3fc8..d866cefd33c 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkChoicePeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkChoicePeer.java @@ -84,7 +84,7 @@ public class GtkChoicePeer extends GtkComponentPeer public void select (int position) { - if (Thread.currentThread() == GtkToolkit.mainThread) + if (Thread.currentThread() == GtkMainThread.mainThread) selectNativeUnlocked (position); else selectNative (position); diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java index c11c45e2070..b1ef09d6e1b 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java @@ -90,6 +90,11 @@ public class GtkComponentPeer extends GtkGenericPeer Insets insets; + /** + * The current repaint area. Use should be guarded by synchronizing on this. + */ + private Rectangle currentPaintArea; + /* this isEnabled differs from Component.isEnabled, in that it knows if a parent is disabled. In that case Component.isEnabled may return true, but our isEnabled will always return false */ @@ -308,13 +313,30 @@ public class GtkComponentPeer extends GtkGenericPeer // seems expensive. However, the graphics state does not carry // over between calls to paint, and resetting the graphics object // may even be more costly than simply creating a new one. - Graphics g = getGraphics(); - g.setClip(event.getUpdateRect()); - - awtComponent.paint(g); + // Make sure that the paintArea includes the area from the event + // in the case when an application sends PaintEvents directly. + coalescePaintEvent(event); + Rectangle paintArea; + synchronized (this) + { + paintArea = currentPaintArea; + currentPaintArea = null; + } - g.dispose(); + if (paintArea != null) + { + Graphics g = getGraphics(); + try + { + g.setClip(paintArea); + awtComponent.paint(g); + } + finally + { + g.dispose(); + } + } } // This method and its overrides are the only methods in the peers @@ -327,13 +349,29 @@ public class GtkComponentPeer extends GtkGenericPeer || (awtComponent.getWidth() < 1 || awtComponent.getHeight() < 1)) return; - Graphics g = getGraphics(); - - g.setClip(event.getUpdateRect()); - - awtComponent.update(g); + // Make sure that the paintArea includes the area from the event + // in the case when an application sends PaintEvents directly. + coalescePaintEvent(event); + Rectangle paintArea; + synchronized (this) + { + paintArea = currentPaintArea; + currentPaintArea = null; + } - g.dispose(); + if (paintArea != null) + { + Graphics g = getGraphics(); + try + { + g.setClip(paintArea); + awtComponent.update(g); + } + finally + { + g.dispose(); + } + } } public boolean isFocusTraversable () @@ -514,7 +552,7 @@ public class GtkComponentPeer extends GtkGenericPeer y = 0; } - if (Thread.currentThread() == GtkToolkit.mainThread) + if (Thread.currentThread() == GtkMainThread.mainThread) gtkWidgetSetCursorUnlocked(cursor.getType(), image, x, y); else gtkWidgetSetCursor(cursor.getType(), image, x, y); @@ -562,7 +600,7 @@ public class GtkComponentPeer extends GtkGenericPeer b = (bounds.width > 0) && (bounds.height > 0); } - if (Thread.currentThread() == GtkToolkit.mainThread) + if (Thread.currentThread() == GtkMainThread.mainThread) setVisibleNativeUnlocked (b); else setVisibleNative (b); @@ -754,7 +792,14 @@ public class GtkComponentPeer extends GtkGenericPeer public void coalescePaintEvent (PaintEvent e) { - + synchronized (this) + { + Rectangle newRect = e.getUpdateRect(); + if (currentPaintArea == null) + currentPaintArea = newRect; + else + Rectangle.union(currentPaintArea, newRect, currentPaintArea); + } } public void updateCursorImmediately () diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java index bb6f8b3bb3b..d113e92f5b4 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java @@ -57,6 +57,11 @@ public class GtkFramePeer extends GtkWindowPeer native void removeMenuBarPeer (); native void gtkFixedSetVisible (boolean visible); + private native void maximize(); + private native void unmaximize(); + private native void iconify(); + private native void deiconify(); + int getMenuBarHeight () { return menuBar == null ? 0 : getMenuBarHeight (menuBar); @@ -199,12 +204,25 @@ public class GtkFramePeer extends GtkWindowPeer public int getState () { - return 0; + return windowState; } public void setState (int state) { - + switch (state) + { + case Frame.NORMAL: + if ((windowState & Frame.ICONIFIED) != 0) + deiconify(); + if ((windowState & Frame.MAXIMIZED_BOTH) != 0) + unmaximize(); + break; + case Frame.ICONIFIED: + iconify(); + break; + case Frame.MAXIMIZED_BOTH: + maximize(); + } } public void setMaximizedBounds (Rectangle r) diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java index f1a74b8cc99..53e97bb1a8a 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java @@ -42,6 +42,7 @@ import java.awt.image.ColorModel; import java.awt.image.ImageConsumer; import java.awt.image.ImageProducer; import java.awt.image.MemoryImageSource; +import java.nio.ByteOrder; import java.util.Hashtable; /** @@ -103,7 +104,7 @@ public class GtkImageConsumer implements ImageConsumer scansize); } - public synchronized void setPixels (int x, int y, int width, int height, + public synchronized void setPixels (int x, int y, int width, int height, ColorModel cm, int[] pixels, int offset, int scansize) { @@ -117,18 +118,34 @@ public class GtkImageConsumer implements ImageConsumer width); else { - for (int i = 0; i < height; i++) - for (int j = 0; j < width; j++) - { - // get in AARRGGBB and convert to AABBGGRR - int pix = cm.getRGB(pixels[offset + (i * scansize) + x + j]); - byte b = (byte)(pix & 0xFF); - byte r = (byte)(((pix & 0x00FF0000) >> 16) & 0xFF); - pix &= 0xFF00FF00; - pix |= ((b & 0xFF) << 16); - pix |= (r & 0xFF); - pixelCache[(y + i) * this.width + x + j] = pix; - } + if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) + { + for (int i = 0; i < height; i++) + for (int j = 0; j < width; j++) + { + // get in RRGGBBAA and convert to AARRGGBB + int pix = cm.getRGB(pixels[offset + (i * scansize) + x + j]); + int a = ((pix & 0xFF000000) >> 24) & 0xFF; + int rgb = (pix & 0x00FFFFFF) << 8; + pix = rgb | a; + pixelCache[(y + i) * this.width + x + j] = pix; + } + } + else + { + for (int i = 0; i < height; i++) + for (int j = 0; j < width; j++) + { + // get in AARRGGBB and convert to AABBGGRR + int pix = cm.getRGB(pixels[offset + (i * scansize) + x + j]); + byte b = (byte)(pix & 0xFF); + byte r = (byte)(((pix & 0x00FF0000) >> 16) & 0xFF); + pix &= 0xFF00FF00; + pix |= ((b & 0xFF) << 16); + pix |= (r & 0xFF); + pixelCache[(y + i) * this.width + x + j] = pix; + } + } } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java new file mode 100644 index 00000000000..a4e280fe45f --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java @@ -0,0 +1,190 @@ +/* GtkMainThread.java -- Wrapper for the GTK main thread, and some utilities. + 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 gnu.java.awt.peer.gtk; + +import gnu.java.awt.peer.NativeEventLoopRunningEvent; + +import java.awt.AWTEvent; + +/** + * The Java thread representing the native GTK main loop, that is, + * GtkMainThread.mainThread, terminates when GtkToolkit.gtkMain() + * returns. That happens in response to the last window peer being + * disposed (see GtkWindowPeer.dispose). + * + * When GtkMainThread.destroyWindow is called for the last window, it + * in turn calls GtkMainThread.endMainThread, which calls gtk_quit. + * gtk_quit signals gtk_main to return, which causes GtkMainThread.run + * to return. + * + * There should only be one native GTK main loop running at any given + * time. In order to safely start and stop the GTK main loop, we use + * a running flag and corresponding runningLock. startMainThread will + * not return until the native GTK main loop has started, as confirmed + * by the native set_running_flag callback setting the running flag to + * true. Without this protection, gtk_quit could be called before the + * main loop has actually started, which causes GTK assertion + * failures. Likewise endMainThread will not return until the native + * GTK main loop has ended. + * + * post_running_flag_callback is called during gtk_main initialization + * and no window can be created before startMainThread returns. This + * ensures that calling post_running_flag_callback is the first action + * taken by the native GTK main loop. + * + * GtkMainThread.mainThread is started when the window count goes from + * zero to one. + * + * GtkMainThread keeps the AWT event queue informed of its status by + * posting NativeEventLoopRunningEvents. The AWT event queue uses + * this status to determine whether or not the AWT exit conditions + * have been met (see EventQueue.isShutdown). + */ +public class GtkMainThread extends Thread +{ + /** Count of the number of open windows */ + private static int numberOfWindows = 0; + + /** Lock for the above */ + private static Object nWindowsLock = new Object(); + + /** Indicates whether or not the GTK main loop is running. */ + private static boolean running = false; + + /** Lock for the above. */ + private static Object runningLock = new Object(); + + /** The main thread instance (singleton) */ + public static GtkMainThread mainThread; + + /** Constructs a main thread */ + private GtkMainThread() + { + super("GTK main thread"); + } + + public void run () + { + GtkToolkit.gtkMain (); + } + + private static void setRunning(boolean running) + { + synchronized (runningLock) + { + GtkMainThread.running = running; + runningLock.notifyAll(); + } + } + + private static void startMainThread() + { + synchronized (runningLock) + { + if (!running) + { + mainThread = new GtkMainThread(); + mainThread.start(); + + while (!running) + { + try + { + runningLock.wait(); + } + catch (InterruptedException e) + { + System.err.println ("GtkMainThread.startMainThread:" + + " interrupted while waiting " + + " for GTK main loop to start"); + } + } + GtkGenericPeer.q() + .postEvent(new NativeEventLoopRunningEvent(new Boolean(true))); + } + } + } + + private static void endMainThread() + { + synchronized (runningLock) + { + if (running) + { + GtkToolkit.gtkQuit(); + + while (running) + { + try + { + runningLock.wait(); + } + catch (InterruptedException e) + { + System.err.println ("GtkMainThread.endMainThread:" + + " interrupted while waiting " + + " for GTK main loop to stop"); + } + } + GtkGenericPeer.q() + .postEvent(new NativeEventLoopRunningEvent(new Boolean(false))); + } + } + } + + public static void createWindow() + { + synchronized (nWindowsLock) + { + if (numberOfWindows == 0) + startMainThread(); + numberOfWindows++; + } + } + + public static void destroyWindow() + { + synchronized (nWindowsLock) + { + numberOfWindows--; + if (numberOfWindows == 0) + endMainThread(); + } + } +} diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java index 6aa87fc2ecf..f746a47479f 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java @@ -62,6 +62,7 @@ import java.awt.FontMetrics; import java.awt.Frame; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; +import java.awt.HeadlessException; import java.awt.Image; import java.awt.Label; import java.awt.List; @@ -83,6 +84,7 @@ import java.awt.dnd.DragGestureEvent; import java.awt.dnd.DragGestureListener; import java.awt.dnd.DragGestureRecognizer; import java.awt.dnd.DragSource; +import java.awt.dnd.InvalidDnDOperationException; import java.awt.dnd.peer.DragSourceContextPeer; import java.awt.im.InputMethodHighlight; import java.awt.image.ColorModel; @@ -115,7 +117,6 @@ import java.awt.peer.WindowPeer; import java.io.InputStream; import java.net.URL; import java.util.HashMap; -import java.util.Hashtable; import java.util.LinkedHashMap; import java.util.Map; import java.util.Properties; @@ -131,37 +132,30 @@ import javax.imageio.spi.IIORegistry; public class GtkToolkit extends gnu.java.awt.ClasspathToolkit { - Hashtable containers = new Hashtable(); - static EventQueue q; - static Thread mainThread; + private static EventQueue q; static native void gtkInit(int portableNativeSync); + static native void gtkMain(); + + static native void gtkQuit(); + static { System.loadLibrary("gtkpeer"); - + int portableNativeSync; String portNatSyncProp = System.getProperty("gnu.classpath.awt.gtk.portable.native.sync"); - + if (portNatSyncProp == null) portableNativeSync = -1; // unset else if (Boolean.valueOf(portNatSyncProp).booleanValue()) portableNativeSync = 1; // true else portableNativeSync = 0; // false - + gtkInit(portableNativeSync); - - mainThread = new Thread ("GTK main thread") - { - public void run () - { - gtkMain (); - } - }; - mainThread.start (); } public GtkToolkit () @@ -169,6 +163,7 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit } public native void beep(); + private native void getScreenSizeDimensions(int[] xy); public int checkImage (Image image, int width, int height, @@ -181,6 +176,9 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit if (image instanceof GtkImage) return ((GtkImage) image).checkImage (observer); + if (image instanceof AsyncImage) + return ((AsyncImage) image).checkImage(observer); + if (observer != null) observer.imageUpdate (image, status, -1, -1, @@ -194,7 +192,7 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit * Helper to return either a Image -- the argument -- or a * GtkImage with the errorLoading flag set if the argument is null. */ - private Image imageOrError(Image b) + static Image imageOrError(Image b) { if (b == null) return GtkImage.getErrorImage(); @@ -221,16 +219,7 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit public Image createImage (URL url) { - Image image; - try - { - image = CairoSurface.getBufferedImage( new GtkImage( url ) ); - } - catch (IllegalArgumentException iae) - { - image = null; - } - return imageOrError(image); + return new AsyncImage(url); } public Image createImage (ImageProducer producer) @@ -301,7 +290,7 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit "SansSerif" }); } - private class LRUCache extends LinkedHashMap + static class LRUCache extends LinkedHashMap { int max_entries; public LRUCache(int max) @@ -316,23 +305,11 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit } private LRUCache fontCache = new LRUCache(50); - private LRUCache metricsCache = new LRUCache(50); private LRUCache imageCache = new LRUCache(50); public FontMetrics getFontMetrics (Font font) { - synchronized (metricsCache) - { - if (metricsCache.containsKey(font)) - return (FontMetrics) metricsCache.get(font); - } - - FontMetrics m = new GdkFontMetrics (font); - synchronized (metricsCache) - { - metricsCache.put(font, m); - } - return m; + return ((GdkFontPeer) font.getPeer()).getFontMetrics(font); } public Image getImage (String filename) @@ -408,6 +385,13 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit return ((((GtkImage)image).checkImage (observer) & ImageObserver.ALLBITS) != 0); + if (image instanceof AsyncImage) + { + AsyncImage aImg = (AsyncImage) image; + aImg.addObserver(observer); + return aImg.realImage != null; + } + /* Assume anything else is too */ return true; } @@ -437,106 +421,131 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit protected ButtonPeer createButton (Button b) { + checkHeadless(); return new GtkButtonPeer (b); } protected CanvasPeer createCanvas (Canvas c) { + checkHeadless(); return new GtkCanvasPeer (c); } protected CheckboxPeer createCheckbox (Checkbox cb) { + checkHeadless(); return new GtkCheckboxPeer (cb); } protected CheckboxMenuItemPeer createCheckboxMenuItem (CheckboxMenuItem cmi) { + checkHeadless(); return new GtkCheckboxMenuItemPeer (cmi); } protected ChoicePeer createChoice (Choice c) { + checkHeadless(); return new GtkChoicePeer (c); } protected DialogPeer createDialog (Dialog d) { + checkHeadless(); + GtkMainThread.createWindow(); return new GtkDialogPeer (d); } protected FileDialogPeer createFileDialog (FileDialog fd) { + checkHeadless(); return new GtkFileDialogPeer (fd); } protected FramePeer createFrame (Frame f) { + checkHeadless(); + GtkMainThread.createWindow(); return new GtkFramePeer (f); } protected LabelPeer createLabel (Label label) { + checkHeadless(); return new GtkLabelPeer (label); } protected ListPeer createList (List list) { + checkHeadless(); return new GtkListPeer (list); } protected MenuPeer createMenu (Menu m) { + checkHeadless(); return new GtkMenuPeer (m); } protected MenuBarPeer createMenuBar (MenuBar mb) { + checkHeadless(); return new GtkMenuBarPeer (mb); } protected MenuItemPeer createMenuItem (MenuItem mi) { + checkHeadless(); return new GtkMenuItemPeer (mi); } protected PanelPeer createPanel (Panel p) { + checkHeadless(); return new GtkPanelPeer (p); } protected PopupMenuPeer createPopupMenu (PopupMenu target) { + checkHeadless(); return new GtkPopupMenuPeer (target); } protected ScrollPanePeer createScrollPane (ScrollPane sp) { + checkHeadless(); return new GtkScrollPanePeer (sp); } protected ScrollbarPeer createScrollbar (Scrollbar sb) { + checkHeadless(); return new GtkScrollbarPeer (sb); } protected TextAreaPeer createTextArea (TextArea ta) { + checkHeadless(); return new GtkTextAreaPeer (ta); } protected TextFieldPeer createTextField (TextField tf) { + checkHeadless(); return new GtkTextFieldPeer (tf); } protected WindowPeer createWindow (Window w) { + checkHeadless(); + GtkMainThread.createWindow(); return new GtkWindowPeer (w); } public EmbeddedWindowPeer createEmbeddedWindow (EmbeddedWindow w) { + checkHeadless(); + GtkMainThread.createWindow(); return new GtkEmbeddedWindowPeer (w); } @@ -605,6 +614,8 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent e) { + if (GraphicsEnvironment.isHeadless()) + throw new InvalidDnDOperationException(); return new GtkDragSourceContextPeer(e); } @@ -614,7 +625,8 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit int actions, DragGestureListener l) { - if (recognizer.getName().equals("java.awt.dnd.MouseDragGestureRecognizer")) + if (recognizer.getName().equals("java.awt.dnd.MouseDragGestureRecognizer") + && ! GraphicsEnvironment.isHeadless()) { GtkMouseDragGestureRecognizer gestureRecognizer = new GtkMouseDragGestureRecognizer(ds, comp, actions, l); @@ -661,13 +673,25 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit GdkPixbufDecoder.registerSpis(reg); } - public static native void gtkMain(); - protected MouseInfoPeer getMouseInfoPeer() { return new GtkMouseInfoPeer(); } + public boolean isFrameStateSupported(int state) + { + // GTK supports ICONFIED, NORMAL and MAXIMIZE_BOTH, but + // not (yet?) MAXIMIZE_VERT and MAXIMIZE_HORIZ. + return state == Frame.NORMAL || state == Frame.ICONIFIED + || state == Frame.MAXIMIZED_BOTH; + } + + private void checkHeadless() + { + if (GraphicsEnvironment.isHeadless()) + throw new HeadlessException(); + } + public native int getMouseNumberOfButtons(); } // class GtkToolkit diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java index 44e7b027b0b..8660ced8ec1 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkVolatileImage.java @@ -37,13 +37,21 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; -import java.awt.ImageCapabilities; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; +import java.awt.ImageCapabilities; +import java.awt.Point; import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.DirectColorModel; import java.awt.image.ImageObserver; +import java.awt.image.Raster; +import java.awt.image.SampleModel; +import java.awt.image.SinglePixelPackedSampleModel; import java.awt.image.VolatileImage; +import java.awt.image.WritableRaster; public class GtkVolatileImage extends VolatileImage { @@ -52,6 +60,12 @@ public class GtkVolatileImage extends VolatileImage final GtkComponentPeer component; + static ColorModel gdkColorModel = new DirectColorModel(32, + 0x000000FF, + 0x0000FF00, + 0x00FF0000, + 0xFF000000); + /** * Don't touch, accessed from native code. */ @@ -62,6 +76,17 @@ public class GtkVolatileImage extends VolatileImage native void destroy(long pointer); native int[] nativeGetPixels(long pointer); + + /** + * Gets the pixels in the current image from GDK. + * + * Note that pixels are in 32-bit RGBA, non-premultiplied, which is different + * from Cairo's premultiplied ARGB, which is different from Java's standard + * non-premultiplied ARGB. Caution is advised when using this method, to + * ensure that the data format remains consistent with what you expect. + * + * @return the current pixels, as reported by GDK. + */ public int[] getPixels() { return nativeGetPixels(nativePointer); @@ -113,9 +138,11 @@ public class GtkVolatileImage extends VolatileImage public BufferedImage getSnapshot() { - CairoSurface cs = new CairoSurface( width, height ); - cs.setPixels( getPixels() ); - return CairoSurface.getBufferedImage( cs ); + WritableRaster raster = Raster.createWritableRaster(createGdkSampleModel(width, height), + new Point(0, 0)); + raster.setDataElements(0, 0, getPixels()); + return new BufferedImage(gdkColorModel, raster, + gdkColorModel.isAlphaPremultiplied(), null); } public Graphics getGraphics() @@ -167,4 +194,14 @@ public class GtkVolatileImage extends VolatileImage { return null; } + + /** + * Creates a SampleModel that matches GDK's native format + */ + protected static SampleModel createGdkSampleModel(int w, int h) + { + return new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT, w, h, + new int[]{0x000000FF, 0x0000FF00, + 0x00FF0000, 0xFF000000}); + } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java index 866d9c8816a..8d49719b1d3 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java @@ -38,7 +38,10 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import gnu.java.awt.ComponentReshapeEvent; + import java.awt.Component; +import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.KeyboardFocusManager; @@ -62,8 +65,7 @@ public class GtkWindowPeer extends GtkContainerPeer protected static final int GDK_WINDOW_TYPE_HINT_DOCK = 6; protected static final int GDK_WINDOW_TYPE_HINT_DESKTOP = 7; - private boolean hasBeenShown = false; - private int oldState = Frame.NORMAL; + protected int windowState = Frame.NORMAL; // Cached awt window component location, width and height. private int x, y, width, height; @@ -75,6 +77,12 @@ public class GtkWindowPeer extends GtkContainerPeer native boolean gtkWindowHasFocus(); native void realize (); + public void dispose() + { + super.dispose(); + GtkMainThread.destroyWindow(); + } + /** Returns the cached width of the AWT window component. */ int getX () { @@ -144,6 +152,8 @@ public class GtkWindowPeer extends GtkContainerPeer public GtkWindowPeer (Window window) { super (window); + // Set reasonable font for the window. + window.setFont(new Font("Dialog", Font.PLAIN, 12)); } public native void toBack(); @@ -218,9 +228,31 @@ public class GtkWindowPeer extends GtkContainerPeer // only called from GTK thread protected void postConfigureEvent (int x, int y, int width, int height) { + int frame_x = x - insets.left; + int frame_y = y - insets.top; int frame_width = width + insets.left + insets.right; int frame_height = height + insets.top + insets.bottom; + // Update the component's knowledge about the size. + // Important: Please look at the big comment in ComponentReshapeEvent + // to learn why we did it this way. If you change this code, make + // sure that the peer->AWT bounds update still works. + // (for instance: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29448 ) + + // We do this befor we post the ComponentEvent, because (in Window) + // we invalidate() / revalidate() when a ComponentEvent is seen, + // and the AWT must already know about the new size then. + if (frame_x != this.x || frame_y != this.y || frame_width != this.width + || frame_height != this.height) + { + ComponentReshapeEvent ev = new ComponentReshapeEvent(awtComponent, + frame_x, + frame_y, + frame_width, + frame_height); + awtComponent.dispatchEvent(ev); + } + if (frame_width != getWidth() || frame_height != getHeight()) { @@ -230,9 +262,6 @@ public class GtkWindowPeer extends GtkContainerPeer ComponentEvent.COMPONENT_RESIZED)); } - int frame_x = x - insets.left; - int frame_y = y - insets.top; - if (frame_x != getX() || frame_y != getY()) { @@ -241,6 +270,7 @@ public class GtkWindowPeer extends GtkContainerPeer q().postEvent(new ComponentEvent(awtComponent, ComponentEvent.COMPONENT_MOVED)); } + } public void show () @@ -255,23 +285,26 @@ public class GtkWindowPeer extends GtkContainerPeer void postWindowEvent (int id, Window opposite, int newState) { - if (id == WindowEvent.WINDOW_OPENED) + if (id == WindowEvent.WINDOW_STATE_CHANGED) { - // Post a WINDOW_OPENED event the first time this window is shown. - if (!hasBeenShown) + if (windowState != newState) { + // Post old styleWindowEvent with WINDOW_ICONIFIED or + // WINDOW_DEICONIFIED if appropriate. + if ((windowState & Frame.ICONIFIED) != 0 + && (newState & Frame.ICONIFIED) == 0) + q().postEvent(new WindowEvent((Window) awtComponent, + WindowEvent.WINDOW_DEICONIFIED, + opposite, 0, 0)); + else if ((windowState & Frame.ICONIFIED) == 0 + && (newState & Frame.ICONIFIED) != 0) + q().postEvent(new WindowEvent((Window) awtComponent, + WindowEvent.WINDOW_ICONIFIED, + opposite, 0, 0)); + // Post new-style WindowStateEvent. q().postEvent (new WindowEvent ((Window) awtComponent, id, - opposite)); - hasBeenShown = true; - } - } - else if (id == WindowEvent.WINDOW_STATE_CHANGED) - { - if (oldState != newState) - { - q().postEvent (new WindowEvent ((Window) awtComponent, id, opposite, - oldState, newState)); - oldState = newState; + opposite, windowState, newState)); + windowState = newState; } } else @@ -350,13 +383,6 @@ public class GtkWindowPeer extends GtkContainerPeer return g; } - protected void updateComponent (PaintEvent event) - { - // Do not clear anything before painting. Sun never calls - // Window.update, only Window.paint. - paintComponent(event); - } - protected void postMouseEvent(int id, long when, int mods, int x, int y, int clickCount, boolean popupTrigger) { diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java index 58496559320..62dbb45d81a 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java @@ -38,15 +38,32 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Composite; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.Image; +import java.awt.Point; +import java.awt.Shape; +import java.awt.Toolkit; +import java.awt.font.GlyphVector; +import java.awt.geom.AffineTransform; +import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.awt.image.Raster; +import java.awt.image.WritableRaster; +import java.util.Hashtable; public class VolatileImageGraphics extends ComponentGraphics { private GtkVolatileImage owner; + private BufferedImage buffer; public VolatileImageGraphics(GtkVolatileImage img) { @@ -77,10 +94,118 @@ public class VolatileImageGraphics extends ComponentGraphics return new VolatileImageGraphics( this ); } + public void draw(Shape s) + { + if (comp == null || comp instanceof AlphaComposite) + super.draw(s); + + // Custom composite + else + { + // Draw operation to temporary buffer + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setColor(this.getColor()); + g2d.setStroke(this.getStroke()); + g2d.draw(s); + + drawComposite(s.getBounds2D(), null); + } + } + + public void fill(Shape s) + { + if (comp == null || comp instanceof AlphaComposite) + super.fill(s); + + // Custom composite + else + { + // Draw operation to temporary buffer + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setPaint(this.getPaint()); + g2d.setColor(this.getColor()); + g2d.fill(s); + + drawComposite(s.getBounds2D(), null); + } + } + + public void drawGlyphVector(GlyphVector gv, float x, float y) + { + if (comp == null || comp instanceof AlphaComposite) + super.drawGlyphVector(gv, x, y); + + // Custom composite + else + { + // Draw operation to temporary buffer + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + + g2d.setPaint(this.getPaint()); + g2d.setColor(this.getColor()); + g2d.drawGlyphVector(gv, x, y); + + Rectangle2D bounds = gv.getLogicalBounds(); + bounds = new Rectangle2D.Double(x + bounds.getX(), y + bounds.getY(), + bounds.getWidth(), bounds.getHeight()); + drawComposite(bounds, null); + } + } + + protected boolean drawImage(Image img, AffineTransform xform, + Color bgcolor, ImageObserver obs) + { + if (comp == null || comp instanceof AlphaComposite) + return super.drawImage(img, xform, bgcolor, obs); + + // Custom composite + else + { + // Get buffered image of source + if( !(img instanceof BufferedImage) ) + { + ImageProducer source = img.getSource(); + if (source == null) + return false; + img = Toolkit.getDefaultToolkit().createImage(source); + } + BufferedImage bImg = (BufferedImage) img; + + // Find dimensions of translation + Point2D origin = new Point2D.Double(bImg.getMinX(), bImg.getMinY()); + Point2D pt = new Point2D.Double(bImg.getWidth(), bImg.getHeight()); + if (xform != null) + { + origin = xform.transform(origin, origin); + pt = xform.transform(pt, pt); + } + + // Create buffer and draw image + createBuffer(); + + Graphics2D g2d = (Graphics2D)buffer.getGraphics(); + g2d.setRenderingHints(this.getRenderingHints()); + g2d.drawImage(img, xform, obs); + // Perform compositing from buffer to screen + return drawComposite(new Rectangle2D.Double((int)origin.getX(), + (int)origin.getY(), + (int)pt.getX(), + (int)pt.getY()), + obs); + } + } + public boolean drawImage(Image img, int x, int y, ImageObserver observer) { - if( img instanceof GtkVolatileImage ) + if (img instanceof GtkVolatileImage + && (comp == null || comp instanceof AlphaComposite)) { owner.drawVolatile( ((GtkVolatileImage)img).nativePointer, x, y, @@ -94,7 +219,8 @@ public class VolatileImageGraphics extends ComponentGraphics public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { - if( img instanceof GtkVolatileImage ) + if ((img instanceof GtkVolatileImage) + && (comp == null || comp instanceof AlphaComposite)) { owner.drawVolatile( ((GtkVolatileImage)img).nativePointer, x, y, width, height ); @@ -107,5 +233,84 @@ public class VolatileImageGraphics extends ComponentGraphics { return new Rectangle2D.Double(0, 0, owner.width, owner.height); } + + private boolean drawComposite(Rectangle2D bounds, ImageObserver observer) + { + // Clip source to visible areas that need updating + Rectangle2D clip = this.getClipBounds(); + Rectangle2D.intersect(bounds, clip, bounds); + + BufferedImage buffer2 = buffer; + if (!bounds.equals(buffer2.getRaster().getBounds())) + buffer2 = buffer2.getSubimage((int)bounds.getX(), (int)bounds.getY(), + (int)bounds.getWidth(), + (int)bounds.getHeight()); + + // Get current on-screen pixels (destination) and clip to bounds + BufferedImage current = owner.getSnapshot(); + + double[] points = new double[] {bounds.getX(), bounds.getY(), + bounds.getMaxX(), bounds.getMaxY()}; + transform.transform(points, 0, points, 0, 2); + + Rectangle2D deviceBounds = new Rectangle2D.Double(points[0], points[1], + points[2] - points[0], + points[3] - points[1]); + Rectangle2D.intersect(deviceBounds, this.getClipInDevSpace(), deviceBounds); + + current = current.getSubimage((int)deviceBounds.getX(), + (int)deviceBounds.getY(), + (int)deviceBounds.getWidth(), + (int)deviceBounds.getHeight()); + + // Perform actual composite operation + compCtx.compose(buffer2.getRaster(), current.getRaster(), + buffer2.getRaster()); + + // This MUST call directly into the "action" method in CairoGraphics2D, + // not one of the wrappers, to ensure that the composite isn't processed + // more than once! + Composite oldComp = comp; // so that ComponentGraphics doesn't + comp = null; // process the composite again + boolean rv = super.drawImage(buffer2, + AffineTransform.getTranslateInstance(bounds.getX(), + bounds.getY()), + null, null); + comp = oldComp; + + return rv; + } + + private void createBuffer() + { + if (buffer == null) + { + WritableRaster rst; + rst = Raster.createWritableRaster(GtkVolatileImage.createGdkSampleModel(owner.width, + owner.height), + new Point(0,0)); + + buffer = new BufferedImage(GtkVolatileImage.gdkColorModel, rst, + GtkVolatileImage.gdkColorModel.isAlphaPremultiplied(), + new Hashtable()); + } + else + { + Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); + + g2d.setBackground(new Color(0,0,0,0)); + g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); + } + } + + protected ColorModel getNativeCM() + { + // We should really return GtkVolatileImage.gdkColorModel , + // but CairoGraphics2D doesn't handle alpha premultiplication properly (see + // the fixme in drawImage) so we use the naive Cairo model instead to trick + // the compositing context. + // Because getNativeCM() == getBufferCM() for this peer, it doesn't break. + return CairoSurface.cairoCM_pre; + } } diff --git a/libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java b/libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java new file mode 100644 index 00000000000..b3eeb1baa84 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java @@ -0,0 +1,118 @@ +/* HeadlessGraphicsEnvironment.java -- A graphics environment for headless mode + 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 gnu.java.awt.peer.headless; + +import gnu.java.awt.java2d.RasterGraphics; + +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.HeadlessException; +import java.awt.image.BufferedImage; +import java.awt.image.Raster; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.util.Locale; + +public class HeadlessGraphicsEnvironment + extends GraphicsEnvironment +{ + + public Graphics2D createGraphics(BufferedImage image) + { + Graphics2D g2d; + try + { + // Try to get a CairoGraphics (accellerated) when available. Do this + // via reflection to avoid having a hard compile time dependency. + Class cairoSurfaceCl = + Class.forName("gnu.java.awt.peer.gtk.CairoSurface"); + Raster raster = image.getRaster(); + if (cairoSurfaceCl.isInstance(raster)) + { + Method getGraphicsM = cairoSurfaceCl.getMethod("getGraphics", + new Class[0]); + g2d = (Graphics2D) getGraphicsM.invoke(raster, new Object[0]); + } + else + { + Class bigCl = + Class.forName("gnu.java.awt.peer.gtk.BufferedImageGraphics"); + Constructor bigC = + bigCl.getConstructor(new Class[]{BufferedImage.class }); + g2d = (Graphics2D) bigC.newInstance(new Object[]{ image}); + } + } + catch (Exception ex) + { + g2d = new RasterGraphics(image.getRaster(), image.getColorModel()); + } + return g2d; + } + + public Font[] getAllFonts() + { + // FIXME: Implement. + return null; + } + + public String[] getAvailableFontFamilyNames() + { + // FIXME: Implement. + return null; + } + + public String[] getAvailableFontFamilyNames(Locale l) + { + // FIXME: Implement. + return null; + } + + public GraphicsDevice getDefaultScreenDevice() + { + throw new HeadlessException(); + } + + public GraphicsDevice[] getScreenDevices() + { + throw new HeadlessException(); + } + +} diff --git a/libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java b/libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java new file mode 100644 index 00000000000..96798c9e9d8 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java @@ -0,0 +1,371 @@ +/* HeadlessToolkit.java -- A toolkit for headless mode + 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 gnu.java.awt.peer.headless; + +import gnu.java.awt.ClasspathToolkit; +import gnu.java.awt.EmbeddedWindow; +import gnu.java.awt.peer.ClasspathFontPeer; +import gnu.java.awt.peer.EmbeddedWindowPeer; + +import java.awt.AWTException; +import java.awt.Button; +import java.awt.Canvas; +import java.awt.Checkbox; +import java.awt.CheckboxMenuItem; +import java.awt.Choice; +import java.awt.Dialog; +import java.awt.Dimension; +import java.awt.EventQueue; +import java.awt.FileDialog; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Frame; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.HeadlessException; +import java.awt.Image; +import java.awt.Label; +import java.awt.List; +import java.awt.Menu; +import java.awt.MenuBar; +import java.awt.MenuItem; +import java.awt.Panel; +import java.awt.PopupMenu; +import java.awt.PrintJob; +import java.awt.ScrollPane; +import java.awt.Scrollbar; +import java.awt.TextArea; +import java.awt.TextField; +import java.awt.Window; +import java.awt.datatransfer.Clipboard; +import java.awt.dnd.DragGestureEvent; +import java.awt.dnd.peer.DragSourceContextPeer; +import java.awt.im.InputMethodHighlight; +import java.awt.image.ColorModel; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.awt.peer.ButtonPeer; +import java.awt.peer.CanvasPeer; +import java.awt.peer.CheckboxMenuItemPeer; +import java.awt.peer.CheckboxPeer; +import java.awt.peer.ChoicePeer; +import java.awt.peer.DialogPeer; +import java.awt.peer.FileDialogPeer; +import java.awt.peer.FontPeer; +import java.awt.peer.FramePeer; +import java.awt.peer.LabelPeer; +import java.awt.peer.ListPeer; +import java.awt.peer.MenuBarPeer; +import java.awt.peer.MenuItemPeer; +import java.awt.peer.MenuPeer; +import java.awt.peer.PanelPeer; +import java.awt.peer.PopupMenuPeer; +import java.awt.peer.RobotPeer; +import java.awt.peer.ScrollPanePeer; +import java.awt.peer.ScrollbarPeer; +import java.awt.peer.TextAreaPeer; +import java.awt.peer.TextFieldPeer; +import java.awt.peer.WindowPeer; +import java.io.InputStream; +import java.net.URL; +import java.util.Map; +import java.util.Properties; + +public class HeadlessToolkit + extends ClasspathToolkit +{ + + /** + * The graphics environment for headless graphics. + */ + private HeadlessGraphicsEnvironment graphicsEnv; + + public void beep() + { + // TODO Auto-generated method stub + + } + + public int checkImage(Image image, int width, int height, + ImageObserver observer) + { + // TODO Auto-generated method stub + return 0; + } + + protected ButtonPeer createButton(Button target) + { + throw new HeadlessException(); + } + + protected CanvasPeer createCanvas(Canvas target) + { + throw new HeadlessException(); + } + + protected CheckboxPeer createCheckbox(Checkbox target) + { + throw new HeadlessException(); + } + + protected CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem target) + { + throw new HeadlessException(); + } + + protected ChoicePeer createChoice(Choice target) + { + throw new HeadlessException(); + } + + protected DialogPeer createDialog(Dialog target) + { + throw new HeadlessException(); + } + + public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent e) + { + throw new HeadlessException(); + } + + protected FileDialogPeer createFileDialog(FileDialog target) + { + throw new HeadlessException(); + } + + protected FramePeer createFrame(Frame target) + { + throw new HeadlessException(); + } + + public Image createImage(String filename) + { + // FIXME: Implement. + return null; + } + + public Image createImage(URL url) + { + // FIXME: Implement. + return null; + } + + public Image createImage(ImageProducer producer) + { + // FIXME: Implement. + return null; + } + + public Image createImage(byte[] data, int offset, int len) + { + // TODO Auto-generated method stub + return null; + } + + protected LabelPeer createLabel(Label target) + { + throw new HeadlessException(); + } + + protected ListPeer createList(List target) + { + throw new HeadlessException(); + } + + protected MenuPeer createMenu(Menu target) + { + throw new HeadlessException(); + } + + protected MenuBarPeer createMenuBar(MenuBar target) + { + throw new HeadlessException(); + } + + protected MenuItemPeer createMenuItem(MenuItem target) + { + throw new HeadlessException(); + } + + protected PanelPeer createPanel(Panel target) + { + throw new HeadlessException(); + } + + protected PopupMenuPeer createPopupMenu(PopupMenu target) + { + throw new HeadlessException(); + } + + protected ScrollPanePeer createScrollPane(ScrollPane target) + { + throw new HeadlessException(); + } + + protected ScrollbarPeer createScrollbar(Scrollbar target) + { + throw new HeadlessException(); + } + + protected TextAreaPeer createTextArea(TextArea target) + { + throw new HeadlessException(); + } + + protected TextFieldPeer createTextField(TextField target) + { + throw new HeadlessException(); + } + + protected WindowPeer createWindow(Window target) + { + throw new HeadlessException(); + } + + public ColorModel getColorModel() + { + // TODO Auto-generated method stub + return null; + } + + public String[] getFontList() + { + // TODO Auto-generated method stub + return null; + } + + public FontMetrics getFontMetrics(Font name) + { + // TODO Auto-generated method stub + return null; + } + + protected FontPeer getFontPeer(String name, int style) + { + // TODO Auto-generated method stub + return null; + } + + public Image getImage(String name) + { + // TODO Auto-generated method stub + return null; + } + + public Image getImage(URL url) + { + // TODO Auto-generated method stub + return null; + } + + public PrintJob getPrintJob(Frame frame, String title, Properties props) + { + // TODO Auto-generated method stub + return null; + } + + public int getScreenResolution() + { + throw new HeadlessException(); + } + + public Dimension getScreenSize() + { + throw new HeadlessException(); + } + + public Clipboard getSystemClipboard() + { + throw new HeadlessException(); + } + + protected EventQueue getSystemEventQueueImpl() + { + throw new HeadlessException(); + } + + public Map mapInputMethodHighlight(InputMethodHighlight highlight) + { + // TODO Auto-generated method stub + return null; + } + + public boolean prepareImage(Image image, int width, int height, + ImageObserver observer) + { + // TODO Auto-generated method stub + return false; + } + + public void sync() + { + // TODO Auto-generated method stub + + } + + public EmbeddedWindowPeer createEmbeddedWindow(EmbeddedWindow w) + { + throw new HeadlessException(); + } + + public Font createFont(int format, InputStream stream) + { + // TODO Auto-generated method stub + return null; + } + + public RobotPeer createRobot(GraphicsDevice screen) throws AWTException + { + throw new HeadlessException(); + } + + public ClasspathFontPeer getClasspathFontPeer(String name, Map attrs) + { + // TODO Auto-generated method stub + return null; + } + + public GraphicsEnvironment getLocalGraphicsEnvironment() + { + if (graphicsEnv == null) + graphicsEnv = new HeadlessGraphicsEnvironment(); + return graphicsEnv; + } + +} diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java b/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java index d847a805396..6ffe3f69176 100644 --- a/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java @@ -194,15 +194,4 @@ public class QtFontPeer extends ClasspathFontPeer throw new UnsupportedOperationException(); } - public Rectangle2D getStringBounds (Font font, - CharacterIterator ci, - int begin, int limit, - FontRenderContext frc) - { - int index = begin; - String s = "" + ci.setIndex( index ); - while( index++ <= limit ) - s = s + ci.next(); - return metrics.getStringBounds(s); - } } diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java b/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java index 842cbbbf8ba..5694e8d2076 100644 --- a/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java +++ b/libjava/classpath/gnu/java/awt/peer/qt/QtGraphics.java @@ -669,12 +669,13 @@ public abstract class QtGraphics extends Graphics2D public RenderingHints getRenderingHints() { - return new RenderingHints( renderingHints ); + return (RenderingHints) renderingHints.clone(); } - public void setRenderingHints(Map hints) + public void setRenderingHints(Map hints) { - renderingHints = new RenderingHints( hints ); + renderingHints = new RenderingHints( null ); + renderingHints.putAll(hints); updateRenderingHints(); } diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java index 2357fcbfb0d..531d6f2db3b 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.awt.peer.swing; import java.awt.Button; +import java.awt.Container; import java.awt.Graphics; import java.awt.Image; import java.awt.Point; @@ -69,6 +70,13 @@ public class SwingButtonPeer extends JButton implements SwingComponent { + Button button; + + SwingButton(Button button) + { + this.button = button; + } + /** * Overridden so that this method returns the correct value even without a * peer. @@ -90,8 +98,8 @@ public class SwingButtonPeer public boolean isShowing() { boolean retVal = false; - if (SwingButtonPeer.this.awtComponent != null) - retVal = SwingButtonPeer.this.awtComponent.isShowing(); + if (button != null) + retVal = button.isShowing(); return retVal; } @@ -168,6 +176,14 @@ public class SwingButtonPeer ev.setSource(this); processKeyEvent(ev); } + + public Container getParent() + { + Container par = null; + if (button != null) + par = button.getParent(); + return par; + } } /** @@ -205,7 +221,7 @@ public class SwingButtonPeer */ public SwingButtonPeer(Button theButton) { - SwingButton button = new SwingButton(); + SwingButton button = new SwingButton(theButton); button.setText(theButton.getLabel()); button.addActionListener(new SwingButtonListener()); init(theButton, button); diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java index a51b758adf0..04ca7294f78 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java @@ -62,7 +62,7 @@ public interface SwingComponent /** * Handles a mouse event. This is usually forwarded to - * {@link java.awt.Component#processMouseMotionEvent(MouseEvent)} of the swing + * {@link Component#processMouseMotionEvent(MouseEvent)} of the swing * component. * * @param ev the mouse event @@ -71,7 +71,7 @@ public interface SwingComponent /** * Handles a mouse motion event. This is usually forwarded to - * {@link java.awt.Component#processMouseEvent(MouseEvent)} of the swing + * {@link Component#processMouseEvent(MouseEvent)} of the swing * component. * * @param ev the mouse motion event @@ -80,7 +80,7 @@ public interface SwingComponent /** * Handles a key event. This is usually forwarded to - * {@link java.awt.Component#processKeyEvent(KeyEvent)} of the swing + * {@link Component#processKeyEvent(KeyEvent)} of the swing * component. * * @param ev the key event diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java index 96ccc00b8f0..bfa14dddee3 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java @@ -42,6 +42,7 @@ import java.awt.AWTException; import java.awt.BufferCapabilities; import java.awt.Color; import java.awt.Component; +import java.awt.Container; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Font; @@ -62,6 +63,10 @@ import java.awt.image.ImageProducer; import java.awt.image.VolatileImage; import java.awt.peer.ComponentPeer; import java.awt.peer.ContainerPeer; +import java.awt.peer.LightweightPeer; + +import javax.swing.JComponent; +import javax.swing.RepaintManager; /** * The base class for Swing based component peers. This provides the basic @@ -97,9 +102,18 @@ public class SwingComponentPeer protected SwingComponent swingComponent; /** + * The font that is set for this peer. + */ + protected Font peerFont; + + /** + * The current repaint area. + */ + protected Rectangle paintArea; + + /** * Creates a SwingComponentPeer instance. Subclasses are expected to call - * this constructor and thereafter call - * {@link #init(Component,SwingComponent)} + * this constructor and thereafter call {@link #init(Component, JComponent)} * in order to setup the AWT and Swing components properly. */ protected SwingComponentPeer() @@ -118,6 +132,38 @@ public class SwingComponentPeer { awtComponent = awtComp; swingComponent = swingComp; + if (swingComponent != null) + { + JComponent c = swingComponent.getJComponent(); + if (c != null) + { + c.addNotify(); + RepaintManager.currentManager(c).setDoubleBufferingEnabled(false); + System.setProperty("gnu.awt.swing.doublebuffering", "true"); + } + } + + // Register this heavyweight component with the nearest heavyweight + // container, so we get peerPaint() triggered by that container. + if (! (this instanceof LightweightPeer)) + { + Component comp = awtComponent; + Container parent = comp.getParent(); + while (parent != null && + ! (parent.getPeer() instanceof SwingContainerPeer)) + { + comp = parent; + parent = comp.getParent(); + } + + // At this point we have the ancestor with a SwingContainerPeer + // (or null peer). + if (parent != null && parent.getPeer() instanceof SwingContainerPeer) + { + SwingContainerPeer p = (SwingContainerPeer) parent.getPeer(); + p.addHeavyweightDescendent(awtComponent); + } + } } /** @@ -185,6 +231,28 @@ public class SwingComponentPeer */ public void dispose() { + // Unregister this heavyweight component from the nearest heavyweight + // container. + if (! (this instanceof LightweightPeer)) + { + Component comp = awtComponent; + Container parent = comp.getParent(); + while (parent != null && + ! (parent.getPeer() instanceof SwingContainerPeer)) + { + comp = parent; + parent = comp.getParent(); + } + + // At this point we have the ancestor with a SwingContainerPeer + // (or null peer). + if (parent != null && parent.getPeer() instanceof SwingContainerPeer) + { + SwingContainerPeer p = (SwingContainerPeer) parent.getPeer(); + p.removeHeavyweightDescendent(awtComponent); + } + } + awtComponent = null; swingComponent = null; } @@ -244,8 +312,7 @@ public class SwingComponentPeer public Graphics getGraphics() { Component parent = awtComponent.getParent(); - ComponentPeer parentPeer = parent.getPeer(); - Graphics g = parentPeer.getGraphics(); + Graphics g = parent.getGraphics(); g.translate(awtComponent.getX(), awtComponent.getY()); g.setClip(0, 0, awtComponent.getWidth(), awtComponent.getHeight()); return g; @@ -331,23 +398,28 @@ public class SwingComponentPeer { case PaintEvent.UPDATE: case PaintEvent.PAINT: - // This only will work when the component is showing. - if (awtComponent.isShowing()) + // Need to synchronize to avoid threading problems on the + // paint event list. + // We must synchronize on the tree lock first to avoid deadlock, + // because Container.paint() will grab it anyway. + synchronized (this) { - Graphics g = getGraphics(); - Rectangle clip = ((PaintEvent)e).getUpdateRect(); - g.clipRect(clip.x, clip.y, clip.width, clip.height); - //if (this instanceof LightweightPeer) - // { - if (e.getID() == PaintEvent.UPDATE) - awtComponent.update(g); - else - awtComponent.paint(g); - // } - // We paint the 'heavyweights' at last, so that they appear on top of - // everything else. - peerPaint(g); - g.dispose(); + assert paintArea != null; + if (awtComponent.isShowing()) + { + Graphics g = awtComponent.getGraphics(); + try + { + Rectangle clip = paintArea; + g.clipRect(clip.x, clip.y, clip.width, clip.height); + peerPaint(g, e.getID() == PaintEvent.UPDATE); + } + finally + { + g.dispose(); + paintArea = null; + } + } } break; case MouseEvent.MOUSE_PRESSED: @@ -451,9 +523,15 @@ public class SwingComponentPeer return retVal; } + /** + * Paints the component. This is triggered by + * {@link Component#paintAll(Graphics)}. + * + * @param graphics the graphics to paint with + */ public void paint(Graphics graphics) { - // FIXME: I don't know what this method is supposed to do. + peerPaint(graphics, false); } /** @@ -634,6 +712,7 @@ public class SwingComponentPeer */ public void setFont(Font font) { + peerFont = font; if (swingComponent != null) swingComponent.getJComponent().setFont(font); } @@ -741,7 +820,14 @@ public class SwingComponentPeer */ public void coalescePaintEvent(PaintEvent e) { - // Nothing to do here yet. + synchronized (this) + { + Rectangle newRect = e.getUpdateRect(); + if (paintArea == null) + paintArea = newRect; + else + Rectangle.union(paintArea, newRect, paintArea); + } } /** @@ -947,9 +1033,33 @@ public class SwingComponentPeer * paint() on the Swing component. * * @param g the graphics context to use for painting + * @param update wether we need to call update or paint on the AWT component + */ + protected void peerPaint(Graphics g, boolean update) + { + peerPaintComponent(g); + + Graphics userGraphics = g.create(); + try{ + if (update) + awtComponent.update(userGraphics); + else + awtComponent.paint(userGraphics); + } finally { + userGraphics.dispose(); + } + + } + + /** + * Paints the actual 'heavyweight' swing component, if there is one + * associated to this peer. + * + * @param g the graphics to paint the component with */ - protected void peerPaint(Graphics g) + protected void peerPaintComponent(Graphics g) { + // Paint the actual Swing component if this peer has one. if (swingComponent != null) swingComponent.getJComponent().paint(g); } diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java index f433e1b5c2d..c78b644a765 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java @@ -37,14 +37,20 @@ exception statement from your version. */ package gnu.java.awt.peer.swing; +import gnu.classpath.SystemProperties; + import java.awt.Component; import java.awt.Container; import java.awt.Graphics; +import java.awt.Image; import java.awt.Insets; -import java.awt.Shape; +import java.awt.Rectangle; +import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.peer.ComponentPeer; import java.awt.peer.ContainerPeer; +import java.util.Iterator; +import java.util.LinkedList; /** * A peer for Container to be used with the Swing based AWT peers. @@ -57,13 +63,53 @@ public class SwingContainerPeer { /** + * Stores all heavyweight descendents of the container. This is used + * in {@link #peerPaintChildren(Graphics)}. + */ + private LinkedList heavyweightDescendents; + + /** + * The backbuffer used for painting UPDATE events. + */ + private Image backbuffer; + + /** * Creates a new SwingContainerPeer. * * @param awtCont */ - public SwingContainerPeer(Component awtCont) + public SwingContainerPeer(Container awtCont) + { + heavyweightDescendents = new LinkedList(); + } + + /** + * Registers a heavyweight descendent. This is then painted by + * {@link #peerPaintChildren(Graphics)}. + * + * @param comp the descendent to register + * + * @see #peerPaintChildren(Graphics) + * @see #removeHeavyweightDescendent(Component) + */ + synchronized void addHeavyweightDescendent(Component comp) + { + heavyweightDescendents.add(comp); + focusOwner = null; + } + + /** + * Unregisters a heavyweight descendent. + * + * @param comp the descendent to unregister + * + * @see #peerPaintChildren(Graphics) + * @see #addHeavyweightDescendent(Component) + */ + synchronized void removeHeavyweightDescendent(Component comp) { - init(awtCont, null); + heavyweightDescendents.remove(comp); + focusOwner = null; } /** @@ -92,12 +138,7 @@ public class SwingContainerPeer */ public Insets getInsets() { - Insets retVal; - if (swingComponent != null) - retVal = swingComponent.getJComponent().getInsets(); - else - retVal = new Insets(0, 0, 0, 0); - return retVal; + return insets(); } /** @@ -171,38 +212,83 @@ public class SwingContainerPeer } /** - * Triggers painting of a component. This calls peerPaint on all the child - * components of this container. - * - * @param g the graphics context to paint to + * Performs the super behaviour (call peerPaintComponent() and + * awtComponent.paint()), and forwards the paint request to the heavyweight + * descendents of the container. */ - protected void peerPaint(Graphics g) + protected void peerPaint(Graphics g, boolean update) { - Container c = (Container) awtComponent; - Component[] children = c.getComponents(); - for (int i = children.length - 1; i >= 0; --i) + if (isDoubleBuffering()) { - Component child = children[i]; - ComponentPeer peer = child.getPeer(); - boolean translated = false; - boolean clipped = false; - Shape oldClip = g.getClip(); + int width = awtComponent.getWidth(); + int height = awtComponent.getHeight(); + if (backbuffer == null + || backbuffer.getWidth(awtComponent) < width + || backbuffer.getHeight(awtComponent) < height) + backbuffer = awtComponent.createImage(width, height); + Graphics g2 = backbuffer.getGraphics(); + Rectangle clip = g.getClipRect(); try - { - g.translate(child.getX(), child.getY()); - translated = true; - g.setClip(0, 0, child.getWidth(), child.getHeight()); - clipped = true; - if (peer instanceof SwingComponentPeer) - ((SwingComponentPeer) peer).peerPaint(g); - } + { + g2.setClip(clip); + super.peerPaint(g2, update); + peerPaintChildren(g2); + } finally - { - if (translated) - g.translate(- child.getX(), - child.getY()); - if (clipped) - g.setClip(oldClip); - } + { + g2.dispose(); + } + g.drawImage(backbuffer, 0, 0, awtComponent); + } + else + { + super.peerPaint(g, update); + peerPaintChildren(g); + } + } + + /** + * Determines if we should do double buffering or not. + * + * @return if we should do double buffering or not + */ + private boolean isDoubleBuffering() + { + Object prop = + SystemProperties.getProperty("gnu.awt.swing.doublebuffering", "false"); + return prop.equals("true"); + } + + /** + * Paints any heavyweight child components. + * + * @param g the graphics to use for painting + */ + protected synchronized void peerPaintChildren(Graphics g) + { + // TODO: Is this the right painting order? + for (Iterator i = heavyweightDescendents.iterator(); i.hasNext();) + { + Component child = (Component) i.next(); + ComponentPeer peer = child.getPeer(); + + if (peer instanceof SwingComponentPeer && child.isVisible()) + { + // TODO: The translation here doesn't work for deeper + // nested children. Fix this! + Graphics g2 = g.create(child.getX(), child.getY(), + child.getWidth(), child.getHeight()); + try + { + // update() is only called for the topmost component if + // necessary, all other components only get paint() called. + ((SwingComponentPeer) peer).peerPaint(g2, false); + } + finally + { + g2.dispose(); + } + } } } @@ -214,17 +300,13 @@ public class SwingContainerPeer protected void handleMouseEvent(MouseEvent ev) { Component comp = awtComponent.getComponentAt(ev.getPoint()); - if(comp == null) - comp = awtComponent; - if (comp != null) + if(comp == null) comp = awtComponent; + ComponentPeer peer = comp.getPeer(); + if (awtComponent != comp && !comp.isLightweight() && peer instanceof SwingComponentPeer) { - ComponentPeer peer = comp.getPeer(); - if (awtComponent != comp && !comp.isLightweight() && peer instanceof SwingComponentPeer) - { - ev.translatePoint(comp.getX(), comp.getY()); - ev.setSource(comp); - ((SwingComponentPeer) peer).handleMouseEvent(ev); - } + ev.translatePoint(comp.getX(), comp.getY()); + ev.setSource(comp); + ((SwingComponentPeer) peer).handleMouseEvent(ev); } } @@ -246,4 +328,39 @@ public class SwingContainerPeer } } } + + /** + * Handles key events on the component. This is usually forwarded to the + * SwingComponent's processKeyEvent() method. + * + * @param e the key event + */ + protected void handleKeyEvent(KeyEvent e) + { + Component owner = getFocusOwner(); + if(owner != null) + owner.dispatchEvent(e); + else + super.handleKeyEvent(e); + } + + private Component focusOwner = null; + + private Component getFocusOwner() + { + if(focusOwner == null) + { + for(Iterator iter=heavyweightDescendents.iterator(); iter.hasNext();) + { + Component child = (Component) iter.next(); + if(child.isFocusable()) + { + focusOwner = child; + break; + } + } + } + return focusOwner; + } + } diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingFramePeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingFramePeer.java index 0d5a02d78f6..56c7417cdcf 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingFramePeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingFramePeer.java @@ -43,6 +43,7 @@ import java.awt.Insets; import java.awt.MenuBar; import java.awt.Point; import java.awt.event.MouseEvent; +import java.awt.peer.ComponentPeer; import java.awt.peer.FramePeer; /** @@ -53,9 +54,9 @@ import java.awt.peer.FramePeer; * As a minimum, a subclass must implement all the remaining abstract methods * as well as the following methods: *
      - *
    • {@link java.awt.peer.ComponentPeer#getLocationOnScreen()}
    • - *
    • {@link java.awt.peer.ComponentPeer#getGraphics()}
    • - *
    • {@link java.awt.peer.ComponentPeer#createImage(int, int)}
    • + *
    • {@link ComponentPeer#getLocationOnScreen()}
    • + *
    • {@link ComponentPeer#getGraphics()}
    • + *
    • {@link ComponentPeer#createImage(int, int)}
    • *
    * * @author Roman Kennke (kennke@aicas.com) @@ -97,9 +98,9 @@ public abstract class SwingFramePeer * * @param g the graphics context to use for painting */ - protected void peerPaint(Graphics g) + protected void peerPaintComponent(Graphics g) { - super.peerPaint(g); + super.peerPaintComponent(g); if (menuBar != null) menuBar.peerPaint(g); } diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java index dd86fff2d10..349c5a0abe2 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.java.awt.peer.swing; +import java.awt.Container; +import java.awt.Graphics; import java.awt.Image; import java.awt.Label; import java.awt.Point; @@ -67,7 +69,14 @@ public class SwingLabelPeer extends JLabel implements SwingComponent { - + Label label; + + + SwingLabel(Label label) + { + this.label = label; + } + /** * Returns this label. * @@ -131,8 +140,8 @@ public class SwingLabelPeer public boolean isShowing() { boolean retVal = false; - if (SwingLabelPeer.this.awtComponent != null) - retVal = SwingLabelPeer.this.awtComponent.isShowing(); + if (label != null) + retVal = label.isShowing(); return retVal; } @@ -149,7 +158,19 @@ public class SwingLabelPeer { return SwingLabelPeer.this.createImage(w, h); } - + + public Graphics getGraphics() + { + return SwingLabelPeer.this.getGraphics(); + } + + public Container getParent() + { + Container par = null; + if (label != null) + par = label.getParent(); + return par; + } } /** @@ -160,11 +181,11 @@ public class SwingLabelPeer public SwingLabelPeer(Label label) { super(); - SwingLabel swingLabel = new SwingLabel(); + SwingLabel swingLabel = new SwingLabel(label); swingLabel.setText(label.getText()); - swingLabel.setHorizontalAlignment(label.getAlignment()); swingLabel.setOpaque(true); init(label, swingLabel); + setAlignment(label.getAlignment()); } /** @@ -190,7 +211,20 @@ public class SwingLabelPeer */ public void setAlignment(int alignment) { - ((JLabel) swingComponent.getJComponent()).setHorizontalAlignment(alignment); + JLabel swingLabel = (JLabel) swingComponent.getJComponent(); + switch (alignment) + { + case Label.RIGHT: + swingLabel.setHorizontalAlignment(JLabel.RIGHT); + break; + case Label.CENTER: + swingLabel.setHorizontalAlignment(JLabel.CENTER); + break; + case Label.LEFT: + default: + swingLabel.setHorizontalAlignment(JLabel.LEFT); + break; + } } } diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java new file mode 100644 index 00000000000..aca2070486d --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java @@ -0,0 +1,352 @@ +/* SwingListPeer.java -- A Swing based peer for AWT lists + 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 gnu.java.awt.peer.swing; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.List; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.awt.peer.ListPeer; + +import javax.swing.DefaultListModel; +import javax.swing.JComponent; +import javax.swing.JList; +import javax.swing.JScrollPane; +import javax.swing.ListSelectionModel; + +public class SwingListPeer + extends SwingComponentPeer + implements ListPeer +{ + + /** + * A spezialized Swing scroller used to hold the list. + * + * @author Roman Kennke (kennke@aicas.com) + */ + private class SwingList + extends JScrollPane + implements SwingComponent + { + + SwingList(Component comp) + { + super(comp, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + } + + /** + * Returns this label. + * + * @return this + */ + public JComponent getJComponent() + { + return this; + } + + /** + * Handles mouse events by forwarding it to + * processMouseEvent(). + * + * @param ev the mouse event + */ + public void handleMouseEvent(MouseEvent ev) + { + ev.setSource(this); + dispatchEvent(ev); + } + + /** + * Force lightweight mouse dispatching. + */ + public boolean isLightweight() + { + return false; + } + + /** + * Handles mouse motion events by forwarding it to + * processMouseMotionEvent(). + * + * @param ev the mouse motion event + */ + public void handleMouseMotionEvent(MouseEvent ev) + { + processMouseMotionEvent(ev); + } + + /** + * Handles key events by forwarding it to processKeyEvent(). + * + * @param ev the mouse event + */ + public void handleKeyEvent(KeyEvent ev) + { + processKeyEvent(ev); + } + + /** + * Overridden so that this method returns the correct value even without a + * peer. + * + * @return the screen location of the button + */ + public Point getLocationOnScreen() + { + return SwingListPeer.this.getLocationOnScreen(); + } + + /** + * Overridden so that the isShowing method returns the correct value for the + * swing button, even if it has no peer on its own. + * + * @return true if the button is currently showing, + * false otherwise + */ + public boolean isShowing() + { + boolean retVal = false; + if (SwingListPeer.this.awtComponent != null) + retVal = SwingListPeer.this.awtComponent.isShowing(); + return retVal; + } + + /** + * Overridden, so that the Swing button can create an Image without its + * own peer. + * + * @param w the width of the image + * @param h the height of the image + * + * @return an image + */ + public Image createImage(int w, int h) + { + return SwingListPeer.this.createImage(w, h); + } + + public Graphics getGraphics() + { + return SwingListPeer.this.getGraphics(); + } + + public Container getParent() + { + Container par = null; + if (SwingListPeer.this.awtComponent != null) + par = SwingListPeer.this.awtComponent.getParent(); + return par; + } + } + + /** + * The actual Swing JList. + */ + private JList jList; + + private DefaultListModel listModel; + + public SwingListPeer(List list) + { + super(); + listModel = new DefaultListModel(); + jList = new JList(listModel); + SwingList swingList = new SwingList(jList); + init(list, swingList); + + // Pull over the items from the list. + String[] items = list.getItems(); + for (int i = 0 ; i < items.length; i++) + addItem(items[i], i); + } + + public void add(String item, int index) + { + if (listModel != null) + listModel.add(index, item); + } + + public void addItem(String item, int index) + { + if (listModel != null) + listModel.add(index, item); + } + + public void clear() + { + if (listModel != null) + listModel.clear(); + } + + public void delItems(int startIndex, int endIndex) + { + if (listModel != null) + listModel.removeRange(startIndex, endIndex); + } + + public void deselect(int index) + { + if (jList != null) + { + jList.getSelectionModel().removeSelectionInterval(index, index); + } + } + + public Dimension getMinimumSize(int s) + { + Dimension d = null; + if (jList != null) + { + d = jList.getComponent(s).getMinimumSize(); + } + return d; + } + + public Dimension getPreferredSize(int s) + { + Dimension d = null; + if (jList != null) + { + d = jList.getComponent(s).getPreferredSize(); + } + return d; + } + + public int[] getSelectedIndexes() + { + int[] sel = null; + if (jList != null) + { + sel = jList.getSelectedIndices(); + } + return sel; + } + + public void makeVisible(int index) + { + if (jList != null) + { + Component comp = jList.getComponent(index); + jList.scrollRectToVisible(comp.getBounds()); + } + } + + public Dimension minimumSize(int s) + { + Dimension d = null; + if (jList != null) + { + d = jList.getComponent(s).getMinimumSize(); + } + return d; + } + + public Dimension preferredSize(int s) + { + Dimension d = null; + if (jList != null) + { + d = jList.getComponent(s).getPreferredSize(); + } + return d; + } + + public void removeAll() + { + if (jList != null) + { + jList.removeAll(); + } + } + + public void select(int index) + { + if (jList != null) + { + jList.setSelectedIndex(index); + } + } + + public void setMultipleMode(boolean multi) + { + if (jList != null) + { + jList.setSelectionMode(multi + ? ListSelectionModel.MULTIPLE_INTERVAL_SELECTION + : ListSelectionModel.SINGLE_SELECTION); + } + } + + public void setMultipleSelections(boolean multi) + { + if (jList != null) + { + jList.setSelectionMode(multi + ? ListSelectionModel.MULTIPLE_INTERVAL_SELECTION + : ListSelectionModel.SINGLE_SELECTION); + } + } + + public void reshape(int x, int y, int width, int height) + { + if (swingComponent != null) + { + swingComponent.getJComponent().setBounds(x, y, width, height); + swingComponent.getJComponent().validate(); + } + } + + protected void peerPaint(Graphics g, boolean update) + { + super.peerPaint(g, update); + jList.doLayout(); + jList.list(); + + Rectangle r = getBounds(); + g.setColor(Color.RED); + g.drawRect(r.x, r.y, r.width, r.height); + } +} diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java index 0033efb025f..bd9dcd77aaa 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java @@ -174,7 +174,7 @@ public class SwingMenuBarPeer /** * Adds a help menu to the menu bar. * - * @param menu the menu to add + * @param m the menu to add */ public void addHelpMenu(Menu menu) { diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java index 0a0f20fe826..3cea62ac4d1 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java @@ -39,7 +39,6 @@ exception statement from your version. */ package gnu.java.awt.peer.swing; import java.awt.Panel; -import java.awt.peer.LightweightPeer; import java.awt.peer.PanelPeer; /** @@ -51,7 +50,7 @@ import java.awt.peer.PanelPeer; // necessary, but might be good for more consistend Look. public class SwingPanelPeer extends SwingContainerPeer - implements PanelPeer, LightweightPeer + implements PanelPeer { /** @@ -63,5 +62,6 @@ public class SwingPanelPeer public SwingPanelPeer(Panel panel) { super(panel); + init(panel, null); } } diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java new file mode 100644 index 00000000000..04ac011419f --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java @@ -0,0 +1,317 @@ +/* SwingTextAreaPeer.java -- A Swing based peer for AWT textareas + 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 gnu.java.awt.peer.swing; + +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.TextArea; +import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; +import java.awt.im.InputMethodRequests; +import java.awt.peer.TextAreaPeer; + +import javax.swing.JComponent; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.text.BadLocationException; + +public class SwingTextAreaPeer + extends SwingComponentPeer + implements TextAreaPeer +{ + + /** + * A spezialized Swing scroller used to hold the textarea. + * + * @author Roman Kennke (kennke@aicas.com) + */ + private class SwingTextArea + extends JScrollPane + implements SwingComponent + { + + SwingTextArea(Component comp) + { + super(comp, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + } + + /** + * Returns this label. + * + * @return this + */ + public JComponent getJComponent() + { + return this; + } + + /** + * Handles mouse events by forwarding it to + * processMouseEvent(). + * + * @param ev the mouse event + */ + public void handleMouseEvent(MouseEvent ev) + { + ev.setSource(this); + dispatchEvent(ev); + } + + /** + * Force lightweight mouse dispatching. + */ + public boolean isLightweight() + { + return false; + } + + /** + * Handles mouse motion events by forwarding it to + * processMouseMotionEvent(). + * + * @param ev the mouse motion event + */ + public void handleMouseMotionEvent(MouseEvent ev) + { + processMouseMotionEvent(ev); + } + + /** + * Handles key events by forwarding it to processKeyEvent(). + * + * @param ev the mouse event + */ + public void handleKeyEvent(KeyEvent ev) + { + processKeyEvent(ev); + } + + /** + * Overridden so that this method returns the correct value even without a + * peer. + * + * @return the screen location of the button + */ + public Point getLocationOnScreen() + { + return SwingTextAreaPeer.this.getLocationOnScreen(); + } + + /** + * Overridden so that the isShowing method returns the correct value for the + * swing button, even if it has no peer on its own. + * + * @return true if the button is currently showing, + * false otherwise + */ + public boolean isShowing() + { + boolean retVal = false; + if (SwingTextAreaPeer.this.awtComponent != null) + retVal = SwingTextAreaPeer.this.awtComponent.isShowing(); + return retVal; + } + + /** + * Overridden, so that the Swing button can create an Image without its + * own peer. + * + * @param w the width of the image + * @param h the height of the image + * + * @return an image + */ + public Image createImage(int w, int h) + { + return SwingTextAreaPeer.this.createImage(w, h); + } + + public Graphics getGraphics() + { + return SwingTextAreaPeer.this.getGraphics(); + } + + public Container getParent() + { + Container par = null; + if (SwingTextAreaPeer.this.awtComponent != null) + par = SwingTextAreaPeer.this.awtComponent.getParent(); + return par; + } + } + + /** + * The actual JTextArea. + */ + private JTextArea jTextArea; + + public SwingTextAreaPeer(TextArea textArea) + { + super(); + System.err.println("new SwingTextAreaPeer"); + jTextArea = new JTextArea(); + SwingTextArea swingArea = new SwingTextArea(jTextArea); + init(textArea, swingArea); + + // Pull over the text from the text area. + setText(textArea.getText()); + } + + public Dimension getMinimumSize(int rows, int cols) + { + // TODO Auto-generated method stub + return null; + } + + public Dimension getPreferredSize(int rows, int cols) + { + // TODO Auto-generated method stub + return null; + } + + public void insert(String text, int pos) + { + jTextArea.insert(text, pos); + } + + public void insertText(String text, int pos) + { + jTextArea.insert(text, pos); + } + + public Dimension minimumSize(int rows, int cols) + { + // TODO Auto-generated method stub + return null; + } + + public Dimension preferredSize(int rows, int cols) + { + // TODO Auto-generated method stub + return null; + } + + public void replaceRange(String text, int start, int end) + { + jTextArea.replaceRange(text, start, end); + } + + public void replaceText(String text, int start, int end) + { + jTextArea.replaceRange(text, start, end); + } + + public long filterEvents(long filter) + { + // TODO Auto-generated method stub + return 0; + } + + public int getCaretPosition() + { + return jTextArea.getCaretPosition(); + } + + public Rectangle getCharacterBounds(int pos) + { + Rectangle r; + try + { + return jTextArea.modelToView(pos); + } + catch (BadLocationException ex) + { + r = null; + } + return r; + } + + public int getIndexAtPoint(int x, int y) + { + return jTextArea.viewToModel(new Point(x, y)); + } + + public InputMethodRequests getInputMethodRequests() + { + // TODO Auto-generated method stub + return null; + } + + public int getSelectionEnd() + { + return jTextArea.getSelectionEnd(); + } + + public int getSelectionStart() + { + return jTextArea.getSelectionStart(); + } + + public String getText() + { + return jTextArea.getText(); + } + + public void select(int start, int end) + { + jTextArea.select(start, end); + } + + public void setCaretPosition(int pos) + { + jTextArea.setCaretPosition(pos); + } + + public void setEditable(boolean editable) + { + jTextArea.setEditable(editable); + } + + public void setText(String text) + { + System.err.println("setText: " + text); + jTextArea.setText(text); + } + +} diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java index 0c3b4e72603..d7d574a0bb9 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java @@ -36,7 +36,10 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ package gnu.java.awt.peer.swing; +import java.awt.Component; +import java.awt.Container; import java.awt.Dimension; +import java.awt.Graphics; import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; @@ -69,6 +72,13 @@ public class SwingTextFieldPeer implements SwingComponent { + TextField textField; + + SwingTextField(TextField textField) + { + this.textField = textField; + } + /** * Overridden to provide normal behaviour even without a real peer * attached. @@ -90,8 +100,8 @@ public class SwingTextFieldPeer public boolean isShowing() { boolean retVal = false; - if (SwingTextFieldPeer.this.awtComponent != null) - retVal = SwingTextFieldPeer.this.awtComponent.isShowing(); + if (textField != null) + retVal = textField.isShowing(); return retVal; } @@ -151,7 +161,19 @@ public class SwingTextFieldPeer ev.setSource(this); processKeyEvent(ev); } - + + public Container getParent() + { + Container par = null; + if (textField != null) + par = textField.getParent(); + return par; + } + + public Graphics getGraphics() + { + return SwingTextFieldPeer.this.getGraphics(); + } } /** @@ -162,7 +184,7 @@ public class SwingTextFieldPeer */ public SwingTextFieldPeer(TextField textField) { - SwingTextField swingTextField = new SwingTextField(); + SwingTextField swingTextField = new SwingTextField(textField); swingTextField.setText(textField.getText()); init(textField, swingTextField); } @@ -283,7 +305,7 @@ public class SwingTextFieldPeer * @param startPos the start index of the selection * @param endPos the start index of the selection */ - public void select(int startPos, int endPos) + public void select(int start_pos, int endPos) { // TODO: Must be implemented. } diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java index 43a509b957d..531552d902c 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.awt.peer.swing; import java.awt.Window; +import java.awt.peer.ComponentPeer; import java.awt.peer.WindowPeer; /** @@ -48,9 +49,9 @@ import java.awt.peer.WindowPeer; * As a minimum, a subclass must implement all the remaining abstract methods * as well as the following methods: *
      - *
    • {@link java.awt.peer.ComponentPeer#getLocationOnScreen()}
    • - *
    • {@link java.awt.peer.ComponentPeer#getGraphics()}
    • - *
    • {@link java.awt.peer.ComponentPeer#createImage(int, int)}
    • + *
    • {@link ComponentPeer#getLocationOnScreen()}
    • + *
    • {@link ComponentPeer#getGraphics()}
    • + *
    • {@link ComponentPeer#createImage(int, int)}
    • *
    * * @author Roman Kennke (kennke@aicas.com) @@ -68,5 +69,6 @@ public abstract class SwingWindowPeer public SwingWindowPeer(Window window) { super(window); + init(window, null); } } diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java index fd293d8dd43..8183fed0cd2 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java @@ -608,13 +608,6 @@ public class XFontPeer throw new UnsupportedOperationException("Not yet implemented."); } - public Rectangle2D getStringBounds(Font font, CharacterIterator ci, - int begin, int limit, FontRenderContext frc) - { - // TODO: Implement this. - throw new UnsupportedOperationException("Not yet implemented."); - } - /** * Encodes a font name + style + size specification into a X logical font * description (XLFD) as described here: diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java index 25371de1a41..ef9507f3050 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java @@ -326,10 +326,4 @@ public class XFontPeer2 throw new UnsupportedOperationException("Not yet implemented"); } - public Rectangle2D getStringBounds(Font font, CharacterIterator ci, int begin, int limit, FontRenderContext frc) - { - // FIXME: Implement this. - throw new UnsupportedOperationException("Not yet implemented"); - } - } diff --git a/libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java b/libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java new file mode 100644 index 00000000000..08f089d7921 --- /dev/null +++ b/libjava/classpath/gnu/java/io/ObjectIdentityMap2Int.java @@ -0,0 +1,292 @@ +/* ObjectIdentityMapToInt.java -- Helper class for faster serialization + 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 gnu.java.io; + +/** + * This class provides a map from Object to non-negative int values. + * Objects are considered equal only if their references are equal. + * + * This can be used to equip objects with an integer id. This class + * is implemented to use as little memory as possible, particularly + * not to create hashtable buckets and Integer instances for each + * mapping. + * + * @author Fridtjof Siebert (siebert@aicas.com) + */ +public class ObjectIdentityMap2Int +{ + + + /** + * Prime numbers used as size of array. We need the size to be a + * prime number since the delta used for conflict resulution must + * not have any common divisors with the length. + */ + private static final int[] PRIMES = { + 0x1f, + 0x3d, + 0x7f, + 0xfb, + 0x1fd, + 0x3fd, + 0x7f7, + 0xffd, + 0x1fff, + 0x3ffd, + 0x7fed, + 0xfff1, + 0x1ffff, + 0x3fffb, + 0x7ffff, + 0xffffd, + 0x1ffff7, + 0x3ffffd, + 0x7ffff1, + 0xfffffd, + 0x1ffffd9, + 0x3fffffb, + 0x7ffffd9, + 0xfffffc7, + 0x1ffffffd, + 0x3fffffdd, + 0x7fffffff}; + + + /** + * Object to be used instead of "null" + */ + private static final Object NIL = new Object(); + + + /** + * The objects in this map: + * + * invariant + * objectTable.size == PRIMES[cap] + */ + private Object[] objectTable; + + + /** + * The corresponding integer ids. + * + * invariant + * intTable.size == PRIMES[cap] + */ + private int[] intTable; + + + /** + * The number of entries in this map. + * + * invariant + * size < limit + */ + private int size = 0; + + + /** + * The index in primes of the size of the tables. + */ + private int cap = 0; + + + /** + * The limit for size at which the table size is increased. + * + * invariant + * limit = PRIMES[cap] / 4 * 3; + */ + private int limit = 0; + + + /** + * Constructs an empty ObjectIdentityMap2Int. + */ + public ObjectIdentityMap2Int() + { + alloc(0); + } + + + /** + * Helper function to alloc the object and int array for the given + * capacity. Set limit, reset size to 0. + * + * No elements will be stored in the newly allocated arrays. + * + * @param c the capacity: this is an index in PRIMES, PRIMES[c] + * gives the size of the arrays. + * + * @throws InternalError if c >= PRIMES.length (in this case, a + * normal Hashtable would throw an OutOfMemoryError or a + * NegativeArraySizeException since the array size exceeds the range + * of positive integers). + */ + private void alloc(int c) + { + if (c >= PRIMES.length) + throw new InternalError("Hash table size overflow"); + + cap = c; + int len = PRIMES[c]; + objectTable = new Object[len]; + intTable = new int[len]; + limit = len / 4 * 3; + + size = 0; + } + + + /** + * Add a mapping to this Map. + * + * ensures + * (get(o) == i); + * + * @param o object reference or null that is to be mapped. + * + * @param i the integer id to be associated with o + * + * @throws IllegalArgumentException if i<0 + * + * @throws InternalError if hash tables has grown to more then + * 0x7fffffff entries (ie., size >= 0x7fffffff*3/4). + */ + public void put(Object o, int i) + { + if (i < 0) + throw new IllegalArgumentException("int argument must be postive: "+i); + + o = (o == null) ? NIL : o; + int s = slot(o); + Object[] ot = objectTable; + intTable[s] = i; + if (objectTable[s] == null) + { + objectTable[s] = o; + size++; + if (size >= limit) + { + rehash(); + } + } + } + + + /** + * Helper function to find the index of a free or existing slot for + * object o + * + * ensure + * ((objectTable[result] != null) IMPLIES (objectTable[result] == o)); + * + * @param o an object, must not be null. + * + * @return an index of o + */ + private int slot(Object o) + { + Object[] ot = objectTable; + int hc = System.identityHashCode(o); + int len = ot.length; + int result = hc % len; + result = result < 0 ? -result : result; + int delta = 16 - (hc & 15); + Object existing = ot[result]; + while ((existing != null) && (existing != o)) + { + result += delta; + if (result >= len) + result -= len; + existing = ot[result]; + } + return result; + } + + + /** + * Helper function for put() to increaes the capacity of this table + * to the next size (approx. double the size). Keep the mapping and + * the size unchanged. + * + * ensure + * (cap == \old cap+1); + */ + private void rehash() + { + Object[] ot = objectTable; + int [] it = intTable; + alloc(cap + 1); + + for (int i = 0; i < ot.length; i++) + put(ot[i], it[i]); + } + + + /** + * Obtain an element from this map + * + * @param o an object or null + * + * @return the corresponding integer id for o or -1 if o has not + * been put into this map. + */ + public int get(Object o) + { + o = (o == null) ? NIL : o; + int s = slot(o); + return objectTable[s] == null ? -1 : intTable[s]; + } + + /** + * Clear this map + * + * ensures + * ((size == 0) && \forall Object o: get(o) == -1) + */ + public void clear() + { + Object[] ot = objectTable; + size = 0; + for (int i = 0; i < ot.length; i++) + ot[i] = null; + } + +} diff --git a/libjava/classpath/gnu/java/io/class-dependencies.conf b/libjava/classpath/gnu/java/io/class-dependencies.conf new file mode 100644 index 00000000000..2500f6b14b5 --- /dev/null +++ b/libjava/classpath/gnu/java/io/class-dependencies.conf @@ -0,0 +1,75 @@ +# This property file contains dependencies of classes, methods, and +# field on other methods or classes. +# +# Syntax: +# +# : [... ] +# +# means that when is included, (... ) must +# be included as well. +# +# and are of the form +# +# +# +# or just +# +# +# +# Within dependencies, variables can be used. A variable is defined as +# follows: +# +# {variable}: value1 value2 ... value +# +# variables can be used on the right side of dependencies as follows: +# +# : com.bla.blu.{variable}.Class.m()V +# +# The use of the variable will expand to dependencies of the form +# +# : com.bla.blu.value1.Class.m()V +# : com.bla.blu.value2.Class.m()V +# ... +# : com.bla.blu.value.Class.m()V +# +# Variables can be redefined when building a system to select the +# required support for features like encodings, protocols, etc. +# +# Hints: +# +# - For methods and fields, the signature is mandatory. For +# specification, please see the Java Virtual Machine Specification by +# SUN. Unlike in the spec, field signatures (types) are in brackets. +# +# - Package names must be separated by '/' (and not '.'). E.g., +# java/lang/Class (this is necessary, because the '.' is used to +# separate method or field names from classes) +# +# - In case refers to a class, only the class itself will be +# included in the resulting binary, NOT necessarily all its methods +# and fields. If you want to refer to all methods and fields, you can +# write class.* as an abbreviation. +# +# - Abbreviations for packages are also possible: my/package/* means all +# methods and fields of all classes in my/package. +# +# - A line with a trailing '\' continues in the next line. + + +# All encodings supported are loaded via gnu/java/io/EncodingManager.findEncoderConstructor +# or gnu/java/io/EncodingManager.findDecoderConstructor from class +# gnu/java/io/decode/Decoder. +# +# This introduces a dependency for all encodings. To allow an easy selection +# and addition of encodings, the library variable {encodings} can be set to +# the set of supported encodings. +# +{encodings}: 8859_1 8859_2 8859_3 8859_4 8859_5 UTF8 + +gnu/java/io/EncodingManager.findEncoderConstructor(Ljava/lang/String;Z)Ljava/lang/reflect/Constructor;: \ + gnu/java/io/decode/Decoder{encodings}.* + +gnu/java/io/EncodingManager.findDecoderConstructor(Ljava/lang/String;Z)Ljava/lang/reflect/Constructor;: \ + gnu/java/io/encode/Encoder{encodings}.* \ + +# end of file diff --git a/libjava/classpath/gnu/java/lang/InstrumentationImpl.java b/libjava/classpath/gnu/java/lang/InstrumentationImpl.java index 7bfed458245..2425b35c8a9 100644 --- a/libjava/classpath/gnu/java/lang/InstrumentationImpl.java +++ b/libjava/classpath/gnu/java/lang/InstrumentationImpl.java @@ -1,6 +1,6 @@ /* InstrumentationImpl.java -- GNU implementation of java.lang.instrument.Instrumentation - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -63,11 +63,11 @@ public final class InstrumentationImpl implements Instrumentation { /* List of transformers */ - /* FIXME[GENERICS]: Should be ClassFileTransformer list */ - private ArrayList transformers = new ArrayList(); + private ArrayList transformers = + new ArrayList(); - private InstrumentationImpl() + InstrumentationImpl() { } @@ -210,9 +210,8 @@ public final class InstrumentationImpl implements Instrumentation * * @return the new class file */ - /* FIXME[GENERICS]: Should be Class */ public byte[] callTransformers(ClassLoader loader, String className, - Class classBeingRedefined, ProtectionDomain protectionDomain, + Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) { byte[] newBuffer = null; @@ -220,11 +219,10 @@ public final class InstrumentationImpl implements Instrumentation ClassFileTransformer current; synchronized (transformers) { - Iterator i = transformers.iterator(); + Iterator i = transformers.iterator(); while (i.hasNext()) { - /* FIXME[GENERICS]: Remove cast */ - current = (ClassFileTransformer) i.next(); + current = i.next(); try { newBuffer = current.transform(loader, className, diff --git a/libjava/classpath/gnu/java/lang/management/BeanImpl.java b/libjava/classpath/gnu/java/lang/management/BeanImpl.java index 24572a25d5d..e5b47181273 100644 --- a/libjava/classpath/gnu/java/lang/management/BeanImpl.java +++ b/libjava/classpath/gnu/java/lang/management/BeanImpl.java @@ -39,9 +39,50 @@ package gnu.java.lang.management; import java.lang.management.ManagementPermission; +import java.lang.reflect.Array; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.TypeVariable; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.management.AttributeNotFoundException; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanConstructorInfo; +import javax.management.MBeanException; +import javax.management.MBeanInfo; +import javax.management.MBeanOperationInfo; +import javax.management.MBeanParameterInfo; +import javax.management.MBeanInfo; import javax.management.NotCompliantMBeanException; +import javax.management.ReflectionException; import javax.management.StandardMBean; +import javax.management.openmbean.ArrayType; +import javax.management.openmbean.CompositeData; +import javax.management.openmbean.CompositeDataSupport; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.OpenMBeanAttributeInfo; +import javax.management.openmbean.OpenMBeanAttributeInfoSupport; +import javax.management.openmbean.OpenMBeanConstructorInfo; +import javax.management.openmbean.OpenMBeanConstructorInfoSupport; +import javax.management.openmbean.OpenMBeanInfo; +import javax.management.openmbean.OpenMBeanInfoSupport; +import javax.management.openmbean.OpenMBeanOperationInfo; +import javax.management.openmbean.OpenMBeanOperationInfoSupport; +import javax.management.openmbean.OpenMBeanParameterInfo; +import javax.management.openmbean.OpenMBeanParameterInfoSupport; +import javax.management.openmbean.OpenType; +import javax.management.openmbean.SimpleType; +import javax.management.openmbean.TabularData; +import javax.management.openmbean.TabularDataSupport; +import javax.management.openmbean.TabularType; + /** * A common superclass for bean implementations. * @@ -51,7 +92,12 @@ import javax.management.StandardMBean; public class BeanImpl extends StandardMBean { - + + /** + * Cached open bean information. + */ + private OpenMBeanInfo openInfo; + /** * Constructs a new BeanImpl. * @@ -67,6 +113,71 @@ public class BeanImpl super(iface); } + protected void cacheMBeanInfo(MBeanInfo info) + { + if (info == null) + return; + try + { + MBeanAttributeInfo[] oldA = info.getAttributes(); + OpenMBeanAttributeInfo[] attribs = + new OpenMBeanAttributeInfoSupport[oldA.length]; + for (int a = 0; a < oldA.length; ++a) + { + OpenMBeanParameterInfo param = translate(oldA[a].getType()); + if (param.getMinValue() == null) + { + Object[] lv; + if (param.getLegalValues() == null) + lv = null; + else + lv = param.getLegalValues().toArray(); + attribs[a] = new OpenMBeanAttributeInfoSupport(oldA[a].getName(), + oldA[a].getDescription(), + param.getOpenType(), + oldA[a].isReadable(), + oldA[a].isWritable(), + oldA[a].isIs(), + param.getDefaultValue(), + lv); + } + else + attribs[a] = new OpenMBeanAttributeInfoSupport(oldA[a].getName(), + oldA[a].getDescription(), + param.getOpenType(), + oldA[a].isReadable(), + oldA[a].isWritable(), + oldA[a].isIs(), + param.getDefaultValue(), + param.getMinValue(), + param.getMaxValue()); + } + MBeanConstructorInfo[] oldC = info.getConstructors(); + OpenMBeanConstructorInfo[] cons = new OpenMBeanConstructorInfoSupport[oldC.length]; + for (int a = 0; a < oldC.length; ++a) + cons[a] = + new OpenMBeanConstructorInfoSupport(oldC[a].getName(), + oldC[a].getDescription(), + translateSignature(oldC[a].getSignature())); + MBeanOperationInfo[] oldO = info.getOperations(); + OpenMBeanOperationInfo[] ops = new OpenMBeanOperationInfoSupport[oldO.length]; + for (int a = 0; a < oldO.length; ++a) + ops[a] = + new OpenMBeanOperationInfoSupport(oldO[a].getName(), + oldO[a].getDescription(), + translateSignature(oldO[a].getSignature()), + translate(oldO[a].getReturnType()).getOpenType(), + oldO[a].getImpact()); + openInfo = new OpenMBeanInfoSupport(info.getClassName(), info.getDescription(), + attribs, cons, ops, info.getNotifications()); + } + catch (OpenDataException e) + { + throw (InternalError) (new InternalError("A problem occurred creating the open type " + + "descriptors.").initCause(e)); + } + } + protected void checkMonitorPermissions() { SecurityManager sm = System.getSecurityManager(); @@ -81,4 +192,328 @@ public class BeanImpl sm.checkPermission(new ManagementPermission("control")); } + public Object getAttribute(String attribute) + throws AttributeNotFoundException, MBeanException, + ReflectionException + { + Object value = super.getAttribute(attribute); + if (value instanceof Enum) + return ((Enum) value).name(); + Class vClass = value.getClass(); + if (vClass.isArray()) + return value; + String cName = vClass.getName(); + String[] allowedTypes = OpenType.ALLOWED_CLASSNAMES; + for (int a = 0; a < allowedTypes.length; ++a) + if (cName.equals(allowedTypes[a])) + return value; + if (value instanceof List) + { + List l = (List) value; + Class e = null; + TypeVariable[] vars = vClass.getTypeParameters(); + for (int a = 0; a < vars.length; ++a) + if (vars[a].getName().equals("E")) + e = (Class) vars[a].getGenericDeclaration(); + if (e == null) + e = Object.class; + Object[] array = (Object[]) Array.newInstance(e, l.size()); + return l.toArray(array); + } + OpenMBeanInfo info = (OpenMBeanInfo) getMBeanInfo(); + OpenMBeanAttributeInfo[] attribs = + (OpenMBeanAttributeInfo[]) info.getAttributes(); + OpenType type = null; + for (int a = 0; a < attribs.length; ++a) + if (attribs[a].getName().equals("attribute")) + type = attribs[a].getOpenType(); + if (value instanceof Map) + { + TabularType ttype = (TabularType) type; + TabularData data = new TabularDataSupport(ttype); + Iterator it = ((Map) value).entrySet().iterator(); + while (it.hasNext()) + { + Map.Entry entry = (Map.Entry) it.next(); + try + { + data.put(new CompositeDataSupport(ttype.getRowType(), + new String[] { + "key", + "value" + }, + new Object[] { + entry.getKey(), + entry.getValue() + })); + } + catch (OpenDataException e) + { + throw (InternalError) (new InternalError("A problem occurred " + + "converting the map " + + "to a composite data " + + "structure.").initCause(e)); + } + } + return data; + } + CompositeType cType = (CompositeType) type; + Set names = cType.keySet(); + Iterator it = names.iterator(); + List values = new ArrayList(names.size()); + while (it.hasNext()) + { + String field = (String) it.next(); + Method getter = null; + try + { + getter = vClass.getMethod("get" + field, null); + } + catch (NoSuchMethodException e) + { + /* Ignored; the type tells us it's there. */ + } + try + { + values.add(getter.invoke(value, null)); + } + catch (IllegalAccessException e) + { + throw new ReflectionException(e, "Failed to retrieve " + field); + } + catch (IllegalArgumentException e) + { + throw new ReflectionException(e, "Failed to retrieve " + field); + } + catch (InvocationTargetException e) + { + throw new MBeanException((Exception) e.getCause(), + "The getter of " + field + + " threw an exception"); + } + } + try + { + return new CompositeDataSupport(cType, + (String[]) + names.toArray(new String[names.size()]), + values.toArray()); + } + catch (OpenDataException e) + { + throw (InternalError) (new InternalError("A problem occurred " + + "converting the value " + + "to a composite data " + + "structure.").initCause(e)); + } + } + + protected MBeanInfo getCachedMBeanInfo() + { + return (MBeanInfo) openInfo; + } + + public MBeanInfo getMBeanInfo() + { + super.getMBeanInfo(); + return getCachedMBeanInfo(); + } + + private OpenType getTypeFromClass(Class c) + throws OpenDataException + { + return translate(c.getName()).getOpenType(); + } + + private OpenMBeanParameterInfo[] translateSignature(MBeanParameterInfo[] oldS) + throws OpenDataException + { + OpenMBeanParameterInfo[] sig = new OpenMBeanParameterInfoSupport[oldS.length]; + for (int a = 0; a < oldS.length; ++a) + { + OpenMBeanParameterInfo param = translate(oldS[a].getType()); + if (param.getMinValue() == null) + { + Object[] lv; + if (param.getLegalValues() == null) + lv = null; + else + lv = param.getLegalValues().toArray(); + sig[a] = new OpenMBeanParameterInfoSupport(oldS[a].getName(), + oldS[a].getDescription(), + param.getOpenType(), + param.getDefaultValue(), + lv); + } + else + sig[a] = new OpenMBeanParameterInfoSupport(oldS[a].getName(), + oldS[a].getDescription(), + param.getOpenType(), + param.getDefaultValue(), + param.getMinValue(), + param.getMaxValue()); + } + return sig; + } + + private OpenMBeanParameterInfo translate(String type) + throws OpenDataException + { + if (type.equals("boolean") || type.equals(Boolean.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.BOOLEAN, + null, + new Object[] { + Boolean.TRUE, + Boolean.FALSE + }); + if (type.equals("byte") || type.equals(Byte.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.BYTE, + null, + Byte.valueOf(Byte.MIN_VALUE), + Byte.valueOf(Byte.MAX_VALUE)); + if (type.equals("char") || type.equals(Character.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.CHARACTER, + null, + Character.valueOf(Character.MIN_VALUE), + Character.valueOf(Character.MAX_VALUE)); + if (type.equals("double") || type.equals(Double.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.DOUBLE, + null, + Double.valueOf(Double.MIN_VALUE), + Double.valueOf(Double.MAX_VALUE)); + if (type.equals("float") || type.equals(Float.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.FLOAT, + null, + Float.valueOf(Float.MIN_VALUE), + Float.valueOf(Float.MAX_VALUE)); + if (type.equals("int") || type.equals(Integer.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.INTEGER, + null, + Integer.valueOf(Integer.MIN_VALUE), + Integer.valueOf(Integer.MAX_VALUE)); + if (type.equals("long") || type.equals(Long.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.LONG, + null, + Long.valueOf(Long.MIN_VALUE), + Long.valueOf(Long.MAX_VALUE)); + if (type.equals("short") || type.equals(Short.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.SHORT, + null, + Short.valueOf(Short.MIN_VALUE), + Short.valueOf(Short.MAX_VALUE)); + if (type.equals(String.class.getName())) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.STRING); + if (type.equals("void")) + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.VOID); + if (type.startsWith("java.util.Map")) + { + int lparam = type.indexOf("<"); + int comma = type.indexOf(",", lparam); + int rparam = type.indexOf(">", comma); + String key = type.substring(lparam + 1, comma).trim(); + OpenType k = translate(key).getOpenType(); + OpenType v = translate(type.substring(comma + 1, rparam).trim()).getOpenType(); + CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(), + new String[] { "key", "value" }, + new String[] { "Map key", "Map value"}, + new OpenType[] { k, v}); + TabularType ttype = new TabularType(key, key, ctype, + new String[] { "key" }); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + ttype); + } + if (type.startsWith("java.util.List")) + { + int lparam = type.indexOf("<"); + int rparam = type.indexOf(">"); + OpenType e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType(); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + new ArrayType(1, e) + ); + } + Class c; + try + { + c = Class.forName(type); + } + catch (ClassNotFoundException e) + { + throw (InternalError) + (new InternalError("The class for a type used in a management bean " + + "could not be loaded.").initCause(e)); + } + if (c.isEnum()) + { + Object[] values = c.getEnumConstants(); + String[] names = new String[values.length]; + for (int a = 0; a < values.length; ++a) + names[a] = values[a].toString(); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + SimpleType.STRING, + null, + (Object[]) names); + } + try + { + c.getMethod("from", new Class[] { CompositeData.class }); + Method[] methods = c.getMethods(); + List names = new ArrayList(); + List types = new ArrayList(); + for (int a = 0; a < methods.length; ++a) + { + String name = methods[a].getName(); + if (name.startsWith("get")) + { + names.add(name.substring(3)); + types.add(getTypeFromClass(methods[a].getReturnType())); + } + } + String[] fields = (String[]) names.toArray(); + CompositeType ctype = new CompositeType(c.getName(), c.getName(), + fields, fields, + (OpenType[]) types.toArray()); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + ctype); + } + catch (NoSuchMethodException e) + { + /* Ignored; we expect this if this isn't a from(CompositeData) class */ + } + if (c.isArray()) + { + int depth; + for (depth = 0; c.getName().charAt(depth) == '['; ++depth); + OpenType ot = getTypeFromClass(c.getComponentType()); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + new ArrayType(depth, ot) + ); + } + throw new InternalError("The type used does not have an open type translation."); + } + } diff --git a/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java b/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java index 064e19a1970..8cb10420213 100644 --- a/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java +++ b/libjava/classpath/gnu/java/lang/management/MemoryMXBeanImpl.java @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.java.lang.management; +import gnu.classpath.ListenerData; + import java.lang.management.MemoryMXBean; import java.lang.management.MemoryNotificationInfo; import java.lang.management.MemoryUsage; @@ -168,49 +170,6 @@ public final class MemoryMXBeanImpl VMMemoryMXBeanImpl.setVerbose(verbose); } - private class ListenerData - { - private NotificationListener listener; - private NotificationFilter filter; - private Object passback; - - public ListenerData(NotificationListener listener, - NotificationFilter filter, Object passback) - { - this.listener = listener; - this.filter = filter; - this.passback = passback; - } - - public NotificationListener getListener() - { - return listener; - } - - public NotificationFilter getFilter() - { - return filter; - } - - public Object getPassback() - { - return passback; - } - - public boolean equals(Object obj) - { - if (obj instanceof ListenerData) - { - ListenerData data = (ListenerData) obj; - return (data.getListener() == listener && - data.getFilter() == filter && - data.getPassback() == passback); - } - return false; - } - - } - public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object passback) diff --git a/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java b/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java index ed4dccd769e..e314ca1648a 100644 --- a/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java +++ b/libjava/classpath/gnu/java/lang/management/MemoryPoolMXBeanImpl.java @@ -40,6 +40,7 @@ package gnu.java.lang.management; import gnu.classpath.SystemProperties; import java.lang.management.MemoryPoolMXBean; +import java.lang.management.MemoryType; import java.lang.management.MemoryUsage; import javax.management.NotCompliantMBeanException; @@ -133,9 +134,10 @@ public final class MemoryPoolMXBeanImpl return null; } - public String getType() + public MemoryType getType() { - return VMMemoryPoolMXBeanImpl.getType(name); + return + MemoryType.valueOf(VMMemoryPoolMXBeanImpl.getType(name)); } public MemoryUsage getUsage() diff --git a/libjava/classpath/gnu/java/lang/reflect/ClassSignatureParser.java b/libjava/classpath/gnu/java/lang/reflect/ClassSignatureParser.java index 0c9b962921e..31f28385f44 100644 --- a/libjava/classpath/gnu/java/lang/reflect/ClassSignatureParser.java +++ b/libjava/classpath/gnu/java/lang/reflect/ClassSignatureParser.java @@ -61,7 +61,7 @@ public class ClassSignatureParser extends GenericSignatureParser } // SuperclassSignature superclassType = readClassTypeSignature(); - ArrayList interfaces = new ArrayList(); + ArrayList interfaces = new ArrayList(); while (peekChar() == 'L') { // SuperinterfaceSignature diff --git a/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java b/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java index 399f1bdc46f..06bc9e4ab06 100644 --- a/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java +++ b/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java @@ -60,7 +60,6 @@ final class TypeVariableImpl extends TypeImpl implements TypeVariable return this; } - /* FIXME[GENERICS]: Remove cast */ public Type[] getBounds() { resolve(bounds); @@ -141,10 +140,9 @@ final class ParameterizedTypeImpl extends TypeImpl implements ParameterizedType return this; } - /* FIXME[GENERICS]: Remove cast */ public Type[] getActualTypeArguments() { - return (Type[]) typeArgs.clone(); + return (Type[]) typeArgs.clone(); } public Type getRawType() @@ -276,12 +274,11 @@ final class UnresolvedTypeVariable extends TypeImpl implements Type GenericDeclaration d = decl; while (d != null) { - TypeVariable[] vars = d.getTypeParameters(); - for (int a = 0; a < vars.length ; ++a) + for (TypeVariable t : d.getTypeParameters()) { - if (vars[a].getName().equals(name)) + if (t.getName().equals(name)) { - return vars[a]; + return t; } } d = getParent(d); @@ -414,7 +411,7 @@ class GenericSignatureParser TypeVariable[] readFormalTypeParameters() { consume('<'); - ArrayList params = new ArrayList(); + ArrayList params = new ArrayList(); do { // TODO should we handle name clashes? @@ -430,7 +427,7 @@ class GenericSignatureParser { String identifier = readIdentifier(); consume(':'); - ArrayList bounds = new ArrayList(); + ArrayList bounds = new ArrayList(); if (peekChar() != ':') { bounds.add(readFieldTypeSignature()); @@ -501,7 +498,7 @@ class GenericSignatureParser private Type[] readTypeArguments() { consume('<'); - ArrayList list = new ArrayList(); + ArrayList list = new ArrayList(); do { list.add(readTypeArgument()); diff --git a/libjava/classpath/gnu/java/lang/reflect/MethodSignatureParser.java b/libjava/classpath/gnu/java/lang/reflect/MethodSignatureParser.java index 16b1af99b73..50f98e29965 100644 --- a/libjava/classpath/gnu/java/lang/reflect/MethodSignatureParser.java +++ b/libjava/classpath/gnu/java/lang/reflect/MethodSignatureParser.java @@ -72,7 +72,7 @@ public class MethodSignatureParser extends GenericSignatureParser typeParameters = new TypeVariable[0]; } consume('('); - ArrayList args = new ArrayList(); + ArrayList args = new ArrayList(); while (peekChar() != ')') { args.add(readTypeSignature()); @@ -81,7 +81,7 @@ public class MethodSignatureParser extends GenericSignatureParser args.toArray(argTypes); consume(')'); retType = readTypeSignature(); - ArrayList throwsSigs = new ArrayList(); + ArrayList throwsSigs = new ArrayList(); while (peekChar() == '^') { consume('^'); diff --git a/libjava/classpath/gnu/java/locale/.cvsignore b/libjava/classpath/gnu/java/locale/.cvsignore new file mode 100644 index 00000000000..d41ae8d8147 --- /dev/null +++ b/libjava/classpath/gnu/java/locale/.cvsignore @@ -0,0 +1 @@ +LocaleData.java diff --git a/libjava/classpath/gnu/java/net/DefaultProxySelector.java b/libjava/classpath/gnu/java/net/DefaultProxySelector.java new file mode 100644 index 00000000000..31f861e8710 --- /dev/null +++ b/libjava/classpath/gnu/java/net/DefaultProxySelector.java @@ -0,0 +1,80 @@ +/* DefaultProxySelector.java -- + 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 gnu.java.net; + +import java.io.IOException; +import java.net.Proxy; +import java.net.ProxySelector; +import java.net.SocketAddress; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; + +public final class DefaultProxySelector + extends ProxySelector +{ + private static final List proxies = new ArrayList(); + + static + { + // The default proxy selector supports only direct connections. + proxies.add(Proxy.NO_PROXY); + } + + public DefaultProxySelector() + { + // Do nothing by default. + } + + public void connectFailed(URI uri, SocketAddress sa, IOException ioe) + { + if (uri == null || sa == null || ioe == null) + throw new IllegalArgumentException(); + + // Do nothing by default. + } + + public List select(URI uri) + { + if (uri == null) + throw new IllegalArgumentException(); + + return proxies; + } +} diff --git a/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java b/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java index 0fcd780dfb9..a84525e18b8 100644 --- a/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java +++ b/libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java @@ -1,5 +1,5 @@ /* PlainDatagramSocketImpl.java -- Default DatagramSocket implementation - Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,13 +38,19 @@ exception statement from your version. */ package gnu.java.net; +import gnu.java.nio.VMChannel; + import java.io.IOException; +import java.io.InterruptedIOException; import java.net.DatagramPacket; import java.net.DatagramSocketImpl; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.NetworkInterface; import java.net.SocketAddress; import java.net.SocketException; +import java.net.SocketTimeoutException; +import java.nio.ByteBuffer; /** * Written using on-line Java Platform 1.2 API Specification, as well @@ -62,11 +68,12 @@ import java.net.SocketException; */ public final class PlainDatagramSocketImpl extends DatagramSocketImpl { - + private final VMChannel channel; + /** - * This is the actual underlying file descriptor + * The platform-specific socket implementation. */ - int native_fd = -1; + private final VMPlainSocketImpl impl; /** * Lock object to serialize threads wanting to receive @@ -81,25 +88,26 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl /** * Default do nothing constructor */ - public PlainDatagramSocketImpl() + public PlainDatagramSocketImpl() throws IOException { - // Nothing to do here. + channel = new VMChannel(); + impl = new VMPlainSocketImpl(channel); } - protected void finalize() throws Throwable + /*protected void finalize() throws Throwable { synchronized (this) { - if (native_fd != -1) + if (channel.getState().isValid()) close(); } super.finalize(); - } + }*/ - public int getNativeFD() + /*public int getNativeFD() { return native_fd; - } + }*/ /** * Binds this socket to a particular port and interface @@ -109,20 +117,46 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl * * @exception SocketException If an error occurs */ - protected synchronized void bind(int port, InetAddress addr) + protected synchronized void bind(int port, InetAddress addr) throws SocketException - { - VMPlainDatagramSocketImpl.bind(this, port, addr); - } + { + try + { + impl.bind(new InetSocketAddress(addr, port)); + } + catch (SocketException se) + { + throw se; + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } /** * Creates a new datagram socket * * @exception SocketException If an error occurs */ - protected synchronized void create() throws SocketException + protected synchronized void create() throws SocketException { - VMPlainDatagramSocketImpl.create(this); + try + { + channel.initSocket(false); + } + catch (SocketException se) + { + throw se; + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } } /** @@ -135,7 +169,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl */ protected void connect(InetAddress addr, int port) throws SocketException { - VMPlainDatagramSocketImpl.connect(this, addr, port); + channel.connect(new InetSocketAddress(addr, port), 0); } /** @@ -147,8 +181,14 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl { synchronized (this) { - if (native_fd != -1) - close(); + try + { + if (channel.getState().isValid()) + channel.disconnect(); + } + catch (IOException ioe) + { + } } } @@ -161,7 +201,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl */ protected synchronized void setTimeToLive(int ttl) throws IOException { - setOption(VMPlainDatagramSocketImpl.IP_TTL, new Integer(ttl)); + impl.setTimeToLive(ttl); } /** @@ -173,15 +213,27 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl */ protected synchronized int getTimeToLive() throws IOException { - Object obj = getOption(VMPlainDatagramSocketImpl.IP_TTL); + return impl.getTimeToLive(); + } - if (! (obj instanceof Integer)) - throw new IOException("Internal Error"); + protected int getLocalPort() + { + if (channel == null) + return -1; - return ((Integer) obj).intValue(); + try + { + InetSocketAddress local = channel.getLocalAddress(); + if (local == null) + return -1; + return local.getPort(); + } + catch (IOException ioe) + { + return -1; + } } - /** * Sends a packet of data to a remote host * @@ -191,13 +243,30 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl */ protected void send(DatagramPacket packet) throws IOException { - if (native_fd != -1) + synchronized (SEND_LOCK) { - synchronized(SEND_LOCK) + ByteBuffer buf = ByteBuffer.wrap(packet.getData(), + packet.getOffset(), + packet.getLength()); + InetAddress remote = packet.getAddress(); + int port = packet.getPort(); + if (remote == null) + throw new NullPointerException(); + if (port <= 0) + throw new SocketException("invalid port " + port); + while (true) { - VMPlainDatagramSocketImpl.send(this, packet); + try + { + channel.send(buf, new InetSocketAddress(remote, port)); + break; + } + catch (InterruptedIOException ioe) + { + // Ignore; interrupted system call. + } } - } + } } /** @@ -210,48 +279,123 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl protected void receive(DatagramPacket packet) throws IOException { - synchronized(RECEIVE_LOCK) - { - VMPlainDatagramSocketImpl.receive(this, packet); - } + synchronized(RECEIVE_LOCK) + { + ByteBuffer buf = ByteBuffer.wrap(packet.getData(), + packet.getOffset(), + packet.getLength()); + SocketAddress addr = null; + while (true) + { + try + { + addr = channel.receive(buf); + break; + } + catch (SocketTimeoutException ste) + { + throw ste; + } + catch (InterruptedIOException iioe) + { + // Ignore. Loop. + } + } + if (addr != null) + packet.setSocketAddress(addr); + packet.setLength(buf.position() - packet.getOffset()); + } } /** * Sets the value of an option on the socket * - * @param option_id The identifier of the option to set - * @param val The value of the option to set + * @param optionId The identifier of the option to set + * @param value The value of the option to set * * @exception SocketException If an error occurs */ - public synchronized void setOption(int option_id, Object val) + public synchronized void setOption(int optionId, Object value) throws SocketException - { - VMPlainDatagramSocketImpl.setOption(this, option_id, val); - } + { + switch (optionId) + { + case IP_MULTICAST_IF: + case IP_MULTICAST_IF2: + impl.setMulticastInterface(optionId, (InetAddress) value); + break; + + case IP_MULTICAST_LOOP: + case SO_BROADCAST: + case SO_KEEPALIVE: + case SO_OOBINLINE: + case TCP_NODELAY: + case IP_TOS: + case SO_LINGER: + case SO_RCVBUF: + case SO_SNDBUF: + case SO_TIMEOUT: + case SO_REUSEADDR: + impl.setOption(optionId, value); + return; + + default: + throw new SocketException("cannot set option " + optionId); + } + } /** * Retrieves the value of an option on the socket * - * @param option_id The identifier of the option to retrieve + * @param optionId The identifier of the option to retrieve * * @return The value of the option * * @exception SocketException If an error occurs */ - public synchronized Object getOption(int option_id) + public synchronized Object getOption(int optionId) throws SocketException - { - return VMPlainDatagramSocketImpl.getOption(this, option_id); - } + { + if (optionId == SO_BINDADDR) + { + try + { + InetSocketAddress local = channel.getLocalAddress(); + if (local == null) + return null; + return local.getAddress(); + } + catch (SocketException se) + { + throw se; + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } + if (optionId == IP_MULTICAST_IF || optionId == IP_MULTICAST_IF2) + return impl.getMulticastInterface(optionId); + + return impl.getOption(optionId); + } /** * Closes the socket */ protected synchronized void close() { - VMPlainDatagramSocketImpl.close(this); + try + { + if (channel.getState().isValid()) + channel.close(); + } + catch (IOException ioe) + { + } } /** @@ -291,7 +435,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl */ protected synchronized void join(InetAddress addr) throws IOException { - VMPlainDatagramSocketImpl.join(this,addr); + impl.join(addr); } /** @@ -303,7 +447,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl */ protected synchronized void leave(InetAddress addr) throws IOException { - VMPlainDatagramSocketImpl.leave(this, addr); + impl.leave(addr); } /** @@ -323,12 +467,20 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl public void joinGroup(SocketAddress address, NetworkInterface netIf) throws IOException { - VMPlainDatagramSocketImpl.joinGroup(this, address, netIf); + if (address == null) + throw new NullPointerException(); + if (!(address instanceof InetSocketAddress)) + throw new SocketException("unknown address type"); + impl.joinGroup((InetSocketAddress) address, netIf); } public void leaveGroup(SocketAddress address, NetworkInterface netIf) throws IOException { - VMPlainDatagramSocketImpl.leaveGroup(this, address, netIf); + if (address == null) + throw new NullPointerException(); + if (!(address instanceof InetSocketAddress)) + throw new SocketException("unknown address type"); + impl.leaveGroup((InetSocketAddress) address, netIf); } } diff --git a/libjava/classpath/gnu/java/net/PlainSocketImpl.java b/libjava/classpath/gnu/java/net/PlainSocketImpl.java index 47d05aa410d..5bda0a5e9bf 100644 --- a/libjava/classpath/gnu/java/net/PlainSocketImpl.java +++ b/libjava/classpath/gnu/java/net/PlainSocketImpl.java @@ -39,13 +39,20 @@ exception statement from your version. */ package gnu.java.net; +import gnu.java.nio.SocketChannelImpl; +import gnu.java.nio.VMChannel; + import java.io.InputStream; import java.io.IOException; +import java.io.InterruptedIOException; import java.io.OutputStream; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.SocketAddress; import java.net.SocketException; import java.net.SocketImpl; +import java.net.SocketTimeoutException; +import java.nio.ByteBuffer; /** * Written using on-line Java Platform 1.2 API Specification, as well @@ -63,17 +70,13 @@ import java.net.SocketImpl; * @author Nic Ferrier (nferrier@tapsellferrier.co.uk) * @author Aaron M. Renn (arenn@urbanophile.com) */ -public final class PlainSocketImpl extends SocketImpl +public class PlainSocketImpl extends SocketImpl { /** - * The OS file handle representing the socket. - * This is used for reads and writes to/from the socket and - * to close it. - * - * When the socket is closed this is reset to -1. + * The underlying plain socket VM implementation. */ - int native_fd = -1; + protected VMPlainSocketImpl impl; /** * A cached copy of the in stream for reading from the socket. @@ -90,7 +93,13 @@ public final class PlainSocketImpl extends SocketImpl * is being invoked on this socket. */ private boolean inChannelOperation; - + + /** + * The socket channel we use for IO operation. Package-private for + * use by inner classes. + */ + SocketChannelImpl channel; + /** * Indicates whether we should ignore whether any associated * channel is set to non-blocking mode. Certain operations @@ -117,29 +126,7 @@ public final class PlainSocketImpl extends SocketImpl */ public PlainSocketImpl() { - // Nothing to do here. - } - - protected void finalize() throws Throwable - { - synchronized (this) - { - if (native_fd != -1) - try - { - close(); - } - catch (IOException ex) - { - // Nothing we can do about it. - } - } - super.finalize(); - } - - public int getNativeFD() - { - return native_fd; + this.impl = new VMPlainSocketImpl(); } /** @@ -155,7 +142,24 @@ public final class PlainSocketImpl extends SocketImpl */ public void setOption(int optionId, Object value) throws SocketException { - VMPlainSocketImpl.setOption(this, optionId, value); + switch (optionId) + { + case SO_LINGER: + case IP_MULTICAST_LOOP: + case SO_BROADCAST: + case SO_KEEPALIVE: + case SO_OOBINLINE: + case TCP_NODELAY: + case IP_TOS: + case SO_RCVBUF: + case SO_SNDBUF: + case SO_TIMEOUT: + case SO_REUSEADDR: + impl.setOption(optionId, value); + return; + default: + throw new SocketException("Unrecognized TCP option: " + optionId); + } } /** @@ -171,17 +175,49 @@ public final class PlainSocketImpl extends SocketImpl */ public Object getOption(int optionId) throws SocketException { - return VMPlainSocketImpl.getOption(this, optionId); + if (optionId == SO_BINDADDR) + { + try + { + return channel.getVMChannel().getLocalAddress().getAddress(); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } + + // This filters options which are invalid for TCP. + switch (optionId) + { + case SO_LINGER: + case IP_MULTICAST_LOOP: + case SO_BROADCAST: + case SO_KEEPALIVE: + case SO_OOBINLINE: + case TCP_NODELAY: + case IP_TOS: + case SO_RCVBUF: + case SO_SNDBUF: + case SO_TIMEOUT: + case SO_REUSEADDR: + return impl.getOption(optionId); + default: + throw new SocketException("Unrecognized TCP option: " + optionId); + } + } public void shutdownInput() throws IOException { - VMPlainSocketImpl.shutdownInput(this); + impl.shutdownInput(); } public void shutdownOutput() throws IOException { - VMPlainSocketImpl.shutdownOutput(this); + impl.shutdownOutput(); } /** @@ -195,7 +231,11 @@ public final class PlainSocketImpl extends SocketImpl */ protected synchronized void create(boolean stream) throws IOException { - VMPlainSocketImpl.create(this); + channel = new SocketChannelImpl(false); + VMChannel vmchannel = channel.getVMChannel(); + vmchannel.initSocket(stream); + channel.configureBlocking(true); + impl.getState().setChannelFD(vmchannel.getState()); } /** @@ -222,7 +262,7 @@ public final class PlainSocketImpl extends SocketImpl */ protected void connect(InetAddress addr, int port) throws IOException { - VMPlainSocketImpl.connect(this, addr, port); + connect(new InetSocketAddress(addr, port), 0); } /** @@ -236,7 +276,17 @@ public final class PlainSocketImpl extends SocketImpl protected synchronized void connect(SocketAddress address, int timeout) throws IOException { - VMPlainSocketImpl.connect(this, address, timeout); + if (channel == null) + create(true); + boolean connected = channel.connect(address, timeout); + if (!connected) + throw new SocketTimeoutException("connect timed out"); + + // Using the given SocketAddress is important to preserve + // hostnames given by the caller. + InetSocketAddress addr = (InetSocketAddress) address; + this.address = addr.getAddress(); + this.port = addr.getPort(); } /** @@ -251,7 +301,10 @@ public final class PlainSocketImpl extends SocketImpl protected synchronized void bind(InetAddress addr, int port) throws IOException { - VMPlainSocketImpl.bind(this, addr, port); + if (channel == null) + create(true); + impl.bind(new InetSocketAddress(addr, port)); + localport = channel.getVMChannel().getLocalAddress().getPort(); } /** @@ -267,7 +320,7 @@ public final class PlainSocketImpl extends SocketImpl protected synchronized void listen(int queuelen) throws IOException { - VMPlainSocketImpl.listen(this, queuelen); + impl.listen(queuelen); } /** @@ -279,7 +332,19 @@ public final class PlainSocketImpl extends SocketImpl protected synchronized void accept(SocketImpl impl) throws IOException { - VMPlainSocketImpl.accept(this, impl); + if (channel == null) + create(true); + if (!(impl instanceof PlainSocketImpl)) + throw new IOException("incompatible SocketImpl: " + + impl.getClass().getName()); + PlainSocketImpl that = (PlainSocketImpl) impl; + VMChannel c = channel.getVMChannel().accept(); + that.impl.getState().setChannelFD(c.getState()); + that.channel = new SocketChannelImpl(c); + that.setOption(SO_REUSEADDR, Boolean.TRUE); + // Reset the inherited timeout. + that.setOption(SO_TIMEOUT, Integer.valueOf(0)); + } /** @@ -292,7 +357,9 @@ public final class PlainSocketImpl extends SocketImpl */ protected int available() throws IOException { - return VMPlainSocketImpl.available(this); + if (channel == null) + throw new SocketException("not connected"); + return channel.getVMChannel().available(); } /** @@ -308,65 +375,16 @@ public final class PlainSocketImpl extends SocketImpl */ protected void close() throws IOException { - VMPlainSocketImpl.close(this); - } - - public void sendUrgentData(int data) - { - VMPlainSocketImpl.sendUrgendData(this, data); - } - - /** - * Internal method used by SocketInputStream for reading data from - * the connection. Reads up to len bytes of data into the buffer - * buf starting at offset bytes into the buffer. - * - * @return the actual number of bytes read or -1 if end of stream. - * - * @throws IOException if an error occurs - */ - protected int read(byte[] buf, int offset, int len) - throws IOException - { - return VMPlainSocketImpl.read(this, buf, offset, len); - } - - /** - * Internal method used by SocketInputStream for reading data from - * the connection. Reads and returns one byte of data. - * - * @return the read byte - * - * @throws IOException if an error occurs - */ - protected int read() - throws IOException - { - return VMPlainSocketImpl.read(this); - } - - /** - * Internal method used by SocketOuputStream for writing data to - * the connection. Writes up to len bytes of data from the buffer - * buf starting at offset bytes into the buffer. - * - * @throws IOException If an error occurs - */ - protected void write(byte[] buf, int offset, int len) - throws IOException - { - VMPlainSocketImpl.write(this, buf, offset, len); + if (impl.getState().isValid()) + impl.close(); + + address = null; + port = -1; } - /** - * Internal method used by SocketOuputStream for writing data to - * the connection. Writes up one byte to the socket. - * - * @throws IOException If an error occurs - */ - protected void write(int data) throws IOException + public void sendUrgentData(int data) throws IOException { - VMPlainSocketImpl.write(this, data); + impl.sendUrgentData(data); } /** @@ -400,6 +418,95 @@ public final class PlainSocketImpl extends SocketImpl return out; } + + public VMChannel getVMChannel() + { + if (channel == null) + return null; + return channel.getVMChannel(); + } + + /* (non-Javadoc) + * @see java.net.SocketImpl#getInetAddress() + */ + protected InetAddress getInetAddress() + { + if (channel == null) + return null; + + try + { + InetSocketAddress remote = channel.getVMChannel().getPeerAddress(); + if (remote == null) + return null; + // To mimic behavior of the RI the InetAddress instance which was + // used to establish the connection is returned instead of one that + // was created by the native layer (this preserves exact hostnames). + if (address != null) + return address; + + return remote.getAddress(); + } + catch (IOException ioe) + { + return null; + } + } + + /* (non-Javadoc) + * @see java.net.SocketImpl#getLocalPort() + */ + protected int getLocalPort() + { + if (channel == null) + return -1; + try + { + InetSocketAddress local = channel.getVMChannel().getLocalAddress(); + if (local == null) + return -1; + return local.getPort(); + } + catch (IOException ioe) + { + return -1; + } + } + + public InetSocketAddress getLocalAddress() + { + if (channel == null) + return null; + try + { + return channel.getVMChannel().getLocalAddress(); + } + catch (IOException ioe) + { + return null; + } + } + + /* (non-Javadoc) + * @see java.net.SocketImpl#getPort() + */ + protected int getPort() + { + if (channel == null) + return -1; + + try + { + InetSocketAddress remote = channel.getVMChannel().getPeerAddress(); + if (remote == null) + return -1; + return remote.getPort(); + } + catch (IOException ioe) + { + return -1; + } + } /** * This class contains an implementation of InputStream for @@ -437,7 +544,23 @@ public final class PlainSocketImpl extends SocketImpl */ public int read() throws IOException { - return PlainSocketImpl.this.read(); + if (channel == null) + throw new SocketException("not connected"); + while (true) + { + try + { + return channel.getVMChannel().read(); + } + catch (SocketTimeoutException ste) + { + throw ste; + } + catch (InterruptedIOException iioe) + { + // Ignore; NIO may throw this; net io shouldn't + } + } } /** @@ -454,12 +577,24 @@ public final class PlainSocketImpl extends SocketImpl */ public int read (byte[] buf, int offset, int len) throws IOException { - int bytes_read = PlainSocketImpl.this.read (buf, offset, len); - - if (bytes_read == 0) - return -1; - - return bytes_read; + if (channel == null) + throw new SocketException("not connected"); + ByteBuffer b = ByteBuffer.wrap(buf, offset, len); + while (true) + { + try + { + return channel.read(b); + } + catch (SocketTimeoutException ste) + { + throw ste; + } + catch (InterruptedIOException iioe) + { + // Ignored; NIO may throw this; net IO not. + } + } } } @@ -495,7 +630,20 @@ public final class PlainSocketImpl extends SocketImpl */ public void write(int b) throws IOException { - PlainSocketImpl.this.write(b); + if (channel == null) + throw new SocketException("not connected"); + while (true) + { + try + { + channel.getVMChannel().write(b); + return; + } + catch (InterruptedIOException iioe) + { + // Ignored. + } + } } /** @@ -510,7 +658,21 @@ public final class PlainSocketImpl extends SocketImpl */ public void write (byte[] buf, int offset, int len) throws IOException { - PlainSocketImpl.this.write (buf, offset, len); + if (channel == null) + throw new SocketException("not connected"); + ByteBuffer b = ByteBuffer.wrap(buf, offset, len); + while (b.hasRemaining()) + { + try + { + if (channel.write(b) == -1) + throw new IOException("channel has been closed"); + } + catch (InterruptedIOException iioe) + { + // Ignored. + } + } } } } diff --git a/libjava/classpath/gnu/java/net/local/LocalSocketImpl.java b/libjava/classpath/gnu/java/net/local/LocalSocketImpl.java index f43305a8027..f49b79947b7 100644 --- a/libjava/classpath/gnu/java/net/local/LocalSocketImpl.java +++ b/libjava/classpath/gnu/java/net/local/LocalSocketImpl.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.java.net.local; +import gnu.classpath.Configuration; + import java.io.FileDescriptor; import java.io.InputStream; import java.io.IOException; @@ -66,7 +68,10 @@ final class LocalSocketImpl extends SocketImpl { try { - System.loadLibrary ("javanet"); + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary ("javanet"); + } } catch (Exception x) { diff --git a/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java b/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java index f5e831c6a01..3956d2aba3a 100644 --- a/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java +++ b/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java @@ -48,6 +48,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Socket; +import java.net.SocketException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.HashMap; @@ -227,10 +228,16 @@ public class HTTPConnection * @param secure whether to use a secure connection * @param connectionTimeout the connection timeout * @param timeout the socket read timeout + * + * @throws IllegalArgumentException if either connectionTimeout or + * timeout less than zero. */ public HTTPConnection(String hostname, int port, boolean secure, int connectionTimeout, int timeout) { + if (connectionTimeout < 0 || timeout < 0) + throw new IllegalArgumentException(); + this.hostname = hostname; this.port = port; this.secure = secure; @@ -471,14 +478,32 @@ public class HTTPConnection { String ttl = SystemProperties.getProperty("classpath.net.http.keepAliveTTL"); - connectionTTL = (ttl != null && ttl.length() > 0) ? - 1000 * Math.max(1, Integer.parseInt(ttl)) : 10000; + connectionTTL = 10000; + if (ttl != null && ttl.length() > 0) + try + { + int v = 1000 * Integer.parseInt(ttl); + if (v >= 0) + connectionTTL = v; + } + catch (NumberFormatException _) + { + // Ignore. + } String mc = SystemProperties.getProperty("http.maxConnections"); - maxConnections = (mc != null && mc.length() > 0) ? - Math.max(Integer.parseInt(mc), 1) : 5; - if (maxConnections < 1) - maxConnections = 1; + maxConnections = 5; + if (mc != null && mc.length() > 0) + try + { + int v = Integer.parseInt(mc); + if (v > 0) + maxConnections = v; + } + catch (NumberFormatException _) + { + // Ignore. + } HTTPConnection c = null; @@ -490,12 +515,23 @@ public class HTTPConnection { c = cc; it.remove(); + // Update the timeout. + if (c.socket != null) + try + { + c.socket.setSoTimeout(timeout); + } + catch (SocketException _) + { + // Ignore. + } break; } } if (c == null) { - c = new HTTPConnection(host, port, secure, connectionTimeout, timeout); + c = new HTTPConnection(host, port, secure, + connectionTimeout, timeout); c.setPool(this); } return c; diff --git a/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java b/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java index cc68a3bac30..6c926b72fb4 100644 --- a/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java +++ b/libjava/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java @@ -75,7 +75,7 @@ public class HTTPURLConnection // These are package private for use in anonymous inner classes. String proxyHostname; - int proxyPort; + int proxyPort = -1; String agent; boolean keepAlive; @@ -99,18 +99,21 @@ public class HTTPURLConnection { super(url); requestHeaders = new Headers(); - proxyHostname = SystemProperties.getProperty("http.proxyHost"); - if (proxyHostname != null && proxyHostname.length() > 0) + String proxy = SystemProperties.getProperty("http.proxyHost"); + if (proxy != null && proxy.length() > 0) { String port = SystemProperties.getProperty("http.proxyPort"); if (port != null && port.length() > 0) { - proxyPort = Integer.parseInt(port); - } - else - { - proxyHostname = null; - proxyPort = -1; + try + { + proxyPort = Integer.parseInt(port); + proxyHostname = proxy; + } + catch (NumberFormatException _) + { + // Ignore. + } } } agent = SystemProperties.getProperty("http.agent"); @@ -354,11 +357,14 @@ public class HTTPURLConnection HTTPConnection connection; if (keepAlive) { - connection = HTTPConnection.Pool.instance.get(host, port, secure, getConnectTimeout(), 0); + connection = HTTPConnection.Pool.instance.get(host, port, secure, + getConnectTimeout(), + getReadTimeout()); } else { - connection = new HTTPConnection(host, port, secure, 0, getConnectTimeout()); + connection = new HTTPConnection(host, port, secure, + getConnectTimeout(), getReadTimeout()); } return connection; } @@ -662,23 +668,23 @@ public class HTTPURLConnection } /** - * Set the connection timeout speed, in milliseconds, or zero if the timeout + * Set the read timeout, in milliseconds, or zero if the timeout * is to be considered infinite. * * Overloaded. * */ - public void setConnectTimeout(int timeout) + public void setReadTimeout(int timeout) throws IllegalArgumentException { - super.setConnectTimeout( timeout ); - if( connection == null ) + super.setReadTimeout(timeout); + if (connection == null) return; try { - connection.getSocket().setSoTimeout( timeout ); + connection.getSocket().setSoTimeout(timeout); } - catch(IOException se) + catch (IOException se) { // Ignore socket exceptions. } diff --git a/libjava/classpath/gnu/java/net/protocol/jar/Handler.java b/libjava/classpath/gnu/java/net/protocol/jar/Handler.java index 316d8cb02be..7c09766a557 100644 --- a/libjava/classpath/gnu/java/net/protocol/jar/Handler.java +++ b/libjava/classpath/gnu/java/net/protocol/jar/Handler.java @@ -1,5 +1,5 @@ /* gnu.java.net.protocol.jar.Handler - jar protocol handler for java.net - Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,6 +45,9 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.StringTokenizer; /** * @author Kresten Krab Thorup (krab@gnu.org) @@ -114,7 +117,7 @@ public class Handler extends URLStreamHandler file = file.substring(0, idx + 1) + url_string; } - setURL (url, "jar", url.getHost(), url.getPort(), file, null); + setURL (url, "jar", url.getHost(), url.getPort(), flat(file), null); return; } @@ -149,6 +152,45 @@ public class Handler extends URLStreamHandler } /** + * Makes the given jar url string 'flat' by removing any . and .. from + * jar file path because ZipFile entries can only handle flat paths. + * Inside jar files '/' is always the path separator. + */ + private static String flat(String url_string) + { + int jar_stop = url_string.indexOf("!/"); + String jar_path = url_string.substring(jar_stop + 1, url_string.length()); + + if (jar_path.indexOf("/.") < 0) + return url_string; + + ArrayList tokens = new ArrayList(); + StringTokenizer st = new StringTokenizer(jar_path, "/"); + while (st.hasMoreTokens()) + { + String token = st.nextToken(); + if (token.equals(".")) + continue; + else if (token.equals("..")) + { + if (! tokens.isEmpty()) + tokens.remove(tokens.size() - 1); + } + else + tokens.add(token); + } + + StringBuffer path = new StringBuffer(url_string.length()); + path.append(url_string.substring(0, jar_stop + 1)); + + Iterator it = tokens.iterator(); + while (it.hasNext()) + path.append('/').append(it.next()); + + return path.toString(); + } + + /** * This method converts a Jar URL object into a String. * * @param url The URL object to convert diff --git a/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java b/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java index 4687bf3f59e..268ee0a8aa7 100644 --- a/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java @@ -55,8 +55,10 @@ import java.nio.channels.spi.SelectorProvider; * @author Michael Koch */ public final class DatagramChannelImpl extends DatagramChannel + implements VMChannelOwner { private NIODatagramSocket socket; + private VMChannel channel; /** * Indicates whether this channel initiated whatever operation @@ -64,6 +66,16 @@ public final class DatagramChannelImpl extends DatagramChannel */ private boolean inChannelOperation; + protected DatagramChannelImpl (SelectorProvider provider) + throws IOException + { + super (provider); + socket = new NIODatagramSocket (new PlainDatagramSocketImpl(), this); + channel = new VMChannel(); + channel.initSocket(false); + configureBlocking(true); + } + /** * Indicates whether our datagram socket should ignore whether * we are set to non-blocking mode. Certain operations on our @@ -85,14 +97,6 @@ public final class DatagramChannelImpl extends DatagramChannel inChannelOperation = b; } - protected DatagramChannelImpl (SelectorProvider provider) - throws IOException - { - super (provider); - socket = new NIODatagramSocket (new PlainDatagramSocketImpl(), this); - configureBlocking(true); - } - public DatagramSocket socket () { return socket; @@ -101,13 +105,13 @@ public final class DatagramChannelImpl extends DatagramChannel protected void implCloseSelectableChannel () throws IOException { - socket.close (); + channel.close(); } protected void implConfigureBlocking (boolean blocking) throws IOException { - socket.setSoTimeout (blocking ? 0 : NIOConstants.DEFAULT_TIMEOUT); + channel.setBlocking(blocking); } public DatagramChannel connect (SocketAddress remote) @@ -116,20 +120,34 @@ public final class DatagramChannelImpl extends DatagramChannel if (!isOpen()) throw new ClosedChannelException(); - socket.connect (remote); + try + { + channel.connect((InetSocketAddress) remote, 0); + } + catch (ClassCastException cce) + { + throw new IOException("unsupported socked address type"); + } return this; } public DatagramChannel disconnect () throws IOException { - socket.disconnect (); + channel.disconnect(); return this; } - public boolean isConnected () + public boolean isConnected() { - return socket.isConnected (); + try + { + return channel.getPeerAddress() != null; + } + catch (IOException ioe) + { + return false; + } } public int write (ByteBuffer src) @@ -138,7 +156,7 @@ public final class DatagramChannelImpl extends DatagramChannel if (!isConnected ()) throw new NotYetConnectedException (); - return send (src, socket.getRemoteSocketAddress()); + return channel.write(src); } public long write (ByteBuffer[] srcs, int offset, int length) @@ -152,13 +170,11 @@ public final class DatagramChannelImpl extends DatagramChannel || (length < 0) || (length > (srcs.length - offset))) throw new IndexOutOfBoundsException(); - - long result = 0; - - for (int index = offset; index < offset + length; index++) - result += write (srcs [index]); - return result; + /* We are connected, meaning we will write these bytes to + * the host we connected to, so we don't need to explicitly + * give the host. */ + return channel.writeGathering(srcs, offset, length); } public int read (ByteBuffer dst) @@ -167,9 +183,7 @@ public final class DatagramChannelImpl extends DatagramChannel if (!isConnected ()) throw new NotYetConnectedException (); - int remaining = dst.remaining(); - receive (dst); - return remaining - dst.remaining(); + return channel.read(dst); } public long read (ByteBuffer[] dsts, int offset, int length) @@ -184,12 +198,8 @@ public final class DatagramChannelImpl extends DatagramChannel || (length > (dsts.length - offset))) throw new IndexOutOfBoundsException(); - long result = 0; - - for (int index = offset; index < offset + length; index++) - result += read (dsts [index]); - - return result; + /* Likewise, see the comment int write above. */ + return channel.readScattering(dsts, offset, length); } public SocketAddress receive (ByteBuffer dst) @@ -200,49 +210,12 @@ public final class DatagramChannelImpl extends DatagramChannel try { - DatagramPacket packet; - int len = dst.remaining(); - - if (dst.hasArray()) - { - packet = new DatagramPacket (dst.array(), - dst.arrayOffset() + dst.position(), - len); - } - else - { - packet = new DatagramPacket (new byte [len], len); - } - - boolean completed = false; - - try - { - begin(); - setInChannelOperation(true); - socket.receive (packet); - completed = true; - } - finally - { - end (completed); - setInChannelOperation(false); - } - - if (!dst.hasArray()) - { - dst.put (packet.getData(), packet.getOffset(), packet.getLength()); - } - else - { - dst.position (dst.position() + packet.getLength()); - } - - return packet.getSocketAddress(); + begin(); + return channel.receive(dst); } - catch (SocketTimeoutException e) + finally { - return null; + end(true); } } @@ -252,46 +225,18 @@ public final class DatagramChannelImpl extends DatagramChannel if (!isOpen()) throw new ClosedChannelException(); - if (target instanceof InetSocketAddress - && ((InetSocketAddress) target).isUnresolved()) - throw new IOException("Target address not resolved"); - - byte[] buffer; - int offset = 0; - int len = src.remaining(); + if (!(target instanceof InetSocketAddress)) + throw new IOException("can only send to inet socket addresses"); - if (src.hasArray()) - { - buffer = src.array(); - offset = src.arrayOffset() + src.position(); - } - else - { - buffer = new byte [len]; - src.get (buffer); - } - - DatagramPacket packet = new DatagramPacket (buffer, offset, len, target); - - boolean completed = false; - try - { - begin(); - setInChannelOperation(true); - socket.send(packet); - completed = true; - } - finally - { - end (completed); - setInChannelOperation(false); - } - - if (src.hasArray()) - { - src.position (src.position() + len); - } + InetSocketAddress dst = (InetSocketAddress) target; + if (dst.isUnresolved()) + throw new IOException("Target address not resolved"); - return len; + return channel.send(src, dst); + } + + public VMChannel getVMChannel() + { + return channel; } } diff --git a/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java b/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java index 698e07e348f..f192e5002d4 100644 --- a/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java +++ b/libjava/classpath/gnu/java/nio/DatagramChannelSelectionKey.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.nio; +import java.io.IOException; import java.nio.channels.spi.AbstractSelectableChannel; /** @@ -52,10 +53,16 @@ public final class DatagramChannelSelectionKey super (channel, selector); } + // FIXME don't use file descriptor integers public int getNativeFD() { - NIODatagramSocket socket = - (NIODatagramSocket) ((DatagramChannelImpl) ch).socket(); - return socket.getPlainDatagramSocketImpl().getNativeFD(); + try + { + return ((DatagramChannelImpl) ch).getVMChannel().getState().getNativeFD(); + } + catch (IOException ioe) + { + throw new IllegalStateException(ioe); + } } } diff --git a/libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java b/libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java new file mode 100644 index 00000000000..11113f3975c --- /dev/null +++ b/libjava/classpath/gnu/java/nio/EpollSelectionKeyImpl.java @@ -0,0 +1,122 @@ +/* EpollSelectionKeyImpl.java -- selection key for the epoll selector. + 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 gnu.java.nio; + +import java.io.IOException; +import java.nio.channels.CancelledKeyException; +import java.nio.channels.SelectableChannel; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.spi.AbstractSelectionKey; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class EpollSelectionKeyImpl extends AbstractSelectionKey +{ + final int fd; + private final EpollSelectorImpl selector; + private final SelectableChannel channel; + int interestOps; + int selectedOps; + int key; + boolean valid; + boolean cancelled; + + EpollSelectionKeyImpl(EpollSelectorImpl selector, + SelectableChannel channel, int fd) + { + this.selector = selector; + this.channel = channel; + this.fd = fd; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#channel() + */ + public SelectableChannel channel() + { + return channel; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#interestOps() + */ + public int interestOps() + { + return interestOps; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#interestOps(int) + */ + public SelectionKey interestOps(int ops) + { + if (cancelled) + throw new CancelledKeyException(); + if ((ops & ~(channel.validOps())) != 0) + throw new IllegalArgumentException("unsupported channel ops"); + try + { + selector.epoll_modify(this, ops); + interestOps = ops; + } + catch (IOException ioe) + { + throw new IllegalArgumentException(ioe); + } + return this; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#readyOps() + */ + public int readyOps() + { + return selectedOps; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#selector() + */ + public Selector selector() + { + return selector; + } +} diff --git a/libjava/classpath/gnu/java/nio/EpollSelectorImpl.java b/libjava/classpath/gnu/java/nio/EpollSelectorImpl.java new file mode 100644 index 00000000000..2b3c9bbb1b6 --- /dev/null +++ b/libjava/classpath/gnu/java/nio/EpollSelectorImpl.java @@ -0,0 +1,399 @@ +/* EpollSelectorImpl.java -- selector implementation using epoll + 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 gnu.java.nio; + +import gnu.classpath.Configuration; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.SelectableChannel; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.spi.AbstractSelectableChannel; +import java.nio.channels.spi.AbstractSelector; +import java.nio.channels.spi.SelectorProvider; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +/** + * An implementation of {@link Selector} that uses the epoll event + * notification mechanism on GNU/Linux. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class EpollSelectorImpl extends AbstractSelector +{ + // XXX is this reasonable? Does it matter? + private static final int DEFAULT_EPOLL_SIZE = 128; + private static final int sizeof_struct_epoll_event; + + private static final int OP_ACCEPT = SelectionKey.OP_ACCEPT; + private static final int OP_CONNECT = SelectionKey.OP_CONNECT; + private static final int OP_READ = SelectionKey.OP_READ; + private static final int OP_WRITE = SelectionKey.OP_WRITE; + + /** our epoll file descriptor. */ + private int epoll_fd; + + private final HashMap keys; + private Set selectedKeys; + private Thread waitingThread; + private ByteBuffer events; + + private static final int INITIAL_CAPACITY; + private static final int MAX_DOUBLING_CAPACITY; + private static final int CAPACITY_INCREMENT; + + static + { + if (Configuration.INIT_LOAD_LIBRARY) + System.loadLibrary("javanio"); + + if (epoll_supported()) + sizeof_struct_epoll_event = sizeof_struct(); + else + sizeof_struct_epoll_event = -1; + + INITIAL_CAPACITY = 64 * sizeof_struct_epoll_event; + MAX_DOUBLING_CAPACITY = 1024 * sizeof_struct_epoll_event; + CAPACITY_INCREMENT = 128 * sizeof_struct_epoll_event; + } + + public EpollSelectorImpl(SelectorProvider provider) + throws IOException + { + super(provider); + epoll_fd = epoll_create(DEFAULT_EPOLL_SIZE); + keys = new HashMap(); + selectedKeys = null; + events = ByteBuffer.allocateDirect(INITIAL_CAPACITY); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#keys() + */ + public Set keys() + { + return new HashSet(keys.values()); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#select() + */ + public int select() throws IOException + { + return doSelect(-1); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#select(long) + */ + public int select(long timeout) throws IOException + { + if (timeout > Integer.MAX_VALUE) + throw new IllegalArgumentException("timeout is too large"); + if (timeout < 0) + throw new IllegalArgumentException("invalid timeout"); + return doSelect((int) timeout); + } + + private int doSelect(int timeout) throws IOException + { + synchronized (keys) + { + Set cancelledKeys = cancelledKeys(); + synchronized (cancelledKeys) + { + for (Iterator it = cancelledKeys.iterator(); it.hasNext(); ) + { + EpollSelectionKeyImpl key = (EpollSelectionKeyImpl) it.next(); + epoll_delete(epoll_fd, key.fd); + key.valid = false; + keys.remove(Integer.valueOf(key.fd)); + it.remove(); + deregister(key); + } + + // Clear out closed channels. The fds are removed from the epoll + // fd when closed, so there is no need to remove them manually. + for (Iterator it = keys.values().iterator(); it.hasNext(); ) + { + EpollSelectionKeyImpl key = (EpollSelectionKeyImpl) it.next(); + SelectableChannel ch = key.channel(); + if (ch instanceof VMChannelOwner) + { + if (!((VMChannelOwner) ch).getVMChannel().getState().isValid()) + it.remove(); + } + } + + // Don't bother if we have nothing to select. + if (keys.isEmpty()) + return 0; + + int ret; + try + { + begin(); + waitingThread = Thread.currentThread(); + ret = epoll_wait(epoll_fd, events, keys.size(), timeout); + } + finally + { + Thread.interrupted(); + waitingThread = null; + end(); + } + + HashSet s = new HashSet(ret); + for (int i = 0; i < ret; i++) + { + events.position(i * sizeof_struct_epoll_event); + ByteBuffer b = events.slice(); + int fd = selected_fd(b); + EpollSelectionKeyImpl key + = (EpollSelectionKeyImpl) keys.get(Integer.valueOf(fd)); + if (key == null) + throw new IOException("fd was selected, but no key found"); + key.selectedOps = selected_ops(b) & key.interestOps; + s.add(key); + } + + reallocateBuffer(); + + selectedKeys = s; + return ret; + } + } + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#selectedKeys() + */ + public Set selectedKeys() + { + if (selectedKeys == null) + return Collections.EMPTY_SET; + return selectedKeys; + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#selectNow() + */ + public int selectNow() throws IOException + { + return doSelect(0); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#wakeup() + */ + public Selector wakeup() + { + try + { + waitingThread.interrupt(); + } + catch (NullPointerException npe) + { + // Ignored, thrown if we are not in a blocking op. + } + return this; + } + + /* (non-Javadoc) + * @see java.nio.channels.spi.AbstractSelector#implCloseSelector() + */ + protected void implCloseSelector() throws IOException + { + VMChannel.close(epoll_fd); + } + + /* (non-Javadoc) + * @see java.nio.channels.spi.AbstractSelector#register(java.nio.channels.spi.AbstractSelectableChannel, int, java.lang.Object) + */ + protected SelectionKey register(AbstractSelectableChannel ch, int ops, Object att) + { + if (!(ch instanceof VMChannelOwner)) + throw new IllegalArgumentException("unsupported channel type"); + + VMChannel channel = ((VMChannelOwner) ch).getVMChannel(); + try + { + int native_fd = channel.getState().getNativeFD(); + synchronized (keys) + { + if (keys.containsKey(Integer.valueOf(native_fd))) + throw new IllegalArgumentException("channel already registered"); + EpollSelectionKeyImpl result = + new EpollSelectionKeyImpl(this, ch, native_fd); + if ((ops & ~(ch.validOps())) != 0) + throw new IllegalArgumentException("invalid ops for channel"); + result.interestOps = ops; + result.selectedOps = 0; + result.valid = true; + result.attach(att); + result.key = System.identityHashCode(result); + epoll_add(epoll_fd, result.fd, ops); + keys.put(Integer.valueOf(native_fd), result); + reallocateBuffer(); + return result; + } + } + catch (IOException ioe) + { + throw new IllegalArgumentException(ioe); + } + } + + private void reallocateBuffer() + { + // Ensure we have enough space for all potential events that may be + // returned. + if (events.capacity() < keys.size() * sizeof_struct_epoll_event) + { + int cap = events.capacity(); + if (cap < MAX_DOUBLING_CAPACITY) + cap <<= 1; + else + cap += CAPACITY_INCREMENT; + events = ByteBuffer.allocateDirect(cap); + } + // Ensure that the events buffer is not too large, given the number of + // events registered. + else if (events.capacity() > keys.size() * sizeof_struct_epoll_event * 2 + 1 + && events.capacity() > INITIAL_CAPACITY) + { + int cap = events.capacity() >>> 1; + events = ByteBuffer.allocateDirect(cap); + } + } + + void epoll_modify(EpollSelectionKeyImpl key, int ops) throws IOException + { + epoll_modify(epoll_fd, key.fd, ops); + } + + /** + * Tell if epoll is supported by this system, and support was compiled in. + * + * @return True if this system supports event notification with epoll. + */ + public static native boolean epoll_supported(); + + + /** + * Returns the size of `struct epoll_event'. + * + * @return The size of `struct epoll_event'. + */ + private static native int sizeof_struct(); + + + /** + * Open a new epoll file descriptor. + * + * @param size The size hint for the new epoll descriptor. + * @return The new file descriptor integer. + * @throws IOException If allocating a new epoll descriptor fails. + */ + private static native int epoll_create(int size) throws IOException; + + /** + * Add a file descriptor to this selector. + * + * @param efd The epoll file descriptor. + * @param fd The file descriptor to add (or modify). + * @param ops The interest opts. + */ + private static native void epoll_add(int efd, int fd, int ops) + throws IOException; + + /** + * Modify the interest ops of the key selecting for the given FD. + * + * @param efd The epoll file descriptor. + * @param fd The file descriptor to modify. + * @param ops The ops. + * @throws IOException + */ + private static native void epoll_modify(int efd, int fd, int ops) + throws IOException; + + /** + * Remove a file descriptor from this selector. + * + * @param efd The epoll file descriptor. + * @param fd The file descriptor. + * @throws IOException + */ + private static native void epoll_delete(int efd, int fd) throws IOException; + + /** + * Select events. + * + * @param efd The epoll file descriptor. + * @param state The buffer to hold selected events. + * @param n The number of events that may be put in `state'. + * @param timeout The timeout. + * @return The number of events selected. + * @throws IOException + */ + private static native int epoll_wait(int efd, ByteBuffer state, int n, int timeout) + throws IOException; + + /** + * Fetch the fd value from a selected struct epoll_event. + * + * @param struct The direct buffer holding the struct. + * @return The fd value. + */ + private static native int selected_fd(ByteBuffer struct); + + /** + * Fetch the enabled operations from a selected struct epoll_event. + * + * @param struct The direct buffer holding the struct. + * @return The selected operations. + */ + private static native int selected_ops(ByteBuffer struct); +} diff --git a/libjava/classpath/gnu/java/nio/FileChannelImpl.java b/libjava/classpath/gnu/java/nio/FileChannelImpl.java new file mode 100644 index 00000000000..41912405078 --- /dev/null +++ b/libjava/classpath/gnu/java/nio/FileChannelImpl.java @@ -0,0 +1,572 @@ +/* FileChannelImpl.java -- + Copyright (C) 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 gnu.java.nio; + +import gnu.classpath.Configuration; +import gnu.java.nio.FileLockImpl; +import gnu.java.nio.VMChannel; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.MappedByteBuffer; +import java.nio.channels.ClosedChannelException; +import java.nio.channels.FileChannel; +import java.nio.channels.FileLock; +import java.nio.channels.NonReadableChannelException; +import java.nio.channels.NonWritableChannelException; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; + +/** + * This file is not user visible ! + * But alas, Java does not have a concept of friendly packages + * so this class is public. + * Instances of this class are created by invoking getChannel + * Upon a Input/Output/RandomAccessFile object. + */ +public final class FileChannelImpl extends FileChannel +{ + // These are mode values for open(). + public static final int READ = 1; + public static final int WRITE = 2; + public static final int APPEND = 4; + + // EXCL is used only when making a temp file. + public static final int EXCL = 8; + public static final int SYNC = 16; + public static final int DSYNC = 32; + + public static final FileChannelImpl in; + public static final FileChannelImpl out; + public static final FileChannelImpl err; + + //private static native void init(); + + static + { + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("javanio"); + } + + //init(); + + FileChannelImpl ch = null; + try + { + ch = new FileChannelImpl(VMChannel.getStdin(), READ); + } + catch (IOException ioe) + { + throw new Error(ioe); + } + in = ch; + + ch = null; + try + { + ch = new FileChannelImpl(VMChannel.getStdout(), WRITE); + } + catch (IOException ioe) + { + throw new Error(ioe); + } + out = ch; + + ch = null; + try + { + ch = new FileChannelImpl(VMChannel.getStderr(), WRITE); + } + catch (IOException ioe) + { + throw new Error(ioe); + } + err = ch; + } + + /** + * This is the actual native file descriptor value + */ + private VMChannel ch; + + private int mode; + + final String description; + + /* Open a file. MODE is a combination of the above mode flags. */ + /* This is a static factory method, so that VM implementors can decide + * substitute subclasses of FileChannelImpl. */ + public static FileChannelImpl create(File file, int mode) + throws IOException + { + return new FileChannelImpl(file, mode); + } + + private FileChannelImpl(File file, int mode) + throws IOException + { + String path = file.getPath(); + description = path; + this.mode = mode; + this.ch = new VMChannel(); + ch.openFile(path, mode); + + // First open the file and then check if it is a a directory + // to avoid race condition. + if (file.isDirectory()) + { + try + { + close(); + } + catch (IOException e) + { + /* ignore it */ + } + + throw new FileNotFoundException(description + " is a directory"); + } + } + + /** + * Constructor for default channels in, out and err. + * + * Used by init() (native code). + * + * @param fd the file descriptor (0, 1, 2 for stdin, stdout, stderr). + * + * @param mode READ or WRITE + */ + FileChannelImpl (VMChannel ch, int mode) + { + this.mode = mode; + this.description = "descriptor(" + ch.getState() + ")"; + this.ch = ch; + } + + public int available() throws IOException + { + return ch.available(); + } + + private long implPosition() throws IOException + { + return ch.position(); + } + + private void seek(long newPosition) throws IOException + { + ch.seek(newPosition); + } + + private void implTruncate(long size) throws IOException + { + ch.truncate(size); + } + + public void unlock(long pos, long len) throws IOException + { + ch.unlock(pos, len); + } + + public long size () throws IOException + { + return ch.size(); + } + + protected void implCloseChannel() throws IOException + { + ch.close(); + } + + /** + * Makes sure the Channel is properly closed. + */ + protected void finalize() throws IOException + { + if (ch.getState().isValid()) + close(); + } + + public int read (ByteBuffer dst) throws IOException + { + return ch.read(dst); + } + + public int read (ByteBuffer dst, long position) + throws IOException + { + if (position < 0) + throw new IllegalArgumentException ("position: " + position); + long oldPosition = implPosition (); + position (position); + int result = read(dst); + position (oldPosition); + + return result; + } + + public int read() throws IOException + { + return ch.read(); + } + + public long read (ByteBuffer[] dsts, int offset, int length) + throws IOException + { + return ch.readScattering(dsts, offset, length); + } + + public int write (ByteBuffer src) throws IOException + { + return ch.write(src); + } + + public int write (ByteBuffer src, long position) + throws IOException + { + if (position < 0) + throw new IllegalArgumentException ("position: " + position); + + if (!isOpen ()) + throw new ClosedChannelException (); + + if ((mode & WRITE) == 0) + throw new NonWritableChannelException (); + + int result; + long oldPosition; + + oldPosition = implPosition (); + seek (position); + result = write(src); + seek (oldPosition); + + return result; + } + + public void write (int b) throws IOException + { + ch.write(b); + } + + public long write(ByteBuffer[] srcs, int offset, int length) + throws IOException + { + return ch.writeGathering(srcs, offset, length); + } + + public MappedByteBuffer map (FileChannel.MapMode mode, + long position, long size) + throws IOException + { + char nmode = 0; + if (mode == MapMode.READ_ONLY) + { + nmode = 'r'; + if ((this.mode & READ) == 0) + throw new NonReadableChannelException(); + } + else if (mode == MapMode.READ_WRITE || mode == MapMode.PRIVATE) + { + nmode = mode == MapMode.READ_WRITE ? '+' : 'c'; + if ((this.mode & WRITE) != WRITE) + throw new NonWritableChannelException(); + if ((this.mode & READ) != READ) + throw new NonReadableChannelException(); + } + else + throw new IllegalArgumentException ("mode: " + mode); + + if (position < 0 || size < 0 || size > Integer.MAX_VALUE) + throw new IllegalArgumentException ("position: " + position + + ", size: " + size); + return ch.map(nmode, position, (int) size); + } + + /** + * msync with the disk + */ + public void force (boolean metaData) throws IOException + { + if (!isOpen ()) + throw new ClosedChannelException (); + + ch.flush(metaData); + } + + // like transferTo, but with a count of less than 2Gbytes + private int smallTransferTo (long position, int count, + WritableByteChannel target) + throws IOException + { + ByteBuffer buffer; + try + { + // Try to use a mapped buffer if we can. If this fails for + // any reason we'll fall back to using a ByteBuffer. + buffer = map (MapMode.READ_ONLY, position, count); + } + catch (IOException e) + { + buffer = ByteBuffer.allocate (count); + read (buffer, position); + buffer.flip(); + } + + return target.write (buffer); + } + + public long transferTo (long position, long count, + WritableByteChannel target) + throws IOException + { + if (position < 0 + || count < 0) + throw new IllegalArgumentException ("position: " + position + + ", count: " + count); + + if (!isOpen ()) + throw new ClosedChannelException (); + + if ((mode & READ) == 0) + throw new NonReadableChannelException (); + + final int pageSize = 65536; + long total = 0; + + while (count > 0) + { + int transferred + = smallTransferTo (position, (int)Math.min (count, pageSize), + target); + if (transferred < 0) + break; + total += transferred; + position += transferred; + count -= transferred; + } + + return total; + } + + // like transferFrom, but with a count of less than 2Gbytes + private int smallTransferFrom (ReadableByteChannel src, long position, + int count) + throws IOException + { + ByteBuffer buffer = null; + + if (src instanceof FileChannel) + { + try + { + // Try to use a mapped buffer if we can. If this fails + // for any reason we'll fall back to using a ByteBuffer. + buffer = ((FileChannel)src).map (MapMode.READ_ONLY, position, + count); + } + catch (IOException e) + { + } + } + + if (buffer == null) + { + buffer = ByteBuffer.allocate ((int) count); + src.read (buffer); + buffer.flip(); + } + + return write (buffer, position); + } + + public long transferFrom (ReadableByteChannel src, long position, + long count) + throws IOException + { + if (position < 0 + || count < 0) + throw new IllegalArgumentException ("position: " + position + + ", count: " + count); + + if (!isOpen ()) + throw new ClosedChannelException (); + + if ((mode & WRITE) == 0) + throw new NonWritableChannelException (); + + final int pageSize = 65536; + long total = 0; + + while (count > 0) + { + int transferred = smallTransferFrom (src, position, + (int)Math.min (count, pageSize)); + if (transferred < 0) + break; + total += transferred; + position += transferred; + count -= transferred; + } + + return total; + } + + // Shared sanity checks between lock and tryLock methods. + private void lockCheck(long position, long size, boolean shared) + throws IOException + { + if (position < 0 + || size < 0) + throw new IllegalArgumentException ("position: " + position + + ", size: " + size); + + if (!isOpen ()) + throw new ClosedChannelException(); + + if (shared && ((mode & READ) == 0)) + throw new NonReadableChannelException(); + + if (!shared && ((mode & WRITE) == 0)) + throw new NonWritableChannelException(); + } + + public FileLock tryLock (long position, long size, boolean shared) + throws IOException + { + lockCheck(position, size, shared); + + boolean completed = false; + try + { + begin(); + boolean lockable = ch.lock(position, size, shared, false); + completed = true; + return (lockable + ? new FileLockImpl(this, position, size, shared) + : null); + } + finally + { + end(completed); + } + } + + public FileLock lock (long position, long size, boolean shared) + throws IOException + { + lockCheck(position, size, shared); + + boolean completed = false; + try + { + boolean lockable = ch.lock(position, size, shared, true); + completed = true; + return (lockable + ? new FileLockImpl(this, position, size, shared) + : null); + } + finally + { + end(completed); + } + } + + public long position () + throws IOException + { + if (!isOpen ()) + throw new ClosedChannelException (); + + return implPosition (); + } + + public FileChannel position (long newPosition) + throws IOException + { + if (newPosition < 0) + throw new IllegalArgumentException ("newPosition: " + newPosition); + + if (!isOpen ()) + throw new ClosedChannelException (); + + // FIXME note semantics if seeking beyond eof. + // We should seek lazily - only on a write. + seek (newPosition); + return this; + } + + public FileChannel truncate (long size) + throws IOException + { + if (size < 0) + throw new IllegalArgumentException ("size: " + size); + + if (!isOpen ()) + throw new ClosedChannelException (); + + if ((mode & WRITE) == 0) + throw new NonWritableChannelException (); + + if (size < size ()) + implTruncate (size); + + return this; + } + + public String toString() + { + return (super.toString() + + "[ fd: " + ch.getState() + + "; mode: " + Integer.toOctalString(mode) + + "; " + description + " ]"); + } + + /** + * @return The native file descriptor. + * / + public int getNativeFD() + { + return fd; + }*/ +} diff --git a/libjava/classpath/gnu/java/nio/FileLockImpl.java b/libjava/classpath/gnu/java/nio/FileLockImpl.java index 673ca2522df..768906ce973 100644 --- a/libjava/classpath/gnu/java/nio/FileLockImpl.java +++ b/libjava/classpath/gnu/java/nio/FileLockImpl.java @@ -38,8 +38,6 @@ exception statement from your version. */ package gnu.java.nio; -import gnu.java.nio.channels.FileChannelImpl; - import java.io.IOException; import java.nio.channels.FileLock; diff --git a/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java b/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java new file mode 100644 index 00000000000..2f93c50cc19 --- /dev/null +++ b/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java @@ -0,0 +1,189 @@ +/* KqueueSelectionKeyImpl.java -- selection key for kqueue/kevent. + 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 gnu.java.nio; + + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.SelectableChannel; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.spi.AbstractSelectionKey; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class KqueueSelectionKeyImpl extends AbstractSelectionKey +{ + int interestOps; + int readyOps; + int activeOps = 0; + int key; + int fd; + + /** The selector we were created for. */ + private final KqueueSelectorImpl selector; + + /** The channel we are attached to. */ + private final SelectableChannel channel; + + private final VMChannelOwner natChannel; + + public KqueueSelectionKeyImpl(KqueueSelectorImpl selector, + SelectableChannel channel) + { + this.selector = selector; + this.channel = channel; + natChannel = (VMChannelOwner) channel; + interestOps = 0; + readyOps = 0; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#channel() + */ + //@Override + public SelectableChannel channel() + { + return channel; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#interestOps() + */ + //@Override + public int interestOps() + { + return interestOps; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#interestOps(int) + */ + //@Override + public SelectionKey interestOps(int ops) + { + if (!isValid()) + throw new IllegalStateException("key is invalid"); + if ((ops & ~channel.validOps()) != 0) + throw new IllegalArgumentException("channel does not support all operations"); + + selector.setInterestOps(this, ops); + return this; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#readyOps() + */ + //@Override + public int readyOps() + { + return readyOps; + } + + /* (non-Javadoc) + * @see java.nio.channels.SelectionKey#selector() + */ + //@Override + public Selector selector() + { + return selector; + } + + public String toString() + { + if (!isValid()) + return super.toString() + " [ fd: " + fd + " <> ]"; + return super.toString() + " [ fd: " + fd + " interest ops: {" + + ((interestOps & OP_ACCEPT) != 0 ? " OP_ACCEPT" : "") + + ((interestOps & OP_CONNECT) != 0 ? " OP_CONNECT" : "") + + ((interestOps & OP_READ) != 0 ? " OP_READ" : "") + + ((interestOps & OP_WRITE) != 0 ? " OP_WRITE" : "") + + " }; ready ops: {" + + ((readyOps & OP_ACCEPT) != 0 ? " OP_ACCEPT" : "") + + ((readyOps & OP_CONNECT) != 0 ? " OP_CONNECT" : "") + + ((readyOps & OP_READ) != 0 ? " OP_READ" : "") + + ((readyOps & OP_WRITE) != 0 ? " OP_WRITE" : "") + + " } ]"; + } + + public int hashCode() + { + return fd; + } + + public boolean equals(Object o) + { + if (!(o instanceof KqueueSelectionKeyImpl)) + return false; + KqueueSelectionKeyImpl that = (KqueueSelectionKeyImpl) o; + return that.fd == this.fd && that.channel.equals(this.channel); + } + + + boolean isReadActive() + { + return (activeOps & (OP_READ | OP_ACCEPT)) != 0; + } + + boolean isReadInterested() + { + return (interestOps & (OP_READ | OP_ACCEPT)) != 0; + } + + boolean isWriteActive() + { + return (activeOps & (OP_WRITE | OP_CONNECT)) != 0; + } + + boolean isWriteInterested() + { + return (interestOps & (OP_WRITE | OP_CONNECT)) != 0; + } + + boolean needCommitRead() + { + return isReadActive() == (!isReadInterested()); + } + + boolean needCommitWrite() + { + return isWriteActive() == (!isWriteInterested()); + } +} diff --git a/libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java b/libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java new file mode 100644 index 00000000000..34ca1dc596d --- /dev/null +++ b/libjava/classpath/gnu/java/nio/KqueueSelectorImpl.java @@ -0,0 +1,527 @@ +/* KqueueSelectorImpl.java -- Selector for systems with kqueue event notification. + 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 gnu.java.nio; + + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.channels.ClosedSelectorException; +import java.nio.channels.SelectableChannel; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.spi.AbstractSelectableChannel; +import java.nio.channels.spi.AbstractSelector; +import java.nio.channels.spi.SelectorProvider; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +/** + * A {@link Selector} implementation that uses the kqueue + * event notification facility. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class KqueueSelectorImpl extends AbstractSelector +{ + // Prepended underscore to field name to make it distinct + // from the method with the similar name. + private static final int _sizeof_struct_kevent; + + private static final int MAX_DOUBLING_CAPACITY = 16384; + private static final int CAP_INCREMENT = 1024; + private static final int INITIAL_CAPACITY; + + static + { + try + { + System.loadLibrary("javanio"); + } + catch (Exception x) + { + x.printStackTrace(); + } + + if (kqueue_supported ()) + _sizeof_struct_kevent = sizeof_struct_kevent(); + else + _sizeof_struct_kevent = -1; + INITIAL_CAPACITY = 16 * _sizeof_struct_kevent; + } + + /** + * Tell if kqueue-based selectors are supported on this system. + * + * @return True if this system has kqueue support, and support for it was + * compiled in to Classpath. + */ + public static native boolean kqueue_supported(); + + /* Our native file descriptor. */ + private int kq; + + private HashMap/**/ keys; + private HashSet/**/ selected; + private Thread blockedThread; + private ByteBuffer events; + + private static final int OP_ACCEPT = SelectionKey.OP_ACCEPT; + private static final int OP_CONNECT = SelectionKey.OP_CONNECT; + private static final int OP_READ = SelectionKey.OP_READ; + private static final int OP_WRITE = SelectionKey.OP_WRITE; + + public KqueueSelectorImpl(SelectorProvider provider) throws IOException + { + super(provider); + kq = implOpen(); + keys = new HashMap/**/(); + events = ByteBuffer.allocateDirect(INITIAL_CAPACITY); + } + + protected void implCloseSelector() throws IOException + { + implClose(kq); + kq = -1; + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#keys() + */ + public Set keys() + { + if (!isOpen()) + throw new ClosedSelectorException(); + + return new HashSet(keys.values()); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#select() + */ + public int select() throws IOException + { + return doSelect(-1); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#select(long) + */ + public int select(long timeout) throws IOException + { + if (timeout == 0) + timeout = -1; + return doSelect(timeout); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#selectedKeys() + */ + public Set selectedKeys() + { + if (!isOpen()) + throw new ClosedSelectorException(); + + return selected; + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#selectNow() + */ + public int selectNow() throws IOException + { + return doSelect(0); + } + + /* (non-Javadoc) + * @see java.nio.channels.Selector#wakeup() + */ + public Selector wakeup() + { + if (blockedThread != null) + blockedThread.interrupt(); + return this; + } + + public String toString() + { + return super.toString() + " [ fd: " + kq + " ]"; + } + + public boolean equals(Object o) + { + if (!(o instanceof KqueueSelectorImpl)) + return false; + + return ((KqueueSelectorImpl) o).kq == kq; + } + + int doSelect(long timeout) throws IOException + { + Set cancelled = cancelledKeys(); + synchronized (cancelled) + { + synchronized (keys) + { + for (Iterator it = cancelled.iterator(); it.hasNext(); ) + { + KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) it.next(); + key.interestOps = 0; + } + + int events_size = (2 * _sizeof_struct_kevent) * keys.size(); + int num_events = 0; + + for (Iterator it = keys.entrySet().iterator(); it.hasNext(); ) + { + Map.Entry e = (Map.Entry) it.next(); + KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) e.getValue(); + + SelectableChannel ch = key.channel(); + if (ch instanceof VMChannelOwner) + { + if (!((VMChannelOwner) ch).getVMChannel().getState().isValid()) + { + // closed channel; removed from kqueue automatically. + it.remove(); + continue; + } + } + + // If this key is registering a read filter, add it to the buffer. + if (key.needCommitRead()) + { + kevent_set(events, num_events, key.fd, + key.interestOps & (OP_READ | OP_ACCEPT), + key.activeOps & (OP_READ | OP_ACCEPT), key.key); + num_events++; + } + + // If this key is registering a write filter, add it to the buffer. + if (key.needCommitWrite()) + { + kevent_set(events, num_events, key.fd, + key.interestOps & (OP_WRITE | OP_CONNECT), + key.activeOps & (OP_WRITE | OP_CONNECT), key.key); + num_events++; + } + } + events.rewind().limit(events.capacity()); + + //System.out.println("dump of keys to select:"); + //dump_selection_keys(events.duplicate()); + + int n = 0; + try + { + //System.out.println("[" + kq + "] kevent enter selecting from " + keys.size()); + begin(); + blockedThread = Thread.currentThread(); + if (blockedThread.isInterrupted()) + timeout = 0; + n = kevent(kq, events, num_events, + events.capacity() / _sizeof_struct_kevent, timeout); + } + finally + { + end(); + blockedThread = null; + Thread.interrupted(); + //System.out.println("[" + kq + "kevent exit selected " + n); + } + + //System.out.println("dump of keys selected:"); + //dump_selection_keys((ByteBuffer) events.duplicate().limit(n * _sizeof_struct_kevent)); + + // Commit the operations we've just added in the call to kevent. + for (Iterator it = keys.values().iterator(); it.hasNext(); ) + { + KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) it.next(); + key.activeOps = key.interestOps; + } + + selected = new HashSet/**/(n); + int x = 0; + for (int i = 0; i < n; i++) + { + events.position(x).limit(x + _sizeof_struct_kevent); + x += _sizeof_struct_kevent; + int y = fetch_key(events.slice()); + KqueueSelectionKeyImpl key = + (KqueueSelectionKeyImpl) keys.get(new Integer(y)); + + if (key == null) + { + System.out.println("WARNING! no key found for selected key " + y); + continue; + } + // Keys that have been cancelled may be returned here; don't + // add them to the selected set. + if (!key.isValid()) + continue; + key.readyOps = ready_ops(events.slice(), key.interestOps); + selected.add(key); + } + + // Finally, remove the cancelled keys. + for (Iterator it = cancelled.iterator(); it.hasNext(); ) + { + KqueueSelectionKeyImpl key = (KqueueSelectionKeyImpl) it.next(); + keys.remove(new Integer(key.key)); + deregister(key); + it.remove(); + } + + reallocateBuffer(); + + return selected.size(); + } + } + } + + protected SelectionKey register(AbstractSelectableChannel channel, + int interestOps, + Object attachment) + { + int native_fd = -1; + try + { + if (channel instanceof VMChannelOwner) + native_fd = ((VMChannelOwner) channel).getVMChannel() + .getState().getNativeFD(); + else + throw new IllegalArgumentException("cannot handle channel type " + + channel.getClass().getName()); + } + catch (IOException ioe) + { + throw new IllegalArgumentException("channel is closed or invalid"); + } + + KqueueSelectionKeyImpl result = new KqueueSelectionKeyImpl(this, channel); + result.interestOps = interestOps; + result.attach(attachment); + result.fd = native_fd; + result.key = System.identityHashCode(result); + synchronized (keys) + { + while (keys.containsKey(new Integer(result.key))) + result.key++; + keys.put(new Integer(result.key), result); + reallocateBuffer(); + } + return result; + } + + void setInterestOps(KqueueSelectionKeyImpl key, int ops) + { + synchronized (keys) + { + key.interestOps = ops; + } + } + + /** + * Reallocate the events buffer. This is the destination buffer for + * events returned by kevent. This method will: + * + * * Grow the buffer if there is insufficent space for all registered + * events. + * * Shrink the buffer if it is more than twice the size needed. + * + */ + private void reallocateBuffer() + { + synchronized (keys) + { + if (events.capacity() < (2 * _sizeof_struct_kevent) * keys.size()) + { + int cap = events.capacity(); + if (cap >= MAX_DOUBLING_CAPACITY) + cap += CAP_INCREMENT; + else + cap = cap << 1; + + events = ByteBuffer.allocateDirect(cap); + } + else if (events.capacity() > 4 * (_sizeof_struct_kevent) * keys.size() + 1 + && events.capacity() > INITIAL_CAPACITY) + { + int cap = events.capacity(); + cap = cap >>> 1; + events = ByteBuffer.allocateDirect(cap); + } + } + } + + //synchronized void updateOps(KqueueSelectionKeyImpl key, int interestOps) + //{ + // updateOps(key, interestOps, 0, false); + //} + + /*void updateOps(KqueueSelectionKeyImpl key, int interestOps, + int activeOps, int fd) + { + //System.out.println(">> updating kqueue selection key:"); + //dump_selection_keys(key.nstate.duplicate()); + //System.out.println("<<"); + synchronized (keys) + { + kevent_set(key.nstate, fd, interestOps, activeOps, key.key); + } + //System.out.println(">> updated kqueue selection key:"); + //dump_selection_keys(key.nstate.duplicate()); + //System.out.println("<<"); + }*/ + + private void dump_selection_keys(ByteBuffer keys) + { + // WARNING! This method is not guaranteed to be portable! This works + // on darwin/x86, but the sizeof and offsetof these fields may be + // different on other platforms! + int i = 0; + keys.order(ByteOrder.nativeOrder()); + while (keys.hasRemaining()) + { + System.out.println("struct kevent { ident: " + + Integer.toString(keys.getInt()) + + " filter: " + + Integer.toHexString(keys.getShort() & 0xFFFF) + + " flags: " + + Integer.toHexString(keys.getShort() & 0xFFFF) + + " fflags: " + + Integer.toHexString(keys.getInt()) + + " data: " + + Integer.toHexString(keys.getInt()) + + " udata: " + + Integer.toHexString(keys.getInt()) + + " }"); + } + } + + /** + * Return the size of a struct kevent on this system. + * + * @return The size of struct kevent. + */ + private static native int sizeof_struct_kevent(); + + /** + * Opens a kqueue descriptor. + * + * @return The new kqueue descriptor. + * @throws IOException If opening fails. + */ + private static native int implOpen() throws IOException; + + /** + * Closes the kqueue file descriptor. + * + * @param kq The kqueue file descriptor. + * @throws IOException + */ + private static native void implClose(int kq) throws IOException; + + /** + * Initialize the specified native state for the given interest ops. + * + * @param nstate The native state structures; in this buffer should be + * the struct kevents created for a key. + * @param fd The file descriptor. If 0, the native FD is unmodified. + * @param interestOps The operations to enable. + * @param key A unique key that will reference the associated key later. + * @param delete Set to true if this event should be deleted from the + * kqueue (if false, this event is added/updated). + */ + private static native void kevent_set(ByteBuffer nstate, int i, int fd, + int interestOps, int activeOps, int key); + + /** + * Poll for events. The source events are stored in events, + * which is also where polled events will be placed. + * + * @param events The events to poll. This buffer is also the destination + * for events read from the queue. + * @param nevents The number of events to poll (that is, the number of + * events in the events buffer). + * @param nout The maximum number of events that may be returned. + * @param timeout The timeout. A timeout of -1 returns immediately; a timeout + * of 0 waits indefinitely. + * @return The number of events read. + */ + private static native int kevent(int kq, ByteBuffer events, int nevents, + int nout, long timeout); + + /** + * Fetch a polled key from a native state buffer. For each kevent key we + * create, we put the native state info (one or more struct + * kevents) in that key's {@link KqueueSelectionKeyImpl#nstate} + * buffer, and place the pointer of the key in the udata field + * of that structure. This method fetches that pointer from the given + * buffer (assumed to be a struct kqueue) and returns it. + * + * @param nstate The buffer containing the struct kqueue to read. + * @return The key object. + */ + private static native int fetch_key(ByteBuffer nstate); + + /** + * Fetch the ready ops of the associated native state. That is, this + * inspects the first argument as a struct kevent, looking + * at its operation (the input is assumed to have been returned via a + * previous call to kevent), and translating that to the + * appropriate Java bit set, based on the second argument. + * + * @param nstate The native state. + * @param interestOps The enabled operations for the key. + * @return The bit set representing the ready operations. + */ + private static native int ready_ops(ByteBuffer nstate, int interestOps); + + /** + * Check if kevent returned EV_EOF for a selection key. + * + * @param nstate The native state. + * @return True if the kevent call returned EOF. + */ + private static native boolean check_eof(ByteBuffer nstate); +} diff --git a/libjava/classpath/gnu/java/nio/NIOSocket.java b/libjava/classpath/gnu/java/nio/NIOSocket.java index 4d812bf44ba..060a3a89c1c 100644 --- a/libjava/classpath/gnu/java/nio/NIOSocket.java +++ b/libjava/classpath/gnu/java/nio/NIOSocket.java @@ -48,30 +48,33 @@ import java.nio.channels.SocketChannel; */ public final class NIOSocket extends Socket { - private PlainSocketImpl impl; private SocketChannelImpl channel; - protected NIOSocket (PlainSocketImpl impl, SocketChannelImpl channel) + protected NIOSocket (SocketChannelImpl channel) throws IOException { - super (impl); - this.impl = impl; + super (new NIOSocketImpl(channel)); this.channel = channel; } - public final PlainSocketImpl getPlainSocketImpl() - { - return impl; - } + //public final PlainSocketImpl getPlainSocketImpl() + //{ + // return impl; + //} - final void setChannel (SocketChannelImpl channel) - { - this.impl = channel.getPlainSocketImpl(); - this.channel = channel; - } + //final void setChannel (SocketChannelImpl channel) + //{ + // this.impl = channel.getPlainSocketImpl(); + // this.channel = channel; + //} public final SocketChannel getChannel() { return channel; } + + public boolean isConnected() + { + return channel.isConnected(); + } } diff --git a/libjava/classpath/gnu/java/nio/NIOSocketImpl.java b/libjava/classpath/gnu/java/nio/NIOSocketImpl.java new file mode 100644 index 00000000000..4b26561a212 --- /dev/null +++ b/libjava/classpath/gnu/java/nio/NIOSocketImpl.java @@ -0,0 +1,110 @@ +/* NIOSocketImpl.java -- subclass of PlainSocketImpl for NIO. + 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 gnu.java.nio; + +import gnu.java.net.PlainSocketImpl; + +import java.io.IOException; +import java.net.InetAddress; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class NIOSocketImpl extends PlainSocketImpl +{ + + private final SocketChannelImpl channel; + + NIOSocketImpl(SocketChannelImpl channel) throws IOException + { + this.channel = channel; + impl.getState().setChannelFD(channel.getVMChannel().getState()); + } + + /* (non-Javadoc) + * @see java.net.SocketImpl#getInetAddress() + */ + //@Override + protected InetAddress getInetAddress() + { + try + { + return channel.getVMChannel().getPeerAddress().getAddress(); + } + catch (IOException ioe) + { + return null; + } + catch (NullPointerException npe) + { + // Socket is not connected yet. + return null; + } + } + + /* (non-Javadoc) + * @see java.net.SocketImpl#getPort() + */ + //@Override + protected int getPort() + { + try + { + return channel.getVMChannel().getPeerAddress().getPort(); + } + catch (IOException ioe) + { + return -1; + } + catch (NullPointerException npe) + { + // Socket is not connected yet. + return -1; + } + } + + /* (non-Javadoc) + * @see gnu.java.net.PlainSocketImpl#create(boolean) + */ + //@Override + protected synchronized void create(boolean stream) + { + // Ignored; the socket has already been created. + } +} diff --git a/libjava/classpath/gnu/java/nio/PipeImpl.java b/libjava/classpath/gnu/java/nio/PipeImpl.java index cccaa39885f..8a95b9622ae 100644 --- a/libjava/classpath/gnu/java/nio/PipeImpl.java +++ b/libjava/classpath/gnu/java/nio/PipeImpl.java @@ -46,22 +46,21 @@ import java.nio.channels.spi.SelectorProvider; class PipeImpl extends Pipe { public static final class SourceChannelImpl extends Pipe.SourceChannel + implements VMChannelOwner { - private int native_fd; private VMChannel vmch; public SourceChannelImpl (SelectorProvider selectorProvider, - int native_fd) + VMChannel channel) { super (selectorProvider); - this.native_fd = native_fd; - vmch = VMChannel.getVMChannel(this); + vmch = channel; } protected final void implCloseSelectableChannel() throws IOException { - throw new Error ("Not implemented"); + vmch.close(); } protected void implConfigureBlocking (boolean blocking) @@ -94,30 +93,29 @@ class PipeImpl extends Pipe return vmch.readScattering(srcs, offset, len); } - - public final int getNativeFD() + + public VMChannel getVMChannel() { - return native_fd; + return vmch; } } public static final class SinkChannelImpl extends Pipe.SinkChannel + implements VMChannelOwner { - private int native_fd; private VMChannel vmch; public SinkChannelImpl (SelectorProvider selectorProvider, - int native_fd) + VMChannel channel) { super (selectorProvider); - this.native_fd = native_fd; - vmch = VMChannel.getVMChannel(this); + vmch = channel; } protected final void implCloseSelectableChannel() throws IOException { - throw new Error ("Not implemented"); + vmch.close(); } protected final void implConfigureBlocking (boolean blocking) @@ -149,10 +147,10 @@ class PipeImpl extends Pipe return vmch.writeGathering(srcs, offset, len); } - - public final int getNativeFD() + + public VMChannel getVMChannel() { - return native_fd; + return vmch; } } @@ -163,7 +161,9 @@ class PipeImpl extends Pipe throws IOException { super(); - VMPipe.init (this, provider); + VMChannel[] pipe = VMPipe.pipe(); + sink = new SinkChannelImpl(provider, pipe[0]); + source = new SourceChannelImpl(provider, pipe[1]); } public Pipe.SinkChannel sink() diff --git a/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java b/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java index 8745377c58f..c927f319644 100644 --- a/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java +++ b/libjava/classpath/gnu/java/nio/SelectionKeyImpl.java @@ -106,5 +106,6 @@ public abstract class SelectionKeyImpl extends AbstractSelectionKey return impl; } + /* @deprecated */ public abstract int getNativeFD(); } diff --git a/libjava/classpath/gnu/java/nio/SelectorImpl.java b/libjava/classpath/gnu/java/nio/SelectorImpl.java index d0ec4871367..c08478c9968 100644 --- a/libjava/classpath/gnu/java/nio/SelectorImpl.java +++ b/libjava/classpath/gnu/java/nio/SelectorImpl.java @@ -54,8 +54,8 @@ import java.util.Set; public class SelectorImpl extends AbstractSelector { - private Set keys; - private Set selected; + private Set keys; + private Set selected; /** * A dummy object whose monitor regulates access to both our @@ -83,8 +83,8 @@ public class SelectorImpl extends AbstractSelector { super (provider); - keys = new HashSet (); - selected = new HashSet (); + keys = new HashSet (); + selected = new HashSet (); } protected void finalize() throws Throwable @@ -110,7 +110,7 @@ public class SelectorImpl extends AbstractSelector } } - public final Set keys() + public final Set keys() { if (!isOpen()) throw new ClosedSelectorException(); @@ -136,7 +136,7 @@ public class SelectorImpl extends AbstractSelector { int[] result; int counter = 0; - Iterator it = keys.iterator (); + Iterator it = keys.iterator (); // Count the number of file descriptors needed while (it.hasNext ()) @@ -253,7 +253,7 @@ public class SelectorImpl extends AbstractSelector selectThread = null; } - Iterator it = keys.iterator (); + Iterator it = keys.iterator (); while (it.hasNext ()) { @@ -317,7 +317,7 @@ public class SelectorImpl extends AbstractSelector } } - public final Set selectedKeys() + public final Set selectedKeys() { if (!isOpen()) throw new ClosedSelectorException(); @@ -350,10 +350,10 @@ public class SelectorImpl extends AbstractSelector private final void deregisterCancelledKeys() { - Set ckeys = cancelledKeys (); + Set ckeys = cancelledKeys (); synchronized (ckeys) { - Iterator it = ckeys.iterator(); + Iterator it = ckeys.iterator(); while (it.hasNext ()) { diff --git a/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java b/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java index 47521107e90..56167b69ea8 100644 --- a/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java +++ b/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java @@ -37,6 +37,9 @@ exception statement from your version. */ package gnu.java.nio; + +import gnu.classpath.SystemProperties; + import java.io.IOException; import java.nio.channels.DatagramChannel; import java.nio.channels.Pipe; @@ -47,6 +50,11 @@ import java.nio.channels.spi.SelectorProvider; public class SelectorProviderImpl extends SelectorProvider { + private static final String SELECTOR_IMPL_KQUEUE = "kqueue"; + private static final String SELECTOR_IMPL_EPOLL = "epoll"; + private static final String SELECTOR_IMPL = "gnu.java.nio.selectorImpl"; + private static boolean epoll_failed = false; + public SelectorProviderImpl () { } @@ -66,6 +74,35 @@ public class SelectorProviderImpl extends SelectorProvider public AbstractSelector openSelector () throws IOException { + String selectorImpl = "default"; + if (KqueueSelectorImpl.kqueue_supported()) + selectorImpl = SELECTOR_IMPL_KQUEUE; + if (EpollSelectorImpl.epoll_supported() && !epoll_failed) + selectorImpl = SELECTOR_IMPL_EPOLL; + selectorImpl = SystemProperties.getProperty(SELECTOR_IMPL, selectorImpl); + + if (selectorImpl.equals(SELECTOR_IMPL_KQUEUE)) + return new KqueueSelectorImpl(this); + + if (selectorImpl.equals(SELECTOR_IMPL_EPOLL)) + { + // We jump through these hoops because even though epoll may look + // like it's available (sys/epoll.h exists, and you can link against + // all the epoll functions) it may not be available in the kernel + // (especially 2.4 kernels), meaning you will get ENOSYS at run time. + // + // Madness! + try + { + return new EpollSelectorImpl(this); + } + catch (InternalError e) + { + // epoll_create throws this on ENOSYS. + epoll_failed = true; + } + } + return new SelectorImpl (this); } diff --git a/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java b/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java index c538ea802e1..1e8e0901d7c 100644 --- a/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java @@ -48,7 +48,9 @@ import java.nio.channels.SocketChannel; import java.nio.channels.spi.SelectorProvider; public final class ServerSocketChannelImpl extends ServerSocketChannel + implements VMChannelOwner { + private VMChannel channel; private NIOServerSocket serverSocket; private boolean connected; @@ -56,13 +58,15 @@ public final class ServerSocketChannelImpl extends ServerSocketChannel throws IOException { super (provider); - serverSocket = new NIOServerSocket (this); + serverSocket = new NIOServerSocket(this); + channel = serverSocket.getPlainSocketImpl().getVMChannel(); configureBlocking(true); } + // XXX do we need this? public void finalizer() { - if (connected) + if (channel.getState().isValid()) { try { @@ -77,12 +81,12 @@ public final class ServerSocketChannelImpl extends ServerSocketChannel protected void implCloseSelectableChannel () throws IOException { connected = false; - serverSocket.close(); + channel.close(); } protected void implConfigureBlocking (boolean blocking) throws IOException { - serverSocket.setSoTimeout (blocking ? 0 : NIOConstants.DEFAULT_TIMEOUT); + channel.setBlocking(blocking); } public SocketChannel accept () throws IOException @@ -98,27 +102,28 @@ public final class ServerSocketChannelImpl extends ServerSocketChannel try { begin(); - serverSocket.getPlainSocketImpl().setInChannelOperation(true); - // indicate that a channel is initiating the accept operation - // so that the socket ignores the fact that we might be in - // non-blocking mode. - NIOSocket socket = (NIOSocket) serverSocket.accept(); - completed = true; - return socket.getChannel(); - } - catch (SocketTimeoutException e) - { - return null; + VMChannel client = channel.accept(); + if (client == null) + return null; + else + { + completed = true; + return new SocketChannelImpl(provider(), client, false); + } } finally { - serverSocket.getPlainSocketImpl().setInChannelOperation(false); end (completed); } } - public ServerSocket socket () + public ServerSocket socket() { return serverSocket; } + + public VMChannel getVMChannel() + { + return channel; + } } diff --git a/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java b/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java index d00c2b7482a..5b510cb6f4d 100644 --- a/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java +++ b/libjava/classpath/gnu/java/nio/ServerSocketChannelSelectionKey.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.nio; +import java.io.IOException; import java.nio.channels.spi.AbstractSelectableChannel; public final class ServerSocketChannelSelectionKey @@ -49,10 +50,16 @@ public final class ServerSocketChannelSelectionKey super (channel, selector); } + // FIXME don't use file descriptor integers public int getNativeFD() { - NIOServerSocket socket = - (NIOServerSocket) ((ServerSocketChannelImpl) ch).socket(); - return socket.getPlainSocketImpl().getNativeFD(); + try + { + return ((ServerSocketChannelImpl) ch).getVMChannel().getState().getNativeFD(); + } + catch (IOException ioe) + { + throw new IllegalStateException(ioe); + } } } diff --git a/libjava/classpath/gnu/java/nio/SocketChannelImpl.java b/libjava/classpath/gnu/java/nio/SocketChannelImpl.java index 680eba2f92b..1c563ac097c 100644 --- a/libjava/classpath/gnu/java/nio/SocketChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/SocketChannelImpl.java @@ -39,15 +39,20 @@ exception statement from your version. */ package gnu.java.nio; import gnu.java.net.PlainSocketImpl; +import gnu.java.net.VMPlainSocketImpl; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; +import java.net.SocketException; import java.net.SocketTimeoutException; import java.nio.ByteBuffer; +import java.nio.ReadOnlyBufferException; import java.nio.channels.AlreadyConnectedException; import java.nio.channels.ClosedChannelException; import java.nio.channels.ConnectionPendingException; @@ -61,28 +66,57 @@ import java.nio.channels.UnsupportedAddressTypeException; import java.nio.channels.spi.SelectorProvider; public final class SocketChannelImpl extends SocketChannel + implements VMChannelOwner { - private PlainSocketImpl impl; + private VMChannel channel; + //private PlainSocketImpl impl; private NIOSocket socket; private boolean connectionPending; + private boolean connected; + private InetSocketAddress connectAddress; + + public SocketChannelImpl(boolean create) throws IOException + { + // XXX consider adding security check; this is used by + // PlainSocketImpl. + this(new SelectorProviderImpl(), create); + } + + public SocketChannelImpl(VMChannel channel) throws IOException + { + this(new SelectorProviderImpl(), channel, false); + } + + SocketChannelImpl(SelectorProvider provider) throws IOException + { + this(provider, true); + } - SocketChannelImpl (SelectorProvider provider) + SocketChannelImpl(SelectorProvider provider, boolean create) + throws IOException + { + this(provider, new VMChannel(), create); + } + + SocketChannelImpl(SelectorProvider provider, VMChannel channel, boolean create) throws IOException { super (provider); - impl = new PlainSocketImpl(); - socket = new NIOSocket (impl, this); + this.channel = channel; + if (create) + channel.initSocket(true); + socket = new NIOSocket(this); configureBlocking(true); } - SocketChannelImpl (SelectorProvider provider, + /*SocketChannelImpl (SelectorProvider provider, NIOSocket socket) throws IOException { super (provider); this.impl = socket.getPlainSocketImpl(); this.socket = socket; - } + }*/ public void finalizer() { @@ -98,23 +132,28 @@ public final class SocketChannelImpl extends SocketChannel } } - PlainSocketImpl getPlainSocketImpl() - { - return impl; - } + //PlainSocketImpl getPlainSocketImpl() + //{ + // return null; // XXX + //} - protected void implCloseSelectableChannel () throws IOException + protected void implCloseSelectableChannel() throws IOException { - socket.close(); + channel.close(); } protected void implConfigureBlocking (boolean blocking) throws IOException { - socket.setSoTimeout (blocking ? 0 : NIOConstants.DEFAULT_TIMEOUT); + channel.setBlocking(blocking); } public boolean connect (SocketAddress remote) throws IOException { + return connect(remote, 0); + } + + public boolean connect (SocketAddress remote, int timeout) throws IOException + { if (!isOpen()) throw new ClosedChannelException(); @@ -126,79 +165,52 @@ public final class SocketChannelImpl extends SocketChannel if (!(remote instanceof InetSocketAddress)) throw new UnsupportedAddressTypeException(); + + connectAddress = (InetSocketAddress) remote; - if (((InetSocketAddress) remote).isUnresolved()) + if (connectAddress.isUnresolved()) throw new UnresolvedAddressException(); - try - { - socket.getPlainSocketImpl().setInChannelOperation(true); - // indicate that a channel is initiating the accept operation - // so that the socket ignores the fact that we might be in - // non-blocking mode. - - if (isBlocking()) - { - // Do blocking connect. - socket.connect (remote); - return true; - } - - // Do non-blocking connect. - try - { - socket.connect (remote, NIOConstants.DEFAULT_TIMEOUT); - return true; - } - catch (SocketTimeoutException e) - { - connectionPending = true; - return false; - } - } - finally - { - socket.getPlainSocketImpl().setInChannelOperation(false); - } + connected = channel.connect(connectAddress, timeout); + connectionPending = !connected; + return connected; } - - public boolean finishConnect () + + public boolean finishConnect() throws IOException { if (!isOpen()) throw new ClosedChannelException(); - - if (!isConnected() && !connectionPending) - throw new NoConnectionPendingException(); - - if (isConnected()) - return true; - // FIXME: Handle blocking/non-blocking mode. - - Selector selector = provider().openSelector(); - register(selector, SelectionKey.OP_CONNECT); - - if (isBlocking()) + InetSocketAddress remote = channel.getPeerAddress(); + if (remote != null) { - selector.select(); // blocking until channel is connected. connectionPending = false; return true; } - - int ready = selector.selectNow(); // non-blocking - if (ready == 1) - { - connectionPending = false; - return true; - } - + + if (!connectionPending) + throw new NoConnectionPendingException(); + return false; } - public boolean isConnected () + public boolean isConnected() { - return socket.isConnected(); + // Wait until finishConnect is called before transitioning to + // connected. + if (connectionPending) + return false; + try + { + InetSocketAddress remote = channel.getPeerAddress(); + return remote != null; + } + catch (IOException ioe) + { + ioe.printStackTrace(System.out); + return false; + } } public boolean isConnectionPending () @@ -216,52 +228,7 @@ public final class SocketChannelImpl extends SocketChannel if (!isConnected()) throw new NotYetConnectedException(); - byte[] data; - int offset = 0; - InputStream input = socket.getInputStream(); - int available = input.available(); - int len = dst.remaining(); - - if ((! isBlocking()) && available == 0) - return 0; - - if (dst.hasArray()) - { - offset = dst.arrayOffset() + dst.position(); - data = dst.array(); - } - else - { - data = new byte [len]; - } - - int readBytes = 0; - boolean completed = false; - - try - { - begin(); - socket.getPlainSocketImpl().setInChannelOperation(true); - readBytes = input.read (data, offset, len); - completed = true; - } - finally - { - end (completed); - socket.getPlainSocketImpl().setInChannelOperation(false); - } - - if (readBytes > 0) - if (dst.hasArray()) - { - dst.position (dst.position() + readBytes); - } - else - { - dst.put (data, offset, readBytes); - } - - return readBytes; + return channel.read(dst); } public long read (ByteBuffer[] dsts, int offset, int length) @@ -275,61 +242,19 @@ public final class SocketChannelImpl extends SocketChannel || (length < 0) || (length > (dsts.length - offset))) throw new IndexOutOfBoundsException(); - - long readBytes = 0; - - for (int index = offset; index < length; index++) - readBytes += read (dsts [index]); - - return readBytes; + + return channel.readScattering(dsts, offset, length); } - public int write (ByteBuffer src) - throws IOException + public int write(ByteBuffer src) throws IOException { if (!isConnected()) throw new NotYetConnectedException(); - - byte[] data; - int offset = 0; - int len = src.remaining(); - - if (!src.hasArray()) - { - data = new byte [len]; - src.get (data, 0, len); - } - else - { - offset = src.arrayOffset() + src.position(); - data = src.array(); - } - OutputStream output = socket.getOutputStream(); - boolean completed = false; - - try - { - begin(); - socket.getPlainSocketImpl().setInChannelOperation(true); - output.write (data, offset, len); - completed = true; - } - finally - { - end (completed); - socket.getPlainSocketImpl().setInChannelOperation(false); - } - - if (src.hasArray()) - { - src.position (src.position() + len); - } - - return len; + return channel.write(src); } - public long write (ByteBuffer[] srcs, int offset, int length) + public long write(ByteBuffer[] srcs, int offset, int length) throws IOException { if (!isConnected()) @@ -340,12 +265,13 @@ public final class SocketChannelImpl extends SocketChannel || (length < 0) || (length > (srcs.length - offset))) throw new IndexOutOfBoundsException(); - - long writtenBytes = 0; - - for (int index = offset; index < length; index++) - writtenBytes += write (srcs [index]); - return writtenBytes; + return channel.writeGathering(srcs, offset, length); + } + + public VMChannel getVMChannel() + { + // XXX security check? + return channel; } } diff --git a/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java b/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java index 75b4dfd87e5..9ceebdec90f 100644 --- a/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java +++ b/libjava/classpath/gnu/java/nio/SocketChannelSelectionKey.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.nio; +import java.io.IOException; import java.nio.channels.spi.AbstractSelectableChannel; public final class SocketChannelSelectionKey @@ -49,10 +50,16 @@ public final class SocketChannelSelectionKey super (channel, selector); } + // FIXME don't use file descriptor integers public int getNativeFD() { - NIOSocket socket = - (NIOSocket) ((SocketChannelImpl) ch).socket(); - return socket.getPlainSocketImpl().getNativeFD(); + try + { + return ((SocketChannelImpl) ch).getVMChannel().getState().getNativeFD(); + } + catch (IOException ioe) + { + throw new IllegalStateException(ioe); + } } } diff --git a/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java b/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java index 30fb2dfba44..31a96ed7d88 100644 --- a/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java +++ b/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.java.nio; +import java.io.IOException; + /** * @author Michael Barker @@ -63,7 +65,14 @@ public class SocketChannelSelectionKeyImpl extends SelectionKeyImpl */ public int getNativeFD() { - return ch.getPlainSocketImpl().getNativeFD(); + try + { + return ch.getVMChannel().getState().getNativeFD(); + } + catch (IOException ioe) + { + return 0; // FIXME + } } } diff --git a/libjava/classpath/gnu/java/nio/VMChannelOwner.java b/libjava/classpath/gnu/java/nio/VMChannelOwner.java new file mode 100644 index 00000000000..363dea2b214 --- /dev/null +++ b/libjava/classpath/gnu/java/nio/VMChannelOwner.java @@ -0,0 +1,57 @@ +/* NativeFD.java -- interface for Channels that have an underlying file descriptor. + 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 gnu.java.nio; + +/** + * This interface is meant to be implemented by any {@link Channel} + * implementation we support that uses a platform-specific {@link VMChannel} + * at their core. This is primarily used by {@link Selector} implementations, + * for easier access to the native state. + * + * @author Casey Marshall (csm@gnu.org) + */ +interface VMChannelOwner +{ + /** + * Return the underlying platform-specific Channel instance. + * + * @return The platform channel object. + */ + VMChannel getVMChannel(); +} diff --git a/libjava/classpath/gnu/java/nio/channels/FileChannelImpl.java b/libjava/classpath/gnu/java/nio/channels/FileChannelImpl.java deleted file mode 100644 index ed439e141ef..00000000000 --- a/libjava/classpath/gnu/java/nio/channels/FileChannelImpl.java +++ /dev/null @@ -1,553 +0,0 @@ -/* FileChannelImpl.java -- - Copyright (C) 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 gnu.java.nio.channels; - -import gnu.classpath.Configuration; -import gnu.java.nio.FileLockImpl; -import gnu.java.nio.VMChannel; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.MappedByteBuffer; -import java.nio.channels.ClosedChannelException; -import java.nio.channels.FileChannel; -import java.nio.channels.FileLock; -import java.nio.channels.NonReadableChannelException; -import java.nio.channels.NonWritableChannelException; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.WritableByteChannel; - -/** - * This file is not user visible ! - * But alas, Java does not have a concept of friendly packages - * so this class is public. - * Instances of this class are created by invoking getChannel - * Upon a Input/Output/RandomAccessFile object. - */ -public final class FileChannelImpl extends FileChannel -{ - // These are mode values for open(). - public static final int READ = 1; - public static final int WRITE = 2; - public static final int APPEND = 4; - - // EXCL is used only when making a temp file. - public static final int EXCL = 8; - public static final int SYNC = 16; - public static final int DSYNC = 32; - - public static FileChannelImpl in; - public static FileChannelImpl out; - public static FileChannelImpl err; - - private static native void init(); - - static - { - if (Configuration.INIT_LOAD_LIBRARY) - { - System.loadLibrary("javanio"); - } - - init(); - - in = new FileChannelImpl(0, READ); - out = new FileChannelImpl(1, WRITE); - err = new FileChannelImpl(2, WRITE); - } - - /** - * This is the actual native file descriptor value - */ - // System's notion of file descriptor. It might seem redundant to - // initialize this given that it is reassigned in the constructors. - // However, this is necessary because if open() throws an exception - // we want to make sure this has the value -1. This is the most - // efficient way to accomplish that. - private int fd = -1; - private VMChannel ch; - - private int mode; - - final String description; - - /* Open a file. MODE is a combination of the above mode flags. */ - /* This is a static factory method, so that VM implementors can decide - * substitute subclasses of FileChannelImpl. */ - public static FileChannelImpl create(File file, int mode) - throws FileNotFoundException - { - return new FileChannelImpl(file, mode); - } - - private FileChannelImpl(File file, int mode) - throws FileNotFoundException - { - String path = file.getPath(); - description = path; - fd = open (path, mode); - this.mode = mode; - this.ch = VMChannel.getVMChannel(this); - - // First open the file and then check if it is a a directory - // to avoid race condition. - if (file.isDirectory()) - { - try - { - close(); - } - catch (IOException e) - { - /* ignore it */ - } - - throw new FileNotFoundException(description + " is a directory"); - } - } - - /** - * Constructor for default channels in, out and err. - * - * Used by init() (native code). - * - * @param fd the file descriptor (0, 1, 2 for stdin, stdout, stderr). - * - * @param mode READ or WRITE - */ - FileChannelImpl (int fd, int mode) - { - this.fd = fd; - this.mode = mode; - this.description = "descriptor(" + fd + ")"; - this.ch = VMChannel.getVMChannel(this); - } - - private native int open (String path, int mode) throws FileNotFoundException; - - public native int available () throws IOException; - private native long implPosition () throws IOException; - private native void seek (long newPosition) throws IOException; - private native void implTruncate (long size) throws IOException; - - public native void unlock (long pos, long len) throws IOException; - - public native long size () throws IOException; - - protected native void implCloseChannel() throws IOException; - - /** - * Makes sure the Channel is properly closed. - */ - protected void finalize() throws IOException - { - if (fd != -1) - close(); - } - - public int read (ByteBuffer dst) throws IOException - { - /* - int result; - byte[] buffer = new byte [dst.remaining ()]; - - result = read (buffer, 0, buffer.length); - - if (result > 0) - dst.put (buffer, 0, result); - - return result; - */ - return ch.read(dst); - } - - public int read (ByteBuffer dst, long position) - throws IOException - { - if (position < 0) - throw new IllegalArgumentException ("position: " + position); - long oldPosition = implPosition (); - position (position); - int result = read(dst); - position (oldPosition); - - return result; - } - - public native int read () - throws IOException; - - public native int read (byte[] buffer, int offset, int length) - throws IOException; - - public long read (ByteBuffer[] dsts, int offset, int length) - throws IOException - { - return ch.readScattering(dsts, offset, length); - } - - public int write (ByteBuffer src) throws IOException - { - return ch.write(src); - } - - public int write (ByteBuffer src, long position) - throws IOException - { - if (position < 0) - throw new IllegalArgumentException ("position: " + position); - - if (!isOpen ()) - throw new ClosedChannelException (); - - if ((mode & WRITE) == 0) - throw new NonWritableChannelException (); - - int result; - long oldPosition; - - oldPosition = implPosition (); - seek (position); - result = write(src); - seek (oldPosition); - - return result; - } - - public native void write (byte[] buffer, int offset, int length) - throws IOException; - - public native void write (int b) throws IOException; - - public long write(ByteBuffer[] srcs, int offset, int length) - throws IOException - { - return ch.writeGathering(srcs, offset, length); - } - - public native MappedByteBuffer mapImpl (char mode, long position, int size) - throws IOException; - - public MappedByteBuffer map (FileChannel.MapMode mode, - long position, long size) - throws IOException - { - char nmode = 0; - if (mode == MapMode.READ_ONLY) - { - nmode = 'r'; - if ((this.mode & READ) == 0) - throw new NonReadableChannelException(); - } - else if (mode == MapMode.READ_WRITE || mode == MapMode.PRIVATE) - { - nmode = mode == MapMode.READ_WRITE ? '+' : 'c'; - if ((this.mode & WRITE) != WRITE) - throw new NonWritableChannelException(); - if ((this.mode & READ) != READ) - throw new NonReadableChannelException(); - } - else - throw new IllegalArgumentException ("mode: " + mode); - - if (position < 0 || size < 0 || size > Integer.MAX_VALUE) - throw new IllegalArgumentException ("position: " + position - + ", size: " + size); - return mapImpl(nmode, position, (int) size); - } - - /** - * msync with the disk - */ - public void force (boolean metaData) throws IOException - { - if (!isOpen ()) - throw new ClosedChannelException (); - - force (); - } - - private native void force (); - - // like transferTo, but with a count of less than 2Gbytes - private int smallTransferTo (long position, int count, - WritableByteChannel target) - throws IOException - { - ByteBuffer buffer; - try - { - // Try to use a mapped buffer if we can. If this fails for - // any reason we'll fall back to using a ByteBuffer. - buffer = map (MapMode.READ_ONLY, position, count); - } - catch (IOException e) - { - buffer = ByteBuffer.allocate (count); - read (buffer, position); - buffer.flip(); - } - - return target.write (buffer); - } - - public long transferTo (long position, long count, - WritableByteChannel target) - throws IOException - { - if (position < 0 - || count < 0) - throw new IllegalArgumentException ("position: " + position - + ", count: " + count); - - if (!isOpen ()) - throw new ClosedChannelException (); - - if ((mode & READ) == 0) - throw new NonReadableChannelException (); - - final int pageSize = 65536; - long total = 0; - - while (count > 0) - { - int transferred - = smallTransferTo (position, (int)Math.min (count, pageSize), - target); - if (transferred < 0) - break; - total += transferred; - position += transferred; - count -= transferred; - } - - return total; - } - - // like transferFrom, but with a count of less than 2Gbytes - private int smallTransferFrom (ReadableByteChannel src, long position, - int count) - throws IOException - { - ByteBuffer buffer = null; - - if (src instanceof FileChannel) - { - try - { - // Try to use a mapped buffer if we can. If this fails - // for any reason we'll fall back to using a ByteBuffer. - buffer = ((FileChannel)src).map (MapMode.READ_ONLY, position, - count); - } - catch (IOException e) - { - } - } - - if (buffer == null) - { - buffer = ByteBuffer.allocate ((int) count); - src.read (buffer); - buffer.flip(); - } - - return write (buffer, position); - } - - public long transferFrom (ReadableByteChannel src, long position, - long count) - throws IOException - { - if (position < 0 - || count < 0) - throw new IllegalArgumentException ("position: " + position - + ", count: " + count); - - if (!isOpen ()) - throw new ClosedChannelException (); - - if ((mode & WRITE) == 0) - throw new NonWritableChannelException (); - - final int pageSize = 65536; - long total = 0; - - while (count > 0) - { - int transferred = smallTransferFrom (src, position, - (int)Math.min (count, pageSize)); - if (transferred < 0) - break; - total += transferred; - position += transferred; - count -= transferred; - } - - return total; - } - - // Shared sanity checks between lock and tryLock methods. - private void lockCheck(long position, long size, boolean shared) - throws IOException - { - if (position < 0 - || size < 0) - throw new IllegalArgumentException ("position: " + position - + ", size: " + size); - - if (!isOpen ()) - throw new ClosedChannelException(); - - if (shared && ((mode & READ) == 0)) - throw new NonReadableChannelException(); - - if (!shared && ((mode & WRITE) == 0)) - throw new NonWritableChannelException(); - } - - public FileLock tryLock (long position, long size, boolean shared) - throws IOException - { - lockCheck(position, size, shared); - - boolean completed = false; - try - { - begin(); - boolean lockable = lock(position, size, shared, false); - completed = true; - return (lockable - ? new FileLockImpl(this, position, size, shared) - : null); - } - finally - { - end(completed); - } - } - - /** Try to acquire a lock at the given position and size. - * On success return true. - * If wait as specified, block until we can get it. - * Otherwise return false. - */ - private native boolean lock(long position, long size, - boolean shared, boolean wait) throws IOException; - - public FileLock lock (long position, long size, boolean shared) - throws IOException - { - lockCheck(position, size, shared); - - boolean completed = false; - try - { - boolean lockable = lock(position, size, shared, true); - completed = true; - return (lockable - ? new FileLockImpl(this, position, size, shared) - : null); - } - finally - { - end(completed); - } - } - - public long position () - throws IOException - { - if (!isOpen ()) - throw new ClosedChannelException (); - - return implPosition (); - } - - public FileChannel position (long newPosition) - throws IOException - { - if (newPosition < 0) - throw new IllegalArgumentException ("newPosition: " + newPosition); - - if (!isOpen ()) - throw new ClosedChannelException (); - - // FIXME note semantics if seeking beyond eof. - // We should seek lazily - only on a write. - seek (newPosition); - return this; - } - - public FileChannel truncate (long size) - throws IOException - { - if (size < 0) - throw new IllegalArgumentException ("size: " + size); - - if (!isOpen ()) - throw new ClosedChannelException (); - - if ((mode & WRITE) == 0) - throw new NonWritableChannelException (); - - if (size < size ()) - implTruncate (size); - - return this; - } - - public String toString() - { - return (this.getClass() - + "[fd=" + fd - + ",mode=" + mode + "," - + description + "]"); - } - - /** - * @return The native file descriptor. - */ - public int getNativeFD() - { - return fd; - } -} diff --git a/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java b/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java index d191c0c1717..e7580bcd79d 100644 --- a/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java +++ b/libjava/classpath/gnu/java/rmi/server/ActivatableRef.java @@ -112,8 +112,10 @@ public class ActivatableRef extends UnicastRef public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); actId = (ActivationID) in.readObject(); + String type = in.readUTF(); + // XXX handle type.equals("") (null reference) + super.readExternal(in); } /** @@ -121,8 +123,10 @@ public class ActivatableRef extends UnicastRef */ public void writeExternal(ObjectOutput out) throws IOException { - super.writeExternal(out); out.writeObject(actId); + // XXX write a "" if the "nested" reference is a null reference + out.writeUTF("UnicastRef2"); + super.writeExternal(out); } /** diff --git a/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java b/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java index 2e1e7805531..82f0ff69e4e 100644 --- a/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java +++ b/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java @@ -1,5 +1,5 @@ /* RMIClassLoaderImpl.java -- FIXME: briefly describe file purpose - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.rmi.server; +import java.lang.reflect.Proxy; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; @@ -186,6 +187,7 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi { defaultClassLoader = new MyClassLoader (new URL[] { defaultCodebase }, null, defaultAnnotation); + // XXX using getContextClassLoader here *cannot* be right cacheLoaders.put (new CacheKey (defaultAnnotation, Thread.currentThread().getContextClassLoader()), defaultClassLoader); @@ -216,47 +218,53 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException { - ClassLoader loader; - if (defaultLoader == null) - loader = Thread.currentThread().getContextClassLoader(); - else - loader = defaultLoader; - - //try context class loader first try { - return Class.forName(name, false, loader); + if (defaultLoader != null) + return Class.forName(name, false, defaultLoader); } catch (ClassNotFoundException e) { - // class not found in the local classpath + } + + return Class.forName(name, false, getClassLoader(codeBase)); + } + + public Class loadProxyClass(String codeBase, String[] interfaces, + ClassLoader defaultLoader) + throws MalformedURLException, ClassNotFoundException + { + Class clss[] = new Class[interfaces.length]; + + for (int i = 0; i < interfaces.length; i++) + { + clss[i] = loadClass(codeBase, interfaces[i], defaultLoader); } - if (codeBase.length() == 0) //=="" + // Chain all class loaders (they may differ). + ArrayList loaders = new ArrayList(clss.length); + ClassLoader loader = null; + for (int i = 0; i < clss.length; i++) { - loader = defaultClassLoader; + loader = clss[i].getClassLoader(); + if (! loaders.contains(loader)) + { + loaders.add(0, loader); + } } - else + if (loaders.size() > 1) { - loader = getClassLoader(codeBase); + loader = new CombinedClassLoader(loaders); } - if (loader == null) + try { - //do not throw NullPointerException - throw new ClassNotFoundException ("Could not find class (" + name + - ") at codebase (" + codeBase + ")"); + return Proxy.getProxyClass(loader, clss); + } + catch (IllegalArgumentException e) + { + throw new ClassNotFoundException(null, e); } - - return Class.forName(name, false, loader); - } - - public Class loadProxyClass(String codeBase, String[] interfaces, - ClassLoader defaultLoader) - throws MalformedURLException, ClassNotFoundException - { - // FIXME: Implement this. - return null; } /** @@ -272,6 +280,9 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi public ClassLoader getClassLoader(String codebase) throws MalformedURLException { + if (codebase == null || codebase.length() == 0) + return Thread.currentThread().getContextClassLoader(); + ClassLoader loader; CacheKey loaderKey = new CacheKey (codebase, Thread.currentThread().getContextClassLoader()); diff --git a/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java b/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java index e76535447be..75f4f120236 100644 --- a/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java +++ b/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java @@ -1,5 +1,5 @@ /* RMIObjectInputStream.java -- - Copyright (c) 1996, 1997, 1998, 1999, 2002, 2004 + Copyright (c) 1996, 1997, 1998, 1999, 2002, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,11 +39,11 @@ exception statement from your version. */ package gnu.java.rmi.server; +import gnu.classpath.VMStackWalker; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectStreamClass; -import java.lang.reflect.Proxy; import java.net.MalformedURLException; import java.rmi.server.RMIClassLoader; import java.util.ArrayList; @@ -57,16 +57,14 @@ public RMIObjectInputStream(InputStream strm) throws IOException { } protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { - String annotation = (String)getAnnotation(); - try { - if(annotation == null) - return (RMIClassLoader.loadClass(desc.getName())); - else - return (RMIClassLoader.loadClass(annotation, desc.getName())); + return RMIClassLoader.loadClass( + (String)getAnnotation(), + desc.getName(), + VMStackWalker.firstNonNullClassLoader()); } - catch (MalformedURLException _) { - throw new ClassNotFoundException(desc.getName()); + catch (MalformedURLException x) { + throw new ClassNotFoundException(desc.getName(), x); } } @@ -81,45 +79,16 @@ protected Object getAnnotation() protected Class resolveProxyClass(String intfs[]) throws IOException, ClassNotFoundException { - String annotation = (String) getAnnotation(); - - Class clss[] = new Class[intfs.length]; - - for (int i = 0; i < intfs.length; i++) - { - if (annotation == null) - clss[i] = RMIClassLoader.loadClass(intfs[i]); - else - clss[i] = RMIClassLoader.loadClass(annotation, intfs[i]); - } - - ClassLoader loader; - - if (clss.length > 0) - { - // Chain all class loaders (they may differ). - ArrayList loaders = new ArrayList(intfs.length); - ClassLoader cx; - for (int i = 0; i < clss.length; i++) - { - cx = clss[i].getClassLoader(); - if (!loaders.contains(cx)) - { - loaders.add(0, cx); - } - } - loader = new CombinedClassLoader(loaders); - } - else - loader = ClassLoader.getSystemClassLoader(); - - try + try { - return Proxy.getProxyClass(loader, clss); + return RMIClassLoader.loadProxyClass( + (String)getAnnotation(), + intfs, + VMStackWalker.firstNonNullClassLoader()); } - catch (IllegalArgumentException e) + catch (MalformedURLException x) { - throw new ClassNotFoundException(null, e); + throw new ClassNotFoundException(null, x); } } diff --git a/libjava/classpath/gnu/java/security/.cvsignore b/libjava/classpath/gnu/java/security/.cvsignore new file mode 100644 index 00000000000..11f6639ebbd --- /dev/null +++ b/libjava/classpath/gnu/java/security/.cvsignore @@ -0,0 +1 @@ +Configuration.java diff --git a/libjava/classpath/gnu/java/security/Engine.java b/libjava/classpath/gnu/java/security/Engine.java index c6271e3f219..44318af8ec7 100644 --- a/libjava/classpath/gnu/java/security/Engine.java +++ b/libjava/classpath/gnu/java/security/Engine.java @@ -79,158 +79,170 @@ public final class Engine /** This class cannot be instantiated. */ private Engine() { } - // Class method. - // ------------------------------------------------------------------------ - /** - * Get the implementation for algorithm for service - * service from provider. The service is e.g. - * "Signature", and the algorithm "DSA". - * - * @param service The service name. + * Return the implementation for algorithm for service service + * from provider. The service is e.g. "Signature", and the algorithm + * "DSA". + * + * @param service The service name. * @param algorithm The name of the algorithm to get. - * @param provider The provider to get the implementation from. - * @return The engine class for the specified algorithm; the object - * returned is typically a subclass of the SPI class for that - * service, but callers should check that this is so. - * @throws NoSuchAlgorithmException If the implementation cannot be - * found or cannot be instantiated. - * @throws InvocationTargetException If the SPI class's constructor - * throws an exception. - * @throws IllegalArgumentException If any of the three arguments are null. + * @param provider The provider to get the implementation from. + * @return The engine class for the specified algorithm; the object returned + * is typically a subclass of the SPI class for that service, but + * callers should check that this is so. + * @throws NoSuchAlgorithmException If the implementation cannot be found or + * cannot be instantiated. + * @throws InvocationTargetException If the SPI class's constructor throws an + * exception. + * @throws IllegalArgumentException If any of the three arguments is null. */ public static Object getInstance(String service, String algorithm, Provider provider) - throws InvocationTargetException, NoSuchAlgorithmException + throws InvocationTargetException, NoSuchAlgorithmException { return getInstance(service, algorithm, provider, NO_ARGS); } /** - * Get the implementation for algorithm for service - * service from provider, passing initArgs to the - * SPI class's constructor (which cannot be null; pass a zero-length - * array if the SPI takes no arguments). The service is e.g. - * "Signature", and the algorithm "DSA". - * - * @param service The service name. + * Return the implementation for algorithm for service service + * from provider, passing initArgs to the SPI class's + * constructor (which cannot be null; pass a zero-length array if the SPI + * takes no arguments). The service is e.g. "Signature", and the algorithm + * "DSA". + * + * @param service The service name. * @param algorithm The name of the algorithm to get. - * @param provider The provider to get the implementation from. - * @param initArgs The arguments to pass to the SPI class's - * constructor (cannot be null). - * @return The engine class for the specified algorithm; the object - * returned is typically a subclass of the SPI class for that - * service, but callers should check that this is so. - * @throws NoSuchAlgorithmException If the implementation cannot be - * found or cannot be instantiated. - * @throws InvocationTargetException If the SPI class's constructor - * throws an exception. - * @throws IllegalArgumentException If any of the four arguments are null. + * @param provider The provider to get the implementation from. + * @param initArgs The arguments to pass to the SPI class's constructor + * (cannot be null). + * @return The engine class for the specified algorithm; the object returned + * is typically a subclass of the SPI class for that service, but + * callers should check that this is so. + * @throws NoSuchAlgorithmException If the implementation cannot be found or + * cannot be instantiated. + * @throws InvocationTargetException If the SPI class's constructor throws an + * exception. + * @throws IllegalArgumentException If any of the four arguments is + * null or if either service, or + * algorithm is an empty string. */ public static Object getInstance(String service, String algorithm, Provider provider, Object[] initArgs) - throws InvocationTargetException, NoSuchAlgorithmException + throws InvocationTargetException, NoSuchAlgorithmException { - if (service != null) - service = service.trim(); + if (service == null) + throw new IllegalArgumentException("service MUST NOT be null"); + service = service.trim(); + if (service.length() == 0) + throw new IllegalArgumentException("service MUST NOT be empty"); + if (algorithm == null) + throw new IllegalArgumentException("algorithm MUST NOT be null"); + algorithm = algorithm.trim(); + if (algorithm.length() == 0) + throw new IllegalArgumentException("algorithm MUST NOT be empty"); + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + if (initArgs == null) + throw new IllegalArgumentException("Constructor's parameters MUST NOT be null"); - if (algorithm != null) - algorithm = algorithm.trim(); - - if (service == null || service.length() == 0 - || algorithm == null || algorithm.length() == 0 - || provider == null || initArgs == null) - throw new IllegalArgumentException(); - - Enumeration enumer = provider.propertyNames(); String key; String alias; int count = 0; boolean algorithmFound = false; - + StringBuilder sb = new StringBuilder(); while (enumer.hasMoreElements()) { key = (String) enumer.nextElement(); - if (key.equalsIgnoreCase(service + "." + algorithm)) { // remove the service portion from the key algorithm = key.substring(service.length() + 1); - algorithmFound = true; break; - } else if (key.equalsIgnoreCase(ALG_ALIAS + service + "." + algorithm)) { - alias = (String) provider.getProperty(key); - if (! algorithm.equalsIgnoreCase(alias)) // does not refer to itself { algorithm = alias; if (count++ > MAX_ALIASES) - throw new NoSuchAlgorithmException("too many aliases"); - + { + sb.append("Algorithm [").append(algorithm) + .append("] of type [").append(service) + .append("] from provider [").append(provider) + .append("] has too many aliases"); + throw new NoSuchAlgorithmException(sb.toString()); + } // need to reset enumeration to now look for the alias enumer = provider.propertyNames(); } } } - + if (! algorithmFound) { - throw new NoSuchAlgorithmException(algorithm); + sb.append("Algorithm [").append(algorithm).append("] of type [") + .append(service).append("] from provider [") + .append(provider).append("] is not found"); + throw new NoSuchAlgorithmException(sb.toString()); } - - - // Find and instantiate the implementation. + + // Find and instantiate the implementation Class clazz = null; ClassLoader loader = provider.getClass().getClassLoader(); Constructor constructor = null; - String error = algorithm; - + String className = provider.getProperty(service + "." + algorithm); + sb.append("Class [").append(className).append("] for algorithm [") + .append(algorithm).append("] of type [").append(service) + .append("] from provider [").append(provider).append("] "); + Throwable cause = null; try { if (loader != null) - clazz = loader.loadClass(provider.getProperty(service+"."+algorithm)); + clazz = loader.loadClass(className); else - clazz = Class.forName(provider.getProperty(service+"."+algorithm)); + clazz = Class.forName(className); constructor = getCompatibleConstructor(clazz, initArgs); return constructor.newInstance(initArgs); } - catch (ClassNotFoundException cnfe) + catch (ClassNotFoundException x) { - error = "class not found: " + algorithm; + sb.append("cannot not be found"); + cause = x; } - catch (IllegalAccessException iae) + catch (IllegalAccessException x) { - error = "illegal access: " + iae.getMessage(); + sb.append("cannot be accessed"); + cause = x; } - catch (InstantiationException ie) + catch (InstantiationException x) { - error = "instantiation exception: " + ie.getMessage(); + sb.append("cannot be instantiated"); + cause = x; } - catch (ExceptionInInitializerError eiie) + catch (ExceptionInInitializerError x) { - error = "exception in initializer: " + eiie.getMessage(); + sb.append("cannot be initialized"); + cause = x; } - catch (SecurityException se) + catch (SecurityException x) { - error = "security exception: " + se.getMessage(); + sb.append("caused a security violation"); + cause = x; } - catch (NoSuchMethodException nsme) + catch (NoSuchMethodException x) { - error = "no appropriate constructor found"; + sb.append("does not have/expose an appropriate constructor"); + cause = x; } - throw new NoSuchAlgorithmException(error); + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Own methods. - // ------------------------------------------------------------------------ - /** * Find a constructor in the given class that can take the specified * argument list, allowing any of which to be null. diff --git a/libjava/classpath/gnu/java/security/Requires.java b/libjava/classpath/gnu/java/security/Requires.java new file mode 100644 index 00000000000..c820336c01e --- /dev/null +++ b/libjava/classpath/gnu/java/security/Requires.java @@ -0,0 +1,59 @@ +/* Requires.java -- mark methods as requiring permission. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.java.security; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.CLASS; +import java.security.Permission; + +/** + * + * + * @author Casey Marshall (csm@gnu.org) + */ +@Documented @Retention(CLASS) @Target(METHOD) +public @interface Requires +{ + Class permissionClass(); + String target(); + String action(); +} diff --git a/libjava/classpath/gnu/java/security/action/GetPropertyAction.java b/libjava/classpath/gnu/java/security/action/GetPropertyAction.java index 2886deb3474..0c8141a4d9b 100644 --- a/libjava/classpath/gnu/java/security/action/GetPropertyAction.java +++ b/libjava/classpath/gnu/java/security/action/GetPropertyAction.java @@ -49,7 +49,7 @@ import java.security.PrivilegedAction; * String port = AccessController.doPrivileged(action); * */ -public class GetPropertyAction implements PrivilegedAction +public class GetPropertyAction implements PrivilegedAction { String name; String value = null; @@ -68,7 +68,7 @@ public class GetPropertyAction implements PrivilegedAction setParameters(propName, defaultValue); } - public Object run() + public String run() { return System.getProperty(name, value); } diff --git a/libjava/classpath/gnu/java/security/action/GetSecurityPropertyAction.java b/libjava/classpath/gnu/java/security/action/GetSecurityPropertyAction.java index 97fa15d03e5..ac928ca336f 100644 --- a/libjava/classpath/gnu/java/security/action/GetSecurityPropertyAction.java +++ b/libjava/classpath/gnu/java/security/action/GetSecurityPropertyAction.java @@ -50,7 +50,7 @@ import java.security.Security; * String passwd = AccessController.doPrivileged(action); * */ -public class GetSecurityPropertyAction implements PrivilegedAction +public class GetSecurityPropertyAction implements PrivilegedAction { private String name; private String value; @@ -83,7 +83,7 @@ public class GetSecurityPropertyAction implements PrivilegedAction return this; } - public Object run() + public String run() { String val = Security.getProperty(name); if (val == null) diff --git a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java index c2650e6a49c..95220236617 100644 --- a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java +++ b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairRawCodec.java @@ -81,11 +81,11 @@ public class RSAKeyPairRawCodec * the toByteArray() method on the RSA parameter e. * * - * + * * @param key the key to encode. * @return the Raw format encoding of the designated key. * @exception IllegalArgumentException if the designated key is not an RSA - * one. + * one. */ public byte[] encodePublicKey(PublicKey key) { diff --git a/libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java b/libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java new file mode 100644 index 00000000000..be4d0a98d67 --- /dev/null +++ b/libjava/classpath/gnu/java/security/util/ByteBufferOutputStream.java @@ -0,0 +1,118 @@ +/* ByteBufferOutputStream.java -- output stream with a growable underlying + byte buffer. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.java.security.util; + +import java.io.IOException; +import java.io.OutputStream; + +import java.nio.ByteBuffer; + +/** + * An output stream that writes bytes to a ByteBuffer, which will be resized + * if more space is needed. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ByteBufferOutputStream extends OutputStream +{ + private ByteBuffer buffer; + + public ByteBufferOutputStream() + { + this(256); + } + + public ByteBufferOutputStream(int initialCapacity) + { + buffer = ByteBuffer.allocate(initialCapacity); + } + + /* (non-Javadoc) + * @see java.io.OutputStream#write(int) + */ + public @Override synchronized void write(int b) throws IOException + { + if (!buffer.hasRemaining()) + growBuffer(); + buffer.put((byte) b); + } + + public @Override synchronized void write(byte[] b, int offset, int length) + { + if (buffer.remaining() < length) + growBuffer(); + buffer.put(b, offset, length); + } + + public @Override void write(byte[] b) + { + write(b, 0, b.length); + } + + /** + * Get the current state of the buffer. The returned buffer will have + * its position set to zero, its capacity set to the current limit, + * and its limit set to its capacity. + * + * @return The buffer. + */ + public ByteBuffer buffer() + { + return ((ByteBuffer) buffer.duplicate().flip()).slice(); + } + + public String toString() + { + return super.toString() + " [ buffer: " + buffer + " ]"; + } + + private void growBuffer() + { + int newCapacity = buffer.capacity(); + if (newCapacity < 16384) // If the buffer isn't huge yet, double its size + newCapacity = newCapacity << 1; + else // Otherwize, increment by a bit. + newCapacity += 4096; + ByteBuffer newBuffer = ByteBuffer.allocate(newCapacity); + buffer.flip(); + newBuffer.put(buffer); + buffer = newBuffer; + } +} diff --git a/libjava/classpath/gnu/java/util/DoubleEnumeration.java b/libjava/classpath/gnu/java/util/DoubleEnumeration.java index 1fc37f8e0f8..94efb923d2a 100644 --- a/libjava/classpath/gnu/java/util/DoubleEnumeration.java +++ b/libjava/classpath/gnu/java/util/DoubleEnumeration.java @@ -1,5 +1,5 @@ /* gnu.java.util.DoubleEnumeration - Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -63,7 +63,7 @@ import java.util.NoSuchElementException; * @author Jochen Hoenicke * @author Mark Wielaard (mark@klomp.org) */ -public class DoubleEnumeration implements Enumeration +public class DoubleEnumeration implements Enumeration { /** * This is true as long as one of the enumerations has more @@ -82,17 +82,17 @@ public class DoubleEnumeration implements Enumeration /** * The first enumeration. */ - private Enumeration e1; + private Enumeration e1; /** * The second enumeration. */ - private Enumeration e2; + private Enumeration e2; /** * Creates a new Enumeration combining the given two enumerations. * The enumerations mustn't be accessed by other classes. */ - public DoubleEnumeration(Enumeration e1, Enumeration e2) + public DoubleEnumeration(Enumeration e1, Enumeration e2) { this.e1 = e1; this.e2 = e2; @@ -126,7 +126,7 @@ public class DoubleEnumeration implements Enumeration * element of the second enumeration. If both enumeration don't have * any elements it throws a NoSuchElementException. */ - public Object nextElement() + public T nextElement() { if (!hasMoreElements()) throw new NoSuchElementException(); diff --git a/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java b/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java index 5702751cf5c..a7e2322b524 100644 --- a/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java +++ b/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java @@ -72,7 +72,6 @@ import java.util.prefs.BackingStoreException; *
    * * @author Mario Torre - * @version 1.0.1 */ public class GConfBasedPreferences extends AbstractPreferences @@ -136,12 +135,20 @@ public class GConfBasedPreferences absolutePath = absolutePath.substring(0, absolutePath.length() - 1); } + // strip invalid characters + // please, note that all names are unescaped into the native peer + int index = absolutePath.lastIndexOf('/'); + if (index > -1) + { + absolutePath = absolutePath.substring(0, index + 1); + absolutePath = absolutePath + GConfNativePeer.escapeString(name); + } + this.node = this.getRealRoot(isUser) + absolutePath; boolean nodeExist = backend.nodeExist(this.node); this.newNode = !nodeExist; - backend.startWatchingNode(this.node); } /** @@ -156,7 +163,15 @@ public class GConfBasedPreferences // we don't check anything here, if the node is a new node this will be // detected in the constructor, so we simply return a new reference to // the requested node. - return new GConfBasedPreferences(this, name, this.isUser); + + GConfBasedPreferences preferenceNode + = new GConfBasedPreferences(this, name, this.isUser); + + // register the node for to GConf so that it can listen + // events outside the scope of the application + backend.startWatchingNode(this.node); + + return preferenceNode; } /** @@ -365,6 +380,10 @@ public class GConfBasedPreferences { String nodeName = ""; + // strip key + // please, note that all names are unescaped into the native peer + key = GConfNativePeer.escapeString(key); + if (this.node.endsWith("/")) { nodeName = this.node + key; @@ -373,7 +392,7 @@ public class GConfBasedPreferences { nodeName = this.node + "/" + key; } - + return nodeName; } diff --git a/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java b/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java index f1cb6278767..6049863e916 100644 --- a/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java +++ b/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java @@ -45,7 +45,6 @@ import java.util.prefs.BackingStoreException; * Native peer for GConf based preference backend. * * @author Mario Torre - * @version 1.0.1 */ public final class GConfNativePeer { @@ -150,7 +149,7 @@ public final class GConfNativePeer */ public List getKeys(String node) throws BackingStoreException { - return gconf_client_gconf_client_all_keys(node); + return gconf_client_all_keys(node); } /** @@ -162,10 +161,26 @@ public final class GConfNativePeer */ public List getChildrenNodes(String node) throws BackingStoreException { - return gconf_client_gconf_client_all_nodes(node); + return gconf_client_all_nodes(node); } /** + * Escape the given string so the it is a valid GConf name. + */ + public static String escapeString(String plain) + { + return gconf_escape_key(plain); + } + + /** + * Unescape a string escaped with {@link #escapeString}. + */ + public static String unescapeString(String escaped) + { + return gconf_unescape_key(escaped); + } + + /** * Suggest to the backend GConf daemon to synch with the database. */ public void suggestSync() throws BackingStoreException @@ -270,8 +285,9 @@ public final class GConfNativePeer * Suggest to the GConf native peer a sync with the database. * */ - native static final protected void gconf_client_suggest_sync(); - + native static final protected void gconf_client_suggest_sync() + throws BackingStoreException; + /** * Returns a list of all nodes under the given node. * @@ -279,8 +295,9 @@ public final class GConfNativePeer * @return A list of nodes under the given source node. */ native - static final protected List gconf_client_gconf_client_all_nodes(String node); - + static final protected List gconf_client_all_nodes(String node) + throws BackingStoreException; + /** * Returns a list of all keys stored in the given node. * @@ -288,8 +305,28 @@ public final class GConfNativePeer * @return A list of all keys stored in the given node. */ native - static final protected List gconf_client_gconf_client_all_keys(String node); + static final protected List gconf_client_all_keys(String node) + throws BackingStoreException; + /** + * Escape the input String so that it's a valid element for GConf. + * + * @param plain the String to escape. + * @return An escaped String for use with GConf. + */ + native + static final protected String gconf_escape_key(String plain); + + /** + * Converts a string escaped with gconf_escape_key back into its + * original form. + * + * @param escaped key as returned by gconf_escape_key + * @return An unescaped key. + */ + native + static final protected String gconf_unescape_key(String escaped); + static { System.loadLibrary("gconfpeer"); diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexed.java b/libjava/classpath/gnu/java/util/regex/CharIndexed.java index 6cd857e3bc0..27e07b2f8ff 100644 --- a/libjava/classpath/gnu/java/util/regex/CharIndexed.java +++ b/libjava/classpath/gnu/java/util/regex/CharIndexed.java @@ -77,6 +77,13 @@ public interface CharIndexed { boolean move(int index); /** + * Shifts the input buffer by a given number of positions. Returns + * true if the new cursor position is valid or cursor position is at + * the end of input. + */ + boolean move1(int index); // I cannot think of a better name for this. + + /** * Returns true if the most recent move() operation placed the cursor * position at a valid position in the input. */ @@ -105,6 +112,16 @@ public interface CharIndexed { REMatch getLastMatch(); /** + * Sets the information used for hitEnd(). + */ + void setHitEnd(REMatch match); + + /** + * Returns whether the matcher has hit the end of input. + */ + boolean hitEnd(); + + /** * Returns the anchor. */ int getAnchor(); diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java b/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java index 2eb753b0f5c..8a0578eb80f 100644 --- a/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java +++ b/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java @@ -62,6 +62,10 @@ class CharIndexedCharSequence implements CharIndexed, Serializable { return ((anchor += index) < len); } + public boolean move1(int index) { + return ((anchor += index) <= len); + } + public CharIndexed lookBehind(int index, int length) { if (length > (anchor + index)) length = anchor + index; return new CharIndexedCharSequence(s, anchor + index - length); @@ -77,6 +81,15 @@ class CharIndexedCharSequence implements CharIndexed, Serializable { lastMatch.anchor = anchor; } public REMatch getLastMatch() { return lastMatch; } + + private int rightmostTriedPosition = 0; + public void setHitEnd(REMatch match) { + int pos = anchor + match.index; + if (pos > rightmostTriedPosition) rightmostTriedPosition = pos; + } + public boolean hitEnd() { return rightmostTriedPosition >= len; } + public int getAnchor() { return anchor; } public void setAnchor(int anchor) { this.anchor = anchor; } + } diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java b/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java index 77cd1abd5cc..844fada51fc 100644 --- a/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java +++ b/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java @@ -166,6 +166,16 @@ class CharIndexedInputStream implements CharIndexed { "difficult to support getLastMatch for an input stream"); } + public void setHitEnd(REMatch match) { + throw new UnsupportedOperationException( + "difficult to support setHitEnd for an input stream"); + } + + public boolean hitEnd() { + throw new UnsupportedOperationException( + "difficult to support hitEnd for an input stream"); + } + public int getAnchor() { throw new UnsupportedOperationException( "difficult to support getAnchor for an input stream"); @@ -176,6 +186,10 @@ class CharIndexedInputStream implements CharIndexed { "difficult to support setAnchor for an input stream"); } + public boolean move1(int index) { + throw new UnsupportedOperationException( + "difficult to support move1 for an input stream"); + } } diff --git a/libjava/classpath/gnu/java/util/regex/RE.java b/libjava/classpath/gnu/java/util/regex/RE.java index 1aab3b781a2..09ff74b908f 100644 --- a/libjava/classpath/gnu/java/util/regex/RE.java +++ b/libjava/classpath/gnu/java/util/regex/RE.java @@ -130,7 +130,11 @@ public class RE extends REToken { private static final String VERSION = "1.1.5-dev"; // The localized strings are kept in a separate file - private static ResourceBundle messages = PropertyResourceBundle.getBundle("gnu/java/util/regex/MessagesBundle", Locale.getDefault()); + // Used by getLocalizedMessage(). + private static ResourceBundle messages; + + // Name of the bundle that contains the localized messages. + private static final String bundle = "gnu/java/util/regex/MessagesBundle"; // These are, respectively, the first and last tokens in our linked list // If there is only one token, firstToken == lastToken @@ -252,6 +256,13 @@ public class RE extends REToken { */ public static final int REG_ICASE_USASCII = 0x0800; + /** + * Execution flag. + * Do not move the position at which the search begins. If not set, + * the starting position will be moved until a match is found. + */ + public static final int REG_FIX_STARTING_POSITION = 0x1000; + /** Returns a string representing the version of the gnu.regexp package. */ public static final String version() { return VERSION; @@ -259,6 +270,8 @@ public class RE extends REToken { // Retrieves a message from the ResourceBundle static final String getLocalizedMessage(String key) { + if (messages == null) + messages = PropertyResourceBundle.getBundle(bundle, Locale.getDefault()); return messages.getString(key); } @@ -1643,6 +1656,7 @@ public class RE extends REToken { /* Implements abstract method REToken.match() */ boolean match(CharIndexed input, REMatch mymatch) { + input.setHitEnd(mymatch); if (firstToken == null) { return next(input, mymatch); } @@ -1720,15 +1734,23 @@ public class RE extends REToken { REMatch getMatchImpl(CharIndexed input, int anchor, int eflags, StringBuffer buffer) { boolean tryEntireMatch = ((eflags & REG_TRY_ENTIRE_MATCH) != 0); + boolean doMove = ((eflags & REG_FIX_STARTING_POSITION) == 0); RE re = (tryEntireMatch ? (RE) this.clone() : this); if (tryEntireMatch) { - re.chain(new RETokenEnd(0, null)); + RETokenEnd reEnd = new RETokenEnd(0, null); + reEnd.setFake(true); + re.chain(reEnd); } // Create a new REMatch to hold results REMatch mymatch = new REMatch(numSubs, anchor, eflags); do { + /* The following potimization is commented out because + the matching should be tried even if the length of + input is obviously too short in order that + java.util.regex.Matcher#hitEnd() may work correctly. // Optimization: check if anchor + minimumLength > length if (minimumLength == 0 || input.charAt(minimumLength-1) != CharIndexed.OUT_OF_BOUNDS) { + */ if (re.match(input, mymatch)) { REMatch best = mymatch; // We assume that the match that coms first is the best. @@ -1749,13 +1771,17 @@ public class RE extends REToken { input.setLastMatch(best); return best; } - } + /* End of the optimization commented out + } + */ mymatch.clear(++anchor); // Append character to buffer if needed if (buffer != null && input.charAt(0) != CharIndexed.OUT_OF_BOUNDS) { buffer.append(input.charAt(0)); } - } while (input.move(1)); + // java.util.regex.Matcher#hitEnd() requires that the search should + // be tried at the end of input, so we use move1(1) instead of move(1) + } while (doMove && input.move1(1)); // Special handling at end of input for e.g. "$" if (minimumLength == 0) { diff --git a/libjava/classpath/gnu/java/util/regex/REMatch.java b/libjava/classpath/gnu/java/util/regex/REMatch.java index 3ff5ad794b8..d8994829323 100644 --- a/libjava/classpath/gnu/java/util/regex/REMatch.java +++ b/libjava/classpath/gnu/java/util/regex/REMatch.java @@ -307,12 +307,12 @@ public final class REMatch implements Serializable, Cloneable { } /* The following are used for debugging purpose - static String d(REMatch m) { + public static String d(REMatch m) { if (m == null) return "null"; else return "[" + m.index + "]"; } - String substringUptoIndex(CharIndexed input) { + public String substringUptoIndex(CharIndexed input) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < index; i++) { sb.append(input.charAt(i)); diff --git a/libjava/classpath/gnu/java/util/regex/RESyntax.java b/libjava/classpath/gnu/java/util/regex/RESyntax.java index b66b32f5878..db11e2db450 100644 --- a/libjava/classpath/gnu/java/util/regex/RESyntax.java +++ b/libjava/classpath/gnu/java/util/regex/RESyntax.java @@ -54,8 +54,6 @@ import java.util.BitSet; public final class RESyntax implements Serializable { static final String DEFAULT_LINE_SEPARATOR = System.getProperty("line.separator"); - private static final String SYNTAX_IS_FINAL = RE.getLocalizedMessage("syntax.final"); - private BitSet bits; // true for the constant defined syntaxes @@ -513,7 +511,8 @@ public final class RESyntax implements Serializable { * @return a reference to this object for easy chaining. */ public RESyntax set(int index) { - if (isFinal) throw new IllegalAccessError(SYNTAX_IS_FINAL); + if (isFinal) + throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final")); bits.set(index); return this; } @@ -525,7 +524,8 @@ public final class RESyntax implements Serializable { * @return a reference to this object for easy chaining. */ public RESyntax clear(int index) { - if (isFinal) throw new IllegalAccessError(SYNTAX_IS_FINAL); + if (isFinal) + throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final")); bits.clear(index); return this; } @@ -548,7 +548,8 @@ public final class RESyntax implements Serializable { * @return this object for convenient chaining */ public RESyntax setLineSeparator(String aSeparator) { - if (isFinal) throw new IllegalAccessError(SYNTAX_IS_FINAL); + if (isFinal) + throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final")); lineSeparator = aSeparator; return this; } diff --git a/libjava/classpath/gnu/java/util/regex/REToken.java b/libjava/classpath/gnu/java/util/regex/REToken.java index 155c01878e8..9affd4ee3c9 100644 --- a/libjava/classpath/gnu/java/util/regex/REToken.java +++ b/libjava/classpath/gnu/java/util/regex/REToken.java @@ -72,6 +72,16 @@ abstract class REToken implements Serializable, Cloneable { /** Returns true if the match succeeded, false if it failed. */ boolean match(CharIndexed input, REMatch mymatch) { + return match(input, mymatch, false); + } + boolean matchFake(CharIndexed input, REMatch mymatch) { + return match(input, mymatch, true); + } + + private boolean match(CharIndexed input, REMatch mymatch, boolean fake) { + if (!fake) { + setHitEnd(input, mymatch); + } REMatch m = matchThis(input, mymatch); if (m == null) return false; if (next(input, m)) { @@ -81,6 +91,11 @@ abstract class REToken implements Serializable, Cloneable { return false; } + /** Sets whether the matching occurs at the end of input */ + void setHitEnd(CharIndexed input, REMatch mymatch) { + input.setHitEnd(mymatch); + } + /** Returns true if the match succeeded, false if it failed. * The matching is done against this REToken only. Chained * tokens are not checked. diff --git a/libjava/classpath/gnu/java/util/regex/RETokenChar.java b/libjava/classpath/gnu/java/util/regex/RETokenChar.java index 92d3efcf85b..b70e6b1d843 100644 --- a/libjava/classpath/gnu/java/util/regex/RETokenChar.java +++ b/libjava/classpath/gnu/java/util/regex/RETokenChar.java @@ -58,15 +58,20 @@ final class RETokenChar extends REToken { } REMatch matchThis(CharIndexed input, REMatch mymatch) { - int z = ch.length; if (matchOneString(input, mymatch.index)) { - mymatch.index += z; + mymatch.index += matchedLength; return mymatch; } + // java.util.regex.Matcher#hitEnd() requires that the length of + // partial match be counted. + mymatch.index += matchedLength; + input.setHitEnd(mymatch); return null; } - boolean matchOneString(CharIndexed input, int index) { + private int matchedLength; + private boolean matchOneString(CharIndexed input, int index) { + matchedLength = 0; int z = ch.length; char c; for (int i=0; i out.length - outOff) throw new ShortBufferException(); @@ -447,16 +465,21 @@ class CipherAdapter break; case IMode.DECRYPTION: int padLen; + byte[] buf3 = new byte[buf.length + partLen]; try { - padLen = pad.unpad(buf, 0, buf.length); + if (partLen != mode.currentBlockSize()) + throw new WrongPaddingException(); + System.arraycopy(buf, 0, buf3, 0, buf.length); + mode.update(partBlock, 0, buf3, buf.length); + padLen = pad.unpad(buf3, 0, buf3.length); } catch (WrongPaddingException wpe) { throw new BadPaddingException(wpe.getMessage()); } - result = new byte[buf.length - padLen]; - System.arraycopy(buf, 0, result, 0, result.length); + result = new byte[buf3.length - padLen]; + System.arraycopy(buf3, 0, result, 0, result.length); break; default: throw new IllegalStateException(); diff --git a/libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java b/libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java new file mode 100644 index 00000000000..6f4bcb1b37e --- /dev/null +++ b/libjava/classpath/gnu/javax/crypto/key/GnuPBEKey.java @@ -0,0 +1,95 @@ +/* GnuPBEKey.java -- A password-based encryption key. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.crypto.key; + +import javax.crypto.interfaces.PBEKey; +import javax.crypto.spec.PBEKeySpec; + +/** + * An implementation of a password-based encryption key. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class GnuPBEKey + implements PBEKey +{ + private final PBEKeySpec spec; + + public GnuPBEKey (final PBEKeySpec spec) + { + if (spec == null) + throw new NullPointerException (); + this.spec = spec; + } + + public GnuPBEKey (char[] password, byte[] salt, int iterationCount) + { + this (new PBEKeySpec (password, salt, iterationCount)); + } + + public int getIterationCount () + { + return spec.getIterationCount (); + } + + public char[] getPassword () + { + return spec.getPassword (); + } + + public byte[] getSalt () + { + return spec.getSalt (); + } + + public String getAlgorithm () + { + return "PBE"; + } + + public String getFormat () + { + return "NONE"; // FIXME? + } + + public byte[] getEncoded () + { + return null; // FIXME? + } +} diff --git a/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java b/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java index bef1784eeb3..8fce5b8b0c6 100644 --- a/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java +++ b/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java @@ -100,8 +100,8 @@ public final class PKCS7 throws WrongPaddingException { int limit = offset + length; - int result = in[limit - 1] & 0xFF; - for (int i = 0; i < result; i++) + int result = in[--limit] & 0xFF; + for (int i = 0; i < result - 1; i++) if (result != (in[--limit] & 0xFF)) throw new WrongPaddingException(); if (Configuration.DEBUG) diff --git a/libjava/classpath/gnu/javax/management/Server.java b/libjava/classpath/gnu/javax/management/Server.java new file mode 100644 index 00000000000..5501b4af7c0 --- /dev/null +++ b/libjava/classpath/gnu/javax/management/Server.java @@ -0,0 +1,2200 @@ +/* Server.java -- A GNU Classpath management server. + 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 gnu.javax.management; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectStreamClass; +import java.io.StreamCorruptedException; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import javax.management.Attribute; +import javax.management.AttributeList; +import javax.management.AttributeNotFoundException; +import javax.management.BadAttributeValueExpException; +import javax.management.BadBinaryOpValueExpException; +import javax.management.BadStringOperationException; +import javax.management.DynamicMBean; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.IntrospectionException; +import javax.management.InvalidApplicationException; +import javax.management.InvalidAttributeValueException; +import javax.management.ListenerNotFoundException; +import javax.management.MalformedObjectNameException; +import javax.management.MBeanException; +import javax.management.MBeanInfo; +import javax.management.MBeanPermission; +import javax.management.MBeanRegistration; +import javax.management.MBeanRegistrationException; +import javax.management.MBeanServer; +import javax.management.MBeanServerDelegate; +import javax.management.MBeanTrustPermission; +import javax.management.NotCompliantMBeanException; +import javax.management.Notification; +import javax.management.NotificationBroadcaster; +import javax.management.NotificationEmitter; +import javax.management.NotificationFilter; +import javax.management.NotificationListener; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.OperationsException; +import javax.management.QueryExp; +import javax.management.ReflectionException; +import javax.management.RuntimeOperationsException; +import javax.management.StandardMBean; + +import javax.management.loading.ClassLoaderRepository; + +/** + * This class provides an {@link javax.management.MBeanServer} + * implementation for GNU Classpath. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class Server + implements MBeanServer +{ + + /** + * The name of the delegate bean. + */ + private static final ObjectName DELEGATE_NAME; + + /** + * The registered beans, represented as a map of + * {@link javax.management.ObjectName}s to + * {@link java.lang.Object}s. + */ + private final Map beans = new HashMap(); + + /** + * The default domain. + */ + private String defaultDomain; + + /** + * The outer server. + */ + private MBeanServer outer; + + /** + * The class loader repository. + */ + private ClassLoaderRepository repository; + + /** + * The map of listener delegates to the true + * listener. + */ + private Map listeners; + + /** + * Initialise the delegate name. + */ + static + { + try + { + DELEGATE_NAME = + new ObjectName("JMImplementation:type=MBeanServerDelegate"); + } + catch (MalformedObjectNameException e) + { + throw (Error) + (new InternalError("Failed to construct " + + "the delegate's object name.").initCause(e)); + } + } + + /** + * Constructs a new management server using the specified + * default domain, delegate bean and outer server. + * + * @param domain the default domain to use for beans constructed + * with no specified domain. + * @param outer an {@link javax.management.MBeanServer} to pass + * to beans implementing the {@link MBeanRegistration} + * interface, or null if this + * should be passed. + * @param delegate the delegate bean for this server. + */ + public Server(String defaultDomain, MBeanServer outer, + MBeanServerDelegate delegate) + { + this.defaultDomain = defaultDomain; + this.outer = outer; + try + { + registerMBean(delegate, DELEGATE_NAME); + } + catch (InstanceAlreadyExistsException e) + { + throw (Error) + (new InternalError("The delegate bean is " + + "already registered.").initCause(e)); + } + catch (MBeanRegistrationException e) + { + throw (Error) + (new InternalError("The delegate bean's preRegister " + + "methods threw an exception.").initCause(e)); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("The delegate bean is " + + "not compliant.").initCause(e)); + } + } + + /** + * Checks for the necessary security privileges to perform an + * operation. + * + * @param name the name of the bean being accessed. + * @param member the name of the operation or attribute being + * accessed, or null if one is not + * involved. + * @param action the action being performed. + * @throws SecurityException if the action is denied. + */ + private void checkSecurity(ObjectName name, String member, + String action) + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + try + { + MBeanInfo info = null; + if (name != null) + { + Object bean = getBean(name); + Method method = bean.getClass().getMethod("getMBeanInfo", null); + info = (MBeanInfo) method.invoke(bean, null); + } + sm.checkPermission(new MBeanPermission((info == null) ? + null : info.getClassName(), + member, name, action)); + } + catch (InstanceNotFoundException e) + { + throw (Error) + (new InternalError("Failed to get bean.").initCause(e)); + } + catch (NoSuchMethodException e) + { + throw (Error) + (new InternalError("Failed to get bean info.").initCause(e)); + } + catch (IllegalAccessException e) + { + throw (Error) + (new InternalError("Failed to get bean info.").initCause(e)); + } + catch (IllegalArgumentException e) + { + throw (Error) + (new InternalError("Failed to get bean info.").initCause(e)); + } + catch (InvocationTargetException e) + { + throw (Error) + (new InternalError("Failed to get bean info.").initCause(e)); + } + } + + /** + * Retrieves the specified bean. + * + * @param name the name of the bean. + * @return the bean. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + */ + private Object getBean(ObjectName name) + throws InstanceNotFoundException + { + ServerInfo bean = (ServerInfo) beans.get(name); + if (bean == null) + throw new InstanceNotFoundException("The bean, " + name + + ", was not found."); + return bean.getObject(); + } + + /** + * Registers the supplied listener with the specified management + * bean. Notifications emitted by the management bean are forwarded + * to the listener via the server, which will convert an MBean + * references in the source to a portable {@link ObjectName} + * instance. The notification is otherwise unchanged. + * + * @param name the name of the management bean with which the listener + * should be registered. + * @param listener the listener which will handle notifications from + * the bean. + * @param filter the filter to apply to incoming notifications, or + * null if no filtering should be applied. + * @param passback an object to be passed to the listener when a + * notification is emitted. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "addNotificationListener")}. + * @see #removeNotificationListener(ObjectName, NotificationListener) + * @see #removeNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + public void addNotificationListener(ObjectName name, NotificationListener listener, + NotificationFilter filter, Object passback) + throws InstanceNotFoundException + { + Object bean = getBean(name); + checkSecurity(name, null, "addNotificationListener"); + if (bean instanceof NotificationBroadcaster) + { + NotificationBroadcaster bbean = (NotificationBroadcaster) bean; + if (listeners == null) + listeners = new HashMap(); + NotificationListener indirection = new ServerNotificationListener(bean, name, + listener); + bbean.addNotificationListener(indirection, filter, passback); + listeners.put(listener, indirection); + } + } + + /** + *

    + * Registers the supplied listener with the specified management + * bean. Notifications emitted by the management bean are forwarded + * to the listener via the server, which will convert any MBean + * references in the source to portable {@link ObjectName} + * instances. The notification is otherwise unchanged. + *

    + *

    + * The listener that receives notifications will be the one that is + * registered with the given name at the time this method is called. + * Even if it later unregisters and ceases to use that name, it will + * still receive notifications. + *

    + * + * @param name the name of the management bean with which the listener + * should be registered. + * @param listener the name of the listener which will handle + * notifications from the bean. + * @param filter the filter to apply to incoming notifications, or + * null if no filtering should be applied. + * @param passback an object to be passed to the listener when a + * notification is emitted. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + * @throws RuntimeOperationsException if the bean associated with the given + * object name is not a + * {@link NotificationListener}. This + * exception wraps an + * {@link IllegalArgumentException}. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "addNotificationListener")}. + * @see #removeNotificationListener(ObjectName, NotificationListener) + * @see #removeNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + public void addNotificationListener(ObjectName name, ObjectName listener, + NotificationFilter filter, Object passback) + throws InstanceNotFoundException + { + Object lbean = getBean(listener); + if (!(lbean instanceof NotificationListener)) + { + RuntimeException e = + new IllegalArgumentException("The supplied listener name does not " + + "correspond to a notification listener."); + throw new RuntimeOperationsException(e); + } + addNotificationListener(name, ((NotificationListener) lbean), filter, passback); + } + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the default constructor and registers it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + *

    + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, Object[], String[]) + * createMBean(className, name, (Object[]) null, + * (String[]) null)} with null parameters + * and signature. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + * @see #createMBean(String, ObjectName, Object[], String[]) + */ + public ObjectInstance createMBean(String className, ObjectName name) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException + { + return createMBean(className, name, (Object[]) null, (String[]) null); + } + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param params the parameters for the bean's constructor. + * @param sig the signature of the constructor to use. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + */ + public ObjectInstance createMBean(String className, ObjectName name, + Object[] params, String[] sig) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException + { + return registerMBean(instantiate(className, params, sig), name); + } + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the default constructor and registers it with the server + * under the supplied name. The class is loaded using the + * given class loader. If this argument is null, + * then the same class loader as was used to load the server + * is used. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + *

    + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, ObjectName, Object[], String) + * createMBean(className, name, loaderName, (Object[]) null, + * (String) null)} with null parameters + * and signature. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param loaderName the name of the class loader. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) + */ + public ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException + { + return createMBean(className, name, loaderName, (Object[]) null, + (String[]) null); + } + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * given class loader. If this argument is null, + * then the same class loader as was used to load the server + * is used. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param loaderName the name of the class loader. + * @param params the parameters for the bean's constructor. + * @param sig the signature of the constructor to use. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + */ + public ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName, Object[] params, + String[] sig) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException + { + return registerMBean(instantiate(className, loaderName, params, sig), + name); + } + + /** + * Deserializes a byte array using the class loader of the specified + * management bean as its context. + * + * @param name the name of the bean whose class loader should be used. + * @param data the byte array to be deserialized. + * @return the deserialized object stream. + * @deprecated {@link #getClassLoaderFor(ObjectName)} should be used + * to obtain the class loader of the bean, which can then + * be used to perform deserialization in the user's code. + * @throws InstanceNotFoundException if the specified bean is not + * registered with the server. + * @throws OperationsException if any I/O error is thrown by the + * deserialization process. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getClassLoaderFor") + */ + public ObjectInputStream deserialize(ObjectName name, byte[] data) + throws InstanceNotFoundException, OperationsException + { + try + { + return new ServerInputStream(new ByteArrayInputStream(data), + getClassLoaderFor(name)); + } + catch (IOException e) + { + throw new OperationsException("An I/O error occurred: " + e); + } + } + + /** + * Deserializes a byte array using the same class loader for its context + * as was used to load the given class. This class loader is obtained by + * loading the specified class using the {@link + * javax.management.loading.ClassLoaderRepository Class Loader Repository} + * and then using the class loader of the resulting {@link Class} instance. + * + * @param name the name of the class which should be loaded to obtain the + * class loader. + * @param data the byte array to be deserialized. + * @return the deserialized object stream. + * @deprecated {@link #getClassLoaderRepository} should be used + * to obtain the class loading repository, which can then + * be used to obtain the {@link Class} instance and deserialize + * the array using its class loader. + * @throws OperationsException if any I/O error is thrown by the + * deserialization process. + * @throws ReflectionException if an error occurs in obtaining the + * {@link Class} instance. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, null, + * "getClassLoaderRepository") + */ + public ObjectInputStream deserialize(String name, byte[] data) + throws OperationsException, ReflectionException + { + try + { + Class c = getClassLoaderRepository().loadClass(name); + return new ServerInputStream(new ByteArrayInputStream(data), + c.getClassLoader()); + } + catch (IOException e) + { + throw new OperationsException("An I/O error occurred: " + e); + } + catch (ClassNotFoundException e) + { + throw new ReflectionException(e, "The class could not be found."); + } + } + + /** + * Deserializes a byte array using the same class loader for its context + * as was used to load the given class. The name of the class loader to + * be used is supplied, and may be null if the server's + * class loader should be used instead. + * + * @param name the name of the class which should be loaded to obtain the + * class loader. + * @param loader the name of the class loader to use, or null + * if the class loader of the server should be used. + * @param data the byte array to be deserialized. + * @return the deserialized object stream. + * @deprecated {@link #getClassLoader(ObjectName} can be used to obtain + * the named class loader and deserialize the array. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws OperationsException if any I/O error is thrown by the + * deserialization process. + * @throws ReflectionException if an error occurs in obtaining the + * {@link Class} instance. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, loader, + * "getClassLoader") + */ + public ObjectInputStream deserialize(String name, ObjectName loader, byte[] data) + throws InstanceNotFoundException, ReflectionException, + OperationsException + { + try + { + Class c = getClassLoader(loader).loadClass(name); + return new ServerInputStream(new ByteArrayInputStream(data), + c.getClassLoader()); + } + catch (IOException e) + { + throw new OperationsException("An I/O error occurred: " + e); + } + catch (ClassNotFoundException e) + { + throw new ReflectionException(e, "The class could not be found."); + } + } + + /** + * Returns the value of the supplied attribute from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param name the name of the attribute to retrieve. + * @return the value of the attribute. + * @throws AttributeNotFoundException if the attribute could not be + * accessed from the bean. + * @throws MBeanException if the management bean's accessor throws + * an exception. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, name, bean, + * "getAttribute")}. + * @see DynamicMBean#getAttribute(String) + */ + public Object getAttribute(ObjectName bean, String name) + throws MBeanException, AttributeNotFoundException, + InstanceNotFoundException, ReflectionException + { + if (bean == null || name == null) + { + RuntimeException e = + new IllegalArgumentException("One of the supplied arguments was null."); + throw new RuntimeOperationsException(e); + } + Object abean = getBean(bean); + checkSecurity(bean, name, "getAttribute"); + if (abean instanceof DynamicMBean) + return ((DynamicMBean) abean).getAttribute(name); + else + try + { + return new StandardMBean(abean, null).getAttribute(name); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("Failed to create dynamic bean.").initCause(e)); + } + } + + + /** + * Returns the values of the named attributes from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param names the names of the attributes to retrieve. + * @return the values of the attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, bean, + * "getAttribute")}. Additionally, + * for an attribute name, n, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, n, bean, + * "getAttribute")} or that attribute will + * not be included. + * + * @see DynamicMBean#getAttributes(String[]) + */ + public AttributeList getAttributes(ObjectName bean, String[] names) + throws InstanceNotFoundException, ReflectionException + { + if (bean == null || names == null) + { + RuntimeException e = + new IllegalArgumentException("One of the supplied arguments was null."); + throw new RuntimeOperationsException(e); + } + Object abean = getBean(bean); + checkSecurity(bean, null, "getAttribute"); + AttributeList list = new AttributeList(names.length); + for (int a = 0; a < names.length; ++a) + { + if (names[a] == null) + { + RuntimeException e = + new IllegalArgumentException("Argument " + a + " was null."); + throw new RuntimeOperationsException(e); + } + checkSecurity(bean, names[a], "getAttribute"); + try + { + Object value; + if (abean instanceof DynamicMBean) + value = ((DynamicMBean) abean).getAttribute(names[a]); + else + try + { + value = new StandardMBean(abean, null).getAttribute(names[a]); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("Failed to create dynamic bean.").initCause(e)); + } + list.add(new Attribute(names[a], value)); + } + catch (AttributeNotFoundException e) + { + /* Ignored */ + } + catch (MBeanException e) + { + /* Ignored */ + } + } + return list; + } + + + /** + * Returns the specified class loader. If the specified value is + * null, then the class loader of the server will be + * returned. If l is the requested class loader, + * and r is the actual class loader returned, then + * either l and r will be identical, + * or they will at least return the same class from + * {@link ClassLoader#loadClass(String)} for any given string. + * They may not be identical due to one or the other + * being wrapped in another class loader (e.g. for security). + * + * @param name the name of the class loader to return. + * @return the class loader. + * @throws InstanceNotFoundException if the class loader can not + * be found. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getClassLoader") + */ + public ClassLoader getClassLoader(ObjectName name) + throws InstanceNotFoundException + { + if (name == null) + { + checkSecurity(null, null, "getClassLoader"); + return getClass().getClassLoader(); + } + Object bean = getBean(name); + checkSecurity(name, null, "getClassLoader"); + return (ClassLoader) bean; + } + + /** + * Returns the class loader of the specified management bean. If + * l is the requested class loader, and r + * is the actual class loader returned, then either l + * and r will be identical, or they will at least + * return the same class from {@link ClassLoader#loadClass(String)} + * for any given string. They may not be identical due to one or + * the other being wrapped in another class loader (e.g. for + * security). + * + * @param name the name of the bean whose class loader should be + * returned. + * @return the class loader. + * @throws InstanceNotFoundException if the bean is not registered + * with the server. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getClassLoaderFor") + */ + public ClassLoader getClassLoaderFor(ObjectName name) + throws InstanceNotFoundException + { + Object bean = getBean(name); + checkSecurity(name, null, "getClassLoaderFor"); + return bean.getClass().getClassLoader(); + } + + /** + * Returns the class loader repository used by this server. + * + * @return the class loader repository. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, null, + * "getClassLoaderRepository") + */ + public ClassLoaderRepository getClassLoaderRepository() + { + return repository; + } + + /** + * Returns the default domain this server applies to beans that have + * no specified domain. + * + * @return the default domain. + */ + public String getDefaultDomain() + { + return defaultDomain; + } + + + /** + * Returns an array containing all the domains used by beans registered + * with this server. The ordering of the array is undefined. + * + * @return the list of domains. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, name, + * "getDomains")}. Additionally, + * for an domain, d, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, + * new ObjectName("d:x=x"), "getDomains")} + * or that domain will not be included. Note + * that "x=x" is an arbitrary key-value pair + * provided to satisfy the constructor. + * @see ObjectName#getDomain() + */ + public String[] getDomains() + { + checkSecurity(null, null, "getDomains"); + Set domains = new HashSet(); + Iterator iterator = beans.keySet().iterator(); + while (iterator.hasNext()) + { + String d = ((ObjectName) iterator.next()).getDomain(); + try + { + checkSecurity(new ObjectName(d + ":x=x"), null, "getDomains"); + domains.add(d); + } + catch (MalformedObjectNameException e) + { + /* Ignored */ + } + } + return (String[]) domains.toArray(new String[domains.size()]); + } + + /** + * Returns the number of management beans registered with this server. + * This may be less than the real number if the caller's access is + * restricted. + * + * @return the number of registered beans. + */ + public Integer getMBeanCount() + { + return Integer.valueOf(beans.size()); + } + + /** + * Returns information on the given management bean. + * + * @param name the name of the management bean. + * @return an instance of {@link MBeanInfo} for the bean. + * @throws IntrospectionException if an exception occurs in examining + * the bean. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurs when trying + * to invoke {@link DynamicMBean#getMBeanInfo()} + * on the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getMBeanInfo")}. + * @see DynamicMBean#getMBeanInfo() + */ + public MBeanInfo getMBeanInfo(ObjectName name) + throws InstanceNotFoundException, IntrospectionException, + ReflectionException + { + Object bean = getBean(name); + checkSecurity(name, null, "getMBeanInfo"); + try + { + Method method = bean.getClass().getMethod("getMBeanInfo", null); + return (MBeanInfo) method.invoke(bean, null); + } + catch (NoSuchMethodException e) + { + throw new IntrospectionException("The getMBeanInfo method " + + "could not be found."); + } + catch (IllegalAccessException e) + { + throw new ReflectionException(e, "Failed to call getMBeanInfo"); + } + catch (IllegalArgumentException e) + { + throw new ReflectionException(e, "Failed to call getMBeanInfo"); + } + catch (InvocationTargetException e) + { + throw new ReflectionException(e, "The method threw an exception"); + } + } + + /** + * Returns the {@link ObjectInstance} created for the specified + * management bean on registration. + * + * @param name the name of the bean. + * @return the corresponding {@link ObjectInstance} instance. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getObjectInstance") + * @see #createMBean(String, ObjectName) + */ + public ObjectInstance getObjectInstance(ObjectName name) + throws InstanceNotFoundException + { + ServerInfo bean = (ServerInfo) beans.get(name); + if (bean == null) + throw new InstanceNotFoundException("The bean, " + name + + ", was not found."); + return bean.getInstance(); + } + + /** + *

    + * Creates an instance of the specified class using the list of + * class loaders from the {@link + * javax.management.loading.ClassLoaderRepository Class Loader + * Repository}. The class should have a public constructor + * with no arguments. A reference to the new instance is returned, + * but the instance is not yet registered with the server. + *

    + *

    + * This method is equivalent to calling {@link + * #instantiate(String, Object[], String[]) + * instantiate(name, (Object[]) null, (String[]) null)} + * with null parameters and signature. + *

    + * + * @param name the name of the class of bean to be instantiated. + * @return an instance of the given class. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + * @see #instantiate(String, Object[], String[]) + */ + public Object instantiate(String name) + throws ReflectionException, MBeanException + { + return instantiate(name, (Object[]) null, (String[]) null); + } + + /** + * Creates an instance of the specified class using the list of + * class loaders from the {@link + * javax.management.loading.ClassLoaderRepository Class Loader + * Repository}. The class should have a public constructor + * matching the supplied signature. A reference to the new + * instance is returned, but the instance is not yet + * registered with the server. + * + * @param name the name of the class of bean to be instantiated. + * @param params the parameters for the constructor. + * @param sig the signature of the constructor. + * @return an instance of the given class. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + */ + public Object instantiate(String name, Object[] params, String[] sig) + throws ReflectionException, MBeanException + { + checkSecurity(null, null, "instantiate"); + if (name == null) + { + RuntimeException e = + new IllegalArgumentException("The name was null."); + throw new RuntimeOperationsException(e); + } + Class[] sigTypes = new Class[sig.length]; + for (int a = 0; a < sigTypes.length; ++a) + { + try + { + sigTypes[a] = repository.loadClass(sig[a]); + } + catch (ClassNotFoundException e) + { + throw new ReflectionException(e, "The class, " + sigTypes[a] + + ", in the method signature " + + "could not be loaded."); + } + } + try + { + Constructor cons = + repository.loadClass(name).getConstructor(sigTypes); + return cons.newInstance(params); + } + catch (ClassNotFoundException e) + { + throw new ReflectionException(e, "The class, " + name + + ", of the constructor " + + "could not be loaded."); + } + catch (NoSuchMethodException e) + { + throw new ReflectionException(e, "The method, " + name + + ", could not be found."); + } + catch (IllegalAccessException e) + { + throw new ReflectionException(e, "Failed to instantiate the object"); + } + catch (InstantiationException e) + { + throw new ReflectionException(e, "Failed to instantiate the object"); + } + catch (InvocationTargetException e) + { + throw new MBeanException((Exception) e.getCause(), "The constructor " + + name + " threw an exception"); + } + } + + /** + *

    + * Creates an instance of the specified class using the supplied + * class loader. If the class loader given is null, + * then the class loader of the server will be used. The class + * should have a public constructor with no arguments. A reference + * to the new instance is returned, but the instance is not yet + * registered with the server. + *

    + *

    + * This method is equivalent to calling {@link + * #instantiate(String, ObjectName, Object[], String[]) + * instantiate(name, loaderName, (Object[]) null, + * (String[]) null)} with null parameters + * and signature. + *

    + * + * @param name the name of the class of bean to be instantiated. + * @param loaderName the name of the class loader to use. + * @return an instance of the given class. + * @throws InstanceNotFoundException if the class loader is not + * registered with the server. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + * @see #instantiate(String, Object[], String[]) + */ + public Object instantiate(String name, ObjectName loaderName) + throws InstanceNotFoundException, ReflectionException, + MBeanException + { + return instantiate(name, loaderName); + } + + /** + * Creates an instance of the specified class using the supplied + * class loader. If the class loader given is null, + * then the class loader of the server will be used. The class + * should have a public constructor matching the supplied + * signature. A reference to the new instance is returned, + * but the instance is not yet registered with the server. + * + * @param name the name of the class of bean to be instantiated. + * @param loaderName the name of the class loader to use. + * @param params the parameters for the constructor. + * @param sig the signature of the constructor. + * @return an instance of the given class. + * @throws InstanceNotFoundException if the class loader is not + * registered with the server. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + */ + public Object instantiate(String name, ObjectName loaderName, + Object[] params, String[] sig) + throws InstanceNotFoundException, ReflectionException, + MBeanException + { + checkSecurity(null, null, "instantiate"); + if (name == null) + { + RuntimeException e = + new IllegalArgumentException("The name was null."); + throw new RuntimeOperationsException(e); + } + ClassLoader loader = getClassLoader(loaderName); + Class[] sigTypes = new Class[sig.length]; + for (int a = 0; a < sig.length; ++a) + { + try + { + sigTypes[a] = Class.forName(sig[a], true, loader); + } + catch (ClassNotFoundException e) + { + throw new ReflectionException(e, "The class, " + sig[a] + + ", in the method signature " + + "could not be loaded."); + } + } + try + { + Constructor cons = + Class.forName(name, true, loader).getConstructor(sigTypes); + return cons.newInstance(params); + } + catch (ClassNotFoundException e) + { + throw new ReflectionException(e, "The class, " + name + + ", of the constructor " + + "could not be loaded."); + } + catch (NoSuchMethodException e) + { + throw new ReflectionException(e, "The method, " + name + + ", could not be found."); + } + catch (IllegalAccessException e) + { + throw new ReflectionException(e, "Failed to instantiate the object"); + } + catch (InstantiationException e) + { + throw new ReflectionException(e, "Failed to instantiate the object"); + } + catch (InvocationTargetException e) + { + throw new MBeanException((Exception) e.getCause(), "The constructor " + + name + " threw an exception"); + } + } + + /** + * Invokes the supplied operation on the specified management + * bean. The class objects specified in the signature are loaded + * using the same class loader as was used for the management bean. + * + * @param bean the management bean whose operation should be invoked. + * @param name the name of the operation to invoke. + * @param params the parameters of the operation. + * @param sig the signature of the operation. + * @return the return value of the method. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanException if the method invoked throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws ReflectionException if an exception is thrown in invoking the + * method. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, name, bean, + * "invoke")}. + * @see DynamicMBean#invoke(String, Object[], String[]) + */ + public Object invoke(ObjectName bean, String name, Object[] params, String[] sig) + throws InstanceNotFoundException, MBeanException, + ReflectionException + { + if (bean == null) + { + RuntimeException e = + new IllegalArgumentException("The bean was null."); + throw new RuntimeOperationsException(e); + } + Object abean = getBean(bean); + checkSecurity(bean, name, "invoke"); + if (abean instanceof DynamicMBean) + return ((DynamicMBean) abean).invoke(name, params, sig); + else + try + { + return new StandardMBean(abean, null).invoke(name, params, sig); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("Failed to create dynamic bean.").initCause(e)); + } + } + + /** + *

    + * Returns true if the specified management bean is an instance + * of the supplied class. + *

    + *

    + * A bean, B, is an instance of a class, C, if either of the following + * conditions holds: + *

    + *
      + *
    • The class name in B's {@link MBeanInfo} is equal to the supplied + * name.
    • + *
    • Both the class of B and C were loaded by the same class loader, + * and B is assignable to C.
    • + *
    + * + * @param name the name of the management bean. + * @param className the name of the class to test if name is + * an instance of. + * @return true if either B is directly an instance of the named class, + * or B is assignable to the class, given that both it and B's + * current class were loaded using the same class loader. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "isInstanceOf") + */ + public boolean isInstanceOf(ObjectName name, String className) + throws InstanceNotFoundException + { + Object bean = getBean(name); + checkSecurity(name, null, "isInstanceOf"); + MBeanInfo info; + if (bean instanceof DynamicMBean) + info = ((DynamicMBean) bean).getMBeanInfo(); + else + try + { + info = new StandardMBean(bean, null).getMBeanInfo(); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("Failed to create dynamic bean.").initCause(e)); + } + if (info.getClassName().equals(className)) + return true; + Class bclass = bean.getClass(); + try + { + Class oclass = Class.forName(className); + return (bclass.getClassLoader().equals(oclass.getClassLoader()) && + oclass.isAssignableFrom(bclass)); + } + catch (ClassNotFoundException e) + { + return false; + } + } + + /** + * Returns true if the specified management bean is registered with + * the server. + * + * @param name the name of the management bean. + * @return true if the bean is registered. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean name. + */ + public boolean isRegistered(ObjectName name) + { + if (name == null) + { + RuntimeException e = + new IllegalArgumentException("The name was null."); + throw new RuntimeOperationsException(e); + } + return beans.containsKey(name); + } + + /** + *

    + * Returns a set of {@link ObjectInstance}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + *

    + *
      + *
    1. Pattern matching is performed using the supplied + * {@link ObjectName}.
    2. + *
    3. The supplied query expression is applied.
    4. + *
    + *

    + * If both the object name and the query expression are null, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + *

    + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name. + * @return a set of {@link ObjectInstance}s matching the filtered beans. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, name, + * "queryMBeans")}. Additionally, + * for an bean, b, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, b, name, + * "queryMBeans")} or that bean will + * not be included. Such an exception may also + * arise from the execution of the query, in which + * case that particular bean will again be excluded. + */ + public Set queryMBeans(ObjectName name, QueryExp query) + { + checkSecurity(name, null, "queryMBeans"); + Set results = new HashSet(); + Iterator iterator = beans.entrySet().iterator(); + while (iterator.hasNext()) + { + Map.Entry entry = (Map.Entry) iterator.next(); + ObjectName nextName = (ObjectName) entry.getKey(); + checkSecurity(name, nextName.toString(), "queryMBeans"); + try + { + if ((name == null || name.apply(nextName)) && + (query == null || query.apply(nextName))) + results.add(((ServerInfo) entry.getValue()).getInstance()); + } + catch (BadStringOperationException e) + { + /* Ignored -- assume false result */ + } + catch (BadBinaryOpValueExpException e) + { + /* Ignored -- assume false result */ + } + catch (BadAttributeValueExpException e) + { + /* Ignored -- assume false result */ + } + catch (InvalidApplicationException e) + { + /* Ignored -- assume false result */ + } + } + return results; + } + + /** + *

    + * Returns a set of {@link ObjectName}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + *

    + *
      + *
    1. Pattern matching is performed using the supplied + * {@link ObjectName}.
    2. + *
    3. The supplied query expression is applied.
    4. + *
    + *

    + * If both the object name and the query expression are null, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + *

    + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name. + * @return a set of {@link ObjectName}s matching the filtered beans. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, name, + * "queryNames")}. Additionally, + * for an name, n, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, n, name, + * "queryNames")} or that name will + * not be included. Such an exception may also + * arise from the execution of the query, in which + * case that particular bean will again be excluded. + * Note that these permissions are implied if the + * queryMBeans permissions are available. + */ + public Set queryNames(ObjectName name, QueryExp query) + { + checkSecurity(name, null, "queryNames"); + Set results = new HashSet(); + Iterator iterator = beans.entrySet().iterator(); + while (iterator.hasNext()) + { + Map.Entry entry = (Map.Entry) iterator.next(); + ObjectName nextName = (ObjectName) entry.getKey(); + checkSecurity(name, nextName.toString(), "queryNames"); + try + { + if ((name == null || name.apply(nextName)) && + (query == null || query.apply(nextName))) + results.add(nextName); + } + catch (BadStringOperationException e) + { + /* Ignored -- assume false result */ + } + catch (BadBinaryOpValueExpException e) + { + /* Ignored -- assume false result */ + } + catch (BadAttributeValueExpException e) + { + /* Ignored -- assume false result */ + } + catch (InvalidApplicationException e) + { + /* Ignored -- assume false result */ + } + } + return results; + } + + /** + * Registers the supplied instance with the server, using the specified + * {@link ObjectName}. If the name given is null, then + * the bean supplied is expected to implement the {@link MBeanRegistration} + * interface and provide the name via the + * {@link MBeanRegistration#preRegister preRegister} method + * of this interface. + * + * @param obj the object to register with the server. + * @param name the name under which to register the object, + * or null if the {@link MBeanRegistration} + * interface should be used. + * @return an {@link ObjectInstance} containing the supplied + * {@link ObjectName} along with the name of the bean's class. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null object. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "registerMBean")}. className + * here corresponds to the result of + * {@link MBeanInfo#getClassName()} for objects of + * this class. If this check succeeds, a check + * is also made on its + * {@link java.security.ProtectionDomain} to ensure + * it implies {@link MBeanTrustPermission(String) + * MBeanTrustPermission("register")}. + * The use of the {@link MBeanRegistration} interface + * results in another {@link MBeanPermission} check + * being made on the returned {@link ObjectName}. + */ + public ObjectInstance registerMBean(Object obj, ObjectName name) + throws InstanceAlreadyExistsException, MBeanRegistrationException, + NotCompliantMBeanException + { + SecurityManager sm = System.getSecurityManager(); + Class cl = obj.getClass(); + String className = cl.getName(); + if (sm != null) + { + sm.checkPermission(new MBeanPermission(className, null, name, + "registerMBean")); + if (!(cl.getProtectionDomain().implies(new MBeanTrustPermission("register")))) + throw new SecurityException("The protection domain of the object's class" + + "does not imply the trust permission," + + "register"); + } + if (obj == null) + { + RuntimeException e = + new IllegalArgumentException("The object was null."); + throw new RuntimeOperationsException(e); + } + MBeanRegistration register = null; + if (obj instanceof MBeanRegistration) + register = (MBeanRegistration) obj; + if (name == null) + { + if (register == null) + { + RuntimeException e = + new IllegalArgumentException("The name was null and " + + "the bean does not implement " + + "MBeanRegistration."); + throw new RuntimeOperationsException(e); + } + try + { + name = register.preRegister(this, null); + if (sm != null) + sm.checkPermission(new MBeanPermission(className, null, name, + "registerMBean")); + } + catch (SecurityException e) + { + register.postRegister(Boolean.FALSE); + throw e; + } + catch (Exception e) + { + register.postRegister(Boolean.FALSE); + throw new MBeanRegistrationException(e, "Pre-registration failed."); + } + } + if (beans.containsKey(name)) + { + if (register != null) + register.postRegister(Boolean.FALSE); + throw new InstanceAlreadyExistsException(name + "is already registered."); + } + ObjectInstance obji = new ObjectInstance(name, className); + beans.put(name, new ServerInfo(obji, obj)); + if (register != null) + register.postRegister(Boolean.TRUE); + return obji; + } + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. This includes all + * combinations of filters and passback objects registered for + * this listener. For more specific removal of listeners, see + * {@link #removeNotificationListener(ObjectName, + * NotificationListener,NotificationFilter,Object)} + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the listener to remove. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) + */ + public void removeNotificationListener(ObjectName name, + NotificationListener listener) + throws InstanceNotFoundException, ListenerNotFoundException + { + Object bean = getBean(name); + checkSecurity(name, null, "removeNotificationListener"); + if (bean instanceof NotificationBroadcaster) + { + NotificationBroadcaster bbean = (NotificationBroadcaster) bean; + NotificationListener indirection = (NotificationListener) + listeners.get(listener); + if (indirection == null) + bbean.removeNotificationListener(listener); + else + { + bbean.removeNotificationListener(indirection); + listeners.remove(listener); + } + } + } + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. Only the first instance with + * the supplied filter and passback object is removed. + * null is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(ObjectName, NotificationListener)}. + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the listener to remove. + * @param filter the filter of the listener to remove. + * @param passback the passback object of the listener to remove. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationEmitter#removeNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + public void removeNotificationListener(ObjectName name, + NotificationListener listener, + NotificationFilter filter, + Object passback) + throws InstanceNotFoundException, ListenerNotFoundException + { + Object bean = getBean(name); + checkSecurity(name, null, "removeNotificationListener"); + if (bean instanceof NotificationEmitter) + { + NotificationEmitter bbean = (NotificationEmitter) bean; + NotificationListener indirection = (NotificationListener) + listeners.get(listener); + if (indirection == null) + bbean.removeNotificationListener(listener, filter, passback); + else + { + bbean.removeNotificationListener(indirection, filter, passback); + listeners.remove(listener); + } + } + } + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. This includes all + * combinations of filters and passback objects registered for + * this listener. For more specific removal of listeners, see + * {@link #removeNotificationListener(ObjectName, + * ObjectName,NotificationFilter,Object)} + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the name of the listener to remove. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) + */ + public void removeNotificationListener(ObjectName name, ObjectName listener) + throws InstanceNotFoundException, ListenerNotFoundException + { + Object lbean = getBean(listener); + if (!(lbean instanceof NotificationListener)) + { + RuntimeException e = + new IllegalArgumentException("The supplied listener name does not " + + "correspond to a notification listener."); + throw new RuntimeOperationsException(e); + } + removeNotificationListener(name, ((NotificationListener) lbean)); + } + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. Only the first instance with + * the supplied filter and passback object is removed. + * null is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(ObjectName, ObjectName)}. + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the name of the listener to remove. + * @param filter the filter of the listener to remove. + * @param passback the passback object of the listener to remove. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationEmitter#removeNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + public void removeNotificationListener(ObjectName name, + ObjectName listener, + NotificationFilter filter, + Object passback) + throws InstanceNotFoundException, ListenerNotFoundException + { + Object lbean = getBean(listener); + if (!(lbean instanceof NotificationListener)) + { + RuntimeException e = + new IllegalArgumentException("The supplied listener name does not " + + "correspond to a notification listener."); + throw new RuntimeOperationsException(e); + } + removeNotificationListener(name, ((NotificationListener) lbean), filter, + passback); + } + + /** + * Sets the value of the specified attribute of the supplied + * management bean. + * + * @param name the name of the management bean. + * @param attribute the attribute to set. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws AttributeNotFoundException if the attribute does not + * correspond to an attribute + * of the bean. + * @throws InvalidAttributeValueException if the value is invalid + * for this particular + * attribute of the bean. + * @throws MBeanException if setting the attribute causes + * the bean to throw an exception (which + * becomes the cause of this exception). + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, name, bean, + * "setAttribute")}. + * @see #getAttribute(ObjectName, String) + * @see DynamicMBean#setAttribute(Attribute) + */ + public void setAttribute(ObjectName name, Attribute attribute) + throws InstanceNotFoundException, AttributeNotFoundException, + InvalidAttributeValueException, MBeanException, + ReflectionException + { + if (attribute == null || name == null) + { + RuntimeException e = + new IllegalArgumentException("One of the supplied arguments was null."); + throw new RuntimeOperationsException(e); + } + Object bean = getBean(name); + checkSecurity(name, attribute.getName(), "setAttribute"); + if (bean instanceof DynamicMBean) + ((DynamicMBean) bean).setAttribute(attribute); + else + try + { + new StandardMBean(bean, null).setAttribute(attribute); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("Failed to create dynamic bean.").initCause(e)); + } + } + + /** + * Sets the value of each of the specified attributes + * of the supplied management bean to that specified by + * the {@link Attribute} object. The returned list contains + * the attributes that were set and their new values. + * + * @param name the name of the management bean. + * @param attributes the attributes to set. + * @return a list of the changed attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * list. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, bean, + * "setAttribute")}. Additionally, + * for an attribute name, n, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, n, bean, + * "setAttribute")} or that attribute will + * not be included. + * @see #getAttributes(ObjectName, String[]) + * @see DynamicMBean#setAttributes(AttributeList) + */ + public AttributeList setAttributes(ObjectName name, AttributeList attributes) + throws InstanceNotFoundException, ReflectionException + { + if (name == null || attributes == null) + { + RuntimeException e = + new IllegalArgumentException("One of the supplied arguments was null."); + throw new RuntimeOperationsException(e); + } + Object abean = getBean(name); + checkSecurity(name, null, "setAttribute"); + AttributeList list = new AttributeList(attributes.size()); + Iterator it = attributes.iterator(); + while (it.hasNext()) + { + try + { + Attribute attrib = (Attribute) it.next(); + if (attrib == null) + { + RuntimeException e = + new IllegalArgumentException("An attribute was null."); + throw new RuntimeOperationsException(e); + } + checkSecurity(name, attrib.getName(), "setAttribute"); + if (abean instanceof DynamicMBean) + ((DynamicMBean) abean).setAttribute(attrib); + else + try + { + new StandardMBean(abean, null).setAttribute(attrib); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("Failed to create dynamic bean.").initCause(e)); + } + list.add(attrib); + } + catch (AttributeNotFoundException e) + { + /* Ignored */ + } + catch (InvalidAttributeValueException e) + { + /* Ignored */ + } + catch (MBeanException e) + { + /* Ignored */ + } + } + return list; + } + + /** + * Unregisters the specified management bean. Following this operation, + * the bean instance is no longer accessible from the server via this + * name. Prior to unregistering the bean, the + * {@link MBeanRegistration#preDeregister()} method will be called if + * the bean implements the {@link MBeanRegistration} interface. + * + * @param name the name of the management bean. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preDeregister + * method. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean name or a + * request being made to unregister the + * {@link MBeanServerDelegate} bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "unregisterMBean")}. + */ + public void unregisterMBean(ObjectName name) + throws InstanceNotFoundException, MBeanRegistrationException + { + if (name == null) + { + RuntimeException e = + new IllegalArgumentException("The name was null."); + throw new RuntimeOperationsException(e); + } + if (name.equals(DELEGATE_NAME)) + { + RuntimeException e = + new IllegalArgumentException("The delegate can not be unregistered."); + throw new RuntimeOperationsException(e); + } + Object bean = getBean(name); + checkSecurity(name, null, "unregisterMBean"); + MBeanRegistration register = null; + if (bean instanceof MBeanRegistration) + { + register = (MBeanRegistration) bean; + try + { + register.preDeregister(); + } + catch (Exception e) + { + throw new MBeanRegistrationException(e, "Pre-deregistration failed."); + } + } + beans.remove(name); + if (register != null) + register.postDeregister(); + } + + /** + * Input stream which deserializes using the given classloader. + */ + private class ServerInputStream + extends ObjectInputStream + { + + private ClassLoader cl; + + public ServerInputStream(InputStream is, ClassLoader cl) + throws IOException, StreamCorruptedException + { + super(is); + this.cl = cl; + } + + protected Class resolveClass(ObjectStreamClass osc) + throws ClassNotFoundException, IOException + { + try + { + return Class.forName(osc.getName(), true, cl); + } + catch (ClassNotFoundException e) + { + return super.resolveClass(osc); + } + } + + } + + /** + * Holder for information on registered beans. + */ + private class ServerInfo + { + private ObjectInstance instance; + + private Object object; + + public ServerInfo(ObjectInstance instance, Object object) + { + this.instance = instance; + this.object = object; + } + + public Object getObject() + { + return object; + } + + public ObjectInstance getInstance() + { + return instance; + } + } + + /** + * Notification listener which removes direct references + * to beans. + */ + private class ServerNotificationListener + implements NotificationListener + { + + /** + * The bean from which notifications are emitted. + */ + Object bean; + + /** + * The {@link ObjectName} of the emitting bean. + */ + ObjectName name; + + /** + * The real {@link NotificationListener}. + */ + NotificationListener listener; + + /** + * Constructs a new {@link ServerNotificationListener} replacing + * occurrences of bean with its name. + * + * @param bean the bean emitting notifications. + * @param name the object name of the emitting bean. + * @param listener the listener events eventually reach. + */ + public ServerNotificationListener(Object bean, ObjectName name, + NotificationListener listener) + { + this.bean = bean; + this.name = name; + this.listener = listener; + } + + /** + * Replace a direct reference to bean with its + * object reference, if necessary, before calling the listener. + * + * @param notif the notification being emitted. + * @param handback an object that will be returned to the notification + * listener when an event occurs. + */ + public void handleNotification(Notification notif, Object handback) + { + if (notif.getSource() == bean) + notif.setSource(name); + listener.handleNotification(notif, handback); + } + + } + +} diff --git a/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java b/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java new file mode 100644 index 00000000000..7d7a785fd2f --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java @@ -0,0 +1,956 @@ +/* ContextContinuation.java -- handles corbaname: urls + 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 gnu.javax.naming.giop; + +import gnu.CORBA.NamingService.Ext; +import gnu.CORBA.NamingService.NameTransformer; + +import java.util.Hashtable; + +import javax.naming.Binding; +import javax.naming.Context; +import javax.naming.ContextNotEmptyException; +import javax.naming.InvalidNameException; +import javax.naming.Name; +import javax.naming.NameAlreadyBoundException; +import javax.naming.NameClassPair; +import javax.naming.NameNotFoundException; +import javax.naming.NameParser; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.OperationNotSupportedException; +import javax.naming.directory.InvalidAttributesException; + +import org.omg.CORBA.ORB; +import org.omg.CORBA.portable.Delegate; +import org.omg.CORBA.portable.ObjectImpl; +import org.omg.CosNaming.BindingIteratorHolder; +import org.omg.CosNaming.BindingListHolder; +import org.omg.CosNaming.NameComponent; +import org.omg.CosNaming.NamingContext; +import org.omg.CosNaming.NamingContextExt; +import org.omg.CosNaming.NamingContextExtHelper; +import org.omg.CosNaming.NamingContextHelper; +import org.omg.CosNaming._NamingContextExtStub; +import org.omg.CosNaming._NamingContextStub; +import org.omg.CosNaming.NamingContextPackage.AlreadyBound; +import org.omg.CosNaming.NamingContextPackage.CannotProceed; +import org.omg.CosNaming.NamingContextPackage.InvalidName; +import org.omg.CosNaming.NamingContextPackage.NotFound; + +/** + * The context to represent the corba naming service. Being the naming service, + * the returned context supports creating the subcontexts, forwarding this task + * to the existing naming service. When listing bindings, it uses the + * {@link Context#BATCHSIZE} property to determine, how many bindings should + * be returned at once (the process is transparend) + * + * @author Audrius Meskauskas (audriusa@Bioinformatics.org) + */ +public class ContextContinuation implements Context +{ + /** + * This number of bindings will be requested from the naming server at once, + * while the subsequent bindings will be requested via binding iterator one by + * one. Use {@link Context#BATCHSIZE} to override the value of this constant. + */ + public int DEFAULT_BATCH_SIZE = 20; + + /** + * The actual CORBA naming service. + */ + NamingContextExt service; + + /** + * The object request broker, used to access the naming service. This field + * is only initialised when the context is constructed from the URL. + */ + ORB orb; + + /** + * The properties. + */ + Hashtable properties; + + /** + * The parent factory. + */ + GiopNamingServiceFactory factory; + + /** + * The name transformer to obtain the name from its string representation. The + * to_name method of the naming service is avoided as it may be remote and + * hence expensive. The conversion rules are standard and cannot be service + * specific. + */ + static NameTransformer transformer = new NameTransformer(); + + /** + * The batch size for list operations - how many to return at once. + */ + public final int howMany; + + /** + * Creates a new naming context that uses naming service, represented by the + * given CORBA object. + * + * @param namingService + * the naming service object. It must be possible to narrow it into + * the NamingContextExt. + * @param props + * the environment table. + * @param orb + * the associated ORB. This reference is used during cleanup. + * @param the + * parent factory. This reference is used during cleanup. + */ + public ContextContinuation(org.omg.CORBA.Object nsObject, + Hashtable props, ORB anOrb, + GiopNamingServiceFactory aFactory) + { + factory = aFactory; + orb = anOrb; + + Delegate delegate = ((ObjectImpl) nsObject)._get_delegate(); + + // If the IOR provides the IDL ID, we can check if our name + // service is old NamingContext or new NamingContextExt. + // Not all forms of the URL always provide the IDL id. + if (!nsObject._is_a(NamingContextExtHelper.id()) + && nsObject._is_a(NamingContextHelper.id())) + { + // We are surely working with the old version. + _NamingContextStub stub = new _NamingContextStub(); + stub._set_delegate(delegate); + // The Ext object will add the necessary extensions. + service = new Ext(stub); + } + else + { + // We expecte the service to be the NamingContextExt (this is true + // for both Sun's and our implementations). There is no easy way + // to check the version. + _NamingContextExtStub stub = new _NamingContextExtStub(); + stub._set_delegate(delegate); + service = stub; + } + properties = props; + howMany = getBatchSize(); + } + + /** + * Give the specified name for the specified object. The passed name must not + * be already bound to some other object. The components of the name are + * mapped into the components of the CORBA name. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws NameAlreadyBoundException + * if this name is already used to name some object. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void bind(Name name, Object obj) throws NamingException + { + try + { + org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; + service.bind(toGiop(name), object); + } + catch (ClassCastException e) + { + throw new NamingException(org.omg.CORBA.Object.class + " required "); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (AlreadyBound e) + { + throw new NameAlreadyBoundException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Give the specified name for the specified object. The passed name must not + * be already bound to some other object. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws NameAlreadyBoundException + * if this name is already used to name some object. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void bind(String name, Object obj) throws NamingException + { + try + { + org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; + service.bind(transformer.toName(name), object); + } + catch (ClassCastException e) + { + throw new NamingException(org.omg.CORBA.Object.class + " required "); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (AlreadyBound e) + { + throw new NameAlreadyBoundException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Releases all resources, associated with this context. The close() method + * can be called several times, but after it has been once invoked, it is not + * allowed to call any other method of this context. This method destroys + * the ORB, if we have one. + * + * @throws NamingException + */ + public void close() throws NamingException + { + if (orb != null && factory !=null) + { + factory.checkIfReferenced(orb); + } + } + + /** + * Not supported. + */ + public Name composeName(Name name, Name prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported + */ + public String composeName(String name1, String name2) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Creates the new naming subcontext and binds it to the current (this) + * context. The returned object will wrap around the newly created CORBA + * subcontext + * + * @param name + * the name of the new context being created + * @return the newly created context, bound to the instance of the context on + * that the method has been called + * @throws NameAlreadyBoundException + * if this name is already bound + * @throws InvalidAttributesException + * if the creation of the new context requires the missing mandatory + * attributes + * @throws NamingException + */ + public Context createSubcontext(Name subContext) throws NamingException + { + try + { + org.omg.CORBA.Object subcontext = service.bind_new_context( + toGiop(subContext)); + Hashtable clonedProps = new Hashtable(); + clonedProps.putAll(properties); + + // Nulls are passed both for orb and factory, as the child contexts + // need not to do any cleanup. + return new ContextContinuation(subcontext, clonedProps, null, null); + } + catch (AlreadyBound e) + { + throw new NameAlreadyBoundException(); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (Exception ex) + { + throw new NamingException(ex.toString()); + } + } + + /** + * Creates the new naming subcontext and binds it to the current (this) + * context. The returned object will wrap around the newly created CORBA + * subcontext + * + * @param name + * the name of the new context being created + * @return the newly created context, bound to the instance of the context on + * that the method has been called + * @throws NameAlreadyBoundException + * if this name is already bound + * @throws InvalidAttributesException + * if the creation of the new context requires the missing mandatory + * attributes + * @throws NamingException + */ + public Context createSubcontext(String subContext) throws NamingException + { + try + { + org.omg.CORBA.Object subcontext = + service.bind_new_context(transformer.toName(subContext)); + Hashtable clonedProps = new Hashtable(); + clonedProps.putAll(properties); + + // Nulls are passed both for orb and factory, as the child contexts + // need not to do any cleanup. + return new ContextContinuation(subcontext, clonedProps, null, + null); + } + catch (AlreadyBound e) + { + throw new NameAlreadyBoundException(subContext); + } + catch (InvalidName e) + { + throw new InvalidNameException(subContext); + } + catch (Exception ex) + { + throw new NamingException(ex.toString()); + } + } + + /** + * Removes the naming subcontext from this naming context. Returns without + * action if such subcontext does not exist. The context being destroyed must + * be empty. + * + * @param name + * the name of the subcontext beig removed. + * @throws ContextNotEmptyException + * if the named context is not empty. + * @throws NamingException + */ + public void destroySubcontext(Name subContext) throws NamingException + { + unbind(subContext); + } + + /** + * Removes the naming subcontext from this naming context. Returns without + * action if such subcontext does not exist. The context being destroyed must + * be empty. + * + * @param name + * the name of the subcontext beig removed. + * @throws ContextNotEmptyException + * if the named context is not empty. + * @throws NamingException + */ + public void destroySubcontext(String subContext) throws NamingException + { + unbind(subContext); + } + + /** + * Returs the full name of this naming context. The returned string is not a + * JNDI composite name and should not be passed directly to the methods of the + * naming context. This implementation returns the IOR. + * + * @return the full name of this naming context, in its own namespace. + * @throws OperationNotSupportedException + * if the naming system, represented by this context, does not + * support the notation of the full name. + * @throws NamingException + */ + public String getNameInNamespace() throws NamingException + { + if (orb != null) + return orb.object_to_string(service); + else + { + try + { + ObjectImpl impl = (ObjectImpl) service; + return impl._orb().object_to_string(impl); + } + catch (ClassCastException e) + { + throw new UnsupportedOperationException(); + } + } + } + + /** + * Not supported. + */ + public NameParser getNameParser(Name name) throws NamingException + { + throw new UnsupportedOperationException(); + } + + /** + * Not supported. + */ + public NameParser getNameParser(String name) throws NamingException + { + throw new UnsupportedOperationException(); + } + + /** + * Creates and returns the enumeration over the name bindings that are present + * the given subcontext. The enumeration elements have the type of + * {@link NameClassPair}, providing also information about the class of the + * bound object. The behaviour in the case if the bindings are added or + * removed later is not defined. The contents of the subcontexts are not + * included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration list(Name name) throws NamingException + { + BindingIteratorHolder bi = new BindingIteratorHolder(); + BindingListHolder bl = new BindingListHolder(); + + NamingContext subcontext; + + if (name.size() == 0) + subcontext = service; + else + { + try + { + subcontext = (NamingContextHelper.narrow(service.resolve(toGiop(name)))); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + + } + + subcontext.list(howMany, bl, bi); + + return new ListEnumeration(bl, bi, howMany); + } + + /** + * Creates and returns the enumeration over the name bindings that are present + * the given subcontext. The enumeration elements have the type of + * {@link NameClassPair}, providing also information about the class of the + * bound object. The behaviour in the case if the bindings are added or + * removed later is not defined. The contents of the subcontexts are not + * included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration list(String name) throws NamingException + { + BindingIteratorHolder bi = new BindingIteratorHolder(); + BindingListHolder bl = new BindingListHolder(); + + NamingContext subcontext; + + if (name.length() == 0) + subcontext = service; + else + { + try + { + subcontext = (NamingContextHelper.narrow(service.resolve_str(name))); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + + } + + subcontext.list(howMany, bl, bi); + + return new ListEnumeration(bl, bi, howMany); + } + + /** + * Creates and returns the enumeration over the name - object bindings that + * are present the given subcontext. The enumeration elements have the type of + * {@link Binding}, providing also information about the class of the bound + * object. The behaviour in the case if the bindings are added or removed + * later is not defined. The contents of the subcontexts are not included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration listBindings(Name name) throws NamingException + { + BindingIteratorHolder bi = new BindingIteratorHolder(); + BindingListHolder bl = new BindingListHolder(); + + NamingContext subcontext; + + if (name.size() == 0) + subcontext = service; + else + { + try + { + subcontext = (NamingContextHelper.narrow(service.resolve(toGiop(name)))); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + subcontext.list(howMany, bl, bi); + + return new ListBindingsEnumeration(bl, bi, howMany, subcontext); + } + + /** + * Creates and returns the enumeration over the name - object bindings that + * are present the given subcontext. The enumeration elements have the type of + * {@link Binding}, providing also information about the class of the bound + * object. The behaviour in the case if the bindings are added or removed + * later is not defined. The contents of the subcontexts are not included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration listBindings(String name) throws NamingException + { + BindingIteratorHolder bi = new BindingIteratorHolder(); + BindingListHolder bl = new BindingListHolder(); + + NamingContext subcontext; + + if (name.length() == 0) + subcontext = service; + else + { + try + { + subcontext = (NamingContextHelper.narrow(service.resolve_str(name))); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + + } + + subcontext.list(howMany, bl, bi); + + return new ListBindingsEnumeration(bl, bi, howMany, subcontext); + } + + /** + * Gets the previously named object by name. If the passed name is empty, the + * method should return a cloned instance of this naming context. + * + * @param name + * the name of the object being searched in this context + * @return the named object + * @throws NameNotFountException + * if the name is not found + */ + public Object lookup(Name name) throws NamingException + { + try + { + return service.resolve(toGiop(name)); + } + catch (NotFound e) + { + throw new NameNotFoundException(); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Gets the previously named object by name. If the passed name is empty, the + * method should return a cloned instance of this naming context. + * + * @param name + * the name of the object being searched in this context + * @return the named object + * @throws NamingException + * if the naming fails. + */ + public Object lookup(String name) throws NamingException + { + try + { + return service.resolve_str(name); + } + catch (NotFound e) + { + throw new NameNotFoundException(); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Not supported. + */ + public Object lookupLink(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported. + */ + public Object lookupLink(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Give the specified name for the specified object. Unlike bind, this method + * silently replaces the existing binding for this name, if one exists. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rebind(Name name, Object obj) throws NamingException + { + try + { + org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; + service.rebind(toGiop(name), object); + } + catch (ClassCastException e) + { + throw new NamingException(org.omg.CORBA.Object.class + " required "); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Give the specified name for the specified object. Unlike bind, this method + * silently replaces the existing binding for this name, if one exists. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rebind(String name, Object obj) throws NamingException + { + try + { + org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; + service.rebind(transformer.toName(name), object); + } + catch (ClassCastException e) + { + throw new NamingException(org.omg.CORBA.Object.class + " required "); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Renames the existing binding, removing the existing and giving the new name + * for the same object. + * + * @param oldName + * the existing name of the known object + * @param newName + * the new name of the same object + * @throws NameNotFoundException + * if the oldName is unknown for this context + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rename(Name oldName, Name newName) throws NamingException + { + Object object = lookup(oldName); + unbind(oldName); + bind(newName, object); + } + + /** + * Renames the existing binding, removing the existing and giving the new name + * for the same object. + * + * @param oldName + * the existing name of the known object + * @param newName + * the new name of the same object + * @throws NameNotFoundException + * if the oldName is unknown for this context + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rename(String oldName, String newName) throws NamingException + { + Object object = lookup(oldName); + unbind(oldName); + bind(newName, object); + } + + /** + * Removes the name - object mapping from the current context. This method + * returns without action if the name is not bound to an object in the + * terminal context, but throws {@link NameNotFoundException} if one of the + * intermadiate contexts does not exist. + * + * @param name + * the name to be removed + * @throws NameNotFoundException + * if one of the intermediate naming contexts does not exist. Will + * not be thrown if just the terminal binding is missing. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void unbind(Name name) throws NamingException + { + try + { + service.unbind(toGiop(name)); + } + catch (NotFound e) + { + throw new NameNotFoundException(); + } + catch (CannotProceed e) + { + throw new ContextNotEmptyException(); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + } + + /** + * Removes the name - object mapping from the current context. This method + * returns without action if the name is not bound to an object in the + * terminal context, but throws {@link NameNotFoundException} if one of the + * intermadiate contexts does not exist. + * + * @param name + * the name to be removed + * @throws NameNotFoundException + * if one of the intermediate naming contexts does not exist. Will + * not be thrown if just the terminal binding is missing. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void unbind(String name) throws NamingException + { + try + { + service.unbind(transformer.toName(name)); + } + catch (NotFound e) + { + throw new NameNotFoundException(name); + } + catch (CannotProceed e) + { + throw new ContextNotEmptyException(name); + } + catch (InvalidName e) + { + throw new InvalidNameException(name); + } + } + + /** + * Add new environment property to the environment of this context. Both name + * and value of the new property must not be null. If the property is already + * defined, is current value is replaced by the propVal. + * + * @param propName + * the name of the new property + * @param propVal + * the value of the new property + * @return the previous value of this property or null if the property has not + * been previously defined + * @throws NamingException + */ + public Object addToEnvironment(String key, Object value) + throws NamingException + { + if (key == null || value == null) + throw new NullPointerException(); + return properties.put(key, value); + } + + /** + * Returns the environment, associated with this naming context. The returned + * table should never be modified by the caller. Use {@link #addToEnvironment} + * and {@link #removeFromEnvironment} to modify the environement, if needed. + * + * @return the table, representing the environment of this context + * @throws NamingException + */ + public Hashtable getEnvironment() throws NamingException + { + return properties; + } + + /** + * Removes the property with the given name from the environment. Returns + * without action if this property is not defined. + * + * @param propName + * the name of the property being removed. + * @return the value of the property that has been removed or null if the + * property was not defined. + * @throws NamingException + */ + public Object removeFromEnvironment(String propName) throws NamingException + { + return properties.remove(propName); + } + + /** + * Convert the {@link Name} into array of the name components, required to the + * CORBA naming service. First the string representation is obtained, then + * it is converted using parsing rules of the CORBA name. + * + * @param name + * then name to convert + * @return the converted array of components. + */ + public NameComponent[] toGiop(Name name) throws InvalidName + { + return transformer.toName(name.toString()); + } + + /** + * Get the batch size from the environment properties. The batch size is used + * for listing operations. + * + * @return the batch size, or some default value if not specified. + */ + public int getBatchSize() + { + int batchSize = DEFAULT_BATCH_SIZE; + Object bs = properties.get(Context.BATCHSIZE); + if (bs != null) + { + try + { + int b = Integer.parseInt(bs.toString()); + if (b >= 0) + batchSize = b; + } + catch (NumberFormatException e) + { + // OK, use default value. + } + } + return batchSize; + } + + +} diff --git a/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java b/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java new file mode 100644 index 00000000000..397b1c7d9e4 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java @@ -0,0 +1,439 @@ +/* CorbalocParser.java -- handles corbaname: urls + 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 gnu.javax.naming.giop; + +import gnu.CORBA.IOR; +import gnu.CORBA.Minor; +import gnu.CORBA.Unexpected; +import gnu.CORBA.Version; +import gnu.CORBA.NamingService.NameTransformer; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLDecoder; +import java.util.StringTokenizer; + +import javax.naming.InvalidNameException; + +import org.omg.CORBA.BAD_PARAM; +import org.omg.CORBA.DATA_CONVERSION; +import org.omg.CORBA.ORB; +import org.omg.CORBA.Object; +import org.omg.CORBA.ORBPackage.InvalidName; + +/** + * Parses the alternative IOR representations into our IOR structure. + * + * TODO This parser currently supports only one address per target string. A + * string with the multiple addresses will be accepted, but only the last + * address will be taken into consideration. The fault tolerance is not yet + * implemented. + * + * The key string is filtered using {@link java.net.URLDecoder} that replaces + * the agreed escape sequences by the corresponding non alphanumeric characters. + * + * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) + */ +public class CorbalocParser + extends NameTransformer +{ + /** + * The corbaloc prefix. + */ + public static final String pxCORBALOC = "corbaloc"; + + /** + * The corbaname prefix. + */ + public static final String pxCORBANAME = "corbaname"; + + /** + * The IOR prefix. + */ + public static final String pxIOR = "ior"; + + /** + * The file:// prefix. + */ + public static final String pxFILE = "file://"; + + /** + * The ftp:// prefix. + */ + public static final String pxFTP = "ftp://"; + + /** + * The http:// prefix. + */ + public static final String pxHTTP = "http://"; + + /** + * Marks iiop protocol. + */ + public static final String IIOP = "iiop"; + + /** + * Marks rir protocol. + */ + public static final String RIR = "rir"; + + /** + * The default port value, as specified in OMG documentation. + */ + public static final int DEFAULT_PORT = 2809; + + /** + * The default name. + */ + public static final String DEFAULT_NAME = "NameService"; + + /** + * The string to name converter, initialized on demand. + */ + static NameTransformer converter; + + /** + * The current position. + */ + int p; + + /** + * The address being parsed, splitted into tokens. + */ + String[] t; + + /** + * Parse CORBALOC. + * + * The expected format is:
    + * 1. corbaloc:[iiop][version.subversion@]:host[:port]/key
    + * 2. corbaloc:rir:[/key]
    + * 3. corbaname:[iiop][version.subversion@]:host[:port]/key
    + * 4. corbaname:rir:[/key]
    + * 5. file://[file name]
    + * 6. http://[url]
    + * 7. ftp://[url]
    + * + * Protocol defaults to IOP, the object key defaults to the NameService. + * + * @param corbaloc the string to parse. + * @param orb the ORB, needed to create IORs and resolve rir references. + * + * @return the arrey of strings, first member being the IOR of the + * naming service, second member the name in the naming service. + */ + public synchronized String[] corbaloc(String corbaloc, + ORB orb) + throws InvalidNameException + { + return corbaloc(corbaloc, orb, 0); + } + + /** + * Parse controlling against the infinite recursion loop. + */ + private String[] corbaloc(String corbaloc, + ORB orb, int recursion) throws InvalidNameException + { + // The used CORBA specification does not state how many times we should to + //redirect, but the infinite loop may be used to knock out the system. + // by malicious attempt. + if (recursion > 10) + throw new DATA_CONVERSION("More than 10 redirections"); + + if (corbaloc.startsWith(pxFILE)) + return corbaloc(readFile(corbaloc.substring(pxFILE.length())), orb, recursion+1); + else if (corbaloc.startsWith(pxHTTP)) + return corbaloc(readUrl(corbaloc), orb, recursion+1); + else if (corbaloc.startsWith(pxFTP)) + return corbaloc(readUrl(corbaloc), orb, recursion+1); + + // The version numbers with default values. + int major = 1; + int minor = 0; + + // The host address. + String host; + + // The port. + int port = DEFAULT_PORT; + + // The object key as string. + String key; + + StringTokenizer st = new StringTokenizer(corbaloc, ":@/.,#", true); + + t = new String[st.countTokens()]; + + for (int i = 0; i < t.length; i++) + { + t[i] = st.nextToken(); + } + + p = 0; + + if (!t[p].startsWith(pxCORBANAME)) + throw new InvalidNameException(corbaloc+" must start with "+pxCORBANAME); + + p++; + + if (!t[p++].equals(":")) + throw new BAD_PARAM("Syntax (':' expected after name prefix)"); + + // Check for rir: + if (t[p].equals(RIR)) + { + p++; + if (!t[p++].equals(":")) + throw new BAD_PARAM("':' expected after 'rir'"); + + key = readKey("/"); + + Object object; + try + { + object = orb.resolve_initial_references(key); + return resolve(orb.object_to_string(object)); + } + catch (InvalidName e) + { + throw new BAD_PARAM("Unknown initial reference '" + key + "'"); + } + } + else + // Check for iiop. + if (t[p].equals(IIOP) || t[p].equals(":")) + { + IOR ior = new IOR(); + + Addresses: do + { // Read addresses. + if (t[p].equals(":")) + { + p++; + } + else + { + p++; + if (!t[p++].equals(":")) + throw new BAD_PARAM("':' expected after 'iiop'"); + // Check if version is present. + if (t[p + 1].equals(".")) + if (t[p + 3].equals("@")) + { + // Version info present. + try + { + major = Integer.parseInt(t[p++]); + } + catch (NumberFormatException e) + { + throw new BAD_PARAM("Major version number '" + + t[p - 1] + "'"); + } + p++; // '.' at this point. + try + { + minor = Integer.parseInt(t[p++]); + } + catch (NumberFormatException e) + { + throw new BAD_PARAM("Major version number '" + + t[p - 1] + "'"); + } + p++; // '@' at this point. + } + } + + ior.Internet.version = new Version(major, minor); + + // Then host data goes till '/' or ':'. + StringBuffer bhost = new StringBuffer(corbaloc.length()); + while (!t[p].equals(":") && !t[p].equals("/") && !t[p].equals(",")) + bhost.append(t[p++]); + + host = bhost.toString(); + + ior.Internet.host = host; + + if (t[p].equals(":")) + { + // Port specified. + p++; + try + { + port = Integer.parseInt(t[p++]); + } + catch (NumberFormatException e) + { + throw new BAD_PARAM("Invalid port '" + t[p - 1] + "'"); + } + } + + ior.Internet.port = port; + + // Id is not listed. + ior.Id = ""; + + if (t[p].equals(",")) + p++; + else + break Addresses; + } + while (true); + + key = readKey("/"); + ior.key = key.getBytes(); + + return resolve(ior.toStringifiedReference()); + } + + else + throw new InvalidNameException("Unsupported protocol '" + t[p] + + "' (iiop expected)"); + } + + /** + * Read IOR from the file in the local file system. + */ + String readFile(String file) + { + File f = new File(file); + if (!f.exists()) + { + DATA_CONVERSION err = new DATA_CONVERSION(f.getAbsolutePath() + + " does not exist."); + err.minor = Minor.Missing_IOR; + } + try + { + char[] c = new char[(int) f.length()]; + FileReader fr = new FileReader(f); + fr.read(c); + fr.close(); + return new String(c).trim(); + } + catch (IOException ex) + { + DATA_CONVERSION d = new DATA_CONVERSION(); + d.initCause(ex); + d.minor = Minor.Missing_IOR; + throw (d); + } + } + + /** + * Read IOR from the remote URL. + */ + String readUrl(String url) + { + URL u; + try + { + u = new URL(url); + } + catch (MalformedURLException mex) + { + throw new BAD_PARAM("Malformed URL: '" + url + "'"); + } + + try + { + InputStreamReader r = new InputStreamReader(u.openStream()); + + StringBuffer b = new StringBuffer(); + int c; + + while ((c = r.read()) > 0) + b.append((char) c); + + return b.toString().trim(); + } + catch (Exception exc) + { + DATA_CONVERSION d = new DATA_CONVERSION("Reading " + url + " failed."); + d.minor = Minor.Missing_IOR; + throw d; + } + } + + private String[] resolve(String nsIor) + { + String [] n = new String[2]; + n[0] = nsIor; + n[1] = readKey("#"); + return n; + } + + private String readKey(String delimiter) + throws BAD_PARAM + { + if (p < t.length) + if (!t[p].equals(delimiter)) + { + if (t[p].equals("#")) + return DEFAULT_NAME; + else + throw new BAD_PARAM("'" + delimiter + "String' expected '" + t[p] + + "' found"); + } + + StringBuffer bKey = new StringBuffer(); + p++; + + while (p < t.length && !t[p].equals("#")) + bKey.append(t[p++]); + + if (bKey.length() == 0) + return DEFAULT_NAME; + + try + { + return URLDecoder.decode(bKey.toString(), "UTF-8"); + } + catch (UnsupportedEncodingException e) + { + throw new Unexpected("URLDecoder does not support UTF-8", e); + } + } +} diff --git a/libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java b/libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java new file mode 100644 index 00000000000..9b93f8bb6a8 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java @@ -0,0 +1,187 @@ +/* GiopNamingEnumeration.java -- handles corbaname: urls + 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 gnu.javax.naming.giop; + +import java.util.NoSuchElementException; + +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; + +import org.omg.CosNaming.Binding; +import org.omg.CosNaming.BindingIterator; +import org.omg.CosNaming.BindingIteratorHolder; +import org.omg.CosNaming.BindingListHolder; + +/** + * Iterates over name class pairs, obtaining values first from the binding list + * and then from the binding iterator. + * + * @author Audrius Meskauskas + */ +public abstract class GiopNamingEnumeration implements NamingEnumeration +{ + /** + * The array of bindings, returned at once. + */ + Binding[] list; + + /** + * The binding iterator to obtain the subsequent bindings. May be null, + * if all values are stored in the list. + */ + BindingIterator iterator; + + /** + * The batch size. + */ + int batch; + + /** + * The position of the element in the binding list, that must be returned + * during the subsequent call of the next(). If this field is grater or equal + * to the lenght of the list, the subsequent values must be requested from the + * iterator. + */ + int p; + + GiopNamingEnumeration(BindingListHolder bh, BindingIteratorHolder bih, int batchSize) + { + list = bh.value; + iterator = bih.value; + batch = batchSize; + } + + /** + * Convert from the CORBA binding into that this enumeration should return. + * + * @param binding + * the binding to convert + * @return the value, that must be returned by the {@link #next()}. + */ + public abstract Object convert(Binding binding); + + public void close() throws NamingException + { + if (iterator != null) + { + iterator.destroy(); + iterator = null; + } + } + + /** + * Checks if there are more elements to return. + * + * @throws NamingException + * never + */ + public boolean hasMore() throws NamingException + { + return hasMoreElements(); + } + + /** + * Returns the next element. + * + * @throws NamingException + * never + */ + public Object next() throws NamingException + { + return nextElement(); + } + + /** + * Checks if there are more elements to return. + */ + public boolean hasMoreElements() + { + if (p < 0) + return false; + else if (p < list.length) + return true; + else + return getMore(); + } + + /** + * Returns the next element. + */ + public Object nextElement() + { + if (p < 0) + throw new NoSuchElementException(); + else if (p < list.length) + return convert(list[p++]); + else if (getMore()) + // getMore updates p + return convert(list[p++]); + else + throw new NoSuchElementException(); + } + + /** + * Tries to obtain more elements, return true on success. Updates the fields + * accordingly. + */ + boolean getMore() + { + if (iterator != null) + { + BindingListHolder holder = new BindingListHolder(); + boolean rt = iterator.next_n(batch, holder); + if (rt) + { + // The new pack of the bindings arrived. + p = 0; + list = holder.value; + return true; + } + else + { + iterator.destroy(); + iterator = null; + p = -1; + return false; + } + } + else + return false; + } +} diff --git a/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java new file mode 100644 index 00000000000..84aa3241365 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java @@ -0,0 +1,177 @@ +/* GiopNamingServiceFactory.java -- handles corbaname: urls + 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 gnu.javax.naming.giop; + +import gnu.CORBA.OrbFunctional; + +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; +import java.util.TreeMap; + +import javax.naming.Context; +import javax.naming.Name; + +import org.omg.CORBA.ORB; + +/** + * The context factory to represent the corbaname: style urls. Such URL states + * that the CORBA naming service exists on the given host. This service can + * return the required object, finding it by the given name. The names are + * parsed using the specification of the corbaname urls. Being the naming + * service, the returned context supports creating the subcontexts, forwarding + * this task to the existing naming service. + * + * @author Audrius Meskauskas (audriusa@Bioinformatics.org) + */ +public class GiopNamingServiceFactory +{ + /** + * The default naming service provider. It is assumed, that the naming service + * is running on the port 900 of the local host, using the GIOP version 1.2 + */ + public static final String DEFAULT_PROVIDER = + "corbaloc:iiop:1.2@127.0.0.1:900/NameService"; + + /** + * The table of all instantiated ORB's that are found by they ORB + * properties signatures. If all ORB related properties are the same, + * the ORB's are shared. + */ + public static Hashtable orbs = new Hashtable(); + + + /** + * Create a new instance of the corbaname URL context. + */ + public Object getObjectInstance(Object refObj, Name name, Context nameCtx, + Hashtable environment) + { + String provider = (String) environment.get(Context.PROVIDER_URL); + if (provider == null) + provider = DEFAULT_PROVIDER; + + String orbSignature = getOrbSignature(environment); + + ORB orb; + synchronized (orbs) + { + orb = (ORB) orbs.get(orbSignature); + if (orb == null) + { + Properties props = new Properties(); + props.putAll(environment); + orb = ORB.init(new String[0], props); + orbs.put(orbSignature, orb); + final ORB runIt = orb; + new Thread() + { + public void run() + { + runIt.run(); + } + }.start(); + } + } + + return new GiopNamingServiceURLContext(environment, this, orb); + } + + /** + * Check if this ORB is still in use (maybe it is time to shutdown it). This + * method only works when the Classpath CORBA implementation is used + * (otherwise it return without action). The method is called from the close() + * method of the created context. + * + * @param orb + * the ORB that maybe is no longer referenced. + */ + public void checkIfReferenced(ORB orb) + { + synchronized (orbs) + { + // We can only do this with the Classpath implementation. + if (orb instanceof OrbFunctional) + { + OrbFunctional cOrb = (OrbFunctional) orb; + // If there are no connected objects, we can destroy the orb. + if (cOrb.countConnectedObjects() == 0) + { + cOrb.shutdown(false); + cOrb.destroy(); + + Enumeration keys = orbs.keys(); + Object key; + Remove: while (keys.hasMoreElements()) + { + key = keys.nextElement(); + if (orbs.get(key) == orb) + { + orbs.remove(key); + break Remove; + } + } + } + } + } + } + + /** + * Get all properties. + */ + public String getOrbSignature(Map props) + { + TreeMap map = new TreeMap(); + map.putAll(props); + StringBuffer b = new StringBuffer(50*props.size()); + + Iterator iter = map.entrySet().iterator(); + Map.Entry m; + while (iter.hasNext()) + { + m = (Map.Entry) iter.next(); + b.append(m.getKey()); + b.append('='); + b.append(m.getValue()); + } + return b.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java new file mode 100644 index 00000000000..50446ac7edd --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java @@ -0,0 +1,840 @@ +/* GiopNamingServiceURLContext.java -- handles corbaname: urls + 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 gnu.javax.naming.giop; + +import gnu.CORBA.NamingService.Ext; +import gnu.CORBA.NamingService.NameTransformer; + +import java.util.Hashtable; + +import javax.naming.Binding; +import javax.naming.Context; +import javax.naming.ContextNotEmptyException; +import javax.naming.InvalidNameException; +import javax.naming.Name; +import javax.naming.NameAlreadyBoundException; +import javax.naming.NameClassPair; +import javax.naming.NameNotFoundException; +import javax.naming.NameParser; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.OperationNotSupportedException; +import javax.naming.directory.InvalidAttributesException; + +import org.omg.CORBA.ORB; +import org.omg.CORBA.portable.Delegate; +import org.omg.CORBA.portable.ObjectImpl; +import org.omg.CosNaming.BindingIteratorHolder; +import org.omg.CosNaming.BindingListHolder; +import org.omg.CosNaming.NameComponent; +import org.omg.CosNaming.NamingContext; +import org.omg.CosNaming.NamingContextExt; +import org.omg.CosNaming.NamingContextExtHelper; +import org.omg.CosNaming.NamingContextHelper; +import org.omg.CosNaming._NamingContextExtStub; +import org.omg.CosNaming._NamingContextStub; +import org.omg.CosNaming.NamingContextPackage.AlreadyBound; +import org.omg.CosNaming.NamingContextPackage.CannotProceed; +import org.omg.CosNaming.NamingContextPackage.InvalidName; +import org.omg.CosNaming.NamingContextPackage.NotFound; + +/** + * The context to represent the corba naming service. Being the naming service, + * the returned context supports creating the subcontexts, forwarding this task + * to the existing naming service. When listing bindings, it uses the + * {@link Context#BATCHSIZE} property to determine, how many bindings should + * be returned at once (the process is transparend) + * + * @author Audrius Meskauskas (audriusa@Bioinformatics.org) + */ +public class GiopNamingServiceURLContext extends CorbalocParser implements + Context +{ + /** + * This number of bindings will be requested from the naming server at once, + * while the subsequent bindings will be requested via binding iterator one by + * one. Use {@link Context#BATCHSIZE} to override the value of this constant. + */ + public int DEFAULT_BATCH_SIZE = 20; + + /** + * The object request broker, used to access the naming service. This field + * is only initialised when the context is constructed from the URL. + */ + ORB orb; + + /** + * The properties. + */ + Hashtable properties; + + /** + * The parent factory. + */ + GiopNamingServiceFactory factory; + + /** + * The name transformer to obtain the name from its string representation. The + * to_name method of the naming service is avoided as it may be remote and + * hence expensive. The conversion rules are standard and cannot be service + * specific. + */ + static NameTransformer transformer = new NameTransformer(); + + /** + * The batch size for list operations - how many to return at once. + */ + public final int howMany; + + /** + * Creates a new naming context that uses naming service, represented by the + * given CORBA object. + * + * @param props + * the environment table. + * @param aFactory + * parent factory. This reference is used during cleanup. + * @param anOrb + * the associated ORB. This reference is used during cleanup. + */ + public GiopNamingServiceURLContext(Hashtable props, + GiopNamingServiceFactory aFactory, + ORB anOrb) + { + factory = aFactory; + orb = anOrb; + + properties = props; + howMany = getBatchSize(); + } + + public NamingContextExt getService(String address) + { + org.omg.CORBA.Object nsObject = orb.string_to_object(address); + Delegate delegate = ((ObjectImpl) nsObject)._get_delegate(); + + // If the IOR provides the IDL ID, we can check if our name + // service is old NamingContext or new NamingContextExt. + // Not all forms of the URL always provide the IDL id. + if (!nsObject._is_a(NamingContextExtHelper.id()) + && nsObject._is_a(NamingContextHelper.id())) + { + // We are surely working with the old version. + _NamingContextStub stub = new _NamingContextStub(); + stub._set_delegate(delegate); + // The Ext object will add the necessary extensions. + return new Ext(stub); + } + else + { + // We expecte the service to be the NamingContextExt (this is true + // for both Sun's and our implementations). There is no easy way + // to check the version. + _NamingContextExtStub stub = new _NamingContextExtStub(); + stub._set_delegate(delegate); + return stub; + } + } + + /** + * Split the corbaname name into the address of the naming service (first + * part) and the name of the object in the naming service (second part) + */ + public String[] split(String corbaloc) throws InvalidNameException + { + if (corbaloc.endsWith("#")) + corbaloc = corbaloc.substring(0, corbaloc.length() - 1); + + // No name part - parse as corbaname. + if (corbaloc.indexOf('#') < 0) + { + if (!corbaloc.regionMatches(true, 0, pxCORBANAME, 0, + pxCORBANAME.length())) + throw new InvalidNameException(corbaloc + " must start with " + + pxCORBANAME); + corbaloc = pxCORBALOC + corbaloc.substring(pxCORBANAME.length()); + return new String[] { corbaloc, "" }; + } + + return corbaloc(corbaloc, orb); + } + + /** + * Give the specified name for the specified object. The passed name must not + * be already bound to some other object. The components of the name are + * mapped into the components of the CORBA name. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws NameAlreadyBoundException + * if this name is already used to name some object. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void bind(Name name, Object obj) throws NamingException + { + bind(name.toString(), obj); + } + + /** + * Give the specified name for the specified object. The passed name must not + * be already bound to some other object. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws NameAlreadyBoundException + * if this name is already used to name some object. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void bind(String name, Object obj) throws NamingException + { + try + { + String[] n = split(name); + org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; + getService(n[0]).bind(transformer.toName(n[1]), object); + } + catch (ClassCastException e) + { + throw new NamingException(org.omg.CORBA.Object.class + " required "); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (AlreadyBound e) + { + throw new NameAlreadyBoundException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Releases all resources, associated with this context. The close() method + * can be called several times, but after it has been once invoked, it is not + * allowed to call any other method of this context. This method destroys + * the ORB, if we have one. + * + * @throws NamingException + */ + public void close() throws NamingException + { + if (orb != null && factory != null) + { + factory.checkIfReferenced(orb); + } + } + + /** + * Not supported. + */ + public Name composeName(Name name, Name prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported + */ + public String composeName(String name1, String name2) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Creates the new naming subcontext and binds it to the current (this) + * context. The returned object will wrap around the newly created CORBA + * subcontext + * + * @param subContext + * the name of the new context being created + * @return the newly created context, bound to the instance of the context on + * that the method has been called + * @throws NameAlreadyBoundException + * if this name is already bound + * @throws InvalidAttributesException + * if the creation of the new context requires the missing mandatory + * attributes + * @throws NamingException + */ + public Context createSubcontext(Name subContext) throws NamingException + { + return createSubcontext(subContext.toString()); + } + + /** + * Creates the new naming subcontext and binds it to the current (this) + * context. The returned object will wrap around the newly created CORBA + * subcontext + * + * @param subContext + * the name of the new context being created + * @return the newly created context, bound to the instance of the context on + * that the method has been called + * @throws NameAlreadyBoundException + * if this name is already bound + * @throws InvalidAttributesException + * if the creation of the new context requires the missing mandatory + * attributes + * @throws NamingException + */ + public Context createSubcontext(String subContext) throws NamingException + { + try + { + String[] n = split(subContext); + org.omg.CORBA.Object subcontext = getService(n[0]).bind_new_context( + transformer.toName(n[1])); + Hashtable clonedProps = new Hashtable(); + clonedProps.putAll(properties); + + // Nulls are passed both for orb and factory, as the child contexts + // need not to do any cleanup. + return new ContextContinuation(subcontext, clonedProps, null, null); + } + catch (AlreadyBound e) + { + throw new NameAlreadyBoundException(subContext); + } + catch (InvalidName e) + { + throw new InvalidNameException(subContext); + } + catch (Exception ex) + { + throw new NamingException(ex.toString()); + } + } + + /** + * Removes the naming subcontext from this naming context. Returns without + * action if such subcontext does not exist. The context being destroyed must + * be empty. + * + * @param subContext + * the name of the subcontext beig removed. + * @throws ContextNotEmptyException + * if the named context is not empty. + * @throws NamingException + */ + public void destroySubcontext(Name subContext) throws NamingException + { + unbind(subContext); + } + + /** + * Removes the naming subcontext from this naming context. Returns without + * action if such subcontext does not exist. The context being destroyed must + * be empty. + * + * @param subContext + * the name of the subcontext beig removed. + * @throws ContextNotEmptyException + * if the named context is not empty. + * @throws NamingException + */ + public void destroySubcontext(String subContext) throws NamingException + { + unbind(subContext); + } + + /** + * Returs the empty string. + */ + public String getNameInNamespace() throws NamingException + { + return ""; + } + + /** + * Not supported. + */ + public NameParser getNameParser(Name name) throws NamingException + { + throw new UnsupportedOperationException(); + } + + /** + * Not supported. + */ + public NameParser getNameParser(String name) throws NamingException + { + throw new UnsupportedOperationException(); + } + + /** + * Creates and returns the enumeration over the name bindings that are present + * the given subcontext. The enumeration elements have the type of + * {@link NameClassPair}, providing also information about the class of the + * bound object. The behaviour in the case if the bindings are added or + * removed later is not defined. The contents of the subcontexts are not + * included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration list(Name name) throws NamingException + { + return list(name.toString()); + } + + /** + * Creates and returns the enumeration over the name bindings that are present + * the given subcontext. The enumeration elements have the type of + * {@link NameClassPair}, providing also information about the class of the + * bound object. The behaviour in the case if the bindings are added or + * removed later is not defined. The contents of the subcontexts are not + * included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration list(String name) throws NamingException + { + BindingIteratorHolder bi = new BindingIteratorHolder(); + BindingListHolder bl = new BindingListHolder(); + + NamingContext subcontext; + + String [] n = split(name); + NamingContextExt service = getService(n[0]); + + if (n[1].length() == 0) + subcontext = service; + else + { + try + { + subcontext = (NamingContextHelper.narrow(service.resolve_str(n[1]))); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + + } + + subcontext.list(howMany, bl, bi); + + return new ListEnumeration(bl, bi, howMany); + } + + /** + * Creates and returns the enumeration over the name - object bindings that + * are present the given subcontext. The enumeration elements have the type of + * {@link Binding}, providing also information about the class of the bound + * object. The behaviour in the case if the bindings are added or removed + * later is not defined. The contents of the subcontexts are not included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration listBindings(Name name) throws NamingException + { + return listBindings(name.toString()); + } + + /** + * Creates and returns the enumeration over the name - object bindings that + * are present the given subcontext. The enumeration elements have the type of + * {@link Binding}, providing also information about the class of the bound + * object. The behaviour in the case if the bindings are added or removed + * later is not defined. The contents of the subcontexts are not included. + * + * @param name + * the name of the subcontext + * @return the enumeration over the names, known for the given subcontext. + * @throws NamingException + */ + public NamingEnumeration listBindings(String name) throws NamingException + { + BindingIteratorHolder bi = new BindingIteratorHolder(); + BindingListHolder bl = new BindingListHolder(); + + NamingContext subcontext; + + String [] n = split(name); + NamingContextExt service = getService(n[0]); + + if (n[1].length() == 0) + subcontext = service; + else + { + try + { + subcontext = (NamingContextHelper.narrow(service.resolve_str(n[1]))); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + + } + + subcontext.list(howMany, bl, bi); + + return new ListBindingsEnumeration(bl, bi, howMany, subcontext); + } + + /** + * Gets the previously named object by name. If the passed name is empty, the + * method should return a cloned instance of this naming context. + * + * @param name + * the name of the object being searched in this context + * @return the named object + * @throws NameNotFoundException + * if the name is not found + */ + public Object lookup(Name name) throws NamingException + { + return lookup(name.toString()); + } + + /** + * Gets the previously named object by name. If the passed name is empty, the + * method should return a cloned instance of this naming context. + * + * @param name + * the name of the object being searched in this context + * @return the named object + * @throws NamingException + * if the naming fails. + */ + public Object lookup(String name) throws NamingException + { + try + { + String [] n = split(name); + NamingContextExt service = getService(n[0]); + return service.resolve_str(n[1]); + } + catch (NotFound e) + { + throw new NameNotFoundException(); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Not supported. + */ + public Object lookupLink(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported. + */ + public Object lookupLink(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Give the specified name for the specified object. Unlike bind, this method + * silently replaces the existing binding for this name, if one exists. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rebind(Name name, Object obj) throws NamingException + { + rebind(name.toString(), obj); + } + + /** + * Give the specified name for the specified object. Unlike bind, this method + * silently replaces the existing binding for this name, if one exists. + * + * @param name + * the name that will be given to the object (in the scope of this + * context). + * @param obj + * the object being named. + * @throws InvalidAttributesException + * if the object does not supply all required attributes. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rebind(String name, Object obj) throws NamingException + { + try + { + String[] n = split(name); + NamingContextExt service = getService(n[0]); + + org.omg.CORBA.Object object = (org.omg.CORBA.Object) obj; + service.rebind(transformer.toName(n[1]), object); + } + catch (ClassCastException e) + { + throw new NamingException(org.omg.CORBA.Object.class + " required "); + } + catch (InvalidName e) + { + throw new InvalidNameException(); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Renames the existing binding, removing the existing and giving the new name + * for the same object. + * + * @param oldName + * the existing name of the known object + * @param newName + * the new name of the same object + * @throws NameNotFoundException + * if the oldName is unknown for this context + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rename(Name oldName, Name newName) throws NamingException + { + Object object = lookup(oldName); + unbind(oldName); + bind(newName, object); + } + + /** + * Renames the existing binding, removing the existing and giving the new name + * for the same object. + * + * @param oldName + * the existing name of the known object + * @param newName + * the new name of the same object + * @throws NameNotFoundException + * if the oldName is unknown for this context + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void rename(String oldName, String newName) throws NamingException + { + Object object = lookup(oldName); + unbind(oldName); + bind(newName, object); + } + + /** + * Removes the name - object mapping from the current context. This method + * returns without action if the name is not bound to an object in the + * terminal context, but throws {@link NameNotFoundException} if one of the + * intermadiate contexts does not exist. + * + * @param name + * the name to be removed + * @throws NameNotFoundException + * if one of the intermediate naming contexts does not exist. Will + * not be thrown if just the terminal binding is missing. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void unbind(Name name) throws NamingException + { + unbind(name.toString()); + } + + /** + * Removes the name - object mapping from the current context. This method + * returns without action if the name is not bound to an object in the + * terminal context, but throws {@link NameNotFoundException} if one of the + * intermadiate contexts does not exist. + * + * @param name + * the name to be removed + * @throws NameNotFoundException + * if one of the intermediate naming contexts does not exist. Will + * not be thrown if just the terminal binding is missing. + * @throws NamingException + * if the naming operation has failed due other reasons. + */ + public void unbind(String name) throws NamingException + { + try + { + String[] n = split(name); + NamingContextExt service = getService(n[0]); + + service.unbind(transformer.toName(n[1])); + } + catch (NotFound e) + { + throw new NameNotFoundException(name); + } + catch (CannotProceed e) + { + throw new ContextNotEmptyException(name); + } + catch (InvalidName e) + { + throw new InvalidNameException(name); + } + } + + /** + * Add new environment property to the environment of this context. Both name + * and value of the new property must not be null. If the property is already + * defined, is current value is replaced by the propVal. + * + * @param key + * the name of the new property + * @param value + * the value of the new property + * @return the previous value of this property or null if the property has not + * been previously defined + * @throws NamingException + */ + public Object addToEnvironment(String key, Object value) + throws NamingException + { + if (key == null || value == null) + throw new NullPointerException(); + return properties.put(key, value); + } + + /** + * Returns the environment, associated with this naming context. The returned + * table should never be modified by the caller. Use {@link #addToEnvironment} + * and {@link #removeFromEnvironment} to modify the environement, if needed. + * + * @return the table, representing the environment of this context + * @throws NamingException + */ + public Hashtable getEnvironment() throws NamingException + { + return properties; + } + + /** + * Removes the property with the given name from the environment. Returns + * without action if this property is not defined. + * + * @param propName + * the name of the property being removed. + * @return the value of the property that has been removed or null if the + * property was not defined. + * @throws NamingException + */ + public Object removeFromEnvironment(String propName) throws NamingException + { + return properties.remove(propName); + } + + /** + * Convert the {@link Name} into array of the name components, required to the + * CORBA naming service. First the string representation is obtained, then + * it is converted using parsing rules of the CORBA name. + * + * @param name + * then name to convert + * @return the converted array of components. + */ + public NameComponent[] toGiop(Name name) throws InvalidName + { + return transformer.toName(name.toString()); + } + + /** + * Get the batch size from the environment properties. The batch size is used + * for listing operations. + * + * @return the batch size, or some default value if not specified. + */ + public int getBatchSize() + { + int batchSize = DEFAULT_BATCH_SIZE; + Object bs = properties.get(Context.BATCHSIZE); + if (bs != null) + { + try + { + int b = Integer.parseInt(bs.toString()); + if (b >= 0) + batchSize = b; + } + catch (NumberFormatException e) + { + // OK, use default value. + } + } + return batchSize; + } + +} diff --git a/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java b/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java new file mode 100644 index 00000000000..00f4a0779c7 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java @@ -0,0 +1,116 @@ +/* ListBindingsEnumeration.java -- handles corbaname: urls + 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 gnu.javax.naming.giop; + +import javax.naming.NamingEnumeration; + +import org.omg.CosNaming.Binding; +import org.omg.CosNaming.BindingIteratorHolder; +import org.omg.CosNaming.BindingListHolder; +import org.omg.CosNaming.NamingContext; + +/** + * Iterates over bindings, obtaining values first from the binding list and then + * from the binding iterator. + * + * @author Audrius Meskauskas + */ +public class ListBindingsEnumeration extends GiopNamingEnumeration implements + NamingEnumeration +{ + /** + * The naming service, to resolve the objects. + */ + NamingContext service; + + /** + * Create the new enumeration + * + * @param bh + * holder, containing the first portion of the bindings + * @param bih + * the iterator, containing the remaining bindings + * @param batchSize + * the number of bindings the the iterator will be requested to + * return as a single pack + * @param aService + * the naming service, used to obtain the objects, bound to the + * names. + */ + public ListBindingsEnumeration(BindingListHolder bh, + BindingIteratorHolder bih, int batchSize, + NamingContext aService) + { + super(bh, bih, batchSize); + service = aService; + } + + /** + * Convert from the CORBA binding into the javax.naming binding. As the CORBA + * naming service binding does not contain the object itself, this method + * makes the additional calls to the naming service. + * + * @param binding + * the binding to convert + * @return the value, that must be returned by the {@link #next()}. + */ + public Object convert(Binding binding) + { + StringBuffer name = new StringBuffer(); + + for (int i = 0; i < binding.binding_name.length; i++) + { + name.append(binding.binding_name[i]); + if (i < binding.binding_name.length - 1) + name.append('/'); + } + + try + { + Object object = service.resolve(binding.binding_name); + return new javax.naming.Binding(name.toString(), object); + } + catch (Exception e) + { + // Probably was removed by the concurent thread. + return null; + } + } + +} diff --git a/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java b/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java new file mode 100644 index 00000000000..2e64e67d393 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java @@ -0,0 +1,116 @@ +/* ListEnumeration.java -- handles corbaname: urls + 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 gnu.javax.naming.giop; + +import javax.naming.NameClassPair; +import javax.naming.NamingEnumeration; + +import org.omg.CosNaming.Binding; +import org.omg.CosNaming.BindingIteratorHolder; +import org.omg.CosNaming.BindingListHolder; +import org.omg.CosNaming.BindingType; +import org.omg.CosNaming.NamingContext; + +/** + * Iterates over name class pairs, obtaining values first from the binding list + * and then from the binding iterator. + * + * @author Audrius Meskauskas + */ +public class ListEnumeration extends GiopNamingEnumeration implements + NamingEnumeration +{ + /** + * Create the new enumeration + * + * @param bh + * holder, containing the first portion of the bindings + * @param bih + * the iterator, containing the remaining bindings + * @param batchSize + * the number of bindings the the iterator will be requested to + * return as a single pack + */ + public ListEnumeration(BindingListHolder bh, + BindingIteratorHolder bih, int batchSize) + { + super(bh, bih, batchSize); + } + + /** + * Convert from the CORBA binding into the {@link NameClassPair} that this + * enumeration should return. This method converts into NameClassPair, + * connecting the name components with slashes and setting the class name + * to either NamingContext or GIOP Object. + * + * @param binding + * the binding to convert + * @return the value, that must be returned by the {@link #next()}. + */ + public Object convert(Binding binding) + { + StringBuffer name = new StringBuffer(); + + for (int i = 0; i < binding.binding_name.length; i++) + { + name.append(binding.binding_name[i]); + if (i < binding.binding_name.length - 1) + name.append('/'); + } + + String className; + + switch (binding.binding_type.value()) + { + case BindingType._ncontext: + className = NamingContext.class.getName(); + break; + case BindingType._nobject: + className = org.omg.CORBA.Object.class.getName(); + break; + default: + className = Object.class.getName(); + break; + } + + NameClassPair pair = new NameClassPair(name.toString(), className); + return pair; + } + +} diff --git a/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java b/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java new file mode 100644 index 00000000000..b20bfa4ea8b --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java @@ -0,0 +1,467 @@ +/* GnuName.java -- implementation of the javax.naming.Name + 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 gnu.javax.naming.ictxImpl.trans; + +import java.util.Enumeration; +import java.util.NoSuchElementException; + +import javax.naming.InvalidNameException; +import javax.naming.Name; + +/** + * The implementation of the {@link Name}. + * + * @author Audrius Meskauskas + */ +public class GnuName + implements Name +{ + /** + * The enumeration to traverse over name components. + */ + class GnuNameEnum + implements Enumeration + { + /** + * Get the new enumeration that enumerates from the given position forward + * + * @param position the position of the first name component to enumerate (0 + * means first element) + */ + GnuNameEnum(int position) + { + nxt = from + position; + } + + /** + * The position of the next enumeration component to be returned or -1 if + * the end has been reached. + */ + int nxt; + + /** + * Check if there are more elements in this enumeration. + */ + public boolean hasMoreElements() + { + return nxt >= 0; + } + + /** + * Return the next element or throw a NoSuchElementException if there is no + * any. + */ + public Object nextElement() + { + if (nxt < 0) + throw new NoSuchElementException(); + Object r = content[nxt++]; + + if (nxt - from == length) + nxt = - 1; + + return r; + } + } + + private static final long serialVersionUID = - 3617482732056931635L; + + /** + * The hashcode + */ + int hash; + + /** + * The content buffer of the name. This buffer may be shared, so the array + * member content should never be modified. + */ + String[] content; + + /** + * The place, inclusive, where the name content starts in the content buffer. + */ + int from; + + /** + * The length of the name. + */ + int length; + + /** + * Creates the unitialised name. + */ + protected GnuName() + { + + } + + /** + * Creates the name, containing from the given chain of the atomic components. + * + * @param name the array, containing the name components. + */ + public GnuName(String[] name) + { + this(name, 0, name.length); + } + + /** + * Creates the name that uses the given portion of the array for its + * components. + */ + public GnuName(String[] buffer, int useFrom, int useLength) + { + content = buffer; + from = useFrom; + length = useLength; + } + + /** + * Inserts the given String component to this Name + * at the given index. The method modifies the current Name and + * then returns it. + * + * @exception ArrayIndexOutOfBoundsException if the given index is smaller + * then zero or greater then or equal to size(). + * @exception InvalidNameException if the given String is not a + * valid component for this Name. + */ + public Name add(int posn, String comp) throws InvalidNameException + { + String[] nc = new String[content.length + 1]; + System.arraycopy(content, from, nc, 0, posn); + nc[posn] = comp; + System.arraycopy(content, from + posn, nc, posn + 1, length - posn); + + content = nc; + from = 0; + length = content.length; + hash = 0; + return this; + } + + /** + * Adds the given String component to the end of this + * Name. The method modifies the current Name + * and then returns it. + * + * @exception InvalidNameException if the given String is not a + * valid component for this Name. + */ + public Name add(String comp) throws InvalidNameException + { + String[] nc = new String[content.length + 1]; + System.arraycopy(content, from, nc, 0, length); + nc[nc.length - 1] = comp; + + content = nc; + from = 0; + length = content.length; + hash = 0; + return this; + } + + /** + * Inserts all the components of the given Name to this + * Name at the given index. Components after this index (if + * any) are shifted up. The method modifies the current Name + * and then returns it. + * + * @exception ArrayIndexOutOfBoundsException if the given index is smaller + * then zero or greater then or equal to size(). + * @exception InvalidNameException if any of the given components is not a + * valid component for this Name. + */ + public Name addAll(int posn, Name n) throws InvalidNameException + { + String[] nc = new String[length + n.size()]; + System.arraycopy(content, from, nc, 0, posn); + + int i = posn; + for (int p = 0; p < n.size(); i++, p++) + nc[i] = n.get(p); + + System.arraycopy(content, from + posn, nc, i, length - posn); + + length = length + n.size(); + hash = 0; + content = nc; + return this; + } + + /** + * Adds all the components of the given Name to the end of this + * Name. The method modifies the current Name + * and then returns it. + * + * @exception InvalidNameException if any of the given components is not a + * valid component for this Name. + */ + public Name addAll(Name suffix) throws InvalidNameException + { + String[] nc = new String[length + suffix.size()]; + System.arraycopy(content, from, nc, 0, length); + + for (int i = length, p = 0; i < nc.length; i++, p++) + nc[i] = suffix.get(p); + + length = length + suffix.size(); + hash = 0; + content = nc; + return this; + } + + /** + * Compares the given object to this Name. Returns a negative + * value if the given Object is smaller then this + * Name, a positive value if the Object is + * bigger, and zero if the are equal. If the Object is not of a + * class that can be compared to the class of this Name then a + * ClassCastException is thrown. Note that it is not guaranteed + * that Names implemented in different classes can be + * compared. The definition of smaller, bigger and equal is up to the actual + * implementing class. + */ + public int compareTo(Object obj) + { + Name n = (Name) obj; + + int l = Math.min(length, n.size()); + int c; + + for (int i = 0; i < l; i++) + { + c = content[from + i].compareTo(n.get(i)); + if (c != 0) + return c; + } + return length - n.size(); + } + + /** + * Returns true if this Name ends with the + * components of the given Name, false + * otherwise. + */ + public boolean endsWith(Name n) + { + if (n.size() > length) + return false; + + int ofs = length - n.size() + from; + + for (int i = 0; i < n.size(); i++, ofs++) + if (! content[ofs].equals(n.get(i))) + return false; + + return true; + } + + /** + * Gets the component at the given index. + * + * @exception ArrayIndexOutOfBoundsException if the given index is smaller + * then zero or greater then or equal to size(). + */ + public String get(int posn) + { + return content[from + posn]; + } + + /** + * Returns a non-null (but possibly empty) Enumeration of the + * components of the Name as Strings. + */ + public Enumeration getAll() + { + return new GnuNameEnum(0); + } + + /** + * Returns the components till the given index as a Name. The + * returned Name can be modified without changing the original. + * + * @param posn the ending position, exclusive + * @exception ArrayIndexOutOfBoundsException if the given index is smaller + * then zero or greater then or equal to size(). + */ + public Name getPrefix(int posn) + { + return new GnuName(content, from, posn); + } + + /** + * Returns the components from the given index till the end as a + * Name. The returned Name can be modified + * without changing the original. + * + * @param posn the starting position, inclusive. If it is equal to the size of + * the name, the empty name is returned. + * @exception ArrayIndexOutOfBoundsException if the given index is smaller + * then zero or greater then or equal to size(). + */ + public Name getSuffix(int posn) + { + return new GnuName(content, from + posn, length - posn); + } + + /** + * Returns true if the number of components of this + * Name is zero, false otherwise. + */ + public boolean isEmpty() + { + return length == 0; + } + + /** + * Removes the component at the given index from this Name. + * The method modifies the current Name and then returns it. + * + * @exception InvalidNameException if the name size reduces below zero. + */ + public Object remove(int posn) throws InvalidNameException + { + if (length == 0) + throw new InvalidNameException("negative size"); + else + { + length--; + if (posn == 0) + from++; + else if (posn < length) + { + String[] nc = new String[length]; + System.arraycopy(content, from, nc, 0, posn); + System.arraycopy(content, from + posn + 1, nc, posn, length - posn); + content = nc; + from = 0; + } + } + hash = 0; + return this; + } + + /** + * Returns the number of components of this Name. The returned + * number can be zero. + */ + public int size() + { + return length; + } + + /** + * Returns true if this Name starts with the + * components of the given Name, false + * otherwise. + */ + public boolean startsWith(Name n) + { + if (n.size() > length) + return false; + + for (int i = 0; i < n.size(); i++) + if (! content[from + i].equals(n.get(i))) + return false; + + return true; + } + + /** + * Returns a clone of this Name. It will be a deep copy of all + * the components of the Name so that changes to components of + * the components does not change the component in this Name. + */ + public Object clone() + { + return new GnuName(content, from, length); + } + + /** + * The name is equal to other name if they contents are equal. + */ + public boolean equals(Object arg0) + { + if (this == arg0) + return true; + else if (arg0 instanceof Name) + { + Name n = (Name) arg0; + if (length != n.size()) + return false; + + for (int i = 0; i < length; i++) + if (! content[from + i].equals(n.get(i))) + return false; + return true; + } + else + return false; + } + + /** + * Overridden to make consistent with equals. + */ + public int hashCode() + { + if (hash == 0 && length > 0) + { + int s = 0; + for (int i = from; i < from + length; i++) + s ^= content[i].hashCode(); + hash = s; + } + return hash; + } + + /** + * Get the string representation, separating the name components by slashes + */ + public String toString() + { + StringBuffer b = new StringBuffer(); + for (int i = 0; i < length; i++) + { + b.append(get(i)); + if (i < length - 1) + b.append('/'); + } + return b.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java b/libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java new file mode 100644 index 00000000000..7fe2e5c8cad --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java @@ -0,0 +1,53 @@ +/* corbanameURLContextFactory.java -- handles corbaname: urls + 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 gnu.javax.naming.jndi.url.corbaname; + +import gnu.javax.naming.giop.GiopNamingServiceFactory; + +import javax.naming.spi.ObjectFactory; + +/** + * The GIOP URL context factory. + * + * @author Audrius Meskauskas (audriusa@Bioinformatics.org) + */ +public class corbanameURLContextFactory extends GiopNamingServiceFactory + implements ObjectFactory +{ + // Nothing to override here. +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java new file mode 100644 index 00000000000..de79b93c3dc --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java @@ -0,0 +1,597 @@ +/* ContextContinuation.java -- RMI naming context + 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 gnu.javax.naming.jndi.url.rmi; + +import java.rmi.AccessException; +import java.rmi.AlreadyBoundException; +import java.rmi.NotBoundException; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.util.Hashtable; +import java.util.Map; +import java.util.Properties; + +import javax.naming.CommunicationException; +import javax.naming.Context; +import javax.naming.InvalidNameException; +import javax.naming.Name; +import javax.naming.NameAlreadyBoundException; +import javax.naming.NameNotFoundException; +import javax.naming.NameParser; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.OperationNotSupportedException; + +/** + * The implementation of the RMI URL context. This context connects + * + * @author Audrius Meskauskas + */ +public class ContextContinuation implements Context +{ + /** + * The default registry location. + */ + public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; + + /** + * The local or remote RMI registry, performing the actual work for this + * context. + */ + Registry registry; + + /** + * The properties. + */ + Properties properties; + + /** + * The flag, indicating, that the lookup methods were called before. + * If the lookup methods were called before, the existing ORB cannot be + * destroyed, as references to the existing objects will become + * unfunctional. + */ + boolean lookupCalled; + + /** + * Add new environment property to the environment of this context. Both name + * and value of the new property must not be null. If the property is already + * defined, is current value is replaced by the propVal. This method replaces + * the registry. The new registry will be lazily instantiated on the first + * call. + * + * @param propName + * the name of the new property + * @param propVal + * the value of the new property + * @return the previous value of this property or null if the property has not + * been previously defined + */ + public Object addToEnvironment(String key, Object value) + { + removeRegistry(); + if (key == null || value == null) + throw new NullPointerException(); + return properties.put(key, value); + } + + /** + * Returns the environment, associated with this naming context. The returned + * table should never be modified by the caller (the registry would not be updated + * in such case). Use {@link #addToEnvironment} and + * {@link #removeFromEnvironment} to modify the environement, if needed. + * + * @return the table, representing the environment of this context + * @throws NamingException + */ + public Hashtable getEnvironment() throws NamingException + { + return properties; + } + + /** + * Removes the property with the given name from the environment. Returns + * without action if this property is not defined. Replaces the ORB, + * constructing the new ORB with the changes set of properties (you can + * replace the CORBA implementation provider, for instance). The new ORB will + * be lazily instantiated on the first call. + * + * @param propName + * the name of the property being removed. + * @return the value of the property that has been removed or null if the + * property was not defined. + * @throws NamingException + */ + public Object removeFromEnvironment(String propName) throws NamingException + { + removeRegistry(); + return properties.remove(propName); + } + + /** + * Remove the current registry reference. + */ + public void removeRegistry() + { + registry = null; + } + + /** + * Get the cached or new registry reference. + * + * @return the registry reference, either cached or new. + */ + public Registry getRegistry() throws NamingException + { + if (registry == null) + { + String address = properties.getProperty(Context.PROVIDER_URL, + DEFAULT_REGISTRY_LOCATION); + + // The format like rmi://localhost:1099 is expected. Parse. + if (!address.startsWith("rmi://")) + throw new InvalidNameException(address); + + String a = address.substring("rmi://".length()); + + // The colon, if present, indicates the start of the port number. + int colon = a.lastIndexOf(':'); + int port; + + try + { + if (colon >=0) + { + port = Integer.parseInt(a.substring(colon+1)); + a = a.substring(0, colon); + } + else + port = Registry.REGISTRY_PORT; + } + catch (NumberFormatException e1) + { + throw new InvalidNameException(address); + } + + try + { + registry = LocateRegistry.getRegistry(a, port); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + } + return registry; + } + + /** + * Create the rmi url context that works, talking with the given RMI registry. + * + * @param props + * the properties for this context + * @param initialRegistry + * the initial value of the registry + */ + public ContextContinuation(Map props, Registry initialRegistry) + { + properties = new Properties(); + if (props != null) + properties.putAll(props); + registry = initialRegistry; + } + + /** + * Bind the given name into this context. The .toString() is called to + * convert into the string representation, required by RMI registry. + * + * @throws NamingException if the object is not an instance of Remote + */ + public void bind(Name name, Object obj) throws NamingException + { + bind(name.toString(), obj); + } + + /** + * Bind the given name into this context. + */ + public void bind(String name, Object obj) throws NamingException + { + try + { + getRegistry().bind(name, (Remote) obj); + } + catch (AccessException e) + { + throw new NamingException("access:"+e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (AlreadyBoundException e) + { + throw new NameAlreadyBoundException(name); + } + catch (ClassCastException c) + { + throw new NamingException("Only Remote can be bound:" + + obj.getClass().getName()); + } + } + + /** + * Not supported. + */ + public Name composeName(Name name, Name prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported. + */ + public String composeName(String name, String prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. The only supported case is an + * empty name (returns the cloned instance of self). + */ + public Context createSubcontext(Name name) throws NamingException + { + if (name.size() == 0) + return new rmiURLContext(properties); + else + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. The only supported case is an + * empty name (returns the cloned instance of self). + */ + public Context createSubcontext(String name) throws NamingException + { + if (name.length() == 0) + return new rmiURLContext(properties); + else + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. + */ + public void destroySubcontext(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. + */ + public void destroySubcontext(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Returns the naming service URL, same that was passed vie + * {@link Context#PROVIDER_URL}. + */ + public String getNameInNamespace() throws NamingException + { + return properties.getProperty(Context.PROVIDER_URL, + DEFAULT_REGISTRY_LOCATION); + } + + /** + * Not supported, this context never parses any names. + */ + public NameParser getNameParser(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported, this context never parses any names. + */ + public NameParser getNameParser(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). The class name of the returned name class + * pairs is "Remote", as this "quick preview" method should probably not call + * the naming service again. Use listBindings if more details are required. + */ + public NamingEnumeration list(Name name) throws NamingException + { + if (name.size() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + return list(""); + } + + /** + * List existing bindings of this context (the parameter must be empty string, + * indicating the root context). The class name of the returned name class + * pairs is "Remote", as this "quick preview" method should probably not call + * the naming service again. Use listBindings if more details are required. + */ + public NamingEnumeration list(String name) throws NamingException + { + if (name.length() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + + try + { + return new ListEnumeration(getRegistry().list()); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). + */ + public NamingEnumeration listBindings(Name name) throws NamingException + { + if (name.size() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + return listBindings(""); + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). + */ + public NamingEnumeration listBindings(String name) throws NamingException + { + if (name.length() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + + try + { + Registry r = getRegistry(); + return new ListBindingsEnumeration(r.list(), r); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Not supported. + */ + public Object lookupLink(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported. + */ + public Object lookupLink(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Rebinds this object. + * + * @param name + * the object name (.toString()) is used to convert into string + * representation. + * @param the + * object (must be an instance of Remote). + */ + public void rebind(Name name, Object obj) throws NamingException + { + rebind(name.toString(), obj); + } + + /** + * Rebinds this object. + * + * @param name + * the object name. + * @param the + * object (must be an instance of Remote). + */ + public void rebind(String name, Object obj) throws NamingException + { + try + { + getRegistry().rebind(name, (Remote) obj); + } + catch (AccessException e) + { + throw new NamingException("access:"+e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (ClassCastException c) + { + throw new NamingException("Only Remote can be bound:" + + obj.getClass().getName()); + } + } + + /** + * Renames the object. If the new name is already bound in the given context, + * the {@link AlreadyBoundException} is thrown and the oldName binding is + * preserved. + */ + public void rename(Name oldName, Name newName) throws NamingException + { + rename(oldName.toString(), newName.toString()); + } + + /** + * Renames the object. If the new name is already bound in the given context, + * the {@link AlreadyBoundException} is thrown and the oldName binding is + * preserved. + */ + public synchronized void rename(String oldName, String newName) + throws NamingException + { + try + { + Registry r = getRegistry(); + Remote object = r.lookup(oldName); + r.unbind(oldName); + try + { + r.bind(newName, object); + } + catch (AlreadyBoundException e) + { + // Bind it back. + try + { + r.bind(oldName, object); + } + catch (AlreadyBoundException e1) + { + // We have just removed this name. + throw new InternalError(); + } + throw new NameAlreadyBoundException(newName); + } + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new CommunicationException(e.toString()); + } + } + + /** + * Unbind the object. + */ + public void unbind(Name name) throws NamingException + { + unbind(name.toString()); + } + + /** + * Unbind the object. + */ + public void unbind(String name) throws NamingException + { + try + { + getRegistry().unbind(name); + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new CommunicationException(e.toString()); + } + } + + /** + * Release the associated resources. + */ + public void close() throws NamingException + { + removeRegistry(); + } + + /** + * Resolve the object by name. + * + * @param name + * the object name, .toString() is used to get the string + * representation. + */ + public Object lookup(Name name) throws NamingException + { + return lookup(name.toString()); + } + + /** + * Resolve the object by name + * + * @param name the object name. + */ + public Object lookup(String name) throws NamingException + { + try + { + return getRegistry().lookup(name); + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new NameNotFoundException(name); + } + } +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java new file mode 100644 index 00000000000..757e8bf59c1 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java @@ -0,0 +1,97 @@ +/* ListBindingsEnumeration.java -- handles rmi: urls + 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 gnu.javax.naming.jndi.url.rmi; + +import java.rmi.registry.Registry; + +import javax.naming.NamingEnumeration; + +/** + * Iterates over bindings, obtaining values first from the binding list and then + * from the binding iterator. + * + * @author Audrius Meskauskas + */ +public class ListBindingsEnumeration extends RmiNamingEnumeration implements + NamingEnumeration +{ + /** + * The naming service, to resolve the objects. + */ + Registry service; + + /** + * Create the new enumeration + * + * @param bindings + * the list of the bound names + * @param aService + * the RMI naming service, used to get the bound values. + */ + public ListBindingsEnumeration(String [] bindings, + Registry aService) + { + super(bindings); + service = aService; + } + + /** + * Convert from the CORBA binding into the javax.naming binding. As the CORBA + * naming service binding does not contain the object itself, this method + * makes the additional calls to the naming service. + * + * @param binding + * the binding to convert + * @return the value, that must be returned by the {@link #next()}. + */ + public Object convert(String binding) + { + try + { + Object object = service.lookup(binding); + return new javax.naming.Binding(binding, object); + } + catch (Exception e) + { + // Probably was removed by the concurent thread. + return null; + } + } + +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java new file mode 100644 index 00000000000..b4142c5e37d --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java @@ -0,0 +1,80 @@ +/* ListEnumeration.java -- handles rmi: urls + 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 gnu.javax.naming.jndi.url.rmi; + +import java.rmi.Remote; + +import javax.naming.NameClassPair; +import javax.naming.NamingEnumeration; + +/** + * Iterates over name class pairs, obtaining values first from the binding list + * and then from the binding iterator. + * + * @author Audrius Meskauskas + */ +public class ListEnumeration extends RmiNamingEnumeration implements + NamingEnumeration +{ + /** + * Create the new enumeration + * + * @param bindings + * the array of the binding names, returned by the RMI registry. + */ + public ListEnumeration(String [] bindings) + { + super(bindings); + } + + /** + * Convert from the binding name into the {@link NameClassPair} that this + * enumeration should return. + * + * @param binding + * the binding to convert + * @return the value, that must be returned by the {@link #next()}. + */ + public Object convert(String binding) + { + NameClassPair pair = new NameClassPair(binding, Remote.class.getName()); + return pair; + } + +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java new file mode 100644 index 00000000000..29eb61b4be5 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java @@ -0,0 +1,594 @@ +/* RmiContinuation.java -- RMI naming context + 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 gnu.javax.naming.jndi.url.rmi; + +import java.rmi.AccessException; +import java.rmi.AlreadyBoundException; +import java.rmi.NotBoundException; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.util.Hashtable; +import java.util.Map; +import java.util.Properties; + +import javax.naming.CommunicationException; +import javax.naming.Context; +import javax.naming.InvalidNameException; +import javax.naming.Name; +import javax.naming.NameAlreadyBoundException; +import javax.naming.NameNotFoundException; +import javax.naming.NameParser; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.OperationNotSupportedException; + +/** + * The implementation of the RMI URL context. This context connects + * + * @author Audrius Meskauskas + */ +public class RmiContinuation implements Context +{ + /** + * The default registry location. + */ + public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; + + /** + * The local or remote RMI registry, performing the actual work for this + * context. + */ + Registry registry; + + /** + * The properties. + */ + Properties properties; + + /** + * The flag, indicating, that the lookup methods were called before. + * If the lookup methods were called before, the existing ORB cannot be + * destroyed, as references to the existing objects will become + * unfunctional. + */ + boolean lookupCalled; + + /** + * Add new environment property to the environment of this context. Both name + * and value of the new property must not be null. If the property is already + * defined, is current value is replaced by the propVal. This method replaces + * the registry. The new registry will be lazily instantiated on the first + * call. + * + * @param key + * the name of the new property + * @param value + * the value of the new property + * @return the previous value of this property or null if the property has not + * been previously defined + */ + public Object addToEnvironment(String key, Object value) + { + removeRegistry(); + if (key == null || value == null) + throw new NullPointerException(); + return properties.put(key, value); + } + + /** + * Returns the environment, associated with this naming context. The returned + * table should never be modified by the caller (the registry would not be updated + * in such case). Use {@link #addToEnvironment} and + * {@link #removeFromEnvironment} to modify the environement, if needed. + * + * @return the table, representing the environment of this context + * @throws NamingException + */ + public Hashtable getEnvironment() throws NamingException + { + return properties; + } + + /** + * Removes the property with the given name from the environment. Returns + * without action if this property is not defined. Replaces the ORB, + * constructing the new ORB with the changes set of properties (you can + * replace the CORBA implementation provider, for instance). The new ORB will + * be lazily instantiated on the first call. + * + * @param propName + * the name of the property being removed. + * @return the value of the property that has been removed or null if the + * property was not defined. + * @throws NamingException + */ + public Object removeFromEnvironment(String propName) throws NamingException + { + removeRegistry(); + return properties.remove(propName); + } + + /** + * Remove the current registry reference. + */ + public void removeRegistry() + { + registry = null; + } + + /** + * Get the cached or new registry reference. + * + * @return the registry reference, either cached or new. + */ + public Registry getRegistry() throws NamingException + { + if (registry == null) + { + String address = properties.getProperty(Context.PROVIDER_URL, + DEFAULT_REGISTRY_LOCATION); + + // The format like rmi://localhost:1099 is expected. Parse. + if (!address.startsWith("rmi://")) + throw new InvalidNameException(address); + + String a = address.substring("rmi://".length()); + + // The colon, if present, indicates the start of the port number. + int colon = a.lastIndexOf(':'); + int port; + + try + { + if (colon >=0) + { + port = Integer.parseInt(a.substring(colon+1)); + a = a.substring(0, colon); + } + else + port = Registry.REGISTRY_PORT; + } + catch (NumberFormatException e1) + { + throw new InvalidNameException(address); + } + + try + { + registry = LocateRegistry.getRegistry(a, port); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + } + return registry; + } + + /** + * Create the rmi url context that works, talking with the given RMI registry. + * + * @param props + * the properties for this context + */ + public RmiContinuation(Map props) + { + properties = new Properties(); + if (props != null) + properties.putAll(props); + } + + /** + * Bind the given name into this context. The .toString() is called to + * convert into the string representation, required by RMI registry. + * + * @throws NamingException if the object is not an instance of Remote + */ + public void bind(Name name, Object obj) throws NamingException + { + bind(name.toString(), obj); + } + + /** + * Bind the given name into this context. + */ + public void bind(String name, Object obj) throws NamingException + { + try + { + getRegistry().bind(name, (Remote) obj); + } + catch (AccessException e) + { + throw new NamingException("access:"+e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (AlreadyBoundException e) + { + throw new NameAlreadyBoundException(name); + } + catch (ClassCastException c) + { + throw new NamingException("Only Remote can be bound:" + + obj.getClass().getName()); + } + } + + /** + * Not supported. + */ + public Name composeName(Name name, Name prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported. + */ + public String composeName(String name, String prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. The only supported case is an + * empty name (returns the cloned instance of self). + */ + public Context createSubcontext(Name name) throws NamingException + { + if (name.size() == 0) + return new RmiContinuation(properties); + else + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. The only supported case is an + * empty name (returns the cloned instance of self). + */ + public Context createSubcontext(String name) throws NamingException + { + if (name.length() == 0) + return new RmiContinuation(properties); + else + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. + */ + public void destroySubcontext(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. + */ + public void destroySubcontext(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Returns the naming service URL, same that was passed vie + * {@link Context#PROVIDER_URL}. + */ + public String getNameInNamespace() throws NamingException + { + return properties.getProperty(Context.PROVIDER_URL, + DEFAULT_REGISTRY_LOCATION); + } + + /** + * Not supported, this context never parses any names. + */ + public NameParser getNameParser(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported, this context never parses any names. + */ + public NameParser getNameParser(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). The class name of the returned name class + * pairs is "Remote", as this "quick preview" method should probably not call + * the naming service again. Use listBindings if more details are required. + */ + public NamingEnumeration list(Name name) throws NamingException + { + if (name.size() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + return list(""); + } + + /** + * List existing bindings of this context (the parameter must be empty string, + * indicating the root context). The class name of the returned name class + * pairs is "Remote", as this "quick preview" method should probably not call + * the naming service again. Use listBindings if more details are required. + */ + public NamingEnumeration list(String name) throws NamingException + { + if (name.length() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + + try + { + return new ListEnumeration(getRegistry().list()); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). + */ + public NamingEnumeration listBindings(Name name) throws NamingException + { + if (name.size() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + return listBindings(""); + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). + */ + public NamingEnumeration listBindings(String name) throws NamingException + { + if (name.length() > 0) + throw new OperationNotSupportedException("Only empty name is accepted"); + + try + { + Registry r = getRegistry(); + return new ListBindingsEnumeration(r.list(), r); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Not supported. + */ + public Object lookupLink(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported. + */ + public Object lookupLink(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Rebinds this object. + * + * @param name + * the object name (.toString()) is used to convert into string + * representation. + * @param obj + * object (must be an instance of Remote). + */ + public void rebind(Name name, Object obj) throws NamingException + { + rebind(name.toString(), obj); + } + + /** + * Rebinds this object. + * + * @param name + * the object name. + * @param obj + * object (must be an instance of Remote). + */ + public void rebind(String name, Object obj) throws NamingException + { + try + { + getRegistry().rebind(name, (Remote) obj); + } + catch (AccessException e) + { + throw new NamingException("access:"+e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (ClassCastException c) + { + throw new NamingException("Only Remote can be bound:" + + obj.getClass().getName()); + } + } + + /** + * Renames the object. If the new name is already bound in the given context, + * the {@link AlreadyBoundException} is thrown and the oldName binding is + * preserved. + */ + public void rename(Name oldName, Name newName) throws NamingException + { + rename(oldName.toString(), newName.toString()); + } + + /** + * Renames the object. If the new name is already bound in the given context, + * the {@link AlreadyBoundException} is thrown and the oldName binding is + * preserved. + */ + public synchronized void rename(String oldName, String newName) + throws NamingException + { + try + { + Registry r = getRegistry(); + Remote object = r.lookup(oldName); + r.unbind(oldName); + try + { + r.bind(newName, object); + } + catch (AlreadyBoundException e) + { + // Bind it back. + try + { + r.bind(oldName, object); + } + catch (AlreadyBoundException e1) + { + // We have just removed this name. + throw new InternalError(); + } + throw new NameAlreadyBoundException(newName); + } + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new CommunicationException(e.toString()); + } + } + + /** + * Unbind the object. + */ + public void unbind(Name name) throws NamingException + { + unbind(name.toString()); + } + + /** + * Unbind the object. + */ + public void unbind(String name) throws NamingException + { + try + { + getRegistry().unbind(name); + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new CommunicationException(e.toString()); + } + } + + /** + * Release the associated resources. + */ + public void close() throws NamingException + { + removeRegistry(); + } + + /** + * Resolve the object by name. + * + * @param name + * the object name, .toString() is used to get the string + * representation. + */ + public Object lookup(Name name) throws NamingException + { + return lookup(name.toString()); + } + + /** + * Resolve the object by name + * + * @param name the object name. + */ + public Object lookup(String name) throws NamingException + { + try + { + return getRegistry().lookup(name); + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new NameNotFoundException(name); + } + } +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java new file mode 100644 index 00000000000..6d88cccefe3 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java @@ -0,0 +1,130 @@ +/* RmiNamingEnumeration.java -- handles rmi: urls + 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 gnu.javax.naming.jndi.url.rmi; + +import java.util.NoSuchElementException; + +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; + +/** + * Iterates over name class pairs, obtaining values first from the binding list + * and then from the binding iterator. + * + * @author Audrius Meskauskas + */ +public abstract class RmiNamingEnumeration implements NamingEnumeration +{ + /** + * The array of bindings, returned at once. + */ + String[] list; + + /** + * The position of the element in the binding list, that must be returned + * during the subsequent call of the next(). If this field is grater or equal + * to the lenght of the list, the subsequent values must be requested from the + * iterator. + */ + int p; + + RmiNamingEnumeration(String[] bindingList) + { + list = bindingList; + } + + /** + * Convert from the CORBA binding into that this enumeration should return. + * + * @param binding + * the binding to convert + * @return the value, that must be returned by the {@link #next()}. + */ + public abstract Object convert(String binding); + + /** + * Checks if there are more elements to return. + * + * @throws NamingException + * never + */ + public boolean hasMore() throws NamingException + { + return hasMoreElements(); + } + + /** + * Returns the next element. + * + * @throws NamingException + * never + */ + public Object next() throws NamingException + { + return nextElement(); + } + + /** + * Checks if there are more elements to return. + */ + public boolean hasMoreElements() + { + return p < list.length; + } + + /** + * Returns the next element. + */ + public Object nextElement() + { + if (p < list.length) + return convert(list[p++]); + else + throw new NoSuchElementException(); + } + + /** + * Nothing to do in this method. + */ + public void close() + { + // Nothing to do here. + } + +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java new file mode 100644 index 00000000000..a17ce026b16 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java @@ -0,0 +1,637 @@ +/* rmiURLContext.java -- RMI naming context + 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 gnu.javax.naming.jndi.url.rmi; + +import java.rmi.AccessException; +import java.rmi.AlreadyBoundException; +import java.rmi.NotBoundException; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.util.Hashtable; +import java.util.Map; +import java.util.Properties; +import java.util.WeakHashMap; + +import javax.naming.CommunicationException; +import javax.naming.Context; +import javax.naming.InvalidNameException; +import javax.naming.Name; +import javax.naming.NameAlreadyBoundException; +import javax.naming.NameNotFoundException; +import javax.naming.NameParser; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.OperationNotSupportedException; + +/** + * The implementation of the RMI URL context. This context connects + * + * @author Audrius Meskauskas + */ +public class rmiURLContext implements Context +{ + /** + * The default registry location. + */ + public static final String DEFAULT_REGISTRY_LOCATION = "rmi://localhost:1099"; + + /** + * The registry cache, maps the registry URL's to they instances. The + * obtained registries are reused, as newly obtaining them may cause the + * resource leak. + */ + static WeakHashMap registryCache = new WeakHashMap(); + + /** + * The properties. + */ + Properties properties; + + /** + * The flag, indicating, that the lookup methods were called before. + * If the lookup methods were called before, the existing ORB cannot be + * destroyed, as references to the existing objects will become + * unfunctional. + */ + boolean lookupCalled; + + /** + * Add new environment property to the environment of this context. Both name + * and value of the new property must not be null. If the property is already + * defined, is current value is replaced by the propVal. This method replaces + * the registry. The new registry will be lazily instantiated on the first + * call. + * + * @param key + * the name of the new property + * @param value + * the value of the new property + * @return the previous value of this property or null if the property has not + * been previously defined + */ + public Object addToEnvironment(String key, Object value) + { + if (key == null || value == null) + throw new NullPointerException(); + return properties.put(key, value); + } + + /** + * Returns the environment, associated with this naming context. The returned + * table should never be modified by the caller (the registry would not be updated + * in such case). Use {@link #addToEnvironment} and + * {@link #removeFromEnvironment} to modify the environement, if needed. + * + * @return the table, representing the environment of this context + * @throws NamingException + */ + public Hashtable getEnvironment() throws NamingException + { + return properties; + } + + /** + * Removes the property with the given name from the environment. Returns + * without action if this property is not defined. Replaces the ORB, + * constructing the new ORB with the changes set of properties (you can + * replace the CORBA implementation provider, for instance). The new ORB will + * be lazily instantiated on the first call. + * + * @param propName + * the name of the property being removed. + * @return the value of the property that has been removed or null if the + * property was not defined. + * @throws NamingException + */ + public Object removeFromEnvironment(String propName) throws NamingException + { + return properties.remove(propName); + } + + /** + * Get the cached or new registry reference. + * + * @return the registry reference, either cached or new. + */ + public Registry getRegistry(String netAddress) throws NamingException + { + Registry registry; + + synchronized (registryCache) + { + registry = (Registry) registryCache.get(netAddress); + } + + if (registry == null) + { + // The colon, if present, indicates the start of the port number. + int colon = netAddress.lastIndexOf(':'); + int port; + + try + { + if (colon >= 0) + { + port = Integer.parseInt(netAddress.substring(colon + 1)); + netAddress = netAddress.substring(0, colon); + } + else + port = Registry.REGISTRY_PORT; + } + catch (NumberFormatException e1) + { + throw new InvalidNameException(netAddress); + } + + try + { + registry = LocateRegistry.getRegistry(netAddress, port); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + + synchronized (registryCache) + { + registryCache.put(netAddress, registry); + } + } + return registry; + } + + /** + * Create the rmi url context that works, talking with the given RMI registry. + * + * @param props + * the properties for this context + */ + public rmiURLContext(Map props) + { + properties = new Properties(); + if (props != null) + properties.putAll(props); + } + + /** + * Bind the given name into this context. The .toString() is called to + * convert into the string representation, required by RMI registry. + * + * @throws NamingException if the object is not an instance of Remote + */ + public void bind(Name name, Object obj) throws NamingException + { + bind(name.toString(), obj); + } + + /** + * Bind the given name into this context. + */ + public void bind(String name, Object obj) throws NamingException + { + try + { + String [] n = split(name); + getRegistry(n[0]).bind(n[1], (Remote) obj); + } + catch (AccessException e) + { + throw new NamingException("access:"+e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (AlreadyBoundException e) + { + throw new NameAlreadyBoundException(name); + } + catch (ClassCastException c) + { + throw new NamingException("Only Remote can be bound:" + + obj.getClass().getName()); + } + } + + /** + * Not supported. + */ + public Name composeName(Name name, Name prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported. + */ + public String composeName(String name, String prefix) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. The only supported case is an + * empty name (returns the cloned instance of self). + */ + public Context createSubcontext(Name name) throws NamingException + { + if (name.size() == 0) + return new rmiURLContext(properties); + else + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. The only supported case is an + * empty name (returns the cloned instance of self). + */ + public Context createSubcontext(String name) throws NamingException + { + if (name.length() == 0) + return new rmiURLContext(properties); + else + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. + */ + public void destroySubcontext(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Subcontexts are not supporte by RMI registry. + */ + public void destroySubcontext(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Returns the naming service URL, same that was passed vie + * {@link Context#PROVIDER_URL}. + */ + public String getNameInNamespace() throws NamingException + { + return properties.getProperty(Context.PROVIDER_URL, + DEFAULT_REGISTRY_LOCATION); + } + + /** + * Not supported, this context never parses any names. + */ + public NameParser getNameParser(Name name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * Not supported, this context never parses any names. + */ + public NameParser getNameParser(String name) throws NamingException + { + throw new OperationNotSupportedException(); + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). The class name of the returned name class + * pairs is "Remote", as this "quick preview" method should probably not call + * the naming service again. Use listBindings if more details are required. + */ + public NamingEnumeration list(Name name) throws NamingException + { + return list(name); + } + + /** + * List existing bindings of thie given registry.The class name of the + * returned name class pairs is "Remote", as this "quick preview" method + * should probably not call the naming service again. Use listBindings if more + * details are required. + */ + public NamingEnumeration list(String name) throws NamingException + { + try + { + String [] n = split(name); + if (n[1].length() > 0) + throw new InvalidNameException(name+", the name part must be empty"); + return new ListEnumeration(getRegistry(n[0]).list()); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * List existing bindings of this context (the parameter must be empty name, + * indicating the root context). + */ + public NamingEnumeration listBindings(Name name) throws NamingException + { + return listBindings(name.toString()); + } + + /** + * List existing bindings of this context. + */ + public NamingEnumeration listBindings(String name) throws NamingException + { + try + { + String [] n = split(name); + if (n[1].length() > 0) + throw new InvalidNameException(name+", the name part must be empty"); + + Registry r = getRegistry(n[0]); + return new ListBindingsEnumeration(r.list(), r); + } + catch (Exception e) + { + throw new NamingException(e.toString()); + } + } + + /** + * Returns the naming service context under the given address, wrapped as + * Context. + */ + public Object lookupLink(Name name) throws NamingException + { + return lookupLink(name.toString()); + } + + /** + * Returns the naming service context under the given address, + * wrapped as Context. + */ + public Object lookupLink(String name) throws NamingException + { + return new ContextContinuation(properties, getRegistry(name)); + } + + /** + * Rebinds this object. + * + * @param name + * the object name (.toString()) is used to convert into string + * representation. + * @param obj + * object (must be an instance of Remote). + */ + public void rebind(Name name, Object obj) throws NamingException + { + rebind(name.toString(), obj); + } + + /** + * Rebinds this object. + * + * @param name + * the object name. + * @param obj + * object (must be an instance of Remote). + */ + public void rebind(String name, Object obj) throws NamingException + { + try + { + String [] n = split(name); + getRegistry(n[0]).rebind(n[1], (Remote) obj); + } + catch (AccessException e) + { + throw new NamingException("access:"+e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (ClassCastException c) + { + throw new NamingException("Only Remote can be bound:" + + obj.getClass().getName()); + } + } + + /** + * Renames the object. If the new name is already bound in the given context, + * the {@link AlreadyBoundException} is thrown and the oldName binding is + * preserved. + */ + public void rename(Name oldName, Name newName) throws NamingException + { + rename(oldName.toString(), newName.toString()); + } + + /** + * Renames the object. If the new name is already bound in the given context, + * the {@link AlreadyBoundException} is thrown and the oldName binding is + * preserved. + */ + public synchronized void rename(String oldName, String newName) + throws NamingException + { + try + { + String [] n = split(oldName); + Registry r = getRegistry(n[0]); + Remote object = r.lookup(n[1]); + r.unbind(oldName); + try + { + String [] n2 = split(newName); + Registry r2 = getRegistry(n2[0]); + r2.bind(n2[1], object); + } + catch (AlreadyBoundException e) + { + // Bind it back. + try + { + r.bind(oldName, object); + } + catch (AlreadyBoundException e1) + { + // We have just removed this name. + throw new InternalError(); + } + throw new NameAlreadyBoundException(newName); + } + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new CommunicationException(e.toString()); + } + } + + /** + * Unbind the object. + */ + public void unbind(Name name) throws NamingException + { + unbind(name.toString()); + } + + /** + * Unbind the object. + */ + public void unbind(String name) throws NamingException + { + try + { + String [] n = split(name); + getRegistry(n[0]).unbind(n[1]); + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new CommunicationException(e.toString()); + } + } + + /** + * Release the associated resources. + */ + public void close() throws NamingException + { + } + + /** + * Resolve the object by name. + * + * @param name + * the object name, .toString() is used to get the string + * representation. + */ + public Object lookup(Name name) throws NamingException + { + return lookup(name.toString()); + } + + /** + * Resolve the object by name + * + * @param name the object name. + */ + public Object lookup(String name) throws NamingException + { + try + { + String [] n = split(name); + return getRegistry(n[0]).lookup(n[1]); + } + catch (AccessException e) + { + throw new NamingException(e.toString()); + } + catch (RemoteException e) + { + throw new CommunicationException(e.toString()); + } + catch (NotBoundException e) + { + throw new NameNotFoundException(name); + } + } + + /** + * Split the given rmi address into the network address and naming service + * name. + * + * @param address + * the address to split + * @return the two member array, lower being the network address of the naming + * service and upper being the naming service name + * @throws NamingException + * if the name is invalid + */ + public String[] split(String address) throws NamingException + { + // The format like rmi://localhost:1099/name is expected. Parse. + if (!address.startsWith("rmi://")) + throw new InvalidNameException( + address + + " should be like 'rmi://localhost:1099/name'"); + + String a = address.substring("rmi://".length()); + + // The suffix starts after the first slash from the rmi:// + int sfx = a.indexOf('/'); + + // Handle the possible escape + while (sfx > 0 && a.charAt(sfx - 1) == '\\') + sfx = a.indexOf('/', sfx + 1); + + String net; + String name; + if (sfx >= 0) + { + net = a.substring(0, sfx); + name = a.substring(sfx + 1); + } + else + { + net = a; + name = ""; + } + + return new String[] { net, name }; + } +} diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java new file mode 100644 index 00000000000..59384532736 --- /dev/null +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java @@ -0,0 +1,66 @@ +/* rmiURLContextFactory.java -- handles RMI naming context + 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 gnu.javax.naming.jndi.url.rmi; + +import java.util.Hashtable; + +import javax.naming.Context; +import javax.naming.Name; +import javax.naming.spi.ObjectFactory; + +/** + * Find the RMI URL context. This factory checks the Context.PROVIDER_URL + * property for the address of the RMI naming service and creates the + * context that operates talking with this naming service. If such property + * is missing, "rmi://localhost:1099" is assumed. + * + * @author Audrius Meskauskas (audriusa@Bioinformatics.org) + */ +public class rmiURLContextFactory implements ObjectFactory +{ + + /** + * Create a new instance of the context. + */ + public Object getObjectInstance(Object refObj, Name name, Context nameCtx, + Hashtable environment) + { + return new rmiURLContext(environment); + } + +} diff --git a/libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java b/libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java new file mode 100644 index 00000000000..bdd7f274e06 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/AbstractSessionContext.java @@ -0,0 +1,288 @@ +/* AbstractSessionContext -- stores SSL sessions, possibly persistently. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +import gnu.java.security.Requires; + +import gnu.javax.net.ssl.provider.SimpleSessionContext; + +import java.util.Enumeration; + +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLPermission; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSessionContext; + +/** + * A skeletal implementation of {@link SSLSessionContext}. This class may + * be subclassed to add extended functionality to session contexts, such + * as by storing sessions in files on disk, or by sharing contexts + * across different JVM instances. + * + *

    In order to securely store sessions, along with private key data, + * the abstract methods {@lnk {@link #load(char[])} and {@link #store(char[])} + * come into play. When storing sessions, a session context implementation + * must pass this password to the {@link Session#prepare(char[])} method, + * before either writing the {@link java.io.Serializable} session to the + * underlying store, or getting the opaque {@link Session#privateData()} + * class from the session, and storing that. + * + *

    As a simple example, that writes sessions to some object output + * stream: + * + *

    +  char[] password = ...;
    +  ObjectOutputStream out = ...;
    +  ...
    +  for (Session s : this)
    +    {
    +      s.prepare(password);
    +      out.writeObject(s);
    +    }
    + * + *

    The reverse must be done when deserializing sessions, by using the + * {@link Session#repair(char[])} method, possibly by first calling + * {@link Session#setPrivateData(java.io.Serializable)} with the read, + * opaque private data type. Thus an example of reading may be: + * + *

    +  char[] password = ...;
    +  ObjectInputStream in = ...;
    +  ...
    +  while (hasMoreSessions(in))
    +    {
    +      Session s = (Session) in.readObject();
    +      s.repair(password);
    +      addToThisStore(s);
    +    }
    + * + * @author Casey Marshall (csm@gnu.org) + */ +public abstract class AbstractSessionContext implements SSLSessionContext +{ + protected long timeout; + private static Class + implClass = SimpleSessionContext.class; + + /** + * Create a new instance of a session context, according to the configured + * implementation class. + * + * @return The new session context. + * @throws SSLException If an error occurs in creating the instance. + */ + public static AbstractSessionContext newInstance () throws SSLException + { + try + { + return implClass.newInstance(); + } + catch (IllegalAccessException iae) + { + throw new SSLException(iae); + } + catch (InstantiationException ie) + { + throw new SSLException(ie); + } + } + + /** + * Reconfigure this instance to use a different session context + * implementation. + * + *

    Note: this method requires that the caller have + * {@link SSLPermission} with target + * gnu.javax.net.ssl.AbstractSessionContext and action + * setImplClass. + * + * @param clazz The new implementation class. + * @throws SecurityException If the caller does not have permission to + * change the session context. + */ + @Requires(permissionClass = SSLPermission.class, + target = "gnu.javax.net.ssl.AbstractSessionContext", + action = "setImplClass") + public static synchronized void setImplClass + (Class clazz) + throws SecurityException + { + SecurityManager sm = System.getSecurityManager (); + if (sm != null) + sm.checkPermission(new SSLPermission("gnu.javax.net.ssl.AbstractSessionContext", + "setImplClass")); + implClass = clazz; + } + + /** + * @param timeout The initial session timeout. + */ + protected AbstractSessionContext (final int timeout) + { + setSessionTimeout(timeout); + } + + /** + * Fetch a saved session by its ID. This method will (possibly) + * deserialize and return the SSL session with that ID, or null if + * the requested session does not exist, or has expired. + * + *

    Subclasses implementing this class must not + * perform any blocking operations in this method. If any blocking + * behavior is required, it must be done in the {@link load(char[])} + * method. + * + * @param sessionId The ID of the session to get. + * @return The found session, or null if no such session was found, + * or if that session has expired. + */ + public final SSLSession getSession (byte[] sessionId) + { + Session s = implGet (sessionId); + if (s != null + && System.currentTimeMillis () - s.getLastAccessedTime () > timeout) + { + remove (sessionId); + return null; + } + return s; + } + + public final SSLSession getSession(String host, int port) + { + for (Enumeration e = getIds(); e.hasMoreElements(); ) + { + byte[] id = (byte[]) e.nextElement(); + SSLSession s = getSession(id); + if (s == null) // session expired. + continue; + String host2 = s.getPeerHost(); + if (host == null) + { + if (host2 != null) + continue; + } + else if (!host.equals(host2)) + continue; + int port2 = s.getPeerPort(); + if (port != port2) + continue; + + // Else, a match. + return s; + } + + return null; + } + + /** + * To be implemented by subclasses. Subclasses do not need to check + * timeouts in this method. + * + * @param sessionId The session ID. + * @return The session, or null if the requested session + * was not found. + */ + protected abstract Session implGet (byte[] sessionId); + + public int getSessionTimeout() + { + return (int) (timeout / 1000); + } + + /** + * Load this session store from the underlying media, if supported + * by the implementation. + * + * @param password The password that protects the sensitive data in + * this store. + * @throws SessionStoreException If reading this store fails, such + * as when an I/O exception occurs, or if the password is incorrect. + */ + public abstract void load (char[] password) throws SessionStoreException; + + /** + * Add a new session to the store. The underlying implementation + * will add the session to its store, possibly overwriting any + * existing session with the same ID. + * + *

    Subclasses implementing this class must not + * perform any blocking operations in this method. If any blocking + * behavior is required, it must be done in the {@link + * #store(char[])} method. + * + * @param session The session to add. + * @throws NullPointerException If the argument is null. + */ + public abstract void put (Session session); + + /** + * Remove a session from this store. + * + *

    Subclasses implementing this class must not + * perform any blocking operations in this method. If any blocking + * behavior is required, it must be done in the {@link + * #store(char[])} method. + * + * @param sessionId The ID of the session to remove. + */ + public abstract void remove (byte[] sessionId); + + /** + * + */ + public final void setSessionTimeout(int seconds) + { + if (timeout < 0) + throw new IllegalArgumentException("timeout may not be negative"); + this.timeout = (long) seconds * 1000; + } + + /** + * Commit this session store to the underlying media. For session + * store implementations that support saving sessions across + * invocations of the JVM, this method will save any sessions that + * have not expired to some persistent media, so they may be loaded + * and used again later. + * + * @param password The password that will protect the sensitive data + * in this store. + */ + public abstract void store (char[] password) throws SessionStoreException; +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java b/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java new file mode 100644 index 00000000000..ba6500a27d4 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManager.java @@ -0,0 +1,54 @@ +/* PreSharedKeyManager.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +import java.security.KeyManagementException; + +import javax.crypto.SecretKey; +import javax.net.ssl.KeyManager; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public interface PreSharedKeyManager extends KeyManager +{ + SecretKey getKey(String name) throws KeyManagementException; + + String chooseIdentityHint(); +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java b/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java new file mode 100644 index 00000000000..1b1d492b1ae --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java @@ -0,0 +1,83 @@ +/* PreSharedKeyManagerParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +import java.util.Iterator; +import java.util.LinkedHashMap; + +import javax.crypto.SecretKey; +import javax.net.ssl.ManagerFactoryParameters; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class PreSharedKeyManagerParameters + implements ManagerFactoryParameters +{ + private final LinkedHashMap keys; + + public PreSharedKeyManagerParameters() + { + keys = new LinkedHashMap(); + } + + public SecretKey getKey(String name) + { + name.getClass(); + return keys.get(name); + } + + public void putKey(String name, SecretKey key) + { + name.getClass(); + key.getClass(); + keys.put(name, key); + } + + public boolean removeKey(String name) + { + name.getClass(); + return keys.remove(name) != null; + } + + public Iterator identities() + { + return keys.keySet().iterator(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java b/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java index f602f98ae22..442629309e7 100644 --- a/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java +++ b/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java @@ -51,6 +51,7 @@ import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.Security; +import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; @@ -95,16 +96,16 @@ public class PrivateCredentials implements ManagerFactoryParameters public static final String BEGIN_RSA = "-----BEGIN RSA PRIVATE KEY"; public static final String END_RSA = "-----END RSA PRIVATE KEY"; - private List privateKeys; - private List certChains; + private List privateKeys; + private List certChains; // Constructor. // ------------------------------------------------------------------------- public PrivateCredentials() { - privateKeys = new LinkedList(); - certChains = new LinkedList(); + privateKeys = new LinkedList(); + certChains = new LinkedList(); } // Instance methods. @@ -115,7 +116,7 @@ public class PrivateCredentials implements ManagerFactoryParameters IOException, NoSuchAlgorithmException, WrongPaddingException { CertificateFactory cf = CertificateFactory.getInstance("X.509"); - Collection certs = cf.generateCertificates(certChain); + Collection certs = cf.generateCertificates(certChain); X509Certificate[] chain = (X509Certificate[]) certs.toArray(new X509Certificate[0]); String alg = null; @@ -199,11 +200,12 @@ public class PrivateCredentials implements ManagerFactoryParameters (BigInteger) der.read().getValue(), // d mod (q-1) (BigInteger) der.read().getValue()); // coefficient } + privateKeys.add(kf.generatePrivate(spec)); certChains.add(chain); } - public List getPrivateKeys() + public List getPrivateKeys() { if (isDestroyed()) { @@ -212,7 +214,7 @@ public class PrivateCredentials implements ManagerFactoryParameters return privateKeys; } - public List getCertChains() + public List getCertChains() { return certChains; } diff --git a/libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java b/libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java new file mode 100644 index 00000000000..a3ab8771389 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/SSLCipherSuite.java @@ -0,0 +1,142 @@ +/* SSLCipherSuite.java -- an SSL cipher suite. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +import gnu.java.security.Engine; + +import java.lang.reflect.InvocationTargetException; +import java.nio.ByteBuffer; +import java.security.NoSuchAlgorithmException; +import java.security.Provider; +import java.security.Security; + +/** + * An SSL cipher suite. + */ +public abstract class SSLCipherSuite +{ + private static final String SERVICE = "SSLCipherSuite"; + private final String algorithm; + private final byte[] id; + private final SSLProtocolVersion version; + private Provider provider; + + protected SSLCipherSuite (final String algorithm, final byte[] id, + final SSLProtocolVersion version) + { + this.algorithm = algorithm; + if (id.length != 2) + throw new IllegalArgumentException ("cipher suite ID must be two bytes"); + this.id = (byte[]) id.clone (); + this.version = version; + } + + public static final SSLCipherSuite getInstance (SSLProtocolVersion version, byte[] id) + throws NoSuchAlgorithmException + { + return getInstance (version + "-" + ((id[0] & 0xFF) + "/" + (id[1] & 0xFF))); + } + + public static final SSLCipherSuite getInstance (SSLProtocolVersion version, + byte[] id, Provider provider) + throws NoSuchAlgorithmException + { + return getInstance (version + "-" + (id[0] & 0xFF) + "/" + (id[1] & 0xFF), provider); + } + + public static final SSLCipherSuite getInstance (String name) + throws NoSuchAlgorithmException + { + Provider[] providers = Security.getProviders (); + for (int i = 0; i < providers.length; i++) + { + try + { + return getInstance (name, providers[i]); + } + catch (NoSuchAlgorithmException nsae) + { + // Ignore. + } + } + + throw new NoSuchAlgorithmException (SERVICE + ": " + name); + } + + public static final SSLCipherSuite getInstance (String name, Provider provider) + throws NoSuchAlgorithmException + { + SSLCipherSuite suite = null; + try + { + suite = (SSLCipherSuite) Engine.getInstance (SERVICE, name, provider); + suite.provider = provider; + } + catch (InvocationTargetException ite) + { + // XXX + NoSuchAlgorithmException nsae = new NoSuchAlgorithmException (name); + nsae.initCause (ite); + throw nsae; + } + return suite; + } + + public final String getAlgorithm () + { + return algorithm; + } + + public final byte[] getId () + { + return (byte[]) id.clone (); + } + + public final Provider getProvider () + { + return provider; + } + + public final SSLProtocolVersion getProtocolVersion () + { + return version; + } + + public abstract void encipher (ByteBuffer in, ByteBuffer out); +} diff --git a/libjava/classpath/gnu/javax/net/ssl/SSLProtocolVersion.java b/libjava/classpath/gnu/javax/net/ssl/SSLProtocolVersion.java new file mode 100644 index 00000000000..3998f936abe --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/SSLProtocolVersion.java @@ -0,0 +1,54 @@ +/* SSLProtocolVersion.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +public enum SSLProtocolVersion +{ + SSLv3 (3, 0), + TLSv1 (3, 1); + + public final int major; + public final int minor; + + private SSLProtocolVersion (int major, int minor) + { + this.major = major; + this.minor = minor; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java b/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java new file mode 100644 index 00000000000..3147415fe36 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java @@ -0,0 +1,101 @@ +/* SSLRecordHandler.java -- a class that handles SSL record layer messages. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +import java.nio.ByteBuffer; +import javax.net.ssl.SSLEngineResult; +import javax.net.ssl.SSLException; + +public abstract class SSLRecordHandler +{ + private final byte contentType; + + /** + * Create a new record handler for the given content type. + */ + protected SSLRecordHandler (final byte contentType) + { + this.contentType = contentType; + } + + /** + * Handle an SSL record layer message, encapsulated in the supplied + * input buffer, and writing any output bytes to the output + * buffer. The input buffer is always only limited to the bytes that + * encapsulate the fragment of the record layer message + * — that is, the content-type, version, and length fields are + * not present in the input buffer, and the limit of the input + * buffer is always only as large as the fragment. If the message + * being read is not contained entirely within the given buffer, + * then the implementation should cache the bytes read as input, and + * wait until subsequent calls finish the object being read. + * + *

    Technically, we expect only APPLICATION messages to ever + * produce output, but do suppose that extensions to the SSL + * protocol could allow other channels that produce output. + * + * @param input The input buffer. + * @param output The output buffer. + */ + public abstract void handle (final ByteBuffer input, + final ByteBuffer output) + throws SSLException; + + /** + * Returns the record layer content type that this handler is for. + * + * @return The content type value. + */ + public final byte contentType () + { + return contentType; + } + + public boolean equals (final Object o) + { + if (!(o instanceof SSLRecordHandler)) + return false; + return ((SSLRecordHandler) o).contentType == contentType; + } + + public int hashCode () + { + return contentType & 0xFF; + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/Session.java b/libjava/classpath/gnu/javax/net/ssl/Session.java new file mode 100644 index 00000000000..e2b21aa1e81 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/Session.java @@ -0,0 +1,364 @@ +/* SessionImpl.java -- concrete definition of SSLSession. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +import java.io.Serializable; + +import java.security.Principal; +import java.security.SecureRandom; +import java.security.cert.Certificate; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Set; + +import javax.crypto.SealedObject; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLPeerUnverifiedException; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSessionBindingEvent; +import javax.net.ssl.SSLSessionBindingListener; +import javax.net.ssl.SSLSessionContext; +import javax.security.cert.X509Certificate; + +/** + * A concrete implementation of the {@link SSLSession} interface. This + * class is provided to allow pluggable {@link AbstractSessionContext} + * implementations. + */ +public abstract class Session implements SSLSession, Serializable +{ + protected final long creationTime; + protected long lastAccessedTime; + protected int applicationBufferSize; + + protected ID sessionId; + protected Certificate[] localCerts; + protected Certificate[] peerCerts; + protected X509Certificate[] peerCertChain; + protected String peerHost; + protected int peerPort; + protected boolean peerVerified; + protected HashMap values; + protected boolean valid; + protected boolean truncatedMac = false; + transient protected SecureRandom random; + transient protected SSLSessionContext context; + + protected Session() + { + creationTime = System.currentTimeMillis(); + values = new HashMap(); + applicationBufferSize = (1 << 14); + } + + public void access() + { + lastAccessedTime = System.currentTimeMillis (); + } + + public int getApplicationBufferSize() + { + return applicationBufferSize; + } + + public String getCipherSuite() + { + return null; + } + + public long getCreationTime() + { + return creationTime; + } + + public byte[] getId() + { + return sessionId.id(); + } + + public ID id() + { + return sessionId; + } + + public long getLastAccessedTime() + { + return lastAccessedTime; + } + + public Certificate[] getLocalCertificates() + { + if (localCerts == null) + return null; + return (Certificate[]) localCerts.clone(); + } + + public Principal getLocalPrincipal() + { + if (localCerts != null) + { + if (localCerts[0] instanceof java.security.cert.X509Certificate) + return ((java.security.cert.X509Certificate) localCerts[0]).getSubjectDN(); + } + return null; + } + + public int getPacketBufferSize() + { + return applicationBufferSize + 2048; + } + + public Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException + { + if (!peerVerified) + throw new SSLPeerUnverifiedException("peer not verified"); + if (peerCerts == null) + return null; + return (Certificate[]) peerCerts.clone(); + } + + public X509Certificate[] getPeerCertificateChain() + throws SSLPeerUnverifiedException + { + if (!peerVerified) + throw new SSLPeerUnverifiedException("peer not verified"); + if (peerCertChain == null) + return null; + return (X509Certificate[]) peerCertChain.clone(); + } + + public String getPeerHost() + { + return peerHost; + } + + public int getPeerPort() + { + return peerPort; + } + + public Principal getPeerPrincipal() throws SSLPeerUnverifiedException + { + if (!peerVerified) + throw new SSLPeerUnverifiedException("peer not verified"); + if (peerCertChain == null) + return null; + return peerCertChain[0].getSubjectDN(); + } + + public SSLSessionContext getSessionContext() + { + return context; + } + + public String[] getValueNames() + { + Set keys = this.values.keySet(); + return keys.toArray(new String[keys.size()]); + } + + public Object getValue(String name) + { + return values.get(name); + } + + public void invalidate() + { + valid = false; + } + + public boolean isValid() + { + return valid; + } + + public void putValue(String name, Object value) + { + values.put(name, value); + try + { + if (value instanceof SSLSessionBindingListener) + ((SSLSessionBindingListener) value).valueBound + (new SSLSessionBindingEvent(this, name)); + } + catch (Exception x) + { + } + } + + public void removeValue(String name) + { + Object value = values.remove(name); + try + { + if (value instanceof SSLSessionBindingListener) + ((SSLSessionBindingListener) value).valueUnbound + (new SSLSessionBindingEvent(this, name)); + } + catch (Exception x) + { + } + } + + public final boolean isTruncatedMac() + { + return truncatedMac; + } + + /** + * Prepare this session for serialization. Private data will be encrypted + * with the given password, and this object will then be ready to be + * serialized. + * + * @param password The password to protect this session with. + * @throws SSLException If encrypting this session's private data fails. + */ + public abstract void prepare (char[] password) throws SSLException; + + /** + * Repair this session's private data after deserialization. This method + * will decrypt this session's private data, and prepare the session for + * use in new SSL connections. + * + * @param password The password to decrypt the private data with. + * @throws SSLException + */ + public abstract void repair(char[] password) throws SSLException; + + /** + * Get the private data of this session. This method may only be called + * after first calling {@link #prepare(char[])}. + * + * @return The sealed private data. + * @throws SSLException If the private data have not been sealed. + */ + public abstract SealedObject privateData() throws SSLException; + + /** + * Set the private data of this session. + * @param data + * @throws SSLException + */ + public abstract void setPrivateData(SealedObject data) throws SSLException; + + // Inner classes. + // ------------------------------------------------------------------------- + + /** + * An SSL or TLS session ID. + */ + public static final class ID implements Comparable, Serializable + { + + // Fields. + // ----------------------------------------------------------------------- + + static final long serialVersionUID = 7887036954666565936L; + /** The ID itself. */ + private final byte[] id; + + // Constructor. + // ----------------------------------------------------------------------- + + /** + * Creates a new ID. + * + * @param id The ID. The array is cloned. + */ + public ID (final byte[] id) + { + if (id.length > 32) + throw new IllegalArgumentException ("session ID's are limited to 32 bytes"); + this.id = (byte[]) id.clone(); + } + + // Instance methods. + // ----------------------------------------------------------------------- + + public byte[] id() + { + return (byte[]) id.clone(); + } + + public boolean equals(Object other) + { + if (!(other instanceof ID)) + return false; + return Arrays.equals(id, ((ID) other).id); + } + + public int hashCode() + { + int code = 0; + for (int i = 0; i < id.length; i++) + code |= (id[i] & 0xFF) << ((i & 3) << 3); + return code; + } + + public int compareTo(Object other) + { + byte[] id2 = ((ID) other).id; + if (id.length != id2.length) + return (id.length < id2.length) ? -1 : 1; + for (int i = 0; i < id.length; i++) + { + if ((id[i] & 0xFF) < (id2[i] & 0xFF)) + return -1; + if ((id[i] & 0xFF) > (id2[i] & 0xFF)) + return 1; + } + return 0; + } + + public String toString() + { + StringBuffer str = new StringBuffer (3 * id.length + 1); + for (int i = 0; i < id.length; i++) + { + int x = id[i] & 0xFF; + str.append (Character.forDigit ((x >>> 4) & 0xF, 16)); + str.append (Character.forDigit (x & 0xF, 16)); + if (i != id.length - 1) + str.append (':'); + } + return str.toString (); + } + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java b/libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java new file mode 100644 index 00000000000..5dcf3d02887 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/SessionStoreException.java @@ -0,0 +1,59 @@ +/* SessionStoreException.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl; + +import javax.net.ssl.SSLException; + +public class SessionStoreException extends SSLException +{ + public SessionStoreException (final String message) + { + super (message); + } + + public SessionStoreException (final String message, final Throwable cause) + { + super (message, cause); + } + + public SessionStoreException (final Throwable cause) + { + super (cause); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java b/libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java new file mode 100644 index 00000000000..d80a5bb789b --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java @@ -0,0 +1,1205 @@ +/* AbstractHandshake.java -- abstract handshake handler. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; +import gnu.java.security.action.GetSecurityPropertyAction; +import gnu.java.security.prng.IRandom; +import gnu.java.security.prng.LimitReachedException; +import gnu.java.security.util.ByteArray; +import gnu.javax.security.auth.callback.CertificateCallback; +import gnu.javax.security.auth.callback.DefaultCallbackHandler; + +import java.nio.ByteBuffer; +import java.security.AccessController; +import java.security.DigestException; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.KeyManagementException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.PrivilegedExceptionAction; +import java.security.SecureRandom; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.zip.Deflater; +import java.util.zip.Inflater; + +import javax.crypto.Cipher; +import javax.crypto.KeyAgreement; +import javax.crypto.Mac; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.interfaces.DHPrivateKey; +import javax.crypto.interfaces.DHPublicKey; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import javax.net.ssl.SSLEngineResult; +import javax.net.ssl.SSLException; +import javax.net.ssl.X509TrustManager; +import javax.net.ssl.SSLEngineResult.HandshakeStatus; +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.ConfirmationCallback; + +/** + * The base interface for handshake implementations. Concrete + * subclasses of this class (one for the server, one for the client) + * handle the HANDSHAKE content-type in communications. + */ +public abstract class AbstractHandshake +{ + protected static final SystemLogger logger = SystemLogger.SYSTEM; + + /** + * "server finished" -- TLS 1.0 and later + */ + protected static final byte[] SERVER_FINISHED + = new byte[] { + 115, 101, 114, 118, 101, 114, 32, 102, 105, 110, 105, 115, + 104, 101, 100 + }; + + /** + * "client finished" -- TLS 1.0 and later + */ + protected static final byte[] CLIENT_FINISHED + = new byte[] { + 99, 108, 105, 101, 110, 116, 32, 102, 105, 110, 105, 115, + 104, 101, 100 + }; + + /** + * "key expansion" -- TLS 1.0 and later + */ + private static final byte[] KEY_EXPANSION = + new byte[] { 107, 101, 121, 32, 101, 120, 112, + 97, 110, 115, 105, 111, 110 }; + + /** + * "master secret" -- TLS 1.0 and later + */ + private static final byte[] MASTER_SECRET + = new byte[] { + 109, 97, 115, 116, 101, 114, 32, 115, 101, 99, 114, 101, 116 + }; + + /** + * "client write key" -- TLS 1.0 exportable whitener. + */ + private static final byte[] CLIENT_WRITE_KEY + = new byte[] { + 99, 108, 105, 101, 110, 116, 32, 119, 114, 105, 116, 101, 32, 107, + 101, 121 + }; + + /** + * "server write key" -- TLS 1.0 exportable whitener. + */ + private static final byte[] SERVER_WRITE_KEY + = new byte[] { + 115, 101, 114, 118, 101, 114, 32, 119, 114, 105, 116, 101, 32, 107, + 101, 121 + }; + + private static final byte[] IV_BLOCK + = new byte[] { + 73, 86, 32, 98, 108, 111, 99, 107 + }; + + /** + * SSL 3.0; the string "CLNT" + */ + private static final byte[] SENDER_CLIENT + = new byte[] { 0x43, 0x4C, 0x4E, 0x54 }; + + /** + * SSL 3.0; the string "SRVR" + */ + private static final byte[] SENDER_SERVER + = new byte[] { 0x53, 0x52, 0x56, 0x52 }; + + /** + * SSL 3.0; the value 0x36 40 (for SHA-1 hashes) or 48 (for MD5 hashes) + * times. + */ + protected static final byte[] PAD1 = new byte[48]; + + /** + * SSL 3.0; the value 0x5c 40 (for SHA-1 hashes) or 48 (for MD5 hashes) + * times. + */ + protected static final byte[] PAD2 = new byte[48]; + + static + { + Arrays.fill(PAD1, SSLHMac.PAD1); + Arrays.fill(PAD2, SSLHMac.PAD2); + } + + /** + * The currently-read handshake messages. There may be zero, or + * multiple, handshake messages in this buffer. + */ + protected ByteBuffer handshakeBuffer; + + /** + * The offset into `handshakeBuffer' where the first unread + * handshake message resides. + */ + protected int handshakeOffset; + + protected MessageDigest sha; + protected MessageDigest md5; + + protected final SSLEngineImpl engine; + protected KeyAgreement keyAgreement; + protected byte[] preMasterSecret; + protected InputSecurityParameters inParams; + protected OutputSecurityParameters outParams; + protected LinkedList tasks; + protected Random serverRandom; + protected Random clientRandom; + protected CompressionMethod compression; + + protected AbstractHandshake(SSLEngineImpl engine) + throws NoSuchAlgorithmException + { + this.engine = engine; + sha = MessageDigest.getInstance("SHA-1"); + md5 = MessageDigest.getInstance("MD5"); + tasks = new LinkedList(); + } + + /** + * Handles the next input message in the handshake. This is called + * in response to a call to {@link javax.net.ssl.SSLEngine#unwrap} + * for a message with content-type HANDSHAKE. + * + * @param record The input record. The callee should not assume that + * the record's buffer is writable, and should not try to use it for + * output or temporary storage. + * @return An {@link SSLEngineResult} describing the result. + */ + public final HandshakeStatus handleInput (ByteBuffer fragment) + throws SSLException + { + if (!tasks.isEmpty()) + return HandshakeStatus.NEED_TASK; + + HandshakeStatus status = status(); + if (status != HandshakeStatus.NEED_UNWRAP) + return status; + + // Try to read another... + if (!pollHandshake(fragment)) + return HandshakeStatus.NEED_UNWRAP; + + while (hasMessage() && status != HandshakeStatus.NEED_WRAP) + { + int pos = handshakeOffset; + status = implHandleInput(); + int len = handshakeOffset - pos; + if (len == 0) + { + // Don't bother; the impl is just telling us to go around + // again. + continue; + } + if (doHash()) + { + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "hashing output\n{0}", + Util.hexDump((ByteBuffer) handshakeBuffer + .duplicate().position(pos) + .limit(pos+len), " >> ")); + sha.update((ByteBuffer) handshakeBuffer.duplicate() + .position(pos).limit(pos+len)); + md5.update((ByteBuffer) handshakeBuffer.duplicate() + .position(pos).limit(pos+len)); + } + } + return status; + } + + /** + * Called to process more handshake data. This method will be called + * repeatedly while there is remaining handshake data, and while the + * status is + * @return + * @throws SSLException + */ + protected abstract HandshakeStatus implHandleInput() + throws SSLException; + + /** + * Produce more handshake output. This is called in response to a + * call to {@link javax.net.ssl.SSLEngine#wrap}, when the handshake + * is still in progress. + * + * @param record The output record; the callee should put its output + * handshake message (or a part of it) in the argument's + * fragment, and should set the record length + * appropriately. + * @return An {@link SSLEngineResult} describing the result. + */ + public final HandshakeStatus handleOutput (ByteBuffer fragment) + throws SSLException + { + if (!tasks.isEmpty()) + return HandshakeStatus.NEED_TASK; + + int orig = fragment.position(); + SSLEngineResult.HandshakeStatus status = implHandleOutput(fragment); + if (doHash()) + { + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "hashing output:\n{0}", + Util.hexDump((ByteBuffer) fragment.duplicate().flip().position(orig), " >> ")); + sha.update((ByteBuffer) fragment.duplicate().flip().position(orig)); + md5.update((ByteBuffer) fragment.duplicate().flip().position(orig)); + } + return status; + } + + /** + * Called to implement the underlying output handling. The callee should + * attempt to fill the given buffer as much as it can; this can include + * multiple, and even partial, handshake messages. + * + * @param fragment The buffer the callee should write handshake messages to. + * @return The new status of the handshake. + * @throws SSLException If an error occurs processing the output message. + */ + protected abstract SSLEngineResult.HandshakeStatus implHandleOutput (ByteBuffer fragment) + throws SSLException; + + /** + * Return a new instance of input security parameters, initialized with + * the session key. It is, of course, only valid to invoke this method + * once the handshake is complete, and the session keys established. + * + *

    In the presence of a well-behaving peer, this should be called once + * the ChangeCipherSpec message is recieved. + * + * @return The input parameters for the newly established session. + * @throws SSLException If the handshake is not complete. + */ + final InputSecurityParameters getInputParams() throws SSLException + { + checkKeyExchange(); + return inParams; + } + + /** + * Return a new instance of output security parameters, initialized with + * the session key. This should be called after the + * ChangeCipherSpec message is sent to the peer. + * + * @return The output parameters for the newly established session. + * @throws SSLException If the handshake is not complete. + */ + final OutputSecurityParameters getOutputParams() throws SSLException + { + checkKeyExchange(); + return outParams; + } + + /** + * Fetch a delegated task waiting to run, if any. + * + * @return The task. + */ + final Runnable getTask() + { + if (tasks.isEmpty()) + return null; + return tasks.removeFirst(); + } + + /** + * Used by the skeletal code to query the current status of the handshake. + * This should be the same value as returned by the previous call + * to {@link #implHandleOutput(ByteBuffer)} or {@link + * #implHandleInput(ByteBuffer)}. + * + * @return The current handshake status. + */ + abstract HandshakeStatus status(); + + /** + * Check if the key exchange completed successfully, throwing an exception + * if not. + * + *

    Note that we assume that the caller of our SSLEngine is correct, and + * that they did run the delegated tasks that encapsulate the key exchange. + * What we are primarily checking, therefore, is that no error occurred in the + * key exchange operation itself. + * + * @throws SSLException If the key exchange did not complete successfully. + */ + abstract void checkKeyExchange() throws SSLException; + + /** + * Handle an SSLv2 client hello. This is only used by SSL servers. + * + * @param hello The hello message. + */ + abstract void handleV2Hello(ByteBuffer hello) throws SSLException; + + /** + * Attempt to read the next handshake message from the given + * record. If only a partial handshake message is available, then + * this method saves the incoming bytes and returns false. If a + * complete handshake is read, or if there was one buffered in the + * handshake buffer, this method returns true, and `handshakeBuffer' + * can be used to read the handshake. + * + * @param record The input record. + * @return True if a complete handshake is present in the buffer; + * false if only a partial one. + */ + protected boolean pollHandshake (final ByteBuffer fragment) + { + // Allocate space for the new fragment. + if (handshakeBuffer == null + || handshakeBuffer.remaining() < fragment.remaining()) + { + // We need space for anything still unread in the handshake + // buffer... + int len = ((handshakeBuffer == null) ? 0 + : handshakeBuffer.position() - handshakeOffset); + + // Plus room for the incoming record. + len += fragment.remaining(); + reallocateBuffer(len); + } + + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "inserting {0} into {1}", + fragment, handshakeBuffer); + + // Put the fragment into the buffer. + handshakeBuffer.put(fragment); + + return hasMessage(); + } + + protected boolean doHash() + { + return true; + } + + /** + * Tell if the handshake buffer currently has a full handshake + * message. + */ + protected boolean hasMessage() + { + if (handshakeBuffer == null) + return false; + ByteBuffer tmp = handshakeBuffer.duplicate(); + tmp.flip(); + tmp.position(handshakeOffset); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "current buffer: {0}; test buffer {1}", + handshakeBuffer, tmp); + if (tmp.remaining() < 4) + return false; + Handshake handshake = new Handshake(tmp.slice()); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "handshake len:{0} remaining:{1}", + handshake.length(), tmp.remaining()); + return (handshake.length() <= tmp.remaining() - 4); + } + + /** + * Reallocate the handshake buffer so it can hold `totalLen' + * bytes. The smallest buffer allocated is 1024 bytes, and the size + * doubles from there until the buffer is sufficiently large. + */ + private void reallocateBuffer (final int totalLen) + { + int len = handshakeBuffer == null ? -1 + : handshakeBuffer.capacity() - (handshakeBuffer.limit() - handshakeOffset); + if (len >= totalLen) + { + // Big enough; no need to reallocate; but maybe shift the contents + // down. + if (handshakeOffset > 0) + { + handshakeBuffer.flip().position(handshakeOffset); + handshakeBuffer.compact(); + handshakeOffset = 0; + } + return; + } + + // Start at 1K (probably the system's page size). Double the size + // from there. + len = 1024; + while (len < totalLen) + len = len << 1; + ByteBuffer newBuf = ByteBuffer.allocate (len); + + // Copy the unread bytes from the old buffer. + if (handshakeBuffer != null) + { + handshakeBuffer.flip (); + handshakeBuffer.position(handshakeOffset); + newBuf.put(handshakeBuffer); + } + handshakeBuffer = newBuf; + + // We just put only unread handshake messages in the new buffer; + // the offset of the next one is now zero. + handshakeOffset = 0; + } + + /** + * Generate a certificate verify message for SSLv3. In SSLv3, a different + * algorithm was used to generate this value was subtly different than + * that used in TLSv1.0 and later. In TLSv1.0 and later, this value is + * just the digest over the handshake messages. + * + *

    SSLv3 uses the algorithm: + * + *

    +CertificateVerify.signature.md5_hash
    +  MD5(master_secret + pad_2 +
    +      MD5(handshake_messages + master_secret + pad_1));
    +Certificate.signature.sha_hash
    +  SHA(master_secret + pad_2 +
    +      SHA(handshake_messages + master_secret + pad_1));
    + * + * @param md5 The running MD5 hash of the handshake. + * @param sha The running SHA-1 hash of the handshake. + * @param session The current session being negotiated. + * @return The computed to-be-signed value. + */ + protected byte[] genV3CertificateVerify(MessageDigest md5, + MessageDigest sha, + SessionImpl session) + { + byte[] md5value = null; + if (session.suite.signatureAlgorithm() == SignatureAlgorithm.RSA) + { + md5.update(session.privateData.masterSecret); + md5.update(PAD1, 0, 48); + byte[] tmp = md5.digest(); + md5.reset(); + md5.update(session.privateData.masterSecret); + md5.update(PAD2, 0, 48); + md5.update(tmp); + md5value = md5.digest(); + } + + sha.update(session.privateData.masterSecret); + sha.update(PAD1, 0, 40); + byte[] tmp = sha.digest(); + sha.reset(); + sha.update(session.privateData.masterSecret); + sha.update(PAD2, 0, 40); + sha.update(tmp); + byte[] shavalue = sha.digest(); + + if (md5value != null) + return Util.concat(md5value, shavalue); + + return shavalue; + } + + /** + * Generate the session keys from the computed master secret. + * + * @param clientRandom The client's nonce. + * @param serverRandom The server's nonce. + * @param session The session being established. + * @return The derived keys. + */ + protected byte[][] generateKeys(Random clientRandom, Random serverRandom, + SessionImpl session) + { + int maclen = 20; // SHA-1. + if (session.suite.macAlgorithm() == MacAlgorithm.MD5) + maclen = 16; + int ivlen = 0; + if (session.suite.cipherAlgorithm() == CipherAlgorithm.DES + || session.suite.cipherAlgorithm() == CipherAlgorithm.DESede) + ivlen = 8; + if (session.suite.cipherAlgorithm() == CipherAlgorithm.AES) + ivlen = 16; + int keylen = session.suite.keyLength(); + + byte[][] keys = new byte[6][]; + keys[0] = new byte[maclen]; // client_write_MAC_secret + keys[1] = new byte[maclen]; // server_write_MAC_secret + keys[2] = new byte[keylen]; // client_write_key + keys[3] = new byte[keylen]; // server_write_key + keys[4] = new byte[ivlen]; // client_write_iv + keys[5] = new byte[ivlen]; // server_write_iv + + IRandom prf = null; + if (session.version == ProtocolVersion.SSL_3) + { + byte[] seed = new byte[clientRandom.length() + + serverRandom.length()]; + serverRandom.buffer().get(seed, 0, serverRandom.length()); + clientRandom.buffer().get(seed, serverRandom.length(), + clientRandom.length()); + prf = new SSLRandom(); + HashMap attr = new HashMap(2); + attr.put(SSLRandom.SECRET, session.privateData.masterSecret); + attr.put(SSLRandom.SEED, seed); + prf.init(attr); + } + else + { + byte[] seed = new byte[KEY_EXPANSION.length + + clientRandom.length() + + serverRandom.length()]; + System.arraycopy(KEY_EXPANSION, 0, seed, 0, KEY_EXPANSION.length); + serverRandom.buffer().get(seed, KEY_EXPANSION.length, + serverRandom.length()); + clientRandom.buffer().get(seed, (KEY_EXPANSION.length + + serverRandom.length()), + clientRandom.length()); + + prf = new TLSRandom(); + HashMap attr = new HashMap(2); + attr.put(TLSRandom.SECRET, session.privateData.masterSecret); + attr.put(TLSRandom.SEED, seed); + prf.init(attr); + } + + try + { + prf.nextBytes(keys[0], 0, keys[0].length); + prf.nextBytes(keys[1], 0, keys[1].length); + prf.nextBytes(keys[2], 0, keys[2].length); + prf.nextBytes(keys[3], 0, keys[3].length); + + if (session.suite.isExportable()) + { + if (session.version == ProtocolVersion.SSL_3) + { + MessageDigest md5 = MessageDigest.getInstance("MD5"); + md5.update(clientRandom.buffer()); + md5.update(serverRandom.buffer()); + byte[] d = md5.digest(); + System.arraycopy(d, 0, keys[4], 0, keys[4].length); + + md5.reset(); + md5.update(serverRandom.buffer()); + md5.update(clientRandom.buffer()); + d = md5.digest(); + System.arraycopy(d, 0, keys[5], 0, keys[5].length); + + md5.reset(); + md5.update(keys[2]); + md5.update(clientRandom.buffer()); + md5.update(serverRandom.buffer()); + keys[2] = Util.trim(md5.digest(), 8); + + md5.reset(); + md5.update(keys[3]); + md5.update(serverRandom.buffer()); + md5.update(clientRandom.buffer()); + keys[3] = Util.trim(md5.digest(), 8); + } + else + { + TLSRandom prf2 = new TLSRandom(); + HashMap attr = new HashMap(2); + attr.put(TLSRandom.SECRET, keys[2]); + byte[] seed = new byte[CLIENT_WRITE_KEY.length + + clientRandom.length() + + serverRandom.length()]; + System.arraycopy(CLIENT_WRITE_KEY, 0, seed, 0, + CLIENT_WRITE_KEY.length); + clientRandom.buffer().get(seed, CLIENT_WRITE_KEY.length, + clientRandom.length()); + serverRandom.buffer().get(seed, CLIENT_WRITE_KEY.length + + clientRandom.length(), + serverRandom.length()); + attr.put(TLSRandom.SEED, seed); + prf2.init(attr); + keys[2] = new byte[8]; + prf2.nextBytes(keys[2], 0, keys[2].length); + + attr.put(TLSRandom.SECRET, keys[3]); + seed = new byte[SERVER_WRITE_KEY.length + + serverRandom.length() + + clientRandom.length()]; + System.arraycopy(SERVER_WRITE_KEY, 0, seed, 0, + SERVER_WRITE_KEY.length); + serverRandom.buffer().get(seed, SERVER_WRITE_KEY.length, + serverRandom.length()); + clientRandom.buffer().get(seed, SERVER_WRITE_KEY.length + + serverRandom.length(), + + clientRandom.length()); + attr.put(TLSRandom.SEED, seed); + prf2.init(attr); + keys[3] = new byte[8]; + prf2.nextBytes(keys[3], 0, keys[3].length); + + attr.put(TLSRandom.SECRET, new byte[0]); + seed = new byte[IV_BLOCK.length + + clientRandom.length() + + serverRandom.length()]; + System.arraycopy(IV_BLOCK, 0, seed, 0, IV_BLOCK.length); + clientRandom.buffer().get(seed, IV_BLOCK.length, + clientRandom.length()); + serverRandom.buffer().get(seed, IV_BLOCK.length + + clientRandom.length(), + serverRandom.length()); + attr.put(TLSRandom.SEED, seed); + prf2.init(attr); + prf2.nextBytes(keys[4], 0, keys[4].length); + prf2.nextBytes(keys[5], 0, keys[5].length); + } + } + else + { + prf.nextBytes(keys[4], 0, keys[4].length); + prf.nextBytes(keys[5], 0, keys[5].length); + } + } + catch (LimitReachedException lre) + { + // Won't happen with our implementation. + throw new Error(lre); + } + catch (NoSuchAlgorithmException nsae) + { + throw new Error(nsae); + } + + if (Debug.DEBUG_KEY_EXCHANGE) + logger.logv(Component.SSL_KEY_EXCHANGE, + "keys generated;\n [0]: {0}\n [1]: {1}\n [2]: {2}\n" + + " [3]: {3}\n [4]: {4}\n [5]: {5}", + Util.toHexString(keys[0], ':'), + Util.toHexString(keys[1], ':'), + Util.toHexString(keys[2], ':'), + Util.toHexString(keys[3], ':'), + Util.toHexString(keys[4], ':'), + Util.toHexString(keys[5], ':')); + return keys; + } + + /** + * Generate a "finished" message. The hashes passed in are modified + * by this function, so they should be clone copies of the digest if + * the hash function needs to be used more. + * + * @param md5 The MD5 computation. + * @param sha The SHA-1 computation. + * @param isClient Whether or not the client-side finished message is + * being computed. + * @param session The current session. + * @return A byte buffer containing the computed finished message. + */ + protected ByteBuffer generateFinished(MessageDigest md5, + MessageDigest sha, + boolean isClient, + SessionImpl session) + { + ByteBuffer finishedBuffer = null; + if (session.version.compareTo(ProtocolVersion.TLS_1) >= 0) + { + finishedBuffer = ByteBuffer.allocate(12); + TLSRandom prf = new TLSRandom(); + byte[] md5val = md5.digest(); + byte[] shaval = sha.digest(); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "finished md5:{0} sha:{1}", + Util.toHexString(md5val, ':'), + Util.toHexString(shaval, ':')); + byte[] seed = new byte[CLIENT_FINISHED.length + + md5val.length + + shaval.length]; + if (isClient) + System.arraycopy(CLIENT_FINISHED, 0, seed, 0, CLIENT_FINISHED.length); + else + System.arraycopy(SERVER_FINISHED, 0, seed, 0, SERVER_FINISHED.length); + System.arraycopy(md5val, 0, + seed, CLIENT_FINISHED.length, + md5val.length); + System.arraycopy(shaval, 0, + seed, CLIENT_FINISHED.length + md5val.length, + shaval.length); + HashMap params = new HashMap(2); + params.put(TLSRandom.SECRET, session.privateData.masterSecret); + params.put(TLSRandom.SEED, seed); + prf.init(params); + byte[] buf = new byte[12]; + prf.nextBytes(buf, 0, buf.length); + finishedBuffer.put(buf).position(0); + } + else + { + // The SSLv3 algorithm is: + // + // enum { client(0x434C4E54), server(0x53525652) } Sender; + // + // struct { + // opaque md5_hash[16]; + // opaque sha_hash[20]; + // } Finished; + // + // md5_hash MD5(master_secret + pad2 + + // MD5(handshake_messages + Sender + + // master_secret + pad1)); + // sha_hash SHA(master_secret + pad2 + + // SHA(handshake_messages + Sender + + // master_secret + pad1)); + // + + finishedBuffer = ByteBuffer.allocate(36); + + md5.update(isClient ? SENDER_CLIENT : SENDER_SERVER); + md5.update(session.privateData.masterSecret); + md5.update(PAD1); + + byte[] tmp = md5.digest(); + md5.reset(); + md5.update(session.privateData.masterSecret); + md5.update(PAD2); + md5.update(tmp); + finishedBuffer.put(md5.digest()); + + sha.update(isClient ? SENDER_CLIENT : SENDER_SERVER); + sha.update(session.privateData.masterSecret); + sha.update(PAD1, 0, 40); + + tmp = sha.digest(); + sha.reset(); + sha.update(session.privateData.masterSecret); + sha.update(PAD2, 0, 40); + sha.update(tmp); + finishedBuffer.put(sha.digest()).position(0); + } + return finishedBuffer; + } + + protected void initDiffieHellman(DHPrivateKey dhKey, SecureRandom random) + throws SSLException + { + try + { + keyAgreement = KeyAgreement.getInstance("DH"); + keyAgreement.init(dhKey, random); + } + catch (InvalidKeyException ike) + { + throw new SSLException(ike); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + } + + protected void generateMasterSecret(Random clientRandom, + Random serverRandom, + SessionImpl session) + throws SSLException + { + assert(clientRandom != null); + assert(serverRandom != null); + assert(session != null); + + if (Debug.DEBUG_KEY_EXCHANGE) + logger.logv(Component.SSL_KEY_EXCHANGE, "preMasterSecret:\n{0}", + new ByteArray(preMasterSecret)); + + if (session.version == ProtocolVersion.SSL_3) + { + try + { + MessageDigest _md5 = MessageDigest.getInstance("MD5"); + MessageDigest _sha = MessageDigest.getInstance("SHA"); + session.privateData.masterSecret = new byte[48]; + + _sha.update((byte) 'A'); + _sha.update(preMasterSecret); + _sha.update(clientRandom.buffer()); + _sha.update(serverRandom.buffer()); + _md5.update(preMasterSecret); + _md5.update(_sha.digest()); + _md5.digest(session.privateData.masterSecret, 0, 16); + + _sha.update((byte) 'B'); + _sha.update((byte) 'B'); + _sha.update(preMasterSecret); + _sha.update(clientRandom.buffer()); + _sha.update(serverRandom.buffer()); + _md5.update(preMasterSecret); + _md5.update(_sha.digest()); + _md5.digest(session.privateData.masterSecret, 16, 16); + + _sha.update((byte) 'C'); + _sha.update((byte) 'C'); + _sha.update((byte) 'C'); + _sha.update(preMasterSecret); + _sha.update(clientRandom.buffer()); + _sha.update(serverRandom.buffer()); + _md5.update(preMasterSecret); + _md5.update(_sha.digest()); + _md5.digest(session.privateData.masterSecret, 32, 16); + } + catch (DigestException de) + { + throw new SSLException(de); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + } + else // TLSv1.0 and later + { + byte[] seed = new byte[clientRandom.length() + + serverRandom.length() + + MASTER_SECRET.length]; + System.arraycopy(MASTER_SECRET, 0, seed, 0, MASTER_SECRET.length); + clientRandom.buffer().get(seed, MASTER_SECRET.length, + clientRandom.length()); + serverRandom.buffer().get(seed, + MASTER_SECRET.length + clientRandom.length(), + serverRandom.length()); + TLSRandom prf = new TLSRandom(); + HashMap attr = new HashMap(2); + attr.put(TLSRandom.SECRET, preMasterSecret); + attr.put(TLSRandom.SEED, seed); + prf.init(attr); + + session.privateData.masterSecret = new byte[48]; + prf.nextBytes(session.privateData.masterSecret, 0, 48); + } + + if (Debug.DEBUG_KEY_EXCHANGE) + logger.log(Component.SSL_KEY_EXCHANGE, "master_secret: {0}", + new ByteArray(session.privateData.masterSecret)); + + // Wipe out the preMasterSecret. + for (int i = 0; i < preMasterSecret.length; i++) + preMasterSecret[i] = 0; + } + + protected void setupSecurityParameters(byte[][] keys, boolean isClient, + SSLEngineImpl engine, + CompressionMethod compression) + throws SSLException + { + assert(keys.length == 6); + assert(engine != null); + assert(compression != null); + + try + { + CipherSuite s = engine.session().suite; + Cipher inCipher = s.cipher(); + Mac inMac = s.mac(engine.session().version); + Inflater inflater = (compression == CompressionMethod.ZLIB + ? new Inflater() : null); + inCipher.init(Cipher.DECRYPT_MODE, + new SecretKeySpec(keys[isClient ? 3 : 2], + s.cipherAlgorithm().toString()), + new IvParameterSpec(keys[isClient ? 5 : 4])); + inMac.init(new SecretKeySpec(keys[isClient ? 1 : 0], + inMac.getAlgorithm())); + inParams = new InputSecurityParameters(inCipher, inMac, + inflater, + engine.session(), s); + + Cipher outCipher = s.cipher(); + Mac outMac = s.mac(engine.session().version); + Deflater deflater = (compression == CompressionMethod.ZLIB + ? new Deflater() : null); + outCipher.init(Cipher.ENCRYPT_MODE, + new SecretKeySpec(keys[isClient ? 2 : 3], + s.cipherAlgorithm().toString()), + new IvParameterSpec(keys[isClient ? 4 : 5])); + outMac.init(new SecretKeySpec(keys[isClient ? 0 : 1], + outMac.getAlgorithm())); + outParams = new OutputSecurityParameters(outCipher, outMac, + deflater, + engine.session(), s); + } + catch (InvalidAlgorithmParameterException iape) + { + throw new SSLException(iape); + } + catch (InvalidKeyException ike) + { + throw new SSLException(ike); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + catch (NoSuchPaddingException nspe) + { + throw new SSLException(nspe); + } + } + + protected void generatePSKSecret(String identity, byte[] otherkey, + boolean isClient) + throws SSLException + { + SecretKey key = null; + try + { + key = engine.contextImpl.pskManager.getKey(identity); + } + catch (KeyManagementException kme) + { + } + if (key != null) + { + byte[] keyb = key.getEncoded(); + if (otherkey == null) + { + otherkey = new byte[keyb.length]; + } + preMasterSecret = new byte[otherkey.length + keyb.length + 4]; + preMasterSecret[0] = (byte) (otherkey.length >>> 8); + preMasterSecret[1] = (byte) otherkey.length; + System.arraycopy(otherkey, 0, preMasterSecret, 2, otherkey.length); + preMasterSecret[otherkey.length + 2] + = (byte) (keyb.length >>> 8); + preMasterSecret[otherkey.length + 3] + = (byte) keyb.length; + System.arraycopy(keyb, 0, preMasterSecret, + otherkey.length + 4, keyb.length); + } + else + { + // Generate a random, fake secret. + preMasterSecret = new byte[8]; + preMasterSecret[1] = 2; + preMasterSecret[5] = 2; + preMasterSecret[6] = (byte) engine.session().random().nextInt(); + preMasterSecret[7] = (byte) engine.session().random().nextInt(); + } + + if (Debug.DEBUG_KEY_EXCHANGE) + logger.logv(Component.SSL_KEY_EXCHANGE, "PSK identity {0} key {1}", + identity, key); + + generateMasterSecret(clientRandom, serverRandom, + engine.session()); + byte[][] keys = generateKeys(clientRandom, serverRandom, + engine.session()); + setupSecurityParameters(keys, isClient, engine, compression); + } + + protected class DHPhase extends DelegatedTask + { + private final DHPublicKey key; + private final boolean full; + + protected DHPhase(DHPublicKey key) + { + this(key, true); + } + + protected DHPhase(DHPublicKey key, boolean full) + { + this.key = key; + this.full = full; + } + + protected void implRun() throws InvalidKeyException, SSLException + { + keyAgreement.doPhase(key, true); + preMasterSecret = keyAgreement.generateSecret(); + if (full) + { + generateMasterSecret(clientRandom, serverRandom, engine.session()); + byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); + setupSecurityParameters(keys, engine.getUseClientMode(), engine, compression); + } + } + } + + protected class CertVerifier extends DelegatedTask + { + private final boolean clientSide; + private final X509Certificate[] chain; + private boolean verified; + + protected CertVerifier(boolean clientSide, X509Certificate[] chain) + { + this.clientSide = clientSide; + this.chain = chain; + } + + boolean verified() + { + return verified; + } + + protected void implRun() + { + X509TrustManager tm = engine.contextImpl.trustManager; + if (clientSide) + { + try + { + tm.checkServerTrusted(chain, null); + verified = true; + } + catch (CertificateException ce) + { + if (Debug.DEBUG) + logger.log(Component.SSL_DELEGATED_TASK, "cert verify", ce); + // For client connections, ask the user if the certificate is OK. + CallbackHandler verify = new DefaultCallbackHandler(); + GetSecurityPropertyAction gspa + = new GetSecurityPropertyAction("jessie.certificate.handler"); + String clazz = AccessController.doPrivileged(gspa); + try + { + ClassLoader cl = + AccessController.doPrivileged(new PrivilegedExceptionAction() + { + public ClassLoader run() throws Exception + { + return ClassLoader.getSystemClassLoader(); + } + }); + verify = (CallbackHandler) cl.loadClass(clazz).newInstance(); + } + catch (Exception x) + { + // Ignore. + if (Debug.DEBUG) + logger.log(Component.SSL_DELEGATED_TASK, + "callback handler loading", x); + } + // XXX Internationalize + CertificateCallback confirm = + new CertificateCallback(chain[0], + "The server's certificate could not be verified. There is no proof " + + "that this server is who it claims to be, or that their certificate " + + "is valid. Do you wish to continue connecting? "); + + try + { + verify.handle(new Callback[] { confirm }); + verified = confirm.getSelectedIndex() == ConfirmationCallback.YES; + } + catch (Exception x) + { + if (Debug.DEBUG) + logger.log(Component.SSL_DELEGATED_TASK, + "callback handler exception", x); + verified = false; + } + } + } + else + { + try + { + tm.checkClientTrusted(chain, null); + } + catch (CertificateException ce) + { + verified = false; + } + } + + if (verified) + engine.session().setPeerVerified(true); + } + } + + protected class DHE_PSKGen extends DelegatedTask + { + private final DHPublicKey dhKey; + private final SecretKey psKey; + private final boolean isClient; + + protected DHE_PSKGen(DHPublicKey dhKey, SecretKey psKey, boolean isClient) + { + this.dhKey = dhKey; + this.psKey = psKey; + this.isClient = isClient; + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.DelegatedTask#implRun() + */ + @Override protected void implRun() throws Throwable + { + keyAgreement.doPhase(dhKey, true); + byte[] dhSecret = keyAgreement.generateSecret(); + byte[] psSecret = null; + if (psKey != null) + psSecret = psKey.getEncoded(); + else + { + psSecret = new byte[8]; + engine.session().random().nextBytes(psSecret); + } + + preMasterSecret = new byte[dhSecret.length + psSecret.length + 4]; + preMasterSecret[0] = (byte) (dhSecret.length >>> 8); + preMasterSecret[1] = (byte) dhSecret.length; + System.arraycopy(dhSecret, 0, preMasterSecret, 2, dhSecret.length); + preMasterSecret[dhSecret.length + 2] = (byte) (psSecret.length >>> 8); + preMasterSecret[dhSecret.length + 3] = (byte) psSecret.length; + System.arraycopy(psSecret, 0, preMasterSecret, dhSecret.length + 4, + psSecret.length); + + generateMasterSecret(clientRandom, serverRandom, engine.session()); + byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); + setupSecurityParameters(keys, isClient, engine, compression); + } + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java b/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java dissimilarity index 69% index c31e1bef5ca..12c86b0a402 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java @@ -1,474 +1,288 @@ -/* Alert.java -- SSL Alert message. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; - -/** - * An alert message in the SSL protocol. Alerts are sent both as warnings - * which may allow execution to continue, or they may be fatal, which will - * halt this session. An alert object is composed of two enums -- the level, - * which indicates the seriousness of the alert, and the description, which - * indicates the reason for the alert. - * - *
    - * struct {
    - *   AlertLevel level;
    - *   AlertDescription description;
    - * }
    - * 
    - */ -final class Alert implements Constructed -{ - - // Fields. - // ------------------------------------------------------------------------- - - /** The alert level enumerated. */ - private final Level level; - - /** The alert description enumerated. */ - private final Description description; - - // Constructor. - // ------------------------------------------------------------------------- - - Alert(Level level, Description description) - { - this.level = level; - this.description = description; - } - - // Class method. - // ------------------------------------------------------------------------- - - static Alert read(InputStream in) throws IOException - { - Level level = Level.read(in); - Description desc = Description.read(in); - return new Alert(level, desc); - } - - static Alert forName(String name) - { - if (name == null) - { - return new Alert(Level.FATAL, Description.INTERNAL_ERROR); - } - Description desc = Description.INTERNAL_ERROR; - if (name.equals("close_notify")) - { - desc = Description.CLOSE_NOTIFY; - } - else if (name.equals("unexpected_message")) - { - desc = Description.UNEXPECTED_MESSAGE; - } - else if (name.equals("bad_record_mac")) - { - desc = Description.BAD_RECORD_MAC; - } - else if (name.equals("DECRYPTION_FAILED")) - { - desc = Description.DECRYPTION_FAILED; - } - else if (name.equals("record_overflow")) - { - desc = Description.RECORD_OVERFLOW; - } - else if (name.equals("decompression_failure")) - { - desc = Description.DECOMPRESSION_FAILURE; - } - else if (name.equals("handshake_failure")) - { - desc = Description.HANDSHAKE_FAILURE; - } - else if (name.equals("no_certificate")) - { - desc = Description.NO_CERTIFICATE; - } - else if (name.equals("bad_certificate")) - { - desc = Description.BAD_CERTIFICATE; - } - else if (name.equals("unsupported_certificate")) - { - desc = Description.UNSUPPORTED_CERTIFICATE; - } - else if (name.equals("certificate_revoked")) - { - desc = Description.CERTIFICATE_REVOKED; - } - else if (name.equals("certificate_expired")) - { - desc = Description.CERTIFICATE_EXPIRED; - } - else if (name.equals("certificate_unknown")) - { - desc = Description.CERTIFICATE_UNKNOWN; - } - else if (name.equals("illegal_parameter")) - { - desc = Description.ILLEGAL_PARAMETER; - } - else if (name.equals("unknown_ca")) - { - desc = Description.UNKNOWN_CA; - } - else if (name.equals("access_denied")) - { - desc = Description.ACCESS_DENIED; - } - else if (name.equals("decode_error")) - { - desc = Description.DECODE_ERROR; - } - else if (name.equals("decrypt_error")) - { - desc = Description.DECRYPT_ERROR; - } - else if (name.equals("export_restriction")) - { - desc = Description.EXPORT_RESTRICTION; - } - else if (name.equals("protocol_version")) - { - desc = Description.PROTOCOL_VERSION; - } - else if (name.equals("insufficient_security")) - { - desc = Description.INSUFFICIENT_SECURITY; - } - else if (name.equals("internal_error")) - { - desc = Description.INTERNAL_ERROR; - } - else if (name.equals("user_canceled")) - { - desc = Description.USER_CANCELED; - } - else if (name.equals("no_renegotiation")) - { - desc = Description.NO_RENEGOTIATION; - } - else if (name.equals("unsupported_extension")) - { - desc = Description.UNSUPPORTED_EXTENSION; - } - else if (name.equals("certificate_unobtainable")) - { - desc = Description.CERTIFICATE_UNOBTAINABLE; - } - else if (name.equals("unrecognized_name")) - { - desc = Description.UNRECOGNIZED_NAME; - } - else if (name.equals("bad_certificate_status_response")) - { - desc = Description.BAD_CERTIFICATE_STATUS_RESPONSE; - } - else if (name.equals("bad_certificate_hash_value")) - { - desc = Description.BAD_CERTIFICATE_HASH_VALUE; - } - else if (name.equals("unknown_srp_username")) - { - desc = Description.UNKNOWN_SRP_USERNAME; - } - else if (name.equals("missing_srp_username")) - { - desc = Description.MISSING_SRP_USERNAME; - } - return new Alert(Level.FATAL, desc); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException - { - out.write((byte) level.getValue()); - out.write((byte) description.getValue()); - } - - byte[] getEncoded() - { - return new byte[] { (byte) level.getValue(), - (byte) description.getValue() }; - } - - Level getLevel() - { - return level; - } - - Description getDescription() - { - return description; - } - - public String toString() - { - String nl = System.getProperty("line.separator"); - return "struct {" + nl + - " level = " + level + ";" + nl + - " description = " + description + ";" + nl + - "} Alert;" + nl; - } - - // Inner classes. - // ------------------------------------------------------------------------- - - /** - * The level enumeration. - * - *
    -   * enum { warning(1), fatal(2), (255) } AlertLevel;
    -   * 
    - */ - static final class Level implements Enumerated - { - - // Constants and fields. - // ----------------------------------------------------------------------- - - static final Level WARNING = new Level(1), FATAL = new Level(2); - - private final int value; - - // Constructor. - // ----------------------------------------------------------------------- - - private Level(int value) - { - this.value = value; - } - - // Class method. - // ----------------------------------------------------------------------- - - static Level read(InputStream in) throws IOException - { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of stream"); - } - switch (i & 0xFF) - { - case 1: return WARNING; - case 2: return FATAL; - default: return new Level(i); - } - } - - // Instance methods. - // ----------------------------------------------------------------------- - - public byte[] getEncoded() - { - return new byte[] { (byte) value }; - } - - public int getValue() - { - return value; - } - - public String toString() - { - switch (value) - { - case 1: return "warning"; - case 2: return "fatal"; - default: return "unknown(" + value + ")"; - } - } - } - - /** - * The description enumeration. - */ - static final class Description implements Enumerated - { - - // Constants and fields. - // ----------------------------------------------------------------------- - - static final Description - CLOSE_NOTIFY = new Description( 0), - UNEXPECTED_MESSAGE = new Description( 10), - BAD_RECORD_MAC = new Description( 20), - DECRYPTION_FAILED = new Description( 21), - RECORD_OVERFLOW = new Description( 22), - DECOMPRESSION_FAILURE = new Description( 30), - HANDSHAKE_FAILURE = new Description( 40), - NO_CERTIFICATE = new Description( 41), - BAD_CERTIFICATE = new Description( 42), - UNSUPPORTED_CERTIFICATE = new Description( 43), - CERTIFICATE_REVOKED = new Description( 44), - CERTIFICATE_EXPIRED = new Description( 45), - CERTIFICATE_UNKNOWN = new Description( 46), - ILLEGAL_PARAMETER = new Description( 47), - UNKNOWN_CA = new Description( 48), - ACCESS_DENIED = new Description( 49), - DECODE_ERROR = new Description( 50), - DECRYPT_ERROR = new Description( 51), - EXPORT_RESTRICTION = new Description( 60), - PROTOCOL_VERSION = new Description( 70), - INSUFFICIENT_SECURITY = new Description( 71), - INTERNAL_ERROR = new Description( 80), - USER_CANCELED = new Description( 90), - NO_RENEGOTIATION = new Description(100), - UNSUPPORTED_EXTENSION = new Description(110), - CERTIFICATE_UNOBTAINABLE = new Description(111), - UNRECOGNIZED_NAME = new Description(112), - BAD_CERTIFICATE_STATUS_RESPONSE = new Description(113), - BAD_CERTIFICATE_HASH_VALUE = new Description(114), - UNKNOWN_SRP_USERNAME = new Description(120), - MISSING_SRP_USERNAME = new Description(121); - - private final int value; - - // Constructor. - // ----------------------------------------------------------------------- - - private Description(int value) - { - this.value = value; - } - - // Class method. - // ----------------------------------------------------------------------- - - static Description read(InputStream in) throws IOException - { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of input stream"); - } - switch (i) - { - case 0: return CLOSE_NOTIFY; - case 10: return UNEXPECTED_MESSAGE; - case 20: return BAD_RECORD_MAC; - case 21: return DECRYPTION_FAILED; - case 22: return RECORD_OVERFLOW; - case 30: return DECOMPRESSION_FAILURE; - case 40: return HANDSHAKE_FAILURE; - case 41: return NO_CERTIFICATE; - case 42: return BAD_CERTIFICATE; - case 43: return UNSUPPORTED_CERTIFICATE; - case 44: return CERTIFICATE_REVOKED; - case 45: return CERTIFICATE_EXPIRED; - case 46: return CERTIFICATE_UNKNOWN; - case 47: return ILLEGAL_PARAMETER; - case 48: return UNKNOWN_CA; - case 49: return ACCESS_DENIED; - case 50: return DECODE_ERROR; - case 51: return DECRYPT_ERROR; - case 60: return EXPORT_RESTRICTION; - case 70: return PROTOCOL_VERSION; - case 71: return INSUFFICIENT_SECURITY; - case 80: return INTERNAL_ERROR; - case 90: return USER_CANCELED; - case 100: return NO_RENEGOTIATION; - case 120: return UNKNOWN_SRP_USERNAME; - case 121: return MISSING_SRP_USERNAME; - default: return new Description(i); - } - } - - // Instance methods. - // ----------------------------------------------------------------------- - - public byte[] getEncoded() - { - return new byte[] { (byte) value }; - } - - public int getValue() - { - return value; - } - - public String toString() - { - switch (value) - { - case 0: return "close_notify"; - case 10: return "unexpected_message"; - case 20: return "bad_record_mac"; - case 21: return "decryption_failed"; - case 22: return "record_overflow"; - case 30: return "decompression_failure"; - case 40: return "handshake_failure"; - case 42: return "bad_certificate"; - case 43: return "unsupported_certificate"; - case 44: return "certificate_revoked"; - case 45: return "certificate_expired"; - case 46: return "certificate_unknown"; - case 47: return "illegal_parameter"; - case 48: return "unknown_ca"; - case 49: return "access_denied"; - case 50: return "decode_error"; - case 51: return "decrypt_error"; - case 60: return "export_restriction"; - case 70: return "protocol_version"; - case 71: return "insufficient_security"; - case 80: return "internal_error"; - case 90: return "user_canceled"; - case 100: return "no_renegotiation"; - case 110: return "unsupported_extension"; - case 111: return "certificate_unobtainable"; - case 112: return "unrecognized_name"; - case 113: return "bad_certificate_status_response"; - case 114: return "bad_certificate_hash_value"; - case 120: return "unknown_srp_username"; - case 121: return "missing_srp_username"; - default: return "unknown(" + value + ")"; - } - } - } -} +/* Alert.java -- SSL Alert message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; + +/** + * An alert message in the SSL protocol. Alerts are sent both as warnings + * which may allow execution to continue, or they may be fatal, which will + * halt this session. An alert object is composed of two enums -- the level, + * which indicates the seriousness of the alert, and the description, which + * indicates the reason for the alert. + * + *
    + * struct {
    + *   AlertLevel       level;
    + *   AlertDescription description;
    + * }
    + * 
    + */ +public final class Alert implements Constructed +{ + + // Fields. + // ------------------------------------------------------------------------- + + /** The underlying byte buffer. */ + private final ByteBuffer buffer; + + // Constructor. + // ------------------------------------------------------------------------- + + public Alert (final ByteBuffer buffer) + { + this.buffer = buffer; + } + + public Alert (final Level level, final Description description) + { + level.getClass (); + description.getClass (); + ByteBuffer b = ByteBuffer.allocate (2); + b.put (0, (byte) level.getValue ()); + b.put (1, (byte) description.getValue ()); + this.buffer = b.asReadOnlyBuffer (); + } + + // Instance methods. + // ------------------------------------------------------------------------- + + public int length () + { + return 2; + } + + byte[] getEncoded() + { + byte[] buf = new byte[2]; + buffer.position (0); + buffer.get (buf); + return buf; + } + + public Level level() + { + return Level.forInteger (buffer.get (0) & 0xFF); + } + + public Description description() + { + return Description.forInteger (buffer.get (1) & 0xFF); + } + + public void setLevel (final Level level) + { + buffer.put (0, (byte) level.getValue ()); + } + + public void setDescription (final Description description) + { + buffer.put (1, (byte) description.getValue ()); + } + + public boolean equals (Object o) + { + if (!(o instanceof Alert)) + return false; + Alert that = (Alert) o; + return that.buffer.position (0).equals (buffer.position (0)); + } + + public int hashCode () + { + return buffer.getShort (0) & 0xFFFF; + } + + public String toString() + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) out.print (prefix); + out.println ("struct {"); + if (prefix != null) out.print (prefix); + out.print (" level: "); + out.print (level ()); + out.println (";"); + if (prefix != null) out.print (prefix); + out.print (" description: "); + out.print (description ()); + out.println (";"); + if (prefix != null) out.print (prefix); + out.print ("} Alert;"); + return str.toString (); + } + + // Enumerations. + // ------------------------------------------------------------------------- + + /** + * The level enumeration. + * + *
    +   * enum { warning(1), fatal(2), (255) } AlertLevel;
    +   * 
    + */ + public static enum Level + { + + WARNING (1), FATAL (2); + + private final int value; + + private Level(int value) + { + this.value = value; + } + + public static Level forInteger (final int value) + { + switch (value & 0xFF) + { + case 1: return WARNING; + case 2: return FATAL; + default: throw new IllegalArgumentException ("invalid alert level: " + value); + } + } + + public int getValue() + { + return value; + } + } + + /** + * The description enumeration. + */ + public static enum Description + { + CLOSE_NOTIFY ( 0), + UNEXPECTED_MESSAGE ( 10), + BAD_RECORD_MAC ( 20), + DECRYPTION_FAILED ( 21), + RECORD_OVERFLOW ( 22), + DECOMPRESSION_FAILURE ( 30), + HANDSHAKE_FAILURE ( 40), + NO_CERTIFICATE ( 41), + BAD_CERTIFICATE ( 42), + UNSUPPORTED_CERTIFICATE ( 43), + CERTIFICATE_REVOKED ( 44), + CERTIFICATE_EXPIRED ( 45), + CERTIFICATE_UNKNOWN ( 46), + ILLEGAL_PARAMETER ( 47), + UNKNOWN_CA ( 48), + ACCESS_DENIED ( 49), + DECODE_ERROR ( 50), + DECRYPT_ERROR ( 51), + EXPORT_RESTRICTION ( 60), + PROTOCOL_VERSION ( 70), + INSUFFICIENT_SECURITY ( 71), + INTERNAL_ERROR ( 80), + USER_CANCELED ( 90), + NO_RENEGOTIATION (100), + UNSUPPORTED_EXTENSION (110), + CERTIFICATE_UNOBTAINABLE (111), + UNRECOGNIZED_NAME (112), + BAD_CERTIFICATE_STATUS_RESPONSE (113), + BAD_CERTIFICATE_HASH_VALUE (114), + UNKNOWN_SRP_USERNAME (120), + MISSING_SRP_USERNAME (121); + + private final int value; + + private Description(int value) + { + this.value = value; + } + + /** + * Return an alert description object based on the specified integer + * value. + * + * @param value The raw description value. + * @return The appropriate description object. + */ + public static Description forInteger (final int value) + { + switch (value & 0xFF) + { + case 0: return CLOSE_NOTIFY; + case 10: return UNEXPECTED_MESSAGE; + case 20: return BAD_RECORD_MAC; + case 21: return DECRYPTION_FAILED; + case 22: return RECORD_OVERFLOW; + case 30: return DECOMPRESSION_FAILURE; + case 40: return HANDSHAKE_FAILURE; + case 41: return NO_CERTIFICATE; + case 42: return BAD_CERTIFICATE; + case 43: return UNSUPPORTED_CERTIFICATE; + case 44: return CERTIFICATE_REVOKED; + case 45: return CERTIFICATE_EXPIRED; + case 46: return CERTIFICATE_UNKNOWN; + case 47: return ILLEGAL_PARAMETER; + case 48: return UNKNOWN_CA; + case 49: return ACCESS_DENIED; + case 50: return DECODE_ERROR; + case 51: return DECRYPT_ERROR; + case 60: return EXPORT_RESTRICTION; + case 70: return PROTOCOL_VERSION; + case 71: return INSUFFICIENT_SECURITY; + case 80: return INTERNAL_ERROR; + case 90: return USER_CANCELED; + case 100: return NO_RENEGOTIATION; + case 120: return UNKNOWN_SRP_USERNAME; + case 121: return MISSING_SRP_USERNAME; + default: throw new IllegalArgumentException("unknown alert description: " + value); + } + } + + public int getValue() + { + return value; + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java b/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java index 666efe5ac0d..291de2700c9 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/AlertException.java @@ -40,7 +40,10 @@ package gnu.javax.net.ssl.provider; import javax.net.ssl.SSLException; -class AlertException extends SSLException +/** + * An exception generated by an SSL alert. + */ +public class AlertException extends SSLException { // Fields. @@ -52,25 +55,47 @@ class AlertException extends SSLException // Constructor. // ------------------------------------------------------------------------- - AlertException(Alert alert, boolean isLocal) + public AlertException(Alert alert, boolean isLocal) { - super(alert.getDescription().toString()); + super(alert.description().toString()); this.alert = alert; this.isLocal = isLocal; } + public AlertException(Alert alert) + { + this(alert, true); + } + + public AlertException(Alert alert, boolean isLocal, Throwable cause) + { + super(alert.description().toString(), cause); + this.alert = alert; + this.isLocal = isLocal; + } + + public AlertException(Alert alert, Throwable cause) + { + this(alert, true, cause); + } + // Instance methods. // ------------------------------------------------------------------------- public String getMessage() { - return alert.getDescription() + ": " + + return alert.description() + ": " + (isLocal ? "locally generated; " : "remotely generated; ") + - alert.getLevel(); + alert.level(); } - public Alert getAlert () + public Alert alert () { return alert; } + + public boolean isLocal() + { + return isLocal; + } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Builder.java b/libjava/classpath/gnu/javax/net/ssl/provider/Builder.java new file mode 100644 index 00000000000..baaba8aecf6 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Builder.java @@ -0,0 +1,66 @@ +/* Builder.java -- builder interface for protocol objects. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; + +/** + * The base interface for classes that build SSL protocol objects. The + * general contract for Builder implementations is that they maintain a + * buffer that grows to fit the object being built; the allocated size of + * this buffer may be larger than the built object needs, but the general + * effort will be not to allocate too large a buffer. + * + *

    Once the object is built, through various setters for + * the object's attributes, the final buffer may be retrieved with the + * {@link #buffer()} method. + * + * @author Casey Marshall (csm@gnu.org) + */ +public interface Builder extends Constructed +{ + /** + * Returns the final buffer, possibly containing the built object. The + * returned buffer will be "trimmed" to size: its position will be zero, + * and its limit and capacity set to the length of the built object. + * + * @return The underlying buffer. + */ + ByteBuffer buffer(); +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java b/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java index b1d6b2a0143..8ff91e5579e 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Certificate.java @@ -1,4 +1,4 @@ -/* Certificate.java -- SSL Certificate message. +/* Certificate.java -- SSL certificate message. Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -38,157 +38,140 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.BufferedReader; import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; -import java.io.StringReader; import java.io.StringWriter; -import java.security.cert.CertificateEncodingException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; +import java.util.Iterator; import java.util.LinkedList; - -import javax.net.ssl.SSLProtocolException; - -final class Certificate implements Handshake.Body +import java.util.List; + +/** + * The certificate object. This is used by both the client and the server + * to send their certificates (if any) to one another. + * + *

    opaque ASN.1Cert<1..2^24-1>;
    +
    +struct {
    +  ASN.1Cert certificate_list<0..2^24-1>;
    +} Certificate;
    + * + * @author Casey Marshall (csm@gnu.org) + */ +public class Certificate implements Handshake.Body { // Fields. // ------------------------------------------------------------------------- - private final X509Certificate[] certs; + protected ByteBuffer buffer; + protected final CertificateType type; // Constructors. // ------------------------------------------------------------------------- - Certificate(X509Certificate[] certs) + public Certificate (final ByteBuffer buffer, final CertificateType type) { - if (certs == null) - { - throw new NullPointerException(); - } - this.certs = certs; + buffer.getClass (); + type.getClass (); + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + this.type = type; } - // Class methods. + // Instance methods. // ------------------------------------------------------------------------- - static Certificate read(InputStream in, CertificateType type) - throws IOException + public int length () { - if (type == CertificateType.X509) - { - int len = (in.read() & 0xFF) << 16 | (in.read() & 0xFF) << 8 - | (in.read() & 0xFF); - byte[] buf = new byte[len]; - int count = 0; - while (count < len) - { - int l = in.read(buf, count, len - count); - if (l == -1) - { - throw new EOFException("unexpected end of stream"); - } - count += l; - } - try - { - LinkedList certs = new LinkedList(); - CertificateFactory fact = CertificateFactory.getInstance("X.509"); - ByteArrayInputStream bin = new ByteArrayInputStream(buf); - count = 0; - while (count < len) - { - int len2 = (bin.read() & 0xFF) << 16 | (bin.read() & 0xFF) << 8 - | (bin.read() & 0xFF); - certs.add(fact.generateCertificate(bin)); - count += len2 + 3; - } - return new Certificate((X509Certificate[]) - certs.toArray(new X509Certificate[certs.size()])); - } - catch (CertificateException ce) - { - SSLProtocolException sslpe = new SSLProtocolException(ce.getMessage()); - sslpe.initCause (ce); - throw sslpe; - } - } - else if (type == CertificateType.OPEN_PGP) - { - throw new UnsupportedOperationException("not yet implemented"); - } - else - throw new Error("unsupported certificate type "+type); + return (((buffer.get (0) & 0xFF) << 24) + | buffer.getShort (1)) + 3; } - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException + public List certificates () + throws CertificateException, NoSuchAlgorithmException { - ByteArrayOutputStream bout = new ByteArrayOutputStream(); - try - { - for (int i = 0; i < certs.length; i++) - { - byte[] enc = certs[i].getEncoded(); - bout.write((enc.length >>> 16) & 0xFF); - bout.write((enc.length >>> 8) & 0xFF); - bout.write( enc.length & 0xFF); - bout.write(enc); - } - } - catch (CertificateEncodingException cee) - { - throw new Error("cannot encode certificates"); - } - catch (IOException ignored) + LinkedList list + = new LinkedList(); + CertificateFactory factory = CertificateFactory.getInstance(type.toString()); + int length = (((buffer.get(0) & 0xFF) << 16) + | (buffer.getShort(1) & 0xFFFF)); + ByteBuffer b = (ByteBuffer) buffer.duplicate().position(3); + for (int i = 3; i < length; ) { + int length2 = (((b.get () & 0xFF) << 16) + | (b.getShort () & 0xFFFF)); + byte[] buf = new byte[length2]; + b.position(i+3); + b.get (buf); + list.add(factory.generateCertificate (new ByteArrayInputStream (buf))); + i += length2 + 3; + b.position(i); } - out.write(bout.size() >>> 16 & 0xFF); - out.write(bout.size() >>> 8 & 0xFF); - out.write(bout.size() & 0xFF); - bout.writeTo(out); + return list; } - X509Certificate[] getCertificates() + public String toString () { - return certs; + return toString (null); } - public String toString() + public String toString (final String prefix) { StringWriter str = new StringWriter(); PrintWriter out = new PrintWriter(str); - out.println("struct {"); - out.println(" certificateList ="); - for (int i = 0; i < certs.length; i++) + if (prefix != null) + out.print (prefix); + out.println ("struct {"); + try { - BufferedReader r = - new BufferedReader(new StringReader(certs[i].toString())); - String s; - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) + List certs = certificates (); + if (prefix != null) + out.print (prefix); + out.print (" certificateList: ["); + out.print (certs.size ()); + out.println ("] {"); + for (Iterator it = certs.iterator (); it.hasNext (); ) { + java.security.cert.Certificate cert = + (java.security.cert.Certificate) it.next (); + if (prefix != null) + out.print (prefix); + out.print (" "); + if (cert instanceof X509Certificate) + out.print (((X509Certificate) cert).getSubjectDN ()); + else + out.print (cert); + out.println (";"); } + if (prefix != null) + out.print (prefix); + out.println (" };"); + } + catch (CertificateException ce) + { + if (prefix != null) + out.print (prefix); + out.print (" "); + out.print (ce); + out.println (";"); + } + catch (NoSuchAlgorithmException nsae) + { + if (prefix != null) + out.print (prefix); + out.print (" "); + out.print (nsae); + out.println (";"); } - out.println("} Certificate;"); + out.print ("} Certificate;"); return str.toString(); } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java new file mode 100644 index 00000000000..b60ad556ac9 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java @@ -0,0 +1,94 @@ +/* CertificateBuilder.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.List; +import java.security.cert.CertificateException; + +/** + * Builder for {@link Certificate} objects. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class CertificateBuilder extends Certificate implements Builder +{ + public CertificateBuilder(final CertificateType certType) + { + super(ByteBuffer.allocate(1024), certType); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); + } + + public void setCertificates (final List certificates) + throws CertificateException + { + ByteArrayOutputStream out = new ByteArrayOutputStream(1024); + for (java.security.cert.Certificate cert : certificates) + { + byte[] encoded = cert.getEncoded(); + out.write((encoded.length >>> 16) & 0xFF); + out.write((encoded.length >>> 8) & 0xFF); + out.write( encoded.length & 0xFF); + try + { + out.write(encoded); + } + catch (IOException shouldNotHappen) + { + // ignore; this is a ByteArrayOutputStream. + } + } + byte[] certs = out.toByteArray(); + // There is only one field in Certificate; so it is easy to reallocate. + if (buffer.capacity() < certs.length + 3) + buffer = ByteBuffer.allocate(certs.length + 3); + buffer.put(0, (byte) (certs.length >>> 16)); + buffer.putShort(1, (short) certs.length); + ((ByteBuffer) buffer.duplicate().position(3)).put(certs); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java dissimilarity index 63% index 0f788039b0b..b7a22b20400 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java @@ -1,285 +1,155 @@ -/* CertificateRequest.java -- SSL CertificateRequest message. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.StringWriter; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; - -import java.util.LinkedList; -import java.security.Principal; - -final class CertificateRequest implements Handshake.Body -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final ClientType[] types; - private final Principal[] authorities; - - // Constructor. - // ------------------------------------------------------------------------- - - CertificateRequest(ClientType[] types, Principal[] authorities) - { - if (types == null) - { - throw new NullPointerException(); - } - this.types = types; - if (authorities == null) - { - throw new NullPointerException(); - } - this.authorities = authorities; - } - - // Class methods. - // ------------------------------------------------------------------------- - - static CertificateRequest read(InputStream in) throws IOException - { - DataInputStream din = new DataInputStream(in); - ClientType[] types = new ClientType[din.readUnsignedByte()]; - for (int i = 0; i < types.length; i++) - { - types[i] = ClientType.read(din); - } - - LinkedList authorities = new LinkedList(); - byte[] buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - ByteArrayInputStream bin = new ByteArrayInputStream(buf); - try - { - String x500name = Util.getSecurityProperty("jessie.x500.class"); - if (x500name == null) - { - x500name = "org.metastatic.jessie.pki.X500Name"; - } - Class x500class = null; - ClassLoader cl = ClassLoader.getSystemClassLoader(); - if (cl != null) - { - x500class = cl.loadClass(x500name); - } - else - { - x500class = Class.forName(x500name); - } - Constructor c = x500class.getConstructor(new Class[] { new byte[0].getClass() }); - while (bin.available() > 0) - { - buf = new byte[(bin.read() & 0xFF) << 8 | (bin.read() & 0xFF)]; - bin.read(buf); - authorities.add(c.newInstance(new Object[] { buf })); - } - } - catch (IOException ioe) - { - throw ioe; - } - catch (Exception ex) - { - throw new Error(ex.toString()); - } - return new CertificateRequest(types, - (Principal[]) authorities.toArray(new Principal[authorities.size()])); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException - { - ByteArrayOutputStream bout = new ByteArrayOutputStream(); - out.write(types.length); - for (int i = 0; i < types.length; i++) - { - out.write(types[i].getValue()); - } - - try - { - Class x500class = authorities[0].getClass(); - Method m = x500class.getMethod("getEncoded", null); - for (int i = 0; i < authorities.length; i++) - { - byte[] buf = (byte[]) m.invoke(authorities[i], null); - bout.write(buf.length >>> 8 & 0xFF); - bout.write(buf.length & 0xFF); - bout.write(buf, 0, buf.length); - } - } - catch (Exception ex) - { - throw new Error(ex.toString()); - } - out.write(bout.size() >>> 8 & 0xFF); - out.write(bout.size() & 0xFF); - bout.writeTo(out); - } - - ClientType[] getTypes() - { - return types; - } - - String[] getTypeStrings() - { - try - { - return (String[]) Util.transform(types, String.class, "toString", null); - } - catch (Exception x) - { - return null; - } - } - - Principal[] getAuthorities() - { - return authorities; - } - - public String toString() - { - StringWriter str = new StringWriter(); - PrintWriter out = new PrintWriter(str); - out.println("struct {"); - out.print(" types = "); - for (int i = 0; i < types.length; i++) - { - out.print(types[i]); - if (i != types.length - 1) - out.print(", "); - } - out.println(";"); - out.println(" authorities ="); - for (int i = 0; i < authorities.length; i++) - { - out.print(" "); - out.print(authorities[i].getName()); - if (i != types.length - 1) - out.println(","); - } - out.println(";"); - out.println("} CertificateRequest;"); - return str.toString(); - } - - // Inner class. - // ------------------------------------------------------------------------- - - static final class ClientType implements Enumerated - { - - // Constants and fields. - // ----------------------------------------------------------------------- - - static final ClientType - RSA_SIGN = new ClientType(1), DSS_SIGN = new ClientType(2), - RSA_FIXED_DH = new ClientType(3), DSS_FIXED_DH = new ClientType(4); - - private final int value; - - // Constructor. - // ----------------------------------------------------------------------- - - private ClientType(int value) - { - this.value = value; - } - - // Class method. - // ----------------------------------------------------------------------- - - static ClientType read(InputStream in) throws IOException - { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of input stream"); - } - switch (i & 0xFF) - { - case 1: return RSA_SIGN; - case 2: return DSS_SIGN; - case 3: return RSA_FIXED_DH; - case 4: return DSS_FIXED_DH; - default: return new ClientType(i); - } - } - - // Instance methods. - // ----------------------------------------------------------------------- - - public byte[] getEncoded() - { - return new byte[] { (byte) value }; - } - - public int getValue() - { - return value; - } - - public String toString() - { - switch (value) - { - case 1: return "rsa_sign"; - case 2: return "dss_sign"; - case 3: return "rsa_fixed_dh"; - case 4: return "dss_fixed_dh"; - default: return "unknown(" + value + ")"; - } - } - } -} +/* CertificateRequest.java -- SSL CertificateRequest message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * A request by the server for a client certificate. + * + *
    +struct
    +{
    +  ClientCertificateType certificate_types<1..2^8-1>;
    +  DistinguishedName certificate_authorities<3..2^16-1>;
    +} CertificateRequest;
    +
    + */ +public class CertificateRequest implements Handshake.Body +{ + + // Fields. + // ------------------------------------------------------------------------- + + protected ByteBuffer buffer; + + // Constructor. + // ------------------------------------------------------------------------- + + public CertificateRequest(final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + // Instance methods. + // ------------------------------------------------------------------------- + + public int length () + { + int o1 = (buffer.get (0) & 0xFF) + 1; + return o1 + (buffer.getShort (o1) & 0xFFFF) + 2; + } + + public ClientCertificateTypeList types () + { + return new ClientCertificateTypeList(buffer.duplicate()); + } + + public X500PrincipalList authorities () + { + int offset = (buffer.get (0) & 0xFF) + 1; + return new X500PrincipalList (((ByteBuffer) buffer.position(offset)).slice()); + } + + public String toString() + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + String subprefix = " "; + if (prefix != null) subprefix = prefix + " "; + if (prefix != null) out.print (prefix); + out.println("struct {"); + if (prefix != null) out.print (prefix); + out.println (" types ="); + out.println (types ().toString (subprefix)); + if (prefix != null) out.print (prefix); + out.println(" authorities ="); + out.println (authorities ().toString (subprefix)); + if (prefix != null) out.print (prefix); + out.print ("} CertificateRequest;"); + return str.toString(); + } + + public static enum ClientCertificateType + { + RSA_SIGN (1), + DSS_SIGN (2), + RSA_FIXED_DH (3), + DSS_FIXED_DH (4); + + private final int value; + + // Constructor. + // ----------------------------------------------------------------------- + + private ClientCertificateType (final int value) + { + this.value = value; + } + + // Class method. + // ----------------------------------------------------------------------- + + static ClientCertificateType forValue (final int value) + { + switch (value) + { + case 1: return RSA_SIGN; + case 2: return DSS_SIGN; + case 3: return RSA_FIXED_DH; + case 4: return DSS_FIXED_DH; + default: throw new IllegalArgumentException("unknown client certificate type: " + value); + } + } + + public int getValue() + { + return value; + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java new file mode 100644 index 00000000000..9beab473ca6 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java @@ -0,0 +1,113 @@ +/* CertificateRequestBuilder.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import static gnu.javax.net.ssl.provider.CertificateRequest.ClientCertificateType; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.List; + +import javax.security.auth.x500.X500Principal; + +/** + * Builder for {@link CertificateRequest} objects. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class CertificateRequestBuilder extends CertificateRequest + implements Builder +{ + public CertificateRequestBuilder() + { + super(ByteBuffer.allocate(1024)); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return ((ByteBuffer) buffer.duplicate().limit(length())).slice(); + } + + public void setTypes(List types) + { + ensureCapacity(types.size() + 3); + buffer.put(0, (byte) types.size()); + ByteBuffer b = (ByteBuffer) buffer.duplicate().position(1); + for (ClientCertificateType type : types) + b.put((byte) type.getValue()); + } + + public void setAuthorities(List authorities) + { + ByteArrayOutputStream out = new ByteArrayOutputStream(1024); + for (X500Principal auth : authorities) + { + byte[] encoded = auth.getEncoded(); + out.write((encoded.length >>> 8) & 0xFF); + out.write( encoded.length & 0xFF); + try + { + out.write(encoded); + } + catch (IOException ignored) + { + // Ignored; we use a ByteArrayOutputStream. + } + } + byte[] auths = out.toByteArray(); + int typesLen = 1 + (buffer.get(0) & 0xFF); + int len = typesLen + auths.length + 2; + ensureCapacity(len); + buffer.putShort(typesLen, (short) auths.length); + ((ByteBuffer) buffer.duplicate().position(typesLen + 2)).put(auths); + } + + public void ensureCapacity(final int capacity) + { + if (buffer.capacity() >= capacity) + return; + ByteBuffer newBuffer = ByteBuffer.allocate(capacity); + newBuffer.duplicate().put(buffer); + buffer = newBuffer; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java new file mode 100644 index 00000000000..059c6ec47ba --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java @@ -0,0 +1,272 @@ +/* CertificateStatusRequest.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.provider.Extension.Value; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.util.Iterator; +import java.util.List; +import java.util.NoSuchElementException; + +/** + *
    +struct {
    +  CertificateStatusType status_type;
    +  select (status_type) {
    +    case ocsp: OCSPStatusRequest;
    +  } request;
    +} CertificateStatusRequest;
    +
    +enum { ocsp(1), (255) } CertificateStatusType;
    +
    +struct {
    +  ResponderID responder_id_list<0..2^16-1>;
    +  Extensions  request_extensions;
    +} OCSPStatusRequest;
    +
    +opaque ResponderID<1..2^16-1>;
    +opaque Extensions<0..2^16-1>;
    + * + * @author csm + */ +public class CertificateStatusRequest extends Value implements Iterable +{ + private ByteBuffer buffer; + + public CertificateStatusRequest(final ByteBuffer buffer) + { + this.buffer = buffer; + } + + public CertificateStatusRequest(CertificateStatusType type, + List responderIdList, + byte[] requestExtensions) + { + if (type != CertificateStatusType.OCSP) + throw new IllegalArgumentException(); + int length = 3; + int idsLength = 0; + for (byte[] responderId : responderIdList) + { + length += 2 + responderId.length; + idsLength += 2 + responderId.length; + } + length += 2 + requestExtensions.length; + buffer = ByteBuffer.allocate(length); + buffer.put((byte) 1); + buffer.putShort((short) idsLength); + for (byte[] responderId : responderIdList) + buffer.putShort((short) responderId.length).put(responderId); + buffer.putShort((short) requestExtensions.length); + buffer.put(requestExtensions); + buffer.rewind(); + } + + public int length() + { + int l = 3 + (buffer.getShort(1) & 0xFFFF); + return l + (buffer.getShort(l) & 0xFFFF) + 2; + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public CertificateStatusType statusType() + { + int x = buffer.get(0) & 0xFF; + if (x == 1) + return CertificateStatusType.OCSP; + throw new IllegalArgumentException ("invalid type: " + x); + } + + public int size() + { + int len = buffer.getShort(1) & 0xFFFF; + int n = 0; + for (int i = 3; i < len; ) + { + int l = buffer.getShort(i); + i += l + 2; + n++; + } + return n; + } + + public byte[] responderId(int index) + { + int len = buffer.getShort(1) & 0xFFFF; + int n = 0; + int i = 3; + while (i < len && n <= index) + { + int l = buffer.getShort(i) & 0xFFFF; + if (n == index) + { + byte[] b = new byte[l]; + ((ByteBuffer) buffer.duplicate().position(i+2)).get(b); + return b; + } + i += l + 2; + n++; + } + throw new IndexOutOfBoundsException(); + } + + public byte[] requestExtensions() + { + int l = 2 + (buffer.getShort(0) & 0xFFFF); + int ll = buffer.getShort(l) & 0xFFFF; + byte[] b = new byte[ll]; + ((ByteBuffer) buffer.duplicate().position(ll+2)).get(b); + return b; + } + + public void setStatusType(CertificateStatusType type) + { + buffer.put(0, (byte) type.value); + } + + public void setRequestIdListLength(int newLength) + { + if (newLength < 0 || newLength > 0xFFFF) + throw new IllegalArgumentException("length out of range"); + buffer.putShort(1, (short) newLength); + } + + public void putRequestId(int index, byte[] id) + { + if (id.length > 0xFFFF) + throw new IllegalArgumentException("request ID too large"); + int len = buffer.getShort(1) & 0xFFFF; + int n = 0; + int i = 3; + while (i < len && n < index) + { + int l = buffer.getShort(i) & 0xFFFF; + i += l + 2; + n++; + } + if (n < index) + throw new IndexOutOfBoundsException(); + buffer.putShort(i, (short) id.length); + ((ByteBuffer) buffer.duplicate().position(i)).put(id); + } + + public void setRequestExtensions(int index, byte[] ext) + { + if (ext.length > 0xFFFF) + throw new IllegalArgumentException("exceptions too large"); + int off = 3 + (buffer.getShort(1) & 0xFFFF); + buffer.putShort(off, (short) ext.length); + ((ByteBuffer) buffer.duplicate().position(off+2)).put(ext); + } + + public Iterator iterator() + { + return new ResponderIdIterator(); + } + + public String toString() + { + return toString(null); + } + + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.print(" status_type = "); + out.print(statusType()); + out.println(";"); + String subprefix = " "; + if (prefix != null) subprefix = prefix + subprefix; + if (prefix != null) out.print(prefix); + out.println(" responder_id_list = {"); + for (byte[] b : this) + out.print(Util.hexDump(b, subprefix)); + if (prefix != null) out.print(prefix); + out.println(" };"); + if (prefix != null) out.print(prefix); + out.println(" request_extensions ="); + out.print(Util.hexDump(requestExtensions(), subprefix)); + if (prefix != null) out.print(prefix); + out.print("} CertificateStatus;"); + return str.toString(); + } + + public class ResponderIdIterator implements Iterator + { + private int index; + + public ResponderIdIterator() + { + index = 0; + } + + public byte[] next() throws NoSuchElementException + { + try + { + return responderId(index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException(); + } + } + + public boolean hasNext() + { + return index < size(); + } + + public void remove() + { + throw new UnsupportedOperationException(); + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java new file mode 100644 index 00000000000..7cddf168f94 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java @@ -0,0 +1,13 @@ +package gnu.javax.net.ssl.provider; + +public enum CertificateStatusType +{ + OCSP (1); + + public final int value; + + private CertificateStatusType (final int value) + { + this.value = value; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateType.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateType.java index c5705939f74..ecba21b6342 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateType.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateType.java @@ -38,67 +38,25 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; - -final class CertificateType implements Enumerated +public enum CertificateType { - - // Constants and fields. - // ------------------------------------------------------------------------- - - static final CertificateType X509 = new CertificateType(0); - static final CertificateType OPEN_PGP = new CertificateType(1); + X509 (0), + OPEN_PGP (1); private final int value; - // Constructor. - // ------------------------------------------------------------------------- - private CertificateType(int value) { this.value = value; } - // Class method. - // ------------------------------------------------------------------------- - - static CertificateType read(InputStream in) throws IOException - { - int value = in.read(); - if (value == -1) - { - throw new EOFException("unexpected end of input stream"); - } - switch (value & 0xFF) - { - case 0: return X509; - case 1: return OPEN_PGP; - default: return new CertificateType(value); - } - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public byte[] getEncoded() - { - return new byte[] { (byte) value }; - } - - public int getValue() - { - return value; - } - - public String toString() + public static CertificateType forValue (final int value) { switch (value) { - case 0: return "X.509"; - case 1: return "OpenPGP"; - default: return "unknown(" + value + ")"; + case 0: return X509; + case 1: return OPEN_PGP; + default: throw new IllegalArgumentException ("unknown certificate type: " + value); } } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java new file mode 100644 index 00000000000..0bc1c428b48 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateURL.java @@ -0,0 +1,388 @@ +/* CertificateURL.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.provider.Extension.Value; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.CharBuffer; +import java.nio.charset.Charset; +import java.nio.charset.CharsetEncoder; +import java.util.List; +import java.util.NoSuchElementException; + +/** + * The CertificateURL extension value. + * + *
    +enum {
    +  individual_certs(0), pkipath(1), (255)
    +} CertChainType;
    +
    +enum {
    +  false(0), true(1)
    +} Boolean;
    +
    +struct {
    +  CertChainType type;
    +  URLAndOptionalHash url_and_hash_list<1..2^16-1>;
    +} CertificateURL;
    +
    +struct {
    +  opaque url<1..2^16-1>;
    +  Boolean hash_present;
    +  select (hash_present) {
    +    case false: struct {};
    +    case true: SHA1Hash;
    +  } hash;
    +} URLAndOptionalHash;
    +
    +opaque SHA1Hash[20];
    + * + * @author csm + * + */ +public class CertificateURL extends Value implements Iterable +{ + private ByteBuffer buffer; + + public CertificateURL(final ByteBuffer buffer) + { + this.buffer = buffer; + } + + public CertificateURL(CertChainType type, List urls) + { + int length = 3; + for (URLAndOptionalHash url : urls) + length += url.length(); + buffer = ByteBuffer.allocate(length); + buffer.put((byte) type.getValue()); + buffer.putShort((short) (length - 1)); + for (URLAndOptionalHash url : urls) + buffer.put(url.buffer()); + buffer.rewind(); + } + + public int length() + { + return 3 + (buffer.getShort(1) & 0xFFFF); + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public CertChainType type() + { + switch (buffer.get(0)) + { + case 0: return CertChainType.INDIVIDUAL_CERTS; + case 1: return CertChainType.PKIPATH; + } + throw new IllegalArgumentException("unknown certificate URL type"); + } + + public int size() + { + int len = buffer.getShort(1) & 0xFFFF; + int n = 0; + for (int i = 3; i < len; ) + { + URLAndOptionalHash u + = new URLAndOptionalHash((ByteBuffer) buffer.duplicate().position(i)); + int l = u.length(); + i += l; + n++; + } + return n; + } + + public URLAndOptionalHash get(int index) + { + int len = buffer.getShort(1) & 0xFFFF; + int n = 0; + int l = 0; + int i; + for (i = 3; i < len && n < index; ) + { + URLAndOptionalHash u + = new URLAndOptionalHash((ByteBuffer) buffer.duplicate().position(i)); + l = u.length(); + i += l; + n++; + } + if (n < index) + throw new IndexOutOfBoundsException(); + return new URLAndOptionalHash(((ByteBuffer) buffer.duplicate().position(i).limit(i+l)).slice()); + } + + public void set(int index, URLAndOptionalHash url) + { + int len = buffer.getShort(1) & 0xFFFF; + int n = 0; + int i; + for (i = 3; i < len && n < index-1; ) + { + URLAndOptionalHash u + = new URLAndOptionalHash((ByteBuffer) buffer.duplicate().position(i)); + int l = u.length(); + i += l; + n++; + } + if (n < index - 1) + throw new IndexOutOfBoundsException(); + int l = url.urlLength(); + buffer.putShort(i, (short) l); + ((ByteBuffer) buffer.duplicate().position(i+2)).put(url.urlBuffer()); + buffer.put(i+l+2, (byte) (url.hashPresent() ? 1 : 0)); + if (url.hashPresent()) + ((ByteBuffer) buffer.duplicate().position(i+l+3)).put (url.sha1Hash()); + } + + public void setLength(final int length) + { + if (length < 0 || length > 65535) + throw new IllegalArgumentException("length must be between 0 and 65535"); + buffer.putShort(1, (short) length); + } + + public String toString() + { + return toString(null); + } + + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println ("struct {"); + if (prefix != null) out.print(prefix); + out.print(" type = "); + out.print(type()); + out.println(";"); + if (prefix != null) out.print(prefix); + out.println(" url_and_hash_list = {"); + String subprefix = " "; + if (prefix != null) subprefix = prefix + subprefix; + for (URLAndOptionalHash url : this) + { + out.println(url.toString(subprefix)); + } + if (prefix != null) out.print(prefix); + out.println(" };"); + if (prefix != null) out.print(prefix); + out.print("} CertificateURL;"); + return str.toString(); + } + + public java.util.Iterator iterator() + { + return new Iterator(); + } + + public class Iterator implements java.util.Iterator + { + private int index; + + public Iterator() + { + index = 0; + } + + public URLAndOptionalHash next() throws NoSuchElementException + { + try + { + return get(index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException(); + } + } + + public boolean hasNext() + { + return index < size(); + } + + public void remove() + { + throw new UnsupportedOperationException(); + } + } + + public static enum CertChainType + { + INDIVIDUAL_CERTS (0), PKIPATH (1); + + private final int value; + + private CertChainType (final int value) + { + this.value = value; + } + + public int getValue() + { + return value; + } + } + + public static class URLAndOptionalHash implements Builder, Constructed + { + private ByteBuffer buffer; + + public URLAndOptionalHash (final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + public URLAndOptionalHash(String url) + { + this(url, null); + } + + public URLAndOptionalHash(String url, byte[] hash) + { + if (hash != null && hash.length < 20) + throw new IllegalArgumentException(); + int length = 3 + url.length(); + if (hash != null) + length += 20; + buffer = ByteBuffer.allocate(length); + buffer.putShort((short) url.length()); + Charset cs = Charset.forName("US-ASCII"); + CharsetEncoder ascii = cs.newEncoder(); + ascii.encode(CharBuffer.wrap(url), buffer, true); + buffer.put((byte) (hash != null ? 1 : 0)); + if (hash != null) + buffer.put(hash, 0, 20); + buffer.rewind(); + } + + public int length() + { + return ((buffer.getShort(0) & 0xFFFF) + + (hashPresent() ? 23 : 3)); + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public String url() + { + Charset cs = Charset.forName("ASCII"); + return cs.decode(urlBuffer()).toString(); + } + + public int urlLength() + { + return buffer.getShort(0) & 0xFFFF; + } + + public ByteBuffer urlBuffer() + { + int len = urlLength(); + return ((ByteBuffer) buffer.duplicate().position(2).limit(2+len)).slice(); + } + + public boolean hashPresent() + { + int i = (buffer.getShort(0) & 0xFFFF) + 2; + byte b = buffer.get(i); + if (b == 0) + return false; + if (b == 1) + return true; + throw new IllegalArgumentException("expecting 0 or 1: " + (b & 0xFF)); + } + + public byte[] sha1Hash() + { + int i = (buffer.getShort(0) & 0xFFFF) + 2; + byte b = buffer.get(i); + if (b == 0) + return null; + byte[] buf = new byte[20]; + ((ByteBuffer) buffer.duplicate().position(i+1)).get(buf); + return buf; + } + + public String toString() + { + return toString(null); + } + + public String toString(final String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.print(" url = "); + out.print(url()); + out.println(";"); + boolean has_hash = hashPresent(); + if (prefix != null) out.print(prefix); + out.print(" hash_present = "); + out.print(has_hash); + out.println(";"); + if (has_hash) + { + if (prefix != null) out.print(prefix); + out.print(" sha1Hash = "); + out.print(Util.toHexString(sha1Hash(), ':')); + out.println(";"); + } + if (prefix != null) out.print(prefix); + out.print("} URLAndOptionalHash;"); + return str.toString(); + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java index e0bf130f189..b63f5e4ef0c 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateVerify.java @@ -38,34 +38,24 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; -import java.io.StringReader; import java.io.StringWriter; -import java.security.PublicKey; +import java.nio.ByteBuffer; -final class CertificateVerify extends Signature implements Handshake.Body +public class CertificateVerify extends Signature implements Handshake.Body { // Contstructor. // ------------------------------------------------------------------------- - CertificateVerify(Object sigValue, String sigAlg) + public CertificateVerify(final ByteBuffer buffer, final SignatureAlgorithm sigAlg) { - super(sigValue, sigAlg); + super(buffer, sigAlg); } - - // Class method. - // -------------------------------------------------------------------------- - - static Signature read(InputStream in, CipherSuite suite, PublicKey key) - throws IOException + + public CertificateVerify(final byte[] sigVal, final SignatureAlgorithm sigAlg) { - Signature sig = Signature.read(in, suite, key); - return new CertificateVerify(sig.getSigValue(), sig.getSigAlg()); + super(sigVal, sigAlg); } // Instance method. @@ -73,23 +63,21 @@ final class CertificateVerify extends Signature implements Handshake.Body public String toString() { - StringWriter str = new StringWriter(); - PrintWriter out = new PrintWriter(str); + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) out.print (prefix); out.println("struct {"); - BufferedReader r = new BufferedReader(new StringReader(super.toString())); - String s; - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) - { - } - out.println("} CertificateVerify;"); + String subprefix = " "; + if (prefix != null) + subprefix = prefix + subprefix; + out.println (super.toString (subprefix)); + if (prefix != null) out.print (prefix); + out.print ("} CertificateVerify;"); return str.toString(); } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CipherAlgorithm.java b/libjava/classpath/gnu/javax/net/ssl/provider/CipherAlgorithm.java new file mode 100644 index 00000000000..98e05af310d --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CipherAlgorithm.java @@ -0,0 +1,47 @@ +/* CipherAlgorithm.java -- Cipher algorithm enumeration. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +/** + * The set of cipher algorithms we support. + */ +public enum CipherAlgorithm +{ + NULL, RC4, DES, DESede, CAST5, AES +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java b/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java dissimilarity index 87% index de916817b92..af3041e9403 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java @@ -1,754 +1,837 @@ -/* CipherSuite.java -- Supported cipher suites. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.DataInputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; - -import java.lang.reflect.Field; - -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.Provider; -import java.security.Security; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import javax.crypto.Cipher; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; - -import gnu.javax.crypto.cipher.CipherFactory; -import gnu.javax.crypto.cipher.IBlockCipher; -import gnu.javax.crypto.mac.IMac; -import gnu.javax.crypto.mac.MacFactory; -import gnu.javax.crypto.mode.IMode; -import gnu.javax.crypto.mode.ModeFactory; - -final class CipherSuite implements Constructed -{ - - // Constants and fields. - // ------------------------------------------------------------------------- - - private static final List tlsSuiteNames = new LinkedList(); - private static final HashMap namesToSuites = new HashMap(); - - // SSL CipherSuites. - static final CipherSuite SSL_NULL_WITH_NULL_NULL = - new CipherSuite("null", "null", "null", "null", 0, 0x00, 0x00, - "SSL_NULL_WITH_NULL_NULL", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_NULL_MD5 = - new CipherSuite("null", "RSA", "RSA", "SSLMAC-MD5", 0, 0x00, 0x01, - "SSL_RSA_WITH_NULL_MD5", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_NULL_SHA = - new CipherSuite("null", "RSA", "RSA", "SSLMAC-SHA", 0, 0x00, 0x02, - "SSL_RSA_WITH_NULL_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_EXPORT_WITH_RC4_40_MD5 = - new CipherSuite("RC4", "RSA", "RSA", "SSLMAC-MD5", 5, 0x00, 0x03, - "SSL_RSA_EXPORT_WITH_RC4_40_MD5", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_RC4_128_MD5 = - new CipherSuite("RC4", "RSA", "RSA", "SSLMAC-MD5", 16, 0x00, 0x04, - "SSL_RSA_WITH_RC4_128_MD5", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_RC4_128_SHA = - new CipherSuite("RC4", "RSA", "RSA", "SSLMAC-SHA", 16, 0x00, 0x05, - "SSL_RSA_WITH_RC4_128_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "RSA", "RSA", "SSLMAC-SHA", 5, 0x00, 0x08, - "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_DES_CBC_SHA = - new CipherSuite("DES", "RSA", "RSA", "SSLMAC-SHA", 8, 0x00, 0x09, - "SSL_RSA_WITH_DES_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "RSA", "RSA", "SSLMAC-SHA", 24, 0x00, 0x0A, - "SSL_RSA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DH", "DSS", "SSLMAC-SHA", 5, 0x00, 0x0B, - "SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_DSS_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DH", "DSS", "SSLMAC-SHA", 8, 0x00, 0x0C, - "SSL_DH_DSS_WITH_DES_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DH", "DSS", "SSLMAC-SHA", 24, 0x00, 0x0D, - "SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DH", "RSA", "SSLMAC-SHA", 5, 0x00, 0x0E, - "SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_RSA_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DH", "RSA", "SSLMAC-SHA", 8, 0x00, 0x0F, - "SSL_DH_RSA_WITH_DES_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DH", "RSA", "SSLMAC-SHA", 24, 0x00, 0x10, - "SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DHE", "DSS", "SSLMAC-SHA", 5, 0x00, 0x11, - "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DHE", "DSS", "SSLMAC-SHA", 8, 0x00, 0x12, - "SSL_DHE_DSS_WITH_DES_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DHE", "DSS", "SSLMAC-SHA", 24, 0x00, 0x13, - "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DHE", "RSA", "SSLMAC-SHA", 5, 0x00, 0x14, - "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DHE", "RSA", "SSLMAC-SHA", 8, 0x00, 0x15, - "SSL_DHE_RSA_WITH_DES_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DHE", "RSA", "SSLMAC-SHA", 24, 0x00, 0x16, - "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.SSL_3); - - // AES CipherSuites. - static final CipherSuite SSL_RSA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "RSA", "RSA", "SSLMAC-SHA", 16, 0x00, 0x2F, - "SSL_RSA_WITH_AES_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_DSS_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DH", "DSS", "SSLMAC-SHA", 16, 0x00, 0x30, - "SSL_DH_DSS_WITH_AES_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_RSA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DH", "RSA", "SSLMAC-SHA", 16, 0x00, 0x31, - "SSL_DH_RSA_WITH_AES_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DHE", "DSS", "SSLMAC-SHA", 16, 0x00, 0x32, - "SSL_DHE_DSS_WITH_AES_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DHE", "RSA", "SSLMAC-SHA", 16, 0x00, 0x33, - "SSL_DHE_RSA_WITH_AES_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "RSA", "RSA", "SSLMAC-SHA", 32, 0x00, 0x35, - "SSL_RSA_WITH_AES_256_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_DSS_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DH", "DSS", "SSLMAC-SHA", 32, 0x00, 0x36, - "SSL_DH_DSS_WITH_AES_256_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DH_RSA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DH", "RSA", "SSLMAC-SHA", 32, 0x00, 0x37, - "SSL_DH_RSA_WITH_AES_256_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DHE", "DSS", "SSLMAC-SHA", 32, 0x00, 0x38, - "SSL_DHE_DSS_WITH_AES_256_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DHE", "RSA", "SSLMAC-SHA", 32, 0x00, 0x39, - "SSL_DHE_RSA_WITH_AES_256_CBC_SHA", ProtocolVersion.SSL_3); - - // Ciphersuites from the OpenPGP extension draft. - static final CipherSuite SSL_DHE_DSS_WITH_CAST_128_CBC_SHA = - new CipherSuite("CAST5", "DHE", "DSS", "HMAC-SHA", 16, 0x00, 0x70, - "SSL_DHE_DSS_WITH_CAST_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_CAST_128_CBC_RMD = - new CipherSuite("CAST5", "DHE", "DSS", "HMAC-RIPEMD-160", 16, 0x00, 0x71, - "SSL_DHE_DSS_WITH_CAST_128_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_3DES_EDE_CBC_RMD = - new CipherSuite("TripleDES", "DHE", "DSS", "HMAC-RIPEMD-160", 24, 0x00, 0x72, - "SSL_DHE_DSS_WITH_3DES_EDE_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_AES_128_CBC_RMD = - new CipherSuite("AES", "DHE", "DSS", "HMAC-RIPEMD-160", 16, 0x00, 0x73, - "SSL_DHE_DSS_WITH_AES_128_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_DSS_WITH_AES_256_CBC_RMD = - new CipherSuite("AES", "DHE", "DSS", "HMAC-RIPEMD-160", 32, 0x00, 0x74, - "SSL_DHE_DSS_WITH_AES_256_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_CAST_128_CBC_SHA = - new CipherSuite("CAST5", "DHE", "RSA", "HMAC-SHA", 16, 0x00, 0x75, - "SSL_DHE_RSA_WITH_CAST_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_CAST_128_CBC_RMD = - new CipherSuite("CAST5", "DHE", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x76, - "SSL_DHE_RSA_WITH_CAST_128_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_3DES_EDE_CBC_RMD = - new CipherSuite("TripleDES", "DHE", "RSA", "HMAC-RIPEMD-160", 24, 0x00, 0x77, - "SSL_DHE_RSA_WITH_3DES_EDE_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_AES_128_CBC_RMD = - new CipherSuite("AES", "DHE", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x78, - "SSL_DHE_RSA_WITH_AES_128_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_DHE_RSA_WITH_AES_256_CBC_RMD = - new CipherSuite("AES", "DHE", "RSA", "HMAC-RIPEMD-160", 32, 0x00, 0x79, - "SSL_DHE_RSA_WITH_AES_256_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_CAST_128_CBC_SHA = - new CipherSuite("CAST5", "RSA", "RSA", "HMAC-SHA", 16, 0x00, 0x7A, - "SSL_RSA_WITH_CAST_128_CBC_SHA", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_CAST_128_CBC_RMD = - new CipherSuite("CAST5", "RSA", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x7B, - "SSL_RSA_WITH_CAST_128_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_3DES_EDE_CBC_RMD = - new CipherSuite("TripleDES", "RSA", "RSA", "HMAC-RIPEMD-160", 24, 0x00, 0x7C, - "SSL_RSA_WITH_3DES_EDE_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_AES_128_CBC_RMD = - new CipherSuite("AES", "RSA", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x7D, - "SSL_RSA_WITH_AES_128_CBC_RMD", ProtocolVersion.SSL_3); - static final CipherSuite SSL_RSA_WITH_AES_256_CBC_RMD = - new CipherSuite("AES", "RSA", "RSA", "HMAC-RIPEMD-160", 32, 0x00, 0x7E, - "SSL_RSA_WITH_AES_256_CBC_RMD", ProtocolVersion.SSL_3); - - static final CipherSuite TLS_NULL_WITH_NULL_NULL = - new CipherSuite("null", "null", "null", "null", 0, 0x00, 0x00, - "TLS_NULL_WITH_NULL_NULL", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_NULL_MD5 = - new CipherSuite("null", "RSA", "RSA", "HMAC-MD5", 0, 0x00, 0x01, - "TLS_RSA_WITH_NULL_MD5", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_NULL_SHA = - new CipherSuite("null", "RSA", "RSA", "HMAC-SHA", 0, 0x00, 0x02, - "TLS_RSA_WITH_NULL_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_EXPORT_WITH_RC4_40_MD5 = - new CipherSuite("RC4", "RSA", "RSA", "HMAC-MD5", 5, 0x00, 0x03, - "TLS_RSA_EXPORT_WITH_RC4_40_MD5", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_RC4_128_MD5 = - new CipherSuite("RC4", "RSA", "RSA", "HMAC-MD5", 16, 0x00, 0x04, - "TLS_RSA_WITH_RC4_128_MD5", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_RC4_128_SHA = - new CipherSuite("RC4", "RSA", "RSA", "HMAC-SHA", 16, 0x00, 0x05, - "TLS_RSA_WITH_RC4_128_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "RSA", "RSA", "HMAC-SHA", 5, 0x00, 0x08, - "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_DES_CBC_SHA = - new CipherSuite("DES", "RSA", "RSA", "HMAC-SHA", 8, 0x00, 0x09, - "TLS_RSA_WITH_DES_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "RSA", "RSA", "HMAC-SHA", 24, 0x00, 0x0A, - "TLS_RSA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DH", "DSS", "HMAC-SHA", 5, 0x00, 0x0B, - "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_DSS_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DH", "DSS", "HMAC-SHA", 8, 0x00, 0x0C, - "TLS_DH_DSS_WITH_DES_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DH", "DSS", "HMAC-SHA", 24, 0x00, 0x0D, - "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DH", "RSA", "HMAC-SHA", 5, 0x00, 0x0E, - "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_RSA_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DH", "RSA", "HMAC-SHA", 8, 0x00, 0x0F, - "TLS_DH_RSA_WITH_DES_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DH", "RSA", "HMAC-SHA", 24, 0x00, 0x10, - "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DHE", "DSS", "HMAC-SHA", 5, 0x00, 0x11, - "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DHE", "DSS", "HMAC-SHA", 8, 0x00, 0x12, - "TLS_DHE_DSS_WITH_DES_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DHE", "DSS", "HMAC-SHA", 24, 0x00, 0x13, - "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = - new CipherSuite("DES", "DHE", "RSA", "HMAC-SHA", 5, 0x00, 0x14, - "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_DES_CBC_SHA = - new CipherSuite("DES", "DHE", "RSA", "HMAC-SHA", 8, 0x00, 0x15, - "TLS_DHE_RSA_WITH_DES_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "DHE", "RSA", "HMAC-SHA", 24, 0x00, 0x16, - "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - - // AES CipherSuites. - static final CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "RSA", "RSA", "HMAC-SHA", 16, 0x00, 0x2F, - "TLS_RSA_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DH", "DSS", "HMAC-SHA", 16, 0x00, 0x30, - "TLS_DH_DSS_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DH", "RSA", "HMAC-SHA", 16, 0x00, 0x31, - "TLS_DH_RSA_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DHE", "DSS", "HMAC-SHA", 16, 0x00, 0x32, - "TLS_DHE_DSS_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "DHE", "RSA", "HMAC-SHA", 16, 0x00, 0x33, - "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "RSA", "RSA", "HMAC-SHA", 32, 0x00, 0x35, - "TLS_RSA_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DH", "DSS", "HMAC-SHA", 32, 0x00, 0x36, - "TLS_DH_DSS_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DH", "RSA", "HMAC-SHA", 32, 0x00, 0x37, - "TLS_DH_RSA_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DHE", "DSS", "HMAC-SHA", 32, 0x00, 0x38, - "TLS_DHE_DSS_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "DHE", "RSA", "HMAC-SHA", 32, 0x00, 0x39, - "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - - // Secure remote password (SRP) ciphersuites - static final CipherSuite TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "SRP", "anon", "HMAC-SHA", 24, 0x00, 0x50, - "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "SRP", "RSA", "HMAC-SHA", 24, 0x00, 0x51, - "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = - new CipherSuite("TripleDES", "SRP", "DSS", "HMAC-SHA", 24, 0x00, 0x52, - "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "SRP", "anon", "HMAC-SHA", 16, 0x00, 0x53, - "TLS_SRP_SHA_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "SRP", "RSA", "HMAC-SHA", 16, 0x00, 0x54, - "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = - new CipherSuite("AES", "SRP", "DSS", "HMAC-SHA", 16, 0x00, 0x55, - "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "SRP", "anon", "HMAC-SHA", 32, 0x00, 0x56, - "TLS_SRP_SHA_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "SRP", "RSA", "HMAC-SHA", 32, 0x00, 0x57, - "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = - new CipherSuite("AES", "SRP", "DSS", "HMAC-SHA", 32, 0x00, 0x58, - "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA", ProtocolVersion.TLS_1); - - // Ciphersuites from the OpenPGP extension draft. - static final CipherSuite TLS_DHE_DSS_WITH_CAST_128_CBC_SHA = - new CipherSuite("CAST5", "DHE", "DSS", "HMAC-SHA", 16, 0x00, 0x70, - "TLS_DHE_DSS_WITH_CAST_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_CAST_128_CBC_RMD = - new CipherSuite("CAST5", "DHE", "DSS", "HMAC-RIPEMD-160", 16, 0x00, 0x71, - "TLS_DHE_DSS_WITH_CAST_128_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD = - new CipherSuite("TripleDES", "DHE", "DSS", "HMAC-RIPEMD-160", 24, 0x00, 0x72, - "TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_RMD = - new CipherSuite("AES", "DHE", "DSS", "HMAC-RIPEMD-160", 16, 0x00, 0x73, - "TLS_DHE_DSS_WITH_AES_128_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_RMD = - new CipherSuite("AES", "DHE", "DSS", "HMAC-RIPEMD-160", 32, 0x00, 0x74, - "TLS_DHE_DSS_WITH_AES_256_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_CAST_128_CBC_SHA = - new CipherSuite("CAST5", "DHE", "RSA", "HMAC-SHA", 16, 0x00, 0x75, - "TLS_DHE_RSA_WITH_CAST_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_CAST_128_CBC_RMD = - new CipherSuite("CAST5", "DHE", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x76, - "TLS_DHE_RSA_WITH_CAST_128_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD = - new CipherSuite("TripleDES", "DHE", "RSA", "HMAC-RIPEMD-160", 24, 0x00, 0x77, - "TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_RMD = - new CipherSuite("AES", "DHE", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x78, - "TLS_DHE_RSA_WITH_AES_128_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_RMD = - new CipherSuite("AES", "DHE", "RSA", "HMAC-RIPEMD-160", 32, 0x00, 0x79, - "TLS_DHE_RSA_WITH_AES_256_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_CAST_128_CBC_SHA = - new CipherSuite("CAST5", "RSA", "RSA", "HMAC-SHA", 16, 0x00, 0x7A, - "TLS_RSA_WITH_CAST_128_CBC_SHA", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_CAST_128_CBC_RMD = - new CipherSuite("CAST5", "RSA", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x7B, - "TLS_RSA_WITH_CAST_128_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_3DES_EDE_CBC_RMD = - new CipherSuite("TripleDES", "RSA", "RSA", "HMAC-RIPEMD-160", 24, 0x00, 0x7C, - "TLS_RSA_WITH_3DES_EDE_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_AES_128_CBC_RMD = - new CipherSuite("AES", "RSA", "RSA", "HMAC-RIPEMD-160", 16, 0x00, 0x7D, - "TLS_RSA_WITH_AES_128_CBC_RMD", ProtocolVersion.TLS_1); - static final CipherSuite TLS_RSA_WITH_AES_256_CBC_RMD = - new CipherSuite("AES", "RSA", "RSA", "HMAC-RIPEMD-160", 32, 0x00, 0x7E, - "TLS_RSA_WITH_AES_256_CBC_RMD", ProtocolVersion.TLS_1); - - private final String cipherName; - private final String kexName; - private final String sigName; - private final String macName; - private final boolean exportable; - private final boolean isStream; - private final int keyLength; - private final byte[] id; - private final String name; - private final ProtocolVersion version; - - // Constructors. - // ------------------------------------------------------------------------- - - private CipherSuite(String cipherName, String kexName, String sigName, - String macName, int keyLength, int id1, int id2, - String name, ProtocolVersion version) - { - this.cipherName = cipherName.intern(); - this.kexName = kexName.intern(); - this.sigName = sigName.intern(); - this.macName = macName.intern(); - this.exportable = keyLength <= 5; - this.isStream = cipherName.equals("null") || cipherName.equals("RC4"); - this.keyLength = keyLength; - this.id = new byte[] { (byte) id1, (byte) id2 }; - this.name = name.intern(); - this.version = version; - namesToSuites.put(name, this); - if (name.startsWith("TLS")) - { - tlsSuiteNames.add(name); - } - } - - private CipherSuite(byte[] id) - { - cipherName = null; - kexName = null; - sigName = null; - macName = null; - exportable = false; - isStream = false; - keyLength = 0; - this.id = id; - name = null; - version = null; - } - - // Class methods. - // ------------------------------------------------------------------------- - - /** - * Returns the cipher suite for the given name, or null if there is no - * such suite. - * - * @return The named cipher suite. - */ - static CipherSuite forName(String name) - { - return (CipherSuite) namesToSuites.get(name); - } - - static List availableSuiteNames() - { - return tlsSuiteNames; - } - - static CipherSuite read(InputStream in) throws IOException - { - DataInputStream din = new DataInputStream(in); - byte[] id = new byte[2]; - din.readFully(id); - return new CipherSuite(id); - } - - static IMode getCipher(String cbcCipherName) - { - IBlockCipher cipher = CipherFactory.getInstance(cbcCipherName); - if (cipher == null) - { - return null; - } - return ModeFactory.getInstance("CBC", cipher, cipher.defaultBlockSize()); - } - - static Cipher getJCECipher (final String name) - throws NoSuchAlgorithmException, NoSuchPaddingException - { - final String provider = Util.getSecurityProperty ("jessie.with.jce.provider"); - if (name.equals ("RC4")) - { - if (provider != null) - { - try - { - return Cipher.getInstance (name, provider); - } - catch (NoSuchProviderException nsae) - { - // Fall through. Try any available provider. - } - } - - return Cipher.getInstance (name); - } - else - { - // Oh, hey! Look! Something else Sun doesn't understand: SSLv3 padding - // is different than TLSv1 in subtle, but important, ways. But they - // sorta look the same, so why not make them equivalent? - // - // There should be a seperate padding "TLS1Padding". - if (provider != null) - { - try - { - return Cipher.getInstance (name + "/CBC/SSL3Padding", provider); - } - catch (NoSuchProviderException nspe) - { - // Fall through. Try any available provider. - } - } - return Cipher.getInstance (name + "/CBC/SSL3Padding"); - } - } - - static IMac getMac(String macName) - { - if (macName.startsWith("SSLMAC-")) - { - return new SSLHMac(macName.substring(7)); - } - else - { - return MacFactory.getInstance(macName); - } - } - - static Mac getJCEMac (final String name) - throws NoSuchAlgorithmException - { - final String provider = Util.getSecurityProperty ("jessie.with.jce.provider"); - if (provider != null) - { - try - { - return Mac.getInstance (name, provider); - } - catch (NoSuchProviderException nspe) - { - // Fall through. Try any available provider. - } - } - return Mac.getInstance (name); - } - - // Intance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException - { - out.write(id); - } - - CipherSuite resolve(ProtocolVersion version) - { - if (version == ProtocolVersion.SSL_3) - { - if (id[0] == 0x00) switch (id[1]) - { - case 0x00: return SSL_NULL_WITH_NULL_NULL; - case 0x01: return SSL_RSA_WITH_NULL_MD5; - case 0x02: return SSL_RSA_WITH_NULL_SHA; - case 0x03: return SSL_RSA_EXPORT_WITH_RC4_40_MD5; - case 0x04: return SSL_RSA_WITH_RC4_128_MD5; - case 0x05: return SSL_RSA_WITH_RC4_128_SHA; - case 0x08: return SSL_RSA_EXPORT_WITH_DES40_CBC_SHA; - case 0x09: return SSL_RSA_WITH_DES_CBC_SHA; - case 0x0A: return SSL_RSA_WITH_3DES_EDE_CBC_SHA; - case 0x0B: return SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA; - case 0x0C: return SSL_DH_DSS_WITH_DES_CBC_SHA; - case 0x0D: return SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA; - case 0x0E: return SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA; - case 0x0F: return SSL_DH_RSA_WITH_DES_CBC_SHA; - case 0x10: return SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA; - case 0x11: return SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA; - case 0x12: return SSL_DHE_DSS_WITH_DES_CBC_SHA; - case 0x13: return SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA; - case 0x14: return SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA; - case 0x15: return SSL_DHE_RSA_WITH_DES_CBC_SHA; - case 0x16: return SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA; - case 0x2F: return SSL_RSA_WITH_AES_128_CBC_SHA; - case 0x30: return SSL_DH_DSS_WITH_AES_128_CBC_SHA; - case 0x31: return SSL_DH_RSA_WITH_AES_128_CBC_SHA; - case 0x32: return SSL_DHE_DSS_WITH_AES_128_CBC_SHA; - case 0x33: return SSL_DHE_RSA_WITH_AES_128_CBC_SHA; - case 0x35: return SSL_RSA_WITH_AES_256_CBC_SHA; - case 0x36: return SSL_DH_DSS_WITH_AES_256_CBC_SHA; - case 0x37: return SSL_DH_RSA_WITH_AES_256_CBC_SHA; - case 0x38: return SSL_DHE_DSS_WITH_AES_256_CBC_SHA; - case 0x39: return SSL_DHE_RSA_WITH_AES_256_CBC_SHA; - } - } - else if (version == ProtocolVersion.TLS_1 || - version == ProtocolVersion.TLS_1_1) - { - if (id[0] == 0x00) switch (id[1]) - { - case 0x00: return TLS_NULL_WITH_NULL_NULL; - case 0x01: return TLS_RSA_WITH_NULL_MD5; - case 0x02: return TLS_RSA_WITH_NULL_SHA; - case 0x03: return TLS_RSA_EXPORT_WITH_RC4_40_MD5; - case 0x04: return TLS_RSA_WITH_RC4_128_MD5; - case 0x05: return TLS_RSA_WITH_RC4_128_SHA; - case 0x08: return TLS_RSA_EXPORT_WITH_DES40_CBC_SHA; - case 0x09: return TLS_RSA_WITH_DES_CBC_SHA; - case 0x0A: return TLS_RSA_WITH_3DES_EDE_CBC_SHA; - case 0x0B: return TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA; - case 0x0C: return TLS_DH_DSS_WITH_DES_CBC_SHA; - case 0x0D: return TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA; - case 0x0E: return TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA; - case 0x0F: return TLS_DH_RSA_WITH_DES_CBC_SHA; - case 0x10: return TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA; - case 0x11: return TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA; - case 0x12: return TLS_DHE_DSS_WITH_DES_CBC_SHA; - case 0x13: return TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA; - case 0x14: return TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA; - case 0x15: return TLS_DHE_RSA_WITH_DES_CBC_SHA; - case 0x16: return TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA; - case 0x2F: return TLS_RSA_WITH_AES_128_CBC_SHA; - case 0x30: return TLS_DH_DSS_WITH_AES_128_CBC_SHA; - case 0x31: return TLS_DH_RSA_WITH_AES_128_CBC_SHA; - case 0x32: return TLS_DHE_DSS_WITH_AES_128_CBC_SHA; - case 0x33: return TLS_DHE_RSA_WITH_AES_128_CBC_SHA; - case 0x35: return TLS_RSA_WITH_AES_256_CBC_SHA; - case 0x36: return TLS_DH_DSS_WITH_AES_256_CBC_SHA; - case 0x37: return TLS_DH_RSA_WITH_AES_256_CBC_SHA; - case 0x38: return TLS_DHE_DSS_WITH_AES_256_CBC_SHA; - case 0x39: return TLS_DHE_RSA_WITH_AES_256_CBC_SHA; - case 0x50: return TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA; - case 0x51: return TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA; - case 0x52: return TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA; - case 0x53: return TLS_SRP_SHA_WITH_AES_128_CBC_SHA; - case 0x54: return TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA; - case 0x55: return TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA; - case 0x56: return TLS_SRP_SHA_WITH_AES_256_CBC_SHA; - case 0x57: return TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA; - case 0x58: return TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA; - case 0x70: return TLS_DHE_DSS_WITH_CAST_128_CBC_SHA; - case 0x71: return TLS_DHE_DSS_WITH_CAST_128_CBC_RMD; - case 0x72: return TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD; - case 0x73: return TLS_DHE_DSS_WITH_AES_128_CBC_RMD; - case 0x74: return TLS_DHE_DSS_WITH_AES_256_CBC_RMD; - case 0x75: return TLS_DHE_RSA_WITH_CAST_128_CBC_SHA; - case 0x76: return TLS_DHE_RSA_WITH_CAST_128_CBC_RMD; - case 0x77: return TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD; - case 0x78: return TLS_DHE_RSA_WITH_AES_128_CBC_RMD; - case 0x79: return TLS_DHE_RSA_WITH_AES_256_CBC_RMD; - case 0x7A: return TLS_RSA_WITH_CAST_128_CBC_SHA; - case 0x7B: return TLS_RSA_WITH_CAST_128_CBC_RMD; - case 0x7C: return TLS_RSA_WITH_3DES_EDE_CBC_RMD; - case 0x7D: return TLS_RSA_WITH_AES_128_CBC_RMD; - case 0x7E: return TLS_RSA_WITH_AES_256_CBC_RMD; - } - } - return this; - } - - String getCipher() - { - return cipherName; - } - - int getKeyLength() - { - return keyLength; - } - - String getKeyExchange() - { - return kexName; - } - - String getSignature() - { - return sigName; - } - - String getMac() - { - return macName; - } - - boolean isExportable() - { - return exportable; - } - - boolean isStreamCipher() - { - return isStream; - } - - String getAuthType() - { - if (kexName.equals("RSA")) - { - if (isExportable()) - { - return "RSA_EXPORT"; - } - return "RSA"; - } - return kexName + "_" + sigName; - } - - byte[] getId() - { - return id; - } - - ProtocolVersion getVersion() - { - return version; - } - - public boolean equals(Object o) - { - if (!(o instanceof CipherSuite)) - { - return false; - } - if (o == this) - return true; - byte[] id = ((CipherSuite) o).getId(); - return id[0] == this.id[0] && - id[1] == this.id[1]; - } - - public int hashCode() - { - if (version == null) - { - return 0xFFFF0000 | (id[0] & 0xFF) << 8 | (id[1] & 0xFF); - } - return version.getMajor() << 24 | version.getMinor() << 16 - | (id[0] & 0xFF) << 8 | (id[1] & 0xFF); - } - - public String toString() - { - if (name == null) - { - return "UNKNOWN { " + (id[0] & 0xFF) + ", " + (id[1] & 0xFF) + " }"; - } - return name; - } -} +/* CipherSuite.java -- Supported cipher suites. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.java.security.action.GetSecurityPropertyAction; + +import java.io.IOException; +import java.io.OutputStream; + +import java.nio.ByteBuffer; + +import java.security.AccessController; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + +import javax.crypto.Cipher; +import javax.crypto.Mac; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.NullCipher; + +public final class CipherSuite implements Constructed +{ + + // Constants and fields. + // ------------------------------------------------------------------------- + + private static final List tlsSuiteNames = new LinkedList(); + private static final HashMap namesToSuites = new HashMap(); + + // Core TLS cipher suites. + public static final CipherSuite TLS_NULL_WITH_NULL_NULL = + new CipherSuite (CipherAlgorithm.NULL, + KeyExchangeAlgorithm.NONE, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.NULL, 0, 0x00, 0x00, + "TLS_NULL_WITH_NULL_NULL"); + public static final CipherSuite TLS_RSA_WITH_NULL_MD5 = + new CipherSuite (CipherAlgorithm.NULL, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.MD5, 0, 0x00, 0x01, + "TLS_RSA_WITH_NULL_MD5"); + public static final CipherSuite TLS_RSA_WITH_NULL_SHA = + new CipherSuite (CipherAlgorithm.NULL, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 0, 0x00, 0x02, + "TLS_RSA_WITH_NULL_SHA"); + public static final CipherSuite TLS_RSA_EXPORT_WITH_RC4_40_MD5 = + new CipherSuite (CipherAlgorithm.RC4, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.MD5, 5, 0x00, 0x03, + "TLS_RSA_EXPORT_WITH_RC4_40_MD5"); + public static final CipherSuite TLS_RSA_WITH_RC4_128_MD5 = + new CipherSuite (CipherAlgorithm.RC4, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.MD5, 16, 0x00, 0x04, + "TLS_RSA_WITH_RC4_128_MD5"); + public static final CipherSuite TLS_RSA_WITH_RC4_128_SHA = + new CipherSuite (CipherAlgorithm.RC4, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 16, 0x00, 0x05, + "TLS_RSA_WITH_RC4_128_SHA"); + public static final CipherSuite TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 5, 0x00, 0x08, + "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA"); + public static final CipherSuite TLS_RSA_WITH_DES_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 8, 0x00, 0x09, + "TLS_RSA_WITH_DES_CBC_SHA"); + public static final CipherSuite TLS_RSA_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 24, 0x00, 0x0A, + "TLS_RSA_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DH_DSS, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 5, 0x00, 0x0B, + "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"); + public static final CipherSuite TLS_DH_DSS_WITH_DES_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DH_DSS, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 8, 0x00, 0x0C, + "TLS_DH_DSS_WITH_DES_CBC_SHA"); + public static final CipherSuite TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.DH_DSS, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 24, 0x00, 0x0D, + "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DH_RSA, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 5, 0x00, 0x0E, + "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"); + public static final CipherSuite TLS_DH_RSA_WITH_DES_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DH_RSA, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 8, 0x00, 0x0F, + "TLS_DH_RSA_WITH_DES_CBC_SHA"); + public static final CipherSuite TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.DH_RSA, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 24, 0x00, 0x10, + "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DHE_DSS, true, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 5, 0x00, 0x11, + "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"); + public static final CipherSuite TLS_DHE_DSS_WITH_DES_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DHE_DSS, true, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 8, 0x00, 0x12, + "TLS_DHE_DSS_WITH_DES_CBC_SHA"); + public static final CipherSuite TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.DHE_DSS, true, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 24, 0x00, 0x13, + "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DHE_RSA, true, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 5, 0x00, 0x14, + "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"); + public static final CipherSuite TLS_DHE_RSA_WITH_DES_CBC_SHA = + new CipherSuite (CipherAlgorithm.DES, + KeyExchangeAlgorithm.DHE_RSA, true, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 8, 0x00, 0x15, + "TLS_DHE_RSA_WITH_DES_CBC_SHA"); + public static final CipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.DHE_RSA, true, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 24, 0x00, 0x16, + "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"); + + // AES CipherSuites. + public static final CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 16, 0x00, 0x2F, + "TLS_RSA_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DH_DSS, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x30, + "TLS_DH_DSS_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DH_RSA, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x31, + "TLS_DH_RSA_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DHE_DSS, true, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 16, 0x00, 0x32, + "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DHE_RSA, true, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 16, 0x00, 0x33, + "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 32, 0x00, 0x35, + "TLS_RSA_WITH_AES_256_CBC_SHA"); + public static final CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DH_DSS, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 32, 0x00, 0x36, + "TLS_DH_DSS_WITH_AES_256_CBC_SHA"); + public static final CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DH_RSA, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 32, 0x00, 0x37, + "TLS_DH_RSA_WITH_AES_256_CBC_SHA"); + public static final CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DHE_DSS, true, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 32, 0x00, 0x38, + "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"); + public static final CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DHE_RSA, true, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 32, 0x00, 0x39, + "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"); + + // Secure remote password (SRP) ciphersuites + // Actual ID values are TBD, so these are omitted until they are specified. + /*public static final CipherSuite TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 24, 0x00, 0x50, + "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 24, 0x00, 0x51, + "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 24, 0x00, 0x52, + "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x53, + "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 16, 0x00, 0x54, + "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 16, 0x00, 0x55, + "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 32, 0x00, 0x56, + "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 32, 0x00, 0x57, + "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"); + public static final CipherSuite TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.SRP, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 32, 0x00, 0x58, + "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA");*/ + + // Pre-shared key suites. + public static final CipherSuite TLS_PSK_WITH_RC4_128_SHA = + new CipherSuite(CipherAlgorithm.RC4, + KeyExchangeAlgorithm.PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x8A, + "TLS_PSK_WITH_RC4_128_SHA"); + public static final CipherSuite TLS_PSK_WITH_3DES_EDE_CBC_SHA = + new CipherSuite(CipherAlgorithm.DESede, + KeyExchangeAlgorithm.PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 24, 0x00, 0x8B, + "TLS_PSK_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_PSK_WITH_AES_128_CBC_SHA = + new CipherSuite(CipherAlgorithm.AES, + KeyExchangeAlgorithm.PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x8C, + "TLS_PSK_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_PSK_WITH_AES_256_CBC_SHA = + new CipherSuite(CipherAlgorithm.AES, + KeyExchangeAlgorithm.PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 32, 0x00, 0x8D, + "TLS_PSK_WITH_AES_256_CBC_SHA"); + + public static final CipherSuite TLS_DHE_PSK_WITH_RC4_128_SHA = + new CipherSuite(CipherAlgorithm.RC4, + KeyExchangeAlgorithm.DHE_PSK, true, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x8E, + "TLS_DHE_PSK_WITH_RC4_128_SHA"); + public static final CipherSuite TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = + new CipherSuite(CipherAlgorithm.DESede, + KeyExchangeAlgorithm.DHE_PSK, true, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 24, 0x00, 0x8F, + "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_DHE_PSK_WITH_AES_128_CBC_SHA = + new CipherSuite(CipherAlgorithm.AES, + KeyExchangeAlgorithm.DHE_PSK, true, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x90, + "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_DHE_PSK_WITH_AES_256_CBC_SHA = + new CipherSuite(CipherAlgorithm.AES, + KeyExchangeAlgorithm.DHE_PSK, true, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 32, 0x00, 0x91, + "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"); + + public static final CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA = + new CipherSuite(CipherAlgorithm.RC4, + KeyExchangeAlgorithm.RSA_PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x92, + "TLS_RSA_PSK_WITH_RC4_128_SHA"); + public static final CipherSuite TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = + new CipherSuite(CipherAlgorithm.DESede, + KeyExchangeAlgorithm.RSA_PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 24, 0x00, 0x93, + "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"); + public static final CipherSuite TLS_RSA_PSK_WITH_AES_128_CBC_SHA = + new CipherSuite(CipherAlgorithm.AES, + KeyExchangeAlgorithm.RSA_PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 16, 0x00, 0x94, + "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"); + public static final CipherSuite TLS_RSA_PSK_WITH_AES_256_CBC_SHA = + new CipherSuite(CipherAlgorithm.AES, + KeyExchangeAlgorithm.RSA_PSK, + SignatureAlgorithm.ANONYMOUS, + MacAlgorithm.SHA, 32, 0x00, 0x95, + "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"); + + // Ciphersuites from the OpenPGP extension draft. + // These disappeared from a more recent draft. +/* public static final CipherSuite TLS_DHE_DSS_WITH_CAST_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.CAST5, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.DSA, + MacAlgorithm.SHA, 16, 0x00, 0x70, + "TLS_DHE_DSS_WITH_CAST_128_CBC_SHA"); + public static final CipherSuite TLS_DHE_DSS_WITH_CAST_128_CBC_RMD = + new CipherSuite (CipherAlgorithm.CAST5, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.DSA, + MacAlgorithm.HMAC_RMD, 16, 0x00, 0x71, + "TLS_DHE_DSS_WITH_CAST_128_CBC_RMD"); + public static final CipherSuite TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.DSA, + MacAlgorithm.HMAC_RMD, 24, 0x00, 0x72, + "TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD"); + public static final CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_RMD = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.DSA, + MacAlgorithm.HMAC_RMD, 16, 0x00, 0x73, + "TLS_DHE_DSS_WITH_AES_128_CBC_RMD"); + public static final CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_RMD = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.DSA, + MacAlgorithm.HMAC_RMD, 32, 0x00, 0x74, + "TLS_DHE_DSS_WITH_AES_256_CBC_RMD"); + public static final CipherSuite TLS_DHE_RSA_WITH_CAST_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.CAST5, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 16, 0x00, 0x75, + "TLS_DHE_RSA_WITH_CAST_128_CBC_SHA"); + public static final CipherSuite TLS_DHE_RSA_WITH_CAST_128_CBC_RMD = + new CipherSuite (CipherAlgorithm.CAST5, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 16, 0x00, 0x76, + "TLS_DHE_RSA_WITH_CAST_128_CBC_RMD"); + public static final CipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 24, 0x00, 0x77, + "TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD"); + public static final CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_RMD = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 16, 0x00, 0x78, + "TLS_DHE_RSA_WITH_AES_128_CBC_RMD"); + public static final CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_RMD = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.DIFFIE_HELLMAN, true, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 32, 0x00, 0x79, + "TLS_DHE_RSA_WITH_AES_256_CBC_RMD"); + public static final CipherSuite TLS_RSA_WITH_CAST_128_CBC_SHA = + new CipherSuite (CipherAlgorithm.CAST5, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.SHA, 16, 0x00, 0x7A, + "TLS_RSA_WITH_CAST_128_CBC_SHA"); + public static final CipherSuite TLS_RSA_WITH_CAST_128_CBC_RMD = + new CipherSuite (CipherAlgorithm.CAST5, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 16, 0x00, 0x7B, + "TLS_RSA_WITH_CAST_128_CBC_RMD"); + public static final CipherSuite TLS_RSA_WITH_3DES_EDE_CBC_RMD = + new CipherSuite (CipherAlgorithm.DESede, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 24, 0x00, 0x7C, + "TLS_RSA_WITH_3DES_EDE_CBC_RMD"); + public static final CipherSuite TLS_RSA_WITH_AES_128_CBC_RMD = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 16, 0x00, 0x7D, + "TLS_RSA_WITH_AES_128_CBC_RMD"); + public static final CipherSuite TLS_RSA_WITH_AES_256_CBC_RMD = + new CipherSuite (CipherAlgorithm.AES, + KeyExchangeAlgorithm.RSA, + SignatureAlgorithm.RSA, + MacAlgorithm.HMAC_RMD, 32, 0x00, 0x7E, + "TLS_RSA_WITH_AES_256_CBC_RMD"); */ + + private final CipherAlgorithm cipherAlgorithm; + private final KeyExchangeAlgorithm keyExchangeAlgorithm; + private final SignatureAlgorithm signatureAlgorithm; + private final MacAlgorithm macAlgorithm; + private final boolean ephemeralDH; + private final boolean exportable; + private final boolean isStream; + private final int keyLength; + private final byte[] id; + private final String name; + private final boolean isResolved; + + // Constructors. + // ------------------------------------------------------------------------- + + private CipherSuite (final CipherAlgorithm cipherAlgorithm, + final KeyExchangeAlgorithm keyExchangeAlgorithm, + final SignatureAlgorithm signatureAlgorithm, + final MacAlgorithm macAlgorithm, + final int keyLength, + final int id1, + final int id2, + final String name) + { + this (cipherAlgorithm, keyExchangeAlgorithm, false, signatureAlgorithm, + macAlgorithm, keyLength, id1, id2, name); + } + + private CipherSuite (final CipherAlgorithm cipherAlgorithm, + final KeyExchangeAlgorithm keyExchangeAlgorithm, + final boolean ephemeralDH, + final SignatureAlgorithm signatureAlgorithm, + final MacAlgorithm macAlgorithm, + final int keyLength, + final int id1, + final int id2, + final String name) + { + this.cipherAlgorithm = cipherAlgorithm; + this.keyExchangeAlgorithm = keyExchangeAlgorithm; + this.ephemeralDH = ephemeralDH; + this.signatureAlgorithm = signatureAlgorithm; + this.macAlgorithm = macAlgorithm; + this.exportable = keyLength <= 5; + this.isStream = (cipherAlgorithm == CipherAlgorithm.NULL + || cipherAlgorithm == CipherAlgorithm.RC4); + this.keyLength = keyLength; + this.id = new byte[] { (byte) id1, (byte) id2 }; + this.name = name.intern(); + namesToSuites.put(name, this); + if (name.startsWith("TLS")) + { + tlsSuiteNames.add(name); + } + isResolved = true; + } + + private CipherSuite(byte[] id) + { + cipherAlgorithm = null; + keyExchangeAlgorithm = null; + signatureAlgorithm = null; + macAlgorithm = null; + ephemeralDH = false; + exportable = false; + isStream = false; + keyLength = 0; + this.id = id; + name = null; + isResolved = false; + } + + // Class methods. + // ------------------------------------------------------------------------- + + /** + * Returns the cipher suite for the given name, or null if there is no + * such suite. + * + * @return The named cipher suite. + */ + public static CipherSuite forName(String name) + { + if (name.startsWith("SSL_")) + name = "TLS_" + name.substring(4); + return namesToSuites.get(name); + } + + public static CipherSuite forValue(final short raw_value) + { + byte[] b = new byte[] { (byte) (raw_value >>> 8), (byte) raw_value }; + return new CipherSuite(b).resolve(); + } + + public static List availableSuiteNames() + { + return tlsSuiteNames; + } + + // Intance methods. + // ------------------------------------------------------------------------- + + public CipherAlgorithm cipherAlgorithm () + { + return cipherAlgorithm; + } + + public Cipher cipher () throws NoSuchAlgorithmException, NoSuchPaddingException + { + if (cipherAlgorithm == null) + throw new NoSuchAlgorithmException (toString () + ": unresolved cipher suite"); + if (cipherAlgorithm == CipherAlgorithm.NULL) + return new NullCipher (); + + String alg = null; + if (cipherAlgorithm == CipherAlgorithm.RC4) + alg = "RC4"; + else + alg = cipherAlgorithm + "/CBC/NoPadding"; + GetSecurityPropertyAction gspa = + new GetSecurityPropertyAction ("jessie.jce.provider"); + final String provider = (String) AccessController.doPrivileged (gspa); + if (provider != null) + { + try + { + return Cipher.getInstance (alg, provider); + } + catch (NoSuchProviderException nspe) + { + } + } + return Cipher.getInstance (alg); + } + + public MacAlgorithm macAlgorithm () + { + return macAlgorithm; + } + + public Mac mac(ProtocolVersion version) throws NoSuchAlgorithmException + { + if (macAlgorithm == null) + throw new NoSuchAlgorithmException(toString() + ": unresolved cipher suite"); + if (macAlgorithm == MacAlgorithm.NULL) + return null; + + String macAlg = null; + if (version == ProtocolVersion.SSL_3) + { + macAlg = "SSLv3HMac-" + macAlgorithm; + } + else + { + if (macAlgorithm == MacAlgorithm.MD5) + macAlg = "HMac-MD5"; + if (macAlgorithm == MacAlgorithm.SHA) + macAlg = "HMac-SHA1"; + } + + GetSecurityPropertyAction gspa = + new GetSecurityPropertyAction ("jessie.jce.provider"); + final String provider = AccessController.doPrivileged (gspa); + if (provider != null) + { + try + { + return Mac.getInstance(macAlg, provider); + } + catch (NoSuchProviderException nspe) + { + // Ignore; try any installed provider. + } + } + return Mac.getInstance(macAlg); + } + + public SignatureAlgorithm signatureAlgorithm () + { + return signatureAlgorithm; + } + + public KeyExchangeAlgorithm keyExchangeAlgorithm () + { + return keyExchangeAlgorithm; + } + + public boolean isEphemeralDH () + { + return ephemeralDH; + } + + public int length () + { + return 2; + } + + public void write(OutputStream out) throws IOException + { + out.write(id); + } + + public void put (final ByteBuffer buf) + { + buf.put (id); + } + + public CipherSuite resolve() + { + if (id[0] == 0x00) switch (id[1] & 0xFF) + { + case 0x00: return TLS_NULL_WITH_NULL_NULL; + case 0x01: return TLS_RSA_WITH_NULL_MD5; + case 0x02: return TLS_RSA_WITH_NULL_SHA; + case 0x03: return TLS_RSA_EXPORT_WITH_RC4_40_MD5; + case 0x04: return TLS_RSA_WITH_RC4_128_MD5; + case 0x05: return TLS_RSA_WITH_RC4_128_SHA; + case 0x08: return TLS_RSA_EXPORT_WITH_DES40_CBC_SHA; + case 0x09: return TLS_RSA_WITH_DES_CBC_SHA; + case 0x0A: return TLS_RSA_WITH_3DES_EDE_CBC_SHA; + case 0x0B: return TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA; + case 0x0C: return TLS_DH_DSS_WITH_DES_CBC_SHA; + case 0x0D: return TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA; + case 0x0E: return TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA; + case 0x0F: return TLS_DH_RSA_WITH_DES_CBC_SHA; + case 0x10: return TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA; + case 0x11: return TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA; + case 0x12: return TLS_DHE_DSS_WITH_DES_CBC_SHA; + case 0x13: return TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA; + case 0x14: return TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA; + case 0x15: return TLS_DHE_RSA_WITH_DES_CBC_SHA; + case 0x16: return TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA; + case 0x2F: return TLS_RSA_WITH_AES_128_CBC_SHA; + case 0x30: return TLS_DH_DSS_WITH_AES_128_CBC_SHA; + case 0x31: return TLS_DH_RSA_WITH_AES_128_CBC_SHA; + case 0x32: return TLS_DHE_DSS_WITH_AES_128_CBC_SHA; + case 0x33: return TLS_DHE_RSA_WITH_AES_128_CBC_SHA; + case 0x35: return TLS_RSA_WITH_AES_256_CBC_SHA; + case 0x36: return TLS_DH_DSS_WITH_AES_256_CBC_SHA; + case 0x37: return TLS_DH_RSA_WITH_AES_256_CBC_SHA; + case 0x38: return TLS_DHE_DSS_WITH_AES_256_CBC_SHA; + case 0x39: return TLS_DHE_RSA_WITH_AES_256_CBC_SHA; + /*case 0x50: return TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA; + case 0x51: return TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA; + case 0x52: return TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA; + case 0x53: return TLS_SRP_SHA_WITH_AES_128_CBC_SHA; + case 0x54: return TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA; + case 0x55: return TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA; + case 0x56: return TLS_SRP_SHA_WITH_AES_256_CBC_SHA; + case 0x57: return TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA; + case 0x58: return TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA; + case 0x70: return TLS_DHE_DSS_WITH_CAST_128_CBC_SHA; + case 0x71: return TLS_DHE_DSS_WITH_CAST_128_CBC_RMD; + case 0x72: return TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD; + case 0x73: return TLS_DHE_DSS_WITH_AES_128_CBC_RMD; + case 0x74: return TLS_DHE_DSS_WITH_AES_256_CBC_RMD; + case 0x75: return TLS_DHE_RSA_WITH_CAST_128_CBC_SHA; + case 0x76: return TLS_DHE_RSA_WITH_CAST_128_CBC_RMD; + case 0x77: return TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD; + case 0x78: return TLS_DHE_RSA_WITH_AES_128_CBC_RMD; + case 0x79: return TLS_DHE_RSA_WITH_AES_256_CBC_RMD; + case 0x7A: return TLS_RSA_WITH_CAST_128_CBC_SHA; + case 0x7B: return TLS_RSA_WITH_CAST_128_CBC_RMD; + case 0x7C: return TLS_RSA_WITH_3DES_EDE_CBC_RMD; + case 0x7D: return TLS_RSA_WITH_AES_128_CBC_RMD; + case 0x7E: return TLS_RSA_WITH_AES_256_CBC_RMD;*/ + case 0x8A: return TLS_PSK_WITH_RC4_128_SHA; + case 0x8B: return TLS_PSK_WITH_3DES_EDE_CBC_SHA; + case 0x8C: return TLS_PSK_WITH_AES_128_CBC_SHA; + case 0x8D: return TLS_PSK_WITH_AES_256_CBC_SHA; + case 0x8E: return TLS_DHE_PSK_WITH_RC4_128_SHA; + case 0x8F: return TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA; + case 0x90: return TLS_DHE_PSK_WITH_AES_128_CBC_SHA; + case 0x91: return TLS_DHE_PSK_WITH_AES_256_CBC_SHA; + case 0x92: return TLS_RSA_PSK_WITH_RC4_128_SHA; + case 0x93: return TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA; + case 0x94: return TLS_RSA_PSK_WITH_AES_128_CBC_SHA; + case 0x95: return TLS_RSA_PSK_WITH_AES_256_CBC_SHA; + } + return this; + } + + public boolean isResolved() + { + return isResolved; + } + + public int keyLength() + { + return keyLength; + } + + public boolean isExportable() + { + return exportable; + } + + public boolean isStreamCipher() + { + return isStream; + } + +// String getAuthType() +// { +// if (keyExchangeAlgorithm == KeyExchangeAlgorithm.RSA) +// { +// if (isExportable()) +// { +// return "RSA_EXPORT"; +// } +// return "RSA"; +// } +// return kexName + "_" + sigName; +// } + + public byte[] id() + { + return id; + } + + public boolean equals(Object o) + { + if (!(o instanceof CipherSuite)) + { + return false; + } + if (o == this) + return true; + byte[] id = ((CipherSuite) o).id(); + return (id[0] == this.id[0] && + id[1] == this.id[1]); + } + + public int hashCode() + { + return 0xFFFF0000 | (id[0] & 0xFF) << 8 | (id[1] & 0xFF); + } + + public String toString (String prefix) + { + return toString (); + } + + public String toString() + { + if (name == null) + { + return "{ " + (id[0] & 0xFF) + ", " + (id[1] & 0xFF) + " }"; + } + return name; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java b/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java new file mode 100644 index 00000000000..0e96b31443a --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java @@ -0,0 +1,283 @@ +/* CipherSuiteList.java -- A list of cipher suites. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; +import java.util.ConcurrentModificationException; +import java.util.ListIterator; +import java.util.NoSuchElementException; + +public final class CipherSuiteList implements Iterable +{ + private final ByteBuffer buffer; + private final ProtocolVersion version; + private int modCount; + + public CipherSuiteList (final ByteBuffer buffer) + { + this (buffer, ProtocolVersion.SSL_3); + } + + public CipherSuiteList (final ByteBuffer buffer, final ProtocolVersion version) + { + this.version = version; + this.buffer = buffer; + modCount = 0; + } + + /** + * Return the number of elements in this list. + * + * @return The size of this list. + */ + public int size () + { + return (buffer.getShort (0) & 0xFFFF) >>> 1; + } + + /** + * Get the cipher suite at the specified index. + * + * @param index The index of the suite to get. + * @return The cipher suite at that index. + * @throws IndexOutOfBoundsException If the index is negative or is + * not less than {@link size()}. + */ + public CipherSuite get (final int index) + { + int size = size (); + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException ("limit: " + size + + "; requested: " + index); + return CipherSuite.forValue(buffer.getShort(2 + (index << 1))).resolve(); + } + + /** + * Set the CipherSuite at the specified index. The list must have + * sufficient size to hold the element (that is, index <= + * size ()). + * + * @param index The index to put the suite. + * @param suite The CipherSuite object. + * @throws IndexOutOfBoundsException If index is not + * less than @{link #size()}, or if it is negative. + * @throws NullPointerException If suite is + * null. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writable. + */ + public void put (final int index, final CipherSuite suite) + { + int size = size (); + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException ("limit: " + size + + "; requested: " + index); + buffer.position (2 + (index << 1)); + buffer.put (suite.id ()); + modCount++; + } + + /** + * Sets the size of this list. You must call this if you are adding + * elements to the list; calling {@link + * #put(int,gnu.jessie.provider.CipherSuite)} does not expand the + * list size (the same goes for removing elements, as there is no + * remove method). + * + * @param newSize The new size of this list. + * @throws IllegalArgumentException If the new size is negative or + * greater than 32767, or if there is insufficient space for that + * many elements in the underlying buffer. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writable. + */ + public void setSize (final int newSize) + { + if (newSize < 0 || newSize > 32767) + throw new IllegalArgumentException ("size must be between 0 and 32767"); + if ((newSize << 1) + 2 > buffer.capacity ()) + throw new IllegalArgumentException ("limit: " + buffer.capacity () + + "; requested: " + newSize); + buffer.putShort (0, (short) (newSize << 1)); + modCount++; + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) + out.print (prefix); + out.print ("["); + out.print (size ()); + out.println ("] {"); + for (Iterator it = new Iterator (); it.hasNext (); ) + { + CipherSuite suite = (CipherSuite) it.next (); + if (prefix != null) + out.print (prefix); + out.print (" "); + out.print (suite); + if (it.hasNext ()) + out.print (","); + out.println (); + } + if (prefix != null) + out.print (prefix); + out.print ("};"); + return str.toString (); + } + + public boolean equals (Object o) + { + if (!(o instanceof CipherSuiteList)) + return false; + CipherSuiteList that = (CipherSuiteList) o; + + if (size () != that.size ()) + return false; + + for (Iterator it1 = new Iterator (), it2 = that.new Iterator (); + it1.hasNext () && it2.hasNext (); ) + { + if (!it1.next ().equals (it2.next ())) + return false; + } + return true; + } + + public java.util.Iterator iterator () + { + return new Iterator (); + } + + /** + * An iterator for the elements in this list. The iterator supports + * only the set method out of the optional methods, + * because elements in a CipherSuiteList may not be removed or + * added; only the size of the list can be changed, and elements at + * a specific index changed. + */ + public class Iterator implements ListIterator + { + private final int modCount; + private int index; + + Iterator () + { + this.modCount = CipherSuiteList.this.modCount; + index = 0; + } + + public void add (CipherSuite cs) + { + throw new UnsupportedOperationException (); + } + + public boolean hasNext () + { + return (index < size ()); + } + + public boolean hasPrevious () + { + return (index > 0); + } + + public CipherSuite next () throws NoSuchElementException + { + if (modCount != CipherSuiteList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException (); + } + } + + public int nextIndex () + { + if (hasNext ()) + return (index + 1); + return -1; + } + + public CipherSuite previous () throws NoSuchElementException + { + if (index == 0) + throw new NoSuchElementException (); + if (modCount != CipherSuiteList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (--index); + } + catch (IndexOutOfBoundsException ioobe) // on empty list + { + throw new NoSuchElementException (); + } + } + + public int previousIndex () + { + return (index - 1); + } + + public void remove () + { + throw new UnsupportedOperationException (); + } + + public void set (final CipherSuite cs) + { + put (index, cs); + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java new file mode 100644 index 00000000000..1a1886b888c --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java @@ -0,0 +1,227 @@ +/* ClientCertificateTypeList.java -- A list of certificate types. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.provider.CertificateRequest.ClientCertificateType; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; + +import java.util.ConcurrentModificationException; +import java.util.ListIterator; +import java.util.NoSuchElementException; + +public class ClientCertificateTypeList implements Iterable +{ + private final ByteBuffer buffer; + private int modCount; + + public ClientCertificateTypeList (final ByteBuffer buffer) + { + this.buffer = buffer; + modCount = 0; + } + + public int size () + { + return (buffer.get (0) & 0xFF); + } + + public CertificateRequest.ClientCertificateType get (final int index) + { + int size = size (); + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException ("limit: " + size + + "; requested: " + index); + return CertificateRequest.ClientCertificateType.forValue + (buffer.get (index + 1) & 0xFF); + } + + public java.util.Iterator iterator() + { + return new Iterator(); + } + + public void put (final int index, final CertificateRequest.ClientCertificateType type) + { + int size = size (); + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException ("limit: " + size + + "; requested: " + index); + buffer.put (index + 1, (byte) type.getValue ()); + modCount++; + } + + public void setSize (final int newSize) + { + if (newSize < 0 || newSize > 255) + throw new IllegalArgumentException ("size must be between 0 and 255"); + if (newSize + 1 > buffer.capacity ()) + throw new IllegalArgumentException ("limit: " + (buffer.capacity () - 1) + + "; requested: " + newSize); + buffer.put (0, (byte) newSize); + modCount++; + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) out.print (prefix); + out.print ("["); + out.print (size ()); + out.println ("] {"); + for (Iterator it = new Iterator (); it.hasNext (); ) + { + if (prefix != null) out.print (prefix); + out.print (" "); + out.print (it.next ()); + if (it.hasNext ()) + out.print (","); + out.println (); + } + if (prefix != null) out.print (prefix); + out.println ("};"); + return str.toString (); + } + + public boolean equals (Object o) + { + if (!(o instanceof ClientCertificateTypeList)) + return false; + ClientCertificateTypeList that = (ClientCertificateTypeList) o; + + if (size () != that.size ()) + return false; + + for (Iterator it1 = new Iterator (), it2 = that.new Iterator (); + it1.hasNext () && it2.hasNext (); ) + { + if (!it1.next ().equals (it2.next ())) + return false; + } + return true; + } + + public class Iterator implements ListIterator + { + private int index; + private final int modCount; + + Iterator () + { + index = 0; + modCount = ClientCertificateTypeList.this.modCount; + } + + public void add (CertificateRequest.ClientCertificateType type) + { + throw new UnsupportedOperationException (); + } + + public boolean hasNext () + { + return (index < size ()); + } + + public boolean hasPrevious () + { + return (index > 0); + } + + public CertificateRequest.ClientCertificateType next () throws NoSuchElementException + { + if (modCount != ClientCertificateTypeList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException (); + } + } + + public int nextIndex () + { + if (hasNext ()) + return (index + 1); + return -1; + } + + public CertificateRequest.ClientCertificateType previous () throws NoSuchElementException + { + if (index == 0) + throw new NoSuchElementException (); + if (modCount != ClientCertificateTypeList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (--index); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException (); + } + } + + public int previousIndex () + { + return (index - 1); + } + + public void remove () + { + throw new UnsupportedOperationException (); + } + + public void set (final CertificateRequest.ClientCertificateType type) + { + put (index, type); + } + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java new file mode 100644 index 00000000000..e63e03c0aa7 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java @@ -0,0 +1,122 @@ +/* ClientDHE_PSKParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; +import java.nio.charset.Charset; + +/** + *
    +      struct {
    +          select (KeyExchangeAlgorithm) {
    +              /* other cases for rsa, diffie_hellman, etc. */
    +              case diffie_hellman_psk:   /* NEW */
    +                  opaque psk_identity<0..2^16-1>;
    +                  ClientDiffieHellmanPublic public;
    +          } exchange_keys;
    +      } ClientKeyExchange;
    + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ClientDHE_PSKParameters extends ExchangeKeys implements Builder, Constructed +{ + public ClientDHE_PSKParameters(ByteBuffer buffer) + { + super(buffer); + } + + public ClientDHE_PSKParameters(String identity, ClientDiffieHellmanPublic dh) + { + super(null); + Charset utf8 = Charset.forName("UTF-8"); + ByteBuffer idBuf = utf8.encode(identity); + buffer = ByteBuffer.allocate(2 + idBuf.remaining() + dh.length()); + buffer.putShort((short) idBuf.remaining()); + buffer.put(idBuf); + buffer.put(dh.buffer()); + buffer.rewind(); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().rewind().limit(length()); + } + + private int identityLength() + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + + public String identity() + { + Charset utf8 = Charset.forName("UTF-8"); + return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit + (identityLength())).toString(); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#length() + */ + public int length() + { + int length = (buffer.getShort(0) & 0xFFFF) + 2; + // XXX always explicit? + length += (buffer.getShort(length) & 0xFFFF) + 2; + return length; + } + + public ClientDiffieHellmanPublic params() + { + return new ClientDiffieHellmanPublic(((ByteBuffer) buffer.duplicate() + .position(identityLength()).limit(length())).slice()); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) + */ + public String toString(String prefix) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java new file mode 100644 index 00000000000..8af8b850ba2 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java @@ -0,0 +1,129 @@ +/* ClientDiffieHellmanPublic.java -- Client Diffie-Hellman value. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.math.BigInteger; + +import java.nio.ByteBuffer; + +/** + * The client's explicit Diffie Hellman value. + * + *
    +struct {
    +  select (PublicValueEncoding) {
    +    case implicit: struct { };
    +    case explicit: opaque dh_Yc<1..2^16-1>;
    +  } dh_public;
    +} ClientDiffieHellmanPublic;
    + */ +public class ClientDiffieHellmanPublic extends ExchangeKeys implements Builder +{ + public ClientDiffieHellmanPublic(final ByteBuffer buffer) + { + super(buffer); + } + + public ClientDiffieHellmanPublic(final BigInteger Yc) + { + super(wrap(Yc)); + } + + private static ByteBuffer wrap(BigInteger Yc) + { + byte[] b = Util.trim(Yc); + ByteBuffer ret = ByteBuffer.allocate(b.length + 2); + ret.putShort((short) b.length); + ret.put(b); + return (ByteBuffer) ret.rewind(); + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().rewind().limit(length()); + } + + public BigInteger publicValue() + { + int len = length() - 2; + byte[] b = new byte[len]; + buffer.position(2); + buffer.get(b); + buffer.rewind(); + return new BigInteger(1, b); + } + + public void setPublicValue(final BigInteger Yc) + { + byte[] buf = Util.trim(Yc); + if (buffer.capacity() < buf.length + 2) + buffer = ByteBuffer.allocate(buf.length + 2); + buffer.putShort((short) buf.length); + buffer.put(buf); + buffer.rewind(); + } + + public int length () + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) out.print (prefix); + out.println ("struct {"); + if (prefix != null) out.print (prefix); + out.print (" dh_Yc = "); + out.print (publicValue ().toString (16)); + out.println (';'); + if (prefix != null) out.print (prefix); + out.print ("} ClientDiffieHellmanPublic;"); + return str.toString (); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java new file mode 100644 index 00000000000..059b165a67d --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java @@ -0,0 +1,1150 @@ +/* ClientHandshake.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import static gnu.javax.net.ssl.provider.ClientHandshake.State.*; +import static gnu.javax.net.ssl.provider.KeyExchangeAlgorithm.*; + +import gnu.classpath.debug.Component; +import gnu.java.security.action.GetSecurityPropertyAction; +import gnu.javax.crypto.key.dh.GnuDHPublicKey; +import gnu.javax.net.ssl.AbstractSessionContext; +import gnu.javax.net.ssl.Session; +import gnu.javax.net.ssl.provider.Alert.Description; +import gnu.javax.net.ssl.provider.Alert.Level; +import gnu.javax.net.ssl.provider.CertificateRequest.ClientCertificateType; +import gnu.javax.net.ssl.provider.ServerNameList.NameType; +import gnu.javax.net.ssl.provider.ServerNameList.ServerName; + +import java.nio.ByteBuffer; +import java.security.AccessController; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.KeyManagementException; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.SignatureException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.security.interfaces.RSAPublicKey; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.zip.Deflater; +import java.util.zip.Inflater; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.interfaces.DHPrivateKey; +import javax.crypto.interfaces.DHPublicKey; +import javax.crypto.spec.DHParameterSpec; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLPeerUnverifiedException; +import javax.net.ssl.X509ExtendedKeyManager; +import javax.net.ssl.SSLEngineResult.HandshakeStatus; +import javax.security.auth.x500.X500Principal; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class ClientHandshake extends AbstractHandshake +{ + static enum State + { + WRITE_CLIENT_HELLO (false, true), + READ_SERVER_HELLO (true, false), + READ_CERTIFICATE (true, false), + READ_SERVER_KEY_EXCHANGE (true, false), + READ_CERTIFICATE_REQUEST (true, false), + READ_SERVER_HELLO_DONE (true, false), + WRITE_CERTIFICATE (false, true), + WRITE_CLIENT_KEY_EXCHANGE (false, true), + WRITE_CERTIFICATE_VERIFY (false, true), + WRITE_FINISHED (false, true), + READ_FINISHED (true, false), + DONE (false, false); + + private final boolean isWriteState; + private final boolean isReadState; + + private State(boolean isReadState, boolean isWriteState) + { + this.isReadState = isReadState; + this.isWriteState = isWriteState; + } + + boolean isReadState() + { + return isReadState; + } + + boolean isWriteState() + { + return isWriteState; + } + } + + private State state; + private ByteBuffer outBuffer; + private boolean continuedSession; + private SessionImpl continued; + private KeyPair dhPair; + private String keyAlias; + private PrivateKey privateKey; + private MaxFragmentLength maxFragmentLengthSent; + private boolean truncatedHMacSent; + private ProtocolVersion sentVersion; + + // Delegated tasks. + private CertVerifier certVerifier; + private ParamsVerifier paramsVerifier; + private DelegatedTask keyExchange; + private CertLoader certLoader; + private GenCertVerify genCertVerify; + + public ClientHandshake(SSLEngineImpl engine) throws NoSuchAlgorithmException + { + super(engine); + state = WRITE_CLIENT_HELLO; + continuedSession = false; + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.AbstractHandshake#implHandleInput() + */ + @Override protected HandshakeStatus implHandleInput() throws SSLException + { + if (state == DONE) + return HandshakeStatus.FINISHED; + + if (state.isWriteState() + || (outBuffer != null && outBuffer.hasRemaining())) + return HandshakeStatus.NEED_WRAP; + + // Copy the current buffer, and prepare it for reading. + ByteBuffer buffer = handshakeBuffer.duplicate (); + buffer.flip(); + buffer.position(handshakeOffset); + + Handshake handshake = new Handshake(buffer.slice(), + engine.session().suite, + engine.session().version); + + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "processing in state {0}:\n{1}", + state, handshake); + + switch (state) + { + // Server Hello. + case READ_SERVER_HELLO: + { + if (handshake.type() != Handshake.Type.SERVER_HELLO) + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.UNEXPECTED_MESSAGE)); + ServerHello hello = (ServerHello) handshake.body(); + serverRandom = hello.random().copy(); + engine.session().suite = hello.cipherSuite(); + engine.session().version = hello.version(); + compression = hello.compressionMethod(); + Session.ID serverId = new Session.ID(hello.sessionId()); + if (continued != null + && continued.id().equals(serverId)) + { + continuedSession = true; + engine.setSession(continued); + } + else if (engine.getEnableSessionCreation()) + { + ((AbstractSessionContext) engine.contextImpl + .engineGetClientSessionContext()).put(engine.session()); + } + ExtensionList extensions = hello.extensions(); + if (extensions != null) + { + for (Extension extension : extensions) + { + Extension.Type type = extension.type(); + if (type == null) + continue; + switch (type) + { + case MAX_FRAGMENT_LENGTH: + MaxFragmentLength mfl + = (MaxFragmentLength) extension.value(); + if (maxFragmentLengthSent == mfl) + engine.session().setApplicationBufferSize(mfl.maxLength()); + break; + + case TRUNCATED_HMAC: + if (truncatedHMacSent) + engine.session().setTruncatedMac(true); + break; + } + } + } + + KeyExchangeAlgorithm kex = engine.session().suite.keyExchangeAlgorithm(); + if (continuedSession) + { + byte[][] keys = generateKeys(clientRandom, serverRandom, + engine.session()); + setupSecurityParameters(keys, true, engine, compression); + state = READ_FINISHED; + } + else if (kex == RSA || kex == DH_DSS || kex == DH_RSA + || kex == DHE_DSS || kex == DHE_RSA || kex == RSA_PSK) + state = READ_CERTIFICATE; + else if (kex == DH_anon || kex == PSK || kex == DHE_PSK) + state = READ_SERVER_KEY_EXCHANGE; + else + state = READ_CERTIFICATE_REQUEST; + } + break; + + // Server Certificate. + case READ_CERTIFICATE: + { + if (handshake.type() != Handshake.Type.CERTIFICATE) + { + // We need a certificate for non-anonymous suites. + if (engine.session().suite.signatureAlgorithm() != SignatureAlgorithm.ANONYMOUS) + throw new AlertException(new Alert(Level.FATAL, + Description.UNEXPECTED_MESSAGE)); + state = READ_SERVER_KEY_EXCHANGE; + } + Certificate cert = (Certificate) handshake.body(); + X509Certificate[] chain = null; + try + { + chain = cert.certificates().toArray(new X509Certificate[0]); + } + catch (CertificateException ce) + { + throw new AlertException(new Alert(Level.FATAL, + Description.BAD_CERTIFICATE), + ce); + } + catch (NoSuchAlgorithmException nsae) + { + throw new AlertException(new Alert(Level.FATAL, + Description.UNSUPPORTED_CERTIFICATE), + nsae); + } + engine.session().setPeerCertificates(chain); + certVerifier = new CertVerifier(true, chain); + tasks.add(certVerifier); + + // If we are doing an RSA key exchange, generate our parameters. + KeyExchangeAlgorithm kea = engine.session().suite.keyExchangeAlgorithm(); + if (kea == RSA || kea == RSA_PSK) + { + keyExchange = new RSAGen(kea == RSA); + tasks.add(keyExchange); + if (kea == RSA) + state = READ_CERTIFICATE_REQUEST; + else + state = READ_SERVER_KEY_EXCHANGE; + } + else + state = READ_SERVER_KEY_EXCHANGE; + } + break; + + // Server Key Exchange. + case READ_SERVER_KEY_EXCHANGE: + { + CipherSuite s = engine.session().suite; + KeyExchangeAlgorithm kexalg = s.keyExchangeAlgorithm(); + // XXX also SRP. + if (kexalg != DHE_DSS && kexalg != DHE_RSA && kexalg != DH_anon + && kexalg != DHE_PSK && kexalg != PSK && kexalg != RSA_PSK) + throw new AlertException(new Alert(Level.FATAL, + Description.UNEXPECTED_MESSAGE)); + + if (handshake.type() != Handshake.Type.SERVER_KEY_EXCHANGE) + { + if (kexalg != RSA_PSK && kexalg != PSK) + throw new AlertException(new Alert(Level.FATAL, + Description.UNEXPECTED_MESSAGE)); + state = READ_CERTIFICATE_REQUEST; + return HandshakeStatus.NEED_UNWRAP; + } + + ServerKeyExchange skex = (ServerKeyExchange) handshake.body(); + ByteBuffer paramsBuffer = null; + if (kexalg == DHE_DSS || kexalg == DHE_RSA || kexalg == DH_anon) + { + ServerDHParams dhParams = (ServerDHParams) skex.params(); + ByteBuffer b = dhParams.buffer(); + paramsBuffer = ByteBuffer.allocate(b.remaining()); + paramsBuffer.put(b); + } + + if (s.signatureAlgorithm() != SignatureAlgorithm.ANONYMOUS) + { + byte[] signature = skex.signature().signature(); + paramsVerifier = new ParamsVerifier(paramsBuffer, signature); + tasks.add(paramsVerifier); + } + + if (kexalg == DHE_DSS || kexalg == DHE_RSA || kexalg == DH_anon) + { + ServerDHParams dhParams = (ServerDHParams) skex.params(); + DHPublicKey serverKey = new GnuDHPublicKey(null, + dhParams.p(), + dhParams.g(), + dhParams.y()); + DHParameterSpec params = new DHParameterSpec(dhParams.p(), + dhParams.g()); + keyExchange = new ClientDHGen(serverKey, params, true); + tasks.add(keyExchange); + } + if (kexalg == DHE_PSK) + { + ServerDHE_PSKParameters pskParams = (ServerDHE_PSKParameters) + skex.params(); + ServerDHParams dhParams = pskParams.params(); + DHPublicKey serverKey = new GnuDHPublicKey(null, + dhParams.p(), + dhParams.g(), + dhParams.y()); + DHParameterSpec params = new DHParameterSpec(dhParams.p(), + dhParams.g()); + keyExchange = new ClientDHGen(serverKey, params, false); + tasks.add(keyExchange); + } + state = READ_CERTIFICATE_REQUEST; + } + break; + + // Certificate Request. + case READ_CERTIFICATE_REQUEST: + { + if (handshake.type() != Handshake.Type.CERTIFICATE_REQUEST) + { + state = READ_SERVER_HELLO_DONE; + return HandshakeStatus.NEED_UNWRAP; + } + + CertificateRequest req = (CertificateRequest) handshake.body(); + ClientCertificateTypeList types = req.types(); + LinkedList typeList = new LinkedList(); + for (ClientCertificateType t : types) + typeList.add(t.name()); + + X500PrincipalList issuers = req.authorities(); + LinkedList issuerList = new LinkedList(); + for (X500Principal p : issuers) + issuerList.add(p); + + certLoader = new CertLoader(typeList, issuerList); + tasks.add(certLoader); + } + break; + + // Server Hello Done. + case READ_SERVER_HELLO_DONE: + { + if (handshake.type() != Handshake.Type.SERVER_HELLO_DONE) + throw new AlertException(new Alert(Level.FATAL, + Description.UNEXPECTED_MESSAGE)); + state = WRITE_CERTIFICATE; + } + break; + + // Finished. + case READ_FINISHED: + { + if (handshake.type() != Handshake.Type.FINISHED) + throw new AlertException(new Alert(Level.FATAL, + Description.UNEXPECTED_MESSAGE)); + + Finished serverFinished = (Finished) handshake.body(); + MessageDigest md5copy = null; + MessageDigest shacopy = null; + try + { + md5copy = (MessageDigest) md5.clone(); + shacopy = (MessageDigest) sha.clone(); + } + catch (CloneNotSupportedException cnse) + { + // We're improperly configured to use a non-cloneable + // md5/sha-1, OR there's a runtime bug. + throw new SSLException(cnse); + } + Finished clientFinished = + new Finished(generateFinished(md5copy, shacopy, + false, engine.session()), + engine.session().version); + + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "clientFinished: {0}", + clientFinished); + + if (engine.session().version == ProtocolVersion.SSL_3) + { + if (!Arrays.equals(clientFinished.md5Hash(), + serverFinished.md5Hash()) + || !Arrays.equals(clientFinished.shaHash(), + serverFinished.shaHash())) + { + engine.session().invalidate(); + throw new SSLException("session verify failed"); + } + } + else + { + if (!Arrays.equals(clientFinished.verifyData(), + serverFinished.verifyData())) + { + engine.session().invalidate(); + throw new SSLException("session verify failed"); + } + } + + if (continuedSession) + { + engine.changeCipherSpec(); + state = WRITE_FINISHED; + } + else + state = DONE; + } + break; + + default: + throw new IllegalStateException("invalid state: " + state); + } + + handshakeOffset += handshake.length() + 4; + + if (!tasks.isEmpty()) + return HandshakeStatus.NEED_TASK; + if (state.isWriteState() + || (outBuffer != null && outBuffer.hasRemaining())) + return HandshakeStatus.NEED_WRAP; + if (state.isReadState()) + return HandshakeStatus.NEED_UNWRAP; + + return HandshakeStatus.FINISHED; + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.AbstractHandshake#implHandleOutput(java.nio.ByteBuffer) + */ + @Override protected HandshakeStatus implHandleOutput(ByteBuffer fragment) + throws SSLException + { + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "output to {0}; state:{1}; outBuffer:{2}", + fragment, state, outBuffer); + + // Drain the output buffer, if it needs it. + if (outBuffer != null && outBuffer.hasRemaining()) + { + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + } + + if (!fragment.hasRemaining()) + { + if (state.isWriteState() || outBuffer.hasRemaining()) + return HandshakeStatus.NEED_WRAP; + else + return HandshakeStatus.NEED_UNWRAP; + } + +outer_loop: + while (fragment.remaining() >= 4 && state.isWriteState()) + { + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "loop state={0}", state); + + switch (state) + { + case WRITE_CLIENT_HELLO: + { + ClientHelloBuilder hello = new ClientHelloBuilder(); + AbstractSessionContext ctx = (AbstractSessionContext) + engine.contextImpl.engineGetClientSessionContext(); + continued = (SessionImpl) ctx.getSession(engine.getPeerHost(), + engine.getPeerPort()); + engine.session().setId(new Session.ID(new byte[0])); + Session.ID sid = engine.session().id(); + // If we have a session that we may want to continue, send + // that ID. + if (continued != null) + sid = continued.id(); + + hello.setSessionId(sid.id()); + sentVersion = chooseVersion(); + hello.setVersion(sentVersion); + hello.setCipherSuites(getSuites()); + hello.setCompressionMethods(getCompressionMethods()); + Random r = hello.random(); + r.setGmtUnixTime(Util.unixTime()); + byte[] nonce = new byte[28]; + engine.session().random().nextBytes(nonce); + r.setRandomBytes(nonce); + clientRandom = r.copy(); + if (enableExtensions()) + { + List extensions = new LinkedList(); + MaxFragmentLength fraglen = maxFragmentLength(); + if (fraglen != null) + { + extensions.add(new Extension(Extension.Type.MAX_FRAGMENT_LENGTH, + fraglen)); + maxFragmentLengthSent = fraglen; + } + + String host = engine.getPeerHost(); + if (host != null) + { + ServerName name + = new ServerName(NameType.HOST_NAME, host); + ServerNameList names + = new ServerNameList(Collections.singletonList(name)); + extensions.add(new Extension(Extension.Type.SERVER_NAME, + names)); + } + + if (truncatedHMac()) + { + extensions.add(new Extension(Extension.Type.TRUNCATED_HMAC, + new TruncatedHMAC())); + truncatedHMacSent = true; + } + + ExtensionList elist = new ExtensionList(extensions); + hello.setExtensions(elist.buffer()); + } + else + hello.setDisableExtensions(true); + + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "{0}", hello); + + fragment.putInt((Handshake.Type.CLIENT_HELLO.getValue() << 24) + | (hello.length() & 0xFFFFFF)); + outBuffer = hello.buffer(); + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate() + .limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + state = READ_SERVER_HELLO; + } + break; + + case WRITE_CERTIFICATE: + { + java.security.cert.Certificate[] chain + = engine.session().getLocalCertificates(); + if (chain != null) + { + CertificateBuilder cert + = new CertificateBuilder(CertificateType.X509); + try + { + cert.setCertificates(Arrays.asList(chain)); + } + catch (CertificateException ce) + { + throw new AlertException(new Alert(Level.FATAL, + Description.INTERNAL_ERROR), + ce); + } + + outBuffer = cert.buffer(); + + fragment.putInt((Handshake.Type.CERTIFICATE.getValue() << 24) + | (cert.length() & 0xFFFFFF)); + + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate() + .limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + } + state = WRITE_CLIENT_KEY_EXCHANGE; + } + break; + + case WRITE_CLIENT_KEY_EXCHANGE: + { + KeyExchangeAlgorithm kea = engine.session().suite.keyExchangeAlgorithm(); + ClientKeyExchangeBuilder ckex + = new ClientKeyExchangeBuilder(engine.session().suite, + engine.session().version); + if (kea == DHE_DSS || kea == DHE_RSA || kea == DH_anon + || kea == DH_DSS || kea == DH_RSA) + { + assert(dhPair != null); + DHPublicKey pubkey = (DHPublicKey) dhPair.getPublic(); + ClientDiffieHellmanPublic pub + = new ClientDiffieHellmanPublic(pubkey.getY()); + ckex.setExchangeKeys(pub.buffer()); + } + if (kea == RSA || kea == RSA_PSK) + { + assert(keyExchange instanceof RSAGen); + assert(keyExchange.hasRun()); + if (keyExchange.thrown() != null) + throw new AlertException(new Alert(Level.FATAL, + Description.HANDSHAKE_FAILURE), + keyExchange.thrown()); + EncryptedPreMasterSecret epms + = new EncryptedPreMasterSecret(((RSAGen) keyExchange).encryptedSecret(), + engine.session().version); + if (kea == RSA) + ckex.setExchangeKeys(epms.buffer()); + else + { + String identity = getPSKIdentity(); + if (identity == null) + throw new SSLException("no pre-shared-key identity;" + + " set the security property" + + " \"jessie.client.psk.identity\""); + ClientRSA_PSKParameters params = + new ClientRSA_PSKParameters(identity, epms.buffer()); + ckex.setExchangeKeys(params.buffer()); + generatePSKSecret(identity, preMasterSecret, true); + } + } + if (kea == DHE_PSK) + { + assert(keyExchange instanceof ClientDHGen); + assert(dhPair != null); + String identity = getPSKIdentity(); + if (identity == null) + throw new SSLException("no pre-shared key identity; set" + + " the security property" + + " \"jessie.client.psk.identity\""); + DHPublicKey pubkey = (DHPublicKey) dhPair.getPublic(); + ClientDHE_PSKParameters params = + new ClientDHE_PSKParameters(identity, + new ClientDiffieHellmanPublic(pubkey.getY())); + ckex.setExchangeKeys(params.buffer()); + generatePSKSecret(identity, preMasterSecret, true); + } + if (kea == PSK) + { + String identity = getPSKIdentity(); + if (identity == null) + throw new SSLException("no pre-shared key identity; set" + + " the security property" + + " \"jessie.client.psk.identity\""); + generatePSKSecret(identity, null, true); + ClientPSKParameters params = new ClientPSKParameters(identity); + ckex.setExchangeKeys(params.buffer()); + } + if (kea == NONE) + { + Inflater inflater = null; + Deflater deflater = null; + if (compression == CompressionMethod.ZLIB) + { + inflater = new Inflater(); + deflater = new Deflater(); + } + inParams = new InputSecurityParameters(null, null, inflater, + engine.session(), + engine.session().suite); + outParams = new OutputSecurityParameters(null, null, deflater, + engine.session(), + engine.session().suite); + engine.session().privateData.masterSecret = new byte[0]; + } + + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "{0}", ckex); + + outBuffer = ckex.buffer(); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "client kex buffer {0}", outBuffer); + fragment.putInt((Handshake.Type.CLIENT_KEY_EXCHANGE.getValue() << 24) + | (ckex.length() & 0xFFFFFF)); + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + if (privateKey != null) + { + genCertVerify = new GenCertVerify(md5, sha); + tasks.add(genCertVerify); + state = WRITE_CERTIFICATE_VERIFY; + } + else + { + engine.changeCipherSpec(); + state = WRITE_FINISHED; + } + } + // Both states terminate in a NEED_TASK, or a need to change cipher + // specs; so we can't write any more messages here. + break outer_loop; + + case WRITE_CERTIFICATE_VERIFY: + { + assert(genCertVerify != null); + assert(genCertVerify.hasRun()); + CertificateVerify verify = new CertificateVerify(genCertVerify.signed(), + engine.session().suite.signatureAlgorithm()); + + outBuffer = verify.buffer(); + fragment.putInt((Handshake.Type.CERTIFICATE_VERIFY.getValue() << 24) + | (verify.length() & 0xFFFFFF)); + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + // XXX This is a potential problem: we may not have drained + // outBuffer, but set the changeCipherSpec toggle. + engine.changeCipherSpec(); + state = WRITE_FINISHED; + } + break outer_loop; + + case WRITE_FINISHED: + { + MessageDigest md5copy = null; + MessageDigest shacopy = null; + try + { + md5copy = (MessageDigest) md5.clone(); + shacopy = (MessageDigest) sha.clone(); + } + catch (CloneNotSupportedException cnse) + { + // We're improperly configured to use a non-cloneable + // md5/sha-1, OR there's a runtime bug. + throw new SSLException(cnse); + } + outBuffer + = generateFinished(md5copy, shacopy, true, + engine.session()); + + fragment.putInt((Handshake.Type.FINISHED.getValue() << 24) + | outBuffer.remaining() & 0xFFFFFF); + + int l = Math.min(outBuffer.remaining(), fragment.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + if (continuedSession) + state = DONE; + else + state = READ_FINISHED; + } + break; + + default: + throw new IllegalStateException("invalid state: " + state); + } + } + + if (!tasks.isEmpty()) + return HandshakeStatus.NEED_TASK; + if (state.isWriteState() || + (outBuffer != null && outBuffer.hasRemaining())) + return HandshakeStatus.NEED_WRAP; + if (state.isReadState()) + return HandshakeStatus.NEED_UNWRAP; + + return HandshakeStatus.FINISHED; + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.AbstractHandshake#status() + */ + @Override HandshakeStatus status() + { + if (state.isReadState()) + return HandshakeStatus.NEED_UNWRAP; + if (state.isWriteState()) + return HandshakeStatus.NEED_WRAP; + return HandshakeStatus.FINISHED; + } + + @Override void checkKeyExchange() throws SSLException + { + // XXX implement. + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.AbstractHandshake#handleV2Hello(java.nio.ByteBuffer) + */ + @Override void handleV2Hello(ByteBuffer hello) throws SSLException + { + throw new SSLException("this should be impossible"); + } + + private ProtocolVersion chooseVersion() throws SSLException + { + // Select the highest enabled version, for our initial key exchange. + ProtocolVersion version = null; + for (String ver : engine.getEnabledProtocols()) + { + try + { + ProtocolVersion v = ProtocolVersion.forName(ver); + if (version == null || version.compareTo(v) < 0) + version = v; + } + catch (Exception x) + { + continue; + } + } + + if (version == null) + throw new SSLException("no suitable enabled versions"); + + return version; + } + + private List getSuites() throws SSLException + { + List suites = new LinkedList(); + for (String s : engine.getEnabledCipherSuites()) + { + CipherSuite suite = CipherSuite.forName(s); + if (suite != null) + suites.add(suite); + } + if (suites.isEmpty()) + throw new SSLException("no cipher suites enabled"); + return suites; + } + + private List getCompressionMethods() + { + List methods = new LinkedList(); + GetSecurityPropertyAction gspa = new GetSecurityPropertyAction("jessie.enable.compression"); + if (Boolean.valueOf(AccessController.doPrivileged(gspa))) + methods.add(CompressionMethod.ZLIB); + methods.add(CompressionMethod.NULL); + return methods; + } + + private boolean enableExtensions() + { + GetSecurityPropertyAction action + = new GetSecurityPropertyAction("jessie.client.enable.extensions"); + return Boolean.valueOf(AccessController.doPrivileged(action)); + } + + private MaxFragmentLength maxFragmentLength() + { + GetSecurityPropertyAction action + = new GetSecurityPropertyAction("jessie.client.maxFragmentLength"); + String s = AccessController.doPrivileged(action); + if (s != null) + { + try + { + int len = Integer.parseInt(s); + switch (len) + { + case 9: + case (1 << 9): return MaxFragmentLength.LEN_2_9; + case 10: + case (1 << 10): return MaxFragmentLength.LEN_2_10; + case 11: + case (1 << 11): return MaxFragmentLength.LEN_2_11; + case 12: + case (1 << 12): return MaxFragmentLength.LEN_2_12; + } + } + catch (NumberFormatException nfe) + { + } + } + return null; + } + + private boolean truncatedHMac() + { + GetSecurityPropertyAction action + = new GetSecurityPropertyAction("jessie.client.truncatedHMac"); + return Boolean.valueOf(AccessController.doPrivileged(action)); + } + + private String getPSKIdentity() + { + GetSecurityPropertyAction action + = new GetSecurityPropertyAction("jessie.client.psk.identity"); + return AccessController.doPrivileged(action); + } + + // Delegated tasks. + + class ParamsVerifier extends DelegatedTask + { + private final ByteBuffer paramsBuffer; + private final byte[] signature; + private boolean verified; + + ParamsVerifier(ByteBuffer paramsBuffer, byte[] signature) + { + this.paramsBuffer = paramsBuffer; + this.signature = signature; + } + + public void implRun() + throws InvalidKeyException, NoSuchAlgorithmException, + SSLPeerUnverifiedException, SignatureException + { + java.security.Signature s + = java.security.Signature.getInstance(engine.session().suite + .signatureAlgorithm().algorithm()); + s.initVerify(engine.session().getPeerCertificates()[0]); + s.update(paramsBuffer); + verified = s.verify(signature); + synchronized (this) + { + notifyAll(); + } + } + + boolean verified() + { + return verified; + } + } + + class ClientDHGen extends DelegatedTask + { + private final DHPublicKey serverKey; + private final DHParameterSpec params; + private final boolean full; + + ClientDHGen(DHPublicKey serverKey, DHParameterSpec params, boolean full) + { + this.serverKey = serverKey; + this.params = params; + this.full = full; + } + + public void implRun() + throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, + SSLException + { + if (Debug.DEBUG) + logger.log(Component.SSL_DELEGATED_TASK, "running client DH phase"); + if (paramsVerifier != null) + { + synchronized (paramsVerifier) + { + try + { + while (!paramsVerifier.hasRun()) + paramsVerifier.wait(500); + } + catch (InterruptedException ie) + { + // Ignore. + } + } + } + KeyPairGenerator gen = KeyPairGenerator.getInstance("DH"); + gen.initialize(params, engine.session().random()); + dhPair = gen.generateKeyPair(); + if (Debug.DEBUG_KEY_EXCHANGE) + logger.logv(Component.SSL_KEY_EXCHANGE, + "client keys public:{0} private:{1}", dhPair.getPublic(), + dhPair.getPrivate()); + + initDiffieHellman((DHPrivateKey) dhPair.getPrivate(), engine.session().random()); + + // We have enough info to do the full key exchange; so let's do it. + DHPhase phase = new DHPhase(serverKey, full); + phase.run(); + if (phase.thrown() != null) + throw new SSLException(phase.thrown()); + } + + DHPublicKey serverKey() + { + return serverKey; + } + } + + class CertLoader extends DelegatedTask + { + private final List keyTypes; + private final List issuers; + + CertLoader(List keyTypes, List issuers) + { + this.keyTypes = keyTypes; + this.issuers = issuers; + } + + public void implRun() + { + X509ExtendedKeyManager km = engine.contextImpl.keyManager; + if (km == null) + return; + keyAlias = km.chooseEngineClientAlias(keyTypes.toArray(new String[keyTypes.size()]), + issuers.toArray(new X500Principal[issuers.size()]), + engine); + engine.session().setLocalCertificates(km.getCertificateChain(keyAlias)); + privateKey = km.getPrivateKey(keyAlias); + } + } + + class RSAGen extends DelegatedTask + { + private byte[] encryptedPreMasterSecret; + private final boolean full; + + RSAGen() + { + this(true); + } + + RSAGen(boolean full) + { + this.full = full; + } + + public void implRun() + throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchPaddingException, + SSLException + { + if (certVerifier != null) + { + synchronized (certVerifier) + { + try + { + while (!certVerifier.hasRun()) + certVerifier.wait(500); + } + catch (InterruptedException ie) + { + // Ignore. + } + } + } + preMasterSecret = new byte[48]; + engine.session().random().nextBytes(preMasterSecret); + preMasterSecret[0] = (byte) sentVersion.major(); + preMasterSecret[1] = (byte) sentVersion.minor(); + Cipher rsa = Cipher.getInstance("RSA"); + java.security.cert.Certificate cert + = engine.session().getPeerCertificates()[0]; + rsa.init(Cipher.ENCRYPT_MODE, cert); + encryptedPreMasterSecret = rsa.doFinal(preMasterSecret); + + // Generate our session keys, because we can. + if (full) + { + generateMasterSecret(clientRandom, serverRandom, engine.session()); + byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); + setupSecurityParameters(keys, true, engine, compression); + } + } + + byte[] encryptedSecret() + { + return encryptedPreMasterSecret; + } + } + + class GenCertVerify extends DelegatedTask + { + private final MessageDigest md5, sha; + private byte[] signed; + + GenCertVerify(MessageDigest md5, MessageDigest sha) + { + try + { + this.md5 = (MessageDigest) md5.clone(); + this.sha = (MessageDigest) sha.clone(); + } + catch (CloneNotSupportedException cnse) + { + // Our message digests *should* be cloneable. + throw new Error(cnse); + } + } + + public void implRun() + throws InvalidKeyException, NoSuchAlgorithmException, SignatureException + { + byte[] toSign; + if (engine.session().version == ProtocolVersion.SSL_3) + { + toSign = genV3CertificateVerify(md5, sha, engine.session()); + } + else + { + if (engine.session().suite.signatureAlgorithm() == SignatureAlgorithm.RSA) + toSign = Util.concat(md5.digest(), sha.digest()); + else + toSign = sha.digest(); + } + + java.security.Signature sig = + java.security.Signature.getInstance(engine.session().suite.signatureAlgorithm().name()); + sig.initSign(privateKey); + sig.update(toSign); + signed = sig.sign(); + } + + byte[] signed() + { + return signed; + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java dissimilarity index 68% index 259051df129..54d7f8b4d74 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java @@ -1,253 +1,240 @@ -/* ClientHello.java -- SSL ClientHello message. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import javax.net.ssl.SSLProtocolException; - -final class ClientHello implements Handshake.Body -{ - - // Fields. - // ------------------------------------------------------------------------- - - private ProtocolVersion version; - private Random random; - private byte[] sessionId; - private List suites; - private List comp; - private List extensions; - - // Constructor. - // ------------------------------------------------------------------------- - - ClientHello(ProtocolVersion version, Random random, - byte[] sessionId, List suites, List comp) - { - this(version, random, sessionId, suites, comp, null); - } - - ClientHello(ProtocolVersion version, Random random, - byte[] sessionId, List suites, List comp, List extensions) - { - this.version = version; - this.random = random; - this.sessionId = sessionId; - this.suites = suites; - this.comp = comp; - this.extensions = extensions; - } - - // Class methods. - // ------------------------------------------------------------------------- - - static ClientHello read(InputStream in) throws IOException - { - ProtocolVersion vers = ProtocolVersion.read(in); - Random rand = Random.read(in); - byte[] id = new byte[in.read() & 0xFF]; - in.read(id); - int len = (in.read() & 0xFF) << 8 | (in.read() & 0xFF); - ArrayList suites = new ArrayList(len / 2); - for (int i = 0; i < len; i += 2) - { - suites.add(CipherSuite.read(in).resolve(vers)); - } - len = in.read() & 0xFF; - ArrayList comp = new ArrayList(len); - for (int i = 0; i < len; i++) - { - comp.add(CompressionMethod.read(in)); - } - - List ext = null; - // Since parsing MAY need to continue into the extensions fields, or it - // may end here, the specified input stream MUST be a ByteArrayInputStream - // over all the data this hello contains. Otherwise this will mess up - // the data stream. - if (in.available() > 0) // then we have extensions. - { - ext = new LinkedList(); - len = (in.read() & 0xFF) << 8 | (in.read() & 0xFF); - int count = 0; - while (count < len) - { - Extension e = Extension.read(in); - ext.add(e); - count += e.getValue().length + 4; - } - } - return new ClientHello(vers, rand, id, suites, comp, ext); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException - { - version.write(out); - random.write(out); - out.write(sessionId.length); - out.write(sessionId); - out.write((suites.size() << 1) >>> 8 & 0xFF); - out.write((suites.size() << 1) & 0xFF); - for (Iterator i = suites.iterator(); i.hasNext(); ) - { - ((CipherSuite) i.next()).write(out); - } - out.write(comp.size()); - for (Iterator i = comp.iterator(); i.hasNext(); ) - { - out.write(((CompressionMethod) i.next()).getValue()); - } - if (extensions != null) - { - ByteArrayOutputStream out2 = new ByteArrayOutputStream(); - for (Iterator i = extensions.iterator(); i.hasNext(); ) - { - ((Extension) i.next()).write(out2); - } - out.write(out2.size() >>> 8 & 0xFF); - out.write(out2.size() & 0xFF); - out2.writeTo(out); - } - } - - ProtocolVersion getVersion() - { - return version; - } - - Random getRandom() - { - return random; - } - - byte[] getSessionId() - { - return sessionId; - } - - List getCipherSuites() - { - return suites; - } - - List getCompressionMethods() - { - return comp; - } - - List getExtensions() - { - return extensions; - } - - public String toString() - { - StringWriter str = new StringWriter(); - PrintWriter out = new PrintWriter(str); - out.println("struct {"); - out.println(" version = " + version + ";"); - BufferedReader r = new BufferedReader(new StringReader(random.toString())); - String s; - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) - { - } - out.println(" sessionId = " + Util.toHexString(sessionId, ':') + ";"); - out.println(" cipherSuites = {"); - for (Iterator i = suites.iterator(); i.hasNext(); ) - { - out.print(" "); - out.println(i.next()); - } - out.println(" };"); - out.print(" compressionMethods = { "); - for (Iterator i = comp.iterator(); i.hasNext(); ) - { - out.print(i.next()); - if (i.hasNext()) - out.print(", "); - } - out.println(" };"); - if (extensions != null) - { - out.println(" extensions = {"); - for (Iterator i = extensions.iterator(); i.hasNext(); ) - { - r = new BufferedReader(new StringReader(i.next().toString())); - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) - { - } - } - out.println(" };"); - } - out.println("} ClientHello;"); - return str.toString(); - } -} +/* ClientHello.java -- SSL ClientHello message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * A ClientHello handshake message. + * + *
    +struct
    +{
    +  ProtocolVersion   client_version;                // 2
    +  Random            random;                        // 32
    +  SessionID         session_id;                    // 1 + 0..32
    +  CipherSuite       cipher_suites<2..2^16-1>
    +  CompressionMethod compression_methods<1..2^8-1>
    +  Extension         client_hello_extension_list<0..2^16-1>
    +} ClientHello;
    +
    + */ +public class ClientHello implements Handshake.Body +{ + + // Fields. + // ------------------------------------------------------------------------- + + // To help track offsets into the message: + // The location of the 'random' field. + protected static final int RANDOM_OFFSET = 2; + // The location of the sesion_id length. + protected static final int SESSID_OFFSET = 32 + RANDOM_OFFSET; + // The location of the session_id bytes (if any). + protected static final int SESSID_OFFSET2 = SESSID_OFFSET + 1; + + protected ByteBuffer buffer; + protected boolean disableExtensions; + + // Constructor. + // ------------------------------------------------------------------------- + + public ClientHello (final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + disableExtensions = false; + } + + // Instance methods. + // ------------------------------------------------------------------------- + + public int length() + { + int len = SESSID_OFFSET2 + buffer.get(SESSID_OFFSET); + len += (buffer.getShort(len) & 0xFFFF) + 2; + len += (buffer.get(len) & 0xFF) + 1; + if (!disableExtensions && len + 1 < buffer.capacity()) + len += (buffer.getShort(len) & 0xFFFF) + 2; + return len; + } + + /** + * Gets the protocol version field. + * + * @return The protocol version field. + */ + public ProtocolVersion version() + { + return ProtocolVersion.getInstance (buffer.getShort (0)); + } + + /** + * Gets the SSL nonce. + * + * @return The nonce. + */ + public Random random() + { + ByteBuffer randomBuf = + ((ByteBuffer) buffer.duplicate ().position (RANDOM_OFFSET) + .limit (SESSID_OFFSET)).slice (); + return new Random (randomBuf); + } + + public byte[] sessionId() + { + int idlen = buffer.get (SESSID_OFFSET) & 0xFF; + byte[] sessionId = new byte[idlen]; + buffer.position (SESSID_OFFSET2); + buffer.get (sessionId); + return sessionId; + } + + public CipherSuiteList cipherSuites() + { + int offset = getCipherSuitesOffset (); + + // We give the CipherSuiteList all the remaining bytes to play with, + // since this might be an in-construction packet that will fill in + // the length field itself. + ByteBuffer listBuf = ((ByteBuffer) buffer.duplicate ().position (offset) + .limit (buffer.capacity ())).slice (); + return new CipherSuiteList (listBuf, version ()); + } + + public CompressionMethodList compressionMethods() + { + int offset = getCompressionMethodsOffset (); + ByteBuffer listBuf = ((ByteBuffer) buffer.duplicate ().position (offset) + .limit (buffer.capacity ())).slice (); + return new CompressionMethodList (listBuf); + } + + public boolean hasExtensions() + { + int offset = getExtensionsOffset(); + return (offset + 1 < buffer.limit()); + } + + public ExtensionList extensions() + { + int offset = getExtensionsOffset (); + if (offset + 1 >= buffer.limit()) + return null; + int len = buffer.getShort(offset) & 0xFFFF; + if (len == 0) + len = buffer.limit() - offset - 2; + ByteBuffer ebuf = ((ByteBuffer) buffer.duplicate().position(offset) + .limit(offset + len + 2)).slice (); + return new ExtensionList(ebuf); + } + + public int extensionsLength() + { + if (hasExtensions()) + return 0; + return buffer.getShort(getExtensionsOffset()) & 0xFFFF; + } + + protected int getCipherSuitesOffset () + { + return (SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF)); + } + + protected int getCompressionMethodsOffset () + { + int csOffset = getCipherSuitesOffset (); + int csLen = buffer.getShort (csOffset) & 0xFFFF; + return csOffset + csLen + 2; + } + + protected int getExtensionsOffset () + { + int cmOffset = getCompressionMethodsOffset (); + return (buffer.get (cmOffset) & 0xFF) + cmOffset + 1; + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + String subprefix = " "; + if (prefix != null) + subprefix += prefix; + if (prefix != null) + out.print (prefix); + out.println ("struct {"); + if (prefix != null) + out.print (prefix); + out.print (" version: "); + out.print (version ()); + out.println (";"); + out.print (subprefix); + out.println ("random:"); + out.print (random ().toString (subprefix)); + if (prefix != null) + out.print (prefix); + out.print (" sessionId: "); + out.print (Util.toHexString (sessionId (), ':')); + out.println (";"); + out.print (subprefix); + out.println ("cipher_suites:"); + out.println (cipherSuites ().toString (subprefix)); + out.print (subprefix); + out.println ("compression_methods:"); + out.println (compressionMethods ().toString (subprefix)); + out.print (subprefix); + out.print ("extensions: "); + ExtensionList el = extensions(); + out.println (el != null ? el.toString(subprefix+" ") : "(nil)"); + if (prefix != null) + out.print (prefix); + out.print ("} ClientHello;"); + return str.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java new file mode 100644 index 00000000000..81e3dd72f71 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java @@ -0,0 +1,137 @@ +/* ClientHelloBuilder.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; +import java.util.List; + +/** + * Builder for {@link ClientHello} objects. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ClientHelloBuilder extends ClientHello implements Builder +{ + public ClientHelloBuilder() + { + super(ByteBuffer.allocate(256)); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().position(0).limit(length()); + } + + public void setVersion(final ProtocolVersion version) + { + ensureCapacity(2); + buffer.putShort(0, (short) version.rawValue ()); + } + + public void setSessionId (final byte[] buffer) + { + setSessionId(buffer, 0, buffer.length); + } + + public void setSessionId (final byte[] buffer, final int offset, final int length) + { + ensureCapacity(SESSID_OFFSET2 + length); + int len = Math.min (32, length); + this.buffer.put (SESSID_OFFSET, (byte) len); + this.buffer.position (SESSID_OFFSET2); + this.buffer.put (buffer, offset, len); + } + + public void setCipherSuites(List suites) + { + int off = getCipherSuitesOffset(); + ensureCapacity(off + (2 * suites.size()) + 2); + buffer.putShort(off, (short) (suites.size() * 2)); + int i = 2; + for (CipherSuite suite : suites) + { + ((ByteBuffer) buffer.duplicate().position(off+i)).put(suite.id()); + i += 2; + } + } + + public void setCompressionMethods(List methods) + { + int off = getCompressionMethodsOffset(); + ensureCapacity(off + methods.size() + 1); + buffer.put(off, (byte) methods.size()); + for (CompressionMethod method : methods) + buffer.put(++off, (byte) method.getValue()); + } + + public void setExtensionsLength (final int length) + { + if (length < 0 || length > 16384) + throw new IllegalArgumentException("length must be nonnegative and not exceed 16384"); + int needed = getExtensionsOffset() + 2 + length; + if (buffer.capacity() < needed) + ensureCapacity(needed); + buffer.putShort(getExtensionsOffset(), (short) length); + } + + public void setExtensions(ByteBuffer extensions) + { + int elen = extensions.getShort(0) & 0xFFFF; + setExtensionsLength(elen); + ((ByteBuffer) buffer.duplicate().position(getExtensionsOffset())).put(extensions); + } + + public void setDisableExtensions(boolean disableExtensions) + { + this.disableExtensions = disableExtensions; + } + + public void ensureCapacity(final int length) + { + if (buffer.capacity() >= length) + return; + ByteBuffer newBuf = ByteBuffer.allocate(length); + newBuf.put((ByteBuffer) buffer.position(0)); + newBuf.position(0); + this.buffer = newBuf; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java new file mode 100644 index 00000000000..a514d9ad37c --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java @@ -0,0 +1,158 @@ +/* ClientHelloV2.java -- a hello message from SSLv2. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.ArrayList; +import java.util.List; + +/** + * A client hello message from SSLv2. In SSLv3 and later, clients can + * send an SSLv2 client hello message, but set the protocol version + * for a later version. + * + *

    The format of a version 2 client hello is: + * + *

    +    char MSG-CLIENT-HELLO          // equals 1
    +    char CLIENT-VERSION-MSB
    +    char CLIENT-VERSION-LSB
    +    char CIPHER-SPECS-LENGTH-MSB
    +    char CIPHER-SPECS-LENGTH-LSB
    +    char SESSION-ID-LENGTH-MSB
    +    char SESSION-ID-LENGTH-LSB
    +    char CHALLENGE-LENGTH-MSB
    +    char CHALLENGE-LENGTH-LSB
    +    char CIPHER-SPECS-DATA[(MSB<<8)|LSB]
    +    char SESSION-ID-DATA[(MSB<<8)|LSB]
    +    char CHALLENGE-DATA[(MSB<<8)|LSB]
    + */ +class ClientHelloV2 implements Constructed +{ + private final ByteBuffer buffer; + + ClientHelloV2 (final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + public int length () + { + return 9 + cipherSpecsLength () + sessionIdLength () + challengeLength (); + } + + ProtocolVersion version () + { + return ProtocolVersion.getInstance (buffer.getShort (1)); + } + + int cipherSpecsLength () + { + return buffer.getShort (3) & 0xFFFF; + } + + int sessionIdLength () + { + return buffer.getShort (5) & 0xFFFF; + } + + int challengeLength () + { + return buffer.getShort (7) & 0xFFFF; + } + + public List cipherSpecs () + { + int n = cipherSpecsLength (); + List l = new ArrayList(n / 3); + ByteBuffer b = (ByteBuffer) buffer.duplicate ().position (9); + for (int i = 0; i < n; i += 3) + { + if (b.get () == 0) + l.add (CipherSuite.forValue(b.getShort()).resolve()); + else + b.getShort (); + } + return l; + } + + byte[] sessionId () + { + byte[] id = new byte[sessionIdLength ()]; + ((ByteBuffer) buffer.duplicate ().position (9 + cipherSpecsLength ())).get (id); + return id; + } + + byte[] challenge () + { + byte[] challenge = new byte[challengeLength ()]; + ((ByteBuffer) buffer.duplicate ().position (9 + cipherSpecsLength () + sessionIdLength ())).get (challenge); + return challenge; + } + + public String toString () + { + return toString (null); + } + + public String toString (String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + + if (prefix != null) out.print (prefix); + out.println ("CLIENT-HELLO-MSG"); + if (prefix != null) out.print (prefix); + out.print (" version: "); + out.println (version ()); + if (prefix != null) out.print (prefix); + out.println (" suites: "); + out.println (cipherSpecs ()); + if (prefix != null) out.print (prefix); + out.print (" sessionId: "); + out.println (Util.toHexString (sessionId (), ':')); + if (prefix != null) out.print (prefix); + out.print (" challenge: "); + out.println (Util.toHexString (challenge (), ':')); + return str.toString (); + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchange.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchange.java index 828aa8d5e93..2006e73850b 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchange.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchange.java @@ -38,143 +38,94 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.BufferedReader; -import java.io.DataInputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; -import java.io.StringReader; import java.io.StringWriter; -import java.math.BigInteger; - -import java.security.PublicKey; -import java.security.interfaces.RSAKey; -import javax.crypto.interfaces.DHPublicKey; - -final class ClientKeyExchange implements Handshake.Body +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * The client key exchange message. + * + *
    +struct {
    +  select (KeyExchangeAlgorithm) {
    +    case rsa: EncryptedPreMasterSecret;
    +    case diffie_hellman: ClientDiffieHellmanPublic;
    +  } exchange_keys;
    +} ClientKeyExchange;
    + */ +public class ClientKeyExchange implements Handshake.Body { // Fields. // ------------------------------------------------------------------------- - private final Object exObject; + protected ByteBuffer buffer; + protected final CipherSuite suite; + protected final ProtocolVersion version; // Constructors. // ------------------------------------------------------------------------- - ClientKeyExchange(byte[] encryptedSecret) - { - exObject = encryptedSecret; - } - - ClientKeyExchange(BigInteger bigint) - { - exObject = bigint; - } - - // Class method. - // ------------------------------------------------------------------------- - - static ClientKeyExchange read(InputStream in, CipherSuite suite, - PublicKey key) - throws IOException + public ClientKeyExchange (final ByteBuffer buffer, final CipherSuite suite, + final ProtocolVersion version) { - DataInputStream din = new DataInputStream(in); - if (suite.getKeyExchange().equals("RSA")) - { - int len = 0; - if (suite.getVersion() == ProtocolVersion.SSL_3) - { - len = (((RSAKey) key).getModulus().bitLength()+7) / 8; - } - else - { - len = din.readUnsignedShort(); - } - byte[] buf = new byte[len]; - din.readFully(buf); - return new ClientKeyExchange(buf); - } - else if (suite.getKeyExchange().equals("SRP")) - { - byte[] buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - return new ClientKeyExchange(new BigInteger(1, buf)); - } - else if (key == null || !(key instanceof DHPublicKey)) // explicit. - { - byte[] buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - return new ClientKeyExchange(new BigInteger(1, buf)); - } - else - { - return new ClientKeyExchange(new byte[0]); - } + suite.getClass(); + version.getClass (); + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + this.suite = suite; + this.version = version; } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public ExchangeKeys exchangeKeys () { - throw new UnsupportedOperationException("use write(java.io.OutputStream,ProtocolVersion) instead"); + KeyExchangeAlgorithm alg = suite.keyExchangeAlgorithm(); + if (alg == KeyExchangeAlgorithm.RSA) + return new EncryptedPreMasterSecret(buffer, version); + else if (alg == KeyExchangeAlgorithm.DH_anon + || alg == KeyExchangeAlgorithm.DHE_DSS + || alg == KeyExchangeAlgorithm.DHE_RSA) + return new ClientDiffieHellmanPublic(buffer.duplicate()); + else if (alg == KeyExchangeAlgorithm.DHE_PSK) + return new ClientDHE_PSKParameters(buffer.duplicate()); + else if (alg == KeyExchangeAlgorithm.PSK) + return new ClientPSKParameters(buffer.duplicate()); + else if (alg == KeyExchangeAlgorithm.RSA_PSK) + return new ClientRSA_PSKParameters(buffer.duplicate()); + else if (alg == KeyExchangeAlgorithm.NONE) + return new EmptyExchangeKeys(); + throw new IllegalArgumentException("unsupported key exchange: " + alg); } - public void write(OutputStream out, ProtocolVersion version) throws IOException + public int length() { - if (exObject instanceof byte[]) - { - byte[] b = (byte[]) exObject; - if (b.length > 0) - { - if (version != ProtocolVersion.SSL_3) - { - out.write(b.length >>> 8 & 0xFF); - out.write(b.length & 0xFF); - } - out.write(b); - } - } - else - { - byte[] bigint = ((BigInteger) exObject).toByteArray(); - if (bigint[0] == 0x00) - { - out.write(bigint.length - 1 >>> 8 & 0xFF); - out.write(bigint.length - 1 & 0xFF); - out.write(bigint, 1, bigint.length - 1); - } - else - { - out.write(bigint.length >>> 8 & 0xFF); - out.write(bigint.length & 0xFF); - out.write(bigint); - } - } + if (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.NONE) + return 0; + return exchangeKeys().length(); } - Object getExchangeObject() + public String toString () { - return exObject; + return toString (null); } - public String toString() + public String toString (final String prefix) { StringWriter str = new StringWriter(); PrintWriter out = new PrintWriter(str); + if (prefix != null) + out.print (prefix); out.println("struct {"); - if (exObject instanceof byte[] && ((byte[]) exObject).length > 0) - { - out.println(" encryptedPreMasterSecret ="); - out.print(Util.hexDump((byte[]) exObject, " ")); - } - else if (exObject instanceof BigInteger) - { - out.println(" clientPublic = " + ((BigInteger) exObject).toString(16) + ";"); - } + String subprefix = " "; + if (prefix != null) + subprefix = prefix + subprefix; + out.println (exchangeKeys ().toString (subprefix)); + if (prefix != null) + out.print (prefix); out.println("} ClientKeyExchange;"); return str.toString(); } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java new file mode 100644 index 00000000000..ebebdcc0e03 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java @@ -0,0 +1,75 @@ +/* ClientKeyExchangeBuilder.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; + +/** + * Builder for {@link ClientKeyExchange} objects. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ClientKeyExchangeBuilder extends ClientKeyExchange + implements Builder +{ + public ClientKeyExchangeBuilder(CipherSuite suite, ProtocolVersion version) + { + super(ByteBuffer.allocate(512), suite, version); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); + } + + public void setExchangeKeys(ByteBuffer exchangeKeys) + { + // For SSLv3 and RSA key exchange, the message is sent without length. + // So we use the precise capacity of the buffer to signal the size of + // the message. + if (buffer.capacity() < exchangeKeys.remaining() + || (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.RSA + && version == ProtocolVersion.SSL_3)) + buffer = ByteBuffer.allocate(exchangeKeys.remaining()); + ((ByteBuffer) buffer.duplicate().position(0)).put(exchangeKeys); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java new file mode 100644 index 00000000000..676a872f925 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java @@ -0,0 +1,125 @@ +/* ClientPSKParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.CharBuffer; +import java.nio.charset.Charset; + +/** + *
    +      struct {
    +          select (KeyExchangeAlgorithm) {
    +              /* other cases for rsa, diffie_hellman, etc. */
    +              case psk:   /* NEW */
    +                  opaque psk_identity<0..2^16-1>;
    +          } exchange_keys;
    +      } ClientKeyExchange;
    + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ClientPSKParameters extends ExchangeKeys implements Builder, Constructed +{ + public ClientPSKParameters(ByteBuffer buffer) + { + super(buffer); + } + + public ClientPSKParameters(String identity) + { + super(null); + Charset utf8 = Charset.forName("UTF-8"); + ByteBuffer idBuf = utf8.encode(CharBuffer.wrap(identity)); + buffer = ByteBuffer.allocate(idBuf.remaining() + 2); + buffer.putShort((short) idBuf.remaining()); + buffer.put(idBuf); + buffer.rewind(); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().rewind().limit(length()); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#length() + */ + public int length() + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + + public String identity() + { + Charset utf8 = Charset.forName("UTF-8"); + return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit(length())).toString(); + } + + public @Override String toString() + { + return toString(null); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) + */ + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.print(" identity = "); + out.print(identity()); + out.println(";"); + if (prefix != null) out.print(prefix); + out.print("} ClientPSKParameters;"); + return str.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java new file mode 100644 index 00000000000..f7483a94c30 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java @@ -0,0 +1,126 @@ +/* ClientRSA_PSKParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.charset.Charset; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class ClientRSA_PSKParameters extends ExchangeKeys implements Builder, Constructed +{ + public ClientRSA_PSKParameters(ByteBuffer buffer) + { + super(buffer); + } + + public ClientRSA_PSKParameters(String identity, ByteBuffer epms) + { + super(null); + Charset utf8 = Charset.forName("UTF-8"); + ByteBuffer idBuf = utf8.encode(identity); + buffer = ByteBuffer.allocate(2 + idBuf.remaining() + epms.remaining()); + buffer.putShort((short) idBuf.remaining()); + buffer.put(idBuf); + buffer.put(epms); + buffer.rewind(); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().rewind().limit(length()); + } + + public String identity() + { + Charset utf8 = Charset.forName("UTF-8"); + return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit + (identityLength())).toString(); + } + + private int identityLength() + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#length() + */ + public int length() + { + return identityLength() + secret().length(); + } + + public EncryptedPreMasterSecret secret() + { + return new EncryptedPreMasterSecret + (((ByteBuffer) buffer.duplicate().position(identityLength()) + .limit(buffer.capacity())).slice(), ProtocolVersion.TLS_1); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) + */ + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.print(" identity = "); + out.print(identity()); + if (prefix != null) out.print(prefix); + out.println(" encrypted_pre_master_secret ="); + out.println(secret().toString(prefix != null ? prefix + " " : " ")); + if (prefix != null) out.print(prefix); + out.print("} ClientRSA_PSKParameters;"); + return str.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java b/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java index c2fdf05f9a3..6c57e840c65 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethod.java @@ -1,4 +1,4 @@ -/* CompressionMethod.java -- the compression method enum. +/* CompressionMethod.java -- The CompressionMethod enum. Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -38,67 +38,32 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; - -final class CompressionMethod implements Enumerated +public enum CompressionMethod { - - // Constants and fields. - // ------------------------------------------------------------------------- - - static final CompressionMethod NULL = new CompressionMethod(0), - ZLIB = new CompressionMethod(1); + NULL (0), ZLIB(1); private final int value; - // Constructor. - // ------------------------------------------------------------------------- - private CompressionMethod(int value) { this.value = value; } - // Class method. - // ------------------------------------------------------------------------- - - static CompressionMethod read(InputStream in) throws IOException + public static CompressionMethod getInstance (final int value) { - int value = in.read(); - if (value == -1) - { - throw new EOFException("unexpected end of input stream"); - } switch (value & 0xFF) { case 0: return NULL; case 1: return ZLIB; - default: return new CompressionMethod(value); + + // Note: we can't throw an exception here, because we get these values + // over the wire, and need to just ignore ones we don't recognize. + default: return null; } } - // Instance methods. - // ------------------------------------------------------------------------- - - public byte[] getEncoded() - { - return new byte[] { (byte) value }; - } - public int getValue() { return value; } - - public String toString() - { - switch (value) - { - case 0: return "null"; - case 1: return "zlib"; - default: return "unknown(" + value + ")"; - } - } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java b/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java new file mode 100644 index 00000000000..47ba5484c3f --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java @@ -0,0 +1,281 @@ +/* CompressionMethodList.java -- A list of compression methods. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; + +import java.util.ConcurrentModificationException; +import java.util.ListIterator; +import java.util.NoSuchElementException; + +/** + * A basic list interface to a list of compression methods in an SSL + * packet. + */ +public final class CompressionMethodList implements Iterable +{ + private final ByteBuffer buffer; + private int modCount; + + public CompressionMethodList (final ByteBuffer buffer) + { + this.buffer = buffer; + modCount = 0; + } + + /** + * Return the number of elements in this list. + * + * @return The size of this list. + */ + public int size () + { + return (buffer.get (0) & 0xFF); + } + + /** + * Get the cipher suite at the specified index. + * + * @param index The index of the suite to get. + * @return The cipher suite at that index. + * @throws IndexOutOfBoundsException If the index is negative or is + * not less than {@link #size()}. + */ + public CompressionMethod get (final int index) + { + int size = size (); + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException ("limit: " + size + + "; requested: " + index); + return CompressionMethod.getInstance (buffer.get (1 + index)); + } + + /** + * Set the CompressionMethod at the specified index. The list must + * have sufficient size to hold the element (that is, index + * <= size ()). + * + * @param index The index to put the suite. + * @param method The CompressionMethod object. + * @throws IndexOutOfBoundsException If index is not + * less than @{link #size()}, or if it is negative. + * @throws NullPointerException If suite is + * null. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writable. + */ + public void put (final int index, final CompressionMethod method) + { + int size = size (); + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException ("limit: " + size + + "; requested: " + index); + buffer.position (1 + index); + buffer.put ((byte) method.getValue ()); + modCount++; + } + + /** + * Sets the size of this list. You must call this if you are adding + * elements to the list; calling {@link + * #put(int,gnu.jessie.provider.CipherSuite)} does not expand the + * list size (the same goes for removing elements, as there is no + * remove method). + * + * @param newSize The new size of this list. + * @throws IllegalArgumentException If the new size is negative or + * greater than 32767, or if there is insufficient space for that + * many elements in the underlying buffer. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writable. + */ + public void setSize (final int newSize) + { + if (newSize < 0 || newSize > 255) + throw new IllegalArgumentException ("size must be between 0 and 255"); + if (newSize + 1 > buffer.capacity ()) + throw new IllegalArgumentException ("limit: " + buffer.capacity () + + "; requested: " + newSize); + buffer.put (0, (byte) newSize); + modCount++; + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) + out.print (prefix); + out.print ("["); + out.print (size ()); + out.println ("] {"); + for (Iterator it = new Iterator (); it.hasNext (); ) + { + CompressionMethod method = (CompressionMethod) it.next (); + if (prefix != null) + out.print (prefix); + out.print (" "); + out.print (method); + if (it.hasNext ()) + out.print (","); + out.println (); + } + if (prefix != null) + out.print (prefix); + out.print ("};"); + return str.toString (); + } + + public boolean equals (Object o) + { + if (!(o instanceof CompressionMethodList)) + return false; + CompressionMethodList that = (CompressionMethodList) o; + + if (size () != that.size ()) + return false; + + for (Iterator it1 = new Iterator (), it2 = that.new Iterator (); + it1.hasNext () && it2.hasNext (); ) + { + if (!it1.next ().equals (it2.next ())) + return false; + } + return true; + } + + public java.util.Iterator iterator () + { + return new Iterator (); + } + + /** + * An iterator for the elements in this list. The iterator supports + * only the set method out of the optional methods, + * because elements in a CipherSuiteList may not be removed or + * added; only the size of the list can be changed, and elements at + * a specific index changed. + */ + public class Iterator implements ListIterator + { + private int index; + private final int modCount; + + Iterator () + { + index = 0; + modCount = CompressionMethodList.this.modCount; + } + + public void add (CompressionMethod cm) + { + throw new UnsupportedOperationException (); + } + + public boolean hasNext () + { + return (index < size ()); + } + + public boolean hasPrevious () + { + return (index > 0); + } + + public CompressionMethod next () throws NoSuchElementException + { + if (modCount != CompressionMethodList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException (); + } + } + + public int nextIndex () + { + if (hasNext ()) + return (index + 1); + return -1; + } + + public CompressionMethod previous () throws NoSuchElementException + { + if (index == 0) + throw new NoSuchElementException (); + if (modCount != CompressionMethodList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (--index); + } + catch (IndexOutOfBoundsException ioobe) // on empty list + { + throw new NoSuchElementException (); + } + } + + public int previousIndex () + { + return (index - 1); + } + + public void remove () + { + throw new UnsupportedOperationException (); + } + + public void set (final CompressionMethod cm) + { + put (index, cm); + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java b/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java index ee3f56a7f47..3a3545b226e 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Constructed.java @@ -1,4 +1,4 @@ -/* Constructed.java -- constructed type. +/* Constructed.java -- Constructed type. Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -38,20 +38,49 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.IOException; -import java.io.OutputStream; - /** * The base interface to SSL constructed types. + * + *

    Contract for ByteBuffer-based constructed types: + * + *

    Most implementations of this interface supported by this library + * take a "view" of an underlying ByteBuffer. The general contract of + * such classes is that they will not modify the position or + * limit of the buffer when doing read operations. That is, the position + * of the underlying buffer should remain at 0 throughout the + * lifetime of the object, and the limit should be either set to the + * capacity of the buffer, or to the size of the object (in most cases, + * the length of the protocol object is determined by the contents of + * the object, so the limit isn't useful in such cases. Of course, if the + * limit is set to something other than the object's length, it must be + * larger than the object length). + * + *

    Setter methods (usually in a class that implements the {@link Builder} + * interface) may modify the limit, but the general contract remains that + * the position remain at zero, and that the limit be at least as large as + * the object length. + * + *

    Thus, very often the code will use absolute getters and setters + * for primitive types, or it will use the {@link java.nio.ByteBuffer#duplicate()} + * method, and sometimes the {@link java.nio.ByteBuffer#slice()} method, and + * will change the position or limit of the duplicate buffer. */ -interface Constructed +public interface Constructed { + /** + * Returns the total length, in bytes, of this structure. + * + * @return The length of this structure. + */ + int length(); /** - * Writes this structure's encoded form to the given output stream. + * Returns a printable representation of this structure, with the + * given prefix prepended to each line. * - * @param out The output stream. - * @throws IOException If an I/O error occurs. + * @param prefix The prefix to prepend to each line of the + * output. This value may be null. + * @return A printable representation of this structure. */ - void write(OutputStream out) throws IOException; + String toString(String prefix); } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java b/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java index 336809467e4..f7165a2d769 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java @@ -1,4 +1,4 @@ -/* ContentType.java -- record layer content type. +/* ContentType.java -- SSL record layer content type. Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -45,22 +45,23 @@ import java.io.IOException; /** * The content type enumeration, which marks packets in the record layer. * - *

    enum { change_cipher_spec(20), alert(21), handshake(22),
    - *             application_data(23), (255) } ContentType;
    + *
    +enum { change_cipher_spec(20), alert(21), handshake(22),
    +       application_data(23), (255) } ContentType;
    + * + *

    There is also a "pseudo" content type, client_hello_v2 + * (1), which is used for backwards compatibility with SSLv2. * * @author Casey Marshall (rsdio@metastatic.org) */ -final class ContentType implements Enumerated +public enum ContentType { - // Constants and fields. - // ------------------------------------------------------------------------ - - static final ContentType CLIENT_HELLO_V2 = new ContentType( 1); - static final ContentType CHANGE_CIPHER_SPEC = new ContentType(20); - static final ContentType ALERT = new ContentType(21); - static final ContentType HANDSHAKE = new ContentType(22); - static final ContentType APPLICATION_DATA = new ContentType(23); + CLIENT_HELLO_V2 ( 1), + CHANGE_CIPHER_SPEC (20), + ALERT (21), + HANDSHAKE (22), + APPLICATION_DATA (23); private int value; @@ -72,16 +73,8 @@ final class ContentType implements Enumerated this.value = value; } - // Class methods. - // ------------------------------------------------------------------------ - - static final ContentType read(InputStream in) throws IOException + static final ContentType forInteger (final int value) { - int value = in.read(); - if (value == -1) - { - throw new EOFException("unexpected end of input stream"); - } switch (value & 0xFF) { case 1: return CLIENT_HELLO_V2; @@ -89,47 +82,12 @@ final class ContentType implements Enumerated case 21: return ALERT; case 22: return HANDSHAKE; case 23: return APPLICATION_DATA; - default: return new ContentType(value); + default: return null; } } - // Instance methods. - // ------------------------------------------------------------------------ - - public byte[] getEncoded() - { - return new byte[] { (byte) value }; - } - public int getValue() { return value; } - - public boolean equals(Object o) - { - if (o == null || !(o instanceof ContentType)) - { - return false; - } - return ((ContentType) o).value == value; - } - - public int hashCode() - { - return getValue(); - } - - public String toString() - { - switch (value) - { - case 1: return "v2_client_hello"; - case 20: return "change_cipher_spec"; - case 21: return "alert"; - case 22: return "handshake"; - case 23: return "application_data"; - default: return "unknown(" + value + ")"; - } - } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Context.java b/libjava/classpath/gnu/javax/net/ssl/provider/Context.java deleted file mode 100644 index 2bd7193f265..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Context.java +++ /dev/null @@ -1,334 +0,0 @@ -/* Context.java -- SSLContext implementation. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.File; -import java.io.InputStream; - -import java.security.InvalidAlgorithmParameterException; -import java.security.KeyStoreException; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.SecureRandom; -import java.security.Security; -import java.security.UnrecoverableKeyException; -import java.sql.SQLException; - -import javax.net.ssl.KeyManager; -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.SSLContextSpi; -import javax.net.ssl.SSLSessionContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; -import javax.net.ssl.X509KeyManager; -import javax.net.ssl.X509TrustManager; - -import gnu.javax.net.ssl.NullManagerParameters; -import gnu.javax.net.ssl.SRPTrustManager; -import gnu.javax.net.ssl.StaticTrustAnchors; - -/** - * This is Jessie's implementation of a {@link javax.net.ssl.SSLContext} - * engine, and is available under the algorithm names ``SSLv3'', ``SSL'', - * ``TLSv1'', and ``TLS''. - */ -public final class Context extends SSLContextSpi -{ - - // Fields. - // ------------------------------------------------------------------------- - - private SessionContext clientSessions; - private SessionContext serverSessions; - private X509KeyManager keyManager; - private X509TrustManager trustManager; - private SRPTrustManager srpTrustManager; - private SecureRandom random; - - // Constructor. - // ------------------------------------------------------------------------- - - public Context() - { - String codec = Util.getSecurityProperty("jessie.clientSessionContext.codec"); - String codecClass = null; - if (codec == null) - { - codec = "null"; - } - if (codec.equalsIgnoreCase("xml")) - { - codecClass = "gnu.javax.net.ssl.provider.XMLSessionContext"; - } - else if (codec.equalsIgnoreCase("jdbc")) - { - codecClass = "gnu.javax.net.ssl.provider.JDBCSessionContext"; - } - else if (codec.equalsIgnoreCase("null")) - { - codecClass = "gnu.javax.net.ssl.provider.SessionContext"; - } - else - { - throw new IllegalArgumentException("no such codec: " + codec); - } - try - { - ClassLoader cl = Context.class.getClassLoader(); - if (cl == null) - { - cl = ClassLoader.getSystemClassLoader(); - } - clientSessions = (SessionContext) cl.loadClass(codecClass).newInstance(); - } - catch (Exception ex) - { - ex.printStackTrace(); - throw new IllegalArgumentException(ex.toString()); - } - - codec = Util.getSecurityProperty("jessie.serverSessionContext.codec"); - if (codec == null) - { - codec = "null"; - } - if (codec.equalsIgnoreCase("xml")) - { - codecClass = "gnu.javax.net.ssl.provider.XMLSessionContext"; - } - else if (codec.equalsIgnoreCase("jdbc")) - { - codecClass = "gnu.javax.net.ssl.provider.JDBCSessionContext"; - } - else if (codec.equalsIgnoreCase("null")) - { - codecClass = "gnu.javax.net.ssl.provider.SessionContext"; - } - else - { - throw new IllegalArgumentException("no such codec: " + codec); - } - try - { - ClassLoader cl = Context.class.getClassLoader(); - if (cl == null) - { - cl = ClassLoader.getSystemClassLoader(); - } - serverSessions = (SessionContext) cl.loadClass(codecClass).newInstance(); - } - catch (Exception ex) - { - ex.printStackTrace(); - throw new IllegalArgumentException(ex.toString()); - } - } - - // Engine methods. - // ------------------------------------------------------------------------- - - protected SSLSessionContext engineGetClientSessionContext() - { - return clientSessions; - } - - protected SSLSessionContext engineGetServerSessionContext() - { - return serverSessions; - } - - protected javax.net.ssl.SSLServerSocketFactory engineGetServerSocketFactory() - { - if (keyManager == null || (trustManager == null && srpTrustManager == null) - || random == null) - { - throw new IllegalStateException(); - } - return new SSLServerSocketFactory(trustManager, srpTrustManager, keyManager, - random, serverSessions); - } - - protected javax.net.ssl.SSLSocketFactory engineGetSocketFactory() - { - if (keyManager == null || trustManager == null || random == null) - { - throw new IllegalStateException(); - } - return new SSLSocketFactory(trustManager, keyManager, random, clientSessions); - } - - protected void engineInit(KeyManager[] keyManagers, - TrustManager[] trustManagers, SecureRandom random) - throws KeyManagementException - { - keyManager = null; - trustManager = null; - srpTrustManager = null; - if (keyManagers != null) - { - for (int i = 0; i < keyManagers.length; i++) - { - if (keyManagers[i] instanceof X509KeyManager) - { - keyManager = (X509KeyManager) keyManagers[i]; - break; - } - } - } - if (keyManager == null) - { - keyManager = defaultKeyManager(); - } - if (trustManagers != null) - { - for (int i = 0; i < trustManagers.length; i++) - { - if (trustManagers[i] instanceof X509TrustManager) - { - if (trustManager == null) - { - trustManager = (X509TrustManager) trustManagers[i]; - } - } - else if (trustManagers[i] instanceof SRPTrustManager) - { - if (srpTrustManager == null) - { - srpTrustManager = (SRPTrustManager) trustManagers[i]; - } - } - } - } - if (trustManager == null && srpTrustManager == null) - { - trustManager = defaultTrustManager(); - } - if (random != null) - { - this.random = random; - } - else - { - this.random = defaultRandom(); - } - } - - // Own methods. - // ------------------------------------------------------------------------- - - private X509KeyManager defaultKeyManager() throws KeyManagementException - { - KeyManagerFactory fact = null; - try - { - fact = KeyManagerFactory.getInstance("JessieX509", "Jessie"); - } - catch (NoSuchAlgorithmException nsae) - { - throw new KeyManagementException(); - } - catch (NoSuchProviderException nspe) - { - throw new KeyManagementException(); - } - try - { - fact.init(null, null); - return (X509KeyManager) fact.getKeyManagers()[0]; - } - catch (NoSuchAlgorithmException nsae) { } - catch (KeyStoreException kse) { } - catch (UnrecoverableKeyException uke) { } - catch (IllegalStateException ise) { } - - try - { - fact.init(new NullManagerParameters()); - return (X509KeyManager) fact.getKeyManagers()[0]; - } - catch (Exception shouldNotHappen) - { - throw new Error(shouldNotHappen.toString()); - } - } - - private X509TrustManager defaultTrustManager() throws KeyManagementException - { - try - { - TrustManagerFactory fact = - TrustManagerFactory.getInstance("JessieX509", "Jessie"); - fact.init(StaticTrustAnchors.CA_CERTS); - return (X509TrustManager) fact.getTrustManagers()[0]; - } - catch (NoSuchAlgorithmException nsae) - { - throw new KeyManagementException(nsae.toString()); - } - catch (NoSuchProviderException nspe) - { - throw new KeyManagementException(nspe.toString()); - } - catch (InvalidAlgorithmParameterException kse) - { - throw new KeyManagementException(kse.toString()); - } - } - - private SecureRandom defaultRandom() throws KeyManagementException - { - String alg = Util.getSecurityProperty("jessie.secure.random"); - if (alg == null) - { - alg = "Fortuna"; - } - SecureRandom rand = null; - try - { - rand = SecureRandom.getInstance(alg); - } - catch (NoSuchAlgorithmException nsae) - { - throw new KeyManagementException(nsae.toString()); - } - - return rand; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Debug.java b/libjava/classpath/gnu/javax/net/ssl/provider/Debug.java new file mode 100644 index 00000000000..6d0f7c3a519 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Debug.java @@ -0,0 +1,66 @@ +/* Debug.java -- Jessie debug constants. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +/** + * Debug constants for Jessie. + * + * @author Casey Marshall (csm@gnu.org) + */ +public final class Debug +{ + /** + * Set to true to dump out traces of SSL connections to the system + * logger. + */ + public static final boolean DEBUG = true; + + /** + * Set to true to dump out info about the SSL key exchange. Since this + * MAY contain sensitive data, it is a separate value. + */ + public static final boolean DEBUG_KEY_EXCHANGE = true; + + /** + * Set to true to turn on dumping of decrypted packets. Since this will + * log potentially-sensitive information (i.e., decrypted messages), only + * enable this in debug scenarios. + */ + public static final boolean DEBUG_DECRYPTION = false; +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java b/libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java new file mode 100644 index 00000000000..200d4d457cf --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/DelegatedTask.java @@ -0,0 +1,93 @@ +/* DelegatedTask.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public abstract class DelegatedTask implements Runnable +{ + private static final SystemLogger logger = SystemLogger.SYSTEM; + private boolean hasRun; + protected Throwable thrown; + + protected DelegatedTask() + { + hasRun = false; + } + + public final void run() + { + if (hasRun) + throw new IllegalStateException("task already ran"); + try + { + if (Debug.DEBUG) + logger.logv(Component.SSL_DELEGATED_TASK, + "running delegated task {0} in {1}", this, + Thread.currentThread()); + implRun(); + } + catch (Throwable t) + { + if (Debug.DEBUG) + logger.log(Component.SSL_DELEGATED_TASK, "task threw exception", t); + thrown = t; + } + finally + { + hasRun = true; + } + } + + public final boolean hasRun() + { + return hasRun; + } + + public final Throwable thrown() + { + return thrown; + } + + protected abstract void implRun() throws Throwable; +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/DiffieHellman.java b/libjava/classpath/gnu/javax/net/ssl/provider/DiffieHellman.java index ad48c795906..5a5275712a0 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/DiffieHellman.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/DiffieHellman.java @@ -39,6 +39,9 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; import java.math.BigInteger; +import java.security.AccessController; + +import gnu.java.security.action.GetSecurityPropertyAction; import gnu.javax.crypto.key.dh.GnuDHPrivateKey; /** @@ -72,7 +75,8 @@ final class DiffieHellman static GnuDHPrivateKey getParams() { BigInteger p = DiffieHellman.GROUP_5; - String group = Util.getSecurityProperty("jessie.key.dh.group"); + String group = AccessController.doPrivileged + (new GetSecurityPropertyAction("jessie.key.dh.group")); if (group != null) { group = group.trim(); diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/DigestInputStream.java b/libjava/classpath/gnu/javax/net/ssl/provider/DigestInputStream.java deleted file mode 100644 index dd138b436a1..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/DigestInputStream.java +++ /dev/null @@ -1,103 +0,0 @@ -/* DigestInputStream.java -- digesting input stream. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.FilterInputStream; -import java.io.InputStream; -import java.io.IOException; - -import gnu.java.security.hash.IMessageDigest; - -final class DigestInputStream extends FilterInputStream -{ - - // Fields. - // ------------------------------------------------------------------------- - - private IMessageDigest md5, sha; - private boolean digesting; - - // Constructor. - // ------------------------------------------------------------------------- - - DigestInputStream(InputStream in, IMessageDigest md5, IMessageDigest sha) - { - super(in); - if (md5 == null || sha == null) - throw new NullPointerException(); - this.md5 = md5; - this.sha = sha; - digesting = true; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - void setDigesting(boolean digesting) - { - this.digesting = digesting; - } - - public int read() throws IOException - { - int i = in.read(); - if (digesting && i != -1) - { - md5.update((byte) i); - sha.update((byte) i); - } - return i; - } - - public int read(byte[] buf) throws IOException - { - return read(buf, 0, buf.length); - } - - public int read(byte[] buf, int off, int len) throws IOException - { - int ret = in.read(buf, off, len); - if (digesting && ret != -1) - { - md5.update(buf, off, ret); - sha.update(buf, off, ret); - } - return ret; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/DigestOutputStream.java b/libjava/classpath/gnu/javax/net/ssl/provider/DigestOutputStream.java deleted file mode 100644 index f1548459e8c..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/DigestOutputStream.java +++ /dev/null @@ -1,107 +0,0 @@ -/* DigestOutputStream.java -- digesting output stream. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.FilterOutputStream; -import java.io.IOException; -import java.io.OutputStream; - -import gnu.java.security.hash.IMessageDigest; - -final class DigestOutputStream extends FilterOutputStream -{ - - // Fields. - // ------------------------------------------------------------------------- - - private IMessageDigest md5, sha; - private boolean digesting; - - // Constructor. - // ------------------------------------------------------------------------- - - DigestOutputStream(OutputStream out, IMessageDigest md5, IMessageDigest sha) - { - super(out); - this.md5 = md5; - this.sha = sha; - digesting = true; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - void setDigesting(boolean digesting) - { - this.digesting = digesting; - } - - public void write(int b) throws IOException - { - if (digesting) - { - md5.update((byte) b); - sha.update((byte) b); - } - out.write(b); - } - - public void write(byte[] buf) throws IOException - { - write(buf, 0, buf.length); - } - - public void write(byte[] buf, int off, int len) throws IOException - { - if (buf == null) - { - throw new NullPointerException(); - } - if (off < 0 || len < 0 || off+len > buf.length) - { - throw new ArrayIndexOutOfBoundsException(); - } - if (digesting) - { - md5.update(buf, off, len); - sha.update(buf, off, len); - } - out.write(buf, off, len); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java b/libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java new file mode 100644 index 00000000000..acf4cfa03a9 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java @@ -0,0 +1,77 @@ +/* EmptyExchangeKeys.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class EmptyExchangeKeys + extends ExchangeKeys +{ + + public EmptyExchangeKeys() + { + super(ByteBuffer.allocate(0)); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#length() + */ + public int length() + { + return 0; + } + + public String toString() + { + return toString(null); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) + */ + public String toString(String prefix) + { + String ret = "struct { };"; + if (prefix != null) ret = prefix + ret; + return ret; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java b/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java new file mode 100644 index 00000000000..ea7439bd2c6 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java @@ -0,0 +1,151 @@ +/* EncryptedPreMasterSecret.java -- RSA encrypted secret. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; + +/** + * The client's RSA-encrypted pre-master secret. + * + *

    +struct {
    +  public-key-encrypted PreMasterSecret pre_master_secret;
    +} EncryptedPreMasterSecret;
    + */ +public final class EncryptedPreMasterSecret extends ExchangeKeys implements Builder +{ + private final ProtocolVersion version; + + public EncryptedPreMasterSecret(ByteBuffer buffer, ProtocolVersion version) + { + super(buffer); + version.getClass(); + this.version = version; + } + + public EncryptedPreMasterSecret(byte[] encryptedSecret, ProtocolVersion version) + { + this(ByteBuffer.allocate(version == ProtocolVersion.SSL_3 + ? encryptedSecret.length + : encryptedSecret.length + 2), version); + ByteBuffer b = buffer.duplicate(); + if (version != ProtocolVersion.SSL_3) + b.putShort((short) encryptedSecret.length); + b.put(encryptedSecret); + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().rewind(); + } + + public byte[] encryptedSecret() + { + byte[] secret; + if (version == ProtocolVersion.SSL_3) + { + buffer.position (0); + secret = new byte[buffer.limit ()]; + buffer.get(secret); + } + else + { + int len = buffer.getShort(0) & 0xFFFF; + secret = new byte[len]; + buffer.position(2); + buffer.get(secret); + } + return secret; + } + + public void setEncryptedSecret(final byte[] secret, final int offset, final int length) + { + if (version == ProtocolVersion.SSL_3) + { + buffer.position(0); + buffer.put(secret, offset, length); + buffer.rewind(); + } + else + { + buffer.putShort(0, (short) length); + buffer.position(2); + buffer.put(secret, offset, length); + buffer.rewind(); + } + } + + public int length () + { + if (version == ProtocolVersion.SSL_3) + { + return buffer.capacity(); + } + else + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.println(" pre_master_secret = "); + out.print(Util.hexDump(encryptedSecret(), prefix != null ? prefix + " " + : " ")); + if (prefix != null) out.print(prefix); + out.print("} EncryptedPreMasterSecret;"); + return str.toString(); + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Enumerated.java b/libjava/classpath/gnu/javax/net/ssl/provider/Enumerated.java deleted file mode 100644 index 8875addab3f..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Enumerated.java +++ /dev/null @@ -1,79 +0,0 @@ -/* Enumerated.java -- Interface to enumerated types. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -/** - * An enumerated type in the SSL protocols. Enumerated values take on - * one of a set of possible numeric values, which are not specifically - * ordered, and may be extensible to a maximum value. - * - *
    enum { e1(v1), e2(v2), ... [[, (n) ]] }
    - * - *

    Enumerated types are encoded as big-endian multibyte integers, - * which take up the least possible number of bytes. Thus, an - * enumeration with up to 255 values will be encoded in a single byte, - * and so on. - * - * @author Casey Marshall (rsdio@metastatic.org) - */ -interface Enumerated -{ - - /** - * Returns the encoded value of this enumerated value, which is - * appropriate to send over-the-wire. - * - * @return The encoded value. - */ - byte[] getEncoded(); - - /** - * Returns the numeric value of this enumerated value. - * - * @return The numeric value. - */ - int getValue(); - - /** - * Returns a string representation of this enumerated value. - * - * @return The string. - */ - String toString(); -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java b/libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java new file mode 100644 index 00000000000..f161f484a57 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java @@ -0,0 +1,54 @@ +/* ExchangeKeys.java -- key exchange values. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +public abstract class ExchangeKeys implements Constructed +{ + + protected ByteBuffer buffer; + + public ExchangeKeys (final ByteBuffer buffer) + { + if (buffer != null) + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java b/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java index 1c79dd5cb26..c79e58832b8 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Extension.java @@ -38,177 +38,209 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; -final class Extension implements Constructed +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * An SSL hello extension. + * + *

    + * struct {
    + *   ExtensionType extension_type;
    + *   opaque extension_data<0..2^16-1>;
    + * } Extension;
    + * + * @author csm@gnu.org + */ +public final class Extension implements Builder, Constructed { // Fields. // ------------------------------------------------------------------------- - private final Type type; - private final byte[] value; + private ByteBuffer buffer; // Constructor. // ------------------------------------------------------------------------- - Extension(Type type, byte[] value) + public Extension(final ByteBuffer buffer) { - if (type == null || value == null) - { - throw new NullPointerException(); - } - this.type = type; - this.value = value; + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } - - // Class method. - // ------------------------------------------------------------------------- - - static Extension read(InputStream in) throws IOException + + public Extension(final Type type, final Value value) { - Type t = Type.read(in); - int len = (in.read() & 0xFF) << 8 | (in.read() & 0xFF); - byte[] v = new byte[len]; - int count = 0; - while (count < len) - { - int l = in.read(v, count, len - count); - if (l == -1) - { - throw new EOFException("unexpected end of extension"); - } - count += l; - } - return new Extension(t, v); + ByteBuffer valueBuffer = value.buffer(); + int length = 2 + 2 + valueBuffer.remaining(); + buffer = ByteBuffer.allocate(length); + buffer.putShort((short) type.getValue()); + buffer.putShort((short) valueBuffer.remaining()); + buffer.put(valueBuffer); + buffer.rewind(); } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length () + { + return (buffer.getShort (2) & 0xFFFF) + 4; + } + + public ByteBuffer buffer() { - out.write(type.getEncoded()); - out.write(value.length >>> 8 & 0xFF); - out.write(value.length & 0xFF); - out.write(value); + return (ByteBuffer) buffer.duplicate().limit(length()); } - Type getType() + public Type type() { - return type; + return Type.forValue (buffer.getShort (0) & 0xFFFF); } - byte[] getValue() + public byte[] valueBytes() { + int len = buffer.getShort (2) & 0xFFFF; + byte[] value = new byte[len]; + ((ByteBuffer) buffer.duplicate ().position (4)).get (value); return value; } + + public ByteBuffer valueBuffer() + { + int len = buffer.getShort(2) & 0xFFFF; + return ((ByteBuffer) buffer.duplicate().position(4).limit(len+4)).slice(); + } + + public Value value() + { + switch (type ()) + { + case SERVER_NAME: + return new ServerNameList(valueBuffer()); + + case MAX_FRAGMENT_LENGTH: + switch (valueBuffer().get() & 0xFF) + { + case 1: return MaxFragmentLength.LEN_2_9; + case 2: return MaxFragmentLength.LEN_2_10; + case 3: return MaxFragmentLength.LEN_2_11; + case 4: return MaxFragmentLength.LEN_2_12; + default: + throw new IllegalArgumentException("invalid max_fragment_len"); + } + + case TRUNCATED_HMAC: + return new TruncatedHMAC(); + + case CLIENT_CERTIFICATE_URL: + return new CertificateURL(valueBuffer()); + + case TRUSTED_CA_KEYS: + return new TrustedAuthorities(valueBuffer()); + + case STATUS_REQUEST: + return new CertificateStatusRequest(valueBuffer()); + + case SRP: + case CERT_TYPE: + } + return new UnresolvedExtensionValue(valueBuffer()); + } + + public void setLength (final int newLength) + { + if (newLength < 0 || newLength > 65535) + throw new IllegalArgumentException ("length is out of bounds"); + buffer.putShort (2, (short) newLength); + } + + public void setType (final Type type) + { + buffer.putShort(0, (short) type.getValue()); + } + public void setValue (byte[] value) + { + setValue (value, 0, value.length); + } + + public void setValue (final byte[] value, final int offset, final int length) + { + if (length != length ()) + throw new IllegalArgumentException ("length is different than claimed length"); + ((ByteBuffer) buffer.duplicate().position(4)).put(value, offset, length); + } + public String toString() { + return toString(null); + } + + public String toString(String prefix) + { StringWriter str = new StringWriter(); PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print (prefix); out.println("struct {"); - out.println(" type = " + type + ";"); + if (prefix != null) out.print (prefix); + out.println(" type = " + type () + ";"); + if (prefix != null) out.print (prefix); + String subprefix = " "; + if (prefix != null) subprefix = prefix + subprefix; out.println(" value ="); - out.println(Util.hexDump(value, " ")); - out.println("} Extension;"); + out.println(value().toString(subprefix)); + if (prefix != null) out.print (prefix); + out.print("} Extension;"); return str.toString(); } - // Inner class. + // Inner classes. // ------------------------------------------------------------------------- - static final class Type implements Enumerated + public static enum Type { - - // Constants and fields. - // ----------------------------------------------------------------------- - - static final Type SERVER_NAME = new Type(0); - static final Type MAX_FRAGMENT_LENGTH = new Type(1); - static final Type CLIENT_CERTIFICATE_URL = new Type(2); - static final Type TRUSTED_CA_KEYS = new Type(3); - static final Type TRUNCATED_HMAC = new Type(4); - static final Type STATUS_REQUEST = new Type(5); - static final Type SRP = new Type(6); - static final Type CERT_TYPE = new Type(7); + SERVER_NAME (0), + MAX_FRAGMENT_LENGTH (1), + CLIENT_CERTIFICATE_URL (2), + TRUSTED_CA_KEYS (3), + TRUNCATED_HMAC (4), + STATUS_REQUEST (5), + SRP (6), + CERT_TYPE (7); private final int value; - // Constructor. - // ----------------------------------------------------------------------- - private Type(int value) { this.value = value; } - // Class methods. - // ----------------------------------------------------------------------- - - static Type read(InputStream in) throws IOException + public static Type forValue (final int value) { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of input stream"); - } - int value = (i & 0xFF) << 8; - i = in.read(); - if (i == -1) + switch (value & 0xFFFF) { - throw new EOFException("unexpected end of input stream"); - } - value |= i & 0xFF; - switch (value) - { - case 0: return SERVER_NAME; - case 1: return MAX_FRAGMENT_LENGTH; - case 2: return CLIENT_CERTIFICATE_URL; - case 3: return TRUSTED_CA_KEYS; - case 4: return TRUNCATED_HMAC; - case 5: return STATUS_REQUEST; - case 6: return SRP; - case 7: return CERT_TYPE; - default: return new Type(value); + case 0: return SERVER_NAME; + case 1: return MAX_FRAGMENT_LENGTH; + case 2: return CLIENT_CERTIFICATE_URL; + case 3: return TRUSTED_CA_KEYS; + case 4: return TRUNCATED_HMAC; + case 5: return STATUS_REQUEST; + case 6: return SRP; + case 7: return CERT_TYPE; + default: return null; } } - - // Instance methods. - // ----------------------------------------------------------------------- - - public byte[] getEncoded() - { - return new byte[] { - (byte) (value >>> 8 & 0xFF), (byte) (value & 0xFF) - }; - } - + public int getValue() { return value; } - - public String toString() - { - switch (value) - { - case 0: return "server_name"; - case 1: return "max_fragment_length"; - case 2: return "client_certificate_url"; - case 3: return "trusted_ca_keys"; - case 4: return "truncated_hmac"; - case 5: return "status_request"; - case 6: return "srp"; - case 7: return "cert_type"; - default: return "unknown(" + value + ")"; - } - } + } + + public static abstract class Value implements Builder, Constructed + { } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java b/libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java new file mode 100644 index 00000000000..d5aaad62155 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ExtensionList.java @@ -0,0 +1,290 @@ +package gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.ConcurrentModificationException; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.NoSuchElementException; + +/** + * A list of extensions, that may appear in either the {@link ClientHello} or + * {@link ServerHello}. The form of the extensions list is: + * + * Extension extensions_list<1..2^16-1> + * + * @author csm + */ +public class ExtensionList implements Builder, Iterable +{ + private final ByteBuffer buffer; + private int modCount; + + public ExtensionList (ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + modCount = 0; + } + + public ExtensionList(List extensions) + { + int length = 2; + for (Extension extension : extensions) + length += extension.length(); + buffer = ByteBuffer.allocate(length); + buffer.putShort((short) (length - 2)); + for (Extension extension : extensions) + buffer.put(extension.buffer()); + buffer.rewind(); + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public Extension get (final int index) + { + int length = length (); + int i; + int n = 0; + for (i = 2; i < length && n < index; ) + { + int l = buffer.getShort (i+2) & 0xFFFF; + i += l + 4; + n++; + } + if (n < index) + throw new IndexOutOfBoundsException ("no elemenet at " + index); + int el = buffer.getShort (i+2) & 0xFFFF; + ByteBuffer b = (ByteBuffer) buffer.duplicate().position(i).limit(i+el+4); + return new Extension(b.slice()); + } + + /** + * Returns the number of extensions this list contains. + * + * @return The number of extensions. + */ + public int size () + { + int length = length (); + if (length == 0) + return 0; + int n = 0; + for (int i = 2; i < length; ) + { + int len = buffer.getShort (i+2) & 0xFFFF; + i += len + 4; + n++; + } + return n; + } + + /** + * Returns the length of this extension list, in bytes. + * + * @return The length of this extension list, in bytes. + */ + public int length () + { + return (buffer.getShort (0) & 0xFFFF) + 2; + } + + /** + * Sets the extension at index i to e. Note that setting an + * element at an index may invalidate any other elements that come + * after element at index i. In other words, no attempt is made to + * move existing elements in this list, and since extensions are variable + * length, you can not guarantee that extensions later in the list + * will still be valid. + * + *

    Thus, elements of this list must be set in order of increasing + * index. + * + * @param index The index to set the extension at. + * @param e The extension. + * @throws java.nio.BufferOverflowException If setting the extension overflows + * the buffer. + * @throws IllegalArgumentException If it isn't possible to find the given index + * in the current list (say, if no element index - 1 is set), or if setting + * the extension will overflow the current list length (given by {@link + * #length()}). + */ + public void set (final int index, Extension e) + { + int length = length(); + int n = 0; + int i; + for (i = 2; i < length && n < index; ) + { + int len = buffer.getShort(i+2) & 0xFFFF; + i += len + 4; + n++; + } + if (n < index) + throw new IllegalArgumentException("nothing set at index " + (index-1) + + " or insufficient space"); + if (i + e.length() + 2 > length) + throw new IllegalArgumentException("adding this element will exceed the " + + "list length"); + buffer.putShort(i, (short) e.type().getValue()); + buffer.putShort(i+2, (short) e.length()); + ((ByteBuffer) buffer.duplicate().position(i+4)).put (e.valueBuffer()); + modCount++; + } + + /** + * Reserve space for an extension at index i in the list. In other + * words, this does the job of {@link #set(int, Extension)}, but does not + * copy the extension value to the underlying buffer. + * + * @param index The index of the extension to reserve space for. + * @param t The type of the extension. + * @param eLength The number of bytes to reserve for this extension. The total + * number of bytes used by this method is this length, plus four. + */ + public void set (final int index, Extension.Type t, final int eLength) + { + int length = length (); + int n = 0; + int i; + for (i = 2; i < length && n < index; ) + { + int len = buffer.getShort (i+2) & 0xFFFF; + i += len + 4; + n++; + } + if (n < index) + throw new IllegalArgumentException ("nothing set at index " + (index-1) + + " or insufficient space"); + if (i + eLength + 2 > length) + throw new IllegalArgumentException ("adding this element will exceed the " + + "list length"); + buffer.putShort(i, (short) t.getValue()); + buffer.putShort(i+2, (short) eLength); + modCount++; + } + + /** + * Set the total length of this list, in bytes. + * + * @param newLength The new list length. + */ + public void setLength (final int newLength) + { + if (newLength < 0 || newLength > 65535) + throw new IllegalArgumentException ("invalid length"); + buffer.putShort (0, (short) newLength); + modCount++; + } + + public Iterator iterator() + { + return new ExtensionsIterator(); + } + + public String toString() + { + return toString (null); + } + + public String toString(final String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("ExtensionList {"); + if (prefix != null) out.print(prefix); + out.print(" length = "); + out.print(length()); + out.println(";"); + String subprefix = " "; + if (prefix != null) + subprefix = prefix + subprefix; + for (Extension e : this) + out.println(e.toString(subprefix)); + if (prefix != null) out.print(prefix); + out.print("};"); + return str.toString(); + } + + /** + * List iterator interface to an extensions list. + * + * @author csm@gnu.org + */ + public final class ExtensionsIterator implements ListIterator + { + private final int modCount; + private int index; + private final int size; + + public ExtensionsIterator () + { + this.modCount = ExtensionList.this.modCount; + index = 0; + size = size (); + } + + public boolean hasNext() + { + return index < size; + } + + public boolean hasPrevious() + { + return index > 0; + } + + public Extension next() throws NoSuchElementException + { + if (modCount != ExtensionList.this.modCount) + throw new ConcurrentModificationException (); + if (!hasNext ()) + throw new NoSuchElementException (); + return get (index++); + } + + public Extension previous() throws NoSuchElementException + { + if (modCount != ExtensionList.this.modCount) + throw new ConcurrentModificationException (); + if (!hasPrevious ()) + throw new NoSuchElementException (); + return get (--index); + } + + public int nextIndex() + { + if (hasNext ()) + return index + 1; + return index; + } + + public int previousIndex() + { + if (hasPrevious ()) + return index - 1; + return -1; + } + + public void add(Extension e) + { + throw new UnsupportedOperationException ("cannot add items to this iterator"); + } + + public void remove() + { + throw new UnsupportedOperationException ("cannot remove items from this iterator"); + } + + public void set(Extension e) + { + ExtensionList.this.set (index, e); + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Extensions.java b/libjava/classpath/gnu/javax/net/ssl/provider/Extensions.java deleted file mode 100644 index 9ed9619f06f..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Extensions.java +++ /dev/null @@ -1,159 +0,0 @@ -/* Extensions.java -- various static extension utilities. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -import javax.security.auth.x500.X500Principal; - -import gnu.java.security.x509.X500DistinguishedName; - -final class Extensions -{ - - // Constants. - // ------------------------------------------------------------------------- - - private static final Integer _512 = new Integer(512), - _1024 = new Integer(1024), _2048 = new Integer(2048), - _4096 = new Integer(4096); - - // Class methods only. - private Extensions() { } - - // Class methods. - // ------------------------------------------------------------------------- - - static List getServerName(Extension ex) - { - LinkedList l = new LinkedList(); - byte[] buf = ex.getValue(); - int pos = 0; - try - { - while (pos < buf.length) - { - if (buf[pos++] != 0) - break; - int len = (buf[pos++] & 0xFF) << 8; - len |= buf[pos++] & 0xFF; - l.add(new String(buf, pos, len, "UTF-8")); - pos += len; - } - } - catch (Exception x) - { - } - return Collections.unmodifiableList(l); - } - - static List getClientCertTypes(Extension ex) throws IOException - { - List l = new LinkedList(); - ByteArrayInputStream in = new ByteArrayInputStream(ex.getValue()); - final int len = in.read() & 0xFF; - for (int i = 0; i < len; i++) - { - l.add(CertificateType.read(in)); - } - return Collections.unmodifiableList(l); - } - - static CertificateType getServerCertType(Extension ex) throws IOException - { - return CertificateType.read(new ByteArrayInputStream(ex.getValue())); - } - - static Integer getMaxFragmentLength(Extension ex) - { - switch (ex.getValue()[0] & 0xFF) - { - case 1: return _512; - case 2: return _1024; - case 3: return _2048; - case 4: return _4096; - } - throw new IllegalArgumentException(); - } - - static Object[] getTrustedCA(Extension ex) - { - byte[] buf = ex.getValue(); - int type = buf[0] & 0xFF; - try - { - switch (type) - { - case 0: - return new Object[] { new Integer(type), null }; - case 1: - case 3: - return new Object[] { new Integer(type), - Util.trim(buf, 1, 20) }; - case 2: - return new Object[] { new Integer(type), - new X500Principal(Util.trim(buf, 1, 20)) }; - } - } - catch (Exception x) - { - } - throw new IllegalArgumentException(); - } - - static String getSRPUsername(Extension ex) - { - int len = ex.getValue()[0] & 0xFF; - if (len > ex.getValue().length - 1) - throw new IllegalArgumentException(); - try - { - return new String(ex.getValue(), 1, len, "UTF-8"); - } - catch (UnsupportedEncodingException uee) - { - throw new Error(uee.toString()); - } - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Finished.java b/libjava/classpath/gnu/javax/net/ssl/provider/Finished.java index 8b9c220a527..9a2a4707aa0 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Finished.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Finished.java @@ -38,10 +38,10 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.DataInputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; final class Finished implements Handshake.Body { @@ -49,95 +49,125 @@ final class Finished implements Handshake.Body // Fields. // ------------------------------------------------------------------------- - /** TLSv1.x verify data. */ - private final byte[] verifyData; - - /** SSLv3 message digest pair. */ - private final byte[] md5, sha; + private final ByteBuffer buffer; + private final ProtocolVersion version; // Constructor. // ------------------------------------------------------------------------- - Finished(byte[] verifyData) + Finished (final ByteBuffer buffer, final ProtocolVersion version) { - this.verifyData = verifyData; - md5 = sha = null; + buffer.getClass (); + version.getClass (); + this.buffer = buffer; + this.version = version; } - Finished(byte[] md5, byte[] sha) + // Instance methods. + // ------------------------------------------------------------------------- + + public int length () { - this.md5 = md5; - this.sha = sha; - verifyData = null; + if (version.compareTo(ProtocolVersion.TLS_1) >= 0) + return 12; + if (version == ProtocolVersion.SSL_3) + return 36; + throw new IllegalArgumentException ("length for this version unknown"); } - // Class methods. - // ------------------------------------------------------------------------- - - static Finished read(InputStream in, CipherSuite suite) - throws IOException + byte[] verifyData() { - DataInputStream din = new DataInputStream(in); - if (suite.getVersion().equals(ProtocolVersion.SSL_3)) + if (version.compareTo(ProtocolVersion.TLS_1) >= 0) { - byte[] md5 = new byte[16]; - byte[] sha = new byte[20]; - din.readFully(md5); - din.readFully(sha); - return new Finished(md5, sha); + byte[] verify = new byte[12]; + buffer.position (0); + buffer.get (verify); + return verify; } - else + throw new IllegalArgumentException ("not TLSv1.0 or later"); + } + + byte[] md5Hash() + { + if (version == ProtocolVersion.SSL_3) { - byte[] buf = new byte[12]; - din.readFully(buf); - return new Finished(buf); + byte[] md5 = new byte[16]; + buffer.position (0); + buffer.get (md5); + return md5; } + throw new IllegalArgumentException ("not SSLv3"); } - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException + byte[] shaHash() { - if (verifyData != null) - out.write(verifyData); - else + if (version == ProtocolVersion.SSL_3) { - out.write(md5); - out.write(sha); + byte[] sha = new byte[20]; + buffer.position (16); + buffer.get (sha); + return sha; } + throw new IllegalArgumentException ("not SSLv3"); + } + + void setVerifyData (final byte[] verifyData, final int offset) + { + if (version == ProtocolVersion.SSL_3) + throw new IllegalArgumentException ("not TLSv1"); + buffer.position (0); + buffer.put (verifyData, offset, 12); } - byte[] getVerifyData() + void setMD5Hash (final byte[] md5, final int offset) { - return verifyData; + if (version != ProtocolVersion.SSL_3) + throw new IllegalArgumentException ("not SSLv3"); + buffer.position (0); + buffer.put (md5, offset, 16); } - byte[] getMD5Hash() + void setShaHash (final byte[] sha, final int offset) { - return md5; + if (version != ProtocolVersion.SSL_3) + throw new IllegalArgumentException ("not SSLv3"); + buffer.position (16); + buffer.put (sha, offset, 20); } - byte[] getSHAHash() + public String toString () { - return sha; + return toString (null); } - public String toString() + public String toString (final String prefix) { - String nl = System.getProperty("line.separator"); - if (verifyData != null) + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) + out.print (prefix); + out.println ("struct {"); + if (prefix != null) + out.print (prefix); + if (version.compareTo(ProtocolVersion.TLS_1) >= 0) { - return "struct {" + nl + - " verifyData = " + Util.toHexString(verifyData, ':') + ";" + nl + - "} Finished;" + nl; + out.print (" verifyData = "); + out.print (Util.toHexString (verifyData (), ':')); } - else + else if (version == ProtocolVersion.SSL_3) { - return "struct {" + nl + - " md5Hash = " + Util.toHexString(md5, ':') + ";" + nl + - " shaHash = " + Util.toHexString(sha, ':') + ";" + nl + - "} Finished;" + nl; + out.print (" md5 = "); + out.print (Util.toHexString (md5Hash (), ':')); + out.println (';'); + if (prefix != null) + out.print (prefix); + out.print (" sha = "); + out.print (Util.toHexString (shaHash (), ':')); } + out.println (';'); + if (prefix != null) + out.print (prefix); + out.print ("} Finished;"); + return str.toString (); } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/GNUSecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/GNUSecurityParameters.java deleted file mode 100644 index a04c3fd5c15..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/GNUSecurityParameters.java +++ /dev/null @@ -1,490 +0,0 @@ -/* GNUSecurityParameters.java -- SSL security parameters. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; - -import java.security.SecureRandom; -import java.security.Security; -import java.util.Arrays; -import java.util.zip.DataFormatException; -import java.util.zip.Deflater; -import java.util.zip.Inflater; - -import javax.net.ssl.SSLException; - -import gnu.javax.crypto.mac.IMac; -import gnu.javax.crypto.mode.IMode; -import gnu.java.security.prng.IRandom; -import gnu.java.security.prng.LimitReachedException; - -/** - * This class implements the {@link SecurityParameters} interface, using the - * GNU Crypto interface for ciphers and macs, and the JZlib package for - * record compression. - */ -class GNUSecurityParameters implements SecurityParameters -{ - - // Fields. - // ------------------------------------------------------------------------- - - private static final boolean DEBUG_RECORD_LAYER = false; - private static final PrintWriter debug = new PrintWriter (System.err, true); - - /** - * The CBC block cipher, if any. - */ - IMode inCipher, outCipher; - - /** - * The RC4 PRNG, if any. - */ - IRandom inRandom, outRandom; - - /** - * The MAC algorithm. - */ - IMac inMac, outMac; - - long inSequence, outSequence; - Session session; - ProtocolVersion version; - int fragmentLength; - private Inflater inflater; - private Deflater deflater; - - // Constructors. - // ------------------------------------------------------------------------- - - GNUSecurityParameters (Session session) - { - inSequence = 0; - outSequence = 0; - this.session = session; - fragmentLength = 16384; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void reset() - { - inSequence = 0L; - outSequence = 0L; - inCipher = null; - outCipher = null; - inMac = null; - outMac = null; - inRandom = null; - outRandom = null; - deflater = null; - inflater = null; - } - - public ProtocolVersion getVersion() - { - return version; - } - - public void setVersion(ProtocolVersion version) - { - this.version = version; - } - - public void setInCipher(Object inCipher) - { - if (inCipher instanceof IMode) - { - this.inCipher = (IMode) inCipher; - inRandom = null; - } - else - { - inRandom = (IRandom) inCipher; - this.inCipher = null; - } - } - - public void setOutCipher(Object outCipher) - { - if (outCipher instanceof IMode) - { - this.outCipher = (IMode) outCipher; - outRandom = null; - } - else - { - outRandom = (IRandom) outCipher; - this.outCipher = null; - } - } - - public void setInMac(Object inMac) - { - this.inMac = (IMac) inMac; - inSequence = 0L; - } - - public void setOutMac(Object outMac) - { - this.outMac = (IMac) outMac; - outSequence = 0L; - } - - public void setDeflating (boolean deflate) - { - if (deflate) - { - if (deflater == null) - deflater = new Deflater(); - } - else - deflater = null; - } - - public void setInflating (boolean inflate) - { - if (inflate) - { - if (inflater == null) - inflater = new Inflater(); - } - else - inflater = null; - } - - public int getFragmentLength() - { - return fragmentLength; - } - - public void setFragmentLength (int fragmentLength) - { - this.fragmentLength = fragmentLength; - } - - /** - * Decrypt, verify, and decompress a fragment, returning the transformed - * fragment. - * - * @param fragment The fragment to decrypt. - * @param version The protocol version of the fragment's record. - * @param type The content type of the record. - * @return The decrypted fragment. - * @throws MacException If the MAC could not be verified. - * @throws OverflowException If the inflated data is too large. - * @throws SSLException If decompressing fails. - */ - public synchronized byte[] decrypt (byte[] fragment, ProtocolVersion version, - ContentType type) - throws MacException, OverflowException, SSLException - { - boolean badPadding = false; - - // Decrypt the ciphertext, if it is encrypted. - if (inCipher != null) - { - int bs = inCipher.currentBlockSize (); - for (int i = 0; i < fragment.length; i += bs) - { - inCipher.update (fragment, i, fragment, i); - } - int padLen = fragment[fragment.length-1] & 0xFF; - int len = fragment.length - padLen - 1; - if (version == ProtocolVersion.SSL_3) - { - // SSLv3 requires that the padding length not exceed the - // cipher's block size. - if (padLen >= bs) - { - badPadding = true; - } - } - else - { - for (int i = len; i < fragment.length; i++) - { - // If the TLS padding is wrong, throw a MAC exception below. - if ((fragment[i] & 0xFF) != padLen) - { - badPadding = true; - } - } - } - fragment = Util.trim (fragment, len); - } - else if (inRandom != null) - { - transformRC4 (fragment, 0, fragment.length, fragment, 0, inRandom); - } - - // Check the MAC. - if (inMac != null) - { - inMac.update ((byte) (inSequence >>> 56)); - inMac.update ((byte) (inSequence >>> 48)); - inMac.update ((byte) (inSequence >>> 40)); - inMac.update ((byte) (inSequence >>> 32)); - inMac.update ((byte) (inSequence >>> 24)); - inMac.update ((byte) (inSequence >>> 16)); - inMac.update ((byte) (inSequence >>> 8)); - inMac.update ((byte) inSequence); - inMac.update ((byte) type.getValue()); - if (version != ProtocolVersion.SSL_3) - { - inMac.update ((byte) version.getMajor()); - inMac.update ((byte) version.getMinor()); - } - int macLen = inMac.macSize (); - int fragLen = fragment.length - macLen; - inMac.update ((byte) (fragLen >>> 8)); - inMac.update ((byte) fragLen); - inMac.update (fragment, 0, fragLen); - byte[] mac = inMac.digest (); - inMac.reset (); - for (int i = 0; i < macLen; i++) - { - if (fragment[i + fragLen] != mac[i]) - { - throw new MacException(); - } - } - if (badPadding) - { - throw new MacException(); - } - fragment = Util.trim (fragment, fragLen); - } - - if (inflater != null) - { - byte[] buf = new byte[1024]; - ByteArrayOutputStream bout = new ByteArrayOutputStream (fragment.length << 1); - inflater.setInput (fragment); - int len; - try - { - while ((len = inflater.inflate (buf)) > 0) - { - bout.write (buf, 0, len); - if (bout.size() > fragmentLength + 1024) - throw new OverflowException ("inflated data too large"); - } - } - catch (DataFormatException dfe) - { - throw new SSLException (String.valueOf (dfe)); - } - fragment = bout.toByteArray(); - inflater.reset(); - } - - inSequence++; - return fragment; - } - - /** - * Compress, MAC, encrypt, and write a record. The fragment of the - * record is taken from buf as len bytes starting at - * offset. len must be smaller than or equal to - * the configured fragment length. - * - * @param buf The fragment bytes. - * @param off The offset from whence to read. - * @param len The size of the fragment. - * @param type The content-type for this record. - * @param out The output stream to write the record to. - * @throws IOException If an I/O error occurs. - * @throws SSLException If compression fails. - * @throws OverflowException If compression inflates the data beyond - * the fragment length plus 1024 bytes. - */ - public synchronized byte[] encrypt (byte[] buf, int off, int len, - ContentType type) - throws SSLException, OverflowException - { - // If we are compressing, do it. - if (deflater != null) - { - byte[] buf2 = new byte[1024]; - ByteArrayOutputStream bout = new ByteArrayOutputStream (len >>> 1); - deflater.setInput (buf, off, len); - deflater.finish(); - len = 0; - while ((len = deflater.deflate (buf2)) > 0) - bout.write (buf2, 0, len); - // This should technically never happen for zlib. - if (bout.size() > fragmentLength + 1024) - throw new OverflowException ("deflated data too large"); - buf = bout.toByteArray(); - off = 0; - len = buf.length; - deflater.reset(); - } - - // If there is a MAC, compute it. - byte[] mac = new byte[0]; - if (outMac != null) - { - outMac.update((byte) (outSequence >>> 56)); - outMac.update((byte) (outSequence >>> 48)); - outMac.update((byte) (outSequence >>> 40)); - outMac.update((byte) (outSequence >>> 32)); - outMac.update((byte) (outSequence >>> 24)); - outMac.update((byte) (outSequence >>> 16)); - outMac.update((byte) (outSequence >>> 8)); - outMac.update((byte) outSequence); - outMac.update((byte) type.getValue()); - if (version != ProtocolVersion.SSL_3) - { - outMac.update((byte) version.getMajor()); - outMac.update((byte) version.getMinor()); - } - outMac.update((byte) (len >>> 8)); - outMac.update((byte) len); - outMac.update(buf, off, len); - mac = outMac.digest(); - outMac.reset(); - } - outSequence++; - - // Compute padding if needed. - byte[] pad = new byte[0]; - if (outCipher != null) - { - int padLen = outCipher.currentBlockSize() - - ((len + mac.length + 1) % outCipher.currentBlockSize()); - // Use a random amount of padding if the protocol is TLS. - if (version != ProtocolVersion.SSL_3 && session.random != null) - { - padLen += (Math.abs(session.random.nextInt ()) & 7) * - outCipher.currentBlockSize(); - while (padLen > 255) - { - padLen -= outCipher.currentBlockSize(); - } - } - pad = new byte[padLen+1]; - Arrays.fill (pad, (byte) padLen); - } - - // Write the record header. - final int fraglen = len + mac.length + pad.length; - - // Encrypt and write the fragment. - if (outCipher != null) - { - byte[] buf2 = new byte[fraglen]; - System.arraycopy (buf, off, buf2, 0, len); - System.arraycopy (mac, 0, buf2, len, mac.length); - System.arraycopy (pad, 0, buf2, len + mac.length, pad.length); - int bs = outCipher.currentBlockSize (); - for (int i = 0; i < fraglen; i += bs) - { - outCipher.update (buf2, i, buf2, i); - } - return buf2; - } - else if (outRandom != null) - { - byte[] buf2 = new byte[fraglen]; - transformRC4 (buf, off, len, buf2, 0, outRandom); - transformRC4 (mac, 0, mac.length, buf2, len, outRandom); - return buf2; - } - else - { - if (mac.length == 0) - { - return Util.trim (buf, off, len); - } - else - { - return Util.concat (Util.trim (buf, off, len), mac); - } - } - } - - // Own methods. - // ------------------------------------------------------------------------- - - /** - * Encrypt/decrypt a byte array with the RC4 stream cipher. - * - * @param in The input data. - * @param off The input offset. - * @param len The number of bytes to transform. - * @param out The output buffer. - * @param outOffset The offest into the output buffer. - * @param random The ARCFOUR PRNG. - */ - private static void transformRC4(byte[] in, int off, int len, - byte[] out, int outOffset, IRandom random) - { - if (random == null) - { - throw new IllegalStateException(); - } - if (in == null || out == null) - { - throw new NullPointerException(); - } - if (off < 0 || off + len > in.length || - outOffset < 0 || outOffset + len > out.length) - { - throw new ArrayIndexOutOfBoundsException(); - } - - try - { - for (int i = 0; i < len; i++) - { - out[outOffset+i] = (byte) (in[off+i] ^ random.nextByte()); - } - } - catch (LimitReachedException cannotHappen) - { - throw new Error(cannotHappen.toString()); - } - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java b/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java dissimilarity index 72% index ef9e72381c1..52f61424e4c 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java @@ -1,440 +1,314 @@ -/* Handshake.java -- SSL handshake message. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; - -import java.security.PublicKey; - -import java.util.ArrayList; -import java.util.Collections; - -import javax.net.ssl.SSLProtocolException; - -final class Handshake implements Constructed -{ - - // Fields. - // ------------------------------------------------------------------------- - - private static final buffer BUF = new buffer(); - - private final Type type; - private final Body body; - - // Constructors. - // ------------------------------------------------------------------------- - - Handshake(Type type, Body body) - { - this.type = type; - this.body = body; - } - - // Class methods. - // ------------------------------------------------------------------------- - - static Handshake read(byte[] buffer) throws IOException - { - return read(new ByteArrayInputStream(buffer)); - } - - static Handshake read(byte[] buffer, CipherSuite suite, PublicKey key) - throws IOException - { - return read(new ByteArrayInputStream(buffer), suite, key); - } - - static Handshake read(InputStream in) throws IOException - { - return read(in, null, null); - } - - static Handshake read(InputStream in, CipherSuite suite, PublicKey key) - throws IOException - { - return read(in, suite, key, null); - } - - static Handshake read(InputStream in, CertificateType certType) - throws IOException - { - return read(in, null, null, certType); - } - - static Handshake read(InputStream in, CipherSuite suite, PublicKey key, - CertificateType certType) - throws IOException - { - Type type = Type.read(in); - byte[] lenbuf = new byte[3]; - in.read(lenbuf); - int len = (lenbuf[0] & 0xFF) << 16 | (lenbuf[1] & 0xFF) << 8 - | (lenbuf[2] & 0xFF); - Body body = null; - if (type == Type.HELLO_REQUEST) - { - body = null; - } - else if (type == Type.CLIENT_HELLO) - { - // Most likely a V2 hello. If the first byte is 0x30, and if this - // is not a V2 client hello, then it is a V3 client hello with - // at least 1.5 million cipher specs, which is unlikely. - if (lenbuf[0] == 3 && (lenbuf[1] >= 0 && lenbuf[1] <= 2)) - { - ProtocolVersion vers = null; - switch (lenbuf[1]) - { - case 0: - vers = ProtocolVersion.SSL_3; - break; - case 1: - vers = ProtocolVersion.TLS_1; - break; - case 2: - vers = ProtocolVersion.TLS_1_1; - break; - } - int specLen = (lenbuf[2] & 0xFF) << 8 | (in.read() & 0xFF); - int idLen = (in.read() & 0xFF) << 8 | (in.read() & 0xFF); - int chalLen = (in.read() & 0xFF) << 8 | (in.read() & 0xFF); - - ArrayList suites = new ArrayList(specLen / 3); - for (int i = 0; i < specLen; i += 3) - { - if (in.read() == 0) - { - suites.add(CipherSuite.read(in).resolve(vers)); - } - else - { - in.read(); - in.read(); - } - } - byte[] id = new byte[idLen]; - in.read(id); - byte[] challenge = new byte[chalLen]; - in.read(challenge); - if (challenge.length > 32) - challenge = Util.trim(challenge, 32); - else if (challenge.length < 32) - { - byte[] b = new byte[32]; - System.arraycopy(challenge, 0, b, b.length - challenge.length, - challenge.length); - challenge = b; - } - int time = (challenge[0] & 0xFF) << 24 | (challenge[1] & 0xFF) << 16 - | (challenge[2] & 0xFF) << 8 | (challenge[3] & 0xFF); - Random rand = new Random(time, Util.trim(challenge, 4, 28)); - return new Handshake(Handshake.Type.CLIENT_HELLO, - new ClientHello(vers, rand, id, suites, - Collections.singletonList(CompressionMethod.NULL))); - } - // Since hello messages may contain extensions, we read the whole - // thing here. - byte[] buf = new byte[len]; - int count = 0; - while (count < len) - { - int l = in.read(buf, count, len - count); - if (l == -1) - { - throw new EOFException("unexpected end of input stream"); - } - count += l; - } - body = ClientHello.read(new ByteArrayInputStream(buf)); - } - else if (type == Type.SERVER_HELLO) - { - byte[] buf = new byte[len]; - int count = 0; - while (count < len) - { - int l = in.read(buf, count, len - count); - if (l == -1) - { - throw new EOFException("unexpected end of input stream"); - } - count += l; - } - body = ServerHello.read(new ByteArrayInputStream(buf)); - } - else if (type == Type.CERTIFICATE) - { - body = Certificate.read(in, certType); - } - else if (type == Type.SERVER_KEY_EXCHANGE) - { - body = ServerKeyExchange.read(in, suite, key); - } - else if (type == Type.CERTIFICATE_REQUEST) - { - body = CertificateRequest.read(in); - } - else if (type == Type.CERTIFICATE_VERIFY) - { - body = (CertificateVerify) CertificateVerify.read(in, suite, key); - } - else if (type == Type.CLIENT_KEY_EXCHANGE) - { - body = ClientKeyExchange.read(in, suite, key); - } - else if (type == Type.SERVER_HELLO_DONE) - { - body = null; - } - else if (type == Type.FINISHED) - { - body = Finished.read(in, suite); - } - else - { - throw new SSLProtocolException("unknown HandshakeType: " + - type.getValue()); - } - - return new Handshake(type, body); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) - { - throw new UnsupportedOperationException(); - } - - public int write(OutputStream out, ProtocolVersion version) - throws IOException - { - out.write(type.getValue()); - if (body == null) - { - out.write(0); - out.write(0); - out.write(0); - return 4; - } - else - { - ByteArrayOutputStream bout = BUF.getBuffer(); - bout.reset(); - if (body instanceof ServerKeyExchange) - { - ((ServerKeyExchange) body).write(bout, version); - } - else if (body instanceof ClientKeyExchange) - { - ((ClientKeyExchange) body).write(bout, version); - } - else if (body instanceof CertificateVerify) - { - ((CertificateVerify) body).write(bout, version); - } - else - { - body.write(bout); - } - out.write(bout.size() >>> 16 & 0xFF); - out.write(bout.size() >>> 8 & 0xFF); - out.write(bout.size() & 0xFF); - bout.writeTo(out); - return 4 + bout.size(); - } - } - - Type getType() - { - return type; - } - - Body getBody() - { - return body; - } - - public String toString() - { - StringWriter str = new StringWriter(); - PrintWriter out = new PrintWriter(str); - String nl = System.getProperty("line.separator"); - StringBuffer buf = new StringBuffer(); - out.println("struct {"); - out.println(" type = " + type + ";"); - if (body != null) - { - BufferedReader r = new BufferedReader(new StringReader(body.toString())); - String s; - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) - { - } - } - out.println("} Handshake;"); - return str.toString(); - } - - // Inner class. - // ------------------------------------------------------------------------- - - static interface Body extends Constructed - { - } - - static class Type implements Enumerated - { - - // Constants and fields. - // ----------------------------------------------------------------------- - - public static final Type - HELLO_REQUEST = new Type( 0), CLIENT_HELLO = new Type( 1), - SERVER_HELLO = new Type( 2), CERTIFICATE = new Type(11), - SERVER_KEY_EXCHANGE = new Type(12), CERTIFICATE_REQUEST = new Type(13), - SERVER_HELLO_DONE = new Type(14), CERTIFICATE_VERIFY = new Type(15), - CLIENT_KEY_EXCHANGE = new Type(16), FINISHED = new Type(20), - CERTIFICATE_URL = new Type(21), CERTIFICATE_STATUS = new Type(22); - - private final int value; - - // Constructor. - // ----------------------------------------------------------------------- - - private Type(int value) - { - this.value = value; - } - - // Class methods. - // ----------------------------------------------------------------------- - - public static Type read(InputStream in) throws IOException - { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of input stream"); - } - switch (i & 0xFF) - { - case 0: return HELLO_REQUEST; - case 1: return CLIENT_HELLO; - case 2: return SERVER_HELLO; - case 11: return CERTIFICATE; - case 12: return SERVER_KEY_EXCHANGE; - case 13: return CERTIFICATE_REQUEST; - case 14: return SERVER_HELLO_DONE; - case 15: return CERTIFICATE_VERIFY; - case 16: return CLIENT_KEY_EXCHANGE; - case 20: return FINISHED; - case 21: return CERTIFICATE_URL; - case 22: return CERTIFICATE_STATUS; - default: return new Type(i); - } - } - - // Instance methods. - // ----------------------------------------------------------------------- - - public byte[] getEncoded() - { - return new byte[] { (byte) value }; - } - - public int getValue() - { - return value; - } - - public String toString() - { - switch (value) - { - case 0: return "hello_request"; - case 1: return "client_hello"; - case 2: return "server_hello"; - case 11: return "certificate"; - case 12: return "server_key_exchange"; - case 13: return "certificate_request"; - case 14: return "server_hello_done"; - case 15: return "certificate_verify"; - case 16: return "client_key_exchange"; - case 20: return "finished"; - case 21: return "certificate_url"; - case 22: return "certificate_status"; - default: return "unknown(" + value + ")"; - } - } - } - - private static class buffer extends ThreadLocal - { - static final int SIZE = 2048; - - protected Object initialValue() - { - return new ByteArrayOutputStream(SIZE); - } - - ByteArrayOutputStream getBuffer() - { - return (ByteArrayOutputStream) get(); - } - } -} +/* Handshake.java -- SSL Handshake message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.EOFException; +import java.io.InputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.StringReader; +import java.io.StringWriter; + +import java.nio.ByteBuffer; + +import java.security.PublicKey; + +import java.util.ArrayList; +import java.util.Collections; + +import javax.net.ssl.SSLProtocolException; + +/** + * An SSL handshake message. SSL handshake messages have the following + * form: + * + *

    +struct
    +{
    +  HandshakeType msg_type;
    +  uint24        length;
    +  select (msg_type)
    +  {
    +    case hello_request:       HelloRequest;
    +    case client_hello:        ClientHello;
    +    case server_hello:        ServerHello;
    +    case certificate:         Certificate;
    +    case server_key_exchange: ServerKeyExchange;
    +    case certificate_request: CertificateRequest;
    +    case server_hello_done:   ServerHelloDone;
    +    case certificate_verify:  CertificateVerify;
    +    case client_key_exchange: ClientKeyExchange;
    +    case finished:            Finished;
    +  } body;
    +};
    + */ +public final class Handshake implements Constructed +{ + + // Fields. + // ------------------------------------------------------------------------- + + private final ByteBuffer buffer; + private final CipherSuite suite; + private final ProtocolVersion version; + + // Constructors. + // ------------------------------------------------------------------------- + + public Handshake (final ByteBuffer buffer) + { + this (buffer, null, ProtocolVersion.TLS_1_1); + } + + public Handshake (final ByteBuffer buffer, final CipherSuite suite, + final ProtocolVersion version) + { + this.buffer = buffer; + this.suite = suite; + this.version = version; + } + + // Instance methods. + // ------------------------------------------------------------------------- + + /** + * Returns the handshake type. + * + * @return The handshake type. + */ + public Type type() + { + return Type.forInteger (buffer.get (0) & 0xFF); + } + + /** + * Returns the message length. + * + * @return The message length. + */ + public int length () + { + // Length is a uint24. + return buffer.getInt (0) & 0xFFFFFF; + } + + /** + * Returns the handshake message body. Depending on the handshake + * type, some implementation of the Body interface is returned. + * + * @return The handshake body. + */ + public Body body() + { + Type type = type (); + ByteBuffer bodyBuffer = bodyBuffer (); + switch (type) + { + case HELLO_REQUEST: + return new HelloRequest (); + + case CLIENT_HELLO: + return new ClientHello (bodyBuffer); + + case SERVER_HELLO: + return new ServerHello (bodyBuffer); + + case CERTIFICATE: + return new Certificate (bodyBuffer, CertificateType.X509); + + case SERVER_KEY_EXCHANGE: + return new ServerKeyExchange (bodyBuffer, suite); + + case CERTIFICATE_REQUEST: + return new CertificateRequest (bodyBuffer); + + case SERVER_HELLO_DONE: + return new ServerHelloDone (); + + case CERTIFICATE_VERIFY: + return new CertificateVerify (bodyBuffer, suite.signatureAlgorithm ()); + + case CLIENT_KEY_EXCHANGE: + return new ClientKeyExchange (bodyBuffer, suite, version); + + case FINISHED: + return new Finished (bodyBuffer, version); + + case CERTIFICATE_URL: + case CERTIFICATE_STATUS: + throw new UnsupportedOperationException ("FIXME"); + } + throw new IllegalArgumentException ("unknown handshake type " + type); + } + + /** + * Returns a subsequence of the underlying buffer, containing only + * the bytes that compose the handshake body. + * + * @return The body's byte buffer. + */ + public ByteBuffer bodyBuffer () + { + int length = length (); + return ((ByteBuffer) buffer.position (4).limit (4 + length)).slice (); + } + + /** + * Sets the handshake body type. + * + * @param type The handshake type. + */ + public void setType (final Type type) + { + buffer.put (0, (byte) type.getValue ()); + } + + /** + * Sets the length of the handshake body. + * + * @param length The handshake body length. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writable. + * @throws IllegalArgumentException of length is not + * between 0 and 16777215, inclusive. + */ + public void setLength (final int length) + { + if (length < 0 || length > 0xFFFFFF) + throw new IllegalArgumentException ("length " + length + " out of range;" + + " must be between 0 and 16777215"); + buffer.put (1, (byte) (length >>> 16)); + buffer.put (2, (byte) (length >>> 8)); + buffer.put (3, (byte) length); + } + + public String toString() + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print (prefix); + out.println("struct {"); + if (prefix != null) out.print (prefix); + out.print (" type: "); + out.print (type ()); + out.println (";"); + Body body = body (); + out.println (body.toString (prefix != null ? (prefix + " ") : " ")); + if (prefix != null) out.print (prefix); + out.print ("} Handshake;"); + return str.toString(); + } + + // Inner class. + // ------------------------------------------------------------------------- + + public static interface Body extends Constructed + { + int length (); + + String toString (String prefix); + } + + public static enum Type + { + HELLO_REQUEST ( 0), + CLIENT_HELLO ( 1), + SERVER_HELLO ( 2), + CERTIFICATE (11), + SERVER_KEY_EXCHANGE (12), + CERTIFICATE_REQUEST (13), + SERVER_HELLO_DONE (14), + CERTIFICATE_VERIFY (15), + CLIENT_KEY_EXCHANGE (16), + FINISHED (20), + CERTIFICATE_URL (21), + CERTIFICATE_STATUS (22); + + private final int value; + + private Type(int value) + { + this.value = value; + } + + // Class methods. + // ----------------------------------------------------------------------- + + /** + * Convert a raw handshake type value to a type enum value. + * + * @return The corresponding enum value for the raw integer value. + * @throws IllegalArgumentException If the value is not a known handshake + * type. + */ + public static Type forInteger (final int value) + { + switch (value & 0xFF) + { + case 0: return HELLO_REQUEST; + case 1: return CLIENT_HELLO; + case 2: return SERVER_HELLO; + case 11: return CERTIFICATE; + case 12: return SERVER_KEY_EXCHANGE; + case 13: return CERTIFICATE_REQUEST; + case 14: return SERVER_HELLO_DONE; + case 15: return CERTIFICATE_VERIFY; + case 16: return CLIENT_KEY_EXCHANGE; + case 20: return FINISHED; + case 21: return CERTIFICATE_URL; + case 22: return CERTIFICATE_STATUS; + default: throw new IllegalArgumentException ("unsupported value type " + value); + } + } + + public int getValue() + { + return value; + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java b/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java new file mode 100644 index 00000000000..0ffc26c2b5d --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java @@ -0,0 +1,70 @@ +/* HelloRequest.java -- SSL HelloRequest handshake message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +/** + * The handshake body for a HelloRequest handshake message. + * + *
    struct { } HelloRequest;
    + */ +public final class HelloRequest implements Handshake.Body +{ + public HelloRequest () + { + } + + public String toString (final String prefix) + { + StringBuffer str = new StringBuffer (); + if (prefix != null) + str.append (prefix); + str.append ("HelloRequest { };"); + return str.toString (); + } + + public int length () + { + return 0; + } + + public String toString () + { + return toString (null); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java new file mode 100644 index 00000000000..13a3ef814de --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java @@ -0,0 +1,336 @@ +/* SecurityParameters.java -- SSL security parameters. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; +import gnu.java.security.util.ByteArray; +import gnu.java.security.util.ByteBufferOutputStream; + +import java.nio.BufferOverflowException; +import java.nio.ByteBuffer; + +import java.util.Arrays; +import java.util.logging.Level; +import java.util.zip.DataFormatException; +import java.util.zip.Inflater; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.Mac; +import javax.crypto.ShortBufferException; + +import javax.net.ssl.SSLException; + +public class InputSecurityParameters +{ + private static final SystemLogger logger = SystemLogger.SYSTEM; + private final Cipher cipher; + private final Mac mac; + private final Inflater inflater; + private SessionImpl session; + private final CipherSuite suite; + private long sequence; + + public InputSecurityParameters (final Cipher cipher, final Mac mac, + final Inflater inflater, + final SessionImpl session, + final CipherSuite suite) + { + this.cipher = cipher; + this.mac = mac; + this.inflater = inflater; + this.session = session; + this.suite = suite; + sequence = 0; + } + + /** + * Decrypt a record, storing the decrypted fragment into the given array + * of byte buffers. + * + * @param record The input record. + * @param output The output buffers. + * @param offset The offset of the first buffer to use. + * @param length The number of buffers to use. + * @return The number of bytes put in the output buffers. + * @throws DataFormatException If decompression fails. + * @throws IllegalBlockSizeException If the current cipher is a block cipher, + * and the input fragment is not a multiple of the block size. + * @throws MacException If verifying the MAC fails. + * @throws SSLException ??? + * @throws ShortBufferException + */ + public int decrypt(Record record, ByteBuffer[] output, int offset, int length) + throws DataFormatException, IllegalBlockSizeException, + MacException, SSLException, ShortBufferException + { + return decrypt(record, output, offset, length, null); + } + + /** + * Decrypt a record, storing the decrypted fragment into the given growable + * buffer. + * + * @param record The input record. + * @param outputStream The output buffer. + * @return The number of bytes put into the output buffer. + * @throws DataFormatException + * @throws IllegalBlockSizeException + * @throws MacException + * @throws SSLException + * @throws ShortBufferException + */ + public int decrypt(Record record, ByteBufferOutputStream outputStream) + throws DataFormatException, IllegalBlockSizeException, + MacException, SSLException, ShortBufferException + { + return decrypt(record, null, 0, 0, outputStream); + } + + private int decrypt(Record record, ByteBuffer[] output, int offset, int length, + ByteBufferOutputStream outputStream) + throws DataFormatException, IllegalBlockSizeException, + MacException, SSLException, ShortBufferException + { + boolean badPadding = false; + ByteBuffer fragment; + if (cipher != null) + { + ByteBuffer input = record.fragment(); + fragment = ByteBuffer.allocate(input.remaining()); + cipher.update(input, fragment); + } + else + fragment = record.fragment(); + + if (Debug.DEBUG_DECRYPTION) + logger.logv(Component.SSL_RECORD_LAYER, "decrypted fragment:\n{0}", + Util.hexDump((ByteBuffer) fragment.duplicate().position(0), " >> ")); + + int fragmentLength = record.length(); + int maclen = 0; + if (mac != null) + maclen = mac.getMacLength(); + fragmentLength -= maclen; + + int padlen = 0; + int padRemoveLen = 0; + if (!suite.isStreamCipher ()) + { + padlen = fragment.get(record.length() - 1) & 0xFF; + padRemoveLen = padlen + 1; + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "padlen:{0}", padlen); + + if (record.version() == ProtocolVersion.SSL_3) + { + // In SSLv3, the padding length must not be larger than + // the cipher's block size. + if (padlen > cipher.getBlockSize ()) + badPadding = true; + } + else if (record.version().compareTo(ProtocolVersion.TLS_1) >= 0) + { + // In TLSv1 and later, the padding must be `padlen' copies of the + // value `padlen'. + byte[] pad = new byte[padlen]; + ((ByteBuffer) fragment.duplicate().position(record.length() - padlen - 1)).get(pad); + for (int i = 0; i < pad.length; i++) + if ((pad[i] & 0xFF) != padlen) + badPadding = true; + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "TLSv1.x padding\n{0}", + new ByteArray(pad)); + } + + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "padding bad? {0}", + badPadding); + if (!badPadding) + fragmentLength = fragmentLength - padRemoveLen; + } + + int ivlen = 0; + if (session.version.compareTo(ProtocolVersion.TLS_1_1) >= 0 + && !suite.isStreamCipher()) + ivlen = cipher.getBlockSize(); + + // Compute and check the MAC. + if (mac != null) + { + mac.update((byte) (sequence >>> 56)); + mac.update((byte) (sequence >>> 48)); + mac.update((byte) (sequence >>> 40)); + mac.update((byte) (sequence >>> 32)); + mac.update((byte) (sequence >>> 24)); + mac.update((byte) (sequence >>> 16)); + mac.update((byte) (sequence >>> 8)); + mac.update((byte) sequence); + mac.update((byte) record.getContentType().getValue()); + ProtocolVersion version = record.version(); + if (version != ProtocolVersion.SSL_3) + { + mac.update((byte) version.major()); + mac.update((byte) version.minor()); + } + mac.update((byte) ((fragmentLength - ivlen) >>> 8)); + mac.update((byte) (fragmentLength - ivlen)); + ByteBuffer content = + (ByteBuffer) fragment.duplicate().position(ivlen).limit(fragmentLength); + mac.update(content); + byte[] mac1 = mac.doFinal (); + byte[] mac2 = new byte[maclen]; + mac.reset(); + ((ByteBuffer) fragment.duplicate().position(fragmentLength)).get(mac2); + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "mac1:{0} mac2:{1}", + Util.toHexString(mac1, ':'), Util.toHexString(mac2, ':')); + if (!Arrays.equals (mac1, mac2)) + badPadding = true; + } + + // We always say "bad MAC" and not "bad padding," because saying + // the latter will leak information to an attacker. + if (badPadding) + throw new MacException (); + + // Inflate the compressed bytes. + int produced = 0; + if (inflater != null) + { + ByteBufferOutputStream out = new ByteBufferOutputStream(fragmentLength); + byte[] inbuffer = new byte[1024]; + byte[] outbuffer = new byte[1024]; + boolean done = false; + if (record.version().compareTo(ProtocolVersion.TLS_1_1) >= 0 + && !suite.isStreamCipher()) + fragment.position (cipher.getBlockSize()); + else + fragment.position(0); + fragment.limit(fragmentLength); + + while (!done) + { + int l; + if (inflater.needsInput()) + { + l = Math.min(inbuffer.length, fragment.remaining()); + fragment.get(inbuffer, 0, l); + inflater.setInput(inbuffer); + } + + l = inflater.inflate(outbuffer); + out.write(outbuffer, 0, l); + done = !fragment.hasRemaining() && inflater.finished(); + } + + ByteBuffer outbuf = out.buffer(); + if (outputStream != null) + { + byte[] buf = new byte[1024]; + while (outbuf.hasRemaining()) + { + int l = Math.min(outbuf.remaining(), buf.length); + outbuf.get(buf, 0, l); + outputStream.write(buf, 0, l); + produced += l; + } + } + else + { + int i = offset; + while (outbuf.hasRemaining() && i < offset + length) + { + int l = Math.min(output[i].remaining(), outbuf.remaining()); + ByteBuffer b = (ByteBuffer) + outbuf.duplicate().limit(outbuf.position() + l); + output[i++].put(b); + outbuf.position(outbuf.position() + l); + produced += l; + } + if (outbuf.hasRemaining()) + throw new BufferOverflowException(); + } + } + else + { + ByteBuffer outbuf = (ByteBuffer) + fragment.duplicate().position(0).limit(record.length() - maclen - padRemoveLen); + if (record.version().compareTo(ProtocolVersion.TLS_1_1) >= 0 + && !suite.isStreamCipher()) + outbuf.position(cipher.getBlockSize()); + if (outputStream != null) + { + byte[] buf = new byte[1024]; + while (outbuf.hasRemaining()) + { + int l = Math.min(outbuf.remaining(), buf.length); + outbuf.get(buf, 0, l); + outputStream.write(buf, 0, l); + produced += l; + } + } + else + { + int i = offset; + while (outbuf.hasRemaining() && i < offset + length) + { + int l = Math.min(output[i].remaining(), outbuf.remaining()); + ByteBuffer b = (ByteBuffer) outbuf.duplicate().limit(outbuf.position() + l); + output[i++].put(b); + outbuf.position(outbuf.position() + l); + produced += l; + } + if (outbuf.hasRemaining()) + throw new BufferOverflowException(); + } + } + + sequence++; + + return produced; + } + + CipherSuite cipherSuite () + { + return suite; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/JCESecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/JCESecurityParameters.java deleted file mode 100644 index 6663c97b59d..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/JCESecurityParameters.java +++ /dev/null @@ -1,307 +0,0 @@ -/* JCESecurityParameters.java -- JCE-based security parameters. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.ByteArrayOutputStream; - -import java.util.Arrays; -import java.util.zip.DataFormatException; -import java.util.zip.Deflater; -import java.util.zip.Inflater; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.Mac; - -import javax.net.ssl.SSLException; - -class JCESecurityParameters implements SecurityParameters -{ - - // Fields. - // ------------------------------------------------------------------------- - - private Cipher inCipher, outCipher; - private Mac inMac, outMac; - private Inflater inflater; - private Deflater deflater; - private int fragmentLength; - private long inSequence, outSequence; - private ProtocolVersion version; - - // Constructors. - // ------------------------------------------------------------------------- - - JCESecurityParameters () - { - fragmentLength = 16384; - inSequence = 0L; - outSequence = 0L; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void reset() - { - inCipher = null; - outCipher = null; - inMac = null; - outMac = null; - deflater = null; - inflater = null; - } - - public void setInCipher (Object inCipher) - { - this.inCipher = (Cipher) inCipher; - } - - public void setOutCipher (Object outCipher) - { - this.outCipher = (Cipher) outCipher; - } - - public void setInMac (Object inMac) - { - this.inMac = (Mac) inMac; - inSequence = 0L; - } - - public void setOutMac (Object outMac) - { - this.outMac = (Mac) outMac; - outSequence = 0L; - } - - public void setDeflating (boolean deflate) - { - if (deflate) - { - if (deflater == null) - deflater = new Deflater(); - } - else - deflater = null; - } - - public void setInflating (boolean inflate) - { - if (inflate) - { - if (inflater == null) - inflater = new Inflater(); - } - else - inflater = null; - } - - public int getFragmentLength() - { - return fragmentLength; - } - - public void setFragmentLength (int fragmentLength) - { - this.fragmentLength = fragmentLength; - } - - public ProtocolVersion getVersion() - { - return version; - } - - public void setVersion (ProtocolVersion version) - { - this.version = version; - } - - public synchronized byte[] decrypt (byte[] fragment, ProtocolVersion version, - ContentType type) - throws MacException, OverflowException, SSLException - { - boolean badpad = false; - if (inCipher != null) - { - // We imagine that the JCE would be used in cases where hardware - // acceleration is available, since it isn't really that useful for - // pure Java crypto. We decrypt (and encrypt, below) in one go - // to minimize (potential) calls to native methods. - try - { - fragment = inCipher.doFinal (fragment); - } - catch (BadPaddingException bpe) - { - badpad = true; - } - catch (IllegalBlockSizeException ibse) - { - badpad = true; - } - } - - if (inMac != null) - { - int macLen = inMac.getMacLength(); - int fragLen = fragment.length - macLen; - byte[] mac = Util.trim (fragment, fragLen, macLen); - fragment = Util.trim (fragment, fragLen); - inMac.update ((byte) (inSequence >>> 56)); - inMac.update ((byte) (inSequence >>> 48)); - inMac.update ((byte) (inSequence >>> 40)); - inMac.update ((byte) (inSequence >>> 32)); - inMac.update ((byte) (inSequence >>> 24)); - inMac.update ((byte) (inSequence >>> 16)); - inMac.update ((byte) (inSequence >>> 8)); - inMac.update ((byte) inSequence); - inMac.update ((byte) type.getValue()); - if (version != ProtocolVersion.SSL_3) - { - inMac.update ((byte) version.getMajor()); - inMac.update ((byte) version.getMinor()); - } - inMac.update ((byte) (fragLen >>> 8)); - inMac.update ((byte) fragLen); - inMac.update (fragment); - if (!Arrays.equals (mac, inMac.doFinal()) || badpad) - throw new MacException(); - } - - if (inflater != null) - { - byte[] buf = new byte[1024]; - ByteArrayOutputStream bout = new ByteArrayOutputStream (fragment.length << 1); - inflater.setInput (fragment); - int len; - try - { - while ((len = inflater.inflate (buf)) > 0) - { - bout.write (buf, 0, len); - if (bout.size() > fragmentLength + 1024) - throw new OverflowException ("inflated data too large"); - } - } - catch (DataFormatException dfe) - { - throw new SSLException (String.valueOf (dfe)); - } - fragment = bout.toByteArray(); - inflater.reset(); - } - - inSequence++; - return fragment; - } - - public synchronized byte[] encrypt (byte[] fragment, int off, int len, - ContentType type) - throws OverflowException, SSLException - { - if (deflater != null) - { - byte[] buf = new byte[1024]; - ByteArrayOutputStream bout = new ByteArrayOutputStream (len >>> 1); - deflater.setInput (fragment, off, len); - deflater.finish(); - len = 0; - while ((len = deflater.deflate (buf)) > 0) - bout.write (buf, 0, len); - // This should technically never happen for zlib. - if (bout.size() > fragmentLength + 1024) - throw new OverflowException ("deflated data too large"); - fragment = bout.toByteArray(); - off = 0; - len = fragment.length; - deflater.reset(); - } - - if (outMac != null) - { - outMac.update ((byte) (inSequence >>> 56)); - outMac.update ((byte) (inSequence >>> 48)); - outMac.update ((byte) (inSequence >>> 40)); - outMac.update ((byte) (inSequence >>> 32)); - outMac.update ((byte) (inSequence >>> 24)); - outMac.update ((byte) (inSequence >>> 16)); - outMac.update ((byte) (inSequence >>> 8)); - outMac.update ((byte) inSequence); - outMac.update ((byte) type.getValue()); - if (version != ProtocolVersion.SSL_3) - { - outMac.update ((byte) version.getMajor()); - outMac.update ((byte) version.getMinor()); - } - outMac.update ((byte) (len >>> 8)); - outMac.update ((byte) len); - outMac.update (fragment, off, len); - fragment = Util.concat (fragment, outMac.doFinal()); - off = 0; - len = fragment.length; - } - - if (outCipher != null) - { - try - { - fragment = outCipher.doFinal (fragment, off, len); - } - catch (BadPaddingException shouldNeverHappen) - { - // This is nonsensical. Don't even pretend that we can handle this. - throw new RuntimeException ("bad padding thrown while encrypting"); - } - catch (IllegalBlockSizeException ibse) - { - // Ditto. - throw new RuntimeException ("illegal block size thrown while encrypting"); - } - off = 0; - len = fragment.length; - } - - outSequence++; - if (off == 0 && len == fragment.length) - return fragment; - else - return Util.trim (fragment, off, len); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/JDBCSessionContext.java b/libjava/classpath/gnu/javax/net/ssl/provider/JDBCSessionContext.java deleted file mode 100644 index 2b9b1403425..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/JDBCSessionContext.java +++ /dev/null @@ -1,356 +0,0 @@ -/* JDBCSessionContext.java -- database persistent sessions. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.ByteArrayOutputStream; -import java.io.InputStream; - -import java.security.SecureRandom; -import java.security.cert.Certificate; -import java.security.cert.CertificateFactory; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.sql.Timestamp; -import java.sql.Types; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Enumeration; -import java.util.TreeSet; -import java.util.Vector; - -import javax.net.ssl.SSLSession; - -/** - * The SQL table this class stores sessions in, called SESSIONS, - * looks like this: - * - *
    - * TABLE SESSIONS (
    - *   ID             VARBINARY(32) PRIMARY KEY UNIQUE NOT NULL,
    - *   CREATED        TIMESTAMP NOT NULL,
    - *   LAST_ACCESSED  TIMESTAMP NOT NULL,
    - *   PROTOCOL       VARCHAR(7) NOT NULL,
    - *   SUITE          VARCHAR(255) NOT NULL,
    - *   PEER_HOST      TEXT NOT NULL,
    - *   PEER_CERT_TYPE VARCHAR(32),
    - *   PEER_CERTS     BLOB,
    - *   CERT_TYPE      VARCHAR(32),
    - *   CERTS          BLOB,
    - *   SECRET         VARBINARY(48) NOT NULL
    - * )
    - * 
    - * - *

    Note that the master secret for sessions is not protected before - * being inserted into the database; it is up to the system to protect - * the stored data from unauthorized access. - */ -class JDBCSessionContext extends SessionContext -{ - - // Fields. - // ------------------------------------------------------------------------- - - protected Connection connection; - protected PreparedStatement selectById; - protected PreparedStatement insert; - protected PreparedStatement selectTimestamp; - protected PreparedStatement updateTimestamp; - protected PreparedStatement deleteSession; - - // Constructor. - // ------------------------------------------------------------------------- - - JDBCSessionContext() throws SQLException - { - String url = Util.getSecurityProperty("jessie.SessionContext.jdbc.url"); - String user = Util.getSecurityProperty("jessie.SessionContext.jdbc.user"); - String passwd = Util.getSecurityProperty("jessie.SessionContext.jdbc.password"); - if (url == null) - { - throw new IllegalArgumentException("no JDBC URL"); - } - if (user == null || passwd == null) - { - connection = DriverManager.getConnection(url); - } - else - { - connection = DriverManager.getConnection(url, user, passwd); - } - selectById = - connection.prepareStatement("SELECT * FROM SESSIONS WHERE ID = ?"); - insert = connection.prepareStatement("INSERT INTO SESSIONS VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); - selectTimestamp = - connection.prepareStatement("SELECT CREATED FROM SESSIONS WHERE ID = ?"); - updateTimestamp = - connection.prepareStatement("UPDATE SESSIONS SET LAST_ACCESSED = ? WHERE ID = ?"); - deleteSession = - connection.prepareStatement("DELETE FROM SESSIONS WHERE ID = ?"); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public synchronized Enumeration getIds() - { - Vector ids = new Vector(); - try - { - Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT ID FROM SESSIONS"); - while (rs.next()) - { - byte[] id = rs.getBytes("ID"); - ids.add(id); - } - } - catch (SQLException sqle) - { - } - return ids.elements(); - } - - public synchronized SSLSession getSession(byte[] sessionId) - { - Session session = (Session) super.getSession(sessionId); - if (session == null) - { - try - { - selectById.setBytes(1, sessionId); - ResultSet rs = selectById.executeQuery(); - if (rs.next()) - { - session = new Session(rs.getTimestamp("CREATED").getTime()); - session.enabledSuites = new ArrayList(SSLSocket.supportedSuites); - session.enabledProtocols = new TreeSet(SSLSocket.supportedProtocols); - session.random = new SecureRandom(); - session.context = this; - session.sessionId = new Session.ID(rs.getBytes("ID")); - session.setLastAccessedTime(rs.getTimestamp("LAST_ACCESSED").getTime()); - long elapsed = System.currentTimeMillis() - session.getLastAccessedTime(); - if ((int) (elapsed / 1000L) > timeout) - { - removeSession(session.sessionId); - return null; - } - session.peerHost = rs.getString("PEER_HOST"); - String protocol = rs.getString("PROTOCOL"); - if (protocol.equals("SSLv3")) - { - session.protocol = ProtocolVersion.SSL_3; - } - else if (protocol.equals("TLSv1")) - { - session.protocol = ProtocolVersion.TLS_1; - } - else if (protocol.equals("TLSv1.1")) - { - session.protocol = ProtocolVersion.TLS_1_1; - } - else - { - return null; - } - session.cipherSuite = CipherSuite.forName(rs.getString("SUITE")); - String type = rs.getString("PEER_CERT_TYPE"); - boolean wasNull = rs.wasNull(); - InputStream certs = null; - if (!wasNull) - { - certs = rs.getBinaryStream("PEER_CERTS"); - wasNull = rs.wasNull(); - } - if (!wasNull) - { - CertificateFactory cf = CertificateFactory.getInstance(type); - session.peerCerts = (Certificate[]) - cf.generateCertificates(certs).toArray(new Certificate[0]); - session.peerVerified = true; - } - type = rs.getString("CERT_TYPE"); - wasNull = rs.wasNull(); - if (!wasNull) - { - certs = rs.getBinaryStream("CERTS"); - wasNull = rs.wasNull(); - } - if (!wasNull) - { - CertificateFactory cf = CertificateFactory.getInstance(type); - session.localCerts = (Certificate[]) - cf.generateCertificates(certs).toArray(new Certificate[0]); - } - session.masterSecret = rs.getBytes("SECRET"); - if (cacheSize == 0 || sessions.size() < cacheSize) - { - sessions.put(session.sessionId, session); - } - } - } - catch (Exception ex) - { - } - } - return session; - } - - synchronized boolean addSession(Session.ID id, Session s) - { - if (containsSessionID(id)) - { - return false; - } - try - { - insert.setBytes(1, id.getId()); - insert.setTimestamp(2, new Timestamp(s.getCreationTime())); - insert.setTimestamp(3, new Timestamp(s.getLastAccessedTime())); - insert.setString(4, s.getProtocol()); - insert.setString(5, s.getCipherSuite()); - insert.setString(6, s.peerHost); - if (s.peerCerts != null && s.peerCerts.length > 0) - { - insert.setString(7, s.peerCerts[0].getType()); - insert.setBytes(8, certs(s.peerCerts)); - } - else - { - insert.setNull(7, Types.VARCHAR); - insert.setNull(8, Types.LONGVARBINARY); - } - if (s.localCerts != null && s.localCerts.length > 0) - { - insert.setString(9, s.localCerts[0].getType()); - insert.setBytes(10, certs(s.localCerts)); - } - else - { - insert.setNull(9, Types.VARCHAR); - insert.setNull(10, Types.LONGVARBINARY); - } - insert.setBytes(11, s.masterSecret); - insert.executeUpdate(); - super.addSession(id, s); - } - catch (SQLException sqle) - { - return false; - } - return true; - } - - synchronized boolean containsSessionID(Session.ID sessionId) - { - try - { - selectTimestamp.setBytes(1, sessionId.getId()); - ResultSet rs = selectTimestamp.executeQuery(); - if (!rs.next()) - { - return false; - } - Timestamp ts = rs.getTimestamp("CREATED"); - if (rs.wasNull()) - { - return false; - } - long elapsed = System.currentTimeMillis() - ts.getTime(); - if ((int) (elapsed / 1000) > timeout) - { - removeSession(sessionId); - return false; - } - return true; - } - catch (SQLException sqle) - { - return false; - } - } - - protected boolean removeSession(Session.ID sessionId) - { - super.removeSession(sessionId); - try - { - deleteSession.setBytes(1, sessionId.getId()); - return deleteSession.executeUpdate() > 0; - } - catch (SQLException sqle) - { - } - return false; - } - - synchronized void notifyAccess(Session session) - { - try - { - updateTimestamp.setTimestamp(1, new Timestamp(session.getLastAccessedTime())); - updateTimestamp.setBytes(2, session.getId()); - updateTimestamp.executeUpdate(); - } - catch (SQLException sqle) - { - } - } - - private byte[] certs(Certificate[] certs) - { - ByteArrayOutputStream out = new ByteArrayOutputStream(2048); - for (int i = 0; i < certs.length; i++) - { - try - { - out.write(certs[i].getEncoded()); - } - catch (Exception x) - { - } - } - return out.toByteArray(); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java b/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java index 14b671d0230..6bd68b3850f 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Jessie.java @@ -59,31 +59,42 @@ import java.security.Provider; */ public class Jessie extends Provider { + private static final long serialVersionUID = -1; - public static final String VERSION = "1.0.0"; - public static final double VERSION_DOUBLE = 1.0; + public static final String VERSION = "2.0.0"; + public static final double VERSION_DOUBLE = 2.0; public Jessie() { super("Jessie", VERSION_DOUBLE, - "Implementing SSLv3, TLSv1 SSL Contexts; X.509 Key Manager Factories;" + - System.getProperty("line.separator") + - "X.509 and SRP Trust Manager Factories, continuously-seeded secure random." ); + "Implementing TLSv1.1, with SSLv3, TLSv1.0 compatibility modes; " + + "X.509 Key Manager Factory; " + + "X.509 Trust Manager Factory; " + + "SSLv3 MD5 and SHA Mac."); - AccessController.doPrivileged(new PrivilegedAction() + AccessController.doPrivileged(new PrivilegedAction() { public Object run() { - put("SSLContext.SSLv3", Context.class.getName()); - put("Alg.Alias.SSLContext.SSL", "SSLv3"); - put("Alg.Alias.SSLContext.TLSv1", "SSLv3"); - put("Alg.Alias.SSLContext.TLS", "SSLv3"); - //put("Alg.Alias.SSLContext.TLSv1.1", "SSLv3"); + put("SSLContext.TLSv1.1", SSLContextImpl.class.getName()); + put("Alg.Alias.SSLContext.SSLv3", "TLSv1.1"); + put("Alg.Alias.SSLContext.TLSv1", "TLSv1.1"); + put("Alg.Alias.SSLContext.TLSv1.0", "TLSv1.1"); + put("Alg.Alias.SSLContext.TLS", "TLSv1.1"); + put("Alg.Alias.SSLContext.SSL", "TLSv1.1"); put("KeyManagerFactory.JessieX509", X509KeyManagerFactory.class.getName()); put("TrustManagerFactory.JessieX509", X509TrustManagerFactory.class.getName()); - put("TrustManagerFactory.SRP", SRPTrustManagerFactory.class.getName()); + put("KeyManagerFactory.JessiePSK", PreSharedKeyManagerFactoryImpl.class.getName()); + //put("TrustManagerFactory.SRP", SRPTrustManagerFactory.class.getName()); + put("Mac.SSLv3HMac-MD5", SSLv3HMacMD5Impl.class.getName()); + put("Mac.SSLv3HMac-SHA", SSLv3HMacSHAImpl.class.getName()); + + put("Signature.TLSv1.1-RSA", SSLRSASignatureImpl.class.getName()); + put("Alg.Alias.Signature.TLSv1-RSA", "TLSv1.1-RSA"); + put("Alg.Alias.Signature.SSLv3-RSA", "TLSv1.1-RSA"); + return null; } }); diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPrivateKey.java b/libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPrivateKey.java deleted file mode 100644 index 1997458dd24..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPrivateKey.java +++ /dev/null @@ -1,99 +0,0 @@ -/* JessieDHPrivateKey.java -- simple DH private key. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.math.BigInteger; - -import javax.crypto.interfaces.DHPrivateKey; -import javax.crypto.spec.DHParameterSpec; - -class JessieDHPrivateKey implements DHPrivateKey -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final DHParameterSpec params; - private final BigInteger x; - - // Constructor. - // ------------------------------------------------------------------------- - - JessieDHPrivateKey(DHParameterSpec params, BigInteger x) - { - this.params = params; - this.x = x; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String getAlgorithm() - { - return "Diffie-Hellman"; - } - - public String getFormat() - { - return "NONE"; - } - - public byte[] getEncoded() - { - return null; - } - - public DHParameterSpec getParams() - { - return params; - } - - public BigInteger getX() - { - return x; - } - - public String toString() - { - String nl = System.getProperty("line.separator"); - return "P: " + params.getP() + nl + - "G: " + params.getG() + nl + - "X: " + x; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPublicKey.java b/libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPublicKey.java deleted file mode 100644 index dc6587288e6..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/JessieDHPublicKey.java +++ /dev/null @@ -1,99 +0,0 @@ -/* JessieDHPublicKey.java -- simple DH public key. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.math.BigInteger; - -import javax.crypto.interfaces.DHPublicKey; -import javax.crypto.spec.DHParameterSpec; - -class JessieDHPublicKey implements DHPublicKey -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final DHParameterSpec params; - private final BigInteger y; - - // Constructor. - // ------------------------------------------------------------------------- - - JessieDHPublicKey(DHParameterSpec params, BigInteger y) - { - this.params = params; - this.y = y; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String getAlgorithm() - { - return "Diffie-Hellman"; - } - - public String getFormat() - { - return "NONE"; - } - - public byte[] getEncoded() - { - return null; - } - - public DHParameterSpec getParams() - { - return params; - } - - public BigInteger getY() - { - return y; - } - - public String toString() - { - String nl = System.getProperty("line.separator"); - return "P: " + params.getP() + nl + - "G: " + params.getG() + nl + - "Y: " + y; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java b/libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java deleted file mode 100644 index 4ec71a7aad3..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java +++ /dev/null @@ -1,98 +0,0 @@ -/* JessieRSAPrivateKey.java -- simple RSA private key. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.math.BigInteger; -import java.security.interfaces.RSAPrivateKey; - -class JessieRSAPrivateKey implements RSAPrivateKey -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final BigInteger modulus; - private final BigInteger exponent; - - // Constructor. - // ------------------------------------------------------------------------- - - JessieRSAPrivateKey(BigInteger modulus, BigInteger exponent) - { - this.modulus = modulus; - this.exponent = exponent; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String getAlgorithm() - { - return "RSA"; - } - - public String getFormat() - { - return "NONE"; - } - - public byte[] getEncoded() - { - return null; - } - - public BigInteger getModulus() - { - return modulus; - } - - public BigInteger getPrivateExponent() - { - return exponent; - } - - public String toString() - { - String nl = System.getProperty("line.separator"); - return "RSAPrivateKey {" + nl + - " modulus = " + modulus.toString(16) + ";" + nl + - " exponent = " + exponent.toString(16) + ";" + nl + - "};"; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPublicKey.java b/libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPublicKey.java deleted file mode 100644 index 19921d98c67..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/JessieRSAPublicKey.java +++ /dev/null @@ -1,98 +0,0 @@ -/* JessieRSAPublicKey.java -- simple RSA public key. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.math.BigInteger; -import java.security.interfaces.RSAPublicKey; - -class JessieRSAPublicKey implements RSAPublicKey -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final BigInteger modulus; - private final BigInteger exponent; - - // Constructor. - // ------------------------------------------------------------------------- - - JessieRSAPublicKey(BigInteger modulus, BigInteger exponent) - { - this.modulus = modulus; - this.exponent = exponent; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String getAlgorithm() - { - return "RSA"; - } - - public String getFormat() - { - return "NONE"; - } - - public byte[] getEncoded() - { - return null; - } - - public BigInteger getModulus() - { - return modulus; - } - - public BigInteger getPublicExponent() - { - return exponent; - } - - public String toString() - { - String nl = System.getProperty("line.separator"); - return "RSAPublicKey {" + nl + - " modulus = " + modulus.toString(16) + ";" + nl + - " exponent = " + exponent.toString(16) + ";" + nl + - "};"; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java b/libjava/classpath/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java new file mode 100644 index 00000000000..04416c5a5cc --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java @@ -0,0 +1,57 @@ +/* KeyExchangeAlgorithm.java -- Key exchange algorithm enumeration. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +/** + * The enumeration of supported key exchange algorithms. + */ +public enum KeyExchangeAlgorithm +{ + NONE, + RSA, + DH_DSS, + DH_RSA, + DH_anon, + DHE_DSS, + DHE_RSA, +// SRP, + PSK, + DHE_PSK, + RSA_PSK; +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/KeyPool.java b/libjava/classpath/gnu/javax/net/ssl/provider/KeyPool.java deleted file mode 100644 index 18d9dc281ab..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/KeyPool.java +++ /dev/null @@ -1,110 +0,0 @@ -/* KeyPool.java -- A set of ephemeral key pairs. - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.math.BigInteger; -import java.security.KeyPair; -import java.security.SecureRandom; - -final class KeyPool -{ - - // Fields. - // ------------------------------------------------------------------------- - - private static final BigInteger ONE = BigInteger.ONE; - private static final BigInteger TWO = BigInteger.valueOf(2L); - private static final BigInteger E = BigInteger.valueOf(65537L); - private static final SecureRandom RANDOM = new SecureRandom (); - - // Constructor. - // ------------------------------------------------------------------------- - - private KeyPool() - { - } - - // Class methods. - // ------------------------------------------------------------------------- - - /** - * Generate an export-class (512 bit) RSA key pair. - * - * @return The new key pair. - */ - static KeyPair generateRSAKeyPair() - { - BigInteger p, q, n, d; - - // Simplified version of GNU Crypto's RSAKeyPairGenerator. - - int M = 256; - BigInteger lower = TWO.pow(255); - BigInteger upper = TWO.pow(256).subtract(ONE); - byte[] kb = new byte[32]; - while (true) - { - nextBytes(kb); - p = new BigInteger(1, kb).setBit(0); - if (p.compareTo(lower) >= 0 && p.compareTo(upper) <= 0 && - p.isProbablePrime(80) && p.gcd(E).equals(ONE)) - break; - } - - while (true) - { - nextBytes(kb); - q = new BigInteger(1, kb).setBit(0); - n = q.multiply(p); - if (n.bitLength() == 512 && q.isProbablePrime(80) && - q.gcd(E).equals(ONE)) - break; - } - - d = E.modInverse(p.subtract(ONE).multiply(q.subtract(ONE))); - - return new KeyPair(new JessieRSAPublicKey(n, E), - new JessieRSAPrivateKey(n, d)); - } - - private static void nextBytes(byte[] buf) - { - RANDOM.nextBytes (buf); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/MacAlgorithm.java b/libjava/classpath/gnu/javax/net/ssl/provider/MacAlgorithm.java new file mode 100644 index 00000000000..cae0efbfa80 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/MacAlgorithm.java @@ -0,0 +1,47 @@ +/* MacAlgorithm.java -- MAC algorithm enumeration. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +/** + * An enumeration of MAC algorithms we support. + */ +public enum MacAlgorithm +{ + NULL, MD5, SHA; +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java b/libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java new file mode 100644 index 00000000000..eb63958b839 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java @@ -0,0 +1,59 @@ +package gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.provider.Extension.Value; + +import java.nio.ByteBuffer; + +/** + * Extension value + * @author csm + */ +public class MaxFragmentLength extends Value +{ + public static final MaxFragmentLength LEN_2_9 = new MaxFragmentLength(1, 1 << 9); + public static final MaxFragmentLength LEN_2_10 = new MaxFragmentLength(2, 1 << 10); + public static final MaxFragmentLength LEN_2_11 = new MaxFragmentLength(3, 1 << 11); + public static final MaxFragmentLength LEN_2_12 = new MaxFragmentLength(4, 1 << 12); + + private final int value; + private final int length; + + private MaxFragmentLength(int value, int length) + { + this.value = value; + this.length = length; + } + + public ByteBuffer buffer() + { + return ByteBuffer.allocate(1).put(0, (byte) value); + } + + public int length() + { + return 1; + } + + public int getValue() + { + return value; + } + + public int maxLength() + { + return length; + } + + public String toString() + { + return toString(null); + } + + public String toString(String prefix) + { + String s = "max_fragment_length = "; + if (prefix != null) + s = prefix + s; + return s + maxLength() + ";"; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java new file mode 100644 index 00000000000..6da0d066741 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java @@ -0,0 +1,297 @@ +/* OutputSecurityParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; +import gnu.java.security.util.ByteArray; +import gnu.java.security.util.ByteBufferOutputStream; + +import java.nio.ByteBuffer; + +import java.util.logging.Level; +import java.util.zip.DataFormatException; +import java.util.zip.Deflater; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.Mac; +import javax.crypto.ShortBufferException; + +public class OutputSecurityParameters +{ + private static final SystemLogger logger = SystemLogger.SYSTEM; + private final Cipher cipher; + private final Mac mac; + private final Deflater deflater; + private final SessionImpl session; + private final CipherSuite suite; + private long sequence; + + public OutputSecurityParameters (final Cipher cipher, final Mac mac, + final Deflater deflater, SessionImpl session, + CipherSuite suite) + { + this.cipher = cipher; + this.mac = mac; + this.deflater = deflater; + this.session = session; + this.suite = suite; + sequence = 0; + } + + /** + * Encrypt a record, storing the result in the given output buffer. + * + * @return The number of bytes taken from the input, and the number stored + * into `output;' that is, the size of the encrypted fragment, plus the + * encoding for the record. + */ + public int[] encrypt (final ByteBuffer[] input, int offset, int length, + final ContentType contentType, final ByteBuffer output) + throws DataFormatException, IllegalBlockSizeException, ShortBufferException + { + if (offset < 0 || offset >= input.length + || length <= 0 || offset + length > input.length) + throw new IndexOutOfBoundsException(); + + if (Debug.DEBUG) + for (int i = offset; i < offset+length; i++) + logger.logv(Component.SSL_RECORD_LAYER, "encrypting record [{0}]: {1}", + i-offset, input[i]); + + int maclen = 0; + if (mac != null) + maclen = session.isTruncatedMac() ? 10 : mac.getMacLength (); + + int ivlen = 0; + byte[] iv = null; + if (session.version.compareTo(ProtocolVersion.TLS_1_1) >= 0 + && !suite.isStreamCipher()) + { + ivlen = cipher.getBlockSize(); + iv = new byte[ivlen]; + session.random().nextBytes(iv); + } + + int padaddlen = 0; + if (!suite.isStreamCipher() + && session.version.compareTo(ProtocolVersion.TLS_1) >= 0) + { + padaddlen = (session.random().nextInt(255 / cipher.getBlockSize()) + * cipher.getBlockSize()); + } + + int fragmentLength = 0; + ByteBuffer[] fragments = null; + // Compress the content, if needed. + if (deflater != null) + { + ByteBufferOutputStream deflated = new ByteBufferOutputStream(); + + byte[] inbuf = new byte[1024]; + byte[] outbuf = new byte[1024]; + int written = 0; + + // Here we use the guarantee that the deflater won't increase the + // output size by more than 1K -- we resign ourselves to only deflate + // as much data as we have space for *uncompressed*, + int limit = output.remaining() - (maclen + ivlen + padaddlen) - 1024; + + for (int i = offset; i < length && written < limit; i++) + { + ByteBuffer in = input[i]; + while (in.hasRemaining() && written < limit) + { + int l = Math.min(in.remaining(), inbuf.length); + l = Math.min(limit - written, l); + in.get(inbuf, 0, l); + deflater.setInput(inbuf, 0, l); + l = deflater.deflate(outbuf); + deflated.write(outbuf, 0, l); + written += l; + } + } + deflater.finish(); + while (!deflater.finished()) + { + int l = deflater.deflate(outbuf); + deflated.write(outbuf, 0, l); + written += l; + } + fragments = new ByteBuffer[] { deflated.buffer() }; + fragmentLength = ((int) deflater.getBytesWritten()) + maclen + ivlen; + deflater.reset(); + offset = 0; + length = 1; + } + else + { + int limit = output.remaining() - (maclen + ivlen + padaddlen); + fragments = input; + for (int i = offset; i < length && fragmentLength < limit; i++) + { + int l = Math.min(limit - fragmentLength, fragments[i].remaining()); + fragmentLength += l; + } + fragmentLength += maclen + ivlen; + } + + // Compute padding... + int padlen = 0; + byte[] pad = null; + if (!suite.isStreamCipher()) + { + int bs = cipher.getBlockSize(); + padlen = bs - (fragmentLength % bs); + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, + "framentLen:{0} padlen:{1} blocksize:{2}", + fragmentLength, padlen, bs); + if (session.version.compareTo(ProtocolVersion.TLS_1) >= 0) + { + // TLS 1.0 and later uses a random amount of padding, up to + // 255 bytes. Each byte of the pad is equal to the padding + // length, minus one. + padlen += padaddlen; + while (padlen > 255) + padlen -= bs; + pad = new byte[padlen]; + for (int i = 0; i < padlen; i++) + pad[i] = (byte) (padlen - 1); + } + else + { + // SSL 3 uses a pad only as large as the block size, but the + // pad may contain any values. + pad = new byte[padlen]; + session.random().nextBytes(pad); + pad[padlen - 1] = (byte) (padlen - 1); + } + fragmentLength += pad.length; + } + + // If there is a MAC, compute it. + byte[] macValue = null; + if (mac != null) + { + mac.update((byte) (sequence >>> 56)); + mac.update((byte) (sequence >>> 48)); + mac.update((byte) (sequence >>> 40)); + mac.update((byte) (sequence >>> 32)); + mac.update((byte) (sequence >>> 24)); + mac.update((byte) (sequence >>> 16)); + mac.update((byte) (sequence >>> 8)); + mac.update((byte) sequence); + mac.update((byte) contentType.getValue()); + if (session.version != ProtocolVersion.SSL_3) + { + mac.update((byte) session.version.major ()); + mac.update((byte) session.version.minor ()); + } + int toWrite = fragmentLength - maclen - ivlen - padlen; + mac.update((byte) (toWrite >>> 8)); + mac.update((byte) toWrite); + int written = 0; + for (int i = offset; i < length && written < toWrite; i++) + { + ByteBuffer fragment = fragments[i].duplicate(); + int l = Math.min(fragment.remaining(), toWrite - written); + fragment.limit(fragment.position() + l); + mac.update(fragment); + } + macValue = mac.doFinal(); + } + + Record outrecord = new Record(output); + outrecord.setContentType(contentType); + outrecord.setVersion(session.version); + outrecord.setLength(fragmentLength); + + int consumed = 0; + ByteBuffer outfragment = outrecord.fragment(); + + if (cipher != null) + { + if (iv != null) + cipher.update(ByteBuffer.wrap(iv), outfragment); + int toWrite = fragmentLength - maclen - ivlen - padlen; + for (int i = offset; i < offset + length && consumed < toWrite; i++) + { + ByteBuffer fragment = fragments[i].slice(); + int l = Math.min(fragment.remaining(), toWrite - consumed); + fragment.limit(fragment.position() + l); + cipher.update(fragment, outfragment); + fragments[i].position(fragments[i].position() + l); + consumed += l; + } + if (macValue != null) + cipher.update(ByteBuffer.wrap(macValue), outfragment); + if (pad != null) + cipher.update(ByteBuffer.wrap(pad), outfragment); + } + else + { + // iv and pad are only used if we have a block cipher. + int toWrite = fragmentLength - maclen; + for (int i = offset; i < offset + length && consumed < toWrite; i++) + { + ByteBuffer fragment = fragments[i]; + int l = Math.min(fragment.remaining(), toWrite - consumed); + fragment.limit(fragment.position() + l); + outfragment.put(fragment); + consumed += l; + } + if (macValue != null) + outfragment.put(macValue); + } + + // Advance the output buffer's position. + output.position(output.position() + outrecord.length() + 5); + sequence++; + + return new int[] { consumed, fragmentLength + 5 }; + } + + CipherSuite suite() + { + return suite; + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/OverflowException.java b/libjava/classpath/gnu/javax/net/ssl/provider/OverflowException.java deleted file mode 100644 index 93bdcaec5ed..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/OverflowException.java +++ /dev/null @@ -1,57 +0,0 @@ -/* OverflowException.java -- signals an input overflow. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.IOException; - -class OverflowException extends IOException -{ - - // Constructors. - // ------------------------------------------------------------------------- - - OverflowException() - { - } - - OverflowException(String msg) - { - super(msg); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java new file mode 100644 index 00000000000..aa1f97853cf --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java @@ -0,0 +1,118 @@ +/* PreSharedKeyManagerFactory.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.PreSharedKeyManager; +import gnu.javax.net.ssl.PreSharedKeyManagerParameters; + +import java.security.InvalidAlgorithmParameterException; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.UnrecoverableKeyException; +import java.util.Iterator; + +import javax.crypto.SecretKey; +import javax.net.ssl.KeyManager; +import javax.net.ssl.KeyManagerFactorySpi; +import javax.net.ssl.ManagerFactoryParameters; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class PreSharedKeyManagerFactoryImpl + extends KeyManagerFactorySpi +{ + PreSharedKeyManagerParameters params; + + /* (non-Javadoc) + * @see javax.net.ssl.KeyManagerFactorySpi#engineGetKeyManagers() + */ + @Override protected KeyManager[] engineGetKeyManagers() + { + if (params == null) + throw new IllegalStateException("not initialized"); + return new KeyManager[] { new Manager() }; + } + + /* (non-Javadoc) + * @see javax.net.ssl.KeyManagerFactorySpi#engineInit(javax.net.ssl.ManagerFactoryParameters) + */ + @Override protected void engineInit(ManagerFactoryParameters params) + throws InvalidAlgorithmParameterException + { + if (!(params instanceof PreSharedKeyManagerParameters)) + throw new InvalidAlgorithmParameterException("only supports gnu.javax.net.ssl.PreSharedKeyManagerParameters"); + params = (PreSharedKeyManagerParameters) params; + } + + /* (non-Javadoc) + * @see javax.net.ssl.KeyManagerFactorySpi#engineInit(java.security.KeyStore, char[]) + */ + @Override protected void engineInit(KeyStore store, char[] passwd) + throws KeyStoreException, NoSuchAlgorithmException, + UnrecoverableKeyException + { + // XXX Could implement this. + } + + class Manager implements PreSharedKeyManager + { + Manager() + { + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.PreSharedKeyManager#getKey(java.lang.String) + */ + public SecretKey getKey(String name) throws KeyManagementException + { + return params.getKey(name); + } + + public String chooseIdentityHint() + { + Iterator it = params.identities(); + if (it.hasNext()) + return it.next(); + return null; + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java b/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java index 5f5d1d979aa..ca62054a89c 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java @@ -42,15 +42,16 @@ import java.io.InputStream; import java.io.IOException; import java.io.OutputStream; -final class ProtocolVersion implements Comparable, Constructed +public final class ProtocolVersion + implements Comparable, Constructed { // Constants and fields. // ------------------------------------------------------------------------- - static final ProtocolVersion SSL_3 = new ProtocolVersion(3, 0); - static final ProtocolVersion TLS_1 = new ProtocolVersion(3, 1); - static final ProtocolVersion TLS_1_1 = new ProtocolVersion(3, 2); + public static final ProtocolVersion SSL_3 = new ProtocolVersion(3, 0); + public static final ProtocolVersion TLS_1 = new ProtocolVersion(3, 1); + public static final ProtocolVersion TLS_1_1 = new ProtocolVersion(3, 2); private final int major; private final int minor; @@ -67,14 +68,25 @@ final class ProtocolVersion implements Comparable, Constructed // Class methods. // ------------------------------------------------------------------------- - static ProtocolVersion read(InputStream in) throws IOException + public static ProtocolVersion read(InputStream in) throws IOException { int major = in.read() & 0xFF; int minor = in.read() & 0xFF; return getInstance(major, minor); } - static ProtocolVersion getInstance(int major, int minor) + public static ProtocolVersion forName (final String name) + { + if (name.equalsIgnoreCase ("SSLv3")) + return SSL_3; + if (name.equalsIgnoreCase ("TLSv1")) + return TLS_1; + if (name.equalsIgnoreCase("TLSv1.1")) + return TLS_1_1; + throw new IllegalArgumentException ("unknown protocol name: " + name); + } + + public static ProtocolVersion getInstance(final int major, final int minor) { if (major == 3) { @@ -88,35 +100,46 @@ final class ProtocolVersion implements Comparable, Constructed return new ProtocolVersion(major, minor); } + public static ProtocolVersion getInstance (final short raw_value) + { + int major = raw_value >>> 8 & 0xFF; + int minor = raw_value & 0xFF; + return getInstance (major, minor); + } + // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length () { - out.write(major); - out.write(minor); + return 2; } - byte[] getEncoded() + public byte[] getEncoded() { return new byte[] { (byte) major, (byte) minor }; } - int getMajor() + public int major() { return major; } - int getMinor() + public int minor() { return minor; } + public int rawValue () + { + return (major << 8) | minor; + } + public boolean equals(Object o) { - if (o == null || !(o instanceof ProtocolVersion)) + if (!(o instanceof ProtocolVersion)) { return false; } @@ -129,35 +152,33 @@ final class ProtocolVersion implements Comparable, Constructed return major << 8 | minor; } - public int compareTo(Object o) + public int compareTo(ProtocolVersion that) { - if (o == null || !(o instanceof ProtocolVersion)) + if (major > that.major) { return 1; } - if (this.equals(o)) - { - return 0; - } - if (major > ((ProtocolVersion) o).major) - { - return 1; - } - else if (major < ((ProtocolVersion) o).major) + else if (major < that.major) { return -1; } - if (minor > ((ProtocolVersion) o).minor) + + if (minor > that.minor) { return 1; } - else if (minor < ((ProtocolVersion) o).minor) + else if (minor < that.minor) { return -1; } return 0; } + public String toString (String prefix) + { + return toString (); + } + public String toString() { if (this == SSL_3) diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Random.java b/libjava/classpath/gnu/javax/net/ssl/provider/Random.java index c42592b147b..e6815930934 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Random.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Random.java @@ -45,80 +45,110 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; -class Random implements Constructed +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * An SSL nonce. + * + *
    +struct
    +{
    +  uint32 gmt_unix_time;
    +  opaque random_bytes[28];
    +} Random;
    + */
    +public class Random implements Builder, Constructed
     {
     
       // Fields.
       // -------------------------------------------------------------------------
     
    -  private final int gmtUnixTime;
    -  private final byte[] randomBytes;
    +  static final int RANDOM_LENGTH = 28;
    +
    +  private final ByteBuffer buffer;
     
       // Constructors.
       // -------------------------------------------------------------------------
     
    -  Random(int gmtUnixTime, byte[] randomBytes)
    +  public Random (final ByteBuffer buffer)
       {
    -    this.gmtUnixTime = gmtUnixTime;
    -    this.randomBytes = (byte[]) randomBytes.clone();
    +    this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN);
       }
     
    -  // Class methods.
    -  // -------------------------------------------------------------------------
    +  public Random copy()
    +  {
    +    ByteBuffer buffer = ByteBuffer.allocate(32);
    +    buffer.put((ByteBuffer) this.buffer.duplicate().position(0));
    +    return new Random(buffer);
    +  }
     
    -  static Random read(InputStream in) throws IOException
    +  public int length()
       {
    -    int time = (in.read() & 0xFF) << 24 | (in.read() & 0xFF) << 16
    -             | (in.read() & 0xFF) <<  8 | (in.read() & 0xFF);
    -    byte[] buf = new byte[28];
    -    in.read(buf);
    -    return new Random(time, buf);
    +    return RANDOM_LENGTH + 4;
    +  }
    +  
    +  public ByteBuffer buffer()
    +  {
    +    return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice();
       }
     
    -  // Instance methods.
    -  // -------------------------------------------------------------------------
    +  public int gmtUnixTime ()
    +  {
    +    return buffer.getInt(0);
    +  }
     
    -  public void write(OutputStream out) throws IOException
    +  public byte[] randomBytes()
       {
    -    out.write((gmtUnixTime >>> 24) & 0xFF);
    -    out.write((gmtUnixTime >>> 16) & 0xFF);
    -    out.write((gmtUnixTime >>>  8) & 0xFF);
    -    out.write(gmtUnixTime & 0xFF);
    -    out.write(randomBytes);
    +    byte[] buf = new byte[28];
    +    buffer.position (4);
    +    buffer.get (buf);
    +    return buf;
       }
     
    -  byte[] getEncoded()
    +  public void setGmtUnixTime (final int gmtUnixTime)
       {
    -    ByteArrayOutputStream bout = new ByteArrayOutputStream(32);
    -    try
    -      {
    -        write(bout);
    -      }
    -    catch (IOException cantHappen)
    -      {
    -        throw new Error(cantHappen.toString());
    -      }
    -    return bout.toByteArray();
    +    buffer.putInt (0, gmtUnixTime);
       }
     
    -  int getTime()
    +  public void setRandomBytes (final byte[] randomBytes)
       {
    -    return gmtUnixTime;
    +    setRandomBytes (randomBytes, 0);
       }
     
    -  byte[] getRandomBytes()
    +  public void setRandomBytes (final byte[] randomBytes, final int offset)
       {
    -    return randomBytes;
    +    if (randomBytes.length - offset < RANDOM_LENGTH)
    +      throw new IllegalArgumentException ("random value too short");
    +    buffer.position (4);
    +    buffer.put (randomBytes, offset, RANDOM_LENGTH);
       }
     
    -  public String toString()
    +  public String toString (final String prefix)
       {
         StringWriter str = new StringWriter();
         PrintWriter out = new PrintWriter(str);
    +    if (prefix != null)
    +      out.print (prefix);
         out.println("struct {");
    -    out.println("  gmt_unix_time = " + gmtUnixTime + ";");
    -    out.println("  random_bytes = " + Util.toHexString(randomBytes, ':') + ";");
    -    out.println("} Random;");
    +    if (prefix != null)
    +      out.print (prefix);
    +    out.print ("  gmt_unix_time: ");
    +    out.print (gmtUnixTime ());
    +    out.println (";");
    +    if (prefix != null)
    +      out.print (prefix);
    +    out.print ("  random_bytes:  ");
    +    out.print (Util.toHexString (randomBytes (), ':'));
    +    out.println (";");
    +    if (prefix != null)
    +      out.print (prefix);
    +    out.print ("} Random;");
         return str.toString();
       }
    +
    +  public String toString ()
    +  {
    +    return toString (null);
    +  }
     }
    diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Record.java b/libjava/classpath/gnu/javax/net/ssl/provider/Record.java
    new file mode 100644
    index 00000000000..6f5a23ef4dc
    --- /dev/null
    +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Record.java
    @@ -0,0 +1,198 @@
    +/* Record.java -- A single SSL Record.
    +   Copyright (C) 2006  Free Software Foundation, Inc.
    +
    +This file is a 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 of the License, 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; if not, write to the Free Software
    +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider;
    +
    +import java.io.PrintWriter;
    +import java.io.StringWriter;
    +import java.nio.ByteBuffer;
    +import java.nio.ByteOrder;
    +
    +/**
    + * A SSL/TLS record structure. An SSL record is defined to be:
    + *
    + * 
    +struct
    +{
    +  {@link ContentType}     type;
    +  {@link ProtocolVersion} version;
    +  uint16          length;
    +  opaque          fragment[TLSPlaintext.length];
    +} TLSPlaintext;
    +
    + */ +public class Record +{ + private final ByteBuffer buffer; + + public Record (final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + // XXX remove + public ContentType getContentType () + { + return contentType (); + } + + /** + * Gets the content type field. + * + * @return The content type field. + */ + public ContentType contentType () + { + return ContentType.forInteger (buffer.get (0) & 0xFF); + } + + /** + * Get the fragment content, storing it into sink. + * + * @param sink The sink for the fragment bytes. + * @return The number of bytes put into sink + */ + public int fragment (final ByteBuffer sink) + { + int length = length (); + sink.put (((ByteBuffer) buffer.limit (5 + length).position (5)).slice ()); + return length; + } + + /** + * Returns the fragment field as a ByteBuffer. The returned buffer + * is shared with this object's underlying buffer, so it will share + * its attributes. For example, if the underlying buffer is + * read-only, the returned buffer will be read-only. + * + * @return The fragment buffer. + */ + public ByteBuffer fragment () + { + int length = length (); + return ((ByteBuffer) buffer.limit (5 + length).position (5)).slice (); + } + + /** + * Gets the fragment length. + * + * @return The fragment length. + */ + public int length () + { + // XXX this is different behavior than we usually want: we return the + // length field, not the total length. We should consider changing this. + return buffer.getShort (3) & 0xFFFF; + } + + /** + * Gets the protocol version field. + * + * @return The protocol version field. + */ + public ProtocolVersion version () + { + int major = buffer.get (1) & 0xFF; + int minor = buffer.get (2) & 0xFF; + return ProtocolVersion.getInstance (major, minor); + } + + /** + * Sets the content type field. + * + * @param type The content type. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writeable. + * @throws NullPointerException If type is null. + */ + public void setContentType (final ContentType type) + { + buffer.put (0, (byte) type.getValue ()); + } + + /** + * Sets the fragment length. + * + * @param length The fragment length. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writeable. + * @throws IllegalArgumentException If the length is not between 0 + * and 16384, inclusive. + */ + public void setLength (final int length) + { + if (length < 0 || length > 16384) + throw new IllegalArgumentException ("length " + length + " out of range; " + + "must be between 0 and 16384"); + buffer.putShort (3, (short) length); + } + + /** + * Sets the protocol version field. + * + * @param version The protocol version. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writeable. + * @throws NullPointerException If version is null. + */ + public void setVersion (final ProtocolVersion version) + { + buffer.put (1, (byte) version.major ()).put (2, (byte) version.minor ()); + } + + public String toString () + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + out.println ("struct {"); + out.print (" type: "); + out.print (contentType ()); + out.println (";"); + out.print (" version: "); + out.print (version ()); + out.println (";"); + out.print(" length: "); + out.print(length()); + out.println(";"); + out.println (" fragment {"); + out.print (Util.hexDump (fragment (), " ")); + out.println (" };"); + out.print ("} Record;"); + return str.toString (); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/RecordInput.java b/libjava/classpath/gnu/javax/net/ssl/provider/RecordInput.java deleted file mode 100644 index d4ba5b596d6..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/RecordInput.java +++ /dev/null @@ -1,232 +0,0 @@ -/* RecordInput.java -- record layer input. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import gnu.classpath.SystemProperties; -import gnu.classpath.debug.Component; -import gnu.classpath.debug.SystemLogger; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.PrintWriter; - -import java.util.logging.Logger; - -import javax.net.ssl.SSLProtocolException; - -class RecordInput -{ - - // Fields. - // ------------------------------------------------------------------------- - - private static final boolean DEBUG_RECORD_LAYER = true; - private static final Logger logger = SystemLogger.SYSTEM; - - private byte[] fragment; - private int index; - private ContentType type; - - private final DataInputStream in; - private Session session; - - // Constructor. - // ------------------------------------------------------------------------- - - RecordInput (final InputStream in, final Session session) - { - this.in = new DataInputStream (in); - this.session = session; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - synchronized int available (ContentType type) throws IOException - { - if (fragment == null) - { - readRecord (); - } - if (type != this.type) - { - return 0; - } - return fragment.length - index; - } - - void setSession (Session session) - { - this.session = session; - } - - synchronized int read (byte[] buf, int off, int len, ContentType type) - throws IOException - { - if (off < 0 || len < 0 || off + len > buf.length) - { - throw new ArrayIndexOutOfBoundsException ("size=" + buf.length + - " off=" + off + " len=" + len); - } - if (fragment == null || index >= fragment.length) - { - readRecord (); - } - if (type != this.type) - { - return 0; - } - len = Math.min (len, fragment.length - index); - System.arraycopy (fragment, index, buf, off, len); - index += len; - return len; - } - - boolean pollClose () throws IOException - { - if (fragment == null || index >= fragment.length) - { - try - { - readRecord(); - } - catch (AlertException ae) - { - Alert alert = ae.getAlert(); - if (alert.getDescription() == Alert.Description.CLOSE_NOTIFY) - { - return true; - } - throw ae; - } - } - return false; - } - - private void readRecord() throws IOException - { - type = ContentType.read (in); - if ((type.getValue() & 0x80) != 0 || (type.getValue() & 0x40) != 0) - { - in.read(); - if ((type.getValue() & 0x40) != 0) - { - in.read(); - } - type = ContentType.read(in); - if (type != ContentType.CLIENT_HELLO_V2) - { - throw new SSLProtocolException("unsupported V2 message"); - } - type = ContentType.HANDSHAKE; - // Record this message, and re-present it as a normal handshake - // layer message. ClientHello will handle the real parsing. - ByteArrayOutputStream buffer = new ByteArrayOutputStream (256); - buffer.write(1); // The type we just read. - RecordingInputStream in2 = new RecordingInputStream (in, buffer); - ProtocolVersion version = ProtocolVersion.read (in2); - if (version.compareTo (ProtocolVersion.SSL_3) < 0) - { - throw new SSLProtocolException("unsupported client version"); - } - int len = (in2.read() & 0xFF) << 8 | (in2.read() & 0xFF); - len += (in2.read() & 0xFF) << 8 | (in2.read() & 0xFF); - len += (in2.read() & 0xFF) << 8 | (in2.read() & 0xFF); - int count = 0; - while (count < len) - { - int l = (int) in2.skip(len - count); - if (l > 0) - { - count += l; - } - } - fragment = buffer.toByteArray (); - index = 0; - - // We can't be encrypted/MACed/compressed here, since a V2 message - // will only be sent as the first message, and only by the client. - return; - } - ProtocolVersion v = ProtocolVersion.read (in); - int len = in.readUnsignedShort (); - if (len > session.params.getFragmentLength() + 2048) - { - throw new OverflowException(); - } - fragment = new byte [len]; - in.readFully (fragment); - - if (DEBUG_RECORD_LAYER) - { - logger.log (Component.SSL_RECORD_LAYER, - ">> READ RECORD <<{4}" + - "struct {{4}" + - " type = {0};{4}" + - " version = {1};{4}" + - " length = {2};{4}" + - "{3}{4}" + - "} TLSCiphertext;", new Object[] - { - type, v, new Integer (len), - Util.hexDump (fragment, " "), - SystemProperties.getProperty ("line.separator") - }); - } - - fragment = session.params.decrypt (fragment, v, type); - index = 0; - - if (session.random != null) - session.random.setSeed (fragment); - - if (type == ContentType.ALERT) - { - Alert alert = Alert.read (new ByteArrayInputStream (fragment)); - session.currentAlert = alert; - } - if (session.currentAlert != null) - { - throw new AlertException (session.currentAlert, false); - } - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/RecordInputStream.java b/libjava/classpath/gnu/javax/net/ssl/provider/RecordInputStream.java deleted file mode 100644 index 14cf829ac67..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/RecordInputStream.java +++ /dev/null @@ -1,106 +0,0 @@ -/* RecordInputStream.java -- record layer input stream interface. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.IOException; -import java.io.InputStream; - -class RecordInputStream extends InputStream -{ - - // Fields. - // ------------------------------------------------------------------------- - - /** - * The record input instance. - */ - private final RecordInput in; - - /** - * The content type this stream is reading. - */ - private final ContentType type; - - // Constructor. - // ------------------------------------------------------------------------- - - RecordInputStream (RecordInput in, ContentType type) - { - this.in = in; - this.type = type; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public int available () throws IOException - { - return in.available (type); - } - - public int read () throws IOException - { - byte[] b = new byte[1]; - int ret; - while ((ret = read (b)) != 1) - { - if (ret == -1) - { - return -1; - } - Thread.yield (); - } - return b[0] & 0xFF; - } - - public int read (byte[] buf) throws IOException - { - return read (buf, 0, buf.length); - } - - public int read (byte[] buf, int off, int len) throws IOException - { - return in.read (buf, off, len, type); - } - - public String toString () - { - return RecordInputStream.class.getName () + " [ type=" + type + " ]"; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/RecordOutputStream.java b/libjava/classpath/gnu/javax/net/ssl/provider/RecordOutputStream.java deleted file mode 100644 index 3bf228f2d69..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/RecordOutputStream.java +++ /dev/null @@ -1,189 +0,0 @@ -/* RecordOutputStream.java -- record layer output. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import gnu.classpath.SystemProperties; -import gnu.classpath.debug.Component; -import gnu.classpath.debug.SystemLogger; - -import java.io.FilterOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; - -import java.util.logging.Logger; - -/** - * An output stream for writing data to the record layer. All data written - * to this stream (through any of the write methods) is immediately sent - * as a full record, so it is advisable to write large arrays to the stream - * instead of one byte at a time (alternatively, a {@link - * java.io.BufferedOutputStream} can be used). - */ -class RecordOutputStream extends FilterOutputStream -{ - - // Fields. - // ------------------------------------------------------------------------- - - private static final boolean DEBUG_RECORD_LAYER = true; - private static final Logger logger = SystemLogger.SYSTEM; - - /** - * The content type of this output stream. - */ - private final ContentType type; - - /** - * The security parameters. - */ - private final SecurityParameters params; - - private final boolean emitEmpty; - - private static final byte[] ZERO = new byte[0]; - - // Constructor. - // ------------------------------------------------------------------------- - - RecordOutputStream (final OutputStream out, final ContentType type, - final SecurityParameters params) - { - super (out); - this.type = type; - this.params = params; - String empty = Util.getSecurityProperty ("jessie.emit.empty.records"); - if (empty == null) - { - // IE panics if it gets an empty record; so, leave this false - // for the default. - empty = "false"; - } - emitEmpty = Boolean.valueOf (empty).booleanValue () && - type == ContentType.APPLICATION_DATA; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write (int b) throws IOException - { - write (new byte[] { (byte) b }); - } - - public void write (byte[] buf) throws IOException - { - write (buf, 0, buf.length); - } - - public void write (byte[] buf, int off, int len) throws IOException - { - if (off < 0 || len < 0 || off + len > buf.length) - { - throw new ArrayIndexOutOfBoundsException ("size=" + buf.length + - " off=" + off + " len=" + len); - } - - int count = 0; - int len2 = 0; - do - { - if (emitEmpty) - { - byte[] fragment = params.encrypt (ZERO, 0, 0, type); - if (DEBUG_RECORD_LAYER) - { - logger.log (Component.SSL_RECORD_LAYER, - ">> WRITING RECORD <<{4}" + - "struct {{4}" + - " type = {0};{4}" + - " version = {1};{4}" + - " length = {2};{4}" + - "{3}{4}" + - "} TLSCiphertext;", new Object[] - { - type, params.getVersion (), new Integer (fragment.length), - Util.hexDump (fragment, " "), - SystemProperties.getProperty ("line.separator") - }); - } - out.write (type.getValue()); - params.getVersion().write (out); - out.write ((fragment.length >>> 8) & 0xFF); - out.write ( fragment.length & 0xFF); - out.write (fragment); - out.flush (); - } - len2 = Math.min (len - count, params.getFragmentLength()); - if (DEBUG_RECORD_LAYER) - { - logger.log (Component.SSL_RECORD_LAYER, - "writing chunk size={0}", new Integer (len2)); - } - synchronized (out) - { - byte[] fragment = params.encrypt (buf, off + count, len2, type); - if (DEBUG_RECORD_LAYER) - { - logger.log (Component.SSL_RECORD_LAYER, - ">> WRITING RECORD <<{4}" + - "struct {{4}" + - " type = {0};{4}" + - " version = {1};{4}" + - " length = {2};{4}" + - "{3}{4}" + - "} TLSCiphertext;", new Object[] - { - type, params.getVersion (), new Integer (fragment.length), - Util.hexDump (fragment, " "), - SystemProperties.getProperty ("line.separator") - }); - } - out.write (type.getValue()); - params.getVersion().write (out); - out.write ((fragment.length >>> 8) & 0xFF); - out.write ( fragment.length & 0xFF); - out.write (fragment); - out.flush (); - } - count += len2; - } - while (count < len); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/RecordingInputStream.java b/libjava/classpath/gnu/javax/net/ssl/provider/RecordingInputStream.java deleted file mode 100644 index d81b652d516..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/RecordingInputStream.java +++ /dev/null @@ -1,131 +0,0 @@ -/* RecordingInputStream.java -- Input stream that records data. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.ByteArrayOutputStream; -import java.io.FilterInputStream; -import java.io.InputStream; -import java.io.IOException; - -/** - * A filter input stream that records every byte read from the underlying - * input stream. This class is useful for protocols that require portions - * of the communication to be saved, such as the handshake and key - * derivation in SSL. - * - * @author Casey Marshall (rsdio@metastatic.org) - */ -class RecordingInputStream extends FilterInputStream -{ - - // Fields. - // ------------------------------------------------------------------------- - - protected ByteArrayOutputStream sink; - - // Constructors. - // ------------------------------------------------------------------------- - - RecordingInputStream(InputStream in) - { - this(in, new ByteArrayOutputStream()); - } - - RecordingInputStream(InputStream in, ByteArrayOutputStream sink) - { - super(in); - this.sink = sink; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public synchronized int read() throws IOException - { - int i = in.read(); - sink.write(i); - return i; - } - - public synchronized int read(byte[] buf, int off, int len) throws IOException - { - int l = in.read(buf, off, len); - sink.write(buf, off, l); - return l; - } - - public synchronized int read(byte[] buf) throws IOException - { - return read(buf, 0, buf.length); - } - - public synchronized long skip(long len) throws IOException - { - long l = 0; - int i = 0; - byte[] buf = new byte[1024]; - while (l < len) - { - i = read(buf, 0, (int) Math.min((long) buf.length, len - l)); - if (i == -1) - break; - l += i; - } - return l; - } - - /** - * Returns all bytes recorded after this instance was created, or the last - * call to {@link resetSink()}. - * - * @return The recorded bytes. - */ - byte[] getBytes() - { - return sink.toByteArray(); - } - - /** - * Clears the recording buffer off all previously-recorded bytes. - */ - void resetSink() - { - sink.reset(); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java new file mode 100644 index 00000000000..cf7c8e4e3d6 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java @@ -0,0 +1,315 @@ +/* SSLContextImpl.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.java.security.action.GetSecurityPropertyAction; +import gnu.javax.net.ssl.AbstractSessionContext; +import gnu.javax.net.ssl.NullManagerParameters; +import gnu.javax.net.ssl.PreSharedKeyManager; +import gnu.javax.net.ssl.SRPTrustManager; + +import java.security.AccessController; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.SecureRandom; +import java.security.UnrecoverableKeyException; + +import javax.net.ssl.KeyManager; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContextSpi; +import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLServerSocketFactory; +import javax.net.ssl.SSLSessionContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.TrustManagerFactory; +import javax.net.ssl.X509ExtendedKeyManager; +import javax.net.ssl.X509TrustManager; + +/** + * Our implementation of {@link SSLContextSpi}. + * + * @author Casey Marshall (csm@gnu.org) + */ +public final class SSLContextImpl extends SSLContextSpi +{ + AbstractSessionContext serverContext; + AbstractSessionContext clientContext; + + PreSharedKeyManager pskManager; + X509ExtendedKeyManager keyManager; + X509TrustManager trustManager; + SRPTrustManager srpTrustManager; + SecureRandom random; + + public SSLContextImpl() + { + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLContextSpi#engineCreateSSLEngine() + */ + protected @Override SSLEngine engineCreateSSLEngine() + { + return engineCreateSSLEngine(null, -1); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLContextSpi#engineCreateSSLEngine(java.lang.String, int) + */ + protected @Override SSLEngine engineCreateSSLEngine(String host, int port) + { + return new SSLEngineImpl(this, host, port); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLContextSpi#engineGetClientSessionContext() + */ + protected @Override synchronized SSLSessionContext engineGetClientSessionContext() + { + if (clientContext == null) + { + try + { + clientContext = AbstractSessionContext.newInstance(); + } + catch (SSLException ssle) + { + // XXX Ignore? + } + } + return clientContext; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLContextSpi#engineGetServerSessionContext() + */ + protected @Override synchronized SSLSessionContext engineGetServerSessionContext() + { + if (serverContext == null) + { + try + { + serverContext = AbstractSessionContext.newInstance(); + } + catch (SSLException ssle) + { + // XXX Ignore? + } + } + return serverContext; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLContextSpi#engineGetServerSocketFactory() + */ + protected @Override SSLServerSocketFactory engineGetServerSocketFactory() + { + return new SSLServerSocketFactoryImpl(this); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLContextSpi#engineGetSocketFactory() + */ + protected @Override SSLSocketFactory engineGetSocketFactory() + { + return new SSLSocketFactoryImpl(this); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLContextSpi#engineInit(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom) + */ + protected @Override void engineInit(KeyManager[] keyManagers, + TrustManager[] trustManagers, + SecureRandom random) + throws KeyManagementException + { + keyManager = null; + trustManager = null; + srpTrustManager = null; + if (keyManagers != null) + { + for (int i = 0; i < keyManagers.length; i++) + { + if ((keyManagers[i] instanceof X509ExtendedKeyManager) + && keyManager == null) + keyManager = (X509ExtendedKeyManager) keyManagers[i]; + if (keyManagers[i] instanceof PreSharedKeyManager + && pskManager == null) + pskManager = (PreSharedKeyManager) keyManagers[i]; + } + } + if (keyManager == null) + keyManager = defaultKeyManager(); + if (trustManagers != null) + { + for (int i = 0; i < trustManagers.length; i++) + { + if (trustManagers[i] instanceof X509TrustManager) + { + if (trustManager == null) + trustManager = (X509TrustManager) trustManagers[i]; + } + else if (trustManagers[i] instanceof SRPTrustManager) + { + if (srpTrustManager == null) + srpTrustManager = (SRPTrustManager) trustManagers[i]; + } + } + } + if (trustManager == null && srpTrustManager == null) + { + trustManager = defaultTrustManager(); + } + if (random != null) + { + this.random = random; + } + else + { + this.random = defaultRandom(); + } + } + + /** + * Create and return a default key manager. The default is the JessieX509 + * algorithm, loaded from either the jssecerts file, or the cacerts file. + * + * @return The default key manager instance. + * @throws KeyManagementException If the instance cannot be created. + */ + private X509ExtendedKeyManager defaultKeyManager() throws KeyManagementException + { + KeyManagerFactory fact = null; + try + { + fact = KeyManagerFactory.getInstance("JessieX509", "Jessie"); + } + catch (NoSuchAlgorithmException nsae) + { + throw new KeyManagementException(nsae); + } + catch (NoSuchProviderException nspe) + { + throw new KeyManagementException(nspe); + } + try + { + fact.init(null, null); + return (X509ExtendedKeyManager) fact.getKeyManagers()[0]; + } + catch (NoSuchAlgorithmException nsae) { } + catch (KeyStoreException kse) { } + catch (UnrecoverableKeyException uke) { } + catch (IllegalStateException ise) { } + + try + { + fact.init(new NullManagerParameters()); + return (X509ExtendedKeyManager) fact.getKeyManagers()[0]; + } + catch (Exception shouldNotHappen) + { + throw new Error(shouldNotHappen.toString()); + } + } + + /** + * Create and return a default trust manager. The default is the JessieX509 + * algorithm, loaded from either the jssecerts file, or the cacerts file. + * + * @return The default trust manager instance. + * @throws KeyManagementException If the instance cannot be created. + */ + private X509TrustManager defaultTrustManager() throws KeyManagementException + { + try + { + TrustManagerFactory fact = + TrustManagerFactory.getInstance("JessieX509", "Jessie"); + fact.init((KeyStore) null); + return (X509TrustManager) fact.getTrustManagers()[0]; + } + catch (NoSuchAlgorithmException nsae) + { + throw new KeyManagementException(nsae); + } + catch (NoSuchProviderException nspe) + { + throw new KeyManagementException(nspe); + } + catch (KeyStoreException kse) + { + throw new KeyManagementException(kse); + } + } + + /** + * Create a default secure PRNG. This is defined as either the algorithm + * given in the gnu.javax.net.ssl.secureRandom security + * property, or Fortuna if that property is not set. If none of these + * algorithms can be found, and instance created with the SecureRandom + * constructor is returned. + * + * @return The default secure PRNG instance. + */ + private SecureRandom defaultRandom() + { + GetSecurityPropertyAction gspa + = new GetSecurityPropertyAction("gnu.javax.net.ssl.secureRandom"); + String alg = AccessController.doPrivileged(gspa); + if (alg == null) + alg = "Fortuna"; + SecureRandom rand = null; + try + { + rand = SecureRandom.getInstance(alg); + } + catch (NoSuchAlgorithmException nsae) + { + rand = new SecureRandom(); + } + + return rand; + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java new file mode 100644 index 00000000000..22c488d68c0 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java @@ -0,0 +1,842 @@ +/* SSLEngineImpl.java -- implementation of SSLEngine. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; + +import gnu.java.security.util.ByteBufferOutputStream; +import gnu.javax.net.ssl.Session; +import gnu.javax.net.ssl.SSLRecordHandler; + +import java.nio.BufferOverflowException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.List; +import java.util.zip.DataFormatException; + +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.ShortBufferException; +import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLEngineResult; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLEngineResult.HandshakeStatus; +import javax.net.ssl.SSLEngineResult.Status; + +public final class SSLEngineImpl extends SSLEngine +{ + final SSLContextImpl contextImpl; + private SSLRecordHandler[] handlers; + private static final SystemLogger logger = SystemLogger.SYSTEM; + private SessionImpl session; + private InputSecurityParameters insec; + private OutputSecurityParameters outsec; + private boolean inClosed; + private boolean outClosed; + private boolean createSessions; + private boolean needClientAuth; + private boolean wantClientAuth; + private boolean initialHandshakeDone; + private AbstractHandshake handshake; + private Alert lastAlert; + private SSLEngineResult.HandshakeStatus handshakeStatus; + private boolean changeCipherSpec; + + private String[] enabledSuites; + private String[] enabledProtocols; + + /** + * We can receive any message chunked across multiple records, + * including alerts, even though all alert messages are only two + * bytes long. Handshake messages are de-chunked in the handshake + * handler, change-cipher-spec messages are always empty, and we + * don't care about chunking of application messages. + * + * This buffer will hold the incomplete alert that we receive, if + * any. + */ + private final ByteBuffer alertBuffer; + + private Mode mode; + + private enum Mode { SERVER, CLIENT }; + + SSLEngineImpl (SSLContextImpl contextImpl, String host, int port) + { + super(host, port); + this.contextImpl = contextImpl; + handlers = new SSLRecordHandler[256]; + session = new SessionImpl(); + session.suite = CipherSuite.TLS_NULL_WITH_NULL_NULL; + session.version = ProtocolVersion.TLS_1_1; + byte[] sid = new byte[32]; + contextImpl.random.nextBytes(sid); + session.setId(new Session.ID(sid)); + session.setRandom(contextImpl.random); + + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "generated session ID {0} with random {1}", + session.id(), contextImpl.random); + + // Begin with no encryption. + insec = new InputSecurityParameters (null, null, null, session, + CipherSuite.TLS_NULL_WITH_NULL_NULL); + outsec = new OutputSecurityParameters (null, null, null, session, + CipherSuite.TLS_NULL_WITH_NULL_NULL); + inClosed = false; + outClosed = false; + needClientAuth = false; + wantClientAuth = false; + createSessions = true; + initialHandshakeDone = false; + alertBuffer = ByteBuffer.wrap (new byte[2]); + mode = null; + lastAlert = null; + handshakeStatus = SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING; + changeCipherSpec = false; + + // Set up default protocols and suites. + enabledProtocols = new String[] { + ProtocolVersion.TLS_1_1.toString(), + ProtocolVersion.TLS_1.toString(), + ProtocolVersion.SSL_3.toString() + }; + enabledSuites = defaultSuites(); + } + + static String[] defaultSuites() + { + return new String[] { + CipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA.toString(), + CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA.toString(), + CipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA.toString(), + CipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA.toString(), + CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA.toString(), + CipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA.toString(), + CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA.toString(), + CipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA.toString(), + CipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA.toString(), + CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA.toString(), + CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA.toString(), + CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA.toString(), + CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA.toString(), + CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA.toString(), + CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA.toString(), + CipherSuite.TLS_RSA_WITH_RC4_128_MD5.toString(), + CipherSuite.TLS_RSA_WITH_RC4_128_SHA.toString(), + CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA.toString(), + CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA.toString(), + CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA.toString(), + CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA.toString(), + CipherSuite.TLS_RSA_WITH_DES_CBC_SHA.toString(), + CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA.toString(), + CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA.toString(), + CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.toString(), + CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5.toString(), + CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA.toString(), + CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.toString(), + CipherSuite.TLS_RSA_WITH_NULL_MD5.toString(), + CipherSuite.TLS_RSA_WITH_NULL_SHA.toString() + }; + } + + // XXX implement? + /*public void registerHandler (final int contentType, + SSLRecordHandler handler) + throws SSLException + { + if (type.equals (ContentType.CHANGE_CIPHER_SPEC) + || type.equals (ContentType.ALERT) + || type.equals (ContentType.HANDSHAKE) + || type.equals (ContentType.APPLICATION_DATA)) + throw new SSLException ("can't override handler for content type " + type); + int i = type.getValue (); + if (i < 0 || i > 255) + throw new SSLException ("illegal content type: " + type); + handlers[i] = handler; + }*/ + + @Override + public void beginHandshake () throws SSLException + { + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "{0} handshake begins", mode); + + if (mode == null) + throw new IllegalStateException("setUseClientMode was never used"); + + switch (mode) + { + case SERVER: + if (getHandshakeStatus() != SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) + throw new SSLException("handshake already in progress"); + try + { + handshake = new ServerHandshake(initialHandshakeDone, this); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + break; + + case CLIENT: + try + { + handshake = new ClientHandshake(this); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + break; + } + } + + @Override + public void closeInbound() + { + inClosed = true; + } + + @Override + public void closeOutbound() + { + lastAlert = new Alert(Alert.Level.WARNING, Alert.Description.CLOSE_NOTIFY); + } + + @Override + public Runnable getDelegatedTask() + { + if (handshake == null) + return null; + return handshake.getTask(); + } + + @Override + public String[] getEnabledCipherSuites() + { + return (String[]) enabledSuites.clone(); + } + + @Override + public String[] getEnabledProtocols() + { + return (String[]) enabledProtocols.clone(); + } + + @Override + public boolean getEnableSessionCreation() + { + return createSessions; + } + + @Override + public HandshakeStatus getHandshakeStatus() + { + if (handshake == null) + return HandshakeStatus.NOT_HANDSHAKING; + return handshake.status(); + } + + @Override + public boolean getNeedClientAuth() + { + return needClientAuth; + } + + @Override + public SSLSession getSession() + { + return session; + } + + @Override + public boolean getUseClientMode () + { + return (mode == Mode.CLIENT); + } + + @Override + public boolean getWantClientAuth() + { + return wantClientAuth; + } + + @Override + public boolean isInboundDone() + { + return inClosed; + } + + @Override + public boolean isOutboundDone() + { + return outClosed; + } + + @Override + public void setEnableSessionCreation(final boolean createSessions) + { + this.createSessions = createSessions; + } + + @Override + public void setEnabledCipherSuites(final String[] suites) + { + if (suites.length == 0) + throw new IllegalArgumentException("need at least one suite"); + enabledSuites = (String[]) suites.clone(); + } + + @Override + public void setEnabledProtocols(final String[] protocols) + { + if (protocols.length == 0) + throw new IllegalArgumentException("need at least one protocol"); + enabledProtocols = (String[]) protocols.clone(); + } + + @Override + public String[] getSupportedCipherSuites() + { + // XXX if we ever want to support "pluggable" cipher suites, we'll need + // to figure this out. + + return CipherSuite.availableSuiteNames().toArray(new String[0]); + } + + @Override + public String[] getSupportedProtocols() + { + return new String[] { ProtocolVersion.SSL_3.toString(), + ProtocolVersion.TLS_1.toString(), + ProtocolVersion.TLS_1_1.toString() }; + } + + @Override + public void setNeedClientAuth(final boolean needClientAuth) + { + this.needClientAuth = needClientAuth; + } + + @Override + public void setUseClientMode (final boolean clientMode) + { + if (clientMode) + mode = Mode.CLIENT; + else + mode = Mode.SERVER; + } + + public @Override void setWantClientAuth(final boolean wantClientAuth) + { + this.wantClientAuth = wantClientAuth; + } + + public @Override SSLEngineResult unwrap (final ByteBuffer source, + final ByteBuffer[] sinks, + final int offset, final int length) + throws SSLException + { + if (mode == null) + throw new IllegalStateException ("setUseClientMode was never called"); + + if (inClosed) + return new SSLEngineResult(SSLEngineResult.Status.CLOSED, + handshakeStatus, 0, 0); + + if (source.remaining() < 5) + { + return new SSLEngineResult(SSLEngineResult.Status.BUFFER_UNDERFLOW, + handshakeStatus, 0, 0); + } + + Record record = null; + boolean helloV2 = false; + + // XXX: messages may be chunked across multiple records; does this + // include the SSLv2 message? I don't think it does, but we should + // make sure. + if (!getUseClientMode() && (source.get(source.position()) & 0x80) == 0x80) + { + if (handshake == null) + beginHandshake(); + int hellolen = source.getShort(source.position()) & 0x7FFF; + this.handshake.handleV2Hello(source.slice()); + if (!insec.cipherSuite().equals (CipherSuite.TLS_NULL_WITH_NULL_NULL)) + throw new SSLException ("received SSLv2 client hello in encrypted " + + "session; this is invalid."); + if (Debug.DEBUG) + logger.log (Component.SSL_RECORD_LAYER, + "converting SSLv2 client hello to version 3 hello"); + + source.getShort(); // skip length + ClientHelloV2 v2 = new ClientHelloV2(source.slice()); + + if (Debug.DEBUG) + logger.log(Component.SSL_RECORD_LAYER, "v2 hello: {0}", v2); + + List suites = v2.cipherSpecs(); + + ClientHelloBuilder hello = new ClientHelloBuilder(); + hello.setVersion(v2.version ()); + + Random random = hello.random(); + byte[] challenge = v2.challenge(); + if (challenge.length < 32) + { + byte[] b = new byte[32]; + System.arraycopy(challenge, 0, b, b.length - challenge.length, + challenge.length); + challenge = b; + } + random.setGmtUnixTime((challenge[0] & 0xFF) << 24 + | (challenge[1] & 0xFF) << 16 + | (challenge[2] & 0xFF) << 8 + | (challenge[3] & 0xFF)); + random.setRandomBytes(challenge, 4); + + byte[] sessionId = v2.sessionId(); + hello.setSessionId(sessionId, 0, sessionId.length); + hello.setCipherSuites(suites); + ArrayList comps = new ArrayList(1); + comps.add(CompressionMethod.NULL); + hello.setCompressionMethods(comps); + + record = new Record(ByteBuffer.allocate(hello.length() + 9)); + record.setContentType(ContentType.HANDSHAKE); + record.setVersion(v2.version()); + record.setLength(hello.length() + 4); + + Handshake handshake = new Handshake(record.fragment()); + handshake.setLength(hello.length()); + handshake.setType(Handshake.Type.CLIENT_HELLO); + + handshake.bodyBuffer().put(hello.buffer()); + source.position(source.position() + hellolen); + helloV2 = true; + } + else + record = new Record(source); + + ContentType type = record.contentType (); + + if (Debug.DEBUG) + logger.log(Component.SSL_RECORD_LAYER, "input record:\n{0}", record); + + if (record.length() > session.getPacketBufferSize() - 5) + { + lastAlert = new Alert(Alert.Level.FATAL, + Alert.Description.RECORD_OVERFLOW); + throw new AlertException(lastAlert); + } + + ByteBufferOutputStream sysMsg = null; + ByteBuffer msg = null; + + int produced = 0; + try + { + // Application data will get decrypted directly into the user's + // output buffers. + if (record.contentType() == ContentType.APPLICATION_DATA) + produced = insec.decrypt(record, sinks, offset, length); + else + { + if (insec.cipherSuite() == CipherSuite.TLS_NULL_WITH_NULL_NULL) + msg = record.fragment(); + else + { + sysMsg = new ByteBufferOutputStream(); + insec.decrypt(record, sysMsg); + } + } + + // Advance the input buffer past the record we just read. + if (!helloV2) + source.position(source.position() + record.length() + 5); + } + catch (BufferOverflowException boe) + { + // We throw this if the output buffers are not large enough; signal + // the caller about this. + logger.log(Component.SSL_RECORD_LAYER, "buffer overflow when decrypting", boe); + return new SSLEngineResult(SSLEngineResult.Status.BUFFER_OVERFLOW, + handshakeStatus, 0, 0); + } + catch (IllegalBlockSizeException ibse) + { + lastAlert = new Alert(Alert.Level.FATAL, + Alert.Description.BAD_RECORD_MAC); + throw new AlertException(lastAlert, ibse); + } + catch (DataFormatException dfe) + { + lastAlert = new Alert(Alert.Level.FATAL, + Alert.Description.DECOMPRESSION_FAILURE); + throw new AlertException(lastAlert, dfe); + } + catch (MacException me) + { + lastAlert = new Alert(Alert.Level.FATAL, + Alert.Description.BAD_RECORD_MAC); + throw new AlertException(lastAlert, me); + } + catch (ShortBufferException sbe) + { + // We've messed up if this happens. + lastAlert = new Alert(Alert.Level.FATAL, + Alert.Description.INTERNAL_ERROR); + throw new AlertException(lastAlert, sbe); + } + + SSLEngineResult result = null; + + // If we need to handle the output here, do it. Otherwise, the output + // has been stored in the supplied output buffers. + if (sysMsg != null) + { + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "sysmessage {0}", sysMsg); + msg = sysMsg.buffer(); + } + + if (type == ContentType.CHANGE_CIPHER_SPEC) + { + // We *may* get a partial message, even though the message is only + // one byte long. + if (msg.remaining() == 0) + { + result = new SSLEngineResult (SSLEngineResult.Status.OK, + handshakeStatus, + record.length() + 5, 0); + } + else + { + byte b = msg.get(); + if (b != 1) + throw new SSLException ("unknown ChangeCipherSpec value: " + (b & 0xFF)); + InputSecurityParameters params = handshake.getInputParams(); + logger.log (Component.SSL_RECORD_LAYER, + "switching to input security parameters {0}", + params.cipherSuite()); + insec = params; + result = new SSLEngineResult (SSLEngineResult.Status.OK, + handshakeStatus, + record.length() + 5, 0); + } + } + else if (type == ContentType.ALERT) + { + int len = 0; + if (alertBuffer.position() > 0) + { + alertBuffer.put(msg.get()); + len = 1; + } + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "processing alerts {0}", + Util.wrapBuffer(msg)); + len += msg.remaining() / 2; + Alert[] alerts = new Alert[len]; + int i = 0; + if (alertBuffer.position() > 0) + { + alertBuffer.flip(); + alerts[0] = new Alert(alertBuffer); + i++; + } + while (i < alerts.length) + { + alerts[i++] = new Alert(msg.duplicate()); + msg.position(msg.position() + 2); + } + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "alerts: {0}", alerts.length); + + for (i = 0; i < alerts.length; i++) + { + if (alerts[i].level() == Alert.Level.FATAL) + throw new AlertException(alerts[i], false); + if (alerts[i].description() != Alert.Description.CLOSE_NOTIFY) + logger.log(java.util.logging.Level.WARNING, + "received alert: {0}", alerts[i]); + if (alerts[i].description() == Alert.Description.CLOSE_NOTIFY) + inClosed = true; + } + + if (msg.hasRemaining()) + alertBuffer.position(0).limit(2); + + result = new SSLEngineResult (SSLEngineResult.Status.OK, + handshakeStatus, + record.length() + 5, 0); + } + else if (type == ContentType.HANDSHAKE) + { + if (handshake == null) + beginHandshake(); + try + { + handshakeStatus = handshake.handleInput(msg); + } + catch (AlertException ae) + { + lastAlert = ae.alert(); + return new SSLEngineResult(SSLEngineResult.Status.OK, + SSLEngineResult.HandshakeStatus.NEED_WRAP, + 0, 0); + } + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "handshake status {0}", handshakeStatus); + result = new SSLEngineResult(SSLEngineResult.Status.OK, + handshakeStatus, + record.length() + 5, + 0); + if (handshakeStatus == HandshakeStatus.FINISHED) + { + handshake = null; + handshakeStatus = HandshakeStatus.NOT_HANDSHAKING; + } + } + else if (type == ContentType.APPLICATION_DATA) + { + // Do nothing more; the application data has been put into + // the output buffers. + result = new SSLEngineResult(SSLEngineResult.Status.OK, + handshakeStatus, + record.length() + 5, + produced); + } + else + { + SSLRecordHandler handler = handlers[type.getValue()]; + if (handler != null) + { + result = new SSLEngineResult(SSLEngineResult.Status.OK, + handshakeStatus, + record.length() + 5, + 0); + } + else + throw new SSLException ("unknown content type: " + type); + } + + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "return result: {0}", result); + + return result; + } + + public @Override SSLEngineResult wrap (ByteBuffer[] sources, int offset, int length, + ByteBuffer sink) + throws SSLException + { + if (mode == null) + throw new IllegalStateException ("setUseClientMode was never called"); + + if (outClosed) + return new SSLEngineResult(SSLEngineResult.Status.CLOSED, + handshakeStatus, 0, 0); + + ContentType type = null; + ByteBuffer sysMessage = null; + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "wrap {0} {1} {2} {3} / {4}", + sources, offset, length, sink, getHandshakeStatus()); + if (lastAlert != null) + { + type = ContentType.ALERT; + sysMessage = ByteBuffer.allocate(2); + Alert alert = new Alert(sysMessage); + alert.setDescription(lastAlert.description()); + alert.setLevel(lastAlert.level()); + if (lastAlert.description() == Alert.Description.CLOSE_NOTIFY) + outClosed = true; + } + else if (changeCipherSpec) + { + type = ContentType.CHANGE_CIPHER_SPEC; + sysMessage = ByteBuffer.allocate(1); + sysMessage.put(0, (byte) 1); + } + else if (getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_WRAP) + { + // If we are not encrypting, optimize the handshake to fill + // the buffer directly. + if (outsec.suite() == CipherSuite.TLS_NULL_WITH_NULL_NULL) + { + int orig = sink.position(); + sink.order(ByteOrder.BIG_ENDIAN); + sink.put((byte) ContentType.HANDSHAKE.getValue()); + sink.putShort((short) session.version.rawValue()); + sink.putShort((short) 0); + handshakeStatus = handshake.handleOutput(sink); + int produced = sink.position() - orig; + sink.putShort(orig + 3, (short) (produced - 5)); + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "emitting record:\n{0}", + new Record((ByteBuffer) sink.duplicate().position(orig))); + SSLEngineResult result = new SSLEngineResult(SSLEngineResult.Status.OK, + handshakeStatus, 0, produced); + + // Note, this will only happen if we transition from + // TLS_NULL_WITH_NULL_NULL *to* TLS_NULL_WITH_NULL_NULL, which + // doesn't make a lot of sense, but we support it anyway. + if (handshakeStatus == HandshakeStatus.FINISHED) + { + handshake = null; // finished with it. + handshakeStatus = HandshakeStatus.NOT_HANDSHAKING; + } + return result; + } + + // Rough guideline; XXX. + sysMessage = ByteBuffer.allocate(sink.remaining() - 2048); + type = ContentType.HANDSHAKE; + try + { + handshakeStatus = handshake.handleOutput(sysMessage); + } + catch (AlertException ae) + { + lastAlert = ae.alert(); + return new SSLEngineResult(Status.OK, + HandshakeStatus.NEED_WRAP, 0, 0); + } + sysMessage.flip(); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "handshake status {0}", + handshakeStatus); + } + + int produced = 0; + int consumed = 0; + + try + { + int orig = sink.position(); + int[] inout = null; + if (sysMessage != null) + { + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "encrypt system message {0} to {1}", sysMessage, sink); + inout = outsec.encrypt(new ByteBuffer[] { sysMessage }, 0, 1, + type, sink); + produced = inout[1]; + } + else + { + inout = outsec.encrypt(sources, offset, length, + ContentType.APPLICATION_DATA, sink); + consumed = inout[0]; + produced = inout[1]; + } + + if (Debug.DEBUG) + logger.logv(Component.SSL_RECORD_LAYER, "emitting record:\n{0}", + new Record((ByteBuffer) sink.duplicate().position(orig).limit(produced))); + } + catch (ShortBufferException sbe) + { + // We don't expect this to happen, except for bugs; signal an + // internal error. + lastAlert = new Alert(Alert.Level.FATAL, Alert.Description.INTERNAL_ERROR); + return new SSLEngineResult(SSLEngineResult.Status.OK, handshakeStatus, 0, 0); + } + catch (IllegalBlockSizeException ibse) + { + // We don't expect this to happen, except for bugs; signal an + // internal error. + lastAlert = new Alert(Alert.Level.FATAL, Alert.Description.INTERNAL_ERROR); + return new SSLEngineResult(SSLEngineResult.Status.OK, handshakeStatus, 0, 0); + } + catch (DataFormatException dfe) + { + // We don't expect this to happen; signal an internal error. + lastAlert = new Alert(Alert.Level.FATAL, Alert.Description.INTERNAL_ERROR); + return new SSLEngineResult(SSLEngineResult.Status.OK, handshakeStatus, 0, 0); + } + + if (lastAlert != null && lastAlert.level() == Alert.Level.FATAL) + { + AlertException ae = new AlertException(lastAlert); + lastAlert = null; + throw ae; + } + + if (changeCipherSpec) + { + outsec = handshake.getOutputParams(); + changeCipherSpec = false; + } + SSLEngineResult result + = new SSLEngineResult(outClosed ? SSLEngineResult.Status.CLOSED + : SSLEngineResult.Status.OK, + handshakeStatus, consumed, produced); + if (handshakeStatus == HandshakeStatus.FINISHED) + { + handshake = null; // done with it. + handshakeStatus = HandshakeStatus.NOT_HANDSHAKING; + } + return result; + } + + // Package-private methods. + + SessionImpl session () + { + return session; + } + + void setSession(SessionImpl session) + { + this.session = session; + } + + void changeCipherSpec() + { + changeCipherSpec = true; + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignature.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignature.java deleted file mode 100644 index 2f8c6cfe665..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignature.java +++ /dev/null @@ -1,235 +0,0 @@ -/* SSLRSASignature.java -- SSL's RSA signature algorithm. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.math.BigInteger; - -import java.security.InvalidKeyException; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.interfaces.RSAPrivateKey; -import java.security.interfaces.RSAPublicKey; - -import java.util.Arrays; -import java.util.Map; - -import gnu.java.security.hash.HashFactory; -import gnu.java.security.hash.IMessageDigest; -import gnu.java.security.sig.ISignature; -import gnu.java.security.sig.rsa.RSA; - -/** - * The RSA signature algorithm as used in the SSL protocol. Note that this - * is different from the RSA signature used to verify certificates. - * - *

    This signature scheme works as follows:

    - * - *

    digitally-signed struct {
    - *     opaque md5_hash[16];
    - *     opaque sha_hash[20];
    - * }

    - * - *

    Where a digitally-signed struct is RSA-encrypted with - * block type 0 or 1 according to PKCS #1, version 1.5.

    - */ -final class SSLRSASignature implements ISignature -{ - - // Fields. - // ------------------------------------------------------------------------- - - private RSAPublicKey pubkey; - private RSAPrivateKey privkey; - private final IMessageDigest md5, sha; - private boolean initVerify = false, initSign = false; - - // Constructor. - // ------------------------------------------------------------------------- - - SSLRSASignature() - { - this(HashFactory.getInstance("MD5"), HashFactory.getInstance("SHA-1")); - } - - SSLRSASignature(IMessageDigest md5, IMessageDigest sha) - { - this.md5 = md5; - this.sha = sha; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String name() - { - return "RSA/SSL"; - } - - public void setupVerify(Map attrib) - { - PublicKey key = (PublicKey) attrib.get(VERIFIER_KEY); - if (key == null) - { - if (initSign) - { - return; // re-use. - } - throw new IllegalArgumentException("no key supplied"); - } - if (!(key instanceof RSAPublicKey)) - { - throw new IllegalArgumentException("not an RSA key"); - } - pubkey = (RSAPublicKey) key; - privkey = null; - initSign = false; - initVerify = true; - } - - public void setupSign(Map attrib) - { - PrivateKey key = (PrivateKey) attrib.get(SIGNER_KEY); - if (key == null) - { - if (initVerify) - { - return; // re-use. - } - throw new IllegalArgumentException("no key supplied"); - } - if (!(key instanceof RSAPrivateKey)) - { - throw new IllegalArgumentException("not an RSA key"); - } - privkey = (RSAPrivateKey) key; - pubkey = null; - initVerify = false; - initSign = true; - } - - public void update(byte b) - { - if (!initVerify && !initSign) - { - throw new IllegalStateException(); - } - md5.update(b); - sha.update(b); - } - - public void update(byte[] buf, int off, int len) - { - if (!initVerify && !initSign) - { - throw new IllegalStateException(); - } - md5.update(buf, off, len); - sha.update(buf, off, len); - } - - public Object sign() - { - if (!initSign) - { - throw new IllegalStateException(); - } - // Pad the hash results with RSA block type 1. - final int k = (privkey.getModulus().bitLength() + 7) >>> 3; - final byte[] d = Util.concat(md5.digest(), sha.digest()); - if (k - 11 < d.length) - { - throw new IllegalArgumentException("message too long"); - } - final byte[] eb = new byte[k]; - eb[0] = 0x00; - eb[1] = 0x01; - for (int i = 2; i < k - d.length - 1; i++) - { - eb[i] = (byte) 0xFF; - } - System.arraycopy(d, 0, eb, k - d.length, d.length); - BigInteger EB = new BigInteger(eb); - - // Private-key encrypt the padded hashes. - BigInteger EM = RSA.sign(privkey, EB); - return Util.trim(EM); - } - - public boolean verify(Object signature) - { - if (!initVerify) - { - throw new IllegalStateException(); - } - // Public-key decrypt the signature representative. - BigInteger EM = new BigInteger(1, (byte[]) signature); - BigInteger EB = RSA.verify(pubkey, EM); - - // Unpad the decrypted message. - int i = 0; - final byte[] eb = EB.toByteArray(); - if (eb[0] == 0x00) - { - for (i = 0; i < eb.length && eb[i] == 0x00; i++); - } - else if (eb[0] == 0x01) - { - for (i = 1; i < eb.length && eb[i] != 0x00; i++) - { - if (eb[i] != (byte) 0xFF) - { - throw new IllegalArgumentException("bad padding"); - } - } - i++; - } - else - { - throw new IllegalArgumentException("decryption failed"); - } - byte[] d1 = Util.trim(eb, i, eb.length - i); - byte[] d2 = Util.concat(md5.digest(), sha.digest()); - return Arrays.equals(d1, d2); - } - - public Object clone() - { - throw new UnsupportedOperationException(); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java new file mode 100644 index 00000000000..415efc6f58d --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java @@ -0,0 +1,233 @@ +/* SSLRSASignatureImpl.java -- SSL/TLS RSA implementation. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; +import gnu.java.security.sig.rsa.RSA; + +import java.math.BigInteger; +import java.security.InvalidKeyException; +import java.security.InvalidParameterException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.SignatureException; +import java.security.SignatureSpi; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; +import java.util.Arrays; + +/** + * An implementation of of the RSA signature algorithm; this is an RSA + * encrypted MD5 hash followed by a SHA-1 hash. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class SSLRSASignatureImpl extends SignatureSpi +{ + private static final SystemLogger logger = SystemLogger.SYSTEM; + private RSAPublicKey pubkey; + private RSAPrivateKey privkey; + private final MessageDigest md5, sha; + private boolean initSign = false; + private boolean initVerify = false; + + public SSLRSASignatureImpl() throws NoSuchAlgorithmException + { + md5 = MessageDigest.getInstance("MD5"); + sha = MessageDigest.getInstance("SHA-1"); + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineInitVerify(java.security.PublicKey) + */ + @Override protected void engineInitVerify(PublicKey publicKey) + throws InvalidKeyException + { + try + { + pubkey = (RSAPublicKey) publicKey; + initVerify = true; + initSign = false; + privkey = null; + } + catch (ClassCastException cce) + { + throw new InvalidKeyException(cce); + } + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineInitSign(java.security.PrivateKey) + */ + @Override protected void engineInitSign(PrivateKey privateKey) + throws InvalidKeyException + { + try + { + privkey = (RSAPrivateKey) privateKey; + initSign = true; + initVerify = false; + pubkey = null; + } + catch (ClassCastException cce) + { + throw new InvalidKeyException(cce); + } + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineUpdate(byte) + */ + @Override protected void engineUpdate(byte b) throws SignatureException + { + if (!initSign && !initVerify) + throw new IllegalStateException("not initialized"); + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "SSL/RSA update 0x{0}", + Util.formatInt(b & 0xFF, 16, 2)); + md5.update(b); + sha.update(b); + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineUpdate(byte[], int, int) + */ + @Override protected void engineUpdate(byte[] b, int off, int len) + throws SignatureException + { + if (!initSign && !initVerify) + throw new IllegalStateException("not initialized"); + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "SSL/RSA update\n{0}", + Util.hexDump(b, off, len, ">> ")); + md5.update(b, off, len); + sha.update(b, off, len); + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineSign() + */ + @Override protected byte[] engineSign() throws SignatureException + { + // FIXME we need to add RSA blinding to this, somehow. + + if (!initSign) + throw new SignatureException("not initialized for signing"); + // Pad the hash results with RSA block type 1. + final int k = (privkey.getModulus().bitLength() + 7) >>> 3; + final byte[] d = Util.concat(md5.digest(), sha.digest()); + if (k - 11 < d.length) + throw new SignatureException("message too long"); + final byte[] eb = new byte[k]; + eb[0] = 0x00; + eb[1] = 0x01; + for (int i = 2; i < k - d.length - 1; i++) + eb[i] = (byte) 0xFF; + System.arraycopy(d, 0, eb, k - d.length, d.length); + BigInteger EB = new BigInteger(eb); + + // Private-key encrypt the padded hashes. + BigInteger EM = RSA.sign(privkey, EB); + return Util.trim(EM); + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineVerify(byte[]) + */ + @Override protected boolean engineVerify(byte[] sigBytes) + throws SignatureException + { + if (!initVerify) + throw new SignatureException("not initialized for verifying"); + + // Public-key decrypt the signature representative. + BigInteger EM = new BigInteger(1, (byte[]) sigBytes); + BigInteger EB = RSA.verify(pubkey, EM); + + // Unpad the decrypted message. + int i = 0; + final byte[] eb = EB.toByteArray(); + if (eb[0] == 0x00) + { + for (i = 0; i < eb.length && eb[i] == 0x00; i++); + } + else if (eb[0] == 0x01) + { + for (i = 1; i < eb.length && eb[i] != 0x00; i++) + { + if (eb[i] != (byte) 0xFF) + { + throw new SignatureException("bad padding"); + } + } + i++; + } + else + { + throw new SignatureException("decryption failed"); + } + byte[] d1 = Util.trim(eb, i, eb.length - i); + byte[] d2 = Util.concat(md5.digest(), sha.digest()); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "SSL/RSA d1:{0} d2:{1}", + Util.toHexString(d1, ':'), Util.toHexString(d2, ':')); + return Arrays.equals(d1, d2); + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineSetParameter(java.lang.String, java.lang.Object) + */ + @Override protected void engineSetParameter(String param, Object value) + throws InvalidParameterException + { + throw new InvalidParameterException("parameters not supported"); + } + + /* (non-Javadoc) + * @see java.security.SignatureSpi#engineGetParameter(java.lang.String) + */ + @Override protected Object engineGetParameter(String param) + throws InvalidParameterException + { + throw new InvalidParameterException("parameters not supported"); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocket.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocket.java deleted file mode 100644 index ee96b8d1bdf..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocket.java +++ /dev/null @@ -1,283 +0,0 @@ -/* SSLServerSocket.java -- SSL server socket. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.IOException; - -import java.net.InetAddress; -import java.net.Socket; - -import java.security.SecureRandom; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; - -import javax.net.ssl.X509KeyManager; -import javax.net.ssl.X509TrustManager; - -import gnu.javax.net.ssl.SRPTrustManager; - -class SSLServerSocket extends javax.net.ssl.SSLServerSocket -{ - - // Fields. - // ------------------------------------------------------------------------- - - private SessionContext sessions; - private SortedSet enabledProtocols = new TreeSet(SSLSocket.supportedProtocols); - private List enabledSuites = new ArrayList(SSLSocket.supportedSuites); - private boolean clientMode = false; - private boolean needClientAuth = false; - private boolean wantClientAuth = false; - private boolean createSessions = true; - private SRPTrustManager srpTrustManager; - private X509TrustManager trustManager; - private X509KeyManager keyManager; - private SecureRandom random; - - // Constructors. - // ------------------------------------------------------------------------- - - SSLServerSocket() throws IOException - { - super(); - } - - SSLServerSocket(int port) throws IOException - { - super(port); - } - - SSLServerSocket(int port, int backlog) throws IOException - { - super(port, backlog); - } - - SSLServerSocket(int port, int backlog, InetAddress address) - throws IOException - { - super(port, backlog, address); - } - - // SSL methods. - // ------------------------------------------------------------------------- - - public String[] getSupportedCipherSuites() - { - return (String[]) CipherSuite.availableSuiteNames().toArray(new String[0]); - } - - public String[] getEnabledCipherSuites() - { - synchronized (enabledSuites) - { - String[] s = new String[enabledSuites.size()]; - int i = 0; - for (Iterator it = enabledSuites.iterator(); it.hasNext(); ) - s[i++] = it.next().toString(); - return s; - } - } - - public void setEnabledCipherSuites(String[] suites) - { - if (suites == null || suites.length == 0) - throw new IllegalArgumentException(); - for (int i = 0; i < suites.length; i++) - if (CipherSuite.forName(suites[i]) == null) - throw new IllegalArgumentException("unsupported suite: " + - suites[i]); - synchronized (enabledSuites) - { - enabledSuites.clear(); - for (int i = 0; i < suites.length; i++) - { - CipherSuite suite = CipherSuite.forName(suites[i]); - if (!enabledSuites.contains(suite)) - enabledSuites.add(suite); - } - } - } - - public String[] getSupportedProtocols() - { - return new String[] { "SSLv3", "TLSv1", "TLSv1.1" }; - } - - public String[] getEnabledProtocols() - { - synchronized (enabledProtocols) - { - String[] s = new String[enabledProtocols.size()]; - int i = 0; - for (Iterator it = enabledProtocols.iterator(); it.hasNext(); ) - s[i++] = it.next().toString(); - return s; - } - } - - public void setEnabledProtocols(String[] protocols) - { - if (protocols == null || protocols.length == 0) - throw new IllegalArgumentException(); - for (int i = 0; i < protocols.length; i++) - { - if (!(protocols[i].equalsIgnoreCase("SSLv3") || - protocols[i].equalsIgnoreCase("TLSv1") || - protocols[i].equalsIgnoreCase("TLSv1.1"))) - { - throw new - IllegalArgumentException("unsupported protocol: " + - protocols[i]); - } - } - synchronized (enabledProtocols) - { - enabledProtocols.clear(); - for (int i = 0; i < protocols.length; i++) - { - if (protocols[i].equalsIgnoreCase("SSLv3")) - enabledProtocols.add(ProtocolVersion.SSL_3); - else if (protocols[i].equalsIgnoreCase("TLSv1")) - enabledProtocols.add(ProtocolVersion.TLS_1); - else - enabledProtocols.add(ProtocolVersion.TLS_1_1); - } - } - } - - public void setUseClientMode(boolean clientMode) - { - this.clientMode = clientMode; - } - - public boolean getUseClientMode() - { - return clientMode; - } - - public void setNeedClientAuth(boolean needClientAuth) - { - this.needClientAuth = needClientAuth; - } - - public boolean getNeedClientAuth() - { - return needClientAuth; - } - - public void setWantClientAuth(boolean wantClientAuth) - { - this.wantClientAuth = wantClientAuth; - } - - public boolean getWantClientAuth() - { - return wantClientAuth; - } - - // I misspelled this method in javax.net.SSLServerSocket, and that version - // made it into kaffe 1.1.4. - public void setEnabledSessionCreation(boolean createSessions) - { - setEnableSessionCreation(createSessions); - } - - public void setEnableSessionCreation(boolean createSessions) - { - this.createSessions = createSessions; - } - - public boolean getEnableSessionCreation() - { - return createSessions; - } - - // Socket methods. - // ------------------------------------------------------------------------- - - public Socket accept() throws IOException - { - SSLSocket socket = new SSLSocket(); - implAccept(socket); - socket.setUseClientMode(clientMode); - socket.setNeedClientAuth(needClientAuth); - socket.setWantClientAuth(wantClientAuth); - socket.setEnableSessionCreation(createSessions); - socket.setSessionContext(sessions); - socket.setEnabledCipherSuites(new ArrayList(enabledSuites)); - socket.setEnabledProtocols(new TreeSet(enabledProtocols)); - socket.setSRPTrustManager(srpTrustManager); - socket.setTrustManager(trustManager); - socket.setKeyManager(keyManager); - socket.setRandom(random); - return socket; - } - - // Package methods. - // ------------------------------------------------------------------------- - - void setSessionContext(SessionContext sessions) - { - this.sessions = sessions; - } - - void setKeyManager(X509KeyManager keyManager) - { - this.keyManager = keyManager; - } - - void setTrustManager(X509TrustManager trustManager) - { - this.trustManager = trustManager; - } - - void setSRPTrustManager(SRPTrustManager srpTrustManager) - { - this.srpTrustManager = srpTrustManager; - } - - void setRandom(SecureRandom random) - { - this.random = random; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactory.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactory.java deleted file mode 100644 index 72fb512c582..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactory.java +++ /dev/null @@ -1,136 +0,0 @@ -/* SSLServerSocketFactory.java -- factory for SSL server sockets. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.IOException; - -import java.net.InetAddress; -import java.net.ServerSocket; - -import java.security.SecureRandom; - -import javax.net.ssl.X509KeyManager; -import javax.net.ssl.X509TrustManager; - -import gnu.javax.net.ssl.SRPTrustManager; - -class SSLServerSocketFactory extends javax.net.ssl.SSLServerSocketFactory -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final SessionContext sessions; - private final X509KeyManager keyManager; - private final X509TrustManager trustManager; - private final SRPTrustManager srpTrustManager; - private final SecureRandom random; - - // Constructor. - // ------------------------------------------------------------------------- - - SSLServerSocketFactory(X509TrustManager trustManager, - SRPTrustManager srpTrustManager, - X509KeyManager keyManager, - SecureRandom random, - SessionContext sessions) - { - super(); - this.trustManager = trustManager; - this.srpTrustManager = srpTrustManager; - this.keyManager = keyManager; - this.random = random; - this.sessions = sessions; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String[] getDefaultCipherSuites() - { - return getSupportedCipherSuites(); - } - - public String[] getSupportedCipherSuites() - { - return (String[]) CipherSuite.availableSuiteNames().toArray(new String[0]); - } - - public ServerSocket createServerSocket() throws IOException - { - SSLServerSocket socket = new SSLServerSocket(); - setup(socket); - return socket; - } - - public ServerSocket createServerSocket(int port) throws IOException - { - SSLServerSocket socket = new SSLServerSocket(port); - setup(socket); - return socket; - } - - public ServerSocket createServerSocket(int port, int backlog) - throws IOException - { - SSLServerSocket socket = new SSLServerSocket(port, backlog); - setup(socket); - return socket; - } - - public ServerSocket createServerSocket(int port, int backlog, InetAddress addr) - throws IOException - { - SSLServerSocket socket = new SSLServerSocket(port, backlog, addr); - setup(socket); - return socket; - } - - // Own methods. - // ------------------------------------------------------------------------- - - private void setup(SSLServerSocket socket) - { - socket.setSessionContext(sessions); - socket.setKeyManager(keyManager); - socket.setTrustManager(trustManager); - socket.setSRPTrustManager(srpTrustManager); - socket.setRandom(random); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java new file mode 100644 index 00000000000..dc80dc78248 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java @@ -0,0 +1,108 @@ +/* SSLServerSocketFactoryImpl.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; + +import javax.net.ssl.SSLServerSocketFactory; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class SSLServerSocketFactoryImpl extends SSLServerSocketFactory +{ + private final SSLContextImpl contextImpl; + + public SSLServerSocketFactoryImpl(SSLContextImpl contextImpl) + { + this.contextImpl = contextImpl; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocketFactory#getDefaultCipherSuites() + */ + @Override public String[] getDefaultCipherSuites() + { + return SSLEngineImpl.defaultSuites(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocketFactory#getSupportedCipherSuites() + */ + @Override public String[] getSupportedCipherSuites() + { + return CipherSuite.availableSuiteNames().toArray(new String[0]); + } + + /* (non-Javadoc) + * @see javax.net.ServerSocketFactory#createServerSocket(int) + */ + @Override public SSLServerSocketImpl createServerSocket(int port) + throws IOException + { + SSLServerSocketImpl socket = new SSLServerSocketImpl(contextImpl); + socket.bind(new InetSocketAddress(port)); + return socket; + } + + /* (non-Javadoc) + * @see javax.net.ServerSocketFactory#createServerSocket(int, int) + */ + @Override public SSLServerSocketImpl createServerSocket(int port, int backlog) + throws IOException + { + SSLServerSocketImpl socket = new SSLServerSocketImpl(contextImpl); + socket.bind(new InetSocketAddress(port), backlog); + return socket; + } + + /* (non-Javadoc) + * @see javax.net.ServerSocketFactory#createServerSocket(int, int, java.net.InetAddress) + */ + @Override public SSLServerSocketImpl createServerSocket(int port, int backlog, + InetAddress bindAddress) + throws IOException + { + SSLServerSocketImpl socket = new SSLServerSocketImpl(contextImpl); + socket.bind(new InetSocketAddress(bindAddress, port), backlog); + return socket; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java new file mode 100644 index 00000000000..41ef5f1cf46 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java @@ -0,0 +1,199 @@ +/* SSLServerSocketImpl.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.IOException; + +import javax.net.ssl.SSLServerSocket; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class SSLServerSocketImpl extends SSLServerSocket +{ + private final SSLContextImpl contextImpl; + + private boolean enableSessionCreation; + private String[] enabledCipherSuites; + private String[] enabledProtocols; + private boolean needClientAuth; + private boolean wantClientAuth; + private boolean clientMode; + + public SSLServerSocketImpl(SSLContextImpl contextImpl) throws IOException + { + super(); + this.contextImpl = contextImpl; + enableSessionCreation = true; + enabledCipherSuites = SSLEngineImpl.defaultSuites(); + enabledProtocols = new String[] { ProtocolVersion.SSL_3.toString(), + ProtocolVersion.TLS_1.toString(), + ProtocolVersion.TLS_1_1.toString() }; + needClientAuth = false; + wantClientAuth = false; + clientMode = false; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getEnableSessionCreation() + */ + @Override public boolean getEnableSessionCreation() + { + return enableSessionCreation; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getEnabledCipherSuites() + */ + @Override public String[] getEnabledCipherSuites() + { + return (String[]) enabledCipherSuites.clone(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getEnabledProtocols() + */ + @Override public String[] getEnabledProtocols() + { + return (String[]) enabledProtocols.clone(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getNeedClientAuth() + */ + @Override public boolean getNeedClientAuth() + { + return needClientAuth; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getSupportedCipherSuites() + */ + @Override public String[] getSupportedCipherSuites() + { + return CipherSuite.availableSuiteNames().toArray(new String[0]); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getSupportedProtocols() + */ + @Override public String[] getSupportedProtocols() + { + return new String[] { ProtocolVersion.SSL_3.toString(), + ProtocolVersion.TLS_1.toString(), + ProtocolVersion.TLS_1_1.toString() }; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getUseClientMode() + */ + @Override public boolean getUseClientMode() + { + return clientMode; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#getWantClientAuth() + */ + @Override public boolean getWantClientAuth() + { + return wantClientAuth; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#setEnableSessionCreation(boolean) + */ + @Override public void setEnableSessionCreation(final boolean enabled) + { + enableSessionCreation = enabled; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#setEnabledCipherSuites(java.lang.String[]) + */ + @Override public void setEnabledCipherSuites(final String[] suites) + { + enabledCipherSuites = (String[]) suites.clone(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#setEnabledProtocols(java.lang.String[]) + */ + @Override public void setEnabledProtocols(final String[] protocols) + { + enabledProtocols = (String[]) protocols.clone(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#setNeedClientAuth(boolean) + */ + @Override public void setNeedClientAuth(final boolean needAuth) + { + needClientAuth = needAuth; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#setUseClientMode(boolean) + */ + @Override public void setUseClientMode(final boolean clientMode) + { + this.clientMode = clientMode; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLServerSocket#setWantClientAuth(boolean) + */ + @Override public void setWantClientAuth(final boolean wantAuth) + { + wantClientAuth = wantAuth; + } + + @Override public SSLSocketImpl accept() throws IOException + { + SSLSocketImpl socketImpl = new SSLSocketImpl(contextImpl, null, -1); + implAccept(socketImpl); + socketImpl.setEnableSessionCreation(enableSessionCreation); + socketImpl.setEnabledCipherSuites(enabledCipherSuites); + socketImpl.setEnabledProtocols(enabledProtocols); + socketImpl.setNeedClientAuth(needClientAuth); + socketImpl.setUseClientMode(clientMode); + socketImpl.setWantClientAuth(wantClientAuth); + return socketImpl; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocket.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocket.java deleted file mode 100644 index d08bc50f1c9..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocket.java +++ /dev/null @@ -1,3515 +0,0 @@ -/* SSLSocket.java -- the SSL socket class. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.BufferedOutputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintStream; - -import java.math.BigInteger; - -import java.net.InetAddress; -import java.net.Socket; -import java.net.SocketAddress; -import java.net.SocketException; - -import java.nio.channels.SocketChannel; - -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.KeyPair; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.Principal; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.Security; -import java.security.SecureRandom; -import java.security.cert.X509Certificate; -import java.security.interfaces.DSAPrivateKey; -import java.security.interfaces.DSAPublicKey; -import java.security.interfaces.RSAPrivateKey; -import java.security.interfaces.RSAPublicKey; - -import java.util.Arrays; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.SortedSet; -import java.util.TreeSet; - -import java.util.logging.Logger; - -import javax.crypto.Cipher; -import javax.crypto.Mac; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.interfaces.DHPublicKey; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -import javax.net.ssl.HandshakeCompletedEvent; -import javax.net.ssl.HandshakeCompletedListener; -import javax.net.ssl.SSLException; -import javax.net.ssl.SSLHandshakeException; -import javax.net.ssl.SSLPeerUnverifiedException; -import javax.net.ssl.SSLProtocolException; -import javax.net.ssl.SSLSession; -import javax.net.ssl.X509KeyManager; -import javax.net.ssl.X509TrustManager; - -import javax.security.auth.callback.Callback; -import javax.security.auth.callback.CallbackHandler; -import javax.security.auth.callback.ConfirmationCallback; -import javax.security.auth.callback.PasswordCallback; -import javax.security.auth.callback.TextInputCallback; - -import gnu.classpath.debug.Component; -import gnu.classpath.debug.SystemLogger; - -import gnu.java.security.Registry; -import gnu.javax.security.auth.callback.DefaultCallbackHandler; -import gnu.java.security.hash.HashFactory; -import gnu.java.security.hash.IMessageDigest; -import gnu.javax.crypto.key.IKeyAgreementParty; -import gnu.javax.crypto.key.KeyAgreementFactory; -import gnu.javax.crypto.key.KeyAgreementException; -import gnu.javax.crypto.key.OutgoingMessage; -import gnu.javax.crypto.key.IncomingMessage; -import gnu.javax.crypto.key.dh.DiffieHellmanKeyAgreement; -import gnu.javax.crypto.key.dh.ElGamalKeyAgreement; -import gnu.javax.crypto.key.dh.GnuDHPrivateKey; -import gnu.javax.crypto.key.dh.GnuDHPublicKey; -import gnu.javax.crypto.key.srp6.SRPPrivateKey; -import gnu.javax.crypto.key.srp6.SRPPublicKey; -import gnu.javax.crypto.key.srp6.SRP6KeyAgreement; -import gnu.javax.crypto.mac.IMac; -import gnu.javax.crypto.mode.IMode; -import gnu.javax.crypto.prng.ARCFour; -import gnu.java.security.prng.IRandom; -import gnu.java.security.prng.LimitReachedException; -import gnu.javax.crypto.sasl.srp.SRPAuthInfoProvider; -import gnu.javax.crypto.sasl.srp.SRPRegistry; -import gnu.java.security.sig.ISignature; -import gnu.java.security.sig.SignatureFactory; -import gnu.java.security.sig.dss.DSSSignature; -import gnu.java.security.sig.rsa.EME_PKCS1_V1_5; -import gnu.java.security.sig.rsa.RSA; - -import gnu.javax.net.ssl.SRPTrustManager; - -/** - * This is the core of the Jessie SSL implementation; it implements the {@link - * javax.net.ssl.SSLSocket} for normal and "wrapped" sockets, and handles all - * protocols implemented by this library. - */ -final class SSLSocket extends javax.net.ssl.SSLSocket -{ - - // This class is almost unbearably large and complex, but is laid out - // as follows: - // - // 1. Fields. - // 2. Constructors. - // 3. SSLSocket methods. These are the public methods defined in - // javax.net.ssl.SSLSocket. - // 4. Socket methods. These override the public methods of java.net.Socket, - // and delegate the method call to either the underlying socket if this is - // a wrapped socket, or to the superclass. - // 5. Package-private methods that various pieces of Jessie use. - // 6. Private methods. These compose the SSL handshake. - // - // Each part is preceeded by a form feed. - - // Constants and fields. - // ------------------------------------------------------------------------- - - // Debuggery. - private static final boolean DEBUG_HANDSHAKE_LAYER = true; - private static final boolean DEBUG_KEY_EXCHANGE = false; - private static final Logger logger = SystemLogger.SYSTEM; - - // Fields for using this class as a wrapped socket. - private Socket underlyingSocket; - private int underlyingPort; - private boolean autoClose; - - // Cryptography fields. - SessionContext sessionContext; - Session session; - LinkedList handshakeListeners; - private boolean clientMode, wantClientAuth, needClientAuth, createSessions; - private boolean handshakeDone; - - // I/O fields. - private String remoteHost; - private InputStream socketIn; - private OutputStream socketOut; - private InputStream applicationIn; - private OutputStream applicationOut; - private InputStream handshakeIn; - private OutputStream handshakeOut; -// private ThreadGroup recordLayer; - RecordInput recordInput; -// RecordOutput recordOutput; - private long handshakeTime; - - private SocketChannel channel; - - static SortedSet supportedProtocols = new TreeSet(); - static List supportedSuites = new ArrayList(30); - - // Static initializer. - // ------------------------------------------------------------------------- - - static - { - //supportedProtocols.add(ProtocolVersion.TLS_1_1); - supportedProtocols.add(ProtocolVersion.TLS_1); - supportedProtocols.add(ProtocolVersion.SSL_3); - - // These are in preference order. It's my preference order, but I'm not - // a total idiot. - supportedSuites.add(CipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_RC4_128_MD5); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_RC4_128_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_DES_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5); - supportedSuites.add(CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_NULL_MD5); - supportedSuites.add(CipherSuite.TLS_RSA_WITH_NULL_SHA); - } - - // Constructors. - // ------------------------------------------------------------------------- - - SSLSocket(Socket socket, String host, int port, boolean autoClose) - throws IOException - { - underlyingSocket = socket; - remoteHost = host; - underlyingPort = port; - this.autoClose = autoClose; - initialize(); - } - - SSLSocket (Socket socket, SocketChannel channel) throws IOException - { - underlyingSocket = socket; - this.channel = channel; - initialize (); - } - - SSLSocket() throws IOException - { - super(); - initialize(); - } - - SSLSocket(InetAddress addr, int port) throws IOException - { - super(addr, port); - initialize(); - remoteHost = addr.getHostName(); - if (remoteHost == null) - { - remoteHost = addr.getHostAddress(); - } - } - - SSLSocket(InetAddress addr, int port, InetAddress laddr, int lport) - throws IOException - { - super(addr, port, laddr, lport); - initialize(); - remoteHost = addr.getHostName(); - if (remoteHost == null) - remoteHost = addr.getHostAddress(); - } - - SSLSocket(String host, int port) throws IOException - { - super(host, port); - initialize(); - remoteHost = host; - } - - SSLSocket(String host, int port, InetAddress laddr, int lport) - throws IOException - { - super(host, port, laddr, lport); - initialize(); - remoteHost = host; - } - - private void initialize() - { - session = new Session(); - session.enabledSuites = new ArrayList(supportedSuites); - session.enabledProtocols = new TreeSet(supportedProtocols); - session.protocol = ProtocolVersion.TLS_1; - session.params.setVersion (ProtocolVersion.TLS_1); - handshakeListeners = new LinkedList(); - handshakeDone = false; - } - - // SSL methods. - // ------------------------------------------------------------------------- - - public void addHandshakeCompletedListener(HandshakeCompletedListener l) - { - synchronized (handshakeListeners) - { - if (l == null) - throw new NullPointerException(); - if (!handshakeListeners.contains(l)) - handshakeListeners.add(l); - } - } - - public void removeHandshakeCompletedListener(HandshakeCompletedListener l) - { - synchronized (handshakeListeners) - { - handshakeListeners.remove(l); - } - } - - public String[] getEnabledProtocols() - { - synchronized (session.enabledProtocols) - { - try - { - return (String[]) Util.transform(session.enabledProtocols.toArray(), - String.class, "toString", null); - } - catch (Exception x) - { - RuntimeException re = new RuntimeException (x.getMessage()); - re.initCause (x); - throw re; - } - } - } - - public void setEnabledProtocols(String[] protocols) - { - if (protocols == null || protocols.length == 0) - throw new IllegalArgumentException(); - for (int i = 0; i < protocols.length; i++) - { - if (!(protocols[i].equalsIgnoreCase("SSLv3") || - protocols[i].equalsIgnoreCase("TLSv1") || - protocols[i].equalsIgnoreCase("TLSv1.1"))) - { - throw new - IllegalArgumentException("unsupported protocol: " + - protocols[i]); - } - } - synchronized (session.enabledProtocols) - { - session.enabledProtocols.clear(); - for (int i = 0; i < protocols.length; i++) - { - if (protocols[i].equalsIgnoreCase("SSLv3")) - { - session.enabledProtocols.add(ProtocolVersion.SSL_3); - } - else if (protocols[i].equalsIgnoreCase("TLSv1")) - { - session.enabledProtocols.add(ProtocolVersion.TLS_1); - } - else - { - session.enabledProtocols.add(ProtocolVersion.TLS_1_1); - } - } - } - } - - public String[] getSupportedProtocols() - { - return new String[] { /* "TLSv1.1", */ "TLSv1", "SSLv3" }; - } - - public String[] getEnabledCipherSuites() - { - synchronized (session.enabledSuites) - { - try - { - return (String[]) Util.transform(session.enabledSuites.toArray(), - String.class, "toString", null); - } - catch (Exception x) - { - RuntimeException re = new RuntimeException (x.getMessage()); - re.initCause (x); - throw re; - } - } - } - - public void setEnabledCipherSuites(String[] suites) - { - if (suites == null || suites.length == 0) - throw new IllegalArgumentException(); - for (int i = 0; i < suites.length; i++) - if (CipherSuite.forName(suites[i]) == null) - throw new IllegalArgumentException("unsupported suite: " + - suites[i]); - synchronized (session.enabledSuites) - { - session.enabledSuites.clear(); - for (int i = 0; i < suites.length; i++) - { - CipherSuite suite = CipherSuite.forName(suites[i]); - if (!session.enabledSuites.contains(suite)) - { - session.enabledSuites.add(suite); - } - } - } - } - - public String[] getSupportedCipherSuites() - { - return (String[]) CipherSuite.availableSuiteNames().toArray(new String[52]); - } - - public SSLSession getSession() - { - return session; - } - - public boolean getEnableSessionCreation() - { - return createSessions; - } - - public void setEnableSessionCreation(boolean flag) - { - createSessions = flag; - } - - public boolean getNeedClientAuth() - { - return needClientAuth; - } - - public void setNeedClientAuth(boolean flag) - { - needClientAuth = flag; - } - - public boolean getWantClientAuth() - { - return wantClientAuth; - } - - public void setWantClientAuth(boolean flag) - { - wantClientAuth = flag; - } - - public boolean getUseClientMode() - { - return clientMode; - } - - public void setUseClientMode(boolean flag) - { - this.clientMode = flag; - } - - public synchronized void startHandshake() throws IOException - { - if (DEBUG_HANDSHAKE_LAYER) - { - logger.log (Component.SSL_HANDSHAKE, "startHandshake called in {0}", - Thread.currentThread()); - handshakeTime = System.currentTimeMillis(); - } - if (handshakeDone) - { - if (clientMode) - { - handshakeDone = false; - doClientHandshake(); - } - else - { - Handshake req = new Handshake(Handshake.Type.HELLO_REQUEST, null); - req.write (handshakeOut, session.protocol); - handshakeOut.flush(); -// recordOutput.setHandshakeAvail(req.write(handshakeOut, session.protocol)); - } - return; - } - if (recordInput == null) - { - setupIO(); - } - if (clientMode) - { - doClientHandshake(); - } - else - { - doServerHandshake(); - } - } - - // Socket methods. - // ------------------------------------------------------------------------- - - public InetAddress getInetAddress() - { - if (underlyingSocket != null) - { - return underlyingSocket.getInetAddress(); - } - else - { - return super.getInetAddress(); - } - } - - public InetAddress getLocalAddress() - { - if (underlyingSocket != null) - { - return underlyingSocket.getLocalAddress(); - } - else - { - return super.getLocalAddress(); - } - } - - public int getPort() - { - if (underlyingSocket != null) - { - return underlyingSocket.getPort(); - } - else - { - return super.getPort(); - } - } - - public int getLocalPort() - { - if (underlyingSocket != null) - { - return underlyingSocket.getLocalPort(); - } - else - { - return super.getLocalPort(); - } - } - - public InputStream getInputStream() throws IOException - { - if (applicationIn == null) - { - setupIO(); - } - return applicationIn; - } - - public OutputStream getOutputStream() throws IOException - { - if (applicationOut == null) - { - setupIO(); - } - return applicationOut; - } - - public void setTcpNoDelay(boolean flag) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setTcpNoDelay(flag); - } - else - { - super.setTcpNoDelay(flag); - } - } - - public boolean getTcpNoDelay() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getTcpNoDelay(); - } - else - { - return super.getTcpNoDelay(); - } - } - - public void setSoLinger(boolean flag, int linger) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setSoLinger(flag, linger); - } - else - { - super.setSoLinger(flag, linger); - } - } - - public int getSoLinger() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getSoLinger(); - } - else - { - return super.getSoLinger(); - } - } - - public void sendUrgentData(int data) throws IOException - { - throw new UnsupportedOperationException("not implemented"); - } - - public void setSoTimeout(int timeout) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setSoTimeout(timeout); - } - else - { - super.setSoTimeout(timeout); - } - } - - public int getSoTimeout() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getSoTimeout(); - } - else - { - return super.getSoTimeout(); - } - } - - public void setSendBufferSize(int size) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setSendBufferSize(size); - } - else - { - super.setSendBufferSize(size); - } - } - - public int getSendBufferSize() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getSendBufferSize(); - } - else - { - return super.getSendBufferSize(); - } - } - - public void setReceiveBufferSize(int size) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setReceiveBufferSize(size); - } - else - { - super.setReceiveBufferSize(size); - } - } - - public int getReceiveBufferSize() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getReceiveBufferSize(); - } - else - { - return super.getReceiveBufferSize(); - } - } - - public synchronized void close() throws IOException - { - if (recordInput == null) - { - if (underlyingSocket != null) - { - if (autoClose) - underlyingSocket.close(); - } - else - super.close(); - return; - } -// while (recordOutput.applicationDataPending()) Thread.yield(); - Alert close = new Alert (Alert.Level.WARNING, Alert.Description.CLOSE_NOTIFY); - sendAlert (close); - long wait = System.currentTimeMillis() + 60000L; - while (session.currentAlert == null && !recordInput.pollClose()) - { - - Thread.yield(); - if (wait <= System.currentTimeMillis()) - { - break; - } - } - boolean gotClose = session.currentAlert != null && - session.currentAlert.getDescription() == Alert.Description.CLOSE_NOTIFY; -// recordInput.setRunning(false); -// recordOutput.setRunning(false); -// recordLayer.interrupt(); - recordInput = null; -// recordOutput = null; -// recordLayer = null; - if (underlyingSocket != null) - { - if (autoClose) - underlyingSocket.close(); - } - else - super.close(); - if (!gotClose) - { - session.invalidate(); - throw new SSLException("did not receive close notify"); - } - } - - public String toString() - { - if (underlyingSocket != null) - { - return SSLSocket.class.getName() + " [ " + underlyingSocket + " ]"; - } - else - { - return SSLSocket.class.getName() + " [ " + super.toString() + " ]"; - } - } - - // Configuration insanity begins here. - - public void connect(SocketAddress saddr) throws IOException - { - if (underlyingSocket != null) - { - underlyingSocket.connect(saddr); - } - else - { - super.connect(saddr); - } - } - - public void connect(SocketAddress saddr, int timeout) throws IOException - { - if (underlyingSocket != null) - { - underlyingSocket.connect(saddr, timeout); - } - else - { - super.connect(saddr, timeout); - } - } - - public void bind(SocketAddress saddr) throws IOException - { - if (underlyingSocket != null) - { - underlyingSocket.bind(saddr); - } - else - { - super.bind(saddr); - } - } - - public SocketAddress getLocalSocketAddress() - { - if (underlyingSocket != null) - { - return underlyingSocket.getLocalSocketAddress(); - } - else - { - return super.getLocalSocketAddress(); - } - } - - public SocketChannel getChannel() - { - return channel; - } - - public boolean isBound() - { - if (underlyingSocket != null) - { - return underlyingSocket.isBound(); - } - else - { - return super.isBound(); - } - } - - public boolean isClosed() - { - if (underlyingSocket != null) - { - return underlyingSocket.isClosed(); - } - else - { - return super.isClosed(); - } - } - - public SocketAddress getRemoteSocketAddress() - { - if (underlyingSocket != null) - { - return underlyingSocket.getRemoteSocketAddress(); - } - else - { - return super.getRemoteSocketAddress(); - } - } - - public void setOOBInline(boolean flag) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setOOBInline(flag); - } - else - { - super.setOOBInline(flag); - } - } - - public boolean getOOBInline() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getOOBInline(); - } - else - { - return super.getOOBInline(); - } - } - - public void setKeepAlive(boolean flag) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setKeepAlive(flag); - } - else - { - super.setKeepAlive(flag); - } - } - - public boolean getKeepAlive() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getKeepAlive(); - } - else - { - return super.getKeepAlive(); - } - } - - public void setTrafficClass(int clazz) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setTrafficClass(clazz); - } - else - { - super.setTrafficClass(clazz); - } - } - - public int getTrafficClass() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getTrafficClass(); - } - else - { - return super.getTrafficClass(); - } - } - - public void setReuseAddress(boolean flag) throws SocketException - { - if (underlyingSocket != null) - { - underlyingSocket.setReuseAddress(flag); - } - else - { - super.setReuseAddress(flag); - } - } - - public boolean getReuseAddress() throws SocketException - { - if (underlyingSocket != null) - { - return underlyingSocket.getReuseAddress(); - } - else - { - return super.getReuseAddress(); - } - } - - public void shutdownInput() throws IOException - { - if (underlyingSocket != null) - { - underlyingSocket.shutdownInput(); - } - else - { - super.shutdownInput(); - } - } - - public void shutdownOutput() throws IOException - { - if (underlyingSocket != null) - { - underlyingSocket.shutdownOutput(); - } - else - { - super.shutdownOutput(); - } - } - - public boolean isConnected() - { - if (underlyingSocket != null) - { - return underlyingSocket.isConnected(); - } - else - { - return super.isConnected(); - } - } - - public boolean isInputShutdown() - { - if (underlyingSocket != null) - { - return underlyingSocket.isInputShutdown(); - } - else - { - return super.isInputShutdown(); - } - } - - public boolean isOutputShutdown() - { - if (underlyingSocket != null) - { - return underlyingSocket.isOutputShutdown(); - } - else - { - return super.isOutputShutdown(); - } - } - - protected void finalize() - { - if (session.currentAlert == null) - { - try - { - close(); - } - catch (Exception ignore) { } - } - } - - // Package methods. - // ------------------------------------------------------------------------- - - void setSessionContext(SessionContext sessionContext) - { - this.sessionContext = sessionContext; - } - - void setEnabledCipherSuites(List suites) - { - session.enabledSuites = suites; - } - - void setEnabledProtocols(SortedSet protocols) - { - session.enabledProtocols = protocols; - } - - void setSRPTrustManager(SRPTrustManager srpTrustManager) - { - session.srpTrustManager = srpTrustManager; - } - - void setTrustManager(X509TrustManager trustManager) - { - session.trustManager = trustManager; - } - - void setKeyManager(X509KeyManager keyManager) - { - session.keyManager = keyManager; - } - - void setRandom(SecureRandom random) - { - session.random = random; - } - - void sendAlert (Alert alert) throws IOException - { - RecordOutputStream out = - new RecordOutputStream (socketOut, ContentType.ALERT, session.params); - out.write (alert.getEncoded ()); - } - - /** - * Gets the most-recently-received alert message. - * - * @return The alert message. - */ - Alert checkAlert() - { - return session.currentAlert; - } - - synchronized void checkHandshakeDone() throws IOException - { - if (!handshakeDone) - { - startHandshake(); - } - Alert alert = session.currentAlert; - if (alert != null && alert.getLevel() == Alert.Level.FATAL) - { - throw new AlertException(alert, false); - } - if (handshakeIn.available() > 0 && !clientMode) - { - handshakeDone = false; - startHandshake(); - } - } - - // Own methods. - // ------------------------------------------------------------------------- - - private static final byte[] SENDER_CLIENT = - new byte[] { 0x43, 0x4C, 0x4E, 0x54 }; - private static final byte[] SENDER_SERVER = - new byte[] { 0x53, 0x52, 0x56, 0x52 }; - - private void changeCipherSpec () throws IOException - { - RecordOutputStream out = - new RecordOutputStream (socketOut, ContentType.CHANGE_CIPHER_SPEC, session.params); - out.write (1); - } - - private void readChangeCipherSpec () throws IOException - { - RecordInputStream in = - new RecordInputStream (recordInput, ContentType.CHANGE_CIPHER_SPEC); - if (in.read() != 1) - { - throw new SSLProtocolException ("bad change cipher spec message"); - } - } - - /** - * Initializes the application data streams and starts the record layer - * threads. - */ - private synchronized void setupIO() throws IOException - { - if (recordInput != null) - { - return; - } - if (underlyingSocket != null) - { - socketIn = underlyingSocket.getInputStream(); - socketOut = underlyingSocket.getOutputStream(); - } - else - { - socketIn = super.getInputStream(); - socketOut = super.getOutputStream(); - } -// recordLayer = new ThreadGroup("record_layer"); -// recordInput = new RecordInput(in, session, recordLayer); -// recordOutput = new RecordOutput(out, session, recordLayer); -// recordInput.setRecordOutput(recordOutput); -// recordLayer.setDaemon(true); -// recordInput.start(); -// recordOutput.start(); - recordInput = new RecordInput (socketIn, session); - applicationIn = new SSLSocketInputStream( - new RecordInputStream (recordInput, ContentType.APPLICATION_DATA), this); - applicationOut = new SSLSocketOutputStream( - new RecordOutputStream (socketOut, ContentType.APPLICATION_DATA, session.params), this); - handshakeIn = new SSLSocketInputStream( - new RecordInputStream (recordInput, ContentType.HANDSHAKE), this, false); - handshakeOut = new BufferedOutputStream (new SSLSocketOutputStream( - new RecordOutputStream (socketOut, ContentType.HANDSHAKE, session.params), this, false), 8096); - } - - private void handshakeCompleted () - { - handshakeDone = true; - HandshakeCompletedEvent event = new HandshakeCompletedEvent (this, session); - for (Iterator it = handshakeListeners.iterator (); it.hasNext (); ) - { - try - { - ((HandshakeCompletedListener) it.next ()).handshakeCompleted (event); - } - catch (Throwable t) { } - } - if (createSessions) - { - synchronized (session) - { - sessionContext.addSession (session.sessionId, session); - session.access (); - } - } - - if (DEBUG_HANDSHAKE_LAYER) - { - logger.log (Component.SSL_HANDSHAKE, "Handshake finished in {0}", - Thread.currentThread()); - handshakeTime = System.currentTimeMillis() - handshakeTime; - logger.log (Component.SSL_HANDSHAKE, "Elapsed time {0}s", - new Long (handshakeTime / 1000)); - } - } - - /* - * Perform the client handshake. The process looks like this: - * - * ClientHello --> - * ServerHello <-- - * Certificate* <-- - * ServerKeyExchange* <-- - * CertificateRequest* <-- - * ServerHelloDone* <-- - * Certificate* --> - * ClientKeyExchange --> - * CertificateVerify* --> - * [ChangeCipherSpec] --> - * Finished --> - * [ChangeCipherSpec] <-- - * Finished <-- - * - * With --> denoting output and <-- denoting input. * denotes optional - * messages. - * - * Alternatively, this may be an abbreviated handshake if we are resuming - * a session: - * - * ClientHello --> - * ServerHello <-- - * [ChangeCipherSpec] <-- - * Finished <-- - * [ChangeCipherSpec] --> - * Finished --> - */ - private void doClientHandshake() throws IOException - { - if (DEBUG_HANDSHAKE_LAYER) - { - logger.log (Component.SSL_HANDSHAKE, "starting client handshake in {0}", - Thread.currentThread()); - } - - IMessageDigest md5 = HashFactory.getInstance(Registry.MD5_HASH); - IMessageDigest sha = HashFactory.getInstance(Registry.SHA160_HASH); - DigestInputStream din = new DigestInputStream(handshakeIn, md5, sha); - DigestOutputStream dout = new DigestOutputStream(handshakeOut, md5, sha); - Session continuedSession = null; - byte[] sessionId = new byte[0]; - List extensions = null; - String user = null; - CertificateType certType = CertificateType.X509; - - // Look through the available sessions to see if an appropriate one is - // available. - for (Enumeration e = sessionContext.getIds(); e.hasMoreElements(); ) - { - byte[] id = (byte[]) e.nextElement(); - continuedSession = (Session) sessionContext.getSession(id); - if (continuedSession == null) - { - continue; - } - if (!session.enabledProtocols.contains(continuedSession.protocol)) - { - continue; - } - if (continuedSession.getPeerHost().equals(remoteHost)) - { - sessionId = id; - break; - } - } - - // If a SRP suite is enabled, ask for a username so we can include it - // with our extensions list. - for (Iterator i = session.enabledSuites.iterator(); i.hasNext(); ) - { - CipherSuite s = (CipherSuite) i.next(); - if (s.getKeyExchange() == "SRP") - { - extensions = new LinkedList(); - user = askUserName(remoteHost); - byte[] b = user.getBytes("UTF-8"); - if (b.length > 255) - { - handshakeFailure(); - throw new SSLException("SRP username too long"); - } - extensions.add(new Extension(Extension.Type.SRP, - Util.concat(new byte[] { (byte) b.length }, b))); - - break; - } - } - - // If the jessie.fragment.length property is set, add the appropriate - // extension to the list. The fragment length is only actually set if - // the server responds with the same extension. - try - { - int flen = Integer.parseInt(Util.getSecurityProperty("jessie.fragment.length")); - byte[] ext = new byte[1]; - if (flen == 512) - ext[0] = 1; - else if (flen == 1024) - ext[0] = 2; - else if (flen == 2048) - ext[0] = 3; - else if (flen == 4096) - ext[0] = 4; - else - throw new NumberFormatException(); - if (extensions == null) - extensions = new LinkedList(); - extensions.add(new Extension(Extension.Type.MAX_FRAGMENT_LENGTH, ext)); - } - catch (NumberFormatException nfe) { } - - // FIXME: set certificate types. - - // Send the client hello. - ProtocolVersion version = session.protocol; - Random clientRandom = - new Random(Util.unixTime(), session.random.generateSeed(28)); - session.protocol = (ProtocolVersion) session.enabledProtocols.last(); - List comp = new ArrayList(2); - comp.add(CompressionMethod.ZLIB); - comp.add(CompressionMethod.NULL); - ClientHello clientHello = - new ClientHello(session.protocol, clientRandom, sessionId, - session.enabledSuites, comp, extensions); - Handshake msg = new Handshake(Handshake.Type.CLIENT_HELLO, clientHello); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write (dout, version); -// recordOutput.setHandshakeAvail(msg.write(dout, version)); - dout.flush(); -// try -// { -// Thread.sleep(150); -// } -// catch (InterruptedException ie) -// { -// } - - // Receive the server hello. - msg = Handshake.read(din); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - if (msg.getType() != Handshake.Type.SERVER_HELLO) - { - throwUnexpectedMessage(); - } - ServerHello serverHello = (ServerHello) msg.getBody(); - Random serverRandom = serverHello.getRandom(); - version = serverHello.getVersion(); - - // If we don't directly support the server's protocol version, choose - // the highest one we support that is less than the server's version. - if (!session.enabledProtocols.contains(version)) - { - ProtocolVersion v1 = null, v2 = null; - for (Iterator it = session.enabledProtocols.iterator(); - it.hasNext(); ) - { - v1 = (ProtocolVersion) it.next(); - if (v1.compareTo(version) > 0) - break; - v2 = v1; - } - version = v1; - } - - // The server's version is either unsupported by us (unlikely) or the user - // has only enabled incompatible versions. - if (version == null) - { - Alert.Description desc = null; - if (serverHello.getVersion() == ProtocolVersion.SSL_3) - { - desc = Alert.Description.HANDSHAKE_FAILURE; - } - else - { - desc = Alert.Description.PROTOCOL_VERSION; - } - Alert alert = new Alert(Alert.Level.FATAL, desc); - sendAlert(alert); - session.currentAlert = alert; - fatal(); - throw new AlertException(alert, true); - } - - if (serverHello.getExtensions() != null) - { - for (Iterator it = serverHello.getExtensions().iterator(); - it.hasNext(); ) - { - Extension e = (Extension) it.next(); - if (e.getType() == Extension.Type.MAX_FRAGMENT_LENGTH) - { - int len = Extensions.getMaxFragmentLength(e).intValue(); - session.params.setFragmentLength(len); -// recordOutput.setFragmentLength(len); -// recordInput.setFragmentLength(len); - } - else if (e.getType() == Extension.Type.CERT_TYPE) - { - certType = Extensions.getServerCertType(e); - } - } - } - - CipherSuite suite = serverHello.getCipherSuite().resolve(version); - boolean newSession = true; - if (sessionId.length > 0 && - Arrays.equals(sessionId, serverHello.getSessionId())) - { - SecurityParameters params = session.params; - SecureRandom random = session.random; - session = (Session) continuedSession.clone(); - session.params = params; - session.random = random; - recordInput.setSession(session); -// recordOutput.setSession(session); - suite = session.cipherSuite; - newSession = false; - } - else - { - sessionContext.removeSession(new Session.ID(sessionId)); - } - if (newSession) - { - session.peerHost = remoteHost; - session.sessionId = new Session.ID(serverHello.getSessionId()); - session.cipherSuite = suite; - } - session.params.reset(); -// session.params.setInMac(null); -// session.params.setOutMac(null); -// session.params.setInRandom(null); -// session.params.setOutRandom(null); -// session.params.setInCipher(null); -// session.params.setOutCipher(null); - session.currentAlert = null; - session.valid = true; - session.protocol = version; - - // If the server responded with the same session id that we sent, we - // assume that the session will be continued, and skip the bulk of the - // handshake. - if (newSession) - { - PublicKey serverKey = null, serverKex = null; - KeyPair clientKeys = null, clientKex = null; - CertificateRequest certReq; - boolean sendKeyExchange = false; - BigInteger srp_x = null; - IKeyAgreementParty clientKA = null; - IncomingMessage in; // used for key agreement protocol exchange - OutgoingMessage out = null; - - if (suite.getKeyExchange() == "SRP") - { - String password = askPassword(user); - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, - "SRP: password read is ''{0}''", password); - } - byte[] userSrpPassword = password.getBytes("UTF-8"); - - // instantiate and setup client-side key agreement party - clientKA = KeyAgreementFactory.getPartyAInstance(Registry.SRP_TLS_KA); - Map clientAttributes = new HashMap(); - clientAttributes.put(SRP6KeyAgreement.HASH_FUNCTION, - Registry.SHA160_HASH); - clientAttributes.put(SRP6KeyAgreement.USER_IDENTITY, user); - clientAttributes.put(SRP6KeyAgreement.USER_PASSWORD, userSrpPassword); - try - { - clientKA.init(clientAttributes); - // initiate the exchange - out = clientKA.processMessage(null); - } - catch (KeyAgreementException x) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "SRP exception", x); - } - throwHandshakeFailure(); - } - } - - if (suite.getSignature() != "anon") - { - msg = Handshake.read(din, certType); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - if (msg.getType() != Handshake.Type.CERTIFICATE) - { - throwUnexpectedMessage(); - } - Certificate serverCertificate = (Certificate) msg.getBody(); - X509Certificate[] peerCerts = serverCertificate.getCertificates(); - try - { - session.trustManager.checkServerTrusted(peerCerts, - suite.getAuthType()); - if (suite.getSignature() == "RSA" && - !(peerCerts[0].getPublicKey() instanceof RSAPublicKey)) - throw new InvalidKeyException("improper public key"); - if (suite.getKeyExchange() == "DH" && - !(peerCerts[0].getPublicKey() instanceof DHPublicKey)) - throw new InvalidKeyException("improper public key"); - if (suite.getKeyExchange() == "DHE") - { - if (suite.getSignature() == "RSA" && - !(peerCerts[0].getPublicKey() instanceof RSAPublicKey)) - throw new InvalidKeyException("improper public key"); - if (suite.getSignature() == "DSS" && - !(peerCerts[0].getPublicKey() instanceof DSAPublicKey)) - throw new InvalidKeyException("improper public key"); - } - session.peerCerts = peerCerts; - session.peerVerified = true; - } - catch (InvalidKeyException ike) - { - throwHandshakeFailure(); - } - catch (Exception x) - { - if (!checkCertificates(peerCerts)) - { - peerUnverified(peerCerts); - SSLPeerUnverifiedException e = - new SSLPeerUnverifiedException ("could not verify peer certificate: "+ - peerCerts[0].getSubjectDN()); - e.initCause (x); - throw e; - } - session.peerCerts = peerCerts; - session.peerVerified = true; - } - serverKey = peerCerts[0].getPublicKey(); - serverKex = serverKey; - } - - msg = Handshake.read(din, suite, serverKey); - - // Receive the server's key exchange. - if (msg.getType() == Handshake.Type.SERVER_KEY_EXCHANGE) - { - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - ServerKeyExchange skex = (ServerKeyExchange) msg.getBody(); - serverKex = skex.getPublicKey(); - if (suite.getSignature() != "anon") - { - ISignature sig = null; - if (suite.getSignature() == "RSA") - { - sig = new SSLRSASignature(); - } - else if (suite.getSignature() == "DSS") - { - sig = SignatureFactory.getInstance(Registry.DSS_SIG); - } - sig.setupVerify(Collections.singletonMap( - ISignature.VERIFIER_KEY, serverKey)); - byte[] buf = clientRandom.getEncoded(); - sig.update(buf, 0, buf.length); - buf = serverRandom.getEncoded(); - sig.update(buf, 0, buf.length); - if (suite.getKeyExchange() == "RSA") - { - updateSig(sig, ((RSAPublicKey) serverKex).getModulus()); - updateSig(sig, ((RSAPublicKey) serverKex).getPublicExponent()); - } - else if (suite.getKeyExchange() == "DHE") - { - updateSig(sig, ((DHPublicKey) serverKex).getParams().getP()); - updateSig(sig, ((DHPublicKey) serverKex).getParams().getG()); - updateSig(sig, ((DHPublicKey) serverKex).getY()); - } - else if (suite.getKeyExchange() == "SRP") - { - updateSig(sig, ((SRPPublicKey) serverKex).getN()); - updateSig(sig, ((SRPPublicKey) serverKex).getG()); - byte[] srpSalt = skex.getSRPSalt(); - sig.update((byte) srpSalt.length); - sig.update(srpSalt, 0, srpSalt.length); - updateSig(sig, ((SRPPublicKey) serverKex).getY()); - } - if (!sig.verify(skex.getSignature().getSigValue())) - { - throwHandshakeFailure(); - } - } - - if (suite.getKeyExchange() == "SRP") - { - // use server's key exchange data to continue - // agreement protocol by faking a received incoming - // message. again the following code can be broken - // into multiple blocks for more accurate exception - // handling - try - { - out = new OutgoingMessage(); - out.writeMPI(((SRPPublicKey) serverKex).getN()); - out.writeMPI(((SRPPublicKey) serverKex).getG()); - out.writeMPI(new BigInteger(1, skex.getSRPSalt())); - out.writeMPI(((SRPPublicKey) serverKex).getY()); - - in = new IncomingMessage(out.toByteArray()); - - out = clientKA.processMessage(in); - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "clientKA isComplete? {0}", - Boolean.valueOf (clientKA.isComplete())); - } - } - catch (KeyAgreementException x) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "SRP exception", x); - } - throwHandshakeFailure(); - } - } - msg = Handshake.read(din, suite, serverKey); - } - - // See if the server wants us to send our certificates. - certReq = null; - if (msg.getType() == Handshake.Type.CERTIFICATE_REQUEST) - { - if (suite.getSignature() == "anon") - { - throwHandshakeFailure(); - } - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - certReq = (CertificateRequest) msg.getBody(); - msg = Handshake.read(din); - } - - // Read ServerHelloDone. - if (msg.getType() != Handshake.Type.SERVER_HELLO_DONE) - { - throwUnexpectedMessage(); - } - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - - // Send our certificate chain if the server asked for it. - if (certReq != null) - { - String alias = session.keyManager.chooseClientAlias( - certReq.getTypeStrings(), certReq.getAuthorities(), null); - if (alias == null && version == ProtocolVersion.SSL_3) - { - Alert alert = - new Alert(Alert.Level.WARNING, Alert.Description.NO_CERTIFICATE); - sendAlert(alert); - } - else - { - X509Certificate[] chain = - session.keyManager.getCertificateChain(alias); - PrivateKey key = session.keyManager.getPrivateKey(alias); - if (chain == null) - { - chain = new X509Certificate[0]; - } - Certificate cert = new Certificate(chain); - msg = new Handshake(Handshake.Type.CERTIFICATE, cert); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); -// recordOutput.setHandshakeAvail(msg.write(dout, version));; - dout.flush(); - if (chain.length > 0) - { - session.localCerts = chain; - clientKeys = new KeyPair(chain[0].getPublicKey(), key); - } - } - } - - // Send our key exchange. - byte[] preMasterSecret = null; - ClientKeyExchange ckex = null; - if (suite.getKeyExchange() == "RSA") - { - ProtocolVersion v = - (ProtocolVersion) session.enabledProtocols.last(); - byte[] b = new byte[46]; - session.random.nextBytes (b); - preMasterSecret = Util.concat(v.getEncoded(), b); - EME_PKCS1_V1_5 pkcs1 = EME_PKCS1_V1_5.getInstance((RSAPublicKey) serverKex); - BigInteger bi = new BigInteger(1, - pkcs1.encode(preMasterSecret, session.random)); - bi = RSA.encrypt((RSAPublicKey) serverKex, bi); - ckex = new ClientKeyExchange(Util.trim(bi)); - } - else if (suite.getKeyExchange().startsWith("DH")) - { - if (clientKeys == null || - !(clientKeys.getPublic() instanceof DHPublicKey)) - { - GnuDHPrivateKey tmpKey = - new GnuDHPrivateKey(null, ((DHPublicKey) serverKex).getParams().getP(), - ((DHPublicKey) serverKex).getParams().getG(), null); - clientKA = KeyAgreementFactory.getPartyBInstance(Registry.DH_KA); - Map attr = new HashMap(); - attr.put(DiffieHellmanKeyAgreement.KA_DIFFIE_HELLMAN_OWNER_PRIVATE_KEY, - tmpKey); - attr.put(DiffieHellmanKeyAgreement.SOURCE_OF_RANDOMNESS, - session.random); - try - { - clientKA.init(attr); - out = new OutgoingMessage(); - out.writeMPI(((DHPublicKey) serverKex).getY()); - in = new IncomingMessage(out.toByteArray()); - out = clientKA.processMessage(in); - in = new IncomingMessage(out.toByteArray()); - ckex = new ClientKeyExchange(in.readMPI()); - } - catch (KeyAgreementException kae) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "DH exception", kae); - } - internalError(); - RuntimeException re = new RuntimeException (kae.getMessage()); - re.initCause (kae); - throw re; - } - } - else - { - clientKA = KeyAgreementFactory.getPartyBInstance(Registry.ELGAMAL_KA); - Map attr = new HashMap(); - attr.put(ElGamalKeyAgreement.KA_ELGAMAL_RECIPIENT_PRIVATE_KEY, - clientKeys.getPrivate()); - try - { - // The key exchange is already complete here; our public - // value was sent with our certificate. - clientKA.init(attr); - } - catch (KeyAgreementException kae) - { - if (DEBUG_KEY_EXCHANGE) - logger.log (Component.SSL_KEY_EXCHANGE, "DH exception", kae); - internalError(); - RuntimeException re = new RuntimeException (kae.getMessage()); - re.initCause (kae); - throw re; - } - ckex = new ClientKeyExchange(new byte[0]); - } - } - else if (suite.getKeyExchange() == "SRP") - { - // at this point, out --the outgoing message-- already contains - // what we want. so... - BigInteger A = null; - try - { - in = new IncomingMessage(out.toByteArray()); - A = in.readMPI(); - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "client A:{0}", A); - } - } - catch (KeyAgreementException x) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "SRP exception", x); - } - throwHandshakeFailure(); - } - ckex = new ClientKeyExchange(A); - } - msg = new Handshake(Handshake.Type.CLIENT_KEY_EXCHANGE, ckex); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write (dout, version); -// recordOutput.setHandshakeAvail(msg.write(dout, version));; - - // Generate the master secret. - if (suite.getKeyExchange().startsWith("DH")) - { - try - { - preMasterSecret = clientKA.getSharedSecret(); - } - catch (KeyAgreementException kae) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "DH exception", kae); - } - internalError(); - RuntimeException re = new RuntimeException (kae.getMessage()); - re.initCause (kae); - throw re; - } - } - else if (suite.getKeyExchange() == "SRP") - { - try - { - preMasterSecret = clientKA.getSharedSecret(); - } - catch (KeyAgreementException x) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "SRP exception", x); - } - throwHandshakeFailure(); - } - finally - { - clientKA = null; - } - } - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "preMasterSecret:\n{0}", - Util.toHexString (preMasterSecret, ':')); - logger.log (Component.SSL_KEY_EXCHANGE, "client.random:\n{0}", - Util.toHexString(clientRandom.getEncoded(), ':')); - logger.log (Component.SSL_KEY_EXCHANGE, "server.random:\n{0}", - Util.toHexString(serverRandom.getEncoded(), ':')); - } - IRandom genSecret = null; - if (version == ProtocolVersion.SSL_3) - { - genSecret = new SSLRandom(); - HashMap attr = new HashMap(); - attr.put(SSLRandom.SECRET, preMasterSecret); - attr.put(SSLRandom.SEED, - Util.concat(clientRandom.getEncoded(), serverRandom.getEncoded())); - genSecret.init(attr); - } - else - { - genSecret = new TLSRandom(); - HashMap attr = new HashMap(); - attr.put(TLSRandom.SECRET, preMasterSecret); - attr.put(TLSRandom.SEED, - Util.concat(("master secret").getBytes("UTF-8"), - Util.concat(clientRandom.getEncoded(), serverRandom.getEncoded()))); - genSecret.init(attr); - } - session.masterSecret = new byte[48]; - try - { - genSecret.nextBytes(session.masterSecret, 0, 48); - for (int i = 0; i < preMasterSecret.length; i++) - { - preMasterSecret[i] = 0; - } - } - catch (LimitReachedException shouldNotHappen) - { - internalError(); - RuntimeException re = new RuntimeException (shouldNotHappen.getMessage()); - re.initCause (shouldNotHappen); - throw re; - } - - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "masterSecret: {0}", - Util.toHexString(session.masterSecret, ':')); - } - - // Send our certificate verify message. - if (certReq != null && clientKeys != null) - { - IMessageDigest vMD5 = (IMessageDigest) md5.clone(); - IMessageDigest vSHA = (IMessageDigest) sha.clone(); - PrivateKey key = clientKeys.getPrivate(); - Object sig = null; - String sigAlg = null; - try - { - if (key instanceof DSAPrivateKey) - { - sig = DSSSignature.sign((DSAPrivateKey) key, vSHA.digest(), - session.random); - sigAlg = "DSS"; - } - else if (key instanceof RSAPrivateKey) - { - SSLRSASignature rsa = new SSLRSASignature(vMD5, vSHA); - rsa.setupSign(Collections.singletonMap(ISignature.SIGNER_KEY, key)); - sig = rsa.sign(); - sigAlg = "RSA"; - } - else - { - throw new InvalidKeyException("no appropriate key"); - } - } - catch (Exception x) - { - throwHandshakeFailure(); - } - CertificateVerify verify = new CertificateVerify(sig, sigAlg); - msg = new Handshake(Handshake.Type.CERTIFICATE_VERIFY, verify); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); -// recordOutput.setHandshakeAvail(msg.write(dout, version));; - } - dout.flush(); - } - - byte[][] keys = null; - try - { - keys = generateKeys(serverRandom.getEncoded(), - clientRandom.getEncoded(), version); - } - catch (Exception x) - { - internalError(); - RuntimeException re = new RuntimeException (x.getMessage()); - re.initCause (x); - throw re; - } - - session.params.setVersion (version); - - // Initialize the algorithms with the derived keys. - Object readMac = null, writeMac = null; - Object readCipher = null, writeCipher = null; - try - { - if (session.params instanceof GNUSecurityParameters) - { - HashMap attr = new HashMap(); - writeMac = CipherSuite.getMac(suite.getMac()); - readMac = CipherSuite.getMac(suite.getMac()); - attr.put(IMac.MAC_KEY_MATERIAL, keys[0]); - ((IMac) writeMac).init(attr); - attr.put(IMac.MAC_KEY_MATERIAL, keys[1]); - ((IMac) readMac).init(attr); - if (suite.getCipher() == "RC4") - { - writeCipher = new ARCFour(); - readCipher = new ARCFour(); - attr.clear(); - attr.put(ARCFour.ARCFOUR_KEY_MATERIAL, keys[2]); - ((ARCFour) writeCipher).init(attr); - attr.put(ARCFour.ARCFOUR_KEY_MATERIAL, keys[3]); - ((ARCFour) readCipher).init(attr); - } - else if (!suite.isStreamCipher()) - { - writeCipher = CipherSuite.getCipher(suite.getCipher()); - readCipher = CipherSuite.getCipher(suite.getCipher()); - attr.clear(); - attr.put(IMode.KEY_MATERIAL, keys[2]); - attr.put(IMode.IV, keys[4]); - attr.put(IMode.STATE, new Integer(IMode.ENCRYPTION)); - ((IMode) writeCipher).init(attr); - attr.put(IMode.KEY_MATERIAL, keys[3]); - attr.put(IMode.IV, keys[5]); - attr.put(IMode.STATE, new Integer(IMode.DECRYPTION)); - ((IMode) readCipher).init(attr); - } - } - else // JCESecurityParameters - { - writeMac = CipherSuite.getJCEMac (suite.getMac()); - readMac = CipherSuite.getJCEMac (suite.getMac()); - writeCipher = CipherSuite.getJCECipher (suite.getCipher()); - readCipher = CipherSuite.getJCECipher (suite.getCipher()); - ((Mac) writeMac).init (new SecretKeySpec (keys[0], suite.getMac())); - ((Mac) readMac).init (new SecretKeySpec (keys[1], suite.getMac())); - if (!suite.isStreamCipher()) - { - ((Cipher) writeCipher).init (Cipher.ENCRYPT_MODE, - new SecretKeySpec (keys[2], suite.getCipher()), - new IvParameterSpec (keys[4])); - ((Cipher) readCipher).init (Cipher.DECRYPT_MODE, - new SecretKeySpec (keys[3], suite.getCipher()), - new IvParameterSpec (keys[5])); - } - else - { - ((Cipher) writeCipher).init (Cipher.ENCRYPT_MODE, - new SecretKeySpec (keys[2], suite.getCipher())); - ((Cipher) readCipher).init (Cipher.DECRYPT_MODE, - new SecretKeySpec (keys[3], suite.getCipher())); - } - } - } - // These should technically never happen, if our key generation is not - // broken. - catch (InvalidKeyException ike) - { - internalError(); - RuntimeException re = new RuntimeException (ike.getMessage()); - re.initCause(ike); - throw re; - } - catch (InvalidAlgorithmParameterException iape) - { - internalError(); - RuntimeException re = new RuntimeException (iape.getMessage()); - re.initCause (iape); - throw re; - } - // These indicate a configuration error with the JCA. - catch (NoSuchAlgorithmException nsae) - { - session.enabledSuites.remove (suite); - internalError(); - SSLException x = new SSLException ("suite " + suite + " not available in this configuration"); - x.initCause (nsae); - throw x; - } - catch (NoSuchPaddingException nspe) - { - session.enabledSuites.remove (suite); - internalError(); - SSLException x = new SSLException ("suite " + suite + " not available in this configuration"); - x.initCause (nspe); - throw x; - } - - Finished finis = null; - - if (newSession) - { - changeCipherSpec(); - session.params.setDeflating(serverHello.getCompressionMethod() == CompressionMethod.ZLIB); - session.params.setOutMac(writeMac); - session.params.setOutCipher(writeCipher); - finis = generateFinished(version, (IMessageDigest) md5.clone(), - (IMessageDigest) sha.clone(), true); - msg = new Handshake(Handshake.Type.FINISHED, finis); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); - dout.flush(); - } - - if (session.currentAlert != null && - session.currentAlert.getLevel() == Alert.Level.FATAL) - { - fatal(); - throw new AlertException(session.currentAlert, false); - } - - synchronized (session.params) - { - readChangeCipherSpec (); - session.params.setInflating(serverHello.getCompressionMethod() == CompressionMethod.ZLIB); - session.params.setInMac(readMac); - session.params.setInCipher(readCipher); - session.params.notifyAll(); - } - - Finished verify = generateFinished(version, (IMessageDigest) md5.clone(), - (IMessageDigest) sha.clone(), false); - - msg = Handshake.read(din, suite, null); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - if (msg.getType() != Handshake.Type.FINISHED) - { - throwUnexpectedMessage(); - } - finis = (Finished) msg.getBody(); - if (version == ProtocolVersion.SSL_3) - { - if (!Arrays.equals(finis.getMD5Hash(), verify.getMD5Hash()) || - !Arrays.equals(finis.getSHAHash(), verify.getSHAHash())) - { - throwHandshakeFailure(); - } - } - else - { - if (!Arrays.equals(finis.getVerifyData(), verify.getVerifyData())) - { - throwHandshakeFailure(); - } - } - - if (!newSession) - { - changeCipherSpec(); - session.params.setDeflating(serverHello.getCompressionMethod() == CompressionMethod.ZLIB); - session.params.setOutMac(writeMac); - session.params.setOutCipher(writeCipher); - finis = generateFinished(version, md5, sha, true); - msg = new Handshake(Handshake.Type.FINISHED, finis); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); - dout.flush(); - } - - handshakeCompleted(); - } - - /** - * Perform the server handshake. - */ - private void doServerHandshake() throws IOException - { - if (DEBUG_HANDSHAKE_LAYER) - { - logger.log (Component.SSL_HANDSHAKE, "doing server handshake in {0}", - Thread.currentThread()); - } - - if (remoteHost == null) - { - remoteHost = getInetAddress().getHostName(); - } - if (remoteHost == null) - { - remoteHost = getInetAddress().getHostAddress(); - } - - IMessageDigest md5 = HashFactory.getInstance(Registry.MD5_HASH); - IMessageDigest sha = HashFactory.getInstance(Registry.SHA160_HASH); - DigestInputStream din = new DigestInputStream(handshakeIn, md5, sha); - DigestOutputStream dout = new DigestOutputStream(handshakeOut, md5, sha); - - // Read the client hello. - Handshake msg = Handshake.read(din); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - if (msg.getType() != Handshake.Type.CLIENT_HELLO) - { - throwUnexpectedMessage(); - } - ClientHello clientHello = (ClientHello) msg.getBody(); - Random clientRandom = clientHello.getRandom(); - ProtocolVersion version = clientHello.getVersion(); - ProtocolVersion server = - (ProtocolVersion) session.enabledProtocols.last(); - CompressionMethod comp; - if (clientHello.getCompressionMethods().contains(CompressionMethod.ZLIB)) - comp = CompressionMethod.ZLIB; - else - comp = CompressionMethod.NULL; - if (!session.enabledProtocols.contains(version) - && version.compareTo(server) < 0) - { - Alert alert = new Alert(Alert.Level.FATAL, - Alert.Description.PROTOCOL_VERSION); - sendAlert(alert); - session.currentAlert = alert; - throw new AlertException(alert, true); - } - - // Look through the extensions sent by the client (if any), and react to - // them appropriately. - List extensions = null; - String remoteUser = null; - if (clientHello.getExtensions() != null) - { - for (Iterator it = clientHello.getExtensions().iterator(); it.hasNext();) - { - Extension ex = (Extension) it.next(); - if (ex.getType() == Extension.Type.SERVER_NAME) - { - if (extensions == null) - { - extensions = new LinkedList(); - } - extensions.add(ex); - } - else if (ex.getType() == Extension.Type.MAX_FRAGMENT_LENGTH) - { - int maxLen = Extensions.getMaxFragmentLength(ex).intValue(); -// recordInput.setFragmentLength(maxLen); -// recordOutput.setFragmentLength(maxLen); - session.params.setFragmentLength(maxLen); - if (extensions == null) - { - extensions = new LinkedList(); - } - extensions.add(ex); - } - else if (ex.getType() == Extension.Type.SRP) - { - if (extensions == null) - { - extensions = new LinkedList(); - } - byte[] b = ex.getValue(); - remoteUser = new String(ex.getValue(), 1, b[0] & 0xFF, "UTF-8"); - session.putValue("srp-username", remoteUser); - } - } - } - - CipherSuite suite = selectSuite(clientHello.getCipherSuites(), version); - if (suite == null) - { - return; - } - - // If the selected suite turns out to be SRP, set up the key exchange - // objects. - IKeyAgreementParty serverKA = null; - IncomingMessage in; - OutgoingMessage out = null; - if (suite.getKeyExchange() == "SRP") - { - // FIXME - // Uhm, I don't think this can happen, because if remoteUser is null - // we cannot choose an SRP ciphersuite... - if (remoteUser == null) - { - Alert alert = new Alert(Alert.Level.FATAL, - Alert.Description.MISSING_SRP_USERNAME); - sendAlert(alert); - throw new AlertException(alert, true); - } - - SRPAuthInfoProvider srpDB = new SRPAuthInfoProvider(); - Map dbAttributes = new HashMap(); - dbAttributes.put(SRPRegistry.PASSWORD_DB, - session.srpTrustManager.getPasswordFile()); - srpDB.activate(dbAttributes); - - // FIXME - // We can also fake that the user exists, and generate a dummy (and - // invalid) master secret, and let the handshake fail at the Finished - // message. This is better than letting the connecting side know that - // the username they sent isn't valid. - // - // But how to implement this? - if (!srpDB.contains(remoteUser)) - { - Alert alert = new Alert(Alert.Level.FATAL, - Alert.Description.UNKNOWN_SRP_USERNAME); - sendAlert(alert); - throw new AlertException(alert, true); - } - - serverKA = KeyAgreementFactory.getPartyBInstance(Registry.SRP_TLS_KA); - Map serverAttributes = new HashMap(); - serverAttributes.put(SRP6KeyAgreement.HASH_FUNCTION, - Registry.SHA160_HASH); - serverAttributes.put(SRP6KeyAgreement.HOST_PASSWORD_DB, srpDB); - - try - { - serverKA.init(serverAttributes); - out = new OutgoingMessage(); - out.writeString(remoteUser); - in = new IncomingMessage(out.toByteArray()); - out = serverKA.processMessage(in); - } - catch (KeyAgreementException x) - { - throwHandshakeFailure(); - } - } - - // Check if the session specified by the client's ID corresponds - // to a saved session, and if so, continue it. - boolean newSession = true; - if (DEBUG_HANDSHAKE_LAYER) - { - logger.log (Component.SSL_HANDSHAKE, "saved sessions: {0}", sessionContext); - } - if (sessionContext.containsSessionID( - new Session.ID(clientHello.getSessionId()))) - { - Session old = session; - session = (Session) sessionContext.getSession(clientHello.getSessionId()); - if (!clientHello.getCipherSuites().contains(session.cipherSuite)) - { - throwHandshakeFailure(); - } - if (session.getPeerHost().equals(remoteHost) && - old.enabledProtocols.contains(session.protocol)) - { - session = (Session) session.clone(); - suite = session.cipherSuite; - newSession = false; - recordInput.setSession(session); - session.currentAlert = null; - session.params = old.params; - session.random = old.random; - } - else - { - if (DEBUG_HANDSHAKE_LAYER) - { - logger.log (Component.SSL_HANDSHAKE, "rejected section; hosts equal? {0}, same suites? {1}", - new Object[] { Boolean.valueOf (session.getPeerHost().equals(remoteHost)), - Boolean.valueOf (old.enabledProtocols.contains(session.protocol)) }); - } - session = old; - session.peerHost = remoteHost; - newSession = true; - } - } - else if (DEBUG_HANDSHAKE_LAYER) - { - logger.log (Component.SSL_HANDSHAKE, "rejected session; have session id? {0}, saved sessions: {1}", - new Object[] { Boolean.valueOf (sessionContext.containsSessionID(new Session.ID(clientHello.getSessionId()))), - sessionContext }); - } - if (newSession) - { - byte[] buf = new byte[32]; - Session.ID sid = null; - do - { - session.random.nextBytes(buf); - sid = new Session.ID(buf); - } - while (sessionContext.containsSessionID(sid)); - session.sessionId = sid; - } - session.valid = true; - session.peerHost = remoteHost; - session.cipherSuite = suite; - session.protocol = version; - session.params.setVersion (version); - - // Send the server hello. - Random serverRandom = new Random(Util.unixTime(), - session.random.generateSeed(28)); - ServerHello serverHello = new ServerHello(version, serverRandom, - session.getId(), suite, - comp, extensions); - msg = new Handshake(Handshake.Type.SERVER_HELLO, serverHello); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); -// recordOutput.setHandshakeAvail(msg.write(dout, version)); - dout.flush(); - - if (newSession) - { - X509Certificate[] certs = null; - PrivateKey serverKey = null; - if (suite.getSignature() != "anon") - { - // Send our CA-issued certificate to the client. - String alias = session.keyManager.chooseServerAlias(suite.getAuthType(), - null, null); - certs = session.keyManager.getCertificateChain(alias); - serverKey = session.keyManager.getPrivateKey(alias); - if (certs == null || serverKey == null) - { - throwHandshakeFailure(); - } - session.localCerts = certs; - Certificate serverCert = new Certificate(certs); - msg = new Handshake(Handshake.Type.CERTIFICATE, serverCert); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); -// recordOutput.setHandshakeAvail(msg.write(dout, version));; - dout.flush(); - } - - // If the certificate we sent does not contain enough information to - // do the key exchange (in the case of ephemeral Diffie-Hellman, - // export RSA, and SRP) we send a signed public key to be used for the - // key exchange. - KeyPair signPair = null; - if (certs != null) - { - signPair = new KeyPair(certs[0].getPublicKey(), serverKey); - } - KeyPair kexPair = signPair; - ServerKeyExchange skex = null; - - // Set up our key exchange, and/or prepare our ServerKeyExchange - // message. - if ((suite.getKeyExchange() == "RSA" && suite.isExportable() && - ((RSAPrivateKey) serverKey).getModulus().bitLength() > 512)) - { - kexPair = KeyPool.generateRSAKeyPair(); - RSAPublicKey pubkey = (RSAPublicKey) kexPair.getPublic(); - Signature s = null; - if (suite.getSignature() != "anon") - { - SSLRSASignature sig = new SSLRSASignature(); - sig.setupSign(Collections.singletonMap(ISignature.SIGNER_KEY, - signPair.getPrivate())); - byte[] buf = clientRandom.getEncoded(); - sig.update(buf, 0, buf.length); - buf = serverRandom.getEncoded(); - sig.update(buf, 0, buf.length); - updateSig(sig, pubkey.getModulus()); - updateSig(sig, pubkey.getPublicExponent()); - s = new Signature(sig.sign(), "RSA"); - } - skex = new ServerKeyExchange(pubkey, s); - } - else if (suite.getKeyExchange() == "DH") - { - serverKA = KeyAgreementFactory.getPartyBInstance(Registry.ELGAMAL_KA); - Map attr = new HashMap(); - attr.put(ElGamalKeyAgreement.KA_ELGAMAL_RECIPIENT_PRIVATE_KEY, - serverKey); - try - { - serverKA.init(attr); - } - catch (KeyAgreementException kae) - { - if (DEBUG_KEY_EXCHANGE) - logger.log (Component.SSL_KEY_EXCHANGE, "DH exception", kae); - internalError(); - RuntimeException re = new RuntimeException (kae.getMessage()); - re.initCause (kae); - throw re; - } - // We don't send a ServerKeyExchange for this suite. - } - else if (suite.getKeyExchange() == "DHE") - { - serverKA = KeyAgreementFactory.getPartyAInstance(Registry.DH_KA); - Map attr = new HashMap(); - GnuDHPrivateKey servParams = DiffieHellman.getParams(); - attr.put(DiffieHellmanKeyAgreement.KA_DIFFIE_HELLMAN_OWNER_PRIVATE_KEY, - servParams); - attr.put(DiffieHellmanKeyAgreement.SOURCE_OF_RANDOMNESS, - session.random); - BigInteger serv_y = null; - try - { - serverKA.init(attr); - out = serverKA.processMessage(null); - in = new IncomingMessage(out.toByteArray()); - serv_y = in.readMPI(); - } - catch (KeyAgreementException kae) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "DHE exception", kae); - } - internalError(); - RuntimeException re = new RuntimeException (kae.getMessage()); - re.initCause (kae); - throw re; - } - GnuDHPublicKey pubkey = - new GnuDHPublicKey(null, servParams.getParams().getP(), - servParams.getParams().getG(), serv_y); - Signature s = null; - if (suite.getSignature() != "anon") - { - ISignature sig = null; - if (suite.getSignature() == "RSA") - { - sig = new SSLRSASignature(); - } - else - { - sig = SignatureFactory.getInstance(Registry.DSS_SIG); - } - sig.setupSign(Collections.singletonMap(ISignature.SIGNER_KEY, - signPair.getPrivate())); - byte[] buf = clientRandom.getEncoded(); - sig.update(buf, 0, buf.length); - buf = serverRandom.getEncoded(); - sig.update(buf, 0, buf.length); - updateSig(sig, pubkey.getParams().getP()); - updateSig(sig, pubkey.getParams().getG()); - updateSig(sig, pubkey.getY()); - s = new Signature(sig.sign(), suite.getSignature()); - } - skex = new ServerKeyExchange(pubkey, s); - } - else if (suite.getKeyExchange() == "SRP") - { - BigInteger N = null; - BigInteger g = null; - BigInteger salt = null; - BigInteger B = null; - try - { - in = new IncomingMessage(out.toByteArray()); - N = in.readMPI(); - g = in.readMPI(); - salt = in.readMPI(); - B = in.readMPI(); - } - catch (KeyAgreementException x) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "SRP exception", x); - } - throwHandshakeFailure(); - } - Signature s = null; - final byte[] srpSalt = Util.trim(salt); - if (suite.getSignature() != "anon") - { - ISignature sig = null; - if (suite.getSignature() == "RSA") - { - sig = new SSLRSASignature(); - } - else - { - sig = SignatureFactory.getInstance(Registry.DSS_SIG); - } - sig.setupSign(Collections.singletonMap(ISignature.SIGNER_KEY, - signPair.getPrivate())); - byte[] buf = clientRandom.getEncoded(); - sig.update(buf, 0, buf.length); - buf = serverRandom.getEncoded(); - sig.update(buf, 0, buf.length); - updateSig(sig, N); - updateSig(sig, g); - sig.update((byte) srpSalt.length); - sig.update(srpSalt, 0, srpSalt.length); - updateSig(sig, B); - s = new Signature(sig.sign(), suite.getSignature()); - } - final SRPPublicKey pubkey = new SRPPublicKey(N, g, B); - skex = new ServerKeyExchange(pubkey, s, srpSalt); - } - if (skex != null) - { - msg = new Handshake(Handshake.Type.SERVER_KEY_EXCHANGE, skex); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); -// recordOutput.setHandshakeAvail(msg.write(dout, version));; - dout.flush(); - } - - // If we are configured to want or need client authentication, then - // ask for it. - if (wantClientAuth || needClientAuth) - { - Principal[] auths = null; - CertificateRequest.ClientType[] types = - new CertificateRequest.ClientType[] { - CertificateRequest.ClientType.RSA_SIGN, - CertificateRequest.ClientType.DSS_SIGN, - CertificateRequest.ClientType.RSA_FIXED_DH, - CertificateRequest.ClientType.DSS_FIXED_DH - }; - try - { - auths = (Principal[]) - Util.transform(session.trustManager.getAcceptedIssuers(), - Principal.class, "getSubjectDN", null); - } - catch (Exception x) - { - internalError(); - RuntimeException re = new RuntimeException (x.getMessage()); - re.initCause (x); - throw re; - } - CertificateRequest req = new CertificateRequest(types, auths); - msg = new Handshake(Handshake.Type.CERTIFICATE_REQUEST, req); - msg.write(dout, version); - dout.flush(); - } - - // Send our server hello done. - msg = new Handshake(Handshake.Type.SERVER_HELLO_DONE, null); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); - dout.flush(); - - if (suite.getKeyExchange() == "RSA") - { - msg = Handshake.read(din, suite, kexPair.getPublic()); - } - else - { - msg = Handshake.read(din, suite, null); - } - boolean clientCertOk = false; - boolean clientCanSign = false; - X509Certificate[] clientChain = null; - PublicKey clientKey = null; - - // Read the client's certificate, if sent. - if (msg.getType() == Handshake.Type.CERTIFICATE) - { - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - Certificate cliCert = (Certificate) msg.getBody(); - clientChain = cliCert.getCertificates(); - try - { - session.trustManager.checkClientTrusted(clientChain, - suite.getAuthType()); - session.peerCerts = clientChain; - session.peerVerified = true; - clientKey = clientChain[0].getPublicKey(); - } - catch (Exception x) - { - } - clientCanSign = ((clientKey instanceof DSAPublicKey) || - (clientKey instanceof RSAPublicKey)); - if (suite.getKeyExchange().startsWith("DH")) - { - msg = Handshake.read(din, suite, clientKey); - } - else - { - msg = Handshake.read(din, suite, kexPair.getPublic()); - } - } - - // If we require client authentication, and the client sent an - // unverifiable certificate or no certificate at all, drop the - // connection. - if (!session.peerVerified && needClientAuth) - { - throwHandshakeFailure(); - } - - // Read the client key exchange. - if (msg.getType() != Handshake.Type.CLIENT_KEY_EXCHANGE) - { - throwUnexpectedMessage(); - } - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - ClientKeyExchange ckex = (ClientKeyExchange) msg.getBody(); - byte[] preMasterSecret = null; - if (suite.getKeyExchange() == "RSA") - { - byte[] enc = (byte[]) ckex.getExchangeObject(); - BigInteger bi = new BigInteger(1, enc); - try - { - bi = RSA.decrypt(kexPair.getPrivate(), bi); - EME_PKCS1_V1_5 pkcs1 = EME_PKCS1_V1_5.getInstance( - (RSAPrivateKey) kexPair.getPrivate()); - preMasterSecret = pkcs1.decode(Util.concat(new byte[1], bi.toByteArray())); - //rsa.init(kexPair); - //preMasterSecret = rsa.decrypt(enc); - } - catch (Exception x) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "RSA exception", x); - } - // Generate a fake pre-master secret if the RSA decryption - // fails. - byte[] b = new byte[46]; - session.random.nextBytes (b); - preMasterSecret = Util.concat(version.getEncoded(), b); - } - } - else if (suite.getKeyExchange().startsWith("DH")) - { - try - { - out = new OutgoingMessage(); - if (clientKey == null) - out.writeMPI((BigInteger) ckex.getExchangeObject()); - else - out.writeMPI(((DHPublicKey) clientKey).getY()); - in = new IncomingMessage(out.toByteArray()); - serverKA.processMessage(in); - preMasterSecret = serverKA.getSharedSecret(); - } - catch (KeyAgreementException kae) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "DH exception", kae); - } - internalError(); - RuntimeException re = new RuntimeException (kae.getMessage()); - re.initCause (kae); - throw re; - } - } - else if (suite.getKeyExchange() == "SRP") - { - BigInteger A = (BigInteger) ckex.getExchangeObject(); - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "SRP: client A: {0}", A); - } - try - { - out = new OutgoingMessage(); - out.writeMPI(A); - in = new IncomingMessage(out.toByteArray()); - out = serverKA.processMessage(in); - preMasterSecret = serverKA.getSharedSecret(); - } - catch (KeyAgreementException x) - { - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "SRP exception", x); - } - throwHandshakeFailure(); - } - finally - { - serverKA = null; - } - } - - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "preMasterSecret:\n{0}", - Util.toHexString(preMasterSecret, ':')); - logger.log (Component.SSL_KEY_EXCHANGE, "client.random:\n{0}", - Util.toHexString(clientRandom.getEncoded(), ':')); - logger.log (Component.SSL_KEY_EXCHANGE, "server.random:\n{0}", - Util.toHexString(serverRandom.getEncoded(), ':')); - } - - // Generate the master secret. - IRandom genSecret = null; - if (version == ProtocolVersion.SSL_3) - { - genSecret = new SSLRandom(); - HashMap attr = new HashMap(); - attr.put(SSLRandom.SECRET, preMasterSecret); - attr.put(SSLRandom.SEED, Util.concat(clientRandom.getEncoded(), - serverRandom.getEncoded())); - genSecret.init(attr); - } - else - { - genSecret = new TLSRandom(); - HashMap attr = new HashMap(); - attr.put(TLSRandom.SECRET, preMasterSecret); - attr.put(TLSRandom.SEED, - Util.concat(("master secret").getBytes("UTF-8"), - Util.concat(clientRandom.getEncoded(), - serverRandom.getEncoded()))); - genSecret.init(attr); - } - session.masterSecret = new byte[48]; - try - { - genSecret.nextBytes(session.masterSecret, 0, 48); - for (int i = 0; i < preMasterSecret.length; i++) - { - preMasterSecret[i] = 0; - } - } - catch (LimitReachedException shouldNotHappen) - { - internalError(); - RuntimeException re = new RuntimeException(); - re.initCause (shouldNotHappen); - throw re; - } - - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "masterSecret: {0}", - Util.toHexString(session.masterSecret, ':')); - } - - // Read the client's certificate verify message, if needed. - if (clientCanSign && (wantClientAuth || needClientAuth)) - { - msg = Handshake.read(din); - if (msg.getType() != Handshake.Type.CERTIFICATE_VERIFY) - { - throwUnexpectedMessage(); - } - CertificateVerify verify = (CertificateVerify) msg.getBody(); - if (clientChain != null && clientChain.length > 0) - { - IMessageDigest cvMD5 = (IMessageDigest) md5.clone(); - IMessageDigest cvSHA = (IMessageDigest) sha.clone(); - clientKey = clientChain[0].getPublicKey(); - if (clientKey instanceof RSAPublicKey) - { - SSLRSASignature sig = new SSLRSASignature(cvMD5, cvSHA); - sig.setupVerify(Collections.singletonMap(ISignature.VERIFIER_KEY, clientKey)); - if (!sig.verify(verify.getSigValue())) - { - handshakeFailure(); - throw new SSLHandshakeException("client certificate verify failed"); - } - } - else if (clientKey instanceof DSAPublicKey) - { - try - { - if (!DSSSignature.verify((DSAPublicKey) clientKey, cvSHA.digest(), - (BigInteger[]) verify.getSigValue())) - { - throw new Exception("client's certificate could not be verified"); - } - } - catch (Exception x) - { - handshakeFailure(); - SSLHandshakeException e = new SSLHandshakeException (x.getMessage()); - e.initCause (x); - throw e; - } - } - } - } - } - - // Generate the session keys. - byte[][] keys = null; - try - { - keys = generateKeys(serverRandom.getEncoded(), - clientRandom.getEncoded(), version); - } - catch (Exception x) - { - internalError(); - RuntimeException re = new RuntimeException (x.getMessage()); - re.initCause (x); - throw re; - } - - // Initialize the algorithms with the derived keys. - Object readMac = null, writeMac = null; - Object readCipher = null, writeCipher = null; - try - { - if (session.params instanceof GNUSecurityParameters) - { - HashMap attr = new HashMap(); - writeMac = CipherSuite.getMac(suite.getMac()); - readMac = CipherSuite.getMac(suite.getMac()); - attr.put(IMac.MAC_KEY_MATERIAL, keys[1]); - ((IMac) writeMac).init(attr); - attr.put(IMac.MAC_KEY_MATERIAL, keys[0]); - ((IMac) readMac).init(attr); - if (suite.getCipher() == "RC4") - { - writeCipher = new ARCFour(); - readCipher = new ARCFour(); - attr.clear(); - attr.put(ARCFour.ARCFOUR_KEY_MATERIAL, keys[3]); - ((ARCFour) writeCipher).init(attr); - attr.put(ARCFour.ARCFOUR_KEY_MATERIAL, keys[2]); - ((ARCFour) readCipher).init(attr); - } - else if (!suite.isStreamCipher()) - { - writeCipher = CipherSuite.getCipher(suite.getCipher()); - readCipher = CipherSuite.getCipher(suite.getCipher()); - attr.clear(); - attr.put(IMode.KEY_MATERIAL, keys[3]); - attr.put(IMode.IV, keys[5]); - attr.put(IMode.STATE, new Integer(IMode.ENCRYPTION)); - ((IMode) writeCipher).init(attr); - attr.put(IMode.KEY_MATERIAL, keys[2]); - attr.put(IMode.IV, keys[4]); - attr.put(IMode.STATE, new Integer(IMode.DECRYPTION)); - ((IMode) readCipher).init(attr); - } - } - else // JCESecurityParameters - { - writeMac = CipherSuite.getJCEMac (suite.getMac()); - readMac = CipherSuite.getJCEMac (suite.getMac()); - writeCipher = CipherSuite.getJCECipher (suite.getCipher()); - readCipher = CipherSuite.getJCECipher (suite.getCipher()); - ((Mac) writeMac).init (new SecretKeySpec (keys[1], suite.getMac())); - ((Mac) readMac).init (new SecretKeySpec (keys[0], suite.getMac())); - if (!suite.isStreamCipher()) - { - ((Cipher) writeCipher).init (Cipher.ENCRYPT_MODE, - new SecretKeySpec (keys[3], suite.getCipher()), - new IvParameterSpec (keys[5])); - ((Cipher) readCipher).init (Cipher.DECRYPT_MODE, - new SecretKeySpec (keys[2], suite.getCipher()), - new IvParameterSpec (keys[4])); - } - else - { - ((Cipher) writeCipher).init (Cipher.ENCRYPT_MODE, - new SecretKeySpec (keys[3], suite.getCipher())); - ((Cipher) readCipher).init (Cipher.DECRYPT_MODE, - new SecretKeySpec (keys[2], suite.getCipher())); - } - } - } - // These should technically never happen, if our key generation is not - // broken. - catch (InvalidKeyException ike) - { - internalError(); - RuntimeException re = new RuntimeException (ike.getMessage()); - re.initCause (ike); - throw new RuntimeException (String.valueOf (ike)); - } - catch (InvalidAlgorithmParameterException iape) - { - internalError(); - RuntimeException re = new RuntimeException (iape.getMessage()); - re.initCause (iape); - throw re; - } - // These indicate a configuration error with the JCA. - catch (NoSuchAlgorithmException nsae) - { - session.enabledSuites.remove (suite); - internalError(); - SSLException e = new SSLException ("suite " + suite + " not available in this configuration"); - e.initCause (nsae); - throw e; - } - catch (NoSuchPaddingException nspe) - { - session.enabledSuites.remove (suite); - internalError(); - SSLException e = new SSLException ("suite " + suite + " not available in this configuration"); - e.initCause (nspe); - throw e; - } - - Finished finis = null; - // If we are continuing a session, we send our Finished message first. - if (!newSession) - { - changeCipherSpec(); - session.params.setDeflating(comp == CompressionMethod.ZLIB); - session.params.setOutMac(writeMac); - session.params.setOutCipher(writeCipher); - finis = generateFinished(version, (IMessageDigest) md5.clone(), - (IMessageDigest) sha.clone(), false); - msg = new Handshake(Handshake.Type.FINISHED, finis); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); - dout.flush(); - } - - if (session.currentAlert != null && - session.currentAlert.getLevel() == Alert.Level.FATAL) - { - fatal(); - throw new AlertException(session.currentAlert, false); - } - - // Wait until we receive a ChangeCipherSpec, then change the crypto - // algorithms for the incoming side. - synchronized (session.params) - { - readChangeCipherSpec (); - session.params.setInflating(comp == CompressionMethod.ZLIB); - session.params.setInMac(readMac); - session.params.setInCipher(readCipher); - session.params.notifyAll(); - } - - // Receive and verify the client's finished message. - Finished verify = generateFinished(version, (IMessageDigest) md5.clone(), - (IMessageDigest) sha.clone(), true); - msg = Handshake.read(din, suite, null); - if (msg.getType() != Handshake.Type.FINISHED) - { - throwUnexpectedMessage(); - } - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - finis = (Finished) msg.getBody(); - if (version == ProtocolVersion.SSL_3) - { - if (!Arrays.equals(finis.getMD5Hash(), verify.getMD5Hash()) || - !Arrays.equals(finis.getSHAHash(), verify.getSHAHash())) - { - throwHandshakeFailure(); - } - } - else - { - if (!Arrays.equals(finis.getVerifyData(), verify.getVerifyData())) - { - throwHandshakeFailure(); - } - } - - // Send our Finished message last for new sessions. - if (newSession) - { - changeCipherSpec(); - session.params.setDeflating(comp == CompressionMethod.ZLIB); - session.params.setOutMac(writeMac); - session.params.setOutCipher(writeCipher); - finis = generateFinished(version, md5, sha, false); - msg = new Handshake(Handshake.Type.FINISHED, finis); - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}", msg); - msg.write(dout, version); - dout.flush(); - } - - handshakeCompleted(); - } - - /** - * Generate the keys from the master secret. - * - * @param server The server's random value. - * @param client The client's random value. - * @param activeVersion The negotiated protocol version. - * @return The generated keys. - */ - private byte[][] generateKeys(byte[] server, byte[] client, - ProtocolVersion activeVersion) - throws LimitReachedException, IOException - { - CipherSuite suite = session.cipherSuite; - int macLen = (suite.getMac().indexOf("MD5") >= 0) ? 16 : 20; - int keyLen = suite.getKeyLength(); - int ivLen = 0; - if (suite.getCipher().indexOf("DES") >= 0) - { - ivLen = 8; - } - else if (suite.getCipher() == "AES") - { - ivLen = 16; - } - byte[][] keyMaterial = new byte[6][]; - keyMaterial[0] = new byte[macLen]; // client_write_MAC_secret - keyMaterial[1] = new byte[macLen]; // server_write_MAC_secret - keyMaterial[2] = new byte[keyLen]; // client_write_key - keyMaterial[3] = new byte[keyLen]; // server_write_key - keyMaterial[4] = new byte[ivLen]; // client_write_IV - keyMaterial[5] = new byte[ivLen]; // server_write_IV - IRandom prf = null; - if (activeVersion == ProtocolVersion.SSL_3) - { - prf = new SSLRandom(); - HashMap attr = new HashMap(); - attr.put(SSLRandom.SECRET, session.masterSecret); - attr.put(SSLRandom.SEED, Util.concat(server, client)); - prf.init(attr); - } - else - { - prf = new TLSRandom(); - HashMap attr = new HashMap(); - attr.put(TLSRandom.SECRET, session.masterSecret); - attr.put(TLSRandom.SEED, Util.concat("key expansion".getBytes("UTF-8"), - Util.concat(server, client))); - prf.init(attr); - } - for (int i = 0; i < keyMaterial.length; i++) - { - prf.nextBytes(keyMaterial[i], 0, keyMaterial[i].length); - } - - // Exportable ciphers transform their keys once more, and use a - // nonsecret IV for block ciphers. - if (suite.isExportable()) - { - int finalLen = suite.getCipher() == "DES" ? 8 : 16; - if (activeVersion == ProtocolVersion.SSL_3) - { - IMessageDigest md5 = HashFactory.getInstance(Registry.MD5_HASH); - md5.update(keyMaterial[2], 0, keyMaterial[2].length); - md5.update(client, 0, client.length); - md5.update(server, 0, server.length); - keyMaterial[2] = Util.trim(md5.digest(), finalLen); - md5.update(keyMaterial[3], 0, keyMaterial[3].length); - md5.update(server, 0, server.length); - md5.update(client, 0, client.length); - keyMaterial[3] = Util.trim(md5.digest(), finalLen); - if (!suite.isStreamCipher()) - { - md5.update(client, 0, client.length); - md5.update(server, 0, server.length); - keyMaterial[4] = Util.trim(md5.digest(), ivLen); - md5.update(server, 0, server.length); - md5.update(client, 0, client.length); - keyMaterial[5] = Util.trim(md5.digest(), ivLen); - } - } - else - { - HashMap attr = new HashMap(); - attr.put(TLSRandom.SECRET, keyMaterial[2]); - attr.put(TLSRandom.SEED, - Util.concat("client write key".getBytes("UTF-8"), - Util.concat(client, server))); - prf.init(attr); - keyMaterial[2] = new byte[finalLen]; - prf.nextBytes(keyMaterial[2], 0, finalLen); - attr.put(TLSRandom.SECRET, keyMaterial[3]); - attr.put(TLSRandom.SEED, - Util.concat("server write key".getBytes("UTF-8"), - Util.concat(client, server))); - prf.init(attr); - keyMaterial[3] = new byte[finalLen]; - prf.nextBytes(keyMaterial[3], 0, finalLen); - if (!suite.isStreamCipher()) - { - attr.put(TLSRandom.SECRET, new byte[0]); - attr.put(TLSRandom.SEED, Util.concat("IV block".getBytes("UTF-8"), - Util.concat(client, server))); - prf.init(attr); - prf.nextBytes(keyMaterial[4], 0, keyMaterial[4].length); - prf.nextBytes(keyMaterial[5], 0, keyMaterial[5].length); - } - } - } - - if (DEBUG_KEY_EXCHANGE) - { - logger.log (Component.SSL_KEY_EXCHANGE, "Generated keys:"); - for (int i = 0; i < keyMaterial.length; i++) - logger.log (Component.SSL_KEY_EXCHANGE, "[{0}] {1}", - new Object[] { new Integer (i), - Util.toHexString(keyMaterial[i], ':') }); - } - - return keyMaterial; - } - - /** - * Generate a "finished" message, based on the hashes of the handshake - * messages, the agreed version, and a label. - * - * @param version The agreed version. - * @param md5 The current state of the handshake MD5 hash. - * @param sha The current state of the handshake SHA hash. - * @param client Should be true if the message is generated by the client. - */ - private Finished generateFinished(ProtocolVersion version, IMessageDigest md5, - IMessageDigest sha, boolean client) - { - if (version == ProtocolVersion.SSL_3) - { - if (client) - { - md5.update(SENDER_CLIENT, 0, 4); - } - else - { - md5.update(SENDER_SERVER, 0, 4); - } - byte[] ms = session.masterSecret; - md5.update(ms, 0, ms.length); - for (int i = 0; i < 48; i++) - { - md5.update(SSLHMac.PAD1); - } - byte[] b = md5.digest(); - md5.update(ms, 0, ms.length); - for (int i = 0; i < 48; i++) - { - md5.update(SSLHMac.PAD2); - } - md5.update(b, 0, b.length); - - if (client) - { - sha.update(SENDER_CLIENT, 0, 4); - } - else - { - sha.update(SENDER_SERVER, 0, 4); - } - sha.update(ms, 0, ms.length); - for (int i = 0; i < 40; i++) - { - sha.update(SSLHMac.PAD1); - } - b = sha.digest(); - sha.update(ms, 0, ms.length); - for (int i = 0; i < 40; i++) - { - sha.update(SSLHMac.PAD2); - } - sha.update(b, 0, b.length); - return new Finished(md5.digest(), sha.digest()); - } - else - { - byte[] h1 = md5.digest(); - byte[] h2 = sha.digest(); - String label = client ? "client finished" : "server finished"; - byte[] seed = null; - try - { - seed = Util.concat(label.getBytes("UTF-8"), Util.concat(h1, h2)); - } - catch (java.io.UnsupportedEncodingException uee) - { - RuntimeException re = new RuntimeException (uee.getMessage()); - re.initCause (uee); - throw re; - } - IRandom prf = new TLSRandom(); - HashMap attr = new HashMap(); - attr.put(TLSRandom.SECRET, session.masterSecret); - attr.put(TLSRandom.SEED, seed); - prf.init(attr); - byte[] finishedValue = new byte[12]; - try - { - prf.nextBytes(finishedValue, 0, 12); - } - catch (LimitReachedException lre) - { - RuntimeException re = new RuntimeException (lre.getMessage()); - re.initCause (lre); - throw re; - } - return new Finished(finishedValue); - } - } - - /** - * Send a fatal unexpected_message alert. - */ - private Alert unexpectedMessage() throws IOException - { - Alert alert = new Alert(Alert.Level.FATAL, - Alert.Description.UNEXPECTED_MESSAGE); - sendAlert(alert); - fatal(); - return alert; - } - - private void throwUnexpectedMessage() throws IOException - { - throw new AlertException(unexpectedMessage(), true); - } - - /** - * Send a fatal handshake_failure alert. - */ - private Alert handshakeFailure() throws IOException - { - Alert alert = new Alert(Alert.Level.FATAL, - Alert.Description.HANDSHAKE_FAILURE); - sendAlert(alert); - fatal(); - return alert; - } - - private void throwHandshakeFailure() throws IOException - { - throw new AlertException(handshakeFailure(), true); - } - - /** - * Send an internal_error alert. - */ - private Alert internalError() throws IOException - { - Alert alert = new Alert(Alert.Level.FATAL, - Alert.Description.INTERNAL_ERROR); - sendAlert(alert); - fatal(); - return alert; - } - - private void throwInternalError() throws IOException - { - throw new AlertException(internalError(), true); - } - - private Alert peerUnverified(X509Certificate[] chain) throws IOException - { - Alert alert = new Alert(Alert.Level.FATAL, - Alert.Description.HANDSHAKE_FAILURE); - sendAlert(alert); - fatal(); - return alert; - } - - private void throwPeerUnverified(X509Certificate[] chain) throws IOException - { - peerUnverified (chain); - throw new SSLPeerUnverifiedException("could not verify: "+ - chain[0].getSubjectDN()); - } - - /** - * Grab the first suite that is both in the client's requested suites - * and in our enabled suites, and for which we have the proper - * credentials. - * - * @param suites The client's requested suites. - * @param version The version being negotiated. - * @return The selected cipher suite. - * @throws SSLException If no appropriate suite can be selected. - */ - private CipherSuite selectSuite(List suites, ProtocolVersion version) - throws IOException - { - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "selectSuite req:{0} suites:{1}", - new Object[] { suites, session.enabledSuites }); - boolean srpSuiteNoUser = false; - for (Iterator i = suites.iterator(); i.hasNext(); ) - { - CipherSuite herSuite = (CipherSuite) i.next(); - for (Iterator j = session.enabledSuites.iterator(); j.hasNext(); ) - { - CipherSuite mySuite = (CipherSuite) j.next(); - if (!mySuite.equals(herSuite)) - { - continue; - } - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0} == {1}", - new Object[] { mySuite, herSuite }); - if (mySuite.getSignature() != "anon" && session.keyManager != null && - session.keyManager.chooseServerAlias(mySuite.getAuthType(), null, null) == null) - { - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "{0}: no certificate/private key", - mySuite); - continue; - } - if (mySuite.getKeyExchange() == "SRP") - { - if (session.getValue("srp-username") == null) - { - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "no SRP username"); - srpSuiteNoUser = true; - continue; - } - if (session.srpTrustManager == null) - { - if (DEBUG_HANDSHAKE_LAYER) - logger.log (Component.SSL_HANDSHAKE, "no SRP password file"); - continue; - } - } - return mySuite.resolve(version); - } - } - Alert alert = null; - if (srpSuiteNoUser) - { - alert = new Alert(Alert.Level.WARNING, - Alert.Description.MISSING_SRP_USERNAME); - sendAlert(alert); - return null; - } - else - alert = new Alert(Alert.Level.FATAL, - Alert.Description.INSUFFICIENT_SECURITY); - sendAlert(alert); - fatal(); - throw new AlertException(alert, true); - } - - /** - * Ask the user for their user name. - * - * @param remoteHost The remote host being connected to. - * @return The user name. - */ - private String askUserName(String remoteHost) - { - CallbackHandler handler = new DefaultCallbackHandler(); - try - { - Class c = Class.forName(Util.getSecurityProperty("jessie.srp.user.handler")); - handler = (CallbackHandler) c.newInstance(); - } - catch (Exception x) { } - TextInputCallback user = - new TextInputCallback("User name for " + remoteHost + ": ", - Util.getProperty("user.name")); - try - { - handler.handle(new Callback[] { user }); - } - catch (Exception x) { } - return user.getText(); - } - - /** - * Ask the user for a password. - * - * @param user The user name. - * @return The password. - */ - private String askPassword(String user) - { - CallbackHandler handler = new DefaultCallbackHandler(); - try - { - Class c = Class.forName(Util.getSecurityProperty("jessie.srp.password.handler")); - handler = (CallbackHandler) c.newInstance(); - } - catch (Exception x) { } - PasswordCallback passwd = new PasswordCallback(user + "'s password: ", false); - try - { - handler.handle(new Callback[] { passwd }); - } - catch (Exception x) { } - return new String(passwd.getPassword()); - } - - /** - * Ask the user (via a callback) if they will accept a certificate that - * could not be verified. - * - * @param chain The certificate chain in question. - * @return true if the user accepts the certificate chain. - */ - private boolean checkCertificates(X509Certificate[] chain) - { - CallbackHandler handler = new DefaultCallbackHandler(); - try - { - Class c = Class.forName(Util.getSecurityProperty("jessie.certificate.handler")); - handler = (CallbackHandler) c.newInstance(); - } - catch (Exception x) - { - } - String nl = Util.getProperty("line.separator"); - ConfirmationCallback confirm = new ConfirmationCallback( - "The server's certificate could not be verified. There is no proof" + nl + - "that this server is who it claims to be, or that their certificate" + nl + - "is valid. Do you wish to continue connecting?", - ConfirmationCallback.ERROR, ConfirmationCallback.YES_NO_OPTION, - ConfirmationCallback.NO); - try - { - handler.handle(new Callback[] { confirm }); - } - catch (Exception x) - { - return false; - } - return confirm.getSelectedIndex() == ConfirmationCallback.YES; - } - - /** - * Update a signature object with a BigInteger, trimming the leading - * "00" octet if present. - * - * @param sig The signature being updated. - * @param bi The integer to feed into the signature. - */ - private void updateSig(ISignature sig, BigInteger bi) - { - byte[] buf = Util.trim(bi); - sig.update((byte) (buf.length >>> 8)); - sig.update((byte) buf.length); - sig.update(buf, 0, buf.length); - } - - /** - * Teardown everything on fatal errors. - */ - private void fatal() throws IOException - { - if (session != null) - { - session.invalidate(); - } -// recordInput.setRunning(false); -// recordOutput.setRunning(false); - if (underlyingSocket != null) - { - underlyingSocket.close(); - } - else - { - super.close(); - } - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactory.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactory.java deleted file mode 100644 index 24a8389c117..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactory.java +++ /dev/null @@ -1,133 +0,0 @@ -/* SSLSocketFactory.java -- factory for SSL sockets. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.IOException; -import java.net.InetAddress; -import java.net.Socket; -import java.net.UnknownHostException; -import java.security.SecureRandom; - -import javax.net.ssl.X509TrustManager; -import javax.net.ssl.X509KeyManager; - -class SSLSocketFactory extends javax.net.ssl.SSLSocketFactory -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final X509TrustManager trustManager; - private final X509KeyManager keyManager; - private final SecureRandom random; - private final SessionContext sessionContext; - - // Constructor. - // ------------------------------------------------------------------------- - - SSLSocketFactory(X509TrustManager trustManager, X509KeyManager keyManager, - SecureRandom random, SessionContext sessionContext) - { - this.trustManager = trustManager; - this.keyManager = keyManager; - this.random = random; - this.sessionContext = sessionContext; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String[] getDefaultCipherSuites() - { - return (String[]) CipherSuite.availableSuiteNames().toArray(new String[0]); - } - - public String[] getSupportedCipherSuites() - { - return getDefaultCipherSuites(); - } - - public Socket createSocket(Socket socket, String host, int port, boolean autoClose) - throws IOException - { - return setup(new SSLSocket(socket, host, port, autoClose)); - } - - public Socket createSocket() throws IOException - { - return setup(new SSLSocket()); - } - - public Socket createSocket(String host, int port) - throws IOException, UnknownHostException - { - return setup(new SSLSocket(host, port)); - } - - public Socket createSocket(String host, int port, InetAddress localAddr, int localPort) - throws IOException, UnknownHostException - { - return setup(new SSLSocket(host, port, localAddr, localPort)); - } - - public Socket createSocket(InetAddress address, int port) throws IOException - { - return setup(new SSLSocket(address, port)); - } - - public Socket createSocket(InetAddress address, int port, - InetAddress localAddr, int localPort) - throws IOException - { - return setup(new SSLSocket(address, port, localAddr, localPort)); - } - - // Own methods. - // ------------------------------------------------------------------------- - - private SSLSocket setup(SSLSocket s) - { - s.setTrustManager(trustManager); - s.setKeyManager(keyManager); - s.setRandom(random); - s.setSessionContext(sessionContext); - s.setUseClientMode(true); - return s; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java new file mode 100644 index 00000000000..6c804f9c629 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java @@ -0,0 +1,137 @@ +/* SSLSocketFactoryImpl.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.UnknownHostException; + +import javax.net.ssl.SSLSocketFactory; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class SSLSocketFactoryImpl extends SSLSocketFactory +{ + /** + * The SSLContextImpl that created us. + */ + private final SSLContextImpl contextImpl; + + public SSLSocketFactoryImpl(SSLContextImpl contextImpl) + { + this.contextImpl = contextImpl; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocketFactory#createSocket(java.net.Socket, java.lang.String, int, boolean) + */ + @Override public Socket createSocket(Socket socket, String host, int port, + boolean autoClose) + throws IOException + { + return new SSLSocketImpl(contextImpl, host, port, socket, autoClose); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocketFactory#getDefaultCipherSuites() + */ + @Override public String[] getDefaultCipherSuites() + { + return SSLEngineImpl.defaultSuites(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocketFactory#getSupportedCipherSuites() + */ + @Override public String[] getSupportedCipherSuites() + { + return CipherSuite.availableSuiteNames().toArray(new String[0]); + } + + /* (non-Javadoc) + * @see javax.net.SocketFactory#createSocket(java.lang.String, int) + */ + @Override public SSLSocketImpl createSocket(String host, int port) + throws IOException, UnknownHostException + { + SSLSocketImpl socket = new SSLSocketImpl(contextImpl, host, port); + InetSocketAddress endpoint = new InetSocketAddress(host, port); + socket.connect(endpoint); + return socket; + } + + /* (non-Javadoc) + * @see javax.net.SocketFactory#createSocket(java.lang.String, int, java.net.InetAddress, int) + */ + @Override public SSLSocketImpl createSocket(String host, int port, + InetAddress localHost, int localPort) + throws IOException, UnknownHostException + { + SSLSocketImpl socket = createSocket(host, port); + socket.bind(new InetSocketAddress(localHost, localPort)); + return socket; + } + + /* (non-Javadoc) + * @see javax.net.SocketFactory#createSocket(java.net.InetAddress, int) + */ + @Override public SSLSocketImpl createSocket(InetAddress host, int port) + throws IOException + { + SSLSocketImpl socket = new SSLSocketImpl(contextImpl, + host.getCanonicalHostName(), port); + socket.connect(new InetSocketAddress(host, port)); + return socket; + } + + /* (non-Javadoc) + * @see javax.net.SocketFactory#createSocket(java.net.InetAddress, int, java.net.InetAddress, int) + */ + @Override public SSLSocketImpl createSocket(InetAddress host, int port, + InetAddress localHost, int localPort) + throws IOException + { + SSLSocketImpl socket = createSocket(host, port); + socket.bind(new InetSocketAddress(localHost, localPort)); + return socket; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java new file mode 100644 index 00000000000..0181b66d854 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java @@ -0,0 +1,833 @@ +/* SSLSocketImpl.java -- implementation of an SSL client socket. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; + +import java.io.DataInputStream; +import java.io.EOFException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.InetAddress; +import java.net.Socket; +import java.net.SocketAddress; +import java.net.SocketException; +import java.nio.ByteBuffer; +import java.nio.channels.SocketChannel; +import java.util.HashSet; +import java.util.Set; + +import javax.net.ssl.HandshakeCompletedEvent; +import javax.net.ssl.HandshakeCompletedListener; +import javax.net.ssl.SSLEngineResult; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLEngineResult.HandshakeStatus; +import javax.net.ssl.SSLEngineResult.Status; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class SSLSocketImpl extends SSLSocket +{ + private class SocketOutputStream extends OutputStream + { + private final ByteBuffer buffer; + private final OutputStream out; + + SocketOutputStream() throws IOException + { + buffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); + if (underlyingSocket != null) + out = underlyingSocket.getOutputStream(); + else + out = SSLSocketImpl.super.getOutputStream(); + } + + @Override public void write(byte[] buf, int off, int len) throws IOException + { + if (!initialHandshakeDone + || engine.getHandshakeStatus() != HandshakeStatus.NOT_HANDSHAKING) + { + doHandshake(); + if (handshakeException != null) + throw handshakeException; + } + + int k = 0; + while (k < len) + { + synchronized (engine) + { + int l = Math.min(len-k, getSession().getApplicationBufferSize()); + ByteBuffer in = ByteBuffer.wrap(buf, off+k, l); + SSLEngineResult result = engine.wrap(in, buffer); + if (result.getStatus() == Status.CLOSED) + return; + if (result.getStatus() != Status.OK) + throw new SSLException("unexpected SSL state " + result.getStatus()); + buffer.flip(); + out.write(buffer.array(), 0, buffer.limit()); + k += result.bytesConsumed(); + buffer.clear(); + } + } + } + + @Override public void write(int b) throws IOException + { + write(new byte[] { (byte) b }); + } + + @Override public void close() throws IOException + { + SSLSocketImpl.this.close(); + } + } + + private class SocketInputStream extends InputStream + { + private final ByteBuffer inBuffer; + private final ByteBuffer appBuffer; + private final DataInputStream in; + + SocketInputStream() throws IOException + { + inBuffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); + inBuffer.limit(0); + appBuffer = ByteBuffer.allocate(getSession().getApplicationBufferSize()); + appBuffer.flip(); + if (underlyingSocket != null) + in = new DataInputStream(underlyingSocket.getInputStream()); + else + in = new DataInputStream(SSLSocketImpl.super.getInputStream()); + } + + @Override public int read(byte[] buf, int off, int len) throws IOException + { + if (!initialHandshakeDone || + engine.getHandshakeStatus() != HandshakeStatus.NOT_HANDSHAKING) + { + doHandshake(); + if (handshakeException != null) + throw handshakeException; + } + + if (!appBuffer.hasRemaining()) + { + int x = in.read(); + if (x == -1) + return -1; + inBuffer.clear(); + inBuffer.put((byte) x); + inBuffer.putInt(in.readInt()); + int reclen = inBuffer.getShort(3) & 0xFFFF; + in.readFully(inBuffer.array(), 5, reclen); + inBuffer.position(0).limit(reclen + 5); + synchronized (engine) + { + appBuffer.clear(); + SSLEngineResult result = engine.unwrap(inBuffer, appBuffer); + Status status = result.getStatus(); + if (status == Status.CLOSED && result.bytesProduced() == 0) + return -1; + } + inBuffer.compact(); + appBuffer.flip(); + } + int l = Math.min(len, appBuffer.remaining()); + appBuffer.get(buf, off, l); + return l; + } + + @Override public int read() throws IOException + { + byte[] b = new byte[1]; + if (read(b) == -1) + return -1; + return b[0] & 0xFF; + } + } + + private static final SystemLogger logger = SystemLogger.getSystemLogger(); + + private SSLEngineImpl engine; + private Set listeners; + private Socket underlyingSocket; + private boolean isHandshaking; + private IOException handshakeException; + private boolean initialHandshakeDone = false; + private final boolean autoClose; + + public SSLSocketImpl(SSLContextImpl contextImpl, String host, int port) + { + this(contextImpl, host, port, null, false); + } + + public SSLSocketImpl(SSLContextImpl contextImpl, String host, int port, + Socket underlyingSocket, boolean autoClose) + { + engine = new SSLEngineImpl(contextImpl, host, port); + engine.setUseClientMode(true); // default to client mode + listeners = new HashSet(); + this.underlyingSocket = underlyingSocket; + this.autoClose = autoClose; + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#addHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener) + */ + @Override + public void addHandshakeCompletedListener(HandshakeCompletedListener listener) + { + listeners.add(listener); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getEnableSessionCreation() + */ + @Override public boolean getEnableSessionCreation() + { + return engine.getEnableSessionCreation(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getEnabledCipherSuites() + */ + @Override public String[] getEnabledCipherSuites() + { + return engine.getEnabledCipherSuites(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getEnabledProtocols() + */ + @Override public String[] getEnabledProtocols() + { + return engine.getEnabledProtocols(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getNeedClientAuth() + */ + @Override public boolean getNeedClientAuth() + { + return engine.getNeedClientAuth(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getSession() + */ + @Override public SSLSession getSession() + { + return engine.getSession(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getSupportedCipherSuites() + */ + @Override public String[] getSupportedCipherSuites() + { + return engine.getSupportedCipherSuites(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getSupportedProtocols() + */ + @Override public String[] getSupportedProtocols() + { + return engine.getSupportedProtocols(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getUseClientMode() + */ + @Override public boolean getUseClientMode() + { + return engine.getUseClientMode(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#getWantClientAuth() + */ + @Override public boolean getWantClientAuth() + { + return engine.getWantClientAuth(); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#removeHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener) + */ + @Override + public void removeHandshakeCompletedListener(HandshakeCompletedListener listener) + { + listeners.remove(listener); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#setEnableSessionCreation(boolean) + */ + @Override public void setEnableSessionCreation(boolean enable) + { + engine.setEnableSessionCreation(enable); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#setEnabledCipherSuites(java.lang.String[]) + */ + @Override public void setEnabledCipherSuites(String[] suites) + { + engine.setEnabledCipherSuites(suites); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#setEnabledProtocols(java.lang.String[]) + */ + @Override public void setEnabledProtocols(String[] protocols) + { + engine.setEnabledProtocols(protocols); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#setNeedClientAuth(boolean) + */ + @Override public void setNeedClientAuth(boolean needAuth) + { + engine.setNeedClientAuth(needAuth); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#setUseClientMode(boolean) + */ + @Override public void setUseClientMode(boolean clientMode) + { + engine.setUseClientMode(clientMode); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#setWantClientAuth(boolean) + */ + @Override public void setWantClientAuth(boolean wantAuth) + { + engine.setWantClientAuth(wantAuth); + } + + /* (non-Javadoc) + * @see javax.net.ssl.SSLSocket#startHandshake() + */ + @Override public void startHandshake() throws IOException + { + if (isHandshaking) + return; + + if (handshakeException != null) + throw handshakeException; + + Thread t = new Thread(new Runnable() + { + public void run() + { + try + { + doHandshake(); + } + catch (IOException ioe) + { + handshakeException = ioe; + } + } + }, "HandshakeThread@" + System.identityHashCode(this)); + t.start(); + } + + void doHandshake() throws IOException + { + synchronized (engine) + { + if (isHandshaking) + { + try + { + engine.wait(); + } + catch (InterruptedException ie) + { + } + return; + } + isHandshaking = true; + } + + if (initialHandshakeDone) + throw new SSLException("rehandshaking not yet implemented"); + + long now = -System.currentTimeMillis(); + engine.beginHandshake(); + + HandshakeStatus status = engine.getHandshakeStatus(); + assert(status != HandshakeStatus.NOT_HANDSHAKING); + + ByteBuffer inBuffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); + inBuffer.position(inBuffer.limit()); + ByteBuffer outBuffer = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); + ByteBuffer emptyBuffer = ByteBuffer.allocate(0); + SSLEngineResult result = null; + + DataInputStream sockIn = null; + if (underlyingSocket != null) + sockIn = new DataInputStream(underlyingSocket.getInputStream()); + else + sockIn = new DataInputStream(super.getInputStream()); + + OutputStream sockOut = null; + if (underlyingSocket != null) + sockOut = underlyingSocket.getOutputStream(); + else + sockOut = super.getOutputStream(); + + try + { + while (status != HandshakeStatus.NOT_HANDSHAKING + && status != HandshakeStatus.FINISHED) + { + logger.logv(Component.SSL_HANDSHAKE, "socket processing state {0}", + status); + + if (inBuffer.capacity() != getSession().getPacketBufferSize()) + { + ByteBuffer b + = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); + if (inBuffer.hasRemaining()) + b.put(inBuffer).flip(); + inBuffer = b; + } + if (outBuffer.capacity() != getSession().getPacketBufferSize()) + outBuffer + = ByteBuffer.wrap(new byte[getSession().getPacketBufferSize()]); + + switch (status) + { + case NEED_UNWRAP: + // Read in a single SSL record. + inBuffer.clear(); + int i = sockIn.read(); + if (i == -1) + throw new EOFException(); + if ((i & 0x80) == 0x80) // SSLv2 client hello. + { + inBuffer.put((byte) i); + int v2len = (i & 0x7f) << 8; + i = sockIn.read(); + v2len = v2len | (i & 0xff); + inBuffer.put((byte) i); + sockIn.readFully(inBuffer.array(), 2, v2len); + inBuffer.position(0).limit(v2len + 2); + } + else + { + inBuffer.put((byte) i); + inBuffer.putInt(sockIn.readInt()); + int reclen = inBuffer.getShort(3) & 0xFFFF; + sockIn.readFully(inBuffer.array(), 5, reclen); + inBuffer.position(0).limit(reclen + 5); + } + result = engine.unwrap(inBuffer, emptyBuffer); + status = result.getHandshakeStatus(); + if (result.getStatus() != Status.OK) + throw new SSLException("unexpected SSL status " + + result.getStatus()); + break; + + case NEED_WRAP: + { + outBuffer.clear(); + result = engine.wrap(emptyBuffer, outBuffer); + status = result.getHandshakeStatus(); + if (result.getStatus() != Status.OK) + throw new SSLException("unexpected SSL status " + + result.getStatus()); + outBuffer.flip(); + sockOut.write(outBuffer.array(), outBuffer.position(), + outBuffer.limit()); + } + break; + + case NEED_TASK: + { + Runnable task; + while ((task = engine.getDelegatedTask()) != null) + task.run(); + status = engine.getHandshakeStatus(); + } + break; + + case FINISHED: + break; + } + } + + initialHandshakeDone = true; + + HandshakeCompletedEvent hce = new HandshakeCompletedEvent(this, getSession()); + for (HandshakeCompletedListener l : listeners) + { + try + { + l.handshakeCompleted(hce); + } + catch (ThreadDeath td) + { + throw td; + } + catch (Throwable x) + { + logger.log(Component.WARNING, + "HandshakeCompletedListener threw exception", x); + } + } + + now += System.currentTimeMillis(); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, + "handshake completed in {0}ms in thread {1}", now, + Thread.currentThread().getName()); + } + catch (SSLException ssle) + { + handshakeException = ssle; + throw ssle; + } + finally + { + synchronized (engine) + { + isHandshaking = false; + engine.notifyAll(); + } + } + } + + // Methods overriding Socket. + + @Override public void bind(SocketAddress bindpoint) throws IOException + { + if (underlyingSocket != null) + underlyingSocket.bind(bindpoint); + else + super.bind(bindpoint); + } + + @Override public void connect(SocketAddress endpoint) throws IOException + { + if (underlyingSocket != null) + underlyingSocket.connect(endpoint); + else + super.connect(endpoint); + } + + @Override public void connect(SocketAddress endpoint, int timeout) + throws IOException + { + if (underlyingSocket != null) + underlyingSocket.connect(endpoint, timeout); + else + super.connect(endpoint, timeout); + } + + @Override public InetAddress getInetAddress() + { + if (underlyingSocket != null) + return underlyingSocket.getInetAddress(); + return super.getInetAddress(); + } + + @Override public InetAddress getLocalAddress() + { + if (underlyingSocket != null) + return underlyingSocket.getLocalAddress(); + return super.getLocalAddress(); + } + + @Override public int getPort() + { + if (underlyingSocket != null) + return underlyingSocket.getPort(); + return super.getPort(); + } + + @Override public int getLocalPort() + { + if (underlyingSocket != null) + return underlyingSocket.getLocalPort(); + return super.getLocalPort(); + } + + @Override public SocketAddress getRemoteSocketAddress() + { + if (underlyingSocket != null) + return underlyingSocket.getRemoteSocketAddress(); + return super.getRemoteSocketAddress(); + } + + public SocketAddress getLocalSocketAddress() + { + if (underlyingSocket != null) + return underlyingSocket.getLocalSocketAddress(); + return super.getLocalSocketAddress(); + } + + @Override public SocketChannel getChannel() + { + throw new UnsupportedOperationException("use javax.net.ssl.SSLEngine for NIO"); + } + + @Override public InputStream getInputStream() throws IOException + { + return new SocketInputStream(); + } + + @Override public OutputStream getOutputStream() throws IOException + { + return new SocketOutputStream(); + } + + @Override public void setTcpNoDelay(boolean on) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setTcpNoDelay(on); + else + super.setTcpNoDelay(on); + } + + @Override public boolean getTcpNoDelay() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getTcpNoDelay(); + return super.getTcpNoDelay(); + } + + @Override public void setSoLinger(boolean on, int linger) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setSoLinger(on, linger); + else + super.setSoLinger(on, linger); + } + + public int getSoLinger() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getSoLinger(); + return super.getSoLinger(); + } + + @Override public void sendUrgentData(int x) throws IOException + { + throw new UnsupportedOperationException("not supported"); + } + + @Override public void setOOBInline(boolean on) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setOOBInline(on); + else + super.setOOBInline(on); + } + + @Override public boolean getOOBInline() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getOOBInline(); + return super.getOOBInline(); + } + + @Override public void setSoTimeout(int timeout) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setSoTimeout(timeout); + else + super.setSoTimeout(timeout); + } + + @Override public int getSoTimeout() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getSoTimeout(); + return super.getSoTimeout(); + } + + @Override public void setSendBufferSize(int size) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setSendBufferSize(size); + else + super.setSendBufferSize(size); + } + + @Override public int getSendBufferSize() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getSendBufferSize(); + return super.getSendBufferSize(); + } + + @Override public void setReceiveBufferSize(int size) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setReceiveBufferSize(size); + else + underlyingSocket.setReceiveBufferSize(size); + } + + @Override public int getReceiveBufferSize() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getReceiveBufferSize(); + return super.getReceiveBufferSize(); + } + + @Override public void setKeepAlive(boolean on) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setKeepAlive(on); + else + super.setKeepAlive(on); + } + + @Override public boolean getKeepAlive() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getKeepAlive(); + return super.getKeepAlive(); + } + + @Override public void setTrafficClass(int tc) throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setTrafficClass(tc); + else + super.setTrafficClass(tc); + } + + @Override public int getTrafficClass() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getTrafficClass(); + return super.getTrafficClass(); + } + + @Override public void setReuseAddress(boolean reuseAddress) + throws SocketException + { + if (underlyingSocket != null) + underlyingSocket.setReuseAddress(reuseAddress); + else + super.setReuseAddress(reuseAddress); + } + + @Override public boolean getReuseAddress() throws SocketException + { + if (underlyingSocket != null) + return underlyingSocket.getReuseAddress(); + return super.getReuseAddress(); + } + + @Override public void close() throws IOException + { + // XXX closure alerts. + if (underlyingSocket != null && autoClose) + underlyingSocket.close(); + else + super.close(); + } + + @Override public void shutdownInput() throws IOException + { + if (underlyingSocket != null) + underlyingSocket.shutdownInput(); + else + super.shutdownInput(); + } + + @Override public void shutdownOutput() throws IOException + { + if (underlyingSocket != null) + underlyingSocket.shutdownOutput(); + else + super.shutdownOutput(); + } + + @Override public boolean isConnected() + { + if (underlyingSocket != null) + return underlyingSocket.isConnected(); + return super.isConnected(); + } + + @Override public boolean isBound() + { + if (underlyingSocket != null) + return underlyingSocket.isBound(); + return super.isBound(); + } + + @Override public boolean isClosed() + { + if (underlyingSocket != null) + return underlyingSocket.isClosed(); + return super.isClosed(); + } + + @Override public boolean isInputShutdown() + { + if (underlyingSocket != null) + return underlyingSocket.isInputShutdown(); + return super.isInputShutdown(); + } + + @Override public boolean isOutputShutdown() + { + if (underlyingSocket != null) + return underlyingSocket.isOutputShutdown(); + return super.isOutputShutdown(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketInputStream.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketInputStream.java deleted file mode 100644 index 69202ca33d8..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketInputStream.java +++ /dev/null @@ -1,181 +0,0 @@ -/* SSLSocketInputStream.java -- InputStream for SSL sockets. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.EOFException; -import java.io.FilterInputStream; -import java.io.InputStream; -import java.io.IOException; -import javax.net.ssl.SSLException; - -class SSLSocketInputStream extends FilterInputStream -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final SSLSocket socket; - private final boolean checkHandshake; - - // Constructors. - // ------------------------------------------------------------------------- - - SSLSocketInputStream(InputStream in, SSLSocket socket) - { - this(in, socket, true); - } - - SSLSocketInputStream(InputStream in, SSLSocket socket, boolean checkHandshake) - { - super(in); - this.socket = socket; - this.checkHandshake = checkHandshake; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public int available() throws IOException - { - if (checkHandshake) - { - socket.checkHandshakeDone(); - } - int ret = 0; - try - { - ret = super.available(); - } - catch (AlertException ae) - { - Alert alert = ae.getAlert (); - if (alert.getDescription () == Alert.Description.CLOSE_NOTIFY) - { - return -1; - } - else - { - throw ae; - } - } - return ret; - } - - public int read() throws IOException - { - if (checkHandshake) - { - socket.checkHandshakeDone(); - } - int ret = 0; - try - { - ret = in.read(); - } - catch (AlertException ae) - { - Alert alert = ae.getAlert (); - if (alert.getDescription () == Alert.Description.CLOSE_NOTIFY) - { - return -1; - } - else - { - throw ae; - } - } - return ret; - } - - public int read(byte[] buf) throws IOException - { - return read(buf, 0, buf.length); - } - - public int read(byte[] buf, int off, int len) throws IOException - { - if (checkHandshake) - { - socket.checkHandshakeDone(); - } - if (buf == null) - { - throw new NullPointerException(); - } - if (off < 0 || len < 0 || off + len > buf.length) - { - throw new ArrayIndexOutOfBoundsException(); - } - int ret = 0; - try - { - ret = in.read(buf, off, len); - } - catch (AlertException ae) - { - Alert alert = ae.getAlert (); - if (alert.getDescription () == Alert.Description.CLOSE_NOTIFY) - { - return -1; - } - else - { - throw ae; - } - } - return ret; - } - - // Own methods. - // ------------------------------------------------------------------------- - - private boolean checkAlert() throws IOException - { - Alert alert = socket.checkAlert(); - if (alert == null) return false; - if (alert.getLevel().equals(Alert.Level.FATAL)) - throw new AlertException(alert, false); - if (alert.getDescription().equals(Alert.Description.CLOSE_NOTIFY)) - { - try { return (in.available() <= 0); } - catch (IOException ioe) { } - } - return false; - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketOutputStream.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketOutputStream.java deleted file mode 100644 index fe769a85fba..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLSocketOutputStream.java +++ /dev/null @@ -1,115 +0,0 @@ -/* SSLSocketOutputStream.java -- output stream for SSL sockets. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.FilterOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import javax.net.ssl.SSLException; - -class SSLSocketOutputStream extends FilterOutputStream -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final SSLSocket socket; - private final boolean checkHandshake; - - // Constructor. - // ------------------------------------------------------------------------- - - SSLSocketOutputStream(OutputStream out, SSLSocket socket) - { - this(out, socket, true); - } - - SSLSocketOutputStream(OutputStream out, SSLSocket socket, - boolean checkHandshake) - { - super(out); - this.socket = socket; - this.checkHandshake = checkHandshake; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(int b) throws IOException - { - if (checkHandshake) - { - socket.checkHandshakeDone(); - } - checkAlert(); - out.write(b); - checkAlert(); - } - - public void write(byte[] buf) throws IOException - { - write(buf, 0, buf.length); - } - - public void write(byte[] buf, int off, int len) throws IOException - { - if (checkHandshake) - { - socket.checkHandshakeDone(); - } - if (buf == null) - throw new NullPointerException(); - if (off < 0 || len < 0 || off + len > buf.length) - throw new ArrayIndexOutOfBoundsException(); - checkAlert(); - out.write(buf, off, len); - checkAlert(); - } - - // Own methods. - // ------------------------------------------------------------------------- - - private synchronized void checkAlert() throws SSLException - { - Alert alert = socket.checkAlert(); - if (alert == null) return; - if (alert.getLevel().equals(Alert.Level.FATAL)) - throw new AlertException(alert, false); - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java new file mode 100644 index 00000000000..763bbaf3b77 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java @@ -0,0 +1,116 @@ +/* SSLv3HMacMD5.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.spec.AlgorithmParameterSpec; +import java.util.Collections; +import java.util.Map; + +import javax.crypto.MacSpi; +import javax.crypto.SecretKey; + +/** + * @author csm + */ +public class SSLv3HMacMD5Impl extends MacSpi +{ + private final SSLHMac adaptee; + + public SSLv3HMacMD5Impl() + { + adaptee = new SSLHMac("MD5"); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineDoFinal() + */ + @Override protected byte[] engineDoFinal() + { + return adaptee.digest(); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineGetMacLength() + */ + @Override protected int engineGetMacLength() + { + return adaptee.macSize(); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec) + */ + @Override protected void engineInit(Key key, AlgorithmParameterSpec params) + throws InvalidAlgorithmParameterException, InvalidKeyException + { + if (!(key instanceof SecretKey) + || !key.getAlgorithm().equalsIgnoreCase("SSLv3HMac-MD5")) + throw new InvalidKeyException("expecting secret key with algorithm \"SSLv3HMac-MD5\""); + Map attr = + Collections.singletonMap(SSLHMac.MAC_KEY_MATERIAL, key.getEncoded()); + adaptee.init(attr); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineReset() + */ + @Override protected void engineReset() + { + adaptee.reset(); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineUpdate(byte) + */ + @Override protected void engineUpdate(byte input) + { + adaptee.update(input); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineUpdate(byte[], int, int) + */ + @Override protected void engineUpdate(byte[] input, int offset, int length) + { + adaptee.update(input, offset, length); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java new file mode 100644 index 00000000000..008a21c049d --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java @@ -0,0 +1,116 @@ +/* SSLv3HMacSHA.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.spec.AlgorithmParameterSpec; +import java.util.Collections; +import java.util.Map; + +import javax.crypto.MacSpi; +import javax.crypto.SecretKey; + +/** + * @author csm + */ +public class SSLv3HMacSHAImpl extends MacSpi +{ + private final SSLHMac adaptee; + + public SSLv3HMacSHAImpl() + { + adaptee = new SSLHMac("SHA-160"); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineDoFinal() + */ + @Override protected byte[] engineDoFinal() + { + return adaptee.digest(); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineGetMacLength() + */ + @Override protected int engineGetMacLength() + { + return adaptee.macSize(); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineInit(java.security.Key, java.security.spec.AlgorithmParameterSpec) + */ + @Override protected void engineInit(Key key, AlgorithmParameterSpec params) + throws InvalidAlgorithmParameterException, InvalidKeyException + { + if (!(key instanceof SecretKey) + || !key.getAlgorithm().equalsIgnoreCase("SSLv3HMac-SHA")) + throw new InvalidKeyException("expecting secret key with algorithm \"SSLv3HMac-SHA\""); + Map attr = + Collections.singletonMap(SSLHMac.MAC_KEY_MATERIAL, key.getEncoded()); + adaptee.init(attr); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineReset() + */ + @Override protected void engineReset() + { + adaptee.reset(); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineUpdate(byte) + */ + @Override protected void engineUpdate(byte input) + { + adaptee.update(input); + } + + /* (non-Javadoc) + * @see javax.crypto.MacSpi#engineUpdate(byte[], int, int) + */ + @Override protected void engineUpdate(byte[] input, int offset, int length) + { + adaptee.update(input, offset, length); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/SecurityParameters.java deleted file mode 100644 index aa06680e200..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SecurityParameters.java +++ /dev/null @@ -1,178 +0,0 @@ -/* SecurityParameters.java -- SSL security parameters. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import javax.net.ssl.SSLException; - -/** - * The interface that all security parameters used by Jessie must implement. - * Security parameters handle all transforming of data, including encryption, - * authentication, and compression. - */ -interface SecurityParameters -{ - - // Methods. - // ------------------------------------------------------------------------- - - /** - * Decrypts, verifies, and inflates a fragment received. The fragment is - * just the data field of a text object, without the version, type, and - * length fields. An exception is thrown if any step fails. - * - * @param fragment The fragment being decrypted. - * @param version The version field of the received text. - * @param type The type field of the received text. - * @return The decrypted fragment. - * @throws MacException If the MAC could not be verified, or if the padding - * on the decrypted fragment is incorrect. - * @throws OverflowException If the processed text overflows the configured - * maximum fragment size. - * @throws SSLException If any other error occurs. - */ - byte[] decrypt (byte[] fragment, ProtocolVersion version, ContentType type) - throws MacException, OverflowException, SSLException; - - /** - * Deflates, authenticates, and encrypts a fragment to be sent. - * - * @param buf The fragment being encrypted. - * @param off The offset into the buffer to start at. - * @param len The number of bytes in this fragment. - * @param type The content type of this text. - * @return The encrypted fragment. - * @throws OverflowException If deflating increases the size of the fragment - * too much. - * @throws SSLException If any other error occurs. - */ - byte[] encrypt (byte[] buf, int off, int len, ContentType type) - throws OverflowException, SSLException; - - /** - * Set all crypto primitives to null, meaning that any calls - * to {@link #encrypt(byte[],int,int,org.metastatic.jessie.provider.ContentType)} or - * {@link #decrypt(byte[],org.metastatic.jessie.provider.ProtocolVersion,org.metastatic.jessie.provider.ContentType}) - * will perform the identity transformation. - */ - void reset(); - - /** - * Returns the version of texts being sent. - * - * @return The version. - */ - ProtocolVersion getVersion(); - - /** - * Sets the version of texts being sent. This affects the {@link - * #encrypt(byte[],int,int,org.metastatic.jessie.provider.ContentType)} - * method. - * - * @param version The version to set. - */ - void setVersion (ProtocolVersion version); - - /** - * Turns zlib deflating on or off. - * - * @param deflate Whether or not to deflate outgoing fragments. - */ - void setDeflating (boolean deflate); - - /** - * Turns zlib inflating on or off. - * - * @param inflate Whether or not to inflate incoming fragments. - */ - void setInflating (boolean inflate); - - /** - * Returns the maximum size that plaintext fragments may be. - * - * @return The fragment length. - */ - int getFragmentLength(); - - /** - * Sets the maximum size that plaintext fragments may be. - * - * @param fragmentLength The new fragment length. - */ - void setFragmentLength (int fragmentLength); - - /** - * Set the cipher used to decrypt incoming fragments. The parameter must be - * appropriate for the implementation. - * - * @param cipher The cipher. - * @throws ClassCastException If the argument is not appropriate for the - * implementation. - */ - void setInCipher (Object cipher); - - /** - * Set the cipher used to encrypt outgoing fragments. The parameter must be - * appropriate for the implementation. - * - * @param cipher The cipher. - * @throws ClassCastException If the argument is not appropriate for the - * implementation. - */ - void setOutCipher (Object cipher); - - /** - * Set the MAC used to verify incoming fragments. The parameter must be - * appropriate for the implementation. - * - * @param mac The MAC. - * @throws ClassCastException If the argument is not appropriate for the - * implementation. - */ - void setInMac (Object mac); - - /** - * Set the MAC used to authenticating outgoinging fragments. The parameter - * must be appropriate for the implementation. - * - * @param mac The MAC. - * @throws ClassCastException If the argument is not appropriate for the - * implementation. - */ - void setOutMac (Object mac); -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java new file mode 100644 index 00000000000..edc3ac259cb --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java @@ -0,0 +1,151 @@ +/* ServerDHE_PSKParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.classpath.debug.Component; +import gnu.classpath.debug.SystemLogger; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.charset.Charset; + +/** + *
    +      struct {
    +          select (KeyExchangeAlgorithm) {
    +              /* other cases for rsa, diffie_hellman, etc. */
    +              case diffie_hellman_psk:  /* NEW */
    +                  opaque psk_identity_hint<0..2^16-1>;
    +                  ServerDHParams params;
    +          };
    +      } ServerKeyExchange;
    + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ServerDHE_PSKParameters implements Constructed, Builder, ServerKeyExchangeParams +{ + private ByteBuffer buffer; + + public ServerDHE_PSKParameters(ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + public ServerDHE_PSKParameters(String identityHint, ServerDHParams dhParams) + { + this(identityHint, dhParams.buffer()); + } + + public ServerDHE_PSKParameters(String identityHint, ByteBuffer dhParams) + { + Charset utf8 = Charset.forName("UTF-8"); + ByteBuffer hintBuf = utf8.encode(identityHint); + buffer = ByteBuffer.allocate(2 + hintBuf.remaining() + dhParams.remaining()); + buffer.putShort((short) hintBuf.remaining()); + buffer.put(hintBuf); + buffer.put(dhParams); + } + + public KeyExchangeAlgorithm algorithm() + { + return KeyExchangeAlgorithm.DHE_PSK; + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#length() + */ + public int length() + { + return (buffer.getShort(0) & 0xFFFF) + 2 + params().length(); + } + + private int hintLength() + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + + public String identityHint() + { + Charset utf8 = Charset.forName("UTF-8"); + return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit + (hintLength())).toString(); + } + + public ServerDHParams params() + { + return new ServerDHParams(((ByteBuffer) buffer.duplicate().position + (hintLength()).limit(buffer.capacity())).slice()); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().rewind().limit(length()); + } + + public @Override String toString() + { + return toString(null); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) + */ + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.print(" identity_hint = "); + out.print(identityHint()); + out.println(";"); + if (prefix != null) out.print(prefix); + out.println(" params ="); + out.println(params().toString(prefix != null ? prefix + " " : " ")); + if (prefix != null) out.print(prefix); + out.print("} ServerDHE_PSKParameters;"); + return str.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java new file mode 100644 index 00000000000..55d4a41da94 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHParams.java @@ -0,0 +1,248 @@ +/* ServerDHParams.java -- The server's Diffie-Hellman parameters. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.math.BigInteger; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * The server's Diffie-Hellman parameters message. + * + *
    +struct
    +{
    +  opaque dh_p<1..2^16-1>;
    +  opaque dh_g<1..2^16-1>;
    +  opaque dh_Ys<1..2^16-1>;
    +} ServerDHParams;
    +
    + */ +public class ServerDHParams implements Builder, ServerKeyExchangeParams +{ + private final ByteBuffer buffer; + + public ServerDHParams (final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + public ServerDHParams (final BigInteger p, final BigInteger g, + final BigInteger y) + { + byte[] p_bytes = p.toByteArray(); + byte[] g_bytes = g.toByteArray(); + byte[] y_bytes = y.toByteArray(); + int len = p_bytes.length + g_bytes.length + y_bytes.length + 6; + + int p_off = 0; + if (p_bytes[0] == 0x00) + { + p_off = 1; + len--; + } + int g_off = 0; + if (g_bytes[0] == 0x00) + { + g_off = 1; + len--; + } + int y_off = 0; + if (y_bytes[0] == 0x00) + { + y_off = 1; + len--; + } + int p_len = p_bytes.length - p_off; + int g_len = g_bytes.length - g_off; + int y_len = y_bytes.length - y_off; + + buffer = ByteBuffer.allocate(len); + buffer.putShort((short) p_len); + buffer.put(p_bytes, p_off, p_len); + buffer.putShort((short) g_len); + buffer.put(g_bytes, g_off, g_len); + buffer.putShort((short) y_len); + buffer.put(y_bytes, y_off, y_len); + } + + @Deprecated public KeyExchangeAlgorithm algorithm () + { + return null; // XXX can't support this. + } + + public int length () + { + int offset1 = buffer.getShort (0) & 0xFFFF; + int offset2 = buffer.getShort (offset1 + 2) & 0xFFFF; + return ((buffer.getShort (offset1 + offset2 + 4) & 0xFFFF) + + offset1 + offset2 + 6); + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().position(0).limit(length()); + } + + /** + * Returns the server's prime modulus. + * + * @return p. + */ + public BigInteger p () + { + int len = buffer.getShort (0) & 0xFFFF; + byte[] buf = new byte[len]; + buffer.position (2); + buffer.get (buf); + return new BigInteger (1, buf); + } + + /** + * Returns the server's generator value. + * + * @return g. + */ + public BigInteger g () + { + int off = (buffer.getShort (0) & 0xFFFF) + 2; + int len = buffer.getShort (off) & 0xFFFF; + byte[] buf = new byte[len]; + buffer.position (off + 2); + buffer.get (buf); + return new BigInteger (1, buf); + } + + /** + * Returns the server's public value. + * + * @return Y. + */ + public BigInteger y () + { + int offset1 = (buffer.getShort (0) & 0xFFFF) + 2; + int offset2 = (buffer.getShort (offset1) & 0xFFFF) + offset1 + 2; + int len = buffer.getShort (offset2) & 0xFFFF; + byte[] buf = new byte[len]; + buffer.position (offset2 + 2); + buffer.get (buf); + return new BigInteger (1, buf); + } + + /** + * Sets the server's prime modulus, p. + * + * @param p The p parameter. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writeable. + */ + public void setP (final BigInteger p) + { + byte[] buf = p.toByteArray (); + int length = (buf[0] == 0x00 ? buf.length - 1 : buf.length); + int offset = (buf[0] == 0x00 ? 1 : 0); + buffer.putShort (0, (short) length); + buffer.position (2); + buffer.put (buf, offset, length); + } + + /** + * Sets the server's generator value, g. + * + * @param g The g parameter. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writeable. + */ + public void setG (final BigInteger g) + { + byte[] buf = g.toByteArray (); + int length = (buf[0] == 0x00 ? buf.length -1 : buf.length); + int offset = (buf[0] == 0x00 ? 1 : 0); + int where = (buffer.getShort (0) & 0xFFFF) + 2; + buffer.putShort (where, (short) length); + buffer.position (where + 2); + buffer.put (buf, offset, length); + } + + /** + * Sets the server's public value, Y. + * + * @param y The Y parameter. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writeable. + */ + public void setY (final BigInteger y) + { + int offset1 = (buffer.getShort (0) & 0xFFFF) + 2; + int offset2 = (buffer.getShort (offset1) & 0xFFFF) + offset1 + 2; + byte[] buf = y.toByteArray (); + int length = (buf[0] == 0x00 ? buf.length -1 : buf.length); + int offset = (buf[0] == 0x00 ? 1 : 0); + buffer.putShort (offset2, (short) length); + buffer.position (offset2 + 2); + buffer.put (buf, offset, length); + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) out.print (prefix); + out.println ("struct {"); + if (prefix != null) out.print (prefix); + out.print (" dh_p: "); + out.println (p ().toString (16)); + if (prefix != null) out.print (prefix); + out.print (" dh_g: "); + out.println (g ().toString (16)); + if (prefix != null) out.print (prefix); + out.print (" dh_Ys: "); + out.println (y ().toString (16)); + if (prefix != null) out.print (prefix); + out.print ("} ServerDHParams;"); + return str.toString (); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java new file mode 100644 index 00000000000..300012a4b30 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java @@ -0,0 +1,1377 @@ +/* ServerHandshake.java -- the server-side handshake. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import static gnu.javax.net.ssl.provider.Handshake.Type.*; +import static gnu.javax.net.ssl.provider.KeyExchangeAlgorithm.*; +import static gnu.javax.net.ssl.provider.ServerHandshake.State.*; + +import gnu.classpath.debug.Component; +import gnu.java.security.action.GetSecurityPropertyAction; +import gnu.javax.crypto.key.dh.GnuDHPublicKey; +import gnu.javax.net.ssl.AbstractSessionContext; +import gnu.javax.net.ssl.Session; +import gnu.javax.net.ssl.provider.Alert.Description; +import gnu.javax.net.ssl.provider.CertificateRequest.ClientCertificateType; + +import java.nio.ByteBuffer; + +import java.security.AccessController; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.KeyManagementException; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.Principal; +import java.security.PrivateKey; +import java.security.SignatureException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.logging.Level; +import java.util.zip.Deflater; +import java.util.zip.Inflater; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.interfaces.DHPrivateKey; +import javax.crypto.interfaces.DHPublicKey; +import javax.crypto.spec.DHParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLPeerUnverifiedException; +import javax.net.ssl.SSLSession; +import javax.net.ssl.X509ExtendedKeyManager; +import javax.net.ssl.SSLEngineResult.HandshakeStatus; +import javax.security.auth.x500.X500Principal; + +class ServerHandshake extends AbstractHandshake +{ + /** + * Handshake state enumeration. + */ + static enum State + { + WRITE_HELLO_REQUEST (true, false), + WRITE_SERVER_HELLO (true, false), + WRITE_CERTIFICATE (true, false), + WRITE_SERVER_KEY_EXCHANGE (true, false), + WRITE_CERTIFICATE_REQUEST (true, false), + WRITE_SERVER_HELLO_DONE (true, false), + WRITE_FINISHED (true, false), + READ_CLIENT_HELLO (false, true), + READ_CERTIFICATE (false, true), + READ_CLIENT_KEY_EXCHANGE (false, true), + READ_CERTIFICATE_VERIFY (false, true), + READ_FINISHED (false, true), + DONE (false, false); + + private final boolean isWriteState; + private final boolean isReadState; + + private State(final boolean isWriteState, final boolean isReadState) + { + this.isWriteState = isWriteState; + this.isReadState = isReadState; + } + + boolean isReadState() + { + return isReadState; + } + + boolean isWriteState() + { + return isWriteState; + } + } + + private State state; + + /* Handshake result fields. */ + private ByteBuffer outBuffer; + private boolean clientHadExtensions = false; + private boolean continuedSession = false; + private ServerNameList requestedNames = null; + private String keyAlias = null; + private X509Certificate clientCert = null; + private X509Certificate localCert = null; + private boolean helloV2 = false; + private KeyPair dhPair; + private PrivateKey serverKey; + + // Delegated tasks we use. + private GenDH genDH; + private CertVerifier certVerifier; + private CertLoader certLoader; + private DelegatedTask keyExchangeTask; + + ServerHandshake (boolean writeHelloRequest, final SSLEngineImpl engine) + throws NoSuchAlgorithmException + { + super(engine); + if (writeHelloRequest) + state = WRITE_HELLO_REQUEST; + else + state = READ_CLIENT_HELLO; + handshakeOffset = 0; + } + + /** + * Choose the protocol version. Here we choose the largest protocol + * version we support that is not greater than the client's + * requested version. + */ + private static ProtocolVersion chooseProtocol (final ProtocolVersion clientVersion, + final String[] enabledVersions) + throws SSLException + { + ProtocolVersion version = null; + for (int i = 0; i < enabledVersions.length; i++) + { + ProtocolVersion v = ProtocolVersion.forName (enabledVersions[i]); + if (v.compareTo (clientVersion) <= 0) + { + if (version == null + || v.compareTo (version) > 0) + version = v; + } + } + + // The client requested a protocol version too old, or no protocol + // versions are enabled. + if (version == null) + throw new SSLException ("no acceptable protocol version available"); + return version; + } + + /** + * Choose the first cipher suite in the client's requested list that + * we have enabled. + */ + private CipherSuite chooseSuite (final CipherSuiteList clientSuites, + final String[] enabledSuites, + final ProtocolVersion version) + throws SSLException + { + // Figure out which SignatureAlgorithms we can support. + HashSet kexes = new HashSet(8); + + kexes.add(NONE); + X509ExtendedKeyManager km = engine.contextImpl.keyManager; + if (km != null) + { + if (km.getServerAliases(DH_DSS.name(), null).length > 0) + kexes.add(DH_DSS); + if (km.getServerAliases(DH_RSA.name(), null).length > 0) + kexes.add(DH_RSA); + if (km.getServerAliases(DHE_DSS.name(), null).length > 0) + kexes.add(DHE_DSS); + if (km.getServerAliases(DHE_RSA.name(), null).length > 0) + kexes.add(DHE_RSA); + if (km.getServerAliases(RSA.name(), null).length > 0) + kexes.add(RSA); + if (km.getServerAliases(RSA_PSK.name(), null).length > 0 + && engine.contextImpl.pskManager != null) + kexes.add(RSA_PSK); + } + if (engine.contextImpl.pskManager != null) + { + kexes.add(DHE_PSK); + kexes.add(PSK); + } + + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, + "we have certs for key exchange algorithms {0}", kexes); + + HashSet suites = new HashSet(); + for (String s : enabledSuites) + { + CipherSuite suite = CipherSuite.forName(s); + if (suite == null) + continue; + if (!kexes.contains(suite.keyExchangeAlgorithm())) + continue; + suites.add(suite); + } + for (CipherSuite suite : clientSuites) + { + CipherSuite resolved = suite.resolve(); + if (!resolved.isResolved()) + continue; + if (suites.contains(resolved)) + return resolved; + } + + // We didn't find a match? + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.INSUFFICIENT_SECURITY)); + } + + /** + * Choose a compression method that we support, among the client's + * requested compression methods. We prefer ZLIB over NONE in this + * implementation. + * + * XXX Maybe consider implementing lzo (GNUTLS supports that). + */ + private static CompressionMethod chooseCompression (final CompressionMethodList comps) + throws SSLException + { + GetSecurityPropertyAction gspa + = new GetSecurityPropertyAction("jessie.enable.compression"); + String enable = AccessController.doPrivileged(gspa); + // Scan for ZLIB first. + if (Boolean.valueOf(enable)) + { + for (CompressionMethod cm : comps) + { + if (cm.equals (CompressionMethod.ZLIB)) + return CompressionMethod.ZLIB; + } + } + for (CompressionMethod cm : comps) + { + if (cm.equals (CompressionMethod.NULL)) + return CompressionMethod.NULL; + } + + throw new SSLException ("no supported compression method"); + } + + protected @Override boolean doHash() + { + boolean b = helloV2; + helloV2 = false; + return (state != WRITE_HELLO_REQUEST) && !b; + } + + public @Override HandshakeStatus implHandleInput() + throws SSLException + { + if (state == DONE) + return HandshakeStatus.FINISHED; + + if (state.isWriteState() + || (outBuffer != null && outBuffer.hasRemaining())) + return HandshakeStatus.NEED_WRAP; + + // Copy the current buffer, and prepare it for reading. + ByteBuffer buffer = handshakeBuffer.duplicate (); + buffer.flip(); + buffer.position(handshakeOffset); + Handshake handshake = new Handshake(buffer.slice(), + engine.session().suite, + engine.session().version); + + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "processing in state {0}:\n{1}", + state, handshake); + + switch (state) + { + // Client Hello. + // + // This message is sent by the client to initiate a new handshake. + // On a new connection, it is the first handshake message sent. + // + // The state of the handshake, after this message is processed, + // will have a protocol version, cipher suite, compression method, + // session ID, and various extensions (that the server also + // supports). + case READ_CLIENT_HELLO: + if (handshake.type () != CLIENT_HELLO) + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.UNEXPECTED_MESSAGE)); + + { + ClientHello hello = (ClientHello) handshake.body (); + engine.session().version + = chooseProtocol (hello.version (), + engine.getEnabledProtocols ()); + engine.session().suite = + chooseSuite (hello.cipherSuites (), + engine.getEnabledCipherSuites (), + engine.session().version); + compression = chooseCompression (hello.compressionMethods ()); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, + "chose version:{0} suite:{1} compression:{2}", + engine.session().version, engine.session().suite, + compression); + clientRandom = hello.random().copy(); + byte[] sessionId = hello.sessionId(); + if (hello.hasExtensions()) + { + ExtensionList exts = hello.extensions(); + clientHadExtensions = exts.size() > 0; + for (Extension e : hello.extensions()) + { + Extension.Type type = e.type(); + if (type == null) + continue; + switch (type) + { + case TRUNCATED_HMAC: + engine.session().setTruncatedMac(true); + break; + + case MAX_FRAGMENT_LENGTH: + MaxFragmentLength len = (MaxFragmentLength) e.value(); + engine.session().maxLength = len; + engine.session().setApplicationBufferSize(len.maxLength()); + break; + + case SERVER_NAME: + requestedNames = (ServerNameList) e.value(); + List names + = new ArrayList(requestedNames.size()); + for (ServerNameList.ServerName name : requestedNames) + names.add(name.name()); + engine.session().putValue("gnu.javax.net.ssl.RequestedServerNames", names); + break; + + default: + logger.log(Level.INFO, "skipping unsupported extension {0}", e); + } + } + } + AbstractSessionContext sessions = (AbstractSessionContext) + engine.contextImpl.engineGetServerSessionContext(); + SSLSession s = sessions.getSession(sessionId); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "looked up saved session {0}", s); + if (s != null && s.isValid() && (s instanceof SessionImpl)) + { + engine.setSession((SessionImpl) s); + continuedSession = true; + } + else + { + // We *may* wind up with a badly seeded PRNG, and emit the + // same session ID over and over (this did happen to me, + // so we add this sanity check just in case). + if (engine.session().id().equals(new Session.ID(sessionId))) + { + byte[] newId = new byte[32]; + engine.session().random().nextBytes(newId); + engine.session().setId(new Session.ID(newId)); + } + sessions.put(engine.session()); + } + state = WRITE_SERVER_HELLO; + } + break; + + // Certificate. + // + // This message is sent by the client if the server had previously + // requested that the client authenticate itself with a certificate, + // and if the client has an appropriate certificate available. + // + // Processing this message will save the client's certificate, + // rejecting it if the certificate is not trusted, in preparation + // for the certificate verify message that will follow. + case READ_CERTIFICATE: + { + if (handshake.type() != CERTIFICATE) + { + if (engine.getNeedClientAuth()) // XXX throw better exception. + throw new SSLException("client auth required"); + state = READ_CLIENT_KEY_EXCHANGE; + return HandshakeStatus.NEED_UNWRAP; + } + + Certificate cert = (Certificate) handshake.body(); + try + { + engine.session().setPeerVerified(false); + X509Certificate[] chain + = cert.certificates().toArray(new X509Certificate[0]); + if (chain.length == 0) + throw new CertificateException("no certificates in chain"); + certVerifier = new CertVerifier(false, chain); + tasks.add(certVerifier); + engine.session().setPeerCertificates(chain); + clientCert = chain[0]; + // Delay setting 'peerVerified' until CertificateVerify. + } + catch (CertificateException ce) + { + if (engine.getNeedClientAuth()) + { + SSLPeerUnverifiedException x + = new SSLPeerUnverifiedException("client certificates could not be verified"); + x.initCause(ce); + throw x; + } + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + state = READ_CLIENT_KEY_EXCHANGE; + } + break; + + // Client Key Exchange. + // + // The client's key exchange. This message is sent either following + // the certificate message, or if no certificate is available or + // requested, following the server's hello done message. + // + // After receipt of this message, the session keys for this + // session will have been created. + case READ_CLIENT_KEY_EXCHANGE: + { + if (handshake.type() != CLIENT_KEY_EXCHANGE) + throw new SSLException("expecting client key exchange"); + ClientKeyExchange kex = (ClientKeyExchange) handshake.body(); + + KeyExchangeAlgorithm alg = engine.session().suite.keyExchangeAlgorithm(); + switch (alg) + { + case DHE_DSS: + case DHE_RSA: + case DH_anon: + { + ClientDiffieHellmanPublic pub = (ClientDiffieHellmanPublic) + kex.exchangeKeys(); + DHPublicKey myKey = (DHPublicKey) dhPair.getPublic(); + DHPublicKey clientKey = + new GnuDHPublicKey(null, myKey.getParams().getP(), + myKey.getParams().getG(), + pub.publicValue()); + keyExchangeTask = new DHPhase(clientKey); + tasks.add(keyExchangeTask); + } + break; + + case RSA: + { + EncryptedPreMasterSecret secret = (EncryptedPreMasterSecret) + kex.exchangeKeys(); + keyExchangeTask = new RSAKeyExchange(secret.encryptedSecret()); + tasks.add(keyExchangeTask); + } + break; + + case PSK: + { + ClientPSKParameters params = (ClientPSKParameters) + kex.exchangeKeys(); + generatePSKSecret(params.identity(), null, false); + } + break; + + case DHE_PSK: + { + ClientDHE_PSKParameters params = (ClientDHE_PSKParameters) + kex.exchangeKeys(); + DHPublicKey serverKey = (DHPublicKey) dhPair.getPublic(); + DHPublicKey clientKey = + new GnuDHPublicKey(null, serverKey.getParams().getP(), + serverKey.getParams().getG(), + params.params().publicValue()); + SecretKey psk = null; + try + { + psk = engine.contextImpl.pskManager.getKey(params.identity()); + } + catch (KeyManagementException kme) + { + } + keyExchangeTask = new DHE_PSKGen(clientKey, psk, false); + tasks.add(keyExchangeTask); + } + break; + + case RSA_PSK: + { + ClientRSA_PSKParameters params = (ClientRSA_PSKParameters) + kex.exchangeKeys(); + SecretKey psk = null; + try + { + psk = engine.contextImpl.pskManager.getKey(params.identity()); + } + catch (KeyManagementException kme) + { + } + if (psk == null) + { + byte[] fakeKey = new byte[16]; + engine.session().random().nextBytes(fakeKey); + psk = new SecretKeySpec(fakeKey, "DHE_PSK"); + } + keyExchangeTask = + new RSA_PSKExchange(params.secret().encryptedSecret(), psk); + tasks.add(keyExchangeTask); + } + break; + + case NONE: + { + Inflater inflater = null; + Deflater deflater = null; + if (compression == CompressionMethod.ZLIB) + { + inflater = new Inflater(); + deflater = new Deflater(); + } + inParams = new InputSecurityParameters(null, null, inflater, + engine.session(), + engine.session().suite); + outParams = new OutputSecurityParameters(null, null, deflater, + engine.session(), + engine.session().suite); + engine.session().privateData.masterSecret = new byte[0]; + } + break; + } + // XXX SRP + + if (clientCert != null) + state = READ_CERTIFICATE_VERIFY; + else + state = READ_FINISHED; + } + break; + + // Certificate Verify. + // + // This message is sent following the client key exchange message, + // but only when the client included its certificate in a previous + // message. + // + // After receipt of this message, the client's certificate (and, + // to a degree, the client's identity) will have been verified. + case READ_CERTIFICATE_VERIFY: + { + if (handshake.type() != CERTIFICATE_VERIFY) + throw new SSLException("expecting certificate verify message"); + + CertificateVerify verify = (CertificateVerify) handshake.body(); + try + { + verifyClient(verify.signature()); + if (certVerifier != null && certVerifier.verified()) + engine.session().setPeerVerified(true); + } + catch (SignatureException se) + { + if (engine.getNeedClientAuth()) + throw new SSLException("client auth failed", se); + } + if (continuedSession) + { + engine.changeCipherSpec(); + state = WRITE_FINISHED; + } + else + state = READ_FINISHED; + } + break; + + // Finished. + // + // This message is sent immediately following the change cipher + // spec message (which is sent outside of the handshake layer). + // After receipt of this message, the session keys for the client + // side will have been verified (this is the first message the + // client sends encrypted and authenticated with the newly + // negotiated keys). + // + // In the case of a continued session, the client sends its + // finished message first. Otherwise, the server will send its + // finished message first. + case READ_FINISHED: + { + if (handshake.type() != FINISHED) + throw new AlertException(new Alert(Alert.Level.FATAL, + Description.UNEXPECTED_MESSAGE)); + + Finished clientFinished = (Finished) handshake.body(); + + MessageDigest md5copy = null; + MessageDigest shacopy = null; + try + { + md5copy = (MessageDigest) md5.clone(); + shacopy = (MessageDigest) sha.clone(); + } + catch (CloneNotSupportedException cnse) + { + // We're improperly configured to use a non-cloneable + // md5/sha-1, OR there's a runtime bug. + throw new SSLException(cnse); + } + Finished serverFinished = + new Finished(generateFinished(md5copy, shacopy, + true, engine.session()), + engine.session().version); + + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "server finished: {0}", + serverFinished); + + if (engine.session().version == ProtocolVersion.SSL_3) + { + if (!Arrays.equals(clientFinished.md5Hash(), + serverFinished.md5Hash()) + || !Arrays.equals(clientFinished.shaHash(), + serverFinished.shaHash())) + { + engine.session().invalidate(); + throw new SSLException("session verify failed"); + } + } + else + { + if (!Arrays.equals(clientFinished.verifyData(), + serverFinished.verifyData())) + { + engine.session().invalidate(); + throw new SSLException("session verify failed"); + } + } + + if (continuedSession) + state = DONE; + else + { + engine.changeCipherSpec(); + state = WRITE_FINISHED; + } + } + break; + } + + handshakeOffset += handshake.length() + 4; + + if (!tasks.isEmpty()) + return HandshakeStatus.NEED_TASK; + if (state.isReadState()) + return HandshakeStatus.NEED_UNWRAP; + if (state.isWriteState()) + return HandshakeStatus.NEED_WRAP; + + return HandshakeStatus.FINISHED; + } + + public @Override HandshakeStatus implHandleOutput (ByteBuffer fragment) + throws SSLException + { + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, + "handle output state: {0}; output fragment: {1}", + state, fragment); + + // Drain the output buffer, if it needs it. + if (outBuffer != null && outBuffer.hasRemaining()) + { + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + } + + if (!fragment.hasRemaining()) + { + if (state.isWriteState() || outBuffer.hasRemaining()) + return HandshakeStatus.NEED_WRAP; + else + return HandshakeStatus.NEED_UNWRAP; + } + + // XXX what we need to do here is generate a "stream" of handshake + // messages, and insert them into fragment amounts that we have available. + // A handshake message can span multiple records, and we can put + // multiple records into a single record. + // + // So, we can have one of two states: + // + // 1) We have enough space in the record we are creating to push out + // everything we need to on this round. This is easy; we just + // repeatedly fill in these messages in the buffer, so we get something + // that looks like this: + // ________________________________ + // records: |________________________________| + // handshakes: |______|__|__________| + // + // 2) We can put part of one handshake message in the current record, + // but we must put the rest of it in the following record, or possibly + // more than one following record. So here, we'd see this: + // + // ________________________ + // records: |_______|_______|________| + // handshakes: |____|_______|_________| + // + // We *could* make this a lot easier by just only ever emitting one + // record per call, but then we would waste potentially a lot of space + // and waste a lot of TCP packets by doing it the simple way. What + // we desire here is that we *maximize* our usage of the resources + // given to us, and to use as much space in the present fragment as + // we can. + // + // Note that we pretty much have to support this, anyway, because SSL + // provides no guarantees that the record size is large enough to + // admit *even one* handshake message. Also, callers could call on us + // with a short buffer, even though they aren't supposed to. + // + // This is somewhat complicated by the fact that we don't know, a priori, + // how large a handshake message will be until we've built it, and our + // design builds the message around the byte buffer. + // + // Some ways to handle this: + // + // 1. Write our outgoing handshake messages to a private buffer, + // big enough per message (and, if we run out of space, resize that + // buffer) and push (possibly part of) this buffer out to the + // outgoing buffer. This isn't that great because we'd need to + // store and copy things unnecessarily. + // + // 2. Build outgoing handshake objects “virtually,” that is, store them + // as collections of objects, then compute the length, and then write + // them to a buffer, instead of making the objects views on + // ByteBuffers for both input and output. This would complicate the + // protocol objects a bit (although, it would amount to doing + // separation between client objects and server objects, which is + // pretty OK), and we still need to figure out how exactly to chunk + // those objects across record boundaries. + // + // 3. Try to build these objects on the buffer we’re given, but detect + // when we run out of space in the output buffer, and split the + // overflow message. This sounds like the best, but also probably + // the hardest to code. +output_loop: + while (fragment.remaining() >= 4 && state.isWriteState()) + { + switch (state) + { + // Hello Request. + // + // This message is sent by the server to initiate a new + // handshake, to establish new session keys. + case WRITE_HELLO_REQUEST: + { + Handshake handshake = new Handshake(fragment); + handshake.setType(Handshake.Type.HELLO_REQUEST); + handshake.setLength(0); + fragment.position(fragment.position() + 4); + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "{0}", handshake); + state = READ_CLIENT_HELLO; + } + break output_loop; // XXX temporary + + // Server Hello. + // + // This message is sent immediately following the client hello. + // It informs the client of the cipher suite, compression method, + // session ID (which may have been a continued session), and any + // supported extensions. + case WRITE_SERVER_HELLO: + { + ServerHelloBuilder hello = new ServerHelloBuilder(); + hello.setVersion(engine.session().version); + Random r = hello.random(); + r.setGmtUnixTime(Util.unixTime()); + byte[] nonce = new byte[28]; + engine.session().random().nextBytes(nonce); + r.setRandomBytes(nonce); + serverRandom = r.copy(); + hello.setSessionId(engine.session().getId()); + hello.setCipherSuite(engine.session().suite); + hello.setCompressionMethod(compression); + if (clientHadExtensions) + { + // XXX figure this out. + } + else // Don't send any extensions. + hello.setDisableExtensions(true); + + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "{0}", hello); + + int typeLen = ((Handshake.Type.SERVER_HELLO.getValue() << 24) + | (hello.length() & 0xFFFFFF)); + fragment.putInt(typeLen); + + outBuffer = hello.buffer(); + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + CipherSuite cs = engine.session().suite; + KeyExchangeAlgorithm kex = cs.keyExchangeAlgorithm(); + if (continuedSession) + { + byte[][] keys = generateKeys(clientRandom, serverRandom, + engine.session()); + setupSecurityParameters(keys, false, engine, compression); + engine.changeCipherSpec(); + state = WRITE_FINISHED; + } + else if (kex == DHE_DSS || kex == DHE_RSA || kex == RSA + || kex == RSA_PSK) + { + certLoader = new CertLoader(); + tasks.add(certLoader); + state = WRITE_CERTIFICATE; + if (kex == DHE_DSS || kex == DHE_RSA) + { + genDH = new GenDH(); + tasks.add(genDH); + } + break output_loop; + } + else if (kex == PSK) + { + state = WRITE_SERVER_KEY_EXCHANGE; + } + else if (kex == DHE_PSK || kex == DH_anon) + { + genDH = new GenDH(); + tasks.add(genDH); + state = WRITE_SERVER_KEY_EXCHANGE; + break output_loop; + } + else if (engine.getWantClientAuth() || engine.getNeedClientAuth()) + { + state = WRITE_CERTIFICATE_REQUEST; + } + else + state = WRITE_SERVER_HELLO_DONE; + } + break; + + // Certificate. + // + // This message is sent immediately following the server hello, + // IF the cipher suite chosen requires that the server identify + // itself (usually, servers must authenticate). + case WRITE_CERTIFICATE: + { + // We must have scheduled a certificate loader to run. + assert(certLoader != null); + assert(certLoader.hasRun()); + if (certLoader.thrown() != null) + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.HANDSHAKE_FAILURE), + certLoader.thrown()); + java.security.cert.Certificate[] chain + = engine.session().getLocalCertificates(); + CertificateBuilder cert = new CertificateBuilder(CertificateType.X509); + try + { + cert.setCertificates(Arrays.asList(chain)); + } + catch (CertificateException ce) + { + throw new SSLException(ce); + } + + if (Debug.DEBUG) + { + logger.logv(Component.SSL_HANDSHAKE, "my cert:\n{0}", localCert); + logger.logv(Component.SSL_HANDSHAKE, "{0}", cert); + } + + int typeLen = ((CERTIFICATE.getValue() << 24) + | (cert.length() & 0xFFFFFF)); + fragment.putInt(typeLen); + + outBuffer = cert.buffer(); + final int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + CipherSuite s = engine.session().suite; + KeyExchangeAlgorithm kexalg = s.keyExchangeAlgorithm(); + if (kexalg == DHE_DSS || kexalg == DHE_RSA) + { + genDH = new GenDH(); + tasks.add(genDH); + state = WRITE_SERVER_KEY_EXCHANGE; + break output_loop; + } + else if (kexalg == RSA_PSK) + state = WRITE_SERVER_KEY_EXCHANGE; + else if (engine.getWantClientAuth() || engine.getNeedClientAuth()) + { + state = WRITE_CERTIFICATE_REQUEST; + } + else + state = WRITE_SERVER_HELLO_DONE; + } + break output_loop; // XXX temporary + + // Server key exchange. + // + // This message is sent, following the certificate if sent, + // otherwise following the server hello, IF the chosen cipher + // suite requires that the server send explicit key exchange + // parameters (that is, if the key exchange parameters are not + // implicit in the server's certificate). + case WRITE_SERVER_KEY_EXCHANGE: + { + KeyExchangeAlgorithm kex = engine.session().suite.keyExchangeAlgorithm(); + + ByteBuffer paramBuffer = null; + ByteBuffer sigBuffer = null; + if (kex == DHE_DSS || kex == DHE_RSA || kex == DH_anon + || kex == DHE_PSK) + { + assert(genDH != null); + assert(genDH.hasRun()); + if (genDH.thrown() != null) + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.HANDSHAKE_FAILURE), + genDH.thrown()); + assert(dhPair != null); + initDiffieHellman((DHPrivateKey) dhPair.getPrivate(), + engine.session().random()); + paramBuffer = genDH.paramsBuffer; + sigBuffer = genDH.sigBuffer; + + if (kex == DHE_PSK) + { + String identityHint + = engine.contextImpl.pskManager.chooseIdentityHint(); + ServerDHE_PSKParameters psk = + new ServerDHE_PSKParameters(identityHint, paramBuffer); + paramBuffer = psk.buffer(); + } + } + if (kex == RSA_PSK) + { + String idHint = engine.contextImpl.pskManager.chooseIdentityHint(); + if (idHint != null) + { + ServerRSA_PSKParameters params + = new ServerRSA_PSKParameters(idHint); + paramBuffer = params.buffer(); + } + } + if (kex == PSK) + { + String idHint = engine.contextImpl.pskManager.chooseIdentityHint(); + if (idHint != null) + { + ServerPSKParameters params + = new ServerPSKParameters(idHint); + paramBuffer = params.buffer(); + } + } + // XXX handle SRP + + if (paramBuffer != null) + { + ServerKeyExchangeBuilder ske + = new ServerKeyExchangeBuilder(engine.session().suite); + ske.setParams(paramBuffer); + if (sigBuffer != null) + ske.setSignature(sigBuffer); + + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "{0}", ske); + + outBuffer = ske.buffer(); + int l = Math.min(fragment.remaining(), outBuffer.remaining()); + fragment.putInt((SERVER_KEY_EXCHANGE.getValue() << 24) + | (ske.length() & 0xFFFFFF)); + fragment.put((ByteBuffer) outBuffer.duplicate().limit + (outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + } + + if (engine.getWantClientAuth() || engine.getNeedClientAuth()) + state = WRITE_CERTIFICATE_REQUEST; + else + state = WRITE_SERVER_HELLO_DONE; + } + break; + + // Certificate Request. + // + // This message is sent when the server desires or requires + // client authentication with a certificate; if it is sent, it + // will be sent just after the Certificate or Server Key + // Exchange messages, whichever is sent. If neither of the + // above are sent, it will be the message that follows the + // server hello. + case WRITE_CERTIFICATE_REQUEST: + { + CertificateRequestBuilder req = new CertificateRequestBuilder(); + + List types + = new ArrayList(4); + types.add(ClientCertificateType.RSA_SIGN); + types.add(ClientCertificateType.RSA_FIXED_DH); + types.add(ClientCertificateType.DSS_SIGN); + types.add(ClientCertificateType.DSS_FIXED_DH); + req.setTypes(types); + + X509Certificate[] anchors + = engine.contextImpl.trustManager.getAcceptedIssuers(); + List issuers + = new ArrayList(anchors.length); + for (X509Certificate cert : anchors) + issuers.add(cert.getIssuerX500Principal()); + req.setAuthorities(issuers); + + if (Debug.DEBUG) + logger.log(Component.SSL_HANDSHAKE, "{0}", req); + + fragment.putInt((CERTIFICATE_REQUEST.getValue() << 24) + | (req.length() & 0xFFFFFF)); + + outBuffer = req.buffer(); + int l = Math.min(outBuffer.remaining(), fragment.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + state = WRITE_SERVER_HELLO_DONE; + } + break; + + // Server Hello Done. + // + // This message is always sent by the server, to terminate its + // side of the handshake. Since the server's handshake message + // may comprise multiple, optional messages, this sentinel + // message lets the client know when the server's message stream + // is complete. + case WRITE_SERVER_HELLO_DONE: + { + // ServerHelloDone is zero-length; just put in the type + // field. + fragment.putInt(SERVER_HELLO_DONE.getValue() << 24); + if (Debug.DEBUG) + logger.logv(Component.SSL_HANDSHAKE, "writing ServerHelloDone"); + state = READ_CERTIFICATE; + } + break output_loop; // XXX temporary + + // Finished. + // + // This is always sent by the server to verify the keys that the + // server will use to encrypt and authenticate. In a full + // handshake, this message will be sent after the client's + // finished message; in an abbreviated handshake (with a continued + // session) the server sends its finished message first. + // + // This message follows the change cipher spec message, which is + // sent out-of-band in a different SSL content-type. + // + // This is the first message that the server will send encrypted + // and authenticated with the newly negotiated session keys. + case WRITE_FINISHED: + { + MessageDigest md5copy = null; + MessageDigest shacopy = null; + try + { + md5copy = (MessageDigest) md5.clone(); + shacopy = (MessageDigest) sha.clone(); + } + catch (CloneNotSupportedException cnse) + { + // We're improperly configured to use a non-cloneable + // md5/sha-1, OR there's a runtime bug. + throw new SSLException(cnse); + } + outBuffer + = generateFinished(md5copy, shacopy, false, + engine.session()); + + fragment.putInt((FINISHED.getValue() << 24) + | outBuffer.remaining() & 0xFFFFFF); + + int l = Math.min(outBuffer.remaining(), fragment.remaining()); + fragment.put((ByteBuffer) outBuffer.duplicate().limit(outBuffer.position() + l)); + outBuffer.position(outBuffer.position() + l); + + if (continuedSession) + state = READ_FINISHED; + else + state = DONE; + } + break; + } + } + if (!tasks.isEmpty()) + return HandshakeStatus.NEED_TASK; + if (state.isWriteState() || outBuffer.hasRemaining()) + return HandshakeStatus.NEED_WRAP; + if (state.isReadState()) + return HandshakeStatus.NEED_UNWRAP; + + return HandshakeStatus.FINISHED; + } + + @Override HandshakeStatus status() + { + if (!tasks.isEmpty()) + return HandshakeStatus.NEED_TASK; + if (state.isReadState()) + return HandshakeStatus.NEED_UNWRAP; + if (state.isWriteState()) + return HandshakeStatus.NEED_WRAP; + + return HandshakeStatus.FINISHED; + } + + @Override void checkKeyExchange() throws SSLException + { + if (continuedSession) // No key exchange needed. + return; + KeyExchangeAlgorithm kex = engine.session().suite.keyExchangeAlgorithm(); + if (kex == NONE || kex == PSK || kex == RSA_PSK) // Don't need one. + return; + if (keyExchangeTask == null) // An error if we never created one. + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.INTERNAL_ERROR)); + if (!keyExchangeTask.hasRun()) // An error if the caller never ran it. + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.INTERNAL_ERROR)); + if (keyExchangeTask.thrown() != null) // An error was thrown. + throw new AlertException(new Alert(Alert.Level.FATAL, + Alert.Description.HANDSHAKE_FAILURE), + keyExchangeTask.thrown()); + } + + @Override void handleV2Hello(ByteBuffer hello) + { + int len = hello.getShort(0) & 0x7FFF; + md5.update((ByteBuffer) hello.duplicate().position(2).limit(len+2)); + sha.update((ByteBuffer) hello.duplicate().position(2).limit(len+2)); + helloV2 = true; + } + + private ByteBuffer signParams(ByteBuffer serverParams) + throws NoSuchAlgorithmException, InvalidKeyException, SignatureException + { + SignatureAlgorithm alg = engine.session().suite.signatureAlgorithm(); + java.security.Signature sig + = java.security.Signature.getInstance(alg.algorithm()); + PrivateKey key = engine.contextImpl.keyManager.getPrivateKey(keyAlias); + if (Debug.DEBUG_KEY_EXCHANGE) + logger.logv(Component.SSL_HANDSHAKE, "server key: {0}", key); + sig.initSign(key); + sig.update(clientRandom.buffer()); + sig.update(serverRandom.buffer()); + sig.update(serverParams); + byte[] sigVal = sig.sign(); + Signature signature = new Signature(sigVal, engine.session().suite.signatureAlgorithm()); + return signature.buffer(); + } + + private void verifyClient(byte[] sigValue) throws SSLException, SignatureException + { + MessageDigest md5copy = null; + MessageDigest shacopy = null; + try + { + md5copy = (MessageDigest) md5.clone(); + shacopy = (MessageDigest) sha.clone(); + } + catch (CloneNotSupportedException cnse) + { + // Mis-configured with non-cloneable digests. + throw new SSLException(cnse); + } + byte[] toSign = null; + if (engine.session().version == ProtocolVersion.SSL_3) + toSign = genV3CertificateVerify(md5copy, shacopy, engine.session()); + else + { + if (engine.session().suite.signatureAlgorithm() == SignatureAlgorithm.RSA) + toSign = Util.concat(md5copy.digest(), shacopy.digest()); + else + toSign = shacopy.digest(); + } + + try + { + java.security.Signature sig = java.security.Signature.getInstance(engine.session().suite.signatureAlgorithm().toString()); + sig.initVerify(clientCert); + sig.update(toSign); + sig.verify(sigValue); + } + catch (InvalidKeyException ike) + { + throw new SSLException(ike); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + } + + // Delegated tasks. + + class CertLoader extends DelegatedTask + { + CertLoader() + { + } + + public void implRun() throws SSLException + { + KeyExchangeAlgorithm kexalg = engine.session().suite.keyExchangeAlgorithm(); + X509ExtendedKeyManager km = engine.contextImpl.keyManager; + Principal[] issuers = null; // XXX use TrustedAuthorities extension. + keyAlias = km.chooseEngineServerAlias(kexalg.name(), issuers, engine); + if (keyAlias == null) + throw new SSLException("no certificates available"); + X509Certificate[] chain = km.getCertificateChain(keyAlias); + engine.session().setLocalCertificates(chain); + localCert = chain[0]; + serverKey = km.getPrivateKey(keyAlias); + if (kexalg == DH_DSS || kexalg == DH_RSA) + dhPair = new KeyPair(localCert.getPublicKey(), + km.getPrivateKey(keyAlias)); + } + } + + /** + * Delegated task for generating Diffie-Hellman parameters. + */ + private class GenDH extends DelegatedTask + { + ByteBuffer paramsBuffer; + ByteBuffer sigBuffer; + + protected void implRun() + throws NoSuchAlgorithmException, InvalidAlgorithmParameterException, + InvalidKeyException, SignatureException + { + KeyPairGenerator dhGen = KeyPairGenerator.getInstance("DH"); + DHParameterSpec dhparams = DiffieHellman.getParams().getParams(); + dhGen.initialize(dhparams, engine.session().random()); + dhPair = dhGen.generateKeyPair(); + DHPublicKey pub = (DHPublicKey) dhPair.getPublic(); + + // Generate the parameters message. + ServerDHParams params = new ServerDHParams(pub.getParams().getP(), + pub.getParams().getG(), + pub.getY()); + paramsBuffer = params.buffer(); + + // Sign the parameters, if needed. + if (engine.session().suite.signatureAlgorithm() != SignatureAlgorithm.ANONYMOUS) + { + sigBuffer = signParams(paramsBuffer); + paramsBuffer.rewind(); + } + if (Debug.DEBUG_KEY_EXCHANGE) + logger.logv(Component.SSL_KEY_EXCHANGE, + "Diffie-Hellman public:{0} private:{1}", + dhPair.getPublic(), dhPair.getPrivate()); + } + } + + class RSAKeyExchange extends DelegatedTask + { + private final byte[] encryptedPreMasterSecret; + + RSAKeyExchange(byte[] encryptedPreMasterSecret) + { + this.encryptedPreMasterSecret = encryptedPreMasterSecret; + } + + public void implRun() + throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchPaddingException, SSLException + { + Cipher rsa = Cipher.getInstance("RSA"); + rsa.init(Cipher.DECRYPT_MODE, serverKey); + rsa.init(Cipher.DECRYPT_MODE, localCert); + preMasterSecret = rsa.doFinal(encryptedPreMasterSecret); + generateMasterSecret(clientRandom, serverRandom, engine.session()); + byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); + setupSecurityParameters(keys, false, engine, compression); + } + } + + class RSA_PSKExchange extends DelegatedTask + { + private final byte[] encryptedPreMasterSecret; + private final SecretKey psKey; + + RSA_PSKExchange(byte[] encryptedPreMasterSecret, SecretKey psKey) + { + this.encryptedPreMasterSecret = encryptedPreMasterSecret; + this.psKey = psKey; + } + + public @Override void implRun() + throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchPaddingException, SSLException + { + Cipher rsa = Cipher.getInstance("RSA"); + rsa.init(Cipher.DECRYPT_MODE, serverKey); + rsa.init(Cipher.DECRYPT_MODE, localCert); + byte[] rsaSecret = rsa.doFinal(encryptedPreMasterSecret); + byte[] psSecret = psKey.getEncoded(); + preMasterSecret = new byte[rsaSecret.length + psSecret.length + 4]; + preMasterSecret[0] = (byte) (rsaSecret.length >>> 8); + preMasterSecret[1] = (byte) rsaSecret.length; + System.arraycopy(rsaSecret, 0, preMasterSecret, 2, rsaSecret.length); + preMasterSecret[rsaSecret.length + 2] = (byte) (psSecret.length >>> 8); + preMasterSecret[rsaSecret.length + 3] = (byte) psSecret.length; + System.arraycopy(psSecret, 0, preMasterSecret, rsaSecret.length+4, + psSecret.length); + + generateMasterSecret(clientRandom, serverRandom, engine.session()); + byte[][] keys = generateKeys(clientRandom, serverRandom, engine.session()); + setupSecurityParameters(keys, false, engine, compression); + } + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java dissimilarity index 64% index 8b7853c7f40..2bbce37fb3d 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java @@ -1,216 +1,231 @@ -/* ServerHello.java -- SSL ServerHello message. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import javax.net.ssl.SSLProtocolException; - -class ServerHello implements Handshake.Body -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final ProtocolVersion version; - private final Random random; - private final byte[] sessionId; - private final CipherSuite suite; - private final CompressionMethod comp; - private final List extensions; - - // Constructor. - // ------------------------------------------------------------------------- - - ServerHello(ProtocolVersion version, Random random, - byte[] sessionId, CipherSuite suite, - CompressionMethod comp) - { - this(version, random, sessionId, suite, comp, null); - } - - ServerHello(ProtocolVersion version, Random random, - byte[] sessionId, CipherSuite suite, - CompressionMethod comp, List extensions) - { - this.version = version; - this.random = random; - this.sessionId = sessionId; - this.suite = suite; - this.comp = comp; - this.extensions = extensions; - } - - // Class methods. - // ------------------------------------------------------------------------- - - static ServerHello read(InputStream in) throws IOException - { - ProtocolVersion vers = ProtocolVersion.read(in); - Random rand = Random.read(in); - byte[] id = new byte[in.read() & 0xFF]; - in.read(id); - CipherSuite suite = CipherSuite.read(in).resolve(vers); - CompressionMethod comp = CompressionMethod.read(in); - List ext = null; - if (in.available() > 0) - { - ext = new LinkedList(); - int len = (in.read() >>> 8 & 0xFF) | (in.read() & 0xFF); - int count = 0; - while (count < len) - { - Extension e = Extension.read(in); - ext.add(e); - count += e.getValue().length + 4; - } - } - return new ServerHello(vers, rand, id, suite, comp, ext); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException - { - version.write(out); - random.write(out); - out.write(sessionId.length); - out.write(sessionId); - suite.write(out); - out.write(comp.getValue()); - if (extensions != null) - { - ByteArrayOutputStream out2 = new ByteArrayOutputStream(); - for (Iterator i = extensions.iterator(); i.hasNext(); ) - ((Extension) i.next()).write(out2); - out.write(out2.size() >>> 8 & 0xFF); - out.write(out2.size() & 0xFF); - out2.writeTo(out); - } - } - - ProtocolVersion getVersion() - { - return version; - } - - Random getRandom() - { - return random; - } - - byte[] getSessionId() - { - return (byte[]) sessionId.clone(); - } - - CipherSuite getCipherSuite() - { - return suite; - } - - CompressionMethod getCompressionMethod() - { - return comp; - } - - List getExtensions() - { - return extensions; - } - - public String toString() - { - StringWriter str = new StringWriter(); - PrintWriter out = new PrintWriter(str); - out.println("struct {"); - out.println(" version = " + version + ";"); - BufferedReader r = new BufferedReader(new StringReader(random.toString())); - String s; - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) - { - } - out.println(" sessionId = " + Util.toHexString(sessionId, ':') + ";"); - out.println(" cipherSuite = " + suite + ";"); - out.println(" compressionMethod = " + comp + ";"); - if (extensions != null) - { - out.println(" extensions = {"); - for (Iterator i = extensions.iterator(); i.hasNext(); ) - { - r = new BufferedReader(new StringReader(i.next().toString())); - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) - { - } - } - out.println(" };"); - } - out.println("} ServerHello;"); - return str.toString(); - } -} +/* ServerHello.java -- SSL ServerHello message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; + +/** + * The server hello message. + * + *
    +struct
    +{
    +  ProtocolVersion server_version;
    +  Random random;
    +  SessionID session_id;
    +  CipherSuite cipher_suite;
    +  CompressionMethod compression_method;
    +  Extensions server_hello_extension_list<0..2^16-1>
    +} ServerHello;
    +
    + * + *

    Server hello messages may contain extra data after the + * compression_method field, which are interpreted as + * extensions to the basic handshake. + */ +public class ServerHello implements Handshake.Body +{ + + // Fields. + // ------------------------------------------------------------------------- + + protected static final int RANDOM_OFFSET = 2; + protected static final int SESSID_OFFSET = 32 + RANDOM_OFFSET; + protected static final int SESSID_OFFSET2 = SESSID_OFFSET + 1; + + protected ByteBuffer buffer; + protected boolean disableExtensions; + + // Constructor. + // ------------------------------------------------------------------------- + + public ServerHello (final ByteBuffer buffer) + { + this.buffer = buffer; + disableExtensions = false; + } + + public int length () + { + int sessionLen = buffer.get(SESSID_OFFSET) & 0xFF; + int len = SESSID_OFFSET2 + sessionLen + 3; + int elen = 0; + if (!disableExtensions && len + 1 < buffer.limit() + && (elen = buffer.getShort(len)) != 0) + len += 2 + elen; + return len; + } + + /** + * Returns the server's protocol version. This will read two bytes + * from the beginning of the underlying buffer, and return an + * instance of the appropriate {@link ProtocolVersion}; if the + * version read is a supported version, this method returns a static + * constant instance. + * + * @return The server's protocol version. + */ + public ProtocolVersion version() + { + return ProtocolVersion.getInstance (buffer.getShort (0)); + } + + /** + * Returns the server's random value. This method returns a + * lightwieght wrapper around the existing bytes; modifications to + * the underlying buffer will modify the returned object, and + * vice-versa. + * + * @return The server's random value. + */ + public Random random() + { + ByteBuffer randomBuf = + ((ByteBuffer) buffer.duplicate ().position (RANDOM_OFFSET) + .limit (SESSID_OFFSET)).slice (); + return new Random (randomBuf); + } + + /** + * Returns the session ID. This method returns a new byte array with + * the session ID bytes. + * + * @return The session ID. + */ + public byte[] sessionId() + { + int idlen = buffer.get (SESSID_OFFSET) & 0xFF; + byte[] sessionId = new byte[idlen]; + buffer.position (SESSID_OFFSET2); + buffer.get (sessionId); + return sessionId; + } + + /** + * Returns the server's chosen cipher suite. The returned cipher + * suite will be "resolved" to this structure's version. + * + * @return The server's chosen cipher suite. + */ + public CipherSuite cipherSuite() + { + int offset = SESSID_OFFSET2 + (buffer.get(SESSID_OFFSET) & 0xFF); + return CipherSuite.forValue(buffer.getShort(offset)).resolve(); + } + + /** + * Returns the server's chosen compression method. + * + * @return The chosen compression method. + */ + public CompressionMethod compressionMethod() + { + int offset = SESSID_OFFSET2 + (buffer.get(SESSID_OFFSET) & 0xFF) + 2; + return CompressionMethod.getInstance(buffer.get(offset) & 0xFF); + } + + public int extensionsLength() + { + int offset = SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3; + if (offset + 1 >= buffer.limit()) + return 0; + return buffer.getShort(offset) & 0xFFFF; + } + + public ExtensionList extensions () + { + int offset = SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3; + if (offset + 1 >= buffer.limit()) + return null; + int len = buffer.getShort(offset) & 0xFFFF; + if (len == 0) + len = buffer.limit() - offset - 2; + ByteBuffer ebuf = ((ByteBuffer) buffer.duplicate().position(offset) + .limit(offset + len + 2)).slice(); + return new ExtensionList(ebuf); + } + + public String toString() + { + return toString(null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) + out.print (prefix); + out.println ("struct {"); + String subprefix = " "; + if (prefix != null) + subprefix += prefix; + out.print (subprefix); + out.print ("version: "); + out.print (version ()); + out.println (";"); + out.print (subprefix); + out.println ("random:"); + out.println (random ().toString (subprefix)); + out.print (subprefix); + out.print ("sessionId: "); + out.print (Util.toHexString(sessionId (), ':')); + out.println (";"); + out.print (subprefix); + out.print ("cipherSuite: "); + out.print (cipherSuite ()); + out.println (";"); + out.print (subprefix); + out.print ("compressionMethod: "); + out.print (compressionMethod ()); + out.println (";"); + ExtensionList exts = extensions (); + out.print (subprefix); + out.println ("extensions:"); + out.println (exts != null ? exts.toString (subprefix+" ") + : subprefix + " (nil)"); + if (prefix != null) + out.print (prefix); + out.print ("} ServerHello;"); + return str.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java new file mode 100644 index 00000000000..09ad1d9e8a9 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java @@ -0,0 +1,131 @@ +/* ServerHelloBuilder.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; + +/** + * @author csm + * + */ +public class ServerHelloBuilder extends ServerHello implements Builder +{ + public ServerHelloBuilder() + { + // Allocate a large enough buffer to hold a hello with the maximum + // size session ID, and no extensions. + super(ByteBuffer.allocate(SESSID_OFFSET2 + 35)); + } + + public ByteBuffer buffer() + { + return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); + } + + // We don't reallocate the buffer in any of the following methods, + // because we always allocate a large enough buffer for the base + // object in the constructor. + + public void setVersion (final ProtocolVersion version) + { + buffer.putShort (0, (short) version.rawValue ()); + } + + public void setSessionId (final byte[] sessionId) + { + setSessionId (sessionId, 0, sessionId.length); + } + + public void setSessionId (final byte[] sessionId, final int offset, + final int length) + { + if (length < 0 || length > 32) + throw new IllegalArgumentException("length must be between 0 and 32"); + buffer.put(SESSID_OFFSET, (byte) length); + ((ByteBuffer) buffer.duplicate().position(SESSID_OFFSET2)) + .put(sessionId, offset, length); + } + + public void setCipherSuite (final CipherSuite suite) + { + int offset = SESSID_OFFSET + (buffer.get(SESSID_OFFSET) & 0xFF) + 1; + ((ByteBuffer) buffer.duplicate().position(offset)).put(suite.id()); + } + + public void setCompressionMethod (final CompressionMethod comp) + { + int offset = SESSID_OFFSET + (buffer.get(SESSID_OFFSET) & 0xFF) + 3; + buffer.put (offset, (byte) comp.getValue ()); + } + + // For extensions, we do reallocate the buffer. + + public void setDisableExtensions(boolean disable) + { + disableExtensions = disable; + } + + public void setExtensionsLength (final int length) + { + if (length < 0 || length > 16384) + throw new IllegalArgumentException("length must be nonnegative and not exceed 16384"); + int needed = SESSID_OFFSET2 + (buffer.get(SESSID_OFFSET) & 0xFF) + 5 + length; + if (buffer.capacity() < needed) + ensureCapacity(needed); + buffer.putShort (SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3, + (short) length); + } + + public void setExtensions(ByteBuffer extensions) + { + extensions = (ByteBuffer) + extensions.duplicate().limit(extensions.position() + extensionsLength()); + ((ByteBuffer) buffer.duplicate().position(SESSID_OFFSET2 + + (buffer.get(SESSID_OFFSET) & 0xFF) + )).put(extensions); + } + + public void ensureCapacity(int newCapacity) + { + ByteBuffer newBuffer = ByteBuffer.allocate(newCapacity); + newBuffer.put(buffer); + newBuffer.position(0); + buffer = newBuffer; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java new file mode 100644 index 00000000000..e09772250a5 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java @@ -0,0 +1,66 @@ +/* ServerHelloDone.java -- SSL ServerHelloDone message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +/** + * An empty message that signals that the server is finished sending + * its handshake data. + * + *

    struct { } ServerHelloDone;
    + */ +public class ServerHelloDone implements Handshake.Body +{ + public ServerHelloDone () { } + + public int length () + { + return 0; + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + return ((prefix != null ? prefix : "") + + "struct { } ServerHelloDone;"); + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java dissimilarity index 76% index 58304159300..1206ae6b28b 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java @@ -1,286 +1,173 @@ -/* ServerKeyExchange.java -- SSL ServerKeyExchange message. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; - -import java.math.BigInteger; - -import java.security.PublicKey; -import java.security.interfaces.RSAPublicKey; - -import javax.crypto.interfaces.DHPublicKey; -import javax.crypto.spec.DHParameterSpec; - -import javax.net.ssl.SSLProtocolException; - -import gnu.javax.crypto.key.dh.GnuDHPublicKey; -import gnu.javax.crypto.key.srp6.SRPPublicKey; - -class ServerKeyExchange implements Handshake.Body -{ - - // Fields. - // ------------------------------------------------------------------------- - - private PublicKey publicKey; - private Signature signature; - private byte[] srpSalt; - - // Constructor. - // ------------------------------------------------------------------------- - - ServerKeyExchange(PublicKey publicKey, Signature signature) - { - this(publicKey, signature, null); - } - - ServerKeyExchange(PublicKey publicKey, Signature signature, byte[] srpSalt) - { - this.publicKey = publicKey; - this.signature = signature; - this.srpSalt = srpSalt; - } - - // Class methods. - // ------------------------------------------------------------------------- - - static ServerKeyExchange read(InputStream in, CipherSuite suite, - PublicKey serverKey) - throws IOException - { - DataInputStream din = new DataInputStream(in); - PublicKey key = null; - byte[] salt = null; - String kex = suite.getKeyExchange(); - if (kex.equals("DHE")) - { - BigInteger p, g, y; - byte[] buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - p = new BigInteger(1, buf); - buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - g = new BigInteger(1, buf); - buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - y = new BigInteger(1, buf); - key = new GnuDHPublicKey(null, p, g, y); - } - else if (kex.equals("RSA")) - { - BigInteger n, e; - byte[] buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - n = new BigInteger(1, buf); - buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - e = new BigInteger(1, buf); - key = new JessieRSAPublicKey(n, e); - } - else if (kex.equals("SRP")) - { - BigInteger N, g, B; - byte[] buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - N = new BigInteger(1, buf); - buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - g = new BigInteger(1, buf); - salt = new byte[din.readUnsignedByte()]; - din.readFully(salt); - buf = new byte[din.readUnsignedShort()]; - din.readFully(buf); - B = new BigInteger(1, buf); - try - { - key = new SRPPublicKey(N, g, B); - } - catch (IllegalArgumentException iae) - { - throw new SSLProtocolException(iae.getMessage()); - } - } - else - { - throw new SSLProtocolException("invalid kex algorithm"); - } - - Signature sig = null; - if (!suite.getSignature().equals("anon")) - { - sig = Signature.read(in, suite, serverKey); - } - return new ServerKeyExchange(key, sig, salt); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException - { - write(out, ProtocolVersion.TLS_1); - } - - public void write(OutputStream out, ProtocolVersion version) - throws IOException - { - if (publicKey instanceof DHPublicKey) - { - writeBigint(out, ((DHPublicKey) publicKey).getParams().getP()); - writeBigint(out, ((DHPublicKey) publicKey).getParams().getG()); - writeBigint(out, ((DHPublicKey) publicKey).getY()); - } - else if (publicKey instanceof RSAPublicKey) - { - writeBigint(out, ((RSAPublicKey) publicKey).getModulus()); - writeBigint(out, ((RSAPublicKey) publicKey).getPublicExponent()); - } - else if (publicKey instanceof SRPPublicKey) - { - writeBigint(out, ((SRPPublicKey) publicKey).getN()); - writeBigint(out, ((SRPPublicKey) publicKey).getG()); - out.write(srpSalt.length); - out.write(srpSalt); - writeBigint(out, ((SRPPublicKey) publicKey).getY()); - } - if (signature != null) - { - signature.write(out, version); - } - } - - PublicKey getPublicKey() - { - return publicKey; - } - - Signature getSignature() - { - return signature; - } - - byte[] getSRPSalt() - { - return srpSalt; - } - - public String toString() - { - StringWriter str = new StringWriter(); - PrintWriter out = new PrintWriter(str); - out.println("struct {"); - out.println(" publicKey = struct {"); - if (publicKey instanceof DHPublicKey) - { - out.println(" p = " + - ((DHPublicKey) publicKey).getParams().getP().toString(16) + - ";"); - out.println(" g = " + - ((DHPublicKey) publicKey).getParams().getG().toString(16) + - ";"); - out.println(" y = " + ((DHPublicKey) publicKey).getY().toString(16) + - ";"); - out.println(" } DHPublicKey;"); - } - else if (publicKey instanceof RSAPublicKey) - { - out.println(" modulus = " + - ((RSAPublicKey) publicKey).getModulus().toString(16) + - ";"); - out.println(" exponent = " + - ((RSAPublicKey) publicKey).getPublicExponent().toString(16) + - ";"); - out.println(" } RSAPublicKey;"); - } - else if (publicKey instanceof SRPPublicKey) - { - out.println(" N = "+((SRPPublicKey) publicKey).getN().toString(16)+";"); - out.println(" g = "+((SRPPublicKey) publicKey).getG().toString(16)+";"); - out.println(" salt = " + Util.toHexString(srpSalt, ':') + ";"); - out.println(" B = "+((SRPPublicKey) publicKey).getY().toString(16)+";"); - out.println(" } SRPPublicKey;"); - } - if (signature != null) - { - out.println(" signature ="); - BufferedReader r = new BufferedReader(new StringReader(signature.toString())); - String s; - try - { - while ((s = r.readLine()) != null) - { - out.print(" "); - out.println(s); - } - } - catch (IOException ignored) - { - } - } - out.println("} ServerKeyExchange;"); - return str.toString(); - } - - private void writeBigint(OutputStream out, BigInteger bigint) - throws IOException - { - byte[] b = bigint.toByteArray(); - if (b[0] == 0x00) - { - out.write((b.length - 1) >>> 8 & 0xFF); - out.write((b.length - 1) & 0xFF); - out.write(b, 1, b.length - 1); - } - else - { - out.write(b.length >>> 8 & 0xFF); - out.write(b.length & 0xFF); - out.write(b); - } - } -} +/* ServerKeyExchange.java -- SSL ServerKeyExchange message. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * The server key exchange message. + * + *
    +struct
    +{
    +  select (KeyExchangeAlgorithm)
    +  {
    +    case diffie_hellman:
    +      ServerDHParams params;
    +      Signature signed_params;
    +    case rsa:
    +      ServerRSAParams params;
    +      Signature signed_params;
    +    case srp:
    +      ServerSRPParams params;
    +      Signature signed_params;
    +  };
    +} ServerKeyExchange;
    +
    + */ +public class ServerKeyExchange implements Handshake.Body +{ + + protected ByteBuffer buffer; + protected final CipherSuite suite; + + public ServerKeyExchange(final ByteBuffer buffer, final CipherSuite suite) + { + suite.getClass(); + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + this.suite = suite; + } + + public int length () + { + if (suite.keyExchangeAlgorithm ().equals (KeyExchangeAlgorithm.NONE)) + return 0; + int len = 0; + ServerKeyExchangeParams params = params(); + Signature sig = signature(); + if (params != null) + len += params.length(); + if (sig != null) + len += sig.length(); + return len; + } + + /** + * Returns the server's key exchange parameters. The value returned will + * depend on the key exchange algorithm this object was created with. + * + * @return The server's key exchange parameters. + */ + public ServerKeyExchangeParams params () + { + KeyExchangeAlgorithm kex = suite.keyExchangeAlgorithm (); + if (kex == KeyExchangeAlgorithm.RSA) + return new ServerRSAParams(buffer.duplicate ()); + else if (kex == KeyExchangeAlgorithm.DHE_DSS + || kex == KeyExchangeAlgorithm.DHE_RSA + || kex == KeyExchangeAlgorithm.DH_anon) + return new ServerDHParams(buffer.duplicate()); +// else if (kex.equals (KeyExchangeAlgorithm.SRP)) +// return new ServerSRPParams (buffer.duplicate ()); + else if (kex == KeyExchangeAlgorithm.NONE) + return null; + else if (kex == KeyExchangeAlgorithm.DHE_PSK) + return new ServerDHE_PSKParameters(buffer.duplicate()); + else if (kex == KeyExchangeAlgorithm.PSK) + return new ServerPSKParameters(buffer.duplicate()); + else if (kex == KeyExchangeAlgorithm.RSA_PSK) + return new ServerPSKParameters(buffer.duplicate()); + throw new IllegalArgumentException ("unsupported key exchange: " + kex); + } + + /** + * Returns the digital signature made over the key exchange parameters. + * + * @return The signature. + */ + public Signature signature () + { + KeyExchangeAlgorithm kex = suite.keyExchangeAlgorithm(); + if (kex == KeyExchangeAlgorithm.NONE + || kex == KeyExchangeAlgorithm.DH_anon + || kex == KeyExchangeAlgorithm.DHE_PSK + || kex == KeyExchangeAlgorithm.PSK + || kex == KeyExchangeAlgorithm.RSA_PSK) + return null; + ServerKeyExchangeParams params = params(); + ByteBuffer sigbuf = ((ByteBuffer) buffer.position(params.length ())).slice (); + return new Signature (sigbuf, suite.signatureAlgorithm ()); + } + + public String toString() + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print (prefix); + out.println("struct {"); + if (prefix != null) out.print (prefix); + out.print (" algorithm: "); + out.print (suite.keyExchangeAlgorithm ()); + out.println (";"); + if (!suite.keyExchangeAlgorithm ().equals (KeyExchangeAlgorithm.NONE)) + { + if (prefix != null) out.print (prefix); + out.println (" parameters:"); + out.println (params ().toString (prefix != null ? prefix+" " : " ")); + } + if (!suite.signatureAlgorithm ().equals (SignatureAlgorithm.ANONYMOUS)) + { + if (prefix != null) out.print (prefix); + out.println (" signature:"); + out.println (signature ().toString (prefix != null ? prefix+" " : " ")); + } + if (prefix != null) out.print (prefix); + out.print ("} ServerKeyExchange;"); + return str.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java new file mode 100644 index 00000000000..d4b6fa39736 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java @@ -0,0 +1,89 @@ +/* ServerKeyExchangeBuilder.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; + +/** + * Builder for {@link ServerKeyExchange} objects. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ServerKeyExchangeBuilder extends ServerKeyExchange + implements Builder +{ + public ServerKeyExchangeBuilder(final CipherSuite suite) + { + super(ByteBuffer.allocate(1024), suite); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice(); + } + + public void setParams(ByteBuffer params) + { + if (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.NONE) + throw new IllegalArgumentException("key exchange algorithm is none"); + ensureCapacity(params.remaining()); + buffer.duplicate().put(params); + } + + public void setSignature(ByteBuffer signature) + { + if (suite.keyExchangeAlgorithm() == KeyExchangeAlgorithm.NONE) + throw new IllegalArgumentException("key exchange algorithm is none"); + int paramsLen = params().length(); + ensureCapacity(paramsLen + signature.remaining()); + ((ByteBuffer) buffer.duplicate().position(paramsLen)).put(signature); + } + + public void ensureCapacity(int capacity) + { + if (buffer.capacity() >= capacity) + return; + ByteBuffer newBuffer = ByteBuffer.allocate(capacity); + newBuffer.duplicate().put(buffer); + buffer = newBuffer; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java new file mode 100644 index 00000000000..cb523650f25 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java @@ -0,0 +1,50 @@ +/* ServerKeyExchangeParams.java -- Server key exchange parameters interface. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +/** + * A parameter structure sent by the server in an SSL key exchange. + * + * @see ServerRSAParams + * @see ServerDHParams + */ +interface ServerKeyExchangeParams extends Constructed +{ + KeyExchangeAlgorithm algorithm (); +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java new file mode 100644 index 00000000000..5a268f542ab --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerNameList.java @@ -0,0 +1,311 @@ +/* ServerNameList.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.provider.Extension.Value; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.CharBuffer; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; +import java.nio.charset.CharsetEncoder; +import java.util.List; +import java.util.NoSuchElementException; + +/** + * The ServerName extension. + * + *
    + struct {
    +   NameType name_type;
    +   select (name_type) {
    +     case host_name: HostName;
    +   } name;
    +} ServerName;
    +
    +enum {
    +  host_name(0), (255)
    +} NameType;
    +
    +opaque HostName<1..2^16-1>;
    +
    +struct {
    +  ServerName server_name_list<1..2^16-1>
    +} ServerNameList;
    + * + *

    Implementation note: this class does not currently contain a + * set method. If you are modifying this list, then use the + * {@link #get(int)} method, and modify the returned {@link ServerName}. + * + * @author csm + */ +public class ServerNameList extends Value implements Iterable +{ + private ByteBuffer buffer; + + public ServerNameList (final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + public ServerNameList(List names) + { + int length = 2; + for (ServerName name : names) + length += name.length(); + buffer = ByteBuffer.allocate(length); + buffer.putShort((short) (length - 2)); + for (ServerName name : names) + buffer.put(name.buffer()); + buffer.rewind(); + } + + public int length() + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public int size() + { + int n = 0; + final int len = length(); + for (int i = 2; i < len; ) + { + int l = buffer.getShort(i+1); + i += l + 3; + n++; + } + return n; + } + + public ServerName get (int index) + { + final int len = length(); + if (len == 0) + throw new IndexOutOfBoundsException("0; " + index); + int n = 0; + int i; + int l = buffer.getShort(3); + for (i = 2; i < len && n < index; ) + { + l = buffer.getShort(i+1); + i += l + 3; + n++; + } + if (n < index) + throw new IndexOutOfBoundsException(n + "; " + index); + ByteBuffer buf = ((ByteBuffer) buffer.duplicate().position(i).limit(i+l+3)).slice(); + return new ServerName (buf); + } + + public void setLength(final int newLength) + { + if (newLength < 0 || newLength > 65535) + throw new IllegalArgumentException("length must be between 0 and 65535"); + buffer.putShort(0, (short) newLength); + } + + public String toString() + { + return toString(null); + } + + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println ("ServerNameList {"); + String subprefix = " "; + if (prefix != null) + subprefix = prefix + subprefix; + for (ServerName name : this) + { + out.println (name.toString(subprefix)); + } + if (prefix != null) out.print(prefix); + out.print ("};"); + return str.toString(); + } + + public java.util.Iterator iterator() + { + return new Iterator(); + } + + public class Iterator implements java.util.Iterator + { + private int index; + + public Iterator() + { + index = 0; + } + + public boolean hasNext() + { + return index < size(); + } + + public ServerName next() throws NoSuchElementException + { + try + { + return get (index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException(); + } + } + + public void remove() + { + throw new UnsupportedOperationException(); + } + } + + public static class ServerName implements Constructed + { + private ByteBuffer buffer; + + public ServerName(final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + public ServerName(NameType type, String name) + { + CharsetEncoder utf8 = Charset.forName("UTF-8").newEncoder(); + ByteBuffer nameBuf = null; + try + { + nameBuf = utf8.encode(CharBuffer.wrap(name)); + } + catch (CharacterCodingException cce) + { + // We don't expect this to happen; it's UTF-8. + throw new IllegalArgumentException(cce); + } + int length = 3 + nameBuf.remaining(); + buffer = ByteBuffer.allocate(length); + buffer.put((byte) type.getValue()); + buffer.putShort((short) (length - 3)); + buffer.put(nameBuf); + buffer.rewind(); + } + + public int length() + { + return (buffer.getShort(1) & 0xFFFF) + 3; + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public NameType type() + { + int v = (buffer.get(0) & 0xFF); + if (v == 0) + { + return NameType.HOST_NAME; + } + throw new IllegalArgumentException ("illegal name type: " + v); + } + + public String name() + { + int len = length(); + Charset cs = Charset.forName ("UTF-8"); + return cs.decode(((ByteBuffer) buffer.duplicate().position(3).limit(len))).toString(); + } + + public String toString() + { + return toString (null); + } + + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print (prefix); + out.println ("struct {"); + if (prefix != null) out.print (prefix); + out.print (" name_type = "); + out.print (type()); + out.println (";"); + if (prefix != null) out.print (prefix); + out.print (" server_name = "); + out.print (name()); + out.println (";"); + if (prefix != null) out.print (prefix); + out.print ("} ServerName;"); + return str.toString(); + } + } + + public static enum NameType + { + HOST_NAME (0); + + private final int value; + + private NameType (int value) + { + this.value = value; + } + + public int getValue() + { + return value; + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java new file mode 100644 index 00000000000..8acce6dde51 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java @@ -0,0 +1,127 @@ +/* ServerPSKParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.charset.Charset; + +/** + *

    +      struct {
    +          select (KeyExchangeAlgorithm) {
    +              /* other cases for rsa, diffie_hellman, etc. */
    +              case psk:  /* NEW */
    +                  opaque psk_identity_hint<0..2^16-1>;
    +          };
    +      } ServerKeyExchange;
    + * + * @author Casey Marshall (csm@gnu.org) + */ +public class ServerPSKParameters implements Builder, Constructed, ServerKeyExchangeParams +{ + private ByteBuffer buffer; + + public ServerPSKParameters(ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + public ServerPSKParameters(String identityHint) + { + Charset utf8 = Charset.forName("UTF-8"); + ByteBuffer identityHintBuffer = utf8.encode(identityHint); + buffer = ByteBuffer.allocate(2 + identityHintBuffer.remaining()); + buffer.putShort((short) identityHintBuffer.remaining()); + buffer.put(identityHintBuffer); + buffer.rewind(); + } + + public KeyExchangeAlgorithm algorithm() + { + return KeyExchangeAlgorithm.PSK; + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Builder#buffer() + */ + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().rewind().limit(length()); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#length() + */ + public int length() + { + return (buffer.getShort(0) & 0xFFFF) + 2; + } + + public String identityHint() + { + Charset utf8 = Charset.forName("UTF-8"); + return utf8.decode((ByteBuffer) buffer.duplicate().position(2).limit(length())).toString(); + } + + public @Override String toString() + { + return toString(null); + } + + /* (non-Javadoc) + * @see gnu.javax.net.ssl.provider.Constructed#toString(java.lang.String) + */ + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.print(" identity_hint = "); + out.print(identityHint()); + out.println(";"); + if (prefix != null) out.print(prefix); + out.print("} ServerPSKParamaters;"); + return str.toString(); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSAParams.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSAParams.java new file mode 100644 index 00000000000..ff265ce8aaa --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSAParams.java @@ -0,0 +1,163 @@ +/* ServerRSAParams.java -- The server's RSA parameters. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.math.BigInteger; +import java.nio.ByteBuffer; + +/** + * The ServerRSAParams structure. + * + *
    +struct
    +{
    +  opaque rsa_modulus<1..2^16-1>;
    +  opaque rsa_exponent<1..2^16-1>;
    +} ServerRSAParams;
    +
    + */ +public class ServerRSAParams implements ServerKeyExchangeParams +{ + + private final ByteBuffer buffer; + + public ServerRSAParams (final ByteBuffer buffer) + { + this.buffer = buffer; + } + + public KeyExchangeAlgorithm algorithm () + { + return KeyExchangeAlgorithm.RSA; + } + + public int length () + { + int offset = buffer.getShort (0) & 0xFFFF; + return (buffer.getShort (offset + 2) & 0xFFFF) + offset + 4; + } + + /** + * Gets the modulus field. + * + * @return The modulus. + */ + public BigInteger modulus () + { + int len = buffer.getShort (0) & 0xFFFF; + byte[] buf = new byte[len]; + buffer.position (2); + buffer.get (buf); + return new BigInteger (1, buf); + } + + /** + * Returns the exponent field. + * + * @return The exponent. + */ + public BigInteger exponent () + { + int off = (buffer.getShort (0) & 0xFFFF) + 2; + int len = buffer.getShort (off) & 0xFFFF; + byte[] buf = new byte[len]; + buffer.position (off + 2); + buffer.get (buf); + return new BigInteger (1, buf); + } + + /** + * Sets the modulus. + * + * @param modulus The modulus. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writable. + */ + public void setModulus (final BigInteger modulus) + { + byte[] buf = modulus.toByteArray (); + int length = (buf[0] == 0x00 ? buf.length - 1 : buf.length); + int offset = (buf[0] == 0x00 ? 1 : 0); + buffer.putShort (0, (short) length); + buffer.position (2); + buffer.put (buf, offset, length); + } + + /** + * Sets the exponent. + * + * @param exponent The exponent. + * @throws java.nio.ReadOnlyBufferException If the underlying buffer + * is not writeable. + */ + public void setExponent (final BigInteger exponent) + { + byte[] buf = exponent.toByteArray (); + int length = (buf[0] == 0x00 ? buf.length -1 : buf.length); + int offset = (buf[0] == 0x00 ? 1 : 0); + int where = (buffer.getShort (0) & 0xFFFF) + 2; + buffer.putShort (where, (short) length); + buffer.position (where + 2); + buffer.put (buf, offset, length); + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) out.print (prefix); + out.println ("struct {"); + if (prefix != null) out.print (prefix); + out.print (" rsa_modulus: "); + out.println (modulus ().toString (16)); + if (prefix != null) out.print (prefix); + out.print (" rsa_exponent: "); + out.println (exponent ()); + if (prefix != null) out.print (prefix); + out.print ("} ServerRSAParams;"); + return str.toString (); + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java new file mode 100644 index 00000000000..0d7b590d27f --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java @@ -0,0 +1,62 @@ +/* ServerRSA_PSKParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.nio.ByteBuffer; + +/** + * @author Casey Marshall (csm@gnu.org) + */ +public class ServerRSA_PSKParameters extends ServerPSKParameters +{ + public ServerRSA_PSKParameters(ByteBuffer buffer) + { + super(buffer); + } + + public ServerRSA_PSKParameters(String identityHint) + { + super(identityHint); + } + + public @Override KeyExchangeAlgorithm algorithm() + { + return KeyExchangeAlgorithm.RSA_PSK; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Session.java b/libjava/classpath/gnu/javax/net/ssl/provider/Session.java deleted file mode 100644 index e13758b0330..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Session.java +++ /dev/null @@ -1,381 +0,0 @@ -/* Session.java -- SSL and TLS session data. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.security.SecureRandom; -import java.security.cert.Certificate; -import java.security.cert.CertificateException; - -import java.util.Arrays; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; - -import javax.net.ssl.SSLPeerUnverifiedException; -import javax.net.ssl.SSLPermission; -import javax.net.ssl.SSLSession; -import javax.net.ssl.SSLSessionBindingEvent; -import javax.net.ssl.SSLSessionBindingListener; -import javax.net.ssl.SSLSessionContext; -import javax.net.ssl.X509KeyManager; -import javax.net.ssl.X509TrustManager; -import javax.security.cert.X509Certificate; - -import gnu.javax.net.ssl.SRPTrustManager; - -/** - * A generic SSL session implementation for SSL and TLS. - */ -final class Session implements SSLSession -{ - - // Constants and fields. - // ------------------------------------------------------------------------- - - private static final SSLPermission GET_SESSION_CONTEXT_PERMISSION = - new SSLPermission("getSSLSessionContext"); - - private final long creationTime; - private Date lastAccessedTime; - ID sessionId; - Certificate[] localCerts; - Certificate[] peerCerts; - X509Certificate[] peerCertChain; - String peerHost; - boolean peerVerified; - SessionContext context; - HashMap values; - boolean valid; - List enabledSuites; - CipherSuite cipherSuite; - SortedSet enabledProtocols; - ProtocolVersion protocol; - byte[] masterSecret; - SRPTrustManager srpTrustManager; - X509TrustManager trustManager; - X509KeyManager keyManager; - SecureRandom random; - SecurityParameters params; - Alert currentAlert; - - // Constructor. - // ------------------------------------------------------------------------- - - Session() - { - this(System.currentTimeMillis()); - } - - Session(long creationTime) - { - peerVerified = false; - valid = true; - this.creationTime = creationTime; - lastAccessedTime = new Date(0L); - values = new HashMap(); - if (("true").equalsIgnoreCase (Util.getSecurityProperty ("jessie.with.jce"))) - params = new JCESecurityParameters(); - else - params = new GNUSecurityParameters (this); - } - - // Public instance methods. - // ------------------------------------------------------------------------- - - protected Object clone() - { - Session result = new Session(creationTime); - result.lastAccessedTime = lastAccessedTime; - result.sessionId = sessionId; - result.localCerts = (localCerts != null ? (Certificate[]) localCerts.clone() : null); - result.peerCerts = (peerCerts != null ? (Certificate[]) peerCerts.clone() : null); - result.peerHost = peerHost; - result.peerVerified = peerVerified; - result.context = context; - result.values = values; - result.enabledSuites = new ArrayList(enabledSuites); - result.cipherSuite = cipherSuite; - result.enabledProtocols = new TreeSet(enabledProtocols); - result.protocol = protocol; - result.masterSecret = masterSecret; - result.keyManager = keyManager; - result.srpTrustManager = srpTrustManager; - result.trustManager = trustManager; - result.random = random; - return result; - } - - public String getCipherSuite() - { - return cipherSuite.toString(); - } - - public long getCreationTime() - { - return creationTime; - } - - public byte[] getId() - { - return (sessionId != null ? sessionId.getId() : null); - } - - public long getLastAccessedTime() - { - return lastAccessedTime.getTime(); - } - - public Certificate[] getLocalCertificates() - { - return (Certificate[]) (localCerts != null ? localCerts.clone() : null); - } - - public Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException - { - if (!peerVerified) - { - throw new SSLPeerUnverifiedException("peer not verified"); - } - return (Certificate[]) (peerCerts != null ? peerCerts.clone() : null); - } - - public X509Certificate[] getPeerCertificateChain() - throws SSLPeerUnverifiedException - { - if (!peerVerified) - { - throw new SSLPeerUnverifiedException("peer not verified"); - } - if (peerCerts == null) - { - return null; - } - if (peerCertChain != null) - { - return (X509Certificate[]) peerCertChain.clone(); - } - try - { - peerCertChain = new X509Certificate[peerCerts.length]; - for (int i = 0; i < peerCerts.length; i++) - { - peerCertChain[i] = X509Certificate.getInstance(peerCerts[i].getEncoded()); - } - return (X509Certificate[]) peerCertChain.clone(); - } - catch (javax.security.cert.CertificateException ce) - { - return null; - } - catch (CertificateException ce2) - { - return null; - } - } - - public String getPeerHost() - { - return peerHost; - } - - public String getProtocol() - { - return protocol.toString(); - } - - public SSLSessionContext getSessionContext() - { - SecurityManager sm = System.getSecurityManager(); - if (sm != null) - { - sm.checkPermission(GET_SESSION_CONTEXT_PERMISSION); - } - return context; - } - - public String[] getValueNames() - { - Set names = values.keySet(); - return (String[]) names.toArray(new String[names.size()]); - } - - public Object getValue(String name) - { - return values.get(name); - } - - public void putValue(String name, Object value) - { - values.put(name, value); - if (value instanceof SSLSessionBindingListener) - { - ((SSLSessionBindingListener) value).valueBound( - new SSLSessionBindingEvent(this, name)); - } - } - - public void removeValue(String name) - { - Object value = values.remove(name); - if (value != null && (value instanceof SSLSessionBindingListener)) - { - ((SSLSessionBindingListener) value).valueUnbound( - new SSLSessionBindingEvent(this, name)); - } - } - - public void invalidate() - { - if (masterSecret != null) - { - for (int i = 0; i < masterSecret.length; i++) - { - masterSecret[i] = 0; - } - masterSecret = null; - } - valid = false; - } - - synchronized void access() - { - lastAccessedTime.setTime(System.currentTimeMillis()); - context.notifyAccess(this); - } - - void setLastAccessedTime(long lastAccessedTime) - { - this.lastAccessedTime.setTime(lastAccessedTime); - } - - // Inner classes. - // ------------------------------------------------------------------------- - - /** - * A byte array with appropriate equals(), - * hashCode(), and compareTo() semantics. - */ - static final class ID implements Comparable - { - - // Fields. - // ----------------------------------------------------------------------- - - /** The ID itself. */ - private final byte[] id; - - // Constructor. - // ----------------------------------------------------------------------- - - /** - * Creates a new ID. - * - * @param id The ID. The array is not cloned. - */ - ID(byte[] id) - { - if (id == null) - { - throw new IllegalArgumentException(); - } - this.id = id; - } - - // Instance methods. - // ----------------------------------------------------------------------- - - public byte[] getId() - { - return (byte[]) id.clone(); - } - - public boolean equals(Object other) - { - if (other == null || !(other instanceof ID)) - { - return false; - } - return Arrays.equals(id, ((ID) other).id); - } - - public int hashCode() - { - int code = 0; - for (int i = 0; i < id.length; i++) - { - code |= (id[i] & 0xFF) << ((i & 3) << 3); - } - return code; - } - - public int compareTo(Object other) - { - if (other == null || !(other instanceof ID)) - { - return 1; - } - byte[] id2 = ((ID) other).id; - if (id.length != id2.length) - { - return (id.length < id2.length) ? -1 : 1; - } - for (int i = 0; i < id.length; i++) - { - if (id[i] < id2[i]) - { - return -1; - } - else if (id[i] > id2[i]) - { - return 1; - } - } - return 0; - } - - public String toString() - { - return Util.toHexString(id, ':'); - } - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SessionContext.java b/libjava/classpath/gnu/javax/net/ssl/provider/SessionContext.java deleted file mode 100644 index 9e265429aab..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SessionContext.java +++ /dev/null @@ -1,250 +0,0 @@ -/* SessionContext.java -- Implementation of a session context. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.security.Security; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Vector; - -import javax.net.ssl.SSLSession; -import javax.net.ssl.SSLSessionContext; - -/** - * A collection of SSL sessions. This implementation is a memory-only - * store; subclasses may implement persistent storage. - */ -class SessionContext implements SSLSessionContext -{ - - // Fields. - // ------------------------------------------------------------------------- - - /** The map of Session.ID objects to Sessions. */ - protected final HashMap sessions; - - /** The number of sessions to cache. */ - protected int cacheSize; - - /** The session timeout, in seconds. */ - protected int timeout; - - // Constructor. - // ------------------------------------------------------------------------- - - SessionContext() - { - sessions = new HashMap(); - cacheSize = 0; - try - { - timeout = Integer.parseInt(Util.getSecurityProperty("jessie.session.timeout")); - } - catch (Exception x) - { - // Default 24-hour timeout. - timeout = 86400; - } - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public synchronized Enumeration getIds() - { - Vector ids = new Vector(); - for(Iterator i = sessions.keySet().iterator(); i.hasNext(); ) - { - Session.ID id = (Session.ID) i.next(); - ids.add(id.getId()); - } - return ids.elements(); - } - - public synchronized SSLSession getSession(byte[] sessionId) - { - Session session = (Session) sessions.get(new Session.ID(sessionId)); - if (session == null) - return null; - long elapsed = System.currentTimeMillis() - session.getLastAccessedTime(); - if ((int) (elapsed / 1000) > timeout) - { - removeSession(session.sessionId); - session.invalidate(); - return null; - } - if (!session.valid) - { - removeSession(session.sessionId); - session.invalidate(); - return null; - } - return session; - } - - public int getSessionCacheSize() - { - return cacheSize; - } - - public void setSessionCacheSize(int cacheSize) - { - if (cacheSize < 0) - throw new IllegalArgumentException(); - this.cacheSize = cacheSize; - } - - public int getSessionTimeout() - { - return timeout; - } - - public void setSessionTimeout(int timeout) - { - if (timeout <= 0) - throw new IllegalArgumentException(); - this.timeout = timeout; - } - - public String toString() - { - return sessions.keySet().toString(); - } - - // Package methods. - // ------------------------------------------------------------------------- - - /** - * Adds a session to this context. This method: - * - *
      - *
    1. Will do nothing if the cache already contains the given ID.
    2. - *
    3. Will do nothing if the cache limit has been reached (and is - * not zero).
    4. - *
    5. Will remove any invalid sessions in the cache before trying to insert - * the new one.
    6. - *
    7. Will remove any expired sessions before trying to insert the new - * one.
    8. - *
    - * - * @param sessionId This session's ID. - * @param session The session to add. - * @return True if the session was added, false otherwise. - */ - synchronized boolean addSession(Session.ID sessionId, Session session) - { - if (sessions.containsKey(sessionId)) - return false; - if (cacheSize > 0 && sessions.size() > cacheSize) - { - boolean removed = false; - for (Iterator i = sessions.values().iterator(); i.hasNext(); ) - { - Session s = (Session) i.next(); - long elapsed = System.currentTimeMillis() - s.getCreationTime(); - if (!s.valid) - { - removeSession(session.sessionId); - removed = true; - } - else if ((int) (elapsed / 1000) > timeout) - { - removeSession(session.sessionId); - removed = true; - } - } - if (removed) - { - sessions.put(sessionId, session); - session.context = this; - session.sessionId = sessionId; - return true; - } - return false; - } - else - { - sessions.put(sessionId, session); - session.context = this; - session.sessionId = sessionId; - return true; - } - } - - /** - * Returns whether or not a session with the given ID is cached by this - * context. - */ - synchronized boolean containsSessionID(Session.ID sessionId) - { - Session s = (Session) sessions.get(sessionId); - if (s == null) - { - return false; - } - long elapsed = System.currentTimeMillis() - s.getCreationTime(); - if (!s.valid || (int) (elapsed / 1000) > timeout) - { - removeSession(sessionId); - return false; - } - return true; - } - - /** - * Removes a session from this context. - * - * @param sessionId The ID of the session to remove. - */ - synchronized boolean removeSession(Session.ID sessionId) - { - return sessions.remove(sessionId) != null; - } - - /** - * Notifies this context of an access event on a session. - * - * @param session The session that was accessed. - */ - void notifyAccess(Session session) - { - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java new file mode 100644 index 00000000000..86dcb4915cd --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java @@ -0,0 +1,198 @@ +/* SessionImpl.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.crypto.key.GnuPBEKey; +import gnu.javax.net.ssl.Session; +import gnu.javax.net.ssl.Session.ID; + +import java.io.IOException; +import java.io.Serializable; + +import java.security.Certificate; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; + +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SealedObject; +import javax.crypto.spec.PBEKeySpec; +import javax.net.ssl.SSLException; + +public class SessionImpl extends Session +{ + static final long serialVersionUID = 8932976607588442485L; + CipherSuite suite; + ProtocolVersion version; + byte[] privateDataSalt; + SealedObject sealedPrivateData; + MaxFragmentLength maxLength; + + transient PrivateData privateData; + + public SessionImpl() + { + super(); + privateData = new PrivateData(); + } + + SecureRandom random () + { + return random; + } + + public String getProtocol() + { + return version.toString(); + } + + public void prepare(char[] passwd) throws SSLException + { + try + { + privateDataSalt = new byte[32]; + random.nextBytes(privateDataSalt); + GnuPBEKey key = new GnuPBEKey(passwd, privateDataSalt, 1000); + Cipher cipher = Cipher.getInstance("PBEWithHMacSHA256AndAES/OFB/PKCS7Padding"); + cipher.init(Cipher.ENCRYPT_MODE, key); + sealedPrivateData = new SealedObject(privateData, cipher); + } + catch (IllegalBlockSizeException ibse) + { + throw new SSLException(ibse); + } + catch (InvalidKeyException ike) + { + throw new SSLException(ike); + } + catch (IOException ioe) + { + throw new SSLException(ioe); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + catch (NoSuchPaddingException nspe) + { + throw new SSLException(nspe); + } + } + + public void repair(char[] passwd) throws SSLException + { + try + { + GnuPBEKey key = new GnuPBEKey(passwd, privateDataSalt, 1000); + privateData = (PrivateData) sealedPrivateData.getObject(key); + } + catch (ClassNotFoundException cnfe) + { + throw new SSLException(cnfe); + } + catch (InvalidKeyException ike) + { + throw new SSLException(ike); + } + catch (IOException ioe) + { + throw new SSLException(ioe); + } + catch (NoSuchAlgorithmException nsae) + { + throw new SSLException(nsae); + } + } + + public SealedObject privateData() throws SSLException + { + if (privateData == null) + throw new SSLException("this session has not been prepared"); + return sealedPrivateData; + } + + public void setPrivateData(SealedObject so) throws SSLException + { + this.sealedPrivateData = so; + } + + void setApplicationBufferSize(int size) + { + applicationBufferSize = size; + } + + void setRandom(SecureRandom random) + { + this.random = random; + } + + void setTruncatedMac(boolean truncatedMac) + { + this.truncatedMac = truncatedMac; + } + + void setId(Session.ID id) + { + this.sessionId = id; + } + + void setLocalCertificates(java.security.cert.Certificate[] chain) + { + this.localCerts = chain; + } + + void setPeerCertificates(java.security.cert.Certificate[] chain) + { + this.peerCerts = chain; + } + + void setPeerVerified(boolean peerVerified) + { + this.peerVerified = peerVerified; + } + + static class PrivateData implements Serializable + { + static final long serialVersionUID = -8040597659545984581L; + byte[] masterSecret; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java b/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java index c9be641431f..8c6cfadc734 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java @@ -1,4 +1,4 @@ -/* Signature.java -- SSL signature message. +/* Signature.java -- SSL Signature structure. Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -49,6 +49,8 @@ import java.io.StringWriter; import java.math.BigInteger; +import java.nio.ByteBuffer; + import java.security.PublicKey; import java.security.interfaces.RSAKey; @@ -56,103 +58,115 @@ import java.util.Arrays; import gnu.java.security.der.*; -class Signature implements Constructed +/** + * The signature structure. + * + *
    +select (SignatureAlgorithm)
    +{
    +case anonymous:
    +  struct { };
    +case rsa:
    +  digitally-signed struct
    +  {
    +    opaque md5_hash[16];
    +    opaque sha_hash[20];
    +  };
    +case dsa:
    +  digitally-signed struct
    +  {
    +    opaque sha_hash[20];
    +  };
    +} Signature;
    + */ +public class Signature implements Builder, Constructed { // Fields. // ------------------------------------------------------------------------- - private final Object sigValue; - private final String sigAlg; + private final ByteBuffer buffer; + private final SignatureAlgorithm alg; // Constructor. // ------------------------------------------------------------------------- - Signature(Object sigValue, String sigAlg) + public Signature (final ByteBuffer buffer, final SignatureAlgorithm alg) { - this.sigValue = sigValue; - this.sigAlg = sigAlg; + this.buffer = buffer; + this.alg = alg; } - - // Class method. - // ------------------------------------------------------------------------- - - static Signature read(InputStream in, CipherSuite suite, PublicKey key) - throws IOException + + public Signature (final byte[] sigValue, final SignatureAlgorithm alg) { - Object sigValue = null; - DataInputStream din = new DataInputStream(in); - int len = din.readUnsignedShort(); - sigValue = new byte[len]; - din.readFully((byte[]) sigValue); - if (suite.getSignature() == "DSS") - { - DERReader der = new DERReader(new ByteArrayInputStream((byte[]) sigValue)); - if (der.read().getTag() != DER.SEQUENCE) - { - throw new IOException("expecting DER SEQUENCE"); - } - BigInteger r = (BigInteger) der.read().getValue(); - BigInteger s = (BigInteger) der.read().getValue(); - sigValue = new BigInteger[] { r, s }; - } - return new Signature(sigValue, suite.getSignature()); + buffer = ByteBuffer.allocate(sigValue.length + 2); + buffer.putShort((short) sigValue.length); + buffer.put(sigValue); + buffer.position(0); + this.alg = alg; } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length () + { + if (alg.equals (SignatureAlgorithm.ANONYMOUS)) + return 0; + return (buffer.getShort (0) & 0xFFFF) + 2; + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public byte[] signature () { - write(out, ProtocolVersion.TLS_1); + if (alg.equals (SignatureAlgorithm.ANONYMOUS)) + return new byte[0]; + int length = buffer.getShort (0) & 0xFFFF; + byte[] buf = new byte[length]; + ((ByteBuffer) buffer.duplicate().position(2)).get(buf); + return buf; } - public void write(OutputStream out, ProtocolVersion version) - throws IOException + public void setSignature (final byte[] signature) { - byte[] result = null; - if (sigValue instanceof byte[]) - { - result = (byte[]) sigValue; - } - else - { - DERValue r = new DERValue(DER.INTEGER, ((BigInteger[]) sigValue)[0]); - DERValue s = new DERValue(DER.INTEGER, ((BigInteger[]) sigValue)[1]); - DERValue sig = new DERValue(DER.SEQUENCE|DER.CONSTRUCTED, - Arrays.asList(new Object[] { r, s })); - result = sig.getEncoded(); - } - out.write(result.length >>> 8 & 0xFF); - out.write(result.length & 0xFF); - out.write(result); + setSignature (signature, 0, signature.length); } - Object getSigValue() + public void setSignature (final byte[] signature, final int offset, final int length) { - return sigValue; + if (alg.equals (SignatureAlgorithm.ANONYMOUS)) + return; + buffer.putShort (0, (short) length); + buffer.position (2); + buffer.put (signature, offset, length); } - String getSigAlg() + public String toString () { - return sigAlg; + return toString (null); } - public String toString() + public String toString (final String prefix) { StringWriter str = new StringWriter(); PrintWriter out = new PrintWriter(str); + if (prefix != null) + out.print (prefix); out.println("struct {"); - if (sigAlg.equals("RSA")) - { - out.print(Util.hexDump((byte[]) sigValue, " ")); - } - else + if (!alg.equals (SignatureAlgorithm.ANONYMOUS)) { - out.println(" r = " + ((BigInteger[]) sigValue)[0].toString(16) + ";"); - out.println(" s = " + ((BigInteger[]) sigValue)[1].toString(16) + ";"); + String subprefix = " "; + if (prefix != null) + subprefix = prefix + subprefix; + out.print (Util.hexDump (signature (), subprefix)); } - out.println("} Signature;"); + if (prefix != null) + out.print (prefix); + out.print ("} Signature;"); return str.toString(); } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java b/libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java new file mode 100644 index 00000000000..a789576db90 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java @@ -0,0 +1,62 @@ +/* SignatureAlgorithm.java -- Signature algorithm enumeration. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +public enum SignatureAlgorithm +{ + ANONYMOUS, RSA, DSA; + + /** + * Returns the algorithm name for this signature algorithm, which can + * be used with the JCA API to get a {@link java.security.Signature} for + * that algorithm. + * + * @return The algorithm name. + */ + public String algorithm() + { + switch (this) + { + case ANONYMOUS: return null; + case RSA: return "TLSv1.1-RSA"; + case DSA: return "DSS"; + } + return null; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java b/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java new file mode 100644 index 00000000000..b9d0f95519d --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java @@ -0,0 +1,146 @@ +/* SimpleSessionContext.java -- memory-only session store. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.AbstractSessionContext; +import gnu.javax.net.ssl.Session; +import gnu.javax.net.ssl.SessionStoreException; +import gnu.javax.net.ssl.Session.ID; + +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * A simple, non-persistent SessionContext. + * + * @author csm + */ +public final class SimpleSessionContext + extends AbstractSessionContext +{ + /** + * By default, sessions last for 5 minutes. + */ + public static final int DEFAULT_TIMEOUT = 300; + + private final HashMap store; + private int storeLimit; + + public SimpleSessionContext() + { + super(DEFAULT_TIMEOUT); + storeLimit = 0; + store = new HashMap(); + } + + @Override + protected Session implGet(byte[] sessionId) + { + return store.get(new Session.ID(sessionId)); + } + + @Override + public void load(char[] password) throws SessionStoreException + { + // Not supported. Memory-only. + } + + @Override + public void put(Session session) + { + if (storeLimit > 0 && store.size() >= storeLimit) + { + Session oldest = null; + for (Map.Entry e : store.entrySet()) + { + Session s = e.getValue(); + long stamp = s.getLastAccessedTime(); + if (oldest == null || oldest.getLastAccessedTime() > stamp) + oldest = s; + } + store.remove(oldest.id()); + } + store.put(session.id(), session); + } + + @Override + public void remove(byte[] sessionId) + { + store.remove(new Session.ID(sessionId)); + } + + @Override + public void store(char[] password) throws SessionStoreException + { + // Not supported. Memory-only. + } + + public Enumeration getIds() + { + return new Enumeration() + { + Iterator it = store.keySet().iterator(); + + public boolean hasMoreElements() + { + return it.hasNext(); + } + + public Object nextElement() + { + return it.next().id(); + } + }; + } + + public int getSessionCacheSize() + { + return storeLimit; + } + + public void setSessionCacheSize(int size) + { + if (size < 0) + throw new IllegalArgumentException("cache size must be nonnegative"); + this.storeLimit = size; + } + +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SynchronizedRandom.java b/libjava/classpath/gnu/javax/net/ssl/provider/SynchronizedRandom.java deleted file mode 100644 index 4e22f08be08..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SynchronizedRandom.java +++ /dev/null @@ -1,104 +0,0 @@ -/* SynchronizedRandom.java -- Thread-safe IRandom wrapper. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.util.Map; -import gnu.java.security.prng.IRandom; -import gnu.java.security.prng.LimitReachedException; - -class SynchronizedRandom implements IRandom -{ - - // Field. - // ------------------------------------------------------------------------- - - private final IRandom random; - - // Constructor. - // ------------------------------------------------------------------------- - - SynchronizedRandom(IRandom random) - { - this.random = random; - } - - // Instance methods. - // ------------------------------------------------------------------------- - - public String name() - { - return random.name(); - } - - public synchronized void init(Map attrib) - { - random.init(attrib); - } - - public synchronized byte nextByte() - throws IllegalStateException, LimitReachedException - { - return random.nextByte(); - } - - public synchronized void nextBytes(byte[] buf, int off, int len) - throws IllegalStateException, LimitReachedException - { - random.nextBytes(buf, off, len); - } - - public synchronized Object clone() - throws CloneNotSupportedException - { - return new SynchronizedRandom((IRandom) random.clone()); - } - - // For future versions of GNU Crypto. No-ops. - public void addRandomByte (byte b) - { - } - - public void addRandomBytes(byte[] buffer) { - addRandomBytes(buffer, 0, buffer.length); - } - - public void addRandomBytes (byte[] b, int i, int j) - { - } -} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java b/libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java new file mode 100644 index 00000000000..0595f87a7a6 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java @@ -0,0 +1,76 @@ +/* TruncatedHMAC.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.provider.Extension.Value; + +import java.nio.ByteBuffer; + +/** + * The value type for the {@link Extension.Type#TRUNCATED_HMAC} extension. + * This extension has an empty value; this class is thusly empty. + * + * @author csm + */ +public class TruncatedHMAC extends Value +{ + + public int length() + { + return 0; + } + + public ByteBuffer buffer() + { + return ByteBuffer.wrap(new byte[0]); + } + + public String toString() + { + return toString(null); + } + + public String toString(String prefix) + { + String s = "TruncatedHMAC;"; + if (prefix != null) + s = prefix + s; + return s; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java b/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java new file mode 100644 index 00000000000..1e4b173595d --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java @@ -0,0 +1,298 @@ +/* TrustedAuthorities.java + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.java.security.x509.X500DistinguishedName; +import gnu.javax.net.ssl.provider.Extension.Value; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.Iterator; +import java.util.NoSuchElementException; + +import javax.security.auth.x500.X500Principal; + +/** + * The trusted authorities hello extension. + * + *
    +struct {
    +  TrustedAuthority trusted_authorities_list<0..2^16-1>;
    +} TrustedAuthorities;
    +
    +struct {
    +  IdentifierType identifier_type;
    +  select (identifier_type) {
    +    case pre_agreed: struct {};
    +    case key_sha1_hash: SHA1Hash;
    +    case x509_name: DistinguishedName;
    +    case cert_sha1_hash: SHA1Hash;
    +  } identifier;
    +} TrustedAuthority;
    +
    +enum {
    +  pre_agreed(0), key_sha1_hash(1), x509_name(2),
    +  cert_sha1_hash(3), (255)
    +} IdentifierType;
    +
    +opaque DistinguishedName<1..2^16-1>;
    + * + * @author csm + */ +public class TrustedAuthorities extends Value + implements Iterable +{ + private final ByteBuffer buffer; + + public TrustedAuthorities(final ByteBuffer buffer) + { + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + } + + // XXX really implement Builder. + + public int length() + { + return 2 + (buffer.getShort(0) & 0xFFFF); + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); + } + + public int size() + { + int len = buffer.getShort(0) & 0xFFFF; + int n = 0; + for (int i = 2; i < len; i++) + { + TrustedAuthority auth = + new TrustedAuthority((ByteBuffer) buffer.duplicate().position(i)); + i += auth.length(); + n++; + } + return n; + } + + public TrustedAuthority get(final int index) + { + int len = buffer.getShort(0) & 0xFFFF; + int n = 0; + int i = 2; + while (i < len && n <= index) + { + TrustedAuthority auth = + new TrustedAuthority((ByteBuffer) buffer.duplicate().position(i)); + if (n == index) + return auth; + i += auth.length(); + n++; + } + throw new IndexOutOfBoundsException(); + } + + public String toString() + { + return toString(null); + } + + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + String subprefix = " "; + if (prefix != null) + subprefix = prefix + subprefix; + for(TrustedAuthority ta : this) + out.println(ta); + if (prefix != null) out.print(prefix); + out.print("} TrustedAuthorities;"); + return str.toString(); + } + + public Iterator iterator() + { + return new AuthoritiesIterator(); + } + + public class AuthoritiesIterator implements Iterator + { + private int index; + + public AuthoritiesIterator() + { + index = 0; + } + + public TrustedAuthority next() throws NoSuchElementException + { + try + { + return get(index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException(); + } + } + + public boolean hasNext() + { + return index < size(); + } + + public void remove() + { + throw new UnsupportedOperationException(); + } + } + + public static class TrustedAuthority implements Constructed + { + private final ByteBuffer buffer; + + public TrustedAuthority(final ByteBuffer buffer) + { + this.buffer = buffer; + } + + public int length() + { + switch (type().getValue()) + { + case 0: return 1; + case 1: + case 3: return 21; + case 2: return 3 + (buffer.getShort(1) & 0xFFFF); + } + throw new IllegalArgumentException("unknown authority type"); + } + + public byte[] sha1Hash() + { + IdentifierType t = type(); + if (t != IdentifierType.CERT_SHA1_HASH + && t != IdentifierType.KEY_SHA1_HASH) + throw new IllegalArgumentException(t + " does not have a hash value"); + byte[] b = new byte[20]; + ((ByteBuffer) buffer.duplicate().position(1)).get(b); + return b; + } + + public X500Principal name() + { + int len = buffer.getShort(1) & 0xFFFF; + byte[] b = new byte[len]; + ((ByteBuffer) buffer.duplicate().position(3)).get(b); + return new X500Principal(b); + } + + public IdentifierType type() + { + switch (buffer.get(0)) + { + case 0: return IdentifierType.PRE_AGREED; + case 1: return IdentifierType.KEY_SHA1_HASH; + case 2: return IdentifierType.X509_NAME; + case 3: return IdentifierType.CERT_SHA1_HASH; + } + + throw new IllegalArgumentException("invalid IdentifierType"); + } + + public String toString() + { + return toString(null); + } + + public String toString(String prefix) + { + StringWriter str = new StringWriter(); + PrintWriter out = new PrintWriter(str); + if (prefix != null) out.print(prefix); + out.println("struct {"); + if (prefix != null) out.print(prefix); + out.print(" identifier_type = "); + out.print(type()); + out.println(";"); + switch (type().getValue()) + { + case 0: break; + case 1: + case 3: + if (prefix != null) out.print(prefix); + out.print(" sha1_hash = "); + out.print(Util.toHexString(sha1Hash(), ':')); + out.println(";"); + break; + + case 2: + if (prefix != null) out.print(prefix); + out.print(" name = "); + out.print(name()); + out.println(";"); + } + if (prefix != null) out.print(prefix); + out.print("} TrustedAuthority;"); + return str.toString(); + } + } + + public static enum IdentifierType + { + PRE_AGREED (0), KEY_SHA1_HASH (1), X509_NAME (2), CERT_SHA1_HASH (3); + + private final int value; + + private IdentifierType(final int value) + { + this.value = value; + } + + public int getValue() + { + return value; + } + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java b/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java new file mode 100644 index 00000000000..2094daf9098 --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java @@ -0,0 +1,83 @@ +/* UnresolvedExtensionValue.jav -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import gnu.javax.net.ssl.provider.Extension.Value; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.nio.ByteBuffer; + +public class UnresolvedExtensionValue extends Value +{ + private final ByteBuffer buffer; + + public UnresolvedExtensionValue (final ByteBuffer buffer) + { + this.buffer = buffer; + } + + public int length() + { + return buffer.limit(); + } + + public ByteBuffer buffer() + { + return value(); + } + + public ByteBuffer value() + { + return buffer.slice(); + } + + public String toString() + { + return toString(null); + } + + public String toString(final String prefix) + { + String s = Util.hexDump(buffer); + if (prefix != null) + s = prefix + s; + return s; + } +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Util.java b/libjava/classpath/gnu/javax/net/ssl/provider/Util.java index 15790dd26f8..ba8ea7db70b 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Util.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Util.java @@ -38,11 +38,16 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; +import java.io.PrintWriter; +import java.io.StringWriter; + import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.math.BigInteger; +import java.nio.ByteBuffer; + import java.security.AccessController; import java.security.PrivilegedAction; import java.security.Security; @@ -52,7 +57,7 @@ import java.security.Security; * * @author Casey Marshall (rsdio@metastatic.org) */ -final class Util +public final class Util { // Constants. @@ -66,13 +71,40 @@ final class Util // Class methods. // ------------------------------------------------------------------------- + public static Object wrapBuffer(ByteBuffer buffer) + { + return wrapBuffer(buffer, ""); + } + + public static Object wrapBuffer(ByteBuffer buffer, String prefix) + { + return new WrappedBuffer(buffer, prefix); + } + + private static class WrappedBuffer + { + private final ByteBuffer buffer; + private final String prefix; + + WrappedBuffer(ByteBuffer buffer, String prefix) + { + this.buffer = buffer; + this.prefix = prefix; + } + + public String toString() + { + return hexDump(buffer, prefix); + } + } + /** * Convert a hexadecimal string into its byte representation. * * @param hex The hexadecimal string. * @return The converted bytes. */ - static byte[] toByteArray(String hex) + public static byte[] toByteArray(String hex) { hex = hex.toLowerCase(); byte[] buf = new byte[hex.length() / 2]; @@ -94,7 +126,7 @@ final class Util * @param len The number of bytes to format. * @return A hexadecimal representation of the specified bytes. */ - static String toHexString(byte[] buf, int off, int len) + public static String toHexString(byte[] buf, int off, int len) { StringBuffer str = new StringBuffer(); for (int i = 0; i < len; i++) @@ -108,7 +140,7 @@ final class Util /** * See {@link #toHexString(byte[],int,int)}. */ - static String toHexString(byte[] buf) + public static String toHexString(byte[] buf) { return Util.toHexString(buf, 0, buf.length); } @@ -123,7 +155,7 @@ final class Util * @param sep The character to insert between octets. * @return A hexadecimal representation of the specified bytes. */ - static String toHexString(byte[] buf, int off, int len, char sep) + public static String toHexString(byte[] buf, int off, int len, char sep) { StringBuffer str = new StringBuffer(); for (int i = 0; i < len; i++) @@ -139,7 +171,7 @@ final class Util /** * See {@link #toHexString(byte[],int,int,char)}. */ - static String toHexString(byte[] buf, char sep) + public static String toHexString(byte[] buf, char sep) { return Util.toHexString(buf, 0, buf.length, sep); } @@ -159,7 +191,7 @@ final class Util * @param prefix A string to prepend to every line. * @return The formatted string. */ - static String hexDump(byte[] buf, int off, int len, String prefix) + public static String hexDump(byte[] buf, int off, int len, String prefix) { String nl = getProperty("line.separator"); StringBuffer str = new StringBuffer(); @@ -172,7 +204,7 @@ final class Util str.append(" "); String s = Util.toHexString(buf, i+off, Math.min(16, len-i), ' '); str.append(s); - for (int j = 56 - (56 - s.length()); j < 56; j++) + for (int j = s.length(); j < 49; j++) str.append(" "); for (int j = 0; j < Math.min(16, len - i); j++) { @@ -187,10 +219,49 @@ final class Util return str.toString(); } + public static String hexDump (ByteBuffer buf) + { + return hexDump (buf, null); + } + + public static String hexDump (ByteBuffer buf, String prefix) + { + buf = buf.duplicate(); + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + int i = 0; + int len = buf.remaining(); + byte[] line = new byte[16]; + while (i < len) + { + if (prefix != null) + out.print(prefix); + out.print(Util.formatInt (i, 16, 8)); + out.print(" "); + int l = Math.min(16, len - i); + buf.get(line, 0, l); + String s = Util.toHexString(line, 0, l, ' '); + out.print(s); + for (int j = s.length(); j < 49; j++) + out.print(' '); + for (int j = 0; j < l; j++) + { + int c = line[j] & 0xFF; + if (c < 0x20 || c > 0x7E) + out.print('.'); + else + out.print((char) c); + } + out.println(); + i += 16; + } + return str.toString(); + } + /** * See {@link #hexDump(byte[],int,int,String)}. */ - static String hexDump(byte[] buf, int off, int len) + public static String hexDump(byte[] buf, int off, int len) { return hexDump(buf, off, len, ""); } @@ -198,7 +269,7 @@ final class Util /** * See {@link #hexDump(byte[],int,int,String)}. */ - static String hexDump(byte[] buf, String prefix) + public static String hexDump(byte[] buf, String prefix) { return hexDump(buf, 0, buf.length, prefix); } @@ -206,7 +277,7 @@ final class Util /** * See {@link #hexDump(byte[],int,int,String)}. */ - static String hexDump(byte[] buf) + public static String hexDump(byte[] buf) { return hexDump(buf, 0, buf.length); } @@ -220,7 +291,7 @@ final class Util * zero-padded to this length, but may be longer. * @return The formatted integer. */ - static String formatInt(int i, int radix, int len) + public static String formatInt(int i, int radix, int len) { String s = Integer.toString(i, radix); StringBuffer buf = new StringBuffer(); @@ -237,7 +308,7 @@ final class Util * @param b2 The second byte array. * @return The concatenation of b1 and b2. */ - static byte[] concat(byte[] b1, byte[] b2) + public static byte[] concat(byte[] b1, byte[] b2) { byte[] b3 = new byte[b1.length+b2.length]; System.arraycopy(b1, 0, b3, 0, b1.length); @@ -248,7 +319,7 @@ final class Util /** * See {@link #trim(byte[],int,int)}. */ - static byte[] trim(byte[] buffer, int len) + public static byte[] trim(byte[] buffer, int len) { return trim(buffer, 0, len); } @@ -266,7 +337,7 @@ final class Util * length. * @return The trimmed byte array. */ - static byte[] trim(byte[] buffer, int off, int len) + public static byte[] trim(byte[] buffer, int off, int len) { if (off < 0 || len < 0 || off > buffer.length) throw new IndexOutOfBoundsException("max=" + buffer.length + @@ -286,7 +357,7 @@ final class Util * @return The byte representation of the big integer, with any leading * zero removed. */ - static byte[] trim(BigInteger bi) + public static byte[] trim(BigInteger bi) { byte[] buf = bi.toByteArray(); if (buf[0] == 0x00 && !bi.equals(BigInteger.ZERO)) @@ -305,7 +376,7 @@ final class Util * * @return The current time, in seconds. */ - static int unixTime() + public static int unixTime() { return (int) (System.currentTimeMillis() / 1000L); } @@ -385,7 +456,7 @@ final class Util * @throws SecurityException If the Jessie code still does not have * permission to read the property. */ - static String getProperty(final String name) + @Deprecated static String getProperty(final String name) { return (String) AccessController.doPrivileged( new PrivilegedAction() @@ -407,7 +478,7 @@ final class Util * @throws SecurityException If the Jessie code still does not have * permission to read the property. */ - static String getSecurityProperty(final String name) + @Deprecated static String getSecurityProperty(final String name) { return (String) AccessController.doPrivileged( new PrivilegedAction() diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java b/libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java new file mode 100644 index 00000000000..1c88479cbbc --- /dev/null +++ b/libjava/classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java @@ -0,0 +1,272 @@ +/* X500PrincipalList.java -- A list of X.500 names. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import java.nio.ByteBuffer; + +import java.util.ConcurrentModificationException; +import java.util.ListIterator; +import java.util.NoSuchElementException; + +import javax.security.auth.x500.X500Principal; + +public final class X500PrincipalList implements Iterable +{ + private final ByteBuffer buffer; + private int modCount; + + public X500PrincipalList (final ByteBuffer buffer) + { + this.buffer = buffer; + modCount = 0; + } + + public int size () + { + return (buffer.getShort (0) & 0xFFFF); + } + + public int count () + { + int size = size (); + int i = 0; + for (int offset = 2; offset < size; i++) + { + int _size = (buffer.getShort (offset) & 0xFFFF); + // We don't want this going into an infinite loop if + // you mistakenly put a zero-length name. + if (_size == 0) + break; + offset += _size + 2; + } + return i; + } + + public X500Principal get (final int index) + { + if (index < 0) + throw new IndexOutOfBoundsException ("negative index"); + int size = size (); + int i = 0; + for (int offset = 2; offset < size; i++) + { + int _size = (buffer.getShort (offset) & 0xFFFF); + if (_size == 0) + throw new IndexOutOfBoundsException ("zero-length name encountered"); + if (i == index) + { + byte[] buf = new byte[_size]; + buffer.position (offset + 2); + buffer.get (buf); + return new X500Principal (buf); + } + offset += 2 + _size; + } + throw new IndexOutOfBoundsException ("limit: " + i + "; requested: " + index); + } + + public void put (final int index, final X500Principal principal) + { + put (index, principal.getEncoded ()); + } + + public void put (final int index, final byte[] encoded) + { + if (index < 0) + throw new IndexOutOfBoundsException ("negative index"); + int size = size (); + int i = 0; + for (int offset = 2; offset < size; i++) + { + int off = (buffer.getShort (offset) & 0xFFFF); + if (i == index) + { + buffer.putShort (offset, (short) encoded.length); + buffer.position (offset + 2); + buffer.put (encoded); + modCount++; + return; + } + offset += 2 + off; + } + throw new IndexOutOfBoundsException ("limit: " + (i-1) + "; requested: " + index); + } + + public void setSize (final int numNames, final int namesSize) + { + if (numNames < 1) + throw new IllegalArgumentException ("must have at least one name"); + int size = (numNames * 2) + namesSize; + if (size < 3 || size > buffer.capacity () || size > 0xFFFF) + throw new IllegalArgumentException ("size out of range; maximum: " + + Math.min (buffer.capacity (), 0xFFFF)); + buffer.putShort (0, (short) size); + } + + public String toString () + { + return toString (null); + } + + public String toString (final String prefix) + { + StringWriter str = new StringWriter (); + PrintWriter out = new PrintWriter (str); + if (prefix != null) out.print (prefix); + out.print ("["); + out.print (count ()); + out.println ("] {"); + for (Iterator it = new Iterator (); it.hasNext (); ) + { + if (prefix != null) out.print (prefix); + out.print (" "); + out.println (it.next ()); + } + if (prefix != null) out.print (prefix); + out.print ("};"); + return str.toString (); + } + + public boolean equals (Object o) + { + if (!(o instanceof X500PrincipalList)) + return false; + X500PrincipalList that = (X500PrincipalList) o; + + if (size () != that.size ()) + return false; + + for (Iterator it1 = new Iterator (), it2 = that.new Iterator (); + it1.hasNext () && it2.hasNext (); ) + { + if (!it1.next ().equals (it2.next ())) + return false; + } + return true; + } + + public java.util.Iterator iterator () + { + return new Iterator(); + } + + public class Iterator implements ListIterator + { + private final int modCount; + private int index; + private final int count; + + public Iterator () + { + this.modCount = X500PrincipalList.this.modCount; + index = 0; + count = count (); + } + + public void add (X500Principal o) + { + throw new UnsupportedOperationException (); + } + + public boolean hasNext () + { + return (index < count); + } + + public boolean hasPrevious () + { + return (index > 0); + } + + public X500Principal next () throws NoSuchElementException + { + if (modCount != X500PrincipalList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (index++); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException (); + } + } + + public int nextIndex () + { + if (hasNext ()) + return (index + 1); + return -1; + } + + public X500Principal previous () throws NoSuchElementException + { + if (index == 0) + throw new NoSuchElementException (); + if (modCount != X500PrincipalList.this.modCount) + throw new ConcurrentModificationException (); + try + { + return get (--index); + } + catch (IndexOutOfBoundsException ioobe) + { + throw new NoSuchElementException (); + } + } + + public int previousIndex () + { + return (index - 1); + } + + public void remove () + { + throw new UnsupportedOperationException (); + } + + public void set (final X500Principal o) + { + throw new UnsupportedOperationException (); + } + } +} \ No newline at end of file diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java b/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java index 476655c45da..dc772886697 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java @@ -54,7 +54,6 @@ import java.security.NoSuchAlgorithmException; import java.security.Principal; import java.security.PrivateKey; import java.security.PublicKey; -import java.security.Security; import java.security.UnrecoverableKeyException; import java.security.cert.Certificate; import java.security.cert.CertificateException; @@ -76,6 +75,8 @@ import javax.crypto.interfaces.DHPublicKey; import javax.net.ssl.KeyManager; import javax.net.ssl.KeyManagerFactorySpi; import javax.net.ssl.ManagerFactoryParameters; +import javax.net.ssl.SSLEngine; +import javax.net.ssl.X509ExtendedKeyManager; import javax.net.ssl.X509KeyManager; import gnu.javax.net.ssl.NullManagerParameters; @@ -122,13 +123,17 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi } else if (params instanceof PrivateCredentials) { - List chains = ((PrivateCredentials) params).getCertChains(); - List keys = ((PrivateCredentials) params).getPrivateKeys(); + List chains + = ((PrivateCredentials) params).getCertChains(); + List keys + = ((PrivateCredentials) params).getPrivateKeys(); int i = 0; - HashMap certMap = new HashMap(); - HashMap keyMap = new HashMap(); - Iterator c = chains.iterator(); - Iterator k = keys.iterator(); + HashMap certMap + = new HashMap(); + HashMap keyMap + = new HashMap(); + Iterator c = chains.iterator(); + Iterator k = keys.iterator(); while (c.hasNext() && k.hasNext()) { certMap.put(String.valueOf(i), c.next()); @@ -171,8 +176,9 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi } } - HashMap p = new HashMap(); - HashMap c = new HashMap(); + HashMap p = new HashMap(); + HashMap c + = new HashMap(); Enumeration aliases = store.aliases(); UnrecoverableKeyException exception = null; while (aliases.hasMoreElements()) @@ -236,18 +242,19 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi // Inner class. // ------------------------------------------------------------------------- - private class Manager implements X509KeyManager + private class Manager extends X509ExtendedKeyManager { // Fields. // ----------------------------------------------------------------------- - private final Map privateKeys; - private final Map certChains; + private final Map privateKeys; + private final Map certChains; // Constructor. // ----------------------------------------------------------------------- - Manager(Map privateKeys, Map certChains) + Manager(Map privateKeys, + Map certChains) { this.privateKeys = privateKeys; this.certChains = certChains; @@ -267,6 +274,19 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi } return null; } + + public @Override String chooseEngineClientAlias(String[] keyTypes, + Principal[] issuers, + SSLEngine engine) + { + for (String type : keyTypes) + { + String[] s = getClientAliases(type, issuers); + if (s.length > 0) + return s[0]; + } + return null; + } public String[] getClientAliases(String keyType, Principal[] issuers) { @@ -281,6 +301,16 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi return s[0]; return null; } + + public @Override String chooseEngineServerAlias(String keyType, + Principal[] issuers, + SSLEngine engine) + { + String[] s = getServerAliases(keyType, issuers); + if (s.length > 0) + return s[0]; + return null; + } public String[] getServerAliases(String keyType, Principal[] issuers) { @@ -289,7 +319,7 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi private String[] getAliases(String keyType, Principal[] issuers) { - LinkedList l = new LinkedList(); + LinkedList l = new LinkedList(); for (Iterator i = privateKeys.keySet().iterator(); i.hasNext(); ) { String alias = (String) i.next(); @@ -300,21 +330,27 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi if (privKey == null) continue; PublicKey pubKey = chain[0].getPublicKey(); - if (keyType.equals("RSA") || keyType.equals("DHE_RSA") || - keyType.equals("SRP_RSA") || keyType.equals("rsa_sign")) + if (keyType.equalsIgnoreCase("RSA") + || keyType.equalsIgnoreCase("DHE_RSA") + || keyType.equalsIgnoreCase("SRP_RSA") + || keyType.equalsIgnoreCase("rsa_sign") + || keyType.equalsIgnoreCase("RSA_PSK")) { if (!(privKey instanceof RSAPrivateKey) || !(pubKey instanceof RSAPublicKey)) continue; } - if (keyType.equals("DHE_DSS") || keyType.equals("dss_sign") || - keyType.equals("SRP_DSS")) + else if (keyType.equalsIgnoreCase("DHE_DSS") + || keyType.equalsIgnoreCase("dss_sign") + || keyType.equalsIgnoreCase("SRP_DSS") + || keyType.equalsIgnoreCase("DSA")) { if (!(privKey instanceof DSAPrivateKey) || !(pubKey instanceof DSAPublicKey)) continue; } - if (keyType.equals("DH_RSA") || keyType.equals("rsa_fixed_dh")) + else if (keyType.equalsIgnoreCase("DH_RSA") + || keyType.equalsIgnoreCase("rsa_fixed_dh")) { if (!(privKey instanceof DHPrivateKey) || !(pubKey instanceof DHPublicKey)) @@ -322,7 +358,8 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi if (!chain[0].getSigAlgName().equalsIgnoreCase("RSA")) continue; } - if (keyType.equals("DH_DSS") || keyType.equals("dss_fixed_dh")) + else if (keyType.equalsIgnoreCase("DH_DSS") + || keyType.equalsIgnoreCase("dss_fixed_dh")) { if (!(privKey instanceof DHPrivateKey) || !(pubKey instanceof DHPublicKey)) @@ -330,19 +367,23 @@ public class X509KeyManagerFactory extends KeyManagerFactorySpi if (!chain[0].getSigAlgName().equalsIgnoreCase("DSA")) continue; } + else // Unknown key type; ignore it. + continue; if (issuers == null || issuers.length == 0) { l.add(alias); continue; } - for (int j = 0; j < issuers.length; j++) - if (chain[0].getIssuerDN().equals(issuers[j])) - { - l.add(alias); - break; - } + for (Principal issuer : issuers) + { + if (chain[0].getIssuerDN().equals(issuer)) + { + l.add(alias); + break; + } + } } - return (String[]) l.toArray(new String[l.size()]); + return l.toArray(new String[l.size()]); } public X509Certificate[] getCertificateChain(String alias) diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java b/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java index 4f049e916d9..1a0591284a4 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java @@ -45,17 +45,20 @@ import java.util.Arrays; import java.util.Enumeration; import java.util.HashSet; import java.util.LinkedList; +import java.util.Set; +import java.security.AccessController; import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.Security; -import java.security.SignatureException; +import java.security.cert.CertPath; +import java.security.cert.CertPathValidator; +import java.security.cert.CertPathValidatorException; import java.security.cert.Certificate; import java.security.cert.CertificateException; +import java.security.cert.PKIXParameters; +import java.security.cert.TrustAnchor; import java.security.cert.X509Certificate; import javax.net.ssl.ManagerFactoryParameters; @@ -63,6 +66,8 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactorySpi; import javax.net.ssl.X509TrustManager; +import gnu.java.security.action.GetPropertyAction; +import gnu.java.security.x509.X509CertPath; import gnu.javax.net.ssl.NullManagerParameters; import gnu.javax.net.ssl.StaticTrustAnchors; @@ -76,21 +81,22 @@ public class X509TrustManagerFactory extends TrustManagerFactorySpi // Constants and fields. // ------------------------------------------------------------------------- + private static final String sep + = AccessController.doPrivileged(new GetPropertyAction("file.separator")); + /** * The location of the JSSE key store. */ - private static final String JSSE_CERTS = Util.getProperty("java.home") - + Util.getProperty("file.separator") + "lib" - + Util.getProperty("file.separator") + "security" - + Util.getProperty("file.separator") + "jssecerts"; + private static final String JSSE_CERTS + = AccessController.doPrivileged(new GetPropertyAction("java.home")) + + sep + "lib" + sep + "security" + sep + "jssecerts"; /** * The location of the system key store, containing the CA certs. */ - private static final String CA_CERTS = Util.getProperty("java.home") - + Util.getProperty("file.separator") + "lib" - + Util.getProperty("file.separator") + "security" - + Util.getProperty("file.separator") + "cacerts"; + private static final String CA_CERTS + = AccessController.doPrivileged(new GetPropertyAction("java.home")) + + sep + "lib" + sep + "security" + sep + "cacerts"; private Manager current; @@ -135,13 +141,14 @@ public class X509TrustManagerFactory extends TrustManagerFactorySpi { if (store == null) { - String s = Util.getProperty("javax.net.ssl.trustStoreType"); + GetPropertyAction gpa = new GetPropertyAction("javax.net.ssl.trustStoreType"); + String s = AccessController.doPrivileged(gpa); if (s == null) s = KeyStore.getDefaultType(); store = KeyStore.getInstance(s); try { - s = Util.getProperty("javax.net.ssl.trustStore"); + s = AccessController.doPrivileged(gpa.setParameters("javax.net.ssl.trustStore")); FileInputStream in = null; if (s == null) { @@ -158,24 +165,24 @@ public class X509TrustManagerFactory extends TrustManagerFactorySpi { in = new FileInputStream(s); } - String p = Util.getProperty("javax.net.ssl.trustStorePassword"); + String p = AccessController.doPrivileged(gpa.setParameters("javax.net.ssl.trustStorePassword")); store.load(in, p != null ? p.toCharArray() : null); } catch (IOException ioe) { - throw new KeyStoreException(ioe.toString()); + throw new KeyStoreException(ioe); } catch (CertificateException ce) { - throw new KeyStoreException(ce.toString()); + throw new KeyStoreException(ce); } catch (NoSuchAlgorithmException nsae) { - throw new KeyStoreException(nsae.toString()); + throw new KeyStoreException(nsae); } } - LinkedList l = new LinkedList(); + LinkedList l = new LinkedList(); Enumeration aliases = store.aliases(); while (aliases.hasMoreElements()) { @@ -185,10 +192,9 @@ public class X509TrustManagerFactory extends TrustManagerFactorySpi Certificate c = store.getCertificate(alias); if (!(c instanceof X509Certificate)) continue; - l.add(c); + l.add((X509Certificate) c); } - current = this.new Manager((X509Certificate[]) - l.toArray(new X509Certificate[l.size()])); + current = this.new Manager(l.toArray(new X509Certificate[l.size()])); } // Inner class. @@ -203,14 +209,21 @@ public class X509TrustManagerFactory extends TrustManagerFactorySpi // Fields. // ----------------------------------------------------------------------- - private final X509Certificate[] trusted; + private final Set anchors; // Constructor. // ----------------------------------------------------------------------- Manager(X509Certificate[] trusted) { - this.trusted = trusted; + anchors = new HashSet(); + if (trusted != null) + { + for (X509Certificate cert : trusted) + { + anchors.add(new TrustAnchor(cert, null)); + } + } } // Instance methodns. @@ -230,9 +243,7 @@ public class X509TrustManagerFactory extends TrustManagerFactorySpi public X509Certificate[] getAcceptedIssuers() { - if (trusted == null) - return new X509Certificate[0]; - return (X509Certificate[]) trusted.clone(); + return anchors.toArray(new X509Certificate[anchors.size()]); } // Own methods. @@ -241,58 +252,44 @@ public class X509TrustManagerFactory extends TrustManagerFactorySpi private void checkTrusted(X509Certificate[] chain, String authType) throws CertificateException { - // NOTE: this is not a full-featured path validation algorithm. - // - // Step 0: check if the target is valid now. - chain[0].checkValidity(); - - // Step 1: verify that the chain is complete and valid. - for (int i = 1; i < chain.length; i++) + CertPathValidator validator = null; + + try { - chain[i].checkValidity(); - try - { - chain[i-1].verify(chain[i].getPublicKey()); - } - catch (NoSuchAlgorithmException nsae) - { - throw new CertificateException(nsae.toString()); - } - catch (NoSuchProviderException nspe) - { - throw new CertificateException(nspe.toString()); - } - catch (InvalidKeyException ike) - { - throw new CertificateException(ike.toString()); - } - catch (SignatureException se) - { - throw new CertificateException(se.toString()); - } + validator = CertPathValidator.getInstance("PKIX"); } - - // Step 2: verify that the root of the chain was issued by a trust anchor. - if (trusted == null || trusted.length == 0) - throw new CertificateException("no trust anchors"); - for (int i = 0; i < trusted.length; i++) + catch (NoSuchAlgorithmException nsae) { - try - { - trusted[i].checkValidity(); - chain[chain.length-1].verify(trusted[i].getPublicKey()); - return; - } - catch (Exception e) - { - } - //catch (CertificateException ce) { } - //catch (NoSuchAlgorithmException nsae) { } - //catch (NoSuchProviderException nspe) { } - //catch (InvalidKeyException ike) { } - //catch (SignatureException se) { } + throw new CertificateException(nsae); + } + + CertPath path = new X509CertPath(Arrays.asList(chain)); + + PKIXParameters params = null; + try + { + params = new PKIXParameters(anchors); + // XXX we probably do want to enable revocation, but it's a pain + // in the ass. + params.setRevocationEnabled(false); + } + catch (InvalidAlgorithmParameterException iape) + { + throw new CertificateException(iape); + } + + try + { + validator.validate(path, params); + } + catch (CertPathValidatorException cpve) + { + throw new CertificateException(cpve); + } + catch (InvalidAlgorithmParameterException iape) + { + throw new CertificateException(iape); } - throw new CertificateException(); } } } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/XMLSessionContext.java b/libjava/classpath/gnu/javax/net/ssl/provider/XMLSessionContext.java deleted file mode 100644 index dcfa9d4adc9..00000000000 --- a/libjava/classpath/gnu/javax/net/ssl/provider/XMLSessionContext.java +++ /dev/null @@ -1,619 +0,0 @@ -/* XMLSessionContext.java -- XML-encoded persistent SSL sessions. - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is a 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 of the License, 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; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, 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 gnu.javax.net.ssl.provider; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.PrintStream; - -import java.security.SecureRandom; -import java.security.cert.Certificate; -import java.security.cert.CertificateEncodingException; -import java.security.cert.CertificateFactory; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.TreeSet; -import java.util.zip.GZIPInputStream; -import java.util.zip.GZIPOutputStream; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -import gnu.javax.crypto.mac.IMac; -import gnu.javax.crypto.mac.MacFactory; -import gnu.javax.crypto.mode.IMode; -import gnu.javax.crypto.mode.ModeFactory; -import gnu.javax.crypto.prng.IPBE; -import gnu.java.security.prng.IRandom; -import gnu.java.security.prng.PRNGFactory; - -import gnu.javax.net.ssl.Base64; - -/** - * An implementation of session contexts that stores session data on the - * filesystem in a simple XML-encoded file. - */ -class XMLSessionContext extends SessionContext -{ - - // Fields. - // ------------------------------------------------------------------------- - - private final File file; - private final IRandom pbekdf; - private final boolean compress; - private final SecureRandom random; - private boolean encoding; - - // Constructor. - // ------------------------------------------------------------------------- - - XMLSessionContext() throws IOException, SAXException - { - file = new File(Util.getSecurityProperty("jessie.SessionContext.xml.file")); - String password = Util.getSecurityProperty("jessie.SessionContext.xml.password"); - compress = new Boolean(Util.getSecurityProperty("jessie.SessionContext.xml.compress")).booleanValue(); - if (password == null) - { - password = ""; - } - pbekdf = PRNGFactory.getInstance("PBKDF2-HMAC-SHA1"); - HashMap kdfattr = new HashMap(); - kdfattr.put(IPBE.PASSWORD, password.toCharArray()); - // Dummy salt. This is replaced by a real salt when encoding. - kdfattr.put(IPBE.SALT, new byte[8]); - kdfattr.put(IPBE.ITERATION_COUNT, new Integer(1000)); - pbekdf.init(kdfattr); - encoding = false; - if (file.exists()) - { - decode(); - } - encoding = true; - random = new SecureRandom (); - } - - // Instance methods. - // ------------------------------------------------------------------------- - - synchronized boolean addSession(Session.ID sessionId, Session session) - { - boolean ret = super.addSession(sessionId, session); - if (ret && encoding) - { - try - { - encode(); - } - catch (IOException ioe) - { - } - } - return ret; - } - - synchronized void notifyAccess(Session session) - { - try - { - encode(); - } - catch (IOException ioe) - { - } - } - - synchronized boolean removeSession(Session.ID sessionId) - { - if (super.removeSession(sessionId)) - { - try - { - encode(); - } - catch (Exception x) - { - } - return true; - } - return false; - } - - private void decode() throws IOException, SAXException - { - SAXParser parser = null; - try - { - parser = SAXParserFactory.newInstance().newSAXParser(); - } - catch (Exception x) - { - throw new Error(x.toString()); - } - SAXHandler handler = new SAXHandler(this, pbekdf); - InputStream in = null; - if (compress) - in = new GZIPInputStream(new FileInputStream(file)); - else - in = new FileInputStream(file); - parser.parse(in, handler); - } - - private void encode() throws IOException - { - IMode cipher = ModeFactory.getInstance("CBC", "AES", 16); - HashMap cipherAttr = new HashMap(); - IMac mac = MacFactory.getInstance("HMAC-SHA1"); - HashMap macAttr = new HashMap(); - byte[] key = new byte[32]; - byte[] iv = new byte[16]; - byte[] mackey = new byte[20]; - byte[] salt = new byte[8]; - byte[] encryptedSecret = new byte[48]; - cipherAttr.put(IMode.KEY_MATERIAL, key); - cipherAttr.put(IMode.IV, iv); - cipherAttr.put(IMode.STATE, new Integer(IMode.ENCRYPTION)); - macAttr.put(IMac.MAC_KEY_MATERIAL, mackey); - PrintStream out = null; - if (compress) - { - out = new PrintStream(new GZIPOutputStream(new FileOutputStream(file))); - } - else - { - out = new PrintStream(new FileOutputStream(file)); - } - out.println(""); - out.println(""); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println(" "); - out.println("]>"); - out.println(); - out.print(""); - for (Iterator it = sessions.entrySet().iterator(); it.hasNext(); ) - { - Map.Entry entry = (Map.Entry) it.next(); - Session.ID id = (Session.ID) entry.getKey(); - Session session = (Session) entry.getValue(); - if (!session.valid) - { - continue; - } - out.print(""); - out.print(""); - Certificate[] certs = session.getPeerCertificates(); - if (certs != null && certs.length > 0) - { - out.print(""); - for (int i = 0; i < certs.length; i++) - { - out.println("-----BEGIN CERTIFICATE-----"); - try - { - out.print(Base64.encode(certs[i].getEncoded(), 70)); - } - catch (CertificateEncodingException cee) - { - throw new IOException(cee.toString()); - } - out.println("-----END CERTIFICATE-----"); - } - out.println(""); - } - out.println(""); - certs = session.getLocalCertificates(); - if (certs != null && certs.length > 0) - { - out.print(""); - for (int i = 0; i < certs.length; i++) - { - out.println("-----BEGIN CERTIFICATE-----"); - try - { - out.print(Base64.encode(certs[i].getEncoded(), 70)); - } - catch (CertificateEncodingException cee) - { - throw new IOException(cee.toString()); - } - out.println("-----END CERTIFICATE-----"); - } - out.println(""); - } - random.nextBytes (salt); - pbekdf.init(Collections.singletonMap(IPBE.SALT, salt)); - try - { - pbekdf.nextBytes(key, 0, key.length); - pbekdf.nextBytes(iv, 0, iv.length); - pbekdf.nextBytes(mackey, 0, mackey.length); - cipher.reset(); - cipher.init(cipherAttr); - mac.init(macAttr); - } - catch (Exception ex) - { - throw new Error(ex.toString()); - } - for (int i = 0; i < session.masterSecret.length; i += 16) - { - cipher.update(session.masterSecret, i, encryptedSecret, i); - } - mac.update(encryptedSecret, 0, encryptedSecret.length); - byte[] macValue = mac.digest(); - out.print(""); - out.print(Base64.encode(Util.concat(encryptedSecret, macValue), 70)); - out.println(""); - out.println(""); - } - out.println(""); - out.close(); - } - - // Inner class. - // ------------------------------------------------------------------------- - - private class SAXHandler extends DefaultHandler - { - - // Field. - // ----------------------------------------------------------------------- - - private SessionContext context; - private Session current; - private IRandom pbekdf; - private StringBuffer buf; - private String certType; - private int state; - private IMode cipher; - private HashMap cipherAttr; - private IMac mac; - private HashMap macAttr; - private byte[] key; - private byte[] iv; - private byte[] mackey; - - private static final int START = 0; - private static final int SESSIONS = 1; - private static final int SESSION = 2; - private static final int PEER = 3; - private static final int PEER_CERTS = 4; - private static final int CERTS = 5; - private static final int SECRET = 6; - - // Constructor. - // ----------------------------------------------------------------------- - - SAXHandler(SessionContext context, IRandom pbekdf) - { - this.context = context; - this.pbekdf = pbekdf; - buf = new StringBuffer(); - state = START; - cipher = ModeFactory.getInstance("CBC", "AES", 16); - cipherAttr = new HashMap(); - mac = MacFactory.getInstance("HMAC-SHA1"); - macAttr = new HashMap(); - key = new byte[32]; - iv = new byte[16]; - mackey = new byte[20]; - cipherAttr.put(IMode.KEY_MATERIAL, key); - cipherAttr.put(IMode.IV, iv); - cipherAttr.put(IMode.STATE, new Integer(IMode.DECRYPTION)); - macAttr.put(IMac.MAC_KEY_MATERIAL, mackey); - } - - // Instance methods. - // ----------------------------------------------------------------------- - - public void startElement(String u, String n, String qname, Attributes attr) - throws SAXException - { - qname = qname.toLowerCase(); - switch (state) - { - case START: - if (qname.equals("sessions")) - { - try - { - timeout = Integer.parseInt(attr.getValue("timeout")); - cacheSize = Integer.parseInt(attr.getValue("size")); - if (timeout <= 0 || cacheSize < 0) - throw new SAXException("timeout or cache size out of range"); - } - catch (NumberFormatException nfe) - { - throw new SAXException(nfe); - } - state = SESSIONS; - } - else - throw new SAXException("expecting sessions"); - break; - - case SESSIONS: - if (qname.equals("session")) - { - try - { - current = new Session(Long.parseLong(attr.getValue("created"))); - current.enabledSuites = new ArrayList(SSLSocket.supportedSuites); - current.enabledProtocols = new TreeSet(SSLSocket.supportedProtocols); - current.context = context; - current.sessionId = new Session.ID(Base64.decode(attr.getValue("id"))); - current.setLastAccessedTime(Long.parseLong(attr.getValue("timestamp"))); - } - catch (Exception ex) - { - throw new SAXException(ex); - } - String prot = attr.getValue("protocol"); - if (prot.equals("SSLv3")) - current.protocol = ProtocolVersion.SSL_3; - else if (prot.equals("TLSv1")) - current.protocol = ProtocolVersion.TLS_1; - else if (prot.equals("TLSv1.1")) - current.protocol = ProtocolVersion.TLS_1_1; - else - throw new SAXException("bad protocol: " + prot); - current.cipherSuite = CipherSuite.forName(attr.getValue("suite")); - state = SESSION; - } - else - throw new SAXException("expecting session"); - break; - - case SESSION: - if (qname.equals("peer")) - { - current.peerHost = attr.getValue("host"); - state = PEER; - } - else if (qname.equals("certificates")) - { - certType = attr.getValue("type"); - state = CERTS; - } - else if (qname.equals("secret")) - { - byte[] salt = null; - try - { - salt = Base64.decode(attr.getValue("salt")); - } - catch (IOException ioe) - { - throw new SAXException(ioe); - } - pbekdf.init(Collections.singletonMap(IPBE.SALT, salt)); - state = SECRET; - } - else - throw new SAXException("bad element: " + qname); - break; - - case PEER: - if (qname.equals("certificates")) - { - certType = attr.getValue("type"); - state = PEER_CERTS; - } - else - throw new SAXException("bad element: " + qname); - break; - - default: - throw new SAXException("bad element: " + qname); - } - } - - public void endElement(String uri, String name, String qname) - throws SAXException - { - qname = qname.toLowerCase(); - switch (state) - { - case SESSIONS: - if (qname.equals("sessions")) - state = START; - else - throw new SAXException("expecting sessions"); - break; - - case SESSION: - if (qname.equals("session")) - { - current.valid = true; - context.addSession(current.sessionId, current); - state = SESSIONS; - } - else - throw new SAXException("expecting session"); - break; - - case PEER: - if (qname.equals("peer")) - state = SESSION; - else - throw new SAXException("unexpected element: " + qname); - break; - - case PEER_CERTS: - if (qname.equals("certificates")) - { - try - { - CertificateFactory fact = CertificateFactory.getInstance(certType); - current.peerCerts = (Certificate[]) - fact.generateCertificates(new ByteArrayInputStream( - buf.toString().getBytes())).toArray(new Certificate[0]); - } - catch (Exception ex) - { - throw new SAXException(ex); - } - current.peerVerified = true; - state = PEER; - } - else - throw new SAXException("unexpected element: " + qname); - break; - - case CERTS: - if (qname.equals("certificates")) - { - try - { - CertificateFactory fact = CertificateFactory.getInstance(certType); - current.localCerts = (Certificate[]) - fact.generateCertificates(new ByteArrayInputStream( - buf.toString().getBytes())).toArray(new Certificate[0]); - } - catch (Exception ex) - { - throw new SAXException(ex); - } - state = SESSION; - } - else - throw new SAXException("unexpected element: " + qname); - break; - - case SECRET: - if (qname.equals("secret")) - { - byte[] encrypted = null; - try - { - encrypted = Base64.decode(buf.toString()); - if (encrypted.length != 68) - throw new IOException("encrypted secret not 68 bytes long"); - pbekdf.nextBytes(key, 0, key.length); - pbekdf.nextBytes(iv, 0, iv.length); - pbekdf.nextBytes(mackey, 0, mackey.length); - cipher.reset(); - cipher.init(cipherAttr); - mac.init(macAttr); - } - catch (Exception ex) - { - throw new SAXException(ex); - } - mac.update(encrypted, 0, 48); - byte[] macValue = mac.digest(); - for (int i = 0; i < macValue.length; i++) - { - if (macValue[i] != encrypted[48+i]) - throw new SAXException("MAC mismatch"); - } - current.masterSecret = new byte[48]; - for (int i = 0; i < current.masterSecret.length; i += 16) - { - cipher.update(encrypted, i, current.masterSecret, i); - } - state = SESSION; - } - else - throw new SAXException("unexpected element: " + qname); - break; - - default: - throw new SAXException("unexpected element: " + qname); - } - buf.setLength(0); - } - - public void characters(char[] ch, int off, int len) throws SAXException - { - if (state != CERTS && state != PEER_CERTS && state != SECRET) - { - throw new SAXException("illegal character data"); - } - buf.append(ch, off, len); - } - } -} diff --git a/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java b/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java index 66a4e24ff18..b9dc7a3d2a5 100644 --- a/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java +++ b/libjava/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java @@ -1,5 +1,5 @@ /* UtilDelegateImpl.java -- - Copyright (C) 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.rmi.CORBA; +import gnu.classpath.VMStackWalker; + import gnu.CORBA.Minor; import gnu.CORBA.ObjectCreator; import gnu.CORBA.Poa.ORB_1_4; @@ -70,6 +72,7 @@ import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; +import java.net.MalformedURLException; import java.rmi.AccessException; import java.rmi.MarshalException; import java.rmi.NoSuchObjectException; @@ -374,37 +377,24 @@ public class UtilDelegateImpl throws ClassNotFoundException { if (loader == null) - loader = Thread.currentThread().getContextClassLoader(); + loader = VMStackWalker.firstNonNullClassLoader(); String p_useCodebaseOnly = System.getProperty("java.rmi.server.useCodebaseOnly"); boolean useCodebaseOnly = p_useCodebaseOnly != null && p_useCodebaseOnly.trim().equalsIgnoreCase("true"); - try - { - if (remoteCodebase != null && !useCodebaseOnly) - return RMIClassLoader.loadClass(remoteCodebase, className); - } - catch (Exception e) - { - // This failed but try others. - } + if (useCodebaseOnly) + remoteCodebase = null; try { - if (remoteCodebase == null || useCodebaseOnly) - return RMIClassLoader.loadClass(remoteCodebase, className); + return RMIClassLoader.loadClass(remoteCodebase, className, loader); } - catch (Exception e) + catch (MalformedURLException x) { - // This failed but try others. + throw new ClassNotFoundException(className, x); } - - if (loader != null) - return Class.forName(className, true, loader); - - throw new ClassNotFoundException(className + " at " + remoteCodebase); } /** diff --git a/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java b/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java index eeedf2605db..5144f58ea4c 100644 --- a/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java +++ b/libjava/classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java @@ -83,65 +83,102 @@ public abstract class AbstractCallbackHandler implements CallbackHandler this.name = name; } - // Class methods. - // ------------------------------------------------------------------------- - + /** + * Create an instance of CallbackHandler of the designated + * type from the first Security Provider which offers it. + * + * @param type the type of callback handler to create. + * @return a newly created instance of ClassbackHandler. + * @throws NoSuchAlgorithmException if no security provider is found to offer + * an implementation of CallbackHandler of the + * designated type. + */ public static CallbackHandler getInstance(String type) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(type, p[i]); - } - catch (NoSuchAlgorithmException ignored) - { - } - } + try + { + return getInstance(type, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(type); } + /** + * Create an instance of CallbackHandler of the designated + * type from the named security provider. + * + * @param type the type of callback handler to create. + * @param provider a named security provider to use. + * @return a newly created instance of ClassbackHandler. + * @throws NoSuchAlgorithmException if no security provider is found to offer + * an implementation of CallbackHandler of the + * designated type. + * @throws IllegalArgumentException if either type or + * provider is null, or if + * type is an empty string. + */ public static CallbackHandler getInstance(String type, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(type, p); } + /** + * Create an instance of CallbackHandler of the designated + * type from the designated security provider. + * + * @param type the type of callback handler to create. + * @param provider a security provider to use. + * @return a newly created instance of ClassbackHandler. + * @throws NoSuchAlgorithmException if no security provider is found to offer + * an implementation of CallbackHandler of the + * designated type. + * @throws IllegalArgumentException if either type or + * provider is null, or if + * type is an empty string. + */ public static CallbackHandler getInstance(String type, Provider provider) throws NoSuchAlgorithmException { + StringBuilder sb = new StringBuilder("CallbackHandler of type [") + .append(type).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { return (CallbackHandler) Engine.getInstance(SERVICE, type, provider); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - Throwable cause = ite.getCause(); + cause = x.getCause(); if (cause instanceof NoSuchAlgorithmException) throw (NoSuchAlgorithmException) cause; - NoSuchAlgorithmException nsae = new NoSuchAlgorithmException(type); - if (cause != null) - nsae.initCause (cause); - throw nsae; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - NoSuchAlgorithmException nsae = new NoSuchAlgorithmException(type); - nsae.initCause (cce); - throw nsae; + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------- - public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { diff --git a/libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java b/libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java new file mode 100644 index 00000000000..fcec1196235 --- /dev/null +++ b/libjava/classpath/gnu/javax/security/auth/callback/CertificateCallback.java @@ -0,0 +1,64 @@ +/* CertificateCallback.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 gnu.javax.security.auth.callback; + +import java.security.cert.Certificate; + +import javax.security.auth.callback.ConfirmationCallback; + +/** + * A {@link javax.security.auth.callback.Callback} for confirming whether or + * not a certificate may be used. This works similarly to + * {@link ConfirmationCallback}, but additionally contains the certificate + * being verified. Thus, handlers may present the certificate to the user, when + * handling this callback. + * + * @author Casey Marshall (csm@gnu.org) + */ +public class CertificateCallback extends ConfirmationCallback +{ + static final long serialVersionUID = 8343869651419225634L; + public final Certificate certificate; + + public CertificateCallback(Certificate cert, String prompt) + { + super(prompt, ERROR, YES_NO_OPTION, NO); + this.certificate = cert; + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java b/libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java new file mode 100644 index 00000000000..d75beea5247 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/BorderStyle.java @@ -0,0 +1,64 @@ +/* BorderStyle.java -- Utility for dealing with border styles + 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 gnu.javax.swing.text.html.css; + +/** + * Utility class for handling border styles. + */ +public class BorderStyle +{ + + /** + * Determines if a given value makes up a valid border style value. + * + * @param value the value to check + * + * @return true when this is a valid border style, + * false otherwise + */ + public static boolean isValidStyle(String value) + { + return value.equals("none") || value.equals("hidden") + || value.equals("dotted") || value.equals("dashed") + || value.equals("solid") || value.equals("double") + || value.equals("groove") || value.equals("ridge") + || value.equals("inset") || value.equals("outset"); + + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/BorderWidth.java b/libjava/classpath/gnu/javax/swing/text/html/css/BorderWidth.java new file mode 100644 index 00000000000..ae64c21101c --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/BorderWidth.java @@ -0,0 +1,78 @@ +/* BorderWidth.java -- A CSS metric for border widths + 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 gnu.javax.swing.text.html.css; + +/** + * A special CSS metric for border widths. It basically understands everything + * as Length, and in addition to that provides a mapping for the border-width's + * thin, medium and think values. + */ +public class BorderWidth + extends Length +{ + + /** + * Creates a new BorderWidth instance. + * + * @param val the CSS value to be interpreted + */ + public BorderWidth(String val) + { + super(val); + if (val.equals("thin")) + floatValue = 1.F; + else if (val.equals("medium")) + floatValue = 2.F; + else if (val.equals("thick")) + floatValue = 3.F; + } + + /** + * Checks if the specified value makes up a valid border-width value. + * + * @param value the value to check + * + * @return true if the value is a valid border-width + */ + public static boolean isValid(String value) + { + return value.equals("thin") || value.equals("medium") + || value.equals("thick") || Length.isValid(value); + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/CSSColor.java b/libjava/classpath/gnu/javax/swing/text/html/css/CSSColor.java new file mode 100644 index 00000000000..ea4b94ae0a5 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/CSSColor.java @@ -0,0 +1,170 @@ +/* CSSColor.java -- Converts CSS color values + 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 gnu.javax.swing.text.html.css; + +import java.awt.Color; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Set; + +/** + * Converts CSS color values into AWT Color values. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class CSSColor +{ + + private static final HashMap COLOR_MAP; + static + { + COLOR_MAP = new HashMap(); + COLOR_MAP.put("maroon", "#800000"); + COLOR_MAP.put("red", "#ff0000"); + COLOR_MAP.put("orange", "#ffa500"); + COLOR_MAP.put("yellow", "#ffff00"); + COLOR_MAP.put("olive", "#808000"); + COLOR_MAP.put("purple", "#800080"); + COLOR_MAP.put("fuchsia", "#ff00ff"); + COLOR_MAP.put("white", "#ffffff"); + COLOR_MAP.put("lime", "#00ff00"); + COLOR_MAP.put("green", "#008000"); + COLOR_MAP.put("navy", "#000080"); + COLOR_MAP.put("blue", "#0000ff"); + COLOR_MAP.put("aqua", "#00ffff"); + COLOR_MAP.put("teal", "#008080"); + COLOR_MAP.put("black", "#000000"); + COLOR_MAP.put("silver", "#c0c0c0"); + COLOR_MAP.put("gray", "#808080"); + } + + /** + * The CSS value. + */ + private String value; + + /** + * The converted color. + */ + private Color color; + + /** + * Creates a new instance. + * + * @param val the CSS value + */ + public CSSColor(String val) + { + value = val; + color = convertValue(value); + } + + /** + * Converts a CSS color value to an AWT color. + * + * @param value the CSS color value + * + * @return the converted color value + */ + public static Color convertValue(String value) + { + Color color; + String val1 = value.toLowerCase(); + if (val1.charAt(0) != '#') + val1 = (String) COLOR_MAP.get(val1); + if (val1 != null) + { + String hexVal = val1.substring(1).trim(); + try + { + int rgb = Integer.parseInt(hexVal, 16); + color = new Color(rgb); + } + catch (NumberFormatException ex) + { + color = Color.BLACK; + } + } + else + color = null; + return color; + } + + /** + * Returns the converted color. + * + * @return the converted color + */ + public Color getValue() + { + return color; + } + + public String toString() + { + return value; + } + + /** + * Returns true if the specified value is a valid color value, + * false otherwise. + * + * @param val the value to check + * + * @return true if the specified value is a valid color value, + * false otherwise + */ + public static boolean isValidColor(String val) + { + boolean ret = false; + if (val.charAt(0) == '#') + ret = true; + else + { + Set colors = COLOR_MAP.keySet(); + for (Iterator i = colors.iterator(); i.hasNext() && ret == false;) + { + String color = (String) i.next(); + if (color.equalsIgnoreCase(val)) + ret = true; + } + } + return ret; + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/CSSLexicalException.java b/libjava/classpath/gnu/javax/swing/text/html/css/CSSLexicalException.java new file mode 100644 index 00000000000..13968e4d2cd --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/CSSLexicalException.java @@ -0,0 +1,60 @@ +/* CSSLexicalException.java -- Indicates a failure in the lexical analyser + 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 gnu.javax.swing.text.html.css; + +import java.io.IOException; + +/** + * Indicates a failure in the lexical analyser of the CSS parser. + */ +public class CSSLexicalException + extends IOException +{ + + public CSSLexicalException() + { + super(); + } + + public CSSLexicalException(String message) + { + super(message); + } + +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java b/libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java new file mode 100644 index 00000000000..5647e25069d --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/CSSParser.java @@ -0,0 +1,500 @@ +/* CSSParser.java -- A parser for CSS stylesheets + 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 gnu.javax.swing.text.html.css; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.StringTokenizer; + +/** + * A parser for CSS stylesheets. + * + * This parser is based on the simple CSS grammar describe in + * + * http://www.w3.org/TR/CSS21/syndata.html . + * + * @author Roman Kennke (kennke@aicas.com) + */ +// TODO: Maybe use more restrictive grammar: +// http://www.w3.org/TR/CSS21/grammar.html#q1 +public class CSSParser +{ + + /** + * The scanner used to read the input streams into more usable tokens. + */ + private CSSScanner scanner; + + /** + * The parser callback. + */ + private CSSParserCallback callback; + + /** + * One lookahead token. + */ + private int lookahead; + + /** + * The parse error. + */ + private String error; + + /** + * Creates a new CSSParser that parses the specified input. + * + * @param in the source to parse + */ + public CSSParser(Reader in, CSSParserCallback cb) + { + scanner = new CSSScanner(in); + callback = cb; + lookahead = -1; + } + + /** + * Parses the input source specified in the constructor. + * + * @throws IOException if an IO or parse error occurs + */ + public void parse() + throws IOException + { + boolean success = parseStylesheet(); + if (! success) + { + throw new CSSParserException(error); + } + } + + /** + * Parses a stylesheet. + * + * @return true if the stylesheet could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseStylesheet() + throws IOException + { + int token = peekToken(); + while (token != CSSScanner.EOF && (token == CSSScanner.CDC + || token == CSSScanner.CDO || token == CSSScanner.S + || parseStatement())) + { + if (token == CSSScanner.CDC || token == CSSScanner.CDO + || token == CSSScanner.S) + readToken(); + token = peekToken(); + } + // Last token must be EOF for valid stylesheets, I'd think. + return token == CSSScanner.EOF; + } + + /** + * Parses a CSS statement. + * @return true if the stylesheet could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseStatement() + throws IOException + { + return parseRuleset() || parseAtRule(); + } + + /** + * Parses a CSS rule set. + * + * @return true if the ruleset could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseRuleset() + throws IOException + { + StringBuilder selector = new StringBuilder(); + parseSelector(selector); + StringTokenizer selSplitter = + new StringTokenizer(selector.toString(), ","); + Selector[] sels = new Selector[selSplitter.countTokens()]; + for (int i = 0; selSplitter.hasMoreTokens(); i++) + { + String sel = selSplitter.nextToken().trim(); + sels[i] = new Selector(sel); + } + callback.startStatement(sels); + // Read any number of whitespace. + int token; + do + { + token = readToken(); + } while (token == CSSScanner.S); + boolean ret = true; + + if (token == CSSScanner.CURLY_LEFT) + { + // Read any number of whitespace. + do + { + token = readToken(); + } while (token == CSSScanner.S); + lookahead = token; + + // Maybe read declaration. + boolean decl = parseDeclaration(); + token = peekToken(); + while (token == CSSScanner.SEMICOLON) + { + readToken(); // Read the semicolon. + // Read any number of whitespace. + do + { + token = readToken(); + } while (token == CSSScanner.S); + lookahead = token; + + // Maybe read declaration. + parseDeclaration(); + token = peekToken(); + } + if (token != CSSScanner.CURLY_RIGHT) + { + error = "Expected right curly brace"; + ret = false; + } + else + { + readToken(); + // Read any number of whitespace. + do + { + token = readToken(); + } while (token == CSSScanner.S); + lookahead = token; + callback.endStatement(); + } + } + else + { + ret = false; + error = "Expected left curly brace"; + } + return ret; + } + + /** + * Parses a CSS declaration. + * + * @return true if the ruleset could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseDeclaration() + throws IOException + { + // Maybe fetch one DELIM. + int token = readToken(); + if (token == CSSScanner.DELIM) + token = readToken(); + + boolean ret = true; + + // Parse property + String property = null; + if (token == CSSScanner.IDENT) + { + property = new String(scanner.parseBuffer, 0, scanner.tokenEnd); + // Read any number of whitespace. + do + { + token = readToken(); + } while (token == CSSScanner.S); + + // Read ':'. + if (token == CSSScanner.DELIM && scanner.parseBuffer[0] == ':') + { + // Read any number of whitespace. + do + { + token = readToken(); + } while (token == CSSScanner.S); + lookahead = token; + + StringBuilder value = new StringBuilder(); + if (parseValue(value)) + { + callback.declaration(property, value.toString().trim()); + } + else + { + ret = false; + error = "Error while reading the property value"; + } + } + else + { + ret = false; + error = "Expected colon to separate property and value"; + } + + } + else + { + lookahead = token; + ret = false; + error = "Expected IDENT token for property"; + } + return ret; + } + + /** + * Parses a property value. + * + * @param s the string builder to read the value into + * + * @return true if the ruleset could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseValue(StringBuilder s) + throws IOException + { + // FIXME: Handle block and ATKEYWORD. + boolean success = parseAny(s); + while (parseAny(s)); + return success; + } + + /** + * Parses a selector. + * + * @param sel the string buffer to put the selector into + * + * @return true if the ruleset could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseSelector(StringBuilder sel) + throws IOException + { + // At least one any needs to be parsed. + boolean ret = parseAny(sel); + if (ret) + { + while (parseAny(sel)); + } + return ret; + } + + /** + * Parses the any rule. If s is not null, then the contents of the + * tokens is appended verbatim. + * + * @param s the string builder to append to + * + * @return true if the ruleset could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseAny(StringBuilder s) + throws IOException + { + int token = peekToken(); + boolean ret = false; + if (token == CSSScanner.IDENT || token == CSSScanner.NUMBER + || token == CSSScanner.PERCENTAGE || token == CSSScanner.DIMENSION + || token == CSSScanner.STRING || token == CSSScanner.DELIM + || token == CSSScanner.URI || token == CSSScanner.HASH + || token == CSSScanner.UNICODE_RANGE || token == CSSScanner.INCLUDES + || token == CSSScanner.DASHMATCH) + { + if (s != null) + s.append(scanner.parseBuffer, 0, scanner.tokenEnd); + readToken(); + ret = true; + } + else if (token == CSSScanner.FUNCTION) + System.err.println("Implement parseAny for FUNCTION"); + else if (token == CSSScanner.PAREN_LEFT) + System.err.println("Implement parseAny for ("); + else if (token == CSSScanner.BRACE_LEFT) + System.err.println("Implement parseAny for ["); + + // Parse any following whitespace too. + token = peekToken(); + while (token == CSSScanner.S) + { + if (s != null) + s.append(scanner.parseBuffer, 0, scanner.tokenEnd); + readToken(); + token = peekToken(); + } + return ret; + } + + /** + * Parses a CSS at-rule. + * + * @return true if the at-rule could be parsed successfully, + * false otherwise + * + * @throws IOException if an IO or parse error occurs + */ + private boolean parseAtRule() + throws IOException + { + // FIXME: Implement. + return false; + } + + /** + * Reads the next token, and skips the comments. + * + * @return the next non-comment token + */ + private int readToken() + throws IOException + { + int token; + if (lookahead == -1) + { + do + { + token = scanner.nextToken(); + } while (token == CSSScanner.COMMENT); + } + else + { + token = lookahead; + lookahead = -1; + } + return token; + } + + /** + * Returns the next token to be read, without really reading it. The next + * call to readToken() will return the same token again. + * + * @return the next token to be read, without really reading it + */ + private int peekToken() + throws IOException + { + int token; + if (lookahead == -1) + { + do + { + token = scanner.nextToken(); + } while (token == CSSScanner.COMMENT); + lookahead = token; + } + else + token = lookahead; + return token; + } + + /** + * For testing, we read in the default.css in javax/swing/text/html + * + * @param args + */ + public static void main(String[] args) + { + try + { + InputStream in; + if (args.length > 0) + { + File file = new File(args[0]); + in = new FileInputStream(file); + } + else + { + String name = "/javax/swing/text/html/default.css"; + in = CSSScanner.class.getResourceAsStream(name); + } + BufferedInputStream bin = new BufferedInputStream(in); + InputStreamReader r = new InputStreamReader(bin); + CSSParserCallback cb = new CSSParserCallback() + { + public void startStatement(Selector[] selector) + { + System.out.print("startStatement: "); + for (int i = 0; i < selector.length; i++) + { + System.out.print(selector[i]); + if (i < selector.length - 1) + System.out.print(','); + else + System.out.println(); + } + } + public void endStatement() + { + System.out.println("endStatement"); + } + public void declaration(String property, String value) + { + System.out.println("declaration: " + property + ", " + value); + } + }; + CSSParser p = new CSSParser(r, cb); + p.parse(); + } + catch (IOException ex) + { + ex.printStackTrace(); + } + } + +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/CSSParserCallback.java b/libjava/classpath/gnu/javax/swing/text/html/css/CSSParserCallback.java new file mode 100644 index 00000000000..f49ffa232de --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/CSSParserCallback.java @@ -0,0 +1,81 @@ +/* CSSParserCallback.java -- Callback for parsing CSS + 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 gnu.javax.swing.text.html.css; + +/** + * Defines the callback that is used by the CSSParser to notify the + * backend of the parsing process. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public interface CSSParserCallback +{ + + /** + * Signals the beginning of a statement. + * + * A CSS statement is build up like follows: + *
    +   *  {
    +   *   ... declarations...
    +   * }
    +   * 
    + * + * After startStatement(), the callback will receive zero to n callbacks + * to declaration, followed by an endStatement() call. + * + * @param selector the selector of the statement. + */ + void startStatement(Selector[] selector); + + /** + * Signals the end of a statement. + */ + void endStatement(); + + /** + * Signals the parsing of one declaration, which defines a mapping + * from a property to a value. + * + * @param property the property + * @param value the value + */ + void declaration(String property, String value); + +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/CSSParserException.java b/libjava/classpath/gnu/javax/swing/text/html/css/CSSParserException.java new file mode 100644 index 00000000000..2328d539804 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/CSSParserException.java @@ -0,0 +1,62 @@ +/* CSSParserException.java -- The CSS parser exception + 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 gnu.javax.swing.text.html.css; + +import java.io.IOException; + +/** + * This exception is raised when the CSS parser hits a syntax error. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class CSSParserException + extends IOException +{ + + /** + * Creates a new CSSParserException. + * + * @param message the exception message + */ + public CSSParserException(String message) + { + super(message); + } + +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java b/libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java new file mode 100644 index 00000000000..9cc6209a549 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/CSSScanner.java @@ -0,0 +1,718 @@ +/* CSSScanner.java -- A parser for CSS stylesheets + 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 gnu.javax.swing.text.html.css; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; + +/** + * A tokenizer for CSS stylesheets. This is based on the scanner definition + * from: + * + * http://www.w3.org/TR/CSS21/syndata.html#tokenization + * + * @author Roman Kennke (kennke@aicas.com) + */ +// TODO: Maybe implement more restrictive scanner: +// http://www.w3.org/TR/CSS21/grammar.html#q2 +class CSSScanner +{ + + // The tokens. This list is taken from: + // http://www.w3.org/TR/CSS21/syndata.html#tokenization + static final int IDENT = 1; + static final int ATKEYWORD = 2; + static final int STRING = 3; + static final int INVALID = 4; + static final int HASH = 5; + static final int NUMBER = 6; + static final int PERCENTAGE = 7; + static final int DIMENSION = 8; + static final int URI = 9; + static final int UNICODE_RANGE = 10; + static final int CDO = 11; + static final int CDC = 12; + static final int SEMICOLON = 13; + static final int CURLY_LEFT = 14; + static final int CURLY_RIGHT = 15; + static final int PAREN_LEFT = 16; + static final int PAREN_RIGHT = 17; + static final int BRACE_LEFT = 16; + static final int BRACE_RIGHT = 17; + static final int S = 18; + static final int COMMENT = 19; + static final int FUNCTION = 20; + static final int INCLUDES = 21; + static final int DASHMATCH = 22; + static final int DELIM = 23; + + // Additional tokens defined for convenience. + static final int EOF = -1; + + /** + * The input source. + */ + private Reader in; + + /** + * The parse buffer. + */ + char[] parseBuffer; + + /** + * The end index in the parseBuffer of the current token. + */ + int tokenEnd; + + /** + * The lookahead 'buffer'. + */ + private int[] lookahead; + + CSSScanner(Reader r) + { + lookahead = new int[2]; + lookahead[0] = -1; + lookahead[1] = -1; + parseBuffer = new char[2048]; + in = r; + } + + /** + * Fetches the next token. The actual character data is in the parseBuffer + * afterwards with the tokenStart at index 0 and the tokenEnd field + * pointing to the end of the token. + * + * @return the next token + */ + int nextToken() + throws IOException + { + tokenEnd = 0; + int token = -1; + int next = read(); + if (next != -1) + { + switch (next) + { + case ';': + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = SEMICOLON; + break; + case '{': + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = CURLY_LEFT; + break; + case '}': + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = CURLY_RIGHT; + break; + case '(': + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = PAREN_LEFT; + break; + case ')': + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = PAREN_RIGHT; + break; + case '[': + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = BRACE_LEFT; + break; + case ']': + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = BRACE_RIGHT; + break; + case '@': + parseBuffer[0] = (char) next; + tokenEnd = 1; + readIdent(); + token = ATKEYWORD; + break; + case '#': + parseBuffer[0] = (char) next; + tokenEnd = 1; + readName(); + token = HASH; + break; + case '\'': + case '"': + lookahead[0] = next; + readString(); + token = STRING; + break; + case ' ': + case '\t': + case '\r': + case '\n': + case '\f': + lookahead[0] = next; + readWhitespace(); + token = S; + break; + // FIXME: Detecting an URI involves several characters lookahead. +// case 'u': +// lookahead[0] = ch; +// readURI(); +// token = URI; +// break; + case '<': + parseBuffer[0] = (char) next; + parseBuffer[1] = (char) read(); + parseBuffer[2] = (char) read(); + parseBuffer[3] = (char) read(); + if (parseBuffer[1] == '!' && parseBuffer[2] == '-' + && parseBuffer[3] == '-') + { + token = CDO; + tokenEnd = 4; + } + else + throw new CSSLexicalException("expected CDO token"); + break; + case '/': + lookahead[0] = next; + readComment(); + token = COMMENT; + break; + case '~': + parseBuffer[0] = (char) next; + parseBuffer[1] = (char) read(); + if (parseBuffer[1] == '=') + token = INCLUDES; + else + throw new CSSLexicalException("expected INCLUDES token"); + break; + case '|': + parseBuffer[0] = (char) next; + parseBuffer[1] = (char) read(); + if (parseBuffer[1] == '=') + token = DASHMATCH; + else + throw new CSSLexicalException("expected DASHMATCH token"); + break; + case '-': + int ch2 = read(); + if (ch2 == '-') + { + int ch3 = read(); + if (ch3 == '>') + { + parseBuffer[0] = (char) next; + parseBuffer[1] = (char) ch2; + parseBuffer[2] = (char) ch3; + tokenEnd = 3; + token = CDC; + } + else + throw new CSSLexicalException("expected CDC token"); + } + else + { + lookahead[0] = next; + lookahead[1] = ch2; + readIdent(); + int ch3 = read(); + if (ch3 == -1 || ch3 != '(') + { + lookahead[0] = ch3; + token = IDENT; + } + else + { + parseBuffer[tokenEnd] = (char) ch3; + tokenEnd++; + token = FUNCTION; + } + } + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + lookahead[0] = next; + readNum(); + int ch3 = read(); + if (ch3 == '%') + { + parseBuffer[tokenEnd] = (char) ch3; + tokenEnd++; + token = PERCENTAGE; + } + else if (ch3 == -1 || (! (ch3 == '_' + || (ch3 >= 'a' && ch3 <= 'z') + || (ch3 >= 'A' && ch3 <= 'Z') + || ch3 == '\\' || ch3 > 177))) + { + lookahead[0] = ch3; + token = NUMBER; + } + else + { + lookahead[0] = ch3; + readIdent(); + token = DIMENSION; + } + break; + default: + // Handle IDENT that don't begin with '-'. + if (next == '_' || (next >= 'a' && next <= 'z') + || (next >= 'A' && next <= 'Z') || next == '\\' || next > 177) + { + lookahead[0] = next; + readIdent(); + int ch4 = read(); + if (ch4 == -1 || ch4 != '(') + { + lookahead[0] = ch4; + token = IDENT; + } + else + { + parseBuffer[tokenEnd] = (char) ch4; + tokenEnd++; + token = FUNCTION; + } + } + else + { + parseBuffer[0] = (char) next; + tokenEnd = 1; + token = DELIM; + } + break; + } + } + return token; + } + + String currentTokenString() + { + return new String(parseBuffer, 0, tokenEnd); + } + + /** + * Reads one character from the input stream or from the lookahead + * buffer, if it contains one character. + * + * @return the next character + * + * @throws IOException if problems occur on the input source + */ + private int read() + throws IOException + { + int ret; + if (lookahead[0] != -1) + { + ret = lookahead[0]; + lookahead[0] = -1; + } + else if (lookahead[1] != -1) + { + ret = lookahead[1]; + lookahead[1] = -1; + } + else + { + ret = in.read(); + } + return ret; + } + + /** + * Reads and identifier. + * + * @throws IOException if something goes wrong in the input source or if + * the lexical analyser fails to read an identifier + */ + private void readIdent() + throws IOException + { + int ch1 = read(); + // Read possibly leading '-'. + if (ch1 == '-') + { + parseBuffer[tokenEnd] = (char) ch1; + tokenEnd++; + ch1 = read(); + } + // What follows must be '_' or a-z or A-Z or nonascii (>177) or an + // escape. + if (ch1 == '_' || (ch1 >= 'a' && ch1 <= 'z') + || (ch1 >= 'A' && ch1 <= 'Z') || ch1 > 177) + { + parseBuffer[tokenEnd] = (char) ch1; + tokenEnd++; + } + else if (ch1 == '\\') + { + // Try to read an escape. + lookahead[0] = ch1; + readEscape(); + } + else + throw new CSSLexicalException("First character of identifier incorrect"); + + // Read any number of [_a-zA-Z0-9-] chars. + int ch = read(); + while (ch != -1 && (ch == '_' || ch == '-' || (ch >= 'a' && ch <= 'z') + || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9'))) + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + } + + // Push back last read character since it doesn't belong to the IDENT. + lookahead[0] = ch; + } + + /** + * Reads an escape. + * + * @throws IOException if something goes wrong in the input source or if + * the lexical analyser fails to read an escape + */ + private void readEscape() + throws IOException + { + int ch = read(); + if (ch != -1 && ch == '\\') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f')) + { + // Read unicode escape. + // Zero to five 0-9a-f chars can follow. + int hexcount = 0; + ch = read(); + while (((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f')) + && hexcount < 5) + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + hexcount++; + ch = read(); + } + // Now we can have a \r\n or any whitespace character following. + if (ch == '\r') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + if (ch == '\n') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + } + else + { + lookahead[0] = ch; + } + } + else if (ch == ' ' || ch == '\n' || ch == '\f' || ch == '\t') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + } + else + { + lookahead[0] = ch; + } + } + else if (ch != '\n' && ch != '\r' && ch != '\f') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + } + else + throw new CSSLexicalException("Can't read escape"); + } + else + throw new CSSLexicalException("Escape must start with '\\'"); + + } + + private void readName() + throws IOException + { + // Read first name character. + int ch = read(); + if (ch != -1 && (ch == '_' || ch == '-' || (ch >= 'a' && ch <= 'z') + || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9'))) + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + } + else + throw new CSSLexicalException("Invalid name"); + + // Read any number (at least one) of [_a-zA-Z0-9-] chars. + ch = read(); + while (ch != -1 && (ch == '_' || ch == '-' || (ch >= 'a' && ch <= 'z') + || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9'))) + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + } + + // Push back last read character since it doesn't belong to the IDENT. + lookahead[0] = ch; + } + + /** + * Reads in a string. + * + * @throws IOException + */ + private void readString() + throws IOException + { + int ch1 = read(); + if (ch1 != -1 && (ch1 == '\'' || ch1 == '\"')) + { + parseBuffer[tokenEnd] = (char) ch1; + tokenEnd++; + + // Read any number of chars until we hit another chc1 char. + // Reject newlines, except if prefixed with \. + int ch = read(); + while (ch != -1 && ch != ch1) + { + // Every non-newline and non-\ char should be ok. + if (ch != '\n' && ch != '\r' && ch != '\f' && ch != '\\') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + } + // Ok when followed by newline or as part of escape. + else if (ch == '\\') + { + int ch2 = read(); + if (ch2 == '\n' || ch2 == '\r') + { + parseBuffer[tokenEnd] = (char) ch; + parseBuffer[tokenEnd + 1] = (char) ch2; + tokenEnd += 2; + } + else + { + // Try to parse an escape. + lookahead[0] = ch; + lookahead[1] = ch2; + readEscape(); + } + } + else + throw new CSSLexicalException("Invalid string"); + + ch = read(); + } + if (ch != -1) + { + // Push the final char on the buffer. + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + } + else + throw new CSSLexicalException("Unterminated string"); + } + else + throw new CSSLexicalException("Invalid string"); + } + + /** + * Reads a chunk of whitespace. + * + * @throws IOException + */ + private void readWhitespace() + throws IOException + { + int ch = read(); + while (ch != -1 && (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' + || ch == '\f')) + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + } + // Push back last character read. + lookahead[0] = ch; + + } + + private void readURI() + throws IOException + { + // FIXME: Implement. + } + + /** + * Reads a comment block. + * + * @throws IOException + */ + private void readComment() + throws IOException + { + // First we need a / and a * + int ch = read(); + if (ch != -1 && ch == '/') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + if (ch != -1 && ch == '*') + { + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + boolean finished = false; + int lastChar = ch; + ch = read(); + while (! finished && ch != -1) + { + if (lastChar == '*' && ch == '/') + finished = true; + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + lastChar = ch; + ch = read(); + } + } + } + if (ch == -1) + throw new CSSLexicalException("Unterminated comment"); + + // Push back last character read. + lookahead[0] = ch; + } + + /** + * Reads a number. + * + * @throws IOException + */ + private void readNum() + throws IOException + { + boolean hadDot = false; + // First char must be number or . + int ch = read(); + if (ch != -1 && ((ch >= '0' && ch <= '9') || ch == '.')) + { + if (ch == '.') + hadDot = true; + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + // Now read in any number of digits afterwards, and maybe one dot, + // if we hadn't one already. + ch = read(); + while (ch != -1 && ((ch >= '0' && ch <= '9') + || (ch == '.' && ! hadDot))) + { + if (ch == '.') + hadDot = true; + parseBuffer[tokenEnd] = (char) ch; + tokenEnd++; + ch = read(); + } + } + else + throw new CSSLexicalException("Invalid number"); + + // Check if we haven't accidentally finished with a dot. + if (parseBuffer[tokenEnd - 1] == '.') + throw new CSSLexicalException("Invalid number"); + + // Push back last character read. + lookahead[0] = ch; + } + + /** + * For testing, we read in the default.css in javax/swing/text/html + * + * @param args + */ + public static void main(String[] args) + { + try + { + String name = "/javax/swing/text/html/default.css"; + InputStream in = CSSScanner.class.getResourceAsStream(name); + BufferedInputStream bin = new BufferedInputStream(in); + InputStreamReader r = new InputStreamReader(bin); + CSSScanner s = new CSSScanner(r); + int token; + do + { + token = s.nextToken(); + System.out.println("token: " + token + ": " + + s.currentTokenString()); + } while (token != -1); + } + catch (IOException ex) + { + ex.printStackTrace(); + } + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java b/libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java new file mode 100644 index 00000000000..2795b678401 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java @@ -0,0 +1,273 @@ +/* FontSize.java -- Converts CSS font size values into real values + 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 gnu.javax.swing.text.html.css; + +/** + * Converts CSS font-size values into real (point) values. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class FontSize +{ + + /** + * The CSS value. + */ + private String value; + + /** + * The actual font size. + */ + private int size; + + /** + * The index of one of the standard sizes that this font size maps to. + * This is -1 if this fontsize doesn't map to one of the standard sizes. + * + * @see #SCALE + */ + private int sizeIndex; + + /** + * True when this font size is relative. + */ + private boolean isRelative; + + /** + * The default size for 'medium' absolute size. The other absolute sizes + * are calculated from this. + */ + public static final int DEFAULT_FONT_SIZE = 12; + + /** + * The scaling factors relative to the medium size. Medium is at index 2. + */ + private static final double[] SCALE = {0.8, 0.9, 1.0, 1.2, 1.4, 1.6, 1.8 }; + + /** + * Creates a new FontSize for the specified value. + * + * @param val the value to convert + */ + public FontSize(String val) + { + value = val; + sizeIndex = -1; + isRelative = false; + size = mapValue(); + } + + /** + * Returns the font size value. + * + * @return the font size value + */ + public int getValue(int p) + { + if (isRelative) + mapRelative(p); + return size; + } + + public int getValue() + { + assert ! isRelative; + return size; + } + + /** + * Returns the converted real value in point. + * + * @return the converted real value in point + */ + private int mapValue() + { + int intVal; + if (value.contains("pt")) + intVal = mapPoints(); + else if (value.contains("px")) + intVal = mapPixels(); + else if (value.contains("em") || value.contains("%") + || value.contains("larger") || value.contains("smaller")) + { + intVal = -1; + isRelative = true; + } + else + intVal = mapAbsolute(); + return intVal; + } + + /** + * Maps point values ('XXXpt'). + * + * @return the real font size + */ + private int mapPoints() + { + int end = value.indexOf("pt"); + String number = value.substring(0, end); + int intVal = Integer.parseInt(number); + return intVal; + } + + /** + * Maps pixel values ('XXXpx'). + * + * @return the real font size + */ + private int mapPixels() + { + int end = value.indexOf("px"); + if (end == -1) + end = value.length(); + String number = value.substring(0, end); + try + { + int intVal = Integer.parseInt(number); + return intVal; + } + catch (NumberFormatException ex) + { + return DEFAULT_FONT_SIZE; + } + } + + private int mapPercent(int par) + { + int end = value.indexOf("%"); + if (end == -1) + end = value.length(); + String number = value.substring(0, end); + try + { + int intVal = Integer.parseInt(number); + return intVal * par / 100; + } + catch (NumberFormatException ex) + { + System.err.println("couldn't map value: '" + value + "'"); + return DEFAULT_FONT_SIZE; + } + } + + private int mapEM(int par) + { + int end = value.indexOf("em"); + if (end == -1) + end = value.length(); + String number = value.substring(0, end); + try + { + float factor = Float.parseFloat(number); + // FIXME: Should be relative to the parent element's size. + return (int) (factor * par); + } + catch (NumberFormatException ex) + { + return DEFAULT_FONT_SIZE; + } + } + + private int mapSmaller(int par) + { + return (int) (par * 0.9); + } + + private int mapLarger(int par) + { + return (int) (par * 0.9); + } + + /** + * Maps absolute font-size values. + * + * @return the real value + */ + private int mapAbsolute() + { + int index; + if (value.equals("xx-small") || value.equals("x-small")) + index = 0; + else if (value.equals("small")) + index = 1; + else if (value.equals("medium")) + index = 2; + else if (value.equals("large")) + index = 3; + else if (value.equals("x-large")) + index = 4; + else if (value.equals("xx-large")) + index = 5; + else + index = 2; + double scale = SCALE[index]; + // FIXME: Scale the real medium size of the document, rather than the + // constant here. + int intVal = (int) (scale * DEFAULT_FONT_SIZE); + sizeIndex = index; + return intVal; + } + + /** + * Returns the string representation. + */ + public String toString() + { + return value; + } + + private int mapRelative(int par) + { + if (value.indexOf('%') != -1) + size = mapPercent(par); + else if (value.indexOf("em") != -1) + size = mapEM(par); + else if (value.indexOf("larger") != -1) + size = mapLarger(par); + else if (value.indexOf("smaller") != -1) + size = mapSmaller(par); + return size; + } + + public boolean isRelative() + { + return isRelative; + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/FontStyle.java b/libjava/classpath/gnu/javax/swing/text/html/css/FontStyle.java new file mode 100644 index 00000000000..e52893193cb --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/FontStyle.java @@ -0,0 +1,80 @@ +/* FontStyle.java -- Converts font-size CSS values + 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 gnu.javax.swing.text.html.css; + +import java.awt.Font; + +/** + * Converts font-size CSS values to a form to be used by {@link java.awt.Font}. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class FontStyle +{ + + /** + * The real value. + */ + private String value; + + /** + * Creates a new instance. + * + * @param val the CSS value + */ + public FontStyle(String val) + { + value = val; + } + + /** + * Returns the converted value. + * + * @return the converted value + */ + public int getValue() + { + int intVal; + if (value.equals("italic") || value.equals("oblique")) + intVal = Font.ITALIC; + else + intVal = Font.PLAIN; + return intVal; + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/FontWeight.java b/libjava/classpath/gnu/javax/swing/text/html/css/FontWeight.java new file mode 100644 index 00000000000..d338c6f5514 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/FontWeight.java @@ -0,0 +1,84 @@ +/* FontWeight.java -- Converts font-weight values + 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 gnu.javax.swing.text.html.css; + +import java.awt.Font; + +/** + * Converts font-weight CSS values to the constants defined for + * {@link java.awt.Font} + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class FontWeight +{ + + /** + * The value to convert. + */ + private String value; + + /** + * Creates a new instance. + * + * @param val the value to convert + */ + public FontWeight(String val) + { + value = val; + } + + /** + * Returns the converted value. + * + * @return the converted value + */ + public int getValue() + { + int intVal; + if (value.equals("normal")) + intVal = Font.PLAIN; + else if (value.equals("bold")) + intVal = Font.BOLD; + else + // FIXME: Implement finer-grained weights. + intVal = Font.PLAIN; + return intVal; + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/Length.java b/libjava/classpath/gnu/javax/swing/text/html/css/Length.java new file mode 100644 index 00000000000..06fa36e3d29 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/Length.java @@ -0,0 +1,283 @@ +/* Length.java -- Converts CSS length values + 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 gnu.javax.swing.text.html.css; + +/** + * Converts CSS length values to usable length values. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class Length +{ + + /** + * The original value. + */ + private String value; + + /** + * The converted value. + */ + protected float floatValue; + + /** + * Indicates when the value is a percentage value. + */ + private boolean isPercentage; + + /** + * Indicates a length value that is relative to the font size (em). + */ + private boolean isFontEMRelative; + + /** + * Indicates a length value that is relative to the font size (ex). + */ + private boolean isFontEXRelative; + + /** + * The EM base size. + */ + private float emBase; + + /** + * The EX base size. + */ + private float exBase; + + /** + * Creates a new length converter instance. + * + * @param val the CSS value + */ + public Length(String val) + { + isFontEMRelative = false; + isFontEXRelative = false; + isPercentage = false; + value = val; + int i = value.indexOf("px"); + int percent = value.indexOf("%"); + int em = value.indexOf("em"); + int ex = value.indexOf("ex"); + try + { + floatValue = 0.0F; + if (i != -1) + { + String sub = value.substring(0, i); + floatValue = Float.parseFloat(sub); + } + else if (percent != -1) + { + isPercentage = true; + String sub = value.substring(0, percent); + floatValue = Float.parseFloat(sub) / 100; + } + else if (em != -1) + { + isFontEMRelative = true; + String sub = value.substring(0, em); + floatValue = Float.parseFloat(sub); + } + else if (ex != -1) + { + isFontEXRelative = true; + String sub = value.substring(0, ex); + floatValue = Float.parseFloat(sub); + } + else + { + floatValue = Float.parseFloat(value); + } + } + catch (NumberFormatException exc) + { + // Don't let such small problems interrupt CSS parsing. + System.err.println("couldn't parse: " + val); + } + } + + /** + * Returns the value converted to pixels. + * + * @return the value converted to pixels + */ + public float getValue() + { + return floatValue; + } + + /** + * Returns the absolute span for the case when this length value is + * a relative value. + * + * @param base the base span + * + * @return the absolute span + */ + public float getValue(float base) + { + float span = floatValue; + if (isPercentage) + span *= base; + else if (isFontEMRelative) + span *= emBase; + else if (isFontEXRelative) + span *= exBase; + return span; + } + + /** + * Sets the font relative EM base. + * + * @param base the font relative EM base + */ + public void setEMBase(float base) + { + emBase = base; + } + + /** + * Sets the font relative EX base. + * + * @param base the font relative EX base + */ + public void setEXBase(float base) + { + exBase = base; + } + + /** + * Sets the font relative base values. + * + * @param emBase the EM base + * @param exBase the EX base + */ + public void setFontBases(float emBase, float exBase) + { + setEMBase(emBase); + setEXBase(exBase); + } + + /** + * Returns true when this length value is an em font relative value. In + * order to get correct results, you need the exBase property set up + * correctly. + * + * @return true when this length value is an ex font relative value + */ + public boolean isFontEMRelative() + { + return isFontEMRelative; + } + + /** + * Returns true when this length value is an ex font relative value. In + * order to get correct results, you need the emBase property set up + * correctly. + * + * @return true when this length value is an ex font relative value + */ + public boolean isFontEXRelative() + { + return isFontEXRelative; + } + + /** + * Returns true when the length value is a percentage + * value, false otherwise. + * + * @return true when the length value is a percentage + * value, false otherwise + */ + public boolean isPercentage() + { + return isPercentage; + } + + /** + * Checks if the specified value makes up a valid length value. + * + * @param value the value to check + * + * @return true if the value is a valid length + */ + public static boolean isValid(String value) + { + boolean isValid = true; + int px = value.indexOf("px"); + int em = value.indexOf("em"); + int ex = value.indexOf("ex"); + int pc = value.indexOf('%'); + try + { + if (px != -1) + { + Integer.parseInt(value.substring(0, px)); + } + else if (em != -1) + { + Integer.parseInt(value.substring(0, em)); + } + else if (ex != -1) + { + Integer.parseInt(value.substring(0, ex)); + } + else if (pc != -1) + { + Integer.parseInt(value.substring(0, ex)); + } + else + { + Integer.parseInt(value); + } + } + catch (NumberFormatException nfe) + { + isValid = false; + } + return isValid; + } + + public String toString() + { + return value; + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java b/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java new file mode 100644 index 00000000000..210df3a7b65 --- /dev/null +++ b/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java @@ -0,0 +1,244 @@ +/* Selector.java -- A CSS selector + 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 gnu.javax.swing.text.html.css; + +import java.util.Map; +import java.util.StringTokenizer; + +/** + * A CSS selector. This provides methods to interpret a selector and + * query matches with an actual HTML element tree. + */ +public class Selector +{ + + /** + * The actual selector. The selector tokens are stored backwards, that + * is the last token first. This makes matching easier. + */ + private String[] selector; + + private String[] elements; + private String[] ids; + private String[] classes; + + /** + * The specificity of the selector. + */ + private int specificity; + + /** + * An implicit selector has true here. This is the case for CSS rules that + * are attached to HTML elements directly via style="". + */ + private boolean implicit; + + /** + * Creates a new Selector instance for the specified selector string. + * + * @param sel the selector + */ + public Selector(String sel) + { + StringTokenizer selectorTokens = new StringTokenizer(sel, " "); + selector = new String[selectorTokens.countTokens()]; + for (int i = selector.length - 1; selectorTokens.hasMoreTokens(); i--) + { + selector[i] = selectorTokens.nextToken(); + } + calculateSpecificity(); + } + + /** + * Determines if this selector matches the element path specified in the + * arguments. The arguments hold the element names as well as class + * and id attibutes of the HTML element to be queried. The first item + * in the array is the deepest element and the last on the highest up (for + * instance, the html tag). + * + * @param tags + * @param classes + * @param ids + * + * @return true when this selector matches the element path, + * false otherwise + */ + public boolean matches(String[] tags, Map[] attributes) + { + // TODO: This implements class, id and descendent matching. These are + // the most commonly used selector matchers in CSS together with HTML. + // However, the CSS spec defines a couple of more sophisticated matches + // which should be implemented. + // http://www.w3.org/TR/CSS21/selector.html + + // All parts of the selector must match at some point. + boolean match = false; + int numTags = tags.length; + int numSel = selector.length; + if (numSel <= numTags) + { + match = true; + int tagIndex = 0; + for (int j = 0; j < numSel && match; j++) + { + boolean tagMatch = false; + for (; tagIndex < numTags && tagMatch == false; tagIndex++) + { + Object pathClass = attributes[tagIndex].get("class"); + // Try pseudo class too. + Object pseudoClass = attributes[tagIndex].get("_pseudo"); + Object dynClass = attributes[tagIndex].get("_dynamic"); + Object pathId = attributes[tagIndex].get("id"); + String tag = elements[j]; + String clazz = classes[j]; + String id = ids[j]; + tagMatch = tag.equals("") || tag.equals("*") + || tag.equals(tags[tagIndex]); + tagMatch = tagMatch && (clazz.equals("*") + || clazz.equals(dynClass) + || clazz.equals(pseudoClass) + || clazz.equals(pathClass)); + tagMatch = tagMatch && (id.equals("*") + || id.equals(pathId)); + // For the last element in the selector we must not look + // further. + if (j == 0) + break; + } + // If we don't come out here with a matching tag, then we're + // not matching at all. + match = tagMatch; + } + } + return match; + } + + /** + * Returns the specificity of the selector. This is calculated according + * to: + * http://www.w3.org/TR/CSS21/cascade.html#specificity + * + * @return the specificity of the selector + */ + public int getSpecificity() + { + return specificity; + } + + /** + * Returns a string representation of the selector. This tries to reconstruct + * the original selector as closely as possible. + * + * @return a string representation of the selector + */ + public String toString() + { + StringBuilder b = new StringBuilder(); + for (int i = selector.length - 1; i >= 0; i--) + { + b.append(selector[i]); + if (i > 0) + b.append(' '); + } + return b.toString(); + } + + /** + * Calculates the specificity of the selector. This is calculated according + * to: + * http://www.w3.org/TR/CSS21/cascade.html#specificity + */ + private void calculateSpecificity() + { + int a = implicit ? 1 : 0; + int b = 0; + int c = 0; + int d = 0; + int numSel = selector.length; + elements = new String[numSel]; + ids = new String[numSel]; + classes = new String[numSel]; + for (int i = 0; i < numSel; i++) + { + String sel = selector[i]; + int clazzIndex = sel.indexOf('.'); + // Try pseudo class too. + if (clazzIndex == -1) + clazzIndex = sel.indexOf(':'); + int idIndex = sel.indexOf('#'); + String clazz; + if (clazzIndex == -1) + { + clazz = "*"; + clazzIndex = sel.length(); + } + else + { + c++; + clazz = sel.substring(clazzIndex + 1, + idIndex > 0 ? Math.min(idIndex, sel.length()) + : sel.length()); + } + String id; + if (idIndex == -1) + { + id = "*"; + idIndex = sel.length(); + } + else + { + b++; + id = sel.substring(idIndex + 1, + clazzIndex > 0 ? Math.min(clazzIndex, sel.length()) + : sel.length()); + } + String tag = sel.substring(0, + Math.min(Math.min(clazzIndex, idIndex), + sel.length())); + if (! tag.equals("") && ! tag.equals("*")) + d++; + + elements[i] = tag; + ids[i] = id; + classes[i] = clazz; + } + // An order of 20 should be enough for everybody. + specificity = a * 20 ^ 3 + b * 20 ^ 2 + c * 20 + d; + } +} diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java b/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java index 841db667e84..273461a721e 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java @@ -43,6 +43,7 @@ import java.io.Reader; import java.io.Serializable; import javax.swing.text.BadLocationException; +import javax.swing.text.SimpleAttributeSet; import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.HTMLEditorKit.ParserCallback; import javax.swing.text.html.parser.DTD; @@ -92,7 +93,7 @@ public class GnuParserDelegator extends ParserDelegator implements Serializable protected final void handleStartTag(TagElement tag) { - htmlAttributeSet attributes = gnu.getAttributes(); + SimpleAttributeSet attributes = gnu.getAttributes(); if (tag.fictional()) attributes.addAttribute(ParserCallback.IMPLIED, Boolean.TRUE); diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java b/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java index c3c347e36e3..1894b6a1ac6 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401F.java @@ -2445,8 +2445,10 @@ public class HTML_401F attr(VALUE, null, null, 0, IMPLIED) } ); + + // Headers in the paragraph are not allowed. defElement(P, 0, false, true, new ContentModel( 0, - new noTagModel(P), null), + new noTagModel(new String[] { P, H1, H2, H3, H4, H5, H6 }), null), NONE , new String[] { diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401Swing.java b/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401Swing.java deleted file mode 100644 index 9c934f647de..00000000000 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/HTML_401Swing.java +++ /dev/null @@ -1,91 +0,0 @@ -/* HTML_401Swing.java -- The HTML 4.01 DTD, adapted for HTML rendering in Swing - 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 gnu.javax.swing.text.html.parser; - -import javax.swing.text.html.parser.DTD; - -/** - * This class is necessary because the current implementation of the GNU - * Classpath Swing requires always enclose the text into paragraphs. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class HTML_401Swing extends HTML_401F -{ - /** - * The singleton instance; - */ - final static HTML_401Swing singleton = new HTML_401Swing(); - - /** - * Either takes the document (by name) from DTD table, or - * creates a new instance and registers it in the tabe. - * The document is registerd under name "-//W3C//DTD HTML 4.01 Frameset//EN". - * @return The new or existing DTD for parsing HTML 4.01 Frameset. - */ - public static DTD getInstance() - { - return singleton; - } - - /** - * Get elements that are allowed in the document body, at the zero level. - * This list disallows the text at this level (the implied P tag will be - * generated). It also disallows A, B, I, U, CITE and other similar - * elements that have the plain text inside. They will also be placed - * inside the generated implied P tags. - */ - protected String[] getBodyElements() - { - return new String[] { - APPLET, BASEFONT, - BR, BUTTON, - IFRAME, IMG, - INPUT, LABEL, MAP, OBJECT, - SCRIPT, SELECT, - TEXTAREA, - BLOCKQUOTE, CENTER, DEL, DIR, - DIV, DL, FIELDSET, FORM, H1, - H2, H3, H4, H5, H6, - HR, INS, ISINDEX, MENU, NOFRAMES, - NOSCRIPT, OL, P, PRE, TABLE, - UL - }; - } -} diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java b/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java index 4d287a67763..7507850e8f9 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java @@ -153,7 +153,7 @@ public abstract class htmlValidator * Remove the given tag from the stack or (if found) from the list * of the forcibly closed tags. */ - public void closeTag(TagElement tElement) + public boolean closeTag(TagElement tElement) { HTML.Tag tag = tElement.getHTMLTag(); hTag x; @@ -191,11 +191,12 @@ public abstract class htmlValidator } stack.remove(x); - return; + return true; } } } s_error("Closing unopened <" + tag + ">"); + return false; } /** diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java index 92f9b27c5d9..3a407310e74 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java @@ -56,6 +56,7 @@ import java.util.TreeSet; import java.util.Vector; import javax.swing.text.ChangedCharSetException; +import javax.swing.text.SimpleAttributeSet; import javax.swing.text.html.HTML; import javax.swing.text.html.parser.AttributeList; import javax.swing.text.html.parser.DTD; @@ -250,9 +251,9 @@ public class Parser * Get the attributes of the current tag. * @return The attribute set, representing the attributes of the current tag. */ - public htmlAttributeSet getAttributes() + public SimpleAttributeSet getAttributes() { - return attributes; + return new SimpleAttributeSet(attributes); } /** @@ -497,6 +498,9 @@ public class Parser mustBe(t.kind); } hTag = new Token(start, last); + + // Consume any whitespace immediately following a comment. + optional(WS); handleComment(); } @@ -579,6 +583,8 @@ public class Parser ); } } + // Consume any whitespace that follows the Sgml insertion. + optional(WS); } /** @@ -658,7 +664,10 @@ public class Parser else text = textProcessor.preprocess(buffer); - if (text != null && text.length > 0) + if (text != null && text.length > 0 + // According to the specs we need to discard whitespace immediately + // before a closing tag. + && (text.length > 1 || text[0] != ' ' || ! TAG_CLOSE.matches(this))) { TagElement pcdata = new TagElement(dtd.getElement("#pcdata")); attributes = htmlAttributeSet.EMPTY_HTML_ATTRIBUTE_SET; @@ -889,6 +898,8 @@ public class Parser protected void parseDocument() throws ParseException { + // Read up any initial whitespace. + optional(WS); while (getTokenAhead().kind != EOF) { advanced = false; @@ -979,13 +990,15 @@ public class Parser + next.getImage() + "'"); attrValue = value.getImage(); } - else if (next.kind == SLASH) - // The slash in this context is treated as the ordinary - // character, not as a token. The slash may be part of + else if (next.kind == SLASH || next.kind == OTHER) + // The slash and other characters (like %) in this context is + // treated as the ordinary + // character, not as a token. The character may be part of // the unquoted URL. { StringBuffer image = new StringBuffer(value.getImage()); - while (next.kind == NUMTOKEN || next.kind == SLASH) + while (next.kind == NUMTOKEN || next.kind == SLASH + || next.kind == OTHER) { image.append(getNextToken().getImage()); next = getTokenAhead(); @@ -1177,6 +1190,13 @@ public class Parser { validator.validateTag(tag, attributes); handleEmptyTag(tag); + HTML.Tag h = tag.getHTMLTag(); + // When a block tag is closed, consume whitespace that follows after + // it. + // For some unknown reason a FRAME tag is not treated as block element. + // However in this case it should be treated as such. + if (isBlock(h)) + optional(WS); } catch (ChangedCharSetException ex) { @@ -1192,8 +1212,8 @@ public class Parser */ private void _handleEndTag(TagElement tag) { - validator.closeTag(tag); - _handleEndTag_remaining(tag); + if (validator.closeTag(tag)) + _handleEndTag_remaining(tag); } /** @@ -1213,6 +1233,11 @@ public class Parser if (preformatted < 0) preformatted = 0; + // When a block tag is closed, consume whitespace that follows after + // it. + if (isBlock(h)) + optional(WS); + if (h == HTML.Tag.TITLE) { titleOpen = false; @@ -1239,6 +1264,9 @@ public class Parser HTML.Tag h = tag.getHTMLTag(); + if (isBlock(h)) + optional(WS); + if (h.isPreformatted()) preformatted++; @@ -1418,8 +1446,6 @@ public class Parser hTag = new Token(start, next); - attributes.setResolveParent(defaulter.getDefaultParameters(name.getImage())); - if (!end) { // The tag body contains errors. If additionally the tag @@ -1457,7 +1483,12 @@ public class Parser if (te.getElement().type == DTDConstants.EMPTY) _handleEmptyTag(te); else - _handleStartTag(te); + { + // According to the specs we need to consume whitespace following + // immediately after a opening tag. + optional(WS); + _handleStartTag(te); + } } } @@ -1483,4 +1514,19 @@ public class Parser { error("Whitespace here is not permitted"); } + + /** + * Returns true when the specified tag should be considered a block tag + * wrt whitespace handling. We need this special handling, since there + * are a couple of tags that we must treat as block tags but which aren't + * officially block tags. + * + * @param tag the tag to check + * @return true when the specified tag should be considered a block tag + * wrt whitespace handling + */ + private boolean isBlock(HTML.Tag tag) + { + return tag.isBlock() || tag == HTML.Tag.STYLE || tag == HTML.Tag.FRAME; + } } diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/Constants.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/Constants.java index 283d32385ef..5416582adca 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/Constants.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/Constants.java @@ -209,6 +209,17 @@ public class Constants } ); + /** + * Ordinary HTML tag closing pattern. + */ + public static final pattern TAG_CLOSE = + new pattern(new node[] + { + new node(BEGIN), new node(WS, true), new node(SLASH), + new node(WS, true), new node(NUMTOKEN) + } + ); + /* Special tokens */ /** diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java index cc1610585a6..6fd79e2589e 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java @@ -42,17 +42,17 @@ import gnu.javax.swing.text.html.parser.support.low.Constants; /** * Pre - processes text in text parts of the html document. - * Not thread - safe. + * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public class textPreProcessor { /** - * Pre - process non-preformatted text. - * \t, \r and \n mutate into spaces, then multiple spaces mutate - * into single one, all whitespace around tags is consumed. - * The content of the passed buffer is destroyed. - * @param text A text to pre-process. + * Pre - process non-preformatted text. \t, \r and \n mutate into spaces, then + * multiple spaces mutate into single one, all whitespace around tags is + * consumed. The content of the passed buffer is destroyed. + * + * @param a_text A text to pre-process. */ public char[] preprocess(StringBuffer a_text) { @@ -64,18 +64,15 @@ public class textPreProcessor int a = 0; int b = text.length - 1; - try - { - while (Constants.bWHITESPACE.get(text [ a ])) - a++; - while (Constants.bWHITESPACE.get(text [ b ])) - b--; - } - catch (ArrayIndexOutOfBoundsException sx) - { - // A text fragment, consisting from line breaks only. - return null; - } + // Remove leading/trailing whitespace, leaving at most one character + int len = text.length; + while (a + 1 < len && Constants.bWHITESPACE.get(text[a]) + && Constants.bWHITESPACE.get(text[a + 1])) + a++; + + while (b > a && Constants.bWHITESPACE.get(text[b]) + && Constants.bWHITESPACE.get(text[b - 1])) + b--; a_text.setLength(0); @@ -83,10 +80,9 @@ public class textPreProcessor boolean spaceNow; char c; - chars: - for (int i = a; i <= b; i++) + chars: for (int i = a; i <= b; i++) { - c = text [ i ]; + c = text[i]; spaceNow = Constants.bWHITESPACE.get(c); if (spacesWere && spaceNow) continue chars; diff --git a/libjava/classpath/gnu/test/.cvsignore b/libjava/classpath/gnu/test/.cvsignore new file mode 100644 index 00000000000..70845e08eb0 --- /dev/null +++ b/libjava/classpath/gnu/test/.cvsignore @@ -0,0 +1 @@ +Makefile.in diff --git a/libjava/classpath/gnu/xml/dom/DomAttr.java b/libjava/classpath/gnu/xml/dom/DomAttr.java index 8673a796161..31d7af2d2f1 100644 --- a/libjava/classpath/gnu/xml/dom/DomAttr.java +++ b/libjava/classpath/gnu/xml/dom/DomAttr.java @@ -316,7 +316,7 @@ public class DomAttr private void mutating(String oldValue, String newValue, short why) { - if (!reportMutations || parent == null) + if (!reportMutations || parent == null || equal(newValue, oldValue)) { return; } diff --git a/libjava/classpath/gnu/xml/dom/DomNode.java b/libjava/classpath/gnu/xml/dom/DomNode.java index f0915eb5e93..9af3f3e5498 100644 --- a/libjava/classpath/gnu/xml/dom/DomNode.java +++ b/libjava/classpath/gnu/xml/dom/DomNode.java @@ -668,6 +668,7 @@ public abstract class DomNode { insertionEvent(null, child); } + length++; } return child; @@ -1561,7 +1562,7 @@ public abstract class DomNode // Climb to the top of this subtree and handle capture, letting // each node (from the top down) capture until one stops it or // until we get to this one. - current = parent; + current = (parent == null) ? this : parent; if (current.depth >= ANCESTORS_INIT) { DomNode[] newants = new DomNode[current.depth + 1]; diff --git a/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java b/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java index aad5ac76e70..8c5b104b9f2 100644 --- a/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java +++ b/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java @@ -43,6 +43,7 @@ import java.util.LinkedList; import java.util.List; import javax.xml.XMLConstants; import org.w3c.dom.Attr; +import org.w3c.dom.Document; import org.w3c.dom.DocumentType; import org.w3c.dom.Element; import org.w3c.dom.Entity; @@ -72,7 +73,7 @@ import gnu.xml.dom.DomNode; * * @author Chris Burdess */ -class SAXEventSink +public class SAXEventSink implements ContentHandler, LexicalHandler, DTDHandler, DeclHandler { @@ -110,6 +111,11 @@ class SAXEventSink interrupted = true; } + protected Document getDocument() + { + return doc; + } + // -- ContentHandler2 -- public void setDocumentLocator(Locator locator) diff --git a/libjava/classpath/gnu/xml/stream/SAXParser.java b/libjava/classpath/gnu/xml/stream/SAXParser.java index e58d5fb52ff..1329ab2971c 100644 --- a/libjava/classpath/gnu/xml/stream/SAXParser.java +++ b/libjava/classpath/gnu/xml/stream/SAXParser.java @@ -1021,9 +1021,18 @@ public class SAXParser SAXParser parser = new SAXParser(validating, namespaceAware, xIncludeAware); InputSource input = new InputSource(args[pos]); - XMLReader reader = parser.getXMLReader(); - reader.setContentHandler(handler); - reader.parse(input); + java.io.FileReader fr = new java.io.FileReader(args[pos]); + input.setCharacterStream(fr); + try + { + XMLReader reader = parser.getXMLReader(); + reader.setContentHandler(handler); + reader.parse(input); + } + finally + { + fr.close(); + } pos++; } } diff --git a/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java b/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java index 291016e6716..4be9992a73d 100644 --- a/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java +++ b/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java @@ -664,12 +664,10 @@ public class XMLStreamWriterImpl public void writeDTD(String dtd) throws XMLStreamException { - // Really thoroughly pointless method... try { - if (!isName(dtd)) - throw new IllegalArgumentException("illegal Name: " + dtd); - + // XXX: Should we parse the doctypedecl at this point to ensure + // wellformedness? writer.write("'); diff --git a/libjava/classpath/gnu/xml/transform/SAXTemplatesHandler.java b/libjava/classpath/gnu/xml/transform/SAXTemplatesHandler.java new file mode 100644 index 00000000000..2c5a4686f10 --- /dev/null +++ b/libjava/classpath/gnu/xml/transform/SAXTemplatesHandler.java @@ -0,0 +1,97 @@ +/* SAXTemplatesHandler.java -- + 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 gnu.xml.transform; + +import javax.xml.transform.Templates; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.TemplatesHandler; +import org.w3c.dom.Document; +import gnu.xml.dom.ls.SAXEventSink; + +/** + * A content handler that acts as a sink for SAX parse events, + * constructing an XSL stylesheet. + * Internally, this class simply creates a DOM tree from the events, + * and then parses the DOM into a Templates object. + * + * @author Chris Burdess (dog@gnu.org) + */ +class SAXTemplatesHandler + extends SAXEventSink + implements TemplatesHandler +{ + + final TransformerFactoryImpl factory; + String systemId; + + SAXTemplatesHandler(TransformerFactoryImpl factory) + { + this.factory = factory; + } + + public String getSystemId() + { + return systemId; + } + + public void setSystemId(String systemId) + { + this.systemId = systemId; + } + + public Templates getTemplates() + { + Document doc = getDocument(); + if (doc == null) + throw new IllegalStateException("Parsing of stylesheet incomplete"); + DOMSource ds = new DOMSource(doc, systemId); + try + { + return factory.newTemplates(ds); + } + catch (TransformerConfigurationException e) + { + String msg = "Unable to construct templates from this event stream"; + IllegalStateException e2 = new IllegalStateException(msg); + e2.initCause(e); + throw e2; + } + } + +} diff --git a/libjava/classpath/gnu/xml/transform/SAXTransformerHandler.java b/libjava/classpath/gnu/xml/transform/SAXTransformerHandler.java new file mode 100644 index 00000000000..83cc3754be9 --- /dev/null +++ b/libjava/classpath/gnu/xml/transform/SAXTransformerHandler.java @@ -0,0 +1,111 @@ +/* SAXTransformerHandler.java -- + 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 gnu.xml.transform; + +import javax.xml.transform.Result; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.TransformerHandler; +import org.w3c.dom.Document; +import org.xml.sax.SAXException; +import gnu.xml.dom.ls.SAXEventSink; + +/** + * A SAX event sink that processes an XML source represented as a stream of + * SAX events into a result tree. + * This works by simply buffering all the events into a DOM tree and then + * using this DOM tree as the source of the transformation. + * + * @author Chris Burdess (dog@gnu.org) + */ +class SAXTransformerHandler + extends SAXEventSink + implements TransformerHandler +{ + + final TransformerFactoryImpl factory; + final Transformer transformer; + String systemId; + Result result; + + SAXTransformerHandler(TransformerFactoryImpl factory, Transformer transformer) + { + this.factory = factory; + this.transformer = transformer; + } + + public String getSystemId() + { + return systemId; + } + + public void setSystemId(String systemId) + { + this.systemId = systemId; + } + + public Transformer getTransformer() + { + return transformer; + } + + public void setResult(Result result) + { + this.result = result; + } + + public void endDocument() + throws SAXException + { + super.endDocument(); + try + { + Document doc = getDocument(); + DOMSource ds = new DOMSource(doc, systemId); + transformer.transform(ds, result); + } + catch (TransformerException e) + { + SAXException e2 = new SAXException(e.getMessage()); + e2.initCause(e); + throw e2; + } + } + +} diff --git a/libjava/classpath/gnu/xml/transform/StreamSerializer.java b/libjava/classpath/gnu/xml/transform/StreamSerializer.java index fb8b1a601bc..26bdda8b325 100644 --- a/libjava/classpath/gnu/xml/transform/StreamSerializer.java +++ b/libjava/classpath/gnu/xml/transform/StreamSerializer.java @@ -324,7 +324,8 @@ public class StreamSerializer break; case Node.TEXT_NODE: value = node.getNodeValue(); - if (!"yes".equals(node.getUserData("disable-output-escaping"))) + if (!"yes".equals(node.getUserData("disable-output-escaping")) && + mode != Stylesheet.OUTPUT_TEXT) value = encode(value, false, false); out.write(encodeText(value)); break; diff --git a/libjava/classpath/gnu/xml/transform/TransformerFactoryImpl.java b/libjava/classpath/gnu/xml/transform/TransformerFactoryImpl.java index 16e3363f8c6..1e8fea3e3a6 100644 --- a/libjava/classpath/gnu/xml/transform/TransformerFactoryImpl.java +++ b/libjava/classpath/gnu/xml/transform/TransformerFactoryImpl.java @@ -60,11 +60,15 @@ import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXResult; import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.sax.SAXTransformerFactory; +import javax.xml.transform.sax.TemplatesHandler; +import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; +import org.xml.sax.XMLFilter; import gnu.xml.dom.DomDocument; /** @@ -73,7 +77,7 @@ import gnu.xml.dom.DomDocument; * @author Chris Burdess */ public class TransformerFactoryImpl - extends TransformerFactory + extends SAXTransformerFactory { final XPathFactory xpathFactory; @@ -316,7 +320,8 @@ public class TransformerFactoryImpl StreamSource.FEATURE.equals(name) || StreamResult.FEATURE.equals(name) || DOMSource.FEATURE.equals(name) || - DOMResult.FEATURE.equals(name)) + DOMResult.FEATURE.equals(name) || + SAXTransformerFactory.FEATURE.equals(name)) { return true; } @@ -346,6 +351,49 @@ public class TransformerFactoryImpl return userListener; } + // -- SAXTransformerFactory -- + + public TemplatesHandler newTemplatesHandler() + throws TransformerConfigurationException + { + return new SAXTemplatesHandler(this); + } + + public TransformerHandler newTransformerHandler() + throws TransformerConfigurationException + { + Transformer transformer = newTransformer(); + return new SAXTransformerHandler(this, transformer); + } + + public TransformerHandler newTransformerHandler(Source source) + throws TransformerConfigurationException + { + Transformer transformer = newTransformer(source); + return new SAXTransformerHandler(this, transformer); + } + + public TransformerHandler newTransformerHandler(Templates templates) + throws TransformerConfigurationException + { + Transformer transformer = templates.newTransformer(); + return new SAXTransformerHandler(this, transformer); + } + + public XMLFilter newXMLFilter(Source source) + throws TransformerConfigurationException + { + throw new UnsupportedOperationException(); + } + + public XMLFilter newXMLFilter(Templates templates) + throws TransformerConfigurationException + { + throw new UnsupportedOperationException(); + } + + // -- SAXTransformerFactory end -- + /** * Syntax: TransformerFactoryImpl [ [ []]] */ diff --git a/libjava/classpath/gnu/xml/transform/XSLURIResolver.java b/libjava/classpath/gnu/xml/transform/XSLURIResolver.java index 6a49caab458..8d7e3fcb485 100644 --- a/libjava/classpath/gnu/xml/transform/XSLURIResolver.java +++ b/libjava/classpath/gnu/xml/transform/XSLURIResolver.java @@ -53,6 +53,7 @@ import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.URIResolver; import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamSource; import org.w3c.dom.Node; import org.xml.sax.InputSource; @@ -118,10 +119,9 @@ class XSLURIResolver try { - URL url = resolveURL(systemId, base, href); Node node = null; InputStream in = null; - if (source instanceof StreamSource) + if (source != null && source instanceof StreamSource) { StreamSource ss = (StreamSource) source; in = ss.getInputStream(); @@ -134,8 +134,25 @@ class XSLURIResolver } } } + else if (source != null && source instanceof SAXSource) + { + SAXSource ss = (SAXSource) source; + if (ss.getInputSource() != null) + { + in = ss.getInputSource().getByteStream(); + if (in == null) + { + Reader reader = ss.getInputSource().getCharacterStream(); + if (reader != null) + { + in = new ReaderInputStream(reader); + } + } + } + } if (in == null) { + URL url = resolveURL(systemId, base, href); if (url != null) { systemId = url.toString(); diff --git a/libjava/classpath/gnu/xml/xpath/Expr.java b/libjava/classpath/gnu/xml/xpath/Expr.java index 76fd49eeff5..cafc83b0d37 100644 --- a/libjava/classpath/gnu/xml/xpath/Expr.java +++ b/libjava/classpath/gnu/xml/xpath/Expr.java @@ -59,6 +59,7 @@ import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; import org.w3c.dom.Document; import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -80,6 +81,38 @@ public abstract class Expr ".####################################################", new DecimalFormatSymbols(Locale.US)); + static class ExprNodeSet implements NodeList + { + + private ArrayList list; + + ExprNodeSet(Collection collection) + { + if (collection instanceof ArrayList) + list = (ArrayList) collection; + else + list = new ArrayList(collection); + } + + public int getLength() + { + return list.size(); + } + + public Node item(int index) + { + try + { + return (Node) list.get(index); + } + catch (ArrayIndexOutOfBoundsException e) + { + return null; + } + } + + } + public Object evaluate(Object item, QName returnType) throws XPathExpressionException { @@ -132,6 +165,8 @@ public abstract class Expr { throw new XPathExpressionException("return value is not a node-set"); } + if (ret != null) + ret = new ExprNodeSet((Collection) ret); } } return ret; diff --git a/libjava/classpath/include/.cvsignore b/libjava/classpath/include/.cvsignore new file mode 100644 index 00000000000..773d8af88de --- /dev/null +++ b/libjava/classpath/include/.cvsignore @@ -0,0 +1,9 @@ +Makefile +Makefile.in +stamp-h +config.h +stamp-h.in +config.h.in +jni_md.h +stamp-h1 +config-int.h diff --git a/libjava/classpath/include/GtkDragSourceContextPeer.h b/libjava/classpath/include/GtkDragSourceContextPeer.h index 4a43d811a1e..87606ec1a1c 100644 --- a/libjava/classpath/include/GtkDragSourceContextPeer.h +++ b/libjava/classpath/include/GtkDragSourceContextPeer.h @@ -14,7 +14,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_n JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals (JNIEnv *env, jobject, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create (JNIEnv *env, jobject, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor (JNIEnv *env, jobject, jint) ; - +JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget (JNIEnv *env, jobject, jobject); #ifdef __cplusplus } diff --git a/libjava/classpath/include/Makefile.am b/libjava/classpath/include/Makefile.am index cc8c963708f..e81d1443ad7 100644 --- a/libjava/classpath/include/Makefile.am +++ b/libjava/classpath/include/Makefile.am @@ -126,13 +126,14 @@ $(XMLJ_H_FILES) \ $(GTKPEER_H_FILES) \ $(QTPEER_H_FILES) \ $(GCONF_PREFS_FILES) \ -$(top_srcdir)/include/gnu_java_net_VMPlainDatagramSocketImpl.h \ $(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h \ $(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h \ +$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h \ +$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h \ +$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h \ $(top_srcdir)/include/gnu_java_nio_VMChannel.h \ $(top_srcdir)/include/gnu_java_nio_VMPipe.h \ $(top_srcdir)/include/gnu_java_nio_VMSelector.h \ -$(top_srcdir)/include/gnu_java_nio_channels_FileChannelImpl.h \ $(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h \ $(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h \ $(top_srcdir)/include/java_io_VMFile.h \ @@ -179,8 +180,6 @@ $(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/$(CLASSDIR) $(top_srcdir)/include/gnu_java_util_prefs_gconf_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/util/prefs/gconf/%.class $(JAVAH) -o $@ gnu.java.util.prefs.gconf.$* -$(top_srcdir)/include/gnu_java_net_VMPlainDatagramSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java - $(JAVAH) -o $@ gnu.java.net.VMPlainDatagramSocketImpl $(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl $(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java @@ -215,12 +214,21 @@ $(top_srcdir)/include/java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/ $(JAVAH) -o $@ java.net.VMNetworkInterface $(top_srcdir)/include/java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java $(JAVAH) -o $@ java.net.VMURLConnection + $(top_srcdir)/include/java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java $(JAVAH) -o $@ java.nio.VMDirectByteBuffer $(top_srcdir)/include/java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java $(JAVAH) -o $@ java.nio.MappedByteBufferImpl -$(top_srcdir)/include/gnu_java_nio_channels_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/channels/FileChannelImpl.java - $(JAVAH) -o $@ gnu.java.nio.channels.FileChannelImpl + +$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java + $(JAVAH) -o $@ gnu.java.nio.FileChannelImpl + +$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java + $(JAVAH) -o $@ gnu.java.nio.KqueueSelectorImpl + +$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java + $(JAVAH) -o $@ gnu.java.nio.EpollSelectorImpl + $(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvDecoder $(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java diff --git a/libjava/classpath/include/Makefile.in b/libjava/classpath/include/Makefile.in index b87dc5b7949..30286764c68 100644 --- a/libjava/classpath/include/Makefile.in +++ b/libjava/classpath/include/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -158,6 +160,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -279,7 +283,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ DISTCLEANFILES = jni_md.h config-int.h ARG_JNI_JAVAH = -jni @@ -404,13 +407,14 @@ $(XMLJ_H_FILES) \ $(GTKPEER_H_FILES) \ $(QTPEER_H_FILES) \ $(GCONF_PREFS_FILES) \ -$(top_srcdir)/include/gnu_java_net_VMPlainDatagramSocketImpl.h \ $(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h \ $(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h \ +$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h \ +$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h \ +$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h \ $(top_srcdir)/include/gnu_java_nio_VMChannel.h \ $(top_srcdir)/include/gnu_java_nio_VMPipe.h \ $(top_srcdir)/include/gnu_java_nio_VMSelector.h \ -$(top_srcdir)/include/gnu_java_nio_channels_FileChannelImpl.h \ $(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h \ $(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h \ $(top_srcdir)/include/java_io_VMFile.h \ @@ -637,8 +641,6 @@ uninstall-am: uninstall-info-am @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_util_prefs_gconf_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/util/prefs/gconf/%.class @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.util.prefs.gconf.$* -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_VMPlainDatagramSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java -@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.net.VMPlainDatagramSocketImpl @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java @@ -673,12 +675,21 @@ uninstall-am: uninstall-info-am @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.net.VMNetworkInterface @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.net.VMURLConnection + @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.nio.VMDirectByteBuffer @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.nio.MappedByteBufferImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_channels_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/channels/FileChannelImpl.java -@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.channels.FileChannelImpl + +@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java +@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.FileChannelImpl + +@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java +@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.KqueueSelectorImpl + +@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java +@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.EpollSelectorImpl + @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvDecoder @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java diff --git a/libjava/classpath/include/config.h.in b/libjava/classpath/include/config.h.in index dda8b58e96e..0b2a58e86df 100644 --- a/libjava/classpath/include/config.h.in +++ b/libjava/classpath/include/config.h.in @@ -36,6 +36,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DSSI_H +/* Define to 1 if you have the `epoll_create' function. */ +#undef HAVE_EPOLL_CREATE + /* Define to 1 if you have the `execve' function. */ #undef HAVE_EXECVE @@ -57,9 +60,15 @@ /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE +/* Define to 1 if you have the `gethostbyname_r' function. */ +#undef HAVE_GETHOSTBYNAME_R + /* Define to 1 if you have the `gethostname' function. */ #undef HAVE_GETHOSTNAME +/* Define to 1 if you have the `getifaddrs' function. */ +#undef HAVE_GETIFADDRS + /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE @@ -72,6 +81,12 @@ /* Define to 1 if you have the `getsockopt' function. */ #undef HAVE_GETSOCKOPT +/* Define if function attributes a la GCC 2.5 and higher are available. */ +#undef HAVE_GNUC25_ATTRIB + +/* Define if unused variables la GCC 2.5 and higher are available. */ +#undef HAVE_GNUC25_UNUSED + /* Define to 1 if you have the `htonl' function. */ #undef HAVE_HTONL @@ -81,12 +96,36 @@ /* Define if you have the iconv() function. */ #undef HAVE_ICONV +/* Define to 1 if you have the header file. */ +#undef HAVE_IFADDRS_H + +/* Define if inet6 structures are defined in netinet/in.h. */ +#undef HAVE_INET6 + +/* Define to 1 if you have the `inet_addr' function. */ +#undef HAVE_INET_ADDR + +/* Define to 1 if you have the `inet_aton' function. */ +#undef HAVE_INET_ATON + +/* Define to 1 if you have the `inet_pton' function. */ +#undef HAVE_INET_PTON + /* Define to 1 if you have uint32_t */ #undef HAVE_INT32_DEFINED /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the `kevent' function. */ +#undef HAVE_KEVENT + +/* Define to 1 if you have the `kqueue' function. */ +#undef HAVE_KQUEUE + +/* Define to 1 if you have the `ltdl' library (-lltdl). */ +#undef HAVE_LIBLTDL + /* Define to 1 if you have the `listen' function. */ #undef HAVE_LISTEN @@ -99,6 +138,9 @@ /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT +/* Define to 1 if you have the header file. */ +#undef HAVE_LTDL_H + /* Define to 1 if you have the `madvise' function. */ #undef HAVE_MADVISE @@ -120,6 +162,9 @@ /* Define to 1 if you have the `mmap' function. */ #undef HAVE_MMAP +/* Define this symbol if you have MSG_NOSIGNAL */ +#undef HAVE_MSG_NOSIGNAL + /* Define to 1 if you have the `msync' function. */ #undef HAVE_MSYNC @@ -135,9 +180,15 @@ /* Define to 1 if you have the `read' function. */ #undef HAVE_READ +/* Define to 1 if you have the `readdir_r' function. */ +#undef HAVE_READDIR_R + /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK +/* Define to 1 if you have the `readv' function. */ +#undef HAVE_READV + /* Define to 1 if you have the `recvfrom' function. */ #undef HAVE_RECVFROM @@ -159,6 +210,9 @@ /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET +/* Define this symbol if you have SO_NOSIGPIPE */ +#undef HAVE_SO_NOSIGPIPE + /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H @@ -186,6 +240,12 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_CONFIG_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_EPOLL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_EVENT_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_FILIO_H @@ -236,6 +296,9 @@ /* Define to 1 if you have the `write' function. */ #undef HAVE_WRITE +/* Define to 1 if you have the `writev' function. */ +#undef HAVE_WRITEV + /* Define to 1 if you have libXrandr. */ #undef HAVE_XRANDR @@ -315,3 +378,24 @@ /* Define to empty if `const' does not conform to ANSI C. */ #undef const + +/* GNU C attributes. */ +#ifndef FUNCATTR +#ifdef HAVE_GNUC25_ATTRIB +#define FUNCATTR(x) __attribute__(x) +#else +#define FUNCATTR(x) +#endif +#endif + +/* GNU C unused functions, or null. */ +#ifndef ATTRUNUSED +#ifdef HAVE_GNUC25_UNUSED +#define ATTRUNUSED unused +#else +#define ATTRUNUSED +#endif +#endif +#ifndef UNUSED +#define UNUSED FUNCATTR((ATTRUNUSED)) +#endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h index a54c7117ed9..c4a7f1b0264 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h @@ -12,9 +12,9 @@ extern "C" JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_init (JNIEnv *env, jobject, jlong); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative (JNIEnv *env, jobject, jlong); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels (JNIEnv *env, jobject, jlong, jintArray, jint, jint, jint, jdoubleArray, jdouble); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels (JNIEnv *env, jobject, jlong, jintArray, jint, jint, jint, jdoubleArray, jdouble, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setGradient (JNIEnv *env, jobject, jlong, jdouble, jdouble, jdouble, jdouble, jint, jint, jint, jint, jint, jint, jint, jint, jboolean); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setTexturePixels (JNIEnv *env, jobject, jlong, jintArray, jint, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels (JNIEnv *env, jobject, jlong, jintArray, jint, jint, jint, jboolean, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix (JNIEnv *env, jobject, jlong, jdoubleArray); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoScale (JNIEnv *env, jobject, jlong, jdouble, jdouble); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetOperator (JNIEnv *env, jobject, jlong, jint); @@ -23,6 +23,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFillRu JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetLine (JNIEnv *env, jobject, jlong, jdouble, jint, jint, jdouble); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetDash (JNIEnv *env, jobject, jlong, jdoubleArray, jint, jdouble); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector (JNIEnv *env, jobject, jlong, jobject, jfloat, jfloat, jint, jintArray, jfloatArray); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont (JNIEnv *env, jobject, jlong, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelCurveTo (JNIEnv *env, jobject, jlong, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRectangle (JNIEnv *env, jobject, jlong, jdouble, jdouble, jdouble, jdouble); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoArc (JNIEnv *env, jobject, jlong, jdouble, jdouble, jdouble, jdouble, jdouble); @@ -40,10 +41,21 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFill (JNI JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClip (JNIEnv *env, jobject, jlong); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip (JNIEnv *env, jobject, jlong); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoResetClip (JNIEnv *env, jobject, jlong); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter (JNIEnv *env, jobject, jlong, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawLine (JNIEnv *env, jobject, jlong, jdouble, jdouble, jdouble, jdouble); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawRect (JNIEnv *env, jobject, jlong, jdouble, jdouble, jdouble, jdouble); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFillRect (JNIEnv *env, jobject, jlong, jdouble, jdouble, jdouble, jdouble); +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST 0L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR 1L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BICUBIC +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BICUBIC 5L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_SPEED +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_SPEED 2L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_QUALITY +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_QUALITY 3L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_DEFAULT +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_DEFAULT 4L #ifdef __cplusplus } diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h index 88000095d7f..38857071091 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h @@ -14,7 +14,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_create (JNIEnv *e JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_destroy (JNIEnv *env, jobject, jlong, jlong); JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_nativeGetElem (JNIEnv *env, jobject, jlong, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_nativeSetElem (JNIEnv *env, jobject, jlong, jint, jint); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface (JNIEnv *env, jobject, jlong, jlong, jdoubleArray, jdouble); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface (JNIEnv *env, jobject, jlong, jlong, jdoubleArray, jdouble, jint); JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_nativeGetPixels (JNIEnv *env, jobject, jlong, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_nativeSetPixels (JNIEnv *env, jobject, jlong, jintArray); JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_getFlippedBuffer (JNIEnv *env, jobject, jlong, jint); diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h index 3b9ddd44333..c23980ca55c 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h @@ -18,6 +18,22 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics (JN JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics (JNIEnv *env, jobject, jstring, jdoubleArray); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_releasePeerGraphicsResource (JNIEnv *env, jobject); JNIEXPORT jbyteArray JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable (JNIEnv *env, jobject, jbyte, jbyte, jbyte, jbyte); +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_ASCENT +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_ASCENT 0L +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_ASCENT +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_ASCENT 1L +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_DESCENT +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_DESCENT 2L +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_DESCENT +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_DESCENT 3L +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_ADVANCE +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_ADVANCE 4L +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_HEIGHT +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_HEIGHT 5L +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_UNDERLINE_OFFSET +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_UNDERLINE_OFFSET 6L +#undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_UNDERLINE_THICKNESS +#define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_UNDERLINE_THICKNESS 7L #ifdef __cplusplus } diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h index 5450434d880..fc6a72a5955 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h @@ -12,12 +12,12 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create (JNIEnv *env, jobject); JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected (JNIEnv *env, jobject); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add (JNIEnv *env, jobject, jstring, jint); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove (JNIEnv *env, jobject, jint); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_connectSignals (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNative (JNIEnv *env, jobject, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked (JNIEnv *env, jobject, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add (JNIEnv *env, jobject, jstring, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove (JNIEnv *env, jobject, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll (JNIEnv *env, jobject); #ifdef __cplusplus } diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h index 2095d421c6f..63b881d2f78 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h @@ -16,6 +16,10 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarWidth ( JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarPeer (JNIEnv *env, jobject, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_removeMenuBarPeer (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_gtkFixedSetVisible (JNIEnv *env, jobject, jboolean); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_maximize (JNIEnv *env, jobject); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_unmaximize (JNIEnv *env, jobject); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_iconify (JNIEnv *env, jobject); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_deiconify (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImage (JNIEnv *env, jobject, jobject); #ifdef __cplusplus diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h index 6cdcc622aab..b91d54cdb09 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h @@ -11,12 +11,13 @@ extern "C" #endif JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env, jclass, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMain (JNIEnv *env, jclass); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkQuit (JNIEnv *env, jclass); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_beep (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenSizeDimensions (JNIEnv *env, jobject, jintArray); JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenResolution (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_sync (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_loadSystemColors (JNIEnv *env, jobject, jintArray); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMain (JNIEnv *env, jclass); JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getMouseNumberOfButtons (JNIEnv *env, jobject); #ifdef __cplusplus diff --git a/libjava/classpath/include/gnu_java_net_VMPlainDatagramSocketImpl.h b/libjava/classpath/include/gnu_java_net_VMPlainDatagramSocketImpl.h deleted file mode 100644 index 2bd1f4905fd..00000000000 --- a/libjava/classpath/include/gnu_java_net_VMPlainDatagramSocketImpl.h +++ /dev/null @@ -1,30 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ - -#ifndef __gnu_java_net_VMPlainDatagramSocketImpl__ -#define __gnu_java_net_VMPlainDatagramSocketImpl__ - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_bind (JNIEnv *env, jclass, jobject, jint, jobject); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_create (JNIEnv *env, jclass, jobject); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_connect (JNIEnv *env, jclass, jobject, jobject, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeSendTo (JNIEnv *env, jclass, jobject, jobject, jint, jbyteArray, jint, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeReceive (JNIEnv *env, jclass, jobject, jbyteArray, jint, jint, jbyteArray, jintArray, jintArray); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_setOption (JNIEnv *env, jclass, jobject, jint, jobject); -JNIEXPORT jobject JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_getOption (JNIEnv *env, jclass, jobject, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_close (JNIEnv *env, jclass, jobject); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_join (JNIEnv *env, jclass, jobject, jobject); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_leave (JNIEnv *env, jclass, jobject, jobject); -#undef gnu_java_net_VMPlainDatagramSocketImpl_IP_TTL -#define gnu_java_net_VMPlainDatagramSocketImpl_IP_TTL 7777L - -#ifdef __cplusplus -} -#endif - -#endif /* __gnu_java_net_VMPlainDatagramSocketImpl__ */ diff --git a/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h b/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h dissimilarity index 60% index f7616c2c3bc..ef3c3a46784 100644 --- a/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h +++ b/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h @@ -1,31 +1,39 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ - -#ifndef __gnu_java_net_VMPlainSocketImpl__ -#define __gnu_java_net_VMPlainSocketImpl__ - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_setOption (JNIEnv *env, jclass, jobject, jint, jobject); -JNIEXPORT jobject JNICALL Java_gnu_java_net_VMPlainSocketImpl_getOption (JNIEnv *env, jclass, jobject, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_create (JNIEnv *env, jclass, jobject); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_connect (JNIEnv *env, jclass, jobject, jobject, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_bind (JNIEnv *env, jclass, jobject, jobject, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_listen (JNIEnv *env, jclass, jobject, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_accept (JNIEnv *env, jclass, jobject, jobject); -JNIEXPORT jint JNICALL Java_gnu_java_net_VMPlainSocketImpl_available (JNIEnv *env, jclass, jobject); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_close (JNIEnv *env, jclass, jobject); -JNIEXPORT jint JNICALL Java_gnu_java_net_VMPlainSocketImpl_read (JNIEnv *env, jclass, jobject, jbyteArray, jint, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_write (JNIEnv *env, jclass, jobject, jbyteArray, jint, jint); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv *env, jclass, jobject); -JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput (JNIEnv *env, jclass, jobject); - -#ifdef __cplusplus -} -#endif - -#endif /* __gnu_java_net_VMPlainSocketImpl__ */ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#ifndef __gnu_java_net_VMPlainSocketImpl__ +#define __gnu_java_net_VMPlainSocketImpl__ + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_setOption (JNIEnv *env, jclass, jint, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface (JNIEnv *env, jclass, jint, jint, jobject); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env, jclass, jint, jint, jstring); +JNIEXPORT jint JNICALL Java_gnu_java_net_VMPlainSocketImpl_getOption (JNIEnv *env, jclass, jint, jint); +JNIEXPORT jobject JNICALL Java_gnu_java_net_VMPlainSocketImpl_getMulticastInterface (JNIEnv *env, jclass, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_bind (JNIEnv *env, jclass, jint, jbyteArray, jint); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_bind6 (JNIEnv *env, jclass, jint, jbyteArray, jint); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_listen (JNIEnv *env, jclass, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_join (JNIEnv *env, jclass, jint, jbyteArray); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_join6 (JNIEnv *env, jclass, jint, jbyteArray); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_leave (JNIEnv *env, jclass, jint, jbyteArray); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_leave6 (JNIEnv *env, jclass, jint, jbyteArray); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_joinGroup (JNIEnv *env, jclass, jint, jbyteArray, jstring); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_joinGroup6 (JNIEnv *env, jclass, jint, jbyteArray, jstring); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_leaveGroup (JNIEnv *env, jclass, jint, jbyteArray, jstring); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv *env, jclass, jint, jbyteArray, jstring); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv *env, jclass, jint); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput (JNIEnv *env, jclass, jint); +JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_sendUrgentData (JNIEnv *env, jclass, jint, jint); +#undef gnu_java_net_VMPlainSocketImpl_CP_IP_TTL +#define gnu_java_net_VMPlainSocketImpl_CP_IP_TTL 7777L + +#ifdef __cplusplus +} +#endif + +#endif /* __gnu_java_net_VMPlainSocketImpl__ */ diff --git a/libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h b/libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h new file mode 100644 index 00000000000..0e43d1ce9fc --- /dev/null +++ b/libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h @@ -0,0 +1,37 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#ifndef __gnu_java_nio_EpollSelectorImpl__ +#define __gnu_java_nio_EpollSelectorImpl__ + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jboolean JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1supported (JNIEnv *env, jclass); +JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_sizeof_1struct (JNIEnv *env, jclass); +JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1create (JNIEnv *env, jclass, jint); +JNIEXPORT void JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1add (JNIEnv *env, jclass, jint, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1modify (JNIEnv *env, jclass, jint, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete (JNIEnv *env, jclass, jint, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1wait (JNIEnv *env, jclass, jint, jobject, jint, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_selected_1fd (JNIEnv *env, jclass, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_selected_1ops (JNIEnv *env, jclass, jobject); +#undef gnu_java_nio_EpollSelectorImpl_DEFAULT_EPOLL_SIZE +#define gnu_java_nio_EpollSelectorImpl_DEFAULT_EPOLL_SIZE 128L +#undef gnu_java_nio_EpollSelectorImpl_OP_ACCEPT +#define gnu_java_nio_EpollSelectorImpl_OP_ACCEPT 16L +#undef gnu_java_nio_EpollSelectorImpl_OP_CONNECT +#define gnu_java_nio_EpollSelectorImpl_OP_CONNECT 8L +#undef gnu_java_nio_EpollSelectorImpl_OP_READ +#define gnu_java_nio_EpollSelectorImpl_OP_READ 1L +#undef gnu_java_nio_EpollSelectorImpl_OP_WRITE +#define gnu_java_nio_EpollSelectorImpl_OP_WRITE 4L + +#ifdef __cplusplus +} +#endif + +#endif /* __gnu_java_nio_EpollSelectorImpl__ */ diff --git a/libjava/classpath/include/gnu_java_nio_FileChannelImpl.h b/libjava/classpath/include/gnu_java_nio_FileChannelImpl.h new file mode 100644 index 00000000000..43000114cc4 --- /dev/null +++ b/libjava/classpath/include/gnu_java_nio_FileChannelImpl.h @@ -0,0 +1,30 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#ifndef __gnu_java_nio_FileChannelImpl__ +#define __gnu_java_nio_FileChannelImpl__ + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#undef gnu_java_nio_FileChannelImpl_READ +#define gnu_java_nio_FileChannelImpl_READ 1L +#undef gnu_java_nio_FileChannelImpl_WRITE +#define gnu_java_nio_FileChannelImpl_WRITE 2L +#undef gnu_java_nio_FileChannelImpl_APPEND +#define gnu_java_nio_FileChannelImpl_APPEND 4L +#undef gnu_java_nio_FileChannelImpl_EXCL +#define gnu_java_nio_FileChannelImpl_EXCL 8L +#undef gnu_java_nio_FileChannelImpl_SYNC +#define gnu_java_nio_FileChannelImpl_SYNC 16L +#undef gnu_java_nio_FileChannelImpl_DSYNC +#define gnu_java_nio_FileChannelImpl_DSYNC 32L + +#ifdef __cplusplus +} +#endif + +#endif /* __gnu_java_nio_FileChannelImpl__ */ diff --git a/libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h b/libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h new file mode 100644 index 00000000000..acfdeaae7f7 --- /dev/null +++ b/libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h @@ -0,0 +1,39 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#ifndef __gnu_java_nio_KqueueSelectorImpl__ +#define __gnu_java_nio_KqueueSelectorImpl__ + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jboolean JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kqueue_1supported (JNIEnv *env, jclass); +JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_sizeof_1struct_1kevent (JNIEnv *env, jclass); +JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_implOpen (JNIEnv *env, jclass); +JNIEXPORT void JNICALL Java_gnu_java_nio_KqueueSelectorImpl_implClose (JNIEnv *env, jclass, jint); +JNIEXPORT void JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kevent_1set (JNIEnv *env, jclass, jobject, jint, jint, jint, jint, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kevent (JNIEnv *env, jclass, jint, jobject, jint, jint, jlong); +JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_fetch_1key (JNIEnv *env, jclass, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_ready_1ops (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT jboolean JNICALL Java_gnu_java_nio_KqueueSelectorImpl_check_1eof (JNIEnv *env, jclass, jobject); +#undef gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY +#define gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY 16384L +#undef gnu_java_nio_KqueueSelectorImpl_CAP_INCREMENT +#define gnu_java_nio_KqueueSelectorImpl_CAP_INCREMENT 1024L +#undef gnu_java_nio_KqueueSelectorImpl_OP_ACCEPT +#define gnu_java_nio_KqueueSelectorImpl_OP_ACCEPT 16L +#undef gnu_java_nio_KqueueSelectorImpl_OP_CONNECT +#define gnu_java_nio_KqueueSelectorImpl_OP_CONNECT 8L +#undef gnu_java_nio_KqueueSelectorImpl_OP_READ +#define gnu_java_nio_KqueueSelectorImpl_OP_READ 1L +#undef gnu_java_nio_KqueueSelectorImpl_OP_WRITE +#define gnu_java_nio_KqueueSelectorImpl_OP_WRITE 4L + +#ifdef __cplusplus +} +#endif + +#endif /* __gnu_java_nio_KqueueSelectorImpl__ */ diff --git a/libjava/classpath/include/gnu_java_nio_VMChannel.h b/libjava/classpath/include/gnu_java_nio_VMChannel.h index 28f9048d254..dd023816c39 100644 --- a/libjava/classpath/include/gnu_java_nio_VMChannel.h +++ b/libjava/classpath/include/gnu_java_nio_VMChannel.h @@ -10,12 +10,38 @@ extern "C" { #endif -JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_setBlocking (JNIEnv *env, jobject, jint, jboolean); -JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_read (JNIEnv *env, jobject, jint, jobject); -JNIEXPORT jlong JNICALL Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env, jobject, jint, jobjectArray, jint, jint); -JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_write (JNIEnv *env, jobject, jint, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_stdin_1fd (JNIEnv *env, jclass); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_stdout_1fd (JNIEnv *env, jclass); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_stderr_1fd (JNIEnv *env, jclass); +JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_setBlocking (JNIEnv *env, jclass, jint, jboolean); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_available (JNIEnv *env, jclass, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_read__ILjava_nio_ByteBuffer_2 (JNIEnv *env, jclass, jint, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_read__I (JNIEnv *env, jclass, jint); +JNIEXPORT jlong JNICALL Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env, jclass, jint, jobjectArray, jint, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_receive (JNIEnv *env, jclass, jint, jobject, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_write__ILjava_nio_ByteBuffer_2 (JNIEnv *env, jobject, jint, jobject); JNIEXPORT jlong JNICALL Java_gnu_java_nio_VMChannel_writeGathering (JNIEnv *env, jobject, jint, jobjectArray, jint, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_send (JNIEnv *env, jclass, jint, jobject, jbyteArray, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_send6 (JNIEnv *env, jclass, jint, jobject, jbyteArray, jint); +JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_write__II (JNIEnv *env, jclass, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_initIDs (JNIEnv *env, jclass); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_socket (JNIEnv *env, jclass, jboolean); +JNIEXPORT jboolean JNICALL Java_gnu_java_nio_VMChannel_connect (JNIEnv *env, jclass, jint, jbyteArray, jint, jint); +JNIEXPORT jboolean JNICALL Java_gnu_java_nio_VMChannel_connect6 (JNIEnv *env, jclass, jint, jbyteArray, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_disconnect (JNIEnv *env, jclass, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_getsockname (JNIEnv *env, jclass, jint, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_getpeername (JNIEnv *env, jclass, jint, jobject); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_accept (JNIEnv *env, jclass, jint); +JNIEXPORT jint JNICALL Java_gnu_java_nio_VMChannel_open (JNIEnv *env, jclass, jstring, jint); +JNIEXPORT jlong JNICALL Java_gnu_java_nio_VMChannel_position (JNIEnv *env, jclass, jint); +JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_seek (JNIEnv *env, jclass, jint, jlong); +JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_truncate (JNIEnv *env, jclass, jint, jlong); +JNIEXPORT jboolean JNICALL Java_gnu_java_nio_VMChannel_lock (JNIEnv *env, jclass, jint, jlong, jlong, jboolean, jboolean); +JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_unlock (JNIEnv *env, jclass, jint, jlong, jlong); +JNIEXPORT jlong JNICALL Java_gnu_java_nio_VMChannel_size (JNIEnv *env, jclass, jint); +JNIEXPORT jobject JNICALL Java_gnu_java_nio_VMChannel_map (JNIEnv *env, jclass, jint, jchar, jlong, jint); +JNIEXPORT jboolean JNICALL Java_gnu_java_nio_VMChannel_flush (JNIEnv *env, jclass, jint, jboolean); +JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_close (JNIEnv *env, jclass, jint); #ifdef __cplusplus } diff --git a/libjava/classpath/include/gnu_java_nio_VMPipe.h b/libjava/classpath/include/gnu_java_nio_VMPipe.h index afa563ac818..2088e55dcd2 100644 --- a/libjava/classpath/include/gnu_java_nio_VMPipe.h +++ b/libjava/classpath/include/gnu_java_nio_VMPipe.h @@ -10,7 +10,7 @@ extern "C" { #endif -JNIEXPORT void JNICALL Java_gnu_java_nio_VMPipe_init (JNIEnv *env, jclass, jobject, jobject); +JNIEXPORT jintArray JNICALL Java_gnu_java_nio_VMPipe_pipe0 (JNIEnv *env, jclass); #ifdef __cplusplus } diff --git a/libjava/classpath/include/gnu_java_nio_channels_FileChannelImpl.h b/libjava/classpath/include/gnu_java_nio_channels_FileChannelImpl.h deleted file mode 100644 index 1e09c09dd72..00000000000 --- a/libjava/classpath/include/gnu_java_nio_channels_FileChannelImpl.h +++ /dev/null @@ -1,46 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ - -#ifndef __gnu_java_nio_channels_FileChannelImpl__ -#define __gnu_java_nio_channels_FileChannelImpl__ - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_init (JNIEnv *env, jclass); -JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_open (JNIEnv *env, jobject, jstring, jint); -JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_available (JNIEnv *env, jobject); -JNIEXPORT jlong JNICALL Java_gnu_java_nio_channels_FileChannelImpl_implPosition (JNIEnv *env, jobject); -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_seek (JNIEnv *env, jobject, jlong); -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_implTruncate (JNIEnv *env, jobject, jlong); -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_unlock (JNIEnv *env, jobject, jlong, jlong); -JNIEXPORT jlong JNICALL Java_gnu_java_nio_channels_FileChannelImpl_size (JNIEnv *env, jobject); -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_implCloseChannel (JNIEnv *env, jobject); -JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_read__ (JNIEnv *env, jobject); -JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_read___3BII (JNIEnv *env, jobject, jbyteArray, jint, jint); -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_write___3BII (JNIEnv *env, jobject, jbyteArray, jint, jint); -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_write__I (JNIEnv *env, jobject, jint); -JNIEXPORT jobject JNICALL Java_gnu_java_nio_channels_FileChannelImpl_mapImpl (JNIEnv *env, jobject, jchar, jlong, jint); -JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_force (JNIEnv *env, jobject); -JNIEXPORT jboolean JNICALL Java_gnu_java_nio_channels_FileChannelImpl_lock (JNIEnv *env, jobject, jlong, jlong, jboolean, jboolean); -#undef gnu_java_nio_channels_FileChannelImpl_READ -#define gnu_java_nio_channels_FileChannelImpl_READ 1L -#undef gnu_java_nio_channels_FileChannelImpl_WRITE -#define gnu_java_nio_channels_FileChannelImpl_WRITE 2L -#undef gnu_java_nio_channels_FileChannelImpl_APPEND -#define gnu_java_nio_channels_FileChannelImpl_APPEND 4L -#undef gnu_java_nio_channels_FileChannelImpl_EXCL -#define gnu_java_nio_channels_FileChannelImpl_EXCL 8L -#undef gnu_java_nio_channels_FileChannelImpl_SYNC -#define gnu_java_nio_channels_FileChannelImpl_SYNC 16L -#undef gnu_java_nio_channels_FileChannelImpl_DSYNC -#define gnu_java_nio_channels_FileChannelImpl_DSYNC 32L - -#ifdef __cplusplus -} -#endif - -#endif /* __gnu_java_nio_channels_FileChannelImpl__ */ diff --git a/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h b/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h index ec902cbb8df..cc71b4097be 100644 --- a/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h +++ b/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h @@ -20,8 +20,10 @@ JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_ JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string (JNIEnv *env, jclass, jstring); JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset (JNIEnv *env, jclass, jstring); JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync (JNIEnv *env, jclass); -JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes (JNIEnv *env, jclass, jstring); -JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys (JNIEnv *env, jclass, jstring); +JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes (JNIEnv *env, jclass, jstring); +JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys (JNIEnv *env, jclass, jstring); +JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key (JNIEnv *env, jclass, jstring); +JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key (JNIEnv *env, jclass, jstring); #ifdef __cplusplus } diff --git a/libjava/classpath/include/java_net_VMInetAddress.h b/libjava/classpath/include/java_net_VMInetAddress.h index 54b57f220a7..66f4735772a 100644 --- a/libjava/classpath/include/java_net_VMInetAddress.h +++ b/libjava/classpath/include/java_net_VMInetAddress.h @@ -14,6 +14,7 @@ JNIEXPORT jstring JNICALL Java_java_net_VMInetAddress_getLocalHostname (JNIEnv * JNIEXPORT jbyteArray JNICALL Java_java_net_VMInetAddress_lookupInaddrAny (JNIEnv *env, jclass); JNIEXPORT jstring JNICALL Java_java_net_VMInetAddress_getHostByAddr (JNIEnv *env, jclass, jbyteArray); JNIEXPORT jobjectArray JNICALL Java_java_net_VMInetAddress_getHostByName (JNIEnv *env, jclass, jstring); +JNIEXPORT jbyteArray JNICALL Java_java_net_VMInetAddress_aton (JNIEnv *env, jclass, jstring); #ifdef __cplusplus } diff --git a/libjava/classpath/include/java_net_VMNetworkInterface.h b/libjava/classpath/include/java_net_VMNetworkInterface.h index c309357f3b4..b53bda565e7 100644 --- a/libjava/classpath/include/java_net_VMNetworkInterface.h +++ b/libjava/classpath/include/java_net_VMNetworkInterface.h @@ -10,7 +10,8 @@ extern "C" { #endif -JNIEXPORT jobject JNICALL Java_java_net_VMNetworkInterface_getInterfaces (JNIEnv *env, jclass); +JNIEXPORT void JNICALL Java_java_net_VMNetworkInterface_initIds (JNIEnv *env, jclass); +JNIEXPORT jobjectArray JNICALL Java_java_net_VMNetworkInterface_getVMInterfaces (JNIEnv *env, jclass); #ifdef __cplusplus } diff --git a/libjava/classpath/java/applet/AppletContext.java b/libjava/classpath/java/applet/AppletContext.java index a17508fd4a4..5b6ce452408 100644 --- a/libjava/classpath/java/applet/AppletContext.java +++ b/libjava/classpath/java/applet/AppletContext.java @@ -1,5 +1,5 @@ /* AppletContext.java -- access the applet's runtime environment - Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -52,7 +52,7 @@ import java.util.Iterator; * * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.0 - * @status updated to 1.4 + * @status updated to 1.5 */ public interface AppletContext { @@ -90,7 +90,7 @@ public interface AppletContext * * @return a list of all the applets */ - Enumeration getApplets(); + Enumeration getApplets(); /** * Displays the web page pointed to by the specified URL in the window @@ -150,5 +150,5 @@ public interface AppletContext * @return an iterator over the association keys * @since 1.4 */ - Iterator getStreamKeys(); + Iterator getStreamKeys(); } // interface AppletContext diff --git a/libjava/classpath/java/awt/AWTEvent.java b/libjava/classpath/java/awt/AWTEvent.java index a6151b424c1..3f4027c2c05 100644 --- a/libjava/classpath/java/awt/AWTEvent.java +++ b/libjava/classpath/java/awt/AWTEvent.java @@ -97,6 +97,11 @@ public abstract class AWTEvent extends EventObject protected boolean consumed; /** + * Used for implementing a simple linked list in EventQueue. + */ + transient AWTEvent queueNext; + + /** * Who knows? It's in the serial version. * * @serial No idea what this is for. diff --git a/libjava/classpath/java/awt/AWTEventMulticaster.java b/libjava/classpath/java/awt/AWTEventMulticaster.java index f7b9163cf67..07a6ffc2002 100644 --- a/libjava/classpath/java/awt/AWTEventMulticaster.java +++ b/libjava/classpath/java/awt/AWTEventMulticaster.java @@ -1175,16 +1175,17 @@ public class AWTEventMulticaster * @throws IllegalArgumentException if type is Void.TYPE * @since 1.4 */ - public static EventListener[] getListeners(EventListener l, Class type) + public static T[] getListeners(EventListener l, + Class type) { - ArrayList list = new ArrayList(); + ArrayList list = new ArrayList(); if (l instanceof AWTEventMulticaster) ((AWTEventMulticaster) l).getListeners(list, type); else if (type.isInstance(l)) list.add(l); EventListener[] r = (EventListener[]) Array.newInstance(type, list.size()); list.toArray(r); - return r; + return (T[]) r; } /** diff --git a/libjava/classpath/java/awt/AWTKeyStroke.java b/libjava/classpath/java/awt/AWTKeyStroke.java index 0e06225219f..527e85873e0 100644 --- a/libjava/classpath/java/awt/AWTKeyStroke.java +++ b/libjava/classpath/java/awt/AWTKeyStroke.java @@ -1,5 +1,5 @@ /* AWTKeyStroke.java -- an immutable key stroke - Copyright (C) 2002, 2004, 2005 Free Software Foundation + Copyright (C) 2002, 2004, 2005 Free Software Foundation This file is part of GNU Classpath. @@ -65,6 +65,7 @@ import java.util.StringTokenizer; * no-arg constructor (of any accessibility). * * @author Eric Blake (ebb9@email.byu.edu) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see #getAWTKeyStroke(char) * @since 1.4 * @status updated to 1.4 @@ -85,13 +86,15 @@ public class AWTKeyStroke implements Serializable * under the assumption that garbage collection of a new keystroke is * easy when we find the old one that it matches in the cache. */ - private static final LinkedHashMap cache = new LinkedHashMap(11, 0.75f, true) + private static final LinkedHashMap cache = + new LinkedHashMap(11, 0.75f, true) { /** The largest the keystroke cache can grow. */ private static final int MAX_CACHE_SIZE = 2048; /** Prune stale entries. */ - protected boolean removeEldestEntry(Map.Entry eldest) + protected boolean removeEldestEntry(Map.Entry + eldest) { // XXX - FIXME Use Map.Entry, not just Entry as gcj 3.1 workaround. return size() > MAX_CACHE_SIZE; } @@ -114,7 +117,7 @@ public class AWTKeyStroke implements Serializable * * @see #getAWTKeyStroke(String) */ - static final HashMap vktable = new HashMap(); + static final HashMap vktable = new HashMap(); static { // Using reflection saves the hassle of keeping this in sync with KeyEvent, @@ -229,7 +232,7 @@ public class AWTKeyStroke implements Serializable * @throws IllegalArgumentException subclass doesn't have no-arg constructor * @throws ClassCastException subclass doesn't extend AWTKeyStroke */ - protected static void registerSubclass(final Class subclass) + protected static void registerSubclass(final Class subclass) { if (subclass == null) throw new IllegalArgumentException(); @@ -252,7 +255,8 @@ public class AWTKeyStroke implements Serializable throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException { - Constructor c = subclass.getDeclaredConstructor(null); + Constructor c = + subclass.getDeclaredConstructor((Class[])null); c.setAccessible(true); // Create a new instance, to make sure that we can, and // to cause any ClassCastException. @@ -595,7 +599,7 @@ public class AWTKeyStroke implements Serializable */ protected Object readResolve() throws ObjectStreamException { - AWTKeyStroke s = (AWTKeyStroke) cache.get(this); + AWTKeyStroke s = cache.get(this); if (s != null) return s; cache.put(this, this); diff --git a/libjava/classpath/java/awt/BasicStroke.java b/libjava/classpath/java/awt/BasicStroke.java index 160a3eb0f74..ef6a7f0b7b5 100644 --- a/libjava/classpath/java/awt/BasicStroke.java +++ b/libjava/classpath/java/awt/BasicStroke.java @@ -43,6 +43,7 @@ import gnu.java.awt.java2d.LineSegment; import gnu.java.awt.java2d.QuadSegment; import gnu.java.awt.java2d.Segment; +import java.awt.geom.FlatteningPathIterator; import java.awt.geom.GeneralPath; import java.awt.geom.PathIterator; import java.awt.geom.Point2D; @@ -486,8 +487,157 @@ public class BasicStroke implements Stroke private Shape dashedStroke(PathIterator pi) { - GeneralPath out = new GeneralPath(); - return out; + // The choice of (flatnessSq == width / 3) is made to be consistent with + // the flattening in CubicSegment.getDisplacedSegments + FlatteningPathIterator flat = new FlatteningPathIterator(pi, + Math.sqrt(width / 3)); + + // Holds the endpoint of the current segment (or piece of a segment) + double[] coords = new double[2]; + + // Holds end of the last segment + double x, y, x0, y0; + x = x0 = y = y0 = 0; + + // Various useful flags + boolean pathOpen = false; + boolean dashOn = true; + boolean offsetting = (phase != 0); + + // How far we are into the current dash + double distance = 0; + int dashIndex = 0; + + // And variables to hold the final output + GeneralPath output = new GeneralPath(); + Segment[] p; + + // Iterate over the FlatteningPathIterator + while (! flat.isDone()) + { + switch (flat.currentSegment(coords)) + { + case PathIterator.SEG_MOVETO: + x0 = x = coords[0]; + y0 = y = coords[1]; + + if (pathOpen) + { + capEnds(); + convertPath(output, start); + start = end = null; + pathOpen = false; + } + + break; + + case PathIterator.SEG_LINETO: + boolean segmentConsumed = false; + + while (! segmentConsumed) + { + // Find the total remaining length of this segment + double segLength = Math.sqrt((x - coords[0]) * (x - coords[0]) + + (y - coords[1]) + * (y - coords[1])); + boolean spanBoundary = true; + double[] segmentEnd = null; + + // The current segment fits entirely inside the current dash + if ((offsetting && distance + segLength <= phase) + || distance + segLength <= dash[dashIndex]) + { + spanBoundary = false; + } + + // Otherwise, we need to split the segment in two, as this + // segment spans a dash boundry + else + { + segmentEnd = (double[]) coords.clone(); + + // Calculate the remaining distance in this dash, + // and coordinates of the dash boundary + double reqLength; + if (offsetting) + reqLength = phase - distance; + else + reqLength = dash[dashIndex] - distance; + + coords[0] = x + ((coords[0] - x) * reqLength / segLength); + coords[1] = y + ((coords[1] - y) * reqLength / segLength); + } + + if (offsetting || ! dashOn) + { + // Dash is off, or we are in offset - treat this as a + // moveTo + x0 = x = coords[0]; + y0 = y = coords[1]; + + if (pathOpen) + { + capEnds(); + convertPath(output, start); + start = end = null; + pathOpen = false; + } + } + else + { + // Dash is on - treat this as a lineTo + p = (new LineSegment(x, y, coords[0], coords[1])).getDisplacedSegments(width / 2.0); + + if (! pathOpen) + { + start = p[0]; + end = p[1]; + pathOpen = true; + } + else + addSegments(p); + + x = coords[0]; + y = coords[1]; + } + + // Update variables depending on whether we spanned a + // dash boundary or not + if (! spanBoundary) + { + distance += segLength; + segmentConsumed = true; + } + else + { + if (offsetting) + offsetting = false; + dashOn = ! dashOn; + distance = 0; + coords = segmentEnd; + + if (dashIndex + 1 == dash.length) + dashIndex = 0; + else + dashIndex++; + + // Since the value of segmentConsumed is still false, + // the next run of the while loop will complete the segment + } + } + break; + + // This is a flattened path, so we don't need to deal with curves + } + flat.next(); + } + + if (pathOpen) + { + capEnds(); + convertPath(output, start); + } + return output; } /** @@ -611,9 +761,13 @@ public class BasicStroke implements Stroke p1 = new double[]{a.last.P2.getX(), a.last.P2.getY()}; dx = p1[0] - p0[0]; dy = p1[1] - p0[1]; - l = Math.sqrt(dx * dx + dy * dy); - dx = (2.0/3.0)*width*dx/l; - dy = (2.0/3.0)*width*dy/l; + if (dx != 0 && dy != 0) + { + l = Math.sqrt(dx * dx + dy * dy); + dx = (2.0/3.0)*width*dx/l; + dy = (2.0/3.0)*width*dy/l; + } + c1 = new Point2D.Double(p1[0] + dx, p1[1] + dy); c2 = new Point2D.Double(b.P1.getX() + dx, b.P1.getY() + dy); a.add(new CubicSegment(a.last.P2, c1, c2, b.P1)); diff --git a/libjava/classpath/java/awt/Button.java b/libjava/classpath/java/awt/Button.java index ae897a2f75f..4c246c7650b 100644 --- a/libjava/classpath/java/awt/Button.java +++ b/libjava/classpath/java/awt/Button.java @@ -352,11 +352,11 @@ removeActionListener(ActionListener listener) * * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == ActionListener.class) - return getActionListeners(); - return (EventListener[]) Array.newInstance(listenerType, 0); + return (T[]) getActionListeners(); + return (T[]) Array.newInstance(listenerType, 0); } /*************************************************************************/ diff --git a/libjava/classpath/java/awt/CardLayout.java b/libjava/classpath/java/awt/CardLayout.java index fcb05215af9..2e3feece8d2 100644 --- a/libjava/classpath/java/awt/CardLayout.java +++ b/libjava/classpath/java/awt/CardLayout.java @@ -225,6 +225,8 @@ public class CardLayout implements LayoutManager2, Serializable */ public Dimension maximumLayoutSize (Container target) { + if (target == null) + return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); // The JCL says that this returns Integer.MAX_VALUE for both // dimensions. But that just seems wrong to me. return getSize (target, MAX); @@ -361,7 +363,7 @@ public class CardLayout implements LayoutManager2, Serializable */ public String toString () { - return getClass ().getName () + "[" + hgap + "," + vgap + "]"; + return getClass ().getName () + "[hgap=" + hgap + ",vgap=" + vgap + "]"; } /** @@ -401,11 +403,11 @@ public class CardLayout implements LayoutManager2, Serializable { if (comps[i].isVisible ()) { - if (what == NEXT) + if (choice == i) { - choice = i + 1; - if (choice == num) - choice = 0; + // Do nothing if we're already looking at the right + // component. + return; } else if (what == PREV) { @@ -413,17 +415,20 @@ public class CardLayout implements LayoutManager2, Serializable if (choice < 0) choice = num - 1; } - else if (choice == i) + else if (what == NEXT) { - // Do nothing if we're already looking at the right - // component. - return; + choice = i + 1; + if (choice == num) + choice = 0; } comps[i].setVisible (false); if (choice >= 0) break; - } + } else + { + comps[i].setVisible(true); + } } if (choice >= 0 && choice < num) diff --git a/libjava/classpath/java/awt/CheckboxMenuItem.java b/libjava/classpath/java/awt/CheckboxMenuItem.java index 2df621b71b7..c886fc67203 100644 --- a/libjava/classpath/java/awt/CheckboxMenuItem.java +++ b/libjava/classpath/java/awt/CheckboxMenuItem.java @@ -318,11 +318,11 @@ paramString() * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements java.util.EventListener. */ - public EventListener[] getListeners (Class listenerType) + public T[] getListeners (Class listenerType) { if (listenerType == ItemListener.class) return AWTEventMulticaster.getListeners (item_listeners, listenerType); - + return super.getListeners (listenerType); } diff --git a/libjava/classpath/java/awt/Choice.java b/libjava/classpath/java/awt/Choice.java index 104e30a7e82..ae89b9e9954 100644 --- a/libjava/classpath/java/awt/Choice.java +++ b/libjava/classpath/java/awt/Choice.java @@ -255,8 +255,8 @@ public class Choice extends Component /** * Adds the specified item to this choice box. * - * This method is oboslete since Java 2 platform 1.1. Please use @see add - * instead. + * This method is oboslete since Java 2 platform 1.1. Please use + * {@link #add(String)} instead. * * @param item The item to add. * @@ -320,9 +320,6 @@ public class Choice extends Component */ public synchronized void remove(int index) { - if ((index < 0) || (index > getItemCount())) - throw new IllegalArgumentException("Bad index: " + index); - pItems.removeElementAt(index); if (peer != null) @@ -332,14 +329,14 @@ public class Choice extends Component selectedIndex = -1; else { - if( selectedIndex > index ) - selectedIndex--; - else if( selectedIndex == index ) - selectedIndex = 0; - - if( peer != null ) - ((ChoicePeer)peer).select( selectedIndex ); - } + if( selectedIndex > index ) + selectedIndex--; + else if( selectedIndex == index ) + selectedIndex = 0; + + if( peer != null ) + ((ChoicePeer)peer).select( selectedIndex ); + } } /** @@ -523,11 +520,11 @@ public class Choice extends Component * * @since 1.3 */ - public EventListener[] getListeners (Class listenerType) + public T[] getListeners (Class listenerType) { if (listenerType == ItemListener.class) return AWTEventMulticaster.getListeners (item_listeners, listenerType); - + return super.getListeners (listenerType); } diff --git a/libjava/classpath/java/awt/Color.java b/libjava/classpath/java/awt/Color.java index b0312924170..c3d04c04976 100644 --- a/libjava/classpath/java/awt/Color.java +++ b/libjava/classpath/java/awt/Color.java @@ -534,14 +534,31 @@ public class Color implements Paint, Serializable { // Do not inline getRGB() to this.value, because of SystemColor. int value = getRGB(); - int red = (value & RED_MASK) >> 16; - int green = (value & GREEN_MASK) >> 8; - int blue = value & BLUE_MASK; - // We have to special case 0-2 because they won't scale by division. - red = red < 3 ? 3 : (int) Math.min(255, red / BRIGHT_SCALE); - green = green < 3 ? 3 : (int) Math.min(255, green / BRIGHT_SCALE); - blue = blue < 3 ? 3 : (int) Math.min(255, blue / BRIGHT_SCALE); - return new Color(red, green, blue, 255); + int[] hues = new int[3]; + hues[0] = (value & RED_MASK) >> 16; + hues[1] = (value & GREEN_MASK) >> 8; + hues[2] = value & BLUE_MASK; + + // (0,0,0) is a special case. + if (hues[0] == 0 && hues[1] == 0 && hues[2] ==0) + { + hues[0] = 3; + hues[1] = 3; + hues[2] = 3; + } + else + { + for (int index = 0; index < 3; index++) + { + + if (hues[index] > 2) + hues[index] = (int) Math.min(255, hues[index]/0.7f); + if (hues[index] == 1 || hues[index] == 2) + hues[index] = 4; + } + } + + return new Color(hues[0], hues[1], hues[2], 255); } /** diff --git a/libjava/classpath/java/awt/Component.java b/libjava/classpath/java/awt/Component.java index 44f277ac783..b6eadabbb5c 100644 --- a/libjava/classpath/java/awt/Component.java +++ b/libjava/classpath/java/awt/Component.java @@ -39,6 +39,10 @@ exception statement from your version. */ package java.awt; +//import gnu.java.awt.dnd.peer.gtk.GtkDropTargetContextPeer; + +import gnu.java.awt.ComponentReshapeEvent; + import java.awt.dnd.DropTarget; import java.awt.event.ActionEvent; import java.awt.event.AdjustmentEvent; @@ -577,7 +581,7 @@ public abstract class Component transient ComponentPeer peer; /** The preferred component orientation. */ - transient ComponentOrientation orientation = ComponentOrientation.UNKNOWN; + transient ComponentOrientation componentOrientation = ComponentOrientation.UNKNOWN; /** * The associated graphics configuration. @@ -698,6 +702,9 @@ public abstract class Component public void setDropTarget(DropTarget dt) { this.dropTarget = dt; + + if (peer != null) + dropTarget.addNotify(peer); } /** @@ -741,16 +748,23 @@ public abstract class Component */ public Toolkit getToolkit() { - if (peer != null) + // Only heavyweight peers can handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) { - Toolkit tk = peer.getToolkit(); - if (tk != null) - return tk; + comp = comp.parent; + p = comp == null ? null : comp.peer; } - // Get toolkit for lightweight component. - if (parent != null) - return parent.getToolkit(); - return Toolkit.getDefaultToolkit(); + + Toolkit tk = null; + if (p != null) + { + tk = peer.getToolkit(); + } + if (tk == null) + tk = Toolkit.getDefaultToolkit(); + return tk; } /** @@ -809,10 +823,7 @@ public abstract class Component */ public boolean isShowing() { - if (! visible || peer == null) - return false; - - return parent == null ? false : parent.isShowing(); + return visible && peer != null && (parent == null || parent.isShowing()); } /** @@ -959,14 +970,14 @@ public abstract class Component // case lightweight components are not initially painted -- // Container.paint first calls isShowing () before painting itself // and its children. - if(!isVisible()) + if(! visible) { // Need to lock the tree here to avoid races and inconsistencies. synchronized (getTreeLock()) { visible = true; // Avoid NullPointerExceptions by creating a local reference. - ComponentPeer currentPeer=peer; + ComponentPeer currentPeer = peer; if (currentPeer != null) { currentPeer.show(); @@ -978,7 +989,7 @@ public abstract class Component // The JDK repaints the component before invalidating the parent. // So do we. - if (isLightweight()) + if (peer instanceof LightweightPeer) repaint(); } @@ -1025,7 +1036,7 @@ public abstract class Component */ public void hide() { - if (isVisible()) + if (visible) { // Need to lock the tree here to avoid races and inconsistencies. synchronized (getTreeLock()) @@ -1033,7 +1044,7 @@ public abstract class Component visible = false; // Avoid NullPointerExceptions by creating a local reference. - ComponentPeer currentPeer=peer; + ComponentPeer currentPeer = peer; if (currentPeer != null) { currentPeer.hide(); @@ -1168,31 +1179,80 @@ public abstract class Component */ public Font getFont() { - Font f = font; - if (f != null) - return f; + Font f; + synchronized (getTreeLock()) + { + f = getFontImpl(); + } + return f; + } - Component p = parent; - if (p != null) - return p.getFont(); - return null; + /** + * Implementation of getFont(). This is pulled out of getFont() to prevent + * client programs from overriding this. This method is executed within + * a tree lock, so we can assume that the hierarchy doesn't change in + * between. + * + * @return the font of this component + */ + private final Font getFontImpl() + { + Font f = font; + if (f == null) + { + Component p = parent; + if (p != null) + f = p.getFontImpl(); + else + f = new Font("Dialog", Font.PLAIN, 12); + } + return f; } /** * Sets the font for this component to the specified font. This is a bound * property. * - * @param newFont the new font for this component + * @param f the new font for this component * * @see #getFont() */ - public void setFont(Font newFont) + public void setFont(Font f) { - Font oldFont = font; - font = newFont; - if (peer != null) - peer.setFont(font); + Font oldFont; + Font newFont; + // Synchronize on the tree because getFontImpl() relies on the hierarchy + // not beeing changed. + synchronized (getTreeLock()) + { + // Synchronize on this here to guarantee thread safety wrt to the + // property values. + synchronized (this) + { + oldFont = font; + font = f; + newFont = f; + } + // Create local variable here for thread safety. + ComponentPeer p = peer; + if (p != null) + { + // The peer receives the real font setting, which can depend on + // the parent font when this component's font has been set to null. + f = getFont(); + if (f != null) + { + p.setFont(f); + peerFont = f; + } + } + } + + // Fire property change event. firePropertyChange("font", oldFont, newFont); + + // Invalidate when necessary as font changes can change the size of the + // component. if (valid) invalidate(); } @@ -1292,8 +1352,26 @@ public abstract class Component // component. synchronized (getTreeLock()) { - // We know peer != null here. - return peer.getLocationOnScreen(); + // Only a heavyweight peer can answer the question for the screen + // location. So we are going through the hierarchy until we find + // one and add up the offsets while doing so. + int offsX = 0; + int offsY = 0; + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + offsX += comp.x; + offsY += comp.y; + comp = comp.parent; + p = comp == null ? null: comp.peer; + } + // Now we have a heavyweight component. + assert ! (p instanceof LightweightPeer); + Point loc = p.getLocationOnScreen(); + loc.x += offsX; + loc.y += offsY; + return loc; } } @@ -1533,7 +1611,17 @@ public abstract class Component } } - private void notifyReshape(boolean resized, boolean moved) + /** + * Sends notification to interested listeners about resizing and/or moving + * the component. If this component has interested + * component listeners or the corresponding event mask enabled, then + * COMPONENT_MOVED and/or COMPONENT_RESIZED events are posted to the event + * queue. + * + * @param resized true if the component has been resized, false otherwise + * @param moved true if the component has been moved, false otherwise + */ + void notifyReshape(boolean resized, boolean moved) { // Only post an event if this component actually has a listener // or has this event explicitly enabled. @@ -1544,43 +1632,16 @@ public abstract class Component if (moved) { ComponentEvent ce = new ComponentEvent(this, - ComponentEvent.COMPONENT_MOVED); + ComponentEvent.COMPONENT_MOVED); getToolkit().getSystemEventQueue().postEvent(ce); } if (resized) { ComponentEvent ce = new ComponentEvent(this, - ComponentEvent.COMPONENT_RESIZED); + ComponentEvent.COMPONENT_RESIZED); getToolkit().getSystemEventQueue().postEvent(ce); } } - else - { - // Otherwise we might need to notify child components when this is - // a Container. - if (this instanceof Container) - { - Container cont = (Container) this; - if (resized) - { - for (int i = 0; i < cont.getComponentCount(); i++) - { - Component child = cont.getComponent(i); - child.fireHierarchyEvent(HierarchyEvent.ANCESTOR_RESIZED, - this, parent, 0); - } - } - if (moved) - { - for (int i = 0; i < cont.getComponentCount(); i++) - { - Component child = cont.getComponent(i); - child.fireHierarchyEvent(HierarchyEvent.ANCESTOR_MOVED, - this, parent, 0); - } - } - } - } } /** @@ -2023,7 +2084,32 @@ public abstract class Component */ public void validate() { - valid = true; + if (! valid) + { + // Synchronize on the tree here as this might change the layout + // of the hierarchy. + synchronized (getTreeLock()) + { + // Create local variables for thread safety. + ComponentPeer p = peer; + if (p != null) + { + // Possibly update the peer's font. + Font newFont = getFont(); + Font oldFont = peerFont; + // Only update when the font really changed. + if (newFont != oldFont + && (oldFont == null || ! oldFont.equals(newFont))) + { + p.setFont(newFont); + peerFont = newFont; + } + // Let the peer perform any layout. + p.layout(); + } + } + valid = true; + } } /** @@ -2063,21 +2149,28 @@ public abstract class Component */ public Graphics getGraphics() { - if (peer != null) + // Only heavyweight peers can handle this. + ComponentPeer p = peer; + Graphics g = null; + if (p instanceof LightweightPeer) { - Graphics gfx = peer.getGraphics(); - // Create peer for lightweights. - if (gfx == null && parent != null) + if (parent != null) { - gfx = parent.getGraphics(); - gfx.clipRect(getX(), getY(), getWidth(), getHeight()); - gfx.translate(getX(), getY()); - return gfx; + g = parent.getGraphics(); + if (g != null) + { + g.translate(x, y); + g.setClip(0, 0, width, height); + g.setFont(getFont()); + } } - gfx.setFont(font); - return gfx; } - return null; + else + { + if (p != null) + g = p.getGraphics(); + } + return g; } /** @@ -2091,8 +2184,16 @@ public abstract class Component */ public FontMetrics getFontMetrics(Font font) { - return peer == null ? getToolkit().getFontMetrics(font) - : peer.getFontMetrics(font); + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + return p == null ? getToolkit().getFontMetrics(font) + : p.getFontMetrics(font); } /** @@ -2111,8 +2212,18 @@ public abstract class Component public void setCursor(Cursor cursor) { this.cursor = cursor; - if (peer != null) - peer.setCursor(cursor); + + // Only heavyweight peers handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + if (p != null) + p.setCursor(cursor); } /** @@ -2190,9 +2301,14 @@ public abstract class Component */ public void paintAll(Graphics g) { - if (! visible) - return; - paint(g); + if (isShowing()) + { + validate(); + if (peer instanceof LightweightPeer) + paint(g); + else + peer.paint(g); + } } /** @@ -2263,36 +2379,32 @@ public abstract class Component // Let the nearest heavyweight parent handle repainting for lightweight // components. - // This goes up the hierarchy until we hit - // a heavyweight component that handles this and translates the - // rectangle while doing so. - - // We perform some boundary checking to restrict the paint - // region to this component. - int px = (x < 0 ? 0 : x); - int py = (y < 0 ? 0 : y); - int pw = width; - int ph = height; - Component par = this; - while (par != null && p instanceof LightweightPeer) + // We need to recursivly call repaint() on the parent here, since + // a (lightweight) parent component might have overridden repaint() + // to perform additional custom tasks. + + if (p instanceof LightweightPeer) { - px += par.x; - py += par.y; // We perform some boundary checking to restrict the paint // region to this component. - pw = Math.min(pw, par.width); - ph = Math.min(ph, par.height); - par = par.parent; - p = par.peer; + if (parent != null) + { + int px = this.x + Math.max(0, x); + int py = this.y + Math.max(0, y); + int pw = Math.min(this.width, width); + int ph = Math.min(this.height, height); + parent.repaint(tm, px, py, pw, ph); + } } - - // Now send an UPDATE event to the heavyweight component that we've found. - if (par != null && par.isVisible() && p != null && pw > 0 && ph > 0) + else { - assert ! (p instanceof LightweightPeer); - PaintEvent pe = new PaintEvent(par, PaintEvent.UPDATE, - new Rectangle(px, py, pw, ph)); - getToolkit().getSystemEventQueue().postEvent(pe); + // Now send an UPDATE event to the heavyweight component that we've found. + if (isVisible() && p != null && width > 0 && height > 0) + { + PaintEvent pe = new PaintEvent(this, PaintEvent.UPDATE, + new Rectangle(x, y, width, height)); + getToolkit().getSystemEventQueue().postEvent(pe); + } } } @@ -2380,11 +2492,22 @@ public abstract class Component */ public Image createImage(ImageProducer producer) { + // Only heavyweight peers can handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + // Sun allows producer to be null. - if (peer != null) - return peer.createImage(producer); + Image im; + if (p != null) + im = p.createImage(producer); else - return getToolkit().createImage(producer); + im = getToolkit().createImage(producer); + return im; } /** @@ -2400,10 +2523,17 @@ public abstract class Component Image returnValue = null; if (!GraphicsEnvironment.isHeadless ()) { - if (isLightweight () && parent != null) - returnValue = parent.createImage (width, height); - else if (peer != null) - returnValue = peer.createImage (width, height); + // Only heavyweight peers can handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + if (p != null) + returnValue = p.createImage(width, height); } return returnValue; } @@ -2419,9 +2549,19 @@ public abstract class Component */ public VolatileImage createVolatileImage(int width, int height) { - if (peer != null) - return peer.createVolatileImage(width, height); - return null; + // Only heavyweight peers can handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + VolatileImage im = null; + if (p != null) + im = p.createVolatileImage(width, height); + return im; } /** @@ -2440,9 +2580,19 @@ public abstract class Component ImageCapabilities caps) throws AWTException { - if (peer != null) - return peer.createVolatileImage(width, height); - return null; + // Only heavyweight peers can handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + VolatileImage im = null; + if (p != null) + im = peer.createVolatileImage(width, height); + return im; } /** @@ -2472,10 +2622,21 @@ public abstract class Component public boolean prepareImage(Image image, int width, int height, ImageObserver observer) { - if (peer != null) - return peer.prepareImage(image, width, height, observer); + // Only heavyweight peers handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + boolean retval; + if (p != null) + retval = p.prepareImage(image, width, height, observer); else - return getToolkit().prepareImage(image, width, height, observer); + retval = getToolkit().prepareImage(image, width, height, observer); + return retval; } /** @@ -2509,9 +2670,21 @@ public abstract class Component public int checkImage(Image image, int width, int height, ImageObserver observer) { - if (peer != null) - return peer.checkImage(image, width, height, observer); - return getToolkit().checkImage(image, width, height, observer); + // Only heavyweight peers handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + int retval; + if (p != null) + retval = p.checkImage(image, width, height, observer); + else + retval = getToolkit().checkImage(image, width, height, observer); + return retval; } /** @@ -2657,14 +2830,6 @@ public abstract class Component */ public final void dispatchEvent(AWTEvent e) { - Event oldEvent = translateEvent(e); - if (oldEvent != null) - postEvent (oldEvent); - - // Give toolkit a chance to dispatch the event - // to globally registered listeners. - Toolkit.getDefaultToolkit().globalDispatchEvent(e); - // Some subclasses in the AWT package need to override this behavior, // hence the use of dispatchEventImpl(). dispatchEventImpl(e); @@ -2715,9 +2880,12 @@ public abstract class Component */ public synchronized void addComponentListener(ComponentListener listener) { - componentListener = AWTEventMulticaster.add(componentListener, listener); - if (componentListener != null) - enableEvents(AWTEvent.COMPONENT_EVENT_MASK); + if (listener != null) + { + componentListener = AWTEventMulticaster.add(componentListener, + listener); + newEventsOnly = true; + } } /** @@ -2763,9 +2931,11 @@ public abstract class Component */ public synchronized void addFocusListener(FocusListener listener) { - focusListener = AWTEventMulticaster.add(focusListener, listener); - if (focusListener != null) - enableEvents(AWTEvent.FOCUS_EVENT_MASK); + if (listener != null) + { + focusListener = AWTEventMulticaster.add(focusListener, listener); + newEventsOnly = true; + } } /** @@ -2810,16 +2980,19 @@ public abstract class Component */ public synchronized void addHierarchyListener(HierarchyListener listener) { - hierarchyListener = AWTEventMulticaster.add(hierarchyListener, listener); - if (hierarchyListener != null) - enableEvents(AWTEvent.HIERARCHY_EVENT_MASK); - - // Need to lock the tree, otherwise we might end up inconsistent. - synchronized (getTreeLock()) + if (listener != null) { - numHierarchyListeners++; - if (parent != null) - parent.updateHierarchyListenerCount(AWTEvent.HIERARCHY_EVENT_MASK, 1); + hierarchyListener = AWTEventMulticaster.add(hierarchyListener, + listener); + newEventsOnly = true; + // Need to lock the tree, otherwise we might end up inconsistent. + synchronized (getTreeLock()) + { + numHierarchyListeners++; + if (parent != null) + parent.updateHierarchyListenerCount(AWTEvent.HIERARCHY_EVENT_MASK, + 1); + } } } @@ -2876,19 +3049,20 @@ public abstract class Component public synchronized void addHierarchyBoundsListener(HierarchyBoundsListener listener) { - hierarchyBoundsListener = - AWTEventMulticaster.add(hierarchyBoundsListener, listener); - if (hierarchyBoundsListener != null) - enableEvents(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK); - - // Need to lock the tree, otherwise we might end up inconsistent. - synchronized (getTreeLock()) + if (listener != null) { - numHierarchyBoundsListeners++; - if (parent != null) - parent.updateHierarchyListenerCount - (AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, - 1); + hierarchyBoundsListener = + AWTEventMulticaster.add(hierarchyBoundsListener, listener); + newEventsOnly = true; + + // Need to lock the tree, otherwise we might end up inconsistent. + synchronized (getTreeLock()) + { + numHierarchyBoundsListeners++; + if (parent != null) + parent.updateHierarchyListenerCount + (AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, 1); + } } } @@ -2956,7 +3130,7 @@ public abstract class Component case HierarchyEvent.ANCESTOR_RESIZED: enabled = hierarchyBoundsListener != null || (eventMask & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) != 0; - break; + break; default: assert false : "Should not reach here"; } @@ -2981,9 +3155,11 @@ public abstract class Component */ public synchronized void addKeyListener(KeyListener listener) { - keyListener = AWTEventMulticaster.add(keyListener, listener); - if (keyListener != null) - enableEvents(AWTEvent.KEY_EVENT_MASK); + if (listener != null) + { + keyListener = AWTEventMulticaster.add(keyListener, listener); + newEventsOnly = true; + } } /** @@ -3028,9 +3204,11 @@ public abstract class Component */ public synchronized void addMouseListener(MouseListener listener) { - mouseListener = AWTEventMulticaster.add(mouseListener, listener); - if (mouseListener != null) - enableEvents(AWTEvent.MOUSE_EVENT_MASK); + if (listener != null) + { + mouseListener = AWTEventMulticaster.add(mouseListener, listener); + newEventsOnly = true; + } } /** @@ -3075,9 +3253,12 @@ public abstract class Component */ public synchronized void addMouseMotionListener(MouseMotionListener listener) { - mouseMotionListener = AWTEventMulticaster.add(mouseMotionListener, listener); - if (mouseMotionListener != null) - enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK); + if (listener != null) + { + mouseMotionListener = AWTEventMulticaster.add(mouseMotionListener, + listener); + newEventsOnly = true; + } } /** @@ -3124,9 +3305,12 @@ public abstract class Component */ public synchronized void addMouseWheelListener(MouseWheelListener listener) { - mouseWheelListener = AWTEventMulticaster.add(mouseWheelListener, listener); - if (mouseWheelListener != null) - enableEvents(AWTEvent.MOUSE_WHEEL_EVENT_MASK); + if (listener != null) + { + mouseWheelListener = AWTEventMulticaster.add(mouseWheelListener, + listener); + newEventsOnly = true; + } } /** @@ -3174,9 +3358,12 @@ public abstract class Component */ public synchronized void addInputMethodListener(InputMethodListener listener) { - inputMethodListener = AWTEventMulticaster.add(inputMethodListener, listener); - if (inputMethodListener != null) - enableEvents(AWTEvent.INPUT_METHOD_EVENT_MASK); + if (listener != null) + { + inputMethodListener = AWTEventMulticaster.add(inputMethodListener, + listener); + newEventsOnly = true; + } } /** @@ -3235,29 +3422,29 @@ public abstract class Component * @see #getPropertyChangeListeners() * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == ComponentListener.class) - return getComponentListeners(); + return (T[]) getComponentListeners(); if (listenerType == FocusListener.class) - return getFocusListeners(); + return (T[]) getFocusListeners(); if (listenerType == HierarchyListener.class) - return getHierarchyListeners(); + return (T[]) getHierarchyListeners(); if (listenerType == HierarchyBoundsListener.class) - return getHierarchyBoundsListeners(); + return (T[]) getHierarchyBoundsListeners(); if (listenerType == KeyListener.class) - return getKeyListeners(); + return (T[]) getKeyListeners(); if (listenerType == MouseListener.class) - return getMouseListeners(); + return (T[]) getMouseListeners(); if (listenerType == MouseMotionListener.class) - return getMouseMotionListeners(); + return (T[]) getMouseMotionListeners(); if (listenerType == MouseWheelListener.class) - return getMouseWheelListeners(); + return (T[]) getMouseWheelListeners(); if (listenerType == InputMethodListener.class) - return getInputMethodListeners(); + return (T[]) getInputMethodListeners(); if (listenerType == PropertyChangeListener.class) - return getPropertyChangeListeners(); - return (EventListener[]) Array.newInstance(listenerType, 0); + return (T[]) getPropertyChangeListeners(); + return (T[]) Array.newInstance(listenerType, 0); } /** @@ -3302,18 +3489,49 @@ public abstract class Component */ protected final void enableEvents(long eventsToEnable) { + // Update the counter for hierarchy (bounds) listeners. + if ((eventsToEnable & AWTEvent.HIERARCHY_EVENT_MASK) != 0 + && (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) == 0) + { + // Need to lock the tree, otherwise we might end up inconsistent. + synchronized (getTreeLock()) + { + numHierarchyListeners++; + if (parent != null) + parent.updateHierarchyListenerCount + (AWTEvent.HIERARCHY_EVENT_MASK, + 1); + } + } + if ((eventsToEnable & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) != 0 + && (eventMask & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) == 0) + { + // Need to lock the tree, otherwise we might end up inconsistent. + synchronized (getTreeLock()) + { + numHierarchyBoundsListeners++; + if (parent != null) + parent.updateHierarchyListenerCount + (AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, + 1); + } + } + eventMask |= eventsToEnable; - // TODO: Unlike Sun's implementation, I think we should try and - // enable/disable events at the peer (gtk/X) level. This will avoid - // clogging the event pipeline with useless mousemove events that - // we arn't interested in, etc. This will involve extending the peer - // interface, but thats okay because the peer interfaces have been - // deprecated for a long time, and no longer feature in the - // API specification at all. - if (isLightweight() && parent != null) - parent.enableEvents(eventsToEnable); - else if (peer != null) - peer.setEventMask(eventMask); + newEventsOnly = true; + + // Only heavyweight peers handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + if (p != null) + p.setEventMask(eventMask); + } /** @@ -3326,8 +3544,48 @@ public abstract class Component */ protected final void disableEvents(long eventsToDisable) { + // Update the counter for hierarchy (bounds) listeners. + if ((eventsToDisable & AWTEvent.HIERARCHY_EVENT_MASK) != 0 + && (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0) + { + // Need to lock the tree, otherwise we might end up inconsistent. + synchronized (getTreeLock()) + { + numHierarchyListeners--; + if (parent != null) + parent.updateHierarchyListenerCount + (AWTEvent.HIERARCHY_EVENT_MASK, + -1); + } + } + if ((eventsToDisable & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) != 0 + && (eventMask & AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) != 0) + { + // Need to lock the tree, otherwise we might end up inconsistent. + synchronized (getTreeLock()) + { + numHierarchyBoundsListeners--; + if (parent != null) + parent.updateHierarchyListenerCount + (AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, + -1); + } + } + eventMask &= ~eventsToDisable; - // forward new event mask to peer? + + // Only heavyweight peers handle this. + ComponentPeer p = peer; + Component comp = this; + while (p instanceof LightweightPeer) + { + comp = comp.parent; + p = comp == null ? null : comp.peer; + } + + if (p != null) + p.setEventMask(eventMask); + } /** @@ -3343,19 +3601,42 @@ public abstract class Component */ protected AWTEvent coalesceEvents(AWTEvent existingEvent, AWTEvent newEvent) { + AWTEvent coalesced = null; switch (existingEvent.id) { case MouseEvent.MOUSE_MOVED: case MouseEvent.MOUSE_DRAGGED: // Just drop the old (intermediate) event and return the new one. - return newEvent; + MouseEvent me1 = (MouseEvent) existingEvent; + MouseEvent me2 = (MouseEvent) newEvent; + if (me1.getModifiers() == me2.getModifiers()) + coalesced = newEvent; + break; case PaintEvent.PAINT: case PaintEvent.UPDATE: - return coalescePaintEvents((PaintEvent) existingEvent, - (PaintEvent) newEvent); + // For heavyweights the EventQueue should ask the peer. + if (peer == null || peer instanceof LightweightPeer) + { + PaintEvent pe1 = (PaintEvent) existingEvent; + PaintEvent pe2 = (PaintEvent) newEvent; + Rectangle r1 = pe1.getUpdateRect(); + Rectangle r2 = pe2.getUpdateRect(); + if (r1.contains(r2)) + coalesced = existingEvent; + else if (r2.contains(r1)) + coalesced = newEvent; + } + else + { + // Replace the event and let the heavyweight figure out the expanding + // of the repaint area. + coalesced = newEvent; + } + break; default: - return null; + coalesced = null; } + return coalesced; } /** @@ -3877,16 +4158,29 @@ public abstract class Component peer = getToolkit().createComponent(this); else if (parent != null && parent.isLightweight()) new HeavyweightInLightweightListener(parent); - /* Now that all the children has gotten their peers, we should - have the event mask needed for this component and its - lightweight subcomponents. */ + // Now that all the children has gotten their peers, we should + // have the event mask needed for this component and its + //lightweight subcomponents. peer.setEventMask(eventMask); - /* We do not invalidate here, but rather leave that job up to - the peer. For efficiency, the peer can choose not to - invalidate if it is happy with the current dimensions, - etc. */ - if (dropTarget != null) - dropTarget.addNotify(peer); + + // We used to leave the invalidate() to the peer. However, I put it + // back here for 2 reasons: 1) The RI does call invalidate() from + // addNotify(); 2) The peer shouldn't be bother with validation too + // much. + invalidate(); + + if (dropTarget != null) + dropTarget.addNotify(peer); + + // Fetch the peerFont for later installation in validate(). + peerFont = getFont(); + + // Notify hierarchy listeners. + long flags = HierarchyEvent.DISPLAYABILITY_CHANGED; + if (isHierarchyVisible()) + flags |= HierarchyEvent.SHOWING_CHANGED; + fireHierarchyEvent(HierarchyEvent.HIERARCHY_CHANGED, this, parent, + flags); } } @@ -3911,11 +4205,19 @@ public abstract class Component ComponentPeer tmp = peer; peer = null; + peerFont = null; if (tmp != null) { tmp.hide(); tmp.dispose(); } + + // Notify hierarchy listeners. + long flags = HierarchyEvent.DISPLAYABILITY_CHANGED; + if (isHierarchyVisible()) + flags |= HierarchyEvent.SHOWING_CHANGED; + fireHierarchyEvent(HierarchyEvent.HIERARCHY_CHANGED, this, parent, + flags); } } @@ -4034,7 +4336,8 @@ public abstract class Component * @see KeyboardFocusManager#UP_CYCLE_TRAVERSAL_KEYS * @since 1.4 */ - public void setFocusTraversalKeys(int id, Set keystrokes) + public void setFocusTraversalKeys(int id, + Set keystrokes) { if (keystrokes == null) { @@ -4126,14 +4429,14 @@ public abstract class Component * * @since 1.4 */ - public Set getFocusTraversalKeys (int id) + public Set getFocusTraversalKeys (int id) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS) throw new IllegalArgumentException(); - Set s = null; + Set s = null; if (focusTraversalKeys != null) s = focusTraversalKeys[id]; @@ -5060,8 +5363,8 @@ p *
  • the set of backward traversal keys public void setComponentOrientation(ComponentOrientation o) { - ComponentOrientation oldOrientation = orientation; - orientation = o; + ComponentOrientation oldOrientation = componentOrientation; + componentOrientation = o; firePropertyChange("componentOrientation", oldOrientation, o); } @@ -5073,7 +5376,7 @@ p *
  • the set of backward traversal keys */ public ComponentOrientation getComponentOrientation() { - return orientation; + return componentOrientation; } /** @@ -5358,7 +5661,7 @@ p *
  • the set of backward traversal keys oldKey = Event.UP; break; default: - oldKey = (int) ((KeyEvent) e).getKeyChar(); + oldKey = ((KeyEvent) e).getKeyChar(); } translated = new Event (target, when, oldID, @@ -5401,9 +5704,23 @@ p *
  • the set of backward traversal keys * * @param e the event to dispatch */ - void dispatchEventImpl(AWTEvent e) { + // Update the component's knowledge about the size. + // Important: Please look at the big comment in ComponentReshapeEvent + // to learn why we did it this way. If you change this code, make + // sure that the peer->AWT bounds update still works. + // (for instance: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29448 ) + if (e instanceof ComponentReshapeEvent) + { + ComponentReshapeEvent reshape = (ComponentReshapeEvent) e; + x = reshape.x; + y = reshape.y; + width = reshape.width; + height = reshape.height; + return; + } + // Retarget focus events before dispatching it to the KeyboardFocusManager // in order to handle lightweight components properly. boolean dispatched = false; @@ -5416,11 +5733,21 @@ p *
  • the set of backward traversal keys if (! dispatched) { - if (eventTypeEnabled (e.id)) + // Give toolkit a chance to dispatch the event + // to globally registered listeners. + Toolkit.getDefaultToolkit().globalDispatchEvent(e); + + if (newEventsOnly) { - if (e.id != PaintEvent.PAINT && e.id != PaintEvent.UPDATE) + if (eventTypeEnabled(e.id)) processEvent(e); } + else + { + Event oldEvent = translateEvent(e); + if (oldEvent != null) + postEvent (oldEvent); + } if (peer != null) peer.handleEvent(e); } @@ -5493,42 +5820,23 @@ p *
  • the set of backward traversal keys } /** - * Coalesce paint events. Current heuristic is: Merge if the union of - * areas is less than twice that of the sum of the areas. The X server - * tend to create a lot of paint events that are adjacent but not - * overlapping. - * - *
    -   * +------+
    -   * |      +-----+  ...will be merged
    -   * |      |     |
    -   * |      |     |
    -   * +------+     |
    -   *        +-----+
    +   * Returns true when this component and all of its ancestors
    +   * are visible, false otherwise.
        *
    -   * +---------------+--+
    -   * |               |  |  ...will not be merged
    -   * +---------------+  |
    -   *                 |  |
    -   *                 |  |
    -   *                 |  |
    -   *                 |  |
    -   *                 |  |
    -   *                 +--+
    -   * 
    - * - * @param queuedEvent the first paint event - * @param newEvent the second paint event - * @return the combined paint event, or null + * @return true when this component and all of its ancestors + * are visible, false otherwise */ - private PaintEvent coalescePaintEvents(PaintEvent queuedEvent, - PaintEvent newEvent) + boolean isHierarchyVisible() { - Rectangle r1 = queuedEvent.getUpdateRect(); - Rectangle r2 = newEvent.getUpdateRect(); - Rectangle union = r1.union(r2); - newEvent.setUpdateRect(union); - return newEvent; + boolean visible = isVisible(); + Component comp = parent; + while (comp != null && visible) + { + comp = comp.parent; + if (comp != null) + visible = visible && comp.isVisible(); + } + return visible; } /** @@ -5671,7 +5979,7 @@ p *
  • the set of backward traversal keys */ public void componentHidden(ComponentEvent event) { - if (!isShowing()) + if (isShowing()) peer.hide(); } } diff --git a/libjava/classpath/java/awt/Container.java b/libjava/classpath/java/awt/Container.java index 409d164a13c..83d9f7b78c5 100644 --- a/libjava/classpath/java/awt/Container.java +++ b/libjava/classpath/java/awt/Container.java @@ -39,11 +39,11 @@ exception statement from your version. */ package java.awt; -import java.awt.event.ComponentListener; import java.awt.event.ContainerEvent; import java.awt.event.ContainerListener; import java.awt.event.HierarchyEvent; import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; import java.awt.peer.ComponentPeer; import java.awt.peer.ContainerPeer; import java.awt.peer.LightweightPeer; @@ -69,10 +69,11 @@ import javax.accessibility.Accessible; * * @author original author unknown * @author Eric Blake (ebb9@email.byu.edu) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * * @since 1.0 * - * @status still missing 1.4 support + * @status still missing 1.4 support, some generics from 1.5 */ public class Container extends Component { @@ -86,8 +87,6 @@ public class Container extends Component Component[] component; LayoutManager layoutMgr; - Dimension maxSize; - /** * @since 1.4 */ @@ -208,10 +207,12 @@ public class Container extends Component */ public Insets insets() { - if (peer == null) - return new Insets (0, 0, 0, 0); - - return ((ContainerPeer) peer).getInsets (); + Insets i; + if (peer == null || peer instanceof LightweightPeer) + i = new Insets (0, 0, 0, 0); + else + i = ((ContainerPeer) peer).getInsets (); + return i; } /** @@ -324,23 +325,6 @@ public class Container extends Component // we are. if (comp.parent != null) comp.parent.remove(comp); - comp.parent = this; - - if (peer != null) - { - // Notify the component that it has a new parent. - comp.addNotify(); - - if (comp.isLightweight ()) - { - enableEvents (comp.eventMask); - if (!isLightweight ()) - enableEvents (AWTEvent.PAINT_EVENT_MASK); - } - } - - // Invalidate the layout of the added component and its ancestors. - comp.invalidate(); if (component == null) component = new Component[4]; // FIXME, better initial size? @@ -365,6 +349,9 @@ public class Container extends Component ++ncomponents; } + // Give the new component a parent. + comp.parent = this; + // Update the counter for Hierarchy(Bounds)Listeners. int childHierarchyListeners = comp.numHierarchyListeners; if (childHierarchyListeners > 0) @@ -375,6 +362,18 @@ public class Container extends Component updateHierarchyListenerCount(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, childHierarchyListeners); + // Invalidate the layout of this container. + if (valid) + invalidate(); + + // Create the peer _after_ the component has been added, so that + // the peer gets to know about the component hierarchy. + if (peer != null) + { + // Notify the component that it has a new parent. + comp.addNotify(); + } + // Notify the layout manager. if (layoutMgr != null) { @@ -394,13 +393,15 @@ public class Container extends Component // We previously only sent an event when this container is showing. // Also, the event was posted to the event queue. A Mauve test shows // that this event is not delivered using the event queue and it is - // also sent when the container is not showing. - ContainerEvent ce = new ContainerEvent(this, - ContainerEvent.COMPONENT_ADDED, - comp); - ContainerListener[] listeners = getContainerListeners(); - for (int i = 0; i < listeners.length; i++) - listeners[i].componentAdded(ce); + // also sent when the container is not showing. + if (containerListener != null + || (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0) + { + ContainerEvent ce = new ContainerEvent(this, + ContainerEvent.COMPONENT_ADDED, + comp); + dispatchEvent(ce); + } // Notify hierarchy listeners. comp.fireHierarchyEvent(HierarchyEvent.HIERARCHY_CHANGED, comp, @@ -417,17 +418,15 @@ public class Container extends Component { synchronized (getTreeLock ()) { - Component r = component[index]; + if (index < 0 || index >= ncomponents) + throw new ArrayIndexOutOfBoundsException(); - ComponentListener[] list = r.getComponentListeners(); - for (int j = 0; j < list.length; j++) - r.removeComponentListener(list[j]); - - r.removeNotify(); + Component r = component[index]; + if (peer != null) + r.removeNotify(); - System.arraycopy(component, index + 1, component, index, - ncomponents - index - 1); - component[--ncomponents] = null; + if (layoutMgr != null) + layoutMgr.removeLayoutComponent(r); // Update the counter for Hierarchy(Bounds)Listeners. int childHierarchyListeners = r.numHierarchyListeners; @@ -439,20 +438,23 @@ public class Container extends Component updateHierarchyListenerCount(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, -childHierarchyListeners); - invalidate(); + r.parent = null; - if (layoutMgr != null) - layoutMgr.removeLayoutComponent(r); + System.arraycopy(component, index + 1, component, index, + ncomponents - index - 1); + component[--ncomponents] = null; - r.parent = null; + if (valid) + invalidate(); - if (isShowing ()) + if (containerListener != null + || (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0) { // Post event to notify of removing the component. ContainerEvent ce = new ContainerEvent(this, - ContainerEvent.COMPONENT_REMOVED, - r); - getToolkit().getSystemEventQueue().postEvent(ce); + ContainerEvent.COMPONENT_REMOVED, + r); + dispatchEvent(ce); } // Notify hierarchy listeners. @@ -496,36 +498,51 @@ public class Container extends Component // super.removeAll() ). // By doing it this way, user code cannot prevent the correct // removal of components. - for ( int index = 0; index < ncomponents; index++) + while (ncomponents > 0) { - Component r = component[index]; + ncomponents--; + Component r = component[ncomponents]; + component[ncomponents] = null; - ComponentListener[] list = r.getComponentListeners(); - for (int j = 0; j < list.length; j++) - r.removeComponentListener(list[j]); - - r.removeNotify(); + if (peer != null) + r.removeNotify(); if (layoutMgr != null) layoutMgr.removeLayoutComponent(r); r.parent = null; - if (isShowing ()) + // Send ContainerEvent if necessary. + if (containerListener != null + || (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0) { // Post event to notify of removing the component. ContainerEvent ce = new ContainerEvent(this, ContainerEvent.COMPONENT_REMOVED, r); - - getToolkit().getSystemEventQueue().postEvent(ce); + dispatchEvent(ce); } - } - + + // Update the counter for Hierarchy(Bounds)Listeners. + int childHierarchyListeners = r.numHierarchyListeners; + if (childHierarchyListeners > 0) + updateHierarchyListenerCount(AWTEvent.HIERARCHY_EVENT_MASK, + -childHierarchyListeners); + int childHierarchyBoundsListeners = r.numHierarchyBoundsListeners; + if (childHierarchyBoundsListeners > 0) + updateHierarchyListenerCount(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK, + -childHierarchyListeners); + + + // Send HierarchyEvent if necessary. + fireHierarchyEvent(HierarchyEvent.HIERARCHY_CHANGED, r, this, + HierarchyEvent.PARENT_CHANGED); + + } + + if (valid) invalidate(); - - ncomponents = 0; } } @@ -590,11 +607,20 @@ public class Container extends Component */ public void validate() { - synchronized (getTreeLock ()) + ComponentPeer p = peer; + if (! valid && p != null) { - if (! isValid() && peer != null) + ContainerPeer cPeer = null; + if (p instanceof ContainerPeer) + cPeer = (ContainerPeer) peer; + synchronized (getTreeLock ()) { + if (cPeer != null) + cPeer.beginValidate(); validateTree(); + valid = true; + if (cPeer != null) + cPeer.endValidate(); } } } @@ -602,24 +628,20 @@ public class Container extends Component /** * Recursively invalidates the container tree. */ - void invalidateTree() + private final void invalidateTree() { synchronized (getTreeLock()) { - super.invalidate(); // Clean cached layout state. for (int i = 0; i < ncomponents; i++) { Component comp = component[i]; - comp.invalidate(); if (comp instanceof Container) ((Container) comp).invalidateTree(); + else if (comp.valid) + comp.invalidate(); } - - if (layoutMgr != null && layoutMgr instanceof LayoutManager2) - { - LayoutManager2 lm2 = (LayoutManager2) layoutMgr; - lm2.invalidateLayout(this); - } + if (valid) + invalidate(); } } @@ -629,40 +651,36 @@ public class Container extends Component */ protected void validateTree() { - if (valid) - return; - - ContainerPeer cPeer = null; - if (peer != null && ! (peer instanceof LightweightPeer)) + if (!valid) { - cPeer = (ContainerPeer) peer; - cPeer.beginValidate(); - } - - for (int i = 0; i < ncomponents; ++i) - { - Component comp = component[i]; - - if (comp.getPeer () == null) - comp.addNotify(); - } - - doLayout (); - for (int i = 0; i < ncomponents; ++i) - { - Component comp = component[i]; + ContainerPeer cPeer = null; + if (peer instanceof ContainerPeer) + { + cPeer = (ContainerPeer) peer; + cPeer.beginLayout(); + } - if (! comp.isValid()) + doLayout (); + for (int i = 0; i < ncomponents; ++i) { - if (comp instanceof Container) + Component comp = component[i]; + + if (comp instanceof Container && ! (comp instanceof Window) + && ! comp.valid) { ((Container) comp).validateTree(); } else { - component[i].validate(); + comp.validate(); } } + + if (cPeer != null) + { + cPeer = (ContainerPeer) peer; + cPeer.endLayout(); + } } /* children will call invalidate() when they are layed out. It @@ -670,19 +688,15 @@ public class Container extends Component until after the children have been layed out. */ valid = true; - if (cPeer != null) - cPeer.endValidate(); } public void setFont(Font f) { - if( (f != null && (font == null || !font.equals(f))) - || f == null) + Font oldFont = getFont(); + super.setFont(f); + Font newFont = getFont(); + if (newFont != oldFont && (oldFont == null || ! oldFont.equals(newFont))) { - super.setFont(f); - // FIXME: Although it might make more sense to invalidate only - // those children whose font == null, Sun invalidates all children. - // So we'll do the same. invalidateTree(); } } @@ -784,8 +798,9 @@ public class Container extends Component LayoutManager l = layoutMgr; if (l instanceof LayoutManager2) maxSize = ((LayoutManager2) l).maximumLayoutSize(this); - else + else { maxSize = super.maximumSizeImpl(); + } size = maxSize; } } @@ -920,8 +935,8 @@ public class Container extends Component */ public void paintComponents(Graphics g) { - paint(g); - visitChildren(g, GfxPaintAllVisitor.INSTANCE, true); + if (isShowing()) + visitChildren(g, GfxPaintAllVisitor.INSTANCE, false); } /** @@ -943,7 +958,12 @@ public class Container extends Component */ public synchronized void addContainerListener(ContainerListener listener) { - containerListener = AWTEventMulticaster.add(containerListener, listener); + if (listener != null) + { + containerListener = AWTEventMulticaster.add(containerListener, + listener); + newEventsOnly = true; + } } /** @@ -985,10 +1005,10 @@ public class Container extends Component * * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == ContainerListener.class) - return getContainerListeners(); + return (T[]) getContainerListeners(); return super.getListeners(listenerType); } @@ -1247,8 +1267,14 @@ public class Container extends Component { synchronized (getTreeLock ()) { - for (int i = 0; i < ncomponents; ++i) - component[i].removeNotify(); + int ncomps = ncomponents; + Component[] comps = component; + for (int i = ncomps - 1; i >= 0; --i) + { + Component comp = comps[i]; + if (comp != null) + comp.removeNotify(); + } super.removeNotify(); } } @@ -1345,7 +1371,8 @@ public class Container extends Component * * @since 1.4 */ - public void setFocusTraversalKeys(int id, Set keystrokes) + public void setFocusTraversalKeys(int id, + Set keystrokes) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && @@ -1433,7 +1460,8 @@ public class Container extends Component if (focusTraversalKeys == null) focusTraversalKeys = new Set[4]; - keystrokes = Collections.unmodifiableSet (new HashSet (keystrokes)); + keystrokes = + Collections.unmodifiableSet(new HashSet(keystrokes)); firePropertyChange (name, focusTraversalKeys[id], keystrokes); focusTraversalKeys[id] = keystrokes; @@ -1451,7 +1479,7 @@ public class Container extends Component * * @since 1.4 */ - public Set getFocusTraversalKeys (int id) + public Set getFocusTraversalKeys (int id) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && @@ -1866,6 +1894,7 @@ public class Container extends Component bounds.height); try { + g2.setFont(comp.getFont()); visitor.visit(comp, g2); } finally @@ -1874,20 +1903,40 @@ public class Container extends Component } } + /** + * Overridden to dispatch events to lightweight descendents. + * + * @param e the event to dispatch. + */ void dispatchEventImpl(AWTEvent e) { - boolean dispatched = - LightweightDispatcher.getInstance().dispatchEvent(e); - if (! dispatched) + LightweightDispatcher dispatcher = LightweightDispatcher.getInstance(); + if (! isLightweight() && dispatcher.dispatchEvent(e)) { - if ((e.id <= ContainerEvent.CONTAINER_LAST - && e.id >= ContainerEvent.CONTAINER_FIRST) - && (containerListener != null - || (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0)) - processEvent(e); - else - super.dispatchEventImpl(e); + // Some lightweight descendent got this event dispatched. Consume + // it and let the peer handle it. + e.consume(); + ComponentPeer p = peer; + if (p != null) + p.handleEvent(e); } + else + { + super.dispatchEventImpl(e); + } + } + + /** + * This is called by the lightweight dispatcher to avoid recursivly + * calling into the lightweight dispatcher. + * + * @param e the event to dispatch + * + * @see LightweightDispatcher#redispatch(MouseEvent, Component, int) + */ + void dispatchNoLightweight(AWTEvent e) + { + super.dispatchEventImpl(e); } /** @@ -2004,6 +2053,43 @@ public class Container extends Component parent.updateHierarchyListenerCount(type, delta); } + /** + * Notifies interested listeners about resizing or moving the container. + * This performs the super behaviour (sending component events) and + * additionally notifies any hierarchy bounds listeners on child components. + * + * @param resized true if the component has been resized, false otherwise + * @param moved true if the component has been moved, false otherwise + */ + void notifyReshape(boolean resized, boolean moved) + { + // Notify component listeners. + super.notifyReshape(resized, moved); + + if (ncomponents > 0) + { + // Notify hierarchy bounds listeners. + if (resized) + { + for (int i = 0; i < getComponentCount(); i++) + { + Component child = getComponent(i); + child.fireHierarchyEvent(HierarchyEvent.ANCESTOR_RESIZED, + this, parent, 0); + } + } + if (moved) + { + for (int i = 0; i < getComponentCount(); i++) + { + Component child = getComponent(i); + child.fireHierarchyEvent(HierarchyEvent.ANCESTOR_MOVED, + this, parent, 0); + } + } + } + } + private void addNotifyContainerChildren() { synchronized (getTreeLock ()) @@ -2011,12 +2097,6 @@ public class Container extends Component for (int i = ncomponents; --i >= 0; ) { component[i].addNotify(); - if (component[i].isLightweight ()) - { - enableEvents(component[i].eventMask); - if (peer != null && !isLightweight ()) - enableEvents (AWTEvent.PAINT_EVENT_MASK); - } } } } diff --git a/libjava/classpath/java/awt/Dialog.java b/libjava/classpath/java/awt/Dialog.java index 55c3371e622..7df2f523c86 100644 --- a/libjava/classpath/java/awt/Dialog.java +++ b/libjava/classpath/java/awt/Dialog.java @@ -97,6 +97,11 @@ public class Dialog extends Window private EventQueue eq2 = null; /** + * The number used to generate the name returned by getName. + */ + private static transient long next_dialog_number; + + /** * Initializes a new instance of Dialog with the specified * parent, that is resizable and not modal, and which has no title. * @@ -190,6 +195,7 @@ public class Dialog extends Window visible = false; setLayout(new BorderLayout()); + setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } /** @@ -273,6 +279,7 @@ public class Dialog extends Window visible = false; setLayout(new BorderLayout()); + setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } /** @@ -530,5 +537,19 @@ public class Dialog extends Window accessibleContext = new AccessibleAWTDialog(); return accessibleContext; } + + /** + * Generate a unique name for this Dialog. + * + * @return A unique name for this Dialog. + */ + String generateName() + { + return "dialog" + getUniqueLong(); + } + private static synchronized long getUniqueLong() + { + return next_dialog_number++; + } } diff --git a/libjava/classpath/java/awt/EventQueue.java b/libjava/classpath/java/awt/EventQueue.java index 235ad2ac17c..74dbd5fb67d 100644 --- a/libjava/classpath/java/awt/EventQueue.java +++ b/libjava/classpath/java/awt/EventQueue.java @@ -38,10 +38,16 @@ exception statement from your version. */ package java.awt; +import gnu.java.awt.LowPriorityEvent; +import gnu.java.awt.peer.NativeEventLoopRunningEvent; + import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.InputMethodEvent; import java.awt.event.InvocationEvent; +import java.awt.event.PaintEvent; +import java.awt.peer.ComponentPeer; +import java.awt.peer.LightweightPeer; import java.lang.reflect.InvocationTargetException; import java.util.EmptyStackException; @@ -61,11 +67,47 @@ import java.util.EmptyStackException; */ public class EventQueue { - private static final int INITIAL_QUEUE_DEPTH = 8; - private AWTEvent[] queue = new AWTEvent[INITIAL_QUEUE_DEPTH]; + /** + * Indicates events that are processed with normal priority. This is normally + * all events except PaintEvents. + */ + private static final int NORM_PRIORITY = 0; + + /** + * Indicates events that are processed with lowes priority. This is normally + * all PaintEvents and LowPriorityEvents. + */ + private static final int LOW_PRIORITY = 1; - private int next_in = 0; // Index where next event will be added to queue - private int next_out = 0; // Index of next event to be removed from queue + /** + * Implements the actual queue. EventQueue has 2 internal queues for + * different priorities: + * 1 PaintEvents are always dispatched with low priority. + * 2. All other events are dispatched with normal priority. + * + * This makes sure that the actual painting (output) is performed _after_ all + * available input has been processed and that the paint regions are + * coalesced as much as possible. + */ + private class Queue + { + /** + * The first item in the queue. This is where events are popped from. + */ + AWTEvent queueHead; + + /** + * The last item. This is where events are posted to. + */ + AWTEvent queueTail; + } + + /** + * The three internal event queues. + * + * @see Queue + */ + private Queue[] queues; private EventQueue next; private EventQueue prev; @@ -73,31 +115,25 @@ public class EventQueue private long lastWhen = System.currentTimeMillis(); private EventDispatchThread dispatchThread = new EventDispatchThread(this); - private boolean shutdown = false; - - synchronized private void setShutdown (boolean b) - { - shutdown = b; - } + private boolean nativeLoopRunning = false; - synchronized boolean isShutdown () + private boolean isShutdown () { - if (shutdown) - return true; - // This is the exact self-shutdown condition specified in J2SE: // http://java.sun.com/j2se/1.4.2/docs/api/java/awt/doc-files/AWTThreadIssues.html - - // FIXME: check somewhere that the native queue is empty - if (peekEvent() == null) - { - Frame[] frames = Frame.getFrames(); - for (int i = 0; i < frames.length; ++i) - if (frames[i].isDisplayable()) - return false; - return true; - } - return false; + + if (nativeLoopRunning) + return false; + + if (peekEvent() != null) + return false; + + Frame[] frames = Frame.getFrames(); + for (int i = 0; i < frames.length; ++i) + if (frames[i].isDisplayable()) + return false; + + return true; } /** @@ -105,6 +141,9 @@ public class EventQueue */ public EventQueue() { + queues = new Queue[2]; + queues[NORM_PRIORITY] = new Queue(); + queues[LOW_PRIORITY] = new Queue(); } /** @@ -122,31 +161,67 @@ public class EventQueue if (next != null) return next.getNextEvent(); - while (next_in == next_out) - { - // We are not allowed to return null from this method, yet it - // is possible that we actually have run out of native events - // in the enclosing while() loop, and none of the native events - // happened to cause AWT events. We therefore ought to check - // the isShutdown() condition here, before risking a "native - // wait". If we check it before entering this function we may - // wait forever for events after the shutdown condition has - // arisen. + AWTEvent res = getNextEventImpl(true); + while (res == null) + { if (isShutdown()) - throw new InterruptedException(); + { + // Explicitly set dispathThread to null. If we don't do + // this, there is a race condition where dispatchThread + // can be != null even after the event dispatch thread has + // stopped running. If that happens, then the + // dispatchThread == null check in postEventImpl will + // fail, and a new event dispatch thread will not be + // created, leaving invokeAndWaits waiting indefinitely. + dispatchThread = null; + + // Interrupt the event dispatch thread. + throw new InterruptedException(); + } wait(); + res = getNextEventImpl(true); } - AWTEvent res = queue[next_out]; - - if (++next_out == queue.length) - next_out = 0; return res; } /** + * Fetches and possibly removes the next event from the internal queues. + * This method returns immediately. When all queues are empty, this returns + * null: + * + * @param remove when the event should be removed from the queue, + * false otherwise + * + * @return the next event or null when all internal queues + * are empty + */ + private AWTEvent getNextEventImpl(boolean remove) + { + AWTEvent next = null; + for (int i = 0; i < queues.length && next == null; i++) + { + Queue q = queues[i]; + if (q.queueHead != null) + { + // Got an event, remove it. + next = q.queueHead; + if (remove) + { + // Unlink event from the queue. + q.queueHead = next.queueNext; + if (q.queueHead == null) + q.queueTail = null; + next.queueNext = null; + } + } + } + return next; + } + + /** * Returns the next event in the queue without removing it from the queue. * This method will block until an event is available or until the thread * is interrupted. @@ -160,10 +235,7 @@ public class EventQueue if (next != null) return next.peekEvent(); - if (next_in != next_out) - return queue[next_out]; - else - return null; + return getNextEventImpl(false); } /** @@ -184,14 +256,18 @@ public class EventQueue if (next != null) return next.peekEvent(id); - int i = next_out; - while (i != next_in) + AWTEvent evt = null; + for (int i = 0; i < queues.length && evt == null; i++) { - AWTEvent qevt = queue[i]; - if (qevt.id == id) - return qevt; + Queue q = queues[i]; + evt = q.queueHead; + while (evt != null && evt.id != id) + evt = evt.queueNext; + // At this point we either have found an event (evt != null -> exit + // for loop), or we have found no event (evt == null -> search next + // internal queue). } - return null; + return evt; } /** @@ -201,7 +277,42 @@ public class EventQueue * * @exception NullPointerException If event is null. */ - public synchronized void postEvent(AWTEvent evt) + public void postEvent(AWTEvent evt) + { + postEventImpl(evt); + } + + /** + * Sorts events to their priority and calls + * {@link #postEventImpl(AWTEvent, int)}. + * + * @param evt the event to post + */ + private synchronized final void postEventImpl(AWTEvent evt) + { + int priority = NORM_PRIORITY; + if (evt instanceof PaintEvent || evt instanceof LowPriorityEvent) + priority = LOW_PRIORITY; + // TODO: Maybe let Swing RepaintManager events also be processed with + // low priority. + if (evt instanceof NativeEventLoopRunningEvent) + { + nativeLoopRunning = ((NativeEventLoopRunningEvent) evt).isRunning(); + notify(); + return; + } + postEventImpl(evt, priority); + } + + /** + * Actually performs the event posting. This is needed because the + * RI doesn't use the public postEvent() method when transferring events + * between event queues in push() and pop(). + * + * @param evt the event to post + * @param priority the priority of the event + */ + private final void postEventImpl(AWTEvent evt, int priority) { if (evt == null) throw new NullPointerException(); @@ -212,52 +323,71 @@ public class EventQueue return; } - /* Check for any events already on the queue with the same source - and ID. */ - int i = next_out; - while (i != next_in) + Object source = evt.getSource(); + + Queue q = queues[priority]; + if (source instanceof Component) { - AWTEvent qevt = queue[i]; - Object src; - if (qevt.id == evt.id - && (src = qevt.getSource()) == evt.getSource() - && src instanceof Component) + // For PaintEvents, ask the ComponentPeer to coalesce the event + // when the component is heavyweight. + Component comp = (Component) source; + ComponentPeer peer = comp.peer; + if (peer != null && evt instanceof PaintEvent + && ! (peer instanceof LightweightPeer)) + peer.coalescePaintEvent((PaintEvent) evt); + + // Check for any events already on the queue with the same source + // and ID. + AWTEvent previous = null; + for (AWTEvent qevt = q.queueHead; qevt != null; qevt = qevt.queueNext) { - /* If there are, call coalesceEvents on the source component - to see if they can be combined. */ - Component srccmp = (Component) src; - AWTEvent coalesced_evt = srccmp.coalesceEvents(qevt, evt); - if (coalesced_evt != null) + Object src = qevt.getSource(); + if (qevt.id == evt.id && src == comp) { - /* Yes. Replace the existing event with the combined event. */ - queue[i] = coalesced_evt; - return; + // If there are, call coalesceEvents on the source component + // to see if they can be combined. + Component srccmp = (Component) src; + AWTEvent coalescedEvt = srccmp.coalesceEvents(qevt, evt); + if (coalescedEvt != null) + { + // Yes. Replace the existing event with the combined event. + if (qevt != coalescedEvt) + { + if (previous != null) + { + assert previous.queueNext == qevt; + previous.queueNext = coalescedEvt; + } + else + { + assert q.queueHead == qevt; + q.queueHead = coalescedEvt; + } + coalescedEvt.queueNext = qevt.queueNext; + if (q.queueTail == qevt) + q.queueTail = coalescedEvt; + qevt.queueNext = null; + } + return; + } } - break; + previous = qevt; } - if (++i == queue.length) - i = 0; } - queue[next_in] = evt; - if (++next_in == queue.length) - next_in = 0; - - if (next_in == next_out) + if (q.queueHead == null) { - /* Queue is full. Extend it. */ - AWTEvent[] oldQueue = queue; - queue = new AWTEvent[queue.length * 2]; - - int len = oldQueue.length - next_out; - System.arraycopy(oldQueue, next_out, queue, 0, len); - if (next_out != 0) - System.arraycopy(oldQueue, 0, queue, len, next_out); - - next_out = 0; - next_in = oldQueue.length; + // We have an empty queue. Set this event both as head and as tail. + q.queueHead = evt; + q.queueTail = evt; } - + else + { + // Note: queueTail should not be null here. + q.queueTail.queueNext = evt; + q.queueTail = evt; + } + if (dispatchThread == null || !dispatchThread.isAlive()) { dispatchThread = new EventDispatchThread(this); @@ -287,15 +417,15 @@ public class EventQueue throw new Error("Can't call invokeAndWait from event dispatch thread"); EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); - Thread current = Thread.currentThread(); + Object notifyObject = new Object(); - InvocationEvent ie = - new InvocationEvent(eq, runnable, current, true); + InvocationEvent ie = + new InvocationEvent(eq, runnable, notifyObject, true); - synchronized (current) + synchronized (notifyObject) { eq.postEvent(ie); - current.wait(); + notifyObject.wait(); } Exception exception; @@ -387,17 +517,26 @@ public class EventQueue if (dispatchThread == null) dispatchThread = new EventDispatchThread(this); - int i = next_out; - while (i != next_in) + synchronized (newEventQueue) { - newEventQueue.postEvent(queue[i]); - next_out = i; - if (++i == queue.length) - i = 0; + // The RI transfers the events without calling the new eventqueue's + // push(), but using getNextEvent(). + while (peekEvent() != null) + { + try + { + newEventQueue.postEventImpl(getNextEvent()); + } + catch (InterruptedException ex) + { + // What should we do with this? + ex.printStackTrace(); + } + } + newEventQueue.prev = this; } next = newEventQueue; - newEventQueue.prev = this; } /** Transfer any pending events from this queue back to the parent queue that @@ -408,36 +547,49 @@ public class EventQueue */ protected void pop() throws EmptyStackException { - if (prev == null) - throw new EmptyStackException(); - /* The order is important here, we must get the prev lock first, or deadlock could occur as callers usually get here following prev's next pointer, and thus obtain prev's lock before trying to get this lock. */ - synchronized (prev) + EventQueue previous = prev; + if (previous == null) + throw new EmptyStackException(); + synchronized (previous) { - prev.next = next; - if (next != null) - next.prev = prev; - synchronized (this) { - int i = next_out; - while (i != next_in) + EventQueue nextQueue = next; + if (nextQueue != null) { - prev.postEvent(queue[i]); - next_out = i; - if (++i == queue.length) - i = 0; + nextQueue.pop(); + } + else + { + previous.next = null; + + // The RI transfers the events without calling the new eventqueue's + // push(), so this should be OK and most effective. + while (peekEvent() != null) + { + try + { + previous.postEventImpl(getNextEvent()); + } + catch (InterruptedException ex) + { + // What should we do with this? + ex.printStackTrace(); + } + } + prev = null; + // Tell our EventDispatchThread that it can end + // execution. + if (dispatchThread != null) + { + dispatchThread.interrupt(); + dispatchThread = null; + } } - // Empty the queue so it can be reused - next_in = 0; - next_out = 0; - - setShutdown(true); - dispatchThread = null; - this.notifyAll(); } } } diff --git a/libjava/classpath/java/awt/FileDialog.java b/libjava/classpath/java/awt/FileDialog.java index f02d06be2c9..21117700d6e 100644 --- a/libjava/classpath/java/awt/FileDialog.java +++ b/libjava/classpath/java/awt/FileDialog.java @@ -95,6 +95,11 @@ private FilenameFilter filter; */ private int mode; +/** + * The number used to generate the name returned by getName. + */ +private static transient long next_file_dialog_number; + /*************************************************************************/ /* @@ -300,7 +305,11 @@ getFile() public synchronized void setFile(String file) { - this.file = file; + if ("".equals(file)) + this.file = null; + else + this.file = file; + if (peer != null) { FileDialogPeer f = (FileDialogPeer) peer; @@ -366,5 +375,22 @@ paramString() ",mode=" + mode + "," + super.paramString()); } +/** + * Generate a unique name for this FileDialog. + * + * @return A unique name for this FileDialog. + */ +String +generateName() +{ + return "filedlg" + getUniqueLong(); +} + +private static synchronized long +getUniqueLong() +{ + return next_file_dialog_number++; +} + } // class FileDialog diff --git a/libjava/classpath/java/awt/FlowLayout.java b/libjava/classpath/java/awt/FlowLayout.java index 8c99195289a..70c98a29a74 100644 --- a/libjava/classpath/java/awt/FlowLayout.java +++ b/libjava/classpath/java/awt/FlowLayout.java @@ -337,7 +337,10 @@ public class FlowLayout implements LayoutManager, Serializable Insets ins = parent.getInsets (); - w += (num + 1) * hgap + ins.left + ins.right; + if (num == 0) + w += 2 * hgap + ins.left + ins.right; + else + w += (num + 1) * hgap + ins.left + ins.right; h += 2 * vgap + ins.top + ins.bottom; return new Dimension (w, h); diff --git a/libjava/classpath/java/awt/Font.java b/libjava/classpath/java/awt/Font.java index 1c22ce7b48f..29b87d6af99 100644 --- a/libjava/classpath/java/awt/Font.java +++ b/libjava/classpath/java/awt/Font.java @@ -44,6 +44,7 @@ import gnu.java.awt.peer.ClasspathFontPeer; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.font.LineMetrics; +import java.awt.font.TextAttribute; import java.awt.font.TextLayout; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; @@ -351,7 +352,7 @@ public class Font implements Serializable this.name = peer.getName(this); } - public Font(Map attrs) + public Font(Map attrs) { this(null, attrs); } @@ -797,7 +798,7 @@ public class Font implements Serializable * * @since 1.2 */ - public Font deriveFont(Map attributes) + public Font deriveFont(Map attributes) { return peer.deriveFont(this, attributes); } @@ -811,7 +812,7 @@ public class Font implements Serializable * @see java.text.AttributedCharacterIterator.Attribute * @see java.awt.font.TextAttribute */ - public Map getAttributes() + public Map getAttributes() { return peer.getAttributes(this); } @@ -890,7 +891,7 @@ public class Font implements Serializable * * @see java.awt.font.TextAttribute */ - public static Font getFont(Map attributes) + public static Font getFont(Map attributes) { return getFontFromToolkit(null, attributes); } @@ -1086,7 +1087,8 @@ public class Font implements Serializable */ public Rectangle2D getStringBounds(String str, FontRenderContext frc) { - return getStringBounds(str, 0, str.length() - 1, frc); + char[] chars = str.toCharArray(); + return getStringBounds(chars, 0, chars.length, frc); } /** @@ -1114,8 +1116,8 @@ public class Font implements Serializable public Rectangle2D getStringBounds(String str, int begin, int limit, FontRenderContext frc) { - return peer.getStringBounds(this, new StringCharacterIterator(str), begin, - limit, frc); + String sub = str.substring(begin, limit); + return getStringBounds(sub, frc); } /** @@ -1143,7 +1145,16 @@ public class Font implements Serializable public Rectangle2D getStringBounds(CharacterIterator ci, int begin, int limit, FontRenderContext frc) { - return peer.getStringBounds(this, ci, begin, limit, frc); + int start = ci.getBeginIndex(); + int end = ci.getEndIndex(); + char[] chars = new char[limit - start]; + ci.setIndex(start); + for (int index = 0; index < chars.length; index++) + { + chars[index] = ci.current(); + ci.next(); + } + return getStringBounds(chars, 0, chars.length, frc); } /** @@ -1171,9 +1182,10 @@ public class Font implements Serializable public Rectangle2D getStringBounds(char[] chars, int begin, int limit, FontRenderContext frc) { - return peer.getStringBounds(this, - new StringCharacterIterator(new String(chars)), - begin, limit, frc); + String str = new String(chars, begin, limit - begin); + TextLayout layout = new TextLayout(str, this, frc); + return new Rectangle2D.Float(0, -layout.getAscent(), layout.getAdvance(), + layout.getDescent() + layout.getLeading()); } /** diff --git a/libjava/classpath/java/awt/Frame.java b/libjava/classpath/java/awt/Frame.java index 542013671aa..d5cc7f53197 100644 --- a/libjava/classpath/java/awt/Frame.java +++ b/libjava/classpath/java/awt/Frame.java @@ -340,13 +340,16 @@ public class Frame extends Window implements MenuContainer parent.remove(menuBar); menuBar.setParent(this); - if (peer != null) - { - if (menuBar != null) - menuBar.addNotify(); - invalidateTree(); - ((FramePeer) peer).setMenuBar(menuBar); - } + // Create local copy for thread safety. + FramePeer p = (FramePeer) peer; + if (p != null) + { + if (menuBar != null) + menuBar.addNotify(); + if (valid) + invalidate(); + p.setMenuBar(menuBar); + } } } @@ -485,7 +488,10 @@ public class Frame extends Window implements MenuContainer private static void noteFrame(Frame f) { - weakFrames.add(new WeakReference(f)); + synchronized (weakFrames) + { + weakFrames.add(new WeakReference(f)); + } } public static Frame[] getFrames() @@ -533,8 +539,7 @@ public class Frame extends Window implements MenuContainer public int getState() { - // FIXME: State might have changed in the peer... Must check. - return (state & ICONIFIED) != 0 ? ICONIFIED : NORMAL; + return (getExtendedState() & ICONIFIED) != 0 ? ICONIFIED : NORMAL; } /** @@ -542,7 +547,13 @@ public class Frame extends Window implements MenuContainer */ public void setExtendedState(int state) { - this.state = state; + if (getToolkit().isFrameStateSupported(state)) + { + this.state = state; + FramePeer p = (FramePeer) peer; + if (p != null) + p.setState(state); + } } /** @@ -550,6 +561,9 @@ public class Frame extends Window implements MenuContainer */ public int getExtendedState() { + FramePeer p = (FramePeer) peer; + if (p != null) + state = p.getState(); return state; } diff --git a/libjava/classpath/java/awt/Graphics2D.java b/libjava/classpath/java/awt/Graphics2D.java index ada13edc512..e0a1b4756f5 100644 --- a/libjava/classpath/java/awt/Graphics2D.java +++ b/libjava/classpath/java/awt/Graphics2D.java @@ -183,7 +183,7 @@ public abstract class Graphics2D extends Graphics * @see #getComposite() */ public abstract void setComposite(Composite comp); - + /** * Sets the paint to be used for subsequent drawing operations. * @@ -227,14 +227,14 @@ public abstract class Graphics2D extends Graphics * * @see #addRenderingHints(Map) */ - public abstract void setRenderingHints(Map hints); + public abstract void setRenderingHints(Map hints); /** * Adds/updates the rendering hint. * * @param hints the hints to add or update. */ - public abstract void addRenderingHints(Map hints); + public abstract void addRenderingHints(Map hints); /** * Returns the current rendering hints. diff --git a/libjava/classpath/java/awt/GridBagLayout.java b/libjava/classpath/java/awt/GridBagLayout.java index d84b7d6df6c..0415c7bd3bb 100644 --- a/libjava/classpath/java/awt/GridBagLayout.java +++ b/libjava/classpath/java/awt/GridBagLayout.java @@ -46,6 +46,7 @@ import java.util.Hashtable; /** * @author Michael Koch (konqueror@gmx.de) * @author Jeroen Frijters (jeroen@frijters.net) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ public class GridBagLayout implements Serializable, LayoutManager2 @@ -62,8 +63,8 @@ public class GridBagLayout // REMAINDER constraints. // Constraints kept in comptable are never modified, and constraints // kept in internalcomptable can be modified internally only. - protected Hashtable comptable; - private Hashtable internalcomptable; + protected Hashtable comptable; + private Hashtable internalcomptable; protected GridBagLayoutInfo layoutInfo; protected GridBagConstraints defaultConstraints; @@ -74,8 +75,8 @@ public class GridBagLayout public GridBagLayout () { - this.comptable = new Hashtable(); - this.internalcomptable = new Hashtable(); + this.comptable = new Hashtable(); + this.internalcomptable = new Hashtable(); this.defaultConstraints= new GridBagConstraints(); } @@ -320,6 +321,16 @@ public class GridBagLayout } /** + * Return a string representation of this GridBagLayout. + * + * @return a string representation + */ + public String toString() + { + return getClass().getName(); + } + + /** * Move and resize a rectangle according to a set of grid bag * constraints. The x, y, width and height fields of the * rectangle argument are adjusted to the new values. @@ -489,16 +500,18 @@ public class GridBagLayout // Guaranteed to contain the last component added to the given row // or column, whose gridwidth/height is not REMAINDER. - HashMap lastInRow = new HashMap(); - HashMap lastInCol = new HashMap(); + HashMap lastInRow = new HashMap(); + HashMap lastInCol = new HashMap(); Component[] components = parent.getComponents(); // Components sorted by gridwidths/heights, // smallest to largest, with REMAINDER and RELATIVE at the end. // These are useful when determining sizes and weights. - ArrayList sortedByWidth = new ArrayList(components.length); - ArrayList sortedByHeight = new ArrayList(components.length); + ArrayList sortedByWidth = + new ArrayList(components.length); + ArrayList sortedByHeight = + new ArrayList(components.length); // STEP 1: first we figure out how many rows/columns for (int i = 0; i < components.length; i++) @@ -763,7 +776,7 @@ public class GridBagLayout // STEP 3: Determine sizes and weights for columns. for (int i = 0; i < sortedByWidth.size(); i++) { - Component component = (Component) sortedByWidth.get(i); + Component component = sortedByWidth.get(i); // If component is not visible we dont have to care about it. if (!component.isVisible()) @@ -877,7 +890,8 @@ public class GridBagLayout * width. Otherwise, sort by height. * FIXME: Use a better sorting algorithm. */ - private void sortBySpan (Component component, int span, ArrayList list, boolean sortByWidth) + private void sortBySpan (Component component, int span, + ArrayList list, boolean sortByWidth) { if (span == GridBagConstraints.REMAINDER || span == GridBagConstraints.RELATIVE) diff --git a/libjava/classpath/java/awt/GridLayout.java b/libjava/classpath/java/awt/GridLayout.java index a6836681da5..65e09aa59f8 100644 --- a/libjava/classpath/java/awt/GridLayout.java +++ b/libjava/classpath/java/awt/GridLayout.java @@ -289,7 +289,7 @@ public class GridLayout implements LayoutManager, Serializable public String toString () { return (getClass ().getName () + "[" - + ",hgap=" + hgap + ",vgap=" + vgap + + "hgap=" + hgap + ",vgap=" + vgap + ",rows=" + rows + ",cols=" + cols + "]"); } diff --git a/libjava/classpath/java/awt/KeyboardFocusManager.java b/libjava/classpath/java/awt/KeyboardFocusManager.java index eacbceb7d50..cd138269e0b 100644 --- a/libjava/classpath/java/awt/KeyboardFocusManager.java +++ b/libjava/classpath/java/awt/KeyboardFocusManager.java @@ -1,5 +1,5 @@ /* KeyboardFocusManager.java -- manage component focusing via the keyboard - Copyright (C) 2002, 2004 Free Software Foundation + Copyright (C) 2002, 2004, 2005 Free Software Foundation This file is part of GNU Classpath. @@ -555,7 +555,9 @@ public abstract class KeyboardFocusManager * @see #UP_CYCLE_TRAVERSAL_KEYS * @see #DOWN_CYCLE_TRAVERSAL_KEYS */ - public void setDefaultFocusTraversalKeys (int id, Set keystrokes) + public void setDefaultFocusTraversalKeys (int id, + Set + keystrokes) { if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS && id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS && @@ -627,7 +629,7 @@ public abstract class KeyboardFocusManager * @see #UP_CYCLE_TRAVERSAL_KEYS * @see #DOWN_CYCLE_TRAVERSAL_KEYS */ - public Set getDefaultFocusTraversalKeys (int id) + public Set getDefaultFocusTraversalKeys (int id) { if (id < FORWARD_TRAVERSAL_KEYS || id > DOWN_CYCLE_TRAVERSAL_KEYS) throw new IllegalArgumentException (); @@ -989,9 +991,9 @@ public abstract class KeyboardFocusManager * @return A list of explicitly registered key event dispatchers. * @see KeyboardFocusManager#addKeyEventDispatcher(java.awt.KeyEventDispatcher) */ - protected List getKeyEventDispatchers () + protected List getKeyEventDispatchers () { - return (List) keyEventDispatchers.clone (); + return (List) keyEventDispatchers.clone (); } /** @@ -1046,9 +1048,9 @@ public abstract class KeyboardFocusManager * @return A list of explicitly registered key event post processors. * @see KeyboardFocusManager#addKeyEventPostProcessor(java.awt.KeyEventPostProcessor) */ - protected List getKeyEventPostProcessors () + protected List getKeyEventPostProcessors () { - return (List) keyEventPostProcessors.clone (); + return (List) keyEventPostProcessors.clone (); } /** diff --git a/libjava/classpath/java/awt/LightweightDispatcher.java b/libjava/classpath/java/awt/LightweightDispatcher.java index 3ea3f90a643..04196bd7796 100644 --- a/libjava/classpath/java/awt/LightweightDispatcher.java +++ b/libjava/classpath/java/awt/LightweightDispatcher.java @@ -38,7 +38,10 @@ exception statement from your version. */ package java.awt; +import java.awt.event.InputEvent; import java.awt.event.MouseEvent; +import java.awt.event.MouseWheelEvent; +import java.awt.peer.LightweightPeer; import java.util.WeakHashMap; /** @@ -49,7 +52,7 @@ import java.util.WeakHashMap; * * @author Roman Kennke (kennke@aicas.com) */ -class LightweightDispatcher +final class LightweightDispatcher { /** @@ -60,26 +63,17 @@ class LightweightDispatcher private static WeakHashMap instances = new WeakHashMap(); /** - * The component that is the start of a mouse dragging. All MOUSE_DRAGGED - * events that follow the initial press must have the source set to this, - * as well as the MOUSE_RELEASED event following the dragging. - */ - private Component dragTarget; - - /** - * Stores the button number which started the drag operation. This is needed - * because we want to handle only one drag operation and only the button that - * started the dragging should be able to stop it (by a button release). - */ - private int dragButton; - - /** * The last mouse event target. If the target changes, additional * MOUSE_ENTERED and MOUSE_EXITED events must be dispatched. */ private Component lastTarget; /** + * The current mouseEventTarget. + */ + private Component mouseEventTarget; + + /** * Returns an instance of LightweightDispatcher for the current thread's * thread group. * @@ -113,9 +107,9 @@ class LightweightDispatcher * * @param event the event */ - public boolean dispatchEvent(AWTEvent event) + public boolean dispatchEvent(final AWTEvent event) { - if (event instanceof MouseEvent && event.getSource() instanceof Window) + if (event instanceof MouseEvent) { MouseEvent mouseEvent = (MouseEvent) event; return handleMouseEvent(mouseEvent); @@ -130,151 +124,49 @@ class LightweightDispatcher * @param ev the mouse event * @return whether or not we found a lightweight that handled the event. */ - private boolean handleMouseEvent(MouseEvent ev) + private boolean handleMouseEvent(final MouseEvent ev) { - Window window = (Window) ev.getSource(); - // Find the target for the mouse event. We first seach the deepest - // component at the specified location. The we go up to its parent and - // try to find a neighbor of the deepest component that is suitable as - // mouse event target (it must be showing, at that location and have either - // a MouseListener or MouseMotionListener installed). If no such component - // is found, then we walk up the container hierarchy and find the next - // container that has a MouseListener or MouseMotionListener installed. - Component deepest = window.findComponentAt(ev.getX(), ev.getY()); - if (deepest == null) - return false; - Container parent = deepest.getParent(); - Point loc = ev.getPoint(); - loc = convertPointToChild(window, loc, parent); - Component target = null; - if (parent != null) - { - target = findTarget(parent, loc); - while (target == null && parent != null) - { - if (parent.mouseListener != null - || parent.mouseMotionListener != null - || (parent.eventMask - & (AWTEvent.MOUSE_EVENT_MASK - | AWTEvent.MOUSE_MOTION_EVENT_MASK)) != 0) - { - target = parent; - } - else - parent = parent.getParent(); - } - } - if (target == null || target.isLightweight()) + Container container = (Container) ev.getSource(); + Component target = findTarget(container, ev.getX(), ev.getY()); + trackEnterExit(target, ev); + int id = ev.getID(); + + // Dont update the mouseEventTarget when dragging. Also, MOUSE_CLICKED + // must be dispatched to the original target of MOUSE_PRESSED, so don't + // update in this case either. + if (! isDragging(ev) && id != MouseEvent.MOUSE_CLICKED) + mouseEventTarget = (target != container) ? target : null; + + if (mouseEventTarget != null) { - // Dispatch additional MOUSE_EXITED and MOUSE_ENTERED if event target - // is different from the last event target. - if (target != lastTarget) + switch (id) { - if (lastTarget != null) - { - Point p1 = convertPointToChild(window, ev.getPoint(), - lastTarget); - MouseEvent mouseExited = - new MouseEvent(lastTarget, MouseEvent.MOUSE_EXITED, - ev.getWhen(), ev.getModifiers(), p1.x, p1.y, - ev.getClickCount(), ev.isPopupTrigger()); - //System.err.println("event: " + mouseExited); - lastTarget.dispatchEvent(mouseExited); - } - - // If a target exists dispatch the MOUSE_ENTERED event. - // Experimenting shows that the MOUSE_ENTERED is also dispatched - // when the mouse is dragging. - if (target != null) - { - Point p = convertPointToChild(window, ev.getPoint(), target); - MouseEvent mouseEntered = - new MouseEvent(target, - MouseEvent.MOUSE_ENTERED, ev.getWhen(), - ev.getModifiers(), p.x, p.y, ev.getClickCount(), - ev.isPopupTrigger()); - //System.err.println("event: " + mouseEntered); - target.dispatchEvent(mouseEntered); - } - } - - switch (ev.getID()) - { - case MouseEvent.MOUSE_PRESSED: - // Handle the start of a drag operation or discard the event if - // one is already in progress. This prevents focus changes with the - // other mouse buttons when one is used for dragging. - if (dragTarget == null) - { - lastTarget = dragTarget = target; - - // Save the button that started the drag operation. - dragButton = ev.getButton(); - } - else - return false; - + case MouseEvent.MOUSE_ENTERED: + case MouseEvent.MOUSE_EXITED: + // This is already handled in trackEnterExit(). break; + case MouseEvent.MOUSE_PRESSED: case MouseEvent.MOUSE_RELEASED: - // Stop the drag operation only when the button that started - // it was released. - if (dragTarget != null && dragButton == ev.getButton()) - { - // Only post MOUSE_RELEASED to dragTarget (set in - // MOUSE_PRESSED) when the dragTarget is actually visible. - // Otherwise post the event to the normal target. - if (dragTarget.isVisible()) - target = dragTarget; - dragTarget = null; - } - - lastTarget = target; + case MouseEvent.MOUSE_MOVED: + redispatch(ev, mouseEventTarget, id); break; case MouseEvent.MOUSE_CLICKED: - // When we receive a MOUSE_CLICKED, we set the target to the - // previous target, which must have been a MOUSE_RELEASED event. - // This is necessary for the case when the MOUSE_RELEASED has - // caused the original target (like an internal component) go - // away. - // This line is the reason why it is not possible to move the - // 'lastTarget = target' assignment before the switch-statement. - target = lastTarget; + // MOUSE_CLICKED must be dispatched to the original target of + // MOUSE_PRESSED. + if (target == mouseEventTarget) + redispatch(ev, mouseEventTarget, id); break; case MouseEvent.MOUSE_DRAGGED: - // We consider only dragTarget for redispatching the event still - // we have to act in a way that the newly found target component - // was handled. - lastTarget = target; - target = dragTarget; + if (isDragging(ev)) + redispatch(ev, mouseEventTarget, id); break; - default: - // Only declare current target as the old value in all other - // cases. - lastTarget = target; - break; - } - - if (target != null) - { - Point targetCoordinates = convertPointToChild(window, - ev.getPoint(), - target); - int dx = targetCoordinates.x - ev.getX(); - int dy = targetCoordinates.y - ev.getY(); - ev.translatePoint(dx, dy); - ev.setSource(target); - target.dispatchEvent(ev); - - // We reset the event, so that the normal event dispatching is not - // influenced by this modified event. - ev.setSource(window); - ev.translatePoint(-dx, -dy); + case MouseEvent.MOUSE_WHEEL: + redispatch(ev, mouseEventTarget, id); } - - return true; + ev.consume(); } - else - return false; + + return ev.isConsumed(); } /** @@ -290,58 +182,180 @@ class LightweightDispatcher * @return the actual receiver of the mouse event, or null, if no such * component has been found */ - private Component findTarget(Container c, Point loc) + private Component findTarget(final Container c, final int x, final int y) { - int numComponents = c.getComponentCount(); Component target = null; - if (c != null) + + // First we check the children of the container. + + // Note: It is important that we use the package private Container + // fields ncomponents and component here. There are applications + // that override getComponentCount() + // and getComponent() to hide internal components, which makes + // the LightweightDispatcher not work correctly in these cases. + // As a positive sideeffect this is slightly more efficient. + int nChildren = c.ncomponents; + for (int i = 0; i < nChildren && target == null; i++) { - for (int i = 0; i < numComponents; i++) + Component child = c.component[i]; + int childX = x - child.x; + int childY = y - child.y; + if (child != null && child.visible + && child.peer instanceof LightweightPeer + && child.contains(childX, childY)) { - Component child = c.getComponent(i); - if (child.isShowing()) + // Check if there's a deeper possible target. + if (child instanceof Container) { - if (child.contains(loc.x - child.getX(), loc.y - child.getY()) - && (child.mouseListener != null - || child.mouseMotionListener != null - || (child.eventMask - & (AWTEvent.MOUSE_EVENT_MASK - | AWTEvent.MOUSE_MOTION_EVENT_MASK)) != 0)) - { - target = child; - break; - } + Component deeper = findTarget((Container) child, + childX, childY); + if (deeper != null) + target = deeper; } + // Check if the child itself is interested in mouse events. + else if (isMouseListening(child)) + target = child; } } + + // Check the container itself, if we didn't find a target yet. + if (target == null && c.contains(x, y) && isMouseListening(c)) + target = c; + return target; } /** - * Converts a point in the parent's coordinate system to a child coordinate - * system. The resulting point is stored in the same Point object and - * returned. + * Checks if the specified component would be interested in a mouse event. + * + * @param c the component to check + * + * @return true if the component has mouse listeners installed, + * false otherwise + */ + private boolean isMouseListening(final Component c) + { + // Note: It is important to NOT check if the component is listening + // for a specific event (for instance, mouse motion events). The event + // gets dispatched to the component if the component is listening + // for ANY mouse event, even when the component is not listening for the + // specific type of event. There are applications that depend on this + // (sadly). + return c.mouseListener != null + || c.mouseMotionListener != null + || c.mouseWheelListener != null + || (c.eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0 + || (c.eventMask & AWTEvent.MOUSE_MOTION_EVENT_MASK) != 0 + || (c.eventMask & AWTEvent.MOUSE_WHEEL_EVENT_MASK) != 0; + } + + /** + * Tracks MOUSE_ENTERED and MOUSE_EXIT as well as MOUSE_MOVED and + * MOUSE_DRAGGED and creates synthetic MOUSE_ENTERED and MOUSE_EXITED for + * lightweight component.s + * + * @param target the current mouse event target + * @param ev the mouse event + */ + private void trackEnterExit(final Component target, final MouseEvent ev) + { + int id = ev.getID(); + if (target != lastTarget) + { + if (lastTarget != null) + redispatch(ev, lastTarget, MouseEvent.MOUSE_EXITED); + if (id == MouseEvent.MOUSE_EXITED) + ev.consume(); + if (target != null) + redispatch(ev, target, MouseEvent.MOUSE_ENTERED); + if (id == MouseEvent.MOUSE_ENTERED) + ev.consume(); + lastTarget = target; + } + + } + + /** + * Redispatches the specified mouse event to the specified target with the + * specified id. * - * @param parent the parent component - * @param p the point - * @param child the child component + * @param ev the mouse event + * @param target the new target + * @param id the new id + */ + private void redispatch(MouseEvent ev, Component target, int id) + { + Component source = ev.getComponent(); + if (target != null) + { + // Translate coordinates. + int x = ev.getX(); + int y = ev.getY(); + for (Component c = target; c != null && c != source; c = c.getParent()) + { + x -= c.x; + y -= c.y; + } + + // Retarget event. + MouseEvent retargeted; + if (id == MouseEvent.MOUSE_WHEEL) + { + MouseWheelEvent mwe = (MouseWheelEvent) ev; + retargeted = new MouseWheelEvent(target, id, ev.getWhen(), + ev.getModifiers() + | ev.getModifiersEx(), x, y, + ev.getClickCount(), + ev.isPopupTrigger(), + mwe.getScrollType(), + mwe.getScrollAmount(), + mwe.getWheelRotation()); + } + else + { + retargeted = new MouseEvent(target, id, ev.getWhen(), + ev.getModifiers() | ev.getModifiersEx(), + x, y, ev.getClickCount(), + ev.isPopupTrigger(), ev.getButton()); + } + + if (target == source) + ((Container) target).dispatchNoLightweight(retargeted); + else + target.dispatchEvent(retargeted); + } + } + + /** + * Determines if we are in the middle of a drag operation, that is, if + * any of the buttons is held down. + * + * @param ev the mouse event to check * - * @return the translated point + * @return true if we are in the middle of a drag operation, + * false otherwise */ - private Point convertPointToChild(Component parent, Point p, - Component child) + private boolean isDragging(MouseEvent ev) { - int offX = 0; - int offY = 0; - Component comp = child; - while (comp != null && comp != parent) + int mods = ev.getModifiersEx(); + int id = ev.getID(); + if (id == MouseEvent.MOUSE_PRESSED || id == MouseEvent.MOUSE_RELEASED) { - offX += comp.getX(); - offY += comp.getY(); - comp = comp.getParent(); + switch (ev.getButton()) + { + case MouseEvent.BUTTON1: + mods ^= InputEvent.BUTTON1_DOWN_MASK; + break; + case MouseEvent.BUTTON2: + mods ^= InputEvent.BUTTON2_DOWN_MASK; + break; + case MouseEvent.BUTTON3: + mods ^= InputEvent.BUTTON3_DOWN_MASK; + break; + } } - p.x -= offX; - p.y -= offY; - return p; + return (mods & (InputEvent.BUTTON1_DOWN_MASK + | InputEvent.BUTTON2_DOWN_MASK + | InputEvent.BUTTON3_DOWN_MASK)) != 0; } } diff --git a/libjava/classpath/java/awt/List.java b/libjava/classpath/java/awt/List.java dissimilarity index 73% index 86270234345..df8bffa1945 100644 --- a/libjava/classpath/java/awt/List.java +++ b/libjava/classpath/java/awt/List.java @@ -1,1289 +1,1222 @@ -/* List.java -- A listbox widget - Copyright (C) 1999, 2002, 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.awt; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.peer.ListPeer; -import java.util.EventListener; -import java.util.Vector; - -import javax.accessibility.Accessible; -import javax.accessibility.AccessibleContext; -import javax.accessibility.AccessibleRole; -import javax.accessibility.AccessibleSelection; -import javax.accessibility.AccessibleState; -import javax.accessibility.AccessibleStateSet; - -/** - * Class that implements a listbox widget - * - * @author Aaron M. Renn (arenn@urbanophile.com) - */ -public class List extends Component - implements ItemSelectable, Accessible -{ - -/* - * Static Variables - */ - -/** - * The number used to generate the name returned by getName. - */ -private static transient long next_list_number; - -// Serialization constant -private static final long serialVersionUID = -3304312411574666869L; - -/*************************************************************************/ - -/* - * Instance Variables - */ - -// FIXME: Need read/writeObject - -/** - * @serial The items in the list. - */ -private Vector items = new Vector(); - -/** - * @serial Indicates whether or not multiple items can be selected - * simultaneously. - */ -private boolean multipleMode; - -/** - * @serial The number of rows in the list. This is set on creation - * only and cannot be modified. - */ -private int rows; - -/** - * @serial An array of the item indices that are selected. - */ -private int[] selected; - -/** - * @serial An index value used by makeVisible() and - * getVisibleIndex. - */ -private int visibleIndex; - -// The list of ItemListeners for this object. -private ItemListener item_listeners; - -// The list of ActionListeners for this object. -private ActionListener action_listeners; - - -/*************************************************************************/ - -/* - * Constructors - */ - -/** - * Initializes a new instance of List with no visible lines - * and multi-select disabled. - * - * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. - */ -public -List() -{ - this(4, false); -} - -/*************************************************************************/ - -/** - * Initializes a new instance of List with the specified - * number of visible lines and multi-select disabled. - * - * @param rows The number of visible rows in the list. - * - * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. - */ -public -List(int rows) -{ - this(rows, false); -} - -/*************************************************************************/ - -/** - * Initializes a new instance of List with the specified - * number of lines and the specified multi-select setting. - * - * @param rows The number of visible rows in the list. - * @param multipleMode true if multiple lines can be selected - * simultaneously, false otherwise. - * - * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. - */ -public -List(int rows, boolean multipleMode) -{ - if (rows == 0) - this.rows = 4; - else - this.rows = rows; - - this.multipleMode = multipleMode; - selected = new int[0]; - - if (GraphicsEnvironment.isHeadless()) - throw new HeadlessException (); -} - -/*************************************************************************/ - -/* - * Instance Variables - */ - -/** - * Returns the number of items in this list. - * - * @return The number of items in this list. - */ -public int -getItemCount() -{ - return countItems (); -} - -/*************************************************************************/ - -/** - * Returns the number of items in this list. - * - * @return The number of items in this list. - * - * @deprecated This method is deprecated in favor of - * getItemCount() - */ -public int -countItems() -{ - return items.size (); -} - -/*************************************************************************/ - -/** - * Returns the complete list of items. - * - * @return The complete list of items in the list. - */ -public synchronized String[] -getItems() -{ - String[] l_items = new String[getItemCount()]; - - items.copyInto(l_items); - return(l_items); -} - -/*************************************************************************/ - -/** - * Returns the item at the specified index. - * - * @param index The index of the item to retrieve. - * - * @exception IndexOutOfBoundsException If the index value is not valid. - */ -public String -getItem(int index) -{ - return((String)items.elementAt(index)); -} - -/*************************************************************************/ - -/** - * Returns the number of visible rows in the list. - * - * @return The number of visible rows in the list. - */ -public int -getRows() -{ - return(rows); -} - -/*************************************************************************/ - -/** - * Tests whether or not multi-select mode is enabled. - * - * @return true if multi-select mode is enabled, - * false otherwise. - */ -public boolean -isMultipleMode() -{ - return allowsMultipleSelections (); -} - -/*************************************************************************/ - -/** - * Tests whether or not multi-select mode is enabled. - * - * @return true if multi-select mode is enabled, - * false otherwise. - * - * @deprecated This method is deprecated in favor of - * isMultipleMode(). - */ -public boolean -allowsMultipleSelections() -{ - return multipleMode; -} - -/*************************************************************************/ - -/** - * This method enables or disables multiple selection mode for this - * list. - * - * @param multipleMode true to enable multiple mode, - * false otherwise. - */ -public void -setMultipleMode(boolean multipleMode) -{ - setMultipleSelections (multipleMode); -} - -/*************************************************************************/ - -/** - * This method enables or disables multiple selection mode for this - * list. - * - * @param multipleMode true to enable multiple mode, - * false otherwise. - * - * @deprecated - */ -public void -setMultipleSelections(boolean multipleMode) -{ - this.multipleMode = multipleMode; - - ListPeer peer = (ListPeer) getPeer (); - if (peer != null) - peer.setMultipleMode (multipleMode); -} - -/*************************************************************************/ - -/** - * Returns the minimum size of this component. - * - * @return The minimum size of this component. - */ -public Dimension -getMinimumSize() -{ - return getMinimumSize (getRows ()); -} - -/*************************************************************************/ - -/** - * Returns the minimum size of this component. - * - * @return The minimum size of this component. - * - * @deprecated This method is deprecated in favor of - * getMinimumSize. - */ -public Dimension -minimumSize() -{ - return minimumSize (getRows ()); -} - -/*************************************************************************/ - -/** - * Returns the minimum size of this component assuming it had the specified - * number of rows. - * - * @param rows The number of rows to size for. - * - * @return The minimum size of this component. - */ -public Dimension -getMinimumSize(int rows) -{ - return minimumSize (rows); -} - -/*************************************************************************/ - -/** - * Returns the minimum size of this component assuming it had the specified - * number of rows. - * - * @param rows The number of rows to size for. - * - * @return The minimum size of this component. - * - * @deprecated This method is deprecated in favor of - * getMinimumSize(int)> - */ -public Dimension -minimumSize(int rows) -{ - ListPeer peer = (ListPeer) getPeer (); - if (peer != null) - return peer.minimumSize (rows); - else - return new Dimension (0, 0); -} - -/*************************************************************************/ - -/** - * Returns the preferred size of this component. - * - * @return The preferred size of this component. - */ -public Dimension -getPreferredSize() -{ - return getPreferredSize (getRows ()); -} - -/*************************************************************************/ - -/** - * Returns the preferred size of this component. - * - * @return The preferred size of this component. - * - * @deprecated This method is deprecated in favor of - * getPreferredSize. - */ -public Dimension -preferredSize() -{ - return preferredSize (getRows ()); -} - -/*************************************************************************/ - -/** - * Returns the preferred size of this component assuming it had the specified - * number of rows. - * - * @param rows The number of rows to size for. - * - * @return The preferred size of this component. - */ -public Dimension -getPreferredSize(int rows) -{ - return preferredSize (rows); -} - -/*************************************************************************/ - -/** - * Returns the preferred size of this component assuming it had the specified - * number of rows. - * - * @param rows The number of rows to size for. - * - * @return The preferred size of this component. - * - * @deprecated This method is deprecated in favor of - * getPreferredSize(int)> - */ -public Dimension -preferredSize(int rows) -{ - ListPeer peer = (ListPeer) getPeer (); - if (peer != null) - return peer.preferredSize (rows); - else - return getSize(); -} - -/*************************************************************************/ - -/** - * This method adds the specified item to the end of the list. - * - * @param item The item to add to the list. - */ -public void -add(String item) -{ - add (item, -1); -} - -/*************************************************************************/ - -/** - * This method adds the specified item to the end of the list. - * - * @param item The item to add to the list. - * - * @deprecated Use add() instead. - */ -public void -addItem(String item) -{ - addItem (item, -1); -} - -/*************************************************************************/ - -/** - * Adds the specified item to the specified location in the list. - * If the desired index is -1 or greater than the number of rows - * in the list, then the item is added to the end. - * - * @param item The item to add to the list. - * @param index The location in the list to add the item, or -1 to add - * to the end. - */ -public void -add(String item, int index) -{ - addItem (item, index); -} - -/*************************************************************************/ - -/** - * Adds the specified item to the specified location in the list. - * If the desired index is -1 or greater than the number of rows - * in the list, then the item is added to the end. - * - * @param item The item to add to the list. - * @param index The location in the list to add the item, or -1 to add - * to the end. - * - * @deprecated Use add() instead. - */ -public void -addItem(String item, int index) -{ - if ((index == -1) || (index >= items.size ())) - items.addElement (item); - else - items.insertElementAt (item, index); - - ListPeer peer = (ListPeer) getPeer (); - if (peer != null) - peer.add (item, index); -} - -/*************************************************************************/ - -/** - * Deletes the item at the specified index. - * - * @param index The index of the item to delete. - * - * @exception IllegalArgumentException If the index is not valid - * - * @deprecated - */ -public void -delItem(int index) throws IllegalArgumentException -{ - items.removeElementAt (index); - - ListPeer peer = (ListPeer) getPeer (); - if (peer != null) - peer.delItems (index, index); -} - -/*************************************************************************/ - -/** - * Deletes the item at the specified index. - * - * @param index The index of the item to delete. - * - * @exception IllegalArgumentException If the index is not valid - */ -public void -remove(int index) throws IllegalArgumentException -{ - delItem (index); -} - -/*************************************************************************/ - -/** - * Deletes all items in the specified index range. - * - * @param start The beginning index of the range to delete. - * @param end The ending index of the range to delete. - * - * @exception IllegalArgumentException If the indexes are not valid - * - * @deprecated This method is deprecated for some unknown reason. - */ -public synchronized void -delItems(int start, int end) throws IllegalArgumentException -{ - if ((start < 0) || (start >= items.size())) - throw new IllegalArgumentException("Bad list start index value: " + start); - - if ((start < 0) || (start >= items.size())) - throw new IllegalArgumentException("Bad list start index value: " + start); - - if (start > end) - throw new IllegalArgumentException("Start is greater than end!"); - - // We must run the loop in reverse direction. - for (int i = end; i >= start; --i) - items.removeElementAt (i); - if (peer != null) - { - ListPeer l = (ListPeer) peer; - l.delItems (start, end); - } -} - -/*************************************************************************/ - -/** - * Deletes the first occurrence of the specified item from the list. - * - * @param item The item to delete. - * - * @exception IllegalArgumentException If the specified item does not exist. - */ -public synchronized void -remove(String item) throws IllegalArgumentException -{ - int index = items.indexOf(item); - if (index == -1) - throw new IllegalArgumentException("List element to delete not found"); - - remove(index); -} - -/*************************************************************************/ - -/** - * Deletes all of the items from the list. - */ -public synchronized void -removeAll() -{ - clear (); -} - -/*************************************************************************/ - -/** - * Deletes all of the items from the list. - * - * @deprecated This method is deprecated in favor of removeAll(). - */ -public void -clear() -{ - items.clear(); - - ListPeer peer = (ListPeer) getPeer (); - if (peer != null) - peer.removeAll (); -} - -/*************************************************************************/ - -/** - * Replaces the item at the specified index with the specified item. - * - * @param item The new item value. - * @param index The index of the item to replace. - * - * @exception ArrayIndexOutOfBoundsException If the index is not valid. - */ -public synchronized void -replaceItem(String item, int index) throws ArrayIndexOutOfBoundsException -{ - if ((index < 0) || (index >= items.size())) - throw new ArrayIndexOutOfBoundsException("Bad list index: " + index); - - items.insertElementAt(item, index + 1); - items.removeElementAt (index); - - if (peer != null) - { - ListPeer l = (ListPeer) peer; - - /* We add first and then remove so that the selected - item remains the same */ - l.add (item, index + 1); - l.delItems (index, index); - } -} - -/*************************************************************************/ - -/** - * Returns the index of the currently selected item. -1 will be returned - * if there are no selected rows or if there are multiple selected rows. - * - * @return The index of the selected row. - */ -public synchronized int -getSelectedIndex() -{ - if (peer != null) - { - ListPeer l = (ListPeer) peer; - selected = l.getSelectedIndexes (); - } - - if (selected == null || selected.length != 1) - return -1; - return selected[0]; -} - -/*************************************************************************/ - -/** - * Returns an array containing the indexes of the rows that are - * currently selected. - * - * @return A list of indexes of selected rows. - */ -public synchronized int[] -getSelectedIndexes() -{ - if (peer != null) - { - ListPeer l = (ListPeer) peer; - selected = l.getSelectedIndexes (); - } - return selected; -} - -/*************************************************************************/ - -/** - * Returns the item that is currently selected, or null if there - * is no item selected. FIXME: What happens if multiple items selected? - * - * @return The selected item, or null if there is no - * selected item. - */ -public synchronized String -getSelectedItem() -{ - int index = getSelectedIndex(); - if (index == -1) - return(null); - - return((String)items.elementAt(index)); -} - -/*************************************************************************/ - -/** - * Returns the list of items that are currently selected in this list. - * - * @return The list of currently selected items. - */ -public synchronized String[] -getSelectedItems() -{ - int[] indexes = getSelectedIndexes(); - if (indexes == null) - return(new String[0]); - - String[] retvals = new String[indexes.length]; - if (retvals.length > 0) - for (int i = 0 ; i < retvals.length; i++) - retvals[i] = (String)items.elementAt(indexes[i]); - - return(retvals); -} - -/*************************************************************************/ - -/** - * Returns the list of items that are currently selected in this list as - * an array of type Object[] instead of String[]. - * - * @return The list of currently selected items. - */ -public synchronized Object[] -getSelectedObjects() -{ - int[] indexes = getSelectedIndexes(); - if (indexes == null) - return(new Object[0]); - - Object[] retvals = new Object[indexes.length]; - if (retvals.length > 0) - for (int i = 0 ; i < retvals.length; i++) - retvals[i] = items.elementAt(indexes[i]); - - return(retvals); -} - -/*************************************************************************/ - -/** - * Tests whether or not the specified index is selected. - * - * @param index The index to test. - * - * @return true if the index is selected, false - * otherwise. - */ -public boolean -isIndexSelected(int index) -{ - return isSelected (index); -} - -/*************************************************************************/ - -/** - * Tests whether or not the specified index is selected. - * - * @param index The index to test. - * - * @return true if the index is selected, false - * otherwise. - * - * @deprecated This method is deprecated in favor of - * isIndexSelected(int). - */ -public boolean -isSelected(int index) -{ - int[] indexes = getSelectedIndexes (); - - for (int i = 0; i < indexes.length; i++) - if (indexes[i] == index) - return true; - - return false; -} - -/*************************************************************************/ - -/** - * This method ensures that the item at the specified index is visible. - * - * @param index The index of the item to be made visible. - */ -public synchronized void -makeVisible(int index) throws IllegalArgumentException -{ - visibleIndex = index; - if (peer != null) - { - ListPeer l = (ListPeer) peer; - l.makeVisible (index); - } -} - -/*************************************************************************/ - -/** - * Returns the index of the last item that was made visible via the - * makeVisible() method. - * - * @return The index of the last item made visible via the - * makeVisible() method. - */ -public int -getVisibleIndex() -{ - return(visibleIndex); -} - -/*************************************************************************/ - -/** - * Makes the item at the specified index selected. - * - * @param index The index of the item to select. - */ -public synchronized void -select(int index) -{ - ListPeer lp = (ListPeer)getPeer(); - if (lp != null) - lp.select(index); -} - -/*************************************************************************/ - -/** - * Makes the item at the specified index not selected. - * - * @param index The index of the item to unselect. - */ -public synchronized void -deselect(int index) -{ - ListPeer lp = (ListPeer)getPeer(); - if (lp != null) - lp.deselect(index); -} - -/*************************************************************************/ - -/** - * Notifies this object to create its native peer. - */ -public void -addNotify() -{ - if (peer == null) - peer = getToolkit ().createList (this); - super.addNotify (); -} - -/*************************************************************************/ - -/** - * Notifies this object to destroy its native peer. - */ -public void -removeNotify() -{ - super.removeNotify(); -} - -/*************************************************************************/ - -/** - * Adds the specified ActionListener to the list of - * registered listeners for this object. - * - * @param listener The listener to add. - */ -public synchronized void -addActionListener(ActionListener listener) -{ - action_listeners = AWTEventMulticaster.add(action_listeners, listener); -} - -/*************************************************************************/ - -/** - * Removes the specified ActionListener from the list of - * registers listeners for this object. - * - * @param listener The listener to remove. - */ -public synchronized void -removeActionListener(ActionListener listener) -{ - action_listeners = AWTEventMulticaster.remove(action_listeners, listener); -} - -/*************************************************************************/ - -/** - * Adds the specified ItemListener to the list of - * registered listeners for this object. - * - * @param listener The listener to add. - */ -public synchronized void -addItemListener(ItemListener listener) -{ - item_listeners = AWTEventMulticaster.add(item_listeners, listener); -} - -/*************************************************************************/ - -/** - * Removes the specified ItemListener from the list of - * registers listeners for this object. - * - * @param listener The listener to remove. - */ -public synchronized void -removeItemListener(ItemListener listener) -{ - item_listeners = AWTEventMulticaster.remove(item_listeners, listener); -} - -/*************************************************************************/ - -/** - * Processes the specified event for this object. If the event is an - * instance of ActionEvent then the - * processActionEvent() method is called. Similarly, if the - * even is an instance of ItemEvent then the - * processItemEvent() method is called. Otherwise the - * superclass method is called to process this event. - * - * @param event The event to process. - */ -protected void -processEvent(AWTEvent event) -{ - if (event instanceof ActionEvent) - processActionEvent((ActionEvent)event); - else if (event instanceof ItemEvent) - processItemEvent((ItemEvent)event); - else - super.processEvent(event); -} - -/*************************************************************************/ - -/** - * This method processes the specified event by dispatching it to any - * registered listeners. Note that this method will only get called if - * action events are enabled. This will happen automatically if any - * listeners are added, or it can be done "manually" by calling - * the enableEvents() method. - * - * @param event The event to process. - */ -protected void -processActionEvent(ActionEvent event) -{ - if (action_listeners != null) - action_listeners.actionPerformed(event); -} - -/*************************************************************************/ - -/** - * This method processes the specified event by dispatching it to any - * registered listeners. Note that this method will only get called if - * item events are enabled. This will happen automatically if any - * listeners are added, or it can be done "manually" by calling - * the enableEvents() method. - * - * @param event The event to process. - */ -protected void -processItemEvent(ItemEvent event) -{ - if (item_listeners != null) - item_listeners.itemStateChanged(event); -} - -void -dispatchEventImpl(AWTEvent e) -{ - if (e.id <= ItemEvent.ITEM_LAST - && e.id >= ItemEvent.ITEM_FIRST - && (item_listeners != null - || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0)) - processEvent(e); - else if (e.id <= ActionEvent.ACTION_LAST - && e.id >= ActionEvent.ACTION_FIRST - && (action_listeners != null - || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) - processEvent(e); - else - super.dispatchEventImpl(e); -} - -/*************************************************************************/ - -/** - * Returns a debugging string for this object. - * - * @return A debugging string for this object. - */ -protected String -paramString() -{ - return "multiple=" + multipleMode + ",rows=" + rows + super.paramString(); -} - - /** - * Returns an array of all the objects currently registered as FooListeners - * upon this List. FooListeners are registered using the - * addFooListener method. - * - * @exception ClassCastException If listenerType doesn't specify a class or - * interface that implements java.util.EventListener. - */ - public EventListener[] getListeners (Class listenerType) - { - if (listenerType == ActionListener.class) - return AWTEventMulticaster.getListeners (action_listeners, listenerType); - - if (listenerType == ItemListener.class) - return AWTEventMulticaster.getListeners (item_listeners, listenerType); - - return super.getListeners (listenerType); - } - - /** - * Returns all action listeners registered to this object. - */ - public ActionListener[] getActionListeners () - { - return (ActionListener[]) getListeners (ActionListener.class); - } - - /** - * Returns all action listeners registered to this object. - */ - public ItemListener[] getItemListeners () - { - return (ItemListener[]) getListeners (ItemListener.class); - } - - // Accessibility internal class - protected class AccessibleAWTList extends AccessibleAWTComponent - implements AccessibleSelection, ItemListener, ActionListener - { - private static final long serialVersionUID = 7924617370136012829L; - - protected class AccessibleAWTListChild extends AccessibleAWTComponent - implements Accessible - { - private static final long serialVersionUID = 4412022926028300317L; - - // Field names are fixed by serialization spec. - private List parent; - private int indexInParent; - - public AccessibleAWTListChild(List parent, int indexInParent) - { - this.parent = parent; - this.indexInParent = indexInParent; - if (parent == null) - this.indexInParent = -1; - } - - /* (non-Javadoc) - * @see javax.accessibility.Accessible#getAccessibleContext() - */ - public AccessibleContext getAccessibleContext() - { - return this; - } - - public AccessibleRole getAccessibleRole() - { - return AccessibleRole.LIST_ITEM; - } - - public AccessibleStateSet getAccessibleStateSet() - { - AccessibleStateSet states = super.getAccessibleStateSet(); - if (parent.isIndexSelected(indexInParent)) - states.add(AccessibleState.SELECTED); - return states; - } - - public int getAccessibleIndexInParent() - { - return indexInParent; - } - - } - - public AccessibleAWTList() - { - addItemListener(this); - addActionListener(this); - } - - public AccessibleRole getAccessibleRole() - { - return AccessibleRole.LIST; - } - - public AccessibleStateSet getAccessibleStateSet() - { - AccessibleStateSet states = super.getAccessibleStateSet(); - states.add(AccessibleState.SELECTABLE); - if (isMultipleMode()) - states.add(AccessibleState.MULTISELECTABLE); - return states; - } - - public int getAccessibleChildrenCount() - { - return getItemCount(); - } - - public Accessible getAccessibleChild(int i) - { - if (i >= getItemCount()) - return null; - return new AccessibleAWTListChild(List.this, i); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#getAccessibleSelectionCount() - */ - public int getAccessibleSelectionCount() - { - return getSelectedIndexes().length; - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#getAccessibleSelection() - */ - public AccessibleSelection getAccessibleSelection() - { - return this; - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#getAccessibleSelection(int) - */ - public Accessible getAccessibleSelection(int i) - { - int[] items = getSelectedIndexes(); - if (i >= items.length) - return null; - return new AccessibleAWTListChild(List.this, items[i]); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#isAccessibleChildSelected(int) - */ - public boolean isAccessibleChildSelected(int i) - { - return isIndexSelected(i); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#addAccessibleSelection(int) - */ - public void addAccessibleSelection(int i) - { - select(i); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#removeAccessibleSelection(int) - */ - public void removeAccessibleSelection(int i) - { - deselect(i); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#clearAccessibleSelection() - */ - public void clearAccessibleSelection() - { - for (int i = 0; i < getItemCount(); i++) - deselect(i); - } - - /* (non-Javadoc) - * @see javax.accessibility.AccessibleSelection#selectAllAccessibleSelection() - */ - public void selectAllAccessibleSelection() - { - if (isMultipleMode()) - for (int i = 0; i < getItemCount(); i++) - select(i); - } - - /* (non-Javadoc) - * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent) - */ - public void itemStateChanged(ItemEvent event) - { - } - - /* (non-Javadoc) - * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) - */ - public void actionPerformed(ActionEvent event) - { - } - - } - - /** - * Gets the AccessibleContext associated with this List. - * The context is created, if necessary. - * - * @return the associated context - */ - public AccessibleContext getAccessibleContext() - { - /* Create the context if this is the first request */ - if (accessibleContext == null) - accessibleContext = new AccessibleAWTList(); - return accessibleContext; - } - - /** - * Generate a unique name for this List. - * - * @return A unique name for this List. - */ - String generateName() - { - return "list" + getUniqueLong(); - } - - private static synchronized long getUniqueLong() - { - return next_list_number++; - } -} // class List +/* List.java -- A listbox widget + Copyright (C) 1999, 2002, 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.awt; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.peer.ListPeer; +import java.util.EventListener; +import java.util.Vector; + +import javax.accessibility.Accessible; +import javax.accessibility.AccessibleContext; +import javax.accessibility.AccessibleRole; +import javax.accessibility.AccessibleSelection; +import javax.accessibility.AccessibleState; +import javax.accessibility.AccessibleStateSet; + +/** + * Class that implements a listbox widget + * + * @author Aaron M. Renn (arenn@urbanophile.com) + */ +public class List extends Component + implements ItemSelectable, Accessible +{ + + /** + * The number used to generate the name returned by getName. + */ + private static transient long next_list_number; + + // Serialization constant + private static final long serialVersionUID = -3304312411574666869L; + + // FIXME: Need read/writeObject + + /** + * @serial The items in the list. + */ + private Vector items = new Vector(); + + /** + * @serial Indicates whether or not multiple items can be selected + * simultaneously. + */ + private boolean multipleMode; + + /** + * @serial The number of rows in the list. This is set on creation + * only and cannot be modified. + */ + private int rows; + + /** + * @serial An array of the item indices that are selected. + */ + private int[] selected; + + /** + * @serial An index value used by makeVisible() and + * getVisibleIndex. + */ + private int visibleIndex = -1; + + // The list of ItemListeners for this object. + private ItemListener item_listeners; + + // The list of ActionListeners for this object. + private ActionListener action_listeners; + + /** + * Initializes a new instance of List with no visible lines + * and multi-select disabled. + * + * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. + * @since 1.1 + */ + public List() + { + this(4, false); + } + + /** + * Initializes a new instance of List with the specified + * number of visible lines and multi-select disabled. + * + * @param rows The number of visible rows in the list. + * + * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. + */ + public List(int rows) + { + this(rows, false); + } + + /** + * Initializes a new instance of List with the specified + * number of lines and the specified multi-select setting. + * + * @param rows The number of visible rows in the list. + * @param multipleMode true if multiple lines can be selected + * simultaneously, false otherwise. + * + * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. + */ + public List(int rows, boolean multipleMode) + { + if (rows == 0) + this.rows = 4; + else + this.rows = rows; + + this.multipleMode = multipleMode; + selected = new int[0]; + + if (GraphicsEnvironment.isHeadless()) + throw new HeadlessException(); + + } + + /** + * Returns the number of items in this list. + * + * @return The number of items in this list. + * + * @since 1.1 + */ + public int getItemCount() + { + return countItems(); + } + + /** + * Returns the number of items in this list. + * + * @return The number of items in this list. + * + * @deprecated This method is deprecated in favor of + * getItemCount() + */ + public int countItems() + { + return items.size(); + } + + /** + * Returns the complete list of items. + * + * @return The complete list of items in the list. + * + * @since 1.1 + */ + public synchronized String[] getItems() + { + String[] l_items = new String[getItemCount()]; + + items.copyInto(l_items); + return(l_items); + } + + /** + * Returns the item at the specified index. + * + * @param index The index of the item to retrieve. + * + * @exception IndexOutOfBoundsException If the index value is not valid. + */ + public String getItem(int index) + { + return((String) items.elementAt(index)); + } + + /** + * Returns the number of visible rows in the list. + * + * @return The number of visible rows in the list. + */ + public int getRows() + { + return(rows); + } + + /** + * Tests whether or not multi-select mode is enabled. + * + * @return true if multi-select mode is enabled, + * false otherwise. + * + * @since 1.1 + */ + public boolean isMultipleMode() + { + return allowsMultipleSelections (); + } + + /** + * Tests whether or not multi-select mode is enabled. + * + * @return true if multi-select mode is enabled, + * false otherwise. + * + * @deprecated This method is deprecated in favor of + * isMultipleMode(). + */ + public boolean allowsMultipleSelections() + { + return multipleMode; + } + + /** + * This method enables or disables multiple selection mode for this + * list. + * + * @param multipleMode true to enable multiple mode, + * false otherwise. + * + * @since 1.1 + */ + public void setMultipleMode(boolean multipleMode) + { + setMultipleSelections (multipleMode); + } + + /** + * This method enables or disables multiple selection mode for this + * list. + * + * @param multipleMode true to enable multiple mode, + * false otherwise. + * + * @deprecated + */ + public void setMultipleSelections(boolean multipleMode) + { + this.multipleMode = multipleMode; + + ListPeer peer = (ListPeer) getPeer(); + if (peer != null) + peer.setMultipleMode(multipleMode); + + } + + /** + * Returns the minimum size of this component. + * + * @return The minimum size of this component. + * + * @since 1.1 + */ + public Dimension getMinimumSize() + { + return getMinimumSize(getRows()); + } + + /** + * Returns the minimum size of this component. + * + * @return The minimum size of this component. + * + * @deprecated This method is deprecated in favor of + * getMinimumSize. + */ + public Dimension minimumSize() + { + return minimumSize(getRows()); + } + + /** + * Returns the minimum size of this component assuming it had the specified + * number of rows. + * + * @param rows The number of rows to size for. + * + * @return The minimum size of this component. + * + * @since 1.1 + */ + public Dimension getMinimumSize(int rows) + { + return minimumSize(rows); + } + + /** + * Returns the minimum size of this component assuming it had the specified + * number of rows. + * + * @param rows The number of rows to size for. + * + * @return The minimum size of this component. + * + * @deprecated This method is deprecated in favor of + * getMinimumSize(int)> + */ + public Dimension minimumSize(int rows) + { + ListPeer peer = (ListPeer) getPeer(); + if (peer != null) + return peer.minimumSize(rows); + else + return new Dimension(0, 0); + } + + /** + * Returns the preferred size of this component. + * + * @return The preferred size of this component. + * + * @since 1.1 + */ + public Dimension getPreferredSize() + { + return getPreferredSize(getRows()); + } + + /** + * Returns the preferred size of this component. + * + * @return The preferred size of this component. + * + * @deprecated This method is deprecated in favor of + * getPreferredSize. + */ + public Dimension preferredSize() + { + return preferredSize(getRows()); + } + + /** + * Returns the preferred size of this component assuming it had the specified + * number of rows. + * + * @param rows The number of rows to size for. + * + * @return The preferred size of this component. + * + * @since 1.1 + */ + public Dimension getPreferredSize(int rows) + { + return preferredSize(rows); + } + + /** + * Returns the preferred size of this component assuming it had the specified + * number of rows. + * + * @param rows The number of rows to size for. + * + * @return The preferred size of this component. + * + * @deprecated This method is deprecated in favor of + * getPreferredSize(int)> + */ + public Dimension preferredSize(int rows) + { + ListPeer peer = (ListPeer)getPeer(); + if (peer != null) + return peer.preferredSize(rows); + else + return getSize(); + } + + /** + * This method adds the specified item to the end of the list. + * + * @param item The item to add to the list. + * + * @since 1.1 + */ + public void add(String item) + { + add (item, -1); + } + + /** + * This method adds the specified item to the end of the list. + * + * @param item The item to add to the list. + * + * @deprecated Use add() instead. + */ + public void addItem(String item) + { + addItem(item, -1); + } + + /** + * Adds the specified item to the specified location in the list. + * If the desired index is -1 or greater than the number of rows + * in the list, then the item is added to the end. + * + * @param item The item to add to the list. + * @param index The location in the list to add the item, or -1 to add + * to the end. + * + * @since 1.1 + */ + public void add(String item, int index) + { + addItem(item, index); + } + + /** + * Adds the specified item to the specified location in the list. + * If the desired index is -1 or greater than the number of rows + * in the list, then the item is added to the end. + * + * @param item The item to add to the list. + * @param index The location in the list to add the item, or -1 to add + * to the end. + * + * @deprecated Use add() instead. + */ + public void addItem(String item, int index) + { + if (item == null) + item = ""; + + if (index < -1) + index = -1; + + if ((index == -1) || (index >= items.size ())) + items.addElement (item); + else + items.insertElementAt(item, index); + + ListPeer peer = (ListPeer) getPeer(); + if (peer != null) + peer.add (item, index); + } + + /** + * Deletes the item at the specified index. + * + * @param index The index of the item to delete. + * + * @exception IllegalArgumentException If the index is not valid + * + * @deprecated + */ + public void delItem(int index) throws IllegalArgumentException + { + boolean selected = false; + if (isSelected(index)) + { + selected = true; + deselect(index); + } + + items.removeElementAt (index); + + if (selected) + select(index); + + ListPeer peer = (ListPeer) getPeer(); + if (peer != null) + peer.delItems (index, index); + } + + /** + * Deletes the item at the specified index. + * + * @param index The index of the item to delete. + * + * @exception IllegalArgumentException If the index is not valid + * + * @since 1.1 + */ + public void remove(int index) throws IllegalArgumentException + { + delItem(index); + } + + /** + * Deletes all items in the specified index range. + * + * @param start The beginning index of the range to delete. + * @param end The ending index of the range to delete. + * + * @exception IllegalArgumentException If the indexes are not valid + * + * @deprecated This method is deprecated for some unknown reason. + */ + public synchronized void delItems(int start, int end) + throws IllegalArgumentException + { + // We must run the loop in reverse direction. + for (int i = end; i >= start; --i) + items.removeElementAt (i); + if (peer != null) + { + ListPeer l = (ListPeer) peer; + l.delItems (start, end); + } + } + + /** + * Deletes the first occurrence of the specified item from the list. + * + * @param item The item to delete. + * + * @exception IllegalArgumentException If the specified item does not exist. + * + * @since 1.1 + */ + public synchronized void remove(String item) throws IllegalArgumentException + { + int index = items.indexOf(item); + if (index == -1) + throw new IllegalArgumentException("List element to delete not found"); + + remove(index); + } + + /** + * Deletes all of the items from the list. + * + * @since 1.1 + */ + public synchronized void removeAll() + { + clear(); + } + + /** + * Deletes all of the items from the list. + * + * @deprecated This method is deprecated in favor of removeAll(). + */ + public void clear() + { + items.clear(); + + ListPeer peer = (ListPeer) getPeer(); + if (peer != null) + peer.removeAll(); + + selected = new int[0]; + } + + /** + * Replaces the item at the specified index with the specified item. + * + * @param item The new item value. + * @param index The index of the item to replace. + * + * @exception ArrayIndexOutOfBoundsException If the index is not valid. + */ + public synchronized void replaceItem(String item, int index) + throws ArrayIndexOutOfBoundsException + { + if ((index < 0) || (index >= items.size())) + throw new ArrayIndexOutOfBoundsException("Bad list index: " + index); + + items.insertElementAt(item, index + 1); + items.removeElementAt (index); + + if (peer != null) + { + ListPeer l = (ListPeer) peer; + + /* We add first and then remove so that the selected + item remains the same */ + l.add (item, index + 1); + l.delItems (index, index); + } + } + + /** + * Returns the index of the currently selected item. -1 will be returned + * if there are no selected rows or if there are multiple selected rows. + * + * @return The index of the selected row. + */ + public synchronized int getSelectedIndex() + { + if (peer != null) + { + ListPeer l = (ListPeer) peer; + selected = l.getSelectedIndexes (); + } + + if (selected == null || selected.length != 1) + return -1; + + return selected[0]; + } + + /** + * Returns an array containing the indexes of the rows that are + * currently selected. + * + * @return A list of indexes of selected rows. + */ + public synchronized int[] getSelectedIndexes() + { + if (peer != null) + { + ListPeer l = (ListPeer) peer; + selected = l.getSelectedIndexes(); + } + + return selected; + } + + /** + * Returns the item that is currently selected, or null if there + * is no item selected. FIXME: What happens if multiple items selected? + * + * @return The selected item, or null if there is no + * selected item. + */ + public synchronized String getSelectedItem() + { + int index = getSelectedIndex(); + if (index == -1) + return(null); + + return((String) items.elementAt(index)); + } + + /** + * Returns the list of items that are currently selected in this list. + * + * @return The list of currently selected items. + */ + public synchronized String[] getSelectedItems() + { + int[] indexes = getSelectedIndexes(); + if (indexes == null) + return(new String[0]); + + String[] retvals = new String[indexes.length]; + if (retvals.length > 0) + for (int i = 0 ; i < retvals.length; i++) + retvals[i] = (String)items.elementAt(indexes[i]); + + return(retvals); + } + + /** + * Returns the list of items that are currently selected in this list as + * an array of type Object[] instead of String[]. + * + * @return The list of currently selected items. + */ + public synchronized Object[] getSelectedObjects() + { + int[] indexes = getSelectedIndexes(); + if (indexes == null) + return(new Object[0]); + + Object[] retvals = new Object[indexes.length]; + if (retvals.length > 0) + for (int i = 0 ; i < retvals.length; i++) + retvals[i] = items.elementAt(indexes[i]); + + return(retvals); + } + + /** + * Tests whether or not the specified index is selected. + * + * @param index The index to test. + * + * @return true if the index is selected, false + * otherwise. + * + * @since 1.1 + */ + public boolean isIndexSelected(int index) + { + return isSelected(index); + } + + /** + * Tests whether or not the specified index is selected. + * + * @param index The index to test. + * + * @return true if the index is selected, false + * otherwise. + * + * @deprecated This method is deprecated in favor of + * isIndexSelected(int). + */ + public boolean isSelected(int index) + { + int[] indexes = getSelectedIndexes(); + + for (int i = 0; i < indexes.length; i++) + if (indexes[i] == index) + return true; + + return false; + } + + /** + * This method ensures that the item at the specified index is visible. + * + * @param index The index of the item to be made visible. + */ + public synchronized void makeVisible(int index) + throws IllegalArgumentException + { + visibleIndex = index; + if (peer != null) + { + ListPeer l = (ListPeer) peer; + l.makeVisible (index); + } + } + + /** + * Returns the index of the last item that was made visible via the + * makeVisible() method. + * + * @return The index of the last item made visible via the + * makeVisible() method. + */ + public int getVisibleIndex() + { + return visibleIndex; + } + + /** + * Makes the item at the specified index selected. + * + * @param index The index of the item to select. + */ + public synchronized void select(int index) + { + ListPeer lp = (ListPeer) getPeer(); + if (lp != null) + lp.select(index); + + if (selected != null) + { + boolean found = false; + for (int i = 0; i < selected.length; i++) + { + if (selected[i] == index) + found = true; + } + if (! found) + { + if (! isMultipleMode()) + { + selected = new int[] { index }; + return; + } + int[] temp = new int[selected.length + 1]; + System.arraycopy(selected, 0, temp, 0, selected.length); + temp[selected.length] = index; + selected = temp; + } + } + else + { + selected = new int[1]; + selected[0] = index; + } + } + + /** + * Makes the item at the specified index not selected. + * + * @param index The index of the item to unselect. + */ + public synchronized void deselect(int index) + { + if (isSelected(index)) + { + ListPeer lp = (ListPeer)getPeer(); + if (lp != null) + lp.deselect(index); + + int[] temp = new int[selected.length - 1]; + for (int i = 0; i < temp.length; i++) + { + if (selected[i] != index) + temp[i] = selected[i]; + else + { + System.arraycopy(selected, i + 1, temp, i, + selected.length - i - 1); + break; + } + } + selected = temp; + } + } + + /** + * Notifies this object to create its native peer. + */ + public void addNotify() + { + if (peer == null) + peer = getToolkit ().createList(this); + super.addNotify (); + } + + /** + * Notifies this object to destroy its native peer. + */ + public void removeNotify() + { + super.removeNotify(); + } + + /** + * Adds the specified ActionListener to the list of + * registered listeners for this object. + * + * @param listener The listener to add. + * + * @since 1.1 + */ + public synchronized void addActionListener(ActionListener listener) + { + action_listeners = AWTEventMulticaster.add(action_listeners, listener); + } + + /** + * Removes the specified ActionListener from the list of + * registers listeners for this object. + * + * @param listener The listener to remove. + * + * @since 1.1 + */ + public synchronized void removeActionListener(ActionListener listener) + { + action_listeners = AWTEventMulticaster.remove(action_listeners, listener); + } + + /** + * Adds the specified ItemListener to the list of + * registered listeners for this object. + * + * @param listener The listener to add. + * + * @since 1.1 + */ + public synchronized void addItemListener(ItemListener listener) + { + item_listeners = AWTEventMulticaster.add(item_listeners, listener); + } + + /** + * Removes the specified ItemListener from the list of + * registers listeners for this object. + * + * @param listener The listener to remove. + * + * @since 1.1 + */ + public synchronized void removeItemListener(ItemListener listener) + { + item_listeners = AWTEventMulticaster.remove(item_listeners, listener); + } + + /** + * Processes the specified event for this object. If the event is an + * instance of ActionEvent then the + * processActionEvent() method is called. Similarly, if the + * even is an instance of ItemEvent then the + * processItemEvent() method is called. Otherwise the + * superclass method is called to process this event. + * + * @param event The event to process. + * + * @since 1.1 + */ + protected void processEvent(AWTEvent event) + { + if (event instanceof ActionEvent) + processActionEvent((ActionEvent)event); + else if (event instanceof ItemEvent) + processItemEvent((ItemEvent)event); + else + super.processEvent(event); + } + + /** + * This method processes the specified event by dispatching it to any + * registered listeners. Note that this method will only get called if + * action events are enabled. This will happen automatically if any + * listeners are added, or it can be done "manually" by calling + * the enableEvents() method. + * + * @param event The event to process. + * + * @since 1.1 + */ + protected void processActionEvent(ActionEvent event) + { + if (action_listeners != null) + action_listeners.actionPerformed(event); + } + + /** + * This method processes the specified event by dispatching it to any + * registered listeners. Note that this method will only get called if + * item events are enabled. This will happen automatically if any + * listeners are added, or it can be done "manually" by calling + * the enableEvents() method. + * + * @param event The event to process. + * + * @since 1.1 + */ + protected void processItemEvent(ItemEvent event) + { + if (item_listeners != null) + item_listeners.itemStateChanged(event); + } + + void dispatchEventImpl(AWTEvent e) + { + if (e.id <= ItemEvent.ITEM_LAST + && e.id >= ItemEvent.ITEM_FIRST + && (item_listeners != null + || (eventMask & AWTEvent.ITEM_EVENT_MASK) != 0)) + processEvent(e); + else if (e.id <= ActionEvent.ACTION_LAST + && e.id >= ActionEvent.ACTION_FIRST + && (action_listeners != null + || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0)) + processEvent(e); + else + super.dispatchEventImpl(e); + } + + /** + * Returns a debugging string for this object. + * + * @return A debugging string for this object. + */ + protected String paramString() + { + return "multiple=" + multipleMode + ",rows=" + rows + super.paramString(); + } + + /** + * Returns an array of all the objects currently registered as FooListeners + * upon this List. FooListeners are registered using the + * addFooListener method. + * + * @exception ClassCastException If listenerType doesn't specify a class or + * interface that implements java.util.EventListener. + * + * @since 1.3 + */ + public T[] getListeners (Class listenerType) + { + if (listenerType == ActionListener.class) + return AWTEventMulticaster.getListeners (action_listeners, listenerType); + + if (listenerType == ItemListener.class) + return AWTEventMulticaster.getListeners (item_listeners, listenerType); + + return super.getListeners (listenerType); + } + + /** + * Returns all action listeners registered to this object. + * + * @since 1.4 + */ + public ActionListener[] getActionListeners () + { + return (ActionListener[]) getListeners (ActionListener.class); + } + + /** + * Returns all action listeners registered to this object. + * + * @since 1.4 + */ + public ItemListener[] getItemListeners () + { + return (ItemListener[]) getListeners (ItemListener.class); + } + + // Accessibility internal class + protected class AccessibleAWTList extends AccessibleAWTComponent + implements AccessibleSelection, ItemListener, ActionListener + { + private static final long serialVersionUID = 7924617370136012829L; + + protected class AccessibleAWTListChild extends AccessibleAWTComponent + implements Accessible + { + private static final long serialVersionUID = 4412022926028300317L; + + // Field names are fixed by serialization spec. + private List parent; + private int indexInParent; + + public AccessibleAWTListChild(List parent, int indexInParent) + { + this.parent = parent; + this.indexInParent = indexInParent; + if (parent == null) + this.indexInParent = -1; + } + + /* (non-Javadoc) + * @see javax.accessibility.Accessible#getAccessibleContext() + */ + public AccessibleContext getAccessibleContext() + { + return this; + } + + public AccessibleRole getAccessibleRole() + { + return AccessibleRole.LIST_ITEM; + } + + public AccessibleStateSet getAccessibleStateSet() + { + AccessibleStateSet states = super.getAccessibleStateSet(); + if (parent.isIndexSelected(indexInParent)) + states.add(AccessibleState.SELECTED); + return states; + } + + public int getAccessibleIndexInParent() + { + return indexInParent; + } + + } + + public AccessibleAWTList() + { + addItemListener(this); + addActionListener(this); + } + + public AccessibleRole getAccessibleRole() + { + return AccessibleRole.LIST; + } + + public AccessibleStateSet getAccessibleStateSet() + { + AccessibleStateSet states = super.getAccessibleStateSet(); + states.add(AccessibleState.SELECTABLE); + if (isMultipleMode()) + states.add(AccessibleState.MULTISELECTABLE); + return states; + } + + public int getAccessibleChildrenCount() + { + return getItemCount(); + } + + public Accessible getAccessibleChild(int i) + { + if (i >= getItemCount()) + return null; + return new AccessibleAWTListChild(List.this, i); + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#getAccessibleSelectionCount() + */ + public int getAccessibleSelectionCount() + { + return getSelectedIndexes().length; + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#getAccessibleSelection() + */ + public AccessibleSelection getAccessibleSelection() + { + return this; + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#getAccessibleSelection(int) + */ + public Accessible getAccessibleSelection(int i) + { + int[] items = getSelectedIndexes(); + if (i >= items.length) + return null; + return new AccessibleAWTListChild(List.this, items[i]); + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#isAccessibleChildSelected(int) + */ + public boolean isAccessibleChildSelected(int i) + { + return isIndexSelected(i); + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#addAccessibleSelection(int) + */ + public void addAccessibleSelection(int i) + { + select(i); + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#removeAccessibleSelection(int) + */ + public void removeAccessibleSelection(int i) + { + deselect(i); + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#clearAccessibleSelection() + */ + public void clearAccessibleSelection() + { + for (int i = 0; i < getItemCount(); i++) + deselect(i); + } + + /* (non-Javadoc) + * @see javax.accessibility.AccessibleSelection#selectAllAccessibleSelection() + */ + public void selectAllAccessibleSelection() + { + if (isMultipleMode()) + for (int i = 0; i < getItemCount(); i++) + select(i); + } + + /* (non-Javadoc) + * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent) + */ + public void itemStateChanged(ItemEvent event) + { + } + + /* (non-Javadoc) + * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) + */ + public void actionPerformed(ActionEvent event) + { + } + + } + + /** + * Gets the AccessibleContext associated with this List. + * The context is created, if necessary. + * + * @return the associated context + */ + public AccessibleContext getAccessibleContext() + { + /* Create the context if this is the first request */ + if (accessibleContext == null) + accessibleContext = new AccessibleAWTList(); + return accessibleContext; + } + + /** + * Generate a unique name for this List. + * + * @return A unique name for this List. + */ + String generateName() + { + return "list" + getUniqueLong(); + } + + private static synchronized long getUniqueLong() + { + return next_list_number++; + } +} // class List diff --git a/libjava/classpath/java/awt/Menu.java b/libjava/classpath/java/awt/Menu.java dissimilarity index 70% index f900d929574..cef04a38e1a 100644 --- a/libjava/classpath/java/awt/Menu.java +++ b/libjava/classpath/java/awt/Menu.java @@ -1,509 +1,444 @@ -/* Menu.java -- A Java AWT Menu - Copyright (C) 1999, 2002, 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.awt; - -import java.awt.peer.MenuPeer; -import java.io.Serializable; -import java.util.Enumeration; -import java.util.Vector; - -import javax.accessibility.AccessibleContext; -import javax.accessibility.AccessibleRole; - -/** - * This class represents a pull down or tear off menu in Java's AWT. - * - * @author Aaron M. Renn (arenn@urbanophile.com) - */ -public class Menu extends MenuItem implements MenuContainer, Serializable -{ - -/* - * Static Variables - */ - -/** - * The number used to generate the name returned by getName. - */ -private static transient long next_menu_number; - -// Serialization Constant -private static final long serialVersionUID = -8809584163345499784L; - -/*************************************************************************/ - -/* - * Instance Variables - */ - -/** - * @serial The actual items in the menu - */ -private Vector items = new Vector(); - -/** - * @serial Flag indicating whether or not this menu is a tear off - */ -private boolean tearOff; - -/** - * @serial Indicates whether or not this is a help menu. - */ -private boolean isHelpMenu; - - /* - * @serial Unused in this implementation, but present in Sun's - * serialization spec. Value obtained via reflection. - */ - private int menuSerializedDataVersion = 1; - -static final transient String separatorLabel = "-"; - -/*************************************************************************/ - -/* - * Constructors - */ - -/** - * Initializes a new instance of Menu with no label and that - * is not a tearoff; - * - * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. - */ -public -Menu() -{ -} - -/*************************************************************************/ - -/** - * Initializes a new instance of Menu that is not a tearoff and - * that has the specified label. - * - * @param label The menu label. - * - * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. - */ -public -Menu(String label) -{ - this(label, false); -} - -/*************************************************************************/ - -/** - * Initializes a new instance of Menu with the specified - * label and tearoff status. - * - * @param label The label for this menu - * @param isTearOff true if this menu is a tear off menu, - * false otherwise. - * - * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. - */ -public -Menu(String label, boolean isTearOff) -{ - super(label); - - tearOff = isTearOff; - - if (label.equals("Help")) - isHelpMenu = true; - - if (GraphicsEnvironment.isHeadless()) - throw new HeadlessException (); -} - -/*************************************************************************/ - -/* - * Instance Methods - */ - -/** - * Tests whether or not this menu is a tearoff. - * - * @return true if this menu is a tearoff, false - * otherwise. - */ -public boolean -isTearOff() -{ - return(tearOff); -} - -/*************************************************************************/ - -/** - * Returns the number of items in this menu. - * - * @return The number of items in this menu. - */ -public int -getItemCount() -{ - return countItems (); -} - -/** - * Returns the number of items in this menu. - * - * @return The number of items in this menu. - * - * @deprecated As of JDK 1.1, replaced by getItemCount(). - */ -public int countItems () -{ - return items.size (); -} - -/*************************************************************************/ - -/** - * Returns the item at the specified index. - * - * @return The item at the specified index. - * - * @exception ArrayIndexOutOfBoundsException If the index value is not valid. - */ -public MenuItem -getItem(int index) -{ - return((MenuItem)items.elementAt(index)); -} - -/*************************************************************************/ - -/** - * Adds the specified item to this menu. If it was previously part of - * another menu, it is first removed from that menu. - * - * @param item The new item to add. - * - * @return The item that was added. - */ -public MenuItem -add(MenuItem item) -{ - MenuContainer parent = item.getParent(); - if (parent != null) - parent.remove(item); - - items.addElement(item); - item.setParent(this); - - if (peer != null) - { - item.addNotify(); - MenuPeer mp = (MenuPeer) peer; - mp.addItem(item); - } - - return item; -} - -/*************************************************************************/ - -/** - * Add an item with the specified label to this menu. - * - * @param label The label of the menu item to add. - */ -public void -add(String label) -{ - add(new MenuItem(label)); -} - -/*************************************************************************/ - -/** - * Inserts the specified menu item into this menu at the specified index. - * - * @param item The menu item to add. - * @param index The index of the menu item. - * - * @exception IllegalArgumentException If the index is less than zero. - * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. - */ -public void -insert(MenuItem item, int index) -{ - if (index < 0) - throw new IllegalArgumentException("Index is less than zero"); - - int count = getItemCount (); - - if (index >= count) - add(item); - else - { - MenuContainer parent = item.getParent(); - if (parent != null) - parent.remove(item); - - items.insertElementAt(item, index); - item.setParent(this); - - MenuPeer peer = (MenuPeer) getPeer(); - if (peer == null) - return; - - for (int i = count - 1; i >= index; i--) - peer.delItem(i); - - item.addNotify(); - peer.addItem(item); - - for (int i = index; i < count; i++) - peer.addItem((MenuItem) items.elementAt (i)); - } - -} - -/*************************************************************************/ - -/** - * Inserts an item with the specified label into this menu at the specified index. - * - * @param label The label of the item to add. - * @param index The index of the menu item. - * - * @exception IllegalArgumentException If the index is less than zero. - * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. - */ -public void -insert(String label, int index) -{ - insert(new MenuItem(label), index); -} - -/*************************************************************************/ - -/** - * Adds a separator bar at the current menu location. - */ -public void -addSeparator() -{ - add(new MenuItem(separatorLabel)); -} - -/*************************************************************************/ - -/** - * Inserts a separator bar at the specified index value. - * - * @param index The index at which to insert a separator bar. - * - * @exception IllegalArgumentException If the index is less than zero. - * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. - */ -public void -insertSeparator(int index) -{ - insert(new MenuItem(separatorLabel), index); -} - -/*************************************************************************/ - -/** - * Deletes the item at the specified index from this menu. - * - * @param index The index of the item to remove. - * - * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. - */ -public synchronized void -remove(int index) -{ - MenuItem item = (MenuItem) items.remove(index); - - MenuPeer mp = (MenuPeer) getPeer(); - if (mp != null) - { - mp.delItem(index); - item.removeNotify(); - } - item.setParent(null); -} - -/*************************************************************************/ - -/** - * Removes the specifed item from the menu. If the specified component - * does not exist, this method does nothing. - * - * @param item The component to remove. - */ -public void -remove(MenuComponent item) -{ - int index = items.indexOf(item); - if (index == -1) - return; - - remove(index); -} - -/*************************************************************************/ - -/** - * Removes all the elements from this menu. - */ -public synchronized void -removeAll() -{ - int count = getItemCount(); - for(int i = 0; i < count; i++) - { - // We must always remove item 0. - remove(0); - } -} - -/*************************************************************************/ - -/** - * Creates the native peer for this object. - */ -public void -addNotify() -{ - MenuPeer peer = (MenuPeer) getPeer(); - if (peer == null) - { - peer = getToolkit().createMenu(this); - setPeer(peer); - } - - Enumeration e = items.elements(); - while (e.hasMoreElements()) - { - MenuItem mi = (MenuItem)e.nextElement(); - mi.addNotify(); - peer.addItem(mi); - } - - super.addNotify (); -} - -/*************************************************************************/ - -/** - * Destroys the native peer for this object. - */ -public void -removeNotify() -{ - Enumeration e = items.elements(); - while (e.hasMoreElements()) - { - MenuItem mi = (MenuItem) e.nextElement(); - mi.removeNotify(); - } - super.removeNotify(); -} - -/*************************************************************************/ - -/** - * Returns a debugging string for this menu. - * - * @return A debugging string for this menu. - */ -public String -paramString() -{ - return (",tearOff=" + tearOff + ",isHelpMenu=" + isHelpMenu - + super.paramString()); -} - - /** - * Basic Accessibility class for Menu. Details get provided in derived - * classes. - */ - protected class AccessibleAWTMenu extends AccessibleAWTMenuItem - { - private static final long serialVersionUID = 5228160894980069094L; - - protected AccessibleAWTMenu() - { - } - - public AccessibleRole getAccessibleRole() - { - return AccessibleRole.MENU; - } - } - - /** - * Gets the AccessibleContext associated with this Menu. - * The context is created, if necessary. - * - * @return the associated context - */ - public AccessibleContext getAccessibleContext() - { - /* Create the context if this is the first request */ - if (accessibleContext == null) - accessibleContext = new AccessibleAWTMenu(); - return accessibleContext; - } - - /** - * Generate a unique name for this Menu. - * - * @return A unique name for this Menu. - */ - String generateName() - { - return "menu" + getUniqueLong(); - } - - private static synchronized long getUniqueLong() - { - return next_menu_number++; - } - -} // class Menu +/* Menu.java -- A Java AWT Menu + Copyright (C) 1999, 2002, 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.awt; + +import java.awt.peer.MenuPeer; +import java.io.Serializable; +import java.util.Enumeration; +import java.util.Vector; + +import javax.accessibility.AccessibleContext; +import javax.accessibility.AccessibleRole; + +/** + * This class represents a pull down or tear off menu in Java's AWT. + * + * @author Aaron M. Renn (arenn@urbanophile.com) + */ +public class Menu extends MenuItem implements MenuContainer, Serializable +{ + + /** + * The number used to generate the name returned by getName. + */ + private static transient long next_menu_number; + + // Serialization Constant + private static final long serialVersionUID = -8809584163345499784L; + + /** + * @serial The actual items in the menu + */ + private Vector items = new Vector(); + + /** + * @serial Flag indicating whether or not this menu is a tear off + */ + private boolean tearOff; + + /** + * @serial Indicates whether or not this is a help menu. + */ + private boolean isHelpMenu; + + /* + * @serial Unused in this implementation, but present in Sun's + * serialization spec. Value obtained via reflection. + */ + private int menuSerializedDataVersion = 1; + + static final transient String separatorLabel = "-"; + + /** + * Initializes a new instance of Menu with no label and that + * is not a tearoff; + * + * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. + */ + public Menu() + { + } + + /** + * Initializes a new instance of Menu that is not a tearoff and + * that has the specified label. + * + * @param label The menu label. + * + * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. + */ + public Menu(String label) + { + this(label, false); + } + + /** + * Initializes a new instance of Menu with the specified + * label and tearoff status. + * + * @param label The label for this menu + * @param isTearOff true if this menu is a tear off menu, + * false otherwise. + * + * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. + */ + public Menu(String label, boolean isTearOff) + { + super(label); + + tearOff = isTearOff; + + if (label.equals("Help")) + isHelpMenu = true; + + if (GraphicsEnvironment.isHeadless()) + throw new HeadlessException(); + } + + /** + * Tests whether or not this menu is a tearoff. + * + * @return true if this menu is a tearoff, false + * otherwise. + */ + public boolean isTearOff() + { + return(tearOff); + } + + /** + * Returns the number of items in this menu. + * + * @return The number of items in this menu. + */ + public int getItemCount() + { + return countItems(); + } + + /** + * Returns the number of items in this menu. + * + * @return The number of items in this menu. + * + * @deprecated As of JDK 1.1, replaced by getItemCount(). + */ + public int countItems() + { + return items.size(); + } + + /** + * Returns the item at the specified index. + * + * @param index the item index. + * + * @return The item at the specified index. + * + * @exception ArrayIndexOutOfBoundsException If the index value is not valid. + */ + public MenuItem getItem(int index) + { + return((MenuItem) items.elementAt(index)); + } + + /** + * Adds the specified item to this menu. If it was previously part of + * another menu, it is first removed from that menu. + * + * @param item The new item to add. + * + * @return The item that was added. + */ + public MenuItem add(MenuItem item) + { + MenuContainer parent = item.getParent(); + if (parent != null) + parent.remove(item); + + items.addElement(item); + item.setParent(this); + + if (peer != null) + { + item.addNotify(); + MenuPeer mp = (MenuPeer) peer; + mp.addItem(item); + } + + return item; + } + + /** + * Add an item with the specified label to this menu. + * + * @param label The label of the menu item to add. + */ + public void add(String label) + { + add(new MenuItem(label)); + } + + /** + * Inserts the specified menu item into this menu at the specified index. If + * the index is greater than or equal to the number of items already in the + * menu, the new item is added as the last item in the menu. + * + * @param item The menu item to add (null not permitted). + * @param index The index of the menu item (>= 0). + * + * @throws IllegalArgumentException if the index is less than zero. + * @throws NullPointerException if item is null. + */ + public void insert(MenuItem item, int index) + { + if (index < 0) + throw new IllegalArgumentException("Index is less than zero"); + + int count = getItemCount(); + + if (index >= count) + add(item); + else + { + MenuContainer parent = item.getParent(); + if (parent != null) + parent.remove(item); + + items.insertElementAt(item, index); + item.setParent(this); + + MenuPeer peer = (MenuPeer) getPeer(); + if (peer == null) + return; + + for (int i = count - 1; i >= index; i--) + peer.delItem(i); + + item.addNotify(); + peer.addItem(item); + + // bear in mind that count is the number of items *before* the new + // item was added + for (int i = index + 1; i <= count; i++) + peer.addItem((MenuItem) items.elementAt(i)); + } + + } + + /** + * Inserts an item with the specified label into this menu at the specified + * index. If the index is greater than or equal to the number of items + * already in the menu, the new item is added as the last item in the menu. + * + * @param label The label of the item to add. + * @param index The index of the menu item (>= 0). + * + * @throws IllegalArgumentException If the index is less than zero. + */ + public void insert(String label, int index) + { + insert(new MenuItem(label), index); + } + + /** + * Adds a separator bar at the current menu location. + */ + public void addSeparator() + { + add(new MenuItem(separatorLabel)); + } + + /** + * Inserts a separator bar at the specified index value. + * + * @param index The index at which to insert a separator bar. + * + * @exception IllegalArgumentException If the index is less than zero. + * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. + */ + public void insertSeparator(int index) + { + insert(new MenuItem(separatorLabel), index); + } + + /** + * Deletes the item at the specified index from this menu. + * + * @param index The index of the item to remove. + * + * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid. + */ + public synchronized void remove(int index) + { + MenuItem item = (MenuItem) items.remove(index); + + MenuPeer mp = (MenuPeer) getPeer(); + if (mp != null) + { + mp.delItem(index); + item.removeNotify(); + } + item.setParent(null); + } + + /** + * Removes the specifed item from the menu. If the specified component + * does not exist, this method does nothing. + * + * @param item The component to remove. + */ + public void remove(MenuComponent item) + { + int index = items.indexOf(item); + if (index == -1) + return; + + remove(index); + } + + /** + * Removes all the elements from this menu. + */ + public synchronized void removeAll() + { + int count = getItemCount(); + for(int i = 0; i < count; i++) + { + // We must always remove item 0. + remove(0); + } + } + + /** + * Creates the native peer for this object. + */ + public void addNotify() + { + MenuPeer peer = (MenuPeer) getPeer(); + if (peer == null) + { + peer = getToolkit().createMenu(this); + setPeer(peer); + } + + Enumeration e = items.elements(); + while (e.hasMoreElements()) + { + MenuItem mi = (MenuItem)e.nextElement(); + mi.addNotify(); + peer.addItem(mi); + } + + super.addNotify(); + } + + /** + * Destroys the native peer for this object. + */ + public void removeNotify() + { + Enumeration e = items.elements(); + while (e.hasMoreElements()) + { + MenuItem mi = (MenuItem) e.nextElement(); + mi.removeNotify(); + } + super.removeNotify(); + } + + /** + * Returns a debugging string for this menu. + * + * @return A debugging string for this menu. + */ + public String paramString() + { + return (",tearOff=" + tearOff + ",isHelpMenu=" + isHelpMenu + + super.paramString()); + } + + /** + * Basic Accessibility class for Menu. Details get provided in derived + * classes. + */ + protected class AccessibleAWTMenu extends AccessibleAWTMenuItem + { + private static final long serialVersionUID = 5228160894980069094L; + + protected AccessibleAWTMenu() + { + } + + public AccessibleRole getAccessibleRole() + { + return AccessibleRole.MENU; + } + } + + /** + * Gets the AccessibleContext associated with this Menu. + * The context is created, if necessary. + * + * @return the associated context + */ + public AccessibleContext getAccessibleContext() + { + /* Create the context if this is the first request */ + if (accessibleContext == null) + accessibleContext = new AccessibleAWTMenu(); + return accessibleContext; + } + + /** + * Generate a unique name for this Menu. + * + * @return A unique name for this Menu. + */ + String generateName() + { + return "menu" + getUniqueLong(); + } + + private static synchronized long getUniqueLong() + { + return next_menu_number++; + } + +} // class Menu diff --git a/libjava/classpath/java/awt/MenuBar.java b/libjava/classpath/java/awt/MenuBar.java index bd658cde6e3..6737d0419f2 100644 --- a/libjava/classpath/java/awt/MenuBar.java +++ b/libjava/classpath/java/awt/MenuBar.java @@ -272,7 +272,7 @@ public class MenuBar extends MenuComponent * * @return a list of all shortcuts for the menus in this menu bar */ - public synchronized Enumeration shortcuts() + public synchronized Enumeration shortcuts() { Vector shortcuts = new Vector(); Enumeration e = menus.elements(); diff --git a/libjava/classpath/java/awt/MenuItem.java b/libjava/classpath/java/awt/MenuItem.java index 7cbc9219f54..b80ee4c1a5e 100644 --- a/libjava/classpath/java/awt/MenuItem.java +++ b/libjava/classpath/java/awt/MenuItem.java @@ -523,11 +523,11 @@ removeActionListener(ActionListener l) * ClassClassException is thrown. * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == ActionListener.class) - return getActionListeners(); - return (EventListener[]) Array.newInstance(listenerType, 0); + return (T[]) getActionListeners(); + return (T[]) Array.newInstance(listenerType, 0); } /*************************************************************************/ diff --git a/libjava/classpath/java/awt/MenuShortcut.java b/libjava/classpath/java/awt/MenuShortcut.java index adfd1d3187a..259cbf1ae98 100644 --- a/libjava/classpath/java/awt/MenuShortcut.java +++ b/libjava/classpath/java/awt/MenuShortcut.java @@ -38,6 +38,8 @@ exception statement from your version. */ package java.awt; +import java.awt.event.KeyEvent; + /** * This class implements a keyboard accelerator for a menu item. * @@ -70,6 +72,8 @@ private int key; */ private boolean usesShift; +private String keyName; + /*************************************************************************/ /** @@ -99,6 +103,7 @@ MenuShortcut(int key, boolean usesShift) { this.key = key; this.usesShift = usesShift; + setKeyName(key); } /*************************************************************************/ @@ -181,7 +186,11 @@ equals(Object obj) public String toString() { - return(getClass().getName() + "[" + paramString () + "]"); + String temp = "Ctrl+"; + if (usesShift) + temp = temp + "Shift+"; + temp = temp + keyName; + return temp; } public int @@ -204,4 +213,224 @@ paramString() return "key=" + key + ",usesShift=" + usesShift; } -} // class MenuShortcut +private void +setKeyName(int key) +{ + if (key == '\n') + keyName = "Enter"; + else if (key == '\b') + keyName = "Backspace"; + else if (key == '\t') + keyName = "Tab"; + else if (key == ' ') + keyName = "Space"; + else if (key == ',') + keyName = "Comma"; + else if (key == '.') + keyName = "Period"; + else if (key == '/') + keyName = "Slash"; + else if (key == '\\') + keyName = "Back Slash"; + else if (key == ';') + keyName = "Semicolon"; + else if (key == '=') + keyName = "Equals"; + else if (key == '[') + keyName = "Open Bracket"; + else if (key == ']') + keyName = "Close Bracket"; + else if (key == '0') + keyName = "0"; + else if (key == '1') + keyName = "1"; + else if (key == '2') + keyName = "2"; + else if (key == '3') + keyName = "3"; + else if (key == '4') + keyName = "4"; + else if (key == '5') + keyName = "5"; + else if (key == '6') + keyName = "6"; + else if (key == '7') + keyName = "7"; + else if (key == '8') + keyName = "8"; + else if (key == '9') + keyName = "9"; + else if (key == 'A') + keyName = "A"; + else if (key == 'B') + keyName = "B"; + else if (key == 'C') + keyName = "C"; + else if (key == 'D') + keyName = "D"; + else if (key == 'E') + keyName = "E"; + else if (key == 'F') + keyName = "F"; + else if (key == 'G') + keyName = "G"; + else if (key == 'H') + keyName = "H"; + else if (key == 'I') + keyName = "I"; + else if (key == 'J') + keyName = "J"; + else if (key == 'K') + keyName = "K"; + else if (key == 'L') + keyName = "L"; + else if (key == 'M') + keyName = "M"; + else if (key == 'N') + keyName = "N"; + else if (key == 'O') + keyName = "O"; + else if (key == 'P') + keyName = "P"; + else if (key == 'Q') + keyName = "Q"; + else if (key == 'R') + keyName = "R"; + else if (key == 'S') + keyName = "S"; + else if (key == 'T') + keyName = "T"; + else if (key == 'U') + keyName = "U"; + else if (key == 'V') + keyName = "V"; + else if (key == 'W') + keyName = "W"; + else if (key == 'X') + keyName = "X"; + else if (key == 'Y') + keyName = "Y"; + else if (key == 'Z') + keyName = "Z"; + else if (key == 3) + keyName = "Cancel"; + else if (key == 12) + keyName = "Clear"; + else if (key == 16) + keyName = "Shift"; + else if (key == 17) + keyName = "Ctrl"; + else if (key == 18) + keyName = "Alt"; + else if (key == 19) + keyName = "Pause"; + else if (key == 20) + keyName = "Caps Lock"; + else if (key == 21) + keyName = "Kana"; + else if (key == 24) + keyName = "Final"; + else if (key == 25) + keyName = "Kanji"; + else if (key == 27) + keyName = "Escape"; + else if (key == 28) + keyName = "Convert"; + else if (key == 29) + keyName = "No Convert"; + else if (key == 30) + keyName = "Accept"; + else if (key == 31) + keyName = "Mode Change"; + else if (key == 33) + keyName = "Page Up"; + else if (key == 34) + keyName = "Page Down"; + else if (key == 35) + keyName = "End"; + else if (key == 36) + keyName = "Home"; + else if (key == 37) + keyName = "Left"; + else if (key == 38) + keyName = "Up"; + else if (key == 39) + keyName = "Right"; + else if (key == 40) + keyName = "Down"; + else if (key == 96) + keyName = "NumPad-0"; + else if (key == 97) + keyName = "NumPad-1"; + else if (key == 98) + keyName = "NumPad-2"; + else if (key == 99) + keyName = "NumPad-3"; + else if (key == 100) + keyName = "NumPad-4"; + else if (key == 101) + keyName = "NumPad-5"; + else if (key == 102) + keyName = "NumPad-6"; + else if (key == 103) + keyName = "NumPad-7"; + else if (key == 104) + keyName = "NumPad-8"; + else if (key == 105) + keyName = "NumPad-9"; + else if (key == 106) + keyName = "NumPad *"; + else if (key == 107) + keyName = "NumPad +"; + else if (key == 108) + keyName = "NumPad ,"; + else if (key == 109) + keyName = "NumPad -"; + else if (key == 110) + keyName = "NumPad ."; + else if (key == 111) + keyName = "NumPad /"; + else if (key == 112) + keyName = "F1"; + else if (key == 113) + keyName = "F2"; + else if (key == 114) + keyName = "F3"; + else if (key == 115) + keyName = "F4"; + else if (key == 116) + keyName = "F5"; + else if (key == 117) + keyName = "F6"; + else if (key == 118) + keyName = "F7"; + else if (key == 119) + keyName = "F8"; + else if (key == 120) + keyName = "F9"; + else if (key == 121) + keyName = "F10"; + else if (key == 122) + keyName = "F11"; + else if (key == 123) + keyName = "F12"; + else if (key == 127) + keyName = "Delete"; + else if (key == 144) + keyName = "Num Lock"; + else if (key == 145) + keyName = "Scroll Lock"; + else if (key == 154) + keyName = "Print Screen"; + else if (key == 155) + keyName = "Insert"; + else if (key == 156) + keyName = "Help"; + else if (key == 157) + keyName = "Meta"; + else if (key == 192) + keyName = "Back Quote"; + else if (key == 222) + keyName = "Quote"; +} +} // class MenuShortcut diff --git a/libjava/classpath/java/awt/Rectangle.java b/libjava/classpath/java/awt/Rectangle.java index c4ba6ba1488..ac2494ee078 100644 --- a/libjava/classpath/java/awt/Rectangle.java +++ b/libjava/classpath/java/awt/Rectangle.java @@ -1,5 +1,5 @@ /* Rectangle.java -- represents a graphics rectangle - Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation + Copyright (C) 1999, 2000, 2001, 2002, 2006, Free Software Foundation This file is part of GNU Classpath. @@ -119,7 +119,6 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable * coordinates of the specified rectangle. * * @param r the rectangle to copy from - * @throws NullPointerException if r is null * @since 1.1 */ public Rectangle(Rectangle r) @@ -168,7 +167,6 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable * * @param p the upper left corner of the rectangle * @param d the width and height of the rectangle - * @throws NullPointerException if p or d is null */ public Rectangle(Point p, Dimension d) { @@ -185,7 +183,7 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable * @param p the upper left corner of the rectangle */ public Rectangle(Point p) - { + { x = p.x; y = p.y; } @@ -198,7 +196,7 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable * @param d the width and height of the rectangle */ public Rectangle(Dimension d) - { + { width = d.width; height = d.height; } @@ -299,8 +297,10 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable } /** - * Updates this rectangle to have the specified dimensions, as rounded to - * integers. + * Updates this rectangle to have the specified dimensions, rounded to the + * integer precision used by this class (the values are rounded "outwards" so + * that the stored rectangle completely encloses the specified double + * precision rectangle). * * @param x the new X coordinate of the upper left hand corner * @param y the new Y coordinate of the upper left hand corner @@ -310,10 +310,10 @@ public class Rectangle extends Rectangle2D implements Shape, Serializable */ public void setRect(double x, double y, double width, double height) { - this.x = (int) x; - this.y = (int) y; - this.width = (int) width; - this.height = (int) height; + this.x = (int) Math.floor(x); + this.y = (int) Math.floor(y); + this.width = (int) Math.ceil(x + width) - this.x; + this.height = (int) Math.ceil(y + height) - this.y; } /** diff --git a/libjava/classpath/java/awt/RenderingHints.java b/libjava/classpath/java/awt/RenderingHints.java index 0e1db72b75f..ce327e36947 100644 --- a/libjava/classpath/java/awt/RenderingHints.java +++ b/libjava/classpath/java/awt/RenderingHints.java @@ -54,7 +54,8 @@ import java.util.Set; * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) * @author Eric Blake (ebb9@email.byu.edu) */ -public class RenderingHints implements Map, Cloneable +public class RenderingHints + implements Map, Cloneable { /** * The base class used to represent keys. @@ -550,7 +551,7 @@ public class RenderingHints implements Map, Cloneable * @param init a map containing a collection of hints (null * permitted). */ - public RenderingHints(Map init) + public RenderingHints(Map init) { if (init != null) putAll(init); @@ -704,7 +705,7 @@ public class RenderingHints implements Map, Cloneable * @throws IllegalArgumentException if the map contains a value that is * not compatible with its key. */ - public void putAll(Map m) + public void putAll(Map m) { // preprocess map to generate appropriate exceptions Iterator iterator = m.keySet().iterator(); @@ -723,7 +724,7 @@ public class RenderingHints implements Map, Cloneable * * @return A set of keys. */ - public Set keySet() + public Set keySet() { return hintMap.keySet(); } @@ -735,7 +736,7 @@ public class RenderingHints implements Map, Cloneable * * @return A collection of values. */ - public Collection values() + public Collection values() { return hintMap.values(); } @@ -745,7 +746,7 @@ public class RenderingHints implements Map, Cloneable * * @return A set of entries. */ - public Set entrySet() + public Set> entrySet() { return Collections.unmodifiableSet(hintMap.entrySet()); } diff --git a/libjava/classpath/java/awt/ScrollPane.java b/libjava/classpath/java/awt/ScrollPane.java index 65ce484b88d..ec9746f9339 100644 --- a/libjava/classpath/java/awt/ScrollPane.java +++ b/libjava/classpath/java/awt/ScrollPane.java @@ -338,10 +338,15 @@ getVScrollbarWidth() * Returns the current scroll position of the viewport. * * @return The current scroll position of the viewport. + * + * @throws NullPointerException if the scrollpane does have a child. */ public Point getScrollPosition() { + if (getComponentCount() == 0) + throw new NullPointerException(); + int x = 0; int y = 0; @@ -380,20 +385,35 @@ setScrollPosition(Point scrollPosition) throws IllegalArgumentException * @param x The new X coordinate of the scroll position. * @param y The new Y coordinate of the scroll position. * + * @throws NullPointerException if scrollpane does not have a child. + * * @exception IllegalArgumentException If the specified value is outside * the legal scrolling range. */ public void setScrollPosition(int x, int y) { + if (getComponentCount() == 0) + throw new NullPointerException("child is null"); + + if (x > (int) (getComponent(0).getWidth() - getViewportSize().getWidth())) + x = (int) (getComponent(0).getWidth() - getViewportSize().getWidth()); + if (y > (int) (getComponent(0).getHeight() - getViewportSize().getHeight())) + y = (int) (getComponent(0).getHeight() - getViewportSize().getHeight()); + + if (x < 0) + x = 0; + if (y < 0) + y = 0; + Adjustable h = getHAdjustable(); Adjustable v = getVAdjustable(); - + if (h != null) h.setValue(x); if (v != null) v.setValue(y); - + ScrollPanePeer spp = (ScrollPanePeer)getPeer(); if (spp != null) spp.setScrollPosition(x, y); @@ -414,7 +434,7 @@ addNotify() super.addNotify(); Component[] list = getComponents(); - if (list != null && list.length > 0 && ! (list[0] instanceof Panel)) + if (list != null && list.length > 0 && list[0].isLightweight()) { Panel panel = new Panel(); panel.setLayout(new BorderLayout()); @@ -453,9 +473,7 @@ removeNotify() if ((list != null) && (list.length > 0)) remove(list[0]); - super.addImpl(component, constraints, -1); - - doLayout(); + super.addImpl(component, constraints, index); } /*************************************************************************/ @@ -507,6 +525,8 @@ layout() p.y = dim.height; setScrollPosition (p); + + list[0].setLocation(new Point()); } } @@ -518,11 +538,12 @@ layout() * not have layout managers. * * @param layoutManager Ignored + * @throws AWTError Always throws this error when called. */ public final void setLayout(LayoutManager layoutManager) { - return; + throw new AWTError("ScrollPane controls layout"); } /*************************************************************************/ @@ -553,16 +574,37 @@ paramString() + getX() + "," + getY() + "," + getWidth() + "x" + getHeight() + "," - + "ScrollPosition=(" + scrollPosition.getX() + "," - + scrollPosition.getY() + ")," + + getIsValidString() + "," + + "ScrollPosition=(" + scrollPosition.x + "," + + scrollPosition.y + ")," + "Insets=(" + insets.top + "," + insets.left + "," + insets.bottom + "," + insets.right + ")," - + "ScrollbarDisplayPolicy=" + getScrollbarDisplayPolicy() + "," + + "ScrollbarDisplayPolicy=" + getScrollbarDisplayPolicyString() + "," + "wheelScrollingEnabled=" + isWheelScrollingEnabled(); } +private String +getScrollbarDisplayPolicyString() +{ + if (getScrollbarDisplayPolicy() == 0) + return "as-needed"; + else if (getScrollbarDisplayPolicy() == 1) + return "always"; + else + return "never"; +} + +private String +getIsValidString() +{ + if (isValid()) + return "valid"; + else + return "invalid"; +} + /** * Tells whether or not an event is enabled. * diff --git a/libjava/classpath/java/awt/ScrollPaneAdjustable.java b/libjava/classpath/java/awt/ScrollPaneAdjustable.java index 21b58c36ede..ca61801bf51 100644 --- a/libjava/classpath/java/awt/ScrollPaneAdjustable.java +++ b/libjava/classpath/java/awt/ScrollPaneAdjustable.java @@ -145,14 +145,26 @@ public class ScrollPaneAdjustable this.blockIncrement = blockIncrement; } - public void setMaximum (int maximum) + /** + * This method should never be called. + * + * @param maximum The maximum value to be set. + * @throws AWTError Always throws this error when called. + */ + public void setMaximum (int maximum) throws AWTError { - this.maximum = maximum; + throw new AWTError("Can be set by scrollpane only"); } + /** + * This method should never be called. + * + * @param minimum The minimum value to be set. + * @throws AWTError Always throws this error when called. + */ public void setMinimum (int minimum) { - this.minimum = minimum; + throw new AWTError("Can be set by scrollpane only"); } public void setUnitIncrement (int unitIncrement) @@ -171,20 +183,36 @@ public class ScrollPaneAdjustable maximum = value; } + /** + * This method should never be called. + * + * @param visibleAmount The visible amount to be set. + * @throws AWTError Always throws this error when called. + */ public void setVisibleAmount (int visibleAmount) { - this.visibleAmount = visibleAmount; + throw new AWTError("Can be set by scrollpane only"); } public String paramString () { - return ("scrollpane=" + sp + ", orientation=" + orientation - + ", value=" + value + ", minimum=" + minimum - + ", maximum=" + maximum + ", visibleAmount=" + visibleAmount - + ", unitIncrement=" + unitIncrement - + ", blockIncrement=" + blockIncrement); + return paramStringHelper() + + ",[" + getMinimum() + ".." + getMaximum() + + "],val=" + getValue() + + ",vis=" + getVisibleAmount() + + ",unit=" + getUnitIncrement() + + ",block=" + getBlockIncrement() + + ",isAdjusting=" + valueIsAdjusting; } + private String paramStringHelper() + { + if (getOrientation() == HORIZONTAL) + return "horizontal"; + else + return "vertical"; + } + public String toString() { return getClass().getName() + "[" + paramString() + "]"; @@ -209,5 +237,6 @@ public class ScrollPaneAdjustable { this.valueIsAdjusting = valueIsAdjusting; } + } // class ScrollPaneAdjustable diff --git a/libjava/classpath/java/awt/Scrollbar.java b/libjava/classpath/java/awt/Scrollbar.java index c0788370b21..0cba512f605 100644 --- a/libjava/classpath/java/awt/Scrollbar.java +++ b/libjava/classpath/java/awt/Scrollbar.java @@ -341,17 +341,22 @@ public class Scrollbar extends Component implements Accessible, Adjustable public synchronized void setValues(int value, int visibleAmount, int minimum, int maximum) { - if (maximum < minimum) - maximum = minimum; + if (visibleAmount <= 0) + visibleAmount = 1; + + if (maximum <= minimum) + maximum = minimum + 1; if (value < minimum) value = minimum; - if (value > maximum) - value = maximum; - if (visibleAmount > maximum - minimum) visibleAmount = maximum - minimum; + + // According to documentation, the actual maximum + // value is (maximum - visibleAmount) + if (value > maximum - visibleAmount) + value = maximum - visibleAmount; ScrollbarPeer peer = (ScrollbarPeer) getPeer(); if (peer != null @@ -362,30 +367,7 @@ public class Scrollbar extends Component implements Accessible, Adjustable this.value = value; this.visibleAmount = visibleAmount; this.minimum = minimum; - this.maximum = maximum; - - int range = maximum - minimum; - if (lineIncrement > range) - { - if (range == 0) - lineIncrement = 1; - else - lineIncrement = range; - - if (peer != null) - peer.setLineIncrement(lineIncrement); - } - - if (pageIncrement > range) - { - if (range == 0) - pageIncrement = 1; - else - pageIncrement = range; - - if (peer != null) - peer.setPageIncrement(pageIncrement); - } + this.maximum = maximum; } /** @@ -437,19 +419,13 @@ public class Scrollbar extends Component implements Accessible, Adjustable { if (lineIncrement < 0) throw new IllegalArgumentException("Unit increment less than zero."); - - int range = maximum - minimum; - if (lineIncrement > range) - { - if (range == 0) - lineIncrement = 1; - else - lineIncrement = range; - } - - if (lineIncrement == this.lineIncrement) + + if (lineIncrement == 0) + lineIncrement = 1; + + if (lineIncrement == this.lineIncrement) return; - + this.lineIncrement = lineIncrement; ScrollbarPeer peer = (ScrollbarPeer) getPeer(); @@ -507,15 +483,9 @@ public class Scrollbar extends Component implements Accessible, Adjustable if (pageIncrement < 0) throw new IllegalArgumentException("Block increment less than zero."); - int range = maximum - minimum; - if (pageIncrement > range) - { - if (range == 0) - pageIncrement = 1; - else - pageIncrement = range; - } - + if (pageIncrement == 0) + pageIncrement = 1; + if (pageIncrement == this.pageIncrement) return; @@ -647,7 +617,7 @@ public class Scrollbar extends Component implements Accessible, Adjustable * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements java.util.EventListener. */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == AdjustmentListener.class) return AWTEventMulticaster.getListeners(adjustment_listeners, diff --git a/libjava/classpath/java/awt/TextArea.java b/libjava/classpath/java/awt/TextArea.java index 7e3463ab849..30b278d0c29 100644 --- a/libjava/classpath/java/awt/TextArea.java +++ b/libjava/classpath/java/awt/TextArea.java @@ -284,11 +284,7 @@ public class TextArea extends TextComponent implements java.io.Serializable } /** - * Retrieve the minimum size for this text area, considering the - * text area's current row and column values. A text area's minimum - * size depends on the number of rows and columns of text it would - * prefer to display, and on the size of the font in which the text - * would be displayed. + * Retrieve the minimum size for this text area. * * @return The minimum size for this text field. */ @@ -298,11 +294,8 @@ public class TextArea extends TextComponent implements java.io.Serializable } /** - * Retrieve the minimum size that this text area would have if its - * row and column values were equal to those specified. A text - * area's minimum size depends on the number of rows and columns of - * text it would prefer to display, and on the size of the font in - * which the text would be displayed. + * Retrieve the minimum size for this text area. If the minimum + * size has been set, then rows and columns are used in the calculation. * * @param rows The number of rows to use in the minimum size * calculation. @@ -317,12 +310,8 @@ public class TextArea extends TextComponent implements java.io.Serializable } /** - * Retrieve the minimum size for this text area, considering the - * text area's current row and column values. A text area's minimum - * size depends on the number of rows and columns of text it would - * prefer to display, and on the size of the font in which the text - * would be displayed. - * + * Retrieve the minimum size for this text area. + * * @return The minimum size for this text area. * * @deprecated This method is deprecated in favor of @@ -334,11 +323,8 @@ public class TextArea extends TextComponent implements java.io.Serializable } /** - * Retrieve the minimum size that this text area would have if its - * row and column values were equal to those specified. A text - * area's minimum size depends on the number of rows and columns of - * text it would prefer to display, and on the size of the font in - * which the text would be displayed. + * Retrieve the minimum size for this text area. If the minimum + * size has been set, then rows and columns are used in the calculation. * * @param rows The number of rows to use in the minimum size * calculation. @@ -352,21 +338,18 @@ public class TextArea extends TextComponent implements java.io.Serializable */ public Dimension minimumSize (int rows, int columns) { + if (isMinimumSizeSet()) + return new Dimension(minSize); + TextAreaPeer peer = (TextAreaPeer) getPeer (); - - // Sun returns Dimension (0,0) in this case. if (peer == null) - return new Dimension (0, 0); + return new Dimension (getWidth(), getHeight()); return peer.getMinimumSize (rows, columns); } /** - * Retrieve the preferred size for this text area, considering the - * text area's current row and column values. A text area's preferred - * size depends on the number of rows and columns of text it would - * prefer to display, and on the size of the font in which the text - * would be displayed. + * Retrieve the preferred size for this text area. * * @return The preferred size for this text field. */ @@ -376,11 +359,8 @@ public class TextArea extends TextComponent implements java.io.Serializable } /** - * Retrieve the preferred size that this text area would have if its - * row and column values were equal to those specified. A text - * area's preferred size depends on the number of rows and columns - * of text it would prefer to display, and on the size of the font - * in which the text would be displayed. + * Retrieve the preferred size for this text area. If the preferred + * size has been set, then rows and columns are used in the calculation. * * @param rows The number of rows to use in the preferred size * calculation. @@ -395,11 +375,7 @@ public class TextArea extends TextComponent implements java.io.Serializable } /** - * Retrieve the preferred size for this text area, considering the - * text area's current row and column values. A text area's preferred - * size depends on the number of rows and columns of text it would - * prefer to display, and on the size of the font in which the text - * would be displayed. + * Retrieve the preferred size for this text area. * * @return The preferred size for this text field. * @@ -412,11 +388,8 @@ public class TextArea extends TextComponent implements java.io.Serializable } /** - * Retrieve the preferred size that this text area would have if its - * row and column values were equal to those specified. A text - * area's preferred size depends on the number of rows and columns - * of text it would prefer to display, and on the size of the font - * in which the text would be displayed. + * Retrieve the preferred size for this text area. If the preferred + * size has been set, then rows and columns are used in the calculation. * * @param rows The number of rows to use in the preferred size * calculation. @@ -430,11 +403,12 @@ public class TextArea extends TextComponent implements java.io.Serializable */ public Dimension preferredSize (int rows, int columns) { + if (isPreferredSizeSet()) + return new Dimension(prefSize); + TextAreaPeer peer = (TextAreaPeer) getPeer (); - - // Sun returns Dimension (0,0) in this case. if (peer == null) - return new Dimension (0, 0); + return new Dimension (getWidth(), getHeight()); return peer.getPreferredSize (rows, columns); } diff --git a/libjava/classpath/java/awt/TextComponent.java b/libjava/classpath/java/awt/TextComponent.java index f811122f2b2..8fdd94139fc 100644 --- a/libjava/classpath/java/awt/TextComponent.java +++ b/libjava/classpath/java/awt/TextComponent.java @@ -391,7 +391,9 @@ public class TextComponent extends Component */ public synchronized void setSelectionStart(int selectionStart) { - select(selectionStart, getSelectionEnd()); + select(selectionStart, + (getSelectionEnd() < selectionStart) + ? selectionStart : getSelectionEnd()); } /** @@ -610,7 +612,7 @@ public class TextComponent extends Component * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements java.util.EventListener. */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == TextListener.class) return AWTEventMulticaster.getListeners(textListener, listenerType); diff --git a/libjava/classpath/java/awt/TextField.java b/libjava/classpath/java/awt/TextField.java index b76f393a0b6..b1df66f7cdc 100644 --- a/libjava/classpath/java/awt/TextField.java +++ b/libjava/classpath/java/awt/TextField.java @@ -264,9 +264,12 @@ public class TextField extends TextComponent */ public Dimension minimumSize(int columns) { + if (isMinimumSizeSet()) + return new Dimension(minSize); + TextFieldPeer peer = (TextFieldPeer) getPeer (); if (peer == null) - return null; // FIXME: What do we do if there is no peer? + return new Dimension(getWidth(), getHeight()); return peer.getMinimumSize (columns); } @@ -316,10 +319,13 @@ public class TextField extends TextComponent */ public Dimension preferredSize(int columns) { + if (isPreferredSizeSet()) + return new Dimension(prefSize); + TextFieldPeer peer = (TextFieldPeer) getPeer (); if (peer == null) - return new Dimension (0, 0); - + return new Dimension (getWidth(), getHeight()); + return peer.getPreferredSize (columns); } @@ -422,7 +428,7 @@ public class TextField extends TextComponent * * @since 1.3 */ - public EventListener[] getListeners (Class listenerType) + public T[] getListeners (Class listenerType) { if (listenerType == ActionListener.class) return AWTEventMulticaster.getListeners (action_listeners, listenerType); diff --git a/libjava/classpath/java/awt/Toolkit.java b/libjava/classpath/java/awt/Toolkit.java index 2842091c139..69040722e72 100644 --- a/libjava/classpath/java/awt/Toolkit.java +++ b/libjava/classpath/java/awt/Toolkit.java @@ -41,6 +41,7 @@ package java.awt; import gnu.classpath.SystemProperties; import gnu.java.awt.peer.GLightweightPeer; +import gnu.java.awt.peer.headless.HeadlessToolkit; import java.awt.datatransfer.Clipboard; import java.awt.dnd.DragGestureEvent; @@ -51,6 +52,7 @@ import java.awt.dnd.peer.DragSourceContextPeer; import java.awt.event.AWTEventListener; import java.awt.event.AWTEventListenerProxy; import java.awt.event.KeyEvent; +import java.awt.font.TextAttribute; import java.awt.im.InputMethodHighlight; import java.awt.image.ColorModel; import java.awt.image.ImageObserver; @@ -86,6 +88,7 @@ import java.net.URL; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; +import java.util.Hashtable; import java.util.Map; import java.util.Properties; import java.util.StringTokenizer; @@ -119,7 +122,8 @@ public abstract class Toolkit /** The toolkit properties. */ private static Properties props = new Properties(); - protected final Map desktopProperties = new Properties(); + protected final Map desktopProperties = + new Hashtable(); protected final PropertyChangeSupport desktopPropsSupport = new PropertyChangeSupport(this); @@ -131,6 +135,11 @@ public abstract class Toolkit AWTEventListenerProxy[] awtEventListeners; /** + * The shared peer for all lightweight components. + */ + private GLightweightPeer lightweightPeer; + + /** * Default constructor for subclasses. */ public Toolkit() @@ -379,7 +388,9 @@ public abstract class Toolkit */ protected LightweightPeer createComponent(Component target) { - return new GLightweightPeer(target); + if (lightweightPeer == null) + lightweightPeer = new GLightweightPeer(); + return lightweightPeer; } /** @@ -540,10 +551,11 @@ public abstract class Toolkit * * @throws AWTError If the toolkit cannot be loaded. */ - public static Toolkit getDefaultToolkit() + public static synchronized Toolkit getDefaultToolkit() { if (toolkit != null) return toolkit; + String toolkit_name = SystemProperties.getProperty("awt.toolkit", default_toolkit_name); try @@ -573,8 +585,18 @@ public abstract class Toolkit } catch (Throwable t) { - AWTError e = new AWTError("Cannot load AWT toolkit: " + toolkit_name); - throw (AWTError) e.initCause(t); + // Check for the headless property. + if (GraphicsEnvironment.isHeadless()) + { + toolkit = new HeadlessToolkit(); + return toolkit; + } + else + { + AWTError e = new AWTError("Cannot load AWT toolkit: " + + toolkit_name); + throw (AWTError) e.initCause(t); + } } } @@ -964,8 +986,8 @@ public abstract class Toolkit /** * @since 1.3 */ - public DragGestureRecognizer - createDragGestureRecognizer(Class recognizer, DragSource ds, + public T + createDragGestureRecognizer(Class recognizer, DragSource ds, Component comp, int actions, DragGestureListener l) { @@ -1252,7 +1274,8 @@ public abstract class Toolkit /** * @since 1.3 */ - public abstract Map mapInputMethodHighlight(InputMethodHighlight highlight); + public abstract Map + mapInputMethodHighlight(InputMethodHighlight highlight); /** * Initializes the accessibility framework. In particular, this loads the diff --git a/libjava/classpath/java/awt/Window.java b/libjava/classpath/java/awt/Window.java index 8885821811d..41dff5577e0 100644 --- a/libjava/classpath/java/awt/Window.java +++ b/libjava/classpath/java/awt/Window.java @@ -1,5 +1,5 @@ /* Window.java -- - Copyright (C) 1999, 2000, 2002, 2003, 2004, 2006 Free Software Foundation + Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation This file is part of GNU Classpath. @@ -140,7 +140,7 @@ public class Window extends Container implements Accessible this(); graphicsConfiguration = gc; } - + /** * Initializes a new instance of Window with the specified * parent. The window will initially be invisible. @@ -250,13 +250,13 @@ public class Window extends Container implements Accessible /** * Shows on-screen this window and any of its owned windows for whom * isVisible returns true. + * @specnote: Deprecated starting in 1.5. */ + @Deprecated public void show() { synchronized (getTreeLock()) { - if (parent != null && ! parent.isDisplayable()) - parent.addNotify(); if (peer == null) addNotify(); @@ -298,11 +298,24 @@ public class Window extends Container implements Accessible if (initialFocusOwner != null) initialFocusOwner.requestFocusInWindow(); + // Post WINDOW_OPENED from here. + if (windowListener != null + || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0) + { + WindowEvent ev = new WindowEvent(this, + WindowEvent.WINDOW_OPENED); + Toolkit tk = Toolkit.getDefaultToolkit(); + tk.getSystemEventQueue().postEvent(ev); + } shown = true; } } } + /** + * @specnote: Deprecated starting in 1.5. + */ + @Deprecated public void hide() { // Hide visible owned windows. @@ -349,9 +362,15 @@ public class Window extends Container implements Accessible component[i].removeNotify(); this.removeNotify(); - // Post a WINDOW_CLOSED event. - WindowEvent we = new WindowEvent(this, WindowEvent.WINDOW_CLOSED); - getToolkit().getSystemEventQueue().postEvent(we); + // Post WINDOW_CLOSED from here. + if (windowListener != null + || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0) + { + WindowEvent ev = new WindowEvent(this, + WindowEvent.WINDOW_CLOSED); + Toolkit tk = Toolkit.getDefaultToolkit(); + tk.getSystemEventQueue().postEvent(ev); + } } } @@ -479,7 +498,11 @@ public class Window extends Container implements Accessible */ public synchronized void addWindowListener(WindowListener listener) { - windowListener = AWTEventMulticaster.add(windowListener, listener); + if (listener != null) + { + newEventsOnly = true; + windowListener = AWTEventMulticaster.add(windowListener, listener); + } } /** @@ -536,7 +559,12 @@ public class Window extends Container implements Accessible */ public void addWindowFocusListener (WindowFocusListener wfl) { - windowFocusListener = AWTEventMulticaster.add (windowFocusListener, wfl); + if (wfl != null) + { + newEventsOnly = true; + windowFocusListener = AWTEventMulticaster.add (windowFocusListener, + wfl); + } } /** @@ -546,7 +574,12 @@ public class Window extends Container implements Accessible */ public void addWindowStateListener (WindowStateListener wsl) { - windowStateListener = AWTEventMulticaster.add (windowStateListener, wsl); + if (wsl != null) + { + newEventsOnly = true; + windowStateListener = AWTEventMulticaster.add (windowStateListener, + wsl); + } } /** @@ -577,42 +610,21 @@ public class Window extends Container implements Accessible * * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == WindowListener.class) - return getWindowListeners(); + return (T[]) getWindowListeners(); return super.getListeners(listenerType); } void dispatchEventImpl(AWTEvent e) { - // Make use of event id's in order to avoid multiple instanceof tests. - if (e.id <= WindowEvent.WINDOW_LAST - && e.id >= WindowEvent.WINDOW_FIRST - && (windowListener != null - || windowFocusListener != null - || windowStateListener != null - || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0)) - processEvent(e); - else + if (e.getID() == ComponentEvent.COMPONENT_RESIZED) { - if (peer != null && (e.id == ComponentEvent.COMPONENT_RESIZED - || e.id == ComponentEvent.COMPONENT_MOVED)) - { - Rectangle bounds = peer.getBounds(); - x = bounds.x; - y = bounds.y; - height = bounds.height; - width = bounds.width; - - if (e.id == ComponentEvent.COMPONENT_RESIZED) - { - invalidate(); - validate(); - } - } - super.dispatchEventImpl(e); + invalidate(); + validate(); } + super.dispatchEventImpl(e); } /** @@ -626,7 +638,28 @@ public class Window extends Container implements Accessible protected void processEvent(AWTEvent evt) { if (evt instanceof WindowEvent) - processWindowEvent((WindowEvent) evt); + { + WindowEvent we = (WindowEvent) evt; + switch (evt.getID()) + { + case WindowEvent.WINDOW_OPENED: + case WindowEvent.WINDOW_CLOSED: + case WindowEvent.WINDOW_CLOSING: + case WindowEvent.WINDOW_ICONIFIED: + case WindowEvent.WINDOW_DEICONIFIED: + case WindowEvent.WINDOW_ACTIVATED: + case WindowEvent.WINDOW_DEACTIVATED: + processWindowEvent(we); + break; + case WindowEvent.WINDOW_GAINED_FOCUS: + case WindowEvent.WINDOW_LOST_FOCUS: + processWindowFocusEvent(we); + break; + case WindowEvent.WINDOW_STATE_CHANGED: + processWindowStateEvent(we); + break; + } + } else super.processEvent(evt); } @@ -641,54 +674,35 @@ public class Window extends Container implements Accessible */ protected void processWindowEvent(WindowEvent evt) { - int id = evt.getID(); - - if (id == WindowEvent.WINDOW_GAINED_FOCUS - || id == WindowEvent.WINDOW_LOST_FOCUS) - processWindowFocusEvent (evt); - else if (id == WindowEvent.WINDOW_STATE_CHANGED) - processWindowStateEvent (evt); - else + if (windowListener != null) { - if (windowListener != null) - { - switch (evt.getID()) - { - case WindowEvent.WINDOW_ACTIVATED: - windowListener.windowActivated(evt); - break; - - case WindowEvent.WINDOW_CLOSED: - windowListener.windowClosed(evt); - break; - - case WindowEvent.WINDOW_CLOSING: - windowListener.windowClosing(evt); - break; - - case WindowEvent.WINDOW_DEACTIVATED: - windowListener.windowDeactivated(evt); - break; - - case WindowEvent.WINDOW_DEICONIFIED: - windowListener.windowDeiconified(evt); - break; - - case WindowEvent.WINDOW_ICONIFIED: - windowListener.windowIconified(evt); - break; - - case WindowEvent.WINDOW_OPENED: - windowListener.windowOpened(evt); - break; - - default: - break; - } - } + switch (evt.getID()) + { + case WindowEvent.WINDOW_ACTIVATED: + windowListener.windowActivated(evt); + break; + case WindowEvent.WINDOW_CLOSED: + windowListener.windowClosed(evt); + break; + case WindowEvent.WINDOW_CLOSING: + windowListener.windowClosing(evt); + break; + case WindowEvent.WINDOW_DEACTIVATED: + windowListener.windowDeactivated(evt); + break; + case WindowEvent.WINDOW_DEICONIFIED: + windowListener.windowDeiconified(evt); + break; + case WindowEvent.WINDOW_ICONIFIED: + windowListener.windowIconified(evt); + break; + case WindowEvent.WINDOW_OPENED: + windowListener.windowOpened(evt); + break; + } } } - + /** * Identifies if this window is active. The active window is a Frame or * Dialog that has focus or owns the active window. @@ -1233,6 +1247,42 @@ public class Window extends Container implements Accessible return "win" + getUniqueLong(); } + /** + * Overridden to handle WindowEvents. + * + * @return true when the specified event type is enabled, + * false otherwise + */ + boolean eventTypeEnabled(int type) + { + boolean enabled = false; + switch (type) + { + case WindowEvent.WINDOW_OPENED: + case WindowEvent.WINDOW_CLOSED: + case WindowEvent.WINDOW_CLOSING: + case WindowEvent.WINDOW_ICONIFIED: + case WindowEvent.WINDOW_DEICONIFIED: + case WindowEvent.WINDOW_ACTIVATED: + case WindowEvent.WINDOW_DEACTIVATED: + enabled = ((eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0) + || windowListener != null; + break; + case WindowEvent.WINDOW_GAINED_FOCUS: + case WindowEvent.WINDOW_LOST_FOCUS: + enabled = ((eventMask & AWTEvent.WINDOW_FOCUS_EVENT_MASK) != 0) + || windowFocusListener != null; + break; + case WindowEvent.WINDOW_STATE_CHANGED: + enabled = ((eventMask & AWTEvent.WINDOW_STATE_EVENT_MASK) != 0) + || windowStateListener != null; + break; + default: + enabled = super.eventTypeEnabled(type); + } + return enabled; + } + private static synchronized long getUniqueLong() { return next_window_number++; diff --git a/libjava/classpath/java/awt/datatransfer/DataFlavor.java b/libjava/classpath/java/awt/datatransfer/DataFlavor.java index 0228cd5786d..baaf43d85bc 100644 --- a/libjava/classpath/java/awt/datatransfer/DataFlavor.java +++ b/libjava/classpath/java/awt/datatransfer/DataFlavor.java @@ -38,14 +38,13 @@ exception statement from your version. */ package java.awt.datatransfer; -import gnu.classpath.NotImplementedException; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInput; import java.io.ObjectOutput; +import java.io.OptionalDataException; import java.io.Reader; import java.io.Serializable; import java.io.StringReader; @@ -76,8 +75,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * deals with bytes not chars. Use getRederForText(). */ public static final DataFlavor plainTextFlavor = - new DataFlavor(java.io.InputStream.class, - "text/plain; charset=unicode", + new DataFlavor("text/plain; charset=unicode; class=java.io.InputStream", "plain unicode text"); /** @@ -94,8 +92,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * element of the list being a java.io.File. */ public static final DataFlavor javaFileListFlavor = - new DataFlavor(java.util.List.class, - "application/x-java-file-list; class=java.util.List", + new DataFlavor("application/x-java-file-list; class=java.util.List", "Java File List"); /** @@ -132,10 +129,10 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ // The MIME type for this flavor - private final String mimeType; + private MimeType mimeType; // The representation class for this flavor - private final Class representationClass; + private Class representationClass; // The human readable name of this flavor private String humanPresentableName; @@ -156,8 +153,8 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * * @exception ClassNotFoundException If the class cannot be loaded. */ - protected static final Class tryToLoadClass(String className, - ClassLoader classLoader) + protected static final Class tryToLoadClass(String className, + ClassLoader classLoader) throws ClassNotFoundException { // Bootstrap @@ -198,62 +195,6 @@ public class DataFlavor implements java.io.Externalizable, Cloneable throw new ClassNotFoundException(className); } - private static Class getRepresentationClassFromMimeThrows(String mimeString, - ClassLoader classLoader) - throws ClassNotFoundException - { - String classname = getParameter("class", mimeString); - if (classname != null) - return tryToLoadClass(classname, classLoader); - else - return java.io.InputStream.class; - } - - // Same as above, but wraps any ClassNotFoundExceptions - private static Class getRepresentationClassFromMime(String mimeString, - ClassLoader classLoader) - { - try - { - return getRepresentationClassFromMimeThrows(mimeString, classLoader); - } - catch(ClassNotFoundException cnfe) - { - IllegalArgumentException iae; - iae = new IllegalArgumentException("mimeString: " - + mimeString - + " classLoader: " - + classLoader); - iae.initCause(cnfe); - throw iae; - } - } - - /** - * Returns the value of the named MIME type parameter, or null - * if the parameter does not exist. Given the parameter name and the mime - * string. - * - * @param paramName The name of the parameter. - * @param mimeString The mime string from where the name should be found. - * - * @return The value of the parameter or null. - */ - private static String getParameter(String paramName, String mimeString) - { - int idx = mimeString.indexOf(paramName + "="); - if (idx == -1) - return(null); - - String value = mimeString.substring(idx + paramName.length() + 1); - - idx = value.indexOf(";"); - if (idx == -1) - return(value); - else - return(value.substring(0, idx)); - } - /** * XXX - Currently returns plainTextFlavor. */ @@ -321,32 +262,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public DataFlavor() { - mimeType = null; - representationClass = null; - humanPresentableName = null; - } - - /** - * Private constructor. - */ - private DataFlavor(Class representationClass, - String mimeType, - String humanPresentableName) - { - this.representationClass = representationClass; - this.mimeType = mimeType; - - // Do some simple validity checks - String type = getPrimaryType() + "/" + getSubType(); - if (type.indexOf(' ') != -1 - || type.indexOf('=') != -1 - || type.indexOf(';') != -1) - throw new IllegalArgumentException(mimeType); - - if (humanPresentableName != null) - this.humanPresentableName = humanPresentableName; - else - this.humanPresentableName = mimeType; + // Used for deserialization only, nothing to do here. } /** @@ -359,13 +275,23 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * @param representationClass The representation class for this object. * @param humanPresentableName The display name of the object. */ - public DataFlavor(Class representationClass, String humanPresentableName) + public DataFlavor(Class representationClass, String humanPresentableName) { - this(representationClass, - "application/x-java-serialized-object" - + "; class=" - + representationClass.getName(), - humanPresentableName); + if (representationClass == null) + throw new NullPointerException("representationClass must not be null"); + try + { + mimeType = new MimeType(javaSerializedObjectMimeType); + } + catch (MimeTypeParseException ex) + { + // Must not happen as we use a constant string. + assert false; + } + if (humanPresentableName == null) + humanPresentableName = javaSerializedObjectMimeType; + this.humanPresentableName = humanPresentableName; + this.representationClass = representationClass; } /** @@ -390,8 +316,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable ClassLoader classLoader) throws ClassNotFoundException { - this(getRepresentationClassFromMimeThrows(mimeType, classLoader), - mimeType, humanPresentableName); + init(mimeType, humanPresentableName, classLoader); } /** @@ -412,8 +337,17 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public DataFlavor(String mimeType, String humanPresentableName) { - this(getRepresentationClassFromMime (mimeType, null), - mimeType, humanPresentableName); + try + { + init(mimeType, humanPresentableName, getClass().getClassLoader()); + } + catch (ClassNotFoundException ex) + { + IllegalArgumentException iae = + new IllegalArgumentException("Class not found: " + ex.getMessage()); + iae.initCause(ex); + throw iae; + } } /** @@ -432,8 +366,54 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public DataFlavor(String mimeType) throws ClassNotFoundException { - this(getRepresentationClassFromMimeThrows(mimeType, null), - mimeType, null); + init(mimeType, null, getClass().getClassLoader()); + } + + /** + * Called by various constructors to initialize this object. + * + * @param mime the mime string + * @param humanPresentableName the human presentable name + * @param loader the class loader to use for loading the representation + * class + */ + private void init(String mime, String humanPresentableName, + ClassLoader loader) + throws ClassNotFoundException + { + if (mime == null) + throw new NullPointerException("The mime type must not be null"); + try + { + mimeType = new MimeType(mime); + } + catch (MimeTypeParseException ex) + { + IllegalArgumentException iae = + new IllegalArgumentException("Invalid mime type"); + iae.initCause(ex); + throw iae; + } + String className = mimeType.getParameter("class"); + if (className == null) + { + if (mimeType.getBaseType().equals(javaSerializedObjectMimeType)) + throw new IllegalArgumentException("Serialized object type must have" + + " a representation class parameter"); + else + representationClass = java.io.InputStream.class; + } + else + representationClass = tryToLoadClass(className, loader); + mimeType.addParameter("class", representationClass.getName()); + + if (humanPresentableName == null) + { + humanPresentableName = mimeType.getParameter("humanPresentableName"); + if (humanPresentableName == null) + humanPresentableName = mimeType.getBaseType(); + } + this.humanPresentableName = humanPresentableName; } /** @@ -443,7 +423,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public String getMimeType() { - return(mimeType); + return(mimeType.toString()); } /** @@ -451,7 +431,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * * @return The representation class for this flavor. */ - public Class getRepresentationClass() + public Class getRepresentationClass() { return(representationClass); } @@ -473,11 +453,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public String getPrimaryType() { - int idx = mimeType.indexOf("/"); - if (idx == -1) - return(mimeType); - - return(mimeType.substring(0, idx)); + return(mimeType.getPrimaryType()); } /** @@ -487,15 +463,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public String getSubType() { - int start = mimeType.indexOf("/"); - if (start == -1) - return ""; - - int end = mimeType.indexOf(";", start + 1); - if (end == -1) - return mimeType.substring(start + 1); - else - return mimeType.substring(start + 1, end); + return mimeType.getSubType(); } /** @@ -511,7 +479,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable if ("humanPresentableName".equals(paramName)) return getHumanPresentableName(); - return getParameter(paramName, mimeType); + return mimeType.getParameter(paramName); } /** @@ -537,16 +505,22 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public boolean isMimeTypeEqual(String mimeType) { - String mime = getMimeType(); - int i = mime.indexOf(";"); - if (i != -1) - mime = mime.substring(0, i); - - i = mimeType.indexOf(";"); - if (i != -1) - mimeType = mimeType.substring(0, i); - - return mime.equals(mimeType); + if (mimeType == null) + throw new NullPointerException("mimeType must not be null"); + boolean equal = false; + try + { + if (this.mimeType != null) + { + MimeType other = new MimeType(mimeType); + equal = this.mimeType.matches(other); + } + } + catch (MimeTypeParseException ex) + { + // Return false in this case. + } + return equal; } /** @@ -571,7 +545,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public boolean isMimeTypeSerializedObject() { - return mimeType.startsWith(javaSerializedObjectMimeType); + return isMimeTypeEqual(javaSerializedObjectMimeType); } /** @@ -617,8 +591,8 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public boolean isFlavorSerializedObjectType() { - // FIXME: What is the diff between this and isMimeTypeSerializedObject? - return(mimeType.startsWith(javaSerializedObjectMimeType)); + return isRepresentationClassSerializable() + && isMimeTypeEqual(javaSerializedObjectMimeType); } /** @@ -629,7 +603,9 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public boolean isFlavorRemoteObjectType() { - return(mimeType.startsWith(javaRemoteObjectMimeType)); + return isRepresentationClassRemote() + && isRepresentationClassSerializable() + && isMimeTypeEqual(javaRemoteObjectMimeType); } /** @@ -770,7 +746,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable */ public int hashCode() { - return mimeType.toLowerCase().hashCode() ^ representationClass.hashCode(); + return mimeType.toString().hashCode() ^ representationClass.hashCode(); } /** @@ -822,9 +798,17 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * @exception IOException If an error occurs. */ public void writeExternal(ObjectOutput stream) - throws IOException, NotImplementedException + throws IOException { - // FIXME: Implement me + if (mimeType != null) + { + mimeType.addParameter("humanPresentableName", humanPresentableName); + stream.writeObject(mimeType); + mimeType.removeParameter("humanPresentableName"); + } + else + stream.writeObject(null); + stream.writeObject(representationClass); } @@ -838,9 +822,34 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * cannot be found. */ public void readExternal(ObjectInput stream) - throws IOException, ClassNotFoundException, NotImplementedException + throws IOException, ClassNotFoundException { - // FIXME: Implement me + mimeType = (MimeType) stream.readObject(); + String className = null; + if (mimeType != null) + { + humanPresentableName = + mimeType.getParameter("humanPresentableName"); + mimeType.removeParameter("humanPresentableName"); + className = mimeType.getParameter("class"); + if (className == null) + throw new IOException("No class in mime type"); + } + try + { + representationClass = (Class) stream.readObject(); + } + catch (OptionalDataException ex) + { + if (ex.eof && ex.length == 0) + { + if (className != null) + representationClass = tryToLoadClass(className, + getClass().getClassLoader()); + } + else + throw ex; + } } /** @@ -861,7 +870,7 @@ public class DataFlavor implements java.io.Externalizable, Cloneable * * @since 1.3 */ - public final Class getDefaultRepresentationClass() + public final Class getDefaultRepresentationClass() { return java.io.InputStream.class; } diff --git a/libjava/classpath/java/awt/datatransfer/FlavorMap.java b/libjava/classpath/java/awt/datatransfer/FlavorMap.java index 59718c4513c..8842c8e55e3 100644 --- a/libjava/classpath/java/awt/datatransfer/FlavorMap.java +++ b/libjava/classpath/java/awt/datatransfer/FlavorMap.java @@ -58,7 +58,7 @@ public interface FlavorMap * * @return A Map of native data types. */ - Map getNativesForFlavors (DataFlavor[] flavors); + Map getNativesForFlavors (DataFlavor[] flavors); /** * Maps the specified native type names to DataFlavor's. @@ -71,5 +71,5 @@ public interface FlavorMap * * @return A Map of data flavors. */ - Map getFlavorsForNatives (String[] natives); + Map getFlavorsForNatives (String[] natives); } diff --git a/libjava/classpath/java/awt/datatransfer/FlavorTable.java b/libjava/classpath/java/awt/datatransfer/FlavorTable.java index 11cdda06ca7..f6c43af8374 100644 --- a/libjava/classpath/java/awt/datatransfer/FlavorTable.java +++ b/libjava/classpath/java/awt/datatransfer/FlavorTable.java @@ -59,7 +59,7 @@ public interface FlavorTable extends FlavorMap * @param flavor the flavor to look up, or null to return all natives * @return the sorted list of natives */ - List getNativesForFlavor(DataFlavor flavor); + List getNativesForFlavor(DataFlavor flavor); /** * Returns a list of flavors corresponding to the given String native. The @@ -69,5 +69,5 @@ public interface FlavorTable extends FlavorMap * @param name the native name to look up, or null to return all flavors * @return the sorted list of flavors */ - List getFlavorsForNative(String name); + List getFlavorsForNative(String name); } diff --git a/libjava/classpath/java/awt/datatransfer/MimeType.java b/libjava/classpath/java/awt/datatransfer/MimeType.java new file mode 100644 index 00000000000..438d78e9e73 --- /dev/null +++ b/libjava/classpath/java/awt/datatransfer/MimeType.java @@ -0,0 +1,281 @@ +/* MimeType.java -- A helper class for mime handling in DataFlavor + 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.awt.datatransfer; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Set; +import java.util.StringTokenizer; + +/** + * A helper class for mime handling in DataFlavor. + * + * A Mauve test for DataFlavor.writeExternal() shows that a non-public + * class java.awt.datatransfer.MimeType gets serialized. This class + * is mainly here for serialization compatibility. Of course, + * now that we have it here, we can just as well implement some + * mime handling facility here. + */ +class MimeType + implements Externalizable +{ + + /** + * The primary type. + */ + private String primaryType; + + /** + * The subtype. + */ + private String subType; + + /** + * Additional parameters to be appended to the mime string. + */ + private HashMap parameters; + + /** + * This is only here for deserialization. + */ + public MimeType() + { + parameters = new HashMap(); + } + + /** + * Creates a new MimeType object. + * + * @param mime the mime type + */ + MimeType(String mime) + throws MimeTypeParseException + { + this(); + parse(mime); + } + + /** + * Adds a mime parameter. + * + * @param param the parameter key + * @param value the parameter value + */ + void addParameter(String param, String value) + { + parameters.put(param, value); + } + + /** + * Removes the parameter with the specified key. + * + * @param param the parameter to remove + */ + void removeParameter(String param) + { + parameters.remove(param); + } + + /** + * Returns the parameter for the key. + * + * @param key the parameter key + * + * @return the parameter for the key + */ + String getParameter(String key) + { + return (String) parameters.get(key); + } + + /** + * Returns the primary type. + * + * @return the primary type + */ + String getPrimaryType() + { + return primaryType; + } + + String getSubType() + { + return subType; + } + + /** + * Returns the base type of this mime type. This is the primary + * type plus the subtype, separated by '/'. + * + * @return the base type of this mime type + */ + String getBaseType() + { + return primaryType + '/' + subType; + } + + /** + * Returns true if this mime type and another mime type + * match. This will be true when their primary types are equal, and their + * subtypes are equal (or when either subtype is * ). + * + * @param other the other mime type + * + * @return true if the mime types match, false + * otherwise + */ + boolean matches(MimeType other) + { + boolean match = false; + if (other != null) + { + match = primaryType.equals(other.primaryType) + && (subType.equals("*") || other.subType.equals("*") + || subType.equals(other.subType)); + } + return match; + } + + /** + * Serializes the mime type. + * + * @param in the input stream to read from + * + * @throws ClassNotFoundException not thrown here + * @throws IOException when something goes wrong on the input stream, + * or when the mime type can't be parsed + */ + public void readExternal(ObjectInput in) + throws ClassNotFoundException, IOException + { + String mime = in.readUTF(); + parameters.clear(); + try + { + parse(mime); + } + catch (MimeTypeParseException ex) + { + IOException ioEx = new IOException(); + ioEx.initCause(ex); + throw ioEx; + } + } + + /** + * Serializes this mime type. + * + * @param out the output stream + * + * @throws IOException when something goes wrong on the output stream + */ + public void writeExternal(ObjectOutput out) + throws IOException + { + out.writeUTF(toString()); + } + + /** + * Creates a string representation of this mime type. + * + * @return a string representation of this mime type + */ + public String toString() + { + StringBuilder s = new StringBuilder(); + s.append(primaryType); + s.append('/'); + s.append(subType); + if (parameters.size() > 0) + { + Set entries = parameters.entrySet(); + for (Iterator i = entries.iterator(); i.hasNext();) + { + s.append("; "); + Map.Entry entry = (Map.Entry) i.next(); + s.append(entry.getKey()); + s.append('='); + s.append(entry.getValue()); + } + } + return s.toString(); + } + + /** + * Parses the specified mime type string and initializes the fields + * of this object. + * + * @param mime the mime type string + */ + private void parse(String mime) + throws MimeTypeParseException + { + // FIXME: Maybe implement more sophisticated mime string parsing according + // to RFC 2045 and 2046. + StringTokenizer tokenizer = new StringTokenizer(mime); + try + { + primaryType = tokenizer.nextToken("/"); + subType = tokenizer.nextToken("/;"); + } + catch (NoSuchElementException ex) + { + throw new MimeTypeParseException("Expected / separator"); + } + + // Add any parameters. + while (tokenizer.hasMoreTokens()) + { + String keyValuePair = tokenizer.nextToken(";"); + int i = keyValuePair.indexOf('='); + if (i == -1) + throw new MimeTypeParseException("Expected = as parameter separator"); + String key = keyValuePair.substring(0, i).trim(); + String value = keyValuePair.substring(i + 1).trim(); + parameters.put(key, value); + } + } + +} diff --git a/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java b/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java index a80665aee98..e163fe067e2 100644 --- a/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java +++ b/libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java @@ -98,9 +98,9 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable * * @return A Map of native data types to data flavors. */ - public Map getNativesForFlavors (DataFlavor[] flavors) + public Map getNativesForFlavors (DataFlavor[] flavors) { - return new HashMap(); + return new HashMap(); } /** @@ -114,9 +114,9 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable * * @return A Map of data flavors to native type names. */ - public Map getFlavorsForNatives (String[] natives) + public Map getFlavorsForNatives (String[] natives) { - return new HashMap(); + return new HashMap(); } /** @@ -263,13 +263,13 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable * specified native and a DataFlavor whose MIME type is a decoded * version of the native. */ - public List getFlavorsForNative (String nat) + public List getFlavorsForNative (String nat) throws NotImplementedException { throw new Error ("Not implemented"); } - public List getNativesForFlavor (DataFlavor flav) + public List getNativesForFlavor (DataFlavor flav) throws NotImplementedException { throw new Error ("Not implemented"); diff --git a/libjava/classpath/java/awt/dnd/DragGestureEvent.java b/libjava/classpath/java/awt/dnd/DragGestureEvent.java index 351ae540072..2a22abb12aa 100644 --- a/libjava/classpath/java/awt/dnd/DragGestureEvent.java +++ b/libjava/classpath/java/awt/dnd/DragGestureEvent.java @@ -59,7 +59,7 @@ public class DragGestureEvent extends EventObject private Component component; private final Point origin; private final int action; - private List events; + private List events; private DragGestureRecognizer dgr; /** @@ -71,15 +71,15 @@ public class DragGestureEvent extends EventObject * @throws IllegalArgumentException - if input parameters are null */ public DragGestureEvent(DragGestureRecognizer dgr, int action, Point origin, - List events) - { + List events) + { super(dgr); if (origin == null || events == null || dgr == null) throw new IllegalArgumentException(); - + this.origin = origin; this.action = action; - this.events = events; + this.events = (List) events; this.dgr = dgr; this.component = dgr.getComponent(); this.dragSource = dgr.getDragSource(); @@ -130,7 +130,7 @@ public class DragGestureEvent extends EventObject * * @return an iterator representation of the List of events. */ - public Iterator iterator() + public Iterator iterator() { return events.iterator(); } @@ -155,7 +155,7 @@ public class DragGestureEvent extends EventObject { return events.toArray(array); } - + /** * Gets the user's preferred action. * diff --git a/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java b/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java index 32bbc56da5d..3973e528481 100644 --- a/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java +++ b/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java @@ -1,5 +1,5 @@ /* DragGestureRecognizer.java -- - Copyright (C) 2002,2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,8 +38,6 @@ exception statement from your version. */ package java.awt.dnd; -import gnu.classpath.NotImplementedException; - import java.awt.Component; import java.awt.Point; import java.awt.event.InputEvent; @@ -52,6 +50,8 @@ import java.util.TooManyListenersException; /** * STUBBED + * @author Michael Koch (konqueror@gmx.de) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.2 */ public abstract class DragGestureRecognizer implements Serializable @@ -65,7 +65,7 @@ public abstract class DragGestureRecognizer implements Serializable protected Component component; protected transient DragGestureListener dragGestureListener; protected int sourceActions; - protected ArrayList events = new ArrayList(); + protected ArrayList events = new ArrayList(); protected DragGestureRecognizer(DragSource ds, Component c, int sa, DragGestureListener dgl) @@ -127,11 +127,12 @@ public abstract class DragGestureRecognizer implements Serializable return events.size() > 0 ? (InputEvent) events.get(0) : null; } + /** + * Resets the recognizer. If a gesture is currently recognize, discard it. + */ public void resetRecognizer() - throws NotImplementedException { - events = new ArrayList(); - // FIXME: Not implemented fully. + events.clear(); } /** @@ -164,6 +165,7 @@ public abstract class DragGestureRecognizer implements Serializable if(dragGestureListener != null) dragGestureListener.dragGestureRecognized (new DragGestureEvent(this, dragAction, p, events)); + resetRecognizer(); } protected void appendEvent(InputEvent e) diff --git a/libjava/classpath/java/awt/dnd/DragSource.java b/libjava/classpath/java/awt/dnd/DragSource.java index 48fa2388ee2..cd4a93a3e3f 100644 --- a/libjava/classpath/java/awt/dnd/DragSource.java +++ b/libjava/classpath/java/awt/dnd/DragSource.java @@ -105,16 +105,15 @@ public class DragSource implements Serializable ds = null; throw new HeadlessException(); } - + if (ds == null) ds = new DragSource(); return ds; } public static boolean isDragImageSupported() - throws NotImplementedException { - // FIXME: Implement this + // In all cases, Sun returns false here. return false; } @@ -140,8 +139,6 @@ public class DragSource implements Serializable // This function sends the same message to the context, which then forwards // it to the peer, passing itself as a parameter. Now, the native system has // access to the Transferable through the context. - - // FIXME: Add check to determine if dragging. try { @@ -228,15 +225,16 @@ public class DragSource implements Serializable { return flavorMap; } - - public DragGestureRecognizer createDragGestureRecognizer(Class recognizer, - Component c, - int actions, - DragGestureListener dgl) + + public T + createDragGestureRecognizer(Class recognizer, + Component c, + int actions, + DragGestureListener dgl) { - return Toolkit.getDefaultToolkit().createDragGestureRecognizer(recognizer, - this, c, - actions, dgl); + return (T) Toolkit.getDefaultToolkit().createDragGestureRecognizer(recognizer, + this, c, + actions, dgl); } public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, @@ -299,23 +297,23 @@ public class DragSource implements Serializable /** * @since 1.4 */ - public EventListener[] getListeners (Class listenerType) + public T[] getListeners (Class listenerType) { if (listenerType == DragSourceListener.class) return DnDEventMulticaster.getListeners (dragSourceListener, - listenerType); + listenerType); if (listenerType == DragSourceMotionListener.class) return DnDEventMulticaster.getListeners (dragSourceMotionListener, - listenerType); + listenerType); // Return an empty EventListener array. - return new EventListener [0]; + return (T[]) new EventListener [0]; } /** * TODO - * @return + * @return TODO * * @since 1.5 */ @@ -323,6 +321,6 @@ public class DragSource implements Serializable throws NotImplementedException { // FIXME: Not implemented. - return 4; + return 8; } } // class DragSource diff --git a/libjava/classpath/java/awt/dnd/DragSourceContext.java b/libjava/classpath/java/awt/dnd/DragSourceContext.java index 1fee5c0c304..ed1cbaa4454 100644 --- a/libjava/classpath/java/awt/dnd/DragSourceContext.java +++ b/libjava/classpath/java/awt/dnd/DragSourceContext.java @@ -38,8 +38,6 @@ exception statement from your version. */ package java.awt.dnd; -import gnu.classpath.NotImplementedException; - import java.awt.Component; import java.awt.Cursor; import java.awt.Image; @@ -268,7 +266,8 @@ public class DragSourceContext for (int i = 0; i < dsl.length; i++) dsl[i].dragExit(e); - updateCurrentCursor(0, 0, DEFAULT); + updateCurrentCursor(DnDConstants.ACTION_NONE, DnDConstants.ACTION_NONE, + DEFAULT); } /** @@ -340,26 +339,45 @@ public class DragSourceContext * @param status - the status of the cursor (constant). */ protected void updateCurrentCursor(int dropOp, int targetAct, int status) - throws NotImplementedException { - // FIXME: Not implemented fully - if (!useCustomCursor) + if (! useCustomCursor) { - Cursor cursor = null; + Cursor newCursor = null; switch (status) { + default: + targetAct = DnDConstants.ACTION_NONE; case ENTER: - break; case CHANGED: - break; case OVER: - break; - default: - break; + int action = dropOp & targetAct; + if (action == DnDConstants.ACTION_NONE) + { + if ((dropOp & DnDConstants.ACTION_LINK) != 0) + newCursor = DragSource.DefaultLinkNoDrop; + else if ((dropOp & DnDConstants.ACTION_MOVE) != 0) + newCursor = DragSource.DefaultMoveNoDrop; + else + newCursor = DragSource.DefaultCopyNoDrop; + } + else + { + if ((dropOp & DnDConstants.ACTION_LINK) != 0) + newCursor = DragSource.DefaultLinkDrop; + else if ((dropOp & DnDConstants.ACTION_MOVE) != 0) + newCursor = DragSource.DefaultMoveDrop; + else + newCursor = DragSource.DefaultCopyDrop; + } } - this.cursor = cursor; - peer.setCursor(cursor); + if (cursor == null || ! cursor.equals(newCursor)) + { + cursor = newCursor; + DragSourceContextPeer p = peer; + if (p != null) + p.setCursor(cursor); + } } } } // class DragSourceContext diff --git a/libjava/classpath/java/awt/dnd/DropTarget.java b/libjava/classpath/java/awt/dnd/DropTarget.java index a3650567f09..63be5ac046d 100644 --- a/libjava/classpath/java/awt/dnd/DropTarget.java +++ b/libjava/classpath/java/awt/dnd/DropTarget.java @@ -38,13 +38,14 @@ exception statement from your version. */ package java.awt.dnd; -import gnu.classpath.NotImplementedException; - import java.awt.Component; import java.awt.GraphicsEnvironment; import java.awt.HeadlessException; +import java.awt.Insets; import java.awt.Point; +import java.awt.Rectangle; import java.awt.datatransfer.FlavorMap; +import java.awt.datatransfer.SystemFlavorMap; import java.awt.dnd.peer.DropTargetPeer; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -54,6 +55,8 @@ import java.io.Serializable; import java.util.EventListener; import java.util.TooManyListenersException; +import javax.swing.Timer; + /** * @author Michael Koch * @since 1.2 @@ -69,30 +72,87 @@ public class DropTarget protected static class DropTargetAutoScroller implements ActionListener { + /** + * The threshold that keeps the autoscroller running. + */ + private static final int HYSTERESIS = 10; + + /** + * The initial timer delay. + */ + private static final int DELAY = 100; + private Component component; private Point point; - + + /** + * The timer that triggers autoscrolling. + */ + private Timer timer; + + /** + * The outer region of the scroller. This is the component's size. + */ + private Rectangle outer; + + /** + * The inner region of the scroller. This is the component size without + * the autoscroll insets. + */ + private Rectangle inner; + protected DropTargetAutoScroller (Component c, Point p) { component = c; point = p; + timer = new Timer(DELAY, this); + timer.setCoalesce(true); + timer.start(); } protected void updateLocation (Point newLocn) { + Point previous = point; point = newLocn; + if (Math.abs(point.x - previous.x) > HYSTERESIS + || Math.abs(point.y - previous.y) > HYSTERESIS) + { + if (timer.isRunning()) + timer.stop(); + } + else + { + if (! timer.isRunning()) + timer.start(); + } } protected void stop () - throws NotImplementedException { - // FIXME: implement this + timer.start(); } public void actionPerformed (ActionEvent e) - throws NotImplementedException { - // FIXME: implement this + Autoscroll autoScroll = (Autoscroll) component; + + // First synchronize the inner and outer rectangles. + Insets i = autoScroll.getAutoscrollInsets(); + int width = component.getWidth(); + int height = component.getHeight(); + if (width != outer.width || height != outer.height) + outer.setBounds(0, 0, width, height); + if (inner.x != i.left || inner.y != i.top) + inner.setLocation(i.left, i.top); + int inWidth = width - i.left - i.right; + int inHeight = height - i.top - i.bottom; + if (inWidth != inner.width || inHeight != inner.height) + inner.setSize(inWidth, inHeight); + + // Scroll if the outer rectangle contains the location, but the + // inner doesn't. + if (outer.contains(point) && ! inner.contains(point)) + autoScroll.autoscroll(point); } } @@ -113,7 +173,7 @@ public class DropTarget */ public DropTarget () { - this (null, 0, null, true, null); + this (null, DnDConstants.ACTION_COPY_OR_MOVE, null, true, null); } /** @@ -124,7 +184,7 @@ public class DropTarget */ public DropTarget (Component c, DropTargetListener dtl) { - this (c, 0, dtl, true, null); + this (c, DnDConstants.ACTION_COPY_OR_MOVE, dtl, true, null); } /** @@ -164,7 +224,11 @@ public class DropTarget setComponent(c); setDefaultActions(i); dropTargetListener = dtl; - flavorMap = fm; + + if (fm == null) + flavorMap = SystemFlavorMap.getDefaultFlavorMap(); + else + flavorMap = fm; setActive (b); @@ -177,6 +241,8 @@ public class DropTarget */ public void setComponent (Component c) { + if (component != null) + clearAutoscroll(); component = c; } @@ -207,6 +273,8 @@ public class DropTarget public void setActive (boolean active) { this.active = active; + if (! active) + clearAutoscroll(); } public boolean isActive() @@ -225,8 +293,14 @@ public class DropTarget public void addDropTargetListener (DropTargetListener dtl) throws TooManyListenersException { + if (dtl == null) + return; + + if (dtl.equals(this)) + throw new IllegalArgumentException(); + if (dropTargetListener != null) - throw new TooManyListenersException (); + throw new TooManyListenersException(); dropTargetListener = dtl; } @@ -239,30 +313,47 @@ public class DropTarget public void dragEnter(DropTargetDragEvent dtde) { - if (dropTargetListener != null) - dropTargetListener.dragEnter(dtde); + if (active) + { + if (dropTargetListener != null) + dropTargetListener.dragEnter(dtde); + initializeAutoscrolling(dtde.getLocation()); + } } public void dragOver(DropTargetDragEvent dtde) { - if (dropTargetListener != null) - dropTargetListener.dragOver(dtde); + if (active) + { + if (dropTargetListener != null) + dropTargetListener.dragOver(dtde); + updateAutoscroll(dtde.getLocation()); + } } public void dropActionChanged(DropTargetDragEvent dtde) { - if (dropTargetListener != null) - dropTargetListener.dropActionChanged(dtde); + if (active) + { + if (dropTargetListener != null) + dropTargetListener.dropActionChanged(dtde); + updateAutoscroll(dtde.getLocation()); + } } public void dragExit(DropTargetEvent dte) { - if (dropTargetListener != null) - dropTargetListener.dragExit(dte); + if (active) + { + if (dropTargetListener != null) + dropTargetListener.dragExit(dte); + clearAutoscroll(); + } } public void drop(DropTargetDropEvent dtde) { + clearAutoscroll(); if (dropTargetListener != null) dropTargetListener.drop(dtde); } @@ -321,15 +412,13 @@ public class DropTarget protected DropTarget.DropTargetAutoScroller createDropTargetAutoScroller (Component c, Point p) { - if (autoscroller == null) - autoscroller = new DropTarget.DropTargetAutoScroller (c, p); - - return autoscroller; + return new DropTarget.DropTargetAutoScroller (c, p); } protected void initializeAutoscrolling(Point p) { - createDropTargetAutoScroller (component, p); + if (component instanceof Autoscroll) // Checks for null too. + autoscroller = createDropTargetAutoScroller (component, p); } protected void updateAutoscroll(Point dragCursorLocn) @@ -340,6 +429,10 @@ public class DropTarget protected void clearAutoscroll() { - autoscroller = null; + if (autoscroller != null) + { + autoscroller.stop(); + autoscroller = null; + } } } // class DropTarget diff --git a/libjava/classpath/java/awt/dnd/DropTargetContext.java b/libjava/classpath/java/awt/dnd/DropTargetContext.java index 31945c34bb1..d970e2e0881 100644 --- a/libjava/classpath/java/awt/dnd/DropTargetContext.java +++ b/libjava/classpath/java/awt/dnd/DropTargetContext.java @@ -1,5 +1,5 @@ /* DropTargetContext.java -- - Copyright (C) 2002, 2003, 2004, 2006, Free Software Foundation + Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -49,6 +49,7 @@ import java.util.List; /** * @author Michael Koch (konqueror@gmx.de) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.2 */ public class DropTargetContext implements Serializable @@ -128,51 +129,51 @@ public class DropTargetContext implements Serializable * * @exception InvalidDnDOperationException If a drop is not outstanding. */ - public void dropComplete(boolean success) + public void dropComplete (boolean success) { if (dtcp != null) dtcp.dropComplete(success); } - protected void acceptDrag(int dragOperation) + protected void acceptDrag (int dragOperation) { if (dtcp != null) dtcp.acceptDrag(dragOperation); } - protected void rejectDrag() + protected void rejectDrag () { if (dtcp != null) dtcp.rejectDrag(); } - protected void acceptDrop(int dropOperation) + protected void acceptDrop (int dropOperation) { if (dtcp != null) dtcp.acceptDrop(dropOperation); } - protected void rejectDrop() + protected void rejectDrop () { if (dtcp != null) dtcp.rejectDrop(); } - protected DataFlavor[] getCurrentDataFlavors() + protected DataFlavor[] getCurrentDataFlavors () { if (dtcp != null) dtcp.getTransferDataFlavors(); return null; } - protected List getCurrentDataFlavorsAsList() + protected List getCurrentDataFlavorsAsList () { - return Arrays.asList(getCurrentDataFlavors()); + return Arrays.asList(getCurrentDataFlavors ()); } - protected boolean isDataFlavorSupported(DataFlavor flavor) + protected boolean isDataFlavorSupported (DataFlavor flavor) { - return getCurrentDataFlavorsAsList().contains(flavor); + return getCurrentDataFlavorsAsList().contains (flavor); } /** diff --git a/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java b/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java index 89bf1778a71..58feb438767 100644 --- a/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java +++ b/libjava/classpath/java/awt/dnd/DropTargetDragEvent.java @@ -108,7 +108,7 @@ public class DropTargetDragEvent extends DropTargetEvent return context.getCurrentDataFlavors (); } - public List getCurrentDataFlavorsAsList () + public List getCurrentDataFlavorsAsList () { return context.getCurrentDataFlavorsAsList (); } @@ -147,7 +147,6 @@ public class DropTargetDragEvent extends DropTargetEvent */ public Transferable getTransferable() { - // FIXME: Not implemented - return null; + return context.getTransferable(); } } // class DropTargetDragEvent diff --git a/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java b/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java index 9754bb11ef5..dd85ef712c5 100644 --- a/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java +++ b/libjava/classpath/java/awt/dnd/DropTargetDropEvent.java @@ -1,5 +1,5 @@ /* DropTargetDropEvent.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -123,7 +123,7 @@ public class DropTargetDropEvent extends DropTargetEvent return context.getCurrentDataFlavors(); } - public List getCurrentDataFlavorsAsList() + public List getCurrentDataFlavorsAsList() { return context.getCurrentDataFlavorsAsList(); } diff --git a/libjava/classpath/java/awt/dnd/DropTargetEvent.java b/libjava/classpath/java/awt/dnd/DropTargetEvent.java index f75f756d037..cb2aec6402e 100644 --- a/libjava/classpath/java/awt/dnd/DropTargetEvent.java +++ b/libjava/classpath/java/awt/dnd/DropTargetEvent.java @@ -41,6 +41,10 @@ import java.util.EventObject; public class DropTargetEvent extends EventObject { + + /** + * Serialization identifier for Sun 1.5 compatability + */ private static final long serialVersionUID = 2821229066521922993L; protected DropTargetContext context; diff --git a/libjava/classpath/java/awt/event/ComponentEvent.java b/libjava/classpath/java/awt/event/ComponentEvent.java index ba9c2a5b3f2..6d478055aa5 100644 --- a/libjava/classpath/java/awt/event/ComponentEvent.java +++ b/libjava/classpath/java/awt/event/ComponentEvent.java @@ -1,5 +1,5 @@ /* ComponentEvent.java -- notification of events for components - Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -114,24 +114,27 @@ public class ComponentEvent extends AWTEvent */ public String paramString() { + StringBuffer s = new StringBuffer(); + // Unlike Sun, we don't throw NullPointerException or ClassCastException // when source was illegally changed. - switch (id) - { - case COMPONENT_MOVED: - return "COMPONENT_MOVED " - + (source instanceof Component - ? ((Component) source).getBounds() : (Object) ""); - case COMPONENT_RESIZED: - return "COMPONENT_RESIZED " - + (source instanceof Component - ? ((Component) source).getBounds() : (Object) ""); - case COMPONENT_SHOWN: - return "COMPONENT_SHOWN"; - case COMPONENT_HIDDEN: - return "COMPONENT_HIDDEN"; - default: - return "unknown type"; - } + if (id == COMPONENT_MOVED) + s.append("COMPONENT_MOVED "); + else if (id == COMPONENT_RESIZED) + s.append("COMPONENT_RESIZED "); + else if (id == COMPONENT_SHOWN) + s.append("COMPONENT_SHOWN "); + else if (id == COMPONENT_HIDDEN) + s.append("COMPONENT_HIDDEN "); + else + return "unknown type"; + + s.append("(").append(getComponent().getX()).append(",") + .append(getComponent().getY()).append(" ") + .append(getComponent().getWidth()).append("x") + .append(getComponent().getHeight()).append(")"); + + return s.toString(); } + } // class ComponentEvent diff --git a/libjava/classpath/java/awt/font/FontRenderContext.java b/libjava/classpath/java/awt/font/FontRenderContext.java index c50e5e5092a..c25bae3ec16 100644 --- a/libjava/classpath/java/awt/font/FontRenderContext.java +++ b/libjava/classpath/java/awt/font/FontRenderContext.java @@ -117,8 +117,12 @@ public class FontRenderContext */ public int hashCode () { - // FIXME: check what SUN does here. - return affineTransform == null ? 0 : affineTransform.hashCode (); + int code = ( isAntiAliased ? 1 : 0 ) + ( usesFractionalMetrics ? 2 : 0 ); + + if( affineTransform != null && !affineTransform.isIdentity() ) + code ^= affineTransform.hashCode(); + + return code; } public boolean isAntiAliased () diff --git a/libjava/classpath/java/awt/font/TextHitInfo.java b/libjava/classpath/java/awt/font/TextHitInfo.java index 2b23e1963cd..f6fee1addae 100644 --- a/libjava/classpath/java/awt/font/TextHitInfo.java +++ b/libjava/classpath/java/awt/font/TextHitInfo.java @@ -81,6 +81,9 @@ public final class TextHitInfo public boolean equals(TextHitInfo hitInfo) { + if (hitInfo == null) + return false; + return (charIndex == hitInfo.getCharIndex ()) && (leadingEdge == hitInfo.isLeadingEdge ()); } @@ -97,7 +100,7 @@ public final class TextHitInfo public static TextHitInfo beforeOffset(int offset) { - return new TextHitInfo (offset, false); + return new TextHitInfo ((offset - 1), false); } public static TextHitInfo afterOffset(int offset) diff --git a/libjava/classpath/java/awt/font/TextLayout.java b/libjava/classpath/java/awt/font/TextLayout.java index b1473f25564..dc0e537eba9 100644 --- a/libjava/classpath/java/awt/font/TextLayout.java +++ b/libjava/classpath/java/awt/font/TextLayout.java @@ -38,18 +38,18 @@ exception statement from your version. */ package java.awt.font; -import gnu.classpath.NotImplementedException; - import java.awt.Font; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.AffineTransform; +import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; import java.text.CharacterIterator; import java.text.AttributedCharacterIterator; import java.text.Bidi; +import java.util.ArrayList; import java.util.Map; /** @@ -57,19 +57,86 @@ import java.util.Map; */ public final class TextLayout implements Cloneable { - private GlyphVector[] runs; - private Font font; + /** + * Holds the layout data that belongs to one run of characters. + */ + private class Run + { + /** + * The actual glyph vector. + */ + GlyphVector glyphVector; + + /** + * The font for this text run. + */ + Font font; + + /** + * The start of the run. + */ + int runStart; + + /** + * The end of the run. + */ + int runEnd; + + /** + * The layout location of the beginning of the run. + */ + float location; + + /** + * Initializes the Run instance. + * + * @param gv the glyph vector + * @param start the start index of the run + * @param end the end index of the run + */ + Run(GlyphVector gv, Font f, int start, int end) + { + glyphVector = gv; + font = f; + runStart = start; + runEnd = end; + } + + /** + * Returns true when this run is left to right, + * false otherwise. + * + * @return true when this run is left to right, + * false otherwise + */ + boolean isLeftToRight() + { + return (glyphVector.getLayoutFlags() & GlyphVector.FLAG_RUN_RTL) == 0; + } + } + + /** + * The laid out character runs. + */ + private Run[] runs; + private FontRenderContext frc; - private String string; + private char[] string; + private int offset; + private int length; private Rectangle2D boundsCache; private LineMetrics lm; /** - * Start and end character indices of the runs. - * First index is the run number, second is 0 or 1 for the starting - * and ending character index of the run, respectively. + * The total advance of this text layout. This is cache for maximum + * performance. + */ + private float totalAdvance = -1F; + + /** + * The cached natural bounds. */ - private int[][] runIndices; + private Rectangle2D naturalBounds; /** * Character indices. @@ -88,66 +155,98 @@ public final class TextLayout implements Cloneable private boolean hasWhitespace = false; /** + * The {@link Bidi} object that is used for reordering and by + * {@link #getCharacterLevel(int)}. + */ + private Bidi bidi; + + /** + * Mpas the logical position of each individual character in the original + * string to its visual position. + */ + private int[] logicalToVisual; + + /** + * Maps visual positions of a character to its logical position + * in the original string. + */ + private int[] visualToLogical; + + /** + * The cached hashCode. + */ + private int hash; + + /** * The default caret policy. */ - public static final TextLayout.CaretPolicy DEFAULT_CARET_POLICY = new CaretPolicy(); + public static final TextLayout.CaretPolicy DEFAULT_CARET_POLICY = + new CaretPolicy(); /** * Constructs a TextLayout. */ - public TextLayout (String string, Font font, FontRenderContext frc) + public TextLayout (String str, Font font, FontRenderContext frc) { - this.font = font; this.frc = frc; - this.string = string; - lm = font.getLineMetrics(string, frc); + string = str.toCharArray(); + offset = 0; + length = this.string.length; + lm = font.getLineMetrics(this.string, offset, length, frc); // Get base direction and whitespace info getStringProperties(); - if( Bidi.requiresBidi( string.toCharArray(), 0, string.length() ) ) + if (Bidi.requiresBidi(string, offset, offset + length)) { - Bidi bidi = new Bidi( string, leftToRight ? - Bidi.DIRECTION_LEFT_TO_RIGHT : - Bidi.DIRECTION_RIGHT_TO_LEFT ); + bidi = new Bidi(str, leftToRight ? Bidi.DIRECTION_LEFT_TO_RIGHT + : Bidi.DIRECTION_RIGHT_TO_LEFT ); int rc = bidi.getRunCount(); byte[] table = new byte[ rc ]; for(int i = 0; i < table.length; i++) table[i] = (byte)bidi.getRunLevel(i); - runs = new GlyphVector[ rc ]; - runIndices = new int[rc][2]; - for(int i = 0; i < runs.length; i++) + runs = new Run[rc]; + for(int i = 0; i < rc; i++) { - runIndices[i][0] = bidi.getRunStart( i ); - runIndices[i][1] = bidi.getRunLimit( i ); - if( runIndices[i][0] != runIndices[i][1] ) // no empty runs. + int start = bidi.getRunStart(i); + int end = bidi.getRunLimit(i); + if(start != end) // no empty runs. { - runs[i] = font.layoutGlyphVector - ( frc, string.toCharArray(), - runIndices[i][0], runIndices[i][1], - ((table[i] & 1) == 0) ? Font.LAYOUT_LEFT_TO_RIGHT : - Font.LAYOUT_RIGHT_TO_LEFT ); - } + GlyphVector gv = font.layoutGlyphVector(frc, + string, start, end, + ((table[i] & 1) == 0) ? Font.LAYOUT_LEFT_TO_RIGHT + : Font.LAYOUT_RIGHT_TO_LEFT ); + runs[i] = new Run(gv, font, start, end); + } } Bidi.reorderVisually( table, 0, runs, 0, runs.length ); + // Clean up null runs. + ArrayList cleaned = new ArrayList(rc); + for (int i = 0; i < rc; i++) + { + if (runs[i] != null) + cleaned.add(runs[i]); + } + runs = new Run[cleaned.size()]; + runs = (Run[]) cleaned.toArray(runs); } else { - runs = new GlyphVector[ 1 ]; - runIndices = new int[1][2]; - runIndices[0][0] = 0; - runIndices[0][1] = string.length(); - runs[ 0 ] = font.layoutGlyphVector( frc, string.toCharArray(), - 0, string.length(), - leftToRight ? - Font.LAYOUT_LEFT_TO_RIGHT : - Font.LAYOUT_RIGHT_TO_LEFT ); + GlyphVector gv = font.layoutGlyphVector( frc, string, offset, length, + leftToRight ? Font.LAYOUT_LEFT_TO_RIGHT + : Font.LAYOUT_RIGHT_TO_LEFT ); + Run run = new Run(gv, font, 0, length); + runs = new Run[]{ run }; } setCharIndices(); + setupMappings(); + layoutRuns(); } - public TextLayout (String string, Map attributes, FontRenderContext frc) + public TextLayout (String string, + Map attributes, + FontRenderContext frc) { this( string, new Font( attributes ), frc ); } @@ -165,7 +264,6 @@ public final class TextLayout implements Cloneable */ TextLayout(TextLayout t, int startIndex, int endIndex) { - font = t.font; frc = t.frc; boundsCache = null; lm = t.lm; @@ -173,30 +271,35 @@ public final class TextLayout implements Cloneable if( endIndex > t.getCharacterCount() ) endIndex = t.getCharacterCount(); - string = t.string.substring( startIndex, endIndex ); + string = t.string; + offset = startIndex + offset; + length = endIndex - startIndex; int startingRun = t.charIndices[startIndex][0]; int nRuns = 1 + t.charIndices[endIndex - 1][0] - startingRun; - runIndices = new int[ nRuns ][2]; - runs = new GlyphVector[ nRuns ]; + runs = new Run[nRuns]; for( int i = 0; i < nRuns; i++ ) { - GlyphVector run = t.runs[ i + startingRun ]; + Run run = t.runs[i + startingRun]; + GlyphVector gv = run.glyphVector; + Font font = run.font; // Copy only the relevant parts of the first and last runs. int beginGlyphIndex = (i > 0) ? 0 : t.charIndices[startIndex][1]; - int numEntries = ( i < nRuns - 1) ? run.getNumGlyphs() : + int numEntries = ( i < nRuns - 1) ? gv.getNumGlyphs() : 1 + t.charIndices[endIndex - 1][1] - beginGlyphIndex; - int[] codes = run.getGlyphCodes(beginGlyphIndex, numEntries, null); - runs[ i ] = font.createGlyphVector( frc, codes ); - runIndices[ i ][0] = t.runIndices[i + startingRun][0] - startIndex; - runIndices[ i ][1] = t.runIndices[i + startingRun][1] - startIndex; + int[] codes = gv.getGlyphCodes(beginGlyphIndex, numEntries, null); + gv = font.createGlyphVector(frc, codes); + runs[i] = new Run(gv, font, run.runStart - startIndex, + run.runEnd - startIndex); } - runIndices[ nRuns - 1 ][1] = endIndex - 1; + runs[nRuns - 1].runEnd = endIndex - 1; setCharIndices(); + setupMappings(); determineWhiteSpace(); + layoutRuns(); } private void setCharIndices() @@ -207,16 +310,53 @@ public final class TextLayout implements Cloneable for(int run = 0; run < runs.length; run++) { currentChar = -1; - for( int gi = 0; gi < runs[ run ].getNumGlyphs(); gi++) - { - if( runs[ run ].getGlyphCharIndex( gi ) != currentChar ) - { - charIndices[ i ][0] = run; - charIndices[ i ][1] = gi; - currentChar = runs[ run ].getGlyphCharIndex( gi ); - i++; - } - } + Run current = runs[run]; + GlyphVector gv = current.glyphVector; + for( int gi = 0; gi < gv.getNumGlyphs(); gi++) + { + if( gv.getGlyphCharIndex( gi ) != currentChar ) + { + charIndices[ i ][0] = run; + charIndices[ i ][1] = gi; + currentChar = gv.getGlyphCharIndex( gi ); + i++; + } + } + } + } + + /** + * Initializes the logicalToVisual and visualToLogial maps. + */ + private void setupMappings() + { + int numChars = getCharacterCount(); + logicalToVisual = new int[numChars]; + visualToLogical = new int[numChars]; + int lIndex = 0; + int vIndex = 0; + // We scan the runs in visual order and set the mappings accordingly. + for (int i = 0; i < runs.length; i++) + { + Run run = runs[i]; + if (run.isLeftToRight()) + { + for (lIndex = run.runStart; lIndex < run.runEnd; lIndex++) + { + logicalToVisual[lIndex] = vIndex; + visualToLogical[vIndex] = lIndex; + vIndex++; + } + } + else + { + for (lIndex = run.runEnd - 1; lIndex >= run.runStart; lIndex--) + { + logicalToVisual[lIndex] = vIndex; + visualToLogical[vIndex] = lIndex; + vIndex++; + } + } } } @@ -253,11 +393,11 @@ public final class TextLayout implements Cloneable private void getStringProperties() { boolean gotDirection = false; - int i = 0; - + int i = offset; + int endOffs = offset + length; leftToRight = true; - while( i < string.length() && !gotDirection ) - switch( Character.getDirectionality( string.charAt( i++ ) ) ) + while( i < endOffs && !gotDirection ) + switch( Character.getDirectionality(string[i++]) ) { case Character.DIRECTIONALITY_LEFT_TO_RIGHT: case Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING: @@ -280,28 +420,30 @@ public final class TextLayout implements Cloneable { // Determine if there's whitespace in the thing. // Ignore trailing chars. - int i = string.length() - 1; + int i = offset + length - 1; hasWhitespace = false; - while( i >= 0 && Character.isWhitespace( string.charAt(i) ) ) + while( i >= offset && Character.isWhitespace( string[i] ) ) i--; // Check the remaining chars - while( i >= 0 ) - if( Character.isWhitespace( string.charAt(i--) ) ) + while( i >= offset ) + if( Character.isWhitespace( string[i--] ) ) hasWhitespace = true; } protected Object clone () { - return new TextLayout( string, font, frc ); + return new TextLayout( this, 0, length); } public void draw (Graphics2D g2, float x, float y) { for(int i = 0; i < runs.length; i++) { - g2.drawGlyphVector(runs[i], x, y); - Rectangle2D r = runs[i].getLogicalBounds(); - x += r.getWidth(); + Run run = runs[i]; + GlyphVector gv = run.glyphVector; + g2.drawGlyphVector(gv, x, y); + Rectangle2D r = gv.getLogicalBounds(); + x += r.getWidth(); } } @@ -326,9 +468,16 @@ public final class TextLayout implements Cloneable public float getAdvance () { - float totalAdvance = 0f; - for(int i = 0; i < runs.length; i++) - totalAdvance += runs[i].getLogicalBounds().getWidth(); + if (totalAdvance == -1F) + { + totalAdvance = 0f; + for(int i = 0; i < runs.length; i++) + { + Run run = runs[i]; + GlyphVector gv = run.glyphVector; + totalAdvance += gv.getLogicalBounds().getWidth(); + } + } return totalAdvance; } @@ -363,27 +512,33 @@ public final class TextLayout implements Cloneable double advance = 0; for( int i = 0; i < ri; i++ ) - advance += runs[i].getLogicalBounds().getWidth(); + { + Run run = runs[i]; + GlyphVector gv = run.glyphVector; + advance += gv.getLogicalBounds().getWidth(); + } for( int i = ri; i <= charIndices[ secondEndpoint - 1 ][0]; i++ ) { + Run run = runs[i]; + GlyphVector gv = run.glyphVector; int dg; if( i == charIndices[ secondEndpoint - 1 ][0] ) dg = charIndices[ secondEndpoint - 1][1]; else - dg = runs[i].getNumGlyphs() - 1; + dg = gv.getNumGlyphs() - 1; for( int j = 0; j <= dg; j++ ) { - Rectangle2D r2 = (runs[i].getGlyphVisualBounds( j )). + Rectangle2D r2 = (gv.getGlyphVisualBounds( j )). getBounds2D(); - Point2D p = runs[i].getGlyphPosition( j ); + Point2D p = gv.getGlyphPosition( j ); r2.setRect( advance + r2.getX(), r2.getY(), r2.getWidth(), r2.getHeight() ); gp.append(r2, false); } - advance += runs[i].getLogicalBounds().getWidth(); + advance += gv.getLogicalBounds().getWidth(); } return gp; } @@ -397,46 +552,138 @@ public final class TextLayout implements Cloneable public float[] getCaretInfo (TextHitInfo hit) { - return getCaretInfo(hit, getBounds()); + return getCaretInfo(hit, getNaturalBounds()); } public float[] getCaretInfo (TextHitInfo hit, Rectangle2D bounds) - throws NotImplementedException { - throw new Error ("not implemented"); + float[] info = new float[2]; + int index = hit.getCharIndex(); + boolean leading = hit.isLeadingEdge(); + // For the boundary cases we return the boundary runs. + Run run; + + if (index >= length) + { + info[0] = getAdvance(); + info[1] = 0; + } + else + { + if (index < 0) + { + run = runs[0]; + index = 0; + leading = true; + } + else + run = findRunAtIndex(index); + + int glyphIndex = index - run.runStart; + Shape glyphBounds = run.glyphVector.getGlyphLogicalBounds(glyphIndex); + Rectangle2D glyphRect = glyphBounds.getBounds2D(); + if (isVertical()) + { + if (leading) + info[0] = (float) glyphRect.getMinY(); + else + info[0] = (float) glyphRect.getMaxY(); + } + else + { + if (leading) + info[0] = (float) glyphRect.getMinX(); + else + info[0] = (float) glyphRect.getMaxX(); + } + info[0] += run.location; + info[1] = run.font.getItalicAngle(); + } + return info; } - public Shape getCaretShape (TextHitInfo hit) + public Shape getCaretShape(TextHitInfo hit) { - return getCaretShape( hit, getBounds() ); + return getCaretShape(hit, getBounds()); } - public Shape getCaretShape (TextHitInfo hit, Rectangle2D bounds) - throws NotImplementedException + public Shape getCaretShape(TextHitInfo hit, Rectangle2D bounds) { - throw new Error ("not implemented"); + // TODO: Handle vertical shapes somehow. + float[] info = getCaretInfo(hit); + float x1 = info[0]; + float y1 = (float) bounds.getMinY(); + float x2 = info[0]; + float y2 = (float) bounds.getMaxY(); + if (info[1] != 0) + { + // Shift x1 and x2 according to the slope. + x1 -= y1 * info[1]; + x2 -= y2 * info[1]; + } + GeneralPath path = new GeneralPath(GeneralPath.WIND_EVEN_ODD, 2); + path.moveTo(x1, y1); + path.lineTo(x2, y2); + return path; } - public Shape[] getCaretShapes (int offset) + public Shape[] getCaretShapes(int offset) { - return getCaretShapes( offset, getBounds() ); + return getCaretShapes(offset, getNaturalBounds()); } - public Shape[] getCaretShapes (int offset, Rectangle2D bounds) - throws NotImplementedException + public Shape[] getCaretShapes(int offset, Rectangle2D bounds) { - throw new Error ("not implemented"); + return getCaretShapes(offset, bounds, DEFAULT_CARET_POLICY); + } + + public Shape[] getCaretShapes(int offset, Rectangle2D bounds, + CaretPolicy policy) + { + // The RI returns a 2-size array even when there's only one + // shape in it. + Shape[] carets = new Shape[2]; + TextHitInfo hit1 = TextHitInfo.afterOffset(offset); + int caretHit1 = hitToCaret(hit1); + TextHitInfo hit2 = hit1.getOtherHit(); + int caretHit2 = hitToCaret(hit2); + if (caretHit1 == caretHit2) + { + carets[0] = getCaretShape(hit1); + carets[1] = null; // The RI returns null in this seldom case. + } + else + { + Shape caret1 = getCaretShape(hit1); + Shape caret2 = getCaretShape(hit2); + TextHitInfo strong = policy.getStrongCaret(hit1, hit2, this); + if (strong == hit1) + { + carets[0] = caret1; + carets[1] = caret2; + } + else + { + carets[0] = caret2; + carets[1] = caret1; + } + } + return carets; } public int getCharacterCount () { - return string.length(); + return length; } public byte getCharacterLevel (int index) - throws NotImplementedException { - throw new Error ("not implemented"); + byte level; + if( bidi == null ) + level = 0; + else + level = (byte) bidi.getLevelAt(index); + return level; } public float getDescent () @@ -481,19 +728,21 @@ public final class TextLayout implements Cloneable double advance = 0; for( int i = 0; i < ri; i++ ) - advance += runs[i].getLogicalBounds().getWidth(); + advance += runs[i].glyphVector.getLogicalBounds().getWidth(); for( int i = ri; i <= charIndices[ secondEndpoint - 1 ][0]; i++ ) { + Run run = runs[i]; + GlyphVector gv = run.glyphVector; int dg; // last index in this run to use. if( i == charIndices[ secondEndpoint - 1 ][0] ) dg = charIndices[ secondEndpoint - 1][1]; else - dg = runs[i].getNumGlyphs() - 1; + dg = gv.getNumGlyphs() - 1; for(; gi <= dg; gi++ ) { - Rectangle2D r2 = (runs[i].getGlyphLogicalBounds( gi )). + Rectangle2D r2 = (gv.getGlyphLogicalBounds( gi )). getBounds2D(); if( r == null ) r = r2; @@ -502,7 +751,7 @@ public final class TextLayout implements Cloneable } gi = 0; // reset glyph index into run for next run. - advance += runs[i].getLogicalBounds().getWidth(); + advance += gv.getLogicalBounds().getWidth(); } return r; @@ -510,33 +759,137 @@ public final class TextLayout implements Cloneable public int[] getLogicalRangesForVisualSelection (TextHitInfo firstEndpoint, TextHitInfo secondEndpoint) - throws NotImplementedException { - throw new Error ("not implemented"); + // Check parameters. + checkHitInfo(firstEndpoint); + checkHitInfo(secondEndpoint); + + // Convert to visual and order correctly. + int start = hitToCaret(firstEndpoint); + int end = hitToCaret(secondEndpoint); + if (start > end) + { + // Swap start and end so that end >= start. + int temp = start; + start = end; + end = temp; + } + + // Now walk through the visual indices and mark the included pieces. + boolean[] include = new boolean[length]; + for (int i = start; i < end; i++) + { + include[visualToLogical[i]] = true; + } + + // Count included runs. + int numRuns = 0; + boolean in = false; + for (int i = 0; i < length; i++) + { + if (include[i] != in) // At each run in/out point we toggle the in var. + { + in = ! in; + if (in) // At each run start we count up. + numRuns++; + } + } + + // Put together the ranges array. + int[] ranges = new int[numRuns * 2]; + int index = 0; + in = false; + for (int i = 0; i < length; i++) + { + if (include[i] != in) + { + ranges[index] = i; + index++; + in = ! in; + } + } + // If the last run ends at the very end, include that last bit too. + if (in) + ranges[index] = length; + + return ranges; + } + + public TextHitInfo getNextLeftHit(int offset) + { + return getNextLeftHit(offset, DEFAULT_CARET_POLICY); } - public TextHitInfo getNextLeftHit (int offset) - throws NotImplementedException + public TextHitInfo getNextLeftHit(int offset, CaretPolicy policy) { - throw new Error ("not implemented"); + if (policy == null) + throw new IllegalArgumentException("Null policy not allowed"); + if (offset < 0 || offset > length) + throw new IllegalArgumentException("Offset out of bounds"); + + TextHitInfo hit1 = TextHitInfo.afterOffset(offset); + TextHitInfo hit2 = hit1.getOtherHit(); + + TextHitInfo strong = policy.getStrongCaret(hit1, hit2, this); + TextHitInfo next = getNextLeftHit(strong); + TextHitInfo ret = null; + if (next != null) + { + TextHitInfo next2 = getVisualOtherHit(next); + ret = policy.getStrongCaret(next2, next, this); + } + return ret; } public TextHitInfo getNextLeftHit (TextHitInfo hit) - throws NotImplementedException { - throw new Error ("not implemented"); + checkHitInfo(hit); + int index = hitToCaret(hit); + TextHitInfo next = null; + if (index != 0) + { + index--; + next = caretToHit(index); + } + return next; } - public TextHitInfo getNextRightHit (int offset) - throws NotImplementedException + public TextHitInfo getNextRightHit(int offset) { - throw new Error ("not implemented"); + return getNextRightHit(offset, DEFAULT_CARET_POLICY); } - public TextHitInfo getNextRightHit (TextHitInfo hit) - throws NotImplementedException + public TextHitInfo getNextRightHit(int offset, CaretPolicy policy) { - throw new Error ("not implemented"); + if (policy == null) + throw new IllegalArgumentException("Null policy not allowed"); + if (offset < 0 || offset > length) + throw new IllegalArgumentException("Offset out of bounds"); + + TextHitInfo hit1 = TextHitInfo.afterOffset(offset); + TextHitInfo hit2 = hit1.getOtherHit(); + + TextHitInfo next = getNextRightHit(policy.getStrongCaret(hit1, hit2, this)); + TextHitInfo ret = null; + if (next != null) + { + TextHitInfo next2 = getVisualOtherHit(next); + ret = policy.getStrongCaret(next2, next, this); + } + return ret; + } + + public TextHitInfo getNextRightHit(TextHitInfo hit) + { + checkHitInfo(hit); + int index = hitToCaret(hit); + TextHitInfo next = null; + if (index < length) + { + index++; + next = caretToHit(index); + } + return next; } public Shape getOutline (AffineTransform tx) @@ -545,8 +898,9 @@ public final class TextLayout implements Cloneable GeneralPath gp = new GeneralPath(); for(int i = 0; i < runs.length; i++) { - gp.append( runs[i].getOutline( x, 0f ), false ); - Rectangle2D r = runs[i].getLogicalBounds(); + GlyphVector gv = runs[i].glyphVector; + gp.append( gv.getOutline( x, 0f ), false ); + Rectangle2D r = gv.getLogicalBounds(); x += r.getWidth(); } if( tx != null ) @@ -562,27 +916,28 @@ public final class TextLayout implements Cloneable return 0f; // No trailing whitespace - if( !Character.isWhitespace( string.charAt( string.length() -1 ) ) ) + if( !Character.isWhitespace( string[offset + length - 1]) ) return getAdvance(); // Get length of all runs up to the last for(int i = 0; i < runs.length - 1; i++) - totalAdvance += runs[i].getLogicalBounds().getWidth(); + totalAdvance += runs[i].glyphVector.getLogicalBounds().getWidth(); - int lastRun = runIndices[ runs.length - 1 ][0]; - int j = string.length() - 1; - while( j >= lastRun && Character.isWhitespace( string.charAt( j ) ) ) j--; + int lastRun = runs[runs.length - 1].runStart; + int j = length - 1; + while( j >= lastRun && Character.isWhitespace( string[j] ) ) j--; if( j < lastRun ) return totalAdvance; // entire last run is whitespace int lastNonWSChar = j - lastRun; j = 0; - while( runs[ runs.length - 1 ].getGlyphCharIndex( j ) + while( runs[ runs.length - 1 ].glyphVector.getGlyphCharIndex( j ) <= lastNonWSChar ) { - totalAdvance += runs[ runs.length - 1 ].getGlyphLogicalBounds( j ). - getBounds2D().getWidth(); + totalAdvance += runs[ runs.length - 1 ].glyphVector + .getGlyphLogicalBounds( j ) + .getBounds2D().getWidth(); j ++; } @@ -599,15 +954,129 @@ public final class TextLayout implements Cloneable public Shape getVisualHighlightShape (TextHitInfo firstEndpoint, TextHitInfo secondEndpoint, Rectangle2D bounds) - throws NotImplementedException { - throw new Error ("not implemented"); + GeneralPath path = new GeneralPath(GeneralPath.WIND_EVEN_ODD); + Shape caret1 = getCaretShape(firstEndpoint, bounds); + path.append(caret1, false); + Shape caret2 = getCaretShape(secondEndpoint, bounds); + path.append(caret2, false); + // Append left (top) bounds to selection if necessary. + int c1 = hitToCaret(firstEndpoint); + int c2 = hitToCaret(secondEndpoint); + if (c1 == 0 || c2 == 0) + { + path.append(left(bounds), false); + } + // Append right (bottom) bounds if necessary. + if (c1 == length || c2 == length) + { + path.append(right(bounds), false); + } + return path.getBounds2D(); + } + + /** + * Returns the shape that makes up the left (top) edge of this text layout. + * + * @param b the bounds + * + * @return the shape that makes up the left (top) edge of this text layout + */ + private Shape left(Rectangle2D b) + { + GeneralPath left = new GeneralPath(GeneralPath.WIND_EVEN_ODD); + left.append(getCaretShape(TextHitInfo.beforeOffset(0)), false); + if (isVertical()) + { + float y = (float) b.getMinY(); + left.append(new Line2D.Float((float) b.getMinX(), y, + (float) b.getMaxX(), y), false); + } + else + { + float x = (float) b.getMinX(); + left.append(new Line2D.Float(x, (float) b.getMinY(), + x, (float) b.getMaxY()), false); + } + return left.getBounds2D(); + } + + /** + * Returns the shape that makes up the right (bottom) edge of this text + * layout. + * + * @param b the bounds + * + * @return the shape that makes up the right (bottom) edge of this text + * layout + */ + private Shape right(Rectangle2D b) + { + GeneralPath right = new GeneralPath(GeneralPath.WIND_EVEN_ODD); + right.append(getCaretShape(TextHitInfo.afterOffset(length)), false); + if (isVertical()) + { + float y = (float) b.getMaxY(); + right.append(new Line2D.Float((float) b.getMinX(), y, + (float) b.getMaxX(), y), false); + } + else + { + float x = (float) b.getMaxX(); + right.append(new Line2D.Float(x, (float) b.getMinY(), + x, (float) b.getMaxY()), false); + } + return right.getBounds2D(); } public TextHitInfo getVisualOtherHit (TextHitInfo hit) - throws NotImplementedException { - throw new Error ("not implemented"); + checkHitInfo(hit); + int hitIndex = hit.getCharIndex(); + + int index; + boolean leading; + if (hitIndex == -1 || hitIndex == length) + { + // Boundary case. + int visual; + if (isLeftToRight() == (hitIndex == -1)) + visual = 0; + else + visual = length - 1; + index = visualToLogical[visual]; + if (isLeftToRight() == (hitIndex == -1)) + leading = isCharacterLTR(index); // LTR. + else + leading = ! isCharacterLTR(index); // RTL. + } + else + { + // Normal case. + int visual = logicalToVisual[hitIndex]; + boolean b; + if (isCharacterLTR(hitIndex) == hit.isLeadingEdge()) + { + visual--; + b = false; + } + else + { + visual++; + b = true; + } + if (visual >= 0 && visual < length) + { + index = visualToLogical[visual]; + leading = b == isLeftToRight(); + } + else + { + index = b == isLeftToRight() ? length : -1; + leading = index == length; + } + } + return leading ? TextHitInfo.leading(index) : TextHitInfo.trailing(index); } /** @@ -622,16 +1091,19 @@ public final class TextLayout implements Cloneable int nglyphs = 0; // # of whitespace chars // determine last non-whitespace char. - int lastNWS = string.length() - 1; - while( Character.isWhitespace( string.charAt( lastNWS ) ) ) lastNWS--; + int lastNWS = offset + length - 1; + while( Character.isWhitespace( string[lastNWS] ) ) lastNWS--; // locations of the glyphs. - int[] wsglyphs = new int[string.length() * 10]; + int[] wsglyphs = new int[length * 10]; for(int run = 0; run < runs.length; run++ ) - for(int i = 0; i < runs[run].getNumGlyphs(); i++ ) + { + Run current = runs[run]; + for(int i = 0; i < current.glyphVector.getNumGlyphs(); i++ ) { - int cindex = runIndices[run][0] + runs[run].getGlyphCharIndex( i ); - if( Character.isWhitespace( string.charAt( cindex ) ) ) + int cindex = current.runStart + + current.glyphVector.getGlyphCharIndex( i ); + if( Character.isWhitespace( string[cindex] ) ) // && cindex < lastNWS ) { wsglyphs[ nglyphs * 2 ] = run; @@ -639,34 +1111,144 @@ public final class TextLayout implements Cloneable nglyphs++; } } - + } deltaW = deltaW / nglyphs; // Change in width per whitespace glyph double w = 0; int cws = 0; // Shift all characters for(int run = 0; run < runs.length; run++ ) - for(int i = 0; i < runs[ run ].getNumGlyphs(); i++ ) - { - if( wsglyphs[ cws * 2 ] == run && wsglyphs[ cws * 2 + 1 ] == i ) - { - cws++; // update 'current whitespace' - w += deltaW; // increment the shift - } - Point2D p = runs[ run ].getGlyphPosition( i ); - p.setLocation( p.getX() + w, p.getY() ); - runs[ run ].setGlyphPosition( i, p ); - } + { + Run current = runs[run]; + for(int i = 0; i < current.glyphVector.getNumGlyphs(); i++ ) + { + if( wsglyphs[ cws * 2 ] == run && wsglyphs[ cws * 2 + 1 ] == i ) + { + cws++; // update 'current whitespace' + w += deltaW; // increment the shift + } + Point2D p = current.glyphVector.getGlyphPosition( i ); + p.setLocation( p.getX() + w, p.getY() ); + current.glyphVector.setGlyphPosition( i, p ); + } + } } public TextHitInfo hitTestChar (float x, float y) { - return hitTestChar(x, y, getBounds()); + return hitTestChar(x, y, getNaturalBounds()); } + /** + * Finds the character hit at the specified point. This 'clips' this + * text layout against the specified bounds rectangle. That + * means that in the case where a point is outside these bounds, this method + * returns the leading edge of the first character or the trailing edge of + * the last character. + * + * @param x the X location to test + * @param y the Y location to test + * @param bounds the bounds to test against + * + * @return the character hit at the specified point + */ public TextHitInfo hitTestChar (float x, float y, Rectangle2D bounds) - throws NotImplementedException { - throw new Error ("not implemented"); + // Check bounds. + if (isVertical()) + { + if (y < bounds.getMinY()) + return TextHitInfo.leading(0); + else if (y > bounds.getMaxY()) + return TextHitInfo.trailing(getCharacterCount() - 1); + } + else + { + if (x < bounds.getMinX()) + return TextHitInfo.leading(0); + else if (x > bounds.getMaxX()) + return TextHitInfo.trailing(getCharacterCount() - 1); + } + + TextHitInfo hitInfo = null; + if (isVertical()) + { + // Search for the run at the location. + // TODO: Perform binary search for maximum efficiency. However, we + // need the run location laid out statically to do that. + int numRuns = runs.length; + Run hitRun = null; + for (int i = 0; i < numRuns && hitRun == null; i++) + { + Run run = runs[i]; + Rectangle2D lBounds = run.glyphVector.getLogicalBounds(); + if (lBounds.getMinY() + run.location <= y + && lBounds.getMaxY() + run.location >= y) + hitRun = run; + } + // Now we have (hopefully) found a run that hits. Now find the + // right character. + if (hitRun != null) + { + GlyphVector gv = hitRun.glyphVector; + for (int i = hitRun.runStart; + i < hitRun.runEnd && hitInfo == null; i++) + { + int gi = i - hitRun.runStart; + Rectangle2D lBounds = gv.getGlyphLogicalBounds(gi) + .getBounds2D(); + if (lBounds.getMinY() + hitRun.location <= y + && lBounds.getMaxY() + hitRun.location >= y) + { + // Found hit. Now check if we are leading or trailing. + boolean leading = true; + if (lBounds.getCenterY() + hitRun.location <= y) + leading = false; + hitInfo = leading ? TextHitInfo.leading(i) + : TextHitInfo.trailing(i); + } + } + } + } + else + { + // Search for the run at the location. + // TODO: Perform binary search for maximum efficiency. However, we + // need the run location laid out statically to do that. + int numRuns = runs.length; + Run hitRun = null; + for (int i = 0; i < numRuns && hitRun == null; i++) + { + Run run = runs[i]; + Rectangle2D lBounds = run.glyphVector.getLogicalBounds(); + if (lBounds.getMinX() + run.location <= x + && lBounds.getMaxX() + run.location >= x) + hitRun = run; + } + // Now we have (hopefully) found a run that hits. Now find the + // right character. + if (hitRun != null) + { + GlyphVector gv = hitRun.glyphVector; + for (int i = hitRun.runStart; + i < hitRun.runEnd && hitInfo == null; i++) + { + int gi = i - hitRun.runStart; + Rectangle2D lBounds = gv.getGlyphLogicalBounds(gi) + .getBounds2D(); + if (lBounds.getMinX() + hitRun.location <= x + && lBounds.getMaxX() + hitRun.location >= x) + { + // Found hit. Now check if we are leading or trailing. + boolean leading = true; + if (lBounds.getCenterX() + hitRun.location <= x) + leading = false; + hitInfo = leading ? TextHitInfo.leading(i) + : TextHitInfo.trailing(i); + } + } + } + } + return hitInfo; } public boolean isLeftToRight () @@ -680,18 +1262,127 @@ public final class TextLayout implements Cloneable } public int hashCode () - throws NotImplementedException { - throw new Error ("not implemented"); + // This is implemented in sync to equals(). + if (hash == 0 && runs.length > 0) + { + hash = runs.length; + for (int i = 0; i < runs.length; i++) + hash ^= runs[i].glyphVector.hashCode(); + } + return hash; } public String toString () { - return "TextLayout [string:"+string+", Font:"+font+" Rendercontext:"+ + return "TextLayout [string:"+ new String(string, offset, length) + +" Rendercontext:"+ frc+"]"; } /** + * Returns the natural bounds of that text layout. This is made up + * of the ascent plus descent and the text advance. + * + * @return the natural bounds of that text layout + */ + private Rectangle2D getNaturalBounds() + { + if (naturalBounds == null) + naturalBounds = new Rectangle2D.Float(0.0F, -getAscent(), getAdvance(), + getAscent() + getDescent()); + return naturalBounds; + } + + private void checkHitInfo(TextHitInfo hit) + { + if (hit == null) + throw new IllegalArgumentException("Null hit info not allowed"); + int index = hit.getInsertionIndex(); + if (index < 0 || index > length) + throw new IllegalArgumentException("Hit index out of range"); + } + + private int hitToCaret(TextHitInfo hit) + { + int index = hit.getCharIndex(); + int ret; + if (index < 0) + ret = isLeftToRight() ? 0 : length; + else if (index >= length) + ret = isLeftToRight() ? length : 0; + else + { + ret = logicalToVisual[index]; + if (hit.isLeadingEdge() != isCharacterLTR(index)) + ret++; + } + return ret; + } + + private TextHitInfo caretToHit(int index) + { + TextHitInfo hit; + if (index == 0 || index == length) + { + if ((index == length) == isLeftToRight()) + hit = TextHitInfo.leading(length); + else + hit = TextHitInfo.trailing(-1); + } + else + { + int logical = visualToLogical[index]; + boolean leading = isCharacterLTR(logical); // LTR. + hit = leading ? TextHitInfo.leading(logical) + : TextHitInfo.trailing(logical); + } + return hit; + } + + private boolean isCharacterLTR(int index) + { + byte level = getCharacterLevel(index); + return (level & 1) == 0; + } + + /** + * Finds the run that holds the specified (logical) character index. This + * returns null when the index is not inside the range. + * + * @param index the index of the character to find + * + * @return the run that holds the specified character + */ + private Run findRunAtIndex(int index) + { + Run found = null; + // TODO: Can we do better than linear searching here? + for (int i = 0; i < runs.length && found == null; i++) + { + Run run = runs[i]; + if (run.runStart <= index && run.runEnd > index) + found = run; + } + return found; + } + + /** + * Computes the layout locations for each run. + */ + private void layoutRuns() + { + float loc = 0.0F; + float lastWidth = 0.0F; + for (int i = 0; i < runs.length; i++) + { + runs[i].location = loc; + Rectangle2D bounds = runs[i].glyphVector.getLogicalBounds(); + loc += isVertical() ? bounds.getHeight() : bounds.getWidth(); + } + } + + /** * Inner class describing a caret policy */ public static class CaretPolicy @@ -703,9 +1394,25 @@ public final class TextLayout implements Cloneable public TextHitInfo getStrongCaret(TextHitInfo hit1, TextHitInfo hit2, TextLayout layout) - throws NotImplementedException { - throw new Error ("not implemented"); + byte l1 = layout.getCharacterLevel(hit1.getCharIndex()); + byte l2 = layout.getCharacterLevel(hit2.getCharIndex()); + TextHitInfo strong; + if (l1 == l2) + { + if (hit2.isLeadingEdge() && ! hit1.isLeadingEdge()) + strong = hit2; + else + strong = hit1; + } + else + { + if (l1 < l2) + strong = hit1; + else + strong = hit2; + } + return strong; } } } diff --git a/libjava/classpath/java/awt/geom/AffineTransform.java b/libjava/classpath/java/awt/geom/AffineTransform.java index 55b6883553d..5bc51ddee81 100644 --- a/libjava/classpath/java/awt/geom/AffineTransform.java +++ b/libjava/classpath/java/awt/geom/AffineTransform.java @@ -1401,10 +1401,10 @@ public class AffineTransform implements Cloneable, Serializable * documented, but appears to be the same as: *
        * long l = Double.doubleToLongBits(getScaleX());
    -   * l = l * 31 + Double.doubleToLongBits(getShearY());
        * l = l * 31 + Double.doubleToLongBits(getShearX());
    -   * l = l * 31 + Double.doubleToLongBits(getScaleY());
        * l = l * 31 + Double.doubleToLongBits(getTranslateX());
    +   * l = l * 31 + Double.doubleToLongBits(getShearY());
    +   * l = l * 31 + Double.doubleToLongBits(getScaleY());
        * l = l * 31 + Double.doubleToLongBits(getTranslateY());
        * return (int) ((l >> 32) ^ l);
        * 
    @@ -1413,12 +1413,12 @@ public class AffineTransform implements Cloneable, Serializable */ public int hashCode() { - long l = Double.doubleToLongBits(m00); - l = l * 31 + Double.doubleToLongBits(m10); - l = l * 31 + Double.doubleToLongBits(m01); - l = l * 31 + Double.doubleToLongBits(m11); - l = l * 31 + Double.doubleToLongBits(m02); - l = l * 31 + Double.doubleToLongBits(m12); + long l = Double.doubleToLongBits(m00); + l = l * 31 + Double.doubleToLongBits(m01); + l = l * 31 + Double.doubleToLongBits(m02); + l = l * 31 + Double.doubleToLongBits(m10); + l = l * 31 + Double.doubleToLongBits(m11); + l = l * 31 + Double.doubleToLongBits(m12); return (int) ((l >> 32) ^ l); } diff --git a/libjava/classpath/java/awt/geom/Arc2D.java b/libjava/classpath/java/awt/geom/Arc2D.java index eff34a08144..8d5b01cd5bb 100644 --- a/libjava/classpath/java/awt/geom/Arc2D.java +++ b/libjava/classpath/java/awt/geom/Arc2D.java @@ -774,14 +774,9 @@ public abstract class Arc2D extends RectangularShape y = a.getY(); w = a.getWidth(); h = a.getHeight(); - double start = a.getAngleStart() * (Math.PI / 180); - double extent = a.getAngleExtent() * (Math.PI / 180); + double start = Math.toRadians(a.getAngleStart()); + double extent = Math.toRadians(a.getAngleExtent()); - if (extent < 0) - { - extent = -extent; - start = 2 * Math.PI - extent + start; - } this.start = start; this.extent = extent; @@ -790,11 +785,11 @@ public abstract class Arc2D extends RectangularShape limit = -1; else if (extent == 0) limit = type; - else if (extent <= Math.PI / 2.0) + else if (Math.abs(extent) <= Math.PI / 2.0) limit = type + 1; - else if (extent <= Math.PI) + else if (Math.abs(extent) <= Math.PI) limit = type + 2; - else if (extent <= 3.0 * (Math.PI / 2.0)) + else if (Math.abs(extent) <= 3.0 * (Math.PI / 2.0)) limit = type + 3; else limit = type + 4; @@ -909,9 +904,20 @@ public abstract class Arc2D extends RectangularShape double kappa = (Math.sqrt(2.0) - 1.0) * (4.0 / 3.0); double quad = (Math.PI / 2.0); - double curr_begin = start + (current - 1) * quad; - double curr_extent = Math.min((start + extent) - curr_begin, quad); - double portion_of_a_quadrant = curr_extent / quad; + double curr_begin; + double curr_extent; + if (extent > 0) + { + curr_begin = start + (current - 1) * quad; + curr_extent = Math.min((start + extent) - curr_begin, quad); + } + else + { + curr_begin = start - (current - 1) * quad; + curr_extent = Math.max((start + extent) - curr_begin, -quad); + } + + double portion_of_a_quadrant = Math.abs(curr_extent / quad); double x0 = xmid + rx * Math.cos(curr_begin); double y0 = ymid - ry * Math.sin(curr_begin); @@ -932,7 +938,11 @@ public abstract class Arc2D extends RectangularShape // will *subtract* the y value of this control vector from our first // point. cvec[0] = 0; - cvec[1] = len; + if (extent > 0) + cvec[1] = len; + else + cvec[1] = -len; + trans.scale(rx, ry); trans.rotate(angle); trans.transform(cvec, 0, cvec, 0, 1); @@ -942,7 +952,11 @@ public abstract class Arc2D extends RectangularShape // control vector #2 would, ideally, be sticking out and to the // right, in a first quadrant arc segment. again, subtraction of y. cvec[0] = 0; - cvec[1] = -len; + if (extent > 0) + cvec[1] = -len; + else + cvec[1] = len; + trans.rotate(curr_extent); trans.transform(cvec, 0, cvec, 0, 1); coords[2] = x1 + cvec[0]; diff --git a/libjava/classpath/java/awt/geom/GeneralPath.java b/libjava/classpath/java/awt/geom/GeneralPath.java index e0ca8e18357..1e9ede5ee67 100644 --- a/libjava/classpath/java/awt/geom/GeneralPath.java +++ b/libjava/classpath/java/awt/geom/GeneralPath.java @@ -86,7 +86,7 @@ public final class GeneralPath implements Shape, Cloneable public static final int WIND_EVEN_ODD = java.awt.geom.PathIterator.WIND_EVEN_ODD; - /** Same constant as {@link PathIterator.WIND_NON_ZERO}. */ + /** Same constant as {@link PathIterator#WIND_NON_ZERO}. */ public static final int WIND_NON_ZERO = java.awt.geom.PathIterator.WIND_NON_ZERO; @@ -140,7 +140,11 @@ public final class GeneralPath implements Shape, Cloneable /** * Constructs a GeneralPath with a specific winding rule * and the default initial capacity (20). - * @param rule the winding rule (WIND_NON_ZERO or WIND_EVEN_ODD) + * @param rule the winding rule ({@link #WIND_NON_ZERO} or + * {@link #WIND_EVEN_ODD}) + * + * @throws IllegalArgumentException if rule is not one of the + * listed values. */ public GeneralPath(int rule) { @@ -151,8 +155,12 @@ public final class GeneralPath implements Shape, Cloneable * Constructs a GeneralPath with a specific winding rule * and the initial capacity. The initial capacity should be * the approximate number of path segments to be used. - * @param rule the winding rule (WIND_NON_ZERO or WIND_EVEN_ODD) + * @param rule the winding rule ({@link #WIND_NON_ZERO} or + * {@link #WIND_EVEN_ODD}) * @param capacity the inital capacity, in path segments + * + * @throws IllegalArgumentException if rule is not one of the + * listed values. */ public GeneralPath(int rule, int capacity) { @@ -169,7 +177,10 @@ public final class GeneralPath implements Shape, Cloneable /** * Constructs a GeneralPath from an arbitrary shape object. * The Shapes PathIterator path and winding rule will be used. - * @param s the shape + * + * @param s the shape (null not permitted). + * + * @throws NullPointerException if shape is null. */ public GeneralPath(Shape s) { @@ -183,6 +194,9 @@ public final class GeneralPath implements Shape, Cloneable /** * Adds a new point to a path. + * + * @param x the x-coordinate. + * @param y the y-coordinate. */ public void moveTo(float x, float y) { @@ -263,6 +277,11 @@ public final class GeneralPath implements Shape, Cloneable * Appends the segments of a Shape to the path. If connect is * true, the new path segments are connected to the existing one with a line. * The winding rule of the Shape is ignored. + * + * @param s the shape (null not permitted). + * @param connect whether to connect the new shape to the existing path. + * + * @throws NullPointerException if s is null. */ public void append(Shape s, boolean connect) { @@ -276,7 +295,7 @@ public final class GeneralPath implements Shape, Cloneable * PathIterator#SEG_LINETO} segment. * * @param iter the PathIterator specifying which segments shall be - * appended. + * appended (null not permitted). * * @param connect true for substituting the initial * {@link PathIterator#SEG_MOVETO} segment by a {@link @@ -327,6 +346,8 @@ public final class GeneralPath implements Shape, Cloneable /** * Returns the path’s current winding rule. + * + * @return {@link #WIND_EVEN_ODD} or {@link #WIND_NON_ZERO}. */ public int getWindingRule() { @@ -338,6 +359,8 @@ public final class GeneralPath implements Shape, Cloneable * considered ’inside’ or ’outside’ the path * on drawing. Valid rules are WIND_EVEN_ODD for an even-odd winding rule, * or WIND_NON_ZERO for a non-zero winding rule. + * + * @param rule the rule ({@link #WIND_EVEN_ODD} or {@link #WIND_NON_ZERO}). */ public void setWindingRule(int rule) { @@ -348,6 +371,8 @@ public final class GeneralPath implements Shape, Cloneable /** * Returns the current appending point of the path. + * + * @return The point. */ public Point2D getCurrentPoint() { @@ -367,6 +392,8 @@ public final class GeneralPath implements Shape, Cloneable /** * Applies a transform to the path. + * + * @param xform the transform (null not permitted). */ public void transform(AffineTransform xform) { @@ -706,6 +733,8 @@ public final class GeneralPath implements Shape, Cloneable /** * Helper method - ensure the size of the data arrays, * otherwise, reallocate new ones twice the size + * + * @param size the minimum array size. */ private void ensureSize(int size) { diff --git a/libjava/classpath/java/awt/geom/RectangularShape.java b/libjava/classpath/java/awt/geom/RectangularShape.java index 8f66dabf2e7..3ee1615413f 100644 --- a/libjava/classpath/java/awt/geom/RectangularShape.java +++ b/libjava/classpath/java/awt/geom/RectangularShape.java @@ -326,15 +326,12 @@ public abstract class RectangularShape implements Shape, Cloneable /** * Returns a bounding box for this shape, in integer format. Notice that you - * may get a tighter bound with getBounds2D. If the frame is empty, the - * box is the default empty box at the origin. + * may get a tighter bound with getBounds2D. * * @return a bounding box */ public Rectangle getBounds() { - if (isEmpty()) - return new Rectangle(); double x = getX(); double y = getY(); double maxx = Math.ceil(x + getWidth()); diff --git a/libjava/classpath/java/awt/geom/RoundRectangle2D.java b/libjava/classpath/java/awt/geom/RoundRectangle2D.java index ac0e6f8128a..ac4d89fff80 100644 --- a/libjava/classpath/java/awt/geom/RoundRectangle2D.java +++ b/libjava/classpath/java/awt/geom/RoundRectangle2D.java @@ -1,5 +1,5 @@ /* RoundRectangle2D.java -- represents a rectangle with rounded corners - Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation + Copyright (C) 2000, 2002, 2003, 2004, 2006, Free Software Foundation This file is part of GNU Classpath. @@ -37,7 +37,6 @@ exception statement from your version. */ package java.awt.geom; -import java.util.NoSuchElementException; /** This class implements a rectangle with rounded corners. @@ -46,13 +45,29 @@ import java.util.NoSuchElementException; */ public abstract class RoundRectangle2D extends RectangularShape { - /** Return the arc height of this round rectangle. */ + /** + * Return the arc height of this round rectangle. The arc height and width + * control the roundness of the corners of the rectangle. + * + * @return The arc height. + * + * @see #getArcWidth() + */ public abstract double getArcHeight(); - /** Return the arc width of this round rectangle. */ + /** + * Return the arc width of this round rectangle. The arc width and height + * control the roundness of the corners of the rectangle. + * + * @return The arc width. + * + * @see #getArcHeight() + */ public abstract double getArcWidth(); - /** Set the values of this round rectangle + /** + * Set the values of this round rectangle. + * * @param x The x coordinate * @param y The y coordinate * @param w The width @@ -63,14 +78,16 @@ public abstract class RoundRectangle2D extends RectangularShape public abstract void setRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight); - /** Create a RoundRectangle2D. This is protected because this class + /** + * Create a RoundRectangle2D. This is protected because this class * is abstract and cannot be instantiated. */ protected RoundRectangle2D() { } - /** Return true if this object contains the specified point. + /** + * Return true if this object contains the specified point. * @param x The x coordinate * @param y The y coordinate */ @@ -106,7 +123,8 @@ public abstract class RoundRectangle2D extends RectangularShape return dx * dx + dy * dy <= 1.0; } - /** Return true if this object contains the specified rectangle + /** + * Return true if this object contains the specified rectangle * @param x The x coordinate * @param y The y coordinate * @param w The width @@ -120,176 +138,185 @@ public abstract class RoundRectangle2D extends RectangularShape && contains(x + w, y)); } - /** Return a new path iterator which iterates over this rectangle. + /** + * Return a new path iterator which iterates over this rectangle. + * * @param at An affine transform to apply to the object */ - public PathIterator getPathIterator(final AffineTransform at) + public PathIterator getPathIterator(final AffineTransform at) { - final double minx = getX(); - final double miny = getY(); - final double maxx = minx + getWidth(); - final double maxy = miny + getHeight(); - final double arcwidth = getArcWidth(); - final double archeight = getArcHeight(); - return new PathIterator() + double arcW = Math.min(getArcWidth(), getWidth()); + double arcH = Math.min(getArcHeight(), getHeight()); + + // check for special cases... + if (arcW <= 0 || arcH <= 0) + { + Rectangle2D r = new Rectangle2D.Double(getX(), getY(), getWidth(), + getHeight()); + return r.getPathIterator(at); + } + else if (arcW >= getWidth() && arcH >= getHeight()) + { + Ellipse2D e = new Ellipse2D.Double(getX(), getY(), getWidth(), + getHeight()); + return e.getPathIterator(at); + } + + // otherwise return the standard case... + return new PathIterator() + { + double x = getX(); + double y = getY(); + double w = getWidth(); + double h = getHeight(); + double arcW = Math.min(getArcWidth(), w); + double arcH = Math.min(getArcHeight(), h); + Arc2D.Double arc = new Arc2D.Double(); + PathIterator corner; + int step = -1; + + public int currentSegment(double[] coords) + { + if (corner != null) // steps 1, 3, 5 and 7 + { + int r = corner.currentSegment(coords); + if (r == SEG_MOVETO) + r = SEG_LINETO; + return r; + } + if (step == -1) + { + // move to the start position + coords[0] = x + w - arcW / 2; + coords[1] = y; + } + else if (step == 0) + { + // top line + coords[0] = x + arcW / 2; + coords[1] = y; + } + else if (step == 2) + { + // left line + coords[0] = x; + coords[1] = y + h - arcH / 2; + } + else if (step == 4) + { + // bottom line + coords[0] = x + w - arcW / 2; + coords[1] = y + h; + } + else if (step == 6) + { + // right line + coords[0] = x + w; + coords[1] = y + arcH / 2; + } + if (at != null) + at.transform(coords, 0, coords, 0, 1); + return step == -1 ? SEG_MOVETO : SEG_LINETO; + } + + public int currentSegment(float[] coords) { + if (corner != null) // steps 1, 3, 5 and 7 + { + int r = corner.currentSegment(coords); + if (r == SEG_MOVETO) + r = SEG_LINETO; + return r; + } + if (step == -1) + { + // move to the start position + coords[0] = (float) (x + w - arcW / 2); + coords[1] = (float) y; + } + else if (step == 0) + { + // top line + coords[0] = (float) (x + arcW / 2); + coords[1] = (float) y; + } + else if (step == 2) + { + // left line + coords[0] = (float) x; + coords[1] = (float) (y + h - arcH / 2); + } + else if (step == 4) + { + // bottom line + coords[0] = (float) (x + w - arcW / 2); + coords[1] = (float) (y + h); + } + else if (step == 6) + { + // right line + coords[0] = (float) (x + w); + coords[1] = (float) (y + arcH / 2); + } + if (at != null) + at.transform(coords, 0, coords, 0, 1); + return step == -1 ? SEG_MOVETO : SEG_LINETO; + } + + public int getWindingRule() { + return WIND_NON_ZERO; + } + + public boolean isDone() { + return step >= 8; + } + + public void next() { - /** We iterate counterclockwise around the rectangle, starting in the - * upper right. This variable tracks our current point, which - * can be on either side of a given corner. */ - private int current = 0; - - /** Child path iterator, used for corners. */ - private PathIterator corner; - - /** This is used when rendering the corners. We re-use the arc - * for each corner. */ - private Arc2D arc = new Arc2D.Double(); - - /** Temporary array used by getPoint. */ - private double[] temp = new double[2]; - - public int getWindingRule() - { - return WIND_NON_ZERO; - } - - public boolean isDone() - { - return current > 9; - } - - private void getPoint(int val) - { - switch (val) - { - case 0: - case 8: - temp[0] = maxx; - temp[1] = miny + archeight; - break; - case 7: - temp[0] = maxx; - temp[1] = maxy - archeight; - break; - case 6: - temp[0] = maxx - arcwidth; - temp[1] = maxy; - break; - case 5: - temp[0] = minx + arcwidth; - temp[1] = maxy; - break; - case 4: - temp[0] = minx; - temp[1] = maxy - archeight; - break; - case 3: - temp[0] = minx; - temp[1] = miny + archeight; - break; - case 2: - temp[0] = minx + arcwidth; - temp[1] = miny; - break; - case 1: - temp[0] = maxx - arcwidth; - temp[1] = miny; - break; - } - } - - public void next() - { - if (current >= 8) - ++current; - else if (corner != null) - { - // We're iterating through the corner. Work on the child - // iterator; if it finishes, reset and move to the next - // point along the rectangle. - corner.next(); - if (corner.isDone()) - { - corner = null; - ++current; - } - } - else - { - // Make an arc between this point on the rectangle and - // the next one, and then iterate over this arc. - getPoint(current); - double x1 = temp[0]; - double y1 = temp[1]; - getPoint(current + 1); - Rectangle2D.Double r = new Rectangle2D.Double(Math.min(x1, - temp[0]), - Math.min(y1, - temp[1]), - Math.abs(x1 - - temp[0]), - Math.abs(y1 - - temp[1])); - arc.setArc(r, (current >> 1) * 90.0, 90.0, Arc2D.OPEN); - corner = arc.getPathIterator(at); - } - } - - public int currentSegment(float[] coords) - { - if (corner != null) - { - int r = corner.currentSegment(coords); - if (r == SEG_MOVETO) - r = SEG_LINETO; - return r; - } - - if (current < 9) - { - getPoint(current); - coords[0] = (float) temp[0]; - coords[1] = (float) temp[1]; - } - else if (current == 9) - return SEG_CLOSE; - else - throw new NoSuchElementException("rect iterator out of bounds"); - - if (at != null) - at.transform(coords, 0, coords, 0, 1); - return current == 0 ? SEG_MOVETO : SEG_LINETO; - } - - public int currentSegment(double[] coords) - { - if (corner != null) - { - int r = corner.currentSegment(coords); - if (r == SEG_MOVETO) - r = SEG_LINETO; - return r; - } - - if (current < 9) - { - getPoint(current); - coords[0] = temp[0]; - coords[1] = temp[1]; - } - else if (current == 9) - return SEG_CLOSE; - else - throw new NoSuchElementException("rect iterator out of bounds"); - - if (at != null) - at.transform(coords, 0, coords, 0, 1); - return current == 0 ? SEG_MOVETO : SEG_LINETO; - } - }; + if (corner != null) + { + corner.next(); + if (corner.isDone()) + { + corner = null; + step++; + } + } + else + { + step++; + if (step == 1) + { + // create top left corner + arc.setArc(x, y, arcW, arcH, 90, 90, Arc2D.OPEN); + corner = arc.getPathIterator(at); + } + else if (step == 3) + { + // create bottom left corner + arc.setArc(x, y + h - arcH, arcW, arcH, 180, 90, + Arc2D.OPEN); + corner = arc.getPathIterator(at); + } + else if (step == 5) + { + // create bottom right corner + arc.setArc(x + w - arcW, y + h - arcH, arcW, arcH, 270, 90, + Arc2D.OPEN); + corner = arc.getPathIterator(at); + } + else if (step == 7) + { + // create top right corner + arc.setArc(x + w - arcW, y, arcW, arcH, 0, 90, Arc2D.OPEN); + corner = arc.getPathIterator(at); + } + } + } + }; } - /** Return true if the given rectangle intersects this shape. + /** + * Return true if the given rectangle intersects this shape. * @param x The x coordinate * @param y The y coordinate * @param w The width @@ -302,7 +329,8 @@ public abstract class RoundRectangle2D extends RectangularShape || contains(x + w, y)); } - /** Set the boundary of this round rectangle. + /** + * Set the boundary of this round rectangle. * @param x The x coordinate * @param y The y coordinate * @param w The width @@ -314,7 +342,8 @@ public abstract class RoundRectangle2D extends RectangularShape setRoundRect(x, y, w, h, getArcWidth(), getArcHeight()); } - /** Set the values of this round rectangle to be the same as those + /** + * Set the values of this round rectangle to be the same as those * of the argument. * @param rr The round rectangle to copy */ @@ -324,8 +353,10 @@ public abstract class RoundRectangle2D extends RectangularShape rr.getArcWidth(), rr.getArcHeight()); } - /** A subclass of RoundRectangle which keeps its parameters as - * doubles. */ + /** + * A subclass of RoundRectangle which keeps its parameters as + * doubles. + */ public static class Double extends RoundRectangle2D { /** The height of the corner arc. */ @@ -346,12 +377,15 @@ public abstract class RoundRectangle2D extends RectangularShape /** The height of this object. */ public double height; - /** Construct a new instance, with all parameters set to 0. */ + /** + * Construct a new instance, with all parameters set to 0. + */ public Double() { } - /** Construct a new instance with the given arguments. + /** + * Construct a new instance with the given arguments. * @param x The x coordinate * @param y The y coordinate * @param w The width @@ -422,8 +456,10 @@ public abstract class RoundRectangle2D extends RectangularShape } } // class Double - /** A subclass of RoundRectangle which keeps its parameters as - * floats. */ + /** + * A subclass of RoundRectangle which keeps its parameters as + * floats. + */ public static class Float extends RoundRectangle2D { /** The height of the corner arc. */ @@ -444,12 +480,15 @@ public abstract class RoundRectangle2D extends RectangularShape /** The height of this object. */ public float height; - /** Construct a new instance, with all parameters set to 0. */ + /** + * Construct a new instance, with all parameters set to 0. + */ public Float() { } - /** Construct a new instance with the given arguments. + /** + * Construct a new instance with the given arguments. * @param x The x coordinate * @param y The y coordinate * @param w The width @@ -508,6 +547,18 @@ public abstract class RoundRectangle2D extends RectangularShape return width <= 0 || height <= 0; } + /** + * Sets the dimensions for this rounded rectangle. + * + * @param x the x-coordinate of the top left corner. + * @param y the y-coordinate of the top left corner. + * @param w the width of the rectangle. + * @param h the height of the rectangle. + * @param arcWidth the arc width. + * @param arcHeight the arc height. + * + * @see #setRoundRect(double, double, double, double, double, double) + */ public void setRoundRect(float x, float y, float w, float h, float arcWidth, float arcHeight) { diff --git a/libjava/classpath/java/awt/im/InputContext.java b/libjava/classpath/java/awt/im/InputContext.java index 3806736df3d..c81993215e8 100644 --- a/libjava/classpath/java/awt/im/InputContext.java +++ b/libjava/classpath/java/awt/im/InputContext.java @@ -1,5 +1,5 @@ /* InputContext.java -- provides the context for text input - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -76,6 +76,7 @@ import java.util.Locale; * java.awt.im.spi.InputMethodDescriptor. * * @author Eric Blake (ebb9@email.byu.edu) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see Component#getInputContext() * @see Component#enableInputMethods(boolean) * @since 1.2 @@ -86,7 +87,9 @@ public class InputContext /** * The list of installed input method descriptors. */ - private static final ArrayList descriptors = new ArrayList(); + private static final ArrayList descriptors + = new ArrayList(); + static { Enumeration e; @@ -123,7 +126,7 @@ public class InputContext { if (line.charAt(0) != '#') { - Class c = Class.forName(line); + Class c = Class.forName(line); descriptors.add((InputMethodDescriptor) c.newInstance()); } line = in.readLine().trim(); @@ -143,7 +146,8 @@ public class InputContext private InputMethod im; /** Map of locales to the most recently selected input method. */ - private final HashMap recent = new HashMap(); + private final HashMap recent + = new HashMap(); /** The list of acceptable character subsets. */ private Character.Subset[] subsets; diff --git a/libjava/classpath/java/awt/im/InputMethodHighlight.java b/libjava/classpath/java/awt/im/InputMethodHighlight.java index 6fbe42fe549..a2ee86d44fc 100644 --- a/libjava/classpath/java/awt/im/InputMethodHighlight.java +++ b/libjava/classpath/java/awt/im/InputMethodHighlight.java @@ -41,6 +41,7 @@ import java.awt.Toolkit; import java.text.Annotation; import java.text.AttributedCharacterIterator; import java.util.Map; +import java.awt.font.TextAttribute; /** * This describes the highlight attributes of text composed in an input method. @@ -95,7 +96,7 @@ public class InputMethodHighlight private final int variation; /** The unmodifiable map of rendering styles. */ - private final Map style; + private final Map style; /** * Create an input method highlight style, with variation 0 and null style @@ -134,7 +135,7 @@ public class InputMethodHighlight * @since 1.3 */ public InputMethodHighlight(boolean selected, int state, int variation, - Map style) + Map style) { if (state != RAW_TEXT && state != CONVERTED_TEXT) throw new IllegalArgumentException(); @@ -181,7 +182,7 @@ public class InputMethodHighlight * @return the style map * @since 1.3 */ - public Map getStyle() + public Map getStyle() { return style; } diff --git a/libjava/classpath/java/awt/im/spi/InputMethodContext.java b/libjava/classpath/java/awt/im/spi/InputMethodContext.java index 17ec4f8f7ee..aed21e8d3b4 100644 --- a/libjava/classpath/java/awt/im/spi/InputMethodContext.java +++ b/libjava/classpath/java/awt/im/spi/InputMethodContext.java @@ -1,5 +1,5 @@ /* InputMethodContext.java -- communication between an input method and client - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -53,6 +53,7 @@ import javax.swing.JFrame; * {@link InputMethod#setInputMethodContext(InputMethodContext)}. * * @author Eric Blake (ebb9@email.byu.edu) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.3 * @status updated to 1.4 */ diff --git a/libjava/classpath/java/awt/image/AffineTransformOp.java b/libjava/classpath/java/awt/image/AffineTransformOp.java index bb4b795231b..849c5b05048 100644 --- a/libjava/classpath/java/awt/image/AffineTransformOp.java +++ b/libjava/classpath/java/awt/image/AffineTransformOp.java @@ -1,6 +1,6 @@ /* AffineTransformOp.java -- This class performs affine transformation between two images or rasters in 2 dimensions. - Copyright (C) 2004 Free Software Foundation + Copyright (C) 2004, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -39,6 +39,7 @@ exception statement from your version. */ package java.awt.image; import java.awt.Graphics2D; +import java.awt.Point; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; @@ -48,10 +49,14 @@ import java.awt.geom.Rectangle2D; import java.util.Arrays; /** - * This class performs affine transformation between two images or - * rasters in 2 dimensions. + * AffineTransformOp performs matrix-based transformations (translations, + * scales, flips, rotations, and shears). + * + * If interpolation is required, nearest neighbour, bilinear, and bicubic + * methods are available. * * @author Olga Rodimina (rodimina@redhat.com) + * @author Francis Kung (fkung@redhat.com) */ public class AffineTransformOp implements BufferedImageOp, RasterOp { @@ -74,6 +79,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp * * @param xform AffineTransform that will applied to the source image * @param interpolationType type of interpolation used + * @throws ImagingOpException if the transform matrix is noninvertible */ public AffineTransformOp (AffineTransform xform, int interpolationType) { @@ -102,6 +108,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp * * @param xform AffineTransform that will applied to the source image * @param hints rendering hints that will be used during transformation + * @throws ImagingOpException if the transform matrix is noninvertible */ public AffineTransformOp (AffineTransform xform, RenderingHints hints) { @@ -112,185 +119,165 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp } /** - * Creates empty BufferedImage with the size equal to that of the - * transformed image and correct number of bands. The newly created + * Creates a new BufferedImage with the size equal to that of the + * transformed image and the correct number of bands. The newly created * image is created with the specified ColorModel. - * If the ColorModel is equal to null, then image is created - * with the ColorModel of the source image. + * If a ColorModel is not specified, an appropriate ColorModel is used. * - * @param src source image - * @param destCM color model for the destination image - * @return new compatible destination image + * @param src the source image. + * @param destCM color model for the destination image (can be null). + * @return a new compatible destination image. */ public BufferedImage createCompatibleDestImage (BufferedImage src, ColorModel destCM) { + if (destCM != null) + return new BufferedImage(destCM, + createCompatibleDestRaster(src.getRaster()), + src.isAlphaPremultiplied(), null); + + // This behaviour was determined by Mauve testcases, and is compatible + // with the reference implementation + if (src.getType() == BufferedImage.TYPE_INT_ARGB_PRE + || src.getType() == BufferedImage.TYPE_4BYTE_ABGR + || src.getType() == BufferedImage.TYPE_4BYTE_ABGR_PRE) + return new BufferedImage(src.getWidth(), src.getHeight(), src.getType()); - // if destCm is not specified, use color model of the source image - - if (destCM == null) - destCM = src.getColorModel (); - - return new BufferedImage (destCM, - createCompatibleDestRaster (src.getRaster ()), - src.isAlphaPremultiplied (), - null); - + else + return new BufferedImage(src.getWidth(), src.getHeight(), + BufferedImage.TYPE_INT_ARGB); } /** - * Creates empty WritableRaster with the size equal to the transformed - * source raster and correct number of bands + * Creates a new WritableRaster with the size equal to the transformed + * source raster and correct number of bands . * - * @param src source raster - * @throws RasterFormatException if resulting width or height of raster is 0 - * @return new compatible raster + * @param src the source raster. + * @throws RasterFormatException if resulting width or height of raster is 0. + * @return a new compatible raster. */ public WritableRaster createCompatibleDestRaster (Raster src) { - Rectangle rect = (Rectangle) getBounds2D (src); + Rectangle2D rect = getBounds2D(src); - // throw RasterFormatException if resulting width or height of the - // transformed raster is 0 - - if (rect.getWidth () == 0 || rect.getHeight () == 0) + if (rect.getWidth() == 0 || rect.getHeight() == 0) throw new RasterFormatException("width or height is 0"); - return src.createCompatibleWritableRaster ((int) rect.getWidth (), - (int) rect.getHeight ()); + return src.createCompatibleWritableRaster((int) rect.getWidth(), + (int) rect.getHeight()); } /** * Transforms source image using transform specified at the constructor. - * The resulting transformed image is stored in the destination image. + * The resulting transformed image is stored in the destination image if one + * is provided; otherwise a new BufferedImage is created and returned. * * @param src source image * @param dst destination image - * @return transformed source image + * @throws IllegalArgumentException if the source and destination image are + * the same + * @return transformed source image. */ public final BufferedImage filter (BufferedImage src, BufferedImage dst) { - if (dst == src) - throw new IllegalArgumentException ("src image cannot be the same as the dst image"); - - // If the destination image is null, then BufferedImage is - // created with ColorModel of the source image + throw new IllegalArgumentException("src image cannot be the same as " + + "the dst image"); + // If the destination image is null, then use a compatible BufferedImage if (dst == null) - dst = createCompatibleDestImage(src, src.getColorModel ()); - - // FIXME: Must check if color models of src and dst images are the same. - // If it is not, then source image should be converted to color model - // of the destination image + dst = createCompatibleDestImage(src, null); - Graphics2D gr = (Graphics2D) dst.createGraphics (); - gr.setRenderingHints (hints); - gr.drawImage (src, transform, null); + Graphics2D gr = (Graphics2D) dst.createGraphics(); + gr.setRenderingHints(hints); + gr.drawImage(src, transform, null); return dst; - } /** * Transforms source raster using transform specified at the constructor. - * The resulting raster is stored in the destination raster. + * The resulting raster is stored in the destination raster if it is not + * null, otherwise a new raster is created and returned. * * @param src source raster * @param dst destination raster - * @return transformed raster + * @throws IllegalArgumentException if the source and destination are not + * compatible + * @return transformed raster. */ - public final WritableRaster filter (Raster src, WritableRaster dst) + public final WritableRaster filter(Raster src, WritableRaster dst) { + // Initial checks if (dst == src) throw new IllegalArgumentException("src image cannot be the same as" - + " the dst image"); + + " the dst image"); if (dst == null) dst = createCompatibleDestRaster(src); if (src.getNumBands() != dst.getNumBands()) throw new IllegalArgumentException("src and dst must have same number" - + " of bands"); + + " of bands"); - double[] dpts = new double[dst.getWidth() * 2]; - double[] pts = new double[dst.getWidth() * 2]; + // Optimization for rasters that can be represented in the RGB colormodel: + // wrap the rasters in images, and let Cairo do the transformation + if (ColorModel.getRGBdefault().isCompatibleSampleModel(src.getSampleModel()) + && ColorModel.getRGBdefault().isCompatibleSampleModel(dst.getSampleModel())) + { + WritableRaster src2 = Raster.createWritableRaster(src.getSampleModel(), + src.getDataBuffer(), + new Point(src.getMinX(), + src.getMinY())); + BufferedImage iSrc = new BufferedImage(ColorModel.getRGBdefault(), + src2, false, null); + BufferedImage iDst = new BufferedImage(ColorModel.getRGBdefault(), dst, + false, null); + + return filter(iSrc, iDst).getRaster(); + } + + // Otherwise, we need to do the transformation in java code... + // Create arrays to hold all the points + double[] dstPts = new double[dst.getHeight() * dst.getWidth() * 2]; + double[] srcPts = new double[dst.getHeight() * dst.getWidth() * 2]; + + // Populate array with all points in the *destination* raster + int i = 0; for (int x = 0; x < dst.getWidth(); x++) - { - dpts[2 * x] = x + dst.getMinX(); - dpts[2 * x + 1] = x; - } - Rectangle srcbounds = src.getBounds(); - if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) - { - for (int y = dst.getMinY(); y < dst.getMinY() + dst.getHeight(); y++) - { - try { - transform.inverseTransform(dpts, 0, pts, 0, dst.getWidth() * 2); - } catch (NoninvertibleTransformException e) { - // Can't happen since the constructor traps this - e.printStackTrace(); - } - - for (int x = 0; x < dst.getWidth(); x++) - { - if (!srcbounds.contains(pts[2 * x], pts[2 * x + 1])) - continue; - dst.setDataElements(x + dst.getMinX(), y, - src.getDataElements((int)pts[2 * x], - (int)pts[2 * x + 1], - null)); - } - } - } - else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) - { - double[] tmp = new double[4 * src.getNumBands()]; - for (int y = dst.getMinY(); y < dst.getMinY() + dst.getHeight(); y++) { - try { - transform.inverseTransform(dpts, 0, pts, 0, dst.getWidth() * 2); - } catch (NoninvertibleTransformException e) { - // Can't happen since the constructor traps this - e.printStackTrace(); - } - - for (int x = 0; x < dst.getWidth(); x++) - { - if (!srcbounds.contains(pts[2 * x], pts[2 * x + 1])) - continue; - int xx = (int)pts[2 * x]; - int yy = (int)pts[2 * x + 1]; - double dx = (pts[2 * x] - xx); - double dy = (pts[2 * x + 1] - yy); - - // TODO write this more intelligently - if (xx == src.getMinX() + src.getWidth() - 1 || - yy == src.getMinY() + src.getHeight() - 1) + for (int y = 0; y < dst.getHeight(); y++) { - // bottom or right edge - Arrays.fill(tmp, 0); - src.getPixel(xx, yy, tmp); + dstPts[i++] = x; + dstPts[i++] = y; } - else - { - // Normal case - src.getPixels(xx, yy, 2, 2, tmp); - for (int b = 0; b < src.getNumBands(); b++) - tmp[b] = dx * dy * tmp[b] - + (1 - dx) * dy * tmp[b + src.getNumBands()] - + dx * (1 - dy) * tmp[b + 2 * src.getNumBands()] - + (1 - dx) * (1 - dy) * tmp[b + 3 * src.getNumBands()]; - } - dst.setPixel(x, y, tmp); - } } - } - else - { - // Bicubic - throw new UnsupportedOperationException("not implemented yet"); - } + Rectangle srcbounds = src.getBounds(); + + // Use an inverse transform to map each point in the destination to + // a point in the source. Note that, while all points in the destination + // matrix are integers, this is not necessarily true for points in the + // source (hence why interpolation is required) + try + { + AffineTransform inverseTx = transform.createInverse(); + inverseTx.transform(dstPts, 0, srcPts, 0, dstPts.length / 2); + } + catch (NoninvertibleTransformException e) + { + // Shouldn't happen since the constructor traps this + throw new ImagingOpException(e.getMessage()); + } + + // Different interpolation methods... + if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)) + filterNearest(src, dst, dstPts, srcPts); + else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) + filterBilinear(src, dst, dstPts, srcPts); + + else // bicubic + filterBicubic(src, dst, dstPts, srcPts); + return dst; } @@ -314,27 +301,22 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp */ public final Rectangle2D getBounds2D (Raster src) { - // determine new size for the transformed raster. - // Need to calculate transformed coordinates of the lower right - // corner of the raster. The upper left corner is always (0,0) - - double x2 = (double) src.getWidth () + src.getMinX (); - double y2 = (double) src.getHeight () + src.getMinY (); - Point2D p2 = getPoint2D (new Point2D.Double (x2,y2), null); - - Rectangle2D rect = new Rectangle (0, 0, (int) p2.getX (), (int) p2.getY ()); - return rect.getBounds (); + return transform.createTransformedShape(src.getBounds()).getBounds2D(); } /** - * Returns interpolation type used during transformations + * Returns interpolation type used during transformations. * * @return interpolation type */ public final int getInterpolationType () { - if(hints.containsValue (RenderingHints.VALUE_INTERPOLATION_BILINEAR)) + if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR)) return TYPE_BILINEAR; + + else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BICUBIC)) + return TYPE_BICUBIC; + else return TYPE_NEAREST_NEIGHBOR; } @@ -355,7 +337,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp /** * Returns rendering hints that are used during transformation. * - * @return rendering hints + * @return the rendering hints used in this Op. */ public final RenderingHints getRenderingHints () { @@ -366,10 +348,261 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp * Returns transform used in transformation between source and destination * image. * - * @return transform + * @return the transform used in this Op. */ public final AffineTransform getTransform () { return transform; } + + /** + * Perform nearest-neighbour filtering + * + * @param src the source raster + * @param dst the destination raster + * @param dpts array of points on the destination raster + * @param pts array of corresponding points on the source raster + */ + private void filterNearest(Raster src, WritableRaster dst, double[] dpts, + double[] pts) + { + Rectangle srcbounds = src.getBounds(); + + // For all points on the destination raster, copy the value from the + // corrosponding (rounded) source point + for (int i = 0; i < dpts.length; i += 2) + { + int srcX = (int) Math.round(pts[i]) + src.getMinX(); + int srcY = (int) Math.round(pts[i + 1]) + src.getMinY(); + + if (srcbounds.contains(srcX, srcY)) + dst.setDataElements((int) dpts[i] + dst.getMinX(), + (int) dpts[i + 1] + dst.getMinY(), + src.getDataElements(srcX, srcY, null)); + } + } + + /** + * Perform bilinear filtering + * + * @param src the source raster + * @param dst the destination raster + * @param dpts array of points on the destination raster + * @param pts array of corresponding points on the source raster + */ + private void filterBilinear(Raster src, WritableRaster dst, double[] dpts, + double[] pts) + { + Rectangle srcbounds = src.getBounds(); + + Object xyarr = null; + Object xp1arr = null; + Object yp1arr = null; + Object xyp1arr = null; + + double xy; + double xp1; + double yp1; + double xyp1; + + double[] result = new double[src.getNumBands()]; + + // For all points in the destination raster, use bilinear interpolation + // to find the value from the corrosponding source points + for (int i = 0; i < dpts.length; i += 2) + { + int srcX = (int) Math.round(pts[i]) + src.getMinX(); + int srcY = (int) Math.round(pts[i + 1]) + src.getMinY(); + + if (srcbounds.contains(srcX, srcY)) + { + // Corner case at the bottom or right edge; use nearest neighbour + if (pts[i] >= src.getWidth() - 1 + || pts[i + 1] >= src.getHeight() - 1) + dst.setDataElements((int) dpts[i] + dst.getMinX(), + (int) dpts[i + 1] + dst.getMinY(), + src.getDataElements(srcX, srcY, null)); + + // Standard case, apply the bilinear formula + else + { + int x = (int) Math.floor(pts[i] + src.getMinX()); + int y = (int) Math.floor(pts[i + 1] + src.getMinY()); + double xdiff = pts[i] + src.getMinX() - x; + double ydiff = pts[i + 1] + src.getMinY() - y; + + // Get surrounding pixels used in interpolation... optimized + // to use the smallest datatype possible. + if (src.getTransferType() == DataBuffer.TYPE_DOUBLE + || src.getTransferType() == DataBuffer.TYPE_FLOAT) + { + xyarr = src.getPixel(x, y, (double[])xyarr); + xp1arr = src.getPixel(x+1, y, (double[])xp1arr); + yp1arr = src.getPixel(x, y+1, (double[])yp1arr); + xyp1arr = src.getPixel(x+1, y+1, (double[])xyp1arr); + } + else + { + xyarr = src.getPixel(x, y, (int[])xyarr); + xp1arr = src.getPixel(x+1, y, (int[])xp1arr); + yp1arr = src.getPixel(x, y+1, (int[])yp1arr); + xyp1arr = src.getPixel(x+1, y+1, (int[])xyp1arr); + } + // using + // array[] pixels = src.getPixels(x, y, 2, 2, pixels); + // instead of doing four individual src.getPixel() calls + // should be faster, but benchmarking shows that it's not... + + // Run interpolation for each band + for (int j = 0; j < src.getNumBands(); j++) + { + // Pull individual sample values out of array + if (src.getTransferType() == DataBuffer.TYPE_DOUBLE + || src.getTransferType() == DataBuffer.TYPE_FLOAT) + { + xy = ((double[])xyarr)[j]; + xp1 = ((double[])xp1arr)[j]; + yp1 = ((double[])yp1arr)[j]; + xyp1 = ((double[])xyp1arr)[j]; + } + else + { + xy = ((int[])xyarr)[j]; + xp1 = ((int[])xp1arr)[j]; + yp1 = ((int[])yp1arr)[j]; + xyp1 = ((int[])xyp1arr)[j]; + } + + // If all four samples are identical, there's no need to + // calculate anything + if (xy == xp1 && xy == yp1 && xy == xyp1) + result[j] = xy; + + // Run bilinear interpolation formula + else + result[j] = (xy * (1-xdiff) + xp1 * xdiff) + * (1-ydiff) + + (yp1 * (1-xdiff) + xyp1 * xdiff) + * ydiff; + } + + dst.setPixel((int)dpts[i] + dst.getMinX(), + (int)dpts[i+1] + dst.getMinY(), + result); + } + } + } + } + + /** + * Perform bicubic filtering + * based on http://local.wasp.uwa.edu.au/~pbourke/colour/bicubic/ + * + * @param src the source raster + * @param dst the destination raster + * @param dpts array of points on the destination raster + * @param pts array of corresponding points on the source raster + */ + private void filterBicubic(Raster src, WritableRaster dst, double[] dpts, + double[] pts) + { + Rectangle srcbounds = src.getBounds(); + double[] result = new double[src.getNumBands()]; + Object pixels = null; + + // For all points on the destination raster, perform bicubic interpolation + // from corrosponding source points + for (int i = 0; i < dpts.length; i += 2) + { + if (srcbounds.contains((int) Math.round(pts[i]) + src.getMinX(), + (int) Math.round(pts[i + 1]) + src.getMinY())) + { + int x = (int) Math.floor(pts[i] + src.getMinX()); + int y = (int) Math.floor(pts[i + 1] + src.getMinY()); + double dx = pts[i] + src.getMinX() - x; + double dy = pts[i + 1] + src.getMinY() - y; + Arrays.fill(result, 0); + + for (int m = - 1; m < 3; m++) + for (int n = - 1; n < 3; n++) + { + // R(x) = ( P(x+2)^3 - 4 P(x+1)^3 + 6 P(x)^3 - 4 P(x-1)^3 ) / 6 + double r1 = 0; + double r2 = 0; + + // Calculate R(m - dx) + double rx = m - dx + 2; + r1 += rx * rx * rx; + + rx = m - dx + 1; + if (rx > 0) + r1 -= 4 * rx * rx * rx; + + rx = m - dx; + if (rx > 0) + r1 += 6 * rx * rx * rx; + + rx = m - dx - 1; + if (rx > 0) + r1 -= 4 * rx * rx * rx; + + r1 /= 6; + + // Calculate R(dy - n); + rx = dy - n + 2; + if (rx > 0) + r2 += rx * rx * rx; + + rx = dy - n + 1; + if (rx > 0) + r2 -= 4 * rx * rx * rx; + + rx = dy - n; + if (rx > 0) + r2 += 6 * rx * rx * rx; + + rx = dy - n - 1; + if (rx > 0) + r2 -= 4 * rx * rx * rx; + + r2 /= 6; + + // Calculate F(i+m, j+n) R(m - dx) R(dy - n) + // Check corner cases + int srcX = x + m; + if (srcX >= src.getMinX() + src.getWidth()) + srcX = src.getMinX() + src.getWidth() - 1; + else if (srcX < src.getMinX()) + srcX = src.getMinX(); + + int srcY = y + n; + if (srcY >= src.getMinY() + src.getHeight()) + srcY = src.getMinY() + src.getHeight() - 1; + else if (srcY < src.getMinY()) + srcY = src.getMinY(); + + // Calculate once for each band, using the smallest + // datatype possible + if (src.getTransferType() == DataBuffer.TYPE_DOUBLE + || src.getTransferType() == DataBuffer.TYPE_FLOAT) + { + pixels = src.getPixel(srcX, srcY, (double[])pixels); + for (int j = 0; j < result.length; j++) + result[j] += ((double[])pixels)[j] * r1 * r2; + } + else + { + pixels = src.getPixel(srcX, srcY, (int[])pixels); + for (int j = 0; j < result.length; j++) + result[j] += ((int[])pixels)[j] * r1 * r2; + } + } + + // Put it all together + dst.setPixel((int)dpts[i] + dst.getMinX(), + (int)dpts[i+1] + dst.getMinY(), + result); + } + } + } } diff --git a/libjava/classpath/java/awt/image/BandCombineOp.java b/libjava/classpath/java/awt/image/BandCombineOp.java index 634125ed23f..d9ce16fad07 100644 --- a/libjava/classpath/java/awt/image/BandCombineOp.java +++ b/libjava/classpath/java/awt/image/BandCombineOp.java @@ -1,4 +1,5 @@ -/* Copyright (C) 2004 Free Software Foundation +/* BandCombineOp.java - perform a combination on the bands of a raster + Copyright (C) 2004, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -36,10 +37,10 @@ exception statement from your version. */ package java.awt.image; -import java.awt.Point; import java.awt.RenderingHints; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.util.Arrays; /** * Filter Raster pixels by applying a matrix. @@ -53,6 +54,9 @@ import java.awt.geom.Rectangle2D; * for the destination. Therefore the destination Raster must contain the * same number of bands as the number of rows in the filter matrix. * + * This Op assumes that samples are integers; floating point sample types will + * be rounded to their nearest integer value during filtering. + * * @author Jerry Quinn (jlquinn@optonline.net) */ public class BandCombineOp implements RasterOp @@ -65,52 +69,74 @@ public class BandCombineOp implements RasterOp * * @param matrix The matrix to filter pixels with. * @param hints Rendering hints to apply. Ignored. + * @throws ArrayIndexOutOfBoundsException if the matrix is invalid */ public BandCombineOp(float[][] matrix, RenderingHints hints) { - this.matrix = matrix; + this.matrix = new float[matrix.length][]; + int width = matrix[0].length; + for (int i = 0; i < matrix.length; i++) + { + this.matrix[i] = new float[width + 1]; + for (int j = 0; j < width; j++) + this.matrix[i][j] = matrix[i][j]; + + // The reference implementation pads the array with a trailing zero... + this.matrix[i][width] = 0; + } + this.hints = hints; } /** - * Filter Raster pixels through a matrix. - * - * Applies the Op matrix to source pixes to produce dest pixels. Each row - * of the matrix is multiplied by the src pixel components to produce the - * dest pixel. If matrix is one more than the number of bands in the src, - * the last element is implicitly multiplied by 1, i.e. added to the sum - * for that dest component. - * - * If dest is null, a suitable Raster is created. This implementation uses - * createCompatibleDestRaster. + * Filter Raster pixels through a matrix. Applies the Op matrix to source + * pixes to produce dest pixels. Each row of the matrix is multiplied by the + * src pixel components to produce the dest pixel. If matrix is one more than + * the number of bands in the src, the last element is implicitly multiplied + * by 1, i.e. added to the sum for that dest component. If dest is null, a + * suitable Raster is created. This implementation uses + * createCompatibleDestRaster. * * @param src The source Raster. - * @param dest The destination Raster, or null. - * @returns The destination Raster or an allocated Raster. + * @param dest The destination Raster, or null. + * @throws IllegalArgumentException if the destination raster is incompatible + * with the source raster. + * @return The filtered Raster. * @see java.awt.image.RasterOp#filter(java.awt.image.Raster, - *java.awt.image.WritableRaster) + * java.awt.image.WritableRaster) */ public WritableRaster filter(Raster src, WritableRaster dest) { if (dest == null) dest = createCompatibleDestRaster(src); - + else if (dest.getNumBands() != src.getNumBands() + || dest.getTransferType() != src.getTransferType()) + throw new IllegalArgumentException("Destination raster is incompatible with source raster"); + // Filter the pixels - float[] spix = new float[matrix[0].length]; - float[] dpix = new float[matrix.length]; + int[] spix = new int[matrix[0].length - 1]; + int[] spix2 = new int[matrix[0].length - 1]; + int[] dpix = new int[matrix.length]; for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) - { - // In case matrix rows have implicit translation - spix[spix.length - 1] = 1.0f; - src.getPixel(x, y, spix); - for (int i = 0; i < matrix.length; i++) { - dpix[i] = 0; - for (int j = 0; j < matrix[0].length; j++) - dpix[i] += spix[j] * matrix[i][j]; + // In case matrix rows have implicit translation + spix[spix.length - 1] = 1; + src.getPixel(x, y, spix); + + // Do not re-calculate if pixel is identical to the last one + // (ie, blocks of the same colour) + if (!Arrays.equals(spix, spix2)) + { + System.arraycopy(spix, 0, spix2, 0, spix.length); + for (int i = 0; i < matrix.length; i++) + { + dpix[i] = 0; + for (int j = 0; j < matrix[0].length - 1; j++) + dpix[i] += spix[j] * (int)matrix[i][j]; + } + } + dest.setPixel(x, y, dpix); } - dest.setPixel(x, y, dpix); - } return dest; } @@ -125,28 +151,48 @@ public class BandCombineOp implements RasterOp /** * Creates a new WritableRaster that can be used as the destination for this - * Op. This implementation creates a Banded Raster with data type FLOAT. - * @see - *java.awt.image.RasterOp#createCompatibleDestRaster(java.awt.image.Raster) + * Op. The number of bands in the source raster must equal the number of rows + * in the op matrix, which must also be equal to either the number of columns + * or (columns - 1) in the matrix. + * + * @param src The source raster. + * @return A compatible raster. + * @see java.awt.image.RasterOp#createCompatibleDestRaster(java.awt.image.Raster) + * @throws IllegalArgumentException if the raster is incompatible with the + * matrix. */ public WritableRaster createCompatibleDestRaster(Raster src) { - return Raster.createBandedRaster(DataBuffer.TYPE_FLOAT, src.getWidth(), - src.getHeight(), matrix.length, - new Point(src.getMinX(), src.getMinY())); + // Destination raster must have same number of bands as source + if (src.getNumBands() != matrix.length) + throw new IllegalArgumentException("Number of rows in matrix specifies an " + + "incompatible number of bands"); + + // We use -1 and -2 because we previously padded the rows with a trailing 0 + if (src.getNumBands() != matrix[0].length - 1 + && src.getNumBands() != matrix[0].length - 2) + throw new IllegalArgumentException("Incompatible number of bands: " + + "the number of bands in the raster must equal the number of " + + "columns in the matrix, optionally minus one"); + + return src.createCompatibleWritableRaster(); } - /** Return corresponding destination point for source point. + /** + * Return corresponding destination point for source point. Because this is + * not a geometric operation, it simply returns a copy of the source. * - * LookupOp will return the value of src unchanged. * @param src The source point. * @param dst The destination point. + * @return dst The destination point. * @see java.awt.image.RasterOp#getPoint2D(java.awt.geom.Point2D, *java.awt.geom.Point2D) */ public final Point2D getPoint2D(Point2D src, Point2D dst) { - if (dst == null) return (Point2D)src.clone(); + if (dst == null) + return (Point2D)src.clone(); + dst.setLocation(src); return dst; } @@ -159,7 +205,11 @@ public class BandCombineOp implements RasterOp return hints; } - /** Return the matrix for this Op. */ + /** + * Return the matrix used in this operation. + * + * @return The matrix used in this operation. + */ public final float[][] getMatrix() { return matrix; diff --git a/libjava/classpath/java/awt/image/BufferedImage.java b/libjava/classpath/java/awt/image/BufferedImage.java index 76848db0833..ef3141d0ead 100644 --- a/libjava/classpath/java/awt/image/BufferedImage.java +++ b/libjava/classpath/java/awt/image/BufferedImage.java @@ -38,6 +38,7 @@ exception statement from your version. */ package java.awt.image; +import gnu.java.awt.Buffers; import gnu.java.awt.ComponentDataBlitOp; import java.awt.Graphics; @@ -79,27 +80,37 @@ public class BufferedImage extends Image TYPE_BYTE_BINARY = 12, TYPE_BYTE_INDEXED = 13; - static final int[] bits3 = { 8, 8, 8 }; - static final int[] bits4 = { 8, 8, 8, 8 }; - static final int[] bits1byte = { 8 }; - static final int[] bits1ushort = { 16 }; - - static final int[] masks_int = { 0x00ff0000, - 0x0000ff00, - 0x000000ff, - DataBuffer.TYPE_INT }; - static final int[] masks_565 = { 0xf800, - 0x07e0, - 0x001f, - DataBuffer.TYPE_USHORT}; - static final int[] masks_555 = { 0x7c00, - 0x03e0, - 0x001f, - DataBuffer.TYPE_USHORT}; - - Vector observers; + /** + * Vector of TileObservers (or null) + */ + Vector tileObservers; /** + * The image's WritableRaster + */ + WritableRaster raster; + + /** + * The associated ColorModel + */ + ColorModel colorModel; + + /** + * The image's properties (or null) + */ + Hashtable properties; + + /** + * Whether alpha is premultiplied + */ + boolean isPremultiplied; + + /** + * The predefined type, if any. + */ + int type; + + /** * Creates a new BufferedImage with the specified width, height * and type. Valid type values are: * @@ -119,155 +130,181 @@ public class BufferedImage extends Image *
  • {@link #TYPE_BYTE_INDEXED}
  • * * - * @param w the width (must be > 0). - * @param h the height (must be > 0). + * @param width the width (must be > 0). + * @param height the height (must be > 0). * @param type the image type (see the list of valid types above). * - * @throws IllegalArgumentException if w or h is - * less than or equal to zero. + * @throws IllegalArgumentException if width or + * height is less than or equal to zero. * @throws IllegalArgumentException if type is not one of the * specified values. */ - public BufferedImage(int w, int h, int type) + public BufferedImage(int width, int height, int type) { + SampleModel sm = null; ColorModel cm = null; - - boolean alpha = false; - boolean premultiplied = false; - switch (type) - { - case TYPE_4BYTE_ABGR_PRE: - case TYPE_INT_ARGB_PRE: - premultiplied = true; - // fall through - case TYPE_INT_ARGB: - case TYPE_4BYTE_ABGR: - alpha = true; - } - - ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); - switch (type) + boolean premultiplied = (type == BufferedImage.TYPE_INT_ARGB_PRE || + type == BufferedImage.TYPE_4BYTE_ABGR_PRE); + + switch( type ) { - case TYPE_INT_RGB: - case TYPE_INT_ARGB: - case TYPE_INT_ARGB_PRE: - case TYPE_USHORT_565_RGB: - case TYPE_USHORT_555_RGB: - int[] masks = null; - switch (type) - { - case TYPE_INT_RGB: - case TYPE_INT_ARGB: - case TYPE_INT_ARGB_PRE: - masks = masks_int; - break; - case TYPE_USHORT_565_RGB: - masks = masks_565; - break; - case TYPE_USHORT_555_RGB: - masks = masks_555; - break; - } - - cm = new DirectColorModel(cs, - 32, // 32 bits in an int - masks[0], // r - masks[1], // g - masks[2], // b - alpha ? 0xff000000 : 0, - premultiplied, - masks[3] // data type - ); + case BufferedImage.TYPE_INT_RGB: + sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, + width, height, + new int[]{ 0x00FF0000, + 0x0000FF00, + 0x000000FF } ) ; + cm = new DirectColorModel( 24, 0xff0000, 0xff00, 0xff ); break; - case TYPE_INT_BGR: - String msg = - "FIXME: Programmer is confused. Why (and how) does a " + - "TYPE_INT_BGR image use ComponentColorModel to store " + - "8-bit values? Is data type TYPE_INT or TYPE_BYTE. What " + - "is the difference between TYPE_INT_BGR and TYPE_3BYTE_BGR?"; - throw new UnsupportedOperationException(msg); - - case TYPE_3BYTE_BGR: - case TYPE_4BYTE_ABGR: - case TYPE_4BYTE_ABGR_PRE: - case TYPE_BYTE_GRAY: - case TYPE_USHORT_GRAY: - int[] bits = null; - int dataType = DataBuffer.TYPE_BYTE; - switch (type) { - case TYPE_3BYTE_BGR: - bits = bits3; - break; - case TYPE_4BYTE_ABGR: - case TYPE_4BYTE_ABGR_PRE: - bits = bits4; - break; - case TYPE_BYTE_GRAY: - bits = bits1byte; - cs = ColorSpace.getInstance(ColorSpace.CS_GRAY); - break; - case TYPE_USHORT_GRAY: - bits = bits1ushort; - cs = ColorSpace.getInstance(ColorSpace.CS_GRAY); - dataType = DataBuffer.TYPE_USHORT; - break; - } - cm = new ComponentColorModel(cs, bits, alpha, premultiplied, - alpha ? - Transparency.TRANSLUCENT: - Transparency.OPAQUE, - dataType); + case BufferedImage.TYPE_3BYTE_BGR: + sm = new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE, + width, height, + 3, width * 3, + new int[]{ 2, 1, 0 } ); + cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), + false, false, + BufferedImage.OPAQUE, + DataBuffer.TYPE_BYTE); + break; + + case BufferedImage.TYPE_INT_ARGB: + case BufferedImage.TYPE_INT_ARGB_PRE: + sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, + width, height, + new int[]{ 0x00FF0000, + 0x0000FF00, + 0x000000FF, + 0xFF000000 } ); + if (premultiplied) + cm = new DirectColorModel( ColorSpace.getInstance(ColorSpace.CS_sRGB), + 32, 0xff0000, 0xff00, 0xff, 0xff000000, + true, + Buffers.smallestAppropriateTransferType(32)); + else + cm = new DirectColorModel( 32, 0xff0000, 0xff00, 0xff, 0xff000000 ); + break; + + case BufferedImage.TYPE_4BYTE_ABGR: + case BufferedImage.TYPE_4BYTE_ABGR_PRE: + sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, + width, height, + 4, 4*width, + new int[]{3, 2, 1, 0}); + cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), + true, premultiplied, + BufferedImage.TRANSLUCENT, + DataBuffer.TYPE_BYTE); + break; + + case BufferedImage.TYPE_INT_BGR: + sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_INT, + width, height, + new int[]{ 0x000000FF, + 0x0000FF00, + 0x00FF0000 } ) ; + cm = new DirectColorModel( 24, 0xff, 0xff00, 0xff0000 ); + break; + + case BufferedImage.TYPE_USHORT_565_RGB: + sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_USHORT, + width, height, + new int[]{ 0xF800, + 0x7E0, + 0x1F } ) ; + cm = new DirectColorModel( 16, 0xF800, 0x7E0, 0x1F ); + break; + case BufferedImage.TYPE_USHORT_555_RGB: + sm = new SinglePixelPackedSampleModel( DataBuffer.TYPE_USHORT, + width, height, + new int[]{ 0x7C00, + 0x3E0, + 0x1F } ) ; + cm = new DirectColorModel( 15, 0x7C00, 0x3E0, 0x1F ); break; - case TYPE_BYTE_BINARY: - byte[] vals = { 0, (byte) 0xff }; - cm = new IndexColorModel(8, 2, vals, vals, vals); + + case BufferedImage.TYPE_BYTE_INDEXED: + cm = createDefaultIndexedColorModel( false ); + + case BufferedImage.TYPE_BYTE_GRAY: + sm = new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE, + width, height, + 1, width, new int[]{ 0 } ); + break; + + case BufferedImage.TYPE_USHORT_GRAY: + sm = new PixelInterleavedSampleModel( DataBuffer.TYPE_USHORT, + width, height, + 1, width, new int[]{ 0 } ); + break; + + case BufferedImage.TYPE_BYTE_BINARY: + cm = createDefaultIndexedColorModel( true ); + sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, + width, height, 1); break; - case TYPE_BYTE_INDEXED: - String msg2 = "type not implemented yet"; - throw new UnsupportedOperationException(msg2); - // FIXME: build color-cube and create color model + default: - throw new IllegalArgumentException("Unknown image type " + type); + sm = null; } + + if( sm == null ) + throw new IllegalArgumentException("Unknown predefined image type."); - init(cm, - cm.createCompatibleWritableRaster(w, h), - premultiplied, - null, // no properties - type - ); + if( cm == null ) // only for the grayscale types + { + int buftype; + int[] bits = new int[1]; + if( type == BufferedImage.TYPE_BYTE_GRAY ) + { + buftype = DataBuffer.TYPE_BYTE; + bits[0] = 8; + } + else + { + buftype = DataBuffer.TYPE_USHORT; + bits[0] = 16; + } + ColorSpace graySpace = ColorSpace.getInstance( ColorSpace.CS_GRAY ); + + cm = new ComponentColorModel( graySpace, bits, false, false, + Transparency.OPAQUE, buftype ); + } + + init( cm, + Raster.createWritableRaster(sm, new Point( 0, 0 ) ), + premultiplied, + null, // no properties + type ); } public BufferedImage(int w, int h, int type, IndexColorModel indexcolormodel) { if ((type != TYPE_BYTE_BINARY) && (type != TYPE_BYTE_INDEXED)) - throw new IllegalArgumentException("type must be binary or indexed"); + throw new IllegalArgumentException("Type must be TYPE_BYTE_BINARY or TYPE_BYTE_INDEXED"); + if( indexcolormodel.getMapSize() > 16 && type == TYPE_BYTE_BINARY ) + throw new IllegalArgumentException("Type TYPE_BYTE_BINARY cannot have a larger than 16-color palette."); + if( indexcolormodel.getMapSize() > 256 ) + throw new IllegalArgumentException("Byte type cannot have a larger than 256-color palette."); - init(indexcolormodel, - indexcolormodel.createCompatibleWritableRaster(w, h), - false, // not premultiplied (guess) - null, // no properties - type); + init( indexcolormodel, + indexcolormodel.createCompatibleWritableRaster(w, h), + indexcolormodel.isAlphaPremultiplied(), + null, // no properties + type ); } public BufferedImage(ColorModel colormodel, WritableRaster writableraster, boolean premultiplied, - Hashtable properties) + Hashtable properties) { init(colormodel, writableraster, premultiplied, properties, TYPE_CUSTOM); - // TODO: perhaps try to identify type? } - WritableRaster raster; - ColorModel colorModel; - Hashtable properties; - boolean isPremultiplied; - int type; - + private void init(ColorModel cm, WritableRaster writableraster, boolean premultiplied, @@ -280,12 +317,48 @@ public class BufferedImage extends Image isPremultiplied = premultiplied; this.type = type; } - - //public void addTileObserver(TileObserver tileobserver) {} + + /** + * Creates the default palettes for the predefined indexed color types + * (256-color or black-and-white) + * + * @param binary - If true, a black and white palette, + * otherwise a default 256-color palette is returned. + */ + private IndexColorModel createDefaultIndexedColorModel( boolean binary ) + { + if( binary ) + { + byte[] t = new byte[]{ 0, (byte)255 }; + return new IndexColorModel( 1, 2, t, t, t ); + } + + byte[] r = new byte[256]; + byte[] g = new byte[256]; + byte[] b = new byte[256]; + int index = 0; + for( int i = 0; i < 6; i++ ) + for( int j = 0; j < 6; j++ ) + for( int k = 0; k < 6; k++ ) + { + r[ index ] = (byte)(i * 51); + g[ index ] = (byte)(j * 51); + b[ index ] = (byte)(k * 51); + index++; + } + while( index < 256 ) + { + r[ index ] = g[ index ] = b[ index ] = + (byte)(18 + (index - 216) * 6); + index++; + } + return new IndexColorModel( 8, 256, r, g, b ); + } public void coerceData(boolean premultiplied) { colorModel = colorModel.coerceData(raster, premultiplied); + isPremultiplied = premultiplied; } public WritableRaster copyData(WritableRaster dest) @@ -555,7 +628,7 @@ public class BufferedImage extends Image }; } - public Vector getSources() + public Vector getSources() { return null; } @@ -726,10 +799,10 @@ public class BufferedImage extends Image */ public void addTileObserver (TileObserver to) { - if (observers == null) - observers = new Vector (); + if (tileObservers == null) + tileObservers = new Vector (); - observers.add (to); + tileObservers.add (to); } /** @@ -741,10 +814,10 @@ public class BufferedImage extends Image */ public void removeTileObserver (TileObserver to) { - if (observers == null) + if (tileObservers == null) return; - observers.remove (to); + tileObservers.remove (to); } /** diff --git a/libjava/classpath/java/awt/image/ColorConvertOp.java b/libjava/classpath/java/awt/image/ColorConvertOp.java index 1f85a5ecd99..e6c85412d34 100644 --- a/libjava/classpath/java/awt/image/ColorConvertOp.java +++ b/libjava/classpath/java/awt/image/ColorConvertOp.java @@ -38,7 +38,10 @@ exception statement from your version. */ package java.awt.image; +import gnu.java.awt.Buffers; + import java.awt.Graphics2D; +import java.awt.Point; import java.awt.RenderingHints; import java.awt.color.ColorSpace; import java.awt.color.ICC_ColorSpace; @@ -47,9 +50,9 @@ import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; /** - * ColorConvertOp is a filter for converting an image from one colorspace to - * another colorspace. The filter can convert the image through a sequence - * of colorspaces or just from source to destination. + * ColorConvertOp is a filter for converting images or rasters between + * colorspaces, either through a sequence of colorspaces or just from source to + * destination. * * Color conversion is done on the color components without alpha. Thus * if a BufferedImage has alpha premultiplied, this is divided out before @@ -63,24 +66,22 @@ import java.awt.geom.Rectangle2D; */ public class ColorConvertOp implements BufferedImageOp, RasterOp { - private ColorSpace srccs; - private ColorSpace dstcs; private RenderingHints hints; - private ICC_Profile[] profiles; + private ICC_Profile[] profiles = null; private ColorSpace[] spaces; - private boolean rasterValid; /** - * Convert BufferedImage through a ColorSpace. + * Convert a BufferedImage through a ColorSpace. * - * This filter version is only valid for BufferedImages. The source image - * is converted to cspace. If the destination is not null, it is then - * converted to the destination colorspace. Normally this filter will only - * be used with a null destination. + * Objects created with this constructor can be used to convert + * BufferedImage's to a destination ColorSpace. Attempts to convert Rasters + * with this constructor will result in an IllegalArgumentException when the + * filter(Raster, WritableRaster) method is called. * * @param cspace The target color space. - * @param hints Rendering hints to use in conversion, or null. + * @param hints Rendering hints to use in conversion, if any (may be null) + * @throws NullPointerException if the ColorSpace is null. */ public ColorConvertOp(ColorSpace cspace, RenderingHints hints) { @@ -88,9 +89,27 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp throw new NullPointerException(); spaces = new ColorSpace[]{cspace}; this.hints = hints; - rasterValid = false; } + /** + * Convert from a source colorspace to a destination colorspace. + * + * This constructor takes two ColorSpace arguments as the source and + * destination color spaces. It is usually used with the + * filter(Raster, WritableRaster) method, in which case the source colorspace + * is assumed to correspond to the source Raster, and the destination + * colorspace with the destination Raster. + * + * If used with BufferedImages that do not match the source or destination + * colorspaces specified here, there is an implicit conversion from the + * source image to the source ColorSpace, or the destination ColorSpace to + * the destination image. + * + * @param srcCspace The source ColorSpace. + * @param dstCspace The destination ColorSpace. + * @param hints Rendering hints to use in conversion, if any (may be null). + * @throws NullPointerException if any ColorSpace is null. + */ public ColorConvertOp(ColorSpace srcCspace, ColorSpace dstCspace, RenderingHints hints) { @@ -101,61 +120,77 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp } /** - * Convert from a source image destination image color space. + * Convert from a source colorspace to a destinatino colorspace. * * This constructor builds a ColorConvertOp from an array of ICC_Profiles. - * The source image will be converted through the sequence of color spaces + * The source will be converted through the sequence of color spaces * defined by the profiles. If the sequence of profiles doesn't give a - * well-defined conversion, throws IllegalArgumentException. - * - * NOTE: Sun's docs don't clearly define what a well-defined conversion is - * - or perhaps someone smarter can come along and sort it out. + * well-defined conversion, an IllegalArgumentException is thrown. * - * For BufferedImages, when the first and last profiles match the - * requirements of the source and destination color space respectively, the - * corresponding conversion is unnecessary. TODO: code this up. I don't - * yet understand how you determine this. + * If used with BufferedImages that do not match the source or destination + * colorspaces specified here, there is an implicit conversion from the + * source image to the source ColorSpace, or the destination ColorSpace to + * the destination image. * * For Rasters, the first and last profiles must have the same number of * bands as the source and destination Rasters, respectively. If this is * not the case, or there fewer than 2 profiles, an IllegalArgumentException * will be thrown. * - * @param profiles - * @param hints + * @param profiles An array of ICC_Profile's to convert through. + * @param hints Rendering hints to use in conversion, if any (may be null). + * @throws NullPointerException if the profile array is null. + * @throws IllegalArgumentException if the array is not a well-defined + * conversion. */ public ColorConvertOp(ICC_Profile[] profiles, RenderingHints hints) { if (profiles == null) throw new NullPointerException(); + this.hints = hints; this.profiles = profiles; - // TODO: Determine if this is well-defined. + // Create colorspace array with space for src and dest colorspace + // Note that the ICC_ColorSpace constructor will throw an + // IllegalArgumentException if the profile is invalid; thus we check + // for a "well defined conversion" spaces = new ColorSpace[profiles.length]; for (int i = 0; i < profiles.length; i++) spaces[i] = new ICC_ColorSpace(profiles[i]); } - /** Convert from source image color space to destination image color space. + /** + * Convert from source color space to destination color space. * * Only valid for BufferedImage objects, this Op converts from the source - * color space to the destination color space. The destination can't be - * null for this operation. + * image's color space to the destination image's color space. * - * @param hints Rendering hints to use during conversion, or null. + * The destination in the filter(BufferedImage, BufferedImage) method cannot + * be null for this operation, and it also cannot be used with the + * filter(Raster, WritableRaster) method. + * + * @param hints Rendering hints to use in conversion, if any (may be null). */ public ColorConvertOp(RenderingHints hints) { - this.hints = hints; - srccs = null; - dstcs = null; - rasterValid = false; + this.hints = hints; + spaces = new ColorSpace[0]; } - /* (non-Javadoc) - * @see java.awt.image.BufferedImageOp#filter(java.awt.image.BufferedImage, - java.awt.image.BufferedImage) + /** + * Converts the source image using the conversion path specified in the + * constructor. The resulting image is stored in the destination image if one + * is provided; otherwise a new BufferedImage is created and returned. + * + * The source and destination BufferedImage (if one is supplied) must have + * the same dimensions. + * + * @param src The source image. + * @param dst The destination image. + * @throws IllegalArgumentException if the rasters and/or color spaces are + * incompatible. + * @return The transformed image. */ public final BufferedImage filter(BufferedImage src, BufferedImage dst) { @@ -163,129 +198,241 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp // For now we just suck it up and create intermediate buffers. if (dst == null && spaces.length == 0) - throw new IllegalArgumentException(); + throw new IllegalArgumentException("Not enough color space information " + + "to complete conversion."); + + if (dst != null + && (src.getHeight() != dst.getHeight() || src.getWidth() != dst.getWidth())) + throw new IllegalArgumentException("Source and destination images have " + + "different dimensions"); // Make sure input isn't premultiplied by alpha if (src.isAlphaPremultiplied()) - { - BufferedImage tmp = createCompatibleDestImage(src, src.getColorModel()); - copyimage(src, tmp); - tmp.coerceData(false); - src = tmp; - } + { + BufferedImage tmp = createCompatibleDestImage(src, src.getColorModel()); + copyimage(src, tmp); + tmp.coerceData(false); + src = tmp; + } - ColorModel scm = src.getColorModel(); + // Convert through defined intermediate conversions + BufferedImage tmp; for (int i = 0; i < spaces.length; i++) - { - BufferedImage tmp = createCompatibleDestImage(src, scm); - copyimage(src, tmp); - src = tmp; - } + { + if (src.getColorModel().getColorSpace().getType() != spaces[i].getType()) + { + tmp = createCompatibleDestImage(src, + createCompatibleColorModel(src, + spaces[i])); + copyimage(src, tmp); + src = tmp; + } + } - // Intermediate conversions leave result in src + // No implicit conversion to destination type needed; return result from the + // last intermediate conversions (which was left in src) if (dst == null) - return src; - - // Apply final conversion - copyimage(src, dst); - + dst = src; + + // Implicit conversion to destination image's color space + else + copyimage(src, dst); + return dst; } - /* (non-Javadoc) - * @see java.awt.image.BufferedImageOp#createCompatibleDestImage(java.awt.image.BufferedImage, java.awt.image.ColorModel) + /** + * Converts the source raster using the conversion path specified in the + * constructor. The resulting raster is stored in the destination raster if + * one is provided; otherwise a new WritableRaster is created and returned. + * + * This operation is not valid with every constructor of this class; see + * the constructors for details. Further, the source raster must have the + * same number of bands as the source ColorSpace, and the destination raster + * must have the same number of bands as the destination ColorSpace. + * + * The source and destination raster (if one is supplied) must also have the + * same dimensions. + * + * @param src The source raster. + * @param dest The destination raster. + * @throws IllegalArgumentException if the rasters and/or color spaces are + * incompatible. + * @return The transformed raster. + */ + public final WritableRaster filter(Raster src, WritableRaster dest) + { + // Various checks to ensure that the rasters and color spaces are compatible + if (spaces.length < 2) + throw new IllegalArgumentException("Not enough information about " + + "source and destination colorspaces."); + + if (spaces[0].getNumComponents() != src.getNumBands() + || (dest != null && spaces[spaces.length - 1].getNumComponents() != dest.getNumBands())) + throw new IllegalArgumentException("Source or destination raster " + + "contains the wrong number of bands."); + + if (dest != null + && (src.getHeight() != dest.getHeight() || src.getWidth() != dest.getWidth())) + throw new IllegalArgumentException("Source and destination rasters " + + "have different dimensions"); + + // Need to iterate through each color space. + // spaces[0] corresponds to the ColorSpace of the source raster, and + // spaces[spaces.length - 1] corresponds to the ColorSpace of the + // destination, with any number (or zero) of intermediate conversions. + + for (int i = 0; i < spaces.length - 2; i++) + { + WritableRaster tmp = createCompatibleDestRaster(src, spaces[i + 1], + false, + src.getTransferType()); + copyraster(src, spaces[i], tmp, spaces[i + 1]); + src = tmp; + } + + // The last conversion is done outside of the loop so that we can + // use the dest raster supplied, instead of creating our own temp raster + if (dest == null) + dest = createCompatibleDestRaster(src, spaces[spaces.length - 1], false, + DataBuffer.TYPE_BYTE); + copyraster(src, spaces[spaces.length - 2], dest, spaces[spaces.length - 1]); + + return dest; + } + + /** + * Creates an empty BufferedImage with the size equal to the source and the + * correct number of bands for the conversion defined in this Op. The newly + * created image is created with the specified ColorModel, or if no ColorModel + * is supplied, an appropriate one is chosen. + * + * @param src The source image. + * @param dstCM A color model for the destination image (may be null). + * @throws IllegalArgumentException if an appropriate colormodel cannot be + * chosen with the information given. + * @return The new compatible destination image. */ public BufferedImage createCompatibleDestImage(BufferedImage src, - ColorModel dstCM) + ColorModel dstCM) { - // FIXME: set properties to those in src + if (dstCM == null && spaces.length == 0) + throw new IllegalArgumentException("Don't know the destination " + + "colormodel"); + + if (dstCM == null) + { + dstCM = createCompatibleColorModel(src, spaces[spaces.length - 1]); + } + return new BufferedImage(dstCM, - src.getRaster().createCompatibleWritableRaster(), - src.isPremultiplied, - null); + createCompatibleDestRaster(src.getRaster(), + dstCM.getColorSpace(), + src.getColorModel().hasAlpha, + dstCM.getTransferType()), + src.isPremultiplied, null); } - public final ICC_Profile[] getICC_Profiles() + /** + * Creates a new WritableRaster with the size equal to the source and the + * correct number of bands. + * + * Note, the new Raster will always use a BYTE storage size, regardless of + * the color model or defined destination; this is for compatibility with + * the reference implementation. + * + * @param src The source Raster. + * @throws IllegalArgumentException if there isn't enough colorspace + * information to create a compatible Raster. + * @return The new compatible destination raster. + */ + public WritableRaster createCompatibleDestRaster(Raster src) { - return profiles; - } + if (spaces.length < 2) + throw new IllegalArgumentException("Not enough destination colorspace " + + "information"); - /** Return the rendering hints for this op. */ - public final RenderingHints getRenderingHints() - { - return hints; + // Create a new raster with the last ColorSpace in the conversion + // chain, and with no alpha (implied) + return createCompatibleDestRaster(src, spaces[spaces.length-1], false, + DataBuffer.TYPE_BYTE); } - /* (non-Javadoc) - * @see java.awt.image.RasterOp#filter(java.awt.image.Raster, java.awt.image.WritableRaster) + /** + * Returns the array of ICC_Profiles used to create this Op, or null if the + * Op was created using ColorSpace arguments. + * + * @return The array of ICC_Profiles, or null. */ - public final WritableRaster filter(Raster src, WritableRaster dest) + public final ICC_Profile[] getICC_Profiles() { - if (!rasterValid) - throw new IllegalArgumentException(); - - // Need to iterate through each color space - there must be at least 2 - for (int i = 1; i < spaces.length - 1; i++) - { - // FIXME: this is wrong. tmp needs to have the same number of bands as - // spaces[i] has. - WritableRaster tmp = createCompatibleDestRaster(src); - copyraster(src, spaces[i - 1], tmp, spaces[i]); - src = tmp; - } - - // FIXME: this is wrong. dst needs to have the same number of bands as - // spaces[i] has. - if (dest == null) - dest = createCompatibleDestRaster(src); - copyraster(src, spaces[spaces.length - 2], - dest, spaces[spaces.length - 1]); - - return dest; + return profiles; } - /* (non-Javadoc) - * @see java.awt.image.RasterOp#createCompatibleDestRaster(java.awt.image.Raster) + /** + * Returns the rendering hints for this op. + * + * @return The rendering hints for this Op, or null. */ - public WritableRaster createCompatibleDestRaster(Raster src) + public final RenderingHints getRenderingHints() { - return src.createCompatibleWritableRaster(); + return hints; } - /** Return corresponding destination point for source point. + /** + * Returns the corresponding destination point for a source point. + * Because this is not a geometric operation, the destination and source + * points will be identical. * - * LookupOp will return the value of src unchanged. * @param src The source point. - * @param dst The destination point. - * @see java.awt.image.RasterOp#getPoint2D(java.awt.geom.Point2D, java.awt.geom.Point2D) + * @param dst The transformed destination point. + * @return The transformed destination point. */ public final Point2D getPoint2D(Point2D src, Point2D dst) { - if (dst == null) return (Point2D)src.clone(); + if (dst == null) + return (Point2D)src.clone(); + dst.setLocation(src); return dst; } - /* (non-Javadoc) - * @see java.awt.image.BufferedImageOp#getBounds2D(java.awt.image.BufferedImage) + /** + * Returns the corresponding destination boundary of a source boundary. + * Because this is not a geometric operation, the destination and source + * boundaries will be identical. + * + * @param src The source boundary. + * @return The boundaries of the destination. */ public final Rectangle2D getBounds2D(BufferedImage src) { return src.getRaster().getBounds(); } - /* (non-Javadoc) - * @see java.awt.image.RasterOp#getBounds2D(java.awt.image.Raster) + /** + * Returns the corresponding destination boundary of a source boundary. + * Because this is not a geometric operation, the destination and source + * boundaries will be identical. + * + * @param src The source boundary. + * @return The boundaries of the destination. */ public final Rectangle2D getBounds2D(Raster src) { return src.getBounds(); } - - // According to Sven de Marothy, we need to copy the src into the dest - // using Graphics2D, in order to use the rendering hints. + + /** + * Copy a source image to a destination image, respecting their colorspaces + * and performing colorspace conversions if necessary. + * + * @param src The source image. + * @param dst The destination image. + */ private void copyimage(BufferedImage src, BufferedImage dst) { + // This is done using Graphics2D in order to respect the rendering hints. Graphics2D gg = dst.createGraphics(); // If no hints are set there is no need to call @@ -297,13 +444,23 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp gg.dispose(); } - private void copyraster(Raster src, ColorSpace scs, WritableRaster dst, - ColorSpace dcs) + /** + * Copy a source raster to a destination raster, performing a colorspace + * conversion between the two. The conversion will respect the + * KEY_COLOR_RENDERING rendering hint if one is present. + * + * @param src The source raster. + * @param scs The colorspace of the source raster. + * @dst The destination raster. + * @dcs The colorspace of the destination raster. + */ + private void copyraster(Raster src, ColorSpace scs, WritableRaster dst, ColorSpace dcs) { float[] sbuf = new float[src.getNumBands()]; - if (hints.get(RenderingHints.KEY_COLOR_RENDERING) == - RenderingHints.VALUE_COLOR_RENDER_QUALITY) + if (hints != null + && hints.get(RenderingHints.KEY_COLOR_RENDERING) == + RenderingHints.VALUE_COLOR_RENDER_QUALITY) { // use cie for accuracy for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) @@ -321,4 +478,60 @@ public class ColorConvertOp implements BufferedImageOp, RasterOp } } + /** + * This method creates a color model with the same colorspace and alpha + * settings as the source image. The created color model will always be a + * ComponentColorModel and have a BYTE transfer type. + * + * @param img The source image. + * @param cs The ColorSpace to use. + * @return A color model compatible with the source image. + */ + private ColorModel createCompatibleColorModel(BufferedImage img, ColorSpace cs) + { + // The choice of ComponentColorModel and DataBuffer.TYPE_BYTE is based on + // Mauve testing of the reference implementation. + return new ComponentColorModel(cs, + img.getColorModel().hasAlpha(), + img.isAlphaPremultiplied(), + img.getColorModel().getTransparency(), + DataBuffer.TYPE_BYTE); + } + + /** + * This method creates a compatible Raster, given a source raster, colorspace, + * alpha value, and transfer type. + * + * @param src The source raster. + * @param cs The ColorSpace to use. + * @param hasAlpha Whether the raster should include a component for an alpha. + * @param transferType The size of a single data element. + * @return A compatible WritableRaster. + */ + private WritableRaster createCompatibleDestRaster(Raster src, ColorSpace cs, + boolean hasAlpha, + int transferType) + { + // The use of a PixelInterleavedSampleModel weas determined using mauve + // tests, based on the reference implementation + + int numComponents = cs.getNumComponents(); + if (hasAlpha) + numComponents++; + + int[] offsets = new int[numComponents]; + for (int i = 0; i < offsets.length; i++) + offsets[i] = i; + + DataBuffer db = Buffers.createBuffer(transferType, + src.getWidth() * src.getHeight() * numComponents, + 1); + return new WritableRaster(new PixelInterleavedSampleModel(transferType, + src.getWidth(), + src.getHeight(), + numComponents, + numComponents * src.getWidth(), + offsets), + db, new Point(src.getMinX(), src.getMinY())); + } } diff --git a/libjava/classpath/java/awt/image/ColorModel.java b/libjava/classpath/java/awt/image/ColorModel.java index 9e559db37d8..e2873c5d71f 100644 --- a/libjava/classpath/java/awt/image/ColorModel.java +++ b/libjava/classpath/java/awt/image/ColorModel.java @@ -624,40 +624,40 @@ public abstract class ColorModel implements Transparency return cspace; } - // Typically overridden public ColorModel coerceData(WritableRaster raster, - boolean isAlphaPremultiplied) + boolean isAlphaPremultiplied) { - if (this.isAlphaPremultiplied == isAlphaPremultiplied) - return this; + // This method should always be overridden, but is not abstract. + throw new UnsupportedOperationException(); + } + protected void coerceDataWorker(WritableRaster raster, + boolean isAlphaPremultiplied) + { int w = raster.getWidth(); int h = raster.getHeight(); int x = raster.getMinX(); int y = raster.getMinY(); - int size = w*h; + int size = w * h; int numColors = getNumColorComponents(); int numComponents = getNumComponents(); - int alphaScale = (1< maxValue[b]) + v = maxValue[b]; + else if (v < 0) + v = 0; + dest.setSample(x + kernel.getXOrigin(), y + kernel.getYOrigin(), b, v); } @@ -310,13 +362,14 @@ public class ConvolveOp implements BufferedImageOp, RasterOp return src.getBounds(); } - /** Return corresponding destination point for source point. + /** + * Returns the corresponding destination point for a source point. Because + * this is not a geometric operation, the destination and source points will + * be identical. * - * ConvolveOp will return the value of src unchanged. * @param src The source point. - * @param dst The destination point. - * @see java.awt.image.RasterOp#getPoint2D(java.awt.geom.Point2D, - * java.awt.geom.Point2D) + * @param dst The transformed destination point. + * @return The transformed destination point. */ public final Point2D getPoint2D(Point2D src, Point2D dst) { diff --git a/libjava/classpath/java/awt/image/CropImageFilter.java b/libjava/classpath/java/awt/image/CropImageFilter.java index 4fcfdec4475..53b41562044 100644 --- a/libjava/classpath/java/awt/image/CropImageFilter.java +++ b/libjava/classpath/java/awt/image/CropImageFilter.java @@ -91,11 +91,12 @@ public class CropImageFilter extends ImageFilter * * @param props the list of properties associated with this image */ - public void setProperties(Hashtable props) + public void setProperties(Hashtable props) { - props.put("filters", "CropImageFilter"); - if (consumer != null) - consumer.setProperties(props); + Hashtable prop2 = (Hashtable) props; + prop2.put("filters", "CropImageFilter"); + if (consumer != null) + consumer.setProperties(prop2); } /** diff --git a/libjava/classpath/java/awt/image/DirectColorModel.java b/libjava/classpath/java/awt/image/DirectColorModel.java index 579dc97dfc7..dab15319fce 100644 --- a/libjava/classpath/java/awt/image/DirectColorModel.java +++ b/libjava/classpath/java/awt/image/DirectColorModel.java @@ -393,20 +393,20 @@ public class DirectColorModel extends PackedColorModel return Buffers.getData(buffer); } - public final ColorModel coerceData (WritableRaster raster, - boolean isAlphaPremultiplied) + public ColorModel coerceData (WritableRaster raster, + boolean isAlphaPremultiplied) { - if (this.isAlphaPremultiplied == isAlphaPremultiplied) + if (this.isAlphaPremultiplied == isAlphaPremultiplied || !hasAlpha()) return this; /* TODO: provide better implementation based on the assumptions we can make due to the specific type of the color model. */ - super.coerceData(raster, isAlphaPremultiplied); - - return new ComponentColorModel(cspace, bits, hasAlpha(), - isAlphaPremultiplied, // argument - transparency, transferType); + super.coerceDataWorker(raster, isAlphaPremultiplied); + + return new DirectColorModel(cspace, pixel_bits, getRedMask(), + getGreenMask(), getBlueMask(), getAlphaMask(), + isAlphaPremultiplied, transferType); } public boolean isCompatibleRaster(Raster raster) diff --git a/libjava/classpath/java/awt/image/ImageConsumer.java b/libjava/classpath/java/awt/image/ImageConsumer.java index fc5ed11e5ca..11f64f97867 100644 --- a/libjava/classpath/java/awt/image/ImageConsumer.java +++ b/libjava/classpath/java/awt/image/ImageConsumer.java @@ -136,7 +136,7 @@ public interface ImageConsumer * * @param props the list of properties associated with this image */ - void setProperties(Hashtable props); + void setProperties(Hashtable props); /** * This ColorModel should indicate the model used by diff --git a/libjava/classpath/java/awt/image/ImageFilter.java b/libjava/classpath/java/awt/image/ImageFilter.java dissimilarity index 73% index c39c4a428f9..0ead45a4ae0 100644 --- a/libjava/classpath/java/awt/image/ImageFilter.java +++ b/libjava/classpath/java/awt/image/ImageFilter.java @@ -1,228 +1,226 @@ -/* ImageFilter.java -- Java class for filtering images - Copyright (C) 1999 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.awt.image; - -import java.util.Hashtable; - -/** - * The ImageFilter class is a base class which can be - * extended to provide different types of filters for an image. By - * default this class does nothing to an image passing through it. - * - * @author C. Brian Jones (cbj@gnu.org) - */ -public class ImageFilter implements ImageConsumer, Cloneable -{ - /** - * The consumer this filter is filtering an image data stream for. - * It is initialized in the method getFilterInstance. - */ - protected ImageConsumer consumer = null; - - /** - * The ImageConsumer can use this method to request - * the pixels be delivered in top-down, left-right order. - *
    - * The filter can respond in three different ways. - *
      - *
    • The default behavior is to forward the request to the - * ImageProducer - * using the method requestTopDownLeftRightResend - * and using the filter as the consumer.
    • - *
    • The filter has the pixels and can retransmit them in the - * top-down, left-right order.
    • - *
    • The filter can do nothing when this method is called.
    • - *
    - */ - public void resendTopDownLeftRight(ImageProducer ip) - { - ip.requestTopDownLeftRightResend(this); - } - - /** - * By default, returns a shallow copy of the object created by - * Object.clone() - * - * @see java.lang.Object#clone () - */ - public Object clone() - { - try - { - return super.clone(); - } - catch (CloneNotSupportedException e) - { - // This should never happen as this class implements the - // Cloneable interface. - throw new InternalError (); - } - } - - /** - * This is the only method which can set the - * ImageConsumer for this filter. By default a clone - * of this filter with the appropriate consumer set is returned. - * - * @see #clone () - */ - public ImageFilter getFilterInstance(ImageConsumer ic) - { - if ( ic == null ) - throw new IllegalArgumentException("null argument for ImageFilter.getFilterInstance(ImageConsumer)"); - - consumer = ic; - ImageFilter f = (ImageFilter)clone(); - consumer = null; - return f; - } - - /** - * An ImageProducer indicates the size of the image - * being produced using this method. A filter can override this - * method to intercept these calls from the producer in order to - * change either the width or the height before in turn calling - * the consumer's setDimensions method. - * - * @param width the width of the image - * @param height the height of the image - */ - public void setDimensions(int width, int height) - { - if (consumer != null) - consumer.setDimensions(width, height); - } - - /** - * An ImageProducer can set a list of properties - * associated with this image by using this method. - * - * @param props the list of properties associated with this image - */ - public void setProperties(Hashtable props) - { - props.put("filters", "ImageFilter"); - if (consumer != null) - consumer.setProperties(props); - } - - /** - * Override this method to process calls to this method from the - * ImageProducer. By default the setColorModel - * method of the consumer is called with the specified model. - * - * @param model the color model to be used most often by setPixels - * @see ColorModel */ - public void setColorModel(ColorModel model) - { - if (consumer != null) - consumer.setColorModel(model); - } - - /** - * The ImageProducer should call this method with a - * bit mask of hints from any of RANDOMPIXELORDER, - * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, - * SINGLEPASS, SINGLEFRAME from the - * ImageConsumer interface. - * - * @param flags a bit mask of hints - * @see ImageConsumer - */ - public void setHints(int flags) - { - if (consumer != null) - consumer.setHints(flags); - } - - /** - * This function delivers a rectangle of pixels where any - * pixel(m,n) is stored in the array as a byte at - * index (n * scansize + m + offset). - * - * @param x the x coordinate of the rectangle - * @param y the y coordinate of the rectangle - * @param w the width of the rectangle - * @param h the height of the rectangle - * @param model the ColorModel used to translate the pixels - * @param pixels the array of pixel values - * @param offset the index of the first pixels in the pixels array - * @param scansize the width to use in extracting pixels from the pixels array - */ - public void setPixels(int x, int y, int w, int h, - ColorModel model, byte[] pixels, int offset, int scansize) - { - if (consumer != null) - consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); - } - - /** - * This function delivers a rectangle of pixels where any - * pixel(m,n) is stored in the array as an int at - * index (n * scansize + m + offset). - * - * @param x the x coordinate of the rectangle - * @param y the y coordinate of the rectangle - * @param w the width of the rectangle - * @param h the height of the rectangle - * @param model the ColorModel used to translate the pixels - * @param pixels the array of pixel values - * @param offset the index of the first pixels in the pixels array - * @param scansize the width to use in extracting pixels from the pixels array - */ - public void setPixels(int x, int y, int w, int h, - ColorModel model, int[] pixels, int offset, int scansize) - { - if (consumer != null) - consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); - } - - /** - * The ImageProducer calls this method to indicate a - * single frame or the entire image is complete. The method is - * also used to indicate an error in loading or producing the - * image. - */ - public void imageComplete(int status) - { - if (consumer != null) - consumer.imageComplete(status); - } -} - +/* ImageFilter.java -- Java class for filtering images + Copyright (C) 1999 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.awt.image; + +import java.util.Hashtable; + +/** + * The ImageFilter class is a base class which can be + * extended to provide different types of filters for an image. By + * default this class does nothing to an image passing through it. + * + * @author C. Brian Jones (cbj@gnu.org) + */ +public class ImageFilter implements ImageConsumer, Cloneable +{ + /** + * The consumer this filter is filtering an image data stream for. + * It is initialized in the method getFilterInstance. + */ + protected ImageConsumer consumer = null; + + /** + * The ImageConsumer can use this method to request + * the pixels be delivered in top-down, left-right order. + *
    + * The filter can respond in three different ways. + *
      + *
    • The default behavior is to forward the request to the + * ImageProducer + * using the method requestTopDownLeftRightResend + * and using the filter as the consumer.
    • + *
    • The filter has the pixels and can retransmit them in the + * top-down, left-right order.
    • + *
    • The filter can do nothing when this method is called.
    • + *
    + */ + public void resendTopDownLeftRight(ImageProducer ip) + { + ip.requestTopDownLeftRightResend(this); + } + + /** + * By default, returns a shallow copy of the object created by + * Object.clone() + * + * @see java.lang.Object#clone () + */ + public Object clone() + { + try + { + return super.clone(); + } + catch (CloneNotSupportedException e) + { + // This should never happen as this class implements the + // Cloneable interface. + throw new InternalError (); + } + } + + /** + * This is the only method which can set the + * ImageConsumer for this filter. By default a clone + * of this filter with the appropriate consumer set is returned. + * + * @see #clone () + */ + public ImageFilter getFilterInstance(ImageConsumer ic) + { + ImageFilter f = (ImageFilter)clone(); + f.consumer = ic; + return f; + } + + /** + * An ImageProducer indicates the size of the image + * being produced using this method. A filter can override this + * method to intercept these calls from the producer in order to + * change either the width or the height before in turn calling + * the consumer's setDimensions method. + * + * @param width the width of the image + * @param height the height of the image + */ + public void setDimensions(int width, int height) + { + consumer.setDimensions(width, height); + } + + /** + * An ImageProducer can set a list of properties + * associated with this image by using this method. + * + * @param props the list of properties associated with this image + */ + public void setProperties(Hashtable props) + { + Hashtable copy = (Hashtable) props.clone(); + Object o = copy.get("filters"); + if (o == null) + copy.put("filters", toString()); + else if (o instanceof String) + copy.put("filters", ((String) o) + toString()); + + consumer.setProperties(copy); + } + + /** + * Override this method to process calls to this method from the + * ImageProducer. By default the setColorModel + * method of the consumer is called with the specified model. + * + * @param model the color model to be used most often by setPixels + * + * @see ColorModel + */ + public void setColorModel(ColorModel model) + { + consumer.setColorModel(model); + } + + /** + * The ImageProducer should call this method with a + * bit mask of hints from any of RANDOMPIXELORDER, + * TOPDOWNLEFTRIGHT, COMPLETESCANLINES, + * SINGLEPASS, SINGLEFRAME from the + * ImageConsumer interface. + * + * @param flags a bit mask of hints + * @see ImageConsumer + */ + public void setHints(int flags) + { + consumer.setHints(flags); + } + + /** + * This function delivers a rectangle of pixels where any + * pixel(m,n) is stored in the array as a byte at + * index (n * scansize + m + offset). + * + * @param x the x coordinate of the rectangle + * @param y the y coordinate of the rectangle + * @param w the width of the rectangle + * @param h the height of the rectangle + * @param model the ColorModel used to translate the pixels + * @param pixels the array of pixel values + * @param offset the index of the first pixels in the pixels array + * @param scansize the width to use in extracting pixels from the pixels array + */ + public void setPixels(int x, int y, int w, int h, + ColorModel model, byte[] pixels, int offset, + int scansize) + { + consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); + } + + /** + * This function delivers a rectangle of pixels where any + * pixel(m,n) is stored in the array as an int at + * index (n * scansize + m + offset). + * + * @param x the x coordinate of the rectangle + * @param y the y coordinate of the rectangle + * @param w the width of the rectangle + * @param h the height of the rectangle + * @param model the ColorModel used to translate the pixels + * @param pixels the array of pixel values + * @param offset the index of the first pixels in the pixels array + * @param scansize the width to use in extracting pixels from the pixels array + */ + public void setPixels(int x, int y, int w, int h, + ColorModel model, int[] pixels, int offset, + int scansize) + { + consumer.setPixels(x, y, w, h, model, pixels, offset, scansize); + } + + /** + * The ImageProducer calls this method to indicate a + * single frame or the entire image is complete. The method is + * also used to indicate an error in loading or producing the + * image. + */ + public void imageComplete(int status) + { + consumer.imageComplete(status); + } +} diff --git a/libjava/classpath/java/awt/image/IndexColorModel.java b/libjava/classpath/java/awt/image/IndexColorModel.java index 299b4dc0d86..46879cc98c9 100644 --- a/libjava/classpath/java/awt/image/IndexColorModel.java +++ b/libjava/classpath/java/awt/image/IndexColorModel.java @@ -134,10 +134,6 @@ public class IndexColorModel extends ColorModel if (size < 1) throw new IllegalArgumentException("size < 1"); map_size = size; - if (0 <= trans && trans < size) { - this.trans = trans; - transparency = BITMASK; - } rgb = new int[size]; for (int i = 0; i < size; i++) { @@ -146,6 +142,9 @@ public class IndexColorModel extends ColorModel | ((greens[i] & 0xff) << 8) | (blues[i] & 0xff)); } + + setTransparentPixel(trans); + // Generate a bigint with 1's for every pixel validBits = validBits.setBit(size).subtract(BigInteger.ONE); } @@ -275,8 +274,6 @@ public class IndexColorModel extends ColorModel throw new IllegalArgumentException("size < 1"); map_size = size; opaque = !hasAlpha; - if (0 <= trans && trans < size) - this.trans = trans; rgb = new int[size]; if (hasAlpha) @@ -318,6 +315,8 @@ public class IndexColorModel extends ColorModel transparency = BITMASK; } + setTransparentPixel(trans); + // Generate a bigint with 1's for every pixel validBits = validBits.setBit(size).subtract(BigInteger.ONE); } @@ -361,9 +360,6 @@ public class IndexColorModel extends ColorModel throw new IllegalArgumentException("size < 1"); map_size = size; opaque = !hasAlpha; - if (0 <= trans && trans < size) - this.trans = trans; - rgb = new int[size]; if (!hasAlpha) for (int i = 0; i < size; i++) @@ -371,6 +367,8 @@ public class IndexColorModel extends ColorModel else System.arraycopy(cmap, start, rgb, 0, size); + setTransparentPixel(trans); + // Generate a bigint with 1's for every pixel validBits = validBits.setBit(size).subtract(BigInteger.ONE); } @@ -584,12 +582,7 @@ public class IndexColorModel extends ColorModel */ public final int getAlpha(int pixel) { - if (opaque && pixel != trans) - return 255; - if ((pixel == trans && trans != -1) || pixel >= map_size) - return 0; - - return (0xFF000000 & rgb[pixel]) >> 24; + return (rgb[pixel] >> 24) & 0xFF; } /** @@ -694,4 +687,43 @@ public class IndexColorModel extends ColorModel return im; } + + /** + * Creates a {@link SampleModel} that is compatible to this color model. + * This will be a {@link MultiPixelPackedSampleModel} for bits/pixel of + * 1, 2 or 4, or a {@link ComponentColorModel} for the other cases. + * + * @param w the width of the sample model to create + * @param h the height of the sample model to create + * + * @return a compatible sample model + */ + public SampleModel createCompatibleSampleModel(int w, int h) + { + SampleModel sm; + if (pixel_bits == 1 || pixel_bits == 2 || pixel_bits == 4) + sm = new MultiPixelPackedSampleModel(transferType, w, h, pixel_bits); + else + sm = new ComponentSampleModel(transferType, w, h, 1, w, new int[]{0}); + return sm; + } + + /** + * Sets the transparent pixel. This is called by the various constructors. + * + * @param t the transparent pixel + */ + private void setTransparentPixel(int t) + { + if (t >= 0 && t < map_size) + { + rgb[t] &= 0xffffff; // Make the value transparent. + trans = t; + if (transparency == OPAQUE) + { + transparency = BITMASK; + hasAlpha = true; + } + } + } } diff --git a/libjava/classpath/java/awt/image/LookupOp.java b/libjava/classpath/java/awt/image/LookupOp.java index 46e72fe6183..5b0cf783168 100644 --- a/libjava/classpath/java/awt/image/LookupOp.java +++ b/libjava/classpath/java/awt/image/LookupOp.java @@ -38,7 +38,6 @@ exception statement from your version. */ package java.awt.image; -import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; @@ -67,7 +66,8 @@ public class LookupOp implements BufferedImageOp, RasterOp private LookupTable lut; private RenderingHints hints; - /** Construct a new LookupOp. + /** + * Construct a new LookupOp using the given LookupTable. * * @param lookup LookupTable to use. * @param hints Rendering hints (can be null). @@ -78,16 +78,40 @@ public class LookupOp implements BufferedImageOp, RasterOp this.hints = hints; } - /* (non-Javadoc) - * @see java.awt.image.BufferedImageOp#filter(java.awt.image.BufferedImage, java.awt.image.BufferedImage) + /** + * Converts the source image using the lookup table specified in the + * constructor. The resulting image is stored in the destination image if one + * is provided; otherwise a new BufferedImage is created and returned. + * + * The source image cannot use an IndexColorModel, and the destination image + * (if one is provided) must have the same size. + * + * @param src The source image. + * @param dst The destination image. + * @throws IllegalArgumentException if the rasters and/or color spaces are + * incompatible. + * @throws ArrayIndexOutOfBoundsException if a pixel in the source is not + * contained in the LookupTable. + * @return The convolved image. */ public final BufferedImage filter(BufferedImage src, BufferedImage dst) { if (src.getColorModel() instanceof IndexColorModel) throw new IllegalArgumentException("LookupOp.filter: IndexColorModel " + "not allowed"); + + if (lut.getNumComponents() != 1 + && lut.getNumComponents() != src.getColorModel().getNumComponents() + && lut.getNumComponents() != src.getColorModel().getNumColorComponents()) + throw new IllegalArgumentException("LookupOp.filter: Incompatible " + + "lookup table and source image"); + if (dst == null) - dst = createCompatibleDestImage(src, src.getColorModel()); + dst = createCompatibleDestImage(src, null); + + else if (src.getHeight() != dst.getHeight() || src.getWidth() != dst.getWidth()) + throw new IllegalArgumentException("Source and destination images are " + + "different sizes."); // Set up for potential colormodel mismatch BufferedImage tgt; @@ -116,33 +140,35 @@ public class LookupOp implements BufferedImageOp, RasterOp sr.getPixel(x, y, dbuf); System.arraycopy(dbuf, 0, tmp, 0, tmpBands); dr.setPixel(x, y, lut.lookupPixel(tmp, dbuf)); + + /* The reference implementation does not use LookupTable.lookupPixel, + * but rather it seems to copy the table into a native array. The + * effect of this (a probable bug in their implementation) is that + * an out-of-bounds lookup on a ByteLookupTable will *not* throw an + * out of bounds exception, but will instead return random garbage. + * A bad lookup on a ShortLookupTable, however, will throw an + * exception. + * + * Instead of mimicing this behaviour, we always throw an + * ArrayOutofBoundsException by virtue of using + * LookupTable.lookupPixle. + */ } } - else if (lut.getNumComponents() != 1 - && - lut.getNumComponents() != src.getColorModel().getNumComponents()) - throw new IllegalArgumentException("LookupOp.filter: " - + "Incompatible lookup " - + "table and source image"); - - // No alpha to ignore - int[] dbuf = new int[src.getColorModel().getNumComponents()]; - - // Filter the pixels - for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) - for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) - dr.setPixel(x, y, lut.lookupPixel(sr.getPixel(x, y, dbuf), dbuf)); - - if (tgt != dst) + else { - // Convert between color models. - // TODO Check that premultiplied alpha is handled correctly here. - Graphics2D gg = dst.createGraphics(); - gg.setRenderingHints(hints); - gg.drawImage(tgt, 0, 0, null); - gg.dispose(); + // No alpha to ignore + int[] dbuf = new int[src.getColorModel().getNumComponents()]; + + // Filter the pixels + for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) + for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) + dr.setPixel(x, y, lut.lookupPixel(sr.getPixel(x, y, dbuf), dbuf)); } + if (tgt != dst) + new ColorConvertOp(hints).filter(tgt, dst); + return dst; } @@ -160,18 +186,27 @@ public class LookupOp implements BufferedImageOp, RasterOp public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel dstCM) { - // FIXME: set properties to those in src - return new BufferedImage(dstCM, - src.getRaster().createCompatibleWritableRaster(), - src.isPremultiplied, null); + if (dstCM != null) + return new BufferedImage(dstCM, + src.getRaster().createCompatibleWritableRaster(), + src.isAlphaPremultiplied(), null); + + // This is a strange exception, done for compatibility with the reference + // (as demonstrated by a mauve testcase) + int imgType = src.getType(); + if (imgType == BufferedImage.TYPE_USHORT_GRAY) + imgType = BufferedImage.TYPE_BYTE_GRAY; + + return new BufferedImage(src.getWidth(), src.getHeight(), imgType); } - /** Return corresponding destination point for source point. + /** + * Returns the corresponding destination point for a given source point. + * + * This Op will return the source point unchanged. * - * LookupOp will return the value of src unchanged. * @param src The source point. * @param dst The destination point. - * @see java.awt.image.RasterOp#getPoint2D(java.awt.geom.Point2D, java.awt.geom.Point2D) */ public final Point2D getPoint2D(Point2D src, Point2D dst) { @@ -182,7 +217,11 @@ public class LookupOp implements BufferedImageOp, RasterOp return dst; } - /** Return the LookupTable for this op. */ + /** + * Return the LookupTable for this op. + * + * @return The lookup table. + */ public final LookupTable getTable() { return lut; @@ -196,7 +235,8 @@ public class LookupOp implements BufferedImageOp, RasterOp return hints; } - /** Filter a raster through a lookup table. + /** + * Filter a raster through a lookup table. * * Applies the lookup table for this Rasterop to each pixel of src and * puts the results in dest. If dest is null, a new Raster is created and @@ -206,8 +246,9 @@ public class LookupOp implements BufferedImageOp, RasterOp * @param dest The destination raster. * @return The WritableRaster with the filtered pixels. * @throws IllegalArgumentException if lookup table has more than one - * component but not the same as src and dest. - * @see java.awt.image.RasterOp#filter(java.awt.image.Raster, java.awt.image.WritableRaster) + * component but not the same as src and dest. + * @throws ArrayIndexOutOfBoundsException if a pixel in the source is not + * contained in the LookupTable. */ public final WritableRaster filter(Raster src, WritableRaster dest) { @@ -216,12 +257,13 @@ public class LookupOp implements BufferedImageOp, RasterOp dest = createCompatibleDestRaster(src); else if (src.getNumBands() != dest.getNumBands()) - throw new IllegalArgumentException(); - - if (lut.getNumComponents() != 1 - && lut.getNumComponents() != src.getNumBands()) - throw new IllegalArgumentException(); + throw new IllegalArgumentException("Source and destination rasters " + + "are incompatible."); + if (lut.getNumComponents() != 1 + && lut.getNumComponents() != src.getNumBands()) + throw new IllegalArgumentException("Lookup table is incompatible with " + + "this raster."); // Allocate pixel storage. int[] tmp = new int[src.getNumBands()]; @@ -230,6 +272,19 @@ public class LookupOp implements BufferedImageOp, RasterOp for (int y = src.getMinY(); y < src.getHeight() + src.getMinY(); y++) for (int x = src.getMinX(); x < src.getWidth() + src.getMinX(); x++) dest.setPixel(x, y, lut.lookupPixel(src.getPixel(x, y, tmp), tmp)); + + /* The reference implementation does not use LookupTable.lookupPixel, + * but rather it seems to copy the table into a native array. The + * effect of this (a probable bug in their implementation) is that + * an out-of-bounds lookup on a ByteLookupTable will *not* throw an + * out of bounds exception, but will instead return random garbage. + * A bad lookup on a ShortLookupTable, however, will throw an + * exception. + * + * Instead of mimicing this behaviour, we always throw an + * ArrayOutofBoundsException by virtue of using + * LookupTable.lookupPixle. + */ return dest; } diff --git a/libjava/classpath/java/awt/image/MemoryImageSource.java b/libjava/classpath/java/awt/image/MemoryImageSource.java index 95cd4081922..83a03ca449c 100644 --- a/libjava/classpath/java/awt/image/MemoryImageSource.java +++ b/libjava/classpath/java/awt/image/MemoryImageSource.java @@ -1,5 +1,5 @@ /* MemoryImageSource.java -- Java class for providing image data - Copyright (C) 1999, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,9 @@ package java.awt.image; import java.util.Hashtable; import java.util.Vector; +/** + * An image producer that delivers image data from an array. + */ public class MemoryImageSource implements ImageProducer { private boolean animated = false; @@ -73,10 +76,19 @@ public class MemoryImageSource implements ImageProducer } /** - * Constructs an ImageProducer from memory + * Constructs an ImageProducer from memory. + * + * @param w the image width. + * @param h the image height. + * @param cm the color model. + * @param pix the image data. + * @param off the offset to the first pixel in the array. + * @param scan the number of array elements from a pixel on one row to the + * corresponding pixel on the next row. + * @param props image properties (null permitted). */ public MemoryImageSource(int w, int h, ColorModel cm, byte[] pix, int off, - int scan, Hashtable props) + int scan, Hashtable props) { width = w; height = h; @@ -106,10 +118,19 @@ public class MemoryImageSource implements ImageProducer } /** - Constructs an ImageProducer from memory - */ + * Constructs an ImageProducer from memory + * + * @param w the image width. + * @param h the image height. + * @param cm the color model. + * @param pix the image data. + * @param off the offset to the first pixel in the array. + * @param scan the number of array elements from a pixel on one row to the + * corresponding pixel on the next row. + * @param props image properties (null permitted). + */ public MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off, - int scan, Hashtable props) + int scan, Hashtable props) { width = w; height = h; @@ -122,16 +143,32 @@ public class MemoryImageSource implements ImageProducer } /** - * Constructs an ImageProducer from memory using the default RGB ColorModel + * Constructs an ImageProducer from memory using the default RGB ColorModel. + * + * @param w the image width. + * @param h the image height. + * @param pix the image data. + * @param off the offset to the first pixel in the array. + * @param scan the number of array elements from a pixel on one row to the + * corresponding pixel on the next row. + * @param props image properties (null permitted). + */ public MemoryImageSource(int w, int h, int[] pix, int off, int scan, - Hashtable props) + Hashtable props) { this(w, h, ColorModel.getRGBdefault(), pix, off, scan, props); } /** - * Constructs an ImageProducer from memory using the default RGB ColorModel + * Constructs an ImageProducer from memory using the default RGB ColorModel. + * + * @param w the image width. + * @param h the image height. + * @param pix the image data. + * @param off the offset to the first pixel in the array. + * @param scan the number of array elements from a pixel on one row to the + * corresponding pixel on the next row. */ public MemoryImageSource(int w, int h, int[] pix, int off, int scan) { @@ -141,6 +178,8 @@ public class MemoryImageSource implements ImageProducer /** * Used to register an ImageConsumer with this * ImageProducer. + * + * @param ic the image consumer. */ public synchronized void addConsumer(ImageConsumer ic) { @@ -153,6 +192,8 @@ public class MemoryImageSource implements ImageProducer /** * Used to determine if the given ImageConsumer is * already registered with this ImageProducer. + * + * @param ic the image consumer. */ public synchronized boolean isConsumer(ImageConsumer ic) { @@ -164,6 +205,8 @@ public class MemoryImageSource implements ImageProducer /** * Used to remove an ImageConsumer from the list of * registered consumers for this ImageProducer. + * + * @param ic the image consumer. */ public synchronized void removeConsumer(ImageConsumer ic) { @@ -197,6 +240,8 @@ public class MemoryImageSource implements ImageProducer * Used to register an ImageConsumer with this * ImageProducer and then request that this producer * resend the image data in the order top-down, left-right. + * + * @param ic the image consumer. */ public void requestTopDownLeftRightResend(ImageConsumer ic) { @@ -219,7 +264,7 @@ public class MemoryImageSource implements ImageProducer * sending animation. If this flag is set then full buffers are sent * in the newPixels methods instead of just regions. * - * @param fullbuffers - a flag indicating whether to send the full buffers + * @param fullbuffers a flag indicating whether to send the full buffers */ public synchronized void setFullBufferUpdates(boolean fullbuffers) { @@ -260,6 +305,11 @@ public class MemoryImageSource implements ImageProducer /** * Send an animation frame to the image consumers containing the specified * pixels unless setFullBufferUpdates is set. + * + * @param x the x-coordinate. + * @param y the y-coordinate. + * @param w the width. + * @param h the height. */ public synchronized void newPixels(int x, int y, int w, int h) { @@ -306,6 +356,12 @@ public class MemoryImageSource implements ImageProducer * * If framenotify is set then a notification is sent when the frame * is sent otherwise no status is sent. + * + * @param x the x-coordinate. + * @param y the y-coordinate. + * @param w the width. + * @param h the height. + * @param framenotify send notification? */ public synchronized void newPixels(int x, int y, int w, int h, boolean framenotify) diff --git a/libjava/classpath/java/awt/image/PixelGrabber.java b/libjava/classpath/java/awt/image/PixelGrabber.java index 70a80af3cf9..fc5e0efc0a5 100644 --- a/libjava/classpath/java/awt/image/PixelGrabber.java +++ b/libjava/classpath/java/awt/image/PixelGrabber.java @@ -55,7 +55,7 @@ public class PixelGrabber implements ImageConsumer ColorModel model = ColorModel.getRGBdefault(); int hints; - Hashtable props; + Hashtable props; int int_pixel_buffer[]; boolean ints_delivered = false; @@ -442,7 +442,7 @@ public class PixelGrabber implements ImageConsumer * @param props a list of properties associated with the image being * produced */ - public synchronized void setProperties(Hashtable props) + public synchronized void setProperties(Hashtable props) { this.props = props; } diff --git a/libjava/classpath/java/awt/image/RGBImageFilter.java b/libjava/classpath/java/awt/image/RGBImageFilter.java dissimilarity index 79% index ecfed0674f1..c777fecd901 100644 --- a/libjava/classpath/java/awt/image/RGBImageFilter.java +++ b/libjava/classpath/java/awt/image/RGBImageFilter.java @@ -1,273 +1,265 @@ -/* RGBImageFilter.java -- Java class for filtering Pixels by RGB values - Copyright (C) 1999, 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.awt.image; - -/** - * A filter designed to filter images in the default RGBColorModel regardless of - * the ImageProducer's ColorModel. - * - * @author Mark Benvenuto (mcb54@columbia.edu) - */ -public abstract class RGBImageFilter extends ImageFilter -{ - protected ColorModel origmodel; - - protected ColorModel newmodel; - - /** - Specifies whether to apply the filter to the index entries of the - IndexColorModel. Subclasses should set this to true if the filter - does not depend on the pixel's coordinate. - */ - protected boolean canFilterIndexColorModel = false; - - /** - Construct new RGBImageFilter. - */ - public RGBImageFilter() - { - } - - /** - * Sets the ColorModel used to filter with. If the specified ColorModel is IndexColorModel - * and canFilterIndexColorModel is true, we subsitute the ColorModel for a filtered one - * here and in setPixels whenever the original one appears. Otherwise overrides the default - * ColorModel of ImageProducer and specifies the default RGBColorModel - * - * @param model the color model to be used most often by setPixels - * @see ColorModel */ - public void setColorModel(ColorModel model) - { - origmodel = model; - newmodel = model; - - if( ( model instanceof IndexColorModel) && canFilterIndexColorModel ) { - newmodel = filterIndexColorModel( (IndexColorModel) model ); - if (consumer != null) - consumer.setColorModel(newmodel); - } - else { - if (consumer != null) - consumer.setColorModel(ColorModel.getRGBdefault()); - } - } - - /** - Registers a new ColorModel to subsitute for the old ColorModel when - setPixels encounters the a pixel with the old ColorModel. The pixel - remains unchanged except for a new ColorModel. - - @param oldcm the old ColorModel - @param newcm the new ColorModel - */ - public void substituteColorModel(ColorModel oldcm, - ColorModel newcm) - { - origmodel = oldcm; - newmodel = newcm; - } - - /** - Filters an IndexColorModel through the filterRGB function. Uses - coordinates of -1 to indicate its filtering an index and not a pixel. - - @param icm an IndexColorModel to filter - */ - public IndexColorModel filterIndexColorModel(IndexColorModel icm) - { - int len = icm.getMapSize(), rgb; - byte reds[] = new byte[len], greens[] = new byte[len], blues[] = new byte[len], alphas[] = new byte[len]; - - icm.getAlphas( alphas ); - icm.getReds( reds ); - icm.getGreens( greens ); - icm.getBlues( blues ); - - for( int i = 0; i < len; i++ ) - { - rgb = filterRGB( -1, -1, makeColor ( alphas[i], reds[i], greens[i], blues[i] ) ); - alphas[i] = (byte)(( 0xff000000 & rgb ) >> 24); - reds[i] = (byte)(( 0xff0000 & rgb ) >> 16); - greens[i] = (byte)(( 0xff00 & rgb ) >> 8); - blues[i] = (byte)(0xff & rgb); - } - return new IndexColorModel( icm.getPixelSize(), len, reds, greens, blues, alphas ); - } - - private int makeColor( byte a, byte r, byte g, byte b ) - { - return ( 0xff000000 & (a << 24) | 0xff0000 & (r << 16) | 0xff00 & (g << 8) | 0xff & b ); - } - - /** - This functions filters a set of RGB pixels through filterRGB. - - @param x the x coordinate of the rectangle - @param y the y coordinate of the rectangle - @param w the width of the rectangle - @param h the height of the rectangle - @param pixels the array of pixel values - @param offset the index of the first pixels in the pixels array - @param scansize the width to use in extracting pixels from the pixels array - */ - public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, - int offset, int scansize) - { - for (int yp = 0; yp < h; yp++) - { - for (int xp = 0; xp < w; xp++) - { - pixels[offset + xp] = filterRGB(xp + x, yp + y, pixels[offset + xp]); - } - offset += scansize; - } - } - - - /** - * If the ColorModel is the same ColorModel which as already converted - * then it converts it the converted ColorModel. Otherwise it passes the - * array of pixels through filterRGBpixels. - * - * @param x the x coordinate of the rectangle - * @param y the y coordinate of the rectangle - * @param w the width of the rectangle - * @param h the height of the rectangle - * @param model the ColorModel used to translate the pixels - * @param pixels the array of pixel values - * @param offset the index of the first pixels in the pixels array - * @param scansize the width to use in extracting pixels from the pixels array - */ - public void setPixels(int x, int y, int w, int h, - ColorModel model, byte[] pixels, - int offset, int scansize) - { - if(model == origmodel && (model instanceof IndexColorModel) && canFilterIndexColorModel) - { - if (consumer != null) - consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize); - } - else - { - int intPixels[] = - convertColorModelToDefault( x, y, w, h, model, pixels, offset, scansize ); - filterRGBPixels( x, y, w, h, intPixels, offset, scansize ); - if (consumer != null) - consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), intPixels, offset, scansize); - } - } - - /** - * This function delivers a rectangle of pixels where any - * pixel(m,n) is stored in the array as an int at - * index (n * scansize + m + offset). - * - * @param x the x coordinate of the rectangle - * @param y the y coordinate of the rectangle - * @param w the width of the rectangle - * @param h the height of the rectangle - * @param model the ColorModel used to translate the pixels - * @param pixels the array of pixel values - * @param offset the index of the first pixels in the pixels array - * @param scansize the width to use in extracting pixels from the pixels array - */ - public void setPixels(int x, int y, int w, int h, - ColorModel model, int[] pixels, - int offset, int scansize) - { - if(model == origmodel && (model instanceof IndexColorModel) && canFilterIndexColorModel) - { - if (consumer != null) - consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize); - } - else - { - //FIXME: Store the filtered pixels in a separate temporary buffer? - convertColorModelToDefault( x, y, w, h, model, pixels, offset, scansize ); - filterRGBPixels( x, y, w, h, pixels, offset, scansize ); - if (consumer != null) - consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), pixels, offset, scansize); - } - } - - private int[] convertColorModelToDefault(int x, int y, int w, int h, - ColorModel model, byte pixels[], - int offset, int scansize) - { - int intPixels[] = new int[pixels.length]; - for (int i = 0; i < pixels.length; i++) - intPixels[i] = makeColorbyDefaultCM(model, pixels[i]); - return intPixels; - } - - private void convertColorModelToDefault(int x, int y, int w, int h, - ColorModel model, int pixels[], - int offset, int scansize) - { - for (int i = 0; i < pixels.length; i++) - pixels[i] = makeColorbyDefaultCM(model, pixels[i]); - } - - private int makeColorbyDefaultCM(ColorModel model, byte rgb) - { - return makeColor( model.getAlpha( rgb ) * 4, model.getRed( rgb ) * 4, model.getGreen( rgb ) * 4, model.getBlue( rgb ) * 4 ); - } - - private int makeColorbyDefaultCM(ColorModel model, int rgb) - { - return makeColor( model.getAlpha( rgb ), model.getRed( rgb ), model.getGreen( rgb ), model.getBlue( rgb ) ); - } - - private int makeColor( int a, int r, int g, int b ) - { - return (int)( 0xff000000 & (a << 24) | 0xff0000 & (r << 16) | 0xff00 & (g << 8) | 0xff & b ); - } - - - /** - Filters a single pixel from the default ColorModel. - - @param x x-coordinate - @param y y-coordinate - @param rgb color - */ - public abstract int filterRGB(int x, - int y, - int rgb); -} +/* RGBImageFilter.java -- Java class for filtering Pixels by RGB values + Copyright (C) 1999, 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.awt.image; + +/** + * A filter designed to filter images in the default RGBColorModel regardless of + * the ImageProducer's ColorModel. + * + * @author Mark Benvenuto (mcb54@columbia.edu) + */ +public abstract class RGBImageFilter extends ImageFilter +{ + protected ColorModel origmodel; + + protected ColorModel newmodel; + + /** + * Specifies whether to apply the filter to the index entries of the + * IndexColorModel. Subclasses should set this to true if the filter + * does not depend on the pixel's coordinate. + */ + protected boolean canFilterIndexColorModel = false; + + /** + * Construct new RGBImageFilter. + */ + public RGBImageFilter() + { + } + + /** + * Sets the ColorModel used to filter with. If the specified ColorModel is + * IndexColorModel and canFilterIndexColorModel is true, we subsitute the + * ColorModel for a filtered one here and in setPixels whenever the original + * one appears. Otherwise overrides the default ColorModel of ImageProducer + * and specifies the default RGBColorModel + * + * @param model the color model to be used most often by setPixels + * + * @see ColorModel + */ + public void setColorModel(ColorModel model) + { + if ((model instanceof IndexColorModel) && canFilterIndexColorModel) + { + ColorModel newCM = filterIndexColorModel((IndexColorModel) model); + substituteColorModel(model, newCM); + consumer.setColorModel(newmodel); + } + else + { + consumer.setColorModel(ColorModel.getRGBdefault()); + } + } + + /** + * Registers a new ColorModel to subsitute for the old ColorModel when + * setPixels encounters the a pixel with the old ColorModel. The pixel + * remains unchanged except for a new ColorModel. + * + * @param oldcm the old ColorModel + * @param newcm the new ColorModel + */ + public void substituteColorModel(ColorModel oldcm, ColorModel newcm) + { + origmodel = oldcm; + newmodel = newcm; + } + + /** + * Filters an IndexColorModel through the filterRGB function. Uses + * coordinates of -1 to indicate its filtering an index and not a pixel. + * + * @param icm an IndexColorModel to filter + */ + public IndexColorModel filterIndexColorModel(IndexColorModel icm) + { + int len = icm.getMapSize(); + byte[] reds = new byte[len]; + byte[] greens = new byte[len]; + byte[] blues = new byte[len]; + byte[] alphas = new byte[len]; + + icm.getAlphas( alphas ); + icm.getReds( reds ); + icm.getGreens( greens ); + icm.getBlues( blues ); + + int transparent = icm.getTransparentPixel(); + boolean needAlpha = false; + for( int i = 0; i < len; i++ ) + { + int rgb = filterRGB(-1, -1, icm.getRGB(i)); + alphas[i] = (byte) (rgb >> 24); + if (alphas[i] != ((byte) 0xff) && i != transparent) + needAlpha = true; + reds[i] = (byte) (rgb >> 16); + greens[i] = (byte) (rgb >> 8); + blues[i] = (byte) (rgb); + } + IndexColorModel newIcm; + if (needAlpha) + newIcm = new IndexColorModel(icm.getPixelSize(), len, reds, greens, + blues, alphas); + else + newIcm = new IndexColorModel(icm.getPixelSize(), len, reds, greens, + blues, transparent); + return newIcm; + } + + /** + * This functions filters a set of RGB pixels through filterRGB. + * + * @param x the x coordinate of the rectangle + * @param y the y coordinate of the rectangle + * @param w the width of the rectangle + * @param h the height of the rectangle + * @param pixels the array of pixel values + * @param offset the index of the first pixels in the + * pixels array + * @param scansize the width to use in extracting pixels from the + * pixels array + */ + public void filterRGBPixels(int x, int y, int w, int h, int[] pixels, + int offset, int scansize) + { + int index = offset; + for (int yp = 0; yp < h; yp++) + { + for (int xp = 0; xp < w; xp++) + { + pixels[index] = filterRGB(xp + x, yp + y, pixels[index]); + index++; + } + index += scansize - w; + } + consumer.setPixels(x, y, w, h, ColorModel.getRGBdefault(), pixels, offset, + scansize); + } + + /** + * If the ColorModel is the same ColorModel which as already converted + * then it converts it the converted ColorModel. Otherwise it passes the + * array of pixels through filterRGBpixels. + * + * @param x the x coordinate of the rectangle + * @param y the y coordinate of the rectangle + * @param w the width of the rectangle + * @param h the height of the rectangle + * @param model the ColorModel used to translate the pixels + * @param pixels the array of pixel values + * @param offset the index of the first pixels in the pixels + * array + * @param scansize the width to use in extracting pixels from the + * pixels array + */ + public void setPixels(int x, int y, int w, int h, ColorModel model, + byte[] pixels, int offset, int scansize) + { + if (model == origmodel) + { + consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize); + } + else + { + int[] filtered = new int[w]; + int index = offset; + for (int yp = 0; yp < h; yp++) + { + for (int xp = 0; xp < w; xp++) + { + filtered[xp] = model.getRGB((pixels[index] & 0xff)); + index++; + } + index += scansize - w; + filterRGBPixels(x, y + yp, w, 1, filtered, 0, w); + } + } + } + + /** + * This function delivers a rectangle of pixels where any + * pixel(m,n) is stored in the array as an int at + * index (n * scansize + m + offset). + * + * @param x the x coordinate of the rectangle + * @param y the y coordinate of the rectangle + * @param w the width of the rectangle + * @param h the height of the rectangle + * @param model the ColorModel used to translate the pixels + * @param pixels the array of pixel values + * @param offset the index of the first pixels in the pixels + * array + * @param scansize the width to use in extracting pixels from the + * pixels array + */ + public void setPixels(int x, int y, int w, int h, ColorModel model, + int[] pixels, int offset, int scansize) + { + if (model == origmodel) + { + consumer.setPixels(x, y, w, h, newmodel, pixels, offset, scansize); + } + else + { + int[] filtered = new int[w]; + int index = offset; + for (int yp = 0; yp < h; yp++) + { + for (int xp = 0; xp < w; xp++) + { + filtered[xp] = model.getRGB((pixels[index] & 0xff)); + index++; + } + index += scansize - w; + filterRGBPixels(x, y + yp, w, 1, filtered, 0, w); + } + } + } + + /** + * Filters a single pixel from the default ColorModel. + * + * @param x x-coordinate + * @param y y-coordinate + * @param rgb color + */ + public abstract int filterRGB(int x, int y, int rgb); +} diff --git a/libjava/classpath/java/awt/image/Raster.java b/libjava/classpath/java/awt/image/Raster.java index 160f8be8b51..d63e156f6ae 100644 --- a/libjava/classpath/java/awt/image/Raster.java +++ b/libjava/classpath/java/awt/image/Raster.java @@ -511,9 +511,10 @@ public class Raster int height, int childMinX, int childMinY, int[] bandList) { - /* FIXME: Throw RasterFormatException if child bounds extends - beyond the bounds of this raster. */ - + if (parentX < minX || parentX + width > minX + this.width + || parentY < minY || parentY + height > minY + this.height) + throw new RasterFormatException("Child raster extends beyond parent"); + SampleModel sm = (bandList == null) ? sampleModel : sampleModel.createSubsetSampleModel(bandList); diff --git a/libjava/classpath/java/awt/image/RenderedImage.java b/libjava/classpath/java/awt/image/RenderedImage.java index b35f8602129..067e9b98e38 100644 --- a/libjava/classpath/java/awt/image/RenderedImage.java +++ b/libjava/classpath/java/awt/image/RenderedImage.java @@ -46,7 +46,7 @@ import java.util.Vector; */ public interface RenderedImage { - Vector getSources(); + Vector getSources(); Object getProperty(String name); String[] getPropertyNames(); ColorModel getColorModel(); diff --git a/libjava/classpath/java/awt/image/ReplicateScaleFilter.java b/libjava/classpath/java/awt/image/ReplicateScaleFilter.java index 6d5099dead2..5ba03f182f6 100644 --- a/libjava/classpath/java/awt/image/ReplicateScaleFilter.java +++ b/libjava/classpath/java/awt/image/ReplicateScaleFilter.java @@ -46,6 +46,7 @@ import java.util.Hashtable; * exact method is not defined by Sun but some sort of fast Box filter should * probably be correct. *
    + * Currently this filter does nothing and needs to be implemented. * * @author C. Brian Jones (cbj@gnu.org) */ @@ -116,11 +117,11 @@ public class ReplicateScaleFilter extends ImageFilter } else if (destWidth < 0) { - destWidth = (int) (width * ((double) destHeight / srcHeight)); + destWidth = width * destHeight / srcHeight; } else if (destHeight < 0) { - destHeight = (int) (height * ((double) destWidth / srcWidth)); + destHeight = height * destWidth / srcWidth; } if (consumer != null) @@ -133,11 +134,12 @@ public class ReplicateScaleFilter extends ImageFilter * * @param props the list of properties associated with this image */ - public void setProperties(Hashtable props) + public void setProperties(Hashtable props) { - props.put("filters", "ReplicateScaleFilter"); - if (consumer != null) - consumer.setProperties(props); + Hashtable prop2 = (Hashtable) props; + prop2.put("filters", "ReplicateScaleFilter"); + if (consumer != null) + consumer.setProperties(prop2); } /** @@ -157,19 +159,35 @@ public class ReplicateScaleFilter extends ImageFilter public void setPixels(int x, int y, int w, int h, ColorModel model, byte[] pixels, int offset, int scansize) { - double rx = ((double) srcWidth) / destWidth; - double ry = ((double) srcHeight) / destHeight; - - int destScansize = (int) Math.round(scansize / rx); - - byte[] destPixels = replicatePixels(x, y, w, h, - model, pixels, offset, scansize, - rx, ry, destScansize); - - if (consumer != null) - consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), - (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), - model, destPixels, 0, destScansize); + if (srcrows == null || srccols == null) + setupSources(); + int dx1 = (2 * x * destWidth + srcWidth - 1) / (2 * destWidth); + int dy1 = (2 * y * destHeight + srcHeight - 1) / (2 * destHeight); + byte[] pix; + if (outpixbuf != null && outpixbuf instanceof byte[]) + { + pix = (byte[]) outpixbuf; + } + else + { + pix = new byte[destWidth]; + outpixbuf = pix; + } + int sy, sx; + for (int yy = dy1; (sy = srcrows[yy]) < y + h; yy++) + { + int offs = offset + scansize * (sy - y); + int xx; + for (xx = dx1; (sx = srccols[xx]) < x + w; xx++) + { + pix[xx] = pixels[offs + sx - x]; + } + if (xx > dx1) + { + consumer.setPixels(dx1, yy, xx - dx1, 1, model, pix, dx1, + destWidth); + } + } } /** @@ -189,59 +207,52 @@ public class ReplicateScaleFilter extends ImageFilter public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int offset, int scansize) { - double rx = ((double) srcWidth) / destWidth; - double ry = ((double) srcHeight) / destHeight; - - int destScansize = (int) Math.round(scansize / rx); - - int[] destPixels = replicatePixels(x, y, w, h, - model, pixels, offset, scansize, - rx, ry, destScansize); - - if (consumer != null) - consumer.setPixels((int) Math.floor(x/rx), (int) Math.floor(y/ry), - (int) Math.ceil(w/rx), (int) Math.ceil(h/ry), - model, destPixels, 0, destScansize); - } - - private byte[] replicatePixels(int srcx, int srcy, int srcw, int srch, - ColorModel model, byte[] srcPixels, - int srcOffset, int srcScansize, - double rx, double ry, int destScansize) - { - byte[] destPixels = - new byte[(int) Math.ceil(srcw/rx) * (int) Math.ceil(srch/ry)]; - - int a, b; - for (int i = 0; i < destPixels.length; i++) - { - a = (int) ((int) ( ((double) i) / destScansize) * ry) * srcScansize; - b = (int) ((i % destScansize) * rx); - if ((a + b + srcOffset) < srcPixels.length) - destPixels[i] = srcPixels[a + b + srcOffset]; - } - - return destPixels; + if (srcrows == null || srccols == null) + setupSources(); + int dx1 = (2 * x * destWidth + srcWidth - 1) / (2 * destWidth); + int dy1 = (2 * y * destHeight + srcHeight - 1) / (2 * destHeight); + int[] pix; + if (outpixbuf != null && outpixbuf instanceof int[]) + { + pix = (int[]) outpixbuf; + } + else + { + pix = new int[destWidth]; + outpixbuf = pix; + } + int sy, sx; + for (int yy = dy1; (sy = srcrows[yy]) < y + h; yy++) + { + int offs = offset + scansize * (sy - y); + int xx; + for (xx = dx1; (sx = srccols[xx]) < x + w; xx++) + { + pix[xx] = pixels[offs + sx - x]; + } + if (xx > dx1) + { + consumer.setPixels(dx1, yy, xx - dx1, 1, model, pix, dx1, + destWidth); + } + } } - private int[] replicatePixels(int srcx, int srcy, int srcw, int srch, - ColorModel model, int[] srcPixels, - int srcOffset, int srcScansize, - double rx, double ry, int destScansize) - { - int[] destPixels = - new int[(int) Math.ceil(srcw/rx) * (int) Math.ceil(srch/ry)]; - - int a, b; - for (int i = 0; i < destPixels.length; i++) - { - a = (int) ((int) ( ((double) i) / destScansize) * ry) * srcScansize; - b = (int) ((i % destScansize) * rx); - if ((a + b + srcOffset) < srcPixels.length) - destPixels[i] = srcPixels[a + b + srcOffset]; - } - - return destPixels; - } + /** + * Sets up the srcrows and srccols arrays. + */ + private void setupSources() + { + srcrows = new int[destHeight + 1]; + for (int y = 0; y <= destHeight; y++) + { + srcrows[y] = (2 * y * srcHeight + srcHeight) / (2 * destHeight); + } + srccols = new int[destWidth + 1]; + for (int x = 0; x <= destWidth; x++) + { + srccols[x] = (2 * x * srcWidth + srcWidth) / (2 * destWidth); + } + } } diff --git a/libjava/classpath/java/awt/image/RescaleOp.java b/libjava/classpath/java/awt/image/RescaleOp.java index d5b29693caf..d56b12cb952 100644 --- a/libjava/classpath/java/awt/image/RescaleOp.java +++ b/libjava/classpath/java/awt/image/RescaleOp.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 Free Software Foundation +/* Copyright (C) 2004, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -43,7 +43,23 @@ import java.awt.geom.Rectangle2D; import java.util.Arrays; /** + * RescaleOp is a filter that changes each pixel by a scaling factor and offset. + * + * For filtering Rasters, either one scaling factor and offset can be specified, + * which will be applied to all bands; or a scaling factor and offset can be + * specified for each band. + * + * For BufferedImages, the scaling may apply to both color and alpha components. + * If only one scaling factor is provided, or if the number of factors provided + * equals the number of color components, the scaling is performed on all color + * components. Otherwise, the scaling is performed on all components including + * alpha. Alpha premultiplication is ignored. + * + * After filtering, if color conversion is necessary, the conversion happens, + * taking alpha premultiplication into account. + * * @author Jerry Quinn (jlquinn@optonline.net) + * @author Francis Kung (fkung@redhat.com) */ public class RescaleOp implements BufferedImageOp, RasterOp { @@ -51,15 +67,43 @@ public class RescaleOp implements BufferedImageOp, RasterOp private float[] offsets; private RenderingHints hints = null; + /** + * Create a new RescaleOp object using the given scale factors and offsets. + * + * The length of the arrays must be equal to the number of bands (or number of + * data or color components) of the raster/image that this Op will be used on, + * otherwise an IllegalArgumentException will be thrown when calling the + * filter method. + * + * @param scaleFactors an array of scale factors. + * @param offsets an array of offsets. + * @param hints any rendering hints to use (can be null). + * @throws NullPointerException if the scaleFactors or offsets array is null. + */ public RescaleOp(float[] scaleFactors, float[] offsets, RenderingHints hints) { - this.scale = scaleFactors; - this.offsets = offsets; + int length = Math.min(scaleFactors.length, offsets.length); + + scale = new float[length]; + System.arraycopy(scaleFactors, 0, this.scale, 0, length); + + this.offsets = new float[length]; + System.arraycopy(offsets, 0, this.offsets, 0, length); + this.hints = hints; } + /** + * Create a new RescaleOp object using the given scale factor and offset. + * + * The same scale factor and offset will be used on all bands/components. + * + * @param scaleFactor the scale factor to use. + * @param offset the offset to use. + * @param hints any rendering hints to use (can be null). + */ public RescaleOp(float scaleFactor, float offset, RenderingHints hints) @@ -69,22 +113,47 @@ public class RescaleOp implements BufferedImageOp, RasterOp this.hints = hints; } + /** + * Returns the scaling factors. This method accepts an optional array, which + * will be used to store the factors if not null (this avoids allocating a + * new array). If this array is too small to hold all the scaling factors, + * the array will be filled and the remaining factors discarded. + * + * @param scaleFactors array to store the scaling factors in (can be null). + * @return an array of scaling factors. + */ public final float[] getScaleFactors(float[] scaleFactors) { if (scaleFactors == null) scaleFactors = new float[scale.length]; - System.arraycopy(scale, 0, scaleFactors, 0, scale.length); + System.arraycopy(scale, 0, scaleFactors, 0, Math.min(scale.length, + scaleFactors.length)); return scaleFactors; } + /** + * Returns the offsets. This method accepts an optional array, which + * will be used to store the offsets if not null (this avoids allocating a + * new array). If this array is too small to hold all the offsets, the array + * will be filled and the remaining factors discarded. + * + * @param offsets array to store the offsets in (can be null). + * @return an array of offsets. + */ public final float[] getOffsets(float[] offsets) { if (offsets == null) offsets = new float[this.offsets.length]; - System.arraycopy(this.offsets, 0, offsets, 0, this.offsets.length); + System.arraycopy(this.offsets, 0, offsets, 0, Math.min(this.offsets.length, + offsets.length)); return offsets; } + /** + * Returns the number of scaling factors / offsets. + * + * @return the number of scaling factors / offsets. + */ public final int getNumFactors() { return scale.length; @@ -98,36 +167,74 @@ public class RescaleOp implements BufferedImageOp, RasterOp return hints; } - /* (non-Javadoc) - * @see java.awt.image.BufferedImageOp#filter(java.awt.image.BufferedImage, java.awt.image.BufferedImage) + /** + * Converts the source image using the scale factors and offsets specified in + * the constructor. The resulting image is stored in the destination image if + * one is provided; otherwise a new BufferedImage is created and returned. + * + * The source image cannot use an IndexColorModel, and the destination image + * (if one is provided) must have the same size. + * + * If the final value of a sample is beyond the range of the color model, it + * will be clipped to the appropriate maximum / minimum. + * + * @param src The source image. + * @param dst The destination image. + * @throws IllegalArgumentException if the rasters and/or color spaces are + * incompatible. + * @return The rescaled image. */ public final BufferedImage filter(BufferedImage src, BufferedImage dst) { - // TODO Make sure premultiplied alpha is handled correctly. - // TODO See that color conversion is handled. - // TODO figure out how to use rendering hints. - if (scale.length != offsets.length) - throw new IllegalArgumentException(); + // Initial checks + if (scale.length != 1 + && scale.length != src.getColorModel().getNumComponents() + && (scale.length != src.getColorModel().getNumColorComponents())) + throw new IllegalArgumentException("Source image has wrong number of " + + "bands for these scaling factors."); - ColorModel scm = src.getColorModel(); - if (dst == null) dst = createCompatibleDestImage(src, null); + if (dst == null) + dst = createCompatibleDestImage(src, null); + else if (src.getHeight() != dst.getHeight() + || src.getWidth() != dst.getWidth()) + throw new IllegalArgumentException("Source and destination images are " + + "different sizes."); - WritableRaster wsrc = src.getRaster(); - WritableRaster wdst = dst.getRaster(); - - // Share constant across colors except alpha - if (scale.length == 1 || scale.length == scm.getNumColorComponents()) + // Prepare for possible colorspace conversion + BufferedImage dst2 = dst; + if (dst.getColorModel().getColorSpace().getType() != src.getColorModel().getColorSpace().getType()) + dst2 = createCompatibleDestImage(src, src.getColorModel()); + + // Figure out how many bands to scale + int numBands = scale.length; + if (scale.length == 1) + numBands = src.getColorModel().getNumColorComponents(); + boolean[] bands = new boolean[numBands]; + // this assumes the alpha, if present, is the last band + Arrays.fill(bands, true); + + // Perform rescaling + filter(src.getRaster(), dst2.getRaster(), bands); + + // Copy alpha band if needed (ie if it exists and wasn't scaled) + // NOTE: This assumes the alpha component is the last band! + if (src.getColorModel().hasAlpha() + && numBands == src.getColorModel().getNumColorComponents()) { - // Construct a raster that doesn't include an alpha band. - int[] subbands = new int[scm.getNumColorComponents()]; - for (int i=0; i < subbands.length; i++) subbands[i] = i; - wsrc = - wsrc.createWritableChild(wsrc.minX, wsrc.minY, wsrc.width, wsrc.height, - wsrc.minX, wsrc.minY, subbands); + + dst2.getRaster().setSamples(0, 0, src.getWidth(), src.getHeight(), + numBands, + src.getRaster().getSamples(0, 0, + src.getWidth(), + src.getHeight(), + numBands, + (int[]) null)); } - // else all color bands - filter(wsrc, wdst); + // Perform colorspace conversion if needed + if (dst != dst2) + new ColorConvertOp(hints).filter(dst2, dst); + return dst; } @@ -136,50 +243,106 @@ public class RescaleOp implements BufferedImageOp, RasterOp */ public final WritableRaster filter(Raster src, WritableRaster dest) { - if (dest == null) dest = src.createCompatibleWritableRaster(); - // Required sanity checks - if (src.numBands != dest.numBands || scale.length != offsets.length) - throw new IllegalArgumentException(); if (scale.length != 1 && scale.length != src.numBands) - throw new IllegalArgumentException(); + throw new IllegalArgumentException("Number of rasters is incompatible " + + "with the number of scaling " + + "factors provided."); - // Create scaling arrays if needed - float[] lscale = scale; - float[] loff = offsets; - if (scale.length == 1) - { - lscale = new float[src.numBands]; - Arrays.fill(lscale, scale[0]); - loff = new float[src.numBands]; - Arrays.fill(loff, offsets[0]); - } + if (dest == null) + dest = src.createCompatibleWritableRaster(); + else if (src.getHeight() != dest.getHeight() + || src.getWidth() != dest.getWidth()) + throw new IllegalArgumentException("Source and destination rasters are " + + "different sizes."); + else if (src.numBands != dest.numBands) + throw new IllegalArgumentException("Source and destination rasters " + + "are incompatible."); + + // Filter all bands + boolean[] bands = new boolean[src.getNumBands()]; + Arrays.fill(bands, true); + return filter(src, dest, bands); + } + + /** + * Perform raster-based filtering on a selected number of bands. + * + * The length of the bands array should equal the number of bands; a true + * element indicates filtering should happen on the corresponding band, while + * a false element will skip the band. + * + * The rasters are assumed to be compatible and non-null. + * + * @param src the source raster. + * @param dest the destination raster. + * @param bands an array indicating which bands to filter. + * @throws NullPointerException if any parameter is null. + * @throws ArrayIndexOutOfBoundsException if the bands array is too small. + * @return the destination raster. + */ + private WritableRaster filter(Raster src, WritableRaster dest, boolean[] bands) + { + int[] values = new int[src.getHeight() * src.getWidth()]; + float scaleFactor, offset; + + // Find max sample value, to be used for clipping later + int[] maxValue = src.getSampleModel().getSampleSize(); + for (int i = 0; i < maxValue.length; i++) + maxValue[i] = (int)Math.pow(2, maxValue[i]) - 1; + + // TODO: can this be optimized further? + // Filter all samples of all requested bands + for (int band = 0; band < bands.length; band++) + if (bands[band]) + { + values = src.getSamples(src.getMinX(), src.getMinY(), src.getWidth(), + src.getHeight(), band, values); - // TODO The efficiency here can be improved for various data storage - // patterns, aka SampleModels. - float[] pixel = new float[src.numBands]; - for (int y = src.minY; y < src.height + src.minY; y++) - for (int x = src.minX; x < src.width + src.minX; x++) - { - src.getPixel(x, y, pixel); - for (int b = 0; b < src.numBands; b++) - pixel[b] = pixel[b] * lscale[b] + loff[b]; - dest.setPixel(x, y, pixel); - } + if (scale.length == 1) + { + scaleFactor = scale[0]; + offset = offsets[0]; + } + else + { + scaleFactor = scale[band]; + offset = offsets[band]; + } + + for (int i = 0; i < values.length; i++) + { + values[i] = (int) (values[i] * scaleFactor + offset); + + // Clip if needed + if (values[i] < 0) + values[i] = 0; + if (values[i] > maxValue[band]) + values[i] = maxValue[band]; + } + + dest.setSamples(dest.getMinX(), dest.getMinY(), dest.getWidth(), + dest.getHeight(), band, values); + } + return dest; } - /* (non-Javadoc) - * @see java.awt.image.BufferedImageOp#createCompatibleDestImage(java.awt.image.BufferedImage, java.awt.image.ColorModel) + /* + * (non-Javadoc) + * + * @see java.awt.image.BufferedImageOp#createCompatibleDestImage(java.awt.image.BufferedImage, + * java.awt.image.ColorModel) */ public BufferedImage createCompatibleDestImage(BufferedImage src, ColorModel dstCM) { - if (dstCM == null) dstCM = src.getColorModel(); - WritableRaster wr = src.getRaster().createCompatibleWritableRaster(); - BufferedImage image - = new BufferedImage(dstCM, wr, src.isPremultiplied, null); - return image; + if (dstCM == null) + return new BufferedImage(src.getWidth(), src.getHeight(), src.getType()); + + return new BufferedImage(dstCM, + src.getRaster().createCompatibleWritableRaster(), + src.isAlphaPremultiplied(), null); } /* (non-Javadoc) @@ -209,9 +372,13 @@ public class RescaleOp implements BufferedImageOp, RasterOp /* (non-Javadoc) * @see java.awt.image.BufferedImageOp#getPoint2D(java.awt.geom.Point2D, java.awt.geom.Point2D) */ - public final Point2D getPoint2D(Point2D src, Point2D dst) { - if (dst == null) dst = (Point2D) src.clone(); - else dst.setLocation(src); + public final Point2D getPoint2D(Point2D src, Point2D dst) + { + if (dst == null) + dst = (Point2D) src.clone(); + else + dst.setLocation(src); + return dst; } diff --git a/libjava/classpath/java/awt/image/SampleModel.java b/libjava/classpath/java/awt/image/SampleModel.java index cb352bb4d85..506e78a9b87 100644 --- a/libjava/classpath/java/awt/image/SampleModel.java +++ b/libjava/classpath/java/awt/image/SampleModel.java @@ -246,9 +246,7 @@ public abstract class SampleModel public void setDataElements(int x, int y, int w, int h, Object obj, DataBuffer data) { - int size = w * h; int numDataElements = getNumDataElements(); - int dataSize = numDataElements * size; Object pixelData; switch (getTransferType()) @@ -257,25 +255,34 @@ public abstract class SampleModel pixelData = new byte[numDataElements]; break; case DataBuffer.TYPE_USHORT: + case DataBuffer.TYPE_SHORT: pixelData = new short[numDataElements]; break; case DataBuffer.TYPE_INT: pixelData = new int[numDataElements]; break; + case DataBuffer.TYPE_FLOAT: + pixelData = new float[numDataElements]; + break; + case DataBuffer.TYPE_DOUBLE: + pixelData = new double[numDataElements]; + break; default: - // Seems like the only sensible thing to do. - throw new ClassCastException(); + // The RI silently igores invalid types. + pixelData = null; } - int inOffset = 0; - for (int yy = y; yy < (y + h); yy++) + int inOffset = 0; + if (pixelData != null) { - for (int xx = x; xx < (x + w); xx++) + for (int yy=y; yy<(y+h); yy++) { - System.arraycopy(obj, inOffset, pixelData, 0, - numDataElements); - setDataElements(xx, yy, pixelData, data); - inOffset += numDataElements; + for (int xx=x; xx<(x+w); xx++) + { + System.arraycopy(obj, inOffset, pixelData, 0, numDataElements); + setDataElements(xx, yy, pixelData, data); + inOffset += numDataElements; + } } } } diff --git a/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java b/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java index a37fc0bba3f..9ed948c54f3 100644 --- a/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java +++ b/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java @@ -412,110 +412,31 @@ public class SinglePixelPackedSampleModel extends SampleModel return (samples & bitMasks[b]) >>> bitOffsets[b]; } - /** - * This method implements a more efficient way to set data elements than the - * default implementation of the super class. It sets the data elements line - * by line instead of pixel by pixel. - * - * @param x The x-coordinate of the data elements in obj. - * @param y The y-coordinate of the data elements in obj. - * @param w The width of the data elements in obj. - * @param h The height of the data elements in obj. - * @param obj The primitive array containing the data elements to set. - * @param data The DataBuffer to store the data elements into. - * @see java.awt.image.SampleModel#setDataElements(int, int, int, int, - * java.lang.Object, java.awt.image.DataBuffer) - */ - public void setDataElements(int x, int y, int w, int h, - Object obj, DataBuffer data) - { - - Object pixelData; - switch (getTransferType()) - { - case DataBuffer.TYPE_BYTE: - pixelData = ((DataBufferByte) data).getData(); - break; - case DataBuffer.TYPE_USHORT: - pixelData = ((DataBufferUShort) data).getData(); - break; - case DataBuffer.TYPE_INT: - pixelData = ((DataBufferInt) data).getData(); - break; - default: - // Seems like the only sensible thing to do. - throw new ClassCastException(); - } - - int inOffset = 0; - int dataOffset = scanlineStride*y + x + data.getOffset(); - for (int yy=y; yy<(y+h); yy++) - { - System.arraycopy(obj,inOffset,pixelData,dataOffset,w); - dataOffset += scanlineStride; - inOffset += w; - } - } - - public void setDataElements(int x, int y, Object obj, DataBuffer data) { - int offset = scanlineStride*y + x + data.getOffset(); int transferType = getTransferType(); - if (getTransferType() != data.getDataType()) - { - throw new IllegalArgumentException("transfer type ("+ - getTransferType()+"), "+ - "does not match data "+ - "buffer type (" + - data.getDataType() + - ")."); - } - - try - { - switch (transferType) - { - case DataBuffer.TYPE_BYTE: - { - DataBufferByte out = (DataBufferByte) data; - byte[] in = (byte[]) obj; - out.getData()[offset] = in[0]; - return; - } - case DataBuffer.TYPE_USHORT: - { - DataBufferUShort out = (DataBufferUShort) data; - short[] in = (short[]) obj; - out.getData()[offset] = in[0]; - return; - } - case DataBuffer.TYPE_INT: - { - DataBufferInt out = (DataBufferInt) data; - int[] in = (int[]) obj; - out.getData()[offset] = in[0]; - return; - } - // FIXME: Fill in the other possible types. - default: - throw new InternalError(); - } - } - catch (ArrayIndexOutOfBoundsException aioobe) - { - String msg = "While writing data elements" + - ", x="+x+", y="+y+ - ", width="+width+", height="+height+ - ", scanlineStride="+scanlineStride+ - ", offset="+offset+ - ", data.getSize()="+data.getSize()+ - ", data.getOffset()="+data.getOffset()+ - ": " + - aioobe; - throw new ArrayIndexOutOfBoundsException(msg); - } + switch (transferType) + { + case DataBuffer.TYPE_BYTE: + { + byte[] in = (byte[]) obj; + data.setElem(y * scanlineStride + x, ((int) in[0]) & 0xff); + break; + } + case DataBuffer.TYPE_USHORT: + { + short[] in = (short[]) obj; + data.setElem(y * scanlineStride + x, ((int) in[0]) & 0xffff); + break; + } + case DataBuffer.TYPE_INT: + { + int[] in = (int[]) obj; + data.setElem(y * scanlineStride + x, in[0]); + break; + } + } } /** diff --git a/libjava/classpath/java/awt/image/WritableRaster.java b/libjava/classpath/java/awt/image/WritableRaster.java index 473c6fe41f9..bf8db140c7f 100644 --- a/libjava/classpath/java/awt/image/WritableRaster.java +++ b/libjava/classpath/java/awt/image/WritableRaster.java @@ -136,8 +136,9 @@ public class WritableRaster extends Raster { // This mirrors the code from the super class - // FIXME: Throw RasterFormatException if child bounds extends - // beyond the bounds of this raster. + if (parentX < minX || parentX + w > minX + width + || parentY < minY || parentY + h > minY + height) + throw new RasterFormatException("Child raster extends beyond parent"); SampleModel sm = (bandList == null) ? sampleModel : @@ -149,6 +150,25 @@ public class WritableRaster extends Raster sampleModelTranslateY + childMinY - parentY), this); } + + public Raster createChild(int parentX, int parentY, int width, + int height, int childMinX, int childMinY, + int[] bandList) + { + if (parentX < minX || parentX + width > minX + this.width + || parentY < minY || parentY + height > minY + this.height) + throw new RasterFormatException("Child raster extends beyond parent"); + + SampleModel sm = (bandList == null) ? + sampleModel : + sampleModel.createSubsetSampleModel(bandList); + + return new WritableRaster(sm, dataBuffer, + new Rectangle(childMinX, childMinY, width, height), + new Point(sampleModelTranslateX + childMinX - parentX, + sampleModelTranslateY + childMinY - parentY), + this); + } public void setDataElements(int x, int y, Object inData) { diff --git a/libjava/classpath/java/awt/image/renderable/ParameterBlock.java b/libjava/classpath/java/awt/image/renderable/ParameterBlock.java index 879d3c4fb90..e484d6b8713 100644 --- a/libjava/classpath/java/awt/image/renderable/ParameterBlock.java +++ b/libjava/classpath/java/awt/image/renderable/ParameterBlock.java @@ -45,20 +45,20 @@ import java.util.Vector; public class ParameterBlock implements Cloneable, Serializable { private static final long serialVersionUID = -7577115551785240750L; - protected Vector sources; - protected Vector parameters; + protected Vector sources; + protected Vector parameters; public ParameterBlock() { - this(new Vector(), new Vector()); + this(new Vector(), new Vector()); } - public ParameterBlock(Vector sources) + public ParameterBlock(Vector sources) { - this(sources, new Vector()); + this(sources, new Vector()); } - public ParameterBlock(Vector sources, Vector parameters) + public ParameterBlock(Vector sources, Vector parameters) { this.sources = sources; this.parameters = parameters; @@ -80,9 +80,9 @@ public class ParameterBlock implements Cloneable, Serializable { ParameterBlock pb = (ParameterBlock) shallowClone(); if (sources != null) - pb.sources = (Vector) sources.clone(); + pb.sources = (Vector) sources.clone(); if (parameters != null) - pb.parameters = (Vector) parameters.clone(); + pb.parameters = (Vector) parameters.clone(); return pb; } @@ -119,12 +119,12 @@ public class ParameterBlock implements Cloneable, Serializable return sources.size(); } - public Vector getSources() + public Vector getSources() { return sources; } - public void setSources(Vector sources) + public void setSources(Vector sources) { this.sources = sources; } @@ -140,12 +140,12 @@ public class ParameterBlock implements Cloneable, Serializable return parameters.size(); } - public Vector getParameters() + public Vector getParameters() { return parameters; } - public void setParameters(Vector parameters) + public void setParameters(Vector parameters) { this.parameters = parameters; } diff --git a/libjava/classpath/java/awt/image/renderable/RenderableImage.java b/libjava/classpath/java/awt/image/renderable/RenderableImage.java index 45d2eb7ebf0..c2f6ad8b058 100644 --- a/libjava/classpath/java/awt/image/renderable/RenderableImage.java +++ b/libjava/classpath/java/awt/image/renderable/RenderableImage.java @@ -46,7 +46,7 @@ public interface RenderableImage { String HINTS_OBSERVED = "HINTS_OBSERVED"; - Vector getSources(); + Vector getSources(); Object getProperty(String name); String[] getPropertyNames(); boolean isDynamic(); diff --git a/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java b/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java index 5385a82a317..b9d0cd39e6e 100644 --- a/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java +++ b/libjava/classpath/java/awt/image/renderable/RenderableImageOp.java @@ -55,7 +55,7 @@ public class RenderableImageOp implements RenderableImage this.block = (ParameterBlock) block.clone(); } - public Vector getSources() + public Vector getSources() { if (block.sources == null) return null; diff --git a/libjava/classpath/java/beans/BeanDescriptor.java b/libjava/classpath/java/beans/BeanDescriptor.java index 21227b2fee0..b4bc6870d24 100644 --- a/libjava/classpath/java/beans/BeanDescriptor.java +++ b/libjava/classpath/java/beans/BeanDescriptor.java @@ -48,14 +48,14 @@ package java.beans; **/ public class BeanDescriptor extends FeatureDescriptor { - Class beanClass; - Class customizerClass; + Class beanClass; + Class customizerClass; /** Create a new BeanDescriptor with the given beanClass and ** no customizer class. ** @param beanClass the class of the Bean. **/ - public BeanDescriptor(Class beanClass) { + public BeanDescriptor(Class beanClass) { this(beanClass,null); } @@ -64,7 +64,7 @@ public class BeanDescriptor extends FeatureDescriptor { ** @param beanClass the class of the Bean. ** @param customizerClass the class of the Bean's Customizer. **/ - public BeanDescriptor(Class beanClass, Class customizerClass) { + public BeanDescriptor(Class beanClass, Class customizerClass) { this.beanClass = beanClass; this.customizerClass = customizerClass; @@ -78,12 +78,12 @@ public class BeanDescriptor extends FeatureDescriptor { } /** Get the Bean's class. **/ - public Class getBeanClass() { + public Class getBeanClass() { return beanClass; } /** Get the Bean's customizer's class. **/ - public Class getCustomizerClass() { + public Class getCustomizerClass() { return customizerClass; } } diff --git a/libjava/classpath/java/beans/Beans.java b/libjava/classpath/java/beans/Beans.java index ffcb83fc1f3..b3b0a422edd 100644 --- a/libjava/classpath/java/beans/Beans.java +++ b/libjava/classpath/java/beans/Beans.java @@ -295,7 +295,7 @@ public class Beans * @return the Bean as a new view, or if the operation * could not be performed, the Bean itself. */ - public static Object getInstanceOf(Object bean, Class newClass) + public static Object getInstanceOf(Object bean, Class newClass) { return bean; } @@ -314,7 +314,7 @@ public class Beans * @return whether the Bean can be cast to the class type * in question. */ - public static boolean isInstanceOf(Object bean, Class newBeanClass) + public static boolean isInstanceOf(Object bean, Class newBeanClass) { return newBeanClass.isInstance(bean); } diff --git a/libjava/classpath/java/beans/DefaultPersistenceDelegate.java b/libjava/classpath/java/beans/DefaultPersistenceDelegate.java index ca1041fefc9..08f6174bb6e 100644 --- a/libjava/classpath/java/beans/DefaultPersistenceDelegate.java +++ b/libjava/classpath/java/beans/DefaultPersistenceDelegate.java @@ -154,8 +154,8 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate return new Expression(oldInstance, oldInstance.getClass(), "new", args); } - protected void initialize(Class type, Object oldInstance, Object newInstance, - Encoder out) + protected void initialize(Class type, Object oldInstance, + Object newInstance, Encoder out) { // Calling the supertype's implementation of initialize makes it // possible that descendants of classes like AbstractHashMap diff --git a/libjava/classpath/java/beans/DesignMode.java b/libjava/classpath/java/beans/DesignMode.java index 39805d50c18..9897f022ea4 100644 --- a/libjava/classpath/java/beans/DesignMode.java +++ b/libjava/classpath/java/beans/DesignMode.java @@ -1,5 +1,5 @@ /* java.beans.DesignMode - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,7 +39,8 @@ exception statement from your version. */ package java.beans; /** - * BeanContextChild implementors implement this to get information about whether they are in a design time or runtime environment. + * BeanContextChild implementors implement this to get information + * about whether they are in a design time or runtime environment. * The reason this is restricted to BeanContextChildren is that * only things in the BeanContext hierarchy are given this * information in the first place. @@ -48,46 +49,47 @@ package java.beans; * @since JDK1.2 * @see java.beans.beancontext.BeanContextChild */ +public interface DesignMode +{ -public interface DesignMode { - /** - * Use this name when firing PropertyChangeEvents from your Bean. - * @fixme Check whether PROPERTYNAME is set to same value as Sun. - */ - String PROPERTYNAME = "designTime"; + /** + * Use this name when firing PropertyChangeEvents from your Bean. + */ + String PROPERTYNAME = "designTime"; - /** - * The environment will call this method on your - * BeanContextChild when it is registered in a parent - * BeanContext or when behavior needs to switch from - * design time to runtime behavior (or vice versa). - *

    - * - * BeanContexts are required to fire - * PropertyChangeEvents when properties change. - * designTime is a property, and therefore when you - * implement setDesignTime(), you need to fire a - * PropertyChangeEvent with the old value, the new - * value and using PROPERTYNAME as the property name. - * - * @param designTime the new value of design time, - * true if it is design time, - * false if it is runtime. - * - * @fixme I'm frankly not really sure whether it's the case that - * the BeanContext can change the status of the Bean from - * design time to runtime. But it appears that it may be so. - * - * @see java.util.PropertyChangeEvent - * @see java.beans.beancontext.BeanContext - * @see #PROPERTYNAME - */ - void setDesignTime(boolean designTime); + /** + * The environment will call this method on your + * BeanContextChild when it is registered in a parent + * BeanContext or when behavior needs to switch from + * design time to runtime behavior (or vice versa). + *

    + * + * BeanContexts are required to fire + * PropertyChangeEvents when properties change. + * designTime is a property, and therefore when you + * implement setDesignTime(), you need to fire a + * PropertyChangeEvent with the old value, the new + * value and using PROPERTYNAME as the property name. + * + * @param designTime the new value of design time, + * true if it is design time, + * false if it is runtime. + * + * @fixme I'm frankly not really sure whether it's the case that + * the BeanContext can change the status of the Bean from + * design time to runtime. But it appears that it may be so. + * + * @see java.beans.PropertyChangeEvent + * @see java.beans.beancontext.BeanContext + * @see #PROPERTYNAME + */ + void setDesignTime(boolean designTime); + + /** + * This method should tell whether it is design time or runtime. + * @return true if design time, false if + * runtime. + */ + boolean isDesignTime(); - /** - * This method should tell whether it is design time or runtime. - * @return true if design time, false if - * runtime. - */ - boolean isDesignTime(); } diff --git a/libjava/classpath/java/beans/Encoder.java b/libjava/classpath/java/beans/Encoder.java index b9d135831a8..cde1735f4fd 100644 --- a/libjava/classpath/java/beans/Encoder.java +++ b/libjava/classpath/java/beans/Encoder.java @@ -181,7 +181,7 @@ public class Encoder return exceptionListener; } - public PersistenceDelegate getPersistenceDelegate(Class type) + public PersistenceDelegate getPersistenceDelegate(Class type) { // This is not specified but the JDK behaves like this. if (type == null) @@ -215,7 +215,8 @@ public class Encoder * access is thread safe. *

    */ - public void setPersistenceDelegate(Class type, PersistenceDelegate delegate) + public void setPersistenceDelegate(Class type, + PersistenceDelegate delegate) { // If the argument is null this will cause a NullPointerException // which is expected behavior. diff --git a/libjava/classpath/java/beans/EventHandler.java b/libjava/classpath/java/beans/EventHandler.java index 9c85893e0f3..318b274898a 100644 --- a/libjava/classpath/java/beans/EventHandler.java +++ b/libjava/classpath/java/beans/EventHandler.java @@ -463,7 +463,8 @@ public class EventHandler implements InvocationHandler * @param action Target property or method to invoke. * @return A constructed proxy object. */ - public static Object create(Class listenerInterface, Object target, String action) + public static T create(Class listenerInterface, Object target, + String action) { return create(listenerInterface, target, action, null, null); } @@ -552,8 +553,8 @@ public class EventHandler implements InvocationHandler * @param eventPropertyName Name of property to extract from event. * @return A constructed proxy object. */ - public static Object create(Class listenerInterface, Object target, - String action, String eventPropertyName) + public static T create(Class listenerInterface, Object target, + String action, String eventPropertyName) { return create(listenerInterface, target, action, eventPropertyName, null); } @@ -587,9 +588,9 @@ public class EventHandler implements InvocationHandler * @param listenerMethodName Listener method to implement. * @return A constructed proxy object. */ - public static Object create(Class listenerInterface, Object target, - String action, String eventPropertyName, - String listenerMethodName) + public static T create(Class listenerInterface, Object target, + String action, String eventPropertyName, + String listenerMethodName) { // Create EventHandler instance EventHandler eh = new EventHandler(target, action, eventPropertyName, @@ -597,10 +598,9 @@ public class EventHandler implements InvocationHandler // Create proxy object passing in the event handler Object proxy = Proxy.newProxyInstance(listenerInterface.getClassLoader(), - new Class[] {listenerInterface}, + new Class[] {listenerInterface}, eh); - return proxy; + return (T) proxy; } - } diff --git a/libjava/classpath/java/beans/EventSetDescriptor.java b/libjava/classpath/java/beans/EventSetDescriptor.java index 381a453031e..69c07423fa0 100644 --- a/libjava/classpath/java/beans/EventSetDescriptor.java +++ b/libjava/classpath/java/beans/EventSetDescriptor.java @@ -164,8 +164,8 @@ public class EventSetDescriptor extends FeatureDescriptor * if listenerType is not an EventListener, or if methods are not * found or are invalid. */ - public EventSetDescriptor(Class eventSourceClass, String eventSetName, - Class listenerType, String listenerMethodName) + public EventSetDescriptor(Class eventSourceClass, String eventSetName, + Class listenerType, String listenerMethodName) throws IntrospectionException { setName(eventSetName); @@ -225,8 +225,8 @@ public class EventSetDescriptor extends FeatureDescriptor * if listenerType is not an EventListener or if methods are not * found or are invalid. */ - public EventSetDescriptor(Class eventSourceClass, String eventSetName, - Class listenerType, String[] listenerMethodNames, + public EventSetDescriptor(Class eventSourceClass, String eventSetName, + Class listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName) throws IntrospectionException @@ -287,8 +287,8 @@ public class EventSetDescriptor extends FeatureDescriptor * found or are invalid. * @since 1.4 */ - public EventSetDescriptor(Class eventSourceClass, String eventSetName, - Class listenerType, String[] listenerMethodNames, + public EventSetDescriptor(Class eventSourceClass, String eventSetName, + Class listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName, String getListenerMethodName) @@ -357,7 +357,7 @@ public class EventSetDescriptor extends FeatureDescriptor * methods are invalid. * @since 1.4 */ - public EventSetDescriptor(String eventSetName, Class listenerType, + public EventSetDescriptor(String eventSetName, Class listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod, Method getListenerMethod) @@ -402,7 +402,7 @@ public class EventSetDescriptor extends FeatureDescriptor * if the listenerType is not an EventListener, or any of the * methods are invalid. */ - public EventSetDescriptor(String eventSetName, Class listenerType, + public EventSetDescriptor(String eventSetName, Class listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod) throws IntrospectionException @@ -449,7 +449,7 @@ public class EventSetDescriptor extends FeatureDescriptor * if the listenerType is not an EventListener, or any of the * methods are invalid. */ - public EventSetDescriptor(String eventSetName, Class listenerType, + public EventSetDescriptor(String eventSetName, Class listenerType, MethodDescriptor[] listenerMethodDescriptors, Method addListenerMethod, Method removeListenerMethod) @@ -484,7 +484,7 @@ public class EventSetDescriptor extends FeatureDescriptor /** Returns the class that contains the event firing methods. */ - public Class getListenerType() + public Class getListenerType() { return listenerType; } diff --git a/libjava/classpath/java/beans/FeatureDescriptor.java b/libjava/classpath/java/beans/FeatureDescriptor.java index aeb40949099..050885158fa 100644 --- a/libjava/classpath/java/beans/FeatureDescriptor.java +++ b/libjava/classpath/java/beans/FeatureDescriptor.java @@ -68,14 +68,14 @@ public class FeatureDescriptor boolean hidden; boolean preferred; - Hashtable valueHash; + Hashtable valueHash; /** * Instantiate this FeatureDescriptor with appropriate default values. */ public FeatureDescriptor() { - valueHash = new Hashtable(); + valueHash = new Hashtable(); } /** @@ -225,7 +225,7 @@ public class FeatureDescriptor * @return an Enumerator over all the programmatic key names associated * with this feature. */ - public Enumeration attributeNames() + public Enumeration attributeNames() { return valueHash.keys(); } diff --git a/libjava/classpath/java/beans/IndexedPropertyDescriptor.java b/libjava/classpath/java/beans/IndexedPropertyDescriptor.java index 0ba2ed4f493..61c3f228da0 100644 --- a/libjava/classpath/java/beans/IndexedPropertyDescriptor.java +++ b/libjava/classpath/java/beans/IndexedPropertyDescriptor.java @@ -76,7 +76,7 @@ import java.lang.reflect.Method; */ public class IndexedPropertyDescriptor extends PropertyDescriptor { - private Class indexedPropertyType; + private Class indexedPropertyType; private Method setIndex; private Method getIndex; @@ -112,7 +112,7 @@ public class IndexedPropertyDescriptor extends PropertyDescriptor * @exception IntrospectionException if the methods are not found or * invalid. */ - public IndexedPropertyDescriptor(String name, Class beanClass) + public IndexedPropertyDescriptor(String name, Class beanClass) throws IntrospectionException { super(name); @@ -161,7 +161,7 @@ public class IndexedPropertyDescriptor extends PropertyDescriptor * * @exception IntrospectionException if the methods are not found or invalid. */ - public IndexedPropertyDescriptor(String name, Class beanClass, + public IndexedPropertyDescriptor(String name, Class beanClass, String getMethodName, String setMethodName, String getIndexName, String setIndexName) throws IntrospectionException @@ -272,7 +272,7 @@ public class IndexedPropertyDescriptor extends PropertyDescriptor : Array.newInstance(this.indexedPropertyType,0).getClass()); } - public Class getIndexedPropertyType() + public Class getIndexedPropertyType() { return indexedPropertyType; } diff --git a/libjava/classpath/java/beans/Introspector.java b/libjava/classpath/java/beans/Introspector.java index 23c3cde5e3d..28df87f677f 100644 --- a/libjava/classpath/java/beans/Introspector.java +++ b/libjava/classpath/java/beans/Introspector.java @@ -182,7 +182,8 @@ public class Introspector { public static final int IGNORE_ALL_BEANINFO = 3; static String[] beanInfoSearchPath = {"gnu.java.beans.info"}; - static Hashtable beanInfoCache = new Hashtable(); + static Hashtable,BeanInfo> beanInfoCache = + new Hashtable,BeanInfo>(); private Introspector() {} @@ -195,13 +196,13 @@ public class Introspector { * @param beanClass the class to get BeanInfo about. * @return the BeanInfo object representing the class. */ - public static BeanInfo getBeanInfo(Class beanClass) + public static BeanInfo getBeanInfo(Class beanClass) throws IntrospectionException { BeanInfo cachedInfo; synchronized(beanClass) { - cachedInfo = (BeanInfo)beanInfoCache.get(beanClass); + cachedInfo = beanInfoCache.get(beanClass); if(cachedInfo != null) { return cachedInfo; @@ -245,7 +246,7 @@ public class Introspector { * @throws IntrospectionException If something goes wrong while retrieving * the bean data. */ - public static BeanInfo getBeanInfo(Class beanClass, int flag) + public static BeanInfo getBeanInfo(Class beanClass, int flag) throws IntrospectionException { IntrospectionIncubator ii; @@ -312,7 +313,7 @@ public class Introspector { * @throws NullPointerException if clz is null. * @since 1.2 */ - public static void flushFromCaches(Class clz) + public static void flushFromCaches(Class clz) { synchronized (clz) { @@ -394,7 +395,7 @@ public class Introspector { * @param stopClass the class to stop at. * @return the BeanInfo object representing the class. */ - public static BeanInfo getBeanInfo(Class beanClass, Class stopClass) + public static BeanInfo getBeanInfo(Class beanClass, Class stopClass) throws IntrospectionException { ExplicitInfo explicit = new ExplicitInfo(beanClass, stopClass); diff --git a/libjava/classpath/java/beans/PersistenceDelegate.java b/libjava/classpath/java/beans/PersistenceDelegate.java index 77953b67682..a6f71576349 100644 --- a/libjava/classpath/java/beans/PersistenceDelegate.java +++ b/libjava/classpath/java/beans/PersistenceDelegate.java @@ -52,8 +52,8 @@ package java.beans; public abstract class PersistenceDelegate { - protected void initialize(Class type, Object oldInstance, Object newInstance, - Encoder out) + protected void initialize(Class type, Object oldInstance, + Object newInstance, Encoder out) { if (type != Object.class) { diff --git a/libjava/classpath/java/beans/PropertyDescriptor.java b/libjava/classpath/java/beans/PropertyDescriptor.java index da2ca78ae67..4b586d915de 100644 --- a/libjava/classpath/java/beans/PropertyDescriptor.java +++ b/libjava/classpath/java/beans/PropertyDescriptor.java @@ -65,11 +65,11 @@ import java.lang.reflect.Method; **/ public class PropertyDescriptor extends FeatureDescriptor { - Class propertyType; + Class propertyType; Method getMethod; Method setMethod; - Class propertyEditorClass; + Class propertyEditorClass; boolean bound; boolean constrained; @@ -103,7 +103,7 @@ public class PropertyDescriptor extends FeatureDescriptor ** @exception IntrospectionException if the methods are not found ** or invalid. **/ - public PropertyDescriptor(String name, Class beanClass) + public PropertyDescriptor(String name, Class beanClass) throws IntrospectionException { setName(name); @@ -159,7 +159,7 @@ public class PropertyDescriptor extends FeatureDescriptor **/ public PropertyDescriptor( String name, - Class beanClass, + Class beanClass, String getMethodName, String setMethodName) throws IntrospectionException @@ -213,7 +213,7 @@ public class PropertyDescriptor extends FeatureDescriptor ** This is the type the get method returns and the set method ** takes in. **/ - public Class getPropertyType() + public Class getPropertyType() { return propertyType; } @@ -330,7 +330,7 @@ public class PropertyDescriptor extends FeatureDescriptor } /** Get the PropertyEditor class. Defaults to null. **/ - public Class getPropertyEditorClass() + public Class getPropertyEditorClass() { return propertyEditorClass; } @@ -341,7 +341,7 @@ public class PropertyDescriptor extends FeatureDescriptor ** @param propertyEditorClass the PropertyEditor class for this ** class to use. **/ - public void setPropertyEditorClass(Class propertyEditorClass) + public void setPropertyEditorClass(Class propertyEditorClass) { this.propertyEditorClass = propertyEditorClass; } @@ -516,10 +516,10 @@ public class PropertyDescriptor extends FeatureDescriptor * @return The common property type of the two method. * @throws IntrospectionException If any of the above requirements are not met. */ - private Class checkMethods(Method readMethod, Method writeMethod) + private Class checkMethods(Method readMethod, Method writeMethod) throws IntrospectionException { - Class newPropertyType = propertyType; + Class newPropertyType = propertyType; // a valid read method has zero arguments and a non-void return type. if (readMethod != null) diff --git a/libjava/classpath/java/beans/PropertyEditorManager.java b/libjava/classpath/java/beans/PropertyEditorManager.java index da2a5678c5c..0dd3b176dea 100644 --- a/libjava/classpath/java/beans/PropertyEditorManager.java +++ b/libjava/classpath/java/beans/PropertyEditorManager.java @@ -83,7 +83,8 @@ import java.awt.Font; public class PropertyEditorManager { - static java.util.Hashtable editors = new java.util.Hashtable(); + static java.util.Hashtable,Class> editors = + new java.util.Hashtable,Class>(); static String[] editorSearchPath = { "gnu.java.beans.editors", "sun.beans.editors" }; @@ -118,7 +119,7 @@ public class PropertyEditorManager * will edit. * @param editorClass the PropertyEditor class. */ - public static void registerEditor(Class editedClass, Class editorClass) + public static void registerEditor(Class editedClass, Class editorClass) { editors.put(editedClass, editorClass); } @@ -132,7 +133,7 @@ public class PropertyEditorManager * @return a PropertyEditor instance that can edit the * specified class. */ - public static PropertyEditor findEditor(Class editedClass) + public static PropertyEditor findEditor(Class editedClass) { try { diff --git a/libjava/classpath/java/beans/SimpleBeanInfo.java b/libjava/classpath/java/beans/SimpleBeanInfo.java index cfb96048498..56b1f7aa7c7 100644 --- a/libjava/classpath/java/beans/SimpleBeanInfo.java +++ b/libjava/classpath/java/beans/SimpleBeanInfo.java @@ -1,5 +1,5 @@ /* java.beans.SimpleBeanInfo - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,6 +40,7 @@ package java.beans; import java.awt.Image; import java.awt.Toolkit; +import java.net.URL; /** ** SimpleBeanInfo is a class you may extend to more easily @@ -130,10 +131,16 @@ public class SimpleBeanInfo implements BeanInfo { ** and its BeanInfo are both loaded by the same ** ClassLoader, generally a reasonable assumption. ** @param location the URL relative - ** @return the Image in question. + ** @return the Image in question (possibly null). **/ - public Image loadImage(String location) { - return Toolkit.getDefaultToolkit().getImage(getClass().getResource(location)); + public Image loadImage(String location) + { + if (location == null) + return null; + URL url = getClass().getResource(location); + if (url == null) + return null; + return Toolkit.getDefaultToolkit().getImage(url); } } diff --git a/libjava/classpath/java/beans/Statement.java b/libjava/classpath/java/beans/Statement.java index 62a5ad7b6f8..0a01798adc2 100644 --- a/libjava/classpath/java/beans/Statement.java +++ b/libjava/classpath/java/beans/Statement.java @@ -1,5 +1,5 @@ /* Statement.java - Copyright (C) 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -346,16 +346,20 @@ public class Statement /** Return the statement object. */ public Object getTarget() { return target; } - /** Return a string representation. */ + /** + * Returns a string representation of this Statement. + * + * @return A string representation of this Statement. + */ public String toString() { StringBuffer result = new StringBuffer(); - String targetName = target.getClass().getName(); - if ( targetName.startsWith("java")) - { - targetName = targetName.substring(targetName.lastIndexOf('.') + 1); - } + String targetName; + if (target != null) + targetName = target.getClass().getSimpleName(); + else + targetName = "null"; result.append(targetName); result.append("."); @@ -369,10 +373,10 @@ public class Statement result.append( ( arguments[i] == null ) ? "null" : ( arguments[i] instanceof String ) ? "\"" + arguments[i] + "\"" : - arguments[i].getClass().getName()); + arguments[i].getClass().getSimpleName()); sep = ", "; } - result.append(")"); + result.append(");"); return result.toString(); } diff --git a/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java b/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java index 4da523eeb06..f354ff47448 100644 --- a/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java +++ b/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java @@ -46,12 +46,21 @@ import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Locale; +import java.util.Set; import java.util.TooManyListenersException; /** + * This is a helper class for implementing a bean context which + * supplies services. It is intended to be used either by + * subclassing or by calling methods of this implementation + * from another. + * * @author Michael Koch + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.2 */ public class BeanContextServicesSupport @@ -77,38 +86,39 @@ public class BeanContextServicesSupport { private static final long serialVersionUID = 7078212910685744490L; - private BCSSProxyServiceProvider() + private BeanContextServiceProvider provider; + + private BCSSProxyServiceProvider(BeanContextServiceProvider p) { + provider = p; } public Iterator getCurrentServiceSelectors (BeanContextServices bcs, Class serviceClass) - throws NotImplementedException { - throw new Error ("Not implemented"); + return provider.getCurrentServiceSelectors(bcs, serviceClass); } public Object getService (BeanContextServices bcs, Object requestor, Class serviceClass, Object serviceSelector) - throws NotImplementedException { - throw new Error ("Not implemented"); + return provider.getService(bcs, requestor, serviceClass, + serviceSelector); } public void releaseService (BeanContextServices bcs, Object requestor, Object service) - throws NotImplementedException { - throw new Error ("Not implemented"); + provider.releaseService(bcs, requestor, service); } public void serviceRevoked (BeanContextServiceRevokedEvent bcsre) - throws NotImplementedException { - throw new Error ("Not implemented"); + if (provider instanceof BeanContextServiceRevokedListener) + ((BeanContextServiceRevokedListener) provider).serviceRevoked(bcsre); } } @@ -119,51 +129,233 @@ public class BeanContextServicesSupport protected BeanContextServiceProvider serviceProvider; - private BCSSServiceProvider() + private Class serviceClass; + + private BCSSServiceProvider(Class serviceClass, + BeanContextServiceProvider provider) { + this.serviceClass = serviceClass; + serviceProvider = provider; } protected BeanContextServiceProvider getServiceProvider() { return serviceProvider; } + + private Class getServiceClass() + { + return serviceClass; + } + } - protected transient ArrayList bcsListeners; + /** + * Represents a request for a service. This is + * a common superclass used by the classes which maintain + * the listener-requestor and service-requestor relationships. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static abstract class Request + { + private Object requestor; + + public Request(Object requestor) + { + this.requestor = requestor; + } + + public boolean equals(Object obj) + { + if (obj instanceof Request) + { + Request req = (Request) obj; + return req.getRequestor().equals(requestor); + } + return false; + } + + public Object getRequestor() + { + return requestor; + } + + } + + /** + * Represents a relationship between a service requestor + * and a revocation listener. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class ServiceRequest + extends Request + { + + private BeanContextServiceRevokedListener listener; + + public ServiceRequest(Object requestor, + BeanContextServiceRevokedListener listener) + { + super(requestor); + this.listener = listener; + } + + public boolean equals(Object obj) + { + if (obj instanceof ServiceRequest) + { + ServiceRequest sr = (ServiceRequest) obj; + return (super.equals(obj) && + sr.getListener().equals(listener)); + } + return false; + } + + public BeanContextServiceRevokedListener getListener() + { + return listener; + } + } + + /** + * Represents a relationship between a service requestor + * and a service instance. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class ServiceLease + extends Request + { + private Object service; + + public ServiceLease(Object requestor, Object service) + { + super(requestor); + this.service = service; + } + + public boolean equals(Object obj) + { + if (obj instanceof ServiceLease) + { + ServiceLease sl = (ServiceLease) obj; + return (super.equals(obj) && + sl.getService().equals(service)); + } + return false; + } + + public Object getService() + { + return service; + } + } + + /** + * A collection of listeners who receive availability + * and revocation notifications. + */ + protected transient ArrayList bcsListeners; + protected transient BCSSProxyServiceProvider proxy; + /** + * The number of serializable service providers. + */ protected transient int serializable; + /** + * A map of registered services, linking the service + * class to its associated {@link BCSSServiceProvider}. + */ protected transient HashMap services; + /** + * A map of children to a list of services they + * have obtained. + */ + private transient HashMap serviceUsers; + + /** + * A map of services to {@link ServiceRequest}s. + */ + private transient HashMap serviceRequests; + + /** + * A map of {@link ServiceLease}s to providers. + */ + private transient HashMap serviceLeases; + + /** + * Construct a {@link BeanContextServicesSupport} instance. + */ public BeanContextServicesSupport () { super(); } + /** + * Construct a {@link BeanContextServicesSupport} instance. + * + * @param peer the bean context services peer (null permitted). + */ public BeanContextServicesSupport (BeanContextServices peer) { super(peer); } + /** + * Construct a {@link BeanContextServicesSupport} instance. + * + * @param peer the bean context peer (null permitted). + * @param locale the locale (null permitted, equivalent to + * the default locale). + */ public BeanContextServicesSupport(BeanContextServices peer, Locale locale) { super(peer, locale); } + /** + * Construct a {@link BeanContextServicesSupport} instance. + * + * @param peer the bean context peer (null permitted). + * @param locale the locale (null permitted, equivalent to + * the default locale). + * @param dtime a flag indicating whether or not the bean context is in + * design time mode. + */ public BeanContextServicesSupport(BeanContextServices peer, Locale locale, boolean dtime) { super(peer, locale, dtime); } + /** + * Construct a {@link BeanContextServicesSupport} instance. + * + * @param peer the bean context peer (null permitted). + * @param locale the locale (null permitted, equivalent to + * the default locale). + * @param dtime a flag indicating whether or not the bean context is in + * design time mode. + * @param visible initial value of the okToUseGui flag. + */ public BeanContextServicesSupport(BeanContextServices peer, Locale locale, boolean dtime, boolean visible) { super(peer, locale, dtime, visible); } - + + /** + * Adds a new listener for service availability and + * revocation events. + * + * @param listener the listener to add. + */ public void addBeanContextServicesListener (BeanContextServicesListener listener) { @@ -174,60 +366,168 @@ public class BeanContextServicesSupport } } + /** + * Registers a new service from the specified service provider. + * The service is internally associated with the service provider + * and a BeanContextServiceAvailableEvent is fired. If + * the service is already registered, then this method instead + * returns false. This is equivalent to calling + * addService(serviceClass, bcsp, true). + * + * @param serviceClass the class of the service to be registered. + * @param bcsp the provider of the given service. + * @return true if the service was registered successfully. + * @see #addService(Class, BeanContextServiceProvider, boolean) + */ public boolean addService (Class serviceClass, BeanContextServiceProvider bcsp) { return addService(serviceClass, bcsp, true); } + /** + * Registers a new service from the specified service provider. + * The service is internally associated with the service provider + * and (if fireEvent is true) a + * BeanContextServiceAvailableEvent is fired. If + * the service is already registered, then this method instead + * returns false. + * + * @param serviceClass the class of the service to be registered. + * @param bcsp the provider of the given service. + * @param fireEvent true if a service availability event should + * be fired. + * @return true if the service was registered successfully. + */ protected boolean addService (Class serviceClass, BeanContextServiceProvider bcsp, boolean fireEvent) { - synchronized (services) + synchronized (globalHierarchyLock) { - if (services.containsKey(serviceClass)) - return false; - services.put(serviceClass, bcsp); - if (bcsp instanceof Serializable) - ++serializable; - fireServiceAdded(serviceClass); - return true; + synchronized (services) + { + if (services.containsKey(serviceClass)) + return false; + services.put(serviceClass, + createBCSSServiceProvider(serviceClass, bcsp)); + if (bcsp instanceof Serializable) + ++serializable; + if (fireEvent) + fireServiceAdded(serviceClass); + return true; + } } } + /** + * Deserializes any service providers which are serializable. This + * method is called by the readObject method of + * {@link BeanContextSupport} prior to deserialization of the children. + * Subclasses may envelope its behaviour in order to read further + * serialized data to the stream. + * + * @param oos the stream from which data is being deserialized. + * @throws IOException if an I/O error occurs. + * @throws ClassNotFoundException if the class of a deserialized object + * can not be found. + */ protected void bcsPreDeserializationHook (ObjectInputStream ois) - throws ClassNotFoundException, IOException, NotImplementedException + throws ClassNotFoundException, IOException { - throw new Error ("Not implemented"); + serializable = ois.readInt(); + for (int a = 0; a < serializable; ++a) + { + BCSSServiceProvider bcsssp = (BCSSServiceProvider) ois.readObject(); + addService(bcsssp.getServiceClass(), bcsssp.getServiceProvider()); + } } + /** + * Serializes any service providers which are serializable. This + * method is called by the writeObject method of + * {@link BeanContextSupport} prior to serialization of the children. + * Subclasses may envelope its behaviour in order to add further + * serialized data to the stream. + * + * @param oos the stream to which data is being serialized. + * @throws IOException if an I/O error occurs. + */ protected void bcsPreSerializationHook (ObjectOutputStream oos) - throws IOException, NotImplementedException + throws IOException { - throw new Error ("Not implemented"); + oos.writeInt(serializable); + synchronized (services) + { + Iterator i = services.values().iterator(); + while (i.hasNext()) + { + BCSSServiceProvider bcsssp = (BCSSServiceProvider) i.next(); + if (bcsssp.getServiceProvider() instanceof Serializable) + oos.writeObject(bcsssp); + } + } } - + + /** + * Revokes any services used by a child that has just been removed. + * The superclass ({@link BeanContextSupport}) calls this method + * when a child has just been successfully removed. Subclasses can + * extend this method in order to perform additional operations + * on child removal. + * + * @param child the child being removed. + * @param bcsc the support object for the child. + */ protected void childJustRemovedHook (Object child, BeanContextSupport.BCSChild bcsc) - throws NotImplementedException { - throw new Error ("Not implemented"); + if (child instanceof BeanContextChild) + { + BeanContextChild bcchild = (BeanContextChild) child; + Iterator childServices = ((List) serviceUsers.get(bcchild)).iterator(); + while (childServices.hasNext()) + releaseService(bcchild, this, childServices.next()); + serviceUsers.remove(bcchild); + } } + /** + * Overrides the {@link BeanContextSupport#createBCSChild} method + * so as to use a {@link BCSSChild} instead. + * + * @param targetChild the child to create the child for. + * @param peer the peer which relates to the child if a proxy is used. + * @return a new instance of {@link BCSSChild}. + */ protected BeanContextSupport.BCSChild createBCSChild (Object targetChild, Object peer) { return new BCSSChild(targetChild, peer); } + /** + * Provides a hook so that subclasses can replace the + * {@link BCSSServiceProvider} class, used to store registered + * service providers, with a subclass without replacing the + * {@link #addService(Class, BeanContextServiceProvider)} method. + * + * @param sc the class of service being registered. + * @param bcsp the provider of the service. + * @return a instance of {@link BCSSServiceProvider} wrapping the provider. + */ protected BeanContextServicesSupport.BCSSServiceProvider createBCSSServiceProvider (Class sc, BeanContextServiceProvider bcsp) - throws NotImplementedException { - throw new Error ("Not implemented"); + return new BCSSServiceProvider(sc, bcsp); } + /** + * Sends a BeanContextServiceAvailableEvent to all + * registered listeners. + * + * @param bcssae the event to send. + */ protected final void fireServiceAdded (BeanContextServiceAvailableEvent bcssae) { synchronized (bcsListeners) @@ -242,12 +542,25 @@ public class BeanContextServicesSupport } } + /** + * Sends a BeanContextServiceAvailableEvent to all + * registered listeners. + * + * @param serviceClass the service that is now available. + * @see #fireServiceAdded(BeanContextServiceAvailableEvent) + */ protected final void fireServiceAdded (Class serviceClass) { fireServiceAdded(new BeanContextServiceAvailableEvent(this, serviceClass)); } + /** + * Sends a BeanContextServiceRevokedEvent to all + * registered listeners. + * + * @param event the event to send. + */ protected final void fireServiceRevoked(BeanContextServiceRevokedEvent event) { synchronized (bcsListeners) @@ -259,9 +572,26 @@ public class BeanContextServicesSupport = (BeanContextServicesListener) bcsListeners.get(i); bcsl.serviceRevoked(event); } + List requests = (List) serviceRequests.get(event.getServiceClass()); + if (requests != null) + { + Iterator i = requests.iterator(); + while (i.hasNext()) + { + ServiceRequest r = (ServiceRequest) i.next(); + r.getListener().serviceRevoked(event); + } + } } } + /** + * Sends a BeanContextServiceRevokedEvent to all + * registered listeners. + * + * @param serviceClass the service that has been revoked. + * @see #fireServiceRevoked(BeanContextServiceRevokedEvent) + */ protected final void fireServiceRevoked (Class serviceClass, boolean revokeNow) { @@ -269,51 +599,166 @@ public class BeanContextServicesSupport revokeNow)); } + /** + * Returns the services peer given at construction time, + * or null if no peer was given. + * + * @return the {@link BeanContextServices} peer. + */ public BeanContextServices getBeanContextServicesPeer () - throws NotImplementedException { - throw new Error ("Not implemented"); + return (BeanContextServices) beanContextChildPeer; } + /** + * Returns child as an instance of + * {@link BeanContextServicesListener}, or null if + * child does not implement that interface. + * + * @param child the child (null permitted). + * + * @return The child cast to {@link BeanContextServicesListener}. + */ protected static final BeanContextServicesListener - getChildBeanContextServicesListener (Object child) - throws NotImplementedException + getChildBeanContextServicesListener(Object child) { - throw new Error ("Not implemented"); + if (child instanceof BeanContextServicesListener) + return (BeanContextServicesListener) child; + else + return null; } + /** + * Returns an iterator over the currently available + * services. + * + * @return an iterator over the currently available services. + */ public Iterator getCurrentServiceClasses () { - synchronized (services) + synchronized (globalHierarchyLock) { - return services.keySet().iterator(); + synchronized (services) + { + return services.keySet().iterator(); + } } } + /** + * Returns an iterator over the service selectors of the service + * provider for the given service. The iterator is actually + * obtained by calling the + * {@link BeanContextServiceProvider#getCurrentServiceSelectors} + * of the provider itself. If the specified service is not available, + * null is returned. + * + * @param serviceClass the service whose provider's selectors should + * be iterated over. + * @return an {@link Iterator} over the service selectors of the + * provider of the given service. + */ public Iterator getCurrentServiceSelectors (Class serviceClass) { - synchronized (services) + synchronized (globalHierarchyLock) { - // FIXME: what if service does not exist? Must write a test. - BeanContextServiceProvider bcsp - = (BeanContextServiceProvider) services.get(serviceClass); - return bcsp.getCurrentServiceSelectors(this, serviceClass); + synchronized (services) + { + BeanContextServiceProvider bcsp + = ((BCSSServiceProvider) + services.get(serviceClass)).getServiceProvider(); + if (bcsp == null) + return null; + else + return bcsp.getCurrentServiceSelectors(this, serviceClass); + } } } + /** + * Retrieves the specified service. If a provider for the service + * is registered in this context, then the request is passed on to + * the provider and the service returned. Otherwise, the request + * is delegated to a parent {@link BeanContextServices}, if possible. + * If the service can not be found at all, then null + * is returned. + * + * @param child the child obtaining the reference. + * @param requestor the requestor of the service, which may be the + * child itself. + * @param serviceClass the service being requested. + * @param serviceSelector an additional service-dependent parameter + * (may be null if not appropriate). + * @param bcsrl a listener used to notify the requestor that the service + * has since been revoked. + * @return a reference to the service requested, or null. + * @throws TooManyListenersException according to Sun's documentation. + */ public Object getService (BeanContextChild child, Object requestor, Class serviceClass, Object serviceSelector, BeanContextServiceRevokedListener bcsrl) - throws TooManyListenersException, NotImplementedException + throws TooManyListenersException { - throw new Error ("Not implemented"); + synchronized (globalHierarchyLock) + { + synchronized (services) + { + Object service; + BeanContextServiceProvider provider = ((BCSSServiceProvider) + services.get(serviceClass)).getServiceProvider(); + if (provider != null) + { + service = provider.getService(this, requestor, serviceClass, + serviceSelector); + List childServices = (List) serviceUsers.get(child); + if (childServices == null) + { + childServices = new ArrayList(); + serviceUsers.put(child, childServices); + } + childServices.add(serviceClass); + } + else + { + BeanContextServices peer = getBeanContextServicesPeer(); + if (peer != null) + service = peer.getService(child, requestor, serviceClass, + serviceSelector, bcsrl); + else + service = null; + } + if (service != null) + { + ServiceRequest request = new ServiceRequest(requestor, bcsrl); + Set requests = (Set) serviceRequests.get(serviceClass); + if (requests == null) + { + requests = new HashSet(); + serviceRequests.put(serviceClass, requests); + } + requests.add(request); + ServiceLease lease = new ServiceLease(requestor, service); + serviceLeases.put(lease, provider); + } + return service; + } + } } + /** + * Returns true if the specified service is available. + * + * @param serviceClass the service to check for. + * @return true if the service is available. + */ public boolean hasService (Class serviceClass) { - synchronized (services) + synchronized (globalHierarchyLock) { - return services.containsKey(serviceClass); + synchronized (services) + { + return services.containsKey(serviceClass); + } } } @@ -323,25 +768,62 @@ public class BeanContextServicesSupport bcsListeners = new ArrayList(); services = new HashMap(); + serviceUsers = new HashMap(); + serviceRequests = new HashMap(); + serviceLeases = new HashMap(); } - protected void initializeBeanContextResources () - throws NotImplementedException + /** + * Subclasses may override this method to allocate resources + * from the nesting bean context. + */ + protected void initializeBeanContextResources() { - throw new Error ("Not implemented"); + /* Purposefully left empty */ } - protected void releaseBeanContextResources () - throws NotImplementedException + /** + * Relinquishes any resources obtained from the parent context. + * Specifically, those services obtained from the parent are revoked. + * Subclasses may override this method to deallocate resources + * from the nesting bean context. + */ + protected void releaseBeanContextResources() { - throw new Error ("Not implemented"); + /* Purposefully left empty */ } + /** + * Releases the reference to a service held by a + * {@link BeanContextChild} (or an arbitrary object associated + * with it). It simply calls the appropriate method on the + * underlying provider. + * + * @param child the child who holds the reference. + * @param requestor the object that requested the reference. + * @param service the service being released. + */ public void releaseService (BeanContextChild child, Object requestor, Object service) - throws NotImplementedException { - throw new Error ("Not implemented"); + synchronized (globalHierarchyLock) + { + synchronized (services) + { + ServiceLease lease = new ServiceLease(requestor, service); + BeanContextServiceProvider provider = (BeanContextServiceProvider) + serviceLeases.get(lease); + if (provider != null) + provider.releaseService(this, requestor, service); + else + { + BeanContextServices peer = getBeanContextServicesPeer(); + if (peer != null) + peer.releaseService(child, requestor, service); + } + serviceLeases.remove(lease); + } + } } public void removeBeanContextServicesListener @@ -349,17 +831,35 @@ public class BeanContextServicesSupport { synchronized (bcsListeners) { - int index = bcsListeners.indexOf(listener); - if (index > -1) - bcsListeners.remove(index); + bcsListeners.remove(listener); } } + /** + * Revokes the given service. A {@link BeanContextServiceRevokedEvent} is + * emitted to all registered {@link BeanContextServiceRevokedListener}s + * and {@link BeanContextServiceListener}s. If revokeCurrentServicesNow + * is true, termination of the service is immediate. Otherwise, prior + * acquisitions of the service by requestors remain valid. + * + * @param serviceClass the service to revoke. + * @param bcsp the provider of the revoked service. + * @param revokeCurrentServicesNow true if this is an exceptional circumstance + * where service should be immediately revoked. + */ public void revokeService (Class serviceClass, BeanContextServiceProvider bcsp, boolean revokeCurrentServicesNow) - throws NotImplementedException { - throw new Error ("Not implemented"); + synchronized (globalHierarchyLock) + { + synchronized (services) + { + fireServiceRevoked(serviceClass, revokeCurrentServicesNow); + services.remove(serviceClass); + if (bcsp instanceof Serializable) + --serializable; + } + } } public void serviceAvailable (BeanContextServiceAvailableEvent bcssae) diff --git a/libjava/classpath/java/beans/beancontext/BeanContextSupport.java b/libjava/classpath/java/beans/beancontext/BeanContextSupport.java index a12c078df6a..d57f5f8842a 100644 --- a/libjava/classpath/java/beans/beancontext/BeanContextSupport.java +++ b/libjava/classpath/java/beans/beancontext/BeanContextSupport.java @@ -38,8 +38,6 @@ exception statement from your version. */ package java.beans.beancontext; -import gnu.classpath.NotImplementedException; - import java.beans.Beans; import java.beans.DesignMode; import java.beans.PropertyChangeEvent; @@ -57,6 +55,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Locale; /** @@ -74,20 +73,52 @@ public class BeanContextSupport extends BeanContextChildSupport { private static final long serialVersionUID = -4879613978649577204L; - // This won't show up in japi, but we mark it as a stub anyway, - // so that searches for NotImplementedException will find it. + /** + * Deserializes a stored bean context. Hook methods are provided to allow + * subclasses to perform their own deserialization after the default + * deserialization but prior to the deserialization of the children. Note that + * {@link #readChildren(ObjectInputStream)} is only called if there + * is no distinct peer. If there is, the peer is expected to call + * the method instead. + * + * @param s the stream to deserialize. + * @throws ClassNotFoundException if the class of an object being deserialized + * could not be found. + * @throws IOException if an I/O error occurs. + */ private void readObject (ObjectInputStream s) - throws ClassNotFoundException, IOException, NotImplementedException + throws ClassNotFoundException, IOException { - throw new Error ("Not implemented"); + s.defaultReadObject(); + bcsPreDeserializationHook(s); + BeanContext peer = getBeanContextPeer(); + if (peer == null || peer == this) + readChildren(s); } - // This won't show up in japi, but we mark it as a stub anyway, - // so that searches for NotImplementedException will find it. + /** + * Serializes a bean context. Hook methods are provided to allow + * subclasses to perform their own serialization after the default + * serialization but prior to serialization of the children. Note that + * {@link #writeChildren(ObjectOutputStream)} is only called if there + * is no distinct peer. If there is, the peer is expected to call + * the method instead. + * + * @param s the stream to serialize. + * @throws ClassNotFoundException if the class of an object being deserialized + * could not be found. + * @throws IOException if an I/O error occurs. + */ private void writeObject (ObjectOutputStream s) - throws ClassNotFoundException, IOException, NotImplementedException + throws ClassNotFoundException, IOException { - throw new Error ("Not implemented"); + serializing = true; + s.defaultWriteObject(); + bcsPreSerializationHook(s); + BeanContext peer = getBeanContextPeer(); + if (peer == null || peer == this) + writeChildren(s); + serializing = false; } protected class BCSChild implements Serializable @@ -102,6 +133,12 @@ public class BeanContextSupport extends BeanContextChildSupport this.targetChild = targetChild; this.peer = peer; } + + private Object getTargetChild() + { + return targetChild; + } + } protected static final class BCSIterator implements Iterator @@ -139,47 +176,68 @@ public class BeanContextSupport extends BeanContextChildSupport protected transient boolean okToUseGui; + private transient boolean serializing; + /** * Construct a BeanContextSupport instance. */ public BeanContextSupport () { - this (null, null, true, true); + this (null, null, false, true); } /** * Construct a BeanContextSupport instance. + * + * @param peer the bean context peer (null permitted). */ - public BeanContextSupport (BeanContext peer) + public BeanContextSupport(BeanContext peer) { - this (peer, null, true, true); + this (peer, null, false, true); } /** * Construct a BeanContextSupport instance. + * + * @param peer the bean context peer (null permitted). + * @param locale the locale (null permitted, equivalent to + * the default locale). */ - public BeanContextSupport (BeanContext peer, Locale lcle) + public BeanContextSupport (BeanContext peer, Locale locale) { - this (peer, lcle, true, true); + this (peer, locale, false, true); } /** * Construct a BeanContextSupport instance. + * + * @param peer the bean context peer (null permitted). + * @param locale the locale (null permitted, equivalent to + * the default locale). + * @param dtime a flag indicating whether or not the bean context is in + * design time mode. */ - public BeanContextSupport (BeanContext peer, Locale lcle, boolean dtime) + public BeanContextSupport (BeanContext peer, Locale locale, boolean dtime) { - this (peer, lcle, dtime, true); + this (peer, locale, dtime, true); } /** * Construct a BeanContextSupport instance. + * + * @param peer the bean context peer (null permitted). + * @param locale the locale (null permitted, equivalent to + * the default locale). + * @param dtime a flag indicating whether or not the bean context is in + * design time mode. + * @param visible initial value of the okToUseGui flag. */ - public BeanContextSupport (BeanContext peer, Locale lcle, boolean dtime, + public BeanContextSupport (BeanContext peer, Locale locale, boolean dtime, boolean visible) { super(peer); - locale = lcle == null ? Locale.getDefault() : lcle; + this.locale = locale == null ? Locale.getDefault() : locale; designTime = dtime; okToUseGui = visible; @@ -309,7 +367,6 @@ public class BeanContextSupport extends BeanContextChildSupport * told not to use it. */ public boolean avoidingGui() - throws NotImplementedException { return needsGui() && (!okToUseGui); } @@ -322,22 +379,49 @@ public class BeanContextSupport extends BeanContextChildSupport } } + /** + * Subclasses may use this method to perform their own deserialization + * after the default deserialization process has taken place, but + * prior to the deserialization of the children. It should not + * be used to replace the implementation of readObject + * in the subclass. + * + * @param ois the input stream. + * @throws ClassNotFoundException if the class of an object being deserialized + * could not be found. + * @throws IOException if an I/O error occurs. + */ protected void bcsPreDeserializationHook (ObjectInputStream ois) - throws ClassNotFoundException, IOException, NotImplementedException + throws ClassNotFoundException, IOException { - throw new Error ("Not implemented"); + /* Purposefully left empty */ } + /** + * Subclasses may use this method to perform their own serialization + * after the default serialization process has taken place, but + * prior to the serialization of the children. It should not + * be used to replace the implementation of writeObject + * in the subclass. + * + * @param oos the output stream. + * @throws IOException if an I/O error occurs. + */ protected void bcsPreSerializationHook (ObjectOutputStream oos) - throws IOException, NotImplementedException + throws IOException { - throw new Error ("Not implemented"); + /* Purposefully left empty */ } + /** + * Called when a child is deserialized. + * + * @param child the deserialized child. + * @param bcsc the deserialized context wrapper for the child. + */ protected void childDeserializedHook (Object child, BeanContextSupport.BCSChild bcsc) - throws NotImplementedException { - throw new Error ("Not implemented"); + // Do nothing in the base class. } protected void childJustAddedHook (Object child, BeanContextSupport.BCSChild bcsc) @@ -404,10 +488,25 @@ public class BeanContextSupport extends BeanContextChildSupport return new BCSChild(targetChild, peer); } + /** + * Deserializes objects (written by {@link #serialize(ObjectOutputStream, + * Collection)}) and adds them to the specified collection. + * + * @param ois the input stream (null not permitted). + * @param coll the collection to add the objects to (null not + * permitted). + * + * @throws ClassNotFoundException + * @throws IOException + * + * @see #serialize(ObjectOutputStream, Collection) + */ protected final void deserialize (ObjectInputStream ois, Collection coll) - throws ClassNotFoundException, IOException, NotImplementedException + throws ClassNotFoundException, IOException { - throw new Error ("Not implemented"); + int itemCount = ois.readInt(); + for (int i = 0; i < itemCount; i++) + coll.add(ois.readObject()); } /** @@ -447,46 +546,127 @@ public class BeanContextSupport extends BeanContextChildSupport } } - public BeanContext getBeanContextPeer () - throws NotImplementedException + /** + * Returns the bean context peer. + * + * @return The bean context peer. + * + * @see BeanContextChildSupport#beanContextChildPeer + */ + public BeanContext getBeanContextPeer() { - throw new Error ("Not implemented"); + return (BeanContext) beanContextChildPeer; } - protected static final BeanContextChild getChildBeanContextChild (Object child) - throws NotImplementedException + /** + * Returns the {@link BeanContextChild} implementation for the given child. + * + * @param child the child (null permitted). + * + * @return The bean context child. + * + * @throws IllegalArgumentException if child implements both + * the {@link BeanContextChild} and {@link BeanContextProxy} interfaces. + */ + protected static final BeanContextChild getChildBeanContextChild(Object child) { - throw new Error ("Not implemented"); + if (child == null) + return null; + if (child instanceof BeanContextChild && child instanceof BeanContextProxy) + throw new IllegalArgumentException("Child cannot implement " + + "BeanContextChild and BeanContextProxy simultaneously."); + if (child instanceof BeanContextChild) + return (BeanContextChild) child; + if (child instanceof BeanContextProxy) + return ((BeanContextProxy) child).getBeanContextProxy(); + return null; } - protected static final BeanContextMembershipListener getChildBeanContextMembershipListener (Object child) - throws NotImplementedException + /** + * Returns child as an instance of + * {@link BeanContextMembershipListener}, or null if + * child does not implement that interface. + * + * @param child the child (null permitted). + * + * @return The child cast to {@link BeanContextMembershipListener}. + */ + protected static final BeanContextMembershipListener + getChildBeanContextMembershipListener(Object child) { - throw new Error ("Not implemented"); + if (child instanceof BeanContextMembershipListener) + return (BeanContextMembershipListener) child; + else + return null; } - protected static final PropertyChangeListener getChildPropertyChangeListener (Object child) - throws NotImplementedException + /** + * Returns child as an instance of + * {@link PropertyChangeListener}, or null if child + * does not implement that interface. + * + * @param child the child (null permitted). + * + * @return The child cast to {@link PropertyChangeListener}. + */ + protected static final PropertyChangeListener getChildPropertyChangeListener( + Object child) { - throw new Error ("Not implemented"); + if (child instanceof PropertyChangeListener) + return (PropertyChangeListener) child; + else + return null; } - protected static final Serializable getChildSerializable (Object child) - throws NotImplementedException + /** + * Returns child as an instance of {@link Serializable}, or + * null if child does not implement that + * interface. + * + * @param child the child (null permitted). + * + * @return The child cast to {@link Serializable}. + */ + protected static final Serializable getChildSerializable(Object child) { - throw new Error ("Not implemented"); + if (child instanceof Serializable) + return (Serializable) child; + else + return null; } - protected static final VetoableChangeListener getChildVetoableChangeListener (Object child) - throws NotImplementedException + /** + * Returns child as an instance of + * {@link VetoableChangeListener}, or null if child + * does not implement that interface. + * + * @param child the child (null permitted). + * + * @return The child cast to {@link VetoableChangeListener}. + */ + protected static final VetoableChangeListener getChildVetoableChangeListener( + Object child) { - throw new Error ("Not implemented"); + if (child instanceof VetoableChangeListener) + return (VetoableChangeListener) child; + else + return null; } - protected static final Visibility getChildVisibility (Object child) - throws NotImplementedException + /** + * Returns child as an instance of {@link Visibility}, or + * null if child does not implement that interface. + * + * @param child the child (null permitted). + * + * @return The child cast to {@link Visibility}. + */ + protected static final Visibility getChildVisibility(Object child) { - throw new Error ("Not implemented"); + if (child instanceof Visibility) + return (Visibility) child; + else + return null; } public Locale getLocale () @@ -534,7 +714,15 @@ public class BeanContextSupport extends BeanContextChildSupport return Beans.instantiate(getClass().getClassLoader(), beanName, this); } - public boolean isDesignTime () + /** + * Returns true if the BeanContext is in + * design time mode, and false if it is in runtime mode. + * + * @return A boolean. + * + * @see #setDesignTime(boolean) + */ + public boolean isDesignTime() { return designTime; } @@ -552,10 +740,15 @@ public class BeanContextSupport extends BeanContextChildSupport } } - public boolean isSerializing () - throws NotImplementedException + /** + * Returns true if the bean context is in the process + * of being serialized. + * + * @return true if the context is being serialized. + */ + public boolean isSerializing() { - throw new Error ("Not implemented"); + return serializing; } public Iterator iterator () @@ -600,10 +793,33 @@ public class BeanContextSupport extends BeanContextChildSupport remove(pce.getSource(), false); } + /** + * Deerializes the children using the + * {@link #deserialize(ObjectInputStream, Collection} method + * and then calls {@link childDeserializedHook(Object, BCSChild)} + * for each child deserialized. + * + * @param oos the output stream. + * @throws IOException if an I/O error occurs. + */ public final void readChildren (ObjectInputStream ois) - throws IOException, ClassNotFoundException, NotImplementedException + throws IOException, ClassNotFoundException { - throw new Error ("Not implemented"); + List temp = new ArrayList(); + deserialize(ois, temp); + Iterator i = temp.iterator(); + synchronized (globalHierarchyLock) + { + synchronized (children) + { + while (i.hasNext()) + { + BCSChild bcs = (BCSChild) i.next(); + childDeserializedHook(bcs.getTargetChild(), bcs); + children.put(bcs.getTargetChild(), bcs); + } + } + } } /** @@ -646,7 +862,7 @@ public class BeanContextSupport extends BeanContextChildSupport * This method is synchronized over the global hierarchy lock. *

    * - * @param targetChild the child to add. + * @param targetChild the child to remove. * @param callChildSetBC true if the setBeanContext() * method of the child should be called. * @return false if the child doesn't exist. @@ -722,17 +938,55 @@ public class BeanContextSupport extends BeanContextChildSupport throw new UnsupportedOperationException(); } - protected final void serialize (ObjectOutputStream oos, Collection coll) - throws IOException, NotImplementedException + /** + * Writes the items in the collection to the specified output stream. Items + * in the collection that are not instances of {@link Serializable} + * (this includes null) are simply ignored. + * + * @param oos the output stream (null not permitted). + * @param coll the collection (null not permitted). + * + * @throws IOException + * + * @see #deserialize(ObjectInputStream, Collection) + */ + protected final void serialize(ObjectOutputStream oos, Collection coll) + throws IOException { - throw new Error ("Not implemented"); + Object[] items = coll.toArray(); + int itemCount = 0; + for (int i = 0; i < items.length; i++) + { + if (items[i] instanceof Serializable) + itemCount++; + } + oos.writeInt(itemCount); + for (int i = 0; i < items.length; i++) + { + if (items[i] instanceof Serializable) + oos.writeObject(items[i]); + } } - public void setDesignTime (boolean dtime) + /** + * Sets the flag that indicates whether or not the + * BeanContext is in design mode. If the flag changes + * value, a {@link PropertyChangeEvent} (with the property name 'designMode') + * is sent to registered listeners. Note that the property name used here + * does NOT match the specification in the {@link DesignMode} interface, we + * match the reference implementation instead - see bug parade entry 4295174. + * + * @param dtime the new value for the flag. + * + * @see #isDesignTime() + */ + public void setDesignTime(boolean dtime) { boolean save = designTime; designTime = dtime; - firePropertyChange(DesignMode.PROPERTYNAME, Boolean.valueOf(save), + // note that we use the same property name as Sun's implementation, + // even though this is a known bug: see bug parade entry 4295174 + firePropertyChange("designMode", Boolean.valueOf(save), Boolean.valueOf(dtime)); } @@ -755,7 +1009,12 @@ public class BeanContextSupport extends BeanContextChildSupport } } - public Object[] toArray () + /** + * Returns an array containing the children of this BeanContext. + * + * @return An array containing the children. + */ + public Object[] toArray() { synchronized (children) { @@ -763,10 +1022,16 @@ public class BeanContextSupport extends BeanContextChildSupport } } + /** + * Populates, then returns, the supplied array with the children of this + * BeanContext. If the array is too short to hold the + * children, a new array is allocated and returned. If the array is too + * long, it is padded with null items at the end. + * + * @param array an array to populate (null not permitted). + */ public Object[] toArray(Object[] array) - throws NotImplementedException { - // This implementation is incorrect, I think. synchronized (children) { return children.keySet().toArray(array); @@ -795,9 +1060,20 @@ public class BeanContextSupport extends BeanContextChildSupport /* Purposefully left empty */ } + /** + * Serializes the children using the + * {@link #serialize(ObjectOutputStream, Collection} method. + * + * @param oos the output stream. + * @throws IOException if an I/O error occurs. + */ public final void writeChildren (ObjectOutputStream oos) - throws IOException, NotImplementedException + throws IOException { - throw new Error ("Not implemented"); + synchronized (children) + { + serialize(oos, children.values()); + } } + } diff --git a/libjava/classpath/java/io/CharArrayWriter.java b/libjava/classpath/java/io/CharArrayWriter.java index 68e693b4a1a..0eead3ad35d 100644 --- a/libjava/classpath/java/io/CharArrayWriter.java +++ b/libjava/classpath/java/io/CharArrayWriter.java @@ -267,7 +267,7 @@ public class CharArrayWriter extends Writer * sequence is wrapped around an input buffer, the results will * depend on the current position and length of that buffer. * - * @param cs the character sequence to append. If cs is null, + * @param seq the character sequence to append. If seq is null, * then the string "null" (the string representation of null) * is appended. * @return a reference to this object. @@ -291,10 +291,10 @@ public class CharArrayWriter extends Writer * output stream underlying this writer, starting and ending at the * specified positions within the sequence. The behaviour of this * method matches the behaviour of writing the result of - * append(cs.subSequence(start,end)) when the sequence + * append(seq.subSequence(start,end)) when the sequence * is not null. * - * @param cs the character sequence to append. If cs is null, + * @param seq the character sequence to append. If seq is null, * then the string "null" (the string representation of null) * is appended. * @param start the index of the first Unicode character to use from diff --git a/libjava/classpath/java/io/DeleteFileHelper.java b/libjava/classpath/java/io/DeleteFileHelper.java index d73628c4973..6e33adce801 100644 --- a/libjava/classpath/java/io/DeleteFileHelper.java +++ b/libjava/classpath/java/io/DeleteFileHelper.java @@ -1,5 +1,5 @@ /* DeleteFileHelper.java -- Helper class to delete files on VM exit - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,22 +40,22 @@ package java.io; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; -import java.util.Iterator; /** * @author Guilhem Lavaux (guilhem@kaffe.org) * @author Jeroen Frijters (jeroen@sumatra.nl) * @author Michael Koch (konqueror@gmx.de) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ final class DeleteFileHelper extends Thread { - private static ArrayList filesToDelete; + private static ArrayList filesToDelete; static synchronized void add(File file) { if (filesToDelete == null) { - filesToDelete = new ArrayList(); + filesToDelete = new ArrayList(); AccessController.doPrivileged(new PrivilegedAction() { @@ -81,13 +81,10 @@ final class DeleteFileHelper extends Thread private static synchronized void deleteFiles() { - Iterator it = filesToDelete.iterator(); - - while (it.hasNext()) + for (File file : filesToDelete) { try { - File file = (File) it.next(); file.delete(); } catch (Exception e) diff --git a/libjava/classpath/java/io/File.java b/libjava/classpath/java/io/File.java index ce56876cc22..5d1b3ec8516 100644 --- a/libjava/classpath/java/io/File.java +++ b/libjava/classpath/java/io/File.java @@ -60,7 +60,7 @@ import java.net.URL; * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) */ -public class File implements Serializable, Comparable +public class File implements Serializable, Comparable { private static final long serialVersionUID = 301077366599181567L; @@ -286,7 +286,8 @@ public class File implements Serializable, Comparable // example, is a valid and minimal path). if (plen > 1 && p.charAt (plen - 1) == separatorChar) { - if (! (separatorChar == '\\' && plen == 3 && p.charAt (1) == ':')) + if (! (separatorChar == '\\' && ((plen == 3 && p.charAt(1) == ':') + || (plen == 2 && p.charAt(0) == separatorChar)))) return p.substring (0, plen - 1); } else @@ -303,7 +304,16 @@ public class File implements Serializable, Comparable { dupIndex++; if (dupIndex == plen) - return newpath.toString(); + { + if ((separatorChar == '\\' + && newpath.length() == 2 + && newpath.charAt(1) == ':') + || (separatorChar != '\\' && newpath.length() == 0)) + { + newpath.append(separatorChar); + } + return newpath.toString(); + } } newpath.append(separatorChar); last = dupIndex; @@ -315,7 +325,9 @@ public class File implements Serializable, Comparable int end; if (plen > 1 && p.charAt (plen - 1) == separatorChar) { - if (separatorChar == '\\' && plen == 3 && p.charAt (1) == ':') + if (separatorChar == '\\' + && ((plen == 3 && p.charAt(1) == ':') + || (plen == 2 && p.charAt(0) == separatorChar))) end = plen; else end = plen - 1; @@ -427,45 +439,8 @@ public class File implements Serializable, Comparable { 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 if (path.equals("")) - return System.getProperty ("user.dir"); else - return System.getProperty ("user.dir") + separatorChar + path; + return VMFile.getAbsolutePath(path); } /** @@ -657,15 +632,7 @@ public class File implements Serializable, Comparable */ public boolean isAbsolute() { - if (separatorChar == '\\') - return path.startsWith(dupSeparator) || - (path.length() > 2 && - ((path.charAt(0) >= 'a' && path.charAt(0) <= 'z') || - (path.charAt(0) >= 'A' && path.charAt(0) <= 'Z')) && - path.charAt(1) == ':' && - path.charAt(2) == '\\'); - else - return path.startsWith(separator); + return VMFile.isAbsolute(path); } /** @@ -787,8 +754,9 @@ public class File implements Serializable, Comparable String files[] = VMFile.list(path); // Check if an error occured in listInternal(). + // This is an unreadable directory, pretend there is nothing inside. if (files == null) - return null; + return new String[0]; if (filter == null) return files; @@ -998,14 +966,7 @@ public class File implements Serializable, Comparable */ 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() ? "/" : "")); + return VMFile.toURL(this); } @@ -1292,32 +1253,6 @@ public class File implements Serializable, Comparable } /** - * This method compares the specified Object to this one - * to test for equality. It does this by comparing the canonical path names - * of the files. This method is identical to compareTo(File) - * except that if the Object passed to it is not a - * File, it throws a ClassCastException - *

    - * The canonical paths of the files are determined by calling the - * getCanonicalPath method on each object. - *

    - * This method returns a 0 if the specified Object 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 - * - * @exception ClassCastException If the passed Object is - * not a File - * - * @since 1.2 - */ - public int compareTo(Object obj) - { - return compareTo((File) obj); - } - - /** * This method renames the file represented by this object to the path * of the file represented by the argument File. * diff --git a/libjava/classpath/java/io/FileDescriptor.java b/libjava/classpath/java/io/FileDescriptor.java index d300c9cb617..cf9ff20d564 100644 --- a/libjava/classpath/java/io/FileDescriptor.java +++ b/libjava/classpath/java/io/FileDescriptor.java @@ -39,7 +39,7 @@ exception statement from your version. */ package java.io; -import gnu.java.nio.channels.FileChannelImpl; +import gnu.java.nio.FileChannelImpl; import java.nio.channels.ByteChannel; import java.nio.channels.FileChannel; @@ -133,7 +133,8 @@ public final class FileDescriptor * native file handle, false otherwise */ public boolean valid () - { - return channel != null && channel.isOpen(); + { + ByteChannel c = channel; + return (c != null) && (c.isOpen()); } } diff --git a/libjava/classpath/java/io/FileInputStream.java b/libjava/classpath/java/io/FileInputStream.java index 8ca38b02fc4..8217668b479 100644 --- a/libjava/classpath/java/io/FileInputStream.java +++ b/libjava/classpath/java/io/FileInputStream.java @@ -38,8 +38,9 @@ exception statement from your version. */ package java.io; -import gnu.java.nio.channels.FileChannelImpl; +import gnu.java.nio.FileChannelImpl; +import java.nio.ByteBuffer; import java.nio.channels.FileChannel; /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 @@ -107,7 +108,20 @@ public class FileInputStream extends InputStream if (s != null) s.checkRead(file.getPath()); - ch = FileChannelImpl.create(file, FileChannelImpl.READ); + try + { + ch = FileChannelImpl.create(file, FileChannelImpl.READ); + } + catch (FileNotFoundException fnfe) + { + throw fnfe; + } + catch (IOException ioe) + { + FileNotFoundException fnfe = new FileNotFoundException(file.getPath()); + fnfe.initCause(ioe); + throw fnfe; + } } /** @@ -266,7 +280,7 @@ public class FileInputStream extends InputStream || offset + len > buf.length) throw new ArrayIndexOutOfBoundsException(); - return ch.read(buf, offset, len); + return ch.read(ByteBuffer.wrap(buf, offset, len)); } /** diff --git a/libjava/classpath/java/io/FileOutputStream.java b/libjava/classpath/java/io/FileOutputStream.java index 10ea6b536cb..d7561a9d79f 100644 --- a/libjava/classpath/java/io/FileOutputStream.java +++ b/libjava/classpath/java/io/FileOutputStream.java @@ -38,8 +38,9 @@ exception statement from your version. */ package java.io; -import gnu.java.nio.channels.FileChannelImpl; +import gnu.java.nio.FileChannelImpl; +import java.nio.ByteBuffer; import java.nio.channels.FileChannel; /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 @@ -155,10 +156,23 @@ public class FileOutputStream extends OutputStream if (s != null) s.checkWrite(file.getPath()); - ch = FileChannelImpl.create(file, (append - ? FileChannelImpl.WRITE - | FileChannelImpl.APPEND - : FileChannelImpl.WRITE)); + try + { + ch = FileChannelImpl.create(file, (append + ? FileChannelImpl.WRITE + | FileChannelImpl.APPEND + : FileChannelImpl.WRITE)); + } + catch (FileNotFoundException fnfe) + { + throw fnfe; + } + catch (IOException ioe) + { + FileNotFoundException fnfe = new FileNotFoundException(file.getPath()); + fnfe.initCause(ioe); + throw fnfe; + } } /** @@ -266,7 +280,7 @@ public class FileOutputStream extends OutputStream || offset + len > buf.length) throw new ArrayIndexOutOfBoundsException (); - ch.write (buf, offset, len); + ch.write(ByteBuffer.wrap(buf, offset, len)); } /** diff --git a/libjava/classpath/java/io/InputStreamReader.java b/libjava/classpath/java/io/InputStreamReader.java index 936a03c95e0..6c5297f6ba8 100644 --- a/libjava/classpath/java/io/InputStreamReader.java +++ b/libjava/classpath/java/io/InputStreamReader.java @@ -135,6 +135,16 @@ public class InputStreamReader extends Reader private boolean hasSavedSurrogate = false; /** + * A byte array to be reused in read(byte[], int, int). + */ + private byte[] bytesCache; + + /** + * Locks the bytesCache above in read(byte[], int, int). + */ + private Object cacheLock = new Object(); + + /** * This method initializes a new instance of InputStreamReader * to read from the specified stream using the default encoding. * @@ -355,9 +365,21 @@ public class InputStreamReader extends Reader throw new IOException("Reader has been closed"); if (isDone) return -1; - if(decoder != null){ - int totalBytes = (int)((double)length * maxBytesPerChar); - byte[] bytes = new byte[totalBytes]; + if(decoder != null) + { + int totalBytes = (int)((double) length * maxBytesPerChar); + if (byteBuffer != null) + totalBytes = Math.max(totalBytes, byteBuffer.remaining()); + byte[] bytes; + // Fetch cached bytes array if available and big enough. + synchronized(cacheLock) + { + bytes = bytesCache; + if (bytes == null || bytes.length < totalBytes) + bytes = new byte[totalBytes]; + else + bytesCache = null; + } int remaining = 0; if(byteBuffer != null) @@ -410,12 +432,40 @@ public class InputStreamReader extends Reader byteBuffer = null; read = cb.position() - startPos; - return (read <= 0) ? -1 : read; - } else { - byte[] bytes = new byte[length]; + + // Put cached bytes array back if we are finished and the cache + // is null or smaller than the used bytes array. + synchronized (cacheLock) + { + if (byteBuffer == null + && (bytesCache == null || bytesCache.length < bytes.length)) + bytesCache = bytes; + } + return (read <= 0) ? -1 : read; + } + else + { + byte[] bytes; + // Fetch cached bytes array if available and big enough. + synchronized (cacheLock) + { + bytes = bytesCache; + if (bytes == null || length < bytes.length) + bytes = new byte[length]; + else + bytesCache = null; + } + int read = in.read(bytes); for(int i=0;i(); + this.classLookupTable = new Hashtable(); setBlockDataMode(true); readStreamHeader(); } @@ -197,10 +204,9 @@ public class ObjectInputStream extends InputStream case TC_REFERENCE: { if(dump) dumpElement("REFERENCE "); - Integer oid = new Integer(this.realInputStream.readInt()); - if(dump) dumpElementln(Integer.toHexString(oid.intValue())); - ret_val = ((ObjectIdentityWrapper) - this.objectLookupTable.get(oid)).object; + int oid = realInputStream.readInt(); + if(dump) dumpElementln(Integer.toHexString(oid)); + ret_val = lookupHandle(oid); break; } @@ -348,12 +354,12 @@ public class ObjectInputStream extends InputStream int handle = assignNewHandle(obj); Object prevObject = this.currentObject; ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; - TreeSet prevObjectValidators = this.currentObjectValidators; + TreeSet prevObjectValidators = + this.currentObjectValidators; this.currentObject = obj; this.currentObjectValidators = null; - ObjectStreamClass[] hierarchy = - inputGetObjectStreamClasses(clazz); + ObjectStreamClass[] hierarchy = hierarchy(clazz); for (int i = 0; i < hierarchy.length; i++) { @@ -539,8 +545,6 @@ public class ObjectInputStream extends InputStream flags, fields); assignNewHandle(osc); - ClassLoader callersClassLoader = currentLoader(); - for (int i = 0; i < field_count; i++) { if(dump) dumpElement(" TYPE CODE="); @@ -560,12 +564,17 @@ public class ObjectInputStream extends InputStream class_name = String.valueOf(type_code); fields[i] = - new ObjectStreamField(field_name, class_name, callersClassLoader); + new ObjectStreamField(field_name, class_name); } /* Now that fields have been read we may resolve the class * (and read annotation if needed). */ Class clazz = resolveClass(osc); + ClassLoader loader = clazz.getClassLoader(); + for (int i = 0; i < field_count; i++) + { + fields[i].resolveType(loader); + } boolean oldmode = setBlockDataMode(true); osc.setClass(clazz, lookupClass(clazz.getSuperclass())); classLookupTable.put(clazz, osc); @@ -753,7 +762,7 @@ public class ObjectInputStream extends InputStream + "ObjectInputValidation object"); if (currentObjectValidators == null) - currentObjectValidators = new TreeSet(); + currentObjectValidators = new TreeSet(); currentObjectValidators.add(new ValidatorAndPriority(validator, priority)); } @@ -775,7 +784,7 @@ public class ObjectInputStream extends InputStream * * @see java.io.ObjectOutputStream#annotateClass (java.lang.Class) */ - protected Class resolveClass(ObjectStreamClass osc) + protected Class resolveClass(ObjectStreamClass osc) throws ClassNotFoundException, IOException { String name = osc.getName(); @@ -814,7 +823,7 @@ public class ObjectInputStream extends InputStream */ private ClassLoader currentLoader() { - return VMObjectInputStream.currentClassLoader(); + return VMStackWalker.firstNonNullClassLoader(); } /** @@ -842,41 +851,20 @@ public class ObjectInputStream extends InputStream } /** - * Reconstruct class hierarchy the same way - * {@link java.io.ObjectStreamClass#getObjectStreamClasses(Class)} does - * but using lookupClass instead of ObjectStreamClass.lookup. This - * dup is necessary localize the lookup table. Hopefully some future - * rewritings will be able to prevent this. + * Reconstruct class hierarchy the same way {@link + * java.io.ObjectStreamClass#hierarchy} does but using lookupClass + * instead of ObjectStreamClass.lookup. * * @param clazz This is the class for which we want the hierarchy. * * @return An array of valid {@link java.io.ObjectStreamClass} instances which * represent the class hierarchy for clazz. */ - private ObjectStreamClass[] inputGetObjectStreamClasses(Class clazz) - { + private ObjectStreamClass[] hierarchy(Class clazz) + { ObjectStreamClass osc = lookupClass(clazz); - if (osc == null) - return new ObjectStreamClass[0]; - else - { - Vector oscs = new Vector(); - - while (osc != null) - { - oscs.addElement(osc); - osc = osc.getSuper(); - } - - int count = oscs.size(); - ObjectStreamClass[] sorted_oscs = new ObjectStreamClass[count]; - - for (int i = count - 1; i >= 0; i--) - sorted_oscs[count - i - 1] = (ObjectStreamClass) oscs.elementAt(i); - - return sorted_oscs; - } + return osc == null ? new ObjectStreamClass[0] : osc.hierarchy(); } /** @@ -898,12 +886,12 @@ public class ObjectInputStream extends InputStream } - protected Class resolveProxyClass(String[] intfs) + protected Class resolveProxyClass(String[] intfs) throws IOException, ClassNotFoundException { ClassLoader cl = currentLoader(); - Class[] clss = new Class[intfs.length]; + Class[] clss = new Class[intfs.length]; if(cl == null) { for (int i = 0; i < intfs.length; i++) @@ -1560,9 +1548,47 @@ public class ObjectInputStream extends InputStream */ private int assignNewHandle(Object obj) { - this.objectLookupTable.put(new Integer(this.nextOID), - new ObjectIdentityWrapper(obj)); - return this.nextOID++; + int handle = this.nextOID; + this.nextOID = handle + 1; + rememberHandle(obj,handle); + return handle; + } + + /** + * Remember the object associated with the given handle. + * + * @param obj an object + * + * @param handle a handle, must be >= baseWireHandle + * + * @see #lookupHandle + */ + private void rememberHandle(Object obj, int handle) + { + Vector olt = this.objectLookupTable; + handle = handle - baseWireHandle; + + if (olt.size() <= handle) + olt.setSize(handle + 1); + + olt.set(handle, obj); + } + + /** + * Look up the object associated with a given handle. + * + * @param handle a handle, must be >= baseWireHandle + * + * @return the object remembered for handle or null if none. + * + * @see #rememberHandle + */ + private Object lookupHandle(int handle) + { + Vector olt = this.objectLookupTable; + handle = handle - baseWireHandle; + Object result = handle < olt.size() ? olt.get(handle) : null; + return result; } private Object processResolution(ObjectStreamClass osc, Object obj, int handle) @@ -1596,9 +1622,7 @@ public class ObjectInputStream extends InputStream if (this.resolveEnabled) obj = resolveObject(obj); - this.objectLookupTable.put(new Integer(handle), - new ObjectIdentityWrapper(obj)); - + rememberHandle(obj, handle); return obj; } @@ -1875,10 +1899,10 @@ public class ObjectInputStream extends InputStream { try { - Iterator it = currentObjectValidators.iterator(); + Iterator it = currentObjectValidators.iterator(); while(it.hasNext()) { - ValidatorAndPriority vap = (ValidatorAndPriority) it.next(); + ValidatorAndPriority vap = it.next(); ObjectInputValidation validator = vap.validator; validator.validateObject(); } @@ -1931,13 +1955,13 @@ public class ObjectInputStream extends InputStream private boolean useSubclassMethod; private int nextOID; private boolean resolveEnabled; - private Hashtable objectLookupTable; + private Vector objectLookupTable; private Object currentObject; private ObjectStreamClass currentObjectStreamClass; - private TreeSet currentObjectValidators; + private TreeSet currentObjectValidators; private boolean readDataFromBlock; private boolean fieldsAlreadyRead; - private Hashtable classLookupTable; + private Hashtable classLookupTable; private GetField prereadFields; private static boolean dump; diff --git a/libjava/classpath/java/io/ObjectOutputStream.java b/libjava/classpath/java/io/ObjectOutputStream.java index 80d196bce1b..c3c3df9a304 100644 --- a/libjava/classpath/java/io/ObjectOutputStream.java +++ b/libjava/classpath/java/io/ObjectOutputStream.java @@ -39,7 +39,7 @@ exception statement from your version. */ package java.io; -import gnu.java.io.ObjectIdentityWrapper; +import gnu.java.io.ObjectIdentityMap2Int; import gnu.java.lang.reflect.TypeSignature; import gnu.java.security.action.SetAccessibleAction; @@ -47,8 +47,7 @@ import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.security.AccessController; -import java.util.Hashtable; + /** * An ObjectOutputStream can be used to write objects @@ -115,6 +114,11 @@ import java.util.Hashtable; * @see java.io.Externalizable * @see java.io.ObjectInputStream * @see java.io.Serializable + * @author Tom Tromey (tromey@redhat.com) + * @author Jeroen Frijters (jeroen@frijters.net) + * @author Guilhem Lavaux (guilhem@kaffe.org) + * @author Michael Koch (konqueror@gmx.de) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ public class ObjectOutputStream extends OutputStream implements ObjectOutput, ObjectStreamConstants @@ -140,7 +144,7 @@ public class ObjectOutputStream extends OutputStream replacementEnabled = false; isSerializing = false; nextOID = baseWireHandle; - OIDLookupTable = new Hashtable(); + OIDLookupTable = new ObjectIdentityMap2Int(); protocolVersion = defaultProtocolVersion; useSubclassMethod = false; writeStreamHeader(); @@ -207,11 +211,11 @@ public class ObjectOutputStream extends OutputStream break; } - Integer handle = findHandle(obj); - if (handle != null) + int handle = findHandle(obj); + if (handle >= 0) { realOutput.writeByte(TC_REFERENCE); - realOutput.writeInt(handle.intValue()); + realOutput.writeInt(handle); break; } @@ -225,7 +229,7 @@ public class ObjectOutputStream extends OutputStream writeObject (osc); } else - { + {System.err.println("1"); realOutput.writeByte(TC_PROXYCLASSDESC); Class[] intfs = cl.getInterfaces(); realOutput.writeInt(intfs.length); @@ -338,8 +342,7 @@ public class ObjectOutputStream extends OutputStream Object prevObject = this.currentObject; ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; currentObject = obj; - ObjectStreamClass[] hierarchy = - ObjectStreamClass.getObjectStreamClasses(clazz); + ObjectStreamClass[] hierarchy = osc.hierarchy(); for (int i = 0; i < hierarchy.length; i++) { @@ -604,11 +607,11 @@ public class ObjectOutputStream extends OutputStream * * @see ObjectInputStream#resolveClass(java.io.ObjectStreamClass) */ - protected void annotateClass(Class cl) throws IOException + protected void annotateClass(Class cl) throws IOException { } - protected void annotateProxyClass(Class cl) throws IOException + protected void annotateProxyClass(Class cl) throws IOException { } @@ -1104,17 +1107,16 @@ public class ObjectOutputStream extends OutputStream // lookup the handle for OBJ, return null if OBJ doesn't have a // handle yet - private Integer findHandle(Object obj) + private int findHandle(Object obj) { - return (Integer)OIDLookupTable.get(new ObjectIdentityWrapper(obj)); + return OIDLookupTable.get(obj); } // assigns the next availible handle to OBJ private int assignNewHandle(Object obj) { - OIDLookupTable.put(new ObjectIdentityWrapper(obj), - new Integer(nextOID)); + OIDLookupTable.put(obj, nextOID); return nextOID++; } @@ -1216,39 +1218,70 @@ public class ObjectOutputStream extends OutputStream { ObjectStreamField[] fields = osc.fields; boolean oldmode = setBlockDataMode(false); - String field_name; - Class type; - for (int i = 0; i < fields.length; i++) + try { - field_name = fields[i].getName(); - type = fields[i].getType(); - - if (dump) - dumpElementln ("WRITE FIELD: " + field_name + " type=" + type); - - if (type == Boolean.TYPE) - realOutput.writeBoolean(getBooleanField(obj, osc.forClass(), field_name)); - else if (type == Byte.TYPE) - realOutput.writeByte(getByteField(obj, osc.forClass(), field_name)); - else if (type == Character.TYPE) - realOutput.writeChar(getCharField(obj, osc.forClass(), field_name)); - else if (type == Double.TYPE) - realOutput.writeDouble(getDoubleField(obj, osc.forClass(), field_name)); - else if (type == Float.TYPE) - realOutput.writeFloat(getFloatField(obj, osc.forClass(), field_name)); - else if (type == Integer.TYPE) - realOutput.writeInt(getIntField(obj, osc.forClass(), field_name)); - else if (type == Long.TYPE) - realOutput.writeLong(getLongField(obj, osc.forClass(), field_name)); - else if (type == Short.TYPE) - realOutput.writeShort(getShortField(obj, osc.forClass(), field_name)); - else - writeObject(getObjectField(obj, osc.forClass(), field_name, - fields[i].getTypeString ())); + writeFields(obj,fields); + } + catch (IllegalArgumentException _) + { + InvalidClassException e = new InvalidClassException + ("writing fields of class " + osc.forClass().getName()); + e.initCause(_); + throw e; } + catch (IOException e) + { + throw e; + } + catch (Exception _) + { + IOException e = new IOException("Unexpected exception " + _); + e.initCause(_); + throw(e); + } + setBlockDataMode(oldmode); } + + + /** + * Helper function for writeFields(Object,ObjectStreamClass): write + * fields from given fields array. Pass exception on. + * + * @param obj the object to be written + * + * @param fields the fields of obj to be written. + */ + private void writeFields(Object obj, ObjectStreamField[] fields) + throws + IllegalArgumentException, IllegalAccessException, IOException + { + for (int i = 0; i < fields.length; i++) + { + ObjectStreamField osf = fields[i]; + Field field = osf.field; + + if (DEBUG && dump) + dumpElementln ("WRITE FIELD: " + osf.getName() + " type=" + osf.getType()); + + switch (osf.getTypeCode()) + { + case 'Z': realOutput.writeBoolean(field.getBoolean(obj)); break; + case 'B': realOutput.writeByte (field.getByte (obj)); break; + case 'S': realOutput.writeShort (field.getShort (obj)); break; + case 'C': realOutput.writeChar (field.getChar (obj)); break; + case 'I': realOutput.writeInt (field.getInt (obj)); break; + case 'F': realOutput.writeFloat (field.getFloat (obj)); break; + case 'J': realOutput.writeLong (field.getLong (obj)); break; + case 'D': realOutput.writeDouble (field.getDouble (obj)); break; + case 'L': + case '[': writeObject (field.get (obj)); break; + default: + throw new IOException("Unexpected type code " + osf.getTypeCode()); + } + } + } // Toggles writing primitive data to block-data buffer. @@ -1307,248 +1340,6 @@ public class ObjectOutputStream extends OutputStream } } - private boolean getBooleanField(Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField(klass, field_name); - boolean b = f.getBoolean(obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private byte getByteField (Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField (klass, field_name); - byte b = f.getByte (obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private char getCharField (Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField (klass, field_name); - char b = f.getChar (obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private double getDoubleField (Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField (klass, field_name); - double b = f.getDouble (obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private float getFloatField (Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField (klass, field_name); - float b = f.getFloat (obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private int getIntField (Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField (klass, field_name); - int b = f.getInt (obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private long getLongField (Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField (klass, field_name); - long b = f.getLong (obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private short getShortField (Object obj, Class klass, String field_name) - throws IOException - { - try - { - Field f = getField (klass, field_name); - short b = f.getShort (obj); - return b; - } - catch (IllegalArgumentException _) - { - throw new InvalidClassException - ("invalid requested type for field " + field_name + " in class " + klass.getName()); - } - catch (IOException e) - { - throw e; - } - catch (Exception _) - { - throw new IOException("Unexpected exception " + _); - } - } - - private Object getObjectField (Object obj, Class klass, String field_name, - String type_code) throws IOException - { - try - { - Field f = getField (klass, field_name); - ObjectStreamField of = new ObjectStreamField(f.getName(), f.getType()); - - /* if of is primitive something went wrong - * in the check for primitive classes in writeFields. - */ - if (of.isPrimitive()) - throw new InvalidClassException - ("invalid type code for " + field_name + " in class " + klass.getName() + " : object stream field is primitive"); - - if (!of.getTypeString().equals(type_code)) - throw new InvalidClassException - ("invalid type code for " + field_name + " in class " + klass.getName() + " : object stream field " + of + " has type string " + of.getTypeString() + " instead of " + type_code); - - Object o = f.get (obj); - // FIXME: We should check the type_code here - return o; - } - catch (IOException e) - { - throw e; - } - catch (Exception e) - { - throw new IOException (); - } - } - - private Field getField (Class klass, String name) - throws java.io.InvalidClassException - { - try - { - final Field f = klass.getDeclaredField(name); - setAccessible.setMember(f); - AccessController.doPrivileged(setAccessible); - return f; - } - catch (java.lang.NoSuchFieldException e) - { - throw new InvalidClassException - ("no field called " + name + " in class " + klass.getName()); - } - } - private void dumpElementln (String msg) { for (int i = 0; i < depth; i++) @@ -1576,7 +1367,7 @@ public class ObjectOutputStream extends OutputStream private boolean replacementEnabled; private boolean isSerializing; private int nextOID; - private Hashtable OIDLookupTable; + private ObjectIdentityMap2Int OIDLookupTable; private int protocolVersion; private boolean useSubclassMethod; private SetAccessibleAction setAccessible = new SetAccessibleAction(); diff --git a/libjava/classpath/java/io/ObjectStreamClass.java b/libjava/classpath/java/io/ObjectStreamClass.java index abb26d839ad..52a1ad42873 100644 --- a/libjava/classpath/java/io/ObjectStreamClass.java +++ b/libjava/classpath/java/io/ObjectStreamClass.java @@ -1,6 +1,6 @@ /* ObjectStreamClass.java -- Class used to write class information about serialized objects. - Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -59,8 +59,14 @@ import java.security.Security; import java.util.Arrays; import java.util.Comparator; import java.util.Hashtable; -import java.util.Vector; +/** + * @author Tom Tromey (tromey@redhat.com) + * @author Jeroen Frijters (jeroen@frijters.net) + * @author Guilhem Lavaux (guilhem@kaffe.org) + * @author Michael Koch (konqueror@gmx.de) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ public class ObjectStreamClass implements Serializable { static final ObjectStreamField[] INVALID_FIELDS = new ObjectStreamField[0]; @@ -80,7 +86,7 @@ public class ObjectStreamClass implements Serializable * * @see java.io.Serializable */ - public static ObjectStreamClass lookup(Class cl) + public static ObjectStreamClass lookup(Class cl) { if (cl == null) return null; @@ -132,7 +138,7 @@ public class ObjectStreamClass implements Serializable * * @see java.io.ObjectInputStream */ - public Class forClass() + public Class forClass() { return clazz; } @@ -235,37 +241,45 @@ public class ObjectStreamClass implements Serializable return superClass; } - - // returns an array of ObjectStreamClasses that represent the super - // classes of CLAZZ and CLAZZ itself in order from most super to - // CLAZZ. ObjectStreamClass[0] is the highest superclass of CLAZZ - // that is serializable. - static ObjectStreamClass[] getObjectStreamClasses(Class clazz) + /** + * returns an array of ObjectStreamClasses that represent the super + * classes of the class represented by this and the class + * represented by this itself in order from most super to this. + * ObjectStreamClass[0] is the highest superclass of this that is + * serializable. + * + * The result of consecutive calls this hierarchy() will be the same + * array instance. + * + * @return an array of ObjectStreamClass representing the + * super-class hierarchy of serializable classes. + */ + ObjectStreamClass[] hierarchy() { - ObjectStreamClass osc = ObjectStreamClass.lookup(clazz); - - if (osc == null) - return new ObjectStreamClass[0]; - else - { - Vector oscs = new Vector(); - - while (osc != null) - { - oscs.addElement (osc); - osc = osc.getSuper(); - } - - int count = oscs.size(); - ObjectStreamClass[] sorted_oscs = new ObjectStreamClass[ count ]; - - for (int i = count - 1; i >= 0; i--) - sorted_oscs[ count - i - 1 ] = (ObjectStreamClass) oscs.elementAt(i); - - return sorted_oscs; + ObjectStreamClass[] result = hierarchy; + if (result == null) + { + int d = 0; + + for(ObjectStreamClass osc = this; osc != null; osc = osc.getSuper()) + d++; + + result = new ObjectStreamClass[d]; + + for (ObjectStreamClass osc = this; osc != null; osc = osc.getSuper()) + { + result[--d] = osc; + } + + hierarchy = result; } + return result; } + /** + * Cache for hierarchy() result. + */ + private ObjectStreamClass[] hierarchy = null; // Returns an integer that consists of bit-flags that indicate // properties of the class represented by this ObjectStreamClass. @@ -298,7 +312,7 @@ public class ObjectStreamClass implements Serializable * already set UID is found. */ void setClass(Class cl, ObjectStreamClass superClass) throws InvalidClassException - { + {hierarchy = null; this.clazz = cl; cacheMethods(); @@ -309,8 +323,8 @@ public class ObjectStreamClass implements Serializable else { // Check that the actual UID of the resolved class matches the UID from - // the stream. - if (uid != class_uid) + // the stream. Mismatches for array classes are ignored. + if (!cl.isArray() && uid != class_uid) { String msg = cl + ": Local class not compatible: stream serialVersionUID=" @@ -425,6 +439,7 @@ public class ObjectStreamClass implements Serializable void setSuperclass (ObjectStreamClass osc) { superClass = osc; + hierarchy = null; } void calculateOffsets() @@ -547,21 +562,62 @@ outer: return null; } - private void cacheMethods() + /** + * Helper routine to check if a class was loaded by boot or + * application class loader. Classes for which this is not the case + * should not be cached since caching prevent class file garbage + * collection. + * + * @param cl a class + * + * @return true if cl was loaded by boot or application class loader, + * false if cl was loaded by a user class loader. + */ + private static boolean loadedByBootOrApplicationClassLoader(Class cl) { - Method[] methods = forClass().getDeclaredMethods(); + ClassLoader l = cl.getClassLoader(); + return + ( l == null /* boot loader */ ) + || (l == ClassLoader.getSystemClassLoader() /* application loader */); + } - readObjectMethod = findMethod(methods, "readObject", - new Class[] { ObjectInputStream.class }, - Void.TYPE, true); - writeObjectMethod = findMethod(methods, "writeObject", - new Class[] { ObjectOutputStream.class }, - Void.TYPE, true); + static Hashtable methodCache = new Hashtable(); + + static final Class[] readObjectSignature = { ObjectInputStream.class }; + static final Class[] writeObjectSignature = { ObjectOutputStream.class }; - // readResolve and writeReplace can be in parent classes, as long as they - // are accessible from this class. - readResolveMethod = findAccessibleMethod("readResolve", forClass()); - writeReplaceMethod = findAccessibleMethod("writeReplace", forClass()); + private void cacheMethods() + { + Class cl = forClass(); + Method[] cached = (Method[]) methodCache.get(cl); + if (cached == null) + { + cached = new Method[4]; + Method[] methods = cl.getDeclaredMethods(); + + cached[0] = findMethod(methods, "readObject", + readObjectSignature, + Void.TYPE, true); + cached[1] = findMethod(methods, "writeObject", + writeObjectSignature, + Void.TYPE, true); + + // readResolve and writeReplace can be in parent classes, as long as they + // are accessible from this class. + cached[2] = findAccessibleMethod("readResolve", cl); + cached[3] = findAccessibleMethod("writeReplace", cl); + + /* put in cache if classes not loaded by user class loader. + * For a user class loader, the cache may otherwise grow + * without limit. + */ + if (loadedByBootOrApplicationClassLoader(cl)) + methodCache.put(cl,cached); + } + readObjectMethod = cached[0]; + writeObjectMethod = cached[1]; + readResolveMethod = cached[2]; + writeReplaceMethod = cached[3]; } private ObjectStreamClass(Class cl) @@ -713,152 +769,208 @@ outer: calculateOffsets(); } + static Hashtable uidCache = new Hashtable(); + // Returns the serial version UID defined by class, or if that // isn't present, calculates value of serial version UID. private long getClassUID(Class cl) { - try + long result = 0; + Long cache = (Long) uidCache.get(cl); + if (cache != null) + result = cache.longValue(); + else { - // Use getDeclaredField rather than getField, since serialVersionUID - // may not be public AND we only want the serialVersionUID of this - // class, not a superclass or interface. - final Field suid = cl.getDeclaredField("serialVersionUID"); - SetAccessibleAction setAccessible = new SetAccessibleAction(suid); - AccessController.doPrivileged(setAccessible); - int modifiers = suid.getModifiers(); - - if (Modifier.isStatic(modifiers) - && Modifier.isFinal(modifiers) - && suid.getType() == Long.TYPE) - return suid.getLong(null); + try + { + result = getClassUIDFromField(cl); + } + catch (NoSuchFieldException ignore) + { + try + { + result = calculateClassUID(cl); + } + catch (NoSuchAlgorithmException e) + { + throw new RuntimeException + ("The SHA algorithm was not found to use in computing the Serial Version UID for class " + + cl.getName(), e); + } + catch (IOException ioe) + { + throw new RuntimeException(ioe); + } + } + + if (loadedByBootOrApplicationClassLoader(cl)) + uidCache.put(cl,new Long(result)); } - catch (NoSuchFieldException ignore) + return result; + } + + /** + * Search for a serialVersionUID field in the given class and read + * its value. + * + * @return the contents of the serialVersionUID field + * + * @throws NoSuchFieldException if such a field does not exist or is + * not static, not final, not of type Long or not accessible. + */ + long getClassUIDFromField(Class cl) + throws NoSuchFieldException + { + long result; + + try { + // Use getDeclaredField rather than getField, since serialVersionUID + // may not be public AND we only want the serialVersionUID of this + // class, not a superclass or interface. + final Field suid = cl.getDeclaredField("serialVersionUID"); + SetAccessibleAction setAccessible = new SetAccessibleAction(suid); + AccessController.doPrivileged(setAccessible); + int modifiers = suid.getModifiers(); + + if (Modifier.isStatic(modifiers) + && Modifier.isFinal(modifiers) + && suid.getType() == Long.TYPE) + result = suid.getLong(null); + else + throw new NoSuchFieldException(); } catch (IllegalAccessException ignore) { + throw new NoSuchFieldException(); } - // cl didn't define serialVersionUID, so we have to compute it - try - { - MessageDigest md; - try - { - md = MessageDigest.getInstance("SHA"); - } - catch (NoSuchAlgorithmException e) - { - // If a provider already provides SHA, use it; otherwise, use this. - Gnu gnuProvider = new Gnu(); - Security.addProvider(gnuProvider); - md = MessageDigest.getInstance("SHA"); - } - - DigestOutputStream digest_out = - new DigestOutputStream(nullOutputStream, md); - DataOutputStream data_out = new DataOutputStream(digest_out); - - data_out.writeUTF(cl.getName()); - - int modifiers = cl.getModifiers(); - // just look at interesting bits - modifiers = modifiers & (Modifier.ABSTRACT | Modifier.FINAL - | Modifier.INTERFACE | Modifier.PUBLIC); - data_out.writeInt(modifiers); - - // Pretend that an array has no interfaces, because when array - // serialization was defined (JDK 1.1), arrays didn't have it. - if (! cl.isArray()) - { - Class[] interfaces = cl.getInterfaces(); - Arrays.sort(interfaces, interfaceComparator); - for (int i = 0; i < interfaces.length; i++) - data_out.writeUTF(interfaces[i].getName()); - } - - Field field; - Field[] fields = cl.getDeclaredFields(); - Arrays.sort(fields, memberComparator); - for (int i = 0; i < fields.length; i++) - { - field = fields[i]; - modifiers = field.getModifiers(); - if (Modifier.isPrivate(modifiers) - && (Modifier.isStatic(modifiers) - || Modifier.isTransient(modifiers))) - continue; - - data_out.writeUTF(field.getName()); - data_out.writeInt(modifiers); - data_out.writeUTF(TypeSignature.getEncodingOfClass (field.getType())); - } - - // write class initializer method if present - if (VMObjectStreamClass.hasClassInitializer(cl)) - { - data_out.writeUTF(""); - data_out.writeInt(Modifier.STATIC); - data_out.writeUTF("()V"); - } - - Constructor constructor; - Constructor[] constructors = cl.getDeclaredConstructors(); - Arrays.sort (constructors, memberComparator); - for (int i = 0; i < constructors.length; i++) - { - constructor = constructors[i]; - modifiers = constructor.getModifiers(); - if (Modifier.isPrivate(modifiers)) - continue; - - data_out.writeUTF(""); - data_out.writeInt(modifiers); - - // the replacement of '/' with '.' was needed to make computed - // SUID's agree with those computed by JDK - data_out.writeUTF - (TypeSignature.getEncodingOfConstructor(constructor).replace('/','.')); - } - - Method method; - Method[] methods = cl.getDeclaredMethods(); - Arrays.sort(methods, memberComparator); - for (int i = 0; i < methods.length; i++) - { - method = methods[i]; - modifiers = method.getModifiers(); - if (Modifier.isPrivate(modifiers)) - continue; - - data_out.writeUTF(method.getName()); - data_out.writeInt(modifiers); - - // the replacement of '/' with '.' was needed to make computed - // SUID's agree with those computed by JDK - data_out.writeUTF - (TypeSignature.getEncodingOfMethod(method).replace('/', '.')); - } - - data_out.close(); - byte[] sha = md.digest(); - long result = 0; - int len = sha.length < 8 ? sha.length : 8; - for (int i = 0; i < len; i++) - result += (long) (sha[i] & 0xFF) << (8 * i); + return result; + } - return result; + /** + * Calculate class serial version UID for a class that does not + * define serialVersionUID: + * + * @param cl a class + * + * @return the calculated serial varsion UID. + * + * @throws NoSuchAlgorithmException if SHA algorithm not found + * + * @throws IOException if writing to the DigestOutputStream causes + * an IOException. + */ + long calculateClassUID(Class cl) + throws NoSuchAlgorithmException, IOException + { + long result; + MessageDigest md; + try + { + md = MessageDigest.getInstance("SHA"); } catch (NoSuchAlgorithmException e) { - throw new RuntimeException - ("The SHA algorithm was not found to use in computing the Serial Version UID for class " - + cl.getName(), e); + // If a provider already provides SHA, use it; otherwise, use this. + Gnu gnuProvider = new Gnu(); + Security.addProvider(gnuProvider); + md = MessageDigest.getInstance("SHA"); + } + + DigestOutputStream digest_out = + new DigestOutputStream(nullOutputStream, md); + DataOutputStream data_out = new DataOutputStream(digest_out); + + data_out.writeUTF(cl.getName()); + + int modifiers = cl.getModifiers(); + // just look at interesting bits + modifiers = modifiers & (Modifier.ABSTRACT | Modifier.FINAL + | Modifier.INTERFACE | Modifier.PUBLIC); + data_out.writeInt(modifiers); + + // Pretend that an array has no interfaces, because when array + // serialization was defined (JDK 1.1), arrays didn't have it. + if (! cl.isArray()) + { + Class[] interfaces = cl.getInterfaces(); + Arrays.sort(interfaces, interfaceComparator); + for (int i = 0; i < interfaces.length; i++) + data_out.writeUTF(interfaces[i].getName()); + } + + Field field; + Field[] fields = cl.getDeclaredFields(); + Arrays.sort(fields, memberComparator); + for (int i = 0; i < fields.length; i++) + { + field = fields[i]; + modifiers = field.getModifiers(); + if (Modifier.isPrivate(modifiers) + && (Modifier.isStatic(modifiers) + || Modifier.isTransient(modifiers))) + continue; + + data_out.writeUTF(field.getName()); + data_out.writeInt(modifiers); + data_out.writeUTF(TypeSignature.getEncodingOfClass (field.getType())); + } + + // write class initializer method if present + if (VMObjectStreamClass.hasClassInitializer(cl)) + { + data_out.writeUTF(""); + data_out.writeInt(Modifier.STATIC); + data_out.writeUTF("()V"); } - catch (IOException ioe) + + Constructor constructor; + Constructor[] constructors = cl.getDeclaredConstructors(); + Arrays.sort (constructors, memberComparator); + for (int i = 0; i < constructors.length; i++) + { + constructor = constructors[i]; + modifiers = constructor.getModifiers(); + if (Modifier.isPrivate(modifiers)) + continue; + + data_out.writeUTF(""); + data_out.writeInt(modifiers); + + // the replacement of '/' with '.' was needed to make computed + // SUID's agree with those computed by JDK + data_out.writeUTF + (TypeSignature.getEncodingOfConstructor(constructor).replace('/','.')); + } + + Method method; + Method[] methods = cl.getDeclaredMethods(); + Arrays.sort(methods, memberComparator); + for (int i = 0; i < methods.length; i++) { - throw new RuntimeException(ioe); + method = methods[i]; + modifiers = method.getModifiers(); + if (Modifier.isPrivate(modifiers)) + continue; + + data_out.writeUTF(method.getName()); + data_out.writeInt(modifiers); + + // the replacement of '/' with '.' was needed to make computed + // SUID's agree with those computed by JDK + data_out.writeUTF + (TypeSignature.getEncodingOfMethod(method).replace('/', '.')); } + + data_out.close(); + byte[] sha = md.digest(); + result = 0; + int len = sha.length < 8 ? sha.length : 8; + for (int i = 0; i < len; i++) + result += (long) (sha[i] & 0xFF) << (8 * i); + + return result; } /** @@ -948,7 +1060,8 @@ outer: public static final ObjectStreamField[] NO_FIELDS = {}; - private static Hashtable classLookupTable = new Hashtable(); + private static Hashtable classLookupTable + = new Hashtable(); private static final NullOutputStream nullOutputStream = new NullOutputStream(); private static final Comparator interfaceComparator = new InterfaceComparator(); private static final Comparator memberComparator = new MemberComparator(); @@ -956,7 +1069,7 @@ outer: Class[] writeMethodArgTypes = { java.io.ObjectOutputStream.class }; private ObjectStreamClass superClass; - private Class clazz; + private Class clazz; private String name; private long uid; private byte flags; diff --git a/libjava/classpath/java/io/ObjectStreamField.java b/libjava/classpath/java/io/ObjectStreamField.java index 61ccdc7db76..91f557870a5 100644 --- a/libjava/classpath/java/io/ObjectStreamField.java +++ b/libjava/classpath/java/io/ObjectStreamField.java @@ -1,5 +1,5 @@ /* ObjectStreamField.java -- Class used to store name and class of fields - Copyright (C) 1998, 1999, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,17 +48,24 @@ import java.security.PrivilegedAction; * This class intends to describe the field of a class for the serialization * subsystem. Serializable fields in a serializable class can be explicitly * exported using an array of ObjectStreamFields. + * + * @author Tom Tromey (tromey@redhat.com) + * @author Jeroen Frijters (jeroen@frijters.net) + * @author Guilhem Lavaux (guilhem@kaffe.org) + * @author Michael Koch (konqueror@gmx.de) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ -public class ObjectStreamField implements Comparable +public class ObjectStreamField + implements Comparable { private String name; - private Class type; + private Class type; private String typename; private int offset = -1; // XXX make sure this is correct private boolean unshared; private boolean persistent = false; private boolean toset = true; - private Field field; + Field field; ObjectStreamField (Field field) { @@ -74,7 +81,7 @@ public class ObjectStreamField implements Comparable * @param name Name of the field to export. * @param type Type of the field in the concerned class. */ - public ObjectStreamField (String name, Class type) + public ObjectStreamField (String name, Class type) { this (name, type, false); } @@ -88,7 +95,7 @@ public class ObjectStreamField implements Comparable * @param type Type of the field in the concerned class. * @param unshared true if field will be unshared, false otherwise. */ - public ObjectStreamField (String name, Class type, boolean unshared) + public ObjectStreamField (String name, Class type, boolean unshared) { if (name == null) throw new NullPointerException(); @@ -111,28 +118,10 @@ public class ObjectStreamField implements Comparable { this.name = name; this.typename = typename; - try - { - type = TypeSignature.getClassForEncoding(typename); - } - catch(ClassNotFoundException e) - { - } } - - /** - * There are many cases you can not get java.lang.Class from typename - * if your context class loader cann not load it, then use typename to - * construct the field. - * - * @param name Name of the field to export. - * @param typename The coded name of the type for this field. - * @param loader The class loader to use to resolve class names. - */ - ObjectStreamField (String name, String typename, ClassLoader loader) + + void resolveType(ClassLoader loader) { - this.name = name; - this.typename = typename; try { type = TypeSignature.getClassForEncoding(typename, true, loader); @@ -141,7 +130,7 @@ public class ObjectStreamField implements Comparable { } } - + /** * This method returns the name of the field represented by the * ObjectStreamField instance. @@ -159,7 +148,7 @@ public class ObjectStreamField implements Comparable * * @return A class representing the type of the field. */ - public Class getType () + public Class getType () { return type; } @@ -347,7 +336,7 @@ public class ObjectStreamField implements Comparable */ void checkFieldType() throws InvalidClassException { - Class ftype = field.getType(); + Class ftype = field.getType(); if (!ftype.isAssignableFrom(type)) throw new InvalidClassException diff --git a/libjava/classpath/java/io/OutputStreamWriter.java b/libjava/classpath/java/io/OutputStreamWriter.java index 572683834be..26363401f01 100644 --- a/libjava/classpath/java/io/OutputStreamWriter.java +++ b/libjava/classpath/java/io/OutputStreamWriter.java @@ -223,6 +223,7 @@ public class OutputStreamWriter extends Writer encoder.onMalformedInput(CodingErrorAction.REPLACE); encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); outputBuffer = CharBuffer.allocate(BUFFER_SIZE); + encodingName = EncodingHelper.getOldCanonical(cs.name()); } /** @@ -240,6 +241,11 @@ public class OutputStreamWriter extends Writer this.out = out; encoder = enc; outputBuffer = CharBuffer.allocate(BUFFER_SIZE); + Charset cs = enc.charset(); + if (cs == null) + encodingName = "US-ASCII"; + else + encodingName = EncodingHelper.getOldCanonical(cs.name()); } /** diff --git a/libjava/classpath/java/io/PipedInputStream.java b/libjava/classpath/java/io/PipedInputStream.java index 523ae2c70d3..c0396d206c6 100644 --- a/libjava/classpath/java/io/PipedInputStream.java +++ b/libjava/classpath/java/io/PipedInputStream.java @@ -279,6 +279,10 @@ public class PipedInputStream extends InputStream if (closed) throw new IOException ("Pipe closed"); + // Don't block if nothing was requested. + if (len == 0) + return 0; + // If the buffer is empty, wait until there is something in the pipe // to read. try diff --git a/libjava/classpath/java/io/PipedReader.java b/libjava/classpath/java/io/PipedReader.java index 90fc10f672d..8a3363a6004 100644 --- a/libjava/classpath/java/io/PipedReader.java +++ b/libjava/classpath/java/io/PipedReader.java @@ -261,6 +261,10 @@ public class PipedReader extends Reader if (closed) throw new IOException ("Pipe closed"); + // Don't block if nothing was requested. + if (len == 0) + return 0; + // If the buffer is empty, wait until there is something in the pipe // to read. try diff --git a/libjava/classpath/java/io/PrintStream.java b/libjava/classpath/java/io/PrintStream.java index 98461db2ba8..2d747c8c8f4 100644 --- a/libjava/classpath/java/io/PrintStream.java +++ b/libjava/classpath/java/io/PrintStream.java @@ -39,6 +39,9 @@ exception statement from your version. */ package java.io; +import java.util.Locale; +import java.util.Formatter; + import gnu.classpath.SystemProperties; /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 @@ -58,8 +61,9 @@ import gnu.classpath.SystemProperties; * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ -public class PrintStream extends FilterOutputStream +public class PrintStream extends FilterOutputStream implements Appendable { /* Notice the implementation is quite similar to OutputStreamWriter. * This leads to some minor duplication, because neither inherits @@ -67,7 +71,7 @@ public class PrintStream extends FilterOutputStream // Line separator string. private static final char[] line_separator - = SystemProperties.getProperty("line.separator").toCharArray(); + = SystemProperties.getProperty("line.separator", "\n").toCharArray(); /** * Encoding name @@ -620,5 +624,51 @@ public class PrintStream extends FilterOutputStream setError (); } } -} // class PrintStream + /** @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/classpath/java/io/PrintWriter.java b/libjava/classpath/java/io/PrintWriter.java index 5667e705004..5b4294cbaa7 100644 --- a/libjava/classpath/java/io/PrintWriter.java +++ b/libjava/classpath/java/io/PrintWriter.java @@ -1,5 +1,5 @@ /* PrintWriter.java -- prints primitive values and objects to a stream as text - Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation + Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation This file is part of GNU Classpath. @@ -37,6 +37,9 @@ exception statement from your version. */ package java.io; +import java.util.Locale; +import java.util.Formatter; + /* Written using "Java Class Libraries", 2nd edition, plus online * API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. @@ -636,5 +639,52 @@ public class PrintWriter extends Writer { write(str, 0, str.length()); } + + /** @since 1.5 */ + public PrintWriter append(char c) + { + write(c); + return this; + } + + /** @since 1.5 */ + public PrintWriter append(CharSequence cs) + { + write(cs == null ? "null" : cs.toString()); + return this; + } + + /** @since 1.5 */ + public PrintWriter append(CharSequence cs, int start, int end) + { + write(cs == null ? "null" : cs.subSequence(start, end).toString()); + return this; + } + + /** @since 1.5 */ + public PrintWriter printf(String format, Object... args) + { + return format(format, args); + } + + /** @since 1.5 */ + public PrintWriter printf(Locale locale, String format, Object... args) + { + return format(locale, format, args); + } + + /** @since 1.5 */ + public PrintWriter format(String format, Object... args) + { + return format(Locale.getDefault(), format, args); + } + + /** @since 1.5 */ + public PrintWriter format(Locale locale, String format, Object... args) + { + Formatter f = new Formatter(this, locale); + f.format(format, args); + return this; + } } diff --git a/libjava/classpath/java/io/RandomAccessFile.java b/libjava/classpath/java/io/RandomAccessFile.java index 84ee5dec01e..036fc8c6bda 100644 --- a/libjava/classpath/java/io/RandomAccessFile.java +++ b/libjava/classpath/java/io/RandomAccessFile.java @@ -38,7 +38,7 @@ exception statement from your version. */ package java.io; -import gnu.java.nio.channels.FileChannelImpl; +import gnu.java.nio.FileChannelImpl; import java.nio.channels.FileChannel; @@ -58,7 +58,7 @@ import java.nio.channels.FileChannel; * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) */ -public class RandomAccessFile implements DataOutput, DataInput +public class RandomAccessFile implements DataOutput, DataInput, Closeable { // The underlying file. @@ -122,7 +122,20 @@ public class RandomAccessFile implements DataOutput, DataInput s.checkWrite(fileName); } - ch = FileChannelImpl.create(file, fdmode); + try + { + ch = FileChannelImpl.create(file, fdmode); + } + catch (FileNotFoundException fnfe) + { + throw fnfe; + } + catch (IOException ioe) + { + FileNotFoundException fnfe = new FileNotFoundException(file.getPath()); + fnfe.initCause(ioe); + throw fnfe; + } fd = new FileDescriptor(ch); if ((fdmode & FileChannelImpl.WRITE) != 0) out = new DataOutputStream (new FileOutputStream (fd)); diff --git a/libjava/classpath/java/io/Reader.java b/libjava/classpath/java/io/Reader.java index 7970d9a2434..6da1813c6ca 100644 --- a/libjava/classpath/java/io/Reader.java +++ b/libjava/classpath/java/io/Reader.java @@ -1,5 +1,5 @@ /* Reader.java -- base class of classes that read input as a stream of chars - Copyright (C) 1998, 1999, 2000, 2003 Free Software Foundation + Copyright (C) 1998, 1999, 2000, 2003, 2004, 2005 Free Software Foundation This file is part of GNU Classpath. @@ -37,6 +37,8 @@ exception statement from your version. */ package java.io; +import java.nio.CharBuffer; + /* Written using "Java Class Libraries", 2nd edition, plus online * API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Believed complete and correct. @@ -53,7 +55,7 @@ package java.io; * @date April 21, 1998. * @author Aaron M. Renn (arenn@urbanophile.com) */ -public abstract class Reader +public abstract class Reader implements Closeable, Readable { /** * This is the Object used for synchronizing critical code @@ -152,6 +154,19 @@ public abstract class Reader return count > 0 ? buf[0] : -1; } + /** @since 1.5 */ + public int read(CharBuffer buffer) throws IOException + { + // We want to call put(), so we don't manipulate the CharBuffer + // directly. + int rem = buffer.remaining(); + char[] buf = new char[rem]; + int result = read(buf, 0, rem); + if (result != -1) + buffer.put(buf, 0, result); + return result; + } + /** * Closes the stream. Any futher attempts to read from the * stream may generate an IOException. diff --git a/libjava/classpath/java/io/SequenceInputStream.java b/libjava/classpath/java/io/SequenceInputStream.java index 7fefe243263..5ff85e9893f 100644 --- a/libjava/classpath/java/io/SequenceInputStream.java +++ b/libjava/classpath/java/io/SequenceInputStream.java @@ -1,5 +1,5 @@ /* SequenceInputStream.java -- Reads multiple input streams in sequence - Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,8 +71,11 @@ public class SequenceInputStream extends InputStream /** Secondary input stream; not used if constructed w/ enumeration. */ private InputStream in2; - /** The enumeration handle; not used if constructed w/ 2 explicit input streams. */ - private Enumeration e; + /** + * The enumeration handle; not used if constructed w/ 2 explicit + * input streams. + */ + private Enumeration e; /** * This method creates a new SequenceInputStream that obtains @@ -82,10 +85,10 @@ public class SequenceInputStream extends InputStream * @param e An Enumeration that will return a list of * InputStreams to read in sequence */ - public SequenceInputStream(Enumeration e) + public SequenceInputStream(Enumeration e) { this.e = e; - in = (InputStream) e.nextElement(); + in = e.nextElement(); in2 = null; } @@ -207,14 +210,13 @@ public class SequenceInputStream extends InputStream if (e != null) { if (e.hasMoreElements()) - nextIn = (InputStream) e.nextElement(); + nextIn = e.nextElement(); + } + else if (in2 != null) + { + nextIn = in2; + in2 = null; } - else - if (in2 != null) - { - nextIn = in2; - in2 = null; - } return nextIn; } diff --git a/libjava/classpath/java/io/StringWriter.java b/libjava/classpath/java/io/StringWriter.java index a1e9aeb6bd2..5a16e63ea7a 100644 --- a/libjava/classpath/java/io/StringWriter.java +++ b/libjava/classpath/java/io/StringWriter.java @@ -183,6 +183,27 @@ public class StringWriter extends Writer buffer.append(str.substring(offset, offset + len)); } + /** @since 1.5 */ + public StringWriter append(char c) + { + write(c); + return this; + } + + /** @since 1.5 */ + public StringWriter append(CharSequence cs) + { + write(cs == null ? "null" : cs.toString()); + return this; + } + + /** @since 1.5 */ + public StringWriter append(CharSequence cs, int start, int end) + { + write(cs == null ? "null" : cs.subSequence(start, end).toString()); + return this; + } + /** * This is the StringBuffer that we use to store bytes that * are written. diff --git a/libjava/classpath/java/io/Writer.java b/libjava/classpath/java/io/Writer.java index f153e31cfed..660b6908935 100644 --- a/libjava/classpath/java/io/Writer.java +++ b/libjava/classpath/java/io/Writer.java @@ -53,7 +53,7 @@ package java.io; * @author Aaron M. Renn (arenn@urbanophile.com) * @author Per Bothner (bothner@cygnus.com) */ -public abstract class Writer +public abstract class Writer implements Appendable, Closeable, Flushable { /** * This is the object used to synchronize criticial code sections for @@ -188,5 +188,24 @@ public abstract class Writer write(buf, 0, len); } -} // class Writer + /** @since 1.5 */ + public Writer append(char c) throws IOException + { + write(c); + return this; + } + /** @since 1.5 */ + public Writer append(CharSequence cs) throws IOException + { + write(cs == null ? "null" : cs.toString()); + return this; + } + + /** @since 1.5 */ + public Writer append(CharSequence cs, int start, int end) throws IOException + { + write(cs == null ? "null" : cs.subSequence(start, end).toString()); + return this; + } +} diff --git a/libjava/classpath/java/io/class-dependencies.conf b/libjava/classpath/java/io/class-dependencies.conf new file mode 100644 index 00000000000..633bb174941 --- /dev/null +++ b/libjava/classpath/java/io/class-dependencies.conf @@ -0,0 +1,100 @@ +# This property file contains dependencies of classes, methods, and +# field on other methods or classes. +# +# Syntax: +# +# : [... ] +# +# means that when is included, (... ) must +# be included as well. +# +# and are of the form +# +# +# +# or just +# +# +# +# Within dependencies, variables can be used. A variable is defined as +# follows: +# +# {variable}: value1 value2 ... value +# +# variables can be used on the right side of dependencies as follows: +# +# : com.bla.blu.{variable}.Class.m()V +# +# The use of the variable will expand to dependencies of the form +# +# : com.bla.blu.value1.Class.m()V +# : com.bla.blu.value2.Class.m()V +# ... +# : com.bla.blu.value.Class.m()V +# +# Variables can be redefined when building a system to select the +# required support for features like encodings, protocols, etc. +# +# Hints: +# +# - For methods and fields, the signature is mandatory. For +# specification, please see the Java Virtual Machine Specification by +# SUN. Unlike in the spec, field signatures (types) are in brackets. +# +# - Package names must be separated by '/' (and not '.'). E.g., +# java/lang/Class (this is necessary, because the '.' is used to +# separate method or field names from classes) +# +# - In case refers to a class, only the class itself will be +# included in the resulting binary, NOT necessarily all its methods +# and fields. If you want to refer to all methods and fields, you can +# write class.* as an abbreviation. +# +# - Abbreviations for packages are also possible: my/package/* means all +# methods and fields of all classes in my/package. +# +# - A line with a trailing '\' continues in the next line. + +java/io/File: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/io/IOException.(Ljava/lang/String;)V \ + java/lang/IllegalArgumentException.(Ljava/lang/String;)V + +java/io/FileDescriptor: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/lang/IllegalArgumentException.(Ljava/lang/String;)V \ + java/io/IOException.(Ljava/lang/String;)V + +java/io/FileInputStream: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/io/IOException.(Ljava/lang/String;)V \ + java/io/FileNotFoundException.(Ljava/lang/String;)V + +java/io/FileOutputStream: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/io/FileNotFoundException.(Ljava/lang/String;)V \ + java/io/IOException.(Ljava/lang/String;)V + +java/io/ObjectInputStream: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/lang/SecurityManager.currentClassLoader()Ljava/lang/ClassLoader; \ + java/lang/IllegalArgumentException.(Ljava/lang/String;)V + +java/io/ObjectOutputStream: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/lang/SecurityManager.currentClassLoader()Ljava/lang/ClassLoader; \ + java/lang/IllegalArgumentException.(Ljava/lang/String;)V + +java/io/RandomAccessFile: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/io/FileNotFoundException.(Ljava/lang/String;)V \ + java/io/IOException.(Ljava/lang/String;)V + +# end of file diff --git a/libjava/classpath/java/lang/Boolean.java b/libjava/classpath/java/lang/Boolean.java index 23992525c9d..2b0236d1b9b 100644 --- a/libjava/classpath/java/lang/Boolean.java +++ b/libjava/classpath/java/lang/Boolean.java @@ -1,5 +1,5 @@ /* Boolean.java -- object wrapper for boolean - Copyright (C) 1998, 2001, 2002, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,7 +49,7 @@ import java.io.Serializable; * @since 1.0 * @status updated to 1.5 */ -public final class Boolean implements Serializable, Comparable +public final class Boolean implements Serializable, Comparable { /** * Compatible with JDK 1.0.2+. @@ -78,7 +78,7 @@ public final class Boolean implements Serializable, Comparable * * @since 1.1 */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('Z'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('Z'); /** * The immutable value of this Boolean. @@ -237,14 +237,6 @@ public final class Boolean implements Serializable, Comparable } /** - * Bridge method - */ - public int compareTo(Object other) - { - return compareTo((Boolean)other); - } - - /** * If the String argument is "true", ignoring case, return true. * Otherwise, return false. * @@ -255,5 +247,5 @@ public final class Boolean implements Serializable, Comparable { return "true".equalsIgnoreCase(b) ? true : false; } - + } diff --git a/libjava/classpath/java/lang/Byte.java b/libjava/classpath/java/lang/Byte.java index 2560bfcffc3..7f53a494b95 100644 --- a/libjava/classpath/java/lang/Byte.java +++ b/libjava/classpath/java/lang/Byte.java @@ -1,5 +1,5 @@ /* Byte.java -- object wrapper for byte - Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,10 +49,12 @@ package java.lang; * @author John Keiser * @author Per Bothner * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.1 * @status updated to 1.5 */ -public final class Byte extends Number implements Comparable +public final class Byte extends Number implements Comparable { /** * Compatible with JDK 1.1+. @@ -75,7 +77,7 @@ public final class Byte extends Number implements Comparable * The primitive type byte is represented by this * Class object. */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('B'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('B'); /** * The number of bits needed to represent a byte. @@ -87,6 +89,7 @@ public final class Byte extends Number implements Comparable // valueOf(). We're required to cache all possible values here. private static Byte[] byteCache = new Byte[MAX_VALUE - MIN_VALUE + 1]; + /** * The immutable value of this Byte. * @@ -208,20 +211,18 @@ public final class Byte extends Number implements Comparable * * @param val the value to wrap * @return the Byte - * - * @since 1.5 */ public static Byte valueOf(byte val) { synchronized (byteCache) { - if (byteCache[val - MIN_VALUE] == null) - byteCache[val - MIN_VALUE] = new Byte(val); - return byteCache[val - MIN_VALUE]; + if (byteCache[val - MIN_VALUE] == null) + byteCache[val - MIN_VALUE] = new Byte(val); + return byteCache[val - MIN_VALUE]; } } - /** + /** * Convert the specified String into a Byte. * The String may represent decimal, hexadecimal, or * octal numbers. @@ -369,19 +370,4 @@ public final class Byte extends Number implements Comparable return value - b.value; } - /** - * Behaves like compareTo(Byte) unless the Object - * is not a Byte. - * - * @param o the object to compare - * @return the comparison - * @throws ClassCastException if the argument is not a Byte - * @see #compareTo(Byte) - * @see Comparable - * @since 1.2 - */ - public int compareTo(Object o) - { - return compareTo((Byte) o); - } } diff --git a/libjava/classpath/java/lang/Character.java b/libjava/classpath/java/lang/Character.java index 59ae12f7790..b9c6f24e79f 100644 --- a/libjava/classpath/java/lang/Character.java +++ b/libjava/classpath/java/lang/Character.java @@ -1,5 +1,5 @@ /* java.lang.Character -- Wrapper class for char, and Unicode subsets - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -65,11 +65,12 @@ import java.util.Locale; * @author Paul N. Fisher * @author Jochen Hoenicke * @author Eric Blake (ebb9@email.byu.edu) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see CharData * @since 1.0 - * @status updated to 1.4 + * @status partly updated to 1.5; some things still missing */ -public final class Character implements Serializable, Comparable +public final class Character implements Serializable, Comparable { /** * A subset of Unicode blocks. @@ -154,10 +155,8 @@ public final class Character implements Serializable, Comparable /** The canonical name of the block according to the Unicode standard. */ private final String canonicalName; - /** Constants for the forName() method */ - private static final int CANONICAL_NAME = 0; - private static final int NO_SPACES_NAME = 1; - private static final int CONSTANT_NAME = 2; + /** Enumeration for the forName() method */ + private enum NameType { CANONICAL, NO_SPACES, CONSTANT; }; /** * Constructor for strictly defined blocks. @@ -169,7 +168,7 @@ public final class Character implements Serializable, Comparable * standard. */ private UnicodeBlock(int start, int end, String name, - String canonicalName) + String canonicalName) { super(name); this.start = start; @@ -203,8 +202,8 @@ public final class Character implements Serializable, Comparable 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."); + 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; @@ -258,59 +257,51 @@ public final class Character implements Serializable, Comparable */ public static final UnicodeBlock forName(String blockName) { - int type; + NameType type; if (blockName.indexOf(' ') != -1) - type = CANONICAL_NAME; + type = NameType.CANONICAL; else if (blockName.indexOf('_') != -1) - type = CONSTANT_NAME; + type = NameType.CONSTANT; else - type = NO_SPACES_NAME; + 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_NAME: + case CANONICAL: if (usCollator.compare(blockName, "Surrogates Area") == 0) return SURROGATES_AREA; break; - case NO_SPACES_NAME: + case NO_SPACES: if (usCollator.compare(blockName, "SurrogatesArea") == 0) return SURROGATES_AREA; break; - case CONSTANT_NAME: + case CONSTANT: if (usCollator.compare(blockName, "SURROGATES_AREA") == 0) return SURROGATES_AREA; break; } /* Other cases */ - int setLength = sets.length; switch (type) { - case CANONICAL_NAME: - for (int i = 0; i < setLength; i++) - { - UnicodeBlock block = sets[i]; - if (usCollator.compare(blockName, block.canonicalName) == 0) - return block; - } + case CANONICAL: + for (UnicodeBlock block : sets) + if (usCollator.compare(blockName, block.canonicalName) == 0) + return block; break; - case NO_SPACES_NAME: - for (int i = 0; i < setLength; i++) - { - UnicodeBlock block = sets[i]; - String nsName = block.canonicalName.replaceAll(" ",""); - if (usCollator.compare(blockName, nsName) == 0) - return block; - } - break; - case CONSTANT_NAME: - for (int i = 0; i < setLength; i++) - { - UnicodeBlock block = sets[i]; - if (usCollator.compare(blockName, block.toString()) == 0) - return block; - } + 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 " + @@ -1513,10 +1504,11 @@ public final class Character implements Serializable, Comparable * this. These are also returned from calls to of(int) * and of(char). */ + @Deprecated public static final UnicodeBlock SURROGATES_AREA = new UnicodeBlock(0xD800, 0xDFFF, "SURROGATES_AREA", - "Surrogates Area"); + "Surrogates Area"); /** * The defined subsets. @@ -1979,11 +1971,78 @@ public final class Character implements Serializable, Comparable public static final char MAX_VALUE = '\uFFFF'; /** + * The minimum Unicode 4.0 code point. This value is 0. + * @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 0x10FFFF. + * @since 1.5 + */ + public static final int MAX_CODE_POINT = 0x10FFFF; + + /** + * The minimum Unicode high surrogate code unit, or + * leading-surrogate, in the UTF-16 character encoding. + * This value is '\uD800'. + * @since 1.5 + */ + public static final char MIN_HIGH_SURROGATE = '\uD800'; + + /** + * The maximum Unicode high surrogate code unit, or + * leading-surrogate, in the UTF-16 character encoding. + * This value is '\uDBFF'. + * @since 1.5 + */ + public static final char MAX_HIGH_SURROGATE = '\uDBFF'; + + /** + * The minimum Unicode low surrogate code unit, or + * trailing-surrogate, in the UTF-16 character encoding. + * This value is '\uDC00'. + * @since 1.5 + */ + public static final char MIN_LOW_SURROGATE = '\uDC00'; + + /** + * The maximum Unicode low surrogate code unit, or + * trailing-surrogate, in the UTF-16 character encoding. + * This value is '\uDFFF'. + * @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 '\uD800'. + * @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 '\uDFFF'. + * @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 0x10000. + */ + public static final int MIN_SUPPLEMENTARY_CODE_POINT = 0x10000; + + /** * Class object representing the primitive char data type. * * @since 1.1 */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('C'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('C'); /** * The number of bits needed to represent a char. @@ -2378,7 +2437,7 @@ public final class Character implements Serializable, Comparable * Stores unicode attribute offset lookup table. Exploit package visibility * of String.value to avoid copying the array. * @see CharData#DATA - */ + */ private static final char[][] data = new char[][]{ String.zeroBasedStringValue(CharData.DATA[0]), @@ -2528,71 +2587,6 @@ public final class Character implements Serializable, Comparable private static final int MIRROR_MASK = 0x40; /** - * Min value for supplementary code point. - * - * @since 1.5 - */ - public static final int MIN_SUPPLEMENTARY_CODE_POINT = 0x10000; - - /** - * Min value for code point. - * - * @since 1.5 - */ - public static final int MIN_CODE_POINT = 0; - - - /** - * Max value for code point. - * - * @since 1.5 - */ - public static final int MAX_CODE_POINT = 0x010ffff; - - - /** - * Minimum high surrogate code in UTF-16 encoding. - * - * @since 1.5 - */ - public static final char MIN_HIGH_SURROGATE = '\ud800'; - - /** - * Maximum high surrogate code in UTF-16 encoding. - * - * @since 1.5 - */ - public static final char MAX_HIGH_SURROGATE = '\udbff'; - - /** - * Minimum low surrogate code in UTF-16 encoding. - * - * @since 1.5 - */ - public static final char MIN_LOW_SURROGATE = '\udc00'; - - /** - * Maximum low surrogate code in UTF-16 encoding. - * - * @since 1.5 - */ - public static final char MAX_LOW_SURROGATE = '\udfff'; - - /** - * Minimum surrogate code in UTF-16 encoding. - * - * @since 1.5 - */ - public static final char MIN_SURROGATE = MIN_HIGH_SURROGATE; - - /** - * Maximum low surrogate code in UTF-16 encoding. - * - * @since 1.5 - */ - public static final char MAX_SURROGATE = MAX_LOW_SURROGATE; - - /** * 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. @@ -2605,6 +2599,7 @@ public final class Character implements Serializable, Comparable * @see CharData#DATA * @see CharData#SHIFT */ + // Package visible for use in String. static char readCodePoint(int codePoint) { int plane = codePoint >>> 16; @@ -2778,7 +2773,7 @@ public final class Character implements Serializable, Comparable { return isTitleCase((int)ch); } - + /** * Determines if a character is a Unicode titlecase letter. For example, * the character "Lj" (Latin capital L with small letter j) is titlecase. @@ -3282,7 +3277,7 @@ public final class Character implements Serializable, Comparable | (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, @@ -3468,6 +3463,7 @@ public final class Character implements Serializable, Comparable { return isIdentifierIgnorable((int)ch); } + /** * Determines if a character is ignorable in a Unicode identifier. This * includes the non-whitespace ISO control characters ('\u0000' @@ -3610,7 +3606,7 @@ public final class Character implements Serializable, Comparable return title[i + 1]; return toUpperCase(ch); } - + /** * Converts a Unicode character into its titlecase equivalent mapping. * If a mapping does not exist, then the character passed is returned. @@ -4103,6 +4099,7 @@ public final class Character implements Serializable, Comparable // The result will correctly be signed. return getDirectionality((int)ch); } + /** * Returns the Unicode directionality property of the character. This @@ -4198,30 +4195,13 @@ public final class Character implements Serializable, Comparable } /** - * Compares an object to this Character. Assuming the object is a - * Character object, this method performs the same comparison as - * compareTo(Character). - * - * @param o object to compare - * @return the comparison value - * @throws ClassCastException if o is not a Character object - * @throws NullPointerException if o is null - * @see #compareTo(Character) - * @since 1.2 - */ - public int compareTo(Object o) - { - return compareTo((Character) o); - } - - /** * Returns an Character object wrapping the value. * In contrast to the Character constructor, this method * will cache some values. It is used by boxing conversion. * * @param val the value to wrap * @return the Character - * + * * @since 1.5 */ public static Character valueOf(char val) @@ -4230,9 +4210,9 @@ public final class Character implements Serializable, Comparable return new Character(val); synchronized (charCache) { - if (charCache[val - MIN_VALUE] == null) - charCache[val - MIN_VALUE] = new Character(val); - return charCache[val - MIN_VALUE]; + if (charCache[val - MIN_VALUE] == null) + charCache[val - MIN_VALUE] = new Character(val); + return charCache[val - MIN_VALUE]; } } diff --git a/libjava/classpath/java/lang/Class.java b/libjava/classpath/java/lang/Class.java index 090ac234a48..f44782f9692 100644 --- a/libjava/classpath/java/lang/Class.java +++ b/libjava/classpath/java/lang/Class.java @@ -42,17 +42,14 @@ import gnu.classpath.VMStackWalker; import gnu.java.lang.reflect.ClassSignatureParser; import java.io.InputStream; -import java.io.ObjectStreamClass; import java.io.Serializable; import java.lang.annotation.Annotation; -import java.lang.reflect.Array; +import java.lang.annotation.Inherited; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.GenericDeclaration; -import java.lang.reflect.GenericSignatureFormatError; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.MalformedParameterizedTypeException; import java.lang.reflect.Member; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -66,6 +63,7 @@ import java.security.PrivilegedAction; import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -97,11 +95,10 @@ import java.util.HashSet; * @author Eric Blake (ebb9@email.byu.edu) * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) - * @author Tom Tromey (tromey@cygnus.com) * @since 1.0 * @see ClassLoader */ -public final class Class +public final class Class implements Serializable, Type, AnnotatedElement, GenericDeclaration { /** @@ -147,7 +144,7 @@ public final class Class final transient Object vmdata; /** newInstance() caches the default constructor */ - private transient Constructor constructor; + private transient Constructor constructor; /** * Class is non-instantiable from Java code; only the VM can create @@ -184,7 +181,7 @@ public final class Class * @throws ExceptionInInitializerError if the class loads, but an exception * occurs during initialization */ - public static Class forName(String name) throws ClassNotFoundException + public static Class forName(String name) throws ClassNotFoundException { return VMClass.forName(name, true, VMStackWalker.getCallingClassLoader()); } @@ -216,8 +213,8 @@ public final class Class * @see ClassLoader * @since 1.2 */ - public static Class forName(String name, boolean initialize, - ClassLoader classloader) + public static Class forName(String name, boolean initialize, + ClassLoader classloader) throws ClassNotFoundException { if (classloader == null) @@ -232,7 +229,7 @@ public final class Class sm.checkPermission(new RuntimePermission("getClassLoader")); } } - return VMClass.forName(name, initialize, classloader); + return (Class) VMClass.forName(name, initialize, classloader); } /** @@ -247,7 +244,7 @@ public final class Class * @throws SecurityException if the security check fails * @since 1.1 */ - public Class[] getClasses() + public Class[] getClasses() { memberAccessCheck(Member.PUBLIC); return internalGetClasses(); @@ -256,14 +253,14 @@ public final class Class /** * Like getClasses() but without the security checks. */ - private Class[] internalGetClasses() + private Class[] internalGetClasses() { - ArrayList list = new ArrayList(); + ArrayList list = new ArrayList(); list.addAll(Arrays.asList(getDeclaredClasses(true))); Class superClass = getSuperclass(); if (superClass != null) list.addAll(Arrays.asList(superClass.internalGetClasses())); - return (Class[])list.toArray(new Class[list.size()]); + return list.toArray(new Class[list.size()]); } /** @@ -307,7 +304,7 @@ public final class Class * @see Array * @since 1.1 */ - public Class getComponentType() + public Class getComponentType() { return VMClass.getComponentType (this); } @@ -326,7 +323,8 @@ public final class Class * @see #getConstructors() * @since 1.1 */ - public Constructor getConstructor(Class[] types) throws NoSuchMethodException + public Constructor getConstructor(Class... types) + throws NoSuchMethodException { memberAccessCheck(Member.PUBLIC); Constructor[] constructors = getDeclaredConstructors(true); @@ -351,7 +349,7 @@ public final class Class * @throws SecurityException if the security check fails * @since 1.1 */ - public Constructor[] getConstructors() + public Constructor[] getConstructors() { memberAccessCheck(Member.PUBLIC); return getDeclaredConstructors(true); @@ -371,7 +369,7 @@ public final class Class * @see #getDeclaredConstructors() * @since 1.1 */ - public Constructor getDeclaredConstructor(Class[] types) + public Constructor getDeclaredConstructor(Class... types) throws NoSuchMethodException { memberAccessCheck(Member.DECLARED); @@ -397,13 +395,13 @@ public final class Class * @throws SecurityException if the security check fails * @since 1.1 */ - public Class[] getDeclaredClasses() + public Class[] getDeclaredClasses() { memberAccessCheck(Member.DECLARED); return getDeclaredClasses(false); } - Class[] getDeclaredClasses (boolean publicOnly) + Class[] getDeclaredClasses (boolean publicOnly) { return VMClass.getDeclaredClasses (this, publicOnly); } @@ -420,13 +418,13 @@ public final class Class * @throws SecurityException if the security check fails * @since 1.1 */ - public Constructor[] getDeclaredConstructors() + public Constructor[] getDeclaredConstructors() { memberAccessCheck(Member.DECLARED); return getDeclaredConstructors(false); } - Constructor[] getDeclaredConstructors (boolean publicOnly) + Constructor[] getDeclaredConstructors (boolean publicOnly) { return VMClass.getDeclaredConstructors (this, publicOnly); } @@ -500,7 +498,7 @@ public final class Class * @see #getDeclaredMethods() * @since 1.1 */ - public Method getDeclaredMethod(String methodName, Class[] types) + public Method getDeclaredMethod(String methodName, Class... types) throws NoSuchMethodException { memberAccessCheck(Member.DECLARED); @@ -544,7 +542,7 @@ public final class Class * @return the declaring class of this class * @since 1.1 */ - public Class getDeclaringClass() + public Class getDeclaringClass() { return VMClass.getDeclaringClass (this); } @@ -597,7 +595,7 @@ public final class Class */ private Field[] internalGetFields() { - HashSet set = new HashSet(); + HashSet set = new HashSet(); set.addAll(Arrays.asList(getDeclaredFields(true))); Class[] interfaces = getInterfaces(); for (int i = 0; i < interfaces.length; i++) @@ -605,7 +603,7 @@ public final class Class Class superClass = getSuperclass(); if (superClass != null) set.addAll(Arrays.asList(superClass.internalGetFields())); - return (Field[])set.toArray(new Field[set.size()]); + return set.toArray(new Field[set.size()]); } /** @@ -633,7 +631,7 @@ public final class Class * * @return the interfaces this class directly implements */ - public Class[] getInterfaces() + public Class[] getInterfaces() { return VMClass.getInterfaces (this); } @@ -663,7 +661,7 @@ public final class Class { MethodKey m = (MethodKey) o; if (m.name.equals(name) && m.params.length == params.length - && m.returnType == returnType) + && m.returnType == returnType) { for (int i = 0; i < params.length; i++) { @@ -704,7 +702,7 @@ public final class Class * @see #getMethods() * @since 1.1 */ - public Method getMethod(String methodName, Class[] types) + public Method getMethod(String methodName, Class... types) throws NoSuchMethodException { memberAccessCheck(Member.PUBLIC); @@ -821,7 +819,7 @@ public final class Class */ private Method[] internalGetMethods() { - HashMap map = new HashMap(); + HashMap map = new HashMap(); Method[] methods; Class[] interfaces = getInterfaces(); for(int i = 0; i < interfaces.length; i++) @@ -846,7 +844,7 @@ public final class Class { map.put(new MethodKey(methods[i]), methods[i]); } - return (Method[])map.values().toArray(new Method[map.size()]); + return map.values().toArray(new Method[map.size()]); } /** @@ -1003,7 +1001,7 @@ public final class Class * * @return the direct superclass of this class */ - public Class getSuperclass() + public Class getSuperclass() { return VMClass.getSuperclass (this); } @@ -1033,7 +1031,7 @@ public final class Class * @throws NullPointerException if c is null * @since 1.1 */ - public boolean isAssignableFrom(Class c) + public boolean isAssignableFrom(Class c) { return VMClass.isAssignableFrom (this, c); } @@ -1103,11 +1101,11 @@ public final class Class * @throws ExceptionInInitializerError if class initialization caused by * this call fails with an exception */ - public Object newInstance() + public T newInstance() throws InstantiationException, IllegalAccessException { memberAccessCheck(Member.PUBLIC); - Constructor constructor; + Constructor constructor; synchronized(this) { constructor = this.constructor; @@ -1307,12 +1305,11 @@ public final class Class * type, U. * @since 1.5 */ - /* FIXME[GENERICS]: Should be Class asSubClass(Class klass */ - public Class asSubclass(Class klass) + public Class asSubclass(Class klass) { if (! klass.isAssignableFrom(this)) throw new ClassCastException(); - return this; /* FIXME[GENERICS]: Should cast to Class */ + return (Class) this; } /** @@ -1322,12 +1319,11 @@ public final class Class * @throws ClassCastException if obj is not an instance of this class * @since 1.5 */ - /* FIXME[GENERICS]: Should be T cast(Object obj) */ - public Object cast(Object obj) + public T cast(Object obj) { if (obj != null && ! isInstance(obj)) throw new ClassCastException(); - return obj; /* FIXME[GENERICS]: Should be cast to T */ + return (T) obj; } /** @@ -1395,15 +1391,13 @@ public final class Class * class is not an enum. * @since 1.5 */ - /* FIXME[GENERICS]: T[] getEnumConstants() */ - public Object[] getEnumConstants() + public T[] getEnumConstants() { if (isEnum()) { try { - return (Object[]) - getMethod("values", new Class[0]).invoke(null, new Object[0]); + return (T[]) getMethod("values").invoke(null); } catch (NoSuchMethodException exception) { @@ -1490,14 +1484,13 @@ public final class Class * null if no such annotation exists. * @since 1.5 */ - /* FIXME[GENERICS]: T getAnnotation(Class ) */ - public Annotation getAnnotation(Class annotationClass) + public A getAnnotation(Class annotationClass) { - Annotation foundAnnotation = null; + A foundAnnotation = null; Annotation[] annotations = getAnnotations(); - for (int i = 0; i < annotations.length; i++) - if (annotations[i].annotationType() == annotationClass) - foundAnnotation = annotations[i]; + for (Annotation annotation : annotations) + if (annotation.annotationType() == annotationClass) + foundAnnotation = (A) annotation; return foundAnnotation; } @@ -1514,15 +1507,22 @@ public final class Class */ public Annotation[] getAnnotations() { - HashSet set = new HashSet(); - set.addAll(Arrays.asList(getDeclaredAnnotations())); - Class[] interfaces = getInterfaces(); - for (int i = 0; i < interfaces.length; i++) - set.addAll(Arrays.asList(interfaces[i].getAnnotations())); - Class superClass = getSuperclass(); - if (superClass != null) - set.addAll(Arrays.asList(superClass.getAnnotations())); - return (Annotation[]) set.toArray(new Annotation[set.size()]); + HashMap map = new HashMap(); + for (Annotation a : getDeclaredAnnotations()) + map.put((Class) a.annotationType(), a); + for (Class 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 v = map.values(); + return v.toArray(new Annotation[v.size()]); } /** @@ -1588,8 +1588,7 @@ public final class Class * a top-level class. * @since 1.5 */ - /* FIXME[GENERICS]: Should return Class */ - public Class getEnclosingClass() + public Class getEnclosingClass() { return VMClass.getEnclosingClass(this); } @@ -1605,8 +1604,7 @@ public final class Class * is returned. * @since 1.5 */ - /* FIXME[GENERICS]: Should return Constructor */ - public Constructor getEnclosingConstructor() + public Constructor getEnclosingConstructor() { return VMClass.getEnclosingConstructor(this); } @@ -1731,12 +1729,11 @@ public final class Class * specification, version 3. * @since 1.5 */ - /* FIXME[GENERICS]: Should return TypeVariable> */ - public TypeVariable[] getTypeParameters() + public TypeVariable>[] getTypeParameters() { String sig = VMClass.getClassSignature(this); if (sig == null) - return new TypeVariable[0]; + return (TypeVariable>[])new TypeVariable[0]; ClassSignatureParser p = new ClassSignatureParser(this, sig); return p.getTypeParameters(); @@ -1751,8 +1748,7 @@ public final class Class * @return true if an annotation exists for the specified type. * @since 1.5 */ - /* FIXME[GENERICS]: Should be Class */ - public boolean isAnnotationPresent(Class + public boolean isAnnotationPresent(Class annotationClass) { return getAnnotation(annotationClass) != null; diff --git a/libjava/classpath/java/lang/ClassLoader.java b/libjava/classpath/java/lang/ClassLoader.java index 83ef98da342..3d7c32cc935 100644 --- a/libjava/classpath/java/lang/ClassLoader.java +++ b/libjava/classpath/java/lang/ClassLoader.java @@ -120,7 +120,6 @@ import java.util.StringTokenizer; * @author Eric Blake (ebb9@email.byu.edu) * @see Class * @since 1.0 - * @status still missing 1.4 functionality */ public abstract class ClassLoader { @@ -128,7 +127,7 @@ public abstract class ClassLoader * 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(); + final HashMap definedPackages = new HashMap(); /** * The classloader that is consulted before this classloader. @@ -227,7 +226,7 @@ public abstract class ClassLoader * by the null key. This map must be synchronized on this instance. */ // Package visible for use by Class. - Map packageAssertionStatus; + Map packageAssertionStatus; /** * The map of class assertion status overrides, or null if no class @@ -236,7 +235,7 @@ public abstract class ClassLoader * instance. */ // Package visible for use by Class. - Map classAssertionStatus; + Map classAssertionStatus; /** * VM private data. @@ -289,7 +288,7 @@ public abstract class ClassLoader * @return the loaded class * @throws ClassNotFoundException if the class cannot be found */ - public Class loadClass(String name) throws ClassNotFoundException + public Class loadClass(String name) throws ClassNotFoundException { return loadClass(name, false); } @@ -314,11 +313,11 @@ public abstract class ClassLoader * @return the loaded class * @throws ClassNotFoundException if the class cannot be found */ - protected synchronized Class loadClass(String name, boolean resolve) + protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { // Have we already loaded this class? - Class c = findLoadedClass(name); + Class c = findLoadedClass(name); if (c == null) { // Can the class be loaded by a parent? @@ -335,11 +334,11 @@ public abstract class ClassLoader return parent.loadClass(name, resolve); } } - catch (ClassNotFoundException e) + catch (ClassNotFoundException e) { } - // Still not found, we have to do it ourself. - c = findClass(name); + // Still not found, we have to do it ourself. + c = findClass(name); } if (resolve) resolveClass(c); @@ -388,7 +387,7 @@ public abstract class ClassLoader * @throws ClassNotFoundException when the class can not be found * @since 1.2 */ - protected Class findClass(String name) throws ClassNotFoundException + protected Class findClass(String name) throws ClassNotFoundException { throw new ClassNotFoundException(name); } @@ -406,7 +405,7 @@ public abstract class ClassLoader * offset + len exceeds data * @deprecated use {@link #defineClass(String, byte[], int, int)} instead */ - protected final Class defineClass(byte[] data, int offset, int len) + protected final Class defineClass(byte[] data, int offset, int len) throws ClassFormatError { return defineClass(null, data, offset, len); @@ -431,8 +430,8 @@ public abstract class ClassLoader * @throws SecurityException if name starts with "java." * @since 1.1 */ - protected final Class defineClass(String name, byte[] data, int offset, - int len) throws ClassFormatError + protected final Class defineClass(String name, byte[] data, int offset, + int len) throws ClassFormatError { return defineClass(name, data, offset, len, null); } @@ -460,9 +459,9 @@ public abstract class ClassLoader * do not match up * @since 1.2 */ - protected final synchronized Class defineClass(String name, byte[] data, - int offset, int len, - ProtectionDomain domain) + protected final synchronized Class defineClass(String name, byte[] data, + int offset, int len, + ProtectionDomain domain) throws ClassFormatError { checkInitialized(); @@ -493,8 +492,8 @@ public abstract class ClassLoader * do not match up * @since 1.5 */ - protected final Class defineClass(String name, ByteBuffer buf, - ProtectionDomain domain) + protected final Class defineClass(String name, ByteBuffer buf, + ProtectionDomain domain) throws ClassFormatError { byte[] data = new byte[buf.remaining()]; @@ -510,7 +509,7 @@ public abstract class ClassLoader * @throws NullPointerException if c is null * @throws LinkageError if linking fails */ - protected final void resolveClass(Class c) + protected final void resolveClass(Class c) { checkInitialized(); VMClassLoader.resolveClass(c); @@ -525,7 +524,7 @@ public abstract class ClassLoader * @return the found class * @throws ClassNotFoundException if the class cannot be found */ - protected final Class findSystemClass(String name) + protected final Class findSystemClass(String name) throws ClassNotFoundException { checkInitialized(); @@ -563,7 +562,7 @@ public abstract class ClassLoader * @param signers the signers to set * @since 1.1 */ - protected final void setSigners(Class c, Object[] signers) + protected final void setSigners(Class c, Object[] signers) { checkInitialized(); c.setSigners(signers); @@ -576,7 +575,7 @@ public abstract class ClassLoader * @return the found Class, or null if it is not found * @since 1.1 */ - protected final synchronized Class findLoadedClass(String name) + protected final synchronized Class findLoadedClass(String name) { checkInitialized(); return VMClassLoader.findLoadedClass(this, name); @@ -631,14 +630,14 @@ public abstract class ClassLoader * @since 1.2 * @specnote this was final prior to 1.5 */ - public Enumeration getResources(String name) throws IOException + public Enumeration getResources(String name) throws IOException { - Enumeration parentResources; + Enumeration parentResources; if (parent == null) parentResources = VMClassLoader.getResources(name); else parentResources = parent.getResources(name); - return new DoubleEnumeration(parentResources, findResources(name)); + return new DoubleEnumeration(parentResources, findResources(name)); } /** @@ -658,9 +657,9 @@ public abstract class ClassLoader * @throws IOException if I/O errors occur in the process * @since 1.2 */ - protected Enumeration findResources(String name) throws IOException + protected Enumeration findResources(String name) throws IOException { - return EmptyEnumeration.getInstance(); + return (Enumeration) EmptyEnumeration.getInstance(); } /** @@ -705,7 +704,8 @@ public abstract class ClassLoader * @throws IOException if I/O errors occur in the process * @since 1.2 */ - public static Enumeration getSystemResources(String name) throws IOException + public static Enumeration getSystemResources(String name) + throws IOException { return StaticData.systemClassLoader.getResources(name); } @@ -865,7 +865,7 @@ public abstract class ClassLoader { synchronized (definedPackages) { - p = (Package) definedPackages.get(name); + p = definedPackages.get(name); } } return p; @@ -955,7 +955,7 @@ public abstract class ClassLoader { if (packageAssertionStatus == null) packageAssertionStatus - = new HashMap(StaticData.systemPackageAssertionStatus); + = new HashMap(StaticData.systemPackageAssertionStatus); packageAssertionStatus.put(name, Boolean.valueOf(enabled)); } @@ -975,8 +975,8 @@ public abstract class ClassLoader boolean enabled) { if (classAssertionStatus == null) - classAssertionStatus = - new HashMap(StaticData.systemClassAssertionStatus); + classAssertionStatus + = new HashMap(StaticData.systemClassAssertionStatus); // The toString() hack catches null, as required. classAssertionStatus.put(name.toString(), Boolean.valueOf(enabled)); } @@ -994,8 +994,8 @@ public abstract class ClassLoader public synchronized void clearAssertionStatus() { defaultAssertionStatus = false; - packageAssertionStatus = new HashMap(); - classAssertionStatus = new HashMap(); + packageAssertionStatus = null; + classAssertionStatus = null; } /** @@ -1147,4 +1147,5 @@ public abstract class ClassLoader if (! initialized) throw new SecurityException("attempt to use uninitialized class loader"); } + } diff --git a/libjava/classpath/java/lang/Comparable.java b/libjava/classpath/java/lang/Comparable.java index a8afe1ec33e..4ad39af833a 100644 --- a/libjava/classpath/java/lang/Comparable.java +++ b/libjava/classpath/java/lang/Comparable.java @@ -1,5 +1,5 @@ /* Comparable.java -- Interface for comparaing objects to obtain an ordering - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -66,9 +66,9 @@ package java.lang; * @see java.util.TreeSet * @see java.util.TreeMap * @since 1.2 - * @status updated to 1.4 + * @status updated to 1.5 */ -public interface Comparable +public interface Comparable { /** * Compares this object with another, and returns a numerical result based @@ -94,5 +94,5 @@ public interface Comparable * @throws NullPointerException if o is null * @throws ClassCastException if o cannot be compared */ - int compareTo(Object o); + int compareTo(T o); } diff --git a/libjava/classpath/java/lang/Compiler.java b/libjava/classpath/java/lang/Compiler.java index 56fb951bbd9..0d990e93853 100644 --- a/libjava/classpath/java/lang/Compiler.java +++ b/libjava/classpath/java/lang/Compiler.java @@ -74,7 +74,7 @@ public final class Compiler * compilation failed, true if compilation succeeded * @throws NullPointerException if oneClass is null */ - public static boolean compileClass(Class oneClass) + public static boolean compileClass(Class oneClass) { return VMCompiler.compileClass(oneClass); } diff --git a/libjava/classpath/java/lang/Deprecated.java b/libjava/classpath/java/lang/Deprecated.java new file mode 100644 index 00000000000..a52abdb4ea2 --- /dev/null +++ b/libjava/classpath/java/lang/Deprecated.java @@ -0,0 +1,56 @@ +/* Deprecated - Annotation to mark elements as deprecated + Copyright (C) 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.lang; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * This annotation is used as a marker to indicate that the annotated + * declaration is deprecated and should not be used in new code. + * This replaces the old "@deprecated" javadoc tag. + * + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +@Documented @Retention(RUNTIME) +public @interface Deprecated +{ +} diff --git a/libjava/classpath/java/lang/Double.java b/libjava/classpath/java/lang/Double.java index 03c56068921..c716203148b 100644 --- a/libjava/classpath/java/lang/Double.java +++ b/libjava/classpath/java/lang/Double.java @@ -1,5 +1,5 @@ /* Double.java -- object wrapper for double - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,10 +49,12 @@ package java.lang; * @author Paul Fisher * @author Andrew Haley (aph@cygnus.com) * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.0 - * @status updated to 1.4 + * @status partly updated to 1.5 */ -public final class Double extends Number implements Comparable +public final class Double extends Number implements Comparable { /** * Compatible with JDK 1.0+. @@ -98,7 +100,7 @@ public final class Double extends Number implements Comparable * Class object. * @since 1.1 */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('D'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('D'); /** * The immutable value of this Double. @@ -254,7 +256,6 @@ public final class Double extends Number implements Comparable * * @param val the value to wrap * @return the Double - * * @since 1.5 */ public static Double valueOf(double val) @@ -575,22 +576,6 @@ public final class Double extends Number implements Comparable } /** - * Behaves like compareTo(Double) unless the Object - * is not an Double. - * - * @param o the object to compare - * @return the comparison - * @throws ClassCastException if the argument is not a Double - * @see #compareTo(Double) - * @see Comparable - * @since 1.2 - */ - public int compareTo(Object o) - { - return compare(value, ((Double) o).value); - } - - /** * Behaves like new Double(x).compareTo(new Double(y)); in * other words this compares two doubles, special casing NaN and zero, * without the overhead of objects. diff --git a/libjava/classpath/java/lang/Enum.java b/libjava/classpath/java/lang/Enum.java index 5344d5c7201..f141619be4d 100644 --- a/libjava/classpath/java/lang/Enum.java +++ b/libjava/classpath/java/lang/Enum.java @@ -48,10 +48,8 @@ import java.lang.reflect.Field; * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ -/* FIXME[GENERICS]: Should be Enum> - and Comparable */ -public abstract class Enum - implements Comparable, Serializable +public abstract class Enum> + implements Comparable, Serializable { /** @@ -62,13 +60,13 @@ public abstract class Enum /** * The name of this enum constant. */ - String name; + final String name; /** * The number of this enum constant. Each constant is given a number * which matches the order in which it was declared, starting with zero. */ - int ordinal; + final int ordinal; /** * This constructor is used by the compiler to create enumeration constants. @@ -91,8 +89,8 @@ public abstract class Enum * @exception IllegalArgumentException when there is no value s in * the enum etype. */ - /* FIXME[GENERICS]: Should be > S valueOf(Class) */ - public static Enum valueOf(Class etype, String s) + @SuppressWarnings("unchecked") + public static > S valueOf(Class etype, String s) { if (etype == null || s == null) throw new NullPointerException(); @@ -102,8 +100,7 @@ public abstract class Enum Field f = etype.getDeclaredField(s); if (! f.isEnumConstant()) throw new IllegalArgumentException(s); - /* FIXME[GENERICS]: Should cast to S */ - return (Enum) f.get(null); + return (S) f.get(null); } catch (NoSuchFieldException exception) { @@ -167,7 +164,7 @@ public abstract class Enum * @throws ClassCastException if e is not an enumeration * constant of the same class. */ - public final int compareTo(Enum e) + public final int compareTo(T e) { if (getDeclaringClass() != e.getDeclaringClass()) throw new ClassCastException(); @@ -175,27 +172,6 @@ public abstract class Enum } /** - * Returns an integer which represents the relative ordering of this - * enumeration constant. Enumeration constants are ordered by their - * ordinals, which represents their declaration order. So, comparing - * two identical constants yields zero, while one declared prior to - * this returns a positive integer and one declared after yields a - * negative integer. - * - * @param o the enumeration constant to compare. - * @return a negative integer if e.ordinal < this.ordinal, - * zero if e.ordinal == this.ordinal and a positive - * integer if e.ordinal > this.ordinal. - * @throws ClassCastException if e is not an enumeration - * constant of the same class. - */ - /* FIXME[GENERICS]: Remove this method */ - public final int compareTo(Object o) - { - return compareTo((Enum)o); - } - - /** * Cloning of enumeration constants is prevented, to maintain their * singleton status. * @@ -235,8 +211,7 @@ public abstract class Enum * * @return the type of this enumeration constant. */ - /* FIXME[GENERICS]: Should return Class */ - public final Class getDeclaringClass() + public final Class getDeclaringClass() { Class k = getClass(); // We might be in an anonymous subclass of the enum class, so go diff --git a/libjava/classpath/java/lang/EnumConstantNotPresentException.java b/libjava/classpath/java/lang/EnumConstantNotPresentException.java index 12b30fda599..4586c372cca 100644 --- a/libjava/classpath/java/lang/EnumConstantNotPresentException.java +++ b/libjava/classpath/java/lang/EnumConstantNotPresentException.java @@ -54,7 +54,7 @@ public class EnumConstantNotPresentException extends RuntimeException * The enum's type. Note that the name is fixed by the * serialization spec. */ - private Class enumType; + private Class enumType; /** * The name of the missing enum constant. Note that the name is @@ -68,7 +68,8 @@ public class EnumConstantNotPresentException extends RuntimeException * @param theEnum the enum's class * @param name the name of the missing enum constant */ - public EnumConstantNotPresentException(Class theEnum, String name) + public EnumConstantNotPresentException(Class theEnum, + String name) { super("enum " + theEnum + " is missing the constant " + name); enumType = theEnum; @@ -88,7 +89,7 @@ public class EnumConstantNotPresentException extends RuntimeException * Return the enum type which is missing a constant. * @return the enum type which is missing a constant */ - public Class enumType() + public Class enumType() { return enumType; } diff --git a/libjava/classpath/java/lang/Float.java b/libjava/classpath/java/lang/Float.java index dcd5b221197..1e85922be72 100644 --- a/libjava/classpath/java/lang/Float.java +++ b/libjava/classpath/java/lang/Float.java @@ -1,5 +1,5 @@ /* Float.java -- object wrapper for float - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,10 +49,12 @@ package java.lang; * @author Paul Fisher * @author Andrew Haley (aph@cygnus.com) * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.0 - * @status updated to 1.4 + * @status partly updated to 1.5 */ -public final class Float extends Number implements Comparable +public final class Float extends Number implements Comparable { /** * Compatible with JDK 1.0+. @@ -91,7 +93,7 @@ public final class Float extends Number implements Comparable * Class object. * @since 1.1 */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('F'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('F'); /** * The number of bits needed to represent a float. @@ -281,7 +283,6 @@ public final class Float extends Number implements Comparable * * @param val the value to wrap * @return the Float - * * @since 1.5 */ public static Float valueOf(float val) @@ -584,22 +585,6 @@ public final class Float extends Number implements Comparable } /** - * Behaves like compareTo(Float) unless the Object - * is not an Float. - * - * @param o the object to compare - * @return the comparison - * @throws ClassCastException if the argument is not a Float - * @see #compareTo(Float) - * @see Comparable - * @since 1.2 - */ - public int compareTo(Object o) - { - return compare(value, ((Float) o).value); - } - - /** * Behaves like new Float(x).compareTo(new Float(y)); in * other words this compares two floats, special casing NaN and zero, * without the overhead of objects. diff --git a/libjava/classpath/java/lang/InheritableThreadLocal.java b/libjava/classpath/java/lang/InheritableThreadLocal.java index b9c7624ef44..2079a4c20ff 100644 --- a/libjava/classpath/java/lang/InheritableThreadLocal.java +++ b/libjava/classpath/java/lang/InheritableThreadLocal.java @@ -1,5 +1,5 @@ /* InheritableThreadLocal -- a ThreadLocal which inherits values across threads - Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,12 +54,15 @@ import java.util.Iterator; * * @author Mark Wielaard (mark@klomp.org) * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see ThreadLocal * @since 1.2 * @status updated to 1.4 */ -public class InheritableThreadLocal extends ThreadLocal +public class InheritableThreadLocal extends ThreadLocal { + /** * Creates a new InheritableThreadLocal that has no values associated * with it yet. @@ -77,7 +80,7 @@ public class InheritableThreadLocal extends ThreadLocal * the moment of creation of the child * @return the initial value for the child thread */ - protected Object childValue(Object parentValue) + protected T childValue(T parentValue) { return parentValue; } @@ -85,7 +88,7 @@ public class InheritableThreadLocal extends ThreadLocal /** * Generates the childValues of all InheritableThreadLocals * that are in the heritage of the current Thread for the newly created - * childThread. Should be called from the contructor Thread. + * childThread. Should be called from the constructor Thread. * * @param childThread the newly created thread, to inherit from this thread * @see Thread#Thread(ThreadGroup, Runnable, String) @@ -102,14 +105,14 @@ public class InheritableThreadLocal extends ThreadLocal Object key = keys.next(); if (key instanceof InheritableThreadLocal) { - InheritableThreadLocal local = (InheritableThreadLocal)key; + InheritableThreadLocal local = (InheritableThreadLocal)key; Object parentValue = parentThread.locals.get(key); - Object childValue = local.childValue(parentValue == NULL - ? null : parentValue); + Object childValue = local.childValue(parentValue == sentinel + ? null : parentValue); if (childThread.locals == null) childThread.locals = new WeakIdentityHashMap(); childThread.locals.put(key, (childValue == null - ? NULL : childValue)); + ? sentinel : childValue)); } } } diff --git a/libjava/classpath/java/lang/Integer.java b/libjava/classpath/java/lang/Integer.java index f3fe85f5041..e38eb53edd3 100644 --- a/libjava/classpath/java/lang/Integer.java +++ b/libjava/classpath/java/lang/Integer.java @@ -51,10 +51,11 @@ package java.lang; * @author Warren Levy * @author Eric Blake (ebb9@email.byu.edu) * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.0 - * @status largely updated to 1.5 + * @status updated to 1.5 */ -public final class Integer extends Number implements Comparable +public final class Integer extends Number implements Comparable { /** * Compatible with JDK 1.0.2+. @@ -78,7 +79,7 @@ public final class Integer extends Number implements Comparable * Class object. * @since 1.1 */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('I'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('I'); /** * The number of bits needed to represent an int. @@ -526,22 +527,6 @@ public final class Integer extends Number implements Comparable } /** - * Behaves like compareTo(Integer) unless the Object - * is not an Integer. - * - * @param o the object to compare - * @return the comparison - * @throws ClassCastException if the argument is not an Integer - * @see #compareTo(Integer) - * @see Comparable - * @since 1.2 - */ - public int compareTo(Object o) - { - return compareTo((Integer) o); - } - - /** * Return the number of bits set in x. * @param x value to examine * @since 1.5 diff --git a/libjava/classpath/java/lang/Iterable.java b/libjava/classpath/java/lang/Iterable.java index 35c426484bb..ea593e88e73 100644 --- a/libjava/classpath/java/lang/Iterable.java +++ b/libjava/classpath/java/lang/Iterable.java @@ -49,12 +49,12 @@ import java.util.*; * @author Tom Tromey * @since 1.5 */ -public interface Iterable +public interface Iterable { /** * Returns an iterator for the collection. * * @return an iterator. */ - Iterator iterator (); + Iterator iterator (); } diff --git a/libjava/classpath/java/lang/Long.java b/libjava/classpath/java/lang/Long.java index 74e2a52df7c..f0fbc904c36 100644 --- a/libjava/classpath/java/lang/Long.java +++ b/libjava/classpath/java/lang/Long.java @@ -1,5 +1,5 @@ /* Long.java -- object wrapper for long - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,10 +49,12 @@ package java.lang; * @author John Keiser * @author Warren Levy * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.0 * @status updated to 1.5 */ -public final class Long extends Number implements Comparable +public final class Long extends Number implements Comparable { /** * Compatible with JDK 1.0.2+. @@ -76,7 +78,7 @@ public final class Long extends Number implements Comparable * Class object. * @since 1.1 */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass ('J'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass ('J'); /** * The number of bits needed to represent a long. @@ -292,7 +294,6 @@ public final class Long extends Number implements Comparable * * @param val the value to wrap * @return the Long - * * @since 1.5 */ public static synchronized Long valueOf(long val) @@ -517,22 +518,6 @@ public final class Long extends Number implements Comparable } /** - * Behaves like compareTo(Long) unless the Object - * is not a Long. - * - * @param o the object to compare - * @return the comparison - * @throws ClassCastException if the argument is not a Long - * @see #compareTo(Long) - * @see Comparable - * @since 1.2 - */ - public int compareTo(Object o) - { - return compareTo((Long) o); - } - - /** * Return the number of bits set in x. * @param x value to examine * @since 1.5 diff --git a/libjava/classpath/java/lang/Object.java b/libjava/classpath/java/lang/Object.java index 6212d7dfe72..fbd1dc77d9f 100644 --- a/libjava/classpath/java/lang/Object.java +++ b/libjava/classpath/java/lang/Object.java @@ -326,7 +326,7 @@ public class Object * * @return the class of this Object */ - public final Class getClass() + public final Class getClass() { return VMObject.getClass(this); } diff --git a/libjava/classpath/java/lang/Override.java b/libjava/classpath/java/lang/Override.java new file mode 100644 index 00000000000..16581045abf --- /dev/null +++ b/libjava/classpath/java/lang/Override.java @@ -0,0 +1,56 @@ +/* Override - Annotation to indicate that a method should be an override + 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.lang; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; +import static java.lang.annotation.RetentionPolicy.SOURCE; +import static java.lang.annotation.ElementType.METHOD; + +/** + * This annotation is used as a marker to indicate that the annotated + * method declaration is intended to override another method in the + * class hierarchy. If this is not the case, the compiler will emit a + * warning. + * + * @since 1.5 + */ +@Retention(SOURCE) @Target(METHOD) +public @interface Override +{ +} diff --git a/libjava/classpath/java/lang/Package.java b/libjava/classpath/java/lang/Package.java index 38bb3240de4..1141a0722ee 100644 --- a/libjava/classpath/java/lang/Package.java +++ b/libjava/classpath/java/lang/Package.java @@ -345,14 +345,13 @@ public class Package * null if no such annotation exists. * @since 1.5 */ - /* FIXME[GENERICS]: T getAnnotation(Class ) */ - public Annotation getAnnotation(Class annotationClass) + public A getAnnotation(Class annotationClass) { - Annotation foundAnnotation = null; + A foundAnnotation = null; Annotation[] annotations = getAnnotations(); - for (int i = 0; i < annotations.length; i++) - if (annotations[i].annotationType() == annotationClass) - foundAnnotation = annotations[i]; + for (Annotation annotation : annotations) + if (annotation.annotationType() == annotationClass) + foundAnnotation = (A) annotation; return foundAnnotation; } @@ -406,8 +405,7 @@ public class Package * @return true if an annotation exists for the specified type. * @since 1.5 */ - /* FIXME[GENERICS]: Signature is Class */ - public boolean isAnnotationPresent(Class + public boolean isAnnotationPresent(Class annotationClass) { return getAnnotation(annotationClass) != null; diff --git a/libjava/classpath/java/lang/ProcessBuilder.java b/libjava/classpath/java/lang/ProcessBuilder.java new file mode 100644 index 00000000000..9ffe24cde16 --- /dev/null +++ b/libjava/classpath/java/lang/ProcessBuilder.java @@ -0,0 +1,337 @@ +/* ProcessBuilder.java - Represent spawned system process + 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; + +import java.io.File; +import java.io.IOException; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + *

    + * This class is used to construct new operating system processes. + * A ProcessBuilder instance basically represent a + * template for a new process. Actual processes are generated from + * this template via use of the start() method, which + * may be invoked multiple times, with each invocation spawning a + * new process with the current attributes of the + * ProcessBuilder object. Each spawned process is + * independent of the ProcessBuilder object, and is + * unaffected by changes in its attributes. + *

    + *

    + * The following attributes define a process: + *

    + *
      + *
    • The working directory; the activities of a + * process begin with the current directory set to this. By default, + * this is the working directory of the current process, as defined + * by the user.dir property.
    • + *
    • The command which invokes the process. This + * usually consists of the name of the program binary followed by an + * arbitrary number of arguments. For example, find -type f + * invokes the find binary with the arguments "-type" and "f". + * The command is provided a list, the elements of which are defined in a + * system dependent manner; the layout is affected by expected operating + * system conventions. A common method is to split the command on each + * space within the string. Thus, find -type f forms a + * three element list. However, in some cases, the expectation is that + * this split is performed by the program itself; thus, the list consists + * of only two elements (the program name and its arguments).
    • + *
    • The environment map, which links environment + * variables to their corresponding values. The initial contents of the map + * are the current environment values i.e. it contains the contents of the + * map returned by System.getenv().
    • + *
    • The redirection flag, which specifies whether + * or not the contents of the error stream should be redirected to standard + * output. By default, this is false, and there are two output streams, one + * for normal data ({@link Process#getOutputStream()}) and one for error data + * ({@link Process#getErrorStream()}). When set to true, the two are merged, + * which simplifies the interleaving of the two streams. Data is read using + * the stream returned by {@link Process#getOutputStream()}, and the + * stream returned by {@link Process#getErrorStream()} throws an immediate + * end-of-file exception.
    • + *
    + *

    + * All checks on attribute validity are delayed until start() + * is called. ProcessBuilder objects are not + * synchronized; the user must provide external synchronization + * where multiple threads may interact with the same + * ProcessBuilder object. + *

    + * + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @see Process + * @see System#getenv() + * @since 1.5 + */ +public final class ProcessBuilder +{ + + /** + * The working directory of the process. + */ + private File directory = new File(System.getProperty("user.dir")); + + /** + * The command line syntax for invoking the process. + */ + private List command; + + /** + * The mapping of environment variables to values. + */ + private Map environment = + new System.EnvironmentMap(System.getenv()); + + /** + * A flag indicating whether to redirect the error stream to standard + * output. + */ + private boolean redirect = false; + + /** + * Constructs a new ProcessBuilder with the specified + * command being used to invoke the process. The list is used directly; + * external changes are reflected in the ProcessBuilder. + * + * @param command the name of the program followed by its arguments. + */ + public ProcessBuilder(List command) + { + this.command = command; + } + + /** + * Constructs a new ProcessBuilder with the specified + * command being used to invoke the process. This constructor + * simplifies creating a new ProcessBuilder by + * converting the provided series of constructor arguments into a + * list of command-line arguments. + * + * @param command the name of the program followed by its arguments. + */ + public ProcessBuilder(String... command) + { + this.command = Arrays.asList(command); + } + + /** + * Returns the current command line, used to invoke the process. + * The return value is simply a reference to the list of command + * line arguments used by the ProcessBuilder object; + * any changes made to it will be reflected in the operation of + * the ProcessBuilder. + * + * @return the list of command-line arguments. + */ + public List command() + { + return command; + } + + /** + * Sets the command-line arguments to those specified. The list is + * used directly; external changes are reflected in the + * ProcessBuilder. + * + * @param command the name of the program followed by its arguments. + * @return a reference to this process builder. + */ + public ProcessBuilder command(List command) + { + this.command = command; + return this; + } + + /** + * Sets the command-line arguments to those specified. + * This simplifies modifying the arguments by converting + * the provided series of constructor arguments into a + * list of command-line arguments. + * + * @param command the name of the program followed by its arguments. + * @return a reference to this process builder. + */ + public ProcessBuilder command(String... command) + { + this.command = Arrays.asList(command); + return this; + } + + /** + * Returns the working directory of the process. The + * returned value may be null; this + * indicates that the default behaviour of using the + * working directory of the current process should + * be adopted. + * + * @return the working directory. + */ + public File directory() + { + return directory; + } + + /** + * Sets the working directory to that specified. + * The supplied argument may be null, + * which indicates the default value should be used. + * The default is the working directory of the current + * process. + * + * @param directory the new working directory. + * @return a reference to this process builder. + */ + public ProcessBuilder directory(File directory) + { + this.directory = directory; + return this; + } + + /** + *

    + * Returns the system environment variables of the process. + * If the underlying system does not support environment variables, + * an empty map is returned. + *

    + *

    + * The returned map does not accept queries using + * null keys or values, or those of a type other than + * String. Attempts to pass in a null value will + * throw a NullPointerException. Types other than + * String throw a ClassCastException. + *

    + *

    + * As the returned map is generated using data from the underlying + * platform, it may not comply with the equals() + * and hashCode() contracts. It is also likely that + * the keys of this map will be case-sensitive. + *

    + *

    + * Modification of the map is reliant on the underlying platform; + * some may not allow any changes to the environment variables or + * may prevent certain values being used. Attempts to do so will + * throw an UnsupportedOperationException or + * IllegalArgumentException, respectively. + *

    + *

    + * Use of this method may require a security check for the + * RuntimePermission "getenv.*". + *

    + * + * @return a map of the system environment variables for the process. + * @throws SecurityException if the checkPermission method of + * an installed security manager prevents access to + * the system environment variables. + * @since 1.5 + */ + public Map environment() + { + return environment; + } + + /** + * Returns true if the output stream and error stream of the + * process will be merged to form one composite stream. The + * default return value is false. + * + * @return true if the output stream and error stream are to + * be merged. + */ + public boolean redirectErrorStream() + { + return redirect; + } + + /** + * Sets the error stream redirection flag. If set, the output + * and error streams are merged to form one composite stream. + * + * @param redirect the new value of the redirection flag. + * @return a reference to this process builder. + */ + public ProcessBuilder redirectErrorStream(boolean redirect) + { + this.redirect = redirect; + return this; + } + + /** + *

    + * Starts execution of a new process, based on the attributes of + * this ProcessBuilder object. This is the point + * at which the command-line arguments are checked. The list + * must be non-empty and contain only non-null string objects. + * The other attributes have default values which are used in + * cases where their values are not explicitly specified. + *

    + *

    + * If a security manager is in place, then the + * {@link SecurityManager#checkExec()} method is called to + * ensure that permission is given to execute the process. + *

    + *

    + * The execution of the process is system-dependent. Various + * exceptions may result, due to problems at the operating system + * level. These are all returned as a form of {@link IOException}. + *

    + * + * @return a Process object, representing the spawned + * subprocess. + * @throws IOException if a problem occurs with executing the process + * at the operating system level. + * @throws IndexOutOfBoundsException if the command to execute is + * actually an empty list. + * @throws NullPointerException if the command to execute is null + * or the list contains null elements. + * @throws SecurityException if a security manager exists and prevents + * execution of the subprocess. + */ + public Process start() throws IOException + { + SecurityManager sm = SecurityManager.current; // Be thread-safe! + if (sm != null) + sm.checkExec(command.get(0)); + return VMProcess.exec(command, environment, directory, redirect); + } +} diff --git a/libjava/classpath/java/lang/SecurityManager.java b/libjava/classpath/java/lang/SecurityManager.java index 999fe83dda1..61b4612b1aa 100644 --- a/libjava/classpath/java/lang/SecurityManager.java +++ b/libjava/classpath/java/lang/SecurityManager.java @@ -1,5 +1,5 @@ /* SecurityManager.java -- security checks for privileged actions - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -240,7 +240,7 @@ public class SecurityManager * @return the most recent non-system Class on the execution stack * @deprecated use {@link #checkPermission(Permission)} instead */ - protected Class currentLoadedClass() + protected Class currentLoadedClass() { int i = classLoaderDepth(); return i >= 0 ? getClassContext()[i] : null; @@ -983,7 +983,7 @@ public class SecurityManager * @see Member#PUBLIC * @since 1.1 */ - public void checkMemberAccess(Class c, int memberType) + public void checkMemberAccess(Class c, int memberType) { if (c == null) throw new NullPointerException(); diff --git a/libjava/classpath/java/lang/Short.java b/libjava/classpath/java/lang/Short.java index eb40cd9e0e6..41a31e26082 100644 --- a/libjava/classpath/java/lang/Short.java +++ b/libjava/classpath/java/lang/Short.java @@ -1,5 +1,5 @@ /* Short.java -- object wrapper for short - Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,10 +48,12 @@ package java.lang; * @author Paul Fisher * @author John Keiser * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.5 */ -public final class Short extends Number implements Comparable +public final class Short extends Number implements Comparable { /** * Compatible with JDK 1.1+. @@ -74,7 +76,7 @@ public final class Short extends Number implements Comparable * The primitive type short is represented by this * Class object. */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('S'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('S'); /** * The number of bits needed to represent a short. @@ -208,7 +210,6 @@ public final class Short extends Number implements Comparable * * @param val the value to wrap * @return the Short - * * @since 1.5 */ public static Short valueOf(short val) @@ -217,9 +218,9 @@ public final class Short extends Number implements Comparable return new Short(val); synchronized (shortCache) { - if (shortCache[val - MIN_CACHE] == null) - shortCache[val - MIN_CACHE] = new Short(val); - return shortCache[val - MIN_CACHE]; + if (shortCache[val - MIN_CACHE] == null) + shortCache[val - MIN_CACHE] = new Short(val); + return shortCache[val - MIN_CACHE]; } } @@ -371,22 +372,6 @@ public final class Short extends Number implements Comparable } /** - * Behaves like compareTo(Short) unless the Object - * is not a Short. - * - * @param o the object to compare - * @return the comparison - * @throws ClassCastException if the argument is not a Short - * @see #compareTo(Short) - * @see Comparable - * @since 1.2 - */ - public int compareTo(Object o) - { - return compareTo((Short)o); - } - - /** * Reverse the bytes in val. * @since 1.5 */ diff --git a/libjava/classpath/java/lang/StrictMath.java b/libjava/classpath/java/lang/StrictMath.java index 0f066216787..ec74ca4133b 100644 --- a/libjava/classpath/java/lang/StrictMath.java +++ b/libjava/classpath/java/lang/StrictMath.java @@ -633,6 +633,94 @@ public final strictfp class StrictMath } /** + * Returns the hyperbolic sine of x which is defined as + * (exp(x) - exp(-x)) / 2. + * + * Special cases: + *
      + *
    • If the argument is NaN, the result is NaN
    • + *
    • If the argument is positive infinity, the result is positive + * infinity.
    • + *
    • If the argument is negative infinity, the result is negative + * infinity.
    • + *
    • If the argument is zero, the result is zero.
    • + *
    + * + * @param x the argument to sinh + * @return the hyperbolic sine of x + * + * @since 1.5 + */ + public static double sinh(double x) + { + // Method : + // mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2 + // 1. Replace x by |x| (sinh(-x) = -sinh(x)). + // 2. + // E + E/(E+1) + // 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) + // 2 + // + // 22 <= x <= lnovft : sinh(x) := exp(x)/2 + // lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) + // ln2ovft < x : sinh(x) := +inf (overflow) + + double t, w, h; + + long bits; + long h_bits; + long l_bits; + + // handle special cases + if (x != x) + return x; + if (x == Double.POSITIVE_INFINITY) + return Double.POSITIVE_INFINITY; + if (x == Double.NEGATIVE_INFINITY) + return Double.NEGATIVE_INFINITY; + + if (x < 0) + h = - 0.5; + else + h = 0.5; + + bits = Double.doubleToLongBits(x); + h_bits = getHighDWord(bits) & 0x7fffffffL; // ignore sign + l_bits = getLowDWord(bits); + + // |x| in [0, 22], return sign(x) * 0.5 * (E+E/(E+1)) + if (h_bits < 0x40360000L) // |x| < 22 + { + if (h_bits < 0x3e300000L) // |x| < 2^-28 + return x; // for tiny arguments return x + + t = expm1(abs(x)); + + if (h_bits < 0x3ff00000L) + return h * (2.0 * t - t * t / (t + 1.0)); + + return h * (t + t / (t + 1.0)); + } + + // |x| in [22, log(Double.MAX_VALUE)], return 0.5 * exp(|x|) + if (h_bits < 0x40862e42L) + return h * exp(abs(x)); + + // |x| in [log(Double.MAX_VALUE), overflowthreshold] + if ((h_bits < 0x408633ceL) + || ((h_bits == 0x408633ceL) && (l_bits <= 0x8fb9f87dL))) + { + w = exp(0.5 * abs(x)); + t = h * w; + + return t * w; + } + + // |x| > overflowthershold + return h * Double.POSITIVE_INFINITY; + } + + /** * Returns the hyperbolic cosine of x, which is defined as * (exp(x) + exp(-x)) / 2. * @@ -670,36 +758,36 @@ public final strictfp class StrictMath double t, w; long bits; - int hx; - int lx; + long hx; + long lx; // handle special cases if (x != x) - return Double.NaN; + return x; if (x == Double.POSITIVE_INFINITY) return Double.POSITIVE_INFINITY; if (x == Double.NEGATIVE_INFINITY) return Double.POSITIVE_INFINITY; bits = Double.doubleToLongBits(x); - hx = getHighDWord(bits) & 0x7fffffff; // ignore sign + hx = getHighDWord(bits) & 0x7fffffffL; // ignore sign lx = getLowDWord(bits); // |x| in [0, 0.5 * ln(2)], return 1 + expm1(|x|)^2 / (2 * exp(|x|)) - if (hx < 0x3fd62e43) + if (hx < 0x3fd62e43L) { t = expm1(abs(x)); w = 1.0 + t; // for tiny arguments return 1. - if (hx < 0x3c800000) + if (hx < 0x3c800000L) return w; return 1.0 + (t * t) / (w + w); } // |x| in [0.5 * ln(2), 22], return exp(|x|)/2 + 1 / (2 * exp(|x|)) - if (hx < 0x40360000) + if (hx < 0x40360000L) { t = exp(abs(x)); @@ -707,16 +795,13 @@ public final strictfp class StrictMath } // |x| in [22, log(Double.MAX_VALUE)], return 0.5 * exp(|x|) - if (hx < 0x40862e42) + if (hx < 0x40862e42L) return 0.5 * exp(abs(x)); // |x| in [log(Double.MAX_VALUE), overflowthreshold], // return exp(x/2)/2 * exp(x/2) - - // we need to force an unsigned <= compare, thus can not use lx. - if ((hx < 0x408633ce) - || ((hx == 0x408633ce) - && ((bits & 0x00000000ffffffffL) <= 0x8fb9f87dL))) + if ((hx < 0x408633ceL) + || ((hx == 0x408633ceL) && (lx <= 0x8fb9f87dL))) { w = exp(0.5 * abs(x)); t = 0.5 * w; @@ -729,13 +814,82 @@ public final strictfp class StrictMath } /** + * Returns the hyperbolic tangent of x, which is defined as + * (exp(x) - exp(-x)) / (exp(x) + exp(-x)), i.e. sinh(x) / cosh(x). + * + Special cases: + *
      + *
    • If the argument is NaN, the result is NaN
    • + *
    • If the argument is positive infinity, the result is 1.
    • + *
    • If the argument is negative infinity, the result is -1.
    • + *
    • If the argument is zero, the result is zero.
    • + *
    + * + * @param x the argument to tanh + * @return the hyperbolic tagent of x + * + * @since 1.5 + */ + public static double tanh(double x) + { + // Method : + // 0. tanh(x) is defined to be (exp(x) - exp(-x)) / (exp(x) + exp(-x)) + // 1. reduce x to non-negative by tanh(-x) = -tanh(x). + // 2. 0 <= x <= 2^-55 : tanh(x) := x * (1.0 + x) + // -t + // 2^-55 < x <= 1 : tanh(x) := -----; t = expm1(-2x) + // t + 2 + // 2 + // 1 <= x <= 22.0 : tanh(x) := 1 - ----- ; t=expm1(2x) + // t + 2 + // 22.0 < x <= INF : tanh(x) := 1. + + double t, z; + + long bits; + long h_bits; + + // handle special cases + if (x != x) + return x; + if (x == Double.POSITIVE_INFINITY) + return 1.0; + if (x == Double.NEGATIVE_INFINITY) + return -1.0; + + bits = Double.doubleToLongBits(x); + h_bits = getHighDWord(bits) & 0x7fffffffL; // ingnore sign + + if (h_bits < 0x40360000L) // |x| < 22 + { + if (h_bits < 0x3c800000L) // |x| < 2^-55 + return x * (1.0 + x); + + if (h_bits >= 0x3ff00000L) // |x| >= 1 + { + t = expm1(2.0 * abs(x)); + z = 1.0 - 2.0 / (t + 2.0); + } + else // |x| < 1 + { + t = expm1(-2.0 * abs(x)); + z = -t / (t + 2.0); + } + } + else // |x| >= 22 + z = 1.0; + + return (x >= 0) ? z : -z; + } + + /** * Returns the lower two words of a long. This is intended to be * used like this: * getLowDWord(Double.doubleToLongBits(x)). */ - private static int getLowDWord(long x) + private static long getLowDWord(long x) { - return (int) (x & 0x00000000ffffffffL); + return x & 0x00000000ffffffffL; } /** @@ -743,19 +897,19 @@ public final strictfp class StrictMath * used like this: * getHighDWord(Double.doubleToLongBits(x)). */ - private static int getHighDWord(long x) + private static long getHighDWord(long x) { - return (int) ((x & 0xffffffff00000000L) >> 32); + return (x & 0xffffffff00000000L) >> 32; } /** * Returns a double with the IEEE754 bit pattern given in the lower * and higher two words lowDWord and highDWord. */ - private static double buildDouble(int lowDWord, int highDWord) + private static double buildDouble(long lowDWord, long highDWord) { - return Double.longBitsToDouble((((long) highDWord & 0xffffffffL) << 32) - | ((long) lowDWord & 0xffffffffL)); + return Double.longBitsToDouble(((highDWord & 0xffffffffL) << 32) + | (lowDWord & 0xffffffffL)); } /** @@ -788,12 +942,12 @@ public final strictfp class StrictMath double w; long bits; - int l; - int h; + long l; + long h; // handle the special cases if (x != x) - return Double.NaN; + return x; if (x == Double.POSITIVE_INFINITY) return Double.POSITIVE_INFINITY; if (x == Double.NEGATIVE_INFINITY) @@ -847,7 +1001,7 @@ public final strictfp class StrictMath s = t * t; // t * t is exact r = x / s; w = t + t; - r = (r - t) / (w + r); // r - s is exact + r = (r - t) / (w + r); // r - t is exact t = t + t * r; return negative ? -t : t; @@ -1008,8 +1162,8 @@ public final strictfp class StrictMath int k; long bits; - int h_bits; - int l_bits; + long h_bits; + long l_bits; c = 0.0; y = abs(x); @@ -1019,14 +1173,14 @@ public final strictfp class StrictMath l_bits = getLowDWord(bits); // handle special cases and large arguments - if (h_bits >= 0x4043687a) // if |x| >= 56 * ln(2) + if (h_bits >= 0x4043687aL) // if |x| >= 56 * ln(2) { - if (h_bits >= 0x40862e42) // if |x| >= EXP_LIMIT_H + if (h_bits >= 0x40862e42L) // if |x| >= EXP_LIMIT_H { - if (h_bits >= 0x7ff00000) + if (h_bits >= 0x7ff00000L) { - if (((h_bits & 0x000fffff) | (l_bits & 0xffffffff)) != 0) - return Double.NaN; // exp(NaN) = NaN + if (((h_bits & 0x000fffffL) | (l_bits & 0xffffffffL)) != 0) + return x; // exp(NaN) = NaN else return negative ? -1.0 : x; // exp({+-inf}) = {+inf, -1} } @@ -1040,9 +1194,9 @@ public final strictfp class StrictMath } // argument reduction - if (h_bits > 0x3fd62e42) // |x| > 0.5 * ln(2) + if (h_bits > 0x3fd62e42L) // |x| > 0.5 * ln(2) { - if (h_bits < 0x3ff0a2b2) // |x| < 1.5 * ln(2) + if (h_bits < 0x3ff0a2b2L) // |x| < 1.5 * ln(2) { if (negative) { @@ -1069,7 +1223,7 @@ public final strictfp class StrictMath c = (hi - x) - lo; } - else if (h_bits < 0x3c900000) // |x| < 2^-54 return x + else if (h_bits < 0x3c900000L) // |x| < 2^-54 return x return x; else k = 0; @@ -1124,7 +1278,7 @@ public final strictfp class StrictMath if (k < 20) { bits = Double.doubleToLongBits(t); - h_bits = 0x3ff00000 - (0x00200000 >> k); + h_bits = 0x3ff00000L - (0x00200000L >> k); l_bits = getLowDWord(bits); t = buildDouble(l_bits, h_bits); // t = 1 - 2^(-k) @@ -1141,7 +1295,7 @@ public final strictfp class StrictMath else { bits = Double.doubleToLongBits(t); - h_bits = (0x000003ff - k) << 20; + h_bits = (0x000003ffL - k) << 20; l_bits = getLowDWord(bits); t = buildDouble(l_bits, h_bits); // t = 2^(-k) diff --git a/libjava/classpath/java/lang/String.java b/libjava/classpath/java/lang/String.java index dbc3f7d8bf4..28b77c0aa56 100644 --- a/libjava/classpath/java/lang/String.java +++ b/libjava/classpath/java/lang/String.java @@ -1,5 +1,5 @@ /* String.java -- immutable character sequences; the object of string literals - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,6 +54,7 @@ import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.UnsupportedCharsetException; import java.text.Collator; import java.util.Comparator; +import java.util.Formatter; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -82,10 +83,13 @@ import java.util.regex.PatternSyntaxException; * @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; but could use better data sharing via offset field */ -public final class String implements Serializable, Comparable, CharSequence +public final class String + implements Serializable, Comparable, 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. @@ -144,7 +148,7 @@ public final class String implements Serializable, Comparable, CharSequence * compatibility with Sun's JDK. */ private static final class CaseInsensitiveComparator - implements Comparator, Serializable + implements Comparator, Serializable { /** * Compatible with JDK 1.2. @@ -168,9 +172,9 @@ public final class String implements Serializable, Comparable, CharSequence * @throws ClassCastException if either argument is not a String * @see #compareToIgnoreCase(String) */ - public int compare(Object o1, Object o2) + public int compare(String o1, String o2) { - return ((String) o1).compareToIgnoreCase((String) o2); + return o1.compareToIgnoreCase(o2); } } // class CaseInsensitiveComparator @@ -182,7 +186,7 @@ public final class String implements Serializable, Comparable, CharSequence * @see Collator#compare(String, String) * @since 1.2 */ - public static final Comparator CASE_INSENSITIVE_ORDER + public static final Comparator CASE_INSENSITIVE_ORDER = new CaseInsensitiveComparator(); /** @@ -919,22 +923,6 @@ public final class String implements Serializable, Comparable, CharSequence } /** - * Behaves like compareTo(java.lang.String) unless the Object - * is not a String. Then it throws a - * ClassCastException. - * - * @param o the object to compare against - * @return the comparison - * @throws NullPointerException if o is null - * @throws ClassCastException if o is not a String - * @since 1.2 - */ - public int compareTo(Object o) - { - return compareTo((String) o); - } - - /** * Compares this String and another String (case insensitive). This * comparison is similar to equalsIgnoreCase, in that it ignores * locale and multi-characater capitalization, and compares characters @@ -1674,7 +1662,6 @@ public final class String implements Serializable, Comparable, CharSequence * @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) @@ -1696,6 +1683,7 @@ public final class String implements Serializable, Comparable, CharSequence * @throws NullPointerException if data is null * @throws IndexOutOfBoundsException if (offset < 0 || count < 0 * || offset + count < 0 (overflow) + * || offset + count < 0 (overflow) * || offset + count > data.length) * (while unspecified, this is a StringIndexOutOfBoundsException) * @see #String(char[], int, int) @@ -1792,6 +1780,20 @@ public final class String implements Serializable, Comparable, CharSequence 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); + } + /** * If two Strings are considered equal, by the equals() method, * then intern() will return the same String instance. ie. diff --git a/libjava/classpath/java/lang/StringBuffer.java b/libjava/classpath/java/lang/StringBuffer.java index caffd6e7050..3aa84a21e12 100644 --- a/libjava/classpath/java/lang/StringBuffer.java +++ b/libjava/classpath/java/lang/StringBuffer.java @@ -72,8 +72,12 @@ import java.io.Serializable; * @since 1.0 * @status updated to 1.4 */ -public final class StringBuffer implements Serializable, CharSequence +public final class StringBuffer + 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+. */ @@ -148,21 +152,22 @@ public final class StringBuffer implements Serializable, CharSequence } /** - * Create a new StringBuffer with the characters from the + * Create a new StringBuffer with the characters in the * specified CharSequence. Initial capacity will be the - * size of the CharSequence plus 16. + * 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 sequence the String to convert + * @param seq the initializing CharSequence * @throws NullPointerException if str is null - * * @since 1.5 */ - public StringBuffer(CharSequence sequence) + public StringBuffer(CharSequence seq) { - count = Math.max(0, sequence.length()); + int len = seq.length(); + count = len <= 0 ? 0 : len; value = new char[count + DEFAULT_CAPACITY]; - for (int i = 0; i < count; ++i) - value[i] = sequence.charAt(i); + for (int i = 0; i < len; ++i) + value[i] = seq.charAt(i); } /** @@ -391,46 +396,6 @@ public final class StringBuffer implements Serializable, CharSequence } /** - * Append the CharSequence value of the argument to this - * StringBuffer. - * - * @param sequence the CharSequence to append - * @return this StringBuffer - * @see #append(Object) - * @since 1.5 - */ - public synchronized StringBuffer append(CharSequence sequence) - { - if (sequence == null) - sequence = "null"; - return append(sequence, 0, sequence.length()); - } - - /** - * Append the specified subsequence of the CharSequence - * argument to this StringBuffer. - * - * @param sequence the CharSequence to append - * @param start the starting index - * @param end one past the ending index - * @return this StringBuffer - * @see #append(Object) - * @since 1.5 - */ - public synchronized StringBuffer append(CharSequence sequence, - int start, int end) - { - if (sequence == null) - sequence = "null"; - if (start < 0 || end < 0 || start > end || end > sequence.length()) - throw new IndexOutOfBoundsException(); - ensureCapacity_unsynchronized(this.count + end - start); - for (int i = start; i < end; ++i) - value[count++] = sequence.charAt(i); - return this; - } - - /** * Append the char array to this StringBuffer. * This is similar (but more efficient) than * append(new String(data)), except in the case of null. @@ -470,6 +435,25 @@ public final class StringBuffer implements Serializable, CharSequence } /** + * Append the code point to this StringBuffer. + * 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 StringBuffer + * @see Character#toChars(int, char[], int) + * @since 1.5 + */ + public synchronized StringBuffer appendCodePoint(int code) + { + int len = Character.charCount(code); + ensureCapacity_unsynchronized(count + len); + Character.toChars(code, value, count); + count += len; + return this; + } + + /** * Append the String value of the argument to this * StringBuffer. Uses String.valueOf() to convert * to String. @@ -497,21 +481,39 @@ public final class StringBuffer implements Serializable, CharSequence } /** - * Append the code point to this StringBuffer. - * This is like #append(char), but will append two characters - * if a supplementary code point is given. + * Append the characters in the CharSequence to this + * buffer. * - * @param code the code point to append + * @param seq the CharSequence providing the characters * @return this StringBuffer - * @see Character#toChars(int, char[], int) * @since 1.5 */ - public synchronized StringBuffer appendCodePoint(int code) + public synchronized StringBuffer append(CharSequence seq) { - int len = Character.charCount(code); - ensureCapacity_unsynchronized(count + len); - Character.toChars(code, value, count); - count += len; + return append(seq, 0, seq.length()); + } + + /** + * Append some characters from the CharSequence to this + * buffer. If the argument is null, the four characters "null" are + * appended. + * + * @param seq the CharSequence providing the characters + * @param start the starting index + * @param end one past the final index + * @return this StringBuffer + * @since 1.5 + */ + public synchronized StringBuffer append(CharSequence seq, int start, int end) + { + if (seq == null) + return append("null"); + if (end - start > 0) + { + ensureCapacity_unsynchronized(count + end - start); + for (; start < end; ++start) + value[count++] = seq.charAt(start); + } return this; } diff --git a/libjava/classpath/java/lang/StringBuilder.java b/libjava/classpath/java/lang/StringBuilder.java index 98af48f8fb0..95d04d1e766 100644 --- a/libjava/classpath/java/lang/StringBuilder.java +++ b/libjava/classpath/java/lang/StringBuilder.java @@ -74,9 +74,8 @@ import java.io.Serializable; * * @since 1.5 */ -// FIX15: Implement Appendable when co-variant methods are available public final class StringBuilder - implements Serializable, CharSequence + implements Serializable, CharSequence, Appendable { // Implementation note: if you change this class, you usually will // want to change StringBuffer as well. diff --git a/libjava/classpath/java/lang/SuppressWarnings.java b/libjava/classpath/java/lang/SuppressWarnings.java new file mode 100644 index 00000000000..35b01a85130 --- /dev/null +++ b/libjava/classpath/java/lang/SuppressWarnings.java @@ -0,0 +1,69 @@ +/* SuppressWarnings - Annotation to avoid compiler warnings + 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.lang; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; +import static java.lang.annotation.RetentionPolicy.SOURCE; +import static java.lang.annotation.ElementType.*; + +/** + * Tell the compiler that a given warning should be suppressed when it + * pertains to the marked program element and its sub-elements. + * + * Note that warning suppression is additive. For instance if a + * constructor has a warning suppressed, and a local variable in the + * constructor has a different warning suppressed, then the resulting + * set of suppressed warnings for that variable will be both warnings. + * + * @since 1.5 + */ +@Retention(SOURCE) +@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) +public @interface SuppressWarnings +{ + /** + * The list of warnings to suppress. + * + * It is valid to list a name more than once. Unrecognized names + * are not a compile-time error. At the present there is no + * standard for the names to be recognized by compilers; consult + * your compiler's documentation for this information. + */ + String[] value (); +} diff --git a/libjava/classpath/java/lang/System.java b/libjava/classpath/java/lang/System.java index 19278aa32cd..ca390bf161b 100644 --- a/libjava/classpath/java/lang/System.java +++ b/libjava/classpath/java/lang/System.java @@ -44,6 +44,14 @@ import gnu.classpath.VMStackWalker; import java.io.InputStream; import java.io.PrintStream; +import java.util.AbstractCollection; +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; @@ -98,6 +106,11 @@ public final class System public static final PrintStream err = VMSystem.makeStandardErrorStream(); /** + * A cached copy of the environment variable map. + */ + private static Map environmentMap; + + /** * This class is uninstantiable. */ private System() @@ -118,6 +131,7 @@ public final class System SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) sm.checkPermission(new RuntimePermission("setIO")); + VMSystem.setIn(in); } @@ -134,8 +148,7 @@ public final class System { SecurityManager sm = SecurityManager.current; // Be thread-safe. if (sm != null) - sm.checkPermission(new RuntimePermission("setIO")); - + sm.checkPermission(new RuntimePermission("setIO")); VMSystem.setOut(out); } @@ -221,7 +234,7 @@ public final class System { return VMSystem.currentTimeMillis(); } - + /** *

    * Returns the current value of a nanosecond-precise system timer. @@ -493,6 +506,60 @@ public final class System } /** + *

    + * Returns an unmodifiable view of the system environment variables. + * If the underlying system does not support environment variables, + * an empty map is returned. + *

    + *

    + * The returned map is read-only and does not accept queries using + * null keys or values, or those of a type other than String. + * Attempts to modify the map will throw an + * UnsupportedOperationException, while attempts + * to pass in a null value will throw a + * NullPointerException. Types other than String + * throw a ClassCastException. + *

    + *

    + * As the returned map is generated using data from the underlying + * platform, it may not comply with the equals() + * and hashCode() contracts. It is also likely that + * the keys of this map will be case-sensitive. + *

    + *

    + * Use of this method may require a security check for the + * RuntimePermission "getenv.*". + *

    + * + * @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 getenv() + { + SecurityManager sm = SecurityManager.current; // Be thread-safe. + if (sm != null) + sm.checkPermission(new RuntimePermission("getenv.*")); + if (environmentMap == null) + { + List environ = (List)VMSystem.environ(); + Map variables = new EnvironmentMap(); + for (String pair : environ) + { + String[] parts = pair.split("="); + if (parts.length == 2) + variables.put(parts[0], parts[1]); + else + variables.put(parts[0], ""); + } + environmentMap = Collections.unmodifiableMap(variables); + } + return environmentMap; + } + + /** * Terminate the Virtual Machine. This just calls * Runtime.getRuntime().exit(status), and never returns. * Obviously, a security check is in order, checkExit. @@ -604,4 +671,419 @@ public final class System return VMRuntime.mapLibraryName(libname); } + + /** + * This is a specialised Collection, providing + * the necessary provisions for the collections used by the + * environment variable map. Namely, it prevents + * querying anything but Strings. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class EnvironmentCollection + extends AbstractCollection + { + + /** + * The wrapped collection. + */ + protected Collection 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 coll) + { + c = coll; + } + + /** + * Blocks queries containing a null object or an object which + * isn't of type String. 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 String. 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 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 + + /** + * This is a specialised HashMap, which + * prevents the addition or querying of anything other than + * String objects. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + static class EnvironmentMap + extends HashMap + { + + /** + * Cache the entry set. + */ + private transient Set> entries; + + /** + * Cache the key set. + */ + private transient Set keys; + + /** + * Cache the value collection. + */ + private transient Collection values; + + /** + * Constructs a new empty EnvironmentMap. + */ + EnvironmentMap() + { + super(); + } + + /** + * Constructs a new EnvironmentMap 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 m) + { + super(m); + } + + /** + * Blocks queries containing a null key or one which is not + * of type String. 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-String 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> entrySet() + { + if (entries == null) + entries = super.entrySet(); + return entries; + } + + /** + * Blocks queries containing a null or non-String 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 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 String. + * + * @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 values() + { + if (values == null) + values = new EnvironmentCollection(super.values()); + return values; + } + + } + + /** + * This is a specialised Set, 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-String values. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class EnvironmentSet + extends EnvironmentCollection + implements Set + { + + /** + * 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 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 + } // class System diff --git a/libjava/classpath/java/lang/Thread.java b/libjava/classpath/java/lang/Thread.java index 36b7c3303a9..01b380b67b5 100644 --- a/libjava/classpath/java/lang/Thread.java +++ b/libjava/classpath/java/lang/Thread.java @@ -143,6 +143,9 @@ public class Thread implements Runnable /** This thread's ID. */ private final long threadId; + + /** The park blocker. See LockSupport. */ + Object parkBlocker; /** The next thread number to use. */ private static int numAnonymousThreadsCreated; @@ -352,9 +355,9 @@ public class Thread implements Runnable if (group == null) { if (sm != null) - group = sm.getThreadGroup(); + group = sm.getThreadGroup(); if (group == null) - group = current.group; + group = current.group; } if (sm != null) sm.checkAccess(group); @@ -398,7 +401,7 @@ public class Thread implements Runnable this.vmThread = vmThread; this.runnable = null; if (name == null) - name = createAnonymousThreadName(); + name = createAnonymousThreadName(); this.name = name; this.priority = priority; this.daemon = daemon; @@ -413,11 +416,11 @@ public class Thread implements Runnable // (and, as above, the constructiong sequence calls Thread.currenThread()). contextClassLoaderIsSystemClassLoader = true; synchronized (Thread.class) - { - this.threadId = ++totalThreadsCreated; - } + { + this.threadId = ++totalThreadsCreated; + } } - + /** * Generate a name for an anonymous thread. */ @@ -466,7 +469,7 @@ public class Thread implements Runnable { VMThread t = vmThread; if (t == null || group == null) - throw new IllegalThreadStateException(); + throw new IllegalThreadStateException(); return t.countStackFrames(); } @@ -610,7 +613,7 @@ public class Thread implements Runnable checkAccess(); VMThread t = vmThread; if (t != null) - t.interrupt(); + t.interrupt(); } /** @@ -701,12 +704,12 @@ public class Thread implements Runnable */ public final void join(long ms, int ns) throws InterruptedException { - if(ms < 0 || ns < 0 || ns > 999999) - throw new IllegalArgumentException(); + if (ms < 0 || ns < 0 || ns > 999999) + throw new IllegalArgumentException(); VMThread t = vmThread; - if(t != null) - t.join(ms, ns); + if (t != null) + t.join(ms, ns); } /** @@ -724,7 +727,7 @@ public class Thread implements Runnable checkAccess(); VMThread t = vmThread; if (t != null) - t.resume(); + t.resume(); } /** @@ -828,9 +831,9 @@ public class Thread implements Runnable throw new NullPointerException(); VMThread t = vmThread; if (t != null) - t.setName(name); + t.setName(name); else - this.name = name; + this.name = name; } /** @@ -850,11 +853,13 @@ public class Thread implements Runnable * 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. + * @param ms the number of milliseconds to sleep, or 0 for forever * @throws InterruptedException if the Thread is (or was) interrupted; * it's interrupted status will be cleared * @throws IllegalArgumentException if ms is negative * @see #interrupt() + * @see #notify() + * @see #wait(long) */ public static void sleep(long ms) throws InterruptedException { @@ -874,17 +879,18 @@ public class Thread implements Runnable * 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 + * @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 interrupted status 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 void sleep(long ms, int ns) throws InterruptedException { - // Check parameters if (ms < 0 ) throw new IllegalArgumentException("Negative milliseconds: " + ms); @@ -909,7 +915,7 @@ public class Thread implements Runnable public synchronized void start() { if (vmThread != null || group == null) - throw new IllegalThreadStateException(); + throw new IllegalThreadStateException(); VMThread.create(this, stacksize); } @@ -1006,7 +1012,7 @@ public class Thread implements Runnable checkAccess(); VMThread t = vmThread; if (t != null) - t.suspend(); + t.suspend(); } /** @@ -1033,9 +1039,9 @@ public class Thread implements Runnable priority = Math.min(priority, group.getMaxPriority()); VMThread t = vmThread; if (t != null) - t.setPriority(priority); + t.setPriority(priority); else - this.priority = priority; + this.priority = priority; } /** @@ -1229,6 +1235,37 @@ public class Thread implements Runnable void uncaughtException(Thread thr, Throwable exc); } + /** + *

    + * Represents the current state of a thread, according to the VM rather + * than the operating system. It can be one of the following: + *

    + *
      + *
    • NEW -- The thread has just been created but is not yet running.
    • + *
    • RUNNABLE -- The thread is currently running or can be scheduled + * to run.
    • + *
    • BLOCKED -- The thread is blocked waiting on an I/O operation + * or to obtain a lock.
    • + *
    • WAITING -- The thread is waiting indefinitely for another thread + * to do something.
    • + *
    • TIMED_WAITING -- The thread is waiting for a specific amount of time + * for another thread to do something.
    • + *
    • TERMINATED -- The thread has exited.
    • + *
    + * + * @since 1.5 + */ + public enum State + { + BLOCKED, NEW, RUNNABLE, TERMINATED, TIMED_WAITING, WAITING; + + /** + * For compatability with Sun's JDK + */ + private static final long serialVersionUID = 605505746047245783L; + } + + /** * Returns the current state of the thread. This * is designed for monitoring thread behaviour, rather @@ -1236,14 +1273,14 @@ public class Thread implements Runnable * * @return the current thread state. */ - public String getState() + public State getState() { VMThread t = vmThread; if (t != null) - return t.getState(); + return State.valueOf(t.getState()); if (group == null) - return "TERMINATED"; - return "NEW"; + return State.TERMINATED; + return State.NEW; } /** @@ -1279,7 +1316,7 @@ public class Thread implements Runnable * @since 1.5 * @see #getStackTrace() */ - public static Map getAllStackTraces() + public static Map getAllStackTraces() { ThreadGroup group = currentThread().group; while (group.getParent() != null) diff --git a/libjava/classpath/java/lang/ThreadLocal.java b/libjava/classpath/java/lang/ThreadLocal.java index 64df8c3dd26..6c4ba176a41 100644 --- a/libjava/classpath/java/lang/ThreadLocal.java +++ b/libjava/classpath/java/lang/ThreadLocal.java @@ -1,5 +1,5 @@ /* ThreadLocal -- a variable with a unique value per thread - Copyright (C) 2000, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -84,16 +84,16 @@ import java.util.Map; * @author Mark Wielaard (mark@klomp.org) * @author Eric Blake (ebb9@email.byu.edu) * @since 1.2 - * @status updated to 1.4 + * @status updated to 1.5 */ -public class ThreadLocal +public class ThreadLocal { /** * 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 NULL = new Object(); + static final Object sentinel = new Object(); /** * Creates a ThreadLocal object without associating any value to it yet. @@ -110,7 +110,7 @@ public class ThreadLocal * * @return the initial value of the variable in this thread */ - protected Object initialValue() + protected T initialValue() { return null; } @@ -123,18 +123,18 @@ public class ThreadLocal * * @return the value of the variable in this thread */ - public Object get() + public T get() { - Map map = Thread.getThreadLocals(); + Map,T> map = (Map,T>) Thread.getThreadLocals(); // Note that we don't have to synchronize, as only this thread will // ever modify the map. - Object value = map.get(this); + T value = map.get(this); if (value == null) { value = initialValue(); - map.put(this, value == null ? NULL : value); + map.put(this, (T) (value == null ? sentinel : value)); } - return value == NULL ? null : value; + return value == (T) sentinel ? null : value; } /** @@ -145,12 +145,12 @@ public class ThreadLocal * * @param value the value to set this thread's view of the variable to */ - public void set(Object value) + public void set(T value) { Map map = Thread.getThreadLocals(); // Note that we don't have to synchronize, as only this thread will // ever modify the map. - map.put(this, value == null ? NULL : value); + map.put(this, value == null ? sentinel : value); } /** diff --git a/libjava/classpath/java/lang/Void.java b/libjava/classpath/java/lang/Void.java index 15035426830..05ed98503fb 100644 --- a/libjava/classpath/java/lang/Void.java +++ b/libjava/classpath/java/lang/Void.java @@ -1,5 +1,5 @@ /* Void.class - defines void.class - Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,7 +49,7 @@ package java.lang; * @author John Keiser * @author Eric Blake (ebb9@email.byu.edu) * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.5 */ public final class Void { @@ -57,7 +57,7 @@ public final class Void * The return type void is represented by this * Class object. */ - public static final Class TYPE = VMClassLoader.getPrimitiveClass('V'); + public static final Class TYPE = (Class) VMClassLoader.getPrimitiveClass('V'); /** * Void is non-instantiable. diff --git a/libjava/classpath/java/lang/annotation/Annotation.java b/libjava/classpath/java/lang/annotation/Annotation.java index 01e23930eea..cc334ec3bb6 100644 --- a/libjava/classpath/java/lang/annotation/Annotation.java +++ b/libjava/classpath/java/lang/annotation/Annotation.java @@ -54,8 +54,7 @@ public interface Annotation * * @return the class of which this annotation is an instance. */ - /* FIXME[GENERICS]: Should return Class */ - Class annotationType(); + Class annotationType(); /** *

    diff --git a/libjava/classpath/java/lang/annotation/Documented.java b/libjava/classpath/java/lang/annotation/Documented.java new file mode 100644 index 00000000000..9a51bc2f036 --- /dev/null +++ b/libjava/classpath/java/lang/annotation/Documented.java @@ -0,0 +1,50 @@ +/* Documented.java - Indicates documented source element + Copyright (C) 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.annotation; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +@Documented @Retention(RUNTIME) +public @interface Documented +{ +} diff --git a/libjava/classpath/java/lang/annotation/ElementType.java b/libjava/classpath/java/lang/annotation/ElementType.java new file mode 100644 index 00000000000..3ab89c94610 --- /dev/null +++ b/libjava/classpath/java/lang/annotation/ElementType.java @@ -0,0 +1,59 @@ +/* ElementType.java - Enum listing Java source elements + Copyright (C) 2004 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.annotation; + +/** + * @since 1.5 + */ +public enum ElementType +{ + ANNOTATION_TYPE, + CONSTRUCTOR, + FIELD, + LOCAL_VARIABLE, + METHOD, + PACKAGE, + PARAMETER, + TYPE; + + /** + * For compatability with Sun's JDK + */ + private static final long serialVersionUID = 2798216111136361587L; + +} diff --git a/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java b/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java index a35df0c09b8..5b20650d1cf 100644 --- a/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java +++ b/libjava/classpath/java/lang/annotation/IncompleteAnnotationException.java @@ -58,7 +58,8 @@ public class IncompleteAnnotationException extends RuntimeException * @param type the type of annotation from which an element is missing. * @param name the name of the missing element. */ - public IncompleteAnnotationException(Class type, String name) + public IncompleteAnnotationException(Class type, + String name) { this.annotationType = type; this.elementName = name; @@ -70,7 +71,7 @@ public class IncompleteAnnotationException extends RuntimeException * * @return the type of annotation. */ - public Class annotationType() + public Class annotationType() { return annotationType; } @@ -94,7 +95,7 @@ public class IncompleteAnnotationException extends RuntimeException * @serial the type of the annotation from which an * element was missing. */ - private Class annotationType; + private Class annotationType; /** * The name of the missing element. diff --git a/libjava/classpath/java/lang/annotation/Inherited.java b/libjava/classpath/java/lang/annotation/Inherited.java new file mode 100644 index 00000000000..34acbf47ccc --- /dev/null +++ b/libjava/classpath/java/lang/annotation/Inherited.java @@ -0,0 +1,51 @@ +/* Inherited.java - Indicates inherited annotation + Copyright (C) 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.annotation; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import static java.lang.annotation.ElementType.ANNOTATION_TYPE; + +/** + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) +public @interface Inherited +{ +} diff --git a/libjava/classpath/java/lang/annotation/Retention.java b/libjava/classpath/java/lang/annotation/Retention.java new file mode 100644 index 00000000000..8d8a79dbc36 --- /dev/null +++ b/libjava/classpath/java/lang/annotation/Retention.java @@ -0,0 +1,59 @@ +/* Retention.java - Retention policy for an annotation + Copyright (C) 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.annotation; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import static java.lang.annotation.ElementType.ANNOTATION_TYPE; + +/** + * This annotation is used to specify the desired lifetime of another + * annotation. + * + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @see RetentionPolicy + * @since 1.5 + */ +@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) +public @interface Retention +{ + /** + * The value holds the lifetime of the annotation. + */ + RetentionPolicy value(); +} diff --git a/libjava/classpath/java/lang/annotation/RetentionPolicy.java b/libjava/classpath/java/lang/annotation/RetentionPolicy.java new file mode 100644 index 00000000000..56d2af1b7b3 --- /dev/null +++ b/libjava/classpath/java/lang/annotation/RetentionPolicy.java @@ -0,0 +1,66 @@ +/* RetentionPolicy.java - Enum listing lifetimes for an annotation + Copyright (C) 2004 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.annotation; + +/** + * This enum is used to control the lifetime of an annotation. + * + * @see Retention + * + * @since 1.5 + */ +public enum RetentionPolicy +{ + /** Indicates that the annotation should be stored in class files. */ + CLASS, + + /** Indicates that the annotation should be available at runtime. */ + RUNTIME, + + /** + * Indicates that the annotation should only be available when + * parsing the source code. + */ + SOURCE; + + /** + * For compatability with Sun's JDK + */ + private static final long serialVersionUID = -1700821648800605045L; + +} diff --git a/libjava/classpath/java/lang/annotation/Target.java b/libjava/classpath/java/lang/annotation/Target.java new file mode 100644 index 00000000000..c9d9686325e --- /dev/null +++ b/libjava/classpath/java/lang/annotation/Target.java @@ -0,0 +1,52 @@ +/* Target.java - Indicate where an annotation may be applied + Copyright (C) 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.annotation; + +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import static java.lang.annotation.ElementType.ANNOTATION_TYPE; + +/** + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) +public @interface Target +{ + ElementType[] value(); +} diff --git a/libjava/classpath/java/lang/class-dependencies.conf b/libjava/classpath/java/lang/class-dependencies.conf new file mode 100644 index 00000000000..4fbf75eb1ce --- /dev/null +++ b/libjava/classpath/java/lang/class-dependencies.conf @@ -0,0 +1,58 @@ +# This property file contains dependencies of classes, methods, and +# field on other methods or classes. +# +# Syntax: +# +# : [... ] +# +# means that when is included, (... ) must +# be included as well. +# +# and are of the form +# +# +# +# or just +# +# +# +# Within dependencies, variables can be used. A variable is defined as +# follows: +# +# {variable}: value1 value2 ... value +# +# variables can be used on the right side of dependencies as follows: +# +# : com.bla.blu.{variable}.Class.m()V +# +# The use of the variable will expand to dependencies of the form +# +# : com.bla.blu.value1.Class.m()V +# : com.bla.blu.value2.Class.m()V +# ... +# : com.bla.blu.value.Class.m()V +# +# Variables can be redefined when building a system to select the +# required support for features like encodings, protocols, etc. +# +# Hints: +# +# - For methods and fields, the signature is mandatory. For +# specification, please see the Java Virtual Machine Specification by +# SUN. Unlike in the spec, field signatures (types) are in brackets. +# +# - Package names must be separated by '/' (and not '.'). E.g., +# java/lang/Class (this is necessary, because the '.' is used to +# separate method or field names from classes) +# +# - In case refers to a class, only the class itself will be +# included in the resulting binary, NOT necessarily all its methods +# and fields. If you want to refer to all methods and fields, you can +# write class.* as an abbreviation. +# +# - Abbreviations for packages are also possible: my/package/* means all +# methods and fields of all classes in my/package. +# +# - A line with a trailing '\' continues in the next line. + +# end of file diff --git a/libjava/classpath/java/lang/instrument/ClassDefinition.java b/libjava/classpath/java/lang/instrument/ClassDefinition.java index 841597c31ed..f2fbf929667 100644 --- a/libjava/classpath/java/lang/instrument/ClassDefinition.java +++ b/libjava/classpath/java/lang/instrument/ClassDefinition.java @@ -60,8 +60,7 @@ public final class ClassDefinition * @param theClassFile the new class file * @throws NullPointerException if one of the argument is null */ - /* FIXME[GENERICS]: Signature should be (Class, byte[]) */ - public ClassDefinition(Class theClass, byte[] theClassFile) + public ClassDefinition(Class theClass, byte[] theClassFile) { if (theClass == null || theClassFile == null) throw new NullPointerException(); @@ -72,8 +71,7 @@ public final class ClassDefinition /** * @return the Class */ - /* FIXME[GENERICS]: Should return Class */ - public Class getDefinitionClass() + public Class getDefinitionClass() { return theClass; } diff --git a/libjava/classpath/java/lang/instrument/ClassFileTransformer.java b/libjava/classpath/java/lang/instrument/ClassFileTransformer.java index 68638d71971..01b2f8aaaf5 100644 --- a/libjava/classpath/java/lang/instrument/ClassFileTransformer.java +++ b/libjava/classpath/java/lang/instrument/ClassFileTransformer.java @@ -75,10 +75,9 @@ public interface ClassFileTransformer * @see Instrumentation#redefineClasses(java.lang.instrument.ClassDefinition[]) * */ - /* FIXME[GENERICS]: Class should be Class */ byte[] transform(ClassLoader loader, String className, - Class classBeingRedefined, + Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException; diff --git a/libjava/classpath/java/lang/management/ManagementFactory.java b/libjava/classpath/java/lang/management/ManagementFactory.java index 6e7af0f274e..a51ca0f4c9f 100644 --- a/libjava/classpath/java/lang/management/ManagementFactory.java +++ b/libjava/classpath/java/lang/management/ManagementFactory.java @@ -50,9 +50,18 @@ import gnu.java.lang.management.RuntimeMXBeanImpl; import gnu.java.lang.management.ThreadMXBeanImpl; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.logging.LogManager; + +import javax.management.InstanceAlreadyExistsException; +import javax.management.MBeanRegistrationException; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.MalformedObjectNameException; import javax.management.NotCompliantMBeanException; +import javax.management.ObjectName; /** *

    @@ -66,7 +75,55 @@ import javax.management.NotCompliantMBeanException; *

      *
    1. Calling the appropriate static method of this factory. *
    2. + *
    3. Using the platform {@link javax.management.MBeanServer} + * to access the beans locally, or an + * {@link javax.management.MBeanServerConnection} for remote + * access. The attributes and operations use the limited + * range of data types specified below.
    4. *
    + *

    Open Data Types

    + *

    + * The data types used by the management beans are restricted + * to open data types to aid interoperability. This + * allows the beans to be accessed remotely, including from non-Java + * clients. Below is a table which lists the types used by the beans + * on the left, and the types they are converted to when returned via + * a bean server on the right. Type information is provided for each + * bean by obtaining its instance of {@link javax.management.MBeanInfo}. + *

    + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
    Data Type UsedData Type Returned
    Primitive types (int, char, etc.)Same
    Wrapper classes ({@link{java.lang.Integer}, + * @link{java.lang.Character}, etc.)Same
    An {@link java.lang.Enum}The name of the enumeration constant
    An array of type EAn array of the same dimensions with this mapping applied + * to E.
    A class with `getter' methods and a + * from({@link javax.management.openmbean.CompositeData}) + * method.The equivalent {@link javax.management.openmbean.CompositeData} + * instance, specified by the from method.
    A map with keys of type K and values of + * type V.A {@link javax.management.openmbean.TabularData} instance, + * with the row type containing two items, "key" and + * "value" with the types K and V + * respectively (with translation applied).
    A list of type E.An array with this mapping applied to E.
    * * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 @@ -75,6 +132,60 @@ public class ManagementFactory { /** + * The object name for the class loading bean. + */ + public static final String CLASS_LOADING_MXBEAN_NAME = + "java.lang:type=ClassLoading"; + + /** + * The object name for the compilation bean. + */ + public static final String COMPILATION_MXBEAN_NAME = + "java.lang:type=Compilation"; + + /** + * The domain for the garbage collecting beans. + */ + public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE = + "java.lang:type=GarbageCollector"; + + /** + * The domain for the memory manager beans. + */ + public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE = + "java.lang:type=MemoryManager"; + + /** + * The object name for the memory bean. + */ + public static final String MEMORY_MXBEAN_NAME = + "java.lang:type=Memory"; + + /** + * The domain for the memory pool beans. + */ + public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE = + "java.lang:type=MemoryPool"; + + /** + * The object name for the operating system bean. + */ + public static final String OPERATING_SYSTEM_MXBEAN_NAME = + "java.lang:type=OperatingSystem"; + + /** + * The object name for the runtime bean. + */ + public static final String RUNTIME_MXBEAN_NAME = + "java.lang:type=Runtime"; + + /** + * The object name for the threading bean. + */ + public static final String THREAD_MXBEAN_NAME = + "java.lang:type=Threading"; + + /** * The operating system management bean. */ private static OperatingSystemMXBean osBean; @@ -105,6 +216,11 @@ public class ManagementFactory private static CompilationMXBean compilationBean; /** + * The platform server. + */ + private static MBeanServer platformServer; + + /** * Private constructor to prevent instance creation. */ private ManagementFactory() {} @@ -258,9 +374,10 @@ public class ManagementFactory * * @return a list of memory pool beans, one for each pool. */ - public static List getMemoryPoolMXBeans() + public static List getMemoryPoolMXBeans() { - List poolBeans = new ArrayList(); + List poolBeans = + new ArrayList(); String[] names = VMManagementFactory.getMemoryPoolNames(); for (int a = 0; a < names.length; ++a) try @@ -283,9 +400,10 @@ public class ManagementFactory * * @return a list of memory manager beans, one for each manager. */ - public static List getMemoryManagerMXBeans() + public static List getMemoryManagerMXBeans() { - List managerBeans = new ArrayList(); + List managerBeans = + new ArrayList(); String[] names = VMManagementFactory.getMemoryManagerNames(); for (int a = 0; a < names.length; ++a) try @@ -309,9 +427,10 @@ public class ManagementFactory * * @return a list of garbage collector beans, one for each pool. */ - public static List getGarbageCollectorMXBeans() + public static List getGarbageCollectorMXBeans() { - List gcBeans = new ArrayList(); + List gcBeans = + new ArrayList(); String[] names = VMManagementFactory.getGarbageCollectorNames(); for (int a = 0; a < names.length; ++a) try @@ -328,4 +447,106 @@ public class ManagementFactory return gcBeans; } + /** + *

    + * Returns the platform {@link javax.management.MBeanServer}. On the + * first call to this method, a server instance is retrieved from + * the {@link javax.management.MBeanServerFactory} and each of the + * beans are registered with it. Subsequent calls return the existing + * instance. If the property javax.management.builder.initial + * is set, its value will be used as the name of the class which is used + * to provide the server instance. + *

    + *

    + * It is recommended that the platform server is used for other beans as + * well, in order to simplify their discovery and publication. Name conflicts + * should be avoided. + *

    + * + * @return the platform {@link javax.management.MBeanServer} + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanServerPermission(String)}("createMBeanServer") + * @see javax.management.MBeanServerFactory + * @see javax.management.MBeanServerFactory#createMBeanServer() + */ + public static MBeanServer getPlatformMBeanServer() + { + if (platformServer == null) + { + platformServer = MBeanServerFactory.createMBeanServer(); + try + { + platformServer.registerMBean(getOperatingSystemMXBean(), + new ObjectName(OPERATING_SYSTEM_MXBEAN_NAME)); + platformServer.registerMBean(getRuntimeMXBean(), + new ObjectName(RUNTIME_MXBEAN_NAME)); + platformServer.registerMBean(getClassLoadingMXBean(), + new ObjectName(CLASS_LOADING_MXBEAN_NAME)); + platformServer.registerMBean(getThreadMXBean(), + new ObjectName(THREAD_MXBEAN_NAME)); + platformServer.registerMBean(getMemoryMXBean(), + new ObjectName(MEMORY_MXBEAN_NAME)); + CompilationMXBean compBean = getCompilationMXBean(); + if (compBean != null) + platformServer.registerMBean(compBean, + new ObjectName(COMPILATION_MXBEAN_NAME)); + Iterator beans = getMemoryPoolMXBeans().iterator(); + while (beans.hasNext()) + { + MemoryPoolMXBean bean = (MemoryPoolMXBean) beans.next(); + platformServer.registerMBean(bean, + new ObjectName(MEMORY_POOL_MXBEAN_DOMAIN_TYPE + + ",name=" + + bean.getName())); + } + beans = getMemoryManagerMXBeans().iterator(); + while (beans.hasNext()) + { + MemoryManagerMXBean bean = (MemoryManagerMXBean) beans.next(); + platformServer.registerMBean(bean, + new ObjectName(MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE + + ",name=" + + bean.getName())); + } + beans = getGarbageCollectorMXBeans().iterator(); + while (beans.hasNext()) + { + GarbageCollectorMXBean bean = (GarbageCollectorMXBean) beans.next(); + platformServer.registerMBean(bean, + new ObjectName(GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE + + ",name=" + + bean.getName())); + } + platformServer.registerMBean(LogManager.getLoggingMXBean(), + new ObjectName(LogManager.LOGGING_MXBEAN_NAME)); + } + catch (InstanceAlreadyExistsException e) + { + throw (Error) + (new InternalError("One of the management beans is " + + "already registered.").initCause(e)); + } + catch (MBeanRegistrationException e) + { + throw (Error) + (new InternalError("One of the management beans' preRegister " + + "methods threw an exception.").initCause(e)); + } + catch (NotCompliantMBeanException e) + { + throw (Error) + (new InternalError("One of the management beans is " + + "not compliant.").initCause(e)); + } + catch (MalformedObjectNameException e) + { + throw (Error) + (new InternalError("The object name of a management bean is " + + "not compliant.").initCause(e)); + } + } + return platformServer; + } + } diff --git a/libjava/classpath/java/lang/management/MemoryPoolMXBean.java b/libjava/classpath/java/lang/management/MemoryPoolMXBean.java index 5b04c64d3b8..36a8236dc01 100644 --- a/libjava/classpath/java/lang/management/MemoryPoolMXBean.java +++ b/libjava/classpath/java/lang/management/MemoryPoolMXBean.java @@ -162,7 +162,7 @@ public interface MemoryPoolMXBean * * @return the type of this pool. */ - String getType(); + MemoryType getType(); /** * Returns memory usage statistics for the current memory usage diff --git a/libjava/classpath/java/lang/management/MemoryType.java b/libjava/classpath/java/lang/management/MemoryType.java new file mode 100644 index 00000000000..4422b329836 --- /dev/null +++ b/libjava/classpath/java/lang/management/MemoryType.java @@ -0,0 +1,51 @@ +/* MemoryType.java - Enumeration of the types of memory pools. + Copyright (C) 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.management; + +/** + * Enumerates the possible types of memory pools. A value of this + * type is returned by {@link MemoryPoolMXBean#getMemoryType()}. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public enum MemoryType +{ + HEAP, NON_HEAP; +} + diff --git a/libjava/classpath/java/lang/management/RuntimeMXBean.java b/libjava/classpath/java/lang/management/RuntimeMXBean.java index cee1d805f89..a2931d12783 100644 --- a/libjava/classpath/java/lang/management/RuntimeMXBean.java +++ b/libjava/classpath/java/lang/management/RuntimeMXBean.java @@ -106,7 +106,7 @@ public interface RuntimeMXBean * denies ManagementPermission("monitor"). * @see java.lang.management.ManagementPermission */ - List getInputArguments(); + List getInputArguments(); /** * Returns the library path. This is equivalent to obtaining the @@ -212,7 +212,7 @@ public interface RuntimeMXBean * * @return the map of system properties. */ - Map getSystemProperties(); + Map getSystemProperties(); /** * Returns the uptime of the virtual machine in milliseconds. diff --git a/libjava/classpath/java/lang/management/ThreadInfo.java b/libjava/classpath/java/lang/management/ThreadInfo.java index 4bf35a4cbeb..428aca3fac8 100644 --- a/libjava/classpath/java/lang/management/ThreadInfo.java +++ b/libjava/classpath/java/lang/management/ThreadInfo.java @@ -102,7 +102,7 @@ public class ThreadInfo /** * The state of the thread which this instance concerns. */ - private String threadState; + private Thread.State threadState; /** * The number of times the thread has been blocked. @@ -200,10 +200,12 @@ public class ThreadInfo long waitedTime, boolean isInNative, boolean isSuspended, StackTraceElement[] trace) { - this(thread.getId(), thread.getName(), thread.getState(), blockedCount, - blockedTime, lock.getClass().getName() + "@" + - Integer.toHexString(System.identityHashCode(lock)), lockOwner.getId(), - lockOwner.getName(), waitedCount, waitedTime, isInNative, isSuspended, + this(thread.getId(), thread.getName(), thread.getState(), blockedCount, blockedTime, + lock == null ? null : lock.getClass().getName() + "@" + + Integer.toHexString(System.identityHashCode(lock)), + lockOwner == null ? -1 : lockOwner.getId(), + lockOwner == null ? null : lockOwner.getName(), + waitedCount, waitedTime, isInNative, isSuspended, trace); } @@ -240,7 +242,7 @@ public class ThreadInfo * @param trace the stack trace of the thread to a pre-determined * depth (see VMThreadMXBeanImpl) */ - private ThreadInfo(long threadId, String threadName, String threadState, + private ThreadInfo(long threadId, String threadName, Thread.State threadState, long blockedCount, long blockedTime, String lockName, long lockOwnerId, String lockOwnerName, long waitedCount, long waitedTime, boolean isInNative, boolean isSuspended, @@ -387,7 +389,7 @@ public class ThreadInfo dTraces[a].get("lineNumber")).intValue()); return new ThreadInfo(((Long) data.get("threadId")).longValue(), (String) data.get("threadName"), - (String) data.get("threadState"), + Thread.State.valueOf((String) data.get("threadState")), ((Long) data.get("blockedCount")).longValue(), ((Long) data.get("blockedTime")).longValue(), (String) data.get("lockName"), @@ -484,7 +486,7 @@ public class ThreadInfo */ public String getLockName() { - if (threadState.equals("BLOCKED")) + if (threadState != Thread.State.BLOCKED) return null; return lockName; } @@ -502,7 +504,7 @@ public class ThreadInfo */ public long getLockOwnerId() { - if (threadState.equals("BLOCKED")) + if (threadState != Thread.State.BLOCKED) return -1; return lockOwnerId; } @@ -520,7 +522,7 @@ public class ThreadInfo */ public String getLockOwnerName() { - if (threadState.equals("BLOCKED")) + if (threadState != Thread.State.BLOCKED) return null; return lockOwnerName; } @@ -577,7 +579,7 @@ public class ThreadInfo * * @return the thread's state. */ - public String getThreadState() + public Thread.State getThreadState() { return threadState; } @@ -695,7 +697,7 @@ public class ThreadInfo ", waitedCount=" + waitedCount + ", isInNative=" + isInNative + ", isSuspended=" + isSuspended + - (threadState.equals("BLOCKED") ? + (threadState == Thread.State.BLOCKED ? ", lockOwnerId=" + lockOwnerId + ", lockOwnerName=" + lockOwnerName : "") + "]"; diff --git a/libjava/classpath/java/lang/ref/PhantomReference.java b/libjava/classpath/java/lang/ref/PhantomReference.java index 4d929c29c58..67e97d399cd 100644 --- a/libjava/classpath/java/lang/ref/PhantomReference.java +++ b/libjava/classpath/java/lang/ref/PhantomReference.java @@ -1,5 +1,5 @@ /* java.lang.ref.PhantomReference - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,8 +46,8 @@ package java.lang.ref; * * @author Jochen Hoenicke */ -public class PhantomReference - extends Reference +public class PhantomReference + extends Reference { /** * Creates a new phantom reference. @@ -56,7 +56,7 @@ public class PhantomReference * finalized. This mustn't be null. * @exception NullPointerException if q is null. */ - public PhantomReference(Object referent, ReferenceQueue q) + public PhantomReference(T referent, ReferenceQueue q) { super(referent, q); } @@ -66,7 +66,7 @@ public class PhantomReference * @return null, since the refered object may be * finalized and thus not accessible. */ - public Object get() + public T get() { return null; } diff --git a/libjava/classpath/java/lang/ref/Reference.java b/libjava/classpath/java/lang/ref/Reference.java index 4b6a3adbcc1..ce224b891f9 100644 --- a/libjava/classpath/java/lang/ref/Reference.java +++ b/libjava/classpath/java/lang/ref/Reference.java @@ -1,5 +1,5 @@ /* java.lang.ref.Reference - Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -70,19 +70,19 @@ package java.lang.ref; * @author Jochen Hoenicke * @see java.util.WeakHashMap */ -public abstract class Reference +public abstract class Reference { /** * The underlying object. This field is handled in a special way by * the garbage collector. */ - Object referent; + T referent; /** * The queue this reference is registered on. This is null, if this * wasn't registered to any queue or reference was already enqueued. */ - ReferenceQueue queue; + volatile ReferenceQueue queue; /** * Link to the next entry on the queue. If this is null, this @@ -91,7 +91,7 @@ public abstract class Reference * (not to null, that value is used to mark a not enqueued * reference). */ - Reference nextOnQueue; + volatile Reference nextOnQueue; /** * This lock should be taken by the garbage collector, before @@ -106,7 +106,7 @@ public abstract class Reference * class in a different package. * @param ref the object we refer to. */ - Reference(Object ref) + Reference(T ref) { referent = ref; } @@ -119,7 +119,7 @@ public abstract class Reference * @param q the reference queue to register on. * @exception NullPointerException if q is null. */ - Reference(Object ref, ReferenceQueue q) + Reference(T ref, ReferenceQueue q) { if (q == null) throw new NullPointerException(); @@ -132,7 +132,7 @@ public abstract class Reference * @return the object, this reference refers to, or null if the * reference was cleared. */ - public Object get() + public T get() { synchronized (lock) { @@ -166,11 +166,10 @@ public abstract class Reference */ public boolean enqueue() { - if (queue != null && nextOnQueue == null) + ReferenceQueue q = queue; + if (q != null) { - queue.enqueue(this); - queue = null; - return true; + return q.enqueue(this); } return false; } diff --git a/libjava/classpath/java/lang/ref/ReferenceQueue.java b/libjava/classpath/java/lang/ref/ReferenceQueue.java index f4729f282be..28162877905 100644 --- a/libjava/classpath/java/lang/ref/ReferenceQueue.java +++ b/libjava/classpath/java/lang/ref/ReferenceQueue.java @@ -1,5 +1,5 @@ /* java.lang.ref.ReferenceQueue - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -50,7 +50,7 @@ package java.lang.ref; * @author Jochen Hoenicke * @see Reference#enqueue() */ -public class ReferenceQueue +public class ReferenceQueue { /** * This is a linked list of references. If this is null, the list is @@ -60,7 +60,13 @@ public class ReferenceQueue * itself (not to null, since nextOnQueue is used to * determine if a reference is enqueued). */ - private Reference first; + private Reference first; + + /** + * This is the lock that protects our linked list and is used to signal + * a thread waiting in remove(). + */ + private final Object lock = new Object(); /** * Creates a new empty reference queue. @@ -76,7 +82,7 @@ public class ReferenceQueue * @return a reference on the queue, if there is one, * null otherwise. */ - public synchronized Reference poll() + public Reference poll() { return dequeue(); } @@ -84,29 +90,41 @@ public class ReferenceQueue /** * This is called by reference to enqueue itself on this queue. * @param ref the reference that should be enqueued. + * @return true if successful, false if not. */ - synchronized void enqueue(Reference ref) - { - /* last reference will point to itself */ - ref.nextOnQueue = first == null ? ref : first; - first = ref; - /* this wakes only one remove thread. */ - notify(); + final boolean enqueue(Reference ref) + { + synchronized (lock) + { + if (ref.queue != this) + return false; + + /* last reference will point to itself */ + ref.nextOnQueue = first == null ? ref : first; + ref.queue = null; + first = ref; + /* this wakes only one remove thread. */ + lock.notify(); + return true; + } } /** * Remove a reference from the queue, if there is one. * @return the first element of the queue, or null if there isn't any. */ - private Reference dequeue() + private Reference dequeue() { - if (first == null) - return null; - - Reference result = first; - first = (first == first.nextOnQueue) ? null : first.nextOnQueue; - result.nextOnQueue = null; - return result; + synchronized (lock) + { + if (first == null) + return null; + + Reference result = first; + first = (first == first.nextOnQueue) ? null : first.nextOnQueue; + result.nextOnQueue = null; + return result; + } } /** @@ -118,12 +136,13 @@ public class ReferenceQueue * null if timeout period expired. * @exception InterruptedException if the wait was interrupted. */ - public synchronized Reference remove(long timeout) + public Reference remove(long timeout) throws InterruptedException { - if (first == null) + synchronized (lock) { - wait(timeout); + if (first == null) + lock.wait(timeout); } return dequeue(); @@ -137,7 +156,7 @@ public class ReferenceQueue * @return the reference removed from the queue. * @exception InterruptedException if the wait was interrupted. */ - public Reference remove() + public Reference remove() throws InterruptedException { return remove(0L); diff --git a/libjava/classpath/java/lang/ref/SoftReference.java b/libjava/classpath/java/lang/ref/SoftReference.java index 97395eacdfa..077dc173ddd 100644 --- a/libjava/classpath/java/lang/ref/SoftReference.java +++ b/libjava/classpath/java/lang/ref/SoftReference.java @@ -1,5 +1,5 @@ /* java.lang.ref.SoftReference - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -47,14 +47,14 @@ package java.lang.ref; * * @author Jochen Hoenicke */ -public class SoftReference - extends Reference +public class SoftReference + extends Reference { /** * Create a new soft reference, that is not registered to any queue. * @param referent the object we refer to. */ - public SoftReference(Object referent) + public SoftReference(T referent) { super(referent); } @@ -65,7 +65,7 @@ public class SoftReference * @param q the reference queue to register on. * @exception NullPointerException if q is null. */ - public SoftReference(Object referent, ReferenceQueue q) + public SoftReference(T referent, ReferenceQueue q) { super(referent, q); } @@ -75,7 +75,7 @@ public class SoftReference * @return the object, this reference refers to, or null if the * reference was cleared. */ - public Object get() + public T get() { /* Why is this overloaded??? * Maybe for a kind of LRU strategy. */ diff --git a/libjava/classpath/java/lang/ref/WeakReference.java b/libjava/classpath/java/lang/ref/WeakReference.java index b4018fbb55e..563563bf164 100644 --- a/libjava/classpath/java/lang/ref/WeakReference.java +++ b/libjava/classpath/java/lang/ref/WeakReference.java @@ -1,5 +1,5 @@ /* java.lang.ref.WeakReference - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,14 +54,14 @@ package java.lang.ref; * @author Jochen Hoenicke * @see java.util.WeakHashMap */ -public class WeakReference - extends Reference +public class WeakReference + extends Reference { /** * Create a new weak reference, that is not registered to any queue. * @param referent the object we refer to. */ - public WeakReference(Object referent) + public WeakReference(T referent) { super(referent); } @@ -72,7 +72,7 @@ public class WeakReference * @param q the reference queue to register on. * @exception NullPointerException if q is null. */ - public WeakReference(Object referent, ReferenceQueue q) + public WeakReference(T referent, ReferenceQueue q) { super(referent, q); } diff --git a/libjava/classpath/java/lang/reflect/AccessibleObject.java b/libjava/classpath/java/lang/reflect/AccessibleObject.java index 8f09eac1b0b..fd46a53dc8c 100644 --- a/libjava/classpath/java/lang/reflect/AccessibleObject.java +++ b/libjava/classpath/java/lang/reflect/AccessibleObject.java @@ -160,8 +160,7 @@ public class AccessibleObject this.flag = flag; } - /* FIXME[GENERICS]: T getAnnotation(Class ) */ - public Annotation getAnnotation(Class annotationClass) + public T getAnnotation(Class annotationClass) { throw new AssertionError("Subclass must override this method"); } @@ -176,8 +175,7 @@ public class AccessibleObject throw new AssertionError("Subclass must override this method"); } - /* FIXME[GENERICS]: Signature is Class */ - public boolean isAnnotationPresent(Class annotationClass) + public boolean isAnnotationPresent(Class annotationClass) { return getAnnotation(annotationClass) != null; } diff --git a/libjava/classpath/java/lang/reflect/AnnotatedElement.java b/libjava/classpath/java/lang/reflect/AnnotatedElement.java index 69a64a02827..8f2a8b6f5c8 100644 --- a/libjava/classpath/java/lang/reflect/AnnotatedElement.java +++ b/libjava/classpath/java/lang/reflect/AnnotatedElement.java @@ -74,8 +74,7 @@ public interface AnnotatedElement * null if no such annotation exists. * @throws NullPointerException if the annotation class is null. */ - /* FIXME[GENERICS]: T getAnnotation(Class ) */ - Annotation getAnnotation(Class annotationClass); + T getAnnotation(Class annotationClass); /** * Returns all annotations associated with the element. If there are @@ -111,7 +110,6 @@ public interface AnnotatedElement * @return true if an annotation exists for the specified type. * @since 1.5 */ - /* FIXME[GENERICS]: Signature is Class */ - boolean isAnnotationPresent(Class annotationClass); + boolean isAnnotationPresent(Class annotationClass); } diff --git a/libjava/classpath/java/lang/reflect/Array.java b/libjava/classpath/java/lang/reflect/Array.java index ae65ffbf240..373bf204c8e 100644 --- a/libjava/classpath/java/lang/reflect/Array.java +++ b/libjava/classpath/java/lang/reflect/Array.java @@ -95,7 +95,7 @@ public final class Array * @throws NegativeArraySizeException when length is less than 0 * @throws OutOfMemoryError if memory allocation fails */ - public static Object newInstance(Class componentType, int length) + public static Object newInstance(Class componentType, int length) { if (! componentType.isPrimitive()) return VMArray.createObjectArray(componentType, length); @@ -143,7 +143,7 @@ public final class Array * than 0 * @throws OutOfMemoryError if memory allocation fails */ - public static Object newInstance(Class componentType, int[] dimensions) + public static Object newInstance(Class componentType, int[] dimensions) { if (dimensions.length <= 0) throw new IllegalArgumentException ("Empty dimensions array."); diff --git a/libjava/classpath/java/lang/reflect/GenericDeclaration.java b/libjava/classpath/java/lang/reflect/GenericDeclaration.java index 14f5ba8326b..244befd8810 100644 --- a/libjava/classpath/java/lang/reflect/GenericDeclaration.java +++ b/libjava/classpath/java/lang/reflect/GenericDeclaration.java @@ -58,6 +58,5 @@ public interface GenericDeclaration * class file does not conform to that specified in the 3rd edition * of the Java Virtual Machine Specification. */ - /* FIXME[GENERICS]: Should be TypeVariable[] */ - TypeVariable[] getTypeParameters(); + TypeVariable[] getTypeParameters(); } diff --git a/libjava/classpath/java/lang/reflect/Proxy.java b/libjava/classpath/java/lang/reflect/Proxy.java index 94aa0bbb2a0..ef743f6bcb0 100644 --- a/libjava/classpath/java/lang/reflect/Proxy.java +++ b/libjava/classpath/java/lang/reflect/Proxy.java @@ -156,7 +156,7 @@ import java.util.Set; * @see Class * @author Eric Blake (ebb9@email.byu.edu) * @since 1.3 - * @status updated to 1.4, except for the use of ProtectionDomain + * @status updated to 1.5, except for the use of ProtectionDomain */ public class Proxy implements Serializable { @@ -255,8 +255,8 @@ public class Proxy implements Serializable */ // synchronized so that we aren't trying to build the same class // simultaneously in two threads - public static synchronized Class getProxyClass(ClassLoader loader, - Class[] interfaces) + public static synchronized Class getProxyClass(ClassLoader loader, + Class... interfaces) { interfaces = (Class[]) interfaces.clone(); ProxyType pt = new ProxyType(loader, interfaces); @@ -310,7 +310,7 @@ public class Proxy implements Serializable * @see Constructor#newInstance(Object[]) */ public static Object newProxyInstance(ClassLoader loader, - Class[] interfaces, + Class[] interfaces, InvocationHandler handler) { try @@ -358,7 +358,7 @@ public class Proxy implements Serializable */ // This is synchronized on the off chance that another thread is // trying to add a class to the map at the same time we read it. - public static synchronized boolean isProxyClass(Class clazz) + public static synchronized boolean isProxyClass(Class clazz) { if (! Proxy.class.isAssignableFrom(clazz)) return false; diff --git a/libjava/classpath/java/lang/reflect/TypeVariable.java b/libjava/classpath/java/lang/reflect/TypeVariable.java index 4ecc20c9d9e..ec6af69db4f 100644 --- a/libjava/classpath/java/lang/reflect/TypeVariable.java +++ b/libjava/classpath/java/lang/reflect/TypeVariable.java @@ -58,9 +58,7 @@ package java.lang.reflect; * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ -/* FIXME[GENERICS]: Should be TypeVariable */ -public interface TypeVariable - extends Type +public interface TypeVariable extends Type { /** @@ -86,8 +84,7 @@ public interface TypeVariable * @return the GenericDeclaration object for this type * variable. */ - /* FIXME[GENERICS]: Should return type T */ - GenericDeclaration getGenericDeclaration(); + T getGenericDeclaration(); /** * Returns the name of the type variable, as written in the source diff --git a/libjava/classpath/java/math/BigDecimal.java b/libjava/classpath/java/math/BigDecimal.java index bca9b12c28b..28c4d45d3eb 100644 --- a/libjava/classpath/java/math/BigDecimal.java +++ b/libjava/classpath/java/math/BigDecimal.java @@ -37,7 +37,7 @@ exception statement from your version. */ package java.math; -public class BigDecimal extends Number implements Comparable +public class BigDecimal extends Number implements Comparable { private BigInteger intVal; private int scale; @@ -672,7 +672,38 @@ public class BigDecimal extends Number implements Comparable { return divide (val, scale, roundingMode); } - + + /** + * Returns a BigDecimal whose value is (this / val), with the specified scale + * and rounding according to the RoundingMode + * @param val the divisor + * @param scale the scale of the BigDecimal returned + * @param roundingMode the rounding mode to use + * @return a BigDecimal whose value is approximately (this / val) + * @throws ArithmeticException if divisor is zero or the rounding mode is + * UNNECESSARY but the specified scale cannot represent the value exactly + * @since 1.5 + */ + public BigDecimal divide(BigDecimal val, + int scale, RoundingMode roundingMode) + { + return divide (val, scale, roundingMode.ordinal()); + } + + /** + * Returns a BigDecimal whose value is (this / val) rounded according to the + * RoundingMode + * @param val the divisor + * @param roundingMode the rounding mode to use + * @return a BigDecimal whose value is approximately (this / val) + * @throws ArithmeticException if divisor is zero or the rounding mode is + * UNNECESSARY but the specified scale cannot represent the value exactly + */ + public BigDecimal divide (BigDecimal val, RoundingMode roundingMode) + { + return divide (val, scale, roundingMode.ordinal()); + } + public BigDecimal divide(BigDecimal val, int newScale, int roundingMode) throws ArithmeticException, IllegalArgumentException { @@ -823,12 +854,7 @@ public class BigDecimal extends Number implements Comparable return this; } - public int compareTo (Object obj) - { - return compareTo((BigDecimal) obj); - } - - public int compareTo (BigDecimal val) + public int compareTo (BigDecimal val) { if (scale == val.scale) return intVal.compareTo (val.intVal); @@ -973,7 +999,7 @@ public class BigDecimal extends Number implements Comparable { return round(mc); } - + /** * Returns a BigDecimal which is this BigDecimal rounded according to the * MathContext rounding settings. @@ -993,12 +1019,12 @@ public class BigDecimal extends Number implements Comparable // Make a new BigDecimal which is the correct power of 10 to chop off // the required number of digits and then call divide. BigDecimal div = new BigDecimal(BigInteger.TEN.pow(numToChop)); - BigDecimal rounded = divide(div, scale, 4); + BigDecimal rounded = divide(div, scale, mc.getRoundingMode().ordinal()); rounded.scale -= numToChop; rounded.precision = mcPrecision; return rounded; } - + /** * Returns the precision of this BigDecimal (the number of digits in the * unscaled value). The precision of a zero value is 1. @@ -1350,7 +1376,24 @@ public class BigDecimal extends Number implements Comparable if( scale < 0 ) throw new ArithmeticException("Scale parameter < 0."); return divide (ONE, scale, roundingMode); } - + + /** + * Returns a BigDecimal whose value is the same as this BigDecimal but whose + * representation has a scale of newScale. If the scale is + * reduced then rounding may occur, according to the RoundingMode. + * @param newScale + * @param roundingMode + * @return a BigDecimal whose scale is as given, whose value is + * this with possible rounding + * @throws ArithmeticException if the rounding mode is UNNECESSARY but + * rounding is required + * @since 1.5 + */ + public BigDecimal setScale(int newScale, RoundingMode roundingMode) + { + return setScale(newScale, roundingMode.ordinal()); + } + /** * Returns a new BigDecimal constructed from the BigDecimal(String) * constructor using the Double.toString(double) method to obtain diff --git a/libjava/classpath/java/math/BigInteger.java b/libjava/classpath/java/math/BigInteger.java index b57cf607e34..c897d8bf48d 100644 --- a/libjava/classpath/java/math/BigInteger.java +++ b/libjava/classpath/java/math/BigInteger.java @@ -1,5 +1,5 @@ /* java.math.BigInteger -- Arbitary precision integers - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -57,7 +57,7 @@ import java.util.Random; * @date December 20, 1999. * @status believed complete and correct. */ -public class BigInteger extends Number implements Comparable +public class BigInteger extends Number implements Comparable { /** All integers are stored in 2's-complement form. * If words == null, the ival is the value of this BigInteger. @@ -83,7 +83,8 @@ public class BigInteger extends Number implements Comparable private static final int numFixNum = maxFixNum-minFixNum+1; private static final BigInteger[] smallFixNums = new BigInteger[numFixNum]; - static { + static + { for (int i = numFixNum; --i >= 0; ) smallFixNums[i] = new BigInteger(i + minFixNum); } @@ -92,14 +93,14 @@ public class BigInteger extends Number implements Comparable * The constant zero as a BigInteger. * @since 1.2 */ - public static final BigInteger ZERO = smallFixNums[-minFixNum]; + public static final BigInteger ZERO = smallFixNums[0 - minFixNum]; /** * The constant one as a BigInteger. * @since 1.2 */ public static final BigInteger ONE = smallFixNums[1 - minFixNum]; - + /** * The constant ten as a BigInteger. * @since 1.5 @@ -197,8 +198,20 @@ public class BigInteger extends Number implements Comparable private void init(int numBits, Random rnd) { int highbits = numBits & 31; + // minimum number of bytes to store the above number of bits + int highBitByteCount = (highbits + 7) / 8; + // number of bits to discard from the last byte + int discardedBitCount = highbits % 8; + if (discardedBitCount != 0) + discardedBitCount = 8 - discardedBitCount; + byte[] highBitBytes = new byte[highBitByteCount]; if (highbits > 0) - highbits = rnd.nextInt() >>> (32 - highbits); + { + rnd.nextBytes(highBitBytes); + highbits = (highBitBytes[highBitByteCount - 1] & 0xFF) >>> discardedBitCount; + for (int i = highBitByteCount - 2; i >= 0; i--) + highbits = (highbits << 8) | (highBitBytes[i] & 0xFF); + } int nwords = numBits / 32; while (highbits == 0 && nwords > 0) @@ -225,8 +238,13 @@ public class BigInteger extends Number implements Comparable this(bitLength, rnd); // Keep going until we find a probable prime. + BigInteger result; while (true) { + // ...but first ensure that BI has bitLength bits + result = setBit(bitLength - 1); + this.ival = result.ival; + this.words = result.words; if (isProbablePrime(certainty)) return; @@ -377,14 +395,7 @@ public class BigInteger extends Number implements Comparable return MPN.cmp(x.words, y.words, x_len); } - // JDK1.2 - public int compareTo(Object obj) - { - if (obj instanceof BigInteger) - return compareTo(this, (BigInteger) obj); - throw new ClassCastException(); - } - + /** @since 1.2 */ public int compareTo(BigInteger val) { return compareTo(this, val); @@ -1589,24 +1600,31 @@ public class BigInteger extends Number implements Comparable // but slightly more expensive, for little practical gain. if (len <= 15 && radix <= 16) return valueOf(Long.parseLong(s, radix)); - + + int i, digit; + boolean negative; + byte[] bytes; + char ch = s.charAt(0); + if (ch == '-') + { + negative = true; + i = 1; + bytes = new byte[len - 1]; + } + else + { + negative = false; + i = 0; + bytes = new byte[len]; + } int byte_len = 0; - byte[] bytes = new byte[len]; - boolean negative = false; - for (int i = 0; i < len; i++) + for ( ; i < len; i++) { - char ch = s.charAt(i); - if (ch == '-') - negative = true; - else if (ch == '_' || (byte_len == 0 && (ch == ' ' || ch == '\t'))) - continue; - else - { - int digit = Character.digit(ch, radix); - if (digit < 0) - break; - bytes[byte_len++] = (byte) digit; - } + ch = s.charAt(i); + digit = Character.digit(ch, radix); + if (digit < 0) + throw new NumberFormatException(); + bytes[byte_len++] = (byte) digit; } return valueOf(bytes, byte_len, negative, radix); } diff --git a/libjava/classpath/java/math/MathContext.java b/libjava/classpath/java/math/MathContext.java index 417d9c2e270..533ab13acf3 100644 --- a/libjava/classpath/java/math/MathContext.java +++ b/libjava/classpath/java/math/MathContext.java @@ -48,6 +48,30 @@ import java.io.Serializable; */ public final class MathContext implements Serializable { + /** A MathContext for unlimited precision arithmetic * */ + public static final MathContext UNLIMITED = + new MathContext(0, RoundingMode.HALF_UP); + + /** + * A MathContext for the IEEE 754R Decimal32 format - 7 digit preicision and + * HALF_EVEN rounding. + */ + public static final MathContext DECIMAL32 = + new MathContext(7, RoundingMode.HALF_EVEN); + + /** + * A MathContext for the IEEE 754R Decimal64 format - 16 digit preicision and + * HALF_EVEN rounding. + */ + public static final MathContext DECIMAL64 = + new MathContext(16, RoundingMode.HALF_EVEN); + + /** + * A MathContext for the IEEE 754R Decimal128 format - 34 digit preicision and + * HALF_EVEN rounding. + */ + public static final MathContext DECIMAL128 = + new MathContext(34, RoundingMode.HALF_EVEN); /** * This is the serialVersionUID reported here: @@ -56,7 +80,9 @@ public final class MathContext implements Serializable private static final long serialVersionUID = 5579720004786848255L; private int precision; - + + private RoundingMode roundMode; + /** * Constructs a new MathContext with the specified precision and with HALF_UP * rounding. @@ -66,11 +92,25 @@ public final class MathContext implements Serializable */ public MathContext(int setPrecision) { + this(setPrecision, RoundingMode.HALF_UP); + } + + /** + * Constructs a new MathContext with the specified precision and rounding + * mode. + * @param setPrecision the precision + * @param setRoundingMode the rounding mode + * + * @throws IllegalArgumentException if precision is < 0. + */ + public MathContext(int setPrecision, RoundingMode setRoundingMode) + { if (setPrecision < 0) throw new IllegalArgumentException("Precision cannot be less than zero."); precision = setPrecision; + roundMode = setRoundingMode; } - + /** * Constructs a MathContext from a String that has the same form as one * produced by the toString() method. @@ -85,6 +125,7 @@ public final class MathContext implements Serializable { int roundingModeIndex = val.indexOf("roundingMode", 10); precision = Integer.parseInt(val.substring(10, roundingModeIndex - 1)); + roundMode = RoundingMode.valueOf(val.substring(roundingModeIndex + 13)); } catch (NumberFormatException nfe) { @@ -109,7 +150,8 @@ public final class MathContext implements Serializable if (!(x instanceof MathContext)) return false; MathContext mc = (MathContext)x; - return mc.precision == this.precision; + return mc.precision == this.precision + && mc.roundMode.equals(this.roundMode); } /** @@ -122,6 +164,18 @@ public final class MathContext implements Serializable } /** + * Returns the rounding mode setting. This will be one of + * RoundingMode.CEILING, RoundingMode.DOWN, RoundingMode.FLOOR, + * RoundingMode.HALF_DOWN, RoundingMode.HALF_EVEN, RoundingMode.HALF_UP, + * RoundingMode.UNNECESSARY, or RoundingMode.UP. + * @return the rounding mode setting. + */ + public RoundingMode getRoundingMode() + { + return roundMode; + } + + /** * Returns "precision=p roundingMode=MODE" where p is an int giving the * precision and MODE is UP, DOWN, HALF_UP, HALF_DOWN, HALF_EVEN, CEILING, * FLOOR, or UNNECESSARY corresponding to rounding modes. @@ -130,7 +184,7 @@ public final class MathContext implements Serializable */ public String toString() { - return "precision="+precision; + return "precision="+precision+" roundingMode="+roundMode; } /** @@ -139,6 +193,6 @@ public final class MathContext implements Serializable */ public int hashCode() { - return precision; + return precision ^ roundMode.hashCode(); } } diff --git a/libjava/classpath/java/math/RoundingMode.java b/libjava/classpath/java/math/RoundingMode.java new file mode 100644 index 00000000000..c85bf4ff533 --- /dev/null +++ b/libjava/classpath/java/math/RoundingMode.java @@ -0,0 +1,89 @@ +/* RoundingMode.java -- An Enum to replace BigDecimal rounding constants. + Copyright (C) 1999, 2000, 2002, 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.math; + +/** + * An enum to specify rounding behaviour for numerical operations that may + * discard precision. + * @author Anthony Balkissoon abalkiss at redhat dot com + * + */ +public enum RoundingMode +{ + UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, HALF_EVEN, UNNECESSARY; + + /** + * For compatability with Sun's JDK + */ + private static final long serialVersionUID = 432302042773881265L; + + /** + * Returns the RoundingMode object corresponding to the legacy rounding modes + * in BigDecimal. + * @param rm the legacy rounding mode + * @return the corresponding RoundingMode + */ + public static RoundingMode valueOf(int rm) + { + switch (rm) + { + case BigDecimal.ROUND_CEILING: + return CEILING; + case BigDecimal.ROUND_FLOOR: + return FLOOR; + case BigDecimal.ROUND_DOWN: + return DOWN; + case BigDecimal.ROUND_UP: + return UP; + case BigDecimal.ROUND_HALF_UP: + return HALF_UP; + case BigDecimal.ROUND_HALF_DOWN: + return HALF_DOWN; + case BigDecimal.ROUND_HALF_EVEN: + return HALF_EVEN; + case BigDecimal.ROUND_UNNECESSARY: + return UNNECESSARY; + default: + throw new + IllegalArgumentException("invalid argument: " + rm + + ". Argument should be one of the " + + "rounding modes defined in BigDecimal."); + } + } +} diff --git a/libjava/classpath/java/math/class-dependencies.conf b/libjava/classpath/java/math/class-dependencies.conf new file mode 100644 index 00000000000..4fbf75eb1ce --- /dev/null +++ b/libjava/classpath/java/math/class-dependencies.conf @@ -0,0 +1,58 @@ +# This property file contains dependencies of classes, methods, and +# field on other methods or classes. +# +# Syntax: +# +# : [... ] +# +# means that when is included, (... ) must +# be included as well. +# +# and are of the form +# +# +# +# or just +# +# +# +# Within dependencies, variables can be used. A variable is defined as +# follows: +# +# {variable}: value1 value2 ... value +# +# variables can be used on the right side of dependencies as follows: +# +# : com.bla.blu.{variable}.Class.m()V +# +# The use of the variable will expand to dependencies of the form +# +# : com.bla.blu.value1.Class.m()V +# : com.bla.blu.value2.Class.m()V +# ... +# : com.bla.blu.value.Class.m()V +# +# Variables can be redefined when building a system to select the +# required support for features like encodings, protocols, etc. +# +# Hints: +# +# - For methods and fields, the signature is mandatory. For +# specification, please see the Java Virtual Machine Specification by +# SUN. Unlike in the spec, field signatures (types) are in brackets. +# +# - Package names must be separated by '/' (and not '.'). E.g., +# java/lang/Class (this is necessary, because the '.' is used to +# separate method or field names from classes) +# +# - In case refers to a class, only the class itself will be +# included in the resulting binary, NOT necessarily all its methods +# and fields. If you want to refer to all methods and fields, you can +# write class.* as an abbreviation. +# +# - Abbreviations for packages are also possible: my/package/* means all +# methods and fields of all classes in my/package. +# +# - A line with a trailing '\' continues in the next line. + +# end of file diff --git a/libjava/classpath/java/net/DatagramSocket.java b/libjava/classpath/java/net/DatagramSocket.java index d8837c006b5..d7aad7222c7 100644 --- a/libjava/classpath/java/net/DatagramSocket.java +++ b/libjava/classpath/java/net/DatagramSocket.java @@ -1,5 +1,5 @@ /* DatagramSocket.java -- A class to model UDP sockets - Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005 + Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -180,7 +180,18 @@ public class DatagramSocket if (factory != null) impl = factory.createDatagramSocketImpl(); else - impl = new PlainDatagramSocketImpl(); + { + try + { + impl = new PlainDatagramSocketImpl(); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } } else try @@ -194,7 +205,16 @@ public class DatagramSocket { System.err.println("Could not instantiate class: java.net." + propVal + "DatagramSocketImpl"); - impl = new PlainDatagramSocketImpl(); + try + { + impl = new PlainDatagramSocketImpl(); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } } if (address != null) @@ -305,7 +325,7 @@ public class DatagramSocket SecurityManager s = System.getSecurityManager(); if (s != null) - s.checkConnect(localAddr.getHostName(), -1); + s.checkConnect(localAddr.getHostAddress(), -1); } catch (SecurityException e) { @@ -505,7 +525,7 @@ public class DatagramSocket SecurityManager sm = System.getSecurityManager(); if (sm != null) - sm.checkConnect(address.getHostName(), port); + sm.checkConnect(address.getHostAddress(), port); try { @@ -578,11 +598,17 @@ public class DatagramSocket && ! ((DatagramChannelImpl) getChannel()).isInChannelOperation()) throw new IllegalBlockingModeException(); - getImpl().receive(p); + DatagramPacket p2 = new DatagramPacket(p.getData(), p.getOffset(), p.maxlen); + getImpl().receive(p2); + p.length = p2.length; + if (p2.getAddress() != null) + p.setAddress(p2.getAddress()); + if (p2.getPort() != -1) + p.setPort(p2.getPort()); SecurityManager s = System.getSecurityManager(); if (s != null && isConnected()) - s.checkAccept(p.getAddress().getHostName(), p.getPort()); + s.checkAccept(p.getAddress().getHostAddress(), p.getPort()); } /** @@ -649,6 +675,9 @@ public class DatagramSocket { if (isClosed()) throw new SocketException("socket is closed"); + + if (address == null) + address = new InetSocketAddress(InetAddress.ANY_IF, 0); if (! (address instanceof InetSocketAddress)) throw new IllegalArgumentException("unsupported address type"); diff --git a/libjava/classpath/java/net/Inet6Address.java b/libjava/classpath/java/net/Inet6Address.java index ef3c4431acb..f4893eb09f3 100644 --- a/libjava/classpath/java/net/Inet6Address.java +++ b/libjava/classpath/java/net/Inet6Address.java @@ -121,7 +121,7 @@ public final class Inet6Address extends InetAddress */ public boolean isMulticastAddress() { - return ipaddress[0] == 0xFF; + return ipaddress[0] == (byte) 0xFF; } /** diff --git a/libjava/classpath/java/net/InetAddress.java b/libjava/classpath/java/net/InetAddress.java index f6f97285fe6..1f266798045 100644 --- a/libjava/classpath/java/net/InetAddress.java +++ b/libjava/classpath/java/net/InetAddress.java @@ -59,7 +59,7 @@ import java.io.Serializable; * @author Per Bothner * @author Gary Benson (gbenson@redhat.com) * - * @specnote This class is not final since JK 1.4 + * @specnote This class is not final since JDK 1.4 */ public class InetAddress implements Serializable { @@ -87,7 +87,7 @@ public class InetAddress implements Serializable } catch (UnknownHostException e) { - throw new RuntimeException("should never happen", e); + throw (InternalError) new InternalError().initCause(e); } ANY_IF.hostName = ANY_IF.getHostName(); } @@ -104,7 +104,7 @@ public class InetAddress implements Serializable } catch (UnknownHostException e) { - throw new RuntimeException("should never happen", e); + throw (InternalError) new InternalError().initCause(e); } } @@ -522,7 +522,7 @@ public class InetAddress implements Serializable } catch (UnknownHostException e) { - throw new RuntimeException("should never happen", e); + throw (InternalError) new InternalError().initCause(e); } } diff --git a/libjava/classpath/java/net/MulticastSocket.java b/libjava/classpath/java/net/MulticastSocket.java index 03bdf1e77d9..2841192db61 100644 --- a/libjava/classpath/java/net/MulticastSocket.java +++ b/libjava/classpath/java/net/MulticastSocket.java @@ -202,13 +202,41 @@ public class MulticastSocket extends DatagramSocket { if (isClosed()) throw new SocketException("socket is closed"); - - Enumeration e = netIf.getInetAddresses(); - - if (! e.hasMoreElements()) - throw new SocketException("no network devices found"); - - InetAddress address = (InetAddress) e.nextElement(); + + 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); } @@ -230,6 +258,10 @@ public class MulticastSocket extends DatagramSocket InetAddress address = (InetAddress) getImpl().getOption(SocketOptions.IP_MULTICAST_IF); + + if (address.isAnyLocalAddress()) + return NetworkInterface.createAnyInterface(); + NetworkInterface netIf = NetworkInterface.getByInetAddress(address); return netIf; diff --git a/libjava/classpath/java/net/NetworkInterface.java b/libjava/classpath/java/net/NetworkInterface.java index 47b1c67cae7..6c78ead5b4c 100644 --- a/libjava/classpath/java/net/NetworkInterface.java +++ b/libjava/classpath/java/net/NetworkInterface.java @@ -1,5 +1,5 @@ /* NetworkInterface.java -- - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package java.net; +import gnu.classpath.SystemProperties; + import java.util.Collection; import java.util.Collections; import java.util.Enumeration; @@ -58,25 +60,23 @@ import java.util.Vector; */ public final class NetworkInterface { - private String name; - private Vector inetAddresses; - - NetworkInterface(String name, InetAddress address) - { - this.name = name; - this.inetAddresses = new Vector(1, 1); - this.inetAddresses.add(address); - } - - NetworkInterface(String name, InetAddress[] addresses) + private final VMNetworkInterface netif; + + private NetworkInterface(VMNetworkInterface netif) + { + this.netif = netif; + } + + /** Creates an NetworkInterface instance which + * represents any interface in the system. Its only + * address is 0.0.0.0/0.0.0.0. This + * method is needed by {@link MulticastSocket#getNetworkInterface} + */ + static NetworkInterface createAnyInterface() { - this.name = name; - this.inetAddresses = new Vector(addresses.length, 1); - - for (int i = 0; i < addresses.length; i++) - this.inetAddresses.add(addresses[i]); + return new NetworkInterface(new VMNetworkInterface()); } - + /** * Returns the name of the network interface * @@ -84,7 +84,7 @@ public final class NetworkInterface */ public String getName() { - return name; + return netif.name; } /** @@ -97,22 +97,23 @@ public final class NetworkInterface * * @return An enumeration of all addresses. */ - public Enumeration getInetAddresses() + public Enumeration getInetAddresses() { SecurityManager s = System.getSecurityManager(); + Vector inetAddresses = new Vector(netif.addresses); if (s == null) return inetAddresses.elements(); - Vector tmpInetAddresses = new Vector(1, 1); + Vector tmpInetAddresses = new Vector(1, 1); - for (Enumeration addresses = inetAddresses.elements(); + for (Enumeration addresses = inetAddresses.elements(); addresses.hasMoreElements();) { - InetAddress addr = (InetAddress) addresses.nextElement(); + InetAddress addr = addresses.nextElement(); try { - s.checkConnect(addr.getHostAddress(), 58000); + s.checkConnect(addr.getHostAddress(), -1); tmpInetAddresses.add(addr); } catch (SecurityException e) @@ -131,7 +132,7 @@ public final class NetworkInterface */ public String getDisplayName() { - return name; + return netif.name; } /** @@ -148,15 +149,14 @@ public final class NetworkInterface public static NetworkInterface getByName(String name) throws SocketException { - for (Enumeration e = getNetworkInterfaces(); e.hasMoreElements();) + if (name == null) + throw new NullPointerException(); + VMNetworkInterface[] netifs = VMNetworkInterface.getVMInterfaces(); + for (int i = 0; i < netifs.length; i++) { - NetworkInterface tmp = (NetworkInterface) e.nextElement(); - - if (name.equals(tmp.getName())) - return tmp; + if (netifs[i].name.equals(name)) + return new NetworkInterface(netifs[i]); } - - // No interface with the given name found. return null; } @@ -173,55 +173,15 @@ public final class NetworkInterface public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException { - for (Enumeration interfaces = getNetworkInterfaces(); - interfaces.hasMoreElements();) + if (addr == null) + throw new NullPointerException(); + VMNetworkInterface[] netifs = VMNetworkInterface.getVMInterfaces(); + for (int i = 0; i < netifs.length; i++) { - NetworkInterface tmp = (NetworkInterface) interfaces.nextElement(); - - for (Enumeration addresses = tmp.inetAddresses.elements(); - addresses.hasMoreElements();) - { - if (addr.equals((InetAddress) addresses.nextElement())) - return tmp; - } + if (netifs[i].addresses.contains(addr)) + return new NetworkInterface(netifs[i]); } - - 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 null; } /** @@ -231,16 +191,18 @@ public final class NetworkInterface * * @exception SocketException If an error occurs */ - public static Enumeration getNetworkInterfaces() throws SocketException + public static Enumeration getNetworkInterfaces() + throws SocketException { - Vector networkInterfaces = VMNetworkInterface.getInterfaces(); - - if (networkInterfaces.isEmpty()) - return null; - - Collection condensed = condense(networkInterfaces); - - return Collections.enumeration(condensed); + VMNetworkInterface[] netifs = VMNetworkInterface.getVMInterfaces(); + Vector networkInterfaces = + new Vector(netifs.length); + for (int i = 0; i < netifs.length; i++) + { + if (!netifs[i].addresses.isEmpty()) + networkInterfaces.add(new NetworkInterface(netifs[i])); + } + return networkInterfaces.elements(); } /** @@ -256,8 +218,12 @@ public final class NetworkInterface return false; NetworkInterface tmp = (NetworkInterface) obj; + + if (netif.name == null) + return tmp.netif.name == null; - return (name.equals(tmp.name) && inetAddresses.equals(tmp.inetAddresses)); + return (netif.name.equals(tmp.netif.name) + && (netif.addresses.equals(tmp.netif.addresses))); } /** @@ -268,7 +234,12 @@ public final class NetworkInterface public int hashCode() { // FIXME: hash correctly - return name.hashCode() + inetAddresses.hashCode(); + int hc = netif.addresses.hashCode(); + + if (netif.name != null) + hc += netif.name.hashCode(); + + return hc; } /** @@ -279,19 +250,22 @@ public final class NetworkInterface public String toString() { // FIXME: check if this is correct - String result; - String separator = System.getProperty("line.separator"); + StringBuffer result; + String separator = SystemProperties.getProperty("line.separator"); - result = - "name: " + getDisplayName() + " (" + getName() + ") addresses:" - + separator; + result = new StringBuffer(); + + result.append("name: "); + result.append(getDisplayName()); + result.append(" (").append(getName()).append(") addresses:"); + result.append(separator); - for (Enumeration e = inetAddresses.elements(); e.hasMoreElements();) + for (Iterator it = netif.addresses.iterator(); it.hasNext(); ) { - InetAddress address = (InetAddress) e.nextElement(); - result += address.toString() + ";" + separator; + InetAddress address = (InetAddress) it.next(); + result.append(address.toString()).append(";").append(separator); } - return result; + return result.toString(); } } diff --git a/libjava/classpath/java/net/Proxy.java b/libjava/classpath/java/net/Proxy.java new file mode 100644 index 00000000000..7b4ef299206 --- /dev/null +++ b/libjava/classpath/java/net/Proxy.java @@ -0,0 +1,137 @@ +/* Proxy.java -- Represends a proxy for a network connection + 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; + + +/** + * Defines a proxy setting. This setting contains a type (https, socks, + * direct) and a socket address. + * + * @since 1.5 + */ +public class Proxy +{ + /** + * Represents the proxy type. + */ + public enum Type + { + DIRECT, HTTP, SOCKS; + + /** + * For compatability with Sun's JDK + */ + private static final long serialVersionUID = -2231209257930100533L; + }; + + public static final Proxy NO_PROXY = new Proxy(Type.DIRECT, null); + + private Type type; + private SocketAddress address; + + /** + * Creates a new Proxy object. + * + * @param type The type for this proxy + * @param address The address of this proxy + */ + public Proxy(Type type, SocketAddress address) + { + this.type = type; + this.address = address; + } + + /** + * Returns the socket address for this proxy object. + * + * @return the socket address + */ + public SocketAddress address() + { + return address; + } + + /** + * Returns the of this proxy instance. + * + * @return the type + * + * @see Type + */ + public Type type() + { + return type; + } + + /** + * Compares the given object with this object. + * + * @return true if both objects or equals, + * false otherwise. + */ + public final boolean equals(Object obj) + { + if (! (obj instanceof Proxy)) + return false; + + Proxy tmp = (Proxy) obj; + + return (type.equals(tmp.type) + && address.equals(tmp.address)); + } + + /** + * Returns the hashcode for this Proxy object. + * + * @return the hashcode + */ + public final int hashCode() + { + return type.hashCode() ^ address.hashCode(); + } + + /** + * Returns a string representation of this Proxy object. + * + * @return the string + */ + public String toString() + { + return type.toString() + ":" + address.toString(); + } +} diff --git a/libjava/classpath/java/net/ProxySelector.java b/libjava/classpath/java/net/ProxySelector.java new file mode 100644 index 00000000000..78592a24441 --- /dev/null +++ b/libjava/classpath/java/net/ProxySelector.java @@ -0,0 +1,117 @@ +/* ProxySelector.java -- A proxy selector class + 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.java.net.DefaultProxySelector; + +import java.io.IOException; +import java.util.List; + +/** + * Class for handling proxies for different connections. + * + * @since 1.5 + */ +public abstract class ProxySelector +{ + /** + * Default proxy selector. + */ + private static ProxySelector defaultSelector = new DefaultProxySelector(); + + /** + * Creates a new ProxySelector object. + */ + public ProxySelector() + { + // Do nothing here. + } + + /** + * Returns the default proxy selector. + * + * @return the default proxy selector + * + * @throws SecurityException If a security manager is installed and it + * denies NetPermission("getProxySelector") + */ + public static ProxySelector getDefault() + { + SecurityManager sm = System.getSecurityManager(); + + if (sm != null) + sm.checkPermission(new NetPermission("getProxySelector")); + + return defaultSelector; + } + + /** + * Sets the default proxy selector. + * + * @param selector the defualt proxy selector + * + * @throws SecurityException If a security manager is installed and it + * denies NetPermission("setProxySelector") + */ + public static void setDefault(ProxySelector selector) + { + SecurityManager sm = System.getSecurityManager(); + + if (sm != null) + sm.checkPermission(new NetPermission("setProxySelector")); + + defaultSelector = selector; + } + + /** + * Signals to the selector that a proxy was no available. + * + * @throws IllegalArgumentException If one argument is null + */ + public abstract void connectFailed(URI uri, SocketAddress address, + IOException exception); + + /** + * Returns the list of proxy settings for a given URI. + * + * @return list of proxy settings + * + * @throws IllegalArgumentException If uri is null + */ + public abstract List select(URI uri); +} diff --git a/libjava/classpath/java/net/ServerSocket.java b/libjava/classpath/java/net/ServerSocket.java index 2b889531a7c..d5f2a176b81 100644 --- a/libjava/classpath/java/net/ServerSocket.java +++ b/libjava/classpath/java/net/ServerSocket.java @@ -79,6 +79,7 @@ public class ServerSocket * We need to retain the local address even after the socket is closed. */ private InetSocketAddress local; + private int port; /* * This constructor is only used by java.nio. @@ -93,6 +94,7 @@ public class ServerSocket this.impl = impl; this.impl.create(true); + setReuseAddress(true); } /* @@ -219,43 +221,53 @@ public class ServerSocket if (isClosed()) throw new SocketException("ServerSocket is closed"); - if (! (endpoint instanceof InetSocketAddress)) - throw new IllegalArgumentException("Address type not supported"); + if (isBound()) + throw new SocketException("Already bound"); - InetSocketAddress tmp = (InetSocketAddress) endpoint; + InetAddress addr; + int port; + + if (endpoint == null) + { + addr = InetAddress.ANY_IF; + port = 0; + } + else if (! (endpoint instanceof InetSocketAddress)) + { + throw new IllegalArgumentException("Address type not supported"); + } + else + { + InetSocketAddress tmp = (InetSocketAddress) endpoint; + if (tmp.isUnresolved()) + throw new SocketException("Unresolved address"); + addr = tmp.getAddress(); + port = tmp.getPort(); + } SecurityManager s = System.getSecurityManager(); if (s != null) - s.checkListen(tmp.getPort()); - - InetAddress addr = tmp.getAddress(); - - // Initialize addr with 0.0.0.0. - if (addr == null) - addr = InetAddress.ANY_IF; + s.checkListen(port); try { - impl.bind(addr, tmp.getPort()); + impl.bind(addr, port); impl.listen(backlog); - local = new InetSocketAddress( + this.port = port; + local = new InetSocketAddress( (InetAddress) impl.getOption(SocketOptions.SO_BINDADDR), impl.getLocalPort()); } - catch (IOException exception) - { - close(); - throw exception; - } - catch (RuntimeException exception) - { - close(); - throw exception; - } - catch (Error error) + finally { - close(); - throw error; + try + { + if (local == null) + close(); + } + catch (IOException _) + { + } } } @@ -333,6 +345,19 @@ public class ServerSocket throw e; } + catch (SecurityException e) + { + try + { + socket.close(); + } + catch (IOException e2) + { + // Ignore. + } + + throw e; + } return socket; } @@ -355,9 +380,6 @@ public class ServerSocket if (isClosed()) throw new SocketException("ServerSocket is closed"); - // FIXME: Add a security check to make sure we're allowed to - // connect to the remote host. - // The Sun spec says that if we have an associated channel and // it is in non-blocking mode, we throw an IllegalBlockingModeException. // However, in our implementation if the channel itself initiated this @@ -367,8 +389,12 @@ public class ServerSocket throw new IllegalBlockingModeException(); impl.accept(socket.impl); - socket.implCreated = true; socket.bound = true; + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkAccept(socket.getInetAddress().getHostAddress(), + socket.getPort()); } /** @@ -378,14 +404,11 @@ public class ServerSocket */ public void close() throws IOException { - if (isClosed()) - return; - - impl.close(); - impl = null; - - if (getChannel() != null) - getChannel().close(); + if (impl != null) + { + impl.close(); + impl = null; + } } /** @@ -425,7 +448,8 @@ public class ServerSocket */ public boolean isClosed() { - return impl == null; + ServerSocketChannel channel = getChannel(); + return impl == null || (channel != null && ! channel.isOpen()); } /** @@ -573,7 +597,7 @@ public class ServerSocket return "ServerSocket[unbound]"; return ("ServerSocket[addr=" + getInetAddress() + ",port=" - + impl.getPort() + ",localport=" + impl.getLocalPort() + "]"); + + port + ",localport=" + getLocalPort() + "]"); } /** @@ -594,6 +618,13 @@ public class ServerSocket public static synchronized void setSocketFactory(SocketImplFactory fac) throws IOException { + if (factory != null) + throw new SocketException("SocketFactory already defined"); + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkSetFactory(); + factory = fac; } } diff --git a/libjava/classpath/java/net/Socket.java b/libjava/classpath/java/net/Socket.java index b2249ffaa0d..f4f25fe1c1b 100644 --- a/libjava/classpath/java/net/Socket.java +++ b/libjava/classpath/java/net/Socket.java @@ -1,5 +1,5 @@ /* Socket.java -- Client socket implementation - Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004 + Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -83,13 +83,6 @@ public class Socket SocketImpl impl; /** - * True if socket implementation was created by calling their - * create() method. - */ - // package-private because ServerSocket.implAccept() needs to access it. - boolean implCreated; - - /** * True if the socket is bound. * Package private so it can be set from ServerSocket when accept is called. */ @@ -298,15 +291,33 @@ public class Socket SecurityManager sm = System.getSecurityManager(); if (sm != null) - sm.checkConnect(raddr.getHostName(), rport); + sm.checkConnect(raddr.getHostAddress(), rport); // bind socket SocketAddress bindaddr = laddr == null ? null : new InetSocketAddress(laddr, lport); bind(bindaddr); - // connect socket - connect(new InetSocketAddress(raddr, rport)); + // Connect socket in case of Exceptions we must close the socket + // because an exception in the constructor means that the caller will + // not have a reference to this instance. + // Note: You may have the idea that the exception treatment + // should be moved into connect() but there is a Mauve test which + // shows that a failed connect should not close the socket. + try + { + connect(new InetSocketAddress(raddr, rport)); + } + catch (IOException ioe) + { + impl.close(); + throw ioe; + } + catch (RuntimeException re) + { + impl.close(); + throw re; + } // FIXME: JCL p. 1586 says if localPort is unspecified, bind to any port, // i.e. '0' and if localAddr is unspecified, use getLocalAddress() as @@ -315,21 +326,6 @@ public class Socket private SocketImpl getImpl() throws SocketException { - try - { - if (! implCreated) - { - impl.create(true); - implCreated = true; - } - } - catch (IOException e) - { - SocketException se = new SocketException(e.toString()); - se.initCause(e); - throw se; - } - return impl; } @@ -363,6 +359,7 @@ public class Socket // bind to address/port try { + getImpl().create(true); getImpl().bind(tmp.getAddress(), tmp.getPort()); bound = true; } @@ -479,16 +476,22 @@ public class Socket InetAddress addr = null; - try + if (impl instanceof PlainSocketImpl) + addr = ((PlainSocketImpl) impl).getLocalAddress().getAddress(); + + if (addr == null) { - addr = (InetAddress) getImpl().getOption(SocketOptions.SO_BINDADDR); - } - catch (SocketException e) - { - // (hopefully) shouldn't happen - // throw new java.lang.InternalError - // ("Error in PlainSocketImpl.getOption"); - return null; + try + { + addr = (InetAddress) getImpl().getOption(SocketOptions.SO_BINDADDR); + } + catch (SocketException e) + { + // (hopefully) shouldn't happen + // throw new java.lang.InternalError + // ("Error in PlainSocketImpl.getOption"); + return null; + } } // FIXME: According to libgcj, checkConnect() is supposed to be called @@ -707,10 +710,10 @@ public class Socket if (linger > 65535) linger = 65535; - getImpl().setOption(SocketOptions.SO_LINGER, new Integer(linger)); + getImpl().setOption(SocketOptions.SO_LINGER, Integer.valueOf(linger)); } else - getImpl().setOption(SocketOptions.SO_LINGER, Boolean.valueOf(false)); + getImpl().setOption(SocketOptions.SO_LINGER, Integer.valueOf(-1)); } /** @@ -1001,12 +1004,8 @@ public class Socket if (isClosed()) return; - getImpl().close(); + impl.close(); impl = null; - bound = false; - - if (getChannel() != null) - getChannel().close(); } /** @@ -1019,16 +1018,17 @@ public class Socket try { if (isConnected()) - return ("Socket[addr=" + getImpl().getInetAddress() + ",port=" - + getImpl().getPort() + ",localport=" - + getImpl().getLocalPort() + "]"); + return (super.toString() + + " [addr=" + getImpl().getInetAddress() + ",port=" + + getImpl().getPort() + ",localport=" + + getImpl().getLocalPort() + "]"); } catch (SocketException e) { // This cannot happen as we are connected. } - return "Socket[unconnected]"; + return super.toString() + " [unconnected]"; } /** @@ -1206,17 +1206,10 @@ public class Socket */ public boolean isConnected() { - try - { - if (getImpl() == null) - return false; - - return getImpl().getInetAddress() != null; - } - catch (SocketException e) - { - return false; - } + if (impl == null) + return false; + + return impl.getInetAddress() != null; } /** @@ -1228,6 +1221,13 @@ public class Socket */ public boolean isBound() { + if (isClosed()) + return false; + if (impl instanceof PlainSocketImpl) + { + InetSocketAddress addr = ((PlainSocketImpl) impl).getLocalAddress(); + return addr != null && addr.getAddress() != null; + } return bound; } @@ -1240,7 +1240,9 @@ public class Socket */ public boolean isClosed() { - return impl == null; + SocketChannel channel = getChannel(); + + return impl == null || (channel != null && ! channel.isOpen()); } /** diff --git a/libjava/classpath/java/net/URI.java b/libjava/classpath/java/net/URI.java index 401352fcf3c..689843c0bf9 100644 --- a/libjava/classpath/java/net/URI.java +++ b/libjava/classpath/java/net/URI.java @@ -156,7 +156,7 @@ import java.util.regex.Pattern; * @since 1.4 */ public final class URI - implements Comparable, Serializable + implements Comparable, Serializable { /** * For serialization compatability. @@ -1229,7 +1229,7 @@ public final class URI } /** - * Compare the URI with another object that must also be a URI. + * Compare the URI with another URI. * Undefined components are taken to be less than any other component. * The following criteria are observed: *

    @@ -1265,16 +1265,14 @@ public final class URI * * * - * @param obj This object to compare this URI with + * @param uri The other URI to compare this URI with * @return a negative integer, zero or a positive integer depending * on whether this URI is less than, equal to or greater * than that supplied, respectively. - * @throws ClassCastException if the given object is not a URI */ - public int compareTo(Object obj) + public int compareTo(URI uri) throws ClassCastException { - URI uri = (URI) obj; if (scheme == null && uri.getScheme() != null) return -1; if (scheme != null) diff --git a/libjava/classpath/java/net/URL.java b/libjava/classpath/java/net/URL.java index ed7decc7992..8f72d0687e4 100644 --- a/libjava/classpath/java/net/URL.java +++ b/libjava/classpath/java/net/URL.java @@ -322,7 +322,8 @@ public final class URL implements Serializable */ public URL(String spec) throws MalformedURLException { - this((URL) null, spec != null ? spec : "", (URLStreamHandler) null); + this((URL) null, spec != null ? spec : "", (URLStreamHandler) null, + false); } /** @@ -343,7 +344,9 @@ public final class URL implements Serializable */ public URL(URL context, String spec) throws MalformedURLException { - this(context, spec, (context == null) ? (URLStreamHandler)null : context.ph); + this(context, spec, + (context == null) ? (URLStreamHandler) null : context.ph, + false); } /** @@ -377,6 +380,23 @@ public final class URL implements Serializable public URL(URL context, String spec, URLStreamHandler ph) throws MalformedURLException { + this(context, spec, ph, true); + } + + /** + * Private constructor called by all other constructors taking + * a context and spec. + * + * @param context The context in which to parse the specification + * @param spec The string to parse as an URL + * @param ph The stream handler for the URL + * @param phFromUser Whether or not the user supplied the URLStreamHandler + * + */ + private URL(URL context, String spec, URLStreamHandler ph, + boolean phFromUser) + throws MalformedURLException + { /* A protocol is defined by the doc as the substring before a ':' * as long as the ':' occurs before any '/'. * @@ -397,7 +417,11 @@ public final class URL implements Serializable if ((colon = spec.indexOf("://", 1)) > 0 && ((colon < slash || slash < 0)) && ! spec.regionMatches(colon, "://:", 0, 4)) - context = null; + { + context = null; + if (! phFromUser) + ph = null; + } boolean protocolSpecified = false; @@ -458,7 +482,7 @@ public final class URL implements Serializable if (ph != null) { SecurityManager s = System.getSecurityManager(); - if (s != null) + if (s != null && phFromUser) s.checkPermission(new NetPermission("specifyStreamHandler")); this.ph = ph; diff --git a/libjava/classpath/java/net/URLClassLoader.java b/libjava/classpath/java/net/URLClassLoader.java index 403f7485c79..7e2353ac27e 100644 --- a/libjava/classpath/java/net/URLClassLoader.java +++ b/libjava/classpath/java/net/URLClassLoader.java @@ -508,7 +508,7 @@ public class URLClassLoader extends SecureClassLoader * loaded * @return a Class object representing the found class */ - protected Class findClass(final String className) + protected Class findClass(final String className) throws ClassNotFoundException { // Just try to find the resource by the (almost) same name @@ -714,10 +714,10 @@ public class URLClassLoader extends SecureClassLoader * @exception IOException when an error occurs accessing one of the * locations */ - public Enumeration findResources(String resourceName) + public Enumeration findResources(String resourceName) throws IOException { - Vector resources = new Vector(); + Vector resources = new Vector(); int max = urlinfos.size(); for (int i = 0; i < max; i++) { diff --git a/libjava/classpath/java/net/URLConnection.java b/libjava/classpath/java/net/URLConnection.java index 28142b10aad..67405801416 100644 --- a/libjava/classpath/java/net/URLConnection.java +++ b/libjava/classpath/java/net/URLConnection.java @@ -49,6 +49,7 @@ import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Collections; import java.util.Date; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.StringTokenizer; @@ -174,9 +175,14 @@ public abstract class URLConnection private static boolean dateformats_initialized; /** - * The timeout period. + * The connection timeout period. */ - private int timeout; + private int connectTimeout; + + /** + * The read timeout period. + */ + private int readTimeout; /* Cached ParsePosition, used when parsing dates. */ private ParsePosition position; @@ -216,8 +222,8 @@ public abstract class URLConnection } /** - * Returns the connection timeout speed, in milliseconds, or zero if the timeout - * is infinite or not set. + * Returns the connection timeout speed, in milliseconds, or zero if + * the timeout is infinite or not set. * * @return The timeout. * @@ -225,7 +231,7 @@ public abstract class URLConnection */ public int getConnectTimeout() { - return timeout; + return connectTimeout; } /** @@ -235,7 +241,7 @@ public abstract class URLConnection * * Throws an IllegalArgumentException if timeout < 0. * - * @param timeout - The timeout, in milliseconds. + * @param timeout the timeout, in milliseconds. * * @since 1.5 */ @@ -244,7 +250,45 @@ public abstract class URLConnection { if( timeout < 0 ) throw new IllegalArgumentException("Timeout must be 0 or positive."); - this.timeout = timeout; + connectTimeout = timeout; + } + + /** + * Returns the read timeout, in milliseconds, or zero if the timeout + * is infinite or not set. + * + * @return The timeout. + * + * @see #setReadTimeout + * + * @since 1.5 + */ + public int getReadTimeout() + { + return readTimeout; + } + + /** + * Set the read timeout, in milliseconds, or zero if the timeout + * is to be considered infinite. Note that in certain socket + * implementations/platforms this method may not have any effect. + * + * Throws an IllegalArgumentException if timeout < 0. + * + * @param timeout - The timeout, in milliseconds. + * + * @throws IllegalArgumentException if timeout is negative. + * + * @see #getReadTimeout + * + * @since 1.5 + */ + public void setReadTimeout(int timeout) + throws IllegalArgumentException + { + if( timeout < 0 ) + throw new IllegalArgumentException("Timeout must be 0 or positive."); + readTimeout = timeout; } /** @@ -359,10 +403,10 @@ public abstract class URLConnection * * @since 1.4 */ - public Map getHeaderFields() + public Map> getHeaderFields() { // Subclasses for specific protocols override this. - return Collections.EMPTY_MAP; + return Collections.emptyMap(); } /** @@ -862,14 +906,14 @@ public abstract class URLConnection * * @since 1.4 */ - public Map getRequestProperties() + public Map> getRequestProperties() { if (connected) throw new IllegalStateException("Already connected"); // Overridden by subclasses that support reading header fields from the // request. - return Collections.EMPTY_MAP; + return Collections.emptyMap(); } /** diff --git a/libjava/classpath/java/net/class-dependencies.conf b/libjava/classpath/java/net/class-dependencies.conf new file mode 100644 index 00000000000..8b130f53684 --- /dev/null +++ b/libjava/classpath/java/net/class-dependencies.conf @@ -0,0 +1,122 @@ +# This property file contains dependencies of classes, methods, and +# field on other methods or classes. +# +# Syntax: +# +# : [... ] +# +# means that when is included, (... ) must +# be included as well. +# +# and are of the form +# +# +# +# or just +# +# +# +# Within dependencies, variables can be used. A variable is defined as +# follows: +# +# {variable}: value1 value2 ... value +# +# variables can be used on the right side of dependencies as follows: +# +# : com.bla.blu.{variable}.Class.m()V +# +# The use of the variable will expand to dependencies of the form +# +# : com.bla.blu.value1.Class.m()V +# : com.bla.blu.value2.Class.m()V +# ... +# : com.bla.blu.value.Class.m()V +# +# Variables can be redefined when building a system to select the +# required support for features like encodings, protocols, etc. +# +# Hints: +# +# - For methods and fields, the signature is mandatory. For +# specification, please see the Java Virtual Machine Specification by +# SUN. Unlike in the spec, field signatures (types) are in brackets. +# +# - Package names must be separated by '/' (and not '.'). E.g., +# java/lang/Class (this is necessary, because the '.' is used to +# separate method or field names from classes) +# +# - In case refers to a class, only the class itself will be +# included in the resulting binary, NOT necessarily all its methods +# and fields. If you want to refer to all methods and fields, you can +# write class.* as an abbreviation. +# +# - Abbreviations for packages are also possible: my/package/* means all +# methods and fields of all classes in my/package. +# +# - A line with a trailing '\' continues in the next line. + +java/net/InetAddress: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/net/UnknownHostException.(Ljava/lang/String;)V + +java/net/DatagramSocketImpl: \ + java/net/DatagramSocketImpl.fd(Ljava/io/FileDescriptor;) \ + java/net/DatagramSocketImpl.localPort(I) + +java/net/PlainDatagramSocketImpl: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/io/IOException.(Ljava/lang/String;)V \ + java/io/FileDescriptor.()V \ + java/lang/Boolean.(Z)V \ + java/lang/Integer.(I)V \ + java/net/InetAddress.getByName(Ljava/lang/String;)Ljava/net/InetAddress; \ + java/net/InetAddress.getAddress()[B \ + java/lang/Boolean.booleanValue()Z \ + java/lang/Integer.intValue()I \ + java/net/SocketException.(Ljava/lang/String;)V \ + java/net/DatagramPacket.getData()[B \ + java/net/SocketImpl.address(Ljava/net/InetAddress;) \ + java/net/PlainSocketImpl.native_fd(I) \ + java/net/SocketImpl.fd(Ljava/io/FileDescriptor;) \ + java/net/SocketImpl.address(Ljava/net/InetAddress;) \ + java/net/PlainDatagramSocketImpl.native_fd(I) \ + java/net/SocketImpl.localport(I) \ + java/net/SocketImpl.port(I) + +java/net/PlainSocketImpl: \ + java/lang/ClassNotFoundException.(Ljava/lang/String;)V \ + java/lang/InternalError.(Ljava/lang/String;)V \ + java/io/IOException.(Ljava/lang/String;)V \ + java/io/FileDescriptor.()V \ + java/lang/Boolean.(Z)V \ + java/lang/Integer.(I)V \ + java/net/InetAddress.getByName(Ljava/lang/String;)Ljava/net/InetAddress; \ + java/net/InetAddress.getAddress()[B \ + java/lang/Boolean.booleanValue()Z \ + java/lang/Integer.intValue()I \ + java/net/SocketException.(Ljava/lang/String;)V \ + java/net/DatagramPacket.getData()[B \ + java/net/SocketImpl.address(Ljava/net/InetAddress;) \ + java/net/PlainSocketImpl.native_fd(I) \ + java/net/SocketImpl.fd(Ljava/io/FileDescriptor;) \ + java/net/SocketImpl.address(Ljava/net/InetAddress;) \ + java/net/PlainDatagramSocketImpl.native_fd(I) \ + java/net/SocketImpl.localport(I) \ + java/net/SocketImpl.port(I) + +# All protocols supported are loaded via URL.getURLStreamHandler from +# class gnu.java.net.protocol..Handler. +# +# This introduces a dependency for all protocols. To allow an easy selection +# and addition of protocols, the library variable {protocols} can be set to +# the set of supported protocols. +# +{protocols}: http file jar + +java/net/URL.getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;: \ + gnu/java/net/protocol/{protocols}/Handler.* \ + com/aicas/java/net/protocol/rom/Handler.* + +# end of file diff --git a/libjava/classpath/java/nio/ByteBuffer.java b/libjava/classpath/java/nio/ByteBuffer.java index 0ccf7663cfa..78ad4471836 100644 --- a/libjava/classpath/java/nio/ByteBuffer.java +++ b/libjava/classpath/java/nio/ByteBuffer.java @@ -1,5 +1,5 @@ /* ByteBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,7 +42,7 @@ package java.nio; * @since 1.4 */ public abstract class ByteBuffer extends Buffer - implements Comparable + implements Comparable { ByteOrder endian = ByteOrder.BIG_ENDIAN; @@ -290,7 +290,7 @@ public abstract class ByteBuffer extends Buffer { if (obj instanceof ByteBuffer) { - return compareTo (obj) == 0; + return compareTo ((ByteBuffer) obj) == 0; } return false; @@ -302,10 +302,8 @@ public abstract class ByteBuffer extends Buffer * @exception ClassCastException If obj is not an object derived from * ByteBuffer. */ - public int compareTo (Object obj) + public int compareTo (ByteBuffer other) { - ByteBuffer other = (ByteBuffer) obj; - int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); diff --git a/libjava/classpath/java/nio/CharBuffer.java b/libjava/classpath/java/nio/CharBuffer.java index 356a920eea0..34f429f62f7 100644 --- a/libjava/classpath/java/nio/CharBuffer.java +++ b/libjava/classpath/java/nio/CharBuffer.java @@ -1,5 +1,5 @@ /* CharBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,11 +38,13 @@ exception statement from your version. */ package java.nio; +import java.io.IOException; + /** * @since 1.4 */ public abstract class CharBuffer extends Buffer - implements Comparable, CharSequence + implements Comparable, CharSequence, Readable, Appendable { int array_offset; char[] backing_buffer; @@ -163,6 +165,18 @@ public abstract class CharBuffer extends Buffer return this; } + /** @since 1.5 */ + public int read(CharBuffer buffer) throws IOException + { + // We want to call put(), so we don't manipulate the CharBuffer + // directly. + int rem = Math.min(buffer.remaining(), remaining()); + char[] buf = new char[rem]; + get(buf); + buffer.put(buf); + return rem; + } + /** * This method transfers chars from this buffer into the given * destination array. @@ -323,7 +337,7 @@ public abstract class CharBuffer extends Buffer { if (obj instanceof CharBuffer) { - return compareTo (obj) == 0; + return compareTo ((CharBuffer) obj) == 0; } return false; @@ -335,10 +349,8 @@ public abstract class CharBuffer extends Buffer * @exception ClassCastException If obj is not an object derived from * CharBuffer. */ - public int compareTo (Object obj) + public int compareTo (CharBuffer other) { - CharBuffer other = (CharBuffer) obj; - int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); @@ -503,4 +515,25 @@ public abstract class CharBuffer extends Buffer return get (position () + index); } + + /** @since 1.5 */ + public CharBuffer append(char c) + { + put(c); + return this; + } + + /** @since 1.5 */ + public CharBuffer append(CharSequence cs) + { + put(cs == null ? "null" : cs.toString()); + return this; + } + + /** @since 1.5 */ + public CharBuffer append(CharSequence cs, int start, int end) + { + put(cs == null ? "null" : cs.subSequence(start, end).toString()); + return this; + } } diff --git a/libjava/classpath/java/nio/DirectByteBufferImpl.java b/libjava/classpath/java/nio/DirectByteBufferImpl.java index 3a9036f3148..8c907f597f0 100644 --- a/libjava/classpath/java/nio/DirectByteBufferImpl.java +++ b/libjava/classpath/java/nio/DirectByteBufferImpl.java @@ -233,7 +233,7 @@ abstract class DirectByteBufferImpl extends ByteBuffer { int pos = position(); if (this.mark != -1) - reset(); + reset(); int mark = position(); position(pos); DirectByteBufferImpl result; diff --git a/libjava/classpath/java/nio/DoubleBuffer.java b/libjava/classpath/java/nio/DoubleBuffer.java index 381bb716636..be7861cbd5e 100644 --- a/libjava/classpath/java/nio/DoubleBuffer.java +++ b/libjava/classpath/java/nio/DoubleBuffer.java @@ -1,5 +1,5 @@ /* DoubleBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,7 +42,7 @@ package java.nio; * @since 1.4 */ public abstract class DoubleBuffer extends Buffer - implements Comparable + implements Comparable { int array_offset; double[] backing_buffer; @@ -273,7 +273,7 @@ public abstract class DoubleBuffer extends Buffer { if (obj instanceof DoubleBuffer) { - return compareTo (obj) == 0; + return compareTo ((DoubleBuffer) obj) == 0; } return false; @@ -285,10 +285,8 @@ public abstract class DoubleBuffer extends Buffer * @exception ClassCastException If obj is not an object derived from * DoubleBuffer. */ - public int compareTo (Object obj) + public int compareTo (DoubleBuffer other) { - DoubleBuffer other = (DoubleBuffer) obj; - int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); diff --git a/libjava/classpath/java/nio/FloatBuffer.java b/libjava/classpath/java/nio/FloatBuffer.java index 8042333cbac..62e353a6818 100644 --- a/libjava/classpath/java/nio/FloatBuffer.java +++ b/libjava/classpath/java/nio/FloatBuffer.java @@ -1,5 +1,5 @@ /* FloatBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,7 +42,7 @@ package java.nio; * @since 1.4 */ public abstract class FloatBuffer extends Buffer - implements Comparable + implements Comparable { int array_offset; float[] backing_buffer; @@ -273,7 +273,7 @@ public abstract class FloatBuffer extends Buffer { if (obj instanceof FloatBuffer) { - return compareTo (obj) == 0; + return compareTo ((FloatBuffer) obj) == 0; } return false; @@ -285,10 +285,8 @@ public abstract class FloatBuffer extends Buffer * @exception ClassCastException If obj is not an object derived from * FloatBuffer. */ - public int compareTo (Object obj) + public int compareTo (FloatBuffer other) { - FloatBuffer other = (FloatBuffer) obj; - int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); diff --git a/libjava/classpath/java/nio/IntBuffer.java b/libjava/classpath/java/nio/IntBuffer.java index 1e1fe9c7565..d6fcb51ddf0 100644 --- a/libjava/classpath/java/nio/IntBuffer.java +++ b/libjava/classpath/java/nio/IntBuffer.java @@ -1,5 +1,5 @@ /* IntBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,7 +42,7 @@ package java.nio; * @since 1.4 */ public abstract class IntBuffer extends Buffer - implements Comparable + implements Comparable { int array_offset; int[] backing_buffer; @@ -273,7 +273,7 @@ public abstract class IntBuffer extends Buffer { if (obj instanceof IntBuffer) { - return compareTo (obj) == 0; + return compareTo ((IntBuffer) obj) == 0; } return false; @@ -285,10 +285,8 @@ public abstract class IntBuffer extends Buffer * @exception ClassCastException If obj is not an object derived from * IntBuffer. */ - public int compareTo (Object obj) + public int compareTo (IntBuffer other) { - IntBuffer other = (IntBuffer) obj; - int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); diff --git a/libjava/classpath/java/nio/LongBuffer.java b/libjava/classpath/java/nio/LongBuffer.java index b3d3557edcf..9c3bfa62741 100644 --- a/libjava/classpath/java/nio/LongBuffer.java +++ b/libjava/classpath/java/nio/LongBuffer.java @@ -1,5 +1,5 @@ /* LongBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,7 +42,7 @@ package java.nio; * @since 1.4 */ public abstract class LongBuffer extends Buffer - implements Comparable + implements Comparable { int array_offset; long[] backing_buffer; @@ -273,7 +273,7 @@ public abstract class LongBuffer extends Buffer { if (obj instanceof LongBuffer) { - return compareTo (obj) == 0; + return compareTo ((LongBuffer) obj) == 0; } return false; @@ -285,10 +285,8 @@ public abstract class LongBuffer extends Buffer * @exception ClassCastException If obj is not an object derived from * LongBuffer. */ - public int compareTo (Object obj) + public int compareTo (LongBuffer other) { - LongBuffer other = (LongBuffer) obj; - int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); diff --git a/libjava/classpath/java/nio/ShortBuffer.java b/libjava/classpath/java/nio/ShortBuffer.java index 958fe8cd6b6..33e458a4b1e 100644 --- a/libjava/classpath/java/nio/ShortBuffer.java +++ b/libjava/classpath/java/nio/ShortBuffer.java @@ -1,5 +1,5 @@ /* ShortBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,7 +42,7 @@ package java.nio; * @since 1.4 */ public abstract class ShortBuffer extends Buffer - implements Comparable + implements Comparable { int array_offset; short[] backing_buffer; @@ -273,7 +273,7 @@ public abstract class ShortBuffer extends Buffer { if (obj instanceof ShortBuffer) { - return compareTo (obj) == 0; + return compareTo ((ShortBuffer) obj) == 0; } return false; @@ -285,10 +285,8 @@ public abstract class ShortBuffer extends Buffer * @exception ClassCastException If obj is not an object derived from * ShortBuffer. */ - public int compareTo (Object obj) + public int compareTo (ShortBuffer other) { - ShortBuffer other = (ShortBuffer) obj; - int num = Math.min(remaining(), other.remaining()); int pos_this = position(); int pos_other = other.position(); diff --git a/libjava/classpath/java/nio/channels/Channel.java b/libjava/classpath/java/nio/channels/Channel.java index d488bd27dd0..33fcf31743d 100644 --- a/libjava/classpath/java/nio/channels/Channel.java +++ b/libjava/classpath/java/nio/channels/Channel.java @@ -1,5 +1,5 @@ /* Channel.java -- - Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,8 +39,9 @@ exception statement from your version. */ package java.nio.channels; import java.io.IOException; +import java.io.Closeable; -public interface Channel +public interface Channel extends Closeable { /** * Tells whether this channel is open or not diff --git a/libjava/classpath/java/nio/channels/Selector.java b/libjava/classpath/java/nio/channels/Selector.java index 2c883efd1a1..1c09db70236 100644 --- a/libjava/classpath/java/nio/channels/Selector.java +++ b/libjava/classpath/java/nio/channels/Selector.java @@ -82,7 +82,7 @@ public abstract class Selector * * @exception ClosedSelectorException If this selector is closed. */ - public abstract Set keys(); + public abstract Set keys(); /** * Returns the SelectorProvider that created the selector. @@ -115,7 +115,7 @@ public abstract class Selector * * @exception ClosedSelectorException If this selector is closed. */ - public abstract Set selectedKeys(); + public abstract Set selectedKeys(); /** * Selects a set of keys whose corresponding channels are ready diff --git a/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java b/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java index 847c02cce06..5d5277b4a68 100644 --- a/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java +++ b/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java @@ -44,6 +44,7 @@ import java.nio.channels.SelectableChannel; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.IllegalBlockingModeException; +import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; @@ -106,7 +107,15 @@ public abstract class AbstractSelectableChannel extends SelectableChannel */ protected final void implCloseChannel() throws IOException { - implCloseSelectableChannel(); + try + { + implCloseSelectableChannel(); + } + finally + { + for (Iterator it = keys.iterator(); it.hasNext(); ) + ((SelectionKey) it.next()).cancel(); + } } /** @@ -234,8 +243,8 @@ public abstract class AbstractSelectableChannel extends SelectableChannel if (key != null && key.isValid()) { - if (att != null) - key.attach(att); + key.interestOps(ops); + key.attach(att); } else { diff --git a/libjava/classpath/java/nio/channels/spi/AbstractSelector.java b/libjava/classpath/java/nio/channels/spi/AbstractSelector.java index 78380738a2c..73f5077df92 100644 --- a/libjava/classpath/java/nio/channels/spi/AbstractSelector.java +++ b/libjava/classpath/java/nio/channels/spi/AbstractSelector.java @@ -1,5 +1,5 @@ /* AbstractSelector.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,7 +49,7 @@ public abstract class AbstractSelector extends Selector { private boolean closed; private SelectorProvider provider; - private HashSet cancelledKeys; + private HashSet cancelledKeys; /** * Initializes the slector. @@ -59,7 +59,7 @@ public abstract class AbstractSelector extends Selector protected AbstractSelector(SelectorProvider provider) { this.provider = provider; - this.cancelledKeys = new HashSet(); + this.cancelledKeys = new HashSet(); } /** @@ -115,7 +115,7 @@ public abstract class AbstractSelector extends Selector * * @return the cancelled keys set */ - protected final Set cancelledKeys() + protected final Set cancelledKeys() { if (! isOpen()) throw new ClosedSelectorException(); diff --git a/libjava/classpath/java/nio/charset/Charset.java b/libjava/classpath/java/nio/charset/Charset.java index 3637703a32c..556e4707eeb 100644 --- a/libjava/classpath/java/nio/charset/Charset.java +++ b/libjava/classpath/java/nio/charset/Charset.java @@ -60,7 +60,7 @@ import java.util.TreeMap; * @since 1.4 * @status updated to 1.5 */ -public abstract class Charset implements Comparable +public abstract class Charset implements Comparable { private CharsetEncoder cachedEncoder; private CharsetDecoder cachedDecoder; @@ -219,19 +219,20 @@ public abstract class Charset implements Comparable return cs; } - public static SortedMap availableCharsets() + public static SortedMap availableCharsets() { - TreeMap charsets = new TreeMap(String.CASE_INSENSITIVE_ORDER); - for (Iterator i = provider().charsets(); i.hasNext(); ) + TreeMap charsets + = new TreeMap(String.CASE_INSENSITIVE_ORDER); + for (Iterator i = provider().charsets(); i.hasNext(); ) { - Charset cs = (Charset) i.next(); + Charset cs = i.next(); charsets.put(cs.name(), cs); } CharsetProvider[] providers = providers2(); for (int j = 0; j < providers.length; j++) { - for (Iterator i = providers[j].charsets(); i.hasNext(); ) + for (Iterator i = providers[j].charsets(); i.hasNext(); ) { Charset cs = (Charset) i.next(); charsets.put(cs.name(), cs); @@ -284,14 +285,14 @@ public abstract class Charset implements Comparable return canonicalName; } - public final Set aliases () + public final Set aliases () { if (aliases == null) - return Collections.EMPTY_SET; + return Collections.emptySet(); // should we cache the aliasSet instead? int n = aliases.length; - HashSet aliasSet = new HashSet (n); + HashSet aliasSet = new HashSet (n); for (int i = 0; i < n; ++i) aliasSet.add (aliases[i]); return Collections.unmodifiableSet (aliasSet); @@ -376,9 +377,9 @@ public abstract class Charset implements Comparable } } - public final int compareTo (Object ob) + public final int compareTo (Charset other) { - return canonicalName.compareToIgnoreCase (((Charset) ob).canonicalName); + return canonicalName.compareToIgnoreCase (other.canonicalName); } public final int hashCode () diff --git a/libjava/classpath/java/nio/charset/spi/CharsetProvider.java b/libjava/classpath/java/nio/charset/spi/CharsetProvider.java index 496ccf92789..03653f807d8 100644 --- a/libjava/classpath/java/nio/charset/spi/CharsetProvider.java +++ b/libjava/classpath/java/nio/charset/spi/CharsetProvider.java @@ -1,5 +1,5 @@ /* CharsetProvider.java -- charset service provider interface - Copyright (C) 2002, 2006 Free Software Foundation + Copyright (C) 2002, 2005, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -82,7 +82,7 @@ public abstract class CharsetProvider * @return the iterator * @see Charset#availableCharsets() */ - public abstract Iterator charsets(); + public abstract Iterator charsets(); /** * Returns the named charset, by canonical name or alias. diff --git a/libjava/classpath/java/nio/class-dependencies.conf b/libjava/classpath/java/nio/class-dependencies.conf new file mode 100644 index 00000000000..4fbf75eb1ce --- /dev/null +++ b/libjava/classpath/java/nio/class-dependencies.conf @@ -0,0 +1,58 @@ +# This property file contains dependencies of classes, methods, and +# field on other methods or classes. +# +# Syntax: +# +# : [... ] +# +# means that when is included, (... ) must +# be included as well. +# +# and are of the form +# +# +# +# or just +# +# +# +# Within dependencies, variables can be used. A variable is defined as +# follows: +# +# {variable}: value1 value2 ... value +# +# variables can be used on the right side of dependencies as follows: +# +# : com.bla.blu.{variable}.Class.m()V +# +# The use of the variable will expand to dependencies of the form +# +# : com.bla.blu.value1.Class.m()V +# : com.bla.blu.value2.Class.m()V +# ... +# : com.bla.blu.value.Class.m()V +# +# Variables can be redefined when building a system to select the +# required support for features like encodings, protocols, etc. +# +# Hints: +# +# - For methods and fields, the signature is mandatory. For +# specification, please see the Java Virtual Machine Specification by +# SUN. Unlike in the spec, field signatures (types) are in brackets. +# +# - Package names must be separated by '/' (and not '.'). E.g., +# java/lang/Class (this is necessary, because the '.' is used to +# separate method or field names from classes) +# +# - In case refers to a class, only the class itself will be +# included in the resulting binary, NOT necessarily all its methods +# and fields. If you want to refer to all methods and fields, you can +# write class.* as an abbreviation. +# +# - Abbreviations for packages are also possible: my/package/* means all +# methods and fields of all classes in my/package. +# +# - A line with a trailing '\' continues in the next line. + +# end of file diff --git a/libjava/classpath/java/rmi/server/LoaderHandler.java b/libjava/classpath/java/rmi/server/LoaderHandler.java index 0489cd16634..8e966156475 100644 --- a/libjava/classpath/java/rmi/server/LoaderHandler.java +++ b/libjava/classpath/java/rmi/server/LoaderHandler.java @@ -42,6 +42,7 @@ import java.net.URL; /** * @deprecated + * @since 1.1 */ public interface LoaderHandler { @@ -54,13 +55,13 @@ public interface LoaderHandler /** * @deprecated */ - Class loadClass(String name) + Class loadClass(String name) throws MalformedURLException, ClassNotFoundException; /** * @deprecated */ - Class loadClass(URL codebase, String name) + Class loadClass(URL codebase, String name) throws MalformedURLException, ClassNotFoundException; /** diff --git a/libjava/classpath/java/rmi/server/RMIClassLoader.java b/libjava/classpath/java/rmi/server/RMIClassLoader.java index 33c44198d37..7b69d2f2c72 100644 --- a/libjava/classpath/java/rmi/server/RMIClassLoader.java +++ b/libjava/classpath/java/rmi/server/RMIClassLoader.java @@ -51,6 +51,7 @@ import java.util.Iterator; * network-based class loading in RMI. These methods are called by RMI's * internal marshal streams to implement the dynamic class loading of types for * RMI parameters and return values. + * @since 1.1 */ public class RMIClassLoader { @@ -62,13 +63,13 @@ public class RMIClassLoader /** * @deprecated */ - public static Class loadClass(String name) + public static Class loadClass(String name) throws MalformedURLException, ClassNotFoundException { return loadClass("", name); } - public static Class loadClass(String codebase, String name) + public static Class loadClass(String codebase, String name) throws MalformedURLException, ClassNotFoundException { RMIClassLoaderSpi spi = getProviderInstance(); @@ -77,8 +78,8 @@ public class RMIClassLoader return spi.loadClass(codebase, name, null); } - public static Class loadClass(String codebase, String name, - ClassLoader defaultLoader) + public static Class loadClass(String codebase, String name, + ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException { RMIClassLoaderSpi spi = getProviderInstance(); @@ -87,8 +88,8 @@ public class RMIClassLoader return spi.loadClass(codebase, name, defaultLoader); } - public static Class loadProxyClass (String codeBase, String[] interfaces, - ClassLoader defaultLoader) + public static Class loadProxyClass (String codeBase, String[] interfaces, + ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException { RMIClassLoaderSpi spi = getProviderInstance(); @@ -114,7 +115,7 @@ public class RMIClassLoader * @throws MalformedURLException if the URL is not well formed * @throws ClassNotFoundException if the requested class cannot be found */ - public static Class loadClass(URL codeBase, String name) + public static Class loadClass(URL codeBase, String name) throws MalformedURLException, ClassNotFoundException { RMIClassLoaderSpi spi = getProviderInstance(); @@ -151,7 +152,7 @@ public class RMIClassLoader * @return a space seperated list of URLs where the class-definition * of cl may be found */ - public static String getClassAnnotation(Class cl) + public static String getClassAnnotation(Class cl) { RMIClassLoaderSpi spi = getProviderInstance(); if (spi == null) diff --git a/libjava/classpath/java/rmi/server/RMIClassLoaderSpi.java b/libjava/classpath/java/rmi/server/RMIClassLoaderSpi.java index 372d81879f9..ec2c204f1a9 100644 --- a/libjava/classpath/java/rmi/server/RMIClassLoaderSpi.java +++ b/libjava/classpath/java/rmi/server/RMIClassLoaderSpi.java @@ -49,16 +49,16 @@ public abstract class RMIClassLoaderSpi { } - public abstract Class loadClass (String codeBase, String name, - ClassLoader defaultLoader) + public abstract Class loadClass (String codeBase, String name, + ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException; - public abstract Class loadProxyClass (String codeBase, String[] interfaces, - ClassLoader defaultLoader) + public abstract Class loadProxyClass (String codeBase, String[] interfaces, + ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException; public abstract ClassLoader getClassLoader (String codebase) throws MalformedURLException; - public abstract String getClassAnnotation (Class cl); + public abstract String getClassAnnotation (Class cl); } diff --git a/libjava/classpath/java/security/AccessControlContext.java b/libjava/classpath/java/security/AccessControlContext.java index 3b51e94125b..ffcfc0e41af 100644 --- a/libjava/classpath/java/security/AccessControlContext.java +++ b/libjava/classpath/java/security/AccessControlContext.java @@ -89,12 +89,30 @@ public final class AccessControlContext public AccessControlContext(AccessControlContext acc, DomainCombiner combiner) { + AccessControlContext acc2 = null; SecurityManager sm = System.getSecurityManager (); if (sm != null) { - sm.checkPermission (new SecurityPermission ("createAccessControlContext")); + Permission perm = + new SecurityPermission ("createAccessControlContext"); + + // The default SecurityManager.checkPermission(perm) just calls + // AccessController.checkPermission(perm) which in turn just + // calls AccessController.getContext().checkPermission(perm). + // This means AccessController.getContext() is called twice, + // once for the security check and once by us. It's a very + // expensive call (on gcj at least) so if we're using the + // default security manager we avoid this duplication. + if (sm.getClass() == SecurityManager.class) + { + acc2 = AccessController.getContext (); + acc2.checkPermission (perm); + } + else + sm.checkPermission (perm); } - AccessControlContext acc2 = AccessController.getContext(); + if (acc2 == null) + acc2 = AccessController.getContext (); protectionDomains = combiner.combine (acc2.protectionDomains, acc.protectionDomains); this.combiner = combiner; diff --git a/libjava/classpath/java/security/AccessController.java b/libjava/classpath/java/security/AccessController.java index 93e34b87c22..6f8b3ecbd41 100644 --- a/libjava/classpath/java/security/AccessController.java +++ b/libjava/classpath/java/security/AccessController.java @@ -88,7 +88,7 @@ public final class AccessController * should be be called. * @return the result of the action.run() method. */ - public static Object doPrivileged(PrivilegedAction action) + public static T doPrivileged(PrivilegedAction action) { VMAccessController.pushContext(null); try @@ -115,8 +115,8 @@ public final class AccessController * domains should be added to the protection domain of the calling class. * @return the result of the action.run() method. */ - public static Object doPrivileged(PrivilegedAction action, - AccessControlContext context) + public static T doPrivileged(PrivilegedAction action, + AccessControlContext context) { VMAccessController.pushContext(context); try @@ -145,7 +145,7 @@ public final class AccessController * @exception PrivilegedActionException wrapped around any checked exception * that is thrown in the run() method. */ - public static Object doPrivileged(PrivilegedExceptionAction action) + public static T doPrivileged(PrivilegedExceptionAction action) throws PrivilegedActionException { VMAccessController.pushContext(null); @@ -185,8 +185,8 @@ public final class AccessController * @exception PrivilegedActionException wrapped around any checked exception * that is thrown in the run() method. */ - public static Object doPrivileged(PrivilegedExceptionAction action, - AccessControlContext context) + public static T doPrivileged(PrivilegedExceptionAction action, + AccessControlContext context) throws PrivilegedActionException { VMAccessController.pushContext(context); diff --git a/libjava/classpath/java/security/AlgorithmParameterGenerator.java b/libjava/classpath/java/security/AlgorithmParameterGenerator.java index e33fbaf81db..e2a17d4bf9c 100644 --- a/libjava/classpath/java/security/AlgorithmParameterGenerator.java +++ b/libjava/classpath/java/security/AlgorithmParameterGenerator.java @@ -40,6 +40,7 @@ package java.security; import gnu.java.security.Engine; +import java.lang.reflect.InvocationTargetException; import java.security.spec.AlgorithmParameterSpec; /** @@ -97,26 +98,29 @@ public class AlgorithmParameterGenerator * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. * - * @param algorithm - * the name of algorithm to use. + * @param algorithm the name of algorithm to use. * @return the new instance. - * @throws NoSuchAlgorithmException - * if algorithm is not implemented by any provider. + * @throws NoSuchAlgorithmException if algorithm is not + * implemented by any provider. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static AlgorithmParameterGenerator getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) try { return getInstance(algorithm, p[i]); } - catch (NoSuchAlgorithmException e) - { - // Ignore. - } - + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } @@ -124,27 +128,27 @@ public class AlgorithmParameterGenerator * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. * - * @param algorithm - * the name of algorithm to use. - * @param provider - * the name of the {@link Provider} to use. + * @param algorithm the name of algorithm to use. + * @param provider the name of the {@link Provider} to use. * @return the new instance. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the named provider. - * @throws NoSuchProviderException - * if the named provider was not found. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * named provider. + * @throws NoSuchProviderException if the named provider was not found. + * @throws IllegalArgumentException if either algorithm or + * provider is null or empty. */ public static AlgorithmParameterGenerator getInstance(String algorithm, - String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + String provider) + throws NoSuchAlgorithmException, NoSuchProviderException { - if (provider == null || provider.length() == 0) - throw new IllegalArgumentException("Illegal provider"); - + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } @@ -152,38 +156,50 @@ public class AlgorithmParameterGenerator * Returns a new AlgorithmParameterGenerator instance which * generates algorithm parameters for the specified algorithm. * - * @param algorithm - * the name of algorithm to use. - * @param provider - * the {@link Provider} to use. + * @param algorithm the name of algorithm to use. + * @param provider the {@link Provider} to use. * @return the new instance. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by {@link Provider}. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by + * {@link Provider}. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. * @since 1.4 * @see Provider */ public static AlgorithmParameterGenerator getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); - + StringBuilder sb = new StringBuilder() + .append("AlgorithmParameterGenerator for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new AlgorithmParameterGenerator( - (AlgorithmParameterGeneratorSpi) Engine.getInstance( - ALGORITHM_PARAMETER_GENERATOR, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(ALGORITHM_PARAMETER_GENERATOR, + algorithm, + provider); + return new AlgorithmParameterGenerator((AlgorithmParameterGeneratorSpi) spi, + provider, + algorithm); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } /** @return the {@link Provider} of this generator. */ diff --git a/libjava/classpath/java/security/AlgorithmParameters.java b/libjava/classpath/java/security/AlgorithmParameters.java index c4655aefacb..f5e5063a17d 100644 --- a/libjava/classpath/java/security/AlgorithmParameters.java +++ b/libjava/classpath/java/security/AlgorithmParameters.java @@ -41,6 +41,7 @@ package java.security; import gnu.java.security.Engine; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; @@ -91,106 +92,115 @@ public class AlgorithmParameters /** * Returns a new instance of AlgorithmParameters representing * the specified algorithm parameters. + *

    + * The returned AlgorithmParameters must still be initialized + * with an init() method. * - *

    The returned AlgorithmParameters must still be initialized - * with an init() method.

    - * - * @param algorithm - * the algorithm to use. + * @param algorithm the algorithm to use. * @return the new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by any provider. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by any + * provider. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static AlgorithmParameters getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); - + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) try { return getInstance(algorithm, p[i]); } - catch (NoSuchAlgorithmException e) - { - // Ignore this. - } - + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } /** * Returns a new instance of AlgorithmParameters representing * the specified algorithm parameters from a named provider. + *

    + * The returned AlgorithmParameters must still be intialized + * with an init() method. + *

    * - *

    The returned AlgorithmParameters must still be intialized - * with an init() method.

    - * - * @param algorithm - * the algorithm to use. - * @param provider - * the name of the {@link Provider} to use. + * @param algorithm the algorithm to use. + * @param provider the name of the {@link Provider} to use. * @return the new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the named provider. - * @throws NoSuchProviderException - * if the named provider was not found. - * @throws IllegalArgumentException - * if provider is null or is an empty - * string. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * named provider. + * @throws NoSuchProviderException if the named provider was not found. + * @throws IllegalArgumentException if either algorithm or + * provider is null or empty. */ - public static AlgorithmParameters getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + public static AlgorithmParameters getInstance(String algorithm, + String provider) + throws NoSuchAlgorithmException, NoSuchProviderException { - if (provider == null || provider.length() == 0) - throw new IllegalArgumentException("Illegal provider"); - + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } /** * Returns a new instance of AlgorithmParameters representing * the specified algorithm parameters from the specified {@link Provider}. + *

    + * The returned AlgorithmParameters must still be intialized + * with an init() method. * - *

    The returned AlgorithmParameters must still be intialized - * with an init() method.

    - * - * @param algorithm - * the algorithm to use. - * @param provider - * the {@link Provider} to use. + * @param algorithm the algorithm to use. + * @param provider the {@link Provider} to use. * @return the new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the {@link Provider}. - * @throws IllegalArgumentException - * if provider is null. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * {@link Provider}. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. * @since 1.4 */ public static AlgorithmParameters getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); - + StringBuilder sb = new StringBuilder("AlgorithmParameters for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new AlgorithmParameters((AlgorithmParametersSpi) - Engine.getInstance(ALGORITHM_PARAMETERS, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(ALGORITHM_PARAMETERS, algorithm, provider); + return new AlgorithmParameters((AlgorithmParametersSpi) spi, + provider, + algorithm); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } /** @return the provider of this parameter object. */ @@ -258,7 +268,8 @@ public class AlgorithmParameters * @throws InvalidParameterSpecException * if paramSpec is invalid. */ - public final AlgorithmParameterSpec getParameterSpec(Class paramSpec) + public final + T getParameterSpec(Class paramSpec) throws InvalidParameterSpecException { return paramSpi.engineGetParameterSpec(paramSpec); diff --git a/libjava/classpath/java/security/AlgorithmParametersSpi.java b/libjava/classpath/java/security/AlgorithmParametersSpi.java index a9faa154374..bd61ce7df01 100644 --- a/libjava/classpath/java/security/AlgorithmParametersSpi.java +++ b/libjava/classpath/java/security/AlgorithmParametersSpi.java @@ -113,8 +113,8 @@ public abstract class AlgorithmParametersSpi * @throws InvalidParameterSpecException if the paramSpec is an * invalid parameter class */ - protected abstract AlgorithmParameterSpec engineGetParameterSpec(Class - paramSpec) + protected abstract + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException; diff --git a/libjava/classpath/java/security/IdentityScope.java b/libjava/classpath/java/security/IdentityScope.java index d1ea1f29500..610d3534c26 100644 --- a/libjava/classpath/java/security/IdentityScope.java +++ b/libjava/classpath/java/security/IdentityScope.java @@ -201,7 +201,7 @@ public abstract class IdentityScope extends Identity * * @return an {@link Enumeration} of the identities in this scope. */ - public abstract Enumeration identities(); + public abstract Enumeration identities(); /** * Returns a string representing this instance. It includes the name, the diff --git a/libjava/classpath/java/security/KeyFactory.java b/libjava/classpath/java/security/KeyFactory.java index edb2a87dafb..043dd59a151 100644 --- a/libjava/classpath/java/security/KeyFactory.java +++ b/libjava/classpath/java/security/KeyFactory.java @@ -40,6 +40,7 @@ package java.security; import gnu.java.security.Engine; +import java.lang.reflect.InvocationTargetException; import java.security.spec.InvalidKeySpecException; import java.security.spec.KeySpec; @@ -93,26 +94,29 @@ public class KeyFactory * Returns a new instance of KeyFactory representing the * specified key factory. * - * @param algorithm - * the name of algorithm to use. + * @param algorithm the name of algorithm to use. * @return a new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by any provider. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by any + * provider. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static KeyFactory getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) try { return getInstance(algorithm, p[i]); } - catch (NoSuchAlgorithmException e) - { - // Ignore. - } - + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } @@ -120,29 +124,26 @@ public class KeyFactory * Returns a new instance of KeyFactory representing the * specified key factory from the specified provider. * - * @param algorithm - * the name of algorithm to use. - * @param provider - * the name of the provider to use. + * @param algorithm the name of algorithm to use. + * @param provider the name of the provider to use. * @return a new instance repesenting the desired algorithm. - * @throws IllegalArgumentException - * if provider is null or is an empty - * string. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the named provider. - * @throws NoSuchProviderException - * if the named provider was not found. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * named provider. + * @throws NoSuchProviderException if the named provider was not found. + * @throws IllegalArgumentException if either algorithm or + * provider is null or empty. */ public static KeyFactory getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { - if (provider == null || provider.length() == 0) - throw new IllegalArgumentException("Illegal provider"); - + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } @@ -150,38 +151,44 @@ public class KeyFactory * Returns a new instance of KeyFactory representing the * specified key factory from the designated {@link Provider}. * - * @param algorithm - * the name of algorithm to use. - * @param provider - * the {@link Provider} to use. + * @param algorithm the name of algorithm to use. + * @param provider the {@link Provider} to use. * @return a new instance repesenting the desired algorithm. - * @throws IllegalArgumentException - * if provider is null. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by {@link Provider}. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by + * {@link Provider}. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. * @since 1.4 * @see Provider */ public static KeyFactory getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); - + StringBuilder sb = new StringBuilder("KeyFactory for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new KeyFactory((KeyFactorySpi) - Engine.getInstance(KEY_FACTORY, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(KEY_FACTORY, algorithm, provider); + return new KeyFactory((KeyFactorySpi) spi, provider, algorithm); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); - } + cause = x; + } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } /** @@ -248,7 +255,7 @@ public class KeyFactory * the requested key specification is inappropriate for this key or * the key is unrecognized. */ - public final KeySpec getKeySpec(Key key, Class keySpec) + public final T getKeySpec(Key key, Class keySpec) throws InvalidKeySpecException { return keyFacSpi.engineGetKeySpec(key, keySpec); diff --git a/libjava/classpath/java/security/KeyFactorySpi.java b/libjava/classpath/java/security/KeyFactorySpi.java index 1894fad08df..fa56378121b 100644 --- a/libjava/classpath/java/security/KeyFactorySpi.java +++ b/libjava/classpath/java/security/KeyFactorySpi.java @@ -113,7 +113,8 @@ public abstract class KeyFactorySpi * is inappropriate for this key or the key is * unrecognized. */ - protected abstract KeySpec engineGetKeySpec(Key key, Class keySpec) + protected abstract T engineGetKeySpec(Key key, + Class keySpec) throws InvalidKeySpecException; @@ -121,11 +122,11 @@ public abstract class KeyFactorySpi * Translates the key from an unknown or untrusted provider * into a key for this key factory. * - * @param the key from an unknown or untrusted provider + * @param key key from an unknown or untrusted provider * * @return the translated key * - * @throws InvalidKeySpecException if the key cannot be + * @throws InvalidKeyException if the key cannot be * processed by this key factory */ protected abstract Key engineTranslateKey(Key key) diff --git a/libjava/classpath/java/security/KeyPairGenerator.java b/libjava/classpath/java/security/KeyPairGenerator.java index 357d7a75f2f..6974035fd6b 100644 --- a/libjava/classpath/java/security/KeyPairGenerator.java +++ b/libjava/classpath/java/security/KeyPairGenerator.java @@ -40,6 +40,7 @@ package java.security; import gnu.java.security.Engine; +import java.lang.reflect.InvocationTargetException; import java.security.spec.AlgorithmParameterSpec; /** @@ -90,28 +91,29 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm. * - * @param algorithm - * the name of the algorithm to use. + * @param algorithm the name of the algorithm to use. * @return a new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by any provider. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by any + * provider. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static KeyPairGenerator getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(algorithm, p[i]); - } - catch (NoSuchAlgorithmException e) - { - // Ignored. - } - } - + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } @@ -119,23 +121,26 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi * Returns a new instance of KeyPairGenerator which generates * key-pairs for the specified algorithm from a named provider. * - * @param algorithm - * the name of the algorithm to use. - * @param provider - * the name of a {@link Provider} to use. + * @param algorithm the name of the algorithm to use. + * @param provider the name of a {@link Provider} to use. * @return a new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the named provider. - * @throws NoSuchProviderException - * if the named provider was not found. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * named provider. + * @throws NoSuchProviderException if the named provider was not found. + * @throws IllegalArgumentException if either algorithm or + * provider is null or empty. */ public static KeyPairGenerator getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } @@ -148,10 +153,11 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi * @param provider * the {@link Provider} to use. * @return a new insatnce repesenting the desired algorithm. - * @throws IllegalArgumentException - * if provider is null. * @throws NoSuchAlgorithmException * if the algorithm is not implemented by the {@link Provider}. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. * @since 1.4 * @see Provider */ @@ -159,20 +165,27 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi Provider provider) throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); - - Object o = null; + StringBuilder sb = new StringBuilder("KeyPairGenerator for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] "); + Object o; try { o = Engine.getInstance(KEY_PAIR_GENERATOR, algorithm, provider); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + Throwable cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; + sb.append("could not be created"); + NoSuchAlgorithmException y = new NoSuchAlgorithmException(sb.toString()); + y.initCause(cause); + throw y; } - - KeyPairGenerator result = null; + KeyPairGenerator result; if (o instanceof KeyPairGenerator) { result = (KeyPairGenerator) o; @@ -180,7 +193,11 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi } else if (o instanceof KeyPairGeneratorSpi) result = new DummyKeyPairGenerator((KeyPairGeneratorSpi) o, algorithm); - + else + { + sb.append("is of an unexpected Type: ").append(o.getClass().getName()); + throw new NoSuchAlgorithmException(sb.toString()); + } result.provider = provider; return result; } diff --git a/libjava/classpath/java/security/KeyStore.java b/libjava/classpath/java/security/KeyStore.java index 8681d826590..1d036c31ce2 100644 --- a/libjava/classpath/java/security/KeyStore.java +++ b/libjava/classpath/java/security/KeyStore.java @@ -43,6 +43,7 @@ import gnu.java.security.Engine; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.lang.reflect.InvocationTargetException; import java.security.cert.CertificateException; import java.util.Date; import java.util.Enumeration; @@ -108,105 +109,100 @@ public class KeyStore this.type = type; } - // Class methods. - // ------------------------------------------------------------------------ - - /** - * Gets an instance of the KeyStore class representing - * the specified keystore. If the type is not - * found then, it throws KeyStoreException. - * - * @param type the type of keystore to choose - * @return a KeyStore repesenting the desired type - * @throws KeyStoreException if the type of keystore is not implemented - * by providers or the implementation cannot be instantiated. + /** + * Returns an instance of a KeyStore representing the specified + * type, from the first provider that implements it. + * + * @param type the type of keystore to create. + * @return a KeyStore repesenting the desired type. + * @throws KeyStoreException if the designated type of is not implemented by + * any provider, or the implementation could not be instantiated. + * @throws IllegalArgumentException if type is + * null or is an empty string. */ public static KeyStore getInstance(String type) throws KeyStoreException { Provider[] p = Security.getProviders(); - + KeyStoreException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(type, p[i]); - } - catch (KeyStoreException e) - { - // Ignore. - } - } - + try + { + return getInstance(type, p[i]); + } + catch (KeyStoreException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new KeyStoreException(type); } - /** - * Gets an instance of the KeyStore class representing - * the specified key store from the specified provider. - * If the type is not found then, it throws KeyStoreException. - * If the provider is not found, then it throws - * NoSuchProviderException. - * - * @param type the type of keystore to choose - * @param provider the provider name - * @return a KeyStore repesenting the desired type - * @throws KeyStoreException if the type of keystore is not - * implemented by the given provider - * @throws NoSuchProviderException if the provider is not found - * @throws IllegalArgumentException if the provider string is - * null or empty + /** + * Returns an instance of a KeyStore representing the specified + * type, from the named provider. + * + * @param type the type of keystore to create. + * @param provider the name of the provider to use. + * @return a KeyStore repesenting the desired type. + * @throws KeyStoreException if the designated type is not implemented by the + * given provider. + * @throws NoSuchProviderException if the provider is not found. + * @throws IllegalArgumentException if either type or + * provider is null or empty. */ public static KeyStore getInstance(String type, String provider) throws KeyStoreException, NoSuchProviderException { - if (provider == null || provider.length() == 0) - throw new IllegalArgumentException("Illegal provider"); - + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(type, p); } - /** - * Gets an instance of the KeyStore class representing - * the specified key store from the specified provider. - * If the type is not found then, it throws KeyStoreException. - * If the provider is not found, then it throws - * NoSuchProviderException. - * - * @param type the type of keystore to choose - * @param provider the keystore provider - * @return a KeyStore repesenting the desired type - * @throws KeyStoreException if the type of keystore is not - * implemented by the given provider - * @throws IllegalArgumentException if the provider object is null + /** + * Returns an instance of a KeyStore representing the specified + * type, from the specified provider. + * + * @param type the type of keystore to create. + * @param provider the provider to use. + * @return a KeyStore repesenting the desired type. + * @throws KeyStoreException if the designated type is not implemented by the + * given provider. + * @throws IllegalArgumentException if either type or + * provider is null, or if + * type is an empty string. * @since 1.4 */ public static KeyStore getInstance(String type, Provider provider) - throws KeyStoreException + throws KeyStoreException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); + Throwable cause; try { - return new KeyStore( - (KeyStoreSpi) Engine.getInstance(KEY_STORE, type, provider), - provider, type); + Object spi = Engine.getInstance(KEY_STORE, type, provider); + return new KeyStore((KeyStoreSpi) spi, provider, type); } - catch (NoSuchAlgorithmException nsae) + catch (NoSuchAlgorithmException x) { - throw new KeyStoreException(type); + cause = x; } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new KeyStoreException(type); + cause = x.getCause() != null ? x.getCause() : x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new KeyStoreException(type); + cause = x; } + KeyStoreException x = new KeyStoreException(type); + x.initCause(cause); + throw x; } /** @@ -392,7 +388,7 @@ public class KeyStore @return an Enumeration of the aliases */ - public final Enumeration aliases() throws KeyStoreException + public final Enumeration aliases() throws KeyStoreException { return keyStoreSpi.engineAliases(); } diff --git a/libjava/classpath/java/security/KeyStoreSpi.java b/libjava/classpath/java/security/KeyStoreSpi.java index a16008f9960..c8d23166321 100644 --- a/libjava/classpath/java/security/KeyStoreSpi.java +++ b/libjava/classpath/java/security/KeyStoreSpi.java @@ -187,7 +187,7 @@ public abstract class KeyStoreSpi * * @return an Enumeration of the aliases */ - public abstract Enumeration engineAliases(); + public abstract Enumeration engineAliases(); /** * Determines if the keystore contains the specified alias. diff --git a/libjava/classpath/java/security/MessageDigest.java b/libjava/classpath/java/security/MessageDigest.java index b817759f547..0f8e934e5e9 100644 --- a/libjava/classpath/java/security/MessageDigest.java +++ b/libjava/classpath/java/security/MessageDigest.java @@ -38,6 +38,9 @@ exception statement from your version. */ package java.security; import gnu.java.security.Engine; +import java.nio.ByteBuffer; + +import java.lang.reflect.InvocationTargetException; /** * Message digests are secure one-way hash functions that take arbitrary-sized @@ -72,28 +75,29 @@ public abstract class MessageDigest extends MessageDigestSpi * Returns a new instance of MessageDigest representing the * specified algorithm. * - * @param algorithm - * the name of the digest algorithm to use. + * @param algorithm the name of the digest algorithm to use. * @return a new instance representing the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by any provider. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by any + * provider. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static MessageDigest getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(algorithm, p[i]); - } - catch (NoSuchAlgorithmException ignored) - { - // Ignore. - } - } - + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } @@ -101,29 +105,26 @@ public abstract class MessageDigest extends MessageDigestSpi * Returns a new instance of MessageDigest representing the * specified algorithm from a named provider. * - * @param algorithm - * the name of the digest algorithm to use. - * @param provider - * the name of the provider to use. + * @param algorithm the name of the digest algorithm to use. + * @param provider the name of the provider to use. * @return a new instance representing the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the named provider. - * @throws NoSuchProviderException - * if the named provider was not found. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * named provider. + * @throws NoSuchProviderException if the named provider was not found. + * @throws IllegalArgumentException if either algorithm or + * provider is null or empty. */ public static MessageDigest getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { - if (provider != null) - provider = provider.trim(); - - if (provider == null || provider.length() == 0) - throw new IllegalArgumentException("Illegal provider"); - + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } @@ -131,39 +132,43 @@ public abstract class MessageDigest extends MessageDigestSpi * Returns a new instance of MessageDigest representing the * specified algorithm from a designated {@link Provider}. * - * @param algorithm - * the name of the digest algorithm to use. - * @param provider - * the {@link Provider} to use. + * @param algorithm the name of the digest algorithm to use. + * @param provider the {@link Provider} to use. * @return a new instance representing the desired algorithm. - * @throws IllegalArgumentException - * if provider is null. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by {@link Provider}. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by + * {@link Provider}. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. * @since 1.4 * @see Provider */ public static MessageDigest getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); - - MessageDigest result = null; - Object o = null; + StringBuilder sb = new StringBuilder("MessageDigest for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] "); + Object o; try { o = Engine.getInstance(MESSAGE_DIGEST, algorithm, provider); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + Throwable cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; + sb.append("could not be created"); + NoSuchAlgorithmException y = new NoSuchAlgorithmException(sb.toString()); + y.initCause(cause); + throw y; } - + MessageDigest result; if (o instanceof MessageDigestSpi) - { - result = new DummyMessageDigest((MessageDigestSpi) o, algorithm); - } + result = new DummyMessageDigest((MessageDigestSpi) o, algorithm); else if (o instanceof MessageDigest) { result = (MessageDigest) o; @@ -171,7 +176,8 @@ public abstract class MessageDigest extends MessageDigestSpi } else { - throw new NoSuchAlgorithmException(algorithm); + sb.append("is of an unexpected Type: ").append(o.getClass().getName()); + throw new NoSuchAlgorithmException(sb.toString()); } result.provider = provider; return result; @@ -224,6 +230,17 @@ public abstract class MessageDigest extends MessageDigestSpi } /** + * Updates the digest with the remaining bytes of a buffer. + * + * @param input The input byte buffer. + * @since 1.5 + */ + public void update (ByteBuffer input) + { + engineUpdate (input); + } + + /** * Computes the final digest of the stored data. * * @return a byte array representing the message digest. diff --git a/libjava/classpath/java/security/MessageDigestSpi.java b/libjava/classpath/java/security/MessageDigestSpi.java index df3bd3ead02..6615b1d93b0 100644 --- a/libjava/classpath/java/security/MessageDigestSpi.java +++ b/libjava/classpath/java/security/MessageDigestSpi.java @@ -37,6 +37,8 @@ exception statement from your version. */ package java.security; +import java.nio.ByteBuffer; + /** This is the Service Provider Interface (SPI) for MessageDigest class in java.security. It provides the back end functionality @@ -98,6 +100,23 @@ public abstract class MessageDigestSpi protected abstract void engineUpdate(byte[]input, int offset, int len); /** + * Updates this digest with the remaining bytes of a byte buffer. + * + * @param input The input buffer. + * @since 1.5 + */ + protected void engineUpdate (ByteBuffer input) + { + byte[] buf = new byte[1024]; + while (input.hasRemaining()) + { + int n = Math.min(input.remaining(), buf.length); + input.get (buf, 0, n); + engineUpdate (buf, 0, n); + } + } + + /** Computes the final digest of the stored bytes and returns them. It performs any necessary padding. The message digest should reset sensitive data after performing the digest. diff --git a/libjava/classpath/java/security/PermissionCollection.java b/libjava/classpath/java/security/PermissionCollection.java index 4e8ffe57948..c5849830ad7 100644 --- a/libjava/classpath/java/security/PermissionCollection.java +++ b/libjava/classpath/java/security/PermissionCollection.java @@ -120,7 +120,7 @@ public abstract class PermissionCollection implements Serializable * * @return an Enumeration of this collection's objects */ - public abstract Enumeration elements(); + public abstract Enumeration elements(); /** * This method sets this PermissionCollection object to be @@ -159,7 +159,7 @@ public abstract class PermissionCollection implements Serializable StringBuffer sb = new StringBuffer(super.toString()); sb.append(" (\n"); - Enumeration e = elements(); + Enumeration e = elements(); while (e.hasMoreElements()) sb.append(' ').append(e.nextElement()).append('\n'); return sb.append(")\n").toString(); diff --git a/libjava/classpath/java/security/Permissions.java b/libjava/classpath/java/security/Permissions.java index e3fd06970ab..56f5ad8f5a0 100644 --- a/libjava/classpath/java/security/Permissions.java +++ b/libjava/classpath/java/security/Permissions.java @@ -150,7 +150,7 @@ public final class Permissions extends PermissionCollection * * @return an Enumeration of this collection's elements */ - public Enumeration elements() + public Enumeration elements() { return new Enumeration() { diff --git a/libjava/classpath/java/security/PrivilegedAction.java b/libjava/classpath/java/security/PrivilegedAction.java index c3a41346f9c..1a51eaade78 100644 --- a/libjava/classpath/java/security/PrivilegedAction.java +++ b/libjava/classpath/java/security/PrivilegedAction.java @@ -47,9 +47,9 @@ package java.security; * @see AccessController * @see PrivilegedExceptionAction * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.5 */ -public interface PrivilegedAction +public interface PrivilegedAction { /** * This method performs an operation that requires higher privileges to @@ -60,5 +60,5 @@ public interface PrivilegedAction * @see AccessController#doPrivileged(PrivilegedAction) * @see AccessController#doPrivileged(PrivilegedAction, AccessControlContext) */ - Object run(); + T run(); } // interface PrivilegedAction diff --git a/libjava/classpath/java/security/PrivilegedExceptionAction.java b/libjava/classpath/java/security/PrivilegedExceptionAction.java index d3d0478fd48..351438e0be2 100644 --- a/libjava/classpath/java/security/PrivilegedExceptionAction.java +++ b/libjava/classpath/java/security/PrivilegedExceptionAction.java @@ -46,9 +46,9 @@ package java.security; * * @author Aaron M. Renn (arenn@urbanophile.com) * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.5 */ -public interface PrivilegedExceptionAction +public interface PrivilegedExceptionAction { /** * This method performs an operation that requires higher privileges to @@ -61,5 +61,5 @@ public interface PrivilegedExceptionAction * @see AccessController#doPrivileged(PrivilegedExceptionAction, * AccessControlContext) */ - Object run() throws Exception; + T run() throws Exception; } // interface PrivilegedExceptionAction diff --git a/libjava/classpath/java/security/SecureClassLoader.java b/libjava/classpath/java/security/SecureClassLoader.java index 9d1fac79749..dfc1758b52f 100644 --- a/libjava/classpath/java/security/SecureClassLoader.java +++ b/libjava/classpath/java/security/SecureClassLoader.java @@ -1,5 +1,5 @@ /* SecureClassLoader.java --- A Secure Class Loader - Copyright (C) 1999, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,6 +37,11 @@ exception statement from your version. */ package java.security; +import java.util.WeakHashMap; + +import java.nio.ByteBuffer; +import java.util.HashMap; + /** * A Secure Class Loader for loading classes with additional * support for specifying code source and permissions when @@ -48,21 +53,16 @@ package java.security; */ public class SecureClassLoader extends ClassLoader { - java.util.WeakHashMap protectionDomainCache = new java.util.WeakHashMap(); + private final HashMap protectionDomainCache + = new HashMap(); protected SecureClassLoader(ClassLoader parent) { super(parent); - SecurityManager sm = System.getSecurityManager(); - if(sm != null) - sm.checkCreateClassLoader(); } protected SecureClassLoader() { - SecurityManager sm = System.getSecurityManager(); - if(sm != null) - sm.checkCreateClassLoader(); } /** @@ -79,13 +79,38 @@ public class SecureClassLoader extends ClassLoader * * @exception ClassFormatError if the byte array is not in proper classfile format. */ - protected final Class defineClass(String name, byte[] b, int off, int len, + protected final Class defineClass(String name, byte[] b, int off, int len, CodeSource cs) { + return super.defineClass(name, b, off, len, getProtectionDomain(cs)); + } + + /** + * Creates a class using an ByteBuffer and a + * CodeSource. + * + * @param name the name to give the class. null if unknown. + * @param b the data representing the classfile, in classfile format. + * @param cs the CodeSource for the class or null when unknown. + * + * @return the class that was defined and optional CodeSource. + * + * @exception ClassFormatError if the byte array is not in proper classfile format. + * + * @since 1.5 + */ + protected final Class defineClass(String name, ByteBuffer b, CodeSource cs) + { + return super.defineClass(name, b, getProtectionDomain(cs)); + } + + /* Lookup or create a protection domain for the CodeSource, + * if CodeSource is null it will return null. */ + private ProtectionDomain getProtectionDomain(CodeSource cs) + { + ProtectionDomain protectionDomain = null; if (cs != null) { - ProtectionDomain protectionDomain; - synchronized (protectionDomainCache) { protectionDomain = (ProtectionDomain)protectionDomainCache.get(cs); @@ -105,10 +130,8 @@ public class SecureClassLoader extends ClassLoader protectionDomain = domain; } } - return super.defineClass(name, b, off, len, protectionDomain); - } - else - return super.defineClass(name, b, off, len); + } + return protectionDomain; } /** @@ -117,7 +140,7 @@ public class SecureClassLoader extends ClassLoader * java.security.Policy.getPermissions. * * This method is called by defineClass that takes a CodeSource - * arguement to build a proper ProtectionDomain for the class + * argument to build a proper ProtectionDomain for the class * being defined. */ protected PermissionCollection getPermissions(CodeSource cs) diff --git a/libjava/classpath/java/security/SecureRandom.java b/libjava/classpath/java/security/SecureRandom.java index c66963e8f96..005f4670efc 100644 --- a/libjava/classpath/java/security/SecureRandom.java +++ b/libjava/classpath/java/security/SecureRandom.java @@ -45,6 +45,7 @@ import gnu.java.security.jce.prng.Sha160RandomSpi; import java.io.IOException; import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; import java.net.MalformedURLException; import java.net.URL; import java.util.Enumeration; @@ -187,101 +188,106 @@ public class SecureRandom extends Random this.algorithm = algorithm; } - // Class methods. - // ------------------------------------------------------------------------ - /** - * Returns an instance of a SecureRandom. It creates the class from - * the first provider that implements it. - * + * Returns an instance of a SecureRandom from the first provider + * that implements it. + * * @param algorithm The algorithm name. - * @return A new SecureRandom implementing the given algorithm. - * @throws NoSuchAlgorithmException If no installed provider implements - * the given algorithm. + * @return A new SecureRandom implementing the given algorithm. + * @throws NoSuchAlgorithmException If no installed provider implements the + * given algorithm. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static SecureRandom getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); - + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(algorithm, p[i]); - } - catch (NoSuchAlgorithmException e) - { - // Ignore. - } - } - - // None found. + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } /** - * Returns an instance of a SecureRandom. It creates the class - * for the specified algorithm from the named provider. - * + * Returns an instance of a SecureRandom for the specified + * algorithm from the named provider. + * * @param algorithm The algorithm name. - * @param provider The provider name. - * @return A new SecureRandom implementing the chosen algorithm. + * @param provider The provider name. + * @return A new SecureRandom implementing the chosen + * algorithm. * @throws NoSuchAlgorithmException If the named provider does not implement - * the algorithm, or if the implementation cannot be - * instantiated. - * @throws NoSuchProviderException If no provider named - * provider is currently installed. - * @throws IllegalArgumentException If provider is null - * or is empty. + * the algorithm, or if the implementation cannot be instantiated. + * @throws NoSuchProviderException If no provider named provider + * is currently installed. + * @throws IllegalArgumentException if either algorithm or + * provider is null or empty. */ public static SecureRandom getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { - if (provider == null || provider.length() == 0) - throw new IllegalArgumentException("Illegal provider"); - + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } /** - * Returns an instance of a SecureRandom. It creates the class for - * the specified algorithm from the given provider. - * - * @param algorithm The SecureRandom algorithm to create. - * @param provider The provider to get the instance from. - * @throws NoSuchAlgorithmException If the algorithm cannot be found, or - * if the class cannot be instantiated. - * @throws IllegalArgumentException If provider is null. + * Returns an instance of a SecureRandom for the specified + * algorithm from the given provider. + * + * @param algorithm The SecureRandom algorithm to create. + * @param provider The provider to use. + * @throws NoSuchAlgorithmException If the algorithm cannot be found, or if + * the class cannot be instantiated. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static SecureRandom getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); + StringBuilder sb = new StringBuilder("SecureRandom for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new SecureRandom((SecureRandomSpi) - Engine.getInstance(SECURE_RANDOM, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(SECURE_RANDOM, algorithm, provider); + return new SecureRandom((SecureRandomSpi) spi, provider, algorithm); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** Returns the provider being used by the current SecureRandom class. diff --git a/libjava/classpath/java/security/Security.java b/libjava/classpath/java/security/Security.java index d99c451499a..d3d2c1ebcf9 100644 --- a/libjava/classpath/java/security/Security.java +++ b/libjava/classpath/java/security/Security.java @@ -138,7 +138,7 @@ public final class Security Exception exception = null; try { - ClassLoader sys = ClassLoader.getSystemClassLoader(); + ClassLoader sys = ClassLoader.getSystemClassLoader(); providers.addElement(Class.forName(name, true, sys).newInstance()); } catch (ClassNotFoundException x) @@ -408,9 +408,9 @@ public final class Security * {@link Provider}s. * @since 1.4 */ - public static Set getAlgorithms(String serviceName) + public static Set getAlgorithms(String serviceName) { - HashSet result = new HashSet(); + HashSet result = new HashSet(); if (serviceName == null || serviceName.length() == 0) return result; @@ -541,7 +541,7 @@ public final class Security * {@link Map}'s keys. * @see #getProviders(String) */ - public static Provider[] getProviders(Map filter) + public static Provider[] getProviders(Map filter) { if (providers == null || providers.isEmpty()) return null; @@ -549,7 +549,7 @@ public final class Security if (filter == null) return getProviders(); - Set querries = filter.keySet(); + Set querries = filter.keySet(); if (querries == null || querries.isEmpty()) return getProviders(); @@ -572,7 +572,7 @@ public final class Security throw new InvalidParameterException( "missing dot in '" + String.valueOf(querry)+"'"); - value = (String) filter.get(querry); + value = filter.get(querry); // deconstruct querry into [service, algorithm, attribute] if (value == null || value.trim().length() == 0) // . { diff --git a/libjava/classpath/java/security/Signature.java b/libjava/classpath/java/security/Signature.java index 845a77a8b8f..1245707f7af 100644 --- a/libjava/classpath/java/security/Signature.java +++ b/libjava/classpath/java/security/Signature.java @@ -40,6 +40,8 @@ package java.security; import gnu.java.security.Engine; +import java.lang.reflect.InvocationTargetException; +import java.nio.ByteBuffer; import java.security.cert.Certificate; import java.security.cert.X509Certificate; import java.security.spec.AlgorithmParameterSpec; @@ -127,28 +129,29 @@ public abstract class Signature extends SignatureSpi * Returns an instance of Signature representing the specified * signature. * - * @param algorithm - * the algorithm to use. + * @param algorithm the algorithm to use. * @return a new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by any provider. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by any + * provider. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static Signature getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(algorithm, p[i]); - } - catch (NoSuchAlgorithmException e) - { - // Ignored. - } - } - + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } @@ -156,28 +159,26 @@ public abstract class Signature extends SignatureSpi * Returns an instance of Signature representing the specified * signature from the named provider. * - * @param algorithm - * the algorithm to use. - * @param provider - * the name of the provider to use. + * @param algorithm the algorithm to use. + * @param provider the name of the provider to use. * @return a new instance repesenting the desired algorithm. - * @throws IllegalArgumentException if provider is - * null or is an empty string. - * @throws NoSuchProviderException - * if the named provider was not found. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the named provider. + * @throws NoSuchProviderException if the named provider was not found. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * named provider. + * @throws IllegalArgumentException if either algorithm or + * provider is null or empty. */ public static Signature getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { - if (provider == null || provider.length() == 0) - throw new IllegalArgumentException("Illegal provider"); - + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); + provider = provider.trim(); + if (provider.length() == 0) + throw new IllegalArgumentException("provider MUST NOT be empty"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } @@ -185,35 +186,41 @@ public abstract class Signature extends SignatureSpi * Returns an instance of Signature representing the specified * signature from the specified {@link Provider}. * - * @param algorithm - * the algorithm to use. - * @param provider - * the {@link Provider} to use. + * @param algorithm the algorithm to use. + * @param provider the {@link Provider} to use. * @return a new instance repesenting the desired algorithm. - * @throws NoSuchAlgorithmException - * if the algorithm is not implemented by the {@link Provider}. + * @throws NoSuchAlgorithmException if the algorithm is not implemented by the + * {@link Provider}. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static Signature getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("Illegal provider"); - - Signature result = null; - Object o = null; + StringBuilder sb = new StringBuilder("Signature algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] "); + Object o; try { o = Engine.getInstance(SIGNATURE, algorithm, provider); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + Throwable cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; + sb.append("could not be created"); + NoSuchAlgorithmException y = new NoSuchAlgorithmException(sb.toString()); + y.initCause(cause); + throw y; } - + Signature result; if (o instanceof SignatureSpi) - { - result = new DummySignature((SignatureSpi) o, algorithm); - } + result = new DummySignature((SignatureSpi) o, algorithm); else if (o instanceof Signature) { result = (Signature) o; @@ -221,7 +228,8 @@ public abstract class Signature extends SignatureSpi } else { - throw new NoSuchAlgorithmException(algorithm); + sb.append("is of an unexpected Type: ").append(o.getClass().getName()); + throw new NoSuchAlgorithmException(sb.toString()); } result.provider = provider; return result; @@ -467,6 +475,22 @@ public abstract class Signature extends SignatureSpi else throw new SignatureException(); } + + /** + * Update this signature with the {@link java.nio.Buffer#remaining()} + * bytes of the input buffer. + * + * @param input The input buffer. + * @throws SignatureException If this instance was not properly + * initialized. + */ + public final void update(ByteBuffer input) throws SignatureException + { + if (state != UNINITIALIZED) + engineUpdate(input); + else + throw new SignatureException("not initialized"); + } /** * Returns the name of the algorithm currently used. The names of algorithms diff --git a/libjava/classpath/java/security/SignatureSpi.java b/libjava/classpath/java/security/SignatureSpi.java index 25d49dedd43..3b46815eca9 100644 --- a/libjava/classpath/java/security/SignatureSpi.java +++ b/libjava/classpath/java/security/SignatureSpi.java @@ -37,6 +37,7 @@ exception statement from your version. */ package java.security; +import java.nio.ByteBuffer; import java.security.spec.AlgorithmParameterSpec; /** @@ -131,6 +132,24 @@ public abstract class SignatureSpi throws SignatureException; /** + * Update this signature with the {@link java.nio.Buffer#remaining()} + * bytes of the given buffer. + * + * @param input The input buffer. + * @throws SignatureException + */ + protected void engineUpdate(ByteBuffer input) throws SignatureException + { + byte[] buf = new byte[4096]; + while (input.hasRemaining()) + { + int l = Math.min(input.remaining(), buf.length); + input.get(buf, 0, l); + engineUpdate(buf, 0, l); + } + } + + /** * Returns the signature bytes of all the data fed to this instance. The * format of the output depends on the underlying signature algorithm. * diff --git a/libjava/classpath/java/security/acl/Acl.java b/libjava/classpath/java/security/acl/Acl.java index ff139afd6c0..6a3f7d52a87 100644 --- a/libjava/classpath/java/security/acl/Acl.java +++ b/libjava/classpath/java/security/acl/Acl.java @@ -117,7 +117,7 @@ public interface Acl extends Owner * * @return An enumeration of the ACL entries */ - Enumeration entries(); + Enumeration entries(); /** * This method tests whether or not the specified Principal @@ -142,7 +142,7 @@ public interface Acl extends Owner * * @return A list of permissions for the Principal. */ - Enumeration getPermissions(Principal user); + Enumeration getPermissions(Principal user); /** * This method returns the ACL as a String diff --git a/libjava/classpath/java/security/acl/AclEntry.java b/libjava/classpath/java/security/acl/AclEntry.java index 7b1bcf54db9..ea906f184d8 100644 --- a/libjava/classpath/java/security/acl/AclEntry.java +++ b/libjava/classpath/java/security/acl/AclEntry.java @@ -94,7 +94,7 @@ public interface AclEntry extends Cloneable /** * This method adds the specified permission to this ACL entry. * - * @param perm The Permission to add + * @param permission The Permission to add * * @return true if the permission was added or false if it was already set for this entry */ @@ -113,7 +113,7 @@ public interface AclEntry extends Cloneable * This method tests whether or not the specified permission is associated * with this ACL entry. * - * @param perm The Permission to test + * @param permission The Permission to test * * @return true if this permission is associated with this entry or false otherwise */ @@ -125,7 +125,7 @@ public interface AclEntry extends Cloneable * * @return A list of permissions for this ACL entry */ - Enumeration permissions(); + Enumeration permissions(); /** * This method returns this object as a String. diff --git a/libjava/classpath/java/security/acl/Group.java b/libjava/classpath/java/security/acl/Group.java index 3ffdf15a4ce..ed6d56a572e 100644 --- a/libjava/classpath/java/security/acl/Group.java +++ b/libjava/classpath/java/security/acl/Group.java @@ -74,7 +74,7 @@ public interface Group extends Principal * This method tests whether or not a given Principal is a * member of this group. * - * @param user The Principal to test for membership + * @param member The Principal to test for membership * * @return true if the user is member, false otherwise */ @@ -86,5 +86,5 @@ public interface Group extends Principal * * @return The list of all members of the group */ - Enumeration members(); + Enumeration members(); } diff --git a/libjava/classpath/java/security/cert/CertPath.java b/libjava/classpath/java/security/cert/CertPath.java index e818763aab4..781eb3e2776 100644 --- a/libjava/classpath/java/security/cert/CertPath.java +++ b/libjava/classpath/java/security/cert/CertPath.java @@ -161,7 +161,7 @@ public abstract class CertPath implements Serializable * * @return the iterator of supported encodings in the path */ - public abstract Iterator getEncodings(); + public abstract Iterator getEncodings(); /** * Compares this path to another for semantic equality. To be equal, both @@ -226,7 +226,7 @@ public abstract class CertPath implements Serializable * * @return the list of certificates, non-null but possibly empty */ - public abstract List getCertificates(); + public abstract List getCertificates(); /** * Serializes the path in its encoded form, to ensure reserialization with diff --git a/libjava/classpath/java/security/cert/CertPathBuilder.java b/libjava/classpath/java/security/cert/CertPathBuilder.java index f6965205f53..519ed2b6c52 100644 --- a/libjava/classpath/java/security/cert/CertPathBuilder.java +++ b/libjava/classpath/java/security/cert/CertPathBuilder.java @@ -40,6 +40,7 @@ package java.security.cert; import gnu.java.security.Engine; +import java.lang.reflect.InvocationTargetException; import java.security.InvalidAlgorithmParameterException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; @@ -111,50 +112,54 @@ public class CertPathBuilder } /** - * Get an instance of a named CertPathBuilder, from the first provider - * that implements it. - * - * @param algorithm The name of the CertPathBuilder to create. + * Returns an instance of a named CertPathBuilder from the + * first provider that implements it. + * + * @param algorithm The name of the CertPathBuilder to create. * @return The new instance. - * @throws NoSuchAlgorithmException If no installed provider - * implements the named algorithm. + * @throws NoSuchAlgorithmException If no installed provider implements the + * named algorithm. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static CertPathBuilder getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); - + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(algorithm, p[i]); - } - catch (NoSuchAlgorithmException e) - { - // Ignored. - } - } - + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } /** - * Get an instance of a named CertPathBuilder from the named + * Returns an instance of a named CertPathBuilder from a named * provider. - * - * @param algorithm The name of the CertPathBuilder to create. - * @param provider The name of the provider from which to get the - * implementation. + * + * @param algorithm The name of the CertPathBuilder to create. + * @param provider The name of the provider to use. * @return The new instance. - * @throws NoSuchAlgorithmException If no installed provider - * implements the named algorithm. - * @throws NoSuchProviderException If the named provider does not - * exist. + * @throws NoSuchAlgorithmException If no installed provider implements the + * named algorithm. + * @throws NoSuchProviderException If the named provider does not exist. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static CertPathBuilder getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); @@ -162,41 +167,47 @@ public class CertPathBuilder } /** - * Get an instance of a named CertPathBuilder from the specified - * provider. - * - * @param algorithm The name of the CertPathBuilder to create. - * @param provider The provider from which to get the implementation. + * Returns an instance of a named CertPathBuilder from the + * specified provider. + * + * @param algorithm The name of the CertPathBuilder to create. + * @param provider The provider to use. * @return The new instance. - * @throws NoSuchAlgorithmException If no installed provider - * implements the named algorithm. - * @throws IllegalArgumentException If provider in - * null. + * @throws NoSuchAlgorithmException If no installed provider implements the + * named algorithm. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static CertPathBuilder getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("null provider"); + StringBuilder sb = new StringBuilder("CertPathBuilder for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new CertPathBuilder((CertPathBuilderSpi) - Engine.getInstance(CERT_PATH_BUILDER, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(CERT_PATH_BUILDER, algorithm, provider); + return new CertPathBuilder((CertPathBuilderSpi) spi, provider, algorithm); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Return the name of this CertPathBuilder algorithm. * diff --git a/libjava/classpath/java/security/cert/CertPathValidator.java b/libjava/classpath/java/security/cert/CertPathValidator.java index 5fed19e9a78..bf7c9746e24 100644 --- a/libjava/classpath/java/security/cert/CertPathValidator.java +++ b/libjava/classpath/java/security/cert/CertPathValidator.java @@ -40,6 +40,7 @@ package java.security.cert; import gnu.java.security.Engine; +import java.lang.reflect.InvocationTargetException; import java.security.AccessController; import java.security.InvalidAlgorithmParameterException; import java.security.NoSuchAlgorithmException; @@ -124,91 +125,103 @@ public class CertPathValidator { } /** - * Get an instance of the given validator from the first provider that + * Returns an instance of the given validator from the first provider that * implements it. - * + * * @param algorithm The name of the algorithm to get. * @return The new instance. - * @throws NoSuchAlgorithmException If no installed provider - * implements the requested algorithm. + * @throws NoSuchAlgorithmException If no installed provider implements the + * requested algorithm. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static CertPathValidator getInstance(String algorithm) throws NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(algorithm, p[i]); - } - catch (NoSuchAlgorithmException e) - { - // Ignored. - } - } + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } /** - * Get an instance of the given validator from the named provider. - * + * Returns an instance of the given validator from the named provider. + * * @param algorithm The name of the algorithm to get. - * @param provider The name of the provider from which to get the - * implementation. + * @param provider The name of the provider from which to get the + * implementation. * @return The new instance. - * @throws NoSuchAlgorithmException If the named provider does not - * implement the algorithm. - * @throws NoSuchProviderException If no provider named - * provider is installed. + * @throws NoSuchAlgorithmException If the named provider does not implement + * the algorithm. + * @throws NoSuchProviderException If no provider named provider is + * installed. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ - public static CertPathValidator getInstance(String algorithm, - String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + public static CertPathValidator getInstance(String algorithm, String provider) + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); - return getInstance(algorithm, p); } /** - * Get an instance of the given validator from the given provider. - * + * Returns an instance of the given validator from the given provider. + * * @param algorithm The name of the algorithm to get. - * @param provider The provider from which to get the implementation. + * @param provider The provider from which to get the implementation. * @return The new instance. - * @throws NoSuchAlgorithmException If the provider does not implement - * the algorithm. - * @throws IllegalArgumentException If provider is null. + * @throws NoSuchAlgorithmException If the provider does not implement the + * algorithm. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static CertPathValidator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("null provider"); - + StringBuilder sb = new StringBuilder("CertPathValidator for algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new CertPathValidator((CertPathValidatorSpi) - Engine.getInstance(CERT_PATH_VALIDATOR, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(CERT_PATH_VALIDATOR, algorithm, provider); + return new CertPathValidator((CertPathValidatorSpi) spi, provider, algorithm); } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Return the name of this validator. * diff --git a/libjava/classpath/java/security/cert/CertStore.java b/libjava/classpath/java/security/cert/CertStore.java index 864da868f19..a27086562e6 100644 --- a/libjava/classpath/java/security/cert/CertStore.java +++ b/libjava/classpath/java/security/cert/CertStore.java @@ -40,6 +40,7 @@ package java.security.cert; import gnu.java.security.Engine; +import java.lang.reflect.InvocationTargetException; import java.security.InvalidAlgorithmParameterException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; @@ -52,7 +53,7 @@ import java.util.Collection; * A CertStore is a read-only repository for certificates and * certificate revocation lists. * - * @since JDK 1.4 + * @since 1.4 */ public class CertStore { @@ -123,59 +124,63 @@ public class CertStore } /** - * Get an instance of the given certificate store from the first + * Returns an instance of the given certificate store type from the first * installed provider. - * - * @param type The type of CertStore to create. - * @param params The parameters to initialize this cert store with. + * + * @param type The type of CertStore to create. + * @param params The parameters to initialize this cert store with. * @return The new instance. - * @throws InvalidAlgorithmParameterException If the instance rejects - * the specified parameters. - * @throws NoSuchAlgorithmException If no installed provider - * implements the specified CertStore. - * @throws IllegalArgumentException If provider is null. + * @throws InvalidAlgorithmParameterException If the instance rejects the + * specified parameters. + * @throws NoSuchAlgorithmException If no installed provider implements the + * specified CertStore. + * @throws IllegalArgumentException if type is + * null or is an empty string. */ public static CertStore getInstance(String type, CertStoreParameters params) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException { Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(type, params, p[i]); - } - catch (NoSuchAlgorithmException e) - { - // Ignored. - } - } - + try + { + return getInstance(type, params, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(type); } /** - * Get an instance of the given certificate store from the named + * Returns an instance of the given certificate store type from a named * provider. - * - * @param type The type of CertStore to create. - * @param params The parameters to initialize this cert store with. - * @param provider The name of the provider from which to get the - * implementation. + * + * @param type The type of CertStore to create. + * @param params The parameters to initialize this cert store with. + * @param provider The name of the provider to use. * @return The new instance. - * @throws InvalidAlgorithmParameterException If the instance rejects - * the specified parameters. + * @throws InvalidAlgorithmParameterException If the instance rejects the + * specified parameters. * @throws NoSuchAlgorithmException If the specified provider does not - * implement the specified CertStore. - * @throws NoSuchProviderException If no provider named - * provider is installed. - * @throws IllegalArgumentException If provider is null. + * implement the specified CertStore. + * @throws NoSuchProviderException If no provider named provider is + * installed. + * @throws IllegalArgumentException if either type or + * provider is null, or if + * type is an empty string. */ public static CertStore getInstance(String type, CertStoreParameters params, String provider) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); @@ -183,48 +188,52 @@ public class CertStore } /** - * Get an instance of the given certificate store from the given + * Returns an instance of the given certificate store type from a given * provider. * - * @param type The type of CertStore to create. + * @param type The type of CertStore to create. * @param params The parameters to initialize this cert store with. - * @param provider The provider from which to get the implementation. + * @param provider The provider to use. * @return The new instance. * @throws InvalidAlgorithmParameterException If the instance rejects * the specified parameters. * @throws NoSuchAlgorithmException If the specified provider does not * implement the specified CertStore. - * @throws IllegalArgumentException If provider is null. + * @throws IllegalArgumentException if either type or + * provider is null, or if + * type is an empty string. */ public static CertStore getInstance(String type, CertStoreParameters params, Provider provider) - throws InvalidAlgorithmParameterException, NoSuchAlgorithmException + throws InvalidAlgorithmParameterException, NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("null provider"); - + StringBuilder sb = new StringBuilder("CertStore of type [") + .append(type).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new CertStore((CertStoreSpi) Engine.getInstance(CERT_STORE, - type, provider, new Object[] { params }), provider, type, params); + Object[] args = new Object[] { params }; + Object spi = Engine.getInstance(CERT_STORE, type, provider, args); + return new CertStore((CertStoreSpi) spi, provider, type, params); } - catch (ClassCastException cce) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(type); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (java.lang.reflect.InvocationTargetException ite) + catch (ClassCastException x) { - Throwable cause = ite.getCause(); - if (cause instanceof InvalidAlgorithmParameterException) - throw (InvalidAlgorithmParameterException) cause; - else - throw new NoSuchAlgorithmException(type); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Return the type of certificate store this instance represents. * @@ -268,7 +277,7 @@ public class CertStore * @return The collection of certificates. * @throws CertStoreException If the certificates cannot be retrieved. */ - public final Collection getCertificates(CertSelector selector) + public final Collection getCertificates(CertSelector selector) throws CertStoreException { return storeSpi.engineGetCertificates(selector); @@ -286,7 +295,7 @@ public class CertStore * @return The collection of certificate revocation lists. * @throws CertStoreException If the CRLs cannot be retrieved. */ - public final Collection getCRLs(CRLSelector selector) + public final Collection getCRLs(CRLSelector selector) throws CertStoreException { return storeSpi.engineGetCRLs(selector); diff --git a/libjava/classpath/java/security/cert/CertStoreSpi.java b/libjava/classpath/java/security/cert/CertStoreSpi.java index a69545f0d32..976d65ce922 100644 --- a/libjava/classpath/java/security/cert/CertStoreSpi.java +++ b/libjava/classpath/java/security/cert/CertStoreSpi.java @@ -50,7 +50,7 @@ import java.util.Collection; * implement the {@link CertStoreParameters} interface, if they require * parameters. * - * @since JDK 1.4 + * @since 1.4 * @see CertStore * @see CollectionCertStoreParameters * @see LDAPCertStoreParameters @@ -86,7 +86,7 @@ public abstract class CertStoreSpi * @return A (non-null) collection of certificates. * @throws CertStoreException If the certificates cannot be retrieved. */ - public abstract Collection engineGetCertificates(CertSelector selector) + public abstract Collection engineGetCertificates(CertSelector selector) throws CertStoreException; /** @@ -98,6 +98,6 @@ public abstract class CertStoreSpi * @return A (non-null) collection of certificate revocation list. * @throws CertStoreException If the CRLs cannot be retrieved. */ - public abstract Collection engineGetCRLs(CRLSelector selector) + public abstract Collection engineGetCRLs(CRLSelector selector) throws CertStoreException; } diff --git a/libjava/classpath/java/security/cert/CertificateFactory.java b/libjava/classpath/java/security/cert/CertificateFactory.java index aedeff53573..8139c6ec5c3 100644 --- a/libjava/classpath/java/security/cert/CertificateFactory.java +++ b/libjava/classpath/java/security/cert/CertificateFactory.java @@ -41,6 +41,8 @@ package java.security.cert; import gnu.java.security.Engine; import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.Provider; @@ -56,7 +58,7 @@ import java.util.List; * * @author Mark Benvenuto * @author Casey Marshall - * @since JDK 1.2 + * @since 1.2 * @status Fully compatible with JDK 1.4. */ public class CertificateFactory @@ -84,106 +86,102 @@ public class CertificateFactory this.type = type; } - // Class methods. - // ------------------------------------------------------------------------ - - /** - * Gets an instance of the CertificateFactory class representing - * the specified certificate factory. If the type is not - * found then, it throws CertificateException. - * - * @param type The type of certificate factory to create. - * @return a CertificateFactory repesenting the desired type - * @throws CertificateException If the type of certificate is not - * implemented by any installed provider. + /** + * Returns an instance of a CertificateFactory representing the + * specified certificate factory type. + * + * @param type The type of certificate factory to create. + * @return A CertificateFactory of the desired type. + * @throws CertificateException If the type of certificate factory is not + * implemented by any installed provider. + * @throws IllegalArgumentException if type is + * null or is an empty string. */ public static final CertificateFactory getInstance(String type) - throws CertificateException + throws CertificateException { Provider[] p = Security.getProviders(); - + CertificateException lastException = null; for (int i = 0; i < p.length; i++) - { - try - { - return getInstance(type, p[i]); - } - catch (CertificateException e) - { - // Ignored. - } - } - + try + { + return getInstance(type, p[i]); + } + catch (CertificateException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new CertificateException(type); } - /** - * Gets an instance of the CertificateFactory class representing - * the specified certificate factory from the specified provider. - * If the type is not found then, it throws {@link CertificateException}. - * If the provider is not found, then it throws - * {@link java.security.NoSuchProviderException}. - * - * @param type The type of certificate factory to create. - * @param provider The name of the provider from which to get the - * implementation. - * @return A CertificateFactory for the desired type. - * @throws CertificateException If the type of certificate is not - * implemented by the named provider. + /** + * Returns an instance of a CertificateFactory representing the + * specified certificate factory type from the named provider. + * + * @param type The type of certificate factory to create. + * @param provider The name of the provider to use. + * @return A CertificateFactory for the desired type. + * @throws CertificateException If the type of certificate is not implemented + * by the named provider. * @throws NoSuchProviderException If the named provider is not installed. + * @throws IllegalArgumentException if either type or + * provider is null, or if + * type is an empty string. */ public static final CertificateFactory getInstance(String type, String provider) throws CertificateException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); - if( p == null) + if (p == null) throw new NoSuchProviderException(provider); - return getInstance(type, p); } /** - * Get a certificate factory for the given certificate type from the - * given provider. - * - * @param type The type of certificate factory to create. + * Returns an instance of a CertificateFactory representing the + * specified certificate factory type from the designated provider. + * + * @param type The type of certificate factory to create. * @param provider The provider from which to get the implementation. - * @return A CertificateFactory for the desired type. - * @throws CertificateException If the type of certificate is not - * implemented by the provider. - * @throws IllegalArgumentException If the provider is null. + * @return A CertificateFactory for the desired type. + * @throws CertificateException If the type of certificate is not implemented + * by the provider. + * @throws IllegalArgumentException if either type or + * provider is null, or if + * type is an empty string. */ public static final CertificateFactory getInstance(String type, Provider provider) - throws CertificateException + throws CertificateException { - if (provider == null) - throw new IllegalArgumentException("null provider"); - + Throwable cause; try { - return new CertificateFactory((CertificateFactorySpi) - Engine.getInstance(CERTIFICATE_FACTORY, type, provider), - provider, type); + Object spi = Engine.getInstance(CERTIFICATE_FACTORY, type, provider); + return new CertificateFactory((CertificateFactorySpi) spi, provider, type); } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new CertificateException(type); + cause = x; } - catch (java.lang.reflect.InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new CertificateException(type); + cause = x.getCause() != null ? x.getCause() : x; } - catch (NoSuchAlgorithmException nsae) + catch (NoSuchAlgorithmException x) { - throw new CertificateException(nsae.getMessage()); + cause = x; } + CertificateException x = new CertificateException(type); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Gets the provider of this implementation. * @@ -249,7 +247,7 @@ public class CertificateFactory * @throws CertificateException If an error occurs decoding the * certificates. */ - public final Collection generateCertificates(InputStream inStream) + public final Collection generateCertificates(InputStream inStream) throws CertificateException { return certFacSpi.engineGenerateCertificates(inStream); @@ -291,7 +289,7 @@ public class CertificateFactory * InputStream data. * @throws CRLException If an error occurs decoding the CRLs. */ - public final Collection generateCRLs(InputStream inStream) + public final Collection generateCRLs(InputStream inStream) throws CRLException { return certFacSpi.engineGenerateCRLs( inStream ); @@ -338,7 +336,7 @@ public class CertificateFactory * @throws CertificateException If an error occurs generating the * CertPath. */ - public final CertPath generateCertPath(List certificates) + public final CertPath generateCertPath(List certificates) throws CertificateException { return certFacSpi.engineGenerateCertPath(certificates); @@ -351,7 +349,7 @@ public class CertificateFactory * * @return The Iterator of supported encodings. */ - public final Iterator getCertPathEncodings() + public final Iterator getCertPathEncodings() { return certFacSpi.engineGetCertPathEncodings(); } diff --git a/libjava/classpath/java/security/cert/CertificateFactorySpi.java b/libjava/classpath/java/security/cert/CertificateFactorySpi.java index beea9646a67..e6a22b4ebf8 100644 --- a/libjava/classpath/java/security/cert/CertificateFactorySpi.java +++ b/libjava/classpath/java/security/cert/CertificateFactorySpi.java @@ -54,7 +54,7 @@ import java.util.List; Certificate factories are used to generate certificates and certificate revocation lists (CRL) from their encoding. - @since JDK 1.2 + @since 1.2 @author Mark Benvenuto */ @@ -117,7 +117,7 @@ public abstract class CertificateFactorySpi @throws CertificateException Certificate parsing error */ - public abstract Collection engineGenerateCertificates(InputStream inStream) + public abstract Collection engineGenerateCertificates(InputStream inStream) throws CertificateException; /** @@ -157,7 +157,7 @@ public abstract class CertificateFactorySpi @throws CRLException CRL parsing error */ - public abstract Collection engineGenerateCRLs(InputStream inStream) + public abstract Collection engineGenerateCRLs(InputStream inStream) throws CRLException; // 1.4 instance methods. @@ -204,7 +204,7 @@ public abstract class CertificateFactorySpi * @throws CertificateException If an error occurs generating the * CertPath. */ - public CertPath engineGenerateCertPath(List certificates) + public CertPath engineGenerateCertPath(List certificates) throws CertificateException { throw new UnsupportedOperationException("not implemented"); @@ -217,7 +217,7 @@ public abstract class CertificateFactorySpi * * @return The Iterator of supported encodings. */ - public Iterator engineGetCertPathEncodings() + public Iterator engineGetCertPathEncodings() { throw new UnsupportedOperationException("not implemented"); } diff --git a/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java b/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java index bac1e3b3e4f..b3ee93235f8 100644 --- a/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java +++ b/libjava/classpath/java/security/cert/CollectionCertStoreParameters.java @@ -51,6 +51,7 @@ import java.util.Collections; * collection may be changed at any time. * * @see CertStore + * @since 1.4 */ public class CollectionCertStoreParameters implements CertStoreParameters { @@ -81,7 +82,7 @@ public class CollectionCertStoreParameters implements CertStoreParameters * @param collection The collection. * @throws NullPointerException If collection is null. */ - public CollectionCertStoreParameters(Collection collection) + public CollectionCertStoreParameters(Collection collection) { if (collection == null) throw new NullPointerException(); @@ -103,7 +104,7 @@ public class CollectionCertStoreParameters implements CertStoreParameters * * @return The collection. */ - public Collection getCollection() + public Collection getCollection() { return collection; } diff --git a/libjava/classpath/java/security/cert/PKIXBuilderParameters.java b/libjava/classpath/java/security/cert/PKIXBuilderParameters.java index 38b3df5e78a..5e234cec158 100644 --- a/libjava/classpath/java/security/cert/PKIXBuilderParameters.java +++ b/libjava/classpath/java/security/cert/PKIXBuilderParameters.java @@ -48,6 +48,7 @@ import java.util.Set; * Parameters for building certificate paths using the PKIX algorithm. * * @see CertPathBuilder + * @since 1.4 */ public class PKIXBuilderParameters extends PKIXParameters { @@ -97,7 +98,8 @@ public class PKIXBuilderParameters extends PKIXParameters * @throws ClassCastException If every element in trustAnchors * is not a {@link TrustAnchor}. */ - public PKIXBuilderParameters(Set trustAnchors, CertSelector targetConstraints) + public PKIXBuilderParameters(Set trustAnchors, + CertSelector targetConstraints) throws InvalidAlgorithmParameterException { super(trustAnchors); diff --git a/libjava/classpath/java/security/cert/PKIXCertPathChecker.java b/libjava/classpath/java/security/cert/PKIXCertPathChecker.java index a6eef41a298..a69347fcd0b 100644 --- a/libjava/classpath/java/security/cert/PKIXCertPathChecker.java +++ b/libjava/classpath/java/security/cert/PKIXCertPathChecker.java @@ -59,6 +59,7 @@ import java.util.Set; * the most-trusted certificate. * * @see PKIXParameters + * @since 1.4 */ public abstract class PKIXCertPathChecker implements Cloneable { @@ -116,7 +117,7 @@ public abstract class PKIXCertPathChecker implements Cloneable * @return An immutable set of Strings of the supported X.509 OIDs, or * null if no extensions are supported. */ - public abstract Set getSupportedExtensions(); + public abstract Set getSupportedExtensions(); /** * Checks a certificate, removing any critical extensions that are @@ -128,6 +129,6 @@ public abstract class PKIXCertPathChecker implements Cloneable * @throws CertPathValidatorException If this certificate fails this * check. */ - public abstract void check(Certificate cert, Collection unresolvedCritExts) + public abstract void check(Certificate cert, Collection unresolvedCritExts) throws CertPathValidatorException; } diff --git a/libjava/classpath/java/security/cert/PKIXParameters.java b/libjava/classpath/java/security/cert/PKIXParameters.java index 16ef07f8870..bb68cb93726 100644 --- a/libjava/classpath/java/security/cert/PKIXParameters.java +++ b/libjava/classpath/java/security/cert/PKIXParameters.java @@ -56,6 +56,7 @@ import java.util.Set; * (Public-Key Infrastructure (X.509)) algorithm. * * @see CertPathBuilder + * @since 1.4 */ public class PKIXParameters implements CertPathParameters { @@ -144,7 +145,7 @@ public class PKIXParameters implements CertPathParameters * @throws ClassCastException If every element in trustAnchors * is not a {@link TrustAnchor}. */ - public PKIXParameters(Set trustAnchors) + public PKIXParameters(Set trustAnchors) throws InvalidAlgorithmParameterException { this(); @@ -199,7 +200,7 @@ public class PKIXParameters implements CertPathParameters * * @return A (never null, never empty) immutable set of trust anchors. */ - public Set getTrustAnchors() + public Set getTrustAnchors() { return Collections.unmodifiableSet(trustAnchors); } @@ -216,7 +217,7 @@ public class PKIXParameters implements CertPathParameters * @throws ClassCastException If every element in trustAnchors * is not a {@link TrustAnchor}. */ - public void setTrustAnchors(Set trustAnchors) + public void setTrustAnchors(Set trustAnchors) throws InvalidAlgorithmParameterException { if (trustAnchors.isEmpty()) @@ -235,7 +236,7 @@ public class PKIXParameters implements CertPathParameters * @return An immutable set of initial policy OID strings, or the * empty set if any policy is acceptable. */ - public Set getInitialPolicies() + public Set getInitialPolicies() { return Collections.unmodifiableSet(initPolicies); } @@ -249,7 +250,7 @@ public class PKIXParameters implements CertPathParameters * @throws ClassCastException If any element in initPolicies is * not a string. */ - public void setInitialPolicies(Set initPolicies) + public void setInitialPolicies(Set initPolicies) { this.initPolicies.clear(); if (initPolicies == null) @@ -277,7 +278,7 @@ public class PKIXParameters implements CertPathParameters * * @return The list of cert stores. */ - public List getCertStores() + public List getCertStores() { return Collections.unmodifiableList(certStores); } @@ -288,7 +289,7 @@ public class PKIXParameters implements CertPathParameters * * @param certStores The cert stores. */ - public void setCertStores(List certStores) + public void setCertStores(List certStores) { this.certStores.clear(); if (certStores == null) @@ -446,7 +447,7 @@ public class PKIXParameters implements CertPathParameters * * @return An immutable list of all certificate path checkers. */ - public List getCertPathCheckers() + public List getCertPathCheckers() { return Collections.unmodifiableList(pathCheckers); } @@ -459,7 +460,7 @@ public class PKIXParameters implements CertPathParameters * @throws ClassCastException If any element of pathCheckers is * not a {@link PKIXCertPathChecker}. */ - public void setCertPathCheckers(List pathCheckers) + public void setCertPathCheckers(List pathCheckers) { this.pathCheckers.clear(); if (pathCheckers == null) diff --git a/libjava/classpath/java/security/cert/PolicyNode.java b/libjava/classpath/java/security/cert/PolicyNode.java index 58d411cd3ad..b1196037e87 100644 --- a/libjava/classpath/java/security/cert/PolicyNode.java +++ b/libjava/classpath/java/security/cert/PolicyNode.java @@ -38,6 +38,12 @@ exception statement from your version. */ package java.security.cert; +import java.util.Iterator; +import java.util.Set; + +/** + * @since 1.4 + */ public interface PolicyNode { @@ -47,7 +53,7 @@ public interface PolicyNode * * @return An iterator over the child nodes. */ - java.util.Iterator getChildren(); + Iterator getChildren(); /** * Get the depth of this node within the tree, starting at 0 for the @@ -64,7 +70,7 @@ public interface PolicyNode * * @return The set of expected policies. */ - java.util.Set getExpectedPolicies(); + Set getExpectedPolicies(); /** * Returns the parent node of this node, or null if this is the root @@ -81,7 +87,7 @@ public interface PolicyNode * * @return The set of {@link PolicyQualifierInfo} objects. */ - java.util.Set getPolicyQualifiers(); + Set getPolicyQualifiers(); /** * Get the policy OID this node represents. The root node should return diff --git a/libjava/classpath/java/security/cert/PolicyQualifierInfo.java b/libjava/classpath/java/security/cert/PolicyQualifierInfo.java index 7dcf2315632..b50f3f31245 100644 --- a/libjava/classpath/java/security/cert/PolicyQualifierInfo.java +++ b/libjava/classpath/java/security/cert/PolicyQualifierInfo.java @@ -59,9 +59,10 @@ import java.io.IOException; * PolicyQualifierId ::= OBJECT IDENTIFIER * * - * @since JDK 1.4 + * @since 1.4 + * @specnote this class was final in 1.4, but beginning with 1.5 is not */ -public final class PolicyQualifierInfo +public class PolicyQualifierInfo { // Fields. diff --git a/libjava/classpath/java/security/cert/X509CRL.java b/libjava/classpath/java/security/cert/X509CRL.java index 5657b3eb3f5..a00706e678f 100644 --- a/libjava/classpath/java/security/cert/X509CRL.java +++ b/libjava/classpath/java/security/cert/X509CRL.java @@ -97,7 +97,7 @@ import javax.security.auth.x500.X500Principal; @author Mark Benvenuto - @since JDK 1.2 + @since 1.2 */ public abstract class X509CRL extends CRL implements X509Extension { @@ -304,7 +304,7 @@ public abstract class X509CRL extends CRL implements X509Extension @return a set of revoked certificates. */ - public abstract Set getRevokedCertificates(); + public abstract Set getRevokedCertificates(); /** Returns the DER ASN.1 encoded tbsCertList which is diff --git a/libjava/classpath/java/security/cert/X509CRLSelector.java b/libjava/classpath/java/security/cert/X509CRLSelector.java index 3c79fba9cb8..56b171369fb 100644 --- a/libjava/classpath/java/security/cert/X509CRLSelector.java +++ b/libjava/classpath/java/security/cert/X509CRLSelector.java @@ -69,6 +69,7 @@ import javax.security.auth.x500.X500Principal; * use or modify this class then they need to synchronize on the object. * * @author Casey Marshall (csm@gnu.org) + * @since 1.4 */ public class X509CRLSelector implements CRLSelector, Cloneable { @@ -157,7 +158,7 @@ public class X509CRLSelector implements CRLSelector, Cloneable * @throws IOException If any of the elements in the collection is not * a valid name. */ - public void setIssuerNames(Collection names) throws IOException + public void setIssuerNames(Collection names) throws IOException { if (names == null) { @@ -224,7 +225,7 @@ public class X509CRLSelector implements CRLSelector, Cloneable * * @return The set of issuer names. */ - public Collection getIssuerNames() + public Collection getIssuerNames() { if (issuerNames != null) return Collections.unmodifiableList(issuerNames); diff --git a/libjava/classpath/java/security/cert/X509CertSelector.java b/libjava/classpath/java/security/cert/X509CertSelector.java index 175e4c673c9..154ed2e4d98 100644 --- a/libjava/classpath/java/security/cert/X509CertSelector.java +++ b/libjava/classpath/java/security/cert/X509CertSelector.java @@ -76,6 +76,7 @@ import javax.security.auth.x500.X500Principal; * use or modify this class then they need to synchronize on the object. * * @author Casey Marshall (csm@gnu.org) + * @since 1.4 */ public class X509CertSelector implements CertSelector, Cloneable { @@ -573,7 +574,7 @@ public class X509CertSelector implements CertSelector, Cloneable * * @return The set of key purpose OIDs (strings). */ - public Set getExtendedKeyUsage() + public Set getExtendedKeyUsage() { if (keyPurposeSet != null) return Collections.unmodifiableSet(keyPurposeSet); @@ -588,7 +589,7 @@ public class X509CertSelector implements CertSelector, Cloneable * @param keyPurposeSet The set of key purpose OIDs. * @throws IOException If any element of the set is not a valid OID string. */ - public void setExtendedKeyUsage(Set keyPurposeSet) throws IOException + public void setExtendedKeyUsage(Set keyPurposeSet) throws IOException { if (keyPurposeSet == null) { @@ -653,7 +654,7 @@ public class X509CertSelector implements CertSelector, Cloneable * @param altNames The alternative names. * @throws IOException If any element of the argument is invalid. */ - public void setSubjectAlternativeNames(Collection altNames) + public void setSubjectAlternativeNames(Collection> altNames) throws IOException { if (altNames == null) @@ -786,7 +787,7 @@ public class X509CertSelector implements CertSelector, Cloneable // certificate, and check it against the specified set. // FIXME -// public void setPolicy(Set policy) throws IOException +// public void setPolicy(Set policy) throws IOException // { // if (policy != null) // { @@ -807,7 +808,7 @@ public class X509CertSelector implements CertSelector, Cloneable // } // FIXME -// public void setPathToNames(Collection names) throws IOException +// public void setPathToNames(Collection> names) throws IOException // { // if (names == null) // { @@ -843,19 +844,19 @@ public class X509CertSelector implements CertSelector, Cloneable // } // FIXME -// public Collection getSubjectAlternativeNames() +// public Collection> getSubjectAlternativeNames() // { // return null; // } // FIXME -// public Set getPolicy() +// public Set getPolicy() // { // return null; // } // FIXME -// public Collection getPathToNames() +// public Collection> getPathToNames() // { // return null; // } diff --git a/libjava/classpath/java/security/cert/X509Certificate.java b/libjava/classpath/java/security/cert/X509Certificate.java index f6c6fcfb9a4..bc1b5c2351c 100644 --- a/libjava/classpath/java/security/cert/X509Certificate.java +++ b/libjava/classpath/java/security/cert/X509Certificate.java @@ -41,6 +41,7 @@ package java.security.cert; import java.math.BigInteger; import java.security.Principal; import java.util.Date; +import java.util.List; /** * X509Certificate is the abstract class for X.509 certificates. @@ -131,7 +132,7 @@ import java.util.Date; * Profile. * * - * @since JDK 1.2 + * @since 1.2 * @author Mark Benvenuto * @author Casey Marshall (rsdio@metastatic.org) */ @@ -487,7 +488,7 @@ public abstract class X509Certificate * @throws CertificateParsingException If this extension cannot be * parsed from its encoded form. */ - public java.util.List getExtendedKeyUsage() + public java.util.List getExtendedKeyUsage() throws CertificateParsingException { throw new UnsupportedOperationException(); @@ -531,7 +532,7 @@ public abstract class X509Certificate * be parsed. * @since JDK 1.4 */ - public java.util.Collection getSubjectAlternativeNames() + public java.util.Collection> getSubjectAlternativeNames() throws CertificateParsingException { throw new UnsupportedOperationException(); @@ -558,7 +559,7 @@ public abstract class X509Certificate * be parsed. * @since JDK 1.4 */ - public java.util.Collection getIssuerAlternativeNames() + public java.util.Collection> getIssuerAlternativeNames() throws CertificateParsingException { throw new UnsupportedOperationException(); diff --git a/libjava/classpath/java/security/cert/X509Extension.java b/libjava/classpath/java/security/cert/X509Extension.java index d2cb80a9f57..bd9473782e4 100644 --- a/libjava/classpath/java/security/cert/X509Extension.java +++ b/libjava/classpath/java/security/cert/X509Extension.java @@ -70,7 +70,7 @@ import java.util.Set; @author Mark Benvenuto - @since JDK 1.2 + @since 1.2 */ public interface X509Extension { @@ -91,7 +91,7 @@ public interface X509Extension @return A Set containing the OIDs. If there are no CRITICAL extensions or extensions at all this returns null. */ - Set getCriticalExtensionOIDs(); + Set getCriticalExtensionOIDs(); /** Returns a set of the NON-CRITICAL extension OIDs from the @@ -101,7 +101,7 @@ public interface X509Extension @return A Set containing the OIDs. If there are no NON-CRITICAL extensions or extensions at all this returns null. */ - Set getNonCriticalExtensionOIDs(); + Set getNonCriticalExtensionOIDs(); /** Returns the DER encoded OCTET string for the specified diff --git a/libjava/classpath/java/sql/Array.java b/libjava/classpath/java/sql/Array.java index c3c42d9cb57..cdd60a42f12 100644 --- a/libjava/classpath/java/sql/Array.java +++ b/libjava/classpath/java/sql/Array.java @@ -84,7 +84,7 @@ public interface Array * @return The contents of the array as an array of Java objects. * @exception SQLException If an error occurs. */ - Object getArray(Map map) throws SQLException; + Object getArray(Map> map) throws SQLException; /** * Returns a portion of this array starting at start @@ -94,7 +94,7 @@ public interface Array * The object returned will be an array of Java objects of * the appropriate types. * - * @param start The index into this array to start returning elements from. + * @param start The offset into this array to start returning elements from. * @param count The requested number of elements to return. * @return The requested portion of the array. * @exception SQLException If an error occurs. @@ -110,13 +110,14 @@ public interface Array * Map will be used for overriding selected SQL type to * Java class mappings. * - * @param start The index into this array to start returning elements from. + * @param start The offset into this array to start returning elements from. * @param count The requested number of elements to return. * @param map A mapping of SQL types to Java classes. * @return The requested portion of the array. * @exception SQLException If an error occurs. */ - Object getArray(long start, int count, Map map) throws SQLException; + Object getArray(long start, int count, Map> map) + throws SQLException; /** * Returns the elements in the array as a ResultSet. @@ -143,7 +144,7 @@ public interface Array * @exception SQLException If an error occurs. * @see ResultSet */ - ResultSet getResultSet(Map map) throws SQLException; + ResultSet getResultSet(Map> map) throws SQLException; /** * This method returns a portion of the array as a ResultSet. @@ -180,6 +181,6 @@ public interface Array * @exception SQLException If an error occurs. * @see ResultSet */ - ResultSet getResultSet(long start, int count, Map map) + ResultSet getResultSet(long start, int count, Map> map) throws SQLException; } diff --git a/libjava/classpath/java/sql/CallableStatement.java b/libjava/classpath/java/sql/CallableStatement.java index 75eade77480..e605b381d5b 100644 --- a/libjava/classpath/java/sql/CallableStatement.java +++ b/libjava/classpath/java/sql/CallableStatement.java @@ -250,7 +250,7 @@ public interface CallableStatement extends PreparedStatement * @exception SQLException If an error occurs. * @since 1.2 */ - Object getObject(int index, Map map) throws SQLException; + Object getObject(int index, Map> map) throws SQLException; /** * This method returns the value of the specified parameter as a Java @@ -865,7 +865,7 @@ public interface CallableStatement extends PreparedStatement * @exception SQLException If an error occurs. * @since 1.4 */ - Object getObject(String name, Map map) throws SQLException; + Object getObject(String name, Map> map) throws SQLException; /** * This method returns the value of the specified parameter as a Java diff --git a/libjava/classpath/java/sql/Connection.java b/libjava/classpath/java/sql/Connection.java index d827e75b089..8dc7544c760 100644 --- a/libjava/classpath/java/sql/Connection.java +++ b/libjava/classpath/java/sql/Connection.java @@ -339,7 +339,7 @@ public interface Connection * @return The SQL type to Java class mapping. * @exception SQLException If an error occurs. */ - Map getTypeMap() throws SQLException; + Map> getTypeMap() throws SQLException; /** * This method sets the mapping table for SQL types to Java classes. @@ -348,7 +348,7 @@ public interface Connection * @param map The new SQL mapping table. * @exception SQLException If an error occurs. */ - void setTypeMap(Map map) throws SQLException; + void setTypeMap(Map> map) throws SQLException; /** * Sets the default holdability of ResultSetS that are created diff --git a/libjava/classpath/java/sql/DriverManager.java b/libjava/classpath/java/sql/DriverManager.java index 94f743b92da..7d1ef07c1a0 100644 --- a/libjava/classpath/java/sql/DriverManager.java +++ b/libjava/classpath/java/sql/DriverManager.java @@ -264,7 +264,7 @@ public class DriverManager * * @return An Enumeration of all currently loaded JDBC drivers. */ - public static Enumeration getDrivers() + public static Enumeration getDrivers() { Vector v = new Vector(); Enumeration e = drivers.elements(); diff --git a/libjava/classpath/java/sql/Ref.java b/libjava/classpath/java/sql/Ref.java index 4ebd5e64898..c5c54eefef1 100644 --- a/libjava/classpath/java/sql/Ref.java +++ b/libjava/classpath/java/sql/Ref.java @@ -61,7 +61,7 @@ public interface Ref /** * @since 1.4 */ - Object getObject(Map map) throws SQLException; + Object getObject(Map> map) throws SQLException; /** * @since 1.4 diff --git a/libjava/classpath/java/sql/ResultSet.java b/libjava/classpath/java/sql/ResultSet.java index 79cba63d419..573deb3e105 100644 --- a/libjava/classpath/java/sql/ResultSet.java +++ b/libjava/classpath/java/sql/ResultSet.java @@ -1309,7 +1309,8 @@ public interface ResultSet * @return The value of the column as an Object. * @exception SQLException If an error occurs. */ - Object getObject(int columnIndex, Map map) throws SQLException; + Object getObject(int columnIndex, Map> map) + throws SQLException; /** * This method returns a Ref for the specified column which @@ -1357,7 +1358,8 @@ public interface ResultSet * @return The value of the column as an Object. * @exception SQLException If an error occurs. */ - Object getObject(String columnName, Map map) throws SQLException; + Object getObject(String columnName, Map> map) + throws SQLException; /** * This method returns a Ref for the specified column which diff --git a/libjava/classpath/java/sql/Struct.java b/libjava/classpath/java/sql/Struct.java index 5cbc88e133a..ce8db22bb55 100644 --- a/libjava/classpath/java/sql/Struct.java +++ b/libjava/classpath/java/sql/Struct.java @@ -73,5 +73,5 @@ public interface Struct * @return The attributes of this structure type. * @exception SQLException If a error occurs. */ - Object[] getAttributes(Map map) throws SQLException; + Object[] getAttributes(Map> map) throws SQLException; } diff --git a/libjava/classpath/java/sql/Timestamp.java b/libjava/classpath/java/sql/Timestamp.java index 66a57641a02..18ccda5577d 100644 --- a/libjava/classpath/java/sql/Timestamp.java +++ b/libjava/classpath/java/sql/Timestamp.java @@ -1,5 +1,5 @@ /* Time.java -- Wrapper around java.util.Date - Copyright (C) 1999, 2000, 2003, 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -312,7 +312,7 @@ public class Timestamp extends java.util.Date * @see #compareTo(Timestamp) * @since 1.2 */ - public int compareTo(Object obj) + public int compareTo(java.util.Date obj) { return compareTo((Timestamp) obj); } diff --git a/libjava/classpath/java/text/AttributedCharacterIterator.java b/libjava/classpath/java/text/AttributedCharacterIterator.java index 37c7450b2c8..4f9c762b3cd 100644 --- a/libjava/classpath/java/text/AttributedCharacterIterator.java +++ b/libjava/classpath/java/text/AttributedCharacterIterator.java @@ -1,5 +1,5 @@ /* AttributedCharacterIterator.java -- Iterate over attributes - Copyright (C) 1998, 1999, 2004 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -53,7 +53,10 @@ import java.util.Set; * that is defined for a particular value across an entire range of * characters or which is undefined over a range of characters. * + * @since 1.2 + * * @author Aaron M. Renn (arenn@urbanophile.com) + * @since 1.2 */ public interface AttributedCharacterIterator extends CharacterIterator { @@ -68,7 +71,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * This is the attribute for the language of the text. The value of * attributes of this key type are instances of Locale. */ - public static final Attribute LANGUAGE = new Attribute ("LANGUAGE"); + public static final Attribute LANGUAGE = new Attribute("language"); /** * This is the attribute for the reading form of text. This is used @@ -77,7 +80,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * instances of Annotation which wrappers a * String. */ - public static final Attribute READING = new Attribute ("READING"); + public static final Attribute READING = new Attribute("reading"); /** * This is the attribute for input method segments. The value of attributes @@ -85,7 +88,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * a String. */ public static final Attribute INPUT_METHOD_SEGMENT = - new Attribute ("INPUT_METHOD_SEGMENT"); + new Attribute("input_method_segment"); /** * The name of the attribute key @@ -98,7 +101,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @param name The name of this attribute key. */ - protected Attribute (String name) + protected Attribute(String name) { this.name = name; } @@ -156,7 +159,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * @return true if the specified object is equal to this one, * false otherwise. */ - public final boolean equals (Object obj) + public final boolean equals(Object obj) { if (obj == this) return true; @@ -192,7 +195,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @return A list of keys */ - Set getAllAttributeKeys(); + Set getAllAttributeKeys(); /** * Returns a Map of the attributes defined for the current @@ -200,7 +203,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @return A Map of the attributes for the current character. */ - Map getAttributes(); + Map getAttributes(); /** * Returns the value of the specified attribute for the @@ -211,7 +214,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @return The value of the specified attribute */ - Object getAttribute (AttributedCharacterIterator.Attribute attrib); + Object getAttribute(AttributedCharacterIterator.Attribute attrib); /** * Returns the index of the first character in the run that @@ -230,7 +233,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @return The start index of the run. */ - int getRunStart (Set attribs); + int getRunStart(Set attribs); /** * Returns the index of the first character in the run that @@ -240,7 +243,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @return The start index of the run. */ - int getRunStart (AttributedCharacterIterator.Attribute attrib); + int getRunStart(AttributedCharacterIterator.Attribute attrib); /** * Returns the index of the character after the end of the run @@ -259,7 +262,7 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @return The end index of the run. */ - int getRunLimit (Set attribs); + int getRunLimit(Set attribs); /** * Returns the index of the character after the end of the run @@ -269,6 +272,6 @@ public interface AttributedCharacterIterator extends CharacterIterator * * @return The end index of the run. */ - int getRunLimit (AttributedCharacterIterator.Attribute attrib); + int getRunLimit(AttributedCharacterIterator.Attribute attrib); } // interface AttributedCharacterIterator diff --git a/libjava/classpath/java/text/AttributedString.java b/libjava/classpath/java/text/AttributedString.java index 497b557fcf3..6785bd3c58f 100644 --- a/libjava/classpath/java/text/AttributedString.java +++ b/libjava/classpath/java/text/AttributedString.java @@ -1,5 +1,5 @@ /* AttributedString.java -- Models text with attributes - Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -50,8 +50,11 @@ import java.util.Set; * This class models a String with attributes over various * subranges of the string. It allows applications to access this * information via the AttributedCharacterIterator interface. + * + * @since 1.2 * * @author Aaron M. Renn (arenn@urbanophile.com) + * @since 1.2 */ public class AttributedString { @@ -66,23 +69,23 @@ public class AttributedString Map attribs; /** The beginning index of the attributes */ - int begin_index; + int beginIndex; /** The ending index of the attributes */ - int end_index; + int endIndex; /** * Creates a new attribute range. * * @param attribs the attributes. - * @param begin_index the start index. - * @param end_index the end index. + * @param beginIndex the start index. + * @param endIndex the end index. */ - AttributeRange(Map attribs, int begin_index, int end_index) + AttributeRange(Map attribs, int beginIndex, int endIndex) { this.attribs = attribs; - this.begin_index = begin_index; - this.end_index = end_index; + this.beginIndex = beginIndex; + this.endIndex = endIndex; } } // Inner class AttributeRange @@ -116,7 +119,8 @@ public class AttributedString * @param str The String to be attributed. * @param attributes The attribute list. */ - public AttributedString(String str, Map attributes) + public AttributedString(String str, + Map attributes) { this(str); @@ -147,13 +151,13 @@ public class AttributedString * * @param aci The AttributedCharacterIterator containing the * text and attribute information. - * @param begin_index The beginning index of the text subrange. - * @param end_index The ending index of the text subrange. + * @param beginIndex The beginning index of the text subrange. + * @param endIndex The ending index of the text subrange. */ - public AttributedString(AttributedCharacterIterator aci, int begin_index, - int end_index) + public AttributedString(AttributedCharacterIterator aci, int beginIndex, + int endIndex) { - this(aci, begin_index, end_index, null); + this(aci, beginIndex, endIndex, null); } /** @@ -181,9 +185,9 @@ public class AttributedString StringBuffer sb = new StringBuffer(""); // Get the valid attribute list - Set all_attribs = aci.getAllAttributeKeys(); + Set allAttribs = aci.getAllAttributeKeys(); if (attributes != null) - all_attribs.retainAll(Arrays.asList(attributes)); + allAttribs.retainAll(Arrays.asList(attributes)); // Loop through and extract the attributes char c = aci.setIndex(begin); @@ -193,7 +197,7 @@ public class AttributedString { sb.append(c); - Iterator iter = all_attribs.iterator(); + Iterator iter = allAttribs.iterator(); while(iter.hasNext()) { Object obj = iter.next(); @@ -206,9 +210,10 @@ public class AttributedString (AttributedCharacterIterator.Attribute)obj; // Make sure the attribute is defined. - int rl = aci.getRunLimit(attrib); - if (rl == -1) + Object attribObj = aci.getAttribute(attrib); + if (attribObj == null) continue; + int rl = aci.getRunLimit(attrib); if (rl > end) rl = end; rl -= begin; @@ -220,22 +225,21 @@ public class AttributedString // If the attribute run starts before the beginning index, we // need to junk it if it is an Annotation. - Object attrib_obj = aci.getAttribute(attrib); - rs -= begin; + rs -= begin; if (rs < 0) { - if (attrib_obj instanceof Annotation) + if (attribObj instanceof Annotation) continue; rs = 0; } // Create a map object. Yes this will only contain one attribute - Map new_map = new Hashtable(); - new_map.put(attrib, attrib_obj); + Map newMap = new Hashtable(); + newMap.put(attrib, attribObj); // Add it to the attribute list. - accum.add(new AttributeRange(new_map, rs, rl)); + accum.add(new AttributeRange(newMap, rs, rl)); } c = aci.next(); @@ -290,27 +294,28 @@ public class AttributedString * specified subrange of the string. * * @param attributes The list of attributes. - * @param begin_index The beginning index. - * @param end_index The ending index + * @param beginIndex The beginning index. + * @param endIndex The ending index * * @throws NullPointerException if attributes is * null. * @throws IllegalArgumentException if the subrange is not valid. */ - public void addAttributes(Map attributes, int begin_index, int end_index) + public void addAttributes(Map attributes, + int beginIndex, int endIndex) { if (attributes == null) throw new NullPointerException("null attribute"); - if ((begin_index < 0) || (end_index > sci.getEndIndex()) || - (end_index <= begin_index)) + if ((beginIndex < 0) || (endIndex > sci.getEndIndex()) || + (endIndex <= beginIndex)) throw new IllegalArgumentException("bad range"); AttributeRange[] new_list = new AttributeRange[attribs.length + 1]; System.arraycopy(attribs, 0, new_list, 0, attribs.length); attribs = new_list; - attribs[attribs.length - 1] = new AttributeRange(attributes, begin_index, - end_index); + attribs[attribs.length - 1] = new AttributeRange(attributes, beginIndex, + endIndex); } /** @@ -351,20 +356,20 @@ public class AttributedString * returned. * * @param attributes A list of attributes to include in the returned iterator. - * @param begin_index The beginning index of the subrange. - * @param end_index The ending index of the subrange. + * @param beginIndex The beginning index of the subrange. + * @param endIndex The ending index of the subrange. * * @return An AttributedCharacterIterator for this string. */ public AttributedCharacterIterator getIterator( AttributedCharacterIterator.Attribute[] attributes, - int begin_index, int end_index) + int beginIndex, int endIndex) { - if ((begin_index < 0) || (end_index > sci.getEndIndex()) || - (end_index < begin_index)) + if ((beginIndex < 0) || (endIndex > sci.getEndIndex()) || + (endIndex < beginIndex)) throw new IllegalArgumentException("bad range"); - return(new AttributedStringIterator(sci, attribs, begin_index, end_index, + return(new AttributedStringIterator(sci, attribs, beginIndex, endIndex, attributes)); } diff --git a/libjava/classpath/java/text/AttributedStringIterator.java b/libjava/classpath/java/text/AttributedStringIterator.java index f6b9b186831..422876c0948 100644 --- a/libjava/classpath/java/text/AttributedStringIterator.java +++ b/libjava/classpath/java/text/AttributedStringIterator.java @@ -1,5 +1,5 @@ /* AttributedStringIterator.java -- Class to iterate over AttributedString - Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,12 +71,21 @@ class AttributedStringIterator implements AttributedCharacterIterator /*************************************************************************/ + /** + * Creates a new instance. + * + * @param sci an iterator for the string content. + * @param attribs the attribute ranges. + * @param beginIndex the start index. + * @param endIndex the end index. + * @param restricts the attributes that the user is interested in. + */ AttributedStringIterator(StringCharacterIterator sci, AttributedString.AttributeRange[] attribs, - int begin_index, int end_index, + int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] restricts) { - this.ci = new StringCharacterIterator(sci, begin_index, end_index); + this.ci = new StringCharacterIterator(sci, beginIndex, endIndex); this.attribs = attribs; this.restricts = restricts; } @@ -154,8 +163,8 @@ class AttributedStringIterator implements AttributedCharacterIterator for (int i = 0; i < attribs.length; i++) { - if (attribs[i].begin_index > getEndIndex() - || attribs[i].end_index <= getBeginIndex()) + if (attribs[i].beginIndex > getEndIndex() + || attribs[i].endIndex <= getBeginIndex()) continue; Set key_set = attribs[i].attribs.keySet(); @@ -178,7 +187,7 @@ class AttributedStringIterator implements AttributedCharacterIterator public int getRunLimit() { - return(getRunLimit(getAttributes().keySet())); + return getRunLimit(getAllAttributeKeys()); } public int getRunLimit(AttributedCharacterIterator.Attribute attrib) @@ -333,7 +342,7 @@ class AttributedStringIterator implements AttributedCharacterIterator return null; for (int i = attribs.length - 1; i >= 0; i--) { - if (pos >= attribs[i].begin_index && pos < attribs[i].end_index) + if (pos >= attribs[i].beginIndex && pos < attribs[i].endIndex) { Set keys = attribs[i].attribs.keySet(); if (keys.contains(key)) @@ -373,8 +382,8 @@ class AttributedStringIterator implements AttributedCharacterIterator for (int i = 0; i < attribs.length; i++) { - if ((ci.getIndex() >= attribs[i].begin_index) && - (ci.getIndex() < attribs[i].end_index)) + if ((ci.getIndex() >= attribs[i].beginIndex) && + (ci.getIndex() < attribs[i].endIndex)) m.putAll(attribs[i].attribs); } diff --git a/libjava/classpath/java/text/Bidi.java b/libjava/classpath/java/text/Bidi.java index 05b10f52d6a..491f9e36ef7 100644 --- a/libjava/classpath/java/text/Bidi.java +++ b/libjava/classpath/java/text/Bidi.java @@ -991,7 +991,8 @@ public final class Bidi && dir != Character.DIRECTIONALITY_ARABIC_NUMBER && dir != Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR && dir != Character.DIRECTIONALITY_SEGMENT_SEPARATOR - && dir != Character.DIRECTIONALITY_WHITESPACE) + && dir != Character.DIRECTIONALITY_WHITESPACE + && dir != Character.DIRECTIONALITY_PARAGRAPH_SEPARATOR) return true; } diff --git a/libjava/classpath/java/text/CollationKey.java b/libjava/classpath/java/text/CollationKey.java index a467869b881..1ae8abc556c 100644 --- a/libjava/classpath/java/text/CollationKey.java +++ b/libjava/classpath/java/text/CollationKey.java @@ -65,7 +65,7 @@ import java.util.Arrays; * @author Tom Tromey (tromey@cygnus.com) * @date March 25, 1999 */ -public final class CollationKey implements Comparable +public class CollationKey implements Comparable { /** * This is the Collator this object was created from. @@ -112,21 +112,6 @@ public final class CollationKey implements Comparable } /** - * This method compares the specified object to this one. The specified - * object must be an instance of CollationKey or an exception - * will be thrown. An integer is returned which indicates whether the - * specified object is less than, greater than, or equal to this object. - * - * @param obj The Object to compare against this one. - * - * @return A negative integer if this object is less than the specified object, 0 if it is equal or a positive integer if it is greater than the specified object. - */ - public int compareTo (Object obj) - { - return compareTo ((CollationKey) obj); - } - - /** * This method tests the specified Object for equality with * this object. This will be true if and only if: *

    diff --git a/libjava/classpath/java/text/Collator.java b/libjava/classpath/java/text/Collator.java index 08739163a64..95236132440 100644 --- a/libjava/classpath/java/text/Collator.java +++ b/libjava/classpath/java/text/Collator.java @@ -70,7 +70,7 @@ import java.util.ResourceBundle; * @author Aaron M. Renn (arenn@urbanophile.com) * @date March 18, 1999 */ -public abstract class Collator implements Comparator, Cloneable +public abstract class Collator implements Comparator, Cloneable { /** * This constant is a strength value which indicates that only primary diff --git a/libjava/classpath/java/text/DecimalFormat.java b/libjava/classpath/java/text/DecimalFormat.java dissimilarity index 75% index f64249b6755..529e571331f 100644 --- a/libjava/classpath/java/text/DecimalFormat.java +++ b/libjava/classpath/java/text/DecimalFormat.java @@ -1,1437 +1,2240 @@ -/* DecimalFormat.java -- Formats and parses numbers - Copyright (C) 1999, 2000, 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.text; - -import gnu.java.text.AttributedFormatBuffer; -import gnu.java.text.FormatBuffer; -import gnu.java.text.FormatCharacterIterator; -import gnu.java.text.StringFormatBuffer; - -import java.io.IOException; -import java.io.ObjectInputStream; -import java.util.Currency; -import java.util.HashMap; -import java.util.Locale; - -/** - * @author Tom Tromey (tromey@cygnus.com) - * @author Andrew John Hughes (gnu_andrew@member.fsf.org) - * @date March 4, 1999 - */ -/* Written using "Java Class Libraries", 2nd edition, plus online - * API docs for JDK 1.2 from http://www.javasoft.com. - * Status: Believed complete and correct to 1.2. - * Note however that the docs are very unclear about how format parsing - * should work. No doubt there are problems here. - */ -public class DecimalFormat extends NumberFormat -{ - // This is a helper for applyPatternWithSymbols. It reads a prefix - // or a suffix. It can cause some side-effects. - private int scanFix (String pattern, int index, FormatBuffer buf, - String patChars, DecimalFormatSymbols syms, - boolean is_suffix) - { - int len = pattern.length(); - boolean quoteStarted = false; - buf.clear(); - - boolean multiplierSet = false; - while (index < len) - { - char c = pattern.charAt(index); - - if (quoteStarted) - { - if (c == '\'') - quoteStarted = false; - else - buf.append(c); - index++; - continue; - } - - if (c == '\'' && index + 1 < len - && pattern.charAt(index + 1) == '\'') - { - buf.append(c); - index++; - } - else if (c == '\'') - { - quoteStarted = true; - } - else if (c == '\u00a4') - { - /* Currency interpreted later */ - buf.append(c); - } - else if (c == syms.getPercent()) - { - if (multiplierSet) - throw new IllegalArgumentException ("multiplier already set " + - "- index: " + index); - multiplierSet = true; - multiplier = 100; - buf.append(c, NumberFormat.Field.PERCENT); - } - else if (c == syms.getPerMill()) - { - if (multiplierSet) - throw new IllegalArgumentException ("multiplier already set " + - "- index: " + index); - multiplierSet = true; - multiplier = 1000; - buf.append(c, NumberFormat.Field.PERMILLE); - } - else if (patChars.indexOf(c) != -1) - { - // This is a pattern character. - break; - } - else - { - buf.append(c); - } - index++; - } - - if (quoteStarted) - throw new IllegalArgumentException ("pattern is lacking a closing quote"); - - return index; - } - - // A helper which reads a number format. - private int scanFormat (String pattern, int index, String patChars, - DecimalFormatSymbols syms, boolean is_positive) - { - int max = pattern.length(); - - int countSinceGroup = 0; - int zeroCount = 0; - boolean saw_group = false; - - // - // Scan integer part. - // - while (index < max) - { - char c = pattern.charAt(index); - - if (c == syms.getDigit()) - { - if (zeroCount > 0) - throw new IllegalArgumentException ("digit mark following " + - "zero - index: " + index); - ++countSinceGroup; - } - else if (c == syms.getZeroDigit()) - { - ++zeroCount; - ++countSinceGroup; - } - else if (c == syms.getGroupingSeparator()) - { - countSinceGroup = 0; - saw_group = true; - } - else - break; - - ++index; - } - - // We can only side-effect when parsing the positive format. - if (is_positive) - { - groupingUsed = saw_group; - groupingSize = (byte) countSinceGroup; - // Checking "zeroCount > 0" avoids 0 being formatted into "" with "#". - if (zeroCount > 0) - minimumIntegerDigits = zeroCount; - } - - // Early termination. - if (index == max || pattern.charAt(index) == syms.getGroupingSeparator()) - { - if (is_positive) - decimalSeparatorAlwaysShown = false; - return index; - } - - if (pattern.charAt(index) == syms.getDecimalSeparator()) - { - ++index; - - // - // Scan fractional part. - // - int hashCount = 0; - zeroCount = 0; - while (index < max) - { - char c = pattern.charAt(index); - if (c == syms.getZeroDigit()) - { - if (hashCount > 0) - throw new IllegalArgumentException ("zero mark " + - "following digit - index: " + index); - ++zeroCount; - } - else if (c == syms.getDigit()) - { - ++hashCount; - } - else if (c != syms.getExponential() - && c != syms.getPatternSeparator() - && c != syms.getPercent() - && c != syms.getPerMill() - && patChars.indexOf(c) != -1) - throw new IllegalArgumentException ("unexpected special " + - "character - index: " + index); - else - break; - - ++index; - } - - if (is_positive) - { - maximumFractionDigits = hashCount + zeroCount; - minimumFractionDigits = zeroCount; - } - - if (index == max) - return index; - } - - if (pattern.charAt(index) == syms.getExponential()) - { - // - // Scan exponential format. - // - zeroCount = 0; - ++index; - while (index < max) - { - char c = pattern.charAt(index); - if (c == syms.getZeroDigit()) - ++zeroCount; - else if (c == syms.getDigit()) - { - if (zeroCount > 0) - throw new - IllegalArgumentException ("digit mark following zero " + - "in exponent - index: " + - index); - } - else if (patChars.indexOf(c) != -1) - throw new IllegalArgumentException ("unexpected special " + - "character - index: " + - index); - else - break; - - ++index; - } - - if (is_positive) - { - useExponentialNotation = true; - minExponentDigits = (byte) zeroCount; - } - - maximumIntegerDigits = groupingSize; - groupingSize = 0; - if (maximumIntegerDigits > minimumIntegerDigits && maximumIntegerDigits > 0) - { - minimumIntegerDigits = 1; - exponentRound = maximumIntegerDigits; - } - else - exponentRound = 1; - } - - return index; - } - - // This helper function creates a string consisting of all the - // characters which can appear in a pattern and must be quoted. - private String patternChars (DecimalFormatSymbols syms) - { - StringBuffer buf = new StringBuffer (); - buf.append(syms.getDecimalSeparator()); - buf.append(syms.getDigit()); - buf.append(syms.getExponential()); - buf.append(syms.getGroupingSeparator()); - // Adding this one causes pattern application to fail. - // Of course, omitting is causes toPattern to fail. - // ... but we already have bugs there. FIXME. - // buf.append(syms.getMinusSign()); - buf.append(syms.getPatternSeparator()); - buf.append(syms.getPercent()); - buf.append(syms.getPerMill()); - buf.append(syms.getZeroDigit()); - buf.append('\u00a4'); - return buf.toString(); - } - - private void applyPatternWithSymbols(String pattern, DecimalFormatSymbols syms) - { - // Initialize to the state the parser expects. - negativePrefix = ""; - negativeSuffix = ""; - positivePrefix = ""; - positiveSuffix = ""; - decimalSeparatorAlwaysShown = false; - groupingSize = 0; - minExponentDigits = 0; - multiplier = 1; - useExponentialNotation = false; - groupingUsed = false; - maximumFractionDigits = 0; - maximumIntegerDigits = MAXIMUM_INTEGER_DIGITS; - minimumFractionDigits = 0; - minimumIntegerDigits = 1; - - AttributedFormatBuffer buf = new AttributedFormatBuffer (); - String patChars = patternChars (syms); - - int max = pattern.length(); - int index = scanFix (pattern, 0, buf, patChars, syms, false); - buf.sync(); - positivePrefix = buf.getBuffer().toString(); - positivePrefixRanges = buf.getRanges(); - positivePrefixAttrs = buf.getAttributes(); - - index = scanFormat (pattern, index, patChars, syms, true); - - index = scanFix (pattern, index, buf, patChars, syms, true); - buf.sync(); - positiveSuffix = buf.getBuffer().toString(); - positiveSuffixRanges = buf.getRanges(); - positiveSuffixAttrs = buf.getAttributes(); - - if (index == pattern.length()) - { - // No negative info. - negativePrefix = null; - negativeSuffix = null; - } - else - { - if (pattern.charAt(index) != syms.getPatternSeparator()) - throw new IllegalArgumentException ("separator character " + - "expected - index: " + index); - - index = scanFix (pattern, index + 1, buf, patChars, syms, false); - buf.sync(); - negativePrefix = buf.getBuffer().toString(); - negativePrefixRanges = buf.getRanges(); - negativePrefixAttrs = buf.getAttributes(); - - // We parse the negative format for errors but we don't let - // it side-effect this object. - index = scanFormat (pattern, index, patChars, syms, false); - - index = scanFix (pattern, index, buf, patChars, syms, true); - buf.sync(); - negativeSuffix = buf.getBuffer().toString(); - negativeSuffixRanges = buf.getRanges(); - negativeSuffixAttrs = buf.getAttributes(); - - if (index != pattern.length()) - throw new IllegalArgumentException ("end of pattern expected " + - "- index: " + index); - } - } - - public void applyLocalizedPattern (String pattern) - { - // JCL p. 638 claims this throws a ParseException but p. 629 - // contradicts this. Empirical tests with patterns of "0,###.0" - // and "#.#.#" corroborate the p. 629 statement that an - // IllegalArgumentException is thrown. - applyPatternWithSymbols (pattern, symbols); - } - - public void applyPattern (String pattern) - { - // JCL p. 638 claims this throws a ParseException but p. 629 - // contradicts this. Empirical tests with patterns of "0,###.0" - // and "#.#.#" corroborate the p. 629 statement that an - // IllegalArgumentException is thrown. - applyPatternWithSymbols (pattern, nonLocalizedSymbols); - } - - public Object clone () - { - DecimalFormat c = (DecimalFormat) super.clone (); - c.symbols = (DecimalFormatSymbols) symbols.clone (); - return c; - } - - /** - * Constructs a DecimalFormat which uses the default - * pattern and symbols. - */ - public DecimalFormat () - { - this ("#,##0.###"); - } - - /** - * Constructs a DecimalFormat which uses the given - * pattern and the default symbols for formatting and parsing. - * - * @param pattern the non-localized pattern to use. - * @throws NullPointerException if any argument is null. - * @throws IllegalArgumentException if the pattern is invalid. - */ - public DecimalFormat (String pattern) - { - this (pattern, new DecimalFormatSymbols ()); - } - - /** - * Constructs a DecimalFormat using the given pattern - * and formatting symbols. This construction method is used to give - * complete control over the formatting process. - * - * @param pattern the non-localized pattern to use. - * @param symbols the set of symbols used for parsing and formatting. - * @throws NullPointerException if any argument is null. - * @throws IllegalArgumentException if the pattern is invalid. - */ - public DecimalFormat(String pattern, DecimalFormatSymbols symbols) - { - this.symbols = (DecimalFormatSymbols) symbols.clone(); - applyPattern(pattern); - } - - private boolean equals(String s1, String s2) - { - if (s1 == null || s2 == null) - return s1 == s2; - return s1.equals(s2); - } - - /** - * Tests this instance for equality with an arbitrary object. This method - * returns true if: - *
      - *
    • obj is not null;
    • - *
    • obj is an instance of DecimalFormat;
    • - *
    • this instance and obj have the same attributes;
    • - *
    - * - * @param obj the object (null permitted). - * - * @return A boolean. - */ - public boolean equals(Object obj) - { - if (! (obj instanceof DecimalFormat)) - return false; - DecimalFormat dup = (DecimalFormat) obj; - return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown - && groupingUsed == dup.groupingUsed - && groupingSize == dup.groupingSize - && multiplier == dup.multiplier - && useExponentialNotation == dup.useExponentialNotation - && minExponentDigits == dup.minExponentDigits - && minimumIntegerDigits == dup.minimumIntegerDigits - && maximumIntegerDigits == dup.maximumIntegerDigits - && minimumFractionDigits == dup.minimumFractionDigits - && maximumFractionDigits == dup.maximumFractionDigits - && equals(negativePrefix, dup.negativePrefix) - && equals(negativeSuffix, dup.negativeSuffix) - && equals(positivePrefix, dup.positivePrefix) - && equals(positiveSuffix, dup.positiveSuffix) - && symbols.equals(dup.symbols)); - } - - private void formatInternal (double number, FormatBuffer dest, - FieldPosition fieldPos) - { - // A very special case. - if (Double.isNaN(number)) - { - dest.append(symbols.getNaN()); - if (fieldPos != null && - (fieldPos.getField() == INTEGER_FIELD || - fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) - { - int index = dest.length(); - fieldPos.setBeginIndex(index - symbols.getNaN().length()); - fieldPos.setEndIndex(index); - } - return; - } - - boolean is_neg = number < 0; - if (is_neg) - { - if (negativePrefix != null) - { - dest.append(substituteCurrency(negativePrefix, number), - negativePrefixRanges, negativePrefixAttrs); - } - else - { - dest.append(symbols.getMinusSign(), NumberFormat.Field.SIGN); - dest.append(substituteCurrency(positivePrefix, number), - positivePrefixRanges, positivePrefixAttrs); - } - number = - number; - } - else - { - dest.append(substituteCurrency(positivePrefix, number), - positivePrefixRanges, positivePrefixAttrs); - } - int integerBeginIndex = dest.length(); - int integerEndIndex = 0; - int zeroStart = symbols.getZeroDigit() - '0'; - - if (Double.isInfinite (number)) - { - dest.append(symbols.getInfinity()); - integerEndIndex = dest.length(); - } - else - { - number *= multiplier; - - // Compute exponent. - long exponent = 0; - double baseNumber; - if (useExponentialNotation && number > 0) - { - exponent = (long) Math.floor (Math.log10(number)); - exponent = exponent - (exponent % exponentRound); - if (minimumIntegerDigits > 0) - exponent -= minimumIntegerDigits - 1; - baseNumber = (number / Math.pow(10.0, exponent)); - } - else - baseNumber = number; - - // Round to the correct number of digits. - baseNumber += 5 * Math.pow(10.0, - maximumFractionDigits - 1); - - int index = dest.length(); - //double intPart = Math.floor(baseNumber); - String intPart = Long.toString((long)Math.floor(baseNumber)); - int count, groupPosition = intPart.length(); - - dest.setDefaultAttribute(NumberFormat.Field.INTEGER); - - for (count = 0; count < minimumIntegerDigits-intPart.length(); count++) - dest.append(symbols.getZeroDigit()); - - for (count = 0; - count < maximumIntegerDigits && count < intPart.length(); - count++) - { - int dig = intPart.charAt(count); - - // Append group separator if required. - if (groupingUsed && count > 0 && groupingSize != 0 && groupPosition % groupingSize == 0) - { - dest.append(symbols.getGroupingSeparator(), NumberFormat.Field.GROUPING_SEPARATOR); - dest.setDefaultAttribute(NumberFormat.Field.INTEGER); - } - dest.append((char) (zeroStart + dig)); - - groupPosition--; - } - dest.setDefaultAttribute(null); - - integerEndIndex = dest.length(); - - int decimal_index = integerEndIndex; - int consecutive_zeros = 0; - int total_digits = 0; - - int localMaximumFractionDigits = maximumFractionDigits; - - if (useExponentialNotation) - localMaximumFractionDigits += minimumIntegerDigits - count; - - // Strip integer part from NUMBER. - double fracPart = baseNumber - Math.floor(baseNumber); - - if ( ((fracPart != 0 || minimumFractionDigits > 0) && localMaximumFractionDigits > 0) - || decimalSeparatorAlwaysShown) - { - dest.append (symbols.getDecimalSeparator(), NumberFormat.Field.DECIMAL_SEPARATOR); - } - - int fraction_begin = dest.length(); - dest.setDefaultAttribute(NumberFormat.Field.FRACTION); - for (count = 0; - count < localMaximumFractionDigits - && (fracPart != 0 || count < minimumFractionDigits); - ++count) - { - ++total_digits; - fracPart *= 10; - long dig = (long) fracPart; - if (dig == 0) - ++consecutive_zeros; - else - consecutive_zeros = 0; - dest.append((char) (symbols.getZeroDigit() + dig)); - - // Strip integer part from FRACPART. - fracPart = fracPart - Math.floor (fracPart); - } - - // Strip extraneous trailing `0's. We can't always detect - // these in the loop. - int extra_zeros = Math.min (consecutive_zeros, - total_digits - minimumFractionDigits); - if (extra_zeros > 0) - { - dest.cutTail(extra_zeros); - total_digits -= extra_zeros; - if (total_digits == 0 && !decimalSeparatorAlwaysShown) - dest.cutTail(1); - } - - if (fieldPos != null && fieldPos.getField() == FRACTION_FIELD) - { - fieldPos.setBeginIndex(fraction_begin); - fieldPos.setEndIndex(dest.length()); - } - - // Finally, print the exponent. - if (useExponentialNotation) - { - dest.append(symbols.getExponential(), NumberFormat.Field.EXPONENT_SYMBOL); - if (exponent < 0) - { - dest.append (symbols.getMinusSign (), NumberFormat.Field.EXPONENT_SIGN); - exponent = - exponent; - } - index = dest.length(); - dest.setDefaultAttribute(NumberFormat.Field.EXPONENT); - String exponentString = Long.toString ((long) exponent); - - for (count = 0; count < minExponentDigits-exponentString.length(); - count++) - dest.append((char) symbols.getZeroDigit()); - - for (count = 0; - count < exponentString.length(); - ++count) - { - int dig = exponentString.charAt(count); - dest.append((char) (zeroStart + dig)); - } - } - } - - if (fieldPos != null && - (fieldPos.getField() == INTEGER_FIELD || - fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) - { - fieldPos.setBeginIndex(integerBeginIndex); - fieldPos.setEndIndex(integerEndIndex); - } - - if (is_neg && negativeSuffix != null) - { - dest.append(substituteCurrency(negativeSuffix, number), - negativeSuffixRanges, negativeSuffixAttrs); - } - else - { - dest.append(substituteCurrency(positiveSuffix, number), - positiveSuffixRanges, positiveSuffixAttrs); - } - } - - public StringBuffer format (double number, StringBuffer dest, - FieldPosition fieldPos) - { - formatInternal (number, new StringFormatBuffer(dest), fieldPos); - return dest; - } - - public AttributedCharacterIterator formatToCharacterIterator (Object value) - { - AttributedFormatBuffer sbuf = new AttributedFormatBuffer(); - - if (value instanceof Number) - formatInternal(((Number) value).doubleValue(), sbuf, null); - else - throw new IllegalArgumentException - ("Cannot format given Object as a Number"); - - sbuf.sync(); - return new FormatCharacterIterator(sbuf.getBuffer().toString(), - sbuf.getRanges(), - sbuf.getAttributes()); - } - - public StringBuffer format (long number, StringBuffer dest, - FieldPosition fieldPos) - { - // If using exponential notation, we just format as a double. - if (useExponentialNotation) - return format ((double) number, dest, fieldPos); - - boolean is_neg = number < 0; - if (is_neg) - { - if (negativePrefix != null) - dest.append(substituteCurrency(negativePrefix, number)); - else - { - dest.append(symbols.getMinusSign()); - dest.append(substituteCurrency(positivePrefix, number)); - } - number = - number; - } - else - dest.append(substituteCurrency(positivePrefix, number)); - - int integerBeginIndex = dest.length(); - int index = dest.length(); - int count = 0; - - /* Handle percentages, etc. */ - number *= multiplier; - while (count < maximumIntegerDigits - && (number > 0 || count < minimumIntegerDigits)) - { - long dig = number % 10; - number /= 10; - // NUMBER and DIG will be less than 0 if the original number - // was the most negative long. - if (dig < 0) - { - dig = - dig; - number = - number; - } - - // Append group separator if required. - if (groupingUsed && count > 0 && groupingSize != 0 && count % groupingSize == 0) - dest.insert(index, symbols.getGroupingSeparator()); - - dest.insert(index, (char) (symbols.getZeroDigit() + dig)); - - ++count; - } - - if (fieldPos != null && fieldPos.getField() == INTEGER_FIELD) - { - fieldPos.setBeginIndex(integerBeginIndex); - fieldPos.setEndIndex(dest.length()); - } - - if (decimalSeparatorAlwaysShown || minimumFractionDigits > 0) - { - dest.append(symbols.getDecimalSeparator()); - if (fieldPos != null && fieldPos.getField() == FRACTION_FIELD) - { - fieldPos.setBeginIndex(dest.length()); - fieldPos.setEndIndex(dest.length() + minimumFractionDigits); - } - } - - for (count = 0; count < minimumFractionDigits; ++count) - dest.append(symbols.getZeroDigit()); - - dest.append((is_neg && negativeSuffix != null) - ? substituteCurrency(negativeSuffix, number) - : substituteCurrency(positiveSuffix, number)); - return dest; - } - - /** - * Returns the currency corresponding to the currency symbol stored - * in the instance of DecimalFormatSymbols used by this - * DecimalFormat. - * - * @return A new instance of Currency if - * the currency code matches a known one, null otherwise. - */ - public Currency getCurrency() - { - return symbols.getCurrency(); - } - - /** - * Returns a copy of the symbols used by this instance. - * - * @return A copy of the symbols. - */ - public DecimalFormatSymbols getDecimalFormatSymbols() - { - return (DecimalFormatSymbols) symbols.clone(); - } - - public int getGroupingSize () - { - return groupingSize; - } - - public int getMultiplier () - { - return multiplier; - } - - public String getNegativePrefix () - { - return negativePrefix; - } - - public String getNegativeSuffix () - { - return negativeSuffix; - } - - public String getPositivePrefix () - { - return positivePrefix; - } - - public String getPositiveSuffix () - { - return positiveSuffix; - } - - /** - * Returns a hash code for this object. - * - * @return A hash code. - */ - public int hashCode() - { - return toPattern().hashCode(); - } - - public boolean isDecimalSeparatorAlwaysShown () - { - return decimalSeparatorAlwaysShown; - } - - public Number parse (String str, ParsePosition pos) - { - /* - * Our strategy is simple: copy the text into separate buffers: one for the int part, - * one for the fraction part and for the exponential part. - * We translate or omit locale-specific information. - * If exponential is sufficiently big we merge the fraction and int part and - * remove the '.' and then we use Long to convert the number. In the other - * case, we use Double to convert the full number. - */ - - boolean is_neg = false; - int index = pos.getIndex(); - StringBuffer int_buf = new StringBuffer (); - - // We have to check both prefixes, because one might be empty. We - // want to pick the longest prefix that matches. - boolean got_pos = str.startsWith(positivePrefix, index); - String np = (negativePrefix != null - ? negativePrefix - : positivePrefix + symbols.getMinusSign()); - boolean got_neg = str.startsWith(np, index); - - if (got_pos && got_neg) - { - // By checking this way, we preserve ambiguity in the case - // where the negative format differs only in suffix. We - // check this again later. - if (np.length() > positivePrefix.length()) - { - is_neg = true; - index += np.length(); - } - else - index += positivePrefix.length(); - } - else if (got_neg) - { - is_neg = true; - index += np.length(); - } - else if (got_pos) - index += positivePrefix.length(); - else - { - pos.setErrorIndex (index); - return null; - } - - // FIXME: handle Inf and NaN. - - // FIXME: do we have to respect minimum digits? - // What about multiplier? - - StringBuffer buf = int_buf; - StringBuffer frac_buf = null; - StringBuffer exp_buf = null; - int start_index = index; - int max = str.length(); - int exp_index = -1; - int last = index + maximumIntegerDigits; - - if (maximumFractionDigits > 0) - last += maximumFractionDigits + 1; - - if (useExponentialNotation) - last += minExponentDigits + 1; - - if (last > 0 && max > last) - max = last; - - char zero = symbols.getZeroDigit(); - int last_group = -1; - boolean int_part = true; - boolean exp_part = false; - for (; index < max; ++index) - { - char c = str.charAt(index); - - // FIXME: what about grouping size? - if (groupingUsed && c == symbols.getGroupingSeparator()) - { - if (last_group != -1 - && groupingSize != 0 - && (index - last_group) % groupingSize != 0) - { - pos.setErrorIndex(index); - return null; - } - last_group = index+1; - } - else if (c >= zero && c <= zero + 9) - { - buf.append((char) (c - zero + '0')); - } - else if (parseIntegerOnly) - break; - else if (c == symbols.getDecimalSeparator()) - { - if (last_group != -1 - && groupingSize != 0 - && (index - last_group) % groupingSize != 0) - { - pos.setErrorIndex(index); - return null; - } - buf = frac_buf = new StringBuffer(); - frac_buf.append('.'); - int_part = false; - } - else if (c == symbols.getExponential()) - { - buf = exp_buf = new StringBuffer(); - int_part = false; - exp_part = true; - exp_index = index+1; - } - else if (exp_part - && (c == '+' || c == '-' || c == symbols.getMinusSign())) - { - // For exponential notation. - buf.append(c); - } - else - break; - } - - if (index == start_index) - { - // Didn't see any digits. - pos.setErrorIndex(index); - return null; - } - - // Check the suffix. We must do this before converting the - // buffer to a number to handle the case of a number which is - // the most negative Long. - boolean got_pos_suf = str.startsWith(positiveSuffix, index); - String ns = (negativePrefix == null ? positiveSuffix : negativeSuffix); - boolean got_neg_suf = str.startsWith(ns, index); - if (is_neg) - { - if (! got_neg_suf) - { - pos.setErrorIndex(index); - return null; - } - } - else if (got_pos && got_neg && got_neg_suf) - { - is_neg = true; - } - else if (got_pos != got_pos_suf && got_neg != got_neg_suf) - { - pos.setErrorIndex(index); - return null; - } - else if (! got_pos_suf) - { - pos.setErrorIndex(index); - return null; - } - - String suffix = is_neg ? ns : positiveSuffix; - long parsedMultiplier = 1; - boolean use_long; - - if (is_neg) - int_buf.insert(0, '-'); - - // Now handle the exponential part if there is one. - if (exp_buf != null) - { - int exponent_value; - - try - { - exponent_value = Integer.parseInt(exp_buf.toString()); - } - catch (NumberFormatException x1) - { - pos.setErrorIndex(exp_index); - return null; - } - - if (frac_buf == null) - { - // We only have to add some zeros to the int part. - // Build a multiplier. - for (int i = 0; i < exponent_value; i++) - int_buf.append('0'); - - use_long = true; - } - else - { - boolean long_sufficient; - - if (exponent_value < frac_buf.length()-1) - { - int lastNonNull = -1; - /* We have to check the fraction buffer: it may only be full of '0' - * or be sufficiently filled with it to convert the number into Long. - */ - for (int i = 1; i < frac_buf.length(); i++) - if (frac_buf.charAt(i) != '0') - lastNonNull = i; - - long_sufficient = (lastNonNull < 0 || lastNonNull <= exponent_value); - } - else - long_sufficient = true; - - if (long_sufficient) - { - for (int i = 1; i < frac_buf.length() && i < exponent_value; i++) - int_buf.append(frac_buf.charAt(i)); - for (int i = frac_buf.length()-1; i < exponent_value; i++) - int_buf.append('0'); - use_long = true; - } - else - { - /* - * A long type is not sufficient, we build the full buffer to - * be parsed by Double. - */ - int_buf.append(frac_buf); - int_buf.append('E'); - int_buf.append(exp_buf); - use_long = false; - } - } - } - else - { - if (frac_buf != null) - { - /* Check whether the fraction buffer contains only '0' */ - int i; - for (i = 1; i < frac_buf.length(); i++) - if (frac_buf.charAt(i) != '0') - break; - - if (i != frac_buf.length()) - { - use_long = false; - int_buf.append(frac_buf); - } - else - use_long = true; - } - else - use_long = true; - } - - String t = int_buf.toString(); - Number result = null; - if (use_long) - { - try - { - result = new Long (t); - } - catch (NumberFormatException x1) - { - } - } - else - { - try - { - result = new Double (t); - } - catch (NumberFormatException x2) - { - } - } - if (result == null) - { - pos.setErrorIndex(index); - return null; - } - - pos.setIndex(index + suffix.length()); - - return result; - } - - /** - * Sets the Currency on the - * DecimalFormatSymbols used, which also sets the - * currency symbols on those symbols. - */ - public void setCurrency(Currency currency) - { - symbols.setCurrency(currency); - } - - /** - * Sets the symbols used by this instance. This method makes a copy of - * the supplied symbols. - * - * @param newSymbols the symbols (null not permitted). - */ - public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols) - { - symbols = (DecimalFormatSymbols) newSymbols.clone(); - } - - public void setDecimalSeparatorAlwaysShown (boolean newValue) - { - decimalSeparatorAlwaysShown = newValue; - } - - public void setGroupingSize (int groupSize) - { - groupingSize = (byte) groupSize; - } - - public void setMaximumFractionDigits (int newValue) - { - super.setMaximumFractionDigits(Math.min(newValue, 340)); - } - - public void setMaximumIntegerDigits (int newValue) - { - super.setMaximumIntegerDigits(Math.min(newValue, 309)); - } - - public void setMinimumFractionDigits (int newValue) - { - super.setMinimumFractionDigits(Math.min(newValue, 340)); - } - - public void setMinimumIntegerDigits (int newValue) - { - super.setMinimumIntegerDigits(Math.min(newValue, 309)); - } - - public void setMultiplier (int newValue) - { - multiplier = newValue; - } - - public void setNegativePrefix (String newValue) - { - negativePrefix = newValue; - } - - public void setNegativeSuffix (String newValue) - { - negativeSuffix = newValue; - } - - public void setPositivePrefix (String newValue) - { - positivePrefix = newValue; - } - - public void setPositiveSuffix (String newValue) - { - positiveSuffix = newValue; - } - - private void quoteFix(StringBuffer buf, String text, String patChars) - { - int len = text.length(); - for (int index = 0; index < len; ++index) - { - char c = text.charAt(index); - if (patChars.indexOf(c) != -1) - { - buf.append('\''); - buf.append(c); - buf.append('\''); - } - else - buf.append(c); - } - } - - private String computePattern(DecimalFormatSymbols syms) - { - StringBuffer mainPattern = new StringBuffer (); - // We have to at least emit a zero for the minimum number of - // digits. Past that we need hash marks up to the grouping - // separator (and one beyond). - int total_digits = Math.max(minimumIntegerDigits, - groupingUsed ? groupingSize + 1: groupingSize); - for (int i = 0; i < total_digits - minimumIntegerDigits; ++i) - mainPattern.append(syms.getDigit()); - for (int i = total_digits - minimumIntegerDigits; i < total_digits; ++i) - mainPattern.append(syms.getZeroDigit()); - // Inserting the gropuing operator afterwards is easier. - if (groupingUsed) - mainPattern.insert(mainPattern.length() - groupingSize, - syms.getGroupingSeparator()); - // See if we need decimal info. - if (minimumFractionDigits > 0 || maximumFractionDigits > 0 - || decimalSeparatorAlwaysShown) - mainPattern.append(syms.getDecimalSeparator()); - for (int i = 0; i < minimumFractionDigits; ++i) - mainPattern.append(syms.getZeroDigit()); - for (int i = minimumFractionDigits; i < maximumFractionDigits; ++i) - mainPattern.append(syms.getDigit()); - if (useExponentialNotation) - { - mainPattern.append(syms.getExponential()); - for (int i = 0; i < minExponentDigits; ++i) - mainPattern.append(syms.getZeroDigit()); - if (minExponentDigits == 0) - mainPattern.append(syms.getDigit()); - } - - String main = mainPattern.toString(); - String patChars = patternChars (syms); - mainPattern.setLength(0); - - quoteFix (mainPattern, positivePrefix, patChars); - mainPattern.append(main); - quoteFix (mainPattern, positiveSuffix, patChars); - - if (negativePrefix != null) - { - quoteFix (mainPattern, negativePrefix, patChars); - mainPattern.append(main); - quoteFix (mainPattern, negativeSuffix, patChars); - } - - return mainPattern.toString(); - } - - public String toLocalizedPattern () - { - return computePattern (symbols); - } - - public String toPattern () - { - return computePattern (nonLocalizedSymbols); - } - - private static final int MAXIMUM_INTEGER_DIGITS = 309; - - // These names are fixed by the serialization spec. - private boolean decimalSeparatorAlwaysShown; - private byte groupingSize; - private byte minExponentDigits; - private int exponentRound; - private int multiplier; - private String negativePrefix; - private String negativeSuffix; - private String positivePrefix; - private String positiveSuffix; - private int[] negativePrefixRanges, positivePrefixRanges; - private HashMap[] negativePrefixAttrs, positivePrefixAttrs; - private int[] negativeSuffixRanges, positiveSuffixRanges; - private HashMap[] negativeSuffixAttrs, positiveSuffixAttrs; - private int serialVersionOnStream = 1; - private DecimalFormatSymbols symbols; - private boolean useExponentialNotation; - private static final long serialVersionUID = 864413376551465018L; - - private void readObject(ObjectInputStream stream) - throws IOException, ClassNotFoundException - { - stream.defaultReadObject(); - if (serialVersionOnStream < 1) - { - useExponentialNotation = false; - serialVersionOnStream = 1; - } - } - - // The locale-independent pattern symbols happen to be the same as - // the US symbols. - private static final DecimalFormatSymbols nonLocalizedSymbols - = new DecimalFormatSymbols (Locale.US); - - /** - *

    - * Substitutes the currency symbol into the given string, - * based on the value used. Currency symbols can either - * be a simple series of characters (e.g. '$'), which are - * simply used as is, or they can be of a more complex - * form: - *

    - *

    - * (lower bound)|(mid value)|(upper bound) - *

    - *

    - * where each bound has the syntax '(value)(# or <)(symbol)', - * to indicate the bounding value and the symbol used. - *

    - *

    - * The currency symbol replaces the currency specifier, '\u00a4', - * an unlocalised character, which thus is used as such in all formats. - * If this symbol occurs twice, the international currency code is used - * instead. - *

    - * - * @param string The string containing the currency specifier, '\u00a4'. - * @param number the number being formatted. - * @return a string formatted for the correct currency. - */ - private String substituteCurrency(String string, double number) - { - int index; - int length; - char currentChar; - StringBuffer buf; - - index = 0; - length = string.length(); - buf = new StringBuffer(); - - while (index < length) - { - currentChar = string.charAt(index); - if (string.charAt(index) == '\u00a4') - { - if ((index + 1) < length && string.charAt(index + 1) == '\u00a4') - { - buf.append(symbols.getInternationalCurrencySymbol()); - index += 2; - } - else - { - String symbol; - - symbol = symbols.getCurrencySymbol(); - if (symbol.startsWith("=")) - { - String[] bounds; - int[] boundValues; - String[] boundSymbols; - - bounds = symbol.substring(1).split("\\|"); - boundValues = new int[3]; - boundSymbols = new String[3]; - for (int a = 0; a < 3; ++a) - { - String[] bound; - - bound = bounds[a].split("[#<]"); - boundValues[a] = Integer.parseInt(bound[0]); - boundSymbols[a] = bound[1]; - } - if (number <= boundValues[0]) - { - buf.append(boundSymbols[0]); - } - else if (number >= boundValues[2]) - { - buf.append(boundSymbols[2]); - } - else - { - buf.append(boundSymbols[1]); - } - ++index; - } - else - { - buf.append(symbol); - ++index; - } - } - } - else - { - buf.append(string.charAt(index)); - ++index; - } - } - return buf.toString(); - } - -} +/* DecimalFormat.java -- Formats and parses numbers + Copyright (C) 1999, 2000, 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. */ + +/* + * This class contains few bits from ICU4J (http://icu.sourceforge.net/), + * Copyright by IBM and others and distributed under the + * distributed under MIT/X. + */ + +package java.text; + +import java.math.BigDecimal; +import java.math.BigInteger; + +import java.util.ArrayList; +import java.util.Currency; +import java.util.Locale; + +/* + * This note is here for historical reasons and because I had not the courage + * to remove it :) + * + * @author Tom Tromey (tromey@cygnus.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @date March 4, 1999 + * + * Written using "Java Class Libraries", 2nd edition, plus online + * API docs for JDK 1.2 from http://www.javasoft.com. + * Status: Believed complete and correct to 1.2. + * Note however that the docs are very unclear about how format parsing + * should work. No doubt there are problems here. + */ + +/** + * This class is a concrete implementation of NumberFormat used to format + * decimal numbers. The class can format numbers given a specific locale. + * Generally, to get an instance of DecimalFormat you should call the factory + * methods in the NumberFormat base class. + * + * @author Mario Torre + * @author Tom Tromey (tromey@cygnus.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ +public class DecimalFormat extends NumberFormat +{ + /** serialVersionUID for serializartion. */ + private static final long serialVersionUID = 864413376551465018L; + + /** Defines the default number of digits allowed while formatting integers. */ + private static final int DEFAULT_INTEGER_DIGITS = 309; + + /** + * Defines the default number of digits allowed while formatting + * fractions. + */ + private static final int DEFAULT_FRACTION_DIGITS = 340; + + /** + * Locale-independent pattern symbols. + */ + // Happen to be the same as the US symbols. + private static final DecimalFormatSymbols nonLocalizedSymbols + = new DecimalFormatSymbols (Locale.US); + + /** + * Defines if parse should return a BigDecimal or not. + */ + private boolean parseBigDecimal; + + /** + * Defines if we have to use the monetary decimal separator or + * the decimal separator while formatting numbers. + */ + private boolean useCurrencySeparator; + + /** Defines if the decimal separator is always shown or not. */ + private boolean decimalSeparatorAlwaysShown; + + /** + * Defines if the decimal separator has to be shown. + * + * This is different then decimalSeparatorAlwaysShown, + * as it defines if the format string contains a decimal separator or no. + */ + private boolean showDecimalSeparator; + + /** + * This field is used to determine if the grouping + * separator is included in the format string or not. + * This is only needed to match the behaviour of the RI. + */ + private boolean groupingSeparatorInPattern; + + /** Defines the size of grouping groups when grouping is used. */ + private byte groupingSize; + + /** + * This is an internal parameter used to keep track of the number + * of digits the form the exponent, when exponential notation is used. + * It is used with exponentRound + */ + private byte minExponentDigits; + + /** This field is used to set the exponent in the engineering notation. */ + private int exponentRound; + + /** Multiplier used in percent style formats. */ + private int multiplier; + + /** Multiplier used in percent style formats. */ + private int negativePatternMultiplier; + + /** The negative prefix. */ + private String negativePrefix; + + /** The negative suffix. */ + private String negativeSuffix; + + /** The positive prefix. */ + private String positivePrefix; + + /** The positive suffix. */ + private String positiveSuffix; + + /** Decimal Format Symbols for the given locale. */ + private DecimalFormatSymbols symbols; + + /** Determine if we have to use exponential notation or not. */ + private boolean useExponentialNotation; + + /** + * Defines the maximum number of integer digits to show when we use + * the exponential notation. + */ + private int maxIntegerDigitsExponent; + + /** Defines if the format string has a negative prefix or not. */ + private boolean hasNegativePrefix; + + /** Defines if the format string has a fractional pattern or not. */ + private boolean hasFractionalPattern; + + /** Stores a list of attributes for use by formatToCharacterIterator. */ + private ArrayList attributes = new ArrayList(); + + /** + * Constructs a DecimalFormat which uses the default + * pattern and symbols. + */ + public DecimalFormat() + { + this ("#,##0.###"); + } + + /** + * Constructs a DecimalFormat which uses the given + * pattern and the default symbols for formatting and parsing. + * + * @param pattern the non-localized pattern to use. + * @throws NullPointerException if any argument is null. + * @throws IllegalArgumentException if the pattern is invalid. + */ + public DecimalFormat(String pattern) + { + this (pattern, new DecimalFormatSymbols()); + } + + /** + * Constructs a DecimalFormat using the given pattern + * and formatting symbols. This construction method is used to give + * complete control over the formatting process. + * + * @param pattern the non-localized pattern to use. + * @param symbols the set of symbols used for parsing and formatting. + * @throws NullPointerException if any argument is null. + * @throws IllegalArgumentException if the pattern is invalid. + */ + public DecimalFormat(String pattern, DecimalFormatSymbols symbols) + { + this.symbols = (DecimalFormatSymbols) symbols.clone(); + applyPatternWithSymbols(pattern, nonLocalizedSymbols); + } + + /** + * Apply the given localized patern to the current DecimalFormat object. + * + * @param pattern The localized pattern to apply. + * @throws IllegalArgumentException if the given pattern is invalid. + * @throws NullPointerException if the input pattern is null. + */ + public void applyLocalizedPattern (String pattern) + { + applyPatternWithSymbols(pattern, this.symbols); + } + + /** + * Apply the given localized pattern to the current DecimalFormat object. + * + * @param pattern The localized pattern to apply. + * @throws IllegalArgumentException if the given pattern is invalid. + * @throws NullPointerException if the input pattern is null. + */ + public void applyPattern(String pattern) + { + applyPatternWithSymbols(pattern, nonLocalizedSymbols); + } + + public Object clone() + { + DecimalFormat c = (DecimalFormat) super.clone(); + c.symbols = (DecimalFormatSymbols) symbols.clone(); + return c; + } + + /** + * Tests this instance for equality with an arbitrary object. This method + * returns true if: + *
      + *
    • obj is not null;
    • + *
    • obj is an instance of DecimalFormat;
    • + *
    • this instance and obj have the same attributes;
    • + *
    + * + * @param obj the object (null permitted). + * + * @return A boolean. + */ + public boolean equals(Object obj) + { + if (! (obj instanceof DecimalFormat)) + return false; + DecimalFormat dup = (DecimalFormat) obj; + return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown + && groupingUsed == dup.groupingUsed + && groupingSeparatorInPattern == dup.groupingSeparatorInPattern + && groupingSize == dup.groupingSize + && multiplier == dup.multiplier + && useExponentialNotation == dup.useExponentialNotation + && minExponentDigits == dup.minExponentDigits + && minimumIntegerDigits == dup.minimumIntegerDigits + && maximumIntegerDigits == dup.maximumIntegerDigits + && minimumFractionDigits == dup.minimumFractionDigits + && maximumFractionDigits == dup.maximumFractionDigits + && parseBigDecimal == dup.parseBigDecimal + && useCurrencySeparator == dup.useCurrencySeparator + && showDecimalSeparator == dup.showDecimalSeparator + && exponentRound == dup.exponentRound + && negativePatternMultiplier == dup.negativePatternMultiplier + && maxIntegerDigitsExponent == dup.maxIntegerDigitsExponent + // XXX: causes equivalent patterns to fail + // && hasNegativePrefix == dup.hasNegativePrefix + && equals(negativePrefix, dup.negativePrefix) + && equals(negativeSuffix, dup.negativeSuffix) + && equals(positivePrefix, dup.positivePrefix) + && equals(positiveSuffix, dup.positiveSuffix) + && symbols.equals(dup.symbols)); + } + + /** + * Returns a hash code for this object. + * + * @return A hash code. + */ + public int hashCode() + { + return toPattern().hashCode(); + } + + /** + * Produce a formatted {@link String} representation of this object. + * The passed object must be of type number. + * + * @param obj The {@link Number} to format. + * @param sbuf The destination String; text will be appended to this String. + * @param pos If used on input can be used to define an alignment + * field. If used on output defines the offsets of the alignment field. + * @return The String representation of this long. + */ + public StringBuffer format(Object obj, StringBuffer sbuf, FieldPosition pos) + { + if (obj instanceof BigInteger) + { + BigDecimal decimal = new BigDecimal((BigInteger) obj); + formatInternal(decimal, true, sbuf, pos); + return sbuf; + } + else if (obj instanceof BigDecimal) + { + formatInternal((BigDecimal) obj, true, sbuf, pos); + return sbuf; + } + + return super.format(obj, sbuf, pos); + } + + /** + * Produce a formatted {@link String} representation of this double. + * + * @param number The double to format. + * @param dest The destination String; text will be appended to this String. + * @param fieldPos If used on input can be used to define an alignment + * field. If used on output defines the offsets of the alignment field. + * @return The String representation of this long. + * @throws NullPointerException if dest or fieldPos are null + */ + public StringBuffer format(double number, StringBuffer dest, + FieldPosition fieldPos) + { + // special cases for double: NaN and negative or positive infinity + if (Double.isNaN(number)) + { + // 1. NaN + String nan = symbols.getNaN(); + dest.append(nan); + + // update field position if required + if ((fieldPos.getField() == INTEGER_FIELD || + fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) + { + int index = dest.length(); + fieldPos.setBeginIndex(index - nan.length()); + fieldPos.setEndIndex(index); + } + } + else if (Double.isInfinite(number)) + { + // 2. Infinity + if (number < 0) + dest.append(this.negativePrefix); + else + dest.append(this.positivePrefix); + + dest.append(symbols.getInfinity()); + + if (number < 0) + dest.append(this.negativeSuffix); + else + dest.append(this.positiveSuffix); + + if ((fieldPos.getField() == INTEGER_FIELD || + fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) + { + fieldPos.setBeginIndex(dest.length()); + fieldPos.setEndIndex(0); + } + } + else + { + // get the number as a BigDecimal + BigDecimal bigDecimal = new BigDecimal(String.valueOf(number)); + formatInternal(bigDecimal, false, dest, fieldPos); + } + + return dest; + } + + /** + * Produce a formatted {@link String} representation of this long. + * + * @param number The long to format. + * @param dest The destination String; text will be appended to this String. + * @param fieldPos If used on input can be used to define an alignment + * field. If used on output defines the offsets of the alignment field. + * @return The String representation of this long. + */ + public StringBuffer format(long number, StringBuffer dest, + FieldPosition fieldPos) + { + BigDecimal bigDecimal = new BigDecimal(String.valueOf(number)); + formatInternal(bigDecimal, true, dest, fieldPos); + return dest; + } + + /** + * Return an AttributedCharacterIterator as a result of + * the formatting of the passed {@link Object}. + * + * @return An {@link AttributedCharacterIterator}. + * @throws NullPointerException if value is null. + * @throws IllegalArgumentException if value is not an instance of + * {@link Number}. + */ + public AttributedCharacterIterator formatToCharacterIterator(Object value) + { + /* + * This method implementation derives directly from the + * ICU4J (http://icu.sourceforge.net/) library, distributed under MIT/X. + */ + + if (value == null) + throw new NullPointerException("Passed Object is null"); + + if (!(value instanceof Number)) throw new + IllegalArgumentException("Cannot format given Object as a Number"); + + StringBuffer text = new StringBuffer(); + attributes.clear(); + super.format(value, text, new FieldPosition(0)); + + AttributedString as = new AttributedString(text.toString()); + + // add NumberFormat field attributes to the AttributedString + for (int i = 0; i < attributes.size(); i++) + { + FieldPosition pos = (FieldPosition) attributes.get(i); + Format.Field attribute = pos.getFieldAttribute(); + + as.addAttribute(attribute, attribute, pos.getBeginIndex(), pos + .getEndIndex()); + } + + // return the CharacterIterator from AttributedString + return as.getIterator(); + } + + /** + * Returns the currency corresponding to the currency symbol stored + * in the instance of DecimalFormatSymbols used by this + * DecimalFormat. + * + * @return A new instance of Currency if + * the currency code matches a known one, null otherwise. + */ + public Currency getCurrency() + { + return symbols.getCurrency(); + } + + /** + * Returns a copy of the symbols used by this instance. + * + * @return A copy of the symbols. + */ + public DecimalFormatSymbols getDecimalFormatSymbols() + { + return (DecimalFormatSymbols) symbols.clone(); + } + + /** + * Gets the interval used between a grouping separator and the next. + * For example, a grouping size of 3 means that the number 1234 is + * formatted as 1,234. + * + * The actual character used as grouping separator depends on the + * locale and is defined by {@link DecimalFormatSymbols#getDecimalSeparator()} + * + * @return The interval used between a grouping separator and the next. + */ + public int getGroupingSize() + { + return groupingSize; + } + + /** + * Gets the multiplier used in percent and similar formats. + * + * @return The multiplier used in percent and similar formats. + */ + public int getMultiplier() + { + return multiplier; + } + + /** + * Gets the negative prefix. + * + * @return The negative prefix. + */ + public String getNegativePrefix() + { + return negativePrefix; + } + + /** + * Gets the negative suffix. + * + * @return The negative suffix. + */ + public String getNegativeSuffix() + { + return negativeSuffix; + } + + /** + * Gets the positive prefix. + * + * @return The positive prefix. + */ + public String getPositivePrefix() + { + return positivePrefix; + } + + /** + * Gets the positive suffix. + * + * @return The positive suffix. + */ + public String getPositiveSuffix() + { + return positiveSuffix; + } + + public boolean isDecimalSeparatorAlwaysShown() + { + return decimalSeparatorAlwaysShown; + } + + /** + * Define if parse(java.lang.String, java.text.ParsePosition) + * should return a {@link BigDecimal} or not. + * + * @param newValue + */ + public void setParseBigDecimal(boolean newValue) + { + this.parseBigDecimal = newValue; + } + + /** + * Returns true if + * parse(java.lang.String, java.text.ParsePosition) returns + * a BigDecimal, false otherwise. + * The default return value for this method is false. + * + * @return true if the parse method returns a {@link BigDecimal}, + * false otherwise. + * @since 1.5 + * @see #setParseBigDecimal(boolean) + */ + public boolean isParseBigDecimal() + { + return this.parseBigDecimal; + } + + /** + * This method parses the specified string into a Number. + * + * The parsing starts at pos, which is updated as the parser + * consume characters in the passed string. + * On error, the Position object index is not updated, while + * error position is set appropriately, an null is returned. + * + * @param str The string to parse. + * @param pos The desired ParsePosition. + * + * @return The parsed Number + */ + public Number parse(String str, ParsePosition pos) + { + // a special values before anything else + // NaN + if (str.contains(this.symbols.getNaN())) + return Double.valueOf(Double.NaN); + + // this will be our final number + StringBuffer number = new StringBuffer(); + + // special character + char minus = symbols.getMinusSign(); + + // starting parsing position + int start = pos.getIndex(); + + // validate the string, it have to be in the + // same form as the format string or parsing will fail + String _negativePrefix = (this.negativePrefix.compareTo("") == 0 + ? minus + positivePrefix + : this.negativePrefix); + + // we check both prefixes, because one might be empty. + // We want to pick the longest prefix that matches. + int positiveLen = positivePrefix.length(); + int negativeLen = _negativePrefix.length(); + + boolean isNegative = str.startsWith(_negativePrefix); + boolean isPositive = str.startsWith(positivePrefix); + + if (isPositive && isNegative) + { + // By checking this way, we preserve ambiguity in the case + // where the negative format differs only in suffix. + if (negativeLen > positiveLen) + { + start += _negativePrefix.length(); + isNegative = true; + } + else + { + start += positivePrefix.length(); + isPositive = true; + if (negativeLen < positiveLen) + isNegative = false; + } + } + else if (isNegative) + { + start += _negativePrefix.length(); + isPositive = false; + } + else if (isPositive) + { + start += positivePrefix.length(); + isNegative = false; + } + else + { + pos.setErrorIndex(start); + return null; + } + + // other special characters used by the parser + char decimalSeparator = symbols.getDecimalSeparator(); + char zero = symbols.getZeroDigit(); + char exponent = symbols.getExponential(); + + // stop parsing position in the string + int stop = start + this.maximumIntegerDigits + maximumFractionDigits + 2; + + if (useExponentialNotation) + stop += minExponentDigits + 1; + + boolean inExponent = false; + + // correct the size of the end parsing flag + int len = str.length(); + if (len < stop) stop = len; + + int i = start; + while (i < stop) + { + char ch = str.charAt(i); + i++; + + if (ch >= zero && ch <= (zero + 9)) + { + number.append(ch); + } + else if (this.parseIntegerOnly) + { + break; + } + else if (ch == decimalSeparator) + { + number.append('.'); + } + else if (ch == exponent) + { + number.append(ch); + inExponent = !inExponent; + } + else if ((ch == '+' || ch == '-' || ch == minus)) + { + if (inExponent) + number.append(ch); + else + break; + } + } + + // 2nd special case: infinity + // XXX: need to be tested + if (str.contains(symbols.getInfinity())) + { + int inf = str.indexOf(symbols.getInfinity()); + pos.setIndex(inf); + + // FIXME: ouch, this is really ugly and lazy code... + if (this.parseBigDecimal) + { + if (isNegative) + return new BigDecimal(Double.NEGATIVE_INFINITY); + + return new BigDecimal(Double.POSITIVE_INFINITY); + } + + if (isNegative) + return new Double(Double.NEGATIVE_INFINITY); + + return new Double(Double.POSITIVE_INFINITY); + } + + // no number... + if (i == start || number.length() == 0) + { + pos.setErrorIndex(i); + return null; + } + + // now we have to check the suffix, done here after number parsing + // or the index will not be updated correctly... + boolean isNegativeSuffix = str.endsWith(this.negativeSuffix); + boolean isPositiveSuffix = str.endsWith(this.positiveSuffix); + boolean positiveEqualsNegative = negativeSuffix.equals(positiveSuffix); + + positiveLen = positiveSuffix.length(); + negativeLen = negativeSuffix.length(); + + if (isNegative && !isNegativeSuffix) + { + pos.setErrorIndex(i); + return null; + } + else if (isNegativeSuffix && + !positiveEqualsNegative && + (negativeLen > positiveLen)) + { + isNegative = true; + } + else if (!isPositiveSuffix) + { + pos.setErrorIndex(i); + return null; + } + + if (isNegative) number.insert(0, '-'); + + pos.setIndex(i - 1); + + // now we handle the return type + BigDecimal bigDecimal = new BigDecimal(number.toString()); + if (this.parseBigDecimal) + return bigDecimal; + + // want integer? + if (this.parseIntegerOnly) + return new Long(bigDecimal.longValue()); + + // 3th special case -0.0 + if (isNegative && (bigDecimal.compareTo(BigDecimal.ZERO) == 0)) + return new Double(-0.0); + + try + { + BigDecimal integer + = bigDecimal.setScale(0, BigDecimal.ROUND_UNNECESSARY); + return new Long(integer.longValue()); + } + catch (ArithmeticException e) + { + return new Double(bigDecimal.doubleValue()); + } + } + + /** + * Sets the Currency on the + * DecimalFormatSymbols used, which also sets the + * currency symbols on those symbols. + * + * @param currency The new Currency on the + * DecimalFormatSymbols. + */ + public void setCurrency(Currency currency) + { + symbols.setCurrency(currency); + } + + /** + * Sets the symbols used by this instance. This method makes a copy of + * the supplied symbols. + * + * @param newSymbols the symbols (null not permitted). + */ + public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols) + { + symbols = (DecimalFormatSymbols) newSymbols.clone(); + } + + /** + * Define if the decimal separator should be always visible or only + * visible when needed. This method as effect only on integer values. + * Pass true if you want the decimal separator to be + * always shown, false otherwise. + * + * @param newValue true if you want the decimal separator to be + * always shown, false otherwise. + */ + public void setDecimalSeparatorAlwaysShown(boolean newValue) + { + decimalSeparatorAlwaysShown = newValue; + } + + /** + * Sets the number of digits used to group portions of the integer part of + * the number. For example, the number 123456, with a grouping + * size of 3, is rendered 123,456. + * + * @param groupSize The number of digits used while grouping portions + * of the integer part of a number. + */ + public void setGroupingSize(int groupSize) + { + groupingSize = (byte) groupSize; + } + + /** + * Sets the maximum number of digits allowed in the integer + * portion of a number to the specified value. + * The new value will be the choosen as the minimum between + * newvalue and 309. Any value below zero will be + * replaced by zero. + * + * @param newValue The new maximum integer digits value. + */ + public void setMaximumIntegerDigits(int newValue) + { + newValue = (newValue > 0) ? newValue : 0; + super.setMaximumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); + } + + /** + * Sets the minimum number of digits allowed in the integer + * portion of a number to the specified value. + * The new value will be the choosen as the minimum between + * newvalue and 309. Any value below zero will be + * replaced by zero. + * + * @param newValue The new minimum integer digits value. + */ + public void setMinimumIntegerDigits(int newValue) + { + newValue = (newValue > 0) ? newValue : 0; + super.setMinimumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); + } + + /** + * Sets the maximum number of digits allowed in the fraction + * portion of a number to the specified value. + * The new value will be the choosen as the minimum between + * newvalue and 309. Any value below zero will be + * replaced by zero. + * + * @param newValue The new maximum fraction digits value. + */ + public void setMaximumFractionDigits(int newValue) + { + newValue = (newValue > 0) ? newValue : 0; + super.setMaximumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); + } + + /** + * Sets the minimum number of digits allowed in the fraction + * portion of a number to the specified value. + * The new value will be the choosen as the minimum between + * newvalue and 309. Any value below zero will be + * replaced by zero. + * + * @param newValue The new minimum fraction digits value. + */ + public void setMinimumFractionDigits(int newValue) + { + newValue = (newValue > 0) ? newValue : 0; + super.setMinimumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); + } + + /** + * Sets the multiplier for use in percent and similar formats. + * For example, for percent set the multiplier to 100, for permille, set the + * miltiplier to 1000. + * + * @param newValue the new value for multiplier. + */ + public void setMultiplier(int newValue) + { + multiplier = newValue; + } + + /** + * Sets the negative prefix. + * + * @param newValue The new negative prefix. + */ + public void setNegativePrefix(String newValue) + { + negativePrefix = newValue; + } + + /** + * Sets the negative suffix. + * + * @param newValue The new negative suffix. + */ + public void setNegativeSuffix(String newValue) + { + negativeSuffix = newValue; + } + + /** + * Sets the positive prefix. + * + * @param newValue The new positive prefix. + */ + public void setPositivePrefix(String newValue) + { + positivePrefix = newValue; + } + + /** + * Sets the new positive suffix. + * + * @param newValue The new positive suffix. + */ + public void setPositiveSuffix(String newValue) + { + positiveSuffix = newValue; + } + + /** + * This method returns a string with the formatting pattern being used + * by this object. The string is localized. + * + * @return A localized String with the formatting pattern. + * @see #toPattern() + */ + public String toLocalizedPattern() + { + return computePattern(this.symbols); + } + + /** + * This method returns a string with the formatting pattern being used + * by this object. The string is not localized. + * + * @return A String with the formatting pattern. + * @see #toLocalizedPattern() + */ + public String toPattern() + { + return computePattern(nonLocalizedSymbols); + } + + /* ***** private methods ***** */ + + /** + * This is an shortcut helper method used to test if two given strings are + * equals. + * + * @param s1 The first string to test for equality. + * @param s2 The second string to test for equality. + * @return true if the strings are both null or + * equals. + */ + private boolean equals(String s1, String s2) + { + if (s1 == null || s2 == null) + return s1 == s2; + return s1.equals(s2); + } + + + /* ****** PATTERN ****** */ + + /** + * This helper function creates a string consisting of all the + * characters which can appear in a pattern and must be quoted. + */ + private String patternChars (DecimalFormatSymbols syms) + { + StringBuffer buf = new StringBuffer (); + + buf.append(syms.getDecimalSeparator()); + buf.append(syms.getDigit()); + buf.append(syms.getExponential()); + buf.append(syms.getGroupingSeparator()); + buf.append(syms.getMinusSign()); + buf.append(syms.getPatternSeparator()); + buf.append(syms.getPercent()); + buf.append(syms.getPerMill()); + buf.append(syms.getZeroDigit()); + buf.append('\''); + buf.append('\u00a4'); + + return buf.toString(); + } + + /** + * Quote special characters as defined by patChars in the + * input string. + * + * @param text + * @param patChars + * @return A StringBuffer with special characters quoted. + */ + private StringBuffer quoteFix(String text, String patChars) + { + StringBuffer buf = new StringBuffer(); + + int len = text.length(); + char ch; + for (int index = 0; index < len; ++index) + { + ch = text.charAt(index); + if (patChars.indexOf(ch) != -1) + { + buf.append('\''); + buf.append(ch); + if (ch != '\'') buf.append('\''); + } + else + { + buf.append(ch); + } + } + + return buf; + } + + /** + * Returns the format pattern, localized to follow the given + * symbols. + */ + private String computePattern(DecimalFormatSymbols symbols) + { + StringBuffer mainPattern = new StringBuffer(); + + // We have to at least emit a zero for the minimum number of + // digits. Past that we need hash marks up to the grouping + // separator (and one beyond). + int _groupingSize = groupingUsed ? groupingSize + 1: groupingSize; + int totalDigits = Math.max(minimumIntegerDigits, _groupingSize); + + // if it is not in exponential notiation, + // we always have a # prebended + if (!useExponentialNotation) mainPattern.append(symbols.getDigit()); + + for (int i = 1; i < totalDigits - minimumIntegerDigits; i++) + mainPattern.append(symbols.getDigit()); + + for (int i = totalDigits - minimumIntegerDigits; i < totalDigits; i++) + mainPattern.append(symbols.getZeroDigit()); + + if (groupingUsed) + { + mainPattern.insert(mainPattern.length() - groupingSize, + symbols.getGroupingSeparator()); + } + + // See if we need decimal info. + if (minimumFractionDigits > 0 || maximumFractionDigits > 0 || + decimalSeparatorAlwaysShown) + { + mainPattern.append(symbols.getDecimalSeparator()); + } + + for (int i = 0; i < minimumFractionDigits; ++i) + mainPattern.append(symbols.getZeroDigit()); + + for (int i = minimumFractionDigits; i < maximumFractionDigits; ++i) + mainPattern.append(symbols.getDigit()); + + if (useExponentialNotation) + { + mainPattern.append(symbols.getExponential()); + + for (int i = 0; i < minExponentDigits; ++i) + mainPattern.append(symbols.getZeroDigit()); + + if (minExponentDigits == 0) + mainPattern.append(symbols.getDigit()); + } + + // save the pattern + String pattern = mainPattern.toString(); + + // so far we have the pattern itself, now we need to add + // the positive and the optional negative prefixes and suffixes + String patternChars = patternChars(symbols); + mainPattern.insert(0, quoteFix(positivePrefix, patternChars)); + mainPattern.append(quoteFix(positiveSuffix, patternChars)); + + if (hasNegativePrefix) + { + mainPattern.append(symbols.getPatternSeparator()); + mainPattern.append(quoteFix(negativePrefix, patternChars)); + mainPattern.append(pattern); + mainPattern.append(quoteFix(negativeSuffix, patternChars)); + } + + // finally, return the pattern string + return mainPattern.toString(); + } + + /* ****** FORMAT PARSING ****** */ + + /** + * Scan the input string and define a pattern suitable for use + * with this decimal format. + * + * @param pattern + * @param symbols + */ + private void applyPatternWithSymbols(String pattern, + DecimalFormatSymbols symbols) + { + // The pattern string is described by a BNF diagram. + // we could use a recursive parser to read and prepare + // the string, but this would be too slow and resource + // intensive, while this code is quite critical as it is + // called always when the class is instantiated and every + // time a new pattern is given. + // Our strategy is to divide the string into section as given by + // the BNF diagram, iterating through the string and setting up + // the parameters we need for formatting (which is basicly what + // a descendent recursive parser would do - but without recursion). + // I'm sure that there are smarter methods to do this. + + // Restore default values. Most of these will be overwritten + // but we want to be sure that nothing is left out. + setDefaultValues(); + + int len = pattern.length(); + if (len == 0) + { + // this is another special case... + this.minimumIntegerDigits = 1; + this.maximumIntegerDigits = DEFAULT_INTEGER_DIGITS; + this.minimumFractionDigits = 0; + this.maximumFractionDigits = DEFAULT_FRACTION_DIGITS; + + // FIXME: ...and these values may not be valid in all locales + this.minExponentDigits = 0; + this.showDecimalSeparator = true; + this.groupingUsed = true; + this.groupingSize = 3; + + return; + } + + int start = scanFix(pattern, symbols, 0, true); + if (start < len) start = scanNumberInteger(pattern, symbols, start); + if (start < len) + { + start = scanFractionalPortion(pattern, symbols, start); + } + else + { + // special case, pattern that ends here does not have a fractional + // portion + this.minimumFractionDigits = 0; + this.maximumFractionDigits = 0; + //this.decimalSeparatorAlwaysShown = false; + //this.showDecimalSeparator = false; + } + + // XXX: this fixes a compatibility test with the RI. + // If new uses cases fail, try removing this line first. + //if (!this.hasIntegerPattern && !this.hasFractionalPattern) + // throw new IllegalArgumentException("No valid pattern found!"); + + if (start < len) start = scanExponent(pattern, symbols, start); + if (start < len) start = scanFix(pattern, symbols, start, false); + if (start < len) scanNegativePattern(pattern, symbols, start); + + if (useExponentialNotation && + (maxIntegerDigitsExponent > minimumIntegerDigits) && + (maxIntegerDigitsExponent > 1)) + { + minimumIntegerDigits = 1; + exponentRound = maxIntegerDigitsExponent; + } + + if (useExponentialNotation) + maximumIntegerDigits = maxIntegerDigitsExponent; + + if (!this.hasFractionalPattern && this.showDecimalSeparator == true) + { + this.decimalSeparatorAlwaysShown = true; + } + } + + /** + * Scans for the prefix or suffix portion of the pattern string. + * This method handles the positive subpattern of the pattern string. + * + * @param pattern The pattern string to parse. + * @return The position in the pattern string where parsing ended. + */ + private int scanFix(String pattern, DecimalFormatSymbols sourceSymbols, + int start, boolean prefix) + { + StringBuffer buffer = new StringBuffer(); + + // the number portion is always delimited by one of those + // characters + char decimalSeparator = sourceSymbols.getDecimalSeparator(); + char patternSeparator = sourceSymbols.getPatternSeparator(); + char groupingSeparator = sourceSymbols.getGroupingSeparator(); + char digit = sourceSymbols.getDigit(); + char zero = sourceSymbols.getZeroDigit(); + char minus = sourceSymbols.getMinusSign(); + + // other special characters, cached here to avoid method calls later + char percent = sourceSymbols.getPercent(); + char permille = sourceSymbols.getPerMill(); + + String currencySymbol = this.symbols.getCurrencySymbol(); + + boolean quote = false; + + char ch = pattern.charAt(start); + if (ch == patternSeparator) + { + // negative subpattern + this.hasNegativePrefix = true; + ++start; + return start; + } + + int len = pattern.length(); + int i; + for (i = start; i < len; i++) + { + ch = pattern.charAt(i); + + // we are entering into the negative subpattern + if (!quote && ch == patternSeparator) + { + if (this.hasNegativePrefix) + { + throw new IllegalArgumentException("Invalid pattern found: " + + start); + } + + this.hasNegativePrefix = true; + ++i; + break; + } + + // this means we are inside the number portion + if (!quote && + (ch == minus || ch == digit || ch == zero || + ch == groupingSeparator)) + break; + + if (!quote && ch == decimalSeparator) + { + this.showDecimalSeparator = true; + break; + } + else if (quote && ch != '\'') + { + buffer.append(ch); + continue; + } + + if (ch == '\u00A4') + { + // CURRENCY + currencySymbol = this.symbols.getCurrencySymbol(); + + // if \u00A4 is doubled, we use the international currency symbol + if (i < len && pattern.charAt(i + 1) == '\u00A4') + { + currencySymbol = this.symbols.getInternationalCurrencySymbol(); + i++; + } + + this.useCurrencySeparator = true; + buffer.append(currencySymbol); + } + else if (ch == percent) + { + // PERCENT + this.multiplier = 100; + buffer.append(this.symbols.getPercent()); + } + else if (ch == permille) + { + // PERMILLE + this.multiplier = 1000; + buffer.append(this.symbols.getPerMill()); + } + else if (ch == '\'') + { + // QUOTE + if (i < len && pattern.charAt(i + 1) == '\'') + { + // we need to add ' to the buffer + buffer.append(ch); + i++; + } + else + { + quote = !quote; + continue; + } + } + else + { + buffer.append(ch); + } + } + + if (prefix) + { + this.positivePrefix = buffer.toString(); + this.negativePrefix = minus + "" + positivePrefix; + } + else + { + this.positiveSuffix = buffer.toString(); + } + + return i; + } + + /** + * Scan the given string for number patterns, starting + * from start. + * This method searches the integer part of the pattern only. + * + * @param pattern The pattern string to parse. + * @param start The starting parse position in the string. + * @return The position in the pattern string where parsing ended, + * counted from the beginning of the string (that is, 0). + */ + private int scanNumberInteger(String pattern, DecimalFormatSymbols symbols, + int start) + { + char digit = symbols.getDigit(); + char zero = symbols.getZeroDigit(); + char groupingSeparator = symbols.getGroupingSeparator(); + char decimalSeparator = symbols.getDecimalSeparator(); + char exponent = symbols.getExponential(); + char patternSeparator = symbols.getPatternSeparator(); + + // count the number of zeroes in the pattern + // this number defines the minum digits in the integer portion + int zeros = 0; + + // count the number of digits used in grouping + int _groupingSize = 0; + + this.maxIntegerDigitsExponent = 0; + + boolean intPartTouched = false; + + char ch; + int len = pattern.length(); + int i; + for (i = start; i < len; i++) + { + ch = pattern.charAt(i); + + // break on decimal separator or exponent or pattern separator + if (ch == decimalSeparator || ch == exponent) + break; + + if (this.hasNegativePrefix && ch == patternSeparator) + throw new IllegalArgumentException("Invalid pattern found: " + + start); + + if (ch == digit) + { + // in our implementation we could relax this strict + // requirement, but this is used to keep compatibility with + // the RI + if (zeros > 0) throw new + IllegalArgumentException("digit mark following zero in " + + "positive subpattern, not allowed. Position: " + i); + + _groupingSize++; + intPartTouched = true; + this.maxIntegerDigitsExponent++; + } + else if (ch == zero) + { + zeros++; + _groupingSize++; + this.maxIntegerDigitsExponent++; + } + else if (ch == groupingSeparator) + { + this.groupingSeparatorInPattern = true; + this.groupingUsed = true; + _groupingSize = 0; + } + else + { + // any other character not listed above + // means we are in the suffix portion + break; + } + } + + if (groupingSeparatorInPattern) this.groupingSize = (byte) _groupingSize; + this.minimumIntegerDigits = zeros; + + // XXX: compatibility code with the RI: the number of minimum integer + // digits is at least one when maximumIntegerDigits is more than zero + if (intPartTouched && this.maximumIntegerDigits > 0 && + this.minimumIntegerDigits == 0) + this.minimumIntegerDigits = 1; + + return i; + } + + /** + * Scan the given string for number patterns, starting + * from start. + * This method searches the fractional part of the pattern only. + * + * @param pattern The pattern string to parse. + * @param start The starting parse position in the string. + * @return The position in the pattern string where parsing ended, + * counted from the beginning of the string (that is, 0). + */ + private int scanFractionalPortion(String pattern, + DecimalFormatSymbols symbols, + int start) + { + char digit = symbols.getDigit(); + char zero = symbols.getZeroDigit(); + char groupingSeparator = symbols.getGroupingSeparator(); + char decimalSeparator = symbols.getDecimalSeparator(); + char exponent = symbols.getExponential(); + char patternSeparator = symbols.getPatternSeparator(); + + // first character needs to be '.' otherwise we are not parsing the + // fractional portion + char ch = pattern.charAt(start); + if (ch != decimalSeparator) + { + this.minimumFractionDigits = 0; + this.maximumFractionDigits = 0; + return start; + } + + ++start; + + this.hasFractionalPattern = true; + + this.minimumFractionDigits = 0; + int digits = 0; + + int len = pattern.length(); + int i; + for (i = start; i < len; i++) + { + ch = pattern.charAt(i); + + // we hit the exponential or negative subpattern + if (ch == exponent || ch == patternSeparator) + break; + + // pattern error + if (ch == groupingSeparator || ch == decimalSeparator) throw new + IllegalArgumentException("unexpected character '" + ch + "' " + + "in fractional subpattern. Position: " + i); + + if (ch == digit) + { + digits++; + } + else if (ch == zero) + { + if (digits > 0) throw new + IllegalArgumentException("digit mark following zero in " + + "positive subpattern, not allowed. Position: " + i); + + this.minimumFractionDigits++; + } + else + { + // we are in the suffix section of pattern + break; + } + } + + if (i == start) this.hasFractionalPattern = false; + + this.maximumFractionDigits = this.minimumFractionDigits + digits; + this.showDecimalSeparator = true; + + return i; + } + + /** + * Scan the given string for number patterns, starting + * from start. + * This method searches the expoential part of the pattern only. + * + * @param pattern The pattern string to parse. + * @param start The starting parse position in the string. + * @return The position in the pattern string where parsing ended, + * counted from the beginning of the string (that is, 0). + */ + private int scanExponent(String pattern, DecimalFormatSymbols symbols, + int start) + { + char digit = symbols.getDigit(); + char zero = symbols.getZeroDigit(); + char groupingSeparator = symbols.getGroupingSeparator(); + char decimalSeparator = symbols.getDecimalSeparator(); + char exponent = symbols.getExponential(); + + char ch = pattern.charAt(start); + + if (ch == decimalSeparator) + { + // ignore dots + ++start; + } + + if (ch != exponent) + { + this.useExponentialNotation = false; + return start; + } + + ++start; + + this.minExponentDigits = 0; + + int len = pattern.length(); + int i; + for (i = start; i < len; i++) + { + ch = pattern.charAt(i); + + if (ch == groupingSeparator || ch == decimalSeparator || + ch == digit || ch == exponent) throw new + IllegalArgumentException("unexpected character '" + ch + "' " + + "in exponential subpattern. Position: " + i); + + if (ch == zero) + { + this.minExponentDigits++; + } + else + { + // any character other than zero is an exit point + break; + } + } + + this.useExponentialNotation = true; + + return i; + } + + /** + * Scan the given string for number patterns, starting + * from start. + * This method searches the negative part of the pattern only and scan + * throught the end of the string. + * + * @param pattern The pattern string to parse. + * @param start The starting parse position in the string. + */ + private void scanNegativePattern(String pattern, + DecimalFormatSymbols sourceSymbols, + int start) + { + StringBuffer buffer = new StringBuffer(); + + // the number portion is always delimited by one of those + // characters + char decimalSeparator = sourceSymbols.getDecimalSeparator(); + char patternSeparator = sourceSymbols.getPatternSeparator(); + char groupingSeparator = sourceSymbols.getGroupingSeparator(); + char digit = sourceSymbols.getDigit(); + char zero = sourceSymbols.getZeroDigit(); + char minus = sourceSymbols.getMinusSign(); + + // other special charcaters, cached here to avoid method calls later + char percent = sourceSymbols.getPercent(); + char permille = sourceSymbols.getPerMill(); + + String CURRENCY_SYMBOL = this.symbols.getCurrencySymbol(); + String currencySymbol = CURRENCY_SYMBOL; + + boolean quote = false; + boolean prefixDone = false; + + int len = pattern.length(); + if (len > 0) this.hasNegativePrefix = true; + + char ch = pattern.charAt(start); + if (ch == patternSeparator) + { + // no pattern separator in the negative pattern + if ((start + 1) > len) throw new + IllegalArgumentException("unexpected character '" + ch + "' " + + "in negative subpattern."); + start++; + } + + int i; + for (i = start; i < len; i++) + { + ch = pattern.charAt(i); + + // this means we are inside the number portion + if (!quote && + (ch == digit || ch == zero || ch == decimalSeparator || + ch == patternSeparator || ch == groupingSeparator)) + { + if (!prefixDone) + { + this.negativePrefix = buffer.toString(); + buffer.delete(0, buffer.length()); + prefixDone = true; + } + } + else if (ch == minus) + { + buffer.append(this.symbols.getMinusSign()); + } + else if (quote && ch != '\'') + { + buffer.append(ch); + } + else if (ch == '\u00A4') + { + // CURRENCY + currencySymbol = CURRENCY_SYMBOL; + + // if \u00A4 is doubled, we use the international currency symbol + if ((i + 1) < len && pattern.charAt(i + 1) == '\u00A4') + { + currencySymbol = this.symbols.getInternationalCurrencySymbol(); + i = i + 2; + } + + // FIXME: not sure about this, the specs says that we only have to + // change prefix and suffix, so leave it as commented + // unless in case of bug report/errors + //this.useCurrencySeparator = true; + + buffer.append(currencySymbol); + } + else if (ch == percent) + { + // PERCENT + this.negativePatternMultiplier = 100; + buffer.append(this.symbols.getPercent()); + } + else if (ch == permille) + { + // PERMILLE + this.negativePatternMultiplier = 1000; + buffer.append(this.symbols.getPerMill()); + } + else if (ch == '\'') + { + // QUOTE + if (i < len && pattern.charAt(i + 1) == '\'') + { + // we need to add ' to the buffer + buffer.append(ch); + i++; + } + else + { + quote = !quote; + } + } + else if (ch == patternSeparator) + { + // no pattern separator in the negative pattern + throw new IllegalArgumentException("unexpected character '" + ch + + "' in negative subpattern."); + } + else + { + buffer.append(ch); + } + } + + if (prefixDone) + this.negativeSuffix = buffer.toString(); + else + this.negativePrefix = buffer.toString(); + } + + /* ****** FORMATTING ****** */ + + /** + * Handles the real formatting. + * + * We use a BigDecimal to format the number without precision loss. + * All the rounding is done by methods in BigDecimal. + * The isLong parameter is used to determine if we are + * formatting a long or BigInteger. In this case, we avoid to format + * the fractional part of the number (unless specified otherwise in the + * format string) that would consist only of a 0 digit. + * + * @param number A BigDecimal representation fo the input number. + * @param dest The destination buffer. + * @param isLong A boolean that indicates if this BigDecimal is a real + * decimal or an integer. + * @param fieldPos Use to keep track of the formatting position. + */ + private void formatInternal(BigDecimal number, boolean isLong, + StringBuffer dest, FieldPosition fieldPos) + { + // The specs says that fieldPos should not be null, and that we + // should throw a NPE, but it seems that in few classes that + // reference this one, fieldPos is set to null. + // This is even defined in the javadoc, see for example MessageFormat. + // I think the best here is to check for fieldPos and build one if it is + // null. If it cause harms or regressions, just remove this line and + // fix the classes in the point of call, insted. + if (fieldPos == null) fieldPos = new FieldPosition(0); + + int _multiplier = this.multiplier; + + // used to track attribute starting position for each attribute + int attributeStart = -1; + + // now get the sign this will be used by the special case Inifinity + // and by the normal cases. + boolean isNegative = (number.signum() < 0) ? true : false; + if (isNegative) + { + attributeStart = dest.length(); + + // append the negative prefix to the string + dest.append(negativePrefix); + + // once got the negative prefix, we can use + // the absolute value. + number = number.abs(); + + _multiplier = negativePatternMultiplier; + + addAttribute(Field.SIGN, attributeStart, dest.length()); + } + else + { + // not negative, use the positive prefix + dest.append(positivePrefix); + } + + // these are used ot update the field position + int beginIndexInt = dest.length(); + int endIndexInt = 0; + int beginIndexFract = 0; + int endIndexFract = 0; + + // compute the multiplier to use with percent and similar + number = number.multiply(new BigDecimal(_multiplier)); + + // XXX: special case, not sure if it belongs here or if it is + // correct at all. There may be other special cases as well + // these should be handled in the format string parser. + if (this.maximumIntegerDigits == 0 && this.maximumFractionDigits == 0) + { + number = BigDecimal.ZERO; + this.maximumIntegerDigits = 1; + this.minimumIntegerDigits = 1; + } + + // get the absolute number + number = number.abs(); + + // the scaling to use while formatting this number + int scale = this.maximumFractionDigits; + + // this is the actual number we will use + // it is corrected later on to handle exponential + // notation, if needed + long exponent = 0; + + // are we using exponential notation? + if (this.useExponentialNotation) + { + exponent = getExponent(number); + number = number.movePointLeft((int) exponent); + + // FIXME: this makes the test ##.###E0 to pass, + // but all all the other tests to fail... + // this should be really something like + // min + max - what is already shown... + //scale = this.minimumIntegerDigits + this.maximumFractionDigits; + } + + // round the number to the nearest neighbor + number = number.setScale(scale, BigDecimal.ROUND_HALF_EVEN); + + // now get the integer and fractional part of the string + // that will be processed later + String plain = number.toPlainString(); + + String intPart = null; + String fractPart = null; + + // remove - from the integer part, this is needed as + // the Narrowing Primitive Conversions algorithm used may loose + // information about the sign + int minusIndex = plain.lastIndexOf('-', 0); + if (minusIndex > -1) plain = plain.substring(minusIndex + 1); + + // strip the decimal portion + int dot = plain.indexOf('.'); + if (dot > -1) + { + intPart = plain.substring(0, dot); + dot++; + + if (useExponentialNotation) + fractPart = plain.substring(dot, dot + scale); + else + fractPart = plain.substring(dot); + } + else + { + intPart = plain; + } + + // used in various places later on + int intPartLen = intPart.length(); + endIndexInt = intPartLen; + + // if the number of digits in our intPart is not greater than the + // minimum we have to display, we append zero to the destination + // buffer before adding the integer portion of the number. + int zeroes = minimumIntegerDigits - intPartLen; + if (zeroes > 0) + { + attributeStart = Math.max(dest.length() - 1, 0); + appendZero(dest, zeroes, minimumIntegerDigits); + } + + if (this.useExponentialNotation) + { + // For exponential numbers, the significant in mantissa are + // the sum of the minimum integer and maximum fraction + // digits, and does not take into account the maximun integer + // digits to display. + + if (attributeStart < 0) + attributeStart = Math.max(dest.length() - 1, 0); + appendDigit(intPart, dest, this.groupingUsed); + } + else + { + // non exponential notation + intPartLen = intPart.length(); + int canary = Math.min(intPartLen, this.maximumIntegerDigits); + + // remove from the string the number in excess + // use only latest digits + intPart = intPart.substring(intPartLen - canary); + endIndexInt = intPart.length() + 1; + + // append it + if (maximumIntegerDigits > 0 && + !(this.minimumIntegerDigits == 0 && + intPart.compareTo(String.valueOf(symbols.getZeroDigit())) == 0)) + { + if (attributeStart < 0) + attributeStart = Math.max(dest.length() - 1, 0); + appendDigit(intPart, dest, this.groupingUsed); + } + } + + // add the INTEGER attribute + addAttribute(Field.INTEGER, attributeStart, dest.length()); + + // ...update field position, if needed, and return... + if ((fieldPos.getField() == INTEGER_FIELD || + fieldPos.getFieldAttribute() == NumberFormat.Field.INTEGER)) + { + fieldPos.setBeginIndex(beginIndexInt); + fieldPos.setEndIndex(endIndexInt); + } + + handleFractionalPart(dest, fractPart, fieldPos, isLong); + + // and the exponent + if (this.useExponentialNotation) + { + attributeStart = dest.length(); + + dest.append(symbols.getExponential()); + + addAttribute(Field.EXPONENT_SYMBOL, attributeStart, dest.length()); + attributeStart = dest.length(); + + if (exponent < 0) + { + dest.append(symbols.getMinusSign()); + exponent = -exponent; + + addAttribute(Field.EXPONENT_SIGN, attributeStart, dest.length()); + } + + attributeStart = dest.length(); + + String exponentString = String.valueOf(exponent); + int exponentLength = exponentString.length(); + + for (int i = 0; i < minExponentDigits - exponentLength; i++) + dest.append(symbols.getZeroDigit()); + + for (int i = 0; i < exponentLength; ++i) + dest.append(exponentString.charAt(i)); + + addAttribute(Field.EXPONENT, attributeStart, dest.length()); + } + + // now include the suffixes... + if (isNegative) + { + dest.append(negativeSuffix); + } + else + { + dest.append(positiveSuffix); + } + } + + /** + * Add to the input buffer the result of formatting the fractional + * portion of the number. + * + * @param dest + * @param fractPart + * @param fieldPos + * @param isLong + */ + private void handleFractionalPart(StringBuffer dest, String fractPart, + FieldPosition fieldPos, boolean isLong) + { + int dotStart = 0; + int dotEnd = 0; + boolean addDecimal = false; + + if (this.decimalSeparatorAlwaysShown || + ((!isLong || this.useExponentialNotation) && + this.showDecimalSeparator && this.maximumFractionDigits > 0) || + this.minimumFractionDigits > 0) + { + dotStart = dest.length(); + + if (this.useCurrencySeparator) + dest.append(symbols.getMonetaryDecimalSeparator()); + else + dest.append(symbols.getDecimalSeparator()); + + dotEnd = dest.length(); + addDecimal = true; + } + + // now handle the fraction portion of the number + int fractStart = 0; + int fractEnd = 0; + boolean addFractional = false; + + if ((!isLong || this.useExponentialNotation) + && this.maximumFractionDigits > 0 + || this.minimumFractionDigits > 0) + { + fractStart = dest.length(); + fractEnd = fractStart; + + int digits = this.minimumFractionDigits; + + if (this.useExponentialNotation) + { + digits = (this.minimumIntegerDigits + this.minimumFractionDigits) + - dest.length(); + if (digits < 0) digits = 0; + } + + fractPart = adjustTrailingZeros(fractPart, digits); + + // FIXME: this code must be improved + // now check if the factional part is just 0, in this case + // we need to remove the '.' unless requested + boolean allZeros = true; + char fracts[] = fractPart.toCharArray(); + for (int i = 0; i < fracts.length; i++) + { + if (fracts[i] != '0') + allZeros = false; + } + + if (!allZeros || (minimumFractionDigits > 0)) + { + appendDigit(fractPart, dest, false); + fractEnd = dest.length(); + + addDecimal = true; + addFractional = true; + } + else if (!this.decimalSeparatorAlwaysShown) + { + dest.deleteCharAt(dest.length() - 1); + addDecimal = false; + } + else + { + fractEnd = dest.length(); + addFractional = true; + } + } + + if (addDecimal) + addAttribute(Field.DECIMAL_SEPARATOR, dotStart, dotEnd); + + if (addFractional) + addAttribute(Field.FRACTION, fractStart, fractEnd); + + if ((fieldPos.getField() == FRACTION_FIELD || + fieldPos.getFieldAttribute() == NumberFormat.Field.FRACTION)) + { + fieldPos.setBeginIndex(fractStart); + fieldPos.setEndIndex(fractEnd); + } + } + + /** + * Append to destthe give number of zeros. + * Grouping is added if needed. + * The integer totalDigitCount defines the total number of digits + * of the number to which we are appending zeroes. + */ + private void appendZero(StringBuffer dest, int zeroes, int totalDigitCount) + { + char ch = symbols.getZeroDigit(); + char gSeparator = symbols.getGroupingSeparator(); + + int i = 0; + int gPos = totalDigitCount; + for (i = 0; i < zeroes; i++, gPos--) + { + if (this.groupingSeparatorInPattern && + (this.groupingUsed && this.groupingSize != 0) && + (gPos % groupingSize == 0 && i > 0)) + dest.append(gSeparator); + + dest.append(ch); + } + + // special case, that requires adding an additional separator + if (this.groupingSeparatorInPattern && + (this.groupingUsed && this.groupingSize != 0) && + (gPos % groupingSize == 0)) + dest.append(gSeparator); + } + + /** + * Append src to dest. + * + * Grouping is added if groupingUsed is set + * to true. + */ + private void appendDigit(String src, StringBuffer dest, + boolean groupingUsed) + { + int zero = symbols.getZeroDigit() - '0'; + + int ch; + char gSeparator = symbols.getGroupingSeparator(); + + int len = src.length(); + for (int i = 0, gPos = len; i < len; i++, gPos--) + { + ch = src.charAt(i); + if (groupingUsed && this.groupingSize != 0 && + gPos % groupingSize == 0 && i > 0) + dest.append(gSeparator); + + dest.append((char) (zero + ch)); + } + } + + /** + * Calculate the exponent to use if eponential notation is used. + * The exponent is calculated as a power of ten. + * number should be positive, if is zero, or less than zero, + * zero is returned. + */ + private long getExponent(BigDecimal number) + { + long exponent = 0; + + if (number.signum() > 0) + { + double _number = number.doubleValue(); + exponent = (long) Math.floor (Math.log10(_number)); + + // get the right value for the exponent + exponent = exponent - (exponent % this.exponentRound); + + // if the minimumIntegerDigits is more than zero + // we display minimumIntegerDigits of digits. + // so, for example, if minimumIntegerDigits == 2 + // and the actual number is 0.123 it will be + // formatted as 12.3E-2 + // this means that the exponent have to be shifted + // to the correct value. + if (minimumIntegerDigits > 0) + exponent -= minimumIntegerDigits - 1; + } + + return exponent; + } + + /** + * Remove contiguos zeros from the end of the src string, + * if src contains more than minimumDigits digits. + * if src contains less that minimumDigits, + * then append zeros to the string. + * + * Only the first block of zero digits is removed from the string + * and only if they fall in the src.length - minimumDigits + * portion of the string. + * + * @param src The string with the correct number of zeros. + */ + private String adjustTrailingZeros(String src, int minimumDigits) + { + int len = src.length(); + String result; + + // remove all trailing zero + if (len > minimumDigits) + { + int zeros = 0; + for (int i = len - 1; i > minimumDigits; i--) + { + if (src.charAt(i) == '0') + ++zeros; + else + break; + } + result = src.substring(0, len - zeros); + } + else + { + char zero = symbols.getZeroDigit(); + StringBuffer _result = new StringBuffer(src); + for (int i = len; i < minimumDigits; i++) + { + _result.append(zero); + } + result = _result.toString(); + } + + return result; + } + + /** + * Adds an attribute to the attributes list. + * + * @param field + * @param begin + * @param end + */ + private void addAttribute(Field field, int begin, int end) + { + /* + * This method and its implementation derives directly from the + * ICU4J (http://icu.sourceforge.net/) library, distributed under MIT/X. + */ + + FieldPosition pos = new FieldPosition(field); + pos.setBeginIndex(begin); + pos.setEndIndex(end); + attributes.add(pos); + } + + /** + * Sets the default values for the various properties in this DecimaFormat. + */ + private void setDefaultValues() + { + // Maybe we should add these values to the message bundle and take + // the most appropriate for them for any locale. + // Anyway, these seem to be good values for a default in most languages. + // Note that most of these will change based on the format string. + + this.negativePrefix = String.valueOf(symbols.getMinusSign()); + this.negativeSuffix = ""; + this.positivePrefix = ""; + this.positiveSuffix = ""; + + this.multiplier = 1; + this.negativePatternMultiplier = 1; + this.exponentRound = 1; + + this.hasNegativePrefix = false; + + this.minimumIntegerDigits = 1; + this.maximumIntegerDigits = DEFAULT_INTEGER_DIGITS; + this.minimumFractionDigits = 0; + this.maximumFractionDigits = DEFAULT_FRACTION_DIGITS; + this.minExponentDigits = 0; + + this.groupingSize = 0; + + this.decimalSeparatorAlwaysShown = false; + this.showDecimalSeparator = false; + this.useExponentialNotation = false; + this.groupingUsed = false; + this.groupingSeparatorInPattern = false; + + this.useCurrencySeparator = false; + + this.hasFractionalPattern = false; + } +} diff --git a/libjava/classpath/java/text/DecimalFormatSymbols.java b/libjava/classpath/java/text/DecimalFormatSymbols.java index a8735d36171..29d2d7ed337 100644 --- a/libjava/classpath/java/text/DecimalFormatSymbols.java +++ b/libjava/classpath/java/text/DecimalFormatSymbols.java @@ -63,13 +63,13 @@ import java.util.ResourceBundle; * API docs for JDK 1.2 from http://www.javasoft.com. * Status: Believed complete and correct to 1.2. */ -public final class DecimalFormatSymbols implements Cloneable, Serializable +public class DecimalFormatSymbols implements Cloneable, Serializable { public Object clone () { try { - return super.clone (); + return super.clone(); } catch(CloneNotSupportedException e) { diff --git a/libjava/classpath/java/text/MessageFormat.java b/libjava/classpath/java/text/MessageFormat.java index f59cfd5ca3e..3d428ac7e51 100644 --- a/libjava/classpath/java/text/MessageFormat.java +++ b/libjava/classpath/java/text/MessageFormat.java @@ -396,7 +396,7 @@ public class MessageFormat extends Format * @param pattern The pattern used when formatting. * @param arguments The array containing the objects to be formatted. */ - public static String format (String pattern, Object arguments[]) + public static String format (String pattern, Object... arguments) { MessageFormat mf = new MessageFormat (pattern); StringBuffer sb = new StringBuffer (); diff --git a/libjava/classpath/java/text/NumberFormat.java b/libjava/classpath/java/text/NumberFormat.java index a42e9b3d9c8..1bef97ffea9 100644 --- a/libjava/classpath/java/text/NumberFormat.java +++ b/libjava/classpath/java/text/NumberFormat.java @@ -218,18 +218,21 @@ public abstract class NumberFormat extends Format implements Cloneable public final String format (long number) { StringBuffer sbuf = new StringBuffer(50); - format (number, sbuf, null); + format (number, sbuf, new FieldPosition(0)); return sbuf.toString(); } - public final StringBuffer format (Object obj, StringBuffer sbuf, - FieldPosition pos) + /** + * @specnote this method was final in releases before 1.5 + */ + public StringBuffer format (Object obj, StringBuffer sbuf, + FieldPosition pos) { if (obj instanceof Number) return format(((Number) obj).doubleValue(), sbuf, pos); - else - throw new IllegalArgumentException - ("Cannot format given Object as a Number"); + + throw new + IllegalArgumentException("Cannot format given Object as a Number"); } /** @@ -351,7 +354,7 @@ public abstract class NumberFormat extends Format implements Cloneable { NumberFormat format; - format = computeInstance (loc, "currencyFormat", "$#,##0.00;($#,##0.00)"); + format = computeInstance (loc, "currencyFormat", "\u00A4#,##0.00;(\u00A4#,##0.00)"); format.setMaximumFractionDigits(format.getCurrency().getDefaultFractionDigits()); return format; } @@ -720,7 +723,9 @@ public abstract class NumberFormat extends Format implements Cloneable public final String format (double number) { StringBuffer sbuf = new StringBuffer(50); - format (number, sbuf, null); + FieldPosition position = new FieldPosition(0); + + format (number, sbuf, position); return sbuf.toString(); } diff --git a/libjava/classpath/java/text/SimpleDateFormat.java b/libjava/classpath/java/text/SimpleDateFormat.java index 2825c7bed24..1e195256990 100644 --- a/libjava/classpath/java/text/SimpleDateFormat.java +++ b/libjava/classpath/java/text/SimpleDateFormat.java @@ -917,7 +917,25 @@ public class SimpleDateFormat extends DateFormat || ((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z'))) { - if (! expect (dateStr, pos, ch)) + if (quote_start == -1 && ch == ' ') + { + // A single unquoted space in the pattern may match + // any number of spaces in the input. + int index = pos.getIndex(); + int save = index; + while (index < dateStr.length() + && Character.isWhitespace(dateStr.charAt(index))) + ++index; + if (index > save) + pos.setIndex(index); + else + { + // Didn't see any whitespace. + pos.setErrorIndex(index); + return null; + } + } + else if (! expect (dateStr, pos, ch)) return null; continue; } diff --git a/libjava/classpath/java/util/.cvsignore b/libjava/classpath/java/util/.cvsignore new file mode 100644 index 00000000000..d41ae8d8147 --- /dev/null +++ b/libjava/classpath/java/util/.cvsignore @@ -0,0 +1 @@ +LocaleData.java diff --git a/libjava/classpath/java/util/AbstractCollection.java b/libjava/classpath/java/util/AbstractCollection.java index 3ae98e07311..ef74342237a 100644 --- a/libjava/classpath/java/util/AbstractCollection.java +++ b/libjava/classpath/java/util/AbstractCollection.java @@ -1,5 +1,5 @@ /* AbstractCollection.java -- Abstract implementation of most of Collection - Copyright (C) 1998, 2000, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -62,13 +62,16 @@ import java.lang.reflect.Array; * @author Original author unknown * @author Bryce McKinlay * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see Collection * @see AbstractSet * @see AbstractList * @since 1.2 * @status updated to 1.4 */ -public abstract class AbstractCollection implements Collection +public abstract class AbstractCollection + implements Collection, Iterable { /** * The main constructor, for use by subclasses. @@ -84,7 +87,7 @@ public abstract class AbstractCollection implements Collection * * @return an iterator */ - public abstract Iterator iterator(); + public abstract Iterator iterator(); /** * Return the number of elements in this collection. If there are more than @@ -110,7 +113,7 @@ public abstract class AbstractCollection implements Collection * @throws IllegalArgumentException if some aspect of the object prevents * it from being added */ - public boolean add(Object o) + public boolean add(E o) { throw new UnsupportedOperationException(); } @@ -138,9 +141,9 @@ public abstract class AbstractCollection implements Collection * collection doesn't allow null values. * @see #add(Object) */ - public boolean addAll(Collection c) + public boolean addAll(Collection c) { - Iterator itr = c.iterator(); + Iterator itr = c.iterator(); boolean modified = false; int pos = c.size(); while (--pos >= 0) @@ -162,7 +165,7 @@ public abstract class AbstractCollection implements Collection */ public void clear() { - Iterator itr = iterator(); + Iterator itr = iterator(); int pos = size(); while (--pos >= 0) { @@ -184,7 +187,7 @@ public abstract class AbstractCollection implements Collection */ public boolean contains(Object o) { - Iterator itr = iterator(); + Iterator itr = iterator(); int pos = size(); while (--pos >= 0) if (equals(o, itr.next())) @@ -204,9 +207,9 @@ public abstract class AbstractCollection implements Collection * @throws NullPointerException if the given collection is null * @see #contains(Object) */ - public boolean containsAll(Collection c) + public boolean containsAll(Collection c) { - Iterator itr = c.iterator(); + Iterator itr = c.iterator(); int pos = c.size(); while (--pos >= 0) if (!contains(itr.next())) @@ -247,7 +250,7 @@ public abstract class AbstractCollection implements Collection */ public boolean remove(Object o) { - Iterator itr = iterator(); + Iterator itr = iterator(); int pos = size(); while (--pos >= 0) if (equals(o, itr.next())) @@ -273,7 +276,7 @@ public abstract class AbstractCollection implements Collection * @throws NullPointerException if the collection, c, is null. * @see Iterator#remove() */ - public boolean removeAll(Collection c) + public boolean removeAll(Collection c) { return removeAllInternal(c); } @@ -295,9 +298,9 @@ public abstract class AbstractCollection implements Collection * @see Iterator#remove() */ // Package visible for use throughout java.util. - boolean removeAllInternal(Collection c) + boolean removeAllInternal(Collection c) { - Iterator itr = iterator(); + Iterator itr = iterator(); boolean modified = false; int pos = size(); while (--pos >= 0) @@ -324,7 +327,7 @@ public abstract class AbstractCollection implements Collection * @throws NullPointerException if the collection, c, is null. * @see Iterator#remove() */ - public boolean retainAll(Collection c) + public boolean retainAll(Collection c) { return retainAllInternal(c); } @@ -347,9 +350,9 @@ public abstract class AbstractCollection implements Collection * @see Iterator#remove() */ // Package visible for use throughout java.util. - boolean retainAllInternal(Collection c) + boolean retainAllInternal(Collection c) { - Iterator itr = iterator(); + Iterator itr = iterator(); boolean modified = false; int pos = size(); while (--pos >= 0) @@ -372,7 +375,7 @@ public abstract class AbstractCollection implements Collection */ public Object[] toArray() { - Iterator itr = iterator(); + Iterator itr = iterator(); int size = size(); Object[] a = new Object[size]; for (int pos = 0; pos < size; pos++) @@ -402,19 +405,18 @@ public abstract class AbstractCollection implements Collection * @throws ArrayStoreException if the type of the array precludes holding * one of the elements of the Collection */ - public Object[] toArray(Object[] a) + public T[] toArray(T[] a) { int size = size(); if (a.length < size) - a = (Object[]) Array.newInstance(a.getClass().getComponentType(), + a = (T[]) Array.newInstance(a.getClass().getComponentType(), size); else if (a.length > size) a[size] = null; - Iterator itr = iterator(); + Iterator itr = iterator(); for (int pos = 0; pos < size; pos++) - a[pos] = itr.next(); - + a[pos] = (T) (itr.next()); return a; } diff --git a/libjava/classpath/java/util/AbstractList.java b/libjava/classpath/java/util/AbstractList.java index 114712eeeaf..c47b59b21ad 100644 --- a/libjava/classpath/java/util/AbstractList.java +++ b/libjava/classpath/java/util/AbstractList.java @@ -1,5 +1,6 @@ /* AbstractList.java -- Abstract implementation of most of List - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -68,7 +69,9 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public abstract class AbstractList extends AbstractCollection implements List +public abstract class AbstractList + extends AbstractCollection + implements List { /** * A count of the number of structural modifications that have been made to @@ -101,7 +104,7 @@ public abstract class AbstractList extends AbstractCollection implements List * @return the element at that position * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public abstract Object get(int index); + public abstract E get(int index); /** * Insert an element into the list at a given position (optional operation). @@ -123,7 +126,7 @@ public abstract class AbstractList extends AbstractCollection implements List * some other reason * @see #modCount */ - public void add(int index, Object o) + public void add(int index, E o) { throw new UnsupportedOperationException(); } @@ -144,7 +147,7 @@ public abstract class AbstractList extends AbstractCollection implements List * some other reason * @see #add(int, Object) */ - public boolean add(Object o) + public boolean add(E o) { add(size(), o); return true; @@ -173,9 +176,9 @@ public abstract class AbstractList extends AbstractCollection implements List * @throws NullPointerException if the specified collection is null * @see #add(int, Object) */ - public boolean addAll(int index, Collection c) + public boolean addAll(int index, Collection c) { - Iterator itr = c.iterator(); + Iterator itr = c.iterator(); int size = c.size(); for (int pos = size; pos > 0; pos--) add(index++, itr.next()); @@ -227,7 +230,7 @@ public abstract class AbstractList extends AbstractCollection implements List if (size != ((List) o).size()) return false; - Iterator itr1 = iterator(); + Iterator itr1 = iterator(); Iterator itr2 = ((List) o).iterator(); while (--size >= 0) @@ -259,7 +262,7 @@ while (i.hasNext()) public int hashCode() { int hashCode = 1; - Iterator itr = iterator(); + Iterator itr = iterator(); int pos = size(); while (--pos >= 0) hashCode = 31 * hashCode + hashCode(itr.next()); @@ -277,7 +280,7 @@ while (i.hasNext()) */ public int indexOf(Object o) { - ListIterator itr = listIterator(); + ListIterator itr = listIterator(); int size = size(); for (int pos = 0; pos < size; pos++) if (equals(o, itr.next())) @@ -297,10 +300,10 @@ while (i.hasNext()) * @return an Iterator over the elements of this list, in order * @see #modCount */ - public Iterator iterator() + public Iterator iterator() { // Bah, Sun's implementation forbids using listIterator(0). - return new Iterator() + return new Iterator() { private int pos = 0; private int size = size(); @@ -342,7 +345,7 @@ while (i.hasNext()) * @throws ConcurrentModificationException if the * list has been modified elsewhere. */ - public Object next() + public E next() { checkMod(); if (pos == size) @@ -388,7 +391,7 @@ while (i.hasNext()) public int lastIndexOf(Object o) { int pos = size(); - ListIterator itr = listIterator(pos); + ListIterator itr = listIterator(pos); while (--pos >= 0) if (equals(o, itr.previous())) return pos; @@ -402,7 +405,7 @@ while (i.hasNext()) * @return a ListIterator over the elements of this list, in order, starting * at the beginning */ - public ListIterator listIterator() + public ListIterator listIterator() { return listIterator(0); } @@ -425,13 +428,13 @@ while (i.hasNext()) * @throws IndexOutOfBoundsException if index < 0 || index > size() * @see #modCount */ - public ListIterator listIterator(final int index) + public ListIterator listIterator(final int index) { if (index < 0 || index > size()) throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size()); - return new ListIterator() + return new ListIterator() { private int knownMod = modCount; private int position = index; @@ -485,7 +488,7 @@ while (i.hasNext()) * @throws ConcurrentModificationException if the * list has been modified elsewhere. */ - public Object next() + public E next() { checkMod(); if (position == size) @@ -503,7 +506,7 @@ while (i.hasNext()) * @throws ConcurrentModificationException if the * list has been modified elsewhere. */ - public Object previous() + public E previous() { checkMod(); if (position == 0) @@ -577,7 +580,7 @@ while (i.hasNext()) * @throws ConcurrentModificationException if the list * has been modified elsewhere. */ - public void set(Object o) + public void set(E o) { checkMod(); if (lastReturned < 0) @@ -599,7 +602,7 @@ while (i.hasNext()) * @throws ConcurrentModificationException if the list * has been modified elsewhere. */ - public void add(Object o) + public void add(E o) { checkMod(); AbstractList.this.add(position++, o); @@ -624,7 +627,7 @@ while (i.hasNext()) * @throws IndexOutOfBoundsException if index < 0 || index >= size() * @see #modCount */ - public Object remove(int index) + public E remove(int index) { throw new UnsupportedOperationException(); } @@ -650,7 +653,7 @@ while (i.hasNext()) */ protected void removeRange(int fromIndex, int toIndex) { - ListIterator itr = listIterator(fromIndex); + ListIterator itr = listIterator(fromIndex); for (int index = fromIndex; index < toIndex; index++) { itr.next(); @@ -673,7 +676,7 @@ while (i.hasNext()) * @throws IllegalArgumentException if o cannot be added to this list for * some other reason */ - public Object set(int index, Object o) + public E set(int index, E o) { throw new UnsupportedOperationException(); } @@ -722,7 +725,7 @@ while (i.hasNext()) * @see ConcurrentModificationException * @see RandomAccess */ - public List subList(int fromIndex, int toIndex) + public List subList(int fromIndex, int toIndex) { // This follows the specification of AbstractList, but is inconsistent // with the one in List. Don't you love Sun's inconsistencies? @@ -732,8 +735,8 @@ while (i.hasNext()) throw new IndexOutOfBoundsException(); if (this instanceof RandomAccess) - return new RandomAccessSubList(this, fromIndex, toIndex); - return new SubList(this, fromIndex, toIndex); + return new RandomAccessSubList(this, fromIndex, toIndex); + return new SubList(this, fromIndex, toIndex); } /** @@ -744,16 +747,16 @@ while (i.hasNext()) * @author Original author unknown * @author Eric Blake (ebb9@email.byu.edu) */ - private static class SubList extends AbstractList + private static class SubList extends AbstractList { // Package visible, for use by iterator. /** The original list. */ - final AbstractList backingList; + final AbstractList backingList; /** The index of the first element of the sublist. */ final int offset; /** The size of the sublist. */ int size; - + /** * Construct the sublist. * @@ -761,14 +764,14 @@ while (i.hasNext()) * @param fromIndex the lower bound, inclusive * @param toIndex the upper bound, exclusive */ - SubList(AbstractList backing, int fromIndex, int toIndex) + SubList(AbstractList backing, int fromIndex, int toIndex) { backingList = backing; modCount = backing.modCount; offset = fromIndex; size = toIndex - fromIndex; } - + /** * This method checks the two modCount fields to ensure that there has * not been a concurrent modification, returning if all is okay. @@ -780,9 +783,9 @@ while (i.hasNext()) void checkMod() { if (modCount != backingList.modCount) - throw new ConcurrentModificationException(); + throw new ConcurrentModificationException(); } - + /** * This method checks that a value is between 0 and size (inclusive). If * it is not, an exception is thrown. @@ -794,10 +797,10 @@ while (i.hasNext()) private void checkBoundsInclusive(int index) { if (index < 0 || index > size) - throw new IndexOutOfBoundsException("Index: " + index + ", Size:" - + size); + throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + + size); } - + /** * This method checks that a value is between 0 (inclusive) and size * (exclusive). If it is not, an exception is thrown. @@ -809,10 +812,10 @@ while (i.hasNext()) private void checkBoundsExclusive(int index) { if (index < 0 || index >= size) - throw new IndexOutOfBoundsException("Index: " + index + ", Size:" - + size); + throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + + size); } - + /** * Specified by AbstractList.subList to return the private field size. * @@ -825,7 +828,7 @@ while (i.hasNext()) checkMod(); return size; } - + /** * Specified by AbstractList.subList to delegate to the backing list. * @@ -842,13 +845,13 @@ while (i.hasNext()) * @throws IllegalArgumentException if o cannot be added to the backing list * for some other reason */ - public Object set(int index, Object o) + public E set(int index, E o) { checkMod(); checkBoundsExclusive(index); return backingList.set(index + offset, o); } - + /** * Specified by AbstractList.subList to delegate to the backing list. * @@ -858,13 +861,13 @@ while (i.hasNext()) * modified externally to this sublist * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object get(int index) + public E get(int index) { checkMod(); checkBoundsExclusive(index); return backingList.get(index + offset); } - + /** * Specified by AbstractList.subList to delegate to the backing list. * @@ -880,7 +883,7 @@ while (i.hasNext()) * @throws IllegalArgumentException if o cannot be added to the backing * list for some other reason. */ - public void add(int index, Object o) + public void add(int index, E o) { checkMod(); checkBoundsInclusive(index); @@ -888,7 +891,7 @@ while (i.hasNext()) size++; modCount = backingList.modCount; } - + /** * Specified by AbstractList.subList to delegate to the backing list. * @@ -900,16 +903,16 @@ while (i.hasNext()) * @throws UnsupportedOperationException if the backing list does not * support the remove operation */ - public Object remove(int index) + public E remove(int index) { checkMod(); checkBoundsExclusive(index); - Object o = backingList.remove(index + offset); + E o = backingList.remove(index + offset); size--; modCount = backingList.modCount; return o; } - + /** * Specified by AbstractList.subList to delegate to the backing list. * This does no bounds checking, as it assumes it will only be called @@ -925,12 +928,12 @@ while (i.hasNext()) protected void removeRange(int fromIndex, int toIndex) { checkMod(); - + backingList.removeRange(offset + fromIndex, offset + toIndex); size -= toIndex - fromIndex; modCount = backingList.modCount; } - + /** * Specified by AbstractList.subList to delegate to the backing list. * @@ -948,7 +951,7 @@ while (i.hasNext()) * to this list for some other reason * @throws NullPointerException if the specified collection is null */ - public boolean addAll(int index, Collection c) + public boolean addAll(int index, Collection c) { checkMod(); checkBoundsInclusive(index); @@ -958,7 +961,7 @@ while (i.hasNext()) modCount = backingList.modCount; return result; } - + /** * Specified by AbstractList.subList to return addAll(size, c). * @@ -974,21 +977,21 @@ while (i.hasNext()) * to this list for some other reason * @throws NullPointerException if the specified collection is null */ - public boolean addAll(Collection c) + public boolean addAll(Collection c) { return addAll(size, c); } - + /** * Specified by AbstractList.subList to return listIterator(). * * @return an iterator over the sublist */ - public Iterator iterator() + public Iterator iterator() { return listIterator(); } - + /** * Specified by AbstractList.subList to return a wrapper around the * backing list's iterator. @@ -999,179 +1002,180 @@ while (i.hasNext()) * modified externally to this sublist * @throws IndexOutOfBoundsException if the value is out of range */ - public ListIterator listIterator(final int index) + public ListIterator listIterator(final int index) { checkMod(); checkBoundsInclusive(index); - - return new ListIterator() - { - private final ListIterator i = backingList.listIterator(index + offset); - private int position = index; - - /** - * Tests to see if there are any more objects to - * return. - * - * @return True if the end of the list has not yet been - * reached. - */ - public boolean hasNext() - { - return position < size; - } - - /** - * Tests to see if there are objects prior to the - * current position in the list. - * - * @return True if objects exist prior to the current - * position of the iterator. - */ - public boolean hasPrevious() - { - return position > 0; - } - - /** - * Retrieves the next object from the list. - * - * @return The next object. - * @throws NoSuchElementException if there are no - * more objects to retrieve. - * @throws ConcurrentModificationException if the - * list has been modified elsewhere. - */ - public Object next() - { - if (position == size) - throw new NoSuchElementException(); - position++; - return i.next(); - } - - /** - * Retrieves the previous object from the list. - * - * @return The next object. - * @throws NoSuchElementException if there are no - * previous objects to retrieve. - * @throws ConcurrentModificationException if the - * list has been modified elsewhere. - */ - public Object previous() - { - if (position == 0) - throw new NoSuchElementException(); - position--; - return i.previous(); - } - - /** - * Returns the index of the next element in the - * list, which will be retrieved by next() - * - * @return The index of the next element. - */ - public int nextIndex() - { - return i.nextIndex() - offset; - } - - /** - * Returns the index of the previous element in the - * list, which will be retrieved by previous() - * - * @return The index of the previous element. - */ - public int previousIndex() - { - return i.previousIndex() - offset; - } - - /** - * Removes the last object retrieved by next() - * from the list, if the list supports object removal. - * - * @throws IllegalStateException if the iterator is positioned - * before the start of the list or the last object has already - * been removed. - * @throws UnsupportedOperationException if the list does - * not support removing elements. - */ - public void remove() - { - i.remove(); - size--; - position = nextIndex(); - modCount = backingList.modCount; - } - - - /** - * Replaces the last object retrieved by next() - * or previous with o, if the list supports object - * replacement and an add or remove operation has not already - * been performed. - * - * @throws IllegalStateException if the iterator is positioned - * before the start of the list or the last object has already - * been removed. - * @throws UnsupportedOperationException if the list doesn't support - * the addition or removal of elements. - * @throws ClassCastException if the type of o is not a valid type - * for this list. - * @throws IllegalArgumentException if something else related to o - * prevents its addition. - * @throws ConcurrentModificationException if the list - * has been modified elsewhere. - */ - public void set(Object o) - { - i.set(o); - } - - /** - * Adds the supplied object before the element that would be returned - * by a call to next(), if the list supports addition. - * - * @param o The object to add to the list. - * @throws UnsupportedOperationException if the list doesn't support - * the addition of new elements. - * @throws ClassCastException if the type of o is not a valid type - * for this list. - * @throws IllegalArgumentException if something else related to o - * prevents its addition. - * @throws ConcurrentModificationException if the list - * has been modified elsewhere. - */ - public void add(Object o) - { - i.add(o); - size++; - position++; - modCount = backingList.modCount; - } - - // Here is the reason why the various modCount fields are mostly - // ignored in this wrapper listIterator. - // If the backing listIterator is failfast, then the following holds: - // Using any other method on this list will call a corresponding - // method on the backing list *after* the backing listIterator - // is created, which will in turn cause a ConcurrentModException - // when this listIterator comes to use the backing one. So it is - // implicitly failfast. - // If the backing listIterator is NOT failfast, then the whole of - // this list isn't failfast, because the modCount field of the - // backing list is not valid. It would still be *possible* to - // make the iterator failfast wrt modifications of the sublist - // only, but somewhat pointless when the list can be changed under - // us. - // Either way, no explicit handling of modCount is needed. - // However modCount = backingList.modCount must be executed in add - // and remove, and size must also be updated in these two methods, - // since they do not go through the corresponding methods of the subList. - }; + + return new ListIterator() + { + private final ListIterator i + = backingList.listIterator(index + offset); + private int position = index; + + /** + * Tests to see if there are any more objects to + * return. + * + * @return True if the end of the list has not yet been + * reached. + */ + public boolean hasNext() + { + return position < size; + } + + /** + * Tests to see if there are objects prior to the + * current position in the list. + * + * @return True if objects exist prior to the current + * position of the iterator. + */ + public boolean hasPrevious() + { + return position > 0; + } + + /** + * Retrieves the next object from the list. + * + * @return The next object. + * @throws NoSuchElementException if there are no + * more objects to retrieve. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public E next() + { + if (position == size) + throw new NoSuchElementException(); + position++; + return i.next(); + } + + /** + * Retrieves the previous object from the list. + * + * @return The next object. + * @throws NoSuchElementException if there are no + * previous objects to retrieve. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public E previous() + { + if (position == 0) + throw new NoSuchElementException(); + position--; + return i.previous(); + } + + /** + * Returns the index of the next element in the + * list, which will be retrieved by next() + * + * @return The index of the next element. + */ + public int nextIndex() + { + return i.nextIndex() - offset; + } + + /** + * Returns the index of the previous element in the + * list, which will be retrieved by previous() + * + * @return The index of the previous element. + */ + public int previousIndex() + { + return i.previousIndex() - offset; + } + + /** + * Removes the last object retrieved by next() + * from the list, if the list supports object removal. + * + * @throws IllegalStateException if the iterator is positioned + * before the start of the list or the last object has already + * been removed. + * @throws UnsupportedOperationException if the list does + * not support removing elements. + */ + public void remove() + { + i.remove(); + size--; + position = nextIndex(); + modCount = backingList.modCount; + } + + + /** + * Replaces the last object retrieved by next() + * or previous with o, if the list supports object + * replacement and an add or remove operation has not already + * been performed. + * + * @throws IllegalStateException if the iterator is positioned + * before the start of the list or the last object has already + * been removed. + * @throws UnsupportedOperationException if the list doesn't support + * the addition or removal of elements. + * @throws ClassCastException if the type of o is not a valid type + * for this list. + * @throws IllegalArgumentException if something else related to o + * prevents its addition. + * @throws ConcurrentModificationException if the list + * has been modified elsewhere. + */ + public void set(E o) + { + i.set(o); + } + + /** + * Adds the supplied object before the element that would be returned + * by a call to next(), if the list supports addition. + * + * @param o The object to add to the list. + * @throws UnsupportedOperationException if the list doesn't support + * the addition of new elements. + * @throws ClassCastException if the type of o is not a valid type + * for this list. + * @throws IllegalArgumentException if something else related to o + * prevents its addition. + * @throws ConcurrentModificationException if the list + * has been modified elsewhere. + */ + public void add(E o) + { + i.add(o); + size++; + position++; + modCount = backingList.modCount; + } + + // Here is the reason why the various modCount fields are mostly + // ignored in this wrapper listIterator. + // If the backing listIterator is failfast, then the following holds: + // Using any other method on this list will call a corresponding + // method on the backing list *after* the backing listIterator + // is created, which will in turn cause a ConcurrentModException + // when this listIterator comes to use the backing one. So it is + // implicitly failfast. + // If the backing listIterator is NOT failfast, then the whole of + // this list isn't failfast, because the modCount field of the + // backing list is not valid. It would still be *possible* to + // make the iterator failfast wrt modifications of the sublist + // only, but somewhat pointless when the list can be changed under + // us. + // Either way, no explicit handling of modCount is needed. + // However modCount = backingList.modCount must be executed in add + // and remove, and size must also be updated in these two methods, + // since they do not go through the corresponding methods of the subList. + }; } } // class SubList @@ -1181,7 +1185,7 @@ while (i.hasNext()) * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class RandomAccessSubList extends SubList + private static final class RandomAccessSubList extends SubList implements RandomAccess { /** @@ -1191,10 +1195,10 @@ while (i.hasNext()) * @param fromIndex the lower bound, inclusive * @param toIndex the upper bound, exclusive */ - RandomAccessSubList(AbstractList backing, int fromIndex, int toIndex) + RandomAccessSubList(AbstractList backing, int fromIndex, int toIndex) { super(backing, fromIndex, toIndex); } } // class RandomAccessSubList - + } // class AbstractList diff --git a/libjava/classpath/java/util/AbstractMap.java b/libjava/classpath/java/util/AbstractMap.java index b4ab882addf..29249e1dc22 100644 --- a/libjava/classpath/java/util/AbstractMap.java +++ b/libjava/classpath/java/util/AbstractMap.java @@ -1,5 +1,6 @@ /* AbstractMap.java -- Abstract implementation of most of Map - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +39,8 @@ exception statement from your version. */ package java.util; +import java.io.Serializable; + /** * An abstract implementation of Map to make it easier to create your own * implementations. In order to create an unmodifiable Map, subclass @@ -64,9 +67,43 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public abstract class AbstractMap implements Map +public abstract class AbstractMap implements Map { - /** An "enum" of iterator types. */ + /** @since 1.6 */ + public static class SimpleImmutableEntry + implements Entry, Serializable + { + K key; + V value; + + public SimpleImmutableEntry(K key, V value) + { + this.key = key; + this.value = value; + } + + public SimpleImmutableEntry(Entry entry) + { + this(entry.getKey(), entry.getValue()); + } + + public K getKey() + { + return key; + } + + public V getValue() + { + return value; + } + + public V setValue(V value) + { + throw new UnsupportedOperationException("setValue not supported on immutable entry"); + } + } + +/** An "enum" of iterator types. */ // Package visible for use by subclasses. static final int KEYS = 0, VALUES = 1, @@ -76,13 +113,13 @@ public abstract class AbstractMap implements Map * The cache for {@link #keySet()}. */ // Package visible for use by subclasses. - Set keys; + Set keys; /** * The cache for {@link #values()}. */ // Package visible for use by subclasses. - Collection values; + Collection values; /** * The main constructor, for use by subclasses. @@ -104,7 +141,7 @@ public abstract class AbstractMap implements Map * @return the entry set * @see Map.Entry */ - public abstract Set entrySet(); + public abstract Set> entrySet(); /** * Remove all entries from this Map (optional operation). This default @@ -133,7 +170,7 @@ public abstract class AbstractMap implements Map */ protected Object clone() throws CloneNotSupportedException { - AbstractMap copy = (AbstractMap) super.clone(); + AbstractMap copy = (AbstractMap) super.clone(); // Clear out the caches; they are stale. copy.keys = null; copy.values = null; @@ -155,10 +192,10 @@ public abstract class AbstractMap implements Map */ public boolean containsKey(Object key) { - Iterator entries = entrySet().iterator(); + Iterator> entries = entrySet().iterator(); int pos = size(); while (--pos >= 0) - if (equals(key, ((Map.Entry) entries.next()).getKey())) + if (equals(key, entries.next().getKey())) return true; return false; } @@ -178,10 +215,10 @@ public abstract class AbstractMap implements Map */ public boolean containsValue(Object value) { - Iterator entries = entrySet().iterator(); + Iterator> entries = entrySet().iterator(); int pos = size(); while (--pos >= 0) - if (equals(value, ((Map.Entry) entries.next()).getValue())) + if (equals(value, entries.next().getValue())) return true; return false; } @@ -198,9 +235,9 @@ public abstract class AbstractMap implements Map */ public boolean equals(Object o) { - return (o == this || - (o instanceof Map && - entrySet().equals(((Map) o).entrySet()))); + return (o == this + || (o instanceof Map + && entrySet().equals(((Map) o).entrySet()))); } /** @@ -215,13 +252,13 @@ public abstract class AbstractMap implements Map * @throws NullPointerException if this map does not accept null keys * @see #containsKey(Object) */ - public Object get(Object key) + public V get(Object key) { - Iterator entries = entrySet().iterator(); + Iterator> entries = entrySet().iterator(); int pos = size(); while (--pos >= 0) { - Map.Entry entry = (Map.Entry) entries.next(); + Map.Entry entry = entries.next(); if (equals(key, entry.getKey())) return entry.getValue(); } @@ -273,10 +310,10 @@ public abstract class AbstractMap implements Map * @see #containsKey(Object) * @see #values() */ - public Set keySet() + public Set keySet() { if (keys == null) - keys = new AbstractSet() + keys = new AbstractSet() { /** * Retrieves the number of keys in the backing map. @@ -294,7 +331,7 @@ public abstract class AbstractMap implements Map * * @param key The key to search for. * @return True if the key was found, false otherwise. - */ + */ public boolean contains(Object key) { return containsKey(key); @@ -307,14 +344,15 @@ public abstract class AbstractMap implements Map * * @return An iterator over the keys. */ - public Iterator iterator() + public Iterator iterator() { - return new Iterator() + return new Iterator() { /** * The iterator returned by entrySet(). */ - private final Iterator map_iterator = entrySet().iterator(); + private final Iterator> map_iterator + = entrySet().iterator(); /** * Returns true if a call to next() will @@ -333,10 +371,10 @@ public abstract class AbstractMap implements Map * by the underlying entrySet() iterator. * * @return The next key. - */ - public Object next() + */ + public K next() { - return ((Map.Entry) map_iterator.next()).getKey(); + return map_iterator.next().getKey(); } /** @@ -374,7 +412,7 @@ public abstract class AbstractMap implements Map * @throws NullPointerException if the map forbids null keys or values * @see #containsKey(Object) */ - public Object put(Object key, Object value) + public V put(K key, V value) { throw new UnsupportedOperationException(); } @@ -396,13 +434,16 @@ public abstract class AbstractMap implements Map * @throws NullPointerException if m is null. * @see #put(Object, Object) */ - public void putAll(Map m) + public void putAll(Map m) { - Iterator entries = m.entrySet().iterator(); + // FIXME: bogus circumlocution. + Iterator entries2 = m.entrySet().iterator(); + Iterator> entries + = (Iterator>) entries2; int pos = m.size(); while (--pos >= 0) { - Map.Entry entry = (Map.Entry) entries.next(); + Map.Entry entry = entries.next(); put(entry.getKey(), entry.getValue()); } } @@ -424,17 +465,17 @@ public abstract class AbstractMap implements Map * @throws UnsupportedOperationException if deletion is unsupported * @see Iterator#remove() */ - public Object remove(Object key) + public V remove(Object key) { - Iterator entries = entrySet().iterator(); + Iterator> entries = entrySet().iterator(); int pos = size(); while (--pos >= 0) { - Map.Entry entry = (Map.Entry) entries.next(); + Map.Entry entry = entries.next(); if (equals(key, entry.getKey())) { // Must get the value before we remove it from iterator. - Object r = entry.getValue(); + V r = entry.getValue(); entries.remove(); return r; } @@ -469,11 +510,11 @@ public abstract class AbstractMap implements Map */ public String toString() { - Iterator entries = entrySet().iterator(); + Iterator> entries = entrySet().iterator(); StringBuffer r = new StringBuffer("{"); for (int pos = size(); pos > 0; pos--) { - Map.Entry entry = (Map.Entry) entries.next(); + Map.Entry entry = entries.next(); r.append(entry.getKey()); r.append('='); r.append(entry.getValue()); @@ -504,18 +545,18 @@ public abstract class AbstractMap implements Map * @see #containsValue(Object) * @see #keySet() */ - public Collection values() + public Collection values() { if (values == null) - values = new AbstractCollection() + values = new AbstractCollection() { - /** + /** * Returns the number of values stored in * the backing map. * * @return The number of values. */ - public int size() + public int size() { return AbstractMap.this.size(); } @@ -539,46 +580,47 @@ public abstract class AbstractMap implements Map * * @return An iterator over the values. */ - public Iterator iterator() + public Iterator iterator() { - return new Iterator() + return new Iterator() { /** * The iterator returned by entrySet(). */ - private final Iterator map_iterator = entrySet().iterator(); - - /** - * Returns true if a call to next() will - * return another value. - * - * @return True if the iterator has not yet reached - * the last value. - */ + private final Iterator> map_iterator + = entrySet().iterator(); + + /** + * Returns true if a call to next() will + * return another value. + * + * @return True if the iterator has not yet reached + * the last value. + */ public boolean hasNext() { return map_iterator.hasNext(); } - /** - * Returns the value from the next entry retrieved - * by the underlying entrySet() iterator. - * - * @return The next value. - */ - public Object next() + /** + * Returns the value from the next entry retrieved + * by the underlying entrySet() iterator. + * + * @return The next value. + */ + public V next() { - return ((Map.Entry) map_iterator.next()).getValue(); + return map_iterator.next().getValue(); } - /** - * Removes the map entry which has a key equal - * to that returned by the last call to - * next(). - * - * @throws UnsupportedOperationException if the - * map doesn't support removal. - */ + /** + * Removes the map entry which has a key equal + * to that returned by the last call to + * next(). + * + * @throws UnsupportedOperationException if the + * map doesn't support removal. + */ public void remove() { map_iterator.remove(); @@ -623,31 +665,36 @@ public abstract class AbstractMap implements Map * * @author Jon Zeppieri * @author Eric Blake (ebb9@email.byu.edu) + * + * @since 1.6 */ - // XXX - FIXME Use fully qualified implements as gcj 3.1 workaround. - // Bug still exists in 3.4.1 - static class BasicMapEntry implements Map.Entry + public static class SimpleEntry implements Entry, Serializable { /** * The key. Package visible for direct manipulation. */ - Object key; + K key; /** * The value. Package visible for direct manipulation. */ - Object value; + V value; /** * Basic constructor initializes the fields. * @param newKey the key * @param newValue the value */ - BasicMapEntry(Object newKey, Object newValue) + public SimpleEntry(K newKey, V newValue) { key = newKey; value = newValue; } + + public SimpleEntry(Entry entry) + { + this(entry.getKey(), entry.getValue()); + } /** * Compares the specified object with this entry. Returns true only if @@ -662,14 +709,14 @@ public abstract class AbstractMap implements Map * @param o the object to compare * @return true if it is equal */ - public final boolean equals(Object o) + public boolean equals(Object o) { if (! (o instanceof Map.Entry)) return false; // Optimize for our own entries. - if (o instanceof BasicMapEntry) + if (o instanceof SimpleEntry) { - BasicMapEntry e = (BasicMapEntry) o; + SimpleEntry e = (SimpleEntry) o; return (AbstractMap.equals(key, e.key) && AbstractMap.equals(value, e.value)); } @@ -683,7 +730,7 @@ public abstract class AbstractMap implements Map * * @return the key */ - public final Object getKey() + public final K getKey() { return key; } @@ -694,7 +741,7 @@ public abstract class AbstractMap implements Map * * @return the value */ - public final Object getValue() + public final V getValue() { return value; } @@ -728,9 +775,9 @@ public abstract class AbstractMap implements Map * @throws IllegalArgumentException if something else about this * value prevents it being stored in the map. */ - public Object setValue(Object newVal) + public V setValue(V newVal) { - Object r = value; + V r = value; value = newVal; return r; } @@ -745,5 +792,7 @@ public abstract class AbstractMap implements Map { return key + "=" + value; } - } // class BasicMapEntry + } // class SimpleEntry + + } diff --git a/libjava/classpath/java/util/AbstractSequentialList.java b/libjava/classpath/java/util/AbstractSequentialList.java index 79583228d96..81b0714e1ba 100644 --- a/libjava/classpath/java/util/AbstractSequentialList.java +++ b/libjava/classpath/java/util/AbstractSequentialList.java @@ -1,5 +1,5 @@ /* AbstractSequentialList.java -- List implementation for sequential access - Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,7 +71,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public abstract class AbstractSequentialList extends AbstractList +public abstract class AbstractSequentialList extends AbstractList { /** * The main constructor, for use by subclasses. @@ -88,7 +88,7 @@ public abstract class AbstractSequentialList extends AbstractList * @return the list iterator * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public abstract ListIterator listIterator(int index); + public abstract ListIterator listIterator(int index); /** * Insert an element into the list at a given position (optional operation). @@ -109,7 +109,7 @@ public abstract class AbstractSequentialList extends AbstractList * @throws NullPointerException if o is null and the list does not permit * the addition of null values. */ - public void add(int index, Object o) + public void add(int index, E o) { listIterator(index).add(o); } @@ -143,11 +143,11 @@ public abstract class AbstractSequentialList extends AbstractList * does not permit the addition of null values. * @see #add(int, Object) */ - public boolean addAll(int index, Collection c) + public boolean addAll(int index, Collection c) { - Iterator ci = c.iterator(); + Iterator ci = c.iterator(); int size = c.size(); - ListIterator i = listIterator(index); + ListIterator i = listIterator(index); for (int pos = size; pos > 0; pos--) i.add(ci.next()); return size > 0; @@ -161,7 +161,7 @@ public abstract class AbstractSequentialList extends AbstractList * @return the element at index index in this list * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object get(int index) + public E get(int index) { // This is a legal listIterator position, but an illegal get. if (index == size()) @@ -176,7 +176,7 @@ public abstract class AbstractSequentialList extends AbstractList * * @return an Iterator over the elements of this list, in order */ - public Iterator iterator() + public Iterator iterator() { return listIterator(); } @@ -192,14 +192,14 @@ public abstract class AbstractSequentialList extends AbstractList * remove operation * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object remove(int index) + public E remove(int index) { // This is a legal listIterator position, but an illegal remove. if (index == size()) throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size()); - ListIterator i = listIterator(index); - Object removed = i.next(); + ListIterator i = listIterator(index); + E removed = i.next(); i.remove(); return removed; } @@ -221,14 +221,14 @@ public abstract class AbstractSequentialList extends AbstractList * @throws NullPointerException if o is null and the list does not allow * a value to be set to null. */ - public Object set(int index, Object o) + public E set(int index, E o) { // This is a legal listIterator position, but an illegal set. if (index == size()) throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + size()); - ListIterator i = listIterator(index); - Object old = i.next(); + ListIterator i = listIterator(index); + E old = i.next(); i.set(o); return old; } diff --git a/libjava/classpath/java/util/AbstractSet.java b/libjava/classpath/java/util/AbstractSet.java index f0d7cb19908..423ac8083a6 100644 --- a/libjava/classpath/java/util/AbstractSet.java +++ b/libjava/classpath/java/util/AbstractSet.java @@ -1,5 +1,6 @@ /* AbstractSet.java -- Abstract implementation of most of Set - Copyright (C) 1998, 2000, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2001, 2004, 2005 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,7 +59,9 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public abstract class AbstractSet extends AbstractCollection implements Set +public abstract class AbstractSet + extends AbstractCollection + implements Set { /** * The main constructor, for use by subclasses. @@ -79,9 +82,9 @@ public abstract class AbstractSet extends AbstractCollection implements Set */ public boolean equals(Object o) { - return (o == this || - (o instanceof Set && ((Set) o).size() == size() - && containsAll((Collection) o))); + return (o == this + || (o instanceof Set && ((Set) o).size() == size() + && containsAll((Collection) o))); } /** @@ -94,7 +97,7 @@ public abstract class AbstractSet extends AbstractCollection implements Set */ public int hashCode() { - Iterator itr = iterator(); + Iterator itr = iterator(); int hash = 0; int pos = size(); while (--pos >= 0) @@ -119,21 +122,25 @@ public abstract class AbstractSet extends AbstractCollection implements Set * @see Collection#contains(Object) * @see Iterator#remove() */ - public boolean removeAll(Collection c) + public boolean removeAll(Collection c) { int oldsize = size(); int count = c.size(); - Iterator i; if (oldsize < count) { + Iterator i; for (i = iterator(), count = oldsize; count > 0; count--) - if (c.contains(i.next())) - i.remove(); + { + if (c.contains(i.next())) + i.remove(); + } } else - for (i = c.iterator(); count > 0; count--) - remove(i.next()); + { + Iterator i; + for (i = c.iterator(); count > 0; count--) + remove(i.next()); + } return oldsize != size(); } - } diff --git a/libjava/classpath/java/util/ArrayList.java b/libjava/classpath/java/util/ArrayList.java index 50b5638ede0..0693049b53a 100644 --- a/libjava/classpath/java/util/ArrayList.java +++ b/libjava/classpath/java/util/ArrayList.java @@ -81,8 +81,8 @@ import java.lang.reflect.Array; * @see AbstractList * @status updated to 1.4 */ -public class ArrayList extends AbstractList - implements List, RandomAccess, Cloneable, Serializable +public class ArrayList extends AbstractList + implements List, RandomAccess, Cloneable, Serializable { /** * Compatible with JDK 1.2 @@ -103,7 +103,7 @@ public class ArrayList extends AbstractList /** * Where the data is stored. */ - private transient Object[] data; + private transient E[] data; /** * Construct a new ArrayList with the supplied initial capacity. @@ -116,7 +116,7 @@ public class ArrayList extends AbstractList // Must explicitly check, to get correct exception. if (capacity < 0) throw new IllegalArgumentException(); - data = new Object[capacity]; + data = (E[]) new Object[capacity]; } /** @@ -135,7 +135,7 @@ public class ArrayList extends AbstractList * @param c the collection whose elements will initialize this list * @throws NullPointerException if c is null */ - public ArrayList(Collection c) + public ArrayList(Collection c) { this((int) (c.size() * 1.1f)); addAll(c); @@ -151,7 +151,7 @@ public class ArrayList extends AbstractList // so don't update modCount. if (size != data.length) { - Object[] newData = new Object[size]; + E[] newData = (E[]) new Object[size]; System.arraycopy(data, 0, newData, 0, size); data = newData; } @@ -173,7 +173,7 @@ public class ArrayList extends AbstractList if (minCapacity > current) { - Object[] newData = new Object[Math.max(current * 2, minCapacity)]; + E[] newData = (E[]) new Object[Math.max(current * 2, minCapacity)]; System.arraycopy(data, 0, newData, 0, size); data = newData; } @@ -247,11 +247,11 @@ public class ArrayList extends AbstractList */ public Object clone() { - ArrayList clone = null; + ArrayList clone = null; try { - clone = (ArrayList) super.clone(); - clone.data = (Object[]) data.clone(); + clone = (ArrayList) super.clone(); + clone.data = (E[]) data.clone(); } catch (CloneNotSupportedException e) { @@ -268,7 +268,7 @@ public class ArrayList extends AbstractList */ public Object[] toArray() { - Object[] array = new Object[size]; + E[] array = (E[]) new Object[size]; System.arraycopy(data, 0, array, 0, size); return array; } @@ -287,11 +287,10 @@ public class ArrayList extends AbstractList * an element in this list * @throws NullPointerException if a is null */ - public Object[] toArray(Object[] a) + public T[] toArray(T[] a) { if (a.length < size) - a = (Object[]) Array.newInstance(a.getClass().getComponentType(), - size); + a = (T[]) Array.newInstance(a.getClass().getComponentType(), size); else if (a.length > size) a[size] = null; System.arraycopy(data, 0, a, 0, size); @@ -304,7 +303,7 @@ public class ArrayList extends AbstractList * @param index the index of the element we are fetching * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object get(int index) + public E get(int index) { checkBoundExclusive(index); return data[index]; @@ -319,10 +318,10 @@ public class ArrayList extends AbstractList * @return the element previously at the specified index * @throws IndexOutOfBoundsException if index < 0 || index >= 0 */ - public Object set(int index, Object e) + public E set(int index, E e) { checkBoundExclusive(index); - Object result = data[index]; + E result = data[index]; data[index] = e; return result; } @@ -334,7 +333,7 @@ public class ArrayList extends AbstractList * @param e the element to be appended to this list * @return true, the add will always succeed */ - public boolean add(Object e) + public boolean add(E e) { modCount++; if (size == data.length) @@ -352,7 +351,7 @@ public class ArrayList extends AbstractList * @param e the item being added * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public void add(int index, Object e) + public void add(int index, E e) { checkBoundInclusive(index); modCount++; @@ -371,10 +370,10 @@ public class ArrayList extends AbstractList * @return the removed Object * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object remove(int index) + public E remove(int index) { checkBoundExclusive(index); - Object r = data[index]; + E r = data[index]; modCount++; if (index != --size) System.arraycopy(data, index + 1, data, index, size - index); @@ -407,7 +406,7 @@ public class ArrayList extends AbstractList * @return true if the list was modified, in other words c is not empty * @throws NullPointerException if c is null */ - public boolean addAll(Collection c) + public boolean addAll(Collection c) { return addAll(size, c); } @@ -422,10 +421,10 @@ public class ArrayList extends AbstractList * @throws IndexOutOfBoundsException if index < 0 || index > 0 * @throws NullPointerException if c is null */ - public boolean addAll(int index, Collection c) + public boolean addAll(int index, Collection c) { checkBoundInclusive(index); - Iterator itr = c.iterator(); + Iterator itr = c.iterator(); int csize = c.size(); modCount++; @@ -502,7 +501,7 @@ public class ArrayList extends AbstractList * @return true if this list changed * @throws NullPointerException if c is null */ - boolean removeAllInternal(Collection c) + boolean removeAllInternal(Collection c) { int i; int j; @@ -530,7 +529,7 @@ public class ArrayList extends AbstractList * @throws NullPointerException if c is null * @since 1.2 */ - boolean retainAllInternal(Collection c) + boolean retainAllInternal(Collection c) { int i; int j; @@ -584,8 +583,8 @@ public class ArrayList extends AbstractList // the `size' field. s.defaultReadObject(); int capacity = s.readInt(); - data = new Object[capacity]; + data = (E[]) new Object[capacity]; for (int i = 0; i < size; i++) - data[i] = s.readObject(); + data[i] = (E) s.readObject(); } } diff --git a/libjava/classpath/java/util/Arrays.java b/libjava/classpath/java/util/Arrays.java index 1fa59594193..fbbf43f209b 100644 --- a/libjava/classpath/java/util/Arrays.java +++ b/libjava/classpath/java/util/Arrays.java @@ -362,7 +362,7 @@ public class Arrays * @throws NullPointerException if a null element is compared with natural * ordering (only possible when c is null) */ - public static int binarySearch(Object[] a, Object key, Comparator c) + public static int binarySearch(T[] a, T key, Comparator c) { int low = 0; int hi = a.length - 1; @@ -2163,7 +2163,7 @@ public class Arrays * @throws NullPointerException if a null element is compared with natural * ordering (only possible when c is null) */ - public static void sort(Object[] a, Comparator c) + public static void sort(T[] a, Comparator c) { sort(a, 0, a.length, c); } @@ -2213,7 +2213,8 @@ public class Arrays * @throws NullPointerException if a null element is compared with natural * ordering (only possible when c is null) */ - public static void sort(Object[] a, int fromIndex, int toIndex, Comparator c) + public static void sort(T[] a, int fromIndex, int toIndex, + Comparator c) { if (fromIndex > toIndex) throw new IllegalArgumentException("fromIndex " + fromIndex @@ -2235,7 +2236,7 @@ public class Arrays { // not already sorted int j = i; - Object elem = a[j]; + T elem = a[j]; do { a[j] = a[j - 1]; @@ -2253,9 +2254,9 @@ public class Arrays if (len <= 6) return; - Object[] src = a; - Object[] dest = new Object[len]; - Object[] t = null; // t is used for swapping src and dest + T[] src = a; + T[] dest = (T[]) new Object[len]; + T[] t = null; // t is used for swapping src and dest // The difference of the fromIndex of the src and dest array. int srcDestDiff = -fromIndex; @@ -2349,7 +2350,7 @@ public class Arrays * @see RandomAccess * @see Arrays.ArrayList */ - public static List asList(final Object[] a) + public static List asList(final T... a) { return new Arrays.ArrayList(a); } @@ -2546,11 +2547,10 @@ public class Arrays } /** - * Returns the hashcode of an array of integer numbers. If two arrays + * Returns the hashcode of an array of objects. If two arrays * are equal, according to equals(), they should have the * same hashcode. The hashcode returned by the method is equal to that - * obtained by the corresponding List object. This has the same - * data, but represents ints in their wrapper class, Integer. + * obtained by the corresponding List object. * For null, 0 is returned. * * @param v an array of integer numbers for which the hash code should be @@ -2571,7 +2571,6 @@ public class Arrays return result; } - /** @since 1.5 */ public static int deepHashCode(Object[] v) { if (v == null) @@ -2914,7 +2913,7 @@ public class Arrays * @author Eric Blake (ebb9@email.byu.edu) * @status updated to 1.4 */ - private static final class ArrayList extends AbstractList + private static final class ArrayList extends AbstractList implements Serializable, RandomAccess { // We override the necessary methods, plus others which will be much @@ -2929,14 +2928,14 @@ public class Arrays * The array we are viewing. * @serial the array */ - private final Object[] a; + private final E[] a; /** * Construct a list view of the array. * @param a the array to view * @throws NullPointerException if a is null */ - ArrayList(Object[] a) + ArrayList(E[] a) { // We have to explicitly check. if (a == null) @@ -2951,7 +2950,7 @@ public class Arrays * @param index The index to retrieve an object from. * @return The object at the array index specified. */ - public Object get(int index) + public E get(int index) { return a[index]; } @@ -2974,9 +2973,9 @@ public class Arrays * @param element The new object. * @return The object replaced by this operation. */ - public Object set(int index, Object element) + public E set(int index, E element) { - Object old = a[index]; + E old = a[index]; a[index] = element; return old; } @@ -3047,12 +3046,12 @@ public class Arrays * @return The array containing the objects in this list, * which may or may not be == to array. */ - public Object[] toArray(Object[] array) + public T[] toArray(T[] array) { int size = a.length; if (array.length < size) - array = (Object[]) - Array.newInstance(array.getClass().getComponentType(), size); + array = (T[]) Array.newInstance(array.getClass().getComponentType(), + size); else if (array.length > size) array[size] = null; diff --git a/libjava/classpath/java/util/BitSet.java b/libjava/classpath/java/util/BitSet.java index f1b5aaa06ee..e4f923b7f22 100644 --- a/libjava/classpath/java/util/BitSet.java +++ b/libjava/classpath/java/util/BitSet.java @@ -741,4 +741,15 @@ public class BitSet implements Cloneable, Serializable bits = nd; } } + + // This is used by EnumSet for efficiency. + final boolean containsAll(BitSet other) + { + for (int i = other.bits.length - 1; i >= 0; i--) + { + if ((bits[i] & other.bits[i]) != other.bits[i]) + return false; + } + return true; + } } diff --git a/libjava/classpath/java/util/Calendar.java b/libjava/classpath/java/util/Calendar.java index d4bbcd08e76..8c46c01936c 100644 --- a/libjava/classpath/java/util/Calendar.java +++ b/libjava/classpath/java/util/Calendar.java @@ -1,5 +1,6 @@ /* Calendar.java -- - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -103,7 +104,8 @@ day_of_week + week_of_year * @see TimeZone * @see java.text.DateFormat */ -public abstract class Calendar implements Serializable, Cloneable +public abstract class Calendar + implements Serializable, Cloneable, Comparable { /** * Constant representing the era time field. @@ -483,6 +485,8 @@ public abstract class Calendar implements Serializable, Cloneable /** * Creates a calendar representing the actual time, using the default * time zone and locale. + * + * @return The new calendar. */ public static synchronized Calendar getInstance() { @@ -492,7 +496,12 @@ public abstract class Calendar implements Serializable, Cloneable /** * Creates a calendar representing the actual time, using the given * time zone and the default locale. - * @param zone a time zone. + * + * @param zone a time zone (null not permitted). + * + * @return The new calendar. + * + * @throws NullPointerException if zone is null. */ public static synchronized Calendar getInstance(TimeZone zone) { @@ -502,7 +511,12 @@ public abstract class Calendar implements Serializable, Cloneable /** * Creates a calendar representing the actual time, using the default * time zone and the given locale. - * @param locale a locale. + * + * @param locale a locale (null not permitted). + * + * @return The new calendar. + * + * @throws NullPointerException if locale is null. */ public static synchronized Calendar getInstance(Locale locale) { @@ -524,8 +538,14 @@ public abstract class Calendar implements Serializable, Cloneable /** * Creates a calendar representing the actual time, using the given * time zone and locale. - * @param zone a time zone. - * @param locale a locale. + * + * @param zone a time zone (null not permitted). + * @param locale a locale (null not permitted). + * + * @return The new calendar. + * + * @throws NullPointerException if zone or locale + * is null. */ public static synchronized Calendar getInstance(TimeZone zone, Locale locale) { @@ -617,6 +637,10 @@ public abstract class Calendar implements Serializable, Cloneable /** * Sets this Calendar's time to the given Date. All time fields * are invalidated by this method. + * + * @param date the date (null not permitted). + * + * @throws NullPointerException if date is null. */ public final void setTime(Date date) { @@ -1196,6 +1220,31 @@ public abstract class Calendar implements Serializable, Cloneable } /** + * Compares the time of two calendar instances. + * @param calendar the calendar to which the time should be compared. + * @return 0 if the two calendars are set to the same time, + * less than 0 if the time of this calendar is before that of + * cal, or more than 0 if the time of this calendar is after + * that of cal. + * + * @param cal the calendar to compare this instance with. + * @throws NullPointerException if cal is null. + * @throws IllegalArgumentException if either calendar has fields set to + * invalid values. + * @since 1.5 + */ + public int compareTo(Calendar cal) + { + long t1 = getTimeInMillis(); + long t2 = cal.getTimeInMillis(); + if(t1 == t2) + return 0; + if(t1 > t2) + return 1; + return -1; + } + + /** * Return a clone of this object. */ public Object clone() diff --git a/libjava/classpath/java/util/Collection.java b/libjava/classpath/java/util/Collection.java index f7db708c16d..b57566f7032 100644 --- a/libjava/classpath/java/util/Collection.java +++ b/libjava/classpath/java/util/Collection.java @@ -1,5 +1,5 @@ /* Collection.java -- Interface that represents a collection of objects - Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -67,6 +67,8 @@ package java.util; * * @author Original author unknown * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see List * @see Set * @see Map @@ -81,9 +83,9 @@ package java.util; * @see Arrays * @see AbstractCollection * @since 1.2 - * @status updated to 1.5 (minus generics) + * @status updated to 1.4 */ -public interface Collection extends Iterable +public interface Collection extends Iterable { /** * Add an element to this collection. @@ -99,7 +101,7 @@ public interface Collection extends Iterable * @throws IllegalArgumentException if o cannot be added to this * collection for some other reason. */ - boolean add(Object o); + boolean add(E o); /** * Add the contents of a given collection to this collection. @@ -116,7 +118,7 @@ public interface Collection extends Iterable * @throws IllegalArgumentException if some element of c cannot be added * to this collection for some other reason. */ - boolean addAll(Collection c); + boolean addAll(Collection c); /** * Clear the collection, such that a subsequent call to isEmpty() would @@ -152,7 +154,7 @@ public interface Collection extends Iterable * collection does not support null values. * @throws NullPointerException if c itself is null. */ - boolean containsAll(Collection c); + boolean containsAll(Collection c); /** * Test whether this collection is equal to some object. The Collection @@ -200,7 +202,7 @@ public interface Collection extends Iterable * * @return an Iterator over the elements of this collection, in any order. */ - Iterator iterator(); + Iterator iterator(); /** * Remove a single occurrence of an object from this collection. That is, @@ -233,7 +235,7 @@ public interface Collection extends Iterable * collection does not support removing null values. * @throws NullPointerException if c itself is null. */ - boolean removeAll(Collection c); + boolean removeAll(Collection c); /** * Remove all elements of this collection that are not contained in a given @@ -249,7 +251,7 @@ public interface Collection extends Iterable * collection does not support retaining null values. * @throws NullPointerException if c itself is null. */ - boolean retainAll(Collection c); + boolean retainAll(Collection c); /** * Get the number of elements in this collection. @@ -284,5 +286,5 @@ public interface Collection extends Iterable * @throws ArrayStoreException if the type of any element of the * collection is not a subtype of the element type of a. */ - Object[] toArray(Object[] a); + T[] toArray(T[] a); } diff --git a/libjava/classpath/java/util/Collections.java b/libjava/classpath/java/util/Collections.java index a2538cf1db8..c15fa092bb2 100644 --- a/libjava/classpath/java/util/Collections.java +++ b/libjava/classpath/java/util/Collections.java @@ -62,13 +62,15 @@ import java.io.Serializable; * * @author Original author unknown * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see Collection * @see Set * @see List * @see Map * @see Arrays * @since 1.2 - * @status updated to 1.4 + * @status updated to 1.5 */ public class Collections { @@ -90,7 +92,7 @@ public class Collections * @param l the list to check * @return true if it should be treated as sequential-access */ - private static boolean isSequential(List l) + private static boolean isSequential(List l) { return ! (l instanceof RandomAccess) && l.size() > LARGE_LIST_SIZE; } @@ -109,12 +111,26 @@ public class Collections public static final Set EMPTY_SET = new EmptySet(); /** + * Returns an immutable, serializable parameterized empty set. + * Unlike the constant EMPTY_SET, the set returned by + * this method is type-safe. + * + * @return an empty parameterized set. + * @since 1.5 + */ + public static final Set emptySet() + { + /* FIXME: Could this be optimized? */ + return new EmptySet(); + } + + /** * The implementation of {@link #EMPTY_SET}. This class name is required * for compatibility with Sun's JDK serializability. * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class EmptySet extends AbstractSet + private static final class EmptySet extends AbstractSet implements Serializable { /** @@ -143,9 +159,9 @@ public class Collections * @return A non-iterating iterator. */ // This is really cheating! I think it's perfectly valid, though. - public Iterator iterator() + public Iterator iterator() { - return EMPTY_LIST.iterator(); + return (Iterator) EMPTY_LIST.iterator(); } // The remaining methods are optional, but provide a performance @@ -166,7 +182,7 @@ public class Collections * against the members of this set. * @return true if c is empty. */ - public boolean containsAll(Collection c) + public boolean containsAll(Collection c) { return c.isEmpty(); } @@ -206,7 +222,7 @@ public class Collections * all be removed from this set. * @return false. */ - public boolean removeAll(Collection c) + public boolean removeAll(Collection c) { return false; } @@ -217,7 +233,7 @@ public class Collections * all be retained within this set. * @return false. */ - public boolean retainAll(Collection c) + public boolean retainAll(Collection c) { return false; } @@ -237,7 +253,7 @@ public class Collections * @return The original array with any existing * initial element set to null. */ - public Object[] toArray(Object[] a) + public E[] toArray(E[] a) { if (a.length > 0) a[0] = null; @@ -263,12 +279,26 @@ public class Collections public static final List EMPTY_LIST = new EmptyList(); /** + * Returns an immutable, serializable parameterized empty list. + * Unlike the constant EMPTY_LIST, the list returned by + * this method is type-safe. + * + * @return an empty parameterized list. + * @since 1.5 + */ + public static final List emptyList() + { + /* FIXME: Could this be optimized? */ + return new EmptyList(); + } + + /** * The implementation of {@link #EMPTY_LIST}. This class name is required * for compatibility with Sun's JDK serializability. * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class EmptyList extends AbstractList + private static final class EmptyList extends AbstractList implements Serializable, RandomAccess { /** @@ -301,7 +331,7 @@ public class Collections * @throws IndexOutOfBoundsException as any given index * is outside the bounds of an empty array. */ - public Object get(int index) + public T get(int index) { throw new IndexOutOfBoundsException(); } @@ -324,7 +354,7 @@ public class Collections * against the members of this list. * @return true if c is also empty. */ - public boolean containsAll(Collection c) + public boolean containsAll(Collection c) { return c.isEmpty(); } @@ -385,7 +415,7 @@ public class Collections * all be removed from this list. * @return false. */ - public boolean removeAll(Collection c) + public boolean removeAll(Collection c) { return false; } @@ -396,7 +426,7 @@ public class Collections * all be retained within this list. * @return false. */ - public boolean retainAll(Collection c) + public boolean retainAll(Collection c) { return false; } @@ -416,7 +446,7 @@ public class Collections * @return The original array with any existing * initial element set to null. */ - public Object[] toArray(Object[] a) + public E[] toArray(E[] a) { if (a.length > 0) a[0] = null; @@ -441,12 +471,26 @@ public class Collections public static final Map EMPTY_MAP = new EmptyMap(); /** + * Returns an immutable, serializable parameterized empty map. + * Unlike the constant EMPTY_MAP, the map returned by + * this method is type-safe. + * + * @return an empty parameterized map. + * @since 1.5 + */ + public static final Map emptyMap() + { + /* FIXME: Could this be optimized? */ + return new EmptyMap(); + } + + /** * The implementation of {@link #EMPTY_MAP}. This class name is required * for compatibility with Sun's JDK serializability. * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class EmptyMap extends AbstractMap + private static final class EmptyMap extends AbstractMap implements Serializable { /** @@ -465,7 +509,7 @@ public class Collections * There are no entries. * @return The empty set. */ - public Set entrySet() + public Set> entrySet() { return EMPTY_SET; } @@ -508,7 +552,7 @@ public class Collections * @param o The key of the object to retrieve. * @return null. */ - public Object get(Object o) + public V get(Object o) { return null; } @@ -526,7 +570,7 @@ public class Collections * No entries. * @return The empty set. */ - public Set keySet() + public Set keySet() { return EMPTY_SET; } @@ -536,7 +580,7 @@ public class Collections * @param o The key of the mapping to remove. * @return null, as there is never a mapping for o. */ - public Object remove(Object o) + public V remove(Object o) { return null; } @@ -555,7 +599,7 @@ public class Collections * Collection, will work. Besides, that's what the JDK uses! * @return The empty set. */ - public Collection values() + public Collection values() { return EMPTY_SET; } @@ -578,7 +622,7 @@ public class Collections * clever, but worth it for removing a duplicate of the search code. * Note: This code is also used in Arrays (for sort as well as search). */ - static final int compare(Object o1, Object o2, Comparator c) + static final int compare(T o1, T o2, Comparator c) { return c == null ? ((Comparable) o1).compareTo(o2) : c.compare(o1, o2); } @@ -607,7 +651,8 @@ public class Collections * @throws NullPointerException if a null element has compareTo called * @see #sort(List) */ - public static int binarySearch(List l, Object key) + public static int binarySearch(List> l, + T key) { return binarySearch(l, key, null); } @@ -639,7 +684,8 @@ public class Collections * ordering (only possible when c is null) * @see #sort(List, Comparator) */ - public static int binarySearch(List l, Object key, Comparator c) + public static int binarySearch(List l, T key, + Comparator c) { int pos = 0; int low = 0; @@ -649,9 +695,9 @@ public class Collections // if the list is sequential-access. if (isSequential(l)) { - ListIterator itr = l.listIterator(); + ListIterator itr = ((List) l).listIterator(); int i = 0; - Object o = itr.next(); // Assumes list is not empty (see isSequential) + T o = itr.next(); // Assumes list is not empty (see isSequential) boolean forward = true; while (low <= hi) { @@ -685,7 +731,7 @@ public class Collections while (low <= hi) { pos = (low + hi) >>> 1; - final int d = compare(l.get(pos), key, c); + final int d = compare(((List) l).get(pos), key, c); if (d == 0) return pos; else if (d > 0) @@ -712,14 +758,14 @@ public class Collections * @throws UnsupportedOperationException if dest.listIterator() does not * support the set operation */ - public static void copy(List dest, List source) + public static void copy(List dest, List source) { int pos = source.size(); if (dest.size() < pos) throw new IndexOutOfBoundsException("Source does not fit in dest"); - Iterator i1 = source.iterator(); - ListIterator i2 = dest.listIterator(); + Iterator i1 = source.iterator(); + ListIterator i2 = dest.listIterator(); while (--pos >= 0) { @@ -735,10 +781,10 @@ public class Collections * @param c the Collection to iterate over * @return an Enumeration backed by an Iterator over c */ - public static Enumeration enumeration(Collection c) + public static Enumeration enumeration(Collection c) { - final Iterator i = c.iterator(); - return new Enumeration() + final Iterator i = c.iterator(); + return new Enumeration() { /** * Returns true if there are more elements to @@ -758,7 +804,7 @@ public class Collections * @return The result of next() * called on the underlying iterator. */ - public final Object nextElement() + public final T nextElement() { return i.next(); } @@ -774,9 +820,9 @@ public class Collections * @throws UnsupportedOperationException if l.listIterator() does not * support the set operation. */ - public static void fill(List l, Object val) + public static void fill(List l, T val) { - ListIterator itr = l.listIterator(); + ListIterator itr = l.listIterator(); for (int i = l.size() - 1; i >= 0; --i) { itr.next(); @@ -797,7 +843,7 @@ public class Collections * @return the index where found, or -1 * @since 1.4 */ - public static int indexOfSubList(List source, List target) + public static int indexOfSubList(List source, List target) { int ssize = source.size(); for (int i = 0, j = target.size(); j <= ssize; i++, j++) @@ -819,7 +865,7 @@ public class Collections * @return the index where found, or -1 * @since 1.4 */ - public static int lastIndexOfSubList(List source, List target) + public static int lastIndexOfSubList(List source, List target) { int ssize = source.size(); for (int i = ssize - target.size(), j = ssize; i >= 0; i--, j--) @@ -838,9 +884,9 @@ public class Collections * @see ArrayList * @since 1.4 */ - public static ArrayList list(Enumeration e) + public static ArrayList list(Enumeration e) { - ArrayList l = new ArrayList(); + ArrayList l = new ArrayList(); while (e.hasMoreElements()) l.add(e.nextElement()); return l; @@ -857,7 +903,8 @@ public class Collections * @exception ClassCastException if elements in c are not mutually comparable * @exception NullPointerException if null.compareTo is called */ - public static Object max(Collection c) + public static > + T max(Collection c) { return max(c, null); } @@ -876,14 +923,15 @@ public class Collections * @throws NullPointerException if null is compared by natural ordering * (only possible when order is null) */ - public static Object max(Collection c, Comparator order) + public static T max(Collection c, + Comparator order) { - Iterator itr = c.iterator(); - Object max = itr.next(); // throws NoSuchElementException + Iterator itr = c.iterator(); + T max = itr.next(); // throws NoSuchElementException int csize = c.size(); for (int i = 1; i < csize; i++) { - Object o = itr.next(); + T o = itr.next(); if (compare(max, o, order) < 0) max = o; } @@ -901,7 +949,8 @@ public class Collections * @throws ClassCastException if elements in c are not mutually comparable * @throws NullPointerException if null.compareTo is called */ - public static Object min(Collection c) + public static > + T min(Collection c) { return min(c, null); } @@ -920,14 +969,15 @@ public class Collections * @throws NullPointerException if null is compared by natural ordering * (only possible when order is null) */ - public static Object min(Collection c, Comparator order) + public static T min(Collection c, + Comparator order) { - Iterator itr = c.iterator(); - Object min = itr.next(); // throws NoSuchElementExcception + Iterator itr = c.iterator(); + T min = itr.next(); // throws NoSuchElementExcception int csize = c.size(); for (int i = 1; i < csize; i++) { - Object o = itr.next(); + T o = itr.next(); if (compare(min, o, order) > 0) min = o; } @@ -949,9 +999,9 @@ public class Collections * @see Serializable * @see RandomAccess */ - public static List nCopies(final int n, final Object o) + public static List nCopies(final int n, final T o) { - return new CopiesList(n, o); + return new CopiesList(n, o); } /** @@ -960,7 +1010,7 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class CopiesList extends AbstractList + private static final class CopiesList extends AbstractList implements Serializable, RandomAccess { /** @@ -978,7 +1028,7 @@ public class Collections * The repeated list element. * @serial the list contents */ - private final Object element; + private final T element; /** * Constructs the list. @@ -987,7 +1037,7 @@ public class Collections * @param o the object * @throws IllegalArgumentException if n < 0 */ - CopiesList(int n, Object o) + CopiesList(int n, T o) { if (n < 0) throw new IllegalArgumentException(); @@ -1010,7 +1060,7 @@ public class Collections * as the list contains only copies of element). * @return The element used by this list. */ - public Object get(int index) + public T get(int index) { if (index < 0 || index >= n) throw new IndexOutOfBoundsException(); @@ -1058,11 +1108,11 @@ public class Collections * elements, all of which are equal to the element * used by this list. */ - public List subList(int from, int to) + public List subList(int from, int to) { if (from < 0 || to > n) throw new IndexOutOfBoundsException(); - return new CopiesList(to - from, element); + return new CopiesList(to - from, element); } /** @@ -1108,9 +1158,9 @@ public class Collections * it being added to the list * @since 1.4 */ - public static boolean replaceAll(List list, Object oldval, Object newval) + public static boolean replaceAll(List list, T oldval, T newval) { - ListIterator itr = list.listIterator(); + ListIterator itr = list.listIterator(); boolean replace_occured = false; for (int i = list.size(); --i >= 0; ) if (AbstractCollection.equals(oldval, itr.next())) @@ -1128,7 +1178,7 @@ public class Collections * @throws UnsupportedOperationException if l.listIterator() does not * support the set operation */ - public static void reverse(List l) + public static void reverse(List l) { ListIterator i1 = l.listIterator(); int pos1 = 1; @@ -1136,15 +1186,43 @@ public class Collections ListIterator i2 = l.listIterator(pos2); while (pos1 < pos2) { - Object o = i1.next(); - i1.set(i2.previous()); - i2.set(o); + Object o1 = i1.next(); + Object o2 = i2.previous(); + i1.set(o2); + i2.set(o1); ++pos1; --pos2; } } /** + * Get a comparator that implements the reverse of the ordering + * specified by the given Comparator. If the Comparator is null, + * this is equivalent to {@link #reverseOrder()}. The return value + * of this method is Serializable, if the specified Comparator is + * either Serializable or null. + * + * @param c the comparator to invert + * @return a comparator that imposes reverse ordering + * @see Comparable + * @see Serializable + * + * @since 1.5 + */ + public static Comparator reverseOrder(final Comparator c) + { + if (c == null) + return (Comparator) rcInstance; + return new ReverseComparator () + { + public int compare(T a, T b) + { + return - c.compare(a, b); + } + }; + } + + /** * Get a comparator that implements the reverse of natural ordering. In * other words, this sorts Comparable objects opposite of how their * compareTo method would sort. This makes it easy to sort into reverse @@ -1155,9 +1233,9 @@ public class Collections * @see Comparable * @see Serializable */ - public static Comparator reverseOrder() + public static Comparator reverseOrder() { - return rcInstance; + return (Comparator) rcInstance; } /** @@ -1171,8 +1249,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class ReverseComparator - implements Comparator, Serializable + private static class ReverseComparator + implements Comparator, Serializable { /** * Compatible with JDK 1.4. @@ -1193,7 +1271,7 @@ public class Collections * @param b the second object * @return <, ==, or > 0 according to b.compareTo(a) */ - public int compare(Object a, Object b) + public int compare(T a, T b) { return ((Comparable) b).compareTo(a); } @@ -1229,7 +1307,7 @@ public class Collections * @throws UnsupportedOperationException if the list does not support set * @since 1.4 */ - public static void rotate(List list, int distance) + public static void rotate(List list, int distance) { int size = list.size(); if (size == 0) @@ -1262,12 +1340,13 @@ public class Collections // Now, make the swaps. We must take the remainder every time through // the inner loop so that we don't overflow i to negative values. + List objList = (List) list; while (--lcm >= 0) { - Object o = list.get(lcm); + Object o = objList.get(lcm); for (int i = lcm + distance; i != lcm; i = (i + distance) % size) - o = list.set(i, o); - list.set(lcm, o); + o = objList.set(i, o); + objList.set(lcm, o); } } } @@ -1293,15 +1372,15 @@ public class Collections * @throws UnsupportedOperationException if l.listIterator() does not * support the set operation */ - public static void shuffle(List l) + public static void shuffle(List l) { if (defaultRandom == null) { synchronized (Collections.class) - { - if (defaultRandom == null) - defaultRandom = new Random(); - } + { + if (defaultRandom == null) + defaultRandom = new Random(); + } } shuffle(l, defaultRandom); } @@ -1336,15 +1415,16 @@ public class Collections * @throws UnsupportedOperationException if l.listIterator() does not * support the set operation */ - public static void shuffle(List l, Random r) + public static void shuffle(List l, Random r) { int lsize = l.size(); - ListIterator i = l.listIterator(lsize); + List list = (List) l; + ListIterator i = list.listIterator(lsize); boolean sequential = isSequential(l); Object[] a = null; // stores a copy of the list for the sequential case if (sequential) - a = l.toArray(); + a = list.toArray(); for (int pos = lsize - 1; pos > 0; --pos) { @@ -1360,12 +1440,94 @@ public class Collections a[swap] = i.previous(); } else - o = l.set(swap, i.previous()); + o = list.set(swap, i.previous()); i.set(o); } } + /** + * Returns the frequency of the specified object within the supplied + * collection. The frequency represents the number of occurrences of + * elements within the collection which return true when + * compared with the object using the equals method. + * + * @param c the collection to scan for occurrences of the object. + * @param o the object to locate occurrances of within the collection. + * @throws NullPointerException if the collection is null. + * @since 1.5 + */ + public static int frequency (Collection c, Object o) + { + int result = 0; + for (Object v : c) + { + if (AbstractCollection.equals(o, v)) + ++result; + } + return result; + } + + /** + * Adds all the specified elements to the given collection, in a similar + * way to the addAll method of the Collection. + * However, this is a variable argument method which allows the new elements + * to be specified individually or in array form, as opposed to the list + * required by the collection's addAll method. This has + * benefits in both simplicity (multiple elements can be added without + * having to be wrapped inside a grouping structure) and efficiency + * (as a redundant list doesn't have to be created to add an individual + * set of elements or an array). + * + * @param c the collection to which the elements should be added. + * @param a the elements to be added to the collection. + * @return true if the collection changed its contents as a result. + * @throws UnsupportedOperationException if the collection does not support + * addition. + * @throws NullPointerException if one or more elements in a are null, + * and the collection does not allow null + * elements. This exception is also thrown + * if either c or a + * are null. + * @throws IllegalArgumentException if the collection won't allow an element + * to be added for some other reason. + * @since 1.5 + */ + public static boolean addAll(Collection c, T... a) + { + boolean overall = false; + + for (T element : a) + { + boolean result = c.add(element); + if (result) + overall = true; + } + return overall; + } + + /** + * Returns true if the two specified collections have no elements in + * common. This method may give unusual results if one or both collections + * use a non-standard equality test. In the trivial case of comparing + * a collection with itself, this method returns true if, and only if, + * the collection is empty. + * + * @param c1 the first collection to compare. + * @param c2 the second collection to compare. + * @return true if the collections are disjoint. + * @throws NullPointerException if either collection is null. + * @since 1.5 + */ + public static boolean disjoint(Collection c1, Collection c2) + { + Collection oc1 = (Collection) c1; + for (Object o : oc1) + if (c2.contains(o)) + return false; + return true; + } + /** * Obtain an immutable Set consisting of a single element. The return value @@ -1375,9 +1537,9 @@ public class Collections * @return an immutable Set containing only o * @see Serializable */ - public static Set singleton(Object o) + public static Set singleton(T o) { - return new SingletonSet(o); + return new SingletonSet(o); } /** @@ -1386,7 +1548,7 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class SingletonSet extends AbstractSet + private static final class SingletonSet extends AbstractSet implements Serializable { /** @@ -1399,13 +1561,13 @@ public class Collections * The single element; package visible for use in nested class. * @serial the singleton */ - final Object element; + final T element; /** * Construct a singleton. * @param o the element */ - SingletonSet(Object o) + SingletonSet(T o) { element = o; } @@ -1422,9 +1584,9 @@ public class Collections /** * Returns an iterator over the lone element. */ - public Iterator iterator() + public Iterator iterator() { - return new Iterator() + return new Iterator() { /** * Flag to indicate whether or not the element has @@ -1450,7 +1612,7 @@ public class Collections * @throws NoSuchElementException if the object * has already been retrieved. */ - public Object next() + public T next() { if (hasNext) { @@ -1497,9 +1659,9 @@ public class Collections * @return true if c only contains either no elements or * elements equal to the element in this singleton. */ - public boolean containsAll(Collection c) + public boolean containsAll(Collection c) { - Iterator i = c.iterator(); + Iterator i = c.iterator(); int pos = c.size(); while (--pos >= 0) if (! equals(i.next(), element)) @@ -1549,9 +1711,9 @@ public class Collections * @see RandomAccess * @since 1.3 */ - public static List singletonList(Object o) + public static List singletonList(T o) { - return new SingletonList(o); + return new SingletonList(o); } /** @@ -1560,7 +1722,7 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class SingletonList extends AbstractList + private static final class SingletonList extends AbstractList implements Serializable, RandomAccess { /** @@ -1572,13 +1734,13 @@ public class Collections * The single element. * @serial the singleton */ - private final Object element; + private final T element; /** * Construct a singleton. * @param o the element */ - SingletonList(Object o) + SingletonList(T o) { element = o; } @@ -1601,7 +1763,7 @@ public class Collections * @throws IndexOutOfBoundsException if * index is not 0. */ - public Object get(int index) + public T get(int index) { if (index == 0) return element; @@ -1628,9 +1790,9 @@ public class Collections * @return true if c only contains either no elements or * elements equal to the element in this singleton. */ - public boolean containsAll(Collection c) + public boolean containsAll(Collection c) { - Iterator i = c.iterator(); + Iterator i = c.iterator(); int pos = c.size(); while (--pos >= 0) if (! equals(i.next(), element)) @@ -1682,7 +1844,7 @@ public class Collections * @throws IndexOutOfBoundsException if either bound is greater * than 1. */ - public List subList(int from, int to) + public List subList(int from, int to) { if (from == to && (to == 0 || to == 1)) return EMPTY_LIST; @@ -1725,9 +1887,9 @@ public class Collections * @see Serializable * @since 1.3 */ - public static Map singletonMap(Object key, Object value) + public static Map singletonMap(K key, V value) { - return new SingletonMap(key, value); + return new SingletonMap(key, value); } /** @@ -1736,7 +1898,7 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class SingletonMap extends AbstractMap + private static final class SingletonMap extends AbstractMap implements Serializable { /** @@ -1748,25 +1910,25 @@ public class Collections * The single key. * @serial the singleton key */ - private final Object k; + private final K k; /** * The corresponding value. * @serial the singleton value */ - private final Object v; + private final V v; /** * Cache the entry set. */ - private transient Set entries; + private transient Set> entries; /** * Construct a singleton. * @param key the key * @param value the value */ - SingletonMap(Object key, Object value) + SingletonMap(K key, V value) { k = key; v = value; @@ -1777,25 +1939,28 @@ public class Collections * * @return A singleton containing the map entry. */ - public Set entrySet() + public Set> entrySet() { if (entries == null) - entries = singleton(new AbstractMap.BasicMapEntry(k, v) - { - /** - * Sets the value of the map entry to the supplied value. - * An exception is always thrown, as the map is immutable. - * - * @param o The new value. - * @return The old value. - * @throws UnsupportedOperationException as setting the value - * is not supported. - */ - public Object setValue(Object o) - { - throw new UnsupportedOperationException(); - } - }); + { + Map.Entry entry = new AbstractMap.SimpleEntry(k, v) + { + /** + * Sets the value of the map entry to the supplied value. + * An exception is always thrown, as the map is immutable. + * + * @param o The new value. + * @return The old value. + * @throws UnsupportedOperationException as setting the value + * is not supported. + */ + public V setValue(V o) + { + throw new UnsupportedOperationException(); + } + }; + entries = singleton(entry); + } return entries; } @@ -1832,7 +1997,7 @@ public class Collections * @return The singleton value if the key is the same as the * singleton key, null otherwise. */ - public Object get(Object key) + public V get(Object key) { return equals(key, k) ? v : null; } @@ -1853,7 +2018,7 @@ public class Collections * * @return A singleton containing the key. */ - public Set keySet() + public Set keySet() { if (keys == null) keys = singleton(k); @@ -1876,7 +2041,7 @@ public class Collections * * @return A singleton containing the value. */ - public Collection values() + public Collection values() { if (values == null) values = singleton(v); @@ -1903,13 +2068,14 @@ public class Collections * sorts the array, and then iterates over the list setting each element from * the array. * - * @param l the List to sort + * @param l the List to sort (null not permitted) * @throws ClassCastException if some items are not mutually comparable * @throws UnsupportedOperationException if the List is not modifiable - * @throws NullPointerException if some element is null + * @throws NullPointerException if the list is null, or contains + * some element that is null. * @see Arrays#sort(Object[]) */ - public static void sort(List l) + public static > void sort(List l) { sort(l, null); } @@ -1922,24 +2088,26 @@ public class Collections * sorts the array, and then iterates over the list setting each element from * the array. * - * @param l the List to sort + * @param l the List to sort (null not permitted) * @param c the Comparator specifying the ordering for the elements, or - * null for natural ordering + * null for natural ordering * @throws ClassCastException if c will not compare some pair of items * @throws UnsupportedOperationException if the List is not modifiable - * @throws NullPointerException if null is compared by natural ordering - * (only possible when c is null) + * @throws NullPointerException if the List is null or + * null is compared by natural ordering (only possible + * when c is null) + * * @see Arrays#sort(Object[], Comparator) */ - public static void sort(List l, Comparator c) + public static void sort(List l, Comparator c) { - Object[] a = l.toArray(); + T[] a = (T[]) l.toArray(); Arrays.sort(a, c); - ListIterator i = l.listIterator(); + ListIterator i = l.listIterator(); for (int pos = 0, alen = a.length; pos < alen; pos++) { - i.next(); - i.set(a[pos]); + i.next(); + i.set(a[pos]); } } @@ -1955,9 +2123,10 @@ public class Collections * list.size() * @since 1.4 */ - public static void swap(List l, int i, int j) + public static void swap(List l, int i, int j) { - l.set(i, l.set(j, l.get(i))); + List list = (List) l; + list.set(i, list.set(j, list.get(i))); } @@ -1988,9 +2157,9 @@ public class Collections * @return a synchronized view of the collection * @see Serializable */ - public static Collection synchronizedCollection(Collection c) + public static Collection synchronizedCollection(Collection c) { - return new SynchronizedCollection(c); + return new SynchronizedCollection(c); } /** @@ -2001,8 +2170,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - static class SynchronizedCollection - implements Collection, Serializable + static class SynchronizedCollection + implements Collection, Serializable { /** * Compatible with JDK 1.4. @@ -2013,7 +2182,7 @@ public class Collections * The wrapped collection. Package visible for use by subclasses. * @serial the real collection */ - final Collection c; + final Collection c; /** * The object to synchronize on. When an instance is created via public @@ -2028,7 +2197,7 @@ public class Collections * @param c the collection to wrap * @throws NullPointerException if c is null */ - SynchronizedCollection(Collection c) + SynchronizedCollection(Collection c) { this.c = c; mutex = this; @@ -2042,7 +2211,7 @@ public class Collections * @param sync the mutex * @param c the collection */ - SynchronizedCollection(Object sync, Collection c) + SynchronizedCollection(Object sync, Collection c) { this.c = c; mutex = sync; @@ -2064,7 +2233,7 @@ public class Collections * @throws IllegalArgumentException if o cannot be added to this * collection for some other reason. */ - public boolean add(Object o) + public boolean add(T o) { synchronized (mutex) { @@ -2089,7 +2258,7 @@ public class Collections * @throws IllegalArgumentException if some element of col cannot be added * to this collection for some other reason. */ - public boolean addAll(Collection col) + public boolean addAll(Collection col) { synchronized (mutex) { @@ -2146,7 +2315,7 @@ public class Collections * collection does not support null values. * @throws NullPointerException if cl itself is null. */ - public boolean containsAll(Collection c1) + public boolean containsAll(Collection c1) { synchronized (mutex) { @@ -2177,11 +2346,11 @@ public class Collections * @return An iterator over the elements in the underlying collection, * which returns each element in any order. */ - public Iterator iterator() + public Iterator iterator() { synchronized (mutex) { - return new SynchronizedIterator(mutex, c.iterator()); + return new SynchronizedIterator(mutex, c.iterator()); } } @@ -2223,7 +2392,7 @@ public class Collections * collection does not support removing null values. * @throws NullPointerException if c itself is null. */ - public boolean removeAll(Collection col) + public boolean removeAll(Collection col) { synchronized (mutex) { @@ -2248,7 +2417,7 @@ public class Collections * collection does not support removing null values. * @throws NullPointerException if c itself is null. */ - public boolean retainAll(Collection col) + public boolean retainAll(Collection col) { synchronized (mutex) { @@ -2304,7 +2473,7 @@ public class Collections * @throws ArrayStoreException if the type of any element of the * collection is not a subtype of the element type of a. */ - public Object[] toArray(Object[] a) + public T[] toArray(T[] a) { synchronized (mutex) { @@ -2334,7 +2503,7 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class SynchronizedIterator implements Iterator + private static class SynchronizedIterator implements Iterator { /** * The object to synchronize on. Package visible for use by subclass. @@ -2344,14 +2513,14 @@ public class Collections /** * The wrapped iterator. */ - private final Iterator i; + private final Iterator i; /** * Only trusted code creates a wrapper, with the specified sync. * @param sync the mutex * @param i the wrapped iterator */ - SynchronizedIterator(Object sync, Iterator i) + SynchronizedIterator(Object sync, Iterator i) { this.i = i; mutex = sync; @@ -2364,7 +2533,7 @@ public class Collections * @return The next object in the collection. * @throws NoSuchElementException if there are no more elements */ - public Object next() + public T next() { synchronized (mutex) { @@ -2438,11 +2607,11 @@ public class Collections * @see Serializable * @see RandomAccess */ - public static List synchronizedList(List l) + public static List synchronizedList(List l) { if (l instanceof RandomAccess) - return new SynchronizedRandomAccessList(l); - return new SynchronizedList(l); + return new SynchronizedRandomAccessList(l); + return new SynchronizedList(l); } /** @@ -2453,8 +2622,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - static class SynchronizedList extends SynchronizedCollection - implements List + static class SynchronizedList extends SynchronizedCollection + implements List { /** * Compatible with JDK 1.4. @@ -2466,14 +2635,14 @@ public class Collections * excessive casting. Package visible for use by subclass. * @serial the wrapped list */ - final List list; + final List list; /** * Wrap a given list. * @param l the list to wrap * @throws NullPointerException if l is null */ - SynchronizedList(List l) + SynchronizedList(List l) { super(l); list = l; @@ -2484,7 +2653,7 @@ public class Collections * @param sync the mutex * @param l the list */ - SynchronizedList(Object sync, List l) + SynchronizedList(Object sync, List l) { super(sync, l); list = l; @@ -2509,7 +2678,7 @@ public class Collections * @throws NullPointerException if o is null and this list doesn't support * the addition of null values. */ - public void add(int index, Object o) + public void add(int index, T o) { synchronized (mutex) { @@ -2535,7 +2704,7 @@ public class Collections * @throws NullPointerException if o is null and this list doesn't support * the addition of null values. */ - public boolean addAll(int index, Collection c) + public boolean addAll(int index, Collection c) { synchronized (mutex) { @@ -2571,7 +2740,7 @@ public class Collections * @return the element at index index in this list * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object get(int index) + public T get(int index) { synchronized (mutex) { @@ -2648,11 +2817,11 @@ public class Collections * to be performed, in addition to those supplied by the * standard iterator. */ - public ListIterator listIterator() + public ListIterator listIterator() { synchronized (mutex) { - return new SynchronizedListIterator(mutex, list.listIterator()); + return new SynchronizedListIterator(mutex, list.listIterator()); } } @@ -2673,11 +2842,12 @@ public class Collections * standard iterator. * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public ListIterator listIterator(int index) + public ListIterator listIterator(int index) { synchronized (mutex) { - return new SynchronizedListIterator(mutex, list.listIterator(index)); + return new SynchronizedListIterator(mutex, + list.listIterator(index)); } } @@ -2692,7 +2862,7 @@ public class Collections * remove operation * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object remove(int index) + public T remove(int index) { synchronized (mutex) { @@ -2718,7 +2888,7 @@ public class Collections * @throws NullPointerException if o is null and this * list does not support null values. */ - public Object set(int index, Object o) + public T set(int index, T o) { synchronized (mutex) { @@ -2744,11 +2914,12 @@ public class Collections * @throws IndexOutOfBoundsException if fromIndex < 0 * || toIndex > size() || fromIndex > toIndex */ - public List subList(int fromIndex, int toIndex) + public List subList(int fromIndex, int toIndex) { synchronized (mutex) { - return new SynchronizedList(mutex, list.subList(fromIndex, toIndex)); + return new SynchronizedList(mutex, + list.subList(fromIndex, toIndex)); } } } // class SynchronizedList @@ -2760,8 +2931,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class SynchronizedRandomAccessList - extends SynchronizedList implements RandomAccess + private static final class SynchronizedRandomAccessList + extends SynchronizedList implements RandomAccess { /** * Compatible with JDK 1.4. @@ -2773,7 +2944,7 @@ public class Collections * @param l the list to wrap * @throws NullPointerException if l is null */ - SynchronizedRandomAccessList(List l) + SynchronizedRandomAccessList(List l) { super(l); } @@ -2784,7 +2955,7 @@ public class Collections * @param sync the mutex * @param l the list */ - SynchronizedRandomAccessList(Object sync, List l) + SynchronizedRandomAccessList(Object sync, List l) { super(sync, l); } @@ -2808,13 +2979,13 @@ public class Collections * @throws IndexOutOfBoundsException if fromIndex < 0 * || toIndex > size() || fromIndex > toIndex */ - public List subList(int fromIndex, int toIndex) + public List subList(int fromIndex, int toIndex) { synchronized (mutex) { - return new SynchronizedRandomAccessList(mutex, - list.subList(fromIndex, - toIndex)); + return new SynchronizedRandomAccessList(mutex, + list.subList(fromIndex, + toIndex)); } } } // class SynchronizedRandomAccessList @@ -2825,21 +2996,21 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class SynchronizedListIterator - extends SynchronizedIterator implements ListIterator + private static final class SynchronizedListIterator + extends SynchronizedIterator implements ListIterator { /** * The wrapped iterator, stored both here and in the superclass to * avoid excessive casting. */ - private final ListIterator li; + private final ListIterator li; /** * Only trusted code creates a wrapper, with the specified sync. * @param sync the mutex * @param li the wrapped iterator */ - SynchronizedListIterator(Object sync, ListIterator li) + SynchronizedListIterator(Object sync, ListIterator li) { super(sync, li); this.li = li; @@ -2863,7 +3034,7 @@ public class Collections * @throws UnsupportedOperationException if this ListIterator does not * support the add operation. */ - public void add(Object o) + public void add(T o) { synchronized (mutex) { @@ -2913,7 +3084,7 @@ public class Collections * @return the next element in the list in the reverse direction * @throws NoSuchElementException if there are no more elements */ - public Object previous() + public T previous() { synchronized (mutex) { @@ -2955,7 +3126,7 @@ public class Collections * @throws UnsupportedOperationException if this ListIterator does not * support the set operation */ - public void set(Object o) + public void set(T o) { synchronized (mutex) { @@ -2989,9 +3160,9 @@ public class Collections * @return a synchronized view of the map * @see Serializable */ - public static Map synchronizedMap(Map m) + public static Map synchronizedMap(Map m) { - return new SynchronizedMap(m); + return new SynchronizedMap(m); } /** @@ -3000,7 +3171,7 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class SynchronizedMap implements Map, Serializable + private static class SynchronizedMap implements Map, Serializable { /** * Compatible with JDK 1.4. @@ -3011,7 +3182,7 @@ public class Collections * The wrapped map. * @serial the real map */ - private final Map m; + private final Map m; /** * The object to synchronize on. When an instance is created via public @@ -3025,24 +3196,24 @@ public class Collections /** * Cache the entry set. */ - private transient Set entries; + private transient Set> entries; /** * Cache the key set. */ - private transient Set keys; + private transient Set keys; /** * Cache the value collection. */ - private transient Collection values; + private transient Collection values; /** * Wrap a given map. * @param m the map to wrap * @throws NullPointerException if m is null */ - SynchronizedMap(Map m) + SynchronizedMap(Map m) { this.m = m; mutex = this; @@ -3055,7 +3226,7 @@ public class Collections * @param sync the mutex * @param m the map */ - SynchronizedMap(Object sync, Map m) + SynchronizedMap(Object sync, Map m) { this.m = m; mutex = sync; @@ -3119,15 +3290,15 @@ public class Collections // means "return a SynchronizedSet, except that the iterator() method // returns an SynchronizedIterator whose next() method returns a // synchronized wrapper around its normal return value". - public Set entrySet() + public Set> entrySet() { // Define this here to spare some nesting. - class SynchronizedMapEntry implements Map.Entry + class SynchronizedMapEntry implements Map.Entry { - final Map.Entry e; - SynchronizedMapEntry(Object o) + final Map.Entry e; + SynchronizedMapEntry(Map.Entry o) { - e = (Map.Entry) o; + e = o; } /** @@ -3152,7 +3323,7 @@ public class Collections * * @return The key of the underlying map entry. */ - public Object getKey() + public K getKey() { synchronized (mutex) { @@ -3166,7 +3337,7 @@ public class Collections * * @return The value of the underlying map entry. */ - public Object getValue() + public V getValue() { synchronized (mutex) { @@ -3207,7 +3378,7 @@ public class Collections * prevents it from existing in this map. * @throws NullPointerException if the map forbids null values. */ - public Object setValue(Object value) + public V setValue(V value) { synchronized (mutex) { @@ -3234,7 +3405,7 @@ public class Collections if (entries == null) synchronized (mutex) { - entries = new SynchronizedSet(mutex, m.entrySet()) + entries = new SynchronizedSet>(mutex, m.entrySet()) { /** * Returns an iterator over the set. The iterator has no specific order, @@ -3244,11 +3415,12 @@ public class Collections * * @return A synchronized set iterator. */ - public Iterator iterator() + public Iterator> iterator() { synchronized (super.mutex) { - return new SynchronizedIterator(super.mutex, c.iterator()) + return new SynchronizedIterator>(super.mutex, + c.iterator()) { /** * Retrieves the next map entry from the iterator. @@ -3258,11 +3430,11 @@ public class Collections * * @return A synchronized map entry. */ - public Object next() + public Map.Entry next() { synchronized (super.mutex) { - return new SynchronizedMapEntry(super.next()); + return new SynchronizedMapEntry(super.next()); } } }; @@ -3306,7 +3478,7 @@ public class Collections * @throws ClassCastException if the key is an inappropriate type. * @throws NullPointerException if this map does not accept null keys. */ - public Object get(Object key) + public V get(Object key) { synchronized (mutex) { @@ -3356,12 +3528,12 @@ public class Collections * * @return A synchronized set containing the keys of the underlying map. */ - public Set keySet() + public Set keySet() { if (keys == null) synchronized (mutex) { - keys = new SynchronizedSet(mutex, m.keySet()); + keys = new SynchronizedSet(mutex, m.keySet()); } return keys; } @@ -3384,7 +3556,7 @@ public class Collections * and the map forbids null keys or values * @see #containsKey(Object) */ - public Object put(Object key, Object value) + public V put(K key, V value) { synchronized (mutex) { @@ -3406,7 +3578,7 @@ public class Collections * if m is null. * @see #put(Object, Object) */ - public void putAll(Map map) + public void putAll(Map map) { synchronized (mutex) { @@ -3429,7 +3601,7 @@ public class Collections * @throws ClassCastException if the type of the key is not a valid type * for this map. */ - public Object remove(Object o) + public V remove(Object o) { synchronized (mutex) { @@ -3482,12 +3654,12 @@ public class Collections * * @return the collection of all values in the underlying map. */ - public Collection values() + public Collection values() { if (values == null) synchronized (mutex) { - values = new SynchronizedCollection(mutex, m.values()); + values = new SynchronizedCollection(mutex, m.values()); } return values; } @@ -3517,9 +3689,9 @@ public class Collections * @return a synchronized view of the set * @see Serializable */ - public static Set synchronizedSet(Set s) + public static Set synchronizedSet(Set s) { - return new SynchronizedSet(s); + return new SynchronizedSet(s); } /** @@ -3530,8 +3702,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - static class SynchronizedSet extends SynchronizedCollection - implements Set + static class SynchronizedSet extends SynchronizedCollection + implements Set { /** * Compatible with JDK 1.4. @@ -3543,7 +3715,7 @@ public class Collections * @param s the set to wrap * @throws NullPointerException if s is null */ - SynchronizedSet(Set s) + SynchronizedSet(Set s) { super(s); } @@ -3553,7 +3725,7 @@ public class Collections * @param sync the mutex * @param s the set */ - SynchronizedSet(Object sync, Set s) + SynchronizedSet(Object sync, Set s) { super(sync, s); } @@ -3623,9 +3795,9 @@ public class Collections * @return a synchronized view of the sorted map * @see Serializable */ - public static SortedMap synchronizedSortedMap(SortedMap m) + public static SortedMap synchronizedSortedMap(SortedMap m) { - return new SynchronizedSortedMap(m); + return new SynchronizedSortedMap(m); } /** @@ -3634,8 +3806,9 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class SynchronizedSortedMap extends SynchronizedMap - implements SortedMap + private static final class SynchronizedSortedMap + extends SynchronizedMap + implements SortedMap { /** * Compatible with JDK 1.4. @@ -3647,14 +3820,14 @@ public class Collections * excessive casting. * @serial the wrapped map */ - private final SortedMap sm; + private final SortedMap sm; /** * Wrap a given map. * @param sm the map to wrap * @throws NullPointerException if sm is null */ - SynchronizedSortedMap(SortedMap sm) + SynchronizedSortedMap(SortedMap sm) { super(sm); this.sm = sm; @@ -3665,7 +3838,7 @@ public class Collections * @param sync the mutex * @param sm the map */ - SynchronizedSortedMap(Object sync, SortedMap sm) + SynchronizedSortedMap(Object sync, SortedMap sm) { super(sync, sm); this.sm = sm; @@ -3678,7 +3851,7 @@ public class Collections * * @return the sorting comparator. */ - public Comparator comparator() + public Comparator comparator() { synchronized (mutex) { @@ -3693,7 +3866,7 @@ public class Collections * @return the first key. * @throws NoSuchElementException if this map is empty. */ - public Object firstKey() + public K firstKey() { synchronized (mutex) { @@ -3720,11 +3893,11 @@ public class Collections * @throws NullPointerException if toKey is null. but the map does not allow * null keys. */ - public SortedMap headMap(Object toKey) + public SortedMap headMap(K toKey) { synchronized (mutex) { - return new SynchronizedSortedMap(mutex, sm.headMap(toKey)); + return new SynchronizedSortedMap(mutex, sm.headMap(toKey)); } } @@ -3735,7 +3908,7 @@ public class Collections * @return the last key. * @throws NoSuchElementException if this map is empty. */ - public Object lastKey() + public K lastKey() { synchronized (mutex) { @@ -3761,11 +3934,12 @@ public class Collections * @throws NullPointerException if fromKey or toKey is null. but the map does * not allow null keys. */ - public SortedMap subMap(Object fromKey, Object toKey) + public SortedMap subMap(K fromKey, K toKey) { synchronized (mutex) { - return new SynchronizedSortedMap(mutex, sm.subMap(fromKey, toKey)); + return new SynchronizedSortedMap(mutex, + sm.subMap(fromKey, toKey)); } } @@ -3785,11 +3959,11 @@ public class Collections * @throws NullPointerException if fromKey is null. but the map does not allow * null keys. */ - public SortedMap tailMap(Object fromKey) + public SortedMap tailMap(K fromKey) { synchronized (mutex) { - return new SynchronizedSortedMap(mutex, sm.tailMap(fromKey)); + return new SynchronizedSortedMap(mutex, sm.tailMap(fromKey)); } } } // class SynchronizedSortedMap @@ -3819,9 +3993,9 @@ public class Collections * @return a synchronized view of the sorted set * @see Serializable */ - public static SortedSet synchronizedSortedSet(SortedSet s) + public static SortedSet synchronizedSortedSet(SortedSet s) { - return new SynchronizedSortedSet(s); + return new SynchronizedSortedSet(s); } /** @@ -3830,8 +4004,9 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class SynchronizedSortedSet extends SynchronizedSet - implements SortedSet + private static final class SynchronizedSortedSet + extends SynchronizedSet + implements SortedSet { /** * Compatible with JDK 1.4. @@ -3843,14 +4018,14 @@ public class Collections * excessive casting. * @serial the wrapped set */ - private final SortedSet ss; + private final SortedSet ss; /** * Wrap a given set. * @param ss the set to wrap * @throws NullPointerException if ss is null */ - SynchronizedSortedSet(SortedSet ss) + SynchronizedSortedSet(SortedSet ss) { super(ss); this.ss = ss; @@ -3861,7 +4036,7 @@ public class Collections * @param sync the mutex * @param ss the set */ - SynchronizedSortedSet(Object sync, SortedSet ss) + SynchronizedSortedSet(Object sync, SortedSet ss) { super(sync, ss); this.ss = ss; @@ -3874,7 +4049,7 @@ public class Collections * * @return the sorting comparator. */ - public Comparator comparator() + public Comparator comparator() { synchronized (mutex) { @@ -3889,7 +4064,7 @@ public class Collections * @return the first element. * @throws NoSuchElementException if this set is empty. */ - public Object first() + public T first() { synchronized (mutex) { @@ -3916,11 +4091,11 @@ public class Collections * @throws NullPointerException if toElement is null. but the set does not allow * null elements. */ - public SortedSet headSet(Object toElement) + public SortedSet headSet(T toElement) { synchronized (mutex) { - return new SynchronizedSortedSet(mutex, ss.headSet(toElement)); + return new SynchronizedSortedSet(mutex, ss.headSet(toElement)); } } @@ -3931,7 +4106,7 @@ public class Collections * @return the last element. * @throws NoSuchElementException if this set is empty. */ - public Object last() + public T last() { synchronized (mutex) { @@ -3957,12 +4132,13 @@ public class Collections * @throws NullPointerException if fromElement or toElement is null. but the set does * not allow null elements. */ - public SortedSet subSet(Object fromElement, Object toElement) + public SortedSet subSet(T fromElement, T toElement) { synchronized (mutex) { - return new SynchronizedSortedSet(mutex, - ss.subSet(fromElement, toElement)); + return new SynchronizedSortedSet(mutex, + ss.subSet(fromElement, + toElement)); } } @@ -3982,11 +4158,11 @@ public class Collections * @throws NullPointerException if fromElement is null. but the set does not allow * null elements. */ - public SortedSet tailSet(Object fromElement) + public SortedSet tailSet(T fromElement) { synchronized (mutex) { - return new SynchronizedSortedSet(mutex, ss.tailSet(fromElement)); + return new SynchronizedSortedSet(mutex, ss.tailSet(fromElement)); } } } // class SynchronizedSortedSet @@ -4011,9 +4187,9 @@ public class Collections * @return a read-only view of the collection * @see Serializable */ - public static Collection unmodifiableCollection(Collection c) + public static Collection unmodifiableCollection(Collection c) { - return new UnmodifiableCollection(c); + return new UnmodifiableCollection(c); } /** @@ -4022,8 +4198,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class UnmodifiableCollection - implements Collection, Serializable + private static class UnmodifiableCollection + implements Collection, Serializable { /** * Compatible with JDK 1.4. @@ -4034,14 +4210,14 @@ public class Collections * The wrapped collection. Package visible for use by subclasses. * @serial the real collection */ - final Collection c; + final Collection c; /** * Wrap a given collection. * @param c the collection to wrap * @throws NullPointerException if c is null */ - UnmodifiableCollection(Collection c) + UnmodifiableCollection(Collection c) { this.c = c; if (c == null) @@ -4057,7 +4233,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable collection does not * support the add operation. */ - public boolean add(Object o) + public boolean add(T o) { throw new UnsupportedOperationException(); } @@ -4071,7 +4247,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable collection does not * support the addAll operation. */ - public boolean addAll(Collection c) + public boolean addAll(Collection c) { throw new UnsupportedOperationException(); } @@ -4119,7 +4295,7 @@ public class Collections * collection does not support null values. * @throws NullPointerException if c itself is null. */ - public boolean containsAll(Collection c1) + public boolean containsAll(Collection c1) { return c.containsAll(c1); } @@ -4142,9 +4318,9 @@ public class Collections * @return an UnmodifiableIterator over the elements of the underlying * collection, in any order. */ - public Iterator iterator() + public Iterator iterator() { - return new UnmodifiableIterator(c.iterator()); + return new UnmodifiableIterator(c.iterator()); } /** @@ -4172,7 +4348,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable collection * does not support the removeAll() operation. */ - public boolean removeAll(Collection c) + public boolean removeAll(Collection c) { throw new UnsupportedOperationException(); } @@ -4187,7 +4363,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable collection * does not support the retainAll() operation. */ - public boolean retainAll(Collection c) + public boolean retainAll(Collection c) { throw new UnsupportedOperationException(); } @@ -4231,7 +4407,7 @@ public class Collections * @throws ArrayStoreException if the type of any element of the * collection is not a subtype of the element type of a. */ - public Object[] toArray(Object[] a) + public S[] toArray(S[] a) { return c.toArray(a); } @@ -4253,18 +4429,18 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class UnmodifiableIterator implements Iterator + private static class UnmodifiableIterator implements Iterator { /** * The wrapped iterator. */ - private final Iterator i; + private final Iterator i; /** * Only trusted code creates a wrapper. * @param i the wrapped iterator */ - UnmodifiableIterator(Iterator i) + UnmodifiableIterator(Iterator i) { this.i = i; } @@ -4275,10 +4451,11 @@ public class Collections * @return the next element in the collection. * @throws NoSuchElementException if there are no more elements. */ - public Object next() + public T next() { return i.next(); } + /** * Tests whether there are still elements to be retrieved from the * underlying collection by next(). When this method @@ -4325,11 +4502,11 @@ public class Collections * @see Serializable * @see RandomAccess */ - public static List unmodifiableList(List l) + public static List unmodifiableList(List l) { if (l instanceof RandomAccess) - return new UnmodifiableRandomAccessList(l); - return new UnmodifiableList(l); + return new UnmodifiableRandomAccessList(l); + return new UnmodifiableList(l); } /** @@ -4339,8 +4516,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class UnmodifiableList extends UnmodifiableCollection - implements List + private static class UnmodifiableList extends UnmodifiableCollection + implements List { /** * Compatible with JDK 1.4. @@ -4353,17 +4530,17 @@ public class Collections * excessive casting. Package visible for use by subclass. * @serial the wrapped list */ - final List list; + final List list; /** * Wrap a given list. * @param l the list to wrap * @throws NullPointerException if l is null */ - UnmodifiableList(List l) + UnmodifiableList(List l) { super(l); - list = l; + list = (List) l; } /** @@ -4376,7 +4553,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable * list doesn't support the add() operation. */ - public void add(int index, Object o) + public void add(int index, T o) { throw new UnsupportedOperationException(); } @@ -4391,7 +4568,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable * list doesn't support the addAll() operation. */ - public boolean addAll(int index, Collection c) + public boolean addAll(int index, Collection c) { throw new UnsupportedOperationException(); } @@ -4416,7 +4593,7 @@ public class Collections * @return the element at index index in this list * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object get(int index) + public T get(int index) { return list.get(index); } @@ -4474,9 +4651,9 @@ public class Collections * @return a UnmodifiableListIterator over the elements of the * underlying list, in order, starting at the beginning. */ - public ListIterator listIterator() + public ListIterator listIterator() { - return new UnmodifiableListIterator(list.listIterator()); + return new UnmodifiableListIterator(list.listIterator()); } /** @@ -4493,9 +4670,9 @@ public class Collections * underlying list, in order, starting at the specified index. * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public ListIterator listIterator(int index) + public ListIterator listIterator(int index) { - return new UnmodifiableListIterator(list.listIterator(index)); + return new UnmodifiableListIterator(list.listIterator(index)); } /** @@ -4508,7 +4685,7 @@ public class Collections * list does not support the remove() * operation. */ - public Object remove(int index) + public T remove(int index) { throw new UnsupportedOperationException(); } @@ -4524,7 +4701,7 @@ public class Collections * list does not support the set() * operation. */ - public Object set(int index, Object o) + public T set(int index, T o) { throw new UnsupportedOperationException(); } @@ -4544,7 +4721,7 @@ public class Collections * @throws IndexOutOfBoundsException if fromIndex < 0 * || toIndex > size() || fromIndex > toIndex. */ - public List subList(int fromIndex, int toIndex) + public List subList(int fromIndex, int toIndex) { return unmodifiableList(list.subList(fromIndex, toIndex)); } @@ -4557,8 +4734,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class UnmodifiableRandomAccessList - extends UnmodifiableList implements RandomAccess + private static final class UnmodifiableRandomAccessList + extends UnmodifiableList implements RandomAccess { /** * Compatible with JDK 1.4. @@ -4570,7 +4747,7 @@ public class Collections * @param l the list to wrap * @throws NullPointerException if l is null */ - UnmodifiableRandomAccessList(List l) + UnmodifiableRandomAccessList(List l) { super(l); } @@ -4581,20 +4758,20 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class UnmodifiableListIterator - extends UnmodifiableIterator implements ListIterator + private static final class UnmodifiableListIterator + extends UnmodifiableIterator implements ListIterator { /** * The wrapped iterator, stored both here and in the superclass to * avoid excessive casting. */ - private final ListIterator li; + private final ListIterator li; /** * Only trusted code creates a wrapper. * @param li the wrapped iterator */ - UnmodifiableListIterator(ListIterator li) + UnmodifiableListIterator(ListIterator li) { super(li); this.li = li; @@ -4608,7 +4785,7 @@ public class Collections * @throws UnsupportedOperationException as the iterator of an unmodifiable * list does not support the add() operation. */ - public void add(Object o) + public void add(T o) { throw new UnsupportedOperationException(); } @@ -4645,7 +4822,7 @@ public class Collections * @return the previous element in the list. * @throws NoSuchElementException if there are no more prior elements. */ - public Object previous() + public T previous() { return li.previous(); } @@ -4671,7 +4848,7 @@ public class Collections * @throws UnsupportedOperationException as the iterator of an unmodifiable * list does not support the set() operation. */ - public void set(Object o) + public void set(T o) { throw new UnsupportedOperationException(); } @@ -4694,9 +4871,10 @@ public class Collections * @return a read-only view of the map * @see Serializable */ - public static Map unmodifiableMap(Map m) + public static Map unmodifiableMap(Map m) { - return new UnmodifiableMap(m); + return new UnmodifiableMap(m); } /** @@ -4705,7 +4883,7 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class UnmodifiableMap implements Map, Serializable + private static class UnmodifiableMap implements Map, Serializable { /** * Compatible with JDK 1.4. @@ -4716,31 +4894,31 @@ public class Collections * The wrapped map. * @serial the real map */ - private final Map m; + private final Map m; /** * Cache the entry set. */ - private transient Set entries; + private transient Set> entries; /** * Cache the key set. */ - private transient Set keys; + private transient Set keys; /** * Cache the value collection. */ - private transient Collection values; + private transient Collection values; /** * Wrap a given map. * @param m the map to wrap * @throws NullPointerException if m is null */ - UnmodifiableMap(Map m) + UnmodifiableMap(Map m) { - this.m = m; + this.m = (Map) m; if (m == null) throw new NullPointerException(); } @@ -4801,10 +4979,10 @@ public class Collections * @return the unmodifiable set view of all mapping entries. * @see Map.Entry */ - public Set entrySet() + public Set> entrySet() { if (entries == null) - entries = new UnmodifiableEntrySet(m.entrySet()); + entries = new UnmodifiableEntrySet(m.entrySet()); return entries; } @@ -4814,17 +4992,18 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class UnmodifiableEntrySet extends UnmodifiableSet + private static final class UnmodifiableEntrySet + extends UnmodifiableSet> implements Serializable { // Unmodifiable implementation of Map.Entry used as return value for // UnmodifiableEntrySet accessors (iterator, toArray, toArray(Object[])) - private static final class UnmodifiableMapEntry - implements Map.Entry + private static final class UnmodifiableMapEntry + implements Map.Entry { - private final Map.Entry e; + private final Map.Entry e; - private UnmodifiableMapEntry(Map.Entry e) + private UnmodifiableMapEntry(Map.Entry e) { super(); this.e = e; @@ -4847,7 +5026,7 @@ public class Collections * * @return the key. */ - public Object getKey() + public K getKey() { return e.getKey(); } @@ -4857,7 +5036,7 @@ public class Collections * * @return the value. */ - public Object getValue() + public V getValue() { return e.getValue(); } @@ -4882,7 +5061,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable map entry * does not support the setValue() operation. */ - public Object setValue(Object value) + public V setValue(V value) { throw new UnsupportedOperationException(); } @@ -4907,15 +5086,15 @@ public class Collections * Wrap a given set. * @param s the set to wrap */ - UnmodifiableEntrySet(Set s) + UnmodifiableEntrySet(Set> s) { super(s); } // The iterator must return unmodifiable map entries. - public Iterator iterator() + public Iterator> iterator() { - return new UnmodifiableIterator(c.iterator()) + return new UnmodifiableIterator>(c.iterator()) { /** * Obtains the next element from the underlying set of @@ -4924,49 +5103,45 @@ public class Collections * @return the next element in the collection. * @throws NoSuchElementException if there are no more elements. */ - public Object next() + public Map.Entry next() { - final Map.Entry e = (Map.Entry) super.next(); - return new UnmodifiableMapEntry(e); - } + final Map.Entry e = super.next(); + return new UnmodifiableMapEntry(e); + } }; } // The array returned is an array of UnmodifiableMapEntry instead of // Map.Entry - public Object[] toArray() + public Map.Entry[] toArray() { - Object[] mapEntryResult = super.toArray(); - UnmodifiableMapEntry result[] = null; - + Map.Entry[] mapEntryResult = (Map.Entry[]) super.toArray(); + UnmodifiableMapEntry result[] = null; + if (mapEntryResult != null) { - result = new UnmodifiableMapEntry[mapEntryResult.length]; - for (int i = 0; i < mapEntryResult.length; i++) - { - Map.Entry r = (Map.Entry) mapEntryResult[i]; - result[i] = new UnmodifiableMapEntry(r); - } - } + result = (UnmodifiableMapEntry[]) + new UnmodifiableMapEntry[mapEntryResult.length]; + for (int i = 0; i < mapEntryResult.length; ++i) + result[i] = new UnmodifiableMapEntry(mapEntryResult[i]); + } return result; } - + // The array returned is an array of UnmodifiableMapEntry instead of // Map.Entry - public Object[] toArray(Object[] array) + public Map.Entry[] toArray(Map.Entry[] array) { super.toArray(array); - + if (array != null) - { - for (int i = 0; i < array.length; i++) - { - array[i] = new UnmodifiableMapEntry((Map.Entry) array[i]); - } - } + for (int i = 0; i < array.length; i++) + array[i] = + new UnmodifiableMapEntry(array[i]); return array; } + } // class UnmodifiableEntrySet /** @@ -4994,7 +5169,7 @@ public class Collections * @throws NullPointerException if this map does not accept null keys. * @see #containsKey(Object) */ - public Object get(Object key) + public V get(Object key) { return m.get(key); } @@ -5009,7 +5184,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable * map does not support the put() operation. */ - public Object put(Object key, Object value) + public V put(K key, V value) { throw new UnsupportedOperationException(); } @@ -5045,10 +5220,10 @@ public class Collections * * @return the set view of all keys. */ - public Set keySet() + public Set keySet() { if (keys == null) - keys = new UnmodifiableSet(m.keySet()); + keys = new UnmodifiableSet(m.keySet()); return keys; } @@ -5061,7 +5236,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable * map does not support the putAll operation. */ - public void putAll(Map m) + public void putAll(Map m) { throw new UnsupportedOperationException(); } @@ -5077,7 +5252,7 @@ public class Collections * @throws UnsupportedOperationException as an unmodifiable * map does not support the remove operation. */ - public Object remove(Object o) + public V remove(Object o) { throw new UnsupportedOperationException(); } @@ -5114,10 +5289,10 @@ public class Collections * * @return the collection view of all values. */ - public Collection values() + public Collection values() { if (values == null) - values = new UnmodifiableCollection(m.values()); + values = new UnmodifiableCollection(m.values()); return values; } } // class UnmodifiableMap @@ -5139,9 +5314,9 @@ public class Collections * @return a read-only view of the set * @see Serializable */ - public static Set unmodifiableSet(Set s) + public static Set unmodifiableSet(Set s) { - return new UnmodifiableSet(s); + return new UnmodifiableSet(s); } /** @@ -5150,8 +5325,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class UnmodifiableSet extends UnmodifiableCollection - implements Set + private static class UnmodifiableSet extends UnmodifiableCollection + implements Set { /** * Compatible with JDK 1.4. @@ -5163,7 +5338,7 @@ public class Collections * @param s the set to wrap * @throws NullPointerException if s is null */ - UnmodifiableSet(Set s) + UnmodifiableSet(Set s) { super(s); } @@ -5208,9 +5383,10 @@ public class Collections * @return a read-only view of the map * @see Serializable */ - public static SortedMap unmodifiableSortedMap(SortedMap m) + public static SortedMap unmodifiableSortedMap(SortedMap m) { - return new UnmodifiableSortedMap(m); + return new UnmodifiableSortedMap(m); } /** @@ -5219,8 +5395,9 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class UnmodifiableSortedMap extends UnmodifiableMap - implements SortedMap + private static class UnmodifiableSortedMap + extends UnmodifiableMap + implements SortedMap { /** * Compatible with JDK 1.4. @@ -5232,17 +5409,17 @@ public class Collections * excessive casting. * @serial the wrapped map */ - private final SortedMap sm; + private final SortedMap sm; /** * Wrap a given map. * @param sm the map to wrap * @throws NullPointerException if sm is null */ - UnmodifiableSortedMap(SortedMap sm) + UnmodifiableSortedMap(SortedMap sm) { super(sm); - this.sm = sm; + this.sm = (SortedMap) sm; } /** @@ -5251,7 +5428,7 @@ public class Collections * * @return the sorting comparator. */ - public Comparator comparator() + public Comparator comparator() { return sm.comparator(); } @@ -5262,7 +5439,7 @@ public class Collections * @return the first key. * @throws NoSuchElementException if this map is empty. */ - public Object firstKey() + public K firstKey() { return sm.firstKey(); } @@ -5289,9 +5466,9 @@ public class Collections * @throws NullPointerException if toKey is null but the map does not allow * null keys. */ - public SortedMap headMap(Object toKey) + public SortedMap headMap(K toKey) { - return new UnmodifiableSortedMap(sm.headMap(toKey)); + return new UnmodifiableSortedMap(sm.headMap(toKey)); } /** @@ -5300,7 +5477,7 @@ public class Collections * @return the last key. * @throws NoSuchElementException if this map is empty. */ - public Object lastKey() + public K lastKey() { return sm.lastKey(); } @@ -5331,9 +5508,9 @@ public class Collections * @throws NullPointerException if fromKey or toKey is null but the map * does not allow null keys. */ - public SortedMap subMap(Object fromKey, Object toKey) + public SortedMap subMap(K fromKey, K toKey) { - return new UnmodifiableSortedMap(sm.subMap(fromKey, toKey)); + return new UnmodifiableSortedMap(sm.subMap(fromKey, toKey)); } /** @@ -5358,9 +5535,9 @@ public class Collections * @throws NullPointerException if fromKey is null but the map does not allow * null keys */ - public SortedMap tailMap(Object fromKey) + public SortedMap tailMap(K fromKey) { - return new UnmodifiableSortedMap(sm.tailMap(fromKey)); + return new UnmodifiableSortedMap(sm.tailMap(fromKey)); } } // class UnmodifiableSortedMap @@ -5381,9 +5558,9 @@ public class Collections * @return a read-only view of the set * @see Serializable */ - public static SortedSet unmodifiableSortedSet(SortedSet s) + public static SortedSet unmodifiableSortedSet(SortedSet s) { - return new UnmodifiableSortedSet(s); + return new UnmodifiableSortedSet(s); } /** @@ -5392,8 +5569,8 @@ public class Collections * * @author Eric Blake (ebb9@email.byu.edu) */ - private static class UnmodifiableSortedSet extends UnmodifiableSet - implements SortedSet + private static class UnmodifiableSortedSet extends UnmodifiableSet + implements SortedSet { /** * Compatible with JDK 1.4. @@ -5405,14 +5582,14 @@ public class Collections * excessive casting. * @serial the wrapped set */ - private SortedSet ss; + private SortedSet ss; /** * Wrap a given set. * @param ss the set to wrap * @throws NullPointerException if ss is null */ - UnmodifiableSortedSet(SortedSet ss) + UnmodifiableSortedSet(SortedSet ss) { super(ss); this.ss = ss; @@ -5424,7 +5601,7 @@ public class Collections * * @return the sorting comparator */ - public Comparator comparator() + public Comparator comparator() { return ss.comparator(); } @@ -5436,7 +5613,7 @@ public class Collections * @return the first element. * @throws NoSuchElementException if the set is empty. */ - public Object first() + public T first() { return ss.first(); } @@ -5464,9 +5641,9 @@ public class Collections * @throws NullPointerException if toElement is null but the set does not * allow null elements. */ - public SortedSet headSet(Object toElement) + public SortedSet headSet(T toElement) { - return new UnmodifiableSortedSet(ss.headSet(toElement)); + return new UnmodifiableSortedSet(ss.headSet(toElement)); } /** @@ -5476,7 +5653,7 @@ public class Collections * @return the last element. * @throws NoSuchElementException if the set is empty. */ - public Object last() + public T last() { return ss.last(); } @@ -5507,9 +5684,9 @@ public class Collections * @throws NullPointerException if fromElement or toElement is null but the * set does not allow null elements. */ - public SortedSet subSet(Object fromElement, Object toElement) + public SortedSet subSet(T fromElement, T toElement) { - return new UnmodifiableSortedSet(ss.subSet(fromElement, toElement)); + return new UnmodifiableSortedSet(ss.subSet(fromElement, toElement)); } /** @@ -5533,9 +5710,1717 @@ public class Collections * @throws NullPointerException if fromElement is null but the set does not * allow null elements. */ - public SortedSet tailSet(Object fromElement) + public SortedSet tailSet(T fromElement) { - return new UnmodifiableSortedSet(ss.tailSet(fromElement)); + return new UnmodifiableSortedSet(ss.tailSet(fromElement)); } } // class UnmodifiableSortedSet + + /** + *

    + * Returns a dynamically typesafe view of the given collection, + * where any modification is first checked to ensure that the type + * of the new data is appropriate. Although the addition of + * generics and parametrically-typed collections prevents an + * incorrect type of element being added to a collection at + * compile-time, via static type checking, this can be overridden by + * casting. In contrast, wrapping the collection within a + * dynamically-typesafe wrapper, using this and associated methods, + * guarantees that the collection will only contain + * elements of an appropriate type (provided it only contains such + * at the type of wrapping, and all subsequent access is via the + * wrapper). This can be useful for debugging the cause of a + * ClassCastException caused by erroneous casting, or + * for protecting collections from corruption by external libraries. + *

    + *

    + * Since the collection might be a List or a Set, and those + * have incompatible equals and hashCode requirements, this relies + * on Object's implementation rather than passing those calls on to + * the wrapped collection. The returned Collection implements + * Serializable, but can only be serialized if the collection it + * wraps is likewise Serializable. + *

    + * + * @param c the collection to wrap in a dynamically typesafe wrapper + * @param type the type of elements the collection should hold. + * @return a dynamically typesafe view of the collection. + * @see Serializable + * @since 1.5 + */ + public static Collection checkedCollection(Collection c, + Class type) + { + return new CheckedCollection(c, type); + } + + /** + * The implementation of {@link #checkedCollection(Collection,Class)}. This + * class name is required for compatibility with Sun's JDK serializability. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static class CheckedCollection + implements Collection, Serializable + { + /** + * Compatible with JDK 1.5. + */ + private static final long serialVersionUID = 1578914078182001775L; + + /** + * The wrapped collection. Package visible for use by subclasses. + * @serial the real collection + */ + final Collection c; + + /** + * The type of the elements of this collection. + * @serial the element type. + */ + final Class type; + + /** + * Wrap a given collection. + * @param c the collection to wrap + * @param type the type to wrap + * @throws NullPointerException if c is null + */ + CheckedCollection(Collection c, Class type) + { + this.c = c; + this.type = type; + if (c == null) + throw new NullPointerException(); + } + + /** + * Adds the supplied object to the collection, on the condition that + * it is of the correct type. + * + * @param o the object to add. + * @return true if the collection was modified as a result + * of this action. + * @throws ClassCastException if the object is not of the correct type. + */ + public boolean add(E o) + { + if (type.isInstance(o)) + return c.add(o); + else + throw new ClassCastException("The element is of the incorrect type."); + } + + /** + * Adds the elements of the specified collection to the backing collection, + * provided they are all of the correct type. + * + * @param coll the collection to add. + * @return true if the collection was modified as a result + * of this action. + * @throws ClassCastException if c contained elements of an + * incorrect type. + */ + public boolean addAll(Collection coll) + { + Collection typedColl = (Collection) c; + for (E element : typedColl) + { + if (!type.isInstance(element)) + throw new ClassCastException("A member of the collection is not of the correct type."); + } + return c.addAll(typedColl); + } + + /** + * Removes all elements from the underlying collection. + */ + public void clear() + { + c.clear(); + } + + /** + * Test whether the underlying collection contains a given object as one + * of its elements. + * + * @param o the element to look for. + * @return true if the underlying collection contains at least + * one element e such that + * o == null ? e == null : o.equals(e). + * @throws ClassCastException if the type of o is not a valid type for the + * underlying collection. + * @throws NullPointerException if o is null and the underlying collection + * doesn't support null values. + */ + public boolean contains(Object o) + { + return c.contains(o); + } + + /** + * Test whether the underlying collection contains every element in a given + * collection. + * + * @param coll the collection to test for. + * @return true if for every element o in c, contains(o) would + * return true. + * @throws ClassCastException if the type of any element in c is not a + * valid type for the underlying collection. + * @throws NullPointerException if some element of c is null and the + * underlying collection does not support + * null values. + * @throws NullPointerException if c itself is null. + */ + public boolean containsAll(Collection coll) + { + return c.containsAll(coll); + } + + /** + * Tests whether the underlying collection is empty, that is, + * if size() == 0. + * + * @return true if this collection contains no elements. + */ + public boolean isEmpty() + { + return c.isEmpty(); + } + + /** + * Obtain an Iterator over the underlying collection, which maintains + * its checked nature. + * + * @return a Iterator over the elements of the underlying + * collection, in any order. + */ + public Iterator iterator() + { + return new CheckedIterator(c.iterator(), type); + } + + /** + * Removes the supplied object from the collection, if it exists. + * + * @param o The object to remove. + * @return true if the object was removed (i.e. the underlying + * collection returned 1 or more instances of o). + */ + public boolean remove(Object o) + { + return c.remove(o); + } + + /** + * Removes all objects in the supplied collection from the backing + * collection, if they exist within it. + * + * @param coll the collection of objects to remove. + * @return true if the collection was modified. + */ + public boolean removeAll(Collection coll) + { + return c.removeAll(coll); + } + + /** + * Retains all objects specified by the supplied collection which exist + * within the backing collection, and removes all others. + * + * @param coll the collection of objects to retain. + * @return true if the collection was modified. + */ + public boolean retainAll(Collection coll) + { + return c.retainAll(coll); + } + + /** + * Retrieves the number of elements in the underlying collection. + * + * @return the number of elements in the collection. + */ + public int size() + { + return c.size(); + } + + /** + * Copy the current contents of the underlying collection into an array. + * + * @return an array of type Object[] with a length equal to the size of the + * underlying collection and containing the elements currently in + * the underlying collection, in any order. + */ + public Object[] toArray() + { + return c.toArray(); + } + + /** + *

    + * Copy the current contents of the underlying collection into an array. If + * the array passed as an argument has length less than the size of the + * underlying collection, an array of the same run-time type as a, with a + * length equal to the size of the underlying collection, is allocated + * using reflection. + *

    + *

    + * Otherwise, a itself is used. The elements of the underlying collection + * are copied into it, and if there is space in the array, the following + * element is set to null. The resultant array is returned. + *

    + *

    + * Note: The fact that the following element is set to null + * is only useful if it is known that this collection does not contain + * any null elements. + * + * @param a the array to copy this collection into. + * @return an array containing the elements currently in the underlying + * collection, in any order. + * @throws ArrayStoreException if the type of any element of the + * collection is not a subtype of the element type of a. + */ + public S[] toArray(S[] a) + { + return c.toArray(a); + } + + /** + * A textual representation of the unmodifiable collection. + * + * @return The checked collection in the form of a String. + */ + public String toString() + { + return c.toString(); + } + } // class CheckedCollection + + /** + * The implementation of the various iterator methods in the + * checked classes. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static class CheckedIterator + implements Iterator + { + /** + * The wrapped iterator. + */ + private final Iterator i; + + /** + * The type of the elements of this collection. + * @serial the element type. + */ + final Class type; + + /** + * Only trusted code creates a wrapper. + * @param i the wrapped iterator + * @param type the type of the elements within the checked list. + */ + CheckedIterator(Iterator i, Class type) + { + this.i = i; + this.type = type; + } + + /** + * Obtains the next element in the underlying collection. + * + * @return the next element in the collection. + * @throws NoSuchElementException if there are no more elements. + */ + public E next() + { + return i.next(); + } + + /** + * Tests whether there are still elements to be retrieved from the + * underlying collection by next(). When this method + * returns true, an exception will not be thrown on calling + * next(). + * + * @return true if there is at least one more element in the + * underlying collection. + */ + public boolean hasNext() + { + return i.hasNext(); + } + + /** + * Removes the next element from the collection. + */ + public void remove() + { + i.remove(); + } + } // class CheckedIterator + + /** + *

    + * Returns a dynamically typesafe view of the given list, + * where any modification is first checked to ensure that the type + * of the new data is appropriate. Although the addition of + * generics and parametrically-typed collections prevents an + * incorrect type of element being added to a collection at + * compile-time, via static type checking, this can be overridden by + * casting. In contrast, wrapping the collection within a + * dynamically-typesafe wrapper, using this and associated methods, + * guarantees that the collection will only contain + * elements of an appropriate type (provided it only contains such + * at the type of wrapping, and all subsequent access is via the + * wrapper). This can be useful for debugging the cause of a + * ClassCastException caused by erroneous casting, or + * for protecting collections from corruption by external libraries. + *

    + *

    + * The returned List implements Serializable, but can only be serialized if + * the list it wraps is likewise Serializable. In addition, if the wrapped + * list implements RandomAccess, this does too. + *

    + * + * @param l the list to wrap + * @param type the type of the elements within the checked list. + * @return a dynamically typesafe view of the list + * @see Serializable + * @see RandomAccess + */ + public static List checkedList(List l, Class type) + { + if (l instanceof RandomAccess) + return new CheckedRandomAccessList(l, type); + return new CheckedList(l, type); + } + + /** + * The implementation of {@link #checkedList(List,Class)} for sequential + * lists. This class name is required for compatibility with Sun's JDK + * serializability. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static class CheckedList + extends CheckedCollection + implements List + { + /** + * Compatible with JDK 1.5. + */ + private static final long serialVersionUID = 65247728283967356L; + + /** + * The wrapped list; stored both here and in the superclass to avoid + * excessive casting. Package visible for use by subclass. + * @serial the wrapped list + */ + final List list; + + /** + * Wrap a given list. + * @param l the list to wrap + * @param type the type of the elements within the checked list. + * @throws NullPointerException if l is null + */ + CheckedList(List l, Class type) + { + super(l, type); + list = l; + } + + /** + * Adds the supplied element to the underlying list at the specified + * index, provided it is of the right type. + * + * @param index The index at which to place the new element. + * @param o the object to add. + * @throws ClassCastException if the type of the object is not a + * valid type for the underlying collection. + */ + public void add(int index, E o) + { + if (type.isInstance(o)) + list.add(index, o); + else + throw new ClassCastException("The object is of the wrong type."); + } + + /** + * Adds the members of the supplied collection to the underlying + * collection at the specified index, provided they are all of the + * correct type. + * + * @param index the index at which to place the new element. + * @param c the collections of objects to add. + * @throws ClassCastException if the type of any element in c is not a + * valid type for the underlying collection. + */ + public boolean addAll(int index, Collection coll) + { + Collection typedColl = (Collection) coll; + for (E element : typedColl) + { + if (!type.isInstance(element)) + throw new ClassCastException("A member of the collection is not of the correct type."); + } + return list.addAll(index, coll); + } + + /** + * Returns true if the object, o, is an instance of + * List with the same size and elements + * as the underlying list. + * + * @param o The object to compare. + * @return true if o is equivalent to the underlying list. + */ + public boolean equals(Object o) + { + return list.equals(o); + } + + /** + * Retrieves the element at a given index in the underlying list. + * + * @param index the index of the element to be returned + * @return the element at the specified index in the underlying list + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + */ + public E get(int index) + { + return list.get(index); + } + + /** + * Computes the hash code for the underlying list. + * The exact computation is described in the documentation + * of the List interface. + * + * @return The hash code of the underlying list. + * @see List#hashCode() + */ + public int hashCode() + { + return list.hashCode(); + } + + /** + * Obtain the first index at which a given object is to be found in the + * underlying list. + * + * @param o the object to search for + * @return the least integer n such that o == null ? get(n) == null : + * o.equals(get(n)), or -1 if there is no such index. + * @throws ClassCastException if the type of o is not a valid + * type for the underlying list. + * @throws NullPointerException if o is null and the underlying + * list does not support null values. + */ + public int indexOf(Object o) + { + return list.indexOf(o); + } + + /** + * Obtain the last index at which a given object is to be found in the + * underlying list. + * + * @return the greatest integer n such that + * o == null ? get(n) == null : o.equals(get(n)), + * or -1 if there is no such index. + * @throws ClassCastException if the type of o is not a valid + * type for the underlying list. + * @throws NullPointerException if o is null and the underlying + * list does not support null values. + */ + public int lastIndexOf(Object o) + { + return list.lastIndexOf(o); + } + + /** + * Obtains a list iterator over the underlying list, starting at the + * beginning and maintaining the checked nature of this list. + * + * @return a CheckedListIterator over the elements of the + * underlying list, in order, starting at the beginning. + */ + public ListIterator listIterator() + { + return new CheckedListIterator(list.listIterator(), type); + } + + /** + * Obtains a list iterator over the underlying list, starting at the + * specified index and maintaining the checked nature of this list. An + * initial call to next() will retrieve the element at the + * specified index, and an initial call to previous() will + * retrieve the element at index - 1. + * + * @param index the position, between 0 and size() inclusive, to begin the + * iteration from. + * @return a CheckedListIterator over the elements of the + * underlying list, in order, starting at the specified index. + * @throws IndexOutOfBoundsException if index < 0 || index > size() + */ + public ListIterator listIterator(int index) + { + return new CheckedListIterator(list.listIterator(index), type); + } + + /** + * Removes the element at the specified index. + * + * @param index The index of the element to remove. + * @return the removed element. + */ + public E remove(int index) + { + return list.remove(index); + } + + /** + * Replaces the element at the specified index in the underlying list + * with that supplied. + * + * @param index the index of the element to replace. + * @param o the new object to place at the specified index. + * @return the replaced element. + */ + public E set(int index, E o) + { + return list.set(index, o); + } + + /** + * Obtain a List view of a subsection of the underlying list, from + * fromIndex (inclusive) to toIndex (exclusive). If the two indices + * are equal, the sublist is empty. The returned list will be + * checked, like this list. Changes to the elements of the + * returned list will be reflected in the underlying list. The effect + * of structural modifications is undefined. + * + * @param fromIndex the index that the returned list should start from + * (inclusive). + * @param toIndex the index that the returned list should go + * to (exclusive). + * @return a List backed by a subsection of the underlying list. + * @throws IndexOutOfBoundsException if fromIndex < 0 + * || toIndex > size() || fromIndex > toIndex. + */ + public List subList(int fromIndex, int toIndex) + { + return checkedList(list.subList(fromIndex, toIndex), type); + } + } // class CheckedList + + /** + * The implementation of {@link #checkedList(List)} for random-access + * lists. This class name is required for compatibility with Sun's JDK + * serializability. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static final class CheckedRandomAccessList + extends CheckedList + implements RandomAccess + { + /** + * Compatible with JDK 1.5. + */ + private static final long serialVersionUID = 1638200125423088369L; + + /** + * Wrap a given list. + * @param l the list to wrap + * @param type the type of the elements within the checked list. + * @throws NullPointerException if l is null + */ + CheckedRandomAccessList(List l, Class type) + { + super(l, type); + } + } // class CheckedRandomAccessList + + /** + * The implementation of {@link CheckedList#listIterator()}. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static final class CheckedListIterator + extends CheckedIterator + implements ListIterator + { + /** + * The wrapped iterator, stored both here and in the superclass to + * avoid excessive casting. + */ + private final ListIterator li; + + /** + * Only trusted code creates a wrapper. + * @param li the wrapped iterator + */ + CheckedListIterator(ListIterator li, Class type) + { + super(li, type); + this.li = li; + } + + /** + * Adds the supplied object at the current iterator position, provided + * it is of the correct type. + * + * @param o the object to add. + * @throws ClassCastException if the type of the object is not a + * valid type for the underlying collection. + */ + public void add(E o) + { + if (type.isInstance(o)) + li.add(o); + else + throw new ClassCastException("The object is of the wrong type."); + } + + /** + * Tests whether there are still elements to be retrieved from the + * underlying collection by previous(). When this method + * returns true, an exception will not be thrown on calling + * previous(). + * + * @return true if there is at least one more element prior + * to the current position in the underlying list. + */ + public boolean hasPrevious() + { + return li.hasPrevious(); + } + + /** + * Find the index of the element that would be returned by a call to next. + * If hasNext() returns false, this returns the + * list size. + * + * @return the index of the element that would be returned by + * next(). + */ + public int nextIndex() + { + return li.nextIndex(); + } + + /** + * Obtains the previous element in the underlying list. + * + * @return the previous element in the list. + * @throws NoSuchElementException if there are no more prior elements. + */ + public E previous() + { + return li.previous(); + } + + /** + * Find the index of the element that would be returned by a call to + * previous. If hasPrevious() returns false, + * this returns -1. + * + * @return the index of the element that would be returned by + * previous(). + */ + public int previousIndex() + { + return li.previousIndex(); + } + + /** + * Sets the next element to that supplied, provided that it is of the + * correct type. + * + * @param o The new object to replace the existing one. + * @throws ClassCastException if the type of the object is not a + * valid type for the underlying collection. + */ + public void set(E o) + { + if (type.isInstance(o)) + li.set(o); + else + throw new ClassCastException("The object is of the wrong type."); + } + } // class CheckedListIterator + + /** + *

    + * Returns a dynamically typesafe view of the given map, + * where any modification is first checked to ensure that the type + * of the new data is appropriate. Although the addition of + * generics and parametrically-typed collections prevents an + * incorrect type of element being added to a collection at + * compile-time, via static type checking, this can be overridden by + * casting. In contrast, wrapping the collection within a + * dynamically-typesafe wrapper, using this and associated methods, + * guarantees that the collection will only contain + * elements of an appropriate type (provided it only contains such + * at the type of wrapping, and all subsequent access is via the + * wrapper). This can be useful for debugging the cause of a + * ClassCastException caused by erroneous casting, or + * for protecting collections from corruption by external libraries. + *

    + *

    + * The returned Map implements Serializable, but can only be serialized if + * the map it wraps is likewise Serializable. + *

    + * + * @param m the map to wrap + * @param keyType the dynamic type of the map's keys. + * @param valueType the dynamic type of the map's values. + * @return a dynamically typesafe view of the map + * @see Serializable + */ + public static Map checkedMap(Map m, Class keyType, + Class valueType) + { + return new CheckedMap(m, keyType, valueType); + } + + /** + * The implementation of {@link #checkedMap(Map)}. This + * class name is required for compatibility with Sun's JDK serializability. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static class CheckedMap + implements Map, Serializable + { + /** + * Compatible with JDK 1.5. + */ + private static final long serialVersionUID = 5742860141034234728L; + + /** + * The wrapped map. + * @serial the real map + */ + private final Map m; + + /** + * The type of the map's keys. + * @serial the key type. + */ + final Class keyType; + + /** + * The type of the map's values. + * @serial the value type. + */ + final Class valueType; + + /** + * Cache the entry set. + */ + private transient Set> entries; + + /** + * Cache the key set. + */ + private transient Set keys; + + /** + * Cache the value collection. + */ + private transient Collection values; + + /** + * Wrap a given map. + * @param m the map to wrap + * @param keyType the dynamic type of the map's keys. + * @param valueType the dynamic type of the map's values. + * @throws NullPointerException if m is null + */ + CheckedMap(Map m, Class keyType, Class valueType) + { + this.m = m; + this.keyType = keyType; + this.valueType = valueType; + if (m == null) + throw new NullPointerException(); + } + + /** + * Clears all pairs from the map. + */ + public void clear() + { + m.clear(); + } + + /** + * Returns true if the underlying map contains a mapping for + * the given key. + * + * @param key the key to search for + * @return true if the map contains the key + * @throws ClassCastException if the key is of an inappropriate type + * @throws NullPointerException if key is null but the map + * does not permit null keys + */ + public boolean containsKey(Object key) + { + return m.containsKey(key); + } + + /** + * Returns true if the underlying map contains at least one + * mapping with the given value. In other words, it returns + * true if a value v exists where + * (value == null ? v == null : value.equals(v)). + * This usually requires linear time. + * + * @param value the value to search for + * @return true if the map contains the value + * @throws ClassCastException if the type of the value is not a valid type + * for this map. + * @throws NullPointerException if the value is null and the map doesn't + * support null values. + */ + public boolean containsValue(Object value) + { + return m.containsValue(value); + } + + /** + *

    + * Returns a checked set view of the entries in the underlying map. + * Each element in the set is a unmodifiable variant of + * Map.Entry. + *

    + *

    + * The set is backed by the map, so that changes in one show up in the + * other. Modifications made while an iterator is in progress cause + * undefined behavior. + *

    + * + * @return the checked set view of all mapping entries. + * @see Map.Entry + */ + public Set> entrySet() + { + if (entries == null) + { + Class> klass = + (Class>) (Class) Map.Entry.class; + entries = new CheckedEntrySet,K,V>(m.entrySet(), + klass, + keyType, + valueType); + } + return entries; + } + + /** + * The implementation of {@link CheckedMap#entrySet()}. This class + * is not serializable. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static final class CheckedEntrySet + extends CheckedSet + { + /** + * The type of the map's keys. + * @serial the key type. + */ + private final Class keyType; + + /** + * The type of the map's values. + * @serial the value type. + */ + private final Class valueType; + + /** + * Wrap a given set of map entries. + * + * @param s the set to wrap. + * @param type the type of the set's entries. + * @param keyType the type of the map's keys. + * @param valueType the type of the map's values. + */ + CheckedEntrySet(Set s, Class type, Class keyType, + Class valueType) + { + super(s, type); + this.keyType = keyType; + this.valueType = valueType; + } + + // The iterator must return checked map entries. + public Iterator iterator() + { + return new CheckedIterator(c.iterator(), type) + { + /** + * Obtains the next element from the underlying set of + * map entries. + * + * @return the next element in the collection. + * @throws NoSuchElementException if there are no more elements. + */ + public E next() + { + final Map.Entry e = (Map.Entry) super.next(); + return (E) new Map.Entry() + { + /** + * Returns true if the object, o, is also a map + * entry with an identical key and value. + * + * @param o the object to compare. + * @return true if o is an equivalent map entry. + */ + public boolean equals(Object o) + { + return e.equals(o); + } + + /** + * Returns the key of this map entry. + * + * @return the key. + */ + public Object getKey() + { + return e.getKey(); + } + + /** + * Returns the value of this map entry. + * + * @return the value. + */ + public Object getValue() + { + return e.getValue(); + } + + /** + * Computes the hash code of this map entry. + * The computation is described in the Map + * interface documentation. + * + * @return the hash code of this entry. + * @see Map#hashCode() + */ + public int hashCode() + { + return e.hashCode(); + } + + /** + * Sets the value of this map entry, provided it is of the + * right type. + * + * @param value The new value. + * @throws ClassCastException if the type of the value is not + * a valid type for the underlying + * map. + */ + public Object setValue(Object value) + { + if (valueType.isInstance(value)) + return e.setValue(value); + else + throw new ClassCastException("The value is of the wrong type."); + } + + /** + * Returns a textual representation of the map entry. + * + * @return The map entry as a String. + */ + public String toString() + { + return e.toString(); + } + }; + } + }; + } + } // class CheckedEntrySet + + /** + * Returns true if the object, o, is also an instance + * of Map with an equal set of map entries. + * + * @param o The object to compare. + * @return true if o is an equivalent map. + */ + public boolean equals(Object o) + { + return m.equals(o); + } + + /** + * Returns the value associated with the supplied key or + * null if no such mapping exists. An ambiguity can occur + * if null values are accepted by the underlying map. + * In this case, containsKey() can be used + * to separate the two possible cases of a null result. + * + * @param key The key to look up. + * @return the value associated with the key, or null if key not in map. + * @throws ClassCastException if the key is an inappropriate type. + * @throws NullPointerException if this map does not accept null keys. + * @see #containsKey(Object) + */ + public V get(Object key) + { + return m.get(key); + } + + /** + * Adds a new pair to the map, provided both the key and the value are + * of the correct types. + * + * @param key The new key. + * @param value The new value. + * @return the previous value of the key, or null if there was no mapping. + * @throws ClassCastException if the type of the key or the value is + * not a valid type for the underlying map. + */ + public V put(K key, V value) + { + if (keyType.isInstance(key)) + { + if (valueType.isInstance(value)) + return m.put(key,value); + else + throw new ClassCastException("The value is of the wrong type."); + } + throw new ClassCastException("The key is of the wrong type."); + } + + /** + * Computes the hash code for the underlying map, as the sum + * of the hash codes of all entries. + * + * @return The hash code of the underlying map. + * @see Map.Entry#hashCode() + */ + public int hashCode() + { + return m.hashCode(); + } + + /** + * Returns true if the underlying map contains no entries. + * + * @return true if the map is empty. + */ + public boolean isEmpty() + { + return m.isEmpty(); + } + + /** + *

    + * Returns a checked set view of the keys in the underlying map. + * The set is backed by the map, so that changes in one show up in the + * other. + *

    + *

    + * Modifications made while an iterator is in progress cause undefined + * behavior. These modifications are again limited to the values of + * the keys. + *

    + * + * @return the set view of all keys. + */ + public Set keySet() + { + if (keys == null) + keys = new CheckedSet(m.keySet(), keyType); + return keys; + } + + /** + * Adds all pairs within the supplied map to the underlying map, + * provided they are all have the correct key and value types. + * + * @param m the map, the entries of which should be added + * to the underlying map. + * @throws ClassCastException if the type of a key or value is + * not a valid type for the underlying map. + */ + public void putAll(Map map) + { + Map typedMap = (Map) map; + for (Map.Entry entry : typedMap.entrySet()) + { + if (!keyType.isInstance(entry.getKey())) + throw new ClassCastException("A key is of the wrong type."); + if (!valueType.isInstance(entry.getValue())) + throw new ClassCastException("A value is of the wrong type."); + } + m.putAll(typedMap); + } + + /** + * Removes a pair from the map. + * + * @param o The key of the entry to remove. + * @return The value the key was associated with, or null + * if no such mapping existed. Null is also returned + * if the removed entry had a null key. + * @throws UnsupportedOperationException as an unmodifiable + * map does not support the remove operation. + */ + public V remove(Object o) + { + return m.remove(o); + } + + + /** + * Returns the number of key-value mappings in the underlying map. + * If there are more than Integer.MAX_VALUE mappings, Integer.MAX_VALUE + * is returned. + * + * @return the number of mappings. + */ + public int size() + { + return m.size(); + } + + /** + * Returns a textual representation of the map. + * + * @return The map in the form of a String. + */ + public String toString() + { + return m.toString(); + } + + /** + *

    + * Returns a unmodifiable collection view of the values in the underlying + * map. The collection is backed by the map, so that changes in one show + * up in the other. + *

    + *

    + * Modifications made while an iterator is in progress cause undefined + * behavior. These modifications are again limited to the values of + * the keys. + *

    + * + * @return the collection view of all values. + */ + public Collection values() + { + if (values == null) + values = new CheckedCollection(m.values(), valueType); + return values; + } + } // class CheckedMap + + /** + *

    + * Returns a dynamically typesafe view of the given set, + * where any modification is first checked to ensure that the type + * of the new data is appropriate. Although the addition of + * generics and parametrically-typed collections prevents an + * incorrect type of element being added to a collection at + * compile-time, via static type checking, this can be overridden by + * casting. In contrast, wrapping the collection within a + * dynamically-typesafe wrapper, using this and associated methods, + * guarantees that the collection will only contain + * elements of an appropriate type (provided it only contains such + * at the type of wrapping, and all subsequent access is via the + * wrapper). This can be useful for debugging the cause of a + * ClassCastException caused by erroneous casting, or + * for protecting collections from corruption by external libraries. + *

    + *

    + * The returned Set implements Serializable, but can only be serialized if + * the set it wraps is likewise Serializable. + *

    + * + * @param s the set to wrap. + * @param type the type of the elements within the checked list. + * @return a dynamically typesafe view of the set + * @see Serializable + */ + public static Set checkedSet(Set s, Class type) + { + return new CheckedSet(s, type); + } + + /** + * The implementation of {@link #checkedSet(Set)}. This class + * name is required for compatibility with Sun's JDK serializability. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static class CheckedSet + extends CheckedCollection + implements Set + { + /** + * Compatible with JDK 1.5. + */ + private static final long serialVersionUID = 4694047833775013803L; + + /** + * Wrap a given set. + * + * @param s the set to wrap + * @throws NullPointerException if s is null + */ + CheckedSet(Set s, Class type) + { + super(s, type); + } + + /** + * Returns true if the object, o, is also an instance of + * Set of the same size and with the same entries. + * + * @return true if o is an equivalent set. + */ + public boolean equals(Object o) + { + return c.equals(o); + } + + /** + * Computes the hash code of this set, as the sum of the + * hash codes of all elements within the set. + * + * @return the hash code of the set. + */ + public int hashCode() + { + return c.hashCode(); + } + } // class CheckedSet + + /** + *

    + * Returns a dynamically typesafe view of the given sorted map, + * where any modification is first checked to ensure that the type + * of the new data is appropriate. Although the addition of + * generics and parametrically-typed collections prevents an + * incorrect type of element being added to a collection at + * compile-time, via static type checking, this can be overridden by + * casting. In contrast, wrapping the collection within a + * dynamically-typesafe wrapper, using this and associated methods, + * guarantees that the collection will only contain + * elements of an appropriate type (provided it only contains such + * at the type of wrapping, and all subsequent access is via the + * wrapper). This can be useful for debugging the cause of a + * ClassCastException caused by erroneous casting, or + * for protecting collections from corruption by external libraries. + *

    + *

    + * The returned SortedMap implements Serializable, but can only be + * serialized if the map it wraps is likewise Serializable. + *

    + * + * @param m the map to wrap. + * @param keyType the dynamic type of the map's keys. + * @param valueType the dynamic type of the map's values. + * @return a dynamically typesafe view of the map + * @see Serializable + */ + public static SortedMap checkedSortedMap(SortedMap m, + Class keyType, + Class valueType) + { + return new CheckedSortedMap(m, keyType, valueType); + } + + /** + * The implementation of {@link #checkedSortedMap(SortedMap,Class,Class)}. + * This class name is required for compatibility with Sun's JDK + * serializability. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class CheckedSortedMap + extends CheckedMap + implements SortedMap + { + /** + * Compatible with JDK 1.5. + */ + private static final long serialVersionUID = 1599671320688067438L; + + /** + * The wrapped map; stored both here and in the superclass to avoid + * excessive casting. + * @serial the wrapped map + */ + private final SortedMap sm; + + /** + * Wrap a given map. + * + * @param sm the map to wrap + * @param keyType the dynamic type of the map's keys. + * @param valueType the dynamic type of the map's values. + * @throws NullPointerException if sm is null + */ + CheckedSortedMap(SortedMap sm, Class keyType, Class valueType) + { + super(sm, keyType, valueType); + this.sm = sm; + } + + /** + * Returns the comparator used in sorting the underlying map, + * or null if it is the keys' natural ordering. + * + * @return the sorting comparator. + */ + public Comparator comparator() + { + return sm.comparator(); + } + + /** + * Returns the first (lowest sorted) key in the map. + * + * @return the first key. + * @throws NoSuchElementException if this map is empty. + */ + public K firstKey() + { + return sm.firstKey(); + } + + /** + *

    + * Returns a checked view of the portion of the map strictly less + * than toKey. The view is backed by the underlying map, so changes in + * one show up in the other. The submap supports all optional operations + * of the original. This operation is equivalent to + * subMap(firstKey(), toKey). + *

    + *

    + * The returned map throws an IllegalArgumentException any time a key is + * used which is out of the range of toKey. Note that the endpoint, toKey, + * is not included; if you want this value to be included, pass its + * successor object in to toKey. For example, for Integers, you could + * request headMap(new Integer(limit.intValue() + 1)). + *

    + * + * @param toKey the exclusive upper range of the submap. + * @return the submap. + * @throws ClassCastException if toKey is not comparable to the map + * contents. + * @throws IllegalArgumentException if this is a subMap, and toKey is out + * of range. + * @throws NullPointerException if toKey is null but the map does not allow + * null keys. + */ + public SortedMap headMap(K toKey) + { + return new CheckedSortedMap(sm.headMap(toKey), keyType, valueType); + } + + /** + * Returns the last (highest sorted) key in the map. + * + * @return the last key. + * @throws NoSuchElementException if this map is empty. + */ + public K lastKey() + { + return sm.lastKey(); + } + + /** + *

    + * Returns a checked view of the portion of the map greater than or + * equal to fromKey, and strictly less than toKey. The view is backed by + * the underlying map, so changes in one show up in the other. The submap + * supports all optional operations of the original. + *

    + *

    + * The returned map throws an IllegalArgumentException any time a key is + * used which is out of the range of fromKey and toKey. Note that the + * lower endpoint is included, but the upper is not; if you want to + * change the inclusion or exclusion of an endpoint, pass its successor + * object in instead. For example, for Integers, you could request + * subMap(new Integer(lowlimit.intValue() + 1), + * new Integer(highlimit.intValue() + 1)) to reverse + * the inclusiveness of both endpoints. + *

    + * + * @param fromKey the inclusive lower range of the submap. + * @param toKey the exclusive upper range of the submap. + * @return the submap. + * @throws ClassCastException if fromKey or toKey is not comparable to + * the map contents. + * @throws IllegalArgumentException if this is a subMap, and fromKey or + * toKey is out of range. + * @throws NullPointerException if fromKey or toKey is null but the map + * does not allow null keys. + */ + public SortedMap subMap(K fromKey, K toKey) + { + return new CheckedSortedMap(sm.subMap(fromKey, toKey), keyType, + valueType); + } + + /** + *

    + * Returns a checked view of the portion of the map greater than or + * equal to fromKey. The view is backed by the underlying map, so changes + * in one show up in the other. The submap supports all optional operations + * of the original. + *

    + *

    + * The returned map throws an IllegalArgumentException any time a key is + * used which is out of the range of fromKey. Note that the endpoint, + * fromKey, is included; if you do not want this value to be included, + * pass its successor object in to fromKey. For example, for Integers, + * you could request + * tailMap(new Integer(limit.intValue() + 1)). + *

    + * + * @param fromKey the inclusive lower range of the submap + * @return the submap + * @throws ClassCastException if fromKey is not comparable to the map + * contents + * @throws IllegalArgumentException if this is a subMap, and fromKey is out + * of range + * @throws NullPointerException if fromKey is null but the map does not + * allow null keys + */ + public SortedMap tailMap(K fromKey) + { + return new CheckedSortedMap(sm.tailMap(fromKey), keyType, + valueType); + } + } // class CheckedSortedMap + + /** + *

    + * Returns a dynamically typesafe view of the given sorted set, + * where any modification is first checked to ensure that the type + * of the new data is appropriate. Although the addition of + * generics and parametrically-typed collections prevents an + * incorrect type of element being added to a collection at + * compile-time, via static type checking, this can be overridden by + * casting. In contrast, wrapping the collection within a + * dynamically-typesafe wrapper, using this and associated methods, + * guarantees that the collection will only contain + * elements of an appropriate type (provided it only contains such + * at the type of wrapping, and all subsequent access is via the + * wrapper). This can be useful for debugging the cause of a + * ClassCastException caused by erroneous casting, or + * for protecting collections from corruption by external libraries. + *

    + *

    + * The returned SortedSet implements Serializable, but can only be + * serialized if the set it wraps is likewise Serializable. + *

    + * + * @param s the set to wrap. + * @param type the type of the set's elements. + * @return a dynamically typesafe view of the set + * @see Serializable + */ + public static SortedSet checkedSortedSet(SortedSet s, + Class type) + { + return new CheckedSortedSet(s, type); + } + + /** + * The implementation of {@link #checkedSortedSet(SortedSet,Class)}. This + * class name is required for compatibility with Sun's JDK serializability. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private static class CheckedSortedSet + extends CheckedSet + implements SortedSet + { + /** + * Compatible with JDK 1.4. + */ + private static final long serialVersionUID = 1599911165492914959L; + + /** + * The wrapped set; stored both here and in the superclass to avoid + * excessive casting. + * + * @serial the wrapped set + */ + private SortedSet ss; + + /** + * Wrap a given set. + * + * @param ss the set to wrap. + * @param type the type of the set's elements. + * @throws NullPointerException if ss is null + */ + CheckedSortedSet(SortedSet ss, Class type) + { + super(ss, type); + this.ss = ss; + } + + /** + * Returns the comparator used in sorting the underlying set, + * or null if it is the elements' natural ordering. + * + * @return the sorting comparator + */ + public Comparator comparator() + { + return ss.comparator(); + } + + /** + * Returns the first (lowest sorted) element in the underlying + * set. + * + * @return the first element. + * @throws NoSuchElementException if the set is empty. + */ + public E first() + { + return ss.first(); + } + + /** + *

    + * Returns a checked view of the portion of the set strictly + * less than toElement. The view is backed by the underlying set, + * so changes in one show up in the other. The subset supports + * all optional operations of the original. This operation + * is equivalent to subSet(first(), toElement). + *

    + *

    + * The returned set throws an IllegalArgumentException any time an + * element is used which is out of the range of toElement. Note that + * the endpoint, toElement, is not included; if you want this value + * included, pass its successor object in to toElement. For example, + * for Integers, you could request + * headSet(new Integer(limit.intValue() + 1)). + *

    + * + * @param toElement the exclusive upper range of the subset + * @return the subset. + * @throws ClassCastException if toElement is not comparable to the set + * contents. + * @throws IllegalArgumentException if this is a subSet, and toElement is + * out of range. + * @throws NullPointerException if toElement is null but the set does not + * allow null elements. + */ + public SortedSet headSet(E toElement) + { + return new CheckedSortedSet(ss.headSet(toElement), type); + } + + /** + * Returns the last (highest sorted) element in the underlying + * set. + * + * @return the last element. + * @throws NoSuchElementException if the set is empty. + */ + public E last() + { + return ss.last(); + } + + /** + *

    + * Returns a checked view of the portion of the set greater than or + * equal to fromElement, and strictly less than toElement. The view is + * backed by the underlying set, so changes in one show up in the other. + * The subset supports all optional operations of the original. + *

    + *

    + * The returned set throws an IllegalArgumentException any time an + * element is used which is out of the range of fromElement and toElement. + * Note that the lower endpoint is included, but the upper is not; if you + * want to change the inclusion or exclusion of an endpoint, pass its + * successor object in instead. For example, for Integers, you can request + * subSet(new Integer(lowlimit.intValue() + 1), + * new Integer(highlimit.intValue() + 1)) to reverse + * the inclusiveness of both endpoints. + *

    + * + * @param fromElement the inclusive lower range of the subset. + * @param toElement the exclusive upper range of the subset. + * @return the subset. + * @throws ClassCastException if fromElement or toElement is not comparable + * to the set contents. + * @throws IllegalArgumentException if this is a subSet, and fromElement or + * toElement is out of range. + * @throws NullPointerException if fromElement or toElement is null but the + * set does not allow null elements. + */ + public SortedSet subSet(E fromElement, E toElement) + { + return new CheckedSortedSet(ss.subSet(fromElement, toElement), type); + } + + /** + *

    + * Returns a checked view of the portion of the set greater than or equal + * to fromElement. The view is backed by the underlying set, so changes in + * one show up in the other. The subset supports all optional operations + * of the original. + *

    + *

    + * The returned set throws an IllegalArgumentException any time an + * element is used which is out of the range of fromElement. Note that + * the endpoint, fromElement, is included; if you do not want this value + * to be included, pass its successor object in to fromElement. For + * example, for Integers, you could request + * tailSet(new Integer(limit.intValue() + 1)). + *

    + * + * @param fromElement the inclusive lower range of the subset + * @return the subset. + * @throws ClassCastException if fromElement is not comparable to the set + * contents. + * @throws IllegalArgumentException if this is a subSet, and fromElement is + * out of range. + * @throws NullPointerException if fromElement is null but the set does not + * allow null elements. + */ + public SortedSet tailSet(E fromElement) + { + return new CheckedSortedSet(ss.tailSet(fromElement), type); + } + } // class CheckedSortedSet + } // class Collections diff --git a/libjava/classpath/java/util/Comparator.java b/libjava/classpath/java/util/Comparator.java index 386bdc1d6a2..ca414e7b13f 100644 --- a/libjava/classpath/java/util/Comparator.java +++ b/libjava/classpath/java/util/Comparator.java @@ -1,5 +1,5 @@ /* Comparator.java -- Interface for objects that specify an ordering - Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,7 +71,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface Comparator +public interface Comparator { /** * Return an integer that is negative, zero or positive depending on whether @@ -102,7 +102,7 @@ public interface Comparator * @throws ClassCastException if the elements are not of types that can be * compared by this ordering. */ - int compare(Object o1, Object o2); + int compare(T o1, T o2); /** * Return true if the object is equal to this object. To be diff --git a/libjava/classpath/java/util/Date.java b/libjava/classpath/java/util/Date.java index aecca29b39e..5c43bf3c154 100644 --- a/libjava/classpath/java/util/Date.java +++ b/libjava/classpath/java/util/Date.java @@ -108,7 +108,7 @@ import java.text.SimpleDateFormat; * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ public class Date - implements Cloneable, Comparable, Serializable + implements Cloneable, Comparable, Serializable { /** * This is the serialization UID for this class @@ -354,24 +354,6 @@ public class Date } /** - * Compares this Date to another object. This behaves like - * compareTo(Date), but it takes a generic object - * and throws a ClassCastException if obj is - * not a Date. - * - * @param obj the other date. - * @return 0, if the date represented - * by obj is exactly the same as the time represented by this - * object, a negative if this Date is before the other Date, and - * a positive value otherwise. - * @exception ClassCastException if obj is not of type Date. - */ - public int compareTo(Object obj) - { - return compareTo((Date) obj); - } - - /** * Computes the hash code of this Date as the * XOR of the most significant and the least significant * 32 bits of the 64 bit milliseconds value. diff --git a/libjava/classpath/java/util/Dictionary.java b/libjava/classpath/java/util/Dictionary.java index 0d44ab67de1..7b82a9f644d 100644 --- a/libjava/classpath/java/util/Dictionary.java +++ b/libjava/classpath/java/util/Dictionary.java @@ -1,6 +1,6 @@ /* Dictionary.java -- an abstract (and essentially worthless) class which is Hashtable's superclass - Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -57,7 +57,7 @@ package java.util; * @since 1.0 * @status updated to 1.4 */ -public abstract class Dictionary +public abstract class Dictionary { // WARNING: Dictionary is a CORE class in the bootstrap cycle. See the // comments in vm/reference/java/lang/Runtime for implications of this fact. @@ -75,7 +75,7 @@ public abstract class Dictionary * @return an Enumeration of the values * @see #keys() */ - public abstract Enumeration elements(); + public abstract Enumeration elements(); /** * Returns the value associated with the supplied key, or null @@ -87,7 +87,7 @@ public abstract class Dictionary * @throws NullPointerException if key is null * @see #put(Object, Object) */ - public abstract Object get(Object key); + public abstract V get(Object key); /** * Returns true when there are no elements in this Dictionary. @@ -102,7 +102,7 @@ public abstract class Dictionary * @return an Enumeration of the keys * @see #elements() */ - public abstract Enumeration keys(); + public abstract Enumeration keys(); /** * Inserts a new value into this Dictionary, located by the @@ -115,7 +115,7 @@ public abstract class Dictionary * @throws NullPointerException if key or value is null * @see #get(Object) */ - public abstract Object put(Object key, Object value); + public abstract V put(K key, V value); /** * Removes from the Dictionary the value located by the given key. A null @@ -125,7 +125,7 @@ public abstract class Dictionary * @return the value associated with the removed key * @throws NullPointerException if key is null */ - public abstract Object remove(Object key); + public abstract V remove(Object key); /** * Returns the number of values currently in this Dictionary. diff --git a/libjava/classpath/java/util/EnumMap.java b/libjava/classpath/java/util/EnumMap.java new file mode 100644 index 00000000000..477dff8e0ab --- /dev/null +++ b/libjava/classpath/java/util/EnumMap.java @@ -0,0 +1,394 @@ +/* EnumMap.java - Map where keys are enum constants + Copyright (C) 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.util; + +import java.io.Serializable; + +/** + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + +public class EnumMap, V> + extends AbstractMap + implements Cloneable, Serializable +{ + private static final long serialVersionUID = 458661240069192865L; + + V[] store; + int cardinality; + Class enumClass; + + /** + * The cache for {@link #entrySet()}. + */ + transient Set> entries; + + static final Object emptySlot = new Object(); + + public EnumMap(Class keyType) + { + store = (V[]) new Object[keyType.getEnumConstants().length]; + Arrays.fill(store, emptySlot); + cardinality = 0; + enumClass = keyType; + } + + public EnumMap(EnumMap map) + { + store = (V[]) map.store.clone(); + cardinality = map.cardinality; + enumClass = map.enumClass; + } + + public EnumMap(Map map) + { + if (map instanceof EnumMap) + { + EnumMap other = (EnumMap) map; + store = (V[]) other.store.clone(); + cardinality = other.cardinality; + enumClass = other.enumClass; + } + else + { + for (K key : map.keySet()) + { + V value = map.get(key); + if (store == null) + { + enumClass = key.getDeclaringClass(); + store = (V[]) new Object[enumClass.getEnumConstants().length]; + } + int o = key.ordinal(); + if (store[o] == emptySlot) + ++cardinality; + store[o] = value; + } + // There must be a single element. + if (store == null) + throw new IllegalArgumentException("no elements in map"); + } + } + + public int size() + { + return cardinality; + } + + public boolean containsValue(Object value) + { + for (V i : store) + { + if (i != emptySlot && AbstractCollection.equals(i , value)) + return true; + } + return false; + } + + public boolean containsKey(Object key) + { + if (! (key instanceof Enum)) + return false; + Enum e = (Enum) key; + if (e.getDeclaringClass() != enumClass) + return false; + return store[e.ordinal()] != emptySlot; + } + + public V get(Object key) + { + if (! (key instanceof Enum)) + return null; + Enum e = (Enum) key; + if (e.getDeclaringClass() != enumClass) + return null; + return store[e.ordinal()]; + } + + public V put(K key, V value) + { + int o = key.ordinal(); + V result; + if (store[o] == emptySlot) + { + result = null; + ++cardinality; + } + else + result = store[o]; + store[o] = value; + return result; + } + + public V remove(Object key) + { + if (! (key instanceof Enum)) + return null; + Enum e = (Enum) key; + if (e.getDeclaringClass() != enumClass) + return null; + V result = store[e.ordinal()]; + if (result == emptySlot) + result = null; + else + --cardinality; + store[e.ordinal()] = (V) emptySlot; + return result; + } + + public void putAll(Map map) + { + for (K key : map.keySet()) + { + V value = map.get(key); + + int o = key.ordinal(); + if (store[o] == emptySlot) + ++cardinality; + store[o] = value; + } + } + + public void clear() + { + Arrays.fill(store, emptySlot); + cardinality = 0; + } + + public Set keySet() + { + if (keys == null) + { + keys = new AbstractSet() + { + public int size() + { + return cardinality; + } + + public Iterator iterator() + { + return new Iterator() + { + int count = 0; + int index = -1; + + public boolean hasNext() + { + return count < cardinality; + } + + public K next() + { + ++count; + for (++index; store[index] == emptySlot; ++index) + ; + return enumClass.getEnumConstants()[index]; + } + + public void remove() + { + --cardinality; + store[index] = (V) emptySlot; + } + }; + } + + public void clear() + { + EnumMap.this.clear(); + } + + public boolean contains(Object o) + { + return contains(o); + } + + public boolean remove(Object o) + { + return EnumMap.this.remove(o) != null; + } + }; + } + return keys; + } + + public Collection values() + { + if (values == null) + { + values = new AbstractCollection() + { + public int size() + { + return cardinality; + } + + public Iterator iterator() + { + return new Iterator() + { + int count = 0; + int index = -1; + + public boolean hasNext() + { + return count < cardinality; + } + + public V next() + { + ++count; + for (++index; store[index] == emptySlot; ++index) + ; + return store[index]; + } + + public void remove() + { + --cardinality; + store[index] = (V) emptySlot; + } + }; + } + + public void clear() + { + EnumMap.this.clear(); + } + }; + } + return values; + } + + public Set> entrySet() + { + if (entries == null) + { + entries = new AbstractSet>() + { + public int size() + { + return cardinality; + } + + public Iterator> iterator() + { + return new Iterator>() + { + int count = 0; + int index = -1; + + public boolean hasNext() + { + return count < cardinality; + } + + public Map.Entry next() + { + ++count; + for (++index; store[index] == emptySlot; ++index) + ; + // FIXME: we could just return something that + // only knows the index. That would be cleaner. + return new AbstractMap.SimpleEntry(enumClass.getEnumConstants()[index], + store[index]) + { + public V setValue(V newVal) + { + value = newVal; + return put(key, newVal); + } + }; + } + + public void remove() + { + --cardinality; + store[index] = (V) emptySlot; + } + }; + } + + public void clear() + { + EnumMap.this.clear(); + } + + public boolean contains(Object o) + { + if (! (o instanceof Map.Entry)) + return false; + Map.Entry other = (Map.Entry) o; + return (containsKey(other.getKey()) + && AbstractCollection.equals(get(other.getKey()), + other.getValue())); + } + + public boolean remove(Object o) + { + if (! (o instanceof Map.Entry)) + return false; + Map.Entry other = (Map.Entry) o; + return EnumMap.this.remove(other.getKey()) != null; + } + }; + } + return entries; + } + + public boolean equals(Object o) + { + if (! (o instanceof EnumMap)) + return false; + EnumMap other = (EnumMap) o; + if (other.enumClass != enumClass || other.cardinality != cardinality) + return false; + return Arrays.equals(store, other.store); + } + + public EnumMap clone() + { + /* This constructor provides this functionality */ + return new EnumMap(this); + } + +} diff --git a/libjava/classpath/java/util/EnumSet.java b/libjava/classpath/java/util/EnumSet.java new file mode 100644 index 00000000000..44ae370ba0b --- /dev/null +++ b/libjava/classpath/java/util/EnumSet.java @@ -0,0 +1,365 @@ +/* EnumSet.java - Set of enum objects + Copyright (C) 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.util; + +import java.io.Serializable; + +/** + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + +// FIXME: serialization is special. +public class EnumSet> + extends AbstractSet + implements Cloneable, Serializable +{ + private static final long serialVersionUID = 4782406773684236311L; + + BitSet store; + int cardinality; + Class enumClass; + + EnumSet() + { + } + + public EnumSet clone() + { + EnumSet r; + + try + { + r = (EnumSet) super.clone(); + } + catch (CloneNotSupportedException _) + { + /* Can't happen */ + return null; + } + r.store = (BitSet) store.clone(); + return r; + } + + public int size() + { + return cardinality; + } + + public Iterator iterator() + { + return new Iterator() + { + int next = -1; + int count = 0; + + public boolean hasNext() + { + return count < cardinality; + } + + public T next() + { + next = store.nextSetBit(next + 1); + ++count; + return enumClass.getEnumConstants()[next]; + } + + public void remove() + { + if (! store.get(next)) + { + store.clear(next); + --cardinality; + } + } + }; + } + + public boolean add(T val) + { + if (store.get(val.ordinal())) + return false; + store.set(val.ordinal()); + ++cardinality; + return true; + } + + public boolean addAll(Collection c) + { + boolean result = false; + if (c instanceof EnumSet) + { + EnumSet other = (EnumSet) c; + if (enumClass == other.enumClass) + { + store.or(other.store); + int save = cardinality; + cardinality = store.cardinality(); + result = save != cardinality; + } + } + else + { + for (T val : c) + { + if (add (val)) + result = true; + } + } + return result; + } + + public void clear() + { + store.clear(); + cardinality = 0; + } + + public boolean contains(Object o) + { + if (! (o instanceof Enum)) + return false; + Enum e = (Enum) o; + if (e.getDeclaringClass() != enumClass) + return false; + return store.get(e.ordinal()); + } + + public boolean containsAll(Collection c) + { + if (c instanceof EnumSet) + { + EnumSet other = (EnumSet) c; + if (enumClass == other.enumClass) + return store.containsAll(other.store); + return false; + } + return super.containsAll(c); + } + + public boolean remove(Object o) + { + if (! (o instanceof Enum)) + return false; + Enum e = (Enum) o; + if (e.getDeclaringClass() != enumClass) + return false; + store.clear(e.ordinal()); + --cardinality; + return true; + } + + public boolean removeAll(Collection c) + { + if (c instanceof EnumSet) + { + EnumSet other = (EnumSet) c; + if (enumClass != other.enumClass) + return false; + store.andNot(other.store); + int save = cardinality; + cardinality = store.cardinality(); + return save != cardinality; + } + return super.removeAll(c); + } + + public boolean retainAll(Collection c) + { + if (c instanceof EnumSet) + { + EnumSet other = (EnumSet) c; + if (enumClass != other.enumClass) + return false; + store.and(other.store); + int save = cardinality; + cardinality = store.cardinality(); + return save != cardinality; + } + return super.retainAll(c); + } + + public static > EnumSet allOf(Class eltType) + { + EnumSet r = new EnumSet(); + r.store = new BitSet(eltType.getEnumConstants().length); + r.store.set(0, r.store.size()); + r.cardinality = r.store.size(); + r.enumClass = eltType; + return r; + } + + public static > EnumSet noneOf(Class eltType) + { + EnumSet r = new EnumSet(); + r.store = new BitSet(eltType.getEnumConstants().length); + r.enumClass = eltType; + return r; + } + + public static > EnumSet copyOf(EnumSet other) + { + // We can't just use `other.clone' since we don't want to make a + // subclass. + EnumSet r = new EnumSet(); + r.store = (BitSet) other.store.clone(); + r.cardinality = other.cardinality; + r.enumClass = other.enumClass; + return r; + } + + public static > EnumSet copyOf(Collection other) + { + if (other instanceof EnumSet) + return copyOf((EnumSet) other); + EnumSet r = new EnumSet(); + for (T val : other) + { + if (r.store == null) + { + r.enumClass = val.getDeclaringClass(); + r.store = new BitSet(r.enumClass.getEnumConstants().length); + } + r.store.set(val.ordinal()); + } + // The collection must contain at least one element. + if (r.store == null) + throw new IllegalArgumentException(); + r.cardinality = r.store.cardinality(); + return r; + } + + public static > EnumSet complementOf(EnumSet other) + { + EnumSet r = new EnumSet(); + r.store = (BitSet) other.store.clone(); + r.store.flip(0, r.store.size()); + r.cardinality = r.store.size() - other.cardinality; + r.enumClass = other.enumClass; + return r; + } + + public static > EnumSet of(T first) + { + EnumSet r = new EnumSet(); + r.enumClass = first.getDeclaringClass(); + r.store = new BitSet(r.enumClass.getEnumConstants().length); + r.store.set(first.ordinal()); + r.cardinality = 1; + return r; + } + + public static > EnumSet of(T first, T second) + { + EnumSet r = new EnumSet(); + r.enumClass = first.getDeclaringClass(); + r.store = new BitSet(r.enumClass.getEnumConstants().length); + r.store.set(first.ordinal()); + r.store.set(second.ordinal()); + r.cardinality = r.store.cardinality(); + return r; + } + + public static > EnumSet of(T first, T second, T third) + { + EnumSet r = new EnumSet(); + r.enumClass = first.getDeclaringClass(); + r.store = new BitSet(r.enumClass.getEnumConstants().length); + r.store.set(first.ordinal()); + r.store.set(second.ordinal()); + r.store.set(third.ordinal()); + r.cardinality = r.store.cardinality(); + return r; + } + + public static > EnumSet of(T first, T second, T third, + T fourth) + { + EnumSet r = new EnumSet(); + r.enumClass = first.getDeclaringClass(); + r.store = new BitSet(r.enumClass.getEnumConstants().length); + r.store.set(first.ordinal()); + r.store.set(second.ordinal()); + r.store.set(third.ordinal()); + r.store.set(fourth.ordinal()); + r.cardinality = r.store.cardinality(); + return r; + } + + public static > EnumSet of(T first, T second, T third, + T fourth, T fifth) + { + EnumSet r = new EnumSet(); + r.enumClass = first.getDeclaringClass(); + r.store = new BitSet(r.enumClass.getEnumConstants().length); + r.store.set(first.ordinal()); + r.store.set(second.ordinal()); + r.store.set(third.ordinal()); + r.store.set(fourth.ordinal()); + r.store.set(fifth.ordinal()); + r.cardinality = r.store.cardinality(); + return r; + } + + public static > EnumSet of(T first, T... rest) + { + EnumSet r = new EnumSet(); + r.enumClass = first.getDeclaringClass(); + r.store = new BitSet(r.enumClass.getEnumConstants().length); + r.store.set(first.ordinal()); + for (T val : rest) + r.store.set(val.ordinal()); + r.cardinality = r.store.cardinality(); + return r; + } + + public static > EnumSet range(T from, T to) + { + if (from.compareTo(to) > 0) + throw new IllegalArgumentException(); + EnumSet r = new EnumSet(); + r.store = new BitSet(from.getDeclaringClass().getEnumConstants().length); + r.store.set(from.ordinal(), to.ordinal() + 1); + r.enumClass = from.getDeclaringClass(); + r.cardinality = to.ordinal() - from.ordinal() + 1; + return r; + } +} diff --git a/libjava/classpath/java/util/Enumeration.java b/libjava/classpath/java/util/Enumeration.java index 1365bbb2f0f..2aec31b6f8d 100644 --- a/libjava/classpath/java/util/Enumeration.java +++ b/libjava/classpath/java/util/Enumeration.java @@ -1,5 +1,6 @@ /* Enumeration.java -- Interface for enumerating lists of objects - Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2004, 2005 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -60,7 +61,7 @@ package java.util; * @since 1.0 * @status updated to 1.4 */ -public interface Enumeration +public interface Enumeration { /** * Tests whether there are elements remaining in the enumeration. @@ -77,5 +78,5 @@ public interface Enumeration * @return the next element in the enumeration * @throws NoSuchElementException if there are no more elements */ - Object nextElement(); + E nextElement(); } diff --git a/libjava/classpath/java/util/Formatter.java b/libjava/classpath/java/util/Formatter.java index 01d54631508..12b705bce06 100644 --- a/libjava/classpath/java/util/Formatter.java +++ b/libjava/classpath/java/util/Formatter.java @@ -89,7 +89,7 @@ public final class Formatter /** * The output of the formatter. */ - private StringBuilder out; + private Appendable out; /** * The locale used by the formatter. @@ -143,6 +143,15 @@ public final class Formatter = SystemProperties.getProperty("line.separator"); /** + * The type of numeric output format for a {@link BigDecimal}. + */ + public enum BigDecimalLayoutForm + { + DECIMAL_FLOAT, + SCIENTIFIC + } + + /** * Constructs a new Formatter using the default * locale and a {@link StringBuilder} as the output stream. */ @@ -170,7 +179,7 @@ public final class Formatter * * @param app the output stream to use. */ - public Formatter(StringBuilder app) + public Formatter(Appendable app) { this(app, Locale.getDefault()); } @@ -183,13 +192,189 @@ public final class Formatter * @param app the output stream to use. * @param loc the locale to use. */ - public Formatter(StringBuilder app, Locale loc) + public Formatter(Appendable app, Locale loc) { this.out = app == null ? new StringBuilder() : app; this.locale = loc; } /** + * Constructs a new Formatter using the default + * locale and character set, with the specified file as the + * output stream. + * + * @param file the file to use for output. + * @throws FileNotFoundException if the file does not exist + * and can not be created. + * @throws SecurityException if a security manager is present + * and doesn't allow writing to the file. + */ + public Formatter(File file) + throws FileNotFoundException + { + this(new OutputStreamWriter(new FileOutputStream(file))); + } + + /** + * Constructs a new Formatter using the default + * locale, with the specified file as the output stream + * and the supplied character set. + * + * @param file the file to use for output. + * @param charset the character set to use for output. + * @throws FileNotFoundException if the file does not exist + * and can not be created. + * @throws SecurityException if a security manager is present + * and doesn't allow writing to the file. + * @throws UnsupportedEncodingException if the supplied character + * set is not supported. + */ + public Formatter(File file, String charset) + throws FileNotFoundException, UnsupportedEncodingException + { + this(file, charset, Locale.getDefault()); + } + + /** + * Constructs a new Formatter using the specified + * file as the output stream with the supplied character set + * and locale. If the locale is null, then no + * localization is applied. + * + * @param file the file to use for output. + * @param charset the character set to use for output. + * @param loc the locale to use. + * @throws FileNotFoundException if the file does not exist + * and can not be created. + * @throws SecurityException if a security manager is present + * and doesn't allow writing to the file. + * @throws UnsupportedEncodingException if the supplied character + * set is not supported. + */ + public Formatter(File file, String charset, Locale loc) + throws FileNotFoundException, UnsupportedEncodingException + { + this(new OutputStreamWriter(new FileOutputStream(file), charset), + loc); + } + + /** + * Constructs a new Formatter using the default + * locale and character set, with the specified output stream. + * + * @param out the output stream to use. + */ + public Formatter(OutputStream out) + { + this(new OutputStreamWriter(out)); + } + + /** + * Constructs a new Formatter using the default + * locale, with the specified file output stream and the + * supplied character set. + * + * @param out the output stream. + * @param charset the character set to use for output. + * @throws UnsupportedEncodingException if the supplied character + * set is not supported. + */ + public Formatter(OutputStream out, String charset) + throws UnsupportedEncodingException + { + this(out, charset, Locale.getDefault()); + } + + /** + * Constructs a new Formatter using the specified + * output stream with the supplied character set and locale. + * If the locale is null, then no localization is + * applied. + * + * @param file the output stream. + * @param charset the character set to use for output. + * @param loc the locale to use. + * @throws UnsupportedEncodingException if the supplied character + * set is not supported. + */ + public Formatter(OutputStream out, String charset, Locale loc) + throws UnsupportedEncodingException + { + this(new OutputStreamWriter(out, charset), loc); + } + + /** + * Constructs a new Formatter using the default + * locale with the specified output stream. The character + * set used is that of the output stream. + * + * @param out the output stream to use. + */ + public Formatter(PrintStream out) + { + this((Appendable) out); + } + + /** + * Constructs a new Formatter using the default + * locale and character set, with the specified file as the + * output stream. + * + * @param file the file to use for output. + * @throws FileNotFoundException if the file does not exist + * and can not be created. + * @throws SecurityException if a security manager is present + * and doesn't allow writing to the file. + */ + public Formatter(String file) throws FileNotFoundException + { + this(new OutputStreamWriter(new FileOutputStream(file))); + } + + /** + * Constructs a new Formatter using the default + * locale, with the specified file as the output stream + * and the supplied character set. + * + * @param file the file to use for output. + * @param charset the character set to use for output. + * @throws FileNotFoundException if the file does not exist + * and can not be created. + * @throws SecurityException if a security manager is present + * and doesn't allow writing to the file. + * @throws UnsupportedEncodingException if the supplied character + * set is not supported. + */ + public Formatter(String file, String charset) + throws FileNotFoundException, UnsupportedEncodingException + { + this(file, charset, Locale.getDefault()); + } + + /** + * Constructs a new Formatter using the specified + * file as the output stream with the supplied character set + * and locale. If the locale is null, then no + * localization is applied. + * + * @param file the file to use for output. + * @param charset the character set to use for output. + * @param loc the locale to use. + * @throws FileNotFoundException if the file does not exist + * and can not be created. + * @throws SecurityException if a security manager is present + * and doesn't allow writing to the file. + * @throws UnsupportedEncodingException if the supplied character + * set is not supported. + */ + public Formatter(String file, String charset, Locale loc) + throws FileNotFoundException, UnsupportedEncodingException + { + this(new OutputStreamWriter(new FileOutputStream(file), charset), + loc); + } + + /** * Closes the formatter, so as to release used resources. * If the underlying output stream supports the {@link Closeable} * interface, then this is also closed. Attempts to use @@ -201,6 +386,16 @@ public final class Formatter { if (closed) return; + try + { + if (out instanceof Closeable) + ((Closeable) out).close(); + } + catch (IOException _) + { + // FIXME: do we ignore these or do we set ioException? + // The docs seem to indicate that we should ignore. + } closed = true; } @@ -215,6 +410,16 @@ public final class Formatter { if (closed) throw new FormatterClosedException(); + try + { + if (out instanceof Flushable) + ((Flushable) out).flush(); + } + catch (IOException _) + { + // FIXME: do we ignore these or do we set ioException? + // The docs seem to indicate that we should ignore. + } } /** @@ -544,9 +749,6 @@ public final class Formatter noPrecision(precision); // Some error checking. - if ((flags & FormattableFlags.ZERO) != 0 - && (flags & FormattableFlags.LEFT_JUSTIFY) == 0) - throw new IllegalFormatFlagsException(getName(flags)); if ((flags & FormattableFlags.PLUS) != 0 && (flags & FormattableFlags.SPACE) != 0) throw new IllegalFormatFlagsException(getName(flags)); @@ -984,7 +1186,7 @@ public final class Formatter advance(); if (start == index) return -1; - return Integer.decode(format.substring(start, index)).intValue(); + return Integer.decode(format.substring(start, index)); } /** @@ -1090,7 +1292,7 @@ public final class Formatter * between it and the arguments. * @throws FormatterClosedException if the formatter is closed. */ - public Formatter format(Locale loc, String fmt, Object[] args) + public Formatter format(Locale loc, String fmt, Object... args) { if (closed) throw new FormatterClosedException(); @@ -1233,7 +1435,7 @@ public final class Formatter * between it and the arguments. * @throws FormatterClosedException if the formatter is closed. */ - public Formatter format(String format, Object[] args) + public Formatter format(String format, Object... args) { return format(locale, format, args); } @@ -1269,7 +1471,7 @@ public final class Formatter * @return the formatter's output stream. * @throws FormatterClosedException if the formatter is closed. */ - public StringBuilder out() + public Appendable out() { if (closed) throw new FormatterClosedException(); diff --git a/libjava/classpath/java/util/GregorianCalendar.java b/libjava/classpath/java/util/GregorianCalendar.java index 83ac00e77e0..4a66d6e08ef 100644 --- a/libjava/classpath/java/util/GregorianCalendar.java +++ b/libjava/classpath/java/util/GregorianCalendar.java @@ -935,11 +935,10 @@ public class GregorianCalendar extends Calendar fields[MONTH] += 12; fields[YEAR]--; } + isTimeSet = false; int maxDay = getActualMaximum(DAY_OF_MONTH); if (fields[DAY_OF_MONTH] > maxDay) fields[DAY_OF_MONTH] = maxDay; - set(YEAR, fields[YEAR]); - set(MONTH, fields[MONTH]); break; case DAY_OF_MONTH: case DAY_OF_YEAR: diff --git a/libjava/classpath/java/util/HashMap.java b/libjava/classpath/java/util/HashMap.java index a734af48405..92022a7d55e 100644 --- a/libjava/classpath/java/util/HashMap.java +++ b/libjava/classpath/java/util/HashMap.java @@ -96,8 +96,8 @@ import java.io.Serializable; * @since 1.2 * @status updated to 1.4 */ -public class HashMap extends AbstractMap - implements Map, Cloneable, Serializable +public class HashMap extends AbstractMap + implements Map, Cloneable, Serializable { /** * Default number of buckets. This is the value the JDK 1.3 uses. Some @@ -136,7 +136,7 @@ public class HashMap extends AbstractMap * Array containing the actual key-value mappings. * Package visible for use by nested and subclasses. */ - transient HashEntry[] buckets; + transient HashEntry[] buckets; /** * Counts the number of modifications this HashMap has undergone, used @@ -154,7 +154,7 @@ public class HashMap extends AbstractMap /** * The cache for {@link #entrySet()}. */ - private transient Set entries; + private transient Set> entries; /** * Class to represent an entry in the hash table. Holds a single key-value @@ -162,19 +162,19 @@ public class HashMap extends AbstractMap * * @author Eric Blake (ebb9@email.byu.edu) */ - static class HashEntry extends AbstractMap.BasicMapEntry + static class HashEntry extends AbstractMap.SimpleEntry { /** * The next entry in the linked list. Package visible for use by subclass. */ - HashEntry next; + HashEntry next; /** * Simple constructor. * @param key the key * @param value the value */ - HashEntry(Object key, Object value) + HashEntry(K key, V value) { super(key, value); } @@ -194,7 +194,7 @@ public class HashMap extends AbstractMap * * @return the value of this key as it is removed */ - Object cleanup() + V cleanup() { return value; } @@ -220,7 +220,7 @@ public class HashMap extends AbstractMap * NOTE: key / value pairs are not cloned in this constructor. * @throws NullPointerException if m is null */ - public HashMap(Map m) + public HashMap(Map m) { this(Math.max(m.size() * 2, DEFAULT_CAPACITY), DEFAULT_LOAD_FACTOR); putAll(m); @@ -256,7 +256,7 @@ public class HashMap extends AbstractMap if (initialCapacity == 0) initialCapacity = 1; - buckets = new HashEntry[initialCapacity]; + buckets = (HashEntry[]) new HashEntry[initialCapacity]; this.loadFactor = loadFactor; threshold = (int) (initialCapacity * loadFactor); } @@ -292,10 +292,10 @@ public class HashMap extends AbstractMap * @see #put(Object, Object) * @see #containsKey(Object) */ - public Object get(Object key) + public V get(Object key) { int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (equals(key, e.key)) @@ -316,7 +316,7 @@ public class HashMap extends AbstractMap public boolean containsKey(Object key) { int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (equals(key, e.key)) @@ -339,17 +339,17 @@ public class HashMap extends AbstractMap * @see #get(Object) * @see Object#equals(Object) */ - public Object put(Object key, Object value) + public V put(K key, V value) { int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (equals(key, e.key)) { e.access(); // Must call this for bookkeeping in LinkedHashMap. - Object r = e.value; + V r = e.value; e.value = value; return r; } @@ -378,23 +378,25 @@ public class HashMap extends AbstractMap * * @param m the map to be hashed into this */ - public void putAll(Map m) + public void putAll(Map m) { - Iterator itr = m.entrySet().iterator(); - while (itr.hasNext()) + Map addMap; + + addMap = (Map) m; + for (Map.Entry e : addMap.entrySet()) { - Map.Entry e = (Map.Entry) itr.next(); // Optimize in case the Entry is one of our own. - if (e instanceof AbstractMap.BasicMapEntry) + if (e instanceof AbstractMap.SimpleEntry) { - AbstractMap.BasicMapEntry entry = (AbstractMap.BasicMapEntry) e; + AbstractMap.SimpleEntry entry + = (AbstractMap.SimpleEntry) e; put(entry.key, entry.value); } else put(e.getKey(), e.getValue()); } } - + /** * Removes from the HashMap and returns the value which is mapped by the * supplied key. If the key maps to nothing, then the HashMap remains @@ -405,11 +407,11 @@ public class HashMap extends AbstractMap * @param key the key used to locate the value to remove * @return whatever the key mapped to, if present */ - public Object remove(Object key) + public V remove(Object key) { int idx = hash(key); - HashEntry e = buckets[idx]; - HashEntry last = null; + HashEntry e = buckets[idx]; + HashEntry last = null; while (e != null) { @@ -455,7 +457,7 @@ public class HashMap extends AbstractMap { for (int i = buckets.length - 1; i >= 0; i--) { - HashEntry e = buckets[i]; + HashEntry e = buckets[i]; while (e != null) { if (equals(value, e.value)) @@ -474,16 +476,16 @@ public class HashMap extends AbstractMap */ public Object clone() { - HashMap copy = null; + HashMap copy = null; try { - copy = (HashMap) super.clone(); + copy = (HashMap) super.clone(); } catch (CloneNotSupportedException x) { // This is impossible. } - copy.buckets = new HashEntry[buckets.length]; + copy.buckets = (HashEntry[]) new HashEntry[buckets.length]; copy.putAllInternal(this); // Clear the entry cache. AbstractMap.clone() does the others. copy.entries = null; @@ -499,19 +501,19 @@ public class HashMap extends AbstractMap * @see #values() * @see #entrySet() */ - public Set keySet() + public Set keySet() { if (keys == null) // Create an AbstractSet with custom implementations of those methods // that can be overridden easily and efficiently. - keys = new AbstractSet() + keys = new AbstractSet() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { // Cannot create the iterator directly, because of LinkedHashMap. return HashMap.this.iterator(KEYS); @@ -550,19 +552,19 @@ public class HashMap extends AbstractMap * @see #keySet() * @see #entrySet() */ - public Collection values() + public Collection values() { if (values == null) // We don't bother overriding many of the optional methods, as doing so // wouldn't provide any significant performance advantage. - values = new AbstractCollection() + values = new AbstractCollection() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { // Cannot create the iterator directly, because of LinkedHashMap. return HashMap.this.iterator(VALUES); @@ -589,19 +591,19 @@ public class HashMap extends AbstractMap * @see #values() * @see Map.Entry */ - public Set entrySet() + public Set> entrySet() { if (entries == null) // Create an AbstractSet with custom implementations of those methods // that can be overridden easily and efficiently. - entries = new AbstractSet() + entries = new AbstractSet>() { public int size() { return size; } - public Iterator iterator() + public Iterator> iterator() { // Cannot create the iterator directly, because of LinkedHashMap. return HashMap.this.iterator(ENTRIES); @@ -619,7 +621,7 @@ public class HashMap extends AbstractMap public boolean remove(Object o) { - HashEntry e = getEntry(o); + HashEntry e = getEntry(o); if (e != null) { HashMap.this.remove(e.key); @@ -641,9 +643,9 @@ public class HashMap extends AbstractMap * @param callRemove whether to call the removeEldestEntry method * @see #put(Object, Object) */ - void addEntry(Object key, Object value, int idx, boolean callRemove) + void addEntry(K key, V value, int idx, boolean callRemove) { - HashEntry e = new HashEntry(key, value); + HashEntry e = new HashEntry(key, value); e.next = buckets[idx]; buckets[idx] = e; } @@ -657,14 +659,14 @@ public class HashMap extends AbstractMap * @see #entrySet() */ // Package visible, for use in nested classes. - final HashEntry getEntry(Object o) + final HashEntry getEntry(Object o) { if (! (o instanceof Map.Entry)) return null; - Map.Entry me = (Map.Entry) o; - Object key = me.getKey(); + Map.Entry me = (Map.Entry) o; + K key = me.getKey(); int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (equals(e.key, key)) @@ -693,9 +695,10 @@ public class HashMap extends AbstractMap * @param type {@link #KEYS}, {@link #VALUES}, or {@link #ENTRIES} * @return the appropriate iterator */ - Iterator iterator(int type) + Iterator iterator(int type) { - return new HashIterator(type); + // FIXME: bogus cast here. + return new HashIterator(type); } /** @@ -705,15 +708,16 @@ public class HashMap extends AbstractMap * * @param m the map to initialize this from */ - void putAllInternal(Map m) + void putAllInternal(Map m) { - Iterator itr = m.entrySet().iterator(); + Map addMap; + + addMap = (Map) m; size = 0; - while (itr.hasNext()) + for (Map.Entry e : addMap.entrySet()) { size++; - Map.Entry e = (Map.Entry) itr.next(); - Object key = e.getKey(); + K key = e.getKey(); int idx = hash(key); addEntry(key, e.getValue(), idx, false); } @@ -730,20 +734,20 @@ public class HashMap extends AbstractMap */ private void rehash() { - HashEntry[] oldBuckets = buckets; + HashEntry[] oldBuckets = buckets; int newcapacity = (buckets.length * 2) + 1; threshold = (int) (newcapacity * loadFactor); - buckets = new HashEntry[newcapacity]; + buckets = (HashEntry[]) new HashEntry[newcapacity]; for (int i = oldBuckets.length - 1; i >= 0; i--) { - HashEntry e = oldBuckets[i]; + HashEntry e = oldBuckets[i]; while (e != null) { int idx = hash(e.key); - HashEntry dest = buckets[idx]; - HashEntry next = e.next; + HashEntry dest = buckets[idx]; + HashEntry next = e.next; e.next = buckets[idx]; buckets[idx] = e; e = next; @@ -769,10 +773,10 @@ public class HashMap extends AbstractMap s.writeInt(buckets.length); s.writeInt(size); // Avoid creating a wasted Set by creating the iterator directly. - Iterator it = iterator(ENTRIES); + Iterator> it = iterator(ENTRIES); while (it.hasNext()) { - HashEntry entry = (HashEntry) it.next(); + HashEntry entry = it.next(); s.writeObject(entry.key); s.writeObject(entry.value); } @@ -796,13 +800,13 @@ public class HashMap extends AbstractMap s.defaultReadObject(); // Read and use capacity, followed by key/value pairs. - buckets = new HashEntry[s.readInt()]; + buckets = (HashEntry[]) new HashEntry[s.readInt()]; int len = s.readInt(); size = len; while (len-- > 0) { Object key = s.readObject(); - addEntry(key, s.readObject(), hash(key), false); + addEntry((K) key, (V) s.readObject(), hash(key), false); } } @@ -813,7 +817,7 @@ public class HashMap extends AbstractMap * * @author Jon Zeppieri */ - private final class HashIterator implements Iterator + private final class HashIterator implements Iterator { /** * The type of this Iterator: {@link #KEYS}, {@link #VALUES}, @@ -861,7 +865,7 @@ public class HashMap extends AbstractMap * @throws ConcurrentModificationException if the HashMap was modified * @throws NoSuchElementException if there is none */ - public Object next() + public T next() { if (knownMod != modCount) throw new ConcurrentModificationException(); @@ -876,10 +880,10 @@ public class HashMap extends AbstractMap next = e.next; last = e; if (type == VALUES) - return e.value; + return (T) e.value; if (type == KEYS) - return e.key; - return e; + return (T) e.key; + return (T) e; } /** diff --git a/libjava/classpath/java/util/HashSet.java b/libjava/classpath/java/util/HashSet.java index 681d5bb1b07..c08b6db5abb 100644 --- a/libjava/classpath/java/util/HashSet.java +++ b/libjava/classpath/java/util/HashSet.java @@ -76,8 +76,8 @@ import java.io.Serializable; * @since 1.2 * @status updated to 1.4 */ -public class HashSet extends AbstractSet - implements Set, Cloneable, Serializable +public class HashSet extends AbstractSet + implements Set, Cloneable, Serializable { /** * Compatible with JDK 1.2. @@ -87,7 +87,7 @@ public class HashSet extends AbstractSet /** * The HashMap which backs this Set. */ - private transient HashMap map; + private transient HashMap map; /** * Construct a new, empty HashSet whose backing HashMap has the default @@ -133,7 +133,7 @@ public class HashSet extends AbstractSet * @param c a collection of initial set elements * @throws NullPointerException if c is null */ - public HashSet(Collection c) + public HashSet(Collection c) { this(Math.max(2 * c.size(), HashMap.DEFAULT_CAPACITY)); addAll(c); @@ -146,7 +146,7 @@ public class HashSet extends AbstractSet * @param o the Object to add to this Set * @return true if the set did not already contain o */ - public boolean add(Object o) + public boolean add(T o) { return map.put(o, "") == null; } @@ -167,16 +167,16 @@ public class HashSet extends AbstractSet */ public Object clone() { - HashSet copy = null; + HashSet copy = null; try { - copy = (HashSet) super.clone(); + copy = (HashSet) super.clone(); } catch (CloneNotSupportedException x) { // Impossible to get here. } - copy.map = (HashMap) map.clone(); + copy.map = (HashMap) map.clone(); return copy; } @@ -210,7 +210,7 @@ public class HashSet extends AbstractSet * @return a set iterator * @see ConcurrentModificationException */ - public Iterator iterator() + public Iterator iterator() { // Avoid creating intermediate keySet() object by using non-public API. return map.iterator(HashMap.KEYS); @@ -263,7 +263,7 @@ public class HashSet extends AbstractSet { s.defaultWriteObject(); // Avoid creating intermediate keySet() object by using non-public API. - Iterator it = map.iterator(HashMap.KEYS); + Iterator it = map.iterator(HashMap.KEYS); s.writeInt(map.buckets.length); s.writeFloat(map.loadFactor); s.writeInt(map.size); @@ -288,6 +288,6 @@ public class HashSet extends AbstractSet map = init(s.readInt(), s.readFloat()); for (int size = s.readInt(); size > 0; size--) - map.put(s.readObject(), ""); + map.put((T) s.readObject(), ""); } } diff --git a/libjava/classpath/java/util/Hashtable.java b/libjava/classpath/java/util/Hashtable.java index 4c00d18a8e2..2e265a47387 100644 --- a/libjava/classpath/java/util/Hashtable.java +++ b/libjava/classpath/java/util/Hashtable.java @@ -100,8 +100,8 @@ import java.io.Serializable; * @since 1.0 * @status updated to 1.4 */ -public class Hashtable extends Dictionary - implements Map, Cloneable, Serializable +public class Hashtable extends Dictionary + implements Map, Cloneable, Serializable { // WARNING: Hashtable is a CORE class in the bootstrap cycle. See the // comments in vm/reference/java/lang/Runtime for implications of this fact. @@ -139,7 +139,7 @@ public class Hashtable extends Dictionary * Array containing the actual key-value mappings. */ // Package visible for use by nested classes. - transient HashEntry[] buckets; + transient HashEntry[] buckets; /** * Counts the number of modifications this Hashtable has undergone, used @@ -157,34 +157,35 @@ public class Hashtable extends Dictionary /** * The cache for {@link #keySet()}. */ - private transient Set keys; + private transient Set keys; /** * The cache for {@link #values()}. */ - private transient Collection values; + private transient Collection values; /** * The cache for {@link #entrySet()}. */ - private transient Set entries; + private transient Set> entries; /** * Class to represent an entry in the hash table. Holds a single key-value * pair. A Hashtable Entry is identical to a HashMap Entry, except that * `null' is not allowed for keys and values. */ - private static final class HashEntry extends AbstractMap.BasicMapEntry + private static final class HashEntry + extends AbstractMap.SimpleEntry { /** The next entry in the linked list. */ - HashEntry next; + HashEntry next; /** * Simple constructor. * @param key the key, already guaranteed non-null * @param value the value, already guaranteed non-null */ - HashEntry(Object key, Object value) + HashEntry(K key, V value) { super(key, value); } @@ -195,7 +196,7 @@ public class Hashtable extends Dictionary * @return the prior value * @throws NullPointerException if newVal is null */ - public Object setValue(Object newVal) + public V setValue(V newVal) { if (newVal == null) throw new NullPointerException(); @@ -226,7 +227,7 @@ public class Hashtable extends Dictionary * to or from `null'. * @since 1.2 */ - public Hashtable(Map m) + public Hashtable(Map m) { this(Math.max(m.size() * 2, DEFAULT_CAPACITY), DEFAULT_LOAD_FACTOR); putAll(m); @@ -263,7 +264,7 @@ public class Hashtable extends Dictionary if (initialCapacity == 0) initialCapacity = 1; - buckets = new HashEntry[initialCapacity]; + buckets = (HashEntry[]) new HashEntry[initialCapacity]; this.loadFactor = loadFactor; threshold = (int) (initialCapacity * loadFactor); } @@ -295,7 +296,7 @@ public class Hashtable extends Dictionary * @see #elements() * @see #keySet() */ - public Enumeration keys() + public Enumeration keys() { return new KeyEnumerator(); } @@ -309,7 +310,7 @@ public class Hashtable extends Dictionary * @see #keys() * @see #values() */ - public Enumeration elements() + public Enumeration elements() { return new ValueEnumerator(); } @@ -333,7 +334,7 @@ public class Hashtable extends Dictionary for (int i = buckets.length - 1; i >= 0; i--) { - HashEntry e = buckets[i]; + HashEntry e = buckets[i]; while (e != null) { if (e.value.equals(value)) @@ -341,7 +342,7 @@ public class Hashtable extends Dictionary e = e.next; } } - + return false; } @@ -376,7 +377,7 @@ public class Hashtable extends Dictionary public synchronized boolean containsKey(Object key) { int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (e.key.equals(key)) @@ -396,10 +397,10 @@ public class Hashtable extends Dictionary * @see #put(Object, Object) * @see #containsKey(Object) */ - public synchronized Object get(Object key) + public synchronized V get(Object key) { int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (e.key.equals(key)) @@ -421,10 +422,10 @@ public class Hashtable extends Dictionary * @see #get(Object) * @see Object#equals(Object) */ - public synchronized Object put(Object key, Object value) + public synchronized V put(K key, V value) { int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; // Check if value is null since it is not permitted. if (value == null) @@ -435,7 +436,7 @@ public class Hashtable extends Dictionary if (e.key.equals(key)) { // Bypass e.setValue, since we already know value is non-null. - Object r = e.value; + V r = e.value; e.value = value; return r; } @@ -454,7 +455,7 @@ public class Hashtable extends Dictionary idx = hash(key); } - e = new HashEntry(key, value); + e = new HashEntry(key, value); e.next = buckets[idx]; buckets[idx] = e; @@ -470,11 +471,11 @@ public class Hashtable extends Dictionary * @param key the key used to locate the value to remove * @return whatever the key mapped to, if present */ - public synchronized Object remove(Object key) + public synchronized V remove(Object key) { int idx = hash(key); - HashEntry e = buckets[idx]; - HashEntry last = null; + HashEntry e = buckets[idx]; + HashEntry last = null; while (e != null) { @@ -502,17 +503,19 @@ public class Hashtable extends Dictionary * @param m the map to be hashed into this * @throws NullPointerException if m is null, or contains null keys or values */ - public synchronized void putAll(Map m) + public synchronized void putAll(Map m) { - Iterator itr = m.entrySet().iterator(); + Map addMap; + + addMap = (Map) m; - while (itr.hasNext()) + for (Map.Entry e : addMap.entrySet()) { - Map.Entry e = (Map.Entry) itr.next(); // Optimize in case the Entry is one of our own. - if (e instanceof AbstractMap.BasicMapEntry) + if (e instanceof AbstractMap.SimpleEntry) { - AbstractMap.BasicMapEntry entry = (AbstractMap.BasicMapEntry) e; + AbstractMap.SimpleEntry entry + = (AbstractMap.SimpleEntry) e; put(entry.key, entry.value); } else @@ -543,16 +546,16 @@ public class Hashtable extends Dictionary */ public synchronized Object clone() { - Hashtable copy = null; + Hashtable copy = null; try { - copy = (Hashtable) super.clone(); + copy = (Hashtable) super.clone(); } catch (CloneNotSupportedException x) { // This is impossible. } - copy.buckets = new HashEntry[buckets.length]; + copy.buckets = (HashEntry[]) new HashEntry[buckets.length]; copy.putAllInternal(this); // Clear the caches. copy.keys = null; @@ -576,7 +579,7 @@ public class Hashtable extends Dictionary // Since we are already synchronized, and entrySet().iterator() // would repeatedly re-lock/release the monitor, we directly use the // unsynchronized EntryIterator instead. - Iterator entries = new EntryIterator(); + Iterator> entries = new EntryIterator(); StringBuffer r = new StringBuffer("{"); for (int pos = size; pos > 0; pos--) { @@ -603,20 +606,20 @@ public class Hashtable extends Dictionary * @see #entrySet() * @since 1.2 */ - public Set keySet() + public Set keySet() { if (keys == null) { // Create a synchronized AbstractSet with custom implementations of // those methods that can be overridden easily and efficiently. - Set r = new AbstractSet() + Set r = new AbstractSet() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { return new KeyIterator(); } @@ -640,7 +643,7 @@ public class Hashtable extends Dictionary }; // We must specify the correct object to synchronize upon, hence the // use of a non-public API - keys = new Collections.SynchronizedSet(this, r); + keys = new Collections.SynchronizedSet(this, r); } return keys; } @@ -661,20 +664,20 @@ public class Hashtable extends Dictionary * @see #entrySet() * @since 1.2 */ - public Collection values() + public Collection values() { if (values == null) { // We don't bother overriding many of the optional methods, as doing so // wouldn't provide any significant performance advantage. - Collection r = new AbstractCollection() + Collection r = new AbstractCollection() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { return new ValueIterator(); } @@ -686,7 +689,7 @@ public class Hashtable extends Dictionary }; // We must specify the correct object to synchronize upon, hence the // use of a non-public API - values = new Collections.SynchronizedCollection(this, r); + values = new Collections.SynchronizedCollection(this, r); } return values; } @@ -713,20 +716,20 @@ public class Hashtable extends Dictionary * @see Map.Entry * @since 1.2 */ - public Set entrySet() + public Set> entrySet() { if (entries == null) { // Create an AbstractSet with custom implementations of those methods // that can be overridden easily and efficiently. - Set r = new AbstractSet() + Set> r = new AbstractSet>() { public int size() { return size; } - public Iterator iterator() + public Iterator> iterator() { return new EntryIterator(); } @@ -743,7 +746,7 @@ public class Hashtable extends Dictionary public boolean remove(Object o) { - HashEntry e = getEntry(o); + HashEntry e = getEntry(o); if (e != null) { Hashtable.this.remove(e.key); @@ -754,7 +757,7 @@ public class Hashtable extends Dictionary }; // We must specify the correct object to synchronize upon, hence the // use of a non-public API - entries = new Collections.SynchronizedSet(this, r); + entries = new Collections.SynchronizedSet>(this, r); } return entries; } @@ -772,7 +775,7 @@ public class Hashtable extends Dictionary */ public boolean equals(Object o) { - // no need to synchronize, entrySet().equals() does that + // no need to synchronize, entrySet().equals() does that. if (o == this) return true; if (!(o instanceof Map)) @@ -793,7 +796,7 @@ public class Hashtable extends Dictionary // Since we are already synchronized, and entrySet().iterator() // would repeatedly re-lock/release the monitor, we directly use the // unsynchronized EntryIterator instead. - Iterator itr = new EntryIterator(); + Iterator> itr = new EntryIterator(); int hashcode = 0; for (int pos = size; pos > 0; pos--) hashcode += itr.next().hashCode(); @@ -826,16 +829,16 @@ public class Hashtable extends Dictionary * @see #entrySet() */ // Package visible, for use in nested classes. - HashEntry getEntry(Object o) + HashEntry getEntry(Object o) { if (! (o instanceof Map.Entry)) return null; - Object key = ((Map.Entry) o).getKey(); + K key = ((Map.Entry) o).getKey(); if (key == null) return null; int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (e.equals(o)) @@ -852,18 +855,19 @@ public class Hashtable extends Dictionary * * @param m the map to initialize this from */ - void putAllInternal(Map m) + void putAllInternal(Map m) { - Iterator itr = m.entrySet().iterator(); + Map addMap; + + addMap = (Map) m; size = 0; - while (itr.hasNext()) + for (Map.Entry e : addMap.entrySet()) { size++; - Map.Entry e = (Map.Entry) itr.next(); - Object key = e.getKey(); + K key = e.getKey(); int idx = hash(key); - HashEntry he = new HashEntry(key, e.getValue()); + HashEntry he = new HashEntry(key, e.getValue()); he.next = buckets[idx]; buckets[idx] = he; } @@ -882,19 +886,19 @@ public class Hashtable extends Dictionary */ protected void rehash() { - HashEntry[] oldBuckets = buckets; + HashEntry[] oldBuckets = buckets; int newcapacity = (buckets.length * 2) + 1; threshold = (int) (newcapacity * loadFactor); - buckets = new HashEntry[newcapacity]; + buckets = (HashEntry[]) new HashEntry[newcapacity]; for (int i = oldBuckets.length - 1; i >= 0; i--) { - HashEntry e = oldBuckets[i]; + HashEntry e = oldBuckets[i]; while (e != null) { int idx = hash(e.key); - HashEntry dest = buckets[idx]; + HashEntry dest = buckets[idx]; if (dest != null) { @@ -911,7 +915,7 @@ public class Hashtable extends Dictionary buckets[idx] = e; } - HashEntry next = e.next; + HashEntry next = e.next; e.next = null; e = next; } @@ -939,10 +943,10 @@ public class Hashtable extends Dictionary // Since we are already synchronized, and entrySet().iterator() // would repeatedly re-lock/release the monitor, we directly use the // unsynchronized EntryIterator instead. - Iterator it = new EntryIterator(); + Iterator> it = new EntryIterator(); while (it.hasNext()) { - HashEntry entry = (HashEntry) it.next(); + HashEntry entry = (HashEntry) it.next(); s.writeObject(entry.key); s.writeObject(entry.value); } @@ -966,13 +970,13 @@ public class Hashtable extends Dictionary s.defaultReadObject(); // Read and use capacity. - buckets = new HashEntry[s.readInt()]; + buckets = (HashEntry[]) new HashEntry[s.readInt()]; int len = s.readInt(); // Read and use key/value pairs. // TODO: should we be defensive programmers, and check for illegal nulls? while (--len >= 0) - put(s.readObject(), s.readObject()); + put((K) s.readObject(), (V) s.readObject()); } /** @@ -987,7 +991,8 @@ public class Hashtable extends Dictionary * @author Jon Zeppieri * @author Fridjof Siebert */ - private class EntryIterator implements Iterator + private class EntryIterator + implements Iterator> { /** * The number of modifications to the backing Hashtable that we know about. @@ -998,16 +1003,16 @@ public class Hashtable extends Dictionary /** Current index in the physical hash table. */ int idx = buckets.length; /** The last Entry returned by a next() call. */ - HashEntry last; + HashEntry last; /** * The next entry that should be returned by next(). It is set to something * if we're iterating through a bucket that contains multiple linked * entries. It is null if next() needs to find a new bucket. */ - HashEntry next; + HashEntry next; /** - * Construct a new EtryIterator + * Construct a new EntryIterator */ EntryIterator() { @@ -1029,14 +1034,14 @@ public class Hashtable extends Dictionary * @throws ConcurrentModificationException if the hashtable was modified * @throws NoSuchElementException if there is none */ - public Object next() + public Map.Entry next() { if (knownMod != modCount) throw new ConcurrentModificationException(); if (count == 0) throw new NoSuchElementException(); count--; - HashEntry e = next; + HashEntry e = next; while (e == null) if (idx <= 0) @@ -1070,12 +1075,43 @@ public class Hashtable extends Dictionary /** * A class which implements the Iterator interface and is used for - * iterating over keys in Hashtables. + * iterating over keys in Hashtables. This class uses an + * EntryIterator to obtain the keys of each entry. * * @author Fridtjof Siebert + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ - private class KeyIterator extends EntryIterator + private class KeyIterator + implements Iterator { + + /** + * This entry iterator is used for most operations. Only + * next() gives a different result, by returning just + * the key rather than the whole element. + */ + private EntryIterator iterator; + + /** + * Construct a new KeyIterator + */ + KeyIterator() + { + iterator = new EntryIterator(); + } + + + /** + * Returns true if the entry iterator has more elements. + * + * @return true if there are more elements + * @throws ConcurrentModificationException if the hashtable was modified + */ + public boolean hasNext() + { + return iterator.hasNext(); + } + /** * Returns the next element in the Iterator's sequential view. * @@ -1084,34 +1120,88 @@ public class Hashtable extends Dictionary * @throws ConcurrentModificationException if the hashtable was modified * @throws NoSuchElementException if there is none */ - public Object next() + public K next() { - return ((HashEntry)super.next()).key; + return ((HashEntry) iterator.next()).key; } - } // class KeyIterator - - + /** + * Removes the last element used by the next() method + * using the entry iterator. + * + * @throws ConcurrentModificationException if the hashtable was modified + * @throws IllegalStateException if called when there is no last element + */ + public void remove() + { + iterator.remove(); + } + } // class KeyIterator + /** * A class which implements the Iterator interface and is used for - * iterating over values in Hashtables. + * iterating over values in Hashtables. This class uses an + * EntryIterator to obtain the values of each entry. * * @author Fridtjof Siebert + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ - private class ValueIterator extends EntryIterator + private class ValueIterator + implements Iterator { + /** - * Returns the next element in the Iterator's sequential view. + * This entry iterator is used for most operations. Only + * next() gives a different result, by returning just + * the value rather than the whole element. + */ + private EntryIterator iterator; + + /** + * Construct a new KeyIterator + */ + ValueIterator() + { + iterator = new EntryIterator(); + } + + + /** + * Returns true if the entry iterator has more elements. * - * @return the next element + * @return true if there are more elements + * @throws ConcurrentModificationException if the hashtable was modified + */ + public boolean hasNext() + { + return iterator.hasNext(); + } + + /** + * Returns the value of the next element in the iterator's sequential view. + * + * @return the next value * * @throws ConcurrentModificationException if the hashtable was modified * @throws NoSuchElementException if there is none */ - public Object next() + public V next() + { + return ((HashEntry) iterator.next()).value; + } + + /** + * Removes the last element used by the next() method + * using the entry iterator. + * + * @throws ConcurrentModificationException if the hashtable was modified + * @throws IllegalStateException if called when there is no last element + */ + public void remove() { - return ((HashEntry)super.next()).value; + iterator.remove(); } + } // class ValueIterator /** @@ -1128,7 +1218,8 @@ public class Hashtable extends Dictionary * @author Jon Zeppieri * @author Fridjof Siebert */ - private class EntryEnumerator implements Enumeration + private class EntryEnumerator + implements Enumeration> { /** The number of elements remaining to be returned by next(). */ int count = size; @@ -1139,7 +1230,7 @@ public class Hashtable extends Dictionary * set if we are iterating through a bucket with multiple entries, or null * if we must look in the next bucket. */ - HashEntry next; + HashEntry next; /** * Construct the enumeration. @@ -1163,12 +1254,12 @@ public class Hashtable extends Dictionary * @return the next element * @throws NoSuchElementException if there is none. */ - public Object nextElement() + public Map.Entry nextElement() { if (count == 0) throw new NoSuchElementException("Hashtable Enumerator"); count--; - HashEntry e = next; + HashEntry e = next; while (e == null) if (idx <= 0) @@ -1195,18 +1286,47 @@ public class Hashtable extends Dictionary * * @author Jon Zeppieri * @author Fridjof Siebert + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ - private final class KeyEnumerator extends EntryEnumerator + private final class KeyEnumerator + implements Enumeration { /** + * This entry enumerator is used for most operations. Only + * nextElement() gives a different result, by returning just + * the key rather than the whole element. + */ + private EntryEnumerator enumerator; + + /** + * Construct a new KeyEnumerator + */ + KeyEnumerator() + { + enumerator = new EntryEnumerator(); + } + + + /** + * Returns true if the entry enumerator has more elements. + * + * @return true if there are more elements + * @throws ConcurrentModificationException if the hashtable was modified + */ + public boolean hasMoreElements() + { + return enumerator.hasMoreElements(); + } + + /** * Returns the next element. * @return the next element * @throws NoSuchElementException if there is none. */ - public Object nextElement() + public K nextElement() { - HashEntry entry = (HashEntry) super.nextElement(); - Object retVal = null; + HashEntry entry = (HashEntry) enumerator.nextElement(); + K retVal = null; if (entry != null) retVal = entry.key; return retVal; @@ -1227,18 +1347,47 @@ public class Hashtable extends Dictionary * * @author Jon Zeppieri * @author Fridjof Siebert + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ - private final class ValueEnumerator extends EntryEnumerator + private final class ValueEnumerator + implements Enumeration { /** + * This entry enumerator is used for most operations. Only + * nextElement() gives a different result, by returning just + * the value rather than the whole element. + */ + private EntryEnumerator enumerator; + + /** + * Construct a new ValueEnumerator + */ + ValueEnumerator() + { + enumerator = new EntryEnumerator(); + } + + + /** + * Returns true if the entry enumerator has more elements. + * + * @return true if there are more elements + * @throws ConcurrentModificationException if the hashtable was modified + */ + public boolean hasMoreElements() + { + return enumerator.hasMoreElements(); + } + + /** * Returns the next element. * @return the next element * @throws NoSuchElementException if there is none. */ - public Object nextElement() + public V nextElement() { - HashEntry entry = (HashEntry) super.nextElement(); - Object retVal = null; + HashEntry entry = (HashEntry) enumerator.nextElement(); + V retVal = null; if (entry != null) retVal = entry.value; return retVal; diff --git a/libjava/classpath/java/util/IdentityHashMap.java b/libjava/classpath/java/util/IdentityHashMap.java index 89ef034159b..8dead96c193 100644 --- a/libjava/classpath/java/util/IdentityHashMap.java +++ b/libjava/classpath/java/util/IdentityHashMap.java @@ -90,23 +90,20 @@ import java.io.Serializable; * @since 1.4 * @status updated to 1.4 */ -public class IdentityHashMap extends AbstractMap - implements Map, Serializable, Cloneable +public class IdentityHashMap extends AbstractMap + implements Map, Serializable, Cloneable { /** The default capacity. */ private static final int DEFAULT_CAPACITY = 21; /** - * This object is used to mark deleted items. Package visible for use by - * nested classes. + * This object is used to mark a slot whose key or value is 'null'. + * This is more efficient than using a special value to mark an empty + * slot, because null entries are rare, empty slots are common, and + * the JVM will clear new arrays for us. + * Package visible for use by nested classes. */ - static final Object tombstone = new Object(); - - /** - * This object is used to mark empty slots. We need this because - * using null is ambiguous. Package visible for use by nested classes. - */ - static final Object emptyslot = new Object(); + static final Object nullslot = new Object(); /** * Compatible with JDK 1.4. @@ -134,7 +131,7 @@ public class IdentityHashMap extends AbstractMap /** * The cache for {@link #entrySet()}. */ - private transient Set entries; + private transient Set> entries; /** * The threshold for rehashing, which is 75% of (table.length / 2). @@ -166,7 +163,6 @@ public class IdentityHashMap extends AbstractMap if (max < 2) max = 2; table = new Object[max << 1]; - Arrays.fill(table, emptyslot); threshold = (max >> 2) * 3; } @@ -177,7 +173,7 @@ public class IdentityHashMap extends AbstractMap * @param m The map whose elements are to be put in this map * @throws NullPointerException if m is null */ - public IdentityHashMap(Map m) + public IdentityHashMap(Map m) { this(Math.max(m.size() << 1, DEFAULT_CAPACITY)); putAll(m); @@ -191,7 +187,7 @@ public class IdentityHashMap extends AbstractMap if (size != 0) { modCount++; - Arrays.fill(table, emptyslot); + Arrays.fill(table, null); size = 0; } } @@ -227,6 +223,7 @@ public class IdentityHashMap extends AbstractMap */ public boolean containsKey(Object key) { + key = xform(key); return key == table[hash(key)]; } @@ -241,6 +238,7 @@ public class IdentityHashMap extends AbstractMap */ public boolean containsValue(Object value) { + value = xform(value); for (int i = table.length - 1; i > 0; i -= 2) if (table[i] == value) return true; @@ -274,19 +272,19 @@ public class IdentityHashMap extends AbstractMap * @see #values() * @see Map.Entry */ - public Set entrySet() + public Set> entrySet() { if (entries == null) - entries = new AbstractSet() + entries = new AbstractSet>() { public int size() { return size; } - public Iterator iterator() + public Iterator> iterator() { - return new IdentityIterator(ENTRIES); + return new IdentityIterator>(ENTRIES); } public void clear() @@ -299,7 +297,9 @@ public class IdentityHashMap extends AbstractMap if (! (o instanceof Map.Entry)) return false; Map.Entry m = (Map.Entry) o; - return m.getValue() == table[hash(m.getKey()) + 1]; + Object value = xform(m.getValue()); + Object key = xform(m.getKey()); + return value == table[hash(key) + 1]; } public int hashCode() @@ -311,14 +311,13 @@ public class IdentityHashMap extends AbstractMap { if (! (o instanceof Map.Entry)) return false; - Object key = ((Map.Entry) o).getKey(); + Object key = xform(((Map.Entry) o).getKey()); int h = hash(key); if (table[h] == key) { size--; modCount++; - table[h] = tombstone; - table[h + 1] = tombstone; + IdentityHashMap.this.removeAtIndex(h); return true; } return false; @@ -358,10 +357,11 @@ public class IdentityHashMap extends AbstractMap * @see #put(Object, Object) * @see #containsKey(Object) */ - public Object get(Object key) + public V get(Object key) { + key = xform(key); int h = hash(key); - return table[h] == key ? table[h + 1] : null; + return (V) (table[h] == key ? unxform(table[h + 1]) : null); } /** @@ -378,10 +378,11 @@ public class IdentityHashMap extends AbstractMap for (int i = table.length - 2; i >= 0; i -= 2) { Object key = table[i]; - if (key == emptyslot || key == tombstone) + if (key == null) continue; - hash += (System.identityHashCode(key) - ^ System.identityHashCode(table[i + 1])); + // FIXME: this is a lame computation. + hash += (System.identityHashCode(unxform(key)) + ^ System.identityHashCode(unxform(table[i + 1]))); } return hash; } @@ -414,19 +415,19 @@ public class IdentityHashMap extends AbstractMap * @see #values() * @see #entrySet() */ - public Set keySet() + public Set keySet() { if (keys == null) - keys = new AbstractSet() + keys = new AbstractSet() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { - return new IdentityIterator(KEYS); + return new IdentityIterator(KEYS); } public void clear() @@ -445,23 +446,22 @@ public class IdentityHashMap extends AbstractMap for (int i = table.length - 2; i >= 0; i -= 2) { Object key = table[i]; - if (key == emptyslot || key == tombstone) + if (key == null) continue; - hash += System.identityHashCode(key); + hash += System.identityHashCode(unxform(key)); } return hash; - } public boolean remove(Object o) { + o = xform(o); int h = hash(o); if (table[h] == o) { size--; modCount++; - table[h] = tombstone; - table[h + 1] = tombstone; + removeAtIndex(h); return true; } return false; @@ -484,8 +484,20 @@ public class IdentityHashMap extends AbstractMap * @return the prior mapping of the key, or null if there was none * @see #get(Object) */ - public Object put(Object key, Object value) + public V put(K key, V value) { + key = (K) xform(key); + value = (V) xform(value); + + // We don't want to rehash if we're overwriting an existing slot. + int h = hash(key); + if (table[h] == key) + { + V r = (V) unxform(table[h + 1]); + table[h + 1] = value; + return r; + } + // Rehash if the load factor is too high. if (size > threshold) { @@ -493,25 +505,25 @@ public class IdentityHashMap extends AbstractMap // This isn't necessarily prime, but it is an odd number of key/value // slots, which has a higher probability of fewer collisions. table = new Object[(old.length * 2) + 2]; - Arrays.fill(table, emptyslot); size = 0; threshold = (table.length >>> 3) * 3; for (int i = old.length - 2; i >= 0; i -= 2) { - Object oldkey = old[i]; - if (oldkey != tombstone && oldkey != emptyslot) - // Just use put. This isn't very efficient, but it is ok. - put(oldkey, old[i + 1]); + K oldkey = (K) old[i]; + if (oldkey != null) + { + h = hash(oldkey); + table[h] = oldkey; + table[h + 1] = old[i + 1]; + ++size; + // No need to update modCount here, we'll do it + // just after the loop. + } } - } - int h = hash(key); - if (table[h] == key) - { - Object r = table[h + 1]; - table[h + 1] = value; - return r; + // Now that we've resize, recompute the hash value. + h = hash(key); } // At this point, we add a new mapping. @@ -529,13 +541,47 @@ public class IdentityHashMap extends AbstractMap * @param m the map to copy * @throws NullPointerException if m is null */ - public void putAll(Map m) + public void putAll(Map m) { // Why did Sun specify this one? The superclass does the right thing. super.putAll(m); } /** + * Remove the element at index and update the table to compensate. + * This is package-private for use by inner classes. + * @param i index of the removed element + */ + final void removeAtIndex(int i) + { + // This is Algorithm R from Knuth, section 6.4. + // Variable names are taken directly from the text. + while (true) + { + table[i] = null; + table[i + 1] = null; + int j = i; + int r; + do + { + i -= 2; + if (i < 0) + i = table.length - 2; + Object key = table[i]; + if (key == null) + return; + r = Math.abs(System.identityHashCode(key) + % (table.length >> 1)) << 1; + } + while ((i <= r && r < j) + || (r < j && j < i) + || (j < i && i <= r)); + table[j] = table[i]; + table[j + 1] = table[i + 1]; + } + } + + /** * Removes from the HashMap and returns the value which is mapped by * the supplied key. If the key maps to nothing, then the HashMap * remains unchanged, and null is returned. @@ -549,17 +595,17 @@ public class IdentityHashMap extends AbstractMap * @param key the key used to locate the value to remove * @return whatever the key mapped to, if present */ - public Object remove(Object key) + public V remove(Object key) { + key = xform(key); int h = hash(key); if (table[h] == key) { modCount++; size--; - Object r = table[h + 1]; - table[h] = tombstone; - table[h + 1] = tombstone; - return r; + Object r = unxform(table[h + 1]); + removeAtIndex(h); + return (V) r; } return null; } @@ -591,19 +637,19 @@ public class IdentityHashMap extends AbstractMap * @see #keySet() * @see #entrySet() */ - public Collection values() + public Collection values() { if (values == null) - values = new AbstractCollection() + values = new AbstractCollection() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { - return new IdentityIterator(VALUES); + return new IdentityIterator(VALUES); } public void clear() @@ -613,13 +659,14 @@ public class IdentityHashMap extends AbstractMap public boolean remove(Object o) { + o = xform(o); + // This approach may look strange, but it is ok. for (int i = table.length - 1; i > 0; i -= 2) if (table[i] == o) { modCount++; - table[i - 1] = tombstone; - table[i] = tombstone; size--; + IdentityHashMap.this.removeAtIndex(i - 1); return true; } return false; @@ -629,8 +676,31 @@ public class IdentityHashMap extends AbstractMap } /** + * Transform a reference from its external form to its internal form. + * This is package-private for use by inner classes. + */ + final Object xform(Object o) + { + if (o == null) + o = nullslot; + return o; + } + + /** + * Transform a reference from its internal form to its external form. + * This is package-private for use by inner classes. + */ + final Object unxform(Object o) + { + if (o == nullslot) + o = null; + return o; + } + + /** * Helper method which computes the hash code, then traverses the table - * until it finds the key, or the spot where the key would go. + * until it finds the key, or the spot where the key would go. the key + * must already be in its internal form. * * @param key the key to check * @return the index where the key belongs @@ -638,36 +708,23 @@ public class IdentityHashMap extends AbstractMap * @see #put(Object, Object) */ // Package visible for use by nested classes. - int hash(Object key) + final int hash(Object key) { - // Implementation note: it is feasible for the table to have no - // emptyslots, if it is full with entries and tombstones, so we must - // remember where we started. If we encounter the key or an emptyslot, - // we are done. If we encounter a tombstone, the key may still be in - // the array. If we don't encounter the key, we use the first emptyslot - // or tombstone we encountered as the location where the key would go. - // By requiring at least 2 key/value slots, and rehashing at 75% - // capacity, we guarantee that there will always be either an emptyslot - // or a tombstone somewhere in the table. int h = Math.abs(System.identityHashCode(key) % (table.length >> 1)) << 1; - int del = -1; - int save = h; - do + while (true) { - if (table[h] == key) + // By requiring at least 2 key/value slots, and rehashing at 75% + // capacity, we guarantee that there will always be either an empty + // slot somewhere in the table. + if (table[h] == key || table[h] == null) return h; - if (table[h] == emptyslot) - break; - if (table[h] == tombstone && del < 0) - del = h; + // We use linear probing as it is friendlier to the cache and + // it lets us efficiently remove entries. h -= 2; if (h < 0) h = table.length - 2; } - while (h != save); - - return del < 0 ? h : del; } /** @@ -679,7 +736,7 @@ public class IdentityHashMap extends AbstractMap * @author Tom Tromey (tromey@redhat.com) * @author Eric Blake (ebb9@email.byu.edu) */ - private class IdentityIterator implements Iterator + private class IdentityIterator implements Iterator { /** * The type of this Iterator: {@link #KEYS}, {@link #VALUES}, @@ -717,7 +774,7 @@ public class IdentityHashMap extends AbstractMap * @throws ConcurrentModificationException if the Map was modified * @throws NoSuchElementException if there is none */ - public Object next() + public I next() { if (knownMod != modCount) throw new ConcurrentModificationException(); @@ -731,10 +788,11 @@ public class IdentityHashMap extends AbstractMap loc -= 2; key = table[loc]; } - while (key == emptyslot || key == tombstone); - - return type == KEYS ? key : (type == VALUES ? table[loc + 1] - : new IdentityEntry(loc)); + while (key == null); + + return (I) (type == KEYS ? unxform(key) + : (type == VALUES ? unxform(table[loc + 1]) + : new IdentityEntry(loc))); } /** @@ -748,12 +806,11 @@ public class IdentityHashMap extends AbstractMap { if (knownMod != modCount) throw new ConcurrentModificationException(); - if (loc == table.length || table[loc] == tombstone) + if (loc == table.length) throw new IllegalStateException(); modCount++; size--; - table[loc] = tombstone; - table[loc + 1] = tombstone; + removeAtIndex(loc); knownMod++; } } // class IdentityIterator @@ -768,7 +825,7 @@ public class IdentityHashMap extends AbstractMap * * @author Eric Blake (ebb9@email.byu.edu) */ - private final class IdentityEntry implements Map.Entry + private final class IdentityEntry implements Map.Entry { /** The location of this entry. */ final int loc; @@ -797,12 +854,13 @@ public class IdentityHashMap extends AbstractMap */ public boolean equals(Object o) { - if (knownMod != modCount || table[loc] == tombstone) + if (knownMod != modCount) throw new ConcurrentModificationException(); if (! (o instanceof Map.Entry)) return false; Map.Entry e = (Map.Entry) o; - return table[loc] == e.getKey() && table[loc + 1] == e.getValue(); + return table[loc] == xform(e.getKey()) + && table[loc + 1] == xform(e.getValue()); } /** @@ -812,11 +870,11 @@ public class IdentityHashMap extends AbstractMap * @throws ConcurrentModificationException if the entry was invalidated * by modifying the Map or calling Iterator.remove() */ - public Object getKey() + public EK getKey() { - if (knownMod != modCount || table[loc] == tombstone) + if (knownMod != modCount) throw new ConcurrentModificationException(); - return table[loc]; + return (EK) unxform(table[loc]); } /** @@ -826,11 +884,11 @@ public class IdentityHashMap extends AbstractMap * @throws ConcurrentModificationException if the entry was invalidated * by modifying the Map or calling Iterator.remove() */ - public Object getValue() + public EV getValue() { - if (knownMod != modCount || table[loc] == tombstone) + if (knownMod != modCount) throw new ConcurrentModificationException(); - return table[loc + 1]; + return (EV) unxform(table[loc + 1]); } /** @@ -844,10 +902,10 @@ public class IdentityHashMap extends AbstractMap */ public int hashCode() { - if (knownMod != modCount || table[loc] == tombstone) + if (knownMod != modCount) throw new ConcurrentModificationException(); - return (System.identityHashCode(table[loc]) - ^ System.identityHashCode(table[loc + 1])); + return (System.identityHashCode(unxform(table[loc])) + ^ System.identityHashCode(unxform(table[loc + 1]))); } /** @@ -858,12 +916,12 @@ public class IdentityHashMap extends AbstractMap * @throws ConcurrentModificationException if the entry was invalidated * by modifying the Map or calling Iterator.remove() */ - public Object setValue(Object value) + public EV setValue(EV value) { - if (knownMod != modCount || table[loc] == tombstone) + if (knownMod != modCount) throw new ConcurrentModificationException(); - Object r = table[loc + 1]; - table[loc + 1] = value; + EV r = (EV) unxform(table[loc + 1]); + table[loc + 1] = xform(value); return r; } @@ -877,9 +935,9 @@ public class IdentityHashMap extends AbstractMap */ public String toString() { - if (knownMod != modCount || table[loc] == tombstone) + if (knownMod != modCount) throw new ConcurrentModificationException(); - return table[loc] + "=" + table[loc + 1]; + return unxform(table[loc]) + "=" + unxform(table[loc + 1]); } } // class IdentityEntry @@ -902,7 +960,7 @@ public class IdentityHashMap extends AbstractMap table = new Object[Math.max(num << 1, DEFAULT_CAPACITY) << 1]; // Read key/value pairs. while (--num >= 0) - put(s.readObject(), s.readObject()); + put((K) s.readObject(), (V) s.readObject()); } /** @@ -922,10 +980,10 @@ public class IdentityHashMap extends AbstractMap for (int i = table.length - 2; i >= 0; i -= 2) { Object key = table[i]; - if (key != tombstone && key != emptyslot) + if (key != null) { - s.writeObject(key); - s.writeObject(table[i + 1]); + s.writeObject(unxform(key)); + s.writeObject(unxform(table[i + 1])); } } } diff --git a/libjava/classpath/java/util/IllegalFormatConversionException.java b/libjava/classpath/java/util/IllegalFormatConversionException.java index 2f981f26e45..d59c0a4b18f 100644 --- a/libjava/classpath/java/util/IllegalFormatConversionException.java +++ b/libjava/classpath/java/util/IllegalFormatConversionException.java @@ -67,7 +67,7 @@ public class IllegalFormatConversionException * @serial the mismatching argument type. */ // Note: name fixed by serialization. - Class arg; + Class arg; /** * Constructs a new IllegalFormatConversionException @@ -78,7 +78,7 @@ public class IllegalFormatConversionException * @param arg the type which doesn't match the conversion character. * @throws NullPointerException if arg is null. */ - public IllegalFormatConversionException(char c, Class arg) + public IllegalFormatConversionException(char c, Class arg) { super("The type, " + arg + ", is invalid for the conversion character, " + c + "."); @@ -103,7 +103,7 @@ public class IllegalFormatConversionException * * @return the type of the mismatched argument. */ - public Class getArgumentClass() + public Class getArgumentClass() { return arg; } diff --git a/libjava/classpath/java/util/Iterator.java b/libjava/classpath/java/util/Iterator.java index 31ecff8a257..41111a52d39 100644 --- a/libjava/classpath/java/util/Iterator.java +++ b/libjava/classpath/java/util/Iterator.java @@ -1,5 +1,5 @@ /* Iterator.java -- Interface for iterating over collections - Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,7 +54,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface Iterator +public interface Iterator { /** * Tests whether there are elements remaining in the collection. In other @@ -70,7 +70,7 @@ public interface Iterator * @return the next element in the collection * @throws NoSuchElementException if there are no more elements */ - Object next(); + E next(); /** * Remove from the underlying collection the last element returned by next diff --git a/libjava/classpath/java/util/LinkedHashMap.java b/libjava/classpath/java/util/LinkedHashMap.java index 2b002b27296..6ec06a949d8 100644 --- a/libjava/classpath/java/util/LinkedHashMap.java +++ b/libjava/classpath/java/util/LinkedHashMap.java @@ -97,6 +97,8 @@ package java.util; * non-deterministic behavior. * * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see Object#hashCode() * @see Collection * @see Map @@ -106,7 +108,7 @@ package java.util; * @since 1.4 * @status updated to 1.4 */ -public class LinkedHashMap extends HashMap +public class LinkedHashMap extends HashMap { /** * Compatible with JDK 1.4. @@ -130,16 +132,16 @@ public class LinkedHashMap extends HashMap * Class to represent an entry in the hash table. Holds a single key-value * pair and the doubly-linked insertion order list. */ - class LinkedHashEntry extends HashEntry + class LinkedHashEntry extends HashEntry { /** * The predecessor in the iteration list. If this entry is the root * (eldest), pred points to the newest entry. */ - LinkedHashEntry pred; + LinkedHashEntry pred; /** The successor in the iteration list, null if this is the newest. */ - LinkedHashEntry succ; + LinkedHashEntry succ; /** * Simple constructor. @@ -147,7 +149,7 @@ public class LinkedHashMap extends HashMap * @param key the key * @param value the value */ - LinkedHashEntry(Object key, Object value) + LinkedHashEntry(K key, V value) { super(key, value); if (root == null) @@ -186,7 +188,7 @@ public class LinkedHashMap extends HashMap succ = null; pred = root.pred; pred.succ = this; - root.pred = this; + root.pred = this; } } } @@ -197,7 +199,7 @@ public class LinkedHashMap extends HashMap * * @return the value of this key as it is removed */ - Object cleanup() + V cleanup() { if (this == root) { @@ -243,7 +245,7 @@ public class LinkedHashMap extends HashMap * are not cloned in this constructor. * @throws NullPointerException if m is null */ - public LinkedHashMap(Map m) + public LinkedHashMap(Map m) { super(m); accessOrder = false; @@ -335,10 +337,10 @@ public class LinkedHashMap extends HashMap * @see #put(Object, Object) * @see #containsKey(Object) */ - public Object get(Object key) + public V get(Object key) { int idx = hash(key); - HashEntry e = buckets[idx]; + HashEntry e = buckets[idx]; while (e != null) { if (equals(key, e.key)) @@ -390,7 +392,7 @@ public class LinkedHashMap extends HashMap * earliest element inserted. * @return true if eldest should be removed */ - protected boolean removeEldestEntry(Map.Entry eldest) + protected boolean removeEldestEntry(Map.Entry eldest) { return false; } @@ -407,7 +409,7 @@ public class LinkedHashMap extends HashMap * @see #removeEldestEntry(Map.Entry) * @see LinkedHashEntry#LinkedHashEntry(Object, Object) */ - void addEntry(Object key, Object value, int idx, boolean callRemove) + void addEntry(K key, V value, int idx, boolean callRemove) { LinkedHashEntry e = new LinkedHashEntry(key, value); e.next = buckets[idx]; diff --git a/libjava/classpath/java/util/LinkedHashSet.java b/libjava/classpath/java/util/LinkedHashSet.java index 6c68195c3bd..a0b32f34964 100644 --- a/libjava/classpath/java/util/LinkedHashSet.java +++ b/libjava/classpath/java/util/LinkedHashSet.java @@ -1,6 +1,6 @@ /* LinkedHashSet.java -- a set backed by a LinkedHashMap, for linked list traversal. - Copyright (C) 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -88,8 +88,8 @@ import java.io.Serializable; * @since 1.4 * @status updated to 1.4 */ -public class LinkedHashSet extends HashSet - implements Set, Cloneable, Serializable +public class LinkedHashSet extends HashSet + implements Set, Cloneable, Serializable { /** * Compatible with JDK 1.4. @@ -140,7 +140,7 @@ public class LinkedHashSet extends HashSet * @param c a collection of initial set elements * @throws NullPointerException if c is null */ - public LinkedHashSet(Collection c) + public LinkedHashSet(Collection c) { super(c); } @@ -152,9 +152,8 @@ public class LinkedHashSet extends HashSet * @param load the initial load factor * @return the backing HashMap */ - HashMap init(int capacity, float load) + HashMap init(int capacity, float load) { - return new LinkedHashMap(capacity, load); + return new LinkedHashMap(capacity, load); } - } diff --git a/libjava/classpath/java/util/LinkedList.java b/libjava/classpath/java/util/LinkedList.java index e77ae536b64..2d78573d08c 100644 --- a/libjava/classpath/java/util/LinkedList.java +++ b/libjava/classpath/java/util/LinkedList.java @@ -71,8 +71,8 @@ import java.lang.reflect.Array; * @since 1.2 * @status missing javadoc, but complete to 1.4 */ -public class LinkedList extends AbstractSequentialList - implements List, Cloneable, Serializable +public class LinkedList extends AbstractSequentialList + implements List, Queue, Cloneable, Serializable { /** * Compatible with JDK 1.2. @@ -82,12 +82,12 @@ public class LinkedList extends AbstractSequentialList /** * The first element in the list. */ - transient Entry first; + transient Entry first; /** * The last element in the list. */ - transient Entry last; + transient Entry last; /** * The current length of the list. @@ -97,22 +97,22 @@ public class LinkedList extends AbstractSequentialList /** * Class to represent an entry in the list. Holds a single element. */ - private static final class Entry + private static final class Entry { /** The element in the list. */ - Object data; + T data; /** The next list entry, null if this is last. */ - Entry next; + Entry next; /** The previous list entry, null if this is first. */ - Entry previous; + Entry previous; /** * Construct an entry. * @param data the list element */ - Entry(Object data) + Entry(T data) { this.data = data; } @@ -131,9 +131,9 @@ public class LinkedList extends AbstractSequentialList * @return the entry at position n */ // Package visible for use in nested classes. - Entry getEntry(int n) + Entry getEntry(int n) { - Entry e; + Entry e; if (n < size / 2) { e = first; @@ -158,7 +158,7 @@ public class LinkedList extends AbstractSequentialList * @param e the entry to remove */ // Package visible for use in nested classes. - void removeEntry(Entry e) + void removeEntry(Entry e) { modCount++; size--; @@ -224,7 +224,7 @@ public class LinkedList extends AbstractSequentialList * @param c the collection to populate this list from * @throws NullPointerException if c is null */ - public LinkedList(Collection c) + public LinkedList(Collection c) { addAll(c); } @@ -235,7 +235,7 @@ public class LinkedList extends AbstractSequentialList * @return the first list element * @throws NoSuchElementException if the list is empty */ - public Object getFirst() + public T getFirst() { if (size == 0) throw new NoSuchElementException(); @@ -248,7 +248,7 @@ public class LinkedList extends AbstractSequentialList * @return the last list element * @throws NoSuchElementException if the list is empty */ - public Object getLast() + public T getLast() { if (size == 0) throw new NoSuchElementException(); @@ -261,13 +261,13 @@ public class LinkedList extends AbstractSequentialList * @return the former first element in the list * @throws NoSuchElementException if the list is empty */ - public Object removeFirst() + public T removeFirst() { if (size == 0) throw new NoSuchElementException(); modCount++; size--; - Object r = first.data; + T r = first.data; if (first.next != null) first.next.previous = null; @@ -285,13 +285,13 @@ public class LinkedList extends AbstractSequentialList * @return the former last element in the list * @throws NoSuchElementException if the list is empty */ - public Object removeLast() + public T removeLast() { if (size == 0) throw new NoSuchElementException(); modCount++; size--; - Object r = last.data; + T r = last.data; if (last.previous != null) last.previous.next = null; @@ -308,9 +308,9 @@ public class LinkedList extends AbstractSequentialList * * @param o the element to insert */ - public void addFirst(Object o) + public void addFirst(T o) { - Entry e = new Entry(o); + Entry e = new Entry(o); modCount++; if (size == 0) @@ -329,9 +329,9 @@ public class LinkedList extends AbstractSequentialList * * @param o the element to insert */ - public void addLast(Object o) + public void addLast(T o) { - addLastEntry(new Entry(o)); + addLastEntry(new Entry(o)); } /** @@ -339,7 +339,7 @@ public class LinkedList extends AbstractSequentialList * * @param e the entry to add */ - private void addLastEntry(Entry e) + private void addLastEntry(Entry e) { modCount++; if (size == 0) @@ -362,7 +362,7 @@ public class LinkedList extends AbstractSequentialList */ public boolean contains(Object o) { - Entry e = first; + Entry e = first; while (e != null) { if (equals(o, e.data)) @@ -388,9 +388,9 @@ public class LinkedList extends AbstractSequentialList * @param o the entry to add * @return true, as it always succeeds */ - public boolean add(Object o) + public boolean add(T o) { - addLastEntry(new Entry(o)); + addLastEntry(new Entry(o)); return true; } @@ -403,7 +403,7 @@ public class LinkedList extends AbstractSequentialList */ public boolean remove(Object o) { - Entry e = first; + Entry e = first; while (e != null) { if (equals(o, e.data)) @@ -425,7 +425,7 @@ public class LinkedList extends AbstractSequentialList * @return true if the list was modified * @throws NullPointerException if c is null */ - public boolean addAll(Collection c) + public boolean addAll(Collection c) { return addAll(size, c); } @@ -440,7 +440,7 @@ public class LinkedList extends AbstractSequentialList * @throws NullPointerException if c is null * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public boolean addAll(int index, Collection c) + public boolean addAll(int index, Collection c) { checkBoundsInclusive(index); int csize = c.size(); @@ -448,13 +448,13 @@ public class LinkedList extends AbstractSequentialList if (csize == 0) return false; - Iterator itr = c.iterator(); + Iterator itr = c.iterator(); // Get the entries just before and after index. If index is at the start // of the list, BEFORE is null. If index is at the end of the list, AFTER // is null. If the list is empty, both are null. - Entry after = null; - Entry before = null; + Entry after = null; + Entry before = null; if (index != size) { after = getEntry(index); @@ -467,15 +467,15 @@ public class LinkedList extends AbstractSequentialList // to the first entry, in order to deal with the case where (c == this). // [Actually, we don't have to handle this case to fufill the // contract for addAll(), but Sun's implementation appears to.] - Entry e = new Entry(itr.next()); + Entry e = new Entry(itr.next()); e.previous = before; - Entry prev = e; - Entry firstNew = e; + Entry prev = e; + Entry firstNew = e; // Create and link all the remaining entries. for (int pos = 1; pos < csize; pos++) { - e = new Entry(itr.next()); + e = new Entry(itr.next()); e.previous = prev; prev.next = e; prev = e; @@ -518,7 +518,7 @@ public class LinkedList extends AbstractSequentialList * @return the element at index * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object get(int index) + public T get(int index) { checkBoundsExclusive(index); return getEntry(index).data; @@ -532,11 +532,11 @@ public class LinkedList extends AbstractSequentialList * @return the prior element * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - public Object set(int index, Object o) + public T set(int index, T o) { checkBoundsExclusive(index); - Entry e = getEntry(index); - Object old = e.data; + Entry e = getEntry(index); + T old = e.data; e.data = o; return old; } @@ -548,15 +548,15 @@ public class LinkedList extends AbstractSequentialList * @param o the element to insert * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public void add(int index, Object o) + public void add(int index, T o) { checkBoundsInclusive(index); - Entry e = new Entry(o); + Entry e = new Entry(o); if (index < size) { modCount++; - Entry after = getEntry(index); + Entry after = getEntry(index); e.next = after; e.previous = after.previous; if (after.previous == null) @@ -577,10 +577,10 @@ public class LinkedList extends AbstractSequentialList * @return the removed element * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public Object remove(int index) + public T remove(int index) { checkBoundsExclusive(index); - Entry e = getEntry(index); + Entry e = getEntry(index); removeEntry(e); return e.data; } @@ -594,7 +594,7 @@ public class LinkedList extends AbstractSequentialList public int indexOf(Object o) { int index = 0; - Entry e = first; + Entry e = first; while (e != null) { if (equals(o, e.data)) @@ -614,7 +614,7 @@ public class LinkedList extends AbstractSequentialList public int lastIndexOf(Object o) { int index = size - 1; - Entry e = last; + Entry e = last; while (e != null) { if (equals(o, e.data)) @@ -634,10 +634,10 @@ public class LinkedList extends AbstractSequentialList * next(), or size() to be initially positioned at the end of the list * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - public ListIterator listIterator(int index) + public ListIterator listIterator(int index) { checkBoundsInclusive(index); - return new LinkedListItr(index); + return new LinkedListItr(index); } /** @@ -648,10 +648,10 @@ public class LinkedList extends AbstractSequentialList */ public Object clone() { - LinkedList copy = null; + LinkedList copy = null; try { - copy = (LinkedList) super.clone(); + copy = (LinkedList) super.clone(); } catch (CloneNotSupportedException ex) { @@ -669,7 +669,7 @@ public class LinkedList extends AbstractSequentialList public Object[] toArray() { Object[] array = new Object[size]; - Entry e = first; + Entry e = first; for (int i = 0; i < size; i++) { array[i] = e.data; @@ -692,22 +692,66 @@ public class LinkedList extends AbstractSequentialList * an element in this list * @throws NullPointerException if a is null */ - public Object[] toArray(Object[] a) + public S[] toArray(S[] a) { if (a.length < size) - a = (Object[]) Array.newInstance(a.getClass().getComponentType(), size); + a = (S[]) Array.newInstance(a.getClass().getComponentType(), size); else if (a.length > size) a[size] = null; - Entry e = first; + Entry e = first; for (int i = 0; i < size; i++) { - a[i] = e.data; + a[i] = (S) e.data; e = e.next; } return a; } /** + * @since 1.5 + */ + public boolean offer(T value) + { + return add(value); + } + + /** + * @since 1.5 + */ + public T element() + { + return getFirst(); + } + + /** + * @since 1.5 + */ + public T peek() + { + if (size == 0) + return null; + return getFirst(); + } + + /** + * @since 1.5 + */ + public T poll() + { + if (size == 0) + return null; + return removeFirst(); + } + + /** + * @since 1.5 + */ + public T remove() + { + return removeFirst(); + } + + /** * Serializes this object to the given stream. * * @param s the stream to write to @@ -719,7 +763,7 @@ public class LinkedList extends AbstractSequentialList { s.defaultWriteObject(); s.writeInt(size); - Entry e = first; + Entry e = first; while (e != null) { s.writeObject(e.data); @@ -742,7 +786,7 @@ public class LinkedList extends AbstractSequentialList s.defaultReadObject(); int i = s.readInt(); while (--i >= 0) - addLastEntry(new Entry(s.readObject())); + addLastEntry(new Entry((T) s.readObject())); } /** @@ -752,19 +796,20 @@ public class LinkedList extends AbstractSequentialList * @author Original author unknown * @author Eric Blake (ebb9@email.byu.edu) */ - private final class LinkedListItr implements ListIterator + private final class LinkedListItr + implements ListIterator { /** Number of modifications we know about. */ private int knownMod = modCount; /** Entry that will be returned by next(). */ - private Entry next; + private Entry next; /** Entry that will be returned by previous(). */ - private Entry previous; + private Entry previous; /** Entry that will be affected by remove() or set(). */ - private Entry lastReturned; + private Entry lastReturned; /** Index of `next'. */ private int position; @@ -779,11 +824,11 @@ public class LinkedList extends AbstractSequentialList if (index == size) { next = null; - previous = last; + previous = (Entry) last; } else { - next = getEntry(index); + next = (Entry) getEntry(index); previous = next.previous; } position = index; @@ -847,7 +892,7 @@ public class LinkedList extends AbstractSequentialList * @throws ConcurrentModificationException if the list was modified * @throws NoSuchElementException if there is no next */ - public Object next() + public I next() { checkMod(); if (next == null) @@ -865,7 +910,7 @@ public class LinkedList extends AbstractSequentialList * @throws ConcurrentModificationException if the list was modified * @throws NoSuchElementException if there is no previous */ - public Object previous() + public I previous() { checkMod(); if (previous == null) @@ -895,7 +940,7 @@ public class LinkedList extends AbstractSequentialList next = lastReturned.next; previous = lastReturned.previous; - removeEntry(lastReturned); + removeEntry((Entry) lastReturned); knownMod++; lastReturned = null; @@ -907,26 +952,26 @@ public class LinkedList extends AbstractSequentialList * @param o the element to add * @throws ConcurrentModificationException if the list was modified */ - public void add(Object o) + public void add(I o) { checkMod(); modCount++; knownMod++; size++; position++; - Entry e = new Entry(o); + Entry e = new Entry(o); e.previous = previous; e.next = next; if (previous != null) previous.next = e; else - first = e; + first = (Entry) e; if (next != null) next.previous = e; else - last = e; + last = (Entry) e; previous = e; lastReturned = null; @@ -939,7 +984,7 @@ public class LinkedList extends AbstractSequentialList * @throws ConcurrentModificationException if the list was modified * @throws IllegalStateException if there was no last element */ - public void set(Object o) + public void set(I o) { checkMod(); if (lastReturned == null) diff --git a/libjava/classpath/java/util/List.java b/libjava/classpath/java/util/List.java index 445811292ac..0a1c4098c80 100644 --- a/libjava/classpath/java/util/List.java +++ b/libjava/classpath/java/util/List.java @@ -1,5 +1,5 @@ /* List.java -- An ordered collection which allows indexed access - Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -80,7 +80,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface List extends Collection +public interface List extends Collection { /** * Insert an element into the list at a given position (optional operation). @@ -100,7 +100,7 @@ public interface List extends Collection * @throws NullPointerException if o is null and this list doesn't support * the addition of null values. */ - void add(int index, Object o); + void add(int index, E o); /** * Add an element to the end of the list (optional operation). If the list @@ -118,7 +118,7 @@ public interface List extends Collection * @throws NullPointerException if o is null and this list doesn't support * the addition of null values. */ - boolean add(Object o); + boolean add(E o); /** * Insert the contents of a collection into the list at a given position @@ -143,7 +143,7 @@ public interface List extends Collection * @throws NullPointerException if the specified collection is null * @see #add(int, Object) */ - boolean addAll(int index, Collection c); + boolean addAll(int index, Collection c); /** * Add the contents of a collection to the end of the list (optional @@ -165,7 +165,7 @@ public interface List extends Collection * doesn't support the addition of null values. * @see #add(Object) */ - boolean addAll(Collection c); + boolean addAll(Collection c); /** * Clear the list, such that a subsequent call to isEmpty() would return @@ -202,7 +202,7 @@ public interface List extends Collection * list does not support null values. * @see #contains(Object) */ - boolean containsAll(Collection c); + boolean containsAll(Collection c); /** * Test whether this list is equal to another object. A List is defined to be @@ -226,7 +226,7 @@ public interface List extends Collection * @return the element at index index in this list * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - Object get(int index); + E get(int index); /** * Obtains a hash code for this list. In order to obey the general @@ -276,7 +276,7 @@ while (i.hasNext()) * * @return an Iterator over the elements of this list, in order */ - Iterator iterator(); + Iterator iterator(); /** * Obtain the last index at which a given object is to be found in this @@ -297,7 +297,7 @@ while (i.hasNext()) * @return a ListIterator over the elements of this list, in order, starting * at the beginning */ - ListIterator listIterator(); + ListIterator listIterator(); /** * Obtain a ListIterator over this list, starting at a given position. @@ -310,7 +310,7 @@ while (i.hasNext()) * at index * @throws IndexOutOfBoundsException if index < 0 || index > size() */ - ListIterator listIterator(int index); + ListIterator listIterator(int index); /** * Remove the element at a given position in this list (optional operation). @@ -322,7 +322,7 @@ while (i.hasNext()) * remove operation * @throws IndexOutOfBoundsException if index < 0 || index >= size() */ - Object remove(int index); + E remove(int index); /** * Remove the first occurence of an object from this list (optional @@ -357,7 +357,7 @@ while (i.hasNext()) * @see #remove(Object) * @see #contains(Object) */ - boolean removeAll(Collection c); + boolean removeAll(Collection c); /** * Remove all elements of this list that are not contained in a given @@ -376,7 +376,7 @@ while (i.hasNext()) * @see #remove(Object) * @see #contains(Object) */ - boolean retainAll(Collection c); + boolean retainAll(Collection c); /** * Replace an element of this list with another object (optional operation). @@ -394,7 +394,7 @@ while (i.hasNext()) * @throws NullPointerException if o is null and this * list does not support null values. */ - Object set(int index, Object o); + E set(int index, E o); /** * Get the number of elements in this list. If the list contains more @@ -420,7 +420,7 @@ while (i.hasNext()) * @throws IndexOutOfBoundsException if fromIndex < 0 * || toIndex > size() || fromIndex > toIndex */ - List subList(int fromIndex, int toIndex); + List subList(int fromIndex, int toIndex); /** * Copy the current contents of this list into an array. @@ -447,5 +447,5 @@ while (i.hasNext()) * collection is not a subtype of the element type of a * @throws NullPointerException if the specified array is null */ - Object[] toArray(Object[] a); + T[] toArray(T[] a); } diff --git a/libjava/classpath/java/util/ListIterator.java b/libjava/classpath/java/util/ListIterator.java index 5e17108c991..9b74528c51a 100644 --- a/libjava/classpath/java/util/ListIterator.java +++ b/libjava/classpath/java/util/ListIterator.java @@ -1,5 +1,5 @@ /* ListIterator.java -- Extended Iterator for iterating over ordered lists - Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -59,7 +59,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface ListIterator extends Iterator +public interface ListIterator extends Iterator { /** * Tests whether there are elements remaining in the list in the forward @@ -88,7 +88,7 @@ public interface ListIterator extends Iterator * @return the next element in the list in the forward direction * @throws NoSuchElementException if there are no more elements */ - Object next(); + E next(); /** * Obtain the next element in the list in the reverse direction. Repeated @@ -100,7 +100,7 @@ public interface ListIterator extends Iterator * @return the next element in the list in the reverse direction * @throws NoSuchElementException if there are no more elements */ - Object previous(); + E previous(); /** * Find the index of the element that would be returned by a call to next. @@ -134,7 +134,7 @@ public interface ListIterator extends Iterator * @throws UnsupportedOperationException if this ListIterator does not * support the add operation. */ - void add(Object o); + void add(E o); /** * Remove from the list the element last returned by a call to next or @@ -166,5 +166,5 @@ public interface ListIterator extends Iterator * @throws UnsupportedOperationException if this ListIterator does not * support the set operation */ - void set(Object o); + void set(E o); } diff --git a/libjava/classpath/java/util/ListResourceBundle.java b/libjava/classpath/java/util/ListResourceBundle.java index 2bc51c3b013..2e48a22b50a 100644 --- a/libjava/classpath/java/util/ListResourceBundle.java +++ b/libjava/classpath/java/util/ListResourceBundle.java @@ -108,21 +108,21 @@ public abstract class ListResourceBundle extends ResourceBundle * * @return an enumeration of the keys */ - public Enumeration getKeys() + public Enumeration getKeys() { // We make a new Set that holds all the keys, then return an enumeration // for that. This prevents modifications from ruining the enumeration, // as well as ignoring duplicates. final Object[][] contents = getContents(); - Set s = new HashSet(); + Set s = new HashSet(); int i = contents.length; while (--i >= 0) - s.add(contents[i][0]); + s.add((String) contents[i][0]); ResourceBundle bundle = parent; // Eliminate tail recursion. while (bundle != null) { - Enumeration e = bundle.getKeys(); + Enumeration e = bundle.getKeys(); while (e.hasMoreElements()) s.add(e.nextElement()); bundle = bundle.parent; diff --git a/libjava/classpath/java/util/Locale.java b/libjava/classpath/java/util/Locale.java index d2aead43c68..4c91eeb0a48 100644 --- a/libjava/classpath/java/util/Locale.java +++ b/libjava/classpath/java/util/Locale.java @@ -1,5 +1,5 @@ /* Locale.java -- i18n locales - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -192,7 +192,7 @@ public final class Locale implements Serializable, Cloneable * * @serial should be -1 in serial streams */ - private transient int hashcode; + private int hashcode; /** * Array storing all available locales. @@ -917,8 +917,8 @@ public final class Locale implements Serializable, Cloneable return false; Locale l = (Locale) obj; - return (language == l.language - && country == l.country + return (language == l.language + && country == l.country && variant == l.variant); } @@ -935,11 +935,9 @@ public final class Locale implements Serializable, Cloneable private void writeObject(ObjectOutputStream s) throws IOException { - s.writeObject(language); - s.writeObject(country); - s.writeObject(variant); - // Hashcode field is always written as -1. - s.writeInt(-1); + ObjectOutputStream.PutField fields = s.putFields(); + fields.put("hashcode", -1); + s.defaultWriteObject(); } /** @@ -953,10 +951,10 @@ public final class Locale implements Serializable, Cloneable private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { - language = ((String) s.readObject()).intern(); - country = ((String) s.readObject()).intern(); - variant = ((String) s.readObject()).intern(); - // Recompute hashcode. + s.defaultReadObject(); + language = language.intern(); + country = country.intern(); + variant = variant.intern(); hashcode = language.hashCode() ^ country.hashCode() ^ variant.hashCode(); } } // class Locale diff --git a/libjava/classpath/java/util/Map.java b/libjava/classpath/java/util/Map.java index 986ab9a84b4..67b3d8aa507 100644 --- a/libjava/classpath/java/util/Map.java +++ b/libjava/classpath/java/util/Map.java @@ -78,7 +78,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface Map +public interface Map { /** * Remove all entries from this Map (optional operation). @@ -127,7 +127,7 @@ public interface Map * @return the set view of all mapping entries * @see Map.Entry */ - Set entrySet(); + Set> entrySet(); /** * Compares the specified object with this map for equality. Returns @@ -153,7 +153,7 @@ public interface Map * @throws NullPointerException if this map does not accept null keys * @see #containsKey(Object) */ - Object get(Object key); + V get(Object key); /** * Associates the given key to the given value (optional operation). If the @@ -172,7 +172,7 @@ public interface Map * and the map forbids null keys or values * @see #containsKey(Object) */ - Object put(Object key, Object value); + V put(K key, V value); /** * Returns the hash code for this map. This is the sum of all hashcodes @@ -204,7 +204,7 @@ public interface Map * * @return the set view of all keys */ - Set keySet(); + Set keySet(); /** * Copies all entries of the given map to this one (optional operation). If @@ -219,7 +219,7 @@ public interface Map * if m is null. * @see #put(Object, Object) */ - void putAll(Map m); + void putAll(Map m); /** * Removes the mapping for this key if present (optional operation). If @@ -234,7 +234,7 @@ public interface Map * @throws ClassCastException if the type of the key is not a valid type * for this map. */ - Object remove(Object key); + V remove(Object o); /** * Returns the number of key-value mappings in the map. If there are more @@ -257,7 +257,7 @@ public interface Map * * @return the collection view of all values */ - Collection values(); + Collection values(); /** * A map entry (key-value pair). The Map.entrySet() method returns a set @@ -273,14 +273,14 @@ public interface Map * @since 1.2 * @status updated to 1.4 */ - interface Entry + interface Entry { /** * Get the key corresponding to this entry. * * @return the key */ - Object getKey(); + K getKey(); /** * Get the value corresponding to this entry. If you already called @@ -288,7 +288,7 @@ public interface Map * * @return the value */ - Object getValue(); + V getValue(); /** * Replaces the value with the specified object (optional operation). @@ -303,7 +303,7 @@ public interface Map * prevents it from existing in this map * @throws NullPointerException if the map forbids null values */ - Object setValue(Object value); + V setValue(V value); /** diff --git a/libjava/classpath/java/util/PriorityQueue.java b/libjava/classpath/java/util/PriorityQueue.java new file mode 100644 index 00000000000..c9cfd8b0fba --- /dev/null +++ b/libjava/classpath/java/util/PriorityQueue.java @@ -0,0 +1,335 @@ +/* PriorityQueue.java -- Unbounded priority queue + Copyright (C) 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.util; + +import java.io.Serializable; + +/** + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class PriorityQueue extends AbstractQueue implements Serializable +{ + private static final int DEFAULT_CAPACITY = 11; + + private static final long serialVersionUID = -7720805057305804111L; + + /** Number of elements actually used in the storage array. */ + int used; + + /** + * This is the storage for the underlying binomial heap. + * The idea is, each node is less than or equal to its children. + * A node at index N (0-based) has two direct children, at + * nodes 2N+1 and 2N+2. + */ + E[] storage; + + /** + * The comparator we're using, or null for natural ordering. + */ + Comparator comparator; + + public PriorityQueue() + { + this(DEFAULT_CAPACITY, null); + } + + public PriorityQueue(Collection c) + { + this(Math.max(1, (int) (1.1 * c.size())), null); + + // Special case where we can find the comparator to use. + if (c instanceof SortedSet) + { + SortedSet ss = (SortedSet) c; + this.comparator = (Comparator) ss.comparator(); + // We can insert the elements directly, since they are sorted. + int i = 0; + for (E val : ss) + { + if (val == null) + throw new NullPointerException(); + storage[i++] = val; + } + } + else if (c instanceof PriorityQueue) + { + PriorityQueue pq = (PriorityQueue) c; + this.comparator = (Comparator)pq.comparator(); + // We can just copy the contents. + System.arraycopy(pq.storage, 0, storage, 0, pq.storage.length); + } + + addAll(c); + } + + public PriorityQueue(int cap) + { + this(cap, null); + } + + public PriorityQueue(int cap, Comparator comp) + { + if (cap < 1) + throw new IllegalArgumentException(); + this.used = 0; + this.storage = (E[]) new Object[cap]; + this.comparator = comp; + } + + public PriorityQueue(PriorityQueue c) + { + this(Math.max(1, (int) (1.1 * c.size())), + (Comparator)c.comparator()); + // We can just copy the contents. + System.arraycopy(c.storage, 0, storage, 0, c.storage.length); + } + + public PriorityQueue(SortedSet c) + { + this(Math.max(1, (int) (1.1 * c.size())), + (Comparator)c.comparator()); + // We can insert the elements directly, since they are sorted. + int i = 0; + for (E val : c) + { + if (val == null) + throw new NullPointerException(); + storage[i++] = val; + } + } + + public void clear() + { + Arrays.fill(storage, null); + used = 0; + } + + public Comparator comparator() + { + return comparator; + } + + public Iterator iterator() + { + return new Iterator() + { + int index = -1; + int count = 0; + + public boolean hasNext() + { + return count < used; + } + + public E next() + { + while (storage[++index] == null) + ; + ++count; + return storage[index]; + } + + public void remove() + { + PriorityQueue.this.remove(index); + index--; + } + }; + } + + public boolean offer(E o) + { + if (o == null) + throw new NullPointerException(); + + int slot = findSlot(-1); + + storage[slot] = o; + ++used; + bubbleUp(slot); + + return true; + } + + public E peek() + { + return used == 0 ? null : storage[0]; + } + + public E poll() + { + if (used == 0) + return null; + E result = storage[0]; + remove(0); + return result; + } + + public boolean remove(Object o) + { + if (o != null) + { + for (int i = 0; i < storage.length; ++i) + { + if (o.equals(storage[i])) + { + remove(i); + return true; + } + } + } + return false; + } + + public int size() + { + return used; + } + + // It is more efficient to implement this locally -- less searching + // for free slots. + public boolean addAll(Collection c) + { + if (c == this) + throw new IllegalArgumentException(); + + int newSlot = -1; + int save = used; + for (E val : c) + { + if (val == null) + throw new NullPointerException(); + newSlot = findSlot(newSlot); + storage[newSlot] = val; + ++used; + bubbleUp(newSlot); + } + + return save != used; + } + + int findSlot(int start) + { + int slot; + if (used == storage.length) + { + resize(); + slot = used; + } + else + { + for (slot = start + 1; slot < storage.length; ++slot) + { + if (storage[slot] == null) + break; + } + // We'll always find a slot. + } + return slot; + } + + void remove(int index) + { + // Remove the element at INDEX. We do this by finding the least + // child and moving it into place, then iterating until we reach + // the bottom of the tree. + while (storage[index] != null) + { + int child = 2 * index + 1; + + // See if we went off the end. + if (child >= storage.length) + { + storage[index] = null; + break; + } + + // Find which child we want to promote. If one is not null, + // we pick it. If both are null, it doesn't matter, we're + // about to leave. If neither is null, pick the lesser. + if (child + 1 >= storage.length || storage[child + 1] == null) + { + // Nothing. + } + else if (storage[child] == null + || (Collections.compare(storage[child], storage[child + 1], + comparator) > 0)) + ++child; + storage[index] = storage[child]; + index = child; + } + --used; + } + + void bubbleUp(int index) + { + // The element at INDEX was inserted into a blank spot. Now move + // it up the tree to its natural resting place. + while (index > 0) + { + // This works regardless of whether we're at 2N+1 or 2N+2. + int parent = (index - 1) / 2; + if (Collections.compare(storage[parent], storage[index], comparator) + <= 0) + { + // Parent is the same or smaller than this element, so the + // invariant is preserved. Note that if the new element + // is smaller than the parent, then it is necessarily + // smaller than the parent's other child. + break; + } + + E temp = storage[index]; + storage[index] = storage[parent]; + storage[parent] = temp; + + index = parent; + } + } + + void resize() + { + E[] new_data = (E[]) new Object[2 * storage.length]; + System.arraycopy(storage, 0, new_data, 0, storage.length); + storage = new_data; + } +} diff --git a/libjava/classpath/java/util/Properties.java b/libjava/classpath/java/util/Properties.java index eb208f5a93d..e294fee7ea9 100644 --- a/libjava/classpath/java/util/Properties.java +++ b/libjava/classpath/java/util/Properties.java @@ -104,7 +104,7 @@ s16=1,3 * @see PropertyResourceBundle * @status updated to 1.4 */ -public class Properties extends Hashtable +public class Properties extends Hashtable { // WARNING: Properties is a CORE class in the bootstrap cycle. See the // comments in vm/reference/java/lang/Runtime for implications of this fact. @@ -370,6 +370,7 @@ label = Name:\\u0020 * value that are not strings * @deprecated use {@link #store(OutputStream, String)} instead */ + @Deprecated public void save(OutputStream out, String header) { try @@ -489,7 +490,7 @@ label = Name:\\u0020 * * @return an Enumeration of all defined keys */ - public Enumeration propertyNames() + public Enumeration propertyNames() { // We make a new Set that holds all the keys, then return an enumeration // for that. This prevents modifications from ruining the enumeration, diff --git a/libjava/classpath/java/util/PropertyResourceBundle.java b/libjava/classpath/java/util/PropertyResourceBundle.java index aaff0766a35..53a1af5360b 100644 --- a/libjava/classpath/java/util/PropertyResourceBundle.java +++ b/libjava/classpath/java/util/PropertyResourceBundle.java @@ -126,15 +126,17 @@ public class PropertyResourceBundle extends ResourceBundle * * @return an enumeration of the keys */ - public Enumeration getKeys() + public Enumeration getKeys() { if (parent == null) - return properties.propertyNames(); + // FIXME: bogus cast. + return (Enumeration) properties.propertyNames(); // We make a new Set that holds all the keys, then return an enumeration // for that. This prevents modifications from ruining the enumeration, // as well as ignoring duplicates. - Set s = new HashSet(); - Enumeration e = properties.propertyNames(); + Set s = new HashSet(); + // FIXME: bogus cast. + Enumeration e = (Enumeration) properties.propertyNames(); while (e.hasMoreElements()) s.add(e.nextElement()); ResourceBundle bundle = parent; diff --git a/libjava/classpath/java/util/ResourceBundle.java b/libjava/classpath/java/util/ResourceBundle.java index 4dcb9ad16f8..9b82bc80152 100644 --- a/libjava/classpath/java/util/ResourceBundle.java +++ b/libjava/classpath/java/util/ResourceBundle.java @@ -91,6 +91,14 @@ baseName public abstract class ResourceBundle { /** + * Maximum size of our cache of ResourceBundles keyed by + * {@link BundleKey} instances. + * + * @see BundleKey + */ + private static final int CACHE_SIZE = 100; + + /** * The parent bundle. This is consulted when you call getObject and there * is no such resource in the current bundle. This field may be null. */ @@ -104,21 +112,22 @@ public abstract class ResourceBundle private Locale locale; /** - * The resource bundle cache. - */ - private static Map bundleCache; - - /** - * The last default Locale we saw. If this ever changes then we have to - * reset our caches. - */ - private static Locale lastDefaultLocale; - - /** - * The `empty' locale is created once in order to optimize - * tryBundle(). + * A VM-wide cache of resource bundles already fetched. + *

    + * This {@link Map} is a Least Recently Used (LRU) cache, of the last + * {@link #CACHE_SIZE} accessed ResourceBundles keyed by the + * tuple: default locale, resource-bundle name, resource-bundle locale, and + * classloader. + * + * @see BundleKey */ - private static final Locale emptyLocale = new Locale(""); + private static Map bundleCache = new LinkedHashMap(CACHE_SIZE + 1, 0.75F, true) + { + public boolean removeEldestEntry(Map.Entry entry) + { + return size() > CACHE_SIZE; + } + }; /** * The constructor. It does nothing special. @@ -246,6 +255,7 @@ public abstract class ResourceBundle by the combination of bundle name, locale, and class loader. */ private static class BundleKey { + Locale defaultLocale; String baseName; Locale locale; ClassLoader classLoader; @@ -253,18 +263,19 @@ public abstract class ResourceBundle BundleKey() {} - BundleKey(String s, Locale l, ClassLoader cl) + BundleKey(Locale dl, String s, Locale l, ClassLoader cl) { - set(s, l, cl); + set(dl, s, l, cl); } - void set(String s, Locale l, ClassLoader cl) + void set(Locale dl, String s, Locale l, ClassLoader cl) { + defaultLocale = dl; baseName = s; locale = l; classLoader = cl; - hashcode = baseName.hashCode() ^ locale.hashCode() ^ - classLoader.hashCode(); + hashcode = defaultLocale.hashCode() ^ baseName.hashCode() + ^ locale.hashCode() ^ classLoader.hashCode(); } public int hashCode() @@ -277,10 +288,11 @@ public abstract class ResourceBundle if (! (o instanceof BundleKey)) return false; BundleKey key = (BundleKey) o; - return hashcode == key.hashcode && - baseName.equals(key.baseName) && - locale.equals(key.locale) && - classLoader.equals(key.classLoader); + return hashcode == key.hashcode + && defaultLocale.equals(key.defaultLocale) + && baseName.equals(key.baseName) + && locale.equals(key.locale) + && classLoader.equals(key.classLoader); } } @@ -370,61 +382,39 @@ public abstract class ResourceBundle public static synchronized ResourceBundle getBundle (String baseName, Locale locale, ClassLoader classLoader) { - // If the default locale changed since the last time we were called, - // all cache entries are invalidated. Locale defaultLocale = Locale.getDefault(); - if (defaultLocale != lastDefaultLocale) - { - bundleCache = new HashMap(); - lastDefaultLocale = defaultLocale; - } - // This will throw NullPointerException if any arguments are null. - lookupKey.set(baseName, locale, classLoader); - + lookupKey.set(defaultLocale, baseName, locale, classLoader); Object obj = bundleCache.get(lookupKey); - ResourceBundle rb = null; - if (obj instanceof ResourceBundle) + return (ResourceBundle) obj; + + if (obj == nullEntry) + throw new MissingResourceException("Bundle " + baseName + + " not found for locale " + locale + + " by classloader " + classLoader, + baseName, ""); + // First, look for a bundle for the specified locale. We don't want + // the base bundle this time. + boolean wantBase = locale.equals(defaultLocale); + ResourceBundle bundle = tryBundle(baseName, locale, classLoader, wantBase); + // Try the default locale if neccessary. + if (bundle == null && ! wantBase) + bundle = tryBundle(baseName, defaultLocale, classLoader, true); + + BundleKey key = new BundleKey(defaultLocale, baseName, locale, classLoader); + if (bundle == null) { - return (ResourceBundle) obj; - } - else if (obj == nullEntry) - { - // Lookup has failed previously. Fall through. + // Cache the fact that this lookup has previously failed. + bundleCache.put(key, nullEntry); + throw new MissingResourceException("Bundle " + baseName + + " not found for locale " + locale + + " by classloader " + classLoader, + baseName, ""); } - else - { - // First, look for a bundle for the specified locale. We don't want - // the base bundle this time. - boolean wantBase = locale.equals(defaultLocale); - ResourceBundle bundle = tryBundle(baseName, locale, classLoader, - wantBase); - - // Try the default locale if neccessary. - if (bundle == null && !locale.equals(defaultLocale)) - bundle = tryBundle(baseName, defaultLocale, classLoader, true); - - BundleKey key = new BundleKey(baseName, locale, classLoader); - if (bundle == null) - { - // Cache the fact that this lookup has previously failed. - bundleCache.put(key, nullEntry); - } - else - { - // Cache the result and return it. - bundleCache.put(key, bundle); - return bundle; - } - } - - throw new MissingResourceException("Bundle " + baseName - + " not found for locale " - + locale - + " by classloader " - + classLoader, - baseName, ""); + // Cache the result and return it. + bundleCache.put(key, bundle); + return bundle; } /** @@ -447,7 +437,7 @@ public abstract class ResourceBundle * * @return an enumeration of the keys */ - public abstract Enumeration getKeys(); + public abstract Enumeration getKeys(); /** * Tries to load a class or a property file with the specified name. diff --git a/libjava/classpath/java/util/Set.java b/libjava/classpath/java/util/Set.java index 839959e620c..35f75b5e798 100644 --- a/libjava/classpath/java/util/Set.java +++ b/libjava/classpath/java/util/Set.java @@ -1,5 +1,6 @@ /* Set.java -- A collection that prohibits duplicates - Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2004, 2005 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -66,7 +67,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface Set extends Collection +public interface Set extends Collection { /** * Adds the specified element to the set if it is not already present @@ -83,7 +84,7 @@ public interface Set extends Collection * being added * @throws NullPointerException if null is not permitted in this set */ - boolean add(Object o); + boolean add(E o); /** * Adds all of the elements of the given collection to this set (optional @@ -102,7 +103,7 @@ public interface Set extends Collection * if the argument c is null * @see #add(Object) */ - boolean addAll(Collection c); + boolean addAll(Collection c); /** * Removes all elements from this set (optional operation). This set will @@ -139,7 +140,7 @@ public interface Set extends Collection * set doesn't support null values. * @see #contains(Object) */ - boolean containsAll(Collection c); + boolean containsAll(Collection c); /** * Compares the specified object to this for equality. For sets, the object @@ -173,7 +174,7 @@ public interface Set extends Collection * * @return a set iterator */ - Iterator iterator(); + Iterator iterator(); /** * Removes the specified element from this set (optional operation). If @@ -205,7 +206,7 @@ public interface Set extends Collection * set doesn't support removing null values. * @see #remove(Object) */ - boolean removeAll(Collection c); + boolean removeAll(Collection c); /** * Retains only the elements in this set that are also in the specified @@ -222,7 +223,7 @@ public interface Set extends Collection * set doesn't support retaining null values. * @see #remove(Object) */ - boolean retainAll(Collection c); + boolean retainAll(Collection c); /** * Returns the number of elements in the set. If there are more @@ -260,5 +261,5 @@ public interface Set extends Collection * @throws NullPointerException if a is null * @see #toArray() */ - Object[] toArray(Object[] a); + T[] toArray(T[] a); } diff --git a/libjava/classpath/java/util/SortedMap.java b/libjava/classpath/java/util/SortedMap.java index acfbd0d3639..2b98848f4de 100644 --- a/libjava/classpath/java/util/SortedMap.java +++ b/libjava/classpath/java/util/SortedMap.java @@ -1,5 +1,5 @@ /* SortedMap.java -- A map that makes guarantees about the order of its keys - Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -72,7 +72,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface SortedMap extends Map +public interface SortedMap extends Map { /** * Returns the comparator used in sorting this map, or null if it is @@ -80,7 +80,7 @@ public interface SortedMap extends Map * * @return the sorting comparator */ - Comparator comparator(); + Comparator comparator(); /** * Returns the first (lowest sorted) key in the map. @@ -88,7 +88,7 @@ public interface SortedMap extends Map * @return the first key * @throws NoSuchElementException if this map is empty. */ - Object firstKey(); + K firstKey(); /** * Returns a view of the portion of the map strictly less than toKey. The @@ -110,7 +110,7 @@ public interface SortedMap extends Map * @throws NullPointerException if toKey is null but the map does not allow * null keys */ - SortedMap headMap(Object toKey); + SortedMap headMap(K toKey); /** * Returns the last (highest sorted) key in the map. @@ -118,7 +118,7 @@ public interface SortedMap extends Map * @return the last key * @throws NoSuchElementException if this map is empty. */ - Object lastKey(); + K lastKey(); /** * Returns a view of the portion of the map greater than or equal to @@ -146,7 +146,7 @@ public interface SortedMap extends Map * @throws NullPointerException if fromKey or toKey is null but the map * does not allow null keys */ - SortedMap subMap(Object fromKey, Object toKey); + SortedMap subMap(K fromKey, K toKey); /** * Returns a view of the portion of the map greater than or equal to @@ -169,5 +169,5 @@ public interface SortedMap extends Map * @throws NullPointerException if fromKey is null but the map does not allow * null keys */ - SortedMap tailMap(Object fromKey); + SortedMap tailMap(K fromKey); } diff --git a/libjava/classpath/java/util/SortedSet.java b/libjava/classpath/java/util/SortedSet.java index 48a24a8e0f9..89f155a0dc0 100644 --- a/libjava/classpath/java/util/SortedSet.java +++ b/libjava/classpath/java/util/SortedSet.java @@ -1,6 +1,6 @@ /* SortedSet.java -- A set that makes guarantees about the order of its elements - Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -74,7 +74,7 @@ package java.util; * @since 1.2 * @status updated to 1.4 */ -public interface SortedSet extends Set +public interface SortedSet extends Set { /** * Returns the comparator used in sorting this set, or null if it is @@ -82,7 +82,7 @@ public interface SortedSet extends Set * * @return the sorting comparator */ - Comparator comparator(); + Comparator comparator(); /** * Returns the first (lowest sorted) element in the set. @@ -90,7 +90,7 @@ public interface SortedSet extends Set * @return the first element * @throws NoSuchElementException if the set is empty. */ - Object first(); + E first(); /** * Returns a view of the portion of the set strictly less than toElement. The @@ -113,7 +113,7 @@ public interface SortedSet extends Set * @throws NullPointerException if toElement is null but the set does not * allow null elements */ - SortedSet headSet(Object toElement); + SortedSet headSet(E toElement); /** * Returns the last (highest sorted) element in the set. @@ -121,7 +121,7 @@ public interface SortedSet extends Set * @return the last element * @throws NoSuchElementException if the set is empty. */ - Object last(); + E last(); /** * Returns a view of the portion of the set greater than or equal to @@ -149,7 +149,7 @@ public interface SortedSet extends Set * @throws NullPointerException if fromElement or toElement is null but the * set does not allow null elements */ - SortedSet subSet(Object fromElement, Object toElement); + SortedSet subSet(E fromElement, E toElement); /** * Returns a view of the portion of the set greater than or equal to @@ -172,5 +172,5 @@ public interface SortedSet extends Set * @throws NullPointerException if fromElement is null but the set does not * allow null elements */ - SortedSet tailSet(Object fromElement); + SortedSet tailSet(E fromElement); } diff --git a/libjava/classpath/java/util/Stack.java b/libjava/classpath/java/util/Stack.java index 730ce177cd1..404a146c272 100644 --- a/libjava/classpath/java/util/Stack.java +++ b/libjava/classpath/java/util/Stack.java @@ -1,6 +1,7 @@ /* Stack.java - Class that provides a Last In First Out (LIFO) datatype, known more commonly as a Stack - Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2004, 2005 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,7 +59,7 @@ package java.util; * @since 1.0 * @status updated to 1.4 */ -public class Stack extends Vector +public class Stack extends Vector { // We could use Vector methods internally for the following methods, // but have used Vector fields directly for efficiency (i.e. this @@ -84,7 +85,7 @@ public class Stack extends Vector * @return the Object pushed onto the stack * @see Vector#addElement(Object) */ - public Object push(Object item) + public T push(T item) { // When growing the Stack, use the Vector routines in case more // memory is needed. @@ -101,13 +102,13 @@ public class Stack extends Vector * @return the Object popped from the stack * @throws EmptyStackException if the stack is empty */ - public synchronized Object pop() + public synchronized T pop() { if (elementCount == 0) throw new EmptyStackException(); modCount++; - Object obj = elementData[--elementCount]; + T obj = elementData[--elementCount]; // Set topmost element to null to assist the gc in cleanup. elementData[elementCount] = null; @@ -120,7 +121,7 @@ public class Stack extends Vector * @return the top Object on the stack * @throws EmptyStackException if the stack is empty */ - public synchronized Object peek() + public synchronized T peek() { if (elementCount == 0) throw new EmptyStackException(); diff --git a/libjava/classpath/java/util/StringTokenizer.java b/libjava/classpath/java/util/StringTokenizer.java index 21298c75ec7..0b59abe2fda 100644 --- a/libjava/classpath/java/util/StringTokenizer.java +++ b/libjava/classpath/java/util/StringTokenizer.java @@ -58,7 +58,7 @@ package java.util; * @see java.io.StreamTokenizer * @status updated to 1.4 */ -public class StringTokenizer implements Enumeration +public class StringTokenizer implements Enumeration { // WARNING: StringTokenizer is a CORE class in the bootstrap cycle. See the // comments in vm/reference/java/lang/Runtime for implications of this fact. diff --git a/libjava/classpath/java/util/Timer.java b/libjava/classpath/java/util/Timer.java index 01a6fe8eab3..9b23a8fe709 100644 --- a/libjava/classpath/java/util/Timer.java +++ b/libjava/classpath/java/util/Timer.java @@ -306,50 +306,50 @@ public class Timer // Null out any elements that are canceled. Skip element 0 as // it is the sentinel. for (int i = elements; i > 0; --i) - { - if (heap[i].scheduled < 0) - { - ++removed; - - // Remove an element by pushing the appropriate child - // into place, and then iterating to the bottom of the - // tree. - int index = i; - while (heap[index] != null) - { - int child = 2 * index; - if (child >= heap.length) - { - // Off end; we're done. - heap[index] = null; - break; - } - - if (child + 1 >= heap.length || heap[child + 1] == null) - { - // Nothing -- we're done. - } - else if (heap[child] == null - || (heap[child].scheduled - > heap[child + 1].scheduled)) - ++child; - heap[index] = heap[child]; - index = child; - } - } - } - + { + if (heap[i].scheduled < 0) + { + ++removed; + + // Remove an element by pushing the appropriate child + // into place, and then iterating to the bottom of the + // tree. + int index = i; + while (heap[index] != null) + { + int child = 2 * index; + if (child >= heap.length) + { + // Off end; we're done. + heap[index] = null; + break; + } + + if (child + 1 >= heap.length || heap[child + 1] == null) + { + // Nothing -- we're done. + } + else if (heap[child] == null + || (heap[child].scheduled + > heap[child + 1].scheduled)) + ++child; + heap[index] = heap[child]; + index = child; + } + } + } + // Make a new heap if we shrank enough. int newLen = heap.length; while (elements - removed + DEFAULT_SIZE / 2 <= newLen / 4) - newLen /= 2; + newLen /= 2; if (newLen != heap.length) - { - TimerTask[] newHeap = new TimerTask[newLen]; - System.arraycopy(heap, 0, newHeap, 0, elements + 1); - heap = newHeap; - } - + { + TimerTask[] newHeap = new TimerTask[newLen]; + System.arraycopy(heap, 0, newHeap, 0, elements + 1); + heap = newHeap; + } + return removed; } } // TaskQueue @@ -474,11 +474,11 @@ public class Timer this(daemon, Thread.NORM_PRIORITY); } - /** + /** * Create a new Timer whose Thread has the indicated name. It will have * normal priority and will not be a daemon thread. * @param name the name of the Thread - * @since 1.5 + * @since 1.5 */ public Timer(String name) { @@ -691,7 +691,7 @@ public class Timer { queue.setNullOnEmpty(true); } - + /** * Removes all cancelled tasks from the queue. * @return the number of tasks removed diff --git a/libjava/classpath/java/util/TreeMap.java b/libjava/classpath/java/util/TreeMap.java index 60d0a4d50a1..88abce10d8d 100644 --- a/libjava/classpath/java/util/TreeMap.java +++ b/libjava/classpath/java/util/TreeMap.java @@ -90,8 +90,8 @@ import java.io.Serializable; * @since 1.2 * @status updated to 1.4 */ -public class TreeMap extends AbstractMap - implements SortedMap, Cloneable, Serializable +public class TreeMap extends AbstractMap + implements SortedMap, Cloneable, Serializable { // Implementation note: // A red-black tree is a binary search tree with the additional properties @@ -140,7 +140,7 @@ public class TreeMap extends AbstractMap /** * The cache for {@link #entrySet()}. */ - private transient Set entries; + private transient Set> entries; /** * Counts the number of modifications this TreeMap has undergone, used @@ -154,7 +154,7 @@ public class TreeMap extends AbstractMap * Package visible for use by nested classes. * @serial the comparator ordering this tree, or null */ - final Comparator comparator; + final Comparator comparator; /** * Class to represent an entry in the tree. Holds a single key-value pair, @@ -162,25 +162,25 @@ public class TreeMap extends AbstractMap * * @author Eric Blake (ebb9@email.byu.edu) */ - private static final class Node extends AbstractMap.BasicMapEntry + private static final class Node extends AbstractMap.SimpleEntry { // All fields package visible for use by nested classes. /** The color of this node. */ int color; /** The left child node. */ - Node left = nil; + Node left = nil; /** The right child node. */ - Node right = nil; + Node right = nil; /** The parent node. */ - Node parent = nil; + Node parent = nil; /** * Simple constructor. * @param key the key * @param value the value */ - Node(Object key, Object value, int color) + Node(K key, V value, int color) { super(key, value); this.color = color; @@ -210,7 +210,7 @@ public class TreeMap extends AbstractMap * @param c the sort order for the keys of this map, or null * for the natural order */ - public TreeMap(Comparator c) + public TreeMap(Comparator c) { comparator = c; fabricateTree(0); @@ -230,7 +230,7 @@ public class TreeMap extends AbstractMap * @throws NullPointerException if map is null * @see Comparable */ - public TreeMap(Map map) + public TreeMap(Map map) { this((Comparator) null); putAll(map); @@ -244,7 +244,7 @@ public class TreeMap extends AbstractMap * @param sm a SortedMap, whose entries will be put into this TreeMap * @throws NullPointerException if sm is null */ - public TreeMap(SortedMap sm) + public TreeMap(SortedMap sm) { this(sm.comparator()); int pos = sm.size(); @@ -313,7 +313,7 @@ public class TreeMap extends AbstractMap * * @return the map's comparator */ - public Comparator comparator() + public Comparator comparator() { return comparator; } @@ -329,7 +329,7 @@ public class TreeMap extends AbstractMap */ public boolean containsKey(Object key) { - return getNode(key) != nil; + return getNode((K) key) != nil; } /** @@ -364,19 +364,19 @@ public class TreeMap extends AbstractMap * @see #values() * @see Map.Entry */ - public Set entrySet() + public Set> entrySet() { if (entries == null) // Create an AbstractSet with custom implementations of those methods // that can be overriden easily and efficiently. - entries = new AbstractSet() + entries = new AbstractSet>() { public int size() { return size; } - public Iterator iterator() + public Iterator> iterator() { return new TreeIterator(ENTRIES); } @@ -390,8 +390,8 @@ public class TreeMap extends AbstractMap { if (! (o instanceof Map.Entry)) return false; - Map.Entry me = (Map.Entry) o; - Node n = getNode(me.getKey()); + Map.Entry me = (Map.Entry) o; + Node n = getNode(me.getKey()); return n != nil && AbstractSet.equals(me.getValue(), n.value); } @@ -399,8 +399,8 @@ public class TreeMap extends AbstractMap { if (! (o instanceof Map.Entry)) return false; - Map.Entry me = (Map.Entry) o; - Node n = getNode(me.getKey()); + Map.Entry me = (Map.Entry) o; + Node n = getNode(me.getKey()); if (n != nil && AbstractSet.equals(me.getValue(), n.value)) { removeNode(n); @@ -418,7 +418,7 @@ public class TreeMap extends AbstractMap * @return the first key * @throws NoSuchElementException if the map is empty */ - public Object firstKey() + public K firstKey() { if (root == nil) throw new NoSuchElementException(); @@ -439,10 +439,10 @@ public class TreeMap extends AbstractMap * @see #put(Object, Object) * @see #containsKey(Object) */ - public Object get(Object key) + public V get(Object key) { // Exploit fact that nil.value == null. - return getNode(key).value; + return getNode((K) key).value; } /** @@ -460,9 +460,9 @@ public class TreeMap extends AbstractMap * @throws NullPointerException if toKey is null, but the comparator does not * tolerate null elements */ - public SortedMap headMap(Object toKey) + public SortedMap headMap(K toKey) { - return new SubMap(nil, toKey); + return new SubMap((K)(Object)nil, toKey); } /** @@ -474,19 +474,19 @@ public class TreeMap extends AbstractMap * @see #values() * @see #entrySet() */ - public Set keySet() + public Set keySet() { if (keys == null) // Create an AbstractSet with custom implementations of those methods // that can be overriden easily and efficiently. - keys = new AbstractSet() + keys = new AbstractSet() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { return new TreeIterator(KEYS); } @@ -503,7 +503,7 @@ public class TreeMap extends AbstractMap public boolean remove(Object key) { - Node n = getNode(key); + Node n = getNode((K) key); if (n == nil) return false; removeNode(n); @@ -519,7 +519,7 @@ public class TreeMap extends AbstractMap * @return the last key * @throws NoSuchElementException if the map is empty */ - public Object lastKey() + public K lastKey() { if (root == nil) throw new NoSuchElementException("empty"); @@ -542,10 +542,10 @@ public class TreeMap extends AbstractMap * @see #get(Object) * @see Object#equals(Object) */ - public Object put(Object key, Object value) + public V put(K key, V value) { - Node current = root; - Node parent = nil; + Node current = root; + Node parent = nil; int comparison = 0; // Find new node's parent. @@ -595,13 +595,13 @@ public class TreeMap extends AbstractMap * @throws NullPointerException if a key in m is null, and the comparator * does not tolerate nulls */ - public void putAll(Map m) + public void putAll(Map m) { Iterator itr = m.entrySet().iterator(); int pos = m.size(); while (--pos >= 0) { - Map.Entry e = (Map.Entry) itr.next(); + Map.Entry e = (Map.Entry) itr.next(); put(e.getKey(), e.getValue()); } } @@ -619,13 +619,13 @@ public class TreeMap extends AbstractMap * @throws NullPointerException if key is null, but the comparator does * not tolerate nulls */ - public Object remove(Object key) + public V remove(Object key) { - Node n = getNode(key); + Node n = getNode((K)key); if (n == nil) return null; // Note: removeNode can alter the contents of n, so save value now. - Object result = n.value; + V result = n.value; removeNode(n); return result; } @@ -659,7 +659,7 @@ public class TreeMap extends AbstractMap * comparator does not tolerate null elements * @throws IllegalArgumentException if fromKey is greater than toKey */ - public SortedMap subMap(Object fromKey, Object toKey) + public SortedMap subMap(K fromKey, K toKey) { return new SubMap(fromKey, toKey); } @@ -679,9 +679,9 @@ public class TreeMap extends AbstractMap * @throws NullPointerException if fromKey is null, but the comparator * does not tolerate null elements */ - public SortedMap tailMap(Object fromKey) + public SortedMap tailMap(K fromKey) { - return new SubMap(fromKey, nil); + return new SubMap(fromKey, (K)(Object)nil); } /** @@ -694,19 +694,19 @@ public class TreeMap extends AbstractMap * @see #keySet() * @see #entrySet() */ - public Collection values() + public Collection values() { if (values == null) // We don't bother overriding many of the optional methods, as doing so // wouldn't provide any significant performance advantage. - values = new AbstractCollection() + values = new AbstractCollection() { public int size() { return size; } - public Iterator iterator() + public Iterator iterator() { return new TreeIterator(VALUES); } @@ -729,7 +729,7 @@ public class TreeMap extends AbstractMap * or are not Comparable with natural ordering * @throws NullPointerException if o1 or o2 is null with natural ordering */ - final int compare(Object o1, Object o2) + final int compare(K o1, K o2) { return (comparator == null ? ((Comparable) o1).compareTo(o2) @@ -742,7 +742,7 @@ public class TreeMap extends AbstractMap * @param node the child of the node just deleted, possibly nil * @param parent the parent of the node just deleted, never nil */ - private void deleteFixup(Node node, Node parent) + private void deleteFixup(Node node, Node parent) { // if (parent == nil) // throw new InternalError(); @@ -754,7 +754,7 @@ public class TreeMap extends AbstractMap if (node == parent.left) { // Rebalance left side. - Node sibling = parent.right; + Node sibling = parent.right; // if (sibling == nil) // throw new InternalError(); if (sibling.color == RED) @@ -798,7 +798,7 @@ public class TreeMap extends AbstractMap else { // Symmetric "mirror" of left-side case. - Node sibling = parent.left; + Node sibling = parent.left; // if (sibling == nil) // throw new InternalError(); if (sibling.color == RED) @@ -931,7 +931,7 @@ public class TreeMap extends AbstractMap * * @return the first node */ - final Node firstNode() + final Node firstNode() { // Exploit fact that nil.left == nil. Node node = root; @@ -947,9 +947,9 @@ public class TreeMap extends AbstractMap * @param key the key to search for * @return the node where the key is found, or nil */ - final Node getNode(Object key) + final Node getNode(K key) { - Node current = root; + Node current = root; while (current != nil) { int comparison = compare(key, current.key); @@ -970,13 +970,13 @@ public class TreeMap extends AbstractMap * @param key the upper bound, exclusive * @return the previous node */ - final Node highestLessThan(Object key) + final Node highestLessThan(K key) { if (key == nil) return lastNode(); - Node last = nil; - Node current = root; + Node last = nil; + Node current = root; int comparison = 0; while (current != nil) @@ -998,7 +998,7 @@ public class TreeMap extends AbstractMap * * @param n the newly inserted node */ - private void insertFixup(Node n) + private void insertFixup(Node n) { // Only need to rebalance when parent is a RED node, and while at least // 2 levels deep into the tree (ie: node has a grandparent). Remember @@ -1073,7 +1073,7 @@ public class TreeMap extends AbstractMap * * @return the last node */ - private Node lastNode() + private Node lastNode() { // Exploit fact that nil.right == nil. Node node = root; @@ -1091,13 +1091,13 @@ public class TreeMap extends AbstractMap * @param first true to return the first element instead of nil for nil key * @return the next node */ - final Node lowestGreaterThan(Object key, boolean first) + final Node lowestGreaterThan(K key, boolean first) { if (key == nil) return first ? firstNode() : nil; - Node last = nil; - Node current = root; + Node last = nil; + Node current = root; int comparison = 0; while (current != nil) @@ -1120,7 +1120,7 @@ public class TreeMap extends AbstractMap * @param node the current node, not nil * @return the prior node in sorted order */ - private Node predecessor(Node node) + private Node predecessor(Node node) { if (node.left != nil) { @@ -1169,21 +1169,21 @@ public class TreeMap extends AbstractMap /** * Construct a tree from sorted keys in linear time, with values of "". - * Package visible for use by TreeSet. + * Package visible for use by TreeSet, which uses a value type of String. * * @param keys the iterator over the sorted keys * @param count the number of nodes to insert * @see TreeSet#TreeSet(SortedSet) */ - final void putKeysLinear(Iterator keys, int count) + final void putKeysLinear(Iterator keys, int count) { fabricateTree(count); - Node node = firstNode(); + Node node = firstNode(); while (--count >= 0) { node.key = keys.next(); - node.value = ""; + node.value = (V) ""; node = successor(node); } } @@ -1211,10 +1211,10 @@ public class TreeMap extends AbstractMap * * @param node the node to remove */ - final void removeNode(Node node) + final void removeNode(Node node) { - Node splice; - Node child; + Node splice; + Node child; modCount++; size--; @@ -1268,7 +1268,7 @@ public class TreeMap extends AbstractMap * * @param node the node to rotate */ - private void rotateLeft(Node node) + private void rotateLeft(Node node) { Node child = node.right; // if (node == nil || child == nil) @@ -1301,7 +1301,7 @@ public class TreeMap extends AbstractMap * * @param node the node to rotate */ - private void rotateRight(Node node) + private void rotateRight(Node node) { Node child = node.left; // if (node == nil || child == nil) @@ -1336,7 +1336,7 @@ public class TreeMap extends AbstractMap * @param node the current node, not nil * @return the next node in sorted order */ - final Node successor(Node node) + final Node successor(Node node) { if (node.right != nil) { @@ -1346,7 +1346,7 @@ public class TreeMap extends AbstractMap return node; } - Node parent = node.parent; + Node parent = node.parent; // Exploit fact that nil.right == nil and node is non-nil. while (node == parent.right) { @@ -1489,24 +1489,26 @@ public class TreeMap extends AbstractMap * * @author Eric Blake (ebb9@email.byu.edu) */ - private final class SubMap extends AbstractMap implements SortedMap + private final class SubMap + extends AbstractMap + implements SortedMap { /** * The lower range of this view, inclusive, or nil for unbounded. * Package visible for use by nested classes. */ - final Object minKey; + final SK minKey; /** * The upper range of this view, exclusive, or nil for unbounded. * Package visible for use by nested classes. */ - final Object maxKey; + final SK maxKey; /** * The cache for {@link #entrySet()}. */ - private Set entries; + private Set> entries; /** * Create a SubMap representing the elements between minKey (inclusive) @@ -1517,9 +1519,9 @@ public class TreeMap extends AbstractMap * @param maxKey the upper bound * @throws IllegalArgumentException if minKey > maxKey */ - SubMap(Object minKey, Object maxKey) + SubMap(SK minKey, SK maxKey) { - if (minKey != nil && maxKey != nil && compare(minKey, maxKey) > 0) + if (minKey != nil && maxKey != nil && compare((K) minKey, (K) maxKey) > 0) throw new IllegalArgumentException("fromKey > toKey"); this.minKey = minKey; this.maxKey = maxKey; @@ -1533,10 +1535,10 @@ public class TreeMap extends AbstractMap * @param key the key to check * @return true if the key is in range */ - boolean keyInRange(Object key) + boolean keyInRange(SK key) { - return ((minKey == nil || compare(key, minKey) >= 0) - && (maxKey == nil || compare(key, maxKey) < 0)); + return ((minKey == nil || compare((K) key, (K) minKey) >= 0) + && (maxKey == nil || compare((K) key, (K) maxKey) < 0)); } public void clear() @@ -1551,14 +1553,14 @@ public class TreeMap extends AbstractMap } } - public Comparator comparator() + public Comparator comparator() { return comparator; } public boolean containsKey(Object key) { - return keyInRange(key) && TreeMap.this.containsKey(key); + return keyInRange((SK) key) && TreeMap.this.containsKey(key); } public boolean containsValue(Object value) @@ -1574,19 +1576,19 @@ public class TreeMap extends AbstractMap return false; } - public Set entrySet() + public Set> entrySet() { if (entries == null) // Create an AbstractSet with custom implementations of those methods // that can be overriden easily and efficiently. - entries = new AbstractSet() + entries = new AbstractSet>() { public int size() { return SubMap.this.size(); } - public Iterator iterator() + public Iterator> iterator() { Node first = lowestGreaterThan(minKey, true); Node max = lowestGreaterThan(maxKey, false); @@ -1602,11 +1604,11 @@ public class TreeMap extends AbstractMap { if (! (o instanceof Map.Entry)) return false; - Map.Entry me = (Map.Entry) o; - Object key = me.getKey(); + Map.Entry me = (Map.Entry) o; + SK key = me.getKey(); if (! keyInRange(key)) return false; - Node n = getNode(key); + Node n = getNode((K) key); return n != nil && AbstractSet.equals(me.getValue(), n.value); } @@ -1614,11 +1616,11 @@ public class TreeMap extends AbstractMap { if (! (o instanceof Map.Entry)) return false; - Map.Entry me = (Map.Entry) o; - Object key = me.getKey(); + Map.Entry me = (Map.Entry) o; + SK key = me.getKey(); if (! keyInRange(key)) return false; - Node n = getNode(key); + Node n = getNode((K) key); if (n != nil && AbstractSet.equals(me.getValue(), n.value)) { removeNode(n); @@ -1630,29 +1632,29 @@ public class TreeMap extends AbstractMap return entries; } - public Object firstKey() + public SK firstKey() { - Node node = lowestGreaterThan(minKey, true); + Node node = (Node) lowestGreaterThan(minKey, true); if (node == nil || ! keyInRange(node.key)) throw new NoSuchElementException(); return node.key; } - public Object get(Object key) + public SV get(Object key) { - if (keyInRange(key)) - return TreeMap.this.get(key); + if (keyInRange((SK) key)) + return (SV) TreeMap.this.get(key); return null; } - public SortedMap headMap(Object toKey) + public SortedMap headMap(SK toKey) { if (! keyInRange(toKey)) throw new IllegalArgumentException("key outside range"); return new SubMap(minKey, toKey); } - public Set keySet() + public Set keySet() { if (this.keys == null) // Create an AbstractSet with custom implementations of those methods @@ -1664,7 +1666,7 @@ public class TreeMap extends AbstractMap return SubMap.this.size(); } - public Iterator iterator() + public Iterator iterator() { Node first = lowestGreaterThan(minKey, true); Node max = lowestGreaterThan(maxKey, false); @@ -1678,16 +1680,16 @@ public class TreeMap extends AbstractMap public boolean contains(Object o) { - if (! keyInRange(o)) + if (! keyInRange((SK) o)) return false; - return getNode(o) != nil; + return getNode((K) o) != nil; } public boolean remove(Object o) { - if (! keyInRange(o)) + if (! keyInRange((SK) o)) return false; - Node n = getNode(o); + Node n = getNode((K) o); if (n != nil) { removeNode(n); @@ -1699,25 +1701,25 @@ public class TreeMap extends AbstractMap return this.keys; } - public Object lastKey() + public SK lastKey() { - Node node = highestLessThan(maxKey); + Node node = (Node) highestLessThan(maxKey); if (node == nil || ! keyInRange(node.key)) throw new NoSuchElementException(); - return node.key; + return (SK) node.key; } - public Object put(Object key, Object value) + public SV put(SK key, SV value) { if (! keyInRange(key)) throw new IllegalArgumentException("Key outside range"); - return TreeMap.this.put(key, value); + return (SV) TreeMap.this.put(key, value); } - public Object remove(Object key) + public SV remove(Object key) { - if (keyInRange(key)) - return TreeMap.this.remove(key); + if (keyInRange((SK)key)) + return (SV) TreeMap.this.remove(key); return null; } @@ -1734,21 +1736,21 @@ public class TreeMap extends AbstractMap return count; } - public SortedMap subMap(Object fromKey, Object toKey) + public SortedMap subMap(SK fromKey, SK toKey) { if (! keyInRange(fromKey) || ! keyInRange(toKey)) throw new IllegalArgumentException("key outside range"); return new SubMap(fromKey, toKey); } - public SortedMap tailMap(Object fromKey) + public SortedMap tailMap(SK fromKey) { if (! keyInRange(fromKey)) throw new IllegalArgumentException("key outside range"); return new SubMap(fromKey, maxKey); } - public Collection values() + public Collection values() { if (this.values == null) // Create an AbstractCollection with custom implementations of those @@ -1760,7 +1762,7 @@ public class TreeMap extends AbstractMap return SubMap.this.size(); } - public Iterator iterator() + public Iterator iterator() { Node first = lowestGreaterThan(minKey, true); Node max = lowestGreaterThan(maxKey, false); diff --git a/libjava/classpath/java/util/TreeSet.java b/libjava/classpath/java/util/TreeSet.java index 34cb39acc07..2851e4a5a8f 100644 --- a/libjava/classpath/java/util/TreeSet.java +++ b/libjava/classpath/java/util/TreeSet.java @@ -1,5 +1,5 @@ /* TreeSet.java -- a class providing a TreeMap-backed SortedSet - Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -68,6 +68,8 @@ import java.io.Serializable; * @author Jon Zeppieri * @author Bryce McKinlay * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @see Collection * @see Set * @see HashSet @@ -79,8 +81,8 @@ import java.io.Serializable; * @since 1.2 * @status updated to 1.4 */ -public class TreeSet extends AbstractSet - implements SortedSet, Cloneable, Serializable +public class TreeSet extends AbstractSet + implements SortedSet, Cloneable, Serializable { /** * Compatible with JDK 1.2. @@ -92,7 +94,7 @@ public class TreeSet extends AbstractSet */ // Not final because of readObject. This will always be one of TreeMap or // TreeMap.SubMap, which both extend AbstractMap. - private transient SortedMap map; + private transient SortedMap map; /** * Construct a new TreeSet whose backing TreeMap using the "natural" @@ -103,7 +105,7 @@ public class TreeSet extends AbstractSet */ public TreeSet() { - map = new TreeMap(); + map = new TreeMap(); } /** @@ -113,9 +115,9 @@ public class TreeSet extends AbstractSet * * @param comparator the Comparator this Set will use */ - public TreeSet(Comparator comparator) + public TreeSet(Comparator comparator) { - map = new TreeMap(comparator); + map = new TreeMap(comparator); } /** @@ -130,9 +132,9 @@ public class TreeSet extends AbstractSet * @throws NullPointerException if the collection is null * @see Comparable */ - public TreeSet(Collection collection) + public TreeSet(Collection collection) { - map = new TreeMap(); + map = new TreeMap(); addAll(collection); } @@ -145,11 +147,14 @@ public class TreeSet extends AbstractSet * and will initialize itself with all its elements * @throws NullPointerException if sortedSet is null */ - public TreeSet(SortedSet sortedSet) + public TreeSet(SortedSet sortedSet) { - map = new TreeMap(sortedSet.comparator()); - Iterator itr = sortedSet.iterator(); - ((TreeMap) map).putKeysLinear(itr, sortedSet.size()); + Iterator itr; + + map = new TreeMap + ((Comparator)sortedSet.comparator()); + itr = ((SortedSet) sortedSet).iterator(); + ((TreeMap) map).putKeysLinear(itr, sortedSet.size()); } /** @@ -158,7 +163,7 @@ public class TreeSet extends AbstractSet * * @param backingMap the submap */ - private TreeSet(SortedMap backingMap) + private TreeSet(SortedMap backingMap) { map = backingMap; } @@ -171,7 +176,7 @@ public class TreeSet extends AbstractSet * @throws ClassCastException if the element cannot be compared with objects * already in the set */ - public boolean add(Object obj) + public boolean add(T obj) { return map.put(obj, "") == null; } @@ -185,11 +190,11 @@ public class TreeSet extends AbstractSet * @throws ClassCastException if an element in c cannot be compared with * objects already in the set */ - public boolean addAll(Collection c) + public boolean addAll(Collection c) { boolean result = false; int pos = c.size(); - Iterator itr = c.iterator(); + Iterator itr = c.iterator(); while (--pos >= 0) result |= (map.put(itr.next(), "") == null); return result; @@ -210,12 +215,12 @@ public class TreeSet extends AbstractSet */ public Object clone() { - TreeSet copy = null; + TreeSet copy = null; try { - copy = (TreeSet) super.clone(); + copy = (TreeSet) super.clone(); // Map may be either TreeMap or TreeMap.SubMap, hence the ugly casts. - copy.map = (SortedMap) ((AbstractMap) map).clone(); + copy.map = (SortedMap) ((AbstractMap) map).clone(); } catch (CloneNotSupportedException x) { @@ -229,7 +234,7 @@ public class TreeSet extends AbstractSet * * @return the comparator, or null if the set uses natural ordering */ - public Comparator comparator() + public Comparator comparator() { return map.comparator(); } @@ -253,7 +258,7 @@ public class TreeSet extends AbstractSet * @return the first element * @throws NoSuchElementException if the set is empty */ - public Object first() + public T first() { return map.firstKey(); } @@ -273,9 +278,9 @@ public class TreeSet extends AbstractSet * @throws NullPointerException if to is null, but the comparator does not * tolerate null elements */ - public SortedSet headSet(Object to) + public SortedSet headSet(T to) { - return new TreeSet(map.headMap(to)); + return new TreeSet(map.headMap(to)); } /** @@ -294,7 +299,7 @@ public class TreeSet extends AbstractSet * * @return an iterator */ - public Iterator iterator() + public Iterator iterator() { return map.keySet().iterator(); } @@ -305,7 +310,7 @@ public class TreeSet extends AbstractSet * @return the last element * @throws NoSuchElementException if the set is empty */ - public Object last() + public T last() { return map.lastKey(); } @@ -351,9 +356,9 @@ public class TreeSet extends AbstractSet * does not tolerate null elements * @throws IllegalArgumentException if from is greater than to */ - public SortedSet subSet(Object from, Object to) + public SortedSet subSet(T from, T to) { - return new TreeSet(map.subMap(from, to)); + return new TreeSet(map.subMap(from, to)); } /** @@ -371,9 +376,9 @@ public class TreeSet extends AbstractSet * @throws NullPointerException if from is null, but the comparator * does not tolerate null elements */ - public SortedSet tailSet(Object from) + public SortedSet tailSet(T from) { - return new TreeSet(map.tailMap(from)); + return new TreeSet(map.tailMap(from)); } /** @@ -387,7 +392,7 @@ public class TreeSet extends AbstractSet private void writeObject(ObjectOutputStream s) throws IOException { s.defaultWriteObject(); - Iterator itr = map.keySet().iterator(); + Iterator itr = map.keySet().iterator(); int pos = map.size(); s.writeObject(map.comparator()); s.writeInt(pos); @@ -408,9 +413,9 @@ public class TreeSet extends AbstractSet throws IOException, ClassNotFoundException { s.defaultReadObject(); - Comparator comparator = (Comparator) s.readObject(); + Comparator comparator = (Comparator) s.readObject(); int size = s.readInt(); - map = new TreeMap(comparator); - ((TreeMap) map).putFromObjStream(s, size, false); + map = new TreeMap(comparator); + ((TreeMap) map).putFromObjStream(s, size, false); } } diff --git a/libjava/classpath/java/util/UUID.java b/libjava/classpath/java/util/UUID.java index 6a57d27b448..9a402d15922 100644 --- a/libjava/classpath/java/util/UUID.java +++ b/libjava/classpath/java/util/UUID.java @@ -77,7 +77,7 @@ import java.security.NoSuchAlgorithmException; */ public final class UUID extends Object - implements Serializable, Comparable // genericizeme! + implements Serializable, Comparable { private static final long serialVersionUID = -4856846361193249489L; @@ -127,17 +127,6 @@ public final class UUID * * @return -1 if this < val, 0 if they are equal, 1 if this > val. */ - public int compareTo(Object val) - { - return compareTo((UUID)val); - } - - /** - * Compare this UUID to another. - * The comparison is performed as between two 128-bit integers. - * - * @return -1 if this < val, 0 if they are equal, 1 if this > val. - */ public int compareTo(UUID o) { if( mostSigBits < o.mostSigBits ) diff --git a/libjava/classpath/java/util/Vector.java b/libjava/classpath/java/util/Vector.java index eb72ae49df8..ea29ce09315 100644 --- a/libjava/classpath/java/util/Vector.java +++ b/libjava/classpath/java/util/Vector.java @@ -82,8 +82,8 @@ import java.lang.reflect.Array; * @since 1.0 * @status updated to 1.4 */ -public class Vector extends AbstractList - implements List, RandomAccess, Cloneable, Serializable +public class Vector extends AbstractList + implements List, RandomAccess, Cloneable, Serializable { /** * Compatible with JDK 1.0+. @@ -95,7 +95,7 @@ public class Vector extends AbstractList * in positions 0 through elementCount - 1, and all remaining slots are null. * @serial the elements */ - protected Object[] elementData; + protected T[] elementData; /** * The number of elements currently in the vector, also returned by @@ -130,10 +130,10 @@ public class Vector extends AbstractList * @throws NullPointerException if c is null * @since 1.2 */ - public Vector(Collection c) + public Vector(Collection c) { elementCount = c.size(); - elementData = c.toArray(new Object[elementCount]); + elementData = c.toArray((T[]) new Object[elementCount]); } /** @@ -149,7 +149,7 @@ public class Vector extends AbstractList { if (initialCapacity < 0) throw new IllegalArgumentException(); - elementData = new Object[initialCapacity]; + elementData = (T[]) new Object[initialCapacity]; this.capacityIncrement = capacityIncrement; } @@ -192,7 +192,7 @@ public class Vector extends AbstractList // vector since that is a much less likely case; it's more efficient to // not do the check and lose a bit of performance in that infrequent case - Object[] newArray = new Object[elementCount]; + T[] newArray = (T[]) new Object[elementCount]; System.arraycopy(elementData, 0, newArray, 0, elementCount); elementData = newArray; } @@ -218,7 +218,7 @@ public class Vector extends AbstractList else newCapacity = elementData.length + capacityIncrement; - Object[] newArray = new Object[Math.max(newCapacity, minCapacity)]; + T[] newArray = (T[]) new Object[Math.max(newCapacity, minCapacity)]; System.arraycopy(elementData, 0, newArray, 0, elementCount); elementData = newArray; @@ -284,9 +284,9 @@ public class Vector extends AbstractList * @see #iterator() */ // No need to synchronize as the Enumeration is not thread-safe! - public Enumeration elements() + public Enumeration elements() { - return new Enumeration() + return new Enumeration() { private int i = 0; @@ -295,7 +295,7 @@ public class Vector extends AbstractList return i < elementCount; } - public Object nextElement() + public T nextElement() { if (i >= elementCount) throw new NoSuchElementException(); @@ -385,7 +385,7 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException index < 0 || index >= size() * @see #get(int) */ - public synchronized Object elementAt(int index) + public synchronized T elementAt(int index) { checkBoundExclusive(index); return elementData[index]; @@ -397,7 +397,7 @@ public class Vector extends AbstractList * @return the first Object in the Vector * @throws NoSuchElementException the Vector is empty */ - public synchronized Object firstElement() + public synchronized T firstElement() { if (elementCount == 0) throw new NoSuchElementException(); @@ -411,7 +411,7 @@ public class Vector extends AbstractList * @return the last Object in the Vector * @throws NoSuchElementException the Vector is empty */ - public synchronized Object lastElement() + public synchronized T lastElement() { if (elementCount == 0) throw new NoSuchElementException(); @@ -427,7 +427,7 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException the index is out of range * @see #set(int, Object) */ - public void setElementAt(Object obj, int index) + public void setElementAt(T obj, int index) { set(index, obj); } @@ -454,7 +454,7 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException index < 0 || index > size() * @see #add(int, Object) */ - public synchronized void insertElementAt(Object obj, int index) + public synchronized void insertElementAt(T obj, int index) { checkBoundInclusive(index); if (elementCount == elementData.length) @@ -472,7 +472,7 @@ public class Vector extends AbstractList * * @param obj the object to add to the Vector */ - public synchronized void addElement(Object obj) + public synchronized void addElement(T obj) { if (elementCount == elementData.length) ensureCapacity(elementCount + 1); @@ -570,11 +570,11 @@ public class Vector extends AbstractList * @throws NullPointerException if a is null * @since 1.2 */ - public synchronized Object[] toArray(Object[] a) + public synchronized S[] toArray(S[] a) { if (a.length < elementCount) - a = (Object[]) Array.newInstance(a.getClass().getComponentType(), - elementCount); + a = (S[]) Array.newInstance(a.getClass().getComponentType(), + elementCount); else if (a.length > elementCount) a[elementCount] = null; System.arraycopy(elementData, 0, a, 0, elementCount); @@ -589,7 +589,7 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException index < 0 || index >= size() * @since 1.2 */ - public Object get(int index) + public T get(int index) { return elementAt(index); } @@ -604,10 +604,10 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException index < 0 || index >= size() * @since 1.2 */ - public synchronized Object set(int index, Object element) + public synchronized T set(int index, T element) { checkBoundExclusive(index); - Object temp = elementData[index]; + T temp = elementData[index]; elementData[index] = element; return temp; } @@ -619,7 +619,7 @@ public class Vector extends AbstractList * @return true, as specified by List * @since 1.2 */ - public boolean add(Object o) + public boolean add(T o) { addElement(o); return true; @@ -647,7 +647,7 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException index < 0 || index > size() * @since 1.2 */ - public void add(int index, Object element) + public void add(int index, T element) { insertElementAt(element, index); } @@ -660,10 +660,10 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException index < 0 || index >= size() * @since 1.2 */ - public synchronized Object remove(int index) + public synchronized T remove(int index) { checkBoundExclusive(index); - Object temp = elementData[index]; + T temp = elementData[index]; modCount++; elementCount--; if (index < elementCount) @@ -689,7 +689,7 @@ public class Vector extends AbstractList * @throws NullPointerException if c is null * @since 1.2 */ - public synchronized boolean containsAll(Collection c) + public synchronized boolean containsAll(Collection c) { // Here just for the sychronization. return super.containsAll(c); @@ -705,7 +705,7 @@ public class Vector extends AbstractList * @throws NullPointerException if c is null * @since 1.2 */ - public synchronized boolean addAll(Collection c) + public synchronized boolean addAll(Collection c) { return addAll(elementCount, c); } @@ -718,10 +718,12 @@ public class Vector extends AbstractList * @throws NullPointerException if c is null * @since 1.2 */ - public synchronized boolean removeAll(Collection c) + public synchronized boolean removeAll(Collection c) { - if (c == null) - throw new NullPointerException(); + // The NullPointerException is thrown implicitly when the Vector + // is not empty and c is null. The RI allows null arguments when + // the vector is empty. See Mauve test: + // gnu/testlet/java/util/Vector/removeAll.java int i; int j; @@ -747,10 +749,12 @@ public class Vector extends AbstractList * @throws NullPointerException if c is null * @since 1.2 */ - public synchronized boolean retainAll(Collection c) + public synchronized boolean retainAll(Collection c) { - if (c == null) - throw new NullPointerException(); + // The NullPointerException is thrown implicitly when the Vector + // is not empty and c is null. The RI allows null arguments when + // the vector is empty. See Mauve test: + // gnu/testlet/java/util/Vector/retainAll.java int i; int j; @@ -779,10 +783,10 @@ public class Vector extends AbstractList * @throws ArrayIndexOutOfBoundsException index < 0 || index > size() * @since 1.2 */ - public synchronized boolean addAll(int index, Collection c) + public synchronized boolean addAll(int index, Collection c) { checkBoundInclusive(index); - Iterator itr = c.iterator(); + Iterator itr = c.iterator(); int csize = c.size(); modCount++; @@ -853,12 +857,12 @@ public class Vector extends AbstractList * @see ConcurrentModificationException * @since 1.2 */ - public synchronized List subList(int fromIndex, int toIndex) + public synchronized List subList(int fromIndex, int toIndex) { - List sub = super.subList(fromIndex, toIndex); + List sub = super.subList(fromIndex, toIndex); // We must specify the correct object to synchronize upon, hence the // use of a non-public API - return new Collections.SynchronizedList(this, sub); + return new Collections.SynchronizedList(this, sub); } /** diff --git a/libjava/classpath/java/util/WeakHashMap.java b/libjava/classpath/java/util/WeakHashMap.java index ef2444c0409..1f460291558 100644 --- a/libjava/classpath/java/util/WeakHashMap.java +++ b/libjava/classpath/java/util/WeakHashMap.java @@ -1,6 +1,6 @@ /* WeakHashMap -- a hashtable that keeps only weak references to its keys, allowing the virtual machine to reclaim them - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -77,14 +77,16 @@ import java.lang.ref.WeakReference; * * @author Jochen Hoenicke * @author Eric Blake (ebb9@email.byu.edu) + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * * @see HashMap * @see WeakReference * @see LinkedHashMap * @since 1.2 - * @status updated to 1.4 + * @status updated to 1.4 (partial 1.5) */ -public class WeakHashMap extends AbstractMap implements Map +public class WeakHashMap extends AbstractMap { // WARNING: WeakHashMap is a CORE class in the bootstrap cycle. See the // comments in vm/reference/java/lang/Runtime for implications of this fact. @@ -349,19 +351,19 @@ public class WeakHashMap extends AbstractMap implements Map * * @author Jochen Hoenicke */ - private static class WeakBucket extends WeakReference + private static class WeakBucket extends WeakReference { /** * The value of this entry. The key is stored in the weak * reference that we extend. */ - Object value; + V value; /** * The next bucket describing another entry that uses the same * slot. */ - WeakBucket next; + WeakBucket next; /** * The slot of this entry. This should be @@ -384,7 +386,7 @@ public class WeakHashMap extends AbstractMap implements Map * @param slot the slot. This must match the slot where this bucket * will be enqueued. */ - public WeakBucket(Object key, ReferenceQueue queue, Object value, + public WeakBucket(K key, ReferenceQueue queue, V value, int slot) { super(key, queue); @@ -397,18 +399,18 @@ public class WeakHashMap extends AbstractMap implements Map * current bucket. It also keeps a strong reference to the * key; bad things may happen otherwise. */ - class WeakEntry implements Map.Entry + class WeakEntry implements Map.Entry { /** * The strong ref to the key. */ - Object key; + K key; /** * Creates a new entry for the key. * @param key the key */ - public WeakEntry(Object key) + public WeakEntry(K key) { this.key = key; } @@ -426,7 +428,7 @@ public class WeakHashMap extends AbstractMap implements Map * Returns the key. * @return the key */ - public Object getKey() + public K getKey() { return key == NULL_KEY ? null : key; } @@ -435,7 +437,7 @@ public class WeakHashMap extends AbstractMap implements Map * Returns the value. * @return the value */ - public Object getValue() + public V getValue() { return value; } @@ -446,9 +448,9 @@ public class WeakHashMap extends AbstractMap implements Map * @param newVal the new value * @return the old value */ - public Object setValue(Object newVal) + public V setValue(V newVal) { - Object oldVal = value; + V oldVal = value; value = newVal; return oldVal; } @@ -491,7 +493,7 @@ public class WeakHashMap extends AbstractMap implements Map */ WeakEntry getEntry() { - final Object key = this.get(); + final K key = this.get(); if (key == null) return null; return new WeakEntry(key); @@ -559,7 +561,7 @@ public class WeakHashMap extends AbstractMap implements Map * @throws NullPointerException if m is null * @since 1.3 */ - public WeakHashMap(Map m) + public WeakHashMap(Map m) { this(m.size(), DEFAULT_LOAD_FACTOR); putAll(m); @@ -754,10 +756,10 @@ public class WeakHashMap extends AbstractMap implements Map * the key wasn't in this map, or if the mapped value was * explicitly set to null. */ - public Object get(Object key) + public V get(Object key) { cleanQueue(); - WeakBucket.WeakEntry entry = internalGet(key); + WeakBucket.WeakEntry entry = internalGet(key); return entry == null ? null : entry.getValue(); } @@ -769,10 +771,10 @@ public class WeakHashMap extends AbstractMap implements Map * null if the key wasn't in this map, or if the mapped value * was explicitly set to null. */ - public Object put(Object key, Object value) + public V put(K key, V value) { cleanQueue(); - WeakBucket.WeakEntry entry = internalGet(key); + WeakBucket.WeakEntry entry = internalGet(key); if (entry != null) return entry.setValue(value); @@ -791,10 +793,10 @@ public class WeakHashMap extends AbstractMap implements Map * null if the key wasn't in this map, or if the mapped value was * explicitly set to null. */ - public Object remove(Object key) + public V remove(Object key) { cleanQueue(); - WeakBucket.WeakEntry entry = internalGet(key); + WeakBucket.WeakEntry entry = internalGet(key); if (entry == null) return null; @@ -811,7 +813,7 @@ public class WeakHashMap extends AbstractMap implements Map * this weak hash map. * @return a set representation of the entries. */ - public Set entrySet() + public Set> entrySet() { cleanQueue(); return theEntrySet; @@ -846,7 +848,7 @@ public class WeakHashMap extends AbstractMap implements Map * this weak hash map. * @return a set representation of the keys. */ - public Set keySet() + public Set keySet() { cleanQueue(); return super.keySet(); @@ -857,7 +859,7 @@ public class WeakHashMap extends AbstractMap implements Map * key already exists in this map, its value is replaced. * @param m the map to copy in */ - public void putAll(Map m) + public void putAll(Map m) { super.putAll(m); } @@ -870,7 +872,7 @@ public class WeakHashMap extends AbstractMap implements Map * this weak hash map. * @return a collection representation of the values. */ - public Collection values() + public Collection values() { cleanQueue(); return super.values(); diff --git a/libjava/classpath/java/util/class-dependencies.conf b/libjava/classpath/java/util/class-dependencies.conf new file mode 100644 index 00000000000..39f96062744 --- /dev/null +++ b/libjava/classpath/java/util/class-dependencies.conf @@ -0,0 +1,78 @@ +# This property file contains dependencies of classes, methods, and +# field on other methods or classes. +# +# Syntax: +# +# : [... ] +# +# means that when is included, (... ) must +# be included as well. +# +# and are of the form +# +# +# +# or just +# +# +# +# Within dependencies, variables can be used. A variable is defined as +# follows: +# +# {variable}: value1 value2 ... value +# +# variables can be used on the right side of dependencies as follows: +# +# : com.bla.blu.{variable}.Class.m()V +# +# The use of the variable will expand to dependencies of the form +# +# : com.bla.blu.value1.Class.m()V +# : com.bla.blu.value2.Class.m()V +# ... +# : com.bla.blu.value.Class.m()V +# +# Variables can be redefined when building a system to select the +# required support for features like encodings, protocols, etc. +# +# Hints: +# +# - For methods and fields, the signature is mandatory. For +# specification, please see the Java Virtual Machine Specification by +# SUN. Unlike in the spec, field signatures (types) are in brackets. +# +# - Package names must be separated by '/' (and not '.'). E.g., +# java/lang/Class (this is necessary, because the '.' is used to +# separate method or field names from classes) +# +# - In case refers to a class, only the class itself will be +# included in the resulting binary, NOT necessarily all its methods +# and fields. If you want to refer to all methods and fields, you can +# write class.* as an abbreviation. +# +# - Abbreviations for packages are also possible: my/package/* means all +# methods and fields of all classes in my/package. +# +# - A line with a trailing '\' continues in the next line. + + +# All calendars supported are loaded via java/util/Calendar.getBundle or +# java/util/GregorianCalendar.getBundle from class +# gnu/java/locale/Calendar_{locale_id} +# +# This introduces a dependency for the localized calendars. To allow an easy +# selection and addition of locales, the library variable {calendar_locales} +# can be set to the set of supported calendar locales. +# + +{calendar_locales}: de en nl + +java/util/Calendar.getBundle(Ljava/util/Locale;)Ljava/util/ResourceBundle;: \ + gnu/java/locale/Calendar.* \ + gnu/java/locale/Calendar_{calendar_locales}.* + +java/util/GregorianCalendar.getBundle(Ljava/util/Locale;)Ljava/util/ResourceBundle;: \ + gnu/java/locale/Calendar.* \ + gnu/java/locale/Calendar_{calendar_locales}.* + +# end of file diff --git a/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java b/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java new file mode 100644 index 00000000000..5ef37d94916 --- /dev/null +++ b/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java @@ -0,0 +1,490 @@ +/* CopyOnWriteArrayList.java + Copyright (C) 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.util.concurrent; + +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.lang.reflect.Array; +import java.util.AbstractList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.RandomAccess; + +/** @since 1.5 */ +public class CopyOnWriteArrayList extends AbstractList implements + List, RandomAccess, Cloneable, Serializable +{ + /** + * Where the data is stored. + */ + private transient E[] data; + + /** + * Construct a new ArrayList with the default capacity (16). + */ + public CopyOnWriteArrayList() + { + data = (E[]) new Object[0]; + } + + /** + * Construct a new ArrayList, and initialize it with the elements in the + * supplied Collection. The initial capacity is 110% of the Collection's size. + * + * @param c + * the collection whose elements will initialize this list + * @throws NullPointerException + * if c is null + */ + public CopyOnWriteArrayList(Collection< ? extends E> c) + { + // FIXME ... correct? use c.toArray() + data = (E[]) new Object[c.size()]; + int index = 0; + for (E value : c) + data[index++] = value; + } + + /** + * Construct a new ArrayList, and initialize it with the elements in the + * supplied array. + * + * @param array + * the array used to initialize this list + * @throws NullPointerException + * if array is null + */ + public CopyOnWriteArrayList(E[] array) + { + data = (E[]) array.clone(); + } + + /** + * Returns the number of elements in this list. + * + * @return the list size + */ + public int size() + { + return data.length; + } + + /** + * Checks if the list is empty. + * + * @return true if there are no elements + */ + public boolean isEmpty() + { + return data.length == 0; + } + + /** + * Returns true iff element is in this ArrayList. + * + * @param e + * the element whose inclusion in the List is being tested + * @return true if the list contains e + */ + public boolean contains(Object e) + { + return indexOf(e) != -1; + } + + /** + * Returns the lowest index at which element appears in this List, or -1 if it + * does not appear. + * + * @param e + * the element whose inclusion in the List is being tested + * @return the index where e was found + */ + public int indexOf(Object e) + { + E[] data = this.data; + for (int i = 0; i < data.length; i++) + if (equals(e, data[i])) + return i; + return -1; + } + + /** + * Return the lowest index greater equal index at which + * e appears in this List, or -1 if it does not + * appear. + * + * @param e the element whose inclusion in the list is being tested + * @param index the index at which the search begins + * @return the index where e was found + */ + public int indexOf(E e, int index) + { + E[] data = this.data; + + for (int i = index; i < data.length; i++) + if (equals(e, data[i])) + return i; + return -1; + } + + /** + * Returns the highest index at which element appears in this List, or -1 if + * it does not appear. + * + * @param e + * the element whose inclusion in the List is being tested + * @return the index where e was found + */ + public int lastIndexOf(Object e) + { + E[] data = this.data; + for (int i = data.length - 1; i >= 0; i--) + if (equals(e, data[i])) + return i; + return -1; + } + + /** + * Returns the highest index lesser equal index at + * which e appears in this List, or -1 if it does not + * appear. + * + * @param e the element whose inclusion in the list is being tested + * @param index the index at which the search begins + * @return the index where e was found + */ + public int lastIndexOf(E e, int index) + { + E[] data = this.data; + + for (int i = index; i >= 0; i--) + if (equals(e, data[i])) + return i; + return -1; + } + + /** + * Creates a shallow copy of this ArrayList (elements are not cloned). + * + * @return the cloned object + */ + public Object clone() + { + CopyOnWriteArrayList clone = null; + try + { + clone = (CopyOnWriteArrayList) super.clone(); + clone.data = (E[]) data.clone(); + } + catch (CloneNotSupportedException e) + { + // Impossible to get here. + } + return clone; + } + + /** + * Returns an Object array containing all of the elements in this ArrayList. + * The array is independent of this list. + * + * @return an array representation of this list + */ + public Object[] toArray() + { + E[] data = this.data; + E[] array = (E[]) new Object[data.length]; + System.arraycopy(data, 0, array, 0, data.length); + return array; + } + + /** + * Returns an Array whose component type is the runtime component type of the + * passed-in Array. The returned Array is populated with all of the elements + * in this ArrayList. If the passed-in Array is not large enough to store all + * of the elements in this List, a new Array will be created and returned; if + * the passed-in Array is larger than the size of this List, then + * size() index will be set to null. + * + * @param a + * the passed-in Array + * @return an array representation of this list + * @throws ArrayStoreException + * if the runtime type of a does not allow an element in this list + * @throws NullPointerException + * if a is null + */ + public T[] toArray(T[] a) + { + E[] data = this.data; + if (a.length < data.length) + a = (T[]) Array.newInstance(a.getClass().getComponentType(), data.length); + else if (a.length > data.length) + a[data.length] = null; + System.arraycopy(data, 0, a, 0, data.length); + return a; + } + + /** + * Retrieves the element at the user-supplied index. + * + * @param index + * the index of the element we are fetching + * @throws IndexOutOfBoundsException + * if index < 0 || index >= size() + */ + public E get(int index) + { + return data[index]; + } + + /** + * Sets the element at the specified index. The new element, e, can be an + * object of any type or null. + * + * @param index + * the index at which the element is being set + * @param e + * the element to be set + * @return the element previously at the specified index + * @throws IndexOutOfBoundsException + * if index < 0 || index >= 0 + */ + public synchronized E set(int index, E e) + { + E result = data[index]; + E[] newData = (E[]) data.clone(); + newData[index] = e; + data = newData; + return result; + } + + /** + * Appends the supplied element to the end of this list. The element, e, can + * be an object of any type or null. + * + * @param e + * the element to be appended to this list + * @return true, the add will always succeed + */ + public synchronized boolean add(E e) + { + E[] data = this.data; + E[] newData = (E[]) new Object[data.length + 1]; + System.arraycopy(data, 0, newData, 0, data.length); + newData[data.length] = e; + this.data = newData; + return true; + } + + /** + * Adds the supplied element at the specified index, shifting all elements + * currently at that index or higher one to the right. The element, e, can be + * an object of any type or null. + * + * @param index + * the index at which the element is being added + * @param e + * the item being added + * @throws IndexOutOfBoundsException + * if index < 0 || index > size() + */ + public synchronized void add(int index, E e) + { + E[] data = this.data; + E[] newData = (E[]) new Object[data.length + 1]; + System.arraycopy(data, 0, newData, 0, index); + newData[index] = e; + System.arraycopy(data, index, newData, index + 1, data.length - index); + this.data = newData; + } + + /** + * Removes the element at the user-supplied index. + * + * @param index + * the index of the element to be removed + * @return the removed Object + * @throws IndexOutOfBoundsException + * if index < 0 || index >= size() + */ + public synchronized E remove(int index) + { + E[] data = this.data; + E[] newData = (E[]) new Object[data.length - 1]; + System.arraycopy(data, 0, newData, 0, index - 1); + System.arraycopy(data, index + 1, newData, index, + data.length - index - 1); + E r = data[index]; + this.data = newData; + return r; + } + + /** + * Removes all elements from this List + */ + public synchronized void clear() + { + data = (E[]) new Object[0]; + } + + /** + * Add each element in the supplied Collection to this List. It is undefined + * what happens if you modify the list while this is taking place; for + * example, if the collection contains this list. c can contain objects of any + * type, as well as null values. + * + * @param c + * a Collection containing elements to be added to this List + * @return true if the list was modified, in other words c is not empty + * @throws NullPointerException + * if c is null + */ + public synchronized boolean addAll(Collection< ? extends E> c) + { + return addAll(data.length, c); + } + + /** + * Add all elements in the supplied collection, inserting them beginning at + * the specified index. c can contain objects of any type, as well as null + * values. + * + * @param index + * the index at which the elements will be inserted + * @param c + * the Collection containing the elements to be inserted + * @throws IndexOutOfBoundsException + * if index < 0 || index > 0 + * @throws NullPointerException + * if c is null + */ + public synchronized boolean addAll(int index, Collection< ? extends E> c) + { + E[] data = this.data; + Iterator itr = c.iterator(); + int csize = c.size(); + if (csize == 0) + return false; + + E[] newData = (E[]) new Object[data.length + csize]; + System.arraycopy(data, 0, newData, 0, data.length); + int end = data.length; + for (E value : c) + newData[end++] = value; + this.data = newData; + return true; + } + + public synchronized boolean addIfAbsent(E val) + { + if (contains(val)) + return false; + add(val); + return true; + } + + public synchronized int addAllAbsent(Collection c) + { + int result = 0; + for (E val : c) + { + if (addIfAbsent(val)) + ++result; + } + return result; + } + + /** + * Serializes this object to the given stream. + * + * @param s + * the stream to write to + * @throws IOException + * if the underlying stream fails + * @serialData the size field (int), the length of the backing array (int), + * followed by its elements (Objects) in proper order. + */ + private void writeObject(ObjectOutputStream s) throws IOException + { + // The 'size' field. + s.defaultWriteObject(); + // We serialize unused list entries to preserve capacity. + int len = data.length; + s.writeInt(len); + // it would be more efficient to just write "size" items, + // this need readObject read "size" items too. + for (int i = 0; i < data.length; i++) + s.writeObject(data[i]); + } + + /** + * Deserializes this object from the given stream. + * + * @param s + * the stream to read from + * @throws ClassNotFoundException + * if the underlying stream fails + * @throws IOException + * if the underlying stream fails + * @serialData the size field (int), the length of the backing array (int), + * followed by its elements (Objects) in proper order. + */ + private void readObject(ObjectInputStream s) throws IOException, + ClassNotFoundException + { + // the `size' field. + s.defaultReadObject(); + int capacity = s.readInt(); + data = (E[]) new Object[capacity]; + for (int i = 0; i < capacity; i++) + data[i] = (E) s.readObject(); + } + + static final boolean equals(Object o1, Object o2) + { + return o1 == null ? o2 == null : o1.equals(o2); + } + + Object[] getArray() + { + return data; + } +} diff --git a/libjava/classpath/java/util/jar/Attributes.java b/libjava/classpath/java/util/jar/Attributes.java index 92d29cf49b9..329fe6323b7 100644 --- a/libjava/classpath/java/util/jar/Attributes.java +++ b/libjava/classpath/java/util/jar/Attributes.java @@ -67,8 +67,8 @@ import java.util.Set; * @see java.util.jar.Attributes.Name * @author Mark Wielaard (mark@klomp.org) */ -public class Attributes - implements Cloneable, java.util.Map // Fully qualified for jikes 1.22 +public class Attributes + implements Cloneable, Map { // Fields @@ -78,7 +78,7 @@ public class Attributes * implementation it is actually a Hashtable, but that can be different in * other implementations. */ - protected Map map; + protected Map map; // Inner class @@ -492,7 +492,7 @@ public class Attributes * * @return a set of attribute name value pairs */ - public Set entrySet() + public Set> entrySet() { return map.entrySet(); } @@ -558,7 +558,7 @@ public class Attributes /** * Gives a Set of all the values of defined attribute names. */ - public Set keySet() + public Set keySet() { return map.keySet(); } @@ -587,7 +587,7 @@ public class Attributes * @exception ClassCastException if the supplied map is not an instance of * Attributes */ - public void putAll(Map attr) + public void putAll(Map attr) { if (!(attr instanceof Attributes)) { @@ -622,7 +622,7 @@ public class Attributes * Returns all the values of the defined attribute name/value pairs as a * Collection. */ - public Collection values() + public Collection values() { return map.values(); } diff --git a/libjava/classpath/java/util/jar/JarEntry.java b/libjava/classpath/java/util/jar/JarEntry.java index 722a283bba3..515b45fa9b4 100644 --- a/libjava/classpath/java/util/jar/JarEntry.java +++ b/libjava/classpath/java/util/jar/JarEntry.java @@ -1,5 +1,5 @@ /* JarEntry.java - Represents an entry in a jar file - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,6 +39,7 @@ package java.util.jar; import java.io.IOException; import java.security.cert.Certificate; +import java.util.Set; import java.util.zip.ZipEntry; /** @@ -60,7 +61,7 @@ public class JarEntry extends ZipEntry // (Package local) fields Attributes attr; - Certificate certs[]; + JarFile jarfile; // Constructors @@ -79,7 +80,7 @@ public class JarEntry extends ZipEntry { super(name); attr = null; - certs = null; + jarfile = null; } /** @@ -93,7 +94,7 @@ public class JarEntry extends ZipEntry { super(entry); attr = null; - certs = null; + jarfile = null; } /** @@ -112,7 +113,7 @@ public class JarEntry extends ZipEntry catch (IOException _) { } - certs = entry.getCertificates(); + jarfile = entry.jarfile; } // Methods @@ -153,13 +154,19 @@ public class JarEntry extends ZipEntry */ public Certificate[] getCertificates() { - if (certs != null) + if (jarfile != null) { - return (Certificate[])certs.clone(); - } - else - { - return null; + synchronized (jarfile) + { + if (jarfile.entryCerts != null) + { + Set certs = (Set) jarfile.entryCerts.get(getName()); + if (certs != null + && jarfile.verified.get(getName()) == Boolean.TRUE) + return (Certificate[]) certs.toArray(new Certificate[certs.size()]); + } + } } + return null; } } diff --git a/libjava/classpath/java/util/jar/JarFile.java b/libjava/classpath/java/util/jar/JarFile.java index 88814f1d6bf..6807736590a 100644 --- a/libjava/classpath/java/util/jar/JarFile.java +++ b/libjava/classpath/java/util/jar/JarFile.java @@ -68,6 +68,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; @@ -149,6 +151,12 @@ public class JarFile extends ZipFile */ HashMap entryCerts; + /** + * A {@link Map} of message digest algorithm names to their implementation. + * Used to reduce object (algorithm implementation) instantiation. + */ + private HashMap digestAlgorithms = new HashMap(); + static boolean DEBUG = false; static void debug(Object msg) { @@ -313,7 +321,7 @@ public class JarFile extends ZipFile * * @exception IllegalStateException when the JarFile is already closed */ - public Enumeration entries() throws IllegalStateException + public Enumeration entries() throws IllegalStateException { return new JarEnumeration(super.entries(), this); } @@ -322,13 +330,13 @@ public class JarFile extends ZipFile * Wraps a given Zip Entries Enumeration. For every zip entry a * JarEntry is created and the corresponding Attributes are looked up. */ - private static class JarEnumeration implements Enumeration + private static class JarEnumeration implements Enumeration { - private final Enumeration entries; + private final Enumeration entries; private final JarFile jarfile; - JarEnumeration(Enumeration e, JarFile f) + JarEnumeration(Enumeration e, JarFile f) { entries = e; jarfile = f; @@ -339,7 +347,7 @@ public class JarFile extends ZipFile return entries.hasMoreElements(); } - public Object nextElement() + public JarEntry nextElement() { ZipEntry zip = (ZipEntry) entries.nextElement(); JarEntry jar = new JarEntry(zip); @@ -374,19 +382,8 @@ public class JarFile extends ZipFile } jarfile.signaturesRead = true; // fudge it. } - - // Include the certificates only if we have asserted that the - // signatures are valid. This means the certificates will not be - // available if the entry hasn't been read yet. - if (jarfile.entryCerts != null - && jarfile.verified.get(zip.getName()) == Boolean.TRUE) - { - Set certs = (Set) jarfile.entryCerts.get(jar.getName()); - if (certs != null) - jar.certs = (Certificate[]) - certs.toArray(new Certificate[certs.size()]); - } } + jar.jarfile = jarfile; return jar; } } @@ -431,18 +428,7 @@ public class JarFile extends ZipFile } signaturesRead = true; } - // See the comments in the JarEnumeration for why we do this - // check. - if (DEBUG) - debug("entryCerts=" + entryCerts + " verified " + name - + " ? " + verified.get(name)); - if (entryCerts != null && verified.get(name) == Boolean.TRUE) - { - Set certs = (Set) entryCerts.get(name); - if (certs != null) - jarEntry.certs = (Certificate[]) - certs.toArray(new Certificate[certs.size()]); - } + jarEntry.jarfile = this; return jarEntry; } return null; @@ -599,6 +585,31 @@ public class JarFile extends ZipFile validCerts.clear(); } + // Read the manifest into a HashMap (String fileName, String entry) + // The fileName might be split into multiple lines in the manifest. + // Such additional lines will start with a space. + InputStream in = super.getInputStream(super.getEntry(MANIFEST_NAME)); + ByteArrayOutputStream baStream = new ByteArrayOutputStream(); + byte[] ba = new byte[1024]; + while (true) + { + int len = in.read(ba); + if (len < 0) + break; + baStream.write(ba, 0, len); + } + in.close(); + + HashMap hmManifestEntries = new HashMap(); + Pattern p = Pattern.compile("Name: (.+?\r?\n(?: .+?\r?\n)*)" + + ".+?-Digest: .+?\r?\n\r?\n"); + Matcher m = p.matcher(baStream.toString()); + while (m.find()) + { + String fileName = m.group(1).replaceAll("\r?\n ?", ""); + hmManifestEntries.put(fileName, m.group()); + } + // Phase 3: verify the signature file signatures against the manifest, // mapping the entry name to the target certificates. this.entryCerts = new HashMap(); @@ -614,7 +625,7 @@ public class JarFile extends ZipFile Map.Entry e2 = (Map.Entry) it2.next(); String entryname = String.valueOf(e2.getKey()); Attributes attr = (Attributes) e2.getValue(); - if (verifyHashes(entryname, attr)) + if (verifyHashes(entryname, attr, hmManifestEntries)) { if (DEBUG) debug("entry " + entryname + " has certificates " + certificates); @@ -721,39 +732,29 @@ public class JarFile extends ZipFile } /** - * Verifies that the digest(s) in a signature file were, in fact, made - * over the manifest entry for ENTRY. - * + * Verifies that the digest(s) in a signature file were, in fact, made over + * the manifest entry for ENTRY. + * * @param entry The entry name. * @param attr The attributes from the signature file to verify. + * @param hmManifestEntries Mappings of Jar file entry names to their manifest + * entry text; i.e. the base-64 encoding of their */ - private boolean verifyHashes(String entry, Attributes attr) + private boolean verifyHashes(String entry, Attributes attr, + HashMap hmManifestEntries) { int verified = 0; - // The bytes for ENTRY's manifest entry, which are signed in the - // signature file. - byte[] entryBytes = null; - try - { - ZipEntry e = super.getEntry(entry); - if (e == null) - { - if (DEBUG) - debug("verifyHashes: no entry '" + entry + "'"); - return false; - } - entryBytes = readManifestEntry(e); - } - catch (IOException ioe) + String stringEntry = (String) hmManifestEntries.get(entry); + if (stringEntry == null) { if (DEBUG) - { - debug(ioe); - ioe.printStackTrace(); - } + debug("could not find " + entry + " in manifest"); return false; } + // The bytes for ENTRY's manifest entry, which are signed in the + // signature file. + byte[] entryBytes = stringEntry.getBytes(); for (Iterator it = attr.entrySet().iterator(); it.hasNext(); ) { @@ -765,9 +766,14 @@ public class JarFile extends ZipFile try { byte[] hash = Base64InputStream.decode((String) e.getValue()); - MessageDigest md = MessageDigest.getInstance(alg, provider); - md.update(entryBytes); - byte[] hash2 = md.digest(); + MessageDigest md = (MessageDigest) digestAlgorithms.get(alg); + if (md == null) + { + md = MessageDigest.getInstance(alg, provider); + digestAlgorithms.put(alg, md); + } + md.reset(); + byte[] hash2 = md.digest(entryBytes); if (DEBUG) debug("verifying SF entry " + entry + " alg: " + md.getAlgorithm() + " expect=" + new java.math.BigInteger(hash).toString(16) @@ -801,100 +807,6 @@ public class JarFile extends ZipFile } /** - * Read the raw bytes that comprise a manifest entry. We can't use the - * Manifest object itself, because that loses information (such as line - * endings, and order of entries). - */ - private byte[] readManifestEntry(ZipEntry entry) throws IOException - { - InputStream in = super.getInputStream(super.getEntry(MANIFEST_NAME)); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - byte[] target = ("Name: " + entry.getName()).getBytes(); - int t = 0, c, prev = -1, state = 0, l = -1; - - while ((c = in.read()) != -1) - { -// if (DEBUG) -// debug("read " -// + (c == '\n' ? "\\n" : (c == '\r' ? "\\r" : String.valueOf((char) c))) -// + " state=" + state + " prev=" -// + (prev == '\n' ? "\\n" : (prev == '\r' ? "\\r" : String.valueOf((char) prev))) -// + " t=" + t + (t < target.length ? (" target[t]=" + (char) target[t]) : "") -// + " l=" + l); - switch (state) - { - - // Step 1: read until we find the "target" bytes: the start - // of the entry we need to read. - case 0: - if (((byte) c) != target[t]) - t = 0; - else - { - t++; - if (t == target.length) - { - out.write(target); - state = 1; - } - } - break; - - // Step 2: assert that there is a newline character after - // the "target" bytes. - case 1: - if (c != '\n' && c != '\r') - { - out.reset(); - t = 0; - state = 0; - } - else - { - out.write(c); - state = 2; - } - break; - - // Step 3: read this whole entry, until we reach an empty - // line. - case 2: - if (c == '\n') - { - out.write(c); - // NL always terminates a line. - if (l == 0 || (l == 1 && prev == '\r')) - return out.toByteArray(); - l = 0; - } - else - { - // Here we see a blank line terminated by a CR, - // followed by the next entry. Technically, `c' should - // always be 'N' at this point. - if (l == 1 && prev == '\r') - return out.toByteArray(); - out.write(c); - l++; - } - prev = c; - break; - - default: - throw new RuntimeException("this statement should be unreachable"); - } - } - - // The last entry, with a single CR terminating the line. - if (state == 2 && prev == '\r' && l == 0) - return out.toByteArray(); - - // We should not reach this point, we didn't find the entry (or, possibly, - // it is the last entry and is malformed). - throw new IOException("could not find " + entry + " in manifest"); - } - - /** * A utility class that verifies jar entries as they are read. */ private static class EntryInputStream extends FilterInputStream diff --git a/libjava/classpath/java/util/jar/Manifest.java b/libjava/classpath/java/util/jar/Manifest.java index 64a0c476a91..8effc2878ce 100644 --- a/libjava/classpath/java/util/jar/Manifest.java +++ b/libjava/classpath/java/util/jar/Manifest.java @@ -38,7 +38,7 @@ exception statement from your version. */ package java.util.jar; import gnu.java.util.jar.JarUtils; - + import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -60,7 +60,7 @@ public class Manifest implements Cloneable private final Attributes mainAttr; /** A map of atrributes for all entries described in this Manifest. */ - private final Map entries; + private final Map entries; // Constructors @@ -70,7 +70,7 @@ public class Manifest implements Cloneable public Manifest() { mainAttr = new Attributes(); - entries = new Hashtable(); + entries = new Hashtable(); } /** @@ -104,7 +104,7 @@ public class Manifest implements Cloneable public Manifest(Manifest man) { mainAttr = new Attributes(man.getMainAttributes()); - entries = new Hashtable(man.getEntries()); + entries = new Hashtable(man.getEntries()); } // Methods @@ -122,7 +122,7 @@ public class Manifest implements Cloneable * in this manifest. Adding, changing or removing from this entries map * changes the entries of this manifest. */ - public Map getEntries() + public Map getEntries() { return entries; } diff --git a/libjava/classpath/java/util/logging/LogManager.java b/libjava/classpath/java/util/logging/LogManager.java index e434651f87d..fbc0fe78abf 100644 --- a/libjava/classpath/java/util/logging/LogManager.java +++ b/libjava/classpath/java/util/logging/LogManager.java @@ -129,7 +129,7 @@ public class LogManager * The registered named loggers; maps the name of a Logger to * a WeakReference to it. */ - private Map loggers; + private Map> loggers; /** * The properties for the logging framework which have been @@ -150,7 +150,7 @@ public class LogManager * this case. */ private final PropertyChangeSupport pcs = new PropertyChangeSupport( /* source bean */ - LogManager.class); + LogManager.class); protected LogManager() { @@ -269,7 +269,7 @@ public class LogManager */ name = logger.getName(); - ref = (WeakReference) loggers.get(name); + ref = loggers.get(name); if (ref != null) { if (ref.get() != null) @@ -286,7 +286,7 @@ public class LogManager checkAccess(); Logger parent = findAncestor(logger); - loggers.put(name, new WeakReference(logger)); + loggers.put(name, new WeakReference(logger)); if (parent != logger.getParent()) logger.setParent(parent); @@ -318,26 +318,23 @@ public class LogManager * When adding "foo.bar", the logger "foo.bar.baz" should change * its parent to "foo.bar". */ - if (parent != Logger.root) + for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();) { - 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); - } + 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; } @@ -365,15 +362,13 @@ public class LogManager int bestNameLength = 0; Logger cand; - String candName; int candNameLength; if (child == Logger.root) return null; - for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();) + for (String candName : loggers.keySet()) { - candName = (String) iter.next(); candNameLength = candName.length(); if (candNameLength > bestNameLength @@ -381,7 +376,7 @@ public class LogManager && childName.startsWith(candName) && childName.charAt(candNameLength) == '.') { - cand = (Logger) ((WeakReference) loggers.get(candName)).get(); + cand = loggers.get(candName).get(); if ((cand == null) || (cand == child)) continue; @@ -406,14 +401,14 @@ public class LogManager */ public synchronized Logger getLogger(String name) { - WeakReference ref; + WeakReference ref; /* Throw a NullPointerException if name is null. */ name.getClass(); - ref = (WeakReference) loggers.get(name); + ref = loggers.get(name); if (ref != null) - return (Logger) ref.get(); + return ref.get(); else return null; } @@ -426,7 +421,7 @@ public class LogManager * @return an Enumeration with the names of the currently * registered Loggers. */ - public synchronized Enumeration getLoggerNames() + public synchronized Enumeration getLoggerNames() { return Collections.enumeration(loggers.keySet()); } @@ -449,16 +444,16 @@ public class LogManager properties = new Properties(); - Iterator iter = loggers.values().iterator(); + Iterator> iter = loggers.values().iterator(); while (iter.hasNext()) + for (WeakReference ref : loggers.values()) { - WeakReference ref; Logger logger; - ref = (WeakReference) iter.next(); + ref = iter.next(); if (ref != null) { - logger = (Logger) ref.get(); + logger = ref.get(); if (logger == null) iter.remove(); @@ -713,7 +708,11 @@ public class LogManager { try { - return Level.parse(getLogManager().getProperty(propertyName)); + String value = getLogManager().getProperty(propertyName); + if (value != null) + return Level.parse(getLogManager().getProperty(propertyName)); + else + return defaultValue; } catch (Exception ex) { diff --git a/libjava/classpath/java/util/logging/LoggingMXBean.java b/libjava/classpath/java/util/logging/LoggingMXBean.java index 5f866c980d7..3e0a7276db3 100644 --- a/libjava/classpath/java/util/logging/LoggingMXBean.java +++ b/libjava/classpath/java/util/logging/LoggingMXBean.java @@ -60,7 +60,7 @@ public interface LoggingMXBean /** * Return a list of all logger names. */ - List/**/ getLoggerNames(); + List getLoggerNames(); /** * Return the name of the parent of the indicated logger. diff --git a/libjava/classpath/java/util/prefs/Preferences.java b/libjava/classpath/java/util/prefs/Preferences.java index 297759d88a4..e53e4fc7938 100644 --- a/libjava/classpath/java/util/prefs/Preferences.java +++ b/libjava/classpath/java/util/prefs/Preferences.java @@ -251,7 +251,7 @@ public abstract class Preferences { * @exception SecurityException when a security manager is installed and * the caller does not have RuntimePermission("preferences"). */ - public static Preferences systemNodeForPackage(Class c) + public static Preferences systemNodeForPackage(Class c) throws SecurityException { return nodeForPackage(c, systemRoot()); @@ -270,7 +270,7 @@ public abstract class Preferences { * @exception SecurityException when a security manager is installed and * the caller does not have RuntimePermission("preferences"). */ - public static Preferences userNodeForPackage(Class c) + public static Preferences userNodeForPackage(Class c) throws SecurityException { return nodeForPackage(c, userRoot()); diff --git a/libjava/classpath/java/util/regex/Matcher.java b/libjava/classpath/java/util/regex/Matcher.java index 25e73810e95..bf833673b0e 100644 --- a/libjava/classpath/java/util/regex/Matcher.java +++ b/libjava/classpath/java/util/regex/Matcher.java @@ -218,7 +218,7 @@ public final class Matcher implements MatchResult public boolean lookingAt () { - match = pattern.getRE().getMatch(inputCharIndexed, 0); + match = pattern.getRE().getMatch(inputCharIndexed, 0, RE.REG_FIX_STARTING_POSITION, null); if (match != null) { if (match.getStartIndex() == 0) @@ -243,7 +243,7 @@ public final class Matcher implements MatchResult */ public boolean matches () { - match = pattern.getRE().getMatch(inputCharIndexed, 0, RE.REG_TRY_ENTIRE_MATCH); + match = pattern.getRE().getMatch(inputCharIndexed, 0, RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION, null); if (match != null) { if (match.getStartIndex() == 0) @@ -278,6 +278,7 @@ public final class Matcher implements MatchResult public Matcher reset (CharSequence input) { this.input = input; + this.inputCharIndexed = RE.makeCharIndexed(input, 0); return reset(); } @@ -309,6 +310,28 @@ public final class Matcher implements MatchResult return match.getStartIndex(group); } + /** + * @return True if and only if the matcher hit the end of input. + */ + public boolean hitEnd() + { + return inputCharIndexed.hitEnd(); + } + + /** + * @return A string expression of this matcher. + */ + public String toString() + { + StringBuilder sb = new StringBuilder(); + sb.append(this.getClass().getName()) + .append("[pattern=").append(pattern.pattern()) + .append(" region=").append("0").append(",").append(input.length()) + .append(" lastmatch=").append(match == null ? "" : match.toString()) + .append("]"); + return sb.toString(); + } + private void assertMatchOp() { if (match == null) throw new IllegalStateException(); diff --git a/libjava/classpath/java/util/zip/Deflater.java b/libjava/classpath/java/util/zip/Deflater.java index a4ec0e64303..e97c6054ff4 100644 --- a/libjava/classpath/java/util/zip/Deflater.java +++ b/libjava/classpath/java/util/zip/Deflater.java @@ -1,5 +1,5 @@ /* Deflater.java - Compress a data stream - Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -150,7 +150,7 @@ public class Deflater private int state; /** The total bytes of output written. */ - private int totalOut; + private long totalOut; /** The pending output. */ private DeflaterPending pending; @@ -241,16 +241,36 @@ public class Deflater /** * Gets the number of input bytes processed so far. */ + @Deprecated public int getTotalIn() { + return (int) engine.getTotalIn(); + } + + /** + * Gets the number of input bytes processed so far. + * @since 1.5 + */ + public long getBytesRead() + { return engine.getTotalIn(); } /** * Gets the number of output bytes so far. */ + @Deprecated public int getTotalOut() { + return (int) totalOut; + } + + /** + * Gets the number of output bytes so far. + * @since 1.5 + */ + public long getBytesWritten() + { return totalOut; } diff --git a/libjava/classpath/java/util/zip/DeflaterEngine.java b/libjava/classpath/java/util/zip/DeflaterEngine.java index f79e47742bb..51587165e7c 100644 --- a/libjava/classpath/java/util/zip/DeflaterEngine.java +++ b/libjava/classpath/java/util/zip/DeflaterEngine.java @@ -1,5 +1,5 @@ /* DeflaterEngine.java -- - Copyright (C) 2001, 2004 Free Software Foundation, Inc. + Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -92,7 +92,7 @@ class DeflaterEngine implements DeflaterConstants private byte[] inputBuf; /** The total bytes of input read. */ - private int totalIn; + private long totalIn; /** The offset into inputBuf, where input data starts. */ private int inputOff; @@ -163,7 +163,7 @@ class DeflaterEngine implements DeflaterConstants return chksum; } - public final int getTotalIn() + public final long getTotalIn() { return totalIn; } diff --git a/libjava/classpath/java/util/zip/Inflater.java b/libjava/classpath/java/util/zip/Inflater.java index f1616d60199..509b9576429 100644 --- a/libjava/classpath/java/util/zip/Inflater.java +++ b/libjava/classpath/java/util/zip/Inflater.java @@ -140,13 +140,13 @@ public class Inflater /** * The total number of inflated bytes. */ - private int totalOut; + private long totalOut; /** * The total number of bytes set with setInput(). This is not the * value returned by getTotalIn(), since this also includes the * unprocessed input. */ - private int totalIn; + private long totalIn; /** * This variable stores the nowrap flag that was given to the constructor. * True means, that the inflated stream doesn't contain a header nor the @@ -246,8 +246,19 @@ public class Inflater * Gets the total number of processed compressed input bytes. * @return the total number of bytes of processed input bytes. */ + @Deprecated public int getTotalIn() { + return (int) (totalIn - getRemaining()); + } + + /** + * Gets the total number of processed compressed input bytes. + * @return the total number of bytes of processed input bytes. + * @since 1.5 + */ + public long getBytesRead() + { return totalIn - getRemaining(); } @@ -255,8 +266,19 @@ public class Inflater * Gets the total number of output bytes returned by inflate(). * @return the total number of output bytes. */ + @Deprecated public int getTotalOut() { + return (int) totalOut; + } + + /** + * Gets the total number of output bytes returned by inflate(). + * @return the total number of output bytes. + * @since 1.5 + */ + public long getBytesWritten() + { return totalOut; } diff --git a/libjava/classpath/java/util/zip/ZipFile.java b/libjava/classpath/java/util/zip/ZipFile.java index 47ced0fb84f..3b34bd1f50b 100644 --- a/libjava/classpath/java/util/zip/ZipFile.java +++ b/libjava/classpath/java/util/zip/ZipFile.java @@ -48,6 +48,9 @@ import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.io.UnsupportedEncodingException; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; import java.util.Enumeration; import java.util.Iterator; import java.util.LinkedHashMap; @@ -88,7 +91,7 @@ public class ZipFile implements ZipConstants private final RandomAccessFile raf; // The entries of this zip file when initialized and not yet closed. - private LinkedHashMap entries; + private LinkedHashMap entries; private boolean closed = false; @@ -250,7 +253,7 @@ public class ZipFile implements ZipConstants throw new EOFException(name); int centralOffset = inp.readLeInt(); - entries = new LinkedHashMap(count+count/2); + entries = new LinkedHashMap (count+count/2); inp.seek(centralOffset); for (int i = 0; i < count; i++) @@ -327,7 +330,7 @@ public class ZipFile implements ZipConstants * * @exception IllegalStateException when the ZipFile has already been closed */ - public Enumeration entries() + public Enumeration entries() { checkClosed(); @@ -347,7 +350,7 @@ public class ZipFile implements ZipConstants * @exception IllegalStateException when the ZipFile has already been closed. * @exception IOException when the entries could not be read. */ - private LinkedHashMap getEntries() throws IOException + private LinkedHashMap getEntries() throws IOException { synchronized(raf) { @@ -375,11 +378,11 @@ public class ZipFile implements ZipConstants try { - LinkedHashMap entries = getEntries(); - ZipEntry entry = (ZipEntry) entries.get(name); + LinkedHashMap entries = getEntries(); + ZipEntry entry = entries.get(name); // If we didn't find it, maybe it's a directory. if (entry == null && !name.endsWith("/")) - entry = (ZipEntry) entries.get(name + '/'); + entry = entries.get(name + '/'); return entry != null ? new ZipEntry(entry, name) : null; } catch (IOException ioe) @@ -414,9 +417,9 @@ public class ZipFile implements ZipConstants { checkClosed(); - LinkedHashMap entries = getEntries(); + LinkedHashMap entries = getEntries(); String name = entry.getName(); - ZipEntry zipEntry = (ZipEntry) entries.get(name); + ZipEntry zipEntry = entries.get(name); if (zipEntry == null) return null; @@ -491,11 +494,11 @@ public class ZipFile implements ZipConstants } } - private static class ZipEntryEnumeration implements Enumeration + private static class ZipEntryEnumeration implements Enumeration { - private final Iterator elements; + private final Iterator elements; - public ZipEntryEnumeration(Iterator elements) + public ZipEntryEnumeration(Iterator elements) { this.elements = elements; } @@ -505,17 +508,27 @@ public class ZipFile implements ZipConstants return elements.hasNext(); } - public Object nextElement() + public ZipEntry nextElement() { /* We return a clone, just to be safe that the user doesn't * change the entry. */ - return ((ZipEntry)elements.next()).clone(); + return (ZipEntry) (elements.next().clone()); } } private static final class PartialInputStream extends InputStream { + /** + * The UTF-8 charset use for decoding the filenames. + */ + private static final Charset UTF8CHARSET = Charset.forName("UTF-8"); + + /** + * The actual UTF-8 decoder. Created on demand. + */ + private CharsetDecoder utf8Decoder; + private final RandomAccessFile raf; private final byte[] buffer; private long bufferOffset; @@ -652,23 +665,86 @@ public class ZipFile implements ZipConstants int readLeShort() throws IOException { - int b0 = read(); - int b1 = read(); - if (b1 == -1) - throw new EOFException(); - return (b0 & 0xff) | (b1 & 0xff) << 8; + int result; + if(pos + 1 < buffer.length) + { + result = ((buffer[pos + 0] & 0xff) | (buffer[pos + 1] & 0xff) << 8); + pos += 2; + } + else + { + int b0 = read(); + int b1 = read(); + if (b1 == -1) + throw new EOFException(); + result = (b0 & 0xff) | (b1 & 0xff) << 8; + } + return result; } int readLeInt() throws IOException { - int b0 = read(); - int b1 = read(); - int b2 = read(); - int b3 = read(); - if (b3 == -1) - throw new EOFException(); - return ((b0 & 0xff) | (b1 & 0xff) << 8) - | ((b2 & 0xff) | (b3 & 0xff) << 8) << 16; + int result; + if(pos + 3 < buffer.length) + { + result = (((buffer[pos + 0] & 0xff) | (buffer[pos + 1] & 0xff) << 8) + | ((buffer[pos + 2] & 0xff) + | (buffer[pos + 3] & 0xff) << 8) << 16); + pos += 4; + } + else + { + int b0 = read(); + int b1 = read(); + int b2 = read(); + int b3 = read(); + if (b3 == -1) + throw new EOFException(); + result = (((b0 & 0xff) | (b1 & 0xff) << 8) | ((b2 & 0xff) + | (b3 & 0xff) << 8) << 16); + } + return result; + } + + /** + * Decode chars from byte buffer using UTF8 encoding. This + * operation is performance-critical since a jar file contains a + * large number of strings for the name of each file in the + * archive. This routine therefore avoids using the expensive + * utf8Decoder when decoding is straightforward. + * + * @param buffer the buffer that contains the encoded character + * data + * @param pos the index in buffer of the first byte of the encoded + * data + * @param length the length of the encoded data in number of + * bytes. + * + * @return a String that contains the decoded characters. + */ + private String decodeChars(byte[] buffer, int pos, int length) + throws IOException + { + String result; + int i=length - 1; + while ((i >= 0) && (buffer[i] <= 0x7f)) + { + i--; + } + if (i < 0) + { + result = new String(buffer, 0, pos, length); + } + else + { + ByteBuffer bufferBuffer = ByteBuffer.wrap(buffer, pos, length); + if (utf8Decoder == null) + utf8Decoder = UTF8CHARSET.newDecoder(); + utf8Decoder.reset(); + char [] characters = utf8Decoder.decode(bufferBuffer).array(); + result = String.valueOf(characters); + } + return result; } String readString(int length) throws IOException @@ -676,25 +752,26 @@ public class ZipFile implements ZipConstants if (length > end - (bufferOffset + pos)) throw new EOFException(); + String result = null; try { if (buffer.length - pos >= length) { - String s = new String(buffer, pos, length, "UTF-8"); + result = decodeChars(buffer, pos, length); pos += length; - return s; } else { byte[] b = new byte[length]; readFully(b); - return new String(b, 0, length, "UTF-8"); + result = decodeChars(b, 0, length); } } catch (UnsupportedEncodingException uee) { throw new AssertionError(uee); } + return result; } public void addDummyByte() diff --git a/libjava/classpath/javax/accessibility/AccessibleRelationSet.java b/libjava/classpath/javax/accessibility/AccessibleRelationSet.java index 8c33eaa7298..768c9cd791c 100644 --- a/libjava/classpath/javax/accessibility/AccessibleRelationSet.java +++ b/libjava/classpath/javax/accessibility/AccessibleRelationSet.java @@ -64,7 +64,8 @@ public class AccessibleRelationSet * @see #toArray() * @see #clear() */ - protected Vector relations = new Vector(); + protected Vector relations + = new Vector(); /** * Create an empty relation set. diff --git a/libjava/classpath/javax/accessibility/AccessibleStateSet.java b/libjava/classpath/javax/accessibility/AccessibleStateSet.java index 29fd2ed970f..783f5412742 100644 --- a/libjava/classpath/javax/accessibility/AccessibleStateSet.java +++ b/libjava/classpath/javax/accessibility/AccessibleStateSet.java @@ -62,7 +62,7 @@ public class AccessibleStateSet * @see #toArray() * @see #clear() */ - protected Vector states = new Vector(); + protected Vector states = new Vector(); /** * Create an empty state set. diff --git a/libjava/classpath/javax/crypto/Cipher.java b/libjava/classpath/javax/crypto/Cipher.java index 1b56a07f4aa..7c18e6f6ab3 100644 --- a/libjava/classpath/javax/crypto/Cipher.java +++ b/libjava/classpath/javax/crypto/Cipher.java @@ -157,161 +157,159 @@ public class Cipher /** Our current state (encrypting, wrapping, etc.) */ private int state; - - // Class methods. - // ------------------------------------------------------------------------ - /** - *

    Creates a new cipher instance for the given transformation.

    - * - *

    The installed providers are tried in order for an - * implementation, and the first appropriate instance is returned. If - * no installed provider can provide the implementation, an - * appropriate exception is thrown.

    - * + * Creates a new cipher instance for the given transformation. + *

    + * The installed providers are tried in order for an implementation, and the + * first appropriate instance is returned. If no installed provider can + * provide the implementation, an appropriate exception is thrown. + * * @param transformation The transformation to create. * @return An appropriate cipher for this transformation. - * @throws java.security.NoSuchAlgorithmException If no installed - * provider can supply the appropriate cipher or mode. - * @throws javax.crypto.NoSuchPaddingException If no installed - * provider can supply the appropriate padding. + * @throws NoSuchAlgorithmException If no installed provider can supply the + * appropriate cipher or mode. + * @throws NoSuchPaddingException If no installed provider can supply the + * appropriate padding. */ public static final Cipher getInstance(String transformation) - throws NoSuchAlgorithmException, NoSuchPaddingException + throws NoSuchAlgorithmException, NoSuchPaddingException { - Provider[] providers = Security.getProviders(); - NoSuchPaddingException ex = null; - String msg = ""; - for (int i = 0; i < providers.length; i++) - { - try - { - return getInstance(transformation, providers[i]); - } - catch (NoSuchAlgorithmException nsae) - { - msg = nsae.getMessage(); - ex = null; - } - catch (NoSuchPaddingException nspe) - { - ex = nspe; - } - } - if (ex != null) - { - throw ex; - } - throw new NoSuchAlgorithmException(msg); + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + NoSuchPaddingException lastPaddingException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(transformation, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + lastPaddingException = null; + } + catch (NoSuchPaddingException x) + { + lastPaddingException = x; + } + if (lastPaddingException != null) + throw lastPaddingException; + if (lastException != null) + throw lastException; + throw new NoSuchAlgorithmException(transformation); } /** - *

    Creates a new cipher instance for the given transformation and - * the named provider.

    - * + * Creates a new cipher instance for the given transformation and the named + * provider. + * * @param transformation The transformation to create. - * @param provider The name of the provider to use. + * @param provider The name of the provider to use. * @return An appropriate cipher for this transformation. - * @throws java.security.NoSuchAlgorithmException If the provider cannot - * supply the appropriate cipher or mode. - * @throws java.security.NoSuchProviderException If the named provider - * is not installed. - * @throws javax.crypto.NoSuchPaddingException If the provider cannot - * supply the appropriate padding. + * @throws NoSuchAlgorithmException If the provider cannot supply the + * appropriate cipher or mode. + * @throws NoSuchProviderException If the named provider is not installed. + * @throws NoSuchPaddingException If the provider cannot supply the + * appropriate padding. + * @throws IllegalArgumentException if either transformation or + * provider is null. */ public static final Cipher getInstance(String transformation, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException, - NoSuchPaddingException + throws NoSuchAlgorithmException, NoSuchProviderException, + NoSuchPaddingException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(transformation, p); } /** - * Creates a new cipher instance for the given transform and the given + * Creates a new cipher instance for a given transformation from a given * provider. - * + * * @param transformation The transformation to create. - * @param provider The provider to use. + * @param provider The provider to use. * @return An appropriate cipher for this transformation. - * @throws java.security.NoSuchAlgorithmException If the given - * provider cannot supply the appropriate cipher or mode. - * @throws javax.crypto.NoSuchPaddingException If the given - * provider cannot supply the appropriate padding scheme. + * @throws NoSuchAlgorithmException If the given provider cannot supply the + * appropriate cipher or mode. + * @throws NoSuchPaddingException If the given provider cannot supply the + * appropriate padding scheme. */ - public static final Cipher getInstance(String transformation, Provider provider) - throws NoSuchAlgorithmException, NoSuchPaddingException + public static final Cipher getInstance(String transformation, + Provider provider) + throws NoSuchAlgorithmException, NoSuchPaddingException { - CipherSpi result = null; - String key = null; - String alg = null, mode = null, pad = null; - String msg = ""; + StringBuilder sb = new StringBuilder().append("Cipher transformation [") + .append(transformation).append("] from provider [") + .append(provider).append("] "); + Throwable cause; + Object spi; + CipherSpi result; if (transformation.indexOf('/') < 0) { try { - result = (CipherSpi) Engine.getInstance(SERVICE, transformation, - provider); - return new Cipher(result, provider, transformation); + spi = Engine.getInstance(SERVICE, transformation, provider); + return new Cipher((CipherSpi) spi, provider, transformation); } catch (Exception e) { - msg = e.getMessage(); + if (e instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) e; + cause = e; } } else { StringTokenizer tok = new StringTokenizer(transformation, "/"); if (tok.countTokens() != 3) - { - throw new NoSuchAlgorithmException("badly formed transformation"); - } - alg = tok.nextToken(); - mode = tok.nextToken(); - pad = tok.nextToken(); + throw new NoSuchAlgorithmException(sb.append("is malformed").toString()); + + String alg = tok.nextToken(); + String mode = tok.nextToken(); + String pad = tok.nextToken(); try { - result = (CipherSpi) Engine.getInstance(SERVICE, transformation, - provider); - return new Cipher(result, provider, transformation); + spi = Engine.getInstance(SERVICE, transformation, provider); + return new Cipher((CipherSpi) spi, provider, transformation); } catch (Exception e) { - msg = e.getMessage(); + cause = e; } + try { - result = (CipherSpi) Engine.getInstance(SERVICE, alg + '/' + mode, - provider); + spi = Engine.getInstance(SERVICE, alg + '/' + mode, provider); + result = (CipherSpi) spi; result.engineSetPadding(pad); return new Cipher(result, provider, transformation); } catch (Exception e) { if (e instanceof NoSuchPaddingException) - { - throw (NoSuchPaddingException) e; - } - msg = e.getMessage(); + throw (NoSuchPaddingException) e; + cause = e; } + try { - result = (CipherSpi) Engine.getInstance(SERVICE, alg + "//" + pad, - provider); + spi = Engine.getInstance(SERVICE, alg + "//" + pad, provider); + result = (CipherSpi) spi; result.engineSetMode(mode); return new Cipher(result, provider, transformation); } catch (Exception e) { - msg = e.getMessage(); + cause = e; } + try { - result = (CipherSpi) Engine.getInstance(SERVICE, alg, provider); + spi = Engine.getInstance(SERVICE, alg, provider); + result = (CipherSpi) spi; result.engineSetMode(mode); result.engineSetPadding(pad); return new Cipher(result, provider, transformation); @@ -319,18 +317,16 @@ public class Cipher catch (Exception e) { if (e instanceof NoSuchPaddingException) - { - throw (NoSuchPaddingException) e; - } - msg = e.getMessage(); + throw (NoSuchPaddingException) e; + cause = e; } } - throw new NoSuchAlgorithmException(transformation + ": " + msg); + sb.append("could not be created"); + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Constructor. - // ------------------------------------------------------------------------ - /** * Create a cipher. * @@ -347,9 +343,6 @@ public class Cipher state = INITIAL_STATE; } - // Public instance methods. - // ------------------------------------------------------------------------ - /** * Get the name that this cipher instance was created with; this is * equivalent to the "transformation" argument given to any of the diff --git a/libjava/classpath/javax/crypto/CipherOutputStream.java b/libjava/classpath/javax/crypto/CipherOutputStream.java index adeb6e5ed38..5d1e57a16d2 100644 --- a/libjava/classpath/javax/crypto/CipherOutputStream.java +++ b/libjava/classpath/javax/crypto/CipherOutputStream.java @@ -45,59 +45,25 @@ import java.io.OutputStream; /** * A filtered output stream that transforms data written to it with a * {@link Cipher} before sending it to the underlying output stream. - * + * * @author Casey Marshall (csm@gnu.org) */ public class CipherOutputStream extends FilterOutputStream { - - // Fields. - // ------------------------------------------------------------------------ - /** The underlying cipher. */ private Cipher cipher; - private byte[][] inBuffer; - - private int inLength; - - private byte[] outBuffer; - - private static final int FIRST_TIME = 0; - private static final int SECOND_TIME = 1; - private static final int SEASONED = 2; - private int state; - - /** True if the cipher is a stream cipher (blockSize == 1) */ - private boolean isStream; - - // Constructors. - // ------------------------------------------------------------------------ - /** - * Create a new cipher output stream. The cipher argument must have - * already been initialized. - * - * @param out The sink for transformed data. + * Create a new cipher output stream. The cipher argument must have already + * been initialized. + * + * @param out The sink for transformed data. * @param cipher The cipher to transform data with. */ public CipherOutputStream(OutputStream out, Cipher cipher) { super(out); - if (cipher != null) - { - this.cipher = cipher; - if (!(isStream = cipher.getBlockSize() == 1)) - { - inBuffer = new byte[2][]; - inBuffer[0] = new byte[cipher.getBlockSize()]; - inBuffer[1] = new byte[cipher.getBlockSize()]; - inLength = 0; - state = FIRST_TIME; - } - } - else - this.cipher = new NullCipher(); + this.cipher = (cipher != null) ? cipher : new NullCipher(); } /** @@ -110,52 +76,36 @@ public class CipherOutputStream extends FilterOutputStream super(out); } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Close this output stream, and the sink output stream. - * - *

    This method will first invoke the {@link Cipher#doFinal()} - * method of the underlying {@link Cipher}, and writes the output of - * that method to the sink output stream. - * - * @throws java.io.IOException If an I/O error occurs, or if an error - * is caused by finalizing the transformation. + *

    + * This method will first invoke the {@link Cipher#doFinal()} method of the + * underlying {@link Cipher}, and writes the output of that method to the + * sink output stream. + * + * @throws IOException If an I/O error occurs, or if an error is caused by + * finalizing the transformation. */ public void close() throws IOException { try { - int len; - if (state != FIRST_TIME) - { - len = cipher.update(inBuffer[0], 0, inBuffer[0].length, outBuffer); - out.write(outBuffer, 0, len); - } - len = cipher.doFinal(inBuffer[0], 0, inLength, outBuffer); - out.write(outBuffer, 0, len); - } - catch (javax.crypto.IllegalBlockSizeException ibse) - { - throw new IOException(ibse.toString()); + out.write(cipher.doFinal()); + out.flush(); + out.close(); } - catch (javax.crypto.BadPaddingException bpe) + catch (Exception cause) { - throw new IOException(bpe.toString()); + IOException ioex = new IOException(String.valueOf(cause)); + ioex.initCause(cause); + throw ioex; } - catch (ShortBufferException sbe) - { - throw new IOException(sbe.toString()); - } - out.flush(); - out.close(); } /** * Flush any pending output. * - * @throws java.io.IOException If an I/O error occurs. + * @throws IOException If an I/O error occurs. */ public void flush() throws IOException { @@ -164,40 +114,22 @@ public class CipherOutputStream extends FilterOutputStream /** * Write a single byte to the output stream. - * + * * @param b The next byte. - * @throws java.io.IOException If an I/O error occurs, or if the - * underlying cipher is not in the correct state to transform - * data. + * @throws IOException If an I/O error occurs, or if the underlying cipher is + * not in the correct state to transform data. */ public void write(int b) throws IOException { - if (isStream) - { - byte[] buf = new byte[] { (byte) b }; - try - { - cipher.update(buf, 0, 1, buf, 0); - } - catch (ShortBufferException sbe) - { - throw new IOException(sbe.toString()); - } - out.write(buf); - return; - } - inBuffer[1][inLength++] = (byte) b; - if (inLength == inBuffer[1].length) - process(); + write(new byte[] { (byte) b }, 0, 1); } /** * Write a byte array to the output stream. - * + * * @param buf The next bytes. - * @throws java.io.IOException If an I/O error occurs, or if the - * underlying cipher is not in the correct state to transform - * data. + * @throws IOException If an I/O error occurs, or if the underlying cipher is + * not in the correct state to transform data. */ public void write(byte[] buf) throws IOException { @@ -206,63 +138,15 @@ public class CipherOutputStream extends FilterOutputStream /** * Write a portion of a byte array to the output stream. - * + * * @param buf The next bytes. * @param off The offset in the byte array to start. * @param len The number of bytes to write. - * @throws java.io.IOException If an I/O error occurs, or if the - * underlying cipher is not in the correct state to transform - * data. + * @throws IOException If an I/O error occurs, or if the underlying cipher is + * not in the correct state to transform data. */ public void write(byte[] buf, int off, int len) throws IOException { - if (isStream) - { - out.write(cipher.update(buf, off, len)); - return; - } - int count = 0; - while (count < len) - { - int l = Math.min(inBuffer[1].length - inLength, len - count); - System.arraycopy(buf, off+count, inBuffer[1], inLength, l); - count += l; - inLength += l; - if (inLength == inBuffer[1].length) - process(); - } - } - - // Own method. - // ------------------------------------------------------------------------- - - private void process() throws IOException - { - if (state == SECOND_TIME) - { - state = SEASONED; - } - else - { - byte[] temp = inBuffer[0]; - inBuffer[0] = inBuffer[1]; - inBuffer[1] = temp; - } - if (state == FIRST_TIME) - { - inLength = 0; - state = SECOND_TIME; - return; - } - try - { - cipher.update(inBuffer[0], 0, inBuffer[0].length, outBuffer); - } - catch (ShortBufferException sbe) - { - throw new IOException(sbe.toString()); - } - out.write(outBuffer); - inLength = 0; + out.write(cipher.update(buf, off, len)); } } diff --git a/libjava/classpath/javax/crypto/ExemptionMechanism.java b/libjava/classpath/javax/crypto/ExemptionMechanism.java index b6cb02c63c8..baf6bad99e0 100644 --- a/libjava/classpath/javax/crypto/ExemptionMechanism.java +++ b/libjava/classpath/javax/crypto/ExemptionMechanism.java @@ -87,66 +87,111 @@ public class ExemptionMechanism virgin = true; } - // Class methods. - // ------------------------------------------------------------------------ - + /** + * Create an instance of ExemptionMechanism for a designated + * mechanism from the first Security Provider offering it. + * + * @param mechanism the name of the exemption mechanism to create. + * @return a newly created instance of ExemptionMechanism. + * @throws IllegalArgumentException if the provider is null. + * @throws NoSuchAlgorithmException if no such exemption mechanism is + * available from any known Security Provider. + * @throws IllegalArgumentException if mechanism is + * null or is an empty string. + */ public static final ExemptionMechanism getInstance(String mechanism) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - String msg = ""; - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(mechanism, provs[i]); - } - catch (NoSuchAlgorithmException nsae) - { - msg = nsae.getMessage(); - } - } - throw new NoSuchAlgorithmException(msg); + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(mechanism, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; + throw new NoSuchAlgorithmException(mechanism); } + /** + * Create an instance of ExemptionMechanism for a designated + * mechanism from a named provider. + * + * @param mechanism the name of the exemption mechanism to create. + * @param provider the security provider to provide the exemption + * mechanism. + * @return a newly created instance of ExemptionMechanism. + * @throws NoSuchAlgorithmException if no such exemption mechanism is + * available from the named provider. + * @throws NoSuchProviderException if no Security Provider with the designated + * name is known to the underlying JVM. + * @throws IllegalArgumentException if either mechanism or + * provider is null, or if + * mechanism is an empty string. + */ public static final ExemptionMechanism getInstance(String mechanism, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(mechanism, p); } + /** + * Create an instance of ExemptionMechanism for a designated + * mechanism from a designated provider. + * + * @param mechanism the name of the exemption mechanism to create. + * @param provider the security provider to provide the exemption + * mechanism. + * @return a newly created instance of ExemptionMechanism. + * @throws NoSuchAlgorithmException if an exemption mechanism could not be + * created. + * @throws IllegalArgumentException if either mechanism or + * provider is null, or if + * mechanism is an empty string. + */ public static final ExemptionMechanism getInstance(String mechanism, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { + StringBuilder sb = new StringBuilder("ExemptionMechanism [") + .append(mechanism).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new ExemptionMechanism((ExemptionMechanismSpi) - Engine.getInstance(SERVICE, mechanism, provider), - provider, mechanism); + Object spi = Engine.getInstance(SERVICE, mechanism, provider); + return new ExemptionMechanism((ExemptionMechanismSpi) spi, + provider, + mechanism); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - if (ite.getCause() instanceof NoSuchAlgorithmException) - throw (NoSuchAlgorithmException) ite.getCause(); - else - throw new NoSuchAlgorithmException(mechanism); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(mechanism); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - public final byte[] genExemptionBlob() throws IllegalStateException, ExemptionMechanismException { diff --git a/libjava/classpath/javax/crypto/KeyAgreement.java b/libjava/classpath/javax/crypto/KeyAgreement.java index d71743e3e63..49003109106 100644 --- a/libjava/classpath/javax/crypto/KeyAgreement.java +++ b/libjava/classpath/javax/crypto/KeyAgreement.java @@ -101,97 +101,103 @@ public class KeyAgreement virgin = true; } - // Class methods. - // ------------------------------------------------------------------------ - /** * Get an implementation of an algorithm from the first provider that * implements it. - * + * * @param algorithm The name of the algorithm to get. * @return The proper KeyAgreement instacne, if found. - * @throws java.security.NoSuchAlgorithmException If the specified - * algorithm is not implemented by any installed provider. + * @throws NoSuchAlgorithmException If the specified algorithm is not + * implemented by any installed provider. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static final KeyAgreement getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - String msg = algorithm; - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(algorithm, provs[i]); - } - catch (NoSuchAlgorithmException nsae) - { - msg = nsae.getMessage(); - } - } - throw new NoSuchAlgorithmException(msg); + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; + throw new NoSuchAlgorithmException(algorithm); } /** - * Get an implementation of an algorithm from a named provider. - * - * @param algorithm The name of the algorithm to get. - * @param provider The name of the provider from which to get the - * implementation. + * Return an implementation of an algorithm from a named provider. + * + * @param algorithm The name of the algorithm to create. + * @param provider The name of the provider from which to get the + * implementation. * @return The proper KeyAgreement instance, if found. - * @throws java.security.NoSuchAlgorithmException If the named provider - * does not implement the algorithm. - * @throws java.security.NoSuchProviderException If the named provider - * does not exist. + * @throws NoSuchAlgorithmException If the named provider does not implement + * the algorithm. + * @throws NoSuchProviderException If the named provider does not exist. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ - public static final KeyAgreement getInstance(String algorithm, - String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + public static final KeyAgreement getInstance(String algorithm, String provider) + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(algorithm, p); } /** - * Get an implementation of an algorithm from a specific provider. - * + * Return an implementation of an algorithm from a specific provider. + * * @param algorithm The name of the algorithm to get. - * @param provider The provider from which to get the implementation. + * @param provider The provider from which to get the implementation. * @return The proper KeyAgreement instance, if found. - * @throws java.security.NoSuchAlgorithmException If this provider - * does not implement the algorithm. + * @throws NoSuchAlgorithmException If this provider does not implement the + * algorithm. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final KeyAgreement getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException { + StringBuilder sb = new StringBuilder("KeyAgreement algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new KeyAgreement((KeyAgreementSpi) - Engine.getInstance(SERVICE, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(SERVICE, algorithm, provider); + return new KeyAgreement((KeyAgreementSpi) spi, provider, algorithm); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - if (ite.getCause() == null) - throw new NoSuchAlgorithmException(algorithm); - if (ite.getCause() instanceof NoSuchAlgorithmException) - throw (NoSuchAlgorithmException) ite.getCause(); - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Do a phase in the key agreement. The number of times this method is * called depends upon the algorithm and the number of parties diff --git a/libjava/classpath/javax/crypto/KeyGenerator.java b/libjava/classpath/javax/crypto/KeyGenerator.java index e824c64522e..79334e9e05e 100644 --- a/libjava/classpath/javax/crypto/KeyGenerator.java +++ b/libjava/classpath/javax/crypto/KeyGenerator.java @@ -94,95 +94,103 @@ public class KeyGenerator this.algorithm = algorithm; } - // Class methods. - // ------------------------------------------------------------------------ - /** - * Create a new key generator, returning the first available - * implementation. - * + * Create a new key generator, returning the first available implementation. + * * @param algorithm The generator algorithm name. - * @throws java.security.NoSuchAlgorithmException If the specified - * algorithm does not exist. + * @throws NoSuchAlgorithmException If the specified algorithm does not exist. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static final KeyGenerator getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - String msg = algorithm; - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(algorithm, provs[i]); - } - catch (NoSuchAlgorithmException nsae) - { - msg = nsae.getMessage(); - } - } - throw new NoSuchAlgorithmException(msg); + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; + throw new NoSuchAlgorithmException(algorithm); } /** * Create a new key generator from the named provider. - * + * * @param algorithm The generator algorithm name. - * @param provider The name of the provider to use. + * @param provider The name of the provider to use. * @return An appropriate key generator, if found. - * @throws java.security.NoSuchAlgorithmException If the specified - * algorithm is not implemented by the named provider. - * @throws java.security.NoSuchProviderException If the named provider - * does not exist. + * @throws NoSuchAlgorithmException If the specified algorithm is not + * implemented by the named provider. + * @throws NoSuchProviderException If the named provider does not exist. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final KeyGenerator getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(algorithm, p); } /** * Create a new key generator from the supplied provider. - * + * * @param algorithm The generator algorithm name. - * @param provider The provider to use. + * @param provider The provider to use. * @return An appropriate key generator, if found. - * @throws java.security.NoSuchAlgorithmException If the specified - * algorithm is not implemented by the provider. + * @throws NoSuchAlgorithmException If the specified algorithm is not + * implemented by the provider. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ - public static final KeyGenerator getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + public static final KeyGenerator getInstance(String algorithm, + Provider provider) + throws NoSuchAlgorithmException { + StringBuilder sb = new StringBuilder("KeyGenerator algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - KeyGenerator instance = new KeyGenerator((KeyGeneratorSpi) - Engine.getInstance(SERVICE, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(SERVICE, algorithm, provider); + KeyGenerator instance = new KeyGenerator((KeyGeneratorSpi) spi, + provider, + algorithm); instance.init(new SecureRandom()); return instance; } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - if (ite.getCause() == null) - throw new NoSuchAlgorithmException(algorithm); - if (ite.getCause() instanceof NoSuchAlgorithmException) - throw (NoSuchAlgorithmException) ite.getCause(); - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Generate a key. * diff --git a/libjava/classpath/javax/crypto/Mac.java b/libjava/classpath/javax/crypto/Mac.java index abbff8b2387..2a269ab8084 100644 --- a/libjava/classpath/javax/crypto/Mac.java +++ b/libjava/classpath/javax/crypto/Mac.java @@ -41,6 +41,7 @@ package javax.crypto; import gnu.java.security.Engine; import java.lang.reflect.InvocationTargetException; +import java.nio.ByteBuffer; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; @@ -107,96 +108,104 @@ public class Mac implements Cloneable virgin = true; } - // Class methods. - // ------------------------------------------------------------------------ - /** - * Get an instance of the named algorithm from the first provider with - * an appropriate implementation. - * + * Create an instance of the named algorithm from the first provider with an + * appropriate implementation. + * * @param algorithm The name of the algorithm. - * @return An appropriate Mac instance, if the specified algorithm - * is implemented by a provider. - * @throws java.security.NoSuchAlgorithmException If no implementation - * of the named algorithm is installed. + * @return An appropriate Mac instance, if the specified algorithm is + * implemented by a provider. + * @throws NoSuchAlgorithmException If no implementation of the named + * algorithm is installed. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static final Mac getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - String msg = ""; - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(algorithm, provs[i]); - } - catch (NoSuchAlgorithmException nsae) - { - msg = nsae.getMessage(); - } - } - throw new NoSuchAlgorithmException(msg); + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; + throw new NoSuchAlgorithmException(algorithm); } /** - * Get an instance of the named algorithm from the named provider. - * + * Create an instance of the named algorithm from the named provider. + * * @param algorithm The name of the algorithm. - * @param provider The name of the provider. + * @param provider The name of the provider. * @return An appropriate Mac instance, if the specified algorithm is * implemented by the named provider. - * @throws java.security.NoSuchAlgorithmException If the named provider - * has no implementation of the algorithm. - * @throws java.security.NoSuchProviderException If the named provider - * does not exist. + * @throws NoSuchAlgorithmException If the named provider has no + * implementation of the algorithm. + * @throws NoSuchProviderException If the named provider does not exist. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final Mac getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(algorithm, p); } /** - * Get an instance of the named algorithm from a provider. - * + * Create an instance of the named algorithm from a provider. + * * @param algorithm The name of the algorithm. - * @param provider The provider. + * @param provider The provider. * @return An appropriate Mac instance, if the specified algorithm is * implemented by the provider. - * @throws java.security.NoSuchAlgorithmException If the provider - * has no implementation of the algorithm. + * @throws NoSuchAlgorithmException If the provider has no implementation of + * the algorithm. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final Mac getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { + StringBuilder sb = new StringBuilder("Mac algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new Mac((MacSpi) Engine.getInstance(SERVICE, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(SERVICE, algorithm, provider); + return new Mac((MacSpi) spi, provider, algorithm); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - if (ite.getCause() == null) - throw new NoSuchAlgorithmException(algorithm); - if (ite.getCause() instanceof NoSuchAlgorithmException) - throw (NoSuchAlgorithmException) ite.getCause(); - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Finishes the computation of a MAC and returns the digest. * @@ -398,6 +407,18 @@ public class Mac implements Cloneable } /** + * Update this MAC with the remaining bytes in the given buffer + * @param buffer The input buffer. + * @since 1.5 + */ + public final void update (final ByteBuffer buffer) + { + if (virgin) + throw new IllegalStateException ("not initialized"); + macSpi.engineUpdate(buffer); + } + + /** * Clone this instance, if the underlying implementation supports it. * * @return A clone of this instance. diff --git a/libjava/classpath/javax/crypto/MacSpi.java b/libjava/classpath/javax/crypto/MacSpi.java index b0f96bff367..853bd66aa0f 100644 --- a/libjava/classpath/javax/crypto/MacSpi.java +++ b/libjava/classpath/javax/crypto/MacSpi.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.crypto; +import java.nio.ByteBuffer; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; @@ -142,4 +143,21 @@ public abstract class MacSpi * @param length The number of bytes to update. */ protected abstract void engineUpdate(byte[] input, int offset, int length); + + /** + * Update this MAC with the remaining bytes of a buffer. + * + * @param buffer The input buffer. + * @since 1.5 + */ + protected void engineUpdate (final ByteBuffer buffer) + { + byte[] buf = new byte[1024]; + while (buffer.hasRemaining ()) + { + int n = Math.min (buffer.remaining (), buf.length); + buffer.get (buf, 0, n); + engineUpdate (buf, 0, n); + } + } } diff --git a/libjava/classpath/javax/crypto/SecretKeyFactory.java b/libjava/classpath/javax/crypto/SecretKeyFactory.java index 0a63ef06745..1c857d274a8 100644 --- a/libjava/classpath/javax/crypto/SecretKeyFactory.java +++ b/libjava/classpath/javax/crypto/SecretKeyFactory.java @@ -94,94 +94,102 @@ public class SecretKeyFactory this.algorithm = algorithm; } - // Class methods. - // ------------------------------------------------------------------------ - /** - * Create a new secret key factory from the first appropriate - * instance. - * + * Create a new secret key factory from the first appropriate instance. + * * @param algorithm The algorithm name. * @return The appropriate key factory, if found. - * @throws java.security.NoSuchAlgorithmException If no provider - * implements the specified algorithm. + * @throws NoSuchAlgorithmException If no provider implements the specified + * algorithm. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static final SecretKeyFactory getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(algorithm, provs[i]); - } - catch (NoSuchAlgorithmException nsae) - { - } - } - throw new NoSuchAlgorithmException(algorithm); + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; + throw new NoSuchAlgorithmException(algorithm); } /** * Create a new secret key factory from the named provider. - * + * * @param algorithm The algorithm name. - * @param provider The provider name. + * @param provider The provider name. * @return The appropriate key factory, if found. - * @throws java.security.NoSuchAlgorithmException If the named - * provider does not implement the algorithm. - * @throws java.security.NoSuchProviderException If the named provider - * does not exist. + * @throws NoSuchAlgorithmException If the named provider does not implement + * the algorithm. + * @throws NoSuchProviderException If the named provider does not exist. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final SecretKeyFactory getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + throws NoSuchAlgorithmException, NoSuchProviderException { + if (provider == null) + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(algorithm, p); } /** * Create a new secret key factory from the specified provider. - * + * * @param algorithm The algorithm name. - * @param provider The provider. + * @param provider The provider. * @return The appropriate key factory, if found. - * @throws java.security.NoSuchAlgorithmException If the provider - * does not implement the algorithm. + * @throws NoSuchAlgorithmException If the provider does not implement the + * algorithm. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final SecretKeyFactory getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { + StringBuilder sb = new StringBuilder("SecretKeyFactory algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new SecretKeyFactory((SecretKeyFactorySpi) - Engine.getInstance(SERVICE, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(SERVICE, algorithm, provider); + return new SecretKeyFactory((SecretKeyFactorySpi) spi, provider, algorithm); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - if (ite.getCause() == null) - throw new NoSuchAlgorithmException(algorithm); - if (ite.getCause() instanceof NoSuchAlgorithmException) - throw (NoSuchAlgorithmException) ite.getCause(); - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------------ - /** * Generate a secret key from a key specification, if possible. * diff --git a/libjava/classpath/javax/imageio/IIOImage.java b/libjava/classpath/javax/imageio/IIOImage.java index 0d987476239..bd69bae5f1e 100644 --- a/libjava/classpath/javax/imageio/IIOImage.java +++ b/libjava/classpath/javax/imageio/IIOImage.java @@ -79,8 +79,7 @@ public class IIOImage /** * A list of BufferedImage thumbnails of this image. */ - // for 1.5 these lists are List - protected List thumbnails; + protected List thumbnails; /** * Construct an IIOImage containing raster image data, thumbnails @@ -92,7 +91,8 @@ public class IIOImage * * @exception IllegalArgumentException if raster is null */ - public IIOImage (Raster raster, List thumbnails, IIOMetadata metadata) + public IIOImage (Raster raster, List thumbnails, + IIOMetadata metadata) { if (raster == null) throw new IllegalArgumentException ("raster may not be null"); @@ -112,7 +112,8 @@ public class IIOImage * * @exception IllegalArgumentException if image is null */ - public IIOImage (RenderedImage image, List thumbnails, IIOMetadata metadata) + public IIOImage (RenderedImage image, List thumbnails, + IIOMetadata metadata) { if (image == null) throw new IllegalArgumentException ("image may not be null"); @@ -192,7 +193,7 @@ public class IIOImage * * @return a list of thumbnails or null */ - public List getThumbnails() + public List getThumbnails() { return thumbnails; } @@ -260,7 +261,7 @@ public class IIOImage * * @param thumbnails a new list of thumbnails or null */ - public void setThumbnails (List thumbnails) + public void setThumbnails (List thumbnails) { this.thumbnails = thumbnails; } diff --git a/libjava/classpath/javax/imageio/ImageIO.java b/libjava/classpath/javax/imageio/ImageIO.java index b2304a78304..a3d967726b9 100644 --- a/libjava/classpath/javax/imageio/ImageIO.java +++ b/libjava/classpath/javax/imageio/ImageIO.java @@ -315,27 +315,37 @@ public final class ImageIO } } - private static final class ImageReaderIterator implements Iterator + private static final class ImageReaderIterator + implements Iterator { - Iterator it; + Iterator it; Object readerExtension; - public ImageReaderIterator(Iterator it, Object readerExtension) + public ImageReaderIterator(Iterator it, + Object readerExtension) { this.it = it; this.readerExtension = readerExtension; } + + public ImageReaderIterator(Iterator it) + { + this.it = it; + } public boolean hasNext() { return it.hasNext(); } - public Object next() + public ImageReader next() { try { - return ((ImageReaderSpi) it.next()).createReaderInstance(readerExtension); + ImageReaderSpi spi = it.next(); + return (readerExtension == null + ? spi.createReaderInstance() + : spi.createReaderInstance(readerExtension)); } catch (IOException e) { @@ -349,27 +359,37 @@ public final class ImageIO } } - private static final class ImageWriterIterator implements Iterator + private static final class ImageWriterIterator + implements Iterator { - Iterator it; + Iterator it; Object writerExtension; - public ImageWriterIterator(Iterator it, Object writerExtension) + public ImageWriterIterator(Iterator it, + Object writerExtension) { this.it = it; this.writerExtension = writerExtension; } + + public ImageWriterIterator(Iterator it) + { + this.it = it; + } public boolean hasNext() { return it.hasNext(); } - public Object next() + public ImageWriter next() { try { - return ((ImageWriterSpi) it.next()).createWriterInstance(writerExtension); + ImageWriterSpi spi = it.next(); + return (writerExtension == null + ? spi.createWriterInstance() + : spi.createWriterInstance(writerExtension)); } catch (IOException e) { @@ -386,13 +406,14 @@ public final class ImageIO private static File cacheDirectory; private static boolean useCache = true; - private static Iterator getReadersByFilter(Class type, - ServiceRegistry.Filter filter, - Object readerExtension) + private static Iterator getReadersByFilter(Class type, + ServiceRegistry.Filter filter, + Object readerExtension) { try { - Iterator it = getRegistry().getServiceProviders(type, filter, true); + Iterator it + = getRegistry().getServiceProviders(type, filter, true); return new ImageReaderIterator(it, readerExtension); } catch (IllegalArgumentException e) @@ -401,13 +422,14 @@ public final class ImageIO } } - private static Iterator getWritersByFilter(Class type, - ServiceRegistry.Filter filter, - Object writerExtension) + private static Iterator getWritersByFilter(Class type, + ServiceRegistry.Filter filter, + Object writerExtension) { try { - Iterator it = getRegistry().getServiceProviders(type, filter, true); + Iterator it + = getRegistry().getServiceProviders(type, filter, true); return new ImageWriterIterator(it, writerExtension); } catch (IllegalArgumentException e) @@ -436,7 +458,7 @@ public final class ImageIO * * @exception IllegalArgumentException if formatName is null */ - public static Iterator getImageReadersByFormatName(String formatName) + public static Iterator getImageReadersByFormatName(String formatName) { if (formatName == null) throw new IllegalArgumentException("formatName may not be null"); @@ -457,7 +479,7 @@ public final class ImageIO * * @exception IllegalArgumentException if MIMEType is null */ - public static Iterator getImageReadersByMIMEType(String MIMEType) + public static Iterator getImageReadersByMIMEType(String MIMEType) { if (MIMEType == null) throw new IllegalArgumentException("MIMEType may not be null"); @@ -477,7 +499,7 @@ public final class ImageIO * * @exception IllegalArgumentException if fileSuffix is null */ - public static Iterator getImageReadersBySuffix(String fileSuffix) + public static Iterator getImageReadersBySuffix(String fileSuffix) { if (fileSuffix == null) throw new IllegalArgumentException("formatName may not be null"); @@ -497,7 +519,7 @@ public final class ImageIO * * @exception IllegalArgumentException if formatName is null */ - public static Iterator getImageWritersByFormatName(String formatName) + public static Iterator getImageWritersByFormatName(String formatName) { if (formatName == null) throw new IllegalArgumentException("formatName may not be null"); @@ -518,7 +540,7 @@ public final class ImageIO * * @exception IllegalArgumentException if MIMEType is null */ - public static Iterator getImageWritersByMIMEType(String MIMEType) + public static Iterator getImageWritersByMIMEType(String MIMEType) { if (MIMEType == null) throw new IllegalArgumentException("MIMEType may not be null"); @@ -538,7 +560,7 @@ public final class ImageIO * * @exception IllegalArgumentException if fileSuffix is null */ - public static Iterator getImageWritersBySuffix(String fileSuffix) + public static Iterator getImageWritersBySuffix(String fileSuffix) { if (fileSuffix == null) throw new IllegalArgumentException("fileSuffix may not be null"); @@ -1068,8 +1090,7 @@ public final class ImageIO if (writer == null) throw new IllegalArgumentException ("null argument"); - ImageWriterSpi spi = (ImageWriterSpi) getRegistry() - .getServiceProviderByClass(writer.getClass()); + ImageWriterSpi spi = writer.getOriginatingProvider(); String[] readerSpiNames = spi.getImageReaderSpiNames(); @@ -1098,14 +1119,16 @@ public final class ImageIO * * @return an iterator over a collection of image readers */ - public static Iterator getImageReaders (Object input) + public static Iterator getImageReaders (Object input) { if (input == null) throw new IllegalArgumentException ("null argument"); - return getRegistry().getServiceProviders (ImageReaderSpi.class, - new ReaderObjectFilter(input), - true); + Iterator spiIterator + = getRegistry().getServiceProviders (ImageReaderSpi.class, + new ReaderObjectFilter(input), + true); + return new ImageReaderIterator(spiIterator); } /** @@ -1118,16 +1141,18 @@ public final class ImageIO * * @return an iterator over a collection of image writers */ - public static Iterator getImageWriters (ImageTypeSpecifier type, + public static Iterator getImageWriters (ImageTypeSpecifier type, String formatName) { if (type == null || formatName == null) throw new IllegalArgumentException ("null argument"); - return getRegistry().getServiceProviders (ImageWriterSpi.class, - new WriterObjectFilter(type, - formatName), - true); + final Iterator spiIterator + = getRegistry().getServiceProviders (ImageWriterSpi.class, + new WriterObjectFilter(type, + formatName), + true); + return new ImageWriterIterator(spiIterator); } /** @@ -1149,8 +1174,7 @@ public final class ImageIO if (reader == null) throw new IllegalArgumentException ("null argument"); - ImageReaderSpi spi = (ImageReaderSpi) getRegistry() - .getServiceProviderByClass(reader.getClass()); + ImageReaderSpi spi = reader.getOriginatingProvider(); String[] writerSpiNames = spi.getImageWriterSpiNames(); @@ -1184,15 +1208,33 @@ public final class ImageIO * @exception IllegalArgumentException if either reader or writer is * null */ - public static Iterator getImageTranscoders (ImageReader reader, - ImageWriter writer) + public static Iterator getImageTranscoders (ImageReader reader, + ImageWriter writer) { if (reader == null || writer == null) throw new IllegalArgumentException ("null argument"); - return getRegistry().getServiceProviders (ImageTranscoderSpi.class, - new TranscoderFilter (reader, - writer), - true); + final Iterator spiIterator + = getRegistry().getServiceProviders (ImageTranscoderSpi.class, + new TranscoderFilter (reader, + writer), + true); + return new Iterator() + { + public boolean hasNext() + { + return spiIterator.hasNext(); + } + + public ImageTranscoder next() + { + return spiIterator.next().createTranscoderInstance(); + } + + public void remove() + { + throw new UnsupportedOperationException(); + } + }; } } diff --git a/libjava/classpath/javax/imageio/ImageReader.java b/libjava/classpath/javax/imageio/ImageReader.java index cdd77d52bad..c7eed06fbdc 100644 --- a/libjava/classpath/javax/imageio/ImageReader.java +++ b/libjava/classpath/javax/imageio/ImageReader.java @@ -116,7 +116,7 @@ public abstract class ImageReader * A list of installed progress listeners. Initially null, meaning * no installed listeners. */ - protected List progressListeners = null; + protected List progressListeners = null; /** * true if this reader should only read data further ahead in the @@ -129,19 +129,19 @@ public abstract class ImageReader * A list of installed update listeners. Initially null, meaning no * installed listeners. */ - protected List updateListeners = null; + protected List updateListeners = null; /** * A list of installed warning listeners. Initially null, meaning * no installed listeners. */ - protected List warningListeners = null; + protected List warningListeners = null; /** * A list of warning locales corresponding with the list of * installed warning listeners. Initially null, meaning no locales. */ - protected List warningLocales = null; + protected List warningLocales = null; /** * Construct an image reader. @@ -371,7 +371,7 @@ public abstract class ImageReader * out-of-bounds * @exception IOException if a read error occurs */ - public abstract Iterator getImageTypes(int imageIndex) + public abstract Iterator getImageTypes(int imageIndex) throws IOException; /** @@ -1594,7 +1594,7 @@ public abstract class ImageReader * height is greater than Integer.MAX_VALUE */ protected static BufferedImage getDestination (ImageReadParam param, - Iterator imageTypes, + Iterator imageTypes, int width, int height) throws IIOException @@ -1694,7 +1694,7 @@ public abstract class ImageReader */ public IIOMetadata getImageMetadata (int imageIndex, String formatName, - Set nodeNames) + Set nodeNames) throws IOException { if (formatName == null || nodeNames == null) @@ -1808,7 +1808,7 @@ public abstract class ImageReader * @exception IOException if a read error occurs */ public IIOMetadata getStreamMetadata (String formatName, - Set nodeNames) + Set nodeNames) throws IOException { if (formatName == null || nodeNames == null) @@ -1915,7 +1915,7 @@ public abstract class ImageReader * destination image regions are empty * @exception IOException if a read error occurs */ - public Iterator readAll (Iterator params) + public Iterator readAll (Iterator params) throws IOException { List l = new ArrayList (); diff --git a/libjava/classpath/javax/imageio/ImageWriter.java b/libjava/classpath/javax/imageio/ImageWriter.java index ef352154164..b49e081f002 100644 --- a/libjava/classpath/javax/imageio/ImageWriter.java +++ b/libjava/classpath/javax/imageio/ImageWriter.java @@ -40,6 +40,7 @@ package javax.imageio; import java.awt.Dimension; import java.awt.Rectangle; +import java.awt.image.BufferedImage; import java.awt.image.Raster; import java.awt.image.RenderedImage; import java.io.IOException; @@ -102,19 +103,19 @@ public abstract class ImageWriter * A list of installed progress listeners. Initially null, meaning * no installed listeners. */ - protected List progressListeners = null; + protected List progressListeners = null; /** * A list of installed warning listeners. Initially null, meaning * no installed listeners. */ - protected List warningListeners = null; + protected List warningListeners = null; /** * A list of warning locales corresponding with the list of * installed warning listeners. Initially null, meaning no locales. */ - protected List warningLocales = null; + protected List warningLocales = null; /** * Construct an image writer. @@ -1076,7 +1077,7 @@ public abstract class ImageWriter public void prepareInsertEmpty (int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, - List thumbnails, + List thumbnails, ImageWriteParam param) throws IOException { @@ -1149,7 +1150,7 @@ public abstract class ImageWriter ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, - List thumbnails, + List thumbnails, ImageWriteParam param) throws IOException { diff --git a/libjava/classpath/javax/imageio/metadata/IIOMetadataFormat.java b/libjava/classpath/javax/imageio/metadata/IIOMetadataFormat.java index 76e0950a3df..15f2ceb0ba7 100644 --- a/libjava/classpath/javax/imageio/metadata/IIOMetadataFormat.java +++ b/libjava/classpath/javax/imageio/metadata/IIOMetadataFormat.java @@ -106,15 +106,15 @@ public interface IIOMetadataFormat int getObjectArrayMinLength (String elementName); - Class getObjectClass (String elementName); + Class getObjectClass (String elementName); Object getObjectDefaultValue (String elementName); Object[] getObjectEnumerations (String elementName); - Comparable getObjectMaxValue (String elementName); + Comparable getObjectMaxValue (String elementName); - Comparable getObjectMinValue (String elementName); + Comparable getObjectMinValue (String elementName); int getObjectValueType (String elementName); diff --git a/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java b/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java index aad30447c2f..78fad1a15f0 100644 --- a/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java +++ b/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java @@ -462,7 +462,7 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat int dataType, boolean required, String defaultValue, - List enumeratedValues) + List enumeratedValues) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); node.setAttributeNode (new IIOMetadataNodeAttrEnumerated (node, @@ -568,8 +568,8 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat node.setUserObject (null); } - protected void addObjectValue (String elementName, Class classType, - boolean required, Object defaultValue) + protected void addObjectValue (String elementName, Class classType, + boolean required, T defaultValue) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); addNodeObject (node, new NodeObject (node, @@ -578,9 +578,9 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat defaultValue)); } - protected void addObjectValue (String elementName, Class classType, - boolean required, Object defaultValue, - List enumeratedValues) + protected void addObjectValue (String elementName, Class classType, + boolean required, T defaultValue, + List enumeratedValues) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); addNodeObject (node, new NodeObjectEnumerated (node, @@ -590,12 +590,13 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat enumeratedValues)); } - protected void addObjectValue (String elementName, Class classType, - Object defaultValue, - Comparable minValue, - Comparable maxValue, - boolean minInclusive, - boolean maxInclusive) + protected > + void addObjectValue (String elementName, Class classType, + T defaultValue, + Comparable minValue, + Comparable maxValue, + boolean minInclusive, + boolean maxInclusive) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); addNodeObject (node, new NodeObjectBounded (node, @@ -607,7 +608,7 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat maxInclusive)); } - protected void addObjectValue (String elementName, Class classType, + protected void addObjectValue (String elementName, Class classType, int arrayMinLength, int arrayMaxLength) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); @@ -836,7 +837,7 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat return ((Integer) ((NodeObjectArray) getNodeObject (node)).getArrayMinLength ()).intValue(); } - public Class getObjectClass (String elementName) + public Class getObjectClass (String elementName) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); return getNodeObject (node).getClassType (); @@ -854,13 +855,13 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat return ((NodeObjectEnumerated) getNodeObject (node)).getEnumerations (); } - public Comparable getObjectMaxValue (String elementName) + public Comparable getObjectMaxValue (String elementName) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); return ((NodeObjectBounded) getNodeObject (node)).getMaxValue (); } - public Comparable getObjectMinValue (String elementName) + public Comparable getObjectMinValue (String elementName) { IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName); return ((NodeObjectBounded) getNodeObject (node)).getMinValue (); diff --git a/libjava/classpath/javax/imageio/spi/IIORegistry.java b/libjava/classpath/javax/imageio/spi/IIORegistry.java index e762a96279f..fc3087f0cd6 100644 --- a/libjava/classpath/javax/imageio/spi/IIORegistry.java +++ b/libjava/classpath/javax/imageio/spi/IIORegistry.java @@ -39,7 +39,6 @@ exception statement from your version. */ package javax.imageio.spi; import gnu.classpath.ServiceFactory; -import gnu.java.awt.ClasspathToolkit; import java.awt.Toolkit; import java.util.HashMap; @@ -92,8 +91,6 @@ public final class IIORegistry extends ServiceRegistry registerServiceProvider(new BMPImageWriterSpi()); Toolkit toolkit = Toolkit.getDefaultToolkit(); - if (toolkit instanceof ClasspathToolkit) - ((ClasspathToolkit)toolkit).registerImageIOSpis(this); registerApplicationClasspathSpis(); } diff --git a/libjava/classpath/javax/imageio/spi/IIOServiceProvider.java b/libjava/classpath/javax/imageio/spi/IIOServiceProvider.java index 1ec59d5263e..48fa7d41489 100644 --- a/libjava/classpath/javax/imageio/spi/IIOServiceProvider.java +++ b/libjava/classpath/javax/imageio/spi/IIOServiceProvider.java @@ -110,7 +110,7 @@ public abstract class IIOServiceProvider * @param category the service category for which this provider has * been registered as an implementor. */ - public void onRegistration(ServiceRegistry registry, Class category) + public void onRegistration(ServiceRegistry registry, Class category) { } @@ -128,7 +128,7 @@ public abstract class IIOServiceProvider * @param category the service category for which this provider has * been registered as an implementor. */ - public void onDeregistration(ServiceRegistry registry, Class category) + public void onDeregistration(ServiceRegistry registry, Class category) { } diff --git a/libjava/classpath/javax/imageio/spi/ImageInputStreamSpi.java b/libjava/classpath/javax/imageio/spi/ImageInputStreamSpi.java index 51c58395fc0..2b60868a54c 100644 --- a/libjava/classpath/javax/imageio/spi/ImageInputStreamSpi.java +++ b/libjava/classpath/javax/imageio/spi/ImageInputStreamSpi.java @@ -59,7 +59,7 @@ public abstract class ImageInputStreamSpi * Indicates which kind of input is processable by the streams * created by {@link #createInputStreamInstance(Object)}. */ - protected Class inputClass; + protected Class inputClass; /** @@ -80,7 +80,7 @@ public abstract class ImageInputStreamSpi * or version is null. */ public ImageInputStreamSpi(String vendorName, String version, - Class inputClass) + Class inputClass) { super(vendorName, version); this.inputClass = inputClass; @@ -91,7 +91,7 @@ public abstract class ImageInputStreamSpi * Determines which kind of input is processable by the streams * created by {@link #createInputStreamInstance(Object)}. */ - public Class getInputClass() + public Class getInputClass() { return inputClass; } diff --git a/libjava/classpath/javax/imageio/spi/ImageOutputStreamSpi.java b/libjava/classpath/javax/imageio/spi/ImageOutputStreamSpi.java index 0f1d3cdb2c1..872e7181e2b 100644 --- a/libjava/classpath/javax/imageio/spi/ImageOutputStreamSpi.java +++ b/libjava/classpath/javax/imageio/spi/ImageOutputStreamSpi.java @@ -59,7 +59,7 @@ public abstract class ImageOutputStreamSpi * Indicates which kind of output is produced by the streams * created by {@link #createOutputStreamInstance(Object)}. */ - protected Class outputClass; + protected Class outputClass; /** @@ -80,7 +80,7 @@ public abstract class ImageOutputStreamSpi * or version is null. */ public ImageOutputStreamSpi(String vendorName, String version, - Class outputClass) + Class outputClass) { super(vendorName, version); this.outputClass = outputClass; @@ -91,7 +91,7 @@ public abstract class ImageOutputStreamSpi * Determines which kind of output is produced by the streams * created by {@link #createOutputStreamInstance(Object)}. */ - public Class getOutputClass() + public Class getOutputClass() { return outputClass; } diff --git a/libjava/classpath/javax/imageio/spi/RegisterableService.java b/libjava/classpath/javax/imageio/spi/RegisterableService.java index ccf734e69ac..7be5a1beace 100644 --- a/libjava/classpath/javax/imageio/spi/RegisterableService.java +++ b/libjava/classpath/javax/imageio/spi/RegisterableService.java @@ -62,7 +62,7 @@ public interface RegisterableService * @param category the service category for which this provider has * been registered as an implementor. */ - void onRegistration(ServiceRegistry registry, Class category); + void onRegistration(ServiceRegistry registry, Class category); /** @@ -78,6 +78,6 @@ public interface RegisterableService * @param category the service category for which this provider has * been registered as an implementor. */ - void onDeregistration(ServiceRegistry registry, Class category); + void onDeregistration(ServiceRegistry registry, Class category); } diff --git a/libjava/classpath/javax/imageio/spi/ServiceRegistry.java b/libjava/classpath/javax/imageio/spi/ServiceRegistry.java index 031b666046c..4848bc6dbab 100644 --- a/libjava/classpath/javax/imageio/spi/ServiceRegistry.java +++ b/libjava/classpath/javax/imageio/spi/ServiceRegistry.java @@ -121,7 +121,7 @@ public class ServiceRegistry * @throws ClassCastException if categories does not * iterate over instances of {@link java.lang.Class}. */ - public ServiceRegistry(Iterator categories) + public ServiceRegistry(Iterator> categories) { ArrayList cats = new ArrayList(/* expected size */ 10); @@ -178,8 +178,8 @@ public class ServiceRegistry * @throws IllegalArgumentException if spi is * null. */ - public static Iterator lookupProviders(Class spi, - ClassLoader loader) + public static Iterator lookupProviders(Class spi, + ClassLoader loader) { return ServiceFactory.lookupProviders(spi, loader); } @@ -200,7 +200,7 @@ public class ServiceRegistry * * @see #lookupProviders(Class, ClassLoader) */ - public static Iterator lookupProviders(Class spi) + public static Iterator lookupProviders(Class spi) { return ServiceFactory.lookupProviders(spi); } @@ -212,7 +212,7 @@ public class ServiceRegistry * @return an unmodifiable {@link * java.util.Iterator}<{@link java.lang.Class}>. */ - public Iterator getCategories() + public Iterator> getCategories() { return new Iterator() { @@ -317,8 +317,8 @@ public class ServiceRegistry * @throws ClassCastException if provider does not * implement category. */ - public synchronized boolean registerServiceProvider(Object provider, - Class category) + public synchronized boolean registerServiceProvider(T provider, + Class category) { for (int i = 0; i < categories.length; i++) if (categories[i] == category) @@ -383,7 +383,7 @@ public class ServiceRegistry * #ServiceRegistry(Iterator) constructor} of this * ServiceRegistry. */ - public synchronized void registerServiceProviders(Iterator providers) + public synchronized void registerServiceProviders(Iterator providers) { if (providers == null) throw new IllegalArgumentException(); @@ -467,8 +467,8 @@ public class ServiceRegistry * @throws ClassCastException if provider does not * implement category. */ - public synchronized boolean deregisterServiceProvider(Object provider, - Class category) + public synchronized boolean deregisterServiceProvider(T provider, + Class category) { for (int i = 0; i < categories.length; i++) if (categories[i] == category) @@ -535,7 +535,7 @@ public class ServiceRegistry * #ServiceRegistry(Iterator) constructor} of this * ServiceRegistry. */ - public synchronized void deregisterAll(Class category) + public synchronized void deregisterAll(Class category) { boolean ok = false; @@ -663,7 +663,8 @@ public class ServiceRegistry * * @see #getServiceProviders(Class, Filter, boolean) */ - public Iterator getServiceProviders(Class category, boolean useOrdering) + public Iterator getServiceProviders(Class category, + boolean useOrdering) { return getServiceProviders(category, null, useOrdering); } @@ -691,9 +692,9 @@ public class ServiceRegistry * #ServiceRegistry(Iterator) constructor} of this * ServiceRegistry. */ - public synchronized Iterator getServiceProviders(Class category, - Filter filter, - boolean useOrdering) + public synchronized Iterator getServiceProviders(Class category, + Filter filter, + boolean useOrdering) { int catid; LinkedList provs; @@ -751,7 +752,7 @@ public class ServiceRegistry * * @param providerClass a class to search for. */ - public synchronized Object getServiceProviderByClass(Class providerClass) + public synchronized T getServiceProviderByClass(Class providerClass) { if (providerClass == null) throw new IllegalArgumentException(); @@ -772,7 +773,7 @@ public class ServiceRegistry { Object provider = iter.next(); if (providerClass.isInstance(provider)) - return provider; + return (T) provider; } } @@ -799,9 +800,9 @@ public class ServiceRegistry * @see #unsetOrdering * @see #getServiceProviders(Class, Filter, boolean) */ - public synchronized boolean setOrdering(Class category, - Object firstProvider, - Object secondProvider) + public synchronized boolean setOrdering(Class category, + T firstProvider, + T secondProvider) { return addConstraint(getCategoryID(category), firstProvider, secondProvider); @@ -826,9 +827,9 @@ public class ServiceRegistry * * @see #setOrdering */ - public synchronized boolean unsetOrdering(Class category, - Object firstProvider, - Object secondProvider) + public synchronized boolean unsetOrdering(Class category, + T firstProvider, + T secondProvider) { return removeConstraint(getCategoryID(category), firstProvider, secondProvider); diff --git a/libjava/classpath/javax/management/BadAttributeValueExpException.java b/libjava/classpath/javax/management/BadAttributeValueExpException.java new file mode 100644 index 00000000000..fbdf1decad2 --- /dev/null +++ b/libjava/classpath/javax/management/BadAttributeValueExpException.java @@ -0,0 +1,91 @@ +/* BadAttributeValueExpException.java -- Thrown by invalid query attributes. + 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 javax.management; + +/** + * Thrown when the value of an a attribute passed to a query proves to + * be invalid. This exception is only used internally by the Java + * management API and is not exposed to user code. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class BadAttributeValueExpException + extends Exception +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -3105272988410493376L; + + /** + * The attribute value that caused the exception. + */ + private Object val; + + /** + * Constructs a new BadAttributeValueExpException + * using the specified object to represent the invalid value. + * + * @param val the inappropriate value. + */ + public BadAttributeValueExpException(Object val) + { + super(); + this.val = val; + } + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.BadAttributeValueExpException) + * and the invalid value. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + return getClass().getName() + + "[val=" + val + + "]"; + } + +} + diff --git a/libjava/classpath/javax/management/BadBinaryOpValueExpException.java b/libjava/classpath/javax/management/BadBinaryOpValueExpException.java new file mode 100644 index 00000000000..5e1f5dbbed4 --- /dev/null +++ b/libjava/classpath/javax/management/BadBinaryOpValueExpException.java @@ -0,0 +1,102 @@ +/* BadBinaryOpValueExpException.java -- Thrown by invalid query expressions. + 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 javax.management; + +/** + * Thrown when the expression passed to a method for constructing a + * query proves to be invalid. This exception is only used internally + * by the Java management API and is not exposed to user code. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class BadBinaryOpValueExpException + extends Exception +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 5068475589449021227L; + + /** + * The value expression that caused the exception. + */ + private ValueExp exp; + + /** + * Constructs a new BadBinaryOpValueExpException + * using the specified expression to represent the invalid one. + * + * @param exp the inappropriate value expression. + */ + public BadBinaryOpValueExpException(ValueExp exp) + { + super(); + this.exp = exp; + } + + /** + * Returns the inappropriate value expression associated + * with this exception. + * + * @return the value expression. + */ + public ValueExp getExp() + { + return exp; + } + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.BadBinaryOpValueExpException) + * and the invalid value expression. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + return getClass().getName() + + "[exp=" + exp + + "]"; + } + +} + diff --git a/libjava/classpath/javax/management/BadStringOperationException.java b/libjava/classpath/javax/management/BadStringOperationException.java new file mode 100644 index 00000000000..8e5949ef791 --- /dev/null +++ b/libjava/classpath/javax/management/BadStringOperationException.java @@ -0,0 +1,92 @@ +/* BadStringOperationException.java -- Thrown by invalid query attributes. + 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 javax.management; + +/** + * Thrown when a string-based operation passed to a query proves to + * be invalid. This exception is only used internally by the Java + * management API and is not exposed to user code. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class BadStringOperationException + extends Exception +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 7802201238441662100L; + + /** + * The operation that caused the exception. + */ + private String op; + + /** + * Constructs a new BadStringOperationException + * using the specified object to represent the invalid string + * operation. + * + * @param op the inappropriate string operation. + */ + public BadStringOperationException(String op) + { + super(); + this.op = op; + } + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.BadStringOperationException) + * and the invalid string operation. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + return getClass().getName() + + "[op=" + op + + "]"; + } + +} + diff --git a/libjava/classpath/javax/management/InstanceAlreadyExistsException.java b/libjava/classpath/javax/management/InstanceAlreadyExistsException.java new file mode 100644 index 00000000000..c783208cb49 --- /dev/null +++ b/libjava/classpath/javax/management/InstanceAlreadyExistsException.java @@ -0,0 +1,76 @@ +/* InstanceAlreadyExistsException.java -- Thrown by invalid values. + 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 javax.management; + +/** + * Thrown when an attempt to register a bean is made, and + * the bean is already registered. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class InstanceAlreadyExistsException + extends OperationsException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 8893743928912733931L; + + /** + * Constructs a new InstanceAlreadyExistsException. + */ + public InstanceAlreadyExistsException() + { + super(); + } + + /** + * Constructs a new InstanceAlreadyExistsException + * with the specified message. + * + * @param message the error message to give to the user. + */ + public InstanceAlreadyExistsException(String message) + { + super(message); + } + +} + diff --git a/libjava/classpath/javax/management/InstanceNotFoundException.java b/libjava/classpath/javax/management/InstanceNotFoundException.java new file mode 100644 index 00000000000..4d209fc471f --- /dev/null +++ b/libjava/classpath/javax/management/InstanceNotFoundException.java @@ -0,0 +1,76 @@ +/* InstanceNotFoundException.java -- Thrown by invalid values. + 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 javax.management; + +/** + * Thrown when an attempt to locate a bean is made, and + * the bean does not exist in the repository. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class InstanceNotFoundException + extends OperationsException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -882579438394773049L; + + /** + * Constructs a new InstanceNotFoundException. + */ + public InstanceNotFoundException() + { + super(); + } + + /** + * Constructs a new InstanceNotFoundException + * with the specified message. + * + * @param message the error message to give to the user. + */ + public InstanceNotFoundException(String message) + { + super(message); + } + +} + diff --git a/libjava/classpath/javax/management/InvalidApplicationException.java b/libjava/classpath/javax/management/InvalidApplicationException.java new file mode 100644 index 00000000000..0bcf2d6cb0c --- /dev/null +++ b/libjava/classpath/javax/management/InvalidApplicationException.java @@ -0,0 +1,92 @@ +/* InvalidApplicationException.java -- Thrown by invalid query attributes. + 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 javax.management; + +/** + * Thrown when a query or attribute is applied to a management bean + * which is of the wrong class. This exception is only used + * internally by the Java management API and is not exposed to user + * code. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class InvalidApplicationException + extends Exception +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -3048022274675537269L; + + /** + * The attribute value that caused the exception. + */ + private Object val; + + /** + * Constructs a new InvalidApplicationException + * using the specified object to represent the invalid value. + * + * @param val the inappropriate expression. + */ + public InvalidApplicationException(Object val) + { + super(); + this.val = val; + } + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.InvalidApplicationException) + * and the invalid expression. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + return getClass().getName() + + "[val=" + val + + "]"; + } + +} + diff --git a/libjava/classpath/javax/management/MBeanAttributeInfo.java b/libjava/classpath/javax/management/MBeanAttributeInfo.java index bded7e41a07..2d7c100b560 100644 --- a/libjava/classpath/javax/management/MBeanAttributeInfo.java +++ b/libjava/classpath/javax/management/MBeanAttributeInfo.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.management; import java.lang.reflect.Method; +import java.lang.reflect.Type; /** * Describes the attributes of a management bean. @@ -109,13 +110,21 @@ public class MBeanAttributeInfo "not be null."); if (getter == null) { - attributeType = setter.getParameterTypes()[0].getName(); + Type t = setter.getGenericParameterTypes()[0]; + if (t instanceof Class) + attributeType = ((Class) t).getName(); + else + attributeType = t.toString(); isRead = false; is = false; } else { - attributeType = getter.getReturnType().getName(); + Type t = getter.getGenericReturnType(); + if (t instanceof Class) + attributeType = ((Class) t).getName(); + else + attributeType = t.toString(); isRead = true; is = getter.getName().startsWith("is"); } diff --git a/libjava/classpath/javax/management/MBeanConstructorInfo.java b/libjava/classpath/javax/management/MBeanConstructorInfo.java index 832a3296d6b..15c8227c246 100644 --- a/libjava/classpath/javax/management/MBeanConstructorInfo.java +++ b/libjava/classpath/javax/management/MBeanConstructorInfo.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.management; import java.lang.reflect.Constructor; +import java.lang.reflect.Type; import java.util.Arrays; @@ -77,22 +78,29 @@ public class MBeanConstructorInfo public MBeanConstructorInfo(String desc, Constructor cons) { super(cons.getName(), desc); - Class[] paramTypes = cons.getParameterTypes(); + Type[] paramTypes = cons.getGenericParameterTypes(); signature = new MBeanParameterInfo[paramTypes.length]; for (int a = 0; a < paramTypes.length; ++a) - signature[a] = new MBeanParameterInfo(null, - paramTypes[a].getName(), - null); + { + Type t = paramTypes[a]; + if (t instanceof Class) + signature[a] = new MBeanParameterInfo(null, + ((Class) t).getName(), + null); + else + signature[a] = new MBeanParameterInfo(null, t.toString(), null); + } } /** * Constructs a @link{MBeanConstructorInfo} with the specified * name, description and parameter information. A null * value for the parameter information is the same as passing in - * an empty array. + * an empty array. A copy of the parameter array is taken, so + * later changes have no effect. * * @param name the name of the constructor. - * @param desc a description of the attribute. + * @param desc a description of the constructor. * @param sig the signature of the constructor, as a series * of {@link MBeanParameterInfo} objects, one for * each parameter. @@ -104,7 +112,10 @@ public class MBeanConstructorInfo if (sig == null) signature = new MBeanParameterInfo[0]; else - signature = sig; + { + signature = new MBeanParameterInfo[sig.length]; + System.arraycopy(sig, 0, signature, 0, sig.length); + } } /** diff --git a/libjava/classpath/javax/management/MBeanFeatureInfo.java b/libjava/classpath/javax/management/MBeanFeatureInfo.java index 4f0243e1894..74a03038740 100644 --- a/libjava/classpath/javax/management/MBeanFeatureInfo.java +++ b/libjava/classpath/javax/management/MBeanFeatureInfo.java @@ -79,7 +79,7 @@ public class MBeanFeatureInfo /** * The toString() result of this instance. */ - protected transient String string; + transient String string; /** * Constructs a new {@link MBeanFeatureInfo} with the specified diff --git a/libjava/classpath/javax/management/MBeanInfo.java b/libjava/classpath/javax/management/MBeanInfo.java index e6f03f0656e..d30de0499aa 100644 --- a/libjava/classpath/javax/management/MBeanInfo.java +++ b/libjava/classpath/javax/management/MBeanInfo.java @@ -140,7 +140,8 @@ public class MBeanInfo * can be loaded by the MBean server or class loader; it merely * has to be a syntactically correct class name. Any of the * arrays may be null; this will be treated as if - * an empty array was supplied. + * an empty array was supplied. A copy of the arrays is + * taken, so later changes have no effect. * * @param name the name of the class this instance describes. * @param desc a description of the bean. @@ -162,19 +163,31 @@ public class MBeanInfo if (attribs == null) attributes = new MBeanAttributeInfo[0]; else - attributes = attribs; + { + attributes = new MBeanAttributeInfo[attribs.length]; + System.arraycopy(attribs, 0, attributes, 0, attribs.length); + } if (cons == null) constructors = new MBeanConstructorInfo[0]; else - constructors = cons; + { + constructors = new MBeanConstructorInfo[cons.length]; + System.arraycopy(cons, 0, constructors, 0, cons.length); + } if (ops == null) operations = new MBeanOperationInfo[0]; else - operations = ops; + { + operations = new MBeanOperationInfo[ops.length]; + System.arraycopy(ops, 0, operations, 0, ops.length); + } if (notifs == null) notifications = new MBeanNotificationInfo[0]; else - notifications = notifs; + { + notifications = new MBeanNotificationInfo[notifs.length]; + System.arraycopy(notifs, 0, notifications, 0, notifs.length); + } } /** diff --git a/libjava/classpath/javax/management/MBeanOperationInfo.java b/libjava/classpath/javax/management/MBeanOperationInfo.java index a2db8d1b064..6495072e627 100644 --- a/libjava/classpath/javax/management/MBeanOperationInfo.java +++ b/libjava/classpath/javax/management/MBeanOperationInfo.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.management; import java.lang.reflect.Method; +import java.lang.reflect.Type; import java.util.Arrays; @@ -113,13 +114,23 @@ public class MBeanOperationInfo public MBeanOperationInfo(String desc, Method method) { super(method.getName(), desc); - Class[] paramTypes = method.getParameterTypes(); + Type[] paramTypes = method.getGenericParameterTypes(); signature = new MBeanParameterInfo[paramTypes.length]; for (int a = 0; a < paramTypes.length; ++a) - signature[a] = new MBeanParameterInfo(null, - paramTypes[a].getName(), - null); - type = method.getReturnType().getName(); + { + Type t = paramTypes[a]; + if (t instanceof Class) + signature[a] = new MBeanParameterInfo(null, + ((Class) t).getName(), + null); + else + signature[a] = new MBeanParameterInfo(null, t.toString(), null); + } + Type retType = method.getGenericReturnType(); + if (retType instanceof Class) + type = ((Class) retType).getName(); + else + type = retType.toString(); if (method.getReturnType() == Void.TYPE) { if (paramTypes.length == 0) @@ -140,7 +151,8 @@ public class MBeanOperationInfo * Constructs a @link{MBeanOperationInfo} with the specified name, * description, parameter information, return type and impact. A * null value for the parameter information is the same - * as passing in an empty array. + * as passing in an empty array. A copy of the parameter array is + * taken, so later changes have no effect. * * @param name the name of the constructor. * @param desc a description of the attribute. @@ -158,7 +170,10 @@ public class MBeanOperationInfo if (sig == null) signature = new MBeanParameterInfo[0]; else - signature = sig; + { + signature = new MBeanParameterInfo[sig.length]; + System.arraycopy(sig, 0, signature, 0, sig.length); + } this.type = type; this.impact = impact; } diff --git a/libjava/classpath/javax/management/MBeanPermission.java b/libjava/classpath/javax/management/MBeanPermission.java new file mode 100644 index 00000000000..2c8dfbd622d --- /dev/null +++ b/libjava/classpath/javax/management/MBeanPermission.java @@ -0,0 +1,562 @@ +/* MBeanPermission.java -- Permissions controlling server access. + 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 javax.management; + +import java.security.Permission; + +import java.io.IOException; +import java.io.ObjectInputStream; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; + +/** + *

    + * Represents the permissions required to perform + * operations using the {@link MBeanServer}. As with + * all {@link java.security.Permission} objects, an + * instance of this class either represents a permission + * already held or one that is required to access a + * particular service. In the case of {@link MBeanPermission}s, + * implication checks are made using an instance of this class + * when a user requests an operation from the server, and a + * {@link SecurityManager} is in place. + *

    + *

    + * An {@link MBeanPermission} consists of four elements, + * which all have to match for the permission to be implied. + * These are as follows: + *

    + *
      + *
    1. The action. For a required permission, + * this is a single value. For a permission held by the user, + * this is a list of comma-separated actions (with spaces allowed), + * or * (representing all actions). {@link #getActions()} + * returns this value.
    2. + *
    3. The class name. For a required permission, + * this is the class name of the bean being accessed, if any. If + * a bean isn't involved in this action, the value is null. + * For a permission held by the user, it has one of three values: + *
        + *
      1. The empty string, implying any class.
      2. + *
      3. *, also implying any class.
      4. + *
      5. A class name pattern, which may specify a single class + * (e.g. java.lang.Object) or a series of classes + * using the wildcard character * (e.g. + * javax.swing.*.)
      6. + *
    4. + *
    5. The member. For a required permission, + * this is the member of the bean being accessed (an attribute + * or operation), if any. If a member of the bean isn't involved + * in this action, the value is null. + * For a permission held by the user, it has one of three values: + *
        + *
      1. The empty string, implying any member.
      2. + *
      3. *, also implying any member.
      4. + *
      5. The name of a member.
      6. + *
    6. + *
    7. The object name. For a required permission, + * this is the {@link ObjectName} of the bean being accessed, if + * any. If a bean isn't involved in this action, the value is + * null. The name may not be a pattern. + * For a permission held by the user, it may be the empty + * string (allowing everything) or an {@link ObjectName} + * pattern. + *
    + * {@link #getName()} returns the latter three of these as a + * single string: + *

    + *

    className#member[objectName]

    + *

    + * where "" is disallowed, as, although any of + * the elements may be omitted, not all of them should be + * left out simultaneously. "-" is used to + * represent null. When this occurs in a + * required permission, anything may match it. When this + * forms part of a permission held by the user, it only + * matches another null value. + *

    + *

    The list of valid actions is as follows:

    + *
      + *
    • addNotificationListener
    • + *
    • getAttribute
    • + *
    • getClassLoader
    • + *
    • getClassLoaderFor
    • + *
    • getClassLoaderRepository
    • + *
    • getDomains
    • + *
    • getMBeanInfo
    • + *
    • getObjectInstance
    • + *
    • instantiate
    • + *
    • invoke
    • + *
    • isInstanceOf
    • + *
    • queryMBeans
    • + *
    • queryNames
    • + *
    • registerMBean
    • + *
    • removeNotificationListener
    • + *
    • setAttribute
    • + *
    • unregisterMBean
    • + *
    + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MBeanPermission + extends Permission +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -2416928705275160661L; + + /** + * The list of actions associated with this permission. + */ + private String actions; + + /** + * The list of actions as an ordered set. + */ + private transient Set actionSet; + + /** + * The set of valid actions. + */ + private static final Set validSet; + + /** + * Initialise the set of valid actions. + */ + static + { + validSet = new HashSet(); + validSet.add("addNotificationListener"); + validSet.add("getAttribute"); + validSet.add("getClassLoader"); + validSet.add("getClassLoaderFor"); + validSet.add("getClassLoaderRepository"); + validSet.add("getDomains"); + validSet.add("getMBeanInfo"); + validSet.add("getObjectInstance"); + validSet.add("instantiate"); + validSet.add("invoke"); + validSet.add("isInstanceOf"); + validSet.add("queryMBeans"); + validSet.add("queryNames"); + validSet.add("registerMBean"); + validSet.add("removeNotificationListener"); + validSet.add("setAttribute"); + validSet.add("unregisterMBean"); + } + + /** + * Constructs a new {@link MBeanPermission} with the specified name + * and actions. The name is of the form className#member[objectName], + * where each element is optional, but a completely empty or null + * name is disallowed. Actions are specified as a comma-separated list + * and may also not be empty or null. + * + * @param name the name of the permission. + * @param actions the actions associated with this permission. + * @throws IllegalArgumentException if the name or actions are invalid. + */ + public MBeanPermission(String name, String actions) + { + super(name); + if (name == null || name.length() == 0) + throw new IllegalArgumentException("The supplied name was null or empty."); + if (actions == null || actions.length() == 0) + throw new IllegalArgumentException("The supplied action list was null or empty."); + this.actions = actions; + updateActionSet(); + } + + /** + * Constructs a new {@link MBeanPermission} with the specified class name, + * member, object name and actions. The name of the permission is created + * using the form className#member[objectName], + * where each element is optional, but an empty or null + * name is disallowed. Actions are specified as a comma-separated list + * and may also not be empty or null. + * + * @param className the name of the class to which this permission applies, + * or either null or "-" for a + * value which may be implied by any class name, but not + * imply any class name itself. + * @param member the member of the class to which this permission applies, + * or either null or "-" for a + * value which may be implied by any member, but not + * imply any member itself. + * @param objectName the {@link ObjectName} to which this permission applies, + * or null for a value which may be implied by + * any object name, but not imply any object name itself. + * @param actions the actions associated with this permission. + */ + public MBeanPermission(String className, String member, + ObjectName name, String actions) + { + this((className == null ? "-" : className) + "#" + + (member == null ? "-" : member) + "[" + + (name == null ? "-" : name.toString()) + "]", actions); + } + + /** + * Returns true if the given object is also an {@link MBeanPermission} + * with the same name and actions. + * + * @param obj the object to test. + * @return true if the object is an {@link MBeanPermission} with + * the same name and actions. + */ + public boolean equals(Object obj) + { + if (obj instanceof MBeanPermission) + { + MBeanPermission p = (MBeanPermission) obj; + return (p.getName().equals(getName()) && + p.getActions().equals(actions)); + } + return false; + } + + /** + * Returns the list of actions in alphabetical order. + * + * @return the list of actions. + */ + public String getActions() + { + Iterator it = actionSet.iterator(); + StringBuilder builder = new StringBuilder(); + while (it.hasNext()) + { + builder.append(it.next()); + if (it.hasNext()) + builder.append(","); + } + return builder.toString(); + } + + /** + * Returns the hashcode of the permission as the sum + * of the hashcodes of the name and actions. + * + * @return the hashcode of the permission. + */ + public int hashCode() + { + return getName().hashCode() + actions.hashCode(); + } + + /** + *

    + * Returns true if this permission implies the supplied permission. + * This happens if the following holds: + *

    + *
      + *
    • The supplied permission is an {@link MBeanPermission}
    • + *
    • The supplied permission has either a null classname + * or its classname matches the classname of this permission. A + * classname of "*" for this permission always matches + * the classname of the supplied permission. Generally, '*' + * acts as a wildcard, so ".*" matches '.' + * followed by anything.
    • + *
    • The supplied permission has either a null member + * or its member matches the member of this permission. A member of + * "*" for this permission always matches the member + * of the supplied permission.
    • + *
    • The supplied permission has either a null object name + * or its object name matches the object name of this permission. If the + * object name of this permission is a pattern, {@link ObjectName#apply(ObjectName)} + * may be used as well.
    • + *
    • The supplied permission's actions are a subset of the actions + * of this permission. If the queryMBeans action is presented, + * the queryNames action is implied.
    • + *
    + * + * @param p the permission to check that this permission implies. + * @return true if this permission implies p. + */ + public boolean implies(Permission p) + { + if (p instanceof MBeanPermission) + { + MBeanPermission mp = (MBeanPermission) p; + NameHolder pName = new NameHolder(mp.getName()); + NameHolder name = new NameHolder(getName()); + if (!(name.equals(pName))) + return false; + Iterator i = mp.getActionSet().iterator(); + while (i.hasNext()) + { + String nextAction = (String) i.next(); + boolean found = actions.contains(nextAction); + if (!found) + if (nextAction.equals("queryNames")) + found = actions.contains("queryMBeans"); + if (!found) + return false; + } + return true; + } + return false; + } + + /** + * Small helper class to handle deconstruction of the name. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private class NameHolder + { + + /** + * The class name. + */ + private String className; + + /** + * The member. + */ + private String member; + + /** + * The object name. + */ + private ObjectName objectName; + + /** + * Constructs a broken-down name from a given name. + * + * @param name the name to break down. + */ + public NameHolder(String name) + { + String objectName = null; + int memberIndex = name.indexOf("#"); + int onIndex = name.indexOf("["); + if (onIndex == -1) + { + if (memberIndex == -1) + className = name; + else + { + className = name.substring(0, memberIndex); + member = name.substring(memberIndex + 1); + } + } + else + { + if (memberIndex == -1) + { + className = name.substring(0, onIndex); + objectName = name.substring(onIndex + 1, + name.length() - 1); + } + else + { + className = name.substring(0, memberIndex); + member = name.substring(memberIndex + 1, onIndex); + objectName = name.substring(onIndex + 1, + name.length() - 1); + } + } + if (className.equals("-")) + className = null; + if (member.equals("-")) + member = null; + if (objectName == null || objectName.equals("-")) + this.objectName = null; + else + try + { + this.objectName = new ObjectName(objectName); + } + catch (MalformedObjectNameException e) + { + throw (Error) + (new InternalError("Invalid object name.").initCause(e)); + } + } + + /** + *

    + * Returns true if the supplied object is also a + * {@link NameHolder} and the following holds: + *

    + *
      + *
    • The supplied classname is null or the two match. A + * classname of "*" for this holder always matches + * the classname of the supplied holder. Generally, '*' + * acts as a wildcard, so ".*" matches '.' + * followed by anything.
    • + *
    • The supplied name holder has either a null member + * or its member matches the member of this name holder. A member of + * "*" for this name holder always matches the member + * of the supplied name holder.
    • + *
    • The supplied name holder has either a null object name + * or its object name matches the object name of this name holder. If the + * object name of this name holder is a pattern, + * {@link ObjectName#apply(ObjectName)} may be used as well.
    • + *
    + * + * @param obj the object to compare with this. + * @return true if the above holds. + */ + public boolean equals(Object obj) + { + if (obj instanceof NameHolder) + { + NameHolder nh = (NameHolder) obj; + boolean cn = false; + String ocn = nh.getClassName(); + if (ocn == null || className.equals("*")) + cn = true; + else + { + int wcIndex = className.indexOf("*"); + if (wcIndex != -1) + cn = ocn.startsWith(className.substring(0, wcIndex)); + else + cn = ocn.equals(className); + } + boolean m = false; + String om = nh.getMember(); + if (om == null || member.equals("*")) + m = true; + else + m = om.equals(member); + boolean on = false; + ObjectName oon = nh.getObjectName(); + if (oon == null) + on = true; + else if (objectName.isPattern()) + on = objectName.apply(oon); + else + on = oon.equals(objectName); + return (cn && m && on); + } + return false; + } + + /** + * Returns the class name. + */ + public String getClassName() + { + return className; + } + + /** + * Returns the member. + */ + public String getMember() + { + return member; + } + + /** + * Returns the object name. + */ + public ObjectName getObjectName() + { + return objectName; + } + } + + /** + * Returns the set of actions. + * + * @return the actions as an ordered set. + */ + Set getActionSet() + { + return actionSet; + } + + /** + * Updates the action set from the current value of + * the actions string. + */ + private void updateActionSet() + { + String[] actionsArray = actions.split(","); + actionSet = new TreeSet(); + for (int a = 0; a < actionsArray.length; ++a) + actionSet.add(actionsArray[a].trim()); + } + + /** + * Reads the object from a stream and ensures the incoming + * data is valid. + * + * @param in the input stream. + * @throws IOException if an I/O error occurs. + * @throws ClassNotFoundException if a class used by the object + * can not be found. + */ + private void readObject(ObjectInputStream in) + throws IOException, ClassNotFoundException + { + in.defaultReadObject(); + updateActionSet(); + checkActions(); + } + + /** + * Checks that the actions used in this permission + * are from the valid set. + * + * @throws IllegalArgumentException if the name or actions are invalid. + */ + private void checkActions() + { + Iterator it = actionSet.iterator(); + while (it.hasNext()) + { + String action = (String) it.next(); + if (!(validSet.contains(action))) + throw new IllegalArgumentException("Invalid action " + + action + " found."); + } + } + +} + diff --git a/libjava/classpath/javax/management/MBeanRegistration.java b/libjava/classpath/javax/management/MBeanRegistration.java new file mode 100644 index 00000000000..5a181ca4921 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanRegistration.java @@ -0,0 +1,95 @@ +/* MBeanRegistration.java -- Interface for beans to hook into registration. + 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 javax.management; + +/** + * Beans may implement this interface in order to perform + * operations immediately prior to or after their registration + * or deregistration. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface MBeanRegistration +{ + + /** + * This method is called following deregistration of the bean + * by the server. + */ + void postDeregister(); + + /** + * This method is called following both successful and unsuccessful + * attempts to register the bean. The supplied boolean value indicates + * the result of the attempt relative to this call. + * + * @param successful true if the registration was successful. + */ + void postRegister(Boolean successful); + + /** + * This method is called prior to de-registration, and may throw + * an exception. + * + * @throws Exception if something goes wrong during the bean's pre-deregistration + * operation. The server will re-throw this exception + * as an {@link MBeanRegistrationException}. + */ + void preDeregister() + throws Exception; + + /** + * This method is called prior to registration, with a reference to the + * server and {@link ObjectName} supplied to the server for registration. + * This method may be used to replace this name by one chosen by the bean. + * Such behaviour is expected if the supplied name is null, + * but may occur in all cases. The method may throw an exception, which + * will cause registration to be aborted. + * + * @param server the server with which the bean is being registered. + * @param name the name the server was supplied with for registration, + * which may be null. + * @throws Exception if something goes wrong during the bean's pre-registration + * operation. The server will re-throw this exception + * as an {@link MBeanRegistrationException}. + */ + ObjectName preRegister(MBeanServer server, ObjectName name) + throws Exception; + +} diff --git a/libjava/classpath/javax/management/MBeanRegistrationException.java b/libjava/classpath/javax/management/MBeanRegistrationException.java new file mode 100644 index 00000000000..9f62b9aa04f --- /dev/null +++ b/libjava/classpath/javax/management/MBeanRegistrationException.java @@ -0,0 +1,84 @@ +/* MBeanRegistrationException.java -- A bean registration exception. + 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 javax.management; + +/** + * Represents an arbitrary exception thrown during registration of a + * management bean. When registering a bean causes an exception to be + * thrown, the resulting exception is wrapped inside an {@link + * MBeanRegistrationException}. Calling {@link getTargetException()} + * will return the wrapped exception. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MBeanRegistrationException + extends MBeanException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 4482382455277067805L; + + /** + * Constructs a new MBeanRegistrationException wrapping + * the specified exception. + * + * @param e the exception to be wrapped. + */ + public MBeanRegistrationException(Exception e) + { + super(e); + } + + /** + * Constructs a new MBeanRegistrationException wrapping + * the specified exception and using the supplied message. + * + * @param e the exception to be wrapped. + * @param message the error message to give to the user. + */ + public MBeanRegistrationException(Exception e, String message) + { + super(e, message); + } + + +} + diff --git a/libjava/classpath/javax/management/MBeanServer.java b/libjava/classpath/javax/management/MBeanServer.java new file mode 100644 index 00000000000..73a28e3b85a --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServer.java @@ -0,0 +1,1199 @@ +/* MBeanServer.java -- Represents a management server. + 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 javax.management; + +import java.io.ObjectInputStream; + +import java.util.Set; + +import javax.management.loading.ClassLoaderRepository; + +/** + *

    + * This interface represents a server for management beans, + * providing facilities for the creation, registration and + * removal of such beans. This interface is central to the + * Java management architecture. Users do not usually implement + * this class. Instead, implementations of this class + * may be obtained using an {@link MBeanServerFactory}. + *

    + *

    + * Registering a bean with the server makes its attributes and + * operations accessible via the server. Only JMX compliant + * beans may be registered with the server. When a bean + * is registered or unregistered, an {@link MBeanServerNotification} + * is emitted by the server's {@link MBeanServerDelegate}. + * Listeners may be registered with this bean in order to + * obtain such notifications. It has the {@link ObjectName} + * JMImplementation:type=MBeanServerDelegate. + *

    + *

    + * Security checks are applied on the methods of the server, + * as detailed below, if it is obtained using the + * {@link MBeanServerFactory#createMBeanServer()} or + * {@link MBeanServerFactory#newMBeanServer()} methods and + * {@link System.getSecurityManager()} returns a non-null + * value. If a check fails, a {@link SecurityException} + * is thrown. Note than the class name used in the exception + * is that of the bean, and thus, as a result, an + * {@link InstanceNotFoundException} + * precludes these security checks, due to the class name + * that would be used in the exception being unavailable. + *

    + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface MBeanServer + extends MBeanServerConnection +{ + + /** + * Registers the supplied listener with the specified management + * bean. Notifications emitted by the management bean are forwarded + * to the listener via the server, which will convert any MBean + * references in the source to portable {@link ObjectName} + * instances. The notification is otherwise unchanged. + * + * @param name the name of the management bean with which the listener + * should be registered. + * @param listener the listener which will handle notifications from + * the bean. + * @param filter the filter to apply to incoming notifications, or + * null if no filtering should be applied. + * @param passback an object to be passed to the listener when a + * notification is emitted. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "addNotificationListener")}. + * @see #removeNotificationListener(ObjectName, NotificationListener) + * @see #removeNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void addNotificationListener(ObjectName name, NotificationListener listener, + NotificationFilter filter, Object passback) + throws InstanceNotFoundException; + + /** + *

    + * Registers the supplied listener with the specified management + * bean. Notifications emitted by the management bean are forwarded + * to the listener via the server, which will convert any MBean + * references in the source to portable {@link ObjectName} + * instances. The notification is otherwise unchanged. + *

    + *

    + * The listener that receives notifications will be the one that is + * registered with the given name at the time this method is called. + * Even if it later unregisters and ceases to use that name, it will + * still receive notifications. + *

    + * + * @param name the name of the management bean with which the listener + * should be registered. + * @param listener the name of the listener which will handle + * notifications from the bean. + * @param filter the filter to apply to incoming notifications, or + * null if no filtering should be applied. + * @param passback an object to be passed to the listener when a + * notification is emitted. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + * @throws RuntimeOperationsException if the bean associated with the given + * object name is not a + * {@link NotificationListener}. This + * exception wraps an + * {@link IllegalArgumentException}. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "addNotificationListener")}. + * @see #removeNotificationListener(ObjectName, NotificationListener) + * @see #removeNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void addNotificationListener(ObjectName name, ObjectName listener, + NotificationFilter filter, Object passback) + throws InstanceNotFoundException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the default constructor and registers it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + *

    + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, Object[], String[]) + * createMBean(className, name, (Object[]) null, + * (String[]) null)} with null parameters + * and signature. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + * @see #createMBean(String, ObjectName, Object[], String[]) + */ + ObjectInstance createMBean(String className, ObjectName name) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param params the parameters for the bean's constructor. + * @param sig the signature of the constructor to use. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + */ + ObjectInstance createMBean(String className, ObjectName name, + Object[] params, String[] sig) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the default constructor and registers it with the server + * under the supplied name. The class is loaded using the + * given class loader. If this argument is null, + * then the same class loader as was used to load the server + * is used. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + *

    + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, ObjectName, Object[], String) + * createMBean(className, name, loaderName, (Object[]) null, + * (String) null)} with null parameters + * and signature. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param loaderName the name of the class loader. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) + */ + ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * given class loader. If this argument is null, + * then the same class loader as was used to load the server + * is used. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param loaderName the name of the class loader. + * @param params the parameters for the bean's constructor. + * @param sig the signature of the constructor to use. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply the + * use of the instantiate + * and registerMBean methods. + */ + ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName, Object[] params, + String[] sig) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException; + + /** + * Deserializes a byte array using the class loader of the specified + * management bean as its context. + * + * @param name the name of the bean whose class loader should be used. + * @param data the byte array to be deserialized. + * @return the deserialized object stream. + * @deprecated {@link #getClassLoaderFor(ObjectName)} should be used + * to obtain the class loader of the bean, which can then + * be used to perform deserialization in the user's code. + * @throws InstanceNotFoundException if the specified bean is not + * registered with the server. + * @throws OperationsException if any I/O error is thrown by the + * deserialization process. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getClassLoaderFor") + */ + ObjectInputStream deserialize(ObjectName name, byte[] data) + throws InstanceNotFoundException, OperationsException; + + /** + * Deserializes a byte array using the same class loader for its context + * as was used to load the given class. This class loader is obtained by + * loading the specified class using the {@link + * javax.management.loading.ClassLoaderRepository Class Loader Repository} + * and then using the class loader of the resulting {@link Class} instance. + * + * @param name the name of the class which should be loaded to obtain the + * class loader. + * @param data the byte array to be deserialized. + * @return the deserialized object stream. + * @deprecated {@link #getClassLoaderRepository} should be used + * to obtain the class loading repository, which can then + * be used to obtain the {@link Class} instance and deserialize + * the array using its class loader. + * @throws OperationsException if any I/O error is thrown by the + * deserialization process. + * @throws ReflectionException if an error occurs in obtaining the + * {@link Class} instance. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, null, + * "getClassLoaderRepository") + */ + ObjectInputStream deserialize(String name, byte[] data) + throws OperationsException, ReflectionException; + + /** + * Deserializes a byte array using the same class loader for its context + * as was used to load the given class. The name of the class loader to + * be used is supplied, and may be null if the server's + * class loader should be used instead. + * + * @param name the name of the class which should be loaded to obtain the + * class loader. + * @param loader the name of the class loader to use, or null + * if the class loader of the server should be used. + * @param data the byte array to be deserialized. + * @return the deserialized object stream. + * @deprecated {@link #getClassLoader(ObjectName} can be used to obtain + * the named class loader and deserialize the array. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws OperationsException if any I/O error is thrown by the + * deserialization process. + * @throws ReflectionException if an error occurs in obtaining the + * {@link Class} instance. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, loader, + * "getClassLoader") + */ + ObjectInputStream deserialize(String name, ObjectName loader, byte[] data) + throws InstanceNotFoundException, ReflectionException, + OperationsException; + + /** + * Returns the value of the supplied attribute from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param name the name of the attribute to retrieve. + * @return the value of the attribute. + * @throws AttributeNotFoundException if the attribute could not be + * accessed from the bean. + * @throws MBeanException if the management bean's accessor throws + * an exception. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, name, bean, + * "getAttribute")}. + * @see DynamicMBean#getAttribute(String) + */ + Object getAttribute(ObjectName bean, String name) + throws MBeanException, AttributeNotFoundException, + InstanceNotFoundException, ReflectionException; + + /** + * Returns the values of the named attributes from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param names the names of the attributes to retrieve. + * @return the values of the attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, bean, + * "getAttribute")}. Additionally, + * for an attribute name, n, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, n, bean, + * "getAttribute")} or that attribute will + * not be included. + * + * @see DynamicMBean#getAttributes(String[]) + */ + AttributeList getAttributes(ObjectName bean, String[] names) + throws InstanceNotFoundException, ReflectionException; + + /** + * Returns the specified class loader. If the specified value is + * null, then the class loader of the server will be + * returned. If l is the requested class loader, + * and r is the actual class loader returned, then + * either l and r will be identical, + * or they will at least return the same class from + * {@link ClassLoader#loadClass(String)} for any given string. + * They may not be identical due to one or the other + * being wrapped in another class loader (e.g. for security). + * + * @param name the name of the class loader to return. + * @return the class loader. + * @throws InstanceNotFoundException if the class loader can not + * be found. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getClassLoader") + */ + ClassLoader getClassLoader(ObjectName name) + throws InstanceNotFoundException; + + /** + * Returns the class loader of the specified management bean. If + * l is the requested class loader, and r + * is the actual class loader returned, then either l + * and r will be identical, or they will at least + * return the same class from {@link ClassLoader#loadClass(String)} + * for any given string. They may not be identical due to one or + * the other being wrapped in another class loader (e.g. for + * security). + * + * @param name the name of the bean whose class loader should be + * returned. + * @return the class loader. + * @throws InstanceNotFoundException if the bean is not registered + * with the server. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getClassLoaderFor") + */ + ClassLoader getClassLoaderFor(ObjectName name) + throws InstanceNotFoundException; + + /** + * Returns the class loader repository used by this server. + * + * @return the class loader repository. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, null, + * "getClassLoaderRepository") + */ + ClassLoaderRepository getClassLoaderRepository(); + + /** + * Returns the default domain this server applies to beans that have + * no specified domain. + * + * @return the default domain. + */ + String getDefaultDomain(); + + /** + * Returns an array containing all the domains used by beans registered + * with this server. The ordering of the array is undefined. + * + * @return the list of domains. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, name, + * "getDomains")}. Additionally, + * for an domain, d, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, + * new ObjectName("d:x=x"), "getDomains")} + * or that domain will not be included. Note + * that "x=x" is an arbitrary key-value pair + * provided to satisfy the constructor. + * @see ObjectName#getDomain() + */ + String[] getDomains(); + + /** + * Returns the number of management beans registered with this server. + * This may be less than the real number if the caller's access is + * restricted. + * + * @return the number of registered beans. + */ + Integer getMBeanCount(); + + /** + * Returns information on the given management bean. + * + * @param name the name of the management bean. + * @return an instance of {@link MBeanInfo} for the bean. + * @throws IntrospectionException if an exception occurs in examining + * the bean. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurs when trying + * to invoke {@link DynamicMBean#getMBeanInfo()} + * on the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getMBeanInfo")}. + * @see DynamicMBean#getMBeanInfo() + */ + MBeanInfo getMBeanInfo(ObjectName name) + throws InstanceNotFoundException, IntrospectionException, + ReflectionException; + + /** + * Returns the {@link ObjectInstance} created for the specified + * management bean on registration. + * + * @param name the name of the bean. + * @return the corresponding {@link ObjectInstance} instance. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "getObjectInstance") + * @see #createMBean(String, ObjectName) + */ + ObjectInstance getObjectInstance(ObjectName name) + throws InstanceNotFoundException; + + /** + *

    + * Creates an instance of the specified class using the list of + * class loaders from the {@link + * javax.management.loading.ClassLoaderRepository Class Loader + * Repository}. The class should have a public constructor + * with no arguments. A reference to the new instance is returned, + * but the instance is not yet registered with the server. + *

    + *

    + * This method is equivalent to calling {@link + * #instantiate(String, Object[], String[]) + * instantiate(name, (Object[]) null, (String[]) null)} + * with null parameters and signature. + *

    + * + * @param name the name of the class of bean to be instantiated. + * @return an instance of the given class. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + * @see #instantiate(String, Object[], String[]) + */ + Object instantiate(String name) + throws ReflectionException, MBeanException; + + /** + * Creates an instance of the specified class using the list of + * class loaders from the {@link + * javax.management.loading.ClassLoaderRepository Class Loader + * Repository}. The class should have a public constructor + * matching the supplied signature. A reference to the new + * instance is returned, but the instance is not yet + * registered with the server. + * + * @param name the name of the class of bean to be instantiated. + * @param params the parameters for the constructor. + * @param sig the signature of the constructor. + * @return an instance of the given class. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + */ + Object instantiate(String name, Object[] params, String[] sig) + throws ReflectionException, MBeanException; + + /** + *

    + * Creates an instance of the specified class using the supplied + * class loader. If the class loader given is null, + * then the class loader of the server will be used. The class + * should have a public constructor with no arguments. A reference + * to the new instance is returned, but the instance is not yet + * registered with the server. + *

    + *

    + * This method is equivalent to calling {@link + * #instantiate(String, ObjectName, Object[], String[]) + * instantiate(name, loaderName, (Object[]) null, + * (String[]) null)} with null parameters + * and signature. + *

    + * + * @param name the name of the class of bean to be instantiated. + * @param loaderName the name of the class loader to use. + * @return an instance of the given class. + * @throws InstanceNotFoundException if the class loader is not + * registered with the server. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + * @see #instantiate(String, Object[], String[]) + */ + Object instantiate(String name, ObjectName loaderName) + throws InstanceNotFoundException, ReflectionException, + MBeanException; + + /** + * Creates an instance of the specified class using the supplied + * class loader. If the class loader given is null, + * then the class loader of the server will be used. The class + * should have a public constructor matching the supplied + * signature. A reference to the new instance is returned, + * but the instance is not yet registered with the server. + * + * @param name the name of the class of bean to be instantiated. + * @param loaderName the name of the class loader to use. + * @param params the parameters for the constructor. + * @param sig the signature of the constructor. + * @return an instance of the given class. + * @throws InstanceNotFoundException if the class loader is not + * registered with the server. + * @throws ReflectionException if an exception is thrown during + * loading the class or calling the + * constructor. + * @throws MBeanException if the constructor throws an exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, null, + * "instantiate")}. + */ + Object instantiate(String name, ObjectName loaderName, + Object[] params, String[] sig) + throws InstanceNotFoundException, ReflectionException, + MBeanException; + + /** + * Invokes the supplied operation on the specified management + * bean. The class objects specified in the signature are loaded + * using the same class loader as was used for the management bean. + * + * @param bean the management bean whose operation should be invoked. + * @param name the name of the operation to invoke. + * @param params the parameters of the operation. + * @param sig the signature of the operation. + * @return the return value of the method. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanException if the method invoked throws an exception. + * @throws ReflectionException if an exception is thrown in invoking the + * method. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, name, bean, + * "invoke")}. + * @see DynamicMBean#invoke(String, Object[], String[]) + */ + Object invoke(ObjectName bean, String name, Object[] params, String[] sig) + throws InstanceNotFoundException, MBeanException, + ReflectionException; + + /** + *

    + * Returns true if the specified management bean is an instance + * of the supplied class. + *

    + *

    + * A bean, B, is an instance of a class, C, if either of the following + * conditions holds: + *

    + *
      + *
    • The class name in B's {@link MBeanInfo} is equal to the supplied + * name.
    • + *
    • Both the class of B and C were loaded by the same class loader, + * and B is assignable to C.
    • + *
    + * + * @param name the name of the management bean. + * @param className the name of the class to test if name is + * an instance of. + * @return true if either B is directly an instance of the named class, + * or B is assignable to the class, given that both it and B's + * current class were loaded using the same class loader. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "isInstanceOf") + */ + boolean isInstanceOf(ObjectName name, String className) + throws InstanceNotFoundException; + + /** + * Returns true if the specified management bean is registered with + * the server. + * + * @param name the name of the management bean. + * @return true if the bean is registered. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean name. + */ + boolean isRegistered(ObjectName name); + + /** + *

    + * Returns a set of {@link ObjectInstance}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + *

    + *
      + *
    1. Pattern matching is performed using the supplied + * {@link ObjectName}.
    2. + *
    3. The supplied query expression is applied.
    4. + *
    + *

    + * If both the object name and the query expression are null, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + *

    + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name. + * @return a set of {@link ObjectInstance}s matching the filtered beans. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, name, + * "queryMBeans")}. Additionally, + * for an bean, b, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, b, name, + * "queryMBeans")} or that bean will + * not be included. Such an exception may also + * arise from the execution of the query, in which + * case that particular bean will again be excluded. + */ + Set queryMBeans(ObjectName name, QueryExp query); + + /** + *

    + * Returns a set of {@link ObjectName}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + *

    + *
      + *
    1. Pattern matching is performed using the supplied + * {@link ObjectName}.
    2. + *
    3. The supplied query expression is applied.
    4. + *
    + *

    + * If both the object name and the query expression are null, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + *

    + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name. + * @return a set of {@link ObjectName}s matching the filtered beans. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, name, + * "queryNames")}. Additionally, + * for an name, n, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, n, name, + * "queryNames")} or that name will + * not be included. Such an exception may also + * arise from the execution of the query, in which + * case that particular bean will again be excluded. + * Note that these permissions are implied if the + * queryMBeans permissions are available. + */ + Set queryNames(ObjectName name, QueryExp query); + + /** + * Registers the supplied instance with the server, using the specified + * {@link ObjectName}. If the name given is null, then + * the bean supplied is expected to implement the {@link MBeanRegistration} + * interface and provide the name via the + * {@link MBeanRegistration#preRegister preRegister} method + * of this interface. + * + * @param obj the object to register with the server. + * @param name the name under which to register the object, + * or null if the {@link MBeanRegistration} + * interface should be used. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null object. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "registerMBean")}. className + * here corresponds to the result of + * {@link MBeanInfo#getClassName()} for objects of + * this class. If this check succeeds, a check + * is also made on its + * {@link java.security.ProtectionDomain} to ensure + * it implies {@link MBeanTrustPermission(String) + * MBeanTrustPermission("register")}. + * The use of the {@link MBeanRegistration} interface + * results in another {@link MBeanPermission} check + * being made on the returned {@link ObjectName}. + */ + ObjectInstance registerMBean(Object obj, ObjectName name) + throws InstanceAlreadyExistsException, MBeanRegistrationException, + NotCompliantMBeanException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. This includes all + * combinations of filters and passback objects registered for + * this listener. For more specific removal of listeners, see + * {@link #removeNotificationListener(ObjectName, + * NotificationListener,NotificationFilter,Object)} + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the listener to remove. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) + */ + void removeNotificationListener(ObjectName name, + NotificationListener listener) + throws InstanceNotFoundException, ListenerNotFoundException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. Only the first instance with + * the supplied filter and passback object is removed. + * null is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(ObjectName, NotificationListener)}. + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the listener to remove. + * @param filter the filter of the listener to remove. + * @param passback the passback object of the listener to remove. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationEmitter#removeNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void removeNotificationListener(ObjectName name, + NotificationListener listener, + NotificationFilter filter, + Object passback) + throws InstanceNotFoundException, ListenerNotFoundException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. This includes all + * combinations of filters and passback objects registered for + * this listener. For more specific removal of listeners, see + * {@link #removeNotificationListener(ObjectName, + * ObjectName,NotificationFilter,Object)} + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the name of the listener to remove. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) + */ + void removeNotificationListener(ObjectName name, ObjectName listener) + throws InstanceNotFoundException, ListenerNotFoundException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. Only the first instance with + * the supplied filter and passback object is removed. + * null is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(ObjectName, ObjectName)}. + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the name of the listener to remove. + * @param filter the filter of the listener to remove. + * @param passback the passback object of the listener to remove. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "removeNotificationListener")}. + * @see #addNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationEmitter#removeNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void removeNotificationListener(ObjectName name, + ObjectName listener, + NotificationFilter filter, + Object passback) + throws InstanceNotFoundException, ListenerNotFoundException; + + /** + * Sets the value of the specified attribute of the supplied + * management bean. + * + * @param name the name of the management bean. + * @param attribute the attribute to set. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws AttributeNotFoundException if the attribute does not + * correspond to an attribute + * of the bean. + * @throws InvalidAttributeValueException if the value is invalid + * for this particular + * attribute of the bean. + * @throws MBeanException if setting the attribute causes + * the bean to throw an exception (which + * becomes the cause of this exception). + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, name, bean, + * "setAttribute")}. + * @see #getAttribute(ObjectName, String) + * @see DynamicMBean#setAttribute(Attribute) + */ + void setAttribute(ObjectName name, Attribute attribute) + throws InstanceNotFoundException, AttributeNotFoundException, + InvalidAttributeValueException, MBeanException, + ReflectionException; + + /** + * Sets the value of each of the specified attributes + * of the supplied management bean to that specified by + * the {@link Attribute} object. The returned list contains + * the attributes that were set and their new values. + * + * @param name the name of the management bean. + * @param attributes the attributes to set. + * @return a list of the changed attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * list. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, bean, + * "setAttribute")}. Additionally, + * for an attribute name, n, the + * caller's permission must imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, n, bean, + * "setAttribute")} or that attribute will + * not be included. + * @see #getAttributes(ObjectName, String[]) + * @see DynamicMBean#setAttributes(AttributeList) + */ + AttributeList setAttributes(ObjectName name, AttributeList attributes) + throws InstanceNotFoundException, ReflectionException; + + /** + * Unregisters the specified management bean. Following this operation, + * the bean instance is no longer accessible from the server via this + * name. Prior to unregistering the bean, the + * {@link MBeanRegistration#preDeregister()} method will be called if + * the bean implements the {@link MBeanRegistration} interface. + * + * @param name the name of the management bean. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preDeregister + * method. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean name or a + * request being made to unregister the + * {@link MBeanServerDelegate} bean. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(className, null, name, + * "unregisterMBean")}. + */ + void unregisterMBean(ObjectName name) + throws InstanceNotFoundException, MBeanRegistrationException; + +} diff --git a/libjava/classpath/javax/management/MBeanServerBuilder.java b/libjava/classpath/javax/management/MBeanServerBuilder.java new file mode 100644 index 00000000000..4e280682900 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServerBuilder.java @@ -0,0 +1,102 @@ +/* MBeanServerBuilder.java -- Creates a default management server. + 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 javax.management; + +import gnu.javax.management.Server; + +/** + * Constructs a default implementation of an {@link MBeanServer}. + * The {@link MBeanServerFactory} allows custom implementations of + * {@link MBeanServer} to be used by providing subclasses of this. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MBeanServerBuilder +{ + + /** + * Constructs a new {@link MBeanServerBuilder}. + */ + public MBeanServerBuilder() + { + } + + /** + *

    + * Creates a new {@link MBeanServer} implementation with the specified + * default domain, delegate and outer server. The latter is the server + * passed to the {@link MBeanRegistration} interface of management beans, + * allowing an {@link MBeanServer} implementation to wrap another in order + * to provide additional checks, etc. If this value is null, + * this is passed to beans instead. + *

    + *

    + * The {@link MBeanServerFactory} calls this method after having first + * created a delegate using the {@link #newMBeanServerDelegate()} method. + * However, the delegate used in the call to this method may not be the + * same as that returned by {@link #newMBeanServerDelegate()} as the factory + * can optionally wrap the delegate before calling this method. + *

    + * + * @param defaultDomain the default domain used by the new server. + * @param outer the {@link MBeanServer} passed to the {@link MBeanRegistration} + * interface of management beans. + * @param delegate the delegate bean associated with the server, which must + * be registered as a management bean by the server. + * @return a new instance of a server implementation. + */ + public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, + MBeanServerDelegate delegate) + { + return new Server(defaultDomain, outer, delegate); + } + + /** + * Creates a new {@link MBeanServerDelegate}, which will be used by + * a management server. The returned delegate may either be used directly + * by the server, or may be further wrapped to add additional checks. + * + * @return a new instance of {@link MBeanServerDelegate}. + */ + public MBeanServerDelegate newMBeanServerDelegate() + { + return new MBeanServerDelegate(); + } + +} diff --git a/libjava/classpath/javax/management/MBeanServerConnection.java b/libjava/classpath/javax/management/MBeanServerConnection.java new file mode 100644 index 00000000000..dff03e8c0d4 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServerConnection.java @@ -0,0 +1,768 @@ +/* MBeanServerConnection.java -- Represents a connection to a management server. + 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 javax.management; + +import java.io.IOException; + +import java.util.Set; + +/** + * This interface represents a communication mechanism which may + * be used to access an MBean server, whether this be local or + * remote. The {@link MBeanServer} interface extends this with + * additional methods that apply only to local servers. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface MBeanServerConnection +{ + + /** + * Registers the supplied listener with the specified management + * bean. Notifications emitted by the management bean are forwarded + * to the listener via the server, which will convert any MBean + * references in the source to portable {@link ObjectName} + * instances. The notification is otherwise unchanged. + * + * @param name the name of the management bean with which the listener + * should be registered. + * @param listener the listener which will handle notifications from + * the bean. + * @param filter the filter to apply to incoming notifications, or + * null if no filtering should be applied. + * @param passback an object to be passed to the listener when a + * notification is emitted. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #removeNotificationListener(ObjectName, NotificationListener) + * @see #removeNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void addNotificationListener(ObjectName name, NotificationListener listener, + NotificationFilter filter, Object passback) + throws InstanceNotFoundException, IOException; + + /** + *

    + * Registers the supplied listener with the specified management + * bean. Notifications emitted by the management bean are forwarded + * to the listener via the server, which will convert any MBean + * references in the source to portable {@link ObjectName} + * instances. The notification is otherwise unchanged. + *

    + *

    + * The listener that receives notifications will be the one that is + * registered with the given name at the time this method is called. + * Even if it later unregisters and ceases to use that name, it will + * still receive notifications. + *

    + * + * @param name the name of the management bean with which the listener + * should be registered. + * @param listener the name of the listener which will handle + * notifications from the bean. + * @param filter the filter to apply to incoming notifications, or + * null if no filtering should be applied. + * @param passback an object to be passed to the listener when a + * notification is emitted. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + * @throws RuntimeOperationsException if the bean associated with the given + * object name is not a + * {@link NotificationListener}. This + * exception wraps an + * {@link IllegalArgumentException}. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #removeNotificationListener(ObjectName, NotificationListener) + * @see #removeNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void addNotificationListener(ObjectName name, ObjectName listener, + NotificationFilter filter, Object passback) + throws InstanceNotFoundException, RuntimeOperationsException, IOException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the default constructor and registers it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + *

    + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, Object[], String[]) + * createMBean(className, name, (Object[]) null, + * (String[]) null)} with null parameters + * and signature. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #createMBean(String, ObjectName, Object[], String[]) + */ + ObjectInstance createMBean(String className, ObjectName name) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, IOException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param params the parameters for the bean's constructor. + * @param sig the signature of the constructor to use. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + ObjectInstance createMBean(String className, ObjectName name, + Object[] params, String[] sig) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, IOException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the default constructor and registers it with the server + * under the supplied name. The class is loaded using the + * given class loader. If this argument is null, + * then the same class loader as was used to load the server + * is used. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + *

    + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, ObjectName, Object[], String) + * createMBean(className, name, loaderName, (Object[]) null, + * (String) null)} with null parameters + * and signature. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param loaderName the name of the class loader. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #createMBean(String, ObjectName, ObjectName, Object[], String[]) + */ + ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException, + IOException; + + /** + *

    + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * given class loader. If this argument is null, + * then the same class loader as was used to load the server + * is used. + *

    + *

    + * If the name supplied is null, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + *

    + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. + * @param loaderName the name of the class loader. + * @param params the parameters for the bean's constructor. + * @param sig the signature of the constructor to use. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null class name or object + * name or if the object name is a pattern. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName, Object[] params, + String[] sig) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException, + IOException; + + /** + * Returns the value of the supplied attribute from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param name the name of the attribute to retrieve. + * @return the value of the attribute. + * @throws AttributeNotFoundException if the attribute could not be + * accessed from the bean. + * @throws MBeanException if the management bean's accessor throws + * an exception. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#getAttribute(String) + */ + Object getAttribute(ObjectName bean, String name) + throws MBeanException, AttributeNotFoundException, + InstanceNotFoundException, ReflectionException, + IOException; + + /** + * Returns the values of the named attributes from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param names the names of the attributes to retrieve. + * @return the values of the attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#getAttributes(String[]) + */ + AttributeList getAttributes(ObjectName bean, String[] names) + throws InstanceNotFoundException, ReflectionException, + IOException; + + /** + * Returns the default domain this server applies to beans that have + * no specified domain. + * + * @return the default domain. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + String getDefaultDomain() + throws IOException; + + /** + * Returns an array containing all the domains used by beans registered + * with this server. The ordering of the array is undefined. + * + * @return the list of domains. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see ObjectName#getDomain() + */ + String[] getDomains() + throws IOException; + + /** + * Returns the number of management beans registered with this server. + * + * @return the number of registered beans. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + Integer getMBeanCount() + throws IOException; + + /** + * Returns information on the given management bean. + * + * @param name the name of the management bean. + * @return an instance of {@link MBeanInfo} for the bean. + * @throws IntrospectionException if an exception occurs in examining + * the bean. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurs when trying + * to invoke {@link DynamicMBean#getMBeanInfo()} + * on the bean. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#getMBeanInfo() + */ + MBeanInfo getMBeanInfo(ObjectName name) + throws InstanceNotFoundException, IntrospectionException, + ReflectionException, IOException; + + /** + * Returns the {@link ObjectInstance} created for the specified + * management bean on registration. + * + * @param name the name of the bean. + * @return the corresponding {@link ObjectInstance} instance. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #createMBean(String, ObjectName) + */ + ObjectInstance getObjectInstance(ObjectName name) + throws InstanceNotFoundException, IOException; + + /** + * Invokes the supplied operation on the specified management + * bean. The class objects specified in the signature are loaded + * using the same class loader as was used for the management bean. + * + * @param bean the management bean whose operation should be invoked. + * @param name the name of the operation to invoke. + * @param params the parameters of the operation. + * @param sig the signature of the operation. + * @return the return value of the method. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanException if the method invoked throws an exception. + * @throws ReflectionException if an exception is thrown in invoking the + * method. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#invoke(String, Object[], String[]) + */ + Object invoke(ObjectName bean, String name, Object[] params, String[] sig) + throws InstanceNotFoundException, MBeanException, + ReflectionException, IOException; + + /** + *

    + * Returns true if the specified management bean is an instance + * of the supplied class. + *

    + *

    + * A bean, B, is an instance of a class, C, if either of the following + * conditions holds: + *

    + *
      + *
    • The class name in B's {@link MBeanInfo} is equal to the supplied + * name.
    • + *
    • Both the class of B and C were loaded by the same class loader, + * and B is assignable to C.
    • + *
    + * + * @param name the name of the management bean. + * @param className the name of the class to test if name is + * an instance of. + * @return true if either B is directly an instance of the named class, + * or B is assignable to the class, given that both it and B's + * current class were loaded using the same class loader. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + boolean isInstanceOf(ObjectName name, String className) + throws InstanceNotFoundException, IOException; + + /** + * Returns true if the specified management bean is registered with + * the server. + * + * @param name the name of the management bean. + * @return true if the bean is registered. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean name. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + boolean isRegistered(ObjectName name) + throws IOException; + + /** + *

    + * Returns a set of {@link ObjectInstance}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + *

    + *
      + *
    1. Pattern matching is performed using the supplied + * {@link ObjectName}.
    2. + *
    3. The supplied query expression is applied.
    4. + *
    + *

    + * If both the object name and the query expression are null, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + *

    + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name. + * @return a set of {@link ObjectInstance}s matching the filtered beans. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + Set queryMBeans(ObjectName name, QueryExp query) + throws IOException; + + /** + *

    + * Returns a set of {@link ObjectName}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + *

    + *
      + *
    1. Pattern matching is performed using the supplied + * {@link ObjectName}.
    2. + *
    3. The supplied query expression is applied.
    4. + *
    + *

    + * If both the object name and the query expression are null, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + *

    + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name. + * @return a set of {@link ObjectName}s matching the filtered beans. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + Set queryNames(ObjectName name, QueryExp query) + throws IOException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. This includes all + * combinations of filters and passback objects registered for + * this listener. For more specific removal of listeners, see + * {@link #removeNotificationListener(ObjectName, + * NotificationListener,NotificationFilter,Object)} + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the listener to remove. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) + */ + void removeNotificationListener(ObjectName name, + NotificationListener listener) + throws InstanceNotFoundException, ListenerNotFoundException, + IOException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. Only the first instance with + * the supplied filter and passback object is removed. + * null is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(ObjectName, NotificationListener)}. + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the listener to remove. + * @param filter the filter of the listener to remove. + * @param passback the passback object of the listener to remove. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #addNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationEmitter#removeNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void removeNotificationListener(ObjectName name, + NotificationListener listener, + NotificationFilter filter, + Object passback) + throws InstanceNotFoundException, ListenerNotFoundException, + IOException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. This includes all + * combinations of filters and passback objects registered for + * this listener. For more specific removal of listeners, see + * {@link #removeNotificationListener(ObjectName, + * ObjectName,NotificationFilter,Object)} + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the name of the listener to remove. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) + */ + void removeNotificationListener(ObjectName name, ObjectName listener) + throws InstanceNotFoundException, ListenerNotFoundException, + IOException; + + /** + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. Only the first instance with + * the supplied filter and passback object is removed. + * null is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(ObjectName, ObjectName)}. + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the name of the listener to remove. + * @param filter the filter of the listener to remove. + * @param passback the passback object of the listener to remove. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #addNotificationListener(ObjectName, NotificationListener, + * NotificationFilter, Object) + * @see NotificationEmitter#removeNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void removeNotificationListener(ObjectName name, + ObjectName listener, + NotificationFilter filter, + Object passback) + throws InstanceNotFoundException, ListenerNotFoundException, + IOException; + + /** + * Sets the value of the specified attribute of the supplied + * management bean. + * + * @param name the name of the management bean. + * @param attribute the attribute to set. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws AttributeNotFoundException if the attribute does not + * correspond to an attribute + * of the bean. + * @throws InvalidAttributeValueException if the value is invalid + * for this particular + * attribute of the bean. + * @throws MBeanException if setting the attribute causes + * the bean to throw an exception (which + * becomes the cause of this exception). + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * name. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #getAttribute(ObjectName, String) + * @see DynamicMBean#setAttribute(Attribute) + */ + void setAttribute(ObjectName name, Attribute attribute) + throws InstanceNotFoundException, AttributeNotFoundException, + InvalidAttributeValueException, MBeanException, + ReflectionException, IOException; + + /** + * Sets the value of each of the specified attributes + * of the supplied management bean to that specified by + * the {@link Attribute} object. The returned list contains + * the attributes that were set and their new values. + * + * @param name the name of the management bean. + * @param attributes the attributes to set. + * @return a list of the changed attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean or attribute + * list. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #getAttributes(ObjectName, String[]) + * @see DynamicMBean#setAttributes(AttributeList) + */ + AttributeList setAttributes(ObjectName name, AttributeList attributes) + throws InstanceNotFoundException, ReflectionException, + IOException; + + /** + * Unregisters the specified management bean. Following this operation, + * the bean instance is no longer accessible from the server via this + * name. Prior to unregistering the bean, the + * {@link MBeanRegistration#preDeregister()} method will be called if + * the bean implements the {@link MBeanRegistration} interface. + * + * @param name the name of the management bean. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preDeregister + * method. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * null bean name or a + * request being made to unregister the + * {@link MBeanServerDelegate} bean. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + void unregisterMBean(ObjectName name) + throws InstanceNotFoundException, MBeanRegistrationException, + IOException; + +} diff --git a/libjava/classpath/javax/management/MBeanServerDelegate.java b/libjava/classpath/javax/management/MBeanServerDelegate.java new file mode 100644 index 00000000000..bf3f5f89420 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServerDelegate.java @@ -0,0 +1,308 @@ +/* MBeanServerDelegate.java -- The management server delegate. + 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 javax.management; + +import gnu.classpath.ListenerData; +import gnu.classpath.SystemProperties; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; + +/** + * Provides an implementation of a delegate bean, which is associated + * with a management server. The delegate bean is responsible + * for providing metadata about the server and handling the + * registration and deregistration notifications. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MBeanServerDelegate + implements MBeanServerDelegateMBean, NotificationEmitter +{ + + /** + * The identifier of the server associated with this delegate. + */ + private String id; + + /** + * The listeners registered with the delegate. + */ + private List listeners; + + /** + * The sequence identifier used by the delegate. + */ + private long seqNo; + + /** + * Default constructor which generates the id. + */ + public MBeanServerDelegate() + { + String hostName; + try + { + hostName = InetAddress.getLocalHost().getHostName(); + } + catch (UnknownHostException e) + { + hostName = "Unknown host"; + } + id = hostName + "_" + new Date().getTime(); + } + + /** + * Registers the specified listener as a new recipient of + * notifications from the delegate. If non-null, the filter + * argument will be used to select which notifications are + * delivered. The supplied object will also be passed to + * the recipient with each notification. This should not + * be modified by the broadcaster, but instead should be + * passed unmodified to the listener. + * + * @param listener the new listener, who will receive + * notifications from this broadcasting bean. + * @param filter a filter to determine which notifications are + * delivered to the listener, or null + * if no filtering is required. + * @param passback an object to be passed to the listener with + * each notification. + * @throws IllegalArgumentException if listener is + * null. + * @see #removeNotificationListener(NotificationListener) + */ + public void addNotificationListener(NotificationListener listener, + NotificationFilter filter, + Object passback) + throws IllegalArgumentException + { + if (listener == null) + throw new IllegalArgumentException("A null listener was supplied."); + if (listeners == null) + listeners = new ArrayList(); + listeners.add(new ListenerData(listener, filter, passback)); + } + + /** + * Returns the name of this Java Management eXtensions (JMX) implementation. + * + * @return the implementation name. + */ + public String getImplementationName() + { + return "GNU JMX"; + } + + /** + * Returns the vendor of this Java Management eXtensions (JMX) implementation. + * + * @return the implementation vendor. + */ + public String getImplementationVendor() + { + return "The GNU Classpath Project"; + } + + /** + * Returns the version of this Java Management eXtensions (JMX) implementation. + * + * @return the implementation version. + */ + public String getImplementationVersion() + { + return SystemProperties.getProperty("gnu.classpath.version"); + } + + /** + * Returns the unique identifier for this management server. + * + * @return the unique id of the server. + */ + public String getMBeanServerId() + { + return id; + } + + /** + * Returns an array describing the notifications this + * bean may send to its registered listeners. Ideally, this + * array should be complete, but in some cases, this may + * not be possible. However, be aware that some listeners + * may expect this to be so. + * + * @return the array of possible notifications. + */ + public MBeanNotificationInfo[] getNotificationInfo() + { + return new MBeanNotificationInfo[] + { + new MBeanNotificationInfo(new String[] + { + MBeanServerNotification.REGISTRATION_NOTIFICATION, + MBeanServerNotification.UNREGISTRATION_NOTIFICATION, + }, + MBeanServerNotification.class.getName(), + "Server registration notifications") + }; + } + + /** + * Returns the name of this Java Management eXtensions (JMX) specification. + * + * @return the specification name. + */ + public String getSpecificationName() + { + return "JMX"; + } + + + /** + * Returns the vendor of this Java Management eXtensions (JMX) specification. + * + * @return the specification vendor. + */ + public String getSpecificationVendor() + { + return "Sun Microsystems"; + } + + /** + * Returns the version of this Java Management eXtensions (JMX) specification. + * + * @return the specification version. + */ + public String getSpecificationVersion() + { + return "1.2"; + } + + /** + * Removes the specified listener from the list of recipients + * of notifications from this bean. This includes all combinations + * of filters and passback objects registered for this listener. + * For more specific removal of listeners, see + * {@link #removeNotificationListener(NotificationListener, + * NotificationFilter, java.lang.Object)} + * + * @param listener the listener to remove. + * @throws ListenerNotFoundException if the specified listener + * is not registered with this bean. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + */ + public void removeNotificationListener(NotificationListener listener) + throws ListenerNotFoundException + { + Iterator it = listeners.iterator(); + boolean foundOne = false; + while (it.hasNext()) + { + ListenerData data = (ListenerData) it.next(); + if (data.getListener() == listener) + { + it.remove(); + foundOne = true; + } + } + if (!foundOne) + throw new ListenerNotFoundException("The specified listener, " + listener + + "is not registered with this bean."); + } + + /** + * Removes the specified listener from the list of recipients + * of notifications from this delegate. Only the first instance with + * the supplied filter and passback object is removed. + * null is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(NotificationListener)}. + * + * @param listener the listener to remove. + * @param filter the filter of the listener to remove. + * @param passback the passback object of the listener to remove. + * @throws ListenerNotFoundException if the specified listener + * is not registered with this bean. + * @see #addNotificationListener(NotificationListener, NotificationFilter, + * java.lang.Object) + * @see #removeNotificationListener(NotificationListener) + */ + public void removeNotificationListener(NotificationListener listener, + NotificationFilter filter, + Object passback) + throws ListenerNotFoundException + { + if (!(listeners.remove(new ListenerData(listener, filter, passback)))) + { + throw new ListenerNotFoundException("The specified listener, " + listener + + " with filter " + filter + + "and passback " + passback + + ", is not registered with this bean."); + } + } + + /** + * Allows the server to use the delegate to send a notification. + * If the supplied notification has a sequence number <= 0, then + * it is replaced with the delegate's own sequence number. + * + * @param notification the notification to send. + */ + public void sendNotification(Notification notification) + { + if (notification.getSequenceNumber() <= 0) + notification.setSequenceNumber(++seqNo); + Iterator it = listeners.iterator(); + while (it.hasNext()) + { + ListenerData ldata = (ListenerData) it.next(); + NotificationFilter filter = ldata.getFilter(); + if (filter == null || filter.isNotificationEnabled(notification)) + ldata.getListener().handleNotification(notification, ldata.getPassback()); + } + } + +} diff --git a/libjava/classpath/javax/management/MBeanServerDelegateMBean.java b/libjava/classpath/javax/management/MBeanServerDelegateMBean.java new file mode 100644 index 00000000000..aa7b2730085 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServerDelegateMBean.java @@ -0,0 +1,101 @@ +/* MBeanServerDelegateMBean.java -- The interface of a management server delegate. + 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 javax.management; + +/** + * Defines the interface for the delegate bean associated + * with a management server. The delegate bean is responsible + * for providing metadata about the server and handling the + * registration and deregistration notifications. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface MBeanServerDelegateMBean +{ + + /** + * Returns the name of this Java Management eXtensions (JMX) implementation. + * + * @return the implementation name. + */ + String getImplementationName(); + + /** + * Returns the vendor of this Java Management eXtensions (JMX) implementation. + * + * @return the implementation vendor. + */ + String getImplementationVendor(); + + /** + * Returns the version of this Java Management eXtensions (JMX) implementation. + * + * @return the implementation version. + */ + String getImplementationVersion(); + + /** + * Returns the unique identifier for this management server. + * + * @return the unique id of the server. + */ + String getMBeanServerId(); + + /** + * Returns the name of this Java Management eXtensions (JMX) specification. + * + * @return the specification name. + */ + String getSpecificationName(); + + /** + * Returns the vendor of this Java Management eXtensions (JMX) specification. + * + * @return the specification vendor. + */ + String getSpecificationVendor(); + + /** + * Returns the version of this Java Management eXtensions (JMX) specification. + * + * @return the specification version. + */ + String getSpecificationVersion(); + +} diff --git a/libjava/classpath/javax/management/MBeanServerFactory.java b/libjava/classpath/javax/management/MBeanServerFactory.java new file mode 100644 index 00000000000..accbc56fc78 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServerFactory.java @@ -0,0 +1,413 @@ +/* MBeanServerFactory.java -- Manages server instances. + 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 javax.management; + +import gnu.classpath.SystemProperties; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import javax.management.loading.ClassLoaderRepository; + +/** + *

    + * Creates and maintains a set of {@link MBeanServer} instances. + * Server instances, as of JMX 1.2, are created using a subclass + * of {@link MBeanServerBuilder}. The exact class used is controlled + * by the property javax.management.builder.initial, + * and allows the instances created by {@link MBeanServerBuilder} + * to be wrapped, thus providing additional functionality. + *

    + *

    + * The property is used as follows: + *

    + *
      + *
    1. If the property has no value, then an instance of + * {@link MBeanServerBuilder} is used.
    2. + *
    3. If a value is given, then: + *
        + *
      1. The class is loaded using + * Thread.currentThread().getContextClassLoader(), or, + * if this is null, by Class.forName().
      2. + *
      3. Class.newInstance() is used to create an instance + * of the class. The class must be public and have a public empty + * constructor. If an exception is thrown, it is propogated as + * a {@link JMRuntimeException} and no new server instances may be + * created until the property is set to a valid value.
      4. + *
    4. + *
    5. The value is checked on each successive request for a server. + * If it differs from the class of the existing instance of + * {@link MBeanServerBuilder}, then the value is used to create + * a new instance.
    6. + *
    + */ +public class MBeanServerFactory +{ + + /** + * The last builder instance. + */ + private static MBeanServerBuilder builder; + + /** + * The map of registered servers (identifiers to servers). + */ + private static Map servers; + + /** + * Private constructor to prevent instance creation. + */ + private MBeanServerFactory() {} + + /** + * Returns a server implementation using the default domain name + * of "DefaultDomain". The default domain name is + * used when the domain name specified by the user is nullnull value. + * + * @return a new {@link MBeanServer} instance. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanServerPermission(String)}("createMBeanServer") + * @throws JMRuntimeException if the property + * javax.management.builder.initial + * exists but names a class which either can not be + * instantiated or provides an implementation that returns + * null from either + * {@link MBeanServerBuilder#newMBeanServerDelegate()} + * or {@link MBeanServerBuilder#newMBeanServer()} + * @throws ClassCastException if the property + * javax.management.builder.initial + * exists but names a class which is not a subclass + * of {@link MBeanServerBuilder}. + * @see #createMBeanServer(String) + */ + public static MBeanServer createMBeanServer() + { + return createMBeanServer(null); + } + + /** + * Returns a server implementation using the default domain name + * given, or "DefaultDomain" if this is null. + * The default domain name is used when the domain name specified by + * the user is nulljavax.management.builder.initial + * exists but names a class which either can not be + * instantiated or provides an implementation that returns + * null from either + * {@link MBeanServerBuilder#newMBeanServerDelegate()} + * or {@link MBeanServerBuilder#newMBeanServer()} + * @throws ClassCastException if the property + * javax.management.builder.initial + * exists but names a class which is not a subclass + * of {@link MBeanServerBuilder}. + */ + public static MBeanServer createMBeanServer(String domain) + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new MBeanServerPermission("createMBeanServer")); + MBeanServer server = createServer(domain); + if (servers == null) + servers = new HashMap(); + try + { + ObjectName dn = new + ObjectName("JMImplementation:type=MBeanServerDelegate"); + servers.put(server.getAttribute(dn, "MBeanServerId"), server); + } + catch (MalformedObjectNameException e) + { + throw (Error) + (new InternalError("Malformed delegate bean name.").initCause(e)); + } + catch (MBeanException e) + { + throw (Error) + (new InternalError("Exception in getMBeanServerId().").initCause(e)); + } + catch (AttributeNotFoundException e) + { + throw (Error) + (new InternalError("Could not find MBeanServerId attribute.").initCause(e)); + } + catch (InstanceNotFoundException e) + { + throw (Error) + (new InternalError("Could not find the delegate bean.").initCause(e)); + } + catch (ReflectionException e) + { + throw (Error) + (new InternalError("Could not call getMBeanServerId().").initCause(e)); + } + return server; + } + + /** + * Returns the specified server, or, if id is null, + * a list of all registered servers. A registered server is one that + * was created using {@link #createMBeanServer()} or + * {@link #createMBeanServer(String)} and has not yet been released + * using {@link releaseMBeanServer(MBeanServer)}. + * + * @param id the id of the server to retrieve, or null + * to return all servers. + * @return a list of {@link MBeanServer}s. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanServerPermission(String)}("findMBeanServer") + */ + public static ArrayList findMBeanServer(String id) + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new MBeanServerPermission("findMBeanServer")); + if (id == null) + return new ArrayList(servers.values()); + ArrayList list = new ArrayList(); + MBeanServer server = (MBeanServer) servers.get(id); + if (server != null) + list.add(servers.get(id)); + return list; + } + + /** + * Returns the class loader repository used by the specified server. + * This is equivalent to calling {@link MBeanServer#getClassLoaderRepository()} + * on the given server. + * + * @param server the server whose class loader repository should be + * retrieved. + * @throws NullPointerException if server is null. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanPermission(String,String,ObjectName,String) + * MBeanPermission(null, null, null, + * "getClassLoaderRepository") + */ + public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server) + { + return server.getClassLoaderRepository(); + } + + /** + * Returns a server implementation using the default domain name + * of "DefaultDomain". The default domain name is + * used when the domain name specified by the user is nullnull value. + * + * @return a new {@link MBeanServer} instance. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanServerPermission(String)}("newMBeanServer") + * @throws JMRuntimeException if the property + * javax.management.builder.initial + * exists but names a class which either can not be + * instantiated or provides an implementation that returns + * null from either + * {@link MBeanServerBuilder#newMBeanServerDelegate()} + * or {@link MBeanServerBuilder#newMBeanServer()} + * @throws ClassCastException if the property + * javax.management.builder.initial + * exists but names a class which is not a subclass + * of {@link MBeanServerBuilder}. + * @see #newMBeanServer(String) + */ + public static MBeanServer newMBeanServer() + { + return newMBeanServer(null); + } + + /** + * Returns a server implementation using the default domain name + * given, or "DefaultDomain" if this is null. + * The default domain name is used when the domain name specified by + * the user is nulljavax.management.builder.initial + * exists but names a class which either can not be + * instantiated or provides an implementation that returns + * null from either + * {@link MBeanServerBuilder#newMBeanServerDelegate()} + * or {@link MBeanServerBuilder#newMBeanServer()} + * @throws ClassCastException if the property + * javax.management.builder.initial + * exists but names a class which is not a subclass + * of {@link MBeanServerBuilder}. + */ + public static MBeanServer newMBeanServer(String domain) + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new MBeanServerPermission("newMBeanServer")); + return createServer(domain); + } + + /** + * Common method to create a server for the {@link #createMBeanServer(String)} + * and {@link #newMBeanServer(String)} methods above. + * + * @param domain the default domain name of the server. + * @throws JMRuntimeException if the property + * javax.management.builder.initial + * exists but names a class which either can not be + * instantiated or provides an implementation that returns + * null from either + * {@link MBeanServerBuilder#newMBeanServerDelegate()} + * or {@link MBeanServerBuilder#newMBeanServer()} + * @throws ClassCastException if the property + * javax.management.builder.initial + * exists but names a class which is not a subclass + * of {@link MBeanServerBuilder}. + */ + private static MBeanServer createServer(String domain) + { + if (domain == null) + domain = "DefaultDomain"; + String builderClass = + SystemProperties.getProperty("javax.management.builder.initial"); + if (builderClass == null) + { + if (builder == null || + builder.getClass() != MBeanServerBuilder.class) + builder = new MBeanServerBuilder(); + } + else if (!(builderClass.equals(builder.getClass().getName()))) + { + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + if (cl == null) + cl = MBeanServerFactory.class.getClassLoader(); + try + { + Class bClass = Class.forName(builderClass, true, cl); + builder = (MBeanServerBuilder) bClass.newInstance(); + } + catch (ClassNotFoundException e) + { + throw (JMRuntimeException) (new JMRuntimeException("The builder class, " + + builderClass + + ", could not be found.")) + .initCause(e); + } + catch (InstantiationException e) + { + throw (JMRuntimeException) (new JMRuntimeException("The builder class, " + + builderClass + + ", could not be instantiated.")) + .initCause(e); + } + catch (IllegalAccessException e) + { + throw (JMRuntimeException) (new JMRuntimeException("The builder class, " + + builderClass + + ", could not be accessed.")) + .initCause(e); + } + } + MBeanServerDelegate delegate = builder.newMBeanServerDelegate(); + if (delegate == null) + throw new JMRuntimeException("A delegate could not be created."); + MBeanServer server = builder.newMBeanServer("DefaultDomain", null, delegate); + if (server == null) + throw new JMRuntimeException("A server could not be created."); + return server; + } + + /** + * Removes the reference to the specified server, thus allowing it to + * be garbage collected. + * + * @param server the server to remove. + * @throws IllegalArgumentException if a reference to the server is not + * held (i.e. it wasn't created by + * {@link #createMBeanServer(String)} + * or this method has already been called + * on it. + * @throws SecurityException if a security manager exists and the + * caller's permissions don't imply {@link + * MBeanServerPermission(String)}("releaseMBeanServer") + */ + public static void releaseMBeanServer(MBeanServer server) + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new MBeanServerPermission("releaseMBeanServer")); + Iterator i = servers.values().iterator(); + while (i.hasNext()) + { + MBeanServer s = (MBeanServer) i.next(); + if (server == s) + { + i.remove(); + return; + } + } + throw new IllegalArgumentException("The server given is not referenced."); + } + + +} diff --git a/libjava/classpath/javax/management/MBeanServerNotification.java b/libjava/classpath/javax/management/MBeanServerNotification.java new file mode 100644 index 00000000000..820fd61b354 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServerNotification.java @@ -0,0 +1,103 @@ +/* MBeanServerNotification.java -- The registration notification. + 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 javax.management; + +/** + * The notification emitted by a management server on a registration + * or de-registration event. Events are emitted via the delegate + * management bean of the server. Other objects can listen for + * such events by registering their interest with the delegate + * bean. The bean can be obtained via the {@link ObjectName} + * JMImplementation:type=MBeanServerDelegate. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MBeanServerNotification + extends Notification +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 2876477500475969677L; + + /** + * Notification type for the registration event. + */ + public static final String REGISTRATION_NOTIFICATION = "JMX.mbean.registered"; + + /** + * Notification type for the de-registration event. + */ + public static final String UNREGISTRATION_NOTIFICATION = "JMX.mbean.unregistered"; + + /** + * The name of the bean which forms the subject of this notification. + */ + private ObjectName objectName; + + /** + * Constructs a new {@link MBeanServerNotification} of the specified + * type for an event relating to the supplied bean, with the given + * source and sequence number. + * + * @param type the type of notification (registration or de-registration). + * @param source the source of the notification. + * @param seqNo the sequence number of this notification, used to order + * multiple such notifications. + * @param name the name of the bean concerned by this event. + */ + public MBeanServerNotification(String type, Object source, long seqNo, + ObjectName name) + { + super(type, source, seqNo); + objectName = name; + } + + /** + * Returns the name of the bean this notification concerns. + * + * @return the name of the bean. + */ + public ObjectName getMBeanName() + { + return objectName; + } + +} diff --git a/libjava/classpath/javax/management/MBeanServerPermission.java b/libjava/classpath/javax/management/MBeanServerPermission.java new file mode 100644 index 00000000000..e6227814443 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanServerPermission.java @@ -0,0 +1,470 @@ +/* MBeanServerPermission.java -- Permissions controlling server creation. + 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 javax.management; + +import java.security.BasicPermission; +import java.security.Permission; +import java.security.PermissionCollection; + +import java.util.Enumeration; +import java.util.NoSuchElementException; + +/** + *

    + * Represents the permissions required to perform + * operations provided by the {@link MBeanServerFactory}. + * As with all {@link java.security.Permission} objects, an + * instance of this class either represents a permission + * already held or one that is required to access a + * particular service. In the case of {@link MBeanServerPermission}s, + * implication checks are made using an instance of this class + * when a user requests an operation from the factory, and a + * {@link SecurityManager} is in place. + *

    + *

    + * The permission is defined by its name, which may be + * either a '*' (to allow all) or one or + * more of the following, separated by a ',': + *

    + *
      + *
    • createMBeanServer -- allows a registered + * instance of a server to be obtained from the factory.
    • + *
    • findMBeanServer -- allows all or one + * particular server instance to be retrieved from the factory.
    • + *
    • newMBeanServer -- allows an unregistered + * instance of a server to be obtained from the factory.
    • + *
    • releaseMBeanServer -- allows a reference to + * a server instance to be removed from the factory.
    • + *
    + *

    + * The names may be surrounded by arbitrary amounts of whitespace. + * createMBeanServer implies newMBeanServer. + *

    + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MBeanServerPermission + extends BasicPermission +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -5661980843569388590L; + + /** + *

    + * Constructs a new {@link MBeanServerPermission} with + * the given name. The name must not be null + * and must be equal to either "*" or a + * comma-separated list of valid permissions. The four + * valid constraints are: + *

    + *
      + *
    1. createMBeanServer
    2. + *
    3. findMBeanServer
    4. + *
    5. newMBeanServer
    6. + *
    7. releaseMBeanServer
    8. + *
    + *

    + * Calling this constructor is equivalent to calling + * MBeanPermission(name, null). + *

    + * + * @param name the name of this permission. + * @throws NullPointerException if name + * is null. + * @throws IllegalArgumentException if name + * is not either equal to + * "*" or forms + * a comma-separated list of + * valid constraints. + * @see #MBeanServerPermission(String,String) + */ + public MBeanServerPermission(String name) + { + this(name, null); + } + + /** + *

    + * Constructs a new {@link MBeanServerPermission} with + * the given name and actions. The actions are unused, + * and must be either null or the empty + * string. The name must not be null + * and must be equal to either "*" or a + * comma-separated list of valid permissions. The four + * valid constraints are: + *

    + *
      + *
    1. createMBeanServer
    2. + *
    3. findMBeanServer
    4. + *
    5. newMBeanServer
    6. + *
    7. releaseMBeanServer
    8. + *
    + *

    + * Calling this constructor is equivalent to calling + * MBeanPermission(name, null). + *

    + * + * @param name the name of this permission. + * @throws NullPointerException if name + * is null. + * @throws IllegalArgumentException if name + * is not either equal to + * "*" or forms + * a comma-separated list of + * valid constraints, or if + * actions is not + * null or the + * empty string. + * @see #MBeanServerPermission(String,String) + */ + public MBeanServerPermission(String name, String actions) + { + super(checkName(name), actions); + if (actions != null && actions.length() > 0) + throw new IllegalArgumentException("The supplied action list " + + "was not equal to null or the " + + "empty string."); + } + + /** + * Returns true if the given object is also an {@link MBeanServerPermission} + * with the same name. + * + * @param obj the object to compare with this one. + * @return true if the object is an {@link MBeanPermission} + * with the same name. + */ + public boolean equals(Object obj) + { + if (obj instanceof MBeanServerPermission) + { + MBeanServerPermission o = (MBeanServerPermission) obj; + return o.getName().equals(getName()); + } + return false; + } + + /** + * Returns a unique hash code for this permission. + * This is simply the hashcode of {@link BasicPermission#getName()}. + * + * @return the hashcode of this permission. + */ + public int hashCode() + { + return getName().hashCode(); + } + + /** + * Returns true if this {@link MBeanServerPermission} implies + * the given permission. This occurs if the given permission + * is also an {@link MBeanServerPermission} and its target names + * are a subset of the target names of this permission. Note that + * the name createMBeanServer implies + * newMBeanServer. + * + * @param p the permission to check for implication. + * @return true if this permission implies p. + */ + public boolean implies(Permission p) + { + if (p instanceof MBeanServerPermission) + { + if (getName().equals("*")) + return true; + MBeanServerPermission msp = (MBeanServerPermission) p; + String[] thisCaps = getName().split(","); + String[] mspCaps = msp.getName().split(","); + for (int a = 0; a < mspCaps.length; ++a) + { + boolean found = false; + String mc = mspCaps[a].trim(); + for (int b = 0; b < thisCaps.length; ++b) + { + String tc = thisCaps[b].trim(); + if (tc.equals(mc)) + found = true; + if (tc.equals("createMBeanServer") && + mc.equals("newMBeanServer")) + found = true; + } + if (!found) + return false; + } + return true; + } + return false; + } + + /** + * Returns a {@link PermissionCollection} which stores + * a series of {@link MBeanServerPermission}s as the union + * of their capabilities. + * + * @return a collection for {@link MBeanServerPermission}s. + */ + public PermissionCollection newPermissionCollection() + { + return new MBeanServerPermissionCollection(); + } + + /** + * A collection of {@link MBeanServerPermission}s, stored + * as a single permission with the union of the capabilities + * as its capabilities. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private class MBeanServerPermissionCollection + extends PermissionCollection + { + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -5661980843569388590L; + + /** + * The collected permission. This is null or + * the union of the permissions held by all the collected + * permissions. + */ + private MBeanServerPermission collectionPermission; + + /** + * Adds a new permission by unifying it with the existing + * collection permission. + * + * @param p the permission to add. + * @throws SecurityException if the collection is read only. + * @see #isReadOnly() + * @see #setReadOnly(boolean) + */ + public void add(Permission p) + { + if (isReadOnly()) + throw new SecurityException("This collection is read only."); + if (p instanceof MBeanServerPermission) + { + MBeanServerPermission msp = (MBeanServerPermission) p; + if (collectionPermission == null) + collectionPermission = msp; + else + { + String finalString = collectionPermission.getName(); + String[] cp = finalString.split(","); + String[] np = msp.getName().split(","); + int createms = finalString.indexOf("createMBeanServer"); + int newms = finalString.indexOf("newMBeanServer"); + for (int a = 0; a < np.length; ++a) + { + boolean found = false; + String nps = np[a].trim(); + for (int b = 0; b < cp.length; ++b) + { + String cps = cp[b].trim(); + if (cps.equals(nps)) + found = true; + if (np.equals("newMBeanServer") + && createms != -1) + found = true; + if (np.equals("createMBeanServer") + && newms != -1) + finalString.replace("newMBeanServer", + "createMBeanServer"); + } + if (!found) + finalString += "," + nps; + } + collectionPermission = + new MBeanServerPermission(finalString); + } + } + } + + /** + * Returns an enumeration over the single permission. + * + * @return an enumeration over the collection permission. + */ + public Enumeration elements() + { + return new + MBeanServerPermissionEnumeration(collectionPermission); + } + + /** + * Provides an enumeration over a comma-separated list + * of capabilities. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ + private class MBeanServerPermissionEnumeration + implements Enumeration + { + + /** + * The collected permission. + */ + private MBeanServerPermission p; + + /** + * True if we have returned the permission. + */ + private boolean done; + + /** + * Constructs a new {@link MBeanServerPermissionEnumeration} + * using the given collected permission. + * + * @param p the collected permission. + */ + public MBeanServerPermissionEnumeration(MBeanServerPermission p) + { + this.p = p; + done = false; + } + + /** + * Returns true if there are more capabilities to return. + * + * @return true if there are more capabilities available. + */ + public boolean hasMoreElements() + { + return !done; + } + + /** + * Returns the next capability. + * + * @return the next capability. + */ + public Object nextElement() + { + if (hasMoreElements()) + { + done = true; + return p; + } + else + throw new NoSuchElementException("No more elements are available."); + } + + } + + /** + * Returns true if the collected {@link MBeanServerPermission} + * implies the given permission. This occurs if the given permission + * is also an {@link MBeanServerPermission} and its target names + * are a subset of the target names of this permission. Note that + * the name createMBeanServer implies + * newMBeanServer. + * + * @param p the permission to check for implication. + * @return true if this permission implies p. + */ + public boolean implies(Permission p) + { + return collectionPermission.implies(p); + } + } + + /** + * Checks the name is valid, including removing + * the newMBeanServer permission when + * createMBeanServer is present. + * + * @param name the name to check. + * @throws NullPointerException if name + * is null. + * @throws IllegalArgumentException if name + * is not either equal to + * "*" or forms + * a comma-separated list of + * valid constraints. + */ + private static String checkName(String name) + { + if (!(name.equals("*"))) + { + String[] constraints = name.split(","); + name = ""; + boolean seenCreate = false; + boolean seenNew = false; + boolean start = true; + for (int a = 0; a < constraints.length; ++a) + { + String next = constraints[a].trim(); + if (!(next.equals("createMBeanServer") || + next.equals("findMBeanServer") || + next.equals("newMBeanServer") || + next.equals("releaseMBeanServer"))) + throw new IllegalArgumentException("An invalid constraint, " + + next + ", was specified."); + if (next.equals("newMBeanServer")) + seenNew = true; + else if (next.equals("createMBeanServer")) + seenCreate = true; + else + { + if (!start) + name += ","; + name += next; + start = false; + } + } + if (seenNew && !seenCreate) + name += (start ? "" : ",") + "newMBeanServer"; + else if (seenCreate) + name += (start ? "" : ",") + "createMBeanServer"; + } + return name; + } + +} + + + + diff --git a/libjava/classpath/javax/management/MBeanTrustPermission.java b/libjava/classpath/javax/management/MBeanTrustPermission.java new file mode 100644 index 00000000000..57d0e6889b0 --- /dev/null +++ b/libjava/classpath/javax/management/MBeanTrustPermission.java @@ -0,0 +1,105 @@ +/* MBeanTrustPermission.java -- Represents a trusted bean source. + 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 javax.management; + +import java.security.BasicPermission; + +/** + * Represents the permission held by a trusted source of + * management beans. For a bean to be added to a management + * server, the source of that bean must hold this permission. + * It has a target, but no actions. Valid values for the target + * are "register" and "*", the latter + * representing both the existing "register" target + * and any future targets. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MBeanTrustPermission + extends BasicPermission +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -2952178077029018140L; + + /** + * Constructs a {@link MBeanTrustPermission} with the given target. + * The target must be either "register" or "*". + * The actions of the permission default to null, + * so this is equivalent to calling + * MBeanTrustPermission(target, null). + * + * @param target the target of this permission. + * @throws NullPointerException if target is null. + * @throws IllegalArgumentException if the target is other than + * "register" or "*". + * @see #MBeanTrustPermission(String, String) + */ + public MBeanTrustPermission(String target) + { + this(target, null); + } + + /** + * Constructs a {@link MBeanTrustPermission} with the given target + * and actions. The target must be either "register" + * or "*". The actions must be either null + * or the empty string, "". + * + * @param target the target of this permission. + * @param actions the actions for this permission. + * @throws NullPointerException if target is null. + * @throws IllegalArgumentException if the target is other than + * "register" or "*" + * or actions is other than + * null or "". + */ + public MBeanTrustPermission(String target, String actions) + { + super(target, actions); + if ((!(target.equals("register"))) && + (!(target.equals("*")))) + throw new IllegalArgumentException("The target must be 'register' or '*'"); + if (actions != null && !(actions.length() == 0)) + throw new IllegalArgumentException("The actions must be null or ''"); + } + +} diff --git a/libjava/classpath/javax/management/MalformedObjectNameException.java b/libjava/classpath/javax/management/MalformedObjectNameException.java new file mode 100644 index 00000000000..e2f5774908c --- /dev/null +++ b/libjava/classpath/javax/management/MalformedObjectNameException.java @@ -0,0 +1,76 @@ +/* MalformedObjectNameException.java -- Thrown by invalid values. + 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 javax.management; + +/** + * Thrown when a string used as an {@link ObjectName} + * is invalid. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class MalformedObjectNameException + extends OperationsException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -572689714442915824L; + + /** + * Constructs a new MalformedObjectNameException. + */ + public MalformedObjectNameException() + { + super(); + } + + /** + * Constructs a new MalformedObjectNameException + * with the specified message. + * + * @param message the error message to give to the user. + */ + public MalformedObjectNameException(String message) + { + super(message); + } + +} + diff --git a/libjava/classpath/javax/management/ObjectInstance.java b/libjava/classpath/javax/management/ObjectInstance.java new file mode 100644 index 00000000000..df364cffc89 --- /dev/null +++ b/libjava/classpath/javax/management/ObjectInstance.java @@ -0,0 +1,147 @@ +/* ObjectInstance.java -- Represent the bean instance used by a server. + 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 javax.management; + +import java.io.Serializable; + +/** + * A simple class used to link a bean instance to its class name. + * If the bean is a {@link DynamicMBean}, the class name may be + * obtained using {@link MBeanInfo#getClassName()}. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class ObjectInstance + implements Serializable +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -4099952623687795850L; + + /** + * The name of the bean. + */ + private ObjectName name; + + /** + * The class name of the bean. + */ + private String className; + + /** + * Constructs a new {@link ObjectInstance} for the specified bean + * with the supplied class name. The class name should include + * the full package name. + * + * @param name the name of the bean. + * @param className the class name of the bean. + */ + public ObjectInstance(ObjectName name, String className) + { + this.name = name; + this.className = className; + } + + /** + * Constructs a new {@link ObjectInstance} for the specified bean + * with the supplied class name. The class name should include + * the full package name. + * + * @param name the name of the bean. + * @param className the class name of the bean. + * @throws MalformedObjectNameException if the name of the bean + * does not match the syntax + * of an {@link ObjectName}. + */ + public ObjectInstance(String name, String className) + throws MalformedObjectNameException + { + this(new ObjectName(name), className); + } + + /** + * Returns true if the supplied object is also an {@link ObjectInstance} + * with the same bean and class name. + * + * @param obj the object to compare. + * @return true if the the supplied object is equal to this. + */ + public boolean equals(Object obj) + { + if (!(obj instanceof ObjectInstance)) + return false; + ObjectInstance i = (ObjectInstance) obj; + return (i.getClassName().equals(className) && + i.getObjectName().equals(name)); + } + + /** + * Returns the class name of the bean. + * + * @return the class name. + */ + public String getClassName() + { + return className; + } + + /** + * Returns the name of the bean. + * + * @return the name of the bean. + */ + public ObjectName getObjectName() + { + return name; + } + + /** + * Returns a hash code for this instance. This is calculated as + * the sum of the hashcodes for the bean's name and the class name. + * + * @return the hash code of this instance. + */ + public int hashCode() + { + return name.hashCode() + className.hashCode(); + } + +} diff --git a/libjava/classpath/javax/management/ObjectName.java b/libjava/classpath/javax/management/ObjectName.java new file mode 100644 index 00000000000..0e6bf2fd9cf --- /dev/null +++ b/libjava/classpath/javax/management/ObjectName.java @@ -0,0 +1,775 @@ +/* ObjectName.java -- Represent the name of a bean, or a pattern for a name. + 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 javax.management; + +import java.io.Serializable; + +import java.util.Collections; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Map; +import java.util.TreeMap; + +/** + *

    + * An {@link ObjectName} instance represents the name of a management + * bean, or a pattern which may match the name of one or more + * management beans. Patterns are distinguished from names by the + * presence of the '?' and '*' characters (which match a single + * character and a series of zero or more characters, respectively). + *

    + *

    + * Each name begins with a domain element, which is terminated by + * a ':' character. The domain may be empty. If so, it will be + * replaced by the default domain of the bean server in certain + * contexts. The domain is a pattern, if it contains either '?' + * or '*'. To avoid collisions, it is usual to use reverse + * DNS names for the domain, as in Java package and property names. + *

    + *

    + * Following the ':' character is a series of properties. The list + * is separated by commas, and largely consists of unordered key-value + * pairs, separated by an equals sign ('='). At most one element may + * be an asterisk ('*'), which turns the {@link ObjectName} instance + * into a property pattern. In this situation, the pattern + * matches a name if the name contains at least those key-value pairs + * given and has the same domain. + *

    + *

    + * A key is a string of characters which doesn't include + * any of those used as delimiters or in patterns (':', '=', ',', '?' + * and '*'). Keys must be unique. + *

    + *

    + * A value may be quoted or unquoted. Unquoted + * values obey the same rules as given for keys above. Quoted values are + * surrounded by quotation marks ("), and use a backslash ('\') character + * to include quotes ('\"'), backslashes ('\\'), newlines ('\n'), and + * the pattern characters ('\?' and '\*'). The quotes and backslashes + * (after expansion) are considered part of the value. + *

    + *

    + * Spaces are maintained within the different parts of the name. Thus, + * 'domain: key1 = value1 ' has a key ' key1 ' with value + * ' value1 '. Newlines are disallowed, except where escaped in quoted + * values. + *

    + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class ObjectName + implements Serializable, QueryExp +{ + + /** + * The domain of the name. + */ + private String domain; + + /** + * The properties, as key-value pairs. + */ + private TreeMap properties; + + /** + * The properties as a string (stored for ordering). + */ + private String propertyListString; + + /** + * True if this object name is a property pattern. + */ + private boolean propertyPattern; + + /** + * The management server associated with this object name. + */ + private MBeanServer server; + + /** + * Constructs an {@link ObjectName} instance from the given string, + * which should be of the form + * <domain>:<properties><wild>. <domain> + * represents the domain section of the name. <properties> + * represents the key-value pairs, as returned by {@link + * #getKeyPropertyListString()}. <wild> is the optional + * asterisk present in the property list. If the string doesn't + * represent a property pattern, it will be empty. If it does, + * it will be either ',*' or '*', depending on whether other + * properties are present or not, respectively. + * + * @param name the string to use to construct this instance. + * @throws MalformedObjectNameException if the string is of the + * wrong format. + * @throws NullPointerException if name is + * null. + */ + public ObjectName(String name) + throws MalformedObjectNameException + { + int domainSep = name.indexOf(':'); + if (domainSep == -1) + throw new MalformedObjectNameException("No domain separator was found."); + domain = name.substring(0, domainSep); + String rest = name.substring(domainSep + 1); + if (rest.equals("*")) + propertyPattern = true; + else + { + if (rest.endsWith(",*")) + { + propertyPattern = true; + propertyListString = rest.substring(0, rest.length() - 2); + } + else + propertyListString = rest; + String[] pairs = propertyListString.split(","); + if (pairs.length == 0 && !isPattern()) + throw new MalformedObjectNameException("A name that is not a " + + "pattern must contain at " + + "least one key-value pair."); + properties = new TreeMap(); + for (int a = 0; a < pairs.length; ++a) + { + int sep = pairs[a].indexOf('='); + String key = pairs[a].substring(0, sep); + if (properties.containsKey(key)) + throw new MalformedObjectNameException("The same key occurs " + + "more than once."); + properties.put(key, pairs[a].substring(sep + 1)); + } + } + checkComponents(); + } + + /** + * Constructs an {@link ObjectName} instance using the given + * domain and the one specified property. + * + * @param domain the domain part of the object name. + * @param key the key of the property. + * @param value the value of the property. + * @throws MalformedObjectNameException the domain, key or value + * contains an illegal + * character or the value + * does not follow the quoting + * specifications. + * @throws NullPointerException if one of the parameters is + * null. + */ + public ObjectName(String domain, String key, String value) + throws MalformedObjectNameException + { + this.domain = domain; + properties = new TreeMap(); + properties.put(key, value); + checkComponents(); + } + + /** + * Constructs an {@link ObjectName} instance using the given + * domain and properties. + * + * @param domain the domain part of the object name. + * @param properties the key-value property pairs. + * @throws MalformedObjectNameException the domain, a key or a value + * contains an illegal + * character or a value + * does not follow the quoting + * specifications. + * @throws NullPointerException if one of the parameters is + * null. + */ + public ObjectName(String domain, Hashtable properties) + throws MalformedObjectNameException + { + this.domain = domain; + this.properties.putAll(properties); + checkComponents(); + } + + /** + * Checks the legality of the domain and the properties. + * + * @throws MalformedObjectNameException the domain, a key or a value + * contains an illegal + * character or a value + * does not follow the quoting + * specifications. + */ + private void checkComponents() + throws MalformedObjectNameException + { + if (domain.indexOf(':') != -1) + throw new MalformedObjectNameException("The domain includes a ':' " + + "character."); + if (domain.indexOf('\n') != -1) + throw new MalformedObjectNameException("The domain includes a newline " + + "character."); + char[] chars = new char[] { ':', ',', '*', '?', '=' }; + Iterator i = properties.entrySet().iterator(); + while (i.hasNext()) + { + Map.Entry entry = (Map.Entry) i.next(); + String key = (String) entry.getKey(); + for (int a = 0; a < chars.length; ++a) + if (key.indexOf(chars[a]) != -1) + throw new MalformedObjectNameException("A key contains a '" + + chars[a] + "' " + + "character."); + String value = (String) entry.getValue(); + int quote = value.indexOf('"'); + if (quote == 0) + { + try + { + unquote(value); + } + catch (IllegalArgumentException e) + { + throw new MalformedObjectNameException("The quoted value is " + + "invalid."); + } + } + else if (quote != -1) + throw new MalformedObjectNameException("A value contains " + + "a '\"' character."); + else + { + for (int a = 0; a < chars.length; ++a) + if (value.indexOf(chars[a]) != -1) + throw new MalformedObjectNameException("A value contains " + + "a '" + chars[a] + "' " + + "character."); + } + } + } + + /** + *

    + * Attempts to find a match between this name and the one supplied. + * The following criteria are used: + *

    + *
      + *
    • If the supplied name is a pattern, false is + * returned.
    • + *
    • If this name is a pattern, this method returns true + * if the supplied name matches the pattern.
    • + *
    • If this name is not a pattern, the result of + * equals(name) is returned. + *
    + * + * @param name the name to find a match with. + * @return true if the name either matches this pattern or is + * equivalent to this name under the criteria of + * {@link #equals(java.lang.Object)} + * @throws NullPointerException if name is null. + */ + public boolean apply(ObjectName name) + { + if (name.isPattern()) + return false; + if (isPattern()) + { + boolean domainMatch, propMatch; + if (isDomainPattern()) + { + String oDomain = name.getDomain(); + int oLength = oDomain.length(); + for (int a = 0; a < domain.length(); ++a) + { + char n = domain.charAt(a); + if (oLength == a && n != '*') + return false; + if (n == '?') + continue; + if (n == '*') + if ((a + 1) < domain.length()) + { + if (oLength == a) + return false; + char next; + do + { + next = domain.charAt(a + 1); + } while (next == '*'); + if (next == '?') + continue; + int pos = a; + while (oDomain.charAt(pos) != next) + { + ++pos; + if (pos == oLength) + return false; + } + } + if (n != oDomain.charAt(a)) + return false; + } + domainMatch = true; + } + else + domainMatch = domain.equals(name.getDomain()); + if (isPropertyPattern()) + { + Hashtable oProps = name.getKeyPropertyList(); + Iterator i = properties.entrySet().iterator(); + while (i.hasNext()) + { + Map.Entry entry = (Map.Entry) i.next(); + String key = (String) entry.getKey(); + if (!(oProps.containsKey(key))) + return false; + String val = (String) entry.getValue(); + if (!(val.equals(oProps.get(key)))) + return false; + } + propMatch = true; + } + else + propMatch = + getCanonicalKeyPropertyListString().equals + (name.getCanonicalKeyPropertyListString()); + return domainMatch && propMatch; + } + return equals(name); + } + + /** + * Compares the specified object with this one. The two + * are judged to be equivalent if the given object is an + * instance of {@link ObjectName} and has an equal canonical + * form (as returned by {@link #getCanonicalName()}). + * + * @param obj the object to compare with this. + * @return true if the object is also an {@link ObjectName} + * with an equivalent canonical form. + */ + public boolean equals(Object obj) + { + if (obj instanceof ObjectName) + { + ObjectName o = (ObjectName) obj; + return getCanonicalName().equals(o.getCanonicalName()); + } + return false; + } + + /** + * Returns the property list in canonical form. The keys + * are ordered using the lexicographic ordering used by + * {@link java.lang.String#compareTo(java.lang.Object)}. + * + * @return the property list, with the keys in lexicographic + * order. + */ + public String getCanonicalKeyPropertyListString() + { + StringBuilder builder = new StringBuilder(); + Iterator i = properties.entrySet().iterator(); + while (i.hasNext()) + { + Map.Entry entry = (Map.Entry) i.next(); + builder.append(entry.getKey() + "=" + entry.getValue()); + if (i.hasNext()) + builder.append(","); + } + return builder.toString(); + } + + /** + *

    + * Returns the name as a string in canonical form. More precisely, + * this returns a string of the format + * <domain>:<properties><wild>. <properties> + * is the same value as returned by + * {@link #getCanonicalKeyPropertyListString()}. <wild> + * is: + *

    + *
      + *
    • an empty string, if the object name is not a property pattern.
    • + *
    • '*' if <properties> is empty.
    • + *
    • ',*' if there is at least one key-value pair.
    • + *
    + * + * @return the canonical string form of the object name, as specified + * above. + */ + public String getCanonicalName() + { + return domain + ":" + + getCanonicalKeyPropertyListString() + + (isPropertyPattern() ? (properties.isEmpty() ? "*" : ",*") : ""); + } + + /** + * Returns the domain part of the object name. + * + * @return the domain. + */ + public String getDomain() + { + return domain; + } + + /** + * Returns an {@link ObjectName} instance that is substitutable for the + * one given. The instance returned may be a subclass of {@link ObjectName}, + * but is not guaranteed to be of the same type as the given name, if that + * should also turn out to be a subclass. The returned instance may or may + * not be equivalent to the one given. The purpose of this method is to provide + * an instance of {@link ObjectName} with a well-defined semantics, such as may + * be used in cases where the given name is not trustworthy. + * + * @param name the {@link ObjectName} to provide a substitute for. + * @return a substitute for the given name, which may or may not be a subclass + * of {@link ObjectName}. In either case, the returned object is + * guaranteed to have the semantics defined here. + * @throws NullPointerException if name is null. + */ + public static ObjectName getInstance(ObjectName name) + { + try + { + return new ObjectName(name.getCanonicalName()); + } + catch (MalformedObjectNameException e) + { + throw (InternalError) + (new InternalError("The canonical name of " + + "the given name is invalid.").initCause(e)); + } + } + + /** + * Returns an {@link ObjectName} instance for the specified name, represented + * as a {@link java.lang.String}. The instance returned may be a subclass of + * {@link ObjectName} and may or may not be equivalent to earlier instances + * returned by this method for the same string. + * + * @param name the {@link ObjectName} to provide an instance of. + * @return a instance for the given name, which may or may not be a subclass + * of {@link ObjectName}. + * @throws MalformedObjectNameException the domain, a key or a value + * contains an illegal + * character or a value + * does not follow the quoting + * specifications. + * @throws NullPointerException if name is null. + */ + public static ObjectName getInstance(String name) + throws MalformedObjectNameException + { + return new ObjectName(name); + } + + /** + * Returns an {@link ObjectName} instance for the specified name, represented + * as a series of {@link java.lang.String} objects for the domain and a single + * property, as a key-value pair. The instance returned may be a subclass of + * {@link ObjectName} and may or may not be equivalent to earlier instances + * returned by this method for the same parameters. + * + * @param domain the domain part of the object name. + * @param key the key of the property. + * @param value the value of the property. + * @return a instance for the given name, which may or may not be a subclass + * of {@link ObjectName}. + * @throws MalformedObjectNameException the domain, a key or a value + * contains an illegal + * character or a value + * does not follow the quoting + * specifications. + * @throws NullPointerException if name is null. + */ + public static ObjectName getInstance(String domain, String key, String value) + throws MalformedObjectNameException + { + return new ObjectName(domain, key, value); + } + + /** + * Returns an {@link ObjectName} instance for the specified name, represented + * as a domain {@link java.lang.String} and a table of properties. The + * instance returned may be a subclass of {@link ObjectName} and may or may + * not be equivalent to earlier instances returned by this method for the + * same string. + * + * @param domain the domain part of the object name. + * @param properties the key-value property pairs. + * @return a instance for the given name, which may or may not be a subclass + * of {@link ObjectName}. + * @throws MalformedObjectNameException the domain, a key or a value + * contains an illegal + * character or a value + * does not follow the quoting + * specifications. + * @throws NullPointerException if name is null. + */ + public static ObjectName getInstance(String domain, Hashtable properties) + throws MalformedObjectNameException + { + return new ObjectName(domain, properties); + } + + /** + * Returns the property value corresponding to the given key. + * + * @param key the key of the property to be obtained. + * @return the value of the specified property. + * @throws NullPointerException if key is null. + */ + public String getKeyProperty(String key) + { + if (key == null) + throw new NullPointerException("Null key given in request for a value."); + return (String) properties.get(key); + } + + /** + * Returns the properties in a {@link java.util.Hashtable}. The table + * contains each of the properties as keys mapped to their value. The + * returned table may be unmodifiable. If the case that the table is + * modifiable, changes made to it will not be reflected in the object + * name. + * + * @return a {@link java.util.Hashtable}, containing each of the object + * name's properties. + */ + public Hashtable getKeyPropertyList() + { + return (Hashtable) Collections.unmodifiableMap(new Hashtable(properties)); + } + + /** + * Returns a {@link java.lang.String} representation of the property + * list. If the object name was created using {@link + * ObjectName(String)}, then this string will contain the properties + * in the same order they were given in at creation. + * + * @return the property list. + */ + public String getKeyPropertyListString() + { + if (propertyListString != null) + return propertyListString; + return getCanonicalKeyPropertyListString(); + } + + /** + * Returns a hash code for this object name. This is calculated as the + * summation of the hash codes of the domain and the properties. + * + * @return a hash code for this object name. + */ + public int hashCode() + { + return domain.hashCode() + properties.hashCode(); + } + + /** + * Returns true if the domain of this object name is a pattern. + * This is the case if it contains one or more wildcard characters + * ('*' or '?'). + * + * @return true if the domain is a pattern. + */ + public boolean isDomainPattern() + { + return domain.contains("?") || domain.contains("*"); + } + + /** + * Returns true if this is an object name pattern. An object + * name pattern has a domain containing a wildcard character + * ('*' or '?') and/or a '*' in the list of properties. + * This method will return true if either {@link #isDomainPattern()} + * or {@link #isPropertyPattern()} does. + * + * @return true if this is an object name pattern. + */ + public boolean isPattern() + { + return isDomainPattern() || isPropertyPattern(); + } + + /** + * Returns true if this object name is a property pattern. This is + * the case if the list of properties contains an '*'. + * + * @return true if this is a property pattern. + */ + public boolean isPropertyPattern() + { + return propertyPattern; + } + + /** + *

    + * Returns a quoted version of the supplied string. The string may + * contain any character. The resulting quoted version is guaranteed + * to be usable as the value of a property, so this method provides + * a good way of ensuring that a value is legal. + *

    + *

    + * The string is transformed as follows: + *

    + *
      + *
    • The string is prefixed with an opening quote character, '"'. + *
    • For each character, s: + *
        + *
      • If s is a quote ('"'), it is replaced by a backslash + * followed by a quote.
      • + *
      • If s is a star ('*'), it is replaced by a backslash followed + * by a star.
      • + *
      • If s is a question mark ('?'), it is replaced by a backslash + * followed by a question mark.
      • + *
      • If s is a backslash ('\'), it is replaced by two backslashes.
      • + *
      • If s is a newline character, it is replaced by a backslash followed by + * a '\n'.
      • + *
      • Otherwise, s is used verbatim. + *
    • + *
    • The string is terminated with a closing quote character, '"'.
    • + *
    + * + * @param string the string to quote. + * @return a quoted version of the supplied string. + * @throws NullPointerException if string is null. + */ + public static String quote(String string) + { + StringBuilder builder = new StringBuilder('"'); + for (int a = 0; a < string.length(); ++a) + { + char s = string.charAt(a); + switch (s) + { + case '"': + builder.append("\\\""); + break; + case '*': + builder.append("\\*"); + break; + case '?': + builder.append("\\?"); + break; + case '\\': + builder.append("\\\\"); + break; + case '\n': + builder.append("\\\n"); + break; + default: + builder.append(s); + } + } + builder.append('"'); + return builder.toString(); + } + + /** + * Changes the {@link MBeanServer} on which this query is performed. + * + * @param server the new server to use. + */ + public void setMBeanServer(MBeanServer server) + { + this.server = server; + } + + /** + * Returns a textual representation of the object name. + * The format is unspecified, but it should be expected that + * two equivalent object names will return the same string + * from this method. + * + * @return a textual representation of the object name. + */ + public String toString() + { + return getClass().toString() + + "[domain = " + domain + + ",properties = " + properties + + ",propertyPattern = " + propertyPattern + + "]"; + } + + /** + * Unquotes the supplied string. The quotation marks are removed as + * are the backslashes preceding the escaped characters ('"', '?', + * '*', '\n', '\\'). A one-to-one mapping exists between quoted and + * unquoted values. As a result, a string s should be + * equal to unquote(quote(s)). + * + * @param q the quoted string to unquote. + * @return the unquoted string. + * @throws NullPointerException if q is null. + * @throws IllegalArgumentException if the string is not a valid + * quoted string i.e. it is not + * surrounded by quotation marks + * and/or characters are not properly + * escaped. + */ + public static String unquote(String q) + { + if (q.charAt(0) != '"') + throw new IllegalArgumentException("The string does " + + "not start with a quote."); + if (q.charAt(q.length() - 1) != '"') + throw new IllegalArgumentException("The string does " + + "not end with a quote."); + StringBuilder builder = new StringBuilder(); + for (int a = 1; a < (q.length() - 1); ++a) + { + char n = q.charAt(a); + if (n == '\\') + { + n = q.charAt(++a); + if (n != '"' && n != '?' && n != '*' && + n != '\n' && n != '\\') + throw new IllegalArgumentException("Illegal escaped character: " + + n); + } + builder.append(n); + } + + return builder.toString(); + } + +} diff --git a/libjava/classpath/javax/management/QueryExp.java b/libjava/classpath/javax/management/QueryExp.java new file mode 100644 index 00000000000..124228c784a --- /dev/null +++ b/libjava/classpath/javax/management/QueryExp.java @@ -0,0 +1,87 @@ +/* QueryExp.java -- Represents a query expression. + 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 javax.management; + +import java.io.Serializable; + +/** + * Applies the type of relational constraints seen in the + * where clauses of databases to an + * {@link ObjectName}. Instances of this class are usually + * returned by the static methods of the {@link Query} classes. + * If a custom implementation is required, it is better to + * extend the {@link QueryEval} class, rather than simply + * implementing this interface, in order to ensure that + * the {@link #setMBeanServer(MBeanServer)} method functions + * correctly. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface QueryExp + extends Serializable +{ + + /** + * Applies the query to the specified management bean. + * + * @param name the name of the management bean. + * @return true if the query was applied successfully. + * @throws BadStringOperationException if an invalid string + * operation is used by + * the query. + * @throws BadBinaryOpValueExpException if an invalid expression + * is used by the query. + * @throws BadAttributeValueExpException if an invalid attribute + * is used by the query. + * @throws InvalidApplicationException if the query is applied + * to the wrong type of bean. + */ + boolean apply(ObjectName name) + throws BadStringOperationException, BadBinaryOpValueExpException, + BadAttributeValueExpException, InvalidApplicationException; + + /** + * Changes the {@link MBeanServer} on which this query is performed. + * + * @param server the new server to use. + */ + void setMBeanServer(MBeanServer server); + +} + diff --git a/libjava/classpath/javax/management/RuntimeErrorException.java b/libjava/classpath/javax/management/RuntimeErrorException.java new file mode 100644 index 00000000000..811dc40f2fb --- /dev/null +++ b/libjava/classpath/javax/management/RuntimeErrorException.java @@ -0,0 +1,115 @@ +/* RuntimeErrorException.java -- A user-defined management error. + 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 javax.management; + +/** + * Represents an arbitrary error thrown by a management + * bean. When a management bean executes code that causes + * an error to be thrown, the resulting error is + * wrapped inside an {@link RuntimeErrorException}. Calling + * {@link getTargetError()} will return the wrapped + * exception. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class RuntimeErrorException + extends JMRuntimeException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 704338937753949796L; + + /** + * The target error. + * + * @serial the target error. + */ + private Error error; + + /** + * Constructs a new RuntimeErrorException wrapping + * the specified error. + * + * @param e the error to be wrapped. + */ + public RuntimeErrorException(Error e) + { + super(); + error = e; + } + + /** + * Constructs a new RuntimeErrorException wrapping + * the specified error and using the supplied message. + * + * @param e the error to be wrapped. + * @param message the error message to give to the user. + */ + public RuntimeErrorException(Error e, String message) + { + super(message); + error = e; + } + + /** + * Returns the true cause of this error, the wrapped + * error. + * + * @return the wrapped error. + */ + public Throwable getCause() + { + return error; + } + + /** + * Returns the true cause of this error, the wrapped + * error. + * + * @return the wrapped error. + */ + public Error getTargetError() + { + return error; + } + +} + diff --git a/libjava/classpath/javax/management/RuntimeMBeanException.java b/libjava/classpath/javax/management/RuntimeMBeanException.java new file mode 100644 index 00000000000..95225a80ab7 --- /dev/null +++ b/libjava/classpath/javax/management/RuntimeMBeanException.java @@ -0,0 +1,114 @@ +/* RuntimeMBeanException.java -- A user-defined management exception. + 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 javax.management; + +/** + * Represents an arbitrary runtime exception thrown by a management + * bean. When a management bean executes code that causes a runtime + * exception to be thrown, the resulting exception is wrapped inside a + * {@link RuntimeMBeanException}. Calling {@link + * getTargetException()} will return the wrapped exception. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class RuntimeMBeanException + extends JMRuntimeException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 5274912751982730171L; + + /** + * The target exception. + * + * @serial the target exception. + */ + private RuntimeException runtimeException; + + /** + * Constructs a new RuntimeMBeanException wrapping + * the specified exception. + * + * @param e the exception to be wrapped. + */ + public RuntimeMBeanException(RuntimeException e) + { + super(); + runtimeException = e; + } + + /** + * Constructs a new RuntimeMBeanException wrapping + * the specified exception and using the supplied message. + * + * @param e the exception to be wrapped. + * @param message the error message to give to the user. + */ + public RuntimeMBeanException(RuntimeException e, String message) + { + super(message); + runtimeException = e; + } + + /** + * Returns the true cause of this exception, the wrapped runtime + * exception. + * + * @return the wrapped exception. + */ + public Throwable getCause() + { + return runtimeException; + } + + /** + * Returns the true cause of this exception, the wrapped runtime + * exception. + * + * @return the wrapped exception. + */ + public RuntimeException getTargetException() + { + return runtimeException; + } + +} + diff --git a/libjava/classpath/javax/management/ServiceNotFoundException.java b/libjava/classpath/javax/management/ServiceNotFoundException.java new file mode 100644 index 00000000000..602e1490db4 --- /dev/null +++ b/libjava/classpath/javax/management/ServiceNotFoundException.java @@ -0,0 +1,75 @@ +/* ServiceNotFoundException.java -- Thrown by invalid values. + 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 javax.management; + +/** + * Thrown when a requested service is unsupported. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class ServiceNotFoundException + extends OperationsException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -3990675661956646827L; + + /** + * Constructs a new ServiceNotFoundException. + */ + public ServiceNotFoundException() + { + super(); + } + + /** + * Constructs a new ServiceNotFoundException + * with the specified message. + * + * @param message the error message to give to the user. + */ + public ServiceNotFoundException(String message) + { + super(message); + } + +} + diff --git a/libjava/classpath/javax/management/StandardMBean.java b/libjava/classpath/javax/management/StandardMBean.java index 736192ee2ac..16b6f0b6687 100644 --- a/libjava/classpath/javax/management/StandardMBean.java +++ b/libjava/classpath/javax/management/StandardMBean.java @@ -205,17 +205,13 @@ public class StandardMBean Method getter; try { - getter = iface.getMethod("get" + - name.substring(0, 1).toUpperCase() + - name.substring(1), null); + getter = iface.getMethod("get" + name, null); } catch (NoSuchMethodException e) { try { - getter = iface.getMethod("is" + - name.substring(0, 1).toUpperCase() + - name.substring(1), null); + getter = iface.getMethod("is" + name, null); } catch (NoSuchMethodException ex) { @@ -564,11 +560,9 @@ public class StandardMBean Method[] amethods; String attrib; if (name.startsWith("is")) - attrib = name.substring(2,3).toLowerCase() - + name.substring(3); + attrib = name.substring(2); else - attrib = name.substring(3,4).toLowerCase() - + name.substring(4); + attrib = name.substring(3); if (attributes.containsKey(attrib)) amethods = (Method[]) attributes.get(attrib); else @@ -583,8 +577,7 @@ public class StandardMBean methods[a].getParameterTypes().length == 1) { Method[] amethods; - String attrib = name.substring(3,4).toLowerCase() - + name.substring(4); + String attrib = name.substring(3); if (attributes.containsKey(attrib)) amethods = (Method[]) attributes.get(attrib); else @@ -595,7 +588,8 @@ public class StandardMBean amethods[1] = methods[a]; } else - operations.add(new MBeanOperationInfo("", methods[a])); + operations.add(new MBeanOperationInfo(methods[a].getName(), + methods[a])); } List attribs = new ArrayList(attributes.size()); Iterator it = attributes.entrySet().iterator(); @@ -605,7 +599,8 @@ public class StandardMBean Method[] amethods = (Method[]) entry.getValue(); try { - attribs.add(new MBeanAttributeInfo((String) entry.getKey(), "", + attribs.add(new MBeanAttributeInfo((String) entry.getKey(), + (String) entry.getKey(), amethods[0], amethods[1])); } catch (IntrospectionException e) @@ -632,7 +627,8 @@ public class StandardMBean MBeanConstructorInfo[] cinfo = new MBeanConstructorInfo[cons.length]; for (int a = 0; a < cinfo.length; ++a) { - MBeanConstructorInfo oldInfo = new MBeanConstructorInfo("", cons[a]); + MBeanConstructorInfo oldInfo = new MBeanConstructorInfo(cons[a].getName(), + cons[a]); String desc = getDescription(oldInfo); MBeanParameterInfo[] params = oldInfo.getSignature(); MBeanParameterInfo[] pinfo = new MBeanParameterInfo[params.length]; @@ -665,8 +661,8 @@ public class StandardMBean oinfo[a] = new MBeanOperationInfo(oldInfo.getName(), desc, pinfo, oldInfo.getReturnType(), impact); } - info = new MBeanInfo(impl.getClass().getName(), "", ainfo, cinfo, - oinfo, null); + info = new MBeanInfo(impl.getClass().getName(), impl.getClass().getName(), + ainfo, cinfo, oinfo, null); String cname = getClassName(info); String desc = getDescription(info); info = new MBeanInfo(cname, desc, ainfo, cinfo, oinfo, null); @@ -679,7 +675,7 @@ public class StandardMBean * * @return the management interface. */ - public Class getMBeanInterface() + public final Class getMBeanInterface() { return iface; } diff --git a/libjava/classpath/javax/management/ValueExp.java b/libjava/classpath/javax/management/ValueExp.java new file mode 100644 index 00000000000..503f2322194 --- /dev/null +++ b/libjava/classpath/javax/management/ValueExp.java @@ -0,0 +1,86 @@ +/* ValueExp.java -- Represents values that can be passed to queries. + 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 javax.management; + +import java.io.Serializable; + +/** + * Represents values that may be passed as arguments to + * {@link QueryExp}s. Strings, numbers and bean attributes + * are all valid argument types for query expressions, and + * so should be represented as implementations of this + * interface. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface ValueExp + extends Serializable +{ + + /** + * Applies the value expression to the specified management bean. + * + * @param name the name of the management bean. + * @return the value expression. + * @throws BadStringOperationException if an invalid string + * operation is used by + * the value expression. + * @throws BadBinaryOpValueExpException if an invalid expression + * is used by the value expression. + * @throws BadAttributeValueExpException if an invalid attribute + * is used by the value expression. + * @throws InvalidApplicationException if the value expression is applied + * to the wrong type of bean. + */ + ValueExp apply(ObjectName name) + throws BadStringOperationException, BadBinaryOpValueExpException, + BadAttributeValueExpException, InvalidApplicationException; + + /** + * Changes the {@link MBeanServer} on which this query is performed. + * + * @param server the new server to use. + * @deprecated This method is superfluous, as the {@link ValueExp} + * can access the server using + * {@link QueryEval#getMBeanServer()}. + */ + void setMBeanServer(MBeanServer server); + +} + diff --git a/libjava/classpath/javax/management/loading/ClassLoaderRepository.java b/libjava/classpath/javax/management/loading/ClassLoaderRepository.java new file mode 100644 index 00000000000..e2c8b7c5bf7 --- /dev/null +++ b/libjava/classpath/javax/management/loading/ClassLoaderRepository.java @@ -0,0 +1,139 @@ +/* ClassLoaderRepository.java -- Represents a collection of class loadersx. + 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 javax.management.loading; + +/** + * Implementations of this interface maintain a list of + * {@link ClassLoader}s for use by the management servers, + * allowing classes to be loaded by the first {@link ClassLoader} + * that will do so. A class loader is added to the list + * whenever a {@link ClassLoader} instance is registered with + * the management server, and it does not implement the + * {@link PrivateClassLoader} interface. They are removed when + * unregistered. The first class loader in the list is always + * the one which was used to load the management server itself. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + * @see MBeanServerFactory + */ +public interface ClassLoaderRepository +{ + + /** + * Attempts to load the given class using class loaders + * supplied by the list. The {@link ClassLoader#loadClass(String)} + * method of each class loader is called. If the method + * returns successfully, then the returned {@link Class} instance + * is returned. If a {@link ClassNotFoundException} is thrown, + * then the next loader is tried. Any other exception thrown + * by the method is passed back to the caller. This method + * throws a {@link ClassNotFoundException} itself if all the + * class loaders listed prove fruitless. + * + * @param name the name of the class to load. + * @return the loaded class. + * @throws ClassNotFoundException if all the class loaders fail + * to load the class. + */ + Class loadClass(String name) + throws ClassNotFoundException; + + /** + *

    + * Attempts to load the given class using class loaders + * supplied by the list, stopping when the specified + * loader is reached. The {@link ClassLoader#loadClass(String)} + * method of each class loader is called. If the method + * returns successfully, then the returned {@link Class} instance + * is returned. If a {@link ClassNotFoundException} is thrown, + * then the next loader is tried. Any other exception thrown + * by the method is passed back to the caller. This method + * throws a {@link ClassNotFoundException} itself if all the + * class loaders listed prove fruitless. + *

    + *

    + * This method is usually used by the class loader specified + * by the stop argument to load classes using the + * loaders that appear before it in the list. By stopping when + * the loader is reached, the deadlock that occurs when the loader + * is merely skipped is avoided. + *

    + * + * @param stop the class loader at which to stop, or null + * to obtain the same behaviour as {@link #loadClass(String)}. + * @param name the name of the class to load. + * @return the loaded class. + * @throws ClassNotFoundException if all the class loaders fail + * to load the class. + */ + Class loadClassBefore(ClassLoader stop, String name) + throws ClassNotFoundException; + + /** + *

    + * Attempts to load the given class using class loaders + * supplied by the list, excluding the one specified. + * The {@link ClassLoader#loadClass(String)} + * method of each class loader is called. If the method + * returns successfully, then the returned {@link Class} instance + * is returned. If a {@link ClassNotFoundException} is thrown, + * then the next loader is tried. Any other exception thrown + * by the method is passed back to the caller. This method + * throws a {@link ClassNotFoundException} itself if all the + * class loaders listed prove fruitless. + *

    + *

    + * Note that this method may deadlock if called simultaneously + * by two class loaders in the list. + * {@link loadClassBefore(ClassLoader, String)} should be used + * in preference to this method to avoid this. + *

    + * + * @param exclude the class loader to exclude, or null + * to obtain the same behaviour as {@link #loadClass(String)}. + * @param name the name of the class to load. + * @return the loaded class. + * @throws ClassNotFoundException if all the class loaders fail + * to load the class. + */ + Class loadClassWithout(ClassLoader exclude, String name) + throws ClassNotFoundException; + +} + diff --git a/libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java b/libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java new file mode 100644 index 00000000000..9c9ff8cfab8 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/InvalidOpenTypeException.java @@ -0,0 +1,76 @@ +/* InvalidOpenTypeException.java -- Thrown by an invalid open type. + 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 javax.management.openmbean; + +/** + * Thrown when a open data value has an erroneous open + * type. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class InvalidOpenTypeException + extends IllegalArgumentException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -2837312755412327534L; + + /** + * Constructs a new InvalidOpenTypeException. + */ + public InvalidOpenTypeException() + { + super(); + } + + /** + * Constructs a new InvalidOpenTypeException + * with the specified message. + * + * @param message the error message to give to the user. + */ + public InvalidOpenTypeException(String message) + { + super(message); + } + +} + diff --git a/libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java b/libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java new file mode 100644 index 00000000000..cc6bba63621 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/KeyAlreadyExistsException.java @@ -0,0 +1,77 @@ +/* KeyAlreadyExistsException.java -- Thrown when a key clashes with another. + 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 javax.management.openmbean; + +/** + * Thrown when a key (a field name or row index) is passed to a method + * of the {@link CompositeData} or {@link TabularData} classes and it + * is found to already be in use. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class KeyAlreadyExistsException + extends IllegalArgumentException +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 1845183636745282866L; + + /** + * Constructs a new KeyAlreadyExistsException. + */ + public KeyAlreadyExistsException() + { + super(); + } + + /** + * Constructs a new KeyAlreadyExistsException + * with the specified message. + * + * @param message the error message to give to the user. + */ + public KeyAlreadyExistsException(String message) + { + super(message); + } + +} + diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java b/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java new file mode 100644 index 00000000000..1b276fd197f --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java @@ -0,0 +1,120 @@ +/* OpenMBeanAttributeInfo.java -- Open typed info about an attribute. + 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 javax.management.openmbean; + +/** + * Describes an attribute associated with an open management bean. + * This interface includes those methods specified by {@link + * javax.management.MBeanAttributeInfo}, so implementations should + * extend this class. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface OpenMBeanAttributeInfo + extends OpenMBeanParameterInfo +{ + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanAttributeInfo} + * with an equal name and open type, the same default, minimum, + * maximum and legal values and the same access properties + * ({@link #isIs()}, {@link #isReadable()}, {@link #isWritable()}). + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanParameterInfo} + * instance, + * name.equals(object.getName()), + * openType.equals(object.getOpenType()), + * defaultValue.equals(object.getDefaultValue()), + * minValue.equals(object.getMinValue()), + * maxValue.equals(object.getMaxValue()), + * legalValues.equals(object.getLegalValues()), + * is == object.isIs(), + * isRead == object.isReadable(), + * and isWrite == object.isWritable(). + */ + boolean equals(Object obj); + + /** + * Returns the hashcode of the attribute information as the sum of + * the hashcodes of the name, open type, default value, maximum + * value, minimum value, the set of legal values and the access + * properties. + * + * @return the hashcode of the attribute information. + */ + int hashCode(); + + /** + * Returns true if the accessor method of this attribute + * is of the form isXXX. + * + * @return true if the accessor takes the form isXXX. + */ + boolean isIs(); + + /** + * Returns true if value of this attribute can be read. + * + * @return true if the value of the attribute can be read. + */ + boolean isReadable(); + + /** + * Returns true if the value of this attribute can be changed. + * + * @return true if the value of the attribute can be changed. + */ + boolean isWritable(); + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanAttributeInfo) + * along with the name, open type, default, minimum, maximum + * and legal values of the parameter and the access permissions + * ({@link #isIs()}, {@link #isReadable()}, {@link #isWritable()}). + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + String toString(); + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java new file mode 100644 index 00000000000..83e043640b4 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java @@ -0,0 +1,546 @@ +/* OpenMBeanAttributeInfoSupport.java -- Open typed info about an attribute. + 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 javax.management.openmbean; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import javax.management.MBeanAttributeInfo; + +/** + * Describes an attribute of an open management bean. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class OpenMBeanAttributeInfoSupport + extends MBeanAttributeInfo + implements OpenMBeanAttributeInfo +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -4867215622149721849L; + + /** + * The open type of the attribute. + */ + private OpenType openType; + + /** + * The default value of the attribute (may be null). + */ + private Object defaultValue; + + /** + * The possible legal values of the attribute (may be null). + */ + private Set legalValues; + + /** + * The minimum value of the attribute (may be null). + */ + private Comparable minValue; + + /** + * The maximum value of the attribute (may be null). + */ + private Comparable maxValue; + + /** + * The hash code of this instance. + */ + private transient Integer hashCode; + + /** + * The toString() result of this instance. + */ + private transient String string; + + /** + * Constructs a new {@link OpenMBeanAttributeInfo} using the + * specified name, description, open type and access properties. + * The name, description and open type may not be null + * and the name and description may not be equal to the empty + * string. + * + * @param name the name of the attribute. + * @param desc a description of the attribute. + * @param type the open type of the attribute. + * @param isReadable true if the attribute's value can be read. + * @param isWritable true if the attribute's value can be changed. + * @param isIs true if the attribute uses an accessor of the form isXXX. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + */ + public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, + boolean isReadable, boolean isWritable, + boolean isIs) + { + super(name, type == null ? null : type.getClassName(), desc, isReadable, + isWritable, isIs); + if (name == null) + throw new IllegalArgumentException("The name may not be null."); + if (desc == null) + throw new IllegalArgumentException("The description may not be null."); + if (type == null) + throw new IllegalArgumentException("The type may not be null."); + if (name.length() == 0) + throw new IllegalArgumentException("The name may not be the empty string."); + if (desc.length() == 0) + throw new IllegalArgumentException("The description may not be the " + + "empty string."); + } + + /** + * Constructs a new {@link OpenMBeanAttributeInfo} using the + * specified name, description, open type and default value. The + * name, description and open type cannot be null and + * the name and description may not be equal to the empty string. + * The default value may be null. If non-null, it must + * be a valid value of the given open type. Default values are not + * applicable to the open types, {@link ArrayType} and {@link + * TabularType}. + * + * @param name the name of the attribute. + * @param desc a description of the attribute. + * @param type the open type of the attribute. + * @param isReadable true if the attribute's value can be read. + * @param isWritable true if the attribute's value can be changed. + * @param isIs true if the attribute uses an accessor of the form isXXX. + * @param defaultValue the default value of the attribute. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + * @throws OpenDataException if defaultValue is non-null + * and is either not a value of the given + * open type or the open type is an instance + * of {@link ArrayType} or {@link TabularType}. + */ + public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, + boolean isReadable, boolean isWritable, + boolean isIs, Object defaultValue) + throws OpenDataException + { + this(name, desc, type, isReadable, isWritable, isIs, defaultValue, null); + } + + /** + *

    + * Constructs a new {@link OpenMBeanAttributeInfo} using the + * specified name, description, open type, access properties, + * default, maximum and minimum values. The name, description + * and open type cannot be null and the name and + * description may not be equal to the empty string. The + * default, maximum and minimum values may be null. + * The following conditions apply when the attributes mentioned + * are non-null: + *

    + *
      + *
    • The values must be valid values for the given open type.
    • + *
    • Default values are not applicable to the open types, {@link + * ArrayType} and {@link TabularType}.
    • + *
    • The minimum value must be smaller than or equal to the maximum value + * (literally, minValue.compareTo(maxValue) <= 0.
    • + *
    • The minimum value must be smaller than or equal to the default value + * (literally, minValue.compareTo(defaultValue) <= 0.
    • + *
    • The default value must be smaller than or equal to the maximum value + * (literally, defaultValue.compareTo(maxValue) <= 0.
    • + *
    + * + * @param name the name of the attribute. + * @param desc a description of the attribute. + * @param type the open type of the attribute. + * @param isReadable true if the attribute's value can be read. + * @param isWritable true if the attribute's value can be changed. + * @param isIs true if the attribute uses an accessor of the form isXXX. + * @param defaultValue the default value of the attribute, or null. + * @param minimumValue the minimum value of the attribute, or null. + * @param maximumValue the maximum value of the attribute, or null. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + * @throws OpenDataException if any condition in the list above is broken. + */ + public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, + boolean isReadable, boolean isWritable, + boolean isIs, Object defaultValue, + Comparable minimumValue, + Comparable maximumValue) + throws OpenDataException + { + this(name, desc, type, isReadable, isWritable, isIs); + if (defaultValue != null && !(type.isValue(defaultValue))) + throw new OpenDataException("The default value is not a member of the " + + "open type given."); + if (minimumValue != null && !(type.isValue(minimumValue))) + throw new OpenDataException("The minimum value is not a member of the " + + "open type given."); + if (maximumValue != null && !(type.isValue(maximumValue))) + throw new OpenDataException("The maximum value is not a member of the " + + "open type given."); + if (defaultValue != null && (type instanceof ArrayType || + type instanceof TabularType)) + throw new OpenDataException("Default values are not applicable for " + + "array or tabular types."); + if (minValue != null && maxValue != null + && minValue.compareTo(maxValue) > 0) + throw new OpenDataException("The minimum value is greater than the " + + "maximum."); + if (minValue != null && defaultValue != null + && minValue.compareTo(defaultValue) > 0) + throw new OpenDataException("The minimum value is greater than the " + + "default."); + if (defaultValue != null && maxValue != null + && maxValue.compareTo(defaultValue) < 0) + throw new OpenDataException("The default value is greater than the " + + "maximum."); + + openType = type; + this.defaultValue = defaultValue; + minValue = minimumValue; + maxValue = maximumValue; + } + + /** + *

    + * Constructs a new {@link OpenMBeanAttributeInfo} using the + * specified name, description, open type, access properties, default + * value and set of legal values. The name, description and open type + * cannot be null and the name and description may not be + * equal to the empty string. The default, maximum and minimum values + * may be null. The following conditions apply when the + * attributes mentioned are non-null: + *

    + *
      + *
    • The default value and each of the legal values must be a valid + * value for the given open type.
    • + *
    • Default and legal values are not applicable to the open types, {@link + * ArrayType} and {@link TabularType}.
    • + *
    • The default value is not in the set of legal values.
    • + *
    + *

    + * The legal values are copied from the array into a unmodifiable set, + * so future modifications to the array have no effect. + *

    + * + * @param name the name of the attribute. + * @param desc a description of the attribute. + * @param type the open type of the attribute. + * @param isReadable true if the attribute's value can be read. + * @param isWritable true if the attribute's value can be changed. + * @param isIs true if the attribute uses an accessor of the form isXXX. + * @param defaultValue the default value of the attribute, or null. + * @param legalValues the legal values of the attribute. May be + * null or an empty array. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + * @throws OpenDataException if any condition in the list above is broken. + */ + public OpenMBeanAttributeInfoSupport(String name, String desc, OpenType type, + boolean isReadable, boolean isWritable, + boolean isIs, Object defaultValue, + Object[] legalValues) + throws OpenDataException + { + this(name, desc, type, isReadable, isWritable, isIs); + if (defaultValue != null && !(type.isValue(defaultValue))) + throw new OpenDataException("The default value is not a member of the " + + "open type given."); + if (defaultValue != null && (type instanceof ArrayType || + type instanceof TabularType)) + throw new OpenDataException("Default values are not applicable for " + + "array or tabular types."); + if (legalValues != null && (type instanceof ArrayType || + type instanceof TabularType)) + throw new OpenDataException("Legal values are not applicable for " + + "array or tabular types."); + if (legalValues != null && legalValues.length > 0) + { + Set lv = new HashSet(legalValues.length); + for (int a = 0; a < legalValues.length; ++a) + { + if (legalValues[a] != null && + !(type.isValue(legalValues[a]))) + throw new OpenDataException("The legal value, " + + legalValues[a] + + "is not a member of the " + + "open type given."); + lv.add(legalValues[a]); + } + if (defaultValue != null && !(lv.contains(defaultValue))) + throw new OpenDataException("The default value is not in the set " + + "of legal values."); + this.legalValues = Collections.unmodifiableSet(lv); + } + openType = type; + this.defaultValue = defaultValue; + } + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanAttributeInfo} + * with an equal name and open type and the same default, minimum, + * maximum and legal values and the same access properties. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanAttributeInfo} + * instance, + * name.equals(object.getName()), + * openType.equals(object.getOpenType()), + * isRead == object.isReadable(), + * isWrite == object.isWritable(), + * isIs == object.isIs(), + * defaultValue.equals(object.getDefaultValue()), + * minValue.equals(object.getMinValue()), + * maxValue.equals(object.getMaxValue()), + * and legalValues.equals(object.getLegalValues()). + */ + public boolean equals(Object obj) + { + if (!(obj instanceof OpenMBeanAttributeInfo)) + return false; + OpenMBeanAttributeInfo o = (OpenMBeanAttributeInfo) obj; + return getName().equals(o.getName()) && + openType.equals(o.getOpenType()) && + isReadable() == o.isReadable() && + isWritable() == o.isWritable() && + isIs() == o.isIs() && + (defaultValue == null ? o.getDefaultValue() == null : + defaultValue.equals(o.getDefaultValue())) && + (minValue == null ? o.getMinValue() == null : + minValue.equals(o.getMinValue())) && + (maxValue == null ? o.getMaxValue() == null : + maxValue.equals(o.getMaxValue())) && + (legalValues == null ? o.getLegalValues() == null : + legalValues.equals(o.getLegalValues())); + } + + /** + * Returns the default value of this attribute, or null + * if there is no default value. + * + * @return the default value of the attribute, or null + * if there is no default. + */ + public Object getDefaultValue() + { + return defaultValue; + } + + /** + * Returns a {@link java.util.Set} enumerating the legal values + * of this attribute, or null if no such limited + * set exists for this attribute. + * + * @return a set of legal values, or null if no such + * set exists. + */ + public Set getLegalValues() + { + return legalValues; + } + + /** + * Returns the maximum value of this attribute, or null + * if there is no maximum. + * + * @return the maximum value, or null if none exists. + */ + public Comparable getMaxValue() + { + return maxValue; + } + + /** + * Returns the minimum value of this attribute, or null + * if there is no minimum. + * + * @return the minimum value, or null if none exists. + */ + public Comparable getMinValue() + { + return minValue; + } + + /** + * Returns the open type instance which represents the type of this + * attribute. + * + * @return the open type of this attribute. + */ + public OpenType getOpenType() + { + return openType; + } + + /** + * Returns true if this attribute has a default value + * (i.e. the value is non-null). + * + * @return true if this attribute has a default. + */ + public boolean hasDefaultValue() + { + return defaultValue != null; + } + + /** + *

    + * Returns the hashcode of the attribute information as the sum of + * the hashcodes of the name, open type, default value, maximum + * value, minimum value and the set of legal values. + *

    + *

    + * As instances of this class are immutable, the hash code + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return the hashcode of the attribute information. + */ + public int hashCode() + { + if (hashCode == null) + hashCode = Integer.valueOf(getName().hashCode() + + openType.hashCode() + + Boolean.valueOf(isReadable()).hashCode() + + (2 * + Boolean.valueOf(isWritable()).hashCode()) + + (4 * Boolean.valueOf(isIs()).hashCode()) + + (defaultValue == null ? 0 : + defaultValue.hashCode()) + + (minValue == null ? 0 : + minValue.hashCode()) + + (maxValue == null ? 0 : + maxValue.hashCode()) + + (legalValues == null ? 0 : + legalValues.hashCode())); + return hashCode.intValue(); + } + + /** + * Returns true if there is a set of legal values for this + * attribute (i.e. the value is non-null). + * + * @return true if a set of legal values exists for this + * attribute. + */ + public boolean hasLegalValues() + { + return legalValues != null; + } + + /** + * Returns true if there is a maximum value for this attribute + * (i.e. the value is non-null). + * + * @return true if a maximum value exists for this attribute. + */ + public boolean hasMaxValue() + { + return maxValue != null; + } + + /** + * Returns true if there is a minimum value for this attribute. + * (i.e. the value is non-null). + * + * @return true if a minimum value exists for this attribute. + */ + public boolean hasMinValue() + { + return minValue != null; + } + + /** + * Returns true if the specified object is a valid value for + * this attribute. + * + * @param obj the object to test. + * @return true if obj is a valid value for this + * attribute. + */ + public boolean isValue(Object obj) + { + return openType.isValue(obj); + } + + /** + *

    + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanAttributeInfo) + * along with the name, open type, access properties, default, + * minimum, maximum and legal values of the attribute. + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + if (string == null) + string = getClass().getName() + + "[name=" + getName() + + ",openType=" + openType + + ",isReadable=" + isReadable() + + ",isWritable=" + isWritable() + + ",isIs=" + isIs() + + ",defaultValue=" + defaultValue + + ",minValue=" + minValue + + ",maxValue=" + maxValue + + ",legalValues=" + legalValues + + "]"; + return string; + } + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java b/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java new file mode 100644 index 00000000000..34cef131f26 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java @@ -0,0 +1,112 @@ +/* OpenMBeanConstructorInfo.java -- Open typed info about a constructor. + 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 javax.management.openmbean; + +import javax.management.MBeanParameterInfo; + +/** + * Describes a constructor for an open management bean. + * This interface includes those methods specified by {@link + * javax.management.MBeanConstructorInfo}, so implementations should + * extend this class. The {@link #getSignature()} method should + * return an array containing instances of {@link OpenMBeanParameterInfo}. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface OpenMBeanConstructorInfo +{ + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanConstructorInfo} + * with an equal name and signature. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanParameterInfo} + * instance, + * name.equals(object.getName()), + * and signature.equals(object.getSignature()). + */ + boolean equals(Object obj); + + /** + * Returns a description of this constructor. + * + * @return a human-readable description. + */ + String getDescription(); + + /** + * Returns the name of this constructor. + * + * @return the name of the constructor. + */ + String getName(); + + /** + * Returns the constructor's signature, in the form of + * information on each parameter. Each parameter is + * described by an instance of {@link OpenMBeanParameterInfo}. + * + * @return an array of {@link OpenMBeanParameterInfo} objects, + * describing the constructor parameters. + */ + MBeanParameterInfo[] getSignature(); + + /** + * Returns the hashcode of the constructor information as the sum of + * the hashcodes of the name and signature (calculated by + * java.util.Arrays.asList(signature).hashCode()). + * + * @return the hashcode of the constructor information. + */ + int hashCode(); + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanConstructorInfo) + * along with the name and signature. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + String toString(); + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java new file mode 100644 index 00000000000..9dac01a596a --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java @@ -0,0 +1,174 @@ +/* OpenMBeanConstructorInfoSupport.java -- Open typed info about an constructor. + 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 javax.management.openmbean; + +import java.util.Arrays; + +import javax.management.MBeanConstructorInfo; +import javax.management.MBeanParameterInfo; + +/** + * Describes a constructor for an open management bean. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class OpenMBeanConstructorInfoSupport + extends MBeanConstructorInfo + implements OpenMBeanConstructorInfo +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -4400441579007477003L; + + /** + * The hash code of this instance. + */ + private transient Integer hashCode; + + /** + * The toString() result of this instance. + */ + private transient String string; + + /** + * Constructs a @link{OpenMBeanConstructorInfo} with the specified + * name, description and parameter information. A null + * value for the parameter information is the same as passing in + * an empty array. Neither the name nor the description may be + * null or equal to the empty string. A copy of the parameter array + * is taken, so later changes have no effect. + * + * @param name the name of the constructor. + * @param desc a description of the constructor. + * @param sig the signature of the constructor, as a series + * of {@link MBeanParameterInfo} objects, one for + * each parameter. + * @throws IllegalArgumentException if the name or description is + * either null + * or the empty string. + * @throws ArrayStoreException if the members of the signature array + * are not assignable to + * {@link javax.management.MBeanParameterInfo} + */ + public OpenMBeanConstructorInfoSupport(String name, String desc, + OpenMBeanParameterInfo[] sig) + { + super(name, desc, (MBeanParameterInfo[]) sig); + if (name == null) + throw new IllegalArgumentException("The name may not be null."); + if (desc == null) + throw new IllegalArgumentException("The description may not be null."); + if (name.length() == 0) + throw new IllegalArgumentException("The name may not be the empty string."); + if (desc.length() == 0) + throw new IllegalArgumentException("The description may not be the " + + "empty string."); + } + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanConstructorInfo} + * with an equal name and signature. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanParameterInfo} + * instance, + * name.equals(object.getName()), + * and signature.equals(object.getSignature()). + */ + public boolean equals(Object obj) + { + if (!(obj instanceof OpenMBeanConstructorInfo)) + return false; + OpenMBeanConstructorInfo o = (OpenMBeanConstructorInfo) obj; + return getName().equals(o.getName()) && + getSignature().equals(o.getSignature()); + } + + /** + *

    + * Returns the hashcode of the constructor information as the sum of + * the hashcodes of the name and signature (calculated by + * java.util.Arrays.asList(signature).hashCode()). + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return the hashcode of the constructor information. + */ + public int hashCode() + { + if (hashCode == null) + hashCode = Integer.valueOf(getName().hashCode() + + Arrays.asList(getSignature()).hashCode()); + return hashCode.intValue(); + } + + /** + *

    + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanConstructorInfo) + * along with the name and signature. + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + if (string == null) + string = getClass().getName() + + "[name=" + getName() + + ",signature=" + Arrays.toString(getSignature()) + + "]"; + return string; + } + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java b/libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java new file mode 100644 index 00000000000..5aa4df4511c --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanInfo.java @@ -0,0 +1,154 @@ +/* OpenMBeanInfo.java -- Open typed info about a management bean. + 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 javax.management.openmbean; + +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanConstructorInfo; +import javax.management.MBeanNotificationInfo; +import javax.management.MBeanOperationInfo; + +/** + * Describes an open management bean. Open management beans are + * management beans where {@link + * javax.management.DynamicMBean#getMBeanInfo()} returns an + * implementation of this interface. This interface includes those + * methods specified by {@link javax.management.MBeanInfo}, + * so implementations should extend this class. Each method + * which returns an array of one of the MBeanXXXInfo + * classes should return an array containing instances + * of the equivalent open version (OpenMBeanXXXInfo). + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface OpenMBeanInfo +{ + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanInfo} + * with the same class name and equal instances of the info classes. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanInfo} + * instance, + * className.equals(object.getClassName()) + * and each info class has an equal in the other object. + */ + boolean equals(Object obj); + + /** + * Returns descriptions of each of the attributes provided by this + * management bean. The elements should be implementations of the + * {@link OpenMBeanAttributeInfo} class. + * + * @return an array of {@link OpenMBeanAttributeInfo} objects, + * representing the attributes emitted by this + * management bean. + */ + MBeanAttributeInfo[] getAttributes(); + + /** + * Returns the class name of the management bean. + * + * @return the bean's class name. + */ + String getClassName(); + + /** + * Returns descriptions of each of the constructors provided by this + * management bean. The elements should be implementations of the + * {@link OpenMBeanConstructorInfo} class. + * + * @return an array of {@link OpenMBeanConstructorInfo} objects, + * representing the constructors emitted by this + * management bean. + */ + MBeanConstructorInfo[] getConstructors(); + + /** + * Returns a description of this operation. + * + * @return a human-readable description. + */ + String getDescription(); + + /** + * Returns descriptions of each of the notifications provided by this + * management bean. The elements should be implementations of the + * {@link OpenMBeanNotificationInfo} class. + * + * @return an array of {@link OpenMBeanNotificationInfo} objects, + * representing the notifications emitted by this + * management bean. + */ + MBeanNotificationInfo[] getNotifications(); + + /** + * Returns descriptions of each of the operations provided by this + * management bean. The elements should be implementations of the + * {@link OpenMBeanOperationInfo} class. + * + * @return an array of {@link OpenMBeanOperationInfo} objects, + * representing the operations emitted by this + * management bean. + */ + MBeanOperationInfo[] getOperations(); + + /** + * Returns the hashcode of the bean information as the sum of the + * hashcodes of the class name and each array (calculated using + * java.util.HashSet(java.util.Arrays.asList(signature)).hashCode()). + * + * @return the hashcode of the bean information. + */ + int hashCode(); + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanInfo) + * along with the class name and textual representations + * of each array. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + String toString(); + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java new file mode 100644 index 00000000000..5f8d55b8377 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java @@ -0,0 +1,191 @@ +/* OpenMBeanInfoSupport.java -- Open typed info about a bean. + 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 javax.management.openmbean; + +import java.util.Arrays; +import java.util.HashSet; + +import javax.management.MBeanInfo; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanConstructorInfo; +import javax.management.MBeanNotificationInfo; +import javax.management.MBeanOperationInfo; + +/** + * Describes an open management bean. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class OpenMBeanInfoSupport + extends MBeanInfo + implements OpenMBeanInfo +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 4349395935420511492L; + + /** + * The hash code of this instance. + */ + private transient Integer hashCode; + + /** + * The toString() result of this instance. + */ + private transient String string; + + /** + * Constructs a new {@link OpenMBeanInfo} using the supplied + * class name and description with the given attributes, + * operations, constructors and notifications. The class + * name does not have to actually specify a valid class that + * can be loaded by the MBean server or class loader; it merely + * has to be a syntactically correct class name. Any of the + * arrays may be null; this will be treated as if + * an empty array was supplied. A copy of the arrays is + * taken, so later changes have no effect. + * + * @param name the name of the class this instance describes. + * @param desc a description of the bean. + * @param attribs the attribute descriptions for the bean, + * or null. + * @param cons the constructor descriptions for the bean, + * or null. + * @param ops the operation descriptions for the bean, + * or null. + * @param notifs the notification descriptions for the bean, + * or null. + * @throws ArrayStoreException if a members of an array + * is not assignable to the equivalent + * MBeanXXXInfo class. + */ + public OpenMBeanInfoSupport(String name, String desc, + OpenMBeanAttributeInfo[] attribs, + OpenMBeanConstructorInfo[] cons, + OpenMBeanOperationInfo[] ops, + MBeanNotificationInfo[] notifs) + { + super(name, desc, (MBeanAttributeInfo[]) attribs, + (MBeanConstructorInfo[]) cons, + (MBeanOperationInfo[]) ops, + notifs); + } + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanInfo} + * with the same class name and equal instances of the info classes. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanInfo} + * instance, + * className.equals(object.getClassName()) + * and each info class has an equal in the other object. + */ + public boolean equals(Object obj) + { + if (!(obj instanceof OpenMBeanInfo)) + return false; + OpenMBeanInfo o = (OpenMBeanInfo) obj; + return getClassName().equals(o.getClassName()) && + getAttributes().equals(o.getAttributes()) && + getConstructors().equals(o.getConstructors()) && + getNotifications().equals(o.getNotifications()) && + getOperations().equals(o.getOperations()); + } + + /** + *

    + * Returns the hashcode of the bean information as the sum of the + * hashcodes of the class name and each array (calculated using + * java.util.HashSet(java.util.Arrays.asList(signature)).hashCode()). + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return the hashcode of the bean information. + */ + public int hashCode() + { + if (hashCode == null) + hashCode = + Integer.valueOf(getClassName().hashCode() + + new HashSet(Arrays.asList(getAttributes())).hashCode() + + new HashSet(Arrays.asList(getConstructors())).hashCode() + + new HashSet(Arrays.asList(getNotifications())).hashCode() + + new HashSet(Arrays.asList(getOperations())).hashCode()); + return hashCode.intValue(); + } + + /** + *

    + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanInfo) + * along with the class name and textual representations + * of each array. + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + if (string == null) + string = getClass().getName() + + "[className=" + getClassName() + + ",attributes=" + Arrays.toString(getAttributes()) + + ",constructors=" + Arrays.toString(getConstructors()) + + ",notifications=" + Arrays.toString(getNotifications()) + + ",operations=" + Arrays.toString(getOperations()) + + "]"; + return string; + } + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java b/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java new file mode 100644 index 00000000000..8b61329d966 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfo.java @@ -0,0 +1,154 @@ +/* OpenMBeanOperationInfo.java -- Open typed info about a operation. + 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 javax.management.openmbean; + +import javax.management.MBeanParameterInfo; + +/** + * Describes a operation for an open management bean. + * This interface includes those methods specified by {@link + * javax.management.MBeanOperationInfo}, so implementations should + * extend this class. The {@link #getSignature()} method should + * return an array containing instances of {@link OpenMBeanParameterInfo}. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface OpenMBeanOperationInfo +{ + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanOperationInfo} + * with an equal name, signature, open return type and impact. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanParameterInfo} + * instance, + * name.equals(object.getName()), + * signature.equals(object.getSignature()), + * returnOpenType.equals(object.getReturnOpenType()), + * and impact == object.getImpact(). + */ + boolean equals(Object obj); + + /** + * Returns a description of this operation. + * + * @return a human-readable description. + */ + String getDescription(); + + /** + *

    + * Returns the impact of performing this operation. + * The value is equal to one of the following: + *

    + *
      + *
    1. {@link javax.management.MBeanOperationInfo#INFO} + * — the method just returns + * information (akin to an accessor).
    2. + *
    3. {@link javax.management.MBeanOperationInfo#ACTION} + * the method just alters the state of the bean, without + * returning a value (akin to a mutator).
    4. + *
    5. {@link javax.management.MBeanOperationInfo#ACTION_INFO} + * the method both makes state changes and returns a value.
    6. + *
    7. {@link javax.management.MBeanOperationInfo#UNKNOWN} + * the behaviour of the operation is unknown.
    8. + *
    + * + * @return the impact of performing the operation. + */ + int getImpact(); + + /** + * Returns the name of this operation. + * + * @return the name of the operation. + */ + String getName(); + + /** + * Returns the open type instance which represents the type of the + * return value. + * + * @return the open type of the return value. + */ + OpenType getReturnOpenType(); + + /** + * Returns the return type of the operation, as the class + * name. This should be identical to + * getReturnOpenType.getClassName(). + * + * @return the return type. + */ + String getReturnType(); + + /** + * Returns the operation's signature, in the form of + * information on each parameter. Each parameter is + * described by an instance of {@link OpenMBeanParameterInfo}. + * + * @return an array of {@link OpenMBeanParameterInfo} objects, + * describing the operation parameters. + */ + MBeanParameterInfo[] getSignature(); + + /** + * Returns the hashcode of the operation information as the sum of + * the hashcodes of the name, open return type, impact and signature + * (calculated by + * java.util.Arrays.asList(signature).hashCode()). + * + * @return the hashcode of the operation information. + */ + int hashCode(); + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanOperationInfo) + * along with the name, signature, open return type and impact. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + String toString(); + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java new file mode 100644 index 00000000000..07564897c2c --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java @@ -0,0 +1,240 @@ +/* OpenMBeanOperationInfoSupport.java -- Open typed info about an operation. + 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 javax.management.openmbean; + +import java.util.Arrays; + +import javax.management.MBeanOperationInfo; +import javax.management.MBeanParameterInfo; + +/** + * Describes a operation for an open management bean. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class OpenMBeanOperationInfoSupport + extends MBeanOperationInfo + implements OpenMBeanOperationInfo +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 4996859732565369366L; + + /** + * The open type representing the return value. + */ + private OpenType returnOpenType; + + /** + * The hash code of this instance. + */ + private transient Integer hashCode; + + /** + * The toString() result of this instance. + */ + private transient String string; + + /** + * Constructs a @link{OpenMBeanOperationInfo} with the specified name, + * description, parameter information, open return type and impact. A + * null value for the parameter information is the same + * as passing in an empty array. A copy of the parameter array is + * taken, so later changes have no effect. The name and the + * description may not be equal to the empty string, and neither + * the name, description nor the open return type may be + * null. The value of impact must be + * one of the four valid values + * ({@link javax.management.MBeanOperationInfo#INFO}, + * {@link javax.management.MBeanOperationInfo#ACTION}, + * {@link javax.management.MBeanOperationInfo#ACTION_INFO} and + * {@link javax.management.MBeanOperationInfo#UNKNOWN}). + * + * + * @param name the name of the constructor. + * @param desc a description of the attribute. + * @param sig the signature of the method, as a series + * of {@link MBeanParameterInfo} objects, one for + * each parameter. + * @param type the open return type of the method. + * @param impact the impact of performing the operation. + * @throws IllegalArgumentException if the name, description or + * open return type is null, + * the name or description are equal to + * the empty string, or the impact factor + * is not one of the values enumerated + * above. + * @throws ArrayStoreException if the members of the signature array + * are not assignable to + * {@link javax.management.MBeanParameterInfo} + */ + public OpenMBeanOperationInfoSupport(String name, String desc, + OpenMBeanParameterInfo[] sig, + OpenType type, int impact) + { + super(name, desc, (MBeanParameterInfo[]) sig, + type == null ? null : type.getClassName(), impact); + if (name == null) + throw new IllegalArgumentException("The name may not be null."); + if (desc == null) + throw new IllegalArgumentException("The description may not be null."); + if (type == null) + throw new IllegalArgumentException("The type may not be null."); + if (name.length() == 0) + throw new IllegalArgumentException("The name may not be the empty string."); + if (desc.length() == 0) + throw new IllegalArgumentException("The description may not be the " + + "empty string."); + if (impact != ACTION && impact != INFO && + impact != ACTION_INFO && impact != UNKNOWN) + throw new IllegalArgumentException("The impact factor is an invalid value."); + returnOpenType = type; + } + + /** + * Compares this attribute with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanOperationInfo} + * with an equal name, signature, open return type and impact. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanParameterInfo} + * instance, + * name.equals(object.getName()), + * signature.equals(object.getSignature()), + * returnOpenType.equals(object.getReturnOpenType()), + * and impact == object.getImpact(). + */ + public boolean equals(Object obj) + { + if (!(obj instanceof OpenMBeanOperationInfo)) + return false; + OpenMBeanOperationInfo o = (OpenMBeanOperationInfo) obj; + return getName().equals(o.getName()) && + getSignature().equals(o.getSignature()) && + returnOpenType.equals(o.getReturnOpenType()) && + getImpact() == o.getImpact(); + } + + /** + * Returns the open type instance which represents the type of the + * return value. + * + * @return the open type of the return value. + */ + public OpenType getReturnOpenType() + { + return returnOpenType; + } + + /** + *

    + * Returns the hashcode of the operation information as the sum of + * the hashcodes of the name, open return type, impact and signature + * (calculated by + * java.util.Arrays.asList(signature).hashCode()). + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return the hashcode of the operation information. + */ + public int hashCode() + { + if (hashCode == null) + hashCode = Integer.valueOf(getName().hashCode() + + returnOpenType.hashCode() + + Integer.valueOf(getImpact()).hashCode() + + Arrays.asList(getSignature()).hashCode()); + return hashCode.intValue(); + } + + /** + *

    + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanOperationInfo) + * along with the name, signature, open return type and impact. + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + if (string == null) + { + String impactString; + switch (getImpact()) + { + case INFO: + impactString = "INFO"; + break; + case ACTION: + impactString = "ACTION"; + break; + case ACTION_INFO: + impactString = "ACTION_INFO"; + break; + case UNKNOWN: + impactString = "UNKNOWN"; + break; + default: + impactString = "ERRONEOUS VALUE"; + } + string = getClass().getName() + + "[name=" + getName() + + ",signature=" + Arrays.toString(getSignature()) + + ",returnOpenType=" + returnOpenType + + ",impact=" + impactString + + "]"; + } + return string; + } + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java b/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java new file mode 100644 index 00000000000..780e8ba1159 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfo.java @@ -0,0 +1,190 @@ +/* OpenMBeanParameterInfo.java -- Open typed info about a parameter. + 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 javax.management.openmbean; + +import java.util.Set; + +/** + * Describes the parameters of a constructor or operation associated + * with an open management bean. This interface includes those methods + * specified by {@link javax.management.MBeanParameterInfo}, so + * implementations should extend this class. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface OpenMBeanParameterInfo +{ + + /** + * Compares this parameter with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanParameterInfo} + * with an equal name and open type and the same default, minimum, + * maximum and legal values. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanParameterInfo} + * instance, + * name.equals(object.getName()), + * openType.equals(object.getOpenType()), + * defaultValue.equals(object.getDefaultValue()), + * minValue.equals(object.getMinValue()), + * maxValue.equals(object.getMaxValue()), + * and legalValues.equals(object.getLegalValues()). + */ + boolean equals(Object obj); + + /** + * Returns the default value of this parameter, or null + * if there is no default value. + * + * @return the default value of the parameter, or null + * if there is no default. + */ + Object getDefaultValue(); + + /** + * Returns a description of this parameter. + * + * @return a human-readable description. + */ + String getDescription(); + + /** + * Returns a {@link java.util.Set} enumerating the legal values + * of this parameter, or null if no such limited + * set exists for this parameter. + * + * @return a set of legal values, or null if no such + * set exists. + */ + Set getLegalValues(); + + /** + * Returns the maximum value of this parameter, or null + * if there is no maximum. + * + * @return the maximum value, or null if none exists. + */ + Comparable getMaxValue(); + + /** + * Returns the minimum value of this parameter, or null + * if there is no minimum. + * + * @return the minimum value, or null if none exists. + */ + Comparable getMinValue(); + + /** + * Returns the name of this parameter. + * + * @return the name of the parameter. + */ + String getName(); + + /** + * Returns the open type instance which represents the type of this + * parameter. + * + * @return the open type of this parameter. + */ + OpenType getOpenType(); + + /** + * Returns true if this parameter has a default value. + * + * @return true if this parameter has a default. + */ + boolean hasDefaultValue(); + + /** + * Returns the hashcode of the parameter information as the sum of + * the hashcodes of the name, open type, default value, maximum + * value, minimum value and the set of legal values. + * + * @return the hashcode of the parameter information. + */ + int hashCode(); + + /** + * Returns true if there is a set of legal values for this + * parameter. + * + * @return true if a set of legal values exists for this + * parameter. + */ + boolean hasLegalValues(); + + /** + * Returns true if there is a maximum value for this parameter. + * + * @return true if a maximum value exists for this parameter. + */ + boolean hasMaxValue(); + + /** + * Returns true if there is a minimum value for this parameter. + * + * @return true if a minimum value exists for this parameter. + */ + boolean hasMinValue(); + + /** + * Returns true if the specified object is a valid value for + * this parameter. + * + * @param obj the object to test. + * @return true if obj is a valid value for this + * parameter. + */ + boolean isValue(Object obj); + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanParameterInfo) + * along with the name, open type, default, minimum, maximum + * and legal values of the parameter. + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + String toString(); + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java new file mode 100644 index 00000000000..af3bda6c738 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java @@ -0,0 +1,511 @@ +/* OpenMBeanParameterInfoSupport.java -- Open typed info about a parameter. + 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 javax.management.openmbean; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import javax.management.MBeanParameterInfo; + +/** + * Describes the parameters of a constructor or operation associated + * with an open management bean. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class OpenMBeanParameterInfoSupport + extends MBeanParameterInfo + implements OpenMBeanParameterInfo +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = -7235016873758443122L; + + /** + * The open type of the parameter. + */ + private OpenType openType; + + /** + * The default value of the parameter (may be null). + */ + private Object defaultValue; + + /** + * The possible legal values of the parameter (may be null). + */ + private Set legalValues; + + /** + * The minimum value of the parameter (may be null). + */ + private Comparable minValue; + + /** + * The maximum value of the parameter (may be null). + */ + private Comparable maxValue; + + /** + * The hash code of this instance. + */ + private transient Integer hashCode; + + /** + * The toString() result of this instance. + */ + private transient String string; + + /** + * Constructs a new {@link OpenMBeanParameterInfo} using the specified + * name, description and open type. None of these values may be + * null and the name and description may not be equal + * to the empty string. + * + * @param name the name of the parameter. + * @param desc a description of the parameter. + * @param type the open type of the parameter. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + */ + public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type) + { + super(name, type == null ? null : type.getClassName(), desc); + if (name == null) + throw new IllegalArgumentException("The name may not be null."); + if (desc == null) + throw new IllegalArgumentException("The description may not be null."); + if (type == null) + throw new IllegalArgumentException("The type may not be null."); + if (name.length() == 0) + throw new IllegalArgumentException("The name may not be the empty string."); + if (desc.length() == 0) + throw new IllegalArgumentException("The description may not be the " + + "empty string."); + openType = type; + } + + /** + * Constructs a new {@link OpenMBeanParameterInfo} using the + * specified name, description, open type and default value. The + * name, description and open type cannot be null and + * the name and description may not be equal to the empty string. + * The default value may be null. If non-null, it must + * be a valid value of the given open type. Default values are not + * applicable to the open types, {@link ArrayType} and {@link + * TabularType}. + * + * @param name the name of the parameter. + * @param desc a description of the parameter. + * @param type the open type of the parameter. + * @param defaultValue the default value of the parameter. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + * @throws OpenDataException if defaultValue is non-null + * and is either not a value of the given + * open type or the open type is an instance + * of {@link ArrayType} or {@link TabularType}. + */ + public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, + Object defaultValue) + throws OpenDataException + { + this(name, desc, type, defaultValue, null); + } + + /** + *

    + * Constructs a new {@link OpenMBeanParameterInfo} using the + * specified name, description, open type, default, maximum and + * minimum values. The name, description and open type cannot be + * null and the name and description may not be equal + * to the empty string. The default, maximum and minimum values may + * be null. The following conditions apply when the + * parameters mentioned are non-null: + *

    + *
      + *
    • The values must be valid values for the given open type.
    • + *
    • Default values are not applicable to the open types, {@link + * ArrayType} and {@link TabularType}.
    • + *
    • The minimum value must be smaller than or equal to the maximum value + * (literally, minValue.compareTo(maxValue) <= 0.
    • + *
    • The minimum value must be smaller than or equal to the default value + * (literally, minValue.compareTo(defaultValue) <= 0.
    • + *
    • The default value must be smaller than or equal to the maximum value + * (literally, defaultValue.compareTo(maxValue) <= 0.
    • + *
    + * + * @param name the name of the parameter. + * @param desc a description of the parameter. + * @param type the open type of the parameter. + * @param defaultValue the default value of the parameter, or null. + * @param minimumValue the minimum value of the parameter, or null. + * @param maximumValue the maximum value of the parameter, or null. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + * @throws OpenDataException if any condition in the list above is broken. + */ + public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, + Object defaultValue, Comparable minimumValue, + Comparable maximumValue) + throws OpenDataException + { + this(name, desc, type); + if (defaultValue != null && !(type.isValue(defaultValue))) + throw new OpenDataException("The default value is not a member of the " + + "open type given."); + if (minimumValue != null && !(type.isValue(minimumValue))) + throw new OpenDataException("The minimum value is not a member of the " + + "open type given."); + if (maximumValue != null && !(type.isValue(maximumValue))) + throw new OpenDataException("The maximum value is not a member of the " + + "open type given."); + if (defaultValue != null && (type instanceof ArrayType || + type instanceof TabularType)) + throw new OpenDataException("Default values are not applicable for " + + "array or tabular types."); + if (minValue != null && maxValue != null + && minValue.compareTo(maxValue) > 0) + throw new OpenDataException("The minimum value is greater than the " + + "maximum."); + if (minValue != null && defaultValue != null + && minValue.compareTo(defaultValue) > 0) + throw new OpenDataException("The minimum value is greater than the " + + "default."); + if (defaultValue != null && maxValue != null + && maxValue.compareTo(defaultValue) < 0) + throw new OpenDataException("The default value is greater than the " + + "maximum."); + + this.defaultValue = defaultValue; + minValue = minimumValue; + maxValue = maximumValue; + } + + /** + *

    + * Constructs a new {@link OpenMBeanParameterInfo} using the + * specified name, description, open type, default value and + * set of legal values. The name, description and open type cannot be + * null and the name and description may not be equal + * to the empty string. The default, maximum and minimum values may + * be null. The following conditions apply when the + * parameters mentioned are non-null: + *

    + *
      + *
    • The default value and each of the legal values must be a valid + * value for the given open type.
    • + *
    • Default and legal values are not applicable to the open types, {@link + * ArrayType} and {@link TabularType}.
    • + *
    • The default value is not in the set of legal values.
    • + *
    + *

    + * The legal values are copied from the array into a unmodifiable set, + * so future modifications to the array have no effect. + *

    + * + * @param name the name of the parameter. + * @param desc a description of the parameter. + * @param type the open type of the parameter. + * @param defaultValue the default value of the parameter, or null. + * @param legalValues the legal values of the parameter. May be + * null or an empty array. + * @throws IllegalArgumentException if the name, description or + * open type are null + * or the name or description are + * the empty string. + * @throws OpenDataException if any condition in the list above is broken. + */ + public OpenMBeanParameterInfoSupport(String name, String desc, OpenType type, + Object defaultValue, Object[] legalValues) + throws OpenDataException + { + this(name, desc, type); + if (defaultValue != null && !(type.isValue(defaultValue))) + throw new OpenDataException("The default value is not a member of the " + + "open type given."); + if (defaultValue != null && (type instanceof ArrayType || + type instanceof TabularType)) + throw new OpenDataException("Default values are not applicable for " + + "array or tabular types."); + if (legalValues != null && (type instanceof ArrayType || + type instanceof TabularType)) + throw new OpenDataException("Legal values are not applicable for " + + "array or tabular types."); + if (legalValues != null && legalValues.length > 0) + { + Set lv = new HashSet(legalValues.length); + for (int a = 0; a < legalValues.length; ++a) + { + if (legalValues[a] != null && + !(type.isValue(legalValues[a]))) + throw new OpenDataException("The legal value, " + + legalValues[a] + + "is not a member of the " + + "open type given."); + lv.add(legalValues[a]); + } + if (defaultValue != null && !(lv.contains(defaultValue))) + throw new OpenDataException("The default value is not in the set " + + "of legal values."); + this.legalValues = Collections.unmodifiableSet(lv); + } + this.defaultValue = defaultValue; + } + + /** + * Compares this parameter with the supplied object. This returns + * true iff the object is an instance of {@link OpenMBeanParameterInfo} + * with an equal name and open type and the same default, minimum, + * maximum and legal values. + * + * @param obj the object to compare. + * @return true if the object is a {@link OpenMBeanParameterInfo} + * instance, + * name.equals(object.getName()), + * openType.equals(object.getOpenType()), + * defaultValue.equals(object.getDefaultValue()), + * minValue.equals(object.getMinValue()), + * maxValue.equals(object.getMaxValue()), + * and legalValues.equals(object.getLegalValues()). + */ + public boolean equals(Object obj) + { + if (!(obj instanceof OpenMBeanParameterInfo)) + return false; + OpenMBeanParameterInfo o = (OpenMBeanParameterInfo) obj; + return getName().equals(o.getName()) && + openType.equals(o.getOpenType()) && + (defaultValue == null ? o.getDefaultValue() == null : + defaultValue.equals(o.getDefaultValue())) && + (minValue == null ? o.getMinValue() == null : + minValue.equals(o.getMinValue())) && + (maxValue == null ? o.getMaxValue() == null : + maxValue.equals(o.getMaxValue())) && + (legalValues == null ? o.getLegalValues() == null : + legalValues.equals(o.getLegalValues())); + } + + /** + * Returns the default value of this parameter, or null + * if there is no default value. + * + * @return the default value of the parameter, or null + * if there is no default. + */ + public Object getDefaultValue() + { + return defaultValue; + } + + /** + * Returns a {@link java.util.Set} enumerating the legal values + * of this parameter, or null if no such limited + * set exists for this parameter. + * + * @return a set of legal values, or null if no such + * set exists. + */ + public Set getLegalValues() + { + return legalValues; + } + + /** + * Returns the maximum value of this parameter, or null + * if there is no maximum. + * + * @return the maximum value, or null if none exists. + */ + public Comparable getMaxValue() + { + return maxValue; + } + + /** + * Returns the minimum value of this parameter, or null + * if there is no minimum. + * + * @return the minimum value, or null if none exists. + */ + public Comparable getMinValue() + { + return minValue; + } + + /** + * Returns the open type instance which represents the type of this + * parameter. + * + * @return the open type of this parameter. + */ + public OpenType getOpenType() + { + return openType; + } + + /** + * Returns true if this parameter has a default value + * (i.e. the value is non-null). + * + * @return true if this parameter has a default. + */ + public boolean hasDefaultValue() + { + return defaultValue != null; + } + + /** + *

    + * Returns the hashcode of the parameter information as the sum of + * the hashcodes of the name, open type, default value, maximum + * value, minimum value and the set of legal values. + *

    + *

    + * As instances of this class are immutable, the hash code + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return the hashcode of the parameter information. + */ + public int hashCode() + { + if (hashCode == null) + hashCode = Integer.valueOf(getName().hashCode() + + openType.hashCode() + + (defaultValue == null ? 0 : + defaultValue.hashCode()) + + (minValue == null ? 0 : + minValue.hashCode()) + + (maxValue == null ? 0 : + maxValue.hashCode()) + + (legalValues == null ? 0 : + legalValues.hashCode())); + return hashCode.intValue(); + } + + /** + * Returns true if there is a set of legal values for this + * parameter (i.e. the value is non-null). + * + * @return true if a set of legal values exists for this + * parameter. + */ + public boolean hasLegalValues() + { + return legalValues != null; + } + + /** + * Returns true if there is a maximum value for this parameter + * (i.e. the value is non-null). + * + * @return true if a maximum value exists for this parameter. + */ + public boolean hasMaxValue() + { + return maxValue != null; + } + + /** + * Returns true if there is a minimum value for this parameter. + * (i.e. the value is non-null). + * + * @return true if a minimum value exists for this parameter. + */ + public boolean hasMinValue() + { + return minValue != null; + } + + /** + * Returns true if the specified object is a valid value for + * this parameter. + * + * @param obj the object to test. + * @return true if obj is a valid value for this + * parameter. + */ + public boolean isValue(Object obj) + { + return openType.isValue(obj); + } + + /** + *

    + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.OpenMBeanParameterInfo) + * along with the name, open type, default, minimum, maximum + * and legal values of the parameter. + *

    + *

    + * As instances of this class are immutable, the return value + * is computed just once for each instance and reused + * throughout its life. + *

    + * + * @return a @link{java.lang.String} instance representing + * the instance in textual form. + */ + public String toString() + { + if (string == null) + string = getClass().getName() + + "[name=" + getName() + + ",openType=" + openType + + ",defaultValue=" + defaultValue + + ",minValue=" + minValue + + ",maxValue=" + maxValue + + ",legalValues=" + legalValues + + "]"; + return string; + } + +} diff --git a/libjava/classpath/javax/management/openmbean/OpenType.java b/libjava/classpath/javax/management/openmbean/OpenType.java index b08c40cccce..13c9e8a3e01 100644 --- a/libjava/classpath/javax/management/openmbean/OpenType.java +++ b/libjava/classpath/javax/management/openmbean/OpenType.java @@ -133,11 +133,11 @@ public abstract class OpenType testString = className; boolean openTypeFound = false; for (int a = 0; a < ALLOWED_CLASSNAMES.length; ++a) - if (ALLOWED_CLASSNAMES[a].equals(className)) + if (ALLOWED_CLASSNAMES[a].equals(testString)) openTypeFound = true; if (!openTypeFound) - throw new OpenDataException("The class name does not specify " + - "a valid open type."); + throw new OpenDataException("The class name, " + testString + + ", does not specify a valid open type."); this.className = className; typeName = name; description = desc; diff --git a/libjava/classpath/javax/management/openmbean/SimpleType.java b/libjava/classpath/javax/management/openmbean/SimpleType.java index 3962909d4bb..39753f1c6ea 100644 --- a/libjava/classpath/javax/management/openmbean/SimpleType.java +++ b/libjava/classpath/javax/management/openmbean/SimpleType.java @@ -53,7 +53,7 @@ import java.io.ObjectStreamException; * @author Andrew John Hughes (gnu_andrew@member.fsf.org) * @since 1.5 */ -public class SimpleType +public final class SimpleType extends OpenType { diff --git a/libjava/classpath/javax/management/openmbean/TabularData.java b/libjava/classpath/javax/management/openmbean/TabularData.java index 17c8de98109..7e57e0fd815 100644 --- a/libjava/classpath/javax/management/openmbean/TabularData.java +++ b/libjava/classpath/javax/management/openmbean/TabularData.java @@ -55,12 +55,14 @@ public interface TabularData /** * Calculates the index the specified {@link CompositeData} value * would have, if it was to be added to this {@link TabularData} - * instance. This method includes a check that the type of - * the given value is the same as the row type of this instance, - * but not a check for existing instances of the given value. - * The value must also not be null. Possible indices - * are returned by the {@link TabularType#getIndexNames()} method - * of this instance's tabular type. + * instance. This method includes a check that the type of the + * given value is the same as the row type of this instance, but not + * a check for existing instances of the given value. The value + * must also not be null. Possible indices are + * returned by the {@link TabularType#getIndexNames()} method of + * this instance's tabular type. The returned indices are the + * values of the fields in the supplied {@link CompositeData} + * instance that match the names given in the {@link TabularType}. * * @param val the {@link CompositeData} value whose index should * be calculated. @@ -106,7 +108,7 @@ public interface TabularData * Compares the specified object with this object for equality. * The object is judged equivalent if it is non-null, and also * an instance of {@link TabularData} with the same row type, - * and index to value mappings. The two compared instances may + * and {@link CompositeData} values. The two compared instances may * be equivalent even if they represent different implementations * of {@link TabularData}. * @@ -123,9 +125,9 @@ public interface TabularData * @return the matching {@link CompositeData} value, or * null if one does not exist. * @throws NullPointerException if the key is null. - * @throws InvalidOpenTypeException if the key does not match - * the {@link TabularType} of this - * instance. + * @throws InvalidKeyException if the key does not match + * the {@link TabularType} of this + * instance. */ CompositeData get(Object[] key); @@ -138,14 +140,12 @@ public interface TabularData TabularType getTabularType(); /** - * Returns the hash code of the composite data type. - * This is computed as the sum of the hash codes of the - * each index and its value, together with the hash - * code of the tabular type. These are the same elements - * of the type that are compared as part of the - * {@link #equals(java.lang.Object)} method, thus ensuring - * that the hashcode is compatible with the equality - * test. + * Returns the hash code of the composite data type. This is + * computed as the sum of the hash codes of each value, together + * with the hash code of the tabular type. These are the same + * elements of the type that are compared as part of the {@link + * #equals(java.lang.Object)} method, thus ensuring that the + * hashcode is compatible with the equality test. * * @return the hash code of this instance. */ @@ -196,15 +196,16 @@ public interface TabularData * values in the array, as well as from the existing values * in the table. The operation should be atomic; if one * value can not be added, then none of the values should - * be. + * be. If the array is null or empty, the + * method simply returns. * * @param vals the {@link CompositeData} values to add. - * @throws NullPointerException if val is + * @throws NullPointerException if a value from the array is * null. - * @throws InvalidOpenTypeException if the type of the + * @throws InvalidOpenTypeException if the type of a * given value does not * match the row type. - * @throws KeyAlreadyExistsException if the value has the + * @throws KeyAlreadyExistsException if a value has the * same calculated index * as an existing value or * of one of the other diff --git a/libjava/classpath/javax/management/openmbean/TabularDataSupport.java b/libjava/classpath/javax/management/openmbean/TabularDataSupport.java new file mode 100644 index 00000000000..9dc8a0e9727 --- /dev/null +++ b/libjava/classpath/javax/management/openmbean/TabularDataSupport.java @@ -0,0 +1,652 @@ +/* TabularDataSupport.java -- Tables of composite data structures. + 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 javax.management.openmbean; + +import java.io.Serializable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * Provides an implementation of the {@link TabularData} + * interface using a {@link java.util.HashMap}. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class TabularDataSupport + implements TabularData, Serializable, Cloneable, Map +{ + + /** + * Compatible with JDK 1.5 + */ + private static final long serialVersionUID = 5720150593236309827L; + + /** + * Mapping of rows to column values. + * + * @serial the map of rows to column values. + */ + private Map dataMap; + + /** + * The tabular type which represents this tabular data instance. + * + * @serial the type information for this instance. + */ + private TabularType tabularType; + + /** + * Constructs a new empty {@link TabularDataSupport} with the + * specified type. The type may not be null. This constructor + * simply calls the other, with the default initial capacity of + * 101 and default load factor of 0.75. + * + * @param type the tabular type of this tabular data instance. + * @throws IllegalArgumentException if type is + * null. + */ + public TabularDataSupport(TabularType type) + { + this(type, 101, 0.75f); + } + + /** + * Constructs a new empty {@link TabularDataSupport} with the + * specified type and the supplied initial capacity and load factor + * being used for the underlying {@link java.util.HashMap}. The + * type may not be null and the initial capacity and load factor + * must be positive. + * + * @param type the tabular type of this tabular data instance. + * @param cap the initial capacity of the underlying map. + * @param lf the load factor of the underlying map. + * @throws IllegalArgumentException if type is + * null, or + * cap or + * lf are + * negative. + */ + public TabularDataSupport(TabularType type, int cap, float lf) + { + if (type == null) + throw new IllegalArgumentException("The type may not be null."); + tabularType = type; + dataMap = new HashMap(cap, lf); + } + + /** + * Calculates the index the specified {@link CompositeData} value + * would have, if it was to be added to this {@link TabularData} + * instance. This method includes a check that the type of the + * given value is the same as the row type of this instance, but not + * a check for existing instances of the given value. The value + * must also not be null. Possible indices are + * selected by the {@link TabularType#getIndexNames()} method of + * this instance's tabular type. The returned indices are the + * values of the fields in the supplied {@link CompositeData} + * instance that match the names given in the {@link TabularType}. + * + * @param val the {@link CompositeData} value whose index should + * be calculated. + * @return the index the value would take on, if it were to be added. + * @throws NullPointerException if the value is null. + * @throws InvalidOpenTypeException if the value does not match the + * row type of this instance. + */ + public Object[] calculateIndex(CompositeData val) + { + if (!(val.getCompositeType().equals(tabularType.getRowType()))) + throw new InvalidOpenTypeException("The type of the given value " + + "does not match the row type " + + "of this instance."); + List indexNames = tabularType.getIndexNames(); + List matchingIndicies = new ArrayList(indexNames.size()); + Iterator it = indexNames.iterator(); + while (it.hasNext()) + { + String name = (String) it.next(); + matchingIndicies.add(val.get(name)); + } + return matchingIndicies.toArray(); + } + + /** + * Removes all {@link CompositeData} values from the table. + */ + public void clear() + { + dataMap.clear(); + } + + /** + * Returns a shallow clone of the information, as obtained by the + * {@link Object} implementation of {@link Object#clone()}. The map + * is also cloned, but it still references the same objects. + * + * @return a shallow clone of this {@link TabularDataSupport}. + */ + public Object clone() + { + TabularDataSupport clone = null; + try + { + clone = (TabularDataSupport) super.clone(); + clone.setMap((HashMap) ((HashMap) dataMap).clone()); + } + catch (CloneNotSupportedException e) + { + /* This won't happen as we implement Cloneable */ + } + return clone; + } + + /** + * Returns true iff this instance of the {@link TabularData} class + * contains a {@link CompositeData} value at the specified index. + * The method returns false if the given key can + * not be cast to an {@link java.lang.Object} array; otherwise + * it returns the result of {@link #containsKey(java.lang.Object[])}. + * + * + * @param key the key to test for. + * @return true if the key maps to a {@link CompositeData} value. + */ + public boolean containsKey(Object key) + { + if (key instanceof Object[]) + return containsKey((Object[]) key); + else + return false; + } + + /** + * Returns true iff this instance of the {@link TabularData} class + * contains a {@link CompositeData} value at the specified index. + * In any other circumstance, including if the given key + * is null or of the incorrect type, according to + * the {@link TabularType} of this instance, this method returns + * false. + * + * @param key the key to test for. + * @return true if the key maps to a {@link CompositeData} value. + */ + public boolean containsKey(Object[] key) + { + if (key == null) + return false; + if (!(isKeyValid(key))) + return false; + return dataMap.containsKey(key); + } + + /** + * Returns true iff this instance of the {@link TabularData} class + * contains the specified {@link CompositeData} value. If the given + * value is not an instance of {@link CompositeData}, this method + * simply returns false. + * + * @param val the value to test for. + * @return true if the value exists. + */ + public boolean containsValue(Object val) + { + if (val instanceof CompositeData) + return containsValue((CompositeData) val); + else + return false; + } + + /** + * Returns true iff this instance of the {@link TabularData} class + * contains the specified {@link CompositeData} value. + * In any other circumstance, including if the given value + * is null or of the incorrect type, according to + * the {@link TabularType} of this instance, this method returns + * false. + * + * @param val the value to test for. + * @return true if the value exists. + */ + public boolean containsValue(CompositeData val) + { + if (val == null) + return false; + if (!(val.getCompositeType().equals(tabularType.getRowType()))) + return false; + return dataMap.containsValue(val); + } + + /** + *

    + * Returns a set view of the mappings in this Map. Each element in the + * set is a Map.Entry. The set is backed by the map, so that changes in + * one show up in the other. Modifications made while an iterator is + * in progress cause undefined behavior. If the set supports removal, + * these methods remove the underlying mapping from the map: + * Iterator.remove, Set.remove, + * removeAll, retainAll, and clear. + * Element addition, via add or addAll, is + * not supported via this set. + *

    + *

    + * Note: using the + * {@link java.util.Map.Entry#setValue(Object) will cause corruption of + * the index to row mappings. + *

    + * + * @return the set view of all mapping entries + * @see java.util.Map.Entry + */ + public Set entrySet() + { + return dataMap.entrySet(); + } + + /** + * Compares the specified object with this object for equality. + * The object is judged equivalent if it is non-null, and also + * an instance of {@link TabularData} with the same row type, + * and {@link CompositeData} values. The two compared instances may + * be equivalent even if they represent different implementations + * of {@link TabularData}. + * + * @param obj the object to compare for equality. + * @return true if obj is equal to this. + */ + public boolean equals(Object obj) + { + if (!(obj instanceof TabularData)) + return false; + TabularData data = (TabularData) obj; + return tabularType.equals(data.getTabularType()) && + dataMap.values().equals(data.values()); + } + + /** + * Retrieves the value for the specified key by simply + * calling get((Object[]) key). + * + * @param key the key whose value should be returned. + * @return the matching {@link CompositeData} value, or + * null if one does not exist. + * @throws NullPointerException if the key is null. + * @throws ClassCastException if the key is not an instance + * of Object[]. + * @throws InvalidKeyException if the key does not match + * the {@link TabularType} of this + * instance. + */ + public Object get(Object key) + { + return get((Object[]) key); + } + + /** + * Retrieves the {@link CompositeData} value for the specified + * key, or null if no such mapping exists. + * + * @param key the key whose value should be returned. + * @return the matching {@link CompositeData} value, or + * null if one does not exist. + * @throws NullPointerException if the key is null. + * @throws InvalidKeyException if the key does not match + * the {@link TabularType} of this + * instance. + */ + public CompositeData get(Object[] key) + { + if (!(isKeyValid(key))) + throw new InvalidKeyException("The key does not match the " + + "tabular type of this instance."); + return (CompositeData) dataMap.get(key); + } + + /** + * Returns the tabular type which corresponds to this instance + * of {@link TabularData}. + * + * @return the tabular type for this instance. + */ + public TabularType getTabularType() + { + return tabularType; + } + + /** + * Returns the hash code of the composite data type. This is + * computed as the sum of the hash codes of each value, together + * with the hash code of the tabular type. These are the same + * elements of the type that are compared as part of the {@link + * #equals(java.lang.Object)} method, thus ensuring that the + * hashcode is compatible with the equality test. + * + * @return the hash code of this instance. + */ + public int hashCode() + { + return tabularType.hashCode() + dataMap.values().hashCode(); + } + + /** + * Returns true if this {@link TabularData} instance + * contains no {@link CompositeData} values. + * + * @return true if the instance is devoid of rows. + */ + public boolean isEmpty() + { + return dataMap.isEmpty(); + } + + /** + * Returns true if the given key is valid for the + * @link{TabularType} of this instance. + * + * @return true if the key is valid. + * @throws NullPointerException if key + * is null. + */ + private boolean isKeyValid(Object[] key) + { + Iterator it = tabularType.getIndexNames().iterator(); + CompositeType rowType = tabularType.getRowType(); + for (int a = 0; it.hasNext(); ++a) + { + OpenType type = rowType.getType((String) it.next()); + if (!(type.isValue(key[a]))) + return false; + } + return true; + } + + /** + * Returns a set view of the keys in this Map. The set is backed by the + * map, so that changes in one show up in the other. Modifications made + * while an iterator is in progress cause undefined behavior. If the set + * supports removal, these methods remove the underlying mapping from + * the map: Iterator.remove, Set.remove, + * removeAll, retainAll, and clear. + * Element addition, via add or addAll, is + * not supported via this set. + * + * @return the set view of all keys + */ + public Set keySet() + { + return dataMap.keySet(); + } + + /** + * Adds the specified {@link CompositeData} value to the + * table. The value must be non-null, of the same type + * as the row type of this instance, and must not have + * the same index as an existing value. The index is + * calculated using the index names of the + * {@link TabularType} for this instance. + * + * @param val the {@link CompositeData} value to add. + * @throws NullPointerException if val is + * null. + * @throws InvalidOpenTypeException if the type of the + * given value does not + * match the row type. + * @throws KeyAlreadyExistsException if the value has the + * same calculated index + * as an existing value. + */ + public void put(CompositeData val) + { + Object[] key = calculateIndex(val); + if (dataMap.containsKey(key)) + throw new KeyAlreadyExistsException("A value with this index " + + "already exists."); + dataMap.put(key, val); + } + + /** + * Adds the specified {@link CompositeData} value to the + * table, ignoring the supplied key, by simply calling + * put((CompositeData) val). + * + * @param key ignored. + * @param val the {@link CompositeData} value to add. + * @return the {@link CompositeData} value. + * @throws NullPointerException if val is + * null. + * @throws InvalidOpenTypeException if the type of the + * given value does not + * match the row type. + * @throws KeyAlreadyExistsException if the value has the + * same calculated index + * as an existing value. + */ + public Object put(Object key, Object val) + { + put((CompositeData) val); + return val; + } + + /** + * Adds each of the specified {@link CompositeData} values + * to the table. Each element of the array must meet the + * conditions given for the {@link #put(CompositeData)} + * method. In addition, the index of each value in the + * array must be distinct from the index of the other + * values in the array, as well as from the existing values + * in the table. The operation should be atomic; if one + * value can not be added, then none of the values should + * be. If the array is null or empty, the + * method simply returns. + * + * @param vals the {@link CompositeData} values to add. + * @throws NullPointerException if a value from the array is + * null. + * @throws InvalidOpenTypeException if the type of a + * given value does not + * match the row type. + * @throws KeyAlreadyExistsException if a value has the + * same calculated index + * as an existing value or + * of one of the other + * specified values. + */ + public void putAll(CompositeData[] vals) + { + if (vals == null || vals.length == 0) + return; + Map mapToAdd = new HashMap(vals.length); + for (int a = 0; a < vals.length; ++a) + { + Object[] key = calculateIndex(vals[a]); + if (dataMap.containsKey(key)) + throw new KeyAlreadyExistsException("Element " + a + ": A " + + "value with this index " + + "already exists."); + mapToAdd.put(key, vals[a]); + } + dataMap.putAll(mapToAdd); + } + + /** + * Converts each value from the specified map to a member of an + * array of {@link CompositeData} values and adds them using {@link + * #put(CompositeData[])}, if possible. As in {@link + * #put(Object,Object)}, the keys are simply ignored. This method + * is useful for adding the {@link CompositeData} values from a + * different {@link TabularData} instance, which uses the same + * {@link TabularType} but a different selection of index names, to + * this one. If the map is null or empty, the method + * simply returns. + * + * @param m the map to add. Only the values are used and must + * all be instances of {@link CompositeData}. + * @throws NullPointerException if a value from the map is + * null. + * @throws ClassCastException if a value from the map is not + * an instance of {@link CompositeData}. + * @throws InvalidOpenTypeException if the type of the + * given value does not + * match the row type. + * @throws KeyAlreadyExistsException if the value has the + * same calculated index + * as an existing value or + * of one of the other + * specified values. + */ + public void putAll(Map m) + { + if (m == null || m.size() == 0) + return; + Collection vals = m.values(); + CompositeData[] data = new CompositeData[vals.size()]; + Iterator it = vals.iterator(); + for (int a = 0; it.hasNext(); ++a) + { + data[a] = (CompositeData) it.next(); + } + putAll(data); + } + + /** + * Removes the value for the specified key by simply + * calling remove((Object[]) key). + * + * @param key the key whose value should be removed. + * @return the removed value, or null if + * there is no value for the given key. + * @throws NullPointerException if the key is null. + * @throws ClassCastException if the key is not an instance + * of Object[]. + * @throws InvalidOpenTypeException if the key does not match + * the {@link TabularType} of this + * instance. + */ + public Object remove(Object key) + { + return remove((Object[]) key); + } + + /** + * Removes the {@link CompositeData} value located at the + * specified index. null is returned if the + * value does not exist. Otherwise, the removed value is + * returned. + * + * @param key the key of the value to remove. + * @return the removed value, or null if + * there is no value for the given key. + * @throws NullPointerException if the key is null. + * @throws InvalidOpenTypeException if the key does not match + * the {@link TabularType} of this + * instance. + */ + public CompositeData remove(Object[] key) + { + if (!(isKeyValid(key))) + throw new InvalidKeyException("The key does not match the " + + "tabular type of this instance."); + return (CompositeData) dataMap.remove(key); + } + + /** + * Package-private method to set the internal {@link java.util.Map} + * instance (used in cloning). + * + * @param map the new map used. + */ + void setMap(Map map) + { + dataMap = map; + } + + /** + * Returns the number of {@link CompositeData} values or rows + * in the table. + * + * @return the number of rows in the table. + */ + public int size() + { + return dataMap.size(); + } + + /** + * Returns a textual representation of this instance. This + * is constructed using the class name + * (javax.management.openmbean.TabularDataSupport) + * and the result of calling toString() on the + * tabular type and underlying hash map instance. + * + * @return a {@link java.lang.String} representation of the + * object. + */ + public String toString() + { + return getClass().getName() + + "[tabularType=" + tabularType + + ",dataMap=" + dataMap + + "]"; + } + + /** + * Returns a collection (or bag) view of the values in this Map. The + * collection is backed by the map, so that changes in one show up in + * the other. Modifications made while an iterator is in progress cause + * undefined behavior. If the collection supports removal, these methods + * remove the underlying mapping from the map: Iterator.remove, + * Collection.remove, removeAll, + * retainAll, and clear. Element addition, via + * add or addAll, is not supported via this + * collection. + * + * @return the collection view of all values + */ + public Collection values() + { + return dataMap.values(); + } + +} + diff --git a/libjava/classpath/javax/naming/CannotProceedException.java b/libjava/classpath/javax/naming/CannotProceedException.java index 27868e21ea2..bc2085879cc 100644 --- a/libjava/classpath/javax/naming/CannotProceedException.java +++ b/libjava/classpath/javax/naming/CannotProceedException.java @@ -51,7 +51,7 @@ public class CannotProceedException extends NamingException // Serialized fields. protected Name remainingNewName; - protected Hashtable environment; + protected Hashtable environment; protected Name altName; protected Context altNameCtx; @@ -65,12 +65,12 @@ public class CannotProceedException extends NamingException super (msg); } - public Hashtable getEnvironment() + public Hashtable getEnvironment() { return environment; } - public void setEnvironment(Hashtable environment) + public void setEnvironment(Hashtable environment) { this.environment = environment; } diff --git a/libjava/classpath/javax/naming/CompositeName.java b/libjava/classpath/javax/naming/CompositeName.java index 322f63279a2..612932152da 100644 --- a/libjava/classpath/javax/naming/CompositeName.java +++ b/libjava/classpath/javax/naming/CompositeName.java @@ -65,7 +65,7 @@ public class CompositeName implements Name, Cloneable, Serializable elts = new Vector (); } - protected CompositeName (Enumeration comps) + protected CompositeName (Enumeration comps) { elts = new Vector (); try @@ -230,7 +230,7 @@ public class CompositeName implements Name, Cloneable, Serializable return (String) elts.get (posn); } - public Enumeration getAll () + public Enumeration getAll () { return elts.elements (); } diff --git a/libjava/classpath/javax/naming/CompoundName.java b/libjava/classpath/javax/naming/CompoundName.java index 556edfc33f2..703d44e4700 100644 --- a/libjava/classpath/javax/naming/CompoundName.java +++ b/libjava/classpath/javax/naming/CompoundName.java @@ -73,7 +73,7 @@ public class CompoundName implements Name, Cloneable, Serializable initializeSyntax (); } - protected CompoundName (Enumeration comps, Properties syntax) + protected CompoundName (Enumeration comps, Properties syntax) { elts = new Vector (); mySyntax = syntax; @@ -289,7 +289,7 @@ public class CompoundName implements Name, Cloneable, Serializable return (String) elts.get (posn); } - public Enumeration getAll () + public Enumeration getAll () { return elts.elements (); } diff --git a/libjava/classpath/javax/naming/Context.java b/libjava/classpath/javax/naming/Context.java index 46b540304b4..4b87b9e01e6 100644 --- a/libjava/classpath/javax/naming/Context.java +++ b/libjava/classpath/javax/naming/Context.java @@ -270,7 +270,7 @@ public interface Context * @return the enumeration over the names, known for the given subcontext. * @throws NamingException */ - NamingEnumeration list(Name name) throws NamingException; + NamingEnumeration list(Name name) throws NamingException; /** * Creates and returns the enumeration over the name bindings that are present @@ -284,7 +284,7 @@ public interface Context * @return the enumeration over the names, known for the given subcontext. * @throws NamingException */ - NamingEnumeration list(String name) throws NamingException; + NamingEnumeration list(String name) throws NamingException; /** * Creates and returns the enumeration over the name - object bindings that @@ -297,7 +297,7 @@ public interface Context * @return the enumeration over the names, known for the given subcontext. * @throws NamingException */ - NamingEnumeration listBindings(Name name) throws NamingException; + NamingEnumeration listBindings(Name name) throws NamingException; /** * Creates and returns the enumeration over the name - object bindings that @@ -310,7 +310,7 @@ public interface Context * @return the enumeration over the names, known for the given subcontext. * @throws NamingException */ - NamingEnumeration listBindings(String name) throws NamingException; + NamingEnumeration listBindings(String name) throws NamingException; /** * Creates the new naming subcontext and binds it to the current (this) @@ -467,7 +467,7 @@ public interface Context * @return the table, representing the environment of this context * @throws NamingException */ - Hashtable getEnvironment() throws NamingException; + Hashtable getEnvironment() throws NamingException; /** * Releases all resources, associated with this context. The close() method diff --git a/libjava/classpath/javax/naming/InitialContext.java b/libjava/classpath/javax/naming/InitialContext.java index d4a9587f21c..1a3b1e38b03 100644 --- a/libjava/classpath/javax/naming/InitialContext.java +++ b/libjava/classpath/javax/naming/InitialContext.java @@ -73,7 +73,7 @@ public class InitialContext implements Context /** * The environment, associated with this initial context. */ - protected Hashtable myProps; + protected Hashtable myProps; /** * The list of the properties, to that the second alternative value must @@ -111,7 +111,7 @@ public class InitialContext implements Context * created. * @throws NamingException */ - public InitialContext(Hashtable environment) throws NamingException + public InitialContext(Hashtable environment) throws NamingException { init(environment); } @@ -166,13 +166,13 @@ public class InitialContext implements Context * not later reuse this structure for other purposes. * @since 1.3 */ - protected void init(Hashtable environment) throws NamingException + protected void init(Hashtable environment) throws NamingException { // If is documented that the caller should not modify the environment. if (environment != null) - myProps = environment; + myProps = (Hashtable) environment; else - myProps = new Hashtable(); + myProps = new Hashtable(); Applet napplet = (Applet) myProps.get(Context.APPLET); @@ -424,25 +424,25 @@ public class InitialContext implements Context } /** @inheritDoc */ - public NamingEnumeration list (Name name) throws NamingException + public NamingEnumeration list (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).list (name); } /** @inheritDoc */ - public NamingEnumeration list (String name) throws NamingException + public NamingEnumeration list (String name) throws NamingException { return getURLOrDefaultInitCtx (name).list (name); } /** @inheritDoc */ - public NamingEnumeration listBindings (Name name) throws NamingException + public NamingEnumeration listBindings (Name name) throws NamingException { return getURLOrDefaultInitCtx (name).listBindings (name); } /** @inheritDoc */ - public NamingEnumeration listBindings (String name) throws NamingException + public NamingEnumeration listBindings (String name) throws NamingException { return getURLOrDefaultInitCtx (name).listBindings (name); } @@ -522,7 +522,7 @@ public class InitialContext implements Context } /** @inheritDoc */ - public Hashtable getEnvironment () throws NamingException + public Hashtable getEnvironment () throws NamingException { return myProps; } diff --git a/libjava/classpath/javax/naming/Name.java b/libjava/classpath/javax/naming/Name.java index f0475766a97..687ebd6fbde 100644 --- a/libjava/classpath/javax/naming/Name.java +++ b/libjava/classpath/javax/naming/Name.java @@ -60,8 +60,10 @@ import java.util.Enumeration; * @author Anthony Green (green@redhat.com) * @author Mark Wielaard (mark@klomp.org) */ -public interface Name extends Cloneable, Serializable, Comparable +public interface Name extends Cloneable, Serializable, Comparable { + // This class is implemented as gnu.javax.naming.ictxImpl.trans.GnuName + long serialVersionUID = -3617482732056931635L; /** @@ -80,7 +82,7 @@ public interface Name extends Cloneable, Serializable, Comparable * Returns a non-null (but possibly empty) Enumeration of the * components of the Name as Strings. */ - Enumeration getAll(); + Enumeration getAll(); /** * Gets the component at the given index. @@ -94,22 +96,27 @@ public interface Name extends Cloneable, Serializable, Comparable * Returns the components till the given index as a Name. * The returned Name can be modified without changing the * original. + * + * @param posn the ending position, exclusive * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). */ - Name getPrefix(int i); + Name getPrefix(int posn); /** * Returns the components from the given index till the end as a * Name. * The returned Name can be modified without changing the * original. + * + * @param posn the starting position, inclusive. If it is equal to the size + * of the name, the empty name is returned. * * @exception ArrayIndexOutOfBoundsException if the given index is smaller * then zero or greater then or equal to size(). */ - Name getSuffix(int i); + Name getSuffix(int posn); /** * Adds the given String component to the end of this @@ -145,7 +152,8 @@ public interface Name extends Cloneable, Serializable, Comparable /** * Inserts all the components of the given Name to this - * Name at the given index. The method modifies the current + * Name at the given index. Components after this index + * (if any) are shifted up. The method modifies the current * Name and then returns it. * * @exception ArrayIndexOutOfBoundsException if the given index is smaller diff --git a/libjava/classpath/javax/naming/NamingEnumeration.java b/libjava/classpath/javax/naming/NamingEnumeration.java index 86b1dfb414d..a7c57706f8b 100644 --- a/libjava/classpath/javax/naming/NamingEnumeration.java +++ b/libjava/classpath/javax/naming/NamingEnumeration.java @@ -52,7 +52,7 @@ import java.util.Enumeration; * exception has been thrown, not other method should be called of that * enumeration.

    */ -public interface NamingEnumeration extends Enumeration +public interface NamingEnumeration extends Enumeration { /** * Returns the next element in this enumeration. The naming - specific @@ -62,7 +62,7 @@ public interface NamingEnumeration extends Enumeration * @return the next element of this enumeration * @throws NamingException */ - Object next() throws NamingException; + T next() throws NamingException; /** * Checks if there are more unvisited elements in the enumeration, throwing diff --git a/libjava/classpath/javax/naming/Reference.java b/libjava/classpath/javax/naming/Reference.java index 0fdecc19ec7..3379bd5a837 100644 --- a/libjava/classpath/javax/naming/Reference.java +++ b/libjava/classpath/javax/naming/Reference.java @@ -58,7 +58,7 @@ public class Reference implements Cloneable, Serializable * The list of addresses, stored in this reference. The object may be * have by several different addresses. */ - protected Vector addrs; + protected Vector addrs; /** * The name of the class factory to create an instance of the object, @@ -218,7 +218,7 @@ public class Reference implements Cloneable, Serializable /** * Get the enumeration over all defined addresses of the object. */ - public Enumeration getAll () + public Enumeration getAll () { return addrs.elements (); } diff --git a/libjava/classpath/javax/naming/ReferralException.java b/libjava/classpath/javax/naming/ReferralException.java index ec2178e77e6..c264d637f18 100644 --- a/libjava/classpath/javax/naming/ReferralException.java +++ b/libjava/classpath/javax/naming/ReferralException.java @@ -61,7 +61,7 @@ public abstract class ReferralException extends NamingException public abstract Object getReferralInfo(); public abstract Context getReferralContext() throws NamingException; - public abstract Context getReferralContext(Hashtable env) + public abstract Context getReferralContext(Hashtable env) throws NamingException; public abstract boolean skipReferral(); public abstract void retryReferral(); diff --git a/libjava/classpath/javax/naming/directory/Attribute.java b/libjava/classpath/javax/naming/directory/Attribute.java index 59bf66dabc8..d29e1eae0b2 100644 --- a/libjava/classpath/javax/naming/directory/Attribute.java +++ b/libjava/classpath/javax/naming/directory/Attribute.java @@ -51,7 +51,7 @@ public interface Attribute extends Cloneable, Serializable { long serialVersionUID = 8707690322213556804L; - NamingEnumeration getAll() throws NamingException; + NamingEnumeration getAll() throws NamingException; Object get() throws NamingException; int size(); String getID(); diff --git a/libjava/classpath/javax/naming/directory/Attributes.java b/libjava/classpath/javax/naming/directory/Attributes.java index 3d5ef9f4fa7..2dc2c610155 100644 --- a/libjava/classpath/javax/naming/directory/Attributes.java +++ b/libjava/classpath/javax/naming/directory/Attributes.java @@ -52,8 +52,8 @@ public interface Attributes extends Cloneable, Serializable boolean isCaseIgnored(); int size(); Attribute get(String attrID); - NamingEnumeration getAll(); - NamingEnumeration getIDs(); + NamingEnumeration getAll(); + NamingEnumeration getIDs(); Attribute put(String attrID, Object val); Attribute put(Attribute attr); Attribute remove(String attrID); diff --git a/libjava/classpath/javax/naming/directory/BasicAttribute.java b/libjava/classpath/javax/naming/directory/BasicAttribute.java index c6419794f10..5a1bb0e881f 100644 --- a/libjava/classpath/javax/naming/directory/BasicAttribute.java +++ b/libjava/classpath/javax/naming/directory/BasicAttribute.java @@ -62,7 +62,7 @@ public class BasicAttribute implements Attribute /** True if this attribute's values are ordered. */ protected boolean ordered; /** Values for this attribute. */ - protected transient Vector values; + protected transient Vector values; // Used by cloning. private BasicAttribute () @@ -182,7 +182,7 @@ public class BasicAttribute implements Attribute return values.get (index); } - public NamingEnumeration getAll () + public NamingEnumeration getAll () throws NamingException { return new BasicAttributeEnumeration (); diff --git a/libjava/classpath/javax/naming/directory/BasicAttributes.java b/libjava/classpath/javax/naming/directory/BasicAttributes.java index 9318fbb2be7..6880f5b3362 100644 --- a/libjava/classpath/javax/naming/directory/BasicAttributes.java +++ b/libjava/classpath/javax/naming/directory/BasicAttributes.java @@ -126,12 +126,12 @@ public class BasicAttributes implements Attributes return null; } - public NamingEnumeration getAll () + public NamingEnumeration getAll () { return new BasicAttributesEnumeration (false); } - public NamingEnumeration getIDs () + public NamingEnumeration getIDs () { return new BasicAttributesEnumeration (true); } diff --git a/libjava/classpath/javax/naming/directory/DirContext.java b/libjava/classpath/javax/naming/directory/DirContext.java index 002cb78a913..d7d94a3456b 100644 --- a/libjava/classpath/javax/naming/directory/DirContext.java +++ b/libjava/classpath/javax/naming/directory/DirContext.java @@ -72,12 +72,32 @@ public interface DirContext extends Context DirContext getSchema(String name) throws NamingException; DirContext getSchemaClassDefinition(Name name) throws NamingException; DirContext getSchemaClassDefinition(String name) throws NamingException; - NamingEnumeration search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException; - NamingEnumeration search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException; - NamingEnumeration search(Name name, Attributes matchingAttributes) throws NamingException; - NamingEnumeration search(String name, Attributes matchingAttributes) throws NamingException; - NamingEnumeration search(Name name, String filter, SearchControls cons) throws NamingException; - NamingEnumeration search(String name, String filter, SearchControls cons) throws NamingException; - NamingEnumeration search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException; - NamingEnumeration search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException; + NamingEnumeration search(Name name, + Attributes matchingAttributes, + String[] attributesToReturn) + throws NamingException; + NamingEnumeration search(String name, + Attributes matchingAttributes, + String[] attributesToReturn) + throws NamingException; + NamingEnumeration search(Name name, + Attributes matchingAttributes) + throws NamingException; + NamingEnumeration search(String name, + Attributes matchingAttributes) + throws NamingException; + NamingEnumeration search(Name name, String filter, + SearchControls cons) + throws NamingException; + NamingEnumeration search(String name, String filter, + SearchControls cons) + throws NamingException; + NamingEnumeration search(Name name, String filterExpr, + Object[] filterArgs, + SearchControls cons) + throws NamingException; + NamingEnumeration search(String name, String filterExpr, + Object[] filterArgs, + SearchControls cons) + throws NamingException; } diff --git a/libjava/classpath/javax/naming/directory/InitialDirContext.java b/libjava/classpath/javax/naming/directory/InitialDirContext.java index c946f416bff..8c7852fbba6 100644 --- a/libjava/classpath/javax/naming/directory/InitialDirContext.java +++ b/libjava/classpath/javax/naming/directory/InitialDirContext.java @@ -66,7 +66,7 @@ public class InitialDirContext extends InitialContext implements DirContext super (lazy); } - public InitialDirContext (Hashtable environment) + public InitialDirContext (Hashtable environment) throws NamingException { super (environment); @@ -205,58 +205,65 @@ public class InitialDirContext extends InitialContext implements DirContext return getURLOrDefaultInitDirCtx (name).getSchemaClassDefinition (name); } - public NamingEnumeration search(Name name, Attributes matchingAttributes, - String[] attributesToReturn) + public NamingEnumeration search(Name name, + Attributes matchingAttributes, + String[] attributesToReturn) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes, attributesToReturn); } - public NamingEnumeration search(String name, Attributes matchingAttributes, - String[] attributesToReturn) + public NamingEnumeration search(String name, + Attributes matchingAttributes, + String[] attributesToReturn) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes, attributesToReturn); } - public NamingEnumeration search(Name name, Attributes matchingAttributes) + public NamingEnumeration search(Name name, + Attributes matchingAttributes) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes); } - public NamingEnumeration search(String name, Attributes matchingAttributes) + public NamingEnumeration search(String name, + Attributes matchingAttributes) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes); } - public NamingEnumeration search(Name name, String filter, - SearchControls cons) + public NamingEnumeration search(Name name, String filter, + SearchControls cons) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filter, cons); } - public NamingEnumeration search(String name, String filter, - SearchControls cons) + public NamingEnumeration search(String name, String filter, + SearchControls cons) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filter, cons); } - public NamingEnumeration search(Name name, String filterExpr, - Object[] filterArgs, SearchControls cons) + public NamingEnumeration search(Name name, String filterExpr, + Object[] filterArgs, + SearchControls cons) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filterExpr, filterArgs, cons); } - public NamingEnumeration search(String name, String filterExpr, - Object[] filterArgs, SearchControls cons) + public NamingEnumeration search(String name, + String filterExpr, + Object[] filterArgs, + SearchControls cons) throws NamingException { return getURLOrDefaultInitDirCtx (name).search (name, filterExpr, diff --git a/libjava/classpath/javax/naming/ldap/ControlFactory.java b/libjava/classpath/javax/naming/ldap/ControlFactory.java index f72e67a7587..b8151640fc6 100644 --- a/libjava/classpath/javax/naming/ldap/ControlFactory.java +++ b/libjava/classpath/javax/naming/ldap/ControlFactory.java @@ -59,7 +59,7 @@ public abstract class ControlFactory public static Control getControlInstance (Control control, Context ctx, - Hashtable env) + Hashtable env) throws NamingException { String path = (String) env.get (LdapContext.CONTROL_FACTORIES); diff --git a/libjava/classpath/javax/naming/ldap/InitialLdapContext.java b/libjava/classpath/javax/naming/ldap/InitialLdapContext.java index 45a9eae1af5..f9493c3b29c 100644 --- a/libjava/classpath/javax/naming/ldap/InitialLdapContext.java +++ b/libjava/classpath/javax/naming/ldap/InitialLdapContext.java @@ -60,22 +60,24 @@ public class InitialLdapContext this (null, null); } - public InitialLdapContext (Hashtable environment, Control[] connControls) + public InitialLdapContext (Hashtable environment, + Control[] connControls) throws NamingException { super (false); + Hashtable myenv = null; if (connControls != null) { if (environment == null) - environment = new Hashtable (); + myenv = new Hashtable (); else - environment = (Hashtable) environment.clone (); - environment.put ("java.naming.ldap.control.connect", + myenv = (Hashtable) environment.clone (); + myenv.put ("java.naming.ldap.control.connect", connControls); } - init (environment); + init (myenv); } private LdapContext getDefaultInitLdapCtx () diff --git a/libjava/classpath/javax/naming/ldap/LdapReferralException.java b/libjava/classpath/javax/naming/ldap/LdapReferralException.java index 61a2b8e440c..87942b9fce4 100644 --- a/libjava/classpath/javax/naming/ldap/LdapReferralException.java +++ b/libjava/classpath/javax/naming/ldap/LdapReferralException.java @@ -61,8 +61,9 @@ public abstract class LdapReferralException extends ReferralException } public abstract Context getReferralContext() throws NamingException; - public abstract Context getReferralContext(Hashtable env) + public abstract Context getReferralContext(Hashtable env) throws NamingException; - public abstract Context getReferralContext(Hashtable env, Control[] reqCtls) + public abstract Context getReferralContext(Hashtable env, + Control[] reqCtls) throws NamingException; } diff --git a/libjava/classpath/javax/naming/spi/DirObjectFactory.java b/libjava/classpath/javax/naming/spi/DirObjectFactory.java index ea0e69706cc..1a71c28f7df 100644 --- a/libjava/classpath/javax/naming/spi/DirObjectFactory.java +++ b/libjava/classpath/javax/naming/spi/DirObjectFactory.java @@ -51,6 +51,6 @@ import javax.naming.directory.Attributes; public interface DirObjectFactory extends ObjectFactory { Object getObjectInstance(Object obj, Name name, Context nameCtx, - Hashtable environment, Attributes attrs) + Hashtable environment, Attributes attrs) throws Exception; } diff --git a/libjava/classpath/javax/naming/spi/DirStateFactory.java b/libjava/classpath/javax/naming/spi/DirStateFactory.java index b5add91cba7..6ddd12f3655 100644 --- a/libjava/classpath/javax/naming/spi/DirStateFactory.java +++ b/libjava/classpath/javax/naming/spi/DirStateFactory.java @@ -77,7 +77,7 @@ public interface DirStateFactory extends StateFactory DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, - Hashtable environment, + Hashtable environment, Attributes inAttrs) throws NamingException; } diff --git a/libjava/classpath/javax/naming/spi/DirectoryManager.java b/libjava/classpath/javax/naming/spi/DirectoryManager.java index fd482efb5c6..a6d91b20cfa 100644 --- a/libjava/classpath/javax/naming/spi/DirectoryManager.java +++ b/libjava/classpath/javax/naming/spi/DirectoryManager.java @@ -93,7 +93,7 @@ public class DirectoryManager extends NamingManager public static Object getObjectInstance (Object refInfo, Name name, Context nameCtx, - Hashtable environment, + Hashtable environment, Attributes attrs) throws Exception { @@ -186,7 +186,7 @@ public class DirectoryManager extends NamingManager public static DirStateFactory.Result getStateToBind (Object obj, Name name, Context nameCtx, - Hashtable environment, + Hashtable environment, Attributes attrs) throws NamingException { diff --git a/libjava/classpath/javax/naming/spi/InitialContextFactory.java b/libjava/classpath/javax/naming/spi/InitialContextFactory.java index d9b3336dcc2..f715327ef50 100644 --- a/libjava/classpath/javax/naming/spi/InitialContextFactory.java +++ b/libjava/classpath/javax/naming/spi/InitialContextFactory.java @@ -66,5 +66,6 @@ public interface InitialContextFactory * @return the new initial context * @throws NamingException if the naming exception has occured */ - Context getInitialContext(Hashtable environment) throws NamingException; + Context getInitialContext (Hashtable environment) + throws NamingException; } diff --git a/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java b/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java index 4696cecb8e7..31bafe6dc06 100644 --- a/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java +++ b/libjava/classpath/javax/naming/spi/InitialContextFactoryBuilder.java @@ -53,14 +53,14 @@ import javax.naming.NamingException; public interface InitialContextFactoryBuilder { /** - * Create the new inital context factory + * Create the new initial context factory * - * @param environment the properties, used for creation of the initial context - * factory. The parameter is owned by the caller: it is safe to reuse - * the table for other purposes after the method returns. + * @param environment the properties, used for creation of the initial + * context factory. The parameter is owned by the caller: it is safe to reuse + * the table for other purposes after the method returns. * @return the created initial context factory, never null. * @throws NamingException on failure */ - InitialContextFactory createInitialContextFactory (Hashtable environment) + InitialContextFactory createInitialContextFactory (Hashtable environment) throws NamingException; } diff --git a/libjava/classpath/javax/naming/spi/NamingManager.java b/libjava/classpath/javax/naming/spi/NamingManager.java index a36d519d75a..3dfba0f668d 100644 --- a/libjava/classpath/javax/naming/spi/NamingManager.java +++ b/libjava/classpath/javax/naming/spi/NamingManager.java @@ -79,7 +79,7 @@ public class NamingManager NamingManager () { } - + /** * Checks if the initial context factory builder has been set. * @@ -110,7 +110,7 @@ public class NamingManager * class, named by this property, cannot be instantiated. * @throws NamingException if throws by the context factory */ - public static Context getInitialContext (Hashtable environment) + public static Context getInitialContext (Hashtable environment) throws NamingException { InitialContextFactory icf = null; @@ -151,7 +151,7 @@ public class NamingManager return icf.getInitialContext (environment); } - + /** *

    * Creates the URL context for the given URL scheme id. @@ -187,23 +187,26 @@ public class NamingManager * @throws NamingException if thrown by the factory when creating the context. */ static Context getURLContext(Object refInfo, Name name, Context nameCtx, - String scheme, Hashtable environment) + String scheme, Hashtable environment) throws NamingException { - // Specified as the default in the docs. Unclear if this is - // right for us. - String defaultPrefix = "com.sun.jndi.url"; + // Doc specifies com.sun.jndi.url as the final destination, but we cannot + // put our classes into such namespace. + String defaultPrefix = "gnu.javax.naming.jndi.url"; + // The final default location, as specified in the documentation. + String finalPrefix = "com.sun.jndi.url"; + StringBuffer allPrefixes = new StringBuffer(); String prefixes; - if (environment != null) - { + if (environment != null) + { prefixes = (String) environment.get(Context.URL_PKG_PREFIXES); if (prefixes != null) allPrefixes.append(prefixes); - } - + } + prefixes = System.getProperty(Context.URL_PKG_PREFIXES); if (prefixes != null) { @@ -215,12 +218,14 @@ public class NamingManager if (allPrefixes.length() > 0) allPrefixes.append(':'); allPrefixes.append(defaultPrefix); + allPrefixes.append(':'); + allPrefixes.append(finalPrefix); - scheme = scheme + "." + scheme + "URLContextFactory"; - + scheme = scheme + "." + scheme + "URLContextFactory"; + StringTokenizer tokens = new StringTokenizer(allPrefixes.toString(), ":"); while (tokens.hasMoreTokens()) - { + { String aTry = tokens.nextToken(); try { @@ -228,12 +233,21 @@ public class NamingManager Class factoryClass = forName(tryClass); if (factoryClass != null) { - ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); - Object obj = factory.getObjectInstance(refInfo, name, nameCtx, - environment); - Context ctx = (Context) obj; - if (ctx != null) - return ctx; + Object obj; + try + { + ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); + obj = factory.getObjectInstance(refInfo, name, nameCtx, + environment); + Context ctx = (Context) obj; + if (ctx != null) + return ctx; + } + catch (RuntimeException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } } } catch (ClassNotFoundException _1) @@ -263,11 +277,11 @@ public class NamingManager { // Anything from getObjectInstance. } - } - + } + return null; } - + /** * Load the class with the given name. This method tries to use the context * class loader first. If this fails, it searches for the suitable class @@ -315,15 +329,15 @@ public class NamingManager *

    *

    * The class name of the factory that creates the context has the naming - * pattern scheme-idURLContextFactory. For instance, the factory for the "ftp" - * sheme should be named "ftpURLContextFactory". The Context.URL_PKG_PREFIXES - * environment property contains the colon-separated list of the possible - * package prefixes. The package name is constructed concatenating the package - * prefix with the scheme id. + * pattern scheme-idURLContextFactory. For instance, the factory for the + * "ftp" scheme should be named "ftpURLContextFactory". + * The Context.URL_PKG_PREFIXES environment property contains the + * colon-separated list of the possible package prefixes. The package name + * is constructed by concatenating the package prefix with the scheme id. *

    *

    - * If the factory class cannot be found in the specified packages, system will - * try to use the default internal factory for the given scheme. + * If the factory class cannot be found in the specified packages, the + * system will try to use the default internal factory for the given scheme. *

    *

    * After the factory is instantiated, its method @@ -331,13 +345,14 @@ public class NamingManager * is called to create and return the object instance. * * @param scheme the url scheme that must be supported by the given context - * @param environment the properties for creating the factory and context (may - * be null) + * @param environment the properties for creating the factory and context + * (may be null) * @return the created context - * @throws NamingException if thrown by the factory when creating the context. + * @throws NamingException if thrown by the factory when creating the + * context. */ public static Context getURLContext (String scheme, - Hashtable environment) + Hashtable environment) throws NamingException { return getURLContext (null, null, null, scheme, environment); @@ -436,7 +451,7 @@ public class NamingManager public static Object getObjectInstance (Object refInfo, Name name, Context nameCtx, - Hashtable environment) + Hashtable environment) throws Exception { ObjectFactory factory = null; @@ -609,7 +624,7 @@ public class NamingManager * @throws NamingException */ public static Object getStateToBind (Object obj, Name name, - Context nameCtx, Hashtable environment) + Context nameCtx, Hashtable environment) throws NamingException { StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES, diff --git a/libjava/classpath/javax/naming/spi/ObjectFactory.java b/libjava/classpath/javax/naming/spi/ObjectFactory.java index 27771b6cbbd..4534481a75a 100644 --- a/libjava/classpath/javax/naming/spi/ObjectFactory.java +++ b/libjava/classpath/javax/naming/spi/ObjectFactory.java @@ -70,6 +70,7 @@ public interface ObjectFactory * * @see NamingManager#getObjectInstance(Object, Name, Context, Hashtable) */ - Object getObjectInstance(Object refObj, Name name, Context nameCtx, - Hashtable environment) throws Exception; + Object getObjectInstance (Object refObj, Name name, Context nameCtx, + Hashtable environment) + throws Exception; } diff --git a/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java b/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java index cb20c666e71..6a528b17a06 100644 --- a/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java +++ b/libjava/classpath/javax/naming/spi/ObjectFactoryBuilder.java @@ -52,7 +52,7 @@ import javax.naming.Referenceable; * @author Warren Levy (warrenl@redhat.com) */ public interface ObjectFactoryBuilder -{ +{ /** * Create a new object using the supplied environment. * @@ -65,6 +65,6 @@ public interface ObjectFactoryBuilder * @throws NamingException */ ObjectFactory createObjectFactory(Object refInfo, - Hashtable environment) + Hashtable environment) throws NamingException; } diff --git a/libjava/classpath/javax/naming/spi/Resolver.java b/libjava/classpath/javax/naming/spi/Resolver.java index eb3eeb56079..f01790502ed 100644 --- a/libjava/classpath/javax/naming/spi/Resolver.java +++ b/libjava/classpath/javax/naming/spi/Resolver.java @@ -44,41 +44,20 @@ import javax.naming.NamingException; import javax.naming.NotContextException; /** - *

    Represents the object, capable for the at least partial name resolution. - * The object is not necessay capable for the complete name resolution and - * need not implement the {@link Context}.

    - *

    - * Both passed parameters and returned results are owned by the caller.

    - * ++ *

    Represents the object, capable for the at least partial name resolution. ++ * The object is not necessay capable for the complete name resolution and ++ * need not implement the {@link Context}.

    ++ *

    ++ * Both passed parameters and returned results are owned by the caller.

    ++ * * @author Warren Levy (warrenl@redhat.com) */ public interface Resolver { - /** - * Partially resolve the name, stopping at the first instance of the context - * that is an instance of the contextType - * - * @param name the name to resolve - * @param contextType the class of the context, on that the resolution should - * be terminated - * @return the complete or partial name resolution - * @throws NotContextException if the context of the contextType is not found - * @throws NamingException on other failure - */ - ResolveResult resolveToClass(Name name, Class contextType) + ResolveResult resolveToClass(Name name, + Class contextType) throws NamingException; - - /** - * Partially resolve the name, stopping at the first instance of the context - * that is an instance of the contextType - * - * @param name the name to resolve - * @param contextType the class of the context, on that the resolution should - * be terminated - * @return the complete or partial name resolution - * @throws NotContextException if the context of the contextType is not found - * @throws NamingException on other failure - */ - ResolveResult resolveToClass(String name, Class contextType) + ResolveResult resolveToClass(String name, + Class contextType) throws NamingException; } diff --git a/libjava/classpath/javax/naming/spi/StateFactory.java b/libjava/classpath/javax/naming/spi/StateFactory.java index 5694f8a1a09..0c48309e3d5 100644 --- a/libjava/classpath/javax/naming/spi/StateFactory.java +++ b/libjava/classpath/javax/naming/spi/StateFactory.java @@ -75,5 +75,5 @@ public interface StateFactory * @see DirectoryManager#getStateToBind */ Object getStateToBind(Object obj, Name name, Context nameCtx, - Hashtable environment) throws NamingException; + Hashtable environment) throws NamingException; } diff --git a/libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java b/libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java new file mode 100644 index 00000000000..b6dc135e119 --- /dev/null +++ b/libjava/classpath/javax/net/ssl/CertPathTrustManagerParameters.java @@ -0,0 +1,71 @@ +/* CertPathTrustManagerParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 javax.net.ssl; + +import java.security.cert.CertPathParameters; + +/** + * Trust manager parameters for certification paths. + */ +public class CertPathTrustManagerParameters implements ManagerFactoryParameters +{ + private final CertPathParameters params; + + /** + * Creates a new trust manager parameter instance. The argument is + * cloned to prevent modification of this instance. + * + * @param params The certificate path parameters. + * @throws NullPointerException If params is null. + */ + public CertPathTrustManagerParameters (final CertPathParameters params) + { + this.params = (CertPathParameters) params.clone (); + } + + /** + * Returns a copy of the certificate path parameters. + * + * @return A copy of the certificate path parameters. + */ + public CertPathParameters getParameters () + { + return (CertPathParameters) params.clone (); + } +} diff --git a/libjava/classpath/javax/net/ssl/HandshakeCompletedEvent.java b/libjava/classpath/javax/net/ssl/HandshakeCompletedEvent.java index 743f1372672..b65dff06c8e 100644 --- a/libjava/classpath/javax/net/ssl/HandshakeCompletedEvent.java +++ b/libjava/classpath/javax/net/ssl/HandshakeCompletedEvent.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.net.ssl; +import java.security.Principal; import java.security.cert.Certificate; import javax.security.cert.X509Certificate; @@ -108,6 +109,20 @@ public class HandshakeCompletedEvent extends java.util.EventObject } /** + * Returns the local identity used in this connection, or + * null if there is none. + * + * @return The local identity. + * @since 1.5 + */ + public Principal getLocalPrincipal () + { + if (session != null) + return session.getLocalPrincipal (); + return null; + } + + /** * Returns the peer's certificates being used in this connection. * * @return The peer's certificates. @@ -129,6 +144,22 @@ public class HandshakeCompletedEvent extends java.util.EventObject } /** + * Returns the peer's identity, or null if there is + * none. + * + * @return The peer's identity. + * @throws SSLPeerUnverifiedException If the remote peer's identity + * could not be verified. + * @since 1.5 + */ + public Principal getPeerPrincipal () throws SSLPeerUnverifiedException + { + if (session != null) + return session.getPeerPrincipal (); + return null; + } + + /** * Returns the SSL session object associated with this connection. * * @return The session object. diff --git a/libjava/classpath/javax/net/ssl/HttpsURLConnection.java b/libjava/classpath/javax/net/ssl/HttpsURLConnection.java index 3f30dc1b800..7d68162c96a 100644 --- a/libjava/classpath/javax/net/ssl/HttpsURLConnection.java +++ b/libjava/classpath/javax/net/ssl/HttpsURLConnection.java @@ -38,9 +38,12 @@ exception statement from your version. */ package javax.net.ssl; +import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; +import java.security.Principal; import java.security.cert.Certificate; +import java.security.cert.X509Certificate; /** * A URL connection that connects via the Secure Socket Layer @@ -245,6 +248,48 @@ public abstract class HttpsURLConnection extends HttpURLConnection this.factory = factory; } + /** + * Returns the local principal for this connection. + * + *

    The default implementation will return the {@link + * javax.security.x500.X500Principal} for the end entity certificate + * in the local certificate chain if those certificates are of type + * {@link java.security.cert.X509Certificate}. Otherwise, this + * method returns null. + * + * @return The local principal. + * @since 1.5 + */ + public Principal getLocalPrincipal () + { + Certificate[] c = getLocalCertificates (); + if (c != null && c.length > 0 && (c[0] instanceof X509Certificate)) + return ((X509Certificate) c[0]).getSubjectX500Principal (); + return null; + } + + /** + * Returns the remote peer's principal for this connection. + * + *

    The default implementation will return the {@link + * javax.security.x500.X500Principal} for the end entity certificate + * in the remote peer's certificate chain if those certificates are + * of type {@link java.security.cert.X509Certificate}. Otherwise, + * this method returns null. + * + * @return The remote principal. + * @throws SSLPeerUnverifiedException If the remote peer has not + * been verified. + * @since 1.5 + */ + public Principal getPeerPrincipal () throws SSLPeerUnverifiedException + { + Certificate[] c = getServerCertificates (); + if (c != null && c.length > 0 && (c[0] instanceof X509Certificate)) + return ((X509Certificate) c[0]).getSubjectX500Principal (); + return null; + } + // Abstract methods. // ------------------------------------------------------------------- diff --git a/libjava/classpath/javax/net/ssl/KeyManagerFactory.java b/libjava/classpath/javax/net/ssl/KeyManagerFactory.java index ab8abd6264c..33f2fda9c7f 100644 --- a/libjava/classpath/javax/net/ssl/KeyManagerFactory.java +++ b/libjava/classpath/javax/net/ssl/KeyManagerFactory.java @@ -132,49 +132,55 @@ public class KeyManagerFactory } /** - * Get an instance of the named key manager factory, from the first + * Create an instance of the named key manager factory, from the first * provider that implements it. - * + * * @param algorithm The type of key manager factory to get. * @return An appropriate implementation of that algoritm. - * @throws NoSuchAlgorithmException If no provider implements the - * requested algorithm. + * @throws NoSuchAlgorithmException If no provider implements the requested + * algorithm. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static final KeyManagerFactory getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(algorithm, provs[i]); - } - catch (NoSuchAlgorithmException ignore) - { - } - } + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } /** - * Get an instance of the named key manager factory, from the named + * Create an instance of the named key manager factory, from the named * provider. - * + * * @param algorithm The type of key manager factory to get. - * @param provider The name of the provider to get the - * implementation from. + * @param provider The name of the provider to get the implementation from. * @return An appropriate implementation of that algorithm. - * @throws NoSuchAlgorithmException If the provider does not - * implement the requested algorithm. - * @throws NoSuchProviderException If the named provider does not - * exist. + * @throws NoSuchAlgorithmException If the provider does not implement the + * requested algorithm. + * @throws NoSuchProviderException If the named provider does not exist. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ - public static final KeyManagerFactory getInstance(String algorithm, String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + public static final KeyManagerFactory getInstance(String algorithm, + String provider) + throws NoSuchAlgorithmException, NoSuchProviderException { if (provider == null) - throw new IllegalArgumentException("provider is null"); + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) throw new NoSuchProviderException(provider); @@ -182,40 +188,48 @@ public class KeyManagerFactory } /** - * Get an instance of the named key manager factory, from the given + * Create an instance of the named key manager factory, from the given * provider. - * + * * @param algorithm The type of key manager factory to get. * @param provider The provider to get the implementation from. * @return An appropriate implementation of that algorithm. - * @throws NoSuchAlgorithmException If the provider does not - * implement the requested algorithm. - * @throws IllegalArgumentException If provider is null. + * @throws NoSuchAlgorithmException If the provider does not implement the + * requested algorithm. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ - public static final KeyManagerFactory getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + public static final KeyManagerFactory getInstance(String algorithm, + Provider provider) + throws NoSuchAlgorithmException { - if (provider == null) - throw new IllegalArgumentException("provider is null"); + StringBuilder sb = new StringBuilder("KeyManagerFactory algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new KeyManagerFactory((KeyManagerFactorySpi) - Engine.getInstance(KEY_MANAGER_FACTORY, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(KEY_MANAGER_FACTORY, algorithm, provider); + return new KeyManagerFactory((KeyManagerFactorySpi) spi, provider, algorithm); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ------------------------------------------------------------------- - /** * Returns the name of this key manager factory algorithm. * diff --git a/libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java b/libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java new file mode 100644 index 00000000000..2aa665ed5ea --- /dev/null +++ b/libjava/classpath/javax/net/ssl/KeyStoreBuilderParameters.java @@ -0,0 +1,48 @@ +/* KeyStoreBuilderParameters.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 javax.net.ssl; + +/** + *

    FIXME this class is currently a stub; + * it depends on an implementation of {@link + * java.security.KeyStore.Builder}

    . + */ +public class KeyStoreBuilderParameters implements ManagerFactoryParameters +{ +} diff --git a/libjava/classpath/javax/net/ssl/SSLContext.java b/libjava/classpath/javax/net/ssl/SSLContext.java index eaf3e3638e2..dcc85080956 100644 --- a/libjava/classpath/javax/net/ssl/SSLContext.java +++ b/libjava/classpath/javax/net/ssl/SSLContext.java @@ -91,101 +91,127 @@ public class SSLContext this.protocol = protocol; } - // Class methods. - // ------------------------------------------------------------------ - /** - * Get an instance of a context for the specified protocol from the - * first provider that implements it. - * + * Get an instance of a context for the specified protocol from the first + * provider that implements it. + * * @param protocol The name of the protocol to get a context for. * @return The new context. - * @throws NoSuchAlgorithm If no provider implements the given - * protocol. + * @throws NoSuchAlgorithmException If no provider implements the given + * protocol. + * @throws IllegalArgumentException if protocol is + * null or is an empty string. */ public static final SSLContext getInstance(String protocol) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(protocol, provs[i]); - } - catch (NoSuchAlgorithmException ignore) - { - } - } + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(protocol, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(protocol); } /** - * Get an instance of a context for the specified protocol from the - * named provider. - * + * Get an instance of a context for the specified protocol from the named + * provider. + * * @param protocol The name of the protocol to get a context for. - * @param provider The name of the provider to get the - * implementation from. + * @param provider The name of the provider to get the implementation from. * @return The new context. - * @throws NoSuchAlgorithmException If the provider does not - * implement the given protocol. - * @throws NoSuchProviderException If the named provider does not - * exist. - * @throws IllegalArgumentException If provider is null. + * @throws NoSuchAlgorithmException If the provider does not implement the + * given protocol. + * @throws NoSuchProviderException If the named provider does not exist. + * @throws IllegalArgumentException if either protocol or + * provider is null, or if + * protocol is an empty string. */ - public static final SSLContext getInstance(String protocol, - String provider) - throws NoSuchAlgorithmException, NoSuchProviderException + public static final SSLContext getInstance(String protocol, String provider) + throws NoSuchAlgorithmException, NoSuchProviderException { if (provider == null) - { - throw new IllegalArgumentException("null provider"); - } + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(protocol, p); } /** - * Get an instance of a context for the specified protocol from the - * specified provider. - * + * Get an instance of a context for the specified protocol from the specified + * provider. + * * @param protocol The name of the protocol to get a context for. - * @param provider The name of the provider to get the - * implementation from. + * @param provider The name of the provider to get the implementation from. * @return The new context. - * @throws NoSuchAlgorithmException If the provider does not - * implement the given protocol. - * @throws IllegalArgumentException If provider is null. + * @throws NoSuchAlgorithmException If the provider does not implement the + * given protocol. + * @throws IllegalArgumentException if either protocol or + * provider is null, or if + * protocol is an empty string. */ - public static final SSLContext getInstance(String protocol, - Provider provider) - throws NoSuchAlgorithmException + public static final SSLContext getInstance(String protocol, Provider provider) + throws NoSuchAlgorithmException { + StringBuilder sb = new StringBuilder("SSLContext for protocol [") + .append(protocol).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new SSLContext((SSLContextSpi) - Engine.getInstance(SSL_CONTEXT, protocol, provider), - provider, protocol); + Object spi = Engine.getInstance(SSL_CONTEXT, protocol, provider); + return new SSLContext((SSLContextSpi) spi, provider, protocol); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - NoSuchAlgorithmException nsae = new NoSuchAlgorithmException(protocol); - throw (NoSuchAlgorithmException) nsae.initCause(ite); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - NoSuchAlgorithmException nsae = new NoSuchAlgorithmException(protocol); - throw (NoSuchAlgorithmException) nsae.initCause(cce); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } - // Instance methods. - // ----------------------------------------------------------------- + /** + * Creates a new {@link SSLEngine} for this context. + * + * @return The new SSLEngine. + * @since 1.5 + */ + public final SSLEngine createSSLEngine () + { + return ctxSpi.engineCreateSSLEngine (); + } + + /** + * Creates a new {@link SSLEngine} for this context, with a given + * host name and port number. + * + * @param host The local host name. + * @param port The local port number. + * @return The new SSLEngine. + * @since 1.5 + */ + public final SSLEngine createSSLEngine (final String host, final int port) + { + return ctxSpi.engineCreateSSLEngine (host, port); + } /** * Returns the set of SSL contexts available for client connections. diff --git a/libjava/classpath/javax/net/ssl/SSLContextSpi.java b/libjava/classpath/javax/net/ssl/SSLContextSpi.java index a6b0c758117..03c44f85e9c 100644 --- a/libjava/classpath/javax/net/ssl/SSLContextSpi.java +++ b/libjava/classpath/javax/net/ssl/SSLContextSpi.java @@ -64,6 +64,28 @@ public abstract class SSLContextSpi // Abstract methods. // ------------------------------------------------------------------- + // Sun, you've broken existing applications by introducing new + // abstract methods! Goodjob!!! + + /** + * Returns a new {@link SSLEngine} for this context. + * + * @return A new SSLEngine. + * @since 1.5 + */ + protected abstract SSLEngine engineCreateSSLEngine (); + + /** + * Returns a new {@link SSLEngine} for this context, for the given + * host name and port number. + * + * @param host The local host name. + * @param port The local port number. + * @return A new SSLEngine. + * @since 1.5 + */ + protected abstract SSLEngine engineCreateSSLEngine (String host, int port); + /** * Returns the set of SSL sessions available for client connections. * diff --git a/libjava/classpath/javax/net/ssl/SSLEngine.java b/libjava/classpath/javax/net/ssl/SSLEngine.java new file mode 100644 index 00000000000..efab9725b59 --- /dev/null +++ b/libjava/classpath/javax/net/ssl/SSLEngine.java @@ -0,0 +1,442 @@ +/* SSLEngine.java -- advanced, generic utility for manipulating SSL messages. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 javax.net.ssl; + +import java.nio.ByteBuffer; + +/** + * A class for low-level message wrapping and unwrapping of SSL + * messages. + * + * @author Casey Marshall (csm@gnu.org) + * @since 1.5 + */ +public abstract class SSLEngine +{ + private final String peerHost; + private final int peerPort; + + /** + * Creates a new SSLEngine with no peer host name or port number. + */ + protected SSLEngine () + { + this (null, -1); + } + + /** + * Creates a new SSLEngine with the specified peer host name and + * port number. + * + * @param peerHost The peer's host name. + * @param peerPort The peer's port number. + */ + protected SSLEngine (String peerHost, int peerPort) + { + this.peerHost = peerHost; + this.peerPort = peerPort; + } + + + + /** + * Begin, or restart, the SSL handshake. + * + * @throws SSLException + */ + public abstract void beginHandshake () throws SSLException; + + /** + * Close the inbound state. + * + * @throws SSLException + */ + public abstract void closeInbound () throws SSLException; + + /** + * Close the outbound state. + */ + public abstract void closeOutbound (); + + /** + * + */ + public abstract Runnable getDelegatedTask (); + + /** + * Returns the peer host name this SSL session is connected to, or + * null if this value was not set. + * + * @return The peer host's name. + */ + public String getPeerHost () + { + return peerHost; + } + + /** + * Returns the peer IP port number this SSL session in communicating + * on, or -1 if this value was not set. + * + * @return The peer's port number. + */ + public int getPeerPort () + { + return peerPort; + } + + /** + * Returns a list of SSL cipher suite names this SSLEngine is + * configured to use. + * + * @return The list of enabled cipher suite names. + */ + public abstract String[] getEnabledCipherSuites(); + + /** + * Returns a list of SSL protocol version names this SSLEngine is + * configured to use. + * + * @return The list of enabled protocol names. + */ + public abstract String[] getEnabledProtocols (); + + /** + * Tells if sessions will be created by this engine, and therefore + * may be resumed at a later time. + * + * @return True if sessions will be created. + */ + public abstract boolean getEnableSessionCreation(); + + /** + * Return the current handshake status. + * + * @return The current handshake status. + */ + public abstract SSLEngineResult.HandshakeStatus getHandshakeStatus (); + + /** + * Tells if this SSLEngine is configured to require client + * authentication when in server mode. + * + * @return True iff client authentication is required. + */ + public abstract boolean getNeedClientAuth (); + + /** + * Return the {@link SSLSession} object this connection represents. + * + * @return The SSL session. + */ + public abstract SSLSession getSession (); + + /** + * Returns a list of SSL cipher suite names this SSLEngine + * implementation supports. + * + * @return The list of cipher suite names supported by this + * implementation. + */ + public abstract String[] getSupportedCipherSuites (); + + /** + * Returns a list of SSL protocol version names this SSLEngine + * implementation supports. SSL protocol names include things like + * "SSLv3" or "TLSv1". + * + * @return The list of SSL protocol names + */ + public abstract String[] getSupportedProtocols (); + + /** + * Tells if this SSLEngine is a "client" session. + * + * @return True iff this session is configured for client mode. + */ + public abstract boolean getUseClientMode (); + + /** + * Tells if client authentication is requested, but not required, + * for sessions in server mode. If true, a server session will + * request an authentication message from connecting clients, but + * will still allow clients to connect if they cannot be + * authenticated. + * + * @return True iff client authentication is requested. + */ + public abstract boolean getWantClientAuth (); + + /** + * Tells if the incoming data stream is finished, and thus if no + * more data will be available to be unwrapped. + * + * @return True if no more data is to be unwrapped. + */ + public abstract boolean isInboundDone (); + + /** + * Tells if the outgoing data stream is finished, and thus if no + * more data may be wrapped. + * + * @return True if no more data may be wrapped. + */ + public abstract boolean isOutboundDone (); + + /** + * Sets the list of enabled cipher suites. The argument is an array + * of strings of the canonical suite names. + * + * @param suites The cipher suites to enable. + * @throws IllegalArgumentException If any of the specified suite + * strings is not supported by this implementation, or if the + * argument is null. + */ + public abstract void setEnabledCipherSuites (String[] suites); + + /** + * Sets the list of enabled protocol versions. The argument is an + * array of strings of the canonical protocol version names, such as + * "TLSv1". + * + * @param protocols The protocol versions to enable. + * @throws IllegalArgumentException If any of the specified + * protocols are not supported, or if the argument is null. + */ + public abstract void setEnabledProtocols (String[] protocols); + + /** + * Enables or disables session creation. If enabled, each connection + * will create session that may be resumed by another connection. + * + * @param create Whether or not to enable session creation. + */ + public abstract void setEnableSessionCreation (boolean create); + + /** + * Enables client or server mode. If the argument is true, this + * engine will run in client mode; if false, server mode. + * + * @param clientMode Whether or not to use client mode. + */ + public abstract void setUseClientMode (boolean clientMode); + + /** + * Enables or disables required client authentication. If enabled, + * clients may only connect if they provide proper identification. + * + *

    This parameter is only used in server mode. + * + * @param needAuth Whether or not client authentication is required. + */ + public abstract void setNeedClientAuth (boolean needAuth); + + /** + * Enables or disables requested client authentication. If enabled, + * clients will be asked to provide proper identification, but will + * still be allowed to connect if they do not provide it. + * + *

    This parameter is only used in server mode. + * + * @param wantAuth Whether or not client authentication will be + * requested, but not required. + */ + public abstract void setWantClientAuth (boolean wantAuth); + + /** + * Unwraps a byte buffer recieved from the network, storing the + * decrypted, unwrapped bytes into the given buffer. + * + *

    This call is exactly equivalent to unwrap (source, new + * ByteBuffer[] { sink }, 0, 1). + * + * @param source The source bytes, coming from the network. + * @param sink The buffer to hold the unwrapped message. + * @return An engine result object for the operation. + * @throws SSLException If an SSL message parsing error occurs. + * @throws java.nio.ReadOnlyBufferException If 'sink' is not + * writable. + * @throws IllegalArgumentException If either 'source' or 'sink' is + * null. + * @throws IllegalStateException If this engine has not been put + * into client or server mode. + */ + public SSLEngineResult unwrap (ByteBuffer source, ByteBuffer sink) + throws SSLException + { + return unwrap (source, new ByteBuffer[] { sink }, 0, 1); + } + + /** + * Unwraps a byte buffer recieved from the network, storing the + * decrypted, unwrapped bytes into the given buffers. + * + *

    This call is exactly equivalent to unwrap (source, + * sinks, 0, sinks.length). + * + * @param source The source bytes, coming from the network. + * @param sinks The buffers to hold the unwrapped message. + * @return An engine result object for the operation. + * @throws SSLException If an SSL message parsing error occurs. + * @throws java.nio.ReadOnlyBufferException If any buffer in 'sinks' + * is not writable. + * @throws IllegalArgumentException If either 'source' or 'sinks' is + * null. + * @throws IllegalStateException If this engine has not been put + * into client or server mode. + */ + public SSLEngineResult unwrap (ByteBuffer source, ByteBuffer[] sinks) + throws SSLException + { + return unwrap (source, sinks, 0, sinks.length); + } + + /** + * Unwraps a byte buffer received from the network, storing the + * decrypted, unwrapped bytes into the given buffers. After + * unwrapping, the bytes placed into the sink buffers are ready for + * consumption by the application. + * + *

    This method may place no bytes in the destination buffer; for + * example, if this engine is still performing the SSL handshake, + * only handshake data will be consumed, and no application data. + * + *

    It is stated that this method may modify the source buffer, + * and that it must not be passed to another SSLEngine (SSL + * connections are independent, so another SSLEngine will not have + * the parameters or state to handle messages meant for this + * engine). + * + * @param source The source bytes, coming from the network. + * @param sinks The buffers to hold the unwrapped message. + * @param offset The index of the first buffer in 'sinks' to use. + * @param length The number of buffers in 'sinks' to use. + * @return An engine result object for the operation. + * @throws SSLException If an SSL message parsing error occurs. + * @throws java.nio.ReadOnlyBufferException If any buffer in 'sinks' + * is not writable. + * @throws IllegalArgumentException If either 'source' or 'sinks' is + * null. + * @throws IllegalStateException If this engine has not been put + * into client or server mode. + * @throws IndexOutOfBoundsException If 'offset' or 'length' is + * negative, or if 'length+offset' is greater than 'sinks.length'. + */ + public abstract SSLEngineResult unwrap (ByteBuffer source, + ByteBuffer[] sinks, int offset, + int length) + throws javax.net.ssl.SSLException; + + /** + * Wraps a byte buffer into an SSL message, for preparation to send + * it over the network. + * + *

    This method is exactly equivalent to wrap (new + * ByteBuffer[] { source }, 0, 1, sink). + * + * @param source The source buffer with application data. + * @param sink The buffer to hold the wrapped data. + * @return An engine result object for the operation. + * @throws SSLException If an SSL error occurs. + * @throws java.nio.ReadOnlyBufferException If 'sink' is read-only. + * @throws IllegalArgumentException If either 'source' or 'sink' is + * null. + * @throws IllegalStateException If this engine has not been put + * into client or server mode. + */ + public SSLEngineResult wrap (ByteBuffer source, ByteBuffer sink) + throws SSLException + { + return wrap (new ByteBuffer[] { source }, 0, 1, sink); + } + + /** + * Wraps byte buffers into an SSL message, for preparation to send + * them over the network. + * + *

    This method is exactly equivalent to wrap (sources, 0, + * 1, sink). + * + * @param sources The source buffers with application data. + * @param sink The buffer to hold the wrapped data. + * @return An engine result object for the operation. + * @throws SSLException If an SSL error occurs. + * @throws java.nio.ReadOnlyBufferException If 'sink' is read-only. + * @throws IllegalArgumentException If either 'sources' or 'sink' is + * null. + * @throws IllegalStateException If this engine has not been put + * into client or server mode. + */ + public SSLEngineResult wrap (ByteBuffer[] sources, ByteBuffer sink) + throws SSLException + { + return wrap (sources, 0, sources.length, sink); + } + + /** + * Wraps byte buffers into an SSL message, for preparation to send + * them over the network. After wrapping, the data in the sink + * buffer is ready to be sent over the transport layer. + * + *

    This method may consume no data from the source buffers, and + * yet still produce output that should be sent accross the wire; + * for example if this engine has not yet completed the SSL + * handshake, the sink buffer will be filled with handshake + * messages. + * + * @param sources The source buffers with application data. + * @param offset The offset into the source buffers to start reading + * application data. + * @param length The number of buffers to read from 'sources'. + * @param sink The buffer to hold the wrapped data. + * @return An engine result object for the operation. + * @throws SSLException If an SSL error occurs. + * @throws java.nio.ReadOnlyBufferException If 'sink' is read-only. + * @throws IllegalArgumentException If either 'sources' or 'sink' is + * null. + * @throws IllegalStateException If this engine has not been put + * into client or server mode. + * @throws IndexOutOfBoundsException If 'offset' or 'length' is + * negative, or if 'length+offset' is greater than 'sources.length'. + */ + public abstract SSLEngineResult wrap (ByteBuffer[] sources, int offset, + int length, ByteBuffer sink) + throws SSLException; + +} diff --git a/libjava/classpath/javax/net/ssl/SSLEngineResult.java b/libjava/classpath/javax/net/ssl/SSLEngineResult.java new file mode 100644 index 00000000000..0d6a435dd87 --- /dev/null +++ b/libjava/classpath/javax/net/ssl/SSLEngineResult.java @@ -0,0 +1,194 @@ +/* SSLEngineResult.java -- + 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 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 javax.net.ssl; + +/** + * A result from an {@link SSLEngine} wrap or + * unwrap operation. This class conveys a possibly + * intermediate result, and may ask for more input data or request + * that output data be sent over a connection. + */ +public class SSLEngineResult +{ + private final HandshakeStatus handshakeStatus; + private final Status status; + private final int bytesConsumed; + private final int bytesProduced; + + /** + * Creates a new SSL engine result. + * + * @param status The status of the SSL connection. + * @param handshakeStatus The status of the SSL handshake. + * @param bytesConsumed The number of bytes consumed by the previous + * operation. + * @param bytesProduced The number of bytes produced by the previous + * operation. + * @throws IllegalArgumentException If either enum value is + * null, or if either integer is negative. + */ + public SSLEngineResult (Status status, HandshakeStatus handshakeStatus, + int bytesConsumed, int bytesProduced) + { + if (status == null) + throw new IllegalArgumentException ("'status' may not be null"); + if (handshakeStatus == null) + throw new IllegalArgumentException ("'handshakeStatus' may not be null"); + if (bytesConsumed < 0) + throw new IllegalArgumentException ("'bytesConumed' must be nonnegative"); + if (bytesProduced < 0) + throw new IllegalArgumentException ("'bytesProduced' must be nonnegative"); + this.status = status; + this.handshakeStatus = handshakeStatus; + this.bytesConsumed = bytesConsumed; + this.bytesProduced = bytesProduced; + } + + + + /** + * An enumeration of possible general states. + */ + public static enum Status + { + + /** + * There were not enough input bytes available to complete the + * operation. + */ + BUFFER_UNDERFLOW, + + /** + * There was not enough space for the output message. + */ + BUFFER_OVERFLOW, + + /** + * Okay. No error. + */ + OK, + + /** + * The connection is closed. + */ + CLOSED + } + + /** + * An enumeration of possible handshake status states. + */ + public static enum HandshakeStatus + { + + /** + * Not currently handshaking. + */ + NOT_HANDSHAKING, + + /** + * The handshake is finished. + */ + FINISHED, + + /** + * Needs the status of one or more delegated tasks. + */ + NEED_TASK, + + /** + * Has data prepared for output, and needs a new call to + * wrap. + */ + NEED_WRAP, + + /** + * Is waiting for more input. + */ + NEED_UNWRAP + } + + + + /** + * Returns the number of bytes consumed by the previous operation. + * + * @return The number of bytes consumed. + */ + public int bytesConsumed () + { + return bytesConsumed; + } + + /** + * Returns the number of bytes produced by the previous operation. + * + * @return The number of bytes produced. + */ + public int bytesProduced () + { + return bytesProduced; + } + + /** + * Returns the handshake status. + * + * @return The handshake status. + */ + public HandshakeStatus getHandshakeStatus () + { + return handshakeStatus; + } + + /** + * Returns the connection status. + * + * @return The connection status. + */ + public Status getStatus () + { + return status; + } + + public String toString () + { + return (super.toString () + " [ status: " + status + "; handshakeStatus: " + + handshakeStatus + "; bytesConsumed: " + bytesConsumed + + "; bytesProduced: " + bytesProduced + " ]"); + } +} diff --git a/libjava/classpath/javax/net/ssl/SSLSession.java b/libjava/classpath/javax/net/ssl/SSLSession.java index 9400a1a512d..c8a4785f96d 100644 --- a/libjava/classpath/javax/net/ssl/SSLSession.java +++ b/libjava/classpath/javax/net/ssl/SSLSession.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.net.ssl; +import java.security.Principal; import java.security.cert.Certificate; import javax.security.cert.X509Certificate; @@ -48,6 +49,20 @@ import javax.security.cert.X509Certificate; */ public interface SSLSession { + + /** + * Returns the size of the largest application data buffer that can + * occur in this session. + * + *

    Buffers passed to handle the incoming data for the + * unwrap method of SSLEngine must be at least this + * large. + * + * @return The size of application buffers. + * @since 1.5 + */ + int getApplicationBufferSize (); + /** * Returns this session's cihper suite. * @@ -87,6 +102,28 @@ public interface SSLSession Certificate[] getLocalCertificates(); /** + * Returns the {@link Principal} representing the local identity + * used in this session, or null if there is no local + * identity. + * + * @return The local principal. + */ + Principal getLocalPrincipal (); + + /** + * Returns the size of the largest SSL message that will be + * generated by this session. + * + *

    Callers of wrap and unwrap should + * use this value to determine the size of buffers for data coming + * into, or going out over, the network. + * + * @returns The maximum network packet size. + * @since 1.5 + */ + int getPacketBufferSize (); + + /** * Returns the chain of certificates that the remote side used in * the handshake, or null if none were used. * @@ -115,6 +152,27 @@ public interface SSLSession String getPeerHost(); /** + * Returns the port number the remote peer is using for this + * session. + * + * @return The peer's port number. + * @since 1.5 + */ + int getPeerPort (); + + /** + * Returns the {@link Principal} representing the identity of the + * remote peer, or null if the remote peer has no known + * identity. + * + * @return The remote peer's principal. + * @throws SSLPeerUnverifiedException If the remote peer's identity + * could not be verified. + * @since 1.5 + */ + Principal getPeerPrincipal () throws SSLPeerUnverifiedException; + + /** * Returns the protocol this session uses. * * @return The protocol. @@ -152,6 +210,15 @@ public interface SSLSession void invalidate(); /** + * Tells if this session is currently valid, and may be resumed. + * + * @return True if this session is valid. + * @since 1.5 + * @see #invalidate() + */ + boolean isValid (); + + /** * Binds a value to this session, with the given name. * * @param name The name to bind the object with. diff --git a/libjava/classpath/javax/net/ssl/SSLSocketFactory.java b/libjava/classpath/javax/net/ssl/SSLSocketFactory.java index d5d9b6e145a..7348b2ee478 100644 --- a/libjava/classpath/javax/net/ssl/SSLSocketFactory.java +++ b/libjava/classpath/javax/net/ssl/SSLSocketFactory.java @@ -142,7 +142,7 @@ public abstract class SSLSocketFactory extends SocketFactory catch (Exception ex) { throw new RuntimeException("error instantiating default socket factory: " - + ex.toString()); + + ex.toString(), ex); } } try diff --git a/libjava/classpath/javax/net/ssl/TrustManagerFactory.java b/libjava/classpath/javax/net/ssl/TrustManagerFactory.java index 62ab1c2df05..f868ae75b70 100644 --- a/libjava/classpath/javax/net/ssl/TrustManagerFactory.java +++ b/libjava/classpath/javax/net/ssl/TrustManagerFactory.java @@ -93,96 +93,105 @@ public class TrustManagerFactory this.algorithm = algorithm; } - // Class methods. - // ------------------------------------------------------------------------- - /** - * Returns an instance of a trust manager factory for the given algorithm - * from the first provider that implements it. - * + * Returns an instance of a trust manager factory for the given algorithm from + * the first provider that implements it. + * * @param algorithm The name of the algorithm to get. * @return The instance of the trust manager factory. * @throws NoSuchAlgorithmException If no provider implements the given - * algorithm. + * algorithm. + * @throws IllegalArgumentException if algorithm is + * null or is an empty string. */ public static final TrustManagerFactory getInstance(String algorithm) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - Provider[] provs = Security.getProviders(); - for (int i = 0; i < provs.length; i++) - { - try - { - return getInstance(algorithm, provs[i]); - } - catch (NoSuchAlgorithmException ignore) - { - } - } + Provider[] p = Security.getProviders(); + NoSuchAlgorithmException lastException = null; + for (int i = 0; i < p.length; i++) + try + { + return getInstance(algorithm, p[i]); + } + catch (NoSuchAlgorithmException x) + { + lastException = x; + } + if (lastException != null) + throw lastException; throw new NoSuchAlgorithmException(algorithm); } /** - * Returns an instance of a trust manager factory for the given algorithm - * from the named provider. - * + * Returns an instance of a trust manager factory for the given algorithm from + * the named provider. + * * @param algorithm The name of the algorithm to get. * @param provider The name of the provider to get the instance from. * @return The instance of the trust manager factory. * @throws NoSuchAlgorithmException If the provider does not implement the - * given algorithm. + * given algorithm. * @throws NoSuchProviderException If there is no such named provider. - * @throws IllegalArgumentException If the provider argument is null. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final TrustManagerFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException { if (provider == null) - { - throw new IllegalArgumentException(); - } + throw new IllegalArgumentException("provider MUST NOT be null"); Provider p = Security.getProvider(provider); if (p == null) - { - throw new NoSuchProviderException(provider); - } + throw new NoSuchProviderException(provider); return getInstance(algorithm, p); } /** - * Returns an instance of a trust manager factory for the given algorithm - * from the specified provider. - * + * Returns an instance of a trust manager factory for the given algorithm from + * the specified provider. + * * @param algorithm The name of the algorithm to get. * @param provider The provider to get the instance from. * @return The instance of the trust manager factory. * @throws NoSuchAlgorithmException If the provider does not implement the - * given algorithm. - * @throws IllegalArgumentException If the provider argument is null. + * given algorithm. + * @throws IllegalArgumentException if either algorithm or + * provider is null, or if + * algorithm is an empty string. */ public static final TrustManagerFactory getInstance(String algorithm, Provider provider) - throws NoSuchAlgorithmException + throws NoSuchAlgorithmException { - if (provider == null) - { - throw new IllegalArgumentException(); - } + StringBuilder sb = new StringBuilder("TrustManagerFactory algorithm [") + .append(algorithm).append("] from provider[") + .append(provider).append("] could not be created"); + Throwable cause; try { - return new TrustManagerFactory((TrustManagerFactorySpi) - Engine.getInstance(TRUST_MANAGER_FACTORY, algorithm, provider), - provider, algorithm); + Object spi = Engine.getInstance(TRUST_MANAGER_FACTORY, algorithm, provider); + return new TrustManagerFactory((TrustManagerFactorySpi) spi, + provider, + algorithm); } - catch (InvocationTargetException ite) + catch (InvocationTargetException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x.getCause(); + if (cause instanceof NoSuchAlgorithmException) + throw (NoSuchAlgorithmException) cause; + if (cause == null) + cause = x; } - catch (ClassCastException cce) + catch (ClassCastException x) { - throw new NoSuchAlgorithmException(algorithm); + cause = x; } + NoSuchAlgorithmException x = new NoSuchAlgorithmException(sb.toString()); + x.initCause(cause); + throw x; } /** diff --git a/libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java b/libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java new file mode 100644 index 00000000000..ccd146f822c --- /dev/null +++ b/libjava/classpath/javax/net/ssl/X509ExtendedKeyManager.java @@ -0,0 +1,96 @@ +/* X509ExtendedKeyManager.java -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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 javax.net.ssl; + +import java.security.Principal; + +/** + * An extended {@link X509KeyManager} for use with {@link SSLEngine}. + * + * @since 1.5 + * @author Casey Marshall (csm@gnu.org) + */ +public abstract class X509ExtendedKeyManager implements X509KeyManager +{ + + /** + * Default constructor. + */ + protected X509ExtendedKeyManager () + { + } + + /** + * Return a client alias given a list of key types, a list of + * allowable issuers, and the SSLEngine being used. + * + *

    This implementation always returns null. + * + * @param keyTypes The list of desired key types. + * @param issuers The list of desired key issuers. + * @param engine This client's SSLEngine. + * @return A key alias that matches the given parameters, or + * null if the parameters were not matched. + */ + public String chooseEngineClientAlias (final String[] keyTypes, + final Principal[] issuers, + final SSLEngine engine) + { + return null; + } + + /** + * Return a server alias given a key type, a list of allowable + * issuers, and the SSLEngine being used. + * + *

    This implementation always returns null. + * + * @param keyType The desired key type. + * @param issuers The list of desired key issuers. + * @param engine The server's SSLEngine. + * @return A key alias that matches the given parameters, or + * null if the parameters were not matched. + */ + public String chooseEngineServerAlias (final String keyType, + final Principal[] issuers, + final SSLEngine engine) + { + return null; + } +} diff --git a/libjava/classpath/javax/print/PrintService.java b/libjava/classpath/javax/print/PrintService.java index b5fe004a730..125d27083b3 100644 --- a/libjava/classpath/javax/print/PrintService.java +++ b/libjava/classpath/javax/print/PrintService.java @@ -89,7 +89,7 @@ public interface PrintService * @throws IllegalArgumentException if category is not a class that * implements PrintServiceAttribute. */ - PrintServiceAttribute getAttribute(Class category); + T getAttribute(Class category); /** * Returns the attributes describing this print service. The returned @@ -123,7 +123,7 @@ public interface PrintService * @throws IllegalArgumentException if category is a class * not implementing Attribute */ - Object getDefaultAttributeValue(Class category); + Object getDefaultAttributeValue(Class category); /** * Returns the name of this print service. @@ -145,7 +145,7 @@ public interface PrintService * * @return The class array of all supported attribute categories. */ - Class[] getSupportedAttributeCategories(); + Class[] getSupportedAttributeCategories(); /** * Determines and returns all supported attribute values of a given @@ -177,7 +177,9 @@ public interface PrintService * implementing Attribute, or if flavor is not * supported */ - Object getSupportedAttributeValues(Class category, DocFlavor flavor, AttributeSet attributes); + Object getSupportedAttributeValues(Class category, + DocFlavor flavor, + AttributeSet attributes); /** * Determines and returns an array of all supported document flavors which @@ -189,7 +191,7 @@ public interface PrintService * the specific doc flavor and attributes set. *

    * - * @return The supported document flavors. + * @return the supported document flavors */ DocFlavor[] getSupportedDocFlavors(); @@ -240,7 +242,7 @@ public interface PrintService * @throws IllegalArgumentException if category is a class not * implementing Attribute. */ - boolean isAttributeCategorySupported(Class category); + boolean isAttributeCategorySupported(Class category); /** * Determines if a given attribute value is supported when creating a print diff --git a/libjava/classpath/javax/print/attribute/Attribute.java b/libjava/classpath/javax/print/attribute/Attribute.java index 7ce0247cea1..8b98377ba22 100644 --- a/libjava/classpath/javax/print/attribute/Attribute.java +++ b/libjava/classpath/javax/print/attribute/Attribute.java @@ -52,7 +52,7 @@ public interface Attribute extends Serializable * * @return The concrete {@link Class} instance of the attribute class. */ - Class getCategory (); + Class< ? extends Attribute> getCategory (); /** * Returns the descriptive name of the attribute category. diff --git a/libjava/classpath/javax/print/attribute/AttributeSet.java b/libjava/classpath/javax/print/attribute/AttributeSet.java index b4bdecad254..c8130c19f14 100644 --- a/libjava/classpath/javax/print/attribute/AttributeSet.java +++ b/libjava/classpath/javax/print/attribute/AttributeSet.java @@ -110,7 +110,7 @@ public interface AttributeSet * @return true if an attribute of the category is contained * in the set, false otherwise. */ - boolean containsKey (Class category); + boolean containsKey (Class category); /** * Checks if this attribute set contains the given attribute. @@ -143,7 +143,7 @@ public interface AttributeSet * @throws ClassCastException if category is not implementing * Attribute. */ - Attribute get (Class category); + Attribute get (Class category); /** * Returns the hashcode value. The hashcode value is the sum of all hashcodes @@ -178,7 +178,7 @@ public interface AttributeSet * @return true if an attribute is removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ - boolean remove (Class category); + boolean remove (Class category); /** * Returns the number of elements in this attribute set. diff --git a/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java b/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java index f6a64ebc531..95c11a6ed1a 100644 --- a/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java +++ b/libjava/classpath/javax/print/attribute/AttributeSetUtilities.java @@ -435,8 +435,8 @@ public final class AttributeSetUtilities * that implements interfaceName * @exception NullPointerException if object is null */ - public static Class verifyAttributeCategory(Object object, - Class interfaceName) + public static Class verifyAttributeCategory(Object object, + Class interfaceName) { if (object == null) throw new NullPointerException("object may not be null"); @@ -461,7 +461,7 @@ public final class AttributeSetUtilities * @exception NullPointerException if object is null */ public static Attribute verifyAttributeValue(Object object, - Class interfaceName) + Class interfaceName) { if (object == null) throw new NullPointerException("object may not be null"); @@ -482,7 +482,7 @@ public final class AttributeSetUtilities * @exception IllegalArgumentException if the categories are not equal * @exception NullPointerException if category is null */ - public static void verifyCategoryForValue(Class category, + public static void verifyCategoryForValue(Class category, Attribute attribute) { if (category == null || attribute == null) diff --git a/libjava/classpath/javax/print/attribute/HashAttributeSet.java b/libjava/classpath/javax/print/attribute/HashAttributeSet.java index 65371ea9fa2..0f6b00730a8 100644 --- a/libjava/classpath/javax/print/attribute/HashAttributeSet.java +++ b/libjava/classpath/javax/print/attribute/HashAttributeSet.java @@ -110,7 +110,7 @@ public class HashAttributeSet implements AttributeSet, Serializable * * @exception NullPointerException if interfaceName is null */ - protected HashAttributeSet(Class interfaceName) + protected HashAttributeSet(Class interfaceName) { if (interfaceName == null) throw new NullPointerException("interfaceName may not be null"); @@ -129,7 +129,7 @@ public class HashAttributeSet implements AttributeSet, Serializable * interfaceName * @exception NullPointerException if attribute or interfaceName is null */ - protected HashAttributeSet(Attribute attribute, Class interfaceName) + protected HashAttributeSet(Attribute attribute, Class interfaceName) { this(interfaceName); @@ -151,7 +151,7 @@ public class HashAttributeSet implements AttributeSet, Serializable * interface of interfaceName * @exception NullPointerException if attributes or interfaceName is null */ - protected HashAttributeSet(Attribute[] attributes, Class interfaceName) + protected HashAttributeSet(Attribute[] attributes, Class interfaceName) { this(interfaceName); @@ -173,7 +173,7 @@ public class HashAttributeSet implements AttributeSet, Serializable * @exception ClassCastException if any element of attributes is not an * interface of interfaceName */ - protected HashAttributeSet(AttributeSet attributes, Class interfaceName) + protected HashAttributeSet(AttributeSet attributes, Class interfaceName) { this(interfaceName); @@ -256,7 +256,7 @@ public class HashAttributeSet implements AttributeSet, Serializable * @return true if an attribute of the category is contained * in the set, false otherwise. */ - public boolean containsKey(Class category) + public boolean containsKey(Class category) { return attributeMap.containsKey(category); } @@ -301,7 +301,7 @@ public class HashAttributeSet implements AttributeSet, Serializable * @throws ClassCastException if category is not implementing * Attribute. */ - public Attribute get(Class category) + public Attribute get(Class category) { if (category == null) throw new NullPointerException("category may not be null"); @@ -359,7 +359,7 @@ public class HashAttributeSet implements AttributeSet, Serializable * @return true if an attribute is removed, false in all other cases. * @throws UnmodifiableSetException if the set does not support modification. */ - public boolean remove(Class category) + public boolean remove(Class category) { if (category == null) return false; diff --git a/libjava/classpath/javax/print/attribute/standard/Chromaticity.java b/libjava/classpath/javax/print/attribute/standard/Chromaticity.java index cc834f680a2..3dec79893b4 100644 --- a/libjava/classpath/javax/print/attribute/standard/Chromaticity.java +++ b/libjava/classpath/javax/print/attribute/standard/Chromaticity.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -94,7 +95,7 @@ public final class Chromaticity extends EnumSyntax * * @return The class Chromaticity itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return Chromaticity.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/ColorSupported.java b/libjava/classpath/javax/print/attribute/standard/ColorSupported.java index bca932dd735..c5e251a5044 100644 --- a/libjava/classpath/javax/print/attribute/standard/ColorSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/ColorSupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintServiceAttribute; @@ -88,7 +89,7 @@ public final class ColorSupported extends EnumSyntax * * @return The class ColorSupported itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return ColorSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Compression.java b/libjava/classpath/javax/print/attribute/standard/Compression.java index 01891fe2369..f2f4f1cc142 100644 --- a/libjava/classpath/javax/print/attribute/standard/Compression.java +++ b/libjava/classpath/javax/print/attribute/standard/Compression.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; @@ -91,7 +92,7 @@ public class Compression extends EnumSyntax * * @return The class Compression itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return Compression.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Copies.java b/libjava/classpath/javax/print/attribute/standard/Copies.java index 78ca6c6cc63..ea9a0990a31 100644 --- a/libjava/classpath/javax/print/attribute/standard/Copies.java +++ b/libjava/classpath/javax/print/attribute/standard/Copies.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -97,7 +98,7 @@ public final class Copies extends IntegerSyntax * * @return The class Copies itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return Copies.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java b/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java index fec426becd4..1f62f48a87f 100644 --- a/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/CopiesSupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.SetOfIntegerSyntax; import javax.print.attribute.SupportedValuesAttribute; @@ -112,7 +113,7 @@ public final class CopiesSupported extends SetOfIntegerSyntax * * @return The class CopiesSupported itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return CopiesSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java b/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java index 36b740ef30f..324bab73b8d 100644 --- a/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java +++ b/libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Date; +import javax.print.attribute.Attribute; import javax.print.attribute.DateTimeSyntax; import javax.print.attribute.PrintJobAttribute; @@ -92,7 +93,7 @@ public final class DateTimeAtCompleted extends DateTimeSyntax * * @return The class DateTimeAtCompleted itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return DateTimeAtCompleted.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java b/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java index b463c40ac88..5e975b64ae7 100644 --- a/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java +++ b/libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Date; +import javax.print.attribute.Attribute; import javax.print.attribute.DateTimeSyntax; import javax.print.attribute.PrintJobAttribute; @@ -92,7 +93,7 @@ public final class DateTimeAtCreation extends DateTimeSyntax * * @return The class DateTimeAtCreation itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return DateTimeAtCreation.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java b/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java index 42dee8048eb..b407d2b2aa0 100644 --- a/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java +++ b/libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Date; +import javax.print.attribute.Attribute; import javax.print.attribute.DateTimeSyntax; import javax.print.attribute.PrintJobAttribute; @@ -92,7 +93,7 @@ public final class DateTimeAtProcessing extends DateTimeSyntax * * @return The class DateTimeAtProcessing itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return DateTimeAtProcessing.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Destination.java b/libjava/classpath/javax/print/attribute/standard/Destination.java index 1a4e79dd8f8..a82aa4b369d 100644 --- a/libjava/classpath/javax/print/attribute/standard/Destination.java +++ b/libjava/classpath/javax/print/attribute/standard/Destination.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.net.URI; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; import javax.print.attribute.URISyntax; @@ -104,7 +105,7 @@ public final class Destination extends URISyntax * * @return The class Destination itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return Destination.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/DocumentName.java b/libjava/classpath/javax/print/attribute/standard/DocumentName.java index d1428ed8b79..6a377d5be70 100644 --- a/libjava/classpath/javax/print/attribute/standard/DocumentName.java +++ b/libjava/classpath/javax/print/attribute/standard/DocumentName.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.TextSyntax; @@ -98,7 +99,7 @@ public final class DocumentName extends TextSyntax * * @return The class DocumentName itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return DocumentName.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Fidelity.java b/libjava/classpath/javax/print/attribute/standard/Fidelity.java index 02e292f58b4..5e25f5b882b 100644 --- a/libjava/classpath/javax/print/attribute/standard/Fidelity.java +++ b/libjava/classpath/javax/print/attribute/standard/Fidelity.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -107,7 +108,7 @@ public final class Fidelity extends EnumSyntax * * @return The class Fidelity itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return Fidelity.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Finishings.java b/libjava/classpath/javax/print/attribute/standard/Finishings.java index 963485e7b87..cd8f6753b30 100644 --- a/libjava/classpath/javax/print/attribute/standard/Finishings.java +++ b/libjava/classpath/javax/print/attribute/standard/Finishings.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -238,7 +239,7 @@ public class Finishings extends EnumSyntax * * @return the class Finishings itself */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return Finishings.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java b/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java index 768600f8065..7c137ccd171 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java +++ b/libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Date; +import javax.print.attribute.Attribute; import javax.print.attribute.DateTimeSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -98,7 +99,7 @@ public final class JobHoldUntil extends DateTimeSyntax * * @return The class JobHoldUntil itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobHoldUntil.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobImpressions.java b/libjava/classpath/javax/print/attribute/standard/JobImpressions.java index 0da3e59cf24..a2c7d4dd653 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobImpressions.java +++ b/libjava/classpath/javax/print/attribute/standard/JobImpressions.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -110,7 +111,7 @@ public final class JobImpressions extends IntegerSyntax * * @return The class JobImpressions itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobImpressions.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java b/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java index 82da507a044..55d3fd6b991 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java +++ b/libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; @@ -101,7 +102,7 @@ public final class JobImpressionsCompleted extends IntegerSyntax * * @return The class JobImpressionsCompleted itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobImpressionsCompleted.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java b/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java index bd10457513c..5be3fc0a6f2 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.SetOfIntegerSyntax; import javax.print.attribute.SupportedValuesAttribute; @@ -96,7 +97,7 @@ public final class JobImpressionsSupported extends SetOfIntegerSyntax * * @return The class JobImpressionsSupported itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobImpressionsSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobKOctets.java b/libjava/classpath/javax/print/attribute/standard/JobKOctets.java index b380aa17ce9..ac9a7eff6ae 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobKOctets.java +++ b/libjava/classpath/javax/print/attribute/standard/JobKOctets.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -110,7 +111,7 @@ public final class JobKOctets extends IntegerSyntax * * @return The class JobKOctets itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobKOctets.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java b/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java index 762369565e2..34616edfeaa 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java +++ b/libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; @@ -102,7 +103,7 @@ public final class JobKOctetsProcessed extends IntegerSyntax * * @return The class JobKOctetsProcessed itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobKOctetsProcessed.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java b/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java index 8a4cbfc8c16..4936fd49f72 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.SetOfIntegerSyntax; import javax.print.attribute.SupportedValuesAttribute; @@ -96,7 +97,7 @@ public final class JobKOctetsSupported extends SetOfIntegerSyntax * * @return The class JobKOctetsSupported itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobKOctetsSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java b/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java index 04b83069c2a..17cf96f33b6 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java +++ b/libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -107,7 +108,7 @@ public class JobMediaSheets extends IntegerSyntax * * @return The class JobMediaSheets itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobMediaSheets.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java b/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java index 85b9ab0481e..353c044ec1a 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java +++ b/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; @@ -96,7 +97,7 @@ public final class JobMediaSheetsCompleted extends IntegerSyntax * * @return The class JobMediaSheetsCompleted itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobMediaSheetsCompleted.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java b/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java index cb06af6fabe..d9a0ed2dfca 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.SetOfIntegerSyntax; import javax.print.attribute.SupportedValuesAttribute; @@ -96,7 +97,7 @@ public final class JobMediaSheetsSupported extends SetOfIntegerSyntax * * @return The class JobMediaSheetsSupported itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobMediaSheetsSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java b/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java index 8eaae357c88..f2a589af42f 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java +++ b/libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.TextSyntax; @@ -95,7 +96,7 @@ public final class JobMessageFromOperator extends TextSyntax * * @return The class JobMessageFromOperator itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobMessageFromOperator.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobName.java b/libjava/classpath/javax/print/attribute/standard/JobName.java index c848a63d35e..5f5310e9676 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobName.java +++ b/libjava/classpath/javax/print/attribute/standard/JobName.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; import javax.print.attribute.TextSyntax; @@ -93,7 +94,7 @@ public final class JobName extends TextSyntax * * @return The class JobName itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobName.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java b/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java index 2d6e79df654..62073daa6db 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java +++ b/libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.TextSyntax; @@ -92,7 +93,7 @@ public final class JobOriginatingUserName extends TextSyntax * * @return The class JobOriginatingUserName itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobOriginatingUserName.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobPriority.java b/libjava/classpath/javax/print/attribute/standard/JobPriority.java index bcfb239ed9b..88fc685b8ea 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobPriority.java +++ b/libjava/classpath/javax/print/attribute/standard/JobPriority.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -97,7 +98,7 @@ public final class JobPriority extends IntegerSyntax * * @return The class JobPriority itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobPriority.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java b/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java index 0db7107b304..e7ebca2db73 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java +++ b/libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.SupportedValuesAttribute; @@ -99,7 +100,7 @@ public final class JobPrioritySupported extends IntegerSyntax * * @return The class JobPrioritySupported itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobPrioritySupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobSheets.java b/libjava/classpath/javax/print/attribute/standard/JobSheets.java index f2cfacc9ecd..a930f63cf50 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobSheets.java +++ b/libjava/classpath/javax/print/attribute/standard/JobSheets.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -88,7 +89,7 @@ public class JobSheets extends EnumSyntax * * @return The class JobSheets itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobSheets.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobState.java b/libjava/classpath/javax/print/attribute/standard/JobState.java index 8289569c35c..fa769bbf33d 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobState.java +++ b/libjava/classpath/javax/print/attribute/standard/JobState.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -137,7 +138,7 @@ public class JobState extends EnumSyntax * * @return The class JobState itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobState.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobStateReason.java b/libjava/classpath/javax/print/attribute/standard/JobStateReason.java index 967a6bf2e53..b8420b18012 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobStateReason.java +++ b/libjava/classpath/javax/print/attribute/standard/JobStateReason.java @@ -262,7 +262,7 @@ public class JobStateReason extends EnumSyntax * * @return The class JobStateReason itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobStateReason.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java b/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java index 32f942b6bd7..997dcbc3779 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java +++ b/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java @@ -42,6 +42,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Iterator; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintJobAttribute; /** @@ -56,7 +57,7 @@ import javax.print.attribute.PrintJobAttribute; * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ -public final class JobStateReasons extends HashSet +public final class JobStateReasons extends HashSet implements PrintJobAttribute { private static final long serialVersionUID = 8849088261264331812L; @@ -108,12 +109,11 @@ public final class JobStateReasons extends HashSet * @throws ClassCastException if values of collection are not of type * JobStateReason. */ - public JobStateReasons(Collection collection) + public JobStateReasons(Collection collection) { super(collection.size(), 0.75f); - Iterator it = collection.iterator(); - while (it.hasNext()) - add(it.next()); + for (JobStateReason reason : collection) + add(reason); } /** @@ -126,12 +126,12 @@ public final class JobStateReasons extends HashSet * @throws ClassCastException if given object is not an instance of * JobStateReason. */ - public boolean add(Object o) + public boolean add(JobStateReason o) { if (o == null) throw new NullPointerException("reason is null"); - return super.add((JobStateReason) o); + return add(o); } /** @@ -139,7 +139,7 @@ public final class JobStateReasons extends HashSet * * @return The class JobStateReasons itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return JobStateReasons.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Media.java b/libjava/classpath/javax/print/attribute/standard/Media.java index 37132e72706..4c0af0ed11b 100644 --- a/libjava/classpath/javax/print/attribute/standard/Media.java +++ b/libjava/classpath/javax/print/attribute/standard/Media.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -105,7 +106,7 @@ public abstract class Media extends EnumSyntax * * @return The class Media itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return Media.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java b/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java index e0366f589ad..84ebd61ce87 100644 --- a/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java +++ b/libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -152,7 +153,7 @@ public final class MediaPrintableArea * * @return The class MediaPrintableArea itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return MediaPrintableArea.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/MediaSize.java b/libjava/classpath/javax/print/attribute/standard/MediaSize.java index 982b5c5ef7b..be3f1567812 100644 --- a/libjava/classpath/javax/print/attribute/standard/MediaSize.java +++ b/libjava/classpath/javax/print/attribute/standard/MediaSize.java @@ -66,13 +66,13 @@ public class MediaSize extends Size2DSyntax implements Attribute { private static final long serialVersionUID = -1967958664615414771L; - - private static ArrayList mediaCache; + + private static ArrayList mediaCache; static { - mediaCache = new ArrayList(); - + mediaCache = new ArrayList(); + // We call one instance of every container class to make sure it gets // loaded during class initialization and therefore all other static // fields of this container class also. @@ -86,7 +86,7 @@ public class MediaSize extends Size2DSyntax tmp = MediaSize.NA.LEGAL; tmp = MediaSize.Other.EXECUTIVE; } - + private MediaSizeName mediaName; /** @@ -180,10 +180,11 @@ public class MediaSize extends Size2DSyntax * * @return The class MediaSize itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return MediaSize.class; } + /** * Searches for a MediaSize object with the given dimensions. @@ -201,7 +202,7 @@ public class MediaSize extends Size2DSyntax if (x <= 0.0f || y <= 0.0f) throw new IllegalArgumentException( "x and/or y may not be less or equal 0"); - + if (units < 1) throw new IllegalArgumentException("units may not be less then 1"); diff --git a/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java b/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java index 1a89fd01aef..3ee1b4126e7 100644 --- a/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java +++ b/libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -108,7 +109,7 @@ public class MultipleDocumentHandling extends EnumSyntax * * @return The class MultipleDocumentHandling itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return MultipleDocumentHandling.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java b/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java index b9363eb9101..1121a1f0f79 100644 --- a/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java +++ b/libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; @@ -90,7 +91,7 @@ public final class NumberOfDocuments extends IntegerSyntax * * @return The class NumberOfDocuments itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return NumberOfDocuments.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java b/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java index d3c0952fcae..b968f9a7bf1 100644 --- a/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java +++ b/libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; @@ -91,7 +92,7 @@ public final class NumberOfInterveningJobs extends IntegerSyntax * * @return The class NumberOfInterveningJobs itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return NumberOfInterveningJobs.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/NumberUp.java b/libjava/classpath/javax/print/attribute/standard/NumberUp.java index aa2324040af..219a1c1a8b7 100644 --- a/libjava/classpath/javax/print/attribute/standard/NumberUp.java +++ b/libjava/classpath/javax/print/attribute/standard/NumberUp.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintJobAttribute; @@ -95,7 +96,7 @@ public final class NumberUp extends IntegerSyntax * * @return The class NumberUp itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return NumberUp.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java b/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java index 71392a9ef52..20bd9c93b59 100644 --- a/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.SetOfIntegerSyntax; import javax.print.attribute.SupportedValuesAttribute; @@ -128,7 +129,7 @@ public final class NumberUpSupported extends SetOfIntegerSyntax * * @return The class NumberUpSupported itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return NumberUpSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java b/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java index 1f9f0bf6f7e..8d346855664 100644 --- a/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java +++ b/libjava/classpath/javax/print/attribute/standard/OrientationRequested.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -112,7 +113,7 @@ public final class OrientationRequested extends EnumSyntax * * @return The class OrientationRequested itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return OrientationRequested.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java b/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java index 917064f5446..df8a5453f15 100644 --- a/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java +++ b/libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.TextSyntax; @@ -98,7 +99,7 @@ public final class OutputDeviceAssigned extends TextSyntax * * @return The class OutputDeviceAssigned itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return OutputDeviceAssigned.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java b/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java index ee07edb1af5..02c9c198c0b 100644 --- a/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintServiceAttribute; @@ -91,7 +92,7 @@ public class PDLOverrideSupported extends EnumSyntax * * @return The class PDLOverrideSupported itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return PDLOverrideSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PageRanges.java b/libjava/classpath/javax/print/attribute/standard/PageRanges.java index 3aa1b562549..9637a917f89 100644 --- a/libjava/classpath/javax/print/attribute/standard/PageRanges.java +++ b/libjava/classpath/javax/print/attribute/standard/PageRanges.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -154,7 +155,7 @@ public final class PageRanges extends SetOfIntegerSyntax * * @return The class PageRanges itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PageRanges.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java b/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java index c06fb9746af..6305842c010 100644 --- a/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java +++ b/libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintServiceAttribute; @@ -92,7 +93,7 @@ public final class PagesPerMinute extends IntegerSyntax * * @return The class PagesPerMinute itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PagesPerMinute.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java b/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java index 80a397e6381..3d5fa2ca559 100644 --- a/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java +++ b/libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintServiceAttribute; @@ -91,7 +92,7 @@ public final class PagesPerMinuteColor extends IntegerSyntax * * @return The class PagesPerMinuteColor itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PagesPerMinuteColor.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java b/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java index 3a479abfac4..14d560533a6 100644 --- a/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java +++ b/libjava/classpath/javax/print/attribute/standard/PresentationDirection.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -138,7 +139,7 @@ public final class PresentationDirection extends EnumSyntax * * @return The class PresentationDirection itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PresentationDirection.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrintQuality.java b/libjava/classpath/javax/print/attribute/standard/PrintQuality.java index c581d5f9dbe..bc94d532b8b 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrintQuality.java +++ b/libjava/classpath/javax/print/attribute/standard/PrintQuality.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -92,7 +93,7 @@ public class PrintQuality extends EnumSyntax * * @return The class PrintQuality itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrintQuality.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java b/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java index 2cd496cf0c7..e287f8ce9e1 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterInfo.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.TextSyntax; @@ -92,7 +93,7 @@ public final class PrinterInfo extends TextSyntax * * @return The class PrinterInfo itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterInfo.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java b/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java index 96dbc57ce32..1c9c3993029 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintServiceAttribute; @@ -93,7 +94,7 @@ public final class PrinterIsAcceptingJobs extends EnumSyntax * * @return The class PrinterIsAcceptingJobs itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterIsAcceptingJobs.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java b/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java index 35b61e4e5d1..7a446adcb99 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterLocation.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.TextSyntax; @@ -92,7 +93,7 @@ public final class PrinterLocation extends TextSyntax * * @return The class PrinterLocation itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterLocation.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java b/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java index 7010746a522..77fd84b4a5b 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.TextSyntax; @@ -92,7 +93,7 @@ public final class PrinterMakeAndModel extends TextSyntax * * @return The class PrinterMakeAndModel itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterMakeAndModel.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java b/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java index b4f5d88bd45..55bc7406a0e 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.TextSyntax; @@ -95,7 +96,7 @@ public final class PrinterMessageFromOperator extends TextSyntax * * @return The class PrinterMessageFromOperator itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterMessageFromOperator.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java b/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java index 28abd4e3fb6..de330fe0bfa 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.net.URI; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.URISyntax; @@ -94,7 +95,7 @@ public final class PrinterMoreInfo extends URISyntax * * @return The class PrinterMoreInfo itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterMoreInfo.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java b/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java index df0232e167d..73a627eb308 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.net.URI; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.URISyntax; @@ -98,7 +99,7 @@ public final class PrinterMoreInfoManufacturer extends URISyntax * * @return The class PrinterMoreInfoManufacturer itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterMoreInfoManufacturer.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterName.java b/libjava/classpath/javax/print/attribute/standard/PrinterName.java index 5b7da605969..b084c2c0fd4 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterName.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterName.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.TextSyntax; @@ -94,7 +95,7 @@ public final class PrinterName extends TextSyntax * * @return The class PrinterName itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterName.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java b/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java index f4cde0f5e72..7b60a0cada4 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterResolution.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.PrintJobAttribute; import javax.print.attribute.PrintRequestAttribute; @@ -95,7 +96,7 @@ public final class PrinterResolution extends ResolutionSyntax * * @return The class PrinterResolution itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterResolution.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterState.java b/libjava/classpath/javax/print/attribute/standard/PrinterState.java index 6fd4c3f4643..4b85c01896f 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterState.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterState.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintServiceAttribute; @@ -108,7 +109,7 @@ public final class PrinterState extends EnumSyntax * * @return The class PrinterState itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterState.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java b/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java index 340bfbabf51..1abb7c6aa3e 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java @@ -293,7 +293,7 @@ public class PrinterStateReason extends EnumSyntax * * @return The class PrintStateReason itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterStateReason.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java b/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java index 40c6f1b7151..c58dd53795e 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java @@ -45,6 +45,7 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; /** @@ -68,7 +69,8 @@ import javax.print.attribute.PrintServiceAttribute; * @author Michael Koch (konqueror@gmx.de) * @author Wolfgang Baer (WBaer@gmx.de) */ -public final class PrinterStateReasons extends HashMap +public final class PrinterStateReasons + extends HashMap implements PrintServiceAttribute { private static final long serialVersionUID = -3731791085163619457L; @@ -121,13 +123,11 @@ public final class PrinterStateReasons extends HashMap * PrinterStateReason and keys are not of type * Severity. */ - public PrinterStateReasons(Map map) + public PrinterStateReasons(Map map) { super(map.size(), 0.75f); - Iterator it = map.entrySet().iterator(); - while (it.hasNext()) + for (Map.Entry entry : map.entrySet()) { - Map.Entry entry = (Map.Entry) it.next(); put(entry.getKey(), entry.getValue()); } } @@ -139,7 +139,7 @@ public final class PrinterStateReasons extends HashMap * @param severity the severity level for the constructed set. * @return The set of printer state reasons. */ - public Set printerStateReasonSet(Severity severity) + public Set printerStateReasonSet(Severity severity) { if (severity == null) throw new NullPointerException("severity is null"); @@ -171,7 +171,7 @@ public final class PrinterStateReasons extends HashMap * PrinterStateReason and severity is not a * Severity instance. */ - public Object put(Object reason, Object severity) + public Severity put(PrinterStateReason reason,Severity severity) { if (reason == null) throw new NullPointerException("reason is null"); @@ -186,7 +186,7 @@ public final class PrinterStateReasons extends HashMap * * @return The class PrintStateReasons itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterStateReasons.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterURI.java b/libjava/classpath/javax/print/attribute/standard/PrinterURI.java index 0deca90bed2..017e6b85a39 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterURI.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterURI.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.net.URI; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.URISyntax; @@ -94,7 +95,7 @@ public final class PrinterURI extends URISyntax * * @return The class PrinterURI itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return PrinterURI.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java b/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java index 8ff46a95459..d024b3dcc97 100644 --- a/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java +++ b/libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.IntegerSyntax; import javax.print.attribute.PrintServiceAttribute; @@ -93,7 +94,7 @@ public final class QueuedJobCount extends IntegerSyntax * * @return The class QueuedJobCount itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return QueuedJobCount.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java b/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java index aeccaac5b5a..9d2354bd6ba 100644 --- a/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java +++ b/libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java @@ -128,7 +128,7 @@ public class ReferenceUriSchemesSupported extends EnumSyntax * * @return The class ReferenceUriSchemesSupported itself. */ - public final Class getCategory() + public Class< ? extends Attribute> getCategory() { return ReferenceUriSchemesSupported.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java b/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java index 8b947036c45..b7b85abbdaa 100644 --- a/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java +++ b/libjava/classpath/javax/print/attribute/standard/RequestingUserName.java @@ -40,6 +40,7 @@ package javax.print.attribute.standard; import java.util.Locale; +import javax.print.attribute.Attribute; import javax.print.attribute.PrintRequestAttribute; import javax.print.attribute.TextSyntax; @@ -92,7 +93,7 @@ public final class RequestingUserName extends TextSyntax * * @return The class RequestingUserName itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return RequestingUserName.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Severity.java b/libjava/classpath/javax/print/attribute/standard/Severity.java index 5569816de8e..019c8c6fcbb 100644 --- a/libjava/classpath/javax/print/attribute/standard/Severity.java +++ b/libjava/classpath/javax/print/attribute/standard/Severity.java @@ -97,7 +97,7 @@ public final class Severity extends EnumSyntax * * @return The class Severity itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return Severity.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/SheetCollate.java b/libjava/classpath/javax/print/attribute/standard/SheetCollate.java index 5343bc6df1b..886b8d6c921 100644 --- a/libjava/classpath/javax/print/attribute/standard/SheetCollate.java +++ b/libjava/classpath/javax/print/attribute/standard/SheetCollate.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -97,7 +98,7 @@ public final class SheetCollate extends EnumSyntax * * @return The class SheetCollate itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return SheetCollate.class; } diff --git a/libjava/classpath/javax/print/attribute/standard/Sides.java b/libjava/classpath/javax/print/attribute/standard/Sides.java index 816365aedea..02fe4a1e5d1 100644 --- a/libjava/classpath/javax/print/attribute/standard/Sides.java +++ b/libjava/classpath/javax/print/attribute/standard/Sides.java @@ -37,6 +37,7 @@ exception statement from your version. */ package javax.print.attribute.standard; +import javax.print.attribute.Attribute; import javax.print.attribute.DocAttribute; import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintJobAttribute; @@ -108,7 +109,7 @@ public final class Sides extends EnumSyntax * * @return The class Sides itself. */ - public Class getCategory() + public Class< ? extends Attribute> getCategory() { return Sides.class; } diff --git a/libjava/classpath/javax/rmi/CORBA/Tie.java b/libjava/classpath/javax/rmi/CORBA/Tie.java index b8611838822..af9ddd3d44a 100644 --- a/libjava/classpath/javax/rmi/CORBA/Tie.java +++ b/libjava/classpath/javax/rmi/CORBA/Tie.java @@ -103,7 +103,7 @@ public interface Tie /** * Get the object that delegates calls to this tie. * - * @see org.omg.PortableServer.Servant#_this_object + * @see org.omg.PortableServer.Servant#_this_object() */ org.omg.CORBA.Object thisObject(); @@ -112,12 +112,12 @@ public interface Tie * Depending on the POA policies, it may be possible to activate the Tie * again. The ties that are not derived from * {@link org.omg.PortableServer.Servant} deactivate themselves by - * {@link ORB.disconnect}. + * {@link ORB#disconnect}. * * @throws NoSuchObjectException if there are no objects served by this Tie, * or if the these objects are already deactivated. * - * @see org.omg.PortableServer.POA#deactivate_object + * @see org.omg.PortableServer.POAOperations#deactivate_object */ void deactivate() throws NoSuchObjectException; diff --git a/libjava/classpath/javax/security/auth/Subject.java b/libjava/classpath/javax/security/auth/Subject.java index 1659c6425fe..03836345862 100644 --- a/libjava/classpath/javax/security/auth/Subject.java +++ b/libjava/classpath/javax/security/auth/Subject.java @@ -91,8 +91,9 @@ public final class Subject implements Serializable readOnly = false; } - public Subject (final boolean readOnly, final Set principals, - final Set pubCred, final Set privCred) + public Subject (final boolean readOnly, + final Set principals, + final Set pubCred, final Set privCred) { if (principals == null || pubCred == null || privCred == null) { @@ -265,12 +266,12 @@ public final class Subject implements Serializable privCred.containsAll (that.getPrivateCredentials()); } - public Set getPrincipals() + public Set getPrincipals() { return principals; } - public Set getPrincipals(Class clazz) + public Set getPrincipals(Class clazz) { HashSet result = new HashSet (principals.size()); for (Iterator it = principals.iterator(); it.hasNext(); ) @@ -284,12 +285,12 @@ public final class Subject implements Serializable return Collections.unmodifiableSet (result); } - public Set getPrivateCredentials() + public Set getPrivateCredentials() { return privCred; } - public Set getPrivateCredentials (Class clazz) + public Set getPrivateCredentials (Class clazz) { HashSet result = new HashSet (privCred.size()); for (Iterator it = privCred.iterator(); it.hasNext(); ) @@ -303,12 +304,12 @@ public final class Subject implements Serializable return Collections.unmodifiableSet (result); } - public Set getPublicCredentials() + public Set getPublicCredentials() { return pubCred; } - public Set getPublicCredentials (Class clazz) + public Set getPublicCredentials (Class clazz) { HashSet result = new HashSet (pubCred.size()); for (Iterator it = pubCred.iterator(); it.hasNext(); ) diff --git a/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java b/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java index b455dbb6c24..3c8b64d4c99 100644 --- a/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java +++ b/libjava/classpath/javax/security/auth/login/AppConfigurationEntry.java @@ -56,7 +56,7 @@ public class AppConfigurationEntry public AppConfigurationEntry (final String loginModuleName, final LoginModuleControlFlag controlFlag, - final Map options) + final Map options) { if (loginModuleName == null || loginModuleName.length() == 0) throw new IllegalArgumentException ("module name cannot be null nor empty"); @@ -88,7 +88,7 @@ public class AppConfigurationEntry return loginModuleName; } - public Map getOptions() + public Map getOptions() { return options; } diff --git a/libjava/classpath/javax/security/auth/spi/LoginModule.java b/libjava/classpath/javax/security/auth/spi/LoginModule.java index 00b33c517e4..197cd692e37 100644 --- a/libjava/classpath/javax/security/auth/spi/LoginModule.java +++ b/libjava/classpath/javax/security/auth/spi/LoginModule.java @@ -95,7 +95,7 @@ public interface LoginModule * @param options A mapping of options given to this module. */ void initialize(Subject subject, CallbackHandler handler, - Map sharedState, Map options); + Map sharedState, Map options); /** * Authenticates a subject to the system. This is the primary diff --git a/libjava/classpath/javax/security/sasl/Sasl.java b/libjava/classpath/javax/security/sasl/Sasl.java index dbe4cc8c2ae..52210d971ac 100644 --- a/libjava/classpath/javax/security/sasl/Sasl.java +++ b/libjava/classpath/javax/security/sasl/Sasl.java @@ -356,7 +356,8 @@ public class Sasl public static SaslClient createSaslClient(String[] mechanisms, String authorizationID, String protocol, - String serverName, Map props, + String serverName, + Map props, CallbackHandler cbh) throws SaslException { @@ -444,7 +445,7 @@ public class Sasl * {@link SaslClient} instance. * @see #createSaslClient(String[],String,String,String,Map,CallbackHandler) */ - public static Enumeration getSaslClientFactories() + public static Enumeration getSaslClientFactories() { Vector result = new Vector(); HashSet names = new HashSet(); @@ -559,7 +560,8 @@ public class Sasl */ public static SaslServer createSaslServer(String mechanism, String protocol, String serverName, - Map props, CallbackHandler cbh) + Map props, + CallbackHandler cbh) throws SaslException { if (mechanism == null) @@ -636,7 +638,7 @@ public class Sasl * {@link SaslServer} instance. * @see #createSaslServer(String,String,String,Map,CallbackHandler) */ - public static Enumeration getSaslServerFactories() + public static Enumeration getSaslServerFactories() { Vector result = new Vector(); HashSet names = new HashSet(); diff --git a/libjava/classpath/javax/security/sasl/SaslClientFactory.java b/libjava/classpath/javax/security/sasl/SaslClientFactory.java index ae36171c56e..be80fd9f1c9 100644 --- a/libjava/classpath/javax/security/sasl/SaslClientFactory.java +++ b/libjava/classpath/javax/security/sasl/SaslClientFactory.java @@ -97,8 +97,8 @@ public interface SaslClientFactory * because of an error. */ SaslClient createSaslClient(String[] mechanisms, String authorizationID, - String protocol, String serverName, Map props, - CallbackHandler cbh) + String protocol, String serverName, + Map props, CallbackHandler cbh) throws SaslException; /** @@ -114,5 +114,5 @@ public interface SaslClientFactory * properties, if present in props, are ignored. * @return a non-null array containing IANA-registered SASL mechanism names. */ - String[] getMechanismNames(Map props); + String[] getMechanismNames(Map props); } diff --git a/libjava/classpath/javax/security/sasl/SaslServerFactory.java b/libjava/classpath/javax/security/sasl/SaslServerFactory.java index fc43fb636e9..b51ce3dbaf0 100644 --- a/libjava/classpath/javax/security/sasl/SaslServerFactory.java +++ b/libjava/classpath/javax/security/sasl/SaslServerFactory.java @@ -95,7 +95,8 @@ public interface SaslServerFactory * of an error. */ SaslServer createSaslServer(String mechanism, String protocol, - String serverName, Map props, CallbackHandler cbh) + String serverName, Map props, + CallbackHandler cbh) throws SaslException; /** @@ -111,5 +112,5 @@ public interface SaslServerFactory * properties, if present in props, are ignored. * @return a non-null array containing IANA-registered SASL mechanism names. */ - String[] getMechanismNames(Map props); + String[] getMechanismNames(Map props); } diff --git a/libjava/classpath/javax/sound/midi/Instrument.java b/libjava/classpath/javax/sound/midi/Instrument.java index 3402e8289c9..f2821db6484 100644 --- a/libjava/classpath/javax/sound/midi/Instrument.java +++ b/libjava/classpath/javax/sound/midi/Instrument.java @@ -59,7 +59,7 @@ public abstract class Instrument extends SoundbankResource * @param dataClass the class used to represent sample data for this instrument */ protected Instrument(Soundbank soundbank, Patch patch, - String name, Class dataClass) + String name, Class dataClass) { super(soundbank, name, dataClass); this.patch = patch; diff --git a/libjava/classpath/javax/sound/midi/Sequence.java b/libjava/classpath/javax/sound/midi/Sequence.java index 1a43d207ce6..2ea201cb2a4 100644 --- a/libjava/classpath/javax/sound/midi/Sequence.java +++ b/libjava/classpath/javax/sound/midi/Sequence.java @@ -65,7 +65,7 @@ public class Sequence /** * The MIDI tracks used by this sequence. */ - protected Vector tracks; + protected Vector tracks; /** * Tempo-based timing. Resolution is specified in ticks per beat. @@ -107,7 +107,7 @@ public class Sequence this.divisionType = divisionType; this.resolution = resolution; - tracks = new Vector(numTracks); + tracks = new Vector(numTracks); while (numTracks > 0) tracks.set(--numTracks, new Track()); } @@ -189,7 +189,7 @@ public class Sequence */ public Track[] getTracks() { - return (Track[]) tracks.toArray(new Track[tracks.size()]); + return tracks.toArray(new Track[tracks.size()]); } /** @@ -224,10 +224,10 @@ public class Sequence public long getTickLength() { long length = 0; - Iterator itr = tracks.iterator(); + Iterator itr = tracks.iterator(); while (itr.hasNext()) { - Track track = (Track) itr.next(); + Track track = itr.next(); long trackTicks = track.ticks(); if (trackTicks > length) length = trackTicks; diff --git a/libjava/classpath/javax/sound/midi/SoundbankResource.java b/libjava/classpath/javax/sound/midi/SoundbankResource.java index 435017e4cf2..93f42e48e1d 100644 --- a/libjava/classpath/javax/sound/midi/SoundbankResource.java +++ b/libjava/classpath/javax/sound/midi/SoundbankResource.java @@ -58,7 +58,7 @@ public abstract class SoundbankResource * @param name the name of the resource * @param dataClass the class used to represent the audio data */ - protected SoundbankResource(Soundbank soundbank, String name, Class dataClass) + protected SoundbankResource(Soundbank soundbank, String name, Class dataClass) { this.soundbank = soundbank; this.name = name; @@ -90,7 +90,7 @@ public abstract class SoundbankResource * * @return the class used to represent the audio data for this resource */ - public Class getDataClass() + public Class getDataClass() { return dataClass; } diff --git a/libjava/classpath/javax/sound/sampled/AudioFileFormat.java b/libjava/classpath/javax/sound/sampled/AudioFileFormat.java index 81bbe4ecf10..37c2df4652c 100644 --- a/libjava/classpath/javax/sound/sampled/AudioFileFormat.java +++ b/libjava/classpath/javax/sound/sampled/AudioFileFormat.java @@ -153,7 +153,7 @@ public class AudioFileFormat * @param properties the properties */ public AudioFileFormat(Type type, AudioFormat fmt, int frameLen, - Map properties) + Map properties) { this.byteLength = AudioSystem.NOT_SPECIFIED; this.format = fmt; @@ -226,7 +226,7 @@ public class AudioFileFormat * Return the properties associated with this format, as a Map. * The returned Map is unmodifiable. */ - public Map properties() + public Map properties() { return properties; } diff --git a/libjava/classpath/javax/sound/sampled/AudioFormat.java b/libjava/classpath/javax/sound/sampled/AudioFormat.java index 5199d71c3a3..a474ff9a5c4 100644 --- a/libjava/classpath/javax/sound/sampled/AudioFormat.java +++ b/libjava/classpath/javax/sound/sampled/AudioFormat.java @@ -177,7 +177,7 @@ public class AudioFormat */ public AudioFormat(Encoding encoding, float sampleRate, int sampleSizeInBits, int channels, int frameSize, float frameRate, - boolean bigEndian, Map properties) + boolean bigEndian, Map properties) { this.encoding = encoding; this.sampleRate = sampleRate; @@ -319,7 +319,7 @@ public class AudioFormat * Return a read-only Map holding the properties associated with * this format. */ - public Map properties() + public Map properties() { return properties; } diff --git a/libjava/classpath/javax/sound/sampled/DataLine.java b/libjava/classpath/javax/sound/sampled/DataLine.java index f755958fe87..aa99a046ce4 100644 --- a/libjava/classpath/javax/sound/sampled/DataLine.java +++ b/libjava/classpath/javax/sound/sampled/DataLine.java @@ -64,7 +64,7 @@ public interface DataLine extends Line * @param klass the class of the line * @param fmt the supported format */ - public Info(Class klass, AudioFormat fmt) + public Info(Class klass, AudioFormat fmt) { super(klass); this.minBufferSize = AudioSystem.NOT_SPECIFIED; @@ -80,7 +80,7 @@ public interface DataLine extends Line * @param minSize the minimum buffer size * @param maxSize the maximum buffer size */ - public Info(Class klass, AudioFormat[] fmts, int minSize, int maxSize) + public Info(Class klass, AudioFormat[] fmts, int minSize, int maxSize) { super(klass); this.minBufferSize = minSize; @@ -96,7 +96,7 @@ public interface DataLine extends Line * @param fmt the supported format * @param size the buffer size */ - public Info(Class klass, AudioFormat fmt, int size) + public Info(Class klass, AudioFormat fmt, int size) { super(klass); this.minBufferSize = size; diff --git a/libjava/classpath/javax/sound/sampled/Line.java b/libjava/classpath/javax/sound/sampled/Line.java index 69bb9084f10..536752a1cc1 100644 --- a/libjava/classpath/javax/sound/sampled/Line.java +++ b/libjava/classpath/javax/sound/sampled/Line.java @@ -57,7 +57,7 @@ public interface Line * for instance TargetDataLine.class. * @param klass the class of the line */ - public Info(Class klass) + public Info(Class klass) { this.klass = klass; } @@ -65,7 +65,7 @@ public interface Line /** * Return the line's class. */ - public Class getLineClass() + public Class getLineClass() { return klass; } diff --git a/libjava/classpath/javax/sound/sampled/Port.java b/libjava/classpath/javax/sound/sampled/Port.java index fb39e6c07ee..fc0bf71d9da 100644 --- a/libjava/classpath/javax/sound/sampled/Port.java +++ b/libjava/classpath/javax/sound/sampled/Port.java @@ -89,7 +89,7 @@ public interface Port extends Line * @param name the name of the line * @param isSource true if this is an input source */ - public Info(Class klass, String name, boolean isSource) + public Info(Class klass, String name, boolean isSource) { super(klass); this.name = name; diff --git a/libjava/classpath/javax/sql/RowSet.java b/libjava/classpath/javax/sql/RowSet.java index 46b776b3c10..2a9ad2784ee 100644 --- a/libjava/classpath/javax/sql/RowSet.java +++ b/libjava/classpath/javax/sql/RowSet.java @@ -78,9 +78,9 @@ public interface RowSet extends ResultSet void setTransactionIsolation(int level) throws SQLException; - Map getTypeMap() throws SQLException; + Map> getTypeMap() throws SQLException; - void setTypeMap(Map map) throws SQLException; + void setTypeMap(Map> map) throws SQLException; String getCommand(); diff --git a/libjava/classpath/javax/swing/AbstractButton.java b/libjava/classpath/javax/swing/AbstractButton.java index 63f827a1ae0..cb0f458b89f 100644 --- a/libjava/classpath/javax/swing/AbstractButton.java +++ b/libjava/classpath/javax/swing/AbstractButton.java @@ -37,8 +37,6 @@ exception statement from your version. */ package javax.swing; -import gnu.classpath.NotImplementedException; - import java.awt.Component; import java.awt.Graphics; import java.awt.Image; @@ -74,7 +72,10 @@ import javax.swing.plaf.ButtonUI; import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.Element; import javax.swing.text.Position; +import javax.swing.text.StyledDocument; import javax.swing.text.View; @@ -187,9 +188,32 @@ public abstract class AbstractButton extends JComponent */ public void stateChanged(ChangeEvent ev) { - AbstractButton.this.fireStateChanged(); + getEventHandler().stateChanged(ev); + } + } + + /** + * The combined event handler for ActionEvent, ChangeEvent and + * ItemEvent. This combines ButtonChangeListener, ActionListener + */ + private class EventHandler + implements ActionListener, ChangeListener, ItemListener + { + public void actionPerformed(ActionEvent ev) + { + fireActionPerformed(ev); + } + + public void stateChanged(ChangeEvent ev) + { + fireStateChanged(); repaint(); } + + public void itemStateChanged(ItemEvent ev) + { + fireItemStateChanged(ev); + } } /** The icon displayed by default. */ @@ -264,16 +288,29 @@ public abstract class AbstractButton extends JComponent */ int mnemonicIndex; - /** Listener the button uses to receive ActionEvents from its model. */ + /** + * Listener the button uses to receive ActionEvents from its model. + */ protected ActionListener actionListener; - /** Listener the button uses to receive ItemEvents from its model. */ + /** + * Listener the button uses to receive ItemEvents from its model. + */ protected ItemListener itemListener; - /** Listener the button uses to receive ChangeEvents from its model. */ + /** + * Listener the button uses to receive ChangeEvents from its model. + */ protected ChangeListener changeListener; /** + * The event handler for ActionEvent, ItemEvent and ChangeEvent. + * This replaces the above three handlers and combines them + * into one for efficiency. + */ + private EventHandler eventHandler; + + /** * The time in milliseconds in which clicks get coalesced into a single * ActionEvent. */ @@ -768,22 +805,127 @@ public abstract class AbstractButton extends JComponent return -1; } - public String getAtIndex(int value0, int value1) - throws NotImplementedException + /** + * Returns the character, word or sentence at the specified index. The + * part parameter determines what is returned, the character, + * word or sentence after the index. + * + * @param part one of {@link AccessibleText#CHARACTER}, + * {@link AccessibleText#WORD} or + * {@link AccessibleText#SENTENCE}, specifying what is returned + * @param index the index + * + * @return the character, word or sentence after index + */ + public String getAtIndex(int part, int index) { - return null; // TODO + String result = ""; + int startIndex = -1; + int endIndex = -1; + switch(part) + { + case AccessibleText.CHARACTER: + result = String.valueOf(text.charAt(index)); + break; + case AccessibleText.WORD: + startIndex = text.lastIndexOf(' ', index); + endIndex = text.indexOf(' ', startIndex + 1); + if (endIndex == -1) + endIndex = startIndex + 1; + result = text.substring(startIndex + 1, endIndex); + break; + case AccessibleText.SENTENCE: + default: + startIndex = text.lastIndexOf('.', index); + endIndex = text.indexOf('.', startIndex + 1); + if (endIndex == -1) + endIndex = startIndex + 1; + result = text.substring(startIndex + 1, endIndex); + break; + } + return result; } - public String getAfterIndex(int value0, int value1) - throws NotImplementedException + /** + * Returns the character, word or sentence after the specified index. The + * part parameter determines what is returned, the character, + * word or sentence after the index. + * + * @param part one of {@link AccessibleText#CHARACTER}, + * {@link AccessibleText#WORD} or + * {@link AccessibleText#SENTENCE}, specifying what is returned + * @param index the index + * + * @return the character, word or sentence after index + */ + public String getAfterIndex(int part, int index) { - return null; // TODO + String result = ""; + int startIndex = -1; + int endIndex = -1; + switch(part) + { + case AccessibleText.CHARACTER: + result = String.valueOf(text.charAt(index + 1)); + break; + case AccessibleText.WORD: + startIndex = text.indexOf(' ', index); + endIndex = text.indexOf(' ', startIndex + 1); + if (endIndex == -1) + endIndex = startIndex + 1; + result = text.substring(startIndex + 1, endIndex); + break; + case AccessibleText.SENTENCE: + default: + startIndex = text.indexOf('.', index); + endIndex = text.indexOf('.', startIndex + 1); + if (endIndex == -1) + endIndex = startIndex + 1; + result = text.substring(startIndex + 1, endIndex); + break; + } + return result; } - public String getBeforeIndex(int value0, int value1) - throws NotImplementedException + /** + * Returns the character, word or sentence before the specified index. The + * part parameter determines what is returned, the character, + * word or sentence before the index. + * + * @param part one of {@link AccessibleText#CHARACTER}, + * {@link AccessibleText#WORD} or + * {@link AccessibleText#SENTENCE}, specifying what is returned + * @param index the index + * + * @return the character, word or sentence before index + */ + public String getBeforeIndex(int part, int index) { - return null; // TODO + String result = ""; + int startIndex = -1; + int endIndex = -1; + switch(part) + { + case AccessibleText.CHARACTER: + result = String.valueOf(text.charAt(index - 1)); + break; + case AccessibleText.WORD: + endIndex = text.lastIndexOf(' ', index); + if (endIndex == -1) + endIndex = 0; + startIndex = text.lastIndexOf(' ', endIndex - 1); + result = text.substring(startIndex + 1, endIndex); + break; + case AccessibleText.SENTENCE: + default: + endIndex = text.lastIndexOf('.', index); + if (endIndex == -1) + endIndex = 0; + startIndex = text.lastIndexOf('.', endIndex - 1); + result = text.substring(startIndex + 1, endIndex); + break; + } + return result; } /** @@ -801,7 +943,14 @@ public abstract class AbstractButton extends JComponent View view = (View) getClientProperty(BasicHTML.propertyKey); if (view != null) { - + Document doc = view.getDocument(); + if (doc instanceof StyledDocument) + { + StyledDocument sDoc = (StyledDocument) doc; + Element charEl = sDoc.getCharacterElement(i); + if (charEl != null) + atts = charEl.getAttributes(); + } } return atts; } @@ -855,10 +1004,6 @@ public abstract class AbstractButton extends JComponent */ public AbstractButton() { - actionListener = createActionListener(); - changeListener = createChangeListener(); - itemListener = createItemListener(); - horizontalAlignment = CENTER; horizontalTextPosition = TRAILING; verticalAlignment = CENTER; @@ -872,7 +1017,10 @@ public abstract class AbstractButton extends JComponent setDisplayedMnemonicIndex(-1); setOpaque(true); text = ""; - updateUI(); + // testing on JRE1.5 shows that the iconTextGap default value is + // hard-coded here and the 'Button.iconTextGap' setting in the + // UI defaults is ignored, at least by the MetalLookAndFeel + iconTextGap = 4; } /** @@ -900,15 +1048,21 @@ public abstract class AbstractButton extends JComponent if (model != null) { model.removeActionListener(actionListener); + actionListener = null; model.removeChangeListener(changeListener); + changeListener = null; model.removeItemListener(itemListener); + itemListener = null; } ButtonModel old = model; model = newModel; if (model != null) { + actionListener = createActionListener(); model.addActionListener(actionListener); + changeListener = createChangeListener(); model.addChangeListener(changeListener); + itemListener = createItemListener(); model.addItemListener(itemListener); } firePropertyChange(MODEL_CHANGED_PROPERTY, old, model); @@ -927,6 +1081,8 @@ public abstract class AbstractButton extends JComponent if (icon != null) default_icon = icon; + + updateUI(); } /** @@ -1923,13 +2079,7 @@ public abstract class AbstractButton extends JComponent */ protected ActionListener createActionListener() { - return new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - AbstractButton.this.fireActionPerformed(e); - } - }; + return getEventHandler(); } /** @@ -1995,7 +2145,7 @@ public abstract class AbstractButton extends JComponent */ protected ChangeListener createChangeListener() { - return new ButtonChangeListener(); + return getEventHandler(); } /** @@ -2021,13 +2171,7 @@ public abstract class AbstractButton extends JComponent */ protected ItemListener createItemListener() { - return new ItemListener() - { - public void itemStateChanged(ItemEvent e) - { - AbstractButton.this.fireItemStateChanged(e); - } - }; + return getEventHandler(); } /** @@ -2490,4 +2634,17 @@ public abstract class AbstractButton extends JComponent super.setUIProperty(propertyName, value); } } + + /** + * Returns the combined event handler. The instance is created if + * necessary. + * + * @return the combined event handler + */ + EventHandler getEventHandler() + { + if (eventHandler == null) + eventHandler = new EventHandler(); + return eventHandler; + } } diff --git a/libjava/classpath/javax/swing/AbstractListModel.java b/libjava/classpath/javax/swing/AbstractListModel.java index 4b89689ddda..7d4b2bb2a87 100644 --- a/libjava/classpath/javax/swing/AbstractListModel.java +++ b/libjava/classpath/javax/swing/AbstractListModel.java @@ -164,7 +164,7 @@ public abstract class AbstractListModel implements ListModel, Serializable * * @return The set of listeners of the specified type */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } diff --git a/libjava/classpath/javax/swing/AbstractSpinnerModel.java b/libjava/classpath/javax/swing/AbstractSpinnerModel.java index 089e2048da2..d247a33136a 100644 --- a/libjava/classpath/javax/swing/AbstractSpinnerModel.java +++ b/libjava/classpath/javax/swing/AbstractSpinnerModel.java @@ -1,5 +1,5 @@ /* AbstractSpinnerModel.java -- - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -47,6 +47,8 @@ import javax.swing.event.EventListenerList; /** * Provides standard implementations for some of the methods in * {@link SpinnerModel}. + * + * @since 1.4 * * @author Ka-Hing Cheung */ @@ -54,6 +56,7 @@ public abstract class AbstractSpinnerModel implements SpinnerModel { private ChangeEvent changeEvent = new ChangeEvent(this); + /** Stores the listeners registered with the model. */ protected EventListenerList listenerList = new EventListenerList(); /** @@ -65,9 +68,10 @@ public abstract class AbstractSpinnerModel implements SpinnerModel } /** - * Adds a ChangeListener. + * Registers a ChangeListener with the model so that it will + * receive {@link ChangeEvent} notifications when the model changes. * - * @param listener the listener to add + * @param listener the listener to add (null is ignored). */ public void addChangeListener(ChangeListener listener) { @@ -80,7 +84,7 @@ public abstract class AbstractSpinnerModel implements SpinnerModel * @param c the type of listener * @return the listeners that are of the specific type */ - public EventListener[] getListeners(Class c) + public T[] getListeners(Class c) { return listenerList.getListeners(c); } diff --git a/libjava/classpath/javax/swing/ButtonGroup.java b/libjava/classpath/javax/swing/ButtonGroup.java index efa36b5f641..6a474f98d28 100644 --- a/libjava/classpath/javax/swing/ButtonGroup.java +++ b/libjava/classpath/javax/swing/ButtonGroup.java @@ -68,7 +68,7 @@ public class ButtonGroup implements Serializable private static final long serialVersionUID = 4259076101881721375L; /** Stores references to the buttons added to this button group. */ - protected Vector buttons = new Vector(); + protected Vector buttons = new Vector(); /** The currently selected button model. */ ButtonModel sel; @@ -129,7 +129,7 @@ public class ButtonGroup implements Serializable * * @return Enumeration over all added buttons */ - public Enumeration getElements() + public Enumeration getElements() { return buttons.elements(); } @@ -183,6 +183,10 @@ public class ButtonGroup implements Serializable if (old != null) old.setSelected(false); + + if (m != null) + sel.setSelected(true); + AbstractButton button = findButton(old); if (button != null) button.repaint(); diff --git a/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java b/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java index efca148f449..786e4ee9204 100644 --- a/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java +++ b/libjava/classpath/javax/swing/DefaultBoundedRangeModel.java @@ -424,7 +424,7 @@ public class DefaultBoundedRangeModel * * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } diff --git a/libjava/classpath/javax/swing/DefaultButtonModel.java b/libjava/classpath/javax/swing/DefaultButtonModel.java index 020c904a4e9..c0eaea239b5 100644 --- a/libjava/classpath/javax/swing/DefaultButtonModel.java +++ b/libjava/classpath/javax/swing/DefaultButtonModel.java @@ -166,7 +166,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable * * @return array of listeners */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } @@ -425,7 +425,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable public void setRollover(boolean r) { // if this call does not represent a CHANGE in state, then return - if ((r && isRollover()) || (!r && !isRollover())) + if (r == isRollover()) return; // cannot set ROLLOVER property unless button is enabled diff --git a/libjava/classpath/javax/swing/DefaultComboBoxModel.java b/libjava/classpath/javax/swing/DefaultComboBoxModel.java index ef785f34dec..9b5bdb60d18 100644 --- a/libjava/classpath/javax/swing/DefaultComboBoxModel.java +++ b/libjava/classpath/javax/swing/DefaultComboBoxModel.java @@ -104,7 +104,7 @@ public class DefaultComboBoxModel extends AbstractListModel * * @throws NullPointerException if vector is null. */ - public DefaultComboBoxModel(Vector vector) + public DefaultComboBoxModel(Vector vector) { this.list = vector; if (getSize() > 0) @@ -224,18 +224,26 @@ public class DefaultComboBoxModel extends AbstractListModel */ public void setSelectedItem(Object object) { - if (selectedItem == null) - { - if (object == null) - return; - } - else - { - if (selectedItem.equals(object)) - return; - } + // No item is selected and object is null, so no change required. + if (selectedItem == null && object == null) + return; + + // object is already selected so no change required. + if (selectedItem != null && selectedItem.equals(object)) + return; + + // Simply return if object is not in the list. + if (object != null && getIndexOf(object) == -1) + return; + + // Here we know that object is either an item in the list or null. + + // Handle the three change cases: selectedItem is null, object is + // non-null; selectedItem is non-null, object is null; + // selectedItem is non-null, object is non-null and they're not + // equal. selectedItem = object; - fireContentsChanged(this, -1, -1); + fireContentsChanged(this, -1, -1); } /** diff --git a/libjava/classpath/javax/swing/DefaultListModel.java b/libjava/classpath/javax/swing/DefaultListModel.java index 2d02874a7e4..674864cce3a 100644 --- a/libjava/classpath/javax/swing/DefaultListModel.java +++ b/libjava/classpath/javax/swing/DefaultListModel.java @@ -309,7 +309,7 @@ public class DefaultListModel extends AbstractListModel * * @return A new enumeration which iterates over the list */ - public Enumeration elements() + public Enumeration elements() { return elements.elements(); } diff --git a/libjava/classpath/javax/swing/DefaultListSelectionModel.java b/libjava/classpath/javax/swing/DefaultListSelectionModel.java index 482ce2cc224..d1e2da85fe8 100644 --- a/libjava/classpath/javax/swing/DefaultListSelectionModel.java +++ b/libjava/classpath/javax/swing/DefaultListSelectionModel.java @@ -815,7 +815,7 @@ public class DefaultListSelectionModel implements Cloneable, * @see #getListSelectionListeners * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } diff --git a/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java b/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java index 1c6f473fdd3..3f79f0deed5 100644 --- a/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java +++ b/libjava/classpath/javax/swing/DefaultSingleSelectionModel.java @@ -174,7 +174,7 @@ public class DefaultSingleSelectionModel * * @since 1.3 */ - public EventListener[] getListeners(Class listenerClass) + public T[] getListeners(Class listenerClass) { return listenerList.getListeners(listenerClass); } diff --git a/libjava/classpath/javax/swing/JButton.java b/libjava/classpath/javax/swing/JButton.java index 787adb87cf1..878cfa68397 100644 --- a/libjava/classpath/javax/swing/JButton.java +++ b/libjava/classpath/javax/swing/JButton.java @@ -132,8 +132,8 @@ public class JButton extends AbstractButton public JButton(String text, Icon icon) { super(); - init(text, icon); setModel(new DefaultButtonModel()); + init(text, icon); defaultCapable = true; } diff --git a/libjava/classpath/javax/swing/JComboBox.java b/libjava/classpath/javax/swing/JComboBox.java index c75a94bdc36..fa6941cf977 100644 --- a/libjava/classpath/javax/swing/JComboBox.java +++ b/libjava/classpath/javax/swing/JComboBox.java @@ -196,7 +196,7 @@ public class JComboBox extends JComponent implements ItemSelectable, * * @param itemVector vector containing list of items for this JComboBox. */ - public JComboBox(Vector itemVector) + public JComboBox(Vector itemVector) { this(new DefaultComboBoxModel(itemVector)); diff --git a/libjava/classpath/javax/swing/JComponent.java b/libjava/classpath/javax/swing/JComponent.java index fa83502946d..5ec5079223e 100644 --- a/libjava/classpath/javax/swing/JComponent.java +++ b/libjava/classpath/javax/swing/JComponent.java @@ -69,6 +69,7 @@ import java.beans.PropertyVetoException; import java.beans.VetoableChangeListener; import java.beans.VetoableChangeSupport; import java.io.Serializable; +import java.util.ArrayList; import java.util.EventListener; import java.util.Hashtable; import java.util.Locale; @@ -503,27 +504,6 @@ public abstract class JComponent extends Container implements Serializable } } - /** - * An explicit value for the component's preferred size; if not set by a - * user, this is calculated on the fly by delegating to the {@link - * ComponentUI#getPreferredSize} method on the {@link #ui} property. - */ - Dimension preferredSize; - - /** - * An explicit value for the component's minimum size; if not set by a - * user, this is calculated on the fly by delegating to the {@link - * ComponentUI#getMinimumSize} method on the {@link #ui} property. - */ - Dimension minimumSize; - - /** - * An explicit value for the component's maximum size; if not set by a - * user, this is calculated on the fly by delegating to the {@link - * ComponentUI#getMaximumSize} method on the {@link #ui} property. - */ - Dimension maximumSize; - /** * A value between 0.0 and 1.0 indicating the preferred horizontal * alignment of the component, relative to its siblings. The values @@ -561,14 +541,6 @@ public abstract class JComponent extends Container implements Serializable */ Border border; - /** - * The text to show in the tooltip associated with this component. - * - * @see #setToolTipText - * @see #getToolTipText() - */ - String toolTipText; - /** * The popup menu for the component. * @@ -687,7 +659,7 @@ public abstract class JComponent extends Container implements Serializable * Indicates whether we are calling paintDoubleBuffered() from * paintImmadiately (RepaintManager) or from paint() (AWT refresh). */ - static private boolean isRepainting = false; + static boolean isRepainting = false; /** * Listeners for events other than {@link PropertyChangeEvent} are @@ -783,6 +755,13 @@ public abstract class JComponent extends Container implements Serializable */ public static final int WHEN_IN_FOCUSED_WINDOW = 2; + + /** + * Used to optimize painting. This is set in paintImmediately2() to specify + * the exact component path to be painted by paintChildren. + */ + Component paintChild; + /** * Indicates if the opaque property has been set by a client program or by * the UI. @@ -868,7 +847,12 @@ public abstract class JComponent extends Container implements Serializable t.put(key, value); else t.remove(key); - firePropertyChange(key.toString(), old, value); + + // When both old and new value are null, no event is fired. This is + // different from what firePropertyChange() normally does, so we add this + // check here. + if (old != null || value != null) + firePropertyChange(key.toString(), old, value); } /** @@ -943,12 +927,12 @@ public abstract class JComponent extends Container implements Serializable * * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { if (listenerType == PropertyChangeListener.class) - return getPropertyChangeListeners(); + return (T[]) getPropertyChangeListeners(); else if (listenerType == VetoableChangeListener.class) - return getVetoableChangeListeners(); + return (T[]) getVetoableChangeListeners(); else return listenerList.getListeners(listenerType); } @@ -1270,37 +1254,38 @@ public abstract class JComponent extends Container implements Serializable } /** - * Get the component's maximum size. If the {@link #maximumSize} property - * has been explicitly set, it is returned. If the {@link #maximumSize} + * Get the component's maximum size. If the maximumSize property + * has been explicitly set, it is returned. If the maximumSize * property has not been set but the {@link #ui} property has been, the * result of {@link ComponentUI#getMaximumSize} is returned. If neither * property has been set, the result of {@link Container#getMaximumSize} * is returned. * - * @return The maximum size of the component + * @return the maximum size of the component * - * @see #maximumSize - * @see #setMaximumSize + * @see Component#setMaximumSize + * @see Component#getMaximumSize() + * @see Component#isMaximumSizeSet() + * @see ComponentUI#getMaximumSize(JComponent) */ public Dimension getMaximumSize() { - if (maximumSize != null) - return maximumSize; - - if (ui != null) + Dimension size = null; + if (isMaximumSizeSet()) + size = super.getMaximumSize(); + else { - Dimension s = ui.getMaximumSize(this); - if (s != null) - return s; + if (ui != null) + size = ui.getMaximumSize(this); + if (size == null) + size = super.getMaximumSize(); } - - Dimension p = super.getMaximumSize(); - return p; + return size; } /** - * Get the component's minimum size. If the {@link #minimumSize} property - * has been explicitly set, it is returned. If the {@link #minimumSize} + * Get the component's minimum size. If the minimumSize property + * has been explicitly set, it is returned. If the minimumSize * property has not been set but the {@link #ui} property has been, the * result of {@link ComponentUI#getMinimumSize} is returned. If neither * property has been set, the result of {@link Container#getMinimumSize} @@ -1308,97 +1293,57 @@ public abstract class JComponent extends Container implements Serializable * * @return The minimum size of the component * - * @see #minimumSize - * @see #setMinimumSize + * @see Component#setMinimumSize + * @see Component#getMinimumSize() + * @see Component#isMinimumSizeSet() + * @see ComponentUI#getMinimumSize(JComponent) */ public Dimension getMinimumSize() { - if (minimumSize != null) - return minimumSize; - - if (ui != null) + Dimension size = null; + if (isMinimumSizeSet()) + size = super.getMinimumSize(); + else { - Dimension s = ui.getMinimumSize(this); - if (s != null) - return s; + if (ui != null) + size = ui.getMinimumSize(this); + if (size == null) + size = super.getMinimumSize(); } - - Dimension p = super.getMinimumSize(); - return p; + return size; } /** - * Get the component's preferred size. If the {@link #preferredSize} - * property has been explicitly set, it is returned. If the {@link - * #preferredSize} property has not been set but the {@link #ui} property - * has been, the result of {@link ComponentUI#getPreferredSize} is + * Get the component's preferred size. If the preferredSize + * property has been explicitly set, it is returned. If the + * preferredSize property has not been set but the {@link #ui} + * property has been, the result of {@link ComponentUI#getPreferredSize} is * returned. If neither property has been set, the result of {@link * Container#getPreferredSize} is returned. * * @return The preferred size of the component * - * @see #preferredSize - * @see #setPreferredSize + * @see Component#setPreferredSize + * @see Component#getPreferredSize() + * @see Component#isPreferredSizeSet() + * @see ComponentUI#getPreferredSize(JComponent) */ public Dimension getPreferredSize() { - Dimension prefSize = null; - if (preferredSize != null) - prefSize = new Dimension(preferredSize); - - else if (ui != null) + Dimension size = null; + if (isPreferredSizeSet()) + size = super.getPreferredSize(); + else { - Dimension s = ui.getPreferredSize(this); - if (s != null) - prefSize = s; + if (ui != null) + size = ui.getPreferredSize(this); + if (size == null) + size = super.getPreferredSize(); } - - if (prefSize == null) - prefSize = super.getPreferredSize(); - - return prefSize; + return size; } /** - * Checks if a maximum size was explicitely set on the component. - * - * @return true if a maximum size was set, - * false otherwise - * - * @since 1.3 - */ - public boolean isMaximumSizeSet() - { - return maximumSize != null; - } - - /** - * Checks if a minimum size was explicitely set on the component. - * - * @return true if a minimum size was set, - * false otherwise - * - * @since 1.3 - */ - public boolean isMinimumSizeSet() - { - return minimumSize != null; - } - - /** - * Checks if a preferred size was explicitely set on the component. - * - * @return true if a preferred size was set, - * false otherwise - * - * @since 1.3 - */ - public boolean isPreferredSizeSet() - { - return preferredSize != null; - } - - /** * Return the value of the nextFocusableComponent property. * * @return The current value of the property, or null @@ -1491,14 +1436,12 @@ public abstract class JComponent extends Container implements Serializable { JToolTip toolTip = new JToolTip(); toolTip.setComponent(this); - toolTip.setTipText(toolTipText); - return toolTip; } /** - * Return the location at which the {@link #toolTipText} property should be - * displayed, when triggered by a particular mouse event. + * Return the location at which the toolTipText property should + * be displayed, when triggered by a particular mouse event. * * @param event The event the tooltip is being presented in response to * @@ -1511,53 +1454,56 @@ public abstract class JComponent extends Container implements Serializable } /** - * Set the value of the {@link #toolTipText} property. + * Set the tooltip text for this component. If a non-null + * value is set, this component is registered in the + * ToolTipManager in order to turn on tooltips for this + * component. If a null value is set, tooltips are turne off + * for this component. * - * @param text The new property value + * @param text the tooltip text for this component * * @see #getToolTipText() + * @see #getToolTipText(MouseEvent) */ public void setToolTipText(String text) { + String old = getToolTipText(); + putClientProperty(TOOL_TIP_TEXT_KEY, text); + ToolTipManager ttm = ToolTipManager.sharedInstance(); if (text == null) - { - ToolTipManager.sharedInstance().unregisterComponent(this); - toolTipText = null; - return; - } - - // XXX: The tip text doesn't get updated unless you set it to null - // and then to something not-null. This is consistent with the behaviour - // of Sun's ToolTipManager. - - String oldText = toolTipText; - toolTipText = text; - - if (oldText == null) - ToolTipManager.sharedInstance().registerComponent(this); + ttm.unregisterComponent(this); + else if (old == null) + ttm.registerComponent(this); } /** - * Get the value of the {@link #toolTipText} property. + * Returns the current tooltip text for this component, or null + * if none has been set. * - * @return The current property value + * @return the current tooltip text for this component, or null + * if none has been set * * @see #setToolTipText + * @see #getToolTipText(MouseEvent) */ public String getToolTipText() { - return toolTipText; + return (String) getClientProperty(TOOL_TIP_TEXT_KEY); } /** - * Get the value of the {@link #toolTipText} property, in response to a - * particular mouse event. + * Returns the tooltip text for this component for a particular mouse + * event. This can be used to support context sensitive tooltips that can + * change with the mouse location. By default this returns the static + * tooltip text returned by {@link #getToolTipText()}. * - * @param event The mouse event which triggered the tooltip + * @param event the mouse event which triggered the tooltip * - * @return The current property value + * @return the tooltip text for this component for a particular mouse + * event * * @see #setToolTipText + * @see #getToolTipText() */ public String getToolTipText(MouseEvent event) { @@ -1850,7 +1796,7 @@ public abstract class JComponent extends Container implements Serializable && rm.isDoubleBufferingEnabled()) { Rectangle clip = g.getClipBounds(); - paintDoubleBuffered(clip); + paintDoubleBuffered(clip.x, clip.y, clip.width, clip.height); } else { @@ -1865,8 +1811,22 @@ public abstract class JComponent extends Container implements Serializable dragBuffer = null; } - if (g.getClip() == null) - g.setClip(0, 0, getWidth(), getHeight()); + Rectangle clip = g.getClipBounds(); + int clipX, clipY, clipW, clipH; + if (clip == null) + { + clipX = 0; + clipY = 0; + clipW = getWidth(); + clipH = getHeight(); + } + else + { + clipX = clip.x; + clipY = clip.y; + clipW = clip.width; + clipH = clip.height; + } if (dragBuffer != null && dragBufferInitialized) { g.drawImage(dragBuffer, 0, 0, this); @@ -1874,14 +1834,51 @@ public abstract class JComponent extends Container implements Serializable else { Graphics g2 = getComponentGraphics(g); - paintComponent(g2); - paintBorder(g2); + if (! isOccupiedByChild(clipX, clipY, clipW, clipH)) + { + paintComponent(g2); + paintBorder(g2); + } paintChildren(g2); } } } /** + * Determines if a region of this component is completely occupied by + * an opaque child component, in which case we don't need to bother + * painting this component at all. + * + * @param x the area, x coordinate + * @param y the area, y coordinate + * @param w the area, width + * @param h the area, height + * + * @return true if the specified area is completely covered + * by a child component, false otherwise + */ + private boolean isOccupiedByChild(int x, int y, int w, int h) + { + boolean occupied = false; + int count = getComponentCount(); + for (int i = 0; i < count; i++) + { + Component child = getComponent(i); + int cx = child.getX(); + int cy = child.getY(); + int cw = child.getWidth(); + int ch = child.getHeight(); + if (child.isVisible() && x >= cx && x + w <= cx + cw && y >= cy + && y + h <= cy + ch) + { + occupied = child.isOpaque(); + break; + } + } + return occupied; + } + + /** * Initializes the drag buffer by creating a new image and painting this * component into it. */ @@ -1940,7 +1937,14 @@ public abstract class JComponent extends Container implements Serializable // Need to lock the tree to avoid problems with AWT and concurrency. synchronized (getTreeLock()) { - for (int i = getComponentCount() - 1; i >= 0; i--) + // Fast forward to the child to paint, if set by + // paintImmediately2() + int i = getComponentCount() - 1; + if (paintChild != null && paintChild.isOpaque()) + { + for (; i >= 0 && getComponent(i) != paintChild; i--); + } + for (; i >= 0; i--) { Component child = getComponent(i); if (child != null && child.isLightweight() @@ -1958,7 +1962,8 @@ public abstract class JComponent extends Container implements Serializable Rectangle clip = g.getClipBounds(); // A copy. SwingUtilities.computeIntersection(cx, cy, cw, ch, clip); - if (isCompletelyObscured(i, clip)) + if (isCompletelyObscured(i, clip.x, clip.y, + clip.width, clip.height)) continue; // Continues the for-loop. } Graphics cg = g.create(cx, cy, cw, ch); @@ -1984,12 +1989,15 @@ public abstract class JComponent extends Container implements Serializable * of its siblings. * * @param index the index of the child component - * @param rect the region to check + * @param x the region to check, x coordinate + * @param y the region to check, y coordinate + * @param w the region to check, width + * @param h the region to check, height * * @return true if the region is completely obscured by a * sibling, false otherwise */ - private boolean isCompletelyObscured(int index, Rectangle rect) + private boolean isCompletelyObscured(int index, int x, int y, int w, int h) { boolean obscured = false; for (int i = index - 1; i >= 0 && obscured == false; i--) @@ -1998,10 +2006,10 @@ public abstract class JComponent extends Container implements Serializable if (sib.isVisible()) { Rectangle sibRect = sib.getBounds(rectCache); - if (sib.isOpaque() && rect.x >= sibRect.x - && (rect.x + rect.width) <= (sibRect.x + sibRect.width) - && rect.y >= sibRect.y - && (rect.y + rect.height) <= (sibRect.y + sibRect.height)) + if (sib.isOpaque() && x >= sibRect.x + && (x + w) <= (sibRect.x + sibRect.width) + && y >= sibRect.y + && (y + h) <= (sibRect.y + sibRect.height)) { obscured = true; } @@ -2011,6 +2019,39 @@ public abstract class JComponent extends Container implements Serializable } /** + * Checks if a component/rectangle is partially obscured by one of its + * siblings. + * Note that this doesn't check for completely obscured, this is + * done by isCompletelyObscured() and should probably also be checked. + * + * @param i the component index from which to start searching + * @param x the x coordinate of the rectangle to check + * @param y the y coordinate of the rectangle to check + * @param w the width of the rectangle to check + * @param h the height of the rectangle to check + * + * @return true if the rectangle is partially obscured + */ + private boolean isPartiallyObscured(int i, int x, int y, int w, int h) + { + boolean obscured = false; + for (int j = i - 1; j >= 0 && ! obscured; j--) + { + Component sibl = getComponent(j); + if (sibl.isVisible()) + { + Rectangle rect = sibl.getBounds(rectCache); + if (!(x + w <= rect.x) + || (y + h <= rect.y) + || (x >= rect.x + rect.width) + || (y >= rect.y + rect.height)) + obscured = true; + } + } + return obscured; + } + + /** * Paint the component's body. This usually means calling {@link * ComponentUI#update} on the {@link #ui} property of the component, if * it is non-null. You may override this if you wish to @@ -2050,7 +2091,26 @@ public abstract class JComponent extends Container implements Serializable */ public void paintImmediately(int x, int y, int w, int h) { - paintImmediately(new Rectangle(x, y, w, h)); + // Find opaque parent and call paintImmediately2() on it. + if (isShowing()) + { + Component c = this; + Component p; + while (c != null && ! c.isOpaque()) + { + p = c.getParent(); + if (p != null) + { + x += c.getX(); + y += c.getY(); + c = p; + } + } + if (c instanceof JComponent) + ((JComponent) c).paintImmediately2(x, y, w, h); + else + c.repaint(x, y, w, h); + } } /** @@ -2073,60 +2133,202 @@ public abstract class JComponent extends Container implements Serializable */ public void paintImmediately(Rectangle r) { - // Try to find a root pane for this component. - //Component root = findPaintRoot(r); - Component root = findPaintRoot(r); - // If no paint root is found, then this component is completely overlapped - // by another component and we don't need repainting. - if (root == null|| !root.isShowing()) - return; - SwingUtilities.convertRectangleToAncestor(this, r, root); - if (root instanceof JComponent) - ((JComponent) root).paintImmediately2(r); - else - root.repaint(r.x, r.y, r.width, r.height); + paintImmediately(r.x, r.y, r.width, r.height); } /** * Performs the actual work of paintImmediatly on the repaint root. * - * @param r the area to be repainted + * @param x the area to be repainted, X coordinate + * @param y the area to be repainted, Y coordinate */ - void paintImmediately2(Rectangle r) + void paintImmediately2(int x, int y, int w, int h) { - isRepainting = true; + // Optimization for components that are always painted on top. + boolean onTop = onTop() && isOpaque(); + + // Fetch the RepaintManager. RepaintManager rm = RepaintManager.currentManager(this); - if (rm.isDoubleBufferingEnabled() && isPaintingDoubleBuffered()) - paintDoubleBuffered(r); - else - paintSimple(r); - isRepainting = false; + + // The painting clip; + int paintX = x; + int paintY = y; + int paintW = w; + int paintH = h; + + // If we should paint buffered or not. + boolean haveBuffer = false; + + // The component that is finally triggered for painting. + JComponent paintRoot = this; + + // Stores the component and all its parents. This will be used to limit + // the actually painted components in paintChildren by setting + // the field paintChild. + int pIndex = -1; + int pCount = 0; + ArrayList components = new ArrayList(); + + // Offset to subtract from the paintRoot rectangle when painting. + int offsX = 0; + int offsY = 0; + + // The current component and its child. + Component child; + Container c; + + // Find appropriate paint root. + for (c = this, child = null; + c != null && ! (c instanceof Window) && ! (c instanceof Applet); + child = c, c = c.getParent()) + { + JComponent jc = c instanceof JComponent ? (JComponent) c : null; + components.add(c); + if (! onTop && jc != null && ! jc.isOptimizedDrawingEnabled()) + { + // Indicates whether we reset the paint root to be the current + // component. + boolean updatePaintRoot = false; + + // Check obscured state of the child. + // Generally, we have 3 cases here: + // 1. Not obscured. No need to paint from the parent. + // 2. Partially obscured. Paint from the parent. + // 3. Completely obscured. No need to paint anything. + if (c != this) + { + if (jc.isPaintRoot()) + updatePaintRoot = true; + else + { + int count = c.getComponentCount(); + int i = 0; + for (; i < count && c.getComponent(i) != child; i++); + + if (jc.isCompletelyObscured(i, paintX, paintY, paintW, + paintH)) + return; // No need to paint anything. + else if (jc.isPartiallyObscured(i, paintX, paintY, paintW, + paintH)) + updatePaintRoot = true; + + } + } + if (updatePaintRoot) + { + // Paint from parent. + paintRoot = jc; + pIndex = pCount; + offsX = 0; + offsY = 0; + haveBuffer = false; + } + } + pCount++; + // Check if component is double buffered. + if (rm.isDoubleBufferingEnabled() && jc != null + && jc.isDoubleBuffered()) + { + haveBuffer = true; + } + + // Clip the paint region with the parent. + if (! onTop) + { + paintX = Math.max(0, paintX); + paintY = Math.max(0, paintY); + paintW = Math.min(c.getWidth(), paintW + paintX) - paintX; + paintH = Math.min(c.getHeight(), paintH + paintY) - paintY; + int dx = c.getX(); + int dy = c.getY(); + paintX += dx; + paintY += dy; + offsX += dx; + offsY += dy; + } + } + if (c != null && c.getPeer() != null && paintW > 0 && paintH > 0) + { + isRepainting = true; + paintX -= offsX; + paintY -= offsY; + + // Set the painting path so that paintChildren paints only what we + // want. + if (paintRoot != this) + { + for (int i = pIndex; i > 0; i--) + { + Component paintParent = (Component) components.get(i); + if (paintParent instanceof JComponent) + ((JComponent) paintParent).paintChild = + (Component) components.get(i - 1); + } + } + + // Actually trigger painting. + if (haveBuffer) + paintRoot.paintDoubleBuffered(paintX, paintY, paintW, paintH); + else + { + Graphics g = paintRoot.getGraphics(); + try + { + g.setClip(paintX, paintY, paintW, paintH); + paintRoot.paint(g); + } + finally + { + g.dispose(); + } + } + + // Reset the painting path. + if (paintRoot != this) + { + for (int i = pIndex; i > 0; i--) + { + Component paintParent = (Component) components.get(i); + if (paintParent instanceof JComponent) + ((JComponent) paintParent).paintChild = null; + } + } + + isRepainting = false; + } } /** - * Returns true if we must paint double buffered, that is, when this - * component or any of it's ancestors are double buffered. + * Returns true if the component is guaranteed to be painted + * on top of others. This returns false by default and is overridden by + * components like JMenuItem, JPopupMenu and JToolTip to return true for + * added efficiency. * - * @return true if we must paint double buffered, that is, when this - * component or any of it's ancestors are double buffered + * @return true if the component is guaranteed to be painted + * on top of others */ - private boolean isPaintingDoubleBuffered() + boolean onTop() { - boolean doubleBuffered = isDoubleBuffered(); - Component parent = getParent(); - while (! doubleBuffered && parent != null) - { - doubleBuffered = parent instanceof JComponent - && ((JComponent) parent).isDoubleBuffered(); - parent = parent.getParent(); - } - return doubleBuffered; + return false; + } + + /** + * This returns true when a component needs to force itself as a paint + * origin. This is used for example in JViewport to make sure that it + * gets to update its backbuffer. + * + * @return true when a component needs to force itself as a paint + * origin + */ + boolean isPaintRoot() + { + return false; } /** * Performs double buffered repainting. */ - private void paintDoubleBuffered(Rectangle r) + private void paintDoubleBuffered(int x, int y, int w, int h) { RepaintManager rm = RepaintManager.currentManager(this); @@ -2143,7 +2345,7 @@ public abstract class JComponent extends Container implements Serializable //Rectangle targetClip = SwingUtilities.convertRectangle(this, r, root); Graphics g2 = buffer.getGraphics(); clipAndTranslateGraphics(root, this, g2); - g2.clipRect(r.x, r.y, r.width, r.height); + g2.clipRect(x, y, w, h); g2 = getComponentGraphics(g2); paintingDoubleBuffered = true; try @@ -2164,7 +2366,7 @@ public abstract class JComponent extends Container implements Serializable } // Paint the buffer contents on screen. - rm.commitBuffer(this, r); + rm.commitBuffer(this, x, y, w, h); } /** @@ -2577,7 +2779,7 @@ public abstract class JComponent extends Container implements Serializable KeyEvent e, int condition, boolean pressed) - { + { if (isEnabled()) { Action act = null; @@ -2591,7 +2793,7 @@ public abstract class JComponent extends Container implements Serializable if (cmd instanceof ActionListenerProxy) act = (Action) cmd; else - act = (Action) getActionMap().get(cmd); + act = getActionMap().get(cmd); } } if (act != null && act.isEnabled()) @@ -2741,9 +2943,25 @@ public abstract class JComponent extends Container implements Serializable */ public void scrollRectToVisible(Rectangle r) { - Component p = getParent(); - if (p instanceof JComponent) - ((JComponent) p).scrollRectToVisible(r); + // Search nearest JComponent. + int xOffs = getX(); + int yOffs = getY(); + Component p; + for (p = getParent(); p != null && ! (p instanceof JComponent); + p = p.getParent()) + { + xOffs += p.getX(); + yOffs += p.getY(); + } + if (p != null) + { + r.x += xOffs; + r.y += yOffs; + JComponent jParent = (JComponent) p; + jParent.scrollRectToVisible(r); + r.x -= xOffs; + r.y -= yOffs; + } } /** @@ -2862,57 +3080,6 @@ public abstract class JComponent extends Container implements Serializable } /** - * Set the value of the {@link #maximumSize} property. The passed value is - * copied, the later direct changes on the argument have no effect on the - * property value. - * - * @param max The new value of the property - */ - public void setMaximumSize(Dimension max) - { - Dimension oldMaximumSize = maximumSize; - if (max != null) - maximumSize = new Dimension(max); - else - maximumSize = null; - firePropertyChange("maximumSize", oldMaximumSize, maximumSize); - } - - /** - * Set the value of the {@link #minimumSize} property. The passed value is - * copied, the later direct changes on the argument have no effect on the - * property value. - * - * @param min The new value of the property - */ - public void setMinimumSize(Dimension min) - { - Dimension oldMinimumSize = minimumSize; - if (min != null) - minimumSize = new Dimension(min); - else - minimumSize = null; - firePropertyChange("minimumSize", oldMinimumSize, minimumSize); - } - - /** - * Set the value of the {@link #preferredSize} property. The passed value is - * copied, the later direct changes on the argument have no effect on the - * property value. - * - * @param pref The new value of the property - */ - public void setPreferredSize(Dimension pref) - { - Dimension oldPreferredSize = preferredSize; - if (pref != null) - preferredSize = new Dimension(pref); - else - preferredSize = null; - firePropertyChange("preferredSize", oldPreferredSize, preferredSize); - } - - /** * Set the specified component to be the next component in the * focus cycle, overriding the {@link FocusTraversalPolicy} for * this component. @@ -3571,130 +3738,6 @@ public abstract class JComponent extends Container implements Serializable jc.fireAncestorEvent(ancestor, id); } } - - /** - * Finds a suitable paint root for painting this component. This method first - * checks if this component is overlapped using - * {@link #findOverlapFreeParent(Rectangle)}. The returned paint root is then - * feeded to {@link #findOpaqueParent(Component)} to find the nearest opaque - * component for this paint root. If no paint is necessary, then we return - * null. - * - * @param c the clip of this component - * - * @return the paint root or null if no painting is necessary - */ - private Component findPaintRoot(Rectangle c) - { - Component p = findOverlapFreeParent(c); - if (p == null) - return null; - Component root = findOpaqueParent(p); - return root; - } - - /** - * Scans the containment hierarchy upwards for components that overlap the - * this component in the specified clip. This method returns - * this, if no component overlaps this component. It returns - * null if another component completely covers this component - * in the specified clip (no repaint necessary). If another component partly - * overlaps this component in the specified clip, then the parent of this - * component is returned (this is the component that must be used as repaint - * root). For efficient lookup, the method - * {@link #isOptimizedDrawingEnabled()} is used. - * - * @param clip the clip of this component - * - * @return the paint root, or null if no paint is necessary - */ - private Component findOverlapFreeParent(Rectangle clip) - { - Rectangle currentClip = clip; - Component found = this; - Container parent = this; - - while (parent != null && !(parent instanceof Window)) - { - Container newParent = parent.getParent(); - if (newParent == null || newParent instanceof Window) - break; - // If the parent is optimizedDrawingEnabled, then its children are - // tiled and cannot have an overlapping child. Go directly to next - // parent. - if ((newParent instanceof JComponent - && ((JComponent) newParent).isOptimizedDrawingEnabled())) - - { - parent = newParent; - continue; - } - - // If the parent is not optimizedDrawingEnabled, we must check if the - // parent or some neighbor overlaps the current clip. - - // This is the current clip converted to the parent's coordinate - // system. TODO: We can do this more efficiently by succesively - // cumulating the parent-child translations. - Rectangle target = SwingUtilities.convertRectangle(found, - currentClip, - newParent); - - // We have an overlap if either: - // - The new parent itself doesn't completely cover the clip - // (this can be the case with viewports). - // - If some higher-level (than the current) children of the new parent - // intersect the target rectangle. - Rectangle parentRect = SwingUtilities.getLocalBounds(newParent); - boolean haveOverlap = - ! SwingUtilities.isRectangleContainingRectangle(parentRect, target); - if (! haveOverlap) - { - Component child; - for (int i = 0; (child = newParent.getComponent(i)) != parent && !haveOverlap; i++) - { - Rectangle childRect = child.getBounds(); - haveOverlap = target.intersects(childRect); - } - } - if (haveOverlap) - { - found = newParent; - currentClip = target; - } - parent = newParent; - } - //System.err.println("overlapfree parent: " + found); - return found; - } - - /** - * Finds the nearest component to c (upwards in the containment - * hierarchy), that is opaque. If c itself is opaque, - * this returns c itself. - * - * @param c the start component for the search - * @return the nearest component to c (upwards in the containment - * hierarchy), that is opaque; If c itself is opaque, - * this returns c itself - */ - private Component findOpaqueParent(Component c) - { - Component found = c; - while (true) - { - if ((found instanceof JComponent) && ((JComponent) found).isOpaque()) - break; - else if (!(found instanceof JComponent) && !found.isLightweight()) - break; - Container p = found.getParent(); - if (p == null) - break; - else - found = p; - } - return found; - } /** * This is the method that gets called when the WHEN_IN_FOCUSED_WINDOW map diff --git a/libjava/classpath/javax/swing/JDialog.java b/libjava/classpath/javax/swing/JDialog.java index 08dada2fd81..495c9c791d7 100644 --- a/libjava/classpath/javax/swing/JDialog.java +++ b/libjava/classpath/javax/swing/JDialog.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.swing; +import java.awt.AWTEvent; import java.awt.Component; import java.awt.Container; import java.awt.Dialog; @@ -97,7 +98,7 @@ public class JDialog extends Dialog implements Accessible, WindowConstants, protected boolean rootPaneCheckingEnabled = false; /** The default action taken when closed. */ - private int close_action = HIDE_ON_CLOSE; + private int closeAction = HIDE_ON_CLOSE; /** Whether JDialogs are decorated by the Look and Feel. */ private static boolean decorated; @@ -245,6 +246,10 @@ public class JDialog extends Dialog implements Accessible, WindowConstants, */ protected void dialogInit() { + // We need to explicitly enable events here so that our processKeyEvent() + // and processWindowEvent() gets called. + enableEvents(AWTEvent.WINDOW_EVENT_MASK); + // FIXME: Do a check on GraphicsEnvironment.isHeadless() setLocale(JComponent.getDefaultLocale()); getRootPane(); // Will do set/create. @@ -507,37 +512,23 @@ public class JDialog extends Dialog implements Accessible, WindowConstants, */ protected void processWindowEvent(WindowEvent e) { - // System.out.println("PROCESS_WIN_EV-1: " + e); super.processWindowEvent(e); - // System.out.println("PROCESS_WIN_EV-2: " + e); - switch (e.getID()) + if (e.getID() == WindowEvent.WINDOW_CLOSING) { - case WindowEvent.WINDOW_CLOSING: - { - switch (getDefaultCloseOperation()) - { - case DISPOSE_ON_CLOSE: - { - dispose(); - break; - } - case HIDE_ON_CLOSE: - { - setVisible(false); - break; - } - case DO_NOTHING_ON_CLOSE: - break; - } - break; - } - case WindowEvent.WINDOW_CLOSED: - case WindowEvent.WINDOW_OPENED: - case WindowEvent.WINDOW_ICONIFIED: - case WindowEvent.WINDOW_DEICONIFIED: - case WindowEvent.WINDOW_ACTIVATED: - case WindowEvent.WINDOW_DEACTIVATED: - break; + switch (closeAction) + { + case EXIT_ON_CLOSE: + System.exit(0); + break; + case DISPOSE_ON_CLOSE: + dispose(); + break; + case HIDE_ON_CLOSE: + setVisible(false); + break; + case DO_NOTHING_ON_CLOSE: + break; + } } } @@ -554,7 +545,7 @@ public class JDialog extends Dialog implements Accessible, WindowConstants, must return the invalid code, and the behaviour defaults to DO_NOTHING_ON_CLOSE. processWindowEvent above handles this */ - close_action = operation; + closeAction = operation; } /** @@ -565,7 +556,7 @@ public class JDialog extends Dialog implements Accessible, WindowConstants, */ public int getDefaultCloseOperation() { - return close_action; + return closeAction; } /** diff --git a/libjava/classpath/javax/swing/JEditorPane.java b/libjava/classpath/javax/swing/JEditorPane.java index 4ae3c5a1c6b..38b0761f00f 100644 --- a/libjava/classpath/javax/swing/JEditorPane.java +++ b/libjava/classpath/javax/swing/JEditorPane.java @@ -40,6 +40,8 @@ package javax.swing; import java.awt.Container; import java.awt.Dimension; +import java.io.BufferedInputStream; +import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -47,6 +49,7 @@ import java.io.Reader; import java.io.StringReader; import java.net.MalformedURLException; import java.net.URL; +import java.net.URLConnection; import java.util.HashMap; import javax.accessibility.AccessibleContext; @@ -56,6 +59,8 @@ import javax.accessibility.AccessibleStateSet; import javax.accessibility.AccessibleText; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; +import javax.swing.plaf.TextUI; +import javax.swing.text.AbstractDocument; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultEditorKit; import javax.swing.text.Document; @@ -482,6 +487,34 @@ public class JEditorPane extends JTextComponent } /** + * Used to store a mapping for content-type to editor kit class. + */ + private static class EditorKitMapping + { + /** + * The classname of the editor kit. + */ + String className; + + /** + * The classloader with which the kit is to be loaded. + */ + ClassLoader classLoader; + + /** + * Creates a new EditorKitMapping object. + * + * @param cn the classname + * @param cl the classloader + */ + EditorKitMapping(String cn, ClassLoader cl) + { + className = cn; + classLoader = cl; + } + } + + /** * An EditorKit used for plain text. This is the default editor kit for * JEditorPanes. * @@ -505,19 +538,159 @@ public class JEditorPane extends JTextComponent } } + /** + * A special stream that can be cancelled. + */ + private class PageStream + extends FilterInputStream + { + /** + * True when the stream has been cancelled, false otherwise. + */ + private boolean cancelled; + + protected PageStream(InputStream in) + { + super(in); + cancelled = false; + } + + private void checkCancelled() + throws IOException + { + if (cancelled) + throw new IOException("Stream has been cancelled"); + } + + void cancel() + { + cancelled = true; + } + + public int read() + throws IOException + { + checkCancelled(); + return super.read(); + } + + public int read(byte[] b, int off, int len) + throws IOException + { + checkCancelled(); + return super.read(b, off, len); + } + + public long skip(long n) + throws IOException + { + checkCancelled(); + return super.skip(n); + } + + public int available() + throws IOException + { + checkCancelled(); + return super.available(); + } + + public void reset() + throws IOException + { + checkCancelled(); + super.reset(); + } + } + + /** + * The thread that loads documents asynchronously. + */ + private class PageLoader + implements Runnable + { + private Document doc; + private PageStream in; + private URL old; + URL page; + PageLoader(Document doc, InputStream in, URL old, URL page) + { + this.doc = doc; + this.in = new PageStream(in); + this.old = old; + this.page = page; + } + + public void run() + { + try + { + read(in, doc); + } + catch (IOException ex) + { + UIManager.getLookAndFeel().provideErrorFeedback(JEditorPane.this); + } + finally + { + if (SwingUtilities.isEventDispatchThread()) + firePropertyChange("page", old, page); + else + { + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + firePropertyChange("page", old, page); + } + }); + } + } + } + + void cancel() + { + in.cancel(); + } + } + private static final long serialVersionUID = 3140472492599046285L; - private URL page; private EditorKit editorKit; boolean focus_root; + /** + * Maps content-types to editor kit instances. + */ + static HashMap editorKits; + // A mapping between content types and registered EditorKit types static HashMap registerMap; - + + static + { + registerMap = new HashMap(); + editorKits = new HashMap(); + registerEditorKitForContentType("application/rtf", + "javax.swing.text.rtf.RTFEditorKit"); + registerEditorKitForContentType("text/plain", + "javax.swing.JEditorPane$PlainEditorKit"); + registerEditorKitForContentType("text/html", + "javax.swing.text.html.HTMLEditorKit"); + registerEditorKitForContentType("text/rtf", + "javax.swing.text.rtf.RTFEditorKit"); + + } + // A mapping between content types and used EditorKits HashMap editorMap; + /** + * The currently loading stream, if any. + */ + private PageLoader loader; + public JEditorPane() { init(); @@ -550,15 +723,6 @@ public class JEditorPane extends JTextComponent void init() { editorMap = new HashMap(); - registerMap = new HashMap(); - registerEditorKitForContentType("application/rtf", - "javax.swing.text.rtf.RTFEditorKit"); - registerEditorKitForContentType("text/plain", - "javax.swing.JEditorPane$PlainEditorKit"); - registerEditorKitForContentType("text/html", - "javax.swing.text.html.HTMLEditorKit"); - registerEditorKitForContentType("text/rtf", - "javax.swing.text.rtf.RTFEditorKit"); } protected EditorKit createDefaultEditorKit() @@ -578,20 +742,28 @@ public class JEditorPane extends JTextComponent */ public static EditorKit createEditorKitForContentType(String type) { - // TODO: Have to handle the case where a ClassLoader was specified - // when the EditorKit was registered - EditorKit e = null; - String className = (String) registerMap.get(type); - if (className != null) + // Try cached instance. + EditorKit e = (EditorKit) editorKits.get(type); + if (e == null) { - try - { - e = (EditorKit) Class.forName(className).newInstance(); - } - catch (Exception e2) - { - // TODO: Not sure what to do here. - } + EditorKitMapping m = (EditorKitMapping) registerMap.get(type); + if (m != null) + { + String className = m.className; + ClassLoader loader = m.classLoader; + try + { + e = (EditorKit) loader.loadClass(className).newInstance(); + } + catch (Exception e2) + { + // The reference implementation returns null when class is not + // loadable or instantiatable. + } + } + // Cache this for later retrieval. + if (e != null) + editorKits.put(type, e); } return e; } @@ -652,7 +824,9 @@ public class JEditorPane extends JTextComponent */ public static String getEditorKitClassNameForContentType(String type) { - return (String) registerMap.get(type); + EditorKitMapping m = (EditorKitMapping) registerMap.get(type); + String kitName = m != null ? m.className : null; + return kitName; } /** @@ -675,10 +849,14 @@ public class JEditorPane extends JTextComponent EditorKit e = (EditorKit) editorMap.get(type); // Then check to see if we can create one. if (e == null) - e = createEditorKitForContentType(type); + { + e = createEditorKitForContentType(type); + if (e != null) + setEditorKitForContentType(type, e); + } // Otherwise default to PlainEditorKit. if (e == null) - e = new PlainEditorKit(); + e = createDefaultEditorKit(); return e; } @@ -695,10 +873,28 @@ public class JEditorPane extends JTextComponent public Dimension getPreferredSize() { Dimension pref = super.getPreferredSize(); - if (getScrollableTracksViewportWidth()) - pref.width = getUI().getMinimumSize(this).width; - if (getScrollableTracksViewportHeight()) - pref.height = getUI().getMinimumSize(this).height; + Container parent = getParent(); + if (parent instanceof JViewport) + { + JViewport vp = (JViewport) getParent(); + TextUI ui = getUI(); + Dimension min = null; + if (! getScrollableTracksViewportWidth()) + { + min = ui.getMinimumSize(this); + int vpWidth = vp.getWidth(); + if (vpWidth != 0 && vpWidth < min.width) + pref.width = min.width; + } + if (! getScrollableTracksViewportHeight()) + { + if (min == null) + min = ui.getMinimumSize(this); + int vpHeight = vp.getHeight(); + if (vpHeight != 0 && vpHeight < min.height) + pref.height = min.height; + } + } return pref; } @@ -716,8 +912,11 @@ public class JEditorPane extends JTextComponent // Tests show that this returns true when the parent is a JViewport // and has a height > minimum UI height. Container parent = getParent(); + int height = parent.getHeight(); + TextUI ui = getUI(); return parent instanceof JViewport - && parent.getHeight() > getUI().getMinimumSize(this).height; + && height >= ui.getMinimumSize(this).height + && height <= ui.getMaximumSize(this).height; } /** @@ -740,13 +939,19 @@ public class JEditorPane extends JTextComponent public URL getPage() { - return page; + return loader != null ? loader.page : null; } protected InputStream getStream(URL page) throws IOException { - return page.openStream(); + URLConnection conn = page.openConnection(); + // Try to detect the content type of the stream data. + String type = conn.getContentType(); + if (type != null) + setContentType(type); + InputStream stream = conn.getInputStream(); + return new BufferedInputStream(stream); } public String getText() @@ -777,10 +982,12 @@ public class JEditorPane extends JTextComponent EditorKit kit = getEditorKit(); if (kit instanceof HTMLEditorKit && desc instanceof HTMLDocument) { - Document doc = (Document) desc; + HTMLDocument doc = (HTMLDocument) desc; + setDocument(doc); try { - kit.read(in, doc, 0); + InputStreamReader reader = new InputStreamReader(in); + kit.read(reader, doc, 0); } catch (BadLocationException ex) { @@ -805,7 +1012,8 @@ public class JEditorPane extends JTextComponent public static void registerEditorKitForContentType(String type, String classname) { - registerMap.put(type, classname); + registerEditorKitForContentType(type, classname, + Thread.currentThread().getContextClassLoader()); } /** @@ -815,7 +1023,7 @@ public class JEditorPane extends JTextComponent String classname, ClassLoader loader) { - // TODO: Implement this properly. + registerMap.put(type, new EditorKitMapping(classname, loader)); } /** @@ -839,6 +1047,13 @@ public class JEditorPane extends JTextComponent public final void setContentType(String type) { + // Strip off content type parameters. + int paramIndex = type.indexOf(';'); + if (paramIndex > -1) + { + // TODO: Handle character encoding. + type = type.substring(0, paramIndex).trim(); + } if (editorKit != null && editorKit.getContentType().equals(type)) return; @@ -899,14 +1114,45 @@ public class JEditorPane extends JTextComponent if (page == null) throw new IOException("invalid url"); - try + URL old = getPage(); + // Only reload if the URL doesn't point to the same file. + // This is not the same as equals because there might be different + // URLs on the same file with different anchors. + if (old == null || ! old.sameFile(page)) { - this.page = page; - getEditorKit().read(page.openStream(), getDocument(), 0); - } - catch (BadLocationException e) - { - // Ignored. '0' is always a valid offset. + InputStream in = getStream(page); + if (editorKit != null) + { + Document doc = editorKit.createDefaultDocument(); + doc.putProperty(Document.StreamDescriptionProperty, page); + + if (loader != null) + loader.cancel(); + loader = new PageLoader(doc, in, old, page); + + int prio = -1; + if (doc instanceof AbstractDocument) + { + AbstractDocument aDoc = (AbstractDocument) doc; + prio = aDoc.getAsynchronousLoadPriority(); + } + if (prio >= 0) + { + // Load asynchronously. + setDocument(doc); + Thread loadThread = new Thread(loader, + "JEditorPane.PageLoader"); + loadThread.setDaemon(true); + loadThread.setPriority(prio); + loadThread.start(); + } + else + { + // Load synchronously. + loader.run(); + setDocument(doc); + } + } } } diff --git a/libjava/classpath/javax/swing/JFrame.java b/libjava/classpath/javax/swing/JFrame.java index 1371525ddf2..0ae23f101fa 100644 --- a/libjava/classpath/javax/swing/JFrame.java +++ b/libjava/classpath/javax/swing/JFrame.java @@ -157,6 +157,10 @@ public class JFrame extends Frame protected void frameInit() { + // We need to explicitly enable events here so that our processKeyEvent() + // and processWindowEvent() gets called. + enableEvents(AWTEvent.WINDOW_EVENT_MASK | AWTEvent.KEY_EVENT_MASK); + super.setLayout(new BorderLayout()); setBackground(UIManager.getDefaults().getColor("control")); enableEvents(AWTEvent.WINDOW_EVENT_MASK); @@ -351,39 +355,22 @@ public class JFrame extends Frame protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); - switch (e.getID()) + if (e.getID() == WindowEvent.WINDOW_CLOSING) { - case WindowEvent.WINDOW_CLOSING: - { - switch (closeAction) - { - case EXIT_ON_CLOSE: - { - System.exit(0); - break; - } - case DISPOSE_ON_CLOSE: - { - dispose(); - break; - } - case HIDE_ON_CLOSE: - { - setVisible(false); - break; - } - case DO_NOTHING_ON_CLOSE: - break; - } - break; - } - case WindowEvent.WINDOW_CLOSED: - case WindowEvent.WINDOW_OPENED: - case WindowEvent.WINDOW_ICONIFIED: - case WindowEvent.WINDOW_DEICONIFIED: - case WindowEvent.WINDOW_ACTIVATED: - case WindowEvent.WINDOW_DEACTIVATED: - break; + switch (closeAction) + { + case EXIT_ON_CLOSE: + System.exit(0); + break; + case DISPOSE_ON_CLOSE: + dispose(); + break; + case HIDE_ON_CLOSE: + setVisible(false); + break; + case DO_NOTHING_ON_CLOSE: + break; + } } } diff --git a/libjava/classpath/javax/swing/JLabel.java b/libjava/classpath/javax/swing/JLabel.java index fcf0fd7cb13..721287b21df 100644 --- a/libjava/classpath/javax/swing/JLabel.java +++ b/libjava/classpath/javax/swing/JLabel.java @@ -38,13 +38,14 @@ exception statement from your version. */ package javax.swing; -import gnu.classpath.NotImplementedException; - import java.awt.Component; import java.awt.Font; +import java.awt.FontMetrics; import java.awt.Image; +import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; @@ -54,8 +55,12 @@ import javax.accessibility.AccessibleExtendedComponent; import javax.accessibility.AccessibleRole; import javax.accessibility.AccessibleText; import javax.swing.plaf.LabelUI; +import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.Position; import javax.swing.text.SimpleAttributeSet; +import javax.swing.text.View; /** * A component that displays a static text message and/or an icon. @@ -303,10 +308,52 @@ public class JLabel extends JComponent implements Accessible, SwingConstants * @return the bounding box of the character at the specified index */ public Rectangle getCharacterBounds(int index) - throws NotImplementedException { - // FIXME: Implement this correctly. - return new Rectangle(); + Rectangle bounds = null; + View view = (View) getClientProperty(BasicHTML.propertyKey); + if (view != null) + { + Rectangle textR = getTextRectangle(); + try + { + Shape s = view.modelToView(index, textR, Position.Bias.Forward); + bounds = s.getBounds(); + } + catch (BadLocationException ex) + { + // Can't return something reasonable in this case. + } + } + return bounds; + } + + /** + * Returns the rectangle inside the JLabel, in which the actual text is + * rendered. This method has been adopted from the Mauve testcase + * gnu.testlet.javax.swing.JLabel.AccessibleJLabel.getCharacterBounds. + * + * @return the rectangle inside the JLabel, in which the actual text is + * rendered + */ + private Rectangle getTextRectangle() + { + JLabel l = JLabel.this; + Rectangle textR = new Rectangle(); + Rectangle iconR = new Rectangle(); + Insets i = l.getInsets(); + int w = l.getWidth(); + int h = l.getHeight(); + Rectangle viewR = new Rectangle(i.left, i.top, w - i.left - i.right, + h - i.top - i.bottom); + FontMetrics fm = l.getFontMetrics(l.getFont()); + SwingUtilities.layoutCompoundLabel(l, fm, l.getText(), l.getIcon(), + l.getVerticalAlignment(), + l.getHorizontalAlignment(), + l.getVerticalTextPosition(), + l.getHorizontalTextPosition(), + viewR, iconR, textR, + l.getIconTextGap()); + return textR; } /** @@ -319,10 +366,15 @@ public class JLabel extends JComponent implements Accessible, SwingConstants * point */ public int getIndexAtPoint(Point point) - throws NotImplementedException { - // FIXME: Implement this correctly. - return 0; + int index = -1; + View view = (View) getClientProperty(BasicHTML.propertyKey); + if (view != null) + { + Rectangle r = getTextRectangle(); + index = view.viewToModel(point.x, point.y, r, new Position.Bias[0]); + } + return index; } } @@ -379,11 +431,11 @@ public class JLabel extends JComponent implements Accessible, SwingConstants * Creates a new vertically and horizontally centered * JLabel object with no text and the given icon. * - * @param image The icon to use with the label. + * @param image The icon to use with the label, null permitted. */ public JLabel(Icon image) { - this("", image, CENTER); + this(null, image, CENTER); } /** @@ -391,19 +443,21 @@ public class JLabel extends JComponent implements Accessible, SwingConstants * given icon and horizontal alignment. By default, the text is TRAILING * the image. * - * @param image The icon to use with the label. - * @param horizontalAlignment The horizontal alignment of the label. + * @param image The icon to use with the label, null premitted. + * @param horizontalAlignment The horizontal alignment of the label, must be + * either CENTER, LEFT, RIGHT, + * LEADING or TRAILING. */ public JLabel(Icon image, int horizontalAlignment) { - this("", image, horizontalAlignment); + this(null, image, horizontalAlignment); } /** * Creates a new horizontally leading and vertically centered JLabel * object with no icon and the given text. * - * @param text The text to use with the label. + * @param text The text to use with the label, null permitted. */ public JLabel(String text) { @@ -414,8 +468,10 @@ public class JLabel extends JComponent implements Accessible, SwingConstants * Creates a new vertically centered JLabel object with no icon and the * given text and horizontal alignment. * - * @param text The text to use with the label. - * @param horizontalAlignment The horizontal alignment of the label. + * @param text The text to use with the label, null permitted. + * @param horizontalAlignment The horizontal alignment of the label, must be + * either CENTER, LEFT, RIGHT, + * LEADING or TRAILING. */ public JLabel(String text, int horizontalAlignment) { @@ -426,12 +482,21 @@ public class JLabel extends JComponent implements Accessible, SwingConstants * Creates a new vertically centered JLabel object with the given text, * icon, and horizontal alignment. * - * @param text The text to use with the label. - * @param icon The icon to use with the label. - * @param horizontalAlignment The horizontal alignment of the label. + * @param text The text to use with the label, null permitted. + * @param icon The icon to use with the label, null premitted. + * @param horizontalAlignment The horizontal alignment of the label, must be + * either CENTER, LEFT, RIGHT, + * LEADING or TRAILING. */ public JLabel(String text, Icon icon, int horizontalAlignment) { + if (horizontalAlignment != SwingConstants.LEFT + && horizontalAlignment != SwingConstants.RIGHT + && horizontalAlignment != SwingConstants.CENTER + && horizontalAlignment != SwingConstants.LEADING + && horizontalAlignment != SwingConstants.TRAILING) + throw new IllegalArgumentException(); + this.text = text; this.icon = icon; this.horizontalAlignment = horizontalAlignment; diff --git a/libjava/classpath/javax/swing/JLayeredPane.java b/libjava/classpath/javax/swing/JLayeredPane.java index ca913e97fed..d981788ec7d 100644 --- a/libjava/classpath/javax/swing/JLayeredPane.java +++ b/libjava/classpath/javax/swing/JLayeredPane.java @@ -406,7 +406,7 @@ public class JLayeredPane extends JComponent implements Accessible * Return a hashtable mapping child components of this container to * Integer objects representing the component's layer assignments. */ - protected Hashtable getComponentToLayer() + protected Hashtable getComponentToLayer() { return componentToLayer; } diff --git a/libjava/classpath/javax/swing/JList.java b/libjava/classpath/javax/swing/JList.java index 6a98770eeda..ff1b239217a 100644 --- a/libjava/classpath/javax/swing/JList.java +++ b/libjava/classpath/javax/swing/JList.java @@ -1041,7 +1041,7 @@ public class JList extends JComponent implements Accessible, Scrollable * * @param items the initial list items. */ - public JList(Vector items) + public JList(Vector items) { init(createListModel(items)); } @@ -1643,9 +1643,20 @@ public class JList extends JComponent implements Accessible, Scrollable * @param listData The object array to build a new list model on * @see #setModel */ - public void setListData(Vector listData) + public void setListData(final Vector listData) { - setModel(createListModel(listData)); + setModel(new AbstractListModel() + { + public int getSize() + { + return listData.size(); + } + + public Object getElementAt(int i) + { + return listData.elementAt(i); + } + }); } /** @@ -1935,72 +1946,74 @@ public class JList extends JComponent implements Accessible, Scrollable public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { - ListUI lui = this.getUI(); + int unit = -1; if (orientation == SwingConstants.VERTICAL) { - if (direction > 0) + int row = getFirstVisibleIndex(); + if (row == -1) + unit = 0; + else if (direction > 0) + { + // Scrolling down. + Rectangle bounds = getCellBounds(row, row); + if (bounds != null) + unit = bounds.height - (visibleRect.y - bounds.y); + else + unit = 0; + } + else { - // Scrolling down - Point bottomLeft = new Point(visibleRect.x, - visibleRect.y + visibleRect.height); - int curIdx = lui.locationToIndex(this, bottomLeft); - Rectangle curBounds = lui.getCellBounds(this, curIdx, curIdx); - if (curBounds.y + curBounds.height == bottomLeft.y) + // Scrolling up. + Rectangle bounds = getCellBounds(row, row); + // First row. + if (row == 0 && bounds.y == visibleRect.y) + unit = 0; // No need to scroll. + else if (bounds.y == visibleRect.y) { - // we are at the exact bottom of the current cell, so we - // are being asked to scroll to the end of the next one - if (curIdx + 1 < model.getSize()) - { - // there *is* a next item in the list - Rectangle nxtBounds = lui.getCellBounds(this, curIdx + 1, curIdx + 1); - return nxtBounds.height; - } + // Scroll to previous row. + Point loc = bounds.getLocation(); + loc.y--; + int prev = locationToIndex(loc); + Rectangle prevR = getCellBounds(prev, prev); + if (prevR == null || prevR.y >= bounds.y) + unit = 0; // For multicolumn lists. else - { - // no next item, no advance possible - return 0; - } + unit = prevR.height; } else - { - // we are part way through an existing cell, so we are being - // asked to scroll to the bottom of it - return (curBounds.y + curBounds.height) - bottomLeft.y; - } + unit = visibleRect.y - bounds.y; } - else + } + else if (orientation == SwingConstants.HORIZONTAL && getLayoutOrientation() != VERTICAL) + { + // Horizontal scrolling. + int i = locationToIndex(visibleRect.getLocation()); + if (i != -1) { - // scrolling up - Point topLeft = new Point(visibleRect.x, visibleRect.y); - int curIdx = lui.locationToIndex(this, topLeft); - Rectangle curBounds = lui.getCellBounds(this, curIdx, curIdx); - if (curBounds.y == topLeft.y) + Rectangle b = getCellBounds(i, i); + if (b != null) { - // we are at the exact top of the current cell, so we - // are being asked to scroll to the top of the previous one - if (curIdx > 0) + if (b.x != visibleRect.x) { - // there *is* a previous item in the list - Rectangle nxtBounds = lui.getCellBounds(this, curIdx - 1, curIdx - 1); - return -nxtBounds.height; + if (direction < 0) + unit = Math.abs(b.x - visibleRect.x); + else + unit = b.width + b.x - visibleRect.x; } else - { - // no previous item, no advance possible - return 0; - } + unit = b.width; } - else - { - // we are part way through an existing cell, so we are being - // asked to scroll to the top of it - return curBounds.y - topLeft.y; - } } } - // FIXME: handle horizontal scrolling (also wrapping?) - return 1; + if (unit == -1) + { + // This fallback seems to be used by the RI for the degenerate cases + // not covered above. + Font f = getFont(); + unit = f != null ? f.getSize() : 1; + } + return unit; } /** @@ -2029,10 +2042,120 @@ public class JList extends JComponent implements Accessible, Scrollable public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { - if (orientation == VERTICAL) - return visibleRect.height * direction; - else - return visibleRect.width * direction; + int block = -1; + if (orientation == SwingConstants.VERTICAL) + { + // Default block scroll. Special cases are handled below for + // better usability. + block = visibleRect.height; + if (direction > 0) + { + // Scroll down. + // Scroll so that after scrolling the last line aligns with + // the lower boundary of the visible area. + Point p = new Point(visibleRect.x, + visibleRect.y + visibleRect.height - 1); + int last = locationToIndex(p); + if (last != -1) + { + Rectangle lastR = getCellBounds(last, last); + if (lastR != null) + { + block = lastR.y - visibleRect.y; + if (block == 0&& last < getModel().getSize() - 1) + block = lastR.height; + } + } + } + else + { + // Scroll up. + // Scroll so that after scrolling the first line aligns with + // the upper boundary of the visible area. + Point p = new Point(visibleRect.x, + visibleRect.y - visibleRect.height); + int newFirst = locationToIndex(p); + if (newFirst != -1) + { + int first = getFirstVisibleIndex(); + if (first == -1) + first = locationToIndex(visibleRect.getLocation()); + Rectangle newFirstR = getCellBounds(newFirst, newFirst); + Rectangle firstR = getCellBounds(first, first); + if (newFirstR != null && firstR != null) + { + // Search first item that would left the current first + // item visible when scrolled to. + while (newFirstR.y + visibleRect.height + < firstR.y + firstR.height + && newFirstR.y < firstR.y) + { + newFirst++; + newFirstR = getCellBounds(newFirst, newFirst); + } + block = visibleRect.y - newFirstR.y; + if (block <= 0 && newFirstR.y > 0) + { + newFirst--; + newFirstR = getCellBounds(newFirst, newFirst); + if (newFirstR != null) + block = visibleRect.y - newFirstR.y; + } + } + } + } + } + else if (orientation == SwingConstants.HORIZONTAL + && getLayoutOrientation() != VERTICAL) + { + // Default block increment. Special cases are handled below for + // better usability. + block = visibleRect.width; + if (direction > 0) + { + // Scroll right. + Point p = new Point(visibleRect.x + visibleRect.width + 1, + visibleRect.y); + int last = locationToIndex(p); + if (last != -1) + { + Rectangle lastR = getCellBounds(last, last); + if (lastR != null) + { + block = lastR.x - visibleRect.x; + if (block < 0) + block += lastR.width; + else if (block == 0 && last < getModel().getSize() - 1) + block = lastR.width; + } + } + } + else + { + // Scroll left. + Point p = new Point(visibleRect.x - visibleRect.width, + visibleRect.y); + int first = locationToIndex(p); + if (first != -1) + { + Rectangle firstR = getCellBounds(first, first); + if (firstR != null) + { + if (firstR.x < visibleRect.x - visibleRect.width) + { + if (firstR.x + firstR.width > visibleRect.x) + block = visibleRect.x - firstR.x; + else + block = visibleRect.x - firstR.x - firstR.width; + } + else + block = visibleRect.x - firstR.x; + } + } + } + } + + return block; } /** diff --git a/libjava/classpath/javax/swing/JMenu.java b/libjava/classpath/javax/swing/JMenu.java index 0840509f906..7e627f1181d 100644 --- a/libjava/classpath/javax/swing/JMenu.java +++ b/libjava/classpath/javax/swing/JMenu.java @@ -39,8 +39,14 @@ exception statement from your version. */ package javax.swing; import java.awt.Component; +import java.awt.Dimension; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.Insets; import java.awt.Point; -import java.awt.PopupMenu; +import java.awt.Rectangle; +import java.awt.Toolkit; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -54,6 +60,8 @@ import javax.accessibility.Accessible; import javax.accessibility.AccessibleContext; import javax.accessibility.AccessibleRole; import javax.accessibility.AccessibleSelection; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; import javax.swing.plaf.MenuItemUI; @@ -72,6 +80,36 @@ import javax.swing.plaf.MenuItemUI; */ public class JMenu extends JMenuItem implements Accessible, MenuElement { + /** + * Receives notifications when the JMenu's ButtonModel is changed and + * fires menuSelected or menuDeselected events when appropriate. + */ + private class MenuChangeListener + implements ChangeListener + { + /** + * Indicates the last selected state. + */ + private boolean selected; + + /** + * Receives notification when the JMenu's ButtonModel changes. + */ + public void stateChanged(ChangeEvent ev) + { + ButtonModel m = (ButtonModel) ev.getSource(); + boolean s = m.isSelected(); + if (s != selected) + { + if (s) + fireMenuSelected(); + else + fireMenuDeselected(); + selected = s; + } + } + } + private static final long serialVersionUID = 4227225638931828014L; /** A Popup menu associated with this menu, which pops up when menu is selected */ @@ -88,18 +126,26 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement /* PopupListener */ protected WinListener popupListener; - /** Location at which popup menu associated with this menu will be - displayed */ + /** + * Location at which popup menu associated with this menu will be + * displayed + */ private Point menuLocation; /** + * The ChangeListener for the ButtonModel. + * + * @see MenuChangeListener + */ + private ChangeListener menuChangeListener; + + /** * Creates a new JMenu object. */ public JMenu() { super(); setOpaque(false); - setDelay(200); } /** @@ -113,7 +159,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement popupMenu = new JPopupMenu(); popupMenu.setInvoker(this); setOpaque(false); - setDelay(200); } /** @@ -129,7 +174,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement popupMenu = new JPopupMenu(); popupMenu.setInvoker(this); setOpaque(false); - setDelay(200); } /** @@ -143,7 +187,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement { // FIXME: tearoff not implemented this(text); - setDelay(200); } /** @@ -193,7 +236,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement */ public JMenuItem add(String text) { - return getPopupMenu().add(text); + return add(new JMenuItem(text)); } /** @@ -205,7 +248,10 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement */ public JMenuItem add(Action action) { - return getPopupMenu().add(action); + JMenuItem i = createActionComponent(action); + i.setAction(action); + add(i); + return i; } /** @@ -328,7 +374,18 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement */ public void setModel(ButtonModel model) { + ButtonModel oldModel = getModel(); + if (oldModel != null && menuChangeListener != null) + oldModel.removeChangeListener(menuChangeListener); + super.setModel(model); + + if (model != null) + { + if (menuChangeListener == null) + menuChangeListener = new MenuChangeListener(); + model.addChangeListener(menuChangeListener); + } } /** @@ -342,63 +399,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement } /** - * A helper method to handle setSelected calls from both mouse events and - * direct calls to setSelected. Direct calls shouldn't expand the popup - * menu and should select the JMenu even if it is disabled. Mouse events - * only select the JMenu if it is enabled and should expand the popup menu - * associated with this JMenu. - * @param selected whether or not the JMenu was selected - * @param menuEnabled whether or not selecting the menu is "enabled". This - * is always true for direct calls, and is set to isEnabled() for mouse - * based calls. - * @param showMenu whether or not to show the popup menu - */ - private void setSelectedHelper(boolean selected, boolean menuEnabled, boolean showMenu) - { - // If menu is selected and enabled, activates the menu and - // displays associated popup. - if (selected && menuEnabled) - { - super.setArmed(true); - super.setSelected(true); - - // FIXME: The popup menu should be shown on the screen after certain - // number of seconds pass. The 'delay' property of this menu indicates - // this amount of seconds. 'delay' property is 0 by default. - if (isShowing()) - { - fireMenuSelected(); - - int x = 0; - int y = 0; - if (showMenu) - if (menuLocation == null) - { - // Calculate correct position of the popup. Note that location of the popup - // passed to show() should be relative to the popup's invoker - if (isTopLevelMenu()) - y = this.getHeight(); - else - x = this.getWidth(); - getPopupMenu().show(this, x, y); - } - else - { - getPopupMenu().show(this, menuLocation.x, menuLocation.y); - } - } - } - - else - { - super.setSelected(false); - super.setArmed(false); - fireMenuDeselected(); - getPopupMenu().setVisible(false); - } - } - - /** * Changes this menu selected state if selected is true and false otherwise * This method fires menuEvents to menu's registered listeners. * @@ -406,7 +406,9 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement */ public void setSelected(boolean selected) { - setSelectedHelper(selected, true, false); + ButtonModel m = getModel(); + if (selected != m.isSelected()) + m.setSelected(selected); } /** @@ -427,23 +429,126 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement */ public void setPopupMenuVisible(boolean popup) { - if (getModel().isEnabled()) - getPopupMenu().setVisible(popup); + if (popup != isPopupMenuVisible() && (isEnabled() || ! popup)) + { + if (popup && isShowing()) + { + // Set location as determined by getPopupLocation(). + Point loc = menuLocation == null ? getPopupMenuOrigin() + : menuLocation; + getPopupMenu().show(this, loc.x, loc.y); + } + else + getPopupMenu().setVisible(false); + } } /** - * Returns origin point of the popup menu + * Returns origin point of the popup menu. This takes the screen bounds + * into account and places the popup where it fits best. * - * @return Point containing + * @return the origin of the popup menu */ protected Point getPopupMenuOrigin() { - // if menu in the menu bar + // The menu's screen location and size. + Point screenLoc = getLocationOnScreen(); + Dimension size = getSize(); + + // Determine the popup's size. + JPopupMenu popup = getPopupMenu(); + Dimension popupSize = popup.getSize(); + if (popupSize.width == 0 || popupSize.height == 0) + popupSize = popup.getPreferredSize(); + + // Determine screen bounds. + Toolkit tk = Toolkit.getDefaultToolkit(); + Rectangle screenBounds = new Rectangle(tk.getScreenSize()); + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = ge.getDefaultScreenDevice(); + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + Insets screenInsets = tk.getScreenInsets(gc); + screenBounds.x -= screenInsets.left; + screenBounds.width -= screenInsets.left + screenInsets.right; + screenBounds.y -= screenInsets.top; + screenBounds.height -= screenInsets.top + screenInsets.bottom; + screenLoc.x -= screenInsets.left; + screenLoc.y -= screenInsets.top; + + Point point = new Point(); if (isTopLevelMenu()) - return new Point(0, this.getHeight()); - - // if submenu - return new Point(this.getWidth(), 0); + { + // If menu in the menu bar. + int xOffset = UIManager.getInt("Menu.menuPopupOffsetX"); + int yOffset = UIManager.getInt("Menu.menuPopupOffsetY"); + // Determine X location. + if (getComponentOrientation().isLeftToRight()) + { + // Prefer popup to the right. + point.x = xOffset; + // Check if it fits, otherwise place popup wherever it fits. + if (screenLoc.x + point.x + popupSize.width + > screenBounds.width + screenBounds.width + && screenBounds.width - size.width + < 2 * (screenLoc.x - screenBounds.x)) + // Popup to the right if there's not enough room. + point.x = size.width - xOffset - popupSize.width; + } + else + { + // Prefer popup to the left. + point.x = size.width - xOffset - popupSize.width; + if (screenLoc.x + point.x < screenBounds.x + && screenBounds.width - size.width + > 2 * (screenLoc.x - screenBounds.x)) + // Popup to the left if there's not enough room. + point.x = xOffset; + } + // Determine Y location. Prefer popping down. + point.y = size.height + yOffset; + if (screenLoc.y + point.y + popupSize.height >= screenBounds.height + && screenBounds.height - size.height + < 2 * (screenLoc.y - screenBounds.y)) + // Position above if there's not enough room below. + point.y = - yOffset - popupSize.height; + } + else + { + // If submenu. + int xOffset = UIManager.getInt("Menu.submenuPopupOffsetX"); + int yOffset = UIManager.getInt("Menu.submenuPopupOffsetY"); + // Determine X location. + if (getComponentOrientation().isLeftToRight()) + { + // Prefer popup to the right. + point.x = size.width + xOffset; + if (screenLoc.x + point.x + popupSize.width + >= screenBounds.x + screenBounds.width + && screenBounds.width - size.width + < 2 * (screenLoc.x - screenBounds.x)) + // Position to the left if there's not enough room on the right. + point.x = - xOffset - popupSize.width; + } + else + { + // Prefer popup on the left side. + point.x = - xOffset - popupSize.width; + if (screenLoc.x + point.x < screenBounds.x + && screenBounds.width - size.width + > 2 * (screenLoc.x - screenBounds.x)) + // Popup to the right if there's not enough room. + point.x = size.width + xOffset; + } + // Determine Y location. Prefer popping down. + point.y = yOffset; + if (screenLoc.y + point.y + popupSize.height + >= screenBounds.y + screenBounds.height + && screenBounds.height - size.height + < 2 * (screenLoc.y - screenBounds.y)) + // Pop up if there's not enough room below. + point.y = size.height - yOffset - popupSize.height; + } + return point; } /** @@ -483,6 +588,8 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement public void setMenuLocation(int x, int y) { menuLocation = new Point(x, y); + if (popupMenu != null) + popupMenu.setLocation(x, y); } /** @@ -600,7 +707,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement if (getPopupMenu() == null || getMenuComponentCount() == 0) return null; - return (Component) popupMenu.getComponentAtIndex(index); + return popupMenu.getComponentAtIndex(index); } /** @@ -748,7 +855,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement { // if this menu selection is true, then activate this menu and // display popup associated with this menu - setSelectedHelper(changed, isEnabled(), true); + setSelected(changed); } /** diff --git a/libjava/classpath/javax/swing/JMenuBar.java b/libjava/classpath/javax/swing/JMenuBar.java index 35f129377f1..73b409e42db 100644 --- a/libjava/classpath/javax/swing/JMenuBar.java +++ b/libjava/classpath/javax/swing/JMenuBar.java @@ -298,19 +298,25 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement } /** - * DOCUMENT ME! + * This method is not implemented and will throw an {@link Error} if called. * - * @return DOCUMENT ME! + * @return This method never returns anything, it throws an exception. */ public JMenu getHelpMenu() { - return null; + // the following error matches the behaviour of the reference + // implementation... + throw new Error("getHelpMenu() is not implemented"); } /** - * Returns margin betweeen menu bar's border and its menues + * Returns the margin between the menu bar's border and its menus. If the + * margin is null, this method returns + * new Insets(0, 0, 0, 0). * - * @return margin between menu bar's border and its menues + * @return The margin (never null). + * + * @see #setMargin(Insets) */ public Insets getMargin() { @@ -617,21 +623,20 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement } /** - * Sets the menu bar's "margin" bound property, which represents - * distance between the menubar's border and its menus. - * icon. When marging property is modified, PropertyChangeEvent will - * be fired to menuBar's PropertyChangeListener's. - * - * @param m distance between the menubar's border and its menus. + * Sets the margin between the menu bar's border and its menus (this is a + * bound property with the name 'margin'). * + * @param m the margin (null permitted). + * + * @see #getMargin() */ public void setMargin(Insets m) { if (m != margin) { - Insets oldMargin = margin; - margin = m; - firePropertyChange("margin", oldMargin, margin); + Insets oldMargin = margin; + margin = m; + firePropertyChange("margin", oldMargin, margin); } } diff --git a/libjava/classpath/javax/swing/JMenuItem.java b/libjava/classpath/javax/swing/JMenuItem.java index f7f93bf00d7..ffdccdcef1a 100644 --- a/libjava/classpath/javax/swing/JMenuItem.java +++ b/libjava/classpath/javax/swing/JMenuItem.java @@ -39,7 +39,6 @@ exception statement from your version. */ package javax.swing; import java.awt.Component; -import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; @@ -77,12 +76,16 @@ public class JMenuItem extends AbstractButton implements Accessible, private KeyStroke accelerator; /** + * Indicates if we are currently dragging the mouse. + */ + private boolean isDragging; + + /** * Creates a new JMenuItem object. */ public JMenuItem() { - super(); - init(null, null); + this(null, null); } /** @@ -94,8 +97,7 @@ public class JMenuItem extends AbstractButton implements Accessible, { // FIXME: The requestedFocusEnabled property should // be set to false, when only icon is set for menu item. - super(); - init(null, icon); + this(null, icon); } /** @@ -117,6 +119,7 @@ public class JMenuItem extends AbstractButton implements Accessible, { super(); super.setAction(action); + setModel(new DefaultButtonModel()); init(null, null); if (action != null) { @@ -148,6 +151,7 @@ public class JMenuItem extends AbstractButton implements Accessible, public JMenuItem(String text, Icon icon) { super(); + setModel(new DefaultButtonModel()); init(text, icon); } @@ -174,7 +178,6 @@ public class JMenuItem extends AbstractButton implements Accessible, protected void init(String text, Icon icon) { super.init(text, icon); - setModel(new DefaultButtonModel()); // Initializes properties for this menu item, that are different // from Abstract button properties. @@ -320,71 +323,21 @@ public class JMenuItem extends AbstractButton implements Accessible, /** * Process mouse events forwarded from MenuSelectionManager. * - * @param event event forwarded from MenuSelectionManager + * @param ev event forwarded from MenuSelectionManager * @param path path to the menu element from which event was generated * @param manager MenuSelectionManager for the current menu hierarchy */ - public void processMouseEvent(MouseEvent event, MenuElement[] path, + public void processMouseEvent(MouseEvent ev, MenuElement[] path, MenuSelectionManager manager) { - // Fire MenuDragMouseEvents if mouse is being dragged. - boolean dragged - = (event.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0; - if (dragged) - processMenuDragMouseEvent(createMenuDragMouseEvent(event, path, manager)); - - switch (event.getID()) - { - case MouseEvent.MOUSE_CLICKED: - break; - case MouseEvent.MOUSE_ENTERED: - if (isRolloverEnabled()) - model.setRollover(true); - break; - case MouseEvent.MOUSE_EXITED: - if (isRolloverEnabled()) - model.setRollover(false); - - // for JMenu last element on the path is its popupMenu. - // JMenu shouldn't me disarmed. - if (! (path[path.length - 1] instanceof JPopupMenu) && ! dragged) - setArmed(false); - break; - case MouseEvent.MOUSE_PRESSED: - if ((event.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0) - { - model.setArmed(true); - model.setPressed(true); - } - break; - case MouseEvent.MOUSE_RELEASED: - break; - case MouseEvent.MOUSE_MOVED: - break; - case MouseEvent.MOUSE_DRAGGED: - break; - } - } - - /** - * Creates MenuDragMouseEvent. - * - * @param event MouseEvent that occured while mouse was pressed. - * @param path Path the the menu element where the dragging event was - * originated - * @param manager MenuSelectionManager for the current menu hierarchy. - * - * @return new MenuDragMouseEvent - */ - private MenuDragMouseEvent createMenuDragMouseEvent(MouseEvent event, - MenuElement[] path, - MenuSelectionManager manager) - { - return new MenuDragMouseEvent((Component) event.getSource(), - event.getID(), event.getWhen(), - event.getModifiers(), event.getX(), - event.getY(), event.getClickCount(), - event.isPopupTrigger(), path, manager); + MenuDragMouseEvent e = new MenuDragMouseEvent(ev.getComponent(), + ev.getID(), ev.getWhen(), + ev.getModifiers(), ev.getX(), + ev.getY(), + ev.getClickCount(), + ev.isPopupTrigger(), path, + manager); + processMenuDragMouseEvent(e); } /** @@ -420,16 +373,20 @@ public class JMenuItem extends AbstractButton implements Accessible, switch (event.getID()) { case MouseEvent.MOUSE_ENTERED: + isDragging = false; fireMenuDragMouseEntered(event); break; case MouseEvent.MOUSE_EXITED: + isDragging = false; fireMenuDragMouseExited(event); break; case MouseEvent.MOUSE_DRAGGED: + isDragging = true; fireMenuDragMouseDragged(event); break; case MouseEvent.MOUSE_RELEASED: - fireMenuDragMouseReleased(event); + if (isDragging) + fireMenuDragMouseReleased(event); break; } } @@ -833,4 +790,20 @@ public class JMenuItem extends AbstractButton implements Accessible, return AccessibleRole.MENU_ITEM; } } + + /** + * Returns true if the component is guaranteed to be painted + * on top of others. This returns false by default and is overridden by + * components like JMenuItem, JPopupMenu and JToolTip to return true for + * added efficiency. + * + * @return true if the component is guaranteed to be painted + * on top of others + */ + boolean onTop() + { + return SwingUtilities.getAncestorOfClass(JInternalFrame.class, this) + == null; + } + } diff --git a/libjava/classpath/javax/swing/JPopupMenu.java b/libjava/classpath/javax/swing/JPopupMenu.java index d46015afdf3..1ae8adad02a 100644 --- a/libjava/classpath/javax/swing/JPopupMenu.java +++ b/libjava/classpath/javax/swing/JPopupMenu.java @@ -820,7 +820,14 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement */ public void menuSelectionChanged(boolean changed) { - if (! changed) + if (invoker instanceof JMenu) + { + // We need to special case this since the JMenu calculates the + // position etc of the popup. + JMenu menu = (JMenu) invoker; + menu.setPopupMenuVisible(changed); + } + else if (! changed) setVisible(false); } @@ -895,6 +902,20 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement } } + /** + * Returns true if the component is guaranteed to be painted + * on top of others. This returns false by default and is overridden by + * components like JMenuItem, JPopupMenu and JToolTip to return true for + * added efficiency. + * + * @return true if the component is guaranteed to be painted + * on top of others + */ + boolean onTop() + { + return true; + } + protected class AccessibleJPopupMenu extends AccessibleJComponent { private static final long serialVersionUID = 7423261328879849768L; diff --git a/libjava/classpath/javax/swing/JRootPane.java b/libjava/classpath/javax/swing/JRootPane.java index a2cd9c7a000..10fdf10c0ec 100644 --- a/libjava/classpath/javax/swing/JRootPane.java +++ b/libjava/classpath/javax/swing/JRootPane.java @@ -505,15 +505,21 @@ public class JRootPane extends JComponent implements Accessible } /** - * DOCUMENT ME! + * Set the layered pane for the root pane. * - * @param f DOCUMENT ME! + * @param f The JLayeredPane to be used. + * + * @throws IllegalComponentStateException if JLayeredPane + * parameter is null. */ public void setLayeredPane(JLayeredPane f) { + if (f == null) + throw new IllegalComponentStateException(); + if (layeredPane != null) remove(layeredPane); - + layeredPane = f; add(f, -1); } diff --git a/libjava/classpath/javax/swing/JScrollBar.java b/libjava/classpath/javax/swing/JScrollBar.java index bf0803ab5a1..1f21aa13ff5 100644 --- a/libjava/classpath/javax/swing/JScrollBar.java +++ b/libjava/classpath/javax/swing/JScrollBar.java @@ -50,6 +50,8 @@ import javax.accessibility.AccessibleRole; import javax.accessibility.AccessibleState; import javax.accessibility.AccessibleStateSet; import javax.accessibility.AccessibleValue; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import javax.swing.plaf.ScrollBarUI; /** @@ -172,6 +174,28 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible } } + /** + * Listens for changes on the model and fires them to interested + * listeners on the JScrollBar, after re-sourcing them. + */ + private class ScrollBarChangeListener + implements ChangeListener + { + + public void stateChanged(ChangeEvent event) + { + Object o = event.getSource(); + if (o instanceof BoundedRangeModel) + { + BoundedRangeModel m = (BoundedRangeModel) o; + fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, + AdjustmentEvent.TRACK, m.getValue(), + m.getValueIsAdjusting()); + } + } + + } + private static final long serialVersionUID = -8195169869225066566L; /** How much the thumb moves when moving in a block. */ @@ -186,6 +210,12 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible /** How much the thumb moves when moving in a unit. */ protected int unitIncrement = 1; + /** + * This ChangeListener forwards events fired from the model and re-sources + * them to originate from this JScrollBar. + */ + private ChangeListener sbChangeListener; + /** * Creates a new horizontal JScrollBar object with a minimum * of 0, a maxmium of 100, a value of 0 and an extent of 10. @@ -220,6 +250,8 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible public JScrollBar(int orientation, int value, int extent, int min, int max) { model = new DefaultBoundedRangeModel(value, extent, min, max); + sbChangeListener = new ScrollBarChangeListener(); + model.addChangeListener(sbChangeListener); if (orientation != SwingConstants.HORIZONTAL && orientation != SwingConstants.VERTICAL) throw new IllegalArgumentException(orientation @@ -319,12 +351,13 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible */ public void setModel(BoundedRangeModel newModel) { - if (model != newModel) - { - BoundedRangeModel oldModel = model; - model = newModel; - firePropertyChange("model", oldModel, model); - } + BoundedRangeModel oldModel = model; + if (oldModel != null) + oldModel.removeChangeListener(sbChangeListener); + model = newModel; + if (model != null) + model.addChangeListener(sbChangeListener); + firePropertyChange("model", oldModel, model); } /** @@ -424,12 +457,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible */ public void setValue(int value) { - if (isEnabled() && value != getValue()) - { - model.setValue(value); - fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, - AdjustmentEvent.TRACK, value); - } + model.setValue(value); } /** @@ -451,12 +479,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible */ public void setVisibleAmount(int extent) { - if (extent != getVisibleAmount()) - { - model.setExtent(extent); - fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, - AdjustmentEvent.TRACK, extent); - } + model.setExtent(extent); } /** @@ -476,12 +499,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible */ public void setMinimum(int minimum) { - if (minimum != getMinimum()) - { - model.setMinimum(minimum); - fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, - AdjustmentEvent.TRACK, minimum); - } + model.setMinimum(minimum); } /** @@ -501,12 +519,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible */ public void setMaximum(int maximum) { - if (maximum != getMaximum()) - { - model.setMaximum(maximum); - fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, - AdjustmentEvent.TRACK, maximum); - } + model.setMaximum(maximum); } /** @@ -540,17 +553,8 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible */ public void setValues(int newValue, int newExtent, int newMin, int newMax) { - if (!isEnabled()) - newValue = model.getValue(); - // It seems to be that on any change the value is fired. - if (newValue != getValue() || newExtent != getVisibleAmount() || - newMin != getMinimum() || newMax != getMaximum()) - { - model.setRangeProperties(newValue, newExtent, newMin, newMax, - model.getValueIsAdjusting()); - fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, - AdjustmentEvent.TRACK, newValue); - } + model.setRangeProperties(newValue, newExtent, newMin, newMax, + model.getValueIsAdjusting()); } /** @@ -596,15 +600,30 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible */ protected void fireAdjustmentValueChanged(int id, int type, int value) { + fireAdjustmentValueChanged(id, type, value, getValueIsAdjusting()); + } + + /** + * Helper method for firing adjustment events that can have their + * isAdjusting field modified. + * + * This is package private to avoid an accessor method. + * + * @param id the ID of the event + * @param type the type of the event + * @param value the value + * @param isAdjusting if the scrollbar is adjusting or not + */ + void fireAdjustmentValueChanged(int id, int type, int value, + boolean isAdjusting) + { Object[] adjustmentListeners = listenerList.getListenerList(); - AdjustmentEvent adjustmentEvent = new AdjustmentEvent(this, - AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED, - AdjustmentEvent.TRACK, - value); + AdjustmentEvent adjustmentEvent = new AdjustmentEvent(this, id, type, + value, isAdjusting); for (int i = adjustmentListeners.length - 2; i >= 0; i -= 2) { - if (adjustmentListeners[i] == AdjustmentListener.class) - ((AdjustmentListener) adjustmentListeners[i + 1]).adjustmentValueChanged(adjustmentEvent); + if (adjustmentListeners[i] == AdjustmentListener.class) + ((AdjustmentListener) adjustmentListeners[i + 1]).adjustmentValueChanged(adjustmentEvent); } } diff --git a/libjava/classpath/javax/swing/JScrollPane.java b/libjava/classpath/javax/swing/JScrollPane.java index 45df1d9190e..f6d37c7b47d 100644 --- a/libjava/classpath/javax/swing/JScrollPane.java +++ b/libjava/classpath/javax/swing/JScrollPane.java @@ -161,9 +161,10 @@ public class JScrollPane extends JComponent protected int verticalScrollBarPolicy; protected JViewport viewport; - - Border viewportBorder; - boolean wheelScrollingEnabled; + + private Border viewportBorder; + + private boolean wheelScrollingEnabled; public JViewport getColumnHeader() { @@ -595,6 +596,7 @@ public class JScrollPane extends JComponent */ public JScrollPane(Component view, int vsbPolicy, int hsbPolicy) { + wheelScrollingEnabled = true; setVerticalScrollBarPolicy(vsbPolicy); setVerticalScrollBar(createVerticalScrollBar()); setHorizontalScrollBarPolicy(hsbPolicy); diff --git a/libjava/classpath/javax/swing/JSlider.java b/libjava/classpath/javax/swing/JSlider.java index 8a06d4f0116..948a9629b4c 100644 --- a/libjava/classpath/javax/swing/JSlider.java +++ b/libjava/classpath/javax/swing/JSlider.java @@ -38,7 +38,6 @@ exception statement from your version. */ package javax.swing; -import java.awt.Dimension; import java.awt.MenuContainer; import java.awt.image.ImageObserver; import java.beans.PropertyChangeEvent; @@ -56,6 +55,7 @@ import javax.accessibility.AccessibleValue; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.plaf.SliderUI; +import javax.swing.plaf.UIResource; /** * A visual component that allows selection of a value within a @@ -112,6 +112,22 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, ImageObserver, MenuContainer, Serializable { + + /** + * A little testing shows that the reference implementation creates + * labels from a class named LabelUIResource. + */ + private class LabelUIResource + extends JLabel + implements UIResource + { + LabelUIResource(String text, int align) + { + super(text, align); + setName("Slider.label"); + } + } + private static final long serialVersionUID = -1441275936141218479L; /** @@ -425,6 +441,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, */ public void updateUI() { + updateLabelUIs(); setUI((SliderUI) UIManager.getUI(this)); } @@ -721,6 +738,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, int oldOrientation = this.orientation; this.orientation = orientation; firePropertyChange("orientation", oldOrientation, this.orientation); + revalidate(); } } @@ -751,7 +769,10 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, { Dictionary oldTable = labelTable; labelTable = table; + updateLabelUIs(); firePropertyChange("labelTable", oldTable, labelTable); + revalidate(); + repaint(); } } @@ -761,12 +782,18 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, */ protected void updateLabelUIs() { - if (labelTable == null) - return; - for (Enumeration list = labelTable.elements(); list.hasMoreElements();) + if (labelTable != null) { - JLabel label = (JLabel) list.nextElement(); - label.updateUI(); + for (Enumeration list = labelTable.elements(); list.hasMoreElements();) + { + Object o = list.nextElement(); + if (o instanceof JComponent) + { + JComponent jc = (JComponent) o; + jc.updateUI(); + jc.setSize(jc.getPreferredSize()); + } + } } } @@ -810,23 +837,11 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, if (start < getMinimum() || start > getMaximum()) throw new IllegalArgumentException("The 'start' value is out of range."); Hashtable table = new Hashtable(); - JLabel label; - Dimension dim; - - int max = sliderModel.getMaximum(); - + int max = getMaximum(); for (int i = start; i <= max; i += increment) { - label = new JLabel(String.valueOf(i)); - label.setVerticalAlignment(CENTER); - label.setHorizontalAlignment(CENTER); - - // Make sure these labels have the width and height - // they want. - dim = label.getPreferredSize(); - label.setBounds(label.getX(), label.getY(), - (int) dim.getWidth(), - (int) dim.getHeight()); + LabelUIResource label = new LabelUIResource(String.valueOf(i), + JLabel.CENTER); table.put(new Integer(i), label); } return table; @@ -867,6 +882,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, boolean oldInverted = isInverted; isInverted = inverted; firePropertyChange("inverted", oldInverted, isInverted); + repaint(); } } @@ -898,7 +914,11 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, { int oldSpacing = majorTickSpacing; majorTickSpacing = spacing; + if (labelTable == null && majorTickSpacing > 0 && getPaintLabels()) + setLabelTable(createStandardLabels(majorTickSpacing)); firePropertyChange("majorTickSpacing", oldSpacing, majorTickSpacing); + if (getPaintTicks()) + repaint(); } } @@ -932,6 +952,8 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, int oldSpacing = minorTickSpacing; minorTickSpacing = spacing; firePropertyChange("minorTickSpacing", oldSpacing, minorTickSpacing); + if (getPaintTicks()) + repaint(); } } @@ -1001,6 +1023,8 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, boolean oldPaintTicks = paintTicks; paintTicks = paint; firePropertyChange("paintTicks", oldPaintTicks, paintTicks); + revalidate(); + repaint(); } } @@ -1031,6 +1055,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, { paintTrack = paint; firePropertyChange("paintTrack", !paint, paint); + repaint(); } } @@ -1062,8 +1087,10 @@ public class JSlider extends JComponent implements SwingConstants, Accessible, { paintLabels = paint; if (paint && majorTickSpacing > 0 && labelTable == null) - labelTable = createStandardLabels(majorTickSpacing); + setLabelTable(createStandardLabels(majorTickSpacing)); firePropertyChange("paintLabels", !paint, paint); + revalidate(); + repaint(); } } diff --git a/libjava/classpath/javax/swing/JSplitPane.java b/libjava/classpath/javax/swing/JSplitPane.java index 5b77f5176ae..fcdc1c04128 100644 --- a/libjava/classpath/javax/swing/JSplitPane.java +++ b/libjava/classpath/javax/swing/JSplitPane.java @@ -247,6 +247,11 @@ public class JSplitPane extends JComponent implements Accessible /** The component on the right or bottom. */ protected Component rightComponent; + /** + * The divider location. + */ + private int dividerLocation; + /** Determines how extra space should be allocated. */ private transient double resizeWeight; @@ -288,7 +293,7 @@ public class JSplitPane extends JComponent implements Accessible continuousLayout = newContinuousLayout; setLeftComponent(newLeftComponent); setRightComponent(newRightComponent); - + dividerLocation = -1; updateUI(); } @@ -355,10 +360,6 @@ public class JSplitPane extends JComponent implements Accessible */ protected void addImpl(Component comp, Object constraints, int index) { - int left = 0; - int right = 1; - int div = 2; - int place; if (constraints == null) { if (leftComponent == null) @@ -431,10 +432,7 @@ public class JSplitPane extends JComponent implements Accessible */ public int getDividerLocation() { - if (ui != null) - return ((SplitPaneUI) ui).getDividerLocation(this); - else - return -1; + return dividerLocation; } /** @@ -722,17 +720,13 @@ public class JSplitPane extends JComponent implements Accessible */ public void setDividerLocation(int location) { - if (ui != null && location != getDividerLocation()) - { - int oldLocation = getDividerLocation(); - if (location < 0) - ((SplitPaneUI) ui).resetToPreferredSizes(this); - else - ((SplitPaneUI) ui).setDividerLocation(this, location); - - firePropertyChange(DIVIDER_LOCATION_PROPERTY, oldLocation, - getDividerLocation()); - } + int oldLocation = dividerLocation; + dividerLocation = location; + SplitPaneUI ui = getUI(); + if (ui != null) + ui.setDividerLocation(this, location); + firePropertyChange(DIVIDER_LOCATION_PROPERTY, oldLocation, + location); } /** diff --git a/libjava/classpath/javax/swing/JTabbedPane.java b/libjava/classpath/javax/swing/JTabbedPane.java index 5c8d0474852..c7244bf2b71 100644 --- a/libjava/classpath/javax/swing/JTabbedPane.java +++ b/libjava/classpath/javax/swing/JTabbedPane.java @@ -760,11 +760,7 @@ public class JTabbedPane extends JComponent implements Serializable, this.tabPlacement = tabPlacement; layoutPolicy = tabLayoutPolicy; - changeEvent = new ChangeEvent(this); - changeListener = createChangeListener(); - - model = new DefaultSingleSelectionModel(); - model.addChangeListener(changeListener); + setModel(new DefaultSingleSelectionModel()); updateUI(); } @@ -877,16 +873,24 @@ public class JTabbedPane extends JComponent implements Serializable, /** * This method changes the model property of the JTabbedPane. * - * @param model The new model to use with the JTabbedPane. + * @param m The new model to use with the JTabbedPane. */ - public void setModel(SingleSelectionModel model) + public void setModel(SingleSelectionModel m) { - if (model != this.model) + if (m != model) { SingleSelectionModel oldModel = this.model; - this.model.removeChangeListener(changeListener); - this.model = model; - this.model.addChangeListener(changeListener); + if (oldModel != null && changeListener != null) + oldModel.removeChangeListener(changeListener); + + model = m; + + if (model != null) + { + if (changeListener == null) + changeListener = createChangeListener(); + model.addChangeListener(changeListener); + } firePropertyChange("model", oldModel, this.model); } } @@ -1050,7 +1054,10 @@ public class JTabbedPane extends JComponent implements Serializable, } if (getSelectedIndex() == -1) - setSelectedIndex(0); + { + setSelectedIndex(0); + fireStateChanged(); + } revalidate(); repaint(); diff --git a/libjava/classpath/javax/swing/JTable.java b/libjava/classpath/javax/swing/JTable.java index 5c7bff5d019..42563e6a2ca 100644 --- a/libjava/classpath/javax/swing/JTable.java +++ b/libjava/classpath/javax/swing/JTable.java @@ -2635,6 +2635,7 @@ public class JTable setModel(dm == null ? createDefaultDataModel() : dm); setAutoCreateColumnsFromModel(autoCreate); initializeLocalVars(); + // The following four lines properly set the lead selection indices. // After this, the UI will handle the lead selection indices. // FIXME: this should probably not be necessary, if the UI is installed @@ -2642,11 +2643,13 @@ public class JTable // own, but certain variables need to be set before the UI can be installed // so we must get the correct order for all the method calls in this // constructor. - selectionModel.setAnchorSelectionIndex(0); - selectionModel.setLeadSelectionIndex(0); - columnModel.getSelectionModel().setAnchorSelectionIndex(0); - columnModel.getSelectionModel().setLeadSelectionIndex(0); - updateUI(); + // These four lines are not needed. A Mauve test that shows this is + // gnu.testlet.javax.swing.JTable.constructors(linesNotNeeded). + // selectionModel.setAnchorSelectionIndex(-1); + // selectionModel.setLeadSelectionIndex(-1); + // columnModel.getSelectionModel().setAnchorSelectionIndex(-1); + // columnModel.getSelectionModel().setLeadSelectionIndex(-1); + updateUI(); } /** @@ -2675,10 +2678,12 @@ public class JTable setRowHeight(16); this.rowMargin = 1; this.rowSelectionAllowed = true; + // this.accessibleContext = new AccessibleJTable(); this.cellEditor = null; + // COMPAT: Both Sun and IBM have drag enabled - this.dragEnabled = true; + this.dragEnabled = false; this.preferredViewportSize = new Dimension(450,400); this.showHorizontalLines = true; this.showVerticalLines = true; @@ -3267,7 +3272,7 @@ public class JTable cellRect.x += cMargin / 2; cellRect.width -= cMargin; } - } + } return cellRect; } @@ -3303,10 +3308,21 @@ public class JTable public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { - if (orientation == SwingConstants.VERTICAL) - return visibleRect.height * direction; + int block; + if (orientation == SwingConstants.HORIZONTAL) + { + block = visibleRect.width; + } else - return visibleRect.width * direction; + { + int rowHeight = getRowHeight(); + if (rowHeight > 0) + block = Math.max(rowHeight, // Little hack for useful rounding. + (visibleRect.height / rowHeight) * rowHeight); + else + block = visibleRect.height; + } + return block; } /** @@ -3345,24 +3361,40 @@ public class JTable * The values greater than one means that more mouse wheel or similar * events were generated, and hence it is better to scroll the longer * distance. - * @author Audrius Meskauskas (audriusa@bioinformatics.org) + * + * @author Roman Kennke (kennke@aicas.com) */ public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { - int h = (rowHeight + rowMargin); - int delta = h * direction; - - // Round so that the top would start from the row boundary - if (orientation == SwingConstants.VERTICAL) + int unit; + if (orientation == SwingConstants.HORIZONTAL) + unit = 100; + else { - // Completely expose the top row - int near = ((visibleRect.y + delta + h / 2) / h) * h; - int diff = visibleRect.y + delta - near; - delta -= diff; + unit = getRowHeight(); + // The following adjustment doesn't work for variable height rows. + // It fully exposes partially visible rows in the scrolling direction. + if (rowHeights == null) + { + if (direction > 0) + { + // Scroll down. + // How much pixles are exposed from the last item? + int exposed = (visibleRect.y + visibleRect.height) % unit; + if (exposed > 0 && exposed < unit - 1) + unit = unit - exposed - 1; + } + else + { + // Scroll up. + int exposed = visibleRect.y % unit; + if (exposed > 0 && exposed < unit) + unit = exposed; + } + } } - return delta; - // TODO when scrollng horizontally, scroll into the column boundary. + return unit; } /** @@ -3397,7 +3429,7 @@ public class JTable * * @return the editor, suitable for editing this data type */ - public TableCellEditor getDefaultEditor(Class columnClass) + public TableCellEditor getDefaultEditor(Class columnClass) { if (defaultEditorsByColumnClass.containsKey(columnClass)) return (TableCellEditor) defaultEditorsByColumnClass.get(columnClass); @@ -3409,7 +3441,7 @@ public class JTable return r; } } - + /** * Get the cell renderer for rendering the given cell. * @@ -3419,7 +3451,9 @@ public class JTable */ public TableCellRenderer getCellRenderer(int row, int column) { - TableCellRenderer renderer = columnModel.getColumn(column).getCellRenderer(); + TableCellRenderer renderer = null; + if (columnModel.getColumnCount() > 0) + renderer = columnModel.getColumn(column).getCellRenderer(); if (renderer == null) { int mcolumn = convertColumnIndexToModel(column); @@ -3427,7 +3461,7 @@ public class JTable } return renderer; } - + /** * Set default renderer for rendering the given data type. * @@ -3435,11 +3469,11 @@ public class JTable * rendered. * @param rend the renderer that will rend this data type */ - public void setDefaultRenderer(Class columnClass, TableCellRenderer rend) + public void setDefaultRenderer(Class columnClass, TableCellRenderer rend) { defaultRenderersByColumnClass.put(columnClass, rend); } - + /** * Get the default renderer for rendering the given data type. * @@ -3447,7 +3481,7 @@ public class JTable * * @return the appropriate defauld renderer for rendering that data type. */ - public TableCellRenderer getDefaultRenderer(Class columnClass) + public TableCellRenderer getDefaultRenderer(Class columnClass) { if (defaultRenderersByColumnClass.containsKey(columnClass)) return (TableCellRenderer) defaultRenderersByColumnClass.get(columnClass); @@ -3536,7 +3570,7 @@ public class JTable return renderer.getTableCellRendererComponent(this, dataModel.getValueAt(row, - convertColumnIndexToModel(column)), + convertColumnIndexToModel(column)), isSel, hasFocus, row, column); @@ -4414,7 +4448,7 @@ public class JTable { TableColumn resizingColumn = null; - int ncols = getColumnCount(); + int ncols = columnModel.getColumnCount(); if (ncols < 1) return; @@ -4423,7 +4457,7 @@ public class JTable if (tableHeader != null) resizingColumn = tableHeader.getResizingColumn(); - + for (int i = 0; i < ncols; ++i) { TableColumn col = columnModel.getColumn(i); @@ -4432,7 +4466,7 @@ public class JTable if (resizingColumn == col) rCol = i; } - + int spill = getWidth() - prefSum; if (resizingColumn != null) @@ -4498,9 +4532,11 @@ public class JTable } else { - TableColumn [] cols = new TableColumn[ncols]; + TableColumn[] cols = new TableColumn[ncols]; + for (int i = 0; i < ncols; ++i) cols[i] = columnModel.getColumn(i); + distributeSpill(cols, spill); } @@ -4588,7 +4624,7 @@ public class JTable { setUI((TableUI) UIManager.getUI(this)); } - + /** * Get the class (datatype) of the column. The cells are rendered and edited * differently, depending from they data type. @@ -4598,7 +4634,7 @@ public class JTable * @return the class, defining data type of that column (String.class for * String, Boolean.class for boolean and so on). */ - public Class getColumnClass(int column) + public Class getColumnClass(int column) { return getModel().getColumnClass(convertColumnIndexToModel(column)); } @@ -4619,7 +4655,7 @@ public class JTable int modelColumn = columnModel.getColumn(column).getModelIndex(); return dataModel.getColumnName(modelColumn); } - + /** * Get the column, currently being edited * @@ -4629,7 +4665,7 @@ public class JTable { return editingColumn; } - + /** * Set the column, currently being edited * @@ -4649,7 +4685,7 @@ public class JTable { return editingRow; } - + /** * Set the row currently being edited. * @@ -4680,7 +4716,7 @@ public class JTable { return editorComp != null; } - + /** * Set the default editor for the given column class (column data type). * By default, String is handled by text field and Boolean is handled by @@ -4691,7 +4727,7 @@ public class JTable * * @see TableModel#getColumnClass(int) */ - public void setDefaultEditor(Class columnClass, TableCellEditor editor) + public void setDefaultEditor(Class columnClass, TableCellEditor editor) { if (editor != null) defaultEditorsByColumnClass.put(columnClass, editor); @@ -4713,7 +4749,7 @@ public class JTable if ((index0 < 0 || index0 > (getRowCount()-1) || index1 < 0 || index1 > (getRowCount()-1))) throw new IllegalArgumentException("Row index out of range."); - + getSelectionModel().addSelectionInterval(index0, index1); } diff --git a/libjava/classpath/javax/swing/JTextField.java b/libjava/classpath/javax/swing/JTextField.java index 367503b739f..ace358f8922 100644 --- a/libjava/classpath/javax/swing/JTextField.java +++ b/libjava/classpath/javax/swing/JTextField.java @@ -270,7 +270,8 @@ public class JTextField extends JTextComponent */ protected void fireActionPerformed() { - ActionEvent event = new ActionEvent(this, 0, getText()); + ActionEvent event = new ActionEvent(this, 0, + actionCommand == null ? getText() : actionCommand); ActionListener[] listeners = getActionListeners(); for (int index = 0; index < listeners.length; ++index) diff --git a/libjava/classpath/javax/swing/JTextPane.java b/libjava/classpath/javax/swing/JTextPane.java index c0a5f80cfc8..05968fc8c20 100644 --- a/libjava/classpath/javax/swing/JTextPane.java +++ b/libjava/classpath/javax/swing/JTextPane.java @@ -214,20 +214,11 @@ public class JTextPane */ public void insertIcon(Icon icon) { - SimpleAttributeSet atts = new SimpleAttributeSet(); - atts.addAttribute(StyleConstants.IconAttribute, icon); - atts.addAttribute(StyleConstants.NameAttribute, - StyleConstants.IconElementName); - try - { - getDocument().insertString(getCaret().getDot(), " ", atts); - } - catch (BadLocationException ex) - { - AssertionError err = new AssertionError("Unexpected bad location"); - err.initCause(ex); - throw err; - } + MutableAttributeSet inputAtts = getInputAttributes(); + inputAtts.removeAttributes(inputAtts); + StyleConstants.setIcon(inputAtts, icon); + replaceSelection(" "); + inputAtts.removeAttributes(inputAtts); } /** diff --git a/libjava/classpath/javax/swing/JToggleButton.java b/libjava/classpath/javax/swing/JToggleButton.java index 1769c5ee08a..60c44896019 100644 --- a/libjava/classpath/javax/swing/JToggleButton.java +++ b/libjava/classpath/javax/swing/JToggleButton.java @@ -1,5 +1,5 @@ /* JToggleButton.java -- - Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -291,9 +291,8 @@ public class JToggleButton extends AbstractButton implements Accessible public JToggleButton (String text, Icon icon, boolean selected) { super(); + setModel(new ToggleButtonModel()); init(text, icon); - - setModel(new ToggleButtonModel()); model.setSelected(selected); setAlignmentX(LEFT_ALIGNMENT); } diff --git a/libjava/classpath/javax/swing/JToolTip.java b/libjava/classpath/javax/swing/JToolTip.java index 836c122c6bf..3153894da81 100644 --- a/libjava/classpath/javax/swing/JToolTip.java +++ b/libjava/classpath/javax/swing/JToolTip.java @@ -225,4 +225,18 @@ public class JToolTip extends JComponent implements Accessible { setUI((ToolTipUI) UIManager.getUI(this)); } + + /** + * Returns true if the component is guaranteed to be painted + * on top of others. This returns false by default and is overridden by + * components like JMenuItem, JPopupMenu and JToolTip to return true for + * added efficiency. + * + * @return true if the component is guaranteed to be painted + * on top of others + */ + boolean onTop() + { + return true; + } } diff --git a/libjava/classpath/javax/swing/JTree.java b/libjava/classpath/javax/swing/JTree.java index fa898c5a940..332ec74247d 100644 --- a/libjava/classpath/javax/swing/JTree.java +++ b/libjava/classpath/javax/swing/JTree.java @@ -1230,8 +1230,32 @@ public class JTree extends JComponent implements Scrollable, Accessible */ public void treeNodesRemoved(TreeModelEvent ev) { - // TODO: The API docs suggest that this method should do something - // but I cannot really see what has to be done here ... + if (ev != null) + { + TreePath parent = ev.getTreePath(); + Object[] children = ev.getChildren(); + TreeSelectionModel sm = getSelectionModel(); + if (children != null) + { + TreePath path; + Vector toRemove = new Vector(); + // Collect items that we must remove. + for (int i = children.length - 1; i >= 0; i--) + { + path = parent.pathByAddingChild(children[i]); + if (nodeStates.containsKey(path)) + toRemove.add(path); + // Clear selection while we are at it. + if (sm != null) + removeDescendantSelectedPaths(path, true); + } + if (toRemove.size() > 0) + removeDescendantToggledPaths(toRemove.elements()); + TreeModel model = getModel(); + if (model == null || model.isLeaf(parent.getLastPathComponent())) + nodeStates.remove(parent); + } + } } /** @@ -1243,9 +1267,38 @@ public class JTree extends JComponent implements Scrollable, Accessible */ public void treeStructureChanged(TreeModelEvent ev) { - // Set state of new path. - TreePath path = ev.getTreePath(); - setExpandedState(path, isExpanded(path)); + if (ev != null) + { + TreePath parent = ev.getTreePath(); + if (parent != null) + { + if (parent.getPathCount() == 1) + { + // We have a new root, clear everything. + clearToggledPaths(); + Object root = treeModel.getRoot(); + if (root != null && treeModel.isLeaf(root)) + nodeStates.put(parent, Boolean.TRUE); + } + else if (nodeStates.containsKey(parent)) + { + Vector toRemove = new Vector(); + boolean expanded = isExpanded(parent); + toRemove.add(parent); + removeDescendantToggledPaths(toRemove.elements()); + if (expanded) + { + TreeModel model = getModel(); + if (model != null + || model.isLeaf(parent.getLastPathComponent())) + collapsePath(parent); + else + nodeStates.put(parent, Boolean.TRUE); + } + } + removeDescendantSelectedPaths(parent, false); + } + } } } @@ -1279,13 +1332,6 @@ public class JTree extends JComponent implements Scrollable, Accessible TreeSelectionEvent rewritten = (TreeSelectionEvent) ev.cloneWithSource(JTree.this); fireValueChanged(rewritten); - - // Only repaint the changed nodes. - TreePath[] changed = ev.getPaths(); - for (int i = 0; i < changed.length; i++) - { - repaint(getPathBounds(changed[i])); - } } } @@ -1406,8 +1452,10 @@ public class JTree extends JComponent implements Scrollable, Accessible * This contains the state of all nodes in the tree. Al/ entries map the * TreePath of a note to to its state. Valid states are EXPANDED and * COLLAPSED. Nodes not in this Hashtable are assumed state COLLAPSED. + * + * This is package private to avoid accessor methods. */ - private Hashtable nodeStates = new Hashtable(); + Hashtable nodeStates = new Hashtable(); protected transient TreeCellEditor cellEditor; @@ -1486,7 +1534,7 @@ public class JTree extends JComponent implements Scrollable, Accessible * * @param value the initial nodes in the tree */ - public JTree(Hashtable value) + public JTree(Hashtable value) { this(createTreeModel(value)); } @@ -1509,8 +1557,7 @@ public class JTree extends JComponent implements Scrollable, Accessible public JTree(TreeModel model) { setRootVisible(true); - setSelectionModel(new EmptySelectionModel()); - selectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + setSelectionModel( new DefaultTreeSelectionModel() ); // The root node appears expanded by default. nodeStates = new Hashtable(); @@ -1554,7 +1601,7 @@ public class JTree extends JComponent implements Scrollable, Accessible * * @param value the initial nodes in the tree */ - public JTree(Vector value) + public JTree(Vector value) { this(createTreeModel(value)); } @@ -1685,29 +1732,52 @@ public class JTree extends JComponent implements Scrollable, Accessible public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { - int delta; + int delta = 0; // Round so that the top would start from the row boundary if (orientation == SwingConstants.VERTICAL) { - // One pixel down, otherwise picks another row too high. - int row = getClosestRowForLocation(visibleRect.x, visibleRect.y + 1); - row = row + direction; - if (row < 0) - row = 0; - - Rectangle newTop = getRowBounds(row); - delta = newTop.y - visibleRect.y; + int row = getClosestRowForLocation(0, visibleRect.y); + if (row != -1) + { + Rectangle b = getRowBounds(row); + if (b.y != visibleRect.y) + { + if (direction < 0) + delta = Math.max(0, visibleRect.y - b.y); + else + delta = b.y + b.height - visibleRect.y; + } + else + { + if (direction < 0) + { + if (row != 0) + { + b = getRowBounds(row - 1); + delta = b.height; + } + } + else + delta = b.height; + } + } } else - delta = direction * rowHeight == 0 ? 20 : rowHeight; + // The RI always returns 4 for HORIZONTAL scrolling. + delta = 4; return delta; } public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { - return getScrollableUnitIncrement(visibleRect, orientation, direction); + int block; + if (orientation == SwingConstants.VERTICAL) + block = visibleRect.height; + else + block = visibleRect.width; + return block; } public boolean getScrollableTracksViewportHeight() @@ -2050,14 +2120,16 @@ public class JTree extends JComponent implements Scrollable, Accessible if (selectionModel == model) return; + if( model == null ) + model = EmptySelectionModel.sharedInstance(); + if (selectionModel != null) selectionModel.removeTreeSelectionListener(selectionRedirector); TreeSelectionModel oldValue = selectionModel; selectionModel = model; - if (selectionModel != null) - selectionModel.addTreeSelectionListener(selectionRedirector); + selectionModel.addTreeSelectionListener(selectionRedirector); firePropertyChange(SELECTION_MODEL_PROPERTY, oldValue, model); revalidate(); @@ -2184,20 +2256,35 @@ public class JTree extends JComponent implements Scrollable, Accessible public void setSelectionPath(TreePath path) { + clearSelectionPathStates(); selectionModel.setSelectionPath(path); } public void setSelectionPaths(TreePath[] paths) { + clearSelectionPathStates(); selectionModel.setSelectionPaths(paths); } + + /** + * This method, and all calls to it, should be removed once the + * DefaultTreeModel fires events properly. Maintenance of the nodeStates + * table should really be done in the TreeModelHandler. + */ + private void clearSelectionPathStates() + { + TreePath[] oldPaths = selectionModel.getSelectionPaths(); + if (oldPaths != null) + for (int i = 0; i < oldPaths.length; i++) + nodeStates.remove(oldPaths[i]); + } public void setSelectionRow(int row) { TreePath path = getPathForRow(row); if (path != null) - selectionModel.setSelectionPath(path); + setSelectionPath(path); } public void setSelectionRows(int[] rows) @@ -2272,11 +2359,13 @@ public class JTree extends JComponent implements Scrollable, Accessible public void removeSelectionPath(TreePath path) { + clearSelectionPathStates(); selectionModel.removeSelectionPath(path); } public void removeSelectionPaths(TreePath[] paths) { + clearSelectionPathStates(); selectionModel.removeSelectionPaths(paths); } @@ -2285,7 +2374,7 @@ public class JTree extends JComponent implements Scrollable, Accessible TreePath path = getPathForRow(row); if (path != null) - selectionModel.removeSelectionPath(path); + removeSelectionPath(path); } public void removeSelectionRows(int[] rows) @@ -2331,7 +2420,7 @@ public class JTree extends JComponent implements Scrollable, Accessible if (selectionModel != null) { TreePath oldValue = selectionModel.getLeadSelectionPath(); - if (path.equals(oldValue)) + if (path == oldValue || path != null && path.equals(oldValue)) return; // Repaint the previous and current rows with the lead selection path. @@ -2409,9 +2498,19 @@ public class JTree extends JComponent implements Scrollable, Accessible return selectionModel.isPathSelected(path); } + /** + * Returns true when the specified row is selected, + * false otherwise. This call is delegated to the + * {@link TreeSelectionModel#isRowSelected(int)} method. + * + * @param row the row to check + * + * @return true when the specified row is selected, + * false otherwise + */ public boolean isRowSelected(int row) { - return selectionModel.isPathSelected(getPathForRow(row)); + return selectionModel.isRowSelected(row); } public boolean isSelectionEmpty() @@ -2725,7 +2824,7 @@ public class JTree extends JComponent implements Scrollable, Accessible nodeStates.clear(); } - protected Enumeration getDescendantToggledPaths(TreePath parent) + protected Enumeration getDescendantToggledPaths(TreePath parent) { if (parent == null) return null; @@ -2874,7 +2973,7 @@ public class JTree extends JComponent implements Scrollable, Accessible * * @return An Enumeration containing TreePath objects */ - public Enumeration getExpandedDescendants(TreePath path) + public Enumeration getExpandedDescendants(TreePath path) { Enumeration paths = nodeStates.keys(); Vector relevantPaths = new Vector(); @@ -3002,7 +3101,7 @@ public class JTree extends JComponent implements Scrollable, Accessible * @param toRemove - Enumeration of TreePaths that need to be removed from * cache of toggled tree paths. */ - protected void removeDescendantToggledPaths(Enumeration toRemove) + protected void removeDescendantToggledPaths(Enumeration toRemove) { while (toRemove.hasMoreElements()) { diff --git a/libjava/classpath/javax/swing/JViewport.java b/libjava/classpath/javax/swing/JViewport.java index 7cf393996c3..d90da1d157b 100644 --- a/libjava/classpath/javax/swing/JViewport.java +++ b/libjava/classpath/javax/swing/JViewport.java @@ -157,6 +157,9 @@ public class JViewport extends JComponent implements Accessible */ public void componentResized(ComponentEvent ev) { + // Fire state change, because resizing the view means changing the + // extentSize. + fireStateChanged(); revalidate(); } } @@ -198,22 +201,6 @@ public class JViewport extends JComponent implements Accessible int scrollMode; - /** - * The width and height of the Viewport's area in terms of view - * coordinates. Typically this will be the same as the width and height - * of the viewport's bounds, unless the viewport transforms units of - * width and height, which it may do, for example if it magnifies or - * rotates its view. - * - * @see #toViewCoordinates(Dimension) - */ - Dimension extentSize; - - /** - * The width and height of the view in its own coordinate space. - */ - Dimension viewSize; - /** * The ViewListener instance. */ @@ -265,8 +252,7 @@ public class JViewport extends JComponent implements Accessible static { String scrollModeProp = - SystemProperties.getProperty("gnu.javax.swing.JViewport.scrollMode", - "BLIT"); + SystemProperties.getProperty("gnu.swing.scrollmode", "BACKINGSTORE"); if (scrollModeProp.equalsIgnoreCase("simple")) defaultScrollMode = SIMPLE_SCROLL_MODE; else if (scrollModeProp.equalsIgnoreCase("backingstore")) @@ -290,10 +276,7 @@ public class JViewport extends JComponent implements Accessible public Dimension getExtentSize() { - if (extentSize == null) - return toViewCoordinates(getSize()); - else - return extentSize; + return getSize(); } public Dimension toViewCoordinates(Dimension size) @@ -310,8 +293,12 @@ public class JViewport extends JComponent implements Accessible public void setExtentSize(Dimension newSize) { - extentSize = newSize; - fireStateChanged(); + Dimension oldExtent = getExtentSize(); + if (! newSize.equals(oldExtent)) + { + setSize(newSize); + fireStateChanged(); + } } /** @@ -321,32 +308,34 @@ public class JViewport extends JComponent implements Accessible */ public Dimension getViewSize() { - if (isViewSizeSet) - return viewSize; - else + Dimension size; + Component view = getView(); + if (view != null) { - Component view = getView(); - if (view != null) - return view.getPreferredSize(); - else - return new Dimension(); + if (isViewSizeSet) + size = view.getSize(); + else + size = view.getPreferredSize(); } + else + size = new Dimension(0, 0); + return size; } public void setViewSize(Dimension newSize) { - viewSize = newSize; Component view = getView(); if (view != null) { - if (newSize != view.getSize()) + if (! newSize.equals(view.getSize())) { - view.setSize(viewSize); + scrollUnderway = false; + view.setSize(newSize); + isViewSizeSet = true; fireStateChanged(); } } - isViewSizeSet = true; } /** @@ -371,23 +360,18 @@ public class JViewport extends JComponent implements Accessible public void setViewPosition(Point p) { - if (getViewPosition().equals(p)) - return; Component view = getView(); - if (view != null) + if (view != null && ! p.equals(getViewPosition())) { - Point q = new Point(-p.x, -p.y); - view.setLocation(q); - isViewSizeSet = false; + scrollUnderway = true; + view.setLocation(-p.x, -p.y); fireStateChanged(); } - repaint(); } public Rectangle getViewRect() { - return new Rectangle(getViewPosition(), - getExtentSize()); + return new Rectangle(getViewPosition(), getExtentSize()); } /** @@ -495,7 +479,6 @@ public class JViewport extends JComponent implements Accessible if (view == null) return; - Point pos = getViewPosition(); Rectangle viewBounds = view.getBounds(); Rectangle portBounds = getBounds(); @@ -643,19 +626,11 @@ public class JViewport extends JComponent implements Accessible */ public void repaint(long tm, int x, int y, int w, int h) { -// Component parent = getParent(); -// if (parent != null) -// parent.repaint(tm, x + getX(), y + getY(), w, h); -// else -// super.repaint(tm, x, y, w, h); - - // The specs suggest to implement something like the above. This however - // breaks blit painting, because the parent (most likely a JScrollPane) - // clears the background of the offscreen area of the JViewport, thus - // destroying the pieces that we want to clip. So we simply call super here - // instead. - super.repaint(tm, x, y, w, h); - + Component parent = getParent(); + if (parent != null) + parent.repaint(tm, x + getX(), y + getY(), w, h); + else + super.repaint(tm, x, y, w, h); } protected void addImpl(Component comp, Object constraints, int index) @@ -862,10 +837,13 @@ public class JViewport extends JComponent implements Accessible if (canBlit) { // Copy the part that remains visible during scrolling. - g2.copyArea(cachedBlitFrom.x, cachedBlitFrom.y, - cachedBlitSize.width, cachedBlitSize.height, - cachedBlitTo.x - cachedBlitFrom.x, - cachedBlitTo.y - cachedBlitFrom.y); + if (cachedBlitSize.width > 0 && cachedBlitSize.height > 0) + { + g2.copyArea(cachedBlitFrom.x, cachedBlitFrom.y, + cachedBlitSize.width, cachedBlitSize.height, + cachedBlitTo.x - cachedBlitFrom.x, + cachedBlitTo.y - cachedBlitFrom.y); + } // Now paint the part that becomes newly visible. g2.setClip(cachedBlitPaint.x, cachedBlitPaint.y, cachedBlitPaint.width, cachedBlitPaint.height); @@ -913,10 +891,13 @@ public class JViewport extends JComponent implements Accessible if (canBlit && isPaintRoot) { // Copy the part that remains visible during scrolling. - g.copyArea(cachedBlitFrom.x, cachedBlitFrom.y, - cachedBlitSize.width, cachedBlitSize.height, - cachedBlitTo.x - cachedBlitFrom.x, - cachedBlitTo.y - cachedBlitFrom.y); + if (cachedBlitSize.width > 0 && cachedBlitSize.width > 0) + { + g.copyArea(cachedBlitFrom.x, cachedBlitFrom.y, + cachedBlitSize.width, cachedBlitSize.height, + cachedBlitTo.x - cachedBlitFrom.x, + cachedBlitTo.y - cachedBlitFrom.y); + } // Now paint the part that becomes newly visible. Shape oldClip = g.getClip(); g.clipRect(cachedBlitPaint.x, cachedBlitPaint.y, @@ -940,12 +921,24 @@ public class JViewport extends JComponent implements Accessible /** * Overridden from JComponent to set the {@link #isPaintRoot} flag. * - * @param r the rectangle to paint + * @param x the rectangle to paint, X coordinate + * @param y the rectangle to paint, Y coordinate + * @param w the rectangle to paint, width + * @param h the rectangle to paint, height */ - void paintImmediately2(Rectangle r) + void paintImmediately2(int x, int y, int w, int h) { isPaintRoot = true; - super.paintImmediately2(r); + super.paintImmediately2(x, y, w, h); isPaintRoot = false; } + + /** + * Returns true when the JViewport is using a backbuffer, so that we + * can update our backbuffer correctly. + */ + boolean isPaintRoot() + { + return scrollMode == BACKINGSTORE_SCROLL_MODE; + } } diff --git a/libjava/classpath/javax/swing/JWindow.java b/libjava/classpath/javax/swing/JWindow.java index 19d830ed1f7..b36b8cf2a60 100644 --- a/libjava/classpath/javax/swing/JWindow.java +++ b/libjava/classpath/javax/swing/JWindow.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.swing; +import java.awt.AWTEvent; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; @@ -158,6 +159,10 @@ public class JWindow extends Window implements Accessible, RootPaneContainer protected void windowInit() { + // We need to explicitly enable events here so that our processKeyEvent() + // and processWindowEvent() gets called. + enableEvents(AWTEvent.KEY_EVENT_MASK); + super.setLayout(new BorderLayout(1, 1)); getRootPane(); // will do set/create // Now we're done init stage, adds and layouts go to content pane. diff --git a/libjava/classpath/javax/swing/LookAndFeel.java b/libjava/classpath/javax/swing/LookAndFeel.java index be543439636..d995bc9e981 100644 --- a/libjava/classpath/javax/swing/LookAndFeel.java +++ b/libjava/classpath/javax/swing/LookAndFeel.java @@ -284,7 +284,7 @@ public abstract class LookAndFeel * @return A {@link UIDefaults.LazyValue} that serves up an * {@link IconUIResource}. */ - public static Object makeIcon(Class baseClass, String gifFile) + public static Object makeIcon(Class baseClass, String gifFile) { final URL file = baseClass.getResource(gifFile); return new UIDefaults.LazyValue() diff --git a/libjava/classpath/javax/swing/Popup.java b/libjava/classpath/javax/swing/Popup.java index 308cd662d8d..5074d64186c 100644 --- a/libjava/classpath/javax/swing/Popup.java +++ b/libjava/classpath/javax/swing/Popup.java @@ -284,7 +284,7 @@ public class Popup panel.setSize(contents.getSize()); Point layeredPaneLoc = layeredPane.getLocationOnScreen(); panel.setLocation(x - layeredPaneLoc.x, y - layeredPaneLoc.y); - layeredPane.add(panel, JLayeredPane.POPUP_LAYER); + layeredPane.add(panel, JLayeredPane.POPUP_LAYER, 0); panel.repaint(); } diff --git a/libjava/classpath/javax/swing/RepaintManager.java b/libjava/classpath/javax/swing/RepaintManager.java index 80f0a3481cd..773371489d9 100644 --- a/libjava/classpath/javax/swing/RepaintManager.java +++ b/libjava/classpath/javax/swing/RepaintManager.java @@ -38,21 +38,29 @@ exception statement from your version. */ package javax.swing; +import gnu.classpath.SystemProperties; +import gnu.java.awt.LowPriorityEvent; + +import java.applet.Applet; import java.awt.Component; import java.awt.Dimension; +import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; +import java.awt.Toolkit; import java.awt.Window; +import java.awt.event.InvocationEvent; import java.awt.image.VolatileImage; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; -import java.util.Map; import java.util.Set; import java.util.WeakHashMap; +import javax.swing.text.JTextComponent; + /** *

    The repaint manager holds a set of dirty regions, invalid components, * and a double buffer surface. The dirty regions and invalid components @@ -64,6 +72,7 @@ import java.util.WeakHashMap; *

    See this * document for more details.

    + * document for more details.

    * * @author Roman Kennke (kennke@aicas.com) * @author Graydon Hoare (graydon@redhat.com) @@ -72,6 +81,44 @@ import java.util.WeakHashMap; public class RepaintManager { /** + * An InvocationEvent subclass that implements LowPriorityEvent. This is used + * to defer the execution of RepaintManager requests as long as possible on + * the event queue. This way we make sure that all available input is + * processed before getting active with the RepaintManager. This allows + * for better optimization (more validate and repaint requests can be + * coalesced) and thus has a positive effect on performance for GUI + * applications under heavy load. + */ + private static class RepaintWorkerEvent + extends InvocationEvent + implements LowPriorityEvent + { + + /** + * Creates a new RepaintManager event. + * + * @param source the source + * @param runnable the runnable to execute + */ + public RepaintWorkerEvent(Object source, Runnable runnable, + Object notifier, boolean catchEx) + { + super(source, runnable, notifier, catchEx); + } + + /** + * An application that I met implements its own event dispatching and + * calls dispatch() via reflection, and only checks declared methods, + * that is, it expects this method to be in the event's class, not + * in a superclass. So I put this in here... sigh. + */ + public void dispatch() + { + super.dispatch(); + } + } + + /** * The current repaint managers, indexed by their ThreadGroups. */ static WeakHashMap currentRepaintManagers; @@ -197,19 +244,6 @@ public class RepaintManager private WeakHashMap offscreenBuffers; /** - * Indicates if the RepaintManager is currently repainting an area. - */ - private boolean repaintUnderway; - - /** - * This holds buffer commit requests when the RepaintManager is working. - * This maps Component objects (the top level components) to Rectangle - * objects (the area of the corresponding buffer that must be blitted on - * the component). - */ - private HashMap commitRequests; - - /** * The maximum width and height to allocate as a double buffer. Requests * beyond this size are ignored. * @@ -230,10 +264,10 @@ public class RepaintManager invalidComponents = new ArrayList(); repaintWorker = new RepaintWorker(); doubleBufferMaximumSize = new Dimension(2000,2000); - doubleBufferingEnabled = true; + doubleBufferingEnabled = + SystemProperties.getProperty("gnu.swing.doublebuffering", "true") + .equals("true"); offscreenBuffers = new WeakHashMap(); - repaintUnderway = false; - commitRequests = new HashMap(); } /** @@ -355,7 +389,7 @@ public class RepaintManager if (! repaintWorker.isLive()) { repaintWorker.setLive(true); - SwingUtilities.invokeLater(repaintWorker); + invokeLater(repaintWorker); } } @@ -397,23 +431,21 @@ public class RepaintManager { if (w <= 0 || h <= 0 || !component.isShowing()) return; - - Component parent = component.getParent(); - component.computeVisibleRect(rectCache); SwingUtilities.computeIntersection(x, y, w, h, rectCache); if (! rectCache.isEmpty()) { - if (dirtyComponents.containsKey(component)) + synchronized (dirtyComponents) { - SwingUtilities.computeUnion(rectCache.x, rectCache.y, - rectCache.width, rectCache.height, - (Rectangle) dirtyComponents.get(component)); - } - else - { - synchronized (dirtyComponents) + Rectangle dirtyRect = (Rectangle)dirtyComponents.get(component); + if (dirtyRect != null) + { + SwingUtilities.computeUnion(rectCache.x, rectCache.y, + rectCache.width, rectCache.height, + dirtyRect); + } + else { dirtyComponents.put(component, rectCache.getBounds()); } @@ -422,7 +454,7 @@ public class RepaintManager if (! repaintWorker.isLive()) { repaintWorker.setLive(true); - SwingUtilities.invokeLater(repaintWorker); + invokeLater(repaintWorker); } } } @@ -536,7 +568,7 @@ public class RepaintManager */ public void paintDirtyRegions() { - // Short cicuit if there is nothing to paint. + // Short circuit if there is nothing to paint. if (dirtyComponents.size() == 0) return; @@ -557,7 +589,6 @@ public class RepaintManager compileRepaintRoots(dirtyComponentsWork, dirty, repaintRoots); } - repaintUnderway = true; for (Iterator i = repaintRoots.iterator(); i.hasNext();) { JComponent comp = (JComponent) i.next(); @@ -567,13 +598,11 @@ public class RepaintManager comp.paintImmediately(damaged); } dirtyComponentsWork.clear(); - repaintUnderway = false; - commitRemainingBuffers(); } - + /** * Compiles a list of components that really get repainted. This is called - * once for each component in the dirtyComponents HashMap, each time with + * once for each component in the dirtyRegions HashMap, each time with * another dirty parameter. This searches up the component * hierarchy of dirty to find the highest parent that is also * marked dirty and merges the dirty regions. @@ -588,6 +617,29 @@ public class RepaintManager Component current = dirty; Component root = dirty; + // This will contain the dirty region in the root coordinate system, + // possibly clipped by ancestor's bounds. + Rectangle originalDirtyRect = (Rectangle) dirtyRegions.get(dirty); + rectCache.setBounds(originalDirtyRect); + + // The bounds of the current component. + int x = dirty.getX(); + int y = dirty.getY(); + int w = dirty.getWidth(); + int h = dirty.getHeight(); + + // Do nothing if dirty region is clipped away by the component's bounds. + rectCache = SwingUtilities.computeIntersection(0, 0, w, h, rectCache); + if (rectCache.isEmpty()) + return; + + // The cumulated offsets. + int dx = 0; + int dy = 0; + // The actual offset for the found root. + int rootDx = 0; + int rootDy = 0; + // Search the highest component that is also marked dirty. Component parent; while (true) @@ -597,10 +649,29 @@ public class RepaintManager break; current = parent; + // Update the offset. + dx += x; + dy += y; + rectCache.x += x; + rectCache.y += y; + + x = current.getX(); + y = current.getY(); + w = current.getWidth(); + h = current.getHeight(); + rectCache = SwingUtilities.computeIntersection(0, 0, w, h, rectCache); + + // Don't paint if the dirty regions is clipped away by any of + // its ancestors. + if (rectCache.isEmpty()) + return; + // We can skip to the next up when this parent is not dirty. if (dirtyRegions.containsKey(parent)) { root = current; + rootDx = dx; + rootDy = dy; } } @@ -608,15 +679,16 @@ public class RepaintManager // the are different. if (root != dirty) { - Rectangle dirtyRect = (Rectangle) dirtyRegions.get(dirty); - dirtyRect = SwingUtilities.convertRectangle(dirty, dirtyRect, root); - Rectangle rootRect = (Rectangle) dirtyRegions.get(root); - SwingUtilities.computeUnion(dirtyRect.x, dirtyRect.y, dirtyRect.width, - dirtyRect.height, rootRect); + rectCache.x += rootDx - dx; + rectCache.y += rootDy - dy; + Rectangle dirtyRect = (Rectangle) dirtyRegions.get(root); + SwingUtilities.computeUnion(rectCache.x, rectCache.y, rectCache.width, + rectCache.height, dirtyRect); } // Adds the root to the roots set. - roots.add(root); + if (! roots.contains(root)) + roots.add(root); } /** @@ -643,128 +715,43 @@ public class RepaintManager width = Math.min(doubleBufferMaximumSize.width, width); int height = Math.max(proposedHeight, root.getHeight()); height = Math.min(doubleBufferMaximumSize.height, height); - buffer = root.createImage(width, height); + buffer = component.createImage(width, height); offscreenBuffers.put(root, buffer); } return buffer; } /** - * Blits the back buffer of the specified root component to the screen. If - * the RepaintManager is currently working on a paint request, the commit - * requests are queued up and committed at once when the paint request is - * done (by {@link #commitRemainingBuffers}). This is package private because - * it must get called by JComponent. + * Blits the back buffer of the specified root component to the screen. + * This is package private because it must get called by JComponent. * * @param comp the component to be painted - * @param area the area to paint on screen, in comp coordinates - */ - void commitBuffer(Component comp, Rectangle area) - { - // Determine the component that we finally paint the buffer upon. - // We need to paint on the nearest heavyweight component, so that Swing - // hierarchies inside (non-window) heavyweights get painted correctly. - // Otherwise we would end up blitting the backbuffer behind the heavyweight - // which is wrong. - Component root = getHeavyweightParent(comp); - // FIXME: Optimize this. - Rectangle rootRect = SwingUtilities.convertRectangle(comp, area, root); - - // We synchronize on dirtyComponents here because that is what - // paintDirtyRegions also synchronizes on while painting. - synchronized (dirtyComponents) - { - // If the RepaintManager is not currently painting, then directly - // blit the requested buffer on the screen. - if (true || ! repaintUnderway) - { - blitBuffer(root, rootRect); - } - - // Otherwise queue this request up, until all the RepaintManager work - // is done. - else - { - if (commitRequests.containsKey(root)) - SwingUtilities.computeUnion(rootRect.x, rootRect.y, - rootRect.width, rootRect.height, - (Rectangle) commitRequests.get(root)); - else - commitRequests.put(root, rootRect); - } - } - } - - /** - * Copies the buffer to the screen. Note that the root component here is - * not necessarily the component with which the offscreen buffer is - * associated. The offscreen buffers are always allocated for the toplevel - * windows. However, painted is performed on lower-level heavyweight - * components too, if they contain Swing components. - * - * @param root the heavyweight component to blit upon - * @param rootRect the rectangle in the root component's coordinate space + * @param x the area to paint on screen, in comp coordinates + * @param y the area to paint on screen, in comp coordinates + * @param w the area to paint on screen, in comp coordinates + * @param h the area to paint on screen, in comp coordinates */ - private void blitBuffer(Component root, Rectangle rootRect) + void commitBuffer(Component comp, int x, int y, int w, int h) { - if (! root.isShowing()) - return; - - // Find the Window from which we use the backbuffer. - Component bufferRoot = root; - Rectangle bufferRect = rootRect.getBounds(); - if (!(bufferRoot instanceof Window)) + Component root = comp; + while (root != null + && ! (root instanceof Window || root instanceof Applet)) { - bufferRoot = SwingUtilities.getWindowAncestor(bufferRoot); - SwingUtilities.convertRectangleToAncestor(root, rootRect, bufferRoot); + x += root.getX(); + y += root.getY(); + root = root.getParent(); } - Graphics g = root.getGraphics(); - Image buffer = (Image) offscreenBuffers.get(bufferRoot); - - // Make sure we have a sane clip at this point. - g.clipRect(rootRect.x, rootRect.y, rootRect.width, rootRect.height); - g.drawImage(buffer, rootRect.x - bufferRect.x, rootRect.y - bufferRect.y, - root); - g.dispose(); - - } - - /** - * Finds and returns the nearest heavyweight parent for the specified - * component. If the component isn't contained inside a heavyweight parent, - * this returns null. - * - * @param comp the component - * - * @return the nearest heavyweight parent for the specified component or - * null if the component has no heavyweight ancestor - */ - private Component getHeavyweightParent(Component comp) - { - while (comp != null && comp.isLightweight()) - comp = comp.getParent(); - return comp; - } - - /** - * Commits the queued up back buffers to screen all at once. - */ - private void commitRemainingBuffers() - { - // We synchronize on dirtyComponents here because that is what - // paintDirtyRegions also synchronizes on while painting. - synchronized (dirtyComponents) + if (root != null) { - Set entrySet = commitRequests.entrySet(); - Iterator i = entrySet.iterator(); - while (i.hasNext()) + Graphics g = root.getGraphics(); + Image buffer = (Image) offscreenBuffers.get(root); + if (buffer != null) { - Map.Entry entry = (Map.Entry) i.next(); - Component root = (Component) entry.getKey(); - Rectangle area = (Rectangle) entry.getValue(); - blitBuffer(root, area); - i.remove(); + // Make sure we have a sane clip at this point. + g.clipRect(x, y, w, h); + g.drawImage(buffer, 0, 0, root); + g.dispose(); } } } @@ -858,4 +845,18 @@ public class RepaintManager { return "RepaintManager"; } + + /** + * Sends an RepaintManagerEvent to the event queue with the specified + * runnable. This is similar to SwingUtilities.invokeLater(), only that the + * event is a low priority event in order to defer the execution a little + * more. + */ + private void invokeLater(Runnable runnable) + { + Toolkit tk = Toolkit.getDefaultToolkit(); + EventQueue evQueue = tk.getSystemEventQueue(); + InvocationEvent ev = new RepaintWorkerEvent(evQueue, runnable, null, false); + evQueue.postEvent(ev); + } } diff --git a/libjava/classpath/javax/swing/ScrollPaneLayout.java b/libjava/classpath/javax/swing/ScrollPaneLayout.java index 8ce8fd86f7a..2a16f26eae9 100644 --- a/libjava/classpath/javax/swing/ScrollPaneLayout.java +++ b/libjava/classpath/javax/swing/ScrollPaneLayout.java @@ -46,6 +46,8 @@ import java.awt.LayoutManager; import java.awt.Rectangle; import java.io.Serializable; +import javax.swing.border.Border; + /** * ScrollPaneLayout * @author Andrew Selkirk @@ -277,6 +279,16 @@ public class ScrollPaneLayout width += rowHead.getPreferredSize().width; if (colHead != null && colHead.isVisible()) height += colHead.getPreferredSize().height; + + // Add insets of viewportBorder if present. + Border vpBorder = sc.getViewportBorder(); + if (vpBorder != null) + { + Insets i = vpBorder.getBorderInsets(sc); + width += i.left + i.right; + height += i.top + i.bottom; + } + Insets i = sc.getInsets(); return new Dimension(width + i.left + i.right, height + i.left + i.right); @@ -300,6 +312,15 @@ public class ScrollPaneLayout != JScrollPane.HORIZONTAL_SCROLLBAR_NEVER) height += sc.getHorizontalScrollBar().getMinimumSize().height; + // Add insets of viewportBorder if present. + Border vpBorder = sc.getViewportBorder(); + if (vpBorder != null) + { + i = vpBorder.getBorderInsets(sc); + width += i.left + i.right; + height += i.top + i.bottom; + } + return new Dimension(width, height); } @@ -342,6 +363,15 @@ public class ScrollPaneLayout int y1 = 0, y2 = 0, y3 = 0, y4 = 0; Rectangle scrollPaneBounds = SwingUtilities.calculateInnerArea(sc, null); + // If there is a viewportBorder, remove its insets from the available + // space. + Border vpBorder = sc.getViewportBorder(); + Insets vpi; + if (vpBorder != null) + vpi = vpBorder.getBorderInsets(sc); + else + vpi = new Insets(0, 0, 0, 0); + x1 = scrollPaneBounds.x; y1 = scrollPaneBounds.y; x4 = scrollPaneBounds.x + scrollPaneBounds.width; @@ -404,7 +434,9 @@ public class ScrollPaneLayout // now set the layout if (viewport != null) - viewport.setBounds(new Rectangle(x2, y2, x3 - x2, y3 - y2)); + viewport.setBounds(new Rectangle(x2 + vpi.left, y2 + vpi.top, + x3 - x2 - vpi.left - vpi.right, + y3 - y2 - vpi.top - vpi.bottom)); if (colHead != null) colHead.setBounds(new Rectangle(x2, y1, x3 - x2, y2 - y1)); @@ -415,7 +447,7 @@ public class ScrollPaneLayout if (showVsb) { vsb.setVisible(true); - vsb.setBounds(new Rectangle(x3, y2, x4 - x3, y3 - y2)); + vsb.setBounds(new Rectangle(x3, y2, x4 - x3, y3 - y2 )); } else if (vsb != null) vsb.setVisible(false); @@ -423,7 +455,7 @@ public class ScrollPaneLayout if (showHsb) { hsb.setVisible(true); - hsb.setBounds(new Rectangle(x2, y3, x3 - x2, y4 - y3)); + hsb.setBounds(new Rectangle(x2 , y3, x3 - x2, y4 - y3)); } else if (hsb != null) hsb.setVisible(false); diff --git a/libjava/classpath/javax/swing/SizeSequence.java b/libjava/classpath/javax/swing/SizeSequence.java index a5f34710c76..cb6c8bc25df 100644 --- a/libjava/classpath/javax/swing/SizeSequence.java +++ b/libjava/classpath/javax/swing/SizeSequence.java @@ -129,14 +129,18 @@ public class SizeSequence } /** - * Returns the size of the specified element. + * Returns the size of the specified element, or 0 if the element index is + * outside the defined range. * * @param index the element index. * - * @return The size of the specified element. + * @return The size of the specified element, or 0 if the element index is + * outside the defined range. */ public int getSize(int index) { + if (index < 0 || index >= sizes.length) + return 0; return sizes[index]; } diff --git a/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java b/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java index 96ef3832955..d14ee1d30a4 100644 --- a/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java +++ b/libjava/classpath/javax/swing/SortingFocusTraversalPolicy.java @@ -91,7 +91,7 @@ public class SortingFocusTraversalPolicy * * @param comparator the comparator to set */ - public SortingFocusTraversalPolicy(Comparator comparator) + public SortingFocusTraversalPolicy(Comparator comparator) { this.comparator = comparator; } @@ -119,7 +119,7 @@ public class SortingFocusTraversalPolicy * * @see #setComparator */ - protected Comparator getComparator() + protected Comparator getComparator() { return comparator; } @@ -131,7 +131,7 @@ public class SortingFocusTraversalPolicy * * @see #getComparator */ - protected void setComparator(Comparator comparator) + protected void setComparator(Comparator comparator) { this.comparator = comparator; } diff --git a/libjava/classpath/javax/swing/SpinnerListModel.java b/libjava/classpath/javax/swing/SpinnerListModel.java index d8e2f22d585..52ac360e924 100644 --- a/libjava/classpath/javax/swing/SpinnerListModel.java +++ b/libjava/classpath/javax/swing/SpinnerListModel.java @@ -118,7 +118,7 @@ public class SpinnerListModel extends AbstractSpinnerModel * @see SpinnerListModel#getNextValue() * @see SpinnerListModel#getValue() */ - public SpinnerListModel(List list) + public SpinnerListModel(List list) { // Retain a reference to the valid list. setList(list); @@ -163,7 +163,7 @@ public class SpinnerListModel extends AbstractSpinnerModel * * @return The backing list. */ - public List getList() + public List getList() { return list; } @@ -239,7 +239,7 @@ public class SpinnerListModel extends AbstractSpinnerModel * * @see ChangeEvent */ - public void setList(List list) + public void setList(List list) { // Check for null or zero size list. if (list == null || list.size() == 0) diff --git a/libjava/classpath/javax/swing/SwingUtilities.java b/libjava/classpath/javax/swing/SwingUtilities.java index ccd37d03a55..6ff0b3346df 100644 --- a/libjava/classpath/javax/swing/SwingUtilities.java +++ b/libjava/classpath/javax/swing/SwingUtilities.java @@ -40,7 +40,6 @@ package javax.swing; import java.applet.Applet; import java.awt.Component; -import java.awt.ComponentOrientation; import java.awt.Container; import java.awt.FontMetrics; import java.awt.Frame; @@ -61,6 +60,8 @@ import javax.accessibility.Accessible; import javax.accessibility.AccessibleStateSet; import javax.swing.plaf.ActionMapUIResource; import javax.swing.plaf.InputMapUIResource; +import javax.swing.plaf.basic.BasicHTML; +import javax.swing.text.View; /** * A number of static utility functions which are @@ -324,7 +325,7 @@ public class SwingUtilities * @see #getAncestorOfClass * @see #windowForComponent */ - public static Container getAncestorOfClass(Class c, Component comp) + public static Container getAncestorOfClass(Class c, Component comp) { while (comp != null && (! c.isInstance(comp))) comp = comp.getParent(); @@ -719,44 +720,41 @@ public class SwingUtilities // Fix up the orientation-based horizontal positions. - if (horizontalTextPosition == LEADING) - { - if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) - horizontalTextPosition = RIGHT; - else - horizontalTextPosition = LEFT; - } - else if (horizontalTextPosition == TRAILING) + boolean ltr = true; + if (c != null && ! c.getComponentOrientation().isLeftToRight()) + ltr = false; + + switch (horizontalTextPosition) { - if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) - horizontalTextPosition = LEFT; - else - horizontalTextPosition = RIGHT; + case LEADING: + horizontalTextPosition = ltr ? LEFT : RIGHT; + break; + case TRAILING: + horizontalTextPosition = ltr ? RIGHT : LEFT; + break; + default: + // Nothing to do in the other cases. } // Fix up the orientation-based alignments. - - if (horizontalAlignment == LEADING) - { - if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) - horizontalAlignment = RIGHT; - else - horizontalAlignment = LEFT; - } - else if (horizontalAlignment == TRAILING) + switch (horizontalAlignment) { - if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) - horizontalAlignment = LEFT; - else - horizontalAlignment = RIGHT; + case LEADING: + horizontalAlignment = ltr ? LEFT : RIGHT; + break; + case TRAILING: + horizontalAlignment = ltr ? RIGHT : LEFT; + break; + default: + // Nothing to do in the other cases. } - - return layoutCompoundLabel(fm, text, icon, - verticalAlignment, - horizontalAlignment, - verticalTextPosition, - horizontalTextPosition, - viewR, iconR, textR, textIconGap); + + return layoutCompoundLabelImpl(c, fm, text, icon, + verticalAlignment, + horizontalAlignment, + verticalTextPosition, + horizontalTextPosition, + viewR, iconR, textR, textIconGap); } /** @@ -829,6 +827,82 @@ public class SwingUtilities Rectangle textR, int textIconGap) { + return layoutCompoundLabelImpl(null, fm, text, icon, verticalAlignment, + horizontalAlignment, verticalTextPosition, + horizontalTextPosition, viewR, iconR, textR, + textIconGap); + } + + /** + *

    Layout a "compound label" consisting of a text string and an icon + * which is to be placed near the rendered text. Once the text and icon + * are laid out, the text rectangle and icon rectangle parameters are + * altered to store the calculated positions.

    + * + *

    The size of the text is calculated from the provided font metrics + * object. This object should be the metrics of the font you intend to + * paint the label with.

    + * + *

    The position values control where the text is placed relative to + * the icon. The horizontal position value should be one of the constants + * LEFT, RIGHT or CENTER. The + * vertical position value should be one fo the constants + * TOP, BOTTOM or CENTER.

    + * + *

    The text-icon gap value controls the number of pixels between the + * icon and the text.

    + * + *

    The alignment values control where the text and icon are placed, as + * a combined unit, within the view rectangle. The horizontal alignment + * value should be one of the constants LEFT, RIGHT or + * CENTER. The vertical alignment valus should be one of the + * constants TOP, BOTTOM or + * CENTER.

    + * + *

    If the text and icon are equal to or larger than the view + * rectangle, the horizontal and vertical alignment values have no + * affect.

    + * + *

    Note that this method does not know how to deal with + * horizontal alignments or positions given as LEADING or + * TRAILING values. Use the other overloaded variant of this + * method if you wish to use such values. + * + * @param fm The font metrics used to measure the text + * @param text The text to place in the compound label + * @param icon The icon to place next to the text + * @param verticalAlignment The vertical alignment of the label relative + * to its component + * @param horizontalAlignment The horizontal alignment of the label + * relative to its component + * @param verticalTextPosition The vertical position of the label's text + * relative to its icon + * @param horizontalTextPosition The horizontal position of the label's + * text relative to its icon + * @param viewR The view rectangle, specifying the area which layout is + * constrained to + * @param iconR A rectangle which is modified to hold the laid-out + * position of the icon + * @param textR A rectangle which is modified to hold the laid-out + * position of the text + * @param textIconGap The distance between text and icon + * + * @return The string of characters, possibly truncated with an elipsis, + * which is laid out in this label + */ + private static String layoutCompoundLabelImpl(JComponent c, + FontMetrics fm, + String text, + Icon icon, + int verticalAlignment, + int horizontalAlignment, + int verticalTextPosition, + int horizontalTextPosition, + Rectangle viewR, + Rectangle iconR, + Rectangle textR, + int textIconGap) + { // Work out basic height and width. @@ -843,94 +917,108 @@ public class SwingUtilities iconR.width = icon.getIconWidth(); iconR.height = icon.getIconHeight(); } + if (text == null || text.equals("")) { textIconGap = 0; textR.width = 0; textR.height = 0; + text = ""; } else { - int fromIndex = 0; - textR.width = fm.stringWidth(text); - textR.height = fm.getHeight(); - while (text.indexOf('\n', fromIndex) != -1) + int availableWidth = viewR.width; + if (horizontalTextPosition != CENTER) + availableWidth -= iconR.width + textIconGap; + View html = c == null ? null + : (View) c.getClientProperty(BasicHTML.propertyKey); + if (html != null) + { + textR.width = (int) html.getPreferredSpan(View.X_AXIS); + textR.width = Math.min(availableWidth, textR.width); + textR.height = (int) html.getPreferredSpan(View.Y_AXIS); + } + else { - textR.height += fm.getHeight(); - fromIndex = text.indexOf('\n', fromIndex) + 1; + int fromIndex = 0; + textR.width = fm.stringWidth(text); + textR.height = fm.getHeight(); + if (textR.width > availableWidth) + { + text = clipString(c, fm, text, availableWidth); + textR.width = fm.stringWidth(text); + } } } - // Work out the position of text and icon, assuming the top-left coord + // Work out the position of text, assuming the top-left coord // starts at (0,0). We will fix that up momentarily, after these // "position" decisions are made and we look at alignment. - switch (horizontalTextPosition) + switch (verticalTextPosition) { - case LEFT: - textR.x = 0; - iconR.x = textR.width + textIconGap; + case TOP: + textR.y = horizontalTextPosition == CENTER ? + - textR.height - textIconGap : 0; break; - case RIGHT: - iconR.x = 0; - textR.x = iconR.width + textIconGap; + case BOTTOM: + textR.y = horizontalTextPosition == CENTER ? + iconR.height + textIconGap : iconR.height - textR.height; break; case CENTER: - int centerLine = Math.max(textR.width, iconR.width) / 2; - textR.x = centerLine - textR.width/2; - iconR.x = centerLine - iconR.width/2; + textR.y = iconR.height / 2 - textR.height / 2; break; } - switch (verticalTextPosition) + switch (horizontalTextPosition) { - case TOP: - textR.y = 0; - iconR.y = (horizontalTextPosition == CENTER - ? textR.height + textIconGap : 0); + case LEFT: + textR.x = -(textR.width + textIconGap); break; - case BOTTOM: - iconR.y = 0; - textR.y = (horizontalTextPosition == CENTER - ? iconR.height + textIconGap - : Math.max(iconR.height - textR.height, 0)); + case RIGHT: + textR.x = iconR.width + textIconGap; break; case CENTER: - int centerLine = Math.max(textR.height, iconR.height) / 2; - textR.y = centerLine - textR.height/2; - iconR.y = centerLine - iconR.height/2; + textR.x = iconR.width / 2 - textR.width / 2; break; } + // The two rectangles are laid out correctly now, but only assuming // that their upper left corner is at (0,0). If we have any alignment other // than TOP and LEFT, we need to adjust them. - Rectangle u = textR.union(iconR); - int horizontalAdjustment = viewR.x; - int verticalAdjustment = viewR.y; + // These coordinates specify the rectangle that contains both the + // icon and text. Move it so that it fullfills the alignment properties. + int lx = Math.min(iconR.x, textR.x); + int lw = Math.max(iconR.x + iconR.width, textR.x + textR.width) - lx; + int ly = Math.min(iconR.y, textR.y); + int lh = Math.max(iconR.y + iconR.height, textR.y + textR.height) - ly; + int horizontalAdjustment = 0; + int verticalAdjustment = 0; switch (verticalAlignment) { case TOP: + verticalAdjustment = viewR.y - ly; break; case BOTTOM: - verticalAdjustment += (viewR.height - u.height); + verticalAdjustment = viewR.y + viewR.height - ly - lh; break; case CENTER: - verticalAdjustment += ((viewR.height/2) - (u.height/2)); + verticalAdjustment = viewR.y + viewR.height / 2 - ly - lh / 2; break; } switch (horizontalAlignment) { case LEFT: + horizontalAdjustment = viewR.x - lx; break; case RIGHT: - horizontalAdjustment += (viewR.width - u.width); + horizontalAdjustment = viewR.x + viewR.width - lx - lw; break; case CENTER: - horizontalAdjustment += ((viewR.width/2) - (u.width/2)); + horizontalAdjustment = (viewR.x + (viewR.width / 2)) - (lx + (lw / 2)); break; } - iconR.x += horizontalAdjustment; iconR.y += verticalAdjustment; @@ -940,6 +1028,48 @@ public class SwingUtilities return text; } + /** + * The method clips the specified string so that it fits into the + * available width. It is only called when the text really doesn't fit, + * so we don't need to check that again. + * + * @param c the component + * @param fm the font metrics + * @param text the text + * @param availableWidth the available width + * + * @return the clipped string + */ + private static String clipString(JComponent c, FontMetrics fm, String text, + int availableWidth) + { + String dots = "..."; + int dotsWidth = fm.stringWidth(dots); + char[] string = text.toCharArray(); + int endIndex = string.length; + while (fm.charsWidth(string, 0, endIndex) + dotsWidth > availableWidth + && endIndex > 0) + endIndex--; + String clipped; + if (string.length >= endIndex + 3) + { + string[endIndex] = '.'; + string[endIndex + 1] = '.'; + string[endIndex + 2] = '.'; + clipped = new String(string, 0, endIndex + 3); + } + else + { + char[] clippedChars = new char[string.length + 3]; + System.arraycopy(string, 0, clippedChars, 0, string.length); + clippedChars[endIndex] = '.'; + clippedChars[endIndex + 1] = '.'; + clippedChars[endIndex + 2] = '.'; + clipped = new String(clippedChars, 0, endIndex + 3); + } + return clipped; + } + /** * Calls {@link java.awt.EventQueue#invokeLater} with the * specified {@link Runnable}. diff --git a/libjava/classpath/javax/swing/Timer.java b/libjava/classpath/javax/swing/Timer.java index acd22624947..acd1eb49359 100644 --- a/libjava/classpath/javax/swing/Timer.java +++ b/libjava/classpath/javax/swing/Timer.java @@ -228,7 +228,7 @@ public class Timer * fired by this timer * @since 1.3 */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } diff --git a/libjava/classpath/javax/swing/ToolTipManager.java b/libjava/classpath/javax/swing/ToolTipManager.java index 963ccf88117..152fc03430f 100644 --- a/libjava/classpath/javax/swing/ToolTipManager.java +++ b/libjava/classpath/javax/swing/ToolTipManager.java @@ -163,16 +163,21 @@ public class ToolTipManager extends MouseAdapter implements MouseMotionListener private static ToolTipManager shared; /** The current component the tooltip is being displayed for. */ - private static Component currentComponent; + private JComponent currentComponent; /** The current tooltip. */ - private static JToolTip currentTip; + private JToolTip currentTip; + + /** + * The tooltip text. + */ + private String toolTipText; /** The last known position of the mouse cursor. */ - private static Point currentPoint; - + private Point currentPoint; + /** */ - private static Popup popup; + private Popup popup; /** * Creates a new ToolTipManager and sets up the timers. @@ -364,8 +369,8 @@ public class ToolTipManager extends MouseAdapter implements MouseMotionListener return; currentPoint = event.getPoint(); - currentComponent = (Component) event.getSource(); - + currentComponent = (JComponent) event.getSource(); + toolTipText = currentComponent.getToolTipText(event); if (exitTimer.isRunning()) { exitTimer.stop(); @@ -443,8 +448,52 @@ public class ToolTipManager extends MouseAdapter implements MouseMotionListener public void mouseMoved(MouseEvent event) { currentPoint = event.getPoint(); - if (enterTimer.isRunning()) - enterTimer.restart(); + if (currentTip != null && currentTip.isShowing()) + checkTipUpdate(event); + else + { + if (enterTimer.isRunning()) + enterTimer.restart(); + } + } + + /** + * Checks if the tooltip's text or location changes when the mouse is moved + * over the component. + */ + private void checkTipUpdate(MouseEvent ev) + { + JComponent comp = (JComponent) ev.getSource(); + String newText = comp.getToolTipText(ev); + String oldText = toolTipText; + if (newText != null) + { + if (((newText != null && newText.equals(oldText)) || newText == null)) + { + // No change at all. Restart timers. + if (popup == null) + enterTimer.restart(); + else + insideTimer.restart(); + } + else + { + // Update the tooltip. + toolTipText = newText; + hideTip(); + showTip(); + exitTimer.stop(); + } + } + else + { + // Hide tooltip. + currentTip = null; + currentPoint = null; + hideTip(); + enterTimer.stop(); + exitTimer.stop(); + } } /** @@ -461,9 +510,9 @@ public class ToolTipManager extends MouseAdapter implements MouseMotionListener return; } - if (currentTip == null || currentTip.getComponent() != currentComponent - && currentComponent instanceof JComponent) - currentTip = ((JComponent) currentComponent).createToolTip(); + if (currentTip == null || currentTip.getComponent() != currentComponent) + currentTip = currentComponent.createToolTip(); + currentTip.setTipText(toolTipText); Point p = currentPoint; Point cP = currentComponent.getLocationOnScreen(); @@ -531,8 +580,8 @@ public class ToolTipManager extends MouseAdapter implements MouseMotionListener private Component getContentPaneDeepestComponent(MouseEvent e) { Component source = (Component) e.getSource(); - Container parent = (Container) SwingUtilities.getAncestorOfClass(JRootPane.class, - currentComponent); + Container parent = SwingUtilities.getAncestorOfClass(JRootPane.class, + currentComponent); if (parent == null) return null; parent = ((JRootPane) parent).getContentPane(); diff --git a/libjava/classpath/javax/swing/TransferHandler.java b/libjava/classpath/javax/swing/TransferHandler.java index 40a36b27d24..d594a8244bb 100644 --- a/libjava/classpath/javax/swing/TransferHandler.java +++ b/libjava/classpath/javax/swing/TransferHandler.java @@ -44,12 +44,117 @@ import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.event.ActionEvent; import java.awt.event.InputEvent; +import java.beans.BeanInfo; +import java.beans.IntrospectionException; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.io.IOException; import java.io.Serializable; +import java.lang.reflect.Method; public class TransferHandler implements Serializable { + + /** + * An implementation of {@link Transferable} that can be used to export + * data from a component's property. + */ + private static class PropertyTransferable + implements Transferable + { + /** + * The component from which we export. + */ + private JComponent component; + + /** + * The property descriptor of the property that we handle. + */ + private PropertyDescriptor property; + + /** + * Creates a new PropertyTransferable. + * + * @param c the component from which we export + * @param prop the property from which we export + */ + PropertyTransferable(JComponent c, PropertyDescriptor prop) + { + component = c; + property = prop; + } + + /** + * Returns the data flavors supported by the Transferable. + * + * @return the data flavors supported by the Transferable + */ + public DataFlavor[] getTransferDataFlavors() + { + DataFlavor[] flavors; + Class propClass = property.getPropertyType(); + String mime = DataFlavor.javaJVMLocalObjectMimeType + "; class=" + + propClass.getName(); + try + { + DataFlavor flavor = new DataFlavor(mime); + flavors = new DataFlavor[]{ flavor }; + } + catch (ClassNotFoundException ex) + { + flavors = new DataFlavor[0]; + } + return flavors; + } + + /** + * Returns true when the specified data flavor is supported, + * false otherwise. + * + * @return true when the specified data flavor is supported, + * false otherwise + */ + public boolean isDataFlavorSupported(DataFlavor flavor) + { + Class propClass = property.getPropertyType(); + return flavor.getPrimaryType().equals("application") + && flavor.getSubType().equals("x-java-jvm-local-objectref") + && propClass.isAssignableFrom(flavor.getRepresentationClass()); + } + + /** + * Returns the actual transfer data. + * + * @param flavor the data flavor + * + * @return the actual transfer data + */ + public Object getTransferData(DataFlavor flavor) + throws UnsupportedFlavorException, IOException + { + if (isDataFlavorSupported(flavor)) + { + Method getter = property.getReadMethod(); + Object o; + try + { + o = getter.invoke(component, null); + return o; + } + catch (Exception ex) + { + throw new IOException("Property read failed: " + + property.getName()); + } + } + else + throw new UnsupportedFlavorException(flavor); + } + } + static class TransferAction extends AbstractAction { private String command; @@ -123,7 +228,13 @@ public class TransferHandler implements Serializable private int sourceActions; private Icon visualRepresentation; - + + /** + * The name of the property into/from which this TransferHandler + * imports/exports. + */ + private String propertyName; + public static Action getCopyAction() { return copyAction; @@ -146,19 +257,78 @@ public class TransferHandler implements Serializable public TransferHandler(String property) { + propertyName = property; this.sourceActions = property != null ? COPY : NONE; } + /** + * Returns true if the data in this TransferHandler can be + * imported into the specified component. This will be the case when: + *

      + *
    • The component has a readable and writable property with the property + * name specified in the TransferHandler constructor.
    • + *
    • There is a dataflavor with a mime type of + * application/x-java-jvm-local-object-ref.
    • + *
    • The dataflavor's representation class matches the class of the + * property in the component.
    • + * + * + * @param c the component to check + * @param flavors the possible data flavors + * + * @return true if the data in this TransferHandler can be + * imported into the specified component, false + * otherwise + */ public boolean canImport(JComponent c, DataFlavor[] flavors) - throws NotImplementedException { - return false; + PropertyDescriptor propDesc = getPropertyDescriptor(c); + boolean canImport = false; + if (propDesc != null) + { + // Check if the property is writable. The readable check is already + // done in getPropertyDescriptor(). + Method writer = propDesc.getWriteMethod(); + if (writer != null) + { + Class[] params = writer.getParameterTypes(); + if (params.length == 1) + { + // Number of parameters ok, now check mime type and + // representation class. + DataFlavor flavor = getPropertyDataFlavor(params[0], flavors); + if (flavor != null) + canImport = true; + } + } + } + return canImport; } + /** + * Creates a {@link Transferable} that can be used to export data + * from the specified component. + * + * This method returns null when the specified component + * doesn't have a readable property that matches the property name + * specified in the TransferHandler constructor. + * + * @param c the component to create a transferable for + * + * @return a {@link Transferable} that can be used to export data + * from the specified component, or null if the component doesn't + * have a readable property like the transfer handler + */ protected Transferable createTransferable(JComponent c) - throws NotImplementedException { - return null; + Transferable transferable = null; + if (propertyName != null) + { + PropertyDescriptor prop = getPropertyDescriptor(c); + if (prop != null) + transferable = new PropertyTransferable(c, prop); + } + return transferable; } public void exportAsDrag(JComponent c, InputEvent e, int action) @@ -167,16 +337,64 @@ public class TransferHandler implements Serializable // TODO: Implement this properly } - protected void exportDone(JComponent c, Transferable data, int action) - throws NotImplementedException + /** + * This method is invoked after data has been exported. + * Subclasses should implement this method to remove the data that has been + * transferred when the action was MOVE. + * + * The default implementation does nothing because MOVE is not supported. + * + * @param c the source component + * @param data the data that has been transferred or null + * when the action is NONE + * @param action the action that has been performed + */ + protected void exportDone(JComponent c, Transferable data, int action) { - // TODO: Implement this properly + // Nothing to do in the default implementation. } + /** + * Exports the property of the component c that was + * specified for this TransferHandler to the clipboard, performing + * the specified action. + * + * This will check if the action is allowed by calling + * {@link #getSourceActions(JComponent)}. If the action is not allowed, + * then no export is performed. + * + * In either case the method {@link #exportDone} will be called with + * the action that has been performed, or {@link #NONE} if the action + * was not allowed or could otherwise not be completed. + * Any IllegalStateException that is thrown by the Clipboard due to + * beeing unavailable will be propagated through this method. + * + * @param c the component from which to export + * @param clip the clipboard to which the data will be exported + * @param action the action to perform + * + * @throws IllegalStateException when the clipboard is not available + */ public void exportToClipboard(JComponent c, Clipboard clip, int action) - throws NotImplementedException + throws IllegalStateException { - // TODO: Implement this properly + action &= getSourceActions(c); + Transferable transferable = createTransferable(c); + if (transferable != null && action != NONE) + { + try + { + clip.setContents(transferable, null); + exportDone(c, transferable, action); + } + catch (IllegalStateException ex) + { + exportDone(c, transferable, NONE); + throw ex; + } + } + else + exportDone(c, null, NONE); } public int getSourceActions(JComponent c) @@ -189,9 +407,124 @@ public class TransferHandler implements Serializable return visualRepresentation; } + /** + * Imports the transfer data represented by t into the specified + * component c by setting the property of this TransferHandler + * on that component. If this succeeds, this method returns + * true, otherwise false. + * + * + * @param c the component to import into + * @param t the transfer data to import + * + * @return true if the transfer succeeds, false + * otherwise + */ public boolean importData(JComponent c, Transferable t) - throws NotImplementedException { - return false; + boolean ok = false; + PropertyDescriptor prop = getPropertyDescriptor(c); + if (prop != null) + { + Method writer = prop.getWriteMethod(); + if (writer != null) + { + Class[] params = writer.getParameterTypes(); + if (params.length == 1) + { + DataFlavor flavor = getPropertyDataFlavor(params[0], + t.getTransferDataFlavors()); + if (flavor != null) + { + try + { + Object value = t.getTransferData(flavor); + writer.invoke(c, new Object[]{ value }); + ok = true; + } + catch (Exception ex) + { + // If anything goes wrong here, do nothing and return + // false; + } + } + } + } + } + return ok; + } + + /** + * Returns the property descriptor for the property of this TransferHandler + * in the specified component, or null if no such property + * exists in the component. This method only returns properties that are + * at least readable (that is, it has a public no-arg getter method). + * + * @param c the component to check + * + * @return the property descriptor for the property of this TransferHandler + * in the specified component, or null if no such + * property exists in the component + */ + private PropertyDescriptor getPropertyDescriptor(JComponent c) + { + PropertyDescriptor prop = null; + if (propertyName != null) + { + Class clazz = c.getClass(); + BeanInfo beanInfo; + try + { + beanInfo = Introspector.getBeanInfo(clazz); + } + catch (IntrospectionException ex) + { + beanInfo = null; + } + if (beanInfo != null) + { + PropertyDescriptor[] props = beanInfo.getPropertyDescriptors(); + for (int i = 0; i < props.length && prop == null; i++) + { + PropertyDescriptor desc = props[i]; + if (desc.getName().equals(propertyName)) + { + Method reader = desc.getReadMethod(); + if (reader != null) + { + Class[] params = reader.getParameterTypes(); + if (params == null || params.length == 0) + prop = desc; + } + } + } + } + } + return prop; + } + + /** + * Searches flavors to find a suitable data flavor that + * has the mime type application/x-java-jvm-local-objectref and a + * representation class that is the same as the specified clazz. + * When no such data flavor is found, this returns null. + * + * @param clazz the representation class required for the data flavor + * @param flavors the possible data flavors + * + * @return the suitable data flavor or null if none is found + */ + private DataFlavor getPropertyDataFlavor(Class clazz, DataFlavor[] flavors) + { + DataFlavor found = null; + for (int i = 0; i < flavors.length && found == null; i++) + { + DataFlavor flavor = flavors[i]; + if (flavor.getPrimaryType().equals("application") + && flavor.getSubType().equals("x-java-jvm-local-objectref") + && clazz.isAssignableFrom(flavor.getRepresentationClass())) + found = flavor; + } + return found; } } diff --git a/libjava/classpath/javax/swing/UIDefaults.java b/libjava/classpath/javax/swing/UIDefaults.java index bf5242f6552..9766cb05cec 100644 --- a/libjava/classpath/javax/swing/UIDefaults.java +++ b/libjava/classpath/javax/swing/UIDefaults.java @@ -63,7 +63,7 @@ import javax.swing.plaf.InputMapUIResource; * * @author Ronald Veldema (rveldema@cs.vu.nl) */ -public class UIDefaults extends Hashtable +public class UIDefaults extends Hashtable { /** Our ResourceBundles. */ @@ -672,7 +672,7 @@ public class UIDefaults extends Hashtable * * @return the UI class for id */ - public Class getUIClass(String id, ClassLoader loader) + public Class getUIClass(String id, ClassLoader loader) { String className = (String) get(id); if (className == null) @@ -681,7 +681,7 @@ public class UIDefaults extends Hashtable { if (loader == null) loader = ClassLoader.getSystemClassLoader(); - return loader.loadClass (className); + return (Class) loader.loadClass (className); } catch (Exception e) { @@ -698,7 +698,7 @@ public class UIDefaults extends Hashtable * * @return the UI class for id */ - public Class getUIClass(String id) + public Class getUIClass(String id) { return getUIClass (id, null); } diff --git a/libjava/classpath/javax/swing/UIManager.java b/libjava/classpath/javax/swing/UIManager.java index 77be44afcbb..3b1b3f72b38 100644 --- a/libjava/classpath/javax/swing/UIManager.java +++ b/libjava/classpath/javax/swing/UIManager.java @@ -154,8 +154,16 @@ public class UIManager implements Serializable UIDefaults fallback; + /** + * Creates a new MultiplexUIDefaults instance with + * d as the fallback defaults. + * + * @param d the fallback defaults (null not permitted). + */ MultiplexUIDefaults(UIDefaults d) { + if (d == null) + throw new NullPointerException(); fallback = d; } @@ -400,6 +408,8 @@ public class UIManager implements Serializable * @param key the key. * * @return The object. + * + * @since 1.4 */ public static Object get(Object key, Locale locale) { @@ -407,61 +417,120 @@ public class UIManager implements Serializable } /** - * Returns a boolean value from the defaults table, - * false if key is not present. + * Returns a boolean value from the defaults table. If there is no value + * for the specified key, or the value is not an instance of {@link Boolean}, + * this method returns false. + * + * @param key the key (null not permitted). * + * @return The boolean value associated with the specified key. + * + * @throws NullPointerException if key is null. + * * @since 1.4 */ public static boolean getBoolean(Object key) { - Boolean value = (Boolean) get(key); - return value != null ? value.booleanValue() : false; + Object value = get(key); + if (value instanceof Boolean) + return ((Boolean) value).booleanValue(); + return false; } /** - * Returns a boolean value from the defaults table, - * false if key is not present. + * Returns a boolean value from the defaults table. If there is no value + * for the specified key, or the value is not an instance of {@link Boolean}, + * this method returns false. + * + * @param key the key (null not permitted). + * @param locale the locale. * + * @return The boolean value associated with the specified key. + * + * @throws NullPointerException if key is null. + * * @since 1.4 */ public static boolean getBoolean(Object key, Locale locale) { - Boolean value = (Boolean) get(key, locale); - return value != null ? value.booleanValue() : false; + Object value = get(key, locale); + if (value instanceof Boolean) + return ((Boolean) value).booleanValue(); + return false; } /** * Returns a border from the defaults table. + * + * @param key the key (null not permitted). + * + * @return The border associated with the given key, or null. + * + * @throws NullPointerException if key is null. */ public static Border getBorder(Object key) { - return (Border) get(key); + Object value = get(key); + if (value instanceof Border) + return (Border) value; + return null; } /** - * Returns a border from the defaults table. + * Returns a border from the defaults table. + * + * @param key the key (null not permitted). + * @param locale the locale. + * + * @return The border associated with the given key, or null. + * + * @throws NullPointerException if key is null. * * @since 1.4 */ public static Border getBorder(Object key, Locale locale) { - return (Border) get(key, locale); + Object value = get(key, locale); + if (value instanceof Border) + return (Border) value; + return null; } /** * Returns a drawing color from the defaults table. + * + * @param key the key (null not permitted). + * + * @return The color associated with the given key, or null. + * + * @throws NullPointerException if key is null. */ public static Color getColor(Object key) { - return (Color) get(key); + Object value = get(key); + if (value instanceof Color) + return (Color) value; + return null; } /** * Returns a drawing color from the defaults table. + * + * @param key the key (null not permitted). + * @param locale the locale. + * + * @return The color associated with the given key, or null. + * + * @throws NullPointerException if key is null. + * + * @since 1.4 */ public static Color getColor(Object key, Locale locale) { - return (Color) get(key); + Object value = get(key, locale); + if (value instanceof Color) + return (Color) value; + return null; } /** @@ -483,24 +552,44 @@ public class UIManager implements Serializable public static UIDefaults getDefaults() { if (currentUIDefaults == null) - currentUIDefaults = new MultiplexUIDefaults(null); + currentUIDefaults = new MultiplexUIDefaults(new UIDefaults()); return currentUIDefaults; } /** * Returns a dimension from the defaults table. + * + * @param key the key (null not permitted). + * + * @return The color associated with the given key, or null. + * + * @throws NullPointerException if key is null. */ public static Dimension getDimension(Object key) { - return (Dimension) get(key); + Object value = get(key); + if (value instanceof Dimension) + return (Dimension) value; + return null; } /** * Returns a dimension from the defaults table. + * + * @param key the key (null not permitted). + * @param locale the locale. + * + * @return The color associated with the given key, or null. + * + * @throws NullPointerException if key is null. + * @since 1.4 */ public static Dimension getDimension(Object key, Locale locale) { - return (Dimension) get(key, locale); + Object value = get(key, locale); + if (value instanceof Dimension) + return (Dimension) value; + return null; } /** @@ -510,10 +599,17 @@ public class UIManager implements Serializable * @param key an Object that specifies the font. Typically, * this is a String such as * TitledBorder.font. + * + * @return The font associated with the given key, or null. + * + * @throws NullPointerException if key is null. */ public static Font getFont(Object key) { - return (Font) get(key); + Object value = get(key); + if (value instanceof Font) + return (Font) value; + return null; } /** @@ -523,30 +619,66 @@ public class UIManager implements Serializable * @param key an Object that specifies the font. Typically, * this is a String such as * TitledBorder.font. + * @param locale the locale. + * + * @return The font associated with the given key, or null. + * + * @throws NullPointerException if key is null. + * + * @since 1.4 */ public static Font getFont(Object key, Locale locale) { - return (Font) get(key, locale); + Object value = get(key, locale); + if (value instanceof Font) + return (Font) value; + return null; } /** - * Returns an Icon from the defaults table. + * Returns an icon from the defaults table. + * + * @param key the key (null not permitted). + * + * @return The icon associated with the given key, or null. + * + * @throws NullPointerException if key is null. */ public static Icon getIcon(Object key) { - return (Icon) get(key); + Object value = get(key); + if (value instanceof Icon) + return (Icon) value; + return null; } /** - * Returns an Icon from the defaults table. + * Returns an icon from the defaults table. + * + * @param key the key (null not permitted). + * @param locale the locale. + * + * @return The icon associated with the given key, or null. + * + * @throws NullPointerException if key is null. + * @since 1.4 */ public static Icon getIcon(Object key, Locale locale) { - return (Icon) get(key, locale); + Object value = get(key, locale); + if (value instanceof Icon) + return (Icon) value; + return null; } /** * Returns an Insets object from the defaults table. + * + * @param key the key (null not permitted). + * + * @return The insets associated with the given key, or null. + * + * @throws NullPointerException if key is null. */ public static Insets getInsets(Object key) { @@ -559,6 +691,14 @@ public class UIManager implements Serializable /** * Returns an Insets object from the defaults table. + * + * @param key the key (null not permitted). + * @param locale the locale. + * + * @return The insets associated with the given key, or null. + * + * @throws NullPointerException if key is null. + * @since 1.4 */ public static Insets getInsets(Object key, Locale locale) { @@ -580,20 +720,41 @@ public class UIManager implements Serializable return installed; } + /** + * Returns the integer value of the {@link Integer} associated with the + * given key. If there is no value, or the value is not an instance of + * {@link Integer}, this method returns 0. + * + * @param key the key (null not permitted). + * + * @return The integer value associated with the given key, or 0. + */ public static int getInt(Object key) { - Integer x = (Integer) get(key); - if (x == null) - return 0; - return x.intValue(); + Object x = get(key); + if (x instanceof Integer) + return ((Integer) x).intValue(); + return 0; } + /** + * Returns the integer value of the {@link Integer} associated with the + * given key. If there is no value, or the value is not an instance of + * {@link Integer}, this method returns 0. + * + * @param key the key (null not permitted). + * @param locale the locale. + * + * @return The integer value associated with the given key, or 0. + * + * @since 1.4 + */ public static int getInt(Object key, Locale locale) { - Integer x = (Integer) get(key, locale); - if (x == null) - return 0; - return x.intValue(); + Object x = get(key, locale); + if (x instanceof Integer) + return ((Integer) x).intValue(); + return 0; } /** @@ -620,19 +781,38 @@ public class UIManager implements Serializable } /** - * Returns a string from the defaults table. + * Returns the {@link String} associated with the given key. If the value + * is not a {@link String}, this method returns null. + * + * @param key the key (null not permitted). + * + * @return The string associated with the given key, or null. */ public static String getString(Object key) { - return (String) get(key); + Object s = get(key); + if (s instanceof String) + return (String) s; + return null; } /** - * Returns a string from the defaults table. + * Returns the {@link String} associated with the given key. If the value + * is not a {@link String}, this method returns null. + * + * @param key the key (null not permitted). + * @param locale the locale. + * + * @return The string associated with the given key, or null. + * + * @since 1.4 */ public static String getString(Object key, Locale locale) { - return (String) get(key, locale); + Object s = get(key, locale); + if (s instanceof String) + return (String) s; + return null; } /** @@ -686,6 +866,9 @@ public class UIManager implements Serializable /** * Stores an object in the defaults table. + * + * @param key the key. + * @param value the value. */ public static Object put(Object key, Object value) { diff --git a/libjava/classpath/javax/swing/border/CompoundBorder.java b/libjava/classpath/javax/swing/border/CompoundBorder.java index 2ee639cf9a3..ba2e745aab5 100644 --- a/libjava/classpath/javax/swing/border/CompoundBorder.java +++ b/libjava/classpath/javax/swing/border/CompoundBorder.java @@ -115,15 +115,24 @@ public class CompoundBorder extends AbstractBorder */ public boolean isBorderOpaque() { - // While it would be safe to assume true for the opacity of - // a null border, this behavior would not be according to - // the API specification. Also, it is pathological to have - // null borders anyway. - if ((insideBorder == null) || (outsideBorder == null)) - return false; - - return insideBorder.isBorderOpaque() - && outsideBorder.isBorderOpaque(); + // Although the API specification states that this method + // returns true if both the inside and outside borders are non-null + // and opaque, and false otherwise, a mauve test shows that if both + // the inside or outside borders are null, then true is returned. + if ((insideBorder == null) && (outsideBorder == null)) + return true; + + // A mauve test shows that if the inside border has a null value, + // then true is returned if the outside border is opaque; if the + // outside border has a null value, then true is returned if the + // inside border is opaque; else, true is returned if both the + // inside and outside borders are opaque. + if (insideBorder == null) + return outsideBorder.isBorderOpaque(); + else if (outsideBorder == null) + return insideBorder.isBorderOpaque(); + else + return insideBorder.isBorderOpaque() && outsideBorder.isBorderOpaque(); } /** diff --git a/libjava/classpath/javax/swing/event/EventListenerList.java b/libjava/classpath/javax/swing/event/EventListenerList.java index bde8b3c7e4f..1568039f0ff 100644 --- a/libjava/classpath/javax/swing/event/EventListenerList.java +++ b/libjava/classpath/javax/swing/event/EventListenerList.java @@ -37,6 +37,9 @@ exception statement from your version. */ package javax.swing.event; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.Serializable; import java.lang.reflect.Array; import java.util.EventListener; @@ -136,7 +139,7 @@ public class EventListenerList * * @throws NullPointerException if t is null. */ - public void add(Class t, EventListener listener) + public void add(Class t, T listener) { int oldLength; Object[] newList; @@ -175,7 +178,7 @@ public class EventListenerList * t. Thus, subclasses of t will not be * counted. */ - public int getListenerCount(Class t) + public int getListenerCount(Class t) { int result = 0; for (int i = 0; i < listenerList.length; i += 2) @@ -224,7 +227,7 @@ public class EventListenerList * * @since 1.3 */ - public EventListener[] getListeners(Class c) + public T[] getListeners(Class c) { int count, f; EventListener[] result; @@ -236,7 +239,7 @@ public class EventListenerList if (listenerList[i] == c) result[f++] = (EventListener) listenerList[i + 1]; - return result; + return (T[]) result; } @@ -253,7 +256,7 @@ public class EventListenerList * * @throws NullPointerException if t is null. */ - public void remove(Class t, EventListener listener) + public void remove(Class t, T listener) { Object[] oldList, newList; int oldLength; @@ -304,4 +307,51 @@ public class EventListenerList } return buf.toString(); } + + /** + * Serializes an instance to an ObjectOutputStream. + * + * @param out the stream to serialize to + * + * @throws IOException if something goes wrong + */ + private void writeObject(ObjectOutputStream out) + throws IOException + { + out.defaultWriteObject(); + for (int i = 0; i < listenerList.length; i += 2) + { + Class cl = (Class) listenerList[i]; + EventListener l = (EventListener) listenerList[i + 1]; + if (l != null && l instanceof Serializable) + { + out.writeObject(cl.getName()); + out.writeObject(l); + } + } + // Write end marker. + out.writeObject(null); + } + + /** + * Deserializes an instance from an ObjectInputStream. + * + * @param in the input stream + * + * @throws ClassNotFoundException if a serialized class can't be found + * @throws IOException if something goes wrong + */ + private void readObject(ObjectInputStream in) + throws ClassNotFoundException, IOException + { + listenerList = NO_LISTENERS; + in.defaultReadObject(); + Object type; + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + while ((type = in.readObject()) != null) + { + EventListener l = (EventListener) in.readObject(); + add(((Class) Class.forName((String) type, true, cl)), (T) l); + } + } } diff --git a/libjava/classpath/javax/swing/filechooser/FileSystemView.java b/libjava/classpath/javax/swing/filechooser/FileSystemView.java index 84b80dd402c..41d865a964b 100644 --- a/libjava/classpath/javax/swing/filechooser/FileSystemView.java +++ b/libjava/classpath/javax/swing/filechooser/FileSystemView.java @@ -172,13 +172,8 @@ public abstract class FileSystemView { if (defaultFileSystemView == null) { - if (File.separator.equals("/")) - defaultFileSystemView = new UnixFileSystemView(); - // FIXME: need to implement additional views - // else if (File.Separator.equals("\")) - // return new Win32FileSystemView(); - // else - // return new GenericFileSystemView(); + // FIXME: We need to support other file systems too. + defaultFileSystemView = new UnixFileSystemView(); } return defaultFileSystemView; } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java b/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java index 84895821518..c99de2c708c 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicButtonListener.java @@ -54,15 +54,79 @@ import java.beans.PropertyChangeListener; import javax.swing.AbstractAction; import javax.swing.AbstractButton; +import javax.swing.Action; +import javax.swing.ActionMap; import javax.swing.ButtonModel; +import javax.swing.InputMap; import javax.swing.JComponent; import javax.swing.SwingUtilities; +import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.swing.plaf.ActionMapUIResource; +import javax.swing.plaf.ButtonUI; -public class BasicButtonListener implements MouseListener, MouseMotionListener, - FocusListener, ChangeListener, PropertyChangeListener +public class BasicButtonListener + implements MouseListener, MouseMotionListener, FocusListener, ChangeListener, + PropertyChangeListener { + /** + * Implements the keyboard action for Swing buttons. + */ + private class ButtonAction + extends AbstractAction + { + /** + * The key for pressed action. + */ + static final String PRESSED = "pressed"; + + /** + * The key for released action. + */ + static final String RELEASED = "released"; + + /** + * Performs the action. + */ + public void actionPerformed(ActionEvent event) + { + Object cmd = getValue("__command__"); + AbstractButton b = (AbstractButton) event.getSource(); + ButtonModel m = b.getModel(); + if (PRESSED.equals(cmd)) + { + m.setArmed(true); + m.setPressed(true); + if (! b.isFocusOwner()) + b.requestFocus(); + } + else if (RELEASED.equals(cmd)) + { + m.setPressed(false); + m.setArmed(false); + } + } + + /** + * Indicates if this action is enabled. + * + * @param source the source of the action + * + * @return true when enabled, false otherwise + */ + public boolean isEnabled(Object source) + { + boolean enabled = true; + if (source instanceof AbstractButton) + { + AbstractButton b = (AbstractButton) source; + enabled = b.isEnabled(); + } + return enabled; + } + } + public BasicButtonListener(AbstractButton b) { // Do nothing here. @@ -73,12 +137,12 @@ public class BasicButtonListener implements MouseListener, MouseMotionListener, // Store the TextLayout for this in a client property for speed-up // painting of the label. String property = e.getPropertyName(); + AbstractButton b = (AbstractButton) e.getSource(); if ((property.equals(AbstractButton.TEXT_CHANGED_PROPERTY) || property.equals("font")) && SystemProperties.getProperty("gnu.javax.swing.noGraphics2D") == null) { - AbstractButton b = (AbstractButton) e.getSource(); String text = b.getText(); if (text == null) text = ""; @@ -86,12 +150,25 @@ public class BasicButtonListener implements MouseListener, MouseMotionListener, false, false); TextLayout layout = new TextLayout(text, b.getFont(), frc); b.putClientProperty(BasicGraphicsUtils.CACHED_TEXT_LAYOUT, layout); + + // Update HTML renderer. + BasicHTML.updateRenderer(b, b.getText()); + } + else if (property.equals(AbstractButton.CONTENT_AREA_FILLED_CHANGED_PROPERTY)) + { + checkOpacity(b); } } - + + /** + * Checks the contentAreaFilled property and updates the + * opaque property of the button. + * + * @param b the button to check + */ protected void checkOpacity(AbstractButton b) { - // TODO: What should be done here? + b.setOpaque(b.isContentAreaFilled()); } public void focusGained(FocusEvent e) @@ -116,6 +193,26 @@ public class BasicButtonListener implements MouseListener, MouseMotionListener, public void installKeyboardActions(JComponent c) { + ButtonUI ui = ((AbstractButton) c).getUI(); + if (ui instanceof BasicButtonUI) + { + // Install InputMap. + BasicButtonUI basicUI = (BasicButtonUI) ui; + String prefix = basicUI.getPropertyPrefix(); + InputMap focusInputMap = + (InputMap) UIManager.get(prefix + "focusInputMap"); + SwingUtilities.replaceUIInputMap(c, JComponent.WHEN_FOCUSED, + focusInputMap); + + ActionMap am = (ActionMap) UIManager.get(prefix + "actionMap"); + if (am == null) + { + am = createDefaultActionMap(); + UIManager.put(prefix + "actionMap", am); + } + SwingUtilities.replaceUIActionMap(c, am); + } + c.getActionMap().put("pressed", new AbstractAction() { @@ -142,31 +239,46 @@ public class BasicButtonListener implements MouseListener, MouseMotionListener, } }); } - + + /** + * Creates and returns the default action map for Swing buttons. + * + * @return the default action map for Swing buttons + */ + private ActionMap createDefaultActionMap() + { + Action action = new ButtonAction(); + ActionMapUIResource am = new ActionMapUIResource(); + am.put(ButtonAction.PRESSED, action); + am.put(ButtonAction.RELEASED, action); + return am; + } + public void uninstallKeyboardActions(JComponent c) { - c.getActionMap().put("pressed", null); - c.getActionMap().put("released", null); + SwingUtilities.replaceUIActionMap(c, null); + SwingUtilities.replaceUIInputMap(c, JComponent.WHEN_FOCUSED, null); } public void stateChanged(ChangeEvent e) { - // TODO: What should be done here, if anything? + // Need to repaint when the button state changes. + ((AbstractButton) e.getSource()).repaint(); } public void mouseMoved(MouseEvent e) { - // TODO: What should be done here, if anything? + // Nothing to do here. } public void mouseDragged(MouseEvent e) { - // TODO: What should be done here, if anything? + // Nothing to do here. } public void mouseClicked(MouseEvent e) { - // TODO: What should be done here, if anything? + // Nothing to do here. } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java index d531133ba26..9f685bb7bfd 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicButtonUI.java @@ -42,12 +42,14 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; +import java.awt.Insets; import java.awt.Rectangle; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.Icon; -import javax.swing.InputMap; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.LookAndFeel; @@ -56,6 +58,7 @@ import javax.swing.UIManager; import javax.swing.plaf.ButtonUI; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; +import javax.swing.text.View; /** * A UI delegate for the {@link JButton} component. @@ -63,6 +66,39 @@ import javax.swing.plaf.UIResource; public class BasicButtonUI extends ButtonUI { /** + * Cached rectangle for layouting the label. Used in paint() and + * BasicGraphicsUtils.getPreferredButtonSize(). + */ + static Rectangle viewR = new Rectangle(); + + /** + * Cached rectangle for layouting the label. Used in paint() and + * BasicGraphicsUtils.getPreferredButtonSize(). + */ + static Rectangle iconR = new Rectangle(); + + /** + * Cached rectangle for layouting the label. Used in paint() and + * BasicGraphicsUtils.getPreferredButtonSize(). + */ + static Rectangle textR = new Rectangle(); + + /** + * Cached Insets instance, used in paint(). + */ + static Insets cachedInsets; + + /** + * The shared button UI. + */ + private static BasicButtonUI sharedUI; + + /** + * The shared BasicButtonListener. + */ + private static BasicButtonListener sharedListener; + + /** * A constant used to pad out elements in the button's layout and * preferred size calculations. */ @@ -86,7 +122,9 @@ public class BasicButtonUI extends ButtonUI */ public static ComponentUI createUI(final JComponent c) { - return new BasicButtonUI(); + if (sharedUI == null) + sharedUI = new BasicButtonUI(); + return sharedUI; } /** @@ -153,14 +191,29 @@ public class BasicButtonUI extends ButtonUI protected void installDefaults(AbstractButton b) { String prefix = getPropertyPrefix(); + // Install colors and font. LookAndFeel.installColorsAndFont(b, prefix + "background", prefix + "foreground", prefix + "font"); + // Install border. LookAndFeel.installBorder(b, prefix + "border"); + + // Install margin property. if (b.getMargin() == null || b.getMargin() instanceof UIResource) b.setMargin(UIManager.getInsets(prefix + "margin")); - b.setIconTextGap(UIManager.getInt(prefix + "textIconGap")); - b.setInputMap(JComponent.WHEN_FOCUSED, - (InputMap) UIManager.get(prefix + "focusInputMap")); + + // Install rollover property. + Object rollover = UIManager.get(prefix + "rollover"); + if (rollover != null) + LookAndFeel.installProperty(b, "rolloverEnabled", rollover); + + // Fetch default textShiftOffset. + defaultTextShiftOffset = UIManager.getInt(prefix + "textShiftOffset"); + + // Make button opaque if needed. + if (b.isContentAreaFilled()) + LookAndFeel.installProperty(b, "opaque", Boolean.TRUE); + else + LookAndFeel.installProperty(b, "opaque", Boolean.FALSE); } /** @@ -170,21 +223,10 @@ public class BasicButtonUI extends ButtonUI */ protected void uninstallDefaults(AbstractButton b) { - if (b.getFont() instanceof UIResource) - b.setFont(null); - if (b.getForeground() instanceof UIResource) - b.setForeground(null); - if (b.getBackground() instanceof UIResource) - b.setBackground(null); - if (b.getBorder() instanceof UIResource) - b.setBorder(null); - b.setIconTextGap(defaultTextIconGap); - if (b.getMargin() instanceof UIResource) - b.setMargin(null); + // The other properties aren't uninstallable. + LookAndFeel.uninstallBorder(b); } - protected BasicButtonListener listener; - /** * Creates and returns a new instance of {@link BasicButtonListener}. This * method provides a hook to make it easy for subclasses to install a @@ -196,7 +238,13 @@ public class BasicButtonUI extends ButtonUI */ protected BasicButtonListener createButtonListener(AbstractButton b) { - return new BasicButtonListener(b); + // Note: The RI always returns a new instance here. However, + // the BasicButtonListener class is perfectly suitable to be shared + // between multiple buttons, so we return a shared instance here + // for efficiency. + if (sharedListener == null) + sharedListener = new BasicButtonListener(b); + return sharedListener; } /** @@ -206,12 +254,19 @@ public class BasicButtonUI extends ButtonUI */ protected void installListeners(AbstractButton b) { - listener = createButtonListener(b); - b.addChangeListener(listener); - b.addPropertyChangeListener(listener); - b.addFocusListener(listener); - b.addMouseListener(listener); - b.addMouseMotionListener(listener); + BasicButtonListener listener = createButtonListener(b); + if (listener != null) + { + b.addChangeListener(listener); + b.addPropertyChangeListener(listener); + b.addFocusListener(listener); + b.addMouseListener(listener); + b.addMouseMotionListener(listener); + } + // Fire synthetic property change event to let the listener update + // the TextLayout cache. + listener.propertyChange(new PropertyChangeEvent(b, "font", null, + b.getFont())); } /** @@ -221,21 +276,29 @@ public class BasicButtonUI extends ButtonUI */ protected void uninstallListeners(AbstractButton b) { - b.removeChangeListener(listener); - b.removePropertyChangeListener(listener); - b.removeFocusListener(listener); - b.removeMouseListener(listener); - b.removeMouseMotionListener(listener); + BasicButtonListener listener = getButtonListener(b); + if (listener != null) + { + b.removeChangeListener(listener); + b.removePropertyChangeListener(listener); + b.removeFocusListener(listener); + b.removeMouseListener(listener); + b.removeMouseMotionListener(listener); + } } protected void installKeyboardActions(AbstractButton b) { - listener.installKeyboardActions(b); + BasicButtonListener listener = getButtonListener(b); + if (listener != null) + listener.installKeyboardActions(b); } protected void uninstallKeyboardActions(AbstractButton b) { - listener.uninstallKeyboardActions(b); + BasicButtonListener listener = getButtonListener(b); + if (listener != null) + listener.uninstallKeyboardActions(b); } /** @@ -253,9 +316,75 @@ public class BasicButtonUI extends ButtonUI { AbstractButton b = (AbstractButton) c; installDefaults(b); + // It is important to install the listeners before installing + // the keyboard actions, because the keyboard actions + // are actually installed on the listener instance. installListeners(b); installKeyboardActions(b); + BasicHTML.updateRenderer(b, b.getText()); + } + } + + /** + * Uninstalls the UI from the component. + * + * @param c the component from which to uninstall the UI + */ + public void uninstallUI(JComponent c) + { + if (c instanceof AbstractButton) + { + AbstractButton b = (AbstractButton) c; + uninstallKeyboardActions(b); + uninstallListeners(b); + uninstallDefaults(b); + BasicHTML.updateRenderer(b, ""); + b.putClientProperty(BasicGraphicsUtils.CACHED_TEXT_LAYOUT, null); + } + } + + /** + * Calculates the minimum size for the specified component. + * + * @param c the component for which to compute the minimum size + * + * @return the minimum size for the specified component + */ + public Dimension getMinimumSize(JComponent c) + { + Dimension size = getPreferredSize(c); + // When the HTML view has a minimum width different from the preferred + // width, then substract this here accordingly. The height is not + // affected by that. + View html = (View) c.getClientProperty(BasicHTML.propertyKey); + if (html != null) + { + size.width -= html.getPreferredSpan(View.X_AXIS) + - html.getPreferredSpan(View.X_AXIS); } + return size; + } + + /** + * Calculates the maximum size for the specified component. + * + * @param c the component for which to compute the maximum size + * + * @return the maximum size for the specified component + */ + public Dimension getMaximumSize(JComponent c) + { + Dimension size = getPreferredSize(c); + // When the HTML view has a maximum width different from the preferred + // width, then add this here accordingly. The height is not + // affected by that. + View html = (View) c.getClientProperty(BasicHTML.propertyKey); + if (html != null) + { + size.width += html.getMaximumSpan(View.X_AXIS) + - html.getPreferredSpan(View.X_AXIS); + } + return size; } /** @@ -269,8 +398,8 @@ public class BasicButtonUI extends ButtonUI public Dimension getPreferredSize(JComponent c) { AbstractButton b = (AbstractButton) c; - Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, - defaultTextIconGap + defaultTextShiftOffset); + Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, + b.getIconTextGap()); return d; } @@ -315,38 +444,50 @@ public class BasicButtonUI extends ButtonUI { AbstractButton b = (AbstractButton) c; - Rectangle tr = new Rectangle(); - Rectangle ir = new Rectangle(); - Rectangle vr = new Rectangle(); + Insets i = c.getInsets(cachedInsets); + viewR.x = i.left; + viewR.y = i.top; + viewR.width = c.getWidth() - i.left - i.right; + viewR.height = c.getHeight() - i.top - i.bottom; + textR.x = 0; + textR.y = 0; + textR.width = 0; + textR.height = 0; + iconR.x = 0; + iconR.y = 0; + iconR.width = 0; + iconR.height = 0; Font f = c.getFont(); - g.setFont(f); + Icon icon = b.getIcon(); + String text = b.getText(); + text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), + text, icon, + b.getVerticalAlignment(), + b.getHorizontalAlignment(), + b.getVerticalTextPosition(), + b.getHorizontalTextPosition(), + viewR, iconR, textR, + text == null ? 0 + : b.getIconTextGap()); - if (b.isBorderPainted()) - SwingUtilities.calculateInnerArea(b, vr); - else - vr = SwingUtilities.getLocalBounds(b); - String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), - b.getText(), - currentIcon(b), - b.getVerticalAlignment(), - b.getHorizontalAlignment(), - b.getVerticalTextPosition(), - b.getHorizontalTextPosition(), - vr, ir, tr, - b.getIconTextGap() - + defaultTextShiftOffset); - - if ((b.getModel().isArmed() && b.getModel().isPressed()) - || b.isSelected()) + ButtonModel model = b.getModel(); + if (model.isArmed() && model.isPressed()) paintButtonPressed(g, b); - - paintIcon(g, c, ir); + + if (icon != null) + paintIcon(g, c, iconR); if (text != null) - paintText(g, b, tr, text); + { + View html = (View) b.getClientProperty(BasicHTML.propertyKey); + if (html != null) + html.paint(g, textR); + else + paintText(g, b, textR, text); + } if (b.isFocusOwner() && b.isFocusPainted()) - paintFocus(g, b, vr, tr, ir); + paintFocus(g, b, viewR, textR, iconR); } /** @@ -386,7 +527,16 @@ public class BasicButtonUI extends ButtonUI Icon i = currentIcon(b); if (i != null) - i.paintIcon(c, g, iconRect.x, iconRect.y); + { + ButtonModel m = b.getModel(); + if (m.isPressed() && m.isArmed()) + { + int offs = getTextShiftOffset(); + i.paintIcon(c, g, iconRect.x + offs, iconRect.y + offs); + } + else + i.paintIcon(c, g, iconRect.x, iconRect.y); + } } /** @@ -419,22 +569,7 @@ public class BasicButtonUI extends ButtonUI protected void paintText(Graphics g, JComponent c, Rectangle textRect, String text) { - paintText(g, (AbstractButton) c, textRect, text); - } - - /** - * Paints the "text" property of an {@link AbstractButton}. - * - * @param g The graphics context to paint with - * @param b The button to paint the state of - * @param textRect The area in which to paint the text - * @param text The text to paint - * - * @since 1.4 - */ - protected void paintText(Graphics g, AbstractButton b, Rectangle textRect, - String text) - { + AbstractButton b = (AbstractButton) c; Font f = b.getFont(); g.setFont(f); FontMetrics fm = g.getFontMetrics(f); @@ -454,5 +589,48 @@ public class BasicButtonUI extends ButtonUI BasicGraphicsUtils.drawString(b, g, text, -1, textRect.x, textRect.y + fm.getAscent()); } + } + + /** + * Paints the "text" property of an {@link AbstractButton}. + * + * @param g The graphics context to paint with + * @param b The button to paint the state of + * @param textRect The area in which to paint the text + * @param text The text to paint + * + * @since 1.4 + */ + protected void paintText(Graphics g, AbstractButton b, Rectangle textRect, + String text) + { + paintText(g, (JComponent) b, textRect, text); } + + /** + * A helper method that finds the BasicButtonListener for the specified + * button. This is there because this UI class is stateless and + * shared for all buttons, and thus can't store the listener + * as instance field. (We store our shared instance in sharedListener, + * however, subclasses may override createButtonListener() and we would + * be lost in this case). + * + * @param b the button + * + * @return the UI event listener + */ + private BasicButtonListener getButtonListener(AbstractButton b) + { + // The listener gets installed as PropertyChangeListener, + // so look for it in the list of property change listeners. + PropertyChangeListener[] listeners = b.getPropertyChangeListeners(); + BasicButtonListener l = null; + for (int i = 0; listeners != null && l == null && i < listeners.length; + i++) + { + if (listeners[i] instanceof BasicButtonListener) + l = (BasicButtonListener) listeners[i]; + } + return l; + } } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java b/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java index ed916cb5f1a..de82bd47bb6 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java @@ -381,7 +381,7 @@ public class BasicDirectoryModel extends AbstractListModel * * @return a Vector */ - public Vector getDirectories() + public Vector getDirectories() { // Synchronize this with the UpdateSwingRequest for the case when // contents is modified. @@ -418,7 +418,7 @@ public class BasicDirectoryModel extends AbstractListModel * * @return a Vector */ - public Vector getFiles() + public Vector getFiles() { synchronized (contents) { @@ -562,7 +562,7 @@ public class BasicDirectoryModel extends AbstractListModel * * @param v The Vector to sort. */ - protected void sort(Vector v) + protected void sort(Vector v) { Collections.sort(v, comparator); } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java index dc1c051225c..e1f8e4b28ba 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java @@ -183,7 +183,7 @@ public class BasicFileChooserUI extends FileChooserUI protected class BasicFileView extends FileView { /** Storage for cached icons. */ - protected Hashtable iconCache = new Hashtable(); + protected Hashtable iconCache = new Hashtable(); /** * Creates a new instance. @@ -444,10 +444,10 @@ public class BasicFileChooserUI extends FileChooserUI setDirectory(null); } lastSelected = path; - parentPath = path.substring(0, path.lastIndexOf("/") + 1); + parentPath = f.getParent(); if (f.isFile()) - setFileName(path.substring(path.lastIndexOf("/") + 1)); + setFileName(f.getName()); else if (filechooser.getFileSelectionMode() != JFileChooser.FILES_ONLY) setFileName(path); @@ -827,9 +827,9 @@ public class BasicFileChooserUI extends FileChooserUI installComponents(fc); installListeners(fc); - Object path = filechooser.getCurrentDirectory(); + File path = filechooser.getCurrentDirectory(); if (path != null) - parentPath = path.toString().substring(path.toString().lastIndexOf("/")); + parentPath = path.getParent(); } } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java b/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java index 1e84be93282..4c270682d88 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java @@ -748,7 +748,6 @@ public class BasicGraphicsUtils } } - /** * Determines the preferred width and height of an AbstractButton, * given the gap between the button’s text and icon. @@ -769,24 +768,31 @@ public class BasicGraphicsUtils public static Dimension getPreferredButtonSize(AbstractButton b, int textIconGap) { - Rectangle contentRect; - Rectangle viewRect; - Rectangle iconRect = new Rectangle(); - Rectangle textRect = new Rectangle(); - Insets insets = b.getInsets(); - - viewRect = new Rectangle(); - - /* java.awt.Toolkit.getFontMetrics is deprecated. However, it - * seems not obvious how to get to the correct FontMetrics object - * otherwise. The real problem probably is that the method - * javax.swing.SwingUtilities.layoutCompundLabel should take a - * LineMetrics, not a FontMetrics argument. But fixing this that - * would change the public API. - */ + // These cached rectangles are use here and in BasicButtonUI.paint(), + // so these two methods must never be executed concurrently. Maybe + // we must use other Rectangle instances here. OTOH, Swing is + // designed to be not thread safe, and every layout and paint operation + // should be performed from the EventDispatchThread, so it _should_ be + // OK to do this optimization. + Rectangle viewRect = BasicButtonUI.viewR; + viewRect.x = 0; + viewRect.y = 0; + viewRect.width = Short.MAX_VALUE; + viewRect.height = Short.MAX_VALUE; + Rectangle iconRect = BasicButtonUI.iconR; + iconRect.x = 0; + iconRect.y = 0; + iconRect.width = 0; + iconRect.height = 0; + Rectangle textRect = BasicButtonUI.textR; + textRect.x = 0; + textRect.y = 0; + textRect.width = 0; + textRect.height = 0; + SwingUtilities.layoutCompoundLabel( b, // for the component orientation - b.getToolkit().getFontMetrics(b.getFont()), // see comment above + b.getFontMetrics(b.getFont()), // see comment above b.getText(), b.getIcon(), b.getVerticalAlignment(), @@ -804,13 +810,12 @@ public class BasicGraphicsUtils * +------------------------+ +------------------------+ */ - contentRect = textRect.union(iconRect); - - return new Dimension(insets.left - + contentRect.width - + insets.right + b.getHorizontalAlignment(), - insets.top - + contentRect.height - + insets.bottom); + Rectangle contentRect = + SwingUtilities.computeUnion(textRect.x, textRect.y, textRect.width, + textRect.height, iconRect); + + Insets insets = b.getInsets(); + return new Dimension(insets.left + contentRect.width + insets.right, + insets.top + contentRect.height + insets.bottom); } } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java b/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java index 98c9cb277f4..6e26d5355a2 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java @@ -48,6 +48,7 @@ import java.io.StringReader; import javax.swing.JComponent; import javax.swing.SwingConstants; import javax.swing.event.DocumentEvent; +import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.EditorKit; @@ -107,6 +108,7 @@ public class BasicHTML editorKit = kit; document = doc; setView(view); + setSize(view.getPreferredSpan(X_AXIS), view.getPreferredSpan(Y_AXIS)); } /** @@ -151,6 +153,14 @@ public class BasicHTML } /** + * Overridden to forward to real view. + */ + public void setSize(float w, float h) + { + view.setSize(w, h); + } + + /** * Returns the real root view, regardless of the index. * * @param index not used here @@ -346,6 +356,22 @@ public class BasicHTML { return document; } + + /** + * Overridden to return null, as a RootView has no attributes on its own. + */ + public AttributeSet getAttributes() + { + return null; + } + + /** + * Overridden to provide an element for the view. + */ + public Element getElement() + { + return view.getElement(); + } } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java b/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java index 11980f6ca2e..ea8b4603691 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java @@ -177,9 +177,15 @@ public class BasicInternalFrameTitlePane extends JComponent try { if (frame.isMaximizable() && ! frame.isMaximum()) - frame.setMaximum(true); + { + frame.setMaximum(true); + maxButton.setIcon(minIcon); + } else if (frame.isMaximum()) - frame.setMaximum(false); + { + frame.setMaximum(false); + maxButton.setIcon(maxIcon); + } } catch (PropertyVetoException pve) { diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java index 8f2181336cb..87c5268c8c7 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java @@ -459,18 +459,12 @@ public class BasicInternalFrameUI extends InternalFrameUI { if (frame.isMaximum()) { - JDesktopPane pane = (JDesktopPane) e.getSource(); - Insets insets = pane.getInsets(); - Rectangle bounds = pane.getBounds(); - - frame.setBounds(bounds.x + insets.left, bounds.y + insets.top, - bounds.width - insets.left - insets.right, - bounds.height - insets.top - insets.bottom); - frame.revalidate(); - frame.repaint(); + Container parent = frame.getParent(); + Insets i = parent.getInsets(); + int width = parent.getWidth() - i.left - i.right; + int height = parent.getHeight() - i.top - i.bottom; + frame.setBounds(0, 0, width, height); } - - // Sun also resizes the icons. but it doesn't seem to do anything. } /** @@ -949,17 +943,25 @@ public class BasicInternalFrameUI extends InternalFrameUI { if (evt.getNewValue() == Boolean.TRUE) { + Container parent = frame.getParent(); + if (parent != null) + parent.removeComponentListener(componentListener); closeFrame(frame); } } - /* - * FIXME: need to add ancestor properties to JComponents. else if - * (evt.getPropertyName().equals(JComponent.ANCESTOR_PROPERTY)) { if - * (desktopPane != null) - * desktopPane.removeComponentListener(componentListener); desktopPane = - * frame.getDesktopPane(); if (desktopPane != null) - * desktopPane.addComponentListener(componentListener); } - */ + else if (property.equals("ancestor")) + { + Container newParent = (Container) evt.getNewValue(); + Container oldParent = (Container) evt.getOldValue(); + if (newParent != null) + { + newParent.addComponentListener(componentListener); + } + else if (oldParent != null) + { + oldParent.removeComponentListener(componentListener); + } + } } } @@ -1258,6 +1260,12 @@ public class BasicInternalFrameUI extends InternalFrameUI frame.addPropertyChangeListener(propertyChangeListener); frame.getRootPane().getGlassPane().addMouseListener(glassPaneDispatcher); frame.getRootPane().getGlassPane().addMouseMotionListener(glassPaneDispatcher); + + Container parent = frame.getParent(); + if (parent != null) + { + parent.addComponentListener(componentListener); + } } /** @@ -1286,8 +1294,13 @@ public class BasicInternalFrameUI extends InternalFrameUI */ protected void uninstallListeners() { - if (desktopPane != null) - desktopPane.removeComponentListener(componentListener); + + Container parent = frame.getParent(); + if (parent != null) + { + parent.removeComponentListener(componentListener); + } + componentListener = null; frame.getRootPane().getGlassPane().removeMouseMotionListener(glassPaneDispatcher); frame.getRootPane().getGlassPane().removeMouseListener(glassPaneDispatcher); @@ -1298,7 +1311,7 @@ public class BasicInternalFrameUI extends InternalFrameUI frame.removeMouseListener(borderListener); propertyChangeListener = null; - componentListener = null; + borderListener = null; internalFrameListener = null; glassPaneDispatcher = null; @@ -1581,6 +1594,13 @@ public class BasicInternalFrameUI extends InternalFrameUI { replacePane(northPane, c); northPane = c; + // the following is needed to make internal frames draggable when using + // the JGoodies PlasticLookAndFeel, because it overrides the + // createNorthPane() method and doesn't assign anything to the titlePane + // field. It is possible there is another way to make this work, but + // I didn't find it... + if (c instanceof BasicInternalFrameTitlePane) + titlePane = (BasicInternalFrameTitlePane) c; } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java index 304e13ad735..1ec020b1c0b 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java @@ -119,13 +119,37 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener { JLabel lab = (JLabel) c; Insets insets = lab.getInsets(); - FontMetrics fm = lab.getFontMetrics(lab.getFont()); - layoutCL(lab, fm, lab.getText(), lab.getIcon(), vr, ir, tr); - Rectangle cr = SwingUtilities.computeUnion(tr.x, tr.y, tr.width, tr.height, - ir); - return new Dimension(insets.left + cr.width + insets.right, insets.top - + cr.height + insets.bottom); - + int insetsX = insets.left + insets.right; + int insetsY = insets.top + insets.bottom; + Icon icon = lab.getIcon(); + String text = lab.getText(); + Dimension ret; + if (icon == null && text == null) + ret = new Dimension(insetsX, insetsY); + else if (icon != null && text == null) + ret = new Dimension(icon.getIconWidth() + insetsX, + icon.getIconHeight() + insetsY); + else + { + FontMetrics fm = lab.getFontMetrics(lab.getFont()); + ir.x = 0; + ir.y = 0; + ir.width = 0; + ir.height = 0; + tr.x = 0; + tr.y = 0; + tr.width = 0; + tr.height = 0; + vr.x = 0; + vr.y = 0; + vr.width = Short.MAX_VALUE; + vr.height = Short.MAX_VALUE; + layoutCL(lab, fm, text, icon, vr, ir, tr); + Rectangle cr = SwingUtilities.computeUnion(tr.x, tr.y, tr.width, + tr.height, ir); + ret = new Dimension(cr.width + insetsX, cr.height + insetsY); + } + return ret; } /** @@ -166,13 +190,20 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener { JLabel b = (JLabel) c; FontMetrics fm = g.getFontMetrics(); - vr = SwingUtilities.calculateInnerArea(c, vr); - - if (vr.width < 0) - vr.width = 0; - if (vr.height < 0) - vr.height = 0; + Insets i = c.getInsets(); + vr.x = i.left; + vr.y = i.right; + vr.width = c.getWidth() - i.left + i.right; + vr.height = c.getHeight() - i.top + i.bottom; + ir.x = 0; + ir.y = 0; + ir.width = 0; + ir.height = 0; + tr.x = 0; + tr.y = 0; + tr.width = 0; + tr.height = 0; Icon icon = (b.isEnabled()) ? b.getIcon() : b.getDisabledIcon(); String text = layoutCL(b, fm, b.getText(), icon, vr, ir, tr); diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java index 493fc0578e3..befc227364a 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicListUI.java @@ -921,7 +921,7 @@ public class BasicListUI extends ListUI */ protected void maybeUpdateLayoutState() { - if (updateLayoutStateNeeded != 0) + if (updateLayoutStateNeeded != 0 || !list.isValid()) { updateLayoutState(); updateLayoutStateNeeded = 0; diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java b/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java index c056a2403f9..15430945468 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java @@ -1062,8 +1062,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel "ProgressBar.repaintInterval", new Integer(50), "ProgressBar.cycleTime", new Integer(3000), "RadioButton.background", new ColorUIResource(light), - "RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null, - null), + "RadioButton.border", BasicBorders.getRadioButtonBorder(), "RadioButton.darkShadow", new ColorUIResource(shadow), "RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { KeyStroke.getKeyStroke("SPACE"), "pressed", @@ -1183,6 +1182,10 @@ public abstract class BasicLookAndFeel extends LookAndFeel "Slider.thumbHeight", new Integer(20), "Slider.thumbWidth", new Integer(11), "Slider.tickHeight", new Integer(12), + "Slider.horizontalSize", new Dimension(200, 21), + "Slider.verticalSize", new Dimension(21, 200), + "Slider.minimumHorizontalSize", new Dimension(36, 21), + "Slider.minimumVerticalSize", new Dimension(21, 36), "Spinner.background", new ColorUIResource(light), "Spinner.foreground", new ColorUIResource(light), "Spinner.arrowButtonSize", new DimensionUIResource(16, 5), @@ -1218,10 +1221,10 @@ public abstract class BasicLookAndFeel extends LookAndFeel "ctrl UP", "requestFocus", "ctrl KP_UP", "requestFocus" }), - "TabbedPane.background", new ColorUIResource(light), + "TabbedPane.background", new ColorUIResource(192, 192, 192), "TabbedPane.contentBorderInsets", new InsetsUIResource(2, 2, 3, 3), - "TabbedPane.darkShadow", new ColorUIResource(shadow), - "TabbedPane.focus", new ColorUIResource(darkShadow), + "TabbedPane.darkShadow", new ColorUIResource(Color.black), + "TabbedPane.focus", new ColorUIResource(Color.black), "TabbedPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { KeyStroke.getKeyStroke("ctrl DOWN"), "requestFocusForVisibleComponent", KeyStroke.getKeyStroke("KP_UP"), "navigateUp", @@ -1235,17 +1238,16 @@ public abstract class BasicLookAndFeel extends LookAndFeel KeyStroke.getKeyStroke("DOWN"), "navigateDown" }), "TabbedPane.font", new FontUIResource("Dialog", Font.PLAIN, 12), - "TabbedPane.foreground", new ColorUIResource(darkShadow), - "TabbedPane.highlight", new ColorUIResource(highLight), - "TabbedPane.light", new ColorUIResource(highLight), + "TabbedPane.foreground", new ColorUIResource(Color.black), + "TabbedPane.highlight", new ColorUIResource(Color.white), + "TabbedPane.light", new ColorUIResource(192, 192, 192), "TabbedPane.selectedTabPadInsets", new InsetsUIResource(2, 2, 2, 1), - "TabbedPane.shadow", new ColorUIResource(shadow), - "TabbedPane.tabbedPaneContentBorderInsets", new InsetsUIResource(3, 2, 1, 2), - "TabbedPane.tabbedPaneTabPadInsets", new InsetsUIResource(1, 1, 1, 1), + "TabbedPane.shadow", new ColorUIResource(128, 128, 128), "TabbedPane.tabsOpaque", Boolean.TRUE, "TabbedPane.tabAreaInsets", new InsetsUIResource(3, 2, 0, 2), "TabbedPane.tabInsets", new InsetsUIResource(0, 4, 1, 4), "TabbedPane.tabRunOverlay", new Integer(2), + "TabbedPane.tabsOverlapBorder", Boolean.FALSE, "TabbedPane.textIconGap", new Integer(4), "Table.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { "ctrl DOWN", "selectNextRowChangeLead", diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java index bbc08535cdc..5fafb4108b2 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java @@ -180,17 +180,9 @@ public class BasicMenuItemUI extends MenuItemUI private ItemListener itemListener; /** - * Number of spaces between accelerator and menu item's label. + * A PropertyChangeListener to make UI updates after property changes. */ - private int defaultAcceleratorLabelGap = 10; - - /** - * The gap between different menus on the MenuBar. - */ - private int MenuGap = 10; - - /** A PropertyChangeListener to make UI updates after property changes **/ - PropertyChangeHandler propertyChangeListener; + private PropertyChangeHandler propertyChangeListener; /** * The view rectangle used for layout of the menu item. @@ -262,7 +254,6 @@ public class BasicMenuItemUI extends MenuItemUI || property.equals("font")) && SystemProperties.getProperty("gnu.javax.swing.noGraphics2D") == null) - { AbstractButton b = (AbstractButton) e.getSource(); String text = b.getText(); @@ -373,7 +364,7 @@ public class BasicMenuItemUI extends MenuItemUI */ protected void doClick(MenuSelectionManager msm) { - menuItem.doClick(); + menuItem.doClick(0); msm.clearSelectedPath(); } @@ -411,14 +402,10 @@ public class BasicMenuItemUI extends MenuItemUI { ArrayList path = new ArrayList(); - // Path to menu should also include its popup menu. - if (menuItem instanceof JMenu) - path.add(((JMenu) menuItem).getPopupMenu()); - Component c = menuItem; while (c instanceof MenuElement) { - path.add(0, (MenuElement) c); + path.add(0, c); if (c instanceof JPopupMenu) c = ((JPopupMenu) c).getInvoker(); @@ -453,6 +440,7 @@ public class BasicMenuItemUI extends MenuItemUI // Layout the menu item. The result gets stored in the rectangle // fields of this class. + resetRectangles(null); layoutMenuItem(m, accelText); // The union of the text and icon areas is the label area. @@ -606,6 +594,11 @@ public class BasicMenuItemUI extends MenuItemUI menuItem.addMenuKeyListener(menuKeyListener); menuItem.addItemListener(itemListener); menuItem.addPropertyChangeListener(propertyChangeListener); + // Fire synthetic property change event to let the listener update + // the TextLayout cache. + propertyChangeListener.propertyChange(new PropertyChangeEvent(menuItem, + "font", null, + menuItem.getFont())); } /** @@ -704,6 +697,8 @@ public class BasicMenuItemUI extends MenuItemUI // Layout menu item. The result gets stored in the rectangle fields // of this class. + resetRectangles(m); + layoutMenuItem(m, accelText); // Paint the background. @@ -936,6 +931,7 @@ public class BasicMenuItemUI extends MenuItemUI uninstallListeners(); uninstallDefaults(); uninstallComponents(menuItem); + c.putClientProperty(BasicGraphicsUtils.CACHED_TEXT_LAYOUT, null); menuItem = null; } @@ -953,47 +949,6 @@ public class BasicMenuItemUI extends MenuItemUI } /** - * Return text representation of the specified accelerator - * - * @param accelerator - * Accelerator for which to return string representation - * @return $String$ Text representation of the given accelerator - */ - private String getAcceleratorText(KeyStroke accelerator) - { - // convert keystroke into string format - String modifiersText = ""; - int modifiers = accelerator.getModifiers(); - char keyChar = accelerator.getKeyChar(); - int keyCode = accelerator.getKeyCode(); - - if (modifiers != 0) - modifiersText = KeyEvent.getKeyModifiersText(modifiers) - + acceleratorDelimiter; - - if (keyCode == KeyEvent.VK_UNDEFINED) - return modifiersText + keyChar; - else - return modifiersText + KeyEvent.getKeyText(keyCode); - } - - /** - * Calculates and return rectange in which accelerator should be displayed - * - * @param accelerator - * accelerator for which to return the display rectangle - * @param fm - * The font metrics used to measure the text - * @return $Rectangle$ reactangle which will be used to display accelerator - */ - private Rectangle getAcceleratorRect(KeyStroke accelerator, FontMetrics fm) - { - int width = fm.stringWidth(getAcceleratorText(accelerator)); - int height = fm.getHeight(); - return new Rectangle(0, 0, width, height); - } - - /** * This class handles mouse events occuring inside the menu item. Most of the * events are forwarded for processing to MenuSelectionManager of the current * menu hierarchy. @@ -1103,15 +1058,14 @@ public class BasicMenuItemUI extends MenuItemUI */ public void mouseReleased(MouseEvent e) { - Rectangle size = menuItem.getBounds(); MenuSelectionManager manager = MenuSelectionManager.defaultManager(); - if (e.getX() > 0 && e.getX() < size.width && e.getY() > 0 - && e.getY() < size.height) + int x = e.getX(); + int y = e.getY(); + if (x > 0 && x < menuItem.getWidth() && y > 0 + && y < menuItem.getHeight()) { - manager.clearSelectedPath(); - menuItem.doClick(); + doClick(manager); } - else manager.processMouseEvent(e); } @@ -1130,7 +1084,7 @@ public class BasicMenuItemUI extends MenuItemUI */ public void menuDragMouseDragged(MenuDragMouseEvent e) { - MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + MenuSelectionManager manager = e.getMenuSelectionManager(); manager.setSelectedPath(e.getPath()); } @@ -1143,7 +1097,7 @@ public class BasicMenuItemUI extends MenuItemUI */ public void menuDragMouseEntered(MenuDragMouseEvent e) { - MenuSelectionManager manager = MenuSelectionManager.defaultManager(); + MenuSelectionManager manager = e.getMenuSelectionManager(); manager.setSelectedPath(e.getPath()); } @@ -1155,7 +1109,7 @@ public class BasicMenuItemUI extends MenuItemUI */ public void menuDragMouseExited(MenuDragMouseEvent e) { - // TODO: What should be done here, if anything? + // Nothing to do here yet. } /** @@ -1167,13 +1121,14 @@ public class BasicMenuItemUI extends MenuItemUI */ public void menuDragMouseReleased(MenuDragMouseEvent e) { - MenuElement[] path = e.getPath(); - - if (path[path.length - 1] instanceof JMenuItem) - ((JMenuItem) path[path.length - 1]).doClick(); - - MenuSelectionManager manager = MenuSelectionManager.defaultManager(); - manager.clearSelectedPath(); + MenuSelectionManager manager = e.getMenuSelectionManager(); + int x = e.getX(); + int y = e.getY(); + if (x >= 0 && x < menuItem.getWidth() && y >= 0 + && y < menuItem.getHeight()) + doClick(manager); + else + manager.clearSelectedPath(); } } @@ -1275,32 +1230,41 @@ public class BasicMenuItemUI extends MenuItemUI } /** - * A helper method that lays out the menu item. The layout is stored - * in the fields of this class. + * Resets the cached layout rectangles. If i is not null, then + * the view rectangle is set to the inner area of the component, otherwise + * it is set to (0, 0, Short.MAX_VALUE, Short.MAX_VALUE), this is needed + * for layouting. * - * @param m the menu item to layout - * @param accelText the accelerator text + * @param i the component for which to initialize the rectangles */ - private void layoutMenuItem(JMenuItem m, String accelText) + private void resetRectangles(JMenuItem i) { - int width = m.getWidth(); - int height = m.getHeight(); - // Reset rectangles. iconRect.setBounds(0, 0, 0, 0); textRect.setBounds(0, 0, 0, 0); accelRect.setBounds(0, 0, 0, 0); checkIconRect.setBounds(0, 0, 0, 0); arrowIconRect.setBounds(0, 0, 0, 0); - viewRect.setBounds(0, 0, width, height); - - // Substract insets to the view rect. - Insets insets = m.getInsets(); - viewRect.x += insets.left; - viewRect.y += insets.top; - viewRect.width -= insets.left + insets.right; - viewRect.height -= insets.top + insets.bottom; + if (i == null) + viewRect.setBounds(0, 0, Short.MAX_VALUE, Short.MAX_VALUE); + else + { + Insets insets = i.getInsets(); + viewRect.setBounds(insets.left, insets.top, + i.getWidth() - insets.left - insets.right, + i.getHeight() - insets.top - insets.bottom); + } + } + /** + * A helper method that lays out the menu item. The layout is stored + * in the fields of this class. + * + * @param m the menu item to layout + * @param accelText the accelerator text + */ + private void layoutMenuItem(JMenuItem m, String accelText) + { // Fetch the fonts. Font font = m.getFont(); FontMetrics fm = m.getFontMetrics(font); diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java index 7d8784fd15a..355e0435ec8 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicMenuUI.java @@ -41,16 +41,22 @@ package javax.swing.plaf.basic; import gnu.classpath.NotImplementedException; import java.awt.Component; +import java.awt.Container; import java.awt.Dimension; +import java.awt.Point; +import java.awt.event.ActionEvent; import java.awt.event.MouseEvent; import java.beans.PropertyChangeListener; +import javax.swing.AbstractAction; import javax.swing.JComponent; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPopupMenu; import javax.swing.LookAndFeel; +import javax.swing.MenuElement; import javax.swing.MenuSelectionManager; +import javax.swing.Timer; import javax.swing.UIDefaults; import javax.swing.UIManager; import javax.swing.event.ChangeEvent; @@ -69,6 +75,32 @@ import javax.swing.plaf.ComponentUI; */ public class BasicMenuUI extends BasicMenuItemUI { + /** + * Selects a menu. This is used to delay menu selection. + */ + class SelectMenuAction + extends AbstractAction + { + /** + * Performs the action. + */ + public void actionPerformed(ActionEvent event) + { + JMenu menu = (JMenu) menuItem; + MenuSelectionManager defaultManager = + MenuSelectionManager.defaultManager(); + MenuElement path[] = defaultManager.getSelectedPath(); + if(path.length > 0 && path[path.length - 1] == menu) + { + MenuElement newPath[] = new MenuElement[path.length + 1]; + System.arraycopy(path, 0, newPath, 0, path.length); + newPath[path.length] = menu.getPopupMenu(); + defaultManager.setSelectedPath(newPath); + } + } + + } + protected ChangeListener changeListener; /* MenuListener listens to MenuEvents fired by JMenu */ @@ -201,6 +233,7 @@ public class BasicMenuUI extends BasicMenuItemUI */ protected void installDefaults() { + LookAndFeel.installBorder(menuItem, "Menu.border"); LookAndFeel.installColorsAndFont(menuItem, "Menu.background", "Menu.foreground", "Menu.font"); @@ -212,6 +245,7 @@ public class BasicMenuUI extends BasicMenuItemUI selectionForeground = UIManager.getColor("Menu.selectionForeground"); arrowIcon = UIManager.getIcon("Menu.arrowIcon"); oldBorderPainted = UIManager.getBoolean("Menu.borderPainted"); + ((JMenu) menuItem).setDelay(200); } /** @@ -234,9 +268,10 @@ public class BasicMenuUI extends BasicMenuItemUI } protected void setupPostTimer(JMenu menu) - throws NotImplementedException { - // TODO: Implement this properly. + Timer timer = new Timer(menu.getDelay(), new SelectMenuAction()); + timer.setRepeats(false); + timer.start(); } /** @@ -285,8 +320,7 @@ public class BasicMenuUI extends BasicMenuItemUI { public void mouseClicked(MouseEvent e) { - MenuSelectionManager manager = MenuSelectionManager.defaultManager(); - manager.processMouseEvent(e); + // Nothing to do here. } public void mouseDragged(MouseEvent e) @@ -313,29 +347,46 @@ public class BasicMenuUI extends BasicMenuItemUI public void mouseEntered(MouseEvent e) { - /* When mouse enters menu item, it should be considered selected - - if (i) if this menu is a submenu in some other menu - (ii) or if this menu is in a menu bar and some other menu in a - menu bar was just selected and has its popup menu visible. - (If nothing was selected, menu should be pressed before - it will be selected) - */ JMenu menu = (JMenu) menuItem; - - // NOTE: the following if used to require !menu.isArmed but I could find - // no reason for this and it was preventing some JDK-compatible behaviour. - // Specifically, if a menu is selected but its popup menu not visible, - // and then another menu is selected whose popup menu IS visible, when - // the mouse is moved over the first menu, its popup menu should become - // visible. - - if (! menu.isTopLevelMenu() || popupVisible()) + if (menu.isEnabled()) { - // set new selection and forward this event to MenuSelectionManager - MenuSelectionManager manager = MenuSelectionManager.defaultManager(); - manager.setSelectedPath(getPath()); - manager.processMouseEvent(e); + MenuSelectionManager manager = + MenuSelectionManager.defaultManager(); + MenuElement[] selectedPath = manager.getSelectedPath(); + if (! menu.isTopLevelMenu()) + { + // Open the menu immediately or delayed, depending on the + // delay value. + if(! (selectedPath.length > 0 + && selectedPath[selectedPath.length - 1] == menu.getPopupMenu())) + { + if(menu.getDelay() == 0) + { + MenuElement[] path = getPath(); + MenuElement[] newPath = new MenuElement[path.length + 1]; + System.arraycopy(path, 0, newPath, 0, path.length); + newPath[path.length] = menu.getPopupMenu(); + manager.setSelectedPath(newPath); + } + else + { + manager.setSelectedPath(getPath()); + setupPostTimer(menu); + } + } + } + else + { + if(selectedPath.length > 0 + && selectedPath[0] == menu.getParent()) + { + MenuElement[] newPath = new MenuElement[3]; + newPath[0] = (MenuElement) menu.getParent(); + newPath[1] = menu; + newPath[2] = menu.getPopupMenu(); + manager.setSelectedPath(newPath); + } + } } } @@ -354,29 +405,48 @@ public class BasicMenuUI extends BasicMenuItemUI { MenuSelectionManager manager = MenuSelectionManager.defaultManager(); JMenu menu = (JMenu) menuItem; - manager.processMouseEvent(e); - - // Menu should be displayed when the menu is pressed only if - // it is top-level menu - if (menu.isTopLevelMenu()) + if (menu.isEnabled()) { - if (menu.getPopupMenu().isVisible()) - // If menu is visible and menu button was pressed.. - // then need to cancel the menu - manager.clearSelectedPath(); - else - { - // Display the menu - int x = 0; - int y = menu.getHeight(); - - manager.setSelectedPath(getPath()); - - JMenuBar mb = (JMenuBar) menu.getParent(); - - // set selectedIndex of the selectionModel of a menuBar - mb.getSelectionModel().setSelectedIndex(mb.getComponentIndex(menu)); - } + // Open up the menu immediately if it's a toplevel menu. + // But not yet the popup, which might be opened delayed, see below. + if (menu.isTopLevelMenu()) + { + if (menu.isSelected()) + manager.clearSelectedPath(); + else + { + Container cnt = menu.getParent(); + if (cnt != null && cnt instanceof JMenuBar) + { + MenuElement[] me = new MenuElement[2]; + me[0] = (MenuElement) cnt; + me[1] = menu; + manager.setSelectedPath(me); + } + } + } + + // Open the menu's popup. Either do that immediately if delay == 0, + // or delayed when delay > 0. + MenuElement[] selectedPath = manager.getSelectedPath(); + if (selectedPath.length > 0 + && selectedPath[selectedPath.length - 1] != menu.getPopupMenu()) + { + if(menu.isTopLevelMenu() || menu.getDelay() == 0) + { + MenuElement[] newPath = + new MenuElement[selectedPath.length + 1]; + System.arraycopy(selectedPath, 0, newPath, 0, + selectedPath.length); + newPath[selectedPath.length] = menu.getPopupMenu(); + manager.setSelectedPath(newPath); + } + else + { + setupPostTimer(menu); + } + } + } } @@ -493,8 +563,44 @@ public class BasicMenuUI extends BasicMenuItemUI */ public void menuDragMouseDragged(MenuDragMouseEvent e) { - MenuSelectionManager manager = MenuSelectionManager.defaultManager(); - manager.setSelectedPath(e.getPath()); + if (menuItem.isEnabled()) + { + MenuSelectionManager manager = e.getMenuSelectionManager(); + MenuElement path[] = e.getPath(); + + Point p = e.getPoint(); + if(p.x >= 0 && p.x < menuItem.getWidth() + && p.y >= 0 && p.y < menuItem.getHeight()) + { + JMenu menu = (JMenu) menuItem; + MenuElement[] selectedPath = manager.getSelectedPath(); + if(! (selectedPath.length > 0 + && selectedPath[selectedPath.length-1] + == menu.getPopupMenu())) + { + if(menu.isTopLevelMenu() || menu.getDelay() == 0 + || e.getID() == MouseEvent.MOUSE_DRAGGED) + { + MenuElement[] newPath = new MenuElement[path.length + 1]; + System.arraycopy(path, 0, newPath, 0, path.length); + newPath[path.length] = menu.getPopupMenu(); + manager.setSelectedPath(newPath); + } + else + { + manager.setSelectedPath(path); + setupPostTimer(menu); + } + } + } + else if (e.getID() == MouseEvent.MOUSE_RELEASED) + { + Component comp = manager.componentForPoint(e.getComponent(), + e.getPoint()); + if (comp == null) + manager.clearSelectedPath(); + } + } } /** @@ -505,8 +611,7 @@ public class BasicMenuUI extends BasicMenuItemUI */ public void menuDragMouseEntered(MenuDragMouseEvent e) { - MenuSelectionManager manager = MenuSelectionManager.defaultManager(); - manager.setSelectedPath(e.getPath()); + // Nothing to do here. } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java index aed4d69d6d5..bfb9e98dbc9 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicRadioButtonUI.java @@ -52,6 +52,7 @@ import javax.swing.JComponent; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; +import javax.swing.text.View; /** * The BasicLookAndFeel UI implementation for @@ -81,7 +82,7 @@ public class BasicRadioButtonUI extends BasicToggleButtonUI */ public BasicRadioButtonUI() { - icon = getDefaultIcon(); + // nothing to do } /** @@ -93,6 +94,7 @@ public class BasicRadioButtonUI extends BasicToggleButtonUI protected void installDefaults(AbstractButton b) { super.installDefaults(b); + icon = UIManager.getIcon(getPropertyPrefix() + "icon"); } /** @@ -116,7 +118,7 @@ public class BasicRadioButtonUI extends BasicToggleButtonUI */ public Icon getDefaultIcon() { - return UIManager.getIcon(getPropertyPrefix() + "icon"); + return icon; } /** @@ -128,40 +130,92 @@ public class BasicRadioButtonUI extends BasicToggleButtonUI public void paint(Graphics g, JComponent c) { AbstractButton b = (AbstractButton) c; - - Rectangle tr = new Rectangle(); - Rectangle ir = new Rectangle(); - Rectangle vr = new Rectangle(); + Dimension size = c.getSize(); + Insets i = b.getInsets(); + textR.x = 0; + textR.y = 0; + textR.width = 0; + textR.height = 0; + iconR.x = 0; + iconR.y = 0; + iconR.width = 0; + iconR.height = 0; + viewR.x = i.left; + viewR.y = i.right; + viewR.width = size.width - i.left - i.right; + viewR.height = size.height - i.top - i.bottom; Font f = c.getFont(); g.setFont(f); ButtonModel m = b.getModel(); - // FIXME: Do a filtering on any customized icon if the following property - // is set. - boolean enabled = b.isEnabled(); - - Icon currentIcon = b.getIcon(); - if (currentIcon == null) - { - currentIcon = getDefaultIcon(); - } - - SwingUtilities.calculateInnerArea(b, vr); + // This is the icon that we use for layout. + Icon icon = b.getIcon(); + if (icon == null) + icon = getDefaultIcon(); + + // Do the layout. String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f), - b.getText(), currentIcon, + b.getText(), icon, b.getVerticalAlignment(), b.getHorizontalAlignment(), b.getVerticalTextPosition(), b.getHorizontalTextPosition(), - vr, ir, tr, b.getIconTextGap() + defaultTextShiftOffset); - - currentIcon.paintIcon(c, g, ir.x, ir.y); - + viewR, iconR, textR, b.getIconTextGap()); + + // Figure out the correct icon. + icon = b.getIcon(); + if (icon == null) + icon = getDefaultIcon(); + else + { + if (! m.isEnabled()) + { + if (m.isSelected()) + icon = b.getDisabledSelectedIcon(); + else + icon = b.getDisabledIcon(); + } + else if (m.isArmed() && m.isPressed()) + { + icon = b.getPressedIcon(); + if (icon == null) + icon = b.getSelectedIcon(); + } + else if (m.isSelected()) + { + if (b.isRolloverEnabled() && m.isRollover()) + { + icon = b.getRolloverSelectedIcon(); + if (icon == null) + icon = b.getSelectedIcon(); + } + else + icon = b.getSelectedIcon(); + } + else if (b.isRolloverEnabled() && m.isRollover()) + icon = b.getRolloverIcon(); + if (icon == null) + icon = b.getIcon(); + } + // .. and paint it. + icon.paintIcon(c, g, iconR.x, iconR.y); + + // Paint text and focus indicator. if (text != null) - paintText(g, b, tr, text); - if (b.hasFocus() && b.isFocusPainted() && m.isEnabled()) - paintFocus(g, tr, c.getSize()); + { + // Maybe render HTML in the radio button. + View v = (View) c.getClientProperty(BasicHTML.propertyKey); + if (v != null) + v.paint(g, textR); + else + paintText(g, b, textR, text); + + // Paint focus indicator if necessary. + if (b.hasFocus() && b.isFocusPainted() + && textR.width > 0 && textR.height > 0) + paintFocus(g, textR, size); + } } public Dimension getPreferredSize(JComponent c) @@ -174,38 +228,40 @@ public class BasicRadioButtonUI extends BasicToggleButtonUI // The other icon properties are ignored. AbstractButton b = (AbstractButton) c; - Rectangle contentRect; - Rectangle viewRect; - Rectangle iconRect = new Rectangle(); - Rectangle textRect = new Rectangle(); Insets insets = b.getInsets(); - + + String text = b.getText(); Icon i = b.getIcon(); if (i == null) i = getDefaultIcon(); - viewRect = new Rectangle(); - - SwingUtilities.layoutCompoundLabel( - b, // for the component orientation - b.getFontMetrics(b.getFont()), - b.getText(), - i, - b.getVerticalAlignment(), - b.getHorizontalAlignment(), - b.getVerticalTextPosition(), - b.getHorizontalTextPosition(), - viewRect, iconRect, textRect, - defaultTextIconGap + defaultTextShiftOffset); - - contentRect = textRect.union(iconRect); - - return new Dimension(insets.left - + contentRect.width - + insets.right + b.getHorizontalAlignment(), - insets.top - + contentRect.height - + insets.bottom); + textR.x = 0; + textR.y = 0; + textR.width = 0; + textR.height = 0; + iconR.x = 0; + iconR.y = 0; + iconR.width = 0; + iconR.height = 0; + viewR.x = 0; + viewR.y = 0; + viewR.width = Short.MAX_VALUE; + viewR.height = Short.MAX_VALUE; + + SwingUtilities.layoutCompoundLabel(b, // for the component orientation + b.getFontMetrics(b.getFont()), + text, i, b.getVerticalAlignment(), + b.getHorizontalAlignment(), + b.getVerticalTextPosition(), + b.getHorizontalTextPosition(), + viewR, iconR, textR, + text == null ? 0 : b.getIconTextGap()); + + Rectangle r = SwingUtilities.computeUnion(textR.x, textR.y, textR.width, + textR.height, iconR); + + return new Dimension(insets.left + r.width + insets.right, + insets.top + r.height + insets.bottom); } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java index 78e5168fc80..400ede03ce9 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java @@ -760,10 +760,7 @@ public class BasicScrollBarUI extends ScrollBarUI implements LayoutManager, scrollbar.setOpaque(true); scrollbar.setLayout(this); - thumbColor = UIManager.getColor("ScrollBar.thumb"); - thumbDarkShadowColor = UIManager.getColor("ScrollBar.thumbDarkShadow"); - thumbHighlightColor = UIManager.getColor("ScrollBar.thumbHighlight"); - thumbLightShadowColor = UIManager.getColor("ScrollBar.thumbShadow"); + configureScrollBarColors(); maximumThumbSize = UIManager.getDimension("ScrollBar.maximumThumbSize"); minimumThumbSize = UIManager.getDimension("ScrollBar.minimumThumbSize"); @@ -1228,8 +1225,36 @@ public class BasicScrollBarUI extends ScrollBarUI implements LayoutManager, */ protected void scrollByBlock(int direction) { - scrollbar.setValue(scrollbar.getValue() - + scrollbar.getBlockIncrement(direction)); + scrollByBlock(scrollbar, direction); + } + + /** + * Scrolls the specified scrollBar by one block (according + * to the scrollable protocol) in the specified direction. + * + * This method is here statically to support wheel scrolling from the + * BasicScrollPaneUI without code duplication. + * + * @param scrollBar the scrollbar to scroll + * @param direction the scroll direction + */ + static final void scrollByBlock(JScrollBar scrollBar, int direction) + { + int delta; + if (direction > 0) + delta = scrollBar.getBlockIncrement(direction); + else + delta = - scrollBar.getBlockIncrement(direction); + int oldValue = scrollBar.getValue(); + int newValue = oldValue + delta; + + // Overflow check. + if (delta > 0 && newValue < oldValue) + newValue = scrollBar.getMaximum(); + else if (delta < 0 && newValue > oldValue) + newValue = scrollBar.getMinimum(); + + scrollBar.setValue(newValue); } /** @@ -1239,8 +1264,46 @@ public class BasicScrollBarUI extends ScrollBarUI implements LayoutManager, */ protected void scrollByUnit(int direction) { - scrollbar.setValue(scrollbar.getValue() - + scrollbar.getUnitIncrement(direction)); + scrollByUnits(scrollbar, direction, 1); + } + + /** + * Scrolls the specified scrollbac/code> by units units + * in the specified direction. + * + * This method is here statically to support wheel scrolling from the + * BasicScrollPaneUI without code duplication. + * + * @param scrollBar the scrollbar to scroll + * @param direction the direction + * @param units the number of units to scroll + */ + static final void scrollByUnits(JScrollBar scrollBar, int direction, + int units) + { + // Do this inside a loop so that we don't clash with the scrollable + // interface, which can return different units at times. For instance, + // a Scrollable could return a unit of 2 pixels only to adjust the + // visibility of an item. If we would simply multiply this by units, + // then we would only get 6 pixels, which is complete crap. + for (int i = 0; i < units; i++) + { + int delta; + if (direction > 0) + delta = scrollBar.getUnitIncrement(direction); + else + delta = - scrollBar.getUnitIncrement(direction); + int oldValue = scrollBar.getValue(); + int newValue = oldValue + delta; + + // Overflow check. + if (delta > 0 && newValue < oldValue) + newValue = scrollBar.getMaximum(); + else if (delta < 0 && newValue > oldValue) + newValue = scrollBar.getMinimum(); + + scrollBar.setValue(newValue); + } } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java index a0616a8c1cf..a7194284050 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java @@ -38,9 +38,6 @@ exception statement from your version. */ package javax.swing.plaf.basic; -import gnu.classpath.NotImplementedException; - -import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; @@ -54,7 +51,6 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.AbstractAction; -import javax.swing.Action; import javax.swing.ActionMap; import javax.swing.InputMap; import javax.swing.JComponent; @@ -65,15 +61,15 @@ import javax.swing.JViewport; import javax.swing.LookAndFeel; import javax.swing.ScrollPaneConstants; import javax.swing.ScrollPaneLayout; -import javax.swing.Scrollable; -import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.UIManager; +import javax.swing.border.Border; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.plaf.ActionMapUIResource; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ScrollPaneUI; +import javax.swing.plaf.UIResource; /** * A UI delegate for the {@link JScrollPane} component. @@ -102,19 +98,8 @@ public class BasicScrollPaneUI extends ScrollPaneUI JScrollBar hsb = scrollpane.getHorizontalScrollBar(); JViewport vp = scrollpane.getViewport(); Point viewPosition = vp.getViewPosition(); - int xpos = hsb.getValue(); - - if (xpos != viewPosition.x) - { - viewPosition.x = xpos; - vp.setViewPosition(viewPosition); - } - - viewPosition.y = 0; - JViewport columnHeader = scrollpane.getColumnHeader(); - if (columnHeader != null - && !columnHeader.getViewPosition().equals(viewPosition)) - columnHeader.setViewPosition(viewPosition); + viewPosition.x = hsb.getValue(); + vp.setViewPosition(viewPosition); } } @@ -139,18 +124,8 @@ public class BasicScrollPaneUI extends ScrollPaneUI JScrollBar vsb = scrollpane.getVerticalScrollBar(); JViewport vp = scrollpane.getViewport(); Point viewPosition = vp.getViewPosition(); - int ypos = vsb.getValue(); - if (ypos != viewPosition.y) - { - viewPosition.y = ypos; - vp.setViewPosition(viewPosition); - } - - viewPosition.x = 0; - JViewport rowHeader = scrollpane.getRowHeader(); - if (rowHeader != null - && !rowHeader.getViewPosition().equals(viewPosition)) - rowHeader.setViewPosition(viewPosition); + viewPosition.y = vsb.getValue(); + vp.setViewPosition(viewPosition); } } @@ -174,9 +149,6 @@ public class BasicScrollPaneUI extends ScrollPaneUI */ public void stateChanged(ChangeEvent event) { - JViewport vp = scrollpane.getViewport(); - JScrollBar hsb = scrollpane.getHorizontalScrollBar(); - JScrollBar vsb = scrollpane.getVerticalScrollBar(); syncScrollPaneWithViewport(); } @@ -254,103 +226,24 @@ public class BasicScrollPaneUI extends ScrollPaneUI */ public void mouseWheelMoved(MouseWheelEvent e) { - if (scrollpane.getViewport().getComponentCount() == 0) - return; - - Component target = scrollpane.getViewport().getComponent(0); - JScrollBar bar = scrollpane.getVerticalScrollBar(); - Scrollable scrollable = (target instanceof Scrollable) ? (Scrollable) target - : null; - - boolean tracksHeight = scrollable != null - && scrollable.getScrollableTracksViewportHeight(); - int wheel = e.getWheelRotation() * ROWS_PER_WHEEL_CLICK; - int delta; - - // If possible, scroll vertically. - if (bar != null && ! tracksHeight) + if (scrollpane.isWheelScrollingEnabled() && e.getScrollAmount() != 0) { - if (scrollable != null) + // Try to scroll vertically first. + JScrollBar scrollBar = scrollpane.getVerticalScrollBar(); + if (scrollBar == null || ! scrollBar.isVisible()) + scrollBar = scrollpane.getHorizontalScrollBar(); + if (scrollBar != null && scrollBar.isVisible()) { - bounds(target); - delta = scrollable.getScrollableUnitIncrement( - rect, SwingConstants.VERTICAL, wheel); - } - else - { - // Scroll non scrollables. - delta = wheel * SCROLL_NON_SCROLLABLES; - } - scroll(bar, delta); - } - // If not, try to scroll horizontally - else - { - bar = scrollpane.getHorizontalScrollBar(); - boolean tracksWidth = scrollable != null - && scrollable.getScrollableTracksViewportWidth(); - - if (bar != null && ! tracksWidth) - { - if (scrollable != null) - { - bounds(target); - delta = scrollable.getScrollableUnitIncrement( - rect, SwingConstants.HORIZONTAL, wheel); - } - else - { - // Scroll non scrollables. - delta = wheel * SCROLL_NON_SCROLLABLES; - } - scroll(bar, delta); + int direction = e.getWheelRotation() < 0 ? -1 : 1; + int scrollType = e.getScrollType(); + if (scrollType == MouseWheelEvent.WHEEL_UNIT_SCROLL) + BasicScrollBarUI.scrollByUnits(scrollBar, direction, + e.getScrollAmount()); + else if (scrollType == MouseWheelEvent.WHEEL_BLOCK_SCROLL) + BasicScrollBarUI.scrollByBlock(scrollBar, direction); } } } - - /** - * Place the component bounds into rect. The x and y values - * need to be reversed. - * - * @param target the target being scrolled - */ - final void bounds(Component target) - { - // Viewport bounds, translated by the scroll bar positions. - target.getParent().getBounds(rect); - rect.x = getValue(scrollpane.getHorizontalScrollBar()); - rect.y = getValue(scrollpane.getVerticalScrollBar()); - } - - /** - * Get the scroll bar value or 0 if there is no such scroll bar. - * - * @param bar the scroll bar (null permitted). - * - * @return The scroll bar value, or 0. - */ - final int getValue(JScrollBar bar) - { - return bar != null ? bar.getValue() : 0; - } - - /** - * Scroll the given distance. - * - * @param bar the scrollbar to scroll - * @param delta the distance - */ - final void scroll(JScrollBar bar, int delta) - { - int y = bar.getValue() + delta; - - if (y < bar.getMinimum()) - y = bar.getMinimum(); - if (y > bar.getMaximum()) - y = bar.getMaximum(); - - bar.setValue(y); - } } /** @@ -436,16 +329,24 @@ public class BasicScrollPaneUI extends ScrollPaneUI "ScrollPane.foreground", "ScrollPane.font"); LookAndFeel.installBorder(p, "ScrollPane.border"); + + // Install Viewport border. + Border vpBorder = p.getViewportBorder(); + if (vpBorder == null || vpBorder instanceof UIResource) + { + vpBorder = UIManager.getBorder("ScrollPane.viewportBorder"); + p.setViewportBorder(vpBorder); + } + p.setOpaque(true); } protected void uninstallDefaults(JScrollPane p) { - p.setForeground(null); - p.setBackground(null); - p.setFont(null); - p.setBorder(null); - scrollpane = null; + LookAndFeel.uninstallBorder(p); + Border vpBorder = p.getViewportBorder(); + if (vpBorder != null && vpBorder instanceof UIResource) + p.setViewportBorder(null); } public void installUI(final JComponent c) @@ -770,9 +671,8 @@ public class BasicScrollPaneUI extends ScrollPaneUI public void uninstallUI(final JComponent c) { - super.uninstallUI(c); - this.uninstallDefaults((JScrollPane) c); - uninstallListeners((JScrollPane) c); + uninstallDefaults((JScrollPane) c); + uninstallListeners(c); installKeyboardActions((JScrollPane) c); } @@ -808,29 +708,65 @@ public class BasicScrollPaneUI extends ScrollPaneUI } public void paint(Graphics g, JComponent c) - { - // do nothing; the normal painting-of-children algorithm, along with - // ScrollPaneLayout, does all the relevant work. + { + Border vpBorder = scrollpane.getViewportBorder(); + if (vpBorder != null) + { + Rectangle r = scrollpane.getViewportBorderBounds(); + vpBorder.paintBorder(scrollpane, g, r.x, r.y, r.width, r.height); + } } /** - * Synchronizes the scrollbars with the viewport's extents. + * Synchronizes the scrollbar and header settings positions and extent + * with the viewport's view position and extent. */ protected void syncScrollPaneWithViewport() { JViewport vp = scrollpane.getViewport(); - // Update the horizontal scrollbar. - JScrollBar hsb = scrollpane.getHorizontalScrollBar(); - hsb.setMaximum(vp.getViewSize().width); - hsb.setValue(vp.getViewPosition().x); - hsb.setVisibleAmount(vp.getExtentSize().width); - - // Update the vertical scrollbar. - JScrollBar vsb = scrollpane.getVerticalScrollBar(); - vsb.setMaximum(vp.getViewSize().height); - vsb.setValue(vp.getViewPosition().y); - vsb.setVisibleAmount(vp.getExtentSize().height); + if (vp != null) + { + Dimension extentSize = vp.getExtentSize(); + Point viewPos = vp.getViewPosition(); + Dimension viewSize = vp.getViewSize(); + + // Update the vertical scrollbar. + JScrollBar vsb = scrollpane.getVerticalScrollBar(); + if (vsb != null) + { + int extent = extentSize.height; + int max = viewSize.height; + int val = Math.max(0, Math.min(viewPos.y, max - extent)); + vsb.setValues(val, extent, 0, max); + } + + // Update the horizontal scrollbar. + JScrollBar hsb = scrollpane.getHorizontalScrollBar(); + if (hsb != null) + { + int extent = extentSize.width; + int max = viewSize.width; + int val = Math.max(0, Math.min(viewPos.x, max - extent)); + hsb.setValues(val, extent, 0, max); + } + + // Update the row header. + JViewport rowHeader = scrollpane.getRowHeader(); + if (rowHeader != null) + { + Point p = new Point(0, viewPos.y); + rowHeader.setViewPosition(p); + } + + // Update the column header. + JViewport colHeader = scrollpane.getColumnHeader(); + if (colHeader != null) + { + Point p = new Point(viewPos.x, 0); + colHeader.setViewPosition(p); + } + } } /** @@ -863,7 +799,8 @@ public class BasicScrollPaneUI extends ScrollPaneUI */ protected void updateScrollBarDisplayPolicy(PropertyChangeEvent ev) { - // TODO: Find out what should be done here. Or is this only a hook? + scrollpane.revalidate(); + scrollpane.repaint(); } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java index 3811eebdfd6..474a4225640 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicSliderUI.java @@ -40,7 +40,6 @@ package javax.swing.plaf.basic; import java.awt.Color; import java.awt.Component; -import java.awt.ComponentOrientation; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Insets; @@ -65,7 +64,6 @@ import javax.swing.ActionMap; import javax.swing.BoundedRangeModel; import javax.swing.InputMap; import javax.swing.JComponent; -import javax.swing.JLabel; import javax.swing.JSlider; import javax.swing.LookAndFeel; import javax.swing.SwingUtilities; @@ -185,8 +183,6 @@ public class BasicSliderUI extends SliderUI public void componentResized(ComponentEvent e) { calculateGeometry(); - - slider.revalidate(); slider.repaint(); } } @@ -209,7 +205,6 @@ public class BasicSliderUI extends SliderUI public void focusGained(FocusEvent e) { slider.repaint(); - hasFocus = true; } /** @@ -221,7 +216,6 @@ public class BasicSliderUI extends SliderUI public void focusLost(FocusEvent e) { slider.repaint(); - hasFocus = false; } } @@ -240,25 +234,27 @@ public class BasicSliderUI extends SliderUI public void propertyChange(PropertyChangeEvent e) { // Check for orientation changes. - if (e.getPropertyName().equals("orientation")) - recalculateIfOrientationChanged(); + String prop = e.getPropertyName(); + if (prop.equals("orientation") + || prop.equals("inverted") + || prop.equals("labelTable") + || prop.equals("majorTickSpacing") + || prop.equals("minorTickSpacing") + || prop.equals("paintTicks") + || prop.equals("paintTrack") + || prop.equals("paintLabels")) + { + calculateGeometry(); + slider.repaint(); + } else if (e.getPropertyName().equals("model")) { BoundedRangeModel oldModel = (BoundedRangeModel) e.getOldValue(); oldModel.removeChangeListener(changeListener); slider.getModel().addChangeListener(changeListener); calculateThumbLocation(); + slider.repaint(); } - else if (e.getPropertyName().equals("paintTicks")) - calculateGeometry(); - - // elif the componentOrientation changes (this is a bound property, - // just undocumented) we change leftToRightCache. In Sun's - // implementation, the LTR cache changes on a repaint. This is strange - // since there is no need to do so. We could events here and - // update the cache. - // elif the border/insets change, we recalculateInsets. - slider.repaint(); } } @@ -466,6 +462,7 @@ public class BasicSliderUI extends SliderUI if (scrollTimer != null) scrollTimer.stop(); } + slider.repaint(); } /** @@ -592,10 +589,7 @@ public class BasicSliderUI extends SliderUI /** The focus color. */ private transient Color focusColor; - - /** True if the slider has focus. */ - private transient boolean hasFocus; - + /** True if the user is dragging the slider. */ boolean dragging; @@ -935,36 +929,10 @@ public class BasicSliderUI extends SliderUI */ public Dimension getPreferredHorizontalSize() { - Insets insets = slider.getInsets(); - - // The width should cover all the labels (which are usually the - // deciding factor of the width) - int width = getWidthOfWidestLabel() * (slider.getLabelTable() == null ? 0 - : slider.getLabelTable().size()); - - // If there are not enough labels. - // This number is pretty much arbitrary, but it looks nice. - if (width < 200) - width = 200; - - // We can only draw inside of the focusRectangle, so we have to - // pad it with insets. - width += insets.left + insets.right + focusInsets.left + focusInsets.right; - - // Height is determined by the thumb, the ticks and the labels. - int height = getThumbSize().height; - - if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0) - height += getTickLength(); - - if (slider.getPaintLabels()) - height += getHeightOfTallestLabel(); - - height += insets.top + insets.bottom + focusInsets.top - + focusInsets.bottom; - - return new Dimension(width, height); + Dimension dim = UIManager.getDimension("Slider.horizontalSize"); + if (dim == null) // Just to be sure we mirror the default. + dim = new Dimension(200, 21); + return dim; } /** @@ -975,30 +943,10 @@ public class BasicSliderUI extends SliderUI */ public Dimension getPreferredVerticalSize() { - Insets insets = slider.getInsets(); - - int height = getHeightOfTallestLabel() * (slider.getLabelTable() == null - ? 0 : slider.getLabelTable() - .size()); - - if (height < 200) - height = 200; - - height += insets.top + insets.bottom + focusInsets.top - + focusInsets.bottom; - - int width = getThumbSize().width; - - if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0) - width += getTickLength(); - - if (slider.getPaintLabels()) - width += getWidthOfWidestLabel(); - - width += insets.left + insets.right + focusInsets.left + focusInsets.right; - - return new Dimension(width, height); + Dimension dim = UIManager.getDimension("Slider.verticalSize"); + if (dim == null) // Just to be sure we mirror the default. + dim = new Dimension(21, 200); + return dim; } /** @@ -1009,21 +957,10 @@ public class BasicSliderUI extends SliderUI */ public Dimension getMinimumHorizontalSize() { - Insets insets = slider.getInsets(); - // Height is determined by the thumb, the ticks and the labels. - int height = getThumbSize().height; - - if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0) - height += getTickLength(); - - if (slider.getPaintLabels()) - height += getHeightOfTallestLabel(); - - height += insets.top + insets.bottom + focusInsets.top - + focusInsets.bottom; - - return new Dimension(36, height); + Dimension dim = UIManager.getDimension("Slider.minimumHorizontalSize"); + if (dim == null) // Just to be sure we mirror the default. + dim = new Dimension(36, 21); + return dim; } /** @@ -1034,19 +971,10 @@ public class BasicSliderUI extends SliderUI */ public Dimension getMinimumVerticalSize() { - Insets insets = slider.getInsets(); - int width = getThumbSize().width; - - if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0) - width += getTickLength(); - - if (slider.getPaintLabels()) - width += getWidthOfWidestLabel(); - - width += insets.left + insets.right + focusInsets.left + focusInsets.right; - - return new Dimension(width, 36); + Dimension dim = UIManager.getDimension("Slider.minimumVerticalSize"); + if (dim == null) // Just to be sure we mirror the default. + dim = new Dimension(21, 36); + return dim; } /** @@ -1060,10 +988,25 @@ public class BasicSliderUI extends SliderUI */ public Dimension getPreferredSize(JComponent c) { + recalculateIfInsetsChanged(); + Dimension dim; if (slider.getOrientation() == JSlider.HORIZONTAL) - return getPreferredHorizontalSize(); + { + // Create copy here to protect the UIManager value. + dim = new Dimension(getPreferredHorizontalSize()); + dim.height = insetCache.top + insetCache.bottom; + dim.height += focusInsets.top + focusInsets.bottom; + dim.height += trackRect.height + tickRect.height + labelRect.height; + } else - return getPreferredVerticalSize(); + { + // Create copy here to protect the UIManager value. + dim = new Dimension(getPreferredVerticalSize()); + dim.width = insetCache.left + insetCache.right; + dim.width += focusInsets.left + focusInsets.right; + dim.width += trackRect.width + tickRect.width + labelRect.width; + } + return dim; } /** @@ -1077,10 +1020,25 @@ public class BasicSliderUI extends SliderUI */ public Dimension getMinimumSize(JComponent c) { + recalculateIfInsetsChanged(); + Dimension dim; if (slider.getOrientation() == JSlider.HORIZONTAL) - return getMinimumHorizontalSize(); + { + // Create copy here to protect the UIManager value. + dim = new Dimension(getMinimumHorizontalSize()); + dim.height = insetCache.top + insetCache.bottom; + dim.height += focusInsets.top + focusInsets.bottom; + dim.height += trackRect.height + tickRect.height + labelRect.height; + } else - return getMinimumVerticalSize(); + { + // Create copy here to protect the UIManager value. + dim = new Dimension(getMinimumVerticalSize()); + dim.width = insetCache.left + insetCache.right; + dim.width += focusInsets.left + focusInsets.right; + dim.width += trackRect.width + tickRect.width + labelRect.width; + } + return dim; } /** @@ -1093,40 +1051,12 @@ public class BasicSliderUI extends SliderUI */ public Dimension getMaximumSize(JComponent c) { - Insets insets = slider.getInsets(); + Dimension dim = getPreferredSize(c); if (slider.getOrientation() == JSlider.HORIZONTAL) - { - // Height is determined by the thumb, the ticks and the labels. - int height = getThumbSize().height; - - if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0) - height += getTickLength(); - - if (slider.getPaintLabels()) - height += getHeightOfTallestLabel(); - - height += insets.top + insets.bottom + focusInsets.top - + focusInsets.bottom; - - return new Dimension(32767, height); - } + dim.width = Short.MAX_VALUE; else - { - int width = getThumbSize().width; - - if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0) - width += getTickLength(); - - if (slider.getPaintLabels()) - width += getWidthOfWidestLabel(); - - width += insets.left + insets.right + focusInsets.left - + focusInsets.right; - - return new Dimension(width, 32767); - } + dim.height = Short.MAX_VALUE; + return dim; } /** @@ -1151,12 +1081,10 @@ public class BasicSliderUI extends SliderUI */ protected void calculateFocusRect() { - insetCache = slider.getInsets(); - focusRect = SwingUtilities.calculateInnerArea(slider, focusRect); - if (focusRect.width < 0) - focusRect.width = 0; - if (focusRect.height < 0) - focusRect.height = 0; + focusRect.x = insetCache.left; + focusRect.y = insetCache.top; + focusRect.width = slider.getWidth() - insetCache.left - insetCache.right; + focusRect.height = slider.getHeight() - insetCache.top - insetCache.bottom; } /** @@ -1181,13 +1109,8 @@ public class BasicSliderUI extends SliderUI contentRect.y = focusRect.y + focusInsets.top; contentRect.width = focusRect.width - focusInsets.left - focusInsets.right; - contentRect.height = focusRect.height - focusInsets.top - - focusInsets.bottom; - - if (contentRect.width < 0) - contentRect.width = 0; - if (contentRect.height < 0) - contentRect.height = 0; + contentRect.height = focusRect.height - focusInsets.top + - focusInsets.bottom; } /** @@ -1258,26 +1181,24 @@ public class BasicSliderUI extends SliderUI { if (slider.getOrientation() == JSlider.HORIZONTAL) { - trackRect.x = contentRect.x + trackBuffer; - int h = getThumbSize().height; - if (slider.getPaintTicks() && (slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0)) - h += getTickLength(); + int center = thumbRect.height; + if (slider.getPaintTicks()) + center += getTickLength(); if (slider.getPaintLabels()) - h += getHeightOfTallestLabel(); - trackRect.y = contentRect.y + (contentRect.height - h) / 2 - 1; + center += getHeightOfTallestLabel(); + trackRect.x = contentRect.x + trackBuffer; + trackRect.y = contentRect.y + (contentRect.height - center - 1) / 2; trackRect.width = contentRect.width - 2 * trackBuffer; trackRect.height = thumbRect.height; } else { - int w = getThumbSize().width; - if (slider.getPaintTicks() && (slider.getMajorTickSpacing() > 0 - || slider.getMinorTickSpacing() > 0)) - w += getTickLength(); + int center = thumbRect.width; + if (slider.getPaintTicks()) + center += getTickLength(); if (slider.getPaintLabels()) - w += getWidthOfWidestLabel(); - trackRect.x = contentRect.x + (contentRect.width - w) / 2 - 1; + center += getWidthOfWidestLabel(); + trackRect.x = contentRect.x + (contentRect.width - center - 1) / 2; trackRect.y = contentRect.y + trackBuffer; trackRect.width = thumbRect.width; trackRect.height = contentRect.height - 2 * trackBuffer; @@ -1310,28 +1231,28 @@ public class BasicSliderUI extends SliderUI tickRect.x = trackRect.x; tickRect.y = trackRect.y + trackRect.height; tickRect.width = trackRect.width; - tickRect.height = slider.getPaintTicks() ? getTickLength() : 0; + tickRect.height = getTickLength(); // this makes our Mauve tests pass...can't explain it! if (!slider.getPaintTicks()) - tickRect.y--; - - if (tickRect.y + tickRect.height > contentRect.y + contentRect.height) - tickRect.height = contentRect.y + contentRect.height - tickRect.y; + { + tickRect.y--; + tickRect.height = 0; + } } else { tickRect.x = trackRect.x + trackRect.width; tickRect.y = trackRect.y; - tickRect.width = slider.getPaintTicks() ? getTickLength() : 0; + tickRect.width = getTickLength(); tickRect.height = trackRect.height; // this makes our Mauve tests pass...can't explain it! if (!slider.getPaintTicks()) - tickRect.x--; - - if (tickRect.x + tickRect.width > contentRect.x + contentRect.width) - tickRect.width = contentRect.x + contentRect.width - tickRect.x; + { + tickRect.x--; + tickRect.width = 0; + } } } @@ -1345,33 +1266,35 @@ public class BasicSliderUI extends SliderUI { if (slider.getPaintLabels()) { - labelRect.x = contentRect.x; - labelRect.y = tickRect.y + tickRect.height - 1; - labelRect.width = contentRect.width; + labelRect.x = tickRect.x - trackBuffer; + labelRect.y = tickRect.y + tickRect.height; + labelRect.width = tickRect.width + trackBuffer * 2; + labelRect.height = getHeightOfTallestLabel(); } else { - labelRect.x = trackRect.x; + labelRect.x = tickRect.x; labelRect.y = tickRect.y + tickRect.height; - labelRect.width = trackRect.width; + labelRect.width = tickRect.width; + labelRect.height = 0; } - labelRect.height = getHeightOfTallestLabel(); } else { if (slider.getPaintLabels()) { - labelRect.x = tickRect.x + tickRect.width - 1; - labelRect.y = contentRect.y; - labelRect.height = contentRect.height; + labelRect.x = tickRect.x + tickRect.width; + labelRect.y = tickRect.y - trackBuffer; + labelRect.width = getWidthOfWidestLabel(); + labelRect.height = tickRect.height + trackBuffer * 2; } else { labelRect.x = tickRect.x + tickRect.width; - labelRect.y = trackRect.y; - labelRect.height = trackRect.height; + labelRect.y = tickRect.y; + labelRect.width = 0; + labelRect.height = tickRect.height; } - labelRect.width = getWidthOfWidestLabel(); } } @@ -1384,22 +1307,15 @@ public class BasicSliderUI extends SliderUI protected int getWidthOfWidestLabel() { int widest = 0; - Component label; - - if (slider.getLabelTable() == null) - return 0; - - Dimension pref; - for (Enumeration list = slider.getLabelTable().elements(); - list.hasMoreElements();) + Dictionary table = slider.getLabelTable(); + if (table != null) { - Object comp = list.nextElement(); - if (! (comp instanceof Component)) - continue; - label = (Component) comp; - pref = label.getPreferredSize(); - if (pref != null && pref.width > widest) - widest = pref.width; + for (Enumeration list = slider.getLabelTable().elements(); + list.hasMoreElements();) + { + Component label = (Component) list.nextElement(); + widest = Math.max(label.getPreferredSize().width, widest); + } } return widest; } @@ -1576,23 +1492,18 @@ public class BasicSliderUI extends SliderUI */ public void paint(Graphics g, JComponent c) { - // FIXME: Move this to propertyChangeEvent handler, when we get those. - leftToRightCache = slider.getComponentOrientation() - != ComponentOrientation.RIGHT_TO_LEFT; - // FIXME: This next line is only here because the above line is here. - calculateGeometry(); - - if (slider.getPaintTrack()) + recalculateIfInsetsChanged(); + recalculateIfOrientationChanged(); + if (slider.getPaintTrack() && hitClip(g, trackRect)) paintTrack(g); - if (slider.getPaintTicks()) + if (slider.getPaintTicks() && hitClip(g, tickRect)) paintTicks(g); - if (slider.getPaintLabels()) + if (slider.getPaintLabels() && hitClip(g, labelRect)) paintLabels(g); - - paintThumb(g); - - if (hasFocus) + if (slider.hasFocus() && hitClip(g, focusRect)) paintFocus(g); + if (hitClip(g, thumbRect)) + paintThumb(g); } /** @@ -1601,18 +1512,12 @@ public class BasicSliderUI extends SliderUI */ protected void recalculateIfInsetsChanged() { - // Examining a test program shows that either Sun calls private - // methods that we don't know about, or these don't do anything. - calculateFocusRect(); - - calculateContentRect(); - calculateThumbSize(); - calculateTrackBuffer(); - calculateTrackRect(); - calculateThumbLocation(); - - calculateTickRect(); - calculateLabelRect(); + Insets insets = slider.getInsets(); + if (! insets.equals(insetCache)) + { + insetCache = insets; + calculateGeometry(); + } } /** @@ -1863,45 +1768,30 @@ public class BasicSliderUI extends SliderUI */ public void paintLabels(Graphics g) { - if (slider.getLabelTable() != null) + Dictionary table = slider.getLabelTable(); + if (table != null) { - Dictionary table = slider.getLabelTable(); - Integer tmpKey; - Object key; - Object element; - Component label; - if (slider.getOrientation() == JSlider.HORIZONTAL) - { - for (Enumeration list = table.keys(); list.hasMoreElements();) - { - key = list.nextElement(); - if (! (key instanceof Integer)) - continue; - tmpKey = (Integer) key; - element = table.get(tmpKey); - // We won't paint them if they're not - // JLabels so continue anyway - if (! (element instanceof JLabel)) - continue; - label = (Component) element; - paintHorizontalLabel(g, tmpKey.intValue(), label); - } - } - else + int min = slider.getMinimum(); + int max = slider.getMaximum(); + for (Enumeration list = table.keys(); list.hasMoreElements();) { - for (Enumeration list = table.keys(); list.hasMoreElements();) + Integer key = (Integer) list.nextElement(); + int value = key.intValue(); + if (value >= min && value <= max) { - key = list.nextElement(); - if (! (key instanceof Integer)) - continue; - tmpKey = (Integer) key; - element = table.get(tmpKey); - // We won't paint them if they're not - // JLabels so continue anyway - if (! (element instanceof JLabel)) - continue; - label = (Component) element; - paintVerticalLabel(g, tmpKey.intValue(), label); + Component label = (Component) table.get(key); + if (slider.getOrientation() == JSlider.HORIZONTAL) + { + g.translate(0, labelRect.y); + paintHorizontalLabel(g, value, label); + g.translate(0, -labelRect.y); + } + else + { + g.translate(labelRect.x, 0); + paintVerticalLabel(g, value, label); + g.translate(-labelRect.x, 0); + } } } } @@ -1920,51 +1810,11 @@ public class BasicSliderUI extends SliderUI */ protected void paintHorizontalLabel(Graphics g, int value, Component label) { - // This relies on clipping working properly or we'll end up - // painting all over the place. If our preferred size is ignored, then - // the labels may not fit inside the slider's bounds. Rather than mucking - // with font sizes and possible icon sizes, we'll set the bounds for - // the label and let it get clipped. - Dimension dim = label.getPreferredSize(); - int w = (int) dim.getWidth(); - int h = (int) dim.getHeight(); - - int max = slider.getMaximum(); - int min = slider.getMinimum(); - - if (value > max || value < min) - return; - - // value - // | - // ------------ - // | | - // | | - // | | - // The label must move w/2 to the right to fit directly under the value. - int xpos = xPositionForValue(value) - w / 2; - int ypos = labelRect.y; - - // We want to center the label around the xPositionForValue - // So we use xpos - w / 2. However, if value is min and the label - // is large, we run the risk of going out of bounds. So we bring it back - // to 0 if it becomes negative. - if (xpos < 0) - xpos = 0; - - // If the label + starting x position is greater than - // the x space in the label rectangle, we reset it to the largest - // amount possible in the rectangle. This means ugliness. - if (xpos + w > labelRect.x + labelRect.width) - w = labelRect.x + labelRect.width - xpos; - - // If the label is too tall. We reset it to the height of the label - // rectangle. - if (h > labelRect.height) - h = labelRect.height; - - label.setBounds(xpos, ypos, w, h); - SwingUtilities.paintComponent(g, label, null, label.getBounds()); + int center = xPositionForValue(value); + int left = center - label.getPreferredSize().width / 2; + g.translate(left, 0); + label.paint(g); + g.translate(-left, 0); } /** @@ -1980,30 +1830,11 @@ public class BasicSliderUI extends SliderUI */ protected void paintVerticalLabel(Graphics g, int value, Component label) { - Dimension dim = label.getPreferredSize(); - int w = (int) dim.getWidth(); - int h = (int) dim.getHeight(); - - int max = slider.getMaximum(); - int min = slider.getMinimum(); - - if (value > max || value < min) - return; - - int xpos = labelRect.x; - int ypos = yPositionForValue(value) - h / 2; - - if (ypos < 0) - ypos = 0; - - if (ypos + h > labelRect.y + labelRect.height) - h = labelRect.y + labelRect.height - ypos; - - if (w > labelRect.width) - w = labelRect.width; - - label.setBounds(xpos, ypos, w, h); - SwingUtilities.paintComponent(g, label, null, label.getBounds()); + int center = yPositionForValue(value); + int top = center - label.getPreferredSize().height / 2; + g.translate(0, top); + label.paint(g); + g.translate(0, -top); } /** @@ -2118,8 +1949,11 @@ public class BasicSliderUI extends SliderUI */ public void setThumbLocation(int x, int y) { - thumbRect.x = x; - thumbRect.y = y; + Rectangle union = new Rectangle(thumbRect); + thumbRect.setLocation(x, y); + SwingUtilities.computeUnion(thumbRect.x, thumbRect.y, thumbRect.width, + thumbRect.height, union); + slider.repaint(union); } /** @@ -2197,21 +2031,21 @@ public class BasicSliderUI extends SliderUI */ protected int xPositionForValue(int value) { - double min = slider.getMinimum(); - if (value < min) - value = (int) min; - double max = slider.getMaximum(); - if (value > max) - value = (int) max; - double len = trackRect.width; - if ((max - min) <= 0.0) - return 0; - int xPos = (int) ((value - min) / (max - min) * len + 0.5); - - if (drawInverted()) - return trackRect.x + Math.max(trackRect.width - xPos - 1, 0); + int min = slider.getMinimum(); + int max = slider.getMaximum(); + int len = trackRect.width; + double range = max - min; + double pixPerVal = len / range; + int left = trackRect.x; + int right = left + trackRect.width - 1; + int xpos; + if (! drawInverted()) + xpos = left + (int) Math.round(pixPerVal * ((double) value - min)); else - return trackRect.x + Math.min(xPos, trackRect.width - 1); + xpos = right - (int) Math.round(pixPerVal * ((double) value - min)); + xpos = Math.max(left, xpos); + xpos = Math.min(right, xpos); + return xpos; } /** @@ -2225,22 +2059,21 @@ public class BasicSliderUI extends SliderUI */ protected int yPositionForValue(int value) { - double min = slider.getMinimum(); - if (value < min) - value = (int) min; - double max = slider.getMaximum(); - if (value > max) - value = (int) max; + int min = slider.getMinimum(); + int max = slider.getMaximum(); int len = trackRect.height; - if ((max - min) <= 0.0) - return 0; - - int yPos = (int) ((value - min) / (max - min) * len + 0.5); - + double range = max - min; + double pixPerVal = len / range; + int top = trackRect.y; + int bottom = top + trackRect.height - 1; + int ypos; if (! drawInverted()) - return trackRect.y + trackRect.height - Math.max(yPos, 1); + ypos = top + (int) Math.round(pixPerVal * ((double) max - value)); else - return trackRect.y + Math.min(yPos, trackRect.height - 1); + ypos = top + (int) Math.round(pixPerVal * ((double) value - min)); + ypos = Math.max(top, ypos); + ypos = Math.min(bottom, ypos); + return ypos; } /** @@ -2494,4 +2327,13 @@ public class BasicSliderUI extends SliderUI ); return map; } + + /** + * Small utility method to save me from typing the hell out of myself in + * paint(). + */ + private boolean hitClip(Graphics g, Rectangle r) + { + return g.hitClip(r.x, r.y, r.width, r.height); + } } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java b/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java index 06d32984efb..95468caa972 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java @@ -38,12 +38,15 @@ exception statement from your version. */ package javax.swing.plaf.basic; +import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Insets; import java.awt.LayoutManager; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; @@ -52,7 +55,7 @@ import java.beans.PropertyChangeListener; import javax.swing.JButton; import javax.swing.JSplitPane; -import javax.swing.SwingConstants; +import javax.swing.UIManager; import javax.swing.border.Border; /** @@ -72,6 +75,207 @@ public class BasicSplitPaneDivider extends Container implements PropertyChangeListener { /** + * The buttons used as one touch buttons. + */ + private class BasicOneTouchButton + extends JButton + { + /** + * Denotes a left button. + */ + static final int LEFT = 0; + + /** + * Denotes a right button. + */ + static final int RIGHT = 1; + + /** + * The x points for the arrow. + */ + private int[] xpoints; + + /** + * The y points for the arrow. + */ + private int[] ypoints; + + /** + * Either LEFT or RIGHT. + */ + private int direction; + + /** + * Creates a new instance. + * + * @param dir either LEFT or RIGHT + */ + BasicOneTouchButton(int dir) + { + direction = dir; + xpoints = new int[3]; + ypoints = new int[3]; + } + + /** + * Never allow borders. + */ + public void setBorder(Border b) + { + } + + /** + * Never allow focus traversal. + */ + public boolean isFocusTraversable() + { + return false; + } + + /** + * Paints the one touch button. + */ + public void paint(Graphics g) + { + if (splitPane != null) + { + // Fill background. + g.setColor(splitPane.getBackground()); + g.fillRect(0, 0, getWidth(), getHeight()); + + // Draw arrow. + int size; + if (direction == LEFT) + { + if (orientation == JSplitPane.VERTICAL_SPLIT) + { + size = Math.min(getHeight(), ONE_TOUCH_SIZE); + xpoints[0] = 0; + xpoints[1] = size / 2; + xpoints[2] = size; + ypoints[0] = size; + ypoints[1] = 0; + ypoints[2] = size; + } + else + { + size = Math.min(getWidth(), ONE_TOUCH_SIZE); + xpoints[0] = size; + xpoints[1] = 0; + xpoints[2] = size; + ypoints[0] = 0; + ypoints[1] = size / 2; + ypoints[2] = size; + } + } + else + { + if (orientation == JSplitPane.VERTICAL_SPLIT) + { + size = Math.min(getHeight(), ONE_TOUCH_SIZE); + xpoints[0] = 0; + xpoints[1] = size / 2; + xpoints[2] = size; + ypoints[0] = 0; + ypoints[1] = size; + ypoints[2] = 0; + } + else + { + size = Math.min(getWidth(), ONE_TOUCH_SIZE); + xpoints[0] = 0; + xpoints[1] = size; + xpoints[2] = 0; + ypoints[0] = 0; + ypoints[1] = size / 2; + ypoints[2] = size; + } + } + g.setColor(Color.BLACK); + g.fillPolygon(xpoints, ypoints, 3); + } + } + } + + /** + * Listens for actions on the one touch buttons. + */ + private class OneTouchAction + implements ActionListener + { + + public void actionPerformed(ActionEvent ev) + { + Insets insets = splitPane.getInsets(); + int lastLoc = splitPane.getLastDividerLocation(); + int currentLoc = splitPaneUI.getDividerLocation(splitPane); + int newLoc; + + if (ev.getSource() == leftButton) + { + if (orientation == JSplitPane.VERTICAL_SPLIT) + { + if (currentLoc + >= splitPane.getHeight() - insets.bottom - getHeight()) + { + newLoc = Math.min(splitPane.getMaximumDividerLocation(), + lastLoc); + } + else + { + newLoc = insets.top; + } + } + else + { + if (currentLoc + >= splitPane.getWidth() - insets.right - getWidth()) + { + newLoc = Math.min(splitPane.getMaximumDividerLocation(), + lastLoc); + } + else + { + newLoc = insets.left; + } + } + } + else + { + if (orientation == JSplitPane.VERTICAL_SPLIT) + { + if (currentLoc == insets.top) + { + newLoc = Math.min(splitPane.getMaximumDividerLocation(), + lastLoc); + } + else + { + newLoc = splitPane.getHeight() - insets.top - getHeight(); + } + } + else + { + if (currentLoc == insets.left) + { + newLoc = Math.min(splitPane.getMaximumDividerLocation(), + lastLoc); + } + else + { + newLoc = splitPane.getWidth() - insets.left - getWidth(); + } + } + } + if (currentLoc != newLoc) + { + splitPane.setDividerLocation(newLoc); + splitPane.setLastDividerLocation(currentLoc); + } + } + } + + /** * Determined using the serialver tool of Apple/Sun JDK 1.3.1 * on MacOS X 10.1.5. */ @@ -161,6 +365,14 @@ public class BasicSplitPaneDivider extends Container transient int currentDividerLocation = 1; /** + * Indicates if the ont touch buttons are laid out centered or at the + * top/left. + * + * Package private to avoid accessor method. + */ + boolean centerOneTouchButtons; + + /** * Constructs a new divider. * * @param ui the UI delegate of the enclosing JSplitPane. @@ -170,6 +382,8 @@ public class BasicSplitPaneDivider extends Container setLayout(new DividerLayout()); setBasicSplitPaneUI(ui); setDividerSize(splitPane.getDividerSize()); + centerOneTouchButtons = + UIManager.getBoolean("SplitPane.centerOneTouchButtons"); } /** @@ -202,7 +416,8 @@ public class BasicSplitPaneDivider extends Container addMouseMotionListener(mouseHandler); hiddenDivider = splitPaneUI.getNonContinuousLayoutDivider(); orientation = splitPane.getOrientation(); - oneTouchExpandableChanged(); + if (splitPane.isOneTouchExpandable()) + oneTouchExpandableChanged(); } } @@ -293,7 +508,12 @@ public class BasicSplitPaneDivider extends Container */ public Dimension getPreferredSize() { - return getLayout().preferredLayoutSize(this); + Dimension d; + if (orientation == JSplitPane.HORIZONTAL_SPLIT) + d = new Dimension(getDividerSize(), 1); + else + d = new Dimension(1, getDividerSize()); + return d; } /** @@ -320,11 +540,9 @@ public class BasicSplitPaneDivider extends Container else if (e.getPropertyName().equals(JSplitPane.ORIENTATION_PROPERTY)) { orientation = splitPane.getOrientation(); - if (splitPane.isOneTouchExpandable()) - { - layout(); - repaint(); - } + invalidate(); + if (splitPane != null) + splitPane.revalidate(); } else if (e.getPropertyName().equals(JSplitPane.DIVIDER_SIZE_PROPERTY)) dividerSize = splitPane.getDividerSize(); @@ -345,11 +563,6 @@ public class BasicSplitPaneDivider extends Container dividerSize = getSize(); border.paintBorder(this, g, 0, 0, dividerSize.width, dividerSize.height); } - if (splitPane.isOneTouchExpandable()) - { - ((BasicArrowButton) rightButton).paint(g); - ((BasicArrowButton) leftButton).paint(g); - } } /** @@ -361,31 +574,23 @@ public class BasicSplitPaneDivider extends Container if (splitPane.isOneTouchExpandable()) { leftButton = createLeftOneTouchButton(); - rightButton = createRightOneTouchButton(); - add(leftButton); - add(rightButton); + if (leftButton != null) + leftButton.addActionListener(new OneTouchAction()); - leftButton.addMouseListener(mouseHandler); - rightButton.addMouseListener(mouseHandler); + rightButton = createRightOneTouchButton(); + if (rightButton != null) + rightButton.addActionListener(new OneTouchAction()); - // Set it to 1. - currentDividerLocation = 1; - } - else - { + // Only add them when both are non-null. if (leftButton != null && rightButton != null) - { - leftButton.removeMouseListener(mouseHandler); - rightButton.removeMouseListener(mouseHandler); - - remove(leftButton); - remove(rightButton); - leftButton = null; - rightButton = null; + { + add(leftButton); + add(rightButton); } } - layout(); - repaint(); + invalidate(); + if (splitPane != null) + splitPane.revalidate(); } /** @@ -396,12 +601,9 @@ public class BasicSplitPaneDivider extends Container */ protected JButton createLeftOneTouchButton() { - int dir = SwingConstants.WEST; - if (orientation == JSplitPane.VERTICAL_SPLIT) - dir = SwingConstants.NORTH; - JButton button = new BasicArrowButton(dir); - button.setBorder(null); - + JButton button = new BasicOneTouchButton(BasicOneTouchButton.LEFT); + button.setMinimumSize(new Dimension(ONE_TOUCH_SIZE, ONE_TOUCH_SIZE)); + button.setRequestFocusEnabled(false); return button; } @@ -413,11 +615,9 @@ public class BasicSplitPaneDivider extends Container */ protected JButton createRightOneTouchButton() { - int dir = SwingConstants.EAST; - if (orientation == JSplitPane.VERTICAL_SPLIT) - dir = SwingConstants.SOUTH; - JButton button = new BasicArrowButton(dir); - button.setBorder(null); + JButton button = new BasicOneTouchButton(BasicOneTouchButton.RIGHT); + button.setMinimumSize(new Dimension(ONE_TOUCH_SIZE, ONE_TOUCH_SIZE)); + button.setRequestFocusEnabled(false); return button; } @@ -521,25 +721,6 @@ public class BasicSplitPaneDivider extends Container */ public void mousePressed(MouseEvent e) { - if (splitPane.isOneTouchExpandable()) - { - if (e.getSource() == leftButton) - { - currentDividerLocation--; - if (currentDividerLocation < 0) - currentDividerLocation = 0; - moveDividerTo(currentDividerLocation); - return; - } - else if (e.getSource() == rightButton) - { - currentDividerLocation++; - if (currentDividerLocation > 2) - currentDividerLocation = 2; - moveDividerTo(currentDividerLocation); - return; - } - } isDragging = true; currentDividerLocation = 1; if (orientation == JSplitPane.HORIZONTAL_SPLIT) @@ -797,10 +978,64 @@ public class BasicSplitPaneDivider extends Container */ public void layoutContainer(Container c) { - if (splitPane.isOneTouchExpandable()) + if (leftButton != null && rightButton != null + && c == BasicSplitPaneDivider.this) { - changeButtonOrientation(); - positionButtons(); + if (splitPane.isOneTouchExpandable()) + { + Insets insets = getInsets(); + if (orientation == JSplitPane.HORIZONTAL_SPLIT) + { + int size = getWidth() - insets.left - insets.right; + size = Math.max(size, 0); + size = Math.min(size, ONE_TOUCH_SIZE); + int x, y; + if (centerOneTouchButtons) + { + y = insets.top; + x = (getWidth() - size) / 2; + } + else + { + x = insets.left; + y = 0; + } + + leftButton.setBounds(x, y + ONE_TOUCH_OFFSET, size, + size * 2); + rightButton.setBounds(x, y + ONE_TOUCH_OFFSET + + ONE_TOUCH_SIZE * 2, size, size * 2); + } + else + { + int size = getHeight() - insets.top - insets.bottom; + size = Math.max(size, 0); + size = Math.min(size, ONE_TOUCH_SIZE); + int x, y; + if (centerOneTouchButtons) + { + x = insets.left; + y = (getHeight() - size) / 2; + } + else + { + x = 0; + y = insets.top; + } + leftButton.setBounds(x + ONE_TOUCH_OFFSET, y, size * 2, + size); + rightButton.setBounds(x + ONE_TOUCH_OFFSET + + ONE_TOUCH_SIZE * 2, y, size * 2, + size); + } + } + else + { + // The JDK sets this bounds for disabled one touch buttons, so + // do we. + leftButton.setBounds(-5, -5, 1, 1); + rightButton.setBounds(-5, -5, 1, 1); + } } } @@ -838,50 +1073,5 @@ public class BasicSplitPaneDivider extends Container // Do nothing. } - /** - * This method changes the button orientation when the orientation of the - * SplitPane changes. - */ - private void changeButtonOrientation() - { - if (orientation == JSplitPane.HORIZONTAL_SPLIT) - { - ((BasicArrowButton) rightButton).setDirection(SwingConstants.EAST); - ((BasicArrowButton) leftButton).setDirection(SwingConstants.WEST); - } - else - { - ((BasicArrowButton) rightButton).setDirection(SwingConstants.SOUTH); - ((BasicArrowButton) leftButton).setDirection(SwingConstants.NORTH); - } - } - - /** - * This method sizes and positions the buttons. - */ - private void positionButtons() - { - int w = 0; - int h = 0; - if (orientation == JSplitPane.HORIZONTAL_SPLIT) - { - rightButton.setLocation(ONE_TOUCH_OFFSET, ONE_TOUCH_OFFSET); - leftButton.setLocation(ONE_TOUCH_OFFSET, - ONE_TOUCH_OFFSET + 2 * ONE_TOUCH_SIZE); - w = dividerSize - 2 * ONE_TOUCH_OFFSET; - h = 2 * ONE_TOUCH_SIZE; - } - else - { - leftButton.setLocation(ONE_TOUCH_OFFSET, ONE_TOUCH_OFFSET); - rightButton.setLocation(ONE_TOUCH_OFFSET + 2 * ONE_TOUCH_SIZE, - ONE_TOUCH_OFFSET); - h = dividerSize - 2 * ONE_TOUCH_OFFSET; - w = 2 * ONE_TOUCH_SIZE; - } - Dimension dims = new Dimension(w, h); - leftButton.setSize(dims); - rightButton.setSize(dims); - } } } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java index 2d595597424..b7cc425482d 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneUI.java @@ -63,6 +63,7 @@ import javax.swing.JSlider; import javax.swing.JSplitPane; import javax.swing.KeyStroke; import javax.swing.LookAndFeel; +import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.plaf.ActionMapUIResource; @@ -107,13 +108,34 @@ public class BasicSplitPaneUI extends SplitPaneUI protected int[] sizes = new int[3]; /** + * This is used to determine if we are vertical or horizontal layout. + * In the JDK, the BasicVerticalLayoutManager seems to have no more + * methods implemented (as of JDK5), so we keep this state here. + */ + private int axis; + + /** * Creates a new instance. This is package private because the reference * implementation has no public constructor either. Still, we need to * call it from BasicVerticalLayoutManager. */ BasicHorizontalLayoutManager() { - // Nothing to do here. + this(SwingConstants.HORIZONTAL); + } + + /** + * Creates a new instance for a specified axis. This is provided for + * compatibility, since the BasicVerticalLayoutManager seems to have + * no more implementation in the RI, according to the specs. So + * we handle all the axis specific stuff here. + * + * @param a the axis, either SwingConstants#HORIZONTAL, + * or SwingConstants#VERTICAL + */ + BasicHorizontalLayoutManager(int a) + { + axis = a; } /** @@ -167,7 +189,12 @@ public class BasicSplitPaneUI extends SplitPaneUI */ protected int getAvailableSize(Dimension containerSize, Insets insets) { - return containerSize.width - insets.left - insets.right; + int size; + if (axis == SwingConstants.HORIZONTAL) + size = containerSize.width - insets.left - insets.right; + else + size = containerSize.height - insets.top - insets.bottom; + return size; } /** @@ -180,9 +207,15 @@ public class BasicSplitPaneUI extends SplitPaneUI */ protected int getInitialLocation(Insets insets) { + int loc = 0; if (insets != null) - return insets.left; - return 0; + { + if (axis == SwingConstants.HORIZONTAL) + loc = insets.left; + else + loc = insets.top; + } + return loc; } /** @@ -195,7 +228,7 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public float getLayoutAlignmentX(Container target) { - return target.getAlignmentX(); + return 0.0f; } /** @@ -208,7 +241,7 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public float getLayoutAlignmentY(Container target) { - return target.getAlignmentY(); + return 0.0f; } /** @@ -220,10 +253,19 @@ public class BasicSplitPaneUI extends SplitPaneUI */ protected int getPreferredSizeOfComponent(Component c) { + int size = 0; Dimension dims = c.getPreferredSize(); - if (dims != null) - return dims.width; - return 0; + if (axis == SwingConstants.HORIZONTAL) + { + if (dims != null) + size = dims.width; + } + else + { + if (dims != null) + size = dims.height; + } + return size; } /** @@ -235,7 +277,12 @@ public class BasicSplitPaneUI extends SplitPaneUI */ protected int getSizeOfComponent(Component c) { - return c.getWidth(); + int size; + if (axis == SwingConstants.HORIZONTAL) + size = c.getHeight(); + else + size = c.getWidth(); + return size; } /** @@ -273,8 +320,17 @@ public class BasicSplitPaneUI extends SplitPaneUI Dimension dims = split.getSize(); int loc = getInitialLocation(insets); int available = getAvailableSize(dims, insets); - sizes[0] = getDividerLocation(split) - loc; + sizes[0] = split.getDividerLocation(); sizes[1] = available - sizes[0] - sizes[2]; + + // According to a Mauve test we only honour the minimum + // size of the components, when the dividerLocation hasn't + // been excplicitly set. + if (! dividerLocationSet) + { + sizes[0] = Math.max(sizes[0], minimumSizeOfComponent(0)); + sizes[1] = Math.max(sizes[1], minimumSizeOfComponent(1)); + } // The size of the divider won't change. // Layout component#1. @@ -313,27 +369,30 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public Dimension minimumLayoutSize(Container target) { + Dimension dim = new Dimension(); if (target instanceof JSplitPane) { - JSplitPane split = (JSplitPane) target; - Insets insets = target.getInsets(); - - int height = 0; - int width = 0; + int primary = 0; + int secondary = 0; for (int i = 0; i < components.length; i++) { - if (components[i] == null) - continue; - Dimension dims = components[i].getMinimumSize(); - if (dims != null) + if (components[i] != null) { - width += dims.width; - height = Math.max(height, dims.height); + Dimension dims = components[i].getMinimumSize(); + primary += axis == SwingConstants.HORIZONTAL ? dims.width + : dims.height; + int sec = axis == SwingConstants.HORIZONTAL ? dims.height + : dims.width; + secondary = Math.max(sec, secondary); } } - return new Dimension(width, height); + int width = axis == SwingConstants.HORIZONTAL ? primary : secondary; + int height = axis == SwingConstants.VERTICAL ? secondary : primary; + + Insets i = splitPane.getInsets(); + dim.setSize(width + i.left + i.right, height + i.top + i.bottom); } - return null; + return dim; } /** @@ -347,28 +406,30 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public Dimension preferredLayoutSize(Container target) { + Dimension dim = new Dimension(); if (target instanceof JSplitPane) { - JSplitPane split = (JSplitPane) target; - Insets insets = target.getInsets(); - - int height = 0; - int width = 0; + int primary = 0; + int secondary = 0; for (int i = 0; i < components.length; i++) { - if (components[i] == null) - continue; - Dimension dims = components[i].getPreferredSize(); - if (dims != null) + if (components[i] != null) { - width += dims.width; - if (!(components[i] instanceof BasicSplitPaneDivider)) - height = Math.max(height, dims.height); + Dimension dims = components[i].getPreferredSize(); + primary += axis == SwingConstants.HORIZONTAL ? dims.width + : dims.height; + int sec = axis == SwingConstants.HORIZONTAL ? dims.height + : dims.width; + secondary = Math.max(sec, secondary); } } - return new Dimension(width, height); + int width = axis == SwingConstants.HORIZONTAL ? primary : secondary; + int height = axis == SwingConstants.VERTICAL ? secondary : primary; + + Insets i = splitPane.getInsets(); + dim.setSize(width + i.left + i.right, height + i.top + i.bottom); } - return null; + return dim; } /** @@ -406,8 +467,6 @@ public class BasicSplitPaneUI extends SplitPaneUI { for (int i = 0; i < components.length; i++) resetSizeAt(i); - setDividerLocation(splitPane, - getInitialLocation(splitPane.getInsets()) + sizes[0]); } /** @@ -425,11 +484,23 @@ public class BasicSplitPaneUI extends SplitPaneUI protected void setComponentToSize(Component c, int size, int location, Insets insets, Dimension containerSize) { - int w = size; - int h = containerSize.height - insets.top - insets.bottom; - int x = location; - int y = insets.top; - c.setBounds(x, y, w, h); + if (insets != null) + { + if (axis == SwingConstants.HORIZONTAL) + c.setBounds(location, insets.top, size, + containerSize.height - insets.top - insets.bottom); + else + c.setBounds(insets.left, location, + containerSize.width - insets.left - insets.right, + size); + } + else + { + if (axis == SwingConstants.HORIZONTAL) + c.setBounds(location, 0, size, containerSize.height); + else + c.setBounds(0, location, containerSize.width, size); + } } /** @@ -462,7 +533,6 @@ public class BasicSplitPaneUI extends SplitPaneUI resetSizeAt(1); } components[2] = divider; - resetSizeAt(2); } /** @@ -485,10 +555,13 @@ public class BasicSplitPaneUI extends SplitPaneUI int minimumSizeOfComponent(int index) { Dimension dims = components[index].getMinimumSize(); + int size = 0; if (dims != null) - return dims.width; - else - return 0; + if (axis == SwingConstants.HORIZONTAL) + size = dims.width; + else + size = dims.height; + return size; } } //end BasicHorizontalLayoutManager @@ -504,163 +577,11 @@ public class BasicSplitPaneUI extends SplitPaneUI extends BasicHorizontalLayoutManager { /** - * This method returns the height of the container minus the top and - * bottom inset. - * - * @param containerSize The size of the container. - * @param insets The insets of the container. - * - * @return The height minus top and bottom inset. - */ - protected int getAvailableSize(Dimension containerSize, Insets insets) - { - return containerSize.height - insets.top - insets.bottom; - } - - /** - * This method returns the top inset. - * - * @param insets The Insets to use. - * - * @return The top inset. - */ - protected int getInitialLocation(Insets insets) - { - return insets.top; - } - - /** - * This method returns the preferred height of the component. - * - * @param c The component to measure. - * - * @return The preferred height of the component. - */ - protected int getPreferredSizeOfComponent(Component c) - { - Dimension dims = c.getPreferredSize(); - if (dims != null) - return dims.height; - return 0; - } - - /** - * This method returns the current height of the component. - * - * @param c The component to measure. - * - * @return The current height of the component. - */ - protected int getSizeOfComponent(Component c) - { - return c.getHeight(); - } - - /** - * This method returns the minimum layout size. The minimum height is the - * sum of all the components' minimum heights. The minimum width is the - * maximum of all the components' minimum widths. - * - * @param container The container to measure. - * - * @return The minimum size. + * Creates a new instance. */ - public Dimension minimumLayoutSize(Container container) + public BasicVerticalLayoutManager() { - if (container instanceof JSplitPane) - { - JSplitPane split = (JSplitPane) container; - Insets insets = container.getInsets(); - - int height = 0; - int width = 0; - for (int i = 0; i < components.length; i++) - { - if (components[i] == null) - continue; - Dimension dims = components[i].getMinimumSize(); - if (dims != null) - { - height += dims.height; - width = Math.max(width, dims.width); - } - } - return new Dimension(width, height); - } - return null; - } - - /** - * This method returns the preferred layout size. The preferred height is - * the sum of all the components' preferred heights. The preferred width - * is the maximum of all the components' preferred widths. - * - * @param container The container to measure. - * - * @return The preferred size. - */ - public Dimension preferredLayoutSize(Container container) - { - if (container instanceof JSplitPane) - { - JSplitPane split = (JSplitPane) container; - Insets insets = container.getInsets(); - - int height = 0; - int width = 0; - for (int i = 0; i < components.length; i++) - { - if (components[i] == null) - continue; - Dimension dims = components[i].getPreferredSize(); - if (dims != null) - { - height += dims.height; - width = Math.max(width, dims.width); - } - } - return new Dimension(width, height); - } - return null; - } - - /** - * This method sets the bounds of the given component. The y coordinate is - * the location given. The x coordinate is the left inset. The height is - * the size given. The width is the container size minus the left and - * right inset. - * - * @param c The component to set bounds for. - * @param size The height. - * @param location The y coordinate. - * @param insets The insets to use. - * @param containerSize The container's size. - */ - protected void setComponentToSize(Component c, int size, int location, - Insets insets, Dimension containerSize) - { - int y = location; - int x = insets.left; - int h = size; - int w = containerSize.width - insets.left - insets.right; - c.setBounds(x, y, w, h); - } - - /** - * This method returns the minimum height of the component at the given - * index. - * - * @param index The index of the component to check. - * - * @return The minimum height of the given component. - */ - int minimumSizeOfComponent(int index) - { - Dimension dims = components[index].getMinimumSize(); - if (dims != null) - return dims.height; - else - return 0; + super(SwingConstants.VERTICAL); } } @@ -941,7 +862,13 @@ public class BasicSplitPaneUI extends SplitPaneUI /** The JSplitPane that this UI draws. */ protected JSplitPane splitPane; - private int dividerLocation; + /** + * True, when setDividerLocation() has been called at least + * once on the JSplitPane, false otherwise. + * + * This is package private to avoid a synthetic accessor method. + */ + boolean dividerLocationSet; /** * Creates a new BasicSplitPaneUI object. @@ -973,6 +900,7 @@ public class BasicSplitPaneUI extends SplitPaneUI if (c instanceof JSplitPane) { splitPane = (JSplitPane) c; + dividerLocationSet = false; installDefaults(); installListeners(); installKeyboardActions(); @@ -990,6 +918,7 @@ public class BasicSplitPaneUI extends SplitPaneUI uninstallListeners(); uninstallDefaults(); + dividerLocationSet = false; splitPane = null; } @@ -1007,8 +936,10 @@ public class BasicSplitPaneUI extends SplitPaneUI nonContinuousLayoutDivider = createDefaultNonContinuousLayoutDivider(); splitPane.add(divider, JSplitPane.DIVIDER); - // There is no need to add the nonContinuousLayoutDivider - splitPane.setDividerSize(UIManager.getInt("SplitPane.dividerSize")); + // There is no need to add the nonContinuousLayoutDivider. + dividerSize = UIManager.getInt("SplitPane.dividerSize"); + splitPane.setDividerSize(dividerSize); + divider.setDividerSize(dividerSize); splitPane.setOpaque(true); } @@ -1136,8 +1067,10 @@ public class BasicSplitPaneUI extends SplitPaneUI new AbstractAction("negativeIncrement") { public void actionPerformed(ActionEvent event) { - setDividerLocation(splitPane, Math.max(dividerLocation - - KEYBOARD_DIVIDER_MOVE_OFFSET, 0)); + int oldLoc = splitPane.getDividerLocation(); + int newLoc = + Math.max(oldLoc - KEYBOARD_DIVIDER_MOVE_OFFSET, 0); + splitPane.setDividerLocation(newLoc); } } ); @@ -1145,8 +1078,10 @@ public class BasicSplitPaneUI extends SplitPaneUI new AbstractAction("positiveIncrement") { public void actionPerformed(ActionEvent event) { - setDividerLocation(splitPane, dividerLocation - + KEYBOARD_DIVIDER_MOVE_OFFSET); + int oldLoc = splitPane.getDividerLocation(); + int newLoc = + Math.max(oldLoc + KEYBOARD_DIVIDER_MOVE_OFFSET, 0); + splitPane.setDividerLocation(newLoc); } } ); @@ -1436,7 +1371,7 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public void setDividerLocation(JSplitPane jc, int location) { - dividerLocation = location; + dividerLocationSet = true; splitPane.revalidate(); splitPane.repaint(); } @@ -1450,7 +1385,12 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public int getDividerLocation(JSplitPane jc) { - return dividerLocation; + int loc; + if (jc.getOrientation() == JSplitPane.HORIZONTAL_SPLIT) + loc = divider.getX(); + else + loc = divider.getY(); + return loc; } /** @@ -1523,7 +1463,7 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public Dimension getPreferredSize(JComponent jc) { - return layoutManager.preferredLayoutSize((Container) jc); + return layoutManager.preferredLayoutSize(jc); } /** @@ -1535,7 +1475,7 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public Dimension getMinimumSize(JComponent jc) { - return layoutManager.minimumLayoutSize((Container) jc); + return layoutManager.minimumLayoutSize(jc); } /** @@ -1547,7 +1487,7 @@ public class BasicSplitPaneUI extends SplitPaneUI */ public Dimension getMaximumSize(JComponent jc) { - return layoutManager.maximumLayoutSize((Container) jc); + return layoutManager.maximumLayoutSize(jc); } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java index 11f25167d21..0d1fa1eed9b 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java @@ -76,7 +76,6 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.plaf.ActionMapUIResource; import javax.swing.plaf.ComponentUI; -import javax.swing.plaf.PanelUI; import javax.swing.plaf.TabbedPaneUI; import javax.swing.plaf.UIResource; import javax.swing.text.View; @@ -252,7 +251,16 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants { public void mouseReleased(MouseEvent e) { - // Nothing to do here. + Object s = e.getSource(); + + // Event may originate from the viewport in + // SCROLL_TAB_LAYOUT mode. It is redisptached + // through the tabbed pane then. + if (tabPane != e.getSource()) + { + redispatchEvent(e); + e.setSource(s); + } } /** @@ -264,6 +272,16 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants public void mousePressed(MouseEvent e) { Object s = e.getSource(); + + // Event may originate from the viewport in + // SCROLL_TAB_LAYOUT mode. It is redisptached + // through the tabbed pane then. + if (tabPane != e.getSource()) + { + redispatchEvent(e); + e.setSource(s); + } + int placement = tabPane.getTabPlacement(); if (s == incrButton) @@ -298,47 +316,61 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants if(!decrButton.isEnabled()) return; - // The scroll location may be zero but the offset - // greater than zero because of an adjustement to - // make a partially visible tab completely visible. - if (currentScrollLocation > 0) - currentScrollLocation--; - - // Set the offset back to 0 and recompute it. - currentScrollOffset = 0; - - switch (placement) - { - case JTabbedPane.TOP: - case JTabbedPane.BOTTOM: - // Take the tab area inset into account. - if (currentScrollLocation > 0) - currentScrollOffset = getTabAreaInsets(placement).left; - // Recompute scroll offset. - for (int i = 0; i < currentScrollLocation; i++) - currentScrollOffset += rects[i].width; - break; - default: - // Take the tab area inset into account. - if (currentScrollLocation > 0) - currentScrollOffset = getTabAreaInsets(placement).top; + // The scroll location may be zero but the offset + // greater than zero because of an adjustement to + // make a partially visible tab completely visible. + if (currentScrollLocation > 0) + currentScrollLocation--; - for (int i = 0; i < currentScrollLocation; i++) - currentScrollOffset += rects[i].height; - } + // Set the offset back to 0 and recompute it. + currentScrollOffset = 0; + + switch (placement) + { + case JTabbedPane.TOP: + case JTabbedPane.BOTTOM: + // Take the tab area inset into account. + if (currentScrollLocation > 0) + currentScrollOffset = getTabAreaInsets(placement).left; + // Recompute scroll offset. + for (int i = 0; i < currentScrollLocation; i++) + currentScrollOffset += rects[i].width; + break; + default: + // Take the tab area inset into account. + if (currentScrollLocation > 0) + currentScrollOffset = getTabAreaInsets(placement).top; + + for (int i = 0; i < currentScrollLocation; i++) + currentScrollOffset += rects[i].height; + } - updateViewPosition(); - updateButtons(); + updateViewPosition(); + updateButtons(); - tabPane.repaint(); - } else if (tabPane.isEnabled()) + tabPane.repaint(); + } + else if (tabPane.isEnabled()) { int index = tabForCoordinate(tabPane, e.getX(), e.getY()); + if (!tabPane.isEnabledAt(index)) + return; + if (tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT && s == panel) + { scrollTab(index, placement); + + tabPane.setSelectedIndex(index); + tabPane.repaint(); + } + else + { + tabPane.setSelectedIndex(index); + tabPane.revalidate(); + tabPane.repaint(); + } - tabPane.setSelectedIndex(index); } } @@ -347,11 +379,22 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants * Receives notification when the mouse pointer has entered the tabbed * pane. * - * @param ev the mouse event + * @param e the mouse event */ - public void mouseEntered(MouseEvent ev) + public void mouseEntered(MouseEvent e) { - int tabIndex = tabForCoordinate(tabPane, ev.getX(), ev.getY()); + Object s = e.getSource(); + + // Event may originate from the viewport in + // SCROLL_TAB_LAYOUT mode. It is redisptached + // through the tabbed pane then. + if (tabPane != e.getSource()) + { + redispatchEvent(e); + e.setSource(s); + } + + int tabIndex = tabForCoordinate(tabPane, e.getX(), e.getY()); setRolloverTab(tabIndex); } @@ -359,10 +402,21 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants * Receives notification when the mouse pointer has exited the tabbed * pane. * - * @param ev the mouse event + * @param e the mouse event */ - public void mouseExited(MouseEvent ev) + public void mouseExited(MouseEvent e) { + Object s = e.getSource(); + + // Event may originate from the viewport in + // SCROLL_TAB_LAYOUT mode. It is redisptached + // through the tabbed pane then. + if (tabPane != e.getSource()) + { + redispatchEvent(e); + e.setSource(s); + } + setRolloverTab(-1); } @@ -374,9 +428,37 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants */ public void mouseMoved(MouseEvent ev) { + Object s = ev.getSource(); + + if (tabPane != ev.getSource()) + { + ev.setSource(tabPane); + tabPane.dispatchEvent(ev); + + ev.setSource(s); + } + int tabIndex = tabForCoordinate(tabPane, ev.getX(), ev.getY()); setRolloverTab(tabIndex); } + + /** Modifies the mouse event to originate from + * the tabbed pane and redispatches it. + * + * @param me + */ + void redispatchEvent(MouseEvent me) + { + me.setSource(tabPane); + Point viewPos = viewport.getViewPosition(); + viewPos.x -= viewport.getX(); + viewPos.y -= viewport.getY(); + me.translatePoint(-viewPos.x, -viewPos.y); + tabPane.dispatchEvent(me); + + me.translatePoint(viewPos.x, viewPos.y); + } + } /** @@ -396,20 +478,56 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants */ public void propertyChange(PropertyChangeEvent e) { - if (e.getPropertyName().equals("tabLayoutPolicy")) + out: { - currentScrollLocation = currentScrollOffset = 0; - - layoutManager = createLayoutManager(); - - tabPane.setLayout(layoutManager); - } - else if (e.getPropertyName().equals("tabPlacement") - && tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) - { - incrButton = createIncreaseButton(); - decrButton = createDecreaseButton(); + if (e.getPropertyName().equals("tabLayoutPolicy")) + { + currentScrollLocation = currentScrollOffset = 0; + + layoutManager = createLayoutManager(); + + tabPane.setLayout(layoutManager); + } + else if (e.getPropertyName().equals("tabPlacement") + && tabPane.getTabLayoutPolicy() + == JTabbedPane.SCROLL_TAB_LAYOUT) + { + incrButton = createIncreaseButton(); + decrButton = createDecreaseButton(); + + // If the tab placement value was changed of a tabbed pane + // in SCROLL_TAB_LAYOUT mode we investigate the change to + // implement the following behavior which was observed in + // the RI: + // The scrolling offset will be reset if we change to + // a direction which is orthogonal to the current + // direction and stays the same if it is parallel. + + int oldPlacement = ((Integer) e.getOldValue()).intValue(); + int newPlacement = ((Integer) e.getNewValue()).intValue(); + switch (newPlacement) + { + case JTabbedPane.TOP: + case JTabbedPane.BOTTOM: + if (oldPlacement == JTabbedPane.TOP + || oldPlacement == JTabbedPane.BOTTOM) + break out; + + currentScrollOffset = getTabAreaInsets(newPlacement).left; + break; + default: + if (oldPlacement == JTabbedPane.LEFT + || oldPlacement == JTabbedPane.RIGHT) + break out; + + currentScrollOffset = getTabAreaInsets(newPlacement).top; + } + + updateViewPosition(); + updateButtons(); + } } + tabPane.revalidate(); tabPane.repaint(); } @@ -784,6 +902,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants default: tabAreaHeight = calculateTabAreaHeight(tabPlacement, runCount, maxTabHeight); + compX = insets.left + contentBorderInsets.left; compY = tabAreaHeight + insets.top + contentBorderInsets.top; } @@ -838,83 +957,51 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants protected void normalizeTabRuns(int tabPlacement, int tabCount, int start, int max) { - Insets tabAreaInsets = getTabAreaInsets(tabPlacement); - if (tabPlacement == SwingUtilities.TOP - || tabPlacement == SwingUtilities.BOTTOM) + boolean horizontal = tabPlacement == TOP || tabPlacement == BOTTOM; + int currentRun = runCount - 1; + double weight = 1.25; + for (boolean adjust = true; adjust == true;) { - // We should only do this for runCount - 1, cause we can - // only shift that many times between runs. - for (int i = 1; i < runCount; i++) + int last = lastTabInRun(tabCount, currentRun); + int prevLast = lastTabInRun(tabCount, currentRun - 1); + int end; + int prevLength; + if (horizontal) { - Rectangle currRun = rects[lastTabInRun(tabCount, i)]; - Rectangle nextRun = rects[lastTabInRun(tabCount, - getNextTabRun(i))]; - int spaceInCurr = currRun.x + currRun.width; - int spaceInNext = nextRun.x + nextRun.width; - - int diffNow = spaceInCurr - spaceInNext; - int diffLater = (spaceInCurr - currRun.width) - - (spaceInNext + currRun.width); - - while (Math.abs(diffLater) < Math.abs(diffNow) - && spaceInNext + currRun.width < max) - { - tabRuns[i]--; - spaceInNext += currRun.width; - spaceInCurr -= currRun.width; - currRun = rects[lastTabInRun(tabCount, i)]; - diffNow = spaceInCurr - spaceInNext; - diffLater = (spaceInCurr - currRun.width) - - (spaceInNext + currRun.width); - } - - // Fixes the bounds of all tabs in the current - // run. - int first = tabRuns[i]; - int last = lastTabInRun(tabCount, i); - int currX = start; - for (int j = first; j <= last; j++) - { - rects[j].x = currX; - currX += rects[j].width; - } + end = rects[last].x + rects[last].width; + prevLength = (int) (maxTabWidth * weight); } - } - else - { - for (int i = 1; i < runCount; i++) + else { - Rectangle currRun = rects[lastTabInRun(tabCount, i)]; - Rectangle nextRun = rects[lastTabInRun(tabCount, - getNextTabRun(i))]; - int spaceInCurr = currRun.y + currRun.height; - int spaceInNext = nextRun.y + nextRun.height; - - int diffNow = spaceInCurr - spaceInNext; - int diffLater = (spaceInCurr - currRun.height) - - (spaceInNext + currRun.height); - while (Math.abs(diffLater) < Math.abs(diffNow) - && spaceInNext + currRun.height < max) - { - tabRuns[i]--; - spaceInNext += currRun.height; - spaceInCurr -= currRun.height; - currRun = rects[lastTabInRun(tabCount, i)]; - diffNow = spaceInCurr - spaceInNext; - diffLater = (spaceInCurr - currRun.height) - - (spaceInNext + currRun.height); - } - - // Fixes the bounds of tabs in the current run. - int first = tabRuns[i]; - int last = lastTabInRun(tabCount, i); - int currY = start; - for (int j = first; j <= last; j++) + end = rects[last].y + rects[last].height; + prevLength = (int) (maxTabWidth * weight * 2); + } + if (max - end > prevLength) + { + tabRuns[currentRun] = prevLast; + if (horizontal) + rects[prevLast].x = start; + else + rects[prevLast].y = start; + for (int i = prevLast + 1; i <= last; i++) { - rects[j].y = currY; - currY += rects[j].height; + if (horizontal) + rects[i].x = rects[i - 1].x + rects[i - 1].width; + else + rects[i].y = rects[i - 1].y + rects[i - 1].height; } } + else if (currentRun == runCount - 1) + adjust = false; + if (currentRun - 1 > 0) + currentRun -= 1; + else + { + // Check again, but with higher ratio to avoid + // clogging up the last run. + currentRun = runCount - 1; + weight += 0.25; + } } } @@ -1325,7 +1412,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants { super.layoutContainer(pane); int tabCount = tabPane.getTabCount(); - Point p = null; if (tabCount == 0) return; int tabPlacement = tabPane.getTabPlacement(); @@ -1512,7 +1598,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants */ public void updateUI() { - setUI((PanelUI) new ScrollingPanelUI()); + setUI(new ScrollingPanelUI()); } } @@ -1892,15 +1978,19 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants final void updateViewPosition() { Point p = viewport.getViewPosition(); - + + // The unneeded coordinate must be set to zero + // in order to correctly handle placement changes. switch (tabPane.getTabPlacement()) { case JTabbedPane.LEFT: case JTabbedPane.RIGHT: + p.x = 0; p.y = currentScrollOffset; break; default: p.x = currentScrollOffset; + p.y = 0; } viewport.setViewPosition(p); @@ -2331,7 +2421,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants paintTabBorder(g, tabPlacement, tabIndex, rect.x, rect.y, rect.width, rect.height, isSelected); - // Layout label. FontMetrics fm = getFontMetrics(); Icon icon = getIconForTab(tabIndex); @@ -2369,7 +2458,17 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants Rectangle tabRect, Rectangle iconRect, Rectangle textRect, boolean isSelected) { - SwingUtilities.layoutCompoundLabel(metrics, title, icon, + // Reset the icon and text rectangles, as the result is not specified + // when the locations are not (0,0). + textRect.x = 0; + textRect.y = 0; + textRect.width = 0; + textRect.height = 0; + iconRect.x = 0; + iconRect.y = 0; + iconRect.width = 0; + iconRect.height = 0; + SwingUtilities.layoutCompoundLabel(tabPane, metrics, title, icon, SwingConstants.CENTER, SwingConstants.CENTER, SwingConstants.CENTER, @@ -2764,7 +2863,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants int width = tabPane.getWidth(); int height = tabPane.getHeight(); Insets insets = tabPane.getInsets(); - Insets tabAreaInsets = getTabAreaInsets(tabPlacement); // Calculate coordinates of content area. int x = insets.left; @@ -2869,8 +2967,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants int endgap = rects[selectedIndex].y + rects[selectedIndex].height - currentScrollOffset; - int diff = 0; - if (tabPlacement == SwingConstants.LEFT && startgap >= 0) { g.drawLine(x, y, x, startgap); @@ -2957,8 +3053,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants int endgap = rects[selectedIndex].y + rects[selectedIndex].height - currentScrollOffset; - int diff = 0; - if (tabPlacement == SwingConstants.RIGHT && startgap >= 0) { g.setColor(shadow); @@ -2988,8 +3082,13 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants } /** - * This method returns the tab bounds for the given index. - * + *

      This method returns the bounds of a tab for the given index + * and shifts it by the current scrolling offset if the tabbed + * pane is in scrolling tab layout mode.

      + * + *

      Subclassses should retrievs a tab's bounds by this method + * if they want to find out whether the tab is currently visible.

      + * * @param pane The JTabbedPane. * @param i The index to look for. * @@ -3000,6 +3099,26 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants // Need to re-layout container if tab does not exist. if (i >= rects.length) layoutManager.layoutContainer(pane); + + // Properly shift coordinates if scrolling has taken + // place. + if (pane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT) + { + Rectangle r = new Rectangle(rects[i]); + + switch(pane.getTabPlacement()) + { + case SwingConstants.TOP: + case SwingConstants.BOTTOM: + r.x -= currentScrollOffset; + break; + default: + r.y -= currentScrollOffset; + } + + return r; + } + return rects[i]; } @@ -3048,7 +3167,10 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants } /** - * This method returns the tab bounds in the given rectangle. + *

      This method returns the tab bounds in the given rectangle.

      + * + *

      The returned rectangle will be shifted by the current scroll + * offset if the tabbed pane is in scrolling tab layout mode.

      . * * @param tabIndex The index to get bounds for. * @param dest The rectangle to store bounds in. @@ -3324,21 +3446,20 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants Icon icon = getIconForTab(tabIndex); Insets insets = getTabInsets(tabPlacement, tabIndex); - int width = 0; + int width = insets.bottom + insets.right + 3; if (icon != null) { - Rectangle vr = new Rectangle(); - Rectangle ir = new Rectangle(); - Rectangle tr = new Rectangle(); - layoutLabel(tabPlacement, getFontMetrics(), tabIndex, - tabPane.getTitleAt(tabIndex), icon, vr, ir, tr, - tabIndex == tabPane.getSelectedIndex()); - width = tr.union(ir).width; + width += icon.getIconWidth() + textIconGap; } - else - width = metrics.stringWidth(tabPane.getTitleAt(tabIndex)); - width += insets.left + insets.right; + View v = getTextViewForTab(tabIndex); + if (v != null) + width += v.getPreferredSpan(View.X_AXIS); + else + { + String label = tabPane.getTitleAt(tabIndex); + width += metrics.stringWidth(label); + } return width; } @@ -3377,7 +3498,8 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants { Insets insets = getTabAreaInsets(tabPlacement); int tabAreaHeight = horizRunCount * maxTabHeight - - (horizRunCount - 1) * tabRunOverlay; + - (horizRunCount - 1) + * getTabRunOverlay(tabPlacement); tabAreaHeight += insets.top + insets.bottom; @@ -3399,7 +3521,8 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants { Insets insets = getTabAreaInsets(tabPlacement); int tabAreaWidth = vertRunCount * maxTabWidth - - (vertRunCount - 1) * tabRunOverlay; + - (vertRunCount - 1) + * getTabRunOverlay(tabPlacement); tabAreaWidth += insets.left + insets.right; diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java index abe7cab43b3..8a8eeb837fe 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java @@ -38,8 +38,6 @@ exception statement from your version. */ package javax.swing.plaf.basic; -import gnu.classpath.NotImplementedException; - import java.awt.Component; import java.awt.Cursor; import java.awt.Dimension; @@ -415,9 +413,8 @@ public class BasicTableHeaderUI extends TableHeaderUI } protected void installKeyboardActions() - throws NotImplementedException { - // TODO: Implement this properly. + // AFAICS, the RI does nothing here. } /** @@ -448,9 +445,8 @@ public class BasicTableHeaderUI extends TableHeaderUI } protected void uninstallKeyboardActions() - throws NotImplementedException { - // TODO: Implement this properly. + // AFAICS, the RI does nothing here. } /** diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java index 15be4d57e62..a672173c725 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java @@ -443,11 +443,14 @@ public class BasicTableUI extends TableUI public Dimension getPreferredSize(JComponent comp) { int prefTotalColumnWidth = 0; - for (int i = 0; i < table.getColumnCount(); i++) + TableColumnModel tcm = table.getColumnModel(); + + for (int i = 0; i < tcm.getColumnCount(); i++) { - TableColumn col = table.getColumnModel().getColumn(i); + TableColumn col = tcm.getColumn(i); prefTotalColumnWidth += col.getPreferredWidth(); } + return new Dimension(prefTotalColumnWidth, getHeight()); } @@ -455,7 +458,7 @@ public class BasicTableUI extends TableUI * Returns the table height. This helper method is used by * {@link #getMinimumSize(JComponent)}, {@link #getPreferredSize(JComponent)} * and {@link #getMaximumSize(JComponent)} to determine the table height. - * + * * @return the table height */ private int getHeight() diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java index 8e9c8c949f3..e152a3034d5 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java @@ -38,6 +38,8 @@ exception statement from your version. */ package javax.swing.plaf.basic; +import gnu.classpath.SystemProperties; + import java.awt.Color; import java.awt.Container; import java.awt.Dimension; @@ -71,6 +73,7 @@ import javax.swing.plaf.InputMapUIResource; import javax.swing.plaf.TextUI; import javax.swing.plaf.UIResource; import javax.swing.text.AbstractDocument; +import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.Caret; import javax.swing.text.DefaultCaret; @@ -120,6 +123,140 @@ public abstract class BasicTextUI extends TextUI } } + private static class FocusHandler + implements FocusListener + { + public void focusGained(FocusEvent e) + { + // Nothing to do here. + } + public void focusLost(FocusEvent e) + { + JTextComponent textComponent = (JTextComponent) e.getComponent(); + // Integrates Swing text components with the system clipboard: + // The idea is that if one wants to copy text around X11-style + // (select text and middle-click in the target component) the focus + // will move to the new component which gives the old focus owner the + // possibility to paste its selection into the clipboard. + if (!e.isTemporary() + && textComponent.getSelectionStart() + != textComponent.getSelectionEnd()) + { + SecurityManager sm = System.getSecurityManager(); + try + { + if (sm != null) + sm.checkSystemClipboardAccess(); + + Clipboard cb = Toolkit.getDefaultToolkit().getSystemSelection(); + if (cb != null) + { + StringSelection selection = new StringSelection( + textComponent.getSelectedText()); + cb.setContents(selection, selection); + } + } + catch (SecurityException se) + { + // Not allowed to access the clipboard: Ignore and + // do not access it. + } + catch (HeadlessException he) + { + // There is no AWT: Ignore and do not access the + // clipboard. + } + catch (IllegalStateException ise) + { + // Clipboard is currently unavaible. + } + } + } + } + + /** + * This FocusListener triggers repaints on focus shift. + */ + private static FocusListener focusListener; + + /** + * Receives notifications when properties of the text component change. + */ + private class Handler + implements PropertyChangeListener, DocumentListener + { + /** + * Notifies when a property of the text component changes. + * + * @param event the PropertyChangeEvent describing the change + */ + public void propertyChange(PropertyChangeEvent event) + { + if (event.getPropertyName().equals("document")) + { + // Document changed. + Object oldValue = event.getOldValue(); + if (oldValue != null) + { + Document oldDoc = (Document) oldValue; + oldDoc.removeDocumentListener(handler); + } + Object newValue = event.getNewValue(); + if (newValue != null) + { + Document newDoc = (Document) newValue; + newDoc.addDocumentListener(handler); + } + modelChanged(); + } + + BasicTextUI.this.propertyChange(event); + } + + /** + * Notification about a document change event. + * + * @param ev the DocumentEvent describing the change + */ + public void changedUpdate(DocumentEvent ev) + { + // Updates are forwarded to the View even if 'getVisibleEditorRect' + // method returns null. This means the View classes have to be + // aware of that possibility. + rootView.changedUpdate(ev, getVisibleEditorRect(), + rootView.getViewFactory()); + } + + /** + * Notification about a document insert event. + * + * @param ev the DocumentEvent describing the insertion + */ + public void insertUpdate(DocumentEvent ev) + { + // Updates are forwarded to the View even if 'getVisibleEditorRect' + // method returns null. This means the View classes have to be + // aware of that possibility. + rootView.insertUpdate(ev, getVisibleEditorRect(), + rootView.getViewFactory()); + } + + /** + * Notification about a document removal event. + * + * @param ev the DocumentEvent describing the removal + */ + public void removeUpdate(DocumentEvent ev) + { + // Updates are forwarded to the View even if 'getVisibleEditorRect' + // method returns null. This means the View classes have to be + // aware of that possibility. + rootView.removeUpdate(ev, getVisibleEditorRect(), + rootView.getViewFactory()); + } + + } + /** * This view forms the root of the View hierarchy. However, it delegates * most calls to another View which is the real root of the hierarchy. @@ -226,19 +363,14 @@ public abstract class BasicTextUI extends TextUI } /** - * Returns the preferred span along the specified axis. - * This is delegated to the real root view. - * - * @param axis the axis for which the preferred span is queried - * - * @return the preferred span along the axis + * Sets the size of the renderer. This is synchronized because that + * potentially triggers layout and we don't want more than one thread + * playing with the layout information. */ - public float getPreferredSpan(int axis) + public synchronized void setSize(float w, float h) { if (view != null) - return view.getPreferredSpan(axis); - - return Integer.MAX_VALUE; + view.setSize(w, h); } /** @@ -251,8 +383,8 @@ public abstract class BasicTextUI extends TextUI { if (view != null) { - Rectangle b = s.getBounds(); - view.setSize(b.width, b.height); + Rectangle b = s instanceof Rectangle ? (Rectangle) s : s.getBounds(); + setSize(b.width, b.height); view.paint(g, s); } } @@ -312,7 +444,8 @@ public abstract class BasicTextUI extends TextUI */ public void insertUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { - view.insertUpdate(ev, shape, vf); + if (view != null) + view.insertUpdate(ev, shape, vf); } /** @@ -325,7 +458,8 @@ public abstract class BasicTextUI extends TextUI */ public void removeUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { - view.removeUpdate(ev, shape, vf); + if (view != null) + view.removeUpdate(ev, shape, vf); } /** @@ -338,7 +472,8 @@ public abstract class BasicTextUI extends TextUI */ public void changedUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { - view.changedUpdate(ev, shape, vf); + if (view != null) + view.changedUpdate(ev, shape, vf); } /** @@ -400,116 +535,73 @@ public abstract class BasicTextUI extends TextUI { return textComponent.getDocument(); } - } - /** - * Receives notifications when properties of the text component change. - */ - private class PropertyChangeHandler implements PropertyChangeListener - { /** - * Notifies when a property of the text component changes. - * - * @param event the PropertyChangeEvent describing the change + * Returns the attributes, which is null for the RootView. */ - public void propertyChange(PropertyChangeEvent event) + public AttributeSet getAttributes() { - if (event.getPropertyName().equals("document")) - { - // Document changed. - Object oldValue = event.getOldValue(); - if (oldValue != null) - { - Document oldDoc = (Document) oldValue; - oldDoc.removeDocumentListener(documentHandler); - } - Object newValue = event.getNewValue(); - if (newValue != null) - { - Document newDoc = (Document) newValue; - newDoc.addDocumentListener(documentHandler); - } - modelChanged(); - } - - BasicTextUI.this.propertyChange(event); + return null; } - } - /** - * Listens for changes on the underlying model and forwards notifications - * to the View. This also updates the caret position of the text component. - * - * TODO: Maybe this should somehow be handled through EditorKits - */ - class DocumentHandler implements DocumentListener - { /** - * Notification about a document change event. - * - * @param ev the DocumentEvent describing the change + * Overridden to forward to the view. */ - public void changedUpdate(DocumentEvent ev) + public float getPreferredSpan(int axis) { - // Updates are forwarded to the View even if 'getVisibleEditorRect' - // method returns null. This means the View classes have to be - // aware of that possibility. - rootView.changedUpdate(ev, getVisibleEditorRect(), - rootView.getViewFactory()); + // The RI returns 10 in the degenerate case. + float span = 10; + if (view != null) + span = view.getPreferredSpan(axis); + return span; } /** - * Notification about a document insert event. - * - * @param ev the DocumentEvent describing the insertion + * Overridden to forward to the real view. */ - public void insertUpdate(DocumentEvent ev) + public float getMinimumSpan(int axis) { - // Updates are forwarded to the View even if 'getVisibleEditorRect' - // method returns null. This means the View classes have to be - // aware of that possibility. - rootView.insertUpdate(ev, getVisibleEditorRect(), - rootView.getViewFactory()); + // The RI returns 10 in the degenerate case. + float span = 10; + if (view != null) + span = view.getMinimumSpan(axis); + return span; } /** - * Notification about a document removal event. - * - * @param ev the DocumentEvent describing the removal + * Overridden to return Integer.MAX_VALUE. */ - public void removeUpdate(DocumentEvent ev) + public float getMaximumSpan(int axis) { - // Updates are forwarded to the View even if 'getVisibleEditorRect' - // method returns null. This means the View classes have to be - // aware of that possibility. - rootView.removeUpdate(ev, getVisibleEditorRect(), - rootView.getViewFactory()); + // The RI returns Integer.MAX_VALUE here, regardless of the real view's + // maximum size. + return Integer.MAX_VALUE; } } /** * The EditorKit used by this TextUI. */ - // FIXME: should probably be non-static. - static EditorKit kit = new DefaultEditorKit(); + private static EditorKit kit; /** - * The root view. + * The combined event handler for text components. + * + * This is package private to avoid accessor methods. */ - RootView rootView = new RootView(); + Handler handler; /** - * The text component that we handle. + * The root view. + * + * This is package private to avoid accessor methods. */ - JTextComponent textComponent; + RootView rootView; /** - * Receives notification when the model changes. + * The text component that we handle. */ - private PropertyChangeHandler updateHandler = new PropertyChangeHandler(); - - /** The DocumentEvent handler. */ - DocumentHandler documentHandler = new DocumentHandler(); + JTextComponent textComponent; /** * Creates a new BasicTextUI instance. @@ -558,17 +650,31 @@ public abstract class BasicTextUI extends TextUI public void installUI(final JComponent c) { textComponent = (JTextComponent) c; + + if (rootView == null) + rootView = new RootView(); + installDefaults(); - textComponent.addPropertyChangeListener(updateHandler); + installFixedDefaults(); + + // These listeners must be installed outside of installListeners(), + // because overriding installListeners() doesn't prevent installing + // these in the RI, but overriding isntallUI() does. + if (handler == null) + handler = new Handler(); + textComponent.addPropertyChangeListener(handler); Document doc = textComponent.getDocument(); if (doc == null) { + // The Handler takes care of installing the necessary listeners + // on the document here. doc = getEditorKit(textComponent).createDefaultDocument(); textComponent.setDocument(doc); } else { - doc.addDocumentListener(documentHandler); + // Must install the document listener. + doc.addDocumentListener(handler); modelChanged(); } @@ -586,7 +692,6 @@ public abstract class BasicTextUI extends TextUI LookAndFeel.installColorsAndFont(textComponent, prefix + ".background", prefix + ".foreground", prefix + ".font"); LookAndFeel.installBorder(textComponent, prefix + ".border"); - textComponent.setMargin(UIManager.getInsets(prefix + ".margin")); // Some additional text component only properties. Color color = textComponent.getCaretColor(); @@ -600,7 +705,7 @@ public abstract class BasicTextUI extends TextUI color = textComponent.getDisabledTextColor(); if (color == null || color instanceof UIResource) { - color = UIManager.getColor(prefix + ".inactiveBackground"); + color = UIManager.getColor(prefix + ".inactiveForeground"); textComponent.setDisabledTextColor(color); } color = textComponent.getSelectedTextColor(); @@ -623,6 +728,15 @@ public abstract class BasicTextUI extends TextUI textComponent.setMargin(margin); } + } + + /** + * Installs defaults that can't be overridden by overriding + * installDefaults(). + */ + private void installFixedDefaults() + { + String prefix = getPropertyPrefix(); Caret caret = textComponent.getCaret(); if (caret == null || caret instanceof UIResource) { @@ -638,64 +752,18 @@ public abstract class BasicTextUI extends TextUI } /** - * This FocusListener triggers repaints on focus shift. - */ - private FocusListener focuslistener = new FocusListener() { - public void focusGained(FocusEvent e) - { - textComponent.repaint(); - } - public void focusLost(FocusEvent e) - { - textComponent.repaint(); - - // Integrates Swing text components with the system clipboard: - // The idea is that if one wants to copy text around X11-style - // (select text and middle-click in the target component) the focus - // will move to the new component which gives the old focus owner the - // possibility to paste its selection into the clipboard. - if (!e.isTemporary() - && textComponent.getSelectionStart() - != textComponent.getSelectionEnd()) - { - SecurityManager sm = System.getSecurityManager(); - try - { - if (sm != null) - sm.checkSystemClipboardAccess(); - - Clipboard cb = Toolkit.getDefaultToolkit().getSystemSelection(); - if (cb != null) - { - StringSelection selection = new StringSelection( - textComponent.getSelectedText()); - cb.setContents(selection, selection); - } - } - catch (SecurityException se) - { - // Not allowed to access the clipboard: Ignore and - // do not access it. - } - catch (HeadlessException he) - { - // There is no AWT: Ignore and do not access the - // clipboard. - } - catch (IllegalStateException ise) - { - // Clipboard is currently unavaible. - } - } - } - }; - - /** * Install all listeners on the text component. */ protected void installListeners() { - textComponent.addFocusListener(focuslistener); + // + if (SystemProperties.getProperty("gnu.swing.text.no-xlike-clipboard") + == null) + { + if (focusListener == null) + focusListener = new FocusHandler(); + textComponent.addFocusListener(focusListener); + } } /** @@ -834,10 +902,12 @@ public abstract class BasicTextUI extends TextUI */ public void uninstallUI(final JComponent component) { - super.uninstallUI(component); + textComponent.removePropertyChangeListener(handler); + textComponent.getDocument().removeDocumentListener(handler); rootView.setView(null); uninstallDefaults(); + uninstallFixedDefaults(); uninstallListeners(); uninstallKeyboardActions(); @@ -850,7 +920,29 @@ public abstract class BasicTextUI extends TextUI */ protected void uninstallDefaults() { - // Do nothing here. + if (textComponent.getCaretColor() instanceof UIResource) + textComponent.setCaretColor(null); + if (textComponent.getSelectionColor() instanceof UIResource) + textComponent.setSelectionColor(null); + if (textComponent.getDisabledTextColor() instanceof UIResource) + textComponent.setDisabledTextColor(null); + if (textComponent.getSelectedTextColor() instanceof UIResource) + textComponent.setSelectedTextColor(null); + LookAndFeel.uninstallBorder(textComponent); + if (textComponent.getMargin() instanceof UIResource) + textComponent.setMargin(null); + } + + /** + * Uninstalls additional fixed defaults that were installed + * by installFixedDefaults(). + */ + private void uninstallFixedDefaults() + { + if (textComponent.getCaret() instanceof UIResource) + textComponent.setCaret(null); + if (textComponent.getHighlighter() instanceof UIResource) + textComponent.setHighlighter(null); } /** @@ -859,7 +951,10 @@ public abstract class BasicTextUI extends TextUI */ protected void uninstallListeners() { - textComponent.removeFocusListener(focuslistener); + // Don't nullify the focusListener field, as it is static and shared + // between components. + if (focusListener != null) + textComponent.removeFocusListener(focusListener); } /** @@ -891,14 +986,38 @@ public abstract class BasicTextUI extends TextUI */ public Dimension getPreferredSize(JComponent c) { - View v = getRootView(textComponent); - - float w = v.getPreferredSpan(View.X_AXIS); - float h = v.getPreferredSpan(View.Y_AXIS); - + Dimension d = c.getSize(); Insets i = c.getInsets(); - return new Dimension((int) w + i.left + i.right, + // We need to lock here, since we require the view hierarchy to _not_ + // change in between. + float w; + float h; + Document doc = textComponent.getDocument(); + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + if (d.width > (i.left + i.right) && d.height > (i.top + i.bottom)) + { + rootView.setSize(d.width - i.left - i.right, + d.height - i.top - i.bottom); + } + else + { + // Not laid out yet. Force some pseudo size. + rootView.setSize(Integer.MAX_VALUE, Integer.MAX_VALUE); + } + w = rootView.getPreferredSpan(View.X_AXIS); + h = rootView.getPreferredSpan(View.Y_AXIS); + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } + Dimension size = new Dimension((int) w + i.left + i.right, (int) h + i.top + i.bottom); + return size; } /** @@ -912,8 +1031,27 @@ public abstract class BasicTextUI extends TextUI */ public Dimension getMaximumSize(JComponent c) { - // Sun's implementation returns Integer.MAX_VALUE here, so do we. - return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE); + Dimension d = new Dimension(); + Insets i = c.getInsets(); + Document doc = textComponent.getDocument(); + // We need to lock here, since we require the view hierarchy to _not_ + // change in between. + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + // Check for overflow here. + d.width = (int) Math.min((long) rootView.getMaximumSpan(View.X_AXIS) + + i.left + i.right, Integer.MAX_VALUE); + d.height = (int) Math.min((long) rootView.getMaximumSpan(View.Y_AXIS) + + i.top + i.bottom, Integer.MAX_VALUE); + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } + return d; } /** @@ -924,8 +1062,26 @@ public abstract class BasicTextUI extends TextUI */ public Dimension getMinimumSize(JComponent c) { + Dimension d = new Dimension(); + Document doc = textComponent.getDocument(); + // We need to lock here, since we require the view hierarchy to _not_ + // change in between. + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + d.width = (int) rootView.getMinimumSpan(View.X_AXIS); + d.height = (int) rootView.getMinimumSpan(View.Y_AXIS); + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } Insets i = c.getInsets(); - return new Dimension(i.left + i.right, i.top + i.bottom); + d.width += i.left + i.right; + d.height += i.top + i.bottom; + return d; } /** @@ -946,7 +1102,6 @@ public abstract class BasicTextUI extends TextUI AbstractDocument aDoc = (AbstractDocument) doc; aDoc.readLock(); } - paintSafely(g); } finally @@ -996,7 +1151,6 @@ public abstract class BasicTextUI extends TextUI g.setColor(oldColor); } - rootView.paint(g, getVisibleEditorRect()); if (caret != null && textComponent.hasFocus()) @@ -1104,6 +1258,8 @@ public abstract class BasicTextUI extends TextUI */ public EditorKit getEditorKit(JTextComponent t) { + if (kit == null) + kit = new DefaultEditorKit(); return kit; } @@ -1126,12 +1282,26 @@ public abstract class BasicTextUI extends TextUI Position.Bias[] biasRet) throws BadLocationException { - // A comment in the spec of NavigationFilter.getNextVisualPositionFrom() - // suggests that this method should be implemented by forwarding the call - // the root view. - return rootView.getNextVisualPositionFrom(pos, b, - getVisibleEditorRect(), - direction, biasRet); + int offset = -1; + Document doc = textComponent.getDocument(); + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + Rectangle alloc = getVisibleEditorRect(); + if (alloc != null) + { + rootView.setSize(alloc.width, alloc.height); + offset = rootView.getNextVisualPositionFrom(pos, b, alloc, + direction, biasRet); + } + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } + return offset; } /** @@ -1224,7 +1394,7 @@ public abstract class BasicTextUI extends TextUI */ public int viewToModel(JTextComponent t, Point pt) { - return viewToModel(t, pt, null); + return viewToModel(t, pt, new Position.Bias[1]); } /** @@ -1241,7 +1411,25 @@ public abstract class BasicTextUI extends TextUI */ public int viewToModel(JTextComponent t, Point pt, Position.Bias[] biasReturn) { - return rootView.viewToModel(pt.x, pt.y, getVisibleEditorRect(), biasReturn); + int offset = -1; + Document doc = textComponent.getDocument(); + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + Rectangle alloc = getVisibleEditorRect(); + if (alloc != null) + { + rootView.setSize(alloc.width, alloc.height); + offset = rootView.viewToModel(pt.x, pt.y, alloc, biasReturn); + } + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } + return offset; } /** @@ -1273,6 +1461,11 @@ public abstract class BasicTextUI extends TextUI } /** + * A cached Insets instance to be reused below. + */ + private Insets cachedInsets; + + /** * Returns the allocation to give the root view. * * @return the allocation to give the root view @@ -1290,7 +1483,7 @@ public abstract class BasicTextUI extends TextUI if (width <= 0 || height <= 0) return null; - Insets insets = textComponent.getInsets(); + Insets insets = textComponent.getInsets(cachedInsets); return new Rectangle(insets.left, insets.top, width - insets.left - insets.right, height - insets.top - insets.bottom); @@ -1341,4 +1534,5 @@ public abstract class BasicTextUI extends TextUI { // The default implementation does nothing. } + } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java index 1c36b408d5a..7be69ec2576 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java @@ -898,7 +898,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants b.setRolloverEnabled(false); // Save old border in hashtable. - borders.put(b, b.getBorder()); + if (b.getBorder() != null) + borders.put(b, b.getBorder()); b.setBorder(nonRolloverBorder); } @@ -932,7 +933,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants b.setRolloverEnabled(false); // Save old border in hashtable. - borders.put(b, b.getBorder()); + if (b.getBorder() != null) + borders.put(b, b.getBorder()); b.setBorder(rolloverBorder); } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java index 5cec2e33365..94e7bc322f6 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicToolTipUI.java @@ -40,19 +40,20 @@ package javax.swing.plaf.basic; import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Insets; import java.awt.Rectangle; -import java.awt.Toolkit; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.JToolTip; import javax.swing.LookAndFeel; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ToolTipUI; +import javax.swing.text.View; /** * This is the Basic Look and Feel UI class for JToolTip. @@ -60,6 +61,28 @@ import javax.swing.plaf.ToolTipUI; public class BasicToolTipUI extends ToolTipUI { + /** + * Receives notification when a property of the JToolTip changes. + * This updates the HTML renderer if appropriate. + */ + private class PropertyChangeHandler + implements PropertyChangeListener + { + + public void propertyChange(PropertyChangeEvent e) + { + String prop = e.getPropertyName(); + if (prop.equals("tiptext") || prop.equals("font") + || prop.equals("foreground")) + { + JToolTip tip = (JToolTip) e.getSource(); + String text = tip.getTipText(); + BasicHTML.updateRenderer(tip, text); + } + } + + } + /** The shared instance of BasicToolTipUI used for all ToolTips. */ private static BasicToolTipUI shared; @@ -67,6 +90,11 @@ public class BasicToolTipUI extends ToolTipUI private String text; /** + * Handles property changes. + */ + private PropertyChangeListener propertyChangeHandler; + + /** * Creates a new BasicToolTipUI object. */ public BasicToolTipUI() @@ -98,7 +126,12 @@ public class BasicToolTipUI extends ToolTipUI */ public Dimension getMaximumSize(JComponent c) { - return getPreferredSize(c); + Dimension d = getPreferredSize(c); + View view = (View) c.getClientProperty(BasicHTML.propertyKey); + if (view != null) + d.width += view.getMaximumSpan(View.X_AXIS) + - view.getPreferredSpan(View.X_AXIS); + return d; } /** @@ -110,7 +143,12 @@ public class BasicToolTipUI extends ToolTipUI */ public Dimension getMinimumSize(JComponent c) { - return getPreferredSize(c); + Dimension d = getPreferredSize(c); + View view = (View) c.getClientProperty(BasicHTML.propertyKey); + if (view != null) + d.width -= view.getPreferredSpan(View.X_AXIS) + - view.getMinimumSpan(View.X_AXIS); + return d; } /** @@ -123,22 +161,25 @@ public class BasicToolTipUI extends ToolTipUI public Dimension getPreferredSize(JComponent c) { JToolTip tip = (JToolTip) c; - FontMetrics fm; - Toolkit g = tip.getToolkit(); - text = tip.getTipText(); - - Rectangle vr = new Rectangle(); - Rectangle ir = new Rectangle(); - Rectangle tr = new Rectangle(); - Insets insets = tip.getInsets(); - fm = g.getFontMetrics(tip.getFont()); - SwingUtilities.layoutCompoundLabel(tip, fm, text, null, - SwingConstants.CENTER, - SwingConstants.CENTER, - SwingConstants.CENTER, - SwingConstants.CENTER, vr, ir, tr, 0); - return new Dimension(insets.left + tr.width + insets.right, - insets.top + tr.height + insets.bottom); + String str = tip.getTipText(); + FontMetrics fm = c.getFontMetrics(c.getFont()); + Insets i = c.getInsets(); + Dimension d = new Dimension(i.left + i.right, i.top + i.bottom); + if (str != null && ! str.equals("")) + { + View view = (View) c.getClientProperty(BasicHTML.propertyKey); + if (view != null) + { + d.width += (int) view.getPreferredSpan(View.X_AXIS); + d.height += (int) view.getPreferredSpan(View.Y_AXIS); + } + else + { + d.width += fm.stringWidth(str) + 6; + d.height += fm.getHeight(); + } + } + return d; } /** @@ -160,7 +201,8 @@ public class BasicToolTipUI extends ToolTipUI */ protected void installListeners(JComponent c) { - // TODO: Implement this properly. + propertyChangeHandler = new PropertyChangeHandler(); + c.addPropertyChangeListener(propertyChangeHandler); } /** @@ -172,6 +214,7 @@ public class BasicToolTipUI extends ToolTipUI { c.setOpaque(true); installDefaults(c); + BasicHTML.updateRenderer(c, ((JToolTip) c).getTipText()); installListeners(c); } @@ -186,26 +229,25 @@ public class BasicToolTipUI extends ToolTipUI JToolTip tip = (JToolTip) c; String text = tip.getTipText(); - Toolkit t = tip.getToolkit(); - if (text == null) - return; - - Rectangle vr = new Rectangle(); - vr = SwingUtilities.calculateInnerArea(tip, vr); - Rectangle ir = new Rectangle(); - Rectangle tr = new Rectangle(); - FontMetrics fm = t.getFontMetrics(tip.getFont()); + Font font = c.getFont(); + FontMetrics fm = c.getFontMetrics(font); int ascent = fm.getAscent(); - SwingUtilities.layoutCompoundLabel(tip, fm, text, null, - SwingConstants.CENTER, - SwingConstants.CENTER, - SwingConstants.CENTER, - SwingConstants.CENTER, vr, ir, tr, 0); + Insets i = c.getInsets(); + Dimension size = c.getSize(); + Rectangle paintR = new Rectangle(i.left, i.top, + size.width - i.left - i.right, + size.height - i.top - i.bottom); Color saved = g.getColor(); + Font oldFont = g.getFont(); g.setColor(Color.BLACK); - g.drawString(text, vr.x, vr.y + ascent); + View view = (View) c.getClientProperty(BasicHTML.propertyKey); + if (view != null) + view.paint(g, paintR); + else + g.drawString(text, paintR.x + 3, paintR.y + ascent); + g.setFont(oldFont); g.setColor(saved); } @@ -229,7 +271,11 @@ public class BasicToolTipUI extends ToolTipUI */ protected void uninstallListeners(JComponent c) { - // TODO: Implement this properly. + if (propertyChangeHandler != null) + { + c.removePropertyChangeListener(propertyChangeHandler); + propertyChangeHandler = null; + } } /** @@ -240,6 +286,7 @@ public class BasicToolTipUI extends ToolTipUI public void uninstallUI(JComponent c) { uninstallDefaults(c); + BasicHTML.updateRenderer(c, ""); uninstallListeners(c); } } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java index 9a193986ac5..5b0ffce09b6 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java @@ -38,17 +38,16 @@ package javax.swing.plaf.basic; -import gnu.classpath.NotImplementedException; import gnu.javax.swing.tree.GnuPath; import java.awt.Color; import java.awt.Component; +import java.awt.Container; import java.awt.Dimension; -import java.awt.Font; -import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Insets; import java.awt.Label; +import java.awt.Point; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -196,7 +195,7 @@ public class BasicTreeUI protected AbstractLayoutCache treeState; /** Used for minimizing the drawing of vertical lines. */ - protected Hashtable drawingCache; + protected Hashtable drawingCache; /** * True if doing optimizations for a largeModel. Subclasses that don't support @@ -275,13 +274,6 @@ public class BasicTreeUI TreeModelListener treeModelListener; /** - * This timer fires the editing action after about 1200 ms if not reset during - * that time. It handles the editing start with the single mouse click (and - * not the double mouse click) on the selected tree node. - */ - Timer startEditTimer; - - /** * The zero size icon, used for expand controls, if they are not visible. */ static Icon nullIcon; @@ -428,6 +420,7 @@ public class BasicTreeUI { if (largeModel != this.largeModel) { + completeEditing(); tree.removeComponentListener(componentListener); this.largeModel = largeModel; tree.addComponentListener(componentListener); @@ -451,6 +444,7 @@ public class BasicTreeUI */ protected void setRowHeight(int rowHeight) { + completeEditing(); if (rowHeight == 0) rowHeight = getMaxHeight(tree); treeState.setRowHeight(rowHeight); @@ -544,6 +538,7 @@ public class BasicTreeUI */ protected void setRootVisible(boolean newValue) { + completeEditing(); tree.setRootVisible(newValue); } @@ -590,8 +585,7 @@ public class BasicTreeUI */ protected void setCellEditor(TreeCellEditor editor) { - cellEditor = editor; - createdCellEditor = true; + updateCellEditor(); } /** @@ -611,7 +605,7 @@ public class BasicTreeUI */ protected void setEditable(boolean newValue) { - tree.setEditable(newValue); + updateCellEditor(); } /** @@ -632,6 +626,7 @@ public class BasicTreeUI */ protected void setSelectionModel(TreeSelectionModel newLSM) { + completeEditing(); if (newLSM != null) { treeSelectionModel = newLSM; @@ -787,12 +782,13 @@ public class BasicTreeUI */ public boolean stopEditing(JTree tree) { - if (isEditing(tree)) + boolean ret = false; + if (editingComponent != null && cellEditor.stopCellEditing()) { completeEditing(false, false, true); - finish(); + ret = true; } - return ! isEditing(tree); + return ret; } /** @@ -805,8 +801,8 @@ public class BasicTreeUI // There is no need to send the cancel message to the editor, // as the cancellation event itself arrives from it. This would // only be necessary when cancelling the editing programatically. - completeEditing(false, false, false); - finish(); + if (editingComponent != null) + completeEditing(false, true, false); } /** @@ -818,7 +814,9 @@ public class BasicTreeUI */ public void startEditingAtPath(JTree tree, TreePath path) { - startEditing(path, null); + tree.scrollPathToVisible(path); + if (path != null && tree.isVisible(path)) + startEditing(path, null); } /** @@ -842,6 +840,7 @@ public class BasicTreeUI preferredSize = new Dimension(); largeModel = tree.isLargeModel(); preferredSize = new Dimension(); + stopEditingInCompleteEditing = true; setModel(tree.getModel()); } @@ -1136,6 +1135,7 @@ public class BasicTreeUI */ protected void updateExpandedDescendants(TreePath path) { + completeEditing(); Enumeration expanded = tree.getExpandedDescendants(path); while (expanded.hasMoreElements()) treeState.setExpandedState((TreePath) expanded.nextElement(), true); @@ -1167,9 +1167,33 @@ public class BasicTreeUI */ protected void updateCellEditor() { - if (tree.isEditable() && cellEditor == null) - setCellEditor(createDefaultCellEditor()); - createdCellEditor = true; + completeEditing(); + TreeCellEditor newEd = null; + if (tree != null && tree.isEditable()) + { + newEd = tree.getCellEditor(); + if (newEd == null) + { + newEd = createDefaultCellEditor(); + if (newEd != null) + { + tree.setCellEditor(newEd); + createdCellEditor = true; + } + } + } + // Update listeners. + if (newEd != cellEditor) + { + if (cellEditor != null && cellEditorListener != null) + cellEditor.removeCellEditorListener(cellEditorListener); + cellEditor = newEd; + if (cellEditorListener == null) + cellEditorListener = createCellEditorListener(); + if (cellEditor != null && cellEditorListener != null) + cellEditor.addCellEditorListener(cellEditorListener); + createdCellEditor = false; + } } /** @@ -1563,12 +1587,15 @@ public class BasicTreeUI for (int i = startIndex; i <= endIndex; i++, k++) { path[k] = treeState.getPathForRow(i); - isLeaf[k] = treeModel.isLeaf(path[k].getLastPathComponent()); - isExpanded[k] = tree.isExpanded(path[k]); - bounds[k] = getPathBounds(tree, path[k]); - - paintHorizontalPartOfLeg(g, clip, insets, bounds[k], path[k], i, - isExpanded[k], false, isLeaf[k]); + if (path[k] != null) + { + isLeaf[k] = treeModel.isLeaf(path[k].getLastPathComponent()); + isExpanded[k] = tree.isExpanded(path[k]); + bounds[k] = getPathBounds(tree, path[k]); + + paintHorizontalPartOfLeg(g, clip, insets, bounds[k], path[k], + i, isExpanded[k], false, isLeaf[k]); + } if (isLastChild(path[k])) paintVerticalPartOfLeg(g, clip, insets, path[k]); } @@ -1576,8 +1603,9 @@ public class BasicTreeUI k = 0; for (int i = startIndex; i <= endIndex; i++, k++) { - paintRow(g, clip, insets, bounds[k], path[k], i, isExpanded[k], - false, isLeaf[k]); + if (path[k] != null) + paintRow(g, clip, insets, bounds[k], path[k], i, isExpanded[k], + false, isLeaf[k]); } } } @@ -1587,7 +1615,9 @@ public class BasicTreeUI */ private boolean isLastChild(TreePath path) { - if (path instanceof GnuPath) + if (path == null) + return false; + else if (path instanceof GnuPath) { // Except the seldom case when the layout cache is changed, this // optimized code will be executed. @@ -1719,6 +1749,10 @@ public class BasicTreeUI */ protected void completeEditing() { + if (tree.getInvokesStopCellEditing() && stopEditingInCompleteEditing + && editingComponent != null) + cellEditor.stopCellEditing(); + completeEditing(false, true, false); } @@ -1736,28 +1770,35 @@ public class BasicTreeUI boolean messageTree) { // Make no attempt to complete the non existing editing session. - if (!isEditing(tree)) - return; - - if (messageStop) + if (stopEditingInCompleteEditing && editingComponent != null) { - getCellEditor().stopCellEditing(); - stopEditingInCompleteEditing = true; - } - - if (messageCancel) - { - getCellEditor().cancelCellEditing(); - stopEditingInCompleteEditing = true; - } + Component comp = editingComponent; + TreePath p = editingPath; + editingComponent = null; + editingPath = null; + if (messageStop) + cellEditor.stopCellEditing(); + else if (messageCancel) + cellEditor.cancelCellEditing(); + + tree.remove(comp); + + if (editorHasDifferentSize) + { + treeState.invalidatePathBounds(p); + updateSize(); + } + else + { + // Need to refresh the tree. + Rectangle b = getPathBounds(tree, p); + tree.repaint(0, b.y, tree.getWidth(), b.height); + } - if (messageTree) - { - TreeCellEditor editor = getCellEditor(); - if (editor != null) + if (messageTree) { - Object value = editor.getCellEditorValue(); - treeModel.valueForPathChanged(tree.getLeadSelectionPath(), value); + Object value = cellEditor.getCellEditorValue(); + treeModel.valueForPathChanged(p, value); } } } @@ -1772,47 +1813,105 @@ public class BasicTreeUI */ protected boolean startEditing(TreePath path, MouseEvent event) { - updateCellEditor(); - TreeCellEditor ed = getCellEditor(); + // Maybe cancel editing. + if (isEditing(tree) && tree.getInvokesStopCellEditing() + && ! stopEditing(tree)) + return false; - if (ed != null && (event == EDIT || ed.shouldSelectCell(event)) - && ed.isCellEditable(event)) + completeEditing(); + TreeCellEditor ed = cellEditor; + if (ed != null && tree.isPathEditable(path)) { - Rectangle bounds = getPathBounds(tree, path); - - // Extend the right boundary till the tree width. - bounds.width = tree.getWidth() - bounds.x; - - editingPath = path; - editingRow = tree.getRowForPath(editingPath); - - Object value = editingPath.getLastPathComponent(); - - stopEditingInCompleteEditing = false; - boolean expanded = tree.isExpanded(editingPath); - isEditing = true; - editingComponent = ed.getTreeCellEditorComponent(tree, value, true, - expanded, - isLeaf(editingRow), - editingRow); - - // Remove all previous components (if still present). Only one - // container with the editing component inside is allowed in the tree. - tree.removeAll(); - - // The editing component must be added to its container. We add the - // container, not the editing component itself. - Component container = editingComponent.getParent(); - container.setBounds(bounds); - tree.add(container); - editingComponent.requestFocus(); + if (ed.isCellEditable(event)) + { + editingRow = getRowForPath(tree, path); + Object value = path.getLastPathComponent(); + boolean isSelected = tree.isPathSelected(path); + boolean isExpanded = tree.isExpanded(editingPath); + boolean isLeaf = treeModel.isLeaf(value); + editingComponent = ed.getTreeCellEditorComponent(tree, value, + isSelected, + isExpanded, + isLeaf, + editingRow); + + Rectangle bounds = getPathBounds(tree, path); + + Dimension size = editingComponent.getPreferredSize(); + int rowHeight = getRowHeight(); + if (size.height != bounds.height && rowHeight > 0) + size.height = rowHeight; + + if (size.width != bounds.width || size.height != bounds.height) + { + editorHasDifferentSize = true; + treeState.invalidatePathBounds(path); + updateSize(); + } + else + editorHasDifferentSize = false; + + // The editing component must be added to its container. We add the + // container, not the editing component itself. + tree.add(editingComponent); + editingComponent.setBounds(bounds.x, bounds.y, size.width, + size.height); + editingComponent.validate(); + editingPath = path; + + if (ed.shouldSelectCell(event)) + { + stopEditingInCompleteEditing = false; + tree.setSelectionRow(editingRow); + stopEditingInCompleteEditing = true; + } + + editorRequestFocus(editingComponent); + // Register MouseInputHandler to redispatch initial mouse events + // correctly. + if (event instanceof MouseEvent) + { + Point p = SwingUtilities.convertPoint(tree, event.getX(), event.getY(), + editingComponent); + Component active = + SwingUtilities.getDeepestComponentAt(editingComponent, p.x, p.y); + if (active != null) + { + MouseInputHandler ih = new MouseInputHandler(tree, active, event); + + } + } - return true; + return true; + } + else + editingComponent = null; } return false; } /** + * Requests focus on the editor. The method is necessary since the + * DefaultTreeCellEditor returns a container that contains the + * actual editor, and we want to request focus on the editor, not the + * container. + */ + private void editorRequestFocus(Component c) + { + if (c instanceof Container) + { + // TODO: Maybe do something more reasonable here, like queriying the + // FocusTraversalPolicy. + Container cont = (Container) c; + if (cont.getComponentCount() > 0) + cont.getComponent(0).requestFocus(); + } + else if (c.isFocusable()) + c.requestFocus(); + + } + + /** * If the mouseX and mouseY are in the expand or * collapse region of the row, this will toggle the row. * @@ -2180,7 +2279,7 @@ public class BasicTreeUI */ public void editingStopped(ChangeEvent e) { - stopEditing(tree); + completeEditing(false, false, true); } /** @@ -2191,7 +2290,7 @@ public class BasicTreeUI */ public void editingCanceled(ChangeEvent e) { - cancelEditing(tree); + completeEditing(false, false, false); } } // CellEditorHandler @@ -2347,9 +2446,15 @@ public class BasicTreeUI * events. */ public class MouseHandler - extends MouseAdapter - implements MouseMotionListener + extends MouseAdapter + implements MouseMotionListener { + + /** + * If the cell has been selected on mouse press. + */ + private boolean selectedOnPress; + /** * Constructor */ @@ -2365,76 +2470,15 @@ public class BasicTreeUI */ public void mousePressed(MouseEvent e) { - // Any mouse click cancels the previous waiting edit action, initiated - // by the single click on the selected node. - if (startEditTimer != null) + if (! e.isConsumed()) { - startEditTimer.stop(); - startEditTimer = null; + handleEvent(e); + selectedOnPress = true; } - - if (tree != null && tree.isEnabled()) + else { - // Always end the current editing session if clicked on the - // tree and outside the bounds of the editing component. - if (isEditing(tree)) - if (!stopEditing(tree)) - // Return if we have failed to cancel the editing session. - return; - - int x = e.getX(); - int y = e.getY(); - TreePath path = getClosestPathForLocation(tree, x, y); - - if (path != null) - { - Rectangle bounds = getPathBounds(tree, path); - if (SwingUtilities.isLeftMouseButton(e)) - checkForClickInExpandControl(path, x, y); - - if (x > bounds.x && x <= (bounds.x + bounds.width)) - { - TreePath currentLead = tree.getLeadSelectionPath(); - if (currentLead != null && currentLead.equals(path) - && e.getClickCount() == 1 && tree.isEditable()) - { - // Schedule the editing session. - final TreePath editPath = path; - - // The code below handles the required click-pause-click - // functionality which must be present in the tree UI. - // If the next click comes after the - // time longer than the double click interval AND - // the same node stays focused for the WAIT_TILL_EDITING - // duration, the timer starts the editing session. - if (startEditTimer != null) - startEditTimer.stop(); - - startEditTimer = new Timer(WAIT_TILL_EDITING, - new ActionListener() - { - public void actionPerformed(ActionEvent e) - { - startEditing(editPath, EDIT); - } - }); - - startEditTimer.setRepeats(false); - startEditTimer.start(); - } - else - { - if (e.getClickCount() == 2) - toggleExpandState(path); - else - selectPathForEvent(path, e); - } - } - } + selectedOnPress = false; } - - // We need to request the focus. - tree.requestFocusInWindow(); } /** @@ -2446,9 +2490,8 @@ public class BasicTreeUI * @param e is the mouse event that occured */ public void mouseDragged(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + // Nothing to do here. } /** @@ -2458,9 +2501,8 @@ public class BasicTreeUI * @param e the mouse event that occured */ public void mouseMoved(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + // Nothing to do here. } /** @@ -2469,9 +2511,46 @@ public class BasicTreeUI * @param e is the mouse event that occured */ public void mouseReleased(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + if (! e.isConsumed() && ! selectedOnPress) + handleEvent(e); + } + + /** + * Handles press and release events. + * + * @param e the mouse event + */ + private void handleEvent(MouseEvent e) + { + if (tree != null && tree.isEnabled()) + { + // Maybe stop editing. + if (isEditing(tree) && tree.getInvokesStopCellEditing() + && ! stopEditing(tree)) + return; + + // Explicitly request focus. + tree.requestFocusInWindow(); + + int x = e.getX(); + int y = e.getY(); + TreePath path = getClosestPathForLocation(tree, x, y); + if (path != null) + { + Rectangle b = getPathBounds(tree, path); + if (y <= b.y + b.height) + { + if (SwingUtilities.isLeftMouseButton(e)) + checkForClickInExpandControl(path, x, y); + if (x > b.x && x <= b.x + b.width) + { + if (! startEditing(path, e)) + selectPathForEvent(path, e); + } + } + } + } } } @@ -2501,6 +2580,9 @@ public class BasicTreeUI { this.source = source; this.destination = destination; + source.addMouseListener(this); + source.addMouseMotionListener(this); + dispatch(e); } /** @@ -2510,9 +2592,8 @@ public class BasicTreeUI * @param e mouse event that occured */ public void mouseClicked(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + dispatch(e); } /** @@ -2521,9 +2602,8 @@ public class BasicTreeUI * @param e mouse event that occured */ public void mousePressed(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + // Nothing to do here. } /** @@ -2532,9 +2612,9 @@ public class BasicTreeUI * @param e mouse event that occured */ public void mouseReleased(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + dispatch(e); + removeFromSource(); } /** @@ -2543,9 +2623,9 @@ public class BasicTreeUI * @param e mouse event that occured */ public void mouseEntered(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + if (! SwingUtilities.isLeftMouseButton(e)) + removeFromSource(); } /** @@ -2554,9 +2634,9 @@ public class BasicTreeUI * @param e mouse event that occured */ public void mouseExited(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + if (! SwingUtilities.isLeftMouseButton(e)) + removeFromSource(); } /** @@ -2568,9 +2648,8 @@ public class BasicTreeUI * @param e mouse event that occured */ public void mouseDragged(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + dispatch(e); } /** @@ -2580,18 +2659,37 @@ public class BasicTreeUI * @param e mouse event that occured */ public void mouseMoved(MouseEvent e) - throws NotImplementedException { - // TODO: What should be done here, if anything? + removeFromSource(); } /** * Removes event from the source */ protected void removeFromSource() - throws NotImplementedException { - // TODO: Implement this properly. + if (source != null) + { + source.removeMouseListener(this); + source.removeMouseMotionListener(this); + } + source = null; + destination = null; + } + + /** + * Redispatches mouse events to the destination. + * + * @param e the mouse event to redispatch + */ + private void dispatch(MouseEvent e) + { + if (destination != null) + { + MouseEvent e2 = SwingUtilities.convertMouseEvent(source, e, + destination); + destination.dispatchEvent(e2); + } } } @@ -2627,24 +2725,42 @@ public class BasicTreeUI public Rectangle getNodeDimensions(Object cell, int row, int depth, boolean expanded, Rectangle size) { - if (size == null || cell == null) - return null; - - String s = cell.toString(); - Font f = tree.getFont(); - FontMetrics fm = tree.getToolkit().getFontMetrics(f); - - if (s != null) + Dimension prefSize; + if (editingComponent != null && editingRow == row) + { + // Editing, ask editor for preferred size. + prefSize = editingComponent.getPreferredSize(); + int rowHeight = getRowHeight(); + if (rowHeight > 0 && rowHeight != prefSize.height) + prefSize.height = rowHeight; + } + else + { + // Not editing, ask renderer for preferred size. + Component rend = + currentCellRenderer.getTreeCellRendererComponent(tree, cell, + tree.isRowSelected(row), + expanded, + treeModel.isLeaf(cell), + row, false); + // Make sure the layout is valid. + rendererPane.add(rend); + rend.validate(); + prefSize = rend.getPreferredSize(); + } + if (size != null) { - TreePath path = treeState.getPathForRow(row); size.x = getRowX(row, depth); - size.width = SwingUtilities.computeStringWidth(fm, s); - size.width = size.width + getCurrentControlIcon(path).getIconWidth() - + gap + getNodeIcon(path).getIconWidth(); - size.height = getMaxHeight(tree); - size.y = size.height * row; + // FIXME: This should be handled by the layout cache. + size.y = prefSize.height * row; + size.width = prefSize.width; + size.height = prefSize.height; } - + else + // FIXME: The y should be handled by the layout cache. + size = new Rectangle(getRowX(row, depth), prefSize.height * row, prefSize.width, + prefSize.height); + return size; } @@ -2706,6 +2822,9 @@ public class BasicTreeUI if (treeState != null) treeState.invalidateSizes(); } + else if (property.equals(JTree.EDITABLE_PROPERTY)) + setEditable(((Boolean) event.getNewValue()).booleanValue()); + } } @@ -2714,7 +2833,7 @@ public class BasicTreeUI * properties of the model change. */ public class SelectionModelPropertyChangeHandler - implements PropertyChangeListener + implements PropertyChangeListener { /** @@ -2732,9 +2851,8 @@ public class BasicTreeUI * the property that has changed. */ public void propertyChange(PropertyChangeEvent event) - throws NotImplementedException { - // TODO: What should be done here, if anything? + treeSelectionModel.resetRowSelection(); } } @@ -2804,6 +2922,7 @@ public class BasicTreeUI */ public void treeCollapsed(TreeExpansionEvent event) { + completeEditing(); validCachedPreferredSize = false; treeState.setExpandedState(event.getPath(), false); // The maximal cell height may change @@ -3269,8 +3388,7 @@ public class BasicTreeUI */ public void valueChanged(TreeSelectionEvent event) { - if (tree.isEditing()) - tree.cancelEditing(); + completeEditing(); TreePath op = event.getOldLeadSelectionPath(); TreePath np = event.getNewLeadSelectionPath(); @@ -3808,25 +3926,6 @@ public class BasicTreeUI } /** - * Finish the editing session. - */ - void finish() - { - treeState.invalidatePathBounds(treeState.getPathForRow(editingRow)); - editingPath = null; - editingRow = - 1; - stopEditingInCompleteEditing = false; - isEditing = false; - Rectangle bounds = editingComponent.getParent().getBounds(); - tree.removeAll(); - validCachedPreferredSize = false; - // Repaint the region, where was the editing component. - tree.repaint(bounds); - editingComponent = null; - tree.requestFocus(); - } - - /** * Returns the amount to indent the given row * * @return amount to indent the given row. diff --git a/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java b/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java index 673aec1e418..672676fa081 100644 --- a/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java +++ b/libjava/classpath/javax/swing/plaf/metal/DefaultMetalTheme.java @@ -38,8 +38,11 @@ exception statement from your version. */ package javax.swing.plaf.metal; +import gnu.classpath.SystemProperties; + import java.awt.Font; +import javax.swing.UIManager; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.FontUIResource; @@ -63,10 +66,6 @@ public class DefaultMetalTheme extends MetalTheme private static final ColorUIResource SECONDARY3 = new ColorUIResource(204, 204, 204); - private static final FontUIResource CONTROL_TEXT_FONT = - new FontUIResource("Dialog", Font.BOLD, 12); - private static final FontUIResource MENU_TEXT_FONT = - new FontUIResource("Dialog", Font.BOLD, 12); private static final FontUIResource SUB_TEXT_FONT = new FontUIResource("Dialog", Font.PLAIN, 10); private static final FontUIResource SYSTEM_TEXT_FONT = @@ -77,6 +76,40 @@ public class DefaultMetalTheme extends MetalTheme new FontUIResource("Dialog", Font.BOLD, 12); /** + * The control text font for swing.boldMetal=false. + */ + private static final FontUIResource PLAIN_CONTROL_TEXT_FONT = + new FontUIResource("Dialog", Font.PLAIN, 12); + + /** + * The standard control text font. + */ + private static final FontUIResource BOLD_CONTROL_TEXT_FONT = + new FontUIResource("Dialog", Font.BOLD, 12); + + /** + * The menu text font for swing.boldMetal=false. + */ + private static final FontUIResource PLAIN_MENU_TEXT_FONT = + new FontUIResource("Dialog", Font.PLAIN, 12); + + /** + * The menu control text font. + */ + private static final FontUIResource BOLD_MENU_TEXT_FONT = + new FontUIResource("Dialog", Font.BOLD, 12); + + /** + * Indicates the control text font. + */ + static final int CONTROL_TEXT_FONT = 1; + + /** + * Indicates the menu text font. + */ + static final int MENU_TEXT_FONT = 2; + + /** * Creates a new instance of this theme. */ public DefaultMetalTheme() @@ -156,23 +189,28 @@ public class DefaultMetalTheme extends MetalTheme /** * Returns the font used for text on controls. In this case, the font is - * FontUIResource("Dialog", Font.BOLD, 12). + * FontUIResource("Dialog", Font.BOLD, 12), unless the + * swing.boldMetal UI default is set to {@link Boolean#FALSE} + * in which case it is FontUIResource("Dialog", Font.PLAIN, 12). * * @return The font. */ public FontUIResource getControlTextFont() { - return CONTROL_TEXT_FONT; + return getFont(CONTROL_TEXT_FONT); } + /** * Returns the font used for text in menus. In this case, the font is - * FontUIResource("Dialog", Font.BOLD, 12). + * FontUIResource("Dialog", Font.BOLD, 12), unless the + * swing.boldMetal UI default is set to {@link Boolean#FALSE} + * in which case it is FontUIResource("Dialog", Font.PLAIN, 12). * * @return The font used for text in menus. */ public FontUIResource getMenuTextFont() { - return MENU_TEXT_FONT; + return getFont(MENU_TEXT_FONT); } /** @@ -218,4 +256,50 @@ public class DefaultMetalTheme extends MetalTheme { return WINDOW_TITLE_FONT; } + + /** + * Returns the appropriate font. The font type to return is identified + * by the specified id. + * + * @param id the font type to return + * + * @return the correct font + */ + private FontUIResource getFont(int id) + { + FontUIResource font = null; + switch (id) + { + case CONTROL_TEXT_FONT: + if (isBoldMetal()) + font = BOLD_CONTROL_TEXT_FONT; + else + font = PLAIN_CONTROL_TEXT_FONT; + break; + case MENU_TEXT_FONT: + if (isBoldMetal()) + font = BOLD_MENU_TEXT_FONT; + else + font = PLAIN_MENU_TEXT_FONT; + break; + // TODO: Add other font types and their mapping here. + } + return font; + } + + /** + * Determines if the theme should be bold or not. The theme is bold by + * default, this can be turned off by setting the system property + * swing.boldMetal to true, or by putting the property with the same name + * into the current UIManager's defaults. + * + * @return true, when the theme is bold, false + * otherwise + */ + private boolean isBoldMetal() + { + Object boldMetal = UIManager.get("swing.boldMetal"); + return (boldMetal == null || ! Boolean.FALSE.equals(boldMetal)) + && ! ("false".equals(SystemProperties.getProperty("swing.boldMetal"))); + } } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java b/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java index 7c41180aeae..d4e3a849781 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalBorders.java @@ -926,15 +926,11 @@ public class MetalBorders /** The border insets. */ protected static Insets borderInsets = new Insets(1, 0, 1, 0); - // TODO: find where this color really comes from - private static Color borderColor = new Color(153, 153, 153); - /** * Creates a new border instance. */ public MenuBarBorder() { - // Nothing to do here. } /** @@ -951,7 +947,17 @@ public class MetalBorders public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { - g.setColor(borderColor); + // Although it is not correct to decide on the static property + // currentTheme which color to use the RI does it like that. + // The trouble is that by simply changing the current theme to + // e.g. DefaultMetalLookAndFeel this method will use another color + // although a change in painting behavior should be expected only + // after setting a new look and feel and updating all components. + if(MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme) + g.setColor(UIManager.getColor("MenuBar.borderColor")); + else + g.setColor(MetalLookAndFeel.getControlShadow()); + g.drawLine(x, y + h - 1, x + w, y + h - 1); } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java index 8addfc66c72..be9607927ba 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalButtonUI.java @@ -54,7 +54,6 @@ import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; -import javax.swing.plaf.basic.BasicButtonListener; import javax.swing.plaf.basic.BasicButtonUI; /** @@ -66,24 +65,46 @@ public class MetalButtonUI extends BasicButtonUI { - /** The color used to draw the focus rectangle around the text and/or icon. */ + /** + * The shared button UI. + */ + private static MetalButtonUI sharedUI; + + /** + * The color used to draw the focus rectangle around the text and/or icon. + */ protected Color focusColor; - /** The background color for the button when it is pressed. */ + /** + * The background color for the button when it is pressed. + */ protected Color selectColor; - /** The color for disabled button labels. */ + /** + * The color for disabled button labels. + */ protected Color disabledTextColor; /** + * Returns a UI delegate for the specified component. + * + * @param c the component (should be a subclass of {@link AbstractButton}). + * + * @return A new instance of MetalButtonUI. + */ + public static ComponentUI createUI(JComponent c) + { + if (sharedUI == null) + sharedUI = new MetalButtonUI(); + return sharedUI; + } + + /** * Creates a new instance. */ public MetalButtonUI() { super(); - focusColor = UIManager.getColor(getPropertyPrefix() + "focus"); - selectColor = UIManager.getColor(getPropertyPrefix() + "select"); - disabledTextColor = UIManager.getColor(getPropertyPrefix() + "disabledText"); } /** @@ -93,6 +114,7 @@ public class MetalButtonUI */ protected Color getFocusColor() { + focusColor = UIManager.getColor(getPropertyPrefix() + "focus"); return focusColor; } @@ -103,6 +125,7 @@ public class MetalButtonUI */ protected Color getSelectColor() { + selectColor = UIManager.getColor(getPropertyPrefix() + "select"); return selectColor; } @@ -113,22 +136,12 @@ public class MetalButtonUI */ protected Color getDisabledTextColor() { + disabledTextColor = UIManager.getColor(getPropertyPrefix() + + "disabledText"); return disabledTextColor; } /** - * Returns a UI delegate for the specified component. - * - * @param c the component (should be a subclass of {@link AbstractButton}). - * - * @return A new instance of MetalButtonUI. - */ - public static ComponentUI createUI(JComponent c) - { - return new MetalButtonUI(); - } - - /** * Installs the default settings for the specified button. * * @param button the button. @@ -137,33 +150,20 @@ public class MetalButtonUI */ public void installDefaults(AbstractButton button) { + // This is overridden to be public, for whatever reason. super.installDefaults(button); - button.setRolloverEnabled(UIManager.getBoolean( - getPropertyPrefix() + "rollover")); } - + /** * Removes the defaults added by {@link #installDefaults(AbstractButton)}. */ public void uninstallDefaults(AbstractButton button) { + // This is overridden to be public, for whatever reason. super.uninstallDefaults(button); - button.setRolloverEnabled(false); } /** - * Returns a button listener for the specified button. - * - * @param button the button. - * - * @return A button listener. - */ - protected BasicButtonListener createButtonListener(AbstractButton button) - { - return new MetalButtonListener(button); - } - - /** * Paints the background of the button to indicate that it is in the * "pressed" state. * @@ -175,7 +175,7 @@ public class MetalButtonUI if (b.isContentAreaFilled()) { Rectangle area = b.getVisibleRect(); - g.setColor(selectColor); + g.setColor(getSelectColor()); g.fillRect(area.x, area.y, area.width, area.height); } } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java b/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java index fb8280e44da..30ee93162a9 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalCheckBoxIcon.java @@ -1,5 +1,5 @@ /* MetalCheckBoxIcon.java -- An icon for JCheckBoxes in the Metal L&F - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,8 +42,8 @@ import java.awt.Component; import java.awt.Graphics; import java.io.Serializable; +import javax.swing.AbstractButton; import javax.swing.Icon; -import javax.swing.JCheckBox; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.plaf.UIResource; @@ -134,8 +134,9 @@ public class MetalCheckBoxIcon MetalUtils.paintGradient(g, x, y, getIconWidth(), getIconHeight(), SwingConstants.VERTICAL, "CheckBox.gradient"); border.paintBorder(c, g, x, y, getIconWidth(), getIconHeight()); - JCheckBox cb = (JCheckBox) c; - if (cb.isSelected()) - drawCheck(c, g, x, y); + + AbstractButton b = (AbstractButton) c; + if (b.isSelected()) + drawCheck(b, g, x, y); } } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java b/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java index 30ec7e72b28..2817336a8f1 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java @@ -54,7 +54,6 @@ import javax.swing.JRadioButtonMenuItem; import javax.swing.JSlider; import javax.swing.SwingConstants; import javax.swing.UIManager; -import javax.swing.plaf.IconUIResource; import javax.swing.plaf.UIResource; @@ -569,8 +568,8 @@ public class MetalIconFactory implements Serializable */ public void paintIcon(Component c, Graphics g, int x, int y) { - // TODO: pick up appropriate UI colors - g.setColor(Color.black); + y = y + getShift(); + g.setColor(MetalLookAndFeel.getBlack()); g.drawLine(x, y, x + 9, y); g.drawLine(x, y + 1, x, y + 15); g.drawLine(x, y + 15, x + 12, y + 15); @@ -580,7 +579,7 @@ public class MetalIconFactory implements Serializable g.drawLine(x + 7, y + 2, x + 11, y + 6); g.drawLine(x + 8, y + 1, x + 9, y + 1); - g.setColor(new Color(204, 204, 255)); + g.setColor(MetalLookAndFeel.getPrimaryControl()); g.drawLine(x + 1, y + 1, x + 7, y + 1); g.drawLine(x + 1, y + 1, x + 1, y + 14); g.drawLine(x + 1, y + 14, x + 11, y + 14); @@ -601,7 +600,9 @@ public class MetalIconFactory implements Serializable } /** - * Returns the shift (???). + * Returns the vertical shift, in pixels, applied when painting the icon. + * The default value is zero, but subclasses may override this (for + * example, see {@link TreeLeafIcon}). * * @return The shift. */ @@ -649,21 +650,21 @@ public class MetalIconFactory implements Serializable */ public void paintIcon(Component c, Graphics g, int x, int y) { - // TODO: pick up appropriate UI colors - g.setColor(Color.black); - g.drawLine(x, y + 3, x, y + 12); - g.drawLine(x, y + 12, x + 15, y + 12); - g.drawLine(x + 15, y + 12, x + 15, y + 2); - g.drawLine(x + 14, y + 3, x + 9, y + 3); - g.drawLine(x + 8, y + 2, x + 1, y + 2); - g.setColor(new Color(204, 204, 255)); - g.fillRect(x + 2, y + 4, 7, 8); - g.fillRect(x + 9, y + 5, 6, 7); - g.setColor(new Color(102, 102, 153)); - g.drawLine(x + 9, y + 2, x + 14, y + 2); - g.setColor(new Color(50, 50, 120)); - g.drawLine(x + 9, y + 1, x + 15, y + 1); - g.drawLine(x + 10, y, x + 15, y); + y = y + getShift(); + g.setColor(MetalLookAndFeel.getBlack()); + g.drawLine(x, y + 6, x, y + 15); + g.drawLine(x, y + 15, x + 15, y + 15); + g.drawLine(x + 15, y + 15, x + 15, y + 5); + g.drawLine(x + 14, y + 6, x + 9, y + 6); + g.drawLine(x + 8, y + 5, x + 1, y + 5); + g.setColor(MetalLookAndFeel.getPrimaryControl()); + g.fillRect(x + 2, y + 7, 7, 8); + g.fillRect(x + 9, y + 8, 6, 7); + g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); + g.drawLine(x + 9, y + 5, x + 14, y + 5); + g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); + g.drawLine(x + 9, y + 4, x + 15, y + 4); + g.drawLine(x + 10, y + 3, x + 15, y + 3); } /** @@ -679,7 +680,9 @@ public class MetalIconFactory implements Serializable } /** - * Returns the shift (???). + * Returns the vertical shift, in pixels, applied when painting the icon. + * The default value is zero, but subclasses may override this (for + * example, see {@link TreeFolderIcon}). * * @return The shift. */ @@ -1036,20 +1039,22 @@ public class MetalIconFactory implements Serializable g.drawLine(x + 6, y + 14, x, y + 8); g.drawLine(x, y + 7, x, y + 1); - // Fill the icon. - if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme - && enabled) - { - String gradient; - if (focus) - gradient = "Slider.focusGradient"; - else - gradient = "Slider.gradient"; - MetalUtils.paintGradient(g, x + 1, y + 2, 12, 13, - SwingConstants.VERTICAL, gradient, - gradientMask); - } - else +// The following is commented out until the masking for the gradient painting +// is working correctly +// // Fill the icon. +// if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme +// && enabled) +// { +// String gradient; +// if (focus) +// gradient = "Slider.focusGradient"; +// else +// gradient = "Slider.gradient"; +// MetalUtils.paintGradient(g, x + 1, y + 2, 12, 13, +// SwingConstants.VERTICAL, gradient, +// gradientMask); +// } +// else { if (focus) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); @@ -1268,23 +1273,23 @@ public class MetalIconFactory implements Serializable */ public void paintIcon(Component c, Graphics g, int x, int y) { - g.setColor(new Color(102, 102, 153)); + g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.fillRect(x + 1, y, 14, 2); g.fillRect(x, y + 1, 2, 14); g.fillRect(x + 1, y + 14, 14, 2); g.fillRect(x + 14, y + 1, 2, 14); g.drawLine(x + 2, y + 5, x + 14, y + 5); - g.setColor(new Color(204, 204, 255)); + g.setColor(MetalLookAndFeel.getPrimaryControl()); g.fillRect(x + 2, y + 2, 12, 3); - g.setColor(new Color(102, 102, 153)); + g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow()); g.drawLine(x + 3, y + 3, x + 3, y + 3); g.drawLine(x + 6, y + 3, x + 6, y + 3); g.drawLine(x + 9, y + 3, x + 9, y + 3); g.drawLine(x + 12, y + 3, x + 12, y + 3); - g.setColor(Color.white); + g.setColor(MetalLookAndFeel.getWhite()); g.fillRect(x + 2, y + 6, 12, 8); g.drawLine(x + 2, y + 2, x + 2, y + 2); g.drawLine(x + 5, y + 2, x + 5, y + 2); @@ -1697,20 +1702,22 @@ public class MetalIconFactory implements Serializable g.drawLine(x + 8, y + 14, x + 1, y + 14); g.drawLine(x, y + 13, x, y + 1); - // Fill the icon. - if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme - && enabled) - { - String gradient; - if (focus) - gradient = "Slider.focusGradient"; - else - gradient = "Slider.gradient"; - MetalUtils.paintGradient(g, x + 2, y + 1, 13, 12, - SwingConstants.HORIZONTAL, gradient, - gradientMask); - } - else +// The following is commented out until the masking for the gradient painting +// is working correctly +// // Fill the icon. +// if (MetalLookAndFeel.getCurrentTheme() instanceof OceanTheme +// && enabled) +// { +// String gradient; +// if (focus) +// gradient = "Slider.focusGradient"; +// else +// gradient = "Slider.gradient"; +// MetalUtils.paintGradient(g, x + 2, y + 1, 13, 12, +// SwingConstants.HORIZONTAL, gradient, +// gradientMask); +// } +// else { if (focus) g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); @@ -1883,7 +1890,8 @@ public class MetalIconFactory implements Serializable } /** - * Returns the shift (???). + * Returns the vertical shift, in pixels, applied when painting the icon. + * This overridden method returns -1. * * @return The shift. */ @@ -1918,7 +1926,8 @@ public class MetalIconFactory implements Serializable } /** - * Returns the shift (???). + * Returns the vertical shift, in pixels, applied when painting the icon. + * This overridden method returns 2. * * @return The shift. */ diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java b/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java index 8a5a61107c1..a9a6790931f 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java @@ -38,6 +38,8 @@ exception statement from your version. */ package javax.swing.plaf.metal; +import gnu.classpath.SystemProperties; + import java.awt.Color; import java.awt.Font; @@ -81,16 +83,15 @@ public class MetalLookAndFeel extends BasicLookAndFeel */ public MetalLookAndFeel() { - createDefaultTheme(); + // Nothing to do here. } /** - * Sets the current theme to a new instance of {@link OceanTheme}. + * Sets the current theme to a new instance of {@link DefaultMetalTheme}. */ protected void createDefaultTheme() { - if (theme == null) - setCurrentTheme(new OceanTheme()); + getCurrentTheme(); } /** @@ -149,6 +150,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel public UIDefaults getDefaults() { + createDefaultTheme(); if (LAF_defaults == null) { LAF_defaults = super.getDefaults(); @@ -887,7 +889,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "CheckBox.border", MetalBorders.getButtonBorder(), "CheckBox.disabledText", getInactiveControlTextColor(), "CheckBox.focus", getFocusColor(), - "CheckBox.font", new FontUIResource("Dialog", Font.BOLD, 12), + "CheckBox.font", getControlTextFont(), "CheckBox.foreground", getControlTextColor(), "CheckBox.icon", new UIDefaults.ProxyLazyValue("javax.swing.plaf.metal.MetalCheckBoxIcon"), @@ -903,7 +905,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "CheckBoxMenuItem.commandSound", "sounds/MenuItemCommand.wav", "CheckBoxMenuItem.checkIcon", MetalIconFactory.getCheckBoxMenuItemIcon(), "CheckBoxMenuItem.disabledForeground", getMenuDisabledForeground(), - "CheckBoxMenuItem.font", new FontUIResource("Dialog", Font.BOLD, 12), + "CheckBoxMenuItem.font", getMenuTextFont(), "CheckBoxMenuItem.foreground", getMenuForeground(), "CheckBoxMenuItem.selectionBackground", getMenuSelectedBackground(), "CheckBoxMenuItem.selectionForeground", getMenuSelectedForeground(), @@ -922,7 +924,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "ComboBox.buttonShadow", getControlShadow(), "ComboBox.disabledBackground", getControl(), "ComboBox.disabledForeground", getInactiveSystemTextColor(), - "ComboBox.font", new FontUIResource("Dialog", Font.BOLD, 12), + "ComboBox.font", getControlTextFont(), "ComboBox.foreground", getControlTextColor(), "ComboBox.selectionBackground", getPrimaryControlShadow(), "ComboBox.selectionForeground", getControlTextColor(), @@ -933,10 +935,11 @@ public class MetalLookAndFeel extends BasicLookAndFeel "DesktopIcon.foreground", getControlTextColor(), "DesktopIcon.width", new Integer(160), "DesktopIcon.border", MetalBorders.getDesktopIconBorder(), + "DesktopIcon.font", getControlTextFont(), "EditorPane.background", getWindowBackground(), "EditorPane.caretForeground", getUserTextColor(), - "EditorPane.font", new FontUIResource("Dialog", Font.BOLD, 12), + "EditorPane.font", getControlTextFont(), "EditorPane.foreground", getUserTextColor(), "EditorPane.inactiveForeground", getInactiveSystemTextColor(), "EditorPane.selectionBackground", getTextHighlightColor(), @@ -1021,7 +1024,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "Menu.borderPainted", Boolean.TRUE, "MenuItem.commandSound", "sounds/MenuItemCommand.wav", "Menu.disabledForeground", getMenuDisabledForeground(), - "Menu.font", getControlTextFont(), + "Menu.font", getMenuTextFont(), "Menu.foreground", getMenuForeground(), "Menu.selectionBackground", getMenuSelectedBackground(), "Menu.selectionForeground", getMenuSelectedForeground(), @@ -1030,7 +1033,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "MenuBar.background", getMenuBackground(), "MenuBar.border", new MetalBorders.MenuBarBorder(), - "MenuBar.font", getControlTextFont(), + "MenuBar.font", getMenuTextFont(), "MenuBar.foreground", getMenuForeground(), "MenuBar.highlight", getControlHighlight(), "MenuBar.shadow", getControlShadow(), @@ -1044,7 +1047,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "MenuItem.border", new MetalBorders.MenuItemBorder(), "MenuItem.borderPainted", Boolean.TRUE, "MenuItem.disabledForeground", getMenuDisabledForeground(), - "MenuItem.font", getControlTextFont(), + "MenuItem.font", getMenuTextFont(), "MenuItem.foreground", getMenuForeground(), "MenuItem.selectionBackground", getMenuSelectedBackground(), "MenuItem.selectionForeground", getMenuSelectedForeground(), @@ -1085,13 +1088,13 @@ public class MetalLookAndFeel extends BasicLookAndFeel "PopupMenu.background", getMenuBackground(), "PopupMenu.border", new MetalBorders.PopupMenuBorder(), - "PopupMenu.font", new FontUIResource("Dialog", Font.BOLD, 12), + "PopupMenu.font", getMenuTextFont(), "PopupMenu.foreground", getMenuForeground(), "PopupMenu.popupSound", "sounds/PopupMenuPopup.wav", "ProgressBar.background", getControl(), "ProgressBar.border", new BorderUIResource.LineBorderUIResource(getControlDarkShadow(), 1), - "ProgressBar.font", new FontUIResource("Dialog", Font.BOLD, 12), + "ProgressBar.font", getControlTextFont(), "ProgressBar.foreground", getPrimaryControlShadow(), "ProgressBar.selectionBackground", getPrimaryControlDarkShadow(), "ProgressBar.selectionForeground", getControl(), @@ -1125,7 +1128,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel MetalIconFactory.getRadioButtonMenuItemIcon(), "RadioButtonMenuItem.commandSound", "sounds/MenuItemCommand.wav", "RadioButtonMenuItem.disabledForeground", getMenuDisabledForeground(), - "RadioButtonMenuItem.font", MetalLookAndFeel.getControlTextFont(), + "RadioButtonMenuItem.font", getMenuTextFont(), "RadioButtonMenuItem.foreground", getMenuForeground(), "RadioButtonMenuItem.margin", new InsetsUIResource(2, 2, 2, 2), "RadioButtonMenuItem.selectionBackground", @@ -1172,7 +1175,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "Spinner.arrowButtonInsets", new InsetsUIResource(0, 0, 0, 0), "Spinner.background", getControl(), "Spinner.border", MetalBorders.getTextFieldBorder(), - "Spinner.font", new FontUIResource("Dialog", Font.BOLD, 12), + "Spinner.font", getControlTextFont(), "Spinner.foreground", getControl(), "SplitPane.background", getControl(), @@ -1189,7 +1192,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "TabbedPane.contentOpaque", Boolean.TRUE, "TabbedPane.darkShadow", getControlDarkShadow(), "TabbedPane.focus", getPrimaryControlDarkShadow(), - "TabbedPane.font", new FontUIResource("Dialog", Font.BOLD, 12), + "TabbedPane.font", getControlTextFont(), "TabbedPane.foreground", getControlTextColor(), "TabbedPane.highlight", getControlHighlight(), "TabbedPane.light", getControl(), @@ -1200,7 +1203,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "TabbedPane.tabAreaBackground", getControl(), // overridden in OceanTheme "TabbedPane.tabAreaInsets", new InsetsUIResource(4, 2, 0, 6), // dito "TabbedPane.tabInsets", new InsetsUIResource(0, 9, 1, 9), - + // new properties in OceanTheme: // TabbedPane.contentAreaColor // TabbedPane.unselectedBackground @@ -1252,7 +1255,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "TextPane.selectionForeground", getHighlightedTextColor(), "TitledBorder.border", new LineBorderUIResource(getPrimaryControl(), 1), - "TitledBorder.font", new FontUIResource("Dialog", Font.BOLD, 12), + "TitledBorder.font", getControlTextFont(), "TitledBorder.titleColor", getSystemTextColor(), "ToggleButton.background", getControl(), @@ -1274,7 +1277,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "ToolBar.dockingForeground", getPrimaryControlDarkShadow(), "ToolBar.floatingBackground", getMenuBackground(), "ToolBar.floatingForeground", getPrimaryControl(), - "ToolBar.font", new FontUIResource("Dialog", Font.BOLD, 12), + "ToolBar.font", getMenuTextFont(), "ToolBar.foreground", getMenuForeground(), "ToolBar.highlight", getControlHighlight(), "ToolBar.light", getControlHighlight(), @@ -1354,7 +1357,14 @@ public class MetalLookAndFeel extends BasicLookAndFeel public static MetalTheme getCurrentTheme() { if (theme == null) - theme = new OceanTheme(); + { + // swing.metalTheme property documented here: + // http://java.sun.com/j2se/1.5.0/docs/guide/swing/1.5/index.html + if ("steel".equals(SystemProperties.getProperty("swing.metalTheme"))) + theme = new DefaultMetalTheme(); + else + theme = new OceanTheme(); + } return theme; } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java index ff763ea9da9..40661946b1a 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalMenuBarUI.java @@ -1,5 +1,5 @@ /* MetalMenuBarUI.java -- MenuBar UI for the Metal L&F - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -76,12 +76,15 @@ public class MetalMenuBarUI extends BasicMenuBarUI */ public void update(Graphics g, JComponent c) { + int height = c.getHeight(); if (c.isOpaque() && UIManager.get("MenuBar.gradient") != null - && c.getBackground() instanceof UIResource) + && c.getBackground() instanceof UIResource + && height > 2) { - MetalUtils.paintGradient(g, 0, 0, c.getWidth(), c.getHeight(), + MetalUtils.paintGradient(g, 0, 0, c.getWidth(), height - 2, SwingConstants.VERTICAL, "MenuBar.gradient"); + paint(g, c); } else diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java index 046e4942ee1..57f5bbe3e0a 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java @@ -177,7 +177,7 @@ public class MetalRadioButtonUI protected void paintFocus(Graphics g, Rectangle t, Dimension d) { g.setColor(focusColor); - g.drawRect(t.x - 1, t.y - 1, t.width + 2, t.height + 2); + g.drawRect(t.x - 1, t.y - 1, t.width + 1, t.height + 1); } } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java index 75f2750ae9c..4c75fcb4f14 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalScrollBarUI.java @@ -1,5 +1,5 @@ /* MetalScrollBarUI.java - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -169,6 +169,7 @@ public class MetalScrollBarUI extends BasicScrollBarUI Boolean prop = (Boolean) scrollbar.getClientProperty(FREE_STANDING_PROP); isFreeStanding = prop == null ? true : prop.booleanValue(); scrollBarShadowColor = UIManager.getColor("ScrollBar.shadow"); + scrollBarWidth = UIManager.getInt("ScrollBar.width"); super.installDefaults(); } @@ -187,7 +188,10 @@ public class MetalScrollBarUI extends BasicScrollBarUI /** * Creates a new button to use as the control at the lower end of the - * {@link JScrollBar}. + * {@link JScrollBar}. This method assigns the new button (an instance of + * {@link MetalScrollButton} to the {@link #decreaseButton} field, and also + * returns the button. The button width is determined by the + * ScrollBar.width setting in the UI defaults. * * @param orientation the orientation of the button ({@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}). @@ -196,7 +200,6 @@ public class MetalScrollBarUI extends BasicScrollBarUI */ protected JButton createDecreaseButton(int orientation) { - scrollBarWidth = UIManager.getInt("ScrollBar.width"); decreaseButton = new MetalScrollButton(orientation, scrollBarWidth, isFreeStanding); return decreaseButton; @@ -204,7 +207,10 @@ public class MetalScrollBarUI extends BasicScrollBarUI /** * Creates a new button to use as the control at the upper end of the - * {@link JScrollBar}. + * {@link JScrollBar}. This method assigns the new button (an instance of + * {@link MetalScrollButton} to the {@link #increaseButton} field, and also + * returns the button. The button width is determined by the + * ScrollBar.width setting in the UI defaults. * * @param orientation the orientation of the button ({@link #NORTH}, * {@link #SOUTH}, {@link #EAST} or {@link #WEST}). @@ -213,7 +219,6 @@ public class MetalScrollBarUI extends BasicScrollBarUI */ protected JButton createIncreaseButton(int orientation) { - scrollBarWidth = UIManager.getInt("ScrollBar.width"); increaseButton = new MetalScrollButton(orientation, scrollBarWidth, isFreeStanding); return increaseButton; diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java index 0f824418c5d..b3e8707c94d 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalSliderUI.java @@ -352,7 +352,10 @@ public class MetalSliderUI extends BasicSliderUI */ public int getTickLength() { - return tickLength + TICK_BUFFER; + int len = tickLength + TICK_BUFFER + 1; + if (slider.getOrientation() == JSlider.VERTICAL) + len += 2; + return len; } /** @@ -406,9 +409,9 @@ public class MetalSliderUI extends BasicSliderUI // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) - g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); + g.setColor(slider.getForeground()); else - g.setColor(MetalLookAndFeel.getControlDisabled()); + g.setColor(MetalLookAndFeel.getControlShadow()); g.drawLine(x, TICK_BUFFER, x, TICK_BUFFER + tickLength / 2); } @@ -425,10 +428,10 @@ public class MetalSliderUI extends BasicSliderUI // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) - g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); + g.setColor(slider.getForeground()); else - g.setColor(MetalLookAndFeel.getControlDisabled()); - g.drawLine(x, TICK_BUFFER, x, TICK_BUFFER + tickLength); + g.setColor(MetalLookAndFeel.getControlShadow()); + g.drawLine(x, TICK_BUFFER, x, TICK_BUFFER + tickLength - 1); } /** @@ -444,10 +447,10 @@ public class MetalSliderUI extends BasicSliderUI // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) - g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); + g.setColor(slider.getForeground()); else - g.setColor(MetalLookAndFeel.getControlDisabled()); - g.drawLine(TICK_BUFFER - 1, y, TICK_BUFFER - 1 + tickLength / 2, y); + g.setColor(MetalLookAndFeel.getControlShadow()); + g.drawLine(TICK_BUFFER, y, TICK_BUFFER + tickLength / 2, y); } /** @@ -463,10 +466,10 @@ public class MetalSliderUI extends BasicSliderUI // Note the incoming 'g' has a translation in place to get us to the // start of the tick rect already... if (slider.isEnabled()) - g.setColor(MetalLookAndFeel.getPrimaryControlShadow()); + g.setColor(slider.getForeground()); else - g.setColor(MetalLookAndFeel.getControlDisabled()); - g.drawLine(TICK_BUFFER - 1, y, TICK_BUFFER - 1 + tickLength, y); + g.setColor(MetalLookAndFeel.getControlShadow()); + g.drawLine(TICK_BUFFER, y, TICK_BUFFER + tickLength, y); } } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java b/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java index 6081c355c37..a3069daa9c5 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java @@ -38,18 +38,14 @@ exception statement from your version. */ package javax.swing.plaf.metal; import java.awt.Color; -import java.awt.Component; -import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; -import java.awt.LayoutManager; -import java.awt.Point; +import java.awt.Insets; +import javax.swing.JButton; import javax.swing.JSplitPane; -import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.Border; -import javax.swing.plaf.basic.BasicArrowButton; import javax.swing.plaf.basic.BasicSplitPaneDivider; /** @@ -59,6 +55,143 @@ import javax.swing.plaf.basic.BasicSplitPaneDivider; */ class MetalSplitPaneDivider extends BasicSplitPaneDivider { + /** + * The button pixel data, as indices into the colors array below. + * This is the version for 'left' buttons. + * + * This is slightly different from the icon in Sun's version, it is + * one pixel smaller and is more consistent with BUTTON_SPRITE_R. + */ + static final byte[][] BUTTON_SPRITE_L = {{ 0, 0, 0, 2, 0, 0, 0, 0 }, + { 0, 0, 2, 1, 1, 0, 0, 0 }, + { 0, 2, 1, 1, 1, 1, 0, 0 }, + { 2, 1, 1, 1, 1, 1, 1, 0 }, + { 0, 3, 3, 3, 3, 3, 3, 3 }}; + + /** + * The button pixel data, as indices into the colors array below. + * This is the version for 'right' buttons. + */ + static final byte[][] BUTTON_SPRITE_R = {{ 2, 2, 2, 2, 2, 2, 2, 2 }, + { 0, 1, 1, 1, 1, 1, 1, 3 }, + { 0, 0, 1, 1, 1, 1, 3, 0 }, + { 0, 0, 0, 1, 1, 3, 0, 0 }, + { 0, 0, 0, 0, 3, 0, 0, 0 }}; + + private class MetalOneTouchButton + extends JButton + { + /** + * Denotes a left button. + */ + static final int LEFT = 0; + + /** + * Denotes a right button. + */ + static final int RIGHT = 1; + + /** + * The colors for the button sprite. + */ + private Color[] colors; + + /** + * Either LEFT or RIGHT. + */ + private int direction; + + /** + * Creates a new instance. + * + * @param dir either LEFT or RIGHT + */ + MetalOneTouchButton(int dir) + { + direction = dir; + colors = new Color[4]; + } + + /** + * Never allow borders. + */ + public void setBorder(Border b) + { + } + + /** + * Never allow focus traversal. + */ + public boolean isFocusTraversable() + { + return false; + } + + /** + * Paints the one touch button. + */ + public void paint(Graphics g) + { + if (splitPane != null) + { + // Update colors here to reflect dynamic changes to the theme. + colors[0] = getBackground(); + colors[1] = MetalLookAndFeel.getPrimaryControlDarkShadow(); + colors[2] = MetalLookAndFeel.getPrimaryControlInfo(); + colors[3] = MetalLookAndFeel.getPrimaryControlHighlight(); + + // Fill background. + g.setColor(getBackground()); + g.fillRect(0, 0, getWidth(), getHeight()); + + // Pressed buttons have slightly different color mapping. + if (getModel().isPressed()) + colors[1] = colors[2]; + + byte[][] sprite; + if (direction == LEFT) + sprite = BUTTON_SPRITE_L; + else + sprite = BUTTON_SPRITE_R; + + if (orientation == JSplitPane.VERTICAL_SPLIT) + { + // Draw the sprite as it is. + for (int y = 0; y < sprite.length; y++) + { + byte[] line = sprite[y]; + for (int x = 0; x < line.length; x++) + { + int c = line[x]; + if (c != 0) + { + g.setColor(colors[c]); + g.fillRect(x + 1, y + 1, 1, 1); + } + } + } + } + else + { + // Draw the sprite with swapped X and Y axis. + for (int y = 0; y < sprite.length; y++) + { + byte[] line = sprite[y]; + for (int x = 0; x < line.length; x++) + { + int c = line[x]; + if (c != 0) + { + g.setColor(colors[c]); + g.fillRect(y + 1, x + 1, 1, 1); + } + } + } + } + } + } + } + /** The dark color in the pattern. */ Color dark; @@ -79,7 +212,6 @@ class MetalSplitPaneDivider extends BasicSplitPaneDivider public MetalSplitPaneDivider(MetalSplitPaneUI ui, Color light, Color dark) { super(ui); - setLayout(new MetalDividerLayout()); this.splitPane = super.splitPane; this.orientation = super.orientation; this.light = light; @@ -106,126 +238,27 @@ class MetalSplitPaneDivider extends BasicSplitPaneDivider if (border != null) border.paintBorder(this, g, 0, 0, s.width, s.height); - MetalUtils.fillMetalPattern(splitPane, g, 2, 2, s.width - 4, s.height - 4, + Insets i = getInsets(); + MetalUtils.fillMetalPattern(splitPane, g, i.left + 2, i.top + 2, + s.width - i.left - i.right - 4, + s.height - i.top - i.bottom - 4, light, dark); - if (splitPane.isOneTouchExpandable()) - { - ((BasicArrowButton) rightButton).paint(g); - ((BasicArrowButton) leftButton).paint(g); - } + super.paint(g); } - - /** - * This helper class acts as the Layout Manager for the divider. - */ - public class MetalDividerLayout implements LayoutManager - { - /** The right button. */ - BasicArrowButton rb; - - /** The left button. */ - BasicArrowButton lb; - - /** - * Creates a new DividerLayout object. - */ - public MetalDividerLayout() - { - // Nothing to do here - } - - /** - * This method is called when a Component is added. - * - * @param string The constraints string. - * @param c The Component to add. - */ - public void addLayoutComponent(String string, Component c) - { - // Nothing to do here, constraints are set depending on - // orientation in layoutContainer - } - - /** - * This method is called to lay out the container. - * - * @param c The container to lay out. - */ - public void layoutContainer(Container c) - { - // The only components we care about setting up are the - // one touch buttons. - if (splitPane.isOneTouchExpandable()) - { - if (c.getComponentCount() == 2) - { - Component c1 = c.getComponent(0); - Component c2 = c.getComponent(1); - if ((c1 instanceof BasicArrowButton) - && (c2 instanceof BasicArrowButton)) - { - lb = (BasicArrowButton) c1; - rb = (BasicArrowButton) c2; - } - } - if (rb != null && lb != null) - { - Point p = getLocation(); - lb.setSize(lb.getPreferredSize()); - rb.setSize(rb.getPreferredSize()); - lb.setLocation(p.x, p.y); - - if (orientation == JSplitPane.HORIZONTAL_SPLIT) - { - rb.setDirection(SwingConstants.EAST); - lb.setDirection(SwingConstants.WEST); - rb.setLocation(p.x, p.y + lb.getHeight()); - } - else - { - rb.setDirection(SwingConstants.SOUTH); - lb.setDirection(SwingConstants.NORTH); - rb.setLocation(p.x + lb.getWidth(), p.y); - } - } - } - } - - /** - * This method returns the minimum layout size. - * - * @param c The container to calculate for. - * - * @return The minimum layout size. - */ - public Dimension minimumLayoutSize(Container c) - { - return preferredLayoutSize(c); - } - /** - * This method returns the preferred layout size. - * - * @param c The container to calculate for. - * - * @return The preferred layout size. - */ - public Dimension preferredLayoutSize(Container c) - { - int dividerSize = getDividerSize(); - return new Dimension(dividerSize, dividerSize); - } + protected JButton createLeftOneTouchButton() + { + JButton b = new MetalOneTouchButton(MetalOneTouchButton.LEFT); + b.setMinimumSize(new Dimension(ONE_TOUCH_SIZE, ONE_TOUCH_SIZE)); + b.setRequestFocusEnabled(false); + return b; + } - /** - * This method is called when a component is removed. - * - * @param c The component to remove. - */ - public void removeLayoutComponent(Component c) - { - // Nothing to do here. If buttons are removed - // they will not be layed out when layoutContainer is - // called. - } + protected JButton createRightOneTouchButton() + { + JButton b = new MetalOneTouchButton(MetalOneTouchButton.RIGHT); + b.setMinimumSize(new Dimension(ONE_TOUCH_SIZE, ONE_TOUCH_SIZE)); + b.setRequestFocusEnabled(false); + return b; } } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java index 20135fc857e..53eaa3cac5a 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java @@ -1159,7 +1159,7 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI g.drawLine(x + 1, y + 1, x + 1, rect.y + 1); if (rect.y + rect.height < y + h - 2) { - g.drawLine(x + y, rect.y + rect.height + 1, x + 1, y + h + 2); + g.drawLine(x + 1, rect.y + rect.height + 1, x + 1, y + h + 2); } } } diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java index d1040347fc6..6647cc02d16 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalToolTipUI.java @@ -43,9 +43,6 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; -import java.awt.Insets; -import java.awt.Rectangle; -import java.awt.Toolkit; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; @@ -54,8 +51,6 @@ import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.JToolTip; import javax.swing.KeyStroke; -import javax.swing.SwingConstants; -import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.plaf.ComponentUI; @@ -192,32 +187,14 @@ public class MetalToolTipUI */ public Dimension getPreferredSize(JComponent c) { - if (isAcceleratorHidden()) - return super.getPreferredSize(c); - else + Dimension d = super.getPreferredSize(c); + String acc = getAcceleratorString(); + if (acc != null && ! acc.equals("")) { - Insets insets = c.getInsets(); - JToolTip tt = (JToolTip) c; - String tipText = tt.getTipText(); - if (tipText != null) - { - FontMetrics fm = c.getFontMetrics(c.getFont()); - int prefH = fm.getHeight() + insets.top + insets.bottom; - int prefW = fm.stringWidth(tipText) + insets.left + insets.right; - - // this seems to be the first opportunity we have to get the - // accelerator string from the component (if it has one) - acceleratorString = fetchAcceleratorString(c); - if (acceleratorString != null) - { - prefW += padSpaceBetweenStrings; - fm = c.getFontMetrics(acceleratorFont); - prefW += fm.stringWidth(acceleratorString); - } - return new Dimension(prefW, prefH); - } - else return new Dimension(0, 0); + FontMetrics fm = c.getFontMetrics(c.getFont()); + d.width += fm.stringWidth(acc); } + return d; } /** @@ -228,39 +205,8 @@ public class MetalToolTipUI */ public void paint(Graphics g, JComponent c) { - JToolTip tip = (JToolTip) c; - - String text = tip.getTipText(); - Toolkit t = tip.getToolkit(); - if (text == null) - return; - - Rectangle vr = new Rectangle(); - vr = SwingUtilities.calculateInnerArea(tip, vr); - Rectangle ir = new Rectangle(); - Rectangle tr = new Rectangle(); - FontMetrics fm = t.getFontMetrics(tip.getFont()); - int ascent = fm.getAscent(); - SwingUtilities.layoutCompoundLabel(tip, fm, text, null, - SwingConstants.CENTER, SwingConstants.LEFT, - SwingConstants.CENTER, SwingConstants.CENTER, vr, ir, tr, 0); - Color saved = g.getColor(); - g.setColor(Color.BLACK); - - g.drawString(text, vr.x, vr.y + ascent); - - // paint accelerator - if (acceleratorString != null) - { - g.setFont(acceleratorFont); - g.setColor(acceleratorForeground); - fm = t.getFontMetrics(acceleratorFont); - int width = fm.stringWidth(acceleratorString); - g.drawString(acceleratorString, vr.x + vr.width - width - - padSpaceBetweenStrings / 2, vr.y + vr.height - fm.getDescent()); - } - - g.setColor(saved); + super.paint(g, c); + // Somehow paint accelerator. Keep care for possible HTML rendering. } /** diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java b/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java index 3ea37c82f18..ed1e5b4d825 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalTreeUI.java @@ -38,14 +38,15 @@ exception statement from your version. */ package javax.swing.plaf.metal; -import gnu.classpath.NotImplementedException; - import java.awt.Graphics; import java.awt.Insets; import java.awt.Rectangle; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.JTree; +import javax.swing.UIManager; import javax.swing.tree.TreePath; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicTreeUI; @@ -56,6 +57,68 @@ import javax.swing.plaf.basic.BasicTreeUI; public class MetalTreeUI extends BasicTreeUI { /** + * Listens for property changes of the line style and updates the + * internal setting. + */ + private class LineStyleListener + implements PropertyChangeListener + { + + public void propertyChange(PropertyChangeEvent e) + { + if (e.getPropertyName().equals(LINE_STYLE_PROPERTY)) + decodeLineStyle(e.getNewValue()); + } + + } + + /** + * The key to the lineStyle client property. + */ + private static final String LINE_STYLE_PROPERTY = "JTree.lineStyle"; + + /** + * The property value indicating no line style. + */ + private static final String LINE_STYLE_VALUE_NONE = "None"; + + /** + * The property value indicating angled line style. + */ + private static final String LINE_STYLE_VALUE_ANGLED = "Angled"; + + /** + * The property value indicating horizontal line style. + */ + private static final String LINE_STYLE_VALUE_HORIZONTAL = "Horizontal"; + + /** + * The line style for None. + */ + private static final int LINE_STYLE_NONE = 0; + + /** + * The line style for Angled. + */ + private static final int LINE_STYLE_ANGLED = 1; + + /** + * The line style for Horizontal. + */ + private static final int LINE_STYLE_HORIZONTAL = 2; + + /** + * The current line style. + */ + private int lineStyle; + + /** + * Listens for changes on the line style property and updates the + * internal settings. + */ + private PropertyChangeListener lineStyleListener; + + /** * Constructs a new instance of MetalTreeUI. */ public MetalTreeUI() @@ -103,8 +166,13 @@ public class MetalTreeUI extends BasicTreeUI */ public void installUI(JComponent c) { - // TODO: What to do here, if anything? super.installUI(c); + + Object lineStyleProp = c.getClientProperty(LINE_STYLE_PROPERTY); + decodeLineStyle(lineStyleProp); + if (lineStyleListener == null) + lineStyleListener = new LineStyleListener(); + c.addPropertyChangeListener(lineStyleListener); } /** @@ -124,8 +192,10 @@ public class MetalTreeUI extends BasicTreeUI */ public void uninstallUI(JComponent c) { - // TODO: What to do here? super.uninstallUI(c); + if (lineStyleListener != null) + c.removePropertyChangeListener(lineStyleListener); + lineStyleListener = null; } /** @@ -135,9 +205,15 @@ public class MetalTreeUI extends BasicTreeUI * @param lineStyleFlag - String representation */ protected void decodeLineStyle(Object lineStyleFlag) - throws NotImplementedException { - // FIXME: not implemented + if (lineStyleFlag == null || lineStyleFlag.equals(LINE_STYLE_VALUE_ANGLED)) + lineStyle = LINE_STYLE_ANGLED; + else if (lineStyleFlag.equals(LINE_STYLE_VALUE_HORIZONTAL)) + lineStyle = LINE_STYLE_HORIZONTAL; + else if (lineStyleFlag.equals(LINE_STYLE_VALUE_NONE)) + lineStyle = LINE_STYLE_NONE; + else + lineStyle = LINE_STYLE_ANGLED; } /** @@ -170,6 +246,9 @@ public class MetalTreeUI extends BasicTreeUI // Calls BasicTreeUI's paint since it takes care of painting all // types of icons. super.paint(g, c); + + if (lineStyle == LINE_STYLE_HORIZONTAL) + paintHorizontalSeparators(g, c); } /** @@ -179,9 +258,28 @@ public class MetalTreeUI extends BasicTreeUI * @param c - the current component to draw */ protected void paintHorizontalSeparators(Graphics g, JComponent c) - throws NotImplementedException { - // FIXME: not implemented + g.setColor(UIManager.getColor("Tree.line")); + Rectangle clip = g.getClipBounds(); + int row0 = getRowForPath(tree, getClosestPathForLocation(tree, 0, clip.y)); + int row1 = + getRowForPath(tree, getClosestPathForLocation(tree, 0, + clip.y + clip.height - 1)); + if (row0 >= 0 && row1 >= 0) + { + for (int i = row0; i <= row1; i++) + { + TreePath p = getPathForRow(tree, i); + if (p != null && p.getPathCount() == 2) + { + Rectangle r = getPathBounds(tree, getPathForRow(tree, i)); + if (r != null) + { + g.drawLine(clip.x, r.y, clip.x + clip.width, r.y); + } + } + } + } } @@ -197,7 +295,8 @@ public class MetalTreeUI extends BasicTreeUI protected void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, TreePath path) { - super.paintVerticalPartOfLeg(g, clipBounds, insets, path); + if (lineStyle == LINE_STYLE_ANGLED) + super.paintVerticalPartOfLeg(g, clipBounds, insets, path); } /** @@ -211,7 +310,8 @@ public class MetalTreeUI extends BasicTreeUI boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf) { - super.paintHorizontalPartOfLeg(g, clipBounds, insets, bounds, path, row, - isExpanded, hasBeenExpanded, isLeaf); + if (lineStyle == LINE_STYLE_ANGLED) + super.paintHorizontalPartOfLeg(g, clipBounds, insets, bounds, path, row, + isExpanded, hasBeenExpanded, isLeaf); } } diff --git a/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java b/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java index 9d76ff7e808..1ea0bc24385 100644 --- a/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java +++ b/libjava/classpath/javax/swing/plaf/metal/OceanTheme.java @@ -266,6 +266,8 @@ public class OceanTheme extends DefaultMetalTheme defaults.put("Tree.selectionBorderColor", PRIMARY1); // Borders. + defaults.put("List.focusCellHighlightBorder", + new LineBorderUIResource(getPrimary1())); defaults.put("Table.focusCellHighlightBorder", new LineBorderUIResource(getPrimary1())); diff --git a/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java b/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java index 1a2489e7ea6..46a95f09860 100644 --- a/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java +++ b/libjava/classpath/javax/swing/plaf/synth/SynthLookAndFeel.java @@ -216,9 +216,7 @@ public class SynthLookAndFeel * @throws IllegalArgumentException if one of the parameters is * null */ - // FIXME: The signature in the JDK has a Class here. Should be fixed as - // soon as we switch to the generics branch. - public void load(InputStream in, Class resourceBase) + public void load(InputStream in, Class resourceBase) throws ParseException, IllegalArgumentException, NotImplementedException { // FIXME: Implement this correctly. diff --git a/libjava/classpath/javax/swing/table/AbstractTableModel.java b/libjava/classpath/javax/swing/table/AbstractTableModel.java index 7914e0b3f46..66b6a0743b6 100644 --- a/libjava/classpath/javax/swing/table/AbstractTableModel.java +++ b/libjava/classpath/javax/swing/table/AbstractTableModel.java @@ -125,7 +125,7 @@ public abstract class AbstractTableModel implements TableModel, Serializable * * @return The class. */ - public Class getColumnClass(int columnIndex) + public Class getColumnClass(int columnIndex) { return Object.class; } @@ -294,7 +294,7 @@ public abstract class AbstractTableModel implements TableModel, Serializable * * @return An array of listeners (possibly empty). */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } diff --git a/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java b/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java index 33e68ea9fcd..e4e7201b184 100644 --- a/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java +++ b/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java @@ -71,7 +71,7 @@ public class DefaultTableColumnModel /** * Storage for the table columns. */ - protected Vector tableColumns; + protected Vector tableColumns; /** * A selection model that keeps track of column selections. @@ -187,7 +187,7 @@ public class DefaultTableColumnModel throw new IllegalArgumentException("Index 'i' out of range."); if (j < 0 || j >= columnCount) throw new IllegalArgumentException("Index 'j' out of range."); - Object column = tableColumns.remove(i); + TableColumn column = tableColumns.remove(i); tableColumns.add(j, column); fireColumnMoved(new TableColumnModelEvent(this, i, j)); } @@ -221,7 +221,7 @@ public class DefaultTableColumnModel * * @return An enumeration of the columns in the model. */ - public Enumeration getColumns() + public Enumeration getColumns() { return tableColumns.elements(); } @@ -597,7 +597,7 @@ public class DefaultTableColumnModel * @return An array containing the listeners (of the specified type) that * are registered with this model. */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } diff --git a/libjava/classpath/javax/swing/table/DefaultTableModel.java b/libjava/classpath/javax/swing/table/DefaultTableModel.java index 79285903c00..1b68ce2be81 100644 --- a/libjava/classpath/javax/swing/table/DefaultTableModel.java +++ b/libjava/classpath/javax/swing/table/DefaultTableModel.java @@ -625,7 +625,7 @@ public class DefaultTableModel extends AbstractTableModel if (columnCount > columnIdentifiers.size()) columnIdentifiers.setSize(columnCount); - if (rowCount > dataVector.size()) + if (dataVector != null && rowCount > dataVector.size()) { int rowsToAdd = rowCount - dataVector.size(); addExtraRows(rowsToAdd, columnCount); diff --git a/libjava/classpath/javax/swing/table/TableColumnModel.java b/libjava/classpath/javax/swing/table/TableColumnModel.java index 986c0253323..7e8a70c3a5b 100644 --- a/libjava/classpath/javax/swing/table/TableColumnModel.java +++ b/libjava/classpath/javax/swing/table/TableColumnModel.java @@ -102,7 +102,7 @@ public interface TableColumnModel * * @return An enumeration of the columns in the model. */ - Enumeration getColumns(); + Enumeration getColumns(); /** * Returns the index of the {@link TableColumn} with the given identifier. diff --git a/libjava/classpath/javax/swing/table/TableModel.java b/libjava/classpath/javax/swing/table/TableModel.java index 016ae171dd4..7629fa4e404 100644 --- a/libjava/classpath/javax/swing/table/TableModel.java +++ b/libjava/classpath/javax/swing/table/TableModel.java @@ -84,7 +84,7 @@ public interface TableModel * * @return The class. */ - Class getColumnClass(int columnIndex); + Class getColumnClass(int columnIndex); /** * Returns true if the cell is editable, and false diff --git a/libjava/classpath/javax/swing/text/AbstractDocument.java b/libjava/classpath/javax/swing/text/AbstractDocument.java index eb46a8c42f6..eead8de5261 100644 --- a/libjava/classpath/javax/swing/text/AbstractDocument.java +++ b/libjava/classpath/javax/swing/text/AbstractDocument.java @@ -38,11 +38,15 @@ exception statement from your version. */ package javax.swing.text; +import java.awt.font.TextAttribute; import java.io.PrintStream; import java.io.Serializable; +import java.text.Bidi; +import java.util.ArrayList; import java.util.Dictionary; import java.util.Enumeration; import java.util.EventListener; +import java.util.HashMap; import java.util.Hashtable; import java.util.Vector; @@ -105,6 +109,21 @@ public abstract class AbstractDocument implements Document, Serializable public static final String ElementNameAttribute = "$ename"; /** + * Standard name for the bidi root element. + */ + private static final String BidiRootName = "bidi root"; + + /** + * Key for storing the asynchronous load priority. + */ + private static final String AsyncLoadPriority = "load priority"; + + /** + * Key for storing the I18N state. + */ + private static final String I18N = "i18n"; + + /** * The actual content model of this Document. */ Content content; @@ -140,14 +159,10 @@ public abstract class AbstractDocument implements Document, Serializable private int numReaders = 0; /** - * Tells if there are one or more writers waiting. + * The number of current writers. If this is > 1 then the same thread entered + * the write lock more than once. */ - private int numWritersWaiting = 0; - - /** - * A condition variable that readers and writers wait on. - */ - private Object documentCV = new Object(); + private int numWriters = 0; /** An instance of a DocumentFilter.FilterBypass which allows calling * the insert, remove and replace method without checking for an installed @@ -158,7 +173,13 @@ public abstract class AbstractDocument implements Document, Serializable /** * The bidi root element. */ - private Element bidiRoot; + private BidiRootElement bidiRoot; + + /** + * True when we are currently notifying any listeners. This is used + * to detect illegal situations in writeLock(). + */ + private transient boolean notifyListeners; /** * Creates a new AbstractDocument with the specified @@ -191,12 +212,25 @@ public abstract class AbstractDocument implements Document, Serializable content = doc; context = ctx; + // FIXME: Fully implement bidi. + bidiRoot = new BidiRootElement(); + // FIXME: This is determined using a Mauve test. Make the document // actually use this. - putProperty("i18n", Boolean.FALSE); + putProperty(I18N, Boolean.FALSE); - // FIXME: Fully implement bidi. - bidiRoot = new BranchElement(null, null); + // Add one child to the bidi root. + writeLock(); + try + { + Element[] children = new Element[1]; + children[0] = new BidiElement(bidiRoot, 0, 1, 0); + bidiRoot.replace(0, 0, children); + } + finally + { + writeUnlock(); + } } /** Returns the DocumentFilter.FilterBypass instance for this @@ -284,7 +318,8 @@ public abstract class AbstractDocument implements Document, Serializable * @throws BadLocationException if offset is not a valid * location in the documents content model */ - public Position createPosition(final int offset) throws BadLocationException + public synchronized Position createPosition(final int offset) + throws BadLocationException { return content.createPosition(offset); } @@ -296,10 +331,17 @@ public abstract class AbstractDocument implements Document, Serializable */ protected void fireChangedUpdate(DocumentEvent event) { - DocumentListener[] listeners = getDocumentListeners(); - - for (int index = 0; index < listeners.length; ++index) - listeners[index].changedUpdate(event); + notifyListeners = true; + try + { + DocumentListener[] listeners = getDocumentListeners(); + for (int index = 0; index < listeners.length; ++index) + listeners[index].changedUpdate(event); + } + finally + { + notifyListeners = false; + } } /** @@ -310,10 +352,17 @@ public abstract class AbstractDocument implements Document, Serializable */ protected void fireInsertUpdate(DocumentEvent event) { - DocumentListener[] listeners = getDocumentListeners(); - - for (int index = 0; index < listeners.length; ++index) - listeners[index].insertUpdate(event); + notifyListeners = true; + try + { + DocumentListener[] listeners = getDocumentListeners(); + for (int index = 0; index < listeners.length; ++index) + listeners[index].insertUpdate(event); + } + finally + { + notifyListeners = false; + } } /** @@ -324,10 +373,17 @@ public abstract class AbstractDocument implements Document, Serializable */ protected void fireRemoveUpdate(DocumentEvent event) { - DocumentListener[] listeners = getDocumentListeners(); - - for (int index = 0; index < listeners.length; ++index) - listeners[index].removeUpdate(event); + notifyListeners = true; + try + { + DocumentListener[] listeners = getDocumentListeners(); + for (int index = 0; index < listeners.length; ++index) + listeners[index].removeUpdate(event); + } + finally + { + notifyListeners = false; + } } /** @@ -352,7 +408,11 @@ public abstract class AbstractDocument implements Document, Serializable */ public int getAsynchronousLoadPriority() { - return 0; + Object val = getProperty(AsyncLoadPriority); + int prio = -1; + if (val != null) + prio = ((Integer) val).intValue(); + return prio; } /** @@ -397,7 +457,7 @@ public abstract class AbstractDocument implements Document, Serializable * @return the thread that currently modifies this Document * if there is one, otherwise null */ - protected final Thread getCurrentWriter() + protected final synchronized Thread getCurrentWriter() { return currentWriter; } @@ -407,7 +467,7 @@ public abstract class AbstractDocument implements Document, Serializable * * @return the properties of this Document */ - public Dictionary getDocumentProperties() + public Dictionary getDocumentProperties() { // FIXME: make me thread-safe if (properties == null) @@ -425,14 +485,17 @@ public abstract class AbstractDocument implements Document, Serializable */ public final Position getEndPosition() { - // FIXME: Properly implement this by calling Content.createPosition(). - return new Position() - { - public int getOffset() - { - return getLength(); - } - }; + Position p; + try + { + p = createPosition(content.length()); + } + catch (BadLocationException ex) + { + // Shouldn't really happen. + p = null; + } + return p; } /** @@ -455,7 +518,7 @@ public abstract class AbstractDocument implements Document, Serializable * * @return all registered listeners of the specified type */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } @@ -504,14 +567,17 @@ public abstract class AbstractDocument implements Document, Serializable */ public final Position getStartPosition() { - // FIXME: Properly implement this using Content.createPosition(). - return new Position() - { - public int getOffset() - { - return 0; - } - }; + Position p; + try + { + p = createPosition(0); + } + catch (BadLocationException ex) + { + // Shouldn't really happen. + p = null; + } + return p; } /** @@ -574,11 +640,19 @@ public abstract class AbstractDocument implements Document, Serializable // Bail out if we have a bogus insertion (Behavior observed in RI). if (text == null || text.length() == 0) return; - - if (documentFilter == null) - insertStringImpl(offset, text, attributes); - else - documentFilter.insertString(getBypass(), offset, text, attributes); + + writeLock(); + try + { + if (documentFilter == null) + insertStringImpl(offset, text, attributes); + else + documentFilter.insertString(getBypass(), offset, text, attributes); + } + finally + { + writeUnlock(); + } } void insertStringImpl(int offset, String text, AttributeSet attributes) @@ -591,23 +665,30 @@ public abstract class AbstractDocument implements Document, Serializable new DefaultDocumentEvent(offset, text.length(), DocumentEvent.EventType.INSERT); - try - { - writeLock(); - UndoableEdit undo = content.insertString(offset, text); - if (undo != null) - event.addEdit(undo); - - insertUpdate(event, attributes); + UndoableEdit undo = content.insertString(offset, text); + if (undo != null) + event.addEdit(undo); - fireInsertUpdate(event); - if (undo != null) - fireUndoableEditUpdate(new UndoableEditEvent(this, undo)); - } - finally + // Check if we need bidi layout. + if (getProperty(I18N).equals(Boolean.FALSE)) { - writeUnlock(); + Object dir = getProperty(TextAttribute.RUN_DIRECTION); + if (TextAttribute.RUN_DIRECTION_RTL.equals(dir)) + putProperty(I18N, Boolean.TRUE); + else + { + char[] chars = text.toCharArray(); + if (Bidi.requiresBidi(chars, 0, chars.length)) + putProperty(I18N, Boolean.TRUE); + } } + + insertUpdate(event, attributes); + + fireInsertUpdate(event); + + if (undo != null) + fireUndoableEditUpdate(new UndoableEditEvent(this, undo)); } /** @@ -620,7 +701,8 @@ public abstract class AbstractDocument implements Document, Serializable */ protected void insertUpdate(DefaultDocumentEvent chng, AttributeSet attr) { - // Do nothing here. Subclasses may want to override this. + if (Boolean.TRUE.equals(getProperty(I18N))) + updateBidi(chng); } /** @@ -632,7 +714,8 @@ public abstract class AbstractDocument implements Document, Serializable */ protected void postRemoveUpdate(DefaultDocumentEvent chng) { - // Do nothing here. Subclasses may want to override this. + if (Boolean.TRUE.equals(getProperty(I18N))) + updateBidi(chng); } /** @@ -647,31 +730,338 @@ public abstract class AbstractDocument implements Document, Serializable if (properties == null) properties = new Hashtable(); - properties.put(key, value); + if (value == null) + properties.remove(key); + else + properties.put(key, value); + + // Update bidi structure if the RUN_DIRECTION is set. + if (TextAttribute.RUN_DIRECTION.equals(key)) + { + if (TextAttribute.RUN_DIRECTION_RTL.equals(value) + && Boolean.FALSE.equals(getProperty(I18N))) + putProperty(I18N, Boolean.TRUE); + + if (Boolean.TRUE.equals(getProperty(I18N))) + { + writeLock(); + try + { + DefaultDocumentEvent ev = + new DefaultDocumentEvent(0, getLength(), + DocumentEvent.EventType.INSERT); + updateBidi(ev); + } + finally + { + writeUnlock(); + } + } + } } /** - * Blocks until a read lock can be obtained. Must block if there is - * currently a writer modifying the Document. + * Updates the bidi element structure. + * + * @param ev the document event for the change */ - public final void readLock() + private void updateBidi(DefaultDocumentEvent ev) { - if (currentWriter != null && currentWriter.equals(Thread.currentThread())) - return; - synchronized (documentCV) + // Determine start and end offset of the paragraphs to be scanned. + int start = 0; + int end = 0; + DocumentEvent.EventType type = ev.getType(); + if (type == DocumentEvent.EventType.INSERT + || type == DocumentEvent.EventType.CHANGE) + { + int offs = ev.getOffset(); + int endOffs = offs + ev.getLength(); + start = getParagraphElement(offs).getStartOffset(); + end = getParagraphElement(endOffs).getEndOffset(); + } + else if (type == DocumentEvent.EventType.REMOVE) { - while (currentWriter != null || numWritersWaiting > 0) + Element par = getParagraphElement(ev.getOffset()); + start = par.getStartOffset(); + end = par.getEndOffset(); + } + else + assert false : "Unknown event type"; + + // Determine the bidi levels for the affected range. + Bidi[] bidis = getBidis(start, end); + + int removeFrom = 0; + int removeTo = 0; + + int offs = 0; + int lastRunStart = 0; + int lastRunEnd = 0; + int lastRunLevel = 0; + ArrayList newEls = new ArrayList(); + for (int i = 0; i < bidis.length; i++) + { + Bidi bidi = bidis[i]; + int numRuns = bidi.getRunCount(); + for (int r = 0; r < numRuns; r++) { - try + if (r == 0 && i == 0) + { + if (start > 0) + { + // Try to merge with the previous element if it has the + // same bidi level as the first run. + int prevElIndex = bidiRoot.getElementIndex(start - 1); + removeFrom = prevElIndex; + Element prevEl = bidiRoot.getElement(prevElIndex); + AttributeSet atts = prevEl.getAttributes(); + int prevElLevel = StyleConstants.getBidiLevel(atts); + if (prevElLevel == bidi.getRunLevel(r)) + { + // Merge previous element with current run. + lastRunStart = prevEl.getStartOffset() - start; + lastRunEnd = bidi.getRunLimit(r); + lastRunLevel = bidi.getRunLevel(r); + } + else if (prevEl.getEndOffset() > start) + { + // Split previous element and replace by 2 new elements. + lastRunStart = 0; + lastRunEnd = bidi.getRunLimit(r); + lastRunLevel = bidi.getRunLevel(r); + newEls.add(new BidiElement(bidiRoot, + prevEl.getStartOffset(), + start, prevElLevel)); + } + else + { + // Simply start new run at start location. + lastRunStart = 0; + lastRunEnd = bidi.getRunLimit(r); + lastRunLevel = bidi.getRunLevel(r); + removeFrom++; + } + } + else + { + // Simply start new run at start location. + lastRunStart = 0; + lastRunEnd = bidi.getRunLimit(r); + lastRunLevel = bidi.getRunLevel(r); + removeFrom = 0; + } + } + if (i == bidis.length - 1 && r == numRuns - 1) { - documentCV.wait(); + if (end <= getLength()) + { + // Try to merge last element with next element. + int nextIndex = bidiRoot.getElementIndex(end); + Element nextEl = bidiRoot.getElement(nextIndex); + AttributeSet atts = nextEl.getAttributes(); + int nextLevel = StyleConstants.getBidiLevel(atts); + int level = bidi.getRunLevel(r); + if (lastRunLevel == level && level == nextLevel) + { + // Merge runs together. + if (lastRunStart + start == nextEl.getStartOffset()) + removeTo = nextIndex - 1; + else + { + newEls.add(new BidiElement(bidiRoot, start + lastRunStart, + nextEl.getEndOffset(), level)); + removeTo = nextIndex; + } + } + else if (lastRunLevel == level) + { + // Merge current and last run. + int endOffs = offs + bidi.getRunLimit(r); + newEls.add(new BidiElement(bidiRoot, start + lastRunStart, + start + endOffs, level)); + if (start + endOffs == nextEl.getStartOffset()) + removeTo = nextIndex - 1; + else + { + newEls.add(new BidiElement(bidiRoot, start + endOffs, + nextEl.getEndOffset(), + nextLevel)); + removeTo = nextIndex; + } + } + else if (level == nextLevel) + { + // Merge current and next run. + newEls.add(new BidiElement(bidiRoot, start + lastRunStart, + start + lastRunEnd, + lastRunLevel)); + newEls.add(new BidiElement(bidiRoot, start + lastRunEnd, + nextEl.getEndOffset(), level)); + removeTo = nextIndex; + } + else + { + // Split next element. + int endOffs = offs + bidi.getRunLimit(r); + newEls.add(new BidiElement(bidiRoot, start + lastRunStart, + start + lastRunEnd, + lastRunLevel)); + newEls.add(new BidiElement(bidiRoot, start + lastRunEnd, + start + endOffs, level)); + newEls.add(new BidiElement(bidiRoot, start + endOffs, + nextEl.getEndOffset(), + nextLevel)); + removeTo = nextIndex; + } + } + else + { + removeTo = bidiRoot.getElementIndex(end); + int level = bidi.getRunLevel(r); + int runEnd = offs + bidi.getRunLimit(r); + + if (level == lastRunLevel) + { + // Merge with previous. + lastRunEnd = offs + runEnd; + newEls.add(new BidiElement(bidiRoot, + start + lastRunStart, + start + runEnd, level)); + } + else + { + // Create element for last run and current run. + newEls.add(new BidiElement(bidiRoot, start + lastRunStart, + start + lastRunEnd, + lastRunLevel)); + newEls.add(new BidiElement(bidiRoot, + start + lastRunEnd, + start + runEnd, + level)); + } + } } - catch (InterruptedException ie) + else { - throw new Error("interrupted trying to get a readLock"); + int level = bidi.getRunLevel(r); + int runEnd = bidi.getRunLimit(r); + + if (level == lastRunLevel) + { + // Merge with previous. + lastRunEnd = offs + runEnd; + } + else + { + // Create element for last run and update values for + // current run. + newEls.add(new BidiElement(bidiRoot, start + lastRunStart, + start + lastRunEnd, + lastRunLevel)); + lastRunStart = lastRunEnd; + lastRunEnd = offs + runEnd; + lastRunLevel = level; + } } } - numReaders++; + offs += bidi.getLength(); + } + + // Determine the bidi elements which are to be removed. + int numRemoved = 0; + if (bidiRoot.getElementCount() > 0) + numRemoved = removeTo - removeFrom + 1; + Element[] removed = new Element[numRemoved]; + for (int i = 0; i < numRemoved; i++) + removed[i] = bidiRoot.getElement(removeFrom + i); + + Element[] added = new Element[newEls.size()]; + added = (Element[]) newEls.toArray(added); + + // Update the event. + ElementEdit edit = new ElementEdit(bidiRoot, removeFrom, removed, added); + ev.addEdit(edit); + + // Update the structure. + bidiRoot.replace(removeFrom, numRemoved, added); + } + + /** + * Determines the Bidi objects for the paragraphs in the specified range. + * + * @param start the start of the range + * @param end the end of the range + * + * @return the Bidi analysers for the paragraphs in the range + */ + private Bidi[] getBidis(int start, int end) + { + // Determine the default run direction from the document property. + Boolean defaultDir = null; + Object o = getProperty(TextAttribute.RUN_DIRECTION); + if (o instanceof Boolean) + defaultDir = (Boolean) o; + + // Scan paragraphs and add their level arrays to the overall levels array. + ArrayList bidis = new ArrayList(); + Segment s = new Segment(); + for (int i = start; i < end;) + { + Element par = getParagraphElement(i); + int pStart = par.getStartOffset(); + int pEnd = par.getEndOffset(); + + // Determine the default run direction of the paragraph. + Boolean dir = defaultDir; + o = par.getAttributes().getAttribute(TextAttribute.RUN_DIRECTION); + if (o instanceof Boolean) + dir = (Boolean) o; + + // Bidi over the paragraph. + try + { + getText(pStart, pEnd - pStart, s); + } + catch (BadLocationException ex) + { + assert false : "Must not happen"; + } + int flag = Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT; + if (dir != null) + { + if (TextAttribute.RUN_DIRECTION_LTR.equals(dir)) + flag = Bidi.DIRECTION_LEFT_TO_RIGHT; + else + flag = Bidi.DIRECTION_RIGHT_TO_LEFT; + } + Bidi bidi = new Bidi(s.array, s.offset, null, 0, s.count, flag); + bidis.add(bidi); + i = pEnd; + } + Bidi[] ret = new Bidi[bidis.size()]; + ret = (Bidi[]) bidis.toArray(ret); + return ret; + } + + /** + * Blocks until a read lock can be obtained. Must block if there is + * currently a writer modifying the Document. + */ + public final synchronized void readLock() + { + try + { + while (currentWriter != null) + { + if (currentWriter == Thread.currentThread()) + return; + wait(); + } + numReaders++; + } + catch (InterruptedException ex) + { + throw new Error("Interrupted during grab read lock"); } } @@ -679,7 +1069,7 @@ public abstract class AbstractDocument implements Document, Serializable * Releases the read lock. If this was the only reader on this * Document, writing may begin now. */ - public final void readUnlock() + public final synchronized void readUnlock() { // Note we could have a problem here if readUnlock was called without a // prior call to readLock but the specs simply warn users to ensure that @@ -706,21 +1096,14 @@ public abstract class AbstractDocument implements Document, Serializable // FIXME: the reference implementation throws a // javax.swing.text.StateInvariantError here - if (numReaders == 0) + if (numReaders <= 0) throw new IllegalStateException("document lock failure"); - synchronized (documentCV) - { - // If currentWriter is not null, the application code probably had a - // writeLock and then tried to obtain a readLock, in which case - // numReaders wasn't incremented - if (currentWriter == null) - { - numReaders --; - if (numReaders == 0 && numWritersWaiting != 0) - documentCV.notify(); - } - } + // If currentWriter is not null, the application code probably had a + // writeLock and then tried to obtain a readLock, in which case + // numReaders wasn't incremented + numReaders--; + notify(); } /** @@ -744,12 +1127,21 @@ public abstract class AbstractDocument implements Document, Serializable */ public void remove(int offset, int length) throws BadLocationException { - if (documentFilter == null) - removeImpl(offset, length); - else - documentFilter.remove(getBypass(), offset, length); + writeLock(); + try + { + DocumentFilter f = getDocumentFilter(); + if (f == null) + removeImpl(offset, length); + else + f.remove(getBypass(), offset, length); + } + finally + { + writeUnlock(); + } } - + void removeImpl(int offset, int length) throws BadLocationException { // The RI silently ignores all requests that have a negative length. @@ -766,21 +1158,12 @@ public abstract class AbstractDocument implements Document, Serializable new DefaultDocumentEvent(offset, length, DocumentEvent.EventType.REMOVE); - try - { - writeLock(); - - // The order of the operations below is critical! - removeUpdate(event); - UndoableEdit temp = content.remove(offset, length); - - postRemoveUpdate(event); - fireRemoveUpdate(event); - } - finally - { - writeUnlock(); - } + // The order of the operations below is critical! + removeUpdate(event); + UndoableEdit temp = content.remove(offset, length); + + postRemoveUpdate(event); + fireRemoveUpdate(event); } } @@ -814,21 +1197,28 @@ public abstract class AbstractDocument implements Document, Serializable if (length == 0 && (text == null || text.length() == 0)) return; - - if (documentFilter == null) + + writeLock(); + try { - // It is important to call the methods which again do the checks - // of the arguments and the DocumentFilter because subclasses may - // have overridden these methods and provide crucial behavior - // which would be skipped if we call the non-checking variants. - // An example for this is PlainDocument where insertString can - // provide a filtering of newlines. - remove(offset, length); - insertString(offset, text, attributes); + if (documentFilter == null) + { + // It is important to call the methods which again do the checks + // of the arguments and the DocumentFilter because subclasses may + // have overridden these methods and provide crucial behavior + // which would be skipped if we call the non-checking variants. + // An example for this is PlainDocument where insertString can + // provide a filtering of newlines. + remove(offset, length); + insertString(offset, text, attributes); + } + else + documentFilter.replace(getBypass(), offset, length, text, attributes); + } + finally + { + writeUnlock(); } - else - documentFilter.replace(getBypass(), offset, length, text, attributes); - } void replaceImpl(int offset, int length, String text, @@ -948,7 +1338,8 @@ public abstract class AbstractDocument implements Document, Serializable */ public void setAsynchronousLoadPriority(int p) { - // TODO: Implement this properly. + Integer val = p >= 0 ? new Integer(p) : null; + putProperty(AsyncLoadPriority, val); } /** @@ -956,7 +1347,7 @@ public abstract class AbstractDocument implements Document, Serializable * * @param p the document properties to set */ - public void setDocumentProperties(Dictionary p) + public void setDocumentProperties(Dictionary p) { // FIXME: make me thread-safe properties = p; @@ -966,26 +1357,27 @@ public abstract class AbstractDocument implements Document, Serializable * Blocks until a write lock can be obtained. Must wait if there are * readers currently reading or another thread is currently writing. */ - protected final void writeLock() + protected synchronized final void writeLock() { - if (currentWriter != null && currentWriter.equals(Thread.currentThread())) - return; - synchronized (documentCV) + try { - numWritersWaiting++; - while (numReaders > 0) + while (numReaders > 0 || currentWriter != null) { - try - { - documentCV.wait(); - } - catch (InterruptedException ie) + if (Thread.currentThread() == currentWriter) { - throw new Error("interruped while trying to obtain write lock"); + if (notifyListeners) + throw new IllegalStateException("Mutation during notify"); + numWriters++; + return; } + wait(); } - numWritersWaiting --; currentWriter = Thread.currentThread(); + numWriters = 1; + } + catch (InterruptedException ex) + { + throw new Error("Interupted during grab write lock"); } } @@ -993,16 +1385,14 @@ public abstract class AbstractDocument implements Document, Serializable * Releases the write lock. This allows waiting readers or writers to * obtain the lock. */ - protected final void writeUnlock() + protected final synchronized void writeUnlock() { - synchronized (documentCV) - { - if (Thread.currentThread().equals(currentWriter)) - { - currentWriter = null; - documentCV.notifyAll(); - } - } + if (--numWriters <= 0) + { + numWriters = 0; + currentWriter = null; + notifyAll(); + } } /** @@ -1039,6 +1429,7 @@ public abstract class AbstractDocument implements Document, Serializable public void dump(PrintStream out) { ((AbstractElement) getDefaultRootElement()).dump(out, 0); + ((AbstractElement) getBidiRootElement()).dump(out, 0); } /** @@ -1130,7 +1521,7 @@ public abstract class AbstractDocument implements Document, Serializable * @return the attributes of old minus the attributes in * attributes */ - AttributeSet removeAttributes(AttributeSet old, Enumeration names); + AttributeSet removeAttributes(AttributeSet old, Enumeration names); } /** @@ -1255,7 +1646,7 @@ public abstract class AbstractDocument implements Document, Serializable AttributeContext ctx = getAttributeContext(); attributes = ctx.getEmptySet(); if (s != null) - attributes = ctx.addAttributes(attributes, s); + addAttributes(s); } /** @@ -1386,7 +1777,7 @@ public abstract class AbstractDocument implements Document, Serializable * * @param names the names of the attributes to be removed */ - public void removeAttributes(Enumeration names) + public void removeAttributes(Enumeration names) { attributes = getAttributeContext().removeAttributes(attributes, names); } @@ -1481,7 +1872,7 @@ public abstract class AbstractDocument implements Document, Serializable * * @return the names of the attributes of this element */ - public Enumeration getAttributeNames() + public Enumeration getAttributeNames() { return attributes.getAttributeNames(); } @@ -1567,7 +1958,7 @@ public abstract class AbstractDocument implements Document, Serializable */ public String getName() { - return (String) getAttribute(NameAttribute); + return (String) attributes.getAttribute(ElementNameAttribute); } /** @@ -1644,6 +2035,11 @@ public abstract class AbstractDocument implements Document, Serializable b.append('\n'); } } + if (getAttributeCount() > 0) + { + for (int i = 0; i < indent; ++i) + b.append(' '); + } b.append(">\n"); // Dump element content for leaf elements. @@ -1705,6 +2101,11 @@ public abstract class AbstractDocument implements Document, Serializable private int numChildren; /** + * The last found index in getElementIndex(). Used for faster searching. + */ + private int lastIndex; + + /** * Creates a new BranchElement with the specified * parent and attributes. * @@ -1717,6 +2118,7 @@ public abstract class AbstractDocument implements Document, Serializable super(parent, attributes); children = new Element[1]; numChildren = 0; + lastIndex = -1; } /** @@ -1726,7 +2128,7 @@ public abstract class AbstractDocument implements Document, Serializable */ public Enumeration children() { - if (children.length == 0) + if (numChildren == 0) return null; Vector tmp = new Vector(); @@ -1785,35 +2187,73 @@ public abstract class AbstractDocument implements Document, Serializable */ public int getElementIndex(int offset) { - // If offset is less than the start offset of our first child, - // return 0 - if (offset < getStartOffset()) - return 0; + // Implemented using an improved linear search. + // This makes use of the fact that searches are not random but often + // close to the previous search. So we try to start the binary + // search at the last found index. - // XXX: There is surely a better algorithm - // as beginning from first element each time. - for (int index = 0; index < numChildren - 1; ++index) + int i0 = 0; // The lower bounds. + int i1 = numChildren - 1; // The upper bounds. + int index = -1; // The found index. + + int p0 = getStartOffset(); + int p1; // Start and end offset local variables. + + if (numChildren == 0) + index = 0; + else if (offset >= getEndOffset()) + index = numChildren - 1; + else { - Element elem = children[index]; - - if ((elem.getStartOffset() <= offset) - && (offset < elem.getEndOffset())) - return index; - // If the next element's start offset is greater than offset - // then we have to return the closest Element, since no Elements - // will contain the offset - if (children[index + 1].getStartOffset() > offset) + // Try lastIndex. + if (lastIndex >= i0 && lastIndex <= i1) { - if ((offset - elem.getEndOffset()) > (children[index + 1].getStartOffset() - offset)) - return index + 1; + Element last = getElement(lastIndex); + p0 = last.getStartOffset(); + p1 = last.getEndOffset(); + if (offset >= p0 && offset < p1) + index = lastIndex; else - return index; + { + // Narrow the search bounds using the lastIndex, even + // if it hasn't been a hit. + if (offset < p0) + i1 = lastIndex; + else + i0 = lastIndex; + } + } + // The actual search. + int i = 0; + while (i0 <= i1 && index == -1) + { + i = i0 + (i1 - i0) / 2; + Element el = getElement(i); + p0 = el.getStartOffset(); + p1 = el.getEndOffset(); + if (offset >= p0 && offset < p1) + { + // Found it! + index = i; + } + else if (offset < p0) + i1 = i - 1; + else + i0 = i + 1; } - } - // If offset is greater than the index of the last element, return - // the index of the last element. - return getElementCount() - 1; + if (index == -1) + { + // Didn't find it. Return the boundary index. + if (offset < p0) + index = i; + else + index = i + 1; + } + + lastIndex = index; + } + return index; } /** @@ -1957,6 +2397,11 @@ public abstract class AbstractDocument implements Document, Serializable /** The serialization UID (compatible with JDK1.5). */ private static final long serialVersionUID = 5230037221564563284L; + /** + * The threshold that indicates when we switch to using a Hashtable. + */ + private static final int THRESHOLD = 10; + /** The starting offset of the change. */ private int offset; @@ -1967,15 +2412,18 @@ public abstract class AbstractDocument implements Document, Serializable private DocumentEvent.EventType type; /** - * Maps Element to their change records. + * Maps Element to their change records. This is only + * used when the changes array gets too big. We can use an + * (unsync'ed) HashMap here, since changes to this are (should) always + * be performed inside a write lock. */ - Hashtable changes; + private HashMap changes; /** * Indicates if this event has been modified or not. This is used to * determine if this event is thrown. */ - boolean modified; + private boolean modified; /** * Creates a new DefaultDocumentEvent. @@ -1990,7 +2438,6 @@ public abstract class AbstractDocument implements Document, Serializable this.offset = offset; this.length = length; this.type = type; - changes = new Hashtable(); modified = false; } @@ -2004,9 +2451,27 @@ public abstract class AbstractDocument implements Document, Serializable public boolean addEdit(UndoableEdit edit) { // XXX - Fully qualify ElementChange to work around gcj bug #2499. - if (edit instanceof DocumentEvent.ElementChange) + + // Start using Hashtable when we pass a certain threshold. This + // gives a good memory/performance compromise. + if (changes == null && edits.size() > THRESHOLD) + { + changes = new HashMap(); + int count = edits.size(); + for (int i = 0; i < count; i++) + { + Object o = edits.elementAt(i); + if (o instanceof DocumentEvent.ElementChange) + { + DocumentEvent.ElementChange ec = + (DocumentEvent.ElementChange) o; + changes.put(ec.getElement(), ec); + } + } + } + + if (changes != null && edit instanceof DocumentEvent.ElementChange) { - modified = true; DocumentEvent.ElementChange elEdit = (DocumentEvent.ElementChange) edit; changes.put(elEdit.getElement(), elEdit); @@ -2065,7 +2530,27 @@ public abstract class AbstractDocument implements Document, Serializable public DocumentEvent.ElementChange getChange(Element elem) { // XXX - Fully qualify ElementChange to work around gcj bug #2499. - return (DocumentEvent.ElementChange) changes.get(elem); + DocumentEvent.ElementChange change = null; + if (changes != null) + { + change = (DocumentEvent.ElementChange) changes.get(elem); + } + else + { + int count = edits.size(); + for (int i = 0; i < count && change == null; i++) + { + Object o = edits.get(i); + if (o instanceof DocumentEvent.ElementChange) + { + DocumentEvent.ElementChange ec = + (DocumentEvent.ElementChange) o; + if (elem.equals(ec.getElement())) + change = ec; + } + } + } + return change; } /** @@ -2333,7 +2818,63 @@ public abstract class AbstractDocument implements Document, Serializable + getStartOffset() + "," + getEndOffset() + "\n"); } } - + + /** + * The root element for bidirectional text. + */ + private class BidiRootElement + extends BranchElement + { + /** + * Creates a new bidi root element. + */ + BidiRootElement() + { + super(null, null); + } + + /** + * Returns the name of the element. + * + * @return the name of the element + */ + public String getName() + { + return BidiRootName; + } + } + + /** + * A leaf element for the bidi structure. + */ + private class BidiElement + extends LeafElement + { + /** + * Creates a new BidiElement. + * + * @param parent the parent element + * @param start the start offset + * @param end the end offset + * @param level the bidi level + */ + BidiElement(Element parent, int start, int end, int level) + { + super(parent, new SimpleAttributeSet(), start, end); + addAttribute(StyleConstants.BidiLevel, new Integer(level)); + } + + /** + * Returns the name of the element. + * + * @return the name of the element + */ + public String getName() + { + return BidiElementName; + } + } + /** A class whose methods delegate to the insert, remove and replace methods * of this document which do not check for an installed DocumentFilter. */ diff --git a/libjava/classpath/javax/swing/text/AttributeSet.java b/libjava/classpath/javax/swing/text/AttributeSet.java index 01d148c067b..2d39881c28b 100644 --- a/libjava/classpath/javax/swing/text/AttributeSet.java +++ b/libjava/classpath/javax/swing/text/AttributeSet.java @@ -158,7 +158,7 @@ public interface AttributeSet * @return the names of the attributes that are stored in this * AttributeSet */ - Enumeration getAttributeNames(); + Enumeration getAttributeNames(); /** * Returns the resolving parent of this AttributeSet. diff --git a/libjava/classpath/javax/swing/text/BoxView.java b/libjava/classpath/javax/swing/text/BoxView.java index 27e3c0f9a1b..0754d9b9b8b 100644 --- a/libjava/classpath/javax/swing/text/BoxView.java +++ b/libjava/classpath/javax/swing/text/BoxView.java @@ -38,6 +38,7 @@ exception statement from your version. */ package javax.swing.text; +import java.awt.Container; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; @@ -92,11 +93,6 @@ public class BoxView private int[] span = new int[2]; /** - * The SizeRequirements of the child views along the X_AXIS and Y_AXIS. - */ - private SizeRequirements[][] childReqs = new SizeRequirements[2][]; - - /** * Creates a new BoxView for the given * Element and axis. Valid values for the axis are * {@link View#X_AXIS} and {@link View#Y_AXIS}. @@ -110,6 +106,8 @@ public class BoxView myAxis = axis; layoutValid[0] = false; layoutValid[1] = false; + requirementsValid[X_AXIS] = false; + requirementsValid[Y_AXIS] = false; span[0] = 0; span[1] = 0; requirements[0] = new SizeRequirements(); @@ -146,7 +144,10 @@ public class BoxView */ public void setAxis(int axis) { + boolean changed = axis != myAxis; myAxis = axis; + if (changed) + preferenceChanged(null, true, true); } /** @@ -227,56 +228,49 @@ public class BoxView */ public void replace(int offset, int length, View[] views) { - int numViews = 0; - if (views != null) - numViews = views.length; + // Actually perform the replace. + super.replace(offset, length, views); // Resize and copy data for cache arrays. - // The spansX cache. - int oldSize = getViewCount(); - - int[] newSpansX = new int[oldSize - length + numViews]; - System.arraycopy(spans[X_AXIS], 0, newSpansX, 0, offset); - System.arraycopy(spans[X_AXIS], offset + length, newSpansX, - offset + numViews, - oldSize - (offset + length)); - spans[X_AXIS] = newSpansX; - - // The spansY cache. - int[] newSpansY = new int[oldSize - length + numViews]; - System.arraycopy(spans[Y_AXIS], 0, newSpansY, 0, offset); - System.arraycopy(spans[Y_AXIS], offset + length, newSpansY, - offset + numViews, - oldSize - (offset + length)); - spans[Y_AXIS] = newSpansY; - - // The offsetsX cache. - int[] newOffsetsX = new int[oldSize - length + numViews]; - System.arraycopy(offsets[X_AXIS], 0, newOffsetsX, 0, offset); - System.arraycopy(offsets[X_AXIS], offset + length, newOffsetsX, - offset + numViews, - oldSize - (offset + length)); - offsets[X_AXIS] = newOffsetsX; - - // The offsetsY cache. - int[] newOffsetsY = new int[oldSize - length + numViews]; - System.arraycopy(offsets[Y_AXIS], 0, newOffsetsY, 0, offset); - System.arraycopy(offsets[Y_AXIS], offset + length, newOffsetsY, - offset + numViews, - oldSize - (offset + length)); - offsets[Y_AXIS] = newOffsetsY; + int newItems = views != null ? views.length : 0; + int minor = 1 - myAxis; + offsets[myAxis] = replaceLayoutArray(offsets[myAxis], offset, newItems); + spans[myAxis] = replaceLayoutArray(spans[myAxis], offset, newItems); + layoutValid[myAxis] = false; + requirementsValid[myAxis] = false; + offsets[minor] = replaceLayoutArray(offsets[minor], offset, newItems); + spans[minor] = replaceLayoutArray(spans[minor], offset, newItems); + layoutValid[minor] = false; + requirementsValid[minor] = false; + } - // Actually perform the replace. - super.replace(offset, length, views); + /** + * Helper method. This updates the layout cache arrays in response + * to a call to {@link #replace(int, int, View[])}. + * + * @param oldArray the old array + * + * @return the replaced array + */ + private int[] replaceLayoutArray(int[] oldArray, int offset, int newItems) - // Invalidate layout information. - layoutValid[X_AXIS] = false; - requirementsValid[X_AXIS] = false; - layoutValid[Y_AXIS] = false; - requirementsValid[Y_AXIS] = false; + { + int num = getViewCount(); + int[] newArray = new int[num]; + System.arraycopy(oldArray, 0, newArray, 0, offset); + System.arraycopy(oldArray, offset, newArray, offset + newItems, + num - newItems - offset); + return newArray; } /** + * A Rectangle instance to be reused in the paint() method below. + */ + private final Rectangle tmpRect = new Rectangle(); + + private Rectangle clipRect = new Rectangle(); + + /** * Renders the Element that is associated with this * View. * @@ -285,26 +279,20 @@ public class BoxView */ public void paint(Graphics g, Shape a) { - Rectangle alloc; - if (a instanceof Rectangle) - alloc = (Rectangle) a; - else - alloc = a.getBounds(); + // Try to avoid allocation if possible (almost all cases). + Rectangle alloc = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); - int x = alloc.x + getLeftInset(); - int y = alloc.y + getTopInset(); + // This returns a cached instance. + alloc = getInsideAllocation(alloc); - Rectangle clip = g.getClipBounds(); - Rectangle tmp = new Rectangle(); int count = getViewCount(); - for (int i = 0; i < count; ++i) + for (int i = 0; i < count; i++) { - tmp.x = x + getOffset(X_AXIS, i); - tmp.y = y + getOffset(Y_AXIS, i); - tmp.width = getSpan(X_AXIS, i); - tmp.height = getSpan(Y_AXIS, i); - if (tmp.intersects(clip)) - paintChild(g, tmp, i); + View child = getView(i); + tmpRect.setBounds(alloc); + childAllocation(i, tmpRect); + if (g.hitClip(tmpRect.x, tmpRect.y, tmpRect.width, tmpRect.height)) + paintChild(g, tmpRect, i); } } @@ -373,9 +361,9 @@ public class BoxView } /** - * This method is obsolete and no longer in use. It is replaced by - * {@link #calculateMajorAxisRequirements(int, SizeRequirements)} and - * {@link #calculateMinorAxisRequirements(int, SizeRequirements)}. + * Calculates size requirements for a baseline layout. This is not + * used by the BoxView itself, but by subclasses that wish to perform + * a baseline layout, like the FlowView's rows. * * @param axis the axis that is examined * @param sr the SizeRequirements object to hold the result, @@ -387,50 +375,94 @@ public class BoxView protected SizeRequirements baselineRequirements(int axis, SizeRequirements sr) { - updateChildRequirements(axis); + // Create new instance if sr == null. + if (sr == null) + sr = new SizeRequirements(); + sr.alignment = 0.5F; + + // Calculate overall ascent and descent. + int totalAscentMin = 0; + int totalAscentPref = 0; + int totalAscentMax = 0; + int totalDescentMin = 0; + int totalDescentPref = 0; + int totalDescentMax = 0; + + int count = getViewCount(); + for (int i = 0; i < count; i++) + { + View v = getView(i); + float align = v.getAlignment(axis); + int span = (int) v.getPreferredSpan(axis); + int ascent = (int) (align * span); + int descent = span - ascent; + + totalAscentPref = Math.max(ascent, totalAscentPref); + totalDescentPref = Math.max(descent, totalDescentPref); + if (v.getResizeWeight(axis) > 0) + { + // If the view is resizable, then use the min and max size + // of the view. + span = (int) v.getMinimumSpan(axis); + ascent = (int) (align * span); + descent = span - ascent; + totalAscentMin = Math.max(ascent, totalAscentMin); + totalDescentMin = Math.max(descent, totalDescentMin); + + span = (int) v.getMaximumSpan(axis); + ascent = (int) (align * span); + descent = span - ascent; + totalAscentMax = Math.max(ascent, totalAscentMax); + totalDescentMax = Math.max(descent, totalDescentMax); + } + else + { + // If the view is not resizable, use the preferred span. + totalAscentMin = Math.max(ascent, totalAscentMin); + totalDescentMin = Math.max(descent, totalDescentMin); + totalAscentMax = Math.max(ascent, totalAscentMax); + totalDescentMax = Math.max(descent, totalDescentMax); + } + } - SizeRequirements res = sr; - if (res == null) - res = new SizeRequirements(); + // Preferred overall span is the sum of the preferred ascent and descent. + // With overflow check. + sr.preferred = (int) Math.min((long) totalAscentPref + + (long) totalDescentPref, + Integer.MAX_VALUE); + + // Align along the baseline. + if (sr.preferred > 0) + sr.alignment = (float) totalAscentPref / sr.preferred; - float minLeft = 0; - float minRight = 0; - float prefLeft = 0; - float prefRight = 0; - float maxLeft = 0; - float maxRight = 0; - for (int i = 0; i < childReqs[axis].length; i++) + if (sr.alignment == 0) { - float myMinLeft = childReqs[axis][i].minimum * childReqs[axis][i].alignment; - float myMinRight = childReqs[axis][i].minimum - myMinLeft; - minLeft = Math.max(myMinLeft, minLeft); - minRight = Math.max(myMinRight, minRight); - float myPrefLeft = childReqs[axis][i].preferred * childReqs[axis][i].alignment; - float myPrefRight = childReqs[axis][i].preferred - myPrefLeft; - prefLeft = Math.max(myPrefLeft, prefLeft); - prefRight = Math.max(myPrefRight, prefRight); - float myMaxLeft = childReqs[axis][i].maximum * childReqs[axis][i].alignment; - float myMaxRight = childReqs[axis][i].maximum - myMaxLeft; - maxLeft = Math.max(myMaxLeft, maxLeft); - maxRight = Math.max(myMaxRight, maxRight); + // Nothing above the baseline, use the descent. + sr.minimum = totalDescentMin; + sr.maximum = totalDescentMax; } - int minSize = (int) (minLeft + minRight); - int prefSize = (int) (prefLeft + prefRight); - int maxSize = (int) (maxLeft + maxRight); - float align = prefLeft / (prefRight + prefLeft); - if (Float.isNaN(align)) - align = 0; - - res.alignment = align; - res.maximum = maxSize; - res.preferred = prefSize; - res.minimum = minSize; - return res; + else if (sr.alignment == 1.0F) + { + // Nothing below the baseline, use the descent. + sr.minimum = totalAscentMin; + sr.maximum = totalAscentMax; + } + else + { + sr.minimum = Math.max((int) (totalAscentMin / sr.alignment), + (int) (totalDescentMin / (1.0F - sr.alignment))); + sr.maximum = Math.min((int) (totalAscentMax / sr.alignment), + (int) (totalDescentMax / (1.0F - sr.alignment))); + } + return sr; } /** - * Calculates the layout of the children of this BoxView along - * the specified axis. + * Calculates the baseline layout of the children of this + * BoxView along the specified axis. + * + * This is not used by the BoxView itself, but by subclasses that wish to + * perform a baseline layout, like the FlowView's rows. * * @param span the target span * @param axis the axis that is examined @@ -440,13 +472,36 @@ public class BoxView protected void baselineLayout(int span, int axis, int[] offsets, int[] spans) { - updateChildRequirements(axis); - updateRequirements(axis); + int totalAscent = (int) (span * getAlignment(axis)); + int totalDescent = span - totalAscent; - // Calculate the spans and offsets using the SizeRequirements uility - // methods. - SizeRequirements.calculateAlignedPositions(span, requirements[axis], - childReqs[axis], offsets, spans); + int count = getViewCount(); + for (int i = 0; i < count; i++) + { + View v = getView(i); + float align = v.getAlignment(axis); + int viewSpan; + if (v.getResizeWeight(axis) > 0) + { + // If possible, then resize for best fit. + int min = (int) v.getMinimumSpan(axis); + int max = (int) v.getMaximumSpan(axis); + if (align == 0.0F) + viewSpan = Math.max(Math.min(max, totalDescent), min); + else if (align == 1.0F) + viewSpan = Math.max(Math.min(max, totalAscent), min); + else + { + int fit = (int) Math.min(totalAscent / align, + totalDescent / (1.0F - align)); + viewSpan = Math.max(Math.min(max, fit), min); + } + } + else + viewSpan = (int) v.getPreferredSpan(axis); + offsets[i] = totalAscent - (int) (viewSpan * align); + spans[i] = viewSpan; + } } /** @@ -476,8 +531,8 @@ public class BoxView { View child = getView(i); min += child.getMinimumSpan(axis); - pref = child.getPreferredSpan(axis); - max = child.getMaximumSpan(axis); + pref += child.getPreferredSpan(axis); + max += child.getMaximumSpan(axis); } res.minimum = (int) min; @@ -509,7 +564,7 @@ public class BoxView res.minimum = 0; res.preferred = 0; - res.maximum = 0; + res.maximum = Integer.MAX_VALUE; res.alignment = 0.5F; int n = getViewCount(); for (int i = 0; i < n; i++) @@ -568,9 +623,9 @@ public class BoxView boolean result = false; if (myAxis == X_AXIS) - result = x > r.x; + result = x > r.x + r.width; else - result = y > r.y; + result = y > r.y + r.height; return result; } @@ -589,24 +644,54 @@ public class BoxView { View result = null; int count = getViewCount(); - Rectangle copy = new Rectangle(r); - - for (int i = 0; i < count; ++i) + if (myAxis == X_AXIS) { - copy.setBounds(r); - // The next call modifies copy. - childAllocation(i, copy); - if (copy.contains(x, y)) + // Border case. Requested point is left from the box. + if (x < r.x + offsets[X_AXIS][0]) { - // Modify r on success. - r.setBounds(copy); - result = getView(i); - break; + childAllocation(0, r); + result = getView(0); + } + else + { + // Search views inside box. + for (int i = 0; i < count && result == null; i++) + { + if (x < r.x + offsets[X_AXIS][i]) + { + childAllocation(i - 1, r); + result = getView(i - 1); + } + } } } - - if (result == null && count > 0) - return getView(count - 1); + else // Same algorithm for Y_AXIS. + { + // Border case. Requested point is above the box. + if (y < r.y + offsets[Y_AXIS][0]) + { + childAllocation(0, r); + result = getView(0); + } + else + { + // Search views inside box. + for (int i = 0; i < count && result == null; i++) + { + if (y < r.y + offsets[Y_AXIS][i]) + { + childAllocation(i - 1, r); + result = getView(i - 1); + } + } + } + } + // Not found, other border case: point is right from or below the box. + if (result == null) + { + childAllocation(count - 1, r); + result = getView(count - 1); + } return result; } @@ -623,9 +708,6 @@ public class BoxView */ protected void childAllocation(int index, Rectangle a) { - if (! isAllocationValid()) - layout(a.width, a.height); - a.x += offsets[X_AXIS][index]; a.y += offsets[Y_AXIS][index]; a.width = spans[X_AXIS][index]; @@ -643,49 +725,32 @@ public class BoxView */ protected void layout(int width, int height) { - int[] newSpan = new int[]{ width, height }; - int count = getViewCount(); - - // Update minor axis as appropriate. We need to first update the minor - // axis layout because that might affect the children's preferences along - // the major axis. - int minorAxis = myAxis == X_AXIS ? Y_AXIS : X_AXIS; - if ((! isLayoutValid(minorAxis)) || newSpan[minorAxis] != span[minorAxis]) - { - layoutValid[minorAxis] = false; - span[minorAxis] = newSpan[minorAxis]; - layoutMinorAxis(span[minorAxis], minorAxis, offsets[minorAxis], - spans[minorAxis]); - - // Update the child view's sizes. - for (int i = 0; i < count; ++i) - { - getView(i).setSize(spans[X_AXIS][i], spans[Y_AXIS][i]); - } - layoutValid[minorAxis] = true; - } - + layoutAxis(X_AXIS, width); + layoutAxis(Y_AXIS, height); + } - // Update major axis as appropriate. - if ((! isLayoutValid(myAxis)) || newSpan[myAxis] != span[myAxis]) + private void layoutAxis(int axis, int s) + { + if (span[axis] != s) + layoutValid[axis] = false; + if (! layoutValid[axis]) { - layoutValid[myAxis] = false; - span[myAxis] = newSpan[myAxis]; - layoutMajorAxis(span[myAxis], myAxis, offsets[myAxis], - spans[myAxis]); + span[axis] = s; + updateRequirements(axis); + if (axis == myAxis) + layoutMajorAxis(span[axis], axis, offsets[axis], spans[axis]); + else + layoutMinorAxis(span[axis], axis, offsets[axis], spans[axis]); + layoutValid[axis] = true; - // Update the child view's sizes. - for (int i = 0; i < count; ++i) + // Push out child layout. + int viewCount = getViewCount(); + for (int i = 0; i < viewCount; i++) { - getView(i).setSize(spans[X_AXIS][i], spans[Y_AXIS][i]); + View v = getView(i); + v.setSize(spans[X_AXIS][i], spans[Y_AXIS][i]); } - layoutValid[myAxis] = true; } - - if (layoutValid[myAxis] == false) - System.err.println("WARNING: Major axis layout must be valid after layout"); - if (layoutValid[minorAxis] == false) - System.err.println("Minor axis layout must be valid after layout"); } /** @@ -708,7 +773,7 @@ public class BoxView { View child = getView(i); spans[i] = (int) child.getPreferredSpan(axis); - sumPref = spans[i]; + sumPref += spans[i]; } // Try to adjust the spans so that we fill the targetSpan. @@ -776,7 +841,7 @@ public class BoxView View child = getView(i); int max = (int) child.getMaximumSpan(axis); if (max < targetSpan) - {System.err.println("align: " + child); + { // Align child when it can't be made as wide as the target span. float align = child.getAlignment(axis); offsets[i] = (int) ((targetSpan - max) * align); @@ -811,7 +876,9 @@ public class BoxView */ public int getWidth() { - return span[X_AXIS]; + // The RI returns the following here, however, I'd think that is a bug. + // return span[X_AXIS] + getLeftInset() - getRightInset(); + return span[X_AXIS] + getLeftInset() + getRightInset(); } /** @@ -821,7 +888,9 @@ public class BoxView */ public int getHeight() { - return span[Y_AXIS]; + // The RI returns the following here, however, I'd think that is a bug. + // return span[Y_AXIS] + getTopInset() - getBottomInset(); + return span[Y_AXIS] + getTopInset() + getBottomInset(); } /** @@ -833,7 +902,8 @@ public class BoxView */ public void setSize(float width, float height) { - layout((int) width, (int) height); + layout((int) (width - getLeftInset() - getRightInset()), + (int) (height - getTopInset() - getBottomInset())); } /** @@ -944,9 +1014,11 @@ public class BoxView { if (axis != X_AXIS && axis != Y_AXIS) throw new IllegalArgumentException("Illegal axis argument"); - int weight = 1; - if (axis == myAxis) - weight = 0; + updateRequirements(axis); + int weight = 0; + if ((requirements[axis].preferred != requirements[axis].minimum) + || (requirements[axis].preferred != requirements[axis].maximum)) + weight = 1; return weight; } @@ -973,13 +1045,39 @@ public class BoxView protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory vf) { - // FIXME: What to do here? + boolean wasValid = isLayoutValid(myAxis); super.forwardUpdate(ec, e, a, vf); + // Trigger repaint when one of the children changed the major axis. + if (wasValid && ! isLayoutValid(myAxis)) + { + Container c = getContainer(); + if (a != null && c != null) + { + int pos = e.getOffset(); + int index = getViewIndexAtPosition(pos); + Rectangle r = getInsideAllocation(a); + if (myAxis == X_AXIS) + { + r.x += offsets[myAxis][index]; + r.width -= offsets[myAxis][index]; + } + else + { + r.y += offsets[myAxis][index]; + r.height -= offsets[myAxis][index]; + } + c.repaint(r.x, r.y, r.width, r.height); + } + } } public int viewToModel(float x, float y, Shape a, Position.Bias[] bias) { - // FIXME: What to do here? + if (! isAllocationValid()) + { + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + setSize(r.width, r.height); + } return super.viewToModel(x, y, a, bias); } @@ -990,32 +1088,6 @@ public class BoxView } /** - * Updates the child requirements along the specified axis. The requirements - * are only updated if the layout for the specified axis is marked as - * invalid. - * - * @param axis the axis to be updated - */ - private void updateChildRequirements(int axis) - { - if (! isLayoutValid(axis)) - { - int numChildren = getViewCount(); - if (childReqs[axis] == null || childReqs[axis].length != numChildren) - childReqs[axis] = new SizeRequirements[numChildren]; - for (int i = 0; i < numChildren; ++i) - { - View child = getView(i); - childReqs[axis][i] = - new SizeRequirements((int) child.getMinimumSpan(axis), - (int) child.getPreferredSpan(axis), - (int) child.getMaximumSpan(axis), - child.getAlignment(axis)); - } - } - } - - /** * Updates the view's cached requirements along the specified axis if * necessary. The requirements are only updated if the layout for the * specified axis is marked as invalid. @@ -1024,6 +1096,8 @@ public class BoxView */ private void updateRequirements(int axis) { + if (axis != Y_AXIS && axis != X_AXIS) + throw new IllegalArgumentException("Illegal axis: " + axis); if (! requirementsValid[axis]) { if (axis == myAxis) diff --git a/libjava/classpath/javax/swing/text/ComponentView.java b/libjava/classpath/javax/swing/text/ComponentView.java index a7d237ab73a..8de4de60fa3 100644 --- a/libjava/classpath/javax/swing/text/ComponentView.java +++ b/libjava/classpath/javax/swing/text/ComponentView.java @@ -39,11 +39,11 @@ package javax.swing.text; import java.awt.Component; import java.awt.Container; +import java.awt.Dimension; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; -import javax.swing.SwingConstants; import javax.swing.SwingUtilities; /** @@ -62,11 +62,161 @@ public class ComponentView extends View { /** + * A special container that sits between the component and the hosting + * container. This is used to propagate invalidate requests and cache + * the component's layout sizes. + */ + private class Interceptor + extends Container + { + Dimension min; + Dimension pref; + Dimension max; + float alignX; + float alignY; + + /** + * Creates a new instance that hosts the specified component. + */ + Interceptor(Component c) + { + setLayout(null); + add(c); + cacheComponentSizes(); + } + + /** + * Intercepts the normal invalidate call and propagates the invalidate + * request up using the View's preferenceChanged(). + */ + public void invalidate() + { + super.invalidate(); + if (getParent() != null) + preferenceChanged(null, true, true); + } + + /** + * This is overridden to simply cache the layout sizes. + */ + public void doLayout() + { + cacheComponentSizes(); + } + + /** + * Overridden to also reshape the component itself. + */ + public void reshape(int x, int y, int w, int h) + { + super.reshape(x, y, w, h); + if (getComponentCount() > 0) + getComponent(0).setSize(w, h); + cacheComponentSizes(); + } + + /** + * Overridden to also show the component. + */ + public void show() + { + super.show(); + if (getComponentCount() > 0) + getComponent(0).setVisible(true); + } + + /** + * Overridden to also hide the component. + */ + public void hide() + { + super.hide(); + if (getComponentCount() > 0) + getComponent(0).setVisible(false); + } + + /** + * Overridden to return the cached value. + */ + public Dimension getMinimumSize() + { + maybeValidate(); + return min; + } + + /** + * Overridden to return the cached value. + */ + public Dimension getPreferredSize() + { + maybeValidate(); + return pref; + } + + /** + * Overridden to return the cached value. + */ + public Dimension getMaximumSize() + { + maybeValidate(); + return max; + } + + /** + * Overridden to return the cached value. + */ + public float getAlignmentX() + { + maybeValidate(); + return alignX; + } + + /** + * Overridden to return the cached value. + */ + public float getAlignmentY() + { + maybeValidate(); + return alignY; + } + + /** + * Validates the container only when necessary. + */ + private void maybeValidate() + { + if (! isValid()) + validate(); + } + + /** + * Fetches the component layout sizes into the cache. + */ + private void cacheComponentSizes() + { + if (getComponentCount() > 0) + { + Component c = getComponent(0); + min = c.getMinimumSize(); + pref = c.getPreferredSize(); + max = c.getMaximumSize(); + alignX = c.getAlignmentX(); + alignY = c.getAlignmentY(); + } + } + } + + /** * The component that is displayed by this view. */ private Component comp; /** + * The intercepting container. + */ + private Interceptor interceptor; + + /** * Creates a new instance of ComponentView for the specified * Element. * @@ -99,13 +249,20 @@ public class ComponentView extends View */ public float getAlignment(int axis) { - float align; - if (axis == X_AXIS) - align = getComponent().getAlignmentX(); - else if (axis == Y_AXIS) - align = getComponent().getAlignmentY(); + float align = 0.0F; + // I'd rather throw an IllegalArgumentException for illegal axis, + // but the Harmony testsuite indicates fallback to super behaviour. + if (interceptor != null && (axis == X_AXIS || axis == Y_AXIS)) + { + if (axis == X_AXIS) + align = interceptor.getAlignmentX(); + else if (axis == Y_AXIS) + align = interceptor.getAlignmentY(); + else + assert false : "Must not reach here"; + } else - throw new IllegalArgumentException(); + align = super.getAlignment(axis); return align; } @@ -118,8 +275,6 @@ public class ComponentView extends View */ public final Component getComponent() { - if (comp == null) - comp = createComponent(); return comp; } @@ -135,49 +290,70 @@ public class ComponentView extends View */ public float getMaximumSpan(int axis) { - float span; - if (axis == X_AXIS) - span = getComponent().getMaximumSize().width; - else if (axis == Y_AXIS) - span = getComponent().getMaximumSize().height; - else - throw new IllegalArgumentException(); + if (axis != X_AXIS && axis != Y_AXIS) + throw new IllegalArgumentException("Illegal axis"); + float span = 0; + if (interceptor != null) + { + if (axis == X_AXIS) + span = interceptor.getMaximumSize().width; + else if (axis == Y_AXIS) + span = interceptor.getMaximumSize().height; + else + assert false : "Must not reach here"; + } return span; } public float getMinimumSpan(int axis) { - float span; - if (axis == X_AXIS) - span = getComponent().getMinimumSize().width; - else if (axis == Y_AXIS) - span = getComponent().getMinimumSize().height; - else - throw new IllegalArgumentException(); + if (axis != X_AXIS && axis != Y_AXIS) + throw new IllegalArgumentException("Illegal axis"); + float span = 0; + if (interceptor != null) + { + if (axis == X_AXIS) + span = interceptor.getMinimumSize().width; + else if (axis == Y_AXIS) + span = interceptor.getMinimumSize().height; + else + assert false : "Must not reach here"; + } return span; } public float getPreferredSpan(int axis) { - float span; - if (axis == X_AXIS) - span = getComponent().getPreferredSize().width; - else if (axis == Y_AXIS) - span = getComponent().getPreferredSize().height; - else - throw new IllegalArgumentException(); + if (axis != X_AXIS && axis != Y_AXIS) + throw new IllegalArgumentException("Illegal axis"); + float span = 0; + if (interceptor != null) + { + if (axis == X_AXIS) + span = interceptor.getPreferredSize().width; + else if (axis == Y_AXIS) + span = interceptor.getPreferredSize().height; + else + assert false : "Must not reach here"; + } return span; } public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException { - Element el = getElement(); - if (pos < el.getStartOffset() || pos >= el.getEndOffset()) - throw new BadLocationException("Illegal offset for this view", pos); - Rectangle r = a.getBounds(); - Component c = getComponent(); - return new Rectangle(r.x, r.y, c.getWidth(), c.getHeight()); + int p0 = getStartOffset(); + int p1 = getEndOffset(); + if (pos >= p0 && pos <= p1) + { + Rectangle viewRect = a.getBounds(); + if (pos == p1) + viewRect.x += viewRect.width; + viewRect.width = 0; + return viewRect; + } + else + throw new BadLocationException("Illegal position", pos); } /** @@ -191,8 +367,11 @@ public class ComponentView extends View */ public void paint(Graphics g, Shape a) { - Rectangle r = a.getBounds(); - getComponent().setBounds(r.x, r.y, r.width, r.height); + if (interceptor != null) + { + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + interceptor.setBounds(r.x, r.y, r.width, r.height); + } } /** @@ -209,15 +388,33 @@ public class ComponentView extends View */ public void setParent(final View p) { + super.setParent(p); if (SwingUtilities.isEventDispatchThread()) - setParentImpl(p); + setParentImpl(); else SwingUtilities.invokeLater (new Runnable() { public void run() { - setParentImpl(p); + Document doc = getDocument(); + try + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + setParentImpl(); + Container host = getContainer(); + if (host != null) + { + preferenceChanged(null, true, true); + host.repaint(); + } + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } } }); } @@ -225,23 +422,41 @@ public class ComponentView extends View /** * The implementation of {@link #setParent}. This is package private to * avoid a synthetic accessor method. - * - * @param p the parent view to set */ - private void setParentImpl(View p) + void setParentImpl() { - super.setParent(p); + View p = getParent(); if (p != null) { - Component c = getComponent(); - p.getContainer().add(c); + Container c = getContainer(); + if (c != null) + { + if (interceptor == null) + { + // Create component and put it inside the interceptor. + Component created = createComponent(); + if (created != null) + { + comp = created; + interceptor = new Interceptor(comp); + } + } + if (interceptor != null) + { + // Add the interceptor to the hosting container. + if (interceptor.getParent() == null) + c.add(interceptor, this); + } + } } else { - Component c = getComponent(); - Container parent = c.getParent(); - parent.remove(c); - comp = null; + if (interceptor != null) + { + Container parent = interceptor.getParent(); + if (parent != null) + parent.remove(interceptor); + } } } @@ -259,10 +474,21 @@ public class ComponentView extends View */ public int viewToModel(float x, float y, Shape a, Position.Bias[] b) { - // The element should only have one character position and it is clear - // that this position is the position that best matches the given screen - // coordinates, simply because this view has only this one position. - Element el = getElement(); - return el.getStartOffset(); + int pos; + // I'd rather do the following. The harmony testsuite indicates + // that a simple cast is performed. + //Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + Rectangle r = (Rectangle) a; + if (x < r.x + r.width / 2) + { + b[0] = Position.Bias.Forward; + pos = getStartOffset(); + } + else + { + b[0] = Position.Bias.Backward; + pos = getEndOffset(); + } + return pos; } } diff --git a/libjava/classpath/javax/swing/text/CompositeView.java b/libjava/classpath/javax/swing/text/CompositeView.java index 6f487b8981e..570fc955c88 100644 --- a/libjava/classpath/javax/swing/text/CompositeView.java +++ b/libjava/classpath/javax/swing/text/CompositeView.java @@ -38,7 +38,6 @@ exception statement from your version. */ package javax.swing.text; -import java.awt.Insets; import java.awt.Rectangle; import java.awt.Shape; @@ -57,20 +56,28 @@ public abstract class CompositeView /** * The child views of this CompositeView. */ - View[] children; + private View[] children; + + /** + * The number of child views. + */ + private int numChildren; /** * The allocation of this View minus its insets. This is * initialized in {@link #getInsideAllocation} and reused and modified in * {@link #childAllocation(int, Rectangle)}. */ - Rectangle insideAllocation; + private final Rectangle insideAllocation = new Rectangle(); /** * The insets of this CompositeView. This is initialized * in {@link #setInsets}. */ - Insets insets; + private short top; + private short bottom; + private short left; + private short right; /** * Creates a new CompositeView for the given @@ -82,7 +89,10 @@ public abstract class CompositeView { super(element); children = new View[0]; - insets = new Insets(0, 0, 0, 0); + top = 0; + bottom = 0; + left = 0; + right = 0; } /** @@ -96,16 +106,22 @@ public abstract class CompositeView */ protected void loadChildren(ViewFactory f) { - Element el = getElement(); - int count = el.getElementCount(); - View[] newChildren = new View[count]; - for (int i = 0; i < count; ++i) + if (f != null) { - Element child = el.getElement(i); - View view = f.create(child); - newChildren[i] = view; + Element el = getElement(); + int count = el.getElementCount(); + View[] newChildren = new View[count]; + for (int i = 0; i < count; ++i) + { + Element child = el.getElement(i); + View view = f.create(child); + newChildren[i] = view; + } + // I'd have called replace(0, getViewCount(), newChildren) here + // in order to replace all existing views. However according to + // Harmony's tests this is not what the RI does. + replace(0, 0, newChildren); } - replace(0, getViewCount(), newChildren); } /** @@ -118,7 +134,7 @@ public abstract class CompositeView public void setParent(View parent) { super.setParent(parent); - if (parent != null && ((children == null) || children.length == 0)) + if (parent != null && numChildren == 0) loadChildren(getViewFactory()); } @@ -129,7 +145,7 @@ public abstract class CompositeView */ public int getViewCount() { - return children.length; + return numChildren; } /** @@ -156,24 +172,42 @@ public abstract class CompositeView */ public void replace(int offset, int length, View[] views) { - // Check for null views to add. - for (int i = 0; i < views.length; ++i) - if (views[i] == null) - throw new NullPointerException("Added views must not be null"); - - int endOffset = offset + length; + // Make sure we have an array. The Harmony testsuite indicates that we + // have to do something like this. + if (views == null) + views = new View[0]; // First we set the parent of the removed children to null. + int endOffset = offset + length; for (int i = offset; i < endOffset; ++i) - children[i].setParent(null); + { + if (children[i].getParent() == this) + children[i].setParent(null); + children[i] = null; + } - View[] newChildren = new View[children.length - length + views.length]; - System.arraycopy(children, 0, newChildren, 0, offset); - System.arraycopy(views, 0, newChildren, offset, views.length); - System.arraycopy(children, offset + length, newChildren, - offset + views.length, - children.length - (offset + length)); - children = newChildren; + // Update the children array. + int delta = views.length - length; + int src = offset + length; + int numMove = numChildren - src; + int dst = src + delta; + if (numChildren + delta > children.length) + { + // Grow array. + int newLength = Math.max(2 * children.length, numChildren + delta); + View[] newChildren = new View[newLength]; + System.arraycopy(children, 0, newChildren, 0, offset); + System.arraycopy(views, 0, newChildren, offset, views.length); + System.arraycopy(children, src, newChildren, dst, numMove); + children = newChildren; + } + else + { + // Patch existing array. + System.arraycopy(children, src, children, dst, numMove); + System.arraycopy(views, 0, children, offset, views.length); + } + numChildren += delta; // Finally we set the parent of the added children to this. for (int i = 0; i < views.length; ++i) @@ -248,34 +282,13 @@ public abstract class CompositeView } } } - else - { - throw new BadLocationException("Position " + pos - + " is not represented by view.", pos); - } } - return ret; - } - /** - * A helper method for {@link #modelToView(int, Position.Bias, int, - * Position.Bias, Shape)}. This creates a default location when there is - * no child view that can take responsibility for mapping the position to - * view coordinates. Depending on the specified bias this will be the - * left or right edge of this view's allocation. - * - * @param a the allocation for this view - * @param bias the bias - * - * @return a default location - */ - private Shape createDefaultLocation(Shape a, Position.Bias bias) - { - Rectangle alloc = a.getBounds(); - Rectangle location = new Rectangle(alloc.x, alloc.y, 1, alloc.height); - if (bias == Position.Bias.Forward) - location.x = alloc.x + alloc.width; - return location; + if (ret == null) + throw new BadLocationException("Position " + pos + + " is not represented by view.", pos); + + return ret; } /** @@ -394,7 +407,7 @@ public abstract class CompositeView */ public int getViewIndex(int pos, Position.Bias b) { - if (b == Position.Bias.Backward && pos != 0) + if (b == Position.Bias.Backward) pos -= 1; int i = -1; if (pos >= getStartOffset() && pos < getEndOffset()) @@ -514,24 +527,17 @@ public abstract class CompositeView if (a == null) return null; - Rectangle alloc = a.getBounds(); + // Try to avoid allocation of Rectangle here. + Rectangle alloc = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + // Initialize the inside allocation rectangle. This is done inside // a synchronized block in order to avoid multiple threads creating // this instance simultanously. - Rectangle inside; - synchronized(this) - { - inside = insideAllocation; - if (inside == null) - { - inside = new Rectangle(); - insideAllocation = inside; - } - } - inside.x = alloc.x + insets.left; - inside.y = alloc.y + insets.top; - inside.width = alloc.width - insets.left - insets.right; - inside.height = alloc.height - insets.top - insets.bottom; + Rectangle inside = insideAllocation; + inside.x = alloc.x + getLeftInset(); + inside.y = alloc.y + getTopInset(); + inside.width = alloc.width - getLeftInset() - getRightInset(); + inside.height = alloc.height - getTopInset() - getBottomInset(); return inside; } @@ -546,39 +552,26 @@ public abstract class CompositeView */ protected void setParagraphInsets(AttributeSet attributes) { - Float l = (Float) attributes.getAttribute(StyleConstants.LeftIndent); - short left = 0; - if (l != null) - left = l.shortValue(); - Float r = (Float) attributes.getAttribute(StyleConstants.RightIndent); - short right = 0; - if (r != null) - right = r.shortValue(); - Float t = (Float) attributes.getAttribute(StyleConstants.SpaceAbove); - short top = 0; - if (t != null) - top = t.shortValue(); - Float b = (Float) attributes.getAttribute(StyleConstants.SpaceBelow); - short bottom = 0; - if (b != null) - bottom = b.shortValue(); - setInsets(top, left, bottom, right); + top = (short) StyleConstants.getSpaceAbove(attributes); + bottom = (short) StyleConstants.getSpaceBelow(attributes); + left = (short) StyleConstants.getLeftIndent(attributes); + right = (short) StyleConstants.getRightIndent(attributes); } /** * Sets the insets of this CompositeView. * - * @param top the top inset - * @param left the left inset - * @param bottom the bottom inset - * @param right the right inset + * @param t the top inset + * @param l the left inset + * @param b the bottom inset + * @param r the right inset */ - protected void setInsets(short top, short left, short bottom, short right) + protected void setInsets(short t, short l, short b, short r) { - insets.top = top; - insets.left = left; - insets.bottom = bottom; - insets.right = right; + top = t; + left = l; + bottom = b; + right = r; } /** @@ -588,7 +581,7 @@ public abstract class CompositeView */ protected short getLeftInset() { - return (short) insets.left; + return left; } /** @@ -598,7 +591,7 @@ public abstract class CompositeView */ protected short getRightInset() { - return (short) insets.right; + return right; } /** @@ -608,7 +601,7 @@ public abstract class CompositeView */ protected short getTopInset() { - return (short) insets.top; + return top; } /** @@ -618,7 +611,7 @@ public abstract class CompositeView */ protected short getBottomInset() { - return (short) insets.bottom; + return bottom; } /** diff --git a/libjava/classpath/javax/swing/text/DefaultCaret.java b/libjava/classpath/javax/swing/text/DefaultCaret.java index 84f47f120de..c4c2580c398 100644 --- a/libjava/classpath/javax/swing/text/DefaultCaret.java +++ b/libjava/classpath/javax/swing/text/DefaultCaret.java @@ -804,7 +804,7 @@ public class DefaultCaret extends Rectangle } } } - + private void handleHighlight() { Highlighter highlighter = textComponent.getHighlighter(); @@ -946,7 +946,7 @@ public class DefaultCaret extends Rectangle * * @return all registered event listeners of the specified type */ - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } @@ -1075,8 +1075,6 @@ public class DefaultCaret extends Rectangle handleHighlight(); appear(); - - adjustVisibility(this); } } @@ -1114,8 +1112,6 @@ public class DefaultCaret extends Rectangle clearHighlight(); appear(); - - adjustVisibility(this); } } @@ -1154,7 +1150,12 @@ public class DefaultCaret extends Rectangle // e.printStackTrace(); } if (area != null) - damage(area); + { + adjustVisibility(area); + if (getMagicCaretPosition() == null) + setMagicCaretPosition(new Point(area.x, area.y)); + damage(area); + } } repaint(); } diff --git a/libjava/classpath/javax/swing/text/DefaultEditorKit.java b/libjava/classpath/javax/swing/text/DefaultEditorKit.java index 8602e69f8e7..aa69deca545 100644 --- a/libjava/classpath/javax/swing/text/DefaultEditorKit.java +++ b/libjava/classpath/javax/swing/text/DefaultEditorKit.java @@ -38,7 +38,6 @@ exception statement from your version. */ package javax.swing.text; -import java.awt.Point; import java.awt.Toolkit; import java.awt.event.ActionEvent; @@ -312,19 +311,21 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - int offs = t.getDocument().getLength(); - Caret c = t.getCaret(); - c.setDot(0); - c.moveDot(offs); - - try - { - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); - } - catch(BadLocationException ble) - { - // Can't happen. - } + if (t != null) + { + int offs = t.getDocument().getLength(); + Caret c = t.getCaret(); + c.setDot(0); + c.moveDot(offs); + try + { + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } + } } } @@ -339,15 +340,18 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - Caret c = t.getCaret(); - c.moveDot(0); - try - { - c.setMagicCaretPosition(t.modelToView(0).getLocation()); - } - catch(BadLocationException ble) + if (t != null) { - // Can't happen. + Caret c = t.getCaret(); + c.moveDot(0); + try + { + c.setMagicCaretPosition(t.modelToView(0).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } } } @@ -363,16 +367,19 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - int offs = t.getDocument().getLength(); - Caret c = t.getCaret(); - c.moveDot(offs); - try - { - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); - } - catch(BadLocationException ble) + if (t != null) { - // Can't happen. + int offs = t.getDocument().getLength(); + Caret c = t.getCaret(); + c.moveDot(offs); + try + { + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } } } @@ -389,17 +396,19 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - Caret c = t.getCaret(); - try + if (t != null) { - int offs = Utilities.getRowStart(t, c.getDot()); - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + Caret c = t.getCaret(); + try + { + int offs = Utilities.getRowStart(t, c.getDot()); + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } - catch(BadLocationException ble) - { - // Can't happen. - } - } } @@ -414,17 +423,19 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - Caret c = t.getCaret(); - try - { - int offs = Utilities.getRowEnd(t, c.getDot()); - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); - } - catch(BadLocationException ble) + if (t != null) { - // Can't happen. + Caret c = t.getCaret(); + try + { + int offs = Utilities.getRowEnd(t, c.getDot()); + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } - } } @@ -438,20 +449,21 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - Caret c = t.getCaret(); - try - { - int offs1 = Utilities.getRowStart(t, c.getDot()); - int offs2 = Utilities.getRowEnd(t, c.getDot()); - - c.setDot(offs2); - c.moveDot(offs1); - - c.setMagicCaretPosition(t.modelToView(offs2).getLocation()); - } - catch(BadLocationException ble) + if (t != null) { - // Can't happen. + Caret c = t.getCaret(); + try + { + int offs1 = Utilities.getRowStart(t, c.getDot()); + int offs2 = Utilities.getRowEnd(t, c.getDot()); + c.setDot(offs2); + c.moveDot(offs1); + c.setMagicCaretPosition(t.modelToView(offs2).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } } } @@ -466,51 +478,52 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - Caret c = t.getCaret(); - int dot = c.getDot(); - - try + if (t != null) { - int wordStart = Utilities.getWordStart(t, dot); - - if (dot == wordStart) - { - // Current cursor position is on the first character in a word. - c.setDot(wordStart); - c.moveDot(Utilities.getWordEnd(t, wordStart)); - } - else + Caret c = t.getCaret(); + int dot = c.getDot(); + try { - // Current cursor position is not on the first character - // in a word. - int nextWord = Utilities.getNextWord(t, dot); - int previousWord = Utilities.getPreviousWord(t, dot); - int previousWordEnd = Utilities.getWordEnd(t, previousWord); - - // Cursor position is in the space between two words. In such a - // situation just select the space. - if (dot >= previousWordEnd && dot <= nextWord) + int wordStart = Utilities.getWordStart(t, dot); + + if (dot == wordStart) { - c.setDot(previousWordEnd); - c.moveDot(nextWord); + // Current cursor position is on the first character in a word. + c.setDot(wordStart); + c.moveDot(Utilities.getWordEnd(t, wordStart)); } else { - // Cursor position is inside a word. Just select it then. - c.setDot(previousWord); - c.moveDot(previousWordEnd); + // Current cursor position is not on the first character + // in a word. + int nextWord = Utilities.getNextWord(t, dot); + int previousWord = Utilities.getPreviousWord(t, dot); + int previousWordEnd = Utilities.getWordEnd(t, previousWord); + + // Cursor position is in the space between two words. In such a + // situation just select the space. + if (dot >= previousWordEnd && dot <= nextWord) + { + c.setDot(previousWordEnd); + c.moveDot(nextWord); + } + else + { + // Cursor position is inside a word. Just select it then. + c.setDot(previousWord); + c.moveDot(previousWordEnd); + } } - } - // If the position was updated change the magic caret position - // as well. - if (c.getDot() != dot) - c.setMagicCaretPosition(t.modelToView(c.getDot()).getLocation()); - - } - catch(BadLocationException ble) - { - // Can't happen. + // If the position was updated change the magic caret position + // as well. + if (c.getDot() != dot) + c.setMagicCaretPosition(t.modelToView(c.getDot()).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } } } @@ -715,21 +728,23 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - try - { - int offs = Utilities.getRowEnd(t, t.getCaretPosition()); - - if (offs > -1) - { - Caret c = t.getCaret(); - c.setDot(offs); - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); - } - } - catch (BadLocationException ble) - { - // Nothing to do here - } + if (t != null) + { + try + { + int offs = Utilities.getRowEnd(t, t.getCaretPosition()); + if (offs > -1) + { + Caret c = t.getCaret(); + c.setDot(offs); + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + } + catch (BadLocationException ble) + { + // Nothing to do here + } + } } } @@ -744,21 +759,23 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - try - { - int offs = Utilities.getRowStart(t, t.getCaretPosition()); - - if (offs > -1) - { - Caret c = t.getCaret(); - c.setDot(offs); - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); - } - } - catch (BadLocationException ble) - { - // Do nothing here. - } + if (t != null) + { + try + { + int offs = Utilities.getRowStart(t, t.getCaretPosition()); + if (offs > -1) + { + Caret c = t.getCaret(); + c.setDot(offs); + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + } + catch (BadLocationException ble) + { + // Do nothing here. + } + } } } @@ -773,16 +790,19 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - Caret c = t.getCaret(); - c.setDot(0); - try - { - c.setMagicCaretPosition(t.modelToView(0).getLocation()); - } - catch(BadLocationException ble) - { - // Can't happen. - } + if (t != null) + { + Caret c = t.getCaret(); + c.setDot(0); + try + { + c.setMagicCaretPosition(t.modelToView(0).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } + } } } @@ -797,16 +817,19 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - int offs = t.getDocument().getLength(); - Caret c = t.getCaret(); - c.setDot(offs); - try - { - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); - } - catch(BadLocationException ble) + if (t != null) { - // Can't happen. + int offs = t.getDocument().getLength(); + Caret c = t.getCaret(); + c.setDot(offs); + try + { + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } } } @@ -862,7 +885,9 @@ public class DefaultEditorKit extends EditorKit */ public void actionPerformed(ActionEvent event) { - getTextComponent(event).copy(); + JTextComponent target = getTextComponent(event); + if (target != null) + target.copy(); } } @@ -893,7 +918,9 @@ public class DefaultEditorKit extends EditorKit */ public void actionPerformed(ActionEvent event) { - getTextComponent(event).cut(); + JTextComponent target = getTextComponent(event); + if (target != null) + target.cut(); } } @@ -922,7 +949,9 @@ public class DefaultEditorKit extends EditorKit */ public void actionPerformed(ActionEvent event) { - getTextComponent(event).paste(); + JTextComponent target = getTextComponent(event); + if (target != null) + target.paste(); } } @@ -957,14 +986,26 @@ public class DefaultEditorKit extends EditorKit { // first we filter the following events: // - control characters - // - key events with the ALT modifier (FIXME: filter that too!) - int cp = event.getActionCommand().codePointAt(0); - if (Character.isISOControl(cp)) - return; - - JTextComponent t = getTextComponent(event); - if (t != null && t.isEnabled() && t.isEditable()) - t.replaceSelection(event.getActionCommand()); + // - key events with the ALT modifier + JTextComponent target = getTextComponent(event); + if ((target != null) && (event != null)) + { + if ((target.isEditable()) && (target.isEnabled())) + { + String content = event.getActionCommand(); + int mod = event.getModifiers(); + if ((content != null) && (content.length() > 0) + && (mod & ActionEvent.ALT_MASK) == 0 + && (mod & ActionEvent.CTRL_MASK) == 0) + { + char c = content.charAt(0); + if ((c >= 0x20) && (c != 0x7F)) + { + target.replaceSelection(content); + } + } + } + } } } @@ -992,7 +1033,8 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - t.replaceSelection("\n"); + if (t != null) + t.replaceSelection("\n"); } } @@ -1047,7 +1089,8 @@ public class DefaultEditorKit extends EditorKit public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - t.replaceSelection("\t"); + if (t != null) + t.replaceSelection("\t"); } } diff --git a/libjava/classpath/javax/swing/text/DefaultFormatter.java b/libjava/classpath/javax/swing/text/DefaultFormatter.java index e42b1698af8..bf7c02a004d 100644 --- a/libjava/classpath/javax/swing/text/DefaultFormatter.java +++ b/libjava/classpath/javax/swing/text/DefaultFormatter.java @@ -216,7 +216,7 @@ public class DefaultFormatter extends JFormattedTextField.AbstractFormatter */ public DefaultFormatter() { - commitsOnValidEdit = true; + commitsOnValidEdit = false; overwriteMode = true; allowsInvalid = true; } @@ -330,7 +330,7 @@ public class DefaultFormatter extends JFormattedTextField.AbstractFormatter * * @return the class that is used for values */ - public Class getValueClass() + public Class getValueClass() { return valueClass; } @@ -342,7 +342,7 @@ public class DefaultFormatter extends JFormattedTextField.AbstractFormatter * * @see #getValueClass() */ - public void setValueClass(Class valueClass) + public void setValueClass(Class valueClass) { this.valueClass = valueClass; } diff --git a/libjava/classpath/javax/swing/text/DefaultHighlighter.java b/libjava/classpath/javax/swing/text/DefaultHighlighter.java index 59f77316e87..69563e473ac 100644 --- a/libjava/classpath/javax/swing/text/DefaultHighlighter.java +++ b/libjava/classpath/javax/swing/text/DefaultHighlighter.java @@ -1,4 +1,4 @@ -/* DefaultHighlighter.java -- +/* DefaultHighlighter.java -- The default highlight for Swing Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,18 +38,21 @@ exception statement from your version. */ package javax.swing.text; -import gnu.classpath.NotImplementedException; - import java.awt.Color; import java.awt.Graphics; import java.awt.Insets; import java.awt.Rectangle; import java.awt.Shape; import java.util.ArrayList; +import java.util.Iterator; import javax.swing.SwingUtilities; import javax.swing.plaf.TextUI; +/** + * The default highlight for Swing text components. It highlights text + * by filling the background with a rectangle. + */ public class DefaultHighlighter extends LayeredHighlighter { public static class DefaultHighlightPainter @@ -68,11 +71,6 @@ public class DefaultHighlighter extends LayeredHighlighter return color; } - private void paintHighlight(Graphics g, Rectangle rect) - { - g.fillRect(rect.x, rect.y, rect.width, rect.height); - } - public void paint(Graphics g, int p0, int p1, Shape bounds, JTextComponent t) { @@ -81,30 +79,31 @@ public class DefaultHighlighter extends LayeredHighlighter Rectangle rect = bounds.getBounds(); - if (color == null) - g.setColor(t.getSelectionColor()); - else - g.setColor(color); + Color col = getColor(); + if (col == null) + col = t.getSelectionColor(); + g.setColor(col); TextUI ui = t.getUI(); try - { - - Rectangle l0 = ui.modelToView(t, p0, null); - Rectangle l1 = ui.modelToView(t, p1, null); - - // Note: The computed locations may lie outside of the allocation - // area if the text is scrolled. + { + + Rectangle l0 = ui.modelToView(t, p0, null); + Rectangle l1 = ui.modelToView(t, p1, null); - if (l0.y == l1.y) + // Note: The computed locations may lie outside of the allocation + // area if the text is scrolled. + + if (l0.y == l1.y) { SwingUtilities.computeUnion(l0.x, l0.y, l0.width, l0.height, l1); // Paint only inside the allocation area. - SwingUtilities.computeIntersection(rect.x, rect.y, rect.width, rect.height, l1); + SwingUtilities.computeIntersection(rect.x, rect.y, rect.width, + rect.height, l1); - paintHighlight(g, l1); + g.fillRect(l1.x, l1.y, l1.width, l1.height); } else { @@ -115,77 +114,71 @@ public class DefaultHighlighter extends LayeredHighlighter // out the bounds. // 3. The final line is painted from the left border to the // position of p1. - - // Highlight first line until the end. - // If rect.x is non-zero the calculation will properly adjust the - // area to be painted. - l0.x -= rect.x; - l0.width = rect.width - l0.x - rect.x; - - paintHighlight(g, l0); - - int posBelow = Utilities.getPositionBelow(t, p0, l0.x); - int p1RowStart = Utilities.getRowStart(t, p1); - if (posBelow != -1 - && posBelow != p0 - && Utilities.getRowStart(t, posBelow) - != p1RowStart) - { - Rectangle grow = ui.modelToView(t, posBelow); - grow.x = rect.x; - grow.width = rect.width; - - // Find further lines which have to be highlighted completely. - int nextPosBelow = posBelow; - while (nextPosBelow != -1 - && Utilities.getRowStart(t, nextPosBelow) != p1RowStart) - { - posBelow = nextPosBelow; - nextPosBelow = Utilities.getPositionBelow(t, posBelow, l0.x); - - if (nextPosBelow == posBelow) - break; - } - // Now posBelow is an offset on the last line which has to be painted - // completely. (newPosBelow is on the same line as p1) - - // Retrieve the rectangle of posBelow and use its y and height - // value to calculate the final height of the multiple line - // spanning rectangle. - Rectangle end = ui.modelToView(t, posBelow); - grow.height = end.y + end.height - grow.y; - - paintHighlight(g, grow); - } - - // Paint last line from its beginning to the position of p1. - l1.width = l1.x + l1.width - rect.x; - l1.x = rect.x; - paintHighlight(g, l1); - } + + int firstLineWidth = rect.x + rect.width - l0.x; + g.fillRect(l0.x, l0.y, firstLineWidth, l0.height); + if (l0.y + l0.height != l1.y) + { + g.fillRect(rect.x, l0.y + l0.height, rect.width, + l1.y - l0.y - l0.height); + } + g.fillRect(rect.x, l1.y, l1.x - rect.x, l1.height); + } } catch (BadLocationException ex) { - AssertionError err = new AssertionError("Unexpected bad location exception"); - err.initCause(ex); - throw err; + // Can't render. Comment out for debugging. + // ex.printStackTrace(); } } public Shape paintLayer(Graphics g, int p0, int p1, Shape bounds, JTextComponent c, View view) { - throw new InternalError(); + Color col = getColor(); + if (col == null) + col = c.getSelectionColor(); + g.setColor(col); + + Rectangle rect = null; + if (p0 == view.getStartOffset() && p1 == view.getEndOffset()) + { + // Paint complete bounds region. + rect = bounds instanceof Rectangle ? (Rectangle) bounds + : bounds.getBounds(); + } + else + { + // Only partly inside the view. + try + { + Shape s = view.modelToView(p0, Position.Bias.Forward, + p1, Position.Bias.Backward, + bounds); + rect = s instanceof Rectangle ? (Rectangle) s : s.getBounds(); + } + catch (BadLocationException ex) + { + // Can't render the highlight. + } + } + + if (rect != null) + { + g.fillRect(rect.x, rect.y, rect.width, rect.height); + } + return rect; } } private class HighlightEntry implements Highlighter.Highlight { - int p0; - int p1; + Position p0; + Position p1; Highlighter.HighlightPainter painter; - public HighlightEntry(int p0, int p1, Highlighter.HighlightPainter painter) + public HighlightEntry(Position p0, Position p1, + Highlighter.HighlightPainter painter) { this.p0 = p0; this.p1 = p1; @@ -194,12 +187,12 @@ public class DefaultHighlighter extends LayeredHighlighter public int getStartOffset() { - return p0; + return p0.getOffset(); } public int getEndOffset() { - return p1; + return p1.getOffset(); } public Highlighter.HighlightPainter getPainter() @@ -209,6 +202,58 @@ public class DefaultHighlighter extends LayeredHighlighter } /** + * A HighlightEntry that is used for LayerPainter painters. In addition + * to the info maintained by the HighlightEntry, this class maintains + * a painting rectangle. This is used as repaint region when the + * highlight changes and the text component needs repainting. + */ + private class LayerHighlightEntry + extends HighlightEntry + { + + /** + * The paint rectangle. + */ + Rectangle paintRect = new Rectangle(); + + LayerHighlightEntry(Position p0, Position p1, + Highlighter.HighlightPainter p) + { + super(p0, p1, p); + } + + /** + * Paints the highlight by calling the LayerPainter. This + * restricts the area to be painted by startOffset and endOffset + * and manages the paint rectangle. + */ + void paintLayeredHighlight(Graphics g, int p0, int p1, Shape bounds, + JTextComponent tc, View view) + { + p0 = Math.max(getStartOffset(), p0); + p1 = Math.min(getEndOffset(), p1); + + Highlighter.HighlightPainter painter = getPainter(); + if (painter instanceof LayerPainter) + { + LayerPainter layerPainter = (LayerPainter) painter; + Shape area = layerPainter.paintLayer(g, p0, p1, bounds, tc, view); + Rectangle rect; + if (area instanceof Rectangle && paintRect != null) + rect = (Rectangle) area; + else + rect = area.getBounds(); + + if (paintRect.width == 0 || paintRect.height == 0) + paintRect = rect.getBounds(); + else + paintRect = SwingUtilities.computeUnion(rect.x, rect.y, rect.width, + rect.height, paintRect); + } + } + } + + /** * @specnote final as of 1.4 */ public static final LayeredHighlighter.LayerPainter DefaultPainter = @@ -254,11 +299,19 @@ public class DefaultHighlighter extends LayeredHighlighter textComponent = null; } - public Object addHighlight(int p0, int p1, Highlighter.HighlightPainter painter) + public Object addHighlight(int p0, int p1, + Highlighter.HighlightPainter painter) throws BadLocationException { checkPositions(p0, p1); - HighlightEntry entry = new HighlightEntry(p0, p1, painter); + HighlightEntry entry; + Document doc = textComponent.getDocument(); + Position pos0 = doc.createPosition(p0); + Position pos1 = doc.createPosition(p1); + if (getDrawsLayeredHighlights() && painter instanceof LayerPainter) + entry = new LayerHighlightEntry(pos0, pos1, painter); + else + entry = new HighlightEntry(pos0, pos1, painter); highlights.add(entry); textComponent.getUI().damageRange(textComponent, p0, p1); @@ -268,16 +321,67 @@ public class DefaultHighlighter extends LayeredHighlighter public void removeHighlight(Object tag) { + HighlightEntry entry = (HighlightEntry) tag; + if (entry instanceof LayerHighlightEntry) + { + LayerHighlightEntry lEntry = (LayerHighlightEntry) entry; + Rectangle paintRect = lEntry.paintRect; + textComponent.repaint(paintRect.x, paintRect.y, paintRect.width, + paintRect.height); + } + else + { + textComponent.getUI().damageRange(textComponent, + entry.getStartOffset(), + entry.getEndOffset()); + } highlights.remove(tag); - HighlightEntry entry = (HighlightEntry) tag; - textComponent.getUI().damageRange(textComponent, - entry.p0, - entry.p1); } public void removeAllHighlights() { + // Repaint damaged region. + int minX = 0; + int maxX = 0; + int minY = 0; + int maxY = 0; + int p0 = -1; + int p1 = -1; + for (Iterator i = highlights.iterator(); i.hasNext();) + { + HighlightEntry e = (HighlightEntry) i.next(); + if (e instanceof LayerHighlightEntry) + { + LayerHighlightEntry le = (LayerHighlightEntry) e; + Rectangle r = le.paintRect; + minX = Math.min(r.x, minX); + maxX = Math.max(r.x + r.width, maxX); + minY = Math.min(r.y, minY); + maxY = Math.max(r.y + r.height, maxY); + } + else + { + if (p0 == -1 || p1 == -1) + { + p0 = e.getStartOffset(); + p1 = e.getEndOffset(); + } + else + { + p0 = Math.min(p0, e.getStartOffset()); + p1 = Math.max(p1, e.getEndOffset()); + } + } + if (minX != maxX && minY != maxY) + textComponent.repaint(minX, minY, maxX - minX, maxY - minY); + if (p0 != -1 && p1 != -1) + { + TextUI ui = textComponent.getUI(); + ui.damageRange(textComponent, p0, p1); + } + + } highlights.clear(); } @@ -290,94 +394,61 @@ public class DefaultHighlighter extends LayeredHighlighter public void changeHighlight(Object tag, int n0, int n1) throws BadLocationException { - int o0, o1; - - checkPositions(n0, n1); - HighlightEntry entry = (HighlightEntry) tag; - o0 = entry.p0; - o1 = entry.p1; - - // Prevent useless write & repaint operations. - if (o0 == n0 && o1 == n1) - return; - - entry.p0 = n0; - entry.p1 = n1; - + Document doc = textComponent.getDocument(); TextUI ui = textComponent.getUI(); - - // Special situation where the old area has to be cleared simply. - if (n0 == n1) - ui.damageRange(textComponent, o0, o1); - // Calculates the areas where a change is really neccessary - else if ((o1 > n0 && o1 <= n1) - || (n1 > o0 && n1 <= o1)) + if (tag instanceof LayerHighlightEntry) { - // [fds, fde) - the first damage region - // [sds, sde] - the second damage region - int fds, sds; - int fde, sde; - - // Calculate first damaged region. - if(o0 < n0) - { - // Damaged region will be cleared as - // the old highlight region starts first. - fds = o0; - fde = n0; - } - else - { - // Damaged region will be painted as - // the new highlight region starts first. - fds = n0; - fde = o0; - } - - if (o1 < n1) + LayerHighlightEntry le = (LayerHighlightEntry) tag; + Rectangle r = le.paintRect; + if (r.width > 0 && r.height > 0) + textComponent.repaint(r.x, r.y, r.width, r.height); + r.width = 0; + r.height = 0; + le.p0 = doc.createPosition(n0); + le.p1 = doc.createPosition(n1); + ui.damageRange(textComponent, Math.min(n0, n1), Math.max(n0, n1)); + } + else if (tag instanceof HighlightEntry) + { + HighlightEntry e = (HighlightEntry) tag; + int p0 = e.getStartOffset(); + int p1 = e.getEndOffset(); + if (p0 == n0) { - // Final region will be painted as the - // old highlight region finishes first - sds = o1; - sde = n1; + ui.damageRange(textComponent, Math.min(p1, n1), + Math.max(p1, n1)); } - else + else if (n1 == p1) { - // Final region will be cleared as the - // new highlight region finishes first. - sds = n1; - sde = o1; + ui.damageRange(textComponent, Math.min(p0, n0), + Math.max(p0, n0)); } - - // If there is no undamaged region in between - // call damageRange only once. - if (fde == sds) - ui.damageRange(textComponent, fds, sde); else { - if (fds != fde) - ui.damageRange(textComponent, fds, fde); - - if (sds != sde) - ui.damageRange(textComponent, sds, sde); + ui.damageRange(textComponent, p0, p1); + ui.damageRange(textComponent, n0, n1); } + e.p0 = doc.createPosition(n0); + e.p1 = doc.createPosition(n1); } - else - { - // The two regions do not overlap. So mark - // both areas as damaged. - ui.damageRange(textComponent, o0, o1); - ui.damageRange(textComponent, n0, n1); - } - } public void paintLayeredHighlights(Graphics g, int p0, int p1, Shape viewBounds, JTextComponent editor, View view) - throws NotImplementedException { - // TODO: Implement this properly. + for (Iterator i = highlights.iterator(); i.hasNext();) + { + Object o = i.next(); + if (o instanceof LayerHighlightEntry) + { + LayerHighlightEntry entry = (LayerHighlightEntry) o; + int start = entry.getStartOffset(); + int end = entry.getEndOffset(); + if ((p0 < start && p1 > start) || (p0 >= start && p0 < end)) + entry.paintLayeredHighlight(g, p0, p1, viewBounds, editor, view); + } + } } public void paint(Graphics g) @@ -399,7 +470,9 @@ public class DefaultHighlighter extends LayeredHighlighter for (int index = 0; index < size; ++index) { HighlightEntry entry = (HighlightEntry) highlights.get(index); - entry.painter.paint(g, entry.p0, entry.p1, bounds, textComponent); + if (! (entry instanceof LayerHighlightEntry)) + entry.painter.paint(g, entry.getStartOffset(), entry.getEndOffset(), + bounds, textComponent); } } } diff --git a/libjava/classpath/javax/swing/text/DefaultStyledDocument.java b/libjava/classpath/javax/swing/text/DefaultStyledDocument.java index bd21e55c6fb..3156ca67f66 100644 --- a/libjava/classpath/javax/swing/text/DefaultStyledDocument.java +++ b/libjava/classpath/javax/swing/text/DefaultStyledDocument.java @@ -41,7 +41,9 @@ package javax.swing.text; import java.awt.Color; import java.awt.Font; import java.io.Serializable; +import java.util.ArrayList; import java.util.Enumeration; +import java.util.Iterator; import java.util.Stack; import java.util.Vector; @@ -424,6 +426,58 @@ public class DefaultStyledDocument extends AbstractDocument implements */ public class ElementBuffer implements Serializable { + /** + * Instance of all editing information for an object in the Vector. This class + * is used to add information to the DocumentEvent associated with an + * insertion/removal/change as well as to store the changes that need to be + * made so they can be made all at the same (appropriate) time. + */ + class Edit + { + /** The element to edit . */ + Element e; + + /** The index of the change. */ + int index; + + /** The removed elements. */ + ArrayList removed = new ArrayList(); + + /** The added elements. */ + ArrayList added = new ArrayList(); + + /** + * Indicates if this edit contains a fracture. + */ + boolean isFracture; + + /** + * Creates a new Edit for the specified element at index i. + * + * @param el the element + * @param i the index + */ + Edit(Element el, int i) + { + this(el, i, false); + } + + /** + * Creates a new Edit for the specified element at index i. + * + * @param el the element + * @param i the index + * @param frac if this is a fracture edit or not + */ + Edit(Element el, int i, boolean frac) + { + e = el; + index = i; + isFracture = frac; + } + + } + /** The serialization UID (compatible with JDK1.5). */ private static final long serialVersionUID = 1688745877691146623L; @@ -442,11 +496,20 @@ public class DefaultStyledDocument extends AbstractDocument implements /** Holds the position of the change. */ private int pos; - /** Holds the element that was last fractured. */ - private Element lastFractured; - - /** True if a fracture was not created during a insertFracture call. */ - private boolean fracNotCreated; + /** + * The parent of the fracture. + */ + private Element fracturedParent; + + /** + * The fractured child. + */ + private Element fracturedChild; + + /** + * Indicates if a fracture has been created. + */ + private boolean createdFracture; /** * The current position in the element tree. This is used for bulk inserts @@ -454,10 +517,17 @@ public class DefaultStyledDocument extends AbstractDocument implements */ private Stack elementStack; + private Edit[] insertPath; + + private boolean recreateLeafs; + /** - * The ElementChange that describes the latest changes. + * Vector that contains all the edits. Maybe replace by a HashMap. */ - DefaultDocumentEvent documentEvent; + private ArrayList edits; + + private boolean offsetLastIndex; + private boolean offsetLastIndexReplace; /** * Creates a new ElementBuffer for the specified @@ -469,7 +539,6 @@ public class DefaultStyledDocument extends AbstractDocument implements public ElementBuffer(Element root) { this.root = root; - elementStack = new Stack(); } /** @@ -495,13 +564,9 @@ public class DefaultStyledDocument extends AbstractDocument implements */ public void remove(int offs, int len, DefaultDocumentEvent ev) { - if (len == 0) - return; - offset = offs; - length = len; - pos = offset; - documentEvent = ev; + prepareEdit(offs, len); removeUpdate(); + finishEdit(ev); } /** @@ -511,109 +576,293 @@ public class DefaultStyledDocument extends AbstractDocument implements */ protected void removeUpdate() { - int startParagraph = root.getElementIndex(offset); - int endParagraph = root.getElementIndex(offset + length); - Element[] empty = new Element[0]; - int removeStart = -1; - int removeEnd = -1; - for (int i = startParagraph; i < endParagraph; i++) + removeElements(root, offset, endOffset); + } + + private boolean removeElements(Element elem, int rmOffs0, int rmOffs1) + { + boolean ret = false; + if (! elem.isLeaf()) { - BranchElement paragraph = (BranchElement) root.getElement(i); - int contentStart = paragraph.getElementIndex(offset); - int contentEnd = paragraph.getElementIndex(offset + length); - if (contentStart == paragraph.getStartOffset() - && contentEnd == paragraph.getEndOffset()) + // Update stack for changes. + int index0 = elem.getElementIndex(rmOffs0); + int index1 = elem.getElementIndex(rmOffs1); + elementStack.push(new Edit(elem, index0)); + Edit ec = (Edit) elementStack.peek(); + + // If the range is contained by one element, + // we just forward the request + if (index0 == index1) { - // In this case we only need to remove the whole paragraph. We - // do this in one go after this loop and only record the indices - // here. - if (removeStart == -1) + Element child0 = elem.getElement(index0); + if(rmOffs0 <= child0.getStartOffset() + && rmOffs1 >= child0.getEndOffset()) { - removeStart = i; - removeEnd = i; + // Element totally removed. + ec.removed.add(child0); + } + else if (removeElements(child0, rmOffs0, rmOffs1)) + { + ec.removed.add(child0); } - else - removeEnd = i; } else { - // In this case we remove a couple of child elements from this - // paragraph. - int removeLen = contentEnd - contentStart; - Element[] removed = new Element[removeLen]; - for (int j = contentStart; j < contentEnd; j++) - removed[j] = paragraph.getElement(j); - Edit edit = getEditForParagraphAndIndex(paragraph, contentStart); - edit.addRemovedElements(removed); + // The removal range spans elements. If we can join + // the two endpoints, do it. Otherwise we remove the + // interior and forward to the endpoints. + Element child0 = elem.getElement(index0); + Element child1 = elem.getElement(index1); + boolean containsOffs1 = (rmOffs1 < elem.getEndOffset()); + if (containsOffs1 && canJoin(child0, child1)) + { + // Remove and join. + for (int i = index0; i <= index1; i++) + { + ec.removed.add(elem.getElement(i)); + } + Element e = join(elem, child0, child1, rmOffs0, rmOffs1); + ec.added.add(e); } + else + { + // Remove interior and forward. + int rmIndex0 = index0 + 1; + int rmIndex1 = index1 - 1; + if (child0.getStartOffset() == rmOffs0 + || (index0 == 0 && child0.getStartOffset() > rmOffs0 + && child0.getEndOffset() <= rmOffs1)) + { + // Start element completely consumed. + child0 = null; + rmIndex0 = index0; + } + if (! containsOffs1) + { + child1 = null; + rmIndex1++; + } + else if (child1.getStartOffset() == rmOffs1) + { + // End element not touched. + child1 = null; + } + if (rmIndex0 <= rmIndex1) + { + ec.index = rmIndex0; + } + for (int i = rmIndex0; i <= rmIndex1; i++) + { + ec.removed.add(elem.getElement(i)); + } + if (child0 != null) + { + if(removeElements(child0, rmOffs0, rmOffs1)) + { + ec.removed.add(0, child0); + ec.index = index0; + } + } + if (child1 != null) + { + if(removeElements(child1, rmOffs0, rmOffs1)) + { + ec.removed.add(child1); + } + } + } + } + + // Perform changes. + pop(); + + // Return true if we no longer have any children. + if(elem.getElementCount() == (ec.removed.size() - ec.added.size())) + ret = true; } - // Now we remove paragraphs from the root that have been tagged for - // removal. - if (removeStart != -1) - { - int removeLen = removeEnd - removeStart; - Element[] removed = new Element[removeLen]; - for (int i = removeStart; i < removeEnd; i++) - removed[i] = root.getElement(i); - Edit edit = getEditForParagraphAndIndex((BranchElement) root, - removeStart); - edit.addRemovedElements(removed); - } + return ret; } /** - * Performs the actual work for {@link #change}. The elements at the - * interval boundaries are split up (if necessary) so that the interval - * boundaries are located at element boundaries. + * Creates a document in response to a call to + * {@link DefaultStyledDocument#create(ElementSpec[])}. + * + * @param len the length of the inserted text + * @param data the specs for the elements + * @param ev the document event */ - protected void changeUpdate() + void create(int len, ElementSpec[] data, DefaultDocumentEvent ev) + { + prepareEdit(offset, len); + Element el = root; + int index = el.getElementIndex(0); + while (! el.isLeaf()) + { + Element child = el.getElement(index); + Edit edit = new Edit(el, index, false); + elementStack.push(edit); + el = child; + index = el.getElementIndex(0); + } + Edit ed = (Edit) elementStack.peek(); + Element child = ed.e.getElement(ed.index); + ed.added.add(createLeafElement(ed.e, child.getAttributes(), getLength(), + child.getEndOffset())); + ed.removed.add(child); + while (elementStack.size() > 1) + pop(); + int n = data.length; + + // Reset root element's attributes. + AttributeSet newAtts = null; + if (n > 0 && data[0].getType() == ElementSpec.StartTagType) + newAtts = data[0].getAttributes(); + if (newAtts == null) + newAtts = SimpleAttributeSet.EMPTY; + MutableAttributeSet mAtts = (MutableAttributeSet) root.getAttributes(); + ev.addEdit(new AttributeUndoableEdit(root, newAtts, true)); + mAtts.removeAttributes(mAtts); + mAtts.addAttributes(newAtts); + + // Insert the specified elements. + for (int i = 1; i < n; i++) + insertElement(data[i]); + + // Pop remaining stack. + while (elementStack.size() > 0) + pop(); + + finishEdit(ev); + } + + private boolean canJoin(Element e0, Element e1) + { + boolean ret = false; + if ((e0 != null) && (e1 != null)) + { + // Don't join a leaf to a branch. + boolean isLeaf0 = e0.isLeaf(); + boolean isLeaf1 = e1.isLeaf(); + if(isLeaf0 == isLeaf1) + { + if (isLeaf0) + { + // Only join leaves if the attributes match, otherwise + // style information will be lost. + ret = e0.getAttributes().isEqual(e1.getAttributes()); + } + else + { + // Only join non-leafs if the names are equal. This may result + // in loss of style information, but this is typically + // acceptable for non-leafs. + String name0 = e0.getName(); + String name1 = e1.getName(); + if (name0 != null) + ret = name0.equals(name1); + else if (name1 != null) + ret = name1.equals(name0); + else // Both names null. + ret = true; + } + } + } + return ret; + } + + private Element join(Element p, Element left, Element right, int rmOffs0, + int rmOffs1) { - // Split up the element at the start offset if necessary. - Element el = getCharacterElement(offset); - Element[] res = split(el, offset, 0, el.getElementIndex(offset)); - BranchElement par = (BranchElement) el.getParentElement(); - int index = par.getElementIndex(offset); - Edit edit = getEditForParagraphAndIndex(par, index); - if (res[1] != null) + Element joined = null; + if (left.isLeaf() && right.isLeaf()) + { + joined = createLeafElement(p, left.getAttributes(), + left.getStartOffset(), + right.getEndOffset()); + } + else if ((! left.isLeaf()) && (! right.isLeaf())) { - Element[] removed; - Element[] added; - if (res[0] == null) + // Join two branch elements. This copies the children before + // the removal range on the left element, and after the removal + // range on the right element. The two elements on the edge + // are joined if possible and needed. + joined = createBranchElement(p, left.getAttributes()); + int ljIndex = left.getElementIndex(rmOffs0); + int rjIndex = right.getElementIndex(rmOffs1); + Element lj = left.getElement(ljIndex); + if (lj.getStartOffset() >= rmOffs0) + { + lj = null; + } + Element rj = right.getElement(rjIndex); + if (rj.getStartOffset() == rmOffs1) { - removed = new Element[0]; - added = new Element[] { res[1] }; - index++; + rj = null; + } + ArrayList children = new ArrayList(); + // Transfer the left. + for (int i = 0; i < ljIndex; i++) + { + children.add(clone(joined, left.getElement(i))); + } + + // Transfer the join/middle. + if (canJoin(lj, rj)) + { + Element e = join(joined, lj, rj, rmOffs0, rmOffs1); + children.add(e); } else { - removed = new Element[] { el }; - added = new Element[] { res[0], res[1] }; + if (lj != null) + { + children.add(cloneAsNecessary(joined, lj, rmOffs0, rmOffs1)); + } + if (rj != null) + { + children.add(cloneAsNecessary(joined, rj, rmOffs0, rmOffs1)); + } + } + + // Transfer the right. + int n = right.getElementCount(); + for (int i = (rj == null) ? rjIndex : rjIndex + 1; i < n; i++) + { + children.add(clone(joined, right.getElement(i))); } - edit.addRemovedElements(removed); - edit.addAddedElements(added); + // Install the children. + Element[] c = new Element[children.size()]; + c = (Element[]) children.toArray(c); + ((BranchElement) joined).replace(0, 0, c); + } + else + { + assert false : "Must not happen"; } + return joined; + } - int endOffset = offset + length; - el = getCharacterElement(endOffset); - res = split(el, endOffset, 0, el.getElementIndex(endOffset)); - par = (BranchElement) el.getParentElement(); - if (res[0] != null) + /** + * Performs the actual work for {@link #change}. The elements at the + * interval boundaries are split up (if necessary) so that the interval + * boundaries are located at element boundaries. + */ + protected void changeUpdate() + { + boolean didEnd = split(offset, length); + if (! didEnd) { - Element[] removed; - Element[] added; - if (res[1] == null) - { - removed = new Element[0]; - added = new Element[] { res[1] }; - } - else + // need to do the other end + while (elementStack.size() != 0) { - removed = new Element[] { el }; - added = new Element[] { res[0], res[1] }; + pop(); } - edit.addRemovedElements(removed); - edit.addAddedElements(added); + split(offset + length, 0); + } + while (elementStack.size() != 0) + { + pop(); } } @@ -633,13 +882,9 @@ public class DefaultStyledDocument extends AbstractDocument implements */ public void change(int offset, int length, DefaultDocumentEvent ev) { - if (length == 0) - return; - this.offset = offset; - this.pos = offset; - this.length = length; - documentEvent = ev; + prepareEdit(offset, length); changeUpdate(); + finishEdit(ev); } /** @@ -683,6 +928,39 @@ public class DefaultStyledDocument extends AbstractDocument implements return clone; } + private Element cloneAsNecessary(Element parent, Element clonee, + int rmOffs0, int rmOffs1) + { + Element cloned; + if (clonee.isLeaf()) + { + cloned = createLeafElement(parent, clonee.getAttributes(), + clonee.getStartOffset(), + clonee.getEndOffset()); + } + else + { + Element e = createBranchElement(parent, clonee.getAttributes()); + int n = clonee.getElementCount(); + ArrayList childrenList = new ArrayList(n); + for (int i = 0; i < n; i++) + { + Element elem = clonee.getElement(i); + if (elem.getStartOffset() < rmOffs0 + || elem.getEndOffset() > rmOffs1) + { + childrenList.add(cloneAsNecessary(e, elem, rmOffs0, + rmOffs1)); + } + } + Element[] children = new Element[childrenList.size()]; + children = (Element[]) childrenList.toArray(children); + ((BranchElement) e).replace(0, 0, children); + cloned = e; + } + return cloned; + } + /** * Inserts new Element in the document at the specified * position. Most of the work is done by {@link #insertUpdate}, after some @@ -701,70 +979,100 @@ public class DefaultStyledDocument extends AbstractDocument implements public void insert(int offset, int length, ElementSpec[] data, DefaultDocumentEvent ev) { - if (length == 0) - return; - + if (length > 0) + { + prepareEdit(offset, length); + insertUpdate(data); + finishEdit(ev); + } + } + + /** + * Prepares the state of this object for performing an insert. + * + * @param offset the offset at which is inserted + * @param length the length of the inserted region + */ + private void prepareEdit(int offset, int length) + { this.offset = offset; this.pos = offset; this.endOffset = offset + length; this.length = length; - documentEvent = ev; - - edits.removeAllElements(); - elementStack.removeAllElements(); - lastFractured = null; - fracNotCreated = false; - insertUpdate(data); + + if (edits == null) + edits = new ArrayList(); + else + edits.clear(); + + if (elementStack == null) + elementStack = new Stack(); + else + elementStack.clear(); + + fracturedParent = null; + fracturedChild = null; + offsetLastIndex = false; + offsetLastIndexReplace = false; + } + + /** + * Finishes an insert. This applies all changes and updates + * the DocumentEvent. + * + * @param ev the document event + */ + private void finishEdit(DefaultDocumentEvent ev) + { // This for loop applies all the changes that were made and updates the // DocumentEvent. - int size = edits.size(); - for (int i = 0; i < size; i++) - { - Edit curr = (Edit) edits.get(i); - BranchElement e = (BranchElement) curr.e; - Element[] removed = curr.getRemovedElements(); - Element[] added = curr.getAddedElements(); - // FIXME: We probably shouldn't create the empty Element[] in the - // first place. - if (removed.length > 0 || added.length > 0) - { - if (curr.index + removed.length <= e.getElementCount()) - { - e.replace(curr.index, removed.length, added); - ElementEdit ee = new ElementEdit(e, curr.index, removed, added); - ev.addEdit(ee); - } - else - { - System.err.println("WARNING: Tried to replace elements "); - System.err.print("beyond boundaries: elementCount: "); - System.err.println(e.getElementCount()); - System.err.print("index: " + curr.index); - System.err.println(", removed.length: " + removed.length); - } - } - } + for (Iterator i = edits.iterator(); i.hasNext();) + { + Edit edits = (Edit) i.next(); + Element[] removed = new Element[edits.removed.size()]; + removed = (Element[]) edits.removed.toArray(removed); + Element[] added = new Element[edits.added.size()]; + added = (Element[]) edits.added.toArray(added); + int index = edits.index; + BranchElement parent = (BranchElement) edits.e; + parent.replace(index, removed.length, added); + ElementEdit ee = new ElementEdit(parent, index, removed, added); + ev.addEdit(ee); + } + edits.clear(); + elementStack.clear(); } /** - * Inserts new content + * Inserts new content. * - * @param data - * the element specifications for the elements to be inserted + * @param data the element specifications for the elements to be inserted */ protected void insertUpdate(ElementSpec[] data) { - // Push the root and the paragraph at offset onto the element stack. + // Push the current path to the stack. Element current = root; - int index; - while (!current.isLeaf()) + int index = current.getElementIndex(offset); + while (! current.isLeaf()) { + Element child = current.getElement(index); + int editIndex = child.isLeaf() ? index : index + 1; + Edit edit = new Edit(current, editIndex); + elementStack.push(edit); + current = child; index = current.getElementIndex(offset); - elementStack.push(current); - current = current.getElement(index); } - + + // Create a copy of the original path. + insertPath = new Edit[elementStack.size()]; + insertPath = (Edit[]) elementStack.toArray(insertPath); + + // No fracture yet. + createdFracture = false; + + // Insert first content tag. int i = 0; + recreateLeafs = false; int type = data[0].getType(); if (type == ElementSpec.ContentType) { @@ -780,127 +1088,132 @@ public class DefaultStyledDocument extends AbstractDocument implements createFracture(data); i = 0; } - + // Handle each ElementSpec individually. for (; i < data.length; i++) { - BranchElement paragraph = (BranchElement) elementStack.peek(); - switch (data[i].getType()) - { - case ElementSpec.StartTagType: - switch (data[i].getDirection()) - { - case ElementSpec.JoinFractureDirection: - // Fracture the tree and ensure the appropriate element - // is on top of the stack. - fracNotCreated = false; - insertFracture(data[i]); - if (fracNotCreated) - { - if (lastFractured != null) - elementStack.push(lastFractured.getParentElement()); - else - elementStack.push(paragraph.getElement(0)); - } - break; - case ElementSpec.JoinNextDirection: - // Push the next paragraph element onto the stack so - // future insertions are added to it. - int ix = paragraph.getElementIndex(pos) + 1; - elementStack.push(paragraph.getElement(ix)); - break; - default: - Element br = null; - if (data.length > i + 1) - { - // leaves will be added to paragraph later - int x = 0; - if (paragraph.getElementCount() > 0) - x = paragraph.getElementIndex(pos) + 1; - Edit e = getEditForParagraphAndIndex(paragraph, x); - br = (BranchElement) createBranchElement(paragraph, - data[i].getAttributes()); - e.added.add(br); - elementStack.push(br); - } - else - // need to add leaves to paragraph now - br = insertParagraph(paragraph, pos); - break; - } - break; - case ElementSpec.EndTagType: - elementStack.pop(); - break; - case ElementSpec.ContentType: - insertContentTag(data[i]); - offset = pos; - break; - } + insertElement(data[i]); + } + + // Fracture if we haven't done yet. + if (! createdFracture) + fracture(-1); + + // Pop the remaining stack. + while (elementStack.size() != 0) + pop(); + + // Offset last index if necessary. + if (offsetLastIndex && offsetLastIndexReplace) + insertPath[insertPath.length - 1].index++; + + // Make sure we havea an Edit for each path item that has a change. + for (int p = insertPath.length - 1; p >= 0; p--) + { + Edit edit = insertPath[p]; + if (edit.e == fracturedParent) + edit.added.add(fracturedChild); + if ((edit.added.size() > 0 || edit.removed.size() > 0) + && ! edits.contains(edit)) + edits.add(edit); + } + + // Remove element that would be created by an insert at 0 with + // an initial end tag. + if (offset == 0 && fracturedParent != null + && data[0].getType() == ElementSpec.EndTagType) + { + int p; + for (p = 0; + p < data.length && data[p].getType() == ElementSpec.EndTagType; + p++); + Edit edit = insertPath[insertPath.length - p - 1]; + edit.index--; + edit.removed.add(0, edit.e.getElement(edit.index)); } } - - /** - * Inserts a new paragraph. - * - * @param par - - * the parent - * @param offset - - * the offset - * @return the new paragraph - */ - private Element insertParagraph(BranchElement par, int offset) + + private void pop() + { + Edit edit = (Edit) elementStack.peek(); + elementStack.pop(); + if ((edit.added.size() > 0) || (edit.removed.size() > 0)) + { + edits.add(edit); + } + else if (! elementStack.isEmpty()) + { + Element e = edit.e; + if (e.getElementCount() == 0) + { + // If we pushed a branch element that didn't get + // used, make sure its not marked as having been added. + edit = (Edit) elementStack.peek(); + edit.added.remove(e); + } + } + } + + private void insertElement(ElementSpec spec) { - int index = par.getElementIndex(offset); - Element current = par.getElement(index); - Element[] res = split(current, offset, 0, 0); - Edit e = getEditForParagraphAndIndex(par, index + 1); - Element ret; - if (res[1] != null) + Edit edit = (Edit) elementStack.peek(); + switch (spec.getType()) { - Element[] removed; - Element[] added; - if (res[0] == null) + case ElementSpec.StartTagType: + switch (spec.getDirection()) { - removed = new Element[0]; - if (res[1] instanceof BranchElement) + case ElementSpec.JoinFractureDirection: + // Fracture the tree and ensure the appropriate element + // is on top of the stack. + if (! createdFracture) { - added = new Element[] { res[1] }; - ret = res[1]; + fracture(elementStack.size() - 1); } - else + if (! edit.isFracture) { - ret = createBranchElement(par, null); - added = new Element[] { ret, res[1] }; + // If the parent isn't a fracture, then the fracture is + // in fracturedChild. + Edit newEdit = new Edit(fracturedChild, 0, true); + elementStack.push(newEdit); } - index++; - } - else - { - removed = new Element[] { current }; - if (res[1] instanceof BranchElement) + else { - ret = res[1]; - added = new Element[] { res[0], res[1] }; + // Otherwise use the parent's first child. + Element el = edit.e.getElement(0); + Edit newEdit = new Edit(el, 0, true); + elementStack.push(newEdit); } - else + break; + case ElementSpec.JoinNextDirection: + // Push the next paragraph element onto the stack so + // future insertions are added to it. + Element parent = edit.e.getElement(edit.index); + if (parent.isLeaf()) { - ret = createBranchElement(par, null); - added = new Element[] { res[0], ret, res[1] }; + if (edit.index + 1 < edit.e.getElementCount()) + parent = edit.e.getElement(edit.index + 1); + else + assert false; // Must not happen. } + elementStack.push(new Edit(parent, 0, true)); + break; + default: + Element branch = createBranchElement(edit.e, + spec.getAttributes()); + edit.added.add(branch); + elementStack.push(new Edit(branch, 0)); + break; } - - e.addAddedElements(added); - e.addRemovedElements(removed); - } - else - { - ret = createBranchElement(par, null); - e.addAddedElement(ret); + break; + case ElementSpec.EndTagType: + pop(); + break; + case ElementSpec.ContentType: + insertContentTag(spec, edit); + break; } - return ret; } - + /** * Inserts the first tag into the document. * @@ -910,67 +1223,71 @@ public class DefaultStyledDocument extends AbstractDocument implements private void insertFirstContentTag(ElementSpec[] data) { ElementSpec first = data[0]; - BranchElement paragraph = (BranchElement) elementStack.peek(); - int index = paragraph.getElementIndex(pos); - Element current = paragraph.getElement(index); - int newEndOffset = pos + first.length; + Edit edit = (Edit) elementStack.peek(); + Element current = edit.e.getElement(edit.index); + int firstEndOffset = offset + first.length; boolean onlyContent = data.length == 1; - Edit edit = getEditForParagraphAndIndex(paragraph, index); switch (first.getDirection()) { case ElementSpec.JoinPreviousDirection: - if (current.getEndOffset() != newEndOffset && !onlyContent) + if (current.getEndOffset() != firstEndOffset && ! onlyContent) { - Element newEl1 = createLeafElement(paragraph, + Element newEl1 = createLeafElement(edit.e, current.getAttributes(), current.getStartOffset(), - newEndOffset); - edit.addAddedElement(newEl1); - edit.addRemovedElement(current); - offset = newEndOffset; + firstEndOffset); + edit.added.add(newEl1); + edit.removed.add(current); + if (current.getEndOffset() != endOffset) + recreateLeafs = true; + else + offsetLastIndex = true; + } + else + { + offsetLastIndex = true; + offsetLastIndexReplace = true; } break; case ElementSpec.JoinNextDirection: - if (pos != 0) + if (offset != 0) { - Element newEl1 = createLeafElement(paragraph, + Element newEl1 = createLeafElement(edit.e, current.getAttributes(), current.getStartOffset(), - pos); - edit.addAddedElement(newEl1); - Element next = paragraph.getElement(index + 1); - + offset); + edit.added.add(newEl1); + Element next = edit.e.getElement(edit.index + 1); if (onlyContent) - newEl1 = createLeafElement(paragraph, next.getAttributes(), - pos, next.getEndOffset()); + newEl1 = createLeafElement(edit.e, next.getAttributes(), + offset, next.getEndOffset()); else { - newEl1 = createLeafElement(paragraph, next.getAttributes(), - pos, newEndOffset); - pos = newEndOffset; + newEl1 = createLeafElement(edit.e, next.getAttributes(), + offset, firstEndOffset); } - edit.addAddedElement(newEl1); - edit.addRemovedElement(current); - edit.addRemovedElement(next); + edit.added.add(newEl1); + edit.removed.add(current); + edit.removed.add(next); } break; - default: - if (current.getStartOffset() != pos) + default: // OriginateDirection. + if (current.getStartOffset() != offset) { - Element newEl = createLeafElement(paragraph, + Element newEl = createLeafElement(edit.e, current.getAttributes(), current.getStartOffset(), - pos); - edit.addAddedElement(newEl); + offset); + edit.added.add(newEl); } - edit.addRemovedElement(current); - Element newEl1 = createLeafElement(paragraph, first.getAttributes(), - pos, newEndOffset); - edit.addAddedElement(newEl1); + edit.removed.add(current); + Element newEl1 = createLeafElement(edit.e, first.getAttributes(), + offset, firstEndOffset); + edit.added.add(newEl1); if (current.getEndOffset() != endOffset) - recreateLeaves(newEndOffset, paragraph, onlyContent); + recreateLeafs = true; else - offset = newEndOffset; + offsetLastIndex = true; break; } } @@ -981,630 +1298,356 @@ public class DefaultStyledDocument extends AbstractDocument implements * @param tag - * the element spec */ - private void insertContentTag(ElementSpec tag) + private void insertContentTag(ElementSpec tag, Edit edit) { - BranchElement paragraph = (BranchElement) elementStack.peek(); int len = tag.getLength(); int dir = tag.getDirection(); - AttributeSet tagAtts = tag.getAttributes(); - if (dir == ElementSpec.JoinNextDirection) { - int index = paragraph.getElementIndex(pos); - Element target = paragraph.getElement(index); - Edit edit = getEditForParagraphAndIndex(paragraph, index); - - if (paragraph.getStartOffset() > pos) - { - Element first = paragraph.getElement(0); - Element newEl = createLeafElement(paragraph, - first.getAttributes(), pos, - first.getEndOffset()); - edit.addAddedElement(newEl); - edit.addRemovedElement(first); - } - else if (paragraph.getElementCount() > (index + 1) - && (pos == target.getStartOffset() && !target.equals(lastFractured))) + if (! edit.isFracture) { - Element next = paragraph.getElement(index + 1); - Element newEl = createLeafElement(paragraph, - next.getAttributes(), pos, - next.getEndOffset()); - edit.addAddedElement(newEl); - edit.addRemovedElement(next); - edit.addRemovedElement(target); + Element first = null; + if (insertPath != null) + { + for (int p = insertPath.length - 1; p >= 0; p--) + { + if (insertPath[p] == edit) + { + if (p != insertPath.length - 1) + first = edit.e.getElement(edit.index); + break; + } + } + } + if (first == null) + first = edit.e.getElement(edit.index + 1); + Element leaf = createLeafElement(edit.e, first.getAttributes(), + pos, first.getEndOffset()); + edit.added.add(leaf); + edit.removed.add(first); } else { - BranchElement parent = (BranchElement) paragraph.getParentElement(); - int i = parent.getElementIndex(pos); - BranchElement next = (BranchElement) parent.getElement(i + 1); - AttributeSet atts = tag.getAttributes(); - - if (next != null) - { - Element nextLeaf = next.getElement(0); - Edit e = getEditForParagraphAndIndex(next, 0); - Element newEl2 = createLeafElement(next, atts, pos, nextLeaf.getEndOffset()); - e.addAddedElement(newEl2); - e.addRemovedElement(nextLeaf); - } + Element first = edit.e.getElement(0); + Element leaf = createLeafElement(edit.e, first.getAttributes(), + pos, first.getEndOffset()); + edit.added.add(leaf); + edit.removed.add(first); } } else { - int end = pos + len; - Element leaf = createLeafElement(paragraph, tag.getAttributes(), pos, end); - - // Check for overlap with other leaves/branches - if (paragraph.getElementCount() > 0) - { - int index = paragraph.getElementIndex(pos); - Element target = paragraph.getElement(index); - boolean onlyContent = target.isLeaf(); - - BranchElement toRec = paragraph; - if (!onlyContent) - toRec = (BranchElement) target; - - // Check if we should place the leaf before or after target - if (pos > target.getStartOffset()) - index++; - - Edit edit = getEditForParagraphAndIndex(paragraph, index); - edit.addAddedElement(leaf); - } - else - paragraph.replace(0, 0, new Element[] { leaf }); + Element leaf = createLeafElement(edit.e, tag.getAttributes(), pos, + pos + len); + edit.added.add(leaf); } - + pos += len; + } /** - * This method fractures the child at offset. + * This method fractures bottomost leaf in the elementStack. This + * happens when the first inserted tag is not content. * * @param data * the ElementSpecs used for the entire insertion */ private void createFracture(ElementSpec[] data) { - BranchElement paragraph = (BranchElement) elementStack.peek(); - int index = paragraph.getElementIndex(offset); - Element child = paragraph.getElement(index); - Edit edit = getEditForParagraphAndIndex(paragraph, index); - AttributeSet atts = child.getAttributes(); - + Edit edit = (Edit) elementStack.peek(); + Element child = edit.e.getElement(edit.index); if (offset != 0) { - Element newEl1 = createLeafElement(paragraph, atts, - child.getStartOffset(), offset); - edit.addAddedElement(newEl1); - edit.addRemovedElement(child); - } - } - - /** - * Recreates a specified part of a the tree after a new leaf - * has been inserted. - * - * @param start - where to start recreating from - * @param paragraph - the paragraph to recreate - * @param onlyContent - true if this is the only content - */ - private void recreateLeaves(int start, BranchElement paragraph, boolean onlyContent) - { - int index = paragraph.getElementIndex(start); - Element child = paragraph.getElement(index); - AttributeSet atts = child.getAttributes(); - - if (!onlyContent) - { - BranchElement newBranch = (BranchElement) createBranchElement(paragraph, - atts); - Element newLeaf = createLeafElement(newBranch, atts, start, - child.getEndOffset()); - newBranch.replace(0, 0, new Element[] { newLeaf }); - - BranchElement parent = (BranchElement) paragraph.getParentElement(); - int parSize = parent.getElementCount(); - Edit edit = getEditForParagraphAndIndex(parent, parSize); - edit.addAddedElement(newBranch); - - int paragraphSize = paragraph.getElementCount(); - Element[] removed = new Element[paragraphSize - (index + 1)]; - int s = 0; - for (int j = index + 1; j < paragraphSize; j++) - removed[s++] = paragraph.getElement(j); - - edit = getEditForParagraphAndIndex(paragraph, index); - edit.addRemovedElements(removed); - Element[] added = recreateAfterFracture(removed, newBranch, 0, child.getEndOffset()); - newBranch.replace(1, 0, added); - - lastFractured = newLeaf; - pos = newBranch.getEndOffset(); + Element newChild = createLeafElement(edit.e, child.getAttributes(), + child.getStartOffset(), offset); + edit.added.add(newChild); } + edit.removed.add(child); + if (child.getEndOffset() != endOffset) + recreateLeafs = true; else - { - Element newLeaf = createLeafElement(paragraph, atts, start, - child.getEndOffset()); - Edit edit = getEditForParagraphAndIndex(paragraph, index); - edit.addAddedElement(newLeaf); - } + offsetLastIndex = true; } - - /** - * Splits an element if offset is not already at its - * boundary. - * - * @param el - * the Element to possibly split - * @param offset - * the offset at which to possibly split - * @param space - * the amount of space to create between the splitted parts - * @param editIndex - * the index of the edit to use - * @return An array of elements which represent the split result. This array - * has two elements, the two parts of the split. The first element - * might be null, which means that the element which should be - * splitted can remain in place. The second element might also be - * null, which means that the offset is already at an element - * boundary and the element doesn't need to be splitted. - */ - private Element[] split(Element el, int offset, int space, int editIndex) + + private void fracture(int depth) { - // If we are at an element boundary, then return an empty array. - if ((offset == el.getStartOffset() || offset == el.getEndOffset()) - && space == 0 && el.isLeaf()) - return new Element[2]; - - // If the element is an instance of BranchElement, then we - // recursivly - // call this method to perform the split. - Element[] res = new Element[2]; - if (el instanceof BranchElement) + int len = insertPath.length; + int lastIndex = -1; + boolean recreate = recreateLeafs; + Edit lastEdit = insertPath[len - 1]; + boolean childChanged = lastEdit.index + 1 < lastEdit.e.getElementCount(); + int deepestChangedIndex = recreate ? len : - 1; + int lastChangedIndex = len - 1; + createdFracture = true; + for (int i = len - 2; i >= 0; i--) { - int index = el.getElementIndex(offset); - Element child = el.getElement(index); - Element[] result = split(child, offset, space, editIndex); - Element[] removed; - Element[] added; - Element[] newAdded; - - int count = el.getElementCount(); - if (result[1] != null) + Edit edit = insertPath[i]; + if (edit.added.size() > 0 || i == depth) { - // This is the case when we can keep the first element. - if (result[0] == null) - { - removed = new Element[count - index - 1]; - newAdded = new Element[count - index - 1]; - added = new Element[] {}; - - } - // This is the case when we may not keep the first - // element. - else - { - removed = new Element[count - index]; - newAdded = new Element[count - index]; - added = new Element[] { result[0] }; - } - newAdded[0] = result[1]; - for (int i = index; i < count; i++) + lastIndex = i; + if (! recreate && childChanged) { - Element el2 = el.getElement(i); - int ind = i - count + removed.length; - removed[ind] = el2; - if (ind != 0) - newAdded[ind] = el2; + recreate = true; + if (deepestChangedIndex == -1) + deepestChangedIndex = lastChangedIndex + 1; } - - Edit edit = getEditForParagraphAndIndex((BranchElement) el, editIndex); - edit.addRemovedElements(removed); - edit.addAddedElements(added); - - BranchElement newPar = - (BranchElement) createBranchElement(el.getParentElement(), - el.getAttributes()); - newPar.replace(0, 0, newAdded); - res = new Element[] { null, newPar }; } - else + if (! childChanged && edit.index < edit.e.getElementCount()) { - removed = new Element[count - index]; - for (int i = index; i < count; ++i) - removed[i - index] = el.getElement(i); - - Edit edit = getEditForParagraphAndIndex((BranchElement) el, editIndex); - edit.addRemovedElements(removed); - - BranchElement newPar = (BranchElement) createBranchElement(el.getParentElement(), - el.getAttributes()); - newPar.replace(0, 0, removed); - res = new Element[] { null, newPar }; + childChanged = true; + lastChangedIndex = i; } } - else if (el instanceof LeafElement) + if (recreate) { - BranchElement par = (BranchElement) el.getParentElement(); - Element el1 = createLeafElement(par, el.getAttributes(), - el.getStartOffset(), offset); - - Element el2 = createLeafElement(par, el.getAttributes(), - offset + space, - el.getEndOffset()); - res = new Element[] { el1, el2 }; + if (lastIndex == -1) + lastIndex = len - 1; + recreate(lastIndex, deepestChangedIndex); } - return res; } - /** - * Inserts a fracture into the document structure. - * - * @param tag - - * the element spec. - */ - private void insertFracture(ElementSpec tag) + private void recreate(int startIndex, int endIndex) { - // insert the fracture at offset. - BranchElement parent = (BranchElement) elementStack.peek(); - int parentIndex = parent.getElementIndex(pos); - AttributeSet parentAtts = parent.getAttributes(); - Element toFracture = parent.getElement(parentIndex); - int parSize = parent.getElementCount(); - Edit edit = getEditForParagraphAndIndex(parent, parentIndex); - Element frac = toFracture; - int leftIns = 0; - int indexOfFrac = toFracture.getElementIndex(pos); - int size = toFracture.getElementCount(); - - // gets the leaf that falls along the fracture - frac = toFracture.getElement(indexOfFrac); - while (!frac.isLeaf()) - frac = frac.getElement(frac.getElementIndex(pos)); - - AttributeSet atts = frac.getAttributes(); - int fracStart = frac.getStartOffset(); - int fracEnd = frac.getEndOffset(); - if (pos >= fracStart && pos < fracEnd) + // Recreate the element representing the inserted index. + Edit edit = insertPath[startIndex]; + Element child; + Element newChild; + int changeLength = insertPath.length; + + if (startIndex + 1 == changeLength) + child = edit.e.getElement(edit.index); + else + child = edit.e.getElement(edit.index - 1); + + if(child.isLeaf()) + { + newChild = createLeafElement(edit.e, child.getAttributes(), + Math.max(endOffset, child.getStartOffset()), + child.getEndOffset()); + } + else { - // recreate left-side of branch and all its children before offset - // add the fractured leaves to the right branch - BranchElement rightBranch = - (BranchElement) createBranchElement(parent, parentAtts); - - // Check if left branch has already been edited. If so, we only - // need to create the right branch. - BranchElement leftBranch = null; - Element[] added = null; - if (edit.added.size() > 0 || edit.removed.size() > 0) + newChild = createBranchElement(edit.e, child.getAttributes()); + } + fracturedParent = edit.e; + fracturedChild = newChild; + + // Recreate all the elements to the right of the insertion point. + Element parent = newChild; + while (++startIndex < endIndex) + { + boolean isEnd = (startIndex + 1) == endIndex; + boolean isEndLeaf = (startIndex + 1) == changeLength; + + // Create the newChild, a duplicate of the elment at + // index. This isn't done if isEnd and offsetLastIndex are true + // indicating a join previous was done. + edit = insertPath[startIndex]; + + // Determine the child to duplicate, won't have to duplicate + // if at end of fracture, or offseting index. + if(isEnd) { - added = new Element[] { rightBranch }; - - // don't try to remove left part of tree - parentIndex++; + if(offsetLastIndex || ! isEndLeaf) + child = null; + else + child = edit.e.getElement(edit.index); } else { - leftBranch = - (BranchElement) createBranchElement(parent, parentAtts); - added = new Element[] { leftBranch, rightBranch }; - - // add fracture to leftBranch - if (fracStart != pos) - { - Element leftFracturedLeaf = - createLeafElement(leftBranch, atts, fracStart, pos); - leftBranch.replace(leftIns, 0, - new Element[] { leftFracturedLeaf }); - } + child = edit.e.getElement(edit.index - 1); } - if (!toFracture.isLeaf()) + // Duplicate it. + if(child != null) { - // add all non-fracture elements to the branches - if (indexOfFrac > 0 && leftBranch != null) + if(child.isLeaf()) { - Element[] add = new Element[indexOfFrac]; - for (int i = 0; i < indexOfFrac; i++) - add[i] = toFracture.getElement(i); - leftIns = add.length; - leftBranch.replace(0, 0, add); + newChild = createLeafElement(parent, child.getAttributes(), + Math.max(endOffset, child.getStartOffset()), + child.getEndOffset()); } - - int count = size - indexOfFrac - 1; - if (count > 0) + else { - Element[] add = new Element[count]; - int j = 0; - int i = indexOfFrac + 1; - while (j < count) - add[j++] = toFracture.getElement(i++); - rightBranch.replace(0, 0, add); + newChild = createBranchElement(parent, + child.getAttributes()); } } - - // add to fracture to rightBranch - // Check if we can join the right frac leaf with the next leaf - int rm = 0; - int end = fracEnd; - Element next = rightBranch.getElement(0); - if (next != null && next.isLeaf() - && next.getAttributes().isEqual(atts)) - { - end = next.getEndOffset(); - rm = 1; - } + else + newChild = null; - Element rightFracturedLeaf = createLeafElement(rightBranch, atts, - pos, end); - rightBranch.replace(0, rm, new Element[] { rightFracturedLeaf }); + // Recreate the remaining children (there may be none). + int childrenToMove = edit.e.getElementCount() - edit.index; + Element[] children; + int moveStartIndex; + int childStartIndex = 1; - // recreate those elements after parentIndex and add/remove all - // new/old elements to parent - int remove = parSize - parentIndex; - Element[] removed = new Element[0]; - Element[] added2 = new Element[0]; - if (remove > 0) - { - removed = new Element[remove]; - int s = 0; - for (int j = parentIndex; j < parSize; j++) - removed[s++] = parent.getElement(j); - edit.addRemovedElements(removed); - added2 = recreateAfterFracture(removed, parent, 1, - rightBranch.getEndOffset()); + if (newChild == null) + { + // Last part of fracture. + if (isEndLeaf) + { + childrenToMove--; + moveStartIndex = edit.index + 1; + } + else + { + moveStartIndex = edit.index; + } + childStartIndex = 0; + children = new Element[childrenToMove]; + } + else + { + if (! isEnd) + { + // Branch. + childrenToMove++; + moveStartIndex = edit.index; } - - edit.addAddedElements(added); - edit.addAddedElements(added2); - elementStack.push(rightBranch); - lastFractured = rightFracturedLeaf; + else + { + // Last leaf, need to recreate part of it. + moveStartIndex = edit.index + 1; + } + children = new Element[childrenToMove]; + children[0] = newChild; } - else - fracNotCreated = true; + + for (int c = childStartIndex; c < childrenToMove; c++) + { + Element toMove = edit.e.getElement(moveStartIndex++); + children[c] = recreateFracturedElement(parent, toMove); + edit.removed.add(toMove); + } + ((BranchElement) parent).replace(0, 0, children); + parent = newChild; + } + } - /** - * Recreates all the elements from the parent to the element on the top of - * the stack, starting from startFrom with the starting offset of - * startOffset. - * - * @param recreate - - * the elements to recreate - * @param parent - - * the element to add the new elements to - * @param startFrom - - * where to start recreating from - * @param startOffset - - * the offset of the first element - * @return the array of added elements - */ - private Element[] recreateAfterFracture(Element[] recreate, - BranchElement parent, int startFrom, - int startOffset) + private Element recreateFracturedElement(Element parent, Element toCopy) { - Element[] added = new Element[recreate.length - startFrom]; - int j = 0; - for (int i = startFrom; i < recreate.length; i++) + Element recreated; + if(toCopy.isLeaf()) { - Element curr = recreate[i]; - int len = curr.getEndOffset() - curr.getStartOffset(); - if (curr instanceof LeafElement) - added[j] = createLeafElement(parent, curr.getAttributes(), - startOffset, startOffset + len); - else + recreated = createLeafElement(parent, toCopy.getAttributes(), + Math.max(toCopy.getStartOffset(), endOffset), + toCopy.getEndOffset()); + } + else + { + Element newParent = createBranchElement(parent, + toCopy.getAttributes()); + int childCount = toCopy.getElementCount(); + Element[] newChildren = new Element[childCount]; + for (int i = 0; i < childCount; i++) { - BranchElement br = - (BranchElement) createBranchElement(parent, - curr.getAttributes()); - int bSize = curr.getElementCount(); - for (int k = 0; k < bSize; k++) - { - Element bCurr = curr.getElement(k); - Element[] add = recreateAfterFracture(new Element[] { bCurr }, br, 0, - startOffset); - br.replace(0, 0, add); - - } - added[j] = br; + newChildren[i] = recreateFracturedElement(newParent, + toCopy.getElement(i)); } - startOffset += len; - j++; + ((BranchElement) newParent).replace(0, 0, newChildren); + recreated = newParent; } - - return added; - } - } - - /** - * This method looks through the Vector of Edits to see if there is already an - * Edit object associated with the given paragraph. If there is, then we - * return it. Otherwise we create a new Edit object, add it to the vector, and - * return it. Note: this method is package private to avoid accessors. - * - * @param index - * the index associated with the Edit we want to create - * @param para - * the paragraph associated with the Edit we want - * @return the found or created Edit object - */ - Edit getEditForParagraphAndIndex(BranchElement para, int index) - { - Edit curr; - int size = edits.size(); - for (int i = 0; i < size; i++) - { - curr = (Edit) edits.elementAt(i); - if (curr.e.equals(para)) - return curr; - } - curr = new Edit(para, index, null, null); - edits.add(curr); - - return curr; - } - /** - * Instance of all editing information for an object in the Vector. This class - * is used to add information to the DocumentEvent associated with an - * insertion/removal/change as well as to store the changes that need to be - * made so they can be made all at the same (appropriate) time. - */ - class Edit - { - /** The element to edit . */ - Element e; - - /** The index of the change. */ - int index; - - /** The removed elements. */ - Vector removed = new Vector(); - - /** The added elements. */ - Vector added = new Vector(); - - /** - * Return an array containing the Elements that have been removed from the - * paragraph associated with this Edit. - * - * @return an array of removed Elements - */ - public Element[] getRemovedElements() - { - int size = removed.size(); - Element[] removedElements = new Element[size]; - for (int i = 0; i < size; i++) - removedElements[i] = (Element) removed.elementAt(i); - return removedElements; + return recreated; } - /** - * Return an array containing the Elements that have been added to the - * paragraph associated with this Edit. - * - * @return an array of added Elements - */ - public Element[] getAddedElements() + private boolean split(int offs, int len) { - int size = added.size(); - Element[] addedElements = new Element[size]; - for (int i = 0; i < size; i++) - addedElements[i] = (Element) added.elementAt(i); - return addedElements; - } - - /** - * Checks if e is already in the vector. - * - * @param e - the Element to look for - * @param v - the vector to search - * @return true if e is in v. - */ - private boolean contains(Vector v, Element e) - { - if (e == null) - return false; - - int i = v.size(); - for (int j = 0; j < i; j++) + boolean splitEnd = false; + // Push the path to the stack. + Element e = root; + int index = e.getElementIndex(offs); + while (! e.isLeaf()) { - Element e1 = (Element) v.get(j); - if ((e1 != null) && (e1.getAttributes().isEqual(e.getAttributes())) - && (e1.getName().equals(e.getName())) - && (e1.getStartOffset() == e.getStartOffset()) - && (e1.getEndOffset() == e.getEndOffset()) - && (e1.getParentElement().equals(e.getParentElement())) - && (e1.getElementCount() == e.getElementCount())) - return true; + elementStack.push(new Edit(e, index)); + e = e.getElement(index); + index = e.getElementIndex(offs); } - return false; - } - /** - * Adds one Element to the vector of removed Elements. - * - * @param e - * the Element to add - */ - public void addRemovedElement(Element e) - { - if (!contains(removed, e)) - removed.add(e); - } - - /** - * Adds each Element in the given array to the vector of removed Elements - * - * @param e - * the array containing the Elements to be added - */ - public void addRemovedElements(Element[] e) - { - if (e == null || e.length == 0) - return; - for (int i = 0; i < e.length; i++) + Edit ec = (Edit) elementStack.peek(); + Element child = ec.e.getElement(ec.index); + // Make sure there is something to do. If the + // offset is already at a boundary then there is + // nothing to do. + if (child.getStartOffset() < offs && offs < child.getEndOffset()) { - if (!contains(removed, e[i])) - removed.add(e[i]); - } - } + // We need to split, now see if the other end is within + // the same parent. + int index0 = ec.index; + int index1 = index0; + if (((offs + len) < ec.e.getEndOffset()) && (len != 0)) + { + // It's a range split in the same parent. + index1 = ec.e.getElementIndex(offs+len); + if (index1 == index0) + { + // It's a three-way split. + ec.removed.add(child); + e = createLeafElement(ec.e, child.getAttributes(), + child.getStartOffset(), offs); + ec.added.add(e); + e = createLeafElement(ec.e, child.getAttributes(), + offs, offs + len); + ec.added.add(e); + e = createLeafElement(ec.e, child.getAttributes(), + offs + len, child.getEndOffset()); + ec.added.add(e); + return true; + } + else + { + child = ec.e.getElement(index1); + if ((offs + len) == child.getStartOffset()) + { + // End is already on a boundary. + index1 = index0; + } + } + splitEnd = true; + } - /** - * Adds one Element to the vector of added Elements. - * - * @param e - * the Element to add - */ - public void addAddedElement(Element e) - { - if (!contains(added, e)) - added.add(e); - } + // Split the first location. + pos = offs; + child = ec.e.getElement(index0); + ec.removed.add(child); + e = createLeafElement(ec.e, child.getAttributes(), + child.getStartOffset(), pos); + ec.added.add(e); + e = createLeafElement(ec.e, child.getAttributes(), + pos, child.getEndOffset()); + ec.added.add(e); + + // Pick up things in the middle. + for (int i = index0 + 1; i < index1; i++) + { + child = ec.e.getElement(i); + ec.removed.add(child); + ec.added.add(child); + } - /** - * Adds each Element in the given array to the vector of added Elements. - * - * @param e - * the array containing the Elements to be added - */ - public void addAddedElements(Element[] e) - { - if (e == null || e.length == 0) - return; - for (int i = 0; i < e.length; i++) - { - if (!contains(added, e[i])) - added.add(e[i]); + if (index1 != index0) + { + child = ec.e.getElement(index1); + pos = offs + len; + ec.removed.add(child); + e = createLeafElement(ec.e, child.getAttributes(), + child.getStartOffset(), pos); + ec.added.add(e); + e = createLeafElement(ec.e, child.getAttributes(), + pos, child.getEndOffset()); + + ec.added.add(e); + } } + return splitEnd; + } - /** - * Creates a new Edit object with the given parameters - * - * @param e - * the paragraph Element associated with this Edit - * @param i - * the index within the paragraph where changes are started - * @param removed - * an array containing Elements that should be removed from the - * paragraph Element - * @param added - * an array containing Elements that should be added to the - * paragraph Element - */ - public Edit(Element e, int i, Element[] removed, Element[] added) - { - this.e = e; - this.index = i; - addRemovedElements(removed); - addAddedElements(added); - } } + /** * An element type for sections. This is a simple BranchElement with a unique * name. @@ -1674,11 +1717,6 @@ public class DefaultStyledDocument extends AbstractDocument implements private StyleChangeListener styleChangeListener; /** - * Vector that contains all the edits. Maybe replace by a HashMap. - */ - Vector edits = new Vector(); - - /** * Creates a new DefaultStyledDocument. */ public DefaultStyledDocument() @@ -1939,7 +1977,6 @@ public class DefaultStyledDocument extends AbstractDocument implements // start and ends at an element end. buffer.change(offset, length, ev); - Element root = getDefaultRootElement(); // Visit all paragraph elements within the specified interval int end = offset + length; Element curr; @@ -2079,147 +2116,220 @@ public class DefaultStyledDocument extends AbstractDocument implements */ protected void insertUpdate(DefaultDocumentEvent ev, AttributeSet attr) { - super.insertUpdate(ev, attr); - // If the attribute set is null, use an empty attribute set. + int offs = ev.getOffset(); + int len = ev.getLength(); + int endOffs = offs + len; if (attr == null) attr = SimpleAttributeSet.EMPTY; - int offset = ev.getOffset(); - int length = ev.getLength(); - int endOffset = offset + length; - AttributeSet paragraphAttributes = getParagraphElement(endOffset).getAttributes(); - Segment txt = new Segment(); + + // Paragraph attributes are fetched from the point _after_ the insertion. + Element paragraph = getParagraphElement(endOffs); + AttributeSet pAttr = paragraph.getAttributes(); + // Character attributes are fetched from the actual insertion point. + Element paragraph2 = getParagraphElement(offs); + int contIndex = paragraph2.getElementIndex(offs); + Element content = paragraph2.getElement(contIndex); + AttributeSet cAttr = content.getAttributes(); + + boolean insertAtBoundary = content.getEndOffset() == endOffs; try { - getText(offset, length, txt); - } - catch (BadLocationException ex) - { - AssertionError ae = new AssertionError("Unexpected bad location"); - ae.initCause(ex); - throw ae; - } + Segment s = new Segment(); + ArrayList buf = new ArrayList(); + ElementSpec lastStartTag = null; + boolean insertAfterNewline = false; + short lastStartDir = ElementSpec.OriginateDirection; + + // Special handle if we are inserting after a newline. + if (offs > 0) + { + getText(offs - 1, 1, s); + if (s.array[s.offset] == '\n') + { + insertAfterNewline = true; + lastStartDir = insertAfterNewline(paragraph, paragraph2, + pAttr, buf, offs, + endOffs); + // Search last start tag. + for (int i = buf.size() - 1; i >= 0 && lastStartTag == null; + i--) + { + ElementSpec tag = (ElementSpec) buf.get(i); + if (tag.getType() == ElementSpec.StartTagType) + { + lastStartTag = tag; + } + } + } - int len = 0; - Vector specs = new Vector(); - ElementSpec finalStartTag = null; - short finalStartDirection = ElementSpec.OriginateDirection; - boolean prevCharWasNewline = false; - Element prev = getCharacterElement(offset); - Element next = getCharacterElement(endOffset); - Element prevParagraph = getParagraphElement(offset); - Element paragraph = getParagraphElement(endOffset); + } - int segmentEnd = txt.offset + txt.count; + // If we are not inserting after a newline, the paragraph attributes + // come from the paragraph under the insertion point. + if (! insertAfterNewline) + pAttr = paragraph2.getAttributes(); - // Check to see if we're inserting immediately after a newline. - if (offset > 0) - { - try + // Scan text and build up the specs. + getText(offs, len, s); + int end = s.offset + s.count; + int last = s.offset; + for (int i = s.offset; i < end; i++) { - String s = getText(offset - 1, 1); - if (s.equals("\n")) + if (s.array[i] == '\n') { - finalStartDirection = handleInsertAfterNewline(specs, offset, - endOffset, - prevParagraph, - paragraph, - paragraphAttributes); - - prevCharWasNewline = true; - // Find the final start tag from the ones just created. - for (int i = 0; i < specs.size(); i++) - if (((ElementSpec) specs.get(i)).getType() == ElementSpec.StartTagType) - finalStartTag = (ElementSpec) specs.get(i); + int breakOffs = i + 1; + buf.add(new ElementSpec(attr, ElementSpec.ContentType, + breakOffs - last)); + buf.add(new ElementSpec(null, ElementSpec.EndTagType)); + lastStartTag = new ElementSpec(pAttr, + ElementSpec.StartTagType); + buf.add(lastStartTag); + last = breakOffs; } } - catch (BadLocationException ble) + + // Need to add a tailing content tag if we didn't finish at a boundary. + if (last < end) { - // This shouldn't happen. - AssertionError ae = new AssertionError(); - ae.initCause(ble); - throw ae; + buf.add(new ElementSpec(attr, ElementSpec.ContentType, + end - last)); } - } - for (int i = txt.offset; i < segmentEnd; ++i) - { - len++; - if (txt.array[i] == '\n') + // Now we need to fix up the directions of the specs. + ElementSpec first = (ElementSpec) buf.get(0); + int doclen = getLength(); + + // Maybe join-previous the first tag if it is content and has + // the same attributes as the previous character run. + if (first.getType() == ElementSpec.ContentType && cAttr.isEqual(attr)) + first.setDirection(ElementSpec.JoinPreviousDirection); + + // Join-fracture or join-next the last start tag if necessary. + if (lastStartTag != null) + { + if (insertAfterNewline) + lastStartTag.setDirection(lastStartDir); + else if (paragraph2.getEndOffset() != endOffs) + lastStartTag.setDirection(ElementSpec.JoinFractureDirection); + else + { + Element par = paragraph2.getParentElement(); + int par2Index = par.getElementIndex(offs); + if (par2Index + 1 < par.getElementCount() + && ! par.getElement(par2Index + 1).isLeaf()) + lastStartTag.setDirection(ElementSpec.JoinNextDirection); + } + } + + // Join-next last tag if possible. + if (insertAtBoundary && endOffs < doclen) { - // Add the ElementSpec for the content. - specs.add(new ElementSpec(attr, ElementSpec.ContentType, len)); - - // Add ElementSpecs for the newline. - specs.add(new ElementSpec(null, ElementSpec.EndTagType)); - finalStartTag = new ElementSpec(paragraphAttributes, - ElementSpec.StartTagType); - specs.add(finalStartTag); - len = 0; + ElementSpec lastTag = (ElementSpec) buf.get(buf.size() - 1); + if (lastTag.getType() == ElementSpec.ContentType + && ((lastStartTag == null + && (paragraph == paragraph2 || insertAfterNewline)) + || (lastStartTag != null + && lastStartTag.getDirection() != ElementSpec.OriginateDirection))) + { + int nextIndex = paragraph.getElementIndex(endOffs); + Element nextRun = paragraph.getElement(nextIndex); + if (nextRun.isLeaf() && attr.isEqual(nextRun.getAttributes())) + lastTag.setDirection(ElementSpec.JoinNextDirection); + } + } + + else if (! insertAtBoundary && lastStartTag != null + && lastStartTag.getDirection() == ElementSpec.JoinFractureDirection) + { + ElementSpec lastTag = (ElementSpec) buf.get(buf.size() - 1); + if (lastTag.getType() == ElementSpec.ContentType + && lastTag.getDirection() != ElementSpec.JoinPreviousDirection + && attr.isEqual(cAttr)) + { + lastTag.setDirection(ElementSpec.JoinNextDirection); + } } - } - // Create last element if last character hasn't been a newline. - if (len > 0) - specs.add(new ElementSpec(attr, ElementSpec.ContentType, len)); + ElementSpec[] specs = new ElementSpec[buf.size()]; + specs = (ElementSpec[]) buf.toArray(specs); + buffer.insert(offs, len, specs, ev); + } + catch (BadLocationException ex) + { + // Ignore this. Comment out for debugging. + ex.printStackTrace(); + } + super.insertUpdate(ev, attr); + } - // Set the direction of the last spec of type StartTagType. - // If we are inserting after a newline then this value comes from - // handleInsertAfterNewline. - if (finalStartTag != null) + private short insertAfterNewline(Element par1, Element par2, + AttributeSet attr, ArrayList buf, + int offs, int endOffs) + { + short dir = 0; + if (par1.getParentElement() == par2.getParentElement()) { - if (prevCharWasNewline) - finalStartTag.setDirection(finalStartDirection); - else if (prevParagraph.getEndOffset() != endOffset) - finalStartTag.setDirection(ElementSpec.JoinFractureDirection); + ElementSpec tag = new ElementSpec(attr, ElementSpec.EndTagType); + buf.add(tag); + tag = new ElementSpec(attr, ElementSpec.StartTagType); + buf.add(tag); + if (par2.getEndOffset() != endOffs) + dir = ElementSpec.JoinFractureDirection; else { - // If there is an element AFTER this one, then set the - // direction to JoinNextDirection. - Element parent = prevParagraph.getParentElement(); - int index = parent.getElementIndex(offset); - if (index + 1 < parent.getElementCount() - && !parent.getElement(index + 1).isLeaf()) - finalStartTag.setDirection(ElementSpec.JoinNextDirection); + Element par = par2.getParentElement(); + if (par.getElementIndex(offs) + 1 < par.getElementCount()) + dir = ElementSpec.JoinNextDirection; } } - - // If we are at the last index, then check if we could probably be - // joined with the next element. - // This means: - // - we must be a ContentTag - // - if there is a next Element, we must have the same attributes - // - if there is no next Element, but one will be created, - // we must have the same attributes as the higher-level run. - ElementSpec last = (ElementSpec) specs.lastElement(); - if (last.getType() == ElementSpec.ContentType) + else { - Element currentRun = prevParagraph.getElement(prevParagraph.getElementIndex(offset)); - if (currentRun.getEndOffset() == endOffset) + // For text with more than 2 levels, find the common parent of + // par1 and par2. + ArrayList parentsLeft = new ArrayList(); + ArrayList parentsRight = new ArrayList(); + Element e = par2; + while (e != null) { - if (endOffset < getLength() && next.getAttributes().isEqual(attr) - && last.getType() == ElementSpec.ContentType) - last.setDirection(ElementSpec.JoinNextDirection); + parentsLeft.add(e); + e = e.getParentElement(); } - else + e = par1; + int leftIndex = -1; + while (e != null && (leftIndex = parentsLeft.indexOf(e)) == 1) { - if (finalStartTag != null - && finalStartTag.getDirection() == ElementSpec.JoinFractureDirection - && currentRun.getAttributes().isEqual(attr)) + parentsRight.add(e); + e = e.getParentElement(); + } + + if (e != null) + + { + // e is now the common parent. + // Insert the end tags. + for (int c = 0; c < leftIndex; c++) + { + buf.add(new ElementSpec(null, ElementSpec.EndTagType)); + } + // Insert the start tags. + for (int c = parentsRight.size() - 1; c >= 0; c--) { - last.setDirection(ElementSpec.JoinNextDirection); + Element el = (Element) parentsRight.get(c); + ElementSpec tag = new ElementSpec(el.getAttributes(), + ElementSpec.StartTagType); + if (c > 0) + tag.setDirection(ElementSpec.JoinNextDirection); + buf.add(tag); } + if (parentsRight.size() > 0) + dir = ElementSpec.JoinNextDirection; + else + dir = ElementSpec.JoinFractureDirection; } + else + assert false; } - - // If we are at the first new element, then check if it could be - // joined with the previous element. - ElementSpec first = (ElementSpec) specs.firstElement(); - if (prev.getAttributes().isEqual(attr) - && first.getType() == ElementSpec.ContentType) - first.setDirection(ElementSpec.JoinPreviousDirection); - - ElementSpec[] elSpecs = (ElementSpec[]) specs.toArray(new ElementSpec[specs.size()]); - buffer.insert(offset, length, elSpecs, ev); + return dir; } /** @@ -2267,7 +2377,7 @@ public class DefaultStyledDocument extends AbstractDocument implements * * @return an enumeration of all style names */ - public Enumeration getStyleNames() + public Enumeration getStyleNames() { StyleContext context = (StyleContext) getAttributeContext(); return context.getStyleNames(); @@ -2322,18 +2432,24 @@ public class DefaultStyledDocument extends AbstractDocument implements if (length == 0) return; - UndoableEdit edit = content.insertString(offset, - contentBuffer.toString()); + Content c = getContent(); + UndoableEdit edit = c.insertString(offset, + contentBuffer.toString()); // Create the DocumentEvent with the ElementEdit added DefaultDocumentEvent ev = new DefaultDocumentEvent(offset, length, DocumentEvent.EventType.INSERT); + ev.addEdit(edit); // Finally we must update the document structure and fire the insert // update event. buffer.insert(offset, length, data, ev); + + super.insertUpdate(ev, null); + + ev.end(); fireInsertUpdate(ev); fireUndoableEditUpdate(new UndoableEditEvent(this, ev)); } @@ -2353,14 +2469,16 @@ public class DefaultStyledDocument extends AbstractDocument implements */ protected void create(ElementSpec[] data) { - writeLock(); try { + // Clear content if there is some. int len = getLength(); if (len > 0) remove(0, len); + writeLock(); + // Now we insert the content. StringBuilder b = new StringBuilder(); for (int i = 0; i < data.length; ++i) @@ -2372,38 +2490,18 @@ public class DefaultStyledDocument extends AbstractDocument implements Content content = getContent(); UndoableEdit cEdit = content.insertString(0, b.toString()); + len = b.length(); DefaultDocumentEvent ev = new DefaultDocumentEvent(0, b.length(), DocumentEvent.EventType.INSERT); ev.addEdit(cEdit); - // We do a little trick here to get the new structure: We instantiate - // a new ElementBuffer with a new root element, insert into that root - // and then reparent the newly created elements to the old root - // element. - BranchElement createRoot = - (BranchElement) createBranchElement(null, null); - Element dummyLeaf = createLeafElement(createRoot, null, 0, 1); - createRoot.replace(0, 0, new Element[]{ dummyLeaf }); - ElementBuffer createBuffer = new ElementBuffer(createRoot); - createBuffer.insert(0, b.length(), data, new DefaultDocumentEvent(0, b.length(), DocumentEvent.EventType.INSERT)); - // Now the new root is the first child of the createRoot. - Element newRoot = createRoot.getElement(0); - BranchElement root = (BranchElement) getDefaultRootElement(); - Element[] added = new Element[newRoot.getElementCount()]; - for (int i = 0; i < added.length; ++i) - { - added[i] = newRoot.getElement(i); - ((AbstractElement) added[i]).element_parent = root; - } - Element[] removed = new Element[root.getElementCount()]; - for (int i = 0; i < removed.length; ++i) - removed[i] = root.getElement(i); + buffer.create(len, data, ev); - // Replace the old elements in root with the new and update the event. - root.replace(0, removed.length, added); - ev.addEdit(new ElementEdit(root, 0, removed, added)); + // For the bidi update. + super.insertUpdate(ev, null); + ev.end(); fireInsertUpdate(ev); fireUndoableEditUpdate(new UndoableEditEvent(this, ev)); } diff --git a/libjava/classpath/javax/swing/text/ElementIterator.java b/libjava/classpath/javax/swing/text/ElementIterator.java index a6a5ff618bd..112d55e96d0 100644 --- a/libjava/classpath/javax/swing/text/ElementIterator.java +++ b/libjava/classpath/javax/swing/text/ElementIterator.java @@ -37,6 +37,8 @@ exception statement from your version. */ package javax.swing.text; +import java.util.Stack; + /** * This class can be used to iterate over the {@link Element} tree of * a {@link Document} or an {@link Element}. This iterator performs @@ -46,20 +48,41 @@ package javax.swing.text; */ public class ElementIterator implements Cloneable { + /** + * Uses to track the iteration on the stack. + */ + private class ElementRef + { + /** + * The element. + */ + Element element; + + /** + * The child index. -1 means the element itself. >= 0 values mean the + * n-th child of the element. + */ + int index; + + /** + * Creates a new ElementRef. + * + * @param el the element + */ + ElementRef(Element el) + { + element = el; + index = -1; + } + } + // The root element. private Element root; - // The current element. - private Element currentElement; - // The depth to which we have descended in the tree. - private int currentDepth; - - // This is at least as big as the current depth, and at index N - // contains the index of the child element we're currently - // examining. - private int[] state; - // The previous item. - private Element previousItem; + /** + * Holds ElementRefs. + */ + private Stack stack; /** * Create a new ElementIterator to iterate over the given document. @@ -67,9 +90,7 @@ public class ElementIterator implements Cloneable */ public ElementIterator(Document document) { - this.root = document.getDefaultRootElement(); - this.currentElement = root; - this.state = new int[5]; + root = document.getDefaultRootElement(); } /** @@ -79,8 +100,6 @@ public class ElementIterator implements Cloneable public ElementIterator(Element root) { this.root = root; - this.currentElement = root; - this.state = new int[5]; } /** @@ -105,7 +124,24 @@ public class ElementIterator implements Cloneable */ public Element current() { - return currentElement; + Element current; + if (stack == null) + current = first(); + else + { + current = null; + if (! stack.isEmpty()) + { + ElementRef ref = (ElementRef) stack.peek(); + Element el = ref.element; + int index = ref.index; + if (index == -1) + current = el; + else + current = el.getElement(index); + } + } + return current; } /** @@ -113,7 +149,10 @@ public class ElementIterator implements Cloneable */ public int depth() { - return currentDepth; + int depth = 0; + if (stack != null) + depth = stack.size(); + return depth; } /** @@ -121,11 +160,15 @@ public class ElementIterator implements Cloneable */ public Element first() { - // Reset the iterator. - currentElement = root; - currentDepth = 0; - previousItem = null; - return root; + Element first = null; + if (root != null) + { + stack = new Stack(); + if (root.getElementCount() > 0) + stack.push(new ElementRef(root)); + first = root; + } + return first; } /** @@ -134,48 +177,96 @@ public class ElementIterator implements Cloneable */ public Element next() { - previousItem = currentElement; - if (currentElement == null) - return null; - if (! currentElement.isLeaf()) + Element next; + if (stack == null) + next = first(); + else { - ++currentDepth; - if (currentDepth > state.length) - { - int[] newState = new int[state.length * 2]; - System.arraycopy(state, 0, newState, 0, state.length); - state = newState; - } - state[currentDepth] = 0; - currentElement = currentElement.getElement(0); - return currentElement; + next = null; + if (! stack.isEmpty()) + { + ElementRef ref = (ElementRef) stack.peek(); + Element el = ref.element; + int index = ref.index; + if (el.getElementCount() > index + 1) + { + Element child = el.getElement(index + 1); + if (child.isLeaf()) + ref.index++; + else + stack.push(new ElementRef(child)); + next = child; + next = child; + } + else + { + stack.pop(); + if (! stack.isEmpty()) + { + ElementRef top = (ElementRef) stack.peek(); + top.index++; + next = next(); + } + } + } + // else return null. } + return next; + } - while (currentDepth > 0) + /** + * Returns the previous item. Does not modify the iterator state. + */ + public Element previous() + { + Element previous = null; + int stackSize; + if (stack != null && (stackSize = stack.size()) > 0) { - // At a leaf, or done with a non-leaf's children, so go up a - // level. - --currentDepth; - currentElement = currentElement.getParentElement(); - ++state[currentDepth]; - if (state[currentDepth] < currentElement.getElementCount()) - { - currentElement = currentElement.getElement(state[currentDepth]); - return currentElement; - } + ElementRef ref = (ElementRef) stack.peek(); + Element el = ref.element; + int index = ref.index; + if (index > 0) + { + previous = deepestLeaf(el.getElement(--index)); + } + else if (index == 0) + { + previous = el; + } + else if (index == -1) + { + ElementRef top = (ElementRef) stack.pop(); + ElementRef item = (ElementRef) stack.peek(); + stack.push(top); + index = item.index; + el = item.element; + previous = index == -1 ? el : deepestLeaf(el.getElement(index)); + } } - - currentElement = null; - return currentElement; + return previous; } /** - * Returns the previous item. Does not modify the iterator state. + * Determines and returns the deepest leaf of the element el. + * + * @param el the base element + * + * @returnthe deepest leaf of the element el */ - public Element previous() + private Element deepestLeaf(Element el) { - if (currentElement == null || currentElement == root) - return null; - return previousItem; + Element leaf; + if (el.isLeaf()) + leaf = el; + else + { + int count = el.getElementCount(); + if (count == 0) + leaf = el; + else + leaf = deepestLeaf(el.getElement(count - 1)); + } + return leaf; } } diff --git a/libjava/classpath/javax/swing/text/FieldView.java b/libjava/classpath/javax/swing/text/FieldView.java index f41f9013092..0a078e53dca 100644 --- a/libjava/classpath/javax/swing/text/FieldView.java +++ b/libjava/classpath/javax/swing/text/FieldView.java @@ -45,8 +45,6 @@ import java.awt.Graphics; import java.awt.Insets; import java.awt.Rectangle; import java.awt.Shape; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import javax.swing.BoundedRangeModel; import javax.swing.JTextField; @@ -225,7 +223,7 @@ public class FieldView extends PlainView public int getResizeWeight(int axis) { - return axis = axis == X_AXIS ? 1 : 0; + return axis == X_AXIS ? 1 : 0; } public Shape modelToView(int pos, Shape a, Position.Bias bias) diff --git a/libjava/classpath/javax/swing/text/FlowView.java b/libjava/classpath/javax/swing/text/FlowView.java index 3de95ed7f8d..c2bed399f3a 100644 --- a/libjava/classpath/javax/swing/text/FlowView.java +++ b/libjava/classpath/javax/swing/text/FlowView.java @@ -38,6 +38,8 @@ exception statement from your version. */ package javax.swing.text; +import java.awt.Component; +import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; @@ -85,7 +87,17 @@ public abstract class FlowView extends BoxView */ public void insertUpdate(FlowView fv, DocumentEvent e, Rectangle alloc) { - // The default implementation does nothing. + if (alloc == null) + { + fv.layoutChanged(X_AXIS); + fv.layoutChanged(Y_AXIS); + } + else + { + Component host = fv.getContainer(); + if (host != null) + host.repaint(alloc.x, alloc.y, alloc.width, alloc.height); + } } /** @@ -101,7 +113,17 @@ public abstract class FlowView extends BoxView */ public void removeUpdate(FlowView fv, DocumentEvent e, Rectangle alloc) { - // The default implementation does nothing. + if (alloc == null) + { + fv.layoutChanged(X_AXIS); + fv.layoutChanged(Y_AXIS); + } + else + { + Component host = fv.getContainer(); + if (host != null) + host.repaint(alloc.x, alloc.y, alloc.width, alloc.height); + } } /** @@ -117,7 +139,17 @@ public abstract class FlowView extends BoxView */ public void changedUpdate(FlowView fv, DocumentEvent e, Rectangle alloc) { - // The default implementation does nothing. + if (alloc == null) + { + fv.layoutChanged(X_AXIS); + fv.layoutChanged(Y_AXIS); + } + else + { + Component host = fv.getContainer(); + if (host != null) + host.repaint(alloc.x, alloc.y, alloc.width, alloc.height); + } } /** @@ -143,18 +175,35 @@ public abstract class FlowView extends BoxView */ public void layout(FlowView fv) { + int start = fv.getStartOffset(); + int end = fv.getEndOffset(); + + // Preserve the views from the logical view from beeing removed. + View lv = getLogicalView(fv); + int viewCount = lv.getViewCount(); + for (int i = 0; i < viewCount; i++) + { + View v = lv.getView(i); + v.setParent(lv); + } + + // Then remove all views from the flow view. fv.removeAll(); - Element el = fv.getElement(); - int rowStart = el.getStartOffset(); - int end = el.getEndOffset(); - int rowIndex = 0; - while (rowStart >= 0 && rowStart < end) + for (int rowIndex = 0; start < end; rowIndex++) { View row = fv.createRow(); fv.append(row); - rowStart = layoutRow(fv, rowIndex, rowStart); - rowIndex++; + int next = layoutRow(fv, rowIndex, start); + if (row.getViewCount() == 0) + { + row.append(createView(fv, start, Integer.MAX_VALUE, rowIndex)); + next = row.getEndOffset(); + } + if (start < next) + start = next; + else + assert false: "May not happen"; } } @@ -179,46 +228,69 @@ public abstract class FlowView extends BoxView int axis = fv.getFlowAxis(); int span = fv.getFlowSpan(rowIndex); int x = fv.getFlowStart(rowIndex); - int offset = pos; - View logicalView = getLogicalView(fv); - // Special case when span == 0. We need to layout the row as if it had - // a span of Integer.MAX_VALUE. - if (span == 0) - span = Integer.MAX_VALUE; - - Row: while (span > 0) + int end = fv.getEndOffset(); + + // Needed for adjusting indentation in adjustRow(). + int preX = x; + int availableSpan = span; + + TabExpander tabExp = fv instanceof TabExpander ? (TabExpander) fv : null; + + boolean forcedBreak = false; + while (pos < end && span >= 0) { - if (logicalView.getViewIndex(offset, Position.Bias.Forward) == - 1) - break; - View view = createView(fv, offset, span, rowIndex); - if (view == null) + View view = createView(fv, pos, span, rowIndex); + if (view == null + || (span == 0 && view.getPreferredSpan(axis) > 0)) break; - int viewSpan = (int) view.getPreferredSpan(axis); - int breakWeight = view.getBreakWeight(axis, x, span); - - row.append(view); - offset += (view.getEndOffset() - view.getStartOffset()); - x += viewSpan; - span -= viewSpan; + int viewSpan; + if (axis == X_AXIS && view instanceof TabableView) + viewSpan = (int) ((TabableView) view).getTabbedSpan(x, tabExp); + else + viewSpan = (int) view.getPreferredSpan(axis); // Break if the line if the view does not fit in this row or the // line just must be broken. - if (span < 0 || breakWeight >= View.ForcedBreakWeight) + int breakWeight = view.getBreakWeight(axis, pos, span); + if (breakWeight >= ForcedBreakWeight) { - int flowStart = fv.getFlowStart(axis); - int flowSpan = fv.getFlowSpan(axis); - adjustRow(fv, rowIndex, flowSpan, flowStart); int rowViewCount = row.getViewCount(); if (rowViewCount > 0) - offset = row.getView(rowViewCount - 1).getEndOffset(); - else - offset = - 1; - break Row; + { + view = view.breakView(axis, pos, x, span); + if (view != null) + { + if (axis == X_AXIS && view instanceof TabableView) + viewSpan = + (int) ((TabableView) view).getTabbedSpan(x, tabExp); + else + viewSpan = (int) view.getPreferredSpan(axis); + } + else + viewSpan = 0; + } + forcedBreak = true; + } + span -= viewSpan; + x += viewSpan; + if (view != null) + { + row.append(view); + pos = view.getEndOffset(); } + if (forcedBreak) + break; } - return offset != pos ? offset : - 1; + if (span < 0) + adjustRow(fv, rowIndex, availableSpan, preX); + else if (row.getViewCount() == 0) + { + View view = createView(fv, pos, Integer.MAX_VALUE, rowIndex); + row.append(view); + } + return row.getEndOffset(); } /** @@ -246,15 +318,11 @@ public abstract class FlowView extends BoxView int rowIndex) { View logicalView = getLogicalView(fv); - // FIXME: Handle the bias thing correctly. - int index = logicalView.getViewIndex(startOffset, Position.Bias.Forward); - View retVal = null; - if (index >= 0) - { - retVal = logicalView.getView(index); - if (retVal.getStartOffset() != startOffset) - retVal = retVal.createFragment(startOffset, retVal.getEndOffset()); - } + int index = logicalView.getViewIndex(startOffset, + Position.Bias.Forward); + View retVal = logicalView.getView(index); + if (retVal.getStartOffset() != startOffset) + retVal = retVal.createFragment(startOffset, retVal.getEndOffset()); return retVal; } @@ -279,37 +347,82 @@ public abstract class FlowView extends BoxView View row = fv.getView(rowIndex); int count = row.getViewCount(); int breakIndex = -1; - int maxBreakWeight = View.BadBreakWeight; - int breakX = x; - int breakSpan = desiredSpan; - int currentX = x; - int currentSpan = desiredSpan; + int breakWeight = BadBreakWeight; + int breakSpan = 0; + int currentSpan = 0; for (int i = 0; i < count; ++i) { View view = row.getView(i); - int weight = view.getBreakWeight(axis, currentX, currentSpan); - if (weight >= maxBreakWeight) + int spanLeft = desiredSpan - currentSpan; + int weight = view.getBreakWeight(axis, x + currentSpan, spanLeft); + if (weight >= breakWeight && weight > BadBreakWeight) { breakIndex = i; - breakX = currentX; breakSpan = currentSpan; - maxBreakWeight = weight; + breakWeight = weight; + if (weight >= ForcedBreakWeight) + // Don't search further. + break; } - int size = (int) view.getPreferredSpan(axis); - currentX += size; - currentSpan -= size; + currentSpan += view.getPreferredSpan(axis); } // If there is a potential break location found, break the row at // this location. - if (breakIndex > -1) + if (breakIndex >= 0) { + int spanLeft = desiredSpan - breakSpan; View toBeBroken = row.getView(breakIndex); View brokenView = toBeBroken.breakView(axis, toBeBroken.getStartOffset(), - breakX, breakSpan); + x + breakSpan, spanLeft); + View lv = getLogicalView(fv); + for (int i = breakIndex; i < count; i++) + { + View tmp = row.getView(i); + if (contains(lv, tmp)) + tmp.setParent(lv); + else if (tmp.getViewCount() > 0) + reparent(tmp, lv); + } row.replace(breakIndex, count - breakIndex, - new View[]{brokenView}); + new View[]{ brokenView }); + } + + } + + /** + * Helper method to determine if one view contains another as child. + */ + private boolean contains(View view, View child) + { + boolean ret = false; + int n = view.getViewCount(); + for (int i = 0; i < n && ret == false; i++) + { + if (view.getView(i) == child) + ret = true; + } + return ret; + } + + /** + * Helper method that reparents the view and all of its + * decendents to the parent (the logical view). + * + * @param view the view to reparent + * @param parent the new parent + */ + private void reparent(View view, View parent) + { + int n = view.getViewCount(); + for (int i = 0; i < n; i++) + { + View tmp = view.getView(i); + if (contains(parent, tmp)) + tmp.setParent(parent); + else + reparent(tmp, parent); } } } @@ -320,14 +433,135 @@ public abstract class FlowView extends BoxView * visual representation, this is handled by the physical view implemented * in the FlowView. */ - class LogicalView extends BoxView + class LogicalView extends CompositeView { /** * Creates a new LogicalView instance. */ - LogicalView(Element el, int axis) + LogicalView(Element el) + { + super(el); + } + + /** + * Overridden to return the attributes of the parent + * (== the FlowView instance). + */ + public AttributeSet getAttributes() + { + View p = getParent(); + return p != null ? p.getAttributes() : null; + } + + protected void childAllocation(int index, Rectangle a) + { + // Nothing to do here (not visual). + } + + protected View getViewAtPoint(int x, int y, Rectangle r) + { + // Nothing to do here (not visual). + return null; + } + + protected boolean isAfter(int x, int y, Rectangle r) + { + // Nothing to do here (not visual). + return false; + } + + protected boolean isBefore(int x, int y, Rectangle r) + { + // Nothing to do here (not visual). + return false; + } + + public float getPreferredSpan(int axis) + { + float max = 0; + float pref = 0; + int n = getViewCount(); + for (int i = 0; i < n; i++) + { + View v = getView(i); + pref += v.getPreferredSpan(axis); + if (v.getBreakWeight(axis, 0, Integer.MAX_VALUE) + >= ForcedBreakWeight) + { + max = Math.max(max, pref); + pref = 0; + } + } + max = Math.max(max, pref); + return max; + } + + public float getMinimumSpan(int axis) + { + float max = 0; + float min = 0; + boolean wrap = true; + int n = getViewCount(); + for (int i = 0; i < n; i++) + { + View v = getView(i); + if (v.getBreakWeight(axis, 0, Integer.MAX_VALUE) + == BadBreakWeight) + { + min += v.getPreferredSpan(axis); + wrap = false; + } + else if (! wrap) + { + max = Math.max(min, max); + wrap = true; + min = 0; + } + } + max = Math.max(max, min); + return max; + } + + public void paint(Graphics g, Shape s) + { + // Nothing to do here (not visual). + } + + /** + * Overridden to handle possible leaf elements. + */ + protected void loadChildren(ViewFactory f) { - super(el, axis); + Element el = getElement(); + if (el.isLeaf()) + { + View v = new LabelView(el); + append(v); + } + else + super.loadChildren(f); + } + + /** + * Overridden to reparent the children to this logical view, in case + * they have been parented by a row. + */ + protected void forwardUpdateToView(View v, DocumentEvent e, Shape a, + ViewFactory f) + { + v.setParent(this); + super.forwardUpdateToView(v, e, a, f); + } + + /** + * Overridden to handle possible leaf element. + */ + protected int getViewIndexAtPosition(int pos) + { + int index = 0; + if (! getElement().isLeaf()) + index = super.getViewIndexAtPosition(pos); + return index; } } @@ -357,11 +591,6 @@ public abstract class FlowView extends BoxView protected FlowStrategy strategy; /** - * Indicates if the flow should be rebuild during the next layout. - */ - private boolean layoutDirty; - - /** * Creates a new FlowView for the given * Element and axis. * @@ -374,7 +603,7 @@ public abstract class FlowView extends BoxView { super(element, axis); strategy = sharedStrategy; - layoutDirty = true; + layoutSpan = Short.MAX_VALUE; } /** @@ -423,7 +652,7 @@ public abstract class FlowView extends BoxView */ public int getFlowStart(int index) { - return getLeftInset(); // TODO: Is this correct? + return 0; } /** @@ -449,9 +678,11 @@ public abstract class FlowView extends BoxView { if (layoutPool == null) { - layoutPool = new LogicalView(getElement(), getAxis()); - layoutPool.setParent(this); + layoutPool = new LogicalView(getElement()); } + layoutPool.setParent(this); + // Initialize the flow strategy. + strategy.insertUpdate(this, null, null); } /** @@ -466,32 +697,33 @@ public abstract class FlowView extends BoxView protected void layout(int width, int height) { int flowAxis = getFlowAxis(); + int span; if (flowAxis == X_AXIS) - { - if (layoutSpan != width) - { - layoutChanged(Y_AXIS); - layoutSpan = width; - } - } + span = (int) width; else + span = (int) height; + + if (layoutSpan != span) { - if (layoutSpan != height) - { - layoutChanged(X_AXIS); - layoutSpan = height; - } + layoutChanged(flowAxis); + layoutChanged(getAxis()); + layoutSpan = span; } - if (layoutDirty) + if (! isLayoutValid(flowAxis)) { + int axis = getAxis(); + int oldSpan = axis == X_AXIS ? getWidth() : getHeight(); strategy.layout(this); - layoutDirty = false; + int newSpan = (int) getPreferredSpan(axis); + if (oldSpan != newSpan) + { + View parent = getParent(); + if (parent != null) + parent.preferenceChanged(this, axis == X_AXIS, axis == Y_AXIS); + } } - if (getPreferredSpan(getAxis()) != height) - preferenceChanged(this, false, true); - super.layout(width, height); } @@ -510,7 +742,6 @@ public abstract class FlowView extends BoxView // be updated accordingly. layoutPool.insertUpdate(changes, a, vf); strategy.insertUpdate(this, changes, getInsideAllocation(a)); - layoutDirty = true; } /** @@ -526,7 +757,6 @@ public abstract class FlowView extends BoxView { layoutPool.removeUpdate(changes, a, vf); strategy.removeUpdate(this, changes, getInsideAllocation(a)); - layoutDirty = true; } /** @@ -542,7 +772,6 @@ public abstract class FlowView extends BoxView { layoutPool.changedUpdate(changes, a, vf); strategy.changedUpdate(this, changes, getInsideAllocation(a)); - layoutDirty = true; } /** @@ -604,7 +833,7 @@ public abstract class FlowView extends BoxView res = new SizeRequirements(); res.minimum = (int) layoutPool.getMinimumSpan(axis); res.preferred = Math.max(res.minimum, - (int) layoutPool.getMinimumSpan(axis)); + (int) layoutPool.getPreferredSpan(axis)); res.maximum = Integer.MAX_VALUE; res.alignment = 0.5F; return res; diff --git a/libjava/classpath/javax/swing/text/GapContent.java b/libjava/classpath/javax/swing/text/GapContent.java index 760e396a223..08a318d8bb4 100644 --- a/libjava/classpath/javax/swing/text/GapContent.java +++ b/libjava/classpath/javax/swing/text/GapContent.java @@ -39,16 +39,13 @@ exception statement from your version. */ package javax.swing.text; import java.io.Serializable; -import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Set; import java.util.Vector; -import java.util.WeakHashMap; import javax.swing.undo.AbstractUndoableEdit; import javax.swing.undo.CannotRedoException; @@ -71,7 +68,7 @@ public class GapContent /** * A {@link Position} implementation for GapContent. */ - private class GapContentPosition + class GapContentPosition implements Position { @@ -82,39 +79,6 @@ public class GapContent Mark mark; /** - * Creates a new GapContentPosition object. - * - * @param offset the offset of this Position - */ - GapContentPosition(int offset) - { - // Try to find the mark in the positionMarks array, and store the index - // to it. - synchronized (GapContent.this) - { - // Try to make space. - garbageCollect(); - Mark m = new Mark(offset); - int i = search(marks, m); - if (i >= 0) // mark found - { - m = (Mark) marks.get(i); - } - else - { - i = -i - 1; - marks.add(i, m); - } - m.refCount++; - mark = m; - } - - // Register this position in the death queue, so we can cleanup the marks - // when this position object gets GC'ed. - new WeakReference(this, queueOfDeath); - } - - /** * Returns the current offset of this Position within the content. * * @return the current offset of this Position within the content. @@ -133,7 +97,7 @@ public class GapContent * be garbage collected while we still hold a reference to the Mark object. */ private class Mark - implements Comparable + extends WeakReference { /** * The actual mark into the buffer. @@ -141,21 +105,20 @@ public class GapContent int mark; /** - * The number of GapContentPosition object that reference this mark. If - * it reaches zero, it get's deleted by {@link GapContent#garbageCollect()}. - */ - int refCount; - - /** * Creates a new Mark object for the specified offset. * * @param offset the offset */ Mark(int offset) { + super(null); + mark = offset; + } + + Mark(int offset, GapContentPosition pos, ReferenceQueue queue) + { + super(pos, queue); mark = offset; - if (mark >= gapStart && mark != 0) - mark += (gapEnd - gapStart); } /** @@ -165,33 +128,62 @@ public class GapContent */ int getOffset() { - assert mark == 0 || mark < gapStart || mark >= gapEnd : - "Invalid mark: " + mark + ", gapStart: " + gapStart - + ", gapEnd: " + gapEnd; - int res = mark; - if (mark >= gapEnd) + if (mark >= gapStart) res -= (gapEnd - gapStart); - return res; + return Math.max(0, res); + } + + /** + * Returns the GapContentPosition that is associated ith this mark. + * This fetches the weakly referenced position object. + * + * @return the GapContentPosition that is associated ith this mark + */ + GapContentPosition getPosition() + { + return (GapContentPosition) get(); } + } + + /** + * Stores a reference to a mark that can be resetted to the original value + * after a mark has been moved. This is used for undoing actions. + */ + private class UndoPosRef + { + /** + * The mark that might need to be reset. + */ + private Mark mark; + /** - * Implementation of Comparable. + * The original offset to reset the mark to. */ - public int compareTo(Object o) + private int undoOffset; + + /** + * Creates a new UndoPosRef. + * + * @param m the mark + */ + UndoPosRef(Mark m) { - Mark other = (Mark) o; - return mark - other.mark; + mark = m; + undoOffset = mark.getOffset(); } + /** - * Adjustment for equals(). + * Resets the position of the mark to the value that it had when + * creating this UndoPosRef. */ - public boolean equals(Object o) + void reset() { - if (o == null || !(o instanceof Mark)) - return false; + if (undoOffset <= gapStart) + mark.mark = undoOffset; else - return ((Mark) o).mark == mark; + mark.mark = (gapEnd - gapStart) + undoOffset; } } @@ -199,6 +191,8 @@ public class GapContent { public int where, length; String text; + private Vector positions; + public InsertUndo(int start, int len) { where = start; @@ -209,27 +203,33 @@ public class GapContent { super.undo(); try - { - text = getString(where, length); - remove(where, length); - } + { + positions = getPositionsInRange(null, where, length); + text = getString(where, length); + remove(where, length); + } catch (BadLocationException ble) - { - throw new CannotUndoException(); - } + { + throw new CannotUndoException(); + } } public void redo () throws CannotUndoException { super.redo(); try - { - insertString(where, text); - } + { + insertString(where, text); + if (positions != null) + { + updateUndoPositions(positions, where, length); + positions = null; + } + } catch (BadLocationException ble) - { - throw new CannotRedoException(); - } + { + throw new CannotRedoException(); + } } } @@ -238,10 +238,17 @@ public class GapContent { public int where; String text; + + /** + * The positions in the removed range. + */ + private Vector positions; + public UndoRemove(int start, String removedText) { where = start; text = removedText; + positions = getPositionsInRange(null, start, removedText.length()); } public void undo () throws CannotUndoException @@ -250,6 +257,8 @@ public class GapContent try { insertString(where, text); + if (positions != null) + updateUndoPositions(positions, where, text.length()); } catch (BadLocationException ble) { @@ -261,13 +270,15 @@ public class GapContent { super.redo(); try - { - remove(where, text.length()); - } + { + text = getString(where, text.length()); + positions = getPositionsInRange(null, where, text.length()); + remove(where, text.length()); + } catch (BadLocationException ble) - { - throw new CannotRedoException(); - } + { + throw new CannotRedoException(); + } } } @@ -308,7 +319,15 @@ public class GapContent */ ArrayList marks; - WeakHashMap positions; + /** + * The number of unused marks. + */ + private int garbageMarks; + + /** + * A 'static' mark that is used for searching. + */ + private Mark searchMark = new Mark(0); /** * Queues all references to GapContentPositions that are about to be @@ -339,7 +358,6 @@ public class GapContent gapStart = 1; gapEnd = size; buffer[0] = '\n'; - positions = new WeakHashMap(); marks = new ArrayList(); queueOfDeath = new ReferenceQueue(); } @@ -403,9 +421,10 @@ public class GapContent throw new BadLocationException("The where argument cannot be greater" + " than the content length", where); + InsertUndo undo = new InsertUndo(where, strLen); replace(where, 0, str.toCharArray(), strLen); - return new InsertUndo(where, strLen); + return undo; } /** @@ -429,9 +448,10 @@ public class GapContent + " than the content length", where + nitems); String removedText = getString(where, nitems); + UndoRemove undoRemove = new UndoRemove(where, removedText); replace(where, nitems, null, 0); - return new UndoRemove(where, removedText); + return undoRemove; } /** @@ -495,29 +515,43 @@ public class GapContent if (len < 0) throw new BadLocationException("negative length not allowed: ", len); - // check if requested segment is contiguous - if ((where < gapStart) && ((gapStart - where) < len)) - { - // requested segment is not contiguous -> copy the pieces together - char[] copy = new char[len]; - int lenFirst = gapStart - where; // the length of the first segment - System.arraycopy(buffer, where, copy, 0, lenFirst); - System.arraycopy(buffer, gapEnd, copy, lenFirst, len - lenFirst); - txt.array = copy; - txt.offset = 0; - txt.count = len; - } - else - { - // requested segment is contiguous -> we can simply return the - // actual content - txt.array = buffer; - if (where < gapStart) + // Optimized to copy only when really needed. + if (where + len <= gapStart) + { + // Simple case: completely before gap. + txt.array = buffer; txt.offset = where; - else - txt.offset = where + (gapEnd - gapStart); - txt.count = len; - } + txt.count = len; + } + else if (where > gapStart) + { + // Completely after gap, adjust offset. + txt.array = buffer; + txt.offset = gapEnd + where - gapStart; + txt.count = len; + } + else + { + // Spans the gap. + int beforeGap = gapStart - where; + if (txt.isPartialReturn()) + { + // Return the part before the gap when partial return is allowed. + txt.array = buffer; + txt.offset = where; + txt.count = beforeGap; + } + else + { + // Copy pieces together otherwise. + txt.array = new char[len]; + txt.offset = 0; + System.arraycopy(buffer, where, txt.array, 0, beforeGap); + System.arraycopy(buffer, gapEnd, txt.array, beforeGap, + len - beforeGap); + txt.count = len; + } + } } /** @@ -537,27 +571,33 @@ public class GapContent // and luckily enough the GapContent can very well deal with offsets // outside the buffer bounds. So I removed that check. + // First do some garbage collections. + while (queueOfDeath.poll() != null) + garbageMarks++; + if (garbageMarks > Math.max(5, marks.size() / 10)) + garbageCollect(); + // We try to find a GapContentPosition at the specified offset and return // that. Otherwise we must create a new one. - GapContentPosition pos = null; - Set positionSet = positions.keySet(); - for (Iterator i = positionSet.iterator(); i.hasNext();) - { - GapContentPosition p = (GapContentPosition) i.next(); - if (p.getOffset() == offset) - { - pos = p; - break; - } - } - - // If none was found, then create and return a new one. - if (pos == null) + Mark m; + GapContentPosition pos; + int index = offset; + if (offset >= gapStart) + index += (gapEnd - gapStart); + searchMark.mark = index; + int insertIndex = search(searchMark); + if (!(insertIndex < marks.size() + && (m = (Mark) marks.get(insertIndex)).mark == index + && (pos = m.getPosition()) != null)) { - pos = new GapContentPosition(offset); - positions.put(pos, null); + // Create new position if none was found. + pos = new GapContentPosition(); + m = new Mark(index, pos, queueOfDeath); + pos.mark = m; + marks.add(insertIndex, m); } - + // Otherwise use the found position. + return pos; } @@ -574,18 +614,29 @@ public class GapContent assert newSize > (gapEnd - gapStart) : "The new gap size must be greater " + "than the old gap size"; - int delta = newSize - gapEnd + gapStart; - // Update the marks after the gapEnd. - adjustPositionsInRange(gapEnd, -1, delta); + int oldEnd = getGapEnd(); + int oldSize = getArrayLength(); + int upper = oldSize - oldEnd; + int size = (newSize + 1) * 2; + int newEnd = size - upper; // Copy the data around. - char[] newBuf = (char[]) allocateArray(length() + newSize); - System.arraycopy(buffer, 0, newBuf, 0, gapStart); - System.arraycopy(buffer, gapEnd, newBuf, gapStart + newSize, buffer.length - - gapEnd); - gapEnd = gapStart + newSize; + char[] newBuf = (char[]) allocateArray(size); + System.arraycopy(buffer, 0, newBuf, 0, Math.min(size, oldSize)); buffer = newBuf; - + gapEnd = newEnd; + if (upper != 0) + System.arraycopy(buffer, oldEnd, buffer, newEnd, upper); + + // Adjust marks. + int delta = gapEnd - oldEnd; + int adjIndex = searchFirst(oldEnd); + int count = marks.size(); + for (int i = adjIndex; i < count; i++) + { + Mark m = (Mark) marks.get(i); + m.mark += delta; + } } /** @@ -595,28 +646,44 @@ public class GapContent */ protected void shiftGap(int newGapStart) { - if (newGapStart == gapStart) - return; - int newGapEnd = newGapStart + gapEnd - gapStart; - if (newGapStart < gapStart) + int oldStart = gapStart; + int delta = newGapStart - oldStart; + int oldEnd = gapEnd; + int newGapEnd = oldEnd + delta; + int size = oldEnd - oldStart; + + // Shift gap in array. + gapStart = newGapStart; + gapEnd = newGapEnd; + if (delta > 0) + System.arraycopy(buffer, oldEnd, buffer, oldStart, delta); + else + System.arraycopy(buffer, newGapStart, buffer, newGapEnd, -delta); + + // Adjust marks. + if (delta > 0) { - // Update the positions between newGapStart and (old) gapStart. The marks - // must be shifted by (gapEnd - gapStart). - adjustPositionsInRange(newGapStart, gapStart, gapEnd - gapStart); - System.arraycopy(buffer, newGapStart, buffer, newGapEnd, gapStart - - newGapStart); - gapStart = newGapStart; - gapEnd = newGapEnd; + int adjIndex = searchFirst(oldStart); + int count = marks.size(); + for (int i = adjIndex; i < count; i++) + { + Mark m = (Mark) marks.get(i); + if (m.mark >= newGapEnd) + break; + m.mark -= size; + } } - else + else if (delta < 0) { - // Update the positions between newGapEnd and (old) gapEnd. The marks - // must be shifted by (gapEnd - gapStart). - adjustPositionsInRange(gapEnd, newGapEnd, -(gapEnd - gapStart)); - System.arraycopy(buffer, gapEnd, buffer, gapStart, newGapStart - - gapStart); - gapStart = newGapStart; - gapEnd = newGapEnd; + int adjIndex = searchFirst(newGapStart); + int count = marks.size(); + for (int i = adjIndex; i < count; i++) + { + Mark m = (Mark) marks.get(i); + if (m.mark >= oldEnd) + break; + m.mark += size; + } } resetMarksAtZero(); } @@ -636,7 +703,18 @@ public class GapContent assert newGapStart < gapStart : "The new gap start must be less than the " + "old gap start."; - setPositionsInRange(newGapStart, gapStart, false); + + // Adjust positions. + int adjIndex = searchFirst(newGapStart); + int count = marks.size(); + for (int i = adjIndex; i < count; i++) + { + Mark m = (Mark) marks.get(i); + if (m.mark > gapStart) + break; + m.mark = gapEnd; + } + gapStart = newGapStart; resetMarksAtZero(); } @@ -656,7 +734,19 @@ public class GapContent assert newGapEnd > gapEnd : "The new gap end must be greater than the " + "old gap end."; - setPositionsInRange(gapEnd, newGapEnd, false); + + // Adjust marks. + int adjIndex = searchFirst(gapEnd); + int count = marks.size(); + for (int i = adjIndex; i < count; i++) + { + Mark m = (Mark) marks.get(i); + if (m.mark >= newGapEnd) + break; + m.mark = newGapEnd; + } + + gapEnd = newGapEnd; resetMarksAtZero(); } @@ -682,23 +772,88 @@ public class GapContent protected void replace(int position, int rmSize, Object addItems, int addSize) { - if (gapStart != position) - shiftGap(position); - - // Remove content - if (rmSize > 0) - shiftGapEndUp(gapEnd + rmSize); + if (addSize == 0) + { + removeImpl(position, rmSize); + return; + } + else if (rmSize > addSize) + { + removeImpl(position + addSize, rmSize - addSize); + } + else + { + int endSize = addSize - rmSize; + int end = addImpl(position + rmSize, endSize); + System.arraycopy(addItems, rmSize, buffer, end, endSize); + addSize = rmSize; + } + System.arraycopy(addItems, 0, buffer, position, addSize); + } + + /** + * Adjusts the positions and gap in response to a remove operation. + * + * @param pos the position at which to remove + * @param num the number of removed items + */ + private void removeImpl(int pos, int num) + { + if (num > 0) + { + int end = pos + num; + int newGapSize = (gapEnd - gapStart) + num; + if (end <= gapStart) + { + if (gapStart != end) + { + shiftGap(end); + } + shiftGapStartDown(gapStart - num); + } + else if (pos >= gapStart) + { + if (gapStart != pos) + { + shiftGap(pos); + } + shiftGapEndUp(gapStart + newGapSize); + } + else + { + shiftGapStartDown(pos); + shiftGapEndUp(gapStart + newGapSize); + } + } + } - // If gap is too small, enlarge the gap. - if ((gapEnd - gapStart) <= addSize) - shiftEnd((addSize - gapEnd + gapStart + 1) * 2 + gapEnd + DEFAULT_BUFSIZE); + /** + * Adjusts the positions and gap in response to an add operation. + * + * @param pos the position at which to add + * @param num the number of added items + * + * @return the adjusted position + */ + private int addImpl(int pos, int num) + { + int size = gapEnd - gapStart; + if (num == 0) + { + if (pos > gapStart) + pos += size; + return pos; + } - // Add new items to the buffer. - if (addItems != null) + shiftGap(pos); + if (num >= size) { - System.arraycopy(addItems, 0, buffer, gapStart, addSize); - gapStart += addSize; + shiftEnd(getArrayLength() - size + num); + size = gapEnd - gapStart; } + + gapStart += num; + return pos; } /** @@ -733,97 +888,34 @@ public class GapContent */ protected Vector getPositionsInRange(Vector v, int offset, int length) { - Vector res = v; - if (res == null) - res = new Vector(); - else - res.clear(); - - int endOffs = offset + length; - - Set positionSet = positions.keySet(); - for (Iterator i = positionSet.iterator(); i.hasNext();) + int end = offset + length; + int startIndex; + int endIndex; + if (offset < gapStart) { - GapContentPosition p = (GapContentPosition) i.next(); - int offs = p.getOffset(); - if (offs >= offset && offs < endOffs) - res.add(p); + if (offset == 0) + startIndex = 0; + else + startIndex = searchFirst(offset); + if (end >= gapStart) + endIndex = searchFirst(end + (gapEnd - gapStart) + 1); + else + endIndex = searchFirst(end + 1); } - - return res; - } - - /** - * Crunches all positions in the specified range to either the start or - * end of that interval. The interval boundaries are meant to be inclusive - * [start, end]. - * - * @param start the start offset of the range - * @param end the end offset of the range - * @param toStart a boolean indicating if the positions should be crunched - * to the start (true) or to the end (false) - */ - private void setPositionsInRange(int start, int end, boolean toStart) - { - synchronized (this) + else { - // Find the start and end indices in the positionMarks array. - Mark m = new Mark(0); // For comparison / search only. - m.mark = start; - int startIndex = search(marks, m); - if (startIndex < 0) // Translate to insertion index, if not found. - startIndex = - startIndex - 1; - m.mark = end; - int endIndex = search(marks, m); - if (endIndex < 0) // Translate to insertion index - 1, if not found. - endIndex = - endIndex - 2; - - // Actually adjust the marks. - for (int i = startIndex; i <= endIndex; i++) - ((Mark) marks.get(i)).mark = toStart ? start : end; + startIndex = searchFirst(offset + (gapEnd - gapStart)); + endIndex = searchFirst(end + (gapEnd - gapStart) + 1); } - - } - - /** - * Adjusts the mark of all Positions that are in the range - * specified by offset and
      length within - * the buffer array by increment - * - * @param startOffs the start offset of the range to search - * @param endOffs the length of the range to search, -1 means all to the end - * @param incr the increment - */ - private void adjustPositionsInRange(int startOffs, int endOffs, int incr) - { - synchronized (this) + if (v == null) + v = new Vector(); + for (int i = startIndex; i < endIndex; i++) { - // Find the start and end indices in the positionMarks array. - Mark m = new Mark(0); // For comparison / search only. - - m.mark = startOffs; - int startIndex = search(marks, m); - if (startIndex < 0) // Translate to insertion index, if not found. - startIndex = - startIndex - 1; - - m.mark = endOffs; - int endIndex; - if (endOffs == -1) - endIndex = marks.size() - 1; - else - { - endIndex = search(marks, m); - if (endIndex < 0) // Translate to insertion index - 1, if not found. - endIndex = - endIndex - 2; - } - // Actually adjust the marks. - for (int i = startIndex; i <= endIndex; i++) { - ((Mark) marks.get(i)).mark += incr; - } + v.add(new UndoPosRef((Mark) marks.get(i))); } - + return v; } - + /** * Resets all Position that have an offset of 0, * to also have an array index of 0. This might be necessary @@ -844,14 +936,26 @@ public class GapContent } /** - * @specnote This method is not very well specified and the positions vector - * is implementation specific. The undo positions are managed - * differently in this implementation, this method is only here - * for binary compatibility. + * Resets the positions in the specified range to their original offset + * after a undo operation is performed. For example, after removing some + * content, the positions in the removed range will all be set to one + * offset. This method restores the positions to their original offsets + * after an undo. + * + * @param positions the positions to update + * @param offset + * @param length */ protected void updateUndoPositions(Vector positions, int offset, int length) { - // We do nothing here. + for (Iterator i = positions.iterator(); i.hasNext();) + { + UndoPosRef undoPosRef = (UndoPosRef) i.next(); + undoPosRef.reset(); + } + + // Resort marks. + Collections.sort(marks); } /** @@ -892,30 +996,6 @@ public class GapContent } /** - * Polls the queue of death for GapContentPositions, updates the - * corresponding reference count and removes the corresponding mark - * if the refcount reaches zero. - * - * This is package private to avoid accessor synthetic methods. - */ - void garbageCollect() - { - Reference ref = queueOfDeath.poll(); - while (ref != null) - { - if (ref != null) - { - GapContentPosition pos = (GapContentPosition) ref.get(); - Mark m = pos.mark; - m.refCount--; - if (m.refCount == 0) - marks.remove(m); - } - ref = queueOfDeath.poll(); - } - } - - /** * Searches the first occurance of object o in list * l. This performs a binary search by calling * {@link Collections#binarySearch(List, Object)} and when an object has been @@ -923,22 +1003,93 @@ public class GapContent * list. The meaning of the return value is the same as in * Collections.binarySearch(). * - * @param l the list to search through * @param o the object to be searched * * @return the index of the first occurance of o in l, or -i + 1 if not found */ - private int search(List l, Object o) + int search(Mark o) { - int i = Collections.binarySearch(l, o); - while (i > 0) + int foundInd = 0; + boolean found = false; + int low = 0; + int up = marks.size() - 1; + int mid = 0; + if (up > -1) { - Object o2 = l.get(i - 1); - if (o2.equals(o)) - i--; + int cmp = 0; + Mark last = (Mark) marks.get(up); + cmp = compare(o, last); + if (cmp > 0) + { + foundInd = up + 1; + found = true; + } else + { + while (low <= up && ! found) + { + mid = low + (up - low) / 2; + Mark m = (Mark) marks.get(mid); + cmp = compare(o, m); + if (cmp == 0) + { + foundInd = mid; + found = true; + } + else if (cmp < 0) + up = mid - 1; + else + low = mid + 1; + } + + if (! found) + foundInd = cmp < 0 ? mid : mid + 1; + } + } + return foundInd; + } + + private int searchFirst(int index) + { + searchMark.mark = Math.max(index, 1); + int i = search(searchMark); + for (int j = i - 1; j >= 0; j--) + { + Mark m = (Mark) marks.get(j); + if (m.mark != index) break; + i--; } return i; } + + /** + * Compares two marks. + * + * @param m1 the first mark + * @param m2 the second mark + * + * @return negative when m1 < m2, positive when m1 > m2 and 0 when equal + */ + private int compare(Mark m1, Mark m2) + { + return m1.mark - m2.mark; + } + + /** + * Collects and frees unused marks. + */ + private void garbageCollect() + { + int count = marks.size(); + ArrayList clean = new ArrayList(); + for (int i = 0; i < count; i++) + { + Mark m = (Mark) marks.get(i); + if (m.get() != null) + clean.add(m); + } + marks = clean; + garbageMarks = 0; + } } diff --git a/libjava/classpath/javax/swing/text/GlyphView.java b/libjava/classpath/javax/swing/text/GlyphView.java index d505274c91f..1e418d2e06a 100644 --- a/libjava/classpath/javax/swing/text/GlyphView.java +++ b/libjava/classpath/javax/swing/text/GlyphView.java @@ -38,14 +38,21 @@ exception statement from your version. */ package javax.swing.text; +import gnu.classpath.SystemProperties; + import java.awt.Color; +import java.awt.Container; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.Shape; import java.awt.Toolkit; -import java.text.BreakIterator; +import java.awt.font.FontRenderContext; +import java.awt.font.TextHitInfo; +import java.awt.font.TextLayout; +import java.awt.geom.Rectangle2D; import javax.swing.SwingConstants; import javax.swing.event.DocumentEvent; @@ -248,10 +255,164 @@ public class GlyphView extends View implements TabableView, Cloneable } /** + * A GlyphPainter implementation based on TextLayout. This should give + * better performance in Java2D environments. + */ + private static class J2DGlyphPainter + extends GlyphPainter + { + + /** + * The text layout. + */ + TextLayout textLayout; + + /** + * Creates a new J2DGlyphPainter. + * + * @param str the string + * @param font the font + * @param frc the font render context + */ + J2DGlyphPainter(String str, Font font, FontRenderContext frc) + { + textLayout = new TextLayout(str, font, frc); + } + + /** + * Returns null so that GlyphView.checkPainter() creates a new instance. + */ + public GlyphPainter getPainter(GlyphView v, int p0, int p1) + { + return null; + } + + /** + * Delegates to the text layout. + */ + public float getAscent(GlyphView v) + { + return textLayout.getAscent(); + } + + /** + * Delegates to the text layout. + */ + public int getBoundedPosition(GlyphView v, int p0, float x, float len) + { + int pos; + TextHitInfo hit = textLayout.hitTestChar(len, 0); + if (hit.getCharIndex() == -1 && ! textLayout.isLeftToRight()) + pos = v.getEndOffset(); + else + { + pos = hit.isLeadingEdge() ? hit.getInsertionIndex() + : hit.getInsertionIndex() - 1; + pos += v.getStartOffset(); + } + return pos; + } + + /** + * Delegates to the text layout. + */ + public float getDescent(GlyphView v) + { + return textLayout.getDescent(); + } + + /** + * Delegates to the text layout. + */ + public float getHeight(GlyphView view) + { + return textLayout.getAscent() + textLayout.getDescent() + + textLayout.getLeading(); + } + + /** + * Delegates to the text layout. + */ + public float getSpan(GlyphView v, int p0, int p1, TabExpander te, float x) + { + float span; + if (p0 == v.getStartOffset() && p1 == v.getEndOffset()) + span = textLayout.getAdvance(); + else + { + int start = v.getStartOffset(); + int i0 = p0 - start; + int i1 = p1 - start; + TextHitInfo hit0 = TextHitInfo.afterOffset(i0); + TextHitInfo hit1 = TextHitInfo.afterOffset(i1); + float x0 = textLayout.getCaretInfo(hit0)[0]; + float x1 = textLayout.getCaretInfo(hit1)[0]; + span = Math.abs(x1 - x0); + } + return span; + } + + /** + * Delegates to the text layout. + */ + public Shape modelToView(GlyphView v, int pos, Bias b, Shape a) + throws BadLocationException + { + int offs = pos - v.getStartOffset(); + // Create copy here to protect original shape. + Rectangle2D bounds = a.getBounds2D(); + TextHitInfo hit = + b == Position.Bias.Forward ? TextHitInfo.afterOffset(offs) + : TextHitInfo.beforeOffset(offs); + float[] loc = textLayout.getCaretInfo(hit); + bounds.setRect(bounds.getX() + loc[0], bounds.getY(), 1, + bounds.getHeight()); + return bounds; + } + + /** + * Delegates to the text layout. + */ + public void paint(GlyphView view, Graphics g, Shape a, int p0, int p1) + { + // Can't paint this with plain graphics. + if (g instanceof Graphics2D) + { + Graphics2D g2d = (Graphics2D) g; + Rectangle2D b = a instanceof Rectangle2D ? (Rectangle2D) a + : a.getBounds2D(); + float x = (float) b.getX(); + float y = (float) b.getY() + textLayout.getAscent() + + textLayout.getLeading(); + // TODO: Try if clipping makes things faster for narrow views. + textLayout.draw(g2d, x, y); + } + } + + /** + * Delegates to the text layout. + */ + public int viewToModel(GlyphView v, float x, float y, Shape a, + Bias[] biasRet) + { + Rectangle2D bounds = a instanceof Rectangle2D ? (Rectangle2D) a + : a.getBounds2D(); + TextHitInfo hit = textLayout.hitTestChar(x - (float) bounds.getX(), 0); + int pos = hit.getInsertionIndex(); + biasRet[0] = hit.isLeadingEdge() ? Position.Bias.Forward + : Position.Bias.Backward; + return pos + v.getStartOffset(); + } + + } + + /** * The default GlyphPainter used in GlyphView. */ static class DefaultGlyphPainter extends GlyphPainter { + FontMetrics fontMetrics; + /** * Returns the full height of the rendered text. * @@ -259,9 +420,8 @@ public class GlyphView extends View implements TabableView, Cloneable */ public float getHeight(GlyphView view) { - Font font = view.getFont(); - FontMetrics metrics = Toolkit.getDefaultToolkit().getFontMetrics(font); - float height = metrics.getHeight(); + updateFontMetrics(view); + float height = fontMetrics.getHeight(); return height; } @@ -277,53 +437,27 @@ public class GlyphView extends View implements TabableView, Cloneable public void paint(GlyphView view, Graphics g, Shape a, int p0, int p1) { - Color oldColor = g.getColor(); - int height = (int) getHeight(view); + updateFontMetrics(view); + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + TabExpander tabEx = view.getTabExpander(); Segment txt = view.getText(p0, p1); - Rectangle bounds = a.getBounds(); - TabExpander tabEx = null; - View parent = view.getParent(); - if (parent instanceof TabExpander) - tabEx = (TabExpander) parent; - - int width = Utilities.getTabbedTextWidth(txt, g.getFontMetrics(), - bounds.x, tabEx, txt.offset); - // Fill the background of the text run. - Color background = view.getBackground(); - if (background != null) - { - g.setColor(background); - g.fillRect(bounds.x, bounds.y, width, height); - } - // Draw the actual text. - g.setColor(view.getForeground()); - g.setFont(view.getFont()); - int ascent = g.getFontMetrics().getAscent(); - if (view.isSuperscript()) - // TODO: Adjust font for superscripting. - Utilities.drawTabbedText(txt, bounds.x, bounds.y + ascent - height / 2, - g, tabEx, txt.offset); - else if (view.isSubscript()) - // TODO: Adjust font for subscripting. - Utilities.drawTabbedText(txt, bounds.x, bounds.y + ascent + height / 2, - g, tabEx, txt.offset); - else - Utilities.drawTabbedText(txt, bounds.x, bounds.y + ascent, g, tabEx, - txt.offset); - if (view.isStrikeThrough()) - { - int strikeHeight = (int) (getAscent(view) / 2); - g.drawLine(bounds.x, bounds.y + strikeHeight, bounds.height + width, - bounds.y + strikeHeight); - } - if (view.isUnderline()) + // Find out the X location at which we have to paint. + int x = r.x; + int p = view.getStartOffset(); + if (p != p0) { - int lineHeight = (int) getAscent(view); - g.drawLine(bounds.x, bounds.y + lineHeight, bounds.height + width, - bounds.y + lineHeight); + int width = Utilities.getTabbedTextWidth(txt, fontMetrics,x, tabEx, + p); + x += width; } - g.setColor(oldColor); + // Find out Y location. + int y = r.y + fontMetrics.getHeight() - fontMetrics.getDescent(); + + // Render the thing. + g.setFont(fontMetrics.getFont()); + Utilities.drawTabbedText(txt, x, y, g, tabEx, p0); + } /** @@ -350,15 +484,18 @@ public class GlyphView extends View implements TabableView, Cloneable Shape a) throws BadLocationException { + updateFontMetrics(view); Element el = view.getElement(); - Font font = view.getFont(); - FontMetrics fm = view.getContainer().getFontMetrics(font); Segment txt = view.getText(el.getStartOffset(), pos); - int width = fm.charsWidth(txt.array, txt.offset, txt.count); - int height = fm.getHeight(); - Rectangle bounds = a.getBounds(); + Rectangle bounds = a instanceof Rectangle ? (Rectangle) a + : a.getBounds(); + TabExpander expander = view.getTabExpander(); + int width = Utilities.getTabbedTextWidth(txt, fontMetrics, bounds.x, + expander, + view.getStartOffset()); + int height = fontMetrics.getHeight(); Rectangle result = new Rectangle(bounds.x + width, bounds.y, - bounds.x + width, height); + 0, height); return result; } @@ -381,11 +518,10 @@ public class GlyphView extends View implements TabableView, Cloneable public float getSpan(GlyphView view, int p0, int p1, TabExpander te, float x) { - Element el = view.getElement(); - Font font = view.getFont(); - FontMetrics fm = Toolkit.getDefaultToolkit().getFontMetrics(font); + updateFontMetrics(view); Segment txt = view.getText(p0, p1); - int span = Utilities.getTabbedTextWidth(txt, fm, (int) x, te, p0); + int span = Utilities.getTabbedTextWidth(txt, fontMetrics, (int) x, te, + p0); return span; } @@ -402,9 +538,8 @@ public class GlyphView extends View implements TabableView, Cloneable */ public float getAscent(GlyphView v) { - Font font = v.getFont(); - FontMetrics fm = v.getContainer().getFontMetrics(font); - return fm.getAscent(); + updateFontMetrics(v); + return fontMetrics.getAscent(); } /** @@ -420,9 +555,8 @@ public class GlyphView extends View implements TabableView, Cloneable */ public float getDescent(GlyphView v) { - Font font = v.getFont(); - FontMetrics fm = v.getContainer().getFontMetrics(font); - return fm.getDescent(); + updateFontMetrics(v); + return fontMetrics.getDescent(); } /** @@ -437,13 +571,12 @@ public class GlyphView extends View implements TabableView, Cloneable */ public int getBoundedPosition(GlyphView v, int p0, float x, float len) { + updateFontMetrics(v); TabExpander te = v.getTabExpander(); Segment txt = v.getText(p0, v.getEndOffset()); - Font font = v.getFont(); - FontMetrics fm = v.getContainer().getFontMetrics(font); - int pos = Utilities.getTabbedTextOffset(txt, fm, (int) x, + int pos = Utilities.getTabbedTextOffset(txt, fontMetrics, (int) x, (int) (x + len), te, p0, false); - return pos; + return pos + p0; } /** @@ -460,9 +593,33 @@ public class GlyphView extends View implements TabableView, Cloneable public int viewToModel(GlyphView v, float x, float y, Shape a, Bias[] biasRet) { - Rectangle b = a.getBounds(); - int pos = getBoundedPosition(v, v.getStartOffset(), b.x, x - b.x); - return pos; + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + int p0 = v.getStartOffset(); + int p1 = v.getEndOffset(); + TabExpander te = v.getTabExpander(); + Segment s = v.getText(p0, p1); + int offset = Utilities.getTabbedTextOffset(s, fontMetrics, r.x, (int) x, + te, p0); + int ret = p0 + offset; + if (ret == p1) + ret--; + biasRet[0] = Position.Bias.Forward; + return ret; + } + + private void updateFontMetrics(GlyphView v) + { + Font font = v.getFont(); + if (fontMetrics == null || ! font.equals(fontMetrics.getFont())) + { + Container c = v.getContainer(); + FontMetrics fm; + if (c != null) + fm = c.getFontMetrics(font); + else + fm = Toolkit.getDefaultToolkit().getFontMetrics(font); + fontMetrics = fm; + } } } @@ -474,12 +631,22 @@ public class GlyphView extends View implements TabableView, Cloneable /** * The start offset within the document for this view. */ - private int startOffset; + private int offset; /** * The end offset within the document for this view. */ - private int endOffset; + private int length; + + /** + * The x location against which the tab expansion is done. + */ + private float tabX; + + /** + * The tab expander that is used in this view. + */ + private TabExpander tabExpander; /** * Creates a new GlyphView for the given Element. @@ -489,8 +656,8 @@ public class GlyphView extends View implements TabableView, Cloneable public GlyphView(Element element) { super(element); - startOffset = -1; - endOffset = -1; + offset = 0; + length = 0; } /** @@ -524,7 +691,21 @@ public class GlyphView extends View implements TabableView, Cloneable protected void checkPainter() { if (glyphPainter == null) - glyphPainter = new DefaultGlyphPainter(); + { + if ("true".equals( + SystemProperties.getProperty("gnu.javax.swing.noGraphics2D"))) + { + glyphPainter = new DefaultGlyphPainter(); + } + else + { + Segment s = getText(getStartOffset(), getEndOffset()); + glyphPainter = new J2DGlyphPainter(s.toString(), getFont(), + new FontRenderContext(null, + false, + false)); + } + } } /** @@ -536,9 +717,80 @@ public class GlyphView extends View implements TabableView, Cloneable */ public void paint(Graphics g, Shape a) { - Element el = getElement(); checkPainter(); - getGlyphPainter().paint(this, g, a, getStartOffset(), getEndOffset()); + int p0 = getStartOffset(); + int p1 = getEndOffset(); + + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + Container c = getContainer(); + + Color fg = getForeground(); + JTextComponent tc = null; + if (c instanceof JTextComponent) + { + tc = (JTextComponent) c; + if (! tc.isEnabled()) + fg = tc.getDisabledTextColor(); + } + Color bg = getBackground(); + if (bg != null) + { + g.setColor(bg); + System.err.println("fill background: " + bg); + g.fillRect(r.x, r.y, r.width, r.height); + } + + + // Paint layered highlights if there are any. + if (tc != null) + { + Highlighter h = tc.getHighlighter(); + if (h instanceof LayeredHighlighter) + { + LayeredHighlighter lh = (LayeredHighlighter) h; + lh.paintLayeredHighlights(g, p0, p1, a, tc, this); + } + } + + g.setColor(fg); + glyphPainter.paint(this, g, a, p0, p1); + boolean underline = isUnderline(); + boolean striked = isStrikeThrough(); + if (underline || striked) + { + View parent = getParent(); + // X coordinate. + if (parent != null && parent.getEndOffset() == p1) + { + // Strip whitespace. + Segment s = getText(p0, p1); + while (s.count > 0 && Character.isWhitespace(s.array[s.count - 1])) + { + p1--; + s.count--; + } + } + int x0 = r.x; + int p = getStartOffset(); + TabExpander tabEx = getTabExpander(); + if (p != p0) + x0 += (int) glyphPainter.getSpan(this, p, p0, tabEx, x0); + int x1 = x0 + (int) glyphPainter.getSpan(this, p0, p1, tabEx, x0); + // Y coordinate. + int y = r.y + r.height - (int) glyphPainter.getDescent(this); + if (underline) + { + int yTmp = y; + yTmp += 1; + g.drawLine(x0, yTmp, x1, yTmp); + } + if (striked) + { + int yTmp = y; + yTmp -= (int) glyphPainter.getAscent(this); + g.drawLine(x0, yTmp, x1, yTmp); + } + } } @@ -555,19 +807,24 @@ public class GlyphView extends View implements TabableView, Cloneable float span = 0; checkPainter(); GlyphPainter painter = getGlyphPainter(); - if (axis == X_AXIS) + switch (axis) { - Element el = getElement(); + case X_AXIS: TabExpander tabEx = null; View parent = getParent(); if (parent instanceof TabExpander) tabEx = (TabExpander) parent; span = painter.getSpan(this, getStartOffset(), getEndOffset(), tabEx, 0.F); + break; + case Y_AXIS: + span = painter.getHeight(this); + if (isSuperscript()) + span += span / 3; + break; + default: + throw new IllegalArgumentException("Illegal axis"); } - else - span = painter.getHeight(this); - return span; } @@ -623,13 +880,7 @@ public class GlyphView extends View implements TabableView, Cloneable */ public TabExpander getTabExpander() { - TabExpander te = null; - View parent = getParent(); - - if (parent instanceof TabExpander) - te = (TabExpander) parent; - - return te; + return tabExpander; } /** @@ -642,9 +893,17 @@ public class GlyphView extends View implements TabableView, Cloneable */ public float getTabbedSpan(float x, TabExpander te) { - Element el = getElement(); - return getGlyphPainter().getSpan(this, el.getStartOffset(), - el.getEndOffset(), te, x); + checkPainter(); + TabExpander old = tabExpander; + tabExpander = te; + if (tabExpander != old) + { + // Changing the tab expander will lead to a relayout in the X_AXIS. + preferenceChanged(null, true, false); + } + tabX = x; + return getGlyphPainter().getSpan(this, getStartOffset(), + getEndOffset(), tabExpander, x); } /** @@ -658,23 +917,8 @@ public class GlyphView extends View implements TabableView, Cloneable */ public float getPartialSpan(int p0, int p1) { - Element el = getElement(); - Document doc = el.getDocument(); - Segment seg = new Segment(); - try - { - doc.getText(p0, p1 - p0, seg); - } - catch (BadLocationException ex) - { - AssertionError ae; - ae = new AssertionError("BadLocationException must not be thrown " - + "here"); - ae.initCause(ex); - throw ae; - } - FontMetrics fm = null; // Fetch font metrics somewhere. - return Utilities.getTabbedTextWidth(seg, fm, 0, null, p0); + checkPainter(); + return glyphPainter.getSpan(this, p0, p1, tabExpander, tabX); } /** @@ -686,10 +930,11 @@ public class GlyphView extends View implements TabableView, Cloneable */ public int getStartOffset() { - int start = startOffset; - if (start < 0) - start = super.getStartOffset(); - return start; + Element el = getElement(); + int offs = el.getStartOffset(); + if (length > 0) + offs += offset; + return offs; } /** @@ -701,12 +946,17 @@ public class GlyphView extends View implements TabableView, Cloneable */ public int getEndOffset() { - int end = endOffset; - if (end < 0) - end = super.getEndOffset(); - return end; + Element el = getElement(); + int offs; + if (length > 0) + offs = el.getStartOffset() + offset + length; + else + offs = el.getEndOffset(); + return offs; } + private Segment cached = new Segment(); + /** * Returns the text segment that this view is responsible for. * @@ -717,10 +967,9 @@ public class GlyphView extends View implements TabableView, Cloneable */ public Segment getText(int p0, int p1) { - Segment txt = new Segment(); try { - getDocument().getText(p0, p1 - p0, txt); + getDocument().getText(p0, p1 - p0, cached); } catch (BadLocationException ex) { @@ -731,7 +980,7 @@ public class GlyphView extends View implements TabableView, Cloneable throw ae; } - return txt; + return cached; } /** @@ -743,16 +992,19 @@ public class GlyphView extends View implements TabableView, Cloneable */ public Font getFont() { - Element el = getElement(); - AttributeSet atts = el.getAttributes(); - String family = StyleConstants.getFontFamily(atts); - int size = StyleConstants.getFontSize(atts); - int style = Font.PLAIN; - if (StyleConstants.isBold(atts)) - style |= Font.BOLD; - if (StyleConstants.isItalic(atts)) - style |= Font.ITALIC; - Font font = new Font(family, style, size); + Document doc = getDocument(); + Font font = null; + if (doc instanceof StyledDocument) + { + StyledDocument styledDoc = (StyledDocument) doc; + font = styledDoc.getFont(getAttributes()); + } + else + { + Container c = getContainer(); + if (c != null) + font = c.getFont(); + } return font; } @@ -885,33 +1137,21 @@ public class GlyphView extends View implements TabableView, Cloneable */ public View breakView(int axis, int p0, float pos, float len) { - if (axis == Y_AXIS) - return this; - - checkPainter(); - GlyphPainter painter = getGlyphPainter(); - - // Try to find a suitable line break. - BreakIterator lineBreaker = BreakIterator.getLineInstance(); - Segment txt = new Segment(); - try - { - int start = getStartOffset(); - int length = getEndOffset() - start; - getDocument().getText(start, length, txt); - } - catch (BadLocationException ex) + View brokenView = this; + if (axis == X_AXIS) { - AssertionError err = new AssertionError("BadLocationException must not " - + "be thrown here."); - err.initCause(ex); - throw err; + checkPainter(); + int end = glyphPainter.getBoundedPosition(this, p0, pos, len); + int breakLoc = getBreakLocation(p0, end); + if (breakLoc != -1) + end = breakLoc; + if (p0 != getStartOffset() || end != getEndOffset()) + { + brokenView = createFragment(p0, end); + if (brokenView instanceof GlyphView) + ((GlyphView) brokenView).tabX = pos; + } } - int breakLocation = - Utilities.getBreakLocation(txt, getContainer().getFontMetrics(getFont()), - (int) pos, (int) (pos + len), - getTabExpander(), p0); - View brokenView = createFragment(p0, breakLocation); return brokenView; } @@ -937,28 +1177,36 @@ public class GlyphView extends View implements TabableView, Cloneable weight = super.getBreakWeight(axis, pos, len); else { - // FIXME: Commented out because the Utilities.getBreakLocation method - // is still buggy. The GoodBreakWeight is a reasonable workaround for - // now. -// int startOffset = getStartOffset(); -// int endOffset = getEndOffset() - 1; -// Segment s = getText(startOffset, endOffset); -// Container c = getContainer(); -// FontMetrics fm = c.getFontMetrics(c.getFont()); -// int x0 = (int) pos; -// int x = (int) (pos + len); -// int breakLoc = Utilities.getBreakLocation(s, fm, x0, x, -// getTabExpander(), -// startOffset); -// if (breakLoc == startOffset || breakLoc == endOffset) -// weight = GoodBreakWeight; -// else -// weight = ExcellentBreakWeight; - weight = GoodBreakWeight; + checkPainter(); + int start = getStartOffset(); + int end = glyphPainter.getBoundedPosition(this, start, pos, len); + if (end == 0) + weight = BadBreakWeight; + else + { + if (getBreakLocation(start, end) != -1) + weight = ExcellentBreakWeight; + else + weight = GoodBreakWeight; + } } return weight; } + private int getBreakLocation(int start, int end) + { + int loc = -1; + Segment s = getText(start, end); + for (char c = s.last(); c != Segment.DONE && loc == -1; c = s.previous()) + { + if (Character.isWhitespace(c)) + { + loc = s.getIndex() - s.getBeginIndex() + 1 + start; + } + } + return loc; + } + /** * Receives notification that some text attributes have changed within the * text fragment that this view is responsible for. This calls @@ -971,7 +1219,7 @@ public class GlyphView extends View implements TabableView, Cloneable */ public void changedUpdate(DocumentEvent e, Shape a, ViewFactory vf) { - preferenceChanged(this, true, true); + preferenceChanged(null, true, true); } /** @@ -986,7 +1234,7 @@ public class GlyphView extends View implements TabableView, Cloneable */ public void insertUpdate(DocumentEvent e, Shape a, ViewFactory vf) { - preferenceChanged(this, true, false); + preferenceChanged(null, true, false); } /** @@ -1001,7 +1249,7 @@ public class GlyphView extends View implements TabableView, Cloneable */ public void removeUpdate(DocumentEvent e, Shape a, ViewFactory vf) { - preferenceChanged(this, true, false); + preferenceChanged(null, true, false); } /** @@ -1015,11 +1263,12 @@ public class GlyphView extends View implements TabableView, Cloneable */ public View createFragment(int p0, int p1) { + checkPainter(); + Element el = getElement(); GlyphView fragment = (GlyphView) clone(); - if (p0 != getStartOffset()) - fragment.startOffset = p0; - if (p1 != getEndOffset()) - fragment.endOffset = p1; + fragment.offset = p0 - el.getStartOffset(); + fragment.length = p1 - p0; + fragment.glyphPainter = glyphPainter.getPainter(fragment, p0, p1); return fragment; } @@ -1031,14 +1280,21 @@ public class GlyphView extends View implements TabableView, Cloneable */ public float getAlignment(int axis) { + checkPainter(); float align; if (axis == Y_AXIS) { - checkPainter(); GlyphPainter painter = getGlyphPainter(); float height = painter.getHeight(this); float descent = painter.getDescent(this); - align = (height - descent) / height; + float ascent = painter.getAscent(this); + if (isSuperscript()) + align = 1.0F; + else if (isSubscript()) + align = height > 0 ? (height - (descent + (ascent / 2))) / height + : 0; + else + align = height > 0 ? (height - descent) / height : 0; } else align = super.getAlignment(axis); diff --git a/libjava/classpath/javax/swing/text/InternationalFormatter.java b/libjava/classpath/javax/swing/text/InternationalFormatter.java index 8db435c18f3..d6f2359e6f7 100644 --- a/libjava/classpath/javax/swing/text/InternationalFormatter.java +++ b/libjava/classpath/javax/swing/text/InternationalFormatter.java @@ -285,7 +285,7 @@ public class InternationalFormatter if (minimum != null && minimum.compareTo(o) > 0) throw new ParseException("The value may not be less than the" + " specified minimum", 0); - if (maximum != null && minimum.compareTo(o) < 0) + if (maximum != null && maximum.compareTo(o) < 0) throw new ParseException("The value may not be greater than the" + " specified maximum", 0); return o; diff --git a/libjava/classpath/javax/swing/text/JTextComponent.java b/libjava/classpath/javax/swing/text/JTextComponent.java index 6da84bfe7d8..68ba1f4284c 100644 --- a/libjava/classpath/javax/swing/text/JTextComponent.java +++ b/libjava/classpath/javax/swing/text/JTextComponent.java @@ -38,8 +38,6 @@ exception statement from your version. */ package javax.swing.text; -import gnu.classpath.NotImplementedException; - import java.awt.AWTEvent; import java.awt.Color; import java.awt.Container; @@ -47,6 +45,7 @@ import java.awt.Dimension; import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; @@ -59,6 +58,7 @@ import java.awt.event.MouseEvent; import java.io.IOException; import java.io.Reader; import java.io.Writer; +import java.text.BreakIterator; import java.util.Enumeration; import java.util.Hashtable; @@ -67,6 +67,7 @@ import javax.accessibility.AccessibleAction; import javax.accessibility.AccessibleContext; import javax.accessibility.AccessibleEditableText; import javax.accessibility.AccessibleRole; +import javax.accessibility.AccessibleState; import javax.accessibility.AccessibleStateSet; import javax.accessibility.AccessibleText; import javax.swing.Action; @@ -105,12 +106,7 @@ public abstract class JTextComponent extends JComponent /** * The caret's offset. */ - int dot = 0; - - /** - * The current JTextComponent. - */ - JTextComponent textComp = JTextComponent.this; + private int caretDot; /** * Construct an AccessibleJTextComponent. @@ -118,7 +114,8 @@ public abstract class JTextComponent extends JComponent public AccessibleJTextComponent() { super(); - textComp.addCaretListener(this); + JTextComponent.this.addCaretListener(this); + caretDot = getCaretPosition(); } /** @@ -129,8 +126,7 @@ public abstract class JTextComponent extends JComponent */ public int getCaretPosition() { - dot = textComp.getCaretPosition(); - return dot; + return JTextComponent.this.getCaretPosition(); } /** @@ -141,7 +137,7 @@ public abstract class JTextComponent extends JComponent */ public String getSelectedText() { - return textComp.getSelectedText(); + return JTextComponent.this.getSelectedText(); } /** @@ -156,9 +152,10 @@ public abstract class JTextComponent extends JComponent */ public int getSelectionStart() { - if (getSelectedText() == null || (textComp.getText().equals(""))) + if (getSelectedText() == null + || (JTextComponent.this.getText().equals(""))) return 0; - return textComp.getSelectionStart(); + return JTextComponent.this.getSelectionStart(); } /** @@ -173,9 +170,7 @@ public abstract class JTextComponent extends JComponent */ public int getSelectionEnd() { - if (getSelectedText() == null || (textComp.getText().equals(""))) - return 0; - return textComp.getSelectionEnd(); + return JTextComponent.this.getSelectionEnd(); } /** @@ -185,10 +180,20 @@ public abstract class JTextComponent extends JComponent * @param e - the caret update event */ public void caretUpdate(CaretEvent e) - throws NotImplementedException { - // TODO: fire appropriate event. - dot = e.getDot(); + int dot = e.getDot(); + int mark = e.getMark(); + if (caretDot != dot) + { + firePropertyChange(ACCESSIBLE_CARET_PROPERTY, new Integer(caretDot), + new Integer(dot)); + caretDot = dot; + } + if (mark != dot) + { + firePropertyChange(ACCESSIBLE_SELECTION_PROPERTY, null, + getSelectedText()); + } } /** @@ -197,10 +202,10 @@ public abstract class JTextComponent extends JComponent * @return the accessible state set of this component */ public AccessibleStateSet getAccessibleStateSet() - throws NotImplementedException { AccessibleStateSet state = super.getAccessibleStateSet(); - // TODO: Figure out what state must be added here to the super's state. + if (isEditable()) + state.add(AccessibleState.EDITABLE); return state; } @@ -248,9 +253,9 @@ public abstract class JTextComponent extends JComponent * @param e - the insertion event */ public void insertUpdate(DocumentEvent e) - throws NotImplementedException { - // TODO + firePropertyChange(ACCESSIBLE_TEXT_PROPERTY, null, + new Integer(e.getOffset())); } /** @@ -261,9 +266,9 @@ public abstract class JTextComponent extends JComponent * @param e - the removal event */ public void removeUpdate(DocumentEvent e) - throws NotImplementedException { - // TODO + firePropertyChange(ACCESSIBLE_TEXT_PROPERTY, null, + new Integer(e.getOffset())); } /** @@ -274,9 +279,9 @@ public abstract class JTextComponent extends JComponent * @param e - text change event */ public void changedUpdate(DocumentEvent e) - throws NotImplementedException { - // TODO + firePropertyChange(ACCESSIBLE_TEXT_PROPERTY, null, + new Integer(e.getOffset())); } /** @@ -289,9 +294,8 @@ public abstract class JTextComponent extends JComponent * @return a character index, or -1 */ public int getIndexAtPoint(Point p) - throws NotImplementedException { - return 0; // TODO + return viewToModel(p); } /** @@ -305,9 +309,51 @@ public abstract class JTextComponent extends JComponent * @return a character's bounding box, or null */ public Rectangle getCharacterBounds(int index) - throws NotImplementedException { - return null; // TODO + // This is basically the same as BasicTextUI.modelToView(). + + Rectangle bounds = null; + if (index >= 0 && index < doc.getLength() - 1) + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + TextUI ui = getUI(); + if (ui != null) + { + // Get editor rectangle. + Rectangle rect = new Rectangle(); + Insets insets = getInsets(); + rect.x = insets.left; + rect.y = insets.top; + rect.width = getWidth() - insets.left - insets.right; + rect.height = getHeight() - insets.top - insets.bottom; + View rootView = ui.getRootView(JTextComponent.this); + if (rootView != null) + { + rootView.setSize(rect.width, rect.height); + Shape s = rootView.modelToView(index, + Position.Bias.Forward, + index + 1, + Position.Bias.Backward, + rect); + if (s != null) + bounds = s.getBounds(); + } + } + } + catch (BadLocationException ex) + { + // Ignore (return null). + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } + } + return bounds; } /** @@ -317,7 +363,7 @@ public abstract class JTextComponent extends JComponent */ public int getCharCount() { - return textComp.getText().length(); + return JTextComponent.this.getText().length(); } /** @@ -329,9 +375,26 @@ public abstract class JTextComponent extends JComponent * @return the character's attributes */ public AttributeSet getCharacterAttribute(int index) - throws NotImplementedException { - return null; // TODO + AttributeSet atts; + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + Element el = doc.getDefaultRootElement(); + while (! el.isLeaf()) + { + int i = el.getElementIndex(index); + el = el.getElement(i); + } + atts = el.getAttributes(); + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } + return atts; } /** @@ -344,9 +407,8 @@ public abstract class JTextComponent extends JComponent * @return the part of text at that index, or null */ public String getAtIndex(int part, int index) - throws NotImplementedException { - return null; // TODO + return getAtIndexImpl(part, index, 0); } /** @@ -359,9 +421,8 @@ public abstract class JTextComponent extends JComponent * @return the part of text after that index, or null */ public String getAfterIndex(int part, int index) - throws NotImplementedException { - return null; // TODO + return getAtIndexImpl(part, index, 1); } /** @@ -374,11 +435,84 @@ public abstract class JTextComponent extends JComponent * @return the part of text before that index, or null */ public String getBeforeIndex(int part, int index) - throws NotImplementedException { - return null; // TODO + return getAtIndexImpl(part, index, -1); } - + + /** + * Implements getAtIndex(), getBeforeIndex() and getAfterIndex(). + * + * @param part the part to return, either CHARACTER, WORD or SENTENCE + * @param index the index + * @param dir the direction, -1 for backwards, 0 for here, +1 for forwards + * + * @return the resulting string + */ + private String getAtIndexImpl(int part, int index, int dir) + { + String ret = null; + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readLock(); + try + { + BreakIterator iter = null; + switch (part) + { + case CHARACTER: + iter = BreakIterator.getCharacterInstance(getLocale()); + break; + case WORD: + iter = BreakIterator.getWordInstance(getLocale()); + break; + case SENTENCE: + iter = BreakIterator.getSentenceInstance(getLocale()); + break; + default: + break; + } + String text = doc.getText(0, doc.getLength() - 1); + iter.setText(text); + int start = index; + int end = index; + switch (dir) + { + case 0: + if (iter.isBoundary(index)) + { + start = index; + end = iter.following(index); + } + else + { + start = iter.preceding(index); + end = iter.next(); + } + break; + case 1: + start = iter.following(index); + end = iter.next(); + break; + case -1: + end = iter.preceding(index); + start = iter.previous(); + break; + default: + assert false; + } + ret = text.substring(start, end); + } + catch (BadLocationException ex) + { + // Ignore (return null). + } + finally + { + if (doc instanceof AbstractDocument) + ((AbstractDocument) doc).readUnlock(); + } + return ret; + } + /** * Returns the number of actions for this object. The zero-th * object represents the default action. @@ -386,9 +520,8 @@ public abstract class JTextComponent extends JComponent * @return the number of actions (0-based). */ public int getAccessibleActionCount() - throws NotImplementedException { - return 0; // TODO + return getActions().length; } /** @@ -400,10 +533,12 @@ public abstract class JTextComponent extends JComponent * @return description of the i-th action */ public String getAccessibleActionDescription(int i) - throws NotImplementedException { - // TODO: Not implemented fully - return super.getAccessibleDescription(); + String desc = null; + Action[] actions = getActions(); + if (i >= 0 && i < actions.length) + desc = (String) actions[i].getValue(Action.NAME); + return desc; } /** @@ -415,9 +550,17 @@ public abstract class JTextComponent extends JComponent * @return true if the action was performed successfully */ public boolean doAccessibleAction(int i) - throws NotImplementedException { - return false; // TODO + boolean ret = false; + Action[] actions = getActions(); + if (i >= 0 && i < actions.length) + { + ActionEvent ev = new ActionEvent(JTextComponent.this, + ActionEvent.ACTION_PERFORMED, null); + actions[i].actionPerformed(ev); + ret = true; + } + return ret; } /** @@ -426,9 +569,8 @@ public abstract class JTextComponent extends JComponent * @param s - the new text contents. */ public void setTextContents(String s) - throws NotImplementedException { - // TODO + setText(s); } /** @@ -438,9 +580,16 @@ public abstract class JTextComponent extends JComponent * @param s - the new text */ public void insertTextAtIndex(int index, String s) - throws NotImplementedException { - replaceText(index, index, s); + try + { + doc.insertString(index, s, null); + } + catch (BadLocationException ex) + { + // What should we do with this? + ex.printStackTrace(); + } } /** @@ -453,7 +602,7 @@ public abstract class JTextComponent extends JComponent { try { - return textComp.getText(start, end - start); + return JTextComponent.this.getText(start, end - start); } catch (BadLocationException ble) { @@ -481,8 +630,8 @@ public abstract class JTextComponent extends JComponent */ public void cut(int start, int end) { - textComp.select(start, end); - textComp.cut(); + JTextComponent.this.select(start, end); + JTextComponent.this.cut(); } /** @@ -492,8 +641,8 @@ public abstract class JTextComponent extends JComponent */ public void paste(int start) { - textComp.setCaretPosition(start); - textComp.paste(); + JTextComponent.this.setCaretPosition(start); + JTextComponent.this.paste(); } /** @@ -506,8 +655,8 @@ public abstract class JTextComponent extends JComponent */ public void replaceText(int start, int end, String s) { - textComp.select(start, end); - textComp.replaceSelection(s); + JTextComponent.this.select(start, end); + JTextComponent.this.replaceSelection(s); } /** @@ -518,7 +667,7 @@ public abstract class JTextComponent extends JComponent */ public void selectText(int start, int end) { - textComp.select(start, end); + JTextComponent.this.select(start, end); } /** @@ -529,9 +678,12 @@ public abstract class JTextComponent extends JComponent * @param s - the new attribute set for the text in the range */ public void setAttributes(int start, int end, AttributeSet s) - throws NotImplementedException { - // TODO + if (doc instanceof StyledDocument) + { + StyledDocument sdoc = (StyledDocument) doc; + sdoc.setCharacterAttributes(start, end - start, s, true); + } } } diff --git a/libjava/classpath/javax/swing/text/LabelView.java b/libjava/classpath/javax/swing/text/LabelView.java index 03279c4b2b5..7cfeae86229 100644 --- a/libjava/classpath/javax/swing/text/LabelView.java +++ b/libjava/classpath/javax/swing/text/LabelView.java @@ -39,9 +39,11 @@ exception statement from your version. */ package javax.swing.text; import java.awt.Color; +import java.awt.Container; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Shape; +import java.awt.Toolkit; import javax.swing.event.DocumentEvent; @@ -90,6 +92,11 @@ public class LabelView extends GlyphView boolean superscript; /** + * Indicates if the attributes must be refetched. + */ + private boolean valid; + + /** * Creates a new GlyphView for the given Element. * * @param element the element that is rendered by this GlyphView @@ -97,7 +104,7 @@ public class LabelView extends GlyphView public LabelView(Element element) { super(element); - setPropertiesFromAttributes(); + valid = false; } /** @@ -107,28 +114,25 @@ public class LabelView extends GlyphView */ protected void setPropertiesFromAttributes() { - Element el = getElement(); - AttributeSet atts = el.getAttributes(); - // We cannot use StyleConstants.getBackground() here, because that returns - // BLACK as default (when background == null). What we need is the - // background setting of the text component instead, which is what we get - // when background == null anyway. - background = (Color) atts.getAttribute(StyleConstants.Background); - foreground = StyleConstants.getForeground(atts); - strikeThrough = StyleConstants.isStrikeThrough(atts); - subscript = StyleConstants.isSubscript(atts); - superscript = StyleConstants.isSuperscript(atts); - underline = StyleConstants.isUnderline(atts); - - // Determine the font. - String family = StyleConstants.getFontFamily(atts); - int size = StyleConstants.getFontSize(atts); - int style = Font.PLAIN; - if (StyleConstants.isBold(atts)) - style |= Font.BOLD; - if (StyleConstants.isItalic(atts)) - style |= Font.ITALIC; - font = new Font(family, style, size); + AttributeSet atts = getAttributes(); + setStrikeThrough(StyleConstants.isStrikeThrough(atts)); + setSubscript(StyleConstants.isSubscript(atts)); + setSuperscript(StyleConstants.isSuperscript(atts)); + setUnderline(StyleConstants.isUnderline(atts)); + + // Determine the font and colors. + Document d = getDocument(); + if (d instanceof StyledDocument) + { + StyledDocument doc = (StyledDocument) d; + font = doc.getFont(atts); + if (atts.isDefined(StyleConstants.Background)) + background = doc.getBackground(atts); + else + background = null; + foreground = doc.getForeground(atts); + } + valid = true; } /** @@ -142,7 +146,8 @@ public class LabelView extends GlyphView */ public void changedUpdate(DocumentEvent e, Shape a, ViewFactory vf) { - setPropertiesFromAttributes(); + valid = false; + super.changedUpdate(e, a, vf); } /** @@ -152,6 +157,8 @@ public class LabelView extends GlyphView */ public Color getBackground() { + if (! valid) + setPropertiesFromAttributes(); return background; } @@ -175,6 +182,8 @@ public class LabelView extends GlyphView */ public Color getForeground() { + if (! valid) + setPropertiesFromAttributes(); return foreground; } @@ -185,6 +194,8 @@ public class LabelView extends GlyphView */ public Font getFont() { + if (! valid) + setPropertiesFromAttributes(); return font; } @@ -197,7 +208,16 @@ public class LabelView extends GlyphView */ protected FontMetrics getFontMetrics() { - return getContainer().getGraphics().getFontMetrics(font); + if (! valid) + setPropertiesFromAttributes(); + + Container c = getContainer(); + FontMetrics fm; + if (c != null) + fm = c.getFontMetrics(font); + else + fm = Toolkit.getDefaultToolkit().getFontMetrics(font); + return fm; } /** @@ -209,6 +229,8 @@ public class LabelView extends GlyphView */ public boolean isUnderline() { + if (! valid) + setPropertiesFromAttributes(); return underline; } @@ -232,6 +254,8 @@ public class LabelView extends GlyphView */ public boolean isSubscript() { + if (! valid) + setPropertiesFromAttributes(); return subscript; } @@ -255,6 +279,8 @@ public class LabelView extends GlyphView */ public boolean isSuperscript() { + if (! valid) + setPropertiesFromAttributes(); return superscript; } @@ -278,6 +304,8 @@ public class LabelView extends GlyphView */ public boolean isStrikeThrough() { + if (! valid) + setPropertiesFromAttributes(); return strikeThrough; } diff --git a/libjava/classpath/javax/swing/text/MaskFormatter.java b/libjava/classpath/javax/swing/text/MaskFormatter.java index d12b9ea29d7..581cceb617d 100644 --- a/libjava/classpath/javax/swing/text/MaskFormatter.java +++ b/libjava/classpath/javax/swing/text/MaskFormatter.java @@ -110,9 +110,7 @@ public class MaskFormatter extends DefaultFormatter */ public MaskFormatter (String mask) throws java.text.ParseException { - // Override super's default behaviour, in MaskFormatter the default - // is not to allow invalid values - setAllowsInvalid(false); + this(); setMask (mask); } @@ -307,60 +305,124 @@ public class MaskFormatter extends DefaultFormatter */ public Object stringToValue (String value) throws ParseException { - int vLength = value.length(); - - // For value to be a valid it must be the same length as the mask - // note this doesn't take into account symbols that occupy more than - // one character, this is something we may possibly need to fix. - if (maskLength != vLength) - throw new ParseException ("stringToValue passed invalid value", vLength); - - // Check if the value is valid according to the mask and valid/invalid - // sets. - try - { - convertValue(value, false); - } - catch (ParseException pe) - { - throw new ParseException("stringToValue passed invalid value", - pe.getErrorOffset()); - } - - if (!getValueContainsLiteralCharacters()) - value = stripLiterals(value); - return super.stringToValue(value); + return super.stringToValue(convertStringToValue(value)); } - /** - * Strips the literal characters from the given String. - * @param value the String to strip - * @return the stripped String - */ - String stripLiterals(String value) + private String convertStringToValue(String value) + throws ParseException { StringBuffer result = new StringBuffer(); - for (int i = 0; i < value.length(); i++) + char valueChar; + boolean isPlaceHolder; + + int length = mask.length(); + for (int i = 0, j = 0; j < length; j++) { - // Only append the characters that don't correspond to literal - // characters in the mask. - switch (mask.charAt(i)) + char maskChar = mask.charAt(j); + + if (i < value.length()) + { + isPlaceHolder = false; + valueChar = value.charAt(i); + if (maskChar != ESCAPE_CHAR && maskChar != valueChar) + { + if (invalidChars != null + && invalidChars.indexOf(valueChar) != -1) + throw new ParseException("Invalid character: " + valueChar, i); + if (validChars != null + && validChars.indexOf(valueChar) == -1) + throw new ParseException("Invalid character: " + valueChar, i); + } + } + else if (placeHolder != null && i < placeHolder.length()) + { + isPlaceHolder = true; + valueChar = placeHolder.charAt(i); + } + else + { + isPlaceHolder = true; + valueChar = placeHolderChar; + } + + // This switch block on the mask character checks that the character + // within value at that point is valid according to the + // mask and also converts to upper/lowercase as needed. + switch (maskChar) { case NUM_CHAR: + if (! Character.isDigit(valueChar)) + throw new ParseException("Number expected: " + valueChar, i); + result.append(valueChar); + i++; + break; case UPPERCASE_CHAR: + if (! Character.isLetter(valueChar)) + throw new ParseException("Letter expected", i); + result.append(Character.toUpperCase(valueChar)); + i++; + break; case LOWERCASE_CHAR: + if (! Character.isLetter(valueChar)) + throw new ParseException("Letter expected", i); + result.append(Character.toLowerCase(valueChar)); + i++; + break; case ALPHANUM_CHAR: + if (! Character.isLetterOrDigit(valueChar)) + throw new ParseException("Letter or number expected", i); + result.append(valueChar); + i++; + break; case LETTER_CHAR: + if (! Character.isLetter(valueChar)) + throw new ParseException("Letter expected", i); + result.append(valueChar); + i++; + break; case HEX_CHAR: + if (hexString.indexOf(valueChar) == -1 && ! isPlaceHolder) + throw new ParseException("Hexadecimal character expected", i); + result.append(valueChar); + i++; + break; case ANYTHING_CHAR: - result.append(value.charAt(i)); + result.append(valueChar); + i++; + break; + case ESCAPE_CHAR: + // Escape character, check the next character to make sure that + // the literals match + j++; + if (j < length) + { + maskChar = mask.charAt(j); + if (! isPlaceHolder && getValueContainsLiteralCharacters() + && valueChar != maskChar) + throw new ParseException ("Invalid character: "+ valueChar, i); + if (getValueContainsLiteralCharacters()) + { + result.append(maskChar); + } + i++; + } + else if (! isPlaceHolder) + throw new ParseException("Bad match at trailing escape: ", i); break; default: + if (! isPlaceHolder && getValueContainsLiteralCharacters() + && valueChar != maskChar) + throw new ParseException ("Invalid character: "+ valueChar, i); + if (getValueContainsLiteralCharacters()) + { + result.append(maskChar); + } + i++; } } return result.toString(); } - + /** * Returns a String representation of the Object value based on the mask. * @@ -368,21 +430,10 @@ public class MaskFormatter extends DefaultFormatter * @throws ParseException if value is invalid for this mask and valid/invalid * character sets */ - public String valueToString (Object value) throws ParseException + public String valueToString(Object value) throws ParseException { - String result = super.valueToString(value); - int rLength = result.length(); - - // If value is longer than the mask, truncate it. Note we may need to - // account for symbols that are more than one character long. - if (rLength > maskLength) - result = result.substring(0, maskLength); - - // Verify the validity and convert to upper/lowercase as needed. - result = convertValue(result, true); - if (rLength < maskLength) - return pad(result, rLength); - return result; + String string = value != null ? value.toString() : ""; + return convertValueToString(string); } /** @@ -390,194 +441,116 @@ public class MaskFormatter extends DefaultFormatter * sure that it is valid. If convert is true, it also * converts letters to upper/lowercase as required by the mask. * @param value the String to convert - * @param convert true if we should convert letters to upper/lowercase * @return the converted String * @throws ParseException if the given String isn't valid for the mask */ - String convertValue(String value, boolean convert) throws ParseException + private String convertValueToString(String value) + throws ParseException { - StringBuffer result = new StringBuffer(value); - char markChar; - char resultChar; - boolean literal; - - // this boolean is specifically to avoid calling the isCharValid method - // when neither invalidChars or validChars has been set - boolean checkCharSets = (invalidChars != null || validChars != null); + StringBuffer result = new StringBuffer(); + char valueChar; + boolean isPlaceHolder; - for (int i = 0, j = 0; i < value.length(); i++, j++) + int length = mask.length(); + for (int i = 0, j = 0; j < length; j++) { - literal = false; - resultChar = result.charAt(i); + char maskChar = mask.charAt(j); + if (i < value.length()) + { + isPlaceHolder = false; + valueChar = value.charAt(i); + if (maskChar != ESCAPE_CHAR && valueChar != maskChar) + { + if (invalidChars != null + && invalidChars.indexOf(valueChar) != -1) + throw new ParseException("Invalid character: " + valueChar, + i); + if (validChars != null && validChars.indexOf(valueChar) == -1) + throw new ParseException("Invalid character: " + valueChar +" maskChar: " + maskChar, + i); + } + } + else if (placeHolder != null && i < placeHolder.length()) + { + isPlaceHolder = true; + valueChar = placeHolder.charAt(i); + } + else + { + isPlaceHolder = true; + valueChar = placeHolderChar; + } + // This switch block on the mask character checks that the character // within value at that point is valid according to the // mask and also converts to upper/lowercase as needed. - switch (mask.charAt(j)) + switch (maskChar) { case NUM_CHAR: - if (!Character.isDigit(resultChar)) - throw new ParseException("Number expected", i); + if ( ! isPlaceHolder && ! Character.isDigit(valueChar)) + throw new ParseException("Number expected: " + valueChar, i); + result.append(valueChar); + i++; break; case UPPERCASE_CHAR: - if (!Character.isLetter(resultChar)) + if (! Character.isLetter(valueChar)) throw new ParseException("Letter expected", i); - if (convert) - result.setCharAt(i, Character.toUpperCase(resultChar)); + result.append(Character.toUpperCase(valueChar)); + i++; break; case LOWERCASE_CHAR: - if (!Character.isLetter(resultChar)) + if (! Character.isLetter(valueChar)) throw new ParseException("Letter expected", i); - if (convert) - result.setCharAt(i, Character.toLowerCase(resultChar)); + result.append(Character.toLowerCase(valueChar)); + i++; break; case ALPHANUM_CHAR: - if (!Character.isLetterOrDigit(resultChar)) + if (! Character.isLetterOrDigit(valueChar)) throw new ParseException("Letter or number expected", i); + result.append(valueChar); + i++; break; case LETTER_CHAR: - if (!Character.isLetter(resultChar)) + if (! Character.isLetter(valueChar)) throw new ParseException("Letter expected", i); + result.append(valueChar); + i++; break; case HEX_CHAR: - if (hexString.indexOf(resultChar) == -1) + if (hexString.indexOf(valueChar) == -1 && ! isPlaceHolder) throw new ParseException("Hexadecimal character expected", i); + result.append(valueChar); + i++; break; case ANYTHING_CHAR: + result.append(valueChar); + i++; break; case ESCAPE_CHAR: // Escape character, check the next character to make sure that // the literals match j++; - literal = true; - if (resultChar != mask.charAt(j)) - throw new ParseException ("Invalid character: "+resultChar, i); + if (j < length) + { + maskChar = mask.charAt(j); + if (! isPlaceHolder && getValueContainsLiteralCharacters() + && valueChar != maskChar) + throw new ParseException ("Invalid character: "+ valueChar, i); + if (getValueContainsLiteralCharacters()) + i++; + result.append(maskChar); + } break; default: - literal = true; - if (!getValueContainsLiteralCharacters() && convert) - throw new ParseException ("Invalid character: "+resultChar, i); - else if (resultChar != mask.charAt(j)) - throw new ParseException ("Invalid character: "+resultChar, i); + if (! isPlaceHolder && getValueContainsLiteralCharacters() + && valueChar != maskChar) + throw new ParseException ("Invalid character: "+ valueChar, i); + if (getValueContainsLiteralCharacters()) + i++; + result.append(maskChar); } - // If necessary, check if the character is valid. - if (!literal && checkCharSets && !isCharValid(resultChar)) - throw new ParseException("invalid character: "+resultChar, i); - - } - return result.toString(); - } - - /** - * Convenience method used by many other methods to check if a character is - * valid according to the mask, the validChars, and the invalidChars. To - * be valid a character must: - * 1. be allowed by the mask - * 2. be present in any non-null validChars String - * 3. not be present in any non-null invalidChars String - * @param testChar the character to test - * @return true if the character is valid - */ - boolean isCharValid(char testChar) - { - char lower = Character.toLowerCase(testChar); - char upper = Character.toUpperCase(testChar); - // If validChars isn't null, the character must appear in it. - if (validChars != null) - if (validChars.indexOf(lower) == -1 && validChars.indexOf(upper) == -1) - return false; - // If invalidChars isn't null, the character must not appear in it. - if (invalidChars != null) - if (invalidChars.indexOf(lower) != -1 - || invalidChars.indexOf(upper) != -1) - return false; - return true; - } - - /** - * Pads the value with literals, the placeholder String and/or placeholder - * character as appropriate. - * @param value the value to pad - * @param currLength the current length of the value - * @return the padded String - */ - String pad (String value, int currLength) - { - StringBuffer result = new StringBuffer(value); - int index = currLength; - while (result.length() < maskLength) - { - // The character used to pad may be a literal, a character from the - // place holder string, or the place holder character. getPadCharAt - // will find the proper one for us. - result.append (getPadCharAt(index)); - index++; } return result.toString(); } - /** - * Returns the character with which to pad the value at the given index - * position. If the mask has a literal at this position, this is returned - * otherwise if the place holder string is initialized and is longer than - * i characters then the character at position i - * from this String is returned. Else, the place holder character is - * returned. - * @param i the index at which we want to pad the value - * @return the character with which we should pad the value - */ - char getPadCharAt(int i) - { - boolean escaped = false; - int target = i; - char maskChar; - int holderLength = placeHolder == null ? -1 : placeHolder.length(); - // We must iterate through the mask from the beginning, because the given - // index doesn't account for escaped characters. For example, with the - // mask "1A'A''A1" index 2 refers to the literalized A, not to the - // single quotation. - for (int n = 0; n < mask.length(); n++) - { - maskChar = mask.charAt(n); - if (maskChar == ESCAPE_CHAR && !escaped) - { - target++; - escaped = true; - } - else if (escaped == true) - { - // Check if target == n which means we've come to the character - // we want to return and since it is a literal (because escaped - // is true), we return it. - if (target == n) - return maskChar; - escaped = false; - } - if (target == n) - { - // We've come to the character we want to return. It wasn't - // escaped so if it isn't a literal we should return either - // the character from place holder string or the place holder - // character, depending on whether or not the place holder - // string is long enough. - switch (maskChar) - { - case NUM_CHAR: - case UPPERCASE_CHAR: - case LOWERCASE_CHAR: - case ALPHANUM_CHAR: - case LETTER_CHAR: - case HEX_CHAR: - case ANYTHING_CHAR: - if (holderLength > i) - return placeHolder.charAt(i); - else - return placeHolderChar; - default: - return maskChar; - } - } - } - // This shouldn't happen - throw new AssertionError("MaskFormatter.getMaskCharAt failed"); - } } diff --git a/libjava/classpath/javax/swing/text/MutableAttributeSet.java b/libjava/classpath/javax/swing/text/MutableAttributeSet.java index 3728b9ce126..5dd2406a3a9 100644 --- a/libjava/classpath/javax/swing/text/MutableAttributeSet.java +++ b/libjava/classpath/javax/swing/text/MutableAttributeSet.java @@ -90,7 +90,7 @@ public interface MutableAttributeSet extends AttributeSet * @throws NullPointerException if names is null * or contains any null values. */ - void removeAttributes(Enumeration names); + void removeAttributes(Enumeration names); /** * Removes attributes from this set if they are found in the diff --git a/libjava/classpath/javax/swing/text/ParagraphView.java b/libjava/classpath/javax/swing/text/ParagraphView.java index c4857863d35..fb4ac65d835 100644 --- a/libjava/classpath/javax/swing/text/ParagraphView.java +++ b/libjava/classpath/javax/swing/text/ParagraphView.java @@ -38,8 +38,12 @@ exception statement from your version. */ package javax.swing.text; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Rectangle; import java.awt.Shape; +import javax.swing.SizeRequirements; import javax.swing.event.DocumentEvent; /** @@ -64,30 +68,45 @@ public class ParagraphView extends FlowView implements TabExpander super(el, X_AXIS); } + /** + * Overridden to adjust when we are the first line, and firstLineIndent + * is not 0. + */ + public short getLeftInset() + { + short leftInset = super.getLeftInset(); + View parent = getParent(); + if (parent != null) + { + if (parent.getView(0) == this) + leftInset += firstLineIndent; + } + return leftInset; + } + public float getAlignment(int axis) { float align; if (axis == X_AXIS) - align = 0.0F; // TODO: Implement according to justification + switch (justification) + { + case StyleConstants.ALIGN_RIGHT: + align = 1.0F; + break; + case StyleConstants.ALIGN_CENTER: + case StyleConstants.ALIGN_JUSTIFIED: + align = 0.5F; + break; + case StyleConstants.ALIGN_LEFT: + default: + align = 0.0F; + } else align = super.getAlignment(axis); return align; } /** - * Allows rows to span the whole parent view. - */ - public float getMaximumSpan(int axis) - { - float max; - if (axis == X_AXIS) - max = Float.MAX_VALUE; - else - max = super.getMaximumSpan(axis); - return max; - } - - /** * Overridden because child views are not necessarily laid out in model * order. */ @@ -107,10 +126,63 @@ public class ParagraphView extends FlowView implements TabExpander return index; } + + /** + * Overridden to perform a baseline layout. The normal BoxView layout + * isn't completely suitable for rows. + */ + protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, + int[] spans) + { + baselineLayout(targetSpan, axis, offsets, spans); + } + + /** + * Overridden to perform a baseline layout. The normal BoxView layout + * isn't completely suitable for rows. + */ + protected SizeRequirements calculateMinorAxisRequirements(int axis, + SizeRequirements r) + { + return baselineRequirements(axis, r); + } + protected void loadChildren(ViewFactory vf) { // Do nothing here. The children are added while layouting. } + + /** + * Overridden to determine the minimum start offset of the row's children. + */ + public int getStartOffset() + { + // Determine minimum start offset of the children. + int offset = Integer.MAX_VALUE; + int n = getViewCount(); + for (int i = 0; i < n; i++) + { + View v = getView(i); + offset = Math.min(offset, v.getStartOffset()); + } + return offset; + } + + /** + * Overridden to determine the maximum end offset of the row's children. + */ + public int getEndOffset() + { + // Determine minimum start offset of the children. + int offset = 0; + int n = getViewCount(); + for (int i = 0; i < n; i++) + { + View v = getView(i); + offset = Math.max(offset, v.getEndOffset()); + } + return offset; + } } /** @@ -192,11 +264,14 @@ public class ParagraphView extends FlowView implements TabExpander * * @param ev the document event * @param a the allocation of this view - * @param fv the view factory to use for creating new child views + * @param vf the view factory to use for creating new child views */ - public void changedUpdate(DocumentEvent ev, Shape a, ViewFactory fv) + public void changedUpdate(DocumentEvent ev, Shape a, ViewFactory vf) { setPropertiesFromAttributes(); + layoutChanged(X_AXIS); + layoutChanged(Y_AXIS); + super.changedUpdate(ev, a, vf); } /** diff --git a/libjava/classpath/javax/swing/text/PlainView.java b/libjava/classpath/javax/swing/text/PlainView.java index 48fe37ce880..e048d5f7168 100644 --- a/libjava/classpath/javax/swing/text/PlainView.java +++ b/libjava/classpath/javax/swing/text/PlainView.java @@ -87,6 +87,16 @@ public class PlainView extends View implements TabExpander */ private transient Segment lineBuffer; + /** + * The base offset for tab calculations. + */ + private int tabBase; + + /** + * The tab size. + */ + private int tabSize; + public PlainView(Element elem) { super(elem); @@ -104,6 +114,7 @@ public class PlainView extends View implements TabExpander { this.font = font; metrics = component.getFontMetrics(font); + tabSize = getTabSize() * metrics.charWidth('m'); } } @@ -115,7 +126,7 @@ public class PlainView extends View implements TabExpander // Ensure metrics are up-to-date. updateMetrics(); - Rectangle rect = a.getBounds(); + Rectangle rect = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); int fontHeight = metrics.getHeight(); return new Rectangle(rect.x, rect.y + (line * fontHeight), rect.width, fontHeight); @@ -132,13 +143,14 @@ public class PlainView extends View implements TabExpander // Get rectangle of the line containing position. int lineIndex = getElement().getElementIndex(position); Rectangle rect = lineToRect(a, lineIndex); + tabBase = rect.x; // Get the rectangle for position. Element line = getElement().getElement(lineIndex); int lineStart = line.getStartOffset(); Segment segment = getLineBuffer(); document.getText(lineStart, position - lineStart, segment); - int xoffset = Utilities.getTabbedTextWidth(segment, metrics, rect.x, + int xoffset = Utilities.getTabbedTextWidth(segment, metrics, tabBase, this, lineStart); // Calc the real rectangle. @@ -262,17 +274,47 @@ public class PlainView extends View implements TabExpander selectionStart = textComponent.getSelectionStart(); selectionEnd = textComponent.getSelectionEnd(); - Rectangle rect = s.getBounds(); + Rectangle rect = s instanceof Rectangle ? (Rectangle) s : s.getBounds(); + tabBase = rect.x; // FIXME: Text may be scrolled. Document document = textComponent.getDocument(); - Element root = document.getDefaultRootElement(); - int y = rect.y + metrics.getAscent(); + Element root = getElement(); int height = metrics.getHeight(); - + + // For layered highlighters we need to paint the layered highlights + // before painting any text. + LayeredHighlighter hl = null; + Highlighter h = textComponent.getHighlighter(); + if (h instanceof LayeredHighlighter) + hl = (LayeredHighlighter) h; + int count = root.getElementCount(); - for (int i = 0; i < count; i++) + + // Determine first and last line inside the clip. + Rectangle clip = g.getClipBounds(); + SwingUtilities.computeIntersection(rect.x, rect.y, rect.width, rect.height, + clip); + int line0 = (clip.y - rect.y) / height; + line0 = Math.max(0, Math.min(line0, count - 1)); + int line1 = (clip.y + clip.height - rect.y) / height; + line1 = Math.max(0, Math.min(line1, count - 1)); + int y = rect.y + metrics.getAscent() + height * line0; + for (int i = line0; i <= line1; i++) { + if (hl != null) + { + Element lineEl = root.getElement(i); + // Exclude the trailing newline from beeing highlighted. + if (i == count) + hl.paintLayeredHighlights(g, lineEl.getStartOffset(), + lineEl.getEndOffset(), s, textComponent, + this); + else + hl.paintLayeredHighlights(g, lineEl.getStartOffset(), + lineEl.getEndOffset() - 1, s, + textComponent, this); + } drawLine(i, g, rect.x, y); y += height; } @@ -303,8 +345,13 @@ public class PlainView extends View implements TabExpander */ public float nextTabStop(float x, int tabStop) { - float tabSizePixels = getTabSize() * metrics.charWidth('m'); - return (float) (Math.floor(x / tabSizePixels) + 1) * tabSizePixels; + float next = x; + if (tabSize != 0) + { + int numTabs = (((int) x) - tabBase) / tabSize; + next = tabBase + (numTabs + 1) * tabSize; + } + return next; } /** @@ -390,41 +437,58 @@ public class PlainView extends View implements TabExpander */ public int viewToModel(float x, float y, Shape a, Position.Bias[] b) { - Rectangle rec = a.getBounds(); - Document doc = getDocument(); - Element root = doc.getDefaultRootElement(); - - // PlainView doesn't support line-wrapping so we can find out which - // Element was clicked on just by the y-position. - // Since the coordinates may be outside of the coordinate space - // of the allocation area (e.g. user dragged mouse outside - // the component) we have to limit the values. - // This has the nice effect that the user can drag the - // mouse above or below the component and it will still - // react to the x values (e.g. when selecting). - int lineClicked - = Math.min(Math.max((int) (y - rec.y) / metrics.getHeight(), 0), - root.getElementCount() - 1); - - Element line = root.getElement(lineClicked); - - Segment s = getLineBuffer(); - int start = line.getStartOffset(); - // We don't want the \n at the end of the line. - int end = line.getEndOffset() - 1; - try - { - doc.getText(start, end - start, s); - } - catch (BadLocationException ble) + Rectangle rec = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + tabBase = rec.x; + + int pos; + if ((int) y < rec.y) + // Above our area vertically. Return start offset. + pos = getStartOffset(); + else if ((int) y > rec.y + rec.height) + // Below our area vertically. Return end offset. + pos = getEndOffset() - 1; + else { - AssertionError ae = new AssertionError("Unexpected bad location"); - ae.initCause(ble); - throw ae; + // Inside the allocation vertically. Determine line and X offset. + Document doc = getDocument(); + Element root = doc.getDefaultRootElement(); + int line = Math.abs(((int) y - rec.y) / metrics.getHeight()); + if (line >= root.getElementCount()) + pos = getEndOffset() - 1; + else + { + Element lineEl = root.getElement(line); + if (x < rec.x) + // To the left of the allocation area. + pos = lineEl.getStartOffset(); + else if (x > rec.x + rec.width) + // To the right of the allocation area. + pos = lineEl.getEndOffset() - 1; + else + { + try + { + int p0 = lineEl.getStartOffset(); + int p1 = lineEl.getEndOffset(); + Segment s = new Segment(); + doc.getText(p0, p1 - p0, s); + tabBase = rec.x; + pos = p0 + Utilities.getTabbedTextOffset(s, metrics, + tabBase, (int) x, + this, p0); + } + catch (BadLocationException ex) + { + // Should not happen. + pos = -1; + } + } + + } } - - int pos = Utilities.getTabbedTextOffset(s, metrics, rec.x, (int)x, this, start); - return Math.max (0, pos); + // Bias is always forward. + b[0] = Position.Bias.Forward; + return pos; } /** @@ -654,7 +718,7 @@ public class PlainView extends View implements TabExpander throw err; } - return Utilities.getTabbedTextWidth(buffer, metrics, 0, this, + return Utilities.getTabbedTextWidth(buffer, metrics, tabBase, this, lineEl.getStartOffset()); } } diff --git a/libjava/classpath/javax/swing/text/Position.java b/libjava/classpath/javax/swing/text/Position.java index bb1449e187a..d02eb834dd9 100644 --- a/libjava/classpath/javax/swing/text/Position.java +++ b/libjava/classpath/javax/swing/text/Position.java @@ -42,8 +42,8 @@ public interface Position { static final class Bias { - public static final Bias Backward = new Bias("backward"); - public static final Bias Forward = new Bias("forward"); + public static final Bias Backward = new Bias("Backward"); + public static final Bias Forward = new Bias("Forward"); private String name; diff --git a/libjava/classpath/javax/swing/text/SimpleAttributeSet.java b/libjava/classpath/javax/swing/text/SimpleAttributeSet.java index 8684ef87d34..701fa8a7c90 100644 --- a/libjava/classpath/javax/swing/text/SimpleAttributeSet.java +++ b/libjava/classpath/javax/swing/text/SimpleAttributeSet.java @@ -123,9 +123,17 @@ public class SimpleAttributeSet */ public Object clone() { - SimpleAttributeSet s = new SimpleAttributeSet(); - s.tab = (Hashtable) tab.clone(); - return s; + SimpleAttributeSet attr = null; + try + { + attr = (SimpleAttributeSet) super.clone(); + attr.tab = (Hashtable) tab.clone(); + } + catch (CloneNotSupportedException ex) + { + assert false; + } + return attr; } /** @@ -253,7 +261,7 @@ public class SimpleAttributeSet * * @return An enumeration of the attribute names. */ - public Enumeration getAttributeNames() + public Enumeration getAttributeNames() { return tab.keys(); } @@ -367,7 +375,7 @@ public class SimpleAttributeSet * @throws NullPointerException if names is null * or contains any null values. */ - public void removeAttributes(Enumeration names) + public void removeAttributes(Enumeration names) { while (names.hasMoreElements()) { diff --git a/libjava/classpath/javax/swing/text/StringContent.java b/libjava/classpath/javax/swing/text/StringContent.java index 8014dc3bce6..4a3f9d75222 100644 --- a/libjava/classpath/javax/swing/text/StringContent.java +++ b/libjava/classpath/javax/swing/text/StringContent.java @@ -39,6 +39,9 @@ exception statement from your version. */ package javax.swing.text; import java.io.Serializable; +import java.lang.ref.Reference; +import java.lang.ref.ReferenceQueue; +import java.lang.ref.WeakReference; import java.util.Iterator; import java.util.Vector; @@ -57,6 +60,76 @@ import javax.swing.undo.UndoableEdit; public final class StringContent implements AbstractDocument.Content, Serializable { + /** + * Stores a reference to a mark that can be resetted to the original value + * after a mark has been moved. This is used for undoing actions. + */ + private class UndoPosRef + { + /** + * The mark that might need to be reset. + */ + private Mark mark; + + /** + * The original offset to reset the mark to. + */ + private int undoOffset; + + /** + * Creates a new UndoPosRef. + * + * @param m the mark + */ + UndoPosRef(Mark m) + { + mark = m; + undoOffset = mark.mark; + } + + /** + * Resets the position of the mark to the value that it had when + * creating this UndoPosRef. + */ + void reset() + { + mark.mark = undoOffset; + } + } + + /** + * Holds a mark into the buffer that is used by StickyPosition to find + * the actual offset of the position. This is pulled out of the + * GapContentPosition object so that the mark and position can be handled + * independently, and most important, so that the StickyPosition can + * be garbage collected while we still hold a reference to the Mark object. + */ + private class Mark + { + /** + * The actual mark into the buffer. + */ + int mark; + + + /** + * The number of GapContentPosition object that reference this mark. If + * it reaches zero, it get's deleted by + * {@link StringContent#garbageCollect()}. + */ + int refCount; + + /** + * Creates a new Mark object for the specified offset. + * + * @param offset the offset + */ + Mark(int offset) + { + mark = offset; + } + } + /** The serialization UID (compatible with JDK1.5). */ private static final long serialVersionUID = 4755994433709540381L; @@ -65,7 +138,12 @@ public final class StringContent private int count; - private Vector positions = new Vector(); + /** + * Holds the marks for the positions. + * + * This is package private to avoid accessor methods. + */ + Vector marks; private class InsertUndo extends AbstractUndoableEdit { @@ -75,6 +153,8 @@ public final class StringContent private String redoContent; + private Vector positions; + public InsertUndo(int start, int length) { super(); @@ -87,10 +167,10 @@ public final class StringContent super.undo(); try { - StringContent.this.checkLocation(this.start, this.length); - this.redoContent = new String(StringContent.this.content, this.start, - this.length); - StringContent.this.remove(this.start, this.length); + if (marks != null) + positions = getPositionsInRange(null, start, length); + redoContent = getString(start, length); + remove(start, length); } catch (BadLocationException b) { @@ -103,7 +183,13 @@ public final class StringContent super.redo(); try { - StringContent.this.insertString(this.start, this.redoContent); + insertString(start, redoContent); + redoContent = null; + if (positions != null) + { + updateUndoPositions(positions); + positions = null; + } } catch (BadLocationException b) { @@ -115,14 +201,19 @@ public final class StringContent private class RemoveUndo extends AbstractUndoableEdit { private int start; - + private int len; private String undoString; + Vector positions; + public RemoveUndo(int start, String str) { super(); this.start = start; + len = str.length(); this.undoString = str; + if (marks != null) + positions = getPositionsInRange(null, start, str.length()); } public void undo() @@ -131,6 +222,12 @@ public final class StringContent try { StringContent.this.insertString(this.start, this.undoString); + if (positions != null) + { + updateUndoPositions(positions); + positions = null; + } + undoString = null; } catch (BadLocationException bad) { @@ -143,8 +240,10 @@ public final class StringContent super.redo(); try { - int end = this.undoString.length(); - StringContent.this.remove(this.start, end); + undoString = getString(start, len); + if (marks != null) + positions = getPositionsInRange(null, start, len); + remove(this.start, len); } catch (BadLocationException bad) { @@ -155,17 +254,18 @@ public final class StringContent private class StickyPosition implements Position { - private int offset = -1; + Mark mark; public StickyPosition(int offset) { - this.offset = offset; - } + // Try to make space. + garbageCollect(); - // This is package-private to avoid an accessor method. - void setOffset(int offset) - { - this.offset = this.offset >= 0 ? offset : -1; + mark = new Mark(offset); + mark.refCount++; + marks.add(mark); + + new WeakReference(this, queueOfDeath); } /** @@ -173,11 +273,25 @@ public final class StringContent */ public int getOffset() { - return offset < 0 ? 0 : offset; + return mark.mark; } } /** + * Used in {@link #remove(int,int)}. + */ + private static final char[] EMPTY = new char[0]; + + /** + * Queues all references to GapContentPositions that are about to be + * GC'ed. This is used to remove the corresponding marks from the + * positionMarks array if the number of references to that mark reaches zero. + * + * This is package private to avoid accessor synthetic methods. + */ + ReferenceQueue queueOfDeath; + + /** * Creates a new instance containing the string "\n". This is equivalent * to calling {@link #StringContent(int)} with an initialLength * of 10. @@ -196,6 +310,7 @@ public final class StringContent public StringContent(int initialLength) { super(); + queueOfDeath = new ReferenceQueue(); if (initialLength < 1) initialLength = 1; this.content = new char[initialLength]; @@ -207,14 +322,13 @@ public final class StringContent int offset, int length) { - Vector refPos = new Vector(); - Iterator iter = this.positions.iterator(); + Vector refPos = v == null ? new Vector() : v; + Iterator iter = marks.iterator(); while(iter.hasNext()) { - Position p = (Position) iter.next(); - if ((offset <= p.getOffset()) - && (p.getOffset() <= (offset + length))) - refPos.add(p); + Mark m = (Mark) iter.next(); + if (offset <= m.mark && m.mark <= offset + length) + refPos.add(new UndoPosRef(m)); } return refPos; } @@ -231,10 +345,10 @@ public final class StringContent */ public Position createPosition(int offset) throws BadLocationException { - if (offset < this.count || offset > this.count) - checkLocation(offset, 0); + // Lazily create marks vector. + if (marks == null) + marks = new Vector(); StickyPosition sp = new StickyPosition(offset); - this.positions.add(sp); return sp; } @@ -246,7 +360,7 @@ public final class StringContent */ public int length() { - return this.count; + return count; } /** @@ -268,27 +382,23 @@ public final class StringContent if (str == null) throw new NullPointerException(); char[] insert = str.toCharArray(); - char[] temp = new char[this.content.length + insert.length]; - this.count += insert.length; - // Copy array and insert the string. - if (where > 0) - System.arraycopy(this.content, 0, temp, 0, where); - System.arraycopy(insert, 0, temp, where, insert.length); - System.arraycopy(this.content, where, temp, (where + insert.length), - (temp.length - where - insert.length)); - if (this.content.length < temp.length) - this.content = new char[temp.length]; - // Copy the result in the original char array. - System.arraycopy(temp, 0, this.content, 0, temp.length); + replace(where, 0, insert); + // Move all the positions. - Vector refPos = getPositionsInRange(this.positions, where, - temp.length - where); - Iterator iter = refPos.iterator(); - while (iter.hasNext()) + if (marks != null) { - StickyPosition p = (StickyPosition)iter.next(); - p.setOffset(p.getOffset() + str.length()); + Iterator iter = marks.iterator(); + int start = where; + if (start == 0) + start = 1; + while (iter.hasNext()) + { + Mark m = (Mark) iter.next(); + if (m.mark >= start) + m.mark += str.length(); + } } + InsertUndo iundo = new InsertUndo(where, insert.length); return iundo; } @@ -308,32 +418,51 @@ public final class StringContent public UndoableEdit remove(int where, int nitems) throws BadLocationException { checkLocation(where, nitems + 1); - char[] temp = new char[(this.content.length - nitems)]; - this.count = this.count - nitems; RemoveUndo rundo = new RemoveUndo(where, new String(this.content, where, nitems)); - // Copy array. - System.arraycopy(this.content, 0, temp, 0, where); - System.arraycopy(this.content, where + nitems, temp, where, - this.content.length - where - nitems); - this.content = new char[temp.length]; - // Then copy the result in the original char array. - System.arraycopy(temp, 0, this.content, 0, this.content.length); + + replace(where, nitems, EMPTY); // Move all the positions. - Vector refPos = getPositionsInRange(this.positions, where, - this.content.length + nitems - where); - Iterator iter = refPos.iterator(); - while (iter.hasNext()) + if (marks != null) { - StickyPosition p = (StickyPosition)iter.next(); - int result = p.getOffset() - nitems; - p.setOffset(result); - if (result < 0) - this.positions.remove(p); + Iterator iter = marks.iterator(); + while (iter.hasNext()) + { + Mark m = (Mark) iter.next(); + if (m.mark >= where + nitems) + m.mark -= nitems; + else if (m.mark >= where) + m.mark = where; + } } return rundo; } - + + private void replace(int offs, int numRemove, char[] insert) + { + int insertLength = insert.length; + int delta = insertLength - numRemove; + int src = offs + numRemove; + int numMove = count - src; + int dest = src + delta; + if (count + delta >= content.length) + { + // Grow data array. + int newLength = Math.max(2 * content.length, count + delta); + char[] newContent = new char[newLength]; + System.arraycopy(content, 0, newContent, 0, offs); + System.arraycopy(insert, 0, newContent, offs, insertLength); + System.arraycopy(content, src, newContent, dest, numMove); + content = newContent; + } + else + { + System.arraycopy(content, src, content, dest, numMove); + System.arraycopy(insert, 0, content, offs, insertLength); + } + count += delta; + } + /** * Returns a new String containing the characters in the * specified range. @@ -348,6 +477,8 @@ public final class StringContent */ public String getString(int where, int len) throws BadLocationException { + // The RI throws a StringIndexOutOfBoundsException here, which + // smells like a bug. We throw a BadLocationException instead. checkLocation(where, len); return new String(this.content, where, len); } @@ -368,22 +499,28 @@ public final class StringContent public void getChars(int where, int len, Segment txt) throws BadLocationException { - checkLocation(where, len); - txt.array = this.content; + if (where + len > count) + throw new BadLocationException("Invalid location", where + len); + txt.array = content; txt.offset = where; txt.count = len; } /** - * @specnote This method is not very well specified and the positions vector - * is implementation specific. The undo positions are managed - * differently in this implementation, this method is only here - * for binary compatibility. + * Resets the positions in the specified vector to their original offset + * after a undo operation is performed. For example, after removing some + * content, the positions in the removed range will all be set to one + * offset. This method restores the positions to their original offsets + * after an undo. */ protected void updateUndoPositions(Vector positions) { - // We do nothing here. + for (Iterator i = positions.iterator(); i.hasNext();) + { + UndoPosRef pos = (UndoPosRef) i.next(); + pos.reset(); + } } /** @@ -405,6 +542,29 @@ public final class StringContent else if ((where + len) > this.count) throw new BadLocationException("Invalid range", this.count); } - + + /** + * Polls the queue of death for GapContentPositions, updates the + * corresponding reference count and removes the corresponding mark + * if the refcount reaches zero. + * + * This is package private to avoid accessor synthetic methods. + */ + void garbageCollect() + { + Reference ref = queueOfDeath.poll(); + while (ref != null) + { + if (ref != null) + { + StickyPosition pos = (StickyPosition) ref.get(); + Mark m = pos.mark; + m.refCount--; + if (m.refCount == 0) + marks.remove(m); + } + ref = queueOfDeath.poll(); + } + } } diff --git a/libjava/classpath/javax/swing/text/StyleConstants.java b/libjava/classpath/javax/swing/text/StyleConstants.java index c7906b8ad32..4e5005c6bb2 100644 --- a/libjava/classpath/javax/swing/text/StyleConstants.java +++ b/libjava/classpath/javax/swing/text/StyleConstants.java @@ -40,6 +40,7 @@ package javax.swing.text; import java.awt.Color; import java.awt.Component; +import java.util.ArrayList; import javax.swing.Icon; @@ -163,6 +164,12 @@ public class StyleConstants public static final Object ResolveAttribute = new StyleConstants("resolver"); + /** + * All StyleConstants keys. This is used in StyleContext to register + * all known keys as static attribute keys for serialization. + */ + static ArrayList keys; + String keyname; // Package-private to avoid accessor constructor for use by @@ -170,6 +177,9 @@ public class StyleConstants StyleConstants(String k) { keyname = k; + if (keys == null) + keys = new ArrayList(); + keys.add(this); } /** @@ -729,6 +739,7 @@ public class StyleConstants */ public static void setIcon(MutableAttributeSet a, Icon c) { + a.addAttribute(AbstractDocument.ElementNameAttribute, IconElementName); a.addAttribute(IconAttribute, c); } diff --git a/libjava/classpath/javax/swing/text/StyleContext.java b/libjava/classpath/javax/swing/text/StyleContext.java index 63df3df6a91..4dded0d0402 100644 --- a/libjava/classpath/javax/swing/text/StyleContext.java +++ b/libjava/classpath/javax/swing/text/StyleContext.java @@ -43,19 +43,25 @@ import java.awt.Font; import java.awt.FontMetrics; import java.awt.Toolkit; import java.io.IOException; +import java.io.NotSerializableException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; +import java.lang.ref.WeakReference; +import java.util.Collections; import java.util.Enumeration; import java.util.EventListener; import java.util.Hashtable; +import java.util.Iterator; +import java.util.Map; +import java.util.WeakHashMap; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.EventListenerList; public class StyleContext - implements Serializable, AbstractDocument.AttributeContext + implements Serializable, AbstractDocument.AttributeContext { /** The serialization UID (compatible with JDK1.5). */ private static final long serialVersionUID = 8042858831190784241L; @@ -66,11 +72,10 @@ public class StyleContext /** The serialization UID (compatible with JDK1.5). */ private static final long serialVersionUID = -6690628971806226374L; - protected ChangeEvent changeEvent; + protected transient ChangeEvent changeEvent; protected EventListenerList listenerList; - AttributeSet attributes; - String name; + private transient AttributeSet attributes; public NamedStyle() { @@ -84,22 +89,26 @@ public class StyleContext public NamedStyle(String name, Style parent) { - this.name = name; - this.attributes = getEmptySet(); - this.changeEvent = new ChangeEvent(this); - this.listenerList = new EventListenerList(); - setResolveParent(parent); + attributes = getEmptySet(); + listenerList = new EventListenerList(); + if (name != null) + setName(name); + if (parent != null) + setResolveParent(parent); } public String getName() { + String name = null; + if (isDefined(StyleConstants.NameAttribute)) + name = getAttribute(StyleConstants.NameAttribute).toString(); return name; } public void setName(String n) { - name = n; - fireStateChanged(); + if (n != null) + addAttribute(StyleConstants.NameAttribute, n); } public void addChangeListener(ChangeListener l) @@ -112,7 +121,7 @@ public class StyleContext listenerList.remove(ChangeListener.class, l); } - public EventListener[] getListeners(Class listenerType) + public T[] getListeners(Class listenerType) { return listenerList.getListeners(listenerType); } @@ -127,6 +136,9 @@ public class StyleContext ChangeListener[] listeners = getChangeListeners(); for (int i = 0; i < listeners.length; ++i) { + // Lazily create event. + if (changeEvent == null) + changeEvent = new ChangeEvent(this); listeners[i].stateChanged(changeEvent); } } @@ -155,7 +167,10 @@ public class StyleContext public AttributeSet copyAttributes() { - return attributes.copyAttributes(); + // The RI returns a NamedStyle as copy, so do we. + NamedStyle copy = new NamedStyle(); + copy.attributes = attributes.copyAttributes(); + return copy; } public Object getAttribute(Object attrName) @@ -168,7 +183,7 @@ public class StyleContext return attributes.getAttributeCount(); } - public Enumeration getAttributeNames() + public Enumeration getAttributeNames() { return attributes.getAttributeNames(); } @@ -195,7 +210,7 @@ public class StyleContext fireStateChanged(); } - public void removeAttributes(Enumeration names) + public void removeAttributes(Enumeration names) { attributes = StyleContext.this.removeAttributes(attributes, names); fireStateChanged(); @@ -210,112 +225,125 @@ public class StyleContext public void setResolveParent(AttributeSet parent) { if (parent != null) - { - attributes = StyleContext.this.addAttribute - (attributes, ResolveAttribute, parent); - } - fireStateChanged(); + addAttribute(StyleConstants.ResolveAttribute, parent); + else + removeAttribute(StyleConstants.ResolveAttribute); } public String toString() { - return ("[NamedStyle: name=" + name + ", attrs=" + attributes.toString() + "]"); - } + return "NamedStyle:" + getName() + " " + attributes; + } + + private void writeObject(ObjectOutputStream s) + throws IOException + { + s.defaultWriteObject(); + writeAttributeSet(s, attributes); + } + + private void readObject(ObjectInputStream s) + throws ClassNotFoundException, IOException + { + s.defaultReadObject(); + attributes = SimpleAttributeSet.EMPTY; + readAttributeSet(s, this); + } } public class SmallAttributeSet implements AttributeSet { final Object [] attrs; + private AttributeSet resolveParent; public SmallAttributeSet(AttributeSet a) { - if (a == null) - attrs = new Object[0]; - else + int n = a.getAttributeCount(); + int i = 0; + attrs = new Object[n * 2]; + Enumeration e = a.getAttributeNames(); + while (e.hasMoreElements()) { - int n = a.getAttributeCount(); - int i = 0; - attrs = new Object[n * 2]; - Enumeration e = a.getAttributeNames(); - while (e.hasMoreElements()) - { - Object name = e.nextElement(); - attrs[i++] = name; - attrs[i++] = a.getAttribute(name); - } + Object name = e.nextElement(); + Object value = a.getAttribute(name); + if (name == ResolveAttribute) + resolveParent = (AttributeSet) value; + attrs[i++] = name; + attrs[i++] = value; } } public SmallAttributeSet(Object [] a) { - if (a == null) - attrs = new Object[0]; - else + attrs = a; + for (int i = 0; i < attrs.length; i += 2) { - attrs = new Object[a.length]; - System.arraycopy(a, 0, attrs, 0, a.length); + if (attrs[i] == ResolveAttribute) + resolveParent = (AttributeSet) attrs[i + 1]; } } public Object clone() { - return new SmallAttributeSet(this.attrs); + return this; } public boolean containsAttribute(Object name, Object value) { - for (int i = 0; i < attrs.length; i += 2) - { - if (attrs[i].equals(name) && - attrs[i+1].equals(value)) - return true; - } - return false; + return value.equals(getAttribute(name)); } public boolean containsAttributes(AttributeSet a) { + boolean res = true; Enumeration e = a.getAttributeNames(); - while (e.hasMoreElements()) + while (e.hasMoreElements() && res) { Object name = e.nextElement(); - Object val = a.getAttribute(name); - if (!containsAttribute(name, val)) - return false; + res = a.getAttribute(name).equals(getAttribute(name)); } - return true; + return res; } public AttributeSet copyAttributes() { - return (AttributeSet) clone(); + return this; } public boolean equals(Object obj) { - return - (obj instanceof AttributeSet) - && this.isEqual((AttributeSet)obj); + boolean eq = false; + if (obj instanceof AttributeSet) + { + AttributeSet atts = (AttributeSet) obj; + eq = getAttributeCount() == atts.getAttributeCount() + && containsAttributes(atts); + } + return eq; } public Object getAttribute(Object key) { - for (int i = 0; i < attrs.length; i += 2) + Object att = null; + if (key == StyleConstants.ResolveAttribute) + att = resolveParent; + + for (int i = 0; i < attrs.length && att == null; i += 2) { if (attrs[i].equals(key)) - return attrs[i+1]; + att = attrs[i + 1]; } - + // Check the resolve parent, unless we're looking for the - // ResolveAttribute, which would cause an infinite loop - if (!(key.equals(ResolveAttribute))) + // ResolveAttribute, which must not be looked up + if (att == null) { - Object p = getResolveParent(); - if (p != null && p instanceof AttributeSet) - return (((AttributeSet)p).getAttribute(key)); + AttributeSet parent = getResolveParent(); + if (parent != null) + att = parent.getAttribute(key); } - return null; + return att; } public int getAttributeCount() @@ -323,7 +351,7 @@ public class StyleContext return attrs.length / 2; } - public Enumeration getAttributeNames() + public Enumeration getAttributeNames() { return new Enumeration() { @@ -342,7 +370,7 @@ public class StyleContext public AttributeSet getResolveParent() { - return (AttributeSet) getAttribute(ResolveAttribute); + return resolveParent; } public int hashCode() @@ -362,68 +390,96 @@ public class StyleContext public boolean isEqual(AttributeSet attr) { - return getAttributeCount() == attr.getAttributeCount() + boolean eq; + // If the other one is also a SmallAttributeSet, it is only considered + // equal if it's the same instance. + if (attr instanceof SmallAttributeSet) + eq = attr == this; + else + eq = getAttributeCount() == attr.getAttributeCount() && this.containsAttributes(attr); + return eq; } public String toString() { - StringBuffer sb = new StringBuffer(); - sb.append("[StyleContext.SmallattributeSet:"); - for (int i = 0; i < attrs.length - 1; ++i) + StringBuilder sb = new StringBuilder(); + sb.append('{'); + for (int i = 0; i < attrs.length; i += 2) { - sb.append(" ("); - sb.append(attrs[i].toString()); - sb.append("="); - sb.append(attrs[i+1].toString()); - sb.append(")"); + if (attrs[i + 1] instanceof AttributeSet) + { + sb.append(attrs[i]); + sb.append("=AttributeSet,"); + } + else + { + sb.append(attrs[i]); + sb.append('='); + sb.append(attrs[i + 1]); + sb.append(','); + } } - sb.append("]"); + sb.append("}"); return sb.toString(); } } - // FIXME: official javadocs suggest that these might be more usefully - // implemented using a WeakHashMap, but not sure if that works most - // places or whether it really matters anyways. - // - // FIXME: also not sure if these tables ought to be static (singletons), - // shared across all StyleContexts. I think so, but it's not clear in - // docs. revert to non-shared if you think it matters. - /** - * The name of the default style. + * Register StyleConstant keys as static attribute keys for serialization. */ - public static final String DEFAULT_STYLE = "default"; - + static + { + // Don't let problems while doing this prevent class loading. + try + { + for (Iterator i = StyleConstants.keys.iterator(); i.hasNext();) + registerStaticAttributeKey(i.next()); + } + catch (Throwable t) + { + t.printStackTrace(); + } + } + /** - * The default style for this style context. + * The name of the default style. */ - NamedStyle defaultStyle = new NamedStyle(DEFAULT_STYLE, null); + public static final String DEFAULT_STYLE = "default"; static Hashtable sharedAttributeSets = new Hashtable(); static Hashtable sharedFonts = new Hashtable(); - static StyleContext defaultStyleContext = new StyleContext(); + static StyleContext defaultStyleContext; static final int compressionThreshold = 9; /** * These attribute keys are handled specially in serialization. */ - private static Hashtable staticAttributeKeys = new Hashtable(); + private static Hashtable writeAttributeKeys; + private static Hashtable readAttributeKeys; + + private NamedStyle styles; + + /** + * Used for searching attributes in the pool. + */ + private transient MutableAttributeSet search = new SimpleAttributeSet(); + + /** + * A pool of immutable AttributeSets. + */ + private transient Map attributeSetPool = + Collections.synchronizedMap(new WeakHashMap()); - EventListenerList listenerList; - Hashtable styleTable; - /** * Creates a new instance of the style context. Add the default style * to the style table. */ public StyleContext() { - listenerList = new EventListenerList(); - styleTable = new Hashtable(); - styleTable.put(DEFAULT_STYLE, defaultStyle); + styles = new NamedStyle(null); + addStyle(DEFAULT_STYLE, null); } protected SmallAttributeSet createSmallAttributeSet(AttributeSet a) @@ -438,30 +494,30 @@ public class StyleContext public void addChangeListener(ChangeListener listener) { - listenerList.add(ChangeListener.class, listener); + styles.addChangeListener(listener); } public void removeChangeListener(ChangeListener listener) { - listenerList.remove(ChangeListener.class, listener); + styles.removeChangeListener(listener); } public ChangeListener[] getChangeListeners() { - return (ChangeListener[]) listenerList.getListeners(ChangeListener.class); + return styles.getChangeListeners(); } public Style addStyle(String name, Style parent) { Style newStyle = new NamedStyle(name, parent); if (name != null) - styleTable.put(name, newStyle); + styles.addAttribute(name, newStyle); return newStyle; } public void removeStyle(String name) { - styleTable.remove(name); + styles.removeAttribute(name); } /** @@ -476,16 +532,31 @@ public class StyleContext */ public Style getStyle(String name) { - return (Style) styleTable.get(name); + return (Style) styles.getAttribute(name); } /** * Get the names of the style. The returned enumeration always * contains at least one member, the default style. */ - public Enumeration getStyleNames() + public Enumeration getStyleNames() + { + return styles.getAttributeNames(); + } + + private void readObject(ObjectInputStream in) + throws ClassNotFoundException, IOException { - return styleTable.keys(); + search = new SimpleAttributeSet(); + attributeSetPool = Collections.synchronizedMap(new WeakHashMap()); + in.defaultReadObject(); + } + + private void writeObject(ObjectOutputStream out) + throws IOException + { + cleanupPool(); + out.defaultWriteObject(); } // @@ -577,132 +648,125 @@ public class StyleContext public static StyleContext getDefaultStyleContext() { + if (defaultStyleContext == null) + defaultStyleContext = new StyleContext(); return defaultStyleContext; } - public AttributeSet addAttribute(AttributeSet old, Object name, Object value) + public synchronized AttributeSet addAttribute(AttributeSet old, Object name, + Object value) { - if (old instanceof MutableAttributeSet) + AttributeSet ret; + if (old.getAttributeCount() + 1 < getCompressionThreshold()) { - ((MutableAttributeSet)old).addAttribute(name, value); - return old; + search.removeAttributes(search); + search.addAttributes(old); + search.addAttribute(name, value); + reclaim(old); + ret = searchImmutableSet(); } - else + else { - MutableAttributeSet mutable = createLargeAttributeSet(old); - mutable.addAttribute(name, value); - if (mutable.getAttributeCount() >= getCompressionThreshold()) - return mutable; - else - { - SmallAttributeSet small = createSmallAttributeSet(mutable); - if (sharedAttributeSets.containsKey(small)) - small = (SmallAttributeSet) sharedAttributeSets.get(small); - else - sharedAttributeSets.put(small,small); - return small; - } + MutableAttributeSet mas = getMutableAttributeSet(old); + mas.addAttribute(name, value); + ret = mas; } + return ret; } - public AttributeSet addAttributes(AttributeSet old, AttributeSet attributes) + public synchronized AttributeSet addAttributes(AttributeSet old, + AttributeSet attributes) { - if (old instanceof MutableAttributeSet) + AttributeSet ret; + if (old.getAttributeCount() + attributes.getAttributeCount() + < getCompressionThreshold()) { - ((MutableAttributeSet)old).addAttributes(attributes); - return old; + search.removeAttributes(search); + search.addAttributes(old); + search.addAttributes(attributes); + reclaim(old); + ret = searchImmutableSet(); } - else + else { - MutableAttributeSet mutable = createLargeAttributeSet(old); - mutable.addAttributes(attributes); - if (mutable.getAttributeCount() >= getCompressionThreshold()) - return mutable; - else - { - SmallAttributeSet small = createSmallAttributeSet(mutable); - if (sharedAttributeSets.containsKey(small)) - small = (SmallAttributeSet) sharedAttributeSets.get(small); - else - sharedAttributeSets.put(small,small); - return small; - } + MutableAttributeSet mas = getMutableAttributeSet(old); + mas.addAttributes(attributes); + ret = mas; } + return ret; } public AttributeSet getEmptySet() { - AttributeSet e = createSmallAttributeSet(null); - if (sharedAttributeSets.containsKey(e)) - e = (AttributeSet) sharedAttributeSets.get(e); - else - sharedAttributeSets.put(e, e); - return e; + return SimpleAttributeSet.EMPTY; } public void reclaim(AttributeSet attributes) { - if (sharedAttributeSets.containsKey(attributes)) - sharedAttributeSets.remove(attributes); + cleanupPool(); } - public AttributeSet removeAttribute(AttributeSet old, Object name) + public synchronized AttributeSet removeAttribute(AttributeSet old, + Object name) { - if (old instanceof MutableAttributeSet) + AttributeSet ret; + if (old.getAttributeCount() - 1 <= getCompressionThreshold()) { - ((MutableAttributeSet)old).removeAttribute(name); - if (old.getAttributeCount() < getCompressionThreshold()) - { - SmallAttributeSet small = createSmallAttributeSet(old); - if (!sharedAttributeSets.containsKey(small)) - sharedAttributeSets.put(small,small); - old = (AttributeSet) sharedAttributeSets.get(small); - } - return old; + search.removeAttributes(search); + search.addAttributes(old); + search.removeAttribute(name); + reclaim(old); + ret = searchImmutableSet(); } - else - { - MutableAttributeSet mutable = createLargeAttributeSet(old); - mutable.removeAttribute(name); - SmallAttributeSet small = createSmallAttributeSet(mutable); - if (sharedAttributeSets.containsKey(small)) - small = (SmallAttributeSet) sharedAttributeSets.get(small); - else - sharedAttributeSets.put(small,small); - return small; + else + { + MutableAttributeSet mas = getMutableAttributeSet(old); + mas.removeAttribute(name); + ret = mas; } + return ret; } - public AttributeSet removeAttributes(AttributeSet old, AttributeSet attributes) + public synchronized AttributeSet removeAttributes(AttributeSet old, + AttributeSet attributes) { - return removeAttributes(old, attributes.getAttributeNames()); + AttributeSet ret; + if (old.getAttributeCount() <= getCompressionThreshold()) + { + search.removeAttributes(search); + search.addAttributes(old); + search.removeAttributes(attributes); + reclaim(old); + ret = searchImmutableSet(); + } + else + { + MutableAttributeSet mas = getMutableAttributeSet(old); + mas.removeAttributes(attributes); + ret = mas; + } + return ret; } - public AttributeSet removeAttributes(AttributeSet old, Enumeration names) + public synchronized AttributeSet removeAttributes(AttributeSet old, + Enumeration names) { - if (old instanceof MutableAttributeSet) + AttributeSet ret; + if (old.getAttributeCount() <= getCompressionThreshold()) { - ((MutableAttributeSet)old).removeAttributes(names); - if (old.getAttributeCount() < getCompressionThreshold()) - { - SmallAttributeSet small = createSmallAttributeSet(old); - if (!sharedAttributeSets.containsKey(small)) - sharedAttributeSets.put(small,small); - old = (AttributeSet) sharedAttributeSets.get(small); - } - return old; + search.removeAttributes(search); + search.addAttributes(old); + search.removeAttributes(names); + reclaim(old); + ret = searchImmutableSet(); } - else - { - MutableAttributeSet mutable = createLargeAttributeSet(old); - mutable.removeAttributes(names); - SmallAttributeSet small = createSmallAttributeSet(mutable); - if (sharedAttributeSets.containsKey(small)) - small = (SmallAttributeSet) sharedAttributeSets.get(small); - else - sharedAttributeSets.put(small,small); - return small; - } + else + { + MutableAttributeSet mas = getMutableAttributeSet(old); + mas.removeAttributes(names); + ret = mas; + } + return ret; } /** @@ -715,7 +779,7 @@ public class StyleContext { if (key == null) return null; - return staticAttributeKeys.get(key); + return readAttributeKeys.get(key); } /** @@ -742,27 +806,25 @@ public class StyleContext * stream * @throws IOException - any I/O error */ - public static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a) + public static void readAttributeSet(ObjectInputStream in, + MutableAttributeSet a) throws ClassNotFoundException, IOException { - if (in == null || a == null) - return; - - Object key = in.readObject(); - Object val = in.readObject(); - while (key != null && val != null) + int count = in.readInt(); + for (int i = 0; i < count; i++) { - Object staticKey = staticAttributeKeys.get(key); - Object staticVal = staticAttributeKeys.get(val); - - if (staticKey != null) - key = staticKey; - if (staticVal != null) - val = staticVal; - + Object key = in.readObject(); + Object val = in.readObject(); + if (readAttributeKeys != null) + { + Object staticKey = readAttributeKeys.get(key); + if (staticKey != null) + key = staticKey; + Object staticVal = readAttributeKeys.get(val); + if (staticVal != null) + val = staticVal; + } a.addAttribute(key, val); - key = in.readObject(); - val = in.readObject(); } } @@ -778,18 +840,35 @@ public class StyleContext public static void writeAttributeSet(ObjectOutputStream out, AttributeSet a) throws IOException { + int count = a.getAttributeCount(); + out.writeInt(count); Enumeration e = a.getAttributeNames(); while (e.hasMoreElements()) { - Object oldKey = e.nextElement(); - Object newKey = getStaticAttribute(oldKey); - Object key = (newKey == null) ? oldKey : newKey; - - out.writeObject(key); - out.writeObject(a.getAttribute(oldKey)); + Object key = e.nextElement(); + // Write key. + if (key instanceof Serializable) + out.writeObject(key); + else + { + Object io = writeAttributeKeys.get(key); + if (io == null) + throw new NotSerializableException(key.getClass().getName() + + ", key: " + key); + out.writeObject(io); + } + // Write value. + Object val = a.getAttribute(key); + Object io = writeAttributeKeys.get(val); + if (val instanceof Serializable) + out.writeObject(io != null ? io : val); + else + { + if (io == null) + throw new NotSerializableException(val.getClass().getName()); + out.writeObject(io); + } } - out.writeObject(null); - out.writeObject(null); } /** @@ -833,8 +912,79 @@ public class StyleContext */ public static void registerStaticAttributeKey(Object key) { - if (key != null) - staticAttributeKeys.put(key.getClass().getName() + "." + key.toString(), - key); + String io = key.getClass().getName() + "." + key.toString(); + if (writeAttributeKeys == null) + writeAttributeKeys = new Hashtable(); + if (readAttributeKeys == null) + readAttributeKeys = new Hashtable(); + writeAttributeKeys.put(key, io); + readAttributeKeys.put(io, key); + } + + /** + * Returns a string representation of this StyleContext. + * + * @return a string representation of this StyleContext + */ + public String toString() + { + cleanupPool(); + StringBuilder b = new StringBuilder(); + Iterator i = attributeSetPool.keySet().iterator(); + while (i.hasNext()) + { + Object att = i.next(); + b.append(att); + b.append('\n'); + } + return b.toString(); + } + + /** + * Searches the AttributeSet pool and returns a pooled instance if available, + * or pool a new one. + * + * @return an immutable attribute set that equals the current search key + */ + private AttributeSet searchImmutableSet() + { + SmallAttributeSet k = createSmallAttributeSet(search); + WeakReference ref = (WeakReference) attributeSetPool.get(k); + SmallAttributeSet a; + if (ref == null || (a = (SmallAttributeSet) ref.get()) == null) + { + a = k; + attributeSetPool.put(a, new WeakReference(a)); + } + return a; + } + + /** + * Cleans up the attribute set pool from entries that are no longer + * referenced. + */ + private void cleanupPool() + { + // TODO: How else can we force cleaning up the WeakHashMap? + attributeSetPool.size(); + } + + /** + * Returns a MutableAttributeSet that holds a. If a itself is mutable, + * this returns a itself, otherwise it creates a new SimpleAtttributeSet + * via {@link #createLargeAttributeSet(AttributeSet)}. + * + * @param a the AttributeSet to create a mutable set for + * + * @return a mutable attribute set that corresponds to a + */ + private MutableAttributeSet getMutableAttributeSet(AttributeSet a) + { + MutableAttributeSet mas; + if (a instanceof MutableAttributeSet) + mas = (MutableAttributeSet) a; + else + mas = createLargeAttributeSet(a); + return mas; } } diff --git a/libjava/classpath/javax/swing/text/StyledEditorKit.java b/libjava/classpath/javax/swing/text/StyledEditorKit.java index c4eef4463fb..568694387f3 100644 --- a/libjava/classpath/javax/swing/text/StyledEditorKit.java +++ b/libjava/classpath/javax/swing/text/StyledEditorKit.java @@ -142,7 +142,7 @@ public class StyledEditorKit extends DefaultEditorKit Element el = doc.getCharacterElement(editor.getSelectionStart()); boolean isBold = StyleConstants.isBold(el.getAttributes()); SimpleAttributeSet atts = new SimpleAttributeSet(); - StyleConstants.setItalic(atts, ! isBold); + StyleConstants.setBold(atts, ! isBold); setCharacterAttributes(editor, atts, false); } } @@ -335,35 +335,21 @@ public class StyledEditorKit extends DefaultEditorKit AttributeSet atts, boolean replace) { - Document doc = editor.getDocument(); - if (doc instanceof StyledDocument) - { - StyledDocument styleDoc = (StyledDocument) editor.getDocument(); - EditorKit kit = editor.getEditorKit(); - if (!(kit instanceof StyledEditorKit)) - { - StyledEditorKit styleKit = (StyledEditorKit) kit; - int start = editor.getSelectionStart(); - int end = editor.getSelectionEnd(); - int dot = editor.getCaret().getDot(); - if (start == dot && end == dot) - { - // If there is no selection, then we only update the - // input attributes. - MutableAttributeSet inputAttributes = - styleKit.getInputAttributes(); - inputAttributes.addAttributes(atts); - } - else - styleDoc.setCharacterAttributes(start, end, atts, replace); - } - else - throw new AssertionError("The EditorKit for StyledTextActions " - + "is expected to be a StyledEditorKit"); - } - else - throw new AssertionError("The Document for StyledTextActions is " - + "expected to be a StyledDocument."); + int p0 = editor.getSelectionStart(); + int p1 = editor.getSelectionEnd(); + if (p0 != p1) + { + StyledDocument doc = getStyledDocument(editor); + doc.setCharacterAttributes(p0, p1 - p0, atts, replace); + } + // Update input attributes. + StyledEditorKit kit = getStyledEditorKit(editor); + MutableAttributeSet inputAtts = kit.getInputAttributes(); + if (replace) + { + inputAtts.removeAttributes(inputAtts); + } + inputAtts.addAttributes(atts); } /** diff --git a/libjava/classpath/javax/swing/text/TextAction.java b/libjava/classpath/javax/swing/text/TextAction.java index 144166e9cdb..49c49cb9d7f 100644 --- a/libjava/classpath/javax/swing/text/TextAction.java +++ b/libjava/classpath/javax/swing/text/TextAction.java @@ -38,14 +38,15 @@ exception statement from your version. */ package javax.swing.text; +import java.awt.Component; +import java.awt.KeyboardFocusManager; import java.awt.Point; import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.HashSet; +import java.util.HashMap; +import java.util.Iterator; import javax.swing.AbstractAction; import javax.swing.Action; -import javax.swing.SwingConstants; /** * TextAction @@ -73,10 +74,16 @@ public abstract class TextAction extends AbstractAction */ protected final JTextComponent getTextComponent(ActionEvent event) { - if (event.getSource() instanceof JTextComponent) - return (JTextComponent) event.getSource(); - - return getFocusedComponent(); + JTextComponent target = null; + if (event != null) + { + Object source = event.getSource(); + if (source instanceof JTextComponent) + target = (JTextComponent) source; + } + if (target == null) + target = getFocusedComponent(); + return target; } /** @@ -89,16 +96,28 @@ public abstract class TextAction extends AbstractAction */ public static final Action[] augmentList(Action[] list1, Action[] list2) { - HashSet actionSet = new HashSet(); + HashMap actions = new HashMap(); for (int i = 0; i < list1.length; ++i) - actionSet.add(list1[i]); + { + Action a = list1[i]; + Object name = a.getValue(Action.NAME); + actions.put(name != null ? name : "", a); + } for (int i = 0; i < list2.length; ++i) - actionSet.add(list2[i]); + { + Action a = list2[i]; + Object name = a.getValue(Action.NAME); + actions.put(name != null ? name : "", a); + } + Action[] augmented = new Action[actions.size()]; + + int i = 0; + for (Iterator it = actions.values().iterator(); it.hasNext(); i++) + augmented[i] = it.next(); + return augmented; - ArrayList list = new ArrayList(actionSet); - return (Action[]) list.toArray(new Action[actionSet.size()]); } /** @@ -108,7 +127,13 @@ public abstract class TextAction extends AbstractAction */ protected final JTextComponent getFocusedComponent() { - return null; // TODO + KeyboardFocusManager kfm = + KeyboardFocusManager.getCurrentKeyboardFocusManager(); + Component focused = kfm.getPermanentFocusOwner(); + JTextComponent textComp = null; + if (focused instanceof JTextComponent) + textComp = (JTextComponent) focused; + return textComp; } /** Abstract helper class which implements everything needed for an diff --git a/libjava/classpath/javax/swing/text/Utilities.java b/libjava/classpath/javax/swing/text/Utilities.java index 36361f49796..d49d806cfa3 100644 --- a/libjava/classpath/javax/swing/text/Utilities.java +++ b/libjava/classpath/javax/swing/text/Utilities.java @@ -43,7 +43,6 @@ import java.awt.Graphics; import java.awt.Point; import java.text.BreakIterator; -import javax.swing.SwingConstants; import javax.swing.text.Position.Bias; /** @@ -55,10 +54,6 @@ import javax.swing.text.Position.Bias; */ public class Utilities { - /** - * The length of the char buffer that holds the characters to be drawn. - */ - private static final int BUF_LENGTH = 64; /** * Creates a new Utilities object. @@ -94,13 +89,12 @@ public class Utilities // The font metrics of the current selected font. FontMetrics metrics = g.getFontMetrics(); + int ascent = metrics.getAscent(); // The current x and y pixel coordinates. int pixelX = x; - int pixelY = y - ascent; - int pixelWidth = 0; int pos = s.offset; int len = 0; @@ -109,44 +103,43 @@ public class Utilities for (int offset = s.offset; offset < end; ++offset) { char c = buffer[offset]; - if (c == '\t' || c == '\n') + switch (c) { + case '\t': if (len > 0) { - g.drawChars(buffer, pos, len, pixelX, pixelY + ascent); - pixelX += pixelWidth; - pixelWidth = 0; + g.drawChars(buffer, pos, len, pixelX, y); + pixelX += metrics.charsWidth(buffer, pos, len); + len = 0; } pos = offset+1; - len = 0; + if (e != null) + pixelX = (int) e.nextTabStop((float) pixelX, startOffset + offset + - s.offset); + else + pixelX += metrics.charWidth(' '); + x = pixelX; + break; + case '\n': + case '\r': + if (len > 0) { + g.drawChars(buffer, pos, len, pixelX, y); + pixelX += metrics.charsWidth(buffer, pos, len); + len = 0; + } + x = pixelX; + break; + default: + len += 1; } - - switch (c) - { - case '\t': - // In case we have a tab, we just 'jump' over the tab. - // When we have no tab expander we just use the width of ' '. - if (e != null) - pixelX = (int) e.nextTabStop((float) pixelX, - startOffset + offset - s.offset); - else - pixelX += metrics.charWidth(' '); - break; - case '\n': - // In case we have a newline, we must jump to the next line. - pixelY += metrics.getHeight(); - pixelX = x; - break; - default: - ++len; - pixelWidth += metrics.charWidth(buffer[offset]); - break; - } } if (len > 0) - g.drawChars(buffer, pos, len, pixelX, pixelY + ascent); + { + g.drawChars(buffer, pos, len, pixelX, y); + pixelX += metrics.charsWidth(buffer, pos, len); + } - return pixelX + pixelWidth; + return pixelX; } /** @@ -174,7 +167,9 @@ public class Utilities // The current maximum width. int maxWidth = 0; - for (int offset = s.offset; offset < (s.offset + s.count); ++offset) + int end = s.offset + s.count; + int count = 0; + for (int offset = s.offset; offset < end; offset++) { switch (buffer[offset]) { @@ -182,7 +177,7 @@ public class Utilities // In case we have a tab, we just 'jump' over the tab. // When we have no tab expander we just use the width of 'm'. if (e != null) - pixelX = (int) e.nextTabStop((float) pixelX, + pixelX = (int) e.nextTabStop(pixelX, startOffset + offset - s.offset); else pixelX += metrics.charWidth(' '); @@ -190,21 +185,18 @@ public class Utilities case '\n': // In case we have a newline, we must 'draw' // the buffer and jump on the next line. - pixelX += metrics.charWidth(buffer[offset]); - maxWidth = Math.max(maxWidth, pixelX - x); - pixelX = x; - break; - default: - // Here we draw the char. - pixelX += metrics.charWidth(buffer[offset]); - break; - } + pixelX += metrics.charsWidth(buffer, offset - count, count); + count = 0; + break; + default: + count++; + } } // Take the last line into account. - maxWidth = Math.max(maxWidth, pixelX - x); + pixelX += metrics.charsWidth(buffer, end - count, count); - return maxWidth; + return pixelX - x; } /** @@ -239,43 +231,41 @@ public class Utilities int x, TabExpander te, int p0, boolean round) { - // At the end of the for loop, this holds the requested model location - int pos; + int found = s.count; int currentX = x0; - int width = 0; + int nextX = currentX; - for (pos = 0; pos < s.count; pos++) + int end = s.offset + s.count; + for (int pos = s.offset; pos < end && found == s.count; pos++) { - char nextChar = s.array[s.offset+pos]; - - if (nextChar == 0) - break; + char nextChar = s.array[pos]; if (nextChar != '\t') - width = fm.charWidth(nextChar); + nextX += fm.charWidth(nextChar); else { if (te == null) - width = fm.charWidth(' '); + nextX += fm.charWidth(' '); else - width = ((int) te.nextTabStop(currentX, pos)) - currentX; + nextX += ((int) te.nextTabStop(nextX, p0 + pos - s.offset)); } - if (round) + if (x >= currentX && x < nextX) { - if (currentX + (width>>1) > x) - break; - } - else - { - if (currentX + width > x) - break; + // Found position. + if ((! round) || ((x - currentX) < (nextX - x))) + { + found = pos - s.offset; + } + else + { + found = pos + 1 - s.offset; + } } - - currentX += width; + currentX = nextX; } - return pos + p0; + return found; } /** @@ -543,28 +533,39 @@ public class Utilities int x0, int x, TabExpander e, int startOffset) { - int mark = Utilities.getTabbedTextOffset(s, metrics, x0, x, e, startOffset, false); - BreakIterator breaker = BreakIterator.getWordInstance(); - breaker.setText(s); - - // If startOffset and s.offset differ then we need to use - // that difference two convert the offset between the two metrics. - int shift = startOffset - s.offset; - + int mark = Utilities.getTabbedTextOffset(s, metrics, x0, x, e, startOffset, + false); + int breakLoc = mark; // If mark is equal to the end of the string, just use that position. - if (mark >= shift + s.count) - return mark; - - // Try to find a word boundary previous to the mark at which we - // can break the text. - int preceding = breaker.preceding(mark + 1 - shift); - - if (preceding != 0) - return preceding + shift; - - // If preceding is 0 we couldn't find a suitable word-boundary so - // just break it on the character boundary - return mark; + if (mark < s.count - 1) + { + for (int i = s.offset + mark; i >= s.offset; i--) + { + char ch = s.array[i]; + if (ch < 256) + { + // For ASCII simply scan backwards for whitespace. + if (Character.isWhitespace(ch)) + { + breakLoc = i - s.offset + 1; + break; + } + } + else + { + // Only query BreakIterator for complex chars. + BreakIterator bi = BreakIterator.getLineInstance(); + bi.setText(s); + int pos = bi.preceding(i + 1); + if (pos > s.offset) + { + breakLoc = breakLoc - s.offset; + } + break; + } + } + } + return breakLoc; } /** @@ -712,12 +713,12 @@ public class Utilities offset, Bias.Forward, direction, - null) + new Position.Bias[1]) : t.getUI().getNextVisualPositionFrom(t, offset, Bias.Forward, direction, - null); + new Position.Bias[1]); } catch (BadLocationException ble) { diff --git a/libjava/classpath/javax/swing/text/View.java b/libjava/classpath/javax/swing/text/View.java index 55a63f6b668..c63ddbce776 100644 --- a/libjava/classpath/javax/swing/text/View.java +++ b/libjava/classpath/javax/swing/text/View.java @@ -57,7 +57,6 @@ public abstract class View implements SwingConstants public static final int X_AXIS = 0; public static final int Y_AXIS = 1; - private float width, height; private Element elt; private View parent; @@ -93,7 +92,14 @@ public abstract class View implements SwingConstants { int numChildren = getViewCount(); for (int i = 0; i < numChildren; i++) - getView(i).setParent(null); + { + View child = getView(i); + // It is important that we only reset the parent on views that + // actually belong to us. In FlowView the child may already be + // reparented. + if (child.getParent() == this) + child.setParent(null); + } } this.parent = parent; @@ -263,7 +269,7 @@ public abstract class View implements SwingConstants public void removeAll() { - replace(0, getViewCount(), new View[0]); + replace(0, getViewCount(), null); } public void remove(int index) @@ -307,15 +313,16 @@ public abstract class View implements SwingConstants { int index = getViewIndex(x, y, allocation); - if (index < -1) - return null; - - Shape childAllocation = getChildAllocation(index, allocation); - - if (childAllocation.getBounds().contains(x, y)) - return getView(index).getToolTipText(x, y, childAllocation); - - return null; + String text = null; + if (index >= 0) + { + allocation = getChildAllocation(index, allocation); + Rectangle r = allocation instanceof Rectangle ? (Rectangle) allocation + : allocation.getBounds(); + if (r.contains(x, y)) + text = getView(index).getToolTipText(x, y, allocation); + } + return text; } /** @@ -328,13 +335,17 @@ public abstract class View implements SwingConstants public void preferenceChanged(View child, boolean width, boolean height) { - if (parent != null) - parent.preferenceChanged(this, width, height); + View p = getParent(); + if (p != null) + p.preferenceChanged(this, width, height); } public int getBreakWeight(int axis, float pos, float len) { - return BadBreakWeight; + int weight = BadBreakWeight; + if (len > getPreferredSpan(axis)) + weight = GoodBreakWeight; + return weight; } public View breakView(int axis, int offset, float pos, float len) @@ -370,12 +381,18 @@ public abstract class View implements SwingConstants */ public void insertUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { - Element el = getElement(); - DocumentEvent.ElementChange ec = ev.getChange(el); - if (ec != null) - updateChildren(ec, ev, vf); - forwardUpdate(ec, ev, shape, vf); - updateLayout(ec, ev, shape); + if (getViewCount() > 0) + { + Element el = getElement(); + DocumentEvent.ElementChange ec = ev.getChange(el); + if (ec != null) + { + if (! updateChildren(ec, ev, vf)) + ec = null; + } + forwardUpdate(ec, ev, shape, vf); + updateLayout(ec, ev, shape); + } } /** @@ -429,12 +446,18 @@ public abstract class View implements SwingConstants */ public void changedUpdate(DocumentEvent ev, Shape shape, ViewFactory vf) { - Element el = getElement(); - DocumentEvent.ElementChange ec = ev.getChange(el); - if (ec != null) - updateChildren(ec, ev, vf); - forwardUpdate(ec, ev, shape, vf); - updateLayout(ec, ev, shape); + if (getViewCount() > 0) + { + Element el = getElement(); + DocumentEvent.ElementChange ec = ev.getChange(el); + if (ec != null) + { + if (! updateChildren(ec, ev, vf)) + ec = null; + } + forwardUpdate(ec, ev, shape, vf); + updateLayout(ec, ev, shape); + } } /** @@ -465,10 +488,15 @@ public abstract class View implements SwingConstants Element[] removed = ec.getChildrenRemoved(); int index = ec.getIndex(); - View[] newChildren = new View[added.length]; - for (int i = 0; i < added.length; ++i) - newChildren[i] = vf.create(added[i]); - replace(index, removed.length, newChildren); + View[] newChildren = null; + if (added != null) + { + newChildren = new View[added.length]; + for (int i = 0; i < added.length; ++i) + newChildren[i] = vf.create(added[i]); + } + int numRemoved = removed != null ? removed.length : 0; + replace(index, numRemoved, newChildren); return true; } @@ -598,10 +626,12 @@ public abstract class View implements SwingConstants DocumentEvent ev, Shape shape) { if (ec != null && shape != null) - preferenceChanged(null, true, true); - Container c = getContainer(); - if (c != null) - c.repaint(); + { + preferenceChanged(null, true, true); + Container c = getContainer(); + if (c != null) + c.repaint(); + } } /** @@ -750,7 +780,9 @@ public abstract class View implements SwingConstants */ public int viewToModel(float x, float y, Shape a) { - return viewToModel(x, y, a, new Position.Bias[0]); + Position.Bias[] biasRet = new Position.Bias[1]; + biasRet[0] = Position.Bias.Forward; + return viewToModel(x, y, a, biasRet); } /** diff --git a/libjava/classpath/javax/swing/text/WrappedPlainView.java b/libjava/classpath/javax/swing/text/WrappedPlainView.java index a6c369a4c25..00e12b1129e 100644 --- a/libjava/classpath/javax/swing/text/WrappedPlainView.java +++ b/libjava/classpath/javax/swing/text/WrappedPlainView.java @@ -83,7 +83,17 @@ public class WrappedPlainView extends BoxView implements TabExpander /** The height of the line (used while painting) **/ int lineHeight; - + + /** + * The base offset for tab calculations. + */ + private int tabBase; + + /** + * The tab size. + */ + private int tabSize; + /** * The instance returned by {@link #getLineBuffer()}. */ @@ -121,10 +131,13 @@ public class WrappedPlainView extends BoxView implements TabExpander */ public float nextTabStop(float x, int tabStop) { - JTextComponent host = (JTextComponent)getContainer(); - float tabSizePixels = getTabSize() - * host.getFontMetrics(host.getFont()).charWidth('m'); - return (float) (Math.floor(x / tabSizePixels) + 1) * tabSizePixels; + int next = (int) x; + if (tabSize != 0) + { + int numTabs = ((int) x - tabBase) / tabSize; + next = tabBase + (numTabs + 1) * tabSize; + } + return next; } /** @@ -274,44 +287,32 @@ public class WrappedPlainView extends BoxView implements TabExpander */ protected int calculateBreakPosition(int p0, int p1) { - Container c = getContainer(); - - int li = getLeftInset(); - int ti = getTopInset(); - - Rectangle alloc = new Rectangle(li, ti, - getWidth()-getRightInset()-li, - getHeight()-getBottomInset()-ti); - - // Mimic a behavior observed in the RI. - if (alloc.isEmpty()) - return 0; - - updateMetrics(); - + Segment s = new Segment(); try { - getDocument().getText(p0, p1 - p0, getLineBuffer()); + getDocument().getText(p0, p1 - p0, s); } - catch (BadLocationException ble) + catch (BadLocationException ex) { - // this shouldn't happen - throw new InternalError("Invalid offsets p0: " + p0 + " - p1: " + p1); + assert false : "Couldn't load text"; } - + int width = getWidth(); + int pos; if (wordWrap) - return Utilities.getBreakLocation(lineBuffer, metrics, alloc.x, - alloc.x + alloc.width, this, p0); + pos = p0 + Utilities.getBreakLocation(s, metrics, tabBase, + tabBase + width, this, p0); else - return p0 + Utilities.getTabbedTextOffset(lineBuffer, metrics, alloc.x, - alloc.x + alloc.width, this, 0, - true); + pos = p0 + Utilities.getTabbedTextOffset(s, metrics, tabBase, + tabBase + width, this, p0, + false); + return pos; } void updateMetrics() { Container component = getContainer(); metrics = component.getFontMetrics(component.getFont()); + tabSize = getTabSize()* metrics.charWidth('m'); } /** @@ -350,9 +351,15 @@ public class WrappedPlainView extends BoxView implements TabExpander */ public void insertUpdate (DocumentEvent e, Shape a, ViewFactory f) { - super.insertUpdate(e, a, viewFactory); + // Update children efficiently. + updateChildren(e, a); - // No repaint needed, as this is done by the WrappedLine instances. + // Notify children. + Rectangle r = a != null && isAllocationValid() ? getInsideAllocation(a) + : null; + View v = getViewAtPosition(e.getOffset(), r); + if (v != null) + v.insertUpdate(e, r, f); } /** @@ -361,9 +368,15 @@ public class WrappedPlainView extends BoxView implements TabExpander */ public void removeUpdate (DocumentEvent e, Shape a, ViewFactory f) { - super.removeUpdate(e, a, viewFactory); - - // No repaint needed, as this is done by the WrappedLine instances. + // Update children efficiently. + updateChildren(e, a); + + // Notify children. + Rectangle r = a != null && isAllocationValid() ? getInsideAllocation(a) + : null; + View v = getViewAtPosition(e.getOffset(), r); + if (v != null) + v.removeUpdate(e, r, f); } /** @@ -373,11 +386,39 @@ public class WrappedPlainView extends BoxView implements TabExpander */ public void changedUpdate (DocumentEvent e, Shape a, ViewFactory f) { - super.changedUpdate(e, a, viewFactory); - - // No repaint needed, as this is done by the WrappedLine instances. + // Update children efficiently. + updateChildren(e, a); } - + + /** + * Helper method. Updates the child views in response to + * insert/remove/change updates. This is here to be a little more efficient + * than the BoxView implementation. + * + * @param ev the document event + * @param a the shape + */ + private void updateChildren(DocumentEvent ev, Shape a) + { + Element el = getElement(); + DocumentEvent.ElementChange ec = ev.getChange(el); + if (ec != null) + { + Element[] removed = ec.getChildrenRemoved(); + Element[] added = ec.getChildrenAdded(); + View[] addedViews = new View[added.length]; + for (int i = 0; i < added.length; i++) + addedViews[i] = new WrappedLine(added[i]); + replace(ec.getIndex(), removed.length, addedViews); + if (a != null) + { + preferenceChanged(null, true, true); + getContainer().repaint(); + } + } + updateMetrics(); + } + class WrappedLineCreator implements ViewFactory { // Creates a new WrappedLine @@ -397,6 +438,9 @@ public class WrappedPlainView extends BoxView implements TabExpander */ public void paint(Graphics g, Shape a) { + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + tabBase = r.x; + JTextComponent comp = (JTextComponent)getContainer(); // Ensure metrics are up-to-date. updateMetrics(); @@ -434,7 +478,6 @@ public class WrappedPlainView extends BoxView implements TabExpander public WrappedLine(Element elem) { super(elem); - determineNumLines(); } /** @@ -449,10 +492,34 @@ public class WrappedPlainView extends BoxView implements TabExpander int currStart = getStartOffset(); int currEnd; int count = 0; + + // Determine layered highlights. + Container c = getContainer(); + LayeredHighlighter lh = null; + JTextComponent tc = null; + if (c instanceof JTextComponent) + { + tc = (JTextComponent) c; + Highlighter h = tc.getHighlighter(); + if (h instanceof LayeredHighlighter) + lh = (LayeredHighlighter) h; + } + while (currStart < end) { currEnd = calculateBreakPosition(currStart, end); + // Paint layered highlights, if any. + if (lh != null) + { + // Exclude trailing newline in last line. + if (currEnd == end) + lh.paintLayeredHighlights(g, currStart, currEnd - 1, s, tc, + this); + else + lh.paintLayeredHighlights(g, currStart, currEnd, s, tc, this); + + } drawLine(currStart, currEnd, g, rect.x, rect.y + metrics.getAscent()); rect.y += lineHeight; @@ -472,37 +539,29 @@ public class WrappedPlainView extends BoxView implements TabExpander } } - + /** * Calculates the number of logical lines that the Element * needs to be displayed and updates the variable numLines * accordingly. */ - void determineNumLines() + private int determineNumLines() { - numLines = 0; + int nLines = 0; int end = getEndOffset(); - if (end == 0) - return; - - int breakPoint; for (int i = getStartOffset(); i < end;) { - numLines ++; + nLines++; // careful: check that there's no off-by-one problem here // depending on which position calculateBreakPosition returns - breakPoint = calculateBreakPosition(i, end); - - if (breakPoint == 0) - return; + int breakPoint = calculateBreakPosition(i, end); - // If breakPoint is equal to the current index no further - // line is needed and we can end the loop. if (breakPoint == i) - break; + i = breakPoint + 1; else i = breakPoint; } + return nLines; } /** @@ -547,7 +606,7 @@ public class WrappedPlainView extends BoxView implements TabExpander // Throwing a BadLocationException is an observed behavior of the RI. if (rect.isEmpty()) throw new BadLocationException("Unable to calculate view coordinates " - + "when allocation area is empty.", 5); + + "when allocation area is empty.", pos); Segment s = getLineBuffer(); int lineHeight = metrics.getHeight(); @@ -624,7 +683,7 @@ public class WrappedPlainView extends BoxView implements TabExpander return currLineStart; if (y > rect.y + rect.height) - return end; + return end - 1; // Note: rect.x and rect.width do not represent the width of painted // text but the area where text *may* be painted. This means the width @@ -685,22 +744,14 @@ public class WrappedPlainView extends BoxView implements TabExpander */ void updateDamage (Rectangle a) { - // If the allocation area is empty we can't do anything useful. - // As determining the number of lines is impossible in that state we - // reset it to an invalid value which can then be recalculated at a - // later point. - if (a == null || a.isEmpty()) + int nLines = determineNumLines(); + if (numLines != nLines) { - numLines = 1; - return; + numLines = nLines; + preferenceChanged(this, false, true); + getContainer().repaint(); } - - int oldNumLines = numLines; - determineNumLines(); - - if (numLines != oldNumLines) - preferenceChanged(this, false, true); - else + else if (a != null) getContainer().repaint(a.x, a.y, a.width, a.height); } @@ -714,7 +765,8 @@ public class WrappedPlainView extends BoxView implements TabExpander */ public void insertUpdate (DocumentEvent changes, Shape a, ViewFactory f) { - updateDamage((Rectangle)a); + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + updateDamage(r); } /** @@ -736,7 +788,8 @@ public class WrappedPlainView extends BoxView implements TabExpander // However this seems to cause no trouble and as it reduces the // number of method calls it can stay this way. - updateDamage((Rectangle)a); + Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + updateDamage(r); } } } diff --git a/libjava/classpath/javax/swing/text/ZoneView.java b/libjava/classpath/javax/swing/text/ZoneView.java new file mode 100644 index 00000000000..6cabc6c200c --- /dev/null +++ b/libjava/classpath/javax/swing/text/ZoneView.java @@ -0,0 +1,442 @@ +/* ZoneView.java -- An effective BoxView subclass + 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 javax.swing.text; + +import java.awt.Shape; +import java.util.ArrayList; +import java.util.LinkedList; + +import javax.swing.event.DocumentEvent; + +/** + * A View implementation that delays loading of sub views until they are + * needed for display or internal transformations. This can be used for + * editors that need to handle large documents more effectivly than the + * standard {@link BoxView}. + * + * @author Roman Kennke (kennke@aicas.com) + * + * @since 1.3 + */ +public class ZoneView + extends BoxView +{ + + /** + * The default zone view implementation. The specs suggest that this is + * a subclass of AsyncBoxView, so do we. + */ + static class Zone + extends AsyncBoxView + { + /** + * The start position for this zone. + */ + private Position p0; + + /** + * The end position for this zone. + */ + private Position p1; + + /** + * Creates a new Zone for the specified element, start and end positions. + * + * @param el the element + * @param pos0 the start position + * @param pos1 the end position + * @param axis the major axis + */ + Zone(Element el, Position pos0, Position pos1, int axis) + { + super(el, axis); + p0 = pos0; + p1 = pos1; + } + + /** + * Returns the start offset of the zone. + * + * @return the start offset of the zone + */ + public int getStartOffset() + { + return p0.getOffset(); + } + + /** + * Returns the end offset of the zone. + * + * @return the end offset of the zone + */ + public int getEndOffset() + { + return p1.getOffset(); + } + } + + /** + * The maximumZoneSize. + */ + private int maximumZoneSize; + + /** + * The maximum number of loaded zones. + */ + private int maxZonesLoaded; + + /** + * A queue of loaded zones. When the number of loaded zones exceeds the + * maximum number of zones, the oldest zone(s) get unloaded. + */ + private LinkedList loadedZones; + + /** + * Creates a new ZoneView for the specified element and axis. + * + * @param element the element for which to create a ZoneView + * @param axis the major layout axis for the box + */ + public ZoneView(Element element, int axis) + { + super(element, axis); + maximumZoneSize = 8192; + maxZonesLoaded = 3; + loadedZones = new LinkedList(); + } + + /** + * Sets the maximum zone size. Note that zones might still become larger + * then the size specified when a singe child view is larger for itself, + * because zones are formed on child view boundaries. + * + * @param size the maximum zone size to set + * + * @see #getMaximumZoneSize() + */ + public void setMaximumZoneSize(int size) + { + maximumZoneSize = size; + } + + /** + * Returns the maximum zone size. Note that zones might still become larger + * then the size specified when a singe child view is larger for itself, + * because zones are formed on child view boundaries. + * + * @return the maximum zone size + * + * @see #setMaximumZoneSize(int) + */ + public int getMaximumZoneSize() + { + return maximumZoneSize; + } + + /** + * Sets the maximum number of zones that are allowed to be loaded at the + * same time. If the new number of allowed zones is smaller then the + * previous settings, this unloads all zones the aren't allowed to be + * loaded anymore. + * + * @param num the number of zones allowed to be loaded at the same time + * + * @throws IllegalArgumentException if num <= 0 + * + * @see #getMaxZonesLoaded() + */ + public void setMaxZonesLoaded(int num) + { + if (num < 1) + throw new IllegalArgumentException("Illegal number of zones"); + maxZonesLoaded = num; + unloadOldestZones(); + } + + /** + * Returns the number of zones that are allowed to be loaded. + * + * @return the number of zones that are allowed to be loaded + * + * @see #setMaxZonesLoaded(int) + */ + public int getMaxZonesLoaded() + { + return maxZonesLoaded; + } + + /** + * Gets called after a zone has been loaded. This unloads the oldest zone(s) + * when the maximum number of zones is reached. + * + * @param zone the zone that has been loaded + */ + protected void zoneWasLoaded(View zone) + { + loadedZones.addLast(zone); + unloadOldestZones(); + } + + /** + * This unloads the specified zone. This is implemented to simply remove + * all child views from that zone. + * + * @param zone the zone to be unloaded + */ + protected void unloadZone(View zone) + { + zone.removeAll(); + } + + /** + * Returns true when the specified zone is loaded, + * false otherwise. The default implementation checks if + * the zone view has child elements. + * + * @param zone the zone view to check + * + * @return true when the specified zone is loaded, + * false otherwise + */ + protected boolean isZoneLoaded(View zone) + { + return zone.getViewCount() > 0; + } + + /** + * Creates a zone for the specified range. Subclasses can override this + * to provide a custom implementation for the zones. + * + * @param p0 the start of the range + * @param p1 the end of the range + * + * @return the zone + */ + protected View createZone(int p0, int p1) + { + Document doc = getDocument(); + Position pos0 = null; + Position pos1 = null; + try + { + pos0 = doc.createPosition(p0); + pos1 = doc.createPosition(p1); + } + catch (BadLocationException ex) + { + assert false : "Must not happen"; + } + Zone zone = new Zone(getElement(), pos0, pos1, getAxis()); + return zone; + } + + // -------------------------------------------------------------------------- + // CompositeView methods. + // -------------------------------------------------------------------------- + + /** + * Overridden to not load all the child views. This methods creates + * initial zones without actually loading them. + * + * @param vf not used + */ + protected void loadChildren(ViewFactory vf) + { + int p0 = getStartOffset(); + int p1 = getEndOffset(); + append(createZone(p0, p1)); + checkZoneAt(p0); + } + + /** + * Returns the index of the child view at the document position + * pos. + * + * This overrides the CompositeView implementation because the ZoneView does + * not provide a one to one mapping from Elements to Views. + * + * @param pos the document position + * + * @return the index of the child view at the document position + * pos + */ + protected int getViewIndexAtPosition(int pos) + { + int index = -1; + boolean found = false; + if (pos >= getStartOffset() && pos <= getEndOffset()) + { + int upper = getViewCount() - 1; + int lower = 0; + index = (upper - lower) / 2 + lower; + int bias = 0; + do + { + View child = getView(index); + int childStart = child.getStartOffset(); + int childEnd = child.getEndOffset(); + if (pos >= childStart && pos < childEnd) + found = true; + else if (pos < childStart) + { + upper = index; + bias = -1; + } + else if (pos >= childEnd) + { + lower = index; + bias = 1; + } + if (! found) + { + int newIndex = (upper - lower) / 2 + lower; + if (newIndex == index) + index = newIndex + bias; + else + index = newIndex; + } + } while (upper != lower && ! found); + } + // If no child view actually covers the specified offset, reset index to + // -1. + if (! found) + index = -1; + return index; + } + + // -------------------------------------------------------------------------- + // View methods. + // -------------------------------------------------------------------------- + + public void insertUpdate(DocumentEvent e, Shape a, ViewFactory vf) + { + // TODO: Implement this. + } + + public void removeUpdate(DocumentEvent e, Shape a, ViewFactory vf) + { + // TODO: Implement this. + } + + protected boolean updateChildren(DocumentEvent.ElementChange ec, + DocumentEvent e, ViewFactory vf) + { + // TODO: Implement this. + return false; + } + + // -------------------------------------------------------------------------- + // Internal helper methods. + // -------------------------------------------------------------------------- + + /** + * A helper method to unload the oldest zones when there are more loaded + * zones then allowed. + */ + private void unloadOldestZones() + { + int maxZones = getMaxZonesLoaded(); + while (loadedZones.size() > maxZones) + { + View zone = (View) loadedZones.removeFirst(); + unloadZone(zone); + } + } + + /** + * Checks if the zone view at position pos should be split + * (its size is greater than maximumZoneSize) and tries to split it. + * + * @param pos the document position to check + */ + private void checkZoneAt(int pos) + { + int viewIndex = getViewIndexAtPosition(pos); //, Position.Bias.Forward); + View view = getView(viewIndex); + int p0 = view.getStartOffset(); + int p1 = view.getEndOffset(); + if (p1 - p0 > maximumZoneSize) + splitZone(viewIndex, p0, p1); + } + + /** + * Tries to break the view at the specified index and inside the specified + * range into pieces that are acceptable with respect to the maximum zone + * size. + * + * @param index the index of the view to split + * @param p0 the start offset + * @param p1 the end offset + */ + private void splitZone(int index, int p0, int p1) + { + ArrayList newZones = new ArrayList(); + int p = p0; + do + { + p0 = p; + p = Math.min(getPreferredZoneEnd(p0), p1); + newZones.add(createZone(p0, p)); + } while (p < p1); + View[] newViews = new View[newZones.size()]; + newViews = (View[]) newZones.toArray(newViews); + replace(index, 1, newViews); + } + + /** + * Calculates the positions at which a zone split is performed. This + * tries to create zones sized close to half the maximum zone size. + * + * @param start the start offset + * + * @return the preferred end offset + */ + private int getPreferredZoneEnd(int start) + { + Element el = getElement(); + int index = el.getElementIndex(start + (maximumZoneSize / 2)); + Element child = el.getElement(index); + int p0 = child.getStartOffset(); + int p1 = child.getEndOffset(); + int end = p1; + if (p0 - start > maximumZoneSize && p0 > start) + end = p0; + return end; + } +} diff --git a/libjava/classpath/javax/swing/text/html/BRView.java b/libjava/classpath/javax/swing/text/html/BRView.java index 5521fed8edf..7d0d5164d49 100644 --- a/libjava/classpath/javax/swing/text/html/BRView.java +++ b/libjava/classpath/javax/swing/text/html/BRView.java @@ -44,8 +44,7 @@ import javax.swing.text.Element; * Handled the HTML BR tag. */ class BRView - extends NullView - + extends InlineView { /** * Creates the new BR view. @@ -66,6 +65,6 @@ class BRView if (axis == X_AXIS) return ForcedBreakWeight; else - return BadBreakWeight; + return super.getBreakWeight(axis, pos, len); } } diff --git a/libjava/classpath/javax/swing/text/html/BlockView.java b/libjava/classpath/javax/swing/text/html/BlockView.java index 6274e7b1756..b05c983e922 100644 --- a/libjava/classpath/javax/swing/text/html/BlockView.java +++ b/libjava/classpath/javax/swing/text/html/BlockView.java @@ -38,9 +38,12 @@ exception statement from your version. */ package javax.swing.text.html; +import gnu.javax.swing.text.html.css.Length; + import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; +import java.util.HashMap; import javax.swing.SizeRequirements; import javax.swing.event.DocumentEvent; @@ -55,7 +58,106 @@ import javax.swing.text.ViewFactory; */ public class BlockView extends BoxView { - + + /** + * Stores information about child positioning according to the + * CSS attributes position, left, right, top and bottom. + */ + private static class PositionInfo + { + // TODO: Use enums when available. + + /** + * Static positioning. This is the default and is thus rarely really + * used. + */ + static final int STATIC = 0; + + /** + * Relative positioning. The box is teaked relative to its static + * computed bounds. + */ + static final int RELATIVE = 1; + + /** + * Absolute positioning. The box is moved relative to the parent's box. + */ + static final int ABSOLUTE = 2; + + /** + * Like ABSOLUTE, with some fixation against the viewport (not yet + * implemented). + */ + static final int FIXED = 3; + + /** + * The type according to the constants of this class. + */ + int type; + + /** + * The left constraint, null if not set. + */ + Length left; + + /** + * The right constraint, null if not set. + */ + Length right; + + /** + * The top constraint, null if not set. + */ + Length top; + + /** + * The bottom constraint, null if not set. + */ + Length bottom; + + /** + * Creates a new PositionInfo object. + * + * @param typ the type to set + * @param l the left constraint + * @param r the right constraint + * @param t the top constraint + * @param b the bottom constraint + */ + PositionInfo(int typ, Length l, Length r, Length t, Length b) + { + type = typ; + left = l; + right = r; + top = t; + bottom = b; + } + } + + /** + * The attributes for this view. + */ + private AttributeSet attributes; + + /** + * The box painter for this view. + * + * This is package private because the TableView needs access to it. + */ + StyleSheet.BoxPainter painter; + + /** + * The width and height as specified in the stylesheet, null if not + * specified. The first value is the X_AXIS, the second the Y_AXIS. You + * can index this directly by the X_AXIS and Y_AXIS constants. + */ + private Length[] cssSpans; + + /** + * Stores additional CSS layout information. + */ + private HashMap positionInfo; + /** * Creates a new view that represents an html box. * This can be used for a number of elements. @@ -66,8 +168,10 @@ public class BlockView extends BoxView public BlockView(Element elem, int axis) { super(elem, axis); + cssSpans = new Length[2]; + positionInfo = new HashMap(); } - + /** * Creates the parent view for this. It is called before * any other methods, if the parent view is working properly. @@ -99,12 +203,27 @@ public class BlockView extends BoxView protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r) { - SizeRequirements sr = super.calculateMajorAxisRequirements(axis, r); - // FIXME: adjust it if the CSS width or height attribute is specified - // and applicable - return sr; + if (r == null) + r = new SizeRequirements(); + + if (setCSSSpan(r, axis)) + { + // If we have set the span from CSS, then we need to adjust + // the margins. + SizeRequirements parent = super.calculateMajorAxisRequirements(axis, + null); + int margin = axis == X_AXIS ? getLeftInset() + getRightInset() + : getTopInset() + getBottomInset(); + r.minimum -= margin; + r.preferred -= margin; + r.maximum -= margin; + constrainSize(axis, r, parent); + } + else + r = super.calculateMajorAxisRequirements(axis, r); + return r; } - + /** * Calculates the requirements along the minor axis. * This is implemented to call the superclass and then @@ -118,12 +237,89 @@ public class BlockView extends BoxView protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r) { - SizeRequirements sr = super.calculateMinorAxisRequirements(axis, r); - // FIXME: adjust it if the CSS width or height attribute is specified - // and applicable. - return sr; + if (r == null) + r = new SizeRequirements(); + + if (setCSSSpan(r, axis)) + { + // If we have set the span from CSS, then we need to adjust + // the margins. + SizeRequirements parent = super.calculateMinorAxisRequirements(axis, + null); + int margin = axis == X_AXIS ? getLeftInset() + getRightInset() + : getTopInset() + getBottomInset(); + r.minimum -= margin; + r.preferred -= margin; + r.maximum -= margin; + constrainSize(axis, r, parent); + } + else + r = super.calculateMinorAxisRequirements(axis, r); + + // Apply text alignment if appropriate. + if (axis == X_AXIS) + { + Object o = getAttributes().getAttribute(CSS.Attribute.TEXT_ALIGN); + if (o != null) + { + String al = o.toString().trim(); + if (al.equals("center")) + r.alignment = 0.5f; + else if (al.equals("right")) + r.alignment = 1.0f; + else + r.alignment = 0.0f; + } + } + return r; + } + + /** + * Sets the span on the SizeRequirements object according to the + * according CSS span value, when it is set. + * + * @param r the size requirements + * @param axis the axis + * + * @return true when the CSS span has been set, + * false otherwise + */ + private boolean setCSSSpan(SizeRequirements r, int axis) + { + boolean ret = false; + Length span = cssSpans[axis]; + // We can't set relative CSS spans here because we don't know + // yet about the allocated span. Instead we use the view's + // normal requirements. + if (span != null && ! span.isPercentage()) + { + r.minimum = (int) span.getValue(); + r.preferred = (int) span.getValue(); + r.maximum = (int) span.getValue(); + ret = true; + } + return ret; } - + + /** + * Constrains the r requirements according to + * min. + * + * @param axis the axis + * @param r the requirements to constrain + * @param min the constraining requirements + */ + private void constrainSize(int axis, SizeRequirements r, + SizeRequirements min) + { + if (min.minimum > r.minimum) + { + r.minimum = min.minimum; + r.preferred = min.minimum; + r.maximum = Math.max(r.maximum, min.maximum); + } + } + /** * Lays out the box along the minor axis (the axis that is * perpendicular to the axis that it represents). The results @@ -142,10 +338,133 @@ public class BlockView extends BoxView protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans) { - // FIXME: Not implemented. - super.layoutMinorAxis(targetSpan, axis, offsets, spans); + int viewCount = getViewCount(); + for (int i = 0; i < viewCount; i++) + { + View view = getView(i); + int min = (int) view.getMinimumSpan(axis); + int max; + // Handle CSS span value of child. + Length length = cssSpans[axis]; + if (length != null) + { + min = Math.max((int) length.getValue(targetSpan), min); + max = min; + } + else + max = (int) view.getMaximumSpan(axis); + + if (max < targetSpan) + { + // Align child. + float align = view.getAlignment(axis); + offsets[i] = (int) ((targetSpan - max) * align); + spans[i] = max; + } + else + { + offsets[i] = 0; + spans[i] = Math.max(min, targetSpan); + } + + // Adjust according to CSS position info. + positionView(targetSpan, axis, i, offsets, spans); + } } - + + /** + * Overridden to perform additional CSS layout (absolute/relative + * positioning). + */ + protected void layoutMajorAxis(int targetSpan, int axis, + int[] offsets, int[] spans) + { + super.layoutMajorAxis(targetSpan, axis, offsets, spans); + + // Adjust according to CSS position info. + int viewCount = getViewCount(); + for (int i = 0; i < viewCount; i++) + { + positionView(targetSpan, axis, i, offsets, spans); + } + } + + /** + * Positions a view according to any additional CSS constraints. + * + * @param targetSpan the target span + * @param axis the axis + * @param i the index of the view + * @param offsets the offsets get placed here + * @param spans the spans get placed here + */ + private void positionView(int targetSpan, int axis, int i, int[] offsets, + int[] spans) + { + View view = getView(i); + PositionInfo pos = (PositionInfo) positionInfo.get(view); + if (pos != null) + { + int p0 = -1; + int p1 = -1; + if (axis == X_AXIS) + { + Length l = pos.left; + if (l != null) + p0 = (int) l.getValue(targetSpan); + l = pos.right; + if (l != null) + p1 = (int) l.getValue(targetSpan); + } + else + { + Length l = pos.top; + if (l != null) + p0 = (int) l.getValue(targetSpan); + l = pos.bottom; + if (l != null) + p1 = (int) l.getValue(targetSpan); + } + if (pos.type == PositionInfo.ABSOLUTE + || pos.type == PositionInfo.FIXED) + { + if (p0 != -1) + { + offsets[i] = p0; + if (p1 != -1) + { + // Overrides computed width. (Possibly overconstrained + // when the width attribute was set too.) + spans[i] = targetSpan - p1 - offsets[i]; + } + } + else if (p1 != -1) + { + // Preserve any computed width. + offsets[i] = targetSpan - p1 - spans[i]; + } + } + else if (pos.type == PositionInfo.RELATIVE) + { + if (p0 != -1) + { + offsets[i] += p0; + if (p1 != -1) + { + // Overrides computed width. (Possibly overconstrained + // when the width attribute was set too.) + spans[i] = spans[i] - p0 - p1 - offsets[i]; + } + } + else if (p1 != -1) + { + // Preserve any computed width. + offsets[i] -= p1; + } + } + } + } + /** * Paints using the given graphics configuration and shape. * This delegates to the css box painter to paint the @@ -156,14 +475,16 @@ public class BlockView extends BoxView */ public void paint(Graphics g, Shape a) { - Rectangle rect = (Rectangle) a; - // FIXME: not fully implemented - getStyleSheet().getBoxPainter(getAttributes()).paint(g, rect.x, rect.y, - rect.width, - rect.height, this); + Rectangle rect = a instanceof Rectangle ? (Rectangle) a : a.getBounds(); + + // Debug output. Shows blocks in green rectangles. + // g.setColor(Color.GREEN); + // g.drawRect(rect.x, rect.y, rect.width, rect.height); + + painter.paint(g, rect.x, rect.y, rect.width, rect.height, this); super.paint(g, a); } - + /** * Fetches the attributes to use when painting. * @@ -171,7 +492,9 @@ public class BlockView extends BoxView */ public AttributeSet getAttributes() { - return getStyleSheet().getViewAttributes(this); + if (attributes == null) + attributes = getStyleSheet().getViewAttributes(this); + return attributes; } /** @@ -200,14 +523,17 @@ public class BlockView extends BoxView public float getAlignment(int axis) { if (axis == X_AXIS) - return 0.0F; + return super.getAlignment(axis); if (axis == Y_AXIS) { if (getViewCount() == 0) return 0.0F; float prefHeight = getPreferredSpan(Y_AXIS); - float firstRowHeight = getView(0).getPreferredSpan(Y_AXIS); - return (firstRowHeight / 2.F) / prefHeight; + View first = getView(0); + float firstRowHeight = first.getPreferredSpan(Y_AXIS); + return prefHeight != 0 ? (firstRowHeight * first.getAlignment(Y_AXIS)) + / prefHeight + : 0; } throw new IllegalArgumentException("Invalid Axis"); } @@ -227,7 +553,8 @@ public class BlockView extends BoxView // If more elements were added, then need to set the properties for them int currPos = ev.getOffset(); - if (currPos <= getStartOffset() && (currPos + ev.getLength()) >= getEndOffset()) + if (currPos <= getStartOffset() + && (currPos + ev.getLength()) >= getEndOffset()) setPropertiesFromAttributes(); } @@ -284,9 +611,33 @@ public class BlockView extends BoxView */ protected void setPropertiesFromAttributes() { - // FIXME: Not implemented (need to use StyleSheet). + // Fetch attributes. + StyleSheet ss = getStyleSheet(); + attributes = ss.getViewAttributes(this); + + // Fetch painter. + painter = ss.getBoxPainter(attributes); + + // Update insets. + if (attributes != null) + { + setInsets((short) painter.getInset(TOP, this), + (short) painter.getInset(LEFT, this), + (short) painter.getInset(BOTTOM, this), + (short) painter.getInset(RIGHT, this)); + } + + // Fetch width and height. + float emBase = ss.getEMBase(attributes); + float exBase = ss.getEXBase(attributes); + cssSpans[X_AXIS] = (Length) attributes.getAttribute(CSS.Attribute.WIDTH); + if (cssSpans[X_AXIS] != null) + cssSpans[X_AXIS].setFontBases(emBase, exBase); + cssSpans[Y_AXIS] = (Length) attributes.getAttribute(CSS.Attribute.HEIGHT); + if (cssSpans[Y_AXIS] != null) + cssSpans[Y_AXIS].setFontBases(emBase, exBase); } - + /** * Gets the default style sheet. * @@ -294,8 +645,77 @@ public class BlockView extends BoxView */ protected StyleSheet getStyleSheet() { - StyleSheet styleSheet = new StyleSheet(); - styleSheet.importStyleSheet(getClass().getResource(HTMLEditorKit.DEFAULT_CSS)); - return styleSheet; + HTMLDocument doc = (HTMLDocument) getDocument(); + return doc.getStyleSheet(); + } + + /** + * Overridden to fetch additional CSS layout information. + */ + public void replace(int offset, int length, View[] views) + { + // First remove unneeded stuff. + for (int i = 0; i < length; i++) + { + View child = getView(i + offset); + positionInfo.remove(child); + } + + // Call super to actually replace the views. + super.replace(offset, length, views); + + // Now fetch the position infos for the new views. + for (int i = 0; i < views.length; i++) + { + fetchLayoutInfo(views[i]); + } + } + + /** + * Fetches and stores the layout info for the specified view. + * + * @param view the view for which the layout info is stored + */ + private void fetchLayoutInfo(View view) + { + AttributeSet atts = view.getAttributes(); + Object o = atts.getAttribute(CSS.Attribute.POSITION); + if (o != null && o instanceof String && ! o.equals("static")) + { + int type; + if (o.equals("relative")) + type = PositionInfo.RELATIVE; + else if (o.equals("absolute")) + type = PositionInfo.ABSOLUTE; + else if (o.equals("fixed")) + type = PositionInfo.FIXED; + else + type = PositionInfo.STATIC; + + if (type != PositionInfo.STATIC) + { + StyleSheet ss = getStyleSheet(); + float emBase = ss.getEMBase(atts); + float exBase = ss.getEXBase(atts); + Length left = (Length) atts.getAttribute(CSS.Attribute.LEFT); + if (left != null) + left.setFontBases(emBase, exBase); + Length right = (Length) atts.getAttribute(CSS.Attribute.RIGHT); + if (right != null) + right.setFontBases(emBase, exBase); + Length top = (Length) atts.getAttribute(CSS.Attribute.TOP); + if (top != null) + top.setFontBases(emBase, exBase); + Length bottom = (Length) atts.getAttribute(CSS.Attribute.BOTTOM); + if (bottom != null) + bottom.setFontBases(emBase, exBase); + if (left != null || right != null || top != null || bottom != null) + { + PositionInfo pos = new PositionInfo(type, left, right, top, + bottom); + positionInfo.put(view, pos); + } + } + } } } diff --git a/libjava/classpath/javax/swing/text/html/CSS.java b/libjava/classpath/javax/swing/text/html/CSS.java index c248e758ec2..77f94a60878 100644 --- a/libjava/classpath/javax/swing/text/html/CSS.java +++ b/libjava/classpath/javax/swing/text/html/CSS.java @@ -37,8 +37,19 @@ exception statement from your version. */ package javax.swing.text.html; +import gnu.javax.swing.text.html.css.BorderStyle; +import gnu.javax.swing.text.html.css.BorderWidth; +import gnu.javax.swing.text.html.css.CSSColor; +import gnu.javax.swing.text.html.css.FontSize; +import gnu.javax.swing.text.html.css.FontStyle; +import gnu.javax.swing.text.html.css.FontWeight; +import gnu.javax.swing.text.html.css.Length; + import java.io.Serializable; import java.util.HashMap; +import java.util.StringTokenizer; + +import javax.swing.text.MutableAttributeSet; /** * Provides CSS attributes to be used by the HTML view classes. The constants @@ -388,6 +399,36 @@ public class CSS implements Serializable public static final Attribute WORD_SPACING = new Attribute("word-spacing", true, "normal"); + // Some GNU Classpath specific extensions. + static final Attribute BORDER_TOP_STYLE = + new Attribute("border-top-style", false, null); + static final Attribute BORDER_BOTTOM_STYLE = + new Attribute("border-bottom-style", false, null); + static final Attribute BORDER_LEFT_STYLE = + new Attribute("border-left-style", false, null); + static final Attribute BORDER_RIGHT_STYLE = + new Attribute("border-right-style", false, null); + static final Attribute BORDER_TOP_COLOR = + new Attribute("border-top-color", false, null); + static final Attribute BORDER_BOTTOM_COLOR = + new Attribute("border-bottom-color", false, null); + static final Attribute BORDER_LEFT_COLOR = + new Attribute("border-left-color", false, null); + static final Attribute BORDER_RIGHT_COLOR = + new Attribute("border-right-color", false, null); + static final Attribute BORDER_SPACING = + new Attribute("border-spacing", false, null); + static final Attribute POSITION = + new Attribute("position", false, null); + static final Attribute LEFT = + new Attribute("left", false, null); + static final Attribute RIGHT = + new Attribute("right", false, null); + static final Attribute TOP = + new Attribute("top", false, null); + static final Attribute BOTTOM = + new Attribute("bottom", false, null); + /** * The attribute string. */ @@ -459,4 +500,237 @@ public class CSS implements Serializable return defaultValue; } } + + /** + * Maps attribute values (String) to some converter class, based on the + * key. + * + * @param att the key + * @param v the value + * + * @return the wrapped value + */ + static Object getValue(Attribute att, String v) + { + Object o; + if (att == Attribute.FONT_SIZE) + o = new FontSize(v); + else if (att == Attribute.FONT_WEIGHT) + o = new FontWeight(v); + else if (att == Attribute.FONT_STYLE) + o = new FontStyle(v); + else if (att == Attribute.COLOR || att == Attribute.BACKGROUND_COLOR + || att == Attribute.BORDER_COLOR + || att == Attribute.BORDER_TOP_COLOR + || att == Attribute.BORDER_BOTTOM_COLOR + || att == Attribute.BORDER_LEFT_COLOR + || att == Attribute.BORDER_RIGHT_COLOR) + o = new CSSColor(v); + else if (att == Attribute.MARGIN || att == Attribute.MARGIN_BOTTOM + || att == Attribute.MARGIN_LEFT || att == Attribute.MARGIN_RIGHT + || att == Attribute.MARGIN_TOP || att == Attribute.WIDTH + || att == Attribute.HEIGHT + || att == Attribute.PADDING || att == Attribute.PADDING_BOTTOM + || att == Attribute.PADDING_LEFT || att == Attribute.PADDING_RIGHT + || att == Attribute.PADDING_TOP + || att == Attribute.LEFT || att == Attribute.RIGHT + || att == Attribute.TOP || att == Attribute.BOTTOM) + o = new Length(v); + else if (att == Attribute.BORDER_WIDTH || att == Attribute.BORDER_TOP_WIDTH + || att == Attribute.BORDER_LEFT_WIDTH + || att == Attribute.BORDER_RIGHT_WIDTH + || att == Attribute.BORDER_BOTTOM_WIDTH) + o = new BorderWidth(v); + else + o = v; + return o; + } + + static void addInternal(MutableAttributeSet atts, Attribute a, String v) + { + if (a == Attribute.BACKGROUND) + parseBackgroundShorthand(atts, v); + else if (a == Attribute.PADDING) + parsePaddingShorthand(atts, v); + else if (a == Attribute.MARGIN) + parseMarginShorthand(atts, v); + else if (a == Attribute.BORDER || a == Attribute.BORDER_LEFT + || a == Attribute.BORDER_RIGHT || a == Attribute.BORDER_TOP + || a == Attribute.BORDER_BOTTOM) + parseBorderShorthand(atts, v, a); + } + + /** + * Parses the background shorthand and translates it to more specific + * background attributes. + * + * @param atts the attributes + * @param v the value + */ + private static void parseBackgroundShorthand(MutableAttributeSet atts, + String v) + { + StringTokenizer tokens = new StringTokenizer(v, " "); + while (tokens.hasMoreElements()) + { + String token = tokens.nextToken(); + if (CSSColor.isValidColor(token)) + atts.addAttribute(Attribute.BACKGROUND_COLOR, + new CSSColor(token)); + } + } + + /** + * Parses the padding shorthand and translates to the specific padding + * values. + * + * @param atts the attributes + * @param v the actual value + */ + private static void parsePaddingShorthand(MutableAttributeSet atts, String v) + { + StringTokenizer tokens = new StringTokenizer(v, " "); + int numTokens = tokens.countTokens(); + if (numTokens == 1) + { + Length l = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.PADDING_BOTTOM, l); + atts.addAttribute(Attribute.PADDING_LEFT, l); + atts.addAttribute(Attribute.PADDING_RIGHT, l); + atts.addAttribute(Attribute.PADDING_TOP, l); + } + else if (numTokens == 2) + { + Length l1 = new Length(tokens.nextToken()); + Length l2 = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.PADDING_BOTTOM, l1); + atts.addAttribute(Attribute.PADDING_TOP, l1); + atts.addAttribute(Attribute.PADDING_LEFT, l2); + atts.addAttribute(Attribute.PADDING_RIGHT, l2); + } + else if (numTokens == 3) + { + Length l1 = new Length(tokens.nextToken()); + Length l2 = new Length(tokens.nextToken()); + Length l3 = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.PADDING_TOP, l1); + atts.addAttribute(Attribute.PADDING_LEFT, l2); + atts.addAttribute(Attribute.PADDING_RIGHT, l2); + atts.addAttribute(Attribute.PADDING_BOTTOM, l3); + } + else + { + Length l1 = new Length(tokens.nextToken()); + Length l2 = new Length(tokens.nextToken()); + Length l3 = new Length(tokens.nextToken()); + Length l4 = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.PADDING_TOP, l1); + atts.addAttribute(Attribute.PADDING_RIGHT, l2); + atts.addAttribute(Attribute.PADDING_BOTTOM, l3); + atts.addAttribute(Attribute.PADDING_LEFT, l4); + } + } + + /** + * Parses the margin shorthand and translates to the specific margin + * values. + * + * @param atts the attributes + * @param v the actual value + */ + private static void parseMarginShorthand(MutableAttributeSet atts, String v) + { + StringTokenizer tokens = new StringTokenizer(v, " "); + int numTokens = tokens.countTokens(); + if (numTokens == 1) + { + Length l = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.MARGIN_BOTTOM, l); + atts.addAttribute(Attribute.MARGIN_LEFT, l); + atts.addAttribute(Attribute.MARGIN_RIGHT, l); + atts.addAttribute(Attribute.MARGIN_TOP, l); + } + else if (numTokens == 2) + { + Length l1 = new Length(tokens.nextToken()); + Length l2 = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.MARGIN_BOTTOM, l1); + atts.addAttribute(Attribute.MARGIN_TOP, l1); + atts.addAttribute(Attribute.MARGIN_LEFT, l2); + atts.addAttribute(Attribute.MARGIN_RIGHT, l2); + } + else if (numTokens == 3) + { + Length l1 = new Length(tokens.nextToken()); + Length l2 = new Length(tokens.nextToken()); + Length l3 = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.MARGIN_TOP, l1); + atts.addAttribute(Attribute.MARGIN_LEFT, l2); + atts.addAttribute(Attribute.MARGIN_RIGHT, l2); + atts.addAttribute(Attribute.MARGIN_BOTTOM, l3); + } + else + { + Length l1 = new Length(tokens.nextToken()); + Length l2 = new Length(tokens.nextToken()); + Length l3 = new Length(tokens.nextToken()); + Length l4 = new Length(tokens.nextToken()); + atts.addAttribute(Attribute.MARGIN_TOP, l1); + atts.addAttribute(Attribute.MARGIN_RIGHT, l2); + atts.addAttribute(Attribute.MARGIN_BOTTOM, l3); + atts.addAttribute(Attribute.MARGIN_LEFT, l4); + } + } + + /** + * Parses the CSS border shorthand attribute and translates it to the + * more specific border attributes. + * + * @param atts the attribute + * @param value the value + */ + private static void parseBorderShorthand(MutableAttributeSet atts, + String value, Attribute cssAtt) + { + StringTokenizer tokens = new StringTokenizer(value, " "); + while (tokens.hasMoreTokens()) + { + String token = tokens.nextToken(); + if (BorderStyle.isValidStyle(token)) + { + if (cssAtt == Attribute.BORDER_LEFT || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_LEFT_STYLE, token); + if (cssAtt == Attribute.BORDER_RIGHT || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_RIGHT_STYLE, token); + if (cssAtt == Attribute.BORDER_BOTTOM || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_BOTTOM_STYLE, token); + if (cssAtt == Attribute.BORDER_TOP || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_TOP_STYLE, token); + } + else if (BorderWidth.isValid(token)) + { + BorderWidth w = new BorderWidth(token); + if (cssAtt == Attribute.BORDER_LEFT || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_LEFT_WIDTH, w); + if (cssAtt == Attribute.BORDER_RIGHT || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_RIGHT_WIDTH, w); + if (cssAtt == Attribute.BORDER_BOTTOM || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_BOTTOM_WIDTH, w); + if (cssAtt == Attribute.BORDER_TOP || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_TOP_WIDTH, w); + } + else if (CSSColor.isValidColor(token)) + { + CSSColor c = new CSSColor(token); + if (cssAtt == Attribute.BORDER_LEFT || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_LEFT_COLOR, c); + if (cssAtt == Attribute.BORDER_RIGHT || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_RIGHT_COLOR, c); + if (cssAtt == Attribute.BORDER_BOTTOM || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_BOTTOM_COLOR, c); + if (cssAtt == Attribute.BORDER_TOP || cssAtt == Attribute.BORDER) + atts.addAttribute(Attribute.BORDER_TOP_COLOR, c); + } + } + } } diff --git a/libjava/classpath/javax/swing/text/html/CSSBorder.java b/libjava/classpath/javax/swing/text/html/CSSBorder.java new file mode 100644 index 00000000000..fff6b01a170 --- /dev/null +++ b/libjava/classpath/javax/swing/text/html/CSSBorder.java @@ -0,0 +1,421 @@ +/* CSSBorder.java -- A border for rendering CSS border styles + 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 javax.swing.text.html; + +import gnu.javax.swing.text.html.css.BorderWidth; +import gnu.javax.swing.text.html.css.CSSColor; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Graphics; +import java.awt.Insets; + +import javax.swing.border.Border; +import javax.swing.text.AttributeSet; + +/** + * A border implementation to render CSS border styles. + */ +class CSSBorder + implements Border +{ + + /** + * The CSS border styles. + */ + + private static final int STYLE_NOT_SET = -1; + private static final int STYLE_NONE = 0; + private static final int STYLE_HIDDEN = 1; + private static final int STYLE_DOTTED = 2; + private static final int STYLE_DASHED = 3; + private static final int STYLE_SOLID = 4; + private static final int STYLE_DOUBLE = 5; + private static final int STYLE_GROOVE = 6; + private static final int STYLE_RIDGE = 7; + private static final int STYLE_INSET = 8; + private static final int STYLE_OUTSET = 9; + + /** + * The left insets. + */ + private int left; + + /** + * The right insets. + */ + private int right; + + /** + * The top insets. + */ + private int top; + + /** + * The bottom insets. + */ + private int bottom; + + /** + * The border style on the left. + */ + private int leftStyle; + + /** + * The border style on the right. + */ + private int rightStyle; + + /** + * The border style on the top. + */ + private int topStyle; + + /** + * The color for the top border. + */ + private Color topColor; + + /** + * The color for the bottom border. + */ + private Color bottomColor; + + /** + * The color for the left border. + */ + private Color leftColor; + + /** + * The color for the right border. + */ + private Color rightColor; + + /** + * The border style on the bottom. + */ + private int bottomStyle; + + /** + * Creates a new CSS border and fetches its attributes from the specified + * attribute set. + * + * @param atts the attribute set that contains the border spec + */ + CSSBorder(AttributeSet atts, StyleSheet ss) + { + // Determine the border styles. + int style = getBorderStyle(atts, CSS.Attribute.BORDER_STYLE); + if (style == STYLE_NOT_SET) + style = STYLE_NONE; // Default to none. + topStyle = bottomStyle = leftStyle = rightStyle = style; + style = getBorderStyle(atts, CSS.Attribute.BORDER_TOP_STYLE); + if (style != STYLE_NOT_SET) + topStyle = style; + style = getBorderStyle(atts, CSS.Attribute.BORDER_BOTTOM_STYLE); + if (style != STYLE_NOT_SET) + bottomStyle = style; + style = getBorderStyle(atts, CSS.Attribute.BORDER_LEFT_STYLE); + if (style != STYLE_NOT_SET) + leftStyle = style; + style = getBorderStyle(atts, CSS.Attribute.BORDER_RIGHT_STYLE); + if (style != STYLE_NOT_SET) + rightStyle = style; + + // Determine the border colors. + Color color = getBorderColor(atts, CSS.Attribute.BORDER_COLOR); + if (color == null) + color = Color.BLACK; + topColor = bottomColor = leftColor = rightColor = color; + color = getBorderColor(atts, CSS.Attribute.BORDER_TOP_COLOR); + if (color != null) + topColor = color; + color = getBorderColor(atts, CSS.Attribute.BORDER_BOTTOM_COLOR); + if (color != null) + bottomColor = color; + color = getBorderColor(atts, CSS.Attribute.BORDER_LEFT_COLOR); + if (color != null) + leftColor = color; + color = getBorderColor(atts, CSS.Attribute.BORDER_RIGHT_COLOR); + if (color != null) + rightColor = color; + + // Determine the border widths. + int width = getBorderWidth(atts, CSS.Attribute.BORDER_WIDTH, ss); + if (width == -1) + width = 0; + top = bottom = left = right = width; + width = getBorderWidth(atts, CSS.Attribute.BORDER_TOP_WIDTH, ss); + if (width >= 0) + top = width; + width = getBorderWidth(atts, CSS.Attribute.BORDER_BOTTOM_WIDTH, ss); + if (width >= 0) + bottom = width; + width = getBorderWidth(atts, CSS.Attribute.BORDER_LEFT_WIDTH, ss); + if (width >= 0) + left = width; + width = getBorderWidth(atts, CSS.Attribute.BORDER_RIGHT_WIDTH, ss); + if (width >= 0) + right = width; + } + + /** + * Determines the border style for a given CSS attribute. + * + * @param atts the attribute set + * @param key the CSS key + * + * @return the border style according to the constants defined in this class + */ + private int getBorderStyle(AttributeSet atts, CSS.Attribute key) + { + int style = STYLE_NOT_SET; + Object o = atts.getAttribute(key); + if (o != null) + { + String cssStyle = o.toString(); + if (cssStyle.equals("none")) + style = STYLE_NONE; + else if (cssStyle.equals("hidden")) + style = STYLE_HIDDEN; + else if (cssStyle.equals("dotted")) + style = STYLE_DOTTED; + else if (cssStyle.equals("dashed")) + style = STYLE_DASHED; + else if (cssStyle.equals("solid")) + style = STYLE_SOLID; + else if (cssStyle.equals("double")) + style = STYLE_DOUBLE; + else if (cssStyle.equals("groove")) + style = STYLE_GROOVE; + else if (cssStyle.equals("ridge")) + style = STYLE_RIDGE; + else if (cssStyle.equals("inset")) + style = STYLE_INSET; + else if (cssStyle.equals("outset")) + style = STYLE_OUTSET; + } + return style; + } + + /** + * Determines the border color for the specified key. + * + * @param atts the attribute set from which to fetch the color + * @param key the CSS key + * + * @return the border color + */ + private Color getBorderColor(AttributeSet atts, CSS.Attribute key) + { + Object o = atts.getAttribute(key); + Color color = null; + if (o instanceof CSSColor) + { + CSSColor cssColor = (CSSColor) o; + color = cssColor.getValue(); + } + return color; + } + + /** + * Returns the width for the specified key. + * + * @param atts the attributes to fetch the width from + * @param key the CSS key + * + * @return the width, or -1 of none has been set + */ + private int getBorderWidth(AttributeSet atts, CSS.Attribute key, + StyleSheet ss) + { + int width = -1; + Object o = atts.getAttribute(key); + if (o instanceof BorderWidth) + { + BorderWidth w = (BorderWidth) o; + w.setFontBases(ss.getEMBase(atts), ss.getEXBase(atts)); + width = (int) ((BorderWidth) o).getValue(); + } + return width; + } + + /** + * Returns the border insets. + */ + public Insets getBorderInsets(Component c) + { + return new Insets(top, left, bottom, right); + } + + /** + * CSS borders are generally opaque so return true here. + */ + public boolean isBorderOpaque() + { + return true; + } + + public void paintBorder(Component c, Graphics g, int x, int y, int width, + int height) + { + // Top border. + paintBorderLine(g, x, y + top / 2, x + width, y + top / 2, topStyle, top, + topColor, false); + // Left border. + paintBorderLine(g, x + left / 2, y, x + left / 2, y + height, leftStyle, + left, leftColor, true); + // Bottom border. + paintBorderLine(g, x, y + height - bottom / 2, x + width, + y + height - bottom / 2, topStyle, bottom, bottomColor, + false); + // Right border. + paintBorderLine(g, x + width - right / 2, y, x + width - right / 2, + y + height, topStyle, right, rightColor, true); + + } + + private void paintBorderLine(Graphics g, int x1, int y1, int x2, int y2, + int style, int width, Color color, + boolean vertical) + { + switch (style) + { + case STYLE_DOTTED: + paintDottedLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_DASHED: + paintDashedLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_SOLID: + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_DOUBLE: + paintDoubleLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_GROOVE: + paintGrooveLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_RIDGE: + paintRidgeLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_OUTSET: + paintOutsetLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_INSET: + paintInsetLine(g, x1, y1, x2, y2, width, color, vertical); + break; + case STYLE_NONE: + case STYLE_HIDDEN: + default: + // Nothing to do in these cases. + } + } + + private void paintDottedLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + // FIXME: Implement this. + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + } + + private void paintDashedLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + // FIXME: Implement this. + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + } + + private void paintSolidLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + int x = Math.min(x1, x2); + int y = Math.min(y1, y1); + int w = Math.abs(x2 - x1); + int h = Math.abs(y2 - y1); + if (vertical) + { + w = width; + x -= width / 2; + } + else + { + h = width; + y -= width / 2; + } + g.setColor(color); + g.fillRect(x, y, w, h); + } + + private void paintDoubleLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + // FIXME: Implement this. + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + } + + private void paintGrooveLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + // FIXME: Implement this. + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + } + + private void paintRidgeLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + // FIXME: Implement this. + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + } + + private void paintOutsetLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + // FIXME: Implement this. + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + } + + private void paintInsetLine(Graphics g, int x1, int y1, int x2, int y2, + int width, Color color, boolean vertical) + { + // FIXME: Implement this. + paintSolidLine(g, x1, y1, x2, y2, width, color, vertical); + } + +} diff --git a/libjava/classpath/javax/swing/text/html/FormSubmitEvent.java b/libjava/classpath/javax/swing/text/html/FormSubmitEvent.java new file mode 100644 index 00000000000..bc7c36f4b27 --- /dev/null +++ b/libjava/classpath/javax/swing/text/html/FormSubmitEvent.java @@ -0,0 +1,123 @@ +/* FormSubmitEvent.java -- Event fired on form submit + 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 javax.swing.text.html; + +import java.net.URL; + +import javax.swing.text.Element; + +/** + * The event fired on form submit. + * + * @since 1.5 + */ +public class FormSubmitEvent + extends HTMLFrameHyperlinkEvent +{ + + // FIXME: Use enums when available. + /** + * The submit method. + */ + public static class MethodType + { + /** + * Indicates a form submit with HTTP method POST. + */ + public static final MethodType POST = new MethodType(); + + /** + * Indicates a form submit with HTTP method GET. + */ + public static final MethodType GET = new MethodType(); + + private MethodType() + { + } + } + + /** + * The submit method. + */ + private MethodType method; + + /** + * The actual submit data. + */ + private String data; + + /** + * Creates a new FormSubmitEvent. + * + * @param source the source + * @param type the type of hyperlink update + * @param url the action url + * @param el the associated element + * @param target the target attribute + * @param m the submit method + * @param d the submit data + */ + FormSubmitEvent(Object source, EventType type, URL url, Element el, + String target, MethodType m, String d) + { + super(source, type, url, el, target); + method = m; + data = d; + } + + /** + * Returns the submit data. + * + * @return the submit data + */ + public String getData() + { + return data; + } + + /** + * Returns the HTTP submit method. + * + * @return the HTTP submit method + */ + public MethodType getMethod() + { + return method; + } +} diff --git a/libjava/classpath/javax/swing/text/html/FormView.java b/libjava/classpath/javax/swing/text/html/FormView.java index d54021066d0..ef362bd3d9b 100644 --- a/libjava/classpath/javax/swing/text/html/FormView.java +++ b/libjava/classpath/javax/swing/text/html/FormView.java @@ -44,16 +44,36 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLEncoder; +import javax.swing.ButtonModel; +import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JEditorPane; +import javax.swing.JList; import javax.swing.JPasswordField; import javax.swing.JRadioButton; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.UIManager; +import javax.swing.event.HyperlinkEvent; import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; import javax.swing.text.ComponentView; +import javax.swing.text.Document; import javax.swing.text.Element; +import javax.swing.text.ElementIterator; import javax.swing.text.StyleConstants; /** @@ -105,6 +125,231 @@ public class FormView } /** + * Actually submits the form data. + */ + private class SubmitThread + extends Thread + { + /** + * The submit data. + */ + private String data; + + /** + * Creates a new SubmitThread. + * + * @param d the submit data + */ + SubmitThread(String d) + { + data = d; + } + + /** + * Actually performs the submit. + */ + public void run() + { + if (data.length() > 0) + { + final String method = getMethod(); + final URL actionURL = getActionURL(); + final String target = getTarget(); + URLConnection conn; + final JEditorPane editor = (JEditorPane) getContainer(); + final HTMLDocument doc = (HTMLDocument) editor.getDocument(); + HTMLEditorKit kit = (HTMLEditorKit) editor.getEditorKit(); + if (kit.isAutoFormSubmission()) + { + try + { + final URL url; + if (method != null && method.equals("post")) + { + // Perform POST. + url = actionURL; + conn = url.openConnection(); + postData(conn, data); + } + else + { + // Default to GET. + url = new URL(actionURL + "?" + data); + } + Runnable loadDoc = new Runnable() + { + public void run() + { + if (doc.isFrameDocument()) + { + editor.fireHyperlinkUpdate(createSubmitEvent(method, + actionURL, + target)); + } + else + { + try + { + editor.setPage(url); + } + catch (IOException ex) + { + // Oh well. + ex.printStackTrace(); + } + } + } + }; + SwingUtilities.invokeLater(loadDoc); + } + catch (MalformedURLException ex) + { + ex.printStackTrace(); + } + catch (IOException ex) + { + ex.printStackTrace(); + } + } + else + { + editor.fireHyperlinkUpdate(createSubmitEvent(method,actionURL, + target)); + } + } + } + + /** + * Determines the submit method. + * + * @return the submit method + */ + private String getMethod() + { + AttributeSet formAtts = getFormAttributes(); + String method = null; + if (formAtts != null) + { + method = (String) formAtts.getAttribute(HTML.Attribute.METHOD); + } + return method; + } + + /** + * Determines the action URL. + * + * @return the action URL + */ + private URL getActionURL() + { + AttributeSet formAtts = getFormAttributes(); + HTMLDocument doc = (HTMLDocument) getElement().getDocument(); + URL url = doc.getBase(); + if (formAtts != null) + { + String action = + (String) formAtts.getAttribute(HTML.Attribute.ACTION); + if (action != null) + { + try + { + url = new URL(url, action); + } + catch (MalformedURLException ex) + { + url = null; + } + } + } + return url; + } + + /** + * Fetches the target attribute. + * + * @return the target attribute or _self if none is present + */ + private String getTarget() + { + AttributeSet formAtts = getFormAttributes(); + String target = null; + if (formAtts != null) + { + target = (String) formAtts.getAttribute(HTML.Attribute.TARGET); + if (target != null) + target = target.toLowerCase(); + } + if (target == null) + target = "_self"; + return target; + } + + /** + * Posts the form data over the specified connection. + * + * @param conn the connection + */ + private void postData(URLConnection conn, String data) + { + conn.setDoOutput(true); + PrintWriter out = null; + try + { + out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream())); + out.print(data); + out.flush(); + } + catch (IOException ex) + { + // Deal with this! + ex.printStackTrace(); + } + finally + { + if (out != null) + out.close(); + } + } + + /** + * Determines the attributes from the relevant form tag. + * + * @return the attributes from the relevant form tag, null + * when there is no form tag + */ + private AttributeSet getFormAttributes() + { + AttributeSet atts = null; + Element form = getFormElement(); + if (form != null) + atts = form.getAttributes(); + return atts; + } + + /** + * Creates the submit event that should be fired. + * + * This is package private to avoid accessor methods. + * + * @param method the submit method + * @param actionURL the action URL + * @param target the target + * + * @return the submit event + */ + FormSubmitEvent createSubmitEvent(String method, URL actionURL, + String target) + { + FormSubmitEvent.MethodType m = "post".equals(method) + ? FormSubmitEvent.MethodType.POST + : FormSubmitEvent.MethodType.GET; + return new FormSubmitEvent(FormView.this, + HyperlinkEvent.EventType.ACTIVATED, + actionURL, getElement(), target, m, data); + } + } + + /** * If the value attribute of an <input type="submit">> * tag is not specified, then this string is used. * @@ -125,6 +370,11 @@ public class FormView UIManager.getString("FormView.resetButtonText"); /** + * If this is true, the maximum size is set to the preferred size. + */ + private boolean maxIsPreferred; + + /** * Creates a new FormView. * * @param el the element that is displayed by this view. @@ -141,39 +391,161 @@ public class FormView { Component comp = null; Element el = getElement(); - Object tag = el.getAttributes().getAttribute(StyleConstants.NameAttribute); + AttributeSet atts = el.getAttributes(); + Object tag = atts.getAttribute(StyleConstants.NameAttribute); + Object model = atts.getAttribute(StyleConstants.ModelAttribute); if (tag.equals(HTML.Tag.INPUT)) { - AttributeSet atts = el.getAttributes(); String type = (String) atts.getAttribute(HTML.Attribute.TYPE); - String value = (String) atts.getAttribute(HTML.Attribute.VALUE); if (type.equals("button")) - comp = new JButton(value); + { + String value = (String) atts.getAttribute(HTML.Attribute.VALUE); + JButton b = new JButton(value); + if (model != null) + { + b.setModel((ButtonModel) model); + b.addActionListener(this); + } + comp = b; + maxIsPreferred = true; + } else if (type.equals("checkbox")) - comp = new JCheckBox(value); + { + if (model instanceof ResetableToggleButtonModel) + { + ResetableToggleButtonModel m = + (ResetableToggleButtonModel) model; + JCheckBox c = new JCheckBox(); + c.setModel(m); + comp = c; + maxIsPreferred = true; + } + } else if (type.equals("image")) - comp = new JButton(value); // FIXME: Find out how to fetch the image. + { + String src = (String) atts.getAttribute(HTML.Attribute.SRC); + JButton b; + try + { + URL base = ((HTMLDocument) el.getDocument()).getBase(); + URL srcURL = new URL(base, src); + ImageIcon icon = new ImageIcon(srcURL); + b = new JButton(icon); + } + catch (MalformedURLException ex) + { + b = new JButton(src); + } + if (model != null) + { + b.setModel((ButtonModel) model); + b.addActionListener(this); + } + comp = b; + maxIsPreferred = true; + } else if (type.equals("password")) - comp = new JPasswordField(value); + { + int size = HTML.getIntegerAttributeValue(atts, HTML.Attribute.SIZE, + -1); + JTextField tf = new JPasswordField(); + if (size > 0) + tf.setColumns(size); + else + tf.setColumns(20); + if (model != null) + tf.setDocument((Document) model); + tf.addActionListener(this); + comp = tf; + maxIsPreferred = true; + } else if (type.equals("radio")) - comp = new JRadioButton(value); + { + if (model instanceof ResetableToggleButtonModel) + { + ResetableToggleButtonModel m = + (ResetableToggleButtonModel) model; + JRadioButton c = new JRadioButton(); + c.setModel(m); + comp = c; + maxIsPreferred = true; + } + } else if (type.equals("reset")) { - if (value == null || value.equals("")) - value = RESET; - comp = new JButton(value); + String value = (String) atts.getAttribute(HTML.Attribute.VALUE); + if (value == null) + value = UIManager.getString("FormView.resetButtonText"); + JButton b = new JButton(value); + if (model != null) + { + b.setModel((ButtonModel) model); + b.addActionListener(this); + } + comp = b; + maxIsPreferred = true; } else if (type.equals("submit")) { - if (value == null || value.equals("")) - value = SUBMIT; - comp = new JButton(value); + String value = (String) atts.getAttribute(HTML.Attribute.VALUE); + if (value == null) + value = UIManager.getString("FormView.submitButtonText"); + JButton b = new JButton(value); + if (model != null) + { + b.setModel((ButtonModel) model); + b.addActionListener(this); + } + comp = b; + maxIsPreferred = true; } else if (type.equals("text")) - comp = new JTextField(value); - + { + int size = HTML.getIntegerAttributeValue(atts, HTML.Attribute.SIZE, + -1); + JTextField tf = new JTextField(); + if (size > 0) + tf.setColumns(size); + else + tf.setColumns(20); + if (model != null) + tf.setDocument((Document) model); + tf.addActionListener(this); + comp = tf; + maxIsPreferred = true; + } + } + else if (tag == HTML.Tag.TEXTAREA) + { + JTextArea textArea = new JTextArea((Document) model); + int rows = HTML.getIntegerAttributeValue(atts, HTML.Attribute.ROWS, 1); + textArea.setRows(rows); + int cols = HTML.getIntegerAttributeValue(atts, HTML.Attribute.COLS, 20); + textArea.setColumns(cols); + maxIsPreferred = true; + comp = new JScrollPane(textArea, + JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, + JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + } + else if (tag == HTML.Tag.SELECT) + { + if (model instanceof SelectListModel) + { + SelectListModel slModel = (SelectListModel) model; + JList list = new JList(slModel); + int size = HTML.getIntegerAttributeValue(atts, HTML.Attribute.SIZE, + 1); + list.setVisibleRowCount(size); + list.setSelectionModel(slModel.getSelectionModel()); + comp = new JScrollPane(list); + } + else if (model instanceof SelectComboBoxModel) + { + SelectComboBoxModel scbModel = (SelectComboBoxModel) model; + comp = new JComboBox(scbModel); + } + maxIsPreferred = true; } - // FIXME: Implement the remaining components. return comp; } @@ -188,16 +560,11 @@ public class FormView */ public float getMaximumSpan(int axis) { - // FIXME: The specs say that for some components the maximum span == the - // preferred span of the component. This should be figured out and - // implemented accordingly. float span; - if (axis == X_AXIS) - span = getComponent().getMaximumSize().width; - else if (axis == Y_AXIS) - span = getComponent().getMaximumSize().height; + if (maxIsPreferred) + span = getPreferredSpan(axis); else - throw new IllegalArgumentException("Invalid axis parameter"); + span = super.getMaximumSpan(axis); return span; } @@ -222,7 +589,9 @@ public class FormView AttributeSet atts = el.getAttributes(); String type = (String) atts.getAttribute(HTML.Attribute.TYPE); if (type.equals("submit")) - submitData(""); // FIXME: How to fetch the actual form data? + submitData(getFormData()); + else if (type.equals("reset")) + resetForm(); } // FIXME: Implement the remaining actions. } @@ -235,7 +604,8 @@ public class FormView */ protected void submitData(String data) { - // FIXME: Implement this. + SubmitThread submitThread = new SubmitThread(data); + submitThread.start(); } /** @@ -272,4 +642,229 @@ public class FormView } return data; } + + /** + * Determines and returns the enclosing form element if there is any. + * + * This is package private to avoid accessor methods. + * + * @return the enclosing form element, or null if there is no + * enclosing form element + */ + Element getFormElement() + { + Element form = null; + Element el = getElement(); + while (el != null && form == null) + { + AttributeSet atts = el.getAttributes(); + if (atts.getAttribute(StyleConstants.NameAttribute) == HTML.Tag.FORM) + form = el; + else + el = el.getParentElement(); + } + return form; + } + + /** + * Determines the form data that is about to be submitted. + * + * @return the form data + */ + private String getFormData() + { + Element form = getFormElement(); + StringBuilder b = new StringBuilder(); + if (form != null) + { + ElementIterator i = new ElementIterator(form); + Element next; + while ((next = i.next()) != null) + { + if (next.isLeaf()) + { + AttributeSet atts = next.getAttributes(); + String type = (String) atts.getAttribute(HTML.Attribute.TYPE); + if (type != null && type.equals("submit") + && next != getElement()) + { + // Skip this. This is not the actual submit trigger. + } + else if (type == null || ! type.equals("image")) + { + getElementFormData(next, b); + } + } + } + } + return b.toString(); + } + + /** + * Fetches the form data from the specified element and appends it to + * the data string. + * + * @param el the element from which to fetch form data + * @param b the data string + */ + private void getElementFormData(Element el, StringBuilder b) + { + AttributeSet atts = el.getAttributes(); + String name = (String) atts.getAttribute(HTML.Attribute.NAME); + if (name != null) + { + String value = null; + HTML.Tag tag = (HTML.Tag) atts.getAttribute(StyleConstants.NameAttribute); + if (tag == HTML.Tag.SELECT) + { + getSelectData(atts, b); + } + else + { + if (tag == HTML.Tag.INPUT) + value = getInputFormData(atts); + else if (tag == HTML.Tag.TEXTAREA) + value = getTextAreaData(atts); + if (name != null && value != null) + { + addData(b, name, value); + } + } + } + } + + /** + * Fetches form data from select boxes. + * + * @param atts the attributes of the element + * + * @param b the form data string to append to + */ + private void getSelectData(AttributeSet atts, StringBuilder b) + { + String name = (String) atts.getAttribute(HTML.Attribute.NAME); + if (name != null) + { + Object m = atts.getAttribute(StyleConstants.ModelAttribute); + if (m instanceof SelectListModel) + { + SelectListModel sl = (SelectListModel) m; + ListSelectionModel lsm = sl.getSelectionModel(); + for (int i = 0; i < sl.getSize(); i++) + { + if (lsm.isSelectedIndex(i)) + { + Option o = (Option) sl.getElementAt(i); + addData(b, name, o.getValue()); + } + } + } + else if (m instanceof SelectComboBoxModel) + { + SelectComboBoxModel scb = (SelectComboBoxModel) m; + Option o = (Option) scb.getSelectedItem(); + if (o != null) + addData(b, name, o.getValue()); + } + } + } + + /** + * Fetches form data from a textarea. + * + * @param atts the attributes + * + * @return the form data + */ + private String getTextAreaData(AttributeSet atts) + { + Document doc = (Document) atts.getAttribute(StyleConstants.ModelAttribute); + String data; + try + { + data = doc.getText(0, doc.getLength()); + } + catch (BadLocationException ex) + { + data = null; + } + return data; + } + + /** + * Fetches form data from an input tag. + * + * @param atts the attributes from which to fetch the data + * + * @return the field value + */ + private String getInputFormData(AttributeSet atts) + { + String type = (String) atts.getAttribute(HTML.Attribute.TYPE); + Object model = atts.getAttribute(StyleConstants.ModelAttribute); + String value = null; + if (type.equals("text") || type.equals("password")) + { + Document doc = (Document) model; + try + { + value = doc.getText(0, doc.getLength()); + } + catch (BadLocationException ex) + { + // Sigh. + assert false; + } + } + else if (type.equals("hidden") || type.equals("submit")) + { + value = (String) atts.getAttribute(HTML.Attribute.VALUE); + if (value == null) + value = ""; + } + // TODO: Implement the others. radio, checkbox and file. + return value; + } + + /** + * Actually adds the specified data to the string. It URL encodes + * the name and value and handles separation of the fields. + * + * @param b the string at which the form data to be added + * @param name the name of the field + * @param value the value + */ + private void addData(StringBuilder b, String name, String value) + { + if (b.length() > 0) + b.append('&'); + String encName = URLEncoder.encode(name); + b.append(encName); + b.append('='); + String encValue = URLEncoder.encode(value); + b.append(encValue); + } + + /** + * Resets the form data to their initial state. + */ + private void resetForm() + { + Element form = getFormElement(); + if (form != null) + { + ElementIterator iter = new ElementIterator(form); + Element next; + while ((next = iter.next()) != null) + { + if (next.isLeaf()) + { + AttributeSet atts = next.getAttributes(); + Object m = atts.getAttribute(StyleConstants.ModelAttribute); + if (m instanceof ResetableModel) + ((ResetableModel) m).reset(); + } + } + } + } } diff --git a/libjava/classpath/javax/swing/text/html/FrameSetView.java b/libjava/classpath/javax/swing/text/html/FrameSetView.java new file mode 100644 index 00000000000..e3252d79caf --- /dev/null +++ b/libjava/classpath/javax/swing/text/html/FrameSetView.java @@ -0,0 +1,274 @@ +/* FrameSetView.java -- Implements HTML frameset + 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 javax.swing.text.html; + +import java.util.StringTokenizer; + +import javax.swing.text.AttributeSet; +import javax.swing.text.BoxView; +import javax.swing.text.Element; +import javax.swing.text.View; +import javax.swing.text.ViewFactory; + +/** + * Implements HTML framesets. This is implemented as a vertical box that + * holds the rows of the frameset. Each row is again a horizontal box that + * holds the actual columns. + */ +public class FrameSetView + extends BoxView +{ + + /** + * A row of a frameset. + */ + private class FrameSetRow + extends BoxView + { + private int row; + FrameSetRow(Element el, int r) + { + super(el, X_AXIS); + row = r; + } + + protected void loadChildren(ViewFactory f) + { + // Load the columns here. + Element el = getElement(); + View[] columns = new View[numViews[X_AXIS]]; + int offset = row * numViews[X_AXIS]; + for (int c = 0; c < numViews[X_AXIS]; c++) + { + Element child = el.getElement(offset + c); + columns[c] = f.create(child); + } + replace(0, 0, columns); + } + + protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, + int[] spans) + { + int numRows = numViews[X_AXIS]; + int[] abs = absolute[X_AXIS]; + int[] rel = relative[X_AXIS]; + int[] perc = percent[X_AXIS]; + layoutViews(targetSpan, axis, offsets, spans, numRows, abs, rel, perc); + } + } + + /** + * Holds the absolute layout information for the views along one axis. The + * indices are absolute[axis][index], where axis is either X_AXIS (columns) + * or Y_AXIS (rows). Rows or columns that don't have absolute layout have + * a -1 in this array. + */ + int[][] absolute; + + /** + * Holds the relative (*) layout information for the views along one axis. + * The indices are relative[axis][index], where axis is either X_AXIS + * (columns) or Y_AXIS (rows). Rows or columns that don't have relative + * layout have a Float.NaN in this array. + */ + int[][] relative; + + /** + * Holds the relative (%) layout information for the views along one axis. + * The indices are relative[axis][index], where axis is either X_AXIS + * (columns) or Y_AXIS (rows). Rows or columns that don't have relative + * layout have a Float.NaN in this array. + * + * The percentage is divided by 100 so that we hold the actual fraction here. + */ + int[][] percent; + + /** + * The number of children in each direction. + */ + int[] numViews; + + FrameSetView(Element el) + { + super(el, Y_AXIS); + numViews = new int[2]; + absolute = new int[2][]; + relative = new int[2][]; + percent = new int[2][]; + } + + /** + * Loads the children and places them inside the grid. + */ + protected void loadChildren(ViewFactory f) + { + parseRowsCols(); + // Set up the rows. + View[] rows = new View[numViews[Y_AXIS]]; + for (int r = 0; r < numViews[Y_AXIS]; r++) + { + rows[r] = new FrameSetRow(getElement(), r); + } + replace(0, 0, rows); + } + + /** + * Parses the rows and cols attributes and sets up the layout info. + */ + private void parseRowsCols() + { + Element el = getElement(); + AttributeSet atts = el.getAttributes(); + String cols = (String) atts.getAttribute(HTML.Attribute.COLS); + if (cols == null) // Defaults to '100%' when not specified. + cols = "100%"; + parseLayout(cols, X_AXIS); + String rows = (String) atts.getAttribute(HTML.Attribute.ROWS); + if (rows == null) // Defaults to '100%' when not specified. + rows = "100%"; + parseLayout(rows, Y_AXIS); + } + + /** + * Parses the cols or rows attribute and places the layout info in the + * appropriate arrays. + * + * @param att the attributes to parse + * @param axis the axis + */ + private void parseLayout(String att, int axis) + { + StringTokenizer tokens = new StringTokenizer(att, ","); + numViews[axis] = tokens.countTokens(); + absolute[axis] = new int[numViews[axis]]; + relative[axis] = new int[numViews[axis]]; + percent[axis] = new int[numViews[axis]]; + for (int index = 0; tokens.hasMoreTokens(); index++) + { + String token = tokens.nextToken(); + int p = token.indexOf('%'); + int s = token.indexOf('*'); + if (p != -1) + { + // Percent value. + String number = token.substring(0, p); + try + { + percent[axis][index] = Integer.parseInt(number); + } + catch (NumberFormatException ex) + { + // Leave value as 0 then. + } + } + else if (s != -1) + { + // Star relative value. + String number = token.substring(0, s); + try + { + relative[axis][index] = Integer.parseInt(number); + } + catch (NumberFormatException ex) + { + // Leave value as 0 then. + } + } + else + { + // Absolute value. + try + { + absolute[axis][index] = Integer.parseInt(token); + } + catch (NumberFormatException ex) + { + // Leave value as 0 then. + } + } + } + } + + protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, + int[] spans) + { + int numRows = numViews[Y_AXIS]; + int[] abs = absolute[Y_AXIS]; + int[] rel = relative[Y_AXIS]; + int[] perc = percent[Y_AXIS]; + layoutViews(targetSpan, axis, offsets, spans, numRows, abs, rel, perc); + } + + void layoutViews(int targetSpan, int axis, int[] offsets, int[] spans, + int numViews, int[] abs, int[] rel, int[] perc) + { + // We need two passes. In the first pass we layout the absolute and + // percent values and accumulate the needed space. In the second pass + // the relative values are distributed and the offsets are set. + int total = 0; + int relTotal = 0; + for (int i = 0; i < numViews; i++) + { + if (abs[i] > 0) + { + spans[i] = abs[i]; + total += spans[i]; + } + else if (perc[i] > 0) + { + spans[i] = (targetSpan * perc[i]) / 100; + total += spans[i]; + } + else if (rel[i] > 0) + { + relTotal += rel[i]; + } + } + int offs = 0; + for (int i = 0; i < numViews; i++) + { + if (relTotal > 0 && rel[i] > 0) + { + spans[i] = targetSpan * (rel[i] / relTotal); + } + offsets[i] = offs; + offs += spans[i]; + } + } +} diff --git a/libjava/classpath/javax/swing/text/html/FrameView.java b/libjava/classpath/javax/swing/text/html/FrameView.java new file mode 100644 index 00000000000..cd4e44a98ce --- /dev/null +++ b/libjava/classpath/javax/swing/text/html/FrameView.java @@ -0,0 +1,233 @@ +/* FrameView.java -- Renders HTML frame tags + 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 javax.swing.text.html; + +import java.awt.Component; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; + +import javax.swing.JEditorPane; +import javax.swing.event.HyperlinkEvent; +import javax.swing.event.HyperlinkListener; +import javax.swing.text.AttributeSet; +import javax.swing.text.ComponentView; +import javax.swing.text.Element; +import javax.swing.text.View; + +/** + * A view that is responsible for rendering HTML frame tags. + * This is accomplished by a specialized {@link ComponentView} + * that embeds a JEditorPane with an own document. + */ +class FrameView + extends ComponentView + implements HyperlinkListener +{ + + /** + * Creates a new FrameView for the specified element. + * + * @param el the element for the view + */ + FrameView(Element el) + { + super(el); + } + + /** + * Creates the element that will be embedded in the view. + * This will be a JEditorPane with the appropriate content set. + * + * @return the element that will be embedded in the view + */ + protected Component createComponent() + { + Element el = getElement(); + AttributeSet atts = el.getAttributes(); + JEditorPane html = new JEditorPane(); + html.addHyperlinkListener(this); + URL base = ((HTMLDocument) el.getDocument()).getBase(); + String srcAtt = (String) atts.getAttribute(HTML.Attribute.SRC); + if (srcAtt != null && ! srcAtt.equals("")) + { + try + { + URL page = new URL(base, srcAtt); + html.setPage(page); + ((HTMLDocument) html.getDocument()).setFrameDocument(true); + } + catch (MalformedURLException ex) + { + // Leave page empty. + } + catch (IOException ex) + { + // Leave page empty. + } + } + return html; + } + + /** + * Catches hyperlink events on that frame's editor and forwards it to + * the outermost editorpane. + */ + public void hyperlinkUpdate(HyperlinkEvent event) + { + JEditorPane outer = getTopEditorPane(); + if (outer != null) + { + if (event instanceof HTMLFrameHyperlinkEvent) + { + HTMLFrameHyperlinkEvent hfhe = (HTMLFrameHyperlinkEvent) event; + if (hfhe.getEventType() == HyperlinkEvent.EventType.ACTIVATED) + { + String target = hfhe.getTarget(); + if (event instanceof FormSubmitEvent) + { + handleFormSubmitEvent(hfhe, outer, target); + } + else // No FormSubmitEvent. + { + handleHyperlinkEvent(hfhe, outer, target); + } + } + } + else + { + // Simply forward this event. + outer.fireHyperlinkUpdate(event); + } + } + } + + /** + * Handles normal hyperlink events. + * + * @param event the event + * @param outer the top editor + * @param target the target + */ + private void handleHyperlinkEvent(HyperlinkEvent event, + JEditorPane outer, String target) + { + if (target.equals("_top")) + { + try + { + outer.setPage(event.getURL()); + } + catch (IOException ex) + { + // Well... + ex.printStackTrace(); + } + } + if (! outer.isEditable()) + { + outer.fireHyperlinkUpdate + (new HTMLFrameHyperlinkEvent(outer, + event.getEventType(), + event.getURL(), + event.getDescription(), + getElement(), + target)); + } + } + + /** + * Handles form submit events. + * + * @param event the event + * @param outer the top editor + * @param target the target + */ + private void handleFormSubmitEvent(HTMLFrameHyperlinkEvent event, + JEditorPane outer, + String target) + { + HTMLEditorKit kit = (HTMLEditorKit) outer.getEditorKit(); + if (kit != null && kit.isAutoFormSubmission()) + { + if (target.equals("_top")) + { + try + { + outer.setPage(event.getURL()); + } + catch (IOException ex) + { + // Well... + ex.printStackTrace(); + } + } + else + { + HTMLDocument doc = + (HTMLDocument) outer.getDocument(); + doc.processHTMLFrameHyperlinkEvent(event); + } + } + else + { + outer.fireHyperlinkUpdate(event); + } + } + + /** + * Determines the topmost editor in a nested frameset. + * + * @return the topmost editor in a nested frameset + */ + private JEditorPane getTopEditorPane() + { + View parent = getParent(); + View top = null; + while (parent != null) + { + if (parent instanceof FrameSetView) + top = parent; + } + JEditorPane editor = null; + if (top != null) + editor = (JEditorPane) top.getContainer(); + return editor; + } +} diff --git a/libjava/classpath/javax/swing/text/html/HTML.java b/libjava/classpath/javax/swing/text/html/HTML.java index 2c908f6fc6e..93c05daa2f8 100644 --- a/libjava/classpath/javax/swing/text/html/HTML.java +++ b/libjava/classpath/javax/swing/text/html/HTML.java @@ -465,6 +465,16 @@ public class HTML public static final Attribute WIDTH = new Attribute("width"); /** + * This is used to reflect the pseudo class for the a tag. + */ + static final Attribute PSEUDO_CLASS = new Attribute("_pseudo"); + + /** + * This is used to reflect the dynamic class for the a tag. + */ + static final Attribute DYNAMIC_CLASS = new Attribute("_dynamic"); + + /** * The attribute name. */ private final String name; @@ -1119,8 +1129,8 @@ public class HTML static final int BLOCK = 2; static final int PREFORMATTED = 4; static final int SYNTHETIC = 8; - private static Map tagMap; - private static Map attrMap; + private static Map tagMap; + private static Map attrMap; /** * The public constructor (does nothing). It it seldom required to have @@ -1159,7 +1169,7 @@ public class HTML if (attrMap == null) { // Create the map on demand. - attrMap = new TreeMap(); + attrMap = new TreeMap(); Attribute[] attrs = getAllAttributeKeys(); @@ -1169,7 +1179,7 @@ public class HTML } } - return (Attribute) attrMap.get(attName.toLowerCase()); + return attrMap.get(attName.toLowerCase()); } /** @@ -1228,7 +1238,7 @@ public class HTML if (tagMap == null) { // Create the mao on demand. - tagMap = new TreeMap(); + tagMap = new TreeMap(); Tag[] tags = getAllTags(); @@ -1238,6 +1248,6 @@ public class HTML } } - return (Tag) tagMap.get(tagName.toLowerCase()); + return tagMap.get(tagName.toLowerCase()); } } diff --git a/libjava/classpath/javax/swing/text/html/HTMLDocument.java b/libjava/classpath/javax/swing/text/html/HTMLDocument.java index 0bfc338df45..f3d3ce3faaf 100644 --- a/libjava/classpath/javax/swing/text/html/HTMLDocument.java +++ b/libjava/classpath/javax/swing/text/html/HTMLDocument.java @@ -39,19 +39,22 @@ exception statement from your version. */ package javax.swing.text.html; import gnu.classpath.NotImplementedException; -import gnu.javax.swing.text.html.CharacterAttributeTranslator; -import gnu.javax.swing.text.html.parser.htmlAttributeSet; import java.io.IOException; import java.io.StringReader; +import java.net.MalformedURLException; import java.net.URL; +import java.util.ArrayList; import java.util.HashMap; import java.util.Stack; import java.util.Vector; +import javax.swing.ButtonGroup; +import javax.swing.DefaultButtonModel; import javax.swing.JEditorPane; +import javax.swing.ListSelectionModel; import javax.swing.event.DocumentEvent; -import javax.swing.event.HyperlinkEvent.EventType; +import javax.swing.event.UndoableEditEvent; import javax.swing.text.AbstractDocument; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; @@ -60,6 +63,7 @@ import javax.swing.text.Element; import javax.swing.text.ElementIterator; import javax.swing.text.GapContent; import javax.swing.text.MutableAttributeSet; +import javax.swing.text.PlainDocument; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import javax.swing.text.html.HTML.Tag; @@ -87,16 +91,24 @@ public class HTMLDocument extends DefaultStyledDocument boolean preservesUnknownTags = true; int tokenThreshold = Integer.MAX_VALUE; HTMLEditorKit.Parser parser; - StyleSheet styleSheet; - AbstractDocument.Content content; - + + /** + * Indicates whether this document is inside a frame or not. + */ + private boolean frameDocument; + + /** + * Package private to avoid accessor methods. + */ + String baseTarget; + /** * Constructs an HTML document using the default buffer size and a default * StyleSheet. */ public HTMLDocument() { - this(null); + this(new GapContent(BUFFER_SIZE_DEFAULT), new StyleSheet()); } /** @@ -119,14 +131,7 @@ public class HTMLDocument extends DefaultStyledDocument */ public HTMLDocument(AbstractDocument.Content c, StyleSheet styles) { - this.content = c; - if (styles == null) - { - styles = new StyleSheet(); - styles.importStyleSheet(getClass().getResource(HTMLEditorKit. - DEFAULT_CSS)); - } - this.styleSheet = styles; + super(c, styles); } /** @@ -137,7 +142,7 @@ public class HTMLDocument extends DefaultStyledDocument */ public StyleSheet getStyleSheet() { - return styleSheet; + return (StyleSheet) getAttributeContext(); } /** @@ -191,8 +196,6 @@ public class HTMLDocument extends DefaultStyledDocument protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1) { - RunElement el = new RunElement(parent, a, p0, p1); - el.addAttribute(StyleConstants.NameAttribute, HTML.Tag.CONTENT); return new RunElement(parent, a, p0, p1); } @@ -269,7 +272,7 @@ public class HTMLDocument extends DefaultStyledDocument public void setBase(URL u) { baseURL = u; - styleSheet.setBase(u); + getStyleSheet().setBase(u); } /** @@ -374,11 +377,119 @@ public class HTMLDocument extends DefaultStyledDocument } public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent event) - throws NotImplementedException { - // TODO: Implement this properly. + String target = event.getTarget(); + Element el = event.getSourceElement(); + URL url = event.getURL(); + if (target.equals("_self")) + { + updateFrame(el, url); + } + else if (target.equals("_parent")) + { + updateFrameSet(el.getParentElement(), url); + } + else + { + Element targetFrame = findFrame(target); + if (targetFrame != null) + updateFrame(targetFrame, url); + } } - + + /** + * Finds the named frame inside this document. + * + * @param target the name to look for + * + * @return the frame if there is a matching frame, null + * otherwise + */ + private Element findFrame(String target) + { + ElementIterator i = new ElementIterator(this); + Element next = null; + while ((next = i.next()) != null) + { + AttributeSet atts = next.getAttributes(); + if (atts.getAttribute(StyleConstants.NameAttribute) == HTML.Tag.FRAME) + { + String name = (String) atts.getAttribute(HTML.Attribute.NAME); + if (name != null && name.equals(target)) + break; + } + } + return next; + } + + /** + * Updates the frame that is represented by the specified element to + * refer to the specified URL. + * + * @param el the element + * @param url the new url + */ + private void updateFrame(Element el, URL url) + { + try + { + writeLock(); + DefaultDocumentEvent ev = + new DefaultDocumentEvent(el.getStartOffset(), 1, + DocumentEvent.EventType.CHANGE); + AttributeSet elAtts = el.getAttributes(); + AttributeSet copy = elAtts.copyAttributes(); + MutableAttributeSet matts = (MutableAttributeSet) elAtts; + ev.addEdit(new AttributeUndoableEdit(el, copy, false)); + matts.removeAttribute(HTML.Attribute.SRC); + matts.addAttribute(HTML.Attribute.SRC, url.toString()); + ev.end(); + fireChangedUpdate(ev); + fireUndoableEditUpdate(new UndoableEditEvent(this, ev)); + } + finally + { + writeUnlock(); + } + } + + /** + * Updates the frameset that is represented by the specified element + * to create a frame that refers to the specified URL. + * + * @param el the element + * @param url the url + */ + private void updateFrameSet(Element el, URL url) + { + int start = el.getStartOffset(); + int end = el.getEndOffset(); + + StringBuilder html = new StringBuilder(); + html.append("'); + if (getParser() == null) + setParser(new HTMLEditorKit().getParser()); + try + { + setOuterHTML(el, html.toString()); + } + catch (BadLocationException ex) + { + ex.printStackTrace(); + } + catch (IOException ex) + { + ex.printStackTrace(); + } + } + /** * Gets an iterator for the given HTML.Tag. * @param t the requested HTML.Tag @@ -461,6 +572,8 @@ public class HTMLDocument extends DefaultStyledDocument String name = null; if (tag != null) name = tag.toString(); + if (name == null) + name = super.getName(); return name; } } @@ -497,6 +610,8 @@ public class HTMLDocument extends DefaultStyledDocument String name = null; if (tag != null) name = tag.toString(); + if (name == null) + name = super.getName(); return name; } @@ -518,24 +633,33 @@ public class HTMLDocument extends DefaultStyledDocument * @author Anthony Balkissoon abalkiss at redhat dot com */ public class HTMLReader extends HTMLEditorKit.ParserCallback - { + { + /** + * The maximum token threshold. We don't grow it larger than this. + */ + private static final int MAX_THRESHOLD = 10000; + + /** + * The threshold growth factor. + */ + private static final int GROW_THRESHOLD = 5; + /** * Holds the current character attribute set * */ protected MutableAttributeSet charAttr = new SimpleAttributeSet(); - protected Vector parseBuffer = new Vector(); - + protected Vector parseBuffer = new Vector(); + + /** + * The parse stack. It holds the current element tree path. + */ + private Stack parseStack = new Stack(); + /** * A stack for character attribute sets * */ Stack charAttrStack = new Stack(); - - /** - * The parse stack. This stack holds HTML.Tag objects that reflect the - * current position in the parsing process. - */ - Stack parseStack = new Stack(); /** A mapping between HTML.Tag objects and the actions that handle them **/ HashMap tagToAction; @@ -571,13 +695,68 @@ public class HTMLDocument extends DefaultStyledDocument /** A temporary variable that helps with the printing out of debug information **/ boolean debug = false; - - void print (String line) - { - if (debug) - System.out.println (line); - } - + + /** + * This is true when we are inside a pre tag. + */ + boolean inPreTag = false; + + /** + * This is true when we are inside a style tag. This will add text + * content inside this style tag beeing parsed as CSS. + * + * This is package private to avoid accessor methods. + */ + boolean inStyleTag = false; + + /** + * This is true when we are inside a <textarea> tag. Any text + * content will then be added to the text area. + * + * This is package private to avoid accessor methods. + */ + boolean inTextArea = false; + + /** + * This contains all stylesheets that are somehow read, either + * via embedded style tags, or via linked stylesheets. The + * elements will be String objects containing a stylesheet each. + */ + ArrayList styles; + + /** + * The document model for a textarea. + * + * This is package private to avoid accessor methods. + */ + ResetablePlainDocument textAreaDocument; + + /** + * The current model of a select tag. Can be a ComboBoxModel or a + * ListModel depending on the type of the select box. + */ + Object selectModel; + + /** + * The current option beeing read. + */ + Option option; + + /** + * The current number of options in the current select model. + */ + int numOptions; + + /** + * The current button groups mappings. + */ + HashMap buttonGroups; + + /** + * The token threshold. This gets increased while loading. + */ + private int threshold; + public class TagAction { /** @@ -633,13 +812,12 @@ public class HTMLDocument extends DefaultStyledDocument // Put the old attribute set on the stack. pushCharacterStyle(); - // Translate tag.. return if succesful. - if(CharacterAttributeTranslator.translateTag(charAttr, t, a)) - return; + // Initialize with link pseudo class. + if (t == HTML.Tag.A) + a.addAttribute(HTML.Attribute.PSEUDO_CLASS, "link"); // Just add the attributes in a. - if (a != null) - charAttr.addAttribute(t, a.copyAttributes()); + charAttr.addAttribute(t, a.copyAttributes()); } /** @@ -651,7 +829,11 @@ public class HTMLDocument extends DefaultStyledDocument popCharacterStyle(); } } - + + /** + * Processes elements that make up forms: <input>, <textarea>, + * <select> and <option>. + */ public class FormAction extends SpecialAction { /** @@ -659,10 +841,73 @@ public class HTMLDocument extends DefaultStyledDocument * of tags associated with this Action. */ public void start(HTML.Tag t, MutableAttributeSet a) - throws NotImplementedException { - // FIXME: Implement. - print ("FormAction.start not implemented"); + if (t == HTML.Tag.INPUT) + { + String type = (String) a.getAttribute(HTML.Attribute.TYPE); + if (type == null) + { + type = "text"; // Default to 'text' when nothing was specified. + a.addAttribute(HTML.Attribute.TYPE, type); + } + setModel(type, a); + } + else if (t == HTML.Tag.TEXTAREA) + { + inTextArea = true; + textAreaDocument = new ResetablePlainDocument(); + a.addAttribute(StyleConstants.ModelAttribute, textAreaDocument); + } + else if (t == HTML.Tag.SELECT) + { + int size = HTML.getIntegerAttributeValue(a, HTML.Attribute.SIZE, + 1); + boolean multi = a.getAttribute(HTML.Attribute.MULTIPLE) != null; + if (size > 1 || multi) + { + SelectListModel m = new SelectListModel(); + if (multi) + m.getSelectionModel().setSelectionMode(ListSelectionModel + .MULTIPLE_INTERVAL_SELECTION); + selectModel = m; + } + else + { + selectModel = new SelectComboBoxModel(); + } + a.addAttribute(StyleConstants.ModelAttribute, selectModel); + } + if (t == HTML.Tag.OPTION) + { + option = new Option(a); + if (selectModel instanceof SelectListModel) + { + SelectListModel m = (SelectListModel) selectModel; + m.addElement(option); + if (option.isSelected()) + { + m.getSelectionModel().addSelectionInterval(numOptions, + numOptions); + m.addInitialSelection(numOptions); + } + } + else if (selectModel instanceof SelectComboBoxModel) + { + SelectComboBoxModel m = (SelectComboBoxModel) selectModel; + m.addElement(option); + if (option.isSelected()) + { + m.setSelectedItem(option); + m.setInitialSelection(option); + } + } + numOptions++; + } + else + { + // Build the element. + super.start(t, a); + } } /** @@ -670,13 +915,106 @@ public class HTMLDocument extends DefaultStyledDocument * with this Action. */ public void end(HTML.Tag t) - throws NotImplementedException { - // FIXME: Implement. - print ("FormAction.end not implemented"); + if (t == HTML.Tag.OPTION) + { + option = null; + } + else + { + if (t == HTML.Tag.TEXTAREA) + { + inTextArea = false; + } + else if (t == HTML.Tag.SELECT) + { + selectModel = null; + numOptions = 0; + } + // Finish the element. + super.end(t); + } + } + + private void setModel(String type, MutableAttributeSet attrs) + { + if (type.equals("submit") || type.equals("reset") + || type.equals("image")) + { + // Create button. + attrs.addAttribute(StyleConstants.ModelAttribute, + new DefaultButtonModel()); + } + else if (type.equals("text") || type.equals("password")) + { + String text = (String) attrs.getAttribute(HTML.Attribute.VALUE); + ResetablePlainDocument doc = new ResetablePlainDocument(); + if (text != null) + { + doc.setInitialText(text); + try + { + doc.insertString(0, text, null); + } + catch (BadLocationException ex) + { + // Shouldn't happen. + assert false; + } + } + attrs.addAttribute(StyleConstants.ModelAttribute, doc); + } + else if (type.equals("file")) + { + attrs.addAttribute(StyleConstants.ModelAttribute, + new PlainDocument()); + } + else if (type.equals("checkbox") || type.equals("radio")) + { + ResetableToggleButtonModel model = + new ResetableToggleButtonModel(); + if (attrs.getAttribute(HTML.Attribute.SELECTED) != null) + { + model.setSelected(true); + model.setInitial(true); + } + if (type.equals("radio")) + { + String name = (String) attrs.getAttribute(HTML.Attribute.NAME); + if (name != null) + { + if (buttonGroups == null) + buttonGroups = new HashMap(); + ButtonGroup group = (ButtonGroup) buttonGroups.get(name); + if (group == null) + { + group = new ButtonGroup(); + buttonGroups.put(name, group); + } + model.setGroup(group); + } + } + attrs.addAttribute(StyleConstants.ModelAttribute, model); + } + } + } + + /** + * Called for form tags. + */ + class FormTagAction + extends BlockAction + { + /** + * Clears the button group mapping. + */ + public void end(HTML.Tag t) + { + super.end(t); + buttonGroups = null; } } - + /** * This action indicates that the content between starting and closing HTML * elements (like script - /script) should not be visible. The content is @@ -707,7 +1045,10 @@ public class HTMLDocument extends DefaultStyledDocument blockClose(t); } } - + + /** + * Handles <isindex> tags. + */ public class IsindexAction extends TagAction { /** @@ -715,10 +1056,10 @@ public class HTMLDocument extends DefaultStyledDocument * of tags associated with this Action. */ public void start(HTML.Tag t, MutableAttributeSet a) - throws NotImplementedException { - // FIXME: Implement. - print ("IsindexAction.start not implemented"); + blockOpen(HTML.Tag.IMPLIED, new SimpleAttributeSet()); + addSpecialElement(t, a); + blockClose(HTML.Tag.IMPLIED); } } @@ -730,7 +1071,7 @@ public class HTMLDocument extends DefaultStyledDocument */ public void start(HTML.Tag t, MutableAttributeSet a) { - blockOpen(t, a); + super.start(t, a); } /** @@ -739,10 +1080,13 @@ public class HTMLDocument extends DefaultStyledDocument */ public void end(HTML.Tag t) { - blockClose(t); + super.end(t); } } - + + /** + * This action is performed when a <pre> tag is parsed. + */ public class PreAction extends BlockAction { /** @@ -750,11 +1094,11 @@ public class HTMLDocument extends DefaultStyledDocument * of tags associated with this Action. */ public void start(HTML.Tag t, MutableAttributeSet a) - throws NotImplementedException { - // FIXME: Implement. - print ("PreAction.start not implemented"); - super.start(t, a); + inPreTag = true; + blockOpen(t, a); + a.addAttribute(CSS.Attribute.WHITE_SPACE, "pre"); + blockOpen(HTML.Tag.IMPLIED, a); } /** @@ -762,11 +1106,10 @@ public class HTMLDocument extends DefaultStyledDocument * with this Action. */ public void end(HTML.Tag t) - throws NotImplementedException { - // FIXME: Implement. - print ("PreAction.end not implemented"); - super.end(t); + blockClose(HTML.Tag.IMPLIED); + inPreTag = false; + blockClose(t); } } @@ -798,7 +1141,6 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("AreaAction.start not implemented"); } /** @@ -809,10 +1151,44 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("AreaAction.end not implemented"); } } - + + /** + * Converts HTML tags to CSS attributes. + */ + class ConvertAction + extends TagAction + { + + public void start(HTML.Tag tag, MutableAttributeSet atts) + { + pushCharacterStyle(); + charAttr.addAttribute(tag, atts.copyAttributes()); + StyleSheet styleSheet = getStyleSheet(); + // TODO: Add other tags here. + if (tag == HTML.Tag.FONT) + { + String color = (String) atts.getAttribute(HTML.Attribute.COLOR); + if (color != null) + styleSheet.addCSSAttribute(charAttr, CSS.Attribute.COLOR, color); + String face = (String) atts.getAttribute(HTML.Attribute.FACE); + if (face != null) + styleSheet.addCSSAttribute(charAttr, CSS.Attribute.FONT_FAMILY, + face); + String size = (String) atts.getAttribute(HTML.Attribute.SIZE); + if (size != null) + styleSheet.addCSSAttribute(charAttr, CSS.Attribute.FONT_SIZE, + size); + } + } + + public void end(HTML.Tag tag) + { + popCharacterStyle(); + } + } + class BaseAction extends TagAction { /** @@ -820,22 +1196,9 @@ public class HTMLDocument extends DefaultStyledDocument * of tags associated with this Action. */ public void start(HTML.Tag t, MutableAttributeSet a) - throws NotImplementedException { - // FIXME: Implement. - print ("BaseAction.start not implemented"); + baseTarget = (String) a.getAttribute(HTML.Attribute.TARGET); } - - /** - * Called when an end tag is seen for one of the types of tags associated - * with this Action. - */ - public void end(HTML.Tag t) - throws NotImplementedException - { - // FIXME: Implement. - print ("BaseAction.end not implemented"); - } } class HeadAction extends BlockAction @@ -848,7 +1211,6 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("HeadAction.start not implemented: "+t); super.start(t, a); } @@ -857,37 +1219,87 @@ public class HTMLDocument extends DefaultStyledDocument * with this Action. */ public void end(HTML.Tag t) - throws NotImplementedException { - // FIXME: Implement. - print ("HeadAction.end not implemented: "+t); + // We read in all the stylesheets that are embedded or referenced + // inside the header. + if (styles != null) + { + int numStyles = styles.size(); + for (int i = 0; i < numStyles; i++) + { + String style = (String) styles.get(i); + getStyleSheet().addRule(style); + } + } super.end(t); - } + } } - class LinkAction extends TagAction + class LinkAction extends HiddenAction { /** * This method is called when a start tag is seen for one of the types * of tags associated with this Action. */ public void start(HTML.Tag t, MutableAttributeSet a) - throws NotImplementedException { - // FIXME: Implement. - print ("LinkAction.start not implemented"); + super.start(t, a); + String type = (String) a.getAttribute(HTML.Attribute.TYPE); + if (type == null) + type = "text/css"; + if (type.equals("text/css")) + { + String rel = (String) a.getAttribute(HTML.Attribute.REL); + String media = (String) a.getAttribute(HTML.Attribute.MEDIA); + String title = (String) a.getAttribute(HTML.Attribute.TITLE); + if (media == null) + media = "all"; + else + media = media.toLowerCase(); + if (rel != null) + { + rel = rel.toLowerCase(); + if ((media.indexOf("all") != -1 + || media.indexOf("screen") != -1) + && (rel.equals("stylesheet"))) + { + String href = (String) a.getAttribute(HTML.Attribute.HREF); + URL url = null; + try + { + url = new URL(baseURL, href); + } + catch (MalformedURLException ex) + { + try + { + url = new URL(href); + } + catch (MalformedURLException ex2) + { + url = null; + } + } + if (url != null) + { + try + { + getStyleSheet().importStyleSheet(url); + } + catch (Exception ex) + { + // Don't let exceptions and runtime exceptions + // in CSS parsing disprupt the HTML parsing + // process. But inform the user/developer + // on the console about it. + ex.printStackTrace(); + } + } + } + } + } } - /** - * Called when an end tag is seen for one of the types of tags associated - * with this Action. - */ - public void end(HTML.Tag t) - throws NotImplementedException - { - // FIXME: Implement. - print ("LinkAction.end not implemented"); - } } class MapAction extends TagAction @@ -900,7 +1312,6 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("MapAction.start not implemented"); } /** @@ -911,7 +1322,6 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("MapAction.end not implemented"); } } @@ -925,7 +1335,6 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("MetaAction.start not implemented"); } /** @@ -936,10 +1345,9 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("MetaAction.end not implemented"); } } - + class StyleAction extends TagAction { /** @@ -947,10 +1355,8 @@ public class HTMLDocument extends DefaultStyledDocument * of tags associated with this Action. */ public void start(HTML.Tag t, MutableAttributeSet a) - throws NotImplementedException { - // FIXME: Implement. - print ("StyleAction.start not implemented"); + inStyleTag = true; } /** @@ -958,10 +1364,8 @@ public class HTMLDocument extends DefaultStyledDocument * with this Action. */ public void end(HTML.Tag t) - throws NotImplementedException { - // FIXME: Implement. - print ("StyleAction.end not implemented"); + inStyleTag = false; } } @@ -975,7 +1379,6 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("TitleAction.start not implemented"); } /** @@ -986,7 +1389,6 @@ public class HTMLDocument extends DefaultStyledDocument throws NotImplementedException { // FIXME: Implement. - print ("TitleAction.end not implemented"); } } @@ -998,13 +1400,11 @@ public class HTMLDocument extends DefaultStyledDocument public HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag) { - print ("HTMLReader created with pop: "+popDepth - + " push: "+pushDepth + " offset: "+offset - + " tag: "+insertTag); this.insertTag = insertTag; this.offset = offset; this.popDepth = popDepth; this.pushDepth = pushDepth; + threshold = getTokenThreshold(); initTags(); } @@ -1028,7 +1428,7 @@ public class HTMLDocument extends DefaultStyledDocument StyleAction styleAction = new StyleAction(); TitleAction titleAction = new TitleAction(); - + ConvertAction convertAction = new ConvertAction(); tagToAction.put(HTML.Tag.A, characterAction); tagToAction.put(HTML.Tag.ADDRESS, characterAction); tagToAction.put(HTML.Tag.APPLET, hiddenAction); @@ -1051,8 +1451,8 @@ public class HTMLDocument extends DefaultStyledDocument tagToAction.put(HTML.Tag.DL, blockAction); tagToAction.put(HTML.Tag.DT, paragraphAction); tagToAction.put(HTML.Tag.EM, characterAction); - tagToAction.put(HTML.Tag.FONT, characterAction); - tagToAction.put(HTML.Tag.FORM, blockAction); + tagToAction.put(HTML.Tag.FONT, convertAction); + tagToAction.put(HTML.Tag.FORM, new FormTagAction()); tagToAction.put(HTML.Tag.FRAME, specialAction); tagToAction.put(HTML.Tag.FRAMESET, blockAction); tagToAction.put(HTML.Tag.H1, paragraphAction); @@ -1142,18 +1542,28 @@ public class HTMLDocument extends DefaultStyledDocument */ public void flush() throws BadLocationException { - DefaultStyledDocument.ElementSpec[] elements; - elements = new DefaultStyledDocument.ElementSpec[parseBuffer.size()]; - parseBuffer.copyInto(elements); - parseBuffer.removeAllElements(); - if (offset == 0) - create(elements); - else - insert(offset, elements); + flushImpl(); + } - offset += HTMLDocument.this.getLength() - offset; + /** + * Flushes the buffer and handle partial inserts. + * + */ + private void flushImpl() + throws BadLocationException + { + int oldLen = getLength(); + int size = parseBuffer.size(); + ElementSpec[] elems = new ElementSpec[size]; + parseBuffer.copyInto(elems); + if (oldLen == 0) + create(elems); + else + insert(offset, elems); + parseBuffer.removeAllElements(); + offset += getLength() - oldLen; } - + /** * This method is called by the parser to indicate a block of * text was encountered. Should insert the text appropriately. @@ -1163,8 +1573,24 @@ public class HTMLDocument extends DefaultStyledDocument */ public void handleText(char[] data, int pos) { - if (data != null && data.length > 0) - addContent(data, 0, data.length); + if (shouldInsert() && data != null && data.length > 0) + { + if (inTextArea) + textAreaContent(data); + else if (inPreTag) + preContent(data); + else if (option != null) + option.setLabel(new String(data)); + else if (inStyleTag) + { + if (styles == null) + styles = new ArrayList(); + styles.add(new String(data)); + } + else + addContent(data, 0, data.length); + + } } /** @@ -1214,8 +1640,7 @@ public class HTMLDocument extends DefaultStyledDocument TagAction action = (TagAction) tagToAction.get(HTML.Tag.COMMENT); if (action != null) { - action.start(HTML.Tag.COMMENT, - htmlAttributeSet.EMPTY_HTML_ATTRIBUTE_SET); + action.start(HTML.Tag.COMMENT, new SimpleAttributeSet()); action.end(HTML.Tag.COMMENT); } } @@ -1277,7 +1702,6 @@ public class HTMLDocument extends DefaultStyledDocument public void handleEndOfLineString(String eol) { // FIXME: Implement. - print ("HTMLReader.handleEndOfLineString not implemented yet"); } /** @@ -1287,22 +1711,48 @@ public class HTMLDocument extends DefaultStyledDocument * @param data the text to add to the textarea */ protected void textAreaContent(char[] data) - throws NotImplementedException { - // FIXME: Implement. - print ("HTMLReader.textAreaContent not implemented yet"); + try + { + int offset = textAreaDocument.getLength(); + String text = new String(data); + textAreaDocument.setInitialText(text); + textAreaDocument.insertString(offset, text, null); + } + catch (BadLocationException ex) + { + // Must not happen as we insert at a model location that we + // got from the document itself. + assert false; + } } /** * Adds the given text that was encountered in a
       element.
      -     * 
      +     * This adds synthesized lines to hold the text runs.
      +     *
            * @param data the text
            */
           protected void preContent(char[] data)
      -      throws NotImplementedException
           {
      -      // FIXME: Implement
      -      print ("HTMLReader.preContent not implemented yet");
      +      int start = 0;
      +      for (int i = 0; i < data.length; i++)
      +        {
      +          if (data[i] == '\n')
      +            {
      +              addContent(data, start, i - start + 1);
      +              blockClose(HTML.Tag.IMPLIED);
      +              MutableAttributeSet atts = new SimpleAttributeSet();
      +              atts.addAttribute(CSS.Attribute.WHITE_SPACE, "pre");
      +              blockOpen(HTML.Tag.IMPLIED, atts);
      +              start = i + 1;
      +            }
      +        }
      +      if (start < data.length)
      +        {
      +          // Add remaining last line.
      +          addContent(data, start, data.length - start);
      +        }
           }
           
           /**
      @@ -1314,17 +1764,48 @@ public class HTMLDocument extends DefaultStyledDocument
            */
           protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
           {
      -      printBuffer();
      -      DefaultStyledDocument.ElementSpec element;
      +      if (inImpliedParagraph())
      +        blockClose(HTML.Tag.IMPLIED);
       
      +      // Push the new tag on top of the stack.
             parseStack.push(t);
      +
      +      DefaultStyledDocument.ElementSpec element;
      +
             AbstractDocument.AttributeContext ctx = getAttributeContext();
             AttributeSet copy = attr.copyAttributes();
             copy = ctx.addAttribute(copy, StyleConstants.NameAttribute, t);
             element = new DefaultStyledDocument.ElementSpec(copy,
                                      DefaultStyledDocument.ElementSpec.StartTagType);
             parseBuffer.addElement(element);
      -      printBuffer();
      +    }
      +
      +    /**
      +     * Returns true when we are currently inside a paragraph, either
      +     * a real one or an implied, false otherwise.
      +     *
      +     * @return
      +     */
      +    private boolean inParagraph()
      +    {
      +      boolean inParagraph = false;
      +      if (! parseStack.isEmpty())
      +        {
      +          HTML.Tag top = parseStack.peek();
      +          inParagraph = top == HTML.Tag.P || top == HTML.Tag.IMPLIED;
      +        }
      +      return inParagraph;
      +    }
      +
      +    private boolean inImpliedParagraph()
      +    {
      +      boolean inParagraph = false;
      +      if (! parseStack.isEmpty())
      +        {
      +          HTML.Tag top = parseStack.peek();
      +          inParagraph = top == HTML.Tag.IMPLIED;
      +        }
      +      return inParagraph;
           }
       
           /**
      @@ -1335,32 +1816,29 @@ public class HTMLDocument extends DefaultStyledDocument
            */
           protected void blockClose(HTML.Tag t)
           {
      -      printBuffer();
             DefaultStyledDocument.ElementSpec element;
       
      +      if (inImpliedParagraph() && t != HTML.Tag.IMPLIED)
      +        blockClose(HTML.Tag.IMPLIED);
      +
      +      // Pull the token from the stack.
      +      if (! parseStack.isEmpty()) // Just to be sure.
      +        parseStack.pop();
      +
             // If the previous tag is a start tag then we insert a synthetic
             // content tag.
             DefaultStyledDocument.ElementSpec prev;
      -      prev = (DefaultStyledDocument.ElementSpec)
      -	      parseBuffer.get(parseBuffer.size() - 1);
      -      if (prev.getType() == DefaultStyledDocument.ElementSpec.StartTagType)
      +      prev = parseBuffer.size() > 0 ? (DefaultStyledDocument.ElementSpec)
      +                                parseBuffer.get(parseBuffer.size() - 1) : null;
      +      if (prev != null &&
      +          prev.getType() == DefaultStyledDocument.ElementSpec.StartTagType)
               {
      -          AbstractDocument.AttributeContext ctx = getAttributeContext();
      -          AttributeSet attributes = ctx.getEmptySet();
      -          attributes = ctx.addAttribute(attributes, StyleConstants.NameAttribute,
      -                                        HTML.Tag.CONTENT);
      -          element = new DefaultStyledDocument.ElementSpec(attributes,
      -			  DefaultStyledDocument.ElementSpec.ContentType,
      -                                    new char[0], 0, 0);
      -          parseBuffer.add(element);
      +          addContent(new char[]{' '}, 0, 1);
               }
       
             element = new DefaultStyledDocument.ElementSpec(null,
       				DefaultStyledDocument.ElementSpec.EndTagType);
             parseBuffer.addElement(element);
      -      printBuffer();
      -      if (parseStack.size() > 0)
      -        parseStack.pop();
           }
           
           /**
      @@ -1389,6 +1867,11 @@ public class HTMLDocument extends DefaultStyledDocument
           protected void addContent(char[] data, int offs, int length,
                                     boolean generateImpliedPIfNecessary)
           {
      +      if (generateImpliedPIfNecessary && ! inParagraph())
      +        {
      +          blockOpen(HTML.Tag.IMPLIED, new SimpleAttributeSet());
      +        }
      +
             AbstractDocument.AttributeContext ctx = getAttributeContext();
             DefaultStyledDocument.ElementSpec element;
             AttributeSet attributes = null;
      @@ -1405,16 +1888,16 @@ public class HTMLDocument extends DefaultStyledDocument
                                       DefaultStyledDocument.ElementSpec.ContentType,
                                       data, offs, length);
             
      -      printBuffer();
             // Add the element to the buffer
             parseBuffer.addElement(element);
      -      printBuffer();
       
      -      if (parseBuffer.size() > HTMLDocument.this.getTokenThreshold())
      +      if (parseBuffer.size() > threshold)
               {
      +          if (threshold <= MAX_THRESHOLD)
      +            threshold *= GROW_THRESHOLD;
                 try
                   {
      -              flush();
      +              flushImpl();
                   }
                 catch (BadLocationException ble)
                   {
      @@ -1431,29 +1914,23 @@ public class HTMLDocument extends DefaultStyledDocument
            */
           protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)
           {
      +      if (t != HTML.Tag.FRAME && ! inParagraph())
      +        {
      +          blockOpen(HTML.Tag.IMPLIED, new SimpleAttributeSet());
      +        }
      +
             a.addAttribute(StyleConstants.NameAttribute, t);
             
      -      // Migrate from the rather htmlAttributeSet to the faster, lighter and 
      -      // unchangeable alternative implementation.
      -      AttributeSet copy = a.copyAttributes();
      -
             // The two spaces are required because some special elements like HR
             // must be broken. At least two characters are needed to break into the
             // two parts.
             DefaultStyledDocument.ElementSpec spec =
      -        new DefaultStyledDocument.ElementSpec(copy,
      +        new DefaultStyledDocument.ElementSpec(a.copyAttributes(),
       	  DefaultStyledDocument.ElementSpec.ContentType, 
      -          new char[] {' ', ' '}, 0, 2 );
      +          new char[] {' '}, 0, 1 );
             parseBuffer.add(spec);
           }
           
      -    void printBuffer()
      -    {      
      -      print ("\n*********BUFFER**********");
      -      for (int i = 0; i < parseBuffer.size(); i ++)
      -        print ("  "+parseBuffer.get(i));
      -      print ("***************************");
      -    }
         }
         
         /**
      @@ -1533,10 +2010,6 @@ public class HTMLDocument extends DefaultStyledDocument
             }
           };
             
      -    // Set the parent HTML tag.
      -    reader.parseStack.push(parent.getAttributes().getAttribute(
      -      StyleConstants.NameAttribute));
      -
           return reader;
         }   
         
      @@ -1728,4 +2201,98 @@ public void setOuterHTML(Element elem, String htmlText)
           // TODO charset
           getParser().parse(new StringReader(htmlText), reader, true);
         }
      +
      +  /**
      +   * Overridden to tag content with the synthetic HTML.Tag.CONTENT
      +   * tag.
      +   */
      +  protected void insertUpdate(DefaultDocumentEvent evt, AttributeSet att)
      +  {
      +    if (att == null)
      +      {
      +        SimpleAttributeSet sas = new SimpleAttributeSet();
      +        sas.addAttribute(StyleConstants.NameAttribute, HTML.Tag.CONTENT);
      +        att = sas;
      +      }
      +    super.insertUpdate(evt, att);
      +  }
      +
      +  /**
      +   * Returns true when this document is inside a frame,
      +   * false otherwise.
      +   *
      +   * @return true when this document is inside a frame,
      +   *         false otherwise
      +   */
      +  boolean isFrameDocument()
      +  {
      +    return frameDocument;
      +  }
      +
      +  /**
      +   * Set true when this document is inside a frame,
      +   * false otherwise.
      +   *
      +   * @param frameDoc true when this document is inside a frame,
      +   *                 false otherwise
      +   */
      +  void setFrameDocument(boolean frameDoc)
      +  {
      +    frameDocument = frameDoc;
      +  }
      +
      +  /**
      +   * Returns the target that is specified in the base tag, if this is the case.
      +   *
      +   * @return the target that is specified in the base tag, if this is the case
      +   */
      +  String getBaseTarget()
      +  {
      +    return baseTarget;
      +  }
      +
      +  /**
      +   * Updates the A tag's pseudo class value in response to a hyperlink
      +   * action.
      +   *
      +   * @param el the corresponding element
      +   * @param value the new value
      +   */
      +  void updateSpecialClass(Element el, HTML.Attribute cl, String value)
      +  {
      +    try
      +    {
      +      writeLock();
      +      DefaultDocumentEvent ev =
      +        new DefaultDocumentEvent(el.getStartOffset(), 1,
      +                                 DocumentEvent.EventType.CHANGE);
      +      AttributeSet elAtts = el.getAttributes();
      +      AttributeSet anchorAtts = (AttributeSet) elAtts.getAttribute(HTML.Tag.A);
      +      if (anchorAtts != null)
      +        {
      +          AttributeSet copy = elAtts.copyAttributes();
      +          StyleSheet ss = getStyleSheet();
      +          if (value != null)
      +            {
      +              anchorAtts = ss.addAttribute(anchorAtts, cl, value);
      +            }
      +          else
      +            {
      +              anchorAtts = ss.removeAttribute(anchorAtts, cl);
      +            }
      +          MutableAttributeSet matts = (MutableAttributeSet) elAtts;
      +          ev.addEdit(new AttributeUndoableEdit(el, copy, false));
      +          matts.removeAttribute(HTML.Tag.A);
      +          matts.addAttribute(HTML.Tag.A, anchorAtts);
      +          ev.end();
      +          fireChangedUpdate(ev);
      +          fireUndoableEditUpdate(new UndoableEditEvent(this, ev));
      +        }
      +    }
      +  finally
      +    {
      +      writeUnlock();
      +    }
      +  }
      +
       }
      diff --git a/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java b/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java
      index 5d77be8fdd4..0ede1c74ed9 100644
      --- a/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java
      +++ b/libjava/classpath/javax/swing/text/html/HTMLEditorKit.java
      @@ -39,32 +39,38 @@ exception statement from your version. */
       package javax.swing.text.html;
       
       
      -import gnu.classpath.NotImplementedException;
      -
       import java.awt.event.ActionEvent;
       import java.awt.event.MouseAdapter;
       import java.awt.event.MouseEvent;
       import java.awt.event.MouseMotionListener;
       import java.awt.Cursor;
      +import java.awt.Point;
       
       import java.io.IOException;
      +import java.io.InputStream;
      +import java.io.InputStreamReader;
       import java.io.Reader;
       import java.io.Serializable;
       import java.io.StringReader;
       import java.io.Writer;
      +import java.net.MalformedURLException;
      +import java.net.URL;
       
       import javax.accessibility.Accessible;
       import javax.accessibility.AccessibleContext;
       
       import javax.swing.Action;
       import javax.swing.JEditorPane;
      +import javax.swing.SwingUtilities;
      +import javax.swing.event.HyperlinkEvent;
      +import javax.swing.text.AttributeSet;
       import javax.swing.text.BadLocationException;
       import javax.swing.text.Document;
       import javax.swing.text.EditorKit;
       import javax.swing.text.Element;
       import javax.swing.text.MutableAttributeSet;
       import javax.swing.text.StyleConstants;
      -import javax.swing.text.StyleContext;
      +import javax.swing.text.StyledDocument;
       import javax.swing.text.StyledEditorKit;
       import javax.swing.text.TextAction;
       import javax.swing.text.View;
      @@ -74,7 +80,7 @@ import javax.swing.text.html.parser.ParserDelegator;
       /* Move these imports here after javax.swing.text.html to make it compile
          with jikes.  */
       import gnu.javax.swing.text.html.parser.GnuParserDelegator;
      -import gnu.javax.swing.text.html.parser.HTML_401Swing;
      +import gnu.javax.swing.text.html.parser.HTML_401F;
       
       /**
        * @author Lillian Angel (langel at redhat dot com)
      @@ -92,7 +98,12 @@ public class HTMLEditorKit
           extends MouseAdapter
           implements MouseMotionListener, Serializable
           {
      -      
      +
      +      /**
      +       * The element of the last anchor tag.
      +       */
      +      private Element lastAnchorElement;
      +
             /**
              * Constructor
              */
      @@ -110,11 +121,14 @@ public class HTMLEditorKit
              */
             public void mouseClicked(MouseEvent e)
             {
      -        /*
      -         These MouseInputAdapter methods generate mouse appropriate events around
      -         hyperlinks (entering, exiting, and activating).
      -         */
      -        // FIXME: Not implemented.
      +        JEditorPane editor = (JEditorPane) e.getSource();
      +        if (! editor.isEditable() && SwingUtilities.isLeftMouseButton(e))
      +          {
      +            Point loc = e.getPoint();
      +            int pos = editor.viewToModel(loc);
      +            if (pos >= 0)
      +              activateLink(pos, editor, e.getX(), e.getY());
      +          }
             }
             
             /**
      @@ -124,11 +138,7 @@ public class HTMLEditorKit
              */
             public void mouseDragged(MouseEvent e)
             {
      -        /*
      -        These MouseInputAdapter methods generate mouse appropriate events around
      -        hyperlinks (entering, exiting, and activating).
      -        */
      -        // FIXME: Not implemented.     
      +        // Nothing to do here.
             }
             
             /**
      @@ -138,29 +148,159 @@ public class HTMLEditorKit
              */
             public void mouseMoved(MouseEvent e)
             {
      -        /*
      -        These MouseInputAdapter methods generate mouse appropriate events around
      -        hyperlinks (entering, exiting, and activating).
      -        */
      -        // FIXME: Not implemented.
      +        JEditorPane editor = (JEditorPane) e.getSource();
      +        HTMLEditorKit kit = (HTMLEditorKit) editor.getEditorKit();
      +        if (! editor.isEditable())
      +          {
      +            Document doc = editor.getDocument();
      +            if (doc instanceof HTMLDocument)
      +              {
      +                Cursor newCursor = kit.getDefaultCursor();
      +                HTMLDocument htmlDoc = (HTMLDocument) doc;
      +                Point loc = e.getPoint();
      +                int pos = editor.viewToModel(loc);
      +                Element el = htmlDoc.getCharacterElement(pos);
      +                if (pos < el.getStartOffset() || pos >= el.getEndOffset())
      +                  el = null;
      +                if (el != null)
      +                  {
      +                    AttributeSet aAtts = (AttributeSet)
      +                                   el.getAttributes().getAttribute(HTML.Tag.A);
      +                    if (aAtts != null)
      +                      {
      +                        if (el != lastAnchorElement)
      +                          {
      +                            if (lastAnchorElement != null)
      +                              htmlDoc.updateSpecialClass(lastAnchorElement,
      +                                                  HTML.Attribute.DYNAMIC_CLASS,
      +                                                  null);
      +                            lastAnchorElement = el;
      +                            htmlDoc.updateSpecialClass(el,
      +                                                  HTML.Attribute.DYNAMIC_CLASS,
      +                                                  "hover");
      +                          }
      +                        newCursor = kit.getLinkCursor();
      +                      }
      +                    else
      +                      {
      +                        if (lastAnchorElement != null)
      +                          htmlDoc.updateSpecialClass(lastAnchorElement,
      +                                              HTML.Attribute.DYNAMIC_CLASS,
      +                                              null);
      +                        lastAnchorElement = null;
      +                      }
      +                  }
      +                else
      +                  {
      +                    if (lastAnchorElement != null)
      +                      htmlDoc.updateSpecialClass(lastAnchorElement,
      +                                          HTML.Attribute.DYNAMIC_CLASS,
      +                                          null);
      +                    lastAnchorElement = null;
      +                  }
      +                if (editor.getCursor() != newCursor)
      +                  {
      +                    editor.setCursor(newCursor);
      +                  }
      +              }
      +          }
             }
      -      
      +
             /**
              * If the given position represents a link, then linkActivated is called
      -       * on the JEditorPane. Implemented to forward to the method with the same
      -       * name, but pos == editor == -1.
      -       * 
      -       * @param pos - the position
      -       * @param editor - the editor pane
      +       * on the JEditorPane.
      +       *
      +       * @param pos the position
      +       * @param editor the editor pane
      +       */
      +      protected void activateLink(int pos, JEditorPane editor)
      +      {
      +        activateLink(pos, editor);
      +      }
      +
      +      private void activateLink(int pos, JEditorPane editor, int x, int y)
      +      {
      +        // TODO: This is here for future extension for mapped links support.
      +        // For the time beeing we implement simple hyperlinks.
      +        Document doc = editor.getDocument();
      +        if (doc instanceof HTMLDocument)
      +          {
      +            HTMLDocument htmlDoc = (HTMLDocument) doc;
      +            Element el = htmlDoc.getCharacterElement(pos);
      +            AttributeSet atts = el.getAttributes();
      +            AttributeSet anchorAtts =
      +              (AttributeSet) atts.getAttribute(HTML.Tag.A);
      +            String href = null;
      +            if (anchorAtts != null)
      +              {
      +                href = (String) anchorAtts.getAttribute(HTML.Attribute.HREF);
      +                htmlDoc.updateSpecialClass(el, HTML.Attribute.PSEUDO_CLASS,
      +                                           "visited");
      +              }
      +            else
      +              {
      +                // TODO: Implement link maps here.
      +              }
      +            HyperlinkEvent event = null;
      +            if (href != null)
      +              event = createHyperlinkEvent(editor, htmlDoc, href,
      +                                           anchorAtts, el);
      +            if (event != null)
      +              editor.fireHyperlinkUpdate(event);
      +          }
      +        
      +      }
      +
      +      /**
      +       * Creates a HyperlinkEvent for the specified href and anchor if
      +       * possible. If for some reason this won't work, return null.
      +       *
      +       * @param editor the editor
      +       * @param doc the document
      +       * @param href the href link
      +       * @param anchor the anchor
      +       * @param el the element
      +       *
      +       * @return the hyperlink event, or null if we couldn't
      +       *         create one
              */
      -      protected void activateLink(int pos,
      -                                  JEditorPane editor)
      +      private HyperlinkEvent createHyperlinkEvent(JEditorPane editor,
      +                                                  HTMLDocument doc,
      +                                                  String href,
      +                                                  AttributeSet anchor,
      +                                                  Element el)
             {
      -        /*
      -          This method creates and fires a HyperlinkEvent if the document is an
      -          instance of HTMLDocument and the href tag of the link is not null.
      -         */
      -        // FIXME: Not implemented.
      +        URL url;
      +        try
      +          {
      +            URL base = doc.getBase();
      +            url = new URL(base, href);
      +            
      +          }
      +        catch (MalformedURLException ex)
      +          {
      +            url = null;
      +          }
      +        HyperlinkEvent ev;
      +        if (doc.isFrameDocument())
      +          {
      +            String target = null;
      +            if (anchor != null)
      +              target = (String) anchor.getAttribute(HTML.Attribute.TARGET);
      +            if (target == null || target.equals(""))
      +              target = doc.getBaseTarget();
      +            if (target == null || target.equals(""))
      +              target = "_self";
      +            ev = new HTMLFrameHyperlinkEvent(editor,
      +                                            HyperlinkEvent.EventType.ACTIVATED,
      +                                            url, href, el, target);
      +          }
      +        else
      +          {
      +            ev = new HyperlinkEvent(editor, HyperlinkEvent.EventType.ACTIVATED,
      +                                    url, href, el);
      +          }
      +        return ev;
             }
           }
         
      @@ -201,7 +341,7 @@ public class HTMLEditorKit
              * Tag to check for in the document.
              */
             protected HTML.Tag parentTag;
      -      
      +
             /**
              * Initializes all fields.
              * 
      @@ -305,20 +445,9 @@ public class HTMLEditorKit
                                             Element insertElement,
                                             String html, HTML.Tag parentTag,
                                             HTML.Tag addTag)
      -        throws NotImplementedException
             {
      -        /*
      -        As its name implies, this protected method is used when HTML is inserted at a
      -        boundary. (A boundary in this case is an offset in doc that exactly matches the
      -        beginning offset of the parentTag.) It performs the extra work required to keep
      -        the tag stack in shape and then calls insertHTML(). The editor and doc argu-
      -        ments are the editor pane and document where the HTML should go. The offset
      -        argument represents the cursor location or selection start in doc. The insert-
      -        Element and parentTag arguments are used to calculate the proper number of
      -        tag pops and pushes before inserting the HTML (via html and addTag, which are
      -        passed directly to insertHTML()).
      -        */
      -        // FIXME: not implemented
      +        insertAtBoundry(editor, doc, offset, insertElement,
      +                        html, parentTag, addTag);
             }
             
             /**
      @@ -344,8 +473,50 @@ public class HTMLEditorKit
                                            String html, HTML.Tag parentTag,
                                            HTML.Tag addTag)
             {
      -        insertAtBoundary(editor, doc, offset, insertElement,
      -                         html, parentTag, addTag);
      +        Element parent = insertElement;
      +        Element el;
      +        // Find common parent element.
      +        if (offset > 0 || insertElement == null)
      +          {
      +            el = doc.getDefaultRootElement();
      +            while (el != null && el.getStartOffset() != offset
      +                   && ! el.isLeaf())
      +              el = el.getElement(el.getElementIndex(offset));
      +            parent = el != null ? el.getParentElement() : null;
      +          }
      +        if (parent != null)
      +          {
      +            int pops = 0;
      +            int pushes = 0;
      +            if (offset == 0 && insertElement != null)
      +              {
      +                el = parent;
      +                while (el != null && ! el.isLeaf())
      +                  {
      +                    el = el.getElement(el.getElementIndex(offset));
      +                    pops++;
      +                  }
      +              }
      +            else
      +              {
      +                el = parent;
      +                offset--;
      +                while (el != null && ! el.isLeaf())
      +                  {
      +                    el = el.getElement(el.getElementIndex(offset));
      +                    pops++;
      +                  }
      +                el = parent;
      +                offset++;
      +                while (el != null && el != insertElement)
      +                  {
      +                    el = el.getElement(el.getElementIndex(offset));
      +                    pushes++;
      +                  }
      +              }
      +            pops = Math.max(0, pops - 1);
      +            insertHTML(editor, doc, offset, html, pops, pushes, addTag);
      +          }
             }
             
             /**
      @@ -355,16 +526,97 @@ public class HTMLEditorKit
              */
             public void actionPerformed(ActionEvent ae)
             {
      -        Object source = ae.getSource();
      -        if (source instanceof JEditorPane)
      +        JEditorPane source = getEditor(ae);
      +        if (source != null)
      +          {
      +            HTMLDocument d = getHTMLDocument(source);
      +            int offset = source.getSelectionStart();
      +            int length = d.getLength();
      +            boolean inserted = true;
      +            if (! tryInsert(source, d, offset, parentTag, addTag))
      +              {
      +                inserted = tryInsert(source, d, offset, alternateParentTag,
      +                                     alternateAddTag);
      +              }
      +            if (inserted)
      +              adjustSelection(source, d, offset, length);
      +          }
      +      }
      +
      +      /**
      +       * Tries to insert the html chunk to the specified addTag.
      +       *
      +       * @param pane the editor
      +       * @param doc the document
      +       * @param offset the offset at which to insert
      +       * @param tag the tag at which to insert
      +       * @param addTag the add tag
      +       *
      +       * @return true when the html has been inserted successfully,
      +       *         false otherwise
      +       */
      +      private boolean tryInsert(JEditorPane pane, HTMLDocument doc, int offset,
      +                                HTML.Tag tag, HTML.Tag addTag)
      +      {
      +        boolean inserted = false;
      +        Element el = findElementMatchingTag(doc, offset, tag);
      +        if (el != null && el.getStartOffset() == offset)
      +          {
      +            insertAtBoundary(pane, doc, offset, el, html, tag, addTag);
      +            inserted = true;
      +          }
      +        else if (offset > 0)
      +          {
      +            int depth = elementCountToTag(doc, offset - 1, tag);
      +            if (depth != -1)
      +              {
      +                insertHTML(pane, doc, offset, html, depth, 0, addTag);
      +                inserted = true;
      +              }
      +          }
      +        return inserted;
      +      }
      +
      +      /**
      +       * Adjusts the selection after an insertion has been performed.
      +       *
      +       * @param pane the editor pane
      +       * @param doc the document
      +       * @param offset the insert offset
      +       * @param oldLen the old document length
      +       */
      +      private void adjustSelection(JEditorPane pane, HTMLDocument doc,
      +                                   int offset, int oldLen)
      +      {
      +        int newLen = doc.getLength();
      +        if (newLen != oldLen && offset < newLen)
                 {
      -            JEditorPane pane = ((JEditorPane) source);
      -            Document d = pane.getDocument();
      -            if (d instanceof HTMLDocument)
      -              insertHTML(pane, (HTMLDocument) d, 0, html, 0, 0, addTag);
      -            // FIXME: is this correct parameters?
      +            if (offset > 0)
      +              {
      +                String text;
      +                try
      +                  {
      +                    text = doc.getText(offset - 1, 1);
      +                  }
      +                catch (BadLocationException ex)
      +                  {
      +                    text = null;
      +                  }
      +                if (text != null && text.length() > 0
      +                    && text.charAt(0) == '\n')
      +                  {
      +                    pane.select(offset, offset);
      +                  }
      +                else
      +                  {
      +                    pane.select(offset + 1, offset + 1);
      +                  }
      +              }
      +            else
      +              {
      +                pane.select(1, 1);
      +              }
                 }
      -        // FIXME: else not implemented
             }
         }
         
      @@ -540,53 +792,56 @@ public class HTMLEditorKit
               {
                 HTML.Tag tag = (HTML.Tag) attr;
       
      -          if (tag.equals(HTML.Tag.IMPLIED) || tag.equals(HTML.Tag.P)
      -              || tag.equals(HTML.Tag.H1) || tag.equals(HTML.Tag.H2)
      -              || tag.equals(HTML.Tag.H3) || tag.equals(HTML.Tag.H4)
      -              || tag.equals(HTML.Tag.H5) || tag.equals(HTML.Tag.H6)
      -              || tag.equals(HTML.Tag.DT))
      +          if (tag == HTML.Tag.IMPLIED || tag == HTML.Tag.P
      +              || tag == HTML.Tag.H1 || tag == HTML.Tag.H2
      +              || tag == HTML.Tag.H3 || tag == HTML.Tag.H4
      +              || tag == HTML.Tag.H5 || tag == HTML.Tag.H6
      +              || tag == HTML.Tag.DT)
                   view = new ParagraphView(element);
      -          else if (tag.equals(HTML.Tag.LI) || tag.equals(HTML.Tag.DL)
      -                   || tag.equals(HTML.Tag.DD) || tag.equals(HTML.Tag.BODY)
      -                   || tag.equals(HTML.Tag.HTML) || tag.equals(HTML.Tag.CENTER)
      -                   || tag.equals(HTML.Tag.DIV)
      -                   || tag.equals(HTML.Tag.BLOCKQUOTE)
      -                   || tag.equals(HTML.Tag.PRE))
      +          else if (tag == HTML.Tag.LI || tag == HTML.Tag.DL
      +                   || tag == HTML.Tag.DD || tag == HTML.Tag.BODY
      +                   || tag == HTML.Tag.HTML || tag == HTML.Tag.CENTER
      +                   || tag == HTML.Tag.DIV
      +                   || tag == HTML.Tag.BLOCKQUOTE
      +                   || tag == HTML.Tag.PRE
      +                   || tag == HTML.Tag.FORM
      +                   // Misplaced TD and TH tags get mapped as vertical block.
      +                   // Note that correctly placed tags get mapped in TableView.
      +                   || tag == HTML.Tag.TD || tag == HTML.Tag.TH)
                   view = new BlockView(element, View.Y_AXIS);
      -          else if (tag.equals(HTML.Tag.IMG))
      +          else if (tag == HTML.Tag.TR)
      +            // Misplaced TR tags get mapped as horizontal blocks.
      +            // Note that correctly placed tags get mapped in TableView.
      +            view = new BlockView(element, View.X_AXIS);
      +          else if (tag == HTML.Tag.IMG)
                   view = new ImageView(element);
                 
      -          // FIXME: Uncomment when the views have been implemented
      -          else if (tag.equals(HTML.Tag.CONTENT))
      +          else if (tag == HTML.Tag.CONTENT)
                   view = new InlineView(element);
                 else if (tag == HTML.Tag.HEAD)
                   view = new NullView(element);
      -          else if (tag.equals(HTML.Tag.TABLE))
      +          else if (tag == HTML.Tag.TABLE)
                   view = new javax.swing.text.html.TableView(element);
      -          else if (tag.equals(HTML.Tag.TD))
      -            view = new ParagraphView(element);
      -          else if (tag.equals(HTML.Tag.HR))
      +          else if (tag == HTML.Tag.HR)
                   view = new HRuleView(element);
      -          else if (tag.equals(HTML.Tag.BR))
      +          else if (tag == HTML.Tag.BR)
                   view = new BRView(element);
      +          else if (tag == HTML.Tag.INPUT || tag == HTML.Tag.SELECT
      +                   || tag == HTML.Tag.TEXTAREA)
      +            view = new FormView(element);
       
      -          /*
      -          else if (tag.equals(HTML.Tag.MENU) || tag.equals(HTML.Tag.DIR)
      -                   || tag.equals(HTML.Tag.UL) || tag.equals(HTML.Tag.OL))
      +          else if (tag == HTML.Tag.MENU || tag == HTML.Tag.DIR
      +                   || tag == HTML.Tag.UL || tag == HTML.Tag.OL)
                   view = new ListView(element);
      -          else if (tag.equals(HTML.Tag.INPUT) || tag.equals(HTML.Tag.SELECT)
      -                   || tag.equals(HTML.Tag.TEXTAREA))
      -            view = new FormView(element);
      -          else if (tag.equals(HTML.Tag.OBJECT))
      -            view = new ObjectView(element);
      -          else if (tag.equals(HTML.Tag.FRAMESET))
      +          else if (tag == HTML.Tag.FRAMESET)
                   view = new FrameSetView(element);
      -          else if (tag.equals(HTML.Tag.FRAME))
      -            view = new FrameView(element); */
      +          else if (tag == HTML.Tag.FRAME)
      +            view = new FrameView(element);
      +          else if (tag == HTML.Tag.OBJECT)
      +            view = new ObjectView(element);
               }
             if (view == null)
               {
      -          System.err.println("missing tag->view mapping for: " + element);
                 view = new NullView(element);
               }
             return view;
      @@ -797,14 +1052,42 @@ public class HTMLEditorKit
         /**
          * Actions for HTML 
          */
      -  private static final Action[] defaultActions = {
      -    // FIXME: Add default actions for html
      +  private static final Action[] defaultActions =
      +  {
      +    new InsertHTMLTextAction("InsertTable",
      +                             "
      ", + HTML.Tag.BODY, HTML.Tag.TABLE), + new InsertHTMLTextAction("InsertTableRow", + "
      ", + HTML.Tag.TABLE, HTML.Tag.TR, + HTML.Tag.BODY, HTML.Tag.TABLE), + new InsertHTMLTextAction("InsertTableCell", + "
      ", + HTML.Tag.TR, HTML.Tag.TD, + HTML.Tag.BODY, HTML.Tag.TABLE), + new InsertHTMLTextAction("InsertUnorderedList", + "
      ", + HTML.Tag.BODY, HTML.Tag.UL), + new InsertHTMLTextAction("InsertUnorderedListItem", + "
      ", + HTML.Tag.UL, HTML.Tag.LI, + HTML.Tag.BODY, HTML.Tag.UL), + new InsertHTMLTextAction("InsertOrderedList", + "
      ", + HTML.Tag.BODY, HTML.Tag.OL), + new InsertHTMLTextAction("InsertOrderedListItem", + "
      ", + HTML.Tag.OL, HTML.Tag.LI, + HTML.Tag.BODY, HTML.Tag.OL), + new InsertHTMLTextAction("InsertPre", + "
      ", HTML.Tag.BODY, HTML.Tag.PRE)
      +    // TODO: The reference impl has an InsertHRAction too.
         };
         
         /**
          * The current style sheet.
          */
      -  StyleSheet styleSheet;
      +  private StyleSheet styleSheet;
         
         /**
          * The ViewFactory for HTMLFactory.
      @@ -829,12 +1112,7 @@ public class HTMLEditorKit
         /**
          * The mouse listener used for links.
          */
      -  LinkController mouseListener;
      -  
      -  /**
      -   * Style context for this editor.
      -   */
      -  StyleContext styleContext;
      +  private LinkController linkController;
         
         /** The content type */
         String contentType = "text/html";
      @@ -844,17 +1122,22 @@ public class HTMLEditorKit
         
         /** The editor pane used. */
         JEditorPane editorPane;
      -    
      +
      +  /**
      +   * Whether or not the editor kit handles form submissions.
      +   *
      +   * @see #isAutoFormSubmission()
      +   * @see #setAutoFormSubmission(boolean)
      +   */
      +  private boolean autoFormSubmission;
      +
         /**
          * Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.
          */
         public HTMLEditorKit()
         {
      -    super();    
      -    styleContext = new StyleContext();
      -    styleSheet = new StyleSheet();
      -    styleSheet.importStyleSheet(getClass().getResource(DEFAULT_CSS));
      -    // FIXME: Set inputAttributes with default.css    
      +    linkController = new LinkController();
      +    autoFormSubmission = true;
         }
         
         /**
      @@ -877,8 +1160,15 @@ public class HTMLEditorKit
          */
         public Document createDefaultDocument()
         {
      -    HTMLDocument document = new HTMLDocument(getStyleSheet());
      +    // Protect the shared stylesheet.
      +    StyleSheet styleSheet = getStyleSheet();
      +    StyleSheet ss = new StyleSheet();
      +    ss.addStyleSheet(styleSheet);
      +
      +    HTMLDocument document = new HTMLDocument(ss);
           document.setParser(getParser());
      +    document.setAsynchronousLoadPriority(4);
      +    document.setTokenThreshold(100);
           return document;
         }
       
      @@ -892,7 +1182,7 @@ public class HTMLEditorKit
         {
           if (parser == null)
             {
      -        parser = new GnuParserDelegator(HTML_401Swing.getInstance());
      +        parser = new GnuParserDelegator(HTML_401F.getInstance());
             }
           return parser;
         }
      @@ -923,8 +1213,7 @@ public class HTMLEditorKit
           if (parser == null)
             throw new IOException("Parser is null.");
       
      -    ParserCallback pc = ((HTMLDocument) doc).getReader
      -                          (offset, popDepth, pushDepth, insertTag);
      +    ParserCallback pc = doc.getReader(offset, popDepth, pushDepth, insertTag);
       
           // FIXME: What should ignoreCharSet be set to?
           
      @@ -991,8 +1280,15 @@ public class HTMLEditorKit
         {
           if (doc instanceof HTMLDocument)
             {
      -        // FIXME: Not implemented. Use HTMLWriter.
      -        out.write(doc.getText(pos, len));
      +        HTMLWriter writer = new HTMLWriter(out, (HTMLDocument) doc, pos, len);
      +        writer.write();
      +      }
      +    else if (doc instanceof StyledDocument)
      +      {
      +        MinimalHTMLWriter writer = new MinimalHTMLWriter(out,
      +                                                         (StyledDocument) doc,
      +                                                         pos, len);
      +        writer.write();
             }
           else
             super.write(out, doc, pos, len);
      @@ -1017,7 +1313,9 @@ public class HTMLEditorKit
         public Object clone()
         {
           // FIXME: Need to clone all fields
      -    return (HTMLEditorKit) super.clone();
      +    HTMLEditorKit copy = (HTMLEditorKit) super.clone();
      +    copy.linkController = new LinkController();
      +    return copy;
         }
         
         /**
      @@ -1044,10 +1342,9 @@ public class HTMLEditorKit
         public void install(JEditorPane c)
         {
           super.install(c);
      -    mouseListener = new LinkController();
      -    c.addMouseListener(mouseListener);
      +    c.addMouseListener(linkController);
      +    c.addMouseMotionListener(linkController);
           editorPane = c;
      -    // FIXME: need to set up hyperlinklistener object
         }
         
         /**
      @@ -1059,8 +1356,8 @@ public class HTMLEditorKit
         public void deinstall(JEditorPane c)
         {
           super.deinstall(c);
      -    c.removeMouseListener(mouseListener);
      -    mouseListener = null;
      +    c.removeMouseListener(linkController);
      +    c.removeMouseMotionListener(linkController);
           editorPane = null;
         }
         
      @@ -1154,8 +1451,19 @@ public class HTMLEditorKit
         {
           if (styleSheet == null)
             {
      -        styleSheet = new StyleSheet();
      -        styleSheet.importStyleSheet(getClass().getResource(DEFAULT_CSS));
      +        try
      +          {
      +            styleSheet = new StyleSheet();
      +            Class c = HTMLEditorKit.class;
      +            InputStream in = c.getResourceAsStream(DEFAULT_CSS);
      +            InputStreamReader r = new InputStreamReader(in);
      +            styleSheet.loadRules(r,  null);
      +            r.close();
      +          }
      +        catch (IOException ex)
      +          {
      +            // No style available.
      +          }
             }
           return styleSheet;
         }
      @@ -1173,4 +1481,40 @@ public class HTMLEditorKit
         {
           styleSheet = s;
         }
      +
      +  /**
      +   * Returns true when forms should be automatically submitted
      +   * by the editor kit. Set this to false when you want to
      +   * intercept form submission. In this case you'd want to listen for
      +   * hyperlink events on the document and handle FormSubmitEvents specially.
      +   *
      +   * The default is true.
      +   *
      +   * @return true when forms should be automatically submitted
      +   *         by the editor kit, false otherwise
      +   *
      +   * @since 1.5
      +   *
      +   * @see #setAutoFormSubmission(boolean)
      +   * @see FormSubmitEvent
      +   */
      +  public boolean isAutoFormSubmission()
      +  {
      +    return autoFormSubmission;
      +  }
      +
      +  /**
      +   * Sets whether or not the editor kit should automatically submit forms.
      +   *  
      +   * @param auto true when the editor kit should handle form
      +   *        submission, false otherwise
      +   *
      +   * @since 1.5
      +   *
      +   * @see #isAutoFormSubmission()
      +   */
      +  public void setAutoFormSubmission(boolean auto)
      +  {
      +    autoFormSubmission = auto;
      +  }
       }
      diff --git a/libjava/classpath/javax/swing/text/html/HTMLWriter.java b/libjava/classpath/javax/swing/text/html/HTMLWriter.java
      new file mode 100644
      index 00000000000..44119c73286
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/HTMLWriter.java
      @@ -0,0 +1,1084 @@
      +/* HTMLWriter.java -- 
      +   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 javax.swing.text.html;
      +
      +import java.io.IOException;
      +import java.io.Writer;
      +
      +import java.util.Enumeration;
      +import java.util.HashSet;
      +
      +import javax.swing.ComboBoxModel;
      +
      +import javax.swing.text.AbstractWriter;
      +import javax.swing.text.AttributeSet;
      +import javax.swing.text.BadLocationException;
      +import javax.swing.text.Document;
      +import javax.swing.text.Element;
      +import javax.swing.text.StyleConstants;
      +
      +import javax.swing.text.html.HTML;
      +import javax.swing.text.html.HTMLDocument;
      +import javax.swing.text.html.Option;
      +
      +/**
      + * HTMLWriter,
      + * A Writer for HTMLDocuments.
      + *
      + * @author David Fu (fchoong at netbeans.jp)
      + */
      +
      +public class HTMLWriter
      +  extends AbstractWriter
      +{
      +  /**
      +   * We keep a reference of the writer passed by the construct.
      +   */
      +  private Writer outWriter = null;
      +
      +  /**
      +   * We keep a reference of the HTMLDocument passed by the construct.
      +   */
      +  private HTMLDocument htmlDoc = null; 
      +
      +  /**
      +   * Used to keep track of which embeded has been written out.
      +   */
      +  private HashSet openEmbededTagHashSet = null;
      +
      +  private String new_line_str = "" + NEWLINE;
      +    
      +  private char[] html_entity_char_arr = {'<',    '>',    '&',     '"'};
      +
      +  private String[] html_entity_escape_str_arr = {"<", ">", "&", 
      +                                                 """};
      +
      +  // variables used to output Html Fragment
      +  private int doc_pos = -1;
      +  private int doc_len = -1;
      +  private int doc_offset_remaining = -1;
      +  private int doc_len_remaining = -1;
      +  private HashSet htmlFragmentParentHashSet = null;
      +  private Element startElem = null;
      +  private Element endElem = null;
      +  private boolean fg_pass_start_elem = false;
      +  private boolean fg_pass_end_elem = false;
      +
      +  /**
      +   * Constructs a HTMLWriter.
      +   *
      +   * @param writer writer to write output to
      +   * @param doc the HTMLDocument to output
      +   */
      +  public HTMLWriter(Writer writer, HTMLDocument doc)
      +  {
      +    super(writer, doc);
      +    outWriter = writer;
      +    htmlDoc = doc;
      +    openEmbededTagHashSet = new HashSet();
      +  } // public HTMLWriter(Writer writer, HTMLDocument doc)
      +
      +  /**
      +   * Constructs a HTMLWriter which outputs a Html Fragment.
      +   *
      +   * @param writer Writer to write output to
      +   * @param doc the javax.swing.text.html.HTMLDocument
      +   *        to output
      +   * @param pos position to start outputing the document
      +   * @param len amount to output the document
      +   */
      +  public HTMLWriter(Writer writer, HTMLDocument doc, int pos, int len)
      +  {
      +    super(writer, doc, pos, len);
      +    outWriter = writer;
      +    htmlDoc = doc;
      +    openEmbededTagHashSet = new HashSet();
      +
      +    doc_pos = pos;
      +    doc_offset_remaining = pos;
      +    doc_len = len;
      +    doc_len_remaining = len;
      +    htmlFragmentParentHashSet = new HashSet();
      +  } // public HTMLWriter(Writer writer, HTMLDocument doc, int pos, int len)
      +    
      +  /**
      +   * Call this method to start outputing HTML.
      +   *
      +   * @throws IOException on any I/O exceptions
      +   * @throws BadLocationException if a pos is not a valid position in the
      +   *                              html doc element
      +   */
      +  public void write()
      +    throws IOException, BadLocationException
      +  {
      +    Element rootElem = htmlDoc.getDefaultRootElement();
      +
      +    if (doc_pos == -1 && doc_len == -1)
      +      {
      +        // Normal traversal.
      +        traverse(rootElem);
      +      } // if(doc_pos == -1 && doc_len == -1)
      +    else    
      +      {
      +        // Html fragment traversal.
      +        if (doc_pos == -1 || doc_len == -1)
      +          throw new BadLocationException("Bad Location("
      +          + doc_pos + ", " + doc_len + ")", doc_pos);
      +
      +        startElem = htmlDoc.getCharacterElement(doc_pos);
      +
      +        int start_offset = startElem.getStartOffset(); 
      +
      +        // Positions before start_offset will not be traversed, and thus
      +        // will not be counted.
      +        if (start_offset > 0)
      +          doc_offset_remaining = doc_offset_remaining - start_offset;
      +
      +        Element tempParentElem = startElem;
      +
      +        while ((tempParentElem = tempParentElem.getParentElement()) != null)
      +          {
      +            if (!htmlFragmentParentHashSet.contains(tempParentElem))
      +              htmlFragmentParentHashSet.add(tempParentElem);
      +          } // while((tempParentElem = tempParentElem.getParentElement())
      +            //   != null)
      +
      +        // NOTE: 20061030 - fchoong - the last index should not be included.
      +        endElem = htmlDoc.getCharacterElement(doc_pos + doc_len - 1);
      +
      +        tempParentElem = endElem;
      +
      +        while ((tempParentElem = tempParentElem.getParentElement()) != null)
      +          {
      +            if (!htmlFragmentParentHashSet.contains(tempParentElem))
      +              htmlFragmentParentHashSet.add(tempParentElem);
      +          } // while((tempParentElem = tempParentElem.getParentElement())
      +            //   != null)
      +
      +        traverseHtmlFragment(rootElem);
      +
      +      } // else
      +
      +    // NOTE: close out remaining open embeded tags.
      +    Object[] tag_arr = openEmbededTagHashSet.toArray();
      +
      +    for (int i = 0; i < tag_arr.length; i++)
      +      {
      +        writeRaw("");
      +      } // for(int i = 0; i < tag_arr.length; i++)
      +
      +  } // public void write() throws IOException, BadLocationException
      +  
      +  /**
      +   * Writes all the attributes in the attrSet, except for attrbutes with
      +   * keys of javax.swing.text.html.HTML.Tag,
      +   * javax.swing.text.StyleConstants or
      +   * javax.swing.text.html.HTML.Attribute.ENDTAG.
      +   *
      +   * @param attrSet attrSet to write out
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  protected void writeAttributes(AttributeSet attrSet)
      +    throws IOException
      +  {
      +    Enumeration attrNameEnum = attrSet.getAttributeNames();
      +        
      +    while (attrNameEnum.hasMoreElements())
      +      {
      +        Object key = attrNameEnum.nextElement();
      +        Object value = attrSet.getAttribute(key);
      +            
      +        // HTML.Attribute.ENDTAG is an instance, not a class.
      +        if (!((key instanceof HTML.Tag) || (key instanceof StyleConstants)
      +          || (key == HTML.Attribute.ENDTAG)))
      +          {
      +            if (key == HTML.Attribute.SELECTED)
      +              writeRaw(" selected");
      +            else if (key == HTML.Attribute.CHECKED)
      +              writeRaw(" checked");
      +            else
      +              writeRaw(" " + key + "=\"" + value + "\"");
      +          } // if(!((key instanceof HTML.Tag) || (key instanceof
      +            //   StyleConstants) || (key == HTML.Attribute.ENDTAG)))
      +      } // while(attrNameEnum.hasMoreElements())
      +        
      +  } // protected void writeAttributes(AttributeSet attrSet) throws IOException
      +
      +  /**
      +   * Writes out an empty tag. i.e. a tag without any child elements.
      +   *
      +   * @param paramElem the element to output as an empty tag
      +   *
      +   * @throws IOException on any I/O exceptions
      +   * @throws BadLocationException if a pos is not a valid position in the
      +   *                              html doc element
      +   */
      +  protected void emptyTag(Element paramElem)
      +    throws IOException, BadLocationException
      +  {
      +    String elem_name = paramElem.getName();
      +    AttributeSet attrSet = paramElem.getAttributes();
      +
      +    writeRaw("<" + elem_name);
      +    writeAttributes(attrSet);
      +    writeRaw(">");
      +
      +    if (isBlockTag(attrSet))
      +      {
      +        writeRaw("");
      +      } // if(isBlockTag(attrSet))
      +        
      +  } // protected void emptyTag(Element paramElem)
      +    //   throws IOException, BadLocationException
      +    
      +  /**
      +   * Determines if it is a block tag or not.
      +   *
      +   * @param attrSet the attrSet of the element
      +   *
      +   * @return true if it is a block tag
      +   *         false if it is a not block tag
      +   */
      +  protected boolean isBlockTag(AttributeSet attrSet)
      +  {
      +    return ((HTML.Tag)
      +      attrSet.getAttribute(StyleConstants.NameAttribute)).isBlock();
      +  } // protected boolean isBlockTag(AttributeSet attrSet)
      +
      +  /**
      +   * Writes out a start tag. Synthesized elements are skipped.
      +   *
      +   * @param paramElem the element to output as a start tag
      +   * @throws IOException on any I/O exceptions
      +   * @throws BadLocationException if a pos is not a valid position in the
      +   *                              html doc element
      +   */
      +  protected void startTag(Element paramElem)
      +    throws IOException, BadLocationException
      +  {
      +    // NOTE: Sysnthesized elements do no call this method at all.
      +    String elem_name = paramElem.getName();
      +    AttributeSet attrSet = paramElem.getAttributes();
      +
      +    indent();
      +    writeRaw("<" + elem_name);
      +    writeAttributes(attrSet);
      +    writeRaw(">");
      +    writeLineSeparator(); // Extra formatting to look more like the RI.
      +    incrIndent();
      +
      +  } // protected void startTag(Element paramElem)
      +    //   throws IOException, BadLocationException
      +
      +  /**
      +   * Writes out the contents of a textarea.
      +   *
      +   * @param attrSet the attrSet of the element to output as a text area
      +   * @throws IOException on any I/O exceptions
      +   * @throws BadLocationException if a pos is not a valid position in the
      +   *                              html doc element
      +   */
      +  protected void textAreaContent(AttributeSet attrSet)
      +    throws IOException, BadLocationException
      +  {
      +    writeLineSeparator(); // Extra formatting to look more like the RI.
      +    indent();
      +    writeRaw("");
      +
      +    Document tempDocument = 
      +      (Document) attrSet.getAttribute(StyleConstants.ModelAttribute);
      +
      +    writeRaw(tempDocument.getText(0, tempDocument.getLength()));
      +    indent();
      +    writeRaw("");
      +
      +  } // protected void textAreaContent(AttributeSet attrSet)
      +    //   throws IOException, BadLocationException
      +
      +  /**
      +   * Writes out text, within the appropriate range if it is specified.
      +   *
      +   * @param paramElem the element to output as a text
      +   * @throws IOException on any I/O exceptions
      +   * @throws BadLocationException if a pos is not a valid position in the
      +   *                              html doc element
      +   */
      +  protected void text(Element paramElem)
      +    throws IOException, BadLocationException
      +  {
      +    int offset =  paramElem.getStartOffset();
      +    int len =  paramElem.getEndOffset() -  paramElem.getStartOffset();
      +    String txt_value = htmlDoc.getText(offset, len);
      +
      +    writeContent(txt_value);
      +
      +  } // protected void text(Element paramElem)
      +    //   throws IOException, BadLocationException
      +
      +  /**
      +   * Writes out the contents of a select element.
      +   *
      +   * @param attrSet the attrSet of the element to output as a select box
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  protected void selectContent(AttributeSet attrSet)
      +    throws IOException
      +  {
      +    writeLineSeparator(); // Extra formatting to look more like the RI.
      +    indent();
      +    writeRaw("");
      +    incrIndent();
      +    writeLineSeparator(); // extra formatting to look more like the RI.
      +
      +    ComboBoxModel comboBoxModel =
      +      (ComboBoxModel) attrSet.getAttribute(StyleConstants.ModelAttribute);
      +
      +    for (int i = 0; i < comboBoxModel.getSize(); i++)
      +      {
      +        writeOption((Option) comboBoxModel.getElementAt(i));
      +      } // for(int i = 0; i < comboBoxModel.getSize(); i++)
      +
      +    decrIndent();
      +    indent();
      +    writeRaw("");
      +
      +  } // protected void selectContent(AttributeSet attrSet) throws IOException
      +
      +  /**
      +   * Writes out the contents of an option element.
      +   *
      +   * @param option the option object to output as a select option
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  protected void writeOption(Option option)
      +    throws IOException
      +  {
      +    indent();
      +    writeRaw("");
      +
      +    writeContent(option.getLabel());
      +
      +    writeRaw("");
      +    writeLineSeparator(); // extra formatting to look more like the RI.
      +
      +  } // protected void writeOption(Option option) throws IOException
      +
      +  /**
      +   * Writes out an end tag.
      +   *
      +   * @param paramElem the element to output as an end tag
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  protected void endTag(Element paramElem)
      +    throws IOException
      +  {
      +    String elem_name = paramElem.getName();
      +
      +    //writeLineSeparator(); // Extra formatting to look more like the RI.
      +    decrIndent();
      +    indent();
      +    writeRaw("");
      +    writeLineSeparator(); // Extra formatting to look more like the RI.
      +
      +  } // protected void endTag(Element paramElem) throws IOException
      +
      +  /**
      +   * Writes out the comment.
      +   *
      +   * @param paramElem the element to output as a comment
      +   */
      +  protected void comment(Element paramElem)
      +    throws IOException, BadLocationException
      +  {
      +    AttributeSet attrSet = paramElem.getAttributes();
      +
      +    String comment_str = (String) attrSet.getAttribute(HTML.Attribute.COMMENT);
      +
      +    writeRaw("");
      +
      +  } // protected void comment(Element paramElem)
      +    //   throws IOException, BadLocationException
      +
      +  /**
      +   * Determines if element is a synthesized
      +   * javax.swing.text.Element or not.
      +   *
      +   * @param element the element to test
      +   *
      +   * @return true if it is a synthesized element,
      +   *         false if it is a not synthesized element
      +   */
      +  protected boolean synthesizedElement(Element element)
      +  {
      +    AttributeSet attrSet = element.getAttributes();
      +    Object tagType = attrSet.getAttribute(StyleConstants.NameAttribute);
      +
      +    if (tagType == HTML.Tag.CONTENT || tagType == HTML.Tag.COMMENT
      +        || tagType == HTML.Tag.IMPLIED)
      +      return true;
      +    else
      +      return false;
      +  } // protected boolean synthesizedElement(Element element)
      +
      +  /**
      +   * Determines if
      +   * javax.swing.text.StyleConstants.NameAttribute
      +   * matches tag or not.
      +   *
      +   * @param attrSet the javax.swing.text.AttributeSet of
      +   *        element to be matched
      +   * @param tag the HTML.Tag to match
      +   *
      +   * @return true if it matches,
      +   *         false if it does not match
      +   */
      +  protected boolean matchNameAttribute(AttributeSet attrSet, HTML.Tag tag)
      +  {
      +    Object tagType = attrSet.getAttribute(StyleConstants.NameAttribute);
      +
      +    if (tagType == tag)
      +      return true;
      +    else
      +      return false;
      +  } // protected boolean matchNameAttribute(AttributeSet attrSet,
      +    //   HTML.Tag tag)
      +
      +  /**
      +   * Writes out an embedded tag. The tags not already in
      +   * openEmbededTagHashSet will written out.
      +   *
      +   * @param attrSet the javax.swing.text.AttributeSet of
      +   *        the element to write out
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  protected void writeEmbeddedTags(AttributeSet attrSet)
      +    throws IOException
      +  {
      +    Enumeration attrNameEnum = attrSet.getAttributeNames();
      +
      +    while (attrNameEnum.hasMoreElements())
      +      {
      +        Object key = attrNameEnum.nextElement();
      +        Object value = attrSet.getAttribute(key);
      +
      +        if (key instanceof HTML.Tag)
      +          {
      +            if (!openEmbededTagHashSet.contains(key))
      +              {
      +                writeRaw("<" + key);
      +                writeAttributes((AttributeSet) value);
      +                writeRaw(">");
      +                openEmbededTagHashSet.add(key);
      +              } // if(!openEmbededTagHashSet.contains(key))
      +          } // if(key instanceof HTML.Tag)
      +      } // while(attrNameEnum.hasMoreElements())
      +
      +  } // protected void writeEmbeddedTags(AttributeSet attrSet)
      +    //   throws IOException
      +
      +  /**
      +   * Closes out an unwanted embedded tag. The tags from the
      +   *  openEmbededTagHashSet not found in attrSet will be written out.
      +   * 
      +   *  @param attrSet the AttributeSet of the element to write out
      +   * 
      +   *  @throws IOException on any I/O exceptions
      +   */
      +  protected void closeOutUnwantedEmbeddedTags(AttributeSet attrSet)
      +    throws IOException
      +  {
      +    Object[] tag_arr = openEmbededTagHashSet.toArray();
      +
      +    for (int i = 0; i < tag_arr.length; i++)
      +      {
      +        HTML.Tag key = (HTML.Tag) tag_arr[i];
      +            
      +        if (!attrSet.isDefined(key))
      +          {
      +            writeRaw("");
      +            openEmbededTagHashSet.remove(key);
      +          } // if(!attrSet.isDefined(key))
      +      } // for(int i = 0; i < tag_arr.length; i++)
      +
      +  } // protected void closeOutUnwantedEmbeddedTags(AttributeSet attrSet)
      +    //   throws IOException
      +
      +  /**
      +   * Writes out a line separator. Overwrites the parent to write out a new
      +   * line.
      +   *
      +   * @throws IOException on any I/O exceptions.
      +   */
      +  protected void writeLineSeparator()
      +    throws IOException
      +  {
      +    writeRaw(new_line_str);
      +  } // protected void writeLineSeparator() throws IOException
      +
      +  /**
      +   * Write to the writer. Character entites such as <, >
      +   * are escaped appropriately.
      +   *
      +   * @param chars char array to write out
      +   * @param off offset
      +   * @param len length
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  protected void output(char[] chars, int off, int len)
      +   throws IOException
      +  {
      +    StringBuffer strBuffer = new StringBuffer();
      +
      +    for (int i = 0; i < chars.length; i++)
      +      {
      +        if (isCharHtmlEntity(chars[i]))
      +          strBuffer.append(escapeCharHtmlEntity(chars[i]));
      +        else
      +          strBuffer.append(chars[i]);
      +      } // for(int i = 0; i < chars.length; i++)
      +
      +    writeRaw(strBuffer.toString());
      +
      +  } // protected void output(char[] chars, int off, int len)
      +    //   throws IOException
      + 
      +  //-------------------------------------------------------------------------
      +  // private methods
      +  
      +  /**
      +   * The main method used to traverse through the elements.
      +   *
      +   * @param paramElem element to traverse
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  private void traverse(Element paramElem)
      +    throws IOException, BadLocationException
      +  {
      +    Element currElem = paramElem;
      +
      +    AttributeSet attrSet = currElem.getAttributes();
      +
      +    closeOutUnwantedEmbeddedTags(attrSet);
      +
      +    // handle the tag
      +    if (synthesizedElement(paramElem))
      +      {
      +        if (matchNameAttribute(attrSet, HTML.Tag.CONTENT))
      +          {
      +            writeEmbeddedTags(attrSet);
      +            text(currElem);
      +          } // if(matchNameAttribute(attrSet, HTML.Tag.CONTENT))
      +        else if (matchNameAttribute(attrSet, HTML.Tag.COMMENT))
      +          {
      +            comment(currElem);
      +          } // else if(matchNameAttribute(attrSet, HTML.Tag.COMMENT))
      +        else if (matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
      +          {
      +            int child_elem_count = currElem.getElementCount();
      +                
      +            if (child_elem_count > 0)
      +              {
      +                for (int i = 0; i < child_elem_count; i++)
      +                  {
      +                    Element childElem = paramElem.getElement(i);
      +
      +                    traverse(childElem);
      +
      +                  } // for(int i = 0; i < child_elem_count; i++)
      +              } // if(child_elem_count > 0)
      +          } // else if(matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
      +      } // if(synthesizedElement(paramElem))
      +    else
      +      {
      +        // NOTE: 20061030 - fchoong - title is treated specially here.
      +        // based on RI behavior.
      +        if (matchNameAttribute(attrSet, HTML.Tag.TITLE))
      +          {
      +            boolean fg_is_end_tag = false;
      +            Enumeration attrNameEnum = attrSet.getAttributeNames();
      +
      +            while (attrNameEnum.hasMoreElements())
      +              {
      +                Object key = attrNameEnum.nextElement();
      +                Object value = attrSet.getAttribute(key);
      +
      +                if (key == HTML.Attribute.ENDTAG && value.equals("true"))
      +                  fg_is_end_tag = true;
      +              } // while(attrNameEnum.hasMoreElements())
      +
      +            if (fg_is_end_tag)
      +              writeRaw("");
      +            else
      +              {
      +                indent();
      +                writeRaw("");
      +
      +                String title_str = 
      +                  (String) htmlDoc.getProperty(HTMLDocument.TitleProperty);
      +
      +                if (title_str != null)
      +                  writeContent(title_str);
      +
      +              } // else
      +          } // if(matchNameAttribute(attrSet, HTML.Tag.TITLE))
      +        else if (matchNameAttribute(attrSet, HTML.Tag.PRE))
      +          {
      +            // We pursue more stringent formating here.
      +            attrSet = paramElem.getAttributes();
      +
      +            indent();
      +            writeRaw("<pre");
      +            writeAttributes(attrSet);
      +            writeRaw(">");
      +
      +            int child_elem_count = currElem.getElementCount();
      +
      +            for (int i = 0; i < child_elem_count; i++)
      +              {
      +                Element childElem = paramElem.getElement(i);
      +
      +                traverse(childElem);
      +
      +              } // for(int i = 0; i < child_elem_count; i++)
      +
      +            writeRaw("</pre>");
      +
      +          } // else if(matchNameAttribute(attrSet, HTML.Tag.PRE))
      +        else if (matchNameAttribute(attrSet, HTML.Tag.SELECT))
      +          {
      +            selectContent(attrSet);
      +          } // else if(matchNameAttribute(attrSet, HTML.Tag.SELECT))
      +        else if (matchNameAttribute(attrSet, HTML.Tag.TEXTAREA))
      +          {
      +            textAreaContent(attrSet);
      +          } // else if(matchNameAttribute(attrSet, HTML.Tag.TEXTAREA))
      +        else
      +          {
      +            int child_elem_count = currElem.getElementCount();
      +
      +            if (child_elem_count > 0)
      +              {
      +                startTag(currElem);
      +
      +                for (int i = 0; i < child_elem_count; i++)
      +                  {
      +                    Element childElem = paramElem.getElement(i);
      +
      +                    traverse(childElem);
      +
      +                  } // for(int i = 0; i < child_elem_count; i++)
      +
      +                  endTag(currElem);
      +
      +              } // if(child_elem_count > 0)
      +            else
      +              {
      +                emptyTag(currElem);
      +              } // else 
      +            } // else
      +          } // else
      +
      +  } // private void traverse(Element paramElem)
      +    //   throws IOException, BadLocationException
      +
      +  /**
      +   * The method used to traverse through a html fragment.
      +   *
      +   * @param paramElem element to traverse
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  private void traverseHtmlFragment(Element paramElem)
      +    throws IOException, BadLocationException
      +  {
      +    // NOTE: This method is similar to traverse(Element paramElem)
      +    Element currElem = paramElem;
      +
      +    boolean fg_is_fragment_parent_elem = false;
      +    boolean fg_is_start_and_end_elem = false;
      +
      +    if (htmlFragmentParentHashSet.contains(paramElem))
      +      fg_is_fragment_parent_elem = true;
      +
      +    if (paramElem == startElem)
      +      fg_pass_start_elem = true;
      +
      +    if (paramElem == startElem && paramElem == endElem)
      +      fg_is_start_and_end_elem = true;
      +
      +    AttributeSet attrSet = currElem.getAttributes();
      +
      +    closeOutUnwantedEmbeddedTags(attrSet);
      +
      +    if (fg_is_fragment_parent_elem || (fg_pass_start_elem
      +        && fg_pass_end_elem == false) || fg_is_start_and_end_elem)
      +    {
      +      // handle the tag
      +      if (synthesizedElement(paramElem))
      +        {
      +          if (matchNameAttribute(attrSet, HTML.Tag.CONTENT))
      +            {
      +              writeEmbeddedTags(attrSet);
      +
      +              int content_offset =  paramElem.getStartOffset();
      +              int content_length = currElem.getEndOffset() - content_offset;
      +
      +              if (doc_offset_remaining > 0)
      +                {
      +                  if (content_length > doc_offset_remaining)
      +                    {
      +                      int split_len = content_length;
      +
      +                      split_len = split_len - doc_offset_remaining;
      +
      +                      if (split_len > doc_len_remaining)
      +                        split_len = doc_len_remaining;
      +
      +                      // we need to split it.
      +                      String txt_value = htmlDoc.getText(content_offset
      +                        + doc_offset_remaining, split_len);
      +
      +                      writeContent(txt_value);
      +
      +                      doc_offset_remaining = 0; // the offset is used up.
      +                      doc_len_remaining = doc_len_remaining - split_len;
      +                    } // if(content_length > doc_offset_remaining)
      +                  else
      +                    {
      +                      // doc_offset_remaining is greater than the entire
      +                      //   length of content
      +                      doc_offset_remaining = doc_offset_remaining
      +                        - content_length;
      +                    }  // else
      +                } // if(doc_offset_remaining > 0)
      +              else if (content_length <= doc_len_remaining)
      +                {
      +                  // we can fit the entire content.
      +                  text(currElem);
      +                  doc_len_remaining = doc_len_remaining - content_length;
      +                } // else if(content_length <= doc_len_remaining)
      +              else
      +                {
      +                  // we need to split it.
      +                  String txt_value = htmlDoc.getText(content_offset,
      +                    doc_len_remaining);
      +
      +                  writeContent(txt_value);
      +
      +                  doc_len_remaining = 0;
      +                } // else
      +
      +            } // if(matchNameAttribute(attrSet, HTML.Tag.CONTENT))
      +          else if (matchNameAttribute(attrSet, HTML.Tag.COMMENT))
      +            {
      +              comment(currElem);
      +            } // else if(matchNameAttribute(attrSet, HTML.Tag.COMMENT))
      +          else if (matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
      +            {
      +              int child_elem_count = currElem.getElementCount();
      +
      +              if (child_elem_count > 0)
      +                {
      +                  for (int i = 0; i < child_elem_count; i++)
      +                    {
      +                      Element childElem = paramElem.getElement(i);
      +
      +                      traverseHtmlFragment(childElem);
      +
      +                    } // for(int i = 0; i < child_elem_count; i++)
      +                } // if(child_elem_count > 0)
      +            } // else if(matchNameAttribute(attrSet, HTML.Tag.IMPLIED))
      +        } // if(synthesizedElement(paramElem))
      +      else
      +        { 
      +            // NOTE: 20061030 - fchoong - the isLeaf() condition seems to
      +            // generate the closest behavior to the RI.
      +            if (paramElem.isLeaf())
      +              {
      +                if (doc_offset_remaining > 0)
      +                  {
      +                    doc_offset_remaining--;
      +                  } // if(doc_offset_remaining > 0)
      +                else if (doc_len_remaining > 0)
      +                  {
      +                    doc_len_remaining--;
      +                  } // else if(doc_len_remaining > 0)
      +              } // if(paramElem.isLeaf())
      +
      +          // NOTE: 20061030 - fchoong - title is treated specially here.
      +          // based on RI behavior.
      +          if (matchNameAttribute(attrSet, HTML.Tag.TITLE))
      +            {
      +              boolean fg_is_end_tag = false;
      +              Enumeration attrNameEnum = attrSet.getAttributeNames();
      +
      +              while (attrNameEnum.hasMoreElements())
      +                {
      +                  Object key = attrNameEnum.nextElement();
      +                  Object value = attrSet.getAttribute(key);
      +
      +                  if (key == HTML.Attribute.ENDTAG && value.equals("true"))
      +                    fg_is_end_tag = true;
      +                } // while(attrNameEnum.hasMoreElements())
      +
      +              if (fg_is_end_tag)
      +                writeRaw("");
      +              else
      +                {
      +                  indent();
      +                  writeRaw("");
      +
      +                  String title_str = 
      +                    (String) htmlDoc.getProperty(HTMLDocument.TitleProperty);
      +
      +                  if (title_str != null)
      +                    writeContent(title_str);
      +
      +                } // else
      +            } // if(matchNameAttribute(attrSet, HTML.Tag.TITLE))
      +          else if (matchNameAttribute(attrSet, HTML.Tag.PRE))
      +            {
      +              // We pursue more stringent formating here.
      +              attrSet = paramElem.getAttributes();
      +
      +              indent();
      +              writeRaw("<pre");
      +              writeAttributes(attrSet);
      +              writeRaw(">");
      +
      +              int child_elem_count = currElem.getElementCount();
      +
      +              for (int i = 0; i < child_elem_count; i++)
      +                {
      +                  Element childElem = paramElem.getElement(i);
      +
      +                  traverseHtmlFragment(childElem);
      +
      +                } // for(int i = 0; i < child_elem_count; i++)
      +
      +              writeRaw("</pre>");
      +
      +            } // else if(matchNameAttribute(attrSet, HTML.Tag.PRE))
      +          else if (matchNameAttribute(attrSet, HTML.Tag.SELECT))
      +            {
      +              selectContent(attrSet);
      +            } // else if(matchNameAttribute(attrSet, HTML.Tag.SELECT))
      +          else if (matchNameAttribute(attrSet, HTML.Tag.TEXTAREA))
      +            {
      +              textAreaContent(attrSet);
      +            } // else if(matchNameAttribute(attrSet, HTML.Tag.TEXTAREA))
      +          else
      +            {
      +              int child_elem_count = currElem.getElementCount();
      +
      +              if (child_elem_count > 0)
      +                {
      +                  startTag(currElem);
      +
      +                  for (int i = 0; i < child_elem_count; i++)
      +                    {
      +                      Element childElem = paramElem.getElement(i);
      +
      +                      traverseHtmlFragment(childElem);
      +
      +                    } // for(int i = 0; i < child_elem_count; i++)
      +
      +                    endTag(currElem);
      +
      +                } // if(child_elem_count > 0)
      +              else
      +                {
      +                  emptyTag(currElem);
      +                } // else 
      +            } // else
      +        } // else
      +
      +    } // if(fg_is_fragment_parent_elem || (fg_pass_start_elem
      +      //   && fg_pass_end_elem == false) || fg_is_start_and_end_elem)
      +
      +    if (paramElem == endElem)
      +      fg_pass_end_elem = true;
      +
      +  } // private void traverseHtmlFragment(Element paramElem)
      +    //   throws IOException, BadLocationException
      +
      +  /**
      +   * Write to the writer without any modifications.
      +   *
      +   * @param param_str the str to write out
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  private void writeRaw(String param_str)
      +    throws IOException
      +  {
      +    super.output(param_str.toCharArray(), 0, param_str.length());
      +  } // private void writeRaw(char[] chars, int off, int len)
      +    //   throws IOException
      +
      +  /**
      +   * Write to the writer, escaping HTML character entitie where neccessary.
      +   *
      +   * @param param_str the str to write out
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  private void writeContent(String param_str)
      +    throws IOException
      +  {
      +    char[] str_char_arr = param_str.toCharArray();
      +
      +    if (hasHtmlEntity(param_str))
      +      output(str_char_arr, 0, str_char_arr.length);
      +    else
      +      super.output(str_char_arr, 0, str_char_arr.length);
      +
      +  } // private void writeContent(String param_str) throws IOException
      +
      +  /**
      +   * Use this for debugging. Writes out all attributes regardless of type.
      +   *
      +   * @param attrSet the <code>javax.swing.text.AttributeSet</code> to
      +   *        write out
      +   *
      +   * @throws IOException on any I/O exceptions
      +   */
      +  private void writeAllAttributes(AttributeSet attrSet)
      +    throws IOException
      +  {
      +    Enumeration attrNameEnum = attrSet.getAttributeNames();
      +
      +    while (attrNameEnum.hasMoreElements())
      +      {
      +        Object key = attrNameEnum.nextElement();
      +        Object value = attrSet.getAttribute(key);
      +
      +        writeRaw(" " + key + "=\"" + value + "\"");
      +        writeRaw(" " + key.getClass().toString() + "=\""
      +          + value.getClass().toString() + "\"");
      +      } // while(attrNameEnum.hasMoreElements())
      +
      +  } // private void writeAllAttributes(AttributeSet attrSet)
      +    //   throws IOException
      +
      +  /**
      +   * Tests if the str contains any html entities.
      +   *
      +   * @param param_str the str to test
      +   *
      +   * @return <code>true</code> if it has a html entity
      +   *         <code>false</code> if it does not have a html entity
      +   */
      +  private boolean hasHtmlEntity(String param_str)
      +  {
      +    boolean ret_bool = false;
      +
      +    for (int i = 0; i < html_entity_char_arr.length; i++)
      +      {
      +        if (param_str.indexOf(html_entity_char_arr[i]) != -1)
      +          {
      +            ret_bool = true;
      +            break;
      +          } // if(param_str.indexOf(html_entity_char_arr[i]) != -1)
      +      } // for(int i = 0; i < html_entity_char_arr.length; i++)
      +
      +    return ret_bool;
      +  } // private boolean hasHtmlEntity(String param_str)
      +
      +  /**
      +   * Tests if the char is a html entities.
      +   *
      +   * @param param_char the char to test
      +   *
      +   * @return <code>true</code> if it is a html entity
      +   *         <code>false</code> if it is not a html entity.
      +   */
      +  private boolean isCharHtmlEntity(char param_char)
      +  {
      +    boolean ret_bool = false;
      +
      +    for (int i = 0; i < html_entity_char_arr.length; i++)
      +      {
      +        if (param_char == html_entity_char_arr[i])
      +          {
      +            ret_bool = true;
      +            break;
      +          } // if(param_char == html_entity_char_arr[i])
      +      } // for(int i = 0; i < html_entity_char_arr.length; i++)
      +
      +      return ret_bool;
      +  } // private boolean hasHtmlEntity(String param_str)
      +
      +  /**
      +   * Escape html entities.
      +   *
      +   * @param param_char the char to escape
      +   *
      +   * @return escaped html entity. Original char is returned as a str if is
      +   *         is not a html entity
      +   */
      +  private String escapeCharHtmlEntity(char param_char)
      +  {
      +    String ret_str = "" + param_char;
      +
      +    for (int i = 0; i < html_entity_char_arr.length; i++)
      +      {
      +        if (param_char == html_entity_char_arr[i])
      +          {
      +            ret_str = html_entity_escape_str_arr[i];
      +            break;
      +          } // if(param_char == html_entity_char_arr[i])
      +      } // for(int i = 0; i < html_entity_char_arr.length; i++)
      +
      +      return ret_str;
      +  } // private String escapeCharHtmlEntity(char param_char)
      +
      +} // public class HTMLWriter extends AbstractWriter
      \ No newline at end of file
      diff --git a/libjava/classpath/javax/swing/text/html/ImageView.java b/libjava/classpath/javax/swing/text/html/ImageView.java
      index 84b021070a9..bf906e4500e 100644
      --- a/libjava/classpath/javax/swing/text/html/ImageView.java
      +++ b/libjava/classpath/javax/swing/text/html/ImageView.java
      @@ -1,18 +1,21 @@
       package javax.swing.text.html;
       
      -import gnu.javax.swing.text.html.CombinedAttributes;
       import gnu.javax.swing.text.html.ImageViewIconFactory;
      +import gnu.javax.swing.text.html.css.Length;
       
       import java.awt.Graphics;
       import java.awt.Image;
       import java.awt.MediaTracker;
       import java.awt.Rectangle;
       import java.awt.Shape;
      +import java.awt.Toolkit;
      +import java.awt.image.ImageObserver;
       import java.net.MalformedURLException;
       import java.net.URL;
       
       import javax.swing.Icon;
      -import javax.swing.ImageIcon;
      +import javax.swing.SwingUtilities;
      +import javax.swing.text.AbstractDocument;
       import javax.swing.text.AttributeSet;
       import javax.swing.text.BadLocationException;
       import javax.swing.text.Document;
      @@ -29,15 +32,38 @@ import javax.swing.text.html.HTML.Attribute;
       public class ImageView extends View
       {
         /**
      +   * Tracks image loading state and performs the necessary layout updates.
      +   */
      +  class Observer
      +    implements ImageObserver
      +  {
      +
      +    public boolean imageUpdate(Image image, int flags, int x, int y, int width, int height)
      +    {
      +      boolean widthChanged = false;
      +      if ((flags & ImageObserver.WIDTH) != 0 && spans[X_AXIS] == null)
      +        widthChanged = true;
      +      boolean heightChanged = false;
      +      if ((flags & ImageObserver.HEIGHT) != 0 && spans[Y_AXIS] == null)
      +        heightChanged = true;
      +      if (widthChanged || heightChanged)
      +        safePreferenceChanged(ImageView.this, widthChanged, heightChanged);
      +      boolean ret = (flags & ALLBITS) != 0;
      +      return ret;
      +    }
      +    
      +  }
      +
      +  /**
          * True if the image loads synchronuosly (on demand). By default, the image
          * loads asynchronuosly.
          */
         boolean loadOnDemand;
      -  
      +
         /**
          * The image icon, wrapping the image,
          */
      -  ImageIcon imageIcon;
      +  Image image;
        
         /**
          * The image state.
      @@ -45,6 +71,58 @@ public class ImageView extends View
         byte imageState = MediaTracker.LOADING;
       
         /**
      +   * True when the image needs re-loading, false otherwise.
      +   */
      +  private boolean reloadImage;
      +
      +  /**
      +   * True when the image properties need re-loading, false otherwise.
      +   */
      +  private boolean reloadProperties;
      +
      +  /**
      +   * True when the width is set as CSS/HTML attribute.
      +   */
      +  private boolean haveWidth;
      +
      +  /**
      +   * True when the height is set as CSS/HTML attribute.
      +   */
      +  private boolean haveHeight;
      +
      +  /**
      +   * True when the image is currently loading.
      +   */
      +  private boolean loading;
      +
      +  /**
      +   * The current width of the image.
      +   */
      +  private int width;
      +
      +  /**
      +   * The current height of the image.
      +   */
      +  private int height;
      +
      +  /**
      +   * Our ImageObserver for tracking the loading state.
      +   */
      +  private ImageObserver observer;
      +
      +  /**
      +   * The CSS width and height.
      +   *
      +   * Package private to avoid synthetic accessor methods.
      +   */
      +  Length[] spans;
      +
      +  /**
      +   * The cached attributes.
      +   */
      +  private AttributeSet attributes;
      +
      +  /**
          * Creates the image view that represents the given element.
          * 
          * @param element the element, represented by this image view.
      @@ -52,25 +130,36 @@ public class ImageView extends View
         public ImageView(Element element)
         {
           super(element);
      +    spans = new Length[2];
      +    observer = new Observer();
      +    reloadProperties = true;
      +    reloadImage = true;
      +    loadOnDemand = false;
         }
        
         /**
          * Load or reload the image. This method initiates the image reloading. After
          * the image is ready, the repaint event will be scheduled. The current image,
          * if it already exists, will be discarded.
      -   * 
      -   * @param itsTime
      -   *          also load if the "on demand" property is set
          */
      -  void reloadImage(boolean itsTime)
      +  private void reloadImage()
         {
      -    URL url = getImageURL();
      -    if (url == null)
      -      imageState = (byte) MediaTracker.ERRORED;
      -    else if (!(loadOnDemand && !itsTime))
      -      imageIcon = new ImageIcon(url);
      -    else
      -      imageState = (byte) MediaTracker.LOADING;
      +    loading = true;
      +    reloadImage = false;
      +    haveWidth = false;
      +    haveHeight = false;
      +    image = null;
      +    width = 0;
      +    height = 0;
      +    try
      +      {
      +        loadImage();
      +        updateSize();
      +      }
      +    finally
      +      {
      +        loading = false;
      +      }
         }
         
         /**
      @@ -146,12 +235,9 @@ public class ImageView extends View
          */
         public AttributeSet getAttributes()
         {
      -    StyleSheet styles = getStyleSheet();
      -    if (styles == null)
      -      return super.getAttributes();
      -    else
      -      return CombinedAttributes.combine(super.getAttributes(),
      -                                        styles.getViewAttributes(this));
      +    if (attributes == null)
      +      attributes = getStyleSheet().getViewAttributes(this);
      +    return attributes;
         }
         
         /**
      @@ -159,10 +245,8 @@ public class ImageView extends View
          */
         public Image getImage()
         {
      -    if (imageIcon == null)
      -      return null;
      -    else
      -      return imageIcon.getImage();
      +    updateState();
      +    return image;
         }
         
         /**
      @@ -175,19 +259,22 @@ public class ImageView extends View
          */
         public URL getImageURL()
         {
      -    Object url = getAttributes().getAttribute(Attribute.SRC);
      -    if (url == null)
      -      return null;
      -
      -    try
      +    Element el = getElement();
      +    String src = (String) el.getAttributes().getAttribute(Attribute.SRC);
      +    URL url = null;
      +    if (src != null)
             {
      -        return new URL(url.toString());
      -      }
      -    catch (MalformedURLException e)
      -      {
      -        // The URL is malformed - no image.
      -        return null;
      +        URL base = ((HTMLDocument) getDocument()).getBase();
      +        try
      +          {
      +            url = new URL(base, src);
      +          }
      +        catch (MalformedURLException ex)
      +          {
      +            // Return null.
      +          }
             }
      +    return url;
         }
       
         /**
      @@ -242,9 +329,8 @@ public class ImageView extends View
       
           if (axis == View.X_AXIS)
             {
      -        Object w = attrs.getAttribute(Attribute.WIDTH);
      -        if (w != null)
      -          return Integer.parseInt(w.toString());
      +        if (spans[axis] != null)
      +          return spans[axis].getValue();
               else if (image != null)
                 return image.getWidth(getContainer());
               else
      @@ -252,9 +338,8 @@ public class ImageView extends View
             }
           else if (axis == View.Y_AXIS)
             {
      -        Object w = attrs.getAttribute(Attribute.HEIGHT);
      -        if (w != null)
      -          return Integer.parseInt(w.toString());
      +        if (spans[axis] != null)
      +          return spans[axis].getValue();
               else if (image != null)
                 return image.getHeight(getContainer());
               else
      @@ -271,11 +356,8 @@ public class ImageView extends View
          */
         protected StyleSheet getStyleSheet()
         {
      -    Document d = getElement().getDocument();
      -    if (d instanceof HTMLDocument)
      -      return ((HTMLDocument) d).getStyleSheet();
      -    else
      -      return null;
      +    HTMLDocument doc = (HTMLDocument) getDocument();
      +    return doc.getStyleSheet();
         }
       
         /**
      @@ -288,7 +370,7 @@ public class ImageView extends View
         {
           return getAltText();
         }
      -  
      +
         /**
          * Paints the image or one of the two image state icons. The image is resized
          * to the shape bounds. If there is no image available, the alternative text
      @@ -302,83 +384,22 @@ public class ImageView extends View
          */
         public void paint(Graphics g, Shape bounds)
         {
      -    Rectangle r = bounds.getBounds();
      -
      -    if (imageIcon == null)
      -
      -      {
      -        // Loading image on demand, rendering the loading icon so far.
      -        reloadImage(true);
      -         
      -        // The reloadImage sets the imageIcon, unless the URL is broken 
      -        // or malformed.
      -        if (imageIcon != null)
      -          {
      -            if (imageIcon.getImageLoadStatus() != MediaTracker.COMPLETE)
      -              {
      -                // Render "not ready" icon, unless the image is ready
      -                // immediately.
      -                renderIcon(g, r, getLoadingImageIcon());
      -                // Add the listener to repaint when the icon will be ready.
      -                imageIcon.setImageObserver(getContainer());
      -                return;
      -              }
      -          }
      -        else
      -          {
      -            renderIcon(g, r, getNoImageIcon());
      -            return;
      -          }
      -      }
      -
      -    imageState = (byte) imageIcon.getImageLoadStatus();
      -
      -    switch (imageState)
      -      {
      -      case MediaTracker.ABORTED:
      -      case MediaTracker.ERRORED:
      -        renderIcon(g, r, getNoImageIcon());
      -        break;
      -      case MediaTracker.LOADING:
      -      // If the image is not loaded completely, we still render it, as the
      -      // partial image may be available.
      -      case MediaTracker.COMPLETE:
      +    updateState();
      +    Rectangle r = bounds instanceof Rectangle ? (Rectangle) bounds
      +                                              : bounds.getBounds();
      +    Image image = getImage();
      +    if (image != null)
             {
      -        // Paint the scaled image.
      -        Image scaled = imageIcon.getImage().getScaledInstance(
      -                                                              r.width,
      -                                                              r.height,
      -                                                              Image.SCALE_DEFAULT);
      -        ImageIcon painter = new ImageIcon(scaled);
      -        painter.paintIcon(getContainer(), g, r.x, r.y);
      -      }
      -        break;
      +        g.drawImage(image, r.x, r.y, r.width, r.height, observer);
             }
      -  }
      -  
      -  /**
      -   * Render "no image" icon and the alternative "no image" text. The text is
      -   * rendered right from the icon and is aligned to the icon bottom.
      -   */
      -  private void renderIcon(Graphics g, Rectangle bounds, Icon icon)
      -  {
      -    Shape current = g.getClip();
      -    try
      +    else
             {
      -        g.setClip(bounds);
      +        Icon icon = getNoImageIcon();
               if (icon != null)
      -          {
      -            icon.paintIcon(getContainer(), g, bounds.x, bounds.y);
      -            g.drawString(getAltText(), bounds.x + icon.getIconWidth(),
      -                         bounds.y + icon.getIconHeight());
      -          }
      -      }
      -    finally
      -      {
      -        g.setClip(current);
      +          icon.paintIcon(getContainer(), g, r.x, r.y);
             }
         }
      -  
      +
         /**
          * Set if the image should be loaded only when needed (synchronuosly). By
          * default, the image loads asynchronuosly. If the image is not yet ready, the
      @@ -395,9 +416,20 @@ public class ImageView extends View
          */
         protected void setPropertiesFromAttributes()
         {
      -    // In the current implementation, nothing is cached yet, unless the image
      -    // itself.
      -    imageIcon = null;
      +    AttributeSet atts = getAttributes();
      +    StyleSheet ss = getStyleSheet();
      +    float emBase = ss.getEMBase(atts);
      +    float exBase = ss.getEXBase(atts);
      +    spans[X_AXIS] = (Length) atts.getAttribute(CSS.Attribute.WIDTH);
      +    if (spans[X_AXIS] != null)
      +      {
      +        spans[X_AXIS].setFontBases(emBase, exBase);
      +      }
      +    spans[Y_AXIS] = (Length) atts.getAttribute(CSS.Attribute.HEIGHT);
      +    if (spans[Y_AXIS] != null)
      +      {
      +        spans[Y_AXIS].setFontBases(emBase, exBase);
      +      }
         }
         
         /**
      @@ -433,9 +465,130 @@ public class ImageView extends View
          */
         public void setSize(float width, float height)
         {
      -    if (imageIcon == null)
      -      reloadImage(false);
      +    updateState();
      +    // TODO: Implement this when we have an alt view for the alt=... attribute.
         }  
      -  
       
      +  /**
      +   * This makes sure that the image and properties have been loaded.
      +   */
      +  private void updateState()
      +  {
      +    if (reloadImage)
      +      reloadImage();
      +    if (reloadProperties)
      +      setPropertiesFromAttributes();
      +  }
      +
      +  /**
      +   * Actually loads the image.
      +   */
      +  private void loadImage()
      +  {
      +    URL src = getImageURL();
      +    Image newImage = null;
      +    if (src != null)
      +      {
      +        // Call getImage(URL) to allow the toolkit caching of that image URL.
      +        Toolkit tk = Toolkit.getDefaultToolkit();
      +        newImage = tk.getImage(src);
      +        tk.prepareImage(newImage, -1, -1, observer);
      +        if (newImage != null && getLoadsSynchronously())
      +          {
      +            // Load image synchronously.
      +            MediaTracker tracker = new MediaTracker(getContainer());
      +            tracker.addImage(newImage, 0);
      +            try
      +              {
      +                tracker.waitForID(0);
      +              }
      +            catch (InterruptedException ex)
      +              {
      +                Thread.interrupted();
      +              }
      +            
      +          }
      +      }
      +    image = newImage;
      +  }
      +
      +  /**
      +   * Updates the size parameters of the image.
      +   */
      +  private void updateSize()
      +  {
      +    int newW = 0;
      +    int newH = 0;
      +    Image newIm = getImage();
      +    if (newIm != null)
      +      {
      +        AttributeSet atts = getAttributes();
      +        // Fetch width.
      +        Length l = spans[X_AXIS];
      +        if (l != null)
      +          {
      +            newW = (int) l.getValue();
      +            haveWidth = true;
      +          }
      +        else
      +          {
      +            newW = newIm.getWidth(observer);
      +          }
      +        // Fetch height.
      +        l = spans[Y_AXIS];
      +        if (l != null)
      +          {
      +            newH = (int) l.getValue();
      +            haveHeight = true;
      +          }
      +        else
      +          {
      +            newW = newIm.getWidth(observer);
      +          }
      +        // Go and trigger loading.
      +        Toolkit tk = Toolkit.getDefaultToolkit();
      +        if (haveWidth || haveHeight)
      +          tk.prepareImage(newIm, width, height, observer);
      +        else
      +          tk.prepareImage(newIm, -1, -1, observer);
      +      }
      +  }
      +
      +  /**
      +   * Calls preferenceChanged from the event dispatch thread and within
      +   * a read lock to protect us from threading issues.
      +   *
      +   * @param v the view
      +   * @param width true when the width changed
      +   * @param height true when the height changed
      +   */
      +  void safePreferenceChanged(final View v, final boolean width,
      +                             final boolean height)
      +  {
      +    if (SwingUtilities.isEventDispatchThread())
      +      {
      +        Document doc = getDocument();
      +        if (doc instanceof AbstractDocument)
      +          ((AbstractDocument) doc).readLock();
      +        try
      +          {
      +            preferenceChanged(v, width, height);
      +          }
      +        finally
      +          {
      +            if (doc instanceof AbstractDocument)
      +              ((AbstractDocument) doc).readUnlock();
      +          }
      +      }
      +    else
      +      {
      +        SwingUtilities.invokeLater(new Runnable()
      +        {
      +          public void run()
      +          {
      +            safePreferenceChanged(v, width, height);
      +          }
      +        });
      +      }
      +  }
       }
      diff --git a/libjava/classpath/javax/swing/text/html/InlineView.java b/libjava/classpath/javax/swing/text/html/InlineView.java
      index 77ec86e8263..58edc738526 100644
      --- a/libjava/classpath/javax/swing/text/html/InlineView.java
      +++ b/libjava/classpath/javax/swing/text/html/InlineView.java
      @@ -38,13 +38,17 @@ exception statement from your version. */
       
       package javax.swing.text.html;
       
      +import java.awt.FontMetrics;
       import java.awt.Shape;
      +import java.text.BreakIterator;
       
       import javax.swing.event.DocumentEvent;
       import javax.swing.text.AttributeSet;
      +import javax.swing.text.BadLocationException;
       import javax.swing.text.Document;
       import javax.swing.text.Element;
       import javax.swing.text.LabelView;
      +import javax.swing.text.Segment;
       import javax.swing.text.View;
       import javax.swing.text.ViewFactory;
       
      @@ -60,6 +64,23 @@ public class InlineView
       {
       
         /**
      +   * The attributes used by this view.
      +   */
      +  private AttributeSet attributes;
      +
      +  /**
      +   * The span of the longest word in this view.
      +   *
      +   * @see #getLongestWord()
      +   */
      +  private float longestWord;
      +
      +  /**
      +   * Indicates if we may wrap or not.
      +   */
      +  private boolean nowrap;
      +
      +  /**
          * Creates a new <code>InlineView</code> that renders the specified element.
          *
          * @param element the element for this view
      @@ -115,6 +136,9 @@ public class InlineView
         public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
         {
           super.changedUpdate(e, a, f);
      +    StyleSheet ss = getStyleSheet();
      +    attributes = ss.getViewAttributes(this);
      +    preferenceChanged(null, true, true);
           setPropertiesFromAttributes();
         }
       
      @@ -126,15 +150,23 @@ public class InlineView
          */
         public AttributeSet getAttributes()
         {
      -    // FIXME: Implement this.
      -    return super.getAttributes();
      +    if (attributes == null)
      +      {
      +        StyleSheet ss = getStyleSheet();
      +        attributes = ss.getViewAttributes(this);
      +      }
      +    return attributes;
         }
       
         
         public int getBreakWeight(int axis, float pos, float len)
         {
      -    // FIXME: Implement this.
      -    return super.getBreakWeight(axis, pos, len);
      +    int weight;
      +    if (nowrap)
      +      weight = BadBreakWeight;
      +    else
      +      weight = super.getBreakWeight(axis, pos, len);
      +    return weight;
         }
       
         public View breakView(int axis, int offset, float pos, float len)
      @@ -143,10 +175,48 @@ public class InlineView
           return super.breakView(axis, offset, pos, len);
         }
       
      +  /**
      +   * Loads the character style properties from the stylesheet.
      +   */
         protected void setPropertiesFromAttributes()
         {
      -    // FIXME: Implement this.
           super.setPropertiesFromAttributes();
      +    AttributeSet atts = getAttributes();
      +    Object o = atts.getAttribute(CSS.Attribute.TEXT_DECORATION);
      +
      +    // Check for underline.
      +    boolean b = false;
      +    if (o != null && o.toString().contains("underline"))
      +      b = true;
      +    setUnderline(b);
      +
      +    // Check for line-through.
      +    b = false;
      +    if (o != null && o.toString().contains("line-through"))
      +      b = true;
      +    setStrikeThrough(b);
      +
      +    // Check for vertical alignment (subscript/superscript).
      +    o = atts.getAttribute(CSS.Attribute.VERTICAL_ALIGN);
      +
      +    // Subscript.
      +    b = false;
      +    if (o != null && o.toString().contains("sub"))
      +      b = true;
      +    setSubscript(b);
      +
      +    // Superscript.
      +    b = false;
      +    if (o != null && o.toString().contains("sup"))
      +      b = true;
      +    setSuperscript(b);
      +
      +    // Fetch nowrap setting.
      +    o = atts.getAttribute(CSS.Attribute.WHITE_SPACE);
      +    if (o != null && o.equals("nowrap"))
      +      nowrap = true;
      +    else
      +      nowrap = false;
         }
       
         /**
      @@ -163,4 +233,75 @@ public class InlineView
             styleSheet = ((HTMLDocument) doc).getStyleSheet();
           return styleSheet;
         }
      +
      +  /**
      +   * Returns the minimum span for the specified axis. This returns the
      +   * width of the longest word for the X axis and the super behaviour for
      +   * the Y axis. This is a slight deviation from the reference implementation.
      +   * IMO this should improve rendering behaviour so that an InlineView never
      +   * gets smaller than the longest word in it.
      +   */
      +  public float getMinimumSpan(int axis)
      +  {
      +    float min = super.getMinimumSpan(axis);
      +    if (axis == X_AXIS)
      +      min = Math.max(getLongestWord(), min);
      +    return min;
      +  }
      +
      +  /**
      +   * Returns the span of the longest word in this view.
      +   *
      +   * @return the span of the longest word in this view
      +   */
      +  private float getLongestWord()
      +  {
      +    if (longestWord == -1)
      +      longestWord = calculateLongestWord();
      +    return longestWord;
      +  }
      +
      +  /**
      +   * Calculates the span of the longest word in this view.
      +   *
      +   * @return the span of the longest word in this view
      +   */
      +  private float calculateLongestWord()
      +  {
      +    float span = 0;
      +    try
      +      {
      +        Document doc = getDocument();
      +        int p0 = getStartOffset();
      +        int p1 = getEndOffset();
      +        Segment s = new Segment();
      +        doc.getText(p0, p1 - p0, s);
      +        BreakIterator iter = BreakIterator.getWordInstance();
      +        iter.setText(s);
      +        int wordStart = p0;
      +        int wordEnd = p0;
      +        int start = iter.first();
      +        for (int end = iter.next(); end != BreakIterator.DONE;
      +             start = end, end = iter.next())
      +          {
      +            if ((end - start) > (wordEnd - wordStart))
      +              {
      +                wordStart = start;
      +                wordEnd = end;
      +              }
      +          }
      +        if (wordEnd - wordStart > 0)
      +          {
      +            FontMetrics fm = getFontMetrics();
      +            int offset = s.offset + wordStart - s.getBeginIndex();
      +            span = fm.charsWidth(s.array, offset, wordEnd - wordStart);
      +          }
      +      }
      +    catch (BadLocationException ex)
      +      {
      +        // Return 0.
      +      }
      +    return span;
      +  }
      +
       }
      diff --git a/libjava/classpath/javax/swing/text/html/ListView.java b/libjava/classpath/javax/swing/text/html/ListView.java
      index c07d3598c92..3e809bbd209 100644
      --- a/libjava/classpath/javax/swing/text/html/ListView.java
      +++ b/libjava/classpath/javax/swing/text/html/ListView.java
      @@ -94,9 +94,6 @@ public class ListView
         public void paint(Graphics g, Shape allocation)
         {
           super.paint(g, allocation);
      -    // FIXME: Why is this overridden? I think that painting would be done
      -    // by the superclass and the stylesheet... Maybe find out when this
      -    // stuff is implemented properly.
         }
       
         /**
      diff --git a/libjava/classpath/javax/swing/text/html/MultiAttributeSet.java b/libjava/classpath/javax/swing/text/html/MultiAttributeSet.java
      new file mode 100644
      index 00000000000..0f1145084e1
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/MultiAttributeSet.java
      @@ -0,0 +1,213 @@
      +/* MultiAttributeSet.java -- Multiplexes between a set of AttributeSets
      +   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 javax.swing.text.html;
      +
      +import java.util.Enumeration;
      +import java.util.NoSuchElementException;
      +
      +import javax.swing.text.AttributeSet;
      +import javax.swing.text.SimpleAttributeSet;
      +
      +/**
      + * An AttributeSet impl that multiplexes between a set of other AttributeSets.
      + *
      + * @author Roman Kennke (kennke@aicas.com)
      + */
      +class MultiAttributeSet
      +  implements AttributeSet
      +{
      +
      +  /**
      +   * The Enumeration for the multiplexed names.
      +   */
      +  private class MultiNameEnumeration
      +    implements Enumeration
      +  {
      +    /**
      +     * The index of the current AttributeSet.
      +     */
      +    private int index;
      +
      +    /**
      +     * The names Enumeration of the current AttributeSet.
      +     */
      +    private Enumeration current;
      +
      +    /**
      +     * Creates a new instance.
      +     */
      +    MultiNameEnumeration()
      +    {
      +      index = 0;
      +      current = multi[0].getAttributeNames();
      +    }
      +
      +    public boolean hasMoreElements()
      +    {
      +      return current.hasMoreElements() || index < multi.length - 1;
      +    }
      +
      +    public Object nextElement()
      +    {
      +      if (! current.hasMoreElements())
      +        {
      +          if (index < multi.length - 1)
      +            {
      +              index++;
      +              current = multi[index].getAttributeNames();
      +            }
      +          else
      +            throw new NoSuchElementException();
      +        }
      +      return current.nextElement();
      +    }
      +    
      +  }
      +
      +  /**
      +   * The AttributeSets to multiplex.
      +   */
      +  AttributeSet[] multi;
      +
      +  /**
      +   * Provided for subclasses that need to initialize via {@link #init}.
      +   */
      +  MultiAttributeSet()
      +  {
      +    // Nothing to do here.
      +  }
      +
      +  /**
      +   * Creates a new instance.
      +   *
      +   * @param m the AttributeSets to multiplex
      +   */
      +  MultiAttributeSet(AttributeSet[] m)
      +  {
      +    init(m);
      +  }
      +
      +  /**
      +   * Provided for subclasses to initialize the attribute set.
      +   *
      +   * @param m the attributes to multiplex
      +   */
      +  void init(AttributeSet[] m)
      +  {
      +    multi = m;
      +  }
      +
      +  public boolean containsAttribute(Object name, Object value)
      +  {
      +    boolean ret = false;
      +    for (int i = 0; i < multi.length && ret == false; i++)
      +      {
      +        if (multi[i].containsAttribute(name, value))
      +          ret = true;
      +      }
      +    return ret;
      +  }
      +
      +  public boolean containsAttributes(AttributeSet attributes)
      +  {
      +    boolean ret = true;
      +    Enumeration e = attributes.getAttributeNames();
      +    while (ret && e.hasMoreElements())
      +      {
      +        Object key = e.nextElement();
      +        ret = attributes.getAttribute(key).equals(getAttribute(key));
      +      }
      +    return ret;
      +  }
      +
      +  public AttributeSet copyAttributes()
      +  {
      +    SimpleAttributeSet copy = new SimpleAttributeSet();
      +    for (int i = 0; i < multi.length; i++)
      +      {
      +        copy.addAttributes(multi[i]);
      +      }
      +    return copy;
      +  }
      +
      +  public Object getAttribute(Object key)
      +  {
      +    Object ret = null;
      +    for (int i = 0; i < multi.length && ret == null; i++)
      +      {
      +        ret = multi[i].getAttribute(key);
      +      }
      +    return ret;
      +  }
      +
      +  public int getAttributeCount()
      +  {
      +    int n = 0;
      +    for (int i = 0; i < multi.length; i++)
      +      {
      +        n += multi[i].getAttributeCount();
      +      }
      +    return n;
      +  }
      +
      +  public Enumeration getAttributeNames()
      +  {
      +    return new MultiNameEnumeration();
      +  }
      +
      +  public AttributeSet getResolveParent()
      +  {
      +    return null;
      +  }
      +
      +  public boolean isDefined(Object attrName)
      +  {
      +    boolean ret = false;
      +    for (int i = 0; i < multi.length && ! ret; i++)
      +      ret = multi[i].isDefined(attrName);
      +    return ret;
      +  }
      +
      +  public boolean isEqual(AttributeSet attr)
      +  {
      +    return getAttributeCount() == attr.getAttributeCount()
      +           && containsAttributes(attr);
      +  }
      +
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/MultiStyle.java b/libjava/classpath/javax/swing/text/html/MultiStyle.java
      new file mode 100644
      index 00000000000..3937bff75a9
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/MultiStyle.java
      @@ -0,0 +1,136 @@
      +/* MultiStyle.java -- Multiplexes between several Styles
      +   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 javax.swing.text.html;
      +
      +import java.util.Enumeration;
      +
      +import javax.swing.event.ChangeListener;
      +import javax.swing.text.AttributeSet;
      +import javax.swing.text.SimpleAttributeSet;
      +import javax.swing.text.Style;
      +
      +/**
      + * A Style implementation that is able to multiplex between several other
      + * Styles. This is used for CSS style resolving.
      + * 
      + * @author Roman Kennke (kennke@aicas.com)
      + */
      +public class MultiStyle
      +  extends MultiAttributeSet
      +  implements Style
      +{
      +
      +  // FIXME: Fix the implementation to also return attributes that
      +  // are added to this style, etc. However, this is not really needed
      +  // now for CSS, but would be nice for correctness.
      +
      +  /**
      +   * The name of the style.
      +   */
      +  private String name;
      +
      +  /**
      +   * The attributes added to this style.
      +   */
      +  private SimpleAttributeSet attributes;
      +
      +  /**
      +   * Creates a new instance.
      +   *
      +   * @param n the name
      +   * @param m the styles to multiplex
      +   */
      +  public MultiStyle(String n, AttributeSet[] m)
      +  {
      +    super(m);
      +    name = n;
      +    attributes = new SimpleAttributeSet();
      +  }
      +
      +  /**
      +   * Returns the name of the style.
      +   *
      +   * @return the name of the style
      +   */
      +  public String getName()
      +  {
      +    return name;
      +  }
      +
      +  public void addChangeListener(ChangeListener listener)
      +  {
      +    // TODO: Implement.
      +  }
      +
      +  public void removeChangeListener(ChangeListener listener)
      +  {
      +    // TODO: Implement.
      +  }
      +
      +  public void addAttribute(Object name, Object value)
      +  {
      +    attributes.addAttribute(name, value);
      +  }
      +
      +  public void addAttributes(AttributeSet atts)
      +  {
      +    attributes.addAttributes(atts);
      +  }
      +
      +  public void removeAttribute(Object name)
      +  {
      +    attributes.removeAttribute(name);
      +  }
      +
      +  public void removeAttributes(Enumeration names)
      +  {
      +    attributes.removeAttribute(names);
      +  }
      +
      +  public void removeAttributes(AttributeSet atts)
      +  {
      +    attributes.removeAttribute(atts);
      +  }
      +
      +  public void setResolveParent(AttributeSet parent)
      +  {
      +    // TODO: Implement.
      +  }
      +
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/Option.java b/libjava/classpath/javax/swing/text/html/Option.java
      index 1def51b2f59..18d5c2bd86f 100644
      --- a/libjava/classpath/javax/swing/text/html/Option.java
      +++ b/libjava/classpath/javax/swing/text/html/Option.java
      @@ -72,10 +72,10 @@ public class Option
          */
         public Option(AttributeSet attr)
         {
      -    attributes = attr;
      +    // Protect the attribute set.
      +    attributes = attr.copyAttributes();
           label = null;
      -    selected = false;
      -    // FIXME: Probably initialize something using the attributes.
      +    selected = attr.getAttribute(HTML.Attribute.SELECTED) != null;
         }
       
         /**
      @@ -151,7 +151,9 @@ public class Option
          */
         public String getValue()
         {
      -    // FIXME: Return some attribute here if specified.
      -    return label;
      +    String value = (String) attributes.getAttribute(HTML.Attribute.VALUE);
      +    if (value == null)
      +      value = label;
      +    return value;
         }
       }
      diff --git a/libjava/classpath/javax/swing/text/html/ParagraphView.java b/libjava/classpath/javax/swing/text/html/ParagraphView.java
      index 2339f4e661d..d149627ff1c 100644
      --- a/libjava/classpath/javax/swing/text/html/ParagraphView.java
      +++ b/libjava/classpath/javax/swing/text/html/ParagraphView.java
      @@ -38,13 +38,17 @@ exception statement from your version. */
       
       package javax.swing.text.html;
       
      +import gnu.javax.swing.text.html.css.Length;
      +
       import java.awt.Graphics;
      +import java.awt.Rectangle;
       import java.awt.Shape;
       
       import javax.swing.SizeRequirements;
       import javax.swing.text.AttributeSet;
       import javax.swing.text.Document;
       import javax.swing.text.Element;
      +import javax.swing.text.StyleConstants;
       import javax.swing.text.View;
       
       /**
      @@ -55,10 +59,30 @@ import javax.swing.text.View;
        * @author Roman Kennke (kennke@aicas.com)
        */
       public class ParagraphView
      -    extends javax.swing.text.ParagraphView
      +  extends javax.swing.text.ParagraphView
       {
       
         /**
      +   * The attributes used by this view.
      +   */
      +  private AttributeSet attributes;
      +
      +  /**
      +   * The stylesheet's box painter.
      +   */
      +  private StyleSheet.BoxPainter painter;
      +
      +  /**
      +   * The width as specified in the stylesheet or null if not specified.
      +   */
      +  private Length cssWidth;
      +
      +  /**
      +   * The height as specified in the stylesheet or null if not specified.
      +   */
      +  private Length cssHeight;
      +
      +  /**
          * Creates a new ParagraphView for the specified element.
          *
          * @param element the element
      @@ -88,8 +112,11 @@ public class ParagraphView
          */
         public AttributeSet getAttributes()
         {
      -    // FIXME: Implement this multiplexing thing.
      -    return super.getAttributes();
      +    if (attributes == null)
      +      {
      +        attributes = getStyleSheet().getViewAttributes(this);
      +      }
      +    return attributes;
         }
       
         /**
      @@ -98,7 +125,44 @@ public class ParagraphView
          */
         protected void setPropertiesFromAttributes()
         {
      -    // FIXME: Implement this.
      +    super.setPropertiesFromAttributes();
      +
      +    // Fetch CSS attributes.
      +    attributes = getAttributes();
      +    if (attributes != null)
      +      {
      +        super.setPropertiesFromAttributes();
      +        Object o = attributes.getAttribute(CSS.Attribute.TEXT_ALIGN);
      +        if (o != null)
      +          {
      +            String align = o.toString();
      +            if (align.equals("left"))
      +              setJustification(StyleConstants.ALIGN_LEFT);
      +            else if (align.equals("right"))
      +              setJustification(StyleConstants.ALIGN_RIGHT);
      +            else if (align.equals("center"))
      +              setJustification(StyleConstants.ALIGN_CENTER);
      +            else if (align.equals("justify"))
      +              setJustification(StyleConstants.ALIGN_JUSTIFIED);
      +          }
      +
      +        // Fetch StyleSheet's box painter.
      +        painter = getStyleSheet().getBoxPainter(attributes);
      +        setInsets((short) painter.getInset(TOP, this),
      +                  (short) painter.getInset(LEFT, this),
      +                  (short) painter.getInset(BOTTOM, this),
      +                  (short) painter.getInset(RIGHT, this));
      +
      +        StyleSheet ss = getStyleSheet();
      +        float emBase = ss.getEMBase(attributes);
      +        float exBase = ss.getEXBase(attributes);
      +        cssWidth = (Length) attributes.getAttribute(CSS.Attribute.WIDTH);
      +        if (cssWidth != null)
      +          cssWidth.setFontBases(emBase, exBase);
      +        cssHeight = (Length) attributes.getAttribute(CSS.Attribute.WIDTH);
      +        if (cssHeight != null)
      +          cssHeight.setFontBases(emBase, exBase);
      +      }
         }
       
         /**
      @@ -129,8 +193,52 @@ public class ParagraphView
         protected SizeRequirements calculateMinorAxisRequirements(int axis,
                                                                   SizeRequirements r)
         {
      -    // FIXME: Implement the above specified behaviour.
      -    return super.calculateMinorAxisRequirements(axis, r);
      +    r = super.calculateMinorAxisRequirements(axis, r);
      +    if (! setCSSSpan(r, axis))
      +      {
      +        int margin = axis == X_AXIS ? getLeftInset() + getRightInset()
      +                                    : getTopInset() + getBottomInset();
      +        r.minimum -= margin;
      +        r.preferred -= margin;
      +        r.maximum -= margin;
      +      }
      +    return r;
      +  }
      +
      +  /**
      +   * Sets the span on the SizeRequirements object according to the
      +   * according CSS span value, when it is set.
      +   * 
      +   * @param r the size requirements
      +   * @param axis the axis
      +   *
      +   * @return <code>true</code> when the CSS span has been set,
      +   *         <code>false</code> otherwise
      +   */
      +  private boolean setCSSSpan(SizeRequirements r, int axis)
      +  {
      +    boolean ret = false;
      +    if (axis == X_AXIS)
      +      {
      +        if (cssWidth != null && ! cssWidth.isPercentage())
      +          {
      +            r.minimum = (int) cssWidth.getValue();
      +            r.preferred = (int) cssWidth.getValue();
      +            r.maximum = (int) cssWidth.getValue();
      +            ret = true;
      +          }
      +      }
      +    else
      +      {
      +        if (cssHeight != null && ! cssWidth.isPercentage())
      +          {
      +            r.minimum = (int) cssHeight.getValue();
      +            r.preferred = (int) cssHeight.getValue();
      +            r.maximum = (int) cssHeight.getValue();
      +            ret = true;
      +          }
      +      }
      +    return ret;
         }
       
         /**
      @@ -147,15 +255,20 @@ public class ParagraphView
         }
       
         /**
      -   * Paints this view. This delegates to the superclass after the coordinates
      -   * have been updated for tab calculations.
      +   * Paints this view. This paints the box using the stylesheet's
      +   * box painter for this view and delegates to the super class paint()
      +   * afterwards.
          *
          * @param g the graphics object
          * @param a the current allocation of this view
          */
         public void paint(Graphics g, Shape a)
         {
      -    // FIXME: Implement the above specified behaviour.
      +    if (a != null)
      +      {
      +        Rectangle r = a instanceof Rectangle ? (Rectangle) a : a.getBounds();
      +        painter.paint(g, r.x, r.y, r.width, r.height, this);
      +      }
           super.paint(g, a);
         }
       
      diff --git a/libjava/classpath/javax/swing/text/html/ResetableModel.java b/libjava/classpath/javax/swing/text/html/ResetableModel.java
      new file mode 100644
      index 00000000000..17f65b97d13
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/ResetableModel.java
      @@ -0,0 +1,50 @@
      +/* ResetableModel.java -- Form models that can be resetted
      +   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 javax.swing.text.html;
      +
      +/**
      + * Form models that can be resetted implement this.
      + */
      +interface ResetableModel
      +{
      +  /**
      +   * Resets the model.
      +   */
      +  void reset();
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/ResetablePlainDocument.java b/libjava/classpath/javax/swing/text/html/ResetablePlainDocument.java
      new file mode 100644
      index 00000000000..6177f9b86cf
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/ResetablePlainDocument.java
      @@ -0,0 +1,82 @@
      +/* ResetablePlainDocument.java -- A plain document for use in the HTML renderer
      +   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 javax.swing.text.html;
      +
      +import javax.swing.text.BadLocationException;
      +import javax.swing.text.PlainDocument;
      +
      +/**
      + * A PlainDocument that can be resetted.
      + */
      +class ResetablePlainDocument
      +  extends PlainDocument
      +  implements ResetableModel
      +{
      +  /**
      +   * The initial text.
      +   */
      +  private String initial;
      +
      +  /**
      +   * Stores the initial text.
      +   *
      +   * @param text the initial text
      +   */
      +  void setInitialText(String text)
      +  {
      +    initial = text;
      +  }
      +
      +  /**
      +   * Resets the model.
      +   */
      +  public void reset()
      +  {
      +    try
      +      {
      +        replace(0, getLength(), initial, null);
      +      }
      +    catch (BadLocationException ex)
      +      {
      +        // Shouldn't happen.
      +        assert false;
      +      }
      +  }
      +
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java b/libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java
      new file mode 100644
      index 00000000000..619c24e477c
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java
      @@ -0,0 +1,71 @@
      +/* ResetableToggleButtonModel.java -- A toggle button model with reset support
      +   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 javax.swing.text.html;
      +
      +import javax.swing.ButtonGroup;
      +import javax.swing.JToggleButton.ToggleButtonModel;
      +
      +class ResetableToggleButtonModel
      +  extends ToggleButtonModel
      +  implements ResetableModel
      +{
      +
      +  /**
      +   * The initial state.
      +   */
      +  private boolean initial;
      +
      +  /**
      +   * Sets the initial selection value.
      +   *
      +   * @param state the initial value
      +   */
      +  public void setInitial(boolean state)
      +  {
      +    initial = state;
      +  }
      +
      +  /**
      +   * Resets the model.
      +   */
      +  public void reset()
      +  {
      +    setSelected(initial);
      +  }
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/SelectComboBoxModel.java b/libjava/classpath/javax/swing/text/html/SelectComboBoxModel.java
      new file mode 100644
      index 00000000000..999746413c8
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/SelectComboBoxModel.java
      @@ -0,0 +1,84 @@
      +/* SelectComboBoxModel.java -- A special ComboBoxModel for use in HTML renderer
      +   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 javax.swing.text.html;
      +
      +import javax.swing.DefaultComboBoxModel;
      +
      +/**
      + * A special ComboBoxModel that supports storing the initial value so that
      + * the combobox can be resetted later.
      + */
      +class SelectComboBoxModel
      +  extends DefaultComboBoxModel
      +  implements ResetableModel
      +{
      +
      +  /**
      +   * The initial selection.
      +   */
      +  private Option initial;
      +
      +  /**
      +   * Sets the initial selection.
      +   *
      +   * @param option the initial selection
      +   */
      +  void setInitialSelection(Option option)
      +  {
      +    initial = option;
      +  }
      +
      +  /**
      +   * Returns the initial selection.
      +   *
      +   * @return the initial selection
      +   */
      +  Option getInitialSelection()
      +  {
      +    return initial;
      +  }
      +
      +  /**
      +   * Resets the model.
      +   */
      +  public void reset()
      +  {
      +    setSelectedItem(initial);
      +  }
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/SelectListModel.java b/libjava/classpath/javax/swing/text/html/SelectListModel.java
      new file mode 100644
      index 00000000000..23bfaa11b86
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/SelectListModel.java
      @@ -0,0 +1,106 @@
      +/* OptionListModel.java -- A special ListModel for use in the HTML renderer
      +   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 javax.swing.text.html;
      +
      +import java.util.BitSet;
      +
      +import javax.swing.DefaultListModel;
      +import javax.swing.DefaultListSelectionModel;
      +import javax.swing.ListSelectionModel;
      +
      +/**
      + * A special list model that encapsulates its selection model and supports
      + * storing of the initial value so that it can be resetted.
      + */
      +class SelectListModel
      +  extends DefaultListModel
      +  implements ResetableModel
      +{
      +  /**
      +   * The selection model.
      +   */
      +  private DefaultListSelectionModel selectionModel;
      +
      +  /**
      +   * The initial selection.
      +   */
      +  private BitSet initialSelection;
      +
      +  /**
      +   * Creates a new SelectListModel.
      +   */
      +  SelectListModel()
      +  {
      +    selectionModel = new DefaultListSelectionModel();
      +    initialSelection = new BitSet();
      +  }
      +
      +  /**
      +   * Sets the initial selection.
      +   *
      +   * @param init the initial selection
      +   */
      +  void addInitialSelection(int init)
      +  {
      +    initialSelection.set(init);
      +  }
      +
      +  /**
      +   * Resets the model.
      +   */
      +  public void reset()
      +  {
      +    selectionModel.clearSelection();
      +    for (int i = initialSelection.size(); i >= 0; i--)
      +      {
      +        if (initialSelection.get(i))
      +          selectionModel.addSelectionInterval(i, i);
      +      }
      +  }
      +
      +  /**
      +   * Returns the associated selection model.
      +   *
      +   * @return the associated selection model
      +   */
      +  ListSelectionModel getSelectionModel()
      +  {
      +    return selectionModel;
      +  }
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/StyleSheet.java b/libjava/classpath/javax/swing/text/html/StyleSheet.java
      index d92abde7825..01f19fd7bdd 100644
      --- a/libjava/classpath/javax/swing/text/html/StyleSheet.java
      +++ b/libjava/classpath/javax/swing/text/html/StyleSheet.java
      @@ -38,28 +38,47 @@ exception statement from your version. */
       
       package javax.swing.text.html;
       
      -import gnu.javax.swing.text.html.CharacterAttributeTranslator;
      +import gnu.javax.swing.text.html.css.BorderWidth;
      +import gnu.javax.swing.text.html.css.CSSColor;
      +import gnu.javax.swing.text.html.css.CSSParser;
      +import gnu.javax.swing.text.html.css.CSSParserCallback;
      +import gnu.javax.swing.text.html.css.FontSize;
      +import gnu.javax.swing.text.html.css.FontStyle;
      +import gnu.javax.swing.text.html.css.FontWeight;
      +import gnu.javax.swing.text.html.css.Length;
      +import gnu.javax.swing.text.html.css.Selector;
       
       import java.awt.Color;
       import java.awt.Font;
       import java.awt.Graphics;
      -
      +import java.awt.Rectangle;
      +import java.awt.Shape;
      +import java.awt.font.FontRenderContext;
      +import java.awt.geom.Rectangle2D;
      +import java.io.BufferedReader;
       import java.io.IOException;
      +import java.io.InputStream;
      +import java.io.InputStreamReader;
       import java.io.Reader;
       import java.io.Serializable;
       import java.io.StringReader;
      -
      -import java.net.MalformedURLException;
       import java.net.URL;
      -
      +import java.util.ArrayList;
      +import java.util.Collections;
       import java.util.Enumeration;
      -import java.util.Vector;
      +import java.util.HashMap;
      +import java.util.Iterator;
      +import java.util.List;
      +import java.util.Map;
       
      +import javax.swing.border.Border;
      +import javax.swing.event.ChangeListener;
       import javax.swing.text.AttributeSet;
       import javax.swing.text.Element;
       import javax.swing.text.MutableAttributeSet;
       import javax.swing.text.SimpleAttributeSet;
       import javax.swing.text.Style;
      +import javax.swing.text.StyleConstants;
       import javax.swing.text.StyleContext;
       import javax.swing.text.View;
       
      @@ -79,21 +98,168 @@ import javax.swing.text.View;
        *  
        *  The rules are stored as named styles, and other information is stored to 
        *  translate the context of an element to a rule.
      - * 
      + *
        * @author Lillian Angel (langel@redhat.com)
        */
       public class StyleSheet extends StyleContext
       {
       
      +  /**
      +   * Parses CSS stylesheets using the parser in gnu/javax/swing/html/css.
      +   *
      +   * This is package private to avoid accessor methods.
      +   */
      +  class CSSStyleSheetParserCallback
      +    implements CSSParserCallback
      +  {
      +    /**
      +     * The current styles.
      +     */
      +    private CSSStyle[] styles;
      +
      +    /**
      +     * The precedence of the stylesheet to be parsed.
      +     */
      +    private int precedence;
      +
      +    /**
      +     * Creates a new CSS parser. This parser parses a CSS stylesheet with
      +     * the specified precedence.
      +     *
      +     * @param prec the precedence, according to the constants defined in
      +     *        CSSStyle
      +     */
      +    CSSStyleSheetParserCallback(int prec)
      +    {
      +      precedence = prec;
      +    }
      +
      +    /**
      +     * Called at the beginning of a statement.
      +     *
      +     * @param sel the selector
      +     */
      +    public void startStatement(Selector[] sel)
      +    {
      +      styles = new CSSStyle[sel.length];
      +      for (int i = 0; i < sel.length; i++)
      +        styles[i] = new CSSStyle(precedence, sel[i]);
      +    }
      +
      +    /**
      +     * Called at the end of a statement.
      +     */
      +    public void endStatement()
      +    {
      +      for (int i = 0; i < styles.length; i++)
      +        css.add(styles[i]);
      +      styles = null;
      +    }
      +
      +    /**
      +     * Called when a declaration is parsed.
      +     *
      +     * @param property the property
      +     * @param value the value
      +     */
      +    public void declaration(String property, String value)
      +    {
      +      CSS.Attribute cssAtt = CSS.getAttribute(property);
      +      Object val = CSS.getValue(cssAtt, value);
      +      for (int i = 0; i < styles.length; i++)
      +        {
      +          CSSStyle style = styles[i];
      +          CSS.addInternal(style, cssAtt, value);
      +          if (cssAtt != null)
      +            style.addAttribute(cssAtt, val);
      +        }
      +    }
      +
      +  }
      +
      +  /**
      +   * Represents a style that is defined by a CSS rule.
      +   */
      +  private class CSSStyle
      +    extends SimpleAttributeSet
      +    implements Style, Comparable
      +  {
      +
      +    static final int PREC_UA = 0;
      +    static final int PREC_NORM = 100000;
      +    static final int PREC_AUTHOR_NORMAL = 200000;
      +    static final int PREC_AUTHOR_IMPORTANT = 300000;
      +    static final int PREC_USER_IMPORTANT = 400000;
      +
      +    /**
      +     * The priority of this style when matching CSS selectors.
      +     */
      +    private int precedence;
      +
      +    /**
      +     * The selector for this rule.
      +     *
      +     * This is package private to avoid accessor methods.
      +     */
      +    Selector selector;
      +
      +    CSSStyle(int prec, Selector sel)
      +    {
      +      precedence = prec;
      +      selector = sel;
      +    }
      +
      +    public String getName()
      +    {
      +      // TODO: Implement this for correctness.
      +      return null;
      +    }
      +
      +    public void addChangeListener(ChangeListener listener)
      +    {
      +      // TODO: Implement this for correctness.
      +    }
      +
      +    public void removeChangeListener(ChangeListener listener)
      +    {
      +      // TODO: Implement this for correctness.
      +    }
      +
      +    /**
      +     * Sorts the rule according to the style's precedence and the
      +     * selectors specificity.
      +     */
      +    public int compareTo(Object o)
      +    {
      +      CSSStyle other = (CSSStyle) o;
      +      return other.precedence + other.selector.getSpecificity()
      +             - precedence - selector.getSpecificity();
      +    }
      +    
      +  }
      +
         /** The base URL */
         URL base;
         
         /** Base font size (int) */
         int baseFontSize;
         
      -  /** The style sheets stored. */
      -  StyleSheet[] styleSheet;
      -  
      +  /**
      +   * The linked style sheets stored.
      +   */
      +  private ArrayList linked;
      +
      +  /**
      +   * Maps element names (selectors) to AttributSet (the corresponding style
      +   * information).
      +   */
      +  ArrayList css = new ArrayList();
      +
      +  /**
      +   * Maps selectors to their resolved styles.
      +   */
      +  private HashMap resolvedStyles;
      +
         /**
          * Constructs a StyleSheet.
          */
      @@ -101,6 +267,7 @@ public class StyleSheet extends StyleContext
         {
           super();
           baseFontSize = 4; // Default font size from CSS
      +    resolvedStyles = new HashMap();
         }
       
         /**
      @@ -114,10 +281,198 @@ public class StyleSheet extends StyleContext
          */
         public Style getRule(HTML.Tag t, Element e)
         {
      -    // FIXME: Not implemented.
      -    return null;
      +    // Create list of the element and all of its parents, starting
      +    // with the bottommost element.
      +    ArrayList path = new ArrayList();
      +    Element el;
      +    AttributeSet atts;
      +    for (el = e; el != null; el = el.getParentElement())
      +      path.add(el);
      +
      +    // Create fully qualified selector.
      +    StringBuilder selector = new StringBuilder();
      +    int count = path.size();
      +    // We append the actual element after this loop.
      +    for (int i = count - 1; i > 0; i--)
      +      {
      +        el = (Element) path.get(i);
      +        atts = el.getAttributes();
      +        Object name = atts.getAttribute(StyleConstants.NameAttribute);
      +        selector.append(name.toString());
      +        if (atts.isDefined(HTML.Attribute.ID))
      +          {
      +            selector.append('#');
      +            selector.append(atts.getAttribute(HTML.Attribute.ID));
      +          }
      +        if (atts.isDefined(HTML.Attribute.CLASS))
      +          {
      +            selector.append('.');
      +            selector.append(atts.getAttribute(HTML.Attribute.CLASS));
      +          }
      +        if (atts.isDefined(HTML.Attribute.DYNAMIC_CLASS))
      +          {
      +            selector.append(':');
      +            selector.append(atts.getAttribute(HTML.Attribute.DYNAMIC_CLASS));
      +          }
      +        if (atts.isDefined(HTML.Attribute.PSEUDO_CLASS))
      +          {
      +            selector.append(':');
      +            selector.append(atts.getAttribute(HTML.Attribute.PSEUDO_CLASS));
      +          }
      +        selector.append(' ');
      +      }
      +    selector.append(t.toString());
      +    el = (Element) path.get(0);
      +    atts = el.getAttributes();
      +    // For leaf elements, we have to fetch the tag specific attributes.
      +    if (el.isLeaf())
      +      {
      +        Object o = atts.getAttribute(t);
      +        if (o instanceof AttributeSet)
      +          atts = (AttributeSet) o;
      +        else
      +          atts = null;
      +      }
      +    if (atts != null)
      +      {
      +        if (atts.isDefined(HTML.Attribute.ID))
      +          {
      +            selector.append('#');
      +            selector.append(atts.getAttribute(HTML.Attribute.ID));
      +          }
      +        if (atts.isDefined(HTML.Attribute.CLASS))
      +          {
      +            selector.append('.');
      +            selector.append(atts.getAttribute(HTML.Attribute.CLASS));
      +          }
      +        if (atts.isDefined(HTML.Attribute.DYNAMIC_CLASS))
      +          {
      +            selector.append(':');
      +            selector.append(atts.getAttribute(HTML.Attribute.DYNAMIC_CLASS));
      +          }
      +        if (atts.isDefined(HTML.Attribute.PSEUDO_CLASS))
      +          {
      +            selector.append(':');
      +            selector.append(atts.getAttribute(HTML.Attribute.PSEUDO_CLASS));
      +          }
      +      }
      +    return getResolvedStyle(selector.toString(), path, t);
         }
      -  
      +
      +  /**
      +   * Fetches a resolved style. If there is no resolved style for the
      +   * specified selector, the resolve the style using
      +   * {@link #resolveStyle(String, List, HTML.Tag)}.
      +   * 
      +   * @param selector the selector for which to resolve the style
      +   * @param path the Element path, used in the resolving algorithm
      +   * @param tag the tag for which to resolve
      +   *
      +   * @return the resolved style
      +   */
      +  private Style getResolvedStyle(String selector, List path, HTML.Tag tag)
      +  {
      +    Style style = (Style) resolvedStyles.get(selector);
      +    if (style == null)
      +      style = resolveStyle(selector, path, tag);
      +    return style;
      +  }
      +
      +  /**
      +   * Resolves a style. This creates arrays that hold the tag names,
      +   * class and id attributes and delegates the work to
      +   * {@link #resolveStyle(String, String[], Map[])}.
      +   *
      +   * @param selector the selector
      +   * @param path the Element path
      +   * @param tag the tag
      +   *
      +   * @return the resolved style
      +   */
      +  private Style resolveStyle(String selector, List path, HTML.Tag tag)
      +  {
      +    int count = path.size();
      +    String[] tags = new String[count];
      +    Map[] attributes = new Map[count];
      +    for (int i = 0; i < count; i++)
      +      {
      +        Element el = (Element) path.get(i);
      +        AttributeSet atts = el.getAttributes();
      +        if (i == 0 && el.isLeaf())
      +          {
      +            Object o = atts.getAttribute(tag);
      +            if (o instanceof AttributeSet)
      +              atts = (AttributeSet) o;
      +            else
      +              atts = null;
      +          }
      +        if (atts != null)
      +          {
      +            HTML.Tag t =
      +              (HTML.Tag) atts.getAttribute(StyleConstants.NameAttribute);
      +            if (t != null)
      +              tags[i] = t.toString();
      +            else
      +              tags[i] = null;
      +            attributes[i] = attributeSetToMap(atts);
      +          }
      +        else
      +          {
      +            tags[i] = null;
      +            attributes[i] = null;
      +          }
      +      }
      +    tags[0] = tag.toString();
      +    return resolveStyle(selector, tags, attributes);
      +  }
      +
      +  /**
      +   * Performs style resolving.
      +   *
      +   * @param selector the selector
      +   * @param tags the tags
      +   * @param attributes the attributes of the tags
      +   *
      +   * @return the resolved style
      +   */
      +  private Style resolveStyle(String selector, String[] tags, Map[] attributes)
      +  {
      +    // FIXME: This style resolver is not correct. But it works good enough for
      +    // the default.css.
      +    int count = tags.length;
      +    ArrayList styles = new ArrayList();
      +    for (Iterator i = css.iterator(); i.hasNext();)
      +      {
      +        CSSStyle style = (CSSStyle) i.next();
      +        if (style.selector.matches(tags, attributes))
      +          styles.add(style);
      +      }
      +
      +    // Add styles from linked stylesheets.
      +    if (linked != null)
      +      {
      +        for (int i = linked.size() - 1; i >= 0; i--)
      +          {
      +            StyleSheet ss = (StyleSheet) linked.get(i);
      +            for (int j = ss.css.size() - 1; j >= 0; j--)
      +              {
      +                CSSStyle style = (CSSStyle) ss.css.get(j);
      +                if (style.selector.matches(tags, attributes))
      +                  styles.add(style);
      +              }
      +          }
      +      }
      +
      +    // Sort selectors.
      +    Collections.sort(styles);
      +    Style[] styleArray = new Style[styles.size()];
      +    styleArray = (Style[]) styles.toArray(styleArray);
      +    Style resolved = new MultiStyle(selector,
      +                                    (Style[]) styles.toArray(styleArray));
      +    resolvedStyles.put(selector, resolved);
      +    return resolved;
      +  }
      +
         /**
          * Gets the rule that best matches the selector. selector is a space
          * separated String of element names. The attributes of the returned 
      @@ -128,27 +483,40 @@ public class StyleSheet extends StyleContext
          */
         public Style getRule(String selector)
         {
      -    // FIXME: Not implemented.
      -    return null; 
      +    CSSStyle best = null;
      +    for (Iterator i = css.iterator(); i.hasNext();)
      +      {
      +        CSSStyle style = (CSSStyle) i.next();
      +        if (style.compareTo(best) < 0)
      +          best = style;
      +      }
      +    return best;
         }
         
         /**
      -   * Adds a set if rules to the sheet. The rules are expected to be in valid
      +   * Adds a set of rules to the sheet. The rules are expected to be in valid
          * CSS format. This is called as a result of parsing a <style> tag
          * 
          * @param rule - the rule to add to the sheet
          */
         public void addRule(String rule)
         {
      -    CssParser cp = new CssParser();
      +    CSSStyleSheetParserCallback cb =
      +      new CSSStyleSheetParserCallback(CSSStyle.PREC_AUTHOR_NORMAL);
      +    // FIXME: Handle ref.
      +    StringReader in = new StringReader(rule);
      +    CSSParser parser = new CSSParser(in, cb);
           try
      -    {
      -      cp.parse(base, new StringReader(rule), false, false);
      -    }
      -    catch (IOException io)
      -    {
      -      // Do nothing here.
      -    }
      +      {
      +        parser.parse();
      +      }
      +    catch (IOException ex)
      +      {
      +        // Shouldn't happen. And if, then don't let it bork the outside code.
      +      }
      +    // Clean up resolved styles cache so that the new styles are recognized
      +    // on next stylesheet request.
      +    resolvedStyles.clear();
         }
         
         /**
      @@ -176,10 +544,14 @@ public class StyleSheet extends StyleContext
          * parameter.
          * @throws IOException - For any IO error while reading
          */
      -  public void loadRules(Reader in, URL ref) throws IOException
      +  public void loadRules(Reader in, URL ref)
      +    throws IOException
         {
      -    CssParser cp = new CssParser();
      -    cp.parse(ref, in, false, false);
      +    CSSStyleSheetParserCallback cb =
      +      new CSSStyleSheetParserCallback(CSSStyle.PREC_UA);
      +    // FIXME: Handle ref.
      +    CSSParser parser = new CSSParser(in, cb);
      +    parser.parse();
         }
         
         /**
      @@ -191,8 +563,7 @@ public class StyleSheet extends StyleContext
          */
         public AttributeSet getViewAttributes(View v)
         {
      -    // FIXME: Not implemented.
      -    return null;
      +    return new ViewAttributeSet(v, this);
         }
         
         /**
      @@ -215,11 +586,9 @@ public class StyleSheet extends StyleContext
          */
         public void addStyleSheet(StyleSheet ss)
         {
      -    if (styleSheet == null)
      -      styleSheet = new StyleSheet[] {ss};
      -    else
      -      System.arraycopy(new StyleSheet[] {ss}, 0, styleSheet, 
      -                       styleSheet.length, 1);
      +    if (linked == null)
      +      linked = new ArrayList();
      +    linked.add(ss);
         }
         
         /**
      @@ -229,31 +598,9 @@ public class StyleSheet extends StyleContext
          */
         public void removeStyleSheet(StyleSheet ss)
         {
      -    if (styleSheet.length == 1 && styleSheet[0].equals(ss))
      -      styleSheet = null;
      -    else
      +    if (linked != null)
             {
      -        for (int i = 0; i < styleSheet.length; i++)
      -          {
      -            StyleSheet curr = styleSheet[i];
      -            if (curr.equals(ss))
      -              {
      -                StyleSheet[] tmp = new StyleSheet[styleSheet.length - 1];
      -                if (i != 0 && i != (styleSheet.length - 1))
      -                  {
      -                    System.arraycopy(styleSheet, 0, tmp, 0, i);
      -                    System.arraycopy(styleSheet, i + 1, tmp, i,
      -                                     styleSheet.length - i - 1);
      -                  }
      -                else if (i == 0)
      -                  System.arraycopy(styleSheet, 1, tmp, 0, styleSheet.length - 1);
      -                else
      -                  System.arraycopy(styleSheet, 0, tmp, 0, styleSheet.length - 1);
      -                
      -                styleSheet = tmp;
      -                break;
      -              }
      -          }
      +        linked.remove(ss);
             }
         }
         
      @@ -264,18 +611,41 @@ public class StyleSheet extends StyleContext
          */
         public StyleSheet[] getStyleSheets()
         {
      -    return styleSheet;
      +    StyleSheet[] linkedSS;
      +    if (linked != null)
      +      {
      +        linkedSS = new StyleSheet[linked.size()];
      +        linkedSS = (StyleSheet[]) linked.toArray(linkedSS);
      +      }
      +    else
      +      {
      +        linkedSS = null;
      +      }
      +    return linkedSS;
         }
         
         /**
          * Imports a style sheet from the url. The rules are directly added to the
      -   * receiver.
      +   * receiver. This is usually called when a <link> tag is resolved in an
      +   * HTML document.
          * 
      -   * @param url - the URL to import the StyleSheet from.
      +   * @param url the URL to import the StyleSheet from
          */
         public void importStyleSheet(URL url)
         {
      -    // FIXME: Not implemented
      +    try
      +      {
      +        InputStream in = url.openStream();
      +        Reader r = new BufferedReader(new InputStreamReader(in));
      +        CSSStyleSheetParserCallback cb =
      +          new CSSStyleSheetParserCallback(CSSStyle.PREC_AUTHOR_NORMAL);
      +        CSSParser parser = new CSSParser(r, cb);
      +        parser.parse();
      +      }
      +    catch (IOException ex)
      +      {
      +        // We can't do anything about it I guess.
      +      }
         }
         
         /**
      @@ -310,7 +680,9 @@ public class StyleSheet extends StyleContext
         public void addCSSAttribute(MutableAttributeSet attr, CSS.Attribute key,
                                     String value)
         {
      -    attr.addAttribute(key, value);
      +    Object val = CSS.getValue(key, value);
      +    CSS.addInternal(attr, key, value);
      +    attr.addAttribute(key, val);
         }
         
         /**
      @@ -340,8 +712,90 @@ public class StyleSheet extends StyleContext
          */
         public AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
         {
      -    // FIXME: Not implemented.
      -    return null;    
      +    AttributeSet cssAttr = htmlAttrSet.copyAttributes();
      +
      +    // The HTML align attribute maps directly to the CSS text-align attribute.
      +    Object o = htmlAttrSet.getAttribute(HTML.Attribute.ALIGN);
      +    if (o != null)
      +      cssAttr = addAttribute(cssAttr, CSS.Attribute.TEXT_ALIGN, o);
      +
      +    // The HTML width attribute maps directly to CSS width.
      +    o = htmlAttrSet.getAttribute(HTML.Attribute.WIDTH);
      +    if (o != null)
      +      cssAttr = addAttribute(cssAttr, CSS.Attribute.WIDTH,
      +                             new Length(o.toString()));
      +
      +    // The HTML height attribute maps directly to CSS height.
      +    o = htmlAttrSet.getAttribute(HTML.Attribute.HEIGHT);
      +    if (o != null)
      +      cssAttr = addAttribute(cssAttr, CSS.Attribute.HEIGHT,
      +                             new Length(o.toString()));
      +
      +    o = htmlAttrSet.getAttribute(HTML.Attribute.NOWRAP);
      +    if (o != null)
      +      cssAttr = addAttribute(cssAttr, CSS.Attribute.WHITE_SPACE, "nowrap");
      +
      +    // Map cellspacing attr of tables to CSS border-spacing.
      +    o = htmlAttrSet.getAttribute(HTML.Attribute.CELLSPACING);
      +    if (o != null)
      +      cssAttr = addAttribute(cssAttr, CSS.Attribute.BORDER_SPACING,
      +                             new Length(o.toString()));
      +
      +    // For table cells and headers, fetch the cellpadding value from the
      +    // parent table and set it as CSS padding attribute.
      +    HTML.Tag tag = (HTML.Tag)
      +                   htmlAttrSet.getAttribute(StyleConstants.NameAttribute);
      +    if ((tag == HTML.Tag.TD || tag == HTML.Tag.TH)
      +        && htmlAttrSet instanceof Element)
      +      {
      +        Element el = (Element) htmlAttrSet;
      +        AttributeSet tableAttrs = el.getParentElement().getParentElement()
      +                                  .getAttributes();
      +        o = tableAttrs.getAttribute(HTML.Attribute.CELLPADDING);
      +        if (o != null)
      +          {
      +            Length l = new Length(o.toString());
      +            cssAttr = addAttribute(cssAttr, CSS.Attribute.PADDING_BOTTOM, l);
      +            cssAttr = addAttribute(cssAttr, CSS.Attribute.PADDING_LEFT, l);
      +            cssAttr = addAttribute(cssAttr, CSS.Attribute.PADDING_RIGHT, l);
      +            cssAttr = addAttribute(cssAttr, CSS.Attribute.PADDING_TOP, l);
      +          }
      +        o = tableAttrs.getAttribute(HTML.Attribute.BORDER);
      +        cssAttr = translateBorder(cssAttr, o);
      +      }
      +
      +    // Translate border attribute.
      +    o = cssAttr.getAttribute(HTML.Attribute.BORDER);
      +    cssAttr = translateBorder(cssAttr, o);
      +
      +    // TODO: Add more mappings.
      +    return cssAttr;
      +  }
      +
      +  /**
      +   * Translates a HTML border attribute to a corresponding set of CSS
      +   * attributes.
      +   *
      +   * @param cssAttr the original set of CSS attributes to add to 
      +   * @param o the value of the border attribute
      +   *
      +   * @return the new set of CSS attributes
      +   */
      +  private AttributeSet translateBorder(AttributeSet cssAttr, Object o)
      +  {
      +    if (o != null)
      +      {
      +        BorderWidth l = new BorderWidth(o.toString());
      +        if (l.getValue() > 0)
      +          {
      +            cssAttr = addAttribute(cssAttr, CSS.Attribute.BORDER_WIDTH, l);
      +            cssAttr = addAttribute(cssAttr, CSS.Attribute.BORDER_STYLE,
      +                                   "solid");
      +            cssAttr = addAttribute(cssAttr, CSS.Attribute.BORDER_COLOR,
      +                                   new CSSColor("black"));
      +          }
      +      }
      +    return cssAttr;
         }
       
         /**
      @@ -416,10 +870,10 @@ public class StyleSheet extends StyleContext
          * @param names - the attribute names
          * @return the update attribute set
          */
      -  public AttributeSet removeAttributes(AttributeSet old, Enumeration names)
      +  public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
         {
           // FIXME: Not implemented.
      -    return super.removeAttributes(old, names);        
      +    return super.removeAttributes(old, names);
         }
         
         /**
      @@ -455,9 +909,95 @@ public class StyleSheet extends StyleContext
          */
         public Font getFont(AttributeSet a)
         {
      -    return super.getFont(a);    
      +    int realSize = getFontSize(a);
      +
      +    // Decrement size for subscript and superscript.
      +    Object valign = a.getAttribute(CSS.Attribute.VERTICAL_ALIGN);
      +    if (valign != null)
      +      {
      +        String v = valign.toString();
      +        if (v.contains("sup") || v.contains("sub"))
      +          realSize -= 2;
      +      }
      +
      +    // TODO: Convert font family.
      +    String family = "SansSerif";
      +
      +    int style = Font.PLAIN;
      +    FontWeight weight = (FontWeight) a.getAttribute(CSS.Attribute.FONT_WEIGHT);
      +    if (weight != null)
      +      style |= weight.getValue();
      +    FontStyle fStyle = (FontStyle) a.getAttribute(CSS.Attribute.FONT_STYLE);
      +    if (fStyle != null)
      +      style |= fStyle.getValue();
      +    return new Font(family, style, realSize);
         }
      -  
      +
      +  /**
      +   * Determines the EM base value based on the specified attributes.
      +   *
      +   * @param atts the attibutes
      +   *
      +   * @return the EM base value
      +   */
      +  float getEMBase(AttributeSet atts)
      +  {
      +    Font font = getFont(atts);
      +    FontRenderContext ctx = new FontRenderContext(null, false, false);
      +    Rectangle2D bounds = font.getStringBounds("M", ctx);
      +    return (float) bounds.getWidth();
      +  }
      +
      +  /**
      +   * Determines the EX base value based on the specified attributes.
      +   *
      +   * @param atts the attibutes
      +   *
      +   * @return the EX base value
      +   */
      +  float getEXBase(AttributeSet atts)
      +  {
      +    Font font = getFont(atts);
      +    FontRenderContext ctx = new FontRenderContext(null, false, false);
      +    Rectangle2D bounds = font.getStringBounds("x", ctx);
      +    return (float) bounds.getHeight();
      +  }
      +
      +  /**
      +   * Resolves the fontsize for a given set of attributes.
      +   *
      +   * @param atts the attributes
      +   *
      +   * @return the resolved font size
      +   */
      +  private int getFontSize(AttributeSet atts)
      +  {
      +    int size = 12;
      +    if (atts.isDefined(CSS.Attribute.FONT_SIZE))
      +      {
      +        FontSize fs = (FontSize) atts.getAttribute(CSS.Attribute.FONT_SIZE);
      +        if (fs.isRelative())
      +          {
      +            int parSize = 12;
      +            AttributeSet resolver = atts.getResolveParent();
      +            if (resolver != null)
      +              parSize = getFontSize(resolver);
      +            size = fs.getValue(parSize); 
      +          }
      +        else
      +          {
      +            size = fs.getValue();
      +          }
      +      }
      +    else
      +      {
      +        AttributeSet resolver = atts.getResolveParent();
      +        if (resolver != null)
      +          size = getFontSize(resolver);
      +      }
      +    return size;
      +  }
      +
         /**
          * Takes a set of attributes and turns it into a foreground
          * color specification. This is used to specify things like, brigher, more hue
      @@ -468,7 +1008,11 @@ public class StyleSheet extends StyleContext
          */
         public Color getForeground(AttributeSet a)
         {
      -    return super.getForeground(a);     
      +    CSSColor c = (CSSColor) a.getAttribute(CSS.Attribute.COLOR);
      +    Color color = null;
      +    if (c != null)
      +      color = c.getValue();
      +    return color;     
         }
         
         /**
      @@ -481,7 +1025,11 @@ public class StyleSheet extends StyleContext
          */
         public Color getBackground(AttributeSet a)
         {
      -    return super.getBackground(a);     
      +    CSSColor c = (CSSColor) a.getAttribute(CSS.Attribute.BACKGROUND_COLOR);
      +    Color color = null;
      +    if (c != null)
      +      color = c.getValue();
      +    return color;     
         }
         
         /**
      @@ -492,7 +1040,7 @@ public class StyleSheet extends StyleContext
          */
         public BoxPainter getBoxPainter(AttributeSet a)
         {
      -    return new BoxPainter(a);     
      +    return new BoxPainter(a, this);     
         }
         
         /**
      @@ -503,7 +1051,7 @@ public class StyleSheet extends StyleContext
          */
         public ListPainter getListPainter(AttributeSet a)
         {
      -    return new ListPainter(a);         
      +    return new ListPainter(a, this);         
         }
         
         /**
      @@ -595,7 +1143,7 @@ public class StyleSheet extends StyleContext
          */
         public Color stringToColor(String colorName)
         {
      -    return CharacterAttributeTranslator.getColor(colorName);
      +    return CSSColor.convertValue(colorName);
         }
         
         /**
      @@ -609,22 +1157,112 @@ public class StyleSheet extends StyleContext
          */
         public static class BoxPainter extends Object implements Serializable
         {
      -    
      +
           /**
      -     * Attribute set for painter
      +     * The left inset.
            */
      -    AttributeSet as;
      -    
      +    private float leftInset;
      +
      +    /**
      +     * The right inset.
      +     */
      +    private float rightInset;
      +
      +    /**
      +     * The top inset.
      +     */
      +    private float topInset;
      +
      +    /**
      +     * The bottom inset.
      +     */
      +    private float bottomInset;
      +
      +    /**
      +     * The border of the box.
      +     */
      +    private Border border;
      +
      +    private float leftPadding;
      +    private float rightPadding;
      +    private float topPadding;
      +    private float bottomPadding;
      +
      +    /**
      +     * The background color.
      +     */
      +    private Color background;
      +
           /**
            * Package-private constructor.
            * 
            * @param as - AttributeSet for painter
            */
      -    BoxPainter(AttributeSet as)
      +    BoxPainter(AttributeSet as, StyleSheet ss)
           {
      -      this.as = as;
      +      float emBase = ss.getEMBase(as);
      +      float exBase = ss.getEXBase(as);
      +      // Fetch margins.
      +      Length l = (Length) as.getAttribute(CSS.Attribute.MARGIN_LEFT);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          leftInset = l.getValue();
      +        }
      +      l = (Length) as.getAttribute(CSS.Attribute.MARGIN_RIGHT);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          rightInset = l.getValue();
      +        }
      +      l = (Length) as.getAttribute(CSS.Attribute.MARGIN_TOP);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          topInset = l.getValue();
      +        }
      +      l = (Length) as.getAttribute(CSS.Attribute.MARGIN_BOTTOM);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          bottomInset = l.getValue();
      +        }
      +
      +      // Fetch padding.
      +      l = (Length) as.getAttribute(CSS.Attribute.PADDING_LEFT);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          leftPadding = l.getValue();
      +        }
      +      l = (Length) as.getAttribute(CSS.Attribute.PADDING_RIGHT);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          rightPadding = l.getValue();
      +        }
      +      l = (Length) as.getAttribute(CSS.Attribute.PADDING_TOP);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          topPadding = l.getValue();
      +        }
      +      l = (Length) as.getAttribute(CSS.Attribute.PADDING_BOTTOM);
      +      if (l != null)
      +        {
      +          l.setFontBases(emBase, exBase);
      +          bottomPadding = l.getValue();
      +        }
      +
      +      // Determine border.
      +      border = new CSSBorder(as, ss);
      +
      +      // Determine background.
      +      background = ss.getBackground(as);
      +
           }
           
      +    
           /**
            * Gets the inset needed on a given side to account for the margin, border
            * and padding.
      @@ -638,8 +1276,37 @@ public class StyleSheet extends StyleContext
            */
           public float getInset(int size, View v)
           {
      -      // FIXME: Not implemented.
      -      return 0;       
      +      float inset;
      +      switch (size)
      +        {
      +        case View.TOP:
      +          inset = topInset;
      +          if (border != null)
      +            inset += border.getBorderInsets(null).top;
      +          inset += topPadding;
      +          break;
      +        case View.BOTTOM:
      +          inset = bottomInset;
      +          if (border != null)
      +            inset += border.getBorderInsets(null).bottom;
      +          inset += bottomPadding;
      +          break;
      +        case View.LEFT:
      +          inset = leftInset;
      +          if (border != null)
      +            inset += border.getBorderInsets(null).left;
      +          inset += leftPadding;
      +          break;
      +        case View.RIGHT:
      +          inset = rightInset;
      +          if (border != null)
      +            inset += border.getBorderInsets(null).right;
      +          inset += rightPadding;
      +          break;
      +        default:
      +          inset = 0.0F;
      +      }
      +      return inset;
           }
           
           /**
      @@ -655,7 +1322,19 @@ public class StyleSheet extends StyleContext
            */
           public void paint(Graphics g, float x, float y, float w, float h, View v)
           {
      -      // FIXME: Not implemented.
      +      int inX = (int) (x + leftInset);
      +      int inY = (int) (y + topInset);
      +      int inW = (int) (w - leftInset - rightInset);
      +      int inH = (int) (h - topInset - bottomInset);
      +      if (background != null)
      +        {
      +          g.setColor(background);
      +          g.fillRect(inX, inY, inW, inH);
      +        }
      +      if (border != null)
      +        {
      +          border.paintBorder(null, g, inX, inY, inW, inH);
      +        }
           }
         }
         
      @@ -666,24 +1345,41 @@ public class StyleSheet extends StyleContext
          * 
          * @author Lillian Angel (langel@redhat.com)
          */
      -  public static class ListPainter extends Object implements Serializable
      +  public static class ListPainter implements Serializable
         {
      -    
      +
           /**
            * Attribute set for painter
            */
      -    AttributeSet as;
      -    
      +    private AttributeSet attributes;
      +
      +    /**
      +     * The associated style sheet.
      +     */
      +    private StyleSheet styleSheet;
      +
      +    /**
      +     * The bullet type.
      +     */
      +    private String type;
      +
           /**
            * Package-private constructor.
            * 
            * @param as - AttributeSet for painter
            */
      -    ListPainter(AttributeSet as)
      +    ListPainter(AttributeSet as, StyleSheet ss)
           {
      -      this.as = as;
      +      attributes = as;
      +      styleSheet = ss;
      +      type = (String) as.getAttribute(CSS.Attribute.LIST_STYLE_TYPE);
           }
      -    
      +
      +    /**
      +     * Cached rectangle re-used in the paint method below.
      +     */
      +    private final Rectangle tmpRect = new Rectangle();
      +
           /**
            * Paints the CSS list decoration according to the attributes given.
            * 
      @@ -698,210 +1394,66 @@ public class StyleSheet extends StyleContext
           public void paint(Graphics g, float x, float y, float w, float h, View v,
                             int item)
           {
      -      // FIXME: Not implemented.
      -    }
      -  }
      -  
      -  /**
      -   * The parser callback for the CSSParser.
      -   */
      -  class CssParser implements CSSParser.CSSParserCallback
      -  {
      -    /** 
      -     * A vector of all the selectors. 
      -     * Each element is an array of all the selector tokens 
      -     * in a single rule. 
      -     */
      -    Vector selectors;
      -
      -    /** A vector of all the selector tokens in a rule. */
      -    Vector selectorTokens;
      -
      -    /**  Name of the current property. */
      -    String propertyName;
      -
      -    /** The set of CSS declarations */
      -    MutableAttributeSet declaration;
      -
      -    /** 
      -     * True if parsing a declaration, that is the Reader will not 
      -     * contain a selector. 
      -     */
      -    boolean parsingDeclaration;
      -
      -    /** True if the attributes are coming from a linked/imported style. */
      -    boolean isLink;
      -
      -    /** The base URL */
      -    URL base;
      -
      -    /** The parser */
      -    CSSParser parser;
      -
      -    /**
      -     * Constructor
      -     */
      -    CssParser()
      -    {
      -      selectors = new Vector();
      -      selectorTokens = new Vector();
      -      parser = new CSSParser();
      -      base = StyleSheet.this.base;
      -      declaration = new SimpleAttributeSet();
      -    }
      -
      -    /**
      -     * Parses the passed in CSS declaration into an AttributeSet.
      -     * 
      -     * @param s - the declaration
      -     * @return the set of attributes containing the property and value.
      -     */
      -    public AttributeSet parseDeclaration(String s)
      -    {
      -      try
      -      {
      -        return parseDeclaration(new StringReader(s));
      -      }
      -      catch (IOException e)
      -      {
      -         // Do nothing here.
      -      }
      -      return null;
      -    }
      -
      -    /**
      -     * Parses the passed in CSS declaration into an AttributeSet.
      -     * 
      -     * @param r - the reader
      -     * @return the attribute set
      -     * @throws IOException from the reader
      -     */
      -    public AttributeSet parseDeclaration(Reader r) throws IOException
      -    {
      -      parse(base, r, true, false);
      -      return declaration;
      -    }
      -
      -    /**
      -     * Parse the given CSS stream
      -     * 
      -     * @param base - the url
      -     * @param r - the reader
      -     * @param parseDec - True if parsing a declaration
      -     * @param isLink - True if parsing a link
      -     */
      -   public void parse(URL base, Reader r, boolean parseDec, boolean isLink) throws IOException
      -   {
      -     parsingDeclaration = parseDec;
      -     this.isLink = isLink;
      -     this.base = base;
      -     
      -     // flush out all storage
      -     propertyName = null;
      -     selectors.clear();
      -     selectorTokens.clear();
      -     declaration.removeAttributes(declaration);
      -     
      -     parser.parse(r, this, parseDec);
      -   }
      -
      -   /**
      -    * Invoked when a valid @import is encountered, 
      -    * will call importStyleSheet if a MalformedURLException 
      -    * is not thrown in creating the URL.
      -    *
      -    * @param s - the string after @import
      -    */ 
      -   public void handleImport(String s)
      -    {
      -      if (s != null)
      +      // FIXME: This is a very simplistic list rendering. We still need
      +      // to implement different bullet types (see type field) and custom
      +      // bullets via images.
      +      View itemView = v.getView(item);
      +      AttributeSet viewAtts = itemView.getAttributes();
      +      Object tag = viewAtts.getAttribute(StyleConstants.NameAttribute);
      +      // Only paint something here when the child view is an LI tag
      +      // and the calling view is some of the list tags then).
      +      if (tag != null && tag == HTML.Tag.LI)
               {
      -          try
      +          g.setColor(Color.BLACK);
      +          int centerX = (int) (x - 12);
      +          int centerY = -1;
      +          // For paragraphs (almost all cases) center bullet vertically
      +          // in the middle of the first line.
      +          tmpRect.setBounds((int) x, (int) y, (int) w, (int) h);
      +          if (itemView.getViewCount() > 0)
                   {
      -              if (s.startsWith("url(") && s.endsWith(")"))
      -                s = s.substring(4, s.length() - 1);
      -              if (s.indexOf("\"") >= 0)
      -                s = s.replaceAll("\"","");
      -
      -              URL url = new URL(s);
      -              if (url == null && base != null)
      -                url = new URL(base, s);
      -              
      -              importStyleSheet(url);
      +              View v1 = itemView.getView(0);
      +              if (v1 instanceof ParagraphView && v1.getViewCount() > 0)
      +                {             
      +                  Shape a1 = itemView.getChildAllocation(0, tmpRect);
      +                  Rectangle r1 = a1 instanceof Rectangle ? (Rectangle) a1
      +                                                         : a1.getBounds();
      +                  ParagraphView par = (ParagraphView) v1;
      +                  Shape a = par.getChildAllocation(0, r1);
      +                  if (a != null)
      +                    {
      +                      Rectangle r = a instanceof Rectangle ? (Rectangle) a
      +                                                           : a.getBounds();
      +                      centerY = (int) (r.height / 2 + r.y);
      +                    }
      +                }
                   }
      -          catch (MalformedURLException e)
      +          if (centerY == -1)
                   {
      -              // Do nothing here.
      +              centerY =(int) (h / 2 + y);
                   }
      +          g.fillOval(centerX - 3, centerY - 3, 6, 6);
               }
           }
      +  }
       
      -   /**
      -     * A selector has been encountered.
      -     * 
      -     * @param s - a selector (e.g. P or UL or even P,)
      -     */
      -   public void handleSelector(String s)
      -   {
      -     if (s.endsWith(","))
      -       s = s.substring(0, s.length() - 1);
      -     
      -     selectorTokens.addElement(s);
      -     addSelector();
      -   }
      -
      -   /**
      -    * Invoked when the start of a rule is encountered.
      -    */
      -   public void startRule()
      -   {
      -     addSelector();
      -   }
      -
      -   /**
      -    * Invoked when a property name is encountered.
      -    *
      -    * @param s - the property
      -    */
      -   public void handleProperty(String s)
      -   {
      -     propertyName = s;
      -   }
      -
      -  /**
      -   * Invoked when a property value is encountered.
      +  /**
      +   * Converts an AttributeSet to a Map. This is used for CSS resolving.
          *
      -   * @param s - the value
      -   */
      -   public void handleValue(String s)
      -   {
      -     // call addCSSAttribute
      -     // FIXME: Not implemented
      -   }
      -   
      -   /**
      -    * Invoked when the end of a rule is encountered.
      -    */
      -   public void endRule()
      -   {
      -     // FIXME: Not implemented
      -     // add rules
      -     propertyName = null;
      -   }
      -
      -   /**
      -    * Adds the selector to the vector.
      -    */
      -   private void addSelector()
      -   {
      -     int length = selectorTokens.size();
      -     if (length > 0)
      -       {
      -         Object[] sel = new Object[length];
      -         System.arraycopy(selectorTokens.toArray(), 0, sel, 0, length);
      -         selectors.add(sel);
      -         selectorTokens.clear();
      -       }
      -   }
      +   * @param atts the attributes to convert
      +   *
      +   * @return the converted map
      +   */
      +  private Map attributeSetToMap(AttributeSet atts)
      +  {
      +    HashMap map = new HashMap();
      +    Enumeration keys = atts.getAttributeNames();
      +    while (keys.hasMoreElements())
      +      {
      +        Object key = keys.nextElement();
      +        Object value = atts.getAttribute(key);
      +        map.put(key.toString(), value.toString());
      +      }
      +    return map;
         }
       }
      diff --git a/libjava/classpath/javax/swing/text/html/TableView.java b/libjava/classpath/javax/swing/text/html/TableView.java
      index c2edc8cdd64..f87d7b35fc5 100644
      --- a/libjava/classpath/javax/swing/text/html/TableView.java
      +++ b/libjava/classpath/javax/swing/text/html/TableView.java
      @@ -38,49 +38,318 @@ exception statement from your version. */
       
       package javax.swing.text.html;
       
      -import javax.swing.text.Document;
      +import java.awt.Graphics;
      +import java.awt.Rectangle;
      +import java.awt.Shape;
      +
      +import gnu.javax.swing.text.html.css.Length;
      +
      +import javax.swing.SizeRequirements;
      +import javax.swing.event.DocumentEvent;
      +import javax.swing.text.AttributeSet;
       import javax.swing.text.Element;
      +import javax.swing.text.StyleConstants;
       import javax.swing.text.View;
       import javax.swing.text.ViewFactory;
       
       /**
      - * A conrete implementation of TableView that renders HTML tables.
      - * 
      - * @author Roman Kennke (kennke@aicas.com)
      + * A view implementation that renders HTML tables.
      + *
      + * This is basically a vertical BoxView that contains the rows of the table
      + * and the rows are horizontal BoxViews that contain the actual columns.
        */
       class TableView
      -    extends javax.swing.text.TableView
      +  extends BlockView
      +  implements ViewFactory
       {
      +
         /**
          * Represents a single table row.
          */
      -  public class RowView extends TableRow
      +  class RowView
      +    extends BlockView
         {
           /**
      -     * Creates a new instance of the <code>RowView</code>.
      +     * Has true at column positions where an above row's cell overlaps into
      +     * this row.
      +     */
      +    boolean[] overlap;
      +
      +    /**
      +     * Stores the row index of this row.
      +     */
      +    int rowIndex;
      +
      +    /**
      +     * Creates a new RowView.
            *
      -     * @param el the element for which to create a row view
      +     * @param el the element for the row view
      +     */
      +    RowView(Element el)
      +    {
      +      super(el, X_AXIS);
      +    }
      +
      +    public void replace(int offset, int len, View[] views)
      +    {
      +      gridValid = false;
      +      super.replace(offset, len, views);
      +    }
      +
      +    /**
      +     * Overridden to make rows not resizable along the Y axis.
      +     */
      +    public float getMaximumSpan(int axis)
      +    {
      +      float span;
      +      if (axis == Y_AXIS)
      +        span = super.getPreferredSpan(axis);
      +      else
      +        span = Integer.MAX_VALUE;
      +      return span;
      +    }
      +
      +    public float getMinimumSpan(int axis)
      +    {
      +      float span;
      +      if (axis == X_AXIS)
      +        span = totalColumnRequirements.minimum;
      +      else
      +        span = super.getMinimumSpan(axis);
      +      return span;
      +    }
      +
      +    public float getPreferredSpan(int axis)
      +    {
      +      float span;
      +      if (axis == X_AXIS)
      +        span = totalColumnRequirements.preferred;
      +      else
      +        span = super.getPreferredSpan(axis);
      +      return span;
      +    }
      +
      +    /**
      +     * Calculates the overall size requirements for the row along the
      +     * major axis. This will be the sum of the column requirements.
      +     */
      +    protected SizeRequirements calculateMajorAxisRequirements(int axis,
      +                                                            SizeRequirements r)
      +    {
      +      if (r == null)
      +        r = new SizeRequirements();
      +      int adjust = (columnRequirements.length + 1) * cellSpacing;
      +      r.minimum = totalColumnRequirements.minimum + adjust;
      +      r.preferred = totalColumnRequirements.preferred + adjust;
      +      r.maximum = totalColumnRequirements.maximum + adjust;
      +      r.alignment = 0.0F;
      +      return r;
      +    }
      +
      +    /**
      +     * Lays out the columns in this row.
            */
      -    public RowView(Element el)
      +    protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets,
      +                                   int spans[])
           {
      -      super(el);
      +      super.layoutMinorAxis(targetSpan, axis, offsets, spans);
      +
      +      // Adjust columns that have rowSpan > 1.
      +      int numCols = getViewCount();
      +      for (int i = 0; i < numCols; i++)
      +        {
      +          View v = getView(i);
      +          if (v instanceof CellView)
      +            {
      +              CellView cell = (CellView) v;
      +              if (cell.rowSpan > 1)
      +                {
      +                  for (int r = 1; r < cell.rowSpan; r++)
      +                    {
      +                      spans[i] += TableView.this.getSpan(axis, rowIndex + r);
      +                      spans[i] += cellSpacing;
      +                    }
      +                }
      +            }
      +        }
           }
      -    
      +
      +    /**
      +     * Lays out the columns in this row.
      +     */
      +    protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets,
      +                                   int spans[])
      +    {
      +      updateGrid();
      +      int numCols = offsets.length;
      +      int realColumn = 0;
      +      int colCount = getViewCount();
      +      for (int i = 0; i < numColumns;)
      +        {
      +          if (! overlap[i] && realColumn < colCount)
      +            {
      +              View v = getView(realColumn);
      +              if (v instanceof CellView)
      +                {
      +                  CellView cv = (CellView) v;
      +                  offsets[realColumn] = columnOffsets[i];
      +                  spans[realColumn] = 0;
      +                  for (int j = 0; j < cv.colSpan; j++, i++)
      +                    {
      +                      spans[realColumn] += columnSpans[i];
      +                      if (j < cv.colSpan - 1)
      +                        spans[realColumn] += cellSpacing;
      +                    }
      +                }
      +              realColumn++;
      +            }
      +          else
      +            {
      +              i++;
      +            }
      +        }
      +    }
      +  }
      +
         /**
      -   * Get the associated style sheet from the document.
      -   * 
      -   * @return the associated style sheet.
      +   * A view that renders HTML table cells (TD and TH tags).
          */
      -    protected StyleSheet getStyleSheet()
      +  class CellView
      +    extends BlockView
      +  {
      +
      +    /**
      +     * The number of columns that this view spans.
      +     */
      +    int colSpan;
      +
      +    /**
      +     * The number of rows that this cell spans.
      +     */
      +    int rowSpan;
      +
      +    /**
      +     * Creates a new CellView for the specified element.
      +     *
      +     * @param el the element for which to create the colspan
      +     */
      +    CellView(Element el)
           {
      -      Document d = getElement().getDocument();
      -      if (d instanceof HTMLDocument)
      -        return ((HTMLDocument) d).getStyleSheet();
      -      else
      -        return null;
      -    }    
      +      super(el, Y_AXIS);
      +    }
      +
      +    protected SizeRequirements calculateMajorAxisRequirements(int axis,
      +                                                            SizeRequirements r)
      +    {
      +      r = super.calculateMajorAxisRequirements(axis, r);
      +      r.maximum = Integer.MAX_VALUE;
      +      return r;
      +    }
      +
      +    /**
      +     * Overridden to fetch the columnSpan attibute.
      +     */
      +    protected void setPropertiesFromAttributes()
      +    {
      +      super.setPropertiesFromAttributes();
      +      colSpan = 1;
      +      AttributeSet atts = getAttributes();
      +      Object o = atts.getAttribute(HTML.Attribute.COLSPAN);
      +      if (o != null)
      +        {
      +          try
      +            {
      +              colSpan = Integer.parseInt(o.toString());
      +            }
      +          catch (NumberFormatException ex)
      +            {
      +              // Couldn't parse the colspan, assume 1.
      +              colSpan = 1;
      +            }
      +        }
      +      rowSpan = 1;
      +      o = atts.getAttribute(HTML.Attribute.ROWSPAN);
      +      if (o != null)
      +        {
      +          try
      +            {
      +              rowSpan = Integer.parseInt(o.toString());
      +            }
      +          catch (NumberFormatException ex)
      +            {
      +              // Couldn't parse the colspan, assume 1.
      +              rowSpan = 1;
      +            }
      +        }
      +    }
         }
       
      +
      +  /**
      +   * The attributes of this view.
      +   */
      +  private AttributeSet attributes;
      +
      +  /**
      +   * The column requirements.
      +   *
      +   * Package private to avoid accessor methods.
      +   */
      +  SizeRequirements[] columnRequirements;
      +
      +  /**
      +   * The overall requirements across all columns.
      +   *
      +   * Package private to avoid accessor methods.
      +   */
      +  SizeRequirements totalColumnRequirements;
      +
      +  /**
      +   * The column layout, offsets.
      +   *
      +   * Package private to avoid accessor methods.
      +   */
      +  int[] columnOffsets;
      +
      +  /**
      +   * The column layout, spans.
      +   *
      +   * Package private to avoid accessor methods.
      +   */
      +  int[] columnSpans;
      +
      +  /**
      +   * The widths of the columns that have been explicitly specified.
      +   */
      +  Length[] columnWidths;
      +
      +  /**
      +   * The total number of columns.
      +   */
      +  int numColumns;
      +
      +  /**
      +   * The table width.
      +   */
      +  private Length width;
      +
      +  /**
      +   * Indicates if the grid setup is ok.
      +   */
      +  boolean gridValid = false;
      +
      +  /**
      +   * Additional space that is added _between_ table cells.
      +   *
      +   * This is package private to avoid accessor methods.
      +   */
      +  int cellSpacing;
      +
      +  /**
      +   * A cached Rectangle object for reuse in paint().
      +   */
      +  private Rectangle tmpRect;
      +
         /**
          * Creates a new HTML table view for the specified element.
          *
      @@ -88,50 +357,619 @@ class TableView
          */
         public TableView(Element el)
         {
      -    super(el);
      +    super(el, Y_AXIS);
      +    totalColumnRequirements = new SizeRequirements();
      +    tmpRect = new Rectangle();
         }
      -  
      +
         /**
      -   * Get the associated style sheet from the document.
      -   * 
      -   * @return the associated style sheet.
      +   * Implementation of the ViewFactory interface for creating the
      +   * child views correctly.
          */
      -  protected StyleSheet getStyleSheet()
      +  public View create(Element elem)
         {
      -    Document d = getElement().getDocument();
      -    if (d instanceof HTMLDocument)
      -      return ((HTMLDocument) d).getStyleSheet();
      +    View view = null;
      +    AttributeSet atts = elem.getAttributes();
      +    Object name = atts.getAttribute(StyleConstants.NameAttribute);
      +    AttributeSet pAtts = elem.getParentElement().getAttributes();
      +    Object pName = pAtts.getAttribute(StyleConstants.NameAttribute);
      +
      +    if (name == HTML.Tag.TR && pName == HTML.Tag.TABLE)
      +      view = new RowView(elem);
      +    else if ((name == HTML.Tag.TD || name == HTML.Tag.TH)
      +             && pName == HTML.Tag.TR)
      +      view = new CellView(elem);
      +    else if (name == HTML.Tag.CAPTION)
      +      view = new ParagraphView(elem);
           else
      -      return null;
      -  }  
      -  
      +      {
      +        // If we haven't mapped the element, then fall back to the standard
      +        // view factory.
      +        View parent = getParent();
      +        if (parent != null)
      +          {
      +            ViewFactory vf = parent.getViewFactory();
      +            if (vf != null)
      +              view = vf.create(elem);
      +          }
      +      }
      +    return view;
      +  }
      +
      +  /**
      +   * Returns this object as view factory so that we get our TR, TD, TH
      +   * and CAPTION subelements created correctly.
      +   */
      +  public ViewFactory getViewFactory()
      +  {
      +    return this;
      +  }
      +
      +  /**
      +   * Returns the attributes of this view. This is overridden to provide
      +   * the attributes merged with the CSS stuff.
      +   */
      +  public AttributeSet getAttributes()
      +  {
      +    if (attributes == null)
      +      attributes = getStyleSheet().getViewAttributes(this);
      +    return attributes;
      +  }
      +
      +  /**
      +   * Returns the stylesheet associated with this view.
      +   *
      +   * @return the stylesheet associated with this view
      +   */
      +  protected StyleSheet getStyleSheet()
      +  {
      +    HTMLDocument doc = (HTMLDocument) getDocument();
      +    return doc.getStyleSheet();
      +  }
      +
      +  /**
      +   * Overridden to calculate the size requirements according to the
      +   * columns distribution.
      +   */
      +  protected SizeRequirements calculateMinorAxisRequirements(int axis,
      +                                                            SizeRequirements r)
      +  {
      +    updateGrid();
      +    calculateColumnRequirements();
      +
      +    // Calculate the horizontal requirements according to the superclass.
      +    // This will return the maximum of the row's widths.
      +    r = super.calculateMinorAxisRequirements(axis, r);
      +
      +    // Try to set the CSS width if it fits.
      +    if (width != null)
      +      {
      +        int w = (int) width.getValue();
      +        if (r.minimum < w)
      +          r.minimum = w;
      +      }
      +
      +    // Adjust requirements when we have cell spacing.
      +    int adjust = (columnRequirements.length + 1) * cellSpacing;
      +    r.minimum += adjust;
      +    r.preferred += adjust;
      +
      +    // Apply the alignment.
      +    AttributeSet atts = getAttributes();
      +    Object o = atts.getAttribute(CSS.Attribute.TEXT_ALIGN);
      +    r.alignment = 0.0F;
      +    if (o != null)
      +      {
      +        String al = o.toString();
      +        if (al.equals("left"))
      +          r.alignment = 0.0F;
      +        else if (al.equals("center"))
      +          r.alignment = 0.5F;
      +        else if (al.equals("right"))
      +          r.alignment = 1.0F;
      +      }
      +
      +    // Make it not resize in the horizontal direction.
      +    r.maximum = r.preferred;
      +    return r;
      +  }
      +
      +  /**
      +   * Overridden to perform the table layout before calling the super
      +   * implementation.
      +   */
      +  protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, 
      +                                 int[] spans)
      +  {
      +    updateGrid();
      +
      +    // Mark all rows as invalid along their minor axis to force correct
      +    // layout of multi-row cells.
      +    int n = getViewCount();
      +    for (int i = 0; i < n; i++)
      +      {
      +        View row = getView(i);
      +        if (row instanceof RowView)
      +          ((RowView) row).layoutChanged(axis);
      +      }
      +
      +    layoutColumns(targetSpan);
      +    super.layoutMinorAxis(targetSpan, axis, offsets, spans);
      +  }
      +
      +  /**
      +   * Calculates the size requirements for the columns.
      +   */
      +  private void calculateColumnRequirements()
      +  {
      +    int numRows = getViewCount();
      +    totalColumnRequirements.minimum = 0;
      +    totalColumnRequirements.preferred = 0;
      +    totalColumnRequirements.maximum = 0;
      +
      +    // In this first pass we find out a suitable total width to fit in
      +    // all columns of all rows.
      +    for (int r = 0; r < numRows; r++)
      +      {
      +        View rowView = getView(r);
      +        int numCols;
      +        if (rowView instanceof RowView)
      +          numCols = ((RowView) rowView).getViewCount();
      +        else
      +          numCols = 0;
      +
      +        // We collect the normal (non-relative) column requirements in the
      +        // total variable and the relative requirements in the relTotal
      +        // variable. In the end we create the maximum of both to get the
      +        // real requirements.
      +        SizeRequirements total = new SizeRequirements();
      +        SizeRequirements relTotal = new SizeRequirements();
      +        float totalPercent = 0.F;
      +        int realCol = 0;
      +        for (int c = 0; c < numCols; c++)
      +          {
      +            View v = rowView.getView(c);
      +            if (v instanceof CellView)
      +              {
      +                CellView cellView = (CellView) v;
      +                int colSpan = cellView.colSpan;
      +                if (colSpan > 1)
      +                  {
      +                    int cellMin = (int) cellView.getMinimumSpan(X_AXIS);
      +                    int cellPref = (int) cellView.getPreferredSpan(X_AXIS);
      +                    int cellMax = (int) cellView.getMaximumSpan(X_AXIS);
      +                    int currentMin = 0;
      +                    int currentPref = 0;
      +                    long currentMax = 0;
      +                    for (int i = 0; i < colSpan; i++)
      +                      {
      +                        SizeRequirements req = columnRequirements[realCol];
      +                        currentMin += req.minimum;
      +                        currentPref += req.preferred;
      +                        currentMax += req.maximum;
      +                      }
      +                    int deltaMin = cellMin - currentMin;
      +                    int deltaPref = cellPref - currentPref;
      +                    int deltaMax = (int) (cellMax - currentMax);
      +                    // Distribute delta.
      +                    for (int i = 0; i < colSpan; i++)
      +                      {
      +                        SizeRequirements req = columnRequirements[realCol];
      +                        if (deltaMin > 0)
      +                          req.minimum += deltaMin / colSpan;
      +                        if (deltaPref > 0)
      +                          req.preferred += deltaPref / colSpan;
      +                        if (deltaMax > 0)
      +                          req.maximum += deltaMax / colSpan;
      +                        if (columnWidths[realCol] == null
      +                            || ! columnWidths[realCol].isPercentage())
      +                          {
      +                            total.minimum += req.minimum;
      +                            total.preferred += req.preferred;
      +                            total.maximum += req.maximum;
      +                          }
      +                        else
      +                          {
      +                            relTotal.minimum =
      +                              Math.max(relTotal.minimum,
      +                                     (int) (req.minimum
      +                                          * columnWidths[realCol].getValue()));
      +                            relTotal.preferred =
      +                              Math.max(relTotal.preferred,
      +                                     (int) (req.preferred
      +                                          * columnWidths[realCol].getValue()));
      +                            relTotal.maximum =
      +                              Math.max(relTotal.maximum,
      +                                     (int) (req.maximum
      +                                          * columnWidths[realCol].getValue()));
      +                            totalPercent += columnWidths[realCol].getValue();
      +                          }
      +                      }
      +                    realCol += colSpan;
      +                  }
      +                else
      +                  {
      +                    // Shortcut for colSpan == 1.
      +                    SizeRequirements req = columnRequirements[realCol];
      +                    req.minimum = Math.max(req.minimum,
      +                                        (int) cellView.getMinimumSpan(X_AXIS));
      +                    req.preferred = Math.max(req.preferred,
      +                                      (int) cellView.getPreferredSpan(X_AXIS));
      +                    req.maximum = Math.max(req.maximum,
      +                                        (int) cellView.getMaximumSpan(X_AXIS));
      +                    if (columnWidths[realCol] == null
      +                        || ! columnWidths[realCol].isPercentage())
      +                      {
      +                        total.minimum += columnRequirements[realCol].minimum;
      +                        total.preferred +=
      +                          columnRequirements[realCol].preferred;
      +                        total.maximum += columnRequirements[realCol].maximum;
      +                      }
      +                    else
      +                      {
      +                        relTotal.minimum =
      +                          Math.max(relTotal.minimum,
      +                                 (int) (req.minimum
      +                                        / columnWidths[c].getValue()));
      +                        relTotal.preferred =
      +                          Math.max(relTotal.preferred,
      +                                 (int) (req.preferred
      +                                        / columnWidths[c].getValue()));
      +                        relTotal.maximum =
      +                          Math.max(relTotal.maximum,
      +                                 (int) (req.maximum
      +                                        / columnWidths[c].getValue()));
      +                        totalPercent += columnWidths[c].getValue();
      +                      }
      +                    realCol += 1;
      +                  }
      +              }
      +          }
      +
      +        // Update the total requirements as follows:
      +        // 1. Multiply the absolute requirements with 1 - totalPercent. This
      +        //    gives the total requirements based on the wishes of the absolute
      +        //    cells.
      +        // 2. Take the maximum of this value and the total relative
      +        //    requirements. Now we should have enough space for whatever cell
      +        //    in this column.
      +        // 3. Take the maximum of this value and the previous maximum value.
      +        total.minimum *= 1.F / (1.F - totalPercent);
      +        total.preferred *= 1.F / (1.F - totalPercent);
      +        total.maximum *= 1.F / (1.F - totalPercent);
      +
      +        int rowTotalMin = Math.max(total.minimum, relTotal.minimum);
      +        int rowTotalPref = Math.max(total.preferred, relTotal.preferred);
      +        int rowTotalMax = Math.max(total.maximum, relTotal.maximum);
      +        totalColumnRequirements.minimum =
      +          Math.max(totalColumnRequirements.minimum, rowTotalMin);
      +        totalColumnRequirements.preferred =
      +          Math.max(totalColumnRequirements.preferred, rowTotalPref);
      +        totalColumnRequirements.maximum =
      +          Math.max(totalColumnRequirements.maximum, rowTotalMax);
      +      }
      +
      +    // Now we know what we want and can fix up the actual relative
      +    // column requirements.
      +    int numCols = columnRequirements.length;
      +    for (int i = 0; i < numCols; i++)
      +      {
      +        if (columnWidths[i] != null)
      +          {
      +            columnRequirements[i].minimum = (int)
      +              columnWidths[i].getValue(totalColumnRequirements.minimum);
      +            columnRequirements[i].preferred = (int)
      +              columnWidths[i].getValue(totalColumnRequirements.preferred);
      +            columnRequirements[i].maximum = (int)
      +              columnWidths[i].getValue(totalColumnRequirements.maximum);
      +          }
      +      }
      +  }
      +
         /**
      -   * Creates a view for a table row.
      -   * 
      -   * @param el the element that represents the table row
      -   * @return a view for rendering the table row 
      -   * (and instance of {@link RowView}).
      +   * Lays out the columns.
      +   *
      +   * @param targetSpan the target span into which the table is laid out
          */
      -  protected TableRow createTableRow(Element el) 
      +  private void layoutColumns(int targetSpan)
         {
      -    return new RowView(el);
      -  }  
      -  
      +    // Set the spans to the preferred sizes. Determine the space
      +    // that we have to adjust the sizes afterwards.
      +    long sumPref = 0;
      +    int n = columnRequirements.length;
      +    for (int i = 0; i < n; i++)
      +      {
      +        SizeRequirements col = columnRequirements[i];
      +        if (columnWidths[i] != null)
      +          columnSpans[i] = (int) columnWidths[i].getValue(targetSpan);
      +        else
      +          columnSpans[i] = col.preferred;
      +        sumPref += columnSpans[i];
      +      }
      +
      +    // Try to adjust the spans so that we fill the targetSpan.
      +    // For adjustments we have to use the targetSpan minus the cumulated
      +    // cell spacings.
      +    long diff = targetSpan - (n + 1) * cellSpacing - sumPref;
      +    float factor = 0.0F;
      +    int[] diffs = null;
      +    if (diff != 0)
      +      {
      +        long total = 0;
      +        diffs = new int[n];
      +        for (int i = 0; i < n; i++)
      +          {
      +            // Only adjust the width if we haven't set a column width here.
      +            if (columnWidths[i] == null)
      +              {
      +                SizeRequirements col = columnRequirements[i];
      +                int span;
      +                if (diff < 0)
      +                  {
      +                    span = col.minimum;
      +                    diffs[i] = columnSpans[i] - span;
      +                  }
      +                else
      +                  {
      +                    span = col.maximum;
      +                    diffs[i] = span - columnSpans[i];
      +                  }
      +                total += span;
      +              }
      +            else
      +              total += columnSpans[i];
      +          }
      +
      +        float maxAdjust = Math.abs(total - sumPref);
      +        factor = diff / maxAdjust;
      +        factor = Math.min(factor, 1.0F);
      +        factor = Math.max(factor, -1.0F);
      +      }
      +
      +    // Actually perform adjustments.
      +    int totalOffs = cellSpacing;
      +    for (int i = 0; i < n; i++)
      +      {
      +        columnOffsets[i] = totalOffs;
      +        if (diff != 0)
      +          {
      +            float adjust = factor * diffs[i];
      +            columnSpans[i] += Math.round(adjust);
      +          }
      +        // Avoid overflow here.
      +        totalOffs = (int) Math.min((long) totalOffs + (long) columnSpans[i]
      +                                   + (long) cellSpacing, Integer.MAX_VALUE);
      +      }
      +  }
      +
         /**
      -   * Loads the children of the Table. This completely bypasses the ViewFactory
      -   * and creates instances of TableRow instead.
      +   * Updates the arrays that contain the row and column data in response
      +   * to a change to the table structure.
          *
      -   * @param vf ignored
      +   * Package private to avoid accessor methods.
      +   */
      +  void updateGrid()
      +  {
      +    if (! gridValid)
      +      {
      +        AttributeSet atts = getAttributes();
      +        StyleSheet ss = getStyleSheet();
      +        float emBase = ss.getEMBase(atts);
      +        float exBase = ss.getEXBase(atts);
      +        int maxColumns = 0;
      +        int numRows = getViewCount();
      +        for (int r = 0; r < numRows; r++)
      +          {
      +            View rowView = getView(r);
      +            int numCols = 0;
      +            if (rowView instanceof RowView)
      +              {
      +                int numCells = ((RowView) rowView).getViewCount();
      +                for (int i = 0; i < numCells; i++)
      +                  {
      +                    View v = rowView.getView(i);
      +                    if (v instanceof CellView)
      +                      numCols += ((CellView) v).colSpan;
      +                  }
      +              }
      +            maxColumns = Math.max(numCols, maxColumns);
      +          }
      +        numColumns = maxColumns;
      +        columnWidths = new Length[maxColumns];
      +        int[] rowSpans = new int[maxColumns];
      +        for (int r = 0; r < numRows; r++)
      +          {
      +            View view = getView(r);
      +            if (view instanceof RowView)
      +              {
      +                RowView rowView = (RowView) view;
      +                rowView.rowIndex = r;
      +                rowView.overlap = new boolean[maxColumns];
      +                int colIndex = 0;
      +                int colCount = rowView.getViewCount();
      +                for (int c = 0; c < maxColumns;)
      +                  {
      +                    if (rowSpans[c] > 0)
      +                      {
      +                        rowSpans[c]--;
      +                        rowView.overlap[c] = true;
      +                        c++;
      +                      }
      +                    else if (colIndex < colCount)
      +                      {
      +                        View v = rowView.getView(colIndex);
      +                        colIndex++;
      +                        if (v instanceof CellView)
      +                          {
      +                            CellView cv = (CellView) v;
      +                            Object o =
      +                              cv.getAttributes().getAttribute(CSS.Attribute.WIDTH);
      +                            if (o != null && columnWidths[c] == null
      +                                && o instanceof Length)
      +                              {
      +                                columnWidths[c]= (Length) o;
      +                                columnWidths[c].setFontBases(emBase, exBase);
      +                              }
      +                            int rs = cv.rowSpan - 1;
      +                            for (int col = cv.colSpan - 1; col >= 0; col--)
      +                              {
      +                                rowSpans[c] = rs;
      +                                c++;
      +                              }
      +                          }
      +                      }
      +                    else
      +                      {
      +                        c++;
      +                      }
      +                  }
      +              }
      +          }
      +        columnRequirements = new SizeRequirements[maxColumns];
      +        for (int i = 0; i < maxColumns; i++)
      +          columnRequirements[i] = new SizeRequirements();
      +        columnOffsets = new int[maxColumns];
      +        columnSpans = new int[maxColumns];
      +
      +        gridValid = true;
      +      }
      +  }
      +
      +  /**
      +   * Overridden to restrict the table width to the preferred size.
      +   */
      +  public float getMaximumSpan(int axis)
      +  {
      +    float span;
      +    if (axis == X_AXIS)
      +      span = super.getPreferredSpan(axis);
      +    else
      +      span = super.getMaximumSpan(axis);
      +    return span;
      +  }
      +
      +  /**
      +   * Overridden to fetch the CSS attributes when view gets connected.
      +   */
      +  public void setParent(View parent)
      +  {
      +    super.setParent(parent);
      +    if (parent != null)
      +      setPropertiesFromAttributes();
      +  }
      +
      +  /**
      +   * Fetches CSS and HTML layout attributes.
      +   */
      +  protected void setPropertiesFromAttributes()
      +  {
      +    super.setPropertiesFromAttributes();
      +
      +    // Fetch and parse cell spacing.
      +    AttributeSet atts = getAttributes();
      +    StyleSheet ss = getStyleSheet();
      +    float emBase = ss.getEMBase(atts);
      +    float exBase = ss.getEXBase(atts);
      +    Object o = atts.getAttribute(CSS.Attribute.BORDER_SPACING);
      +    if (o != null && o instanceof Length)
      +      {
      +        Length l = (Length) o;
      +        l.setFontBases(emBase, exBase);
      +        cellSpacing = (int) l.getValue();
      +      }
      +    o = atts.getAttribute(CSS.Attribute.WIDTH);
      +    if (o != null && o instanceof Length)
      +      {
      +        width = (Length) o;
      +        width.setFontBases(emBase, exBase);
      +      }
      +  }
      +
      +  /**
      +   * Overridden to adjust for cellSpacing.
      +   */
      +  protected SizeRequirements calculateMajorAxisRequirements(int axis,
      +                                                            SizeRequirements r)
      +  {
      +    r = super.calculateMajorAxisRequirements(axis, r);
      +    int adjust = (getViewCount() + 1) * cellSpacing;
      +    r.minimum += adjust;
      +    r.preferred += adjust;
      +    r.maximum += adjust;
      +    return r;
      +  }
      +
      +  /**
      +   * Overridden to adjust for cellSpacing.
      +   */
      +  protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets,
      +                                 int spans[])
      +  {
      +    // Mark all rows as invalid along their minor axis to force correct
      +    // layout of multi-row cells.
      +    int n = getViewCount();
      +    for (int i = 0; i < n; i++)
      +      {
      +        View row = getView(i);
      +        if (row instanceof RowView)
      +          ((RowView) row).layoutChanged(axis);
      +      }
      +
      +    int adjust = (getViewCount() + 1) * cellSpacing;
      +    super.layoutMajorAxis(targetSpan - adjust, axis, offsets, spans);
      +    for (int i = 0; i < offsets.length; i++)
      +      {
      +        offsets[i] += (i + 1) * cellSpacing;
      +      }
      +  }
      +
      +  /**
      +   * Overridden to replace view factory with this one.
      +   */
      +  public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
      +  {
      +    super.insertUpdate(e, a, this);
      +  }
      +
      +  /**
      +   * Overridden to replace view factory with this one.
      +   */
      +  public void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
      +  {
      +    super.removeUpdate(e, a, this);
      +  }
      +
      +  /**
      +   * Overridden to replace view factory with this one.
          */
      -  protected void loadChildren(ViewFactory vf)
      +  public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
         {
      -    Element el = getElement();
      -    int numChildren = el.getElementCount();
      -    View[] rows = new View[numChildren];
      -    for (int i = 0; i < numChildren; ++i)
      +    super.changedUpdate(e, a, this);
      +  }
      +
      +  public void replace(int offset, int len, View[] views)
      +  {
      +    gridValid = false;
      +    super.replace(offset, len, views);
      +  }
      +
      +  /**
      +   * We can't use the super class's paint() method because it might cut
      +   * off multi-row children. Instead we trigger painting for all rows
      +   * and let the rows sort out what to paint and what not.
      +   */
      +  public void paint(Graphics g, Shape a)
      +  {
      +    Rectangle rect = a instanceof Rectangle ? (Rectangle) a : a.getBounds();
      +    painter.paint(g, rect.x, rect.y, rect.width, rect.height, this);
      +    int nRows = getViewCount();
      +    Rectangle inside = getInsideAllocation(a);
      +    for (int r = 0; r < nRows; r++)
             {
      -        rows[i] = createTableRow(el.getElement(i));
      +        tmpRect.setBounds(inside);
      +        childAllocation(r, tmpRect);
      +        paintChild(g, tmpRect, r);
             }
      -    replace(0, getViewCount(), rows);
         }
      +
       }
      diff --git a/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java b/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java
      new file mode 100644
      index 00000000000..25db89fc405
      --- /dev/null
      +++ b/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java
      @@ -0,0 +1,163 @@
      +/* ViewAttributeSet.java -- The AttributeSet used by HTML views
      +   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 javax.swing.text.html;
      +
      +import java.util.ArrayList;
      +import java.util.Enumeration;
      +
      +import javax.swing.text.AttributeSet;
      +import javax.swing.text.Element;
      +import javax.swing.text.StyleConstants;
      +import javax.swing.text.View;
      +
      +/**
      + * An AttributeSet implemenation that is used by the HTML views. This
      + * AttributeSet is created by StyleSheet.getViewAttributes() and combines
      + * the following attributes:
      + * - The original attributes of the View's element.
      + * - Any translated (HTML->CSS) attributes, as returned by
      + *   StyleSheet.translateHTMLToCS().
      + * - CSS Styles as resolved by the CSS stylesheet.
      + *
      + * In addition to that, it resolves attributes to the parent views, if
      + * a CSS attribute is requested that is inheritable.
      + *
      + * @author Roman Kennke (kennke@aicas.com)
      + */
      +class ViewAttributeSet
      +  extends MultiAttributeSet
      +{
      +
      +  /**
      +   * The view for which we are the AttributeSet.
      +   */
      +  private View view;
      +
      +  /**
      +   * The stylesheet to use.
      +   */
      +  private StyleSheet styleSheet;
      +
      +  /**
      +   * Creates a new instance.
      +   *
      +   * @param v the view for which to do the AttributeSet
      +   */
      +  ViewAttributeSet(View v, StyleSheet ss)
      +  {
      +    styleSheet = ss;
      +    view = v;
      +    ArrayList atts = new ArrayList();
      +
      +    Element el = v.getElement();
      +    AttributeSet elAtts = el.getAttributes();
      +    AttributeSet htmlAtts = styleSheet.translateHTMLToCSS(elAtts);
      +    if (htmlAtts.getAttributeCount() > 0)
      +      atts.add(htmlAtts);
      +
      +    if (el.isLeaf())
      +      {
      +        Enumeration n = elAtts.getAttributeNames();
      +        while (n.hasMoreElements())
      +          {
      +            Object key = n.nextElement();
      +            if (key instanceof HTML.Tag)
      +              {
      +                AttributeSet rule = styleSheet.getRule((HTML.Tag) key, el);
      +                if (rule != null)
      +                  atts.add(rule);
      +              }
      +          }
      +      }
      +    else
      +      {
      +        HTML.Tag tag =
      +          (HTML.Tag) elAtts.getAttribute(StyleConstants.NameAttribute);
      +        AttributeSet rule = styleSheet.getRule(tag, el); 
      +        if (rule != null)
      +          atts.add(rule);
      +      }
      +
      +    AttributeSet[] atts1 = new AttributeSet[atts.size()];
      +    atts1 = (AttributeSet[]) atts.toArray(atts1);
      +    init(atts1);
      +  }
      +
      +  /**
      +   * Fetches the attribute for the specific ckey. If the attribute
      +   * can't be found and the key is a CSS.Attribute that is inherited,
      +   * then the attribute is looked up in the resolve parent.
      +   */
      +  public Object getAttribute(Object key)
      +  {
      +    Object val = super.getAttribute(key);
      +    if (val == null)
      +      {
      +        // Didn't find value. If the key is a CSS.Attribute, and is
      +        // inherited, then ask the resolve parent.
      +        if (key instanceof CSS.Attribute)
      +          {
      +            CSS.Attribute cssKey = (CSS.Attribute) key;
      +            if (cssKey.isInherited())
      +              {
      +                AttributeSet resolveParent = getResolveParent();
      +                if (resolveParent != null)
      +                  val = resolveParent.getAttribute(cssKey);
      +              }
      +          }
      +      }
      +    return val;
      +  }
      +
      +  /**
      +   * Returns the resolve parent of this AttributeSet. This is the AttributeSet
      +   * returned by the parent view if available.
      +   */
      +  public AttributeSet getResolveParent()
      +  {
      +    AttributeSet parent = null;
      +    if (view != null)
      +      {
      +        View parentView = view.getParent();
      +        if (parentView != null)
      +          parent = parentView.getAttributes();
      +      }
      +    return parent;
      +  }
      +}
      diff --git a/libjava/classpath/javax/swing/text/html/parser/AttributeList.java b/libjava/classpath/javax/swing/text/html/parser/AttributeList.java
      index 5bca0bfa7db..d48266d4730 100644
      --- a/libjava/classpath/javax/swing/text/html/parser/AttributeList.java
      +++ b/libjava/classpath/javax/swing/text/html/parser/AttributeList.java
      @@ -122,7 +122,7 @@ public final class AttributeList
          * null, if this parameter was not specified.
          * Values, defined in DTD, are case insensitive.
          */
      -  public Vector values;
      +  public Vector<?> values;
       
         /**
          * The modifier of this attribute. This field contains one of the
      @@ -176,7 +176,7 @@ public final class AttributeList
          * Equals to null for the last attribute definition.
          */
         public AttributeList(String a_name, int a_type, int a_modifier,
      -                       String a_default, Vector allowed_values,
      +                       String a_default, Vector<?> allowed_values,
                              AttributeList a_next
                             )
         {
      @@ -251,7 +251,7 @@ public final class AttributeList
         /**
          * Get the allowed values of this attribute.
          */
      -  public Enumeration getValues()
      +  public Enumeration<?> getValues()
         {
           return values.elements();
         }
      diff --git a/libjava/classpath/javax/swing/text/html/parser/ContentModel.java b/libjava/classpath/javax/swing/text/html/parser/ContentModel.java
      index 70e9c2acbff..d5c4418de27 100644
      --- a/libjava/classpath/javax/swing/text/html/parser/ContentModel.java
      +++ b/libjava/classpath/javax/swing/text/html/parser/ContentModel.java
      @@ -151,13 +151,15 @@ public final class ContentModel
          * discarded.
          * @param elements - a vector to add the values to.
          */
      -  public void getElements(Vector elements)
      +  public void getElements(Vector<Element> elements)
         {
           ContentModel c = this;
       
           while (c != null)
             {
      -        elements.add(c.content);
      +        // FIXME: correct?
      +        if (c.content instanceof Element)
      +          elements.add((Element) c.content);
               c = c.next;
             }
         }
      diff --git a/libjava/classpath/javax/swing/text/html/parser/DTD.java b/libjava/classpath/javax/swing/text/html/parser/DTD.java
      index 16bc5b0d6af..ae3c184f153 100644
      --- a/libjava/classpath/javax/swing/text/html/parser/DTD.java
      +++ b/libjava/classpath/javax/swing/text/html/parser/DTD.java
      @@ -88,7 +88,7 @@ public class DTD
         /**
          * The table of existing available DTDs.
          */
      -  static Hashtable dtdHash = new Hashtable();
      +  static Hashtable<String,DTD> dtdHash = new Hashtable<String,DTD>();
       
         /**
          * The applet element for this DTD.
      @@ -148,12 +148,13 @@ public class DTD
         /**
          * The element for accessing all DTD elements by name.
          */
      -  public Hashtable elementHash = new Hashtable();
      +  public Hashtable<String,Element> elementHash =
      +    new Hashtable<String,Element>();
       
         /**
          * The entity table for accessing all DTD entities by name.
          */
      -  public Hashtable entityHash = new Hashtable();
      +  public Hashtable<Object, Entity> entityHash = new Hashtable<Object, Entity>();
       
         /**
          *  The name of this DTD.
      @@ -165,7 +166,7 @@ public class DTD
          * javax.swing.text.html.parser.Element#index field of all elements
          * in this vector is set to the element position in this vector.
          */
      -  public Vector elements = new Vector();
      +  public Vector<Element> elements = new Vector<Element>();
       
         /** Create a new DTD with the specified name. */
         protected DTD(String a_name)
      @@ -224,7 +225,7 @@ public class DTD
           String name = Entity.mapper.get(id);
       
           if (name != null)
      -      return (Entity) entityHash.get(name);
      +      return entityHash.get(name);
           else
             return null;
         }
      @@ -269,7 +270,7 @@ public class DTD
          */
         public void defineAttributes(String forElement, AttributeList attributes)
         {
      -    Element e = (Element) elementHash.get(forElement.toLowerCase());
      +    Element e = elementHash.get(forElement.toLowerCase());
       
           if (e == null)
             e = newElement(forElement);
      @@ -420,7 +421,7 @@ public class DTD
           if (allowed_values != null)
             {
               StringTokenizer st = new StringTokenizer(allowed_values, " \t|");
      -        Vector v = new Vector(st.countTokens());
      +        Vector<String> v = new Vector<String>(st.countTokens());
       
               while (st.hasMoreTokens())
                 v.add(st.nextToken());
      @@ -571,7 +572,7 @@ public class DTD
          */
         private Element newElement(String name)
         {
      -    Element e = (Element) elementHash.get(name.toLowerCase());
      +    Element e = elementHash.get(name.toLowerCase());
       
           if (e == null)
             {
      diff --git a/libjava/classpath/javax/swing/text/html/parser/DocumentParser.java b/libjava/classpath/javax/swing/text/html/parser/DocumentParser.java
      index 062606d17ba..f717d69cbda 100644
      --- a/libjava/classpath/javax/swing/text/html/parser/DocumentParser.java
      +++ b/libjava/classpath/javax/swing/text/html/parser/DocumentParser.java
      @@ -38,13 +38,13 @@ exception statement from your version. */
       
       package javax.swing.text.html.parser;
       
      -import gnu.javax.swing.text.html.parser.htmlAttributeSet;
       import javax.swing.text.html.parser.Parser;
       
       import java.io.IOException;
       import java.io.Reader;
       
       import javax.swing.text.BadLocationException;
      +import javax.swing.text.SimpleAttributeSet;
       import javax.swing.text.html.HTMLEditorKit;
       
       /**
      @@ -117,7 +117,7 @@ public class DocumentParser
           protected final void handleStartTag(TagElement tag)
           {
             parser.handleStartTag(tag);
      -      htmlAttributeSet attributes = gnu.getAttributes();
      +      SimpleAttributeSet attributes = gnu.getAttributes();
       
             if (tag.fictional())
               attributes.addAttribute(HTMLEditorKit.ParserCallback.IMPLIED,
      diff --git a/libjava/classpath/javax/swing/text/html/parser/ParserDelegator.java b/libjava/classpath/javax/swing/text/html/parser/ParserDelegator.java
      index 70636d92923..cdd339b8f21 100644
      --- a/libjava/classpath/javax/swing/text/html/parser/ParserDelegator.java
      +++ b/libjava/classpath/javax/swing/text/html/parser/ParserDelegator.java
      @@ -38,13 +38,13 @@ exception statement from your version. */
       package javax.swing.text.html.parser;
       
       import gnu.javax.swing.text.html.parser.HTML_401F;
      -import gnu.javax.swing.text.html.parser.htmlAttributeSet;
       
       import java.io.IOException;
       import java.io.Reader;
       import java.io.Serializable;
       
       import javax.swing.text.BadLocationException;
      +import javax.swing.text.SimpleAttributeSet;
       import javax.swing.text.html.HTMLEditorKit;
       import javax.swing.text.html.HTMLEditorKit.ParserCallback;
       
      @@ -93,7 +93,7 @@ public class ParserDelegator
       
           protected final void handleStartTag(TagElement tag)
           {
      -      htmlAttributeSet attributes = gnu.getAttributes();
      +      SimpleAttributeSet attributes = gnu.getAttributes();
       
             if (tag.fictional())
               attributes.addAttribute(ParserCallback.IMPLIED, Boolean.TRUE);
      diff --git a/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java b/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java
      index 155343f5bcc..4a6899fbeae 100644
      --- a/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java
      +++ b/libjava/classpath/javax/swing/tree/AbstractLayoutCache.java
      @@ -149,9 +149,11 @@ public abstract class AbstractLayoutCache
         protected Rectangle getNodeDimensions(Object value, int row, int depth,
                                               boolean expanded, Rectangle bounds)
         {
      -    if (nodeDimensions == null)
      -      throw new InternalError("The NodeDimensions are not set");
      -    return nodeDimensions.getNodeDimensions(value, row, depth, expanded, bounds);
      +    Rectangle d = null;
      +    if (nodeDimensions != null)
      +      d = nodeDimensions.getNodeDimensions(value, row, depth, expanded,
      +					   bounds);
      +    return d;
         }
       
         /**
      @@ -224,7 +226,12 @@ public abstract class AbstractLayoutCache
          */
         public void setSelectionModel(TreeSelectionModel model)
         {
      +    if (treeSelectionModel != null)
      +      treeSelectionModel.setRowMapper(null);
           treeSelectionModel = model;
      +    if (treeSelectionModel != null)
      +      treeSelectionModel.setRowMapper(this);
      +    
         }
       
         /**
      @@ -337,7 +344,7 @@ public abstract class AbstractLayoutCache
          * 
          * @return Enumeration
          */
      -  public abstract Enumeration getVisiblePathsFrom(TreePath path);
      +  public abstract Enumeration<TreePath> getVisiblePathsFrom(TreePath path);
       
         /**
          * getVisibleChildCount
      @@ -425,9 +432,13 @@ public abstract class AbstractLayoutCache
          */
         public int[] getRowsForPaths(TreePath[] paths)
         {
      -    int[] rows = new int[paths.length];
      -    for (int i = 0; i < rows.length; i++)
      -      rows[i] = getRowForPath(paths[i]);
      +    int[] rows = null;
      +    if (paths != null)
      +      {
      +        rows = new int[paths.length];
      +        for (int i = 0; i < rows.length; i++)
      +          rows[i] = getRowForPath(paths[i]);
      +      }
           return rows;
         }
       
      @@ -440,6 +451,6 @@ public abstract class AbstractLayoutCache
          */
         protected boolean isFixedRowHeight()
         {
      -    return false; 
      +    return rowHeight > 0;
         }
       }
      diff --git a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
      index 6951b960005..9f587946fc2 100644
      --- a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
      +++ b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
      @@ -67,7 +67,7 @@ public class DefaultMutableTreeNode
          * An empty enumeration, returned by {@link #children()} if a node has no
          * children.
          */
      -  public static final Enumeration EMPTY_ENUMERATION =
      +  public static final Enumeration<TreeNode> EMPTY_ENUMERATION =
           EmptyEnumeration.getInstance();
       
         /**
      @@ -78,7 +78,7 @@ public class DefaultMutableTreeNode
         /**
          * The child nodes for this node (may be empty).
          */
      -  protected Vector children = new Vector();
      +  protected Vector<MutableTreeNode> children = new Vector<MutableTreeNode>();
       
         /**
          * userObject
      @@ -480,7 +480,7 @@ public class DefaultMutableTreeNode
         public TreeNode getSharedAncestor(DefaultMutableTreeNode node)
         {
           TreeNode current = this;
      -    ArrayList list = new ArrayList();
      +    ArrayList<TreeNode> list = new ArrayList<TreeNode>();
       
           while (current != null)
             {
      @@ -527,7 +527,7 @@ public class DefaultMutableTreeNode
               || children.size() == 0)
             return 0;
       
      -    Stack stack = new Stack();
      +    Stack<Integer> stack = new Stack<Integer>();
           stack.push(new Integer(0));
           TreeNode node = getChildAt(0);
           int depth = 0;
      @@ -765,7 +765,7 @@ public class DefaultMutableTreeNode
             throw new IllegalArgumentException();
           
           TreeNode parent = this;
      -    Vector nodes = new Vector();
      +    Vector<TreeNode> nodes = new Vector<TreeNode>();
           nodes.add(this);
       
           while (parent != node && parent != null)
      @@ -1148,7 +1148,7 @@ public class DefaultMutableTreeNode
          static class PostorderEnumeration implements Enumeration
          {
       
      -       Stack nodes = new Stack();
      +       Stack<TreeNode> nodes = new Stack<TreeNode>();
              Stack childrenEnums = new Stack();
       
              PostorderEnumeration(TreeNode node)
      diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java b/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java
      index b0a4d8db823..4c10bfe1af2 100644
      --- a/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java
      +++ b/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java
      @@ -43,7 +43,6 @@ import java.awt.Component;
       import java.awt.Container;
       import java.awt.Dimension;
       import java.awt.Font;
      -import java.awt.FontMetrics;
       import java.awt.Graphics;
       import java.awt.Rectangle;
       import java.awt.event.ActionEvent;
      @@ -59,10 +58,10 @@ import javax.swing.Icon;
       import javax.swing.JTextField;
       import javax.swing.JTree;
       import javax.swing.SwingUtilities;
      +import javax.swing.Timer;
       import javax.swing.UIManager;
       import javax.swing.border.Border;
       import javax.swing.event.CellEditorListener;
      -import javax.swing.event.ChangeEvent;
       import javax.swing.event.EventListenerList;
       import javax.swing.event.TreeSelectionEvent;
       import javax.swing.event.TreeSelectionListener;
      @@ -77,12 +76,6 @@ public class DefaultTreeCellEditor
         implements ActionListener, TreeCellEditor, TreeSelectionListener
       {
         /**
      -   * The number of the fast mouse clicks, required to start the editing 
      -   * session.
      -   */
      -  static int CLICK_COUNT_TO_START = 3;
      -  
      -  /**
          * This container that appears on the tree during editing session.
          * It contains the editing component displays various other editor - 
          * specific parts like editing icon. 
      @@ -99,7 +92,7 @@ public class DefaultTreeCellEditor
            */
           public EditorContainer()
           {
      -      // Do nothing here.
      +      setLayout(null);
           }
       
           /**
      @@ -111,12 +104,6 @@ public class DefaultTreeCellEditor
             // Do nothing here.
           }
          
      -    public void setBounds(Rectangle bounds)
      -    {
      -      super.setBounds(bounds);
      -      doLayout();
      -    }
      -
           /**
            * Overrides Container.paint to paint the node's icon and use the selection
            * color for the background.
      @@ -126,11 +113,20 @@ public class DefaultTreeCellEditor
            */
           public void paint(Graphics g)
           {
      +      // Paint editing icon.
             if (editingIcon != null)
               {
                 // From the previous version, the left margin is taken as half
                 // of the icon width.
      -          editingIcon.paintIcon(this, g, 0, 0);
      +          int y = Math.max(0, (getHeight() - editingIcon.getIconHeight()) / 2);
      +          editingIcon.paintIcon(this, g, 0, y);
      +        }
      +      // Paint border.
      +      Color c = getBorderSelectionColor();
      +      if (c != null)
      +        {
      +          g.setColor(c);
      +          g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
               }
             super.paint(g);
           }
      @@ -141,27 +137,33 @@ public class DefaultTreeCellEditor
            */
           public void doLayout()
           {
      -      // The offset of the editing component.
      -      int eOffset;
      +      if (editingComponent != null)
      +        {
      +          editingComponent.getPreferredSize();
      +          editingComponent.setBounds(offset, 0, getWidth() - offset,
      +                                     getHeight());
      +        }
      +      }
       
      -      // Move the component to the left, leaving room for the editing icon:
      -      if (editingIcon != null)
      -        eOffset = editingIcon.getIconWidth();
      +    public Dimension getPreferredSize()
      +    {
      +      Dimension dim;
      +      if (editingComponent != null)
      +        {
      +          dim = editingComponent.getPreferredSize();
      +          dim.width += offset + 5;
      +          if (renderer != null)
      +            {
      +              Dimension r = renderer.getPreferredSize();
      +              dim.height = Math.max(dim.height, r.height);
      +            }
      +          if (editingIcon != null)
      +            dim.height = Math.max(dim.height, editingIcon.getIconHeight());
      +          dim.width = Math.max(100, dim.width);
      +        }
             else
      -        eOffset = 0;
      -
      -      Rectangle bounds = getBounds();
      -      Component c = getComponent(0);
      -      c.setLocation(eOffset, 0);
      -
      -      // Span the editing component near over all window width.
      -      c.setSize(bounds.width - eOffset, bounds.height);
      -      /*
      -       * @specnote the Sun sets some more narrow editing component width (it is
      -       * not documented how does it is calculated). However as our text field is
      -       * still not able to auto - scroll horizontally, replicating such strategy
      -       * would prevent adding extra characters to the text being edited.
      -       */
      +        dim = new Dimension(0, 0);
      +      return dim;
           }
         }
       
      @@ -227,46 +229,15 @@ public class DefaultTreeCellEditor
            */
           public Dimension getPreferredSize()
           {
      -      String s = getText();
      -
      -      Font f = getFont();
      -
      -      if (f != null)
      +      Dimension size = super.getPreferredSize();
      +      if (renderer != null && DefaultTreeCellEditor.this.getFont() == null)
               {
      -          FontMetrics fm = getToolkit().getFontMetrics(f);
      -
      -          return new Dimension(SwingUtilities.computeStringWidth(fm, s),
      -                               fm.getHeight());
      +          size.height = renderer.getPreferredSize().height;
               }
             return renderer.getPreferredSize();
           }
         }
         
      -  /**
      -   * Listens for the events from the realEditor.
      -   */
      -  class RealEditorListener implements CellEditorListener
      -  {
      -    /**
      -     * The method is called when the editing has been cancelled.
      -     * @param event unused
      -     */
      -    public void editingCanceled(ChangeEvent event)
      -    {
      -      cancelCellEditing();
      -    }
      -
      -    /**
      -     * The method is called after completing the editing session.
      -     * 
      -     * @param event unused
      -     */
      -    public void editingStopped(ChangeEvent event)
      -    {
      -      stopCellEditing();
      -    }
      -  }
      -
         private EventListenerList listenerList = new EventListenerList();
         
         /**
      @@ -367,21 +338,14 @@ public class DefaultTreeCellEditor
         public DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer,
                                      TreeCellEditor editor)
         {
      -    setTree(tree);
           this.renderer = renderer;
      -    
      -    if (editor == null)
      -      editor = createTreeCellEditor();
      -    else
      -      editor.addCellEditorListener(new RealEditorListener());
      -    
           realEditor = editor;
      -    
      -    lastPath = tree.getLeadSelectionPath();
      -    tree.addTreeSelectionListener(this);
      +    if (realEditor == null)
      +      realEditor = createTreeCellEditor();
           editingContainer = createContainer();
      -    setFont(UIManager.getFont("Tree.font"));
      -    setBorderSelectionColor(UIManager.getColor("Tree.selectionBorderColor"));
      +    setTree(tree);
      +    Color c = UIManager.getColor("Tree.editorBorderSelectionColor");
      +    setBorderSelectionColor(c);
         }
       
         /**
      @@ -505,19 +469,36 @@ public class DefaultTreeCellEditor
          * @return the component for editing
          */
         public Component getTreeCellEditorComponent(JTree tree, Object value,
      -                                              boolean isSelected, boolean expanded,
      +                                              boolean isSelected,
      +                                              boolean expanded,
                                                     boolean leaf, int row)
         {
      -    if (realEditor == null)
      -      realEditor = createTreeCellEditor();
      -
      -    return realEditor.getTreeCellEditorComponent(tree, value, isSelected,
      -                                                        expanded, leaf, row);
      +    setTree(tree);
      +    lastRow = row;
      +    determineOffset(tree, value, isSelected, expanded, leaf, row);
      +    if (editingComponent != null)
      +      editingContainer.remove(editingComponent);
      +
      +    editingComponent = realEditor.getTreeCellEditorComponent(tree, value,
      +                                                             isSelected,
      +                                                             expanded, leaf,
      +                                                             row);
      +    Font f = getFont();
      +    if (f == null)
      +      {
      +        if (renderer != null)
      +          f = renderer.getFont();
      +        if (f == null)
      +          f = tree.getFont();
      +      }
      +    editingContainer.setFont(f);
      +    prepareForEditing();
      +    return editingContainer;
         }
       
         /**
          * Returns the value currently being edited (requests it from the
      -   * {@link realEditor}.
      +   * {@link #realEditor}.
          * 
          * @return the value currently being edited
          */
      @@ -535,16 +516,48 @@ public class DefaultTreeCellEditor
          * @return true if editing can be started
          */
         public boolean isCellEditable(EventObject event)
      -  { 
      -    if (editingComponent == null)
      -        configureEditingComponent(tree, renderer, realEditor);
      -    
      -    if (editingComponent != null && realEditor.isCellEditable(event))
      +  {
      +    boolean ret = false;
      +    boolean ed = false;
      +    if (event != null)
             {
      -        prepareForEditing();
      -        return true;
      +        if (event.getSource() instanceof JTree)
      +          {
      +            setTree((JTree) event.getSource());
      +            if (event instanceof MouseEvent)
      +              {
      +                MouseEvent me = (MouseEvent) event;
      +                TreePath path = tree.getPathForLocation(me.getX(), me.getY());
      +                ed = lastPath != null && path != null && lastPath.equals(path);
      +                if (path != null)
      +                  {
      +                    lastRow = tree.getRowForPath(path);
      +                    Object val = path.getLastPathComponent();
      +                    boolean isSelected = tree.isRowSelected(lastRow);
      +                    boolean isExpanded = tree.isExpanded(path);
      +                    TreeModel m = tree.getModel();
      +                    boolean isLeaf = m.isLeaf(val);
      +                    determineOffset(tree, val, isSelected, isExpanded, isLeaf,
      +                                    lastRow);
      +                  }
      +              }
      +          }
             }
      -    return false;
      +    if (! realEditor.isCellEditable(event))
      +      ret = false;
      +    else 
      +      {
      +        if (canEditImmediately(event))
      +          ret = true;
      +        else if (ed && shouldStartEditingTimer(event))
      +          startEditingTimer();
      +        else if (timer != null && timer.isRunning())
      +          timer.stop();
      +      }
      +    if (ret)
      +      prepareForEditing();
      +    return ret;
      +        
         }
       
         /**
      @@ -567,14 +580,13 @@ public class DefaultTreeCellEditor
          */
         public boolean stopCellEditing()
         {
      -    if (editingComponent != null)
      +    boolean ret = false;
      +    if (realEditor.stopCellEditing())
             {
      -        stopEditingTimer();
      -        tree.stopEditing();
      -        editingComponent = null;
      -        return true;
      +        finish();
      +        ret = true;
             }
      -    return false;
      +    return ret;
         }
       
         /**
      @@ -583,21 +595,15 @@ public class DefaultTreeCellEditor
          */
         public void cancelCellEditing()
         {
      -    if (editingComponent != null)
      -      {
      -        tree.cancelEditing();
      -        editingComponent = null;
      -      }
      -    stopEditingTimer();
      +    realEditor.cancelCellEditing();
      +    finish();
         }
      -  
      -  /**
      -   * Stop the editing timer, if it is installed and running.
      -   */
      -  private void stopEditingTimer()
      +
      +  private void finish()
         {
      -    if (timer != null && timer.isRunning())
      -      timer.stop();
      +    if (editingComponent != null)
      +      editingContainer.remove(editingComponent);
      +    editingComponent = null;
         }
       
         /**
      @@ -640,10 +646,18 @@ public class DefaultTreeCellEditor
          */
         public void valueChanged(TreeSelectionEvent e)
         {
      -    tPath = lastPath;
      -    lastPath = e.getNewLeadSelectionPath();
      -    lastRow = tree.getRowForPath(lastPath);
      -    stopCellEditing();
      +    if (tree != null)
      +      {
      +        if (tree.getSelectionCount() == 1)
      +          lastPath = tree.getSelectionPath();
      +        else
      +          lastPath = null;
      +      }
      +    // TODO: We really should do the following here, but can't due
      +    // to buggy DefaultTreeSelectionModel. This selection model
      +    // should only fire if the selection actually changes.
      +//    if (timer != null)
      +//      timer.stop();
         }
         
         /**
      @@ -653,6 +667,8 @@ public class DefaultTreeCellEditor
          */
         public void actionPerformed(ActionEvent e)
         {
      +    if (tree != null && lastPath != null)
      +      tree.startEditingAtPath(lastPath);
         }
       
         /**
      @@ -664,7 +680,17 @@ public class DefaultTreeCellEditor
          */
         protected void setTree(JTree newTree)
         {
      -    tree = newTree;
      +    if (tree != newTree)
      +      {
      +        if (tree != null)
      +          tree.removeTreeSelectionListener(this);
      +        tree = newTree;
      +        if (tree != null)
      +          tree.addTreeSelectionListener(this);
      +
      +        if (timer != null)
      +          timer.stop();
      +      }
         }
       
         /**
      @@ -675,10 +701,14 @@ public class DefaultTreeCellEditor
          */
         protected boolean shouldStartEditingTimer(EventObject event)
         {
      -    if ((event instanceof MouseEvent) && 
      -        ((MouseEvent) event).getClickCount() == 1)
      -      return true;
      -    return false;
      +    boolean ret = false;
      +    if (event instanceof MouseEvent)
      +      {
      +        MouseEvent me = (MouseEvent) event;
      +        ret = SwingUtilities.isLeftMouseButton(me) && me.getClickCount() == 1
      +              && inHitRegion(me.getX(), me.getY());
      +      }
      +    return ret;
         }
       
         /**
      @@ -686,8 +716,12 @@ public class DefaultTreeCellEditor
          */
         protected void startEditingTimer()
         {
      -    if (timer != null)
      -      timer.start();
      +    if (timer == null)
      +      {
      +        timer = new Timer(1200, this);
      +        timer.setRepeats(false);
      +      }
      +    timer.start();
         }
       
         /**
      @@ -723,7 +757,6 @@ public class DefaultTreeCellEditor
         protected boolean inHitRegion(int x, int y)
         {
           Rectangle bounds = tree.getPathBounds(lastPath);
      -    
           return bounds.contains(x, y);
         }
       
      @@ -739,13 +772,24 @@ public class DefaultTreeCellEditor
         protected void determineOffset(JTree tree, Object value, boolean isSelected,
                                        boolean expanded, boolean leaf, int row)
         {
      -    renderer.getTreeCellRendererComponent(tree, value, isSelected, expanded, 
      -                                          leaf, row, true);
      -    Icon c = renderer.getIcon();
      -    if (c != null)
      -        offset = renderer.getIconTextGap() + c.getIconWidth();
      +    if (renderer != null)
      +      {
      +        if (leaf)
      +          editingIcon = renderer.getLeafIcon();
      +        else if (expanded)
      +          editingIcon = renderer.getOpenIcon();
      +        else
      +          editingIcon = renderer.getClosedIcon();
      +        if (editingIcon != null)
      +          offset = renderer.getIconTextGap() + editingIcon.getIconWidth();
      +        else
      +          offset = renderer.getIconTextGap();
      +      }
           else
      -      offset = 0;
      +      {
      +        editingIcon = null;
      +        offset = 0;
      +      }
         }
       
         /**
      @@ -754,8 +798,8 @@ public class DefaultTreeCellEditor
          */
         protected void prepareForEditing()
         {
      -    editingContainer.removeAll();
      -    editingContainer.add(editingComponent);
      +    if (editingComponent != null)
      +      editingContainer.add(editingComponent);
         }
       
         /**
      @@ -776,10 +820,10 @@ public class DefaultTreeCellEditor
          */
         protected TreeCellEditor createTreeCellEditor()
         {
      -    DefaultCellEditor editor = new DefaultCellEditor(new DefaultTreeCellEditor.DefaultTextField(
      -                                  UIManager.getBorder("Tree.selectionBorder")));
      -    editor.addCellEditorListener(new RealEditorListener());
      -    editor.setClickCountToStart(CLICK_COUNT_TO_START);
      +    Border border = UIManager.getBorder("Tree.editorBorder");
      +    JTextField tf = new DefaultTreeCellEditor.DefaultTextField(border);
      +    DefaultCellEditor editor = new DefaultCellEditor(tf);
      +    editor.setClickCountToStart(1);
           realEditor = editor;
           return editor;
         }
      diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java b/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
      index e120b71c167..3766485abdb 100644
      --- a/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
      +++ b/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
      @@ -77,7 +77,7 @@ public class DefaultTreeCellRenderer
         protected boolean hasFocus;
       
         /**
      -   * drawsFocusBorderAroundIcon  // FIXME: is this used?
      +   * Indicates if the focus border is also drawn around the icon.
          */
         private boolean drawsFocusBorderAroundIcon;
       
      @@ -152,6 +152,8 @@ public class DefaultTreeCellRenderer
           setBackgroundNonSelectionColor(UIManager.getColor("Tree.textBackground"));
           setBackgroundSelectionColor(UIManager.getColor("Tree.selectionBackground"));
           setBorderSelectionColor(UIManager.getColor("Tree.selectionBorderColor"));
      +    Object val = UIManager.get("Tree.drawsFocusBorderAroundIcon");
      +    drawsFocusBorderAroundIcon = val != null && ((Boolean) val).booleanValue();
         }
       
         /**
      @@ -499,67 +501,75 @@ public class DefaultTreeCellRenderer
          */
         public void paint(Graphics g)
         {
      -    // paint background
      -    Rectangle vr = new Rectangle();
      -    Rectangle ir = new Rectangle();
      -    Rectangle tr = new Rectangle();
      -
      -    Insets insets = new Insets(0, 0, 0, 0);
      -    Border border = UIManager.getBorder("Tree.selectionBorder");
      -    if (border != null)
      -      insets = border.getBorderInsets(this);
      -
      -    FontMetrics fm = getToolkit().getFontMetrics(getFont());
      -    SwingUtilities.layoutCompoundLabel((JLabel) this, fm, getText(),
      -                                       getIcon(), getVerticalAlignment(),
      -                                       getHorizontalAlignment(),
      -                                       getVerticalTextPosition(),
      -                                       getHorizontalTextPosition(), vr, ir, tr,
      -                                       getIconTextGap());
      -
      -    // Reusing one rectangle.
      -    Rectangle bounds = getBounds(ir);
      -    
      -    bounds.x = tr.x - insets.left;
      -    bounds.width = tr.width + insets.left + insets.right;
      -    
      -    g.setColor(super.getBackground());
      -    g.fillRect(bounds.x, bounds.y, bounds.width, bounds.height);
      +    // Determine background color.
      +    Color bgColor;
      +    if (selected)
      +      bgColor = getBackgroundSelectionColor();
      +    else
      +      {
      +        bgColor = getBackgroundNonSelectionColor();
      +	if (bgColor == null)
      +          bgColor = getBackground();
      +      }
      +    // Paint background.
      +    int xOffset = -1;
      +    if (bgColor != null)
      +      {
      +        Icon i = getIcon();
      +	xOffset = getXOffset();
      +	g.setColor(bgColor);
      +	g.fillRect(xOffset, 0, getWidth() - xOffset, getHeight());
      +      }
       
      -    super.paint(g);
      -    
      -    // Paint the border of the focused element only (lead selection)
           if (hasFocus)
             {
      -        Color b = getBorderSelectionColor();
      -        if (b != null)
      -          {
      -            g.setColor(b);
      -            g.drawRect(bounds.x, bounds.y, bounds.width, bounds.height - 1);
      -          }
      +        if (drawsFocusBorderAroundIcon)
      +          xOffset = 0;
      +	else if (xOffset == -1)
      +          xOffset = getXOffset();
      +	paintFocus(g, xOffset, 0, getWidth() - xOffset, getHeight());
      +      }
      +    super.paint(g);
      +  }
      +
      +  /**
      +   * Paints the focus indicator.
      +   */
      +  private void paintFocus(Graphics g, int x, int y, int w, int h)
      +  {
      +    Color col = getBorderSelectionColor();
      +    if (col != null)
      +      {
      +        g.setColor(col);
      +	g.drawRect(x, y, w - 1, h - 1);
             }
         }
       
         /**
      +   * Determines the X offset of the label that is caused by
      +   * the icon.
      +   *
      +   * @return the X offset of the label
      +   */
      +  private int getXOffset()
      +  {
      +    Icon i = getIcon();
      +    int offs = 0;
      +    if (i != null && getText() != null)
      +      offs = i.getIconWidth() + Math.max(0, getIconTextGap() - 1);
      +    return offs;
      +  }
      +
      +  /**
          * Returns the preferred size of the cell.
          * 
          * @return The preferred size of the cell.
          */
         public Dimension getPreferredSize()
         {
      -    Rectangle vr = new Rectangle();
      -    Rectangle ir = new Rectangle();
      -    Rectangle tr = new Rectangle();
      -
      -    FontMetrics fm = getToolkit().getFontMetrics(getFont());
      -    SwingUtilities.layoutCompoundLabel((JLabel) this, fm, getText(),
      -                                       getIcon(), getVerticalAlignment(),
      -                                       getHorizontalAlignment(),
      -                                       getVerticalTextPosition(),
      -                                       getHorizontalTextPosition(), vr, ir, tr,
      -                                       getIconTextGap());
      -    Rectangle cr = ir.union(tr);
      -    return new Dimension(cr.width, cr.height);
      +    Dimension size = super.getPreferredSize();
      +    size.width += 3;
      +    return size;
         } 
       
         /**
      diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeModel.java b/libjava/classpath/javax/swing/tree/DefaultTreeModel.java
      index 5819d15b627..afee7ea22fa 100644
      --- a/libjava/classpath/javax/swing/tree/DefaultTreeModel.java
      +++ b/libjava/classpath/javax/swing/tree/DefaultTreeModel.java
      @@ -210,17 +210,32 @@ public class DefaultTreeModel
         }
       
         /**
      -   * isLeaf
      +   * Returns if the specified node is a leaf or not. When
      +   * {@link #asksAllowsChildren} is true, then this checks if the TreeNode
      +   * allows children, otherwise it returns the TreeNode's <code>leaf</code>
      +   * property.
          * 
      -   * @param node TODO
      -   * @return boolean
      +   * @param node the node to check
      +   *
      +   * @return boolean <code>true</code> if the node is a leaf node,
      +   *         <code>false</code> otherwise
      +   *
      +   * @throws ClassCastException if the specified node is not a
      +   *         <code>TreeNode</code> instance
      +   *
      +   * @see TreeNode#getAllowsChildren()
      +   * @see TreeNode#isLeaf()
          */
         public boolean isLeaf(Object node)
         {
      -    if (node instanceof TreeNode)
      -      return ((TreeNode) node).isLeaf();
      +    // The RI throws a ClassCastException when node isn't a TreeNode, so do we.
      +    TreeNode treeNode = (TreeNode) node;
      +    boolean leaf;
      +    if (asksAllowsChildren)
      +      leaf = ! treeNode.getAllowsChildren();
           else
      -      return true;
      +      leaf = treeNode.isLeaf();
      +    return leaf;
         }
       
         /**
      @@ -600,7 +615,7 @@ public class DefaultTreeModel
          *
          * @since 1.3
          */
      -  public EventListener[] getListeners(Class listenerType)
      +  public <T extends EventListener> T[] getListeners(Class<T> listenerType)
         {
           return listenerList.getListeners(listenerType);
         }
      diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java b/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
      index 0684ef76659..3d9c67728bd 100644
      --- a/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
      +++ b/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
      @@ -44,6 +44,7 @@ import java.io.ObjectInputStream;
       import java.io.ObjectOutputStream;
       import java.io.Serializable;
       import java.util.Arrays;
      +import java.util.BitSet;
       import java.util.EventListener;
       import java.util.HashSet;
       import java.util.Iterator;
      @@ -67,7 +68,39 @@ import javax.swing.event.TreeSelectionListener;
       public class DefaultTreeSelectionModel
           implements Cloneable, Serializable, TreeSelectionModel
       {
      -  
      +
      +  /**
      +   * According to the API docs, the method
      +   * {@link DefaultTreeSelectionModel#notifyPathChange} should
      +   * expect instances of a class PathPlaceHolder in the Vector parameter.
      +   * This seems to be a non-public class, so I can only make guesses about the
      +   * use of it.
      +   */
      +  private static class PathPlaceHolder
      +  {
      +    /**
      +     * The path that we wrap.
      +     */
      +    TreePath path;
      +
      +    /**
      +     * Indicates if the path is new or already in the selection.
      +     */
      +    boolean isNew;
      +
      +    /**
      +     * Creates a new instance.
      +     *
      +     * @param p the path to wrap
      +     * @param n if the path is new or already in the selection
      +     */
      +    PathPlaceHolder(TreePath p, boolean n)
      +    {
      +      path = p;
      +      isNew = n;
      +    }
      +  }
      +
         /**
          * Use serialVersionUID for interoperability.
          */
      @@ -124,12 +157,36 @@ public class DefaultTreeSelectionModel
         protected int leadRow = -1;
       
         /**
      +   * A supporting datastructure that is used in addSelectionPaths() and
      +   * removeSelectionPaths(). It contains currently selected paths.
      +   *
      +   * @see #addSelectionPaths(TreePath[])
      +   * @see #removeSelectionPaths(TreePath[])
      +   * @see #setSelectionPaths(TreePath[])
      +   */
      +  private transient HashSet selectedPaths;
      +
      +  /**
      +   * A supporting datastructure that is used in addSelectionPaths() and
      +   * removeSelectionPaths(). It contains the paths that are added or removed.
      +   *
      +   * @see #addSelectionPaths(TreePath[])
      +   * @see #removeSelectionPaths(TreePath[])
      +   * @see #setSelectionPaths(TreePath[])
      +   */
      +  private transient HashSet tmpPaths;
      +
      +  /**
          * Constructs a new DefaultTreeSelectionModel.
          */
         public DefaultTreeSelectionModel()
         {
           setSelectionMode(DISCONTIGUOUS_TREE_SELECTION);
      +    listSelectionModel = new DefaultListSelectionModel();
           listenerList = new EventListenerList();
      +    leadIndex = -1;
      +    tmpPaths = new HashSet();
      +    selectedPaths = new HashSet();
         }
       
         /**
      @@ -144,12 +201,14 @@ public class DefaultTreeSelectionModel
         {
           DefaultTreeSelectionModel cloned = 
             (DefaultTreeSelectionModel) super.clone();
      -    
      -    // Clone the selection and the list selection model.
      +    cloned.changeSupport = null;
           cloned.selection = (TreePath[]) selection.clone();
      -    if (listSelectionModel != null)
      -      cloned.listSelectionModel 
      -        = (DefaultListSelectionModel) listSelectionModel.clone();
      +    cloned.listenerList = new EventListenerList();
      +    cloned.listSelectionModel =
      +      (DefaultListSelectionModel) listSelectionModel.clone();
      +    cloned.selectedPaths = new HashSet();
      +    cloned.tmpPaths = new HashSet();
      +
           return cloned;
         }
       
      @@ -209,6 +268,7 @@ public class DefaultTreeSelectionModel
         public void setRowMapper(RowMapper mapper)
         {
           rowMapper = mapper;
      +    resetRowSelection();
         }
       
         /**
      @@ -236,8 +296,18 @@ public class DefaultTreeSelectionModel
          */
         public void setSelectionMode(int mode)
         {
      +    int oldMode = selectionMode;
           selectionMode = mode;
      -    insureRowContinuity();
      +    // Make sure we have a valid selection mode.
      +    if (selectionMode != SINGLE_TREE_SELECTION
      +        && selectionMode != CONTIGUOUS_TREE_SELECTION
      +        && selectionMode != DISCONTIGUOUS_TREE_SELECTION)
      +      selectionMode = DISCONTIGUOUS_TREE_SELECTION;
      +
      +    // Fire property change event.
      +    if (oldMode != selectionMode && changeSupport != null)
      +      changeSupport.firePropertyChange(SELECTION_MODE_PROPERTY, oldMode,
      +                                       selectionMode);
         }
       
         /**
      @@ -262,32 +332,10 @@ public class DefaultTreeSelectionModel
          */
         public void setSelectionPath(TreePath path)
         {
      -    // The most frequently only one cell in the tree is selected.
      -    TreePath[] ose = selection;
      -    selection = new TreePath[] { path };
      -    TreePath oldLead = leadPath;
      -    leadIndex = 0;
      -    leadRow = getRow(path);
      -    leadPath = path;
      -
      -    TreeSelectionEvent event;
      -
      -    if (ose != null && ose.length > 0)
      -      {
      -        // The first item in the path list is the selected path.
      -        // The remaining items are unselected pathes.
      -        TreePath[] changed = new TreePath[ose.length + 1];
      -        boolean[] news = new boolean[changed.length];
      -        news[0] = true;
      -        changed[0] = path;
      -        System.arraycopy(ose, 0, changed, 1, ose.length);
      -        event = new TreeSelectionEvent(this, changed, news, oldLead, path);
      -      }
      -    else
      -      {
      -        event = new TreeSelectionEvent(this, path, true, oldLead, path);
      -      }
      -    fireValueChanged(event);
      +    TreePath[] paths = null;
      +    if (path != null)
      +      paths = new TreePath[]{ path };
      +    setSelectionPaths(paths);
         }
         
         /**
      @@ -307,7 +355,7 @@ public class DefaultTreeSelectionModel
               AbstractLayoutCache ama = (AbstractLayoutCache) mapper;
               return ama.getRowForPath(path);
             }
      -    else
      +    else if (mapper != null)
             {
               // Generic non optimized implementation.
               int[] rows = mapper.getRowsForPaths(new TreePath[] { path });
      @@ -316,6 +364,7 @@ public class DefaultTreeSelectionModel
               else
                 return rows[0];
             }
      +    return -1;
         }
       
         /**
      @@ -327,10 +376,90 @@ public class DefaultTreeSelectionModel
          */
         public void setSelectionPaths(TreePath[] paths)
         {
      -    // Must be called, as defined in JDK API 1.4.
      -    insureUniqueness();
      -    clearSelection();
      -    addSelectionPaths(paths);
      +    int oldLength = 0;
      +    if (selection != null)
      +      oldLength = selection.length;
      +    int newLength = 0;
      +    if (paths != null)
      +      newLength = paths.length;
      +    if (newLength > 0 || oldLength > 0)
      +      {
      +        // For SINGLE_TREE_SELECTION and for CONTIGUOUS_TREE_SELECTION with
      +        // a non-contiguous path, we only allow the first path element.
      +        if ((selectionMode == SINGLE_TREE_SELECTION && newLength > 1)
      +            || (selectionMode == CONTIGUOUS_TREE_SELECTION && newLength > 0
      +                && ! arePathsContiguous(paths)))
      +          {
      +            paths = new TreePath[] { paths[0] };
      +            newLength = 1;
      +          }
      +        // Find new paths.
      +        Vector changedPaths = null;
      +        tmpPaths.clear();
      +        int validPaths = 0;
      +        TreePath oldLeadPath = leadPath;
      +        for (int i = 0; i < newLength; i++)
      +          {
      +            if (paths[i] != null && ! tmpPaths.contains(paths[i]))
      +              {
      +                validPaths++;
      +                tmpPaths.add(paths[i]);
      +                if (! selectedPaths.contains(paths[i]))
      +                  {
      +                    if (changedPaths == null)
      +                      changedPaths = new Vector();
      +                    changedPaths.add(new PathPlaceHolder(paths[i], true));
      +                  }
      +                leadPath = paths[i];
      +              }
      +          }
      +        // Put together the new selection.
      +        TreePath[] newSelection = null;
      +        if (validPaths != 0)
      +          {
      +            if (validPaths != newLength)
      +              {
      +                // Some of the paths are already selected, put together
      +                // the new selection carefully.
      +                newSelection = new TreePath[validPaths];
      +                Iterator newPaths = tmpPaths.iterator();
      +                validPaths = 0;
      +                for (int i = 0; newPaths.hasNext(); i++)
      +                  newSelection[i] = (TreePath) newPaths.next();
      +              }
      +            else
      +              {
      +                newSelection = new TreePath[paths.length];
      +                System.arraycopy(paths, 0, newSelection, 0, paths.length);
      +              }
      +          }
      +
      +        // Find paths that have been selected, but are no more.
      +        for (int i = 0; i < oldLength; i++)
      +          {
      +            if (selection[i] != null && ! tmpPaths.contains(selection[i]))
      +              {
      +                if (changedPaths == null)
      +                  changedPaths = new Vector();
      +                changedPaths.add(new PathPlaceHolder(selection[i], false));
      +              }
      +          }
      +
      +        // Perform changes and notification.
      +        selection = newSelection;
      +        HashSet tmp = selectedPaths;
      +        selectedPaths = tmpPaths;
      +        tmpPaths = tmp;
      +        tmpPaths.clear();
      +
      +        // Not necessary, but required according to the specs and to tests.
      +        if (selection != null)
      +          insureUniqueness();
      +        updateLeadIndex();
      +        resetRowSelection();
      +        if (changedPaths != null && changedPaths.size() > 0)
      +          notifyPathChange(changedPaths, oldLeadPath);
      +      }
         }
       
         /**
      @@ -345,29 +474,10 @@ public class DefaultTreeSelectionModel
          */
         public void addSelectionPath(TreePath path)
         {
      -    if (! isPathSelected(path))
      +    if (path != null)
             {
      -        if (selectionMode == SINGLE_TREE_SELECTION || isSelectionEmpty()
      -            || ! canPathBeAdded(path))
      -          setSelectionPath(path);
      -        else
      -          {
      -            TreePath[] temp = new TreePath[selection.length + 1];
      -            System.arraycopy(selection, 0, temp, 0, selection.length);
      -            temp[temp.length - 1] = path;
      -            selection = new TreePath[temp.length];
      -            System.arraycopy(temp, 0, selection, 0, temp.length);
      -          }
      -      }
      -    
      -     if (path != leadPath)
      -       {
      -        TreePath oldLead = leadPath;
      -        leadPath = path;
      -        leadRow = getRow(path);
      -        leadIndex = selection.length - 1;
      -        fireValueChanged(new TreeSelectionEvent(this, path, true, oldLead,
      -                                                leadPath));
      +        TreePath[] add = new TreePath[]{ path };
      +        addSelectionPaths(add);
             }
         }
       
      @@ -380,37 +490,76 @@ public class DefaultTreeSelectionModel
          */
         public void addSelectionPaths(TreePath[] paths)
         {
      -    // Must be called, as defined in JDK API 1.4.
      -    insureUniqueness();
      -
      -    if (paths != null)
      +    int length = paths != null ? paths.length : 0;
      +    if (length > 0)
             {
      -        TreePath v0 = null;
      -        for (int i = 0; i < paths.length; i++)
      +        if (selectionMode == SINGLE_TREE_SELECTION)
      +          setSelectionPaths(paths);
      +        else if (selectionMode == CONTIGUOUS_TREE_SELECTION
      +                 &&  ! canPathsBeAdded(paths))
      +          {
      +            if (arePathsContiguous(paths))
      +              setSelectionPaths(paths);
      +            else
      +              setSelectionPaths(new TreePath[] { paths[0] });
      +          }
      +        else
                 {
      -            v0 = paths[i];
      -            if (! isPathSelected(v0))
      +            Vector changedPaths = null;
      +            tmpPaths.clear();
      +            int validPaths = 0;
      +            TreePath oldLeadPath = leadPath;
      +            int oldPaths = 0;
      +            if (selection != null)
      +              oldPaths = selection.length;
      +            int i;
      +            for (i = 0; i < length; i++)
                     {
      -                if (isSelectionEmpty())
      -                  setSelectionPath(v0);
      -                else
      +                if (paths[i] != null)
                         {
      -                    TreePath[] temp = new TreePath[selection.length + 1];
      -                    System.arraycopy(selection, 0, temp, 0, selection.length);
      -                    temp[temp.length - 1] = v0;
      -                    selection = new TreePath[temp.length];
      -                    System.arraycopy(temp, 0, selection, 0, temp.length);
      +                    if (! selectedPaths.contains(paths[i]))
      +                      {
      +                        validPaths++;
      +                        if (changedPaths == null)
      +                          changedPaths = new Vector();
      +                        changedPaths.add(new PathPlaceHolder(paths[i], true));
      +                        selectedPaths.add(paths[i]);
      +                        tmpPaths.add(paths[i]);
      +                      }
      +                    leadPath = paths[i];
                         }
      -               TreePath oldLead = leadPath;                
      -                leadPath = paths[paths.length - 1];
      -                leadRow = getRow(leadPath);
      -                leadIndex = selection.length - 1;
      -
      -                fireValueChanged(new TreeSelectionEvent(this, v0, true,
      -                                                        oldLead, leadPath));
                     }
      +            if (validPaths > 0)
      +              {
      +                TreePath[] newSelection = new TreePath[oldPaths + validPaths];
      +                if (oldPaths > 0)
      +                  System.arraycopy(selection, 0, newSelection, 0, oldPaths);
      +                if (validPaths != paths.length)
      +                  {
      +                    // Some of the paths are already selected, put together
      +                    // the new selection carefully.
      +                    Iterator newPaths = tmpPaths.iterator();
      +                    i = oldPaths;
      +                    while (newPaths.hasNext())
      +                      {
      +                        newSelection[i] = (TreePath) newPaths.next();
      +                        i++;
      +                      }
      +                  }
      +                else
      +                  System.arraycopy(paths, 0, newSelection, oldPaths,
      +                                   validPaths);
      +                selection = newSelection;
      +                insureUniqueness();
      +                updateLeadIndex();
      +                resetRowSelection();
      +                if (changedPaths != null && changedPaths.size() > 0)
      +                  notifyPathChange(changedPaths, oldLeadPath);
      +              }
      +            else
      +              leadPath = oldLeadPath;
      +            tmpPaths.clear();
                 }
      -        insureRowContinuity();
             }
         }
       
      @@ -422,36 +571,8 @@ public class DefaultTreeSelectionModel
          */
         public void removeSelectionPath(TreePath path)
         {
      -    if (isSelectionEmpty())
      -      return;
      -    
      -    int index = - 1;
      -    if (isPathSelected(path))
      -      {
      -        for (int i = 0; i < selection.length; i++)
      -          {
      -            if (selection[i].equals(path))
      -              {
      -                index = i;
      -                break;
      -              }
      -          }
      -        TreePath[] temp = new TreePath[selection.length - 1];
      -        System.arraycopy(selection, 0, temp, 0, index);
      -        System.arraycopy(selection, index + 1, temp, index, selection.length
      -                                                            - index - 1);
      -        selection = new TreePath[temp.length];
      -        System.arraycopy(temp, 0, selection, 0, temp.length);
      -        
      -        // If the removed path was the lead path, set the lead path to null.
      -        TreePath oldLead = leadPath;
      -        if (path != null && leadPath != null && path.equals(leadPath))
      -          leadPath = null;
      -
      -        fireValueChanged(new TreeSelectionEvent(this, path, false, oldLead,
      -                                                leadPath));
      -        insureRowContinuity();
      -      }
      +    if (path != null)
      +      removeSelectionPaths(new TreePath[]{ path });
         }
       
         /**
      @@ -462,40 +583,54 @@ public class DefaultTreeSelectionModel
          */
         public void removeSelectionPaths(TreePath[] paths)
         {
      -    if (isSelectionEmpty())
      -      return;
      -    if (paths != null)
      +    if (paths != null && selection != null && paths.length > 0)
             {
      -        int index = - 1;
      -        TreePath v0 = null;
      -        TreePath oldLead = leadPath;
      -        for (int i = 0; i < paths.length; i++)
      +        if (! canPathsBeRemoved(paths))
      +          clearSelection();
      +        else
                 {
      -            v0 = paths[i];
      -            if (isPathSelected(v0))
      +            Vector pathsToRemove = null;
      +            for (int i = paths.length - 1; i >= 0; i--)
                     {
      -                for (int x = 0; x < selection.length; x++)
      +                if (paths[i] != null && selectedPaths.contains(paths[i]))
                         {
      -                    if (selection[i].equals(v0))
      -                      {
      -                        index = x;
      -                        break;
      -                      }
      -                    if (leadPath != null && leadPath.equals(v0))
      +                    if (pathsToRemove == null)
      +                      pathsToRemove = new Vector();
      +                    selectedPaths.remove(paths[i]);
      +                    pathsToRemove.add(new PathPlaceHolder(paths[i],
      +                                                          false));
      +                  }
      +              }
      +            if (pathsToRemove != null)
      +              {
      +                int numRemove = pathsToRemove.size();
      +                TreePath oldLead = leadPath;
      +                if (numRemove == selection.length)
      +                  selection = null;
      +                else
      +                  {
      +                    selection = new TreePath[selection.length - numRemove];
      +                    Iterator keep = selectedPaths.iterator();
      +                    for (int valid = 0; keep.hasNext(); valid++)
      +                      selection[valid] = (TreePath) keep.next();
      +                  }
      +                // Update lead path.
      +                if (leadPath != null && ! selectedPaths.contains(leadPath))
      +                  {
      +                    if (selection != null)
      +                      leadPath = selection[selection.length - 1];
      +                    else
                             leadPath = null;
                         }
      -                TreePath[] temp = new TreePath[selection.length - 1];
      -                System.arraycopy(selection, 0, temp, 0, index);
      -                System.arraycopy(selection, index + 1, temp, index,
      -                                 selection.length - index - 1);
      -                selection = new TreePath[temp.length];
      -                System.arraycopy(temp, 0, selection, 0, temp.length);
      -
      -                fireValueChanged(new TreeSelectionEvent(this, v0, false,
      -                                                        oldLead, leadPath));
      +                else if (selection != null)
      +                  leadPath = selection[selection.length - 1];
      +                else
      +                  leadPath = null;
      +                updateLeadIndex();
      +                resetRowSelection();
      +                notifyPathChange(pathsToRemove, oldLead);
                     }
                 }
      -        insureRowContinuity();
             }
         }
       
      @@ -572,19 +707,22 @@ public class DefaultTreeSelectionModel
          */
         public void clearSelection()
         {
      -    if (! isSelectionEmpty())
      +    if (selection != null)
             {
      -        TreeSelectionEvent event = new TreeSelectionEvent(
      -          this, selection, new boolean[selection.length], leadPath, null);
      +        int selectionLength = selection.length;
      +        boolean[] news = new boolean[selectionLength];
      +        Arrays.fill(news, false);
      +        TreeSelectionEvent event = new TreeSelectionEvent(this, selection,
      +                                                          news, leadPath,
      +                                                          null);
               leadPath = null;
      +        leadIndex = 0;
      +        leadRow = 0;
      +        selectedPaths.clear();
               selection = null;
      +        resetRowSelection();
               fireValueChanged(event);
             }
      -    else
      -      {
      -        leadPath = null;
      -        selection = null;
      -      }
         }
       
         /**
      @@ -638,7 +776,7 @@ public class DefaultTreeSelectionModel
          * @return an array of listeners
          * @since 1.3
          */
      -  public EventListener[] getListeners(Class listenerType)
      +  public <T extends EventListener> T[] getListeners(Class<T> listenerType)
         {
           return listenerList.getListeners(listenerType);
         }
      @@ -650,10 +788,43 @@ public class DefaultTreeSelectionModel
          */
         public int[] getSelectionRows()
         {
      -    if (rowMapper == null)
      -      return null;
      -    else
      -      return rowMapper.getRowsForPaths(selection);
      +    int[] rows = null;
      +    if (rowMapper != null && selection != null)
      +      {
      +        rows = rowMapper.getRowsForPaths(selection);
      +        if (rows != null)
      +          {
      +            // Find invisible rows.
      +            int invisible = 0;
      +            for (int i = rows.length - 1; i >= 0; i--)
      +              {
      +                if (rows[i] == -1)
      +                  invisible++;
      +                
      +              }
      +            // Clean up invisible rows.
      +            if (invisible > 0)
      +              {
      +                if (invisible == rows.length)
      +                  rows = null;
      +                else
      +                  {
      +                    int[] newRows = new int[rows.length - invisible];
      +                    int visCount = 0;
      +                    for (int i = rows.length - 1; i >= 0; i--)
      +                      {
      +                        if (rows[i] != -1)
      +                          {
      +                            newRows[visCount] = rows[i];
      +                            visCount++;
      +                          }
      +                      }
      +                    rows = newRows;
      +                  }
      +              }
      +          }
      +      }
      +    return rows;
         }
       
         /**
      @@ -663,16 +834,7 @@ public class DefaultTreeSelectionModel
          */
         public int getMinSelectionRow()
         {
      -    if ((rowMapper == null) || (selection == null) || (selection.length == 0))
      -      return - 1;
      -    else
      -      {
      -        int[] rows = rowMapper.getRowsForPaths(selection);
      -        int minRow = Integer.MAX_VALUE;
      -        for (int index = 0; index < rows.length; index++)
      -          minRow = Math.min(minRow, rows[index]);
      -        return minRow;
      -      }
      +    return listSelectionModel.getMinSelectionIndex();
         }
       
         /**
      @@ -682,16 +844,7 @@ public class DefaultTreeSelectionModel
          */
         public int getMaxSelectionRow()
         {
      -    if ((rowMapper == null) || (selection == null) || (selection.length == 0))
      -      return - 1;
      -    else
      -      {
      -        int[] rows = rowMapper.getRowsForPaths(selection);
      -        int maxRow = - 1;
      -        for (int index = 0; index < rows.length; index++)
      -          maxRow = Math.max(maxRow, rows[index]);
      -        return maxRow;
      -      }
      +    return listSelectionModel.getMaxSelectionIndex();
         }
       
         /**
      @@ -706,29 +859,7 @@ public class DefaultTreeSelectionModel
          */
         public boolean isRowSelected(int row)
         {
      -    // Return false if nothing is selected.
      -    if (isSelectionEmpty())
      -      return false;
      -
      -    RowMapper mapper = getRowMapper();
      -
      -    if (mapper instanceof AbstractLayoutCache)
      -      {
      -        // The absolute majority of cases, unless the TreeUI is very
      -        // seriously rewritten
      -        AbstractLayoutCache ama = (AbstractLayoutCache) mapper;
      -        TreePath path = ama.getPathForRow(row);
      -        return isPathSelected(path);
      -      }
      -    else
      -      {
      -        // Generic non optimized implementation.
      -        int[] rows = mapper.getRowsForPaths(selection);
      -        for (int i = 0; i < rows.length; i++)
      -          if (rows[i] == row)
      -            return true;
      -        return false;
      -      }
      +    return listSelectionModel.isSelectedIndex(row);
         }
       
         /**
      @@ -736,7 +867,32 @@ public class DefaultTreeSelectionModel
          */
         public void resetRowSelection()
         {
      -    // Nothing to do here.
      +    listSelectionModel.clearSelection();
      +    if (selection != null && rowMapper != null)
      +      {
      +        int[] rows = rowMapper.getRowsForPaths(selection);
      +        // Update list selection model.
      +        for (int i = 0; i < rows.length; i++)
      +          {
      +            int row = rows[i];
      +            if (row != -1)
      +              listSelectionModel.addSelectionInterval(row, row);
      +          }
      +        // Update lead selection.
      +        if (leadIndex != -1 && rows != null)
      +          leadRow = rows[leadIndex];
      +        else if (leadPath != null)
      +          {
      +            TreePath[] tmp = new TreePath[]{ leadPath };
      +            rows = rowMapper.getRowsForPaths(tmp);
      +            leadRow = rows != null ? rows[0] : -1;
      +          }
      +        else
      +          leadRow = -1;
      +        insureRowContinuity();
      +      }
      +    else
      +      leadRow = -1;
         }
       
         /**
      @@ -766,6 +922,8 @@ public class DefaultTreeSelectionModel
          */
         public void addPropertyChangeListener(PropertyChangeListener listener)
         {
      +    if (changeSupport == null)
      +      changeSupport = new SwingPropertyChangeSupport(this);
           changeSupport.addPropertyChangeListener(listener);
         }
       
      @@ -776,7 +934,8 @@ public class DefaultTreeSelectionModel
          */
         public void removePropertyChangeListener(PropertyChangeListener listener)
         {
      -    changeSupport.removePropertyChangeListener(listener);
      +    if (changeSupport != null)
      +      changeSupport.removePropertyChangeListener(listener);
         }
       
         /**
      @@ -787,7 +946,12 @@ public class DefaultTreeSelectionModel
          */
         public PropertyChangeListener[] getPropertyChangeListeners()
         {
      -    return changeSupport.getPropertyChangeListeners();
      +    PropertyChangeListener[] listeners = null;
      +    if (changeSupport != null)
      +      listeners = changeSupport.getPropertyChangeListeners();
      +    else
      +      listeners = new PropertyChangeListener[0];
      +    return listeners;
         }
       
         /**
      @@ -801,67 +965,41 @@ public class DefaultTreeSelectionModel
          */
         protected void insureRowContinuity()
         {
      -    if (selection == null || selection.length < 2)
      -      return;
      -    else if (selectionMode == CONTIGUOUS_TREE_SELECTION)
      +    if (selectionMode == CONTIGUOUS_TREE_SELECTION && selection != null
      +        && rowMapper != null)
             {
      -        if (rowMapper == null)
      -          // This is the best we can do without the row mapper:
      -          selectOne();
      -        else
      +        int min = listSelectionModel.getMinSelectionIndex();
      +        if (min != -1)
                 {
      -            int[] rows = rowMapper.getRowsForPaths(selection);
      -            Arrays.sort(rows);
      -            int i;
      -            for (i = 1; i < rows.length; i++)
      -              {
      -                if (rows[i - 1] != rows[i] - 1)
      -                  // Break if no longer continuous.
      -                  break;
      -              }
      -
      -            if (i < rows.length)
      +            int max = listSelectionModel.getMaxSelectionIndex();
      +            for (int i = min; i <= max; i++)
                     {
      -                TreePath[] ns = new TreePath[i];
      -                for (int j = 0; j < ns.length; j++)
      -                  ns[i] = getPath(j);
      -                setSelectionPaths(ns);
      +                if (! listSelectionModel.isSelectedIndex(i))
      +                  {
      +                    if (i == min)
      +                      clearSelection();
      +                    else
      +                      {
      +                        TreePath[] newSelection = new TreePath[i - min];
      +                        int[] rows = rowMapper.getRowsForPaths(selection);
      +                        for (int j = 0; j < rows.length; j++)
      +                          {
      +                            if (rows[j] < i)
      +                              newSelection[rows[j] - min] = selection[j];
      +                          }
      +                        setSelectionPaths(newSelection);
      +                        break;
      +                      }
      +                  }
                     }
                 }
             }
      -    else if (selectionMode == SINGLE_TREE_SELECTION)
      -      selectOne();
      +    else if (selectionMode == SINGLE_TREE_SELECTION && selection != null
      +        && selection.length > 1)
      +      setSelectionPath(selection[0]);
         }
         
         /**
      -   * Keep only one (normally last or leading) path in the selection.
      -   */
      -  private void selectOne()
      -  {
      -    if (leadIndex > 0 && leadIndex < selection.length)
      -      setSelectionPath(selection[leadIndex]);
      -    else
      -      setSelectionPath(selection[selection.length - 1]);
      -  }
      -  
      -  /**
      -   * Get path for the given row that must be in the current selection.
      -   */
      -  private TreePath getPath(int row)
      -  {
      -    if (rowMapper instanceof AbstractLayoutCache)
      -      return ((AbstractLayoutCache) rowMapper).getPathForRow(row);
      -    else
      -      {
      -        int[] rows = rowMapper.getRowsForPaths(selection);
      -        for (int i = 0; i < rows.length; i++)
      -          if (rows[i] == row)
      -            return selection[i];
      -      }
      -    throw new InternalError(row + " not in selection");
      -  }
      -
      -  /**
          * Returns <code>true</code> if the paths are contiguous (take subsequent
          * rows in the diplayed tree view. The method returns <code>true</code> if
          * we have no RowMapper assigned.
      @@ -875,16 +1013,36 @@ public class DefaultTreeSelectionModel
           if (rowMapper == null || paths.length < 2)
             return true;
       
      -    int[] rows = rowMapper.getRowsForPaths(paths);
      -    
      -    // The patches may not be sorted.
      -    Arrays.sort(rows);
      -
      -    for (int i = 1; i < rows.length; i++)
      +    int length = paths.length;
      +    TreePath[] tmp = new TreePath[1];
      +    tmp[0] = paths[0];
      +    int min = rowMapper.getRowsForPaths(tmp)[0];
      +    BitSet selected = new BitSet();
      +    int valid = 0;
      +    for (int i = 0; i < length; i++)
             {
      -        if (rows[i - 1] != rows[i] - 1)
      -          return false;
      +        if (paths[i] != null)
      +          {
      +            tmp[0] = paths[i];
      +            int[] rows = rowMapper.getRowsForPaths(tmp);
      +            if (rows == null)
      +              return false; // No row mapping yet, can't be selected.
      +            int row = rows[0];
      +            if (row == -1 || row < (min - length) || row > (min + length))
      +              return false; // Not contiguous.
      +            min = Math.min(min, row);
      +            if (! selected.get(row))
      +              {
      +                selected.set(row);
      +                valid++;
      +              }
      +            
      +          }
             }
      +    int max = valid + min;
      +    for (int i = min; i < max; i++)
      +      if (! selected.get(i))
      +        return false; // Not contiguous.
           return true;
         }
       
      @@ -904,34 +1062,51 @@ public class DefaultTreeSelectionModel
          */
         protected boolean canPathsBeAdded(TreePath[] paths)
         {
      -    if (rowMapper == null || isSelectionEmpty()
      -        || selectionMode == DISCONTIGUOUS_TREE_SELECTION)
      +    if (paths == null || paths.length == 0 || rowMapper == null
      +        || selection == null || selectionMode == DISCONTIGUOUS_TREE_SELECTION)
             return true;
      -   
      -    TreePath [] all = new TreePath[paths.length + selection.length];
      -    System.arraycopy(paths, 0, all, 0, paths.length);
      -    System.arraycopy(selection, 0, all, paths.length, selection.length);
       
      -    return arePathsContiguous(all);
      +    BitSet selected = new BitSet();
      +    int min = listSelectionModel.getMinSelectionIndex();
      +    int max = listSelectionModel.getMaxSelectionIndex();
      +    TreePath[] tmp = new TreePath[1];
      +    if (min != -1)
      +      {
      +        // Set the bitmask of selected elements.
      +        for (int i = min; i <= max; i++)
      +          selected.set(i);
      +      }
      +    else
      +      {
      +        tmp[0] = paths[0];
      +        min = rowMapper.getRowsForPaths(tmp)[0];
      +        max = min;
      +      }
      +    // Mark new paths as selected.
      +    for (int i = paths.length - 1; i >= 0; i--)
      +      {
      +        if (paths[i] != null)
      +          {
      +            tmp[0] = paths[i];
      +            int[] rows = rowMapper.getRowsForPaths(tmp);
      +            if (rows == null)
      +              return false; // Now row mapping yet, can't be selected.
      +            int row = rows[0];
      +            if (row == -1)
      +              return false; // Now row mapping yet, can't be selected.
      +            min = Math.min(min, row);
      +            max = Math.max(max, row);
      +            selected.set(row);
      +          }
      +      }
      +    // Now look if the new selection would be contiguous.
      +    for (int i = min; i <= max; i++)
      +      if (! selected.get(i))
      +        return false;
      +    return true;
         }
         
         /**
      -   * Checks if the single path can be added to selection.
      -   */
      -  private boolean canPathBeAdded(TreePath path)
      -  {
      -    if (rowMapper == null || isSelectionEmpty()
      -        || selectionMode == DISCONTIGUOUS_TREE_SELECTION)
      -      return true;
      -
      -    TreePath[] all = new TreePath[selection.length + 1];
      -    System.arraycopy(selection, 0, all, 0, selection.length);
      -    all[all.length - 1] = path;
      -
      -    return arePathsContiguous(all);
      -  }
      -
      -  /**
          * Checks if the paths can be removed without breaking the continuity of the
          * selection according to selectionMode.
          * 
      @@ -966,20 +1141,23 @@ public class DefaultTreeSelectionModel
          * method will call listeners if invoked, but it is not called from the
          * implementation of this class.
          * 
      -   * @param vPathes the vector of the changed patches
      +   * @param vPaths the vector of the changed patches
          * @param oldLeadSelection the old selection index
          */
      -  protected void notifyPathChange(Vector vPathes, TreePath oldLeadSelection)
      +  protected void notifyPathChange(Vector vPaths, TreePath oldLeadSelection)
         {
      -    TreePath[] pathes = new TreePath[vPathes.size()];
      -    for (int i = 0; i < pathes.length; i++)
      -      pathes[i] = (TreePath) vPathes.get(i);
       
      -    boolean[] news = new boolean[pathes.length];
      -    for (int i = 0; i < news.length; i++)
      -      news[i] = isPathSelected(pathes[i]);
      +    int numChangedPaths = vPaths.size();
      +    boolean[] news = new boolean[numChangedPaths];
      +    TreePath[] paths = new TreePath[numChangedPaths];
      +    for (int i = 0; i < numChangedPaths; i++)
      +      {
      +        PathPlaceHolder p = (PathPlaceHolder) vPaths.get(i);
      +        news[i] = p.isNew;
      +        paths[i] = p.path;
      +      }
       
      -    TreeSelectionEvent event = new TreeSelectionEvent(this, pathes, news,
      +    TreeSelectionEvent event = new TreeSelectionEvent(this, paths, news,
                                                             oldLeadSelection,
                                                             leadPath);
           fireValueChanged(event);
      @@ -991,22 +1169,20 @@ public class DefaultTreeSelectionModel
          */
         protected void updateLeadIndex()
         {
      -    if (isSelectionEmpty())
      +    leadIndex = -1;
      +    if (leadPath != null)
             {
      -        leadRow = leadIndex = - 1;
      -      }
      -    else
      -      {
      -        leadRow = getRow(leadPath);
      -        for (int i = 0; i < selection.length; i++)
      +        leadRow = -1;
      +        if (selection == null)
      +          leadPath = null;
      +        else
                 {
      -            if (selection[i].equals(leadPath))
      +            for (int i = selection.length - 1; i >= 0 && leadIndex == -1; i--)
                     {
      -                leadIndex = i;
      -                break;
      +                if (selection[i] == leadPath)
      +                  leadIndex = i;
                     }
                 }
      -        leadIndex = leadRow;
             }
         }
       
      diff --git a/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java b/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java
      index a699a6c9f21..dff9298e8f5 100644
      --- a/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java
      +++ b/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java
      @@ -480,7 +480,7 @@ public class FixedHeightLayoutCache
          * @param parentPath the parent path
          * @return the enumeration over pathes
          */
      -  public Enumeration getVisiblePathsFrom(TreePath parentPath)
      +  public Enumeration<TreePath> getVisiblePathsFrom(TreePath parentPath)
         {
           if (dirty)
             update();
      diff --git a/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java b/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java
      index 0a787f7ca8c..8c70c13afd2 100644
      --- a/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java
      +++ b/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java
      @@ -40,6 +40,7 @@ package javax.swing.tree;
       import gnu.javax.swing.tree.GnuPath;
       
       import java.awt.Rectangle;
      +import java.util.ArrayList;
       import java.util.Enumeration;
       import java.util.HashSet;
       import java.util.Hashtable;
      @@ -60,8 +61,11 @@ import javax.swing.event.TreeModelEvent;
        * @author Audrius Meskauskas
        */
       public class VariableHeightLayoutCache
      -                extends AbstractLayoutCache
      +  extends AbstractLayoutCache
       {
      +
      +  private static final Rectangle RECT_CACHE = new Rectangle();
      +
         /**
          * The cached node record.
          */
      @@ -73,8 +77,8 @@ public class VariableHeightLayoutCache
             depth = aDepth;
             parent = aParent;
             node = aNode;
      -      
      -      isExpanded = expanded.contains(aNode); 
      +      isExpanded = expanded.contains(aNode);
      +      bounds = new Rectangle(0, -1, 0, 0);
           }
           
           /**
      @@ -102,7 +106,7 @@ public class VariableHeightLayoutCache
            * Using this field saves one hashtable access operation.
            */
           final boolean isExpanded;
      -    
      +
           /**
            * The cached bounds of the tree row.
            */
      @@ -160,11 +164,6 @@ public class VariableHeightLayoutCache
            */
           Rectangle getBounds()
           {
      -      // This method may be called in the context when the tree rectangle is
      -      // not known. To work around this, it is assumed near infinitely large.
      -      if (bounds == null)
      -        bounds = getNodeDimensions(node, row, depth, isExpanded, 
      -                                   new Rectangle());
             return bounds;      
           }
         }
      @@ -182,7 +181,7 @@ public class VariableHeightLayoutCache
         /**
          * Maps row numbers to nodes.
          */
      -  Hashtable row2node = new Hashtable();
      +  ArrayList row2node = new ArrayList();
         
         /**
          * If true, the row map must be recomputed before using.
      @@ -236,45 +235,54 @@ public class VariableHeightLayoutCache
             return;
       
           Object root = treeModel.getRoot();
      -
      -    if (rootVisible)
      -      {
      -        countRows(root, null, 0);
      -      }
      -    else
      -      {
      -        int sc = treeModel.getChildCount(root);
      -        for (int i = 0; i < sc; i++)
      -          {
      -            Object child = treeModel.getChild(root, i);
      -            countRows(child, root, 0);
      -          }
      -      }
      +    countRows(root, null, 0, 0);
           dirty = false;
         }
         
         /**
          * Recursively counts all rows in the tree.
          */
      -  private final void countRows(Object node, Object parent, int depth)
      +  private final int countRows(Object node, Object parent, int depth, int y)
         {
      -    Integer n = new Integer(row2node.size());
      -    row2node.put(n, node);
      -    
      -    NodeRecord nr = new NodeRecord(n.intValue(), depth, node, parent);
      +    boolean visible = node != treeModel.getRoot() || rootVisible;
      +    int row = row2node.size();
      +    if (visible)
      +      {
      +        row2node.add(node);
      +      }
      +    NodeRecord nr = new NodeRecord(row, depth, node, parent);
      +    NodeDimensions d = getNodeDimensions();
      +    Rectangle r = RECT_CACHE;
      +    if (d != null)
      +      r = d.getNodeDimensions(node, row, depth, nr.isExpanded, r);
      +    else
      +      r.setBounds(0, 0, 0, 0);
      +
      +    if (! visible)
      +      r.y = -1;
      +    else
      +      r.y = Math.max(0, y);
      +
      +    if (isFixedRowHeight())
      +      r.height = getRowHeight();
      +
      +    nr.bounds.setBounds(r);
           nodes.put(node, nr);
      -     
      -    // For expanded nodes
      +
      +    if (visible)
      +      y += r.height;
      +
      +    int sc = treeModel.getChildCount(node);
      +    int deeper = depth + 1;
           if (expanded.contains(node))
             {
      -        int sc = treeModel.getChildCount(node);
      -        int deeper = depth + 1;
               for (int i = 0; i < sc; i++)
                 {
                   Object child = treeModel.getChild(node, i);
      -            countRows(child, node, deeper);
      +            y = countRows(child, node, deeper, y);
                 }
             }
      +    return y;
         }
       
         /**
      @@ -309,10 +317,14 @@ public class VariableHeightLayoutCache
         public void setExpandedState(TreePath path, boolean isExpanded)
         {
           if (isExpanded)
      -      expanded.add(path.getLastPathComponent());
      +      {
      +        int length = path.getPathCount();
      +        for (int i = 0; i < length; i++)
      +          expanded.add(path.getPathComponent(i));
      +      }
           else
             expanded.remove(path.getLastPathComponent());
      -    
      +
           dirty = true;
         }
         
      @@ -339,25 +351,21 @@ public class VariableHeightLayoutCache
             return null;
           if (dirty)
             update();
      +
           Object last = path.getLastPathComponent();
      +    Rectangle result = null;
           NodeRecord r = (NodeRecord) nodes.get(last);
      -    if (r == null)
      -    // This node is not visible.
      -      {
      -        rect.x = rect.y = rect.width = rect.height = 0;
      -      }
      -    else
      +    if (r != null)
             {
      -        if (r.bounds == null)
      -          {
      -            Rectangle dim = getNodeDimensions(last, r.row, r.depth,
      -                                              r.isExpanded, rect);
      -            r.bounds = dim;
      -          }
      -
      -        rect.setRect(r.bounds);
      +        // The RI allows null arguments for rect, in which case a new Rectangle
      +        // is created.
      +        result = rect;
      +        if (result == null)
      +          result = new Rectangle(r.bounds);
      +        else
      +          result.setBounds(r.bounds);
             }
      -    return rect;
      +    return result;
         } 
       
         /**
      @@ -370,14 +378,17 @@ public class VariableHeightLayoutCache
         {
           if (dirty)
             update();
      -    Object last = row2node.get(new Integer(row));
      -    if (last == null)
      -      return null;
      -    else
      +
      +    TreePath path = null;
      +    // Search row in the nodes map. TODO: This is inefficient, optimize this.
      +    Enumeration nodesEnum = nodes.elements();
      +    while (nodesEnum.hasMoreElements() && path == null)
             {
      -        NodeRecord r = (NodeRecord) nodes.get(last);
      -        return r.getPath();
      +        NodeRecord record = (NodeRecord) nodesEnum.nextElement();
      +        if (record.row == row)
      +          path = record.getPath();
             }
      +    return path;
         } 
       
         /**
      @@ -390,7 +401,9 @@ public class VariableHeightLayoutCache
         {
           if (path == null)
             return -1;
      -    if (dirty) update();
      +
      +    if (dirty)
      +      update();
       
           NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent());
           if (r == null)
      @@ -451,8 +464,8 @@ public class VariableHeightLayoutCache
         {
           if (y < r.y)
             return r.y - y;
      -    else if (y > r.y + r.height)
      -      return y - (r.y + r.height);
      +    else if (y > r.y + r.height - 1)
      +      return y - (r.y + r.height - 1);
           else
             return 0;
         }
      @@ -468,7 +481,7 @@ public class VariableHeightLayoutCache
          */
         public int getVisibleChildCount(TreePath path)  
         {
      -    if (isExpanded(path))
      +    if (! isExpanded(path) || treeModel == null)
             return 0; 
           else
             return treeModel.getChildCount(path.getLastPathComponent());
      @@ -481,7 +494,7 @@ public class VariableHeightLayoutCache
          * @param parentPath the parent path
          * @return the enumeration over pathes
          */
      -  public Enumeration getVisiblePathsFrom(TreePath parentPath)
      +  public Enumeration<TreePath> getVisiblePathsFrom(TreePath parentPath)
         {
           if (dirty)
             update();
      @@ -493,7 +506,7 @@ public class VariableHeightLayoutCache
             {
               node = parentPath.getPathComponent(i);
               nr = (NodeRecord) nodes.get(node);
      -        if (nr.row >= 0)
      +        if (nr != null && nr.row >= 0)
                 p.add(node);
             }
           return p.elements();
      @@ -558,15 +571,11 @@ public class VariableHeightLayoutCache
         public void setModel(TreeModel newModel)
         {
           treeModel = newModel;
      -    // We need to clear the table and update the layout,
      -    // so that we don't end up with wrong data in the tables.
      -    expanded.clear();
      -    update();
      +    dirty = true;
           if (treeModel != null)
             {
               // The root node is expanded by default.
               expanded.add(treeModel.getRoot());
      -        dirty = true;
             }
         }
         
      @@ -590,15 +599,14 @@ public class VariableHeightLayoutCache
         {
           if (dirty)
             update();
      -    totalHeight = 0;
      -    Enumeration en = nodes.elements();
      -    while (en.hasMoreElements())
      +    int height = 0;
      +    int rowCount = getRowCount();
      +    if (rowCount > 0)
             {
      -        NodeRecord nr = (NodeRecord) en.nextElement();
      -        Rectangle r = nr.getBounds();
      -        totalHeight += r.height;
      +        NodeRecord last = (NodeRecord) nodes.get(row2node.get(rowCount - 1));
      +        height = last.bounds.y + last.bounds.height;
             }
      -    return totalHeight;
      +    return height;
         }
       
         /**
      @@ -614,10 +622,36 @@ public class VariableHeightLayoutCache
           while (en.hasMoreElements())
             {
               NodeRecord nr = (NodeRecord) en.nextElement();
      -        Rectangle r = nr.getBounds();
      -        if (r.x + r.width > maximalWidth)
      -          maximalWidth = r.x + r.width;
      +        if (nr != null)
      +          {
      +            Rectangle r = nr.getBounds();
      +            int width = r.x + r.width;
      +            if (width > maximalWidth)
      +              maximalWidth = width;
      +          }
             }
           return maximalWidth;
         }
      +
      +  /**
      +   * Sets the node dimensions and invalidates the cached layout.
      +   *
      +   * @param dim the dimensions to set
      +   */
      +  public void setNodeDimensions(NodeDimensions dim)
      +  {
      +    super.setNodeDimensions(dim);
      +    dirty = true;
      +  }
      +
      +  /**
      +   * Sets the row height and marks the layout as invalid.
      +   *
      +   * @param height the row height to set
      +   */
      +  public void setRowHeight(int height)
      +  {
      +    super.setRowHeight(height);
      +    dirty = true;
      +  }
       }
      diff --git a/libjava/classpath/javax/swing/undo/CompoundEdit.java b/libjava/classpath/javax/swing/undo/CompoundEdit.java
      index e1cfbb619b3..fbff2a26418 100644
      --- a/libjava/classpath/javax/swing/undo/CompoundEdit.java
      +++ b/libjava/classpath/javax/swing/undo/CompoundEdit.java
      @@ -1,5 +1,5 @@
       /* CompoundEdit.java -- Combines multiple UndoableEdits.
      -   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
      +   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
       
       This file is part of GNU Classpath.
       
      @@ -75,7 +75,7 @@ public class CompoundEdit
          * The <code>UndoableEdit</code>s being combined into a compound
          * editing action.
          */
      -  protected Vector edits;
      +  protected Vector<UndoableEdit> edits;
       
       
         /**
      @@ -92,7 +92,7 @@ public class CompoundEdit
          */
         public CompoundEdit()
         {
      -    edits = new Vector();
      +    edits = new Vector<UndoableEdit>();
           inProgress = true;
         }
         
      @@ -118,7 +118,7 @@ public class CompoundEdit
           super.undo();
       
           for (int i = edits.size() - 1; i >= 0; i--)
      -      ((UndoableEdit) edits.elementAt(i)).undo();
      +      edits.elementAt(i).undo();
         }
       
       
      @@ -143,7 +143,7 @@ public class CompoundEdit
           super.redo();
       
           for (int i = 0; i < edits.size(); i++)
      -      ((UndoableEdit) edits.elementAt(i)).redo();
      +      edits.elementAt(i).redo();
         }
       
         
      @@ -156,7 +156,7 @@ public class CompoundEdit
           if (edits.size() == 0)
             return null;
           else
      -      return (UndoableEdit) edits.elementAt(edits.size() - 1);
      +      return edits.elementAt(edits.size() - 1);
         }
       
       
      @@ -172,7 +172,7 @@ public class CompoundEdit
         public void die()
         {
           for (int i = edits.size() - 1; i >= 0; i--)
      -      ((UndoableEdit) edits.elementAt(i)).die();
      +      edits.elementAt(i).die();
       
           super.die();
         }
      @@ -316,7 +316,7 @@ public class CompoundEdit
         public boolean isSignificant()
         {
           for (int i = edits.size() - 1; i >= 0; i--)
      -      if (((UndoableEdit) edits.elementAt(i)).isSignificant())
      +      if (edits.elementAt(i).isSignificant())
               return true;
       
           return false;
      diff --git a/libjava/classpath/javax/swing/undo/StateEdit.java b/libjava/classpath/javax/swing/undo/StateEdit.java
      index 326abea1f4e..91fc88faa60 100644
      --- a/libjava/classpath/javax/swing/undo/StateEdit.java
      +++ b/libjava/classpath/javax/swing/undo/StateEdit.java
      @@ -121,14 +121,14 @@ public class StateEdit
          * The state of <code>object</code> at the time of constructing
          * this <code>StateEdit</code>.
          */
      -  protected Hashtable preState;
      +  protected Hashtable<Object, Object> preState;
       
       
         /**
          * The state of <code>object</code> at the time when {@link #end()}
          * was called.
          */
      -  protected Hashtable postState;
      +  protected Hashtable<Object, Object> postState;
       
       
         /**
      diff --git a/libjava/classpath/javax/swing/undo/StateEditable.java b/libjava/classpath/javax/swing/undo/StateEditable.java
      index 459025be7da..7e6cc97856f 100644
      --- a/libjava/classpath/javax/swing/undo/StateEditable.java
      +++ b/libjava/classpath/javax/swing/undo/StateEditable.java
      @@ -100,7 +100,7 @@ public interface StateEditable
          * @param state a hash table containing the relevant state
          * information.
          */
      -  void restoreState(Hashtable state);
      +  void restoreState(Hashtable<?, ?> state);
       
       
         /**
      @@ -110,5 +110,5 @@ public interface StateEditable
          * @param state a hash table for storing relevant state
          * information.
          */
      -  void storeState(Hashtable state);
      +  void storeState(Hashtable<Object, Object> state);
       }
      diff --git a/libjava/classpath/javax/swing/undo/UndoableEditSupport.java b/libjava/classpath/javax/swing/undo/UndoableEditSupport.java
      index 6d7bbea0728..b5a93341954 100644
      --- a/libjava/classpath/javax/swing/undo/UndoableEditSupport.java
      +++ b/libjava/classpath/javax/swing/undo/UndoableEditSupport.java
      @@ -69,7 +69,8 @@ public class UndoableEditSupport
         /**
          * The currently registered listeners.
          */
      -  protected Vector listeners = new Vector();
      +  protected Vector<UndoableEditListener> listeners =
      +    new Vector<UndoableEditListener>();
       
       
         /**
      @@ -148,7 +149,7 @@ public class UndoableEditSupport
         public synchronized UndoableEditListener[] getUndoableEditListeners()
         {
           UndoableEditListener[] result = new UndoableEditListener[listeners.size()];
      -    return (UndoableEditListener[]) listeners.toArray(result);
      +    return listeners.toArray(result);
         }
       
       
      diff --git a/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java b/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
      index 0dc574e656b..9312e65e06d 100644
      --- a/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
      +++ b/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
      @@ -50,7 +50,7 @@ import javax.xml.validation.Schema;
        * Factory for obtaining document builders.
        * Instances of this class are <em>not</em> guaranteed to be thread safe.
        *
      - * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
      + * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
        */
       public abstract class DocumentBuilderFactory
       {
      diff --git a/libjava/classpath/javax/xml/validation/SchemaFactory.java b/libjava/classpath/javax/xml/validation/SchemaFactory.java
      index 0042ea32348..0c24104445b 100644
      --- a/libjava/classpath/javax/xml/validation/SchemaFactory.java
      +++ b/libjava/classpath/javax/xml/validation/SchemaFactory.java
      @@ -37,8 +37,14 @@ exception statement from your version. */
       
       package javax.xml.validation;
       
      +import java.io.BufferedReader;
       import java.io.File;
      +import java.io.FileInputStream;
      +import java.io.InputStream;
      +import java.io.InputStreamReader;
      +import java.io.IOException;
       import java.net.URL;
      +import java.util.Properties;
       import javax.xml.XMLConstants;
       import javax.xml.transform.Source;
       import javax.xml.transform.stream.StreamSource;
      @@ -68,6 +74,71 @@ public abstract class SchemaFactory
          */
         public static final SchemaFactory newInstance(String schemaLanguage)
         {
      +    ClassLoader loader = Thread.currentThread().getContextClassLoader();
      +    if (loader == null)
      +      {
      +        loader = SchemaFactory.class.getClassLoader();
      +      }
      +    final String factoryClassName = "javax.xml.validation.SchemaFactory";
      +    String className = null;
      +    int count = 0;
      +    do
      +      {
      +        className = getFactoryClassName(loader, schemaLanguage, count++);
      +        if (className != null)
      +          {
      +            try
      +              {
      +                Class t = (loader != null) ? loader.loadClass(className) :
      +                    Class.forName(className);
      +                return (SchemaFactory) t.newInstance();
      +              }
      +            catch (Exception e)
      +              {
      +                // Ignore any errors and continue algorithm.
      +                // This method doesn't have a means of propagating
      +                // class instantiation errors.
      +                className = null;
      +              }
      +        }
      +    }
      +    while (className == null && count < 2);
      +    try
      +      {
      +        String serviceKey = "/META-INF/services/" + factoryClassName;
      +        InputStream in = (loader != null) ?
      +          loader.getResourceAsStream(serviceKey) :
      +          SchemaFactory.class.getResourceAsStream(serviceKey);
      +        if (in != null)
      +          {
      +            BufferedReader r =
      +              new BufferedReader(new InputStreamReader(in));
      +            try
      +              {
      +                for (String line = r.readLine(); line != null;
      +                        line = r.readLine())
      +                  {
      +                    Class t = (loader != null) ? loader.loadClass(className) :
      +                        Class.forName(className);
      +                    SchemaFactory ret = (SchemaFactory) t.newInstance();
      +                    if (ret.isSchemaLanguageSupported(schemaLanguage))
      +                      return ret;
      +                  }
      +              }
      +            catch (Exception e)
      +              {
      +                // Fall through. See above.
      +              }
      +            finally
      +              {
      +                r.close();
      +              }
      +          }
      +      }
      +    catch (IOException e)
      +      {
      +      }
      +    // Default schema factories for Classpath
           if (XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(schemaLanguage))
             return new gnu.xml.validation.xmlschema.XMLSchemaSchemaFactory();
           if (XMLConstants.RELAXNG_NS_URI.equals(schemaLanguage))
      @@ -75,6 +146,36 @@ public abstract class SchemaFactory
           throw new IllegalArgumentException(schemaLanguage);
         }
       
      +  private static String getFactoryClassName(ClassLoader loader,
      +          String schemaLanguage, int attempt)
      +  {
      +    final String factoryClassName = "javax.xml.validation.SchemaFactory";
      +    final String propertyName = factoryClassName + ":" + schemaLanguage;
      +    switch (attempt)
      +      {
      +        case 0:
      +          return System.getProperty(propertyName);
      +        case 1:
      +          try
      +            {
      +              File file = new File(System.getProperty("java.home"));
      +              file = new File(file, "lib");
      +              file = new File(file, "jaxp.properties");
      +              InputStream in = new FileInputStream(file);
      +              Properties props = new Properties();
      +              props.load(in);
      +              in.close();
      +              return props.getProperty(propertyName);
      +            }
      +          catch (IOException e)
      +            {
      +              return null;
      +            }
      +        default:
      +          return null;
      +      }
      +  }
      +
         /**
          * Indicates whether the specified schema language is supported.
          * @param schemaLanguage the URI of a schema language (see
      diff --git a/libjava/classpath/jvmti.h b/libjava/classpath/jvmti.h
      new file mode 100644
      index 00000000000..b26f7932e54
      --- /dev/null
      +++ b/libjava/classpath/jvmti.h
      @@ -0,0 +1,1819 @@
      +/* jvmti.h - Java Virtual Machine Tool Interface
      +   Copyright (C) 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. */
      +
      +
      +/* Note: this file must be compilable by the C compiler (for now,
      +   assuming GNU C is ok).  This means you must never use `//'
      +   comments, and all C++-specific code must be conditional on
      +   __cplusplus.  */
      +
      +#ifndef _CLASSPATH_JVMTI_H
      +#define _CLASSPATH_JVMTI_H
      +#include <jni.h>
      +
      +#include "jvmti_md.h"
      +
      +/* The VM might define JVMTI base types */
      +#ifndef _CLASSPATH_VM_JVMTI_TYPES_DEFINED
      +
      +typedef jobject jthread;
      +typedef jobject jthreadGroup;
      +typedef jlong jlocation;
      +typedef struct _Jv_rawMonitorID *jrawMonitorID;
      +
      +#endif /* !_CLASSPATH_VM_JVMTI_TYPES_DEFINED */
      +
      +/* JVMTI Version */
      +#define JVMTI_VERSION_1_0 0x30010000
      +#define JVMTI_VERSION (JVMTI_VERSION_1_0 + 38)  /* Spec version is 1.0.38 */
      +
      +#ifdef __cplusplus
      +extern "C"
      +{
      +#endif
      +
      +/* These functions might be defined in libraries which we load; the
      +   JVMTI implementation calls them at the appropriate times.  */
      +extern JNIEXPORT jint JNICALL Agent_OnLoad (JavaVM *vm, char *options,
      +					    void *reserved);
      +extern JNIEXPORT void JNICALL Agent_OnUnload (JavaVM *vm);
      +
      +#ifdef __cplusplus
      +}
      +#endif
      +
      +/* Forward declarations */
      +typedef struct _jvmtiAddrLocationMap jvmtiAddrLocationMap;
      +#ifdef __cplusplus
      +typedef struct _Jv_JVMTIEnv jvmtiEnv;
      +#else
      +typedef const struct _Jv_jvmtiEnv *jvmtiEnv;
      +#endif
      +
      +/*
      + * Error constants
      + */
      +
      +typedef enum
      +{
      +  /* Universal Errors */
      +  JVMTI_ERROR_NONE = 0,
      +  JVMTI_ERROR_NULL_POINTER = 100,
      +  JVMTI_ERROR_OUT_OF_MEMORY = 110,
      +  JVMTI_ERROR_ACCESS_DENIED = 111,
      +  JVMTI_ERROR_WRONG_PHASE = 112,
      +  JVMTI_ERROR_INTERNAL = 113,
      +  JVMTI_ERROR_UNATTACHED_THREAD = 115,
      +  JVMTI_ERROR_INVALID_ENVIRONMENT = 116,
      +
      +  /* Function-specific Required Errors */
      +  JVMTI_ERROR_INVALID_PRIORITY = 12,
      +  JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13,
      +  JVMTI_ERROR_THREAD_SUSPENDED = 14,
      +  JVMTI_ERROR_THREAD_NOT_ALIVE = 15,
      +  JVMTI_ERROR_CLASS_NOT_PREPARED = 22,
      +  JVMTI_ERROR_NO_MORE_FRAMES = 31,
      +  JVMTI_ERROR_OPAQUE_FRAME = 32,
      +  JVMTI_ERROR_DUPLICATE = 40,
      +  JVMTI_ERROR_NOT_FOUND = 41,
      +  JVMTI_ERROR_NOT_MONITOR_OWNER = 51,
      +  JVMTI_ERROR_INTERRUPT = 52,
      +  JVMTI_ERROR_UNMODIFIABLE_CLASS = 79,
      +  JVMTI_ERROR_NOT_AVAILABLE = 98,
      +  JVMTI_ERROR_ABSENT_INFORMATION = 101,
      +  JVMTI_ERROR_INVALID_EVENT_TYPE = 102,
      +  JVMTI_ERROR_NATIVE_METHOD = 104,
      +
      +  /* Function-specific Agent Errors */
      +  JVMTI_ERROR_INVALID_THREAD = 10,
      +  JVMTI_ERROR_INVALID_THREAD_GROUP = 11,
      +  JVMTI_ERROR_INVALID_OBJECT = 20,
      +  JVMTI_ERROR_INVALID_CLASS = 21,
      +  JVMTI_ERROR_INVALID_METHODID = 23,
      +  JVMTI_ERROR_INVALID_LOCATION = 24,
      +  JVMTI_ERROR_INVALID_FIELDID = 25,
      +  JVMTI_ERROR_TYPE_MISMATCH = 34,
      +  JVMTI_ERROR_INVALID_SLOT = 35,
      +  JVMTI_ERROR_INVALID_MONITOR = 50,
      +  JVMTI_ERROR_INVALID_CLASS_FORMAT = 60,
      +  JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61,
      +  JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63,
      +  JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64,
      +  JVMTI_ERROR_INVALID_TYPESTATE = 65,
      +  JVMTI_ERROR_FAILS_VERIFICATION = 62,
      +  JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66,
      +  JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67,
      +  JVMTI_ERROR_UNSUPPORTED_VERSION = 68,
      +  JVMTI_ERROR_NAMES_DONT_MATCH = 69,
      +  JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70,
      +  JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71,
      +  JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99,
      +  JVMTI_ERROR_ILLEGAL_ARGUMENT = 103
      +} jvmtiError;
      +
      +/*
      + * Enumeration Definitions
      + */
      +
      +typedef enum
      +{
      +  JVMTI_DISABLE = 0,
      +  JVMTI_ENABLE = 1
      +} jvmtiEventMode;
      +
      +typedef enum
      +{
      +  JVMTI_HEAP_OBJECT_TAGGED = 1,
      +  JVMTI_HEAP_OBJECT_UNTAGGED = 2,
      +  JVMTI_HEAP_OBJECT_EITHER = 3
      +} jvmtiHeapObjectFilter;
      +
      +typedef enum
      +{
      +  JVMTI_HEAP_ROOT_JNI_GLOBAL = 1,
      +  JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2,
      +  JVMTI_HEAP_ROOT_MONITOR = 3,
      +  JVMTI_HEAP_ROOT_STACK_LOCAL = 4,
      +  JVMTI_HEAP_ROOT_JNI_LOCAL = 5,
      +  JVMTI_HEAP_ROOT_THREAD = 6,
      +  JVMTI_HEAP_ROOT_OTHER = 7
      +} jvmtiHeapRootKind;
      +
      +typedef enum
      +{
      +  JVMTI_ITERATION_ABORT = 0,
      +  JVMTI_ITERATION_CONTINUE = 1,
      +  JVMTI_ITERATION_IGNORE = 2
      +} jvmtiIterationControl;
      +
      +typedef enum
      +{
      +  JVMTI_JLOCATION_OTHER = 0,
      +  JVMTI_JLOCATION_JVMBCI = 1,
      +  JVMTI_JLOCATION_MACHINEPC = 2
      +} jvmtiJlocationFormat;
      +
      +typedef enum
      +{
      +  JVMTI_REFERENCE_CLASS = 1,
      +  JVMTI_REFERENCE_FIELD = 2,
      +  JVMTI_REFERENCE_ARRAY_ELEMENT = 3,
      +  JVMTI_REFERENCE_CLASS_LOADER = 4,
      +  JVMTI_REFERENCE_SIGNERS = 5,
      +  JVMTI_REFERENCE_PROTECTION_DOMAIN = 6,
      +  JVMTI_REFERENCE_INTERFACE = 7,
      +  JVMTI_REFERENCE_STATIC_FIELD = 8,
      +  JVMTI_REFERENCE_CONSTANT_POOL = 9
      +} jvmtiObjectReferenceKind;
      +
      +typedef enum
      +{
      +  JVMTI_KIND_IN = 91,
      +  JVMTI_KIND_IN_PTR = 92,
      +  JVMTI_KIND_IN_BUF = 93,
      +  JVMTI_KIND_ALLOC_BUF = 94,
      +  JVMTI_KIND_ALLOC_ALLOC_BUF = 95,
      +  JVMTI_KIND_OUT = 96,
      +  JVMTI_KIND_OUT_BUF = 97
      +} jvmtiParamKind;
      +
      +typedef enum
      +{
      +  JVMTI_TYPE_JBYTE = 101,
      +  JVMTI_TYPE_JCHAR = 102,
      +  JVMTI_TYPE_JSHORT = 103,
      +  JVMTI_TYPE_JINT = 104,
      +  JVMTI_TYPE_JLONG = 105,
      +  JVMTI_TYPE_JFLOAT = 106,
      +  JVMTI_TYPE_JDOUBLE = 107,
      +  JVMTI_TYPE_JBOOLEAN = 108,
      +  JVMTI_TYPE_JOBJECT = 109,
      +  JVMTI_TYPE_JTHREAD = 110,
      +  JVMTI_TYPE_JCLASS = 111,
      +  JVMTI_TYPE_JVALUE = 112,
      +  JVMTI_TYPE_JFIELDID = 113,
      +  JVMTI_TYPE_JMETHODID = 114,
      +  JVMTI_TYPE_CCHAR = 115,
      +  JVMTI_TYPE_CVOID = 116,
      +  JVMTI_TYPE_JNIENV = 117
      +} jvmtiParamTypes;
      +
      +typedef enum
      +{
      +  JVMTI_PHASE_ONLOAD = 1,
      +  JVMTI_PHASE_PRIMORDIAL = 2,
      +  JVMTI_PHASE_LIVE = 4,
      +  JVMTI_PHASE_START = 6,
      +  JVMTI_PHASE_DEAD = 8
      +} jvmtiPhase;
      +
      +typedef enum
      +{
      +  JVMTI_TIMER_USER_CPU = 30,
      +  JVMTI_TIMER_TOTAL_CPU = 31,
      +  JVMTI_TIMER_ELAPSED = 32
      +} jvmtiTimerKind;
      +
      +typedef enum
      +{
      +  JVMTI_VERBOSE_OTHER = 0,
      +  JVMTI_VERBOSE_GC = 1,
      +  JVMTI_VERBOSE_CLASS = 2,
      +  JVMTI_VERBOSE_JNI = 4
      +} jvmtiVerboseFlag;
      +
      +/* Version information */
      +#define JVMTI_VERSION_INTERFACE_JNI 0x00000000
      +#define JVMTI_VERSION_INTERFACE_JVMTI 0x30000000
      +#define JVMTI_VERSION_MASK_INTERFACE_TYPE 0x70000000
      +#define JVMTI_VERSION_MASK_MAJOR 0x0FFF0000
      +#define JVMTI_VERSION_MASK_MINOR 0x0000FF00
      +#define JVMTI_VERSION_MASK_MICRO 0x000000FF
      +#define JVMTI_VERSION_SHIFT_MAJOR 16
      +#define JVMTI_VERSION_SHIFT_MINOR 8
      +#define JVMTI_VERSION_SHIFT_MICRO 0
      +
      +/*
      + * Events and event callbacks
      + */
      +
      +typedef enum
      +{
      +  JVMTI_EVENT_VM_INIT = 50,
      +  JVMTI_EVENT_VM_DEATH = 51,
      +  JVMTI_EVENT_THREAD_START = 52,
      +  JVMTI_EVENT_THREAD_END = 53,
      +  JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54,
      +  JVMTI_EVENT_CLASS_LOAD = 55,
      +  JVMTI_EVENT_CLASS_PREPARE = 56,
      +  JVMTI_EVENT_VM_START = 57,
      +  JVMTI_EVENT_EXCEPTION = 58,
      +  JVMTI_EVENT_EXCEPTION_CATCH = 59,
      +  JVMTI_EVENT_SINGLE_STEP =  60,
      +  JVMTI_EVENT_FRAME_POP = 61,
      +  JVMTI_EVENT_BREAKPOINT = 62,
      +  JVMTI_EVENT_FIELD_ACCESS = 63,
      +  JVMTI_EVENT_FIELD_MODIFICATION = 64,
      +  JVMTI_EVENT_METHOD_ENTRY = 65,
      +  JVMTI_EVENT_METHOD_EXIT = 66,
      +  JVMTI_EVENT_NATIVE_METHOD_BIND = 67,
      +  JVMTI_EVENT_COMPILED_METHOD_LOAD = 68,
      +  JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69,
      +  JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70,
      +  JVMTI_EVENT_DATA_DUMP_REQUEST = 71,
      +  JVMTI_EVENT_MONITOR_WAIT = 73,
      +  JVMTI_EVENT_MONITOR_WAITED = 74,
      +  JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75,
      +  JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76,
      +  JVMTI_EVENT_GARBAGE_COLLECTION_START = 81,
      +  JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82,
      +  JVMTI_EVENT_OBJECT_FREE = 83,
      +  JVMTI_EVENT_VM_OBJECT_ALLOC = 84
      +} jvmtiEvent;
      +
      +typedef void *jvmtiEventReserved;
      +
      +typedef void (JNICALL *jvmtiEventSingleStep)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jlocation location);
      +
      +typedef void (JNICALL *jvmtiEventBreakpoint)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jlocation location);
      +
      +typedef void (JNICALL *jvmtiEventFieldAccess)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jlocation location, jclass field_klass, jobject object, jfieldID field);
      +
      +typedef void (JNICALL *jvmtiEventFieldModification)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jlocation location, jclass field_klass, jobject object, jfieldID field,
      +   char signature_type, jvalue new_value);
      +
      +typedef void (JNICALL *jvmtiEventFramePop)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jboolean was_popped_by_exception);
      +
      +typedef void (JNICALL *jvmtiEventMethodEntry)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method);
      +
      +typedef void (JNICALL *jvmtiEventMethodExit)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jboolean was_popped_by_exception, jvalue return_value);
      +
      +typedef void (JNICALL *jvmtiEventNativeMethodBind)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   void *address, void **new_address_ptr);
      +
      +typedef void (JNICALL *jvmtiEventException)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jlocation location, jobject exception, jmethodID catch_method,
      +   jlocation catch_location);
      +
      +typedef void (JNICALL *jvmtiEventExceptionCatch)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
      +   jlocation location, jobject exception);
      +
      +typedef void (JNICALL *jvmtiEventThreadStart)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread);
      +
      +typedef void (JNICALL *jvmtiEventThreadEnd)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread);
      +
      +typedef void (JNICALL *jvmtiEventClassLoad)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jclass klass);
      +
      +typedef void (JNICALL *jvmtiEventClassPrepare)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thraed, jclass klass);
      +
      +typedef void (JNICALL *jvmtiEventClassFileLoadHook)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jclass class_being_redefined,
      +   jobject loader, const char *name, jobject protection_domain,
      +   jint class_data_len, const unsigned char *class_data,
      +   jint *new_class_data_len, unsigned char **new_class_data);
      +
      +typedef void (JNICALL *jvmtiEventVMStart)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env);
      +
      +typedef void (JNICALL *jvmtiEventVMInit)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread);
      +
      +typedef void (JNICALL *jvmtiEventVMDeath)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env);
      +
      +typedef void (JNICALL *jvmtiEventCompiledMethodLoad)
      +  (jvmtiEnv *jvmti_env, jmethodID method, jint code_size,
      +   const void *code_addr, jint map_length, const jvmtiAddrLocationMap *map,
      +   const void *compile_info);
      +
      +typedef void (JNICALL *jvmtiEventCompiledMethodUnload)
      +  (jvmtiEnv *jvmti_env, jmethodID method, const void *code_addr);
      +
      +typedef void (JNICALL *jvmtiEventDynamicCodeGenerated)
      +  (jvmtiEnv *jvmti_env, const char *name, const void *address, jint length);
      +
      +typedef void (JNICALL *jvmtiEventDataDumpRequest)
      +  (jvmtiEnv *jvmti_env);
      +
      +typedef void (JNICALL *jvmtiEventMonitorContendedEnter)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object);
      +
      +typedef void (JNICALL *jvmtiEventMonitorContendedEntered)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object);
      +
      +typedef void (JNICALL *jvmtiEventMonitorWait)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object,
      +   jlong timeout);
      +
      +typedef void (JNICALL *jvmtiEventMonitorWaited)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object,
      +   jboolean timed_out);
      +
      +typedef void (JNICALL *jvmtiEventVMObjectAlloc)
      +  (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object,
      +   jclass object_klass, jlong size);
      +
      +typedef void (JNICALL *jvmtiEventObjectFree)
      +  (jvmtiEnv *jvmti_env, jlong tag);
      +
      +typedef void (JNICALL *jvmtiEventGarbageCollectionStart)
      +  (jvmtiEnv *jvmti_env);
      +
      +typedef void (JNICALL *jvmtiEventGarbageCollectionFinish)
      +  (jvmtiEnv *jvmti_env);
      +
      +typedef struct
      +{
      +  jvmtiEventVMInit VMInit;
      +  jvmtiEventVMDeath VMDeath;
      +  jvmtiEventThreadStart ThreadStart;
      +  jvmtiEventThreadEnd ThreadEnd;
      +  jvmtiEventClassFileLoadHook ClassFileLoadHook;
      +  jvmtiEventClassLoad ClassLoad;
      +  jvmtiEventClassPrepare ClassPrepare;
      +  jvmtiEventVMStart VMStart;
      +  jvmtiEventException Exception;
      +  jvmtiEventExceptionCatch ExceptionCatch;
      +  jvmtiEventSingleStep SingleStep;
      +  jvmtiEventFramePop FramePop;
      +  jvmtiEventBreakpoint Breakpoint;
      +  jvmtiEventFieldAccess FieldAccess;
      +  jvmtiEventFieldModification FieldModification;
      +  jvmtiEventMethodEntry MethodEntry;
      +  jvmtiEventMethodExit MethodExit;
      +  jvmtiEventNativeMethodBind NativeMethodBind;
      +  jvmtiEventCompiledMethodLoad CompiledMethodLoad;
      +  jvmtiEventCompiledMethodUnload CompiledMethodUnload;
      +  jvmtiEventDynamicCodeGenerated DynamicCodeGenerated;
      +  jvmtiEventDataDumpRequest DataDumpRequest;
      +  jvmtiEventReserved reserved72;
      +  jvmtiEventMonitorWait MonitorWait;
      +  jvmtiEventMonitorWaited MonitorWaited;
      +  jvmtiEventMonitorContendedEnter MonitorContendedEnter;
      +  jvmtiEventMonitorContendedEntered MonitorContendedEntered;
      +  jvmtiEventReserved reserved77;
      +  jvmtiEventReserved reserved78;
      +  jvmtiEventReserved reserved79;
      +  jvmtiEventReserved reserved80;
      +  jvmtiEventGarbageCollectionStart GarbageCollectionStart;
      +  jvmtiEventGarbageCollectionFinish GarbageCollectionFinish;
      +  jvmtiEventObjectFree ObjectFree;
      +  jvmtiEventVMObjectAlloc VMObjectAlloc;
      +} jvmtiEventCallbacks;
      +
      +/*
      + * Function and Structure Type Definitions
      + */
      +
      +struct _jvmtiAddrLocationMap
      +{
      +  const void *start_address;
      +  jlocation location;
      +};
      +
      +typedef struct
      +{
      +  unsigned int can_tag_objects : 1;
      +  unsigned int can_generate_field_modification_events : 1;
      +  unsigned int can_generate_field_access_events : 1;
      +  unsigned int can_get_bytecodes : 1;
      +  unsigned int can_get_synthetic_attribute : 1;
      +  unsigned int can_get_owned_monitor_info : 1;
      +  unsigned int can_get_current_contended_monitor : 1;
      +  unsigned int can_get_monitor_info : 1;
      +  unsigned int can_pop_frame : 1;
      +  unsigned int can_redefine_classes : 1;
      +  unsigned int can_signal_thread : 1;
      +  unsigned int can_get_source_file_name : 1;
      +  unsigned int can_get_line_numbers : 1;
      +  unsigned int can_get_source_debug_extension : 1;
      +  unsigned int can_access_local_variables : 1;
      +  unsigned int can_maintain_original_method_order : 1;
      +  unsigned int can_generate_single_step_events : 1;
      +  unsigned int can_generate_exception_events : 1;
      +  unsigned int can_generate_frame_pop_events : 1;
      +  unsigned int can_generate_breakpoint_events : 1;
      +  unsigned int can_suspend : 1;
      +  unsigned int can_redefine_any_class : 1;
      +  unsigned int can_get_current_thread_cpu_time : 1;
      +  unsigned int can_get_thread_cpu_time : 1;
      +  unsigned int can_generate_method_entry_events : 1;
      +  unsigned int can_generate_method_exit_events : 1;
      +  unsigned int can_generate_all_class_hook_events : 1;
      +  unsigned int can_generate_compiled_method_load_events : 1;
      +  unsigned int can_generate_monitor_events : 1;
      +  unsigned int can_generate_vm_object_alloc_events : 1;
      +  unsigned int can_generate_native_method_bind_events : 1;
      +  unsigned int can_generate_garbage_collection_events : 1;
      +  unsigned int can_generate_object_free_events : 1;
      +  unsigned int : 15;
      +  unsigned int : 16;
      +  unsigned int : 16;
      +  unsigned int : 16;
      +  unsigned int : 16;
      +  unsigned int : 16;
      +} jvmtiCapabilities;
      +
      +typedef struct
      +{
      +  jclass klass;
      +  jint class_byte_count;
      +  const unsigned char *class_bytes;
      +} jvmtiClassDefinition;
      +
      +typedef struct
      +{
      +  char *name;
      +  jvmtiParamKind kind;
      +  jvmtiParamTypes base_type;
      +  jboolean null_ok;
      +} jvmtiParamInfo;
      +
      +typedef struct
      +{
      +  jint extension_event_index;
      +  char *id;
      +  char *short_description;
      +  jint param_count;
      +  jvmtiParamInfo* params;
      +} jvmtiExtensionEventInfo;
      +
      +typedef jvmtiError (JNICALL *jvmtiExtensionFunction)
      +  (jvmtiEnv *jvmti_enf, ...);
      +
      +typedef struct
      +{
      +  jvmtiExtensionFunction func;
      +  char *id;
      +  char *short_description;
      +  jint param_count;
      +  jvmtiParamInfo *params;
      +  jint error_count;
      +  jvmtiError *errors;
      +} jvmtiExtensionFunctionInfo;
      +
      +typedef struct
      +{
      +  jmethodID method;
      +  jlocation location;
      +} jvmtiFrameInfo;
      +
      +typedef struct
      +{
      +  jlocation start_location;
      +  jint line_number;
      +} jvmtiLineNumberEntry;
      +
      +typedef struct
      +{
      +  jlocation start_location;
      +  jint length;
      +  char *name;
      +  char *signature;
      +  char *generic_signature;
      +  jint slot;
      +} jvmtiLocalVariableEntry;
      +
      +typedef struct
      +{
      +  jthread owner;
      +  jint entry_count;
      +  jint waiter_count;
      +  jthread *waiters;
      +  jint notify_waiter_count;
      +  jthread *notify_waiters;
      +} jvmtiMonitorUsage;
      +
      +typedef struct
      +{
      +  jthread thread;
      +  jint state;
      +  jvmtiFrameInfo *frame_buffer;
      +  jint frame_count;
      +} jvmtiStackInfo;
      +
      +typedef struct
      +{
      +  jthreadGroup parent;
      +  char *name;
      +  jint max_priority;
      +  jboolean is_daemon;
      +} jvmtiThreadGroupInfo;
      +
      +typedef struct
      +{
      +  char *name;
      +  jint priority;
      +  jboolean is_daemon;
      +  jthreadGroup thread_group;
      +  jobject context_class_loader;
      +} jvmtiThreadInfo;
      +
      +typedef struct
      +{
      +  jlong max_value;
      +  jboolean may_skip_forward;
      +  jboolean may_skip_backward;
      +  jvmtiTimerKind kind;
      +  jlong reserved1;
      +  jlong reserved2;
      +} jvmtiTimerInfo;
      +
      +typedef void (JNICALL *jvmtiExtensionEvent)
      +  (jvmtiEnv *jvmti_env, ...);
      +
      +typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback)
      +  (jlong class_tag, jlong size, jlong *tag_ptr, void *user_data);
      +
      +typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback)
      +  (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong *tag_ptr,
      +   void *user_data);
      +
      +typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback)
      +  (jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size,
      +   jlong *tag_ptr, jlong referrer_tag, jint referrer_index, void *user_data);
      +
      +typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback)
      +  (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong *tag_ptr,
      +   jlong thread_tag, jint depth, jmethodID method, jint slot, void *user_data);
      +
      +typedef void (JNICALL *jvmtiStartFunction)
      +  (jvmtiEnv *env, JNIEnv *jni_env, void *arg);
      +
      +/*
      + * JVM Tool Interface Base Types
      + */
      +typedef struct JNINativeInterface jniNativeInterface;
      +
      +struct _Jv_jvmtiEnv
      +{
      +  void *reserved1;
      +
      +  jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv *env,
      +						  jvmtiEventMode mode,
      +						  jvmtiEvent event_type,
      +						  jthread event_thread, ...);
      +  void *reserved3;
      +
      +  jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv *env,
      +				       jint *threads_count_ptr,
      +				       jthread **threads_ptr);
      +
      +  jvmtiError (JNICALL *SuspendThread) (jvmtiEnv *env,
      +				       jthread thread);
      +
      +  jvmtiError (JNICALL *ResumeThread) (jvmtiEnv *env,
      +				      jthread thread);
      +
      +  jvmtiError (JNICALL *StopThread) (jvmtiEnv *env,
      +				    jthread thread,
      +                                    jobject exception);
      +
      +  jvmtiError (JNICALL *InterruptThread) (jvmtiEnv *env,
      +					 jthread thread);
      +
      +  jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv *env,
      +				       jthread thread,
      +				       jvmtiThreadInfo *info_ptr);
      +
      +  jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv *env,
      +					     jthread thread,
      +					     jint *owned_monitor_count_ptr,
      +					     jobject **owned_monitors_ptr);
      +
      +  jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv *env,
      +						    jthread thread,
      +						    jobject *monitor_ptr);
      +
      +  jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv *env,
      +					jthread thread,
      +					jvmtiStartFunction proc,
      +					const void *arg,
      +					jint priority);
      +
      +  jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv *env,
      +					    jint *group_count_ptr,
      +					    jthreadGroup **groups_ptr);
      +
      +  jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv *env,
      +					    jthreadGroup group,
      +					    jvmtiThreadGroupInfo *info_ptr);
      +
      +  jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv *env,
      +						jthreadGroup group,
      +						jint *thread_count_ptr,
      +						jthread **threads_ptr,
      +						jint *group_count_ptr,
      +						jthreadGroup **groups_ptr);
      +  jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv *env,
      +				       jthread thread,
      +				       jint *count_ptr);
      +
      +  jvmtiError (JNICALL *GetThreadState) (jvmtiEnv *env,
      +					jthread thread,
      +					jint *thread_state_ptr);
      +
      +  void *reserved18;
      +
      +  jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv *env,
      +					  jthread thread,
      +					  jint depth,
      +					  jmethodID *method_ptr,
      +					  jlocation *location_ptr);
      +
      +  jvmtiError (JNICALL *NotifyPopFrame) (jvmtiEnv *env,
      +					jthread thread,
      +					jint depth);
      +
      +  jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv *env,
      +					jthread thread,
      +					jint depth,
      +					jint slot,
      +					jobject *value_ptr);
      +
      +  jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv *env,
      +				     jthread thread,
      +				     jint depth,
      +				     jint slot,
      +				     jint *value_ptr);
      +
      +  jvmtiError (JNICALL *GetLocalLong) (jvmtiEnv *env,
      +				      jthread thread,
      +				      jint depth,
      +				      jint slot,
      +				      jlong *value_ptr);
      +
      +  jvmtiError (JNICALL *GetLocalFloat) (jvmtiEnv *env,
      +				       jthread thread,
      +				       jint depth,
      +				       jint slot,
      +				       jfloat *value_ptr);
      +
      +  jvmtiError (JNICALL *GetLocalDouble) (jvmtiEnv *env,
      +					jthread thread,
      +					jint depth,
      +					jint slot,
      +					jdouble *value_ptr);
      +
      +  jvmtiError (JNICALL *SetLocalObject) (jvmtiEnv *env,
      +					jthread thread,
      +					jint depth,
      +					jint slot,
      +					jobject value);
      +
      +  jvmtiError (JNICALL *SetLocalInt) (jvmtiEnv *env,
      +				     jthread thread,
      +				     jint depth,
      +				     jint slot,
      +				     jint value);
      +
      +  jvmtiError (JNICALL *SetLocalLong) (jvmtiEnv *env,
      +				      jthread thread,
      +				      jint depth,
      +				      jint slot,
      +				      jlong value);
      +
      +  jvmtiError (JNICALL *SetLocalFloat) (jvmtiEnv *env,
      +				       jthread thread,
      +				       jint depth,
      +				       jint slot,
      +				       jfloat value);
      +
      +  jvmtiError (JNICALL *SetLocalDouble) (jvmtiEnv *env,
      +					jthread thread,
      +					jint depth,
      +					jint slot,
      +					jdouble value);
      +
      +  jvmtiError (JNICALL *CreateRawMonitor) (jvmtiEnv *env,
      +					  const char *name,
      +					  jrawMonitorID *monitor_ptr);
      +
      +  jvmtiError (JNICALL *DestroyRawMonitor) (jvmtiEnv *env,
      +					   jrawMonitorID monitor);
      +
      +  jvmtiError (JNICALL *RawMonitorEnter) (jvmtiEnv *env,
      +					 jrawMonitorID monitor);
      +
      +  jvmtiError (JNICALL *RawMonitorExit) (jvmtiEnv *env,
      +					jrawMonitorID monitor);
      +
      +  jvmtiError (JNICALL *RawMonitorWait) (jvmtiEnv *env,
      +					jrawMonitorID monitor,
      +                                        jlong millis);
      +
      +  jvmtiError (JNICALL *RawMonitorNotify) (jvmtiEnv *env,
      +					  jrawMonitorID monitor);
      +
      +  jvmtiError (JNICALL *RawMonitorNotifyAll) (jvmtiEnv *env,
      +					     jrawMonitorID monitor);
      +
      +  jvmtiError (JNICALL *SetBreakpoint) (jvmtiEnv *env,
      +				       jmethodID method,
      +				       jlocation location);
      +
      +  jvmtiError (JNICALL *ClearBreakpoint) (jvmtiEnv *env,
      +					 jmethodID method,
      +					 jlocation location);
      +
      +  void *reserved40;
      +
      +  jvmtiError (JNICALL *SetFieldAccessWatch) (jvmtiEnv *env,
      +					     jclass klass,
      +					     jfieldID field);
      +
      +  jvmtiError (JNICALL *ClearFieldAccessWatch) (jvmtiEnv *env,
      +					       jclass klass,
      +					       jfieldID field);
      +
      +  jvmtiError (JNICALL *SetFieldModificationWatch) (jvmtiEnv *env,
      +						   jclass klass,
      +						   jfieldID field);
      +
      +  jvmtiError (JNICALL *ClearFieldModificationWatch) (jvmtiEnv *env,
      +						     jclass klass,
      +						     jfieldID field);
      +
      +  void *reserved45;
      +
      +  jvmtiError (JNICALL *Allocate) (jvmtiEnv *env,
      +				  jlong size,
      +				  unsigned char **mem_ptr);
      +
      +  jvmtiError (JNICALL *Deallocate) (jvmtiEnv *env,
      +				    unsigned char *mem);
      +
      +  jvmtiError (JNICALL *GetClassSignature) (jvmtiEnv *env,
      +					   jclass klass,
      +					   char **signature_ptr,
      +					   char **generic_ptr);
      +
      +  jvmtiError (JNICALL *GetClassStatus) (jvmtiEnv *env,
      +					jclass klass,
      +					jint *status_ptr);
      +
      +  jvmtiError (JNICALL *GetSourceFileName) (jvmtiEnv *env,
      +					   jclass klass,
      +					   char **source_name_ptr);
      +
      +  jvmtiError (JNICALL *GetClassModifiers) (jvmtiEnv *env,
      +					   jclass klass,
      +					   jint *modifiers_ptr);
      +
      +  jvmtiError (JNICALL *GetClassMethods) (jvmtiEnv *env,
      +					 jclass klass,
      +					 jint *method_count_ptr,
      +					 jmethodID **methods_ptr);
      +
      +  jvmtiError (JNICALL *GetClassFields) (jvmtiEnv *env,
      +					jclass klass,
      +					jint *field_count_ptr,
      +					jfieldID **fields_ptr);
      +
      +  jvmtiError (JNICALL *GetImplementedInterfaces) (jvmtiEnv *env,
      +						  jclass klass,
      +						  jint *interface_count_ptr,
      +						  jclass **interfaces_ptr);
      +
      +  jvmtiError (JNICALL *IsInterface) (jvmtiEnv *env,
      +				     jclass klass,
      +				     jboolean *is_interface_ptr);
      +
      +  jvmtiError (JNICALL *IsArrayClass) (jvmtiEnv *env,
      +				      jclass klass,
      +				      jboolean *is_array_class_ptr);
      +
      +  jvmtiError (JNICALL *GetClassLoader) (jvmtiEnv *env,
      +					jclass klass,
      +					jobject *classloader_ptr);
      +
      +  jvmtiError (JNICALL *GetObjectHashCode) (jvmtiEnv *env,
      +					   jobject object,
      +					   jint *hash_code_ptr);
      +
      +  jvmtiError (JNICALL *GetObjectMonitorUsage) (jvmtiEnv *env,
      +					       jobject object,
      +					       jvmtiMonitorUsage *info_ptr);
      +
      +  jvmtiError (JNICALL *GetFieldName) (jvmtiEnv *env,
      +				      jclass klass,
      +				      jfieldID field,
      +				      char **name_ptr,
      +				      char **signature_ptr,
      +				      char **generic_ptr);
      +
      +  jvmtiError (JNICALL *GetFieldDeclaringClass) (jvmtiEnv *env,
      +						jclass klass,
      +						jfieldID field,
      +						jclass *declaring_class_ptr);
      +
      +  jvmtiError (JNICALL *GetFieldModifiers) (jvmtiEnv *env,
      +					   jclass klass,
      +					   jfieldID field,
      +					   jint *modifiers_ptr);
      +
      +  jvmtiError (JNICALL *IsFieldSynthetic) (jvmtiEnv *env,
      +					  jclass klass,
      +					  jfieldID field,
      +					  jboolean *is_synthetic_ptr);
      +
      +  jvmtiError (JNICALL *GetMethodName) (jvmtiEnv *env,
      +				       jmethodID method,
      +				       char **name_ptr,
      +				       char **signature_ptr,
      +				       char **generic_ptr);
      +
      +  jvmtiError (JNICALL *GetMethodDeclaringClass) (jvmtiEnv *env,
      +						 jmethodID method,
      +						 jclass *declaring_class_ptr);
      +
      +
      +  jvmtiError (JNICALL *GetMethodModifiers) (jvmtiEnv *env,
      +					    jmethodID method,
      +					    jint *modifiers_ptr);
      +
      +  void *reserved67;
      +
      +  jvmtiError (JNICALL *GetMaxLocals) (jvmtiEnv *env,
      +				      jmethodID method,
      +				      jint *max_ptr);
      +
      +  jvmtiError (JNICALL *GetArgumentsSize) (jvmtiEnv *env,
      +					  jmethodID method,
      +					  jint *size_ptr);
      +
      +  jvmtiError (JNICALL *GetLineNumberTable) (jvmtiEnv *env,
      +					    jmethodID method,
      +					    jint *entry_count_ptr,
      +					    jvmtiLineNumberEntry **table_ptr);
      +
      +  jvmtiError (JNICALL *GetMethodLocation) (jvmtiEnv *env,
      +					   jmethodID method,
      +					   jlocation *start_location_ptr,
      +					   jlocation *end_location_ptr);
      +
      +  jvmtiError (JNICALL *GetLocalVariableTable) (jvmtiEnv *env,
      +					       jmethodID method,
      +					       jint *entry_count_ptr,
      +					       jvmtiLocalVariableEntry **table_ptr);
      +
      +  void *reserved73;
      +
      +  void *reserved74;
      +
      +  jvmtiError (JNICALL *GetBytecodes) (jvmtiEnv *env,
      +				      jmethodID method,
      +				      jint *bytecode_count_ptr,
      +				      unsigned char **bytecodes_ptr);
      +
      +  jvmtiError (JNICALL *IsMethodNative) (jvmtiEnv *env,
      +					jmethodID method,
      +					jboolean *is_native_ptr);
      +
      +  jvmtiError (JNICALL *IsMethodSynthetic) (jvmtiEnv *env,
      +					   jmethodID method,
      +					   jboolean *is_synthetic_ptr);
      +
      +  jvmtiError (JNICALL *GetLoadedClasses) (jvmtiEnv *env,
      +					  jint *class_count_ptr,
      +					  jclass **classes_ptr);
      +
      +  jvmtiError (JNICALL *GetClassLoaderClasses) (jvmtiEnv *env,
      +					       jobject initiating_loader,
      +					       jint *class_count_ptr,
      +					       jclass **classes_ptr);
      +
      +  jvmtiError (JNICALL *PopFrame) (jvmtiEnv *env,
      +				  jthread thread);
      +
      +  void *reserved81;
      +
      +  void *reserved82;
      +
      +  void *reserved83;
      +
      +  void *reserved84;
      +
      +  void *reserved85;
      +
      +  void *reserved86;
      +
      +  jvmtiError (JNICALL *RedefineClasses) (jvmtiEnv *env,
      +					 jint class_count,
      +					 const jvmtiClassDefinition* class_definitions);
      +
      +  jvmtiError (JNICALL *GetVersionNumber) (jvmtiEnv *env,
      +					  jint *version_ptr);
      +
      +  jvmtiError (JNICALL *GetCapabilities) (jvmtiEnv *env,
      +					 jvmtiCapabilities *capabilities_ptr);
      +
      +  jvmtiError (JNICALL *GetSourceDebugExtension) (jvmtiEnv *env,
      +						 jclass klass,
      +						 char **source_debug_extension_ptr);
      +
      +  jvmtiError (JNICALL *IsMethodObsolete) (jvmtiEnv *env,
      +					  jmethodID method,
      +					  jboolean *is_obsolete_ptr);
      +
      +  jvmtiError (JNICALL *SuspendThreadList) (jvmtiEnv *env,
      +					   jint request_count,
      +					   const jthread *request_list,
      +					   jvmtiError *results);
      +
      +  jvmtiError (JNICALL *ResumeThreadList) (jvmtiEnv *env,
      +					  jint request_count,
      +					  const jthread *request_list,
      +					  jvmtiError *results);
      +
      +  void *reserved94;
      +
      +  void *reserved95;
      +
      +  void *reserved96;
      +
      +  void *reserved97;
      +
      +  void *reserved98;
      +
      +  void *reserved99;
      +
      +  jvmtiError (JNICALL *GetAllStackTraces) (jvmtiEnv *env,
      +					   jint max_frame_count,
      +					   jvmtiStackInfo **stack_info_ptr,
      +					   jint *thread_count_ptr);
      +
      +  jvmtiError (JNICALL *GetThreadListStackTraces) (jvmtiEnv *env,
      +						  jint thread_count,
      +						  const jthread *thread_list,
      +						  jint max_frame_count,
      +						  jvmtiStackInfo **stack_info_ptr);
      +
      +  jvmtiError (JNICALL *GetThreadLocalStorage) (jvmtiEnv *env,
      +					       jthread thread,
      +					       void **data_ptr);
      +
      +  jvmtiError (JNICALL *SetThreadLocalStorage) (jvmtiEnv *env,
      +					       jthread thread,
      +					       const void *data);
      +
      +  jvmtiError (JNICALL *GetStackTrace) (jvmtiEnv *env,
      +				       jthread thread,
      +				       jint start_depth,
      +				       jint max_frame_count,
      +				       jvmtiFrameInfo *frame_buffer,
      +				       jint *count_ptr);
      +
      +  void *reserved105;
      +
      +  jvmtiError (JNICALL *GetTag) (jvmtiEnv *env,
      +				jobject object,
      +				jlong *tag_ptr);
      +
      +  jvmtiError (JNICALL *SetTag) (jvmtiEnv *env,
      +				jobject object,
      +				jlong tag);
      +
      +  jvmtiError (JNICALL *ForceGarbageCollection) (jvmtiEnv *env);
      +
      +  jvmtiError (JNICALL *IterateOverObjectsReachableFromObject) (jvmtiEnv *env,
      +							       jobject object,
      +							       jvmtiObjectReferenceCallback object_reference_callback,
      +							       void *user_data);
      +
      +  jvmtiError (JNICALL *IterateOverReachableObjects) (jvmtiEnv *env,
      +						     jvmtiHeapRootCallback heap_root_callback,
      +						     jvmtiStackReferenceCallback stack_ref_callback,
      +						     jvmtiObjectReferenceCallback object_ref_callback,
      +						     void *user_data);
      +
      +  jvmtiError (JNICALL *IterateOverHeap) (jvmtiEnv *env,
      +					 jvmtiHeapObjectFilter object_filter,
      +					 jvmtiHeapObjectCallback heap_object_callback,
      +					 void *user_data);
      +
      +  jvmtiError (JNICALL *IterateOverInstanceOfClass) (jvmtiEnv *env,
      +						    jclass klass,
      +						    jvmtiHeapObjectFilter object_filter,
      +						    jvmtiHeapObjectCallback heap_object_callback,
      +						    void *user_data);
      +
      +  void *reserved113;
      +
      +  jvmtiError (JNICALL *GetObjectsWithTags) (jvmtiEnv *env,
      +					    jint tag_count,
      +					    const jlong *tags,
      +					    jint *count_ptr,
      +					    jobject **object_result_ptr,
      +					    jlong **tag_result_ptr);
      +
      +  void *reserved115;
      +
      +  void *reserved116;
      +
      +  void *reserved117;
      +
      +  void *reserved118;
      +
      +  void *reserved119;
      +
      +  jvmtiError (JNICALL *SetJNIFunctionTable) (jvmtiEnv *env,
      +					     const jniNativeInterface *function_table);
      +
      +  jvmtiError (JNICALL *GetJNIFunctionTable) (jvmtiEnv *env,
      +					     jniNativeInterface **function_table_ptr);
      +
      +  jvmtiError (JNICALL *SetEventCallbacks) (jvmtiEnv *env,
      +					   const jvmtiEventCallbacks *callbacks,
      +					   jint size_of_callbacks);
      +
      +  jvmtiError (JNICALL *GenerateEvents) (jvmtiEnv *env,
      +					jvmtiEvent event_type);
      +
      +  jvmtiError (JNICALL *GetExtensionFunctions) (jvmtiEnv *env,
      +					       jint *extension_count_ptr,
      +					       jvmtiExtensionFunctionInfo **extensions);
      +
      +  jvmtiError (JNICALL *GetExtensionEvents) (jvmtiEnv *env,
      +					    jint *extension_count_ptr,
      +					    jvmtiExtensionEventInfo **extensions);
      +
      +  jvmtiError (JNICALL *SetExtensionEventCallback) (jvmtiEnv *env,
      +						   jint extension_event_index,
      +						   jvmtiExtensionEvent callback);
      +
      +  jvmtiError (JNICALL *DisposeEnvironment) (jvmtiEnv *env);
      +
      +  jvmtiError (JNICALL *GetErrorName) (jvmtiEnv *env,
      +				      jvmtiError error,
      +				      char **name_ptr);
      +
      +  jvmtiError (JNICALL *GetJLocationFormat) (jvmtiEnv *env,
      +					    jvmtiJlocationFormat *format_ptr);
      +
      +  jvmtiError (JNICALL *GetSystemProperties) (jvmtiEnv *env,
      +					     jint *count_ptr,
      +					     char ***property_ptr);
      +
      +  jvmtiError (JNICALL *GetSystemProperty) (jvmtiEnv *env,
      +					   const char *property,
      +					   char **value_ptr);
      +
      +  jvmtiError (JNICALL *SetSystemProperty) (jvmtiEnv *env,
      +					   const char *property,
      +					   const char *value);
      +
      +  jvmtiError (JNICALL *GetPhase) (jvmtiEnv *env,
      +				  jvmtiPhase *phase_ptr);
      +
      +  jvmtiError (JNICALL *GetCurrentThreadCpuTimerInfo) (jvmtiEnv *env,
      +						      jvmtiTimerInfo *info_ptr);
      +
      +  jvmtiError (JNICALL *GetCurrentThreadCpuTime) (jvmtiEnv *env,
      +						 jlong *nanos_ptr);
      +
      +  jvmtiError (JNICALL *GetThreadCpuTimerInfo) (jvmtiEnv *env,
      +					       jvmtiTimerInfo *info_ptr);
      +
      +  jvmtiError (JNICALL *GetThreadCpuTime) (jvmtiEnv *env,
      +					  jthread thread,
      +					  jlong *nanos_ptr);
      +
      +  jvmtiError (JNICALL *GetTimerInfo) (jvmtiEnv *env,
      +				      jvmtiTimerInfo *info_ptr);
      +
      +  jvmtiError (JNICALL *GetTime) (jvmtiEnv *env,
      +				 jlong *nanos_ptr);
      +
      +  jvmtiError (JNICALL *GetPotentialCapabilities) (jvmtiEnv *env,
      +						  jvmtiCapabilities *capabilities_ptr);
      +
      +  void *reserved141;
      +
      +  jvmtiError (JNICALL *AddCapabilities) (jvmtiEnv *env,
      +					 const jvmtiCapabilities *capabilities_ptr);
      +
      +  jvmtiError (JNICALL *RelinquishCapabilities) (jvmtiEnv *env,
      +						const jvmtiCapabilities *capabilities_ptr);
      +
      +  jvmtiError (JNICALL *GetAvailableProcessors) (jvmtiEnv *env,
      +						jint *processor_count_ptr);
      +
      +  void *reserved145;
      +
      +  void *reserved146;
      +
      +  jvmtiError (JNICALL *GetEnvironmentLocalStorage) (jvmtiEnv *env,
      +						    void **data_ptr);
      +
      +  jvmtiError (JNICALL *SetEnvironmentLocalStorage) (jvmtiEnv *env,
      +						    const void *data);
      +
      +  jvmtiError (JNICALL *AddToBootstrapClassLoaderSearch) (jvmtiEnv *env,
      +							 const char *segment);
      +
      +  jvmtiError (JNICALL *SetVerboseFlag) (jvmtiEnv *env,
      +					jvmtiVerboseFlag flag,
      +					jboolean value);
      +
      +  void *reserved151;
      +
      +  void *reserved152;
      +
      +  void *reserved153;
      +
      +  jvmtiError (JNICALL *GetObjectSize) (jvmtiEnv *env,
      +				       jobject object,
      +				       jlong *size_ptr);
      +};
      +
      +#ifdef __cplusplus
      +class _Jv_JVMTIEnv
      +{
      + public:
      +  /* Method table */
      +  struct _Jv_jvmtiEnv *p;
      +
      +#ifdef _CLASSPATH_JVMTIENV_CONTENTS
      +  _CLASSPATH_JVMTIENV_CONTENTS
      +#endif
      +
      +  jvmtiError SetEventNotificationMode (jvmtiEventMode mode,
      +				       jvmtiEvent event_type,
      +				       jthread event_thread, ...)
      +  {
      +    va_list args;
      +    va_start (args, event_thread);
      +    jvmtiError result = p->SetEventNotificationMode (this, mode, event_type,
      +						     event_thread, args);
      +    va_end (args);
      +    return result;
      +  }
      +
      +  jvmtiError GetAllThreads (jint *threads_count_ptr, jthread **threads_ptr)
      +  { return p->GetAllThreads (this, threads_count_ptr, threads_ptr); }
      +
      +  jvmtiError SuspendThread (jthread thread)
      +  { return p->SuspendThread (this, thread); }
      +
      +  jvmtiError ResumeThread (jthread thread)
      +  { return p->ResumeThread (this, thread); }
      +
      +  jvmtiError StopThread (jthread thread, jobject exception)
      +  { return p->StopThread (this, thread, exception); }
      +
      +  jvmtiError InterruptThread (jthread thread)
      +  { return p->InterruptThread (this, thread); }
      +
      +  jvmtiError GetThreadInfo (jthread thread, jvmtiThreadInfo *info_ptr)
      +  { return p->GetThreadInfo (this, thread, info_ptr); }
      +
      +  jvmtiError GetOwnedMonitorInfo (jthread thread,
      +				  jint *owned_monitor_count_ptr,
      +				  jobject **owned_monitors_ptr)
      +  { 
      +    return p->GetOwnedMonitorInfo (this, thread, owned_monitor_count_ptr,
      +				   owned_monitors_ptr);
      +  }
      +
      +  jvmtiError GetCurrentContendedMonitor (jthread thread, jobject *monitor_ptr)
      +  { return p->GetCurrentContendedMonitor (this, thread, monitor_ptr); }
      +
      +  jvmtiError RunAgentThread (jthread thread, jvmtiStartFunction proc,
      +			     const void *arg, jint priority)
      +  { return p->RunAgentThread (this, thread, proc, arg, priority); }
      +
      +  jvmtiError GetTopThreadGroups (jint *group_count_ptr, 
      +				 jthreadGroup **groups_ptr)
      +  { return p->GetTopThreadGroups (this, group_count_ptr, groups_ptr); }
      +
      +  jvmtiError GetThreadGroupInfo (jthreadGroup group, 
      +				 jvmtiThreadGroupInfo *info_ptr)
      +  { return p->GetThreadGroupInfo (this, group, info_ptr); }
      +
      +  jvmtiError GetThreadGroupChildren (jthreadGroup group,
      +				     jint *thread_count_ptr,
      +				     jthread **threads_ptr,
      +				     jint *group_count_ptr,
      +				     jthreadGroup **groups_ptr)
      +  {
      +    return p->GetThreadGroupChildren (this, group, thread_count_ptr,
      +				      threads_ptr, group_count_ptr,
      +				      groups_ptr);
      +  }
      +
      +  jvmtiError GetFrameCount (jthread thread, jint *count_ptr)
      +  { return p->GetFrameCount (this, thread, count_ptr); }
      +
      +  jvmtiError GetThreadState (jthread thread, jint *thread_state_ptr)
      +  { return p->GetThreadState (this, thread, thread_state_ptr); }
      +
      +  jvmtiError GetFrameLocation (jthread thread, jint depth,
      +			       jmethodID *method_ptr, jlocation *location_ptr)
      +  {
      +    return p->GetFrameLocation (this, thread, depth, method_ptr,
      +				location_ptr);
      +  }
      +
      +  jvmtiError NotifyPopFrame (jthread thread, jint depth)
      +  { return p->NotifyPopFrame (this, thread, depth); }
      +
      +  jvmtiError GetLocalObject (jthread thread, jint depth, jint slot,
      +			     jobject *value_ptr)
      +  { return p->GetLocalObject (this, thread, depth, slot, value_ptr); }
      +
      +  jvmtiError GetLocalInt (jthread thread, jint depth, jint slot,
      +			  jint *value_ptr)
      +  { return p->GetLocalInt (this, thread, depth, slot, value_ptr); }
      +
      +  jvmtiError GetLocalLong (jthread thread, jint depth, jint slot,
      +			   jlong *value_ptr)
      +  { return p->GetLocalLong (this, thread, depth, slot, value_ptr); }
      +
      +  jvmtiError GetLocalFloat (jthread thread, jint depth, jint slot,
      +			    jfloat *value_ptr)
      +  { return p->GetLocalFloat (this, thread, depth, slot, value_ptr); }
      +
      +  jvmtiError GetLocalDouble (jthread thread, jint depth, jint slot,
      +			     jdouble *value_ptr)
      +  { return p->GetLocalDouble (this, thread, depth, slot, value_ptr); }
      +
      +  jvmtiError SetLocalObject (jthread thread, jint depth, jint slot,
      +			     jobject value)
      +  { return p->SetLocalObject (this, thread, depth, slot, value); }
      +
      +  jvmtiError SetLocalInt (jthread thread, jint depth, jint slot,
      +			  jint value)
      +  { return p->SetLocalInt (this, thread, depth, slot, value); }
      +
      +  jvmtiError SetLocalLong (jthread thread, jint depth, jint slot, 
      +			   jlong value)
      +  { return p->SetLocalLong (this, thread, depth, slot, value); }
      +
      +  jvmtiError SetLocalFloat (jthread thread, jint depth, jint slot,
      +			    jfloat value)
      +  { return p->SetLocalFloat (this, thread, depth, slot, value); }
      +
      +  jvmtiError SetLocalDouble (jthread thread, jint depth, jint slot,
      +			     jdouble value)
      +  { return p->SetLocalDouble (this, thread, depth, slot, value); }
      +
      +  jvmtiError CreateRawMonitor (const char *name, jrawMonitorID *monitor_ptr)
      +  { return p->CreateRawMonitor (this, name, monitor_ptr); }
      +
      +  jvmtiError DestroyRawMonitor (jrawMonitorID monitor)
      +  { return p->DestroyRawMonitor (this, monitor); }
      +
      +  jvmtiError RawMonitorEnter (jrawMonitorID monitor)
      +  { return p->RawMonitorEnter (this, monitor); }
      +
      +  jvmtiError RawMonitorExit (jrawMonitorID monitor)
      +  { return p->RawMonitorExit (this, monitor); }
      +
      +  jvmtiError RawMonitorWait (jrawMonitorID monitor, jlong millis)
      +  { return p->RawMonitorWait (this, monitor, millis); }
      +
      +  jvmtiError RawMonitorNotify (jrawMonitorID monitor)
      +  { return p->RawMonitorNotify (this, monitor); }
      +
      +  jvmtiError RawMonitorNotifyAll (jrawMonitorID monitor)
      +  { return p->RawMonitorNotifyAll (this, monitor); }
      +
      +  jvmtiError SetBreakpoint (jmethodID method, jlocation location)
      +  { return p->SetBreakpoint (this, method, location); }
      +
      +  jvmtiError ClearBreakpoint (jmethodID method, jlocation location)
      +  { return p->ClearBreakpoint (this, method, location); }
      +
      +  jvmtiError SetFieldAccessWatch (jclass klass, jfieldID field)
      +  { return p->SetFieldAccessWatch (this, klass, field); }
      +
      +  jvmtiError ClearFieldAccessWatch (jclass klass, jfieldID field)
      +  { return p->ClearFieldAccessWatch (this, klass, field); }
      +
      +  jvmtiError SetFieldModificationWatch (jclass klass, jfieldID field)
      +  { return p->SetFieldModificationWatch (this, klass, field); }
      +
      +  jvmtiError ClearFieldModificationWatch (jclass klass, jfieldID field)
      +  { return p->ClearFieldModificationWatch (this, klass, field); }
      +
      +  jvmtiError Allocate (jlong size, unsigned char **mem_ptr)
      +  { return p->Allocate (this, size, mem_ptr); }
      +
      +  jvmtiError Deallocate (unsigned char *mem)
      +  { return p->Deallocate (this, mem); }
      +
      +  jvmtiError GetClassSignature (jclass klass, char **signature_ptr,
      +				char **generic_ptr)
      +  { return p->GetClassSignature (this, klass, signature_ptr, generic_ptr); }
      +
      +  jvmtiError GetClassStatus (jclass klass, jint *status_ptr)
      +  { return p->GetClassStatus (this, klass, status_ptr); }
      +
      +  jvmtiError GetSourceFileName (jclass klass, char **source_name_ptr)
      +  { return p->GetSourceFileName (this, klass, source_name_ptr); }
      +
      +  jvmtiError GetClassModifiers (jclass klass, jint *modifiers_ptr)
      +  { return p->GetClassModifiers (this, klass, modifiers_ptr); }
      +
      +  jvmtiError GetClassMethods (jclass klass, jint *method_count_ptr,
      +			      jmethodID **methods_ptr)
      +  { return p->GetClassMethods (this, klass, method_count_ptr, methods_ptr); }
      +
      +  jvmtiError GetClassFields (jclass klass, jint *field_count_ptr,
      +			     jfieldID **fields_ptr)
      +  { return p->GetClassFields (this, klass, field_count_ptr, fields_ptr); }
      +
      +  jvmtiError GetImplementedInterfaces (jclass klass,
      +				       jint *interface_count_ptr,
      +				       jclass **interfaces_ptr)
      +  {
      +    return p->GetImplementedInterfaces (this, klass, interface_count_ptr,
      +					interfaces_ptr);
      +  }
      + 
      +  jvmtiError IsInterface (jclass klass, jboolean *is_interface_ptr)
      +  { return p->IsInterface (this, klass, is_interface_ptr); }
      +
      +  jvmtiError IsArrayClass (jclass klass, jboolean *is_array_class_ptr)
      +  { return p->IsArrayClass (this, klass, is_array_class_ptr); }
      +
      +  jvmtiError GetClassLoader (jclass klass, jobject *classloader_ptr)
      +  { return p->GetClassLoader (this, klass, classloader_ptr); }
      +
      +  jvmtiError GetObjectHashCode (jobject object, jint *hash_code_ptr)
      +  { return p->GetObjectHashCode (this, object, hash_code_ptr); }
      +
      +  jvmtiError GetObjectMonitorUsage (jobject object,
      +				    jvmtiMonitorUsage *info_ptr)
      +  { return p->GetObjectMonitorUsage (this, object, info_ptr); }
      +
      +  jvmtiError GetFieldName (jclass klass, jfieldID field, char **name_ptr,
      +			   char **signature_ptr, char **generic_ptr)
      +  {
      +    return p->GetFieldName (this, klass, field, name_ptr,
      +			    signature_ptr, generic_ptr);
      +  }
      +
      +  jvmtiError GetFieldDeclaringClass (jclass klass, jfieldID field,
      +				     jclass *declaring_class_ptr)
      +  {
      +    return p->GetFieldDeclaringClass (this, klass, field,
      +				      declaring_class_ptr);
      +  }
      +
      +  jvmtiError GetFieldModifiers (jclass klass, jfieldID field,
      +				jint *modifiers_ptr)
      +  { return p->GetFieldModifiers (this, klass, field, modifiers_ptr); }
      +
      +  jvmtiError IsFieldSynthetic (jclass klass, jfieldID field,
      +			       jboolean *is_synthetic_ptr)
      +  { return p->IsFieldSynthetic (this, klass, field, is_synthetic_ptr); }
      +
      +  jvmtiError GetMethodName (jmethodID method, char **name_ptr,
      +			    char **signature_ptr, char **generic_ptr)
      +  {
      +    return p->GetMethodName (this, method, name_ptr, signature_ptr,
      +			     generic_ptr);
      +  }
      +
      +  jvmtiError GetMethodDeclaringClass (jmethodID method,
      +				      jclass *declaring_class_ptr)
      +  { return p->GetMethodDeclaringClass (this, method, declaring_class_ptr); }
      +
      +
      +  jvmtiError GetMethodModifiers (jmethodID method, jint *modifiers_ptr)
      +  { return p->GetMethodModifiers (this, method, modifiers_ptr); }
      +
      +  jvmtiError GetMaxLocals (jmethodID method, jint *max_ptr)
      +  { return p->GetMaxLocals (this, method, max_ptr); }
      +
      +  jvmtiError GetArgumentsSize (jmethodID method, jint *size_ptr)
      +  { return p->GetArgumentsSize (this, method, size_ptr); }
      +
      +  jvmtiError GetLineNumberTable (jmethodID method, jint *entry_count_ptr,
      +				 jvmtiLineNumberEntry **table_ptr)
      +  { return p->GetLineNumberTable (this, method, entry_count_ptr, table_ptr); }
      +
      +  jvmtiError GetMethodLocation (jmethodID method,
      +				jlocation *start_location_ptr,
      +				jlocation *end_location_ptr)
      +  {
      +    return p->GetMethodLocation (this, method, start_location_ptr,
      +				 end_location_ptr);
      +  }
      +
      +  jvmtiError GetLocalVariableTable (jmethodID method, jint *entry_count_ptr,
      +				    jvmtiLocalVariableEntry **table_ptr)
      +  {
      +    return p->GetLocalVariableTable (this, method, entry_count_ptr,
      +				     table_ptr);
      +  }
      +
      +  jvmtiError GetBytecodes (jmethodID method, jint *bytecode_count_ptr,
      +			   unsigned char **bytecodes_ptr)
      +  {
      +    return p->GetBytecodes (this, method, bytecode_count_ptr,
      +			    bytecodes_ptr);
      +  }
      +
      +  jvmtiError IsMethodNative (jmethodID method, jboolean *is_native_ptr)
      +  { return p->IsMethodNative (this, method, is_native_ptr); }
      +
      +  jvmtiError IsMethodSynthetic (jmethodID method, jboolean *is_synthetic_ptr)
      +  { return p->IsMethodSynthetic (this, method, is_synthetic_ptr); }
      +
      +  jvmtiError GetLoadedClasses (jint *class_count_ptr, jclass **classes_ptr)
      +  { return p->GetLoadedClasses (this, class_count_ptr, classes_ptr); }
      +
      +  jvmtiError GetClassLoaderClasses (jobject initiating_loader,
      +				    jint *class_count_ptr,
      +				    jclass **classes_ptr)
      +  {
      +    return p->GetClassLoaderClasses (this, initiating_loader,
      +				     class_count_ptr, classes_ptr);
      +  }
      +
      +  jvmtiError PopFrame (jthread thread)
      +  { return p->PopFrame (this, thread); }
      +
      +  jvmtiError RedefineClasses (jint class_count,
      +			      const jvmtiClassDefinition* class_definitions)
      +  { return p->RedefineClasses (this, class_count, class_definitions); }
      +
      +  jvmtiError GetVersionNumber (jint *version_ptr)
      +  { return p->GetVersionNumber (this, version_ptr); }
      +
      +  jvmtiError GetCapabilities (jvmtiCapabilities *capabilities_ptr)
      +  { return p->GetCapabilities (this, capabilities_ptr); }
      +
      +  jvmtiError GetSourceDebugExtension (jclass klass,
      +				      char **source_debug_extension_ptr)
      +  {
      +    return p->GetSourceDebugExtension (this, klass,
      +				       source_debug_extension_ptr);
      +  }
      +
      +  jvmtiError IsMethodObsolete (jmethodID method, jboolean *is_obsolete_ptr)
      +  { return p->IsMethodObsolete (this, method, is_obsolete_ptr); }
      +
      +
      +  jvmtiError SuspendThreadList (jint request_count,
      +				const jthread *request_list,
      +				jvmtiError *results)
      +  { return p->SuspendThreadList (this, request_count, request_list, results); }
      +
      +  jvmtiError ResumeThreadList (jint request_count,
      +			       const jthread *request_list,
      +			       jvmtiError *results)
      +  { return p->ResumeThreadList (this, request_count, request_list, results); }
      +
      +  jvmtiError GetAllStackTraces (jint max_frame_count,
      +				jvmtiStackInfo **stack_info_ptr,
      +				jint *thread_count_ptr)
      +  {
      +    return p->GetAllStackTraces (this, max_frame_count, stack_info_ptr,
      +				 thread_count_ptr);
      +  }
      +
      +  jvmtiError GetThreadListStackTraces (jint thread_count,
      +				       const jthread *thread_list,
      +				       jint max_frame_count,
      +				       jvmtiStackInfo **stack_info_ptr)
      +  {
      +    return p->GetThreadListStackTraces (this, thread_count, thread_list,
      +					max_frame_count, stack_info_ptr);
      +  }
      +
      +  jvmtiError GetThreadLocalStorage (jthread thread, void **data_ptr)
      +  { return p->GetThreadLocalStorage (this, thread, data_ptr); }
      +
      +  jvmtiError SetThreadLocalStorage (jthread thread, const void *data)
      +  { return p->SetThreadLocalStorage (this, thread, data); }
      +
      +  jvmtiError GetStackTrace (jthread thread, jint start_depth,
      +			    jint max_frame_count,
      +			    jvmtiFrameInfo *frame_buffer, jint *count_ptr)
      +  {
      +    return p->GetStackTrace (this, thread, start_depth, max_frame_count,
      +			     frame_buffer, count_ptr);
      +  }
      +
      +  jvmtiError GetTag (jobject object, jlong *tag_ptr)
      +  { return p->GetTag (this, object, tag_ptr); }
      +
      +  jvmtiError SetTag (jobject object, jlong tag)
      +  { return p->SetTag (this, object, tag); }
      +
      +  jvmtiError ForceGarbageCollection (void)
      +  { return p->ForceGarbageCollection (this); }
      +
      +  jvmtiError IterateOverObjectsReachableFromObject (jobject object,
      +						    jvmtiObjectReferenceCallback object_reference_callback,
      +						    void *user_data)
      +  {
      +    return p->IterateOverObjectsReachableFromObject (this, object,
      +						     object_reference_callback,
      +						     user_data);
      +  }
      +
      +  jvmtiError IterateOverReachableObjects (jvmtiHeapRootCallback heap_root_callback,
      +					  jvmtiStackReferenceCallback stack_ref_callback,
      +					  jvmtiObjectReferenceCallback object_ref_callback,
      +					  void *user_data)
      +  {
      +    return p->IterateOverReachableObjects (this, heap_root_callback,
      +					   stack_ref_callback,
      +					   object_ref_callback,
      +					   user_data);
      +  }
      +
      +  jvmtiError IterateOverHeap (jvmtiHeapObjectFilter object_filter,
      +			      jvmtiHeapObjectCallback heap_object_callback,
      +			      void *user_data)
      +  {
      +    return p->IterateOverHeap (this, object_filter, heap_object_callback,
      +			       user_data);
      +  }
      +
      +  jvmtiError IterateOverInstanceOfClass (jclass klass,
      +					 jvmtiHeapObjectFilter object_filter,
      +					 jvmtiHeapObjectCallback heap_object_callback,
      +					 void *user_data)
      +  {
      +    return p->IterateOverInstanceOfClass (this, klass, object_filter,
      +					  heap_object_callback, user_data);
      +  }
      +
      +  jvmtiError GetObjectsWithTags (jint tag_count, const jlong *tags,
      +				 jint *count_ptr, jobject **object_result_ptr,
      +				 jlong **tag_result_ptr)
      +  {
      +    return p->GetObjectsWithTags (this, tag_count, tags, count_ptr,
      +				  object_result_ptr, tag_result_ptr);
      +  }
      +
      +  jvmtiError SetJNIFunctionTable (const jniNativeInterface *function_table)
      +  { return p->SetJNIFunctionTable (this, function_table); }
      +
      +  jvmtiError GetJNIFunctionTable (jniNativeInterface **function_table_ptr)
      +  { return p->GetJNIFunctionTable (this, function_table_ptr); }
      +
      +  jvmtiError SetEventCallbacks (const jvmtiEventCallbacks *callbacks,
      +				jint size_of_callbacks)
      +  { return p->SetEventCallbacks (this, callbacks, size_of_callbacks); }
      +
      +  jvmtiError GenerateEvents (jvmtiEvent event_type)
      +  { return p->GenerateEvents (this, event_type); }
      +
      +  jvmtiError GetExtensionFunctions (jint *extension_count_ptr,
      +				    jvmtiExtensionFunctionInfo **extensions)
      +  { return p->GetExtensionFunctions (this, extension_count_ptr, extensions); }
      +
      +  jvmtiError GetExtensionEvents (jint *extension_count_ptr,
      +				 jvmtiExtensionEventInfo **extensions)
      +  { return p->GetExtensionEvents (this, extension_count_ptr, extensions); }
      +
      +  jvmtiError SetExtensionEventCallback (jint extension_event_index,
      +					jvmtiExtensionEvent callback)
      +  {
      +    return p->SetExtensionEventCallback (this, extension_event_index,
      +					 callback);
      +  }
      +
      +  jvmtiError DisposeEnvironment (void)
      +  { return p->DisposeEnvironment (this); }
      +
      +  jvmtiError GetErrorName (jvmtiError error, char **name_ptr)
      +  { return p->GetErrorName (this, error, name_ptr); }
      +
      +  jvmtiError GetJLocationFormat (jvmtiJlocationFormat *format_ptr)
      +  { return p->GetJLocationFormat (this, format_ptr); }
      +
      +  jvmtiError GetSystemProperties (jint *count_ptr, char ***property_ptr)
      +  { return p->GetSystemProperties (this, count_ptr, property_ptr); }
      +
      +  jvmtiError GetSystemProperty (const char *property, char **value_ptr)
      +  { return p->GetSystemProperty (this, property, value_ptr); }
      +
      +  jvmtiError SetSystemProperty (const char *property, const char *value)
      +  { return p->SetSystemProperty (this, property, value); }
      +
      +  jvmtiError GetPhase (jvmtiPhase *phase_ptr)
      +  { return p->GetPhase (this, phase_ptr); }
      +
      +  jvmtiError GetCurrentThreadCpuTimerInfo (jvmtiTimerInfo *info_ptr)
      +  { return p->GetCurrentThreadCpuTimerInfo (this, info_ptr); }
      +
      +  jvmtiError GetCurrentThreadCpuTime (jlong *nanos_ptr)
      +  { return p->GetCurrentThreadCpuTime (this, nanos_ptr); }
      +
      +  jvmtiError GetThreadCpuTimerInfo (jvmtiTimerInfo *info_ptr)
      +  { return p->GetThreadCpuTimerInfo (this, info_ptr); }
      +
      +  jvmtiError GetThreadCpuTime (jthread thread, jlong *nanos_ptr)
      +  { return p->GetThreadCpuTime (this, thread, nanos_ptr); }
      +
      +  jvmtiError GetTimerInfo (jvmtiTimerInfo *info_ptr)
      +  { return p->GetTimerInfo (this, info_ptr); }
      +
      +  jvmtiError GetTime (jlong *nanos_ptr)
      +  {return p->GetTime (this, nanos_ptr); }
      +
      +  jvmtiError GetPotentialCapabilities (jvmtiCapabilities *capabilities_ptr)
      +  { return p->GetPotentialCapabilities (this, capabilities_ptr); }
      +
      +  jvmtiError AddCapabilities (const jvmtiCapabilities *capabilities_ptr)
      +  { return p->AddCapabilities (this, capabilities_ptr); }
      +
      +  jvmtiError RelinquishCapabilities (const jvmtiCapabilities *capabilities_ptr)
      +  { return p->RelinquishCapabilities (this, capabilities_ptr); }
      +
      +  jvmtiError GetAvailableProcessors (jint *processor_count_ptr)
      +  { return p->GetAvailableProcessors (this, processor_count_ptr); }
      +
      +  jvmtiError GetEnvironmentLocalStorage (void **data_ptr)
      +  { return p->GetEnvironmentLocalStorage (this, data_ptr); }
      +
      +  jvmtiError SetEnvironmentLocalStorage (const void *data)
      +  { return p->SetEnvironmentLocalStorage (this, data); }
      +
      +  jvmtiError AddToBootstrapClassLoaderSearch (const char *segment)
      +  { return p->AddToBootstrapClassLoaderSearch (this, segment); }
      +
      +  jvmtiError SetVerboseFlag (jvmtiVerboseFlag flag, jboolean value)
      +  { return p->SetVerboseFlag (this, flag, value); }
      +
      +  jvmtiError GetObjectSize (jobject object, jlong *size_ptr)
      +  { return p->GetObjectSize (this, object, size_ptr); }
      +};
      +#endif /* __cplusplus */
      +
      +/*
      + * Miscellaneous flags, constants, etc
      + */
      +
      +/* Class status flags */
      +#define JVMTI_CLASS_STATUS_VERIFIED 1
      +#define JVMTI_CLASS_STATUS_PREPARED 2
      +#define JVMTI_CLASS_STATUS_INITIALIZED 4
      +#define JVMTI_CLASS_STATUS_ERROR 8
      +#define JVMTI_CLASS_STATUS_ARRAY 16
      +#define JVMTI_CLASS_STATUS_PRIMITIVE 32
      +
      +/* Thread state flags */
      +#define JVMTI_THREAD_STATE_ALIVE 0x0001
      +#define JVMTI_THREAD_STATE_TERMINATED 0x0002
      +#define JVMTI_THREAD_STATE_RUNNABLE 0x0004
      +#define JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER 0x0400
      +#define JVMTI_THREAD_STATE_WAITING 0x0080
      +#define JVMTI_THREAD_STATE_WAITING_INDEFINITELY 0x0010
      +#define JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT 0x0020
      +#define JVMTI_THREAD_STATE_SLEEPING 0x0040
      +#define JVMTI_THREAD_STATE_IN_OBJECT_WAIT 0x0100
      +#define JVMTI_THREAD_STATE_PARKED 0x0200
      +#define JVMTI_THREAD_STATE_SUSPENDED 0x100000
      +#define JVMTI_THREAD_STATE_INTERRUPTED 0x200000
      +#define JVMTI_THREAD_STATE_IN_NATIVE 0x400000
      +#define JVMTI_THREAD_STATE_VENDOR_1 0x10000000
      +#define JVMTI_THREAD_STATE_VENDOR_2 0x20000000
      +#define JVMTI_THREAD_STATE_VENDOR_3 0x40000000
      +
      +/* java.lang.Thread.State conversion masks */
      +#define JVMTI_JAVA_LANG_THREAD_STATE_MASK		\
      +  (JVMTI_THREAD_STATE_TERMINATED			\
      +   | JVMTI_THREAD_STATE_ALIVE				\
      +   | JVMTI_THREAD_STATE_RUNNABLE			\
      +   | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER	\
      +   | JVMTI_THREAD_STATE_WAITING				\
      +   | JVMTI_THREAD_STATE_WAITING_INDEFINITELY		\
      +   | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT)
      +#define JVMTI_JAVA_LANG_THREAD_STATE_NEW 0
      +#define JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED JVMTI_THREAD_STATE_TERMINATED
      +#define JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE \
      +  (JVMTI_THREAD_STATE_ALIVE		      \
      +   | JVMTI_THREAD_STATE_RUNNABLE)
      +#define JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED	\
      +  (JVMTI_THREAD_STATE_ALIVE			\
      +   | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER)
      +#define JVMTI_JAVA_LANG_THREAD_STATE_WAITING	\
      +  (JVMTI_THREAD_STATE_ALIVE			\
      +   | JVMTI_THREAD_STATE_WAITING			\
      +   | JVMTI_THREAD_STATE_WAITING_INDEFINITELY)
      +#define JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING \
      +  (JVMTI_THREAD_STATE_ALIVE			   \
      +   | JVMTI_THREAD_STATE_WAITING			   \
      +   | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT)
      +
      +/* Thread priorities */
      +#define JVMTI_THREAD_MIN_PRIORITY 1
      +#define JVMTI_THREAD_NORM_PRIORITY 5
      +#define JVMTI_THREAD_MAX_PRIORITY 10
      +
      +/* Keep c-font-lock-extra-types in order: JNI followed by JVMTI,
      +   all in alphabetical order */
      +/* Local Variables: */
      +/* c-font-lock-extra-types: ("\\sw+_t"
      +   "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray"
      +   "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar"  "jcharArray"
      +   "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray"
      +   "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable"
      +   "jvalue" "jweak"
      +   "jvmtiEnv" "jvmtiError"
      +   "jthread" "jthreadGroup" "jlocation" "jrawMonitorID") */
      +/* End: */
      +#endif /* !_CLASSPATH_JVMTI_H */
      diff --git a/libjava/classpath/lib/.cvsignore b/libjava/classpath/lib/.cvsignore
      new file mode 100644
      index 00000000000..93f21e77a36
      --- /dev/null
      +++ b/libjava/classpath/lib/.cvsignore
      @@ -0,0 +1,38 @@
      +Makefile
      +Makefile.in
      +com
      +gnu
      +java
      +javax
      +kaffe
      +classes
      +classes.awt
      +classes.locale
      +classes.locale1
      +classes.locale2
      +classes.locale
      +classes.standard
      +classes.standardx
      +classes.xml
      +glibj.zip
      +deps.sh
      +gen-classlist.sh
      +mkdep.pl
      +errors.txt
      +headers.dep
      +classes.dep
      +makefile.dep
      +java.dep
      +compile-classes
      +mkcollections.pl
      +gen_nio.sh
      +classes.1
      +resources
      +org
      +sun
      +META-INF
      +Makefile.deps
      +lists
      +copy-vmresources.sh
      +classes.2
      +standard.omit
      diff --git a/libjava/classpath/lib/Makefile.am b/libjava/classpath/lib/Makefile.am
      index e7e2bd83c79..56b85aecc81 100644
      --- a/libjava/classpath/lib/Makefile.am
      +++ b/libjava/classpath/lib/Makefile.am
      @@ -5,20 +5,21 @@ JAVA_DEPEND = java.dep
       ## this file and restart the make process again
       sinclude $(JAVA_DEPEND)
       
      -## GCJ LOCAL: prune .svn directories
      -propertydirs :=  $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org META-INF -type d ! -name CVS -print | fgrep -v .svn)
       propertyfiles :=  $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print)
      +cssfiles := $(shell cd $(top_srcdir) && $(FIND) gnu java javax org -name \*\.css -print)
      +## GCJ LOCAL: prune .svn directories
       metafiles :=  $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print | fgrep -v .svn)
       ## END GCJ LOCAL
       iconfiles :=  $(shell cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print)
       
      -compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
      +compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
       
       # handling source to bytecode compiler programs like gcj, jikes  and kjc
       if FOUND_GCJ
      -## This should never be used when gcj is the compiler.
       ## See the compile-classes target.
      -JAVAC = exit 1
      +## There's no point in warning, and we always want debug info.
      +## GCJ LOCAL: use srcdir
      +JAVAC = $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
       else
       if FOUND_JIKES
       JAVAC = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
      @@ -45,11 +46,7 @@ COLLECTIONS = collections.jar
       
       collections.jar: mkcollections.pl
       	./mkcollections.pl $(top_srcdir)
      -if FOUND_GCJ
      -	$(GCJ) -C `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
      -else
       	$(JAVAC) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
      -endif
       	if test "$(FASTJAR)" != ""; then \
       	  $(FASTJAR) cf $@ $(COLLECTIONS_PREFIX); \
       	else \
      @@ -107,22 +104,26 @@ glibj.zip: classes compile-classes resources
       endif # USE_PREBUILT_GLIBJ_ZIP
       
       resources: copy-vmresources.sh
      -	if ! [ -e gnu ]; then mkdir gnu; fi
      -	if ! [ -e gnu/java ]; then mkdir gnu/java; fi
      -	if ! [ -e gnu/java/locale ]; then mkdir gnu/java/locale; fi
      -	if ! [ -e gnu/javax/swing/plaf/gtk/icons ]; then mkdir -p gnu/javax/swing/plaf/gtk/icons; fi
      -	list='$(propertydirs)'; for p in $$list; do \
      -	  if ! [ -e $$p ]; then mkdir $$p; fi; \
      +	@list='$(propertyfiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/resource/$$p $$p; \
       	done
      -	list='$(propertyfiles)'; for p in $$list; do \
      -	  cp -f $(top_srcdir)/resource/$$p $$p; \
      +	@list='$(cssfiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/$$p $$p; \
       	done
      -	list='$(metafiles)'; for p in $$list; do \
      -	  cp -f $(top_srcdir)/resource/$$p $$p; \
      +	@list='$(metafiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/resource/$$p $$p; \
       	done
      -	$(SHELL) ./copy-vmresources.sh
      -	list='$(iconfiles)'; for p in $$list; do \
      -	  cp -f $(top_srcdir)/$$p $$p; \
      +	@$(SHELL) ./copy-vmresources.sh
      +	@list='$(iconfiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/$$p $$p; \
       	done
       	touch resources
       
      @@ -152,22 +153,24 @@ endif # REGEN_PARSER
       
       $(JAVA_DEPEND): genclasses
       
      -if FOUND_GCJ
      -## When building with gcj, we do a recursive make.  We split this rule
      -## out specially, rather than simply defining JAVAC, so that GNU make
      -## will see the recursive make invocation and still allow parallel
      -## builds.
      -compile-classes: classes $(JAVA_SRCS) Makefile
      -	$(MAKE) -f $(srcdir)/Makefile.gcj \
      -	  GCJ='$(GCJ)' \
      -	  compile_classpath='$(top_builddir):$(compile_classpath)' \
      -	  top_srcdir=$(top_srcdir)
      -	touch compile-classes
      -else
      +# if FOUND_GCJ
      +# ## When building with gcj, we do a recursive make.  We split this rule
      +# ## out specially, rather than simply defining JAVAC, so that GNU make
      +# ## will see the recursive make invocation and still allow parallel
      +# ## builds.
      +# compile-classes: classes $(JAVA_SRCS) Makefile
      +# 	$(MAKE) -f $(srcdir)/Makefile.gcj \
      +# 	  GCJ='$(GCJ)' \
      +# 	  compile_classpath='$(top_builddir):$(compile_classpath)' \
      +# 	  top_srcdir=$(top_srcdir)
      +# 	touch compile-classes
      +# else
       compile-classes: classes $(JAVA_SRCS) Makefile
      +if JAVA_MAINTAINER_MODE
       	$(JAVAC)
      -	touch compile-classes
       endif
      +	touch compile-classes
      +# endif
       
       EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh
       CLEANFILES = compile-classes resources classes \
      diff --git a/libjava/classpath/lib/Makefile.gcj b/libjava/classpath/lib/Makefile.gcj
      index 7bac691e8eb..a7f3027efa6 100644
      --- a/libjava/classpath/lib/Makefile.gcj
      +++ b/libjava/classpath/lib/Makefile.gcj
      @@ -25,7 +25,7 @@ Makefile.deps: classes
       -include Makefile.deps $(all_deps_files)
       
       ## Like GCJ but include some common flags.
      -GCJF = $(GCJ) -Wno-deprecated --encoding=UTF-8 \
      +GCJF = $(GCJ) -fsource=1.5 -ftarget=1.5 -g -Wno-deprecated --encoding=UTF-8 \
           --bootclasspath '' --classpath $(compile_classpath) \
           -C -d .
       
      diff --git a/libjava/classpath/lib/Makefile.in b/libjava/classpath/lib/Makefile.in
      index bcc76110a6a..759cead840b 100644
      --- a/libjava/classpath/lib/Makefile.in
      +++ b/libjava/classpath/lib/Makefile.in
      @@ -44,12 +44,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
       ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
       am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
       	$(top_srcdir)/../../config/lead-dot.m4 \
      +	$(top_srcdir)/../../config/no-executables.m4 \
       	$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \
       	$(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \
       	$(top_srcdir)/m4/ax_create_stdint_h.m4 \
      -	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
      -	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
      -	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
      +	$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
      +	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
      +	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
      +	$(top_srcdir)/configure.ac
       am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
       	$(ACLOCAL_M4)
       mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
      @@ -162,6 +164,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
       INSTALL_SCRIPT = @INSTALL_SCRIPT@
       INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
       JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
      +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
      +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
       JAY = @JAY@
       JAY_SKELETON = @JAY_SKELETON@
       JIKES = @JIKES@
      @@ -283,24 +287,24 @@ target_alias = @target_alias@
       target_cpu = @target_cpu@
       target_os = @target_os@
       target_vendor = @target_vendor@
      -toolexeclibdir = @toolexeclibdir@
       vm_classes = @vm_classes@
       JAVA_DEPEND = java.dep
      -propertydirs := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org META-INF -type d ! -name CVS -print | fgrep -v .svn)
       propertyfiles := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print)
      +cssfiles := $(shell cd $(top_srcdir) && $(FIND) gnu java javax org -name \*\.css -print)
       metafiles := $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print | fgrep -v .svn)
       iconfiles := $(shell cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print)
      -compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
      +compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
       @FOUND_ECJ_TRUE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JAVAC = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
       @FOUND_GCJX_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JAVAC = $(GCJX) -g -encoding UTF-8 -classpath .:$(USER_CLASSLIB) -d . @classes
       @FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_TRUE@JAVAC = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes
       @FOUND_GCJ_FALSE@@FOUND_JIKES_TRUE@JAVAC = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
       
       # handling source to bytecode compiler programs like gcj, jikes  and kjc
      -@FOUND_GCJ_TRUE@JAVAC = exit 1
      +@FOUND_GCJ_TRUE@JAVAC = $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
       JAVAH = $(USER_JAVAH) -jni -classpath .:$(USER_CLASSLIB)
       @CREATE_COLLECTIONS_TRUE@COLLECTIONS = collections.jar
       @BUILD_CLASS_FILES_TRUE@noinst_DATA = genclasses compile-classes resources
      +# endif
       EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh
       CLEANFILES = compile-classes resources classes \
       	glibj.zip classes.1 classes.2 Makefile.deps \
      @@ -487,8 +491,7 @@ sinclude $(JAVA_DEPEND)
       
       @CREATE_COLLECTIONS_TRUE@collections.jar: mkcollections.pl
       @CREATE_COLLECTIONS_TRUE@	./mkcollections.pl $(top_srcdir)
      -@CREATE_COLLECTIONS_TRUE@@FOUND_GCJ_TRUE@	$(GCJ) -C `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
      -@CREATE_COLLECTIONS_TRUE@@FOUND_GCJ_FALSE@	$(JAVAC) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
      +@CREATE_COLLECTIONS_TRUE@	$(JAVAC) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
       @CREATE_COLLECTIONS_TRUE@	if test "$(FASTJAR)" != ""; then \
       @CREATE_COLLECTIONS_TRUE@	  $(FASTJAR) cf $@ $(COLLECTIONS_PREFIX); \
       @CREATE_COLLECTIONS_TRUE@	else \
      @@ -523,22 +526,26 @@ sinclude $(JAVA_DEPEND)
       @USE_PREBUILT_GLIBJ_ZIP_FALSE@	if test "$(FASTJAR)" != ""; then $(FASTJAR) cf glibj.zip gnu java javax org sun META-INF; fi
       
       resources: copy-vmresources.sh
      -	if ! [ -e gnu ]; then mkdir gnu; fi
      -	if ! [ -e gnu/java ]; then mkdir gnu/java; fi
      -	if ! [ -e gnu/java/locale ]; then mkdir gnu/java/locale; fi
      -	if ! [ -e gnu/javax/swing/plaf/gtk/icons ]; then mkdir -p gnu/javax/swing/plaf/gtk/icons; fi
      -	list='$(propertydirs)'; for p in $$list; do \
      -	  if ! [ -e $$p ]; then mkdir $$p; fi; \
      +	@list='$(propertyfiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/resource/$$p $$p; \
       	done
      -	list='$(propertyfiles)'; for p in $$list; do \
      -	  cp -f $(top_srcdir)/resource/$$p $$p; \
      +	@list='$(cssfiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/$$p $$p; \
       	done
      -	list='$(metafiles)'; for p in $$list; do \
      -	  cp -f $(top_srcdir)/resource/$$p $$p; \
      +	@list='$(metafiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/resource/$$p $$p; \
       	done
      -	$(SHELL) ./copy-vmresources.sh
      -	list='$(iconfiles)'; for p in $$list; do \
      -	  cp -f $(top_srcdir)/$$p $$p; \
      +	@$(SHELL) ./copy-vmresources.sh
      +	@list='$(iconfiles)'; for p in $$list; do \
      +          dirname=`dirname $$p`; \
      +          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
      +	  cp $(top_srcdir)/$$p $$p; \
       	done
       	touch resources
       
      @@ -564,15 +571,21 @@ genclasses: gen-classlist.sh standard.omit $(top_builddir)/gnu/java/locale/Local
       
       $(JAVA_DEPEND): genclasses
       
      -@FOUND_GCJ_TRUE@compile-classes: classes $(JAVA_SRCS) Makefile
      -@FOUND_GCJ_TRUE@	$(MAKE) -f $(srcdir)/Makefile.gcj \
      -@FOUND_GCJ_TRUE@	  GCJ='$(GCJ)' \
      -@FOUND_GCJ_TRUE@	  compile_classpath='$(top_builddir):$(compile_classpath)' \
      -@FOUND_GCJ_TRUE@	  top_srcdir=$(top_srcdir)
      -@FOUND_GCJ_TRUE@	touch compile-classes
      -@FOUND_GCJ_FALSE@compile-classes: classes $(JAVA_SRCS) Makefile
      -@FOUND_GCJ_FALSE@	$(JAVAC)
      -@FOUND_GCJ_FALSE@	touch compile-classes
      +# if FOUND_GCJ
      +# ## When building with gcj, we do a recursive make.  We split this rule
      +# ## out specially, rather than simply defining JAVAC, so that GNU make
      +# ## will see the recursive make invocation and still allow parallel
      +# ## builds.
      +# compile-classes: classes $(JAVA_SRCS) Makefile
      +# 	$(MAKE) -f $(srcdir)/Makefile.gcj \
      +# 	  GCJ='$(GCJ)' \
      +# 	  compile_classpath='$(top_builddir):$(compile_classpath)' \
      +# 	  top_srcdir=$(top_srcdir)
      +# 	touch compile-classes
      +# else
      +compile-classes: classes $(JAVA_SRCS) Makefile
      +@JAVA_MAINTAINER_MODE_TRUE@	$(JAVAC)
      +	touch compile-classes
       
       clean-local:
       	-rm -rf gnu
      diff --git a/libjava/classpath/lib/gen-classlist.sh.in b/libjava/classpath/lib/gen-classlist.sh.in
      index 1d38956ddcb..1c704116b19 100755
      --- a/libjava/classpath/lib/gen-classlist.sh.in
      +++ b/libjava/classpath/lib/gen-classlist.sh.in
      @@ -25,15 +25,22 @@ echo "Adding java source files from srcdir '@top_srcdir@'."
        done) > ${top_builddir}/lib/classes.1
       
       # The same, but for the external code.
      -# Right now all external code is in org/.
      -for dir in @top_srcdir@/external/w3c_dom \
      -   @top_srcdir@/external/sax @top_srcdir@/external/relaxngDatatype; do
      -  (cd $dir
      -  @FIND@ org -follow -name '*.java' -print |
      -  sort -r | sed -e 's,/\([^/]*\)$, \1,' |
      -  while read pkg file; do
      -     echo $pkg $dir $pkg/$file
      -  done)
      +for dir in \
      +   @top_srcdir@/external/w3c_dom \
      +   @top_srcdir@/external/sax \
      +   @top_srcdir@/external/relaxngDatatype \
      +   @top_srcdir@/external/jsr166 \
      +   ; do
      +   (cd $dir
      +   for subdir in java javax gnu org sun; do
      +      if test -d $subdir; then
      +	 @FIND@ $subdir -follow -name '*.java' -print |
      +	 sort -r | sed -e 's,/\([^/]*\)$, \1,' |
      +	 while read pkg file; do
      +	    echo $pkg $dir $pkg/$file
      +	 done
      +      fi
      +   done)
       done >> ${top_builddir}/lib/classes.1
       
       # Generate files for the VM classes.
      @@ -55,7 +62,9 @@ for dir in $vm_dirlist; do
       done
       
       # Only include generated files once.
      -if test ! "${top_builddir}" -ef "@top_srcdir@"; then
      +abs_top_builddir=`cd "${top_builddir}"; pwd`
      +abs_top_srcdir=`cd "@top_srcdir@"; pwd`
      +if test "$abs_top_builddir" != "$abs_top_srcdir"; then
         echo "Adding generated files in builddir '${top_builddir}'."
         # Currently the only generated files are in gnu.*.
         (cd ${top_builddir}; @FIND@ gnu -follow -name '*.java' -print) |
      @@ -95,7 +104,7 @@ rm vm.add
       rm tmp.omit
       
       new=
      -if test -e ${top_builddir}/lib/classes.2; then
      +if test -f ${top_builddir}/lib/classes.2; then
         p=`diff ${top_builddir}/lib/classes.2 ${top_builddir}/lib/classes.1`
         if test "$p" != ""; then
           new="true"
      diff --git a/libjava/classpath/lib/gnu/CORBA/Asynchron.class b/libjava/classpath/lib/gnu/CORBA/Asynchron.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..785a3af53d2182c9e49bba607ee50be97e988736
      GIT binary patch
      literal 1872
      zcwTi?TT@e46#g~|Ib4o%m%G-sVnTqZ)oKIMB9#^mP!OTObeLnZ4Tpx4c+LrEpY2cR
      zbm~kyt>c(!$IeK{VlOk&k+;70C-kB3K9_!blPFqv$X;i!wf48Zb%Q_u{p|^Wlel7_
      zOrRm{<YU7VQx}F}L*6YXx#VUY13`h>Woy-nWh^Hho4B?tlfFRElMcn9gf``UI}=OT
      z&Zjb!usy$DAT(e*wm&Ek2uEh<KAcU-Dg;n%!a#+A0|JeEJ*|R?>Pj%CiE@MlYG{+=
      z`IT$ZowlxJq(FTlo3t`BmTRkfQ5p1?Y)_ymu}2Q1(@DCi#g%-<w{sb}=*k;;>G|Gb
      z){$%0ErIs%LL%#?W7(B-@%7Y>OMhgh3N2_e&`R_@T}-s2LZDiQC;?WKLI||%2Q46M
      z{ze6k>_aaluS?gJDOHu%O}v3OSx_sLB9(CB)u!}E<`va06UP;w0~)i0z_R7CnarXi
      zZ~Dada#_cdx;yg<JZho`y`*jX(zX1o%hrY?yP7*%)c02-hLZ+P5b*z26Q}SNo1vnx
      z!6k&<Bo)OoCf-Jb6g8z18-;w%#5>AjELq;T1_>%g#M+Asi$_!QzU8e;OaIl3TS;m^
      z|Eh~OlQQSq^fYim;PA_ivz(>$v}-w@l~hiuaPOPAsJaqz<w|yyBmMzK4Se|0&P*@4
      z(n^`Qgv$cuUPj6s^9o;z%orGBloy_(4pVdUIbWupQ=#jcWwR22(eYuPV?!U4>6L8W
      zP0A5l&HlmXlisJGaFpv4;9d*<xI_9BYVCMd@^*n%WvlIejH>S6Va`3q!JkpHPF)%5
      zcplX6Pb0`a)lk;+X70Q}0~$4U6Al&e7Wqo~HwDfYU`9JmZJ_yfndpc<`EL8!3($JP
      z0mCG75!IB9td#<OZRc?jSbcS%lh9?f9>x($L7!5vFX*jsV%?8WGdK1$Fjzpd`i^!o
      z?$KE-j@=H3P8I&2o~;5xJzJaWgfS3Clux7R)pCc{Vd{Z7o(s(J6EwqO_yu%P*N4<D
      zim~SuV?~OUJQYP%&oClIiVumbD8@C##8V|U&^=Z_OV6+96Ziuy<GmX={S}PpR`3Cp
      zX9ezT{~c9iqg$JS2ShY*3}=XPoI9oD8JyK}hjo{Zl%>}VcE}^kJUOlMPsAEucsN1Z
      zIefN@eZ0uNhVv0eKXE$Ph5?+{><95KHSf_L<ZVcyi!NO=V7azpp!|HDcs8gLiU&&>
      z#mfsg-dbMDDIRJK>8u)*U40MFwuV}RTMw0wPVq0^3NUzXwtxN$M%p{?ZvWWcu{2QF
      zzCT;ozRT!!WHHI8Lm1a`64P2<MH1JMDCR$+&o9aS4hQOM^8J>YyJ*8b_T)Z$QQ-fz
      z@0sThM7oE|v|nXs=CRIs{fS7Akj6K<K7)EkmW%ZXP(RL|a#bNQp$D*%Gx3q`a~n}r
      S^~xEcMOQCG&q>{vss8{zGmJ_A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89e1b94e81e981c520b204dcddcd62018adc60f8
      GIT binary patch
      literal 3255
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class b/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85adfcd3b6e4213de43a9abf19d0a13cb6ba3058
      GIT binary patch
      literal 1158
      zcwT){OHUI~6#g!KOsykmA3Rh9RG@{H5m8hM0<935)RF*V2#Msj9qW+kOfyUgtd-wE
      z+{mUIH((?|*ZvFth<ff!BSIS&_ndRj^E;0pzrLOU7{{E1Hiq7^QByL@E9rS9y>F}Y
      zmc{ooW~It4Zkv__FT?e1zRMMz8)ap=u&owt34Vr%qpjJRuAKWb_@^~Pv!63~V)1nb
      zZ^kUCL3nUghJ*k^M@}=;e63PYtu<cIRfbT`EOLFFTblSclwSLtw!_eu`!Bo{gH&{W
      z6fzvkT?U$J*2J?C!VGPjX$et=u5*X1VXKzG^##ikjdxuzuG*Gnl+!g$FR7O3r$@$3
      z++qlnRXd~e9ReGU#s8`2C{sc7qEEsdYW$K(Mn47!KgH*Hh44o%gu4YP{vHM;+`q5|
      z*Ct~K!<1l`>os-xEyGZY0kllniMZIt2tzd1Y>%%8kYHd5;W#Ek!2?<=uU1u~#E@(i
      z(WGh&%Bl5G#)RlJV4JQnhzQ~mCTU{laSMAzwQ6goLA&S178iHX)D2w~-zpF`GBd$7
      zdRd0xs#&v&>Y^r2r@O_WjEPhj041R3qx)|oP6tW!3jGw~jJR*)1i{aaStjatl;gNY
      zRCXQEjt=6q58QBrS)8<f(jAN@KEdayv+oGy1)1`W3Nhh`M^Ij$BC>Ic&W+JybRXmP
      z7u-ETEJVL#!qt#;jPVmZ`j$NF@tz$b=<rhAGwC}*Z!+qe=<yOcMEhU4RR7>(Q6IT|
      z{Qc8YCr}|ex_&%vG_goPfoTFcLmkhOZjL-M=)w!~TBNBgA%!f_CFJlDYsh00E8rwm
      z@Cth*zsH6%gy(LfjUfo>37$HGIlwcLM8$nfAxv`)VTbaD;l&#aQvDf1z$k+l?(82Z
      C=LUfQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/AbstractCdrInput.class b/libjava/classpath/lib/gnu/CORBA/CDR/AbstractCdrInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74cf0f95395474ffad5b336ce4540168b6d93a36
      GIT binary patch
      literal 20999
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/AbstractCdrOutput.class b/libjava/classpath/lib/gnu/CORBA/CDR/AbstractCdrOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3da6e965b73a4f86cf3739fab87d540be178dc80
      GIT binary patch
      literal 13461
      zcwUuS33waTwf>JrwrqLgBzA1ab{0bx%koARC?P2j+X->-5@ILRNmE6($F@M0j4Wj<
      zeWjr#bfE<rD1ovT8rHU<#7-~`bO8z}U7$O3p%iF=QrhxfUtbsAId?{*kt~z&eIz64
      z-h0k}{<GY3COrM0hmQeRLT`HDBFrC*BpRDLH#V(qY;M`uxVm>V9t-xxoBLy(iTFq&
      z?tz<79gPh(Mu!K@je(_sWsM`zSUlJpHX6-sUGbO^9QGiWFfVO$V@og|bnYQ|Vu?sR
      zG;9zm+S0Z2w~gl7N&@u~PHoE$FC~;WYS9>PEpAKK%YX5jdoUCok;Rmp%|>iA6piqr
      zr!U%Xj2dymV#oS<t(_Yhn|Y<nh<6#W9icv>IU0!@yF^!EBp8cDcLw@~f-!ZnsO_TQ
      zj$mUr7#VD214EHP-lgvh^&6=@)2u_0U_7*g&897c0<|Ui%d~JP9uFG<BhnuVM)*71
      zm<WagqZVbQrj}4Njc(SIyDAh3#m^>``?7DT*~}z}HC||#r=tS%nK56@W)Dsw%$!7v
      z7gbmw+ZGaXe66iDoAbf^=$M8=FMsmss6i!RI$P#cl#g1}dr(JMcrsM#Xuu3YURU?(
      zj+WIMTSW9}I+kE5!ONnpLxdXN$+<@CoZc3S7#)e>UL)2mu_@k(_65V6gRzi&w|;cT
      zheD%-Q>KV5JM<+&cE&<+qdQ8-7kdW=lt10RR#7*tFC2{slsJ2x1upcRP@>7^`*oC|
      zL`*(M$GKR|0mE{eLW658_q%;tYBtMyvyK+5VM+!al=yr#C&!6MI8Vnqw3?(^F6MCZ
      zWyuE<+xa>Qpv%d29UbW85EIKK!}!$X6cZwHN39SbY}7FwGb9+gb!-AJ=1Up``Z-}a
      z@LRq30JeD0L#WI&fw!><qk+z@wK}%qgUmi#-4T>RQNoN*PBc;YAssVOBnr3d2#Uf&
      zJNcAW+0>__7)2U?BKbO?V-`yIE9J}Akd9K6Fw$VaE(p27NPx?V2b_G1)4kfJQq^>o
      zGXuN`BPy9wDMByNkq@s292X1H&)a@ZKO93;&h5}K8|54kQn&&;k{&Bej2eO7(4bu*
      za)RN|AU})y_;{S*^aV#o6Jf3=vVB2Xh-8mN4?e<4kiIKTOcL3p_^6n5nM%g=2*`R1
      ztlT0&QNj?iRpcC%QU&-puJGU!gsKx&cpZDO!iy{MDGxqLn3dYUDPrszG5X?0zm8Ai
      zGc4QSIvXR*_Bn!O&8|LUByL8y2cKoil7+Ih(_Z7q;6E;77Xxq0vM#`VTbsl%ul?hw
      zSaF@;yOz)MQP<Wcj#}O)byF5^l*Jq5iW=ZR(87k)c11wIN>ak<nWQGuH~Y_Rq0zXq
      z<Tk!P(|2@q23p%Uw5@4h)6wn4t(d2-I7?006k50lTYDH`<-6#VYfT~V?7fIdS65Dk
      zgVllpcMtQJa#U+HwjmbX!Fd@gz}>h{$NhMKlZ^AbRs1zGEnHhWH*)FvDh_$@HKr?V
      zLC1q&Br^gglt|P{2-*LTj>EF(wbl~hum|HD<5R_~g4;Sg682&YM|C`m3Dy^2RDpgY
      zYz%T<nW;2|fEH^Lqx}XR_23w{QzzIe)%7t#?NrodNf|G`h3|OqZKi3`qK?P$1k({!
      z#{==GbPQY?3H~WHOe&+o-FJ07g{L{lN2F&Ft0(Wv^pOYO<A_Pu(zLoI(79pF#?{@e
      zogE&0pW`l5PE#Tj=0M294+%>)gpJ^+QN=a4Dn4XXv5cyLXsk+Z=qmG8sjKP>Mk3L8
      zmGWwp7ti2XDM!yqiOB+z@6Dg!XCC~NX-Tb`*6a8=e!&4Rw`n*y$^l>Oa}uI{WImq9
      zuRM5x8;Xo2xtD&;CCHbR#b@wa9WUZ{a(j%7a9k4Vv(h*PBTB^Yb-XM(^5Ri*(Tn4F
      zRyx3}?v#2OQ2j6UOG|U2Nag+g=6)?CnKwPdr*eI&?CIV;Vn|oP9?p!U<dWk0FZi1W
      zf8~;!l9OCtXM{(Lm{h>G3Fn^N)iJdy5B_ITv~3zSVvZ6%d#clfxoz)qlGpQ1tAml<
      zS^AvSk=@GHf8jqK{CiR!^0JP1*aIlyS}B)Tz_i9}Hy2G^KvLV-_x~c7P8zwTL1o}v
      z-6tKi4dVWca&^3kKNnCQc|DXrb(u>k(W!uRj!v_9N+WqvK4I>uknKo$Sn#P<sc}Or
      zG#ru{CJ8N{W>ArbW^$HfU~fJ@6zSKgm}c>{6u(&2=gDzxZd>W4X;jK-PGwo{8EcPR
      z#+g%}xQb(ZM=+d_Ds~dYv)_0?tZq9g>sH#=cW*SxrAr#HwC@3)^n$xp6R@RKO$n~8
      zJnd1)zLumhl@7mIXkEl!&NjAPC|hG5s%9Hb!bM(MNHxNiUtKL(2f?hRk{03$Ib5$(
      zgA9f_1L4Hz5aVrT;L)9gIa!67@Z=s&+2pXiSu7W^r*rbtG8U^wVc~-1=0>eCDwo@#
      z!T6BfSM)~{=6vRBQPU6coU|J&xR0W9bUK$-%G4}7ThvAmH6?qw^gfT_x7cl5MhnO}
      z>Qv?c-I8=yOHxf>AhgTqPmR{Y!T6AL?=41OXgC;F{GCtj9%^GRrotz+!!Cf-L1=te
      zzf6|xp$(jK+4Fxxu<zpFpwZYA?3YXsznM@=vrCisJ}F5nQ?`erK{e{GRh=wdsM7~%
      zQ!<Lznya*yi=kt`gU+={I@j8f&(rdthzjVm9V_^XQ$M#x;&vR#4u_1^q>NVkT9O^|
      zN06;IkqzoJL`JfNx2Z*1&-Ew$ghTH7q}=tkxlx`Xl(|i&&=H+35saqLrrlC5CEjK_
      zwkIW8&_<0*5=NxYkjUMk(>57e2-kUtx0Ix_-@bZd*SghhUfP9u+Ih{$$>-_eBRc(;
      z%&$4ap-42wYjl}TAEUhtLf-K-2NTkm)j2zg?x9$8r>bH#S%2kQzBe(z$g}kS7KW8s
      z-di*!1_q3n(VzC-g07@bdFYdq-WX2Wtkb87XR+K~wLqAcIf=^P%Js(*?WNDs)gJmB
      z*P3_Rr_(jWQ<i%)w8u~{uv+EdejV?Vw^8naSaf*uE1k)P*bW~Z;zBA8?=l^JqfR%8
      z!_8RjGFPd~_PE;bh@q}z40YM{%WS>9bO+t(p)aMipJv6?=`Q-R*?vkyjjC2-a#`Nm
      zB!P1U3lH|%coSyS&vbk<(MY)6uTxN7mri%A${$(#s?MFEyh6!XOPzjDr;F%f+l+)V
      zRTd8G^aZ-XE}01j2eN!br<>^(8{tkV@?KQYgieppHyDk)$_)oXkv_gu)N4-lLUD`G
      z{isflrSePO{RnU0k~{3%YSeBPc0HU=T%@GH^_qmubm&TY!@7}oTKqGDr*wK+AsA)l
      zMhbzT{+>>8Tr1kXuhR-rpMI#*kBFP>ToJq4dc)Uj^T}OdQdhZeYnF~f-FGber#k+D
      z|KsC)g2B$pwpWJNcq|d=3#xlO5b7UQFH5#gjsy?!3{su?c~fLGF(M6s(cj4zi+V|8
      zUu}8BQ$s_$5g&^7S7mDO)l|s{wVTJR5YM~Du)%YEe}k8vm)XK9V98f68H1HQ)r*BM
      z>GXSgky~wx8S4mB%niXnu+K<;BW_PAR*Y;m`!dJN>MkP|3Wh^_%qpgI{86XZ=vDiS
      z)ytJ;Kf)Q?6-~tYjI|-@9ZDy?=W38+?o&9U<o#a`&)*+|2YCS8@`g@53!tm#G!&}m
      zbj;wVOWrK1XR-C1g%b5FwVq|xb2iHPc{<ClKqdb@hrji*E*C%N`NuKWKY^+qcg{FY
      zJ&Z;E+A&o7AB2Aljfd3vW&C$3?+0#U?IW!B4*vcn%*CBpuGW+!)^G-(KE01MlF~Qd
      z($~r7iJ#?@^<}CmVkN-6ma6+1{sT&lZVE8f@Emd`R`7SiSy*W)8D<FrrKZ;Z5LO+4
      zM>`0&dkkmSvW6yBBEK&h!&-T+A46NFeGfCU6RhwNRN))&;h4j|8r!}aY~W8~-x4gf
      zRPSg1$*wkk?O|NtXZaUAgsvmF@G!Pn-va7eufM3@TD=V(Hv`lT!|)dkTANZo4yDjl
      zAeaAsoH0JZ-hL9N;3-D%G|uPgJB6^#M%adn*b+h5f;ASxM)e)Y5k+6KMdzv?pLH;t
      zV~HVo!EPNs+hR6X%v+xV=2gEw&u3n60Lit1<l<r_mE@mgELmaptnBicPAcMP2=~;E
      zBXSrc2Qi($#^h_9zlyd*rjuUg1bKx&{{g4sHB{quhi0Fx*=GmgI<#i9Vo|0Qe`D!y
      zPhrJQPCb!zE>>HzHd?Yu{guf;JB(H0>ICOcN_HU!2JjB1F|{Q`4*8|F{8H@VRF&C!
      zw-wWS@L@~OIn0)LrDOt^_V}G~J&ym%a3jrjxUs}`qtukiF|a=K@F`hiU@s#w4;#E&
      zY$@i$Bb7&SxeEu8*Isu7`wpo?UanAAIg^;`*z5)r(rGB7rAmC2DZ)0r7@xytK3&NB
      zuf{ceT2x-k&(8zO^sAKeW{d6uQC@o#`(4QJADsm+t#t5PU@IxW_4tA^eJ^g9B)W$`
      zOU0R{M9-Of6bIasgf~N{7A4$oZnlL_vxLj1o7fhY`t(KqBo+N;++xwU)}k+O0=M>z
      z<Mv09PJf$&pFCT79@pA0Dd~A!ZSPY2e3^MyGU*(4l%&Ky@n?JOH*xm?%&dJ3cOS*Q
      zBxUt0hiachp8p8Geu!7c4sZ#43}a(B(ot`2u20)s&$a)Nv)twGCy-n2Zm)X+MRoks
      zH;>@Sj(W9Y0>^tM@Jvt9561B$Ui$GEemREUjNzqmypl4hmy0N<2RXEbiTfbRdEls^
      z0OnB;r&2E#P(S=MfTc9Vebz--OBdrjilT!?(8aUOW}ZE^&>r;BhcQH#B19j>FkOZn
      z^f6q<&&&C{&~>&djQec5_OUZwg<Pb2xjyKOW+@ipk6b4-u4Z{$D|B{WAD?;ye^L&5
      z6MwcGwB2%0p}+PB-bxSc96tNsX`%gD<k8j0r)xRH_d8ryXk#g4EPv<I`6{&kSGkV+
      zFH75Jc((+S@cU0;x`Z!YqA|*;^B*OT<W}(nP3w7(rjJuehrgazQb9S7Yar-$=JyW9
      za3^NcT|8*qgT-_&YUzGQpw`)V>To?52;ruh%Bg}SE#~u;G)H)#xprk6ws@#id49mU
      zkFw-@5!aaXd_Te^?qQVDBkb&B4pJ&@5S2^{mpV>SJKt#@CA)-sc(=s!k~wFvQU##4
      z#JwyH!^hoJ;+`{i`|a<%bP!$%RvXY_zGaet)RjrckxS1oGsjUwKV)W}#cA|oN8~KA
      zfh}Qns+5!^b{a3S(pckoJ%vBHQOocIHdhZil@{2r-O9`r4A?k;8O{P(JwXe5<cG&-
      zF+aAAldrw5a*S&0#;7ix&(j!q68>Ti8_;jzp%*cWUS`Msp568e>gZK0qt~#U-oTmk
      zro+)IY*SXSDN^aHIW$hAB`k5dgYBiX%!2(I|0-;Eo3Ixu(u*z9muHau`av{IHbv;?
      zk~v1p%iYSJbceKZCz7<Nfy*%HpKQ^;Ic47A2>CaBt{j}@a$}V%7cDLi+FV|AxO8;6
      z3YBH+B+SumTh>iy(EF6+ZaUL)Qa7zoPV%ywO((5l`C_-5Q$FRcvnbgnMy=E<_s_^1
      zqg7&2^-(%olko1Sx53XqF|CH9^Kg|R*EJi(t_sX@&B1KfJV%I^+aSxC{$`diOGxKS
      zL$YfPt+kZjXN7p9sXUGIB??6v=jnVdWS=JaR3*Sw&5(T1U4E4Fv)WaU8doD4TuU55
      z-e^N>WN7CpNsV@pH(EiSZ}V5<U~L^Go2R{2St#Z5Nb3(`hKk%&1dA*wlUJ$d4C-_y
      zqH7iMTxTQSbuMPOnlRJVf)dwSNAx<HA-aGz+GSH>cBUe-OGR%tZL;u0EIhOQ9?OXf
      zj?(7L8a16OQ<5>$i9Ct8HlWD0ksaBMGS_B@6KC5fW;0VgETPzuIa_F}rTbpXi4973
      znh#G?Al}7?3plsaeHdUw+fm@+OOv0AT?XgHAnIKqhYuTUWDSh$gGy3^?ZXDkhk3RS
      zeGVUPvs<{yoK+sB51p8^QAQYN&UP?oyO^^*Q*owxIVWd9zU)uPS%U)co;cgbh^}PL
      zKE<3}$(&uqoPCZtyJkwx`rZ>~{bWpCE#@Dkfh^S`gS4ADHE&_UZsTfk2gAH`%4!ix
      zRtr`x)#4)VhE7~98WoE7R4ooMqzAcLJjB)FL9Q0#TrG}rwV0T)T7=(IwHT%dvJMLr
      zJ>jt6dK}YSPomKE6bIVzDTamXDTcIRfkwHbH&uSby3Wd+eS9V-@;`v3tNl5qyMD<P
      z=>?R!ey!9lH^ta$%j^!n%;urY;$f!4`Z&)mCX~<f9*LQ1f9<g`N=Rq7llz(W3EI^&
      zPJ24)i|NCM>C$@c0X}+R{i7zd0=6p&?NoUM<a&+W^*S^1Cx-ZEPP?}-&-E89bp4eB
      z{%uF`thS+6)8z{4bOvZLREFvFar%Uct2kX@0ldiq*yyi)i1v-qRg6+T`N!z<Cj?r|
      z0iFhwy;PuaPp4@p({eCh%f({NgE}n_4Vu>h)Dc^B9bM1T%50$X9YDW8NvEbNR!*v7
      z9XMgd(n^q{m7+-F>sqT|RCA`R@?XrTST|F0VoO!5oXp%iU4eKn6-(nh(frI)9cJ@$
      zvDOHmwgmOsvMDRpt?#K~-G=9o8ZE@mh4Pwf+Zf&6?yo!M-Y$X2e%$HT#^_)=f0c|e
      z9c?r6wHD0O*05LCVV<_0z1oHaT8G1%3vILuIYWvdcXkQg%>gLhOfh<oegC9hz;Fkg
      z$e6LUP0Y|{#{lnq0b|}QMEBbFNjJ=~J<qQi(EBo_eFz>c;6Uq~sgt)sp3QAua$=_k
      z?8<+(#bd62{uq5FQ~nU64NZksm2{%7*@Zj<?V(I*moVDclxV|KqW!v^DQVn3lqr8V
      zqunzl+Ak`!V|L_cpdHVYwwKXfJ|)^)r$l>{tdWV^;aqj{Mh?+MZk`<;K7f_U93Qf0
      zC^OY}rVk#y88g%e%p(=DBS&2|*5PAv_^b)KqsRS7PLEc(X`H^<UMCVbDLQ0R{jr?w
      zYS2+%)N7^m%(w>o?ab)lIsxr!=-RcM8T&bpufrnk2GnQ=u$-S~YB%Ej+D&NDZo&E5
      zZP=vUj$Z99T%vs$d$fbtr`?VH+I_fAdjJQtuR8MnMw`DIt=a8Ndv?17RrDRsE*JKo
      zj2`Fg(r}$4yPinSbEH`ppyA*&&%tTtfH$dxHB9FD1Owg{Y_sV(gKu<bk1{=vF+Ja6
      zdcMPj;|bLAbA|RjrsO!<wP%=??_-<xBLuYP(69Z(G3XgK4Te4F8TO!OSc6`rUH;nb
      zK`-DagiqRq@C7S@w<toGi0>Z2tXj+e?NSVnAH+HS9KN2P8Oo6YslERoW|{rN82!Lx
      z$VGEx!|m_9CJS1Y>*oSan6xohdx=?i870~)n5(_P0rDnagl}OLKhM+NMz{8NX5k;`
      z(f;XZIJVf<Z?Vd03G$S~U8uzzWwQ&L9Ik(ker#E~%ety6l#2`f?BAth^pli#-^%#+
      z75*>R?Lr|x%iV4ViV7P=1^tYEuI#I@eNbWfK;tpZ^a0T?=$96X(<RCISujD*_Y~8w
      z#_2a1Z#muhN|pJNIr)N?=(qIZq$<Xo|1P8MxThn>JtKP+qjGv#Rk2s-)oil<kSU8h
      S1b69_vR+rR-jFl&r~e1NF&;Jm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/AbstractDataInput.class b/libjava/classpath/lib/gnu/CORBA/CDR/AbstractDataInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b14322c5b449210eb4d2673ad535ac256d1a4644
      GIT binary patch
      literal 682
      zcwS}D-A=+V6bJBs5gZ>XAd27O#|_-L_y}y1WX6O9q8EBq<}!v$OSaC)t9juA_)x}n
      zOhd|&W$mx$?3|wOpU*D<x41S?Am{`vHSOWZ>YKJRGW(N6#MBcG71U+(R2V1{G-mXj
      znh|AzIh@RVPY@JipS}{5x-VAGC8*wgc>Y|3oFxV-1g$J1<fc3PKOrz=wCk$)no74g
      zk9;b9quYBXC}*}1eg;+!_LRmM*s_WOho_Th8RHOC6b&LyMJ9tkNuy|yxA!CqD|6X0
      z#?Alyz*&&NeV#O)@^~3CmUmY2$dWK%e%@7cmGa<9@)pk3aUy5Z&F)qm^ECGSL8!WH
      zuTAtujb@WT7J_=}a=;~Q%Do|XMfojfQq`n}Elswuqe&eNO`6!%q=h|A_R-el0Ee0!
      d;aHOsoN98mmUX@+r8Vi`VpZgODc1#D{Q`^LZN>lq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/AbstractDataOutput.class b/libjava/classpath/lib/gnu/CORBA/CDR/AbstractDataOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a266486edc0c62020d2ef1ad3e22996ec1e1c92
      GIT binary patch
      literal 562
      zcwS}D-A;or6bJCr31efZ)2Z|8!prT(#zz<+3C4tEOT5slLJ(L;yFly5t9juA_)x~S
      z#>G$)(tm$Fr)m53{qYF^H*o1d55ZMI1rCy>zraDb#EZ1$4as;&I7tNG2=0J|V7w+T
      z1lNQXI7!!e#u3=hwP;HOJG1!%0{8YU%Qw7Yv~^&JV4@o;hT~+rB70t&isuNdS*)6z
      z*^?jZWXq&RPZ#)%)j6T6?osLRSKn2utMjU44gXsRO41-0=p556-!odME$;OBG(|Nd
      zTv?=Sq%CA3t@W8gUASVR$?~XDHZ`B)T3xJ<Kwccw=gHTxp)co-oLO=lNO56gh-b)d
      lNA_U9BV%Kq149lCnHX{e#~nF=X-7`s?7ztWT;?8J`~VZwUONB)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/AligningInput.class b/libjava/classpath/lib/gnu/CORBA/CDR/AligningInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90eeba64f5ed39854014a6287552d06606a3af8c
      GIT binary patch
      literal 1725
      zcwT)}T~ixn6n@^2FT&blu(mYRZYyGv0%?`{l@?7xKSBdRpb$(QT#`+?Htc3LyGU>R
      zn(=Qqb;cQQys$HEaAd~b`=cD6ce4$YQZKUmzUSjP&w0+-{PXW$e*?IJFCz#DB$}q1
      zDU_G<xlCbhIg@J{P17)&MYHWX5d;OszSefMjA3Q+4;?*c+uB3Vx8m5kwk;608jX(b
      z2#6vt*9_BeW(7jYYCg3l5G+`AJ%#}cDTp9C2!YoWgb)@uSu#w0(cRwC?Nx27r3=JM
      zR!wWIX|^HnzA@<BH#!36O8>(%D-hK-x7<cUw*>;#yuctim3?NxWKnV%)XdH2WJ8+F
      zmvlxIoRxG2+EypV`<Q}rc#BD$2S!`w&Zp)hPz6p~b~9sbH+>TM+}!3;ZaKFQ!9_Yf
      zky@JB%upEe%DYCZuG>+J3yj<~WiP5@sa{!CbJQ3vU_xs0uE42e>1cX3wI(A{3evbl
      zUA1;wH|u1_R$dDBYh`7|l!9qwsE1?qoC0qoUru4{c}&R1dkWsi4Aqg7D`;+qnok}k
      zw0hsRzLEU1sbj4Xe83hDJU4c0dfPE9Qz|ao-PTRH9%LWTciC;}m{?9wQ0>vuD@3M$
      zu&FzFf5gFLs+yP6`%FO&Bb*+GFEGTAC97lfst+VnML9=Ze;`9|D!3&F9jaNb$<?MW
      zdBDV9?7F^NcDXot#?(7~dNJGq2VD{vKB}aGMU(|1J6g-t%MCfrV@8yX;&U#zYIIb~
      zbyTaNGTx}GRXMX2IptM>spIzGmD7%bI~|ywj-tZyRn=w)KegMK;Pl&l6=ExvYuEIf
      zhWCZN@YzgDXx67x{6ip^{4jY6^URNx&q3a9(H`J?D1B)UvGl-GD35s!-~^v1ywp4s
      zKSm4%oaF7zUO0yFI^dn+7$F!p5vP36Ssyf<PP~8@^Q?D>S2~0h?qh{%342(l`&dsH
      z9h8{qCpg2O@>QaJee7pkPAA6dKXs9){D$#`eVpIe$Ayjf+k1E?(M7V0$vs?NoSN+7
      z%KFr^$3z20F@~!?my47D*nomBSpOb9oBV6g=-)yXHC%`8ahzd&+0k>3v-r^CsL=8e
      zPXT7B)aMhPt`akgYgA1zf7b6H<8=gt$o|tm`eKAVW6LX|^aA`Mf|3{f<QYawU##E$
      z??(`J4k5()2y=Y_9}!o|TuI3EUob4+H$13ck=@5_Pq@UNn5T5{r7o7Gj}pf3_RhUn
      zX;`Ph6L#ZS+C!^9#hHWgp7r+YTUP!K<M<v$z8CNV*74(^aaa0MRw#XM+*J?b-hVG~
      BU2*^b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/AligningOutput.class b/libjava/classpath/lib/gnu/CORBA/CDR/AligningOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c08c43371c151d17008b5cfeba53a4608ca7aa8
      GIT binary patch
      literal 1631
      zcwT)|O>^5+6g|(Mu_O8sw}jMg>Xg#jCW$BwAH_+)cG@)5`DogP>2x3{vFxaIB#$hS
      zmK6&Yu;Ujn!>St=l%dW{J5%=jAeO*+&x)F+DGN#Oy?gJu=bm@;*FR661GtDANkjy4
      zE!)>?%d6FjUYlFhD{ZS~TXt*N_d33pL`>lHJ>wfgw;a9t&@(HpYdq`+Z+fn2Yzriu
      zX0vO00%C!iY0I{}S%GMwxF!&*ISn(7C<ZkoF_4158yezB2pp|jwz=eQZ<y{aW20>f
      z4Aq@YqrGOhmfQ!2F>lN23XInOk7t>Ag@xjp>~unQ8WPYX5zA<=cdc)UlOo0CfN09F
      z*Y`-r4T&U)ozjq%#NwNdZ+mH;oYpWZp<><pRws$Pz_8=CbZ5I2FsWAN)>kU4mBl2^
      zGN^=V8+J>lHY8W|t#-q72XIaxbK8~!<vk~_I_3>8pT-!@OS%^XP8RA1%gb`0F%&hF
      z@Ghk_Ivvw)@X9#qE6G8xvaFcUFbQ2?z;pURffI#SOPG5G=jH2t4VN%QVWeg?!|zhC
      z@%@BuZMn{l<X<ixdYZ(C9Pvfu%7aa_<5`X^#g^l4o3?Za*+<L=oVI>QE^kqE1V-ww
      z5xFeyWLCqc@=oGAuH}(te1oo}L4+kR*fPBpr)%{a(}4@J;);f=sL5MYMu>Gy^FFod
      zgo!DZRsCkubft}ocdOD3bq$MHBFcu}B<Z_Vf%HwscQ?(emh@%jWd}~mc_=*#_;ay9
      znw+Zvu9NDW;%=Jfg5Pv$mrwKww8z{<aD?w8s&W=FTxRZPILe*Y&&DwvSEw|0fHcpl
      z2)~1+>@G5gLd}!HWfoskP;d6r11PyVNrKdkkv-7a05nm`zJ!-nrz^y}u@5T|VkIyf
      zV7(P${m$%|9J%xdM)+u7XFD^wpD|g=<{CZZ9^u^LGn~2e3}bhO-rmJK*&Yf#jPK&T
      zrHSz#E`Blb=VLYgFizovfXP`(34BFi*4f=)q`{xIN%yum>lVtmrx;GLyOev6;WR!{
      z3^k&B%vFR{c~*SF)g@w<nGt1tH01v!BT~gobmkFNj`lF~eMIE4zx@063t@)Th+Q`G
      zDN>jF9o0VHFAdvgc%KR7iesp#_5xMZf>u+ZD|(nyQvDisNT|qnhq_@tBwJ&@zzwp#
      s@dP6WZ|?_we|(J-t_8QZfX@R!UG0H5;jaI7fXz?)*u+CN%PMQ-KbkumsQ>@~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/ArrayValueHelper.class b/libjava/classpath/lib/gnu/CORBA/CDR/ArrayValueHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d23c17b4b31b2cf119c4bab6d99039d1c310c168
      GIT binary patch
      literal 5994
      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
      IGDl*{7w&qNGXMYp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/BigEndianInputStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/BigEndianInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d6f7925c5599a16186a612a366472587b47c819
      GIT binary patch
      literal 424
      zcwU8&-Acni5QWdgm}sol*8eL}ys!#}UZ)h=R6z&|t@M7AE_J2dNV@U8yb`?d0emQN
      z5`VBzkbz-lcFxC{egAlU1JJ~_3yW|(*0~?v_PZTF?DhSw8ei&>68c&{=4N0rDW)!L
      z!rp^;6240Po-ktW(IFhpLpt%yWFj%Ys|2T|v@&hN{%Q0>`a=mCLxLTqBk5rYYZbUy
      zAygx!<xM_~Wp*dxi6qpcG!c`b$W+mP4{dX=W`vXI|5E~jr8Hq@p$URFNb@X_SE}G1
      zEFxSKLL7nECt;a?k~r8d=T+|7us8tc?ED4ZGglTWoV{`yu%d-^u6Dn+uz@O2R-34m
      Jta_>0`UILjWq$ww
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/BigEndianOutputStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/BigEndianOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2481c133870911c2df06eff750301511aee6ca17
      GIT binary patch
      literal 432
      zcwUW=!AiqG5QhIrW1_KIty0vJB7#;h^xRr#Q#}O>t@OT0m%7p>lJ5Fmo(dj(03S-6
      zL`4fd$gsmdv-5w<?)%5<8-ND(U08(ENn-q<Kj?P+pf~WlYI2i|l}P$VKN&sLnG`b@
      zHsRn=JPTi?eottzeCrU7moc4at}_wq-&umwQi;-S!r^)N!}`l<UW^EKkdCE?5;n_l
      zu}-LjDv@_)7Rl^hL{mwqhG{IOBax}R{%+d(LCpzg;Xj_!B$U#8quS~{2;ML?SuAf=
      zjy_rmxyr3L0kin5@sAP*ugrOat2QhSz^Pv@;JvW2Q0D9v-4;8pvBj$PHHB?dfI{tH
      Kw_sHZ&)z3BvT2b3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/BufferedCdrOutput.class b/libjava/classpath/lib/gnu/CORBA/CDR/BufferedCdrOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0a737cd530ded53e641bd9c86f748ded3962aa1
      GIT binary patch
      literal 2161
      zcwUWFYjYY^7=BK|CD3h2lS*@IYrV8AXxG-esnI~1NW~B##bUI$z=5oV-ORGY#&3S~
      zqkhxh;D<V6$&8)x2l%5L-*fhKLqOEb<glFcK9~1$mOuac{SN>)u^+`0!<Dw(H*&>N
      zcHPKrl#Fb@)#5I1=9+G??;Z5LC_-aF>-C=JnhkF#D8jIEI*7hi%ub(|J(rtZhS?r>
      zEwfYMZqIV;d-)9pc9-F7&ar!*X?rp_4F8WYMC#HC!{x$=ddF(pmfiNHS1IzgWn11F
      zLnxKkEA)|bnmmqa%xO4>d4}nfUWwwlF^i{};<$i|0+EP;VNrvIvvGP_*06$042d51
      z{K#i1Ev5=zn}?=hImYn8sxXl#ST^78ckA5UHR~PDFjsIIl)p(;pzmrk<n3EMhO34D
      zXal7grGk{LZwbWm!s{GEOjv5QXcZgRHN1=j?V5JYk-H3GQ{*U4Ga7VpI#YN0cGGl^
      z80H&f*W)$ICWTs0Wpyp37aX^3INi2#bl|w2uxsS)lO&^fZNl{UzGbWszNO)HyuonB
      zbFxPsUw2*eNc2kI%f?~gEm88f$!TgYt5-zn-_`IQDB)?xt&_<SGqkJ<-1{2V@BwvS
      z)IbC#Q~wa@Gp=jMB1fWa%Q+B~C$`l*O3FJLHnGJJCrY(1X~(1WikOVNhP(Kf;@jL4
      zGglTBPf__!09*Ouj-k%V+!oCe<Gk36aPiH2<yeZ_!5PyIgvF=kViJ!yJ|+Caq&
      zyIhUQu7;Ah6=%rxj?=R|nI_#4IaT*H+(X6BsnoZ3tu77R%Bh^x?WR+YPFF>NztHd{
      z9?*=s{wBlHWPqP;Kz=DTIaH(=Giw2BsK@z3VY8{BE~oh*$RJ*J`fh`7TH;<M$8OLK
      zaaD1Z%udsP7*kk66f^W3qZiH;;y5pEJUxrn(p!MmS^8E*h)#jU^fAt-pW;Gw`54J3
      zSV*UT!@>Ydze@OJTIVPf$kBR-pqp607Ov1v(kH<4BoF!Y0$wC~Av3RJwxul)?K7EU
      zy!0<B1zNYsWDys!BULmXuT+?L7bxy^LJ9{l!L>ZVwG*<qJh)GFs18|;1y*B7DXaQK
      zy7VaBS43w{pnFBpy^0%(u1lGVDE%pns-Nx6W4u|&(DOS3+!mi74zQ6)5Ae|dh0NnX
      zE(!62u}{t{D#JsP?BF`=A!%JnC#c&y_*6=lf}&?BMigz<mo1MM`y81A4rx-pA&y5w
      zg`N!xP4`9d-IDykjL-AgF9A<P?teFgp9%0)e6H|@!iNdJ_jm;S{SY`DfNNB3AH1g8
      u5=m#CU~jZ1KM>}}p~6Iho<yiu52SE?Vv8H2bU%^*pC`1Ks}{E;ru{dUL7)Br
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/BufferredCdrInput.class b/libjava/classpath/lib/gnu/CORBA/CDR/BufferredCdrInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d44536091c203dcf7dce28a3a369860806c2d542
      GIT binary patch
      literal 1668
      zcwU84+foxj5IqCAyFh}7+!3!yP$GCYfF|K$FbV~j5_zCDWCDw1H?_O*%}4dkNBs#O
      zv`U~#tNZ{z%Ccv&EFln0RkmijPoF+>x_|%q@e9B>a(=Wh3~%YxL}qb0ol0b8mJ{h}
      zsl-i_7c)gOt5>SFA0CFG<DgW*vQ2f<KEn7I299IsmREPHe8o1oT4o4a+|<<FJU1=P
      z&|hR{7}x?sTgK2WTh(m|_M-M<48DR?!Z4U?Xuhj$>6*SJJ0}S^sp*<M&ESo$r(<~r
      zPsS+n5L(fxpdDu!TBEVNALkhQ|G^YO7tV`<jvyF%6)0#6(Wzg-00tS_EpAKT;e&dj
      zxgGV5n$V0yT|6libmTOhKd+Vx++0-)yPTmjXKd2rRkDEYPS9g-YZk*u?mr`-M+Vf5
      zLqA&9(+ojUvsfz8muRBdSYF7#rr<KJkRyhZVOerT6|WTO>k8r`9h8wW*F|kvHD8P5
      zO$B2j=~cJ6TBNy%#7ebNF-)5mrH8Ks?v8>9+#;OGsfCE#S8!Ljd}fQ=ONOP{G+v3%
      zitMC<2Y5)0EY4-4M+&Ayqd>*QhNyD6s;_EgGG!nd%bnOH%G#7oiqXs{n8h4}->d~0
      z`kEIIxm8C#7;O#}gA1w~E^BDTsG6I6P7|Z*J~5OrF?@`WpjP^O(Skns5ukIB7Pti=
      zM8pcwS!@xl6@9~WTZ4zPKyUm2k@!z^t&JX_dk;PF_;>W|qwkw6AEIw3L4gc?XQ^}!
      zJ($NZMY?MQxIpb8PZx2C=$RP5(<Vh2feH%N{(W3Mq7BK!B57T!qYJupK|~Rgbn&Ki
      zqm6VgiEgb4-3>`MA{ML(U80drCAvZrx^YJx?V&?AA@4w-X5sBGE}KurcO;Wi!#GS#
      zY^_tDCbY<fYxVa|j-s8W445=wizaE;@r7MJ+Vj)(Bpda-Jyp+?YtJ*so`_@5bTdKk
      zsQf*Ze5kW3;#w8KW5=o#J+VfeaHM&OG4r)S*T*_tURT#Vo;bzRjxJw(bPt)vnSG*~
      U&vin4t`Hxxw7#P8f~<M^7d}uGzW@LL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/EncapsulationStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/EncapsulationStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15c7a8ecf85e0a337aad63235c47c810788dacae
      GIT binary patch
      literal 2254
      zcwUWFTUQ%Z6#fo`rb(wz3Z<pxQmWKkkXY|ZttKJG=oBiXK|oC>$zhlpX5z_&OY4)a
      zx_t0Kee)Oe)vjg3TC$eD`=ea$Ju_SjmX|Z<?6c3ezx|!P&;0Z6pML?kfp5cT6Bse=
      zW-2=~n@Oj#le4LuT`}s7X3cOd$DVVQG*-h12@D@}OP3q2GAeGis%DyQz3B=>Gx@1f
      zZhA7Go)!=pfwNi1Zn%c+7L8g{wo^=yQO_3&dM<EeqYyY%ZZ0oNB`~BP3RAO8+p<kR
      z#sqoR4JB=gHmW<yOgXD&;9Yl=Ym{p;<-7XK`M^!fw%l6+@z{w@EXIohp{!GtQM98+
      zLl=4l+GFuzl-T!axQI&vT0^=S%gotT%dp8mM#sXqEHLnY{G;ecPlR9wHJpLQfWsQD
      zVnm>e0Qd6{=#S|Sj5Q-=IR^>Gi;VD+hO_8ogi#IG@rpply0To!T=JYkmu}f|y181G
      zs=!$aoY$R-Q7anC;&osQxhqzK;Pe+(0cja7?Wo_`Y{*jCGD|X0Kr9MGIEUqB8adG$
      z8dA(FV%R0evyxYycp9t;d%UgTP4+llcA9q8P@A+_sW}bFo9}Cwz)d39upUb90`gJZ
      z!bf3zNOVtdlN!<t9`$4?)g0So*sO+0);sK(3r-lf1ul9**9_ZC<!x6g+o<J~a#R#K
      z^ze|^@CiPpT)3991|=^r7Tk|_tgxb-b*3;8Khhe;9f6*m`^?YeHY&2t+6uJE4S@^#
      z5qqR~yHwN_{rWKk$)l%2$x?!rO_`S(LGfIV#gD7@yuDXTVcdJJvol^RDp{r0_Iz2k
      zc@3XqLEwz*WHw!yR?67qQj0HTq9|aA+vE$nzSvU6ug|YElyILCa8#K{9wI}-1fMHw
      zsGv$s%9X>8eTSQrJ$=Mw4JKA7sA)NMhTNlFl&ZmcG2{acU!z9%PLP4!gMHrH?`T_t
      z1Hy}%(&et7<2sFze0v9`@-uf+!QPxyYgR?l%jU`r*Ndn$G~oIXcM;;TlL2t6wpm1R
      zM1R3G&|P;Z88p|XhIM|IqH|7DRpf1pd->84T|3T|gAq!UpV|-|?Z7Eog=y7>)3lE4
      zTSw8&4-?J1`FWu)?{(oEjoq|*Oel<#N^IeLVxWZ!iEZ>RY~ji?3?veNfJ{S)<TG4L
      z4E%<0`xAshExi2H1CP--<OTYSh|E&pIrNf#1Gq;7ix|f|;<S6!4}k=d{L7%(7*P@4
      z>{aq=qdC1S0i`sp+vpqN=vP{JZ7*2V+bB_%_dVb~-*Fc>g4gi|!3chaj)8mYFq}zn
      zE62dS6TrPodHHZZkq>7xPH@+Jeco%~1D>&^h0GK5>f6YXhEsROk}Z5ZKlb-iFWY`n
      zMn9mNA{`oJZDNqFe-s-Od6P7Gv`@G3fX^UZ+B9bP2SJSQlIE=2ENSjDTP1JiAKyk{
      z!Dm+7!lIs}`Ijvi{FN<O$wUjQEqs&weOHJ+sv+Pzs*CUGZ}=F)_<{8Mai1vhfJ7HA
      u6WKLSl=WRvG9DG+oF8^$r*QV9?(|amnUem6Fn;xrHUCV2Eb!3te)J!a&h5qk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/HeadlessInput.class b/libjava/classpath/lib/gnu/CORBA/CDR/HeadlessInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad9579001d70f054109385ca4f9e469f2975b729
      GIT binary patch
      literal 11596
      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
      N@GcTbmgWH6`d2>#VpsqG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/IDLTypeHelper.class b/libjava/classpath/lib/gnu/CORBA/CDR/IDLTypeHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1a861d58e5c8a1203dfa7df6ce760e4e2bd72c6
      GIT binary patch
      literal 3101
      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
      VuY76yi$tbcepzG+;|r@B{{brK=o$b3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6cfcd242a255042f70e0194b9169fa0031e6c35
      GIT binary patch
      literal 4549
      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
      XkWH+SNI!T`P@PvxULAfXM*aSOO4s&4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianOutputStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68855f67040ecd84b2fa955041a1e83f6f8e4a2f
      GIT binary patch
      literal 2133
      zcwViOZF3V<6vzKJ3EgC~qycJ4357zjBwHm=pO7bQk_J;F722sYFr%|=H|;vx-OgsW
      zKF#18o$;+Ng%1GuPGutFC_21S5cEsvm(UT<y_;+|4;_4AJMG@H=iJ}_f9{@p|DW&f
      z0yu#=2@!^gRm&@s<}MYd3#Ia<Ld|epQ=hR`49%MJ+zrp2cO6|@mk?vv_pY|76%4yj
      zF-%u?I`abzW1Xz&rH1Qh%Whe7HNTc&;EZ7z?m32$T&+zDb57?M8Db@SMVAppQh|gx
      z!(h#@^b6kllI|>MOQz1SyJjzI=Az~pJZ`;=xobv)Ay@lvJ)LHV+T7G|e=7_->ZaFN
      zqp}>gCC|LStZ%r6Z8aneGwf;as?G(O1Q;?3(%2<qANEVgG7R;jE7*-ar0||&xZHZK
      znqTBw#uSX=03|jx)1w5dGDx{A#cC`6G|!Kdr6sS<5V=yMGqvmWhE9D%P2FNp1hQz`
      zrmk6>e3|d0uS2lQ3<*E|0aum9dVbAz+;*b0ra268v94Od>zZw?a@K5qaR>aL$Hbd$
      zGb*O7xxApl#ZKXj1UkP#(YdKvs|8V@;4J9dr|LXdu!&zZ+=joc%00fS&|p&ctiq5K
      z;Ii%c-!@m~<QbfoK*{tL*{@LW8tACfD<WF3x#2dvoS)_J*A-0RIf9qT^}Ovl%Q_7*
      zu}8O?kYij0hiGq<{&?dGJ!vHAe}bZOh|n)EpiX`Z`72sQr~;71+ZozX!A@EY`&CF`
      zP#oO=9}r?NJ_M8-qIWTho)Xj-MFxngx3Ra0k#6pr<lv&<Dt=vydx%d?4{f^TF~Mos
      zCJuJv-X_31A)AT7W`dB13B<wUJ>a)!9iwNGgD3ZoHgTjIZPRl@pjE##KqoPQqr!a>
      zITDG8Ri0M-q*YAz$W>Z>q}1#ekYYCwi#G90x8f(H_Gze@RG^rmHl7tHd#ukX6-k%Z
      z%W8HP9$)Q4zD9M|Lu5H1%fT@f`j8iB&FeENfwNaXC$w0l;~$D(OD9DhfSbg-g}wMP
      zq?HM@GJ)3d|3T|(()xz9Za+cmL?5lqme$lZT7HlY2bpdc!{SbTPcD8S7k6<4Ka$o@
      zAvaTjo2kGJUE&@$_vlXXjx2Qu&ma8wGa<^C>G((CDBTfdI-;?TDAy4k?}$#eqODFQ
      zgo~ePhJV2b?$c~Pzzg^lB|N0N`iL&rZ&=6gq0X$JGmCoi@BB+R+0)t9{T;u9mz#K{
      udocf?`}^m%_jg)=i)5r192G~FP><e0xry0s@LvS}ds}c#fZq^%F8m8$bXv{;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/UnknownExceptionCtxHandler.class b/libjava/classpath/lib/gnu/CORBA/CDR/UnknownExceptionCtxHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d778d0d3781eb0d3e336729267f02f5c8a198094
      GIT binary patch
      literal 6277
      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
      D(3O_r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/VMVio.class b/libjava/classpath/lib/gnu/CORBA/CDR/VMVio.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45ca509ccc81ffce119269deb4a05f8b3163a4cc
      GIT binary patch
      literal 1408
      zcwUWD+fvg|6kW%r1WLG51QkJ4Xse~jRjvvJl$lbHVij=2G{zbxq)Zx6dG<$q@>O5T
      zjE?y3ANVusO3EDu>`b%wIeYEf+WY+a^KBQvJxs~CBv6;NHe>O*g^BT4d~zX{o=qD$
      z8InNtn!2UNOx4Q9<}z!#<_MIG7?$CT3HU<cw15=Pz19Qpp-h1vB?46m!_t$R>lxi%
      zR5PY7P@BkUs+m@8!#(d^O3qs&FAz+ek$PC5QZ-F_Ir@Iur=i4QEpb!L=ZDX`u=O`4
      z{bKQ)m3Qn-&B@ur;l#;qm?$vyUeh-mgE$$r0<DLb8M>;LW2mn604AfJO`b>{Kph$s
      zTt*{H&+5*Rv;sY$l~bjLFQ_$uE4U`(szCF(Kn2aXE>MxzopDXm^LeAlZfH52c4M?E
      zxPdl-a!Y?#>_?-y<5)#|T%19Vj9bTcAm!MGl`TcP0Nj>C3c`qxj^izJu5F?4%73(Y
      zS3wk=0yPXUuiEOm?r?2BZ0HP8e>_ByH#cjS!o}?tkm;19iw8}dtdh_g^twyg$2AL`
      zwujR)2Dtl&hJzUk_%&1A-ezH^DiBaKuZz_^NV#@&*ew@yEg&>**+t|KX7E45QL1*9
      zY}B6Sg3FuAZQ7bXZMZWJcyFiEMRDeQpKyPdsPSF$EAtei<m}*&?4b0kXAbaN;$04)
      zoL{8~psb)QLnW$+s-`Z{QsagZ{a#35E8_csx&ng9s8m2xlqX*SEnl8RB;GIiYHy~B
      zM&9#uJ5@9m(2?}@OP|pm4NBdfCuIS5hWxJ5<lo(o^HCB(DZ2aV@9*!ZS)yZX2R%Q%
      z)*ATQ`q79U^in>=ORQ2B`x#@+z!a;WX8n(doFQ@+?MM<mk3KA52#fT3j>lNS6D-sF
      z1zz!P4H=Jz1(doS;ywmFBDd%<=y9`!VT>@7%grb?ALH(8L+GM5Ms1Xv{eT%HMz6#;
      MCdipU+~a)mAJKSLM*si-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class b/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d738de5f76a5ba789ae962bb2cd8d5daba034d7
      GIT binary patch
      literal 21547
      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
      BKN<i4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5df83dc749881afe0c34efa6555439351476c00e
      GIT binary patch
      literal 984
      zcwTi<%Wl(95Ir|>Y?7KLeYj~$Q(l3lO@bRL71RI{4MD9GTB)tFsf6S>R_e;N!Lcb4
      z2o}7=hJ9CvRX5qN03;R>Z21lT1DJbL@v5?zxie?xp1Ei2Z$CbF0hCZw5Mh{XxuITJ
      z-&nq>S8i?Slx>7=VDDMkk^+e#wQD>ubjNU8`g&v6G6MxN!>B;Rz;^VCw|CF*jllC6
      z<Y32cXXlBv){nMKUDs^a4sI}Ha{b$8>kLxGYg%zIoK&IUL;_JHRm72Eh~{`hvSz#1
      zTDaG+{4Jy5SPa88&orF6;oCev0ww+|hN-^OvL$+!VhSbHKa;Eduey93nO#*d{?CFo
      z1K)OA38XQp;uNMB;zyiY9)tEbYp+#sOf!sZA1^U5gX=jqmkJGrNZa6!B4(1UlGzN2
      zO)vCK>$c5hC;te%#90{BRoAuriet3f7A+)Mbxp@>)3iHQu;Voq6d1<)EeZ4VC8A_8
      zuvChF5c-WGWN{=29iZqc<s3=O<v&23`-H*wqGyO>qQY<A$1p`I#T*^MsK7Oh^;p;t
      zO;HHj&woYw0AmGlB=cX8E|7i1M29Mw1JnxQs8S`fMy1S>RP0Vj-M2`Hv)PF*%7>UL
      zYVzd?i5y*BjA^k0$XcxPTxObF?7sW?J=*C_Qlvvjk<RZYFJX{;NPZuac!(Sxp@_#=
      zz!Q}56w7#q6}&(lFR_hRxJ&sCUSk(;gv6Dej3bFWI*l_z_CC&16d|_jIEQHxynrh>
      lPmx4y1IXe6Evib$MT%sq&xlv$Fe{eE1Pf@&9C-<O;1|T*(eVHP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ed828f2daf2c99268293d640c2383ce3421362f
      GIT binary patch
      literal 886
      zcwT){ZEMp|6n<{oHC?>3v#ZXRxpi}DTHR9LUn+u&4hm&soeVbd!)<%18R^YP6TyF_
      zAQ>q51N>3qxoN<eu?2GOJ<mD!Ij_I}{P+dn0bUx&F)R*MWINm4jW@RQwri8tja2B4
      z<mx*W244&m7-kQ}XJLCn4ejmTq3nkYIYEN88H#?2R61F&7Fl1p$_-yL<gNN1L&5O}
      z(nKCJ9Mdov${kn9t!UJf!F$p3q^9xv!rK#ptMwEtgrD3oL#=auvJ|is`nzG^sv$$w
      zs-H+{g0>7?W|+^y8<Fb`WMHC-nQ1Uw<uFjv>UEAASfE10(UDXGhBfPSou}iZgsl=5
      zsZAd=Q%y51X9&`)&L+^=+~Sx*QFGkZ9CsKNtoC^^Et=2An(lLh;~wr)TZS@pJTayw
      z&i&Vx1Z<gDN7H~!1Id^;Ey^5&LGQQ3Na`dWaa1&B?)p*Cmz%DhQ2F01)-?qKZ!0B(
      zghY-FJg2UnH9dx@WPYeowRu|39Q{->^hbk85!x8CU!a>!C(}NSWAJZ@`69_;0y-#@
      z<P!(X;u4)qr<^`MAa8AJ{zP^E7*`tKF(2bv<z|c}y064ot=yg539rXkBPGVeubDVI
      YC*m~II5|8{<P$ul(@fHQh8HOP1(=w@r2qf`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c449d002b2b93ff7b74f95a51d309fab1ef48583
      GIT binary patch
      literal 656
      zcwUWA?Mebc6g^kXwQWl?`!2IG)1a1q8$wxuAO#je{fSWrn^<RM-3@xHf+#5H0eYxt
      z#)QHM8kl?Mo|$vz-249V@&;fRn+8IJY+D9)`LuShZ<h~iwyJ7@^hJkfYrG{q-t>hl
      z4MYg(KVKe6-@7A3_k<LFi4e{g>V!zyZE+J}j9M5$ln}29$xnh#gL~(!;c!B->Nc5E
      zXP(gY0F3z8qDRP8|KqGki23fB?+Mu^r1FL84ZCHw!(`k3LW>3_3A4lSK_HwK_hOhL
      zgtkj25}4LLX9&~z-y((jC<t>F=CPm%%qLJqla?$jBdwZe-7c3c!cxBS+r;3vqGn_)
      zOdw7$&)mRk@?)W!j(@keqsauTA|?0A4(s)J&%lQI{jY%##(s<h8Raw#y+UfM(W}}}
      zCtGFG$ksDr5B+OX#b_VA#F&cK*8`QuRVHn8KrSgseV2Mg;v$)RMr!L3vrkxj!pi-S
      Z*3}QK)IckQ)qY&Vy2@tXN)|c9J^}8$jKu%|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3744aa0fc1ca4c66fec427ed64aa82f6003e8296
      GIT binary patch
      literal 4831
      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
      WN_jsK>>xgVRS0$wA6uUM1^x?|Fp_Qn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuValueStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuValueStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d2de8d74ce626e6bf8898d13e16ae9ad800823a
      GIT binary patch
      literal 278
      zcwTjny$ZrW5QOJ68cqBITkVs^!`jLp1VK;|u|MSq7n2K^iw|ev1NczlCY2&?vBR<-
      zJG0N%{Q+Q#zKt5gDAEOA?t;afFINGl=_ryyhUO|oYQtg}#NsA+B6P%er&yj1gBwY+
      z&vIo{rWxv<zhSU)DK8}6#y>JRL<EICs8o`N=Wl;(XlrOYBR2nF$KHRmIvi%j^(@ya
      nA$a&5cTy&8GEgLxWl{PDnkc`p(W<l!r&1RkA{e^VYv{cJ+*U$#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CdrEncapsCodecImpl.class b/libjava/classpath/lib/gnu/CORBA/CdrEncapsCodecImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57fcd54ea81ee844d290d83a7da3b985fe3286fb
      GIT binary patch
      literal 5871
      zcwU`Y3w&Eu9sW+6G;O$JUH0hOQs_3v+O%0VwiRf%LEF7D(ss6^vm01$le_k^G^xqW
      z#(dxq5GOJxiaZ1v^D&i&8`5-Ap(;K>Km}j;0_EWY5fQ~F@SSthG;LCbZol4pde8a)
      z&v(B6_dox0`rxbg-Vb28ILU<qfm8aUNq=icXG^ocH5^|b4e3LP)>zmG1qO#AE;t0r
      zWAT1}Y_LB)Di{mtk&eELjgaL+k-)6+?m)*Dzp@l4O&D=gk8~UHgc*yTA6O?KHVe#X
      zjYSid9<{plNYZe^{wD;AqOome*x;z`0<PV*nZWGe1h}-XCV|3OyifK`hQ$Z_W=4!?
      zzcmnuhRu*}#o~0m+KigkT7lY{JQjH-sO=VT$aT0;h%ybcF`skR)OMFZphANOGi2)&
      z4W*bRTc>I`88h9e#zGeskdPdo8W!O#1ec6jW~A4Qh9b#?xtq&%)&v5z+ohA!HE5W@
      zF+nqGv?mAqjQCc)FTyb%MR>PPLiv08qr)076P!BuM$sc5j$TDpac_oGN3R*C<=mRu
      z9l?wB-MT-bNBjL<R@{vCH@UEk!JGQI7-tBa7FZW-oR}>nXB(faarsi(6|ohQK`g7;
      z(Na5w?B?iR!f~&^BxDR(1d?#!Oo1gi+S#IqcIo|we?u%js9SAjg3r)^n+%<;p%L_P
      zQYdcdmJx^!B`tx)YOX96)^++@k~?=A@wgEtC2Clcv|poPEzY5EY<rulWJI?VEgR_P
      zgl^u<M9pY*p@n>%V5o+5SkIIom~ijby+cN;;;y1*Ds$s~O~u$K0J)TahRrxnU`}Yj
      z2<?&sw!{(%v(Jo})?NW$O>ShTb6VT&MjJX@XczEL8;wA8w;nOW(u#p0b+Is=YS@Ce
      zGN}EA)n+6T97ssSpEJ1|4d{}Yv{ec(w_kz~=+>|eZ)5&TN~jls_NghGfqlY2<kuh5
      z#uyYR*uelfO<O?=PUwqKGA66VVG)SH{ORCv3gZ%i<-z}vQKg@dhA`;et)!6{h{Y|n
      z0d>hvl0E>FyMpSR0&7vti51E`HKOBrnuny?9W8DQBIZIgYj4l=Yj``>%V@nrLmb>l
      zG&`L-l9pn#A+OK8s1zvMj_Xchj|;n}$(yX9GK(+Cx76mogca9AR<_f3;@vL1i-DRL
      zIv%4<Mr6o{Yj_VXr55(YO^b}2I~Dy9$(K8>-*!p88v5WHCetAHX}ApU<3^>N_U@Lo
      zPN3$^xt1=j!24aeGKY$s1!}lT)+T2t5=$78L7IJ#88&&Iw&u>RP0c|!_M@zDV=IbF
      z*gBx$!#GIWK{G0=qzK6VYc+fn9}_5%C9_peCWyN}J72dB#AACT=%(7dUrPw$;~K8V
      z4U}1*3f+_<CD#!#`=b<lCQ3KqW*0s&`6!YzPQxwuBuTYmEqg7aIUd)!K{!~&T3k59
      zU3~&hrpBmz*R9;Mg1s3O#nPJ1zXN2;Gj~j`+DLpb4+wr2+;Yl-d85K!%`ThcI`PXw
      zG@ZWktiy#nSOuruXQb^!6}=r@E_{(Cequ3f(Ty8-p-evR*6=0VLvj*^)gg}#^YR^=
      zq)P8XO2Y__k8f0I{O3%obG84RFoQ^!E)P9Z5lW`)jmw@%>b*=p?v{@+4PV9A2!*h_
      z$B#OMp6__)#sm1K3*X>?{3tYh3*V-AcA3#I_m13(+<G2+DBSPjAr~HG(aYDb;d^+P
      z8J6aS8+gElN2!FV<*y}aM#4ti4L^RM;fHuk9)YD%$4;ILv(wK$bvNa$u#cdt7(W&`
      zxq1&z($%2>Jzi}_t7XSeHT(=uFsAy@kRg|p?|_i&G>uF7{)Ke$%PE%A!pXM$wT36<
      zDWTYk*`4ydL8!lFJXID~4;u2cE2Hv^hG*rWNDIZHmJzjjWto*7ztix0{DIkTkL``>
      zgN8gx1oBex0G`+IC%iB*-Y(aba{M&HlU6Tk_=^mgmbMDTcwl$ouajaHAhLK=kF1Z!
      zV+8$@6yZy_)`eF%!DQ#>^A?o78QG{kxsa)OZbO1)y(;(yF605mWHslNEI17yd4S*o
      zFk1+DyWrWlTb>&3mX9&cJ)kFoQ*TIACU0GHnK_&-r`J)lT_)vh7K7fL%ayw;mW+pt
      z4W_)4l;z$)mP(jdz~e$8f1LbZ0T+tdF5$(mfQMO+y!No|k#{J*=g3=?>hq}YGdOlO
      zzY-vSOTa--zyj|G=6M~%DEHP4qtaVHj4H499#lCBQ#frHi;pQ6OZcon5uZD0sB_W*
      zPGi#H#k{TULJfPWZHK6ZSKUSzppF29YSj}`0oy(-O#@g-KeEs5xDWoGLeKK9qnVkC
      zRF9>+YWAqKSAi9@EWj$ZrG10)b&NAhY^%I=BRH$gTUS4V)$P6%&TVvfJsZj$BiM8V
      zo<`>=8hXl|DFjE*Ip!^Q_(pL4QN>FoPGvUP)1OLafqis&8CkoWy;t$uelGB8F5rNI
      zwbq_6v)EPW!FGBo;@-0Z7tqrTj=PYpLfS9nS+AFXtNHaJ(&uD9uTW_!uH+a8-;3%B
      zSJXLH?5lI~r)b5#n=qrky*`D$ZAVbd_s(|T1V{5AZ~fOXxHmAUH{ulBOrCF1;8v=>
      zMHz65(%@vv1~-S&vB53iZ+1&Cmb<dJZByW$O>^5xBI{C!kV?t&P#XbR?LPVGIQG_&
      z?Dz8La(?~55mYxiMzOzV1XnjY%blJN4da?}XSpMVk8CS<j@93T>r%M!s9L_4l-`<N
      zQ-c!fry1?fQoNsM@13Y(d0dF2IGs`Uv7-7hjI)p;c_Y|}<GjAzn-!4G%$hrK8xC`Z
      zQncVx^jSb}Yq-+Sa6Nv8`y$TapeGNG;B(|laK103S6{?;153PIzZ@^w^l|<5N=K#b
      zqqx1tr&M(3n37z(w~kU;O|{iau_;Y~DspEuWhc)={PHkP!lNi-d8)!=Sd7QB;QKQ0
      zeVLH?ly(Yer77(c(ymm6v5?kw7#-~AjV~*B`xW>|T3Pc)aTlX;wB5(lu1w*WubzP$
      z&XSWyjeC;*o}%}sDX(V~F0XB$!8Ko@5vp~el2S3pf0;p$0vgRDpeND-+MHKF|G#h+
      za`ofFIfL8)&y(F3h~`E1zD&md&a8cfqyEV;|Hd->2WR5H6wa&iuL@bLZ_cc4b4E0c
      z8PTjti)KkiG|MugDUdg}oE3-pMQ()^qeyZoUumniS-(%dt5UeXehTkm7K()jr9%FN
      zY);l@T9H9kkw#Wb3maL1{L97Exy4ph8-T-{YVnP@g|vP>h3~AbDy_H`B~_)Bhp>1Q
      zZ9SuSq^IsUzCVJ;JwHm}CpNO5r|_#0JT+ETI`>x0tSX(OY-S%qsn_!xx_VkAz^1Cw
      znX04o5LOp9IF7J_)X!y*o>R|1a?lkHG1ozZKi~G+b4O6djCqMnyxi#Eo}0qowv{`^
      zjuA6&S-6IAvbosIwLvU`ODw@mQHx69g<sU+Y`)hB9|B@2I>a(uAkM&mSjlU31FxJb
      zagAui0kIm_i#5F1ti^4jS#h{Y?c;|t93I9$s0E=~|57<M6PNOYdXQZ2!fDjVK{9!O
      z`}IZCN+B;_ZtCS#m0gW!O7GSNdt_`XN739vA-|RmuPCs?D++VM8$^j{!z|H`a?z0$
      z-pUNL%5=Jy(8AuKg>VRGdP+av61I~Ql;43#Wm0U*DwEFfGAW9LD{Z`1X@#S`m8|j;
      e<=id5iZGnQP#)&lqcV_+M6o(E2%%0G!u>jy@_zsT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class b/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87c0b3f3b1799b85c3a3f3e9779113206ae57f40
      GIT binary patch
      literal 2494
      zcwUuNTT>KA6#klB7+A*}ih=@J6BD@ztMQUVNFpo{H?FK<6$8YOVYgWZh8dilMNo6q
      z+>8%al1fD?FFyIIU_mNW#UxhcAwMd~*Rw1a1uL0{>7MS>-}%mWPM`Vf?_Yiea2Vfc
      zC=#g5*ttkF(bL`*i8_|$qzq4{6Yfw}Lr`Gbs4;0oEW^%35<{ah<q7QUi1l<v&kaV~
      z;_>7lUx^Ey9Ri|XAn5R%Kt<d?mGew1(&oCxbll8(Edpf<-8$uDiBcY4K~8$EX=iA#
      zW51EjO4l<TJKJGqjUh{>1xi~}mT8;b8v=p4`d+$;I%yfgHk51FF0ge4DQXcw#}4ci
      z*p-%9)0OGA0%X!Nyj<1?=`RBfbZkP2npNs3Mu~<!q_7V45UNnEqXwG=N?Ls?>eO>O
      zG?a$04=-qVp2GM?ZRtf~e6^+1u2f|9<3#~IBfa=a^p$n>@%5}*6xsnDb*LBE!ZXTz
      zX^##Hr&g<`m^A7rLr6oD!0r`;nC(f|Hmpw9bzBXRHJka<?K#s*OScq<1!{bL;SqWa
      zo7u4Kcwr-zqGOY3I1xfKjwlU|GQV|C)2Q!N7RPnGf>)`MF)<-+=B{bAX}*G5o(^J(
      zMvH<tp`%4bU+Ove%@7Xahz4fAW?8cH_L%Klwv{@aQz<#2(#t}Ko3`xEjSorpoT?pF
      zWh$m#!!_0S(qfUEV)Ek81S6FIs#$8@h)L!5#5cMntlCYk%&<zN%Wr||x>dGZ>B`wD
      zg=kp5MpcOEcpIk~V9K#Q!?d$c2wG67U&9$z%F4!aA^QmpA&zQ=cUH$c3NK)!DR{t9
      zB&s&#Ah0=SuOh4vdUae-2qmr@cP6RO_N+AA)QB%$;o2Wq9ak*T!!$Z>CgO}|3V!mu
      z%P@e88s4L$HTF8*#~`E5SEVFkcrD=m!p`7?>kONgB$R=a2F6qSY)c(!gqSQ<yCDo?
      zL_=mx@5)z_4$}`)UdkC(Rz*Ih!@@XK%P2w>b+P)V6QRN3&DlUt740P*E>vF`lhdrO
      zfp*0^r(+VA$!WrI2`yqF*qGLF1y|{4*tFAw%)d<sGCk-lX}q^?pgp#Mt{OgMajnou
      z8pE>7aXZ-JQeM=sEH><q*C=(?F(Uj*N_Wz*y*!Kx`coaB;X0{h%`4JxhcUiQ$5l6I
      zZH_5cf!nV2X)!cYAe3}+Zc28U>VEB5dqbL)q6o811^C+uqEz)-&O)ktax7K73)ohv
      zx-q|txuRn;?YHpjCcg#8j&d=NtuxSq_Ye%sp&~ek-HWK|Tfp8q)c%a{JYJeZ!#z}=
      zUc|w^MKt%7A6mf64f8lQkJlE^`se|XYH<J!cpXJ}lc;-qk0<#n>B3HQbGMJX18BrW
      zu7W(+Tv3TOv_m~L%e*2S6|drk1w<ckk_RmD7f&u9R^fD@(+{%?Z!I0ZPU|9$$7Zqn
      z4i3+vwlDt2EGlMD!8sY9x`R!Nh%>nENBNb+g~rGCP}2CAQ4|rnnLlv#6F=gQtD_m=
      z+oZ)9|2!6Zr-`F1y%j>o(1WB;=-mGxH1i~(^Z%L96yMXdxJp9TNNAdbK3bR1yOiH2
      zB(|_vin->J5J@yVME^s4Fbg`CGbk4K^ArQeSq`n7R|MxV`Wx&s2WdKyH}~c-)!p<b
      zs+xYswL8$78Xw>1^rNNeji9Iq^5{H1x%<zfLNMY!OSG1yFi!6Y@=;?yM*VRdjz8w3
      zJK;<BHFmK`D{+gbZZpDfaR}cry6>6yA8;B!5@iOx_=zaDnVeggz+FH326|$IxPi|(
      e9zv6^LlO6C@CCl40{fVtuW*@mf_{|WoBskcc~Fo5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Connected_objects$cObject.class b/libjava/classpath/lib/gnu/CORBA/Connected_objects$cObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c99cb850ce1f37b2ea1804d24876ef9a05a0e1fc
      GIT binary patch
      literal 809
      zcwT){!EVz)5Pjn~ahn>Fv=B&3XiHO?xCMj64Fn>FqNq_TwN)-XSWdD^T~aTy9VC8$
      z|KVUEap(v1qY$&3R7e!%V9(o~*_rp=?)C3qR{&n(nFWKeHHs##cXZr-?|L$d#2^(z
      zU-mB;B#pt51{O?0`6BolxZ@xixzk-jLC!$6E8~$XFGsUZ(}LFo^NWl*PaQ(;v-n0Z
      z&f0{9a44cQOnJTB{kJWjDx~LO(s)6rcjvHEg>S+rOy3d?nsY1vPp@;<zCFFwW7eJ=
      zibW7sY}~=!B67HIql7A}XtsJP^Uy{f1%*~^SXfZ#k&Q(Z6?$xA2{xhB4I^<lx$KMh
      zH0Y0o(klnSxEI8sTF*93rI)ZhPs7b!uxiV{@jdTP{WX1U?otr>f2}Q^$Vog9`=J_9
      zz18r!l1{KYydQhxAW1}GVVAHrhXoIx@xUhQ%<)6YqoS-}R8dCg$TsN6CIIEKGLhHB
      zUkPQ76-M7-=u;ccZiZ#&C+<0W86G(G3^k`_W>|A-`3&_RTw`FJ|Es$G6Hj}`6Flzu
      z0W0{38uqclnOB_Qe$4C%pwSkeFf?i~vz$iT%+1v3Dbytz*wGW3XmKnuJA#8f&>!;X
      BuXg|d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Connected_objects.class b/libjava/classpath/lib/gnu/CORBA/Connected_objects.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cbca85bad811177f008f8aca0ffff6cdcaec4da
      GIT binary patch
      literal 3540
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/CorbaList.class b/libjava/classpath/lib/gnu/CORBA/CorbaList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a72c1398ab028d3eb310d22c14551d62bbd65d3
      GIT binary patch
      literal 1205
      zcwUWCYflqF6g|_Hwl>Sd0-{othf1l?EmEIFgceAu)h41Pgb=cA$2z3lZT3Ns_<#H=
      zU)n?x{qB!4-r3!hhnTp@?9AM`bI!Tv&adC!e*jp(Mg#$d;fC(0h4Q=ns#-A2s#X$~
      z9YKf=_O$~|b!^d8S4~s<>>Y#|M%)8osGHmrT2mZp)h1^cvfOQjo0c&255+YG_KKmu
      zVCa^u>2^hHI=m0w#~8v(LKpTjLnv9Ct<Y33>O6)Zh7>61XBaFAoxgQjRc^lbDB>lf
      zMhqJ9(B2P*>`%gC7%g2=NRB~~ETn7C5=WHHiVVTzY()~?kVIpIP&bV>Lu~!9#@jZD
      zw<5SjbsA<vHChcHG;cV1-IDk2D44(`RbcX#aX_G>R6)sgrK#x+wOrljH9Hr<G{e|w
      zc+)n8-pD(mS?6XH_eji63{#kqGLjOdbTK(6g-#)*-~r}{P;0ljUS~+0Cp?Foiy}?7
      z@6JseP;=@NJDGG^f@CDf0>k`eH2(yPfniZW7LUj$&qA`V7{wEkzbkQ{DR>StI%*r<
      zRdO!*Hy|M;FcSeaeERgPsMq;n*|EzXJ$rjCU<hb7Q3{*4r001B1?hRP!6_WuG#s<W
      zH-vlu1HE>qB`_vQa*#$Jjhl!dO7j(Za{<H<qBT7(`VUZKnPLH&!>REu29MpGtMre#
      z(RD)DK%7?Byetf3#C^SCj8crbSYtlcqPqwBQe9lX2=$tX-?&hUm*hi9f&G**PHQPG
      z;X-|(b9pN(W!>KTiutV*B(_g5wH?3P#r^RPX5;f6sHqMf%JpMfckr}}rJu(xewYe=
      z;VXy}GO$gN9a6JPLif%TmF*Rk#Y?}a6|(T6CfnDPk(yS&{l6f;-f&OP05u0_Qbecb
      Sw9jbC^t5DpTGm`A*Z%;7;OXT6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DefaultSocketFactory.class b/libjava/classpath/lib/gnu/CORBA/DefaultSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bab1e26a90881f936fa575cc1dfec8b90390b196
      GIT binary patch
      literal 924
      zcwT){U2oGs5S&fYxOUSIS_mX9r7g51EyCh~rxYXzR78r1RHI6Hbj&rqV(iMfRPe7r
      zJVYWAKY$;F*gJ=$O(QIw?{0TzcE;=9e}4V~@C;8ZWC)wxsPEQW$FE<xZ^WtJ50w`O
      zpM*N{0~IG<E#wF*=l-SdhJMs_Tb*+eC<}SQ&IBnVC6ZG=5Iy%AnqYe}>V`ta5n-$O
      z|6Vo1{9zEvNUE2FY^8ca$kpSI!U18ifF(GD{GrL)99k*B!aQNQDI@W||G6WQ4}K>U
      zgw<vo_~D74NPRa!2U#pKpE{F0E(j9gD^U-nh(;m^dzI$IsHYNEUTaj-SR~ZQ8mn~P
      zehI{dl5y0tP$I0E5*fRV);MEfos~^t9h7lj8`&fjXLi$;&*Gla9&V&LcM&I?qsG{R
      zCz4B%{IgK5ToZgHSF^B3xHB{7U>6lFtI8cJMug+V{Ui`aQh(0UtZ6;fRM_S@WO>c;
      zD(P|Xua)Ds4L!64zPZRiKMO-pdw{|ZEPv-~2DkX_m}HIj=U6pSFl^}xn9cG&w?Dwz
      z1eQ0!6jDeFaNG1|izsr{U893=&(OT%b5^$-qTD{%7+~Yu6j$AFZKYKsE`55yF*2uZ
      p>@b4x5RY!~zhIn}ZV$2BULWA`G=0<17t^9Ky=_Rf!+leK@D~<#y5s-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DefinitionKindHolder.class b/libjava/classpath/lib/gnu/CORBA/DefinitionKindHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1213b2a404254619617cad4cacc30b24ced5ec8d
      GIT binary patch
      literal 1162
      zcwUW@Z*S8u5XK+(Uq}cm3>a)cS;t^$3XOO@1nM?b8&s=cQzdvarL8HR(xeK>5Z?+U
      z5EU=@0DLIK*@-F|v95~j_-x<ro;#g?|M~d~z*9IHatxKBA3M99H#<#dkG~hbh(zGO
      z68>O6@CH28P++)v>Ylld=lVmZ(>vw;NJELC8iYe97!6bJaS%ps&*RQf6moYYmkh--
      z*Nf?2Y0qAs4YkcsdM54XM78E$t#ug+yTO1P$m5C$9ZL*(tJc*)LQQD6#87SvpC87f
      z9uJQbA<ONc?|NM~6w*#N3(*Jhkzu_(zXl}FRGSi@(kY%$iUWqNtk`K04*YQ(C6yq_
      z23B!L!y3cJyyW(|H|C*<ySPW<k`Q}~g}A7`IpH&GE`pNTMW4r%<(ien9@D<8{kBZ#
      zfr(92Wfj%!(#fY#M6|HZRoscAY*j21HP{q0b#5)@d~uKDgE(S%xDbuOI11vh&s##a
      z#p?f>pdsG?s?=n88bumR_8PsU0<ClyG+!pGg&ci=VgG<>*T19um8=}D(Y!>yzzgzd
      zlE)5~$y!Nn<2r5tYIT#SlD>jlDYKa}b-O;n?HQz@4i3oW<v%!miqlcSeT7?B;w7%3
      xY!W`f#+NCnr1oAbikY0J6e=SgWu?^ZZzxZ&m6h_Aq`W&vN*#|?=qJjj@fR_h3Wopy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DuplicateNameHolder.class b/libjava/classpath/lib/gnu/CORBA/DuplicateNameHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4141074d02633f018ea2db1f5554244e116e868
      GIT binary patch
      literal 1390
      zcwVKGZ%@-u6vm&+y4BSR2#Sazq9FUDYm6^3Bx8m!GZ_IgU*cVN8O5$`>Mh1^rHRJH
      z7k&Ugl=0lQ4z`F{vKQ?=y*uZ3p8M?FU%!9+1n?Y|jwy!at`}Lg=D~K=dKCq(V{<9?
      zcu(y5ZbyVVG=|wTe$FkIdtIy9J`=Xokz-i(!>;A`x@mFXhmyBlVI9g)@SX}8vgh25
      zXx(c3P2Nw_>Yfy#EduF>7S-21N7lU)f1lg$c~=Ze*<{GQbSPtsAyX)}7_^$-5e722
      zVImKMVW#1DVlV2oMR=67o@@9vcUwGk)OWh6$y4V8!%E}7ho*kj!eokztvncRnb2{K
      z!BpZMr6zVGdrS^>7&b1NjCff0f=DJt63W0`+|#kdusw;WUEu~IG;trx<U}H&GoFOW
      z%%BrHipH=uPB;3uk3WWvB&P~j%4<e))S|~G*04^^(&CfxiYGgpn#P<T^BC60YN!T4
      zehNt8QlU6faYXxSwl~#*$|jzosHQf~HV*xWbnQ55k{ACmw-t3yu}XuNp(jfZQ}aic
      zUBz@y=zX2OUc|r9Zs|MBFBD8+n%)MjKouHln4!o_k}!*#v?{<{3fQ4cm1`(Ksr(J|
      z7nEsg4!kBxgDT#{q=h6qC8_8($x<Q~a3^I}Q)a$Y?qhKXnFwo9$=ge~`~a871FXcj
      zhw<r$aOKih%=htV6!(sB{0iI?Y{a+%iYcy=TBh|;`aB@z;=R*LZfOIzp2b;}KjXzu
      AssI20
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/AbstractAny.class b/libjava/classpath/lib/gnu/CORBA/DynAn/AbstractAny.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..100fea3191938946aa9a5c4c0bcaaf4b85831782
      GIT binary patch
      literal 2680
      zcwUuNTXz#x6#h<|c0w2~DVG9;HU+^XZHa()5G|$EK-wZH)m8<klSwj=%!J7VNWuH<
      zfk*YlwbVC!RM)ZvWi5U4!DoMu%kRug(~zV~=~_K!pL6!!-`?Ne+4I*wzx@v27`{-@
      zB`{F1YN?6Yi)Y4DXY1Cul^S2Fx{jv1<5pckNMNt+6jFA%5GZAAT`SElT{U!9L9f8h
      ztJ)1MW!kB%;h0*<T-KIKhQRi!cbqqzs%cx7(q{$4Ie{$`wpDdC%bnLsHKPaqpWuU?
      z&zm|euDJCI?e}CJg`MN=gq<@^3Pkdz)zDM&4Apk(0tYj#neglh^(kM6w%xX~B(S5!
      zITyb5Os8jNFEY+7<;m#_a|;4}885w(W))Id*D<Za$uRZ^3{93RZaqe(YPwr<jMz=n
      zEygT6mN$)3u6k4;lua*AhA|+pHES*#v9eh$Yp!18Q*Syub19PvW00ZD6^)o~TdrZb
      zF|!)8YNe7uxMWs&V>kkb+tTu=n<z3QBNM1G`rcEfWxA&Yit&x8+wlHBiR-{uVxBol
      z^9Z_eSj8}okluJ=eiH=ZDt2I}l#(h`Y?0EaimkqMRK+%Im(o)zqUaOYmN6}3rdD1u
      zoH@UL`n*1y*Vsfn2bUqYXjTOdv<2MMv$Bx(oYxyYn!ks&skJ8Q(X3h70U^J8_Qew$
      z_t_@hF*MhpPk~)+iV`Y<(|AR}%L36hf>ey-6r0s|az&F~)En!i%gOxDsu)6SGp6vG
      zf>#9&{f}C!NK2{}-FGA7EE@VXKh+bDU3^)`$mA{EsJQ&0Ru#+$jIHT12(4`D%+-&l
      zenHc(X$8YGpAI@Yf(y8);B|rBoiS8oF-Pu=>otwdJ+NVniNy#>nOE@!-XvRY69~C_
      z{M6ciyb(-eQ8w#avZn3tl8vx&tHS9fsqJOoFlGf;1o~T*&(zFP&Tt~opetZg^{-b?
      z#&F)Wax+?4RxAhBrk7kAX_vo*jS1)!aRH_R60p7XO~qAQV<&iBHJcYW(wvb$qdU92
      zjKwf47CyF?YfN5NR9uH6)2>tui}{arqNwdEAj0$Os;J=xNpx-hkza^-hZtDiD#zk_
      zd3VRt=?;2fEOR_OGC@bZSntSK-xJs$?_jnTQ5YWxY>venS%&cu2YiA9plCR(iAc+F
      z;TGkjjb!bbqZ?DE_x)-bDMzLI&@fxGoButCU>_8ODR1J(s|&JeIpiou<%sik4mfY;
      zc=JAS9EV)@U>9~b?D~1$+jQQ?^Zusu0j?YmTov98;~>{VJl*A+{B#Z{@8gMNbm;FD
      zJeeF>K_WT2f|2Cd3dWLqLn}!A?72C{b&xIq7a=TSGj1`sIzw3|<ZS}n!EwGm?K{N@
      zO7Ns-n2hkGXDM}g(sQ)!_N3>TT8Qs2;Kd-Y6nClLll%pVpBmu3-sLAAi0Uf@AOa_G
      zDlk4C7>8+`TE$DP_II1?!-0JWXK*C2p9t)uw4eABs@#6Xq`*20TfNA?Bo|*Xi?5p;
      zMjKh5!+C0FJm-SbLb`s30ZYsNk<nGmeuL;kOfMwm;nIC9{Lu>VE#v!+b^P7~i20@s
      zfPTCk(ArPOKCPU0K^8e`OZ~xzxV$j(0Pj9P{ys{5<yF|DJaSt_b)6d@@gDo@2Nv^Q
      z6XIY4aj=0n*g(9=CJ;e#KH`u>?5h)O|0-_xy-%b8DSX%p>6hcjCa9qX)DS*qp@k=X
      NN~w$TXP)Kf{{kS1V157q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class b/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2b42881116d4eb6b6879a8e99bd2ee396bc450d
      GIT binary patch
      literal 8187
      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
      Wr8zvdo!4+K&67z%^X2l;5&s3_<;BJT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/NameValuePairHolder.class b/libjava/classpath/lib/gnu/CORBA/DynAn/NameValuePairHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abe1f1023de690c2a6efa35f96d4573a43c0756e
      GIT binary patch
      literal 1232
      zcwUW@Z%@-u6vm&+y4BUnUqwVwCLmp>Ym6^3#4#Y6RAyw^E6H-V-OQ4%U22QrTWO+k
      z@r5724`n>JZ6=!{eX;iR?wsFwp3~ExzrOzf@D!Gc8HSC%7g_bj+r65#f9};h>xd6T
      zi@T9{!=2!z@AgEXLSdLc<!9V-x!1QEom0^bRTLOXe$co4K|e(d{UGEWS6IhkAoxIr
      z4EZyOV_35%lP5auFch9Uo)hje<cxBQL8<#ap&^GGI*QO3=4{6kN70}of@VTqwEZr3
      zTRd>&b9$(R@0||}TXqI#)OFqXudH&b2!@+FR9s_Fc{??eZ<E0u!}fIfcm%J!VH75F
      zAc}@NxT|9IuaQlv67En0I__bOj3gcE**aV?+`J=`88)-Pq`mNbNH$lEX>gOy<(t`&
      zjy7~`q9kV?XBXNZ11F@wxKwi^3a7_n=qSUao@wzxw&E*Z8>#W*bh!#ycnsRH9|c`;
      z=*Tr%`Nz6c<u`y5EkurfdHONA7xX#Fn3j~T*Xik5{12U)-=Ke{U<R{v)#wiFLct5n
      zQKTnHn8yO$C15cH98#vt)g-{Ie8tiq$}BYp_K31i6$deCImu2*GP*^wq=;qQPMNio
      zSu`sntV|#iVK$Y#zJM!^aYfw6gBZ6SyO+3X>QNct;ioaF5T7+K*i**#w(w|LO2zzw
      Yr4hELrMx34CznX6;BnmgNnBI?4T$y)^8f$<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/RecordAny.class b/libjava/classpath/lib/gnu/CORBA/DynAn/RecordAny.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6afb7ebcc17fadd6597bb4060426fa88de4b8c7a
      GIT binary patch
      literal 8043
      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
      G((*giD&XJ%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/UndivideableAny.class b/libjava/classpath/lib/gnu/CORBA/DynAn/UndivideableAny.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70cf1771b8bf38cc6b21556010108a1efe88d4f6
      GIT binary patch
      literal 5868
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/ValueChangeListener.class b/libjava/classpath/lib/gnu/CORBA/DynAn/ValueChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6802178d73a141a63a81930707f2f3c3083d6fb
      GIT binary patch
      literal 159
      zcwRg8Z`VEs1_nb0PId++Mh4~dyi$E<{~#wveV58S$2|S8#GKMp=ZwU>^i-eB;*!+7
      z)FO5U7Dfhvti-ZJ{T!gUzJF3yYH|r91A8)9SqdWqvxa6EBLi1(erZv1s#|7GDkFmg
      g7K8LaX0S0b05vdx03*;`Rt7c@i-8?TGBI!f07tPWcK`qY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynAny.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynAny.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c780c769853226fa76413ce1ed71b4d8b0cbb49
      GIT binary patch
      literal 14085
      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
      Ef81iWQvd(}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynAnyFactory.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynAnyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0be01daf51cb285a38a2f26e547f2bab940522f0
      GIT binary patch
      literal 6415
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56c73a613ac8d47c4ebb01a0f49fbecded698c96
      GIT binary patch
      literal 6545
      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	>9rVv?%EMduv&j3~a)?d4>C1j(
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynEnum.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynEnum.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..930e78e15514462ccf9a0921b4f069fbacbe04f2
      GIT binary patch
      literal 4358
      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
      DY}gO$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynFixed.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynFixed.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f4a2e634680ae52e885456f96858b00d423e4f6
      GIT binary patch
      literal 4430
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynSequence.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynSequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ec77c4f2766b646d3497a50c87f76145e5a5fb2
      GIT binary patch
      literal 4531
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynStruct.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynStruct.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2fd7db41973f86591d2d3745aac960c8655934c
      GIT binary patch
      literal 2045
      zcwW6#U3U{z6y3MYbZ9!UeAq(EM-?b0p(TQRC_$jK6aq1YrmfV9@pf_>Mw6MY$wY~d
      zF8_#6yvkbAt|g25?u-9O-FGGpT_J%tvsPyA$2n*3yU#sm{`%*S9RTO?jfp;iV->fN
      znO#`CHItcZx-)Kua}J7u->?G{F@dp8i$!I7etE`iniyaJ&#z>>T19WlnqzZ4vnRkl
      zf%m_YKgf*ZWs1soWYzgeu2+@7{(3lFQGVU=+~wSyfVd}+nDyLxAl+a^RvXGd^b-OD
      z*BsXgt_wU#=65k8T1(AMHS3jCw&!~HLz3#ev;)s?c6#!WO|1yTw0j)=IB4NL3=e{*
      zu`q&Bf%t~w%4#VfhQN_t$Z;IOxQQ`=(e4%&j^dbrRa3Qf<(F));RXWz$yCn735wrc
      zUA{Dz4=j9$lLChHec5C#*77~=vnEbc^e`7y=~gn#kmFW#m@^hWLXrw^6l6`+1rDv{
      zJMFUCFm2&1rUcB5NH&3!@0M0eaLz&o9}5h%jv1+TG?`2F7VZKrn)rl=d>4X+OSmj>
      z-1e0WRH@u_OVVwYHhixZ0#Vd5(JuA8HmSF$rrCdL;WJ!)&7L-lH=^0UA(M$~yd$qE
      zFT3jLrm_Q7jw6ff`WoHfeM#=|y#3Txn*nQpSI)!?<?pg5Fr0T>RcL4iOHl<K%zHKq
      zNV1GLZ!N}xCk|71qDNw)y3F#<cuQdt3>m%m$@$%+8q!_x*U6(xRj^1M{&W0m4Z0qK
      zO1bLCTv*07t$zNW3ib`JcBf(*DHn^dqJmPC#d=BBckc>IAerh~JGvku;0Mz2v$_>5
      zTUbF+V4P^BUh#(ZYzR!gC3@KA+QGlFu!cuWc1Ljbo1)k7Z8h)cBp=wD%yT*iYy@l@
      z=z{^1qj3yEpLvMAvkw+x9J7J(xu4C{q}2d-YU#66(_^u197v~s$Du78eud*NFrjA?
      zJFjr+1t$A18_zJU7e)*|Q`&IE*uwM{&KEhE441>DE5%<75l$y|e*O3FXBfU}yhL_&
      z%-F`~e?BMpARgme+$5!2gug&yz#XpUaTs6V6beY;0b9jG+~E5r7WpjDV;SrC5>>2X
      zmL7L`M3ToGZigR-8s;&|=z4UAqrPx-7gH2Ok8-$20nXqG?i0yitT@pM9L2CegisWe
      zD2e{uBwj+Swsd*;Td1EVI}ietLIM{f!#06Ln?RyXAkij}Xb})RPO$}+;al4q>1`}^
      df~XM0iVRvHg6DtK#d)>U`TMTUUx!wY{{u67^%4L8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e7f599bef19a7ec2544ec3fec139f323547d5d8
      GIT binary patch
      literal 7251
      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
      D8^!l7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynValue.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7389fb9ea8a3e5e11a4fe9ed12047942a8d29731
      GIT binary patch
      literal 8072
      zcwW6(d3+S-d467YSG!sbmq5S@$%tTtw2}}OJ|!Cv!pOpsI3z@XI?HG^lEz3gVs`~7
      zj^j9`b?dfq&c@i3IE_=1n6$oFm0$x-;yQKHq)pN^Y2q|j+Z;V&w~pJ|iTivrv(mEK
      z75JaRkC|^~-tRr1_xP3<fBm`h0Ire!LCg^>AF{?9+qUo8+}gNh!fLe|`OHP1J~D0u
      z;TJ@533eHAJ2B8|O$1TI{dQug(H<RAAN5f)&i9Se`$K}ocj|}rM$>NWF%qUeV!l)F
      zA29?AlFnnFkw}`hwYy`BK(-0yw%JxPrCTY7K>+R_5fqup?(vZkQtjiz&8B6hHVB4m
      zIy3TJ6?-Sfj5d3~XeszUzr9p@s~%6;iHY2uytLHz3H)k%7(Oi4umB5-Ay}eeDV7Ps
      zgQlgA#8Q+YSXM}K80Dx4VmbHar_fM|s|4DpG1_k=VsU%iN(p>5wH-lJF%bDZ&70EY
      zZ5meLYC%9xB=iYE#s1EM^esVDGXhRvMs#bau_u)<ts%vxMnf&4^zdM}K58Tdi}rWs
      z(zPhUdJPR&D+ms{Zlea5cdc^4It|yLNl@aM>3VH>O-F5E$6br-gSbvmbvX$dZorL#
      z%6P)iQ$}oH!iwqEL~Jl&k2-?r)B#Gnt{`k`XYrcSzF9*HZl2bjG~`#Nw4dQ7MZZDA
      zMr<Ok9qFU?fH`Oy2`8#O>icF5Z6Nkb<F-YmsdK-cG(4x2*A(<g2?E%vp&hpoFi9g7
      zOWCo*DrFqjed_Zz4Y#9{XdB{ZSKVYxPiCAVsIIBa3lbH1*W?|#nV=bhZVlV9gJzi4
      zF!MIG)ig#1h>kTiSHhvTFNj@)WPaDuTjTLm33g&z5W59SFEx2{>z3G#)?KY#LG0nj
      zTrY1PH%A7HL<oBY^LmGksxdubSg9&|uquo`>{rS98!AFG<5SzGBJd6kF&q%gF$Y+z
      zYVyXh5B(bAAVHBnHfC5{G~{DA<CUjfO9+FMP+t|oFwt3GWhSdEJ5`l*Odn4ed`eU~
      z@ms5;-KpWA(kYa(T|Qy-g7w;>hSMpq+cJ)h8S#`c5XLCRl%<DQf3g+3^=RA}OR>N@
      z#tM=eQVKF99%L+*)F2Ks&GYOL%<nWUqkCLIr`IjprJZ)1Ra<B6=Ck+GpBgp^hROm3
      zz$xV|EKPQ=1M7h9-b4D<OzjBh*7ig{)yPwPS@KQ(>!9=9*s7gY+(>dO3&$)8%UmF#
      zQf!tc<xuJ5boG@$S#VVWW-g4CwyGfHjX^Q~01pK5KEcY%O49It9HV0#P^gU`R5<;R
      zioguq(KA-7TlR}AuWrj2y%`@*D2I93A3JC&<Sv_8RoZUn7qSUY>6#4UVS>D%Z+GbN
      zgZhx+6r?UQIjX1P!$JJfm2By-Xp=e6=NcyXn1*?nAHv6}uu5Q7!j#Hjl_P{_7!P5;
      z>bs9>_$VHnX_YF$>ia1TpTvPMPPpWs(eRimf8_*WtWXIo$@(BzJxf7!)b;A24}YfN
      zaeS5ulEa+UHkntH+Vqr$CsYwFNoH@TE?h#VWvcA;VN%1>I3rkf1v}W8&7_mxPDj|M
      zvi}(k&pHjm0ae>DA!HB`C6;ld!<o9`gzkI)pGK+~yQbz!r{gSEm#xGxi&MZjG_KQ*
      zt7;15p4wEqFNnWj3};F8?PEql_t5>N{7IN0ZL>#5ZL0(?;6)8*@j12nvWCA_z1pw3
      zvqJ7yHT;d5|K{3*gJ#_HMnKh6zNX;|__`Wv3Jx0kR7C$y(S1>s#?-JH3&du0XRB7O
      zUMjkSc6>ak!dF={`_SUUcQt$)|G?tFitoU_Y(@#lxc&PYet_=@iropS)g3N>q~XW7
      zhd{Cu{l)la{3M8fVTkfo5e+}Z&!}GNpa;Gs`HM{$|B8PP;@<=dXMjV)f8ZA!P*q}$
      zCCpJXWgg~C#7e$yhCf|yv&@dK;J<?S&lzH9nF{Btv&M*X%WL%3C7)wWvGq#HFn)>u
      z(eS@`ot_x6?StcE?gSQ_nuu@8J0n~wY|KuiR2OY@!kbB$AbyoAx3Q~rSI=#&oguu*
      z4E6}C201r`gy*9L&OnhchRkHjNEid0Bi_J%Uwa#t7UK;GXi|iG3A9m@qXwNXAx(-U
      zOx?X%*&a`gji+K9Neq2dO?Cw}-R@BKID{NTSBR$JC47&rmU)`Ymjx^-M>r%JnTfO}
      z*TeZ)vB*iOEDp*dCczbK(4<V3sD9uYU|QMwR~Od5!<v>E6y|UB%mC*jE|GGn2+H!p
      z+GWR3lS<)fF3g<+8Aoi&aYR8;nNc$5*sS0zRhq1nw-E!T#WQp&*5~rRrY8TE!r<ma
      zs;`?lbGeh#>MO!2D;9mdG>6ths+z2bs#$nl5`Hy;bLPBa7pc;c*J3I)q$c%b(j2lb
      z*EM)lT7fUK^huK@>*ZQi`i718L3c!5|CXDfd-i&<1kYoeDyUC|<R*3qZ|HGne2z5I
      zqRGv23#F-FGTL;Oa-ONP>qYNy!am~IQ=9i~NH+4s)6JyUt1{hzy-6K)>Gx!U)pE^j
      zon*Qh(qWB-U6gNZQ!Y+j(XQ<Ikh|u`?a?vYQq!CB^9H+<+@{G^^}9z<mHWf0&o8Sf
      z2!9bx<v^Dv-OkTN#?e%QSj;3r*vkorO{73ZsA1|A*`?BGhvL|)$!=jbgq)uVoCdih
      zH|{Q0)KMXJl*a26)nkt*;>K3f`86x+q_b8D#Y)EBhdIPTkk@h)L!qGr;FHEHM_yhR
      z@!bL}<h7I^Do9-nNKv$|z9HhD#G+{QX_TcAc@`_qV5NFmdHz|fK7%#B>jS6Ipk9;(
      zc&$@}Wq~vr(^%ibhc(V?=haO;#{%L!t~~$oH^1t#yrt+7oN$+|%?^hMN!K?QMT(w7
      z;5b%AiY_A19E=3d;#T^SH=e+nL(xcR5?!ZoK+)|yjtWJ$)1~XlCfIlmy?f80Z*S?_
      zC$Z0!bVnL`slkhq<va}Wl7=~nkqga%a~Rzl2~5Ji5KSZT1iey>SNV6GK088hB~ZcZ
      zKE6GGrO>eo{iwwN8ew1~@0&1)9ej5O?!+)gaEQm^cfrOn?)*I@@j-HW7>DsFj^Z@#
      z!c+YE4DM#CzK2uKy?B}TSMghT4fnC5-Y)^}I!cMhFjqwd6L_cdYh)4kE~9p8^)9aF
      zIIFv{mJwI0cjF%TQH>kO?_S3A5IMY;bOBON;5YeHM9vXP`fZ})VcK&aeg`4yQ_6S0
      z%XiOAy?c$gxu4VlO4&~99HdAk`4>@@yPTlboj*W;bWN{Ucl)mQI|x}(U*@kX3p72A
      z-|uP2EI-h5%r6cm>IjJMPZ7FkYEpzQf|{lXJ@C8~tyef~AON3mpsd2OnGgn@tKma5
      z^21n;j}ZPJMLiy*3y!0i&s%sb+lG_ajgK*Sk08$HF?@mnd6Z85q~qq>XgE#ExS1>E
      z0ya8^@WZ&8(w1@GM-Zi(my^pM(z$+IMMt}CZYLPrm8g><>5r335$_LCTB#$!r^1FM
      zH0R`T%sq#P_Le>}i9fy&ox~>|pR#D43M4*5eI8?Se%8@Wb9Z{$i8^b(RSAERE8%HM
      zI711Oc_rMAPEUfLPlfoOaQJ^p@&9x#|MTR3f&4G#<$s!%y(RvCn#=zM^8XU~znGUl
      z54(9h)Xp^%1|`wDNjw?#ox#azD7kFE#t?p;xc`R3c8N<q1&b2A-+_gw!|>$<r1J{+
      z4h4Ld0$wU8;LjZaJovc@#}Xrsbt(}~o}OY?<h=Y*mid7x^HX%DyZL5Pt8d|`pUSYd
      zoy%3|r`-25=KRmIIEAM;wddjFE5PX&<n%H*y^@EMpMbdFaryvtR~2OSImlkG-CT4U
      z0mELR>T}{0LhAlpBrqNKB~bq-^E!pSfinCGm3R}JMIB)qT!vGAT%9SCTzO@ZE3Zs)
      z<(A2LEaji)4wbb$3w!DvC$*w#uX_&9A4hB5MZD1EDpys17Jn(EDC6R<1bq9IH2(HD
      z0{+v!)9%NIFjqzY8{SLbbi~S)k`h8t!qB7yi$udZna3Wt&@rOQ6+2}_JHE+!t%}f1
      z_<MYdT>R=VorSv-ly=$F|4vToNQ4@cW1&>!O&uPmTt~=bbc}NA1()kG#{3^URk#1)
      zllZ4JexAn5b&spZi}<DM3HH_h?yP$O>(1c~w*mj!ZNTm~ou@0W>B^k0`bFY9BmR2D
      z{)cG^cKJ4(LYb=el}%@*gfnSc<{tA&rPly{!smq-WodU^!&!;UL9<^e)EtNeTmdgf
      z0ujHnloiBHr)ueSs-x4K3MXMR&3upz5OOu$P|ZNBLAlhRLK@K^Yq3_=p-GxJajeHK
      z-uvWQ+#%N?CO2Y8nlU0RxQqAuWCPwOx8MQUhzF$=CuK8ENgJM&TX9C(k(Lg}y@N~v
      zy3lj4h6S>Ul7&dTkMdS?)rVrKrWSKBgl?&kTCPm?7S&IDcmUNBl{&5-B;r3W^#s95
      zER_aw3DBFxPK#!RkhQd6x~96oc%A!H*2LBP_LaJ`!b4YDuBmh8tXqlfKv(@)xlTbk
      z9Ch-pg}3MU;rZ?;-F&?wzu^?Sx`NaqxsjM^_DB2;X=&aQ@n3M?Zcs>j!ZGR=PC_R<
      zH#ZY+ke!$(Jt&jibaNk8$sR;yAKiQh*2_DvNe-Y@`q3qE^vVGCh>3o=Gb^d%Q~3~=
      zO-??PQ_43vzs$jU%#~I;-iKBq_<p+Ihc1L=3xhx>sNvpA>SnKqE^x6N^qoR5Iw|cr
      z^;8aJ<-~$aPDqDr%Tw)}Jf5LwT5eBE=i@oNj%4u)P4U_;*{vy)!Tny*S*&<<)z_tE
      zXOwvFxwOtYB~b20K;BI&@4<X|539(%S=D3ll(!bk9)d-<W4^py)CeQ8S8<Yk{|8;A
      B;>-X5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynValueBox.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynValueBox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..259cfea13026098badfa1185b95a24cb7051c084
      GIT binary patch
      literal 6920
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/DynAnySeqHolder.class b/libjava/classpath/lib/gnu/CORBA/DynAnySeqHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d7590257e7d6f98d2c099258ef3950a5895f6e9
      GIT binary patch
      literal 1210
      zcwUW@Z%@-u6vm&+y4BVS2#E4W5d>*FU1NL+F&QI7O?8PQdxHt-wwu}6wX?REeJf2g
      zF23*s_@NBvwspdiE_=~?PjAopJ?ETz`seSj-vFM$k}=1y*7aknR)2R?wT_2=)gLza
      zr<Z}(;h_wPVX^02IF{%5U8~;e@pdGm#IPNNT`TB!v%o<RMo!D)RwD|z(-$T~@xt+9
      z+BeVaf8HeE^xZazWLgIdr9;<uqZbSX-DomMwV=aQ6mUy}0+nIGc76Uf?zeb&nu3??
      zpzU}~Cv?Sob|^(3+|LXfc5XSOwWUwX#b_#ESkWNk27@Nja)nM(Me&>}>oDx=c24cD
      z{6QS04Iq??HEhUOXV}SA6sd7<z(Wn2xKA~t5=XO1OmAz^6}}9+v#{tE&cB3iM0M)9
      z;`KP1Ebx(rUF?xq7JNKg@bpWdWP-$-VQ(g!xSVJ>ApLdSn20!~b1_i|BHglvCosgU
      zB;INxh{HBNamD<sOiW8f%ssYgAPV#p>0x3n=*JN@O(v~3>Fs&)g-*?%(7ur|hk066
      z+JP!0)UZI7mO5b(w`muEr3`RFp2AlZ0JHo9%l|3!Bo4eLicJx364Gkwosoofhtd*B
      ztm1CQtY%EbERS&S8Zu4nj6&XD!6{>$f(O`2a1WE}ui?t(cPx*vGl}aF?qd$_G4>Oj
      d4kN==vX)6Bm|w@FQgRkv>6SF^*3-nRatQ=|2}u9|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class b/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af7cb100bc78e3e1baf2d7372c5b7f9af5282f04
      GIT binary patch
      literal 1812
      zcwUWFTW=ai6#m8-HeR+N#Z8<zwd+gl0D+LE>D6gkn~;QN4X#aatzPIFR%9(;(R#^6
      zRn?37+`p06M5^s5k=njh>W`}W&F<C&1yVmSbM{=mbG~zChQI%L_B(*L@r8mBf$2uO
      zo6VKhSC+H+R>ysqe^4_!u4T7x+0DA?C>Rwuv18mbvQ4Ai$d<Nu%$lnpA~0(^jjY{j
      z1koMaagFV!ncZ+5(`ZRiAbihgcDbL_dl2Qjj(uO6mjsTv4?AYfuG8hT-j7$NB}WUr
      zB3G@p<z5rGlo*IJEHYUU7?qNW5MmmlI3W;9Br9VOh-*-AOiFKP7=tPh)2+5y?6$T|
      zr|g#>*X^3otQd|ZzXRo{d)L|(n9*O|Io7Qi?W*~oRzNkXJ-Xp4yHpoApU{W&vC!^x
      zUB8)RqGB2|3f>Z!`+t88vzQZz$`sXI*Rk3S(o7^@=-!5>T~culiwYJ5CVF)IA?FzF
      z+Kz_vNU-=qy?NO;2rMREMtTw4_ghks;^_O!y;HnhENvE5B$1XA$<SjET17!tV0^&1
      z**i;86*za4)(MPQbveqHa?oNv=(hxg%kjuj2~4tS!_Q^)zGJ!cN(>!hsq6MnaS0zQ
      zxGHdJFsg>jm{aiymKA&|Fn<JC4J)#XnpaCOZ3Wi_&h`hdEMKpd*7EDi<wA-5&mk7N
      znL~Jt(k%@Id`8wSt8F_1q9E<MhE)^=#^mkG8QonnO%J|-$$?r0Ykeck_wGW(_815(
      z9I12tFUTPd^`UKfi>CBfaHW^JVRxOHdBc*&=ggq%dQrmj+7OYyFh;oYec($e<m<qF
      zlu{HL*Vp*9MUN2oSn2@BQy2E|dMdq#@h4P`;3U^L0|1?CkpLwe#~MyiGvkM00;d5_
      zI>R)=lO~x+CO(TdgET)gUg9iX*vHgr`YGm%nZFQEJx6jYeE^yF5u&NgpSVb|mwgfu
      zu3wVKSH%39*}uUQzQqCzuZon9dRWCGF7Yox5})M>e1|A1Yq)}Uy>`5Z_k((}+-0rd
      z)NdGne3&lcDR(?*&36c(1wO!sLGZ8i_Q}ZTeSEZ!YmYFw`W(5f1LTXD_>Dc>%%t~m
      zdo%OL6AvfK(n~>>X-)+Aj+*b;tRI-+N0Ryp^K8=sei=gSbF337M(Y)95NU$(W!&+I
      JRXhfp{{phot55&{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/ForwardRequestHelper.class b/libjava/classpath/lib/gnu/CORBA/ForwardRequestHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24582ca8e8852abe3f86e6b908828d5c7c5a219a
      GIT binary patch
      literal 2869
      zcwUuOX;<4;5WNo!!ipf^1hc0E2=PMWZb=uDv|u115t!H%N=a~qd4Q;q99d@Rk}l~v
      zZGS-9zmfJNkW)^V&;3z7ohJ(nwxNzcJjqWpckbLbGtxi*{{AO`*YTZ%8iq@2Mm`dY
      zCq_pi6Q;GTSt|+tD9>~D9iGW@OM-`?c|+UMA{otCi^P{Vc-m&DAJz@szQs@*2+lEh
      zV&)2$Q46nvI@B|qS9OC==Qo$RHLERWID=0$(^_Uuvvl#_-SpV&dXAx2J)1?8LE<~M
      zrHRnP0oAnDBIf3r>oH>NMuSItGp1z=@FcgkxK#odmC=F=5_}9TWgrSJqLqlcky1(9
      z;@W0`=#@aQBx=@;6DgWSCA2a06?2&}wbFdd%nG->@S{UPC%PEwwzN#1B3!L90|`A0
      zT_?GWj*O+^GvkSo*~$2H172ZhJL%QScd~SDd__h#E{ikjV`vSi#e=0RbYm?VoU6SZ
      zgV#%DR}>85DiPe&4bx&^lfpTuAcQc3SDb%L%jbyt&~c#Ib<5m#)CgAGmGCM<ckxLq
      zqvdijEoYDKq<PlXO@oR`Gj<s+R5)jPmgYNDw(403!faVvVdzoM5Q?m7bTYaa2$l=c
      zfVUZ%PO3;{uNygT(ap_DMOftt2Ipit|EM^HVTMrPCEQwYOTqj2fXcVP<V2AUmXfMe
      zqfWcp>l!8Dp-swv>QuK$Bb&DizAw>X<G3whf*RrfQ5D?5b%t|-NGj(jFX1k=TUD`S
      zOu{STO(~d0{1E4GMzxpqY~e}NOMdqiB#<N>R|}9Si?4Ev8)?$fU)haXK^N2+2C5NE
      z$h?~+xXv;jv$QWJCNWvSqJ)pBVT)5EZY?Lc5JNPqf(Lj=?Up2IGTav3QQ8-@P*<fW
      z(8+z`kx$!GTnu3u8qyM$%Zv)S6~?TBIm|a8A!7-vqCD3a#wrYn)3PbqpBz)gBd2f~
      zbOmqWx{Ob;DIrrfe`!%*z@+rjB%jSw{IHu-cA8<a5|6T-MfG$EqNkn$O$*Z^X{1fZ
      zkX}eVX97_ntm-^Nt<!!wWZkx<+jRQzQ@bmkw~N(MWp@cJckr16nveZe;41iBjC#c(
      z<93)p_)@`Re0B8Tuw^<*$-1R4hDN>V;8Jr|l@NoRH1k%PPv~McbyRw<UlRxDxlGkj
      z3-Ocajy@k~mFQoDu8gjAp?x&`N;fr-X{~oQZ{ZxRO2L4xjdb;*3Flqs#{?-r2SR&j
      z{u};hXn(36pnJi0X&=2)L%#m!7#IrgAuvDmmxCe`;*cAolcE53X-9>aEq=u5-8X|i
      z+;`&k7O-)RND3D1c#XcOXmSvPH}EE*cty3lT>2e+pw@TeX-OIn9Jm^X{5yEpbr^@o
      z*=r0Pz`qdQ$9sFYSyVuF9<Ebd-EsF9j9oV3ZUkKf<;5ssF62Df2&*>IV{HBalMDN}
      zr-tdD`W!RiA}=4s267~-O+Z^{#rClvZJ5P}P6%0izBoZ>Xt+UaT7@u!zu}{Mo<Fdp
      zzQ89_;o1W%E%;W3*gkkN^aAU?8zlTjF{YoQ0pC*OCxrJsq5nYGKORZ#A>p%l=&00#
      zN3bYfBRYts?MR&`o&^S~n`W~Jvxn_a_!(yQ@I_I)CWqlqWc@Q0%P+@rYsT03#u2dD
      L&5aQ!;rHY}q14&U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/CancelHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/CancelHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..748d3a8cdb1a7565c45b8cfc8fe49c722d274885
      GIT binary patch
      literal 432
      zcwT)_yH3ME5S)wc1dJghJQ_qnMWEmm+8`vb1VpkhA}B37+b468V~5KbzKaTpf)C)M
      z5NneH3TXCb_hwf!^YQui4xo?i78(pYX<l+aygfhTm&5Re`y!8Jb|pn3bqhAb`b0bl
      zo{2o=VKkAkVQ{s4EalwXtAv3K8JZ_5SLT$#>K%+3Y`;jP3kxeAT3BLe2P&7><usD|
      zPDGhx=mteBva!&r>K8-XJg7OtZt#z$0ns!ehW%bp=#&@Jbith!+Ej=5FrSrXWQaB$
      zRC=6etqk4o{kajA=J$#_DoP#83svdr{1k9h<zerE%u<Zx9}b#?EJ9?K>N0h_{sElB
      kSGX?(8t|w#>)|n0se0c8tf7rMXmskgi;ep5X1%rb1xaCH#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/CharSets_OSF.class b/libjava/classpath/lib/gnu/CORBA/GIOP/CharSets_OSF.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed33648bc78dad786219480288648771a0c38cad
      GIT binary patch
      literal 4139
      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
      A%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/CloseMessage.class b/libjava/classpath/lib/gnu/CORBA/GIOP/CloseMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3cee3137c7a921229093c6df52043b222b8e58e
      GIT binary patch
      literal 1079
      zcwT){X-^YT6g{t{bYY-S*%v9O(3Z-GySAcG6>0{G6l(Z{LwU5L(-|_0;9u~M_!$k5
      zNTT2UQO5gTYb2&|l6K}U=iGCbpTE9+2e5!=VFVb)YL>4SN}J0|>PoS+p%zTr<!jt^
      z^%@VOgJJxigjQ^o>-*ec=ykbc=w^jGu3=l-#pev{6+?Hywp>rQyozr6JcQ=M7@}pv
      zs+rugErtp0KgDwlk$lxOEW=x52&U2%hK_>0&tssf3i{B^(3zL<D7mgEh@p!it{E0z
      z_ZxfM+0yq+&XCaTDk;=SC)v^&LlC_JHLPF+qYO%;S#{U@ct{YoOvSvq;WC7(LKMSD
      zN_(e&&{e}$OTKsLdu7kzdLx&v2tktyl9-_EBggQFej3-qxW>@m4x`|P5Fa`)eYYOQ
      zEW?29)Kt4sYYk&<X|ue#q(zWs7~Qsn;-qIMWq#7D^Q0?zVwl04m_(KsTJlWYs;N|l
      zrcBa;D+L6il%^`Ug$1hFFf5za#)<-bN5Ng(qos%`7Ia_qnY~Q3Rd?(oQ9hS$>kZ=p
      zP5w`h#nOx8DnIlLv0TNqtM7TMV}`-@(_;wmV^XiR;h-QR<dD{OI24VQZQrT#mxkDK
      z-{s?(7j&4S#RTc>0vJUIon(cj6(O5$g}#IIt)QDCJ!GjA6HnI#*v>iPUy(SGfPVUq
      z$>0jTA7emz>7K<Ew!nGvFp-xz$6zLMilM*Q9w}oT9oRq=uO(h-W@AhWiDDcREv8SD
      zE%H-ekjR|jD*dKDV_dty%uXV8j?7v%aq|@O*|{^^ev|!iBAL1fd%sn0n%V+(sol5a
      t-9sGvbmknBIH1$3VHSqekZjh$Lp-8)9K+OGj@U*BmB$m=(W30)>2IoQ;<Eq%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class b/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b78c989ce41fb1558656f25ccde6be7e0a9d1f58
      GIT binary patch
      literal 3524
      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
      F{|ntRG%x@F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/ContextHandler.class b/libjava/classpath/lib/gnu/CORBA/GIOP/ContextHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63d4ba2065541a1198374c989787e32101da880a
      GIT binary patch
      literal 900
      zcwU8)ZBNrs6vzLURys;IVBjM|hL3X^o4xXd3kj5|(`6-NSqQ#p?z)><Qd-h=gs<gO
      zG$#51{7}YoZ--`RpiO$uJ-z?mx#xfH&tKnu0I1=iff<IiVKlZKx3j%vzihg@wi8FG
      zI89&iXb_6TfX=XZ$WOQ(@@Qzg{X^lW3})N)9Jk$V>~|T;Z(HXedm=drd@*4?XIL0z
      z8PCsB47s`=22qf1GH8`YJqF#02f~2$@0O-%b6_Y~xPn>2wt`5s$47mUba_7%48>OL
      z^RUO0K+Y%0*}AG^Lc_9!CCo|2RSSk>=;^y)#ISz8hiN0I2a^v5&e`_Ml~$Y#?f7VD
      z|EJ*t*^t>d^~G@-#L>t=iDC6jkQLe9+VPt0p67OU8XXh!xNTt_WwL|nFnE>AT)lV$
      zm#N9b$ys=5?5UEai--(HB924ulb`H>y4#D#i7#FR(%|K3v!2Qeqi>MO8r`%Rl;mkq
      z#H8aiYRJ(m55c6_6B^}{)4pT=Bl7Q+W`VvYjleTf)v&0tlCkthxk(wRwW?oGtbRcL
      zGgkhp3#xhzI_l(ZMzFH=xQ6SBbptnP^(~5Znyo78KE+a5s8&B=<#FjN)~2{c`VTaz
      hlh?Gqi9FsYb~#f`*fQF{9aXP@ySS(JdS6i<{01iq!k_>E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/ErrorMessage.class b/libjava/classpath/lib/gnu/CORBA/GIOP/ErrorMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a30c1d8ed629ea8a28cdd542563130cbe7185e4a
      GIT binary patch
      literal 1769
      zcwU86X>%G!5PbuS)<SEYjwE77vJ}YyNj7or2uBXWI*1V{Amb<(Uady3Htdku!N*U@
      zFYsqqNmeDU%JDTnDwQ4<+h9=+Rm|>ozkbvGrhESR_xC>lT!(8S#Bj0dwUU`aaXp>f
      z$`*E$8&V3n!+qbbauWu_r8fW_-!``oxnvmixpeJ%nM>al-kt0%2KEiZ`Hb*<WqYb@
      z*IPV-;KvvSZn&PS))*$^x!25{@KmDAU}VH0k0Oj=3sH<PgyV_wAQ;9hjAMeqd>Eh^
      zCi+ll<U1B7F~wjtf@CY|Nt07z>kK0~*W>wC<ABRO`=CzN@tkm|0GrC7?~c(>HP>f&
      zFZULCQVc^4zgl^fj^T6fkYTaAvTUK4$_ZIbibl0#qJ;`IahYN2HLxHLHd~&fh{>)G
      zVixlj-p2w-=?mupSDUt@gnYuV(8cb0ipwM0;eN8zjUpAUAa3FV3h&9qLIO(+=dwD`
      z<BH*OZ?X$7J(Z>uM{b=H)e5eexXLi|cBF+QJ|q=t!dF_>`}RXSS+~7vvZSQzRohG-
      zS@;;A5UMF8p;&eZpWzD=pEJz=e_a;7#42$+lG}=B>Mr+G0ARQhKf7Z#5!fip4pGX)
      z4eEk7tWl(}rrYgiyD|Illr<!6VI3I?uX0srsb))&pW6+F>3C-+S0uYVsVKGMhJ{UR
      zF+?6oS5b4t;{CCDlPqqVpaHtj4`Csv2O{Fsh0k?Dge_3J_x9ILx>(vy=c34CIJ}iX
      zXpr7Y7WTC6k%sFDseNS&ckvy=pdQGK-SR23mG0X2YEnGX<B&@9wVL>zM(|~x*}}$S
      zhc{Jw62h*Kde(a9fb2pZ=&?OJ5Og#6or4@Zb7nNjfin<;&ZxhD3?crQ^vLx|ikyrh
      zr*eJ8B5$-LTGHX0uAcv~?m@q%=`cqp8P=B=-bDlh^fc)!gmd(#XbjP6k!6>@L-ZV7
      zI>q^=<r8`t9XP>-XKnN}t>Z9gy-n*5^x2G{fEZaOgE->9*uE}DaS0Q|O7{?E0(Le_
      zQTjR+D}Q75SIn*ah1p}wEgxg?7|X%q`fvC&jQmr?ULdvK>pI0(`K!<I^{TNHGoIs?
      zUbe}w^At1r7s&6QVt3Vu8ROrcpcpgAbLVc%`12WUuS+Xozf;5-r43X_gnJl<O{w0)
      zA{=T;jx>(2g(`JxjUw(-=hg8O8aRZ92N1OW(k{42;!!ED3KsYQKel%gg#Vd#nkUIC
      j#2hBx>CRi41hjELLhMnbL#$y!kI}wIWMj0i7P|Hydw8j2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35147ecbaab4cc41e77580760234cc170cc5b833
      GIT binary patch
      literal 6691
      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
      b__drxzlv1!3(k0l#c0!nkeJlJRIdFs$=ek<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/ReplyHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/ReplyHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..941eb2e4b972d5e491567682efbbcd6137524f04
      GIT binary patch
      literal 1418
      zcwT)}Yg5xe6g>-lQKMqyp@@ot+LlKI-_}=Y15``HG>G!46X;r_C9UZO@dx<$Eq<yq
      z4mvvHS7-cDj(5`v5!B4=ZqD7k_nv!lH$Q%U`37JbMigBPLsiGqvPNk(qs`}yC9T98
      zwO0$=s&F@o5W~qm``Nl9_?B3(oJx(m3`)@`>yNYg(sJG?GO#?uK|0eEmLpcIn#a2-
      z85j;dH1*Q%Noi#az2>U9tS|m)Csw@$Bb$-9JZF?1WlA||?`G)VYcDV9rA4_(RQrp%
      zo-@mtT&|>>X1+LIUNmyL+zb;>R~A+#UczfK#9jWv<4sYvD-4lawquJs4Bd(33PUJc
      zukbj!aa=(^1{e+(Y=;-UjWzBrTWdAWpcd-uR&B*{ZHYU^ka%iS=;6Y@B~4SXDi@~D
      z!W6FUR2ljb$-*;h)6!~|Q`OqmbPs8EM!``;Vi;xUsy~n69LeZ4xjVwQ)_FtNbti@k
      zBv$iPQ}B(THOUa(sBdyAF62^XhS5ZTRyJ4CGHXrYTI(WPaq~{Y6KPp`Ow`-?<CK0%
      z!6}@M;v&P~UVgKlU88zpm|=*vMIDJl!(}Pi75Wy5{Us$=<cVtvuHy!YZZ#U*A!fsg
      z{Qmko@zc^HtzZJDr69Kz^dS<*U1XxTN0sk&Q!tAxG1`=!XFQQS{t`SLgHDo8_>AWz
      zp9O}=zcKzNFXI2ZmDK%yr2b3S7St1C|B>DB#Bbf>X5Dkw`J65Ls5j6sQ!;kw4An0C
      zIELd0BSI)D?}?9l0ys|iKmaR*4+iid!iNL6m++AQR_Tp8&cCpI{u-t?x&t&164Gd8
      z(wh2&V;_8%A(|t;aT+IRR@w(JjFWyC>Y$EuqvJf2`iPPD@SlnH;ukkUW0b~u8cFqR
      zOC4*e=UZx`#acU=hI~>LjG>APc!m@<FiDXwq8Z3O)6P!6gcQbo785%xwkTH@t=CiA
      zm@JHc$KY3JtLpS8T#~%DadjIv3(`jL)@R(I4K=roxp5k_waZ0Ci00Q+>l^wAZz<zD
      bpTj^qen){YE+LQmV8rGD3O<`fKSuEvbEY9p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21fdb446625022d6950ab79c783bd65c917b2d11
      GIT binary patch
      literal 1442
      zcwT)}+j1L45Itk9C3(GIEITGR5^>@HvMjO~bC)q#vJ(qLOgWGg&VyM=Be99HyNpKQ
      zyd(vcSN;K>^1=g`%B4b8K7jAwI}m49iUM(ns#e`I(|ykAp5FcQ@B0q`te}>{m_W82
      z^xVqMZh6B!TiyB8-IZVWWLIxXuPIdumO$>Yh)Nh}d7!twpxH4YNr8n>wcYS)dl(jl
      zN_+K=bgP@Stw8(wnn1Fpq^vdtL{(rSjHL3k9|i)M+GXz>&+T|Y+dZ$9AGAvXc38hG
      z8+!kWWa`+ZvcRkw2;=#F#HfZJc^w9B%1FtErzN57Va&eI#k7*$C=9xCUmirnG67;w
      zAidV;_<^t21rqtC3j$UpY|4aK+-gri;CTlrqy?sGejv~FuGXdc%+z9ph7GTC!Bf6j
      z4>yx*F_w)4vJU1kV-w>=2gk9%GTTz0W2;Qr<f<C{lMbekHr^=*&taPU`YXT7q}tPN
      zqLjGN@Ap|jOJJre_3p5^tx;`Oe$P~s@w<o5NY2W~>({g-(_H>idFgQ1Q+SPMk8hWI
      zt(H_aTx4ym;>{G^U~eBqRXGf8sT{n8w*@A3xGfI`nF2@h)hF;6talx}2i|kiiy|3N
      zVKIL=@Nn)xOeu}`*@*=M^nrs9vB6u_;X~Hh{1Zr7y{DANX%cmTqyLA@W1p>5?76^V
      z{$E#8+1zzE>Rqk8hORVKHHdn;WEwvHt@1S|;nY*2cY69^xP3nCsfIk`$0PNhJ3ehh
      zStmFe2|nXU!Zx$WmzASL-`Ghwv3-VC;8`GEO~p}`nJ3x_t}>Y6{w!AoTJuY0j{J_f
      zU+InEDF1C*V2wPhcp=_3Nb{q-v)nP6(}lY@R=9`UZJa1rx3TyLB11|r-NNS-wnzE_
      zlru=gOL&=f$-E3h(2GOR+;5mG@yWdMBW#PhZefy3>r1-xKaU9Js1A@MXc4qcZ9b0S
      z%810Gmp8TZGquD@ja^1DuH;pm9+LjRej1@Gf583XE>=ECtlvVmxSU&^M*sRfynYAo
      zTr6hRjJcT*x#b5x_5Ui~!TK*FA@jTp;5w;pu=U>|i|?^WzlfW$n8JWySh4ZSvA{HC
      gRj^4E8z-^Fb%GMlu(?JmCpWg+sK$~%iupeN2cJ?g(f|Me
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/ServiceContext.class b/libjava/classpath/lib/gnu/CORBA/GIOP/ServiceContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7dbebf424d31659f954e4be247ef2d863e0fe47
      GIT binary patch
      literal 4969
      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
      RM3e1~YslYmv*xZJ{~ss}c(MQh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/CancelHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/CancelHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41b8e76477825343515a058c36f6bae6389854c7
      GIT binary patch
      literal 834
      zcwUWB*-FDu5Ixf^HpX4+zHhMwqrSR;7SuqoqSDtA>!n_46OD;}m!K7V@B{oPadNGw
      z1+jUUGxy#zXXa$y-d|n;ti#k0Bg|CY(8?E2_I9lUyLfEft(VuVyyI3x?NB%u!q<=>
      zjJL3U5(ud+>B?Y-5I0v!ghbxE5IW*W8%QEW=qX579EJ6B;h#C@H9_bvconBsa(o$`
      zo0o~;Qr;5g3jd9?$y}c^!m?TL{Ho>EtIdLI&krIs%XY8B;51-beRHLxqYncb`dR&d
      zzJWmu5%j1<IjnhZRXMZMAPgHA!Kiw?3B_$tmOKU7grtlF2n+2D#PoY#2JG4V(?Br{
      zemj`PtcDrFd>aJ@<}gp_R9(J2BuqP6Ps&q7!eU#k+3Tqn`W3M+qb2qIT*T^?bLU`|
      z|4SUv7w3#O&Qar&#Yl|F>@zwZIEg{$m{OM;=;Ua85*WJ}3Ek*v7Vk1U#+c6L8t8pO
      z=378l4_oNKwi3yF5}P7XHimK4djgZKa=GjyG7U_%%I&k<!5?x9SX6RLs%H5EFM+kW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37f52f82a02615e44ee0ea08557448413e4c5d02
      GIT binary patch
      literal 2441
      zcwUWF*-{%v6g@4L5%Sn5V;cyIEdnuG0I_737eK_eh+=F+M2M3pgVczz#Ymn-hHOuE
      zQpsQBDOGtQRk5JrD!-;GpOFtqa(iYBvXGHgHFKxCZ{KtJ+<RMp|NG}N0Mqzhf{)>1
      zQMcpC<&}l`_>I)^?Ra%MHx*yumD27_t`@i<p`D?>!KrSYq4Tn)Yt~hUws0iN(4H(8
      zcmQqalF@-qhVHbc^IP`z1~*pKjS^>2(&fBb%BqGY#@=MRwWXO1!|4`;5)`q>t&F8w
      zwwbXEO)oN>3rEuT)T$aUsd_Q)&L+CR@R|$-XBlKeM97)WE(VtJ<2-|}eBX~=hBLOw
      zjS%0-^NOXFbw6Hb2%5X5#kcEc2N*iG%T-=r@aN0A#dj=I!Ucw&M(hQ9bCVkZ453S~
      z7?$w{Mu<4URJA<MdAk`xcN@=}ab1$GM<ReXF(%;>!_bM2GQ#L4URK#<Ah4q{Vi>0k
      zsg(-XiS>B+xJt)`bIB(}gh>%0&M**8p6EA5l5Q~cz08M}HA=BT8Dtm<*PS`JxDub=
      zFfBvPTgifv(kr%=h-AgF-<9zm-gk1R7Bc*S&GkGL%0lbytwl}XiiFDy7fuc(<0`H(
      z1O$VeT`G%OqcTs4q|VD&5T!+nM9s8vS|NZ%T$k`6!)OBm(G(e~+J>Cnz)g~6QxnO#
      z8E!>8(zxC<s&l#}86P1{<V<dPUJQ}&s|65k?9+6r&Q?kXNQc`p&Y)Yu3PbPl^lK&R
      zSwB`8B)9oO0o*}W+zo3C=bIH|R(Pz7%KMCAFq~>uc~01ba2yNZ3*;nxNiEyxC*v!q
      zgj`iiHecQpcuk@u{K(UR#~o%|;F9OWE4GSD#E&g1@sN<?o{T}!iJi~y8s&H(x<?)w
      znnlGtdO|TT+tyJtRAf8=-L|KljYr+E*g8PVvLXNrRSEVBe+Ny2$#{qzhEooU=N-{b
      zsyZ>2s5{EG_2MnwoD`L2rfeH|eq9r{f3WU`pA>pwn6zwz_;u1(hx3+b6er8bc0~8#
      z|D8U32zXAwEKbo|b{)u`Cd)*5dYdcW=9%ap2>#|o$GB@8un;{X^jxARqMX}PdiIpQ
      zJ*9t-?HwZZ6Bek&M(J)C!#twY^b^#{Q&_4)pE*PyJVbv?7y@PXDTdbfaWUO?<yQ>E
      zh)Za2riRfPB5Sc=sD_EPM?N+v=AZrY-#@V$rW)Zhpq?UtEC#Sfe=e(-#JU3?av?l;
      zKUMQIks-N>@GQ<!6o$9(wnu4;#y+y6(bxgrd4f=s&^~yAInM?ib_Yn-kUA2(hr|Vn
      z6nzUpXz0UzlC9+6_qg#qeDU=$ZaK1t4~2L{9EI0nw1(w$>@V~_#hrB}vyV?iVruxb
      zhP!DoN5i=Td`=6>MhyibRZxobqKz6EaywE+K|8%|;#Nf$)#(s+>KHA0j5=_Q*p?hd
      y+t3?z@XlKncCH39<`OcGbl7dw;W6p(1L^Q1>F^Wj@bgP__!{3hsNXvKzxyA;r8*Y?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9bcc7b4bfa65d2b35d1a66e8601eabdf4211b95c
      GIT binary patch
      literal 3122
      zcwUWGX<HLl6n-xWCWfm>RO$j6l-6t-(bn368=#UF#e#xJHJyYDj)s{ynXp*38)_H3
      zx>vi{jW7MsK2M20wU0lbKci27NA0;YL!tqVACf!g-m|>tz2}^nzyJI50e~h<c~HU7
      zFs$WbZC%~1yJCCeT?b;LO^J=MZgDCnvSx=+28H2)o1v~mtwduULqIo%WBSOjqm|JO
      zQ%R;pEZ*L^TQgO2f?-~Zs;TC723IiD%iwO)2ZawVRB?FVoezcu91Bs+u*9(atJ-iP
      zW2jn6%_wPxih)*!>P}S?`*R~nVH}hZ82p`jN=f%BhAL%e(`_DCvkYrH%O=>&usAEs
      zZjsICT2|~H&xn*M2FXS6NT^rBdX8fmmNV2Cj!r@pl-LmlZ&CEC+1ZXLU(%{fPMCrq
      z)dmMzL!Bp-Q6-jEwBcBfNf{0|dk~<r((TsV(2y{ESdA(l*5Y{&8VN^HE3TPhSQs2H
      zU>!r1sdtER+mc~vFg`~d=_|w$Mucue$z+5^2&2K-inDEPFwI`9r@RBwQH*0Fnuq~Y
      zpNYC8I7d**UNH=Xihv~<mOaTc9jo+<lf#rwnT?xS$^R=HuYwM%v%(lvQzGFUQq>KV
      z-fxes(q?N=w%ZW%fQqjEsfse0osyMZ3@d|ePt2XF!l0_5!U{eTxvjlBwkw%64JBo^
      z4H|JRlQWw`y)yW2jy>4Rz@=G_tUE15<=I-^ynJeLyzaqk46B~*ilY<z7<>{zBA3?X
      zEm29vCAD1~2e8FDv|1ve4obh>96hLWP$!bQo)(HG4-RqkqK`V&I>;9CaR);Kt<qsX
      z#}V1WK0SGY%0F>ZOh~&oIgZLgsj}@XN~L;&<1Hu*^Yx4{6jRkT+0SznZ3@Bz;=Qqi
      z6gfnCg!wo(97CWa-9xG@?v7wNDnq5`b9%KHS2<4LB;`jV!_i_01)t4<9D5Zir5Gr8
      z`yS{tcV-u%nx={6#VP6#XNXZBYRJkFYRZ<MqmO%~#;7drF`DFa4F$(9bvAXVHyWUE
      znhva!W^YTgGYspWaX`%YIY%A8E}(0Kj^SO7daUx|eab!>@M4ncXG~Gez|1`L;sS$5
      z*F<1UnegI65~6`2Lm#osKjwHDO%hFvyp9>FNd?#Vlm_a`nZ*YDoZ}08DI-e5Vh6UD
      zcTl!$D8OZ0_23G_>N3tauHib>zlCC^3*B@XmXDhpUt{SE$YR4?#%+#o@GZka`=r=$
      zmGU)W8Gp}lM_xX6RIICz2Q*7vdX7#S%BD&M-J|D>l-Q$MuhhrhkQ?MZqk*o%MZZe=
      zeDKohvHs_i)JA)Z)|&8L_`>eLy#2042M$hy|4y3~SVaE|$rN-OZtNg=Cu&IIwh{bT
      zOe?)Pu+(w5ovbQooflp?joP9YpS8P}!gW|4YHcmYgM3<n<>Z5AIO-f<F-rz2!+)Um
      z*Mh5g)@IiuKq?DBs8}82PYJeLelFd|>i)ZE*yq|lg}P{@esc{Tp1X%Nc?A2S{-|6g
      zU93Lx;LgK;N!svRA<zm61so)@4q*ZM2-jhHksm^o=A;ZBwgVJ$Xu>8`Q+O{z*o+s+
      ziw|q?61G_6QzJOg&XX)T-RwZ?bZwi$$_Qn-wQf@$EfP{>Q6P^UeUlZePVN)9e<E{$
      zOH!~DffGdA5CuzN1CCqZ0(J-ooEH%b5)}&?El3sg+)DRvL%QT#TT3`{5AD;~8m4F+
      z)7UT9H|QqiN_BBqt^?CJ=E&SaeGkbzju$U`4aEa;^gl}S7=40`6P^hKahg6l&Y&4*
      zA1Q*C0)Z_^W5l}jjRmr<TjT*p??dbNXYRtFi2L)%`N#7(P0z<@@t>8?BplA;9Vx$O
      zpVi)k*Z;v3D*fl>?nOt7+gjl~KB6U$Pl~kGT1_%ZEpwhAT%d}*h<=ib#dfq%Y?r9W
      zO6YUw_$*?B{7SC1dEAKD*ltB^z~4n|6t{}>{ZLBZ75cwQ@-?FGI?;E7=(|b8+#>pJ
      RKY_j<@sma0&z7%W{s$lz;>!R4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/ReplyHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/ReplyHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d7f81d01b6dfbc7e803ae940f40639e60ef3569
      GIT binary patch
      literal 1766
      zcwUWEYflqF6g>mQmSt5aiVw6Dsn~~F@U6v1X?avDU`t4hiFN6YWlg)q+1V<8$xmn$
      zjfsBrgFni6XIlj-Qkrb<?99FAoO|cq{rT(bcL0+p_|e5MQnB4+X0b4xPR`{Pmy(Ui
      z(v@U^uU9wbxnXkQhi^}(iJeXiho&sslJ^+8qp=kRU#4zy4c+L~(St*N^f8=m11WOR
      zu*y7Bw<UiodvO>?{W!u9Y4cN1MJ{){>*&V-L!h{vUdW~kS%&faLE=)qU>MYK496Lc
      zI?c0Exp~MCe%6lC7EVEV%jOGiZIz2<W3|c|g86#csIC~oQtz!zpIoyXhS7Gs_WCNs
      z3aONabe*CUmR(^u7LDa!84V*@HS9{VxtmhuJgeh0hE)zDI>H!b(1pS(IbJ*i%LOpT
      zFi@*ExEWsOqGs6Kmeq{_&ND>i8V?&)$%So5t3hki6x?wLK3t=6g#~}@T7sJd<fz2{
      z5kZLw(#<dy-H}-)TS%r?9Vv{m%$Oo)ue&l8ThWlfB|k1Qg!cE<aT!SlO+lC3YF*WU
      z8Y!m|oz!tfC8{ZH+>s^A)S%&-j_bJL<!_ipb!3;R?9-iPb-H4WI`Ni{+qgr?zO-yg
      zc0SrED0Z;!Qx%!gaThcxn!{zwiy;<07=RkCF3YA)?UW}&&l_P$s!3#@nk>5V&s}9P
      z>&MKlVc*kP#~kJv`aJYMx8;lG6o!U}Ivyd<aM(NEzL;!h5glvniJYR=sJn9aXzdM1
      zH7?d&QRcIj8p-}0V|Q6~Hb$wxx}knPTG5A!{{8eeLu*EMF#Z{VxbGXZr`;c*7e68R
      zp0>L%ME^&;(AyN6LJ(6pL2r693@34lEK|eUf_zK1i|j>$Jd;oSKu=;b{t=;fv^VSt
      z0FeU6={XrZw;7CVvdzC-ArB)%9$EB~ygtk#f*dX&k2n@R?x7}ri@S%;#_6F+MijA@
      ziZ$|4UXgfW3-M2wXxUIa@dZ~Yy##3re!<Nxq_#61@{~PC044hDz95EGjG?@PHPT{L
      ztNVE1v8FNI&Z^KSwvbUa)Uw2u+h%>-&bm&luZdL<gCth>KdcK>1;x7L#XtECfSIC+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76603214d104752f035bff0f0990887be09e866e
      GIT binary patch
      literal 3618
      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
      b$G>m@|DKm69cA}-;4k>An<XE*xF7uw3fqem
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/GeneralHolder.class b/libjava/classpath/lib/gnu/CORBA/GeneralHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..290badb06fc034f2bc2d010ee7a284e8255e7976
      GIT binary patch
      literal 2394
      zcwUWFZF3V<7(F+XhNRmUB2fAUw9qzbS^`B7DO8hCXmHbDTZ#x8^RlE1>2BC=O7(;K
      z$&WaWFQcO~eq_{fgqb#-u`{Ay{TKcLe}a1MW=UIYDAUQ!&Arcko^#G~?(Lud{Q4V!
      zlUVY?BhX$j%8__#Iu?yw)(p+c6erDMUbDPt5NNxTS;|C;8KV$MW$$P?+lxklUehW>
      z%!Pt`tYlhtCR@}ZGq$B=7UWc5_fn=<=6A2Ukw1QMIua}2zO7kWKAyKyWxG_i#{?SB
      z>xOQR3mgmX7#*4uXo#D6&5vDZR^UU6z^-6u&WkpI!#f=JqZQ3Q2)v}gi#-CZs%~gg
      z<%O(f%~pX2R5O<;&SflJ{&p7|?0J1rphK-AmL!pNijjGmD&z$QgK8a}5(c4E#Tt{q
      zyXye2B6p&F=)xfd2XR=S=NXZrMZI9?M!^Xj^P?9>z33C@dQO;vW9S#~6*N2M;%*3r
      zZpNfQg9?HOk;r{Zw`D7XH)EkWKf)OCVpyPWXIcu5Bf^wbCD@*XOng!%9+j06lJ?62
      z`?sb_MyF>cqpBaL(7fw%96ldsXBE7PbA+*=8zymzgxo)`-~wnFpR`UqQ(h#{;h?(V
      z*V%c?yf1N$g|=Pw;&s}<+0o5NA~ms`(@M5(8my#CCbZ*=G?0L@^=!VWfif;9;L(=J
      zTHU6s3}DT6bz4csq_6DvOJvy@3_TMw%XN7r$SKLTZ{3VVFQ!vhC#IvbiPV%IYE{`L
      zA7^LTnyhS4kNTW5(%Wg*3c<RbuHLVjseNqsob>B;fkSot>fUHSZs4XDZwqukFHXTN
      zyd&Uskj$FAjKP|W&lD$M(^(Pde<8dAExZVux+*a6Kb5!bzO;2tK^_^JDaR#SOFQmK
      zFS?0#$BU*x>AIM(-s>SHm{*`XcV<!lK$B_j%ExWg&&O&(&ir1G^uCQ0*9>jB#3xzH
      z`(faojN$D#xcLrjm`jS{F=$l(j9IpF+9ln2>$bo+E)Vkcpey*<&5uVulKfxM$T<;k
      zY~rtL-1qQ%|Iiwgp>?$0Si{~`1ct&K9&^KkeH;U5;CO}O1lg!uOJYA)4pa~GyB%<5
      z2U&#fM+Z9H5`Qs9o=%4UK-V|u2>*_*<j@KN!z<{i;7A1n4>209VCX{kw`h_(-4&eZ
      z{_fwuAEGn4j#I>RdTJzaW)-iD3|BCAedNhwCI?1w8n3w!&!Cy(EwX$U3exC70ezUq
      z09$b!cNu9gri5|a!$nvmvq&OkhsHQnA;21qB%+A1f`Yw>Gup#UZKQsVvonmkgv*?b
      zqXm;lI0|3E8!layJ5rRkb*KbBrG^8kRa^}}sfpRb6TpWQ>LboS-Xvt3i(n7`-o&&c
      z<P2ur%nw{42c$$RxJJp|+DV}%R(Pt=A!-AB%9YR9#Lrpj3##-bj^Zoy<7)@UP_;r$
      zi2<saW~SB}>-HLJ;5}qqY@-fVBA3`I$UdsEZFJVZcd{$h7&p6shTHD>Ph20KkQQ|L
      zRZv*N9d#4ib%-0`H54DI>oDZ3^u)>7Pn=I#9-!NSA86Sh$?hla{ER{T;?zIlpg!T&
      U4={ewvFjjjgk&c<*begYe;aNVc>n+a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/HolderLocator.class b/libjava/classpath/lib/gnu/CORBA/HolderLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9a3bc177b4da865f87b546cdc456f0d4326325d
      GIT binary patch
      literal 2952
      zcwUWGS!^3s6g@9#JdWeE;dRO4v`r|KEKS{pt>Cn@aa$5%l2T`Bn{Jcw5KrpNxZ_Eh
      z(3O2FKL`XWAVGzMSU%DgQba{TLh1+nA@Rc}pM3Jk2jadrp2YUJ0$KK%nS0)S_nv#-
      z9sm5#ceep-$6E?280sg@nP`0IVDFx2pOs1JcEZwB$FdcyV5pl?XVqv%H7BD(6H~h8
      zFequs$}#Zq#IiY_QFFN%Lnx=8?(-PI9xY>-hO>*IvaNlTVMW|Z=?cOOt4fwugJESD
      zRR}1kV_0w5lTmAWG9TFi+b}gFt7cr+3OGY^F=co@s|)WQV-2NN%-Cbjd&YGPkz!-7
      zWo2~L^au?M4aJ0bTD3iE6GKz6b+0uuky+ZinW3@RzCUBBj%VKBHyd+$$}_k4BJVes
      z*52z2EMb|Gp7lP4wafJ!(j0wh;bz~a$+TrJncI9RB^?rd$#X}M=dnUHwiGqdSn;~8
      zKEG}wxpq<YZDA;)>fH=2#mo_rn)oKYo>K6TukbRB0>&dghSZ^evBMV=wMK#cabI_o
      z1kuB=(N8EL?efJTo1lQP+t=rA8x>G`eW3{D3kZ7|Hk9q;0?vM4Bx5CB`h1a$l*;;)
      z&&fzh!U>-fw-pK~gT83TN;otb5{9V{&P-3}_OME7(4Y|`DKo0thPcl^4D`s!5<(@C
      zVLXFsnl4V-psCZCxXVbR@f6l<U3GMCubpj)@>3+%USi0S8e(ISldevS%UB49F|ObU
      z!@BZb!Z?a!6xS)kOwqY*D|I>?A0P|)IRRC{NrpA$>|snmW2l-{Gc&rJr2Qe(fV@A8
      zNroCzKhtmK9M#mwx`s9>9ojJk21DzACM5DX6-EZrLMY30bkjNEP%d;{{IPpVDX?hU
      zWywcOeJ)G8>ZuS+oEEjQMe+q<?VHo|tYcVatbJ5$>Vz?aS%wNDRhog@9<d<isN`<h
      zLU<166r3#@J8q_NQC-Up<2)`b72A7r?P&A+^*<>q-zA3CWx{7*<hS8&%8<FAp;oh|
      zvzAF(4#+kLr1Q<U>3_5sX`)l+Ys-p9Mr%$S4`0Oe9!^>_wx;hl<N+!=23rLktu%To
      z>3={4n#5a|uA0OgCagq|K4LV70QQ??fwk7Pe2<zNsJ)Kbx>~*}DKO0Mkyyi5OAPY0
      z603Q=M1?m>4Dg7=X1-ovfNzwyjd^oDZ<QG0n*>(z`{ga?4+sqA*$pmB$y=LvyTl0Z
      zl(>?2CG#;xuOmwI?esia#UB(vz8{uY!ygqG;E&1MdLEM);5#KM{0WKGe2>H+k4tRg
      z`vfZdNdZCLFQ0NgATh$9PF|B@4$<!wY^L8MB;q*gXaqFi7+P=~ZFJ7J;UsoI#cn#(
      zeb9)X!WeY2&|#*Ji8N+mPy<ilWt_rgI*#vP8XuD7Q)KZKY<!IzZo$D%bZUMf_OCdD
      z-!X?jFpod!aQua{_#5X~1<tc-ItX>R$Qr1JTQG<NGD@na7@2N~5hY}VRUJ2Ra5;^D
      zeCRF-y95klgs>W;6tvqPTd6-*(6b92i#W81<2`IJLgl!974-y>?mJi|aS^E>ksj>2
      zgQ~8D$QPog&`saf-j~)-xh{4#lcwZAKy!ZK!e^*W+=6+y^Cq%C5I4uqe2e)+r?8E&
      z1=*#YB<e+MA*lssNQ$$BZZ^GC3gB%j%DWWzd(`dkQ<<)y10T?ekEkFYV*sBZiL12w
      zb1Kc3<Y9s2y+⪼2ge@O6-zn<N}_@3xq)`^HID=S`45bFVR&6c|Sy@dxav>NU2xx
      T8d+yayVvoC6#7l6@a2C2w{`pO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3be7042133e0732b0a4487ccaad4f84c5f37afee
      GIT binary patch
      literal 2363
      zcwUuNT~ixn6n<U;Y)BUhv8A=8HMB)S(h~5ygtiux5=}`Z1w_=iz)M(6cGJxU(K|ot
      z=!{;fV@Dl(<&1hkXKY~XOfS9g#^2x{QJ;5{HuBY`H~YSO_MGRO=X~v-|NMRzz#vK*
      z8UzNiRw*``njE<pOQa@GjoOPcE!|?K;MhxMPTmt_7VLb%wxs21XcTB)F;<OO&akqv
      z)clHEa0LPjwzVpqqG?+K4RZ-fEW<TdWu_?kSy0eCY+9y!UceXbn-*wP*a7&^s-pz~
      zf&EF-k`tx;ymYP_^EoLHOxg=ZZrX56^<EV=y31x!;Hl)Jh90M_BaKCY-f+@(vN1cK
      ztpXHm$5rUDgjFcHX_spGc;9pY2XRP4r@)Da>+3j-$4Ohc$dq!nmGzh=S|D&#hX#KD
      z$MA%P;{sh<;ii(*PRncKGFOm}jvzt;;rfD{^BkPe(S&AZ-emeu)nh2&cWvHH73YC)
      zU$R!yiZrevEYP`KJW^U(l1>1<Xw?uEIJ8s2%q>dCk23;Vr3XR*L=aPD9uPPf-swuE
      znkCioG@fCVEF&+KVq%x56x4G%p2rL9D5Fr277Kc2H_RQPYGfY7kd7Wasb~x<uyX>Z
      z>%>s><9=Ka&_lJR4=JdN3TlMq4v+3>sq}_85c2|u_tN2KQ=sEsea37jZ@8{p^n+v6
      z76^qVDrx0th5UF`;232ocUd~2VyU3YEf>|t;t=H_s$3=_C#>l`$8_a`S}Rp@w+_H-
      zNNboBI9Z2*j;omB1bALDl?iBM5vNt-&*+%I>jIJbe9tA+j_}zfE{~qNEc|$r{Xei4
      zz}t97Lxu^gr8i-@GOI?*Pz|=vwa4XJCAoeq&@2=VKq9MQiPftumP?7$mDuRA;dq-R
      zl^)ZvtN^sEbSK!Peyq^AkJIY&)?6TMmz)JTW~xQy=UVDlA+S>tmL;9hoKY;wqK1ON
      z@ds}&4URzT79FnL?OLR`W6PnNljP%yZ{W$Dz?)FZhi5Zy+_Ze|<6DfU;Mo+}fPTv}
      zXsap#S?uRiuPC4$9Ue>&k5!E?Q@ep@M<iOtf!jC|iEg6nHo9v-ZC(^>^!z>nKJWlL
      zD@Ij7bvubuUK||8D)e7y^eppt&^x<<zGU<cBD2BM8|aTje#4Os43_b18E4Cg&rs0)
      z2hOVF?hhD@2G1+0@7z!5iYo2yu6|EHJ`-&ZmGR=tCk>*@)4uud-&GMAjIQ4gJHiA3
      zA2RHZ7~03&NY^ohPjLaCv4KCw6z>MUU>|(xQ3_Rpty1!{i(bOZq%urOV|-U-xb!e`
      z<Moky<x$85lirtI$bH4Iz9zYENbXybyFqf_k=*wrcZ1}9B)OY)lbb+lds9Rel`^iV
      zvwIWM+neHNn*Ku2U-xK=S-e5W2K6_nLL0PGT0LI6=9sRdn|O<<3eNMv`=Yv=mE6_%
      rR@|-gH-3wAvHm}IJ@?)9;9Z8J+~qvGJS?6;-fUb$5$gA9!$r$~GJ_*F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffdb1728b26aef5820dd42ab4bbfa5c1c120c65b
      GIT binary patch
      literal 2149
      zcwUuNTT>fl7=Atu35i=Np&&icAT)$Sn_5q`sZt05Qz@wgLBtxC%|}=ayP3@f`UCt6
      z{swRDjD?PjI^(5x9`3wWXB@}z7dSrOX2T)SGG1iAZ{L02_j#Z9lpp^6`da|6pcF)t
      zKyT5iCQ{kCiSa}xJ2#NB3o<9&O1|vaYi3CX(IRkmL*LR9CEY3}va1`?a0SlHk5A`Q
      z*~xT1m!8iFhzw;Z+p4&_<u2%@s%$2R5C~Yh<Jj8*H)o!YR2Sq8d$Vj?(sGjmE!$>6
      z3WP0Lv|UqoWkDcz$kB8r`yk;P=A^S_8j?Y{@{uwQ+%YZFeMg`<KD0nzN-vCNL^QmJ
      z_8`s)-1xsSh0%#f2m&u@2qCO)=QX^5a2OYHIfzRF7aPM{*B#GkHaDfA7gq$%6&Y@|
      zT(%uDs()vM@uB5RGhK=hVP4kIkANbtyXKb6SEQ@NS2e^iNU>pCThghRwk6Qy*@=)q
      z`;2MH+3M!1bmsNd5|bC1u?@YnpgX2|_k}I)x=F<7DMeuxLzQ}<v~r}*qd$JgEHyco
      z7+<Zpj&8WAf|IezRW~`b5N3zH8pO>b9d?qghS%^qqg1Z*(lYdNrCK6mMXNtP)POWm
      zU0aim!>rYzR7Kv@a2>Y<2IDifQ%u;KMc+gPt_UYQ-JDC1&7^9Epil5<3Qpw0#%>6!
      z@6@0K+FYA(rd4FM$>LywYSLs7ciBXZ;)$wRDoCdd6GWZ$CMRmJKW<0E7{jD$+_XSf
      z{J1}r@i9zmco!VSfL<<3i>11DShY61$>Y)Zu*o*ON8HiqBB$;U?tSHTw!v8)_nFR=
      z<pT|GgA>@g?U*i;J@A~)$yVKZ>&#;zhz|s=oT98@5g!V48my};)2B7haWK_9A8B|W
      z%L4IdHcw4?zk5`C4>f#(b`mp6c7<DV<w!9zTtSYdm(nbt6Gk49APmOoX_z)gE&a%l
      z<&(SVc$6IWoLzMcIpuY18z=R;awVW;EK546l3uCEN)RTicVwWsyBkMZpySw9Lm!up
      zTG%Z(k5&Zu7UWwK+IZudQ>$DpIq%eP#?usPi}HDvZ=ch;iRbw6E;@$y(7CjWt|#a|
      zxb{57g_+^6&>e|BL7%#eJi!3Zo=ChV=uv{l9_$dGF#-ci1p0<B-{S(7xjY|Ykcm%V
      z1-GE%E><y2t?n8)Mli~=mwWRX^|(j577~7lE7VaGyGM3#<Gu=DbO&!JTy-AcMu-Uf
      z$Ta*!qCcYxzjzqYnzfIiZg1f>eYc_mN!+2eP`&P>-GkcWwA#biQe=D=DTTO$smQ$@
      zs66!WzJu(S`?vv5|5p!7tJ(Tkg8ez?`~A#k5hIISoyC&RVu`<xzks&5hdi^cfA^SH
      zT`cJ(=Bb9#>lOAlM*Tb4{lTw)^6Ou?jK6Ue{~Tf(+h-ah(}Ksek4y{n)CB3py@sNf
      QF~xly8&LmG0-qxEAGlNq1poj5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class b/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3fdd4a89fc76d25cad274744fb0331640efb8ef
      GIT binary patch
      literal 2834
      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
      UfbZ>F`vE`F-)&<)ik~3<0ej84DF6Tf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/IOR.class b/libjava/classpath/lib/gnu/CORBA/IOR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b67542dc393b7b21991d6e0c395729ca284195f6
      GIT binary patch
      literal 8912
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/ClientRequestInterceptors.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/ClientRequestInterceptors.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7a849ec2865828c55eab6c87d38e7afc279d0a7
      GIT binary patch
      literal 2096
      zcwU{ATTc@~6vzM5Ru;-~D;F;mq@vgsWuc&mAPN-((|~|tf=05mV_CB7*6kKF#uvkj
      zAHyeJB~c7M@B#cJCVmI?%(Ap-Y$>GK%bYWFe&?L|&-VMTZ~FlHFeSmmprnnQ5}%zP
      zA5*3cn_Eequ}w>f>l!!gdHyQLv-S~3R)UYAeofs_6<syb%IwM-PudbH7)DJit(fa+
      z<&kOG>Wa?G2{@bKmTGIJk!6szBOr#sXNl899A>B((G1NVW#|eg{$JlbPitA5$TUB)
      z$l!~cDei|CH8QGD%is-17X7G4KtcmU=-4PS8qvfMOmn+v?-+){ky92`1%?(G5-J($
      z5}Ltha_cMHdMpAk1QKRa)fZJu6JyutvsX1@_7!PC(KM-n)mEW0hR!mY$k1T%B-b|h
      zGJh@nw51HO@JXtDX*zr1pEwLaY6~$$ONE#;txeTRxiPBIi7OH=GYp)7n|H`)LpwE2
      zqg3c<oG^C=rqMOcP;=M{(_ZD4Na~u5s0f|+SUjV@5gtXxb>XSXawD~zF?C&7V={V$
      zRd%dap}HF~`h`PEk-;*Z5VvI9M6HC|42^}8IZ@aKpP{akAezFFM8UscTbhv`7NQ@O
      zaToU(DjoHzSyD~oUvnKJO&!O532{>3KQ0*)7@?$S{fvY1FPJ&%)TAba*j`j>Jt7W5
      zq-`%<XXpwDiPQI~lHRM}r+YPxrs1I<P!s(MIoiF8x-V$nA%h2J>0V3AK_&Pw2APsP
      zN28X51vrljfb-UhAcbRMkI8qDY(5%wIDl2Mh#2kOJKG3EKchJq>)yj954JokD8~CA
      zfB!5H1GE;HqLd$^fu3zhIMj}VD0yl-x^R^!9-@a4p(hhUD3{+|nm<SU1>(;U|4G?=
      zlAGJsBGjJJ)Fq-mC+ZSWUzAPlJ&xK}nwlgkCu)+Y>9VQ)<@b7^G+!saL42L~nX>tG
      zF5RlvT?vQ0Bim>el-AfD1{t>Dd%DF~s|)_I<D7(g`ac<R6KJ6^uu1o~WPOJwdhfvd
      xBQg)UNq8s;ffh0!#)ylKIb%9g(Oulx#n`8OX%&wBgA++UnBzubm~>`6_yfh5$>9J1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/ForwardRequestHolder.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/ForwardRequestHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9f78ebfc5eb12ca2dee1844980ecbaeec0192f0
      GIT binary patch
      literal 1327
      zcwUv0Z%@-u6vm&+y3N%J2#SJ#QINL7RpU#H5l9v=)0wf%m)LDLqoix+<rd<%(nRCp
      z3qOD#%6M*D2P`h>Ui9A6+jD;BIp?1K{`2z}fah?Em|?JcLFDY#8#~+1ejvH%@PQ14
      zQw_zLE4mH-DdHz`FZ8=y6rnN9AG@cn<GVr6ske`LM;1|FSPezb3H!a2Gzf)s+dg*=
      zq~LB}nGE?;*N<r5to?I-pSn#>yv0y>=>?vA#gH?t7K64McDarmt{EsnXPB#b0e=_u
      z+gvo0L<_aB<N7UEc<Mbp)Z~$OqLOE?my$c?G-9n*2@E$36mf;YP`W)OBrZFDNUi8H
      zY@8#<nzbJcBAIlIP&$@zr-&7XXW1p}aeu&tfxEazB_|0R*%D4uC{^RBScbJMY`Vn5
      zGvP_<f;mx4J(A<)KQ^$2bxM{7H?sv#Q;8a>LKsIgtY^ZjtCXJyq-Vvn#v+<@t_E~V
      z$uAq&gr!C=_SO%=h*VTPHIB>w8@P)4x3Eexl%pq44^yK=f2*=-+G)K?Z!h96bZY;A
      z@s*4j%+jjU4!nkj9n6tsBu<#eb=nnRAq7;)Q~Bx&V3)sR@tiVC$$>XSsZqq+n6#95
      zrzB<FBw0$t5^kl;?UY%v%R}70giM6BDCENhTxo<W;XWS3xQB7|mvCkK8y1InG>-d7
      lIClc>2{vM!2`j}_(w1pM*k4AZLVR{~p<CLhTTf%J%3lIEJD&gm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6eda9e7fe0221ac8e3b9713b7b0ab4c315d7a81
      GIT binary patch
      literal 2605
      zcwViQ-BTM?7{;HIYzQAqODUicXbJraP)JEXYzeImq1DhpC?K>}CbNVkY$w@el3?pN
      zI^$TK@vaw+j*cIrH(c~W>sXMgt=@X$Kj6Lo73y<#m+&E2bev3f&pCU}`#!(-WB2Dj
      z9zFuli)lYR0!OmuVmO`}8;FGyW=St(^o5dD2q#iw8>U4+6oI;%+ACT(r<vJsYUZY%
      zDfv+$aMmhh!&W{U9<>T3Z6>GhY$km&eIm7>7qpULnMDEB*x*8-`$ls2wxR+R{f23j
      zE(jbACAX&-)3ZjgM1S1hF)5(Lty#SqUev0n!X5!{sAIAkb*T4apFr@5R#faqgFt;&
      zFKvmCKseO#uK=nb(4@kTN`bve!_-F>^D}y3LLQ@wq?OTflUl)$b9YfG%^UP|YzN#e
      zk{F_z!n$^WL%Rr*K!aYC(v9MLI%DM*EK@g2bQ%gh8E(#Em}}66c0YmwoliVao~mfY
      z0Y454>|d|4OSk1i)(XiD8fUfcN`rtf_)iG<X9-iVUX_}<RCLIkE2frbEE_@{$#qxb
      zrGjB*qp~)_Do&tRppr?B=d>c(_ix&3FLLWioc7}sleguOiZke@Z=N5qUA1bn+5%;!
      z^O~t;d1ru2dO9=DBl@g>FO(RUar2>1#j`l;N54Q|jnv6kYG5cG8;p%kTpFtcYrb_o
      zH|cW1^x3vK&B*Dq)rjJvtnrvYW9aXkvg)IVs~E&3fhyTYac!|kt;aX+o|rFKw`7!~
      z9ow#YQ^TmJqNNv9BoHD=-Y{jQ)w#sO4se2ys=G8U*_oYjcAtJbLw(6@GR_=&EKQ&}
      zxnmf(rEx8=TLRh_`sYq`USDJSoL<n)j6R{~7jiTZb+a&`;wr{i0j_ygz?uJMP@s0r
      zhRfZwecq(omsDKC0fFjqYmtU88?xmawlsB*3>JcXcX;{t@n0`rA$+6zIj%xAuQi+{
      z;NcIb?OcJ{*|m(l572m@3m!bh>mD8lVo(r=tb(UGYjO@CfM)=E)QlFI6S6m5v$wfN
      zo^1D?UqVyoH)w2$bgkl`2TM?<?s!CtTzmBSpTFI=<?TZQ4!J&?I0vrqn&RqJG;$oo
      zr0u)Sv0C=sjw3iq3mzQAF@$&*vU^<>c^59|?O#Hp^w=C(MW=8?2+{0{_}vjv$G7%o
      z5!1YCT+L9(G@Z|H2td#k;UTniEdy{I-LC71JqIc~m(jC~$XDf%R@m#7ZAo?ZxR!)$
      zYWMuF1g+qG)O%qGgHmT}<R|z(#A#>zBYe#*t2pN+OM9R49irFk&#&OQK3~8WP?j+;
      z74X$xet_o#zQ=dGqSYl`bx4CaTqf<Y{oUf~YfQuIRPqL&zR9q@#jpPzoWt9=h<8{3
      zx0sN3ZQU0fZRIqKV#tnw99==u4*Rej6))|yay-Hk>SYb4xI<PW8)x^VT_hd<zew+L
      z^*xflPwgM@=|@!fF|~a{(oaeH8A<O_=NCJWzQ|H^NT+s1dac|Pzi^MNs$tm_F{deP
      z(ugybq^r0td!%h-ol^-Y-8QD;U@DI{^w0MWW*Z?lW8UNHm&CkJ;a~IF1EQ`VjBokX
      tS;cugB<ei^{9t3Aa)gyJhs%96<o4BJ_PB)OhmTezoWkcfAj|sYzW~GsRAT@D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/Registrator.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/Registrator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b2bea62185c463551fa931ad04cf6f5373db5f4
      GIT binary patch
      literal 9169
      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
      QhMZEq<|*Y}YL>kFmuwS6s{jB1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/ServerRequestInterceptors.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/ServerRequestInterceptors.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1bc41867ded6af120037d6e743617c8e49fcaaaf
      GIT binary patch
      literal 2123
      zcwU{AT~8ZF6o%ii9Tv=nfca<}K8j0AZBtlq(j*i@OGqeGRw&R?iB?66nVLmrmy8!e
      z6y+w$O@BtNxD8TEL@)9K@=GH1KQwt~*<c#g?h;x1G3U&@&pBt#tY7}~*9!n+m@^O)
      zuuAT(HM6jEYucK3eW{9a$M=-AEY+S=OY+{XtoUaf6$1%@)-8L_w#v3!vKH32WYIU!
      zATZ^rlI3letnWSL+v{Z+MQ~w9D%*EFw<2IVXFvkie=fX_;)FoMq~kjNl)zx7@Zb3@
      z$&yp?N#^|Qia=t<+mK1banVE*S_I;m>`D@?NEv7oNdK>jiFR}d^pvDuvvvaGne2Ne
      z)dYbq69yUuE)^VC-re0^m+A*CAdo6}MZ3IWD@Tt*W5VBb$Q-Ltf|_BnfX%9!nZQ7V
      zA`0{?S(MJ6TvI2KYZU^VqFgI_T(j>plziqq$^YgBTa&!Aul>4345S5e^(1CJb>CJS
      zp+++X@R@;61+Jchd+IRJi$2!TVJJK)=ZsxIIK1Y$U++{#hxLVtoEC4XNOxmRzD-fP
      zEEB`pl?+^-zbTbA=S_@O%}VZ+A87NJCa!3+u|Z|!1-2U|uA#-iR|4(Tqk39LrsUe&
      z?2wL3wovsi`^s@k6Z#ZPnfMyt2sE;tXUcYkd)NN2xq*>WZ{fCq8K(G-%fuZ_GAORU
      z8=#WQ-Y#o3>*&txtJ!-aS_f%1dz{w=UMb!4{9rZmy$MO)n>m_Cj6dLF?m5id&=D^E
      ziOxeBV)%gf7A^-<NMIT!gZz-Au9F4$2$zB2ts6a*6MC2F`<S)_NBsd{lNPPf7r%Lc
      zRPGOS_T-0-@ktC%VxmWnUp#&Nca@mpT40VLe}^_cdr=6e{U<7?)IJR2b5dfYXOQJn
      z=thXjAF9t^B!8LwMe=`)%pZ=<AF0n@CI1)lSIPf1GJiBWf2=;gNWLV$NPa0YpXVoR
      zs~Xg+^{Hi2T~f=W?nI{Ygof1Zu$j~G$pdt1N_YMk*98uc`00rd-68nZVQ?l|`ByU@
      z2GGSZaG&>wv_3)y-}~|SOv9(cAYu$cqjkeiU@}DKgE3E6?g%%JF#YT_wT8g{d!S^V
      N%n6kQW`kMZz5$(s(q{kw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuClientRequestInfo.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuClientRequestInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5dcc95643c3ba53764a54f28142b769b2bfc9e8a
      GIT binary patch
      literal 5483
      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
      E2kP0PkpKVy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuIcCurrent.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuIcCurrent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7664a351a1ee6ad3927a1c86f3cfdc2870c0f9b
      GIT binary patch
      literal 4277
      zcwUWHTXa-c8UA)=k`uy#5+Kl&TY%W+GU>F~(wYD@2_OSQLYV*!QO1**LvmnpW;}By
      zO~AHRv0ky>#aJ)ZVrs=UP?$iumT0kvt+h+n@<AVbaJhW*&E;~netXZETqkX_l5_Ui
      z`@eku_y7CfJ2&5X<qCj%@wSE{fi*pLCfM4(yQMi8vR%`OnJG8v1UVauwPqa0v|SB;
      zfz?T;Cz$N(@nlm;$2GbWX0W~ckQsABeW`?o5`ndOv0a|PWTT!vfdy&Pv5drC(@9%N
      zdrxSyfY>fDuQh3>UBh<w8i|ZqjNFe9@FksYfu-RIth<s%kb~&G(fgVNG`H6=jd)t1
      zB7Df`H-Z`0N(8qV>0X6_5~XeJ(MY(xBO<W4D?BxpW_wUdY=|W++j2M2T}|y?0e@>U
      zZfaN}P(DL`4g_x3u>j=)w}ma+Y|Hd@n@)%HCa^G^j4?WcG4k7+EZN{$zoTZBIBNHn
      z!H1PPmSK^GDuG1>VkyHatd#E8>X?t)<mf{>bj%}Qx7Q*C)#3L~DdR0M?5LvEAGH*7
      zHMLzi@)CyK6O6cyW%o2`2rymKr^|3R?$HnwsQm!>-ex9JrlYgu)(I3@ai*ZAcBU)x
      zp31N|YHKE~b*RKP6-t?;YZcb(_%I$2cyO{-t|*&k&eYDFl14tFqY(t)Pg_S!mH&{O
      z-l$^}9%5-Q2xl;25?py6xylNsn&zSztr}WbzEc)-Y{nMqTI9nZ8v;wF=!U#`8u%DO
      z8n&@+X0GbkjvWMMn*;82-n;-b?3_|6JB?KJ772JR!f4mAOByKYG2I>JpoZO3(wU>T
      z3=gA2#~!fiH7nhmu=;Z>?3dUc(b0)TG~t+i$$nE#b?NxH67Dt9Z3>xiW!cZjo6?FU
      zow!WA44@DJ)HbK?-0={&R^$#43mwT4o#~-=zsyvx4hx3_=Ejn?Ygl%gu}+iESHS*R
      z?5Jw$ld;+YcNWr|IVCWMyhhWBq?=axEmWtHUFI<j#y>BX+Y&ja(-Z1JkwE%&JSu_s
      zXkSD592~)?H5?`Og1tk>V|ZMk%!);bC8DZWu!fJ|GdiBcXSo!kZP$z%wj!ps0MI!&
      zhNm=qp0K7acC_xW?6{6E;ES@?9*)|XM1t{#3yC#JuV2>j6?~PYCh18zR-fgvrlM|4
      z;GUYoYSR&Q45m!kfoZP-U(@k4zAjrFX9bqcu#p#*X%zUTYzp_00`59t@z3B6DcJSr
      z#u7=}%w<q&eqTotDGfgmST(_P>*n3TmdwF}renri<4$|VWv42`5LU{^k97PPKVhk-
      zO}AZk)Fsp5@u84a;HNr%hUe(_QHPBo+Aj|}ftu+G6UVD^#SUp2eagfTey(E}&odw|
      zqn1sHXj+NL%AHQ+xUG;qVM=0oL6Z7Qc_6(f_rKEdB3@zz$>Pi-erQ(2lfBHIC8jc#
      zOtBPw-I;^DU4-9<Y^JJM1uD<C58#=NH@`DwK0<}+ogr-*kVh5oAZZO31nzpT(=22&
      zb}KG7n1+ii!l@Qpnm0#7ZF{5byEkvyt>H57E7Om-mW-8%n@%aNG8$>8stlL#syy(o
      zPwPtFnJ6=U3BT6y8@wiu>{QCM**2ETfM&7YBsG4k<8^u3mb%IOiG3cgYPiK(o6u`^
      z9AhwK$IStf+<vennX%*PaZ0$=C4EtOV3(%H$y{0!DtH((qjAIKMk|XXGvsWmC2u|D
      zlW!e&OV?P<ZRX=&G5oj#8cI2y!+Ty4%6OsTO-7A*x8eJCdBx(pj8Y4+h?0x>72sR`
      zl=?2C;$<v7tu!i?ToIp-&}u7fLwzw*Sng@=p=UW)Q8$Vebr-R!a}=x3VNG5AIaE)W
      zSx9KWC-{sIMwF_bROXiClyN8SQUEGYL%8fOs70OU;(lsLcys-iQQzr1kA}#|xZx7D
      zbXXbFb7Gz`Av;#igzyoiCgtkRVohh;b@{3fWO4sKIm+U}1^RQ?mK$%lfR73^`iId_
      z>A!%j0@o1cZ)0&~@ddQW&xadJDoe76453Vl>=TeLo`Xa0zS%G~jFN`2tEUN2LmWMH
      z+rzW8XB_f60tHVm4H>3l04vzu>v5Dfz{ju=k0XR9c)&eL(vPB>a)<Dg3U3pGm7(Uj
      zI!rzfc;QEBsfbn{Ag>1b+Q<}jBgT>lk?%O=BvB>~dYl@R_NlZ<LU!f|$)YDPb}BG-
      zRY5Oj(q!Tmt9K6ie5G`pt50+G_$(>R!4f?94}0z`&t2tIcZq!g$yOlG)<P;v154F=
      za^;-h>JUr!1Pl0?Np360-BymX!Q;kr`*%8(|MVP~<n}y1l||+n2Ez3>(9D_YvlwL6
      zhkcudu~vR(@kFD)(l3W+@VP9$l*RG-6_x(TF`rmbf92VC|5`^Qg#V5Dz}QHhuKnnu
      zr!J!C!qiNk<mxaZdY*GHpc<!G+b?qMCEjyKu$ABKcp3X}j+!S`Y;`K;172(ul=&9Z
      z!J~+p-)4pQsJ$59!FScp_+CC<A-R$@;(B2XK|6z`BXwDv2-ja>kUKA8h#T~owuW4w
      zKlH6<ozJhY@ULsg;@M+<QQ;3T!hiGYWTW4=zIYg`0~N&{EfEgaRr>4s%;FbWoH|x4
      zDvG7T-vSd`a+7K_*VsC)vtV9hlexk9*V(3S68|j(@doSk7NdWQH{Z9h6Mtf@{~5g;
      zJNS!YV4K>muE)S4)@zP|N^&%!YJD|3$!VM+7XdOPS@F|a1DQO_(RTI`Iaf@bbI4MD
      z6tY<qv1`AgY9r1ySwU5jon`Ar_FcsJ&WpIzx$w#;t}V-AEQ=eXxOr98R0;9?ZptS3
      z2WS4tCi<^Q)mSxNjaB$Py~|DT2Hq^-y`SEtm1^ZZ5E;huSpl3@2sHAUN08eS|KZGk
      h+3x;_wRlINsLI(KM^WvekfT4aT8cP+OXca0{|An||CRs%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuIorInfo.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuIorInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9cf539697c6c9ef6ce5e000ff317c7ef89b9bd7e
      GIT binary patch
      literal 2375
      zcwU`V+j1L45ItkdUVF8PFL4}j3^)k^Sx&szI5wbMa1=}w6iZmP%zZPGM)C$}SG8KX
      z@EeajLh;5o@DQr75_sSP_$Z2=+0`YA97t3pZO=^iIcK|jT7UoZ=U)I;P}VTSuuyTD
      zW-_yLd(%ugzVM2o?z^5zyD8U8Ib~NvgyB`!tC()B5_+cHBClo&4@J?}Fv@VLeVlbY
      zpBJj47b=z6kvI&K4dL0mnipQfcAdS{9R_xf;Z)Lf8a{XYJg+vz2!an|7<Rn^!?|=<
      zVb<j)8P<xmmZ0;x%Nb_-&S{m+Y|3NX^%y34j!6mak6yPO+rP<hD|Q0(V8lM4#XLhK
      z>6V0!Vayts#yR4QE#}8T`7&VOl(fzpIE@Kuy=Gt%Q&N%bi0x*rAiQ0fD~4&6&pfB>
      z&^p|V_y=}_;bJfCzyirv;*O<~HNq{G6uF^Zf1a00(z1$ft?oL)@h#uA>YiJ+CCP<Y
      zx?Q?dCTs5UN=1~CZP!F<F|Q+rxQ0cl(^Kzn;4<E#n))iF3s3L)Tu25zWVh@RH9(4C
      z>KTpHmd_U!=vp;k;vI&WitsH_E>k<&hk`OtwTnkogji}Z{dD7I)lovnI^NT;Awvh0
      z+Q9o*V~AQ3w~ZDJ49h>NQ{qObV|}3to|9-d4cx+q45$4AVG+cA?(mAB0$h%DHMDO>
      zPI!mHGrMkyC~o79h9p(wKb;MHge`_~DK1p8`hQ5Wy!b6W&76#(6x_u<4V3=n7mGCT
      z3DT5+LwQ?O0tjQ0mw26;)AB{FUR9bl259PS;9z|0h_dj6Qxv;lpsG#Qz^B*_3j2%)
      z-JoLA^JFWRd6A%~IO{J)wiU!Ft~~>J<QUHMa&5JNH)1b?E8BA&pBwlB`-I#WgsgSM
      zue}Tf-J@Di9lA$4EN~4Es1OhNAvdesshGK=235mA0Y%!kOO!C%Kf22s2XbmLoQ<Ws
      z&H+n8)>6;8O(Ne?17e~(XO^WmF3=<!rtb(Mn1hBfvd3v&4?)M29C~C=$&p9TX*uxd
      zDW~5w&d~1+t*Yc3q32BeG0w)9j`2$T$}#5RSC29On?ib>erF;733kYHm*V#bF;58l
      zc!PH1K|B^n4U~0}c$u;;5%Z9;-Xw0Rl;%{(oTl|KJ@xqSm|vQ2;q5M;uA&|g7grn$
      zfoF$9#}ck64josqOx{cmpAdPI)-rxvA-Ay74}3t0vK8=b;Mf5k4}lrp#aak=qX%y8
      zd<)keb>K#ohWZImACNK$mB957Dxua?6A9JAjX$u-(89+*|Jn!noq{w1=Ma+NKDI-k
      z)evYb0Lt`B`o1TAtP{V3+~D}#{`enGh~FQO;yFt3XZ<Puk-~mDAunIzD@Fe`^*{i3
      ZEtC@t^YR4W^k?Lk9!1fPqLT6w{{o+h7ApV%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuServerRequestInfo.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/gnuServerRequestInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2331a17ff6c4c9db7cb008c99860474316ea1c44
      GIT binary patch
      literal 7751
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/IorDelegate.class b/libjava/classpath/lib/gnu/CORBA/IorDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f7c29adc237208da0033e9288a9c9bd49df78b60
      GIT binary patch
      literal 7919
      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
      G`~DAdN80%S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/IorObject.class b/libjava/classpath/lib/gnu/CORBA/IorObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0415f7e67dc024a627cf7b5b3cada4035d597ce
      GIT binary patch
      literal 1966
      zcwU`UYje{^6g_J@QLGBc3up>0gaEaj5J6wim_kV);Nr$<9NeZnjBG1H)R8>0oOYP$
      ze`;sIVal{Wpg*e9v$ASzSs7;fLA$HF_i^sI_wL{S{P7onE3gzK1ZFI!qpy{=R&VJA
      z*DKYYn{{77N?_jgEZyC+!poNH`9`g2>OGahUaP5KT;TYS{if&c+YQqbNZKyfW5t2%
      z(pFv|VK*4`Vez@KZ|F_KvGlU<*^b4l@$0r@`!@tGWQxPVx#T0BvK4{Un%gi{Bymi`
      zdzfU<OtzASz_bPh6AEUd_->m`(=vP-&ESMI(p0LyuVD@!2pp-lO~2X*bp*~war8;}
      z&ktcJI4v+4O(%_ya8|(?Ivv8TVIJqmLV+wykCGt4pVyFvD!H>AbEC6YGresYR2sN-
      zqggRLTmFZ_l>f|bGtXj7AxUb|^=c$MhENi2IMtv`%b5Y|l2=>rICbB49iy2a#h9(A
      zOm10&j>`gLEyHUQ#zH1WbENunhsGfq%k&Ep%~WR8Fjci1GRsUhwsj_aw|5qprS*u0
      zf-eP5M#ZZgyUAu%k;hjGt`C*5N1%oqxJmbfw$?P-L@+btJ`m<r+`^iIRn{zWrQtTN
      z3MjPSF!tDXr?9T!F78pbZ!|k*X;<LlAa!BkVscP%4d2L~y)Su)tIGtwWkFWR*ossx
      zY1qVfvdpcP>9FB0#n$K$R)TnC>0&!#c__p|%Zi3CWa<;UHp^?jV2h}CeyN)+S?{)j
      zA4%m~`|W3*`?Kt4IgXDsJjN3_j@HmPE|B_n&7+E^s3|Z6&b&iaLmlKq@%V4Z4xSr%
      zb;3OP(x_#(<JHY|TTa~3{(LRV3^>soGk#-8U{*dnd|qee409i+oUaVmBm8?ooh0|A
      z+yRc}mR?~h_XaaNi@BGWI>7NRPUcd7;?z!33SQ#F@+&O-PW=Qfa6Lh5u%S{|r}w*j
      zv+iLL1ze=`Y|k$~Mg|B@S>za1o)(EH5#U$~ar_$M(0e#u<I?|vvPmdgOs<U6*v2v*
      z3_#KQP;^4M5<t-j<y-*e6MPy%(YedJF&XE#et_{n_$Y9w^%O#f0-xdY7~_Sgu@P&`
      zrVNem2So$s-{9I#u8Wl}zJ8562PjMzyV#I;y4dRCLDcb21CHlI$0>Y|NoxHNoCS7*
      g5Lbg_fi&Ge<X3&mpvoQaS(?s(yL2C?8EEeQ3r-8LegFUf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/IorProvider.class b/libjava/classpath/lib/gnu/CORBA/IorProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d47a20a749d97849edb145ff56f3f39dd116983
      GIT binary patch
      literal 150
      zcwRg8Z`VEs1_nb0PId++Mh4OJyi$E<{~#wveb4-&fTH}e%#_q3b_Nzk27#=^vPAuy
      z#JqHU|D>$c<Pt^(w)E5zpfW}VK@CkGB%S_2){G2X!TF^{$*FFcIjKO+NT%t53}Rzs
      ZU}Rus00Bmz;j9d7AQl5VkYr-u000laBL@Hg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Minor.class b/libjava/classpath/lib/gnu/CORBA/Minor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ffafd8421490062f337a8ac7894a295a23e68c9
      GIT binary patch
      literal 1262
      zcwSx9*;3mu6b4|40D**k-@5M`DcyG(OcJ<&FeLQ0BW#fvT*)KbDfH2L(Ff>5b^1$C
      z=G1rkBw5n=rSb1SKYuaC*4S2&^>H@dQCY=n?r&5pJE791$oe^(I2JuoiG=D@nuo{I
      zPdOXxNfl_r8Q<n?)YB?Sg-XAOD3gVT#~5e*jZnw7%`tmRia;7G>`|yS>$X`y)7#v)
      z%>m8^E<YaRtW?+LyD&khI<}{XJ!;Aqags$M4YjhJL-@R^&TMlS;|GZ}wNqcl|Hez`
      z+*TrvjgCzyQnz-Qv!Pwt!6H595p3KrBJNs@0UP>M1{UM)b5~Y)x#t9DWA2>i1+|4c
      z-XtO-z4b_R65Bt;*{~OhB=JO&+Ky>N(L6dzq|*%Kbu)G1CeLD#1C?ZPtW7F|%QWUV
      zE7padYU4_s=WLcts|JCQNpg|X0wURNx<nVTTw9oqOmR6qX_AWymN+ZBwd<jb0=M%r
      zu6<XlmPATX_(L2<ZsQdkZ%3wG9pFByJ`!^=pm$G4p?`)(OZz7huc2I1**9q}#!Khp
      z?Xy@S&^??pK@IJ$K{{xacS3jIuQ(|tw{&KFoF>BLl6!Nj_POB^pcuT&+iZ~yutBH@
      z^|2v%n79O&iAUg3;xTxfcmkdzo`R=|XW&`lIe4CU0bV3tf|iL_;48#e;cLX#;Tyy^
      z;akME-aEv1;d{jQ;RnPI;YY-e;U~naaE16Oyhi*Ceop)Xeo6caeog!aeoOogeoy=X
      n{+PS3Pr1C-b9sHv<yFn)wUNuq%hkJ?tGD)Fz4mWZckRYs&Q-tQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NameDynAnyPairHolder.class b/libjava/classpath/lib/gnu/CORBA/NameDynAnyPairHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..711d8ddf4f57f20d597efad904108aca11154d04
      GIT binary patch
      literal 1258
      zcwUW@+iuf95QhJ4oCF)wmKF*v&;vci4#YxS79rB2s!^i`(JB{kQEie{*vPSiv5WFn
      zAc2Uu-~o6j#H?-7HlpAQ?~d0q-#;@u{`u?s4**Z#6fwoH-1Q=7ukm`f>KyUDcscZ{
      z-tZNd!GZ5~L{NmrFx%s2+;O?rbsDXnXop1<7}ort>-ha{8a?oXkhfgn9EXA6ePuG_
      z&$t`WzFz<1Oai<w+axlfx5H3)COsKGXULVTCWE%;cZ7i)ZkW(vFwE4YCyt_iO9Uqg
      zf3EJgx!dG{RPX7b7QT}o7*^~5E{z1YN*VI9nmQP6nJD5KgQ-%KN;57je@ex67`D$z
      z6YZ#ZgD6aTLMQ`^xL3pyMf_L!K)3@Dn7EGzR8*o<%chf|EXrM~5QdE`NV=WVkAV!S
      z=F*ipG@@{_*mV;d*d(zu_%K^=h62=x6#O`dVKWm|-B&mqP#Q}mYa-%=&eg!}sI1E-
      z9>G$h6nh)TeiXFDzEtD2__txIs9ywYG$=WG^7Jq@FZ81+o2Hl6>-6?C{z9krH<+Kv
      zn8Gxz2JOHLXxPOJS!UvdS=^*u0p?P`K6xr%LjmmaSInPNrb!&A5#^8~>M>~{@lHv~
      zx=m@RBo=TdWmZ$BZkI>6dkL8&_J%^<Ucl*NoQ`Fz#JJVC`b)U7{RQ(QJe<Ty!u77e
      iZDBjcm0+c~O4>4Q1pCvNREW>sU+9)L?$+bjtMVHW8XLy|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NameDynAnyPairSeqHolder.class b/libjava/classpath/lib/gnu/CORBA/NameDynAnyPairSeqHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c68ffa75e3378d70f48cf56ea9a5f8da5ff636f5
      GIT binary patch
      literal 1274
      zcwUW@&u-H|5XQf4oR}EXzfhnQN@+_I2Vx<PMToShqF^<MR5`SVYLl$OMvk2tyC`o3
      z5{QTc55PkqW^EJNNKt*Tcf6kYeKWJOzyJLF1>hNM9WxB;T`#it>K}G%_95?!*F&%7
      z4c~JaG{o5(-|dJ%hsH49<LBIVx!1Mpt)6IyItmo*2VL9mcT>Q?4?^B@h201P!TZW&
      z$e(jJqIL7c`R7d{yf51%G@-e}P<SCd8NOu5mC8*9ZO`ur13BC<QG~%T=SWW+M*Wru
      zjuL@I$8U4D$pfjr(@ib>C_gc5I9HZOn%ku;xs{tmFx)hu;~Imh(v(U!t}cH{6?YWM
      znbMO3ZxDq^V+dv7F7D}AVX&@LR;dbiAOaJsxKFhuQg5?KWhssFmnw!%DGQTM>GX3T
      zL#n$pHHmr@P8PgjViQ{=mIgc7g0obhW~JcAQ4Cv|u<Fpl;ehg3DU~N8j%Z&^-i}JU
      zV&VzPYNlduqv1zETkK0UXRA}Ds;ce_)@fjJ^yKMbYHsM_DVrvl-q-2tdHjcVtsgMI
      zk}-o>dK<I?ub^QUb7Yx`6Xvl%s{$;hfPL~*zJ>x=mG4;kPnjig;D9LaD8h+J%ZYbN
      zQr0a>OC_<4+bOe_GK*GaggcjzNn*zoa&iGz9OH_3fVCL+Fs}X*u3~+|(g=?xaguPo
      kDY(bjj&UWFQ(QG|nKpv;WlSo>duJEArH#AwH1?|g1z$WN=Kufz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NameValuePairHolder.class b/libjava/classpath/lib/gnu/CORBA/NameValuePairHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c62639ddcd73866fc26aad3ec201bc557fc12821
      GIT binary patch
      literal 1250
      zcwUW@-EPxB5QWb+PJ)eTOADnGN@?j&;y^6KWf3ARs#36;ik94lO|lAGId)|1qP!JI
      zAR;b!03Hf4Yn!x*D9MF)$LpDI&diQ~{r>S2z*E?H%rLBWyvW|Kz1^$WN4zWQ+>OLB
      zmqFEc+akzAW0*hV=iGL=*RgBOGtmn3$T6(@LC5yHoiw=T2O)2|!afND!Mn<2$et@4
      z!-n(M`BmTJUD>L5{n2#047umhli>@7Orcn3(DwbdFp$9w6FLlrIY)ZpDC#yvaGKy3
      z9KXfgIuE3JPY<>5gZ#*_=KQxX%C}XRtg2Yo!Enn&9@iL5B~Yr2aaGv{RoZ6Qxd4sz
      z;?V0wVbTyn8Mupkd8{yOPfA=BZchXz?qiiIO43xPOEbABQZ7{l!{#(Zx|znOK!#Lt
      z;Yta$C>$^Kk%>)gQL;4n^>o3L^{eT~`Ed;0;#5#|Sz*6NDpm@`v4~STSF^UOM3+oF
      zMo~>s>}{O*QP2_xQcc$KKjx^c{tc|tkYwn|(!<oO&=00;np;}0)7!K73!PfuVSXWF
      z2D7vpv;!}pVGna;nTZqTag%lhSV#c}<f(iO1+Yrruy{e4rR2aNQQlC56O)z_@06sh
      z+aybgSi+r@SxK3?RT^M<1epkXM<Mk~IDLrI@c?Tv?qOX02(Dy(#o_=P<G2Rl-d};+
      h#!ieYpqS#yY0I<$tj|MIE<WpA>XtU_)|1$){0Ant80P>0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NameValuePairSeqHolder.class b/libjava/classpath/lib/gnu/CORBA/NameValuePairSeqHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccd69b057414d9428a743ca491d4d129e5cc4aa5
      GIT binary patch
      literal 1266
      zcwUW@+iuf95QhJ4oR}EXmKF-M9D1&uKrF;%5h5+Bh-x*6l-zI;Hpwcua_nI2qP!JI
      zAR;b!03Hf4Yn#wSMD>Ne<Mqrp|IE(*`u*c4fXA>@%rUI@yvRDNzdop1C%iA3+>OL5
      z?gS0-;id0(MW8}qSUltB+;X|sv+C_L(Fs))7&iQ%XZihJ8b9!Zkhfi7HNrsfzBC!~
      z=aR^<_16CD{bK0xzSF6C!^xEU427qT=Y-D~a)#MtP!9dB(2&D59Ytsi3%28llc?Vo
      z!D+%@vi%Nsn>=vjce<&B@12hfoAzbJQOaE-gEF&O1j7v-Dy}f-QlulZ#--(3RBo4H
      z&#-4Sq~;BxFzE`RG~B_Oid6>lvcyuTa0epLaToWfuq0D0Tc!+!k$OjlFl=W*(h0Rb
      z1x`p+8#6W3qj0+1Egjp~p=4?Bakk(L1;{Ze_;C=!P9~~6v2Zvb8LNgl6>&=Ya_IJ@
      z>avc9Fy%PK-de+tf{r+H<cO{Pf1oPzqF{rDB}Y%59wujoE}XP!hUtBkzMjN?Xt(qo
      z`WG_hFi&rdR^T}l9AJSgJ#oS!uG1<3ODW)pJf*KD0j2UcEdQg-Q*xk2lw*ppW710E
      zosy(=lVnK|E4Y<1t0}WsDvxk`0+|SVLm|xzxZ)UB#C<%7aqDsQ6S#8eE0#ytoW`{X
      l_ihGm7ke?zfSKYdY0H!mN}tE1LcG_z&@E-$tw*s}<qt-y9|r&c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/Binding_iterator_impl.class b/libjava/classpath/lib/gnu/CORBA/NamingService/Binding_iterator_impl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..699ecaa221b7f2ef647105f5e2756279ca29927d
      GIT binary patch
      literal 1808
      zcwUuMU2_vv7=8}fWJz30TWM=QQp8fs7mXlNA+<<TDv?lUEE5Y{giW%9#m%11X48>d
      z2QTzr=s4p|Z$v6HI`9L$^e^~7)aPv0G_;LiX3oC5=REK8KIeJg$?t#t`W(Pn+|Y4E
      z;7rr)<cptvwsIxEZnkW<xnX(RcHPRa*lvTLRok~b)0bY=Zf!X_G=Yrtnt9o3=8Ll3
      z&B<3obSVUvh+Q$;mX4Uf%wCBN^PaUPy;a+@>VDC5oVLKQE2}N(S=CyXgIm+(gC)WW
      z1%ab`z?nP$i4<F0C1xzu9ox12Wr0X4T@lcVvO#ep0+R#tb-W>P;@~lZRg|qQ=~}KI
      z#~3Dbj0+?O65V{bWf^!AlLERcYY%vJ5)T%x@P!11F>PQ5NrBi>D1J3{*nM9RRCoz*
      zx)KMg8_;o7;8@vqt@Tc;W_dTwnqvu!mSx>^DyC<v?{M?Pp>_ZDIbBI0f>TQDkRm^A
      zAdUo0_V3&5QNH}YMvQGsn0>RLH>|er$%hFt=M0>|0-3AQs|k#y(tEN3em>~jyEv!g
      ztiZ^DLj&*OJPS1Jc3rw|(22>^ev+U?1vMuz*ZR`0x&rA`X|MxjyX{|-PQ&sF>D$VI
      z4-C8pBaTa0(!mSOy+W#i50z=rZPV${@|f9@9oJVcRfiyf`BxIafu~$ybLa!@914L`
      zslmB@!q;$3$H#{b{R?0vmBSP7wMpRQOAFBT4cYPP)|#zGYU<GDFFY`}O`N2K5w0ko
      zQ)*E8e>JLRit&hYmNClR*D*xYF@9Zw2K5{L4a2u0&oKHJ$Dd;AXUzT-<h;e_5ZQps
      zjLR6oBCDtqkYNUIhdgWCQG1EZQ_N+uyO`gff1Q<XP|JFdKi);-9i)Q#38bM0m4A{w
      zZHvSR#(3rzWV!Ntl!+kyb6#aLpfkF_kWS!zTnI`2pbb&R&CC-la?L;g9#?~?HX6&x
      z=^qfCUd|<-VR#o8BNwzEk<2~8#W78xGPj7jt=-+l;<=4Sni$iP-~Iikwv&s5_?@1n
      z1sV)k)Y8NR?$aC_v-kq1;UI?=ii~AQ8qh`sexUn&S6k19O<LT&%O(x~h|CkT;R^R6
      zG-wVheA9Sd#A<jyiCEx8w(owE+5OUYaaG&NKE^Cx`XrAB<-a27BYuC)Zhpfu-}ZGV
      R+mn_>37-TVx*p`0{{a#NsUiRX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/Ext.class b/libjava/classpath/lib/gnu/CORBA/NamingService/Ext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b94a7ff4de7f5b93720d7f0d22bc1635a58e5cdf
      GIT binary patch
      literal 3928
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameComponentComparator.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameComponentComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b06b4528c90b1ca9d7f9c40213217cd0e8f91af
      GIT binary patch
      literal 1059
      zcwUuLYirX`7=BKcG;5k&T{k<Yb5>ouZjEyyxQ@vz2!+zYI_u?&rrDuprirHM@UQsA
      zU$8HtI8YG%>W>oNb5dK{A!5Qg?>X<~dEQI%^VgSe05-9uLt(I5e%C7RA3WHzYIfW8
      zTXi0uxDFRLUJlx?1E2emIM|^b1)&a=VfxrUu`SQ`Th@N_m^+b<1jC%vb|crb2L24m
      z4xxHH3Vepm>VMLe7{+%T&-LACmticIZ!oCk;D{Swm@qL3gCVga?MYHio6s@NFjaMZ
      zUhB4-JUq0U9%q=X29E7D?9df=sWdQ#3BrqBx*Z1Hk*wspnyZc$SURuCS9DxtSPsIL
      z6|`Gab0;ooxRxXquxR2EmKYTGNF*|Vsz)IOlnh+KRUOMiosDfKR&b4)*h}s(U`XfA
      zBjhWB=emg-f=7Mj`oyIA&U1U1u$OymYcephuT=k00=YBtRUDcit5CoBo38D3Ml$)+
      zmS^Pjmcgh8-O%9=UD5odzl^si!s%P2(bCdrWyJjG`&4O9LQFYDHwy~Hllltw^bF=l
      zOnsoMf*INkY1}4x2eVQu)?`0;izFkdt)1b*XxM#X+LK{s?1VYVKZ7*pdjRjrGeNRg
      z_>P6zI&ItP#wTPlDs7)}`L34M-XW3JPDz^;+AL{L`%H^6`hc+Og!hPQY|y|T(`27W
      z=G_>*$1F}au`07EB1b2MBJ=dFQI}H4qCh8=P|{e(hU{9AIuz%6kEEzeEBpW(q>zws
      VFC^W3?9ivva7)tB?<xIn{{|{?*Wv&G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0cf077e89f4820012d2d5ab1b39495cda862bc89
      GIT binary patch
      literal 9739
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a65900972fef27a4ba2b683c8ee8db11e674d552
      GIT binary patch
      literal 4814
      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
      X@f%&%GdJs@lWcyMPl4aqF}?JEOKqcO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameValidator.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameValidator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffef004b468aba1d983647afca7fbb975e99e561
      GIT binary patch
      literal 1159
      zcwUWCOHUI~6#i~0bXtl)c_{@!6d9^?pejDfLupW}4Hz*bgs>Q<H^ZgVJIyd9ByQcg
      za*Hchu1yRilHiiWA0?hUZ9;?^Y|``m&bi+?bAJ8)aSUJz^AUs?Mr~O&a?5WQo*7GK
      zSx9?@d%MEo%Hyl1BZ{W)dJ%*fI=0PS({M~_8_S#9-0~S(W`q>}97B^nzRD2JxkVmB
      z6QXf6qlKZpAS7R^mN&Wg&fIi3L!#hXrn72#LizPz*xwR63}c1=B9mokwzjxcBKG=v
      z!S!szE!#%U-KiA?=$u=wxROghtBA!G_bguVg)4U=NHAm?7Lm%i(&u~r8`CP8HaGHe
      zSG}qlYUpN&O0s5U)p26zM6a5%kD*5|oULZX_oxrOs^J<#n<_{<T-yHD>|_K<hQ9OI
      zg{p9h+|w{fgDL!a4E^X;VmOW)7@<9zl?s<dh5<c4e&MltgRF*I1l_3f>&I<XJ;pH6
      zh~GcEsLJs;Qn<sQ`ED)A(5+uA$wn~&BZ4%;&?TQCj!8^0ghWx@z=cK{?$LHP(xMo!
      zSA8GEF|A6%B_WF%9x=3Tq?H{YD6Uq;Fmm|?Ffc*?Jl(;HTlFmdTm+~1*HxtzC)yX?
      zGSn|b7Tqw(2zdr+M!Gq52<=;tj*)B$f*G`ujMo69+ek-o1?`0DAUjN%&Y;aH<wK-D
      zr%upzgwC}@*CBd-rjGaP?p5VB&3r{QmCT%ASOt&Jzm^y{#P#F>h7vaqFnRzzC`)F(
      z<8DJ#<{avNL)61F)Cb0rspBuFAJ2xH4hESg`cG+?1#}^YK`defFQDTkS$Qns6-syw
      g9|e4($Ua5XGJ0!c;xV3(9>RNMF%#@?Ht0Y12SD8#lmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NamingMap.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NamingMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d82940a577b0845a6160cacad073a89706e39efb
      GIT binary patch
      literal 2648
      zcwUuOZF3V<6n-vEn>1Zo%1aSZ*g~mkc!`v%lmOD!LJJ{9T8k7Fx9KI_HrWlEO>OZ7
      zXZ!(v#u>*CjxwWuPzTxp9ObjWz+a<2_wJg8Hb9-p?B09sx#vFTdConXKmUICJAkA3
      zJc>;Moq4B{8XCJiIFQO(Mcc`bOK-u>$#8bjDn$_y*fM7=SgC^L<WpnQb28@(G!(6p
      zz_yHDsrYswHQ`Cg4QYX<leS~~r|FdFnG}c&xid132DBK6A{NDFf%bL#n$d>#D7FZs
      zo&ib@xy6#}NXJ(L%d>pfGq4rg1e(iqElA&W1de9@XN+_l26iZX9Rj-&HEGrO^h`EG
      z-~|JXXcB14*pAFriqq1Yu%-)AU~9(BS%pc<v(-E_M*La3EU^Dshytp~Tx8mIW&}<o
      zGOm|Txy3w>F9!}!B2TY6=#YUdX+?K@crhnSzU?~YC^`j>)eXhhkn8wz(Z6Kn=B>O;
      z4HP_S%`6SN6=x=j{Q|uk+&JniSOt4V;fs@>0|vVBia<+_ZkFwoFUTc<uIH!JGo`lo
      z7)atEYbP&RX8jx3R-X!0aEA>XL5c+_Z&s`VRoD?KTT{wBHin~wJuxdyhmlRYY}$@l
      zDNFN)>zS70`m@qAUF{u*iDRlv`ql&+_dP<R04j&q4ZMNl0-OJ%VA3j7q%N%bvJt`w
      zf!zv1aE>`^m8(ZPA+sk9oWdTa<H?{-B5H-V__-W$j~iaxj`|P;#G<O;b@Zr<F{~sd
      zj}7y3NzF%8ew;@c+p{H!ZBO*n+?jD1?8_Lqi1Pw5<+ntuGL9*MF9~$l(_+0Tipv7q
      z>tR-uOc;0vlbVvEyC64KXIi6o4UFP^3#Ra16xXQL6YveZj}Hjk_NBi2<n4(JM?-tM
      z1s`HM3X9yWUp0_}mWj88NhIo~cY|$obu0To*RW!%1roCcY!x8JyP!)*oi?vhj;T@6
      zfCHB@uvoJC2sYd)#qmu89w<vgsY2`VI!tefdqP(P5PH4TgViE0LZ%LWT>wi8E47Z4
      z?ORgA8&&2{4cx-VY*piK#mmXFwrZ5E)kb(kg+nJrYT&nur>lm`k?OwufbiMO*)Sp;
      z0o#%*h$kPxxcVzvSFrs)cK$;1ChX#~Rfia&>oC6(XYnFuMz9UL@sbYzGWO7WFUL)M
      zo7ktrf6bi{zWb90m(g_xyVX09J$z^xhwfnSBbZmWzPf_mKa#Y(b_biarC(bP(v)5W
      zv5%O62|gzYXbK&;#$&D{K@EE`gX5H10ZRr4hQQS5G~U!;`*8*XjMmB|2ANI+t!%O(
      z6Q{VcN%51shn+<E)=$-=oAh=^hwliSs^Oc-hYBxLvwBLXb8AB_J|&dGr$X^gg`s-&
      z9Ehn<%ee6Knn+*Nh!Lxb!QLP4KNCVRLMYkCczbP(FKf^kRWwG(n^5gClvdSBAnZf3
      z*U0yX5_CMdj4KatRUms82M#~Lb%Do_{GEvGiabDGAP~HnYjXm876iWf=PwP4OQkET
      zI(LVK(}-{QXXaaK^&NHop5LIm=;Qnpe!w~Ws4@2i7^;{@s#=ePTDMVk9~GiCc>@;k
      yk<NkLF63u0<R>2Tvsi;9u2=5S?|uzK@#<;uDnq=7_4WE>t@6Ls)$23ub^Bj9oJLgu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NamingServiceTransient$1.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NamingServiceTransient$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4694671cb6f7ef4a02862c3536014c203db84e45
      GIT binary patch
      literal 701
      zcwUuJO;6iE6r2}3IJj<;h61I~4<rsLNCY^bO06oDs7OdINKKUc+F2!w%vxI8xpILY
      zgak$6zz^U@p}ut^rBvm>!Rz<tjpvPL@9uAI0c>N{Lxr$4)J3~<^mFf9`%s)HJ?u&|
      zR<V58^^DM&k~&}8_TUm4$6_qniO|D#Z)Btx5WKNS)>0D@mcps#k%{&T9p@_5BKb_1
      z`J%MSzY<njkFq}Y32rAH$XO7c1*l@ihlA$<JiH({Ela3}O3TCIB$B2lqC^s!VH%61
      zFO0JN1a$L}$_P8*Q-71aI;PM*=CSBufw1_9-2ijemETPZ6U%*Nw=Vx*b<?Is2oAKC
      zrjv*)lkBbjUB^k9G5?3mN9n-BTf*kk{04ZB4}@x#3zHKTS_k3uhPt`oPdHX=ai9)g
      zJ~f&)Rjw-hc&ITx%hf0DE#j|lT=8*@;G*QzEmlr=2Tsx8D&X3pFVQS<PGO?5%WpfY
      ntzW|bg;)P-obkr<zcgwS4F|7F<`UkN+&?Pd*)pFlR`BjO=T@Jb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NamingServiceTransient.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NamingServiceTransient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4037d10712ba4abc3bfe64bceef71931d0104c4e
      GIT binary patch
      literal 2390
      zcwUuN+jA3D82@c^*)(jqq})=Fi>;CtO8^xyrC=LUiH%L^B^XfZc6%C9(%rbbsV%68
      zqN1pyj!(`wBQwtUDm)~Nnb9{N{G%LyXA@cq={P*(oSg4`-|xHpzVGZm|NikOfMfVp
      zMVo>n1+x-QW+#S+;$!+^(JV{~d#PxM^`|LYH=Uv|T@`)>TNm^tJzmnyLOeUWAPiT5
      ze>^)er9eq5=tx?o<LaiH(@PcM1AMm>1Wy&sqI+6_FV>r*deWK`VffIYp&elbTQWsc
      zj8ztAg*~OumV|;x#xnF$PPdEl+!XrVD@8}a(ah6DJ;106!aXbI^-9Sd6)QxF^<Ekd
      zVTXcEv=L2<5OygDOizvUp9~|4Ju14^r90``gx9ba&nO5Ha(KlR3}|O8^SIIg@m1_s
      zuxsrmZMwoX^-{{VEjxsR3buK^4pdC1QZ8GzE9S!3hi+Mw9tAsE!RAyvub{`fC|dF9
      zHPe)7SaZ}#EgPcj7A=#xkO|wB0j66+^)bM;VrK2xk&0<ZTfG!UFFNGXui*&d3RFk9
      z<CcW;$I{aHn1VeUF_Btkv%IJvwvoarJM0%%EW2SGm+p?@gv|aGrWngub|G#p7UD_E
      zX&5&#nkLLZ()6k%q*F#Zpy3n-8L45Jrq`Hz9sy~j=ymMCrD18?i!&Nt!w^ZfJo$`k
      z%{X3l6!dLi+WTZB!$=~f;;ihm)pXO@2@NB7oh+1f+hO~5x8gIi&SF3XXK43Bc1MaO
      zk*&Dpic58&FNSdr-6}E)Iv=Wx6K3^x6l1b_Sq0IiFKRpr;FW9?=QT{o4hxi}wUkV0
      zn3j_mFiMsqR9xVgJ>8V`91A0dy!3xj!QNPAgTC@Y$l+}bhY)VZWxT6mX8oA0IIdXK
      zpktOVhOljpLZ(H&EY{q*0c+HBxKb?52@cpiJ0UeOk)22!2*W_PT#6bNaFs8TUM>rh
      z=KYV7vLVGy%mE3($V^y#09<Rb*(=*)ExTeA?`g1Qp;fQYB{K{cODZZ43H0<=2Uf%T
      zSmtY3Zse#NS6N+yowGaEGXLIOJA3$=hU*A2h_k7Yq3O)jOnNLml^)8>G#+J5z79in
      zp|VJlc${ZXtsNsz#?ARIH^#hZ*{q?@vdKeqLq6FwCf`u9)boE6%U6NwKH~CYLFlg4
      zv>xwtswrju#47jeOU3)}q*bvEAuT!Rt()?QG-c9hz6W-)q&tpqa1e}vA3-LC0D|0A
      zp4t$iRFNMfuA3-{b62<r`fAYbc`BQ^20h^*ws6%N3fPKm+}jaBXVW<8xd1vN+ao)x
      z*!}y3I`-uw2WoisFV9G&zvr5en?2<$CFcn;=|Q)7fQJxk04g`(=NY)W&39|CtL;|=
      zx&{xA)zO=;;c&vg_W@q0<7mE);}pD9!^??4)E^B*wpVeoiiG@M#py&a8hn7^3;lni
      zr;c;^{u<s$sCA6yqiPLrCPL9rG+4!WG*rc89l3neU&C8fT>1??3IBb(Q-_g{h#Cq}
      ze-&4%C{<C8%8M$T`&eNV_ZV;omaxKJZ=`n-JGtsiz+eh<OlO`N3zU}71q*!~k`t)l
      z46Ra}fi!I=agA@obqIVw%^Ps=Ii<HL`3gVa4t~OS_yym4rJ5&YEDSY+Ud`{~Lwv+2
      z{P>xcK}OMmAMr6|KKe9p6QA&|j|Kk}x5(ZZB=8w;gY>$Ke!d_%m&xsI%#xDp*pDyi
      U)lZx|9x-3z8}71Aa-P4)e_+v70RR91
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/TransientContext.class b/libjava/classpath/lib/gnu/CORBA/NamingService/TransientContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1495c4a95225b3ce07c4caaf63e16723e34b8c6f
      GIT binary patch
      literal 6742
      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
      X%3~7Mayu|{h(-EN7T5c>%nv>W0??<P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/ObjectCreator.class b/libjava/classpath/lib/gnu/CORBA/ObjectCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e97ba909b299690168bfc9fc67f1cbcc2a44f78
      GIT binary patch
      literal 10180
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OctetHolder.class b/libjava/classpath/lib/gnu/CORBA/OctetHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c3dd57adeac2ca447dfa69cfca012fea27401190
      GIT binary patch
      literal 1334
      zcwUWDYflqF6g?N(E?t&~$g}vOh_ppnpZK7f&?ZD<V^s)=M$;_qrVehqWSL_8q(4bf
      zA<@Ji;EyuinQjYhAhOA3cJ7{g?z!jA{Q3LyH-H;>XrPBMR;@SeeDP&&#V(emD<At_
      z#SIKZ2*X>>u48*ny=oUXx7@Nc5F^a^LDlwa)i7z>52Ul{x%Qe2T&Jc!35G2Bii|K>
      z=!CC-+;;PR#a$*ucO9?6V9F8tvSm-yg?vQlO{F&o5d|_ZM3_4iC^@;z@g4hlAZkL2
      zUAM&-#~GY8FhUsZDwuyN>J<y47~?YXeM{JQw=j)cHZh0^3zL{4#Im8Jsnqe{^hO+n
      zX$uDW2tx%?cb_$Cn{Ke)v|*&+mmP1z3543~pov~wRQwkADBp=4!bIWN5wJs%RIXX#
      zvV}NI!hjMa9Iq5w7cH^p6~cVC!1h$0)VCY5IU1I0B8>$D8A9^^cneo?jbN%0E!TKB
      zJguluD3*1as!F9A93hcPpL`l(r4NCSj7pu@OR*t4o4JF#29^l3r%14H4@pA5uF`5J
      z=4%8WvQyP$GuHe@P<B^^8t?FtX)UU|!k3CI;x~#OB-E+ki$-d6yvBIf4~zE$yjx<N
      zdIo=C@YNoM4>0}>iLV^#!8sMz|MQ%gV|*6p^&iDH+2**#EAbl59N@xXs;PlRMDRkV
      zSxpcwVJ0L<h6JmOR9I6HWTt;$wp+k!W_iO6ywyzOO?1elzUKH<BCcRQ<Xj0k<C%qh
      zq&g^@!UX%Ub%ZY7ri)_{wx+wTom6y-VULkLB)+tnVmcNaX)n@l@22*pL&`$tJ7)KB
      VyIaa9mh$-oDfjU}mtNL6*?$Ko5orJb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OrbFocused.class b/libjava/classpath/lib/gnu/CORBA/OrbFocused.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..153005bc56f9a11f931abf9853e69e5ae56878eb
      GIT binary patch
      literal 6441
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OrbFunctional$1.class b/libjava/classpath/lib/gnu/CORBA/OrbFunctional$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b33d364c38322b0f0a45bcad43f70dd2f71c887
      GIT binary patch
      literal 635
      zcwTjp%TB^j5QhIlk=9zI;uZ0luuwDt3*C50lxQSDNszEVzzNjU)1;-omx*ZN!UynK
      zT<8lJ=TsJI(nU|_%zX1t|LNP;%PW8iHgzNza(x+=s*UE^X{q6NE<)KII-cZip`s(n
      zVBhk4UUIqYms$f~@E${IIB<eOnOf^Hy@w3OJxR1KYd6FnIno)PFzj!|HpCXT+YHI7
      z*AtUquq;d<rJ`vII#MPy*cJ@TFlbu}&D0$!uEV>I@LRm&3WjXm>vFfveMjBL$)vKt
      zkdGT%sE`HC52cAEEbGWIEXJS~7Swq2#tZ$fxNxGGe~3M`Li+fcl)|sNJO~8M&Ya7x
      z>jjSNUy0$s>si=PI%y$;&=<{6N-CjDUN!n#3ENiI0XwUVs|-B`)Gkblj_IzrOmSy~
      zsp9Sk>Ebgo4-uH9(~KGj*4{Bokwr1#n8SROClh0-1A42PQG7)D35)+Uv=8Xo=PwOo
      Xtf3(vkt<k@*dG;8=Ng?!TIBjS5FCNG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OrbFunctional$2.class b/libjava/classpath/lib/gnu/CORBA/OrbFunctional$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfe897d2bf4f66b88dcc63b648de151488c1bfc5
      GIT binary patch
      literal 1116
      zcwUWC+fEZv6kUgz>DV&TQVUqY8&)m7P=v%64N)3UOo3nti9RUP>9LHCXUKHgAMnW-
      z6OGYd;F*MK;)5ji%|G(RxX+Pz2^lrbbe+rEd+oi~`SR`KCjeJaF)_f9ZHZ2$x^{Qr
      zW@RmCEOmqvy1uZz+^h+mA@$hq+7-_ht;)uB!0jeOEZlb6xfu$rMZ{iXFuIgthanfm
      z$?f<-Sm!~P2Sgu~^fv8WhcgV<l&auirS3aVcu0)cbyv9IJi~fEQucqej-;O2WYDXA
      zlgGi3v|u16SHl)e9FwaP7UD=Gpkc(qAVwLqybMa#T)|g6Pa8bgup1uLov!(g?QPnD
      zEBA+ox*Qk7cw}+2)SVV|L>#Aa*2Ecx$$$4@;T+CW4HPF_(Rvsvb4Z6RCvX85P2?EH
      zBJx<cgv$(ZIdEPNIr%h_KQfs6vdKi<?*tBCa#eqSWSN!$4A!y`Jg9nhyUj^IxhNdZ
      zZ&OVxJlyu17Rs2W_n@>G<|EyUFi9Q!v<fq1h(^y>OQob!Kq@VLQb;b*%>aFau!wh@
      zRtvP(2{VOa4?~4g52-@AhjifsGJA?WM*j&FMa3J>aFSLsnqrW}DRn-M(ZhUSNnPe^
      z750(3SNp7B9~1gk4->`yE@H+00UZv}m)726au<^;inRKR+azvTa?AaL(!t+u_oz9O
      z#Iq!sr7|P}Mfw4A)Z8NBB5o;M#}*ty2VCKg)~?F3jps0p7swD!7%x#YUZG^X#+>m6
      rHwbSVZ*hlko%Rn19~tj{8$;`G3>xw(>l6xVWK7)xX;qC*udehRu`~rg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OrbFunctional$portServer.class b/libjava/classpath/lib/gnu/CORBA/OrbFunctional$portServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..459e5c3565657aa195fce0ad1e6af80ac4c38e6d
      GIT binary patch
      literal 2171
      zcwT)}+fy4=9R3d35C}`lwJj~QDMgzsmz36PQ>!6_ni>fvAqZaL5)NTY*p0gzsJ?e}
      z#_81SgU<B9@d3vtaUiIj(a}eBe9$NLe^GyDvqETz%#d^T{J!6JzTfTq^!K;l0T{=I
      z4^0e%MZFS^rP348aLQbqs^|q<Gjz2yR5naI!_9SW`XDiM+)&rma7opR;p~dZ)g^|b
      zW<}REy_mP11B-zr7@DoTaAojW<gFDr!||l!taCeDW6T(ZRc=QZ{5Ch&G+nhh@v#N+
      zwpTQ3=mJAuvVk!2YQCcBnthdFAlML<2;~^0n6boL!O$f`M!O##^vF1ZUItGvloOWY
      zGJI(E)2>g(Nt|M6wYWX0@-;&zg5ZLH4d9FqrwQEPHW>k&WoWmYxTe&CZJ2K`4ArUA
      zbP9D@EpRKGsYgZHa1IaoFm#|4jnFb4#(4^-Knb^beKHwN1{0wMi57u|WVE2whhc_O
      zhFJ_7Yeo06iRffLH4{%qvx(HS52F<4ez7yQNhO}BXr(1?wjfMV&Fbo6i3e;WV3fHY
      zuvd7%a&8OM;t!~Hz>g7(i&S4^=nW?C=Zl1L0`Z89NAVaHR4o$|wLt$~3=du&5gt#-
      zcoLTxT5O|cWatS#=t5Wp<DP3V$gQ-yD&uK1GkB@j3{%*mGA0nCVvA0SsTGUbbfjJ<
      zHMy}N;*5k2J@p~Z(Ct_>Bb-RZZx(o2bOX&rQq%c#Wo?n0S%IZ`C5?hw%BiL%zTHDf
      zwEDp&X*7Y<^ImtVn)pr1X!4MY3FKK6b2*UwpZW?E&8=wo7i6TxC`h(eSQRajmElL5
      zX!o3qIgzjv*|}&Uo6p44xp+DsPp4Dq{7iH<6Bna2FJl2Oku<Bsd07n0_1dt!BI8xG
      z(F@={5I(#{RQs*zbjhA>9~S@1q?6-10|j$>-;fYPVOGlYSkz_Pzqhyibazq43N#@~
      zWRBr#!zZFXzYXR_ydkZHl40?@Zfy8b0*P9q{2vOJVTg2k9S3UBWqR03+M8VD+LUoa
      z82uTeVix$6=Cs8DJ!68DK~Cs8H)AE$vN*Mee_tie5|M}AZm;v-4Dsi4SDI~Sr2+yS
      z9pbrjkw<Wp{5oj&8-0tDoHD$FPGuL}O8*XyDN+?Dl;LgkE895s4F;RAgWx8{r|&_T
      zzlV|euCZNQ5XLGlRq^;PBA2B;sq4xPp6ZiEt9WLvPx^j~Zt2Dl&SMfyn4)_wk_zA>
      zy7LyPdyAC3O^A00aT`J0p>ckf=JF2V-@|iwpStk_Tq6$!l2D0fk#J(l;W|axL_VX0
      zOHvLd(TV3VO*n=WdfoUwBn+c<Y!l~{DrPp(KS!!FAEReWY&y3wd+TewxCzPqeEE}q
      z{@5Zu59QI1yt8&gMGwwk5Cu05g>1lGvVKat&nUy2=)&iO{DP2Q67nm0#P5>2T}QuM
      zQ?aL?ri_?4?Sx*{(HbE(foc~*6#5BPvAjhGwJZI!0zVMdk9CyoE+rGq<OZE`gYHzM
      z9b{@mt0KZJ=UArdt1fAmlh>cA9>37(ujKxF9eJlqE}^_feu-9L^HMrrzhB*-1pTXy
      V!0Qq;!E%0WR2;0J7{EHDe*v;P@iYJc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OrbFunctional$sharedPortServer.class b/libjava/classpath/lib/gnu/CORBA/OrbFunctional$sharedPortServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73f76bdec5ebe5fa5550e45973320266520186b8
      GIT binary patch
      literal 872
      zcwTi<T~E|N6g_vhP_|ZB76DQ416S>KmFhFbL{~{RX@Izf2Vcx=nLwqs>$D~QEfdAW
      z2Y-M+MPJoN<DC%^UHj0^ow?_pbMBq_^y9-v0Cy4Cs1dxqv<!M%PaZx9w$yN=Ors*s
      zQjxUteWB#;cBYDfREJX8un4PF=+Oy|Fj?%!dHW7wDXf66Gw5EN#>IWYidTv1cXkL?
      zFWZ$35YD)mz@&pZ&bqKMMVJZWRBo0phf+Ni!$cBVVHSyGN2pluj}I;Fhu~M~jJ3-4
      zCZ6k#2-Mg0adbead)kik_;n;lx-hqKo-p@99Eu<j>0WS>(QYrexQJzfoik+|v5m#h
      zKvP)+zhnkkbRdg$2bXZg#%03%e*rG8VwDFbB2CYVUgs3kZ;m!@*tpIr6-~Oh36Idw
      zcI2RtBbM{Vc%JDNZ6#loGH0pTF#r!>kd-Qu8?l-9Um9x~O>p~ZDpfBLc`kYG&40(s
      z{qQvT4N|kIuau)2e|)8U-r(pFXLa87yYJxm-R1Xi-x$<1{~d$=!j+#f!_k7-yJ%t-
      zFi{J0=Ik8id0pVhV&+A|y~)fv*Ye+D=?E(!uTHmqglm5krj7bn_VbN7zn@ZR9ji>S
      Xiw=Bdt)Xk`ZsE4^#!rUtVhz?$`+CY&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class b/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce4038d40fa9170f597fdaf938e83335b6dd8197
      GIT binary patch
      literal 24752
      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
      EKYoDzvj6}9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class b/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b91fe4d4a0752d8508f0397a87f36527abdd14a
      GIT binary patch
      literal 10136
      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
      UOpxd;MT2SJSlM)p3l%562QAkxga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/AOM$Obj.class b/libjava/classpath/lib/gnu/CORBA/Poa/AOM$Obj.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aca1817574ef3a67f1a74177b5151222afbcfb4a
      GIT binary patch
      literal 1342
      zcwU86O-~b16g{t<PD>e}Edmx4%7@wxAA^FQAW4B}&|(P~7O-fB@=^!O44E0K>|7a_
      z`afJ~Vq@aMt%*O%c;D+#&^Bq4&fItBo_o)^r=8z_e*6S*8!J(S7zQf#sj*hvUd<a@
      zj%nnJn^VPuqbL-H#F1GujjCx^3`+5`&!9R%kSY9&qtgy|Yo_ftN|zX-ULzrj9k*gQ
      z#}z7dee<BoMJ;!Y07AumC$4pDx@V;(D173W41=w6wu*TIgkSSBhS2^hL-!#!%f3}J
      zeSXNm_K2qc%JQb>8Ttz?@(8OgTejt|Fxc5P&pRpGU+pBPJ?GpmgR<rv@-C1r4GARU
      z2;-`T6w)Lpo7)vnMl?jAis-rq4Lu?n(-1{WMB^Ib=%#%YEStYLJwD*>OTmC4RdC8?
      zb=Pz)aSoD-SOmjRt4!gtFsXFzs8W&}ja@jPl%xf5kNZ34xyfuN@eLKT8oCf8H)wji
      za;d>YHrJ^GLyzUHH$3IiQ`*g*=(?z(7kv!9L}~r9=}LA_tT*EMbf$?r&Z%4GPb{&6
      z7^$5TKV=4O!?wA*Ry943dr>SiBwH3k(`Ypqr*UEWpG1)qeo(}O2N0hwc~1%_<eglS
      z&xsq5NC;=?9HDOt{gl5#(R+ksmyAAL$AJDFL;6e|!}@F;*Yvbf$Eco;)RFm0H6cvU
      zby(JKQlF<Zaf7-)qi)ZUMgf!bWKmAYU<x-Rs|;=uA|#_*#3(GIEOAw2lq0qgVxwa^
      z;IvKEqCTa6!^|(l1hpA)8NFbUlIR*~e?vOolCm>7eXxOSPETQuCXwMVFdy_c<e4@>
      z{YSqvTdFeoPPWk+1wk7|ucbR}zzd)M1Ak}>zKeSScqLG#>LYb5T&Ri5>_@_Ux}-vF
      Zs!(yCJf!yu9!ShXJd!9uWeJbL{sKSh{{{d6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/AOM.class b/libjava/classpath/lib/gnu/CORBA/Poa/AOM.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c361b7d1129f4323d634166396e09bc6bcea6b88
      GIT binary patch
      literal 4383
      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
      I;5!ii1{?y%@Bjb+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/AccessiblePolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/AccessiblePolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f16a829eca8618ced1e347316abb7c7a7a316026
      GIT binary patch
      literal 221
      zcwSwOy$ZrG6opUfPwF2y=;~}2gR@gD2!ha};2vWLEwO>x3ci|y58y+IH;Y4uyBxlA
      z?)Uk=-T>B^a0CnsQ#K+=kK0&ePKsD5eZS`yt21YF_2lR>Obhvt!phQ!^ipV5bMzTz
      zt}?>i%)jk<hS2ExEN!ESSVo6-b;H1kNZgfx&NA9F3{S49l-}i*qIuh3<rnB3(R4jh
      T4@ik4gjXA2ND0Hp=NSJ0><2Zk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/DynamicImpHandler.class b/libjava/classpath/lib/gnu/CORBA/Poa/DynamicImpHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cacffe68c24f5df2bcbbf9d6e202864506f8bc00
      GIT binary patch
      literal 1204
      zcwUuMYi|-k6g^WY+ahf(_Fbh^s{*yG_3;T~(x+`gN>dt=ej-yC=~Q-xECY!@z#n9y
      zkk~}O`=g9^7y3kEo6XGZ?7ipQJNKU1-+zAm1h9&?76up=Dym^`<PO%??0wDc&CiNE
      zvb5{ecDO26g=-<maQ~Dyxn1R|V&{%eMaftQF)V4fVr!?;h1axe_;FR(yQ--_i7uYO
      zstdQtm0?I{&k_4w-#nRwdnIaBI6@h2q*fV*&^xK5dC#z#xEnNCU<hvLvIrx9kqCw{
      z$`D8-3&Wt(L||cvVJs_^*lRe)!aejD8KPNT;?)9orMK^X44M;JXIRYsr&5&fQ1Rld
      zR#Ez8VEB^AUY0L!T&XIVY~Rw=8isrXcl!Dqh<Z({`gwsf$$pNxhPh<3Fv~E1-E)0y
      zvzXi8I#@g0&Fxv3XPCa3>3Ty}%fby~4kO+ai(mn9>I|>dgeo(vTs>V!9F$QXn#>R$
      zGt9<iJ+8Ega}~d)m9!UO$&2vx264A+{fRx~^9T}1QWuQw7#SuKy%6%9!Lp}`7YvjC
      zibCQEIl`RivL}fiJHw##`b0P2Hhm;5oSff<#BH0(5YFp{TN2yS)8JH(+R|QHSR^?I
      zXbjRA_f$<cdw|}D5vKVb?Y3z@Kx;VFMkKZT9b;d8pK+Q;2@7l?h!2F=L6mk=9dA6q
      z1mM3-5-X!;3e#QAkAw))8au<x(HZ8B+IX1yhOrhNMHgFm(!#SgQok<Zga`-Zeg0Gj
      cdBGpU3evtk1{*K^=rQ^`z4FiX+UI!l7oo;F$^ZZW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/ForwardRequestHolder.class b/libjava/classpath/lib/gnu/CORBA/Poa/ForwardRequestHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fd93be8051391597a8462ce505ef6b8897cb199
      GIT binary patch
      literal 1273
      zcwUW@VNcUg6o%i+y3N%J2#SJ=4nej~X^bB+CV*Kq4n`Q6ep|ZjW_Ib;d1*)dSDI*C
      z{NNApM;Xs)>xPZQerWIM?K#hR-`mrlzrOzf@Dx@aa{?Q^VPGB9Pxkk$W6!p#o;tTx
      z_e6dO<eC4<bGuUIp$RPZ?XhjS_ONHw+kM&b^T-JlJ=L?kK`$nZJmuSMS6U5UNqfMd
      zKz3}q0j=A$Kgq{&T0^R_REeIu0=ehT(D7dgWJ=|xfOg<@rH%})87M#(Sg1Kec@zxV
      zQk_OUmTF$dcAK_x_&MIx{P)h8z-I0L7OAOON~y2hEI{Cffjq7V7%bJ{-l55Ci;Q>4
      z?2MK;n%Bco;78{}C>^V~lgFCC`b=d)p>#)58Mupk<SD`*ro*RnM6w+&<FiVEWtaZP
      z5xHF}l@kT0w9lVwmyJC%u!$mnh%h_XI#-TQLFrQU^}tV_PRT$SCiRSq>*<P9TIc!7
      zd10ZzRw}Z9-tYp|kyVGMZ1rFBw8MW3iZmw~y0UZ$9vAxWIHn<{`&D{+7QUff^BauM
      z6wG0s?mDf&J~X_<0!2oYghgDZl>tjJph}sXt24l?e8uvNGEdEcH$*w4ildOU5@p9E
      zj&71H7O{d`F>^0w7R<^7xBo&$!roHJy9>C&6j#7H?uWPsp?k*d#2&Q?Ha<;Bxp1#_
      k!Jam?w}nSZDHZbzmM7RwN^wX^{}L$`JPunw32SzK1NIptWB>pF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/ForwardedServant.class b/libjava/classpath/lib/gnu/CORBA/Poa/ForwardedServant.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1a615436e210d1bd43db5bfc9ae03d2ef180cd5
      GIT binary patch
      literal 4682
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/InvalidPolicyHolder.class b/libjava/classpath/lib/gnu/CORBA/Poa/InvalidPolicyHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24af65c0af4322b33b1ffd7242e1bc2718bda629
      GIT binary patch
      literal 1333
      zcwUv0ZBG+H5Xb*ZudO{#Ku|<{L_qqWy%6;k#-uhOV5)5_Dd81t+f7-#-Zkr84c|%=
      zjg2q-0DdUr?A=*tBe8vPyK{RpzxmJX+^^q1egfEnoyH8qYR3)ia`pY|l3nw-z32A1
      zBil94k*%{`&uI&lhQTm@%KO}QxZAO-%~R3x(@0UUr#iOR?Zkkdr+nUYgkATQ;9YGp
      zBncSMzE%0_T#Mc6LiL5RYt>SXw?6QW7|p)Tka{Uy>Azw~WOEG$qwKYXi3F}$$iQTn
      zt4LS83%X6A_M>bI6|cpe23JzQ$A^Z0B0n;$RsLHm<$Ru<T4=730mBUoX<T8jv}UPA
      zgmov6s26R9&2#QpxAxp#;72VZl!@E8lg0|eiz#*N3a2NOg}b;%HAh(wCd)c?$yArr
      z0EYER63|s1eNxh=eq=9IR1N&`Myy#_#|9;fgAXSQp1K@8T`4a_Fl<beL*J}_)+13X
      z+1yyfKAr1X-PSb}EIdI@Phse7*1bTr#E#UHx%`hAEb3nkt29vwdXn@oJy`V5YMbVs
      z)~odPEc`;J`R}m4kTHW<T20!45)70vN0t>iVIJ3M*MNl>utT2O*VKS~;TsmuDYKLu
      zctey5MZ673OOba>($-Cqr9~{^R?IBL%uK#8!14$(64s!QgA2IK5SPJyJP2_Q!|F$H
      wh5T164)ACkcT6~b3GOjALtGZQ7*~v2W(<)3JS3&Uvy%(mGKSrH8hRD~06$AOzyJUM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/LocalDelegate.class b/libjava/classpath/lib/gnu/CORBA/Poa/LocalDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23b18895966c71a5f2b5123d9326ca7c299e16b4
      GIT binary patch
      literal 8751
      zcwW6(3wTrKd44}z(vii15R4&$K)58}D~=%{i5(yYOmQ%_Ya9rWR6Ujtwt_4<N0Naq
      zTQ1F(tXsFWUE9(1mZl5q$~L-zNJ|&Uy3s9Nmo`n8b!)m_w{A<bb(dyq*U<O>&(V=3
      zOW-}*)A0D5U*~-PcX_|-fAZYxpLzyBhm0Gj5iA``<=VFm3~lXhA52^Aed)NB+-@iB
      zF)M2u2nbfEow4@x#F$GITOZrdKACp1)=1KBFA|0X4Mk49X=l($PbEfeM-WPn+-JwL
      zf)#zGviNI{?Mzvz?0}}|64a$9ZO6(c(ka1$zWb~xt37F@#@hE}okVJk1htcCOR#7r
      zr@?`4zOLyV<>la3O1(XiN@O<+x*D$}wlcGWTbuR@0^8D~b_BJkH*pmfQh~;%y>*}p
      zCJcnt>KYSsV5-#;6LT?7a8+L-W%uVMMr>zT;iPO)xbC%_g!=703}nX>8NsqL`6Vt;
      zm{_S;0m7ga(*OkdEJ0I4V|JEc3$AW#n#QJgV5lpC8?e^E8o~0*+izkORtpTrzCUMY
      zD5Sfwuf*r=1)OI1qp6H=$Ys%`z-Td1hlqhT;!?ptk2Hc-v@2-mt5t`I_1GXVGj?{M
      z7zquH6-4iiP{_?DHsTg~CGCt*WEI8B)#Rm1iM!22Cx~!Ji5p_jESkZ9lqw8DS<4~R
      zD)K5yAjO289Z#$1bM6;hTgj&dbTrmU+sZHoqSaKU(7B0Bj9U^@R?<#Uc6&9yROWEN
      zzz)I6(wBbfx>UUrlgS8ru+u~@?xe^Vt&EL&!N=rpEXQs}?i0yA^c&bMn6JH*%O;ZT
      z-Hu}&%a|CzAhDqpR+6D^G#=c_yrO19g8HIQdydBKN!QoGbaq@-4Plh8yrOK<(eE{f
      zJJe-811FVE#q6VrOjaXS72N~OzHuuv&e*I%(%aM<!JF`A1F?c(TGc|%SfJpr;-M;p
      zt_!_1aKbv8n8-~~Fa8S9fmZdftPs=(RMw80NZ>whXNqT3^fw)xNg6>CDFYKF%DL|p
      z>glqqnPzyM70bB!PtPPqle&-uC#+*5G^4(PC>oRCw$a>VG7;Bdv2M1BR>+QdamVJ)
      zm|tTq%r2I<rBhk^XeFr12>bW;(djduS`+r@UMrci%is7BS81CkRlllM;#B>3i;17X
      z0}KP!j~EL?rb5Jdim7tdik~y_ARZD#)CR}S<dTG9*^Dhkt=(;pn0PB5C5mdBUC^A;
      zR+MioHOt-o3nm`J<BSuvJMNkmOD2>TmY44@v79By@aP4Lt9XXSOj-^#&e~39W_|R`
      z*Cj8TbCl9cs+&t@)6H9US?h><JbTo$Wa(uL5j_6Wj<#x1!$z$NY=Ux}Lsr~osXb)i
      zJp`qU)j+Iw_h4Vo?w<bP2;Pl)!QiZ`$bqUgdmxvc%w<VtTN7;3@5B2I{H9=Gr2)vq
      z2k=4GH7m^;Q(xB4x(9YM13rw87<fY2RQ}S$llUk%>z=ukRljK_gX?JknLLHxHgKY3
      ze4IvL;$!$7-3qtcRy>=SVw{cYYI{KGf6~P7;`gY5SJ7gc#>%RZsEER#XTKVIY^U9u
      ze!2^!8i`XTK7l{r>{j5EWXslk)?R^6pG&9*uG1#YAnzvlo<fmb-FO8KI#Hj(X?6Le
      ziBI92o9mv*mNq%ic%W&ofj?r_mc_x=JA1Yb$NC3`V?B5G?imi_ykO3>y%BsG&#D<~
      zgDMA~G4Ut(Q;wwc&0ryO-H=cPWxAu>r&~Fwj7|$+)~!jVr_D+<$pBQk3EPU;sz_A!
      zG6A8qomOfzsd{^^!aO%SkO!^!VQb80rlt=k?49W(PZ%?j%@6n9)KvPg?TOX?`Mine
      z@Rx$A|6dKNXI!ZYY`Af~kH?b#gSZIe^#wKgeo0RU<#mBGtLp4pvcQ^M?W<fPE@M}b
      zh~D)pbH>15bK<G8t9#NNAxP-&Fz`2=moFD|b@&RtYN8P@m!AB%Djqmmu}DSt*VU=x
      z8!TyrWrl|p)wfJMk1rVbj^Mh|VBLN!WlbdF9Em-5DSrQ8;zcZsP=kLo@lW_?mO^)w
      z=}E<{Nj7lrh_bpQakgzAYVRJ&WF6+<wo%80RF4ebGw~|^g$2w`O{vyj4scIuD&eG4
      z6C7Vj|9$+sfq&yvQI*KVf8akkoY}<*dU1*AKF(bRUK6Y;<#bo-a4LNybr*}CPgsW^
      z;J;1$5I<6ryMC$~K<UQr)G_M!V_Y)uI%~p=mnI8>s3Y#NNm~us<#rD9xf-0iB2p_s
      zLjrVdWeQV5%Aqw0*0CQ;*pxbn_+DTqC9<)MSH9L%Kdwv<*a%({lLb-c3U0exCAbU^
      z)?&GeU>7&{s-~W@l0A--b|Nwl^}NUeQ|e_QJ)}NIY_oFe(APR$=J2?aKBCxnHC24d
      zsF6jcES76{ym5!9*pwPFD&@ZC7FlA-Qn{9G;E0nTN*;Y<c`2xp^lEIB<)&OGE7Wnp
      z8Oy0q<3M)J41wMx6p>YOy&<cac$MCpa)Yc<=b@}Up`yNb2AksO6p==0Hl&Hts?nIz
      zqE27ILrH5aqv+dAS*P#`YD1MWH=5F+Y2xWzDjSgv5;o+flAN!Yq{{M*rraX8s<A#+
      zD58B;kt;3mvkJdD>6F_I>6%f2_-jYnIbu15%4f<Z+067h<UZw*;gIdvskl0sS9PU-
      zuxBLn$Q`D1%T^jwJbQIk2>DsgjEduSQ+i|vCwd>9U9*g<*??onPQeY8OF^L-ZnZ{t
      zB~qh?+&LrOw$k0B8AJLw|5cGTWKUR5W}JyyteK&-R+N%wWeLkshI7pFE6qwZNm3c(
      zg}G<V?1G5hVI+4*eg3#oM<Hd-J}S7rjB%y1uGCSqYx`yeZkI||+o9IczA81YYvys!
      zg<t8FRG-15%!-OZ-lglB{vI}DPbQBEHvKP0meRT$VdsgP=mw)csQbfAfU3<gd(t^4
      zZtqAGzu6W(HLX)1U?pf8|AGhr>H{#;e|3oPdbRot%=>)x5m^5g^<9(KtNAO58og&>
      z^I0rtZaIU7=GHS<+}w5s(NFMs4VLn{h@62KDJ^mxA)h$vF^X&XwAtN{WmvAIF2r?|
      zFM73tl56y8CHE)|S7Eg$c|GrnD%^Y;4S8ID%9j?>&kt+vrc2{-XRkn$xBp?!+9suN
      z^EtHcSB&_#n19i;Sl8dyn#YZ8%`JJ{l*g@YMFFlkle{{JB16_$tVM2`IZeJfO}HJK
      zv=U9&Oh9Y6V?MUv4s8y->8W$G=1vuhsJV8$MYCPxzVz9O$5yZn+g%nCB#ps$v6j}S
      z5Dc7bc@{m#G1RJWyQE(_11%TOlgAtSTittS-~>YZYEQO33ptK8(SW`$Z@T~?2A#oZ
      zz*~i)!D#4d>^fP?f9ih;patvjMo-br3<%&s;_(m_co+?MD;DEXQawh8Jx<EEp&f5W
      z2Y!`yzXQE^C-&f7IEeS)UL4m3?sQf64UGA?#Ynq}k``kJhH)2hTSBAvaupz_1=z>X
      z2$Cj@ySY-J?Z*KR)s4I>;A*IKDXdRSgSEz&TI0id5chaIdib=KccVFvd#{}=XY?`6
      zXoXASGctVj4aWK?cL;18@>sr|zf}mWbz^s|zjh-%QQy`OSkIU{d|Y|&(SS4r+Maph
      z(ks(+UqYeaSv-t9ZGD=t^hrL?^9XoOt8tUd)>mUKqtsPnE$-LR7iM}njM-YI^%BPI
      zC{g6m6;tJiwUj5+XRd(Q5ghe+e3@F*@xDcsfl8^>8IFeAm|W3tG?2$J-hz4jEN`Ja
      z9_G!+<L9H{q5`XQMfyD1K2N2;K(xO|gI-`@eTj+lB31aZR_-2GtgqY_-wRvtiwwdV
      zy;5mdt5?5-U)Jfmg&z484c!)o=&xyzw=huON$)KoxGG)4+QfHxCVrgMDquURniz_P
      zw22|t#E@%ZsA!by%de5q*SY=%jrt~y`WB7)_Oy)X@Qvy4jp^`>>F|x|@Qvy4j9J2r
      zQHm??{krep+qqBe44=ch_n*ak&!g1KuT1lD*q0slz1)c3@XAeuGL!|6=mM%tKaJzc
      z`aC|=8Hffh;tpl{Zym?2?#qvV7IWRz?_b0cg_q><htUA9XQP4IJf1#*x##fd{R^Hs
      ziwox~ff|ekRZ)%x3sqU6`o~2~*XvgGBWm_KtI#E^;$dy01hARKaXU|3yQL2M#6(i&
      z!r@uw0l7-syV<qGxAzer>qoq*tyUNDSz_IQ3H%xUoLDD`lR`L1%IEMo58+<EQ68D2
      zly7OJU4K!QO0sxb&6wj0oufsGUhy!mYsN<0;ycbwOx5oe=kdjIp4VN$aW67QYVcQl
      zrV{=o#k1x(*X;4KjQ!v%{cWf5w-?Z=e0LgOQ@;B<wfd&AKq3DuzI_}Q)$_k+WPi6)
      zNA@du{Od(@7nT?BgHGcdUfLfuPUFAw_@BJgxJxn4%AE6jDf9N9mHDa!Fwf=cebMlF
      z?v{p&n5*wB0urs=7(Rh@>i4pSa9&n+8j5&r=tD5w#fM4FMXRQMG%O8aO`MnZCoX;N
      z1Y1_PAgC@{7Y%Dcb>|iJ`cnl%Lpm$v=2J9XZc~56wwY|U<Yn8beSU@n*{2go$QxJ^
      zp2rK)OAx<@OVWu~8E3o`Uv(PZ<vHYiSVK^6L{Qdao@~G}xe3d8Uo9Ka!d*AYCPw8Q
      z=$7s1mmb_JJ7DvkkexUzcOpwp4@e&#lmR>@gLsGBh4;!nJSlhMr0mBTIf(Oo_JYLl
      zqF8uYM(`bp<GXSQugZORO%78l&i~>_STZu7_l1&^205yO<RhFw==4I6aOFk2ER)^R
      zuba~kWq^`v*=4>jZ)A)IICy<khGY-lZN$?uO!*=7W2x+=W(LQtg>pA_GuTt+$N_2?
      z#*^$d!>mOH>ra>NHDUGHiFEgH^|D7-hu096dsU^P3d`h8w2HHlyqT7{p}*7Xz#(S6
      ij1&hXotMJ7LmrxzP$56~Lw**AWK?XGP(+BkW$Y)l9+D>j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/LocalRequest.class b/libjava/classpath/lib/gnu/CORBA/Poa/LocalRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c46cd7fcd764b38f0b85e1f440cac6066c7b4fb
      GIT binary patch
      literal 12849
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/LocalServerRequest.class b/libjava/classpath/lib/gnu/CORBA/Poa/LocalServerRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff4005a7940abf5147de6db47faafc5cce5ceb45
      GIT binary patch
      literal 3164
      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
      Gx%wa8N59hm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/ORB_1_4.class b/libjava/classpath/lib/gnu/CORBA/Poa/ORB_1_4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..380a3915055f7d64b3d9d74250aedd9f00b93cff
      GIT binary patch
      literal 7622
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/ServantDelegateImpl.class b/libjava/classpath/lib/gnu/CORBA/Poa/ServantDelegateImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f99e142800eddbf3fcf5e6687762f9ab6e06bac
      GIT binary patch
      literal 4010
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/StandardPolicies.class b/libjava/classpath/lib/gnu/CORBA/Poa/StandardPolicies.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8401d6130eb7f4228ab5e853613487b8673fda4f
      GIT binary patch
      literal 3263
      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
      Du(6c~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuAdapterActivator.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuAdapterActivator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5443062282b42dfafa7c48aa4cf4d74116d068e2
      GIT binary patch
      literal 1055
      zcwU85TW=CU6#h=3Y=yPeR(qj0vDQLwYkkF-V58AU3lUQjeIV0iLKk6%Ob65_e~vGG
      z@k#N)AK;HNo?U26t<Y?C&dj-d=bN+N{`&pnCxAUXa4<&5)K$mZFTHwF@XA_vd@9sL
      z+e%aLZO|1~8wYX1f;M$ex9Wq`qV`3zbli}>b&w!zoQKQWSaIBx6=}NCc>iJ%5|08E
      z*vEueHg`mb@9UaOB8HR;2NQ&;VxZ(<r*$mN>kx=A9W^@=CJ4_1XWX6yr-ZfQmGtwB
      z*-`J6{-CO&A0zB#i$fTfOND%~A-ckA3RU+i)a&%I4z2DcsDBCK3&S+PRZgsGKv
      zGw=g>>S7ji1jlG?InJZY=H3-AjxWmnluuy+iw@F+^l&yVmat4n`bG*XtLz~(vX?22
      zxX^)6qApE-2#wsRS%e%{UED#2FlkRB0s}n4dUjOpdD|4$u<qa<i|xu}7xzOIOo;yH
      zlMb?knZK8P`q7td8)(H!Y6~NkB`l5NA5QKhXx6Gqv?4KG8XSQbEm_eW<I873sIK|{
      z=x8@AL<X!}e#iM28e_|v<@Fk$JhsGkeDfQUU!$<gYa((!#C2ZXegY;j#g=dbHwVR^
      z5$6Y3-P)$_nC@Xdj>DZERtP=ZC452RP3$aw76Hs5jg0~PY{cX_?_aR@B^GgjWt5_J
      dn|;VZyKt9dA4R(@Y)1%_*kNCIquq$I_Xo`y3hV#?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuForwardRequest.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuForwardRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d916d35d716b14f896427e7e6198410044d30faf
      GIT binary patch
      literal 759
      zcwU84T~8B16g{^sU8pUER*MuBDuQiE-1v+!X^SL~RY)t1JT=qpP?l_G>U3B6EB*qX
      zeIO*7`0?tGQt!4+h)TjHJ9E#@o^$R!yFY(@{tDnJDi&gd)xHYt#zC`Qvk$ef8SQHG
      zUYK4}z76Flu#g}W&%`@n`$F~YW~c&hAYYujau|485f(<$c*1W>Gh%$Sw?m+PLZ+eB
      zC=e=W3qO=Izo!>r@nmAqG4ezjsa#1|ceLr-deEP?GSnszU0>P<-81P1dxN3BO~_7}
      zp6Yj8-D4ir3CU-k@`C4t<?=r&6Y_SYO-MBO{S@NJr7@2@AzrSu=RmlVMj9ClON7#m
      zJw$}%G*Y-_VTG{tH=$nJ=^WOYwU@KFPsm@<*5vt+OW8}Ih}EcpH8w6gSE;rF!$XZb
      z%{rcvufjoBn%9v%A?Ik9^A(&j<LSdhaO#b?XXl3R$Fb!_=bFe1*M~(&wRC7)x$8wX
      zh5rPfL|voANyPa#it|J>NHVe*#W2ei$HO&6xsG?@fwR0WFjCBj@xEET#9}phf!kX@
      zQ22oP>ehD@E^zlFGG9<U&fUAjgKwY4nk8O~>;bfpz&_@1#9D2v;0-o#jE8(un5beM
      QkAQKt!FS~Sc&t(W14W>|ApigX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuIdAssignmentPolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuIdAssignmentPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..990e51d4286dd7802c5a1c9539f1a500afa49195
      GIT binary patch
      literal 942
      zcwUu~OK;Oq5QWd=WfR;qq@~aREwmKuR*IXlYY<YJ0CHuu6`|Q8$GtMQa%^Nfk@#1z
      zDH03BnjeK2+Yt}ZMPkX18J+oNeD3`C`SlxsHVg#?!nPMo%--pnqpo=tIwnWfMK_M6
      z7mP)aoQ1x0KPo5@*8d3K<!NjD!9Q|hp`b!A!pJkjvB#7saYnuvh-fMz^E#SJ*!Z_?
      z*L4NUxGdKY>amEV;}1m?%P=^%`UE;AEcL=5PMjbaI{rkIkzYipJePq?UJ#z?_S~an
      zkd84VlzQQXsG@;Y1uKNsVh9blu|_CQ(|}Oa4NJvcLfh)whm2~?g*t4v_NyqOsiB5@
      zY^iS9m(J8NeJAkD)6u1Hlg{6%K@!Qp%jRFUWgt!_<B^EorcDS9J9ODUhh5}&mMkUj
      zWlY$y=Q#BaJ3b}sFKQ>@KsOdGs)F!X!w#MhR8Qo`OIT&ne-;p`gK!eL;+0JQsd?@6
      zt+Wh}7+XXEWhngB#0{j4Zt}_$pz%%Y^fEu|oH=Gyf#0>=`pVwk6>c@|e8KwXOnX1g
      zGYRNJ#Y-&VH6C!ZmRDc{o7p1P@G$F1ybxP6?m-p<>h2Y`zoYT#H?flCPco90Yi1<E
      I(@drR0xKKzB>(^b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuIdUniquenessPolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuIdUniquenessPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d6696a160f61a758ea7a662d57020a2d726bb76
      GIT binary patch
      literal 942
      zcwUu~OK;Oq5QWd=X@Z*uQwj}G9;INnQrwhXgOJ(;kSnXL2+bBb?v=TfV}l=&_*bwg
      z5(~tdAB7m(5f9NtV#$x0d*++*x%bD<uipT4VboC~Y<NLx_K#m5?3*W{V{&Ajod)tl
      zDgqJ5C!sIhk9AZCYk!1qi?lU)?;kj^sG~+O!pJkjiN};EamKzFifAe#^D>%3SpT=}
      zzU%V3<g!9TXvHFujz1DnEW_Z`8W8A^u+$HOIB|kx<oKzmqPU1qdnN;!JSRNW?YT$E
      zAw6S6sPw}#(SU}PI<6Bsiy>6pz$&3S%>qJMH!KCW2wiJn?=h+~7izED*=eARwu&Zh
      zv!%LapF2~>^qs&nkH_c2O?rQ)hDjs?FQ0$emVr1*Cu0%4$(j%}J9ODUhh5}&maHW2
      zWK7t!=h*cgJ3b}sENUlVS2q?dYJl)a#U>sT6i*b}OITsje-;oL!!V6p@lt00)V_53
      zPF98oj4h*tD(d{z#ua3ZuJVy7LFJp+>1BSlICIFV62F^UEp2=I0@t*gU$FK$*WStU
      zOacZ_@B&MCg}WTB78O{>z5F0HaX;@#d>|gqxVw1_C|eiU_zvyUZ(=RaALS&q(9B4L
      IC%H=h1>WEE^8f$<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuImplicitActivationPolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuImplicitActivationPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80c09ade8187ac093f069ad7f7d65b418396fb9c
      GIT binary patch
      literal 996
      zcwU{7TW`}q5QWd=W)s{rgivUKQtoym#S|ef4MIv2ic(o^MIf(eV^(G>$40gjiGKwz
      zMdAVR%#T8h?TCvIh{lq=o})A0?9R^DZ=XH`*n*{@K(M@EYWEJF?{w|MP}m#|CU1S^
      zs-){CY9<mD28SUF?=+MMt3U0payhl{h*)Z<5bQAW>~P{SD@w%JmqQuNWMu!HsT0<J
      z-$K`QWgII`&OL;BEF&fSk&I%_d^zY7XpgYe3xhZjK{68lRF;uHM5sJgfl8hb9+}Pw
      zH<Y0|)`(E*g|B554Ky{JCEQyCWZ)cD2<2HC5Q?TX&~btAV9<BA8Q4AnaC@tLr-~xh
      z4AgLuFU}k|M`9*yUj&|gFg}uQ()m>yCXouf>@3TU3grHDGM3Scv=pJ?gf4efa9=r|
      zi>2g^iU}>}zh|PuH!&mJU#!i9ho-eyY88YV25#aOLHA@n0)!^>{%8uJIt-_gD|c0T
      z%8h@Vr=2F_D#ME?pbU-w)^G}Gxzjvc1sMDi-@r0|>#XdttH5h*v)*jAj&Y`O{v%dD
      zWZp}u&Lp4@9Z#`@XSmGKN}hprT**eZhK;Ny@wi-@bMIy`pl=@I`WH0b{~%T}eLo`^
      Mxo1uy+|FF)cS*SmDgXcg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuLifespanPolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuLifespanPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5864cdf75c4590685ddec5bca39b7de2843a1c76
      GIT binary patch
      literal 906
      zcwUu~O>fgc5Qg8$mrZcfG?YLKw3Je?Q-~?Y1|hWxpj1{{5t=L7n8j@6*p=->;$Oj~
      zNE{GneiUMCM|}0r){?!RSMNMCJG(!Ae*Feu3zmigVbu#JcK6`*?v8yJ3Y#NGy_fNc
      z2o6JExgRx@2upuVZ*#dnKJj-&EHzXJ8)4+x;n-tBl!%cp2Qr$<$o`+C6IT8$x8u4p
      zjuofm9zs2qkrMt;MzIQmqkfM-dxW`e7{rMPlA-V?vW)y8LgkqXRPvl)o6d#W$N(K{
      zNGNr~ce08G7ByTWv@V`*;5wRw@-z(yMbql*xJh{2?>XCyX`hSP-fBOoqKIV!HQXXt
      zX5Tp$Q(^le@a%)pv2>Hp-_jt7RN!TO&pRrR`;+lVMsLyrgoYEkJTt+Q<9H^Pk`F2-
      ztU2eLaEB*6B|N&!_y}#&x=cb9g!=|I@PMFuGCxMbB2&(6n@}BulgO1XRl1MnnU33O
      z3f34|L;+=J{I`rNNQ+$MYf*r~FY#pO`CDgYk6i^`Ypwdi=H@9D8aKXR>2v12o$5>i
      zdeHF#b9jY295wR{tY9^}Y&G1?Y7!s*y&3mu76W?g6zkv7`1G4t$@Kk<WaOS1iSRIU
      GnZE#Uf91;n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa7a1412bd28130ff7943549fb210dcf3f45ca21
      GIT binary patch
      literal 1993
      zcwT)}-%}e^6#j0q5RxoyS{h0bX+*3^2t<Tpm0Bg#*wmCDp{Xs}^(MIui^*<gcT)#P
      zM@ReMsDFTu`cxmQL#aQ;PT!pIkMPwe{{`#0n-plWH8Z>S<lb|>^PO|Py?_4u>wN&T
      z*b2bM5UUxj^m1V>vy@&nd7A#M7M3R0#Eo^)Xx6zS0#FztTl^+Z*SS$k7s^|r;snso
      zFlSn|wArXpq~-8(UE~Z$SQXK9OsnHZK*AD6MLdEdEL&JQua|^n>!xuzcb<V=WEfmF
      z4cp;{Q{wfO=tKL*7!EZwUgb?f)(qYtfT4~2KAoat=|*jlq2Jlm?a3DyhVxz}NsqI-
      zp*!aoPQ<-k5+w#@*{q5n7>=npgu@~DF{~nj;|%_Iq7=XhBH*TPIeI<4WLbPWuiH)t
      zBNz^04C4VjP0?NnRGdVNVZhlGol=g)6TP)as0kI%Vv=(5YLy`x&vy@CF>y_1JEh`z
      z#2G>ov&pH|4#PO1c8{hgtee70%QC}AN|sX$qfhpdPNyW385L<zTNPXXNVrYN1@Piy
      zl4$dmO`BJtVo-)HsCWry$iF5WSwJq)TLQ!3yl#k<R--Jeb(x>xXx^-lI5<g!{&zMN
      zIa`Ja&#@g8D?#?j&XRL9?=dAh_cu+>F!p~9B0=i(<QUY)l^2aCJhT@=7H<YHsNw=B
      zrms>rjh@-=mE3PyWlgUJX?S@Rm#{(+4UIM#j(62ZhBm9sF9xxSwE*5G0-g>kE}|$~
      z=kZwtZMQBrV+rpBaE0>hqZF)iwq;Zt`Vx6v#k#}^H~0raGhM<Asdz8!MrL1N9h`P~
      zQj+hgcn{YZMk<z|k!aSVD?s~DcQ%QL#N5dAqCNqWreKMtY3p>WZ09I?piNDhzKski
      zQFAP+fxBZQd|URmszP9p4k^9nbmSoq>02q9ExM($x|CM9EutC8hBD<0Ls-joZrf5r
      z;RDh_jP&iNr;pyF2w;HhAYD;Dgy?=C*#nV?yfbL8pPmSgkjGK7{-zjtp_$34yBJE|
      zL-aR{T)l_UOR1?{Jhh8wuF(42%56kb)4w3WAh*a$F|17g@$jEyY8TVLWA-lQ{0qu$
      zj3;+67gbVnxgS-kN_7{fA7Hk4OJPyP-TnUIUq8C!UZ(egB!_Q^#5Pg>n23EsC45TP
      z(Px;z=a|M9m?!%TzQi)VLJnVp)A|ZUC80>_Sj1UckKj69#W}(~NuqoWuTwL!h+_#E
      z@?#WzzEkvRS{bcjNoN;tJV5r&9-)5s=vy~|+IH(CV5H@k2gJ}0-r7N-8{#`pi1j^)
      znGS^V6E1hh{%{~x*^9l3Yn|8&RGXjHkW4Qpwb6}m$3=*>y*dce(ol5ILwKM1=p(zl
      c*Ovo~D&2TLdoc3hhWoBz(?yigW6**B07b#PHUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a94dd328fff415740b380168bc4e0c91f26e7f0
      GIT binary patch
      literal 25936
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8881d5db1335d019cbdf2b9a89f73521777f227e
      GIT binary patch
      literal 3326
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPoaCurrent.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPoaCurrent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8de62d0b68e7b20c79dc37bde431fe8c1579af30
      GIT binary patch
      literal 2741
      zcwVJdU2has7=BK>bjo%LEtFD9mk%wt+ih79QDBje)?zE$ZDnh}K<jinZU=T}*6D14
      z3u3%85))%$O!Sf{H-vyupb{;yi5JEn;;&Gjb7s11yU^5_?ChCy-mm9<-{-vZ$KOBy
      z3g9rVYN!#|owG}czTpeKXA>iik>HL?U&(b%+tUyd*zdTxgj2``N=3)@jG4Td7@oOo
      zX1&2eF|VOcV9$!$NT850-38N41g-=$Z_YK1*?EEOsmsQKktlgqJ~8T==8#cL3e=sn
      zY|A?(P#cYn355EbSu>1UH0s!lu!gMy%~f_`Y(e8@2yD}#p<ZBX%CgOLsW4-@qY?!r
      zDJN^>#|+n!``|F-%~?beNv)GTF@>fr33x{|cG1V2H|$&@<GGfdOKNBrXj*$5MhEt2
      zh_JG&3m14DF!M#z)v*`*1Zu2VftF~j+POeu&h(}oRpe=@79xmVfpGt|tXcFd$DY@4
      zKp?Sx-A9b<6(eUR(oUaad*(GSjF%A85M2d*RJBG&7vc<@^-cZ5wfOwgq;%7x<B-fk
      zBhs`{Fl94d*2%0_*hHQQ9E?_2`h-cws*g0hDiB>ikzrQNP-!>d2wu~%A1{Q_iDQx;
      z$7PSIizs;{T!F6CMtvv!Y^Fzs&yvzi{5gh{Cnb*4I!@vZrdupA-P6(PLTx;BY)lrg
      zPsbU&DRAr=rQ1+3nX)HYUxkEM%r&!)%a+#88Km{z=z8hJrX-y6I#L)Cs3%tUdPX+2
      zd4&(^BJzlp7{)sqM#!C20v#8Sp{?b~Bpr65b(QU4a83vBVq62;wXIsJV*-=pzfJb8
      zWn-B@7dcj*nsPF9_DjGGn8JHH-j@#Q+1N27Uotg(Ah7ePlR;h#*EaI~uIspAOrufa
      z$?BK|M}@{(rB!GSrYYHK#}MdPuXF?}QzqDFCF@HIq-^RLh?8rm95m1GhONUvQJ^8q
      z%WPQo{CV^G8vPYwOsRGkoCWha4i($jqL1Wt4QHH^n>Ei_YGSS$gNLLkZyPh`vx!fQ
      z9JTy})bpLAng0#k^(r~g)b$X0*JEs%e2Au>(0rd~HQ3JoEz|vK({*B0({-v&F-
      z%9U+FTj1{~^`xvJ^b2-P);_}S%)PR!IwcyaaM4h9!NEYS7x^w7bSh`xGPDeSyz56a
      zPY(Simq$4G0NoFec!DFT?&aI4>t0@p|Bi5c5l02?Jx1rGuk#SEFR85C5uuX^hj*k5
      zrJZ0vnrXO1>{HlBwsn$3aTp5TK0j~(uZ<Nv!Q2JUcLi@k&XE5N`P6@fY*Sh!Ae&HJ
      z2AwD5(uN_Q!P%fuSE(J6F%;0W0vaa-;_Myoksy1Pm+mVtt#klByVdH0*`|zdQ2H^0
      z-{9x-lL`=#0EB$&$2ryN2;L%y8om!;FaYrv_nWv*R8;E$-d;pnAblH$dloS&@B~x*
      zoe1p;E#i{g9#M6Re~+f_<<On+$CxH-jU{T&2z>L;pDQ)4y+f1-aEzVmB+?VeFxE+o
      zs5QfBktyeMNa6XETAwkGn`HFowETj$U((_$cKT~(auaFljIqly*Dh6qiE^$J_z*c}
      z*1|}0uvm!$tjA?sQT!M{KFE5OF=dt7Dzc6%h7`J&?+~}DdJFx6&rY>g-o;y#e#g^W
      z3PmervfV2v+JcG;&ImV%m=7X$R7IR0Un!Q~>m9V0KHAk<+3UNM-sAo*dGJF;<c@OW
      Lj&kIZvR(KWoRMF7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuRequestProcessingPolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuRequestProcessingPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0fc5ba4a1cc8c3b3bae08bf052ae975818c285cb
      GIT binary patch
      literal 987
      zcwU{7?Q7Fe6vm&^x5V0Ywa)6MZoZpz&^To(s|Z``BqMBP)qa)Rc!?QlqIoI!U+I?#
      z`yhVyj}lLk;tMjE4J0?`;W@u^@44sukCU$eHlQmg5H!b6jNZZF&bBcKgu&6F{E)~f
      z9)y7{qsaB0LEyReM+GIq@^AN>Ts9}~y&Vxr1r<Uk2puDsIE)HoG4|w8hEo|Dry^Ct
      z>famKwlfRo<{m;LlA$ZSkqjd@@L!vK0__nNdVwFs!jDJ7OJo`OLxjpR*LUORgr}PI
      zfBVTuU429-^@6vuiYAs6TqHc2gHyvLv<T&C8W4(_ZmPIKcx?8qE#`I3&fD7PJgB0G
      zl^W`}O3*daIucW1c*1v#gYl8H<L;l*Fb+96JISKu`f@*+jAi&Ltwd;Afz9m{+*FQd
      zVkv&-MufI?)^X_aEldfUbG4Z8MAPTWtb%Z-hP${&P#u|HK4FP*|8#^<9R^8g%Uw4;
      z;@atl>7=>1$?PHuC_~}D6`Vs_?L1Fa0X2S!yT8ca1}l5)D)3rwH(KlK$GFhE`~}OO
      zGw-!jXA;ndiWgYGOI+uum1kfTYuT*UaU-iqJSn$k+=p2VsO@9i{)XnKU&KnL?`Nc1
      M?wOGY_cNFF6ZZ=UqyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56b89a3a0a78d90edaba96a0b27a1921fffeca72
      GIT binary patch
      literal 14471
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantRetentionPolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantRetentionPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40865eb8d26556b84a0a90c571565f5109c74a94
      GIT binary patch
      literal 978
      zcwU{8?Q7Fe6vm&^x5S!twQkc*t?!y_*tp>ftRif!N=Dems{Jar@e=Py6G_s7|CN53
      z;0N)uf0THV6km|Rwm@Fa!*hNo_uO-T{QUY2z&b1qCBl6_oY=j+gY7MQKN2=a0~t?6
      zm>$SfhN+6e{U}i0M-3Ii@*nftLUzU<f^CsV4K>1pDE94W>@z7&#VC*&O2+naM4iz7
      zxBQmp$s|#nT6hS}M8--4Lm4NW`NruJXooP@i^3#j=uiX`Sw(RXq4rFLDt%6PYPzTT
      zogCD)hJ;EldME2>VL`)1!p7+_1{SeIs7|whP&O?`$7RA}r|)huu5)7C=6dI09c8Q-
      zXy6LLG9C9&OobhY(6{$Shtf;Ce@lZjR-vD-W8PJv+?|X^GJc&EBDCDd<6a8xD91Cg
      zlD=07lid?eLYH@7N_cdZ_7a|$)>#tkAlxx<7xxIdFN<v_EHLfAb`a`=XcBw!rOMXV
      zK6WLYEEP8yT}BC2X#BN;bI6LF=W!~*;G4Mf^ZabGvcs+tzZ<K~#kI8~TxebTg5}S-
      z_iCmy3Ft$|3(Vmau5q+fWT1`f`H(hnBd<w3B)4YVjXVbQ)g#>gj@GB	FTJ<|L!=
      L%t(B8bC>xG@b3iI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuThreadPolicy.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuThreadPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bae7864c16c268cc72b847244f3a813a9d44629f
      GIT binary patch
      literal 888
      zcwUWCO>fgc5Pg#`o8YD)ghC5#f%0J|5L1o~LTVF0sjRjlC0Dd@SMFAhjcg|p{|YWe
      z;($2wqYz^|0tynu(t3BE-g`4Uv){gd{sLedmWBdh-3z96@9_2Bu6+~=o1^2?NQ#rA
      z&{ytz4JE?rFUs2-9!%c(dm@$^Duk^t^6YTpu|7(~*q1{Y&17U>^w9|$7gO!Ju8d>F
      zf}BIB$1+mFAIT_IVen?qC(u4&sTT%uB7$Tj{HZJ>|A<g|rUI2bCp<Qt1&YYzU28-r
      z^}-WbMFUL@R|)2#VguK(LMYGDfKW88fsPx5_Mq?Vuu11XCOg}mCsh=&W}t?f1j`&a
      zXJRI7Uj&|gI6jkZ()}G8CXouftmb7$1@d4z8O!K6wI?*3(B*Ck?it5(u#}vtn6T;m
      zbFN+P?2OP_ylsR>rnNY|3c@`D_wj(Bdomv#p~)V9U6@cEhSSKEFI9Sj<{!0oQUUI;
      zVG#wCq48-Amyo8o%nzXegBNi}m-%03WS?0D-fOLTz1=>?mB#f?SpArBZ>2ap0e$Fr
      zfhD}cI!7zH0vp)Oo>vXGvz){uzdQGRn#F+LI>**mG(P-vtYr8>=49lYxf9`G#xj2Z
      Dvfkbf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/RawReply.class b/libjava/classpath/lib/gnu/CORBA/RawReply.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..097a106907d4177c35d5fb14c69b83cee211f88d
      GIT binary patch
      literal 1131
      zcwU85YflqF6g^W)Ys&(~LRCbbirX!)K0z%$Xn9z(P*Y4JpdnK_U6zzxvfX0zi+@QI
      zD2XQi0DqM6&bA1N4Sd*{Gjs2pd+uX@|M~F?z<sQQ5n#A#+I2mfFJu<<0{>JH2i4DE
      z1Q}v`{E+KaZku|(v?q2vhS09yW#KXm8)uJJa{0IVs;JetDPH^bG((5umKfrO<C?m&
      zZ?;@%AzQG_J<br=$`IqcWn110hFP_Z@5NEJGRY#bWu3B!q657Ox)7t#YO)vs<)t8u
      zD-!i9=tM}Ogn|g7484YBi?#ZGNx1KLsVd0ZaCUgL$X!dGTbDs^*Q(Kb<Np#-9wBaT
      z`)Ni9oK_~px0~rjOyRA2uHgF&6Ke7tMRu{EXX=%Ta9vT(mff6vQ1{Ydj4_N{;uXax
      zCS;zs89G&2fG8%RhH;l+=%QjNNJ3-iCQ;3cb?b}pYn79nQwpXrL!xWK%U3G2Qu1m}
      z7IG5z6q=O>4B<oJ)-1=CeLag+Y+j}%%_9YmG0PAog5s%jLT%$Mg^%Kif~R;!MU!D=
      zB@^wYpqb>ng6E(?>9T4W%UrU{7PtKbHYL+51q+~gQi$oCIjC;R83|Z~$1ZIF314^W
      z?v7ZtWcRyIdp#rn1PVgo=)dVeOpX(wm>e*Fr=g-fKwlRW^6Ms4rE`$>e(eN3TIv{m
      z+SD=P+Vn97zWd(SXiX3o@P<4MVp&BG)(}S?*XdSkzQ+v=0zSG)@tBW>NI}3yw-EJp
      z4P&Gg`752JZSE&VH?$)RoM7BY5r{W%r-76YkDxd3P{O_j=33Tt120qG{)rp((|k`U
      iZP0lW<JclmAE?P6eSwK)n3g~VDP*xoA{dr@j^)4F0`3_A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/ResponseHandlerImpl.class b/libjava/classpath/lib/gnu/CORBA/ResponseHandlerImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96a4b576bcdbcd03980fbe9b58b6dfa6c01c3dbc
      GIT binary patch
      literal 2485
      zcwUWF-Bue_6#fSC1L=YCQ)!U`VzEuqmb6N>3TPp;C7L!hsnJq3olH)`&}1geOaeu(
      zbXEHZdg-Owi|QgltIG%QC43W?`^-!e5(0QJbM~CG_qYGPv*+)BpZ^8mGQRYqOTu_T
      zt3;xS<kDg!$<4B^nS4doaz$>$O68&-9ti{Ma#fBLWvviNWY@W3`QejrRyPU}y;N|G
      z%erC7*&=U8k<ee_rYRSAW{t}^u`v;E`n(xS+=<+B6jto>ISJjmk(DqUZ}mVgI%5Ve
      z7aujSPPbzv#c>0v-{2b+ZdwQXPC5!r3%;fBvZd;pjU+)@mEg-(@_AuCwZ}ZVoQy2l
      z`#cxT8HtKju2_WNn^!f}dRKxL?2y6XxgVCz;gN^Z5<F2o#{=lbNrqvZqCy5k>0U^9
      znZb`9A)RJ81}3BlhCcKQ=@o`v1Og<z%5X;5^_8j0vcXf9!R3;K<8f8vw=1PAH|~li
      zOBjmlid;;~hAO_@O^>yvni3}ChjL1kNY*lTk9$gu&h!`!vDesW$R`vE!Q$83x^gZU
      ziXT8grx8x*b0WV8!*L7<=`zD0h9n$wKy9pE%;HTyu27W@E<VFsxY{6}X~|ZF5|v^U
      zYk^x!E<4UpP)GA)KsDR5p+2qpL6n(1!aRTloD{D`h9yL)k|wtjqLL$>$R@gf9XI{B
      zL7hL0cnm9`Wc*cbm=u<{d`<PVvpFaHe!vjNEeQegn|`58zV~Yj-?K<C+`)&$Ad?$a
      zRpA*$*DSte5$o=^6FTLnL>&!sm%>MW+?6ohrYLBh;#R9ZLmD3w2lJ|ylduvz3O>|+
      z-VxPK`X0k7?mJ1lS`tFR{|69C2k;p(eta%ra9^1i9zdq@R5VL1W>ifnR!p@@cgY)!
      z#X_qAYM;W81MTz?)0}Rl)NO8)CMKdQFswl(CJHL#^QH*S6O0MJvv|l*1l?forlDG7
      zG#zYX=wjBi3|X<73>A%AfG(~|xpiRL`bD*%sanBR4!{8Y56l*R?bl<dh!i{~MJ`M>
      z8Mefr@fzHYH=yy&jP3>>Na+<r;Wtz<Q%-f5AT#2Jgekhv-Sl|jqflwS(O+#)Ofq|=
      zDQB-V<7n*?6Tn{S{?qECXBa2Q`X!Q{(7u<}iSRB)!WU{74PUHbEIjI|VLW`khDkb@
      z`o*@N7JB3jP~btH{1wQ<8eypz#X83E5U<hctb>TNI0x8L5Msm%DMYb$*;1II?6#%z
      zgyNy|3%KY;b&Yg{et($4m=O_#cW~)hBZ_|8vPyn7DT*!ID|0MduM%Ewpv7IZk#Kht
      zZH(kMT2Y563g9uJenY6=QoWw+K^|!!zm0cX<Or?e%-ag&vp2unW9)4h&tblU@yydU
      z;~zR0cZolgYy1yYK-BT;@E=&Xw~O~`xFmw0XR?lKt~k1b<vQMXzs7cO`!^)(_{2T(
      zc<T7{dn~@tt|MDVUTBJ)I@aAy@wEf3j*SQN4Y?|$G1706V}_^){7CPgs9ZnO-cww`
      qGc4m*BvGSTu!}N&$2OkhEBtAvIO3$?rdXyXJi=AGGTS!p7ykhT>_;5{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/SafeForDirectCalls.class b/libjava/classpath/lib/gnu/CORBA/SafeForDirectCalls.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3fbd82b5cbbccbb21a469ce030f0a3b0ab4666e
      GIT binary patch
      literal 127
      zcwRg8Z`VEs1_nb0c6J6PMh2Pmyi$E<{~#wv{ous3RJZ&hm&~Hn<Pzt^oSb5I1{OvJ
      zfvm)`ME#t^ymWp4q%5EmBLi1(erZv1s#|7GDkFn9ranE87B)r(Mh0dE2w-Gj1(Hk*
      FYydXzAfNyM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/ServiceDetailHolder.class b/libjava/classpath/lib/gnu/CORBA/ServiceDetailHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..226c3963aa55120d3a36d49d85fe630079b49e08
      GIT binary patch
      literal 1154
      zcwUWDU2oGs5S+`Gu`vx4D5VhEK%q_ov3M>5rGbi~s1c-!1TU47oWfO(9hq|w{|Y1!
      z5fA(TeiUNwY(*r{HnPsXz1x|c9j$-;{_zvQW4Hz~45eWZyUq5Sy@uQ2(M0t5b1psM
      zzYP5Wj|}7(E}wW4&-J}v=(c+&ye|zD7|LNZbi>gw1&_l>dOe@J9T{<Nq_zzCiRZ`k
      zEw$#8=PK<o6rPAc$fpcj&Y78&E<>&v4!DIZF4-`#!jN?;T@xhJhJgzV#g+*8VLa;b
      z=qQn~+6w!g-}NG);`A^l--{0no2@eqAaS<RCKO)xl0T;Y1`IokQfCev1mjpHHjrWq
      zH*w3r#y^hDSL6PeM>cMwMADK9&E+bb<84L+4BN{vsovzLG4;6NEV3TaxiWrNwR6wL
      zHp<FEon1Ko7zs%m=TyP%ST1_v*r=dNHB<15<-q68M>dQl!~Lbm7_3ehM}598)JUxV
      zX8`JI_)(_$%F@cyVrtCj56aQbghlU*6zwBJ4`5Zl!>-o8q4<TO46e|7g|NUgLNo}m
      zhgFK!l5AYXH9+sK6RToh!;O@)k#d^V+7#<^l$O3YAjqq~=*$_Ni96WTbX!`yqO0qe
      wgimqz^NgvW&t7X5JGoC;$VEI@lv1mHMRAIqMJaDd%DYpf)bLQ3exxz=KXSMSCjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class b/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc813062b99ff644b34479fb23cb2c2cb6e4f448
      GIT binary patch
      literal 3086
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/SetOverrideTypeHolder.class b/libjava/classpath/lib/gnu/CORBA/SetOverrideTypeHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df821bfd837eacdd8661ba4ddd13acab048abfe0
      GIT binary patch
      literal 1170
      zcwUW@+iuf95QhKF5gXIc0tLb$qzCFa5R2=gicnEfDI$ne5nNSHvI?#oJ6hI3ycI|w
      zA})9U9tttLu_9_w5?Qu)y!(Ii&uIMX_m7_dp1>_4!%!K8v3uBg^StSHx$I225dM&#
      ze46l96b!j2BFAv`%$s^{;DsZ%(?8<_Sww-M8i|n`jYo-m5((+`1MYUE;NDm*8S+yv
      zi0NHvpFf<+wa-v^>W98OVA!&koUQd3a);57o5<pd1p{jgS-aLVKvpdjafzYS_Cx+E
      z9{0I8nOoUtM*}bDdBRt5@-Zjh`yZ&3_L4S`K}-4b6+u^К%40~z2i#{BOlUUB1
      zL7q+A#+@R{4BP)Luf>B27Z&c~9@(4cc(GcJr9IC0A;ZopELEQ*5kuKda}`Xre_xff
      zZD9vh)kuB1aQadBk{0%bmOHUb_r<nQgF`tJ@ypf3E6hnYiY3GDN;n3y8^vP4k9;*6
      z<$n%BL;VV<(xheS&eP4*z|kL-qm==Zo|h>)LWVBDbiTuK>fccMLQw|m^jsq?a6pP@
      zq-bJ;qRshfT*GxhuWk@k(Km53VKx({;nZiibq;CjjTT9c|H2syoPqnOXxsyBUf~)#
      xCgU?~eO{0X`rB(wvF7^;h5CqxX)AT-D@rr$rLDXrEAK9_QpY2m`mxqD{s8f?4u1du
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/SimpleDelegate.class b/libjava/classpath/lib/gnu/CORBA/SimpleDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8cff1143472121a4fbfa0e6f8371b7db94d03334
      GIT binary patch
      literal 4870
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/SocketRepository.class b/libjava/classpath/lib/gnu/CORBA/SocketRepository.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81448b3b1172055c3eac47992b835456c5691568
      GIT binary patch
      literal 1958
      zcwTi>TT@$A6#h1sB!oj#?&V@F*g|e?w6%zas^wBj8$byLLo4(Uj&Nu=hsil9pfirX
      zIUQ&8&4EAAmp-&QLyOK>M;@H<)fs<;KSKTXPK1;M2F_xy>-Vj-_Wt9apMC-G2G+c&
      z66jp9^0ATWnc?fPq@B5MxHHCv?U=5e+xDVH;PjgQK#yg0Yb7?lv}R;n0k5MR9f9VA
      zvgTbg8@s7HtCRXhT);P!$(okwzAI2245b8WM(kz7i+X{^GJik(XwYy9J^{~=3abOl
      zYN&-rAdoOEV=BMCWaMV`rK};)l&~{;Hl^oGc~(k4s?oqQ?y5;p-HDSa5uJY{?=BV?
      z2=oOL$N9wz8q08t(eY49g6z=Hi7rxNyujdzfu)*Ixyny+uV^?c`BtrDnD4%^Em@U$
      z3J9`kEQ2G#oY!yxeQdR1xw-A6q|z7+l}v-Gcs+s$dl3?7c*&q4f+%B6*U0JYia^^-
      zu@gl-6I{aUUc?Bm+^TVfF0<*DvBl~w!3tcxc#}JF6v}a*ACrLVaRmb!-jWG?D~6lW
      zvw1Ga+no0?wz6Gu4MVslpjo!Nm^1QDVG&w_<&&D1kl)krzFMc8v2H&wq-t2h2u8WO
      ztGY9#0CO|viC*@AsVcE&|5>FqQ2{?~RnC?lgSf3BArt#dXC!Mo#<EmSX_!{kOlR26
      zTT1t#h8d}=r=x9IY)`>=R>Mb9A26K>i>sAf&AZF?rX_828a|e`)21_>cT0@iVs`Ct
      zi!W4I#!$t*xvSw5ERg-mN!wp>W&OA(d%92!{C!U%%V<~zyQ4XVo3v-mb;Fjoq9!;I
      zN_nv&aOPO`v8{};;hMIDp0xA1jB&%1Lu@^MLodld^l<Df#;;$#1N_eeAH4h%sN*Sy
      zD#)MupW#nGgZ3i=PkF3DBfoxSj8hJvNoi%GQzgM1EoE)^8Jds6JW5#z(FzV|K`Uh)
      z+R$DMwuwt3>-qtK^yF{+h9i48Gxr?b(St|uL=Rp(WkL@_+v(Ph4kZgE+L#g;r*#4W
      z++wM5J}L=SvQ6Ra!mBu^sCBUky{Z9c50QUgY|Ay4-NS49=oh&C2>s!GTom{fSNNNV
      z?Bl9D3{FO$<DDJU(aNWo-|GUq|NeEvxR;56S+Y$N&K-2)F8Z*5i&*3ZP4m|23fegq
      zmDha?H+bqMp>f<Kls+_&NH4Sb<P9x?Oc&eRAKt^QUGz{)?x2(6gB>(eBzK`vq;^qT
      z{kZ1wA)Hf++bUabGWBZ7Ao^7=<RH?RFP8a}QPO{04kDojv4=Z~_V4gU4#blJ{XoI8
      zIHy!i`W}`zra3YBzdjl{coI2y!O=u<8CUTs$J35crtUyk$*6ohC`ZYE^bqa<*#n#O
      z-sbr;!v35QU$9$W^5Ol8QC~CLL;8Kg8}lvi&v%U8EE)EAaoCOQc8}_#AZ?l7{0~gD
      Bq22%h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/StreamBasedRequest.class b/libjava/classpath/lib/gnu/CORBA/StreamBasedRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8cd3433d182fcd599c8143a27bbdac3cb19c074e
      GIT binary patch
      literal 412
      zcwT*wK~KU!5QX1BrBW*jDqf7nn{p65LrkQ`QzHo&4qnXC4q5|k-R>IymIq_v!5`p{
      zGHweA2NN&zW;WlOyxH%c&o2PyXxb<d4jy9N_6EcLWqYI~i+NvU91i(ebEa%qgrgPV
      zT@BlPJ)N@T&<o{2t5hq3Ef+YU>91hZE!T7jb;((p#2Mf7Ys!J*kU)2YN-v5dbwMbf
      zoQ?^WmxSz~j7=9+I8_j~T-aDQ>PIo(==p@@t(eT1(D0K$%*H}S`Mi9z)MJzp4*mb`
      zGJ%{?qGiC>QEuA*i<~`)7lC6Fplp7tWONM`(@~zLP|6dUx?!eXK>$wc18&QDNA0a}
      cZJSyvHgsU2YaAWa&Ezg<G_X_b+AZk4Uq-iEe*gdg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/StreamHolder.class b/libjava/classpath/lib/gnu/CORBA/StreamHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d06c9156afe3b8588dd3bc0a7da9a9dbfe79731
      GIT binary patch
      literal 1456
      zcwUWDZBNrs6n^g5=r+f@yogiYp&N_}BB%p&jJGA-W?-2yhRibRDB0RsI)VS<cfLv@
      z5G9fC{v3aRdfJsaaEqkr?K$^8=Q-y*_w>iFZ{Gn-VVQ%2p)04BglKYODI#ndx-1pe
      zwfv5(b8s@W?nxgdAup*pA-TOLXAKUG3<H{;6SP9kjw))pA#LYnJKQuG8uu-SVOXq#
      zj;Y0xQ4R?ceqK=(W07HuzfC|O&ESk`JF*uIX!5~>W`+hnkoJJ8_JM<&p+!_wIZ-NX
      z%X+F@RlBHVrF>e_71OsjoyM-R&(I^*7J`a%OPQ;7Tp8o2NI|`P;6|M(+BYi-bGS$6
      z*AElPOf3FNT#2tFQeO0+i8{_4=!!v9eBF+dC8N4!FCL<wLm$K7|0VKa0E5&V**lgr
      zF)xNO%3*|I=oa~W7z0oJ+C@6~SRl<I$k2H`I3C&9T#txe1khwIAs;3oFnG-Sj7p__
      z3ZCG_zk`(8)wKgNT{uv4w_z;`mxq|9eRzx+DxsjLn$Eyt9A+6htRO`bV#$@mtXwn{
      zO(iuot9FKwTZu_*q>4j6q<+L2geHJ)yIZW;Y}lNGval{iwbC}{WTQ%bhS7fpq|W4f
      zH?@+Ul~)yW7Tc;PZ_+G`u92>fUKhQ0&B3OB*R(zG(t3xyRXFGYyuow$g5#%XIU&!1
      zHd>o07FdRpP#&zIoxH9x8Xd$3%jzUn>X=TtZO&=JF#5VL(DUXTy_XfnMr%J|G5N|E
      zn~C8*{C50TLOba@7yN>jGdx&0M(eo$3`1AG|I_cE$LNh;AVB=%iO|FuCSHfyADv<<
      zba`SC`_YFdcG^jc_AMpbA}fPdyrchUix64#Lk5rcgvntByO_nERo)B<MI}@koulU|
      zF}tbFXLRbI$Syobm@J;8n#Y1A^<qWZd0X0gGJL2K)LqHr#tTbO;3Xn9lVAx<S7!?F
      R`3B8Vm71=KnoAZc`UmC4Hg*62
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/StubLocator.class b/libjava/classpath/lib/gnu/CORBA/StubLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bdd2ca7c2588d0f00f2cabe0350e9dc779a2a099
      GIT binary patch
      literal 1718
      zcwU86U2_v<6n@@zlTDVzrs)SpTNM=Cw9){gXaWHmXkCmAHdw5p?IziVWwyJS%?7#9
      zOZAGs;H|f1#t9vnVYv23IX>@ZwO?_XnY{1W^L?Ik&imKjf4&585p5MC0#j|TSE$rh
      z7jG8oVXsm3n^x!tDindtBkQqMa4oN0s5Kth%}^kD)$yFLEHG;1*94S`-?BA~BCR8V
      zq`+9!@$8k}cEb+tSq;|~$V!jyniV+mJ7y~3L#HcnsyZ}yiE+BN6*M0TEE`onXczqL
      zcC5#vw9m|}t(NkKR62eT$~bY>=61&|r7?~P6<L9k2aI)0VoG4dY{^vj3a*EN<F!i~
      zP9dk_^#foGWIEo!n*yriwd^OgEf!^%c~ct9>Uc|vPPkS#GzVhIe@Dk@oDoQOdyQ`7
      zLtxr4&HV7V@98*;bBqw!9oK5wQn^wYqMU*u02OmY^ssQT=eR99NZ|tkv7sT41=*?s
      z8*d!-lwXs9FUmYGNsZyD<#AcZNBEd+vN|2xBXsA7IXl9NlVQT25H8tq>8z-ugsTFn
      z(67g+Od9`#Nm<8r+#n{8Ew^V&)X(jYJZSik$TVKWEfp0)wAcTEdL^*s)akg5C3@cS
      zgB5F=XrDc%rV88JrQ^?VM}^7RKP1xeIjWoj&;G&mx}oLC79OlD&R4~X!0BU$ScAY_
      z9baNhV7w`_wr|;6R?iJ3lq%{16MMdIKWW;X(D6Mks~<Ed8?s51IesAb_TWl!SS<co
      zm7t~It|}cX<UT50hLR)9E2@&I9Kl2djVJbb^n*ba8aC0C^Vf>tJ$|$K#%OiF7c}i9
      zM?M^xeb2;#49iJn4UoT4QhbDXs{AVO=2jpv_Z+EbBu1d|Oh(KrIKfjNDDXbXJB`;c
      zHZT??C`gg_bp8)yGQ~coul-BSlqEHzY|i%acBYV7=;Pg@l2arxQ=a_|<2hw?R@tPq
      znD`xP_Wfew1@i0J`R6#FQzFTQK0eG|;nByZ#iW$x61%u26_Nw)E^ZdpoZ83oD}1qY
      ze{OykwVf#4pYaP;<6<r`bzm8C1}AX`23BwZHC)DBj{7Q>a1Sl4;U|1et8eftHlo5G
      zuvivH=~oeQPpNaC-ZlJ4&2@U8L_qy@Vrt-fe2Xapa-ClfNG0g^MohJE2H%lNGDe!3
      r8-y>K(6|d_+KuqmUSM;5ju13<4z<FKGMXM}{g;szXCz=p`dj}1$k2uS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/TypeCodeHelper.class b/libjava/classpath/lib/gnu/CORBA/TypeCodeHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..091f5413ec3366ed572813fd068d7eaa2a2c7bca
      GIT binary patch
      literal 4997
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/TypeKindNamer.class b/libjava/classpath/lib/gnu/CORBA/TypeKindNamer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d17efde8352a9b5fb575db101f029ab7225b19ea
      GIT binary patch
      literal 4025
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Unexpected.class b/libjava/classpath/lib/gnu/CORBA/Unexpected.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14e326e42bef1daf56b1edc4d1cbbb41f0455d98
      GIT binary patch
      literal 1454
      zcwTK(NmCO+6#hC1WN{P{Sp>Jn1+tMSh#P7Z#He5tB@l~)T0_#1!DMEfnSfsW8U7D1
      z#L_CgdGJSBzV3+-Avttjzkc7+uV3=}&$k}{uH$|f0fwP%vz0HbtS&C(*G=)k7FAEw
      z!U!>p?&!OEzM-4j`6bg6j;S|_j$=6tgRXE4y-^X4Ygp#`(nAKe%y6<`nXadsUPW)T
      zL?8SQV>nfQvaniw`1V<`TwZuwWJr__xyznonA`IaoMiZ{jBwp00gtG;kb*h>q9Jrw
      z@M>LD-|>%D%i&e4CUSgfOYXQ=H_Uh3@VMdfLW9t@?$x>NSep&e%yQdDJHoacPZqm;
      zv$ZYHca0iplOAujs&#IdTb9$*l``dQ%XJN+$T9TaGfcyKz>rQJx89X0ey9pt;^$Kp
      zhERcAhLQNMmp*8*Wi)ESiD3vMVGL7Gk5*_H#Tkb1u59MY7Q<w>^vdQAz0`c_xSJT_
      z7}szLXBmcjxJ^|eIL{Esaanm$1IGkiP`7Pi))=OHL5`(5_LbOW4OeiLA>vv7Aq`cs
      zr?DW$V_-;XNFmJ-l|3!!EmtsPyJgqvj<u&#=l@ea%rXp=3{yOBH8+K`CR1{xtSXJ9
      zPJ>DNPBJ7Pn_;BXYsiTv*mTKlaIgN6de!q88O|ho9?16%Cgs|vhE!hcrfmCwjBd+l
      zMn-pKG|Lbx)7VzUBSZQcICPPd<d~q!ApKYZ7)KxaX%|+z2*wb@iG#hS&PasTLCU;G
      zNa3c^-x1%)e8uTD#uDfDaUr46vX4t`OlE%}n$GTH>eUxTlA$$0Kwt^yuuKE+6q6_+
      zOBwFdVH!F0>zzVg$;;>({b>Z0{7gswCG7+B9Zx4T63R%SOfR7_`Cg-&tP`xFghqVe
      zflyr0Getk!p`TN7K-i~0B#kNXYa)H4$TYvKLl(u2g9beyd089#4z`ibv@!SdfTdrd
      zj4nGdbz7*&w<Ed!-FB9GBN0)>)yA!(R9=^vs3P#q{JT$5i2xBv(8isk_)iKiYZ&HL
      Gbnh=@jWT!u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/Version.class b/libjava/classpath/lib/gnu/CORBA/Version.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e42049864007d1da2dcf6dd783c6ffa1c6de246
      GIT binary patch
      literal 2480
      zcwUWFTXR!Y6#jP7HfiP*+Cndof&nk&Rw9=QT0l#=G?+F>AxJ^WX?jRbP0p#wNvVv3
      z_y?Tv)dvMceUNcrMpDPl2>9TGk2;Q*@wceo-Z`Xc8)wW+cGli|?e(p1-SX4l-+d2Y
      z59WRF2z2GFN@6s9=IBTwW0cCKZTZk5&^f0s=!t@E<r3+cIV0=%&?c~1otk!H(kPjF
      z!Mv`|6bvet)z*D~E_qBqoD%35wXL$FTTVtVRE$>CK0=_isL$CYDkY_CT2gL1WLl<k
      zga_edGLjK!8MSAP0KC|wVIwvRc*BuQI|O<)Xy}kqzlIIy5ZIV9En}imoH0sgYaVr{
      z>?|G9=@$3yVT+SD%L1EH>nINsf7*45g6om-PDL;9K~FffHX6f`sQ?|=so_~XN6Tfs
      zNPymO6Vs6?a<ZMgQIc-0Go;+o9RYt{FXts^#gviJN`^i=y-+hF5Ouv^^pn<n#hG+?
      zUmT7!fec^}2_JToYm+A$UPOej(!3<GSH`!~hy7$~mvRZam~-uokDQqt8%g=`l0Z0_
      zKE9YW<{biruI0^w5t0T>D;Fvn<+7eLLV50uQULpKP?~&sP2`A9?cqp9Y7A>Qgu?>u
      zGV7yyrA*rKM(wltl6_6)jSQQedQXnR(@snMK8!RHU2#*uV{++f8aG}Vi>oeI9`aHY
      z1^QA=!@=8)Wz)(U(_9LbvbkWmRm)8K^rv+srCK5R9lOSz4HS;7kBARxf~`G1S}_YM
      zoNr*#hcl~MvZkToEY1;VLAF==stk9siTMB~aL|u8Nou#0r!-u|CDyk-KW|vG0)x%6
      zwC>3DN13}UO-u_6Gy`l@)HS3q&VW@c$1JQ0*tL@B@OR5fS*I&bLtV2>t|IS4u3_vn
      zYG}y9WEs<ij2~||tx$=vzCzhxc7+|++Z<USFlkpxS>uE$r-tTs)o!Vb9c&mczpY%i
      z!UsR)c1|@90_c)+iE@{mO8k{0ik-!^i@S@|@ygri61t<oj~=2YI>5E>fqK4$Yd2cB
      zrnpYfT$)c$69fp=9wLYVHA1_vjQ~PP+bMY{KSQk=P|*bn#-d-KwdG#y3B<=}_1=p;
      zh8T~=tJra`4!IR=T&KwA64_j)=T``uMGs~hpo4YjAfCqy1nS|tT|AS}VMJW$18NU+
      zM882#r+<+@eK%LY+SFxH8P;lwuHkk>5p#`vMg9_WC|X6l3;*0W^i(*!3~?biu!KGL
      zQ_I+Qp?hcv2gc*EDqcAs?>_Pnuf`uKv(o5mF6d6?2v{V<yA1Gk-n_@~-JtjHb4=dk
      z1o=QYv>);xY6wR$svO#+vdNjvRBTW|-iCf0!*QPN;>ih|RBZVN;5t6Ry+_7WvXAk5
      z3!O3o6#H(;OnBFZ;zNbpTYFWH@m3XCwkyVvbZuL1QbW>q@UFC`q&qUP5@g`^8iZcO
      z=M%F3lnic>$8BuJ=M7m6)e%ED<rY*3ue$}szICz3RK)|^moafcqJE3hOUQJeuR?D7
      zs(7o4EBDuM`??{`+g&7qng3vPr_ShZozZ7a89gGS$7J+`jD8@aAOAO_ENi-keVf{{
      z)rMjcQkGT~hLrnU`AZCps|uTAg-r~q+8T_@IvafSK$-0))anxZnPh+A>92I*H#W)d
      nh~p3J#h)y#zm${F8fe|gAr#mR9HVYwdHAYUSTf+2B5wZ+u2}Yv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/WCharHolder.class b/libjava/classpath/lib/gnu/CORBA/WCharHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb7a44e52e1ac0e4d1b3e76b5b7a1e6a799948f4
      GIT binary patch
      literal 1329
      zcwUWDe^1j;6g>~Nm6b9k@?#7Y*+jOXRPnb=6IentE{q77A(|{@YsSNF#nO%VkA5XZ
      zg+voSfFH_u-)lG6!s42=ukYsEbI(2Zy+40{{swRt&lC(WOjPR)Jy&?WwyM9$?HSGs
      z+p3t3f&fEw-)I`TWz?&BVRzpwy9z=KbGB2}?ON4OI<Otr*tJZ3%XLhnCVm-0ZmCRM
      z46%GCdi&#nnX@bA3PZ4ISPjCm9K%qyZ1FmGpEC@m(nW@V04W${m_O6!QgWH%hx(?&
      zYux2cv&9$2C0tf8#xUMhF!zerD;mZzL1o<cr6W(+WVbMhTTv0gl!h3lsfnyFX*zW=
      zI9&{bVMc?3A%@XBubUf<+OFwrdoGOS?XqDN4Tp=p45}E!tl-zEM|Y1OGEC(!oB%l#
      zNaef|H#CHyGK>g8+^|Z%b-@x@USU}17T6xj%lbjX^(I4dRiv?~Aj6ROKVHKv+-6Wk
      ziI!_L9GX^;3lz!fr>amX2FDOjrF)--Q0d6wE}>FAdnq*B&SoCqk%ET|$vzS^JVt_H
      zSXODZ6S5_O4q0C{$&4+#;grpFF2)-@H?1XcRp?HUMf3(SfVemnbkCR=9jzhS4MU^-
      z2<?^$C!WYJM0So5J;mfV#J^Hx09WX%(h95*HjAq=DwtyJ{Cl)AT7#KWT<cETKmeOE
      zP4hswjyazo;S;PAQeag<keT^`<QYpuirXQUw<P|ZWSaEQK9l&Hr&ox$i3Oi?)#nUn
      z7Eh4sp!9_8kq7)7UARpb#u9W%cSpJ?=$8B*1ILJeX)}dn?8CYC0`2yer7s;)7Bk<G
      YJi+~LDW6En=N?j?;HfOVB6G6;0Q<QQ?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/WStringHolder.class b/libjava/classpath/lib/gnu/CORBA/WStringHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71343782852d89b70ba0e048cf92a196a0f37d23
      GIT binary patch
      literal 1407
      zcwUWE`%lwQ6#njBWwkt<W59f}f$X8wCq4!yI72ip&cHHbj4s{Q%tC2N=^*~7f03d>
      zqKSWif0Xgu+q$v21(r0o=icvp=R4oI-S0m?egU|N6$t@`sg~7Ni{<sltLm!_*D<Wt
      zQ`>Cnj)V}y#HO~VsitPN)N*}OZ@3a7470Y=Qtj=QpSEK=u2wg7mC|)>o4+!QxV2ru
      z#xPgvmT*7p=ncE6@2Xy{3dKc=3k=~s&1_R<tkf;)f#`5#xnUZX;XYyrX0la=5YLh@
      z&X78pJ&Ln9Cn3fV@0DIDJ~ynUf;c7_WOu8!|4($HGzeLcF@`Ax)0kn1Ec=RPGK0a{
      zY7`9T6-XFi7%v%?{-V8I*PV*zQLJP)G_$HX29L$2j36#^euY|e-y6HcUK%nXvSl*!
      zzgb?@IR#P345M75p_w(`-EfU&)MQxb*W8)nGi#^qdZQ#R8Cm2d<jCif@d~ctI)lPX
      zbghhMvV%q%Hh3bx9w!rXc#Th&AxUg~Zg=lcq_*!EE}=3*+bg%--u~|5o`fZa^eGY)
      z+((K`6;-+&Mr?s$m_Jojx@sGC+iB=)hPVbjQ(fd%VU|W1q$i93lKlSA7t8oWX^l{H
      z1`5Ta6fF^s|Hgh|?DYXAj*$3@<QLir-~!(l=T9iJNca_86epZ*y2EjsRz_<$cZ5sb
      zR9OIDB7}93rg$J+A$cA_$|qPOB*)5}AeaA+biaT%#PXIJcqf<=9@=N(Z}aqU5m&L`
      zbFTWF(OmuznI1|{*e3a~b&M|Bp^IV>s-U|;|8pMQqTgfa0LjlCrij>ckF^)-w0BGR
      e(jz6G`-b!(?(|FfNK!rxk@5f!Md^abS^f(j$1YL;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/_PolicyImplBase.class b/libjava/classpath/lib/gnu/CORBA/_PolicyImplBase.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5520a7359eaeb065621115437b45ac823186ed4
      GIT binary patch
      literal 2822
      zcwUWFTW=dh6#m9uXWe9>wVSj}LJ6Ul_|n$2lmbaxNZhn_apRDrDQN+-u?KtG&F*%+
      zP8x1SNFYTB5E38|AYMQL!2_4Z1uEbL2?^eL<dL6&IJ3KP632m9^6u=+`OZ1>oipG3
      z{?Cs;12~MAWds;HOGY)7&W#NXrt+hvt`+7pGnPK2R=5m_q1UuaDRZXen^>mpsM9)6
      z<)*Ljf+I|2v@o=<HS-+F2s7;6z(K~CHLvoss!`Or&9JS)ZB5lDxn0pr<3i>X13SlX
      zN7^(hj%qlQs$S(Gct6Gv)QS~`?U%Dx)LAv9t41j`?%0}98eou|d5aT1!w{MkIELsd
      zJ1=#zYqi`o(`Jz@T8?Xm=A2}R$1>}UGwb8TCn=J^wjzj51s&+3v|{neEnv7y!8Sz1
      z=xzm3Y!{<@6tp8E<6hcrqqkP<#eNz47`mD<d6w%Iw-xju#t_hoM0hN|J|z()q2Nwz
      zW!Re43_enwndbI{AY5=@7KmY$c&2ZEQgX@~5!s#HunmZ)7Ax;jDqDG<P?{>ZyoId1
      zR@B!rT(3l%$FPqka;PLy-Ys26EZ($ua$a*ggW=WK`t|IF-DFiAvf=8?hBjloVo^6O
      z_uN2yBg0(PS@9NzNUF#yj&07jq8BF=oWvu<0KZmMb$2K0`z3y<m1;4lU;tfhNMl$A
      zb@cwtWv1XX&JcM8O2FY`+|uV6`eK{SS8!Y~t$C5bV+u0JGVEH1_KG~viV=*;$T95M
      zgm(pxV~jzWvo(k3y}goz#2S1rlQ0>^QIW+31xN9K2z61x6PTi-=XuagqeR)pGQu<}
      z<4NkowXTK+Pvvu?!()RJncPV5Od8mNJX9Ia(9v3Jnl`CpxkK_X?x;?+qF@>YItc09
      z`O)m~#PF&7`N657VLFJ}{{|8%m%+t}ewN`_lP=8sp97%{Ei>FHn{-q|nrKc^!p$@<
      z9dEnL(8%b9O-yl2w?GX0Hq{^0%r<wbwn3d6E^$v-8}+0vkuq6$`WSZ1WvOy7E2Fwb
      z#XNulTL@IRtX9gNGBV67FkuPM^9trf7dSXU;(VQ&VBD<Q1%6r+Le$<MJBNgGsh2zi
      z5kLqs{ky36!e<-Z0RaeMC8?uvREVwnCaHDb?e2FQ*>+$DJ$KUA8{|RUAbp8j*p=vB
      zLU-c85_TtcFQF$9`U$;L!A@y>O8Opq#+MNP#to9BXBS%NS%w6i5}2W&28A)P9~KVK
      z%2CfP4&sn|J@p|);h8(Sk1PZ3=rGL%-O&-;Prf4JO!%p#=q>C+iJR#Dsvfw-ot$%n
      zD4u~IB!Xjjun9Q+bp!ZDQ}9E0*aNeJG%I$u!1|?Rw7-VqA0V2j;n9OXV2Gh#T7;2|
      zo^|ItY5v^B<%Ld(KF=>AmyC|P%iZ)naV)g5-Vv%{auJ7;(Mztu&Q;Kx=y4Y#w{dwY
      z8GY(oJbeqrUpl3g4UD+8Tp-e3rwzPGHGT`-c$;p@cM!+BMCg0y$NQwNACky@MAGyz
      zo!d`P#HUoK&u|@|)Aql>EA)O1U%Et`^fp^B)dEUX4Cao?(A-ij;0mr%)F7dBDz`-5
      zqg3(;Q56x*+=Tbtjl6%?l=o{*E8f#s@!L(obd~sEVJX(wN{@QLUsnNH9Y}}L2OjaG
      zhDFLXR2sAXV--H^<C(ZYeEb0)A4oJJ|6GL()RA-b{jNl=;d%|vHE#K@rjhBQ_3^`G
      pEs7IK{suX?h&JITS;GsBj{bHX?eL82b&lXg>L!uGORoKme*wC`TnPXG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuAny.class b/libjava/classpath/lib/gnu/CORBA/gnuAny.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..266d5ba82594cc635e6aa68f2fb212cf1700ad72
      GIT binary patch
      literal 14005
      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
      N1&N%N=##_2{||i`@@N16
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuCodecFactory.class b/libjava/classpath/lib/gnu/CORBA/gnuCodecFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d739ab5d3db5ee1acd83309d9e8f18cceb64090a
      GIT binary patch
      literal 1065
      zcwTi=YflqF6g>llrRxInlnUzN1N)K{ANatSKmpTaLy_tlJ~h*2s0;0Ev)!Wn6#s=L
      zm?o0wcYl=e&K4+2`7pC{=iE7S?wPy4|NQs~U;#@SdKeNF*|c(nt(9eqRylu1xa-^v
      z{oqhTj9@>gSbnW?l4AQVuNKOC!VNX_GfbVr`NF1k{xCzYACwu!?0*SpT4Lyb<w-Am
      z%`lnlf~OpYm?G2Bi$Mc%3=v&2<;1~o)qsWphGE;2Vxw6ri{KqER|UgpB+lW1r{a^%
      zSoqOvFihK*mZ{`$S&GyeZXkFlO0L2gG97iQzBNhvo~$gT><eWRi@x^R74^{bWkbVt
      z2J13!Ho3dcE5dp&_oe?yp3=rKgPR&|FpPJ*)xa&7q;=O1YCL3M#R1%ASS-lup}Dq^
      zE3D=>-js5yTO|sXH;bm%FdNN!-48;sW0nt1<%GH0mN2g)fxF7udkhmvdygM*tIB1?
      zDuzK+qNCwH!%WAv+)hAJc)byolCRaP8d3}+oeW0=4XR$%kui|P1BSsG-}8ggK^q~_
      zD+;v?JZz($?4UZ5c%&pfX6Q@i^C?Hi9G<G3MTS(jPO&ds9yO0a9+kw2Z`5SnUy)v{
      z=r;pbtb3|c#{cV!dF2UaspWcU^wAhqokzb;53S?SX}&_yI>kNo)zd8)>CATwe~WTP
      zXda@oz%pXU(TP=J04Cen7{fRattN<-tRdtYVN<jhqbL!v*Xd4`pUoU$`U?h+k=P!c
      zZQ;(ZW6W)*k1%|U<Tin68uKkIwD9EX+5MBG8+c0`TNFFQ`GHJ!&gsaW>B!<4o<}-f
      IMCV`r1%6@oaR2}S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuContext.class b/libjava/classpath/lib/gnu/CORBA/gnuContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5c34c6649f52a33a8d9e376ba185b1abfb16c0f
      GIT binary patch
      literal 3523
      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
      K{Dn&I^8Wx8ts@Ws
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuContextList.class b/libjava/classpath/lib/gnu/CORBA/gnuContextList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11d150dbf5131f1ed6b0805c0eb2161e566b6f5a
      GIT binary patch
      literal 1009
      zcwTjqU2hUW6o%gc$^sorEv5Fus`V47vWi}qpp9i?6U@fO)?oB*felUrJI(IWH2x+p
      zG*OypV!ZZ88P7~NTM9Lsot^XbocGM^pT9qT0eFNb1`-U*J#T1QyL*jolXjN$Liaed
      zMGzWDF|0_xXUah@$`}hX7(wU@uNN>B?K6la{kEeL>I~^;!V}>ZL$XwEF{CWnb#q8!
      zmcu~Cz$J#l1(i8)%x1wb&oP5EL*5pi`+7KNyZ&3J-FF!lY}s-8Eyowij-09RqaZb_
      z_WwpANlB;MCBY^8z&UcvzT@@GeLY6K+){m)If_`B$k=TkxSg<G{y;rEXQ2B})ica=
      z<j@QCv`xjj&T#|lR1=6#N}dSafg(4{7ggt89(UZsP)IK@aED>>{Lwdv-3=7>9>)es
      zQ=mwsfeIbmB%dMSkTTY!OYz--JW_h7UeElH)89}fN7t8!BxGL>{f@gM)R`8}pI}vi
      zsXYxz{}7{>E=aFTT`8?uvKkasvH8jga+ROp?@uuI9r>^1OW-oCbGp8U6rLha-vzSx
      zX$=Zk)a)XbVqStC5bGQAn<HF#cSg$T$aBiu(v+ps%!s0Pt5_or!&R(DyqdOwjN*-O
      z?Q={^Yri$7Cll-0z)i}!Mf((4w>9ZSq>L-l+6Z@lqx@xp_G(NQk9Bcu;=b1L0M#k(
      bcErs_Tyt{ZHzaIt44jR@*%(~YHIM%Ro#(Jf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuEnvironment.class b/libjava/classpath/lib/gnu/CORBA/gnuEnvironment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bf0a1634d298191dc098a8815df9dc662fb652c
      GIT binary patch
      literal 623
      zcwTi-O;5r=5Pb`6ky=GWKJ?}dFtIW5B!-9tPK_pNxR<)AYs%KtLi|~pXiPl#1N>3O
      z*-{Y|E;Dat-@JLVAD?gU01i;gA;VDf<=F0?Uz~PqLOnSVQ7A`T#yMyV+hOF};mA)J
      zbI%NU{^0SuScH<H?A*E&*A86i+r960i@`V+Qp9bBY`rmH(7NF@H<87vg&bBG3XYKc
      zY&;tB=*k@ioMF=mJvSJ*kx+Ho)Z!a)&#>bxGfS&<FW_#J2T54aVbE#yg|3tlW9pru
      zT5l||ZeE7t$m4yX43vJa+gBslrCnM2O7f=`64D6MT@>?F*_0V&z4;3Bi9iMxMI&k2
      zSfgl730OxV5!#py9}-)=8BO+r;?J~6891Vu)|`SdQ_xXL723qiBno>A6i$fQNfatm
      cR;r-TR^m}<mH(acjN;>;Q~C=}sU)oG7enG}Pyhe`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class b/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4afd4167444be19350829c006d1f4ffb0f224fda
      GIT binary patch
      literal 1046
      zcwTjqZEq4m5Xb+^(*a#eZ41_7)mk5bDyOY)45nJJCd7+P+J;8om;*L=4cw8tqftMT
      zFEmk_XkvWrhceD?&nwW9OKxXoXMXda-Tm|T$1ebn@K{5HVYy=u^xE!Tbz3KE=R-^M
      zeao>8%kwqF81jzW(Vbo=$Qesuh;`MHHO?qC$8DN&x5AKkYT1^*#SkqN8<bsh+9Hi8
      zW;iq?HC$p?xS%o(j+qn~<~ZU=Fk}qN7Ow}rrf?6;W>+xG8&1pYHcZ!&eh`fL?=6qv
      znlXJQ5*0PuZJMiKj8As(u`i^)O0gmPFL7jXl}0NVN9M7qcTKya?>3J_%dZsQGH}y=
      zC;pQemZs4d;w@)j`|1qpl6-^XCRRwTXMK{QEnoDco_cXQBOMOmX}H6%IG$Oh4sB1u
      z?{Tc6AY~KooNx^#hTO$n7$PRAWOceWSM;1?sf{S=G#+w#Fl7p~U8hfS_ML&-5-%-z
      z>e<ONF3Y|ogGQ!@Mn&=x$%>Or*G~Twc~#nFw9b`IkS_fMe{+J_@5p?mSOk~pKdb6D
      zss0Hvw9b>qPiwG%Ma9k{7xE(Xfmq*=Ss&uc;Tb8dcD5+*nWE%QGXsjWmXRk8y&bFs
      zyba|8Ny!`H`sa|AQ1KTddXk}@RotSiHL_#m-BzUMfif;h`62H9M)Au8?bV1b9_r#)
      j$9<*a0m|pN+W|KfaP`T7_ej|O2sjmjQz3Xm)olI)S4+FR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuNVList.class b/libjava/classpath/lib/gnu/CORBA/gnuNVList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d85ebd24911f7d68905e63ad60ad5e04cabb49f5
      GIT binary patch
      literal 1889
      zcwT*!Yg5xe6o%g|p`l?d0)mu_csCTZ-f#6ni=b!#6|Ey)n9#-&r%jwTWz-q{3H}m4
      z=!}*bnQ{E=k8(V_$%M8Pz9hTZbDr~_%jWODU%vsI!&4OzhW?^cOU*1j&Sp}yTFe=C
      z)l;D`9B?belv^$ahyDqJQj)I$W7}`Wt*n{iG|dpbVLP^Wi=jiG$dUDoTd*{ApqoQQ
      zmx_H&5kpT69NjT6?C0o2l%dD49c!^xUb8As%(arm&}X=Lvy?L{w%7+B6>r_HHmeD<
      zAT^3UKamscgChI@0~hLSv$R^ZKax9}C!uDcz%WLZMoY$K*(&7BQq4-M7$a#-F*42v
      z4WsDRNc3TjBRI+sBh>1K@L<U5##?j4OqEQhm|FHKwo^>E1Rz9uuc!>Fx%#GL7AeCn
      zfwn!X%#dnB-WwA&R~_1m8t(8^F~M-KxqP9o23=&RV~XQ6&XAz0<t<9oKpPdJ);i8|
      z8m{vsnQU`@F$VQEsr%L!IWCFL2<thKt7z91j$vGF39_{I*2;V7i4|Fwpv?Vkz|>cV
      zAz|#2R9bX<_i~A`?F{I{dsVeF@75eoPWrqMJ;QMa85%l&wiLfx+U)zh_0F?hr>f%K
      zj%$@AMnUF$pJNseM9$RA9a*bbU>Mp>4MW5vCDDpib~h|Rd&KcrlvOEI+;^m6*{xOb
      z)|@RaO+36JXG9#DT}py}31lrUAFaeqr0Yu0811rj%ILj6xd|<~1^#>!@t^4VPTwNv
      zrDt6F-z5Lr=)pAlXvcjY^y7eJ)BOv03uG6ecW=lW*~DNQ;4B&5CB!`m9Q2(6pjZtd
      zK}c#7Mnb7RI-X=(7$u#DM(P;<7ILFf)ItL<9`fQi7VwVaM8GqM*CBb60dKSoZ&~sV
      z`<4y7lQ<>MeR71>^qUCCUufS+Z+#0oag*1TgfdyjWI~y$Bb89b>bQ{nfu4j?$K_`U
      zWjp4uY|(R~tWdFEP+4D6{;x>$YpLU+&kc3xp$;9_a9w7tOGO>T7)Kg6C`(brn_(3r
      z(n=EoCPn=1&S>&vo$Ty}Dr#Xg4Yz0rL=~rz33%t_9_SLhI<jBUTtByAV7kJAnWd~E
      zn4`5&cUO|817%#0sI~KdV6=8)qd^xBb#W{P-Cd%JwQ@57Hx_UowkG_Egne!R$3k!{
      K1TRaUC;tKNOHrr*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuNamedValue.class b/libjava/classpath/lib/gnu/CORBA/gnuNamedValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7453402da12b0d71bae2c2645015bf571832d404
      GIT binary patch
      literal 1043
      zcwTjqZ)?*~7{$+RlV*!?t?SxN>vWq=(+rHh@y%qg4F=Ov!H$BUjC6}xB!3`l2Yx4C
      zC|CvxegHp|cybdq+odm>=ib|Me)oA!^5^f*-vC}<OG8Ou*^5T@{@ZtZyEa!{Cv;Ey
      zPB3ycC;}^S;@NTN<$~*f1+?(^B3sovld9e5%eFuzJdP+ASnPauE*v{>BG2v(6F>5{
      zrTbIhc;^D*klI&%<PUcQ%4WMSpzOz|u8uOQ25!O7a7Umv(I&6ZQA2ee0!s!|R0OIW
      zKXSXHaNs6K&LEIC$0ttEcM?C{=ZDJh%;&XtJ2U2Hb93kJ@F43>F%R4Q^p^Vu=AjFy
      zdD|K_T{&OFyg6XzSvR0zj*u*f6q|?FGz&6IM_2Pq83c1#GTTMrHF#VUx!#LM$%%X5
      z%i$-cdX{3a&Zf$I_hppQ%(yD09m>k-ST!mbIiI(=+oMvj)~rh`Siewve~HC0>ffcK
      z!RLbHJ%@sqsIoS>GcpgBvBJuzaWCiX&{blsSgkQy*A!izzGhEvB%zt9azeUVrH0=M
      z9^l~(*47wn)2tp@M>AL(oH%7Y!s8-VeVX-wtdBEToBXA$RXoXAw%h}%^#iT1SE!0S
      j9Q+rMdKJ(Ho)(zbzD=3W3eB4^3(WOtb5v+<OO^Ex@D-o-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59c92986fb2e7927cd96e4457fd6d25d55f39cde
      GIT binary patch
      literal 567
      zcwTK#+fKqj5Ix%hg<7N{B6xk_0WlGHF(w)lA!1BW6C}KvLRYBPZR~~rGVzl5;0O3o
      z#@R}uF+A+-nKNh3?9S)c`v-s~wlydW#j%L$?W<nvq)w>EA0r-wm8OOSgL!97t-5Q8
      zalJqBxn(n?!if`98r0XF*LX;ZBS$#lF+;gJU$Qe`NVGkhXTY#vAc>R?6<Grs78%s4
      z6y&;&;Fr<Eko$dW=yHa9*Be>x!15iL&&Y&)4nt|~q)L;XqxzB1v4T|%MTWvWoq>`Z
      zoN~m}yC+lq+Kc=V?>KTo?pL=b*TG<%3&H)iYXt$P*|}3Oa=pM2;|m^6JlnvQbjt=@
      z*f%!6<-X5tH0ZA?t(}>s{4gPfj)pYx8A1n?OGdBlzEF6B@f2%vl8Y-0Nu>pokU?0o
      zOUTFkG8Shp`*h1%y7mnH6@`BuN(Y*9_QxYV^H5Qam1|g!wLdPP+6Ki0t#9)iT{v!!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81feb54a99dd3ec0b32ac099c07b11771dcbf1b2
      GIT binary patch
      literal 623
      zcwTLh%SyvQ6o&svYExrsV!hS-g)X#;Q5SB!fEERzDyVd!3mMy?jm8NkO~uC&ynqWI
      zz=smg#DXGOWb)6+cm8w9=hyoOfHlk;&=^LVGIlE`r+d3DsZ((ui>O^%H;`d)Zg_{g
      zK9^1RycG)GV92&xUQ}A8ylPtFCWG1GeyQ#UQYd`OlU{p=!Cgq_)1!+uhD;@Bh+Z&Q
      z7J86Xs^5ZvtO*^Cg&YPL^aX|5RZoiJ`0iSS=lt3i425b?=YEZcp1OB~8Pz*OF|}rC
      zoqE^9Sehte+`t&aP#R}pLKV(>vJ>2rsd*N}VO<<}s)GH?t*G5m^M_K3u;TM55>(sX
      zm$aJ5lg%U1ZUqesbIPqR60&hcD|_INSfxpI`a_!IsKEiJpvG1adU8;kFiCCGU2%4K
      z=>>h|<rn13Z?K;dut2AoBoM6CFi6TGO*n=yoWw^k(6!p2xB8YVKO_H&(SIJ=1q|)-
      ak4LWSp<^;3r!bwcKQ5rm89Fnx$=PpCJbTXo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c192425288a5720c3fa2ae47712b307ed7ea3d22
      GIT binary patch
      literal 23103
      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
      NaI?~U4sJ7^{}1eI3?%>n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/gnuValueHolder.class b/libjava/classpath/lib/gnu/CORBA/gnuValueHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e6db7efef8e55d9ff7e188ad20bf9a34b4a8e03
      GIT binary patch
      literal 2003
      zcwUWE+inwA6kW%$GmSGPO+yU?QbJ17iA|X%y#b~dVxURu#^h2%d5I?Wi5X<ixZ^Q5
      z34|)dL;s*(z-uFsH0nduw@Uq}s_UE?5n>qOhnaKRd#%0pKKuOp-=BX0n8Qs2DS@L6
      zuWOeos|%NG&Z<tcD;ND{T?Piy0uz4Fu>Dpew$R55PA4`INQd{^k|5=ScI(_N`E^+o
      z7`!E$ZDl&!W7GD7(AjKCd%?da>k+XwrPEO4w6T0iK-?tAMb~q~uLS0-@@?miW4pe+
      zCIi=Lx(^gaF^PY+${5uwivf(77{)sS#}Ytht3wcY*F*+`0wZPDlgr)KrVQ5AF;B{V
      z&1qI0x^NwDro&rqM_|01lt;?R+)+z`-0OL%&)J9)nTf}7t2bRQr*z|P;D)ratfZV)
      zx?#H;u7!bgTGW-Lu9GGvaY`V&<$CqSxF`cwB>Dpr2HsLhnl^C)6Kd~66Gw0~i&+#5
      z<ON3e6_zfq+Ev##aRwhT=s284f8q31!Q|VaN;>FkK!NGL7*$?5sZh)dqVgbm;m
      z6CYzv>Ho~c=lFuPjzDBzApHwUx)mAM(;`pzL#HZMG%<v17GL6P1MHUE>#vZBZ@|V%
      zxzuvlis_q<*RYA@dW~WhC0sFZS>VWi%`2O?Wi2d`Ec62tSMjZY8TyfkWv9gpFk`)n
      zl>onF;yZjVU~KuZ^Yj~>OHHTKq3;i<7+7Y1_8ghGh82NfPu^YfI-%p$WUstPLean)
      zZ$h8tG4P|n*gnRUdo|e(UEd>B^h#-Vw#O^6ve(x9Zcvj~UG-9o9efwgDs!A-*#`I=
      ztB=nP|BqEC>XEh7yJUjN|Jz)xAf;`G^MyZfD1T-LquX4jFvkBOeN>^#HM*|gFjte2
      zIo?AK&@(nQ!PM*+2~(Vp<9G~jb5v)U{Bw-{{sMSVZ{E;=W@Hcp3iVpV&UI3y6lH!F
      z?-O9^pD4`J&oENpdPeQ-!P*ZvM;yRG8k-EK#yyFX*wQ??2<t`QlQ<iP$F6(><2)Jj
      zg^2Fc9nADHw#ev_(dXXJWDF7*&*8jQJE`lW7=NXWvYL<BvK%h_hV-_|*DfyZVPOx8
      z<$Pfm<-f7IgQ;g2x}Hz(;KDW$Mqr_U^*EL(UFZ8O+XJ3FVkRFlmyc=j3m?`eRQdF!
      UxaQ-yCTL&9b)AVDTGvni15eu8?EnA(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/interfaces/SocketFactory.class b/libjava/classpath/lib/gnu/CORBA/interfaces/SocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3bcb32753219b95643e72ef13c7d50c0732a4ca
      GIT binary patch
      literal 407
      zcwS|YK}*9x5QX2y+Qe$Lwg=Ip2dS4Vo;_)3p&+CrB6wVvF{Fl#Y&WI;H4pv(f0Q_;
      z7#ln+!@l=;-!PwF?;ilJF!JFEoM)zzQJmb~$lN%x&q~u$rlo!%H&xn|_RU8}V6adt
      zB@1OT89yyZJAq)H#PdmV|0poL`?FJLbCX>Q^rO-&oigr06%_^86F6a7SkuB5f*Z6Y
      z<tQb)BD?Vf&c?ILO|u~<w>_@!P1c%TUCt06hXSKIn3r-EH%`+V6*(FA+j}wozi*4w
      zFw(NJnx=U{T-91R{7H8O1a|nG0;kwTm#5D^4*@(rS`YiI9I(>i*=OYlgKdT1ah)H2
      E1LFm1q5uE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/AliasTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/AliasTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6da15c1abe7ab9c26c175b7063cd604784ab091c
      GIT binary patch
      literal 1443
      zcwU85O;Zy=5Pg$R2#X+wgn)>MXtDuT{8kWzSX3z~p#+2CAvH;+!a%aCn@y^`di3Z`
      ze?tyx2~>IT2l%5bdo}?f3FRJkx@X_K*Zq3-_n)7?0L<cX5FUo{qFFUkYcH0U4Cnn@
      zk+%w>Vl0&;uWVA9qBIB}!(=Dex-HAnku`AyW$3R6Tk=vy*cEA+FP}bPV9ywOQ<hnA
      zxankgsVe+vJdD933k(D4U0&lxiJL`Z!?C4VoMZ5ryi9~$T-CB-*$hKz%PtyLx!5e^
      zNR_~Wd1*>#fnhOz7N}jLeJ7D2U4`z(1q=oeW(c>?rB<a`&=5hCYIF9oZg~umR#_J}
      z7lIct4Sg79h_#j0z$7x=V7REE7w1%TNka%dD!QyeLk~k=TAJc{wVV_7CeM|Ga?Hw;
      z%bdKXyt(Ofb|jTDk^b*U$*~@8X8&31r%X*Ez_Sh8wY+6I!gR8VfnhkFINN-`cvs~m
      zhLJP9Pi!kArZwnDhG1Yeh#TZtXS8bnCK*qXZ37D7Htq&-hb~&{Hx2i2pE_`hAsYtc
      zCyuY>c17NyI)Zpem$|d>I?wO%qA-?uK@El)vz#44?u3X_)_95hP}NV<&W2UB^I}E1
      z!#L&bj8erojn7M0+=pTK5uhwcnFn16tLai4R<m_inmeru(}#X~pQp?stdG{H{v88{
      z7}Asb7}2NpF{)4RW9*wtHcsyd)Zes4^sk8UH67ljy*Ic*yLy8H6S(UBZ&6H=6mz3%
      zB<^ve>lAruH;zP8+@MvV{Q3`!d_9&5xSKhbT5ABB)JzSwc~}ry5y$l8A*MdV@2eBd
      zXz~Cv2e?(=^419$!XQ=o;8YJLnPbrxn{tQhs<}du2H9~BG0eF=Fw7rIt~Mp3N&Nti
      yzMwy;3U@=lx9+RAbnxK>@kw)zi0S%uFk-aTh>snO&^jI-Yd!p_<KYDtwfGn3e;d*O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/ArrayTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/ArrayTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ad4bb8329de3ad10439bbb27cad10299b67cf0f
      GIT binary patch
      literal 3132
      zcwU88c~n$Y9R4l?48pi{B@&fHje@}#X?MwD(LxDO1kzG^43FW-@E*Q-LtvKee|Aot
      zI(6Dt+o-Olm|C`Pw(tAC?|Yrj=~Tb_W_Sp5sX6DHx%a;Be!u1Z-u=zqzjy5cP>u`z
      zNMo28G2@}C`W2NGA*a7b4_obeEL36JTK`I#R?*atbcP}ot-&_B4aex!ho}sbV!CZ;
      z(PrI_8J5{pQ_aAZGK{aX%$TE@PO}z`>lsLV7(<%X!7!!PvLhj@JCd|8B)5PeGpd^r
      zr;}7_XtK~S4QCNUe(~rXRm%*seL+bxL%Q5K4jj3DOlHVc5d+vCc?>yDS8GgPAJ@$=
      zxt^!i%!UtB0+@h_<G?UAfNbP2Osq9by)NF}rrRsEwkU1qwN{t{*C>3NCl}M5P9w%J
      zyY_#xOtEHZa-mgbq<oA3$4Zn8e4Mn^D&-jhVas%M(@9RJ7MF~j;_StJVZFzp<BIul
      zFdem;*`S5Hw1^(6)Y_#h3>lO;Ey^%0#aGX()!CG?U;w3<L%Ha3w@pd)Whl{Q2>KDC
      zlThnPvGM?BVYZ}}lLwa5soPXU2I=OK?mDek3q>_E5^8j8!;Fw7$I$^CgL%a6m9@v<
      zD=w+Y0tH@BQ(Zfs%#=xU2~&0PXtYsZKfk<eZWfMJQkpHJ-J=}Ga9}E>vD300k5i$P
      zskO|AN2y|%kxFSAsk2yVt7(ML2};hAsHF|-)F_QrTXCvbkF<=TFqKqkSy5dxJ=RIe
      z(5gB$+oRMgJ*p2o`mjgK8K$RlD$IV5(MT6nDr2ZHJX#aOtW+9ZQ)bxc(S}d9MVW&7
      zwsp4N;gMD;NmN+z@UZKrs1L=Yx5?wIQD$ke8SnNetz+3T_BmWlnS{pV1?JJhN|)Tr
      z#^dN}PSnt19w(yoDREhNBtz+wtjQ5|*`+*~rW9T`-IZ#&QT1sl185mhdh3-n+%hVw
      zG4(5B^y$N|d0feHdzr^MT^XXwX>GImJYK&tt#z90qaNuDhEm1(w8b1-3p=d_UG8>=
      z<{f%Aig2dvQD?c=TeIv`X9p0#cxnqV-KkAB(e&aP*(n&^+S!d(+z#tY47YcUXhmi6
      z8pTY~@KKZYVJb3^Ni#pq(vU^p)B@cx8K7T3J)`zW-;-$8fOL8S<Oa85za2OrxEsDz
      zr8L-%{4MUTY4kn8)vl+#4VaAOm`=02#6A?@K=<!KE@sdgbJYuz>dT2Ecjg48WN?l`
      zbPc(?mRxLgMGF&jPc(-DlcI7ogOEmJ>L~Pk5Ur)ttjIMKat#9+!EMMFo{3C%(Qu^$
      z2|`ku;Sdxjy)=j|V<`v@qNH>Xhi=9s8qTHRVVjYWKHwW@@eR1!^C`VWN%1_$e@6Y}
      z)dpJcrzaa}ebYY4De&Sbz~RJ`J|2N1M|;n9x^aQ|rB$*&h@<Y1yM9CBQ%Jaka2eqW
      z!c~N82{#aKCfrJp8}1^=;O`|25_S^qCp<`agzz}wDZ(>^=Ls(nUM0Lic$@GZ;X}eF
      zgwF|I5xyn-K=_%@7kr`Miv&Mj@Jhj}1z#fgiGnW`yjJi!!5ai$A^1wcn*~2v@YRB!
      zD)?H#PZPXN@OHsF1n(4lo#0WyO~HEvw*_|u?-jgH@C{-&idOBwM(J)M#TU_00~h0J
      zT#D;(Ic~(2xCPhXHe8Q8aTD&wW^BRj*oFb@z&+T7t#|<2@euCAqu7lnum?}$VLXe+
      z@B*I1%h-$8@EqR6i+BgG;C;M~kMI^g#k=?dAK+_zjPLLne#Dpf1>fLze2+iz6aK=l
      z_y>Os*Aer3brit7|18H%0~k?`%%?2Jb8v3592X_aF*7)AJ2nl!FWGXHjYkHXuuqL;
      SdNr1b^XLVahR=8RT<|YrK<G07
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/FixedTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/FixedTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dda03ad0df54787335c1573e9d61b8927ddf664
      GIT binary patch
      literal 1842
      zcwU8+-E&h#7{;F^AE!;XrBaN=AX2fKCcvRu5iNo=wHTU0C2jap%Qjh0mnP?6vSDz>
      z8F3tM^}-pix#FrfFd7{%y!669it*jeX(-`j%uLSN-S^$!`?1fSf1m#KH-K3P2m2VN
      zJiqN0u3TNX;OcMg%4$%PEq6)Xm$fyT7HH}q&M+P2w%Sw;rPV#T>&h_Rl1(M*71?a5
      zz+W#eGO$YwqlLh4Y2oXNsJCST-5+B})|97oi@eGViB?tA36eake5KDZ#IiFLhPXiw
      z<0VWuIKXf)XnJnY@WOP~3d_o`aU8_U3`2T*<13RqL%I~@H=jZbuW*cFlHpJ`+Q$Ul
      zUsArj+-_{j=9<_vSsf?^lwL(peKZdj<9bU`_Qy*9+s1ht?~b@9+=kFw?t=0bWmPpq
      zo#LhNI;I>PrRt(QI5^(0?I@<e@FvGJ-lA$-QkT0ei)V|5!jR>dL5^Xh8nk`A7<PAH
      zWXn6wal-J1iMPAMk@rR8u0f}xw+_?BS&kG&C=s#IJIA6iyk{~dgCjQVnVR~}aD0Fd
      zNegY?uGOp-7$&nb&qpZwT6(fcM|BqG9DLN@l+ey`-r!<lvt>Lla4eu;BoLH!Q~4fk
      z+a=e9@44MoqJDyl4wgu({WgwIO`DT->3e#M2EILi5~lpRE$R%J7X-6=xHC6RBUd;s
      z;|iU|Hp!@4*#HrKh7|`_skzZS<FLlD4pJhwg6=h#L{K*7>l`<Xd8BK$Ep>2<u4*)L
      zRaCcyC*1{6TejIH0=;F5n;cY=RkzR#sdCV6R^^hi*Wfu-pENzh6xAN13mwC&NFYfw
      zhi3aQM1K;99dr90BHJj&=((R}r)iy;)!Y+||AF*l>v@QtDS87X;;ax8wA=b2gTv;-
      zL5$Zz#%=O6zK26b{vS-_@*N!M;8-sIC*JNL|BRc4`S`38w?g?`#{@MogIhL6y2}Y;
      zn9)hN6or}F5k@;7MssqRUw+4_{)9KF`05^*(}Ov92k%<g^Z?jgKkN>{wg<pYTiCF<
      z>mlrng#%-`4&LuzzJrfDSlsC`lh&&DbaM<vs?T)u5|%^C&*W`RayFlPghYHNze2du
      z@eWoWA(Q(Jr)XGyh;bUu(eT<s;}qMu7Td9heu7$dGYojdir`y%en*KupfAApWPd;&
      zKTy~oZ6Zgz!Fq+w;&Xgq3!BE5G&1s_OAsdKh9xFUBK?*9w5PH}PbW7bH_!EN{xx#*
      IhV{DrAK^@6b^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/GeneralTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/GeneralTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..809ec3264e055ef8208c4236192a23d491620bfb
      GIT binary patch
      literal 3185
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/PrimitiveTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/PrimitiveTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cce5b770b19543ef3dd67ac0d545695432691bd2
      GIT binary patch
      literal 2769
      zcwU{9&2Jk;7{;GT?0D<AO&VO&HhiSeQpbUATf$e9h9-^+ZX73VKA`1bP3(y?)ZPud
      z<B%Y6;=+k5Cr(I6NR<GIHWHOUoRIjV5bvzFPGS!%)Ccd*>^r}C-sgR1{`~8gUjbaf
      zy#)FgF4UctonN{$H*2fCZBcb=!nc<_*_2A|h*g@((^LX6hK%dgZMRtu!w<d<FpM4j
      zw(WX~Z#0BmoG%p|CDmR67DM`DzQb+l+AG47ydgi+F$}|gFkBa&FI{J?IM2XtF&xjk
      zj<2|*)_J2P;%NUEL+rkEYNV&sB`Ci@^HU51)6$V@hT%-s95TL65Uo9lexy?v#wmvW
      z?D+aIFg%;W2@Ej|m82uet>%XCR@*v9N^X^8auQ49a5AR0q|b1%^q-8>>UgECf28U<
      zRZl2U+2FpY=v547v*X>G50)kiyH&BR$Rt03b5uNY<T9_`=XGJv@tRIIi7})ZQnZ~C
      zjtVzAUK5+V)le0R5W7M8MbcE0epQQhxN^NPG%h}A@dm?akDX7Xjo(X>b2;tY1jFgx
      z9NNBXyK}^I)t2xm?q4#cE#(exklqBYkS#|e%S)Bw;&Q35SSYV1aapGq-{xMEB2$}k
      zSJWysS(nNW(ps@FsXcgG7y2EBQ`u6`hYjx3?G@!oryg{~V0)!cH5L}GQM=ZKs#M+P
      zHm|l_(?w<IlT^Gk<=8{9aGmN)qU&nQ!VMDB6uN&1(sGoAxr3Po-w<SJCR^<GYS!7C
      zO5i<)^AXi0X3e)irzIZNkWmE(!wnqX6gt<UQRl)zV7tbny+S(Wuux_=8HVpjUv9_-
      z9ck))T14*NrZ>Hvg;nY+&8sxsn%tDavp~isSKO9Y6*r|mFPWY*aY^gLIclJO^dSzq
      zmv9!xpj&E?PJACyNb566?`fJF#!31gq0vqH)<@4|ZXeI&CLSX5QxJce{!b7MSVRm<
      z#9GD~8fDtiL>~?Ak|drZD*1-z@dAB&k>+AF8Vl%GX@=3$dW^BV`*`WM4tpS&UkjM2
      zc1*}*c=;(v9~nvKap8ZHxRLbAQ)sFiNf(g~z0Zf<59J<VeBu#a{SNWigZ>9y81Inr
      zLmlIX@ER@!#@ij>bO<Ctmr2moZb6?OB3T`hh1WyUB;M#ra*~=ruTAPCN8a4WTiw*p
      z52cyxq<JlpHDzFZVPs8{`K;S=V}@TEEx(SL2rcg#w0vdMLf3Ps#ST0J;<=xZ`LS#9
      z*M}CzJBx1^`thicS%Z*oj6&ujS$PBNTO(^8g^)Es&oR0cG;JohO`g!+H_*QShdZH&
      zTY)(XC`ED?4cs3hxMjMLqPWWj?!yS~ZQP0Et{AwFBe<)P4Y+2Y{%)+*dgQ_Sz`**$
      K$oepdy8AcT!n%V1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/RecordTypeCode$Field.class b/libjava/classpath/lib/gnu/CORBA/typecodes/RecordTypeCode$Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5914e5f824c2e5e7ab06ad34683e9cac21832ba6
      GIT binary patch
      literal 582
      zcwU83O-sW-6r62SV{6oE{Qj<Z&>jq)m4cQQ3PGW*g2zp}#Fca-Nm}U7QV_v|KfoU)
      zzTGOK7cXyiHuL7qzPx|Dz5zHv#YT?dFjPaYe$~D>_p<SW=*4}JdTqj_-z8ore$bR6
      z>f5jw%J+Q4y@;#Oy9(|_FJmY~JP;9s>&Hpx#e?w6?Ocsd87##If??7BY3yW)RH6Q+
      z2QsYvY5X2biqc4?GLVtX#tf{*Fm)!C%xVnz!=oE=(7F=xSa2|lxguOF+gM`Q|Nm7E
      zR^U+l>&s4~TLk5BFr#ngeW}Fda1e;3%Y(?Ik9$12;fd7z>(a{ZWXe$W{~tA3pngv$
      z9wt4}l-j`kEjrd4VsKhYiKHI!G!<lDFs-OizC8Uki?DzxIx*OoHdsW-AcZ%`^eU*%
      z6RROdC%~z`pj>^z;xkqsiRZ9Rb<TJ;$n}=G8`#jwi5{ESGP-S3cd$!XGVU(+Q2YcB
      CX@T4T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/RecordTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/RecordTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eafcacfee48b9321f05dbf447d38e413fd2e0bd3
      GIT binary patch
      literal 3537
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/RecursiveTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/RecursiveTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0059b2f9ab4283f5c92159bd31d40be0c3735058
      GIT binary patch
      literal 755
      zcwUWCT~8B16g{`JU8!5aS_=4$inKLx!!v|LiXYWRNvVA$!*;R^Y-h>tERlZ&Mq}cG
      zKY$-)ygS_(BQ<d!X6M{{?zwZ%%;nGTKLD)bse=MxHPETo`Ox2f;hD1&=|>}(czx-o
      zaiUJ;fI}S)IVk>vx*MypGJjAB^NEa=2#1m-BK@(uL!h^WYA4c(5!wtzn933+9}&vt
      zQ0}V{q1HPRr@{+`4!k`RD;;cbc2j9(wg?N&tLfH|P|Ui{VjeXIHwpD94!md_<R=|;
      z-YGqDaSL^VV~+QA8is^MZyIf*f*CYixL71CH>Y!2!&z|FMFrOhb3LWy`*eID<AFE`
      zWj00R^Ynr}V4Mew=1?VswcdZ(&108@ww@HSrQU2!v!?R$lP^yUo18d!%op_6d2_X0
      z;U9}YdfQ@@4ZwAKQ5yU5mC8=mxYGT3)(R^;<P2X>0k=^?nUQ1BHPo`n?Vi}FDz7&f
      zbr~1<Uu}QJ+&3(=pMAyBMJ@oQWMZ#b<P8^fafeZ3Qh>X-XWv2<_gR=<3m)Jh=T<mY
      hWc0{3@N5PswZCBL{I_t~2K!dfoe*+C!V}9{{RJVXsUH9U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/CORBA/typecodes/StringTypeCode.class b/libjava/classpath/lib/gnu/CORBA/typecodes/StringTypeCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f81c868b67ba1192f1d8698bc66f98c3d79c9ea
      GIT binary patch
      literal 682
      zcwU8&ZEF)j6ot>tCYv@*-?hF}t(FRD1Q)*vm4aPSqU#Gb#*by14%^Yqtn5w-{wKc(
      zir@!-fImt+nQV)Nf(yHQ&*jW>&z;|Ye*OaR0Joc{2{uzZj^fvE_Z~;?^Cvybk8~OB
      zyTaJCPaRV?Q5W33$oHl&Bje18KD7##N?jP04RleO+`j8Q5y*4Fe4N|TDeDF*8|wz9
      zj|hTHTUvU8@R6~`?Fz1SlDtTxe3VuL`|%57k9M{Pg8F1i3jvneXk&gBf|WK}m=i1}
      z#_Ct&(V;H->M&!Ll_VcBieez@s#$l(rW9-?|6hEEq13@g&K9g)oJlZSYL{r6x?{3C
      zy-CO!b&yq^@U#dz+uX6WpO1^7erhI3R?knn|3RH7+~Gz6ucn6UXdt9&dNsqBYqAd5
      z<Ldk_P(5S6#{XRR-VZExgYQ`W>JO~)yWmlK1U=;87?-HlrgmIr1z%mkRl<1h965#V
      zR?x7!eva4j-GscC|FFU{R)}@-CafE{S+OFofkyWmmcN{#Lf?GvG3}|L!U%48*T!FP
      CjDSc0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/awt/LightweightRedirector.class b/libjava/classpath/lib/gnu/awt/LightweightRedirector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff065f5dbbb6987ee410700872653fab79eb8170
      GIT binary patch
      literal 3189
      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
      MczzPN=AmEz9}?vaY5)KL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/awt/j2d/AbstractGraphicsState.class b/libjava/classpath/lib/gnu/awt/j2d/AbstractGraphicsState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b927ed5e29d8d1db79c20aa529f4bfb57455d537
      GIT binary patch
      literal 1779
      zcwU86ZBG+H5T1pWYfCA<f}*Gh=oMe8h_6Ky3)O0&NDaPy+FqCT$Z>bsyMp`xW8$yT
      z55`0j{qB!4&g?C1L848%&(1S1J3F&;zkYxF0RY$GxdA;4#u{!b$G5}W#&kV5UkgIX
      zt?;qre$%#sYRE%jK#akm4Zg*54tE>5N^L_}p#gmij&|6B<GF&@9Kj&5E<HCCZk@sD
      za(DRMu+s~rP2b5g=$o}&JDg+CYi8FN#0p+rq@WiD(vXA{gTb=xisja3O~@Bf>?38*
      z;?5eEHp!Zdg-ttPFkb%eUGU8QK!nA1f@jTtWtd${0)yjeFd)IesM~?>1$0A<QScm3
      zVhPN$Dgs4NRGw~<MuQb@yWtYvh(QX)SC!RBFem{$A1~A8ON?^OG$Qqq2qk91;No9a
      zdu45yk0KWw+uxg2waI;<LK}@;{Sh;}-+;k@RzLDuZXFLE>NZ-%o@1XKGE7*WzcVid
      zXOJ{Y>PO)db;-A>V|bF;Cf9ApA!oF;9KmI@A0XRRI!MdPtRt&fl`Zb*2+`Icc3xVz
      zBU0_s#I1PFj-yUam~TsOqoezGH4V>2i9Fg;l60j_-awZdUByyVzEtWkHZc)jsRcrA
      z32gBjd~_56fx_YgZrYf&X&zLt{gr-0?kRGwV&~ijgJJEbCMhEG(H#!b6pN%u;_G$;
      z2Ol+qxEWc;&4mTRKIw%@5i=thd9{fLI6dSLG_e(k7L6@~W4o>Hn(#bLVkr$pcx=Ek
      zOr>K`!s(GNcNV4eWD1_bfC0-4CiZ;}mc6jr@_kQ+qQ3af5`Jh??Ne2+B`s03DU*={
      z=kzK?ijCp$_2NH{f1nw}brSdZZNRl3r5qyZ;!|HC{TVkskioT2k)tq(YdSK3LvR=o
      zpFSMb&U0wpL)KH5zQD1LcS^D2=rf@r3`JHt0_`XjI(Vp^$PC&r6^k7Z%fwjOu55HH
      z{H_ke356%ol5j-Jr{J{0Q8=UUESys~2Im!yV{U|#a6#ckJcBT+aZ2MQt-q}Cisr9s
      z%xV6b#_KSx@P@`2jW^+z!rMBJI~wo8J%xFg)p%dw96ZqYP~kj0(pXTqp!r2YtO-6c
      yUCAf9k{N92lTR<d!_(Jaq5M;EF|6Z~u51RM2Ecn{K43jRc2zgi?sY}=VdW13pn**Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/awt/j2d/DirectRasterGraphics.class b/libjava/classpath/lib/gnu/awt/j2d/DirectRasterGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc2165cade28efd57fc33a52da772e30c197c72f
      GIT binary patch
      literal 925
      zcwTi<+iuf95S=X)Cr&7(7fOLbxz+(xb9u~D6;u={QL03$5PjO%i|c5+YptDD{WTu=
      zfPNHWc6OnT0893nIeTVyc73jXe*Xag@8N9#OAK~1HIMm470*7T@u%E~q#E<G66Ukv
      z#c7_D0o-J;I^*X&mRx1=XgWhp0Jj*dU$Z@_mEcn;7zAlv7P`dfM$|cG&?rUK(^4BO
      zhz3+*_amxn1#J`@@my6yonlpp>6g*iB>^UfT2&0zYPFW3(v{3D4@G5gRt9^2sTOlD
      z?7Gf9nHP&wO-^|ssC6UJ#pQt!oIx|{(?fJ>_{AVscD87N9OJcM_$`;xg@I)cOoEXm
      zDQa8pNXtt}EgI2D|HSoZ{a(qm!pv6u$wDV{!q5sQcnp;>*z&W}PjF<{$(mNyKjRs0
      z^Rae9qEK_q<d$*#Xj%$$F7Us6#SUk@a9&{WuGYbx4!4tdPlLL9hP)_5>MHPpTXR)w
      zuoL}XYsXzqtb-VAM4j4+oY}BhIMH*Hh{N1EZ2Mn6-M3X}O0*rm%V_aUG;RP5um)~I
      zNZ9gu+vm4oh42on65fS1!gbgn+=P3CTORLw-1h4aJU)a+ggYJ|!xO??cuM#To)f-+
      UmxQlik1&D`PRiglewX0QFOw+cd;kCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/awt/j2d/Graphics2DImpl.class b/libjava/classpath/lib/gnu/awt/j2d/Graphics2DImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e5afad2b97d3dcdb8af26641cf222aa86585854
      GIT binary patch
      literal 12314
      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
      Yn&yqFsx>8|>ae)3WK><x7~+Qi0~dGbPXGV_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/awt/j2d/IntegerGraphicsState$ScreenCoupledImage.class b/libjava/classpath/lib/gnu/awt/j2d/IntegerGraphicsState$ScreenCoupledImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2cc6bca111e7ed681b2744d693d6d8a463d415f
      GIT binary patch
      literal 314
      zcwU8%F>b;@5JmrxU<U&dN(EgMrAV5rfHI{ekflfzKEYs5HnyBKTCd@56gdEgLfA-D
      zATh<v6#vhkcR23<0ZcLU(IL#WsTJ>>%4eyHj1w((X?gRTB~|R$$y=OQ5fhg6rjRuH
      zV=X=&38S31tO_<-t=73Djxg5ZF5a*-KbfvAyR0;X*Y}U_v!RW;sre!Vaar3$7Fi*L
      z$*pHT+Z%*IWQ^Fb;Hr|!N1yO=4}<W04dM|94`_=Tq%OQ>>%c$vC-j;bpw$Ezc)b($
      Cd0KY>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/awt/j2d/IntegerGraphicsState.class b/libjava/classpath/lib/gnu/awt/j2d/IntegerGraphicsState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04551d055c65561d72e6fc72c9b8e91096f46a72
      GIT binary patch
      literal 9383
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/awt/j2d/MappedRaster.class b/libjava/classpath/lib/gnu/awt/j2d/MappedRaster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a63c469887ce4a630ae322f756da56e7d6a69c3
      GIT binary patch
      literal 723
      zcwU84%TB^T6g|V!Vxbmah!SN7Xl!(6024#P3N%53aXG-GmJ~`#(cjWUV&cLN@S}`(
      z3h{v`lg#a%x#yhwn7+NgyaG5vCW-(<%IuE}e(xFG<Bn11gMsKY_|Ow>6d{I{F2Cc3
      z&HJWt(dvq}#}IM-FvD)m4@$1p<EAjKUCZMwTTJ*xhCsW=ussW_IJV=~osO^x5-C}I
      z%R6N#=N8EQBa?43gev655JX&sf&@b_mv1Vd7F2{0kzP_o6iW<R&FYKuQLiQ3E17^I
      zHK)z(CU-4)o?eE$TWiRWuKhJ3Dqk^$*O<;Do69epNSyFrg)?M+bAF5`cIk}Vwy0XN
      zApLvtLrFuH+6vNZ253{4kc)aG8>EPW7};ey-4H_Jw8Asg!v2_?gE90+pSnsmi4fTn
      zvPGhmkU$x0bh9_1VI3R3xaOx}z9$m}pkouMX&QsRG8Qg8L3{WVpAgP`L3IL{3hLNG
      RdJb8iC0FN=>EH5EJ0BGhmQw%#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/Configuration.class b/libjava/classpath/lib/gnu/classpath/Configuration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16a411a5ef2c962128ee2c7d323eff321d185783
      GIT binary patch
      literal 795
      zcwT){ZBG+H5Pp`v!Ff<9s8qxke4#~bF?=#Mnxj-WbF`#a8);%L+jeOWk2`X`)8A$K
      z!Nw2%0DqKmcC8R%;w87UGxN-oXJ+>2ukSwqyg(^~8HTliAD4R`AB`?}G%QyG|I{7C
      zA&=a^&mhULc*Z~Tvd8^FxzRlny@+9<Y8keDY_txY!^TmKA!l8I>?m~o!7GNPD^$DI
      zw9Q7HVV?L$5%;4u_hK;%jUl;Hdb!Jx+OO@sKVV=Tsx<3n%dr~9zGIntO`~~|AjM!<
      z?Tb?$dy&JxM9zf}p%Vpx_sJzqg?C2Va4e&K;Mga2t9InnJ{((Sm53ypX;@~*Xekl1
      zm7eGNZuFWVQ7E=aLN(|MjrecsxP{x);N?J^VQ?-ORtm*`Tb!ecyp9yovUW|!U93|h
      zebJ2vin=2a_jTNWE)frPY)JOZRJ6=K){#Y;A#1t5sK@7B5w>{O6LO|Ok9%z%y3(Hp
      z(-kFLLjpw|o5+#)Xy}d@)~)|6lD47QK^*qPTUT*k%a&wk^dLwxO*xIcY>94pWXRII
      z=strv@~IIOpC|h_zCeC<ieJ1IPtk1&If^V(<PBN*El;pA#_9xj#<(}ZgE1a`RRvGz
      z%ppl<h3G7z`bhpZo~o?;H!sO{$x6D^);AQc$~6Tn5y_4!)Bk|5g=h49G`U=5X;I2<
      LNS`p<isAWhbCj4d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/ListenerData.class b/libjava/classpath/lib/gnu/classpath/ListenerData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ab92adf60d3f371637116de1ed2233ebc354a8c
      GIT binary patch
      literal 1197
      zcwUWC%Wl&^6g?9s&C9e2NeZN;^g&4CB$%p85F1ceCOleYfy83sPE!ZRZW9NwLOjHR
      zPv8f#VgV8Xi3Nf!ABDK%7z>3!BTF-9uJ5_$-ZS&#=a;Vlw$X?q!cgouL*2CbU~tU6
      zBi*nDo^V9}HurcOQHD&HKjFH~osNFD-4&+Ckg$U!hO!}lKh=BO;T_Qvj;A+W&pNbB
      z?pdz$yV`Yzg+t5sB&GC!%C4VAgv2rR)aK@6hO@?W6SCk9%dxzh47@UD6LSgwEmdtX
      zL~pqVA_WCYD$>X>D3xj}32IG63=0zFRm72yXjw%PDTXD(azu03Ym5FqZ`(o+;+ouU
      z@xCR`K``naSp$Yu<KH(y<EA^pGeY01mFk>BGbD+*8<<}{jThQ4_3ni?kPmp%cOXuN
      z+@|IWl^MQ0OpzIvRjgoDqAMycVojooic4506Ww-~=0Bhb8B%-hux|=#fIP|mIsH{x
      z8XH7Z=;11eNXrRDq~ZQfcGDiCj5JhQ&(O)Hc$D_M_8E&>ZH%l|A0wwV#wdL7S?6e7
      zCKk}7%==X30T!``9QJXZqS}Oy3n&6UlDf=CQaR!ysjX0yrVNyI+GSQu`-trOP-;Sb
      z<d;?_2|;NljhR8tO_Mt_$>ik>a$%Z$GLyW4&4B!dvZcX0weMhW(Wrd`yHo#!Ejh*r
      zD+EijsSz>+%Ti*5SoEDjUnsRk&H&G7eNIv@DE5*BUf~+yZM^ndSf9v*zV4t3`7BhF
      O$nzpqVyO8Q>%RaL%lB3Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/NotImplementedException.class b/libjava/classpath/lib/gnu/classpath/NotImplementedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56130dfab872d0bebf8d472d847697d151ae0be2
      GIT binary patch
      literal 400
      zcwUWAyH3ME5S&e%1Q~~z01cv{Ks*Yp2#EqBgcOJr6s6#i{^G2XL-skc&xqgPQ>c(A
      z_yE3zk{Z|;M2AGPv$H#UyK}D}&o2O4SgWB#*qWF;2qTqcGi9g2AhEr87IDnR^7#Bd
      z<eAlpslg$v->N$mM9NHp%iLHU^KYNvXPjyk4LQw(-}KH1bU~<h5|deF>`+BHSGw<S
      zpZ>$?A)(sVM%xoYd1rS>a5~ADU6irp!Nnq>(bt9tc|79uT8$zmH2X;?3zV!8{!?`9
      zRA+?k{=aM-6WpsLPebnN`Sivgy8XFRY(lP+uM+2|pek4sR>Fd0rTLYDo>UG5NwBi_
      eg!*G4X-IShfg?C*!<Wqa7GW99;?b2tx%ve^a$;ow
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/Pointer.class b/libjava/classpath/lib/gnu/classpath/Pointer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8fc21f3f6ac0bb9d015fb9793f05a9b922ef7a5
      GIT binary patch
      literal 274
      zcwTKz!D_-l5PhRD(HN@;;@MkUsEcRCi_lY0LGiwci>{;_NjCmhPX!NtKtD>Hq#ip1
      zZ{|JT@aFe^y#bh@=b=Uz984kNMCSQf+M`&f+E|r&a0tDVyhxEqa}cZOq+&~OXWD2x
      zC)8ixb_8dU?v;-^S^*kx3EfZ|wJg3Om2G8|C_+C>W0~w^rc3@59edO{VHo}!J|*~@
      zw8&!hsY`e8)W_vN&Ip{2vWS~g89ipA;y~m52hDF@YVaA|O8h{ZG59m^>{RD3m8<&z
      D0RlOS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/Pointer32.class b/libjava/classpath/lib/gnu/classpath/Pointer32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e57e4da7542e75c5946a0212207da44fce9579b2
      GIT binary patch
      literal 344
      zcwTi+!AiqG5Pg%z#>SY|Y8CMZS`XH?$BGxBPzWL@xlhx@uEa!=jsNAL6g>C=ev~+y
      ziYH~+nRzpB-pqV{y?+20q36LNoIGaLFiE*AU)ZdMce&1tDkftOE}{2lk>D=bFoEWT
      z=9SL0xt3giK8VHL<V)qFfxQ480z#udh+80p0d~+Nv?HCV+v<6tiU(e#iqMVngwvP{
      zZShaiH7i{bPNRSJn-cu{yebkk)0Q9pRxY0SmE}GeEq4++c5WS!Y_u!3C1?gm9^jvE
      n<e#mv|0c*mTWnZ&Uc$v#xD!zTj<;+apbONIRkfOjb>Go9byh-5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/Pointer64.class b/libjava/classpath/lib/gnu/classpath/Pointer64.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66c53d93b580bfa42377917c135f00e34919d168
      GIT binary patch
      literal 344
      zcwTi+yH3ME5S&d+OpI|LFGNL~P>}Et4TuIQMPx-tMD91vi5xOEvd{b%MTA7b2jrt7
      z_AEpN#qI6v%+Bs^wx3@B&e3yGBOE=Y<tR?LC|=pDMh}@zjmodDTsVZ@pCrLqvS9*E
      z35{EwYI7&G!E_kOcb_elhdTCrxbO+}!7yrq5ct?ZgU||fs%GWOLgjN_B#O`uvzU{J
      zb8YcY(J?Ds5RSut_PZf?k6D?=YND+^_+`$X`Hkg187+4b4(!}2BiU$IVpGsWSj&5-
      pAM#Gt*nbyPLrY>%F=IHm5bdQn0Da*^jYG77DzmQEvs3kTzX60jLSp~`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class b/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd38e30f254b7cd771dd1d1d3b04443816237d97
      GIT binary patch
      literal 3903
      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
      Y1l`+3$_KZ-oWl=k3^}E^59hJ|zwc57t^fc4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/ServiceFactory.class b/libjava/classpath/lib/gnu/classpath/ServiceFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea98d904484724b67a08412d00135e711f7c29b5
      GIT binary patch
      literal 3194
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class b/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d1680839e15759b0f0ecc8c89621a65e3791822
      GIT binary patch
      literal 1292
      zcwUWDTTc^F5dIFWth9^JauE>~P-MH^Qc%2dQ6!p>R3yQW;M=l2Sq^Tu&F;2p`~xQX
      zpz+OLp^2145_!YKA7z}gEwr?1d^me%=FEKa&1HZ7`t}{b3?3-xV9;&1oV6U&_e*B5
      zon7Z%MOb{zD^^6Fd%2>S7p}cz1)}IGh%)r<m=!bYn690DvbDplKtU(NWN7udRrW;i
      zD!b;1ig38i^ABHIyd;Bb5DXE&Bp4F82F$WdKF6Sz>Pc740%u4zxvU2su^^vLhX`?x
      z;cP2FE_{$K^THLuBEy2#mZTl>FEFVMhUjuJ&tr%np`sf}qOPSj6!bHUH-c6iD${h9
      zJiA=rZg5;~41Gv+frzS5a9T>|RCFOGrSmG{P#Jo1!sV;w!WQ?Qnp;j-bkQ=M4bu}+
      zuN$Mmw(uE@-2ab?`VjHT)b4&Q)l_0_V)Ph0Ch9A=!qC_7X)56=GzF6k1AlCiiWGE)
      zE;*9W%rK#~cR1BHg%}J>DacR*TAoy7F~$&g`HL0T4@}qM(s@S3HC!jw!ap(-DXqP*
      z)H4M)7)DxPmrcKUG6rs`xQ#muip_)Cww>%#oq7zjn3KbwZ%KDl8f{5D+{mK_^!O)-
      za&nCu?O!jJJ&QjQa=c^z8swCW#xyNWgw84YCgncS51f?S6yCH;ba&9{#u@VJA?Xe2
      zQMxsK554I_#EnBJnIDMnqi=H$0|$C~7lXR7iy=L;i{URJ!U%mY5<ZZpXdAuQ#t?RJ
      z0nafG2a_m}4Cpm%^1TFvlH|lfNwVq)CCN*&9>o}0#>o~X?Q+QPHN8aW&gfq;OlPQy
      ziCnsh^kY&6jVh);A-Rv)O{rFKa}Re9jL*j;2dNdnTT1W_3A`uU2c+>aBsW?Eu9H(K
      T`9er8L0*fvM+gk}L!_nO73(~~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/SystemProperties.class b/libjava/classpath/lib/gnu/classpath/SystemProperties.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ed22f83761446e4c8d82959d29bbdf5e7db852b
      GIT binary patch
      literal 2655
      zcwU`VO>7%g5dL2Nys<ZFaQ@l^LJDbcTw=FP3;jvcCTSboq)AFb(gbL;wl~hE>s_-y
      zX#=!C%TF&HDghD_65<304z!h=iXv1FRV6N5IC9~@oeM`0^WLr<$4LPpOK;zsH}lQR
      zH}l3n{`Kwm0QTa804f+dGKL#Z>56UV6lW<uwQ4(RcG5C)s^w^^9Y7UB!?LoX#C65U
      z#3z!=YRX{<=87r|En`B#bu>M`ZhC~_v9!9VxVkf0qAc~Nbj{G50fx#*&kRG=u$fi^
      zkQth`f(asodKueL%TUuVENel~G6JXx(ymcP6PhUs&9KR&JOhRuk*(wFnUT=S&`b=(
      ziVVb7RLj;(L&6RUZBOh_9}l2i#^ZQ`BF?##{6QbEgpnhgB|V!(5}u?uH~L#Lvuez>
      zbna%SjHmE4xyh*Hrh5xFTYv_zi=lO0JmpxLkr{F|J*`?2o?!?qYPxzj9uJ}mJ)FuY
      zWnBvHnFvCjWe9H$kXy!N#Ic8ppyYC@k!I-qm-sdWLb>lFLgTuY<Y4<b*nu*PLKu(4
      z;FizJIEX{kM~>-TQr|>2n~*<hz_zm5W@Gk}X*q_HRV5r{khvKba|y4&F&W1($Pl6m
      z_^q;9R*6SON#PCSWB?~Nycq9J#wm;tEQR7EjI?@rVv*R0Bzh9uC?VrCMj2{tH);Dx
      zHPhu*S)HNBx8yjvn37QqN5TX{J!RRu{)Q!-WvJ+kNSI<^bbN_nTOrY6d(YBckAykT
      zJeJD2F{-Mj82nAWEaMftN_lAZtZAj~AuV%KT#83KFW~}hl3GTBLJgs7j-wNyDZ&zd
      zG&AO8b7_s*Po<=V%oA{qiHs#^4Am*!G}Q9)`HjTi_(d7jsG;D;G(#PCvq{yOR+2iI
      zgvZR3qR%Ln#?QX6dPUJ)ak+^$y3{!9lyib;c4<%ya{7X(L_HP4S<+}wbdLS=FeI2N
      z-Y8`g!1wVVTO@>4-eZ@j`TXfP<Aoiv*ISOOU6JtyuKpiiK7|Z*>s>4+;r0U4n@4q>
      zy-~HsQnTiYcoXl+xW=baaLRP8lzK|zWH*<S6XU?xNoA{~zn2OGdF^P|#^*GBgOKRQ
      z%NhjOFLYZ$-}-w9&8?yC4jOKw;V#0ohFikh^Jtsp+m1XsA0i^Q_s}&L?q2gwyXhj2
      z-tgW$`to?Lpnq8CNBOotkAcx>18EKQw^w|QP_(^jA&(bEg<iB^F(xcd3-ECtyoF2&
      zH#|v;k1EbD`sZo?JmWbRh+{>>b9XWSDWvfEFHs#{C`gmSPm|d4B`p#VcX=${N9Ycg
      zZwcmfT0g-qS_g@%5i}ryW*QK!^lir(bYmR5F@gP<#4()33EGd4Y!uU&q2C3}ViD(X
      z5p%FHk1IHj8(6?iDEJIXe1R0cMjE%E;ycp(f$kn4gP*XBpULW1`u+w3zr(~I$l*_z
      zjKN`b=tGvG>ZA%^KnH1<bXugia(IpE`hcRfgpBdOYp>EY=IPPVw>r88dp*G#A@l%c
      zPXP{GvJLXTb2``ZN$i8{BP*^W-NrKUJn&5!&T0vcgcT74x4-1uAEl5hxQyFV>s&4e
      zxGDfzJS881?_Q@J4GemT1*qdbl<Y&jc^|{&XxB^7<RY3Z7~^Pf;cXwSOXvetgjSAn
      zL!fvOy+f3E773rv#^^)T6`N-?x}kl-sG{{lT5qBrAJO^a5{4SRr%6oHkQeaRicBBy
      YnGShOU*96TuS%does&D+39a}42Jmle;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/VMStackWalker.class b/libjava/classpath/lib/gnu/classpath/VMStackWalker.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..449d365ed5e39025d59ef4c13b13976d906e59a0
      GIT binary patch
      literal 653
      zcwUWBO;5r=5Pi!xh=6>ENW6I{9BjOqV7y>FRZPU-!P8RKQdnD4w(8&VWa7ae;Eys+
      z7tx4l>|x%%nKy5zJFjogF97z@Oe4n7biB~CC7;c1xf+{;)4t;N^peY|2+~L}lqUR+
      zo05Buc{ZE~TQQ^#UC&iV3~{41U`TZRk;oyAY#vFZ7>btbiC%a!6u|`_O2JUJe4EPw
      z58Q}<Bok`v&KP#AKSt<~n<G>=s&;)(i3hsBYP7Dbud#G-A>>lJo}*I?6{EF6w`=Gd
      z9eZM)^ZR42cxRQYwq$4dd?W&f#!u6EiF(@qu>KSm7C*Ldrtal2e($bdyTMHLe6JTu
      z`OPNR_rt&zC$4_^Z_l|GxzX-vb%?$UooHng)5J_dMwo0rA@fLw7;+R-I(dLKiut*K
      la2;S-6j0Py!UkcEu&j9nRn04?X}*cN#;qt%9u4ij{SGb+rRM+u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/Component.class b/libjava/classpath/lib/gnu/classpath/debug/Component.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70a3533fbbc12a4bf454a4f59d6e316b4d01f478
      GIT binary patch
      literal 2187
      zcwU86T~ixX7=8{3YzPNP(;B3OHm$Xiq>$EHYXz$@1c+=ynxrYITDnP=u()I~+0a@)
      zsyBY?ef=88D=%~gtqqROI9_|_A98%p*(KP5N`}1WIp=x5p7-SZ@z*cE0XU6!6m&6+
      z*6OWz#nhV3b<JLhSM_qM7EfAh>sDQ_+X}o4L#x_`7H`>x88@w3&8XMns=lF{4E|Ix
      zl`9qI(wSL?BkF&Knq=_g^D09>eJ{-=GSm6F#C(b&AaE{~T*yr?sfki5=WflXN=vE5
      zBr#`+6%<?3DK#~lD5R#B3W@wYLr*eS$`%$Fyo+Z~ohO`KP}9j0WlCqWR9@588g{x~
      z)o(JeG=opCS6%3vs+dOIurCmKEK;NpNvo>+FhtC#9}L4B2XTmEPPw$9F;xm-Y9v73
      zZjcU>>2##nOXN|GZuIz|2oUB_1UTmO8t(Ke!X6i4A7u#b70n6u7>7^zM;sx-jy7Sb
      zjW~~S^osLw_nd?ZZwn>P;~ai*e%etj+)*toR1=Id9DRbp1$dH!3-A;}_u>TUC^nzw
      z=ogy<0zAVpAi$si&v6W*hhb1P>UyTNR@NH@t!(O)OtmVSS=1Va!0x8kUNM?v>e`y5
      z>}r}uQ8t_*^}>TWjx=5%hnaMS#y+h6%jKK&6ItcBhzvzA>UL2xTe=)(S{xl0wO--~
      zV4qm!IfB^7pe$RBj4b8M9s`K{&lUFL3Q7tVN%#kSIj-VGhCbW6yuPkCl3J5;92kr2
      zPU6SQSW<9}B-}YmikuwRp;0$A-JUUYv&t~OXOTNw4Sm_vD|TGcDRKq6g6j59b~lA%
      zS?I+n!$qrVEE{^G>BkCI6&MT$cYAHKI9`D%gl^_-%{D4Dps{r1svmW%E3obpWTCuD
      zt{ktT;WQ(gW7vP68gf&LLDUvDD1^~WG@C}PE^f|D!&(yp?(z^xE4az=8g9|JDLli8
      zf6|=v_sQgLDR_gb*x4?uG^`uWHD$}4yS9h0^pxbSR->ZN7=k>|xe*h>gWggqgx*w+
      zVet&mYFNAg()wK6>sr5S`&`Ri+wa-|*A7Y>6!%x!ptL;{Z$A!DzK00?N!i5T2fu=q
      zf+0_!Zwn9K#fXH5JwAz!NOaV*g-7n<gal(=38E65?3Q3cf>S*bJTAc#J_*iBa4z5+
      zotJ1bphz?&(S?9tqGx}gV!Du^?+I!U^y3^v0i!4(ifcGWbDO5ib_o_C8zyei=QiHQ
      zIG&fD;-6kew>_2G6SDfFv5^t)b?Rm(zF)H6C0XB-zF~)nq?ApprjepJVl_k3b;-zw
      z+{mlM_L2=nV?ScHjrlDsL`Uu+8y&re+)kFDWPL=vd`yG*gnU1h*`khjCtIkKEhGol
      zC0Al(9;&c_%WmEeWgVnWkVV@lw(*i0Yoq)#YIiUgWVBvuqj?A2Y%|8%xbZvK<`uRn
      zeZq+0bsVGI!aDUGrfUX#Mm>H`m*NZJd`XP2i19T};u~3O$jK-x6lxsBn|O=rq2C)a
      qZe4MSf$r!}$bQ#pzejF<E5mSy;I>RJ`JT?X2c5s))A_b!z5O>9SG89F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/PreciseFilter.class b/libjava/classpath/lib/gnu/classpath/debug/PreciseFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86cc273c0dea2e607441fb4c211d47f7952c76f8
      GIT binary patch
      literal 1400
      zcwU8*ZBG+H5Xb)urPr2~R#XHLdGetx%BiS`ph9cGCKn-MFygE0-CB+ucjWF$_)xqt
      zYDpw9zV<^IXSWYLNa!Vd*WH=<&CGwNfBydb1>g}@G;}eHSG}5Uxn>ydn$ebSi%PAk
      zuLZ(#Lb2?)kq9)z7&6=Do~gU0SJhW5+ro-8#2E(FX)SVG-Sw+ghpdelhWLuHT39j|
      zCXJ36<{32MnH5*q4E@G2wBSVRA|i8Q!EznXiC!^uXLB12v7&E_6d2MR8F0$CpzKLH
      z>gUjqAd}&E;$3a0B7zSRF4?|ix*KNT$h|sDp&Mxp*IO-~$eY3d(h_)sBZ(9xjkcVS
      zYPFrP!JEjQ+g#D#+4Vi)Mf16h6h<+wVT@tqLRXFnOfsax$PA*gXN!H+YFWnL;kYY}
      z3E|nwBrD5u<dA3Rv0P!2;62%LSt^sXT1bY`4&{+-4c#SB=XfZA-Jzh+q!X4}SJJu7
      zO$m6y@f6PpP?dmKww&9fhMdr#(P-#3mNovL7&5;XmLJ#(^8yPRsIcJ+964TsCLuw2
      z46!F%^3LYYBTM7FoRURO1OHe<f#K%yBo}2vMKg>_`<B>^9N!~B0+oWU>%vm0v30)|
      zSaO2pV4a%hX&FfgNeWs$=)#bkNcz|H%R!=VoOZq7WW7W?ojl~zdj$6B5Pjcp`73R^
      zaE0C}Wt^e!16)<7a%I}V1(gKI<PUKze}n-d4F15-F`<t<fLX*ahcpQ+DZCMbVO18X
      zf{`ZgEqQk--ggX5)p3i~?K<wAt>_K0N{Thm@Ncr@uPNLo8l#FkP^ZsQSBbjTfl4>o
      zq%M+=^x`dQ9Ww`QVqEq3`2>x(X}nFF#q%a@y-7>w2{rc{qjkJK_!v7-7<pSurv$Cg
      XiA{lDP9#XT6QofjiDZJ3Dros1t1KEp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/Simple1LineFormatter.class b/libjava/classpath/lib/gnu/classpath/debug/Simple1LineFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a1b92a0d7e16124b24a15afc5607e9f6dbf504e
      GIT binary patch
      literal 3090
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/SystemLogger.class b/libjava/classpath/lib/gnu/classpath/debug/SystemLogger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e40478eb4b0ad1ec054372d8ff1908971203e7b1
      GIT binary patch
      literal 1949
      zcwUuMTT|Os5dMziAft+gn4}5KjQ}mSF&52*Bp4D54J3^Lw|3n)p%+;`F-l~Kk&c<t
      zP9OR=`Um>j%M4`7OeRlx$baZxX}dad%}rCL9!olB&+fOo-|n8bfBo?az(?Q;Vhlq~
      zr>&c|;rkngSl1i8-frsUEno0f(QP)lry$O7{<*Pf=xt%yx=m8cY3kuALr=L@uH0W{
      z7%m<Mm1juIn6~9u;x5C9RJzI#UvL{-1;aZUG$aUbMxOVQ=v@sb(bJ25Bo&-yxEkf4
      z<Z;vT`J!bD?r9jn8Nyg9uFe;V3?q>-9WcoU&fn8;4(AzqeJ(;V!=+U5Xx1H@bXCFo
      z44D93D*4=OdzRSJ4O3XIqc3q$^4tyXiLHW^Byf@8GU?~K(d1+_In!-zxDI!OuVN6F
      z0~)R{ob7nG4f0wR9yuqkDz0Kg!7xD`bXzb@?)wX_BRto(10qK80fW|XOP;l9*}Tac
      z3^zKUU9-KzFv@&-pV!s;b8d>ff-#2v!@(#>GYsw#6iO@Z3+`CoaW8>!29{Nk!bFf!
      zj$te!qv#w{nAE62uTec5{;iOp3};g5qv|SdU`oMFDpypc7yji|!!6uqP@cKoiqYZ>
      z*Q5B2?3OMDIqS!?hCF7d#kgbCZ2}rj9b=WQ_Tnz)6x?Gt7cobCliL~!n5SWQxU#rP
      zv_>?ZRLdvuF%>m*-IyNwe)5N)dlxk<;Q>t)DKpGP^=)YWp9ScYJ1oE_8XkcLsBhiy
      zmtBv`8u)T(pD>&%S`J@nx9Z%hge)YBu4&j+!?S{YN0?~vXGYr=esF%oHGv8D1;d4X
      z;U4ND(qSgUm17vDfSO$FziAjoQ_<Bta33Y`m{L42lqybOf+``_EebnM{B1H6{tu;3
      zqd8^xDk#$$!$~`^q!yxPY#D;Q7+#Z{4MbQnsAae9nZad6jGo>felF0aIUyqHLZ`L~
      zZcAFlk$^%EjSubK(mps}+XbubK>ZzkzXktO+c>+6!CLad4lcdK&})47DDwulc9E)O
      zl9?T3i$7y{d>i^pTwl(<fl4;nZQPO8v&jWo->2h;KmGmZuY@1NGQFqJNAGJ;X*Gb`
      zxJYw1f@zFlhNQE&iF@>(qjoRg0p?Mm-BV0rg{+1s&Jo<fDoPR~jZg6zWid;4bD1<_
      zl+Wj=cJdmfZ}5v#Jim1P_eg0;;>F~nb(xqV{NOZ^Nq)h0P}_@ImAa3KwVJflLOnc@
      zeEvugu5~af#AaM#jAtjd@#SHR24QfCkqPxW7{Tgm$~VOQh9Zo~m4Uj9%9J>be*ito
      B@s0oh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/TeeInputStream.class b/libjava/classpath/lib/gnu/classpath/debug/TeeInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d22a760e8ff2b1e9b4c4cdf4a78423532a76d59
      GIT binary patch
      literal 1164
      zcwU85?M@R>5IuLhrBIhbfmX4gfYp8>^#kw&gouJ^QbAMF1o&aL<pQgv+iZ8$SMVu(
      z0sojtP5j{l_)x}~yPHy_iGS|Qy|ZV|nKSLL-#>l=xQmqtG=aI}rdO;t%yzqFx+ld$
      zS@VvIyHb{#EzhmEjx<jr&;`cdn(xh`Wfyx20-DtnNR<23Rs=$}=L#gd)g906Ef1_(
      zP0L*qSjhHm&>xqp3h2-5Lm5Q~!v=;BBc^PwIs}1H17QqsHfA7#L4lF7)s)-bX-zu2
      zX00KqQnu@6qiQ-9--AcpJ+ayX>GJ>GAmuv6L&aJWh;DwY%a&`|&2|K-UZZxp71la!
      z;4-d6aUHV}%m_^M8_&QTZU}@wIF`$@vZY*=AvX=&;z7el4X=Gd)Q%);1<^;c2OFhQ
      zuEZ1trpWR4x4F?mw@RLg8g1)fgST>YL}x?N=EC)c-BwO68Mu!aLze`GPfh1t#cQ=}
      z$Cdt|`!s09_ME!hve>ZkzfD=-VK7U^hv>JZVT|`c*%)tuVwfsJh|+n9ZhQ0ve>al<
      z4kKSUqh$UJ@vjOxu3$QyD|9{~*cxJ3#{|91_%I}p1XRW}LS;;(QBEdPoTN9MZdbd6
      z8pX-{H;i;JwMsFb>fjp34$`SF|4=`tW}6tr7PWh!sFQw!fO-&dWRN8SCd^$R{6u+}
      zVulF|Q_~&fm-U3MeMW*Q3sVWbgZY3xp`X(y73?JpY?G8%n8s_QQBe{W{g&P7GbrMY
      znm$8+=d2Q#!9B`Cgik4fEQuC-LEuv*omZe7S@fkWpRXXMtllGA_bES60*t_FUqBoW
      b@G#iue9%q{osZ%#=1mV$3y=bj)a~&fR}{en
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/TeeOutputStream.class b/libjava/classpath/lib/gnu/classpath/debug/TeeOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ec42ac284604efa190a5cd4b52a1075af5cc492
      GIT binary patch
      literal 1032
      zcwUW>ZEw<06vzL!JWZ?&7~sP;x48$Q%r(BA&N$r?B6EollF6&mT}HKQ32oJ{W#TaL
      zg&)8VWjyB=(J&Hy(R=>)JpIl+{qghLcL0yEmw_g*dErH-?OH)Fw8DXTE_>01*_QG&
      z3WrhH3P;kq%pfUHdS`vGOvg9>jtC_DC={qP=SBAgl7ZvB7f3&GJSRL5Fst)3=X+}%
      z>hQupmsupB>sY`oB35gi8xUC3kwThPK}QB@@-!V!zK$+?a@4kZt`sOXecN(7*2v-e
      z#F-2SP9U(|{Ew&86H*^XPRM1|2G5f{`ee&t==ffc!99Vc-;*~^rx6}^MMnj<1%yps
      zLm*S_9yX{0$2K^&M*g0F);;7c_WN|Y(j#8qje-HERdwv}i&M7i2Wkg(9X0l3TYfaM
      z<*~!>Db38h#}i?L7L%YKt)a+!B30xqkxfx#0lc^@-Oeb3^A?S-xM|d{kTZ6#kpDa>
      z<+3E5`*c2~q66gc3`^u$kIPU(8BmHbLMaAmq-g_W?~pG^x4Q~>LLQB5!T5sQ@)*lx
      z^KAbhbE@@An(_#F94lNUE}G&BSjBy6%8<2d5J{THE;FRQvO2~(V`4Q6dPOBoYJ8$V
      zMqD@rmGJ<Z>Rn}Q5mHlXn^c0l^n<R!pR2KWr34@2A(P3>V&Bl3TBO?wt4~%JV+H@`
      Ye>FDZ#>Q;pGiv;nba!s!U6uXl7idVMR{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/TeeReader.class b/libjava/classpath/lib/gnu/classpath/debug/TeeReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..588fcca6a3958f81ef00ba722bdbee009a0ddb61
      GIT binary patch
      literal 1116
      zcwT)|>rN9<5dO|~OQ9}>f~{hyfS|ofy#QW7h(Rz-DqbKpzz?%6r?6VO&30FP1)stf
      z@Q;bq#2-F@4`rM=yS504f6mODIWylk-|YVS{o^Nq+gOf36G$Jnyi&bsb~<g-Jt`f@
      zns->*k@A%^52O=;E)aWbzBfyjUGnb)G^-^rTKV^SSs-M4?&-v9$8uF-V8v=#?yA6S
      z_H5PJ$GNJ2zHT4LC_)%EFoYO2&gQB^pw<S$7+`PAKm>yVBNeM9x4h$;bau>IQ&Og4
      z*Ue_tbS#d8OWi%PIs#Lb|4vIxb%#6!SQdzGe5}j1YuT+%1Sx^>zg)}Ddl{ygHgE}-
      zqnN@>1k<Mk^Jg+}4YLB_4;&Fhww$Z-<Ld@)@O0ru)9V}&s3S=}LBNsh{(8BbD|7P#
      zH_!3=o7`x=mnES@jh3;$&dN6$bT%a|CR}gY9VOqQfxC!t>7u~!vFW_q_S$XRaiu@v
      z9*wwddrn<$TC7s6r^Gx@fEf}xMBj>rG1i^DF;<;ym@-3%(s_ZRU3$UqM)Kcb<O?U{
      z6i*QUs!GRInNH_2osXz&6)~*gBHc{;Wk?_iD34);@)$@XpOhs#L3cVuS9*XN*@^r&
      zjC3)%LN=c2;wsxN=2BnIKtG{o8yLkVwR@_dlYWB$dJu7BkR<>H%$)=LM1GiTh5-wc
      z=`Qk1dP3JeBf*e`$%NiTF+fk~efXp*dj<nrMCAq2c!@b|D+&vK%ii=ElyFN;pP}C~
      zs|aRrhrAHgrxZb^L_0l4@Uf!KD^Q9o_*9nqD~KtncS+Vg^7j=1BaqrB5XU{-4>np1
      W+G(NwDE?yJoT}7<N`VI|diV!W;H+T)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/debug/TeeWriter.class b/libjava/classpath/lib/gnu/classpath/debug/TeeWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46809bb747e0ecada75629dc918132b9de2f8446
      GIT binary patch
      literal 990
      zcwU8(+iuf95QhJCP9+#ONl7`hAuTQ7IHeKSg(4JMDIzTrje^=-Iqs%07`yTTcr7Fv
      zBrbRW9tttD4nd>{F1+*a?96;K<L^Jdegp6b+XZL>wKG3yIi4Lw=XN}9oyuWy*6K<5
      zI&@<h7LXM%-q`Q$mK(HEpFk!^Vu4ckPydcUHgf&90{O?T@5Z|V8|Hk>{JqhqtaflJ
      zi^xFNv4Cq--)!`+Kwwcv4tZ8(9R=jc({+7$n7kXxuxAfFDNyMKj_vjB(B=EonT^M8
      zBv9}Eb2w@^_kk59m>uq<xcAYK=dm03Q31CFmVR~Hc{zLGMptz#<A#86=<5g+%t5<D
      z75HtP-|FNa3TT5iZ)-H7(~~~&MqUz)In2~?pJ&ZEUJ$A2n>rfoDINt$=*WGSCoyK-
      zZgVeKr)6a5_i3o`Zb(&lGh}o0vH)IIk#5Hn!EuY$7hJWP7ci`?3zR-hQ#mb5=MJ4u
      zC}|f4o??kSYiSy;qY5a+7@-t{G}1IX*_-6c((RT49*{>PTed#KSeamjY>Dk}q@hYb
      zr!MzU!oI>Sr%5wh88zIYq712Df=JTbc9kK`)!GDWj7ilz=mn*8sqldUS!v=7RK;Cv
      zsJW`xB&4R)JyIF+(yzG$f2P{vl@fe{2TUe2k9|dJIwIXuSbe&>6f5`-|F5u>7PjUK
      RA5-BI(u2Pi-cr#Ie*%OYk*@#%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/Jdwp$1.class b/libjava/classpath/lib/gnu/classpath/jdwp/Jdwp$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce9e9a32bf20edc94543899d5ad63abc9f2b62c7
      GIT binary patch
      literal 804
      zcwT){%We}f6g_T2rx^^HhDRwa<rN?ViD@Jjh$5sa0x2j!1gI>L<FOKl!HzsLMesu`
      zV1oprV!;RSQHbklP@y6$Y+s*yeD2FXet!E7po3O`1%}m;DPoz5ESrja98Z!r)A%86
      z%}#(SLo^Y)B2I-F#ZQJ4CG!A_42=WyX<>{Qrix)PAM32SNs|3Jnp;G=tBua@F|4=d
      zvaatiRJ%4&H833G2(T2Qf;vYH5ksZr3H81<>T&UUsND1Y_>I1mBHa;A`}+*6`lJ}v
      z<^^kZD5;7oOo$b%1~|j8GKb1>7HbSkLQ0jDh4%ha!@oRJXZ=&_;(?H_R6h89-wJUK
      z=L2joY?Q6dlq{Ui-^SZzu&y<^vuUav#|2zu;E5eLy{l6-QVGMYR{!s32hMGoYilT<
      z!-J%{!)LZ|Qa#YVQ#GIWP0u3vo-xXGefEmFSHEv$YBOy{k5oRk3CA@*h~<}w?a?%~
      zNcB76!(fvpR-ttSEQ<W#=%+2vsv#uwC|S4Z?vb#4;|qBED~^9EIm;d^J^uB3G|1v)
      zd-McOmiQ?|GnG4ZdLM6p2H(T!J*>Yttn-1GAOFzdGo1=9mCVa%mfU?M5c3M{Rr&{4
      Fe*uye!6g6y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/Jdwp.class b/libjava/classpath/lib/gnu/classpath/jdwp/Jdwp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e16ddb6b313ba5c37d62f0dcc39622e38399405d
      GIT binary patch
      literal 5748
      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
      LuK49Ie}Vr4scxg!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ClassStatus.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ClassStatus.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..939e212bd5c93aedba03bb6c39d200cd92011178
      GIT binary patch
      literal 557
      zcwUu}%T5AO42J)5cK|`W;w>&*s4+}jYfK0X$ru7;AS~P+-~@(@1DT6Hmn#z&K7d=_
      z$JjGyGOmo9o_=lrHtl);e0>9Oh2ty|gv+TL>SIUv{!#=peLi_w>UV4!3)c^X8~CRU
      zmFx#12>mQlgz{WG3f&RzRPT=FavTtHL&Gv#rqLvjNhtn^hr$VElBW^Z^em%Sw~VG@
      z9-KEj=D@7C&HGh|JEslH>RJkNgv^cY+QBU$d3HV|q#BEf)R4qx0VR|PrMB(LPWUjA
      z-aw2TNvO0JW8n;iXDj{=rh=L66Kd`M?0HSl`isyT%a$E={#9912Otzo*OgwRl6;v%
      z!pUDVc<a~{{sZ1lt&S?v$S`HqZIEMLi?PO>k8y#y7~^&JNL_{P21oRWf%L@-D$h~L
      g7F#7i;se|47ghz>!ETh_i)<D9{A!W>07s~P0U_*mO#lD@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf53f5d8bbd5420988f2d25a7165436b1c2e7db6
      GIT binary patch
      literal 660
      zcwU{6OHaa35QWc3rC31`pZGRm;UlqetHwkde5KJukgd6tE0mO5(iV+B%aw@>e}EhR
      zk#Slz!pi7oI^XF%cc!PW@6Rs)cCe;nh_KsKJ=5_-7<NU}GTV*&u6fSI@>LiK6@?|s
      z?{tJ}RAf{-3<B|RC2wUQl_Pa%gnV1v3DXm*X<pXb(uoKet8!C2w6DtqIwIu0uc`^J
      zCsRB-M@ZY{i<9bUOhhnF%GFOxC02MXqcWhR*s<>_H##7s);DSd&GH-4Knjytj3ZAN
      zw_PPKdY!rqs-o^mLc#VO;nhUo#{4B}QOgYp`}Y68doNzk?*)!Lc9S^+zU?>=LiS84
      z8CdZE8R}RhZ2e)Pj%C8?ZwB7u$3hqzT$6t>hsEJ(C}J3CCOr-p8Rn5bHke2IILn;t
      z<1y|i4w>r&D`vvL@a7W=kI9iKuIWU4!!+0I=K;)MHhDjn)FS5jS>SE~OITqh?p9I!
      E0Nw_eG5`Po
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a8546819ce94fdbc09c21ef2cbdfb4ded9221c6
      GIT binary patch
      literal 583
      zcwU`R$xZ@66s*TKfFOt~E{O*YE{PKl#)HNLCzxO+;{n7YX`ll`h8{ADhR^b3;=vE_
      zql|CH{bcme)vv1G-p?<OPXG?Fr6EB$8mdt5JHq#;A{go8!QE89WH4Oi2SNpY&2T3Z
      zp$07()asrmX6@NjYDf{vV{t2VN2sBG)f>xxK*$=cZl`WuHwbi2D1Kz=2q%<DF3VvB
      zt8vq9TCH~7G8&Oagv_a}?BI-$+}Z6AQieN_c_dLPU=9UB$+VTU!bwkhZP9Zip<=py
      z;dF#&NBmt(1tZ%h9Gm|d>V%MQxuMsW7j|6YN60}mEqC8kN_s|=TlyN-2>X91reU41
      z{aXO{@fAYIeRjyd#w+5LB~V2g8D?6{vdnYec%ChaR>xRmMUOd<-h06Oee6<Z%*5gh
      e3yg&~2UM^azc0nOj1|5sY^`#M4L-!yCaSNl4UDz`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ca114da20ae8e248a4f5557a14ed010aea94117
      GIT binary patch
      literal 619
      zcwVJZ%SyvQ6g}5IQfpt<`lt_Z(S;8%xK_kARHy_6quG{eI<_h4q$H_+mn*@AAK)MO
      zGvZBDR1id5%$a-6+%xyiou`+FM*#cS&@e+d9;m7Acp?lZA{y$W{_R9RWiWgdMnXkl
      z!|=yrq577L8b+LF`l2s`3wbRAsT`>xO{k2-jnF-z2Ksq#B%O$mGpw%NG_TqOY7vSb
      z7uv#`$`p4{B9!fp)oGdSu3<JUt8K+H5weG_a-$<cYHQmjqz%6>^GKmwz#Ix}GhHRm
      zrsJLrE=A9igsSN~!m~x-#{6AOM?*Ixw9NlL@qm!G{Au9G6E~^$&Ak`Dolxi~C4<B+
      zLk%m0-9OaTuu9nc&A@$pS_rkDn&qG6!SNtxP)7z?W?I5>%xAywJVz7{l(EQ)o^T+u
      pbC1$pl2T#JCgL;Z84GU-sA3^GuO+yMCElwXEpv%AUc}Kl>aQ;(n$iFO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a7f1ce3623536edbed629a13843fef10f52384c
      GIT binary patch
      literal 618
      zcwVJZ$w~u35PfBqiE*MyT;l>BJh*^^XGPR;0?MG0#DFL1Oj?~V=?SywcX<*#_yK;9
      zN3mw2s33@V=-2hC>UAys{QCF=U<*qcMhJV?DmENXgyBF$H%6~}H!zMFOkahOP*J#I
      z`u)C8-KLCI%p~u$)00lrkXJI0%8?qfgmO>Z3d0lX+8Blj1+#hC-nY*!0v!-a9}l*L
      z7t0KHP$7&rth#NPE$i^Ib#Z1TULxdoT;)c)gv{z%n~*jAt}G&h2_0k52@|%f<VoD`
      z$e<-Uo+MOl-w|G01a89Lo!RKd4G9PKe<$1~6q|k=II`}h)xN1WlhFzKky0{9<ucST
      zN7(p7T@CYu<=+I{$ESoa^;5I_vAj55<OpiWA<s-pS%LZJ7hYtGl7%vs*khy|$gMwM
      n{60-7Gv-t03o4BIFacFertzs1r!m8Km91GWvA~DeT14#)e_)!W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5487a1fe40b4088c3d50ea655802bccd4e45218
      GIT binary patch
      literal 683
      zcwU`RO>fgc6r9(DI0;G9hC&JbAfO)FB4Kf;IDn8+<Eo*qQ`L?+Mw?{SI&#)g?6l%%
      zaYEw258y{3-nu~3UaE5N+c&c_`<})>e|`S};0<0HSRm}3shK&5M3PKIdTx$}mlN|7
      z7b{jtDpZ<mS@C!*)X<aZmZf$6mx(lxCoGM`g)k$b&dg4KBnK&>XnDP$<#cTV?Gvhh
      zUkOAslQ|xnBb2@FiG6B0Ezi>oX~y=iY#GB_RoiaRIkJ1lwtv|9NT|5>=U&_O{FZCk
      zTEpWD??V-)9|*baoq&+H;-M@fhm{JJuuP~qp_1-w+?P{d^dm{AJMln7ftZFG{~`0~
      zd6*F1I{y{KJH358n-1hbn2oq$d94%T?b}MpY37lMfepf|dki!1oY1_>z<XR<2&I1;
      z@}K62II;(5@K<1D=#WulT$;mW#t-Lkg>m(kesK=hxFa1k*E%z1hI!8JH$3{9Ngi`8
      iWTe6qu9YhRR`E2uZ)Eiu*7&S*w~kFTnI-OCpz#~JmY4tl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..423d818497e768fe6635d3bebbcc191ad3952236
      GIT binary patch
      literal 568
      zcwUuJ%TB^T6g`($0gE6$@sYS-;UlpjE;UANFu_zY0oj_Noj^&MlD6P?xiWF#2l!FO
      z+p1AlhGgc<Id|@B?!3LfyaH%oM?;Fx7^taXdm;=cA{rVa=W$|OGnl>#BcY<OZu;Y~
      zP)<ii_2x{fNJEBD8Ht%NJfQ|gyFZe4M97<+hu(#C-z3l_q4b@hC%malbIEf;!EE2$
      zwL7hDGd4Jc+^MVF=!}rw+wT!Frtioi(kSa#fKDh|u9COYabE^q(f1^wYWcSCdLnRR
      z{bkHVLpLNGTXVnWgi!4G)4-NjZj%0w`%(N%g5FX}24<XBh8i{qhjSFtuu0hcFM#{_
      z2_a;Y?)aN{G(4&lYRDqTN=sCpb>WvTGNX88j3u@hi3YL<&scm)Tq=xlK)jZi>z@v&
      YVmY~ANpKZwd{&vQbBQh9#B3Y256k(71^@s6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f33416322d518c1b49b37fcc31b59fcf56045785
      GIT binary patch
      literal 657
      zcwU{6T`vPc6o%iUA4`=|pY>UZ3m=J%J3%D1SqU~sw|d)5+X>rjXX(!JyIe_J_yPWf
      zKO)X9qOOFScg}NW&YUyvyu3X<1K7rjfdRtKm5R)kFT(If=xejnzP~X~Sgb&WS|}Z^
      zT0yrfRNIw$)xMKTSLJOaLv0{U80&~TVfsQ{ndi-pY-z%v<u>XS=h7z7Az|d}qPp-S
      znc~g`LdvykaY%%W<=B;K3_Q$K0*#8}G!CnF<@DnG_^jr}n<+we-&3AG;Oe#YIw5TZ
      zZJ9#~6L}OcMkqL*l4nu3DSI{1^d+I_1TEp$MbC@*Gnv-cUP#z={`>GfLe34MUP~T%
      zNtYj0Td^aA{IOE9XT{gc(7*y=^AG(DED_4T74RJ2CET)qNd8|oij7O7gbcDwM(i;L
      znTPr~$2{D}dFGKm9_5H)gIUKpV<rq_HXc!YNRCXhW|QPArdabI2QZD9WPdi%66Sa<
      Pax{-cEHe{FWt83l%c7S7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07312b684292317ef9e725df6f459aec1566a490
      GIT binary patch
      literal 535
      zcwUuJ%SyvQ6g{`E)SB8_ty<l<=)x)(ic3Y%U_lAGsAenEWN1^;Ny$Th#2;}bxbOq~
      zDDh@g#Fcb&?mc(Tea`#G>l=VRb_^5<{jtg{FBC~K7wN>B`j2z#iouRlk_we3T|1i1
      zgz|?n?G6GN`UXmb=2ScgD->#M-HfKvO9@qbc<-J$cNYXYC)9r`xFXDCky};?m6JdP
      z=_#SO*K-LaJMv`>Mbu3!p+;ypfs)tRY$W4bF$yK2<wTwcT@eR4{|=VYNsthZoP~!!
      zCe(&e7JG6K=<<K$hxt|n^HM1p+j(7?7}y{jEYQfn7Gd|l1fJtJg;3Vh@vrb{_*8@r
      z%BZk4m=#cEkMa{SE_1}v94PO<z<kz{6~>AVKB2*AehJXTs(x>2T*Ers7JF@Ma+40L
      I+So?t6C(SAdH?_b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90c72fef553a59fcec42f06d64aab50a38182247
      GIT binary patch
      literal 559
      zcwU`R%TB^j5IrN0A{Idu72UXC;UlqeX)q?*Xo6{U0d{LH<q9R`mbAATmwu8f6BmAf
      zA7z|YjbUYUbLMep=FFV?_Wtq;-~gKj<_L#Fl~`UN;&>|b$Qlpsr`8379jaIhrQ?<z
      zP9{PPx>C0~O3Ub0c(V5}l?L*J+F0BPD-ddEUG>M((}a@Uy>U;R>oWqK5-Q)5ToEKP
      z$J7Nv@yJ)cJ|^V0cU(f=4hOP~94aQ}Q6^L!U&+g4(w9+B^aDw#JE126S44gqe<kyJ
      z<i~`z^Y0_tgmO1bB2S+C8O==FetI3j>?kE8JDo3M1FM9+KM)#NCv5%Jz<d0(uxc|~
      z@^7(JEFGbV0*Y)6j^<Eek5b7P7dT^OF-yGr4D%@~S!66`$wyQf&CdeVu#~;mGhD_B
      R+d6v<tT9QGs~Xrq^8*X!jcEV?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..886bf971e6a168a588dbc8e92361ef3a5424b5f3
      GIT binary patch
      literal 730
      zcwUu~%TC)+5QhJ00;VC{LV;3xp%5fmq*_$$K$Q~LZC$yE6uYiiStrR6apWAM*eS2T
      z>vV<0f(PKCQ0KTH%&KBDo^Slm#WTLXxx50fj~xR~2p><>#O%c)O;1HOFo*rKQ}a6;
      zD^Y1CRF>AQWHb`0@5!wGLuP}dZ=g(A9E#t<jD<Qe+ufn;WrP{a3xkIH(<V@pFn3oX
      z5b;EoxaTyX;yNum^czjr))6Ai2aS%S`98{HRhq}X9a`<rwx=T{!mQ(k?WWguZ9f<B
      z3>yzq!(Wd7E&OV??2cn;$rNGwC{j`OiBQ^o7ZA!;(w7yKuvWz~o)H$@NXgb@)Rkjj
      zbYn@Vxk*pNffz@cZ-eD*5T%3z_wn00<d5-^$+#!KM0x!O`VV@IgsP*I99z1uObu)j
      z_8!s6z!qWie+fLteF|^p-+25Z@N)EVu#PFV1Vf(yGt5s5Tw$IqaFuzk!1K%t1zu!c
      zDsYWG(o1K%!VxoPKGOROtp3R*&+{>K@SKyuEph=~U?YG3GPkernx8fH-ry~^SxM~G
      GvHlk(LY&_K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e720d5aaff9a2a44bf68a3ef899f0e65c5ba939b
      GIT binary patch
      literal 858
      zcwVKF+iuf95QhIHX`F`i6prE4LIbo#!s5Ds)H)k5xHgK7rCwPZXK5Wdc4a&8FgyiU
      zNL=s$JQQNqp~68(2yrv^_s`BjGxP2Hm#+YxU{AvZhW(RdriZb}^D|ML>XY$@GyN4A
      zBTe!`Bt_mc(&<zrV^<bEXEc#vF_iCQCX-NVs57ij#CxH~B016LZic4e2L6HdmNT$J
      zhL!VNzKCbCM#YyIR)>7Rhuk)J;2po=N@WbK7u=hNx=Nw`TJC~UV`v{aw&^*;z_bUB
      z(w3-%Y5UG=9vpG+rPEhpgQ3$m-Gf7m2Zm!=-0)1tRvwLEgWG>_G%2^~o{PNC(0Cdp
      zQSqFiwzKOq)Qxm3Td3hy8`sfgShJ!;+Oz3MW}X<ul4@FMC}Lk^k>a0Xy*Q0>hG*7)
      z%z9sqBAsQS97JWIg}}#Z399`hk(r??$XvsHhDZNUQo}=rt-l3OAHPCq1i$r3hehL3
      zJ4P2vXb@>?lV}nzSGYxdvBGWQl?tyCuT^-Rc%#A{;!732OnjxnSBbAJ)Te7yYa@Gu
      y6uo4+p1sew`Kf$zTis15e#9NJ?fC<2VypDuE$uyQ)3-x^Jv_ipnXrdlbbkQ$T(gq^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6eb00671b80a8e22a66fe7242f6a87eb8c175206
      GIT binary patch
      literal 1101
      zcwU{8+iuf95Qb-)G|sUJZ7GCffdD-~&H11rq{P{zu3Q`0n^3MSCs|rYi4(;Rh{xgz
      zi3=WpheFIcDQxKl0$E!5n}2uy+41=MkFVbV;32$FV1dBPqhP9b2VNMCz35o&_dbr*
      zeO$Cr5Jp}Qg%xcy9C|^|;Zeor@A-rWUCus@xdKT7rM~yUQwLsfq*|Rm??wdDn&Y;s
      zMvD?4H3Ef`Ol@y4<q5P#*Nme#%_?izR0Iftyk=A#$2F{Ko!Y1$SarRjQ`-@Gf<Owv
      zsK<n^$^m72)(jU3WSf-DEaOOuK+dsRwnp8CZp01>I+)a9wC=KZZ)V%lnAKreL`)e>
      zqnnJ{jjA@&v%jjcYWq}UB9<etHcwrrwN}%mhm4wzZka;O3-#n;?pvMhxlL+PTi1kI
      zAh0sK#TjXd!0P-;XS5=g`N|Lc=rw`F#%7y9QXBPn780<PhdXeWK+*66Zcc|CK4D&G
      zzzHlHqpmk-dlO&qJeZ7*{gA+}@!y|(7n|garjssj__58YV>@CNuxWY_@QEh!^H71u
      z1h)UdP=Tie*8g?@>-c>HXY5p!INR7NY+VV;um~w6MT{M!kuwr!k#m3Od5H_iOA;56
      zOA?<$UY2+Tc~#=`$ZHZ`K)xt(8J|lMUq-$n@m1t&5?@DNm-q(qO^I(IS0uiTZ$yj;
      zt{WIpW5!=*>kDjtj<;-!|0NC{!aXs<vkh<`c4A$P*9X{Az^g96BX|PO(1zgKb144=
      D!9C7m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01ab67df6549fc9df93f70756e0d33a316ab1122
      GIT binary patch
      literal 687
      zcwU{6$xiD)5Jhj15JL!%7v?$dJr)cS78`^FLINvcP#_40Y@?3T0tcs!YzMxJ6%q?R
      zfM4Ms5Y-MtSRq)rT<3OGSLycC%flmpb^JHbL)f@bZPW2Y7+#C$(rh+vugxP4maoD{
      zs3=^t{8me-hApE-I}*-SF%T_jAW6tJ#f>mMp)SmFy(yiD&}Z4T>Tc=0K%hOs;QKXI
      z;k9Lg=Vl4%{X(TvWNU?3vA-z1)<EUp(5{vDjtW*qO9?JIEuYqkXS>IpBA%bxc9k3L
      z5E4tvRYKD88#0Xq#xnSW9AUWRDtXdw)n!l-bx#s<CEpQVRRpf)H!&Gqx*=h+^gAoI
      z^!|Q3aAeVqXME{d(;g8rhf2x7(wEE7z&v5~2h$AX3Hk3Dc#qE(z0}8w{Mu|1o7Rgd
      z{!&ba_8EQ5{au`99_Zo>^I#VbF%NffmNU|3a~xsCjG5=G++*}EE*a;Tip6J4aLjZH
      bFv(Zx^XWLwV3z+m&gQUyzkEiV{lnBNN7$HR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00e831d9d76b3a23c53f91a2bc0c58e3297b7684
      GIT binary patch
      literal 594
      zcwVJZ%SyvQ6g}5IQe$dsebxuK=)wmWTvr7R3QABgnypOJu}w)QB@g{4cdi5%et;h(
      z-bBU6M#ROOx#!NkbMBmZetCQXu#FWBV}y23rKT5%I39_lZw|V*BlCp83RRp4mBcM8
      z91ex*Ix=ZFN#v{ExxAK<RG!pOB-97uMwo$6J@c$HkX}NlSk9HZZ(kk~=zviDxXTqm
      zDhn*G6H0kOMu<?}@s*$K5ejSTE}>|JU8$phnt=%zgqrOud72J8GP)3*KoS~u=!w7;
      zk)QGRWHIUcF=5yK$D7&&-3imklSh6o^sR9#dn~~?R!T-zrXXVt3xv%-NNQLltp3)(
      zb9}b21wZEG4`jR8zA-dWLYbMCvkLR^FI?w{G8-AIoH26_lr|nPd7qcm8OwR{4pWTA
      bTLBuF&d+CZoW&gP4UXnnVu=@Vw2bB}y_J#%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21bd487e0285619f8879ca5cd29dffe6f71f0622
      GIT binary patch
      literal 670
      zcwVKEU2hUW6o%i!0*eTRB3kJuO?qM5#EsV)BW$sy+0q6mx6QDOWyvy2_CtS{S0-L~
      z=Z!zgcxG)QO`4ddH)qasX5Kkx-ud<W`wswbuxlbi_;9Tf%k@PREkr!EW|J=q>y(2X
      zs3;aHj`r+eJ{M{-kn!Gd8cH!a4ufRTm!D)Pl`BnT3DueSEG%EBYwLVGlWt5X*n_K4
      z%em|js7)x}UN{ndA`PCPM9B79XC0jrA%D^8cX~rj8Ld9)I!9d4Z1C<oPkHfsg7Ip9
      z#6mlm$RZ3pE1`laq2hQ-_LBKnhC?y-C86d7uJA`9^fccTv+>l62yN%FuYOA?4uT|f
      z<wq~=c1QhM+d(LGm6D;Y+sMeoCgJb_eNAi=n*S5<9RDPQ`hCOlXR~o^WEKtNkY_Tr
      z%_uNGS>ht|(<Lr3mzQ{jGt!20T;+<DGLSp?hT7NkNS$LoE&jxF{mXw3;04yw{g-KM
      SV4c?*XB*hU4l{AqMB@*&sGO?+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d86fb49a989e5b97b05034e0264d6c1cb0373bfc
      GIT binary patch
      literal 965
      zcwVKF+iuf95Qb++8t2$UIEG`P0eXO%a$7(OjtfDl9og$}8Eu@Uapc&Q?Z9)v4H6eT
      z01t(jb&Im}1|e?N^UeOV|9E$P{QUME01n`}2A2>HPojnHhdfPBc{bH&lTWAmJ6eo5
      zN;4j1Y1@eBa~@4xk+s=05q#o^4<ZqfFEl73tk3vIu7^B2(e3d}_!&aka7V*V-!l>L
      zHA3U}SwkK!M1jm}2t})NY|0oBG}m(nrqz{5EtMS8_0Bd6L@w(v&y_@Ob@tXVJKfP6
      z$Myy?w?c{|htA3sC4^c|Bg6JACQ};1s{P(FyQ5><>M`5Ng=K`6;W>_JF_K!0+?NU|
      zs8EY8vvZFsLZwF<$MFV?{^z{irAM8bco9TF_6nh}y)&d*Bc6yV6rf#)O}LM+)(;|K
      zE#_m9Fg^|iLbD(HJRI^QkbIsjX44==c-jAtXE{Wuy740M#ZizO{ZY6t--|A?7eyj5
      zq=QH`c#5$150)C}2%CQ^pgxu*bOjgsq#2~^qU&ow3s#^+q{#_@GI2%WDsfHWI&nkc
      zRpK>;*NHb2ZW3Qs_zLk=g|87`SNH~TOW~VDw-mljeCI;HcNM-z5z1$$^#Nt{oM~2f
      tzrxn%T=Gy3Yo7c9kK_cM3E(ko=leVPx(j>sZBq0E_Td@XAVmkz`UTtUx+?$x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0218b6ac69a2efa8f0e723de09d5ddd96e56c006
      GIT binary patch
      literal 1291
      zcwU{8TT|0O6vxk6XrPo^K>@F*s9cnace!brF6}ZQ>14M-ec1^m17S+aw5fhBpPcc*
      z58#J#Je!tb@x{@}%*p=#=j@)7vnM})eg6RfYfv)a3W4>bxLa&AgHGoxNREpqhhNT$
      zyJ)Od+)08s=`2{S)6*b6<YBVlNA08=H1~qWaTJFJ3=o(&2|fqKW)L40-Gh^`kq{WN
      zxb#iCP6?0_fzk7${GizlGnktYFnsE9<~jtXE!*Ura#{K)IjcCPsC!gJVR0j-ZOgu2
      zNtwPRsvb4Vse~oW2)8C}>eF+Ftaxs{mbwQqRhjXc%hNNnh^)-nr`~x6BCqorb;=5d
      z2xL9V>w9VJFo6O3feE$Fsn5Wp1(jTQ%&91Ggh1XhYi5brOt9XGd8{xkSk_EYO{Gx+
      z<NXq(TiT_TNaZn%th#ntV&P6t8YeL3QJb0=d7(~Vll3&xq5DdoMBSrhy2Bi*H>p5i
      zic=xcW7ch<3dWx9Dc2N%S*@jVpNXohP=|WVQvPXdz-AOj$u@z^;*yUYuv&*<4l?i}
      z4^LqYKgGtIce<wsVOs<T&5%IBZZ(3YAG9OIeQ_W;jyeQ3?f)OI4FWmd>b4u<PL$@k
      zv~N|-9bN#7<FIY11YyU3Edne5kkNp51m^#?0qeNff>(68O#G9uS=hX*Fb9K>MKaX%
      z!VvQCADq*81UawqDDs%b<H!>lPa+pIo<g41SmnQ_@eJ~;#&h^w*Z2nVO^t6M-`4mJ
      z^1Q}(k?(1IA9+FJ2gnaKeuTWJ@e=Z~#w*B=HGYD;s&NrlL=7F<XQ=cTf9d6K@ce5U
      o@)B(}6}R9O+I%knUc;Nz|2DPjuz~Lat~OyC-eVdZOfX^YH?%6}=Kufz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$CommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6228afe14182d46a16d22d00805b28108b5ae97
      GIT binary patch
      literal 1924
      zcwU{ATT|0O7>3`K!wQz8c)%knDhDBgf<O_$O0n4LjKz+(OS;ftn$#r4;cxg)ymH11
      ze}F&A@okEo6q#YxoA250&F;JVCA-;QzkmD$Fo!o1=LDwry}D()Dhz8Xs#pi*FEwkM
      zA>(^tq`W8`&-m4<^2$XWNpuPf9;icQxyswO-t8V}I}(tEjgPs)hk}5}3H1FPT2gLZ
      zcW|yDf$mkubD}kYj)}>VKxf7;>t1xAFNGfT3Jl~OPrt2KcXhC%c3mwnocC?zmQ>(0
      z@?)_xsyLy*Ox|GCX@TCNUk_}Zbz<YTj<bz&1X4NA(?O=;s6&a%0%K=QLEGf385LML
      zYe-^M<0U7E>dGxByTZ~1`r8GG8v@HFhVS*B4zy?MoueB4`r2}d+X4$FcJaGtTJ^Nr
      z5_b)4HiAGM9ow|p688;@%XyIw_Ef95wp?ODVBW;8preXk=C*7$B&G%COboJ)b~(N)
      zro^m3+GKe1<g~sJ_x}k+V$RUA7zK{EpR_!oNIW&P+^Gawm6Mhy6p3d7>*khQfnTpB
      zd`C``B~}cNRJ^|uw*Bpb#B;;d#``|+tFjJ~t36GYSQl6_G2cAY9zXc!x(@jdO(j!_
      zjKHFaSus-fr);3Ay79MbB@)^HDfyr6IdYmTkuy9sag97RF?j{?I^gvnFp4g8lakpv
      zoM%fkt_8*mRIE4$x~9G(^)2qw&)6M{X$&x?njJ8Rq4@c594}&o{K`z=60UHXt885(
      zuah^)TjUsdhrCCQlMl#;<Rm#oJ|bsGi+oJZlTXM6a*<pjm&r7_O0JPF$PMx(`HI{m
      Lx5(GzHb(ydVzWig
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Error.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Error.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fb74b7d5d8226a9a2cf56d496cb80cd490a4d98
      GIT binary patch
      literal 2679
      zcwUXwS$7jR7zSVo0)Z^7VF@h|mWG73xGY@>i!zq&31ex{%ox&b>LeyOHFmHa=)SlA
      zr&m3v7ySYKJw0tt7ur|yID9$fq}&*uR~n6^Pow<&=*OQJW9Qj-gKP_DlgrJu++w5J
      z>8w_}cXKOC4_9+@`0-lJPPf|Zc23K7yVV|K1Dx$ysXnOY8r9}<PA{y~7Q37cD6J%C
      zJmPG$|460USgUQtI~ZrXd{q&FpHJhGks@!?A<o7&rfJdWB(!bAcuBu4G`==|Ja6+6
      zJd^cRI!>b`3Z=?RH{K|o$=WvLyU5%1?40ysn~q_k{nQIY6xr|qXZsx7=%JCJFug$z
      zk_nY%T+(^p<%dWfXivnxRyIG(+3tQ`@MVy7AE&VqW!a05VTwwpWo=|HcC$Io*@zCs
      z%_IwLHo@6mJ2x*eMymL6!wIY>o)2YO_M@_hy^;-2Vub$dqCmTapW<w1J_!RKlXXu{
      zA+SRhbfVmBrpYABTKTayHolO(I*U?$OG(#o5d-)tmc}HZd&MPE+1_>*w85lo+YD#p
      zo^QM)5GHHP%Yu&~vz@zw8We;dL}^7Dzu-UK)2o~v5&8c9yAt{3Fpy<zM6XKMI6E47
      zC0Q1!R}!iypVa9(*0Fx>uwzl2ZG_-#qU1{>j8~f9WPn+`B`*UR%T1=@akf8EQ4)sQ
      zAhL^zvUTKfW|S>*n%5}ddbRNVO!ju9jN^q<W1>xFQQ+)M_WGykUPMu!5HI3{s3Zu|
      zP`eV^YzY+*vynYszUoyjn|Tc_{jHM~+re(2ZMkE=gCLMa5v0Nt6Z;06FXLG1Bu;e!
      zdxi7uzTzfA;d#>4UirP5v^X2Alo9l9hgHsYxEU!CSl>t05+&kTpuY4P>2Nl@UQSU&
      z#DBqLL|{A2V+9p`!&ff<m3;F)u7}$;{Eb`>fmFrV)`I^|(kM3B0Dt`FU<X>{-LCOJ
      z$>72mVOPrk!Z5KBDzc}*b++l>8&Z4rZTbiUV1a(6f2?fy551=Ff!dy1aG!3UsW<Cg
      zd=XoxrYpF9z1C7~h;3ybkFbaA1JpXGH*0F`-a@S%R~H(#a6xOa+Nf09b?Yn~=-#bk
      z1E+$gyZtY7HWani+KaV9-Ho}S&pG>N!QME{X07en!D^jB_6@$O{~MjNZEk%0HNuKe
      z)YsTJ+s3v-gUl{?2fUMb2p%RLfk%mV!Mlm~z<Y`J!TX8F-~+@5;X}lS;c?<4&@;r(
      z!bgdZ!N-Xw;1k3r;Zww?;pd1a;WNZj@HFvR_<7<N;1`L{!8ziW;Pb>6;ETkU;FpPC
      zfnO!I^?0554frzg419(7DtwLjIxL81VUIWuOX31tBrd@|@f>`EIDpH<3f9CSe3RI~
      z5pfJB#1;4!@ojjX_)YjN;<w><h~I@%;`iVx@dCU^yad;X@4(B%ci}qm3j98C1HMPx
      zgj>X`@O|Po+#&A5Ys3%mKW=Xl{C<ce=gio)vp=wpzIR<d!LNOQ@jdKQ{C}j^fqlk4
      WckN%e-!Iu$_;<)X{x$oSjsFYmc)ctD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$EventKind.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$EventKind.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf86889f2b34de0b72fdee44a757a677ec034b15
      GIT binary patch
      literal 1119
      zcwUW@T~pIQ6o${z(zK-rqNw!)P*K~8MEq7d&V*!ZBWaRJLI=Icq-_S$sVUQ>_`AGv
      z#tVOdKg#j!hU(&t-fZ%`Ip;lRH)ntR{PrCHcAzQ29D&ABJeB*SAW2Sw^jIDaKA*_%
      zaZ$%{k_K^_Y|_&(PWPjDAVHqM@-R3J<WUeG$yRR|_EQ22u5P|FsPB5zCP4NGEY7mK
      z!Dt%hupA*!-gBt3Z(F+QF$HUvT8`48zHQk|$e}<FRcd>>WikP)RSsP0_!@2LCe@fW
      zkDAv;BMr+b4tFY`_nAgb9wo6B48?VQ+o87NP$m{JH4_g^!%}!)2~#s|rj#+NrBg%m
      z6;-9K%e2b`Rx+()X?janm063c1eSjH?4z!>nY@N39qP3$){*CYU|J0iYNj3Pyzx2#
      zsoU{&GsBMriijFjJnqs*bH=)>TBb==FFS%k7RI;#=QMa0fkHEiqx3C-T&><EkXOfp
      zunalaslX%HMnfZtLv#A67f!sOHwtlQ#<(Ahy1^u3d?x18<0v7pW&Hni?BY?n<LRUy
      zwj%C(E^eER4R))?aX3+#VVFqphQP+ZDzK@T)xfF6ov}XxRhWkYlEg*{ipV8_%g74?
      zSCAJ4zJR<W@G|m6fme_(3C!xP3Va3ms=(Kfs{&s~x*_mQ<XZx-A+HO(fqYxwJIHqh
      z-bB79@O|V50@sl10ymH!{uRG<Za;WY*+k$fqat(0>(%%QkH7GcC%Cc%m}|mQe6M5y
      X@C=^w?=SfJ5?<l6%+p`PE>wR3CxN(1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ded49a4319219933c3dd844e6a909ecf3c29513
      GIT binary patch
      literal 522
      zcwUuJ%TB^T6g^j7iXaaa#gz*e>VoQ8V?v;6wP_Q;Zpi=>DAp;V1><MAGI8Mt_)*5&
      zf{Cn*n=|*^$GLN6KEK{S0G#6>gEc~JsAgK<6G1Q$;Yb?~o+sKJL&H}=C{!368EWo7
      zN_!HzoXQ|cD2~NkXr53*&F+n5KO|HP%dzkEZriYKOugH=ZRz!<-XxGg$p45r!kfti
      zZzn=&IbqqBW3)OCbu%jPjnbE{a>FY^;`qcNBpd!fW|2T4hfU-N1=Cg1nmzU8v?F?+
      zB$Q3RFFZ#~-H0!f$#CQbgfsJh1}_NNwm+Np<+U4Yuk_X;=Y*W0l$<sqQOQrTPdNN*
      z3%|n39{vD!7&%52DWsWYVz$nF;}_3zM3HmGJZH3+1F6$DY`w-UMaF0Vi5HYO&Mg{H
      T#&%raiE$SdJ{NL(yrlXKR*ZTg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ModKind.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ModKind.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f9f5bd9e6a43d503499f8e11c586452eb1637a2
      GIT binary patch
      literal 796
      zcwUW?+iuf95QhJ04sMh5Kskm}3lvBL!r~f)WHzp9aP11aQMp2!WYsz{b`?ADTwEb>
      z!2|G6h*?v@_6lxB^ZlOr$GfvXet!E7;5nXJSR(XJvbjA@Wl@~T^3<MAKA+idIEXwe
      zN|}|#&OttTn`9FUb;8C}ev)=7vlBZUP1U$0G(>n5!~}XxSpCyAl<8d6cnlHRA`Avz
      z?1h2jYl(-p<NbH8Gx!h&{(CLe2rc0|QM6F%y020WoLKB@siFNV$vqbS(ZJPWlSMxi
      zj<#PkTZA>PaSt!3%RFSybN#<#R|xeeb`N#lVk0kzVkZ#pqM%J^zD%;Dd_}1Bc86Rq
      z@`-AphI<{{!Ck_-pJXbSe;lb<EJvv#Z2I|Frb9VPG@pz0@-!(3egA*2`vw1Pl+R~l
      zwU<<`7pk7=JrFuxmZ_Q0cB-(@Cv5-ApJ1I&;3vSR(x*fh4K$f7y&fzxuNd57ZX4WT
      zUNv})dEMX*=1T@|GG8|M3iDNiuQ6XY_y%*=;G0ah48F}7>D%YH#fn`qKal=cY=5ar
      i?(3(a#ie6B;Jov@06TbCeScKN$LQ(JSM9rag6=P)6^)_*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$StepDepth.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$StepDepth.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1acc46cf4cb283dfd59b98528c7bd9f79a5b1591
      GIT binary patch
      literal 506
      zcwUWAO;5r=5Pf5TN-cu;iF)whL5Z>Ptl@&1U<geFdtb^1N^0A*Tm4<0Og#7l{87f)
      z`Vl<o<?Va3GxPH1?fvByz!~;UED_q%D0lo&WLYBA%$ZLf6X%AZ8%LQEk;)E-N+y>w
      zQ8N=ILSrr-gcFKr>bT>%^cA7h8;o26^$4}^F;9fKG}s6H?|N6aniIir??#%kbLAq4
      z0@dN#(Xq!}-FPA`7+AAW!z!WP4<b3p@5eG7iE$_i&3^2Q&=YB(^;fZ^W<f?c>Hj~-
      zIl&sndFspSpxFDX?^Guw*u5x{X;&|lnTcJ(!Cwx9>W>E>n3Hi*11*$MVP)#vSY};a
      z&=%{J1#L4UeF4TgSDZov<@PfgPen_UQ4hfAV4b=B*?<jf7XMoXZexdEs~B%#53LV>
      C&}?@A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$StepSize.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$StepSize.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7331760f65252efd622f13289f05ce800fa22eec
      GIT binary patch
      literal 475
      zcwUWA%TB^T6g`&$MJ$5&#FYydf{Bf5jhjZ3nu?1W_CuM#kUAypR1^Qom5B>Kz>hNC
      z7D;ran=|*^*STjtKHuH}oZ-Mmh0ves+>K(9WeZ_u?tJpJaBmpAL}x~5lO2UdE<*Jz
      zZBz-Jxp)+AEcDd98_#8A2-dAXB#=*Nt%gP-&ZWgFAXEc?cvZwis9z|p%q7np_eWgv
      zl8J1>LfgSQ96~!#S`PDvu}ts9IF^KNkVGOLiBuK*J6Sa|l@U&Yf8TyiXog9iM)F#f
      zYk#$!7N!V}ueD6QVxP=x>=O?E5+F2I68xj=i+xtmLk)FicF7vd*M9IOM^yM_Y;ndd
      nIZzwCV&kQ3=`a=putIEd>?|A5#a3D0E^!CD{4Uq+u}JR=Qx$2d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d3d661fcbbea5486e1357464bf7f6609d844126
      GIT binary patch
      literal 526
      zcwUuI%TB^T6g^{sYAu5JL|wRWp)RPdH71BPYMNq%bZdro0wr}y`q21Uu1s9`0e+P6
      zPSpff#?6^~&fM3zAD?gU0FJSvV~(LUl)2?cJWVG&8(HJvX=2?FbYhuiTxRKBFHa{z
      z2Dfn(`p-H_4D~U8<W|Jx(CQAx!p|5=Zr8OL*f~S>x76cNE;O122GjOzw}0Qiy0hCC
      zN@EOK+i_G#TU1U%8D?js?H_p5trG{rfQDrgRV*>ooKOlke;A0Q&j*oUXgIOYBabJc
      z;y+?38-*#uk@G)OCk#d}&J$l;hDGn0+?H}n4z8sXNk=smsg5m%-M^;LEoSD>(a9k>
      z*3d*56=J&bk9pz?Q`{iFIK@qhn7RaEjTEckK>6?$^_L>0L8uC#1z4fj{7%3s){6i2
      P0ynTpuThjYv5n>zAx3l|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..278ad885da29233694585638ac12190903d0d88f
      GIT binary patch
      literal 468
      zcwUuIyH3ME5S)#Zm>7qI@JvTR0TeORAPSNofvkXJNPlroi6e8id}sJBDkKU%0R9QF
      zHc+HOG_#MJ-PyVK&(}8qC)l-7A@pV{_rh3coeDGe7SpHHyJqMoN*ke!-Vbt}N;M6P
      zFuAr-CA1gfQFyUXGw)`ykf9+og8SfhI2sHG1iBzJf9J;{&ZWhIM5v!dDl+E;>)>!q
      zsP>bobYP+Bq5+4{@*^cj`NKqJcVZGtLdQ=+5syU{74=WEYUYt99Q*$}{gmJYNuGuB
      zGAeg3aeIX)f_tTu%=*Pr$!50+dw;30*(DwRT6S1CMi({IIoe!Ru)-M?P8nCZ<CQf~
      mJ9>fpTvFB;ivd(V(Bj<vCZLV=^1V~y1~xf5<@gqM(ES1)u5j`I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Tag.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Tag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0c90313c4cbbf16a2c5291ad5225048ccc3331a
      GIT binary patch
      literal 890
      zcwUXt+iuf95C-7c9BK$DJ#Y-C7D!85pr)K|KuEUZG>)to*{-F+MYVCQ)RA$j*n#Kb
      z3W*CIfG6Q85dUsCELU)|nQwPyJgd#u@1MUA(H=e5sKTf{%4d3<@uE28<%vE%{&1@I
      zu~?J5D0yBM?U0W&sxev~^Y>iOcs|m-;W&v)Ms>sYjYCGvWVHCJBI4OBsp1oF8P&|g
      z&=xTgYF5wiMQkxz@XWq#g+eacbY0Jo=;Em39hj~x>M*K019{+}-t`9iBJQIi=y|?8
      z2yhU2PDjKMBhB<Y*ER-%Z_q3VeP>=(Kw;0f4VjAJn{yrQ``*E8u{Xk=<r+b7gmF5y
      zoHhHs_h;f5onEGSTE4=3TicPi+T=KCP?hdC=^kw{T5{7o8O+`dlWE9@S;A=5oy0tg
      z_%s#%xmhbuQp~mK{?8-4VAKdEvuT`kQ`zyaj9u|M7}m-2WNL|4NukkGM(h9TjZ2_A
      z{tyUoyJc!oofaSss?Ztutl|cIPH_`nRD2#@QY`wdC|-pxD82|^QhXV{qWCJ@QhW`%
      zuJ{IgQ}Hc$P4PN>Tk#$EuHrVlp?DJ!6R(JM8#}r*QGMqV?R=Ce53q^?s(hn|h@0~S
      W+C{QBe<asEdW_$OEPq1JsPzMvJdB(G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d3b9aa023482a16e529072ea5440eef986f97b0
      GIT binary patch
      literal 584
      zcwUu}OHaa35QWbG0#*>jCq7xYP!nxjYfO}&sexhuF>!Y(H&9Xw=|g{)D-##G_eUA$
      zR!r*3xaf4gduQf!PCq_h-vAt=l0kxSIB-MVa)j?sL@?Ax{ilh3&7nGW{Xn>ZzuOsl
      zQuNz_2tq%D6rng0k3x5ZJJ6fGk+cFr`o7t?Flq!c2>GAhu5dz`WHAsjty|MH%qxXN
      z$hPaX+Rc>tGct{)X>^(`g-Jr{?%e38oaNG|wrdAxgyi0Sm#?bhzSNM!at;e95ejwN
      zm1g+RlU_&k97!nE$Chxq!m|}m4^zR=_6d6ZUkjfQwDvgkEO}{1qkokiDJKXy!*!)s
      zRWl`9v`wh|CBjW{8U7u-AMZPZGCyf$m@)=g=Gho)%yTi$G3R4E&s>Ockuy?0aa`mR
      qJz~~5c)`+hRI<WRH6ZbhRnBwY1z6)z>V7?n8`$Kx7PW6-2jwqZ0(b}j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$TypeTag.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$TypeTag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0cf5f139350e16baf7d0951372c866e656d7222f
      GIT binary patch
      literal 508
      zcwUW=%TB^T6o&spDV16T@rt@|;R0FMxYn4|1`<qz2{a@w2be%foswQOK9(yJ7e0Uw
      z;iDL5Dkiwn%|GWmb1wPM`{(N$fO8xfC=i-ck=f&rCCP%NGkZRHT-Y~K+(;xT6KQhd
      zKP|Y=rUr_H+MGQwJ7i*N-;U;doDy``a|QzfT@xxlT|*XTT$5{vQ115pcE97eZIzHK
      zb*JBV?i6T*(q$lm^opQ0Pltq}8%?+g4VxA!*dSEBK=596KjN{^Mj<EEy=ctBA&UdW
      z%VaT~1qq?${nyR~!5l<cJm#GspZcrnO!*{OT_Jevs&PCqa6mZzYd*nPZjdLIu9QnO
      zpra(oPzS)8<njuelGj(*k`XEQQmZm!=M3nr7u25flDbsYfWim1WNdvGU>iI6|8A~(
      N*q5)Fw>NNz#ut{IY_k9W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Version.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants$Version.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3601fe196770d81f19a646499992f01a76a70e0
      GIT binary patch
      literal 475
      zcwUWA%}xR_7@Uv4Ra^w|7f&8MAO|*_H6~^g69__rX76Qbpk(cm?XEtTCle1ofDdK-
      zwqT+sy-YjP>3p4je7?N{=;72sfzY1o%nKu7%u1vSZ#jEjc>@MN)+QA?HRpj$jEc2`
      z5}~maPr{3Yo_pizQids^e0MV#PYBc})V^;8BFbcu$53wQkH(Xna6sisX_a0RitUSl
      zQ1auMtfGjziygRx`cP>(${wdOc@Wb`5}Ly}6j2}&mGg~QN*BryI>Z0I{*q9=kFz9{
      zx5}pea&_}s1h=oXO#D1f8V4tYv%m5Q&SnDtD7WI41+-8`g_&d77W3^NyvjSu+cMTz
      n@hk_*omcF>SWAPkV#OZz7~Qo2P3+tA1B-_^;&mN&%tKmVTE1zB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants.class b/libjava/classpath/lib/gnu/classpath/jdwp/JdwpConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6659ab9ff9aa6862d577f3ef0aa8da669b2dc57a
      GIT binary patch
      literal 1279
      zcwUv0+iuf95QhJ04%?<FE#(-FZ3!hw+n92OB5ndmg|tO-l>1G*N*t24Wp9GYTXBWN
      z1rNYOA;wOcHdhW_X}<ZrJEPg1-9LYS{RXg)1Azs?Mn?~=c3*~}FHP6#Ip2Ki6Puc+
      zLnE~b1=57Io*YT5FLlQ{Y4udw5VCJw?V5LlRH@t~q-&m|a!6q*j|{Se)w-+I@o>;m
      zK|{9sim+by+Opr2fg9<`&$Q{fAz`bYRL21!XM4k-tv<SOwwc*#R3IULsI>}eQ5waS
      zuM<j1d5cXIgs!IvV&Vy0BkUx`)x5z#YR6W57`byHaFei|82up#ynv92DR7%mNsbvQ
      zZ9co&AuLUOfqV1p^2l?>kz(QrY!dbo;~L#SNyj$Q47pADi&CISs3vBxhoP_ZG{wq{
      z7I;M1P0SH@^en^j1tn0KXZMX$pD$d8cR%q2_6Wt~xF{wSuYWvGhis$#_sTb2?$Fd1
      zcuFYG6>GcS`D!noxdJc#<AlF>eYbsje!^od@OqvchkE3FRVTjT2M~2>Mq?9v42VAB
      z!S9=`U}eP`$W(q}@drB#$g$1FKP@b?&5su_SK|3gv0cR)GhlU@=dYlEtIX@n8_WWa
      vTg*GmyUhE{4dxc}0rMeqn^|I(nLEr~W|bM0w9kCPe8zmve93&pe1pP2YAJ3e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMFrame.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40c8c2da7c26af2f47bed32531f5185585b3a02d
      GIT binary patch
      literal 837
      zcwU83Nl)8A6#iZovS1qats6TI2dws5#05cR6zG8}2M(1c&L~V|Y!r{-S0RCfgv5a#
      z&>vOx%@A@hmN<Ccyz#fp_vY`vr)L1)uv0;Su-uDMF9=1FTnT;Q^}9D$Ui;)|ATDJE
      zCBkH1TnjH0QP2C;>B~S9N@xE0A%T3t#6cV-T12`n!c-Pnw@N6+ojzf@m1X|mUtt^&
      z)>=8HsaB!aiUXll95J+@y6kaG7~4~k()&zyn{9SKh`X|mB4!*kFiB{%R3uN+%Z?oU
      z7M)NUYnBPyVxUYvJS^!8l@LDVc@G1#>v&J<*GmvK+~)gNt%2~-!8ja3mFadAggMu5
      z=8d45j3D!_{}y2~)>!6s+OuwsjPYD|P(z(iX0YG2<2g3x+YTo1flxn-(?KAQlu7Rl
      zBkme0tTN0zRtZZeV~o2BcLh}WV@<o~JhrkHSA*ec^E$<y$CbF2cOEf)Z(*}T5bzyy
      zygDxc%wvHoVUew}<OeL@Wyn9@l8GM;pKbkuuU2fuCdi7dWySvF-ed!tBXVIx-nz|@
      Ld%0xSqMH8!;@_I6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager$IdFactory.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager$IdFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..836eecd1980ed7e386540d133ae32b63bb3f27b4
      GIT binary patch
      literal 3138
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager$ReferenceKey.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager$ReferenceKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d23f881a2f34ecae29d2015a2ded93f5fb16c36e
      GIT binary patch
      literal 1266
      zcwU`TO>YuW6g{^C4B*H|J8iX9L`8)GI<1YX8aGW$h+v}_7TuTu9$&$s9iYaa;vaC;
      zjfu613!__qg8C2Cy({B=(+N_gkeJELd-vm<ckj7xKK*+49>4}RRm>5xO?zn8x>mox
      zXAN3rr~Z7;tdt7%l4V;>;iMjmhH!*k6A#1-6+Xgh$2zdgu4Ok(M>NcGuQ3?q5d2SD
      zR=-7{0wFMHwfm`cLb5phkS)%=+qT<-dxSgbS;@se1?*HiqBhvdR0zK9UR{JhIIlrP
      zFboAz4I#t`i|I*_Fy^7FSRlmyj%rxM5+NvCk+cLQoheB23mW_g5TeDlEglY^RfY4!
      zs&+YJzSyf--HPS3rR_O=QUOAKMoXteW-)@!i9L|C|CCNB|A$7!(_<T*_-H7G!j(h8
      zRVmmt!sZ0QX5o4C`*KT2Oi$%mi~XV1?VmB2-7xE%){ue0x;F)jpr<pFWKeq54uAO!
      zLb%);IyG^>EoG05NwFq@1g&7(!r7LJiN1;rE_1qs3>lval3bO-|IHjfd<B45Ox`p0
      z_&5@Rtoj^VI~<pJ3r6+`nvpw3#K^rx{0PghUHC=*M%<LIO!S$7U$DZ~62};ZRa^qx
      z-DM=$C&{mP<hzXX@v3{|`C}x{V*kPH-x&4XWly?3eZ;PN>~eP<DUOo7^xiopuf(h0
      zc!TA`5plqE{&WeolLU{Da053z@PVg5D*F-i5{c{wP|3)?g5P(@wcaxLbq$4|5%-GJ
      xl!8zx42>d)Q<VSBIA2G7tbx?1ffTab08fdF&aqF<CGWDWartoPL0HFa;5UHg89o32
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMIdManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55b765688d076b2879f50c6e542f2eef71a7691c
      GIT binary patch
      literal 3624
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMMethod.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMMethod.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25cc9e0c40f01646da859d537c04531f03020604
      GIT binary patch
      literal 1983
      zcwU86e|Hl_6upzC-DcTR+EPGju?4{-m9D7xtDw@fXiCzEfoKt}n`Dx1O*c8oF6amG
      z3+UgTgXc)#=sA7>KNN>MvzySQ0slze%-j3!dvE5x`S01^{{pyzx`CL$Lfs4OO2g@N
      zT8_VG?^hqT>{322{k>+@KwRL&zVpDb8;)1E3*~)T@de_=?7d9^krkNAG`)`Rcz(%g
      z1ageTlL8aFnowXS_aZo>Tx$Y}-2+XYt&(Aj;A^hu`kxBSCy$`FQYB`~G^^6Y7-lR?
      zVOC%)nJOh9aMD5ordpk{a155fbk6nUc5qOZ?K@7nAq8f0&5F|~Ic-<%BWK*-b6MSD
      z?iIbW((#|dE@CcA9j{AYmCWQUdWO3V$<Vgz)iWV%E}0t9u0iCsbHJ=82fi156-t0b
      zK+&yxjvusTxXm}KZq1eLj!u^iovO8{{)=Q9QF`FJ4Z9B`wYm9oMYepGS7ab9kRA~v
      zdk}kz+kOD=ojHfjE%l1L15oCk^qXOe25f=T!;P;8ZlfyOCNJ-bg*UKd;yqk7@IEhb
      z=nyR|<GhIv@v(uA2J{$GS@;C%pdTm&7HR^Q4ht#N?AnN<H?fNAN>anxi@v8yllYt(
      zT~)w!3mI%stxl^YJ?h}{sE8x3sLeIi=T*h?g@wyF&uSmGU0*6eEk;Cc)824=rx5t9
      zz-P2{4p@SLTU1sLkS+8tNHOLuEaIGr0&W}lO5n`Ph%9`KB1car%{9F`XCSGE%V>5q
      zLg4Jn%V68IdSW+^4r%D{7`Xn6FV}-wjSY_!N`JOY?BF{C_j;`j23xp~bK&HuT21_b
      z9}VmZTo}n&a@&63H1bYmkJ`83pe%5l!MeOKBULu)b@`tMAXX;R{K)<|T*YS4uE?9N
      znvAJl)T#ngu$)}Jg=2UP<Cx&i;4X$q{`h3+H6JY6V~A6M$BCHcZif+Z+UfKYoJg-c
      z#$0;oG3Ni&0jK#tt3Ti7f00CY7<d<F=vmU~rkU<6pjQh}3Q?=qnJC6Jr4psF^&S{c
      z|AqNK`s5SZd0!J+As`|YYC`+Lq8~i>XehXPG*}2VzuI1i?3=i#?IpZLWRlo8ZHk^1
      zynWciAEzZse2YCQ-sOL=x|8nWoi5&eiVvRP+U#dt+@NQZri+`yMg4lHsO5e~Um{CX
      zFV&V#af2yhw22k6<+|8@aq_1A@Efo2cTIOH1olr{-Ns!KB~ZdQ5%C0VDx$vLqfW1M
      b@$FN5KV0Rb0onzv61A%EP}PY`jjufirB1k)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b7be23febccabf21a738845cd25e97105ae275f
      GIT binary patch
      literal 2883
      zcwVhl+jA3D9R5z5W@);$<q}E&5#?f<QUb_LiXbg51k!>nhD(*QNlw%4Y?HVb1fPA-
      z@iO|Lj-%rYGb+!%RK^*7)EWN({}!Lb@9b{qrrFN;;AFCU&Ub#7@AsYGp7ZBFzx)Q^
      zC~6wI1oqYHUcO=(j?*;UrTlXB-DbWtT{3OgGpuQ&vSik!hJ?W2vT@(YTSmQ>zgAwB
      z6<1)}f-+xlJf|t^)rCsKtGkXsy6BsFu4&~j8_tqzlr1?XkUVSFP4}EYcXqfWkeFyx
      zWeVNs)1hILz(A3?X1tZMv~MUEfi1;G#jr|-ZK`<)Cfp^HSq>Ec19N6gsidZ1neWlJ
      zKjeC2$(BZyRI|mkvI1~SaZ61;sK};kHtLRsv_LK<mu#8juW<UzL11&3<bq`dA)OR<
      zV5f#mn~K4jj$PPIVinJ}W!-HN+m;>fWR}7n?A7psz)%by#X`r6c!~6D(!D4b4bS2(
      z?P916%>9V_bsWG!icKd42FWhj4X-JXiQ(Zd(KU;lhGB{rYoKF9MeSwO>xL>#IgIK!
      zjJ!afQE|=tazb^C-wy?~dQ`_Tyh0yY_g18BxZJVr+4-0)Dkw!y=s2lTJjWD~#3=}z
      z*0C8|1hi0A)k+;vm`EuRRywpnodP|zz#`c+f>_<8Cm;%p?*<zzur-DzZA|{@q1)17
      zNv+)-45rZr5xA^lQgI$&Idee=h5E#HDYNgOC1VsDMpafP)b>gzblDoSq{JMKe47PV
      zY22{K0ttPqIoEJKNA+JMrN825+!BQKfobV3HB{+GV{GT+zs|rXnlM0OgItO2+ei@A
      zTT`~NqDmWy(Wp>}mV3drjfX|kap}3K<tZ>3;}{@yvymTv=*n?#aZ%c18?f=iFl2u#
      zWVizZ&$_ausY29-%*uB>>8O+Pa7WSphN)cfy!+(?S@B%iQthK?fZ$jj+o+s~vJt?R
      zix$1|p{Vnn@$SSH?o$h#X4%Y^8%i+O@a&45GSx|aAf_=Q$ee4N^_udtWsUVod-A^j
      zedV%o8Kqjx`zE1+{!u;P)z`WARV--)6Kb5uj{7HilvsNGJ#kpE;@Qb>n|C9v(SsyM
      z+d1al#Ah#OdA<eTJ-MHe`iX-s=zJ!9a18x?>VW~C!vN#-Vvx@2&C`f0Te+6tdmF=T
      z=So)_0&$!O?cqMb(A6h+eii$QBh!ag@$$@Lq(+0$=pRr2=HSrDL^|;+cAV)sl<8T;
      zk(=EolaDc+=}9M#ozXJd@7S5qR&jjf2W-x0xgWvRO&RS8PQ9NL>0~<b=;>d%U|q`*
      zU8|>rG@oyf*DU(*ChIDZ{Y|2`F@!tV&GBB`#X&4!6!&l(Wt>437a%c(8a<YA3oCe=
      zcnvlhaQJh5eP&r-0!_S14=}n(-OjT9ep<f9Q5Q3nagL*I#-G7?yiWU3Tw?Tb>Us)C
      zFhMNI`EFcf6piXmcBnfQqwbzi-9@FYD*gZ0_R^ZRYkJQ3JU$?k56R<WR{aV4;!~oZ
      zQPa<{ljA-30{ihL@64}w2Y!vy_=dHA%L>2493F88zQ;UqiN_Hg%b||F)H=|yk5++>
      zgY*e>+)w2K9Y<&t=y>9pj^`sf7H}o1Bay3q(?^jarq>}exV8?t&hBYPW?4l$a)W)+
      wj+EF}?Z~YTKDRrNJFK`Jd5dbaBX`-U?Z`bC>yUB>QejU=yGl@fwWo{!0;7+vdjJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/BreakpointEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/BreakpointEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7e1de9eabba70b97bc3d05245f2252682e44ed6
      GIT binary patch
      literal 1458
      zcwU86X;afs6g{sCfe=}QqEe|9T-vZi6xZU0;7n%<MPd3)>uVEBFikt@E9k%RC)621
      z#}AI5{ZWoLuZsv_n9jW1cb9X|J-O-cKR<o~Sj2M$A%;}NZ5m~VHyU*=c8pzfziwE2
      zmMe@E&*C5IHQN<y{#`+YA#rN9%wbT9Vu$KXhV!{yzQ+xRyA@+w`Z5dyMW<Hg!mhat
      z)42e!rm!6&*U6Cuw%ZWgEnEL1=1aR)Sx`dXvhCX92}3q@vf<esPC}*&43QT#(^3(}
      zu!cd5kR!E{E)0M;Xo#ZEx5hOn==ZG&4FgaahI6)SZ8WPT%iHE9M>3{9PJw&2fA2UW
      zV#jVU=t1NHmG`IYsv0K!82bN-qE#%h$vs}Rgyk{BQrUEnOcC*^PT4HWpceN%TUe`H
      zaE7UlYIe==9r>oHH^r8qW>u+#y7sYb)qSZN3T`lrb+fbiUPMI-x`K4@dKA{P<~nzI
      z#qu=FVvaD0@~ZWoHyv7-=~OyMh$B@QAAdoEfm;lNRNEdZOKL2o0^VN`oNXH2s*Hl$
      z!AvQsy*F7?rSD@&!(GfUM5SCR?qf;81BT>TOGR5->x#%QdAh*#I&G6ul4mJEiNZEd
      zNjyTE64k9*(<@sqZGY9qk8RR|PX$+LXT$Ut5Jt#fX0k&5D$6G=vW$?@(C9ozw<`G~
      z^o;4zZy3^N4=}3F9binKKS1n@EW1GG1c3n?bmj?U6T^6galFPw^6G5>T*4$EtvEGi
      z(z;BoL(-apDqAOTrPJD>h#yPFqo2{Qf5m7k-q*IqT5+Xq#agV@W09ayfH%bAEuj^O
      z#XDlbsdI^9rerhG#_X|4($5zqf@#c9>>BwZbiXb+>~+RZe8<i8IiJHJ=6_*vV}AA!
      ycYG%FymwrO8r9S>0*~fu&}8C>4vAjp1Rmm%>^zAKmI+}5LwJlQQirD!^Vwfhl3jxU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/ClassPrepareEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/ClassPrepareEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e260ac89f569727828c43c52cd4fe537e885256d
      GIT binary patch
      literal 2047
      zcwUWETUQ%Z6#h;L9SBoPsl{?By=Wx~v}2WOA@xEb=u~bdY1DebLvjd%VUjgWT8l2<
      zwM(o10{?-ymLSUqm(Ttvm)|)Fkkus0%gjFe_I-PwefHn~{P8D%8^~KYA&@BgRVQDP
      zTU!+wt~(orhZRRXP=4slXytOCDl$+ht+5ah7-{Qod<3kOa6M46Aka6zAs<MmB>ke3
      zHM*q0$rTeUaHhd(pprUvE0kfCR^bYq&Sa;v_cANFRN9?$Q?ml6X39Q2{4gg=Rn@^V
      z#F5)_I<-8VPR(jH3+t<^-9<O+PS3mdYZjJZ*Da}ZdMT}SU8Hr}^S$s5fzenq>n5gd
      zJSPyDDHl`}9XM~}SqxASyA#iKLtw~8Cr)bVf(;8@TDoYX8&R^I_k6Wj-CR{cR<4$m
      zZc{lgOF0>M`dn8=!gY^r7@t4>_2}jvw7!!e+uQuFm1L25?4k;nWgs_Ir~-j=F*n{&
      z)Y9sP%Io+@_^3kg=*q*u3)QR)B}=F`#49^mu~ZE!)i4thXEUkW5KVoNSC!D?%~-fD
      zaQ494T{^Tx@e*FPaHIA3<QCk*g7jrk1vXy61ap$^tXh-R5(nx^EZ(XM4N*y*|5Y2W
      z;g&!TV`~MuY{W#Yxz3j9yn=HOm9#L`nkk)XBjFY_<ZT<TgEP}d$h2Bhf%5Yz%NA<n
      zsaVt4v;%%BmgP+1EgRDq;|-dth++mQ3w#1skCnp4oDS|W!C6@>DiVGNcP;Q;U2c)0
      z8hRxs;}v~Azd+e|7xNsGe0h_Xtql7^BRRAx?MTDn@cbgHSj4i0CEj2=z`K-c-ZtJt
      z`hajvCE)zW=r!ZTb5UfGvv5z~e7iUs@8bi3E`#IheHDqB*W6t`a1j`64=d2&73gy5
      z|3;FIp;u_**f2-hG0={q#~cp6j!d~4<kg&~7e#;59=NW_<1%-S-fdj+dKu}Rs8^Bs
      za}n`BfFAz28;tH0&(AcRPxIW{a6ZFxU&Hw<vkUIMbNu#G<5L&mzdzC2^*f$RjO}7D
      zF}{o8#D!gq{Ayw@X*<~f8)Wo3@k_+mWDcKvfkZ6>uHbpVNH5S&80jjxpD@ykh#Krs
      z#Om1hX)(5;&Y#hh_zi<QLy?*^yd!p=!hXc>HgkN*8oy!%UmNWHdiEpixT!WmR%5h{
      zQy1a+nnC=<bQPG~hqExQ5%+NOFHA0Kd3X=WsmQglJ-j&(;rGs%R_^2NeJp5kWDl96
      zh9t~oe8c45vKfyti0^O_-?QK+EcFKhKH;kQ5x4M@Av#e5J|sGc57_`s^d>&S$IRMG
      U>Yw0KHffNVR`8i2E)C-9zaZWBLjV8(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/ClassUnloadEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/ClassUnloadEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c910a78e8041001117f3df7c43f1dc777bcdd5e7
      GIT binary patch
      literal 1000
      zcwUWCO>fgc5Pj>KnmA5dTEa)61<F^P02UW6MI4$G5tKHS3gLhNZIZ>^$gwSF-NL^D
      z2?XN658y{3W}P&$N{YCwXWqV<dC#-Ie*gFh;34i?Fc@4vOub&fN28dl18>kjial{C
      zLgm#p_%aM4-rv@M1(RX@RC>l?u-}cOA99r@f?>He;D_7`c<6ikDv_bT$uR#|hEhFY
      zC|CZzb~_AaJ?aY^b0|8n;1E#RaytbuEI2rWd4|Q748?9b?26<C?*`eVsK<j2Po&N#
      zps5bzh@sZ{Z;vFekkjw@LhbQ{4}}tm7Tk1mlH1*Z=;;zueT<3Cn%e$RB9&-x#TnKn
      z24&=Fpq;8XRb*7~VP@3c{?HS#l2JIaaFt=@nB8noZ)~jNx`k`Ae|=}C+27$I_eJ91
      z1~#ZCNp6VuJPl|W8x?n!_gvMcja#^5;Wm+HFjFN1?>R-|^*FeT3PUmTIEEO!f4H2z
      z;6ijvU|2o9n9S@)Y0?u<rQT-w<gy;<N^;HUsen#HKMsoKD7J8x&H`o62sh~KRF?|h
      zU{`BjQTj}|fkiqOvf3@GtD}epmMFV0=Hncefh<~~d)hC~qde*QD4R!J*r#bP%>nju
      zJ&b7&gOH1KZ{iXzQ?^Q&N%@tmTXUkZ^c`!jYSk|~xOr0KYbtm{V&3Kkl%@kpa8b=f
      J*0Q>Le*oF2>rMaw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/Event.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/Event.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7230bd5ab38145858b0764f3e37be37db3557b7
      GIT binary patch
      literal 1598
      zcwUWETXWk)6#lkWtVC7Q&`WwF&;p^pv{q9>xVW^n6{S%tY)@_6_NlY6x2Y0aGV;2m
      zKZM)BFwF443lA_;(oUJ-2k@g9&aQ&-0B!T2U47pko%5ZG_K!cG{SIIW4HNqqUfYaD
      zPN&C*!vUA~ovrS}fg>J>NIITcO&APwTl@icdOX^6>Kj|4BN_I4ZLik4>jsr(lY#jR
      z2i!OsN*>8J?~O!;LNEq9HEXTk^eU^0qlmL97u4NK%dgiIn;Elyt=X#7Tu-saILw;w
      z1^V+ThNCIv-FCf(`aad54zmpN|2eFDa&5h(PE7{uuFmX67<EZ=l_7g6j6!*t!N^tf
      zZQ9(pD=cJi%EmFg%8<$B+cTgl**J=MhJ!&EiQ1^YA(9r~=m~~HLEPcJHcvu@cS%Fu
      z4~Gn=gBKUKOqSbPjJ+wO_m4ITTUBx&CZQCoTylnmT%fxU#*QNDBRLq!rc4Cymz8wO
      z`>Z1dGNdM$C@>uU+uE;>PtrIIp76eqBB5I5{Cx25=8~#u88>)mTTr8WFNph+^lpkz
      zM`9?;`Tw(%36F+@IFZhEf@!p}g$uZ7Vu@jKPp)megGHK8%BndU4n)*##J#Zd$ilmL
      z&%_GD@#l%R@jgCan9(J!K9Z_yRE@U!v~1&&I-J&rek7Hy%QmjyD#H{7^V1&r7L7*L
      z#@je+VwIuv(mdU`-{+)Kr)$B*ni{lg<TY2-6PW47G&m=pUvmaCNt0(dyT=BQ+rc*3
      z@4XQ;PtACgbi`Vy=GoHjN=lS*hH_T_(=<+C3Ryy?`mZ&fnZOp|{S(+Gd|(345<WPA
      z=Lo+tfe#TrJb{nUL;s+<1c*C^<FuY2v_||s+O5J9oGhIB6$`&;``2lm)k?cCaF4WY
      z;xwW8)EZ~-2B6>GB#!O_yoJSGpN_^9sqh#JKaJgGH9633?9?E2V;E`%h{>sIi}pO-
      zT}7ND#Bd&^UAIr^%%FXxcy0&I4wj3?4n8cZAPNxq5#d5{2bJI8-kG~P*L?!7_9L>l
      zSnd4JI%0`#?)<Kv5)~NuoJ#)%mG(<2&sSK$*QDqhQt~Ydv@hX1T*UWS#t&NeGHE6S
      h<Mdas4qtm-!FAjq&m}5afRAZiCX~K0)N~c<e*soSUXK6(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/EventManager.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/EventManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49fd7f90d9f961a7593416a043689c8057a99cca
      GIT binary patch
      literal 4198
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/EventRequest.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/EventRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b423e956d28437a17b3847a14208177b2a87eda
      GIT binary patch
      literal 4493
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ce2f59cd27b26a9c15a9f63d7b0023cc8bce1d4
      GIT binary patch
      literal 2304
      zcwUWF-%}e^7(ELi3t?%YwAc`Y6m3bukJyT+fT;Yk(S%gN*wWUxB->;$?8amRmGNC)
      zo$B~weDJ{+-{Op+j?Oqf^}#>N@!Y#fpb*5Dz2Dt@-?`^I=i8gV|M~q-0N0UM(WYQ5
      zXH}w^f?h5cbtfO)&h8bX#;##G(Upf8qv)8nwIa4EJPL+SPZm!FU1`%QJGzxI6kLdJ
      z>$`fipj)|Ua%<bjICBboX`=zF;L?$djeN=8)3*u+lhm}6FBy9FX^ai|ZcZFhurs;~
      zF&b|{sp6Q0XuO`of^%txnS8ui<xPJqDirh`!Cw-unC+c6Ez?<0@MWkazmt^C=I}o<
      zjuSblUO1(|vt(xtAKGzILoY7zMQAac>Vkr2G^pqlkzYd>d?E^H=!PbuXEpS=(TIj~
      zI4`0r8am)ra6WEY##&`(%P4J#4u$NbRY>V2Q|#+6Jx<=FWZ_o5w3-;<)Dg424Np4{
      z-Rn8#O9x^1_nC4yMOw~qZs{d`$8d}iM<x^tpH#+&D6Xq`K|$~F-!$C7i$o;MlIwYY
      zD11U}A6~-CDrOV}&vHt`D|nTy5insmd7B-Lgj$M{O1KGgDyT)@;hBrJT`+XZhgrNP
      zY+MjFZc2NdPm63?i7DtVlW|=h1y@67kB|W9%rr}U>AjNa7|Xh&)BpM`n|4&ZNLHL;
      z#aVag$d0V@HN7jVxJi*3*|B8v7a!h6T*W)B?}1bzmQCoEo-;}s5?CW9C0aHf=#>I*
      zhSAeBYF5n&{978{#e3|YwXT6N3OpTZ@inx9Gqce~6;<D8&6G**ha1cKu#S|553s`F
      zlX8hkNcpgddn)dpTHiQC!+lZOElW4_T+SfdF1sPEg2B^eSI}-|nG!rp7bZGp_LRgU
      z&4@(%zY?3$(3^F;Qpy;sruee^pZ;*C1Z7;|4bjd&3NPBkHNmJ&TrhIw^&(eZE^_Uu
      zue?~edRW<uK0YsS_p_`6#v<xt^hd^P7>G>Na5*wr!(hbksbMJM@2Fuo;`i1N{6zwd
      z@;NFG+vMSQdE7lh-^WFKh(V+g#7DRW9nUf2rVEefaTSo!HC8Gz8e?Ufj6$T?E~79b
      zkBlP3?2yqo8}zbf0+V&xPnaz#Hv=6%qBHU<E>{CyHyW%4R5uD%10FXTt_FJfb2r0*
      z159zplo9TR4lw-$+8>y`<9UqvstDRepj4ZkE=bu5<g!D)7I!u~Ey9maFpLtrER(;3
      zDO50nUCd(-t9Xbc_Hi4ZNficMwoMf_@jBjMFACnoV!fvY=7=n>aAD|BX;-7qdHxqi
      zu)IwyFP5koZzn8cg}<%BHTf-x`jZ?GVCFZ(5)(qH10?^#`r3pmMsn6OIevimg>qbP
      z`#pT#5z>g=alaoC`74gk*Yx=tjNn_k^BrCJp5NsUlHIg>T9e%jXCf`x-QZN{MC;`Q
      TY#~Dj2Qh>!49WI^JSq1t?O-vq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/MethodEntryEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/MethodEntryEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da1c51d5cfd4bf3817025efc4041987a8c278496
      GIT binary patch
      literal 1553
      zcwU86*-{fh6g>@rfnk&&1eHicaLGa#7ZfG9u~{h-unLL?H*7L387fRtlMcwEf5Iok
      zDnZK!%V$5z@^&Wygdi{J+jlwl^r<uX{pZI|0C(`hKnp``-K*HS0xy?KT;}Z!XS-yJ
      zE#XN!D`dXt%z4t^nNtY^0fxw_?Yf7-Se1ESaEIYSW`l2WyTHA5ds*jF44tcmVvb9<
      z=rIgunt)ZLTd*_r9zEcCWy!sq_!n_;ZA0WFHMCE;o-3a)q@yPnp1t8DWNd{YFjI7d
      ziB@!5=t7VZ(dpPqCy0ZEHngj#&w_yt74=)_gvrpIaXqn6*<2I;GG8lb#<Zuf!hKiW
      z>&bx3yJdz%Gjh$PSI=z7+Hojg$DuUVx{$B9&o_k>K0_#)j-7m&iE9`!Fw77<UbAo=
      zHwcknW)vfa-sn*TolGh2J0)7j(hTP6w(m+Y%Oz(Rtc&j!ZIxK8$WlcvNus=|1vTeB
      z<wQx*E*lsn^hS4j@t|U247Ux~&0V&VO*>ic@pa)_<lei4Nn~fmM_wtA?}mx)|EE$4
      zf84@-JYeXe+1ks~r0ICHi4B^;xsKhKN*Q?AoGCTc?3Z>-OkmPN3NeN@EtiSMm^46s
      z9XiXKWd349M23OW1!ib<9cmdmO95(>u5(J`5!%#fE)^?&PRzT?v7zIJ98+A#O$12)
      zC9P;t9|c7%>XXnXeGs}rQp2L(b9D14AE2{89*lm&`FLUvJ@L^!^v08W2z}9W7ge3m
      zfR}`rq3JAwSU?DixJ21_4FQ)i0O%-8eN0DJXm^W_24U*m5nQeB{!A5BONQHa(GmZO
      zo@%(g7WG!cMlA|e!+~9Nsc0WVRaQNqbdw$gye49A2>LC$@eX}>Pc&9($p?&pBY~Wz
      z*k4<8Kru<vw}?gnQN*Ygr(A&U2~BLPE=uG(lG#y3Y#;Z2VPYYf*vBJ9kIt#%;uLA7
      oM8fzaOqrf5kBAdF*c`!AJky&8@Ep^G5X5=RU{;GWr!nXM0*q#N0ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/MethodExitEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/MethodExitEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59f0f093041325df01d1aaa37197e414e5c81162
      GIT binary patch
      literal 1532
      zcwU86*-{fh6g>@r3Bw3M78N8SxFlg27ZfG90l`X{fK^a=aHE<`n+z2uanb?&8$Kac
      z30gi_KKoIYw>u#q1bLaheV233J#~A2|M~F~z+JpF(83VOc@;Zb;N^0O%e=km?38S=
      zEj($bh0GV7#I7q7>TV#w5I!?o=P(%SGVcrSFkDP+@@;MxxR<lnv@g!kv0f-<xpa#j
      z!)U4rSVg)8J5|ro1+G_?+{=o85mz=gMOIQm`<&~!@+m_ya=PL99Zo|=GYo-+q9aVS
      zqT50zLga|dM>8ED4i?(buB<)_27<~Ou+RaMp*!VzV!5)lA^bJIQP7O3Pa(s7SKaH*
      zfXusPhFCLlO_f(u9;zBV(l2<VjFl7eHTU_Jkiuu^k0hg~2QzUUV+KYULMLMuZr~;%
      z63l`k#Lyc#j-Z`!Mg4P$+OZ^qxxVAOQY>=G8HVfHyG2_$Rw}Yok*ks@Z)rWv#BNrU
      z6z#Hs2|_>2POdZ}CZ=%5fZcq_GU=p~<{r-p-=f{UN0>x*QGDc;0<GOB(fxl_T;We!
      zcz}ltom5+!JV}~PN1ALwGdS0=53Aw^9yMo5Nww`uIwoc?Yaxy(Lz|Y%#1qUKpmiNN
      zZ#8N6i-#gI44y48L#yjh%E);NP@;65GZK%{rbKhKSn;!B$yE#6cVZu>6ct(~!lNHa
      zD_Yc(Age_^2z}CX&=FD^7JV<!%_Dz+&Vg7c`VC#N@qP5fCic-Ao7_kL7hQKr#R&~~
      zMTjY?P9ub6^kW5=$s4O7;0gu-Z4FT#)7Dk$-J-2wn7Vfu*Xq5C6j8CUp|(8)V_(rz
      z9cr&xz15+>9y-bDKfp+pRU1UYG!F2F=)5Jscj(4@^x*?FU#H=@CNxlkZ4es6E!?K2
      z0Yng`Sd4rDx{qrb+jR-T-!Yk<P&5v3{}*PKC&v%)SdpP~?xYl3RO68hC6eJ24d)+|
      dBHZX4#xp$Eod@v(^MnvW7Z$LnrATPZrN13ZaoGR>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/SingleStepEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/SingleStepEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8fc0e450b26087aa4afa38ccc63c4072aec4d179
      GIT binary patch
      literal 1549
      zcwU86*-{fh6g>@r3B$-Di%KLSxFmrvE+|THW3y5P1cl;FvB@-HsAQ6wbb>zmCwxMz
      z6104<eD<R(Z+8|Dg1mI!zRS7ip1L!?|NQs~;67d(XkmzCypo;H@?x>T<*vQw>=$fN
      z7M`@%T`!Xr>rxaJ)!RUTA$)GO&S5aN<gPEc!*F?dkC(Zf<zB|#(7psi$5u9<=F-i3
      z45Q0Uz)I51+RL>ZUEq2}$-T7r7csTHC(@D<+GkzQmCqTHk+Tgi?r;_|y2%ij&pX0I
      zE4nRoqK6!jx#(sGh=YYTv@5IMf`Op21}${JWawUYJ+WHKZ3};cZ)Y`Q>XY5%zN_9f
      zXF%?{MTS^2a!r+2Q`S`t9_tr8R>sN*xyF5-6H@pL1CeC(>|iEtV$8rOL(l1$g<H5y
      zhy*jQ2r=|UP9kV$LQ(%zpmr?DU~cXEt`rMga)#lW_HN!*j#Nn&N^)Hi<($^jT>O|8
      z1x34PV1m%=*~wHRVqy~a4A{+=Y;z^)tZ<KKgm2OAJ|IjYyC8OWDNAcNN_78Ul~DLo
      z79Qa-LnqZ%Cr^^5Q;{ZH&<xIX?0Qwgz?0@oDXF@BNyo%AW-KHSWoXlKnRtd71GKIq
      z7p*4ke!eau!_fHxGqk!6rHovp03}M-IVbT1ZAvuP^CdqmmRz;4{ipVEQc<C0B0Tz$
      zw4z0Q5@fZg4?^GcIp_!}4U5i8^vaPxK=(i_@C{wD@k8{+CJxaTiyva(i!QrD=OBRr
      zt8}IaWDVVTgMPflRr1EF0Jw%BKwBYd%(Qi#TDNFx7^ZF=#*JF*&lFLyc&P0F!Pr;y
      zRzmGntFIC=s@6ay6gWVqvW_rPVU-4@J2VgQjwrn+=q;l3fhcjJu}w|V7=wdx>}ZOE
      z)kY19ajL#cGy;eqO0gLE0`wl&#L6{I!ru{JnNY-z@bDL=SL5SHc&g~pJ$qUlpK6Ne
      mL5YSf)42O5#0fV#hw%b0b>|_x!W<#=pbPU@(Bdp=%%#7i+I5=%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/ThreadEndEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/ThreadEndEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..090a690a1bff134bb06ae1380c1ff760095bce34
      GIT binary patch
      literal 1140
      zcwUWET~8B16g|^!S-M?5EP?`ph#$1&WBuR_<AYM;YD-NZH9nDPcW9?6+h#ip`fvOR
      zm?#<_jL-fk<DD(V3T^adcJ7^X&OP_;?Ed`q?K^-6*fbGiSgHA;Q*H82r_EK}X?VwN
      zM;r-XIeYa$a4+wBc^#TC7#4?uBMgJNuOb#hy3pW9+-Y*ZcBZt&F!EUXQaxdq&Rjmu
      zmKls^El*g8BW1&cO^M9YY&i*raT^JYFiaGrFLuJiiU{_2r73i!R+Tr)Jdip*OB$*!
      zI}F*vf3~O1^{m@9p<eTV9||P`?bXfpxh+*1qN?$Rdf%o>%w@3lj{~X1HdmZs;jA~=
      za&)2;s&=S$6=@$vJzDv9Rnb<m<#$ZnV3_Km-O~Aqg+(lxxH)*_<)Z5qxzB4NuyG5^
      zq)C>y#Q_hS^b(dc1KaLnZE5{GHtymcLyEZFrd(=%GjqAufpXGwdaNxInZZs8)Sa{I
      zSy(~N#wunR64AIAlC9ok80LmgjUg^Qf-L>3Edna(4FUFfA)vL}3WKV6F7<7h`uj3$
      zXeTsSlA|w$A*Qb$?c%gIF-mKaq8F5p(bLXNnqOe$RzG9xBgHXH&^jJ*UE;k&3a>Cp
      z(M%VQD@X&;Zi>$73gIfIFRIQbK43KW31cVh<brCM{JepMw?kBCaE;UqT*oY(%~8&v
      zcs|l^P{z=#uUIIqY5h~&{(+U9_0>~k|M*WwD34Y_RSw8sEvlC5vd^o{U=8b0wKO*1
      S5POn(x=;TXJ*|h4-lN~SrwRE0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/ThreadStartEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/ThreadStartEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05fd3dcb5700bedb875eeb99573e5e27341ef62c
      GIT binary patch
      literal 1146
      zcwUWET~8B16g|@}ENmC3#a019#1HxbtRKA9_@H2HLR*rOzGx)V?pUU_+h#ij{Wtyu
      zOcad|#%F(&@y?cFQ`*SO?A$x&oO|xw+5P?J$4>x{ux%p5kg9oIr`q71PMfPEr|zD#
      z9dRr?<s2OOg1aTfeYL9-CJcs^vG4%HU>>S~#}M1A^JDHbxK}&Z$}&tom7Y}37~;vx
      z$Eh-d@uKAl3t>cTn6N34e4Z*#gJIUj1ST2g_M|5Y-DXAj2fWe{x>Bpk8)fcG9iJx+
      zbtF3snY}AFsO|O5+clx~xzC$I317R-r3U;KD|J!Tctd?`Q!SQbuntdrsl*OfoMHLA
      zJK1t{qS#gKt|}?gZU$XiyC15etz^sVn7G9--$&<)7bg~0uxjG==%JVMIXBNeUK75J
      zJ6I!4vb-bS@os}&!&)*ms__9<R_ouhaUTyDBE;=Am80gjlb3rPDJNa0&&rxej&@3*
      z-lTJ`g>|HDWU#<65sZsry49Zy!{Yd<F@&W{kk$XSML;FpF~9*Y1hh)6u3r@|rM@rm
      z;p?!az0hb$kiHj&kiLGj3)9}j6s^+~y`p@Go_0EFeuI_He8tRXibI&AbvED@h*v}e
      z`-oDM=;3h<F(BB@(>YxtTt|FZb!p-grqW+9bIMMKR9};yH?Z(_jA{ZmNX@`aEYR5^
      z<qV3K0{uE=49)tE<@|=$Kf~Q$STAg5&XD@&KNg@Qt#zvMp8Pd}YUv*PqFMqQ*bJ)0
      Vumy+MQR?X-{blsD9tV0){sKfj4Hf_Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/VmDeathEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/VmDeathEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1bdcec4d58664ffb83d70b779d99b760ffd89f4b
      GIT binary patch
      literal 657
      zcwUWA$xZ@65PbzBqa!LV;BMl<2p*hx(2L8#Es_v1YPgza>|hg^nG8Lkf2AiA4}O3j
      zWvm_$y_ndCT3)^PQe7XPZ|?whuwo-c*l75%>$OCu6AJy{Ht&0(E4$LyZmoSP89FnK
      z4U4e$CpF;^G6%|6`iPJ&mTCm+B)FFj(iqEP1P%kmV}nmslrJyic3nodqTZ5(nM&Y^
      zR!v08^aIe+52{1hto&=keL}V&^_7T3TWT2*^2Ktg(iC0cwuIkstM#Vz49(I{A=^`#
      z;N0~hrRAy6g0NcbvsK_4pc?Bi);BtmqP=g{cFrC>8EO^y9UJq6*>85aI-C&3f^QLF
      z>2E`}y9wgRljq9(b^7;Lwv7tw;5)*+G*=_YaJ0GGMT#rH-pYBe7=7U~g>jA!XW)Q|
      zhsbi3?b9%UNzQzB<OUXdoDDZc&qH-4VP7Q5LVr3?nra#|Jhw25Iqvd|S=<)}3nAgt
      X&nkVh>tALxG$Slvkt3fc;V*vyXl#iu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/VmInitEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/VmInitEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9795032fbbe7bfd7b71968899f34fb9af2d5d13
      GIT binary patch
      literal 1120
      zcwUWET~8B16g^WG)@~Q5MNm)>5uqQz`ayib_@F@Cq<{v}2h@;hcWkF=cbn}j=)clL
      z(fD9|_D31-Y(H#5iN4Ivy>rgF=iZ&&U%$Wq0Pp~tCK3$GRX=hn4c>0IxT-mI@2usB
      zQ{gM8)O3BRcJ$ta!LV>CGR81WoJb-_-Z-j-f_n^^Vx6CIr@{TI)5&cyj6Kn)rwr5C
      zi^sVVgYi7@goP2LY?!bqk$sjcB|!yjjAD#ovM7DAA2rJ&JmTes(3OG;Z<Kf_b=*xF
      zswUeEE5-k5Q9Dyz-*#1~mptT6p+u;Sy14<X2j#k`XuP35w5SYo8LX4DP%5#_6=#_5
      zHYNi{Ck`UjiqxSZ?PlDdwe!9rT1p0f+r%w~sUF%r=$}|vz@mxU!^d9QbG<$8^Qs7K
      z+`$rQlI3mjjz<l85lh+Ju$~84TUvkF#yzYsq=?&T%BAKvvln|EDknXs$J#QH9qyDs
      zomcC67FLnBQNS$2Xgn^4WYC)o!`$UlV;GShK^Fhj76Fy?E&&dBA)s{_L}5kjN_|z*
      z12<tq+n}kE7JVlS34Q5kH$r<8S7=RA^n&sUdfNH)@mE;+!WWExqBwy`S|?)eHt}|l
      z!Y<Mj&2;d%iVP6%rs$mR53XUltNJ*uM=I=NUrS?vR|6V}zD9yF*Xi8A4a`zBM>&Jy
      zo3UD*GKOY-!~EV_{xinUarY-y_ty*O$o+MjiBZS2zNRW~$j#fhTE4^XSDV2a*5hg!
      UY``IQn%v!|e~F&W!&vXpA6N1QGXMYp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a08cd3265eedf4e057523158b7d6f74ca5c59eff
      GIT binary patch
      literal 703
      zcwUWAyGjE=6g`t{b~VQMem9CuqTmq3Dx#t&1Xi1fh23O#OeU<eVIR?7@e6EhtON@`
      zz>gB|Y&0k$I>nv)IOp8Q>)Z1SfErdD<QTTwI^|v<;<zW04)6LmJudrFC;UnUiHu@?
      zWQxbPUXc3oB+EIl7;66`o{Gfl3}_7YuF@*mW0<SBUC|dj5W3BqNu+eUUcF!_QXkn%
      zRH$PIqrXh|3E>Uh7lHBz{2`OUItqPRL>{FQ3a}X_T&3k%dfk%Ixo8EFVcHEn5nPB!
      znfN1VB^?zr?7071?b}W23=W~m(?<Qrc2vGLr;yZOz4Cj9V`J;pOEdm_2{V{wC}bsu
      z)xT(Tz-E|6o|%dES@=2TmKh9dU?gu|jyyUM{SHMIMI$JZw?~;A{r1M@6UH7h<T%-4
      zmfa`L0m|gf4^WuEWTt0h3e%**%;aQ^*5QX%*=Wt(!O7plvL1$-HsOHA7rpXOuZ#sO
      KW_n8*e)%27H?RW$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassMatchFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassMatchFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0025509c612529c036bd20d39a0877bb7ef4454a
      GIT binary patch
      literal 1588
      zcwU86+j7%Z6kW$RIj(3fU?`9Vk#O-PiJ$@6VhA)L0fCbMVZy+0lkJ18)R8lm62e=5
      zBTxK59@?4K%)kuoQy=;v{S1b6jvX_EKprHWeOqVkwYUA>`#0|ZoW(r@5rMN+f6Xq}
      z-5^+X!<xNZd9iBCb?JxpbFUuCW?)aN;G7$lYqQ#8ASTea?5?|Z-Sw;XLTOo+Ljwtc
      zu|2_@8D+MC1d>mg$CEEGQ2dCv7&bk>S`bKF@_a9x6i8=24`-JIQZpN6xf*&6KQORQ
      zU}84{+bOo=ue)`x(ys4T3dE)x6`4X5eI|O)FA&XSmr~e|w1ESk^x7^paS(?D49~B~
      zjfLj~$T(R?6&yBk1V>4{F8yj)(@0Jd-;-IVQ)|V2X_chq`j*^q%OPzlYc-ly5W3CK
      zmVU*0;e|D8I5(VviDQaVss{qcO&CZD^cFo|&abVMWb>X|s!OF^qwLm~+@`1Ojx!e4
      zyny!>_ngVj0aJLRJD0d_Qb0IVyDG!m+kpd_>~147bU%_ek7T}lwcdh4_F)R+IAg#T
      z82Wmy$%Xwvz|;(y?uyj=lcw&)ots!NaE>Z{bnE_7n7{=SKO#qtM42Z>5<j!CoElug
      z#3fv2i+T#deNPQ<*R6Y~(yy4fieChJg0)hh1D}!U<g4sy6W0`YlEc-|$~mhbt_vK@
      zIA5xBOypHvTniy!?Ioz1`pZ@M>947y3VYM3S`C5z;tqjSu}@LBv!u!F#l~8*EV&YN
      zrFZVgxT?l+u4R-@oKHk;C;wQK&5fn~4Xqe06W{Xm8zWJE$8)dIoA1lDFmQP=@(M=>
      zH*sh%-@<pX$}8-93-iIi;A;&1oy-3P>kn2$FwFN6B>28U#3>?AV+gazz`+=9VuTT^
      zjgAvI3Fy-)@)67(!D(hjc+Minw_;=SEBKA){)F{=_mYHmE^0utozMXk9K~p-_<xd6
      zWJ>v13uAMm|Kh>uKbV*wYvKIGm_i)*sfCN1=s&D2W=*y*wY43Y+Qg7L>z*&f+ey)M
      zyoDK-ZME$dZfr%jy3EG4oR4|$6N>u`y>O96nIovM8Hoa_6r_eF{K}}WJD6;<>`GFi
      mRJYhe0*_F{9Fco*2lH5<bZJIzQ?M9O`smH*q2AT^FMa@}N_8{<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f60ab9c94121d73190ac24c7c5d290c52664d35
      GIT binary patch
      literal 1303
      zcwUWET~8B16g|_gg>@Au9~M7A`P{a^BBCbNm=FS{Nd=+=5`4gIJCwzC+w3kV{1ab&
      z=0Ow1#0TS(5B@0Q*(sud21v8BbMM@9?!D*E_Sf%k-vQjiBMlLO>598+m8!PyH|${B
      z+9|(nSaMIgfwkpS1L^tJe0aF*R`(Z`LqklUbI0DZt*Y%-tmWd4ECm`80+SbV<rhM;
      zNhA>6bjkwbg%&WUY`u_M(vxmUuI@KvzMK<CJaJqncq))FFNsO73Fr&&O0p3+b=TK$
      zRbZx7m48F5yt`*tow92B1Sk-jua~8cC^`+aql>kh=`|hQ=+)38FnXzS4D{i;fL4(~
      z=n&{O(}jOZs+_rY2=p7!&?eAPa9p{xTPsR$)h<?vNEYfPySiq3PG}!HW5KrLv$0m9
      zoI6Wu8u#Q@o>NG(luI>1j8?OQ(zayE;g*AF=2WB3r8jg8V^qV4z`*&j2F5ThU{IbF
      z+p}v@U6Nii|G!Ah>z31yraY&#(_tcOU;>l8p^iW2`%c9TC0g|AHGv-UjM(W7DxgXb
      zxN}h}q0nk<$+Pv4hRA~hfvz)2cm)-WvS_@l?|LQ436QGi)I_F2Fz)gWMES(|M8d1U
      z4>q*hq0_!XD@Mz}HSU(_iSXT#`HGJ05t8ef>=&dy(G|fBu1N+1b6gilut?A|+@z<k
      z3BxVi2GnkVi3ERr7~~p~TgnFFna@alJfTb|=Zc~+ngPc&lu=b5f<G`i&bOJ39bxGC
      z#7_){G%Rsx;s?yfvB`cOWZt7KcDNorj2;rF6Fp4MW}Yz?3~VspE1qn!mDfli)ThX(
      uGDc8g%o|n5Y%|wMJ0_-7`3VeRntyi@qPsAI`&2ST4QIIvReYejdiVzr7eAH&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ConditionalFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ConditionalFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0471ff1ffe13366a52cbdbd76da0ec1bfaa024a
      GIT binary patch
      literal 776
      zcwU84T}uK%6g{(=Tbrd>*>@?uXi!TLy%@bnLLe3tLcNXaq$BID?2grs>OCl^_kL7#
      zcPfi4eAu}kd+s@BF7x{K_zYkdc@qZ1Ud!v-j?2Ta$5q?zG;e#hxDlSRucfO*5ZYzm
      zYf2@3kGmD!G7)D;clZsrUGBB)(?&-)%0z-;dnDV*aa4W~F(eM9C)E+de4+ZAuvDxw
      zSjTsc=tb(GiAje2zXZM@cFk8O-JUDDBq5rEQHFTgZwd=BOebL?#SkkL>*JVVn03Cd
      zm-{qn!NP0=ocm?$Tm{l=X=ACX^hB-SZHVB4H(bGxsrn9g>pYNA{n?DGwhYO3b>w1(
      z)?8wk{9!H<7+Mj7+2zV<3)0vu{4b)HUMgNOjOhkLZWNeyfA04KN01x3NOs8IPUHr8
      z&@$;8qc>$xG%-$bf~q)G7Lt@z2w_m1-g>~)6RgWj`T?02Juy$GrT>;`qJk`C*$*@p
      sun6dE3CqOBu!2=OBhCYg5z2_&4|o#P1I~VM7y}LiYgpGD8@kH91Fi+dPyhe`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/CountFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/CountFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a01eab4902dfc08f347e11daf2e221601a4115d
      GIT binary patch
      literal 818
      zcwU8)&2JJx7{;F$7PiH;#kJNC{Ale3h<2janjR!HAtCKSLsGOc!!p8>?Ji*l^l$O#
      zxfc^n6HWB)A7y-JSdoK<Z06&cdEehW^UnVK_4PY|C)jh5BRm?!QxQZmO~+CX#i;*o
      zEYwWJTD%P-ttP2xB-2<QS>eJVlt*$VMI_^aIO&a4pj{LRk5_V9O(W+ZLh(&txCCmk
      zcoxQ?J|sBRR;@!QHQxtntivQuU0fwR{TKXCh-k$#8HIi8bCJlbM$%U$<Wcspj%$Q`
      zwbm)Y!*!!e>mc0l;9`xi*$!iMJU#EJ$xGRb6v1yNfs8tG5*nQ?I(itUg#Gr)yDru2
      zfKbS;x;9X{F`u#*zPEcWbud)S+^hZ{YU_4T>oUkL5O!7ta|vH0(@CJ%0~;?d`Pnzm
      zhh4sXo?C%i&J=-v38T3%tgo<gSb5ms*=yd(@p!9#iOq`h5#Bd=r<F_iKkAh)*!skK
      zIc#&k%{<_cbDuM*0Uu4=#1S{MXBqt62JGw(pUUr#3hr`mP7+oFh5Bb~T`aIgyLe(T
      z-aH_~5boiAmVBJq^y{ab?ex2B?E?zVMgA{ogJXa$kFQY1*^)7TVa&$^>{uhaHt*qY
      D6Irp$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c8877a309bcc0eab728c14a4fdc2e708bb25be5
      GIT binary patch
      literal 1681
      zcwUWET~iZR7=BK&$;!Gm2xzqeV#SgV!di>=1F@}$ZD<UNOl-Mfmdyz)E}KlUq53C!
      z&mSl^UbHhM&eWN<S9YeC{Xv~R=LC{*%m^2|=Y7xn^}Nsf?*8-N?|%UJ7%L`X0<)W8
      z%kcuY*{r+Kma|>?vF^xS8AeXk4<gxUI*ZRdS&#f$xEu!0@9RqwhQQ#qyX!iE8*Vzw
      z8{5*0Oe6*J$L1?6Dz%eHAi3U<)j~yJs@NyeuQ)5RDjPEN<m&UfEL7$M%yrLgZEi&Z
      zVohLRy%iqm$=iPDM|T9K(<jWfww5UiSlu3*CI$s=^lReC#VLflZs1oIl)W1$U@X)s
      z(n1`=Hf)Rt#M7Cwh4Z*z;(dW@Cjw;SB0dnXH)Yhd2wYBQiaoYTnDe++?K#X@7{$1W
      zF@a0(aI<k46NJUw0wZsv><n;Dq5aUtRZI#b=%(hvE|x5$@R90jifyKsGUWjXWNer?
      zrKFsV0a!}P+c*tNAXW53S!(TU$i}L>5wL}!V$E}dvfJ>Let2m_TYgjER=;5#yM)|?
      z#NqBFj~3umZx>ABSDX?kTRjo^YPWXW$lH<xb+zvbbx`RIp3AIR_yV_0FmC+azBcA@
      zr!&@vZo}P?diT$z3w?%Q;wuu^yViTACUe)uO)LluzcD&(X3(O*+1~BlS}l-nXyG2d
      zvGFYmEWXjXE4x8U>bdgkNobG)6UQ~nk3?G^D1I3CR4FX^782qszJ)`DKd!YJp5*LU
      z{6e33&ZsC{;TFaDB>0Z01>?Uerq)ZJr}e4qHqKCgkD5U(g|n1?qHOS-$-cx;?lmsv
      z+Bnz7rN5DSh13t!uDryxKeM?5q_d+3$Y#e5F#W5}Jj3@m>j8_*QNR$Es2BMyJU|*H
      z<gpBg)@-K&uJaEHE!`kSp`}lVE~cefSQ_O`+~Qkdb9gGRMD{nNf9aM?>dWtSYP;ib
      zm|Eade0CW8FTGXSRbyU-zs6*4FxkfEf8ongUfs0u_0KSkeHiiieI%d6=W~OmcDPp>
      z-NRVEjr)5zL)YvcQv0wdP46LLyokSGjR8zziX?V0Wi`njwJI%7NyRpX5zr$f6?NKo
      u*=mbTKGV2oiJ92Cl&q4v@0c})6%wc@8O8`{ERm8~OfYs?lk-rs@aTUd#+HHr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b6efd26597eb4435d6ec4769d864ae934041d7d
      GIT binary patch
      literal 1507
      zcwUWE>rN9v6#k~SE$ddW0xBpJ5a<n-ix;qn7Xq=^fC3?@f5_6EmL=P5({53o!xzy+
      zAdy7=Y2rf}&rEC4rjcf|Gv~~l?>pDspTE9-12Bsf1s;Z(f>YCTwo$E?4fjAlG~btX
      ze#9MD&s(<3D^-2X;<mZz*vD(~K!J~;=g>GZblY$W`sV&2&$$W$3{zKfrB{VoCt?Wf
      zRd_yaGE8RLAT3kh;(1=-PLA&!mwDPuF$DMWA{+q<ELo1_E;GE1b_nm#EVj#_u71ez
      zvTK!`s)FkbbL~?5W1^>>Bg3}L6>;ALD(LADCo9~<G5A(WCRgFbO${n~8NAWhu8Mx#
      zR&a}9yrVQU+`#~YR^V>)hG94w%Ut%3%CB#i@|OlF6?ZYD;2y)^f6O!tBSK*jH$(3~
      zl=X2)iD*YPjNv|mpUgzVD2sI!Axwy@CMnJ6x=5=V6J214YfumrQc^<~f(+dm%i$Zf
      z;y$nJ82dIwAI_9=hP`W4ETK0JeeQu(rAoK!?tdql#>w9pKyTinRiQvd@fc#1Q%6-6
      zBS|R9Oaw*4%^h%xW~}W@*29tCKq~f5!6L)JW$CtRj%yWpa}a_c_Q{r@ryDLJPRWf}
      z#j?$d#Kuh(3wSCDOCLmE^sk0&yA{hR$f5R2{|u3<Vx#%rF4ZbIPCls`y{$0_c8pM~
      zy!86vp@(`$e-)4D9PK_jS8<JWjkEymA?ouDl0VX&m-fZ@8N!M02qjL@cZ$Iu=srg%
      zOWMd8#xIgm@6INr9=(VsP7sSHPmuU5-AvIsDqXD-;VXoZ#t>f9Sq9VCz&tjoAa6(p
      zB6Ww*F#||xmXJ(Jb0m34p2q`PMSwc(;?5ucg4m~~vw%FzN<yt}&>&=Z*cO~<1?Sp=
      qAK`HWyi9R=Xjjj%kPSaM!_q|ygCiOG>sHNtR6N6T>G*}TfB74Zm32n|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/IEventFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/IEventFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c99806eceeed84636a5334e3062e1af06753ab7
      GIT binary patch
      literal 194
      zcwRg8Z`VEs1_nb0PId++Mh4yVyi)z-oW$bdg2a*x{j8Mo0{zso)Vvb?w9K56)S_a2
      zPgfAv4a{R_U}0ns$Vx0r)Xz!GOV{^L%1TWxVPs&>O)N>yNG)b$P}cClX(HGlYt1M|
      v2Cm@z(xT*4prNUZ41&lu=z$DpV`N}tU}gXTMxceP3~V4413QppV&DJ(bILX1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d4534a2b036bd82bde4ee75f93302be828bcab3
      GIT binary patch
      literal 1328
      zcwU85YfsZq7=F%fb)^%W3`CSWx(lN!;%(>$48)NM2FwzT1`pjCE9pAY7L>%_<0n68
      zqL65!-!Sn<8Q-2xhB{c9cIRoI_j#Z9vY)@cd;@SD_Z5T~W;X2|-LSapZga1uZ&hAz
      z>ta{fo?bOAPdKh#v|W$ehFGz!y+!#>L4=`ai|=yX;`XM#vaux$PeF_!-&t<Khk+17
      zeBEryGmMnl1e=wne6dnsh|QU{={;Z=Pj@0`$_(nl8$)b+X2W(BBu*&y4}}Wd<(63q
      z6pkVpA`crCp(2bP4RM@f2&Xe;73Yys(91A%x)BY1=x5M2g|{lI!V$98;dG|dYM>*k
      z`dXvfA{0~%U{JwDhQU*48ZO~7`5|qF-oGS+^abDMu!a$gGDL}1tVsJyDm0Ay<xEh0
      z>7`6L4u&fl6r5q`E}6Di-l=a0=PBQ?$ZoRKFt}Cbj_Kp(%ZOJqU543qljyWUG|O<q
      zBr{#UsiPGbqZ&Fcfl}w5Q4{V-TM*=yYgWiSS83H}6x?V(sAF6WH!&Lw>IrvvUC0GZ
      zrHgIaO3jp!CoJu82Mh@bTSX?@>8bU-7DHWY>^O#?RuSm`zkAcZ07hwKVY;Jqhy2OW
      z-`dA<sD!%+MF?p)OQ#y0L-ae5JwSKv5Cge=B=>RQ2fDvPdq!yJ0At^?xzCvVNW2iP
      z(zB1Wfq9BuKoW}>!Xu2Mh_w7B^^idpkf$6uV029(PftIqE-?_ze!}F3BiWdIxhiF}
      zfY6j-n3h3)@LOU>eBqq3k86*o4l(G<1iqK^hfwoV?+}f=57YIJ<rkFWCADE4DZIiM
      i44Eq%=pD0s3%4m-j0(GhyQGjp0{7_Tx3M5K=Y9hk2uR-m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e8d19b24e629556d2d5fda4ca924e151177facb
      GIT binary patch
      literal 889
      zcwU84T~8B16g_vl?b1>K3y9x>O463#gcyCn_+lUuH}atN!55uw$99@w+jOT@{}T_8
      zU`%}Q2l%6mcc*1zw8>^OALr(tGiT1uuirm@0@%Y=0FUsv8;?a~WReV}?TLQp^H8XX
      zimmvhja8#Wgo8+0J&2EE^Yzfx0{DcLzMM#5WZV_U?Y@d^fD&OhSMKN_g;OCy`Gc9s
      z6Yhs|$YZNbW?`RDdZuG-pA)w0`R$Dsp>psgQo|G`0j?09%yW3zB97vTG`e%CkZ}qA
      zi$O<KP{2wRWn3i`>Wx+zgw-knED)AM9jn*lleQYYm2IO4wN%Em<VdG@R`hL8Cv0P$
      z`@G=!{sqp9u-H{L%z}GZZ{%k|2u`GpdWsK!FgLsD>F)RJH{KJ9u0Yt#Yvz#O4925K
      zu}i+;#{b42rH=($oK}HHk%yOt#_ur2WmFh1GV&Q!vBbMWu6Vpwn%}Y9-1&yuIU^5i
      zJTEZ|c*)(bm>Xi9(Y0weuN#2dU1xpb?*?x2oN5Y(fnxIlwX;mF<cjZ{Om*5YlOf!~
      e?HT#0GtC_T^dIKOzYKVp0S|X@*ByAzq0K*#2iar*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce6d2fbaca9bef7363ada7c16a773f6e21c25d9b
      GIT binary patch
      literal 1463
      zcwU86YfsZ)6n@@aD3t0D0TmF&P1g;miuWO2xH+7fFtP-{kg~qpO1f_8IxzkOe~TY9
      z5lAGFk0$;o<LTSEAt~@-?|V*np65L0(*FMQ<0pW-Sd|cBNR{k{R<QJXy{5ZmZO7QF
      zX?&O4u2wWHmpgSW=knT$uq8wodUo_(U9)t%q`lwX;RRPh2gA&TG?``3^@$iFTdrv^
      z#Ipf7)6h1`4%dy0k!FZ))y+?wfn^vvwhUf#%Vf-(w&^Y~OeHR2$Yj(!gS`B)Kv1)4
      z*Cq5Y%mwNF7ouhCUEMMbpQD8&)r(bw%LwDD0tI~x;e?u(F@Wn5t}%?9FGax(3^FJs
      z?ymD9ceq`kx<(Ufw%t;P7qwiq*bYd`7{-W%n+!wegee$Bob(VkL*IXt{*=<5%y9)1
      zn53RkSjG_Y*JQ+S%PZ$L)t6XP^Ic$26-emxtdxQ-$euN$pc^tnENj~QU8Azioeh24
      zq7r(u)q-y2b;tDl=EI0vHtU26n$KAaM&k~Py@>cTk2c5MMSA@%GK^Dk7cPxNfSjP9
      z5@~Td$zSrhq>Anq%ABN41n!QnO)P6#{UG5P!(h9a>kZpAE4;N6op?@?+7-+;+2eNA
      zjhmI4#VbU_4H@%z>2>)PLx1ALbaJj^+NHF&qfwFijF;l1EL!JWwc!*v<)jj0C(?Vw
      z7^7*0=@+Fl<PDPE_mDS6ad(S5O8+akME+&+BILzzg{;qHN9ax_57C=CK>q=Tej#>*
      z*d}>nhnPA}ruLCY4)0UU&3#ON6Rfjzj!-UOiSVn$`Wk~+qqTg4No1koEi{kUXU84-
      z0zp{!NFNi{94QM4>po;r!2>*`)6=EV?L|eC-;wy*O4%VE<^{Fl2Q;Y}9^r8SIQiui
      zSPuk02?S4{23vvPr${%!3t|L-e1!SU-i1TFI6lR&Cm06&s8(BKEK(!A#LFUn<uA_l
      BMzH_@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9d6d01a9d703b8db09385a697bc48fd636d07ce
      GIT binary patch
      literal 1383
      zcwU85YflqF6g|^!yL4GBRzLwQZ|wtE5qwcZiK3QNP$5lxL|k^KbV<7<+Xdxc_$&P6
      z2Tc?bP1H}A_@j(>XG;Mskj>1_ojLd1Gxy&4{pag<0ArYu5nvcwwKp`Qq*tr!x?9xN
      z%s1;A-{iKd6|9oWovOA}bhvIV*rl!eVn>F=(7L8?>RL&+SG9$eHEy^v!VDuPl4WN-
      z(<fq(mR-wa=*>0ov&>rLteIg5Pg%C*PBRQ7P68+M49e_VgRi?*#jeU|VHj^DY!9Mk
      z?M=O8nLb0^ljPm4m|Q^+ttuio%@9l^^9s(OT}B&2{CFWMI&hXjUFGgmUf>S54bIS$
      zNapr)=kS8ISSjoSG737;Eu)K}`xuyt^SD5Ih?}A95T##^j3={4MKAgoLIlg2LjIfr
      z6$9RN2I+o@xnw>9hKnj>G%-YTmd)ok$}8Mi(pO3(H<qgydMU3vmS@*CCAVl*DXEPr
      zaeVJkC4-{m5t8H|GW3)F6B|G->#kAc)uTGVk1M(>lYFjFe~-(!(zr+muqq~S)i2Ux
      z-O<Zj^ksV@+aRSft{-arJ^dlUcSIW>)J1LV)_h|B(=#*+@KOVazekX!^48wDvRK)0
      z3{HuqlC=Mu=~2%aeN@~ajS!81S7Unlo*jWgb~9NLSt?G^sz~bq{RdM!h^BYZlHNva
      z8|Qu@`VHzcvf?}F|B*_6!O$nd1#pSx4&nx8$oC#%m_-~9Fo1_hh%>>5BvOD_rAYy!
      zZx|yqdr>uE1EJJs41KKAhQ;O+L8JPB8V$p!aPpkr5!wr%N{6;_`O)w$`i6hv+Puf*
      zizjPR8tIhYBP4wY(pQhrMKOREG{2-|yh0SqB>pu;G(^-1pSdnRg&Vj@al>?tNo0s6
      WN>6nPw<w`;Vwk3tm(1HD!kxd`5L2uG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidClassException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidClassException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ece4d57a5760aa0c149e42ffa4373516f63fdb2
      GIT binary patch
      literal 865
      zcwUuJTTdEM5dH>HR>VuG;Ef8kw*|Eun<lnFjnULZLVUrH`gmkd;F#_1W?9s~<qIS=
      z@dx;$n$B6NMWs#LhqGs9zRS#<+h0F#0Bm4Aff(Ua)9qLdN3`3%2wT>fec@a3vLXFY
      zd9HQno(o6W`?~(^Pd0%#q4Zx~g~NM1VQfpeD%>H&%}TM(zkSb^35*lw&cwN}9N{*t
      zS{Nv|xz|ySEdv7+gtWS|FGM~CzL-fEm`q_5Q-q9JeatQw>l!hW!V9F?SNOhkZ9<NH
      zpMd*TWdpMWDr#a@6Xyu)!=(QypqUFPEMkdZgx+0|Fl#=gFm?p5^Z?6*tXUg20b#nT
      zTzS;_aVmpjaq383Mb&Evr!E4e<9;$8wp5$&x%&J!EE8gi7ef`o{NS+1t-!m`^3f_s
      z@Im)#5*8lxI*4MCkRM}cm5{7?ouDBPlx}!&XfGc%6R$yRr@t8AMlr@`f}`(z*ZEv&
      zCUXtrB%SObmG5FY{j!Tp7xO*jt|C^RHz$>$d=;VTLpWx2+Dc36q@b9jTdtgc<&
      m^<8$Ep-~3AtoHE!uVOOFZ!>CVK+U*UGf+e+Qd^BUYrg?O@y~bw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidClassLoaderException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidClassLoaderException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c99c4b11ea0c1c2221bc0a074cf19c4b563b9d8
      GIT binary patch
      literal 889
      zcwU`R-A)rh6#h;rbXzMw6$)r8E1+zPxba4bMH3~O*lfHhX~N~uowP%i-OY9jzLqy_
      zqKOaSE14M23>B+XF5HXRIrIIUGxP1o=dS>sVlRgbVZR#=+)g0+{aB<u_td|LUHP#i
      z<5WeV`#wAuf$|SE?nT0v$=hF84p~C|Ms<_RD?VZFK!qxOMaVkMTAP1|kuP(|6IM^f
      zxo`s!cHLH*sIdEHpaKrFaEnk@mrd9v#|}&zwo`zG+eOS`p0MJ0e>*g4ZOvFLVhJVA
      z7I7>?pHSiKYvgfU!@@FwYFb#<!d1fFH0ysFXytklcX5wkrO_owSaz;Um^*{29^gLD
      z=(MIyKv?ipC_fC&PGoW<P6A0Nc~M6MZILKlj}NnHPxT2ey#Ia81|g&PdZ<ZQn;iM5
      zmqZsj#9ZhMc67%MVf~MeCs}Ng@{>$O358ZPNILSJ(rw!}bo4~)@c_i3`pfWc7IVDj
      zxH{&&KCjl7==&E~$ECsu#f>2rN_U1>8DedO$|ob+;C0@RpCOCqs9+y9S7pZ7fFm|d
      vKowiqW_um;a2)fRb()peF}ou?`fXV-zyUw_%L%*um0cb+)Q#P)(LDYMncCVD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidCountException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidCountException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7112f8bda364e8d1af51fefd63e3160960ee1dde
      GIT binary patch
      literal 860
      zcwUuJTW=CU6#mYZmIcvTZ0QY@dZ`PwZZt+8XiT)x1VenGCGl~(JArAovzukN^>6tC
      zi6;I4f0Xgef(^E4;ylcpGxJ@}ne*f4*Y5zHVLuOx@Vu{6*9*jO7>Q)yp86M&D?fWO
      zN>r%bwmuhu@(;sQC+~jW=8+>b|H=En=_Q`9bfC0KUK4UoyV2w0F!W^}1;YBNI2Udp
      zbl>eJvC{pwsS11<+qgkkRulWWXZ-6<5jJj?u!viPHK%ix+G_L+;&uruD6^@EBB^~s
      zl})dKr#>wks|0EoV#N^G3H$S;|0-aZn<Z>vn_ws5<dLxIT&FO00X5UWT|&j_&g+1?
      z?kFukre`NIJ`yK^B$PX$CxV`cmC2`<xn!V*gcqIvA7G1MDgGF06E<d>JsQN}g^|y`
      zasiJ`tqx)Hk6LF@ERygr=Dre&-7t+k`CgfVx8~OJ)G)CFVmq@ejux@Rd!Dmnjx9cG
      z%@qsZV1FtX$0%)&uw1?~!rBNMV^qInw0pc4Gw@4P@d|a0Dibox-_OKrcz}m2Z7d#5
      jE#9!PK^2U}-Wa=A<yt)8gBiKPrCb3GG&8xqjPv9d-6hUv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidEventTypeException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidEventTypeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9101c09ab26ebb6901ea3cca6157c98eeb566d66
      GIT binary patch
      literal 881
      zcwU`R-EI;=6#fpSWkqZ&ZD}i5slU6_y75M9(8geDQbT$JA$mDwN0@fq-7Evu$MOae
      zO?&_!%6MkMik5oeT+Gaw`Tow#_a9%r0eFnv3{r$AouKcwebMVhLU-L0?<{iV$F_{L
      z3Iq2r7zkf^2Ll=C=BG#={JO~?O{n~n`-aPNJYnIv3Y6X_r0ts1;^kH7$qcR#)=$Jh
      zxV{KFZbQc^=+yek_hfA0Dq&TPBb24dP}UrxY-eHNS`PDAB&^x>zxh?CWf03bTt}Xr
      zMHI=vBb4kz=K^?QR<*E7Ajc33hPY1Hoh5y#fMIUta05kxrNi+hH(+0+Fm?_%O#@qm
      zg58+a0b!}G0(sQ`a4h4dIQAtWUk}^DZ;4o$dUBZ7UDYG()&K7&tE_OU%=1u<urb|o
      zvm1wJ#w2;rIXp0lZNlasiKkI4qWMc^-V(BnuphVOYh_|@U7F~TVPhM_mS&`QH;)CL
      zGhDspeTvsoW%>PASnu-L5pu;Lmhvk@tPQa-Lg{nDy2bNiqVbgHJrwZ_Wv&WiK0Dk_
      v^h>ydyR2?p?oC`?GQ*%OcG(%>{%^%>a{hu*`%`MxxtawBl|*eP;XM2a)H~Mr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidFieldException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidFieldException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e87690b42d59bf36534949e74859524a0beafa91
      GIT binary patch
      literal 865
      zcwUuJTTdE66#fpPY$;xfilV64)^@?#jiyO!sK#hCkq}=nq<tLO5yq^$n`P1dt-e4~
      zlm3AIDAO}5RjO#>KFprWcR6$B&-Jh00M@aVK#Z`_aNAbh5v`Ul!lrd*U;38(QI~$G
      zJl8sOFNCA)10@}M|6etMIHC9?ugvK!o-p!NxhmWy#LaS{#=kw!mI=Hd%$$h}VL8HW
      zSk*94ZezEt99sqkUJ}yk#y)?l{qr1{Nf;PSVHjhCX|r;lT`JTxVj_iCNVBi-ed*eS
      z9Q!^1_pC|=rU+Ef#Ed4+5Y`4sKPsS^*%an5PcTC7rb(DGA5s`Qgav(pMMB1`4!Qwh
      zyrNur)IL9v!Lc}TB(I|4)rC_Nfzo-e7!RAOMfg;C{u`DEF~y6aGGVs=vd7K9yVUa0
      zDu?i1&uS8~|IONuVv&#^V_=t%ta|OBE)SF*cy8b<A2k!pAhy$AjH6+U@R{K38^^ky
      zD^6suV0=#}yGSi{FrJ?5V7i0ZE^<F3))Jp%5%x2mUoekN<T=Z5kNNEII?~VK4c@Z4
      oc3J7U>@Y*440c)V;@zEMGOBMeYP(O(xK%SyKrvEVjW{3v0<>z+H~;_u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidLocationException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidLocationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..337a73b0630fad7f9ae5bb6f4fbdf39e899d5886
      GIT binary patch
      literal 623
      zcwU`QO;5r=5Pi#MsVInokZ6K8z{JLbVgecyqlu>R0^z=t4J;`wX$$zbJdt?t2l%6m
      zv!yB~>cKtC%$t4l=Iy?|J-+}rK_!hC!|BkO8J5j`f69ZAF&-?YhIq8ZG?1=i+&Ob@
      z%Yo@yT;ZFKi!>4pjXy{434Zb!Qf=wT;F2L;tM?cZ*X}@Q$S~~7)sCtiEveRgcOrt3
      zbcS^uacpFfM3$jc>zHFc=Z4Llq0tFEBD9oN&XkULm`(b^>+-%W7z)a;-Q%8AIBF(H
      z(r0Lz|9WwYp<G+r-yM1GLJ5-v<#I>4+-0bIbGgo9U;#t%$6E%y<IX%w+)8Ej;5Qe?
      zY8Z#0Z-hEAs**@iOcQERmr>3%^5ufIg#Hv#HYsj}17{SQ&~Q!|$gar9Ax~KeZAU^^
      k#EVhZNa$#Z!k3O7_S?j|2sKJ8UZkO_BK7F0*b8UM@ARvc;{X5v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidMethodException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidMethodException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03a7ea9fdde5eaeeda0938d0cc53fc9cf02d837c
      GIT binary patch
      literal 869
      zcwU`RTTdEM5dH>HwuqOaf)*_FrVG|?Ok-?AYmCMw651CG(Z?fu0>`Yon`P1dt-e4~
      z6Muj|s&URrEv?iC_hEKs&UcwP=la*rD*zi<PasBk-*UTF(-EDHFT%EUYG3%4{N9v)
      zs65v?aL<LK?5{Fxd-neCb^>ui`9Wfp%R4+_;*)Y!xJ`(g)l!3hd!8*5ctXgYigRH(
      z!fjdgFi>u5x2qgm1_mYxbL!T=coq#%<jhRMz*Gw3m?kWkwSVcAQbQwVQ+SFr8w=l;
      zu1(0Z@jdXst72fDKqXDgXkwPIK1%w(0-Cv$!ZYLuM(Euh66VeO6vmEWSugOMkTL6{
      zHXzK@lq<h=&rW1;C{7$nNY}ika2g^|x*jy+VOw<wo3%&0VucV>d^1!fEDmpb*bcl4
      ztsmXx7*_SLCSmEXVTVyH67p+|JS8OSUN>mUFG^3G8$HZBO~nfk`{^&n**GRRCb&A{
      zT=(<k+3Y2Z<8-o*RH28N^jr@MJuLQ-{}HhY9H%4f7RL|B;UkJ%W%!Kw?C>(u&*K$d
      qv$}S9GjQ2qhDI6evew7SAH`(U|IDcEAvNPp%|Hp|NNp|RyuATVj?pXt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidObjectException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidObjectException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1eeecf02f44d03626853a23c122f47c1958842f
      GIT binary patch
      literal 869
      zcwU`RTTc^F5dNkVx|VXWlmfOw@y51@8)FQb3NaW+Y#MneY4q`Q_oO||vb))CfxpE|
      zn`q(>@JAWvEETI19^8l7nK|EO=A0itzkUbs5<4j*2(Q{+-?ClN>jfg}SY78lu;hg;
      zgGl+F_0c;Mu5ylBU1>*$zuPG!36(pEH7>95gqe5BQ_(&lY1Yb3{(bNrnZiB7N>`i-
      z%N1VRYDA&(+6R5*Ix;jcOIT7@{v|&ipv0M(hJm>ZrZG=gHtYY=tL3IfEM{;YSvD3y
      zAU%grWaAs)kyq6~jzDEi%xmHbVP}%`tpb|4mcauQ2u9>z9TIZpO$uYD@K7(XPRN^$
      zNgEIr>dKR!`ll@!o`{w!3E8@D3%4mkrRz~M8Ff^T@VfpVuUI7{6yFTh2&?1Uo^(S0
      zT<gboIfX4ftVvk=YuIrVi$wey6Hf{0hTjiud8G8jg~`Lb&{S-K*iU~6&ZaTLF~!wq
      z&UL?7S<HQd@g<ucBC|2TLUw6@<pEZQC|<^_4UY3Mc9-KD6z~=$uJU}we0F#g>lg7D
      rPgq^MJRP~bXNE=@?6N(?vp<UIxWC7!{V_G;TFpQil~`>%<~;ue`YF)<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidStringException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidStringException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7973ac6e96570ce0f3509c0eb5dba827d6f43ff3
      GIT binary patch
      literal 1023
      zcwU{7+fLg+5QhIrQsTHNhj1=XLJ#011s7F4NTEmt6{%6wo1jQsF7YZ^<l2_w0I$VO
      zBDGQ<ppVpxs<Tc?0|{Kzme+fj`M;fi_vi0#KLG4vH;n}0b<^wE4Og_=frwi6nR5}?
      z^0Fa=Nco=q**h1ma%xeiyymCB(`lp##d{MgJiLx4OzbI7Mf-$#t9mBRh3yKjY4>Hz
      zg*qX1=sPlv3}Ny1`awszjtmVvBuuORhVt!rDQ}rD@F<H1n9#kcET%ETI1vQWa|qkx
      za3fO#LfOD9feKn_K8pn`5{$_2#}MYM(af@mB$hS*F=4@~jW2Ghsyz9n^Yv7Q$KuqL
      zgk05c2)8amrN@KGRMb*!!kg-U97&mwWKXp6$QD@Hsub!5o)Knm8OXiZ!x!4QO~NWi
      z-suk^q1aTa5SE6GJ#K~mg|30C)rOR`AukEbHw+n$Vv&e1!`M}VS@Sz#LmnyZ%F6hH
      zcXTQ?z;#1EN$&A2;5N;p6YeMYzgC=~U*BPz<jfwjr7k9OIc~a`>tX4N0}@!_b}|-u
      zixl2r74P{2AAc;s?~@p?hIQmwUSl?fFv%O3r;J(e;`u$8J;r=s#Qq(aEm#9gVSxF_
      jc{(biF{K`g|0K<L;eb!@a7Zq5EtkPIc49d@&Uy6*wl(Xe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidThreadException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidThreadException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e12c51e51fa5d983455e2b327f0199b2bff3dd41
      GIT binary patch
      literal 869
      zcwU`R-A)=&5dH>H)|IM7MJ*___GdxurZGkvTGO=AL_&IlA@%aep1?8N-OaM7ujLIS
      zHSq!ZP{uhcT3Tr@x)-xEbH1OMbAI0ZxCZbJn<*p+TP?3^H(k-`1R`qNr_Om`%ZsKA
      zBISGbp?4-+<s7v`DV+WLb_z*C`Jcopmk)Tt#0TZ6XpfMzs-*`1zW9zzVUn<TD$a!M
      z3a@3?qfmLR&t2s@GBhwnm{WKD#V8)2$eCrrz>_q_F-=&oYJbuzrG`e#rtuURHWoo3
      zJ%^BI<453uSH-|Qfl8W~)x<@@<|ygE3TWnX8qbg;7?FQ>NSL=CQy4pj6}`YJA#2q~
      zZ9tf*DNlawem{}nkvMTBAyf04!fl99>3YyiMs3w0Y}fwd6)S{<;+vr=VQF|<#`))3
      zKfcQ`ywSs2gyr9c9Y(Q8#IG^(lwj8VZrGFuN>7{{J<MB8#d8q*=`X?AI3_rzxcbJq
      z?&r(1<`s<NjM+!J(8Ek-u7`ylmiowF#;gLz=@`4iaThtfN0F;6pD~{uUc~x&tl=fA
      oYnN98mru;lD1%+r`*{6J(Tw{a8MQa0W<01FD4`syt;d{=Tl!zn?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidThreadGroupException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/InvalidThreadGroupException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..331d9a27cd31224a4c56f171f4cffbe1d8111203
      GIT binary patch
      literal 890
      zcwU`RTTc@~6#h;rbSdRlpnz0aF6y?38=nNK#7NZ8G`y5F@HliQ?T~eMv)u*%mM?9h
      zi9diJMLe@qEKqrHAI{F1^WA3V>iWko0B^9JL5i@`@?yK`icTjGQQJOuE(2SBYsw%}
      zzGokL7s6G}aXXa4`4akZ@afMigEXQ1D7(t-EuJv;PI)TYC#0=vslmSk-;o)N6Bf_K
      zg|J=Wwd{HnDzEi1R<0vM0~3U0brZsjk`!i3$1u6KvM?~2!ziW*3s&vENTt-!h?yK_
      zk!O1m1k!T|MYewc?mJct%oC`ji3LquBy10p{-=OuF6ZzBD+D9*Z-#_<>mh})BY3J0
      z@QhHf>cdVzn64>L9>rhJWOyvjTuI2+{HAalB2>EXZ>FQR>Jav7|NEd7LQ3)VP?fMW
      zcw`3qm)az`&=I`Ui7kGZJBbHTEE4gP44o3Pbw3W9^0U&h%|{Zw)_kmi*i?ThUX5am
      zYlgcMUhDm0d1m4#jMIF!humrx)A_kB7P?sKq4+&vt#X}8uy48UU<JD{xhwFD`RuTs
      v=ohhpO;*<~&-*SPn4wVyyKMFF;;&*h*?-Td{Q))OR?R>O<wR{O;k^0{EV<cv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3076b0bc4b30e2421d69b11cdec81a8b32d32be6
      GIT binary patch
      literal 741
      zcwUW>O-sW-5Qg7r`k`rT)%yKeZ#9U)v!a6NL8BloUL{SJG*XkYNv%K1i=YS|`~m(b
      zaW<`$Vnr{zGduG>%sc!3@%jc}2jv`61k(#TmfLcosO`i}>!#6dTjJgo?br_k>y*>u
      zuPlc&p>*TiIabRFJZn%O=+{EZP#%R1L7*xjyXOafyiZuHRPAp`ttrE<Q*Vjg%_~A$
      z_3O}(H;{utSg8EcI}Sp@Kn7Vt(e?vz(YdV)SyN@gv>m!m>&lV7%KMM$xamiPE&Kll
      zcUk53EX0J_k+Tryh8$I6=?5N<sC+CaAB!xljOrk0Q7qNCKZ*py6Y=r)4z<cAZ&9y?
      z9qEb_KXExU>$YNGgZHBGZxT{!IUH#m=P<_SIA@pquIhPn>jk>G{EUf5PE#oISx8Fz
      zEIfdYLrij3?zLkI(?AlH7)wbsgIQK8{M;z~{7C#6<88*D|A}A1a)MvMY9DX$t!f$b
      W2@?+ka8FQ6fJU#O4<xK5UF)AZN|h=A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bdff533ecec7cbbfaff85d18049ecf35a2d9dba
      GIT binary patch
      literal 480
      zcwU81OHRWu6dbo{6GEY-i0->9MZ#i<QV<A%1d7-Mb?>H@>&kJW#3@{h6%q>$z@ZRM
      z_-y#pmY&~?XU5O3Z_h6Pj<D;ZL2xW|Nn^!|B4cJjm-G9K@`spbMy8tHSa_`z7fhY!
      zqD;6pmtU7I9D?y$`?sE;J&{_PQ-ZxwxMV9v71M%7CYM?S`%?nvBAs&|O>A_~f=@6Q
      zMZYV%q161gOlCa4V>87G`e7O~HD$T1@F(e*g)9hyaP63X{W2hECWWZ-e+)w4M`@YI
      z{7P1j4gbqItlSvF#-Uoo?iSj%x)z;TwqZ|i+!F^+@E&d7z^1K!%}=cA1RdKAK6Kc^
      PcAev)i(Z|!Q+xXF|9pWm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpInternalErrorException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/JdwpInternalErrorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28a94b94c88370a24b17974d75e6cf70c598bf17
      GIT binary patch
      literal 649
      zcwU8%%}&BV6ot?5Z$&{Agq3lJn%KBP0~!;9iKcM_VLy~f8B(S=ZN=AeW#YmI@S%)%
      zP>DYfx|q&AbMBXO-riqc0i2+gMS`K>sn~XX9)=Sh4eiljI<dv0D<+W)lzmI%jf#X;
      z+;3|g==S$h7Ac0qmCJKKL#8E_j4l|eb!WsMxb1W0+1;TIro8Wq=0T4kbrlSRg(TMU
      zNW)^N)jLbg1xG4z7mxcwca6wUasrq8J+7shzr<8Dlp({Jvoh@BrcH*l%j1wx<%L;D
      z|JkS$X{kI)XnJg$9y<(`Up?j)hU7T(Oz?k?3|1$IwJWZrX|cCF;IY}oJ_rW$CFqt$
      zhR!Tam!u}>pF1qxA3Y=YG;^%eY0dNoxlWO%TjkS-4Q$RhITTPNilJ>Srj`EETI4!k
      NLMxMIXuGqW>IW4vo~8f*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/NativeMethodException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/NativeMethodException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..585ae37c8171d66cdc096b914dde383b39966cbc
      GIT binary patch
      literal 868
      zcwUuJTTdE66#fpPER<?R#Y>^m`+~KbHYRO@HEEmnfuJuK5+6r)0%O+Q%`#yBR$m}#
      z6Muj|s`bp4Dk_?EA7;<xyPTPG_WS24fH&AoAwhWC_Ipmt6WwkobjLYzPeMn2Z^=-r
      zz<2h9R(-iEbtiDY{;Q^tBvkI?)i}Mt6K1xRuk;QfY1hh4{(T8tnL?Vdd?fn9@r2)Y
      z8ah&b`*Tluu8b_)BP=MtFFfUzj^hDJ9N8IIxSz!|W(iAn{W`r`ZW_dcEas78V-beZ
      zcL@bHz5yP2RV^$MsBDONLtG|oPLjS=z%W;{Si?htrGvjs!lHeX!q_Pk%>^D2@^)j=
      z4G42}<;%U^@u7_N#i1t&xq8qNUQ<NM<fCFzcT|_KRsa7bRtX8k4?{J=%J^mXJ5g|A
      z<m0ED!b>x&O<27$>o|%<G%sUfmyl@$y{IL>DKqfe#93Y&CLV*>&U^`urZK~3in9Zb
      zO}$u|r$4`79po}YWY-6n%PkDBG{DLbg(ozK}A{0>RHM*$yD;w;ZS7GR4fu|W|}
      s@r>n-&GV7XC*~Pc+SqIi@#0c46E{Bcl6S`B(id`Rlu?Q0He$}Jb3zl*=l}o!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/NotImplementedException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/NotImplementedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f7bf9c3f58b6d85b541f550ef65c526cb3022f5
      GIT binary patch
      literal 753
      zcwU`RT~8W86g?NIi?~IKih`)CZ4qtSjY-pw(Db3ECK>_{G$ef-c1IYp%x;!h+y1P+
      zXrqZgpg*eV>}o#(=z}xK-MwGu+;ivWuZt@H``9s%BE0O$$aXw78U;-C?ScCxu=!Vq
      z2TJ(TZu;tI7<hchrQ+_#KXC(T!rq;o$J+f{Pndltq)_h(%eBUUoif{FvS+tdC}gj`
      z+aaV6e3u)TBdm<)KSaWFd6>mK9vUzS`SA)9IV=#2Q|3jybwa5A&(i7+xTEU3lf+qM
      z@W{ji%x18tnJqE0q_3=RTv_6u?zn8(L=h`m2nzx(UBdHeLMB2tvnNa?6J@LsGRnVB
      z5|(OHr<%cfJk<uFSZhz;*Fr-`-i(G_9)4n7j}r<F-(g;dg(CKEf@#$kBf_i3eV)0l
      zS9-#kioyhbVh%#K?MI=*4@JyXxdrA$+=wlZ))gPpSFc=KLwg<lpVHs*Uf#Jx=JT^3
      z$etr#D4b#G46Em;eAn3&Hnq(q2(Pt$gA(4t(q8epTjOsh=w&>{lZ4}G(pUWrmx9VA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/exception/VmDeadException.class b/libjava/classpath/lib/gnu/classpath/jdwp/exception/VmDeadException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef8d5b27989418097f0f8c7738309ed222b87c58
      GIT binary patch
      literal 416
      zcwUu{y-ve06orr5v`IstB_LSCRw`7h127b^@H3!@B`CX_Sc$7Ni4q5REhZ!e9)O2J
      z+?1bz0SQ~W*WdNI$G&gxFRuV**fG&zI7;${N13SWQs|T~<A;*V$4Hi16*&)Amr}%6
      z-)zEQnEcssL-?a-=%1-v>2rqe_%LKJE{a%M7%=RIs?v?fyp@Pjl}k_6UQBP<=wib`
      z4-UiLIPjO^Uhquh2@iCo@?_rH41MajZB`3e-HAme8C<`JL>7ulwft2ybgF8GssEoD
      z=L~jGG*u+8Rco^Q>wen)2nV2%&@M*1hdxD<=#;9A@?bJ5UF#Y46F~=?6m81DF)W;5
      Ri%!m`5JQaCHrs2Z`vC}>YNY@G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ArrayId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ArrayId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3511ffc94245eef456f0580c000e0df73a518a95
      GIT binary patch
      literal 317
      zcwT)@!A`<Z5S%TAYOR3Y(Rf1-G#)sCCTL<p(!fE(#nWrwi@c_^<h6zPS)NEd@Bx05
      zaSI%YyUFg%WOg$@zu#K`_qcFi5jr1f=|_pk^Q9=}ek|8ZUrT>vjQAW&2R7mAxMdo~
      zDk{d3&=~4e7mtKm_jX3GpEIdk)Ntyd4wr@QQ>C{8ovKN>2$gvgVWJ3^K^BQ*CXBB5
      zL9~mx&I#ASzsUv!_cbd`q+WD&<sI~1ELH+H;4r9)xa(-}beQ#FF#?>s_WK4WUkojr
      Z@pO3uLpDCZW902^I7f5$q_uOl{{Z9RMd1Jd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ArrayReferenceTypeId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ArrayReferenceTypeId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..079eac5e5917d387563cdee69df9c9ff1a3ef835
      GIT binary patch
      literal 362
      zcwUW;!AiqW5Jm5#X`(S&b?4HBP)lhjxUm&M1wja1XzBhn8SN`E2``DIpXEw$(GT#W
      z#7T8kx^M<&?pzL+`TG7`0qEn%g+=JRq*V|lswi?*&VqTo$O9b*H^!*tBR{j@G~)3x
      z=ZDyZO*q@mZ=eL{N~gNKCN$dT6M}u0#q6PhT^~(&Vzh5-zZL3~N7d_;%~(wnCLD)Z
      zq>_m;y1xHRyPWBQ&<+3p?U3L-WtEBeUe^&P+o0ZDy(yeR-b7s_-Gn34mFohQD8T7B
      fAJ};pWnoXICmXmFasXeH|4U&X2kVU1nmqggb6;2u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ClassLoaderId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ClassLoaderId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09a781f010995c924255f3ef696cd825787fc361
      GIT binary patch
      literal 915
      zcwUWC|4-9E6#v{dR_H1llP}IW6cN}urD|eA0#PH;WLS}aA@K)eZtXF;)OP7Q)c;DO
      zfkYGaHxm9R<GU*?V?kq+_TIhwe7W~tPkw*<0pK3)YDh86w}PJK_`KWg@Oa;9yYD-e
      z=UVGBV~5-oQNz`cVVJ!b__Em+PTX)A#^R41p?C}vcAFn?%jZEWky>RKU2}Xd@ZyII
      z>1u74A+sL3LPL&WY6zVekAdNmfe~aG^0pU<&EC7Fh+grgFBpn;=x~3RN1oiDCbMhG
      zK}Q-z0|i_rm+BK`7Vmp>u?71->ZQw$w?sUUV<=T?!!;#G1lFH^a6~8e!l0|+D#OYJ
      z9^wpQHG%`~d+vZlpDruDW}t#u5`7zqJrRk(p}Hyq-jud>!o7I=?08kj4cyc)$58$U
      z%)mTuQSYfThRJi~Bts+}hD8HQs4|QYOiq<XwV|T~Q?|1%+qogznR0xFnZI{rC+tOz
      zc;=}|oonv0<Y11h()1frW95J;N@Elnz4Rl|&ZJd7*`odh#%GFB7^kmJE3iVG`^c-T
      z)F||M4=5v<npyCVFfmMgL{^U#(MVvJ#FUbl#tb2@P@GYhl45TtmaK~T73D)*{{`Ky
      yA0z)ArPt;m7LHK+S^w0xC=wiajvQW)#U{$wQdZN6$f;G1aJO-XOc<6G*ZKnvwaYXB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ClassObjectId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ClassObjectId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91706216d2b73c4d4ebfc75083a4fa4f23c4cd76
      GIT binary patch
      literal 874
      zcwUWCZBNrs7(I6zE7ZD;fhZyqM0D$vMiLVfh#H9|z(ga4#829_m(iuR%hsX(D~$#c
      zO_XmW{wU+QcWeQ&82kF%=bm$(xBL6g_n!dn!7-2$SZG9D#|zy~r{yMlPSgL;asuC3
      zQ=S*~ru33^-#|v7G#uE+2#h74T2k`_#%oP?-*rMaYV@R51V&fAFo=TWp+LG^*%8RB
      z#lAFfK_Gt)JqCe`7DkZeUM+~^R`-2fwqLvTPzn@lvFC<6ZaYxx6K8f+Ynw=;XrX`!
      z>X)DBFv(uPloo6MQ7O~RHDq$iCooa245`L^`q7iEB#5JqfvW<`L)2v-;;cveZW#EQ
      zJRqtnuUVKyiE?k-a#yxx<gu37Q}O6_w&UI8ReyWM#2juIm=~D&2h73(ZnD#?Mqu(x
      z3BAIoBXG;YZIlH@2valUU^Yxl!&WV<supgj7N)$ADQ?HzwkMwjdIo3Owxq-{Pr)>g
      zmY@JfM=Om{7<_p+xU%_ISGH(=h4qD23ORmF{(%SNEF-VIN~18~-KR$}4ZGkSV*EVu
      z5ko!JM5_nGBra)*DO@Jv3hj(eN{PLrtypvRH_RO1`VmY%wdyhQKQR5qKEUE3D!;0q
      j2T_V-0GqU*)80Y}FLku3p3X_M9QW=p6T$ng<}UpOtv<Xv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ClassReferenceTypeId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ClassReferenceTypeId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d65d0da2f0b342e775fdc8198b579ee1f2737c5
      GIT binary patch
      literal 362
      zcwUW;%}T>i5QWdAX;Ndf)t$>Ogj&QPxX~6DEeJyB!j|rDlhNK1laL?9$8sff;RE<k
      z;@s-0bm0uloH=|P=IeX?3E&b(E-XU-DXoJjQDvE{Y8kBJ*F4a1FgDHuKXSoo#Iv`Y
      z?_(D>;dD2@g%X^hPIYxlX!OqJ1bdvt?4f}@A5C~-^hU;ShdSj+{k-5}rWOekj>9Zc
      z$y^oM+<&HBEp<sa5C8w|fZ$EDx`_Brn~0NL(8Wr<D0Crj!W2n2;mCC5x`HJNaQgNK
      dTJNGP?923I1J^>{z!&BJQaHfjCZoL}J3n4<SMUG;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8bd1b9be61c4517abf2291f18d915aba378f91e
      GIT binary patch
      literal 374
      zcwUu`&q~8U5XQev^G9Q})w>4|LiNxnc(IlqDhP$(K}+x3&D3s*o3KeLK9(oJLm$A0
      z5+~J@=)oD7`R3y{!@PgItpS{4KY%09doXpZGFg^|tQPSyeJWy|#$!{Fol8Y`G$%_&
      z(d4<HaT>rCIR1U-2P)tXw9(a2pw&H@3b@yKN+DX<j^H6=qdRK+cA^d4){ir?6FJLB
      z;2_DB%%;-nX8tzaYN1Pkv*dptUkQZwd2JQl=;qAfUtn)3R}x3ychQ94^x$(1c)EbY
      j3h+<8S8Tnoa<IcS<PKai*+;}G`l7Ilz0HmGhU|O-kvCk<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/JdwpId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/JdwpId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..322ea4ad73f86a2ebae22e07b5c4b7adcdc64536
      GIT binary patch
      literal 1359
      zcwT)}TTc@~6#j<ZU|C89LFA5#wp(Sr-#|3nk~R$}C5`feLpzjhN?Y4m(HDOO`rvQC
      zL=(Zp2Y-M+%6Mj4w%AA?c4ueieBXDzb58d6pP#<~+`_XEIv7UtCD+atd97CAa@Q{8
      z_A9oNvy-$Yav}H`A_e}I+eKc=+iTkek(CVobYgRvfh8Dv7R#lY<RzKmMOXNUxs$=S
      z<>cr(Ns(KU=jn5S!Pu&b9Z?mftY8>RHCgG{PM3G&`pNYyLvYS1IdYx|q6@JMEsN!x
      zFyKSKiC&y1iD)d-1%^Qr-7pz?Q%*^&x_jHAy1}=LB+-{DXL&KhtB%??4*hc1sWFVF
      z+Sw+3pH4ea6EcxgNhIrP6DGP~Fmxz?fqeazQX!`%?be$HC!(>o78To76FmqMwDu2l
      zGTIiY%HgA9Dw25P@*>%pinjL?+cZe-hKVU$qP+L3j#NEp=s0D2iA%ob%8Dz~vMTtV
      z7BQCJWkp3g)Zh?qGxVQCC)T_hhHlNa!Si{MGjI<NLb%T`bQZIThj_%$rBMs-RUZCm
      zB9>7J&YGBkO_$}9XolglbEFK@Ww)9YD~@VycirraiuX?uof<|zE+T*+?LxHcKqsA0
      z2lY42jgFumsIjG(UPS19j&>__-$AQk{Xm~Ja)g0z8gqf(Va>cs$mhiM0z<SLtVfgD
      zFrdFih@A!>qZn&&&J#`{gVw|m#+!VG#=fLHU!CF#dR#$F!q8mQz6O^~F^txL^&R71
      zJgT5Re64BBdO(AQ;WDmxVCI3RzqWu2{{>$|)N@g<OwfuSVY=0YB#e88ix^c-30sIa
      zxR$7fDk>5`#&wIHgU<-~4}FI%Iej?A81Wb*RF`2e`bEuXOE;mq$>`U{a7S0Dd7{*k
      ojm*Pw@;z{jyB5hlZtd#<O~OZ-iBG3A!=7dsb9ka%%xm1!zt=MDg#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ObjectId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ObjectId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..412d2d5d814df7628d94802a16d66d7d9b504c2b
      GIT binary patch
      literal 1399
      zcwT)}ZBNrs7(JK4N@o!mFXF}!-?vVw3Wz#DVZMzlk}yM}U*=s~Mwimgtpo9!{vwSE
      zi6;8d#2;mRZnxDz2K&(4d!O^1bI-ZA`}6nvPXM=(mC(a5RdyPhZu5G*%Dru^V(e8l
      z%h1+K6;t<ehJ;>*$?ljn8gmAN?Cn?0tSB=K=PP`dYc_Yvn!l7`kc!*fF>I3|+EHyP
      zP`Q6mw=Ku=mKj3H)Fwl3)-_BC0}MmQ;W8Ko74#uYW8QMi7mb~gS$oM#O?p@7_9m}c
      zV%}N|FZ$#WgfOZgiZK#MuKGIOwnbZ>&YvCuZ87BWG6P#BuVvF~78pj8scwEEPu}Tf
      z)w5iuE@6scwhO)4hG;owm)n-n><&7G&uIl0af$efHFL|XnT}3w5*>=PtQFiXZ=+q#
      zL~sSyBwS^Pp8`{G9dR;6R)kJUfr>QEixwRwTZ<rpn<A+hk<^+<D&&?b41Iew%M*J@
      zHaB6p+GFnV^@dk%cm=O!@|{d-Q^G96NE?t_4?IOMj|B;L8759@S8z|L%DzzEbtrV%
      zZ5J70C+pJ9GpxEe@vLjx6s0f7u%sY{xUl(9frNg#Q>JqiMhO?(Mol-LTH?M8w9kD;
      zh|v*{efnN{a9&(H|BZNP6i*pK<P6PJ8pSUhRleZtXCF62&j^jc67?=%*k1)9qe0(1
      zt%y!Z9m*eK<apyVl6>wrDoq&1ajr!%)}mM@q`-#Nco&8Zk}miR<4shHLA*_nDLQfy
      z5!EJXt(RsApY=7p3w%udiVFw0oKOG8;148T(L8yG8^6+@0;MQnfg%O+hW5#cSMN}a
      zwG{gar_oa=-l9LC|B82f#T5!#;N`TCIKbR-D^+TK+d(V`R%G1A1D`nKV~<){Xk{#`
      s>H!wNVfi@mJ`um~NLdb2eiR(kT#F>EvMvlCDCLhG4B>!b#Ye9G19U+MivR!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ReferenceTypeId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ReferenceTypeId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65ee9ea2f92348aa768eb2ee716f4aa0f7f5b189
      GIT binary patch
      literal 1033
      zcwUWCZEq4m5PlXY*E`Q*0c$O7rD`oN+OzfT14?46CLl^84N3h{7ueDx^o|@$tNm4)
      zm^RTw{bu5iGR|HLK|+mpm%Z89XXcq_W`F(u@(sWm9%%?LEH|B=Rd4fdx5MS0)oL7e
      zEW2U75xc?@PF-w$=!il?Lx^F1JhVvvLW3dv*mi80X9%S>(pCCxx(#6<2;Ia4!VHm;
      z?TFXC{hIK$c&#lMq9wP^+g0w_YJcVo$vwNvuu}T3%5n@r$(sypgF$NwsoV^)RJzpS
      z2i$6Nr)h1fEQB<kzpsmqv|XpGA<nQqhC=iqR>3*oZM)$I4+3>C%$T@>SxUF#^^0Lx
      z7~&(hRdILapw^s$Im~NFFeLr~GqHe05=1f>;(tjf*IJ@3a~hJ=$Ps0#rt2nd;3mcH
      z*fa}PG!Vlr)%X=PkfIvM1Svf_VwfJ&nTbQsmP$qH^w4&#XI%1fPj-5;B0a(PbLpyv
      zJJi}fpimxk#eju14R;x4&kHxPu4>VJqLS;-$aJ@V$S`+4FEzU2_Pn}yVXONQAGram
      zDiBN5gCNusB#Z7Fts3p}2+#|JGl>&Sej+OXgI2@$J|Sct7s#49MZv^HKT8->h)@oO
      zOPHp!DEUIPi}_jKk*)B_%x7Fa#?>FVMqerW6OpfoZIgHD1k2yE9|wF<iU10fwMh0$
      zEaKG=Z}N<Hiq29<`@9)shj?%MyiZA;!s}T@ag5bbLED(b+o8nzK#-1mxbG)^;Kw}t
      E0|>n5r2qf`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/StringId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/StringId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7cc0ed60e16993233dca2808ff90a765551cf37d
      GIT binary patch
      literal 879
      zcwT){ZEMp|6n^g7HEWvLF3#z!otv+1s*5iO!iI`Np)*dgGVp^)n%s4_#H1wY)PJQY
      z8z`vX1b>ux?oC^zYzrj0_vCrG=Q;WP=j(R>H*rJ56vI+C9N1pqCQ08-ckQ14u5Sz9
      zZl|#byDeWs{z%NTPLF$O%V#L2ANqVl0vP6;p1bGTfg5&hRa#@1S@!}Fiu4{suHM*Y
      z$ZteG*HB`p{6lA+MKH`7m_~u2?1+$W4c>Nm{L<|NoWXP=&keTSSjhdbSXfu$I&v@#
      zRB)0E>JODqx+~~R%g*s#(h-YYo@QHy`Fg{dJQhLpNAEq}Pel|a8qPA@K17s{Aa*O<
      za|7XL>@ibzcg{c!OQiQE<~uy*p+`N`{&S?V-HvwB7o*Q>I+k%k!wN(77?^>JxI__C
      zE0axRvmzaaD+aEj&M-|dIXs%krjA8eGP<UWZc|2ANQP;chi1`^2C>H<3z`4yD92Ta
      z#0r_@=oe!oN@Ju|4l~f`rkH7G(OX^xQ~wO(6RoCjf}T3PfxE=Hg|ezjjmnsJhboe(
      zS(W4fbCbmTWc5H1jSPl)oKg}CI8BH%w9czTNwL?omaLlf1=W3={|Vh`{zCa17GGKW
      qxO{-dkLJg*g-LMW2}*cM7F(#|xw2ZwM21!+!d=64GGSO%T>CFJ@xCtr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ThreadGroupId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ThreadGroupId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e28ff83ceac6e460d4a3042abf5ba39964a4c37
      GIT binary patch
      literal 918
      zcwUWC{cF=u6g_YK$d<;ntNXClPUoEVLl+f<!G?-Mr892Bje$Riye4mHN=!nUPW`VG
      zWdjBEH^Dzjyzh0Zom4T9y!&p>x#!(;-;bZ4z5uv|n;OO#7Tus{+CJ}gBc8O)j`KP)
      zJ;&T_$AUYL<FFSs9Sv!Q`O(0wR!7)L(_xrM-bP|w0vM*O4nN?g&jZ&~sa1yYHQV<B
      zFS*N*s@C=x((9okG~^g&exrwkC%|yVKn7WcyyXRAv-hec;$7bI1w+vaZSL>!*pvI?
      zWOhv{=t!Yxpn$WaQhlJrlD0<&TeAM6UpnlhE0UocL#bM`MxK(u`olN2h!QUhx*E<i
      ztc=hQClIq49B|)rhDr?Rvf~Q|DwwCDFJrMUViDNXS7k_>(&kRMpFBJHy{h99E^Am|
      zDE|XyU=dfyd+Ll~`cympAyOTNs|K#2%8((LoGOiKLq`d9X=g*)xgqV$xP4pZ{%*=n
      z*o$rP$Wy~Q<?piOV1d+9bQ8&2Ib(`a7>7nL-6h)9X_Zg5sDFU*o}w{K(pRSySRu}B
      z<W*MIC=7UaC?lC#z2F{U>QCZ5lDe;mMjwW0%%~Exm?OkFiqq;)ve*lXC96{Zi1HyW
      zeuHi`z9at`rRViSEFGctwefBsQ6xC<1UWn<iA|KTt)yoAMUJI%gu9L#B*L()xaKc%
      CzRgeo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/id/ThreadId.class b/libjava/classpath/lib/gnu/classpath/jdwp/id/ThreadId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37782c541841523c1729a9a58ae19d7cce7c9e55
      GIT binary patch
      literal 912
      zcwT)|YfsZq7=8{LD?2N0R74R$K-687DrjN?@kTTmHr_@^^o!}*!*-V1E?qbEulOr8
      znvrOte)5Aq%J`mkn`S}Uv_0qTb9pcAuisz30l1DE8YUQ)8h+PwJiF6r+fmbOxo_I0
      zbj`hHC~UXtYDoVV^Q7JqPE>UnveCP?*iit68LMUYY}2#-h8c&p7^b!zPx>;t&5$aV
      z_8HPUfh#oR7z%&UiDwoJ(>f-RVaQw37mvHI>muB<>z-gRtiZ9oeLIwDKL}>FV{wiY
      z3>^iWB!lAp*e7aA%4yj;zDi0l+YnK*Wtc6Ntnsu6!XLbKL_3m!-_dZEVe<%4F@%^^
      zzh`^WP1qx*s_vYQMJ$ott56(>Q1}kju=tN7h0R)U5IrBh-r`uss)iMYg=1hkE?|vX
      zOr?w$k<5y8I4<e9j3R?3JNG=<6Y)%5a!RbMqk=08lO&+VO7UHed916ZnyRV0s;QZ1
      z&?n=_F4cl==!l0>O=f!7;dO<?3Ynzn<6|UB1Ey69Q_$$50nn~YPjzGr{t5a=T20^t
      z-8nshTg2HwK8`Al!iaa1B8sV%3(+BF#))^x>TXQb6BuT3DwdeTX+oT#bvjN;iMg~^
      zthMrIEc9{y2e?)F30~>r;(O%3V*W+BkJ2Hoey@BOIT^$P9wCRPr1}i2sKt(RiPpd|
      PM;_Pc-(z%c#N5q4?eoJv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f0f3a4dade31e715c272f5831029ff2ba2ad2aa
      GIT binary patch
      literal 4143
      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
      E8#;?D)c^nh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..686bb6e19cc8da8e2180aa588231fbdbc3dbd001
      GIT binary patch
      literal 2446
      zcwUuNeN!7n9DWuOE~Hl}Pzpi7R11XHP)b`3*xFFAsR6VgN~N`zWJwN_yLh=2_(aY)
      z{^N`j9GS5*{^<ws<2XKhd1)vC+stHlZ}<1|JinLSzyJN?PXIS@sG&_@E^C#e>AX=Y
      z6%98R-On5pqeaI~%Tmd9q7NL$INCZY%4NGyFs#g`bT#+{#xK-*EiBNnWLl<sPoO<A
      zu`S?Rwlgw_c693SqeGx8X<Bl<Tu4c0%Sh#=Ku^+68~JU+G1Yf%)92>QlE8fOUEwYY
      z1f8-~+Yq=FN$wjjji_bX(fE-o<K?|Q=`2<^x%bd;jg7KfEW4YoBaOmheBvohtQ@9g
      z(KT(Wq@hP(vIPuT7l}URXG0+ffvY<DaE;XDp-h)uxh@Y9R>?K2G^x$ME24>Q4FduT
      z7h+hq-9(|7mj!9LGSfh#VNjsoGo3fAY?LNVD;qDH`HXY|7!nB7LKO}ogb|gc4+Q#Z
      z7@KqmLrGlM@gY89o{eHrssIl~5))^HYYr9z7!|k?wrn@NXP4>3w8D*~h3lS~wpnF+
      zT-lBY%(U`;t`DU-sbdP$B;(rEL*^iIR)w<t7|{?Fxck2uO)!v-W#m^J$99_1JBynt
      zO7j8(%{aGmj(wnt*UQ&}KyN*viH(M~KwB!s@V2Y~9@?z=!SgFYKugyPTf`|Z4;#i#
      zJ6h~y8Q#-zAD;>M&CHrX-{Dr>w7r&4r$*KbWgHJREDMZWEU9A!tE5O&nJ1FqB}-f7
      zG(lwdS{L|4EAM6|`i4G1Ji=oQ34zhKQqb`Ql8j7Nx@v={PGx>s>C@;szSOY63+Rm_
      z9bYN+D^zDa7Hx|Sr0fK-iLW(m)f0J|jgD=6!!Do}>%_b55<%?XI}J}yHJl^&@-ppK
      zuPPn8cqVYkYQ7J~B4^N^>Zpy>J`H%e`Ci8h7&Jh))om5;g~(ay^MYO1qPaArhD_^J
      zH%aQ)Q}=dv#w@AoUbgd!kJkxl<aC(WC!hnzba{7Yvyv8vBNts}tVae#0Uv+MiV)~D
      z>X!zQoC%k}<#coEn3ue?vTlxD!ZHdl++O(ATXQB-%$;p!&S{S3i1Ag}w98IfuA1tF
      z8ffwO%qr`+&em&(`n7Y#SC6B{uPA51**|%Vz^`1iA;_`A+l=87N4+Y*`7&pL_s~VD
      zD_r~d)$N)2i|2mMkA{EtoD6xA)qn5g)N}>CKVkX={W~WJ?ex5VjN#!5!aX-C7^`67
      z7&EV8z7x#ugnY-Cd)59+&3_EHYKX?r$#Df&*@=TlV3-{?izM!Fj$s2!Y>ibmfI_@b
      z#Zp78R<|i9ywzQNOp9vu3H92k7sMh*#f9%<jadihZu(Z-{^45rUYh(3pH5ZqV11^7
      z&ttxjuY$FhpF2<PbcFnU9lzt-n5Kk6S_RKzfl#1=R4735+1HV+^4R70jB$KUk1rT4
      z1EWY`j%9rtS>nlgJa(&o8$6a8JeF!aI*IWI<jJE8Gbq3!k8AW{bLFSqFpBt*Y)1LU
      UI4F_N9Id%1BS1SZJyZw(0q_ojg#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9902c528b95c5e2ac932378edd0c9e72ff6b2aa5
      GIT binary patch
      literal 2722
      zcwVJdYj+bx7=DJN-88IX!!<}TSb?Opja(E>0HuXWFl~|6)FLXIWSVSEcf)3vUcBI4
      ze}jL3b3A_W98aopj&S_wKk$e6Reff2A<(qqv6q?InfIOddEWP#ncx5V<yQd5@r{OU
      z0_l?FB?}d!R;wCrIk{L|t|qIFU68e!?Ig$5Le@5l(zz-Zq$90@9JiO2468UJT@68j
      zqg!v#HWuhTV_K$rP9P9Z<OG7_c2R~AK%b5t^a||AnwFgMmh#e>HS!fH5XssFqmnZm
      zQ++olgKpWZ37pOT59Dcqu;W?H34xRG?4ohYNLr?y99wnen72TmbYqfp7Yx^!_S~xH
      z&bW>=meOO1Yuw`EN<mg#)3$0FA_7BQ5XqKF@-jc$4q*uF(y<$R1a`|6S@2w$GixRp
      z`p6|2p7^hz5;+a~1Ws)UW6E|jOVx^8l9nrrZ9p3K3+(l`t{7G+$t_K*H0GHVW-x>U
      z0-<KMVqrvaP}S@iVsB#X@F5IkaY)Cr7-ZFrYE`NnABblX8;qL)(jgocNX9JNjV;(7
      zgP2yVTM1(=5G>-T3UgG2i3^N$1F~s2<vFC|7>3EqwHu49NPMFUZTI4!hNQshf30tZ
      zIdv?fa?x>Yr=!@TIIa?QLSSDf&e^hKFDq61r8_0CvsK&7blY2CTRzWBcNGH{ZAxYT
      z=AsbL3N4w7G1|+O_GS+UO7~He=XAV+R|R^^;-taYv2MpKH<?kZM#)d*7%pfS7dW`J
      zrH+f35YUOLIGtaV1vf)Tr@M<h(Jic5Otu^u_7W~@$aD|eVX5PFWCi+4(rrvVTIR-V
      zTEi6c@?g3{ePLX|RSj<l40ffMGac76Dw9T`%o|L{3}$(oF`#n4DsOtS=CVkmou%*C
      zzNJ&oH7m*Uj$^E5&6-PwIlQG|uBD2Hmvzj8S5UBKu1Wt!&4h6s?`n958rw_^I^M$#
      zDt_59T}iFdpNBH1BIR`yz<PwZ;ux;&2<(Y>0?Rb#)7!CtvIZWP$i`J2rpk8Ek}G^3
      z-e(#fp{(RW92RW)Gezx_J-b?!N)V|HS=v+#kN7fUH^G~j&<{VBgANy-z;-_!vqq^T
      z8Gj(Y)dj1_FY8#rD$iBfs7;ZlpMKUNU@QDx4@{?Wc?1g;-nE;EfhVN$kZg8$RR?pd
      zDn&7Os}avH5v;8V^l!)}*BrT^pdNk9yz-@+u|20CCrtGK4{rUoj;eq-#JeN_^%LNT
      z?>k$KUrF|Yeb3N3LO*b@4Pmyu{^U7qXR9|1*gwHu;7RPD)l(b?`PJ`l^BdQD*k2m>
      z&JS|Hw`~0H96B~!$Id$#zKgx{cM+YBJiU&AfjVN5=ju38M`9f#_fo;T7@dy>*YW(l
      z!1umqioYkDh>oC-Z3erL#ePg;0Moq2ui!=YDIW1Nn8O6F`G`+7urv{?(F?Q_{^&Gb
      z;*M(cGW`Pd3nR@|apCjdWY){RpRpCUKRH&h=Z1d7*<*E_pBky-wfmS%1*5^AFrDfd
      zj`q~?W*u*<-bnS{!C<uaXRtQ+vB<xard*?19hFol8e%r8YW<eLw}1cfAn8MXdxOCY
      zM3Cp3Sm0w?#4tskMv3&wBwyt1u;|mg-hkDnIoGB+*QD8pDXifG(v0x7{}3OMW|U?9
      j7`K_C1V-=)J|)>S$$o~<Nq2%@U*JoGxX)KUvakOE?QY!6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce043ddb4db19eb4194881340c94f6c74101dd38
      GIT binary patch
      literal 2157
      zcwVJdZBrXn6n-vASV&hZp)G|HOof&tylh`kG-**o!KMbN4Wi&nyCj#eOtPEVY=rh#
      z_%EDs{NjugW@N^8`q3Zd_}ooMV+mNtWOC2lbI&=?b6)o5&%b{E1Hes~8hQlMCA)4E
      z%4V%rHN9P9uee_|s;*OzwVLA^i|Sx)drua;M{-BH(k{qFr&2NPVqSV0f&!Cg2WT4$
      z^xm;-%Uci##1k6=!9}Mi!w8^XM+m(F=W~`VSL>B+>8_jGWhoHJIR&%4VY-%jZYhJ_
      zu2mDboBJQk(*j|)ZnqQyx8u1z^9R$gEyu__^<<{LL!We0N!>luGuP@~weICTSDKY{
      zCb7j3O9us6^(@D(X^03UyD*Z+CdLCkwjII{xS-=AE>X$@S*UxGJj<jji|bFT%=6ZN
      z<&@aaa9LpPOctw-m#tLGvLbCFwfSfm5g77Amrc85Fr;OdGIgt5lx`nJ1^QaWiiI(Z
      zG1ann1unKYcKDEnvbd__J&d#IX0<9+iAUqv#0ldTK)Mgt1a8D^$BXSab%I!StfPam
      zb_-+2EZD?Zg)^ye;sP_>n4F5IJd--6FwMj~r+LUu#80}=b_in{41xK7?QfPvb#1e}
      z<hqXA(d=2=R291=aJiG``mXEjtEu*THzzQ7+}!M1+gqS#dz+>1It@H@_%e)~J{1C5
      z;dsnNhW7HH9qgY#>3$C7f{u^zi9pCIu9(D*b$iV=R<i2UEcvC(;GTv>fw8kKbu3|7
      zKqsqWv#nWDn(sd4iEgk~(KvP_?0r1YknIlJVX5PD<OKRl(rc<-Z*x<d*09Pe=#|<Z
      zKb71=9be!PFC#{1&!Kun75!9aJAIc^slVpS4A#M}e<^V7jU04*g|7w9?Yox8yRcM}
      z#E-_$x(|5OI#%(NCU#bn{pRVjX95E!^5K~)cT}>IZ<rZx#=KK^3v$^~7xwtsck!$O
      z#8u8-0O}Lqj{gT-H9i@Xf-;mmMBlI6^dQW&*H@-+j;r1@pnQu`;BB0z)jQk=`842%
      zdCBt-<^AZ-KFFwV+58PAr=}Yi{0Y-X7}`9-@Mh%7A)?U+Vv&gkt~Zc4#LV+l@CdV;
      z!@)z`cpmtrg`dLh7NhIv=bFI<j`;|d5#@l+B8v|wQ^?^C9#Wh48P7Gjv>2=1`?M4O
      zZXO>pqS}2#zX1KhNOM)W@b99PSuf=Pu~lwAa^Fiik^BvJryBTlb*6#OUSK5^RGQ&n
      z18b?!aEM9fUsdpu&ta3Sw-CYi<og)oc;fS0XvS;vn`rZ!Xz}aE75Z+GUxeRp@Gbd8
      P$>uvo3eobhkMrbjti3yt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18757d3f273b9e5ec7bc3ac6d83711aeb796b39e
      GIT binary patch
      literal 5471
      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
      VCupG2zY1328F{e%OA_wi{|Djur9=P#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/CommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/CommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..226489de3a8f6a9a4ee55e3b97b728afb58196b7
      GIT binary patch
      literal 631
      zcwU84$xg#C5Pha8fe<MBzF%m2AVNr7ia4}@1Zv?>)B`s+b&IRii4uq9vp66S2R?w0
      zLQFz|O9cmyXP)QHjGz7f@%jc}4;v<i7<M`;c3h7~QNZ<$({0@aP7wO8h$269Dt@oW
      zRjV$v34>v>%Wt{kan*4yn_b~*hOBJWxMJ9>4k*;9oh7HdBf=8H@S#*vA2DR|g$9FB
      z@ms<|24gl%j93^)&cp=6`rnmoOk#?`>Ii)-+C27XitT*izy70On6Z(?Fhi~?mAHs|
      zO%Y!4rY9JttG>&<1`lNt_d!G7$cSNJ=|LLN9j!1{eSl#<Urhy5(s#-aT9o5<n<n`J
      z2|MPRU&cC!bzO&o_e$l$HI+EIcSWG3uObtx48;N6#dnHxPT>!M$aOysU2!Ut`E$Rc
      z?It~qEz%%EkIyih2tnQu`6NEsQHqYz7_f`au!=9RpD_KHX3dhFNVx|vP{J7Pb4lh`
      YKIXB2<cBO`iI8Q&4BA&{t)=|+Pk_CmSO5S3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/EventRequestCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/EventRequestCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1f284cd54dcdfb673fb6865f98b67df33a9c360
      GIT binary patch
      literal 5267
      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
      A>i_@%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/FieldCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/FieldCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74685c062e1cb19f645c917ba1eaa50ac8a657a9
      GIT binary patch
      literal 814
      zcwUuJTTc@~6#k|xU09Jz0WWx4cmW#I36ZxNgGEU+O?{{#k+<pYv<%su+04#*`B^@Z
      zXrk}_DC61fg~T9<^KkCxn{&SN>-V=G01mL@qsH)bqzfJ;BF{77&iO_BDdU+nk<4>r
      z`H7NAd~DKG=(sPP507E@#*V9EhWc}*m3zT3x3_=F;2oP-2AIR*66R57Sm`P)dqp~s
      z_PrP+lA+Nxkw{L3Ri!@(dhT5146W|}jM`=hY@sIshG%=-3-M8Ktqkvcak5hkhtjsk
      zL5jT+PP{8zR=B>iQl#z9{ux2M{v657DWh{A4Tk15Bgkn9e@pJH!N&%};f?h@<KCoM
      zB2%fIjAxw-xI^3aOc;%a&%>dyQzy)&3#(m2b=BJnu#S5rt@jx=C#xnxk2r0k^r&6(
      zUmFZ4c`Xf;G(_>%zv*D`qbZlHL(KF|VIz5>$_s7$MSiP<!8YjfC|`{%x;ROnJWiUC
      zo^M`a;cJx+NY<<1A#Rae8W)hhO`2gDD^#^gwnyGt1#?E=9_ipa);}~hFLC$h3~Rai
      n_=xf^3HPYNY>ulZn5DIa2h~3T9^w&omeylDp<aft!rJ}=$IQ+I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cf81a22ab19d6439f5ed764bd9c057bf60a6084
      GIT binary patch
      literal 846
      zcwU`S%T5$Q6g@RG)7T=&AU+VaaU;xvit(`-V?v`Qn8~;pLIS&*o|>UZcU7ml8s)QG
      zk!YfOKgxK!=M|H|g|)cvd+Od(_3QVy9{`@?sgD}N%b_lKoQOQnggfKs{m&WCtchiw
      z8_N&1lXf6td32e{1Cypg_q)>h@ED%`vvXF=P=BMea&H+Hc6N^$yaUsh0Tys$8H=bh
      zthSYwog(c?dn9^^WN5TaERthkRq2m|o;y=H!|V3{jND=fY@x>ih8H{Sb8#WKR)$BH
      zPDaIGAZ=?Dq}V&*#HYe#h3h&iMcRsXPYL4vmsn;_8J+uRFf`|kA}1yMBe~NCA9v=n
      zJ*)2+cbI00OeO8mpLQ<cE^Xa0VLTc>4+q9hoG_Oz{A=e>%`o-?tmA%3^8<#B@ydzN
      zLrz;MJ#3ZlQS0?6IhPJf8lrsjdRiF#c)}@*h@q}2Y%D*h^2N5Ud5pah4%?s~f%4SI
      zqMtz0Cy$e6q!*i4So&I}1CsSB_zE{kE{_UG-y+Shf>o-zO}0ngS_N}T;2!DVJJwGc
      v8&|mZbBeW6UA#~Eh;a8S%;u<ij9FTncv#&NU<;3^v$P)L3H36B71s72HZt2}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/MethodCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/MethodCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc2b3e71917fc3bf86fc837b85d0649ab514fa09
      GIT binary patch
      literal 3284
      zcwVhmYf~Fl7=D&qmd4e#^a_?XEkzOtjlC<WR6}W-%FRNl;H^t?NVX=sakBx6RqJ&|
      zzttZhGmc-Jae`xKte^c+j?dXF3xPoCXfnHd_MG>9-sioX_w3*Q{P8D%v-nO$i-P{V
      zSxsh(dZkj<okH?{Zn2y!+g4UoDwdrb6;8p*4Oyj<ZssP1qavuFXGfKFVFlqUhG{s1
      z3IehCw1VJ}l@k#Jut!4(VFi0f3{#9%OLM}W(&vgoLEDIx)r-@*ZOC_TGUybHih|_G
      zb8$^6h}c!rn^15*HgaEI(37TNCDRWak*?0q3p-Vx<lHsg(Z{P!x#~<hw$MwdbbOW&
      z!%JCFb_~m`sAyBr+k}Hy6G`6UtFI7&f`b|k;jn^zVo7AHj*t#}UY&bhKJjUZcvM5X
      zL_FvrHpEH_ysY8aMw1d-2EHN}k83y~7x#OMnacQF#VQKNRXwTUlw3X04EwI(6mAGp
      z*hW^xX$2Q{jKrAbWJ=|tC<)UMIX@;UUQuwwb+M?M`6OL4%zV0P6m!CEMNC1fm#}CA
      z-RPBt(x>2%7po0AZaBKpui*@mEH%Ac7BbDpVww0BVb4IS6=&&X)U=%Fyj7(U!;IGJ
      zCc0*pm2*Y{pO?TFxIvnk-qwKByrkhWUZW?DRbOPXVp~-x+l5{gtkcWSEUFBnXq$R*
      z*tRWuLxm0C4H+VCv7;M#P8DoxQ6`O1Qt_sO18Y^48TYjnw9L&hwoS{Bix&4>$M)r@
      zK+Uf0EhSBPvE+j_8cOY9ZQauFHbxYLjNGVB+tFsbd3rP>SM|Ib$}vo+7-!M$EUDog
      z+@_0UmAfrSUYJ=i^`I;=WH#7*m&Kb|H*(2M`Y9Dt&G$TIhvdvAg$O1wt>G@-Wq9(!
      zk+Y=MkbYN>?#<$T74LDwHg&IFmKr|5hpcYtn{;P5wgqVS{;h$!w(n`s!SrinxuGj{
      z$C|2E9iy1^#R!nYyb8*ne5SC5JPOSFqHQ=-=#1^u;V5T|dFg3ln+!FJI%_dR$>n7>
      zwk`2t^h&PVw7p|gSi(gfT3x&He-^B}3Mjvi0o-(8#dio|gD8O(WFQwA_+2TG;{t8=
      z>=M2epDH-D*4q4&z-@rWdV6NW`wU;G_?&HIyX0tigfCexZW_}T&kVVXgR$B8bSu7Q
      zpY$83RkgF?nwYERhnE~-R@ecy805iPm%DCArw(mCyw6A)ILW>dfc&W(@sojfm2XKt
      z6+T0~t7!d|gBC=154)2oyuiCw7vS?nJ{7!#y_DL=agcBOC5&>I>mklO?EKj^GT}<X
      zo$KP2;B}GLAg>#}eTh{ZSiyulII`l+bgW>|9dxeXqC1GLAn^oUGf&Vx)7G<!cxMfX
      zwpVL7SHs0sy#90`_yhwp?ZH)Cc^de|wP^Bx)$`&y*#Sd1%~3CIpdT5W$1PmK2(Dn1
      za^n~#*PFP_4mru@cZdIJ+~?iI49aX7%ed!8;X>U%FA8$>7SgW8hqQ2w7UgJ|mIBm^
      z(ArJLr$v6Vc+m>;xt}&=*ni?!K4ZPVA=6jG=wFx|>#yO?K(Ia7_d8|=LhYd%J{kzO
      zhZ8kq*E4h6)ytF9Jh>FmMz$UJm<cYT2PK#5%{sQvHRf}Td0gd(jX})-^$%0KNUj~s
      zY>9q{h^4}!7m{)Nf8qa$$G^Ine}z14vT$gBftD9(bBX*P{BQi1h$R^x^ZEPLO8kJk
      z86vW{+LmP{p|SEGxjdqEDW6Bg=MnLEw8(G34ft0*{1#U;oCwtLaNYNaTP5F<;SU?|
      o!#;l4#}E7Xr<(AeXyE@<1OJ!YmB*C+ktmOM>4$=ET!e4`1s<j#A^-pY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3efdacfe6b1735580ce8ab825ac81a78701546be
      GIT binary patch
      literal 6344
      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
      Of9Nn#IsPj-|L^~q3}Utb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/PacketProcessor.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/PacketProcessor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18234c60f7d62c95b3a9e00476dd4d2d39e5a1bc
      GIT binary patch
      literal 4326
      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
      K{mk8qcmD?zk=>;L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1eedfc1dbe1afa849dfc61dbcbc99ab879505dcb
      GIT binary patch
      literal 7908
      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
      XlaAF?9ZjvKsk%X$5{x@Fi0S_aS1@Sx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/StackFrameCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/StackFrameCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e8d2a02bc4d24be9f8c99829e7190a05df5539f
      GIT binary patch
      literal 3406
      zcwUuOU3U{z6y3K?GEE%$C=^Jc5<qEE0+I4jY@uqQg<wm8)&MH%G?}IYNhVAt1ym6E
      z6u%IKH(&InYq@-JEmzBuwZv!tgfBk(6V!cYrqh(BAnjV2JNMpm&ffc+d+z-4&#%7$
      z*pB-O8U(iIOVw1ipj9em&7Me|$(=8!%9fecD;3j9jo4cD?0}^e_5EhCsFiXfx~(7}
      z(EdcTxy=Hhy++Bfdj%TfiHtyCznRk`Xhc{=5Fvr3gGNa|QZ0_@)~GgC&;^<Y&8$|)
      zXqF-0y~%(*VN?Wm3_dg79)XBeEqN1k5g$CGO=_u<VW#>n+InAgd|bDB+)2(I&}?nE
      zYL~0_h;8Xwv8ONb7G3mT$m(U=FiRB$%>o^DaOksJQiu8K8$=+mQbh|^2`tku=-H~R
      zAJpxPR;cQv)cLG<5*g`njf!Zk$B|i&a&fJSb#igJw>V1ihR4q6SzE5YpkjTk=~1)n
      zXhvom1a>}=*%8xD7s~~`sF!R#=W|rBNno`DxuBKuOoU~W@_kjKkkhRuyd==%B_I~T
      zMzqW1#|2tE?lm?Jy^ZKlu?0z%k5(@0GHvVP>BNG~UVxq^Y!lcVE17m|+^jN)QHnXW
      z5OavdW@A&NZPNS8())ISt@YwB8bw;}P_YxcNXItaMdmiX(1d$qXjiaDpzEoXlBSea
      zNh|bQmTA?LO&7YQPAuRxwKzv7Ec3iP6_iTBK7kdprIH@@tpys!#wc*z+Tx<g%4=P`
      z#srk??12$|+^=8ooy`x_6J|vnRB;GtfuNBa(il5d@0ezW(sEVHJ5s)ZAq9gh#wYJo
      zaRkExDpBR!3QiMJSN$`Ss2A4ArDhEo_83MK9Iqd?W~Yi#yeSaQ>$W@fc$(eW9t9_O
      zj^^ctKqEMXw-vB$Y^uvHV_0@oD-3Db2{u0!@8C2mim{w(73hB~-E`UW{|RS?95*EU
      z9yA5-&lbphTNPu-@_aEW>(6P==?HY>6^ygs7OM;u6EFz&yk*$BV;JDU%*a@0RTNO9
      zr@Zd^>x;m|IR#~w+Tu7>Sg5%4odzbmLb{IB5ma$r!K6T29cNYBD5M;F6&G-kNpTR4
      zYWcjL^Zcgbix>RDc=EPtbgHdxHP@CEWwf0v$;)d&=6Ec|-Mp@QQo6XUQZQ{wA$XDm
      zMGnY!f|%3_^BvbHa!bXhxb5bV(*lXbjz%4G6Q8U20$)=7im(2vc)GqA!AZG6T8;2N
      zwEZik3Ev28oNclGW#V*WWA3hChmMSxRV%9x81hDs*1N2?$;jBimeL6M7vd=B{3?7)
      z@hSKWcFdsZXAT+=@iqZ_@f?3ucLSf#^C_?dOSx+q#{s@Amu`e~8RU%F_M;PIzq3>B
      z053)$?tC8s-5pz!GgvW&gU(>}6ndRO>lAi5gSIIoA0l?@AvT_BesKny+oq9d-a3uc
      zG&*On`%!n`A-YaQ12cH#QR7ce5RLzPJ>b0r2lVr*IE2keBf+ki!XP@?^!8vFJ#1I6
      z<2Vk;Zp8o7d}=s}EIUS#Cr%RH=~D3s%TX_0bt0K~jn)m$sE;HYX&0fdeiChvpCg_y
      zAwHKAlPisj>{!Py7}zq6!$-*G=<mpM2cm&34{)+O$k}&yhmtL!Y2+GrD^rL$Gfn(G
      zb0QjSX_`i<JDiM$AHcq@h!&+K^!>ko&Sk5UP{BqM#yFZ$LM!3LP^JLqkVJ*+HgCQv
      z!B1j<b4PieCDCygm{0VWPxP2aG)x&kz=tH-%$1LDi9}oJ>oPv3NHOO03O*s-1ln<x
      zBZaY6;u=Ry^bo>z+@OyJ`CYY88vISa62ZXJq;W)9>xuFJH@m}9m1uYxpZR+HHK#|1
      z^LvSrFBA6_BECwj*Qm!0>T#18Z?O=rF>SYNbQth;81Qu%@O9Yd>#)<;A?fR|+0$VY
      zzh_(>k}O15hfZ35<>|1lt`0wNET8ekb%+M1ai=?!jD}bPb4*+52lO7s9U{BS_iuUB
      z?=c(q9cG7Izdp0L&n)gUTkkVl<uhC2G21}<uZdlvUGHP}&prJ&I&CE)&usHuc|bA0
      YhkWPYh`GCb91$N!#KR$oTw31y4;WQ43IG5A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/StringReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/StringReferenceCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..106710539b2dd7bd20887fa5c2b051263680a553
      GIT binary patch
      literal 1977
      zcwU`U|5F=96#py<97#{xhE@myO{=y^_;R+zQVCWKg*F(1Ei_7<alBlXaLnZ{bJ-L8
      zi=1)%#Th4YWTtiev451~+q+8|%LPZtu={rR^WNvP@4eesfBpUfz-@e^V1(gb!}c`8
      z(%bEpE)KP$`f*EZxsJixZO7Gig=^Z4r~H7s+&1{S(`@Q?eU}RbafVyx`o0D;jIEir
      zDIPGyvbicleBG(@Bw|RY7{wUF#j<Jhir1`hcTcZboFP?q4Be{gt|`~yW?USaZHD{h
      z|0lY@kaRse++etyEg$LM>zZvkTJZ<Li{1hG6oO6Kd#DS2#}h42P)M#f3&q@X3bAow
      z@Rl$gyR9I_kdF|<dk}4lmVJjL7_O+eigy@Pe!>k;@TzWkbhSJGRZFg_V2WY+T=t41
      zO3jwVo7@(>-q)dEnqkrpZRvI+%vjMgtvYwdF~cw(CMlCd8gsHr*BGvb8V7txhD2Of
      zaRcvBo%L3W%hb+fOSv=Pkf1P*4;bb%wj(kJjz=V>oe2<`e$_HP0aUjoNpVY3WEmEt
      zL=2^po_Q7XSfD!zCpe@cWY4+~b`o<6G=`ObEoq7J>Ds!r;ku4HP~RoomdU!qFg2)i
      z@6dIQWe@vhTV|N()wQ(K_huNW)hNr6jX;MEwf^+*hG0;PUT3o+;rU5F*guI13F^ZK
      zDn7+$45Ma!TPN;J)JIj_F3D59;is~QhYHpi=FUf|*uW+=IH{`d)Q-3zN+f9|y1{c%
      zv}RrFITGz-Y$+&3(+(h2e1S4UqQOP5^=6ra-GYJ&!=*Q?pTw7Vs^AI3jR+b~n3iAn
      z0IXscdkhzjT~qL0PifiVwTb#}=rMH6`jEsAW`KZg;mRlROcZ*Jb{)?(_@*h}$GM?T
      z-;#92b*g&|@-Idfy}UFkw9;s1G>_)H82^Qg5hQ6G^EV5)K%*J}Xnu=khPQE%P?yM#
      z)9SJx=1)2wrTOvfPd>?vj|~1N^79K_O#Fz2Q%vrkBE6q_w~N`?4l=3tJGj|Fu8YN&
      ztMOAT?Wf~ieE2f<v+ub|zq_HLn@G_32v@L$X{z@uw&|0r;2zDZc!D)N!zRA=6)y)`
      zLdDYhh;YoeR&bvpO6z0ti;-WF?zu*H8IiAZc(XB@FB7-C+cDWPUON9PKAG>}^U7ie
      zkN&{+YJ4Fb{|!5@)0Uzzz_%pzJF<05p*A2W-4~SZ3rdHA5=8q9RT7jU(y!<uGP(PH
      H<mZ0_GPndU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d71fd305474e01eb46223a303d15d55e8cbcc980
      GIT binary patch
      literal 3763
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7aea1a69560becf375c79822d617fdd897f5c920
      GIT binary patch
      literal 5835
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d92898641f88dbe26de459331951c64ac364faad
      GIT binary patch
      literal 9303
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/ITransport.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/ITransport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..021cbcbc065469285ccb9162ce987ed9603cc1d3
      GIT binary patch
      literal 456
      zcwT)_%TB{E5L}nGX$v%k^7;eP3l`^`K~w_eP{iG&CUF#OD_&E?r*Yr|_$b5%M6ftu
      z$@1>ZdS<lmAFpo!a1MtN^cb8L+Vi{?&RKyauhtvOu@Tx?(;#2o{*)2)8O$p2BzP@!
      z!L$2H=Ez{28~vaP-$({W$@SNOM^*DH;mR9f)5RTw$;ERnEh?j31Y-vLU(?RB`$Y;$
      zD^#LZFXXe8w4x(ddR&_gvC~50Qd^HJY@~Q(aGWf@qbS1zB8_0iVBRrV;1H8W<}naC
      z2}D9Br8q0&n_OP1n&QO2TRLm!hYTnqv}Zs|8^DnIh`K(#BSI#y{Ri10q+ReXOamq+
      PWDoX3gzlW`9vplEOUiTz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpCommandPacket.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpCommandPacket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..505622a7da180a3f2e4f74720aa7897da8aaeb07
      GIT binary patch
      literal 1601
      zcwU84NmCP15dIz+5(&c+)Tj^;SCW7P#2rLU*n$DALW0NvhGYr`$xNKQ2svtbaJi{J
      z!;1@8<-s4|kFxBZj3HnsFRz!^%lCEnuirm@0vN=7AL<19*UVxpv#Avdc}=dzHnLm!
      zn6x#skhg3Zn<g`1<#L*teW+!g>e2^Apy$6i<zRuv<xDwyjx7-vIP%vc&^(izP0q~E
      zET_h2Cm&7Ge^Q_+VVMP~nKG?y7IhCHC6L|`!!+cmfF~SD3n&RItNY<Ws|poO0xc=S
      z)MtyiRo#B1t#0Z9Z7D0GZKgHbVB2*na@{Bh45a>xe;?;zf%<Sf9!WPq;Dm~kXkZ?c
      zFPDuhJKI%su+!t(ohs_#W$m;IAH4Ka-~sq5+#A+(nbOTQx$clkGMfu3&f*-6fc_Fy
      zW21i>TvK7cR|&^?7Ihh7<loC6qfljdGC6u1bEOH}%Ee1kr)Y0@DW2q(0)r~Th_E)K
      zq7M;bx>^pZTcV!zhMCp3X)y+2&y^NzL(&*K!>JAJxfV05*qA1@2Su4L$~kH4T5gyj
      z`Ny|2dR`i|NFPQ7j{c2KKB)X~%TW~<(c{Nm#C^CYaPqLKDiRo@nQd`@Cc*5Jku(>X
      zP|=GXBAT@bb^GDS2-lodv@`mI!M70nXU+YbiZfJ`ug(L7cSxGT8zk9|BjA<#`6kim
      z=yZMbHj`(Fq##)z{f?H;PDp@WKS^MUilop+npzIRQ5+-51&+G~HmD^x4sn6#7X+1+
      z#jgnN;8e6@hrFR3bnVp*QVn39>MoG|nCwM5!6#0S?s6Ts2W#C#KseeN(&|X3Lv#BM
      zIyT^A<mXpDRa%r&v?|!X3T)b&n;xt1{)W)OWTPf$x;Qs^l%jb)UWekrsXe0{+o=#N
      zM^zYk5p_BU-hB-qT?c`bY69u24W#QJkQbEm@(>`GoDK^59ROS_PnJS5<Qa|jhB{w)
      z#LCbv2CDSSoqPD&oY>c7y`k*4bY<_HPSJ9WswG~*Rd<Qk==K<IJFb()mwE#?$-V`?
      yR)Jv$$BfG<&>P*w?OohqIZkqqUbAy4@9D5VpcNmhC<ZEx1DK@y<=G~kyy-s*LkKGX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpConnection.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f1c37d2fd5988880266687429e11cec5a2cd72c
      GIT binary patch
      literal 5043
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpPacket.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpPacket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17eee56091004a04881e87c8697386610d32e0f5
      GIT binary patch
      literal 2845
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpReplyPacket.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/JdwpReplyPacket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccf01789e06f5fed4d9b92acf98c7aad6b608e6f
      GIT binary patch
      literal 1571
      zcwUWC*-{fh6g{1UgoI&7Ko$iNNrojN?jUMdBvt?+7#}EwAq+5(%%mnAmIsjstMuL9
      z@Wm>DDj)m+KT5sb8HYeg!Amc<?>YCL)A!f!A3p&MVmts3L*Keth^8}IKA+S0Ms#y^
      zCl}?mX6AF2&7&{rI<Mz4d#|+gmd*q4G4x!BC?+$6mUP>;>@jOqXJAQ&s_FPleERkD
      zQetA}#ljQ?;|!H!mYL_8$x~XUpnIt|YRf-jm<AtZ@P;EP2A|*v!Ha4I6;K$e6NahJ
      z6tXM2y`ZgRh`%mjrL{~-vkh@~f<C@s<QWDM7xrADa+sk%d@;gFPDWB8Ff@wBn#j+~
      zBO|FG0k0}3gP(-vw#c%`rO^yQ*InUEqaeGkpaY#`-_lw}TPNi#MtSQxPw3`4-;j33
      zMRvD>8|Y$C=xyTUljxbgNy(oI`oc-^2Od4mP?6o6w5@DxkL$$l4=={zf{-j$5JrTd
      zY^C_*S)|HkhPkTmQWpk8AiMX*HaPLMhZCFHwiY$4=(xtU*#gfMc#_+?mK_#_LKC}b
      zJ;x0iivS)l)c?zl&$=(7<Rb;Q&=bNio&+$$(0m@Nf>Asr-W^dtxj{w>QE^eryJ}Ih
      zE$25xu%uP6)B2<#2CCuAtPBVsI;k5uxbTV3q*Dt5D5q#pMnm#UgG*~AMTTf+w3n&J
      zsQM;TYG@774#bFL618+vib<$LJ?(;^!6BHVOi{2x?LEd7we1kiCp1;^X^w#NM46OS
      z9mRBqN}O8ID(NfGMjd-3eUn2!MR(DPBIw)Inu9}JJInu;_}>v`N%A)q^Id+$;b&sZ
      z9M(Zu1qcY)H<!P<gnk)bE72TqHPa6}@ThCrcQl^`oBuV8Cei_qI*R;i>nX2_mTwbg
      zr$mR})!~OKEBMfhK8Nc)W&3FF_KvE(ZS5buY<Z{_fA(w2cT2AaUyjh<e$r?o!35ZY
      zeWL$BU$Rfu9LTb2k<cyMO=@pTG2LWaxoo}*cj)A$%pu&R`#pN~QO<qY)N@B*uvb08
      c!y`OCtML<oKbL3>y2XNcMsQ(nOk&3V0t7lBssI20
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/SocketTransport.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/SocketTransport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d7f0932b0241ae1493c7323e92e482b8df66060
      GIT binary patch
      literal 2603
      zcwUuNTXPd-7=At)x@o%Q5DMiiXl>K<5UB`A5$qwANZLYEi-=mb$u`-NX2b4=0v=Gn
      z131n&-ZA4ijyGI6BQrMC!=P7Q_@f-3Z*%B22{2x4zSH|Y-}652`+oW7-`^esIE1eh
      zY!K*6=L(TzR<rHA=42v^spWjcv9z3>H!UZUFq4;cXQr}N;1k%gs9n_}SuK~2OwBLq
      zN$xfabUzg*R)rAoO%6{)1%mN4oP=W;x%7}g+o+kd9WCd~YT1JBN2@?f%9*oW8UkDA
      z&Q4FAjZV*8m>V7&n~o+Derys@v{cH{ZJXTI3=+}l+32(%TLqeJ-MXq<0vqQ_6hutU
      zGp5bCGFLej@3^bVT_t`wy`lo?HJ>nYhI3M&DbzE|NJh<+9zYZJsn~_xEf9E4#dhov
      z*c>-<`eb2gUbkkn`K&JEHIrI)R<jJbE^qprj6vE1@&A(r5@|`AxdkI#u!ylERAO3i
      zjBMnzW@jd}{E(y<h+a$TdB>on3PJ*rr(RNpuX+U#MxTOSYEgHAihc}GhqRQcD-^G-
      ziJ_kQEd?*FtDaKU{TQV5#{-Dqu!>i3gsHLfS%bLUq52x>xmdp^g+HdE9sU50<Aj2t
      z3T4+SmUHy9ZmD<;Or1ZkS+>qSf$fd(V-oFk6+vv1oJLfPVoadbG2`a4ZjEX-HE$2~
      z)VumI&Pc9HuhS}Gc#{RAUnyu=yXLBjM69<!-ZJyL<rq4Rwlzp35%c`yX@kfKAS=?)
      zvc?To;xuLyBn0+J!)vA5b&I=HLE~D|F|F$=-hwO-=59=1&<a^faj+cF6P<=6`r9fl
      zfUJW_OV=FTYbLNK6pQtEn#OZT=XdeGg7+vyLjx6axJ0?Mq^v#08uB8QFl1ilRdiry
      z04XdeU>-U=oNGf&OG@jas);8BL&YL43#jFI%8_(6sEb%Vp#ZwEBs)JRu+!@@ld;TY
      z+2CwL1x(*I_slROv8ifzv3YEJfiK20bQjnlU$%}XC@YVNvg?U)@*cyaRNLbXNbuBe
      zX9`ZrTxPp}fR7Y>$j7TDQWYO#H`_9qHEmtNCzXKK2P?3N6&1_n3l25YwI!0Sq*30w
      zb}%Hbx})M#+~Q?)nkqORubmz*?}_X7rHaq+Ijc8e7ObQ`Zpe$<YhK6!>5c;|m?nN3
      zp)g4b{G7M&uWtha*bUXQZsU5hXT60V``?}ORdGi?>+Z<<<JioPPd+{NaCU<Gf@2{3
      z2z$d#E7<?gwLQS!P2>Qagb(M4ei8?{QcKo&9xred=){Y(?&93XRkw@z2mO2;<GsPQ
      zB6|KpWTNkH9PA4oD&pnI{>K}CKzq2qX>bKc!~MR&RlK@_Q@z10YqsruMGOa{MZ9qz
      z{;+Qys{yp~_Yyg1WSC@hDc-t3MrrgRiz8U#Q)*%yd7OdevJRK{lv&H!8GcL!MleB@
      zq(&W>#FVT0S*lYXlh0LSB>W5Z-^bonoQwBze#%$G`H3+3UR;6p0G+Ey#>4XDs5~tq
      z<8HUbe@FL)-bcv(`OsDHFpiRADWWbncQ={mTa4{Cx!mFYU21!eR$t>7zQHiQbt5^<
      znjnjEB(1c)!Wh{joZE1S*vT3w;Hvy%A?`A+aVBuRn(=XW%}kP?R>X}5@SQJlQmDtx
      zb-DkJJKq!eM^En6YVO$t9-T}VeXxw~FQMQ5xth0TcmF33lD~??zIYbW7qv*gHblDX
      HTHX5(F1=!U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportException.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3064962dbb7e5d8260b4dc2b19082f76fe1188a2
      GIT binary patch
      literal 545
      zcwUu{%T59@6o&sI&gh7OAmG-Wm&ArO1{X#X&BP6aeHogeWavyfMSLw+CN6vcAIf+-
      zUL&}$i_>%Y&)2^%uTReaI%xYSG4NQ=d6bAe&xD=u>3ETGYlP0T)L1_F%r5UEnOT);
      zA7zHdRNM)k2p#jU0fTp@w6Z;h=3)3P=v$+7+&vmHlrPe;46ugH3fAE<R70iZ?R++p
      zW*|n1WT=N}B$A;p%GDpuvYn`$p%eboYnQ>F$vhWvL0<C2u>aHPU}DmRdy&jKmv!f|
      z#=tCnX{C-K=%;fN$t&f2wwEoOx-}et5zn0xW%PB5K2<%cOLTk3Cy&^8DCPmhpy>8U
      pd5$g0TJI`Uuw76*?4U{v$EvMj?fzz6lk(;dRs(wlt6A){-T;A-dZGXT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fae00826705f29738b99e52d0e921915fbcc1b5f
      GIT binary patch
      literal 638
      zcwVJZ%TB^T6g>mQO06I$zD-yd1NdlMi(o=RVuHGWkhmPm1WL-3w1Y<e$^|iT;RpCp
      z#@qS~tc;!X^v->qdv0Ifo?if*Voyhm;k+lumhJK&7;)9N2HpFSrF<@fk>@L`^<~w$
      ztvvr>|J!jTRNw3B&=^(*{Ek~Lmp$vIGZ407&?FxUhHT>})KtDBduI#@Vw+4DGQWbg
      zZ~%%elpX1)3d2ERzH~0X*e0f$*A)ihST>PFiXmPowv(W#OeC-nT3Hi178%kFM~dt5
      zup|5y@3_%?p3U7h_nq+m>C{x;2^gx4e{F`u7)@{N+oJA-U30SqC!rb!^HNITM|wn{
      zV~64RPrM{+h8cO%9H(C#qnB2I@Sz0|GCD~ZgiCb0rHn8yU3!99I-HVmG)3kyDqSVa
      uLL)2_R;a9s6fUqvp8Q7{a#)X=rz08`Ss_u3&PLQ_6I=8(BI0fA!gvQ12%e4r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportFactory.class b/libjava/classpath/lib/gnu/classpath/jdwp/transport/TransportFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79dc3513adee3ee6180290af9c4056b3db111cc8
      GIT binary patch
      literal 2138
      zcwVJdYf~Fl7=BIyYzT{?;nr5Hkz%=~5xkd+1qzZj1SDx%ii*o-NtUL&>1HF^8OJaF
      z2|xPDuil1?GM0XDbjBa0K4+7LHe@<5e%Nz)&-*^-J<oa0yMO=l+hYKexUaw`5Y1WT
      zm|oCIrK0BMV|&^CV$5|kt5mcdH<o@nTGn*ecD_{5BG9#`eXhj{nw5*K?d%!4E6}~2
      z-k49O*4H-D+v^)^>q{HyO@VOY*fZrirj?r(=v=g|lB-#6Mk|z!0NMrG>l+H3+pbSm
      z4L5IRO9I!o5@*VCDE&MHcMZ(w1=BL!IRXF3XhxuA(astQx&&tb7j^()9w6&(mu&sM
      z;VS46n0O&#%5$v41Q9}?ihi6IXq&0!cxB`yb<bE9CHC}arX2zoRRqx?5K5Sqkt{#h
      zF`TrvQ!pg`wyqU2nq$hjXAHuROLDVLGT`P-k{df4x8$<JGWO%%9qQa=u9j-qH4Cv7
      zt(0HYiqoSn294KI2^U=YLN|)8Nm(d(oe7;TpL$df!x&XCLhYPLM8z1!dF467Z6LL(
      zTqb(Lq#*j7#;f!P5EJOL>_|P8NU3P(=B{aEgBZf3WOYiQx5>@PiwfZ_6>p=Byj$7>
      zUc?06Rq-C)=dBwL%UYq-5c@R2dop%f#SCTzTFJ|!M?C2XF$D1e<`rD05E_<LyoLpV
      zo{^?!y&*7s%Dd{oB9>Krh!rYcx2;_>S9Yj?zNQMuNLFr2R&EKLfA(bQykqZ6HPT7J
      zsz84uV+&=okTskD)~L2)!Uuy$U{W?4DpE+3I;~hVtSrk|Guls>YPiz@umW@pMl9Qn
      z?Am23D>3h?*u*`S3fHcBH*!{kRq!zj-m$qZL`u2n*hRx}O@p`D-GmhZVe*Ufqae@n
      zN_;Mvo;>ASt*0b6WL$5eNxJgsrR=h!8_T9F7rl*7{i+NSP~(<mIG&W`u|f?6km}+C
      z;~&L`i)cj~XNorqur9GOaqQ<<MJHEY;%vcN2l`rmM`+W3$R>O)++9I$>StW|(TjbV
      zZ5S<Vmx#E`@eTB13IpCMh}2)li?J8%TgNJR<v6^}Ggd>?ssmm{gnc_x9;DZ0j$61g
      zBw@rb*X4#^i^SNU=o||N4shiOCKBU+q4N+!o8hY!ym928{T|nT!i9mUU-0Jm0p9r*
      zBem(Z1I#_aVlq1RE0%nS{*a6wC1qr^g80!lJ~2SY$KU<?hqN6cu^CQQuuhDR!nfHR
      z;EvpYiA^Dnn@mggtJta?XaQYpZ*!L6;qGvD7d@2hC3;-OC-mOIJanue%jjL)LY~ok
      zNTNXREv`QF$e3d^kI9HnJ+i)%Wr;LIxWhI+qh+2HY4rCK!$-s{M@iZYqWWpcd2xA|
      M?1PL9@!Lc2KfG-<*#H0l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/JdwpString.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/JdwpString.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d37bc871685135cfce41807a1a7a894e82545d5b
      GIT binary patch
      literal 1340
      zcwUWD+fvg|6kVqj(uQcUm1|WlBDSR^q9`bMD-^9$U=*k_=tJ5b+AtyMq>11k_&NGg
      zX2ijFKgw~RwB<6C(LCf__TFo+waz)e|NJ-xFpaDPAH!JLbk(Av)oNAEsi?c9{i^CZ
      zx}m<I*}7xvW?6!tp=Ve7tf_`(mesYwE-yL^T?@LYJI@$8V(~nKf6*#&865~J=tLJo
      zD5slz)!i#_dqXQ2oFSaEikgwvY+bCIn|`OF*BHig|7J4J(7kW#4sR?O)L72rrCaKf
      z=4flKQ*|8*a&2!ucgna~Em+E#gCegwx@FcRgc%~O`s~_CB!KG-otqoWsW};a7?99^
      z&VUA-f<X*11j^h=e{ncT=!>=Kxt*4A1GgmHWEi-Ntb$>T5SAw{Ym&MCST>#)m17ES
      zW1RSSF&bmrX(7aCQOBXn<<t4pnl6Pe(xP4zZSwYQr^y(qDz$u#H<g%#ERxdh&JMTd
      z;}?M>Ofk&1IXd2Q(>p)X#BEbEGPZ5mCq~P-hx-zyTgPy|oq`9LAsJ+_X9-=itf+XT
      zU>0+<rU1jB@S`nTaduC{T_m;rl-2G+$VlO-$f0XIaQ65%Dz>#RE+{2QctQ8G<@Bam
      zbE{R$c6cdc7OfHiod_Z?3k8PWwtPs6!OgN$VPILx<Od8Bx&MKsQhD8S?IK^+#ghr0
      zK8Yz&k5P~v5MKw)==ITGqLoS`qp>q_h`@K6_#o52%iEkmH~p1H0*zN_4B{$6l+{CX
      zKSi#2FrR2gz(*#-kve);63OE_qKRZ3qo<%@Dge?{ut-o#w9a@9MjEBKg9(pe1a}eh
      z_$i1ZLDfM_B6+51%4_<S<^pj%QHQz^{TWyh4IjQgLf=+0967|}Z>vX0ZKV#e@QbQK
      z;yvPdlg$u`1m2RccZ9!A(LC*aKolQ6R*42SUJ_#=f0$S=5lWCU8myu;&tTbe^p&Ub
      F^<Mz)I?w<B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/LineTable.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/LineTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d5f61ee0b80a9408168e53807673d9653291187
      GIT binary patch
      literal 1044
      zcwU84+fEZv6kVscfjV3)A`BFmib`9gBX}2uD4<Sl<N;G9H6}wlDMO|+&CIFr0se%E
      ziSfy26AOtZ_1)j_Ka_n=0TZI}Vb0$B?8{nvo%!+WYX`tQ?kb2dWa?hasJd1dHZ8tw
      z?9_IfMvFVHQF1){xwYlm3Sta{JJuV^a4oNHtZ(huRn8C(xfPIQMTV&D)fg0)dY-i!
      z43Ub-kPzXDDIzLK+;cpKFER9Hi^YmrDdx%yu@%2&ClSS<3KeH*P&QXqFvKwW2k=1{
      z+5vZbZ!HM?pa;VY3svgV9j|8Z>6Ta11(NQy8e4V{>Rhl6b<gK|Xf<rzwY@suP9lX7
      zfilW4oGqQ+XE9gq1;dz%I1<83t5CY$q>3K&3Qt#JQxQg=~;lM*qcN`BRH%U0ls
      z_~<gmx1Eq-y7XU-7fH_Dz~R(1am3B>ja7?V>n+}F@eLl>R%1~}mR#Gb+D#!xs36BM
      zbX;w&pJbAl#hijG$1?t9mWl!ldJKtL^1V9I&C;8Q)_D~RxW>>UlcvW-&J^GgpY|F1
      zH$nOv9Qx?ZlN)|3sM?PlAw>Vlq6N{43~3pqpD;#mLUNOr5@JhBQcFuhlZ{ZNiat8~
      zDSA&`3fV&b00UaQqa`{Y(Dx0g&D6OAod2GmYD3Fs+8EDk@ir#%TB41q&vH(N&I>dh
      zcu2UbG;<9jc#JfjP|m~*ikQPwssXMOD?-6EE&|dMESdBKeS({7#MD)N_bnUH4W
      zW(--$`5je@`sLaD7ijy)3p;*fCp!DM8omDsV<MVL8^`zQ0wvx?SXvf+{QdLv5@kAH
      sU=S~%VH1<65Zo(zwoNSIwOm5)!k#R#Ol#dBTH|zc6St(ax8>A3hphS5y#N3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/Location.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/Location.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..593418c29b7d32489ac53434dd94f96154841382
      GIT binary patch
      literal 2633
      zcwUWFT~`}L7=9)M7Sg2%rP9*U0@gMpK(uPB4WjaCXacp+Q2gE`OV~7QV%UY^XVp7z
      zyz$CE;Fag-IW}<YIqH=c{wR;nOhO>Zf+dHU*>~QL=Y8IHX8!s2_dfu<h;KFc1O~IV
      z8%gJlt*xTrY(#RIonpjwtb8P1NE?n-ur>Gvp2->8MkH_8*~n5VXQmy2woTL7C}ac%
      z;vO!NiG<pY3ba~w#(XFs7HBkK*_JaYFcdt|YGEWP;GZsJ%m7-@siOm@1zLh5$qo>W
      zj#jkERgVr0?E+nK%QhF?&6HVMF;aPxI}(3BX_PGaT^0JB4Qoqa*eiBj(u9337*|Q#
      zRv|LA>zGsS`np+)N??K6hiS7Y^|mzh3!G7k)Qc_Eb~IcR2zkUY4>TeR{H*B*a0!DN
      zE+2TS536Gc!z3VUI*Nv=0IuMwhUWz?dGZ*`Bn;cgO3P~q5;84k%yq-f)4_0X#GCz^
      zRaE*9=?G(#fJ&y3xoZ-JX{XJV-J%&|*(Z<T$IG*oi8R<pHH>@nL)~d9X)p+23@_+x
      z+v@@vlaW$FV<v~Ksq6^-W!%v4iok^vT1>}Hyvl}@xyf{9gH4W}KEGPu$|~N{5yeCW
      zWxQZ#Rl(T%zEn!!tfx~dD~}S$=rII(ks?pm11T5iZi3Ifos#8{rGaX03_4>t#**t4
      zU1!;0>YMCm$=95YdC6?IY7+)8S$0;rk&O`3v4Gn=Q`~LpgImqSJ#7!jnkIBCVn*PU
      z!n$H)vt~vjx})PADc6)-)_)oIG_3Go9+!)bBvu7FltqPke{ex2xQsO&@8Z3KO-a4n
      zjLFmNE0Dha;~8T8tjs2F%Ktkv^q4L=7VjtWG`m@Jb`P!-fh*oeuKv;q@J7qXyDmVW
      z^pU9Eu$PZJueCe2o!YU=HQVkK2;7p{_tu?`ij)WMfk0oQc*?c%8M7prCyyJj0w~}U
      z4aK^<zoM(71X8AL8+q4US{Jx_v;`{fL)0U306Dlay=|U@VDtV+vK{iB7?+Bl>i7(w
      z^MD$~qG^+aF)xcIQ8f=0>r3h4D}jq_f)f>4+`w|dEv3ylOFk2w2NfBYR=j%I0(>%k
      z{PEpUE516MHSVxl98d9Ujaq)rU7<bbq3~la1|OsQS7mU9V~^UN;y6RIS)9fkdMO!H
      z?z?an&jM;C!w9vKfqW`VALnzFwQ)X=3o7LI)sSHsGF-;M>OP+1Jn|RD5~F2A7DHp<
      zeY_;GQ2bgQoMDy29XeR1`+JnF5KfZLSGji|A!a1ug(@Lx@WOZ<lZ4buNN?ax1*ZpZ
      zF|ig(r<q&@sGncw70f@YFy}+Rq3dsq6J%mkuFIG$<86Xn93#BA6meb(bJ1PK-Jj4G
      z_Lp%#+`*5-;V^|8=;UaUr7Q#G2+(544fG?A%h=@GXX85C^(MA30f!)6a=vpUt@&D7
      z^LQU0s8U|ThxmvQ`kBVZOt6LY7)Vvi9Ab6kU*HMEn&{X=`j;A>O4S}I|33Z;Vq34;
      zML5gdR+(j^$#=>`uP9U@2_`jBGxpVtyMJyl{=w6jhq!8dTNMTvdV<_qh4%bD>^(R=
      aJ7w%v$o`^?M~$d{JmPq$=J;!+_04~Jmve#u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/MethodResult.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/MethodResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71f7f1f3781c51cb3dd881e08335bc0272e87a99
      GIT binary patch
      literal 878
      zcwUW>YcB&q6o%i?8?`8^sCyz(B$ls8Nn8?ABuKwcx0808wcG5@;%AW%i4T5&A0^I=
      zhT5(~Hkr%W^PKlRXWl<v-vDf3F@rva<%S!YmcxUf&1KVU)$iJ7C~e0)6SC>mFGUbK
      zGJ_;TuElS;>2SAUUesE`k_<z>kfHC2dX+n&U>K`Jb9NX;WYhQV+@pI-w59F23=>^x
      z-(kv3@7k^{%M6LqYLy{*;MGMI2@Dw+K$a?1Y*(CzH#Om3^O~atJ&QY4?%V3#2_|LJ
      z4j5J{|7ne6a}6Oce>ajZt@gGu0J3f%g)}ii4>M8fMN}JORQ@_Tg2`V3KSNL&GX^r~
      zCoqTsr%JJ$63SkAp>K&}TMc2fyU7iOV2Nrc=;{0DqbBr;glJFEADS?&gLE@#XDYh(
      z0^?Dq4bz&|!A*?NYJ4Rihf&(eD#m-@C*&U@@OCU*z+?w5Yj2djw*HL#k91Z?_lVio
      u6$)QjoeJud(h4*lOve~0MvWZC8kxmhoRMPG$O$p0e;82%Rl@U{S@;B3d#VEf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9525687d3ca255c46f8451470cb6de77e66b729
      GIT binary patch
      literal 2661
      zcwU87TWl0n82(Oow|ik)mexYKRJjOlw@ViRi&8A~LbceIN=s`C3e)X$cj|U#nVqGS
      zyW9j3G-`~JXe1`Ui-{Ohh$JMwnCO#<zWL&VZ@$U9_??+eyGysR&F-1`{@eFo&cDC>
      z`@=&3&*QouWdduGMlPO6tJ!QuwNvqlv8hZvXY1*Bzn(NyJ7;Nrcm=`}>QObGR*htQ
      z@92b<um#F@=!R~$2zVm(g96@mb4&}tgP;N*$^{m8>xR~wn;g}w0d+L32~>5P2{k>a
      zTDpACgI+tOX9d=E|1XhdftrLlnaSB&yVRQ%2&|8E&k=Nl&GiLHzisJ8ve}O%0!yES
      z+j8UMniWDA!4L$VQc#1Xq<=^q8yheSg2W>8T)MW+^Memcf3*shV}(G#HeGdkkCfmg
      zHBxR)0!!vO6DZ4$3e+wXeXcB>x|SX*V7#%Av89ct*|@l)RH{57ti`i_tP@zafR%#v
      z*dX9fYWBc%h5@RJ(sAj^B1RNcVzGd4T$%|iUyuhIk|*Dz*(tM-ePb#1u2yOKjo9Qz
      zoRwP0OySs*e+BvP(-_2%SxCDr3bx_}7N3$n)lw%ln^Q|+)@j*+l1Xk;@FHHK(V=_>
      z1>CpIAISMmN{&MLq(fC;#lqPK@Uno2$Qj!yZ`&@8!2IFl6b8^n#d@jOp<p*U>0ixc
      zG-IsfIG12FJ7XbhwqktA$RgznR5d>{2G#lL3ZVyk{pjU&dO}4(A6^$&q-XmqeNwme
      zqnfixMuO<aem@2TD(6fFO`Xjf#47HKf#JU0GNCtQLc;<pBkc>)4&s1xc92b)(`Ylz
      zw5A$Cyd`CaiUPGw+gcE+6!6Mb7m!Xd;{>N7h%qVEic;!NnU)<yQc6-q!MY4vOG>K=
      zDSNxfsxxh>w3?I>qiDx=m^m)TATm;Pq=;d+X(VM?SwUMa7kL?bIj|ud#W6poiu}06
      zP%w?-?0i}?l6J}|bC;~(Nd>2Hn%*@d%c*TwGipM&r&;4jm)u}IIIG|t*(Sf9ZM7_Q
      zS_V0<-~ukvU4kWPwO#FYcALq04Kk67zQkaA7@k@QeyAPlH*;2k8%zEMRL<U<MrnvO
      zyj>p1zj8kLoNqth;yeXUU-TXVcll6;P+kexf<^pRTm_yLJcDu#<&Ar(UB<KO0m8%g
      z$gv@MAJq*rSoZC#r%ESm3j)|l`(2L5rLGlLVinH-_3H36eFpIiR_A?h&JznnXRziz
      zo}2UNa_cGJ7C=3s4z~ux^7bv%mNJF*8~NFMA5BlP8ip4mv>q<-rC>Xnd4}XB%KQ3^
      z+FqVpWu8?#?xCfp;V0C3T5h8v)=)>+)fYUXuHoU$$B$xFtutsJipfgEiYl>|k$}T|
      zRvABmYL5L1p6f79_DQxP<?x8QvG9sh9r^Ssy2vC%iL6r@=d2og@ETc#<S(nsQv60q
      zIrSg00o|YDM#Fd5cMBEK@Zb!FhHm3Bfe{B7ae*lUZ#qDm3yc#u>;Ua9u%AG}0s38_
      zgTS~0bh*G50=ffqy1-fjX$R<Vfh7dYTL?wNdn9m|?5rMECf5?Jo52abp1C2V-BRjl
      z^4`YkSdDiE=bC&qzHsAL@Q33~zG#h4$}f0DjkoUR<3DH3njNRJMShQE222*@2#ai?
      z7FiCJ%>l__6R+BKOraIWSiEWM!*LwM3AW%QH^wPyo#y`;T*O&?z+3t$&fyE3$CtQ-
      zukkMK;4;3!6@1Sq4{#Mf;u?O&b^J>0-|->-AodqN!r%B9|KJm+nJsQhoW{X<y2Q2$
      j`s<^|%Vd3rT&_6He25KBTfOvJ#TZw4=>*<)a=Z2)D&T$i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/Value.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/Value.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20293c1274600eb4ac71d72c30b649e82fa0dc12
      GIT binary patch
      literal 4871
      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
      Ll`558)tHX~5GeH8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/VariableTable.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/VariableTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c653c3d6d36a547439a56452a1087a70d814727
      GIT binary patch
      literal 1255
      zcwUWD+fvg|6kVrH8z@n*2vP`FMcN>ZfESdDO1(@v9T>S(XZn<un5GkwPMeA!Ab;SS
      zAK<ey791aV^2v`<_c=irMsR#Nd!5~!wf9<k_s7p~M*wD#lM!K<w7r&Iam{A4ZU$Ao
      zwzF5)TY=;1MYG|UW!Ku`hYX3Kr)Iu2b=UN4eZ5?>Dgi^>Y}h%E0LwGPnyw!-Dd{?%
      zl`|M3CCW-X%P}Qn*YfP3+T>ZsrqEj|oRV$^4ac(=iO4f|El#xLcuugwFq<}vQvRH8
      z&r2C4BU7XbIe*7WAd0IBdeFxZO=pUoV7R6rhB!wl1#*an6m+1IqhSTzxXjV0f=eM9
      zSD>Jaqw5M1=wj$Dki@mtZrN%Ge;ASlzhb&)OrsuxszW-a3jbv?DQ9F-Y_H)2^msTO
      zigSGZsTr8-t)SitNTg-%E^>j1XYVRjJ#c)lDPxAb{PVT3e)3BKI%Z|uW*E4LOTirG
      z89GJPg74YXb~>LaCU6(`W!z(!xTyO)q0n^&3wXfLB}l>)gZ>Wzf6t9q)Ul{w3Cj!}
      zg2~{kC8fnYBR)AfcrhcH=a4CzeydTjo;zYDXY9@Lrx>RxMrr?LB>5T;O7bNTkye0W
      zgpXK6<v7wBh}eA`>92q*bSCL`L~I=tv)UngwW0ks`Zbl#0d1y@K`kY<p=zmE8zWjO
      z-o}`glG~X0EO>6vc~jI}gM^n<cY~NW(T6PzVVim_VhXP?gV&g(uQtL;^kxbWD26ok
      z!I4ZTA`n**6^QpM3B(n|1mc?F0&$fxz0N?Rm(!G!=ypq}IwZ_Fwx_i(=s!S~#{r7b
      z<xg1PmqArOPOIwNSKQ%f<OGeW*#kV}XhNX(5vJ~QiVq)ueLoeiQ4>I!TCR}r9TNTq
      qqp+!^D(2x}88y71{1#kcz*yMSi2>VK!6Pw<RXi33Fgy|LtG@xVI0H5S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/Core.class b/libjava/classpath/lib/gnu/gcj/Core.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a26255f175eaa62817cd1f7900e3f0c0e22f7ec
      GIT binary patch
      literal 429
      zcwS{t%TB{E5S(q(hKA55?;D)j9*7XfA}$4_N)eSP>fKFE>MA&u>j1yS35f$Az(*lA
      z<tgEVXJ<USJM!E6%PW9m?7Jus{8(o}9L<A%YNQK?P@ju?5hOy#!EiE{ktGxt)({%u
      zxA$5+oC_;@gmNNvY-a=-Fo}#5RuT@|;qQ=<HA=_5PWX2dw|W<kkz81n>ZOYfLTlBc
      z(qJ(Bc_BErN>6$8snW`xag=sv%xXWKN)JV}eAG}U)Iz1@RdzR#=0;2s&d?0gNF-xn
      zRL;Ld$IjG}Q2m!>lx8N9mnt_^a`7lng9GqJ{;dLI31zMbF4h=}R6zwE^L1tpqt8l}
      rmHcofRvKKLFcM>_`;6w(YSbp*9wV^DjXQh;{-+7s%=0C?E9c$^&q7x^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/RawData.class b/libjava/classpath/lib/gnu/gcj/RawData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a00b1c488d496bd6dc5fc0098e169bd8590819ec
      GIT binary patch
      literal 262
      zcwSvj!ES<35S&E>rBtb3p&oqcxu%yIPoySo<9)#wd;}q(V85%UCOz~6{3z3X=*d0o
      z>`rEP=5+r31MrB*heH@=Wvj9@S8x2a;)Z>=ged1DtAfi+ZIWE44Z&NQ(lpP6-gLGl
      zxG&XC2k2oKq7P60#HQ4*?IF?i2PcIlOyVl#V#~F$`;~N?z4;_O#5cB2gy6ku>r}6e
      x)rD7nVUtK$@r5mdWBmku*_0p&_UAtse9Pb<knVM4ggfcsMId<JosT-z_#e+7GnoJY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/RawDataManaged.class b/libjava/classpath/lib/gnu/gcj/RawDataManaged.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e5b982ce6ca562de653674f4c5adc6a445d0fa7
      GIT binary patch
      literal 283
      zcwTK!!A`<J5Pefhixq`HLi_~f;KsAYi-c2w1PJ$O*_3VSHmR+CmnRbset;ikm@QsR
      zoWpzbX5M6GzJETy0Ni01!Xr#F+o&wf)tcXCT=Rl0XL=vPCk%6bWmT}v)GEn!S`&f?
      zV@>@?=v?3I2>w&K*AY56>!XW+Fo=!S%jP-J)s~Y&6Gm~Fa<SveIQ?7n>w|eAT*d!y
      zzb8bSvZ+!%H_kr(+rD*o$p>-;To63BT{sk_gh{wN{Xp+s5)YAJ&=w~+7wn%5!WZrM
      IW$PLo0b5)<y8r+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/BytesToCharsetAdaptor.class b/libjava/classpath/lib/gnu/gcj/convert/BytesToCharsetAdaptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7efd0fe778bc436972e2e191d40437577069fe26
      GIT binary patch
      literal 2167
      zcwUWFU0V}J6n=*ULei-y0u=;AP{~JYs<joxek1`Q8c_L)l76`CF3Hl(Y}jm|{FMHH
      z-u0sGQzB0<dg+CKqW`2%&&(zvk0jNL$;{52dCz;^bLQmDzkmG=;1-TT=wY~C6t!eg
      z-%IL_I51r=nLhH&>V}gkX>Qf@QifLX95;j@!(<oJO=0PdVKRgaQ!ZSFtGPYxKuZeC
      zN$NgOvH`f@o6IxxS|VNBWf(rSm4LLjtIqo#Si<tYVwi|_MVpUpF$6P&7{P}a2;m&V
      zrEbO?=W&4{BFw{uCefK_?4492V7SN;#t_4`?p&JYlF~rV66R{Hykoi>+Kx@y4CWkN
      zv$r(YlHZNZpjWc0470iSN&;!pqm%hqcR3;mU|dq2U<gEGTVbMpg`*dJVO+&b2-6JH
      zXKy=(C5nr#>$oZ1vmC*34c953Yl}~FsmvmU-NEJCm&o}nVj)Dy<vTRuh$F#p-VrOB
      zz3aGT)5wZS&0|>Vr0*F|?~}7xe8O>4x*2xFrYLKbiWFViX}TwKAE0ujAd9BAs+B1l
      zL(N*SHBn5idoFoZK%a5k!RKV!aK<qHKV>s7OYttp9BxsD1wlt}9}hyH{LRQjpSidw
      zbQR*VX;-8;UxKQBfOtKzjf^H7dS9B&a3gw_UI)hH)HOAO=tc{fY&MpaMUdtQp+ABJ
      zJPd&nda=Ws<5<EnLw`xDrd(G$QYEx4?>ypoj2t~#&EF43V}-PYUFCR!r*y{>I|_qJ
      zw2+op);QL&L8gbUR$&;87Se5!wLNqRv&E6ebJY?m4plf)oVPg&a+knuQxv_D#Ql!r
      zd;CDAwpF$~nY3&>u8%1VHI5x=*iVR-teOZ6?1o^r2QO3B41OI&hReQYxegYp6fBNC
      z{7B8oZ*>fhqaCB_2(aC$Xk@vrnbn%@DcWU8TPW$Xl5v?K?9{wdbu;9gHk3}ix>FOL
      zzwvf2ZSzZ6FdRW-BkNAh)y;>NY(8Tho6JoKK)r$((7!|v24(Y5E2<xwd+8($*%CjX
      zuN3X~&>W5@>fo<1_`5P4rr(G<h|{G6MrbwS8{#8e0@P|0V+14Nh8l2218yq*3YX)F
      zV@$^X#N;2Cs^dn!wfs1L>Scro0k;vP7aGQ0LYl)B+-vhV)$%xnB!wb9eoB9TzQ;NB
      z4V;tcb=<Dwixb@Yt%cvGPBRLR`<4wnhOhBW1LYs`FL~?}O6oOHr>Tz2&$!^PvNWyy
      zLQdp-f@jA_$padjG+w-{<J)|5qmGyP#Q4Ms^!q_cO74#a19g=0aUab-#^z|S4rko>
      zwMBGVWoMa!&ywhmFi$Ub2`ltGSLwk#gGKc%gSg`pZHcmv3Js=KE}kpN_EDu(fbLGi
      gLydxCIKV_B*n|q6#%UIOm0q-|#9AsHDyyIV1McGn+yDRo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/BytesToUnicode.class b/libjava/classpath/lib/gnu/gcj/convert/BytesToUnicode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc97d8454fa2a5e0033220f3b101b53f423201fa
      GIT binary patch
      literal 3258
      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
      Lae>bi!sq`0hBpec
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/CharsetToBytesAdaptor.class b/libjava/classpath/lib/gnu/gcj/convert/CharsetToBytesAdaptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf73dc114e67de35e998fc9df575ffb243715185
      GIT binary patch
      literal 3025
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Convert.class b/libjava/classpath/lib/gnu/gcj/convert/Convert.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..baff2de415fec3026514a8f7180e68b79a560fae
      GIT binary patch
      literal 5087
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/IOConverter.class b/libjava/classpath/lib/gnu/gcj/convert/IOConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d283842bba1fa9dbdba13495474c34ca8c82135c
      GIT binary patch
      literal 2119
      zcwT)~U2qds6#g##$r3^fDIf~vPleK&rlD<`&;pjoPasmXKS=#qH=Av`X|jpgO<Pa|
      z#eZgebjC*=XYkD*X28K2#}~&LpM3Y-ci$by@9rkO{OQZy@1A?kx#xW6+_S&^bN43z
      z3ET)_oxqNw(})+%QrxUM%U0csXQwg&vg#qU3v4PG%SOCxIK}u>zGRu6K>MQME(&bT
      z`9}@UF2_$(;u-m}H7?L?OJ92al4t4eicu2~^8(t0S+*V9J1WrDcW{ngGSz|=!bX9f
      zNB9XNg6;@5AuP~2;Tx`pKs165bZXclu)%h#v9jUWPAs8e8`V;&(X^hBmfItE98d73
      zT7&VX`f?8@G5)aR;KL#fI|bJBp1`w)UCg85EyNPZvZY~<z{XjJ*%qvv?RiqPZ%rZ3
      z-BSYLrowT%s9`^|=4nbpAJOd0Nuqv6nH))Kct)UOaypaEY8YfPR>RawH4Q_=CuTEe
      zveOz4QH63T9uep=9M{%YhX+SuiFA^#k`KsI^qQiH;hMIs;V_|D8%~aCnDAjLk=DR^
      zgiN=o@+^yCy1b&cR9L8ZC8K6Imdi|zlW)@{6F%W&;yI>fy6&RA;FWAw!$~GI?FV@}
      z2tFpGJR=aZRz1rpSOvY|*sHqaLa!O-5(Nv@dd2YMqN|&7G`I5=Kg@Fh_TxOy3uVP+
      zDP+N4Z0_xPEHN~sVTQ~%_e^^(s2homH5lDX>|<_q?g#Dq^5H}}O&9Zl3%%v?71_IM
      zdn%<E!)pTT$~=6Xv9yxU^R9}kFBwjWq!oCVPlWC>u|NZP=b~%{H`ZjfM8;)fuuSEk
      zM-s`H>=9>eC!1cN7Qq{+%gFp!Bs<@KG4rzhy$C|k7-r6PtaFV@-m1^Y*TRR9tC~i6
      z&ZygRKNCEmHgvNr-lFXa^ydEOrSsKBOv9<NSB<iLnf~_Q`(~!Sy6qJ2dm&9x7*}vL
      zgtzaT6Tw*o*YFP8#;fM4D^@*YxOBUv?~zU-xE{fKc%PXTE$@Nb|NDJ1Imf8@*+1lz
      zQ^zEW)73`Zv`*TRqfPf@JSYv?_ma~#PQ!Hw%eg}26U?=p-}R6M*}&t1uLbe-kBD5n
      zgRWcH{5>{Dd!k!!<FN}8?ohBdy1NDUMxSiKr=tg2@L+VH1!K{83nmmCRtlpEjwzT{
      za9mw{L`jb+XOl`H6Ft#_r<6ig!L!Q4^U7>W!50*qR=TqaUQqC&(tTOMR~6J1G*o1!
      zf|hbtRM1vTE-8L10qZ}YdJFD%eoY(veu+MQdsxX{Y{f3@!EOxjo5Vg$;sA2!#|29A
      zh@*lbtn$xz9f$BKhVeN@@D)b!4YluL48I_S-;u^2IE+6rj=wO0zi~u_I7Fj3CVDwP
      z`!FenIWCVPBeI;5GdLl1PR9~Xi3VrmHDtvN&c)AgR(!z$cay)kWj|WBm;BuY9mi<c
      zz+5}}?_fox)9DKXlSrVzkT20TEXM}-J8>CrHl3WOm2|wF1ohv>TetD<&$yBs_!Xi4
      mn`j^ScFk|t*PBBZ$&kLc1$OuVA9C&D`A0-Dq>p`@PyPi29o;?v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_8859_1.class b/libjava/classpath/lib/gnu/gcj/convert/Input_8859_1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8da067f53d167cbdeadd2786afb7fcceae7cf698
      GIT binary patch
      literal 821
      zcwT){O-~b16g{ug=}fVTMTWMt1x3XcqYZvk6k-fDBsC2z_}E}VrtL61Qr?hZhQy7l
      z{sPx7P29N9L}TK@AK)+X54aW2OdBLDn8m&K-FMGD=iYh0{{Hw0U>+3%34xNU!kXLJ
      zuXQ|i?D#>gsSd+nXJO&-)17$(Nr9>J70Yh|=V-&*RI=lB9f8!6R5ExjpjE0{0?7um
      zBhZk}Ku1bov?Z0Z8XmMAf5UF~h!|^m9lN(>`!YHYlgVID9+9qfk)lNb!*zmH`+$h?
      zO0~6bAKSH_t=!sr;7jE$n#fYppqfp6$L<nS*={tO)n*z3Rt6Ku3FuNCdL$HawvfRj
      ziUOuo?QnP3@dXmw%h63agQ=*VH$6wW!Ja_c3xoev4e~J&H`6;_r~(ptzI5Y^Ar&Rc
      z9viS|7>=xaq2F;<WHfm8?11;9fpCMo8lq2Q#4XYqJk{t0y*~FH<`)JDjL@dyWEPib
      zGlK&9%k%<QFggU^8-lg5tDnz7ubqKvr_eFx2hcxAB2B+mswd~ZV!W=?=AWf#OP1cP
      z8|AubnU?VZWy`3WA2D&a)K7>)%F_F~c$me>+jpCN^TaaWpZuP)^lun1S;_9FQyC9P
      z3gk#$Akic>7m-Jawu~9>e-_iIaxF{rFL4vEa4VMldLU~kIf|xnJsx9?)j4*LqM5j}
      oh8B^zc$Ags4RA}NcoF?~t|5;n?3v@ZMLfc7Mkf2r#tQHJ127zoIsgCw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_ASCII.class b/libjava/classpath/lib/gnu/gcj/convert/Input_ASCII.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..584e27b984f816c9a8d11dfc823342406b7814ec
      GIT binary patch
      literal 816
      zcwT){J#W)c6g@AFW2XcXLQIo3X=#Cy1VIFqGEfAf5l9hHmb6`pgdE3pUzI*ru3d=*
      zmiz){MkE#nkU&Tb`~dz5J2U0jjY`!4Kk43c@4M%IJ^%dk{Re=1s2fNL%zG+odCp$T
      z@zs$VgsrYRh{Bgo2Ayu#Kw4noe8Bpv&^_GnH<fh!kt>jSD3uH!3261kmO#2g?+i3#
      zbI_3y$oHgj`_cZ;4L0oIn2ci2ckJ<&9mv?8I@95<JQS$){?pK!fZ@4e-`*#oRB!b5
      z>?6B1ww2c!gn?Avnu*H-dJ@c(foqRQsc+M4bh8k!a=40FhDdebvz$o0l^o_UFJMYF
      zjCOY1Kp?ff9^ce*Scv0!Gj^31?h0i6DEt@I;R5JLlIe~gsgMQzKzfPCkcu73F%vLo
      z3TFm>6gciP8IN5!Gv3{J94xV{hWOKnxI#*UR*PCt>&<U4KNF-dLzzjO1ze!aodi%{
      zq!ze@{FHoWO4f>nPv@w`GgR%ATEvwp^*7SUQunLvbn^>JZJo0GAVXQT^ikWWwN1;k
      zjQ2E+w)p|p?dl{YDj7?k=wh|-=JngniFs_9?~Z>pE&VG>RVzLEc-qB%)&yTgLz#6d
      zY<Z4oo~Mds)Ud)AXy6*ws5|s@aXsny#YtDwj$^dQD3PEg%rbk7mWec;=VZ+$lRS<8
      e04^zy$MLIk3uUx%gFb`SDsB>)%(Ieoc<V16G>n7*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_EUCJIS.class b/libjava/classpath/lib/gnu/gcj/convert/Input_EUCJIS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ff9c7d934c22140cea6c38b2c1ee62a11defe31
      GIT binary patch
      literal 502
      zcwT)_%SyvQ6g|_#rmeBHFW(66+JXkxEiNnyk<d*a8y97oj&VwxNHQt-SGo|vg&*KY
      zi8pDH;=+NshdcM2GiT=O`{NV9C5{bb7*0Gtwmf%cxq-hFp|WiMDOTf~VfW7N8_*d}
      z|1z$hm52tx(3fs76%0lKkx&fGW+*(!FjC_Qkr=Wa=}UFRpf#E!2E9wn0yLN=a>(bw
      zP&BcHEJMkWzUak^i3kULGAC`t30yuO@lYoH`cPMoGNMe*f3e$?$rGx_7o?~)n$C<b
      zxi#m$XZ2MmeXpIv9)(-6$utyvN}9%f*S4F<8~Q;Uy5d$QSC%)eFA^)9QE-huF+-cu
      zBUwg@8cpbBR14H~h`|U8t#@p<v^VU$rm7OvV(L(ajymzn*rm=~v8k&NGE`ApJDn3I
      cGp$m8`L)QVN7W6fwvsZ2eH^3~hbjB$2mQug!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_JavaSrc.class b/libjava/classpath/lib/gnu/gcj/convert/Input_JavaSrc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..795dd8e29bbc9d528163345b5094555714850a21
      GIT binary patch
      literal 1157
      zcwT)}U2hCw6n@^F*_n1tbz2r?>#OK?OBba=eRe}E)rfuw6-=jNJI$Jr=}Z$hTo5Gg
      zggf!oi%mp=qz#d9>B1EeHzIK<5s6<wJ@0f=9~Wlx&U?;to^#&kJ!i6Se!h4GU;{Sm
      zhzT?n-7r_QMst?uj@y2aE4b&v;M4(g-0bx&9jd_6e<@w(1ADB`>vtW?8@2`FV}TiP
      z7X{kmW+|ktZFgKJ*eRf7S_TBvJedh7Fbq_ox*7s=4aA`d)OI_r-4mW2vi&}DsKng*
      zZqG7H1E%jtzXGbkh%+Xztoy%$I|cNj9rT!InKD1q(mhH%S2EpVt~c-<x7b;Q1>{ud
      zEbH6mFoDcqzEEf>NMVZ&ERn+Ej(g4<lSre1r4p%f+>-4UgAoZXH?RULBXB4@bH?@s
      zVuM{WvdVxCErB)2=x7$0_gh4M#Pm%ouzdq9$nuO~r|1OSGkKn_0MkDNs=YAyT{6#R
      z5}*{)EH89P*FE1UMu-^VA|=u5g}!C)bD{?R)sr@PJhgHb9DIz6eTRJXXjd5FO!!XF
      z+fIhyp2$AKoUAg1nx|1#E#Gsa3UyGinEW~<=@~O@diC6SS<J6gTE|_+l={?@*%Dd=
      z&HE!&nN3}YMKh`5110LjzNb6X>?9hv()Xd2@hP2BhZ`gF9l>SUV~ieGPfwwty$;hC
      zZgj*6*F0qINz6P_awFH;3f7m3Cr{kN)vU_9m8U1@hWB{Yc;w!c(YtW6Df&&x6RfAn
      z0FJV56U&!zh?L}WtnScK+HKU<x00hooVKhaC6gm5jf$G2lBE6sNvX0%isS+9l{!&M
      zYx;6bq~iVM>9oAqquDlH;k<z56yL<IuVRZ<qk$h(8qH`&27PG7AUk{-ZLqKrqu2xw
      zo8e;%&SNVsVjC`@6W6c<*RcyXup76~g*(V&0(()$K0L+&yu?Ag#v!~#58mT2KH>;I
      zv-%gF{}lt#nD)<%qB16Ft&L_Ytu_uc7Fju33V+|Qo|a0Lll+s}$U)x09)9dvH2U`F
      HhMRr?@haY5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_SJIS.class b/libjava/classpath/lib/gnu/gcj/convert/Input_SJIS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8d120cb0ee80095e3a616216c504f63b1de6458
      GIT binary patch
      literal 453
      zcwTi-%SyvQ6g|_#rp9Wt^@WJwt`#)6uDGxuL_#;I-MA>zbc|EliA*O2|4LVa3qQb*
      z5^vIgQgAWnKIWV=_s-Y%$0vYG96G2l93?9AlX&9Csagna{6IZtW*FTCkpr9IWcB{$
      z#fW)7y;m|$$AZCqlzMK4BWg3SfT4ONl{D83R;xW=u)9QaVPT^V2Q>ySluGon*+}R<
      zA5BTs2-BEP2VBd%E}OP_l5>XR@c#ij3{E0UkI#s|+iHgszTp0ptHh6tmMZDg&?Kjv
      zOF;`hCPnL^8w70{)Q!?i$KqDz&w0PL7r6~iK^xFVF*<9g5?Ykg288QW`4o%0vv;^}
      wlvGeBtQO53Y!cQ>@fN(oXq);=@p&n>8jaT#Y4eZNT1pvhhrPmLzhEEy0MBk$=Kufz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_UTF8.class b/libjava/classpath/lib/gnu/gcj/convert/Input_UTF8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c368e605a254b89204d47fe4313da416f023d990
      GIT binary patch
      literal 1130
      zcwTi<O-vI}5dL2Gr%(z@3q^qnf~d4W8$&`&FpxkbX(SwkqKFZ;?NS!YZnJC&n%Hpg
      zrt!d06N8C{iw8_3CMFtgMvq=Jp77!oZ=R&idu@s_ag&{y_kHvCX5Ocxx9<U5K+Fpd
      zLtEA=#Ixy@c-pqs4abcqtbD;;NX|@L^g?Fn_?I8M;~Hx-cG5D_cE(`v=5@z4^&A6B
      zFtk)o3n}ilU~J@#v}<G-)Jvvix+4ryZ)BE19;aX*B>4TPL2WG<8vIb8a;wn~FH{C?
      z(zJ}J!fMKJX7p5!iUlX_w4R&Q9h09cpzJQ2YYgGZ|6gU8`pg>cl)g&-&ApMy6@6Wg
      z=X5I@pLQM7$`04yBxT~hq#Q%1mc706<B3Eh!CMOZaf-L3m{#6i<4C6;r#Vt%S~<hY
      zy2~8w_TvnC1ehu;Eg24jXMRiqz7kn$7u;iXoMu7*WuvTVyI{Fg(RR$NKv;^wH*FW3
      zv@v1wOKQiLiSg#qMHwkEJoMAtz(23h5-~JWl0G_JCJ#nhi@rf!RN6y57uqWk8Xy^j
      zOfo<+L_sZRAUjBizZ`}pG?Qk;wp3CMkmj5eJh59%qY9|$uTZHP+KRSvDEnUSmDPub
      z<ZwvNoO%Xz2fw4Q(N2GdI31GJ6`dpKhP=3k_Q4?~q&$Jv7ryUdA!RGMQ~D560@yDG
      zu(^#wl>F-()s2wSI9lA~7o=EC&d@ER+}Oq-_XtR(=cPv?N${)yWMsT|7q^n-1X?j5
      z<*8o%PHCCPJud0OnUmyGo!m|-!K)uo_5E!$N2zRQk(06@`#JfO$b$;02~rWH#sRMY
      zR1O>+@gcmd4zY+%lI=9Q4%Cs|KyR#-Rvkt+V)V2I(SuQ(#}!0y6HzRo4;JlX10%Rc
      z%mdO7aTQOI#0y-*F0Nw_b9jea_=rV(hK_GY;|B~JQuHsZ(57xP1z}c$yjb2yc|n!s
      laqApaWWwqt&LgY{SrR1Xqb^i>J28BrUQ}8yL%+Dsz#nPa-IM?T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_UnicodeBig.class b/libjava/classpath/lib/gnu/gcj/convert/Input_UnicodeBig.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e30768669975916e9ed111d074fe98218407d902
      GIT binary patch
      literal 925
      zcwU83%}>*C7=C_hw{=hiCe!gT<V)C!QjC$9U^r|E$&!T&ABkcD-6*9vT2fkqCVJxR
      z!J{WU?czZbiHQgQ01y62%;z^M7%sNy+xLC?K5w7*`Te^1@e{x!m}w*g#vCs)oyNY|
      z@V#R@2+gW@7=>Hwp4;$u?6T{mp$d%N>?*$w?V~k6ZWBl!T0!VqO#x96=!vVXh97w$
      zv8q7ond`aXl7LbyZ3w6p^17g)M@I%-0=+fYvsa>nx*e=p^(JR#YktFOZdidU>ljqS
      zJ@-gpqV_-CixlP9;fi%Y)<CgT+qaG_vuSybxf%wp=PYW-33OdEI6Sbe9rB8sm1?zA
      z%|KvKM;e;UhIJ&7Qh<xLEJt<RgC>x4y+i*<BI7zHB%--q)ApQjPl8iA?qj+G)}!5B
      zI}k{0mIX3?6kY@LEJc8WI50LX;|H$u*T6cJuKH2Xu$NtFL+<9fb8<b5^N&=B1Rsip
      zyeOYh;TQVM*v-o1TgV>cJM^y|!Y#&B2kb^Kqkh?dKJ@d=)4=VR{4gdf*?})NsM&w0
      z$`$nv?p{(wE>`unu%H^>kWZdrzVH#L7F?D?*^x7u_sou*CWHjmPnEWzoFgy8P^<l$
      zV1durC)xLe*`)ED&<l0@9EHdIXun%X8j{(ko#c|+AIOpodHFrxYQN8^g`Lk=qRW&B
      z%2O~%dBYSx!W9Y_rIAG*<}4;Lk10IGG%A?EG7P*V`U(#aaj6p;DHmS4Tq<5zW;5iA
      fPFAA*iB4uPQ+U7O1Pv-D4RVe~O9VZYn&$ohKKQPz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_UnicodeLittle.class b/libjava/classpath/lib/gnu/gcj/convert/Input_UnicodeLittle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d02c3174b539ab3bacf42a7ae1045a820eb0849
      GIT binary patch
      literal 942
      zcwUWBOHUJF6g^*O+D>6AP(jP1RpiwU%3w^05yOHeBuyGNJQBqOr)3z1l$mCjA!_0y
      zhK*a7u5iW1g(eac7ybYj{v_)8%7{u_*k<nBd*+_|opZnMr(eGTxD7Lngus~NMW)l(
      zH5<NnU<aXD^;%K5x#qbIf6K19Vc4|OPz8z?8yBC3_Wr6LcM7CiRuH;YQ$SP%vT?Q9
      z@FOoIRuxFycRe>;5Kv0xbpf?PUKbQ(b!5;b&{K0gdpX*x+rg?;Z*pd?<~OY7x)r#x
      zjzKltarXr#YX2d9p1K@6T(<T|>@SsTyVikaHZ9LFSHi&coOulcRQnf+M+CODMQUlI
      zQmvM&83+vONJEp^u#O~B3UJz%Wl_g9XaY&sYx(;U8P#z^BAV+pZO;jJBsi{P0+SuE
      z9&K;ifk0woQ6S?-;ctMOOA+884vbfq@dMZSwZ^(Y*NPtn4SUIzO7s6PJtIwGl!sCz
      z5`3r^@<#`Z3cqmSjNPnEzJ=^DzCi!fAzWfib--@)FzROw=tUpjycS%J$+u#%lI#C?
      zftve+s+?1=;OZGw48^Km7v@ysGxEtJ%og4ubqtT?P;TT%=Gp0y!-SB)+M&`mloRA-
      z7&>nMAXwmY{k`nF$85}aK<J_R_ymPJeQ3X!OB#|nknGju2|G_-y(Lw4<z-X;xcz28
      zEo^-_SH4J{phg9Q)HqBBBlJ-~k=rcsQl~M7S&ZW@CQ-o@mSEr!(H3sv8J#`nHl^!@
      nGiR}DnN5)|I$4=_kmzIvGll<`oS;GFq$1~N+>791rKXvmX^pkw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Input_iconv.class b/libjava/classpath/lib/gnu/gcj/convert/Input_iconv.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6700903f2accab241c7498672fd79cf82f2deb6f
      GIT binary patch
      literal 719
      zcwT)`U279T6g`u#P1e;m>6f)NYFi;m!Nq6A2Wy4E(g)iH!G|*49k)}`*|6EIAHPb$
      zQt-ha;Exi|OluGo8JIcu-gC~}JM;a=*KYtG<DrL&z*=g`FpW>cI5X!eFT$ajl*N&@
      zp@*74_fNv}4~3c@WQT^FL<uyNA<!lj=tQUTT!v$5(r~}XnR_D8IFTk9lh}@aS-q0)
      zUdTe);!|yO@l0T;_qVn`67YB5$7)jO%uGGp6xebsorQ;HT23ZeUZ`aEx`7#0pti%_
      zd{i+XpoO+TwbviDAg~aij)p}`0X#H)qLl!*;ZtOL5txg#QG4atvC0qRvF*GQWw9KO
      zWUg&|ovalndMa=?`p*k;LN8Uto;;&qvDg3C`!wHbBgguqwak@FDCxb~84mkHCX&oB
      z@9$@29;=ty-aG%B|0C;%2b`hGKdo?aIEOeI&ju?k_>6Bbsxb<1i|DoE0*ix7%ni0L
      z&>4seM%$NI{_OOt+?VMFtWdW~mpfFhVFBwzw&wKAtOE|!-EDjjbh+DGLKg$|!54Hs
      p&1@Sk*>yI-72(Q82;4)PXT|;pE3>9qxz8~zW5Y6-+jM?gKLKBykIn!9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_8859_1.class b/libjava/classpath/lib/gnu/gcj/convert/Output_8859_1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8433e73614658322e1d9f88b202735cc1b0f994e
      GIT binary patch
      literal 1170
      zcwT*z+fEZv6o&uZ&Z$`CU`HrWPyy`$S~1X|7zj3M8ac#3xxs{#GL*qGCBqcreP6(P
      zE=joYLK6>(7d(J(V0;d5t^e#c4T7=BtiAS{wbuUEH@n||e>(>-i3d6Y0<p4F%alud
      znNrm`vRp5-Qu7XK-sa5A^rOv59g4uv<&=VBm#W*=TJ`B$&pH&)p4g7<%?SkKiFE-b
      z$Cn)lA{2%SO`vnpcC6*v{+8vg6}KvuK+j^eRIIEQUEANcf{M3mv)l0Ee<jTd=w-`W
      zF7C4=5>G7d6_1LUO3^82Rz25t%CiQ#si~PQpdP!n$5cJOk;~^3`49xmFm9oj?@HC0
      z;|T~EjfT;W0Zy@1+YtzCJQXl(hnpSC_4hdz*v>)qP{u2kQ}%Wl;_-HcJ#0QDK1_?o
      zud2%DH*$%52ks%R<Gw)G<%}>ANK$xdx9BcVloHP;*eiJGxjwKf4ViIVb>9edtX6Ao
      z$$D-}vVXx!`&GEZ;ezmg3O#-jTAjNLSHV?HeueRoP5>RWnhf^f8g00l!1X#;fg9*-
      z6;HH^gFRgzE|o?ulm^?SJ-FE_{Y4!iuB*vUh-4MozQ<}*JvWu@tQIr1Q)s3(7t88r
      z7)cG*17a#`L{(F%E5bCo(Kv<CHGc-xG~TV%^@gdRG=3&c<uf9&_iZU@DWac}1}I^W
      zqGH?)(GFvTNK&|q9Q~IV#Vd@-?AJ|MEy=z&$b2EaA@s7d?+w!nvhR|Ai8x9aFZ_!`
      zN)gQCHe(uXif8n4+!XqF(g+NRV6=%q@Z(991&KhF2(+knZmQc^J!a}Y0-XqqGmJ?D
      zUoe&pMKx2ctHKOjgb*SGqhT5+jUP!<{TGBJ1*Ir+oB}5(HO-+ilr+iRLp-CugeeX-
      zEwgu;!rBlDtR0sS3T+6576jj$U^j&)tVkUGRmn>n8c$o0ICR<xiNoO9#Nq$p(o$#U
      E508Pq761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_ASCII.class b/libjava/classpath/lib/gnu/gcj/convert/Output_ASCII.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..659b00064f4709543bdef2fac1423cec6d38bbb7
      GIT binary patch
      literal 1164
      zcwT*z%}x_h6vxkP=c~0!!Cq^jt%#`ofEFU@LJSHu#F_?;R5qBHVHnC_nIXdz;>t~5
      zz&%S6HZC;rBXPk4_z1?waBcnH+omC4Y%}+qd+#~t{?Bjj{P^?zl!#_&MyC*?bkl8@
      zo7PU*^4tU456aKl!CpIfy|`Mf)pSxAWzR>vbREmvv>V>i+rZvuq&;w4Cs<$<&gIt_
      zDOGGnDNK<VsiZL)synW|(%#*${f4>GvKfukJ<DvZnZ6_D{Y53%c2F%_|DU3HMtai@
      zR?J;wBy#!sj(K2~Tc+DAuLi#3Hs=i*W~9ns*hAk55UJ<ZG0)c`#E8e}8YQu3d2Kgf
      z#N=u!Mx!)_9yZ!rj6&;6j10%cWXtx&yov<J-ShV4ddqg3!8Vp~y3;}p2akmZVX53j
      zQMKB7HD8O;9m?r+mr?wDM2zxO07`4y^cNvY$<^|x72Xegf$Ks+L>zkl8%EJpukBm*
      zvLg@<pG8#?Npusvg-QGrcz7Qeb<E1J3|1|CBjXdC5JfR+a&ee0VT|<xU@yZmx<W(!
      z<mrBLcqIPuT<X;`so_ED2-bV4zo8=n`=aof5)}pG_4{f{J>|+~MayvQm^7{}WGeaz
      zO%&6e5SyzQDU~Z7g>fVP?wE}D!xK`u@xIZ~yIeo&{wi?g3neli21-g&LkfyUp<s*>
      zl!lkVKTEf0oQj~b1pg^!&uLOdzv`*#D;8cF@l1MIN}{sxZomtpZe3g<bP}Uwacux8
      zK?|sy#NId+P(O)oix?+xh9L<|_6RWXCWOj{B%n$HT1q?R>SjgHa9t44LBKenNlD-<
      z-L6DZ8dp0i<B>BAB4A*2xpCC}S>Wow804X+0F_1Pn}X75^i+bP8F;hw7=E4Zp|3d^
      zz17n-V9-F`lw{BtFlh7{2v1Z~aKehDAuh@jNkhYFk0cEp<CLUfAi76Gd~GGEv-}ry
      C{Jh5i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_EUCJIS.class b/libjava/classpath/lib/gnu/gcj/convert/Output_EUCJIS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..379ba3decb692f726cd0131703804f2bf660e158
      GIT binary patch
      literal 633
      zcwT)_%SyvQ6g{^|o7&b_t#7TkYYQ3_Tvc3H6e2~1sta96j6)o$iNs08Z}AsgC@6vp
      zKfsR?Z_-e!f`QE8&OPVMx%cDq?H#}h$_7$|dDja~*SRzu-|L7#nR}tS4%O+_VPnT?
      z8PEyk-;_g7I{vvh@Hg+2xFKY(g?BDJcZERKcezT)tV>U-4T4sw9uf2g%W}|AC?Jc0
      z0T6}?NFzfSZc0z=hF51IIIz#!f>3Pwj@>@80~yuHrLHa{zqru+H+G$1xI*pPS1c)2
      zs?AHgW1DT;bIq0tI9ff62~O8#6VkVVR7^E0Ck@N0@(k0JzZ%OrX+*t|3%eusyE7&m
      z;PH+Lxt1RWj@XuQ{2z&yBR4Gaz#1<<#XnDt=rdwWbB8y=XO63NW)Nep_KJKh^@72t
      zST)S&Q0y=Y9cAW^VuY(gm(5j?kuZi*;<UsV^|a#nW6vTJUyb!iwXT#1lbA|yI<}g@
      fY+|*RSmkTa7`#VXf6yL&S<d!Z=6h-8V%Gc@PXu$u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_JavaSrc.class b/libjava/classpath/lib/gnu/gcj/convert/Output_JavaSrc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..842d5fac9ebe839f6f74c418e1f4670bae2f1f58
      GIT binary patch
      literal 1248
      zcwT)}OHUJF6g^*OIs-ULrPLRt-~%m1Es9nXe1-Z*4Z#PfQA}`{4rNT4A;Z*nbi*Go
      zF`5_`#tn%vQ4@(q6P6~r@&~wb<;Ime7u53&jSqY@neV&z&OPUzx%Z~;=U>kO*oGb*
      z5rI_6tz=8q#jNGImux@C9;*bCm0;wkdC45~EgkA#a!$F9<rVEAukUJLPYI}jSM&r#
      zLBN=_-J;``Myzqu7tr=Nt`qDNP|}^JnV2W60SXKQb*L9;>~~yypfWLP`$Ohv*%oN(
      z_bjt~+Vmai*Me#=?yydK|NqtY3g{&}7%(S@X-;?cUt~O6Hr-NoFz~6Ww+_wBsig}<
      zFZ)iwTs=LUFBCcp^$=KPU^UiI@n~gCATr!1gGmFe&<L=+iW|sCn}H}aX{|M&Lu<f#
      zbm-V15dT><&nB2wVEYC(Vv|7KnCBmKN=`tgGz;b#a$FV~vwc~Me$;U%y{Rx>w%t-N
      zE>J%en0_!4hNI+m%DjsUG!cslg1Cl3ui{(wVMq2W{(E1xN<~;ptqMmU;X~<=KRvt^
      zzTr4{HqguR7BVOE5=)+kfTcXOFt{Accp3`{Xhe*+V6>?Q-ckcAP4Q=opz&Xz$`5D)
      zD;A)UUJ~jI^(J#_<^@*H@n|XLqKW8zXft9R-PB`Z9)vhq9{eWY$S=<=Cbh@TKSaA^
      z$ebm^IrYLUT4LvirlZx2GK<tq^_hH;Qj2tCz9iPiuf-Z~=Cnnygcggv!n)fMJX5{0
      zn6wg->LKZHtCWfBUCHT)*pbtwl`7GcvhhzTnS?gWx+;MoaT_ylJwo!2>I;SEtN)~^
      zt5M8<OeWOglOHX=iw>SGY;=;XZbLKLv6AiDgAF*uWjupTIEOSw(1}rwyo_$#;J?Bh
      zY{xzH;68TZ337OfU3h`rcuC|N?8O}R;Vt	S-0F`tS*Pe8xe1A?sI;;2R2JDUOOb
      z21Eyri7p%$-8dn7&?<5m3RmDHmyKhtt$?)BR3Snu!)1wtRu?S=ir9_Kv{W>T&D<`H
      XW50nEw$jq5WP;ke!v)(Ge*5<CMy>k!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_SJIS.class b/libjava/classpath/lib/gnu/gcj/convert/Output_SJIS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ed3f80373c4167b9b18d76e0c996c0a3da77d9a
      GIT binary patch
      literal 605
      zcwT)_%SyvQ6g{^|8*QU~_^j1}yH?QP!j<B}f)FWHsJhUF#B_)wH7RjY@mu@_7Yd5t
      z!VmDH#G5ooQE)MLIQO1&=G^)Gdj9~hi4_AGLe29d%X6<SH}HodRMugn29dhx9@t$2
      zI-&lXaN<ih=!xTC?_P;pf-w+&Px>B#Y(j2F`cmx@v_|ukptqQshlYX)0~3=VOqs|c
      zM<}+XFFMi9r3jCm%f28~+JWozPn}T4IBn|cO7bf!?SF!9a|%zWj&s9;*+#Q{?F=2O
      z@A#h8RUv2Fp1>Si#au%6E|iLiM&rC?+f5E#ZTwZ(_IWFwm9CtjI2x^(Zp^El5%S$2
      z3SF@;<CLYbG#jxOR(Vy8KbrXPzDcF{54cV;+Ce6n<=5W$WL{xDGs<9^>vW<lLr0yt
      zWfU2iBQ{EmW7i61Qm1vk<C#{OefqJ;C9Rn;sWy@lVIB+Vy_i^4v6NbErB;Qt7nl#o
      U>W|vvFU#7PW#K1HEnzKx18;q95dZ)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_UTF8.class b/libjava/classpath/lib/gnu/gcj/convert/Output_UTF8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f89683a61eb44d3f0cdcddba9b1ec967dec4c8ed
      GIT binary patch
      literal 1704
      zcwU`UT})eL7=FI*{FHWQqwT0u2PlrQ(gAfpFvfsoFmcTYnoyV<+2GKgwTF~bET=3o
      z#U)lvyfM2{*rs74X*48ivW8?A#2ZcYLKBlECYorx@LDguu=V}U=@6$e#-@4yzW05;
      z_vd@hm*sn#01lzY1J1BFW#yx(#7s1iwHAz=9eplu&*kmOvG`E82QowB!wzGXnaC!M
      zcy{0=+n8t2=55_d>bax{VPF>+JZW=sPS4q-4KgSTdM0m>9AofJi=at6o6It(y{2W_
      z{R~pLb(}#SBv>CL_%&$Q=><bjg94SIcG$Fxk^Jnmk&Elo83GFqXA^p6T+f+8uNq}L
      zZBj-J!~as$2}&<z*dzKZ1=NLGhiCK!J(|(2RCLtNnO5pV4IU>bw;JV2&a}zV6P_51
      z#ad$`sYVS?;7Q7QI)9mgPYej-QyTWcM*)d!-m-;dzlI&~3F&|a4{C(es=*7N1bkN^
      z@`E7XQ^EL_2m}3VOp8!28#w_idS_a5*?GsFF|3rGX7EzKbM~ZTRw#EfL%s<*@Tc_!
      z<9WkMQW4eJP-AHvzR_$xmoSD*(Ifx1UUZ1s(M0!B4v>jcw;_I%ufr)@hwpH>@Sw>M
      z-9=h2xJVkl$OdX7atVP?NaNT|beDq|pom8aBY-;6G}jv;JOWYc9y)W8+KG!ZDfrmO
      zTM(*a+Py7Q+6vu^dN))mP|6+(8L01)BX`lTNu(*+rG%7a-qx^!I?|h0u#;HJ3e+Os
      zBMk3hFmj%_oGhVPgbA(bf;?416RBb0<5$y*{*y}qT)TEXUQjAdT;;=%a;x%rv2vTR
      z`vvGSjy(hrz>ng<uPstwM2ICqluBq3C<@(JtRxQB7dSiGr52=$i*h!k1|w_m5j(hs
      zz5=flB=$d$y>6wwgwwW)P62lZ9e)Q3sa2SeN+4VD<u5`im3$lFkh(&ny^Fvy>fQ3U
      zBZSoJ@nZQVIeRMqg#RhwtBcjnIai1mLii?S)V>PCP3)3;!8uX<9cYecOR;>~DK6Na
      z49G}}N|IB-j;WF}n7`ihix`(b_~0g0%u{kO@Skh`{eFE&POfjgyr0lbbRWI9X4K*U
      zS`bDnj^Jq=Ll2$Ba2ywjUm{JXHJC*o=5PvEF^G3?8t>y7tYHX6Jd1Ul!ACfY4GiNR
      zM({O8@eSg*k1_m;ar}mJDB}gjaGrTF!5T5ex}mdvOtVu+uow(>5h*r>G+V$7TSA7t
      zi&=I97F$J@eSjC)Cg#~^xWc}|RrWJp<{YnZ1xwtAS9uTx-iFutVZ6aR@h0!Ve%^<-
      zoUJ<JZccTpgcPM3nIj#dMdglk7~-2O@srd6A1!n(KZ2tqDcE4Ip_4uoVpF@QHxE7w
      j?lK3(!rY>nI`2`D*5yAt?C$p4+jcv+wcFi}*YQ69kXB=D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_UnicodeLittleUnmarked.class b/libjava/classpath/lib/gnu/gcj/convert/Output_UnicodeLittleUnmarked.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69320f861331707e80b9a9a10f2040114a33514b
      GIT binary patch
      literal 830
      zcwUuI%Wl&^6g?9^l7>J-h@mBq5?b0MKrIAhK~WbCLPUzfqG<%`f;x`tOmW7QJ1&BC
      ze}E5Qhs1^jNFXE@{Q$&Q@FA3I*HoxNNW}8JXO7RgId{JO{CWuB78cV;G2C!PXu9@}
      zY5QW|38eWrl)IsPwjsFfkDM--(sMS%#0s7}qcl{8>S;$J?fYvlrL)JN-{*qMRR*Qr
      z7%-@9`j~}+sT?%u4AWgMoL)E?IzitWdJaRO>)Vz$umT>P6H=99PScjV|C4ZqA?-S{
      zXH95AvEJzJSo@agS;95fWx$2IlEHZf<F950?M1*PIn(vccBj+mOo6mHT*M{XW*BZW
      zq&C+gayEy{D3QVTLm?ShhatlSNw%FJQnl$D7rXvm%zKV-<(Mc+!#$F7dTn}1mR<M5
      zz;+(;XzAL&mRpXNL5==iLG)7y(T!3~)5)aHsB6tH$b2M_LYAr?ljm@TYVKG-{Va7x
      z>~vzjnV6MA{=+G2{tv5iVlCi8V*LR%?oXPZP&}kEGis?7ZEUD-kug-wTdlOTces1K
      ze2`*yT6!dlREGY#{~N1YhMv#7BH}5Xw5`vWIna&_?ak5m%KMW%&A65+Lj^@tF^f5R
      zYFNTm+{Qc}U;#a123U+UKRV8pWR6gooGeCFlxS*%<_JZ5b#aA|N}78#vqaal6i=Ry
      K?_nWMaqSn!H=@x1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/Output_iconv.class b/libjava/classpath/lib/gnu/gcj/convert/Output_iconv.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f743793c9f8c9cd91cd792bf386cb32cb2e3af1
      GIT binary patch
      literal 723
      zcwT)`U279T6g`u#P1e;m>6g_QwN^+{aPe93!CE1(RIoJ&KFD-4rc=_{u$gVuU!`Cv
      z_}~xlM~P>qHHeBV%-nPDIp^Lx`~An)ZvY<Ret?oddu)n$oF2t#W=>RY;}?aU7WS=n
      zI6y_9^C#n#VR5APv!@@dnhDgEA=YLr&`OTviHs-GjN?6<GxtcKb|}qgq6C`BFRPdG
      z^qI8M6(4J(?Gu5O?%&$pP$1lSpQ@?VnVAK+DzNEUI^!6#Vmi%ot42GQ1I(!cm2Hj~
      zqKw4|4KxMH-QKVPfu#sl)LgU@AwWH3v=-qyLW<lh0t<;YYPUE(Q2D+*aFe%^ER~a?
      z%(cUp$%;MHT)&h2?+LkLFjjU~9#gU0?fvV4>hH9X6aA5l>S?Ym@1Xl;dobt?*kzO%
      zCc?d}$W!%P`-l9!!vp7tyIiBp|61b5{d~mjc-L5IASAv*R3VCRjnQk*1(y5gSm<w^
      zq16{>L|f-r{p|JYJXh%ktWmd4mm5^x#1h(!T+Qp5X#+m0`fdWZ(BbL2#2y3H{ui`9
      p&24Kw+3_~f1>wR*2;4@Kcgg({R^~&qa))a=#)e}schCE6{sa!=k>mgX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/convert/UnicodeToBytes.class b/libjava/classpath/lib/gnu/gcj/convert/UnicodeToBytes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..354fb7f58f98c035454b9cc6806b752130fe08ca
      GIT binary patch
      literal 3627
      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
      Isr`rl0UpXiKmY&$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/io/DefaultMimeTypes.class b/libjava/classpath/lib/gnu/gcj/io/DefaultMimeTypes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d97570ad386a8dedd335d17944e26598f103148
      GIT binary patch
      literal 5579
      zcwT*1XMj}I6+UOm?h{a$bLmP^P!Jpz0Y#-LAgDBD5nMs>?aZ6mw>yoQH@ibo6l=s@
      zV!_@Od+#MC(P$DAd#{N#iHYgeeCN*YDmx}W=KJou_q==0J@w6V|9SXvBHEL0tEUjt
      zj_F*vA)RP#@be9Gy_8$d1dIHvw`^^}E7enksb8zx?lxrHT)JUNbE}sKn4*EMGMSYN
      zzgcVyiheFVjmepw$oM%wn8_3#yZdsc$eeuAtEb-E>{S(aXnU+@{iN?uU#4DeISD<g
      z&oR7T@&ktq(*U<n$oL62@bkHbO1u=5Qz=~<0GXnjb!ZS%|LV(?cp(=rdTz!(Iy8hS
      z<gIgPN2bBw-o?!&i(W_E&y_rEGz@CA7Cb040&4hKH|;f4pLb@eE45Ea6cY}O(o?q8
      zq;q9grg|M0^vE%_3U@8-4uyjX4jhkT0<RJ@6f&-#b11I2Eo2;OU>dsZ%c*iuE_zsW
      zODzr@r&lgHG?_`NidN!@Y&nj}z$-em7cQ)VQ(^BOT3~ixyq-)z44xXe?Q+sD!o7K{
      z&45r=rDs9QEWDR#$a?yGfNI&1a%c|Iu%4Ue6Kx%CyBAMY6+IBLElJ4EXNqkrYo`xJ
      zAT?L5vH-EPtwiU-BJ8owFF3S>sqeQX?BrosP5aoYk!icCDeU9nut3&xXhqExgJM3F
      zitAbv9G(tbTy`bwxUE!m{wQ^oS8-@{jsAAp#d>8eA}hhPL!!mYVm+hbmuz;()61`c
      zRJuplW!*%)+0V6jl_?V)@>Ns#vh9CqinT1Z$|qfi@;z)|C)Z%LJ&|;%R1=$tB=WG$
      zp)#)O`YA+d2UDM}EWr#+wN@S4hS%5ESfMTNA})``%cZQ3z}(m)o~pAaU<0>=y-%#3
      zf;~@G!(_2`DvE)Par^W=+%<q*H`h4Z-qoQqA&|pPXV=^$=LHE3nR7LGE7;?Ft2Xlf
      zLJT^J*!`mJNNq3bX_u(?O6?A9VH#qU2;Am)$t$=;H}I12b~jV@VBO2L{@6sn5<9f}
      zNe}hMK3{FmK$u;t15NVlvDLPUb+~>hUdoq?353**nwbSCb#qO?*y*iyL*)K#xTuQ?
      zcSjGe7xJZ`lqmWI$lL|tgbwcMQ4chL68UVwO$3D^Qsh3()xso)9{8qyTKyl=1$E&g
      zOoP5NxODL``}$;uo=`*BB!3E1ej2uUy4$9HT5a_sjfED?jc012r8@r;y;<3z=b3s}
      zb!m1>K1}yByb3Si(l68$N1e~5aFt&|sG9dL)$CuLe+8<cEIafX2AOqG_KhC-l}`j-
      zfChmM0F%FE<zb9>)SMbZ?_uBtNX!qIwyy>!qCy7_eS{+3t<10WvS|&aPf%T~WcBeg
      zEK~#b3+z=$<Cxz<iLO#y$QKc5884nLx@)s8;^#{%23!B3#t|qRrBd83{t;5m+6n%w
      z;@TSj+FjM`<KH!+)yV&>tw%cjZ}p^)RQ_5A`F4jH1*00#Ys!A2EkIv)IE=E3RUgAB
      zHma_}25CRuIbClzN;$k;k4$aPB`4U0-d4q|!|2|FYA){P?7g|KO|7)+ux;g8-(j?J
      z4jdk!(V(@02X%Mb>hln-9nIJo?YeK*&Xs0Ausfnlhg$-yj_7g;o-z*aY=ao8kJ18x
      zqRG43nY6=WG*DWg13GUs<7(yR@ii5wa{)~_RKVK}sxKVN+H3>8@np>jBsrtI4uaqE
      zxs+G*atYgf^Z88RX4)K{s_*5J4x`IPs;W&>Q|X0fe3z-ZE;dWAjT*rReEZr3zhYO>
      zY$G-US$nFh`pnlsJ1lx|w~s667Ix(D0*!X0GB2tL6+4Y?8b+&j_^|Fg)mny$MpdK(
      zH$V?H-HLShxn#a0S<XTkG}TZmRB7swc$K(*+;x^OUa8sRXP^t(XvCIeUaiJVVBppU
      zuudne*4WzX>Kpbctr@FcL9>h|@NI!1`ekShj?vzj%qJYq_b3?IQb)dsYoI+w%O%YZ
      zF4cIwbD^v*QsZ}gmy5cbu+~c9%=JA!eQZ`BiSr#^v5@z35JA%n6%lhA^`f2T{pORD
      zwPzO7%?_hy_U<~+PH5{a2Jmlp>$Fd3o#8fBb+g`A-F{|`3GMXRdN6LHjnb<iT(wc^
      z2MJ$j2iWVP9$yi5@)CP4GGI$rRV@067F!khay`?>;a6%7c#yujyD;H#J7T`J4@IdC
      z8!z;8-r{n$*()wn<H0El^Y|)S?iPK0?wqWfZvP+jqA=gohi@Q9%R!3|2Mt^JfBudj
      zm3lSWUOUg%Z3grdn4l3zI}`N8KO8h`)e55!IaH4y)FyH^Q3P{T*B+y<9;04OVd>M@
      z6p<Yoo1)UMv8hg^v8i7AH#Rvku(7FMoeT!n%TS;rI{~+o;lN%p64+aI0rrv6!0lx>
      z;0`ht*jL5@`^g@_m`nhQOavO41ne(UfCFT2;6T|2I7s#b4wmV_Au<y<RQ3n%D6@e(
      z$z0$tnFky$2LVUOA;6Kc5V*4}2JRw<0!PVG;AmL}+*OtXcatN4W8_HSSXl+!U5*Bh
      zlVgD6r5U(~B!O{B0VhZcut8dZ6D0%OQ*yvbQUFetB5;ZXz`dj$xVKb*Q)L}+AK3uh
      zSB?YjC&vS)SvyRZO~4seex{rRoF%6K_m|Uv2gvEb*>VPOj+_OYE9U?Yv^JS1=K<&2
      z{ST50fCtO>frrS&zy)$CaG_iVTqIWj7t2+^C071WxdwQcTnAh#Hvk*uCg3u;1$elX
      zSuVE%SIF(aBjiqCliUqFQtkz=l>33J<U!z3@-Xmdc@((X&L1O>16}K{W_c2rkRJe(
      z@<X5}KL)1cSzub81GdOdfxi44*ebsOw#kdYjJyoY+PKQetH8Xx4lKx<z%_QhC~pHx
      z);@u}3oOg~z;^i%*kSjq$ghBF<zwJF`4qU`+IE9{4m?(V13XTC2iz#XZ)}Ru@$!|@
      z33^(LHp!oqPL#hWog{x#I$8dqbc*~-=~T^=7@a2nQTiVGx$^0TL&}>CN0iSnT&H}d
      zVMqBa!@ZQxHrz+~9K&{-bJdD5I?r%F<?}UgVswFFQNB=hkJ0xH_gB8i@Id8@4G&hn
      z#PCq%OAYU&yv6Wv<;x6@RK8rpAx2ji-bMM!>K(5#JX-nc>gqLycT>K$x_X`AvC7vQ
      z9;bYR;XRaZ)bNPWO@=2Z->epn(Jh82DsS!7>{i2*ly5UUMfrBadn@0e&X3WZhWAmv
      zt5eat4ezIXkKyUc_Zpt5e4pX{mG3t^TloQvsTe(Ic&_q8nnp2t*zi2%M+_gN{HWnW
      zlpiy^Q2BAgi<O@+e5mr1hL<WoWq6tL4-79?e%kO6%0D!Gr1Fo%D)D2(tCXM7WQ)<W
      zhL2YMiQ!|EpEKO7{Ji0$@=pz?lz&z=)XxpKD8EoO>n{wqD*v)GUS2euQGUsAPWffS
      z1?5)^7nNT%94NnL*xvPZ!xiN>46jpu)9?o6w+!2edE4;u%I_H7r2MYola${xe2Vh>
      zhEG%epc=g&8n%)3k>N9xe`WYA<zI_+<Hv^2QU0W={HKP`Q~pfsjXyVhf$|rItz~{=
      z_+sVX8opHdcZM%h{!*-Se{a|Z+8+#G)p!qIbC>obz7Fl_E82i@U-YGZBow2afMdwe
      zWa>||XaFssfwY1KQGy0j9=&Wm4W(0QM>-#pSJE)rO2g>^8bMFfNO}QX?=9MeKA}<c
      zM;c9E)2`f`cH==bhDXs@ZlK+H8ja)mG@cu24_-}iZlej@K@EH&P2{s_Pu@b4_(qz{
      z_s|r6g7)I)X>Wdwrt(L$4}VGf@;_<6P(4ix8JZp%K{G<*X=Z3D%?iz-{X<LWfY3^s
      z9ZJ)jP>JS-HqwEi%``7`5zP->O9zGSpo2q?&>^8`XhG;DS{Qnd7KOf`#i75_l5m6$
      z4GSF>9!X2X6R0sfotA|c(Ba{gv^?BKE5hsPi16vu6uyLx4Btd6!w=G`@UwJO_;oru
      z{0XfN|Amf;M9Gcxr{>6LN<=18GBTUI$Wls0nkgMwLoJaL$d8;$t&yv#EpjJiB2Q2@
      z@&e@|?@>PTB^4rH)0${sDn^G>DH^9BI)lp5MbsW$MIF&Lszle*+URCl7u`bZqg!c1
      z^btBX`aB&MeTz0mzo6rz|DY4<deNr3A#`HhSURb0DxF+6pH8V;L8sQG=(M^b^{p$@
      v_I$nl8iDimtEc)sLJeRBN5?(DH+F{yK3sIN`bwXw0N>2F*q66jsayXGs|lG7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/io/MimeTypes.class b/libjava/classpath/lib/gnu/gcj/io/MimeTypes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d2cc671ae7b60b93bab1ae05354d3003f0686b1
      GIT binary patch
      literal 1793
      zcwTi>TT@e47+o6@LgJ}XFi1!%s0B&59HqrlK)@;#+Hg%Ef^F>~Y~ax3gh_Tf*ysKV
      zU;DtT;tX`k4AUo_@wNY;4}I?+kgk1BxJYm^+1GD>Ypw5c-oE?u5Wrnn0aOWGU3W_6
      zdS=tK^X8PDlc{H0vKW9*pl;Lp#WJ&&vu@6;Y|4xh2<2$;RB01|aKbexDLZRUSj7!x
      ztz_k(K+TZt*lJjyx+AtI;Cq-~l_6B)l7Rqf1+FA)M^2Y=E3%N%PXy`{`HYoav<kM~
      zmk)hv!zM~&;v#~CG1lyCcD#_!joaEh-f<zF#Hom+D%j5Ypym`B+s?=>W#=7Ay(-Y)
      zS`lD!=Hw=TMuDc|i&M_?(pr^;0Gi1A_*PT!&O^9{W-T<z0Cil19zqzOYK!Z{EnCoq
      z_nh|uv<gH{wRjIx`Jbg@|EdAPxM|=PJ`<=d@R4T5G<L))!9r+3vmS06=+F;>j@(wR
      zt6Ibb#H|pz&=WxSd)fA08!&N)p(-k?po(c*ZG1q{atOWnB7o12<M@6G4D{h1i(#w8
      z0_s2Oz^kgk%9B{-k(S+W;42IW__ge3Zhb8WFeK1=3Ok)omNFY-S(%fLI>{y9D6gvg
      zYmSw3ORho)E4Sb#L7@30E$8!2tDrj0g+TO7(Va^aEd><|f;Fv6bzHi-V#l_Xbc!yo
      z_KPA~c@%`eqyax_bg(Z4k-&5SQzUSvJ08h3tCT%KDjJx<td{QeYr~UDzqOcWLz+@$
      zOx@Z&u4#y1DFb!*Sc5GZNaHc1O%dn#emGsVSf*@iYb$GKES&)}pHWhE7ZpRCV+`eK
      z2!zf5q;7bEv*42XQXwO~uD*OCrblDo2B}r^>qRpi46drV=4XXtkUNvJ;Ovj@BlMDs
      zDi|DV+{4TGh@;^daCe1sP|KuMJ=Z?oG`Md5D?490K$!n)OP%|O?BkQE9XvQd%Tm`K
      zZtSCNx_b}p1HOo_KDLL>=V){H{)qoInj`-5VO>1pkNEa*H@$Q8Pns{ke13HJl29#}
      z<!`V|ae#z?Mv@AXQWJ?paUIRHYC#)yn`mbv-Nqw!@)X;D7TuVm-D7^qwX9)}Fz&mv
      zUJYY}D0P^`C>{`{g~|LH4;isGbkffV1^3az7*~GE9>+K3DE`fT73YOrOuWJH0eYAA
      z@$D;2?Bct_p&dkb-DT9j+N&quYOj{}n|K%X{eJW>FYD+2KynAZG}rMxEc}J8MCTjS
      z)Gxj0d_j;t(j28kPx`Q%iF+j8Pr5@4z<tsh!A;u4ICqo&9iH`(;3y`zn`QmaahyjI
      hDOY~0TNVp=LVM6d7rw_2L`qQ5k8U6Yp1Sq$)BonZr^o;R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/io/SimpleSHSStream.class b/libjava/classpath/lib/gnu/gcj/io/SimpleSHSStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bdd227ec1c99cd0f0f7e249533c9615b344c663d
      GIT binary patch
      literal 1323
      zcwTi<+fvg|6kVqcZK(k(P%bSfC}Ii9T~N8zLY0mkc_=cYJZLBZ!<3}cCdvo+1HSs^
      zldn2Mg>f7|z_0NO)OAjwFkae8&c2<s_Fg;Re}4G}U;^1N0s@I$#~<4*?v2^*Si#;e
      zm#o5Sq2N_4b3Y7CpnK1JWy<7=>6vT3SN6SnRv=t-eaEvZ0wO2S!h6p%`L*Roh1|0&
      z{bkpwdZy!Tm?hr|k}@sODvMTf53_}JStX+#0>LeRM<B475r|Y@R-fC>j$1b$*p68e
      z2&FbN!!q5>*pu?M=~>J(xS7cfZ?F@FbB^r^Xem_}@=uDiR7MtP%kH+-41pdUI$ETa
      z)X{{HwEA?kq9sb}ijGTY6S$bS9qX~bzhza{&8-q~+VXDEENz$-TlyzK&3kEA1$y)U
      z*Km&FZ1G`FO|L6<y(QIiG<#6A%AQS?!Y~BdPle8{H8QfNn>ym?j3S6p9YeUmX*qa~
      z7&1Fb_1qn*7c5y0d2G(UZSPuDPiALyTttkad7J7ia{N^Ol;->{=OkDV_jJtSj+A6x
      zN4PG|qK+s+5-hEwU2V(tDRk$*fjC#e^(#f|fh`s4_(P6Sc?knVldEr1Pl)fBq+>Kf
      zJAh{T(R2O<zPUBXU#mJJA|fXPcyeRvWOJ&TYVl?l?F!KYJV%W~bQ@0(k$9%Ps3DPD
      zXCM(vm){|71R0>)D{EruV_g2EQ2P1qR2}w{VE{>7qcw<I+`)j#DP&w_9LgHRb@B?i
      zBj!?!Y4nCwC##IedfiCAJ;I2QJi@Iro>rxX!HGvW>&<icdIMi4e&_^$>@WNS+OpR~
      za7O!pm@yL9dS6U^#`qge#I?TnzkZytwXqf$C)xxR97hi(72|Xrp~09SV+$FiHNonD
      zvL<N-`R~LOE!n{|b+7B4Wn9*Go$4uNrlQh4#_f-d7NQDlhAW&^)O!8e3AK=4VPl1L
      z;f9QnBiuD&=^EyYSVs*Dw7*7b<T%DsjdXI4XG31*2L;S?qz+0N=L#1%=pu7VTvPg-
      S#6yjNhj1SmCGoPtS@{jNW6xs%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/jvmti/Breakpoint.class b/libjava/classpath/lib/gnu/gcj/jvmti/Breakpoint.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be2f539139b6ed1b49420636efb0aa0ca7b2cbd3
      GIT binary patch
      literal 626
      zcwTi;O>fgc6r2~^acfM{CNzWqO}_+j4p=>LXvKjdB%%NkRJm50WaVz^tdX+`62A&0
      zs!BcZ1Nx(?zI6kfa@l$NG;ik3?#=D>9{`8g_faA=6FrZU(IlQMrbfkYb15#qWl9?#
      zE@5LL79viCPU6qQi5wY1c`D6$HYQMyu$E>cVN|9G?pPSXdi}qGU&Qx!-1;cANaXm4
      zCy$j@<_*E?^m@^NM^3V_4B(&=B0!bkbfUpJ2%8~1lx<ZH;iDXIwH2aaIh$5QiB$cN
      zXPUhil2Gj{EkDhtLz$n7ValCapBGC9B3JglY`W%L%?Pdjs?5Bkuk_4_H05=3InAuP
      zpGfmT&p2bN6RnD8m)!}mhIK;lHJj%n`CeJm>VNrH_BFA~OoxBKLCL1%s$?@3$m5J2
      zGXgx|Gvu3KrpH+CUg2T4eTj|k?j>q`d-SUqddz2|pd7%(3zm3^3OcAELX*2Yg<Ty_
      z&;p9e+EP(jV~0xiX#pZUUE(u~%z2LO<r*=go$<QA(f;|*_+IFBVHDmImPW)$Eo<)%
      D#fotd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class b/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0bf97744a7bae1853f82a34011a43f0c451320e
      GIT binary patch
      literal 1275
      zcwU8*S#Q%o6ot<;cGEac6S`!hH0eUK0CmewTl!EW1W|woP^wCZ%1K74gJV~T6CU_e
      z?3IXwc;-hT?o1-5ODZhcW8b;=eCN)L|NQ;=3&19}f|y{)G@P!{s5OmdujN_BUYncm
      zk6p|0UYL&A;O!t3hFH_=nTBmT4dYd{$!i`%=+JUHp6S#$!&3P_BHIl5Vbzaz80O1T
      zvg=v4@yzTTd1lq-ls2_fvn|K+b{PWsLWMzj;?}tahKP=7Xbh7(ay~?%m<|<_4AHXX
      z@R!|ImABsr9fp~*TQlv7*|x;D3~C4<62v^i>=?9$IYfkJQb!O|#PyCW@)>dXhfzBW
      zi}_NiaA~{SL0lt=%ceCfAS2qyGN?kR62vk?{A|9k?pdy*VF?-G>$;9L<Y+;TyX4?u
      zzI=W+wl78s7elmkE$$t;bp}?Vm9~c*hKcGiL;CWr2u;b<Sb4ltN{H3D%{_j)*EwwJ
      zxQ#o+ZS$7fqitCm<9)2tNP~N4weIV9AhZHB!=Sx(yX_i(YKhH`UpQ~;LXwt`(&?yA
      zKojRgzR}*&sM0e8ajL@fWl&sP;Xc^G3G}asewN8s=&8xct2CxCBctM;_KWuj!Dx&X
      zPcU2TV~!N!-;o$8OiL44C|E`mD^f)t)R3mI6+)T_1HF$F5wTn!3kQqY6D)2ieJsh>
      zl`ZuPqTi56sVU_LR`*lNCm%CI0AQU&48*a4Rr<vRswm?*<WZ1a<|tC2nlK&48@Nfc
      zajL&Xl`0uA$mqbxJF=nDm>kiSA)VM8`{x_np{mD7U{_MJGM4nINuL^#EQMHi{ifdz
      jS?RH?d%v+T>T|Fm&#A6-ij?+AX`d7wlIWk2)sOxGFRT7p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/jvmti/Location.class b/libjava/classpath/lib/gnu/gcj/jvmti/Location.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37bcdd962af25d4c841d6df18e0abc19ecfaa48f
      GIT binary patch
      literal 1096
      zcwTi=U2oE06n@_EQS3TkIQF5_S>0I67<Kb|%q`KxD5=}U49UDJP@$x>leNSj;+4N)
      z7n(RmG%;TLqm1V*-B5-h^gTUa&-1+J^w;liKLBiCSHJ|rY{T)jMy;i_x^2(Wbhl=B
      zmg@+JGNfBZ*U)UkX=wY^mRa){;%(Dwx^)ItW=Pm!Hu<+L$MSX<VoJHJRv4ns-MT3v
      z0!cywQw$MBty}>^N<s{AZcR%N5GRjrIp&_<u9}@UM%6YMGMt88F*+8151mo3X&p1n
      z>*E=hh)>fvZgSiJ?UhIv3lgs3I)yy<!0T8}gJDKd^`WqVw<O{QmIU1VNAw^jVHR_w
      z(0uP3HWA1w`slrs)VBobR$H9<r67gqq6Fj^=0=-8^DVn>c0?%13s4!7!wlW!;A<!_
      zOnUB1^TWA<tWy4ugrWoucNv7PVf*I(JBHjiw&RLdu*oNNZ$w}iS1SoTps5#m;v)%<
      z@r16#I65*NT88y;6_;G0))E(6;&UnRW(y4Bf$Mi_<_n9DdFp(iMP3h?h8UrJouD7>
      zO<)PZ8Kp=9e33+YJEW`_ovHj8Ci6?DNap2Jq`w3O8G2@@09dAHj*3>1Bo<f6b1P_{
      z!VI!NU~w20SR5!qHZ4F1vq>k9CGtJY_po?!(SJ}=2zp9`oUkV&3^}Z?5kAM0*M5S%
      zE_@}L^#Aw?(`2W~PLmyro<xR?MLPNS8YA!_VflivjN7<F?PFLZd0EP4eCI>Jz2Kfm
      r_;;)va;!d9`&d82M&^DG4>@8VTV(aH{dq*p)?Z?lFT^|zvUdIe4r9{|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/BootClassLoader.class b/libjava/classpath/lib/gnu/gcj/runtime/BootClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1635a30404009ad59a0701f9777d1e354cba70ec
      GIT binary patch
      literal 1561
      zcwU8++foxj5QhK3kc4FsNB|>pJ_v-EHJ&*L${9`20>t8SlO4iR$qqHyC_aUc!7biE
      zl~n1aRX&tu&nAWtf+UsMnd$DY|L&RW??2yv07xJiKm$X6)+rj<%z+_`j%(++u^@!I
      zm@^B7q%bWm1Mo2n);g{6+##1$ZVdie+p*m_hR*Tif%(Zaa;B3twp?jD*_nwQ2H&Ev
      zxQ1J3($NTwp}X3#ibdW*=nNrcjdRBmvcRplWy^vFhTA$?;iquZvX*SgGp>*}FRVzB
      ze=h~ea=!%8&d^Ju<0Lv>7JZo%K$t=I@;lr$K5Qm~=p>ODA$bsY7!br=24-jo;hs|5
      z!!TW^w5vPo_3Bs3`*ieUfLcY$DIr69nO9aoZUGEYWf$?ACGE>c8Gh*6!qG5@5v697
      zAyTbodtZvrW;(|`$QUK7kW*%EPslu1IV&KB)}-z5jbc8{<+ci>h9^bF%<Y)cR_pSn
      z&)v5RbOn+(T$CBAD`%&vw+eKn1JueRhJob&Rgqgunz#z-u^C3|U8mZMLvdOKLTCGg
      zQq{O@2zNyk9jmI949|2tM}m5>XFHZxM=7ncP3f3cwkBmOi}5*To_fMEbar(#v?}eZ
      z+}-2_QIr|-9J*fpze88KUh7!EJY7hY>ms_XhDQn}uLl-gJ7+9A#XOg$*USJ`7{Z>-
      z7RLI!OQo;rSjQ6eyE-K$(6+qUimeX6qvnv~3P$e^Mt@`V@zJjlep&};_LWAppNO(E
      z1f!wmQ?x`wZE8G6XgAam>S_o@&d_~|-ea_+&M~+fJHznLZv<$^Fz(a00po<|^ME}B
      z??p4M+A-o;$1s71n4}RHC?!Lb*6?OAJRs5-nh=LUBu2godOq@`GCcOEl6F*NBszJD
      zr>WR4w5r*Q)G_=YSt@oyo*LQ^CjXL}ZYmMP@)J#?8xzJ9IxvGS%vC9gRFp)>rj+>U
      z-7$-oo{~Atm)kT=>jrxIRn}K0G%ICMZ3GrQVpqwdLiCr3jO<HQ6)j&SuGSLQZXmw#
      H{NMfstgmPV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/ExtensionClassLoader.class b/libjava/classpath/lib/gnu/gcj/runtime/ExtensionClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0fee5eabd8793f7a54aa7bf47a2581c00b2c0c5
      GIT binary patch
      literal 864
      zcwUWCT~8B16g^W4yR6$*iUnG~C{S#9=*AeIAjSkGK5UFhO%tBXusf+kw!3C_YQTRb
      zBs7u4AK;HN-Wdt3g$EyY?#$eK&OPVu{QCXlCxGYZIVdq~jnYXlijD&{Nwpk{;O&VP
      zX)d#LKjC>EW;_<kL7AaFTlr2TUxX@@F}O0#HBTeKupRyn^DaXzKh3omf4YHg-hvKn
      z$-g*vFG^%8^(%(CZg0p?-p^v;fuZ7~3Xfr7&*m5D>b{S8EI6p&;o}y$hb25P91Vt6
      zH$3KFd64jQ6ch#YhK6_5hXa>PgfbQHC*vcbKJuf4Ow_|H;>nOJY0mc2!yGE4Q-78@
      z1tZSI6Vhus^u>wp$5Q3S!Mcw&HmEy~<2O=?NM}ll{6J;n4=SUn>r;kCQQAN&nT~eN
      z96UoTc_P2rX>@!%f@eH+C^yI^DiR0MNNnEqNBV}7o(D~po=FL=8653gW0Yc<)<qcN
      zdvtnjtAMpju)`_*bJQ-eba;l^6wBvW`EEJZXsz1H4k4dmmBch{#(dRlwigr`#rd5n
      zS~pP77A{lkhK2cmi}272D;axN1TX1ia?Vcu@dcjFQZxzBDo{9A6fQOk6wErRSPxrg
      XSh>LVtc`VowTWco+6E(AX4m}#BaE_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/FinalizerThread.class b/libjava/classpath/lib/gnu/gcj/runtime/FinalizerThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40e118d78bbe79cb32dbaa89717a480bec92d70b
      GIT binary patch
      literal 525
      zcwU83O;5r=5PjQL3Z;Vb<p(Ny0}eKxF<vwzCJhHMJ#aA#tgr;ONoh^=Ul|igJop3r
      zQN~&DBjMs@XXeeDc{8&gpKtE~&TwqQV5p5$;*ACqFG^G_XTobs#i#N~M7QHe@SzQh
      zVQa!4xHsi$<gHMK{QVE_P6Lk&tjCZ#mrBML3}(F%Fj$x2P^6J%IP_(oRIXJlBC1;x
      zabRN8g^e6Tx$gg|b>m2?QL7O+pebBzqri}vi};F*S*S>%-fILIN|sz~Af;&)7duE(
      zN{>Q=`cjEbGV7BV?@t9o!4C&~8t_Q!_#3q1v79rU`2XCa#gO}5{bsefNn8e}8z#{}
      zw54uWS}Qx%JJHdJOvfj(o|Zg|d>d(cGZb}TkO!2S1!n=bX}uzEzM$A#p!`g@fn9nl
      qR14ZMMNt-e$YUQxRLKL}RXrh9k}>op$fj|ywDb?!66a{yt@Z_Nb#Vy*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/HelperClassLoader$1.class b/libjava/classpath/lib/gnu/gcj/runtime/HelperClassLoader$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0503a71b2794c012dc71880760977a74518a8802
      GIT binary patch
      literal 896
      zcwUWCO>Yx15PfdaY!a3v1iC=^YH3=MG-R6#LIiOsR3I%MQmY_wb9Sx7(Z(BjH%RbP
      z_zk^q03;6l0Dcr=>_$LUP&n8gzj^b<Gvn_+zJ3GHL)XCy!`4X6{ZTma^;~6gD*UG+
      zo(a7l^E3?-9tqv(Imk2ACj2e;W3ER2%i%<XnS%m@XHl8>2Qn6lPX(Qs&<uraEYrpw
      zB?y*g=o9^+R5E+Su+#hxerv#x-%lb@0>gP14vJ;uP<2s4jUm@GglZs_crl+2g+AiL
      zSTNLsB;@gcYiaHaFmE2pu)REOqh}t<!%)mJs;e3NS$jYD-JiouOEv1Z-V||#5_BhA
      zm$8oP4z8W*;|b5j4cufX3KgZVWj1D5YyMqq!-&0?GpaC>)Z@zO7m(LXz|?sroS}S}
      z%ynqyLk#asaa|L_;677ofeY$N^@$4OBqfFCA{!@>gEqtF(oVVP;4Z^DkD|v?(_cxn
      z6zPFZrmu8D)a>0qiX32%CYqzQ3RbI`!O~w{p;bbe&~s$nr@KMQ?cGms+h0)mXgL=Q
      zW<4hQ9_nPdWE=D%E?ImH-a_Swm^nJVPW|#{T>XGbr+&*CtGVO+@h`=KRd`_4HclcI
      gYR1~cZR_{2g@#q!wvjuyWAifW1w}V$&!dIipF6M9yZ`_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/HelperClassLoader.class b/libjava/classpath/lib/gnu/gcj/runtime/HelperClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4aac103708ccca9628553beb47c7c8ea8ceb94c1
      GIT binary patch
      literal 2189
      zcwUWE&sP&y6#ia*O&AA}2uh$;EL1}vL}-f?thOL1G=K%f2KvKE@(6>InRI4?v72_$
      zO_wfuPOEGyYh5Isa%%V8_unbKZxSGqP)trHZ{EB2yWjopz3=aT|9A~x2t^4VhD%wa
      z5YMJJ<5t0Nv>cD$;d-81le%i#2~*8*OM;K#{HD64#trVo?=2>34jBU1HA8c5FnA+<
      zD-6C#Gs7h`F(|bzGQ2pYzz>BX6j@8uo{bB?mV{>T`9dzmtz|W(b23YqX;oiQEls>v
      zH+{~AW;668PNY4~&>5-3(N!ZGuRZEp5q!=HK5YzrNBJD<McL+6iyICJa*Pp0RWq4e
      zn#I$OX=&V^w#?jJ%OrBnV}|xxN=uHV8Ck-W(8&;X4+@T^R}YrWhuqM<=T;E!FhIry
      zbW6C%aHa<0vF-4jf=hUh;Z&A8hoMFrglZ7Heya(+xGdrQ{Ss<sd|K1Ff-8tHH0M=k
      zV~LXvDkUh&R0kj<jHnQ|pW({eu~-p4F$IH&Gc*~z=(yQ4v_%>)l!@Vx2+$!`A1L?`
      zA5m?1QL`P}?Zj1)#5Dz@f^w6+Pglkmu1gqyQ$rV2!6%?D4ss)7-`AXtV`{Z3;nV$b
      zs5zJ@XgZZ&;7=%+#4QGCOVtZ}VV&V}Ezm-0lUk#Z?lNv-NIY&UxPuu=NX_So4nwRF
      zle(=c2N&ma1qmT#&@n5A66R@aPMn%vA~1)$LfbD~;wO5zwd=)_f@R#J0oADnhm5Pe
      zW2iY!|Bf(UtIs8f`{cP!hBAUkis-8hV{g?uGmX26;VT7S;~Sx3CPP!r&>A^<?TDs(
      zpg<Mf)3Tx3bEd_obe^LLw<V-$mJhKPD*{Xv(>(8JrXeE*E|^k*J8GFOZ&>Cdaa*~A
      zO?`CXAnKf|ubWnm3qA)xRHQr&?L0}u;1S|=C62ucsB@)^W*M%rmsSj?-%y$i{6a_?
      zgR>2kW?&lqsJU2?p*!*a)W}?3G7DB(6psR)tE>K?0HBLv#xSb;+(tL4?}hk?ryl`&
      zmuPhj9$EoSQSYA!mLb2O7Y~{tE;kQ7JE{6zI87_1Vu%);ae@43t%6JtsIZk?kp414
      zM^P@4U$={Lu3~wBBBP!5X!vm+9Thy5B5Q&Bd>7$lf2ivf-hGLlGWzCr@Z&%U1M|D+
      zO~%T&I_3-eN*MkPTI?l8O8EFGI(Bh08GD7#%9wKZrc0Qe5Bqj8myDLNP{QJvKkR?)
      z%ZvneFc95EFd142b$M$1!v6NaaK*EXFH2baDX`Zb*xvhxf`9vT?}r^U6NQwZkooHc
      zv2Mk$c!q2>=UIg48KvC%={-uh^^wIO+HjS+dk8%krW3j#={t)NB<Y?@;|6}F|0iVk
      zj1=9*6n@8TSF=T`0jY7I*>h-!xKV$>CLU7MFpAJ=&r8?_a`f{N>L^U)sZI|l=6A5D
      Z=-Z^M4acol!L8929=TOubjOHK=s#AIDF^@n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/JNIWeakRef.class b/libjava/classpath/lib/gnu/gcj/runtime/JNIWeakRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02793559bc2724272737355f243b3def5ef7642c
      GIT binary patch
      literal 363
      zcwTjo&q~BF5XQf$wO#9KbwLI70sI4oJ+JIV5R|fl%6d-YY)$Q^5L@5Nli<Mz@S(&s
      zF6=?fz%VoU=9iCreSdrc7-A43AnX^W6@@B=ZB3)+EUqV44=kT=c@`ri9F+1^ib|S7
      zSe}W+6<aon3DLPWx)~F8j<TijCNEhvqvI(dyr>^J!3x&;SVcrgGi`X%&U3c+GOrwC
      zkkv|7Q)zYAFNR_Bq+bY!+5h%Ngr5Di(sYzR?-P={y0wZgb%#ust7o0oeE~UR-60pw
      toy)Q7#t2*h(aGsMdT*`@khq-q>8?}mVcl0=g+4YsCBi0B&)V`k+dnp~QWpRK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/NameFinder$Addr2Line.class b/libjava/classpath/lib/gnu/gcj/runtime/NameFinder$Addr2Line.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9299252b2ad09fa4b147988bd6746a089b6c18cd
      GIT binary patch
      literal 1669
      zcwT)}ZBr9h7(EvP3+wXIC@P9CSkxp45v^JcwJH@$ji5wBQ~TnQT;pYuU1qaU`QZ36
      zRewr9Gb6;Q(|+Vb|3Uvur|0e_B#hC_Y@WUQoO|y%=RVK<=f6My1~3KNK!?Cs(Wxej
      z`IV$sb$nHp$$7ghXO&Zs-q_Vb!8?;yjx-Pv7+kR*+sTsc6q5_fD>Cm3L{>dFFR(k^
      zOx@-eS*fH1I^8NE`@@`alh>*bA4*RamOSN4kAM#4w979_yAb5N{YR=Yc3NO0{b`aK
      zH?17yUly2(eGb?{GUI#7DW>9CN|<pAvKInhSl9*2L??Dz=))cgh{dx8_U=#~&g{W{
      zfnHnNQ=&aRI6yTM(!>Z38#u(pnllzdCKit1sDN3Ne*KHUP%NJQ2$<5V9JBBx#>h@S
      zl{7dOyWfU=8`rgv6BfGAZ6GGFx4pLp5(2}G+?=yo^|_|B%VFBYDNGue*de37gM}n`
      zBK?%nGEZP%L(0wtDJG6H+Rw8*>R4MyJZs`4&S}tj)>0ExFNAnjtNPkPFH8fM+NcUE
      z%D}Y1fktkj>Thom=C!QL7QV$5fdTSwMQCzO0j(J-Na30$H$%^2?J-)yMO@dY*&Pz<
      zwH`|N-hzQ113wV5ZN$R$r+K;RE0?`6pnGk;T3(jkU3<C23W=uOyj{xLp3>v`$B6C=
      zp7Uplz1h0#4|7>LwzoE`!WBO%B+_Y9UIK>KDAd*lZ<MJ(SH9#{q&~c?g}d0JJ;-X8
      za~6Km4P+E##rNDbQpmVfFE2w115KWjdR+l)&T*tSQ?e@+SuyY%&+*gR*m>LPaFo7w
      z@;Zy~Vbw$bXmSu)FTmiSZflM@`1GNl_yNBCOKcaTN{nw{Fi}Ia`!5XTI-~nCxkz+4
      zlj}N_nSYOimm-Pb$iyZ_H*ow9M3xfoaC{5r5+86f_W|*o9&cj2hN&99+Q0=SE;5m-
      zC%&oSY7O6Q;Kn*P?!`DJF-Iylx%CN-fi=>2#J3W=zKl^gM69yOe4NK)EZ_;!L?r@&
      z3b!yHNK?$*<~k#Y@}jsy3q~n!5t#tTv#85_#wZw*q;p{lrVg99$8ci{{W@%7sj15h
      zS^u~mOd8>p)gXH;@bo#oeL)XjVhFF8{hj{5=J~%N>9+w<E8MP5v;+5p|DW*-qZyF-
      I6%T;_0X8$3%>V!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/NameFinder.class b/libjava/classpath/lib/gnu/gcj/runtime/NameFinder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15d34ef9ab54534fb2c6414cedd0625d8edb23e3
      GIT binary patch
      literal 5440
      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
      EAL=gxXaE2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$AccessMode.class b/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$AccessMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5f77e9cee619f681835f3641bec59b6e95653f4
      GIT binary patch
      literal 991
      zcwUuK+ins;82+Zv-DO={ii%PXwH5@nm95t{CWvi90&RnYrdMWIM_97EG`ow3xAK@K
      zn)m=dl<}WgVokh|Ud;T*@B0rkKYxAu0pKxqbu2OLjKY~SawkqS3llF8&asGMFHS_5
      zJbRyrE<Y<bU01|$clt``$TH+7{0(<}9*&%&;Y7FzgC6iR8E2?=R5bLajyvXIDE!zt
      z@O;rqjdC|le8Q0H?KhvlJUZ;0GBi4u>4Lzf0-yBS{e7x_+-nb-QZx2k-wVCuDMO}K
      zA24KFl%K;Y)^y|<DhoAdL5F67;hKf(xWS<9%}MRrg5%W(Il|wROol99vXFx&eYd5i
      ze0MFFsc%DS2E%H{3&r6q7>cORhd!;d(3!g2AMnVNwsM-tU`sY;Nod8wGBg@A8GA8_
      zK)r&&)w0UF3@5eA?Y6$)g!Be4rnATuGRRQ;hqNJi7_2tIqL$C&Sj0LS44eP$hqx~~
      zqMu5yNk2A=f}EAKl3c5jxw$lz%+P%W7Uf?htFKT%?K{}%C#;;K@EOI_xTTEs)VQOJ
      zdmkxx3HRwPP%XeGmH_JrQN?R)s;E5lCFT_l$dW$OKF0%l`zy*994o5&jF{e1m+ut5
      xm}cXl>Q-u1nup~L)KH&uR!B0E%k~$PKm4K7lym%78@9T)v7?A2=n)*0egk$g+s^<1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$ByteWrapper.class b/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$ByteWrapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac8b998ccddedb527615e986021a60ade3f595bf
      GIT binary patch
      literal 953
      zcwUWCOK%cU7(MsS00pKpLcu3$DOz6b)R?%bA(18~P0*TX(15QC-oOwTa2_Vz`v?39
      zuH3jWk!V~ruKhXw0QI|5Y?^j~n>qJ!zVn^$-1+(Y`vHKP*o=WQZ1kPL>i3408#ul_
      zmexb*dba0F$8YTW^1hfB6+UsrbSm8#bOv)M-U@3ZoW8Z!9m<~15a|-fW8j?zgFX=6
      zfPw8YME!y76}K4HnhX1E6a9|u*nXX%RQeBor%`TEx1Gsr83#kkKpcq#G@Lb%M4CY>
      zm0Rj&#Xtm6waOWYVTrg++mR1~aaX#JMRz0_(#=Uvj9S9A)qZ}cEBg%AVl&4>qCqq-
      z7*hf^!;%U^Sq$x{NaUM9j7T+GYMu;oyWCEofMN`5|6&e&dt}{pU9s;OxQgoxu~Mf&
      zqqj+L(j6-2r(_rsk0ycJllN>jM(&i|O;y5R>^hEgcSgeVq!&YtVRhl849R1&VvADM
      z=zr2+s*q`As)z|p^&H_1mB66yGVR{eK0>%rsm^ew@)f35uheG9Xt(u`SkBk7`mI;>
      zcRI`JwSy0TepT`_WIs~@$2s~Ilr(>d2!Dz=ZzIV&F!?j&_;ch5*ZB*aCtd}*YJv;6
      z2!tzTj+2oBE|G?Y3|4TNRyrBW<I3EgMaT#vl`qJCI%*qLhrAa`8;69sG^0nkHZR^G
      tHYZF`ai;nMjNltqPs$8JncN}u$YBaMuuk_JrI25y89)IlKUMOd{tLMC#P0wA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$HashIterator.class b/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$HashIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6a39d0acfac9bbe70c2d16b974d08b60665ec29
      GIT binary patch
      literal 1509
      zcwUWDOH&g;5dLPeupz7v1B6FFL>?xKknr*aqVljz6@pbFRp^B!Ou<rNH?_M#(5n|q
      ze}M-dCodkb3JOZ9^zPsBWT|M+8X>>|4zu0U-Sc(#*S+8NK7RqwgK-s{p?lHFCl@oz
      zNhfc4=88z(7mjPXp0K=;bx+(ga&31FcPZ@&$M9@Ng~AYCHdc*f*02_nQ}fFr<EbcR
      zi1^mLXJ(WCqZtC`!WsihGn8a(%D|v_>p8(t>MfaWTZ*A|;=~FDDSXJZOmCRsV*C{G
      z>BI~r8nqWh85quLD2En8096{!pqi?RCuXE4sv(462z6*sQP0qFBD97W8X1B{CL>(G
      z{*KcWlt{~T=QNZdD7Et%R0J6+CrnFB=2zy0Gi}UgiI>QPoiVaAhGWWm!Kg^G7*Z!^
      zIy5ZeO<gkFNwMbnJwGBO%fD2|6B9>=I4F70HFV<AL4&=gW;`vQcWX!%Kkt*q9u2+d
      zJ23V$#7~F$ctphjgMMOc8=Y~>bJj!X#}zr{t1?OYc$3F1i5Xesbq#~XlkK6cHEHi0
      zv0|?Z6*q~9gQpKIH=oPdjwcqTa*}M*w#L^oA}5s)hEc^3dSK_BjJRXU2}X~V+%3@<
      zw6tXjXEbZLuAmWX#q&doRwY2E1PZv^82WL!+#!+?xw=3&ESH<^3Y{~kpy*1{<|r;e
      zvQh8cLRjBML~q<ejo!I~+ATEcfh{zD^3hu88>I|jdnjQ)P{w|ug8f32{l*2~$0ZJ0
      z(FXXM%*!cHJ30#421qiJ<@zR?-k?PJ82GpkUMgK&^})1%VFfUv6!8MYcWO^2da2J6
      zhO!`w+(h%x2iPRTu^lA%Tg>S(WsXWGQ;qTtRnk>(ckLjxA?>dZnG@2yi~iZz5#y1k
      z+qk^(oH0LY2iM;JdBryNTewcVf)nGs3K3q7b3BT6UW+bXha0>eW4r;=Jce1`h$Y^H
      zC!{~4*cZIHh{KnKwkz=zL&Txv>;|d}1oZlx0>NDj&u-(^*CPa`iU<rAkT`Dp-w}+G
      L4Ecz47(?VQQRGzR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$MapEntry.class b/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap$MapEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c07e1c7b9fffceedafe4e77593e0ab7930d7eda5
      GIT binary patch
      literal 877
      zcwUWBO>fgc5PiFGzKm%THv~$7QYdX=6)dh$iqr^1L<*Haxo^xWICVG3UKiy*aR7-3
      zi32}?ABC8842Q%L9K7>(cHX?1=byj6{{Zk1`&DoTZ>&;(98CN;RXRME{;7<UFws)!
      z<C&Hx;=?X|&y<d5Ragv-iMSAcB-Ge{J(|csGnCHcjKLi&zdU9rUx+A`43$wDoJp!>
      zeYzZmD%3{|olbw1w3_J-8LZy)owQNHngbi_B--f?>tJX)D5GM~hJ)$?U2#xDond_t
      zD)}lsAIbQw7)8<yISoWK6me+odD7DF!-U~r@c&lOY853vzBG&12n_Qz$5LmxR;OEJ
      zM~&X|(mKK8+!We{Y_Z==(>RdNLo-u*Mf-v2$Kdppl5sB*Ng|Uf?lJ8Ab8Hg+GdTTs
      z(xd-hf@_Q;<Qm(uNTyM=sKUl2Ivu)2;FJMc-ZxzK4(4ch_vdiEtvOm>D9_QRvrWCg
      zAHm{>sPiXS<44%wPjQvryagZEunA<y=&%f3CuN?YEkY$UaRWDVWuKy{Dtlki`21I@
      xVv@X<wRRQ-dFv)_6_VX$@{2<9Hf|S?Tc4K5Ck14Vo$S1WyA<t=zKcC<{suSjrB(m{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap.class b/libjava/classpath/lib/gnu/gcj/runtime/PersistentByteMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff84e010eead38ec47b6b0d9aefb6bac8dffea63
      GIT binary patch
      literal 9645
      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
      F{{f6SXz>65
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/SharedLibHelper.class b/libjava/classpath/lib/gnu/gcj/runtime/SharedLibHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ed177b738e8ef9395870ec8d03affe380afa907
      GIT binary patch
      literal 5568
      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
      D-35EF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/SharedLibLoader.class b/libjava/classpath/lib/gnu/gcj/runtime/SharedLibLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44636a57257e56b7d1e106b049de10d6ea7dd9bb
      GIT binary patch
      literal 2052
      zcwU86ZBrXn6n+j#Sh8J88z8*YwxL?h8(pEkm9$tzUZNXN(gs7-nN4yNmf38W&8A~#
      z{6BuQol)q>jDB>+ALV%NW(|QR_~q`s_nh-Q&w1JV_dmb?0bmI~C>SB!Za5viQ9ab%
      zj^kNPp%)KKSJVuvVzkVfa213J(}(7BQ@2g0p|9CyyWKSrMh}F2BsUAjP?#;>CCAPW
      zEywa!35!YN46o?9mea@?0~vDpREZE?Yt@8`5UyxYpb_SiL)=p(1y>20Z*_#HKixIP
      zaE&4AmMz8*BS6JCrX<ib;lbrfhTce?8N#e@Xp3scwY(R)lv!+b+$xKWV@`6+6P5#x
      zKu+$NaXzXlTu)!)#j0CX(-RD?;w{`#aPzY6bjzyYHWCE2ZaKBBpcjo{)ftxAfCO^;
      zssHV06ofk(A{bTh4&hcW%YtdwTW(X-INkLhtK!JBS`J~tupF`7X;y^$#H`qY5Hng;
      z(=M5=CC|ZS*gLS=mrhiW4neW4ieol?q&ITofji;=$0N)PDF`7_x6KB#QJxU$xHjSH
      z`EK#-510|zBEo$QAK*j6R6}^h7i~{8&;1;8$<z>D8T_#vk1;}2w$3*a?hc~5h{2N7
      zURB!)9ug84T((=@Myuo0dTw%{RyBNr2P$%SEUA~c(%ssHsy1_9AHbtYZM&lFj|4Y+
      zxV-<$C5bjQe1Ubscz-lAWQK=#Jj>SColaA@rqr8L@D*Xww^=PcztfiqVN=02;o4bb
      zNmRX-tD=CfWoqAWYRSCpQ2|8_Pw<qJG;6gBz1*oBa$GL8Fa7p3e2X$+OxU8yL(}f-
      z-y7<9UY_@6u1|q%P51xVu;eIDT^QMWG5`ylLWo~rev9PK<F6!#f!8RXe&KzDzj``*
      z0`(N*<=8~*dgcU^E8(A^?9oa%oz9#hUY-ln31-8uapN~EyyEZ(Ci&%g8zZ>O0CyM?
      z{6IwbCeAlAcn|YP;U?0^@b@0C@3P0LFG6Q)67Y8^_8@<kL6*_vZjt>%j346t`v^1A
      zbg+}+mjdyh^I7_<>C9^^hfeU(D?WAgsJ>;H{qFm`@vdi&R}FYc4l3JL_)endeB=r<
      z%d*X;f5k%P7>^3szo4BWSLV`u`e*iKk0-`aV2miEj5A7{5hP!t8{gxb#b-WW6cem_
      zjiX6UZji|%K1+SkfN$fBVAL<p<Gv)KJ<w<XO4vfaFNrUG(4Sa>6qiUdq9HSg(92U4
      z%Hb32Y%gYyvAef;jM5p`yx*L4UN^Wvo6s0{nvriXqU29^@p}A;fPa)DWqU^0`wI5)
      MjF}1F`MBTz3)no^c>n+a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/StringBuffer.class b/libjava/classpath/lib/gnu/gcj/runtime/StringBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69c43c39f80679ea43314159e87e9f879ca6e1f2
      GIT binary patch
      literal 2514
      zcwU87+fy4=9R8Lh<l+`WTB<gLmV#~AP(rJ%7oe3Uji!du%0&ScHp`L(H@nPcw<Gn*
      zQCod+yo?Xd=!;YJ#nCzz$T&`4o$-%y{GGGgTx2ns$>DcSe&_qX-|g`CKYu&|a30%1
      zbO{(J>2|uLY^6<Gw<=XNJ#U#6y>!*y+*HjV`~sp|@@+Y-$$BY0SKLw+OF%#|$XkGr
      zC;PUn*{Xo9)eQM&ujOVI3kz$RnVU12{KB$;BN;=lS+Z^|F+U$sM+J1t+uN$XAz&!E
      zGFtdQ36lc+8Dm2Yv1@+Iw8@GQ>!z&L)CdF|6Ct8sz=dR?Dbzuj><HaksOahqyINGu
      z1-YnE7_ow($l8)@R@mM>^jqahO~7C$IDgSFG)l_~3oO%tJxt;UMFh~z!Z;;j2&V-k
      zRJ~@KYDV6cm5Q~qX6v;bT`8M}Ub&-E!u-kn=n}g+A|i+o<y|QgV}>#2JH|Vdyxzel
      z0tsV5qy+Rd(^)X|l8AE{7Z9=x$6r7{13Qp&lBnr+l{8&ve7TN%&*EYb&rvO!P&v(z
      zEk<~WvE;m2HXW86W65@8nZ$GuQ*GUxHEgObqq)pzvfeZs4o&ty9p;Qerw)rCgKI%#
      z+jt!h5jngfAjrpOZd1S+Pk0YWKBKtB8ufs82(OV~-PSb5J1gP_=4jS5RWDi8B);Tm
      zp8ar3#Os)+QkGOJQ<hEY>`*eFU(HZwkyp(!+tHiEgcQM>SP5detv_aEt1My_Z;?+`
      zevihJ@EF-USPx>YJ^G!RrB+4AC<+M6rYY|z#`cZ?$s_)}#}QZATdnAos$G3NCo~5-
      z;dM{Zv2~fpy2QqcWT`kEfe%~EqBMt;#+81rCxgI`B|Y;VnKx`xQF9gcB=oh`d7OFE
      zlS;hwzOgS&HQ0wnl-3gn)1DB>?!pr|Lbk})9y-a=Sr>a3rT8}p#d?22AlA2sqYt?E
      zaa!43;1Zss^|<4Ur|>jqh!T37erJdSF5)urGp~dsJw(F4zK@e+3`@(jTk)^&A`xGd
      zn(#eb@)eTzGC|F>&?Fi(2|R-{5CleZmiFv#(xscG`wSs0ovdTjL-|q*WVittMj8{Y
      z^79QSCl_I9xQ+`RP{l)_p2rI=)QbmHovq^~4=DW*s4J8P2WsYks#G0UJ)rI!0`)5L
      zE>yn@b(c!RR86G*LU-(XA+?9XG%wQtD^tohz$-=jJ>2948({Tnsn#Gh74RYa_=v2J
      z3HvUc-@^z#!8ktUN=`W(4J8v;z#`W%LdEFj;n2SuSJMZsrgWTfKe~^kV+6{9^*Y{|
      zivJmyWe2`79}`x`+tS!BhJR~FI>EdBGYa@~qW^-L=u3>^E0Xhdi=1>rP8teNTpUNS
      zK@-wNHVvmM=OW+J>`2k*K1xlR2+!}gboDz9D>`m2EQ5F)(Ji-NebPQEl8+^jf@sqm
      zqXYuq(|VtD|3Gu}V@nbH8e04CF4xN7H5dMUcfQgL-YulWD!J>9Tr|4Q=~6slJa<&i
      sCb?6?pNaez3jbGn5*|=0ey2n|q@?Y(2x(0kuOUs~IaGPPI>$5q1$_eShyVZp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/runtime/SystemClassLoader.class b/libjava/classpath/lib/gnu/gcj/runtime/SystemClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc6e6a4030ad4ede8d8c3a035a5c71bea5cc827c
      GIT binary patch
      literal 2998
      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
      L=zZC)w$J|s(UAuB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class b/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Fileset.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..906431cb7a669645a2a4ff16f951b99b22f338e5
      GIT binary patch
      literal 1534
      zcwU86-%}D%6#nkAu!w8o4^&LU%nUF^$*jbzv`h-6)Ulx+npLj4ii<5v)AZaQQI9?K
      z(nHM@%*0H8KyUpEz4S*kW#{f9PKwh5+{3-+eCPYVb1&cieEAAs3@ZvGhQ3Xs7~5Rm
      zj#>G9t{|eP*)<Wz=JXsda7%&A;NRAsYq6YWY{t@S+kD+(aBqlnhG5D*D_VLkmeP$K
      zo}JeUTg%)^FnFePL${_Gy24LVhY-t_sT-S#WHPeKAkXHr+y@sLRVYvyT;a&7f>R8g
      zCjk4<gvJIiw5V{yqo9pJwR82n&Dw`n1O!?KLm+&-ab#6Mbg2lUoBC<l?2$Z2V<PgH
      zp_y9q#p3Q7H&?W^9A{`v<=3^`s%GlqcXd;?wsbP1KlML5$rVP4ZFT%0PYaf2lD8~L
      zw75aEm`)B?sgb&*u~)Pxool;^Sz*%!hK_^7nc~I<H+go6Yguk8h)`*rLg(0rFouLj
      z7sYhyHV`%qVnigxi1A^PgOCvY$4K*ul2`IO+|XZ&W}~<yaK;(hkKvFIFD4iu(ypqw
      zhDnA7gTJtB08tV-?v@Wzm{xH8pUdf-skk8q>*3FeT8_+?#ApI_HBzGj-_uOZ%A4f&
      zEPZJ8AEihb1)9si$>XhQrCiz2cI}H&XT)CJ;?-^)2eRxdo~-UC#NAv_aS!(isX&nS
      zlSqo~hbk74X7DZNi{?5PSBeBIXu2^XfY3*e!bOjpyc92kzGeC-@X}5LMXzbsO=~<_
      zhA&z{Q>KjO&+zw5$nOx0euBS(*33{qj+fD1Lg%AbG7HGPZ})$Gq$&xg>APFtvfuQt
      z@C(gs9|8Ik3DY_zxzI!B<4y<k;tXI%A)A+o&Z3`CM0AcK7d_Ju1}Jh^p0Bd}Uge%X
      z!m@(FOa<Z0P#JVGyja0#X1J$}_$0A!KVTnpSGl)d4$385$xOOSNW9tqaVVjm41wf!
      zBuENEk{40QhheD^)3h#1sx4)nND+;ilr(PQmMtZX8O#z|h;Hm{+#xAZqCbbbBxM*a
      zRGB0ZqTY!h##xmYr&VBh1>+J@A8NcjVqfyxy;Uct)|=*Dzy87dBlUqg^$bgP*79FW
      CElXek
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class b/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c785ed41bf70da0ef04b100e5866991ea9c95384
      GIT binary patch
      literal 10771
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class b/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Tokenizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ddd589f87ec058ece036bc8ab928cb0e2a42b30
      GIT binary patch
      literal 1101
      zcwU85OHUJF6g{^s^uZL$Q=~<amwgBo6-4oo*l5zEh>@4DG1K;=4Az-uIyJ<f!46mK
      z*s#z<iqXWquZ2ceE{u`HXiQA}0qXsx1tP|{Xy@EB_ug~Q{l0nr^YK#vLl|?zLFmru
      zrFbs06t@f`UzF%(HZ5^{%D5$T?XEE0a1jDa>K!$nSM^+cBE2Ls7J*ErQ#P*|@#{j(
      z3UiF$EsBC_s+Pg8DM6?`r|Ft?fzT4(pPY!y5L^i(D|~RmufU6Xf-@YM@q&9Rs6nkn
      zO$yxb5E@dNF0Phtr-eDCrt^Z|q>PN3pHWRs##Pc~EowzVZ|eWvc-}g#IJq~mE1ZnX
      z`_O@q8$m+zp6$dU=VUBlD(J)^f}#~?7d1;13u;D+h7*x_cAVi~lDD9XWy_Y4#v`e{
      zK9iQI={eqhFQIKeeW|ptAWR>6;P<idqY4h7U4{__QN(zgYM~(XEFs8xe|4>tkNGfw
      zxEq6n`ad_W;5deOR+A%p(Mj3+q=HlECU`8P(#DOE9qU}0oVdK45d}*#*o!k=S|GIl
      zOPS!CG)iVhT+!r7c*j*uAC$T1VmnU0cn$>Qu`&wCL*=Jry^wb67|n5pWE!GdP@=I-
      z2BA$fKCnxh`M(J+fS&QCd;u@L<Qww}EzEaS%Fv27z(!JrY$SyojCh$<nHwBSCKP>$
      z#z#1~3U6?QpBq6*tf9uW;oR8Ote3s%HGK320eWlewN>hO^+Gson*@%ayQ=c8YG(Qg
      zdgiv!ms&?_G*m|aJ@{jxl`_J!>*!;}hBA)Lop-GL+TO`nMeRC*)ueqHuGv@_C+@R|
      z2PsToxH{$t{5<A+{!~7ojy|H9KB0rQ(aCX?K4XBsV3@vQl)m92#}o7&*XW0BCo0#9
      c>8c$M#&H^>wv8s+m;?QYR1x8fy_&PX0fCw3UjP6A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/gcj/util/Debug.class b/libjava/classpath/lib/gnu/gcj/util/Debug.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac8d1ecde3648a2bfedcbde3f6a60aab4d26b49e
      GIT binary patch
      literal 5432
      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
      LlMvE6ml*RIS7sKy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/AWTUtilities$VisibleComponentList$VisibleComponentIterator.class b/libjava/classpath/lib/gnu/java/awt/AWTUtilities$VisibleComponentList$VisibleComponentIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbc0f6fdbd04800f766d64315f54ac2c46d7f20e
      GIT binary patch
      literal 2389
      zcwUuN-%nd*7=FICqqOS=E68A!t!yZ?C>?YD7%=vO!K`W6A{!1Cb%*u@&eERK^qeAh
      z-aw2dMoqji*~N%aV&a9G0cIqqi800t<E57dZ@im-z!abF^z^g=s)3~a-tYas_j#Z9
      zdEc-6{LjNp0R4E`50AjrS-qIJtIR72<xMMb>D3!IEiJ2Anre1UYNj@mRY#0m-q2Ou
      zN@=FG%bB#)f?^p3KYRj>Hc(d4XA{?E?y70ak2--C+gl`VLPC@y1P*9=MqLmPNr6CC
      z9+mcW)|_T`^$VO%?T_6cV}~?dvxWuE_Utz}8JiUFjTjj<0M-&h5C?<sA{;^pO#<GY
      z*rYspB7^|yrFAp}zqH!W?#D5KzWrqkA%YHpV7lxy34S}}0=Sn4gE)asKcWKR-KQa(
      z#3?GMnNAX$>a;*ZO4HTxVs1t)+)!+PIAx@j?4(lA<lb@mq}&3@ed<+n6xfB9`5kBG
      zm{HU-0{%J099I`CHk|~8#_YPiZSIMsc23Wr9|?hIWqihsiDG(gG^^$aIl7Qm^Ok1l
      zLG&R^Fhkb23q#-_b6zi~^O{j)ne}<s49L{Z%uz8;;i2+jc@hh1&X`yI7!c^LK;P8O
      zVm@yaEH!g2FN-D%mrgx~1UmOpEUKANEte}=QuiRvVOUPq1vb5>iuZ(7(Dd0sIgDOY
      zwRW63RoSOXhKdF!jA9|Jj%l)$N2<HlC!+*HNnKY9BU!~XRnw2F0&O)L%|7f!T%fg9
      zvk~Px@bYtj-;mD%@-HCQ#zy&sxC`<V!Xe%|OzR`w^l=@C_pYKLzK$dD$SRt>!*TB_
      zT2^qP_W@et572UE4aYx5-J(~-r?~aq;c-Xg{`S^ajP{_5-zV*S8D_uDoUal8bu{7)
      zv_e5QW)P?SByU7*b^~~dUf7mo=;7TsdT7ZCVmRe6T;hqmpYRSz9_LqZjB5jFMM|9N
      zeM2h<FM348@oz3~|K9$EOY1m=01WQ(EWW@W2n+2f(x1mOSg4|ua431`kC6<Y2tB<v
      zIf19?Em7L!Z4cKOky=5*$yyPqsoKLEk&0r{Rbly4?~iD!I;7Pst>)e@H_$h=j?>?|
      zRrJ}-TjXwu0>6!;c!&OX$#)4C@gA<=eT?G++`@;LW?N-dEhUz2Rd@KG<_v2Pc-EEo
      zEl1v1NnT&3hQPr^&vxYA_Mf|iz0ch;C+ZW5`YAf_8O2;?!q2OOjky%MnOX`PV02m7
      zv#zjTJHk$jR7sYMJ%s-+adYLmbluzjmC`np1kLO%Xxx4YtK6-j0pFk#4=M5nC0fH}
      zws;KR;X1y@EBK*G%xSlhTdtVT;dzIDzg-VsUfk|vMXEa6{fiA0DqV4a1YW2Sp4l1x
      z+n(VsqR9y#vR@8g_y*2Rg$LJhzEbUByANA@>wge!s|qRTB3;BK2WiadLv5r-MEZ+J
      tkE*mOBT1{Q&E<VyJ|^bh#C-gpm>!JSaaS<PHB76G*e`LG_+yGB@Gm+9{oVio
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/AWTUtilities$VisibleComponentList.class b/libjava/classpath/lib/gnu/java/awt/AWTUtilities$VisibleComponentList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb992fec6559f6ff5fdfcbf8d81f2e1535b8f660
      GIT binary patch
      literal 1070
      zcwUuL!EO>!6g?NFj3AUk3zmWwDQ$r&sBzcYq#>!9Wa6e3qpk+}qR&icbY?)~x<BF4
      zl^YkDs7*BK2lyp^g?isWv9V=AChyIC_nmjny=UJ1{Qdm|z-=^jL<r4iPQUfS8dxps
      zb<o;*wEr-WwhW~3s~zdft}WW`;Y-&MPGCwu(4i5^A->PR)=t+CJgXP%iC2AwNXu3z
      zLZWwi$|vNWnq!4A+a@8lB^?=T6BcV1BI+H2)^-m>0#RH}LPwGit<^hm5N4B@L5z?#
      zr6V5n54*zKx42wF)^vN8-LX8W)}y2rJeOR`Epxhlxk~C0k~YUiAUrE@JwmZ&)Xje;
      zm}fRObzC9bpHAgm@{}!sJPNAuCBog>w6z<`z!~Wrh&SAZ!6x|ftq3hN5-6jh<2u`Q
      z-uWa}P$k5rKjIC~JRxKT|LL%$B>8jixqYuEcBO)5&Q{h`>};UnIKpe&mhTH+#|EJ=
      zu^Ga`MeXo4nPe09!WHtZCLVk%cvdSNmpBvWXcrNFfJEb%$HrHrKJzMqG|#gNODVqC
      zX~by`bDYZ$(a0bRgwZ^+a<5oGZp66_ZHW4T{NqOP7>l3AoC*snOyDY_6mng~wGr2V
      zF{<KfbSrxA19FWoNR{q<!}2@Cj);yTR8pyv_kVsBKaN$FRHwAUzi|~htzw?mkmtBU
      p>!EUa$T?Dupn}y<S!3Nbj+7_s;Z6;8erGu%G;o7`%X4%S_zMZI_b>ne
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/AWTUtilities.class b/libjava/classpath/lib/gnu/java/awt/AWTUtilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acf2f1ec1f6ee9841162b8483ed33d746b27d2a4
      GIT binary patch
      literal 5941
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/BitMaskExtent.class b/libjava/classpath/lib/gnu/java/awt/BitMaskExtent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29e68738555312ce3f4410dc7c724956a886bbcc
      GIT binary patch
      literal 788
      zcwTi;T~8B16g@+iepxJbtyM(Z;zvr2Ha;2<p;(Qi)rXn_Z%((vc5u6Ey0h9B<C8zY
      zgctb(KKVeRkZ7Xs{uX|Ncz4)PG4bWzJNMkVbIzGxzrXzea2Gccm|&Q(-JrJ3U-KG&
      zqiS`jTHJrx7%AbZ1Pq30jXB)4YtOpd!cq*TBe<{H(st#Rw79G276Yp@B)d|r%bw~p
      z#22M2)e=LjGT&h^R=u7`BZf={Nu(IEP3elK!JsRK&w1Ao47sLfai_zFGCW63L-nQ4
      zFx&h;%>{;pFLZ<ED{J$e6d2BDFo}3rUC1DTcmfw0=Eh>4IF7Knvof@U0WE2aEb&T7
      z&rM>6p)jCjr9t4UQdg8L&sEY5yueSRfZ0&M6^4AJIo{S*L+RQJTIoO&VQUO2zc05U
      zVsYgi7vu*)>9!XPE%8Wd<)`%A3D?s9&?x=W1Z5IJ6$@ohj!{JxQcTmSMwwBbtRCRZ
      zp1v?eF|M1paF$}`cmP>U>ow<)i!SfOpgyosjeUg~hI}!#vkPOdSpS4vb@K~M<HZNU
      z%EsGzIsGoR^YQ2~Lh>5PpCG$Ohh@Ss^&N%H+@%9t{yFAzlL!Ng^xA!Td5JhYfQe<?
      z#tI%|6)il(IvSd9NekbI_=eS06p67(c!{defHLMH4fnJ~K-Q=dr;*X4WRBi{{>O^e
      OUshyKthlD9uKxkO7M)H2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite$GeneralContext.class b/libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite$GeneralContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d25849129c8ff7b5c239a1141886a42942a916c
      GIT binary patch
      literal 2206
      zcwUuMTW=dx5dMxYyYXi2TpFi!OG$v1+PT!UfT2!lA!!o~P7~6S7Rn_Xdx<wVcI4eO
      z0r6B7p(2EkkPwl$s1i`12!UwaQlN+@q)13S!3!_shfuz=YmzicFRZk4=FFM-X3kvB
      z;y+ie0@#D13ZFo7qBN77G)@^wW7bLbTF$Ixn<s`w`pQ$&W!rMh9Rp^`tQf_<a>+60
      z92Eh9M%SQdlqQlx<CA8NQbi!P46|%pGZF~fm0VxBSgs6~^JY<CTXtF5nldKL<jP?W
      zwez;KTDxwpTyghwon7UH5^5{^t&-&&5Xi)Df_hs=9%N!vAkfDn4SqE0(9tB|k0(Y$
      z5ZI(cMV;iLIzk?|S%-#tfrhMAGLOtmjhmHY#(2>bXwH^%Msd`rSaM$z2AqOr3+&1M
      z&)oB_YR)|)$nd($ju^IMR@Png2IAut%aP&KjuWFA+HjYOc3x~l1RZzd9)Zw=>GYOo
      zN_pO(HJ(_39bq4^BZ_8^hMf}WUV-g5b*dqb4iyQ3$n_P_(TOe=maawydfnV-LfDP_
      zR3w?x^)7Yx^In1Atd(~P0wSZ~0i;ws_#d>}tAmD9(D4u+CgPM;qJBJ+@sQIxdL)8U
      zFs+G#BSnwsI3Pu0PVOGn@tC`NMdqnb#~~bM!5QHp!!ZsQ%_+0wFePz9X4j5KPh!1D
      z!vHcW9$!5-Ydcfs;R)6wz5!xJ0%T<zg95wax9fB#hI9<$DaLNEjeYaRv2z;y9ABQ_
      zptYDt4s3=ARk#k#aNgT)(QfQyLdyCHv~1KvY%~|sQ_(zJZ{wSrW*uhvv(yS<hOId{
      zY3m~Q;&D%dm1%eN*|hcLC8?08dCT_3NjqAespQOlOAhFk4Q6q-gcr~=C5~iY(XegP
      zRxv5ieyb^F4_-gVXy=>Z=N}}6d`=+0P;KQ?LMqR7gh?aZ72!jGYfHx^G<0+>pt+-K
      zfxGSnw0=vu4_ioEi3q$;%@2t7AuT_`CVY$-r5&C<wql#>rN#9tTuyrSxt#PZJ>P-t
      zo@d`yC}`%{QfC!+rUPA)2D_`+kybh`qP2=$DK!?ji0+s|avAr>g5H{{lj40+yssvf
      zYbqqtnn>4+wC+!Z&*OD}Dsmn(ozaL?-#-=&%k|(`Osk?dt#wfztjU9}yk5%d>AP8~
      z^rsrgwn%AzsxjISRZmA7Pp6u?X{Xfe6lo{5qD?WqiYKc$awa08k!anyYj2(ji)c6+
      zI(O~Wl{`)|OTZ_*`KPSGXT1OC%-R=xuD(P!*S)xagZPTGcL5oEjS+l@6Ij3txP()<
      zj5qK-&T@SlS1^wsi1Z`1e!|bVibbx!QTI>U{Ec7S+El#^FV|*?h)3PpEa4bApUXXs
      zQPxJmUpP*00Y>%*o*@^c_3wC=oI?9wagy<={J+6-q;-sN9?z2tA&d7I<BP2F5Z=WY
      zxq5nf2L?Hv_;1NKjy-o0ugSNM^`GZEI!>;EcSs;du8}usL!Mj{BQ#wqJG7I(j99Fs
      eQE>%}?iF?Kuy#csUUKOK3Xl!YS%!s|q5TUh4-Xsw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite$IntContext.class b/libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite$IntContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa889bd088ea850ba095d3acc3758a926fa9a688
      GIT binary patch
      literal 2306
      zcwVJcTTfh76#h1IIWuR@Fa!2brj$!5TJB@5j<r-&rY%f`f`D9l(H@4=;gI1BnK=|{
      znrKM>L4Sb3n2;D=niw?In3$NDnE0eGzDS}^K6t-I6YICnP)18BBu+AWe`l?|zP)aH
      zee(D14*(p+tb#Iuwv4?HpEa%;abwYm_gK!NRWK(8hm*Ov`CP$r%%+s>By+Z7E;$Ok
      z0`Xl9dQIER8`(`G0sl$Mww!K(&gT9tLu<~+nDJyTo68U6rp;_uN#zQ=TE+ytNvc$M
      z5Y*s<Dv;V6!=A_^{g!Q>TbP?N^P|R8))c7h&!vs*n31>S_omS6%vc41j{aTaE+wi<
      zKuvGmE>QCT*8~Dfxx6b7h~Dd{fRc7EpeIAyf*&>tj+x&U_zvRnyyeK4Hq|X-DymSe
      zV84KVUj_{^9H0jo(;2Yr2?0-YOG+9Y)KL2`&7_KYNz@=v`@lQpxr376u!bf{5Fo+0
      zHSNr(cm&M~jtG>y3|Yg@#0Ly#Mnel)dGnlQ3;3E-Dd|By4oj8}4V{uDNR~d+%FH-Y
      z)e(fiQ4NnFDiAK@)1_of&Epy>P^lt;;|iX<d*4>ZH9RFL{iGc3?NQN%rxlzOi0xQG
      z4c&N#?L>=HhGU%0nscV@uw{-kr}|653{K6OX{W1YyGVxeoMh<{Xk~<{y_(hIl!ntd
      z!^;czULM<th@J0YQUvzz&^Ao-biqk6-G1(a3w*)#yR?!(nZfoDDS{~iFAXQ8a8e2;
      zivn)GMOkYS&$!hpw*HW{B;SZar{s&I#Rc*xv?zXxYy2+>gsj5I!u)(L@0im9!~c5{
      z44d|}nYZjrpT&%IwVap5eo4d2vi`D~qj|$FT;X)MHcvOgbg0C`SZ1tZqIYBz(47BJ
      zs3W<BeA+x?$+=Q}pAph2sc4q6IYE<Iqfjsl3Yf5l-G&dzOXCL(>~jy~&qL&cpR2;J
      zv+%m|Kx<oD`#T8SA}&LStI8etil@GYM$}L|hcL=ro&X|<l0_muAD$L?2>Xh>Wfi=k
      zg1U{ib?6B%*P4XVF0rp&;y}kb>JomghY~?*8!2sk7Y|d=#x0>z)=pV_Q5Ki7kgj@H
      z5Y$87H{iXctM98P!tPq$`ZgZr|JXX7h=td2Vmuc1bS5-UBC?8!Hr=a7bmcOwrSjSF
      zcHKuoz!j8BfhQ4NMOCa^k6!GIh4pBst}QPQ-iQi4s;et^zUk2YGzi``NZyDDeuq}>
      ztd`PcqlW9Z4EsB#>w6~T2UO!n)Zr%%wx1ElFF3~iIDSPEzoD0VKYqsq{=g*uWRLv?
      z)(lsLz;)rlvhd-i@Z(Jpz*{1S+uT1AA$(5Vmm=(zWUZLut&(hzwa+cd22w<2E;@_n
      zSvo(y;C%xucO^c>IU*l@`w)XfezJXrAtHr7e~cH10`&Sl3=;+E^D0J&R5IMeC{YO4
      zk;aQe@^!q1F^tm-6R$9yaeDJArIXY~XjzN%L{aiwz{SnBbLg9wdv)tNE_K(k*q2_1
      z&$CwRcQ^0aR$dR#JBV8NL><DS9uaW}`$QwEM3b9?)*_Fb?QRaLae1>Xt6^Y@EIzhn
      WnjUzFr(IqXSKJ2Y6hQ_S)PDe3Co$Im
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite.class b/libjava/classpath/lib/gnu/java/awt/BitwiseXORComposite.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b379f7a71c199a71d49bc9928dcc324371e82836
      GIT binary patch
      literal 1207
      zcwVhjTW=CU6#fQiw`?g?>V;Y_w4wq_yYU(0gCtcFv<WrD`ZmCX4q0Z&?qK_(@o)Gq
      zYNDyJi9f&}Wjq5&v0mW8kli_F=ewLUbNKfC%U1vo;97_<WIJl$cKK`W@+0j&mikDB
      z;^khw;`jP~D7CN<V^|#`Jgz$KUb8D&+QK43dcvEa8J3RypyGReK&;vnfWDL&79UC_
      z^&^J0{Kd^egCSP&+rmZ^D+$DrWQgVqjW|du0SikEshU*c`JmSn!3*B>$S+;<Tik2#
      zK$?8~F{Te?$gowL)g6_z(h3CEqT(wpjx~cfRhjJZju_SVj4JcWb8XdyYKuUs&Qqy$
      zST59lKc}%<*+vG}Evz#*vr5fXl^)X)*uV{jWf|@d`h7ppqRmkM?{&X2)!i~TahqXh
      zKKY+_X<?JWo!Qe9p+vyFabGsFxMTcs4AuGk<|u`(I1F0n5QdF^@Cn@x^)!0n&>RQD
      z`d?3q!QS@=K}+mPGkuvqbh=}>42i0uhASQqLqU?sU;8JW^Gn7i&3%-f1$ts;{ONBS
      zp*Rkk-piEjQXZkzE}kM$bUq>VVTidz?<8@7E-^h~^pK|P>IjWBTn2`bQDyYILVF`k
      zO@1+2b53ddGp@bI>KQTzPVpmBr?`1?hU|e;8f9B27u?>E(_2z{H*_nGbS7>&+{Ha|
      hG0}aBBEu+;0&ydRHd+o!w5BP_5^@`60%`VO{{SGiKhFRF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/Buffers.class b/libjava/classpath/lib/gnu/java/awt/Buffers.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65e57b89f4777a9974fe247c39ac6cf711c15fba
      GIT binary patch
      literal 2865
      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
      F{sW#BUUUEe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class b/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0a5b1497b2f9fc804207487758caf540597e301
      GIT binary patch
      literal 2455
      zcwUWF%W@k<6g@4EJw#DRaQuh~i610bj_nM@36LlR99xcM<Oi0JG3GTIwdD!p8C6fq
      zPCkHDcvOm_D2k#eR%}?nhEPyE*6jHJeuUyq&v+!+N*pcJJ-5$2_x9=AxBvd{*FONf
      zfcJDH7|vAPx^dgwF%5H98Z(aR`!!Q;6+O@S(3Uzhh7<8}WM$~OZo9U;!O)Q&D=}y@
      zUWF&ofg>q&qKn~p-gfy?eY?y>(JVWhp*!zcrc*M79ehVdO>Wsf!(jfANn{vKSGiOK
      zw}e^SvMoRB?%2X}x4BE%45i2Nv3DB;5%ds2%sc0~a)oojFrN+`9n-BE1u1N|nh7m+
      zX*<TES<8&ICRZar;{X#y&?!Rj$#Cg$NMpjlC!?d6;aH1JM?dM<AW|`P4D6jp6T6Pn
      zd)|8ylIX*k6wYFhp^q|~<(6X#UYYS+Uy8aVJ=*<LdLzFtz+Ps`BKW4mEjo~f6J<Kg
      zFcC}QbE__FdDk#4X?w0w;BwlsxbNF^z|+c>#1Nhh>f#*3Xu1u3!(q96n+%z;QWDQ0
      ztz(qoY-^YhO9@HgISv;ojNt-9s^YB(d&hQol~))pM`2>O#$uRL%QmB^Iwo4Q4b4eh
      z#Pd1~x+#woCPg>u62noK@8-y8x)u+%yKyj1+t8O8PBqNazRyLFXI2PLBr$~-0|8%R
      z=uNjFEa|vPx1h0*BWbFp6N;6+WAR!*ri03Kuz_0g3UzC1k;^Tw(gb>?l}c?!+NMgU
      zfqIo;{GcE?cZY6ifGC=R$}V=GyY8CXst+8v8w{PMl)?|%M(Z_UV4JZuzAR+fq_L%x
      z2M;M*Vxr(9`NK3K;BfvBi8A|$+A2h#$u>DXR3O49Ex}F6!zMDC&V}x_M^3f6B(b=;
      zeV}tt$%SsKUfGk4(r<2svwX+4c(beOV#*`xUdcES>M;eXvlu$PR%|-Oo-kOJI(wzU
      zD{Hn}@pc)q>DDgUy56>jwnCybP6}SNeaS^`+pO~3a-kNy4<q58?ihApB|-d}ZRB#x
      zs|qacW`Z}UgIxFO;NeJyeo}qWtNYROw7hw<E+uVSy=6I4qTtnq#pmqcf$H7=7F`VJ
      zwP6q%!S4vo=*6RdoxThj8I7G69^i?eXp%sZ{=1a%eH^9#R0yE)7=p+3NgP+>2|Pu1
      zx*s?hlCfDrb&}0xOWi%4zoT!xqx)20UF&|j@H3vdru~MY^#SbxMt;HhwE>L~<Le#c
      z1el=p$-mIE^gX5m*pz}@`SWq+lRrYEtgqraURL8guBov|mSFq<H=<qLq@00|=<6Q&
      zd`y|&Lq9&HZvP3+;WNVDC+z3M@C6p|B{6)3622yeZ&1d!aPXZ{<Q)=`b{Q(7X0Ksd
      zspL|O8RAb6b{1KZydUQ=hg%fy2IVl19L*NgY=LGaHG7?AWi`t~BV`w{q!eDp3bDRH
      zyc&(GWGUiJrFjW!(E(mjXGXUDhxd<4wJ%(ZQ)PGy>*~zk#zsUj5!FB<@xwljf13&*
      M5pgiue(?3~{|305rvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/ComponentDataBlitOp.class b/libjava/classpath/lib/gnu/java/awt/ComponentDataBlitOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e65cee5e097c11d0da52d7702d0aabe910479349
      GIT binary patch
      literal 3258
      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
      IvLkinKf3)JzW@LL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/ComponentReshapeEvent.class b/libjava/classpath/lib/gnu/java/awt/ComponentReshapeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..533e2afd6877b9d80b890c854da69fe77342a6e6
      GIT binary patch
      literal 588
      zcwU82O;5r=5Pb`!1uP;6sC=sNAT_b^j3F^Z6B8l|1kVLFv;<lL1@u?=TRadG5B>lz
      z{v+dTX}n0{CbRQ)_U)TD`}zI;0pJ3M3IYtr1ADFyjfJ5bOINQs<B4N)+imihX-xR_
      zg0KRKA@R$(dTe`T2KGd8OYzJQT3UVAWROj64NSU}FD=`0s|>l*`d|IZEv<5gL8>`@
      z9z_t_Dx!!pWPJL_um^ghJLEkgmpc)V2Nfa60`00$)+ntayheK}B9Iy4b<5^=^Kq9?
      z+eUZ98IpCUXN)?=)DmaED7mIJV>qe*{{a;mvB!|wGzUYp<;<r&eq#yM>_&le@eoI3
      zGDu%9QKmTvF)@Xg!+wtVnPjm=yGo}QdL^nQ?JS{uy&<OMSJ=@CD<rkFv_eWthgQhE
      z5+#6r+Or<LL8AAF;Q>iBsop{nZ5+@|buCA{9N?im3e-#>VJzSwVJ+w(VNUXpuoog`
      I(d$+E0TUQ<vH$=8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class b/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39357c5236aa677e04aa48c7b673d5a05b0ca9ea
      GIT binary patch
      literal 2023
      zcwUWFTUQfT6#fnYCW#}`VCCY4XsIR<4XyN|pe<sk(h*Q7l-_ihIfl_;hBcX}boKJw
      zcVGGo`qT&4YN4%bRiC=L`lGt~oyjmE6lovGoU`|L_WsVd_u2gQ_iw)gcmsDev<V!o
      zdiC;s^PyQbABE-0+KRMoX)igR?LX4cF3^=Yrvh_L3UscTp6zlWrnwn+JSV&&kSY`x
      z1==TlTV|2M0Ua9B83-KI(Sc5ZLx$tYnK}~$3+9SCpEG>RbQjIQQTy1~9<Dkyf#b$L
      zyv7JCOsjku)3#^)(7CsfWvW+o96_%@wkpE~-*+E4p}^rn(MaON)-etJ%+Zo!(lu+f
      zbu(OzF&d7NV$<!ft^1zz!ZeOE{koJv7K1pcA<w%-FxT{|jW9Y+;WdG7^0+1~*9@dR
      z<w(~SI9D*5*!eJUyy{qShbfTvTxn5j1t-nd1%?xvHEGoYC)_BTR_OR%d0vJSmL+R7
      zhtf?%wk(ElMrmIVI8)doaPz?I%6%Hfii=s4Fs$LMz=_s04eX@vg@Nz7GSG1j=LK}z
      zp9`Fajw`E@R~n7eB*&W02B($_##yuI!-&o<e3KQj0%?Y_wZ;OK!oEFFZ1t*w?1IeE
      z#6+WbTf<udy)RK&$2)kJ4P2AqF3n=D|F#qtHCz(tYdR)sH5sVOR)WB1XI#X%s={S9
      z<sK20<|(|VqX%gX69V}r<OY?lnr=h;%418etFRg-x62cuX8ifOwHonHFamAi1A#$f
      z-@fMK$tbbnhU|Z7^YMZ6J)ScDiyDD>V}E8UC*{2!4Gs-A1qPZ2Zr8ogS(6DkjajB`
      zEoI)R<xQ7uVsGSS?8(BwEhX~pT_SHkt3@>v7Ib_BP6~~0Q8fhh**OrRwn^T0)G-=9
      z78v?J&2<1v_(aF2$O&{rw0O_z_C2GS$Pt;H_v?WrryOPKX^nDTrNBw@OmQZ&fNEB9
      z)xkCACx0{Cjngam&6c+Km-!j`Q|{W(#ow;z<Rsd0jo1nfai=%X=*BBiR1LW}(iG9D
      zB+}p>k!Bfbj@VmKq$Bh-BdL|*$Ieil8^`>UC)CNSrA-`ufj%QQkUO@C6E~k>XnA-G
      zr+-0lX}ENj?(!xs{D5A1E-KI1^X7_#t~_P7G)|+4_oMFxT#dPvm>F26^$xk*#W9#f
      zS+q-{s(j-PF2ltH)*{}c<Vi*`?=&t^oeKGOqn{dlz^Em1zm6MRjYg|!t^__zlzJTB
      zYNYfN^vsj*aqt<8<=o5`=AK8w@jCN=phtaPU`e5V#c~QwJqMynZZO)HRO>4ays!BW
      u;~SLm?G9~65^YBkZ9l{3F^h7<iv6JC|CogCjEvvyD0W9u>@OnJoqquAROwj&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/EventModifier.class b/libjava/classpath/lib/gnu/java/awt/EventModifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d43d64e93862b76fe1e21c976e2001962e8a8622
      GIT binary patch
      literal 833
      zcwTjpT~8B17=_QY+iqKnUGM{4G1izEP-8VFL`5kEidOoe)>OPuoVG(*Qg)MNi(WPS
      z4gCiu+>>CUT>GPpXJ<E9FSwaG&+I$zd(Q0dKSw_S+{aZD2?4wB4oll|PnP88pj6pY
      zZcz7n&ZeV$6NZ4LzYV0@FEu;csv8JonzfaU`m@%WfT#*gEPL*5Al;xX2Sb%)?=ou|
      zm3O*^Ts{^^KXF_qSQJRk&b0-MWv{1lNTQI(8RSh&3QYf-RCNR8yK+$Reb3LqLP4NV
      zb6nLJ?sSy@R(1wTV5;VI<)AHnC*=6h2)3MEftlLrxfW<geF>D?WBF`#jv10W9wF_k
      zJ>@fDuH_B=u3B~UnEx){4SV7`c!x<7xQrCiBvVs{oE_sZVj@h)lL?+YCJFBOTZcIN
      z1J?UPO#RZ8=eXv$1M@KO5a+|Hs1_G+k$V=?xD@v}iu<hFR(bRdDf_@SMqiP!t)=}1
      zJ4KnbC$Ud$Mp}T{%0!URU`1ePC`M4!a6CFV@wA8n*A?ce(7`I{IlaArjVg+GiJMr%
      z9n|mubv!}?OK7s{73novcr%t`oo|!YIqZ`h-{Txj8m9x(HaMTgwN8avKx;G92}Bt)
      zArxaMhG4{Ch4#y1_UHAO548W0zhQ%CpZJUt*U-TYba5L!+=JqSZ{jKX47tTn&Y10H
      LY+K-p?mF`q&oGlU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/GradientPaintContext.class b/libjava/classpath/lib/gnu/java/awt/GradientPaintContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d143ffc32e7fc70e5b58e0f73ad1b824f4074d0
      GIT binary patch
      literal 2322
      zcwU88U2_vv7=BK^Hcgkb6k-!fEVUqM5F!Z06pBD=Yq5n2ShNM{X0uJUB-xT|X^SE#
      z75pmV2cyjB1>SJ0Go*GL#|tmKaE1$ifj@yOZyBGnNmCSr%$#$c^PKm*?|Hv=^2hz3
      ze+94|mlU`J+A@Xd#H4mkOK3B8qQ9u6O`~8BYi7aju?n^^Yb)>wG&&+Vt&m9^Nlh9$
      zS)V|tcJaXr0<PKZ0-}##j=-gJY8<S|_E<TqxJOFukP>pzIr;QCJ!k5?ILb}VC}iv`
      zH@)2KH4CP_PaqcS>-(>shndli5dlw+l{Nx!qgllogazEOj*&VDtW%-DFVT7xbrtlq
      ziU8^*+Mq(MaL=e%RY4n71S_Y{s%SuC05QZBbUf&P#<22<VT(c7(W_z$o)hq=&62GZ
      zbVERi_43!zD|KvBu^LSR4TEOEI6R$C8O7sTDo3fNK}*+iBU;gv`zq<Nvt~)4eej8S
      zVnkPE4BLsp5S`BnL}MK*!7=k%#z?Fj?+Kt2FDlqA5cyvr6-n%@C_dVMFl|g|(>W%%
      zPVTjmZ4{-E0sbB`R5_**fo>HqV5c<ql8XH}z<}#TL$i$@D?g>#CLKLdG;QhdveNe0
      zBUJudh^l+=vH})JaHTqjG&`%J5B&^X>1>g2^~4x?-+okn^3tm+2Bm;^B4=4e$sAU3
      zL^5tIRg(MHR2;=I?(=4Waxs}a$-k~*q{3^n0la}x1#d2!uN9z*F`Q)8$`~1Gr}74*
      z@LMWQ%L6|T`iq89kff#}B}s+k!Q8YVxwHynS@1w^Dys#MfvJG)5PfV&R7~Owvr{tc
      zVRP2Vv2f~~?2HY_o)EJf0~~W4GaOmjdU=7C$5aU&DOQux`h<iq)@jYwsC0~0+*4_G
      zwctG=n|hjYEHc>^rBYf+b_E+`%91E>%$hFhMxQAwKJuvI-X<-hjm6~V@WPKK*~Uz0
      zlWbyVWeYp2THUXzuE8qL)^%34A6F0ctif8&A@2UHYUz&ugs0-|Wkli|%V>#jEh8Fl
      z_LR{YZ}yha7LWMKXpe`KGB(BA7d9?5dls6#3rpBs#?~LHz=Z_oI3EL?q><B9JkBR*
      zG?qdHI$Dv&CMI|bCa{-@eV&p>E5`X%-r-bfx8s~}kbIcSLDE6DgQSZd2T3Qr4w7#A
      z93&l8c$-aEb#EJ2sm-&5T|d-b>2tWE^8&SUUVVW;7xq-{y1t`@)ub-O7qPd?8}UX%
      zo<;2I@^Q^7*<S)(O8gGvbqB2zH89D!g`;hv1}0MrNx!=@a9eC}ch=t)tAj~3><@l@
      z6T4bM_2XCMT`Aq_fXVftfWx&&uFV0|5cV(Opv8+SnXOhb$Ys+_M8m;wut8soSF9x*
      z;&LXlgrQ{cHX4Er;ouU6mvB583<aWDno_czjS(f($h*-+oVXg6TH1-KMEdF({n`;J
      z;Tf+`r)n~%s>F(nw<<GUlUXKKWPDXhugU0Dq9QY2FGBUvTleqH2Sg|k^4z-rSH$Ob
      zGr|#N5fc&LO482bY0ej!yh}{;dsv6}(TmGCgn10(102H@jN&SHAL1jfpK`u|kMS)&
      z!6Fv$8?NClKEpj+$KUu|G~v2fgD*q`Uy4qyyYZFi#tkvbbqw<&jmx5dZ^U`rbPDAf
      z3ysCFT&hGl<Yn;?6^L98vWVOcnj-S>&%zAOvedk26nT_j^Zo0Dj%l2O{Ddbl!>;u6
      z8@w5_yb-{VXvQ2-J-@epdM*3<27brePDkJ6JKo`GBQ0M*xLW30oYLi3>BLHnfB!&@
      Mi&~Ap>quSv2Lx{682|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/LowPriorityEvent.class b/libjava/classpath/lib/gnu/java/awt/LowPriorityEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a35f4de610d188592883f16ef4e18e489c874a9c
      GIT binary patch
      literal 126
      zcwRg8Z`VEs1_nb0c6J6PMh4mRyi)zF#Ii*F#PSk-pZxNGqRjlF%#upivedj1b_Nzk
      z1_7{iPGVlVzJF3yYH|r916Oc<X;E^jTV_rwBZDZqE<KP2Hbw?U24)5bU}Rtgl1vP2
      E0D<!%p#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/CieXyzConverter.class b/libjava/classpath/lib/gnu/java/awt/color/CieXyzConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edf6d3288423301b24f67a9553d51baf560d6ebe
      GIT binary patch
      literal 928
      zcwUv0+iuf95QhJ?9lJFqrKOZJ1Slmv2!jMjD20ngq>2<kB2`t$)y6ErRpPC-o1*Yk
      za7Bd>55PkqW;e!&C{p3VbMnkL2g^Txe*F&MKB@s6hMT=?81M5V9`g@6PGn!IxSoo=
      z(Z{;Xj)c-e1@IWo*qlDkdhyHdzDRTcpJ8QMwUO-uo`{0L;BTf`s-H5r)zw`FuP)z;
      z5H3zd2r$Di*Ge<-VmRmuwZpr8!LZPh3GeT6l^Q<}dis5O$gtcxdFmR&jF$E0v%S}E
      zsDHK7SnV`IoW;2Si+}CY9vx~ih_Hn746|G*K1$@lh+(bTn%uh9oDyo9m7Fvq(P_|%
      za;O=?cS;U^w=Ze=YI`fhHB<szXQ)h>zpZ-RV)_U-Fi#s$wJl``3@?W)N4RZYldq-i
      z5Vqw|C8Cj<Gc8Ws;;v~$M4FAB5`F#>X*xW~S@L4i%tY6|ApA^*gNUSWgZFTnWHe4d
      z8FQrRewfdTcPQ$TF8km7=j-l<>mOrb<5NK?+qVzk;UW2tEUhxG$Z5v9fQ!WQ5aJS9
      z4%wIgvqO!lH_3nU&mFE59UhZ*%zo>~xcUb?KERd*E{zikU?~UEFEkZ%YZ9}40%pbL
      G-}wcDp`xq+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/ClutProfileConverter.class b/libjava/classpath/lib/gnu/java/awt/color/ClutProfileConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5d38bb1bbc0cc7d719dac75fdf2dcf347b1eb89
      GIT binary patch
      literal 1763
      zcwUW^-)|E~5XZl3JHGfhAPt5<_~l@J#16%YTc8jiI7b`|ZW7fbAw;5_&BYv?Z_VW#
      zkO~i=wo+fHDxnr0c;=x}0SO2KL?s?Ts@i`EF}pFBh#o&4va>t4^O^6?jPuW%r!N5X
      zVN5}YVMo<zWX>CNM#i}0Wh&g}Zbr8o-k8g0EZfw%GiSP<=_-gYw8@LM;Z!rD<@096
      zQxIj?9)u8Uscuvj2@EYBAJa<=+ln8GC~|&bynezc+h#w5GUM`^jEFh<Im2;GdzOI}
      z7@`L($MOy_Z0;_;$0_Lg_f7HrsR@RN&d-`E!f4Z=;R}XvcWOe#Dy&uzXXyNJxP~?8
      zphs6tZ=_Mvd9BVJ)A42{q7VbaIt?n8DOk^t{ER1sbJ@XO6`j~5q-<tLd{liQH6fC8
      zX;9D_9?a%?#c`{K7##`KCwzTkmleCLf;7XH#TFH8+pHRP&aF0Tq<iRc#jJZ4cUrNN
      zAwI$rdU5>3Y{GI9^@WUGDpJ@bv}G7pH?>Jr$#X5IO7&FG$FOSggAZj`S+pFJ3RN~;
      z`C5kdBCi<sgyCA^+;m2~a~72_6*vO{gD2*osgGg9$Lht<>T$g=baLtxO-T22J~f>e
      z)$Z4D0Q<;gQ!5&EhLA;aL(_RVk>3pus#MmThHtP>g^nQwN2oOc@=9*C?Ca8y7tmJ9
      zCLs)}7}t0C<?Kqfj$;~*%e!>;IDHlgztu1-oN9?T+=`i(?^_pCfn7odx+o@0e=W3z
      z#6-}KI3z|vS{g&LE%aT(a#~ja>^7Z4<oz!_kCo}3$7p|qwdrT*oa$-cFprIokhqK3
      zWSY^Y>E0sU$#?E#`XLgpp^{0yLgYd7*0$i_?VlCABRIG_FgPxPUt{?*q^8<?=JDm<
      z4-lm%c48xXk);1(Uz06h5~s+XfrE==f5uJxLG}**#9w4X$Wj>`tfzGkBGhON14PJS
      z6LlwvqeMA|-6&!|M(H$0#Bm}{Vj5FKJx$aza8br3nD_}Zl;HwpsNohkW$`G>9PZ&V
      z9^wbQ#1;IDtN4nttyyRQ@pl7qw+DNvJxmPSLYpXCNZt}}O}v683^i;2{pj=Pec4>0
      zeg(B1xJHe?jyC+bgdX?laU8@UNgwd(2b=Vm7=Xi1Ft~_}(iPyBC8(H>iutHvA606i
      yIu<%AgeIj>+N}M*)*GbtSJL|1k^~)of(}2y(IBl)P<V{u`&xhhgw_#xfAlTl`Fs8V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/ColorLookUpTable.class b/libjava/classpath/lib/gnu/java/awt/color/ColorLookUpTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..899c158812097b84fd0b32c7d4f484d531f8e97d
      GIT binary patch
      literal 6371
      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
      JH?*H`{x6Q0z&-!~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/ColorSpaceConverter.class b/libjava/classpath/lib/gnu/java/awt/color/ColorSpaceConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ca97e2078ba9ef1c7e9535898126be78fd4c187
      GIT binary patch
      literal 221
      zcwRg8Z`VEs1_nb09(D#MMh3O?yi)zF#Ii*F#PSmT<oulcB7J8N8C;N<oa&sPSC(2-
      zl3K*hz{1EN09Kcin3t~apOlrFT*An}QIhZM=^7Ck#mK;>5$&cK?Z(K!l~$CW3ln86
      z$q#aOVq{<k34&Q%!TF^{$*FFcIjM{c5?Jig16jky$iT?J%m4x`K&x39*cd=gV29Ei
      QP?{4&166VXNhStv01=fk$p8QV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/GrayProfileConverter.class b/libjava/classpath/lib/gnu/java/awt/color/GrayProfileConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bac7ddc7ceacb00956fed35a7cf623c6a56c1c10
      GIT binary patch
      literal 1883
      zcwUWET~ixn6n=IS*b*1o0wSRH!&<ueXhW&u2UsOr7N{v72@Qm(WeH0RO|qF~gLTv!
      z9rdU5w$2EdQO8R!{006R$LD>sgbV|fi|l*elXK4Voada~zyJO1PXKrExdv6itx~O#
      z+_m@Zr2UnjEV>ofOU`-r*UO%}Q?59sTibU$-|;kr6<m^m6}whSE^X~PMPEa=g0WLd
      znBtkO+r{Gw3e-}Ofax<3vqifDZ%RSP_ZS~LEq>LlIT@$!x!aARUv_I|!`pY5(&f9$
      zW>&$?(~=~owCg^7Twk@fDk5In@!YD+=$<au%Km)?H;nX&yam&I638KVPDOJH!lt|J
      zL=Zy1jy?>KtP#y=cvXRMUb+#yh7k?J3a-2yP{$}<S8$=^_;Yr(YD+LHf<e3~z^{;v
      zVMTL2P;gC04<e%STRLvwZT7{i)r=`(qJ^wT8WTyksFhL33eHi=b*_;_V4z>1By?!F
      zpy3YHI)~1onTgbR1h;WlAWx9x%Osv!XtnZ=j#r?EQWG=d;`*MBUg#P=Am)kWAn}3i
      z+q2J#PF*Ohfzus0Uf1>?3NEJ0HD|F=-EurhPeFg$WurOUD~o&J4EtY}_Y_3WTGx{=
      zh}foj%f}A?Z-+Qe-!&Iz*Yg{kkx{Us1xrXYtHT1P)m@=}jk=iEyl^eFhHQx$e5xZQ
      zV$?FbQ41FTDzT>A{>)rTgskXT5+QQG1K+BS3`|imr(;c2?DZUS-*eIuOF=|Lw@8VE
      z4IS&ENF?hvyrN^t&PGn_{f_7s*EyyTe_aSe6&u3Oj4Jj~o*bq;d*#{1xISFu^Ad0W
      z@UHUQj5TpN_B#gi@k0zX@x}qJKF7e?k?VRBH|gTl$Ttx?K%D07e7rx|#P|X3Jx9-4
      zOra6D-<9skBlqMl<QK*OhVVW=fFD!F4>6A%@;p^clfi^!mtvH~sCm9f4>5*CMz7JE
      zhlv8co3ysDfo(j&4nAVWP>VnAvnr(Z31--xB1RQ-`HWqLc*bJC;@)4-#lfZ?ya@l%
      z{U{OQ^=dpceu%jhn(@RT9=?!@P0RXSeC|@!r>s@s5UbR?Cb6%zs<yFXNaGPP2br}<
      zOQpTkX0aKt7(EMh`53iNM($A!AD7YSKpSnNjRt7p4zx@g?TY|ySQKZo*#I&jARn(J
      zPGWt-efgG^zU#mmZetAxSUudFBdql{)_#Cx5MZ*U@1)c>z|NnE-BR~^s`~>g{fH6#
      X#Hs(>!NF*AFai!E9UKa>(r5nxdU}+z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/GrayScaleConverter.class b/libjava/classpath/lib/gnu/java/awt/color/GrayScaleConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c1d6fc423bb81d4fe3bfefa193a4f6989f3b601
      GIT binary patch
      literal 1653
      zcwUWCTTCNW82+YnI%UfU>^LmhV0T$$Sqg=gWfzxAJKg0{*l?S&qLoc_TBguaI#>$o
      zCK?|$F)=|&jO&Y+7#~Q~Y;@5`3~J(|Ci_a_8_C8*pM1dwjhFwN)<U8WPBJt9`RB~{
      zf0y&!pI?3rpc|$KE(zxs^XtK^wP6LV=Ze9UlXD8eSiyQ>Hf81PAt%3K7m9Yl116zP
      zY|B~s#o%-@Yp04HC=y!#17L_hXIHJ%5rPDF%CXaF39k8J3G(pe5HCk1R1KzbnS7=g
      zp>CUhP68Wp7Hnp0?4M=EZ1mR?kZ@AP33w&cPGs`-)cQ)&F5Iw^Ia`7@;Skd~tB~RA
      za#I-;fL_Qrr9y|Q7~l8wL`k+{{P^Itmql@J{XFk*_%kXzsG`ZmrOcXy3lsm#lmX&i
      zbcV)9o=iMNGu!4z{alYLlb0YZ(oGB5Suc|Gq7#o@V*|1Nuh`Y8-8eH|@rD)ShY$Jn
      zkr!PEc@UIPbL8-(Ra{ajrHh1-a|n&K4f}`r)=Mfbi?;pzDhpe&yAr(Vg0oU0!lGka
      zUCg-uM>C839<E~F+<NIZW*izXvT)UX+W$szk43V)xAXH3S8T7W64ead;}Sd^h*J$W
      zJvgaE{rleV>IeHuRPGU%Vtm|o`0eXA{fhC+LF}%6>wtbEwcc50y^yj;Gu-@!e>>I1
      zb>SR2Ez|9Wi+m@;>FMRU@;GQ!4VAt=M5{h9@T*?gQxdXPV<wntCfr)Bxr4e->4OWJ
      z_?ZLsQovn!Sad-EdIe^NU?qB=Y5xNC?aH1fA?s*}Czy`Y@q}APWBhaYj__)T9tew(
      z@4hmoT0+2CGzs)`XfC6_O6Z*C#SS?%(o%irZFpML<cOf$au0QKC`-I~#dziBm7A)m
      z&QB^6PmviwKj93Jnn7X^MhFoxxxIv5p3JL9X%9t4%vx}s5JGgf!YfR@P~r6!S<7{V
      ziOD2!)7tL5gW7=1OMlkfMq@zM+I4hLV{;ds%e&~=%4)r7Gr$7wfE=1P&A<`GW|7kn
      zjU6WV5u8R0ofxCxF|ui#h+h|Un@U3~bi)<8eS)Nm>c=W156C<&-QgsO&lMt*)%rTf
      zs<hVMK|XOh+JI;e@^(@S^LEk<xV4CA8>QXRQk(55Q*tlcMnk6@sAr+g_Rrv}XWh$N
      z=4~d`Gv)oiemdrSD;+#wn&{1-5hl4CCo!{_#0`2rjs<$JU`|N8RH9mu=2WCD<EoH0
      zNy17=%+SfXChU^Puz%zp(&6S9YfQ+kHs#1Rk{!O#71qG`(NU^-rM~$t6qQ%n2!%#L
      z-3)OVzU~ILxvXQ<*-BD?tw((wWAsVK^^}eYr<~?8?Yb>XK9c<2u_Sv1m3gA}G-dh>
      zt&-GFQKAcY1U89ElZZt+UP~B778%;}EON&zSgTmDR<Xb-r|YFZxp0{<pTHCyP;SAr
      Hm_GA2mLx9L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/LinearRGBConverter.class b/libjava/classpath/lib/gnu/java/awt/color/LinearRGBConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dd3ecb53c68f56ed2b35e0b4774ef9ba2f26456
      GIT binary patch
      literal 1747
      zcwUW?ZA@Eb6vzLU-adu4g4ByBu9I!DwNNQChX^Yd)=^%<>lh3uPA;`TS=Y<DmY3;t
      zy16Cl0O!DHoN>MkGIdV<u*TP9ANIj)(Zmmv8D%8K_-S(*m-uCR?&bDEqA|9)=Q;PB
      z^E}V_{qOne)+b*8cmUldq;SX^h{WAP(um}iMq}=P9G0W*hEOCZMYq*#@yd~rU^Ett
      zn!t0oT`dbskpXve-%v0RGl6kf|1Sr4727r}1%mns9N6YiBowRQU~o7)IPhNiv7i|S
      zSgbH1l|zPdZBu-AUog5|>I(-s*c#-36z-6sA>~~Q^0C3tUJe@?{#WDW9E>rUB6PpQ
      z?{oTne0fdT=X_ODVjC|WF?*PJ<+Sp9*NnT6W5V4W(w8|KrP!bq_h1!u9hL{^cE?ud
      zR;6^c75A#);Mg$lk!sFxNC`#A_<a<V<1r3gh@LunD9lmR)E||1Q!BhD_oqx&>AY<A
      z48L`mRT?&`KPJBC_~ZO!kCTbNF4mk8_APQSD_gvE)tz14tTN4(b?LW82NVBXNSyuJ
      zoXNz6fg4rt{C=8!dA<3KtCJV<nRsh<e(mAu3?`n;*?A;)qKb(h?ZJ<h?$u1Z)Uued
      zr}hLBZ|)aA9bCA`AvGpzXN%weGJ5U#yg4R*cdGv2%*{9x&$rB8{pL=Ai5JJKyTTJ?
      zO#Jyq`gkJE&%_VR_nZCKsgV~(zI{2h<b5V4u9RF`XYf(YeER0{S4ye#HaQ**1brdp
      zn`Qs=!xSnaV+}|wdW<xYMp|hQ$fnVon^sPV=AVQ4Lvm7JCCk)cF>WJkT`E92GH9jw
      zM5ea+2RcYOatHg2H5w{rQD0y$D&@0z%gk$F7R9qpzYb<qJezIi1TtLq0z;AQj-l3B
      z<hblMK|oeEe>8#YT?yEyhHSb0t%nSpot^yaoa?OKP8nUUSRUncv4`F&kOh(Eqmss>
      z3Tv?i`S79y)u@9H4YW2=Z98gJga?<})DRSJ4eg;ZLmSqSmqNhJxDR=xQaYWx9vdjf
      z!J(thlVZvl{v>MCf1x@FHPdA$G6DJW6v3`?*#)@NKw&^Yk(@+M;(ojWw^+5U)IvL5
      zuC(1rxLt(XO}Kt)xQB2bK`9=ks&>jqD=_^!reDY0p<}k`m|h*TIEl$s5T=24&MBBK
      zgMf|nxsL7<u&IEjbwI#F1xCf0YIX4f9@etuYL>V>YBoSwqX1FMRweg(^{k;t(aq#C
      zSm+$h=gBu}zR{x8D2h^zRjFC>d8<;h<QvIf)@&!T$?hed7<q9bj}h?*Her-L=m-tU
      z7_pC&YGYKp5B+!?LwEvF?5FIL^nVJ^-~gV()0iM{1_$vf4&hBai&HqP>YKZyjjr#U
      zuJ7BLz8no+a%3)OTJ|Qj^l5t3Ce^Cf^&l-9v}{u{+p<#2ZCZAFGTWhNmo+Gah3q8t
      uGesJ_NZn0QSI0<$mq>$Sq``60V45^IP8!UtVCvPGdUd8AovBm3q3dtTDs6oL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/ProfileHeader.class b/libjava/classpath/lib/gnu/java/awt/color/ProfileHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..742a3e36214bccb781d76414dc2019d53ebf7dd1
      GIT binary patch
      literal 5228
      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
      K>xY)kkNyW9DpJM(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/PyccConverter.class b/libjava/classpath/lib/gnu/java/awt/color/PyccConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31e5c148e0402238c8641c48f61600e5c7be88b7
      GIT binary patch
      literal 755
      zcwUWB%TB^T6g|VM2q=p0$3k5wxUkWM8;CIyYD|b2Q6jP$%7`V<X-Yx;ELS9&=-!Vq
      z-WGz<n3P4&edL^T@11^ry}koDz=nbV!)DX$sV&~;Dt~lTUACpIUOwx3UYdPjJHl2F
      zVwm+9ZEiNzQoSW~M?r*P=O1m}#j?e9F?L{x<P6hrjv0dKOobtomkkj^5b*>QL>ZDr
      z!xR_2PF>j7yxtZJsiM?*yTWb5tw+s}^I&utwu^o{XBondygECj(dn9&sc8!48FqiJ
      zxG}pu%aTNHlq_L$$B<^>Nf(xz#E?RqAz+vUHH|^Jw`Iq(i#jrYUbwB^F~r>FxG2k>
      ztqaZYmjAWPzB?6LpzG-i)7ytB(%pnpRH+o1+ua)=_CiSj3BriiJj66%Vo1OYk`(E8
      zU~VMN5j#LJ`i4|>fQ64g`Xf)jG~|r*Znj80ckJ@SPFWwPm5H5Be4JJ%b}INdt$F<Q
      EZ%I*sD*ylh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/RgbProfileConverter.class b/libjava/classpath/lib/gnu/java/awt/color/RgbProfileConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..796c205631b73f6070d9da9c6f9734bfaec1d0e4
      GIT binary patch
      literal 3481
      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
      bW<?J#{|`~wC&hLA1bl=Uf}a7o>j(b>ipue#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/SrgbConverter.class b/libjava/classpath/lib/gnu/java/awt/color/SrgbConverter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b1bd7846a58c2899aca1c67bd0f66812d3a35e6
      GIT binary patch
      literal 1766
      zcwUuMZ)_7~82`Py>$U4@=gunXERLbr_R2azP}sVgY;+rTV_lcYHezzEx2;{*o84_N
      zf?@(lj4n=r%@2U^#U*M`LL!YpP57o+h>3ns{33}_;|HRNe9`#ld9Ph3%M$dOzR&ai
      zp8vo1z5D#Hk3IqLC<g2(W2hO<PKMIjlorzVnW3bSF>;}JZaC3mWT*6;spsqv8Sb<^
      zGFo;xv^$a3lcpUK!-iF2Tlg9u*OGcE1B29<%BIXF2Epg=V-Q=6XLTn8RJdS=gP}5-
      z%IaN{V+lRit0gizgB&%ITBc9SrTD%Gisndaf}u8gyPg{uoI^Qdtfgb;p8f%<?;DKx
      z2O~}}+~tA?RSXU?m_|?A4u-N+mX^T?fu>Oi;hy)oaKGhAPNreyu~`vLc=4beYj2??
      zK0RUTV=mNS9YeX6%W2a|V|<z+;ES##uc2cVsDm>j7?UQ0o%c?K#OC(dI#Ip)XRX-u
      zN7x~Ldf<iMMfIloycl*|9T&sL&C6m_nqwD#z9=@dZU0z&vMb*ss>hsRNxk+Cf8KRs
      zGq%|A7=wGcXs2e5xUdzEQ^|}mOw{^X{jJ<}n+w}5Sl>?-w6^n{c71G|fu-o*A%<(d
      zuacUD&DJBS@A+<Cd2O#>Qh&MLcHVQ~x}<*l)4m(81TRSH*KhASJTH7DsaLuezWZX$
      zK}lVl-r1jtua(pvesxb@`m9G%-*;|w?j2>4`s&n|bBhOmlhpjRtvA*?ek7l7+>H(M
      z)pV3`V=|Z2BPr`*+;Y%$d?c)+(-P=!qkC;9Nq36Ya@vJRGLp8yB{(mTQU({Tk_EQn
      z4q9CW2e?s5lFk%W#o%ou%eYO+L;hezaJv<JPr;!W%(c4-<2Bc;n&#e>X*zF{rn;1-
      zmr#METe>WDDnd|@@^~P)oX>4pdmtiC`(7(=O(CL`*Impj!iid|D#QB!S)rez2WUU|
      zA1jpe_pMNY`RQmx@;XNqqKY6t6cFmu^1}hKK0PFF2-rx(6j6S}f_)rL$bJqdVv0=;
      zSg=y?4i;eEs?fB6rxb5}#oQ^_6>mk1bl1r<Tz7F@-Z*y}l|e68>(a3WR0q9s$b)(U
      zX7boHn#U8fX}Mu2c0^!a>D=ER{%hz6H4h9?+rxAiBiMu#IxtEHmm#vVM1_H8FisxN
      zA&nd+=ywQ{IF2dIk(?*Lx3J$LD^M8Tq6nm)Mx#YmCsAJ@Yd5+PMiY@*&Obgy+I)1M
      zdE{A6+tS2a0yK`wCsVv!t;^D6G@}R2w4L!_N792<V`;vn*%pI>2N6Z6pBeR_T@gu=
      z-!8?*mDyNO^dMTab}d=EOIDi)Jw<EplC`g7UCG*E>iP)vew3zviRL>-Q@%_yAEj4s
      z7Ej}KXe1MO!{X}@$ro{gw3Ecl37jGRmRUPnV(nCsH3!}-vgV{uR)IB!Jys9>{{T(&
      BU912A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/TagEntry.class b/libjava/classpath/lib/gnu/java/awt/color/TagEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8671cd128d050d18631fa00b2f62b2fdf8bc1400
      GIT binary patch
      literal 1964
      zcwT)}TT|O+5IwSmWjo>$0uC6QOD{y0Y22ptl0Zm`6B0EJZfnLfDM_co2&0UV8A(ot
      zwB<jfzoQTBOu0<b$zvb-quTC%61FiK9xUzm?e5vLXIK8`-#707e1fWin1rc@(=I+Y
      zUzkPnrC+SKnk~1uYBugWzPqbHmM|imP19)<E9=j#x-TJRvA1f!vLr}`guznF@qE+q
      zYi6@;#R*-dAkS_%rr&lcNcKc*qP4l{Sp*<&n7%0?wzfo<3$|nXixQHWVHj&m`5O64
      ztqm)UI7U?r;ev#?manBCVO&KD3AQe(I2TxxD$;>9r9#DE8aZ56aOni~>aOQo+bXW$
      zDp50C*W9hQc6KG`TDiZ$c_ZS=U|z#z+p$*K+v}FQYOXh_rO|S$ZZ>PCYx6n0l>IH+
      zlaMQ)q3t|1MG8^>TG+JGu>5;M7g@`*GSUWJZkgWJBa4WRY55*nRo}Ip#(bK(zOJH(
      zk0qpiv+?jadR#Li!bxPm71&99Dgg>UBPsjimfCi6!*bL30yh<Wc~VFbq2d+@O?kls
      zuWU+~iI6dp?;LLPOc$BrX@9=P5qDL51zrtvXUB3#g=wvH8Z2ZfFz>0f(6c0&$0Ld8
      zTP1O;-G!umG6KbeEl!bD370eFb#0ks6qH8!QDI)+Fr5f-kLl1Ls;#zLx0Y?*g~8*2
      zU*`l|rGfDWGJr|?CFrEkDTXBdXtRZ#4&Ud(H|;dNdDKG~rsoKqUQ_k}y|3wqIImCb
      zV@#jkM@G->V?xjUmE1>mQl8fTL^hr~!t@^k=skK~5(RHT#sU?*&7;5t+(8z1F+=UW
      zPu{rz8Xw?8Kv*+^DqBn{CM>2I7Zwwg1-)w_y<Z4{eT6Q)*>_Bh7)=Ovvt(riKfXFa
      zF)R8m5#)WMxJ*4iAhjMshau=)37|Xl3LSa{K_y1EhI~k+N>rHe#h`Rq)GQoVE&Sdo
      zJ0xHqlRhgLM@5v%1gT*ug#dLbKzl}|X2SwE#2H8u<k%5D>LLcDRt1t8#Dqu^uWOk9
      zH`V1Td!skXZ!!0zaD>kfvA}2}6R*zWzrEML9^lRaN~hc-XS<VUx=;9ebO_{sLae^0
      z^BV2MQ~Zc$_!&R+XtEb}630(8re&eQ0~%7$Q!&(JfD8TBCrG_Vkb#aMMr86tfAUsj
      z^4F2cnf~PM$mB;Thslc+&CMlvWi#E4Op9BWa=ac15}gf9h|hxlI{2SB#JVZ=5Ey3J
      b5AisAfE7}@e>-0GP#PAC%#^+rQQ!R!?x<OH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/color/ToneReproductionCurve.class b/libjava/classpath/lib/gnu/java/awt/color/ToneReproductionCurve.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1058f5073809c4a099871035154d7fd595303a08
      GIT binary patch
      literal 1850
      zcwUW^`%hbC7{|Y-H>4C=&H(2qbCcnEk+mYj3+$q>P8M)-Nuyz24&_h^rKg^@3<%L5
      z+{zEL6KCcRMiYrH%xH)vn-XLA)x^KV_%CRz-}mjIbOaNBIOjaidwHJc`+45?{Ql1`
      zy8xcWP#tUv0?AAvGOsOZ5$$?Dk}%SS8JRRP`naAojhR9spE5Fo1#?NSgF}H&u1ss0
      zWaR4fyq?G_u;<N$0^3wffitNsE@}!C+HO-{(#@PcDP~;*sZ1(=UV$SJ3&!~wG-h-+
      z>}c}94KITPg7JDNX!gJfm#~g_P+zfHJ*dND3cMq!jQ(0-aauPgwdu63Kpim>S~{+o
      zDdAg#j{ICIryw-)e}(n4@W2%7a>I|~b?A6R=EO=auP=J=Bu*%(*GyAeNf_A`CJ2li
      zgwa2I$k4C|tl%jRI)zeiPR|#z<27*V2{5ju3wll#G7*g1fpXb#`GYb9*a-qn@fjw^
      zv|%h1vK5XoH_jkhhlqlv{j{T6e$K=0_7G~?NQ$LH!6C7<*MqZiSYOTx|9KBy5WaJk
      zQB7t_WjJXR*i)yL&d!NO4$)3!X7ptRjaEZPWC@O#|01hX=J{}&d%`G~2|bn)9XNI<
      z<};#3oa83T<6{$@rezb|mEU^lyST!Q2EIM?-r%^6-<HtNXbdS2;S(=4)cFuCKgwNg
      ze77+cFbD@OF-i<gxQrus6_3j~xgSUI1RyPuPmx)USy?ph7pppCmhkScE+z`wLl5Ay
      zhj(|-9{LF<52hPsx~ts&Izx}~=#1B->!_ydz$qz7r0cTM-Q-RIAyS*per^kGBBMX-
      zKdV0deo;N08M|Rq{Ndfr@}G|uaGV-|HyLJ%0k5GMZ;|XZgzz>S`;IK+L?uPFkO&J2
      zuz)6(8sthF?J%CPO8T2c3i_*}g5S{I*>LxBI2*R<wv;+cJLq26!E+nionn61F;ko`
      zT?y`>?{=Rv*y>zQUTJk&Gn;JDgUUlMy4~vh5^hN{Dx&#Xozapvm|UpXj(4M_;6h^K
      z(y8sLx;`}WJx7i6v=-n+n%6JOYTrW-OrF{thL9)p0^(Sr_Ul;2id5YzTeDhKy^0rQ
      zx0f0FC0aH{8AU$^NT-J<<s3;kIe&hSgyOPDtW`*K?2+(F6vhD->VL9Ot1MK@+h?Ix
      zSg18D)Wcbvr+VN+vbaeWMSAP(^euGbBWf*C(`~Bw7!%mwUHOE)ze8f5lE@uuzgxp(
      zt;%H0VzOFg(p_cJTf>C^E9-Rp#rzI_*F(*xed4sL_5pETO@C3nkcn-<bwg1EuXbwa
      z`s@odwaflHXEw`!?3rKTsL<)JJso3P2+P6tVwc<>o!tv#xtVFXwph6fOutz!?O%i*
      zS>D&Y^xyE8aSuN565&3De#>KipK`v#1$>W5Y*Y3<0{lTD3034+NE$eIkz@SH@fcMu
      RM;m7GGU3=c`ijgq_%9ESVVVE{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.class b/libjava/classpath/lib/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a98f2234b92a9ab56a24ad684731d54c19d2aa89
      GIT binary patch
      literal 3199
      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
      RmPVB;a8yGC2SLW@{s%`{XVU-x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.class b/libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73098309d668810387d859dc7bdbb8476c634401
      GIT binary patch
      literal 4092
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.class b/libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..802f67c73a372771f3bd373820e61d409baff143
      GIT binary patch
      literal 1604
      zcwUuLTW=CU6#fPf6sgop>!sFO?PY0eSB)l`ni>PPp+VckhKK6Qu#C7Z-Q6q$Ht{d{
      zpid?~_yhb=#xt`kEU;u_Htfzh=ewLaGyMMZ^A~_ec$h<q;c?69n#a7yP5xP$O{Zyk
      zLilD&o|wDxq~g2YA@^HCmR(1RGkHM895M_`L%b+wS2)7AtpJ&2SRGf7m1W4jupL`&
      zGt3w@O=@$eW$rhQg(bI2b%spYZHhe7xL80A=NXDM+YxWOrw!pB@<v-QT&cMhZ`ZkR
      zt2j(%<R`ns@TB(to84kayNzQdJk}D!bVta5^2(C7>ySytsH#?T{9l4q3D+9KrHv95
      zrYJS=WtcNcwV?(FMY5Y!GCp@YABA7xlJB&6&-F=c*(kk_@Teq1m^r|aKrtc^jAmuX
      zFiMQ#h?;+WW(iL>pTk{-(omaKr^nlNv*J|tJ)$UBA5VSTov7Mg{f#~)J%l5Y=9Yq1
      zeBPp<NuOX!6!=0-I;ar19s#?a2D{!ESXBzDQg%<hwvg%u7)Sb4I$dIS)Tt=ncW&3W
      z#Ez{7F+b@BY^sf75!3+v&e4CTKwr9k^u9pRHd6Ee*|qf_$bY9*iV#3vXP*({Ii_ee
      z8=!CrML@5nahWveYT;_A^;EL~Hjv3u33wTiV0{UOYnagzv$!5gZ0MNS>8~Ri6|GSS
      zs-XtM4cr`MvTq~Iy;$Zg%q21pVwtxwPthG(XDC`o(5T01EaG0`jz7dQ?<bGjnlSFA
      xaNNsS2_@EbK1RZhc(cCuYO=RG!P^MEOUd5dSno9=BzS+B;Jtwd+Iv&u&A%{>9uoin
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.class b/libjava/classpath/lib/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7460d52345cac0fb8e6a49c573bf4426358f1bc
      GIT binary patch
      literal 654
      zcwUuJ!A`<J5Pb{SY6U@5)Wm}(9#Er=iFko{P$QQ{O(fixc2gHhOV$Oy%ae%*KfsSN
      zPD>3CVu**Gc{BUo%k0kA_s1uIbL^PNFr4_|(C+dPxB08Kz0k7<LMYqUJ-exUw<;R6
      zxblU5q^^k^!{Llzn%oqjP|_VU4Tk-B+gU#bqaj17uNbn`qc%hCCh~-ZELQU{k!RSd
      zI*CcZL*IVrbcL(yF|p{#P}~pu9idvh69|T~6S+KSb0y<CZRYf|d|^0s{_)5<LxFqV
      zq{*<CPVp<A+$F;pI_2&DNn<D}(T_%A+SYoChRPLpG9I-uH^^CRh6B*&&{?9L#o5F%
      z#TBY9kRb#Z$Lt-}8=(ve6fMd?jTDzyBa|PrP(+C`!#c{TLoLxzZz47law8E|#+Ruu
      UMjP0qNNZVaalOEzlJK{G0EnQDN&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class b/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1a4f5cc05d88e65c90a6220bef0557df303d0ff
      GIT binary patch
      literal 792
      zcwUWC+fL&!5FK+Xl(LlTa*_6NmAnwaYa|3}6;!D}wM9Ji&7{*bm185v0s3n^><8>e
      zA;xYB6(B8<?Bk5j9M2j1-^=q~062!j3d}M1mB=C(@dqC8M-vQ`G(kjD69p#RU<DQ!
      z)ZM<|G6}BlMi?6gs|lK@5aNnw$l$lvc9g=TB513a3k?1Cdsf%zR3;&VHJiq>RE#Hy
      zb^7lXce9}l3UyR&y0K30%_O$%eW_L>>Q#|li1Ga}XE5*iEe2Z@yiD_)C~l*n`c^g8
      zNOoN0mK-R}U{qFZja$!Q`*R=upzNb=&<dZX1iK6xL#}yjP`7As(wiE7OP@K5YOPXP
      z=lusRW2)xVYenzu1XUKC4+g2k8_i`tP&x~Hz1{~#N2Su7G(-QE!8)lq{p-RA%42Z$
      z9ZCNK;{qiWFFM=|%XT`^Nz-?{)|Xvhu}<<BrLh<P|3iCzG_l{rGOOBEg^n>wg}s^C
      z=XPYpmKe}wg8gdr`W9gc>?^F4xLo22R2{BD&EZ;!KVaQq9X1?p!j{8r*m1ZEKOOE_
      Lq?7h(o`Zu|Ip^aI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/FontFactory.class b/libjava/classpath/lib/gnu/java/awt/font/FontFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9cbf8ad1ec8d3293fc249acb5055f45d9ef2c99f
      GIT binary patch
      literal 581
      zcwT)`%TB^T6g>llN<l#s-^MMtpfPSV7#FCl8d*q)iK}UyVoB+cGFAC2U1?nS0e+P6
      zwweaxV<wq%A7{>-+<AL{c?GbCO&uAA?LiQkLw?Imey2=V2FmQv(czAg;Z%plP)XW8
      z4+dt}9tuY><d3|-Q^yS1dZW*voycopAd5l?Ipi72mKTWgXk?49$8BFQR4wUnzt2N2
      z&cBM9y749qJJ!D@S`0-e6kLh8Nc@Akm5>8Zn(e6)?Z|aS*lJw;p>ryHF`(-tWSreQ
      zVyrwFOmtKkwo-QTpbSS`r4$3pSkX~qX#NzIV-cw7SeRW3dKAn!E@1&>8jc;g47Fd)
      zl9dY?g^uWW@gyoUx0^AaK8OSmuMBOPD&;z5`-F@zxBG;-$E0o0X%GU3(9lAWqS7ac
      naGtOb8zM%9VvRbBiIka2J!9!1mC7f@%WpEPSR-UuPgolt4cUlE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class b/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15a63b46234ed6754aefdff2311f42652fdf13ca
      GIT binary patch
      literal 6624
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/AxisHints.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/AxisHints.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9273d1fa70d1c9da5de70f5d371a073602978c3
      GIT binary patch
      literal 362
      zcwT)_K~BRk5S(p8QbK4;Uw{NilmixLP$h(fI7DzL>V=aN+~6v;rNjZg#R-W658zRV
      zjfr}LgLlWfGoF#ZzCS(zoM957M>r@<BUbWR3i;y1(i$gZ<Lpv9arvt28*N-2As~!B
      zsg$M=ciBqijxeZIu~tkV96qFfKQ#ZPofE<fZM2&a`p44+A-J-SDn=hW2_g&#qf{Gp
      z+pIHH-OH?0gh^_1SuSLy+j}<*+>>V0qklX%;n_8w+osCZwQjY;&E~XKVjrA_KZN*f
      nA?y&R;l9mCaQC~Dcf@ZDdPum2emKQ0*Q65<G4k@UXYKs}#Vb|m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Constants.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Constants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3db2fd0c471711e5d7bd97a2aaedfa8934ed35e
      GIT binary patch
      literal 258
      zcwRg8Z`VEs1_nb0es%^XMh4~dyi)zF#Ii*F#PSmTwEVmh{lwCe{ItvxedqkV;*!L?
      zl45oS7DfgEu%evAymWp4q^#8B5=I6-7f)YTzhF;)zjzP-peRNLMo&ftUYNG9#GKMp
      zW}sCJC@RBTgF--}j6kIbQD4UhkRZ@OT*3LJMaijdnK`LIeQ-DEfvjf(nFUhE%pl3Y
      f%D@KXv4eCmZ~*z7NPI3JpBstK19k;3n9T<O+hH^u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/GlyphHints.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/GlyphHints.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5324cebe34bb1b765cfd91fd814cbaab378f65cc
      GIT binary patch
      literal 972
      zcwUWC-A)rh6#j;muGC`rM-dd2m_mRJ7hKg4i~>RmUes`*SJUmZ9oXI3Y-g1|mRBZR
      z_y9hX;mmYG6JuL8**#~@`F>{3?4Q54zX9ywjfV+_jdq;*SNuEo`48>4RIGiTY1NY2
      zKM8wD=aY<e*F&CR#-c(VxBbtJD-mdh!c9Hkp<rOAX7N#knp4tq)k4oz^87}28Qy-Y
      z4R?D_5NlQ?;yW2jeZY{bY+e%mgKCN*a+oQhglUFyO~&FPiy9*R!W+hFuBOQIlBd$F
      zT`{ja)^>#J;EZJJrJ~#4`F3Rlryis-(dR;^GU!EC}iVAy;xk4~A2Q1K?i&i~w0
      zB4XW3gs;;~*yO8<Mc+<kI;06OY(1PvQwvm-WLnfkJ0b|}HeWe4dby^I7)m60J?Itd
      zDoX=#EX_R1gE{RQH>`tb^czjuw*d2aE<SQ`%EclcJ0x8m@t#oTQ)H&P^$X>nluTfj
      zz6D#{#he9O0Oqk^WfrmI$om!#uz!hFOI+$V?}-e{cxwC4urf~KaEQcntlIt>UW}7C
      V8Y1!1_1DKsoQ;%VcxCag?*Q1S!=V5G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Latin.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Latin.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01014faf23a0490a4b8d614bbfec5cb2d179d49a
      GIT binary patch
      literal 4407
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinAxis.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinAxis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba60a11055fe659e7b3b04b9a2219a1c55057027
      GIT binary patch
      literal 450
      zcwT)_O-lnY5PfO4t**7LwSF8$5mdzBSrMdC5EeaH>cLaGo3<%y0=rr3-|{4Q@CW##
      z#7SIw)4<G|k2jN-e0_g>0yxKR0~LmYsV?|jya+B9mQRefTol$!l;x4IN?*UKyn%qB
      z<4LK|Q+_|5%h)p1@>ryjf!$J^$kYmkaG?@A>zhIoq3)BMVgD)m`<_Qfx?t$ZWGZh|
      zZiSBJFq8SrqzP>w(4tGFmAzu99vzPug1$*)h$=RkSVxPY9VspEis!M+hGOhAbt6OK
      zMj}%#FN=YlDN=LzkC^47Nl^G;iY%4`<z`#U&Y7FU9!L#+WX)S0?lekVDRC8{$2By`
      oGcr<3*rtdRx=QWj9i2A{D(I50`{F4!$v1xq=wZu`Z+q6x4_0qwv;Y7A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81c17e85d02071c1c259f6c0aa97f80706268294
      GIT binary patch
      literal 417
      zcwU82!Ab)$6r9&?cXeH@t$u)~T15<=6`_cNu!>OW#Z$Vb8fmkVChBi_DtPb%{3!8d
      z-Gdit;Jr!a%{+#DeSdrcIKp;<2BG(0ym*o?Qpi^)CZ%ygdRI=g6S;KSTq$RDF;5T?
      zcK_E73#*@9Eha?rO*8cF@+IpBtUD&8-e@<!QTBXBpi4r0qM11*H2Zra-gj2ss}xPF
      zXIMo_Xy@9fYd;$+dn?CNMd;>bA*Um0b$Hig<Q_wg{<0W#@Q`F!dRwRq9qgUI!^7am
      z4mcD4UxTZK7~v#X;Z9tfjd6`{f-x|y{ROi3%CNybuE+zlxo5uuY@$=yyOnC|2O|q+
      AW&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Scaler.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Scaler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96ffa84e9133a410d5c827a00d682dd70006d05e
      GIT binary patch
      literal 426
      zcwTK#%TB{E5FEE@0%@V8ysi}|3KAA)5EoD-q>3I|_3i|xxC%}coI*Z}6A}kLfR93~
      zjV}l+t!H+;>skBr>-_`3ISwN<7zPVn@ugS`E}jj~3T?QkOpz(Wr>V$g86jZkxr$uq
      z1)n5KnHq-h#ho*-Tbta-+z2AISHs#XK_*hlhvUCS#Y$>ZuOy!knGqS0dO^LHN-J~4
      z&^#W_>4xj#UdCvm*Fgtc4BfHP@~(PJWH}Rwb?c7{vYm@k+1!hPc~DObNB=ngej-`M
      z)1oR<Ia0Q<{Ue{*9t=Qp(1*2Lgs>~}xZ!crV~jTKjDqGQ+$P2et<pMqL-&<P13R>b
      TPCP~56}tlLV$ZejyQ+h47*Jf)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Script.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Script.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d909a1527579335ce44984cd6026adfadea77925
      GIT binary patch
      literal 447
      zcwUWAyG{c!5F7`>k-Gr-1WJ$)7IpeS0g9AYZ;TThS+;fA1KqDt@Bw@jVtt&TNgysf
      zqt)!pXg@yR-T~a;EJH`&eB~>-Rxe7bSCY%%Nvev%(vqC&(niW~C@^RgPWhD_Kdy}?
      zfx>!A4~9ysHv;pE`~Qqu?Qn}QMB}NBMvj@xn2dNjyj%$MH(ELK6LYnHOxiA<g8yCa
      zrN(#G6Z6SmMz^kx&y8?f+1+uuiqX|=LOu;usm;hb!$rQu*U9M!5I8`3T|R9WJYdXl
      T++eT897TiuguHRWe+Q>ubHs$n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/ScriptMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/ScriptMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e22288fe17fb3be6177ef80548b5cca1a9b811d
      GIT binary patch
      literal 424
      zcwU8&u};G<5QhJ2(*#1GrSJfV1&R<BGl->9rvO7ycPF^TRdA5wz;iJnG4KF96yj{U
      zFvZf{*>~TafBXCA^9#Tw4ioeUCo9v6wS1LAzB#e1jT5qU^-?=AFRgxYx5`;vHVGoa
      zD1enTD{)_}Rp|(E6DY!Q-Zkke(6Umti}sACueH(chR{EqEC|uGepD&?*v+twlrYS-
      zQFrZgq3nY!Dn%IQH8(G$)&9ImM(#;Bgh{8s%~Sd2bY8c%R5Klh{;OX22{;0);&1G+
      u4G_bx1Y7Khjn#47;ho^<GlR1aWbdJ2k9{1H=NPij{s4@yAKJ%(I`{>esA&WM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a44b85c578134daa91bfddd0cdcb29c4f31903ad
      GIT binary patch
      literal 347
      zcwU81%TB{E5S(rEfDmYTd;o|G<$%SRiVIRDqzDd0y*sHJTv8ha2ly>cNF4Y8KB{7E
      zddJf4?2bk=>!0=4H-JkVrRWh(YSW3Oe3e4JIkB+D3E4Tj&`wNMy;8=dhzP?VX{4#e
      zeYsSXBSeihPlVIrUxzC~tj%1#6X=%Ef3`1#WUP&L*SwyMX6$xj=PE-VdpR=f5C(-d
      z>aJUrs(p}UqX-9utz<Kkt@itdjNGGUw`^*=wo()AxqOp*;jh9mID>!eD@FqUQfvj>
      o4oF;_$(Zvb7(El8e`5E8haLvplR%Cz<evWtupjLBvY<Nr1)7aW8vp<R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04a11d86aae4f905ac78b24a4020b06830ebc124
      GIT binary patch
      literal 338
      zcwU81!Ab)$6r9(tySlEnR`1fA^<eO<co76)(SuUY*=@Q_SrdqfewQb~gCF2Wi7&Bt
      z1DW?`n1OlUKc8O!&T&*=KsfG95Nr7=g?#g3X^j^$c)QeIJn4mB703wVWay>o#C@|?
      zttSkv>j-qqTN@lBCkXkaHrih?J(<l3*|lA$5<~1&*g;7c)!L}L@Z2c(D4SjpCbey4
      zKbKBNz7aFO(l3N*{ZF|ILiu2WYt@a8xiYC|F@Y(#1s@v!7IMT_Z02^FTtBvA++`*b
      eXYc6;s&`%n*k{a>IKzms`ZHjRgA|`6*WoXWGDK7W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Dummy.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Dummy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d070a3e8ddedd87bb25a0a60742fa8b412f0243a
      GIT binary patch
      literal 595
      zcwUu|yH3ME5Jm6Ud73~TJVgy6K>`CpG$5KFP^3TuO1}w9Vq~u^KS22>8Y(0TK7g;F
      z;WrSowhM$Pf{VE`<2`q;_WkSi4ZuFu$}k8!W0lzV;z8KrF}Ck~72AFwRXh!(-JOW=
      z!kq?_OA&0GC7w4eqd?f25h0XL9OcBP1hd^45DH!YR$4Got)Yk#q270tyh^;G3~$8H
      zm4sH`9|?CLLPyW}vJg+4h+y|;yg18xOsI@yoG#g;-RtyNl2LR>AZ`!Z|Mcq&ED)*$
      z>)KDkkvw;FxaQB3yV{LV>nSC}t}CKQa`0lxV~=SQ`ZHnZ2jIEPlg&!3#qAeVp1Cn#
      zaV@3G56p3`Wd~U2SqTfM=kO7$p&9e(7x|fzE7{+i)LjEjP(!=5a*xg2LkC#=J3wZ#
      Ql-6Z71*|l+iB+tB11{ElMF0Q*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type0.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type0.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f9d2e1089dab78c4db929998ae9b7724d8cfe6d
      GIT binary patch
      literal 5509
      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
      RCIi00U$N$krSWT6_fIPE?VA7q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type12.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type12.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7169e72749def7c68ae1b6b99c23ff261aba09d
      GIT binary patch
      literal 1637
      zcwVJcOKcle6g@9@#*Xc2>NcGK9-FjKh~uPj5{ldAV`xGejMA`3)rhV#vB&lxd&aWI
      z(6D5ISb;!dQx+ju0#U*OsZCLVR(uyMSpyQR`3M9;{0jGtO&W<TDlyW$ckjEObMLut
      z=Cd1DuK^gtBSCZtjFg;a`f>9KGi^TUrHiiPrQMq4cxyE)JzF;G^Odz)`LtO(e1=cP
      z#)D7<25vD%AmlWw^L4jbYY2#(fKo6$Q{cdYAMMy~I_G#Z&0^82PYOir#!|CZbL*Z}
      z5Kxo3+~7HmnRN@6z}^Mhu@;-vRjYo+T&?iQ{slL0R?eDrTk4&|?pnq4if+BiqUGe>
      zg6)(90#mkQds%^4@+S1mnrC&e8R={ogkB9%91x(S)cbII5Vr~R?h>Nm4#Xs!+ps;`
      zb^Mr|jEQSV;7);H$?_x{zGXHHfrA=C2nTVOK);`|VmhUCu2Qi|W@X7UJ!|fK-m1xT
      zVH`rQ%yy54dnHhSvoTllD5+r(DJH05S8b2kOy&l6bk*)C#CXFRR0L$mh=w#qnPIcB
      zO}Ic`a&Wgn$k1^OL3A_uUfJf^jV|2c$UE1Bhe@l=qJX|D-2!1xj*EM)a{~c6FO!9C
      zZqm=hz}ytmIfZNx(>&|{)~VqEOfU||uzNG#ILb=ZmXoNO=Y5%P(Vm9HkR`USQN(fz
      zH?{DR+pOoUQ?|T1`*t=mA^`=ooa0#a*^1d{Sj<D9-5y4nBI2*8i(jS~@?pMsC0=>R
      zY>%+^40}kQZ0w@%Gl}*iWBWV0e20yf5jKJ?sLCd78p=8%Ml`$*l{V#pkEHP$lUUTk
      zL3#~G=nah1MNINOMQ>pb+xyyR=;_py#a@;KOHu6W)bu%{OY36l3ic0eLC+|>8W~kr
      zquMKo#1rqJ{{kZK;?QGPaQAg-TprS;)8UmZ3@l4wIVIQ27?S&u%NTomyT%cTLRX>C
      zdkE9}h|)Fm({&8c2N<RgahyKFG<}RY`UI!xQ@`$PyCU3&qki3sxE~q6?nS?sE?<(p
      z5Oezwj<KY0PgxviNoCIym}vJWY_<g1zeUrjOBhlL*@W^`Mqzm@peyAqOlH)76=g-L
      z0bMm(h#PvKg+4=93(~ABfwC&iE1P=2coh*{QC6m32Zv?ji4~bLp4j;N&Hs^i$6$;6
      zI{|%xF8UH7`U*YtH4OR&Df$)}`VPnFdz|2Xf_}g}?>YJrkJ3+Ark`<+et}89qDa4?
      zLBHc^`UB6=pLm}B!VA2=NH?&~`-TFa?1$U*Y?Ix>gZ?Gy!Uj(IWQTA8Gd|fpcnPyU
      f*#@3v;w9NBtYMBN>3PcUV4icrzx496$RYL*DqLQw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type4.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap$Type4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b70521ef2efc42bc13974099e77fd98bb2f31a2
      GIT binary patch
      literal 2808
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/CharGlyphMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a96ede9f3d27db1ab242c5198236caf7c7c24f37
      GIT binary patch
      literal 2377
      zcwUuNU2Icj7=GUVo%XC<Ti^&A<7Y6Sov^Y2g|RWWb&OTE6=*3Af7n@fx*cdwoAwl0
      zltdFG8h_$X)J!x&j3Rn765R+S#Av+X0;3mRc<l{0-g&FO-|0$*fn>Dl_rCA<{yy*b
      zeqZnWbMrQUb`&Jo2-~KNO60V9R*k4Hnvrb5Fe8PcW|%WYEfSknONVkZ#pw~XD8WGp
      zScW;(n2IDOPHP#Hw~h?=r3MqnMot|cjmHuL2MH7>_+ka4Y^sKtR&y22&Iv(Sao={N
      zFBTt7C6YrzLl0=;v15s3VlX8%c7m&0H*~XyU=M}U1V^kesmZV-=!FmU1plyZXrq<<
      zgjPza6FH4z4Hq(MF0GbyAunz^%xS$$2oEn4ZWqBlrJ0t<-l2GyLAkSqT9V$-uocD7
      z3z7aAQ|qr}vs$TZ`SE3}#X1R1gq05o<i&by;Dp6OSvU29VZo0JpJp#M36(Ra=XF!;
      zw0N-vTL}`^D^ggtF`)?w+c04jm%pUkYN;}w#10ADxrP5ziR5A7AMs+R$mQb5al=Zs
      zL&h%bk+7SvW0_D}QoOU<izxOI>hyB5QY;oqrZ&leL-BY#d{Rayx+Lr;v^`GD_6`xW
      zn|l$eMd=Y!@f4x);m5;fX&HTpN$9UN-kRov=Q3JRG}?;+YpRMR-7u4;nmLmysTob6
      z9`xc6h6tXLrcN%7!O$b~EO!v9-C^`kKW0aF%7|lF;2j~XdBixTB_tjr?m#7<pOG<&
      zqayAxLPu!XI4s{TaYyYFl`KJdXhl5J(`wnOpC5{oJOcbmluRBcPcf&Oe8KX9*NjYI
      zQa7fUmn?(!4uV{>u!Ne45TvtOscc;nk5S26XTz6WHU*Ou?wm(Bs;0P8i&2;rXJ1jL
      z_#oZ2aBNw~X3H8|l1{K`=k7y!a8ekGoGesI8EsG(qYzx$jW*#x@Wu^8E5&kZxhx8D
      zT0LUAh~J_N(N&#hM>D^X*0YC3IN@SRV#x+K%bq2&%yQil*~=azo<m;!yc1zcOr5O@
      z2wb;JR`BYwHhZy>S8vq-tDr!<>`!1d%O0#jLp6x)FV?ab4cNPF2kbresKXX@+M_Oe
      zRBD|^V^rpKW3-Of%~7}Fo`sX<EWu-s2Cw2;t5P?QZHg?7E5U$!dVC(OCoH|sTK$R$
      z&^8_ov?_slv{!Xr#rrMSamH#w_0!Bh2miKORRak}_f-rD>#9qAlkGD0DL$oM@!vql
      zEVe6w1B$Ol@kbq3u|aXNx`EZK+&2rq5{Nn#U)05F=|Yf{pyIjmZ(4C)!sf+_oublP
      z=p1WRT#B@S19SU>4Z(TzHeJH%s!fvxW}V`=frE1=*3P1#hPLV(ALGs+o?~uwj23WY
      zj?vsBA{+Y1M;mA((=F6V`}r-Zp3P0P@%j==FY_s!=e<|>EMDc8_ySt+8p629@Ad2a
      zxBUk8;!PaJTR4ihaRTpP9PeTZ?;(#5nEMFt<70e?PxyNYm+>jS#AmpU&+#2g3%G(?
      z_yV`_74G6|{Dy1z9pB&&j{7HD-NX0z8}nT04RYWnd2pM2_>tD&C$9QuYQ`Pfg1gj?
      zU%2{Tsf)eEJpCY68bA^$F>ln5<4E%)IjEOwbTKX$_23!i?C`MH7;_GIX&+89=Y*g3
      z;92HeSV0|lj;Vwe&iFiYZnV=%yucjKCvC?m=47m=t^Dui;){?+k$d3c={U+=QJM2G
      z()E~NuAZ}BM20y(+nmQFa{=te95m*FjM0fKcQ42lPFpuc$7!aUxVllU{|sNXIMW={
      NT}<;#JDD12{0~}sAM^kK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31a1d649f9b60815620e8fdef0ba7b93d72ecf00
      GIT binary patch
      literal 21906
      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%0DVGN3-n1{J<#v#
      z8i78gYX-Vi*9vr-t{v!hT?fz|x-OtQbv;0z*7X71r5gbHjBW^Mgl-t<v$|2B&*{d2
      z?$%8JeO@;ObdPQZ=w96{(0#g}0DVDc2l}GU2{cl70qB0+2S5+#E&_c?_Yu&8y30Uc
      z)-3=%r27QuVclmyU(qcBeO0#%^ar|YKwr~+0rYj<S3uv;5ukeAPk~11ehxHR_Y0sg
      zx?ch{=>8pOtnODp<8;3U8n62;P^0emK;P8;5$F-!pMWOl{sJ^n_cx$Px_<yQ>AnG)
      z%wY`h7Kb$eW)AxRq;S{|z{24b09FpK0(hIlHvk;v@OJ=?arh>H;~eGyPH=b)zz;cm
      zE5JJ(z8&CQ4zC4xkHhN$e#GJLMIO2drE>T#ifJ6ahhjR1@1vN(;Rh&Ya`+*NSsZ?t
      zVm5~#p_s#Ao?<SC11RQkIEZ3CheIe9a5#)&A%{0pEaLFv6i;&a35vxW{yxPL4sWGc
      z%Hi!4%Q(D~VmXI*QLNx_1VtN%pQBjG;pZt<ad<DqY7W0Zv4+Eu6i;#Z0L5AkAEa2v
      z;X@SbIs6L61`hv#Vk3uNr`W_{J;i1YM^kL!uz_MLhvO)=ao9+)ox?{cp5|~O#SRXe
      zD0XuAEs9+nPNCS%VJpQR4j-l1%i-e``#AhViv1jZm*N12e?)PR!)X+UIGjQ842QEQ
      z4s$q%;s}THD2{TtfZ`a3iztqBxR~Nu4wq7#;BYy`Ne<g6PI0)3;xvbAD9&)Wmf|@M
      z*HfJ3a3jSZbGVt}PdMC4agM|76zv@Dpy=Rm7eyzBdnlgga394B93G(fK8J@We!$^j
      ziXU=#l;TAWk5jzF;R%W#ad?X2Jcnl}Ugq#DMHh#ELUDn^c8VW!*h%pd4qu@7DThCx
      z_!);UQoO?9k0>s3_%g*M4lht#=I|#JuX6Y^iq|;2Nbz$HFH`)2!`CQ&$>A?3e#POh
      zC<+`V6bXlaN>SwS&nf<t!@r>TGY<cf;?Ft!?-c)q!@r{V3l9I9;=gkEw-kTL;onpI
      zHxB=i;=gnFPZYoA@LwqYio<`S_#Yhp2gP4=_#2A9;TTNuw;ZFP_&bjAq4;}_@uT<$
      zj#)wRj~ug#;(v0?4HW;xG2fy1XO6jv;$Jw1qxe^jSwrz}9CIthzjMs(6#v07YbpMd
      zW7bprhGXdZhn+h^*FVM_b5G<jbKek+pv(gZX>Y+kz~?|D&4s9(2N5_QqHY0NhYHbM
      zs0clPPNGLpF$zK@XfrBB-$!L=Cn`tJp$hZ@vY~^h68!*Gp=eZ%jHm{g&?#g^wdjYa
      z4yB=b(A)r88lglJJZ%Q91+}AA)Pvg45OCw@G@3yj$c{SE2dE2OM&0N$czO->B7*wR
      zFHk@F6&gUlM}z1uP~sbO25LNvSD_IM>jmG6#_)PHj_*Nd@k3|=^Jo%>peg(~n#Nnv
      z4Bmy#;pfpTjzmAkhtN;(>u3%ekR2aE4*V8!;-lz1eivQ98R&hShd#i?=tFEn7jZ4R
      zgqzVvxC71OK6DumBNv`P3wRcNjGgEcd=Y($7tm*T5naJwphf&sw1j_&mhrFARs2VE
      z4gU>&&S3Nf<A=UvZa`l#91@t@5n;ZEMCLy9Q|4jxGbRB2oC!n!!aRX~!E8tW%0!@F
      zGJDa#F$d7UGq0ep89n+H6NmnTNkqS9QqXUh<LI}{kI?U!EcAP(0R4d}MSo<f(0?-Z
      z=ub>5`ZLpw{=y8QzcOdh-<VnScji3$2lEm7C-W)#hPej&a}i_amzZIGgEh>bu$K8J
      z_R;uYUyVQZ)7*?%%{sh7b1z=0*@#zZg0a753%)_K1K+6GjlZMWk5_A6#W!hUuuhYJ
      zIgJJ1ta%5o(PZLVG==z9O$EM9Q-^QYwBb86y?Cu=1h3Of<MkQ`{;uW{{+{Mje5dAf
      ze3#~D_-@VD_#Vw4@V%P9<NLH)e81KoKcKxCKd4=YAJX27H)uEFhqb|Yqjn2^M7sk&
      zs@;uw?S8yT`zj95#^6A00uItzaIp3r9HPy{q1r+mrmeu?+B&>h+lC+0_TtC2BY2B;
      z8b6_R;3u`0@b|T!;-|Eq<E`4C;ceQl@pkPW@DA<Y@lGEte%i+$@AA1BKjX6wNBG=}
      zpY_>@pYsXEyM4Cc=Y4kIJwChfUZ4GVpU<oK1)muFqE7;j^s(UmKJVZIKAHF>pF(`l
      zrvkt1Q-=@vwBf@(z4#TM5&WvpH2#5)1Ha~T3BT_1DSpG}bFBCI8IJP#8b|y50mu0K
      z9UFYLIM&x6$NAoj<9*j*qwl@=P2Y|9h;J}X@ZEwFeRtp_-`&{cyB{a}zKY-SjlpK$
      z1f1e)!4}_lu+=vczwKLykNQ^NW4?9xxNjRi;oFOU=sSYn@twx+`a1A?zL)Tid_Tph
      zzMtbX-=E=h->-3o?;mic@85BjpB88P`QseFn{lq+I-KWsC(8D_2kl`Vl=j%vOFYDE
      zkayVN5g2KY{osai=HU$+N0~=9JTl7gkDNz0KcX390yrkD39Z<$cAN<x0+B7MmqB-f
      ze?hniX>lo9fy>a1xB{)mmFR9<h3>(p&;z(uvbaIk&wQVGitgos+X^QJOgZUn!AKlE
      zU1-n>W*e*;xn>dYR62u9A$;hLhc}KhI|fzbzElD3k__A_i%Dwf-zrHhmN-Az0P{4n
      zOIC}iQtBQvHjFUOoJU&$c*?FFW1d~jzA?t^JxH_0n8+vAP5bQ8glap`O^>Y6Dwzi|
      zwRnwoUGq1;e&j53a1e42pGPYxtPP~8SI?uhQ_O3JbY0`j8#E1iqsN%|F(zS9${&S%
      z$V;XfYI8!tPb2&x^23+V9rz>Y!+CT+zKk|v7YYM>3jESed<E?W-xP_jqQm$aGUMM#
      z%@3BFqxNqG_!Zi}ccXh4i*$m!AAOIpGH*k}AA&eA33*zu`xx`M($gk*LPz1@4YZMd
      zFzTbsQOd4nrS6cMeteX9M(L<`4|=A-Ez~@e_6OH^3&Wth7!BIMXr-#%BCA!a_OLSa
      z482U0jWb`v7{P%OSA%Xk<79h}j4`RB3>~A49;qn)k$cqPZ;PZCp&f|XN1xq>m{b`x
      zlI%hG*oa@=aE7^WlsP;^HLku>8C%dDxn;vzI8VYOh^N!+W4>#reIC<lp45c;b)ehU
      z->zNbrwG1s;4G8%WTqcp<F~f?n}1yo2hkYq8yd)j@{jpIk`@V(r3*mYd!Z~%-0rJc
      z1HE_h;O#zZ{Ai&mIKE1m<4kF!q;GxOHy0&?0n}db6YD^%1?lKqTH^;5Ul$nJ;ZEM}
      zL!ZV3M!IWq`Tx=;N$FZukGm}eZ+MFTeCXTC%S^>6^Qtm)s}Bx&M!Fw83@itW^k#H3
      zvj**FZbPp?0DP5MhhmxaD2e$ldK-e_yUd*^ow*BTGIyhV<{nhQ+>5FK>mc3E+>b^<
      z+YIv%`VgGZA_UE^A^k_@5eRTR1hY+;WdiW6Oc1`Gc?9!J2;Rgzi63LWkGC;T;b)nx
      zcptM38vv7-?byUb;AG|ne1drqr!$ebh}n-TnFF|rIVjD*lk^e-S1U6x3C+nf5N|_|
      zC|o*Pqi`5pQ;oD>GEpyc3OEf)NBvAKEFCQxML%TfK${PG7Y#G@Oasiu9GJzEl9!o8
      zk1O1V=x(MFI2QdGg~@raS-DGjx{}^VDa-D!%GFAgW{Ymk7}KJSd19UR#FM%;>&KY(
      zQ0*G+9Zkr$1KkHq3tG8e`^J_I<g@;Xwd>ySl3EL{XbB`5kq;i!-6m!F=+>@*|JD2&
      zpE0I$jOp<>nr-xQM)MoQXnu=UYJP`q)chXZqWMp>PV*=9J<XrdeVV_ZjherqM>T&(
      z!J2=dEt+r8RxL)mv<!;SYS9Z?AE{rTlxq%i!bEkWH<$rwWv@gpGkH=U-U#z!Q0l{5
      z&~Dhmn4k||KsPaGB>%jUUU(}W;5B&S2cxuQ1NEfm4n27a`ReW-T(50{*{=!Svi2-9
      z{QSoA$Y&#X(9uKdSF`cs%s4F9P@fL;&ow>`Xw~i7)vu2+69+e}@d5eOD^IKrZ9<`I
      zZ_<48-s+XdHe~u>ctBIB5YOHS^#yq=m4}7rdzP6VV}3HmI1YB8KDVtKZr5&<vrgTv
      z<(LbUU%T4>#Om+7w|dhXWud-nd{=L7L#qJ%Xp$<T3fHb?|92U`|6N4$zlun0THpK)
      zbGvqo`M@*6r@-AK?FO_;`!Kpuy9sgHKy<4%2(8lwqdT=B=x%K|;<cMmi1u;xn05==
      zrhNiN_bIeb`z(4>`y4WBccTpL3n*9nA}Z8IqDt*S)Tn(K^=c2HVeMfwrF{k2wXY(V
      z_6KND`x^R6`#SoC_6_uVtsebV8-*EdG+qf?x?8jcyj~j%+rc>4@@<AK-4SW#B-1F3
      zw@3jAK{#3^%^{d!=$8t&4*4=4A`a$IF8B+XW06J*W*XRLJgRU!zJa;OT!PsXh_%xC
      d@<DH++hKdW3T9_7N@M0hAH)piveY}S{{zfEdsYAd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/MacResourceFork$Resource.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/MacResourceFork$Resource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f54ec7154e69a357ffadfd186041080a1e6fa6b
      GIT binary patch
      literal 1571
      zcwU`TTTc@~6#k~PU07E^V7X{fMAUYRtaw)tm7A=o5`{qY$!(d!V%a6_R>S}B2lxYc
      zz-Wu{K@)j1J{vF3#(!ZvGrI*PH8DQyoO9+}zHh#n{qXb6TL442tsug1Zpkg1EA|uH
      zw4eHB-gAA^TjQ?3zQ)ZvcJ4kedF5h`PkF`1{k1?rl%Yj76>N9OoXM{6oX-#yT@1`(
      zh&YSn%rZ3DzF%~*WnU!57*y9@<umzwiBp5RX!~|8XvmiH40=Y+bsf(fTle``IiKgn
      zVTSmK<2wE*Ln2wX!kV?L)I4z*_ZGQ|2DE8tMmvp7rskW#(4k>J4hXMHLkw}@9nzqn
      zQFsXrTCjIS!#>0rnlp~e@0M4yyf|lP3q-#)<K^tayj^re9BxMaWv9e&A@d(P(y^2!
      z?$1fph$rb5qu82|5s9Z#G)|*v4nt=$Rrlm73=AkpGqlx7YdDR5hQ^$|X6GD#T~wPI
      z&R~eZ3eKuSliQQl@1u9ep3`t17f5`;N^po$r6n?#G+Y)V8rQs%<2#<K;wnr9bfo4z
      zlSKJ74WmdBVyWQd#9<5ErME$2Gu&PBml^K;{aXJ^+SI&CmpLvTK??~v8<aTW%G&od
      z4T{+en&rB@I9{+zC0<f6&0zdHFey<B>DQtI(k~XLFD6%rXC`eERB88x`&ww}Y08d>
      z;7k1nDSAec$o3jrXf@Im=tiP~PNS!SZbOe&aM;je74*EInh1{4dW3L*O+@jMkY3Tu
      z3ffRbH?}DM8oiVq4QApP`Xq9%#AecqNe03bd>f=E7)GThILD~+IQm0|CRx!LGhU%{
      zV~0juZf;9BEhq@#7*611o#yVn%^&MFpF%QheopKJziDdLA7tJOBfct9RSYhK;o&OI
      zUaR@aqbe>2PJ-Mk3qk!zdV4dy{f^KTOkk2`PU4od0iQ!suTPZyj1GJuCSNg(Z&dL~
      za_o?bO@|!&NS*6aMTQ$YIz6OVRCWEyR?tgtZ`9D+p;L{HPH6-51M-yLDf@$VzyGF6
      ySAf_8dNDUcoB=`>FF-TWi5@+w$F?xG`#J(;H|30o{3hf&i7B$GypCJ2(ESSmxik|1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/MacResourceFork.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/MacResourceFork.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbb42510d34faa30b6ce49291c3665796fce3574
      GIT binary patch
      literal 2474
      zcwU`VOH7<q6#nkKA3rnG$KQ4=)Y^xI8HTCTGPM+_LR%f3f@Kf{e9X`A4-ADFoQJg<
      zjWI-xJ8M&8)!4=bCK^+dmc|EdEW0Ld+^ZYy%8hFi@w<0s8Z;~{5bizqoO{nX-#Op;
      zx&8OIHvl|@Q70?{p~-wDI&HjUM2$1$Xtt0qM+<XizI=AhjGi<y17@jEDQ3(Qh2m)^
      zYytswcgDz1M*GL7%}iOqE-#k^EMo})cd_<@ibG>#$^Y+uPyKL2z&c*Z3g}7oGM_6%
      zd(M{4o=P@r7HM^K=JL66x4^dMHE*;G3D|lI6Q&1N_%(PDpv&f#ArCfUvlE*HHm&ha
      zgN`jkFj1MC$z_bPDX_J<Wz7g~Ft`RcJksTT8n&ZRz%^GW<;uB2USM-`V)e`FD|vT^
      zhWoLT7$(hfB41W{C8S}OhTYgB;H05<$|x#JuMG5{20I*1Gz-MnS5WCCq`?W7jMOUA
      z-RVS|z=3smlP>maBv6cqnQUsRP^{ueS+TOR;z0!MvgmPvQ)@RUkxC@i1w?k%pUmaW
      zzRK*lSsXORXV|5U$wJ1M88V7Fd9EpK<*6Jw*m@6fNG+e#Cv&B8e>Ph(2}_XE4Mj7%
      zTIb6fv;Vr}o;Bv`vS-358})-LUzr`OPKU^`w;T?6Wcz6tQ0i$85Y>relv65JsgLgK
      z9_0DhDv!2eshAOHzXw>W2TNna>PJRDOq#BbQnJ7biFcJp<uKK<E{Bpf0~%72R(3fY
      zEQlpHL1GnUrk+&wO-}Z9^MAaw$zTMR$mh*s?~G9@$tSM*73?Sft^DZ8KaLXQ4~IeR
      zoMB}l5@=i-0Lz!OZ2&|dbRE9%NQdiIco7?tq3|_q4O<rx9Ok(x?og{;uEW(uw+FVR
      zrCpcW2h!cOJ#LemEgg4;bm#Y;YuL+u3Hz?0g@$mKHSS)(`{BlbOLtGD?*{PHUU@@T
      zu~&ENo_-1~6ue7_q{2<gx4dnQYYRy57>zgRwrWV9a^cq<x_{$=*VA#oO7S~HM#8#B
      zZ_xd^Ph7{rjzHCCOxJ>e)VwBiP4`}2S)6wZ26A3rnF+d<7vSW2^J`e(7B1msZM?!K
      zcWMrCy@0)36R=@`6&-{RPh%5?5X3OQchAr|f)GX##TX9bSv-p8@C2Uc?H8y`Bg5Y*
      zOdyXeUcn^Z;OQMq<2{_lCz!?Ow0wm*T*Zr6LJ`X-<408R6VBjgyo_JD|BkcxllT6@
      zgs@{k`0*MZW>&voi|i%icF2ZPl06rU@EMMvlm7+%JSmBJ-9{HBtI{cndH#TIN;aia
      z67k%@QA&2DQxb9hfk!Agluk*+_YHk^!l`shBBG1vq2wmYSJ6w!L#!nnqvXXGcnZfU
      zX~f!v6L^e_T*5&-PMwdq+gRmJ_=#3yW=|qOze${|GM9)f%noR0Q@4(syk+fPKv1%$
      zscriuXtLE!vDW1)^H$L$)i*A${MO3$I$D=+iYo-`#14)N2qvQT{fMc(+U6a!18;Jj
      zXZW{R*tdCe9%1SZ;9XVjoodY5>*c1@$AtNj#4ZI}j#@uKs)U8~EPbX`!X36-*0_BE
      zM-}1iZQDPEV*zc7q4rpxHO^BoqB~-XIMsLwUMU7`gyRspBSJ8D=Iuha*N`pIB$;cg
      zVRJG1C}VYzlyV;>2}kc@ixClUj<?RU&=*ME573AYv4`yn;UnVsm@hA~A?Hc(b0qI2
      zg|}OMP||ntrfYbmG|1Z)df3fzXl4dpHm^sKWgqKwTv5crF_Ae8b4;L!8R6dug8u;X
      C**Xva
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/NameDecoder.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/NameDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2e7a0b817efd49db5be00bf5953b2bd96bb951d
      GIT binary patch
      literal 8392
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de0cffd6a2773c5fd7dfd74c6cd1d3e8d6bfc6d2
      GIT binary patch
      literal 8291
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFontFactory.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFontFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fe831dcce7b2bd97d8d167a50e095495d51943e
      GIT binary patch
      literal 1609
      zcwU`UTW=Fb6#j-?XT#za$J8Z;q%n72ASMZfiy>{37RkuP60uTQsj6<aW3wUIwbpAO
      z5`tc$BK3tgq)L4#PdxM`eMuxzQuV1)|408u+ixaL)CYqKwmj#|oO8Z&&Ua?~=ikq_
      z0E}VA!XAOqrr#+pI(M9+b2lnB0zWDSE$K%qEm^EmsZqJc(`$|!1>uSXQy`)JmmI%Y
      ztS&4{HxlT(;`v@QC17N8a{}f}@TIh2U~e2T^a<>*c)q;RSzeG~%~@EI0?A6?I!kj-
      z=&618(2Q<*ZGp3u*Q=@|u+I&p6X`<&T+CK<wC@GQ>6J)McNz^DmU8nwfK|vxa!EEB
      zP9Xc^d#-FnUf{PaBn5_cy>-GMTy~;e7aQ;3T?;9J13mJ^aS(&#rYWPcPm;`RIajuD
      zNZ{1}?9WCTLyE#-fpqVl%DFisirj{Uj6nVsxSu%gP1z1Qp-brSwv7=SRnW%-246zg
      zoY8KmB1UjBj#J1A#M#RZ3VFW7j(TzWvZTj%HYFQ*oVHL9n0SNmIL=^{vtl(f43LW5
      zgV|iqF8Xm+;HV!&8PCt`kedm@OfBq4tvB>gZ46*s5i%i=>Jp;w_-qt<ev@oiIKMM!
      zZP>jAy!H#72E%$5AP{S8U(5U}x%%(m8D!m&VOxWXGJhWL4-365aQZa}Cyp7mLsww(
      z&E`asXSa_%^*{%EyuML|$v+gb0QK3!FCRVk7Izbrf-;uhK>sh=Y;(0Kfy*#)1^cMQ
      zx1A{8qTGwOv7a6Z>Lx7%3QBy-^FE&ZkvG<H;OfxN)Tecn(22*YwOUn4b!(N3IAJYU
      zT4PF@FOaSqn_Tk71`f}z4JF_E3FG-hKk;a*7*o%1xG=0e@`;2seCrEZl<TS?h6`Iy
      z|M{!1wuzBCn>ljhO!D|TPFyzA=9Uhgj6K7lLMo=h(`G6*zK)#Evl<hrSU399O$^kN
      z#SM)8#<Cw^6TjkImz3*Ba-C<BpWz~0l(C2^mQja~&k>+ac^@rC-Nz$5#AAGgC-@pa
      z;v1|{KF2E2zQYTAuSva$enl51ae=aq6GXkltWR*VtM%b`4xz;S^Ekp$lsLmjIFGBC
      XqV|~2?0tN|5&Y1#Dyl!!L!AB>zVfPL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/Scaler.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/Scaler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5ce93d5972de9848c271325e86494301045a3f4
      GIT binary patch
      literal 656
      zcwUW?%}&BV6ot<~0r?Ze|0OXo;KD|?7y^-CNE#tRSadg(DU_5MQl=0e%aw@>AHat)
      zPD{grh0w*Ed#C4qxpQZJe!so}Jm5No7(sc$eSJn(RHtjH+k#77EEt#X3#Rui>M}0{
      zji4A>T*@bUcQj*`BuG9v+>v#Hc%?cd(4NJZWe`U?hXj%Y1;gR&)t`@;H=rYz5tIy}
      zh(qc*K^|>ta_TGzZj8N+)Ce*YCcD0L6`7z>>9mb)#e|8u-n4D?Yv577w1qdXnPzpz
      z@xnOssN17*8u6Or73G%V)eqsBJC2@kxO{BYf)S(x+R{=@6Wmq~U{%|j7FsN-%B$p!
      zuD3@tDxE!)>VI>Sp3lO-6r2Ue?F-+tSlbB(pWRILKB(2oQ1^)7OR6Xlt|^u2N{Q0M
      v-6xJdR1iZZG64-_)tcKFl;#mUm17h_E#f595>7)si}V~9%1>|^(ysmh45P4G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55422175480522911723918d5a75f53931720d57
      GIT binary patch
      literal 1969
      zcwUWF+j84f6kW#`$x)S7HE9Vpln@e-Q&Xqml7QPZ&BYMvB&8`%`-U9Lj$B6yvK$ha
      z>F_{+fuTI`L}}p%I$U1T49qY*^HB`@94U^in2Tp59qql=+E<PL{Oi}>0bImw84-p|
      z&2HuD#<r0&KJao?$M$m0mT7ytTV~F4Tc$V^tR1r=BgUW!Xv45;xs`I=T=y8FE6WQE
      zY>}aV&as=GVS6Q`(K4eHWrjhzWZ9NCO*lPMVu;N-6;nYJ{VMvPFq|q{wz=HeESv64
      zquekVl0|3TXp{`s;_rbm=51I_hV#Y$oo}8(Znhc>aeZ+yL+LStt}<CG);0;Qn-)1^
      zy70xT4aadA)NQKCaf_y1^EMPbjdL=dVK{kI_LAXksCX8GBxIDEvDuFS4jfkTJVr>c
      z`M&FM-TBPCG;<x|M}c?f+GU7T`JuoM^p>!KW|6JRpimaZp@C;cxDyqpMIGoc&NIl{
      z{B@<u4F#S*564Ta&_(`)=d60JW!D(a5TkgMzHiPel+qh2E+D7i5~gKb?wYNSQZa!m
      zT%piIf#EFg>v4ySS@MO=v#n~?bQN61JRkgmUrLD^-c<1xD0#`)qDfK(X?^avt}l@1
      zgln8o<hUM*1-Jy3smIwNj=#?F?=WQb<Jtaepj8!<xXCb}_iR9{S#Hq?2LDNd2D<9B
      z+;y{H@fB9YT3+B_j8p%kVlkdV91=ZcdW#@|e!A0#L6#F_d6};cJ>z4Kq5dKuC&3pk
      zLiapkxQtVDQhg9KoTg_Vl6WEzm?jLzDyhBno~212eg3GeA_>-lP&n(OFhEv_(;4CK
      zBTo-4P1;TGZ64FQ_8(eLVldE}APi?DQreaGv_I~Km2Py@l?asjs9A^nT)>Z~dXR5*
      zHRX_;Y8Ub~6%ykjsryKz50HM8rbCJ!QlBP=?1ePH7e+?vqoeimR|j}*0Hb&A9fdh3
      z##JE^lZ2}@v>NriPTAcdUqgf+^F!dppbI(ZBE3QCLWaB%LY~HXIz>q%+p99^!*FG8
      zS7k2+mC<J$kjDeEB<lDv#NO#(OKtWz{TcY|i<C0=$*Iq%VCSb0{cZ<cZqp~kl6D0j
      zP7c+-45$7{DEL^wex)Ng-y8XbP_upd7hS<$#cP5-iK+HNv0$MN@cIGrKZp3=bS>0j
      z@{^be`1fcG{EM9W4Oee#`eV#3Wi@>tg|)2c<v!kC%O;ohv9gv;w+&iGAog+ND4xF@
      t-_qLOrvZP5G#+3W4{5~TQ>%Uuc?|in+RHH&EQdm~d>19r$TgvO>u(^%Jcs}Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLoader.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5528bd08e725ea81a4d0b32ee8d1e7a04d3f119b
      GIT binary patch
      literal 7309
      zcwVho3w)E;b^jmhWy_y!Vf-1%*yE8bHR9m_LDY~EjBJAvY*X793~7vP%eKIlJXvyZ
      z;u5;jkTgw`hBhVdkQb$arF6w4A?uSS8ST3Cv9&APy7zwDnk?P2ZcW#)|GnR5NiaIR
      z->>#hy62wzIOm@KIp?0MbML+UWdO^?>p_8_ZZMIl+Z`Q`)<thk*9{~S>AK`-ERmiV
      zjn$=7nV2Rv4o{2@ZB9n}V<``u0-s(m98C<?we{|f^`!;Ipf#s2nogz!D>nZ>_SI|F
      z3QF`IEwSiWCKcl*D`&pR^djz3Fg_x<ZbnPH;;D2dI@}WN8;U1lT<gsw;_0z1u~ZZH
      zkO)uO$Cb%UswvUGB^gho$GHDa^1Y*~*E}2@)SL~1(uVep9X$>0O+DM%+8aB#oS%|#
      zGBK8pCemHe;Y`dyyNjSaJ9B$?Pgld{txX+jgkbpE+qSkgDt2dE&&KvhqvF%vW!sv1
      zHZ^oL^)&Q!gc~+DDRv>*Ep6N++}5(Ct+lDOQ|~fg;Lpx(?b*(+#-8rnvh{+B+-{xQ
      z+Ilv0t459O&l`)hc67FH4R=P`TGhTh4obInH1)J}_p~&1wnxH>TR^U_t*fbhbHf%(
      z52{bTll(baWMfXfp0?)Zj;2ly7jihTwe{Ce@Nt6s`Z%#zCwQWEMp$0tOEX$=3Hp&p
      zWJb#__P0e{0%thcAM?V2Is=Pwt-w*csH=!)SYf~gx1z2y;6b6HLI#RqDC+$Nir`h$
      z8UrOLRn+wc%HSiko2gQ3W~4Wk>Wuad$LKZcY{OmAR9y9KrZYVhrvomZx#Ct7)76Vd
      zqI<)Zb909x_NE=YXqa>KWI<bPq;Ye0<H1;Rq^@CLfVy?2qKUDAWNKvXju{Exk)(+i
      zb$QW@O&)9%)XsF3fe3D7f*FgYX^?3powX6Qn_#nn7PN9)Y2A_OwH5#1Z&dL}MB(h!
      z`6-g<kL{(EbOz{%-$oduk^S`a#)5fQkj&Z43GwJ~Jj$cU4)*odN|qovbG-yDwUH|b
      zoB3{*L3bDkqtT0-af=5Z5?niz_4(0fpa;9ujSx#~c4IUhWmY0!mZph#vTnmfI<_G*
      zFhEySGJ6g5p`XcwAa5C>ZIW4_>uP5hmw6sGV4xj?f@^B8<O7k2cB44<c(7YA`!Wg|
      z7zQyd<Z(KNlBu)~?+&#lX<!t;Bk*u2JQPjok+3??n1M7h3}fw-@sZKtnC+K?Gw{pE
      zW$iR`BSh@bxYfX3ObBKvEyBr>(PSnu9oPdi(Bn6t2Cu-;l(pw@G#%T1Nxxg*8nhHL
      zFDs3CDv=qP&Qo6O$M1UZ5oXqzXmN3ZH}Fv$pgg)*W>j$X6@6pJq8$q5I}IGfU37ra
      z<XAi%PbM_X5jFI2HFOVe&5M0I=hycd_$2PLQ>tAp1ZppjuZ7vC3_O5Cw&#SC$y9$l
      zK|^s}_}8qPIUrVWe8#|o_$+~-A;Q_}hK8w)>`;IeC30D|jAxFpf=Oli)X5cxqZf00
      zvAwari&+v^f*v>Ugfd*Q3XkY$v@f2XQ2Zn6mb}q}rv)|tCjwqPg*s*D=L{Uh=V*8C
      zq^-X}nd<Wfp2u-3(KIGAybxC`zfL8Z%bS-e?f38n4_;s;qbKP4wI!M!GH?=K<i62f
      zeX%rJQ@>>36sE}L)u^n~NWS}q_4}dz-0NZeDIH%i@CW#^bwy>Bry;pS{VB6Qg|8a;
      z8oo|zu%cv|j44zF3u~|7gjRMsYv7y8l&<0UNIb2yd(FV>_(O71DyWs(&B`a6@ht=2
      z#vd`2^(9Aoxz)CKdMI}-E}K~~WyP;0`;V3Ed%XBAKJLNy=mD2Fx)S;W1An6QQ<>1Z
      z5?uq9x0j6Bvh8bg)<`U!iuaA>^Ni^^*8S&<rUsW=%?kPw?+)qZr;i^VRMdStz<Q`p
      zCA0)J&ojBGj|x!wEx&0k_xd+1pxEuraGg^r##yRlr!Tk1Mq_Cm)??}*ZyESkylp|*
      zmWmHD_=dOZ*oaus^KS<JT}6*qO-O_@sqvU%|A&E}U%HOTO?Wz?)4z-V_TZN+)MjG*
      ziwaBwzruSoIt|;<KORl=5zzkhkR7f>{9Ov=qk?mMxjCC+@xh_A8gv-q6qhP6I5^fv
      zS;|+qk~@sYQt9n>OJ%(sOa*<h=D4aXeR<X5GNm!DRVJh%%lXf$R#U8Lb;~+dx2$Y+
      z%W77)tYz6&VHRn+q<ZC`f_*cuU&;QQyuP3PKwiI!|8w*D)$G^g^?!@~d3pW$>@Udc
      zFJ%9!y#Cef|8`#g8us6p*RN%NQC>f&&$bv#$XQD2IC&nn!Qg2u3obr|<-vga6jlan
      zPGMDW$tkQ3n$B0er%)d>U9S|L!rGI1pAYbRp|;nD_&|!%X1%meAMMf4^A1qwLCPJ%
      zI?mW+Nx%(QubnrjEiRf;wl2_=vbIB04Wyi!+5q+DP?W+(tzj`|YyJ_gRr{I&w`U4X
      z!MU{or|Al~9gfquDW_zm-XO!p<5cigf;Ubj_iDw~Y2eMQVkX)sP&Bm#AJmGOEWSFl
      zIwm@?Rqtk^3)^gUw%h9LpfYM!X>e}vOIUSqiDT&$x^sG1$NVszX`hxIv}R{zmu6*`
      zYKaA!QgR%m`6#gD$aWg4m}8TavV86ocCIN36upLp(^hZ<+@}!@xM>Zghv_j3rw}_C
      zD4N1h$g7&fw*UQYdLKcRZ9<c?0&cbNG*U-lPFpt19M7HV7CJj{FHd(Lt@|lj<^j6%
      zA-dtGdBQ`~_%m3B!&rrfuoe#!+DEVvkMcZE@RU!Y8%J1QKSjrRlF9iQR-n(a)_jim
      zJcHYLO)5(bXqTPLT52+DsmUx#lUbA|vnWm4C@JbT7}{ATxvN1}@*+k0!*rol)Mp=g
      z3LjRvwv}JwY!&P$Xv5X|_*1weRO$$o9Yr~L^=4Us_D-}NC=;{HbRW6!rs;khvz>a(
      z?d)H+D^z?GZbzs%P-qr=b`cxBAXK87kA;kY$280m^6%ajG>ZeC)A)pL12pjcTF&f1
      zp(SaVa|)l%3i@eqF6R|0kPD|lE;79e<SZ;*1OmM9OYt(D{S33n%Y@?<)bVP+0bgNU
      zeHAz1>onRo2*Fv#>^J!?c$J~?8qM-L?q+)k=Lpod2*|f_jO}rJPs4GXAw<Ju;W&|n
      z<3tvY6InP;WZ^iW&Ft2cGQCGr3Zg<yDTs<Rb-RY+dOH4LsNWYhV2@38bGL^`sTa{s
      zx|9B;fv)rjWt38{05w*>IZQC?SyX{~G+3ZI!<>B;!98;Z&D{!y$4=wPH6>^8RQG8-
      zv!;43QE^*g;#N=<o8DOk*!K`TW^u?cy-t!9){IiCAxg6p^{mBsHdJPMeTAGhC#b^k
      z*v<8o^}f=Z>nrNZkK$&It>;*^HCFGl+sf$)Ybg)=Ipdm3W|Z4)#q^4!C@ag`+wXf3
      zC;a97dJ(^0U*oS(-AcPVFE={KPX$gNehkI_nhLzMCx34K;5<Dz&-A*eO{KraEIqiV
      z-tV7hma(lmiXzIbs`m$~{XT!WzrtTxS~`U@f$9J~^()E}9}6u|%{M{|>D0A>YNn48
      zzyE%-@Xp>B@v6V-ezWM#-f@!5)%5uif^m-NW#JUQV=kD&8%#*P`THJzFBLQmh1B;w
      z{VGJFITt^N75sjau)ob5^m79KE-#&5^1}NSmg7CFqDNjY1qh1+E#g6^6k?|oqfbhZ
      zkW$<#KHMSYI4HCErm4VTsl*ZS<Cp|+QmXKh%*9!mhjTI?Z^%{niCm4hq)r@itrW`&
      znJ+7)R#uU-n*Z--1-4c;$p>VcG{`LyW?|PT!_q7%*(l>2*)I{fhy72=jq;$}Bu`6=
      zJTGnXvTRXdCC@QH>6+7FMam8<Qg&F8vcrm$9af}NFu66Qg2|()+jN#w)a^Q~7RbZ+
      zQ<ec<)XE|JPzO_$9KnxtFqO&){2AAl@ILe6$BILH4cgR=48-#~n0Cr8n@VucKc`kc
      zJ{f1()G-z|7Ih9kv#B)K{spOW-UHLrNtPlO^#=aMrcyl1Uy`a|+L@+aqK+2z9pY?J
      z!{q&hR3-15BAfaecebe4S<PxnR&(B8k@CwXjM>x;ocGtHs-&5DUQ?JO&){!p(`v3e
      zi@znW25&KO{vD}#5+gEy&+{&jVXVeKkXlF__)N3!{B^`ar91CpCWC_&_{Zc6S^v}p
      zj%?K_v(lQCO_^T&6EPEV`JT4-I?KIOa%^;jTt~5nX??BfTEd*ty{@xH=aj2dZx$}>
      z3ptr~)Pw^rF<mvC2b>p7=VKS%*4?>BF1(tH5?$^|FWl0P**s4bQN3D*@IKj%6|#p>
      zGK4i84@)wyB5KTP+Ncw+XiE860kK+)e<p4YmY$XPsV>zVoc*XS)e6*m-@Zf7a73l{
      z^Nx_y5%L_xZha`v%8=W1yY@YdIi}m^V|$(H<k5z9sdLq8-b0wJdHT4T@5}Z3L(Ziv
      zM3`#cRIS^&&-o-goa1y%;b#XtVtQzV2Wdwwb$gyvk1ch+mg=&kx-6;lwNzJ5s!K_A
      z<)pflG*@~G?@Y`1T+YzFtn~Rnf<q=yB)6knCJ~T*be%h}R6a^WA3&4biFUaQJLGPR
      zaNf9l0uypC)6ji<Zr;x{^Z*}Yhw!v~7SGFJoMF(uE|227obzLOJg*o!p9ScA7NGMs
      zK#H=;MhC<DKQ%xT)bGDEK;<mi6nt*nh0QkQX4&<qE|4ZUYEcF1Crlg28a)S?SX%8+
      zMpxhOEUk9#qGeakB@VyP++6<x#})0El7f(`P*yq><yu<p+GXLU2$$Z)O^#m2O@FaV
      zkCEk?W?dlbot&9l)iXw(r9VH%hvG5#<nuK1F;vU*m@mh%i0u-20U`MU*2_sm<cl=<
      zDRjvcdfCS0G~)6iGHmzCOL;y&ku~W=wxF5N#x2m4WzrBM#jQ=c9`(Fclu1RDmlsIU
      F{{T2rv^xL*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator$FourByte.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator$FourByte.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6ffe04c6163d3a8d6b3fdb154d19aea4e59986a
      GIT binary patch
      literal 1050
      zcwUuKO>@#v6g>|@18HgtrC${MM1{08#m{l7U9_D#%rI{3;Kqe%`$FTS36nfjeu6*4
      zoue+Q7V5b02l%5L?+X;aaM4AQ^Ul5Z+<VW<_a9%s0jT1xiWtMarq?!~TQ4lrdMQlX
      z_k`)UxF<R-Zi=AIBk<7ev<~Y2o+bRCxb3%tjgH_d6o%EamNRIMx6fbg_(U*d>rt`i
      z_-4%$8*SU>!5YKZeaCaeIzy%OD?v6LWQ-)s4F+Y?-{%_Q7}udfXNZ@|jT9Kp>6pY6
      zL#pX^>>X>@<qR_;Wi(`vRWZ#lJtC}Q2D1#~RydrOVYXBrwTJ9GuOopmhRM3)@ki~$
      zT^<a&XQU%;!wMXE9*~MSa6*Q)`dNJ)UJJRWxWv&%uF9Y{xrj2iEJ5sisaF2a-j`8S
      zafK%PcNZO3agE$0EfOY)nzX5;qYQ%~;W~#71+sr?pXx4SMMZ@?_$#Etl-0?WA3DPE
      zJrZilK^a(${sG^%L)lJyOsnnjZATiE{(b2cDM%aEJdX#Pt`&xy%uAkHfmOPIIQ{Gl
      zQ}PxF#pqFyBql}ZDV=3JW1K)Umb;iRmU>8cG50abU63&-^nOe4cU1EpX?#GAn2Y^N
      zEFup?s6bs<gw7L+5xziK{Z6kbTk2GdW6Uk~aOpt=lxGCj^MyA^up?q73O!uU_ptOt
      z9*%}X<f7p}k<@2oaZFs78lRwqFVQeYUwk-Bg;uXdt&6xpC`MHabXQdxBZixi?k(J=
      MuSQwYq&vv{1U6mv$^ZZW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator$TwoByte.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator$TwoByte.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f218efd928ff8fcadfde4e08ca95b4ccca86462
      GIT binary patch
      literal 1055
      zcwUuK$!^n76g@9->c(+tleQ#H6UI^!cW}cjhAx^46e(gu6gDhy+vmi{wIkc1%^x6!
      z4TE6I9~6lOi3K0PM<MQW(k4Y=(S_~v?r_e%=lS=apT7W<a9c)%;ZDP8>o1I#hHmTy
      zy6HNB?zXrSbXr^wyfzQPBfHaTR^4qQaJ_}vp1aWrxD1J5?X=wtiskI^{hCVwhS_S^
      z>{zZ|ZW`W3+cdd%k74Y-<ygTw!%AULAyoSnBZI{{gH(2RxPmAWDrBe((L%8v2g4Z^
      zlbB+NH|&mCGq!AgLVbuvK?*Z6rWvM3q*ct~EQ4zJgMk^+h2qFfgmOkj3}XzFRm<Uz
      z+q+xb>+7e4DR$lPEOG7!rJ!l~40o%iwf5*@$Ue!Y5Pih1G;4zgVd16`P&8Ah6#ujM
      zB`nCeJiPc|7Zq2qNPZF-F%w5w7*$YFgvJoFtzC-}GbhQ9h?lV{V}(5UC#6Cc-Qz9S
      zw*t#`h^QeZWndNh3tZFmg`D!lZF}4Np(PAT4llhb2x-NN<8ZHR8@|uUJh^WL*2w=T
      z{p}1>;t~i&=#eo_kvO4ebQbxP_5+Hxe258csf*+x(%-_`Igx`z?^pDGO+9ar#9L%3
      za-r9WdE|f)<w=Ew=p3O4;qz40Q+h|$f~TZ?M|!@Ci_-ps5K7O(!+I|N6)|=|v59;a
      zS94t~Jr#$8<3Y0F0`HN)2W0S(<UWzWXEOIoIFQy8I3B1(>z7DAfkj*+6rrv;x~>w9
      U62bM5_Xcj#SD`9l)GcKH0-rnf%>V!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9315d0c6d51accababc8ce1516c3002e3dcf73e9
      GIT binary patch
      literal 1073
      zcwU`TO>fgc6r4@dI5B~?2_YdANTEQ|4-6b4sv-_81VxJA&?-`q5IF8Sb>;3_&YF@N
      zzlRf?B2fwM{3yiRO&W11hp?7+XP@7jH*1f7{r>&~z+-G$NHIL>i^Ms0Ke~>4svKVm
      z<;aK&HH^5U;)EOUDjY^f9qGAB#um~Hi>4xUMc;YTJLaBZ$o0dazwh=!&QR)@=OU2K
      z&QS54#P@l;&5(H(h(JAOn5#Fs4C!5Y$ZgEwQXUqv3=5q=@Yl&nkH-_Hg6<l2-8j(u
      zNieOBf&s&m&aB!=Le`h(-0$n{3w2%?Z2V6%`{gH(M=FqFVBspm^0dB1^(`5nxN4eW
      z;Tpr!S-Y(6pGqy$MhO-D8m}{K)@L|Z*TM~kt(p6_WD<`XS5e907DG7^gCvS%toUIq
      zq_moEPH3ZunwGXg&X`Cu*4a~WAo|<d3Yl>#18dXw)y1@EM=|94T$#=<Tt(4Jz1{eS
      zz3e^G<ndOZzwXlCY9HzXqG}7l<K5653^*Ccn!G!5#rbK{HIO^$|Dg7mM~0Bzkvl1p
      zBjnJ^Xq{gh!Tv@dg*?p}6WqdOn)BlXT)_gZIV@s{vI>OL^rUELJ`>i&&FUBEv5xW3
      zm1VkD&QLm7-x#6%^$b;mmI)OP3O7f%{d3y4Ks>-(RPYXW@Btg}jE35nonm(lZxgE%
      hjZNGml%k*bJ{}mJx|thTGkhsB5+glTx)||Q{{Snv5LN&H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b29fa6ff2d3b00acbf4dce06e35477863cf075e5
      GIT binary patch
      literal 2140
      zcwVJdTW=dh6#gb&$MJTPxK5k2joYRvP+#J@b;2biO-a&RT$~n2NNAwYjXklqve#z4
      zc9Q}U6!Cz>Q(sUJNPX)|g@i;>1QHjOi^Ly*7ZC765NBpL>ktJY#EZ|jGv9pQIcLr!
      zKmPgomjKQp7eEWc*@9V5UDq3WO21*JRx75Rs#LjYuUC1>w(4AhnbLZ-ILGx`-QrdN
      z3PVU9Dd}b*b$R7F&)E#!#foLzBmuqT@@>n=)o3Ft$)-_B%@fC-sIRVaYlPuIgIl(d
      z+s!|2*2~$7S(x?o+^s2-0w)H`FdTJRi>}6QPN<pAcr8a2F?4MEZ7=L^axQRpt#g~?
      zt?XcB4U^C4Rfg74!!+zMhNWn;x`}n0yT$#_#n>W)I<=PLRokeTwEzw<M7&#?rd*~g
      zR#~?_3WG9P$#WGx^k@j-5Q8roTU2obkpOxby7sWqa1_U=mIAjkqEIE8iDi6XKpRdl
      z^wiB-y;`Lk<N3Z~k?Vb{(o{tkP70HU7!JDS%So80)|-V9$Mz8orx0amBXxQ0j{ba*
      z^y3=#At=y*hIR*?*3gNdIC(~+=}a>O=;UNkx158Mf;6O2YLfJrhR5*)L%UwvF;onP
      zqOrZlO&otxgCDH|jcU*w-!Tmx4th$1>Yxb?0kqOAi2J@&FRyTGL0>6xhH$n*qp_%4
      zhWK_D6}xEA#0_Tu^IM`vpoq>=BlnyGv0b*;C^RHXX~?f2b!K~pmFRMeo`c#PQhFcD
      zv_KqhgvEz9yPe{6zM-2rzGUR>B7;AgArTeNV<`X{y^iLc&gphh!wa}V164Lm$;}Av
      zi?|xVOZ15M>b8cL#ohbJNtlb0GiIJs>Y=9jEH?^8u|Hp_TRA>$$OiwdKc|H_&d`<k
      z=x<gKVR3(i!s32pq;Zf@b>luaYHn<IV}~0%WfW&a*pC)k0Tj~j!a;xyl8>KOK8oK*
      zcfz-Y!{Ot1pd~`b2yUSL3v^ux_uWVTSMfw(3lDE17Egp)B}x!#lPF23e+#Ki48{kx
      z@aQInliy<?o^+0k#FOrkbA%k?`S@W)GRN<tpN^}v>Msdy{8NnBg6b12MvPA=!4^!?
      z??suuK?Ri20~04uMI5hU2o}a*V-|HhgBw`DI<Dd-3V4lnU&kAG6Yt_J+{P`ukGJt5
      z-oXV@8gh!q6s7@*W=Mlclp)k2(M3W&iJm4TnwP~K{Za!-g-KSZcLOS=9=nTxsNkNL
      zbF0+5E&aM3uICrRC0wR`Mp^%pV!}~8w_EYfzbHQIDGs}eev(P<mic&xjNg;-dos^q
      z-jy+_38D>=$OrKI?)8$|ppyR#3!{XFdzG~<EH~AU$eH_^+Vu^g2Q<Im(riAU8T?K<
      z_BmRfV+5}tC^L#k?-s(>Jn#2h?{s8Cc$4Ay4+x8Xiw@;QVb^3v=e>-^cW2a3ZwL5^
      oGWwY^`h~LjmArnV{|Ue2B*jzsV@GCbFSE3lS=!4?m#Qm&0q3;OBLDyZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..933bf56b537126bb597ca2a4a8e3b6cf797801e6
      GIT binary patch
      literal 4706
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c2fef0ff2bd951a8aa00c734991fd43fd42d3be
      GIT binary patch
      literal 25434
      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
      F{~zIS%-R3|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Zone.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Zone.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d362cb1f42687e462a535315aa29c0ba7cead778
      GIT binary patch
      literal 4834
      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
      J@w~iu;s4BCvH<`9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/ZonePathIterator.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/ZonePathIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3f857f76cca3d9e30d153e9ef1568db7ee877c5
      GIT binary patch
      literal 2814
      zcwUWGTTfh76#h1IW(I~sq1^A<+6oMmp|no#SPDZOJ6sCLt=2LO2N()7ICG}A#Hx|v
      zi^gb7oBCoKO-LFvX(B}%(>G&cj3y@f2Q)rw(!|6E>$mqgGfb-wJe=8Uud~*-*80}k
      z`^<O$+<yRIFBaU$5!gQ)OZn!*7s9^qMbkGEkD0#sk`Xg6FBv{FkusDp5sw)IVRJ5M
      z8i}wOPq?886e+KTaBSAsKQ(VeOgCHt)fuc=BfjX%_7czoy}{vgLxGdMfxck@5fmus
      zipP>>IA)H77gC0UnL)s#?7BkzLjkD~0{KeQ+dmQ*?w2ZN?xdS(2xwQBoq#vA)k=;C
      z<i%2p1Mz6gObX;iQVAt9zX-kJsl<>OPH^j*S%`<FNzR!b?v6%dQL{r}Pvh1@HH|RA
      zuK2X!fde%<Do`unXlxqEW100jim=^-r?JzG9RiJ8h1Ky4b_uv=4Ra`Z#ZZVriTJFJ
      zV&qDxQAZ(i1qwsan9-M7oH7!_;i(1M7Kh@I@WMzq5tVyeshM+87V6(}W!a4-q1%|s
      zXf!q*jm-|GB%mvr>{fkYY7;V{y*f%{LR!qYWXhWN>v#@+k{(TVS+oaY(|q3;v>XoV
      zC`GQcJgno0w9Jbp`(s_H#0A2-<7r7u5JNJNibRZLQqGyg;B1K{CdTe2Siq1myJ*NB
      zI~&jRGzC2j(5)i?HnvbY%Z_JkT#doB(F;0)(#Ru?GVdetcw#!Kz`8Bwdv%ndTzd5D
      z=)?&*G~KjJ7|GNET|`t?GOXhzJkJD)HYOFLI>yq9aStZ&vKwavnzqu0p6DfGTE|(u
      z!t~UrsxxGj-y>6*)X^c)9VCHj{*GD8IF}^(lBbBvn7vXhF7dfcz(`h4JVTTsMo(0B
      zw(QCFx5`A(#&`}sPUN8)ZsbzVlP47(?(?(uI`;)x`)zzUt4ij1P;0ThFR|BBwL)^t
      zU+GtYN+MKII?K2@T&uhrsP;Cmqt4rW4^O$L*Rk8{Tt~xQ1<}Oca;67dg@!i>@+RSz
      z33Clz^-h7H87(SQl}d(eU=McLp<2|QXxdr^)1@@;DGc3uYhwts!e@JSQY+t8c)vh{
      z_A!dMw(;408%}M_@g&^!EVzmcTsvwlI8nk9WV$y9Q7579Vc$(`x54wgnk-xGZlTia
      z9jAphIkAqmbsVrb*>pT~R2n*Op`hj?x;oTb%YzQo`Lb+pV#i}4)1fl<mVc(4K5`7)
      zCcB@Y2A{HkJ7jYW`|ueK;&U9rU7o@XoW@re!F`P40mAqONqo=#{D2kwh_~?*-p9`*
      z<(I5Z-LPp1U=T-fjKt)~X}9?v;7(eV%4};?s<{*otkr0fn`Cc;{Fwa8@%)Y5{yhu5
      zG&2XKIIf0O$YX7zC+v}Hm(1N!W~>T!_raM0s@-c|NmKI%x-!zq&Dh0kA@C;|d5C)a
      zg+~0H6~8?bza1}9XT?8d$Nzx7njJs%E%LoZuCHC|2+1&^d+0mn=vYNjvusnSuI=5y
      zWrwIMa@~IPN9|_(dLB{;9d1#8LQ#ZDu^n}y7!6$8IAAgtuNCF7Tn3m!C6DlFvXaBK
      zoc!l1K6p{u<Jn3-d0<y;_J=xbVZ^VsIO@K{_~{m{Op~kqf`i3#;H}xfIloit%A9ob
      zyVBx_-<=j|THfL;b14*8nOm-_sBLl9mANLJ3$|J-bK4u|X3ZVEXdn(EPaHytIE-p>
      z1Utns>=7OCiR1jpbfQz7KuC0BO!Qz<oWyx?3KvBP%c4(lGH6wn;bevLnyWg$qB@ns
      zo8>i3DNaf_#}P^z{N!z#l9OEwz@X$p2!}C4iGRf8m&oRBkbW+rUEgG;>VIfl#cYk=
      zxeC{^Q>2;Mck|K1ES73AJa%l-NXOPRT;@HQ%0OpKsr*m398YpNhkP-QQgNPtV3zo&
      z<W<g30$#3uVe&J0nOt7Mgt&^hcpcZoTX;t-<3nNHxikDY$jdIx<#lz@TNj|kWhp-u
      nvx>_QPpc)x(O^sUeC8CtqZ#QMZ*5E3#m+<(=K}L8@ALlxSuhh_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/image/ImageDecoder$DataInputStreamWrapper.class b/libjava/classpath/lib/gnu/java/awt/image/ImageDecoder$DataInputStreamWrapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d7d61bdc639e715dc97703b8f3c08f432955094
      GIT binary patch
      literal 767
      zcwU`ST~8W86g?NVuHXWtDz(*$tsn6t>83BHiH#2+B&4J~VBmRxi5&yGWLc`d_=mJ6
      zO|-3j=nwEm+1?q2&`8q6Z06&hd+#}OZuaK(*KYvtux2Ad*go+3?xFZ1TyYe-sv{1h
      zThjZUZ2B!3tn7(Ul)P>~tcHOUoq8a;T^ZQ02-Bud`R+)b5NmOV(g;_S2PH$A9m2#1
      z<*9I&kXav-->4C+JZr}h#gqdZ4k5a}QHz0)bnpZdgj891@>9Rlkiouav?bwL*>8$=
      zO$18E_n;MiRz1S|^5b0cTP+S-M!!Ue7mk~<8!F%H*?2xWfXXm4g%_B&@sf~!;LX7T
      zUJ)iWXYM4FhBs#;OPCoH7b?Xe7b{l%e$bRfrQM`QpZr!g5S)_d$spery`JPptq`*R
      z@ycT#?-olu;3)qaJWM@hzD0Q1m}Dfzw<5<HiEsYkwRMHWH&c`1J!v}6VBss*Uf?N5
      znY(JFnGfcsS&6@C%y4d&F^i*&VgJYo@tNMdMB*BA>=%Dd&+CzM11DHw@gK2EKEHGP
      Z(}+2D&G%vvHlz2~cw>aM=rUFj{|h6!uH66t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/image/ImageDecoder.class b/libjava/classpath/lib/gnu/java/awt/image/ImageDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..319ecbcffeab7c1eafec878c9d0a16aa160c4859
      GIT binary patch
      literal 2977
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/image/XBMDecoder.class b/libjava/classpath/lib/gnu/java/awt/image/XBMDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b803a7abb7b2689f36c1d4e0fb49b108ac1bb8d2
      GIT binary patch
      literal 2987
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25b1e1e3d70b3623e19e94ed0be5a443906a840a
      GIT binary patch
      literal 33135
      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
      SVS2zT?^rQl$`I<W6#hRDZF2Yk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/AlphaCompositeContext.class b/libjava/classpath/lib/gnu/java/awt/java2d/AlphaCompositeContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0cc558f9521a3b96251cef4311ae7e9f63ae50cc
      GIT binary patch
      literal 3745
      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
      a-H!^j6!RRdsqW?<IfvtmKk3xleg6ZkCy8MI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/CubicSegment.class b/libjava/classpath/lib/gnu/java/awt/java2d/CubicSegment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94b625a0c49413ec1bcd5aee7f43fe452336aa7b
      GIT binary patch
      literal 3098
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ImagePaint$ImagePaintContext.class b/libjava/classpath/lib/gnu/java/awt/java2d/ImagePaint$ImagePaintContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79e523895dce3cbec7236355efb923be7bc413ac
      GIT binary patch
      literal 2514
      zcwUuNTW=dh6#mB7*jZm<Sc+?>7g~zr&^if?3rQ)oX+u-oOX@bgamgm$IGft*ba&IH
      z6@36z6$lWhZ@iHTsS;0AYEyv_AcT-WNWAgV|3dj@Z5%fasfaT(XU?2C=bP`Gnf?9m
      z?|uN#kIO-L1p3P6LT*mGtmU*Tjw=k5a${Akte?;f)7icvj?_#?Uvz@-3B=tU70oQ?
      zj!(_$)6@n8)TW=-4FUm2v&uS!&4s3gA^qmgScaobRrHgZ?daC9G@Ui<?R^4U3hM)t
      zwtEfJaP|po%RI@rXF|X?QY+~p2*ebG5DvqOE(M)P2zWEnAXYF;{n$cvO1Dl)Py&fU
      zZCa~LXqF-84W&;)6c~6y%y#AoIao66`I=2H5fU;|tJJKcL{$;!&h)G%XJvUfgcQ1i
      zNDFLQKdORF*eu|8J<xi!&y%`Y(k;E@?ilXGR%{F6If3+gb_$+FQXoXg^+ZXyWBhA_
      z+{j~?EWe;2gC3TOZrTf0Bf~}G8d3SVxo1KK?^W<3c9IvmKBzgGK(d{OrqdkygXn9m
      zvsMEI19++K>ZoC!b+bAqHw`Mt%asnUoH0tytW>_N;FT8hb5b{~V6W84gC5q6@~k6y
      z->2X;yiToSX{J3>v#O63a#^ocbNgpzSUacwH6YdlI2gnTiCWiCx;`Wj&RiHB<3CxE
      zINnfj7-KBR1}ldudQ~?a7F~wS6;|K9;huJttn)V&1kn-3Q5+BASSysZE}w!E7-vj-
      zb<7QG$K-|aEcOcs0`**#!WFhzsU46Sc3#_>rg&kLm!_oK@+Giq3)VDCV8eeTnU+;I
      zdA_Q)c(y(}SD$h4&l`*KvLxE^F!oipMaC<+-Bo$;LD{*Lb5TJB%-p7FOV=EIq*k5R
      z9D}ESoCW!qtWno(@01`hr=R%j{QoCH7J$Gd`7SA}i=s={s3G5-*oyTo=}JHuGfmwZ
      zsc5#X6Hiy0J8YpdFPk48{#Xq_JT6~9egOj1FbY>Aob7fkfN-|=KBCzNh~MSRgQr|e
      z!TtcAX0Nz%7%HCO$V4L1@X+hd*;a2HZ`mlC8~LO(Htyjl*CN?_h~C4-Z?Q$-n^jKE
      zw>XJ3oovVRbtfK`cGCJ`wp;Z*z>ZY+WZs`veUtfs|NFpDP<9>709k>dP%^ZPUHPya
      zcB|pZe5aK5<P|v#smf$NB8H;reC!Ucr}FVTs3wD6HGXqE8T6^Ko8xt7uTq)p@cNdq
      zpF`ir`L1M#k3&N3Qo~EgbLhN{oSIOTC1f~6ZewdQM0Fw=UB>88lzxt=@l;8TrAty(
      zxDgj>T=g$Kx^*Ka)R-Drdh~%bTA^f$>;WYvR3{}fOhK86m_-@}vY6w?{UU~0?*~vt
      z0Va;4hSRu&3$VG@q16Je;WFOG6?{nPE4+uhxQ?G`^9ODJ;)<mEr#ht#x}|gyMK=Wx
      zaf*`1l}=Ogy3zzC9})eDGnD+q^&8Go3J~2dIL9RN8-^c=<2*|-%b0KBZI)v{zQ#MW
      z3lsI1c$ZQqv44R{N(xW#88k`}p5qhZpGK58Zt(m?#OU843q{0<c|W-*qKju5A|pk{
      z_sEY>qs~4eHXp}9N#?Ie%3&F^sU<|~qLIFhjjc6uEW0z6UdG&g99b#qgzMx}bQ4w<
      zpY!J2a>>fpoj1uEbcqqJG~tq!<pE6|*c%5ASZl!A!4*kgAlv%@^K0KakJ~J_w|QWB
      M1LdVjF_E5s0QkKy3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ImagePaint.class b/libjava/classpath/lib/gnu/java/awt/java2d/ImagePaint.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48e06a2d478ad8081ff2be5fc7de113b309ae0e1
      GIT binary patch
      literal 1292
      zcwU85?M@Rx6g{)uwsu)ssQ7^uD2mz^WQD&qM6EHB)Q=!G;pcQaElakuX1hgv7GFUl
      z{2&;OK7bEpyfZB=vD$7jvv=>uxpU8){q_6XPXHU(NWx%PY{{;3zz?~@-$&ZmY&hF(
      z-V(35C!-`xh8Z3AxokPF>IcFlZ-OB`sM47XaZi;IWOWeH9%o0$h6qJN!<HFRQOISd
      z8H8<yrD1YQ1a0SWv*}5(d!9hqiHDx_qAi9;h4H`>kcu@1vl29fg%~n6rZB@0D->%f
      zFl22caY<QoHd3${GF7U6*=^TFxXbH4&6TYNF86CZ^wf9XX-4~Ahaq1b&m+yjJX%E4
      zv>OT@iAo?NaYWxAN5-lIeh|K(llm8C+9BTQ2K<pZ2Z7C}lPI`|rkL|&>p2~+Q!Wl8
      z`ndhWm6KRxcrbpnm7&=$v#@}?B6ykMZDA5K6XK)r`X&vR#FHDt9E05uhn_2*1YOyn
      zE1LTkmkd_7Bf|5X+!$_2;72{p#`hIz4D<ixljPG9ktY5f4~29;XsK;eyEj2Mbj34I
      zi6=9hZCydpnYX1BVa4a2j-U>+Bg12vG#aB7he5wFi5BW1$<iL9H3gfZ(`4;YhVo=e
      zXGoV;Pcd6sJH_P_av8Wndln|`pK1R>0LMt<1XszE@0H;iu50iN=BW+S)(vW8ke$QL
      zew!xMC+KZ`$HHETonh&C&>^9#zG~F1Ue*BB!Y$m^aSJQBqsOsu7x#2`3k6!Hwu&gx
      nxD2aU>-SV|RcV-?{_6EZ_p*D@elG*}^}Y^A<1x}F$r{EVI7mX7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/LineSegment.class b/libjava/classpath/lib/gnu/java/awt/java2d/LineSegment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..378a9df0752c6ea0a1adcf757f93ffbab1881477
      GIT binary patch
      literal 2054
      zcwUWFT~`}b6x}x;3<;Bx7Nm(#fr^j`(2!VBK5T6XRN9mxLFh>R7?N2b7-q623B`vl
      z{{a8P7a!_cZCOkF=(9h{<-RjR=+dC(;ofuZJ!hYN&)EZi{Q2{50J6{(1O$dFRx7h_
      z92yzpY11`w<xHV!nMJd5U|LNDA%Ve8L4JTh*J9PGHg5?isXTw$mOyC9E}KyV5m6CF
      zR3MnrwiKuWLv5IfX&+?P?W)zx<;U`NYq!RX9$b<cy#nEsgo;4mvWhF{69}wl1+Er4
      z0xZbDw^R&xfjNO*`G~dF!LI3S8pIa3Qm{)#ZOd?~()SNT&An<vV6^ZbeOMsu5$lUQ
      zjqkG3%Snq%Hgy4~3y!s|D6V5n!Mmi~F+|0C7-tJgHQOS`{*>lH)eNhWd9=H4mRvq{
      zNu!>NA}!G-1>%2?QZUVyou95+P1CWA+Op%=P83s!$Yn;Q9Qcrkoa2(wYOv;1>Wz|{
      zdyf57_G>}wc&gy0z}WfClH|Q+H;b)$-FBL0dHJYh)|*w^qDUHNx(SsmS!ulRe-h<;
      ztBg(-E_e+C`YUELUv1QDM#(JubCa`8<+YuT^F5ob6wk*hZefUOc8qeh)sQ3lM8zH4
      zB~ju&b~T)r#~jb{*|8pF>OB>oVwI_u?Hm|2fo|_Z*vZS=2U5^oQZO@8FkD2P#*P$H
      zgA=^=uhe7^N256Aq3OtW1xs@5p_C>8=<qUHv|CQeT&YSy$KMd`4GD%(k_bZn6k6oM
      zRiXDi*9iB~^a;Atr|8iqv=hW$BJMhga6)n2{+}2Wz*VkS5aK$+HH*v0VFd3Z!IPVW
      zB@mK$+buMTK@72sw64(#y4E|iytrXn9+?rJjL8ZzYS1M!`3j@2aa~fGIy3)4<3p|=
      zp%-&3I`7gL@gUkX1~Gv?m&PDcv;wsGW%(t4q%Uz6MS(@N*ARut^b5q>wWZhJF8>4i
      zAD&`LKf#T)X|l>}PyasooLB)OYHWnZZQSkY9eT@%Vuif!@phHp=mR#aK*kTrcHQNh
      z_Uik513dqLmf(3DvwUBG8Qsj7<GTcJ7d+--7Ah_=<2XI>5{n+^+xNYFX)f&1zCEXS
      z#?o9Qt;uO7BCoJA-*XC~YssEqwv-4bdqUh4&x^R;3GUCU?U;%eQ}JRdUQ9*C#KONK
      zs0Wj3Q4b|!#pmtm%p%5B=WxHEwZp&3PdM-|If1YEzOUJnZ?MT-hk<?U;)we*l-!Oy
      zal3cip5U?kDEaCb)mm_cG=M{PPzq@n2d>N%B9~p6MTozRH9X?~5uFoR$7k%+Giqdm
      zR*X1BME&U($u_{fPqwX)maUR<o9rO8Jr=7neV_ifF3kZi)u$QeFxFh52|ny|zrbCd
      xOX(%TzbJappUH+E@`ti<-moq=&UTSiFULm~*t!@m-o}e}!fSTK+jgTK{{^dSfrkJ9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PolyEdge.class b/libjava/classpath/lib/gnu/java/awt/java2d/PolyEdge.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a41557a60d3a62538297fab0fe3035da6777523a
      GIT binary patch
      literal 1559
      zcwT)}-%}e^6#j00kdQ7dqy<w7G1zK1+q8lDn_#R!t7vGk(AY9nXGzwuHDu#vqu^iQ
      zn;l>3IF7Hp_@FZl?dXi-vwxK1ckTv?RGZAb_q*qwbN0L6IlF)T{o5Y^W^gBgh{8mp
      z)h*t$zqE_?SAhnX>%|qXxpTGNa1w|q4C~XT-D(tXY}|8dK>`B`r=D0BysftF+Z#<s
      zA+kNKpcV;sre!xHh*P}N^x8Zh+Foh}j^AM#*J~*ZxSfTj+h)u<H*;>w4ay2hbCJLG
      zd{rT~;MJWJqBvz>7^4bNGhZEq!gB_W<Ak8o1`<dLI%8lkM3V+mA$s1xu@FreFpx~)
      zEM83DoWk)ZS6H@#O#?6CJo9h4<P|4_{GvqV4Ge`*7Yr0|k(6qV+vH->L*YclZ8_Jw
      zTN{qQ7HW{Lcs09OwS8CiePb-xbUO;!%Cqz?Npda6U`>nata%EfX60xJO8F&9=E<|3
      zIwE;5*mQi!#U%8jZ!+*!1K({mSUEF)C@8d+5_pS}9yQN*-DchKlX#oO5rVV16z1@b
      zlw$q}v3{a_RXi3AT*Wm8+3mK|s<X`~)>F>?^ra-;W1AFo?)N3~1BHwKmHQbPmZ@1G
      zr@L%6m&6T)kwWfY%_im#6;g#<*mL1sR^@qXLU8^6(~D!(z$_?kYSrudHRqZuRUO)|
      z+$9Oc6#FI05obdxX-d9mN?KB{ss4IQuaIWc>rj7XJ9Cb53}b|TX*!#XPSJATdW4hK
      z=wJ_H`Ap*bA2DH_?;&I5dl<Je@gDb?L=V|roYvcn-j0jYgg9j_>mkuYWEz~Z9ODhI
      zhnxU0Joo{l;*t@!$9SO!a~G5Q7VY*JmJa*8#=~F9DS}I!=gAgWK@2y^bd}6+VGLEA
      z!AI2NHZ0u5G(N^__yi?<iYu^rvVj`^T{!p_pP|SMWemtY={uv<xUcn78i|5YjYPw^
      zMxtUuqs!Dy-qe@zN~jvXA)6Ri^TMA{%h9r2qrgGkl9BQ*M)nO4enLD}p8WaXHd&o>
      zi_d5gc{qtSGWY`L;Pdm)(M+u{_W@HAukv<M^|N@Lwg@Aq@CM%0y}+jFv-(c&fxEwB
      z?oPV=2v>y09v0H??qNx^J%lF?;jG|Fh;xFkhu9Rn65_Ev+}y*hUk+}P)-1QlVh0s`
      T%}Q)*_D0B|&t9<>5^?(<pWige
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PolyEdgeComparator.class b/libjava/classpath/lib/gnu/java/awt/java2d/PolyEdgeComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..772f42c1cff0f66271054991f8edb731885ac061
      GIT binary patch
      literal 752
      zcwUWA&rcIk5dLPn+oh!lND)y4fdpDqHYKJ9i}gp<q)CG&67H|<OI@<;nq{l<m*~NG
      z^}@x(#KeQ~>>p+P-lM_9Cd9*=_sz^VGvCaw-`{@#sA1iQBiI<k!{AW8QGt4!S+LU&
      zUL?`U)BZrWlB3ruRauhya0N4#7pZs<JntUrUgje&DBI{T3!~sKUmz!ZZ9#rFjKi!c
      z$W^Kb0=Jd)brCsCl~6!YFx?4by*E7S>U3XqBQ3bxNqQ<eP-$rVQP9m^g~x(Q=l}FJ
      z1b)wYtlg}1{#D)>k5t<}<^@X^4Je?Dg%Yk}Q84wc9cMZ{W^I_nT=t2;Noq#_SZ|Zr
      z5qO$C$XLE`i^hn^0@v&yD85XFX-_{3%_SDbx7{`!unHcT&*KApOwc;SJTvViy@0>T
      zd0XF5`eM_UX!AB$!!&K_jDQ);^5-&`8x^0zB@?)N>nF;4w`uOVxw?1fE3PcMG#@^q
      z;MBd(m^%->|Af3-_vXFR^I2<F)-EU9XV)fU4{#k1DgF_*@t7)FR!8$})<}mz*T@r#
      fmWUj72yg?-TzL{ztPr{Ewt<_RU{0`VXRiGL;<lcn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/QuadSegment.class b/libjava/classpath/lib/gnu/java/awt/java2d/QuadSegment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1cdd0b4b96ae079de8df4c1986779513dda0a854
      GIT binary patch
      literal 4635
      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
      O>Qjzs^}ViFo%uHx?Z%-1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class b/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c52e502d6ede5204781bdcd88341401fca419c9e
      GIT binary patch
      literal 940
      zcwU8)QBM;=6ot=hm)6#W0)?U?Vu6@;C2r(ZAu+AsLp2dieIuD}hcc$!HM3LvTapMQ
      zKKKLtQHDFyr75L>Y_fZ1=6v_goSlFF|NI5;8e2Iy3>)2O5PavSJm5dI6+4~akSAKG
      z1I2%w$S}#lWq2{o_pY62#Y27V+-Wdmm4zABn<KmI^R5WKDXDq8Cx+GEFciYL7psqP
      zNAwt0C++poB3ZL<WhC_;!*2DSvUilJwHVww$pSK%^^nILL#A45<-suTVFp>F7Cq$f
      zpg?NL!?N+Xra42gDI@V|&~FR%)pR6lGY)yL#g#PUbkfx)GGW+i-XATUj8Rlh*k_pS
      z3SA!yWUX4eGm<6pH$<Xk#I=m0!!-8FZR}R?Ws9E5P}Jk-Sat`>mY~}(4qtEbhR6K2
      zFY!QyVqcoWmTn&Cm7!6g>@sx89C|2Jt0+?Xy0nsq$@U?QIL#Yh$-ji>zdT3L-#*8J
      ze}U4Oh063UQwg9!=zBu<F^2;z;saJ__W2OUBRmGIdP41(Rjbs{A?hjC(sluT&DxCr
      w8w<Zi4TivHThJRC(t<9YVSNf*oP>|2z>IcRN#X4jcGx7@86%w$xnW0}SM}Y@L;wH)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/Segment.class b/libjava/classpath/lib/gnu/java/awt/java2d/Segment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18d241d4a83d25327340ecfdac36ece5df2b1a2e
      GIT binary patch
      literal 1826
      zcwU87ZBrXn6n-{Y2%9WPc`FN;0=|^I00CO50i*)4Y7LYE($ZF)CE128%P!p{Ky@6o
      zI^*yQI^zew@>NHmjyisI#$V#EP@lWIh1!laGr8xv=bn3>^PGD!`Qxvje*-XzwFp8I
      zdMb83cTeBZbNX)017qdfvQgPG>{<k}gfrfurQ4O<we@>OiQYyDZKvKj%dri8-7+ME
      z7Dpv?7EjVu3}-91=$LkGtS~8#$0Rh|HQj1WLbCV*W(Lc)vBxmk(nWNmtC!7sRf1ID
      zX3Dh9+O&jlD!s~(Ij3wy5k|X;GiXsD;j9V;O#*2uB0lO?5k*X(msF@eI;Wx;F$syH
      zX&Vdmt#!j)@ujpDosw>?>aHpFfm5z+n5-eJm&+3RQZG~>DvR32Zq?s&;~G1LTQz1Z
      zD@y7C6)Chxhy-p*+o80(j=N>JbURkr??6+{S+2RJU6Ih9N*7NX?|UaB$g%0qx@YUA
      zRW{rv@I{(}nkJ$c#s$%&ixN6g&!<YSiimL)m+%H_(YLn^n@WeC4)up%^7%pn#>pm3
      z@Tmv;M5-x~>dj{|JR$qf4C3Zx6@wUJ5jGp5TNIHh@RPn>5brjpB9259Z{wW^u1JWV
      zrkdAl8!Fz#dwj0yeOHW7s*vW?g!V?bJP^y?s6b*V?}_CBo4>$!b;P#4V$=#|b=%TQ
      zMmgvlAHAPhZvW5BhD+O{f{#^t8;*N)*{QoF<BBQfM-4)U#Z9@NLc;tupph%5ls`*J
      z%&liRtDaQ@+w56c=%y7-;H-0P<?ass679LnW3**5(yb$O9HBFlIYL)PIzo>?$sZUI
      zLNC{DG6GY)HO+jN(T2C6VFpReqK_x4pAG#1_se)CVEULDLbScv%ptl&`a>kM9s|K4
      zdbs|Js+A<bRf>9_1s9og-lI6{rwJ$odX<RpfY(lB{m2+``%>l@=RE?Su&0=r_hcQQ
      zJIkZ2P?x2DAv;KKc7CXs{r&GhPm7qKN??V_KA^T$65OEXo78*@J?vgDJ|z7|NK@Z1
      zbc|pfV>}y2*()~Vmk|`(g7b_N#kTQQhA70nf-I4EPtI*1;HtL=`hLOiTI<MTjIsL8
      zW4zv)KgJ|+2k|kczdxz8(Tm@B>J|C|R+(=!<L8wwFs_BZeXU`jl2^1yx{{A+vG}8J
      zk!03cO^HAH4iWhPa_F1Qd@P<<4scy~p9I9bfDi*@1}O1->;NO0qA8mi6K$4$LLuL*
      zDfxtm-la!tcJhjMHR0h{!>^IGu%;}n$y#jbRKPd~6}Zm=T?(kOMRg2dhb`H|MSQ{^
      z=BHS|=WO;DZ1R_I@Q|LbJ;8U_M2b3@iG4OO;Wc5O)01E`1u7CXcxax8|3>(V856v#
      r;xk+$iZOc<i$u-j=)!fP1pmrXqG_~CSoZ7+$3fUtVaapDQ*rYj*)dX<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d82213949e56f591d240a94085397ec36e011978
      GIT binary patch
      literal 551
      zcwT)`O;5r=5Pi#61yK+IMUBy$da#jr)0i046Hx<(`%*S#$<j8Z)%deKnRxIA_@j)|
      zDN4e@%e<X=Z{E!Aetmy@0yx8-g^a+y>&5m&K1*A^M0{wE?EY8=sw17TvXB#~GH;~k
      z+7H8taw378(Vh}$cK=#k<xlM{Rogcg#D^@aFZdo6$iXOLi=iKTqaI5RmMnU|6pPu+
      zQpV_DM)O)r;@gy9RaS<MKx0X99XhE;;G0+1_XKJS#ba6{x^SsI9bJ*j(eZ%R@AxBC
      zLKclOHc%6&BsaT{r$ZG!$)Qn+jqgY^kfBcUc`+A_^(?v5|F22|OMO2M9d)OZw#tG!
      zO~g0^Z9>0PAk0$)p@kL3B1(*_C^N2Mow0%{qewQUxJjAKIgmejNBxZs88qj%z&W-k
      PmQw+?(c<<UR_*=(_hf;d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/TexturePaintContext.class b/libjava/classpath/lib/gnu/java/awt/java2d/TexturePaintContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e808da67d5c5b2c99927677a34fb72294d6c96a5
      GIT binary patch
      literal 3431
      zcwUuO>317f75_bJ8A~49veHQ`EVl_IR92eEF{x<fQtH@o<JL*DxOUR8ShmLYq_RdG
      zjbbH07f6$q0xo5Tmei$fC~ctyBD0i|PjF5T9G1g5eB(?056bV3yvR!eSf2OpyYKGX
      z%=`cT&3gd$;w=pg3b#!c%Bj=YGuc#j&h>zvTx!IuxMjyYlC=tMzg=*7)ZkZ$c!c?E
      zVLJ8T#A$Pq*r0;3!d}my5U^&m)271B!z%<HCbhpjHDx+xZb(kO3Qa}fJC-fErlWAn
      zdh#*Ha<db8vqnJrkn3a%r77E)T|+%>+Ow&?sVS>qjw}<9I(WBLu-tnTW)iEk^&a-F
      zqL0xhdY3nQ*NI)Z=owglwO(V_sDi)W&Y5BO(59mqQ3YS3Yc!0TuvLRmAF+BnbZkSr
      zLgTdQ4%H&JJ<)aJ*oC0*AsreTMR;6CCvH|~ri8x2<c#fz*$SQYVm7!F#&&#I!w!Ym
      zb%}J`ijUMx8?$omjOWlm7#~GK!)*%j8(AsLT^`4f=-Q>@b`ch$u!E*GJ>!a;J%a5D
      zqZ>UM_R{7X23g0)u#XisnYRm!(@o0`)|I9go3xH5=pyw_9d{u^meOQ4PnJMpU_er`
      z9e3;agxI6eo<mmQgy24@<K8;lNs+K$N54p@RbM{qnu0x`V-WW-=97*|)KKA!>69pc
      z$A*}%uM-VJ3T-PiePbgB9LIJV@qj||p@LZ{(hD=U{jgoIM5=4C2Uge*R3^=$YuSY`
      z4&snh*<sdIqAm=_UB@a+_llDTaYV;a9Ha5l3;o%$n0R|V^~j84&q<f{c5RB)Fru(~
      ztw;aGGKJP*dVIJ%J7GE_B1IuOY%~6&S;vy|64LL^SS5w7;s0?Kv8ffydfRo{S)m~}
      z!J^o#t$A1GUB?ajfwfVo&6Z%+Ya#+((VU>#f#t(VN-`@7sp0=CCY0_o9g5tt%D0?(
      z-f20jRJ0{I(!>3B-gXXglH}L*aIMK!uY09~@;WS>uJzUOEbUAT@oxj?(j*PDLy9^c
      z1t}wDp~MK*ZjM{$ycQwrsEFohD&tJ89R{*)mZM^$IV(adIH%!k{gkUGkZ$V|qJ%78
      zkVf;4d!(D5kbZqqA)GihIK+QXe+6ICaUM^xo|g0<$eXif!DY=PXyeA#zs@wcs3U}M
      z7|-BY4PUOGF`K<;bbJM0rOwiNo!d6o$+6#1;p9?m>xQ!e%<-8KY>!~L_)5+s!Bc~*
      z`J7pDrI_rpGik0V<~89Y<t&F1voTj2ymDmm1!ug`Nqo_&NP$E*nnd+XgQ`eFc*|Mw
      zJt4~;3F~DYKgR2PLDyzizdc*bdUd-t5DK>@HYuVFuVuy9gpYgv3|i9H?VI%O9+83_
      z%!ZFofNO)izW7DbAj$D|j%@A$-Z!I#Yb&6}cy1#0spKLe$z4@!xq=wCj!ZxfnP4nX
      z#VxU56+185cWH7;%4s)Gp=8WoMd~WLui%d4FL6h^)*h<j;{pm{@0_gn%vI5s6kHVp
      zB)lxLe~W`BqxUajm<l`<501rxzki2DNw?*3oaR16v-Tsx^#uGl#Tye*Oragq?423x
      zBjvp~jR)`uK0}^73j95aITUdg4xU7b<z2=oB@}B;VvMrjK_~GrwFz_zpQ1K_K2143
      z5Be;%`Kj$;j1w22&Ji!1L24dE785+}!=0EU6r$Fx$kDn0^)}JMY0~k#i2PoVv5SxB
      zQtx<q5XXWZ;xW%Sy>_`|oRV>~#Mr}K?iv}sSQU@Fy^jBxI{wBL{#hF2@i*)x-4^1m
      zB|8oOBJ7UN@pK?=_{Y=1z`MbWCd-oSQYI8*^5)WE**=$UlI`<pUAD*4%_`FpPq$vi
      za~<i(Wjqnnd`9HL(U|5pS}z>+60Z4TjXu`H<J`KRO}E7w{oJBPn-R_#O+_O-o^CUu
      zhMqH;i-tZfH!mQ}>n86);Hc3|d@Mv{G}cnZ7c(sseZh!y<c!vMPEb#uk0>Kz1QtGc
      z{Cul2T8-es2euHchUN^v)_@-{LoYBiFER^1<QL#2#PJe#Vu9a7FY`0!N66q6^x;(u
      z;5FROjy-}m7{WK1@3&Y>KV|j&4CnB3T*NQ%O;qtcEK<U+$nk4Zz037?c%OX#ApgH`
      z)l0?ITDVv0>>9p?c`rTJ@EoBA5BfSGp9eip$WJT(iEj`J(AK|E*F4j<4S&M7@NIe#
      z#~<+>LXEWkJ$#pTgy_Q}zE8R^J$akH&a>_^c%2^4Q(7NAe34KyeY-^OFR|V4ql}k`
      zYsDdYv_L3A564J3k2d;wgb|si{swt(EtTKXw9U`GTLSzC#AK`Dm5v3p)WBEcFT+@>
      zpTo)B9q}q&yMha=Wxka@fu2P1XJ+Lu^x&^Z;qP9ok~P^YvFi5XqCDt%FIGG0-%seT
      LjI=jAnQ#6FoP|km
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0ed006b9fb3f1f3212c90c45d115fdfde1ed7f3
      GIT binary patch
      literal 8543
      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
      X(Y3M~oEl}V=j6y_SMqJ*Q;Yuq1P!L`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/EmbeddedWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/EmbeddedWindowPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5dc239fd3f7abc9bca89b05485843af89ba621f6
      GIT binary patch
      literal 189
      zcwRg8Z`VEs1_nb0ZgvJHMh2Diyi)zF#Ii*F#PSmTg4EO^eb?Ni)RdIel<>^Fl>G7l
      zpb$F)3nPO7SXEA9Ub?=2QdVkm2|EKDBZD}qUbmve+*FVjMh4bYkU5MDEE-;#VT=r1
      u!TF^{$*FFcIjKNhn0Dxa3<4U+$iNK5tUxC+0xe}{-~h20IDsS+0~Y|g129+s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebb93ecb2776c7d0643152174f5365cc3795487c
      GIT binary patch
      literal 7416
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/NativeEventLoopRunningEvent.class b/libjava/classpath/lib/gnu/java/awt/peer/NativeEventLoopRunningEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f49301a7d2325c1d248bd9ab4b39da250943c8bb
      GIT binary patch
      literal 608
      zcwUu}%SyvQ6o&uPTWlMxy?PhjwG|Cs7D7c(Q4oTPN`>wwb*Lk8QqrWplp8@UxDeMq
      zlsKKXZWO`I<osv8`Gzz3_<Vf>u#QCo5yEOqhSn|XGK<{@R-1F*I$?q6^208df$e$i
      z^H545TRIzv5whR--qodU6AXVq5vV~(><B4>T|%*JYuIJ7Wt}>=ycyIgbwcdGyXGlG
      zkv3t#B$R#uk1KTp6Qld|&c5floXHf%F=--;9Km!3y*hJ4PKcH(jU)&K6LBO68Cytx
      z65cu7zhsW9h@9;;nOkSR=;vWG7Tkyq!LtAL95pp+#|!<Y*8UiPkQANs(Zi%JG<hWY
      z_bvTlUF(amtcHlHA4Q1tCs9>I)dt4YnpEjb?MBqMP+iHUdp)G8EAJS8LFO6xM@<*i
      zI-wmK>eMFk*g{FA(%>AXFb(Kx2D8dam_u%8w{!;L)hFa1zI6%R+}0X%01P#Rc}*>R
      E0gW<;qyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage$Loader.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage$Loader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62f7c076f1b8aa7f378aee0d2761997c968c97c2
      GIT binary patch
      literal 1343
      zcwU86YflqF6g|_HE-h<Y3gQDrtSD_MEDzsBc{HevizI*;K5omjEG)Y?-9<6RNR08P
      z_?g5C(L@vZVB(K5-rZIk5YjZ;nYoX1&$)AVfBpXQ4ZsL;5_}B(Wz$jCv@K21Uf9Ye
      z=Rzsl>&jGR+brfcv@-8gEp3Gh2?2(f7ief^S(z)W@uDpu$PjN>=N;433I=EJJHlXy
      zsGiT{w(@jd%`yb-RlU+T%#cu<6?UV?byK(RGmIshhaWDLT4D&~tQ8&tLsUix;V}GY
      zm(hke(MzV5Tu-MA39S^N>L!2UY!tXytO<y#R#7vSG@-lax-sC=XGk?=Q|}sSU=CFi
      zjw#^+L(lPf5AAg?D~xXRxC}2bv?q@W3ga@aNJvogj)%!<y08`;QPPTBMjx)yjg`4Q
      z?UYJf@D;BF!{kZ5{L3PnQvW%1*Pt9i$cE96l!PQh?}<Q*mSwE#wv03e7-SD-PRs~l
      z38J5D6!@=V%@D#M6bVBo)@Za^#xO=0LV{~XU1IDgT$td-WL(D$x@yz1_0slSp~A%$
      z7j&J0WZs>ILEMsY8+QoHYB)P;SdOh5$|J3^y1?zM1iIKnW9;*W!ONO4CCbhQH|?31
      zMZRh4mdVhf*BG^y>&+!W&DzfpUa%Zd<PUUr=AsR$Lv9weGjEz)<P5D+;lwaln>F;(
      zJp1WsfscMP)<7)g4nDo^K6=_9llK(u9@E)RYcxGjMI^n4SUOWh$F3K6n*Jl6TM(2*
      z0MF4yr!Eg9iZeJ1c)N2{!bgzj5w8RPq&zn>_Z8jC=}+j`!^PRmK571l;4`L@DKfB+
      zYgJ_2?egpocZv0X#;ChtRou)RP-y1h`>qGnj!xV~3geid(*&lxwMH`SDcdGhuPEv@
      z+1?Pjw@6@zGTvbn?<sc&)A-;CNF(4<s|#o+{BimWGCF7KJDCLC!+o!RwK|hj5mblX
      KW15d?`2GO=Bu5kg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage$NullImageSource.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage$NullImageSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33331c774c9be4cca71fc856f26c7eeaf7eabf1c
      GIT binary patch
      literal 1614
      zcwUv1TTc@~6vzLwl-8Ezq7}RWf}*xXUBDa2MY#yBHfWSoC6TzaV;O9Bad!&AXTOAr
      z@4onAA{aF>KKm{FBI23tx)4Ac(@b|}=bYa;=YLN7<JXsO0Q!-QL1XAE+7)BjTD1&o
      zO&TklyGBvIFvh)gJ8zb)BJY{4luG{Yp;K}5JcbBEi|<jg?4ogRahd033{i&mkRz16
      z;d|Y8okAtgU50qxvAs%}yB<Sp*0-%lQ8LC|*ILgCPYyFg<&yAv`WQ}SYbB<vM}#fp
      z7{i%VZS!=FAu{O{cpMDPI^swqP=|v$8gPiAE|t#3aF`*vPi6@uaZvdk(GkM|^3MvJ
      z&sNHd+?}%)OPt|Q*2!C?oaG924qir7ISd0ev)ipQ71v-D3X_3i4Be^he(L@)pz2hP
      zCv|k8n~EV{5;^eM(Wl|`JcB0k44wbxF(icdAK~X!_;Wf^D*OTJw6ugxr8l{}?5u`{
      z%Bok#d1V!?UNLmI{AGoEa?V+qa@OoDe=Z-0;*xy8J#H5gB)g%b4;>`CCoNZ2M@kCE
      zR=5EjmvEW1_QWgh_t8|Zuj;slK{^+?R8pAfy<)_0{V!AdC*KAPVMNC$Xvi8pE~iA9
      z+a5)x(&|&Dna(MTn>xlZK^CIwTV5$~soGCbY3i7uWzr(q6V?7s3pF0i+XHY>Wx=4E
      zw$0tilI3~ai{TDKSFO<@%&y^~8KAmp)kC8X4J^>oq6VIR_)%I7(CN03b~9wB(X%zv
      zyMd<6C$wa~BKhPKS~t-4fi5&0rSB#(18xy;f-qA!Mkj?JM;ylqdXkRl2%r;wSRj%4
      zh_>EMbUxZ9CHxzcD0h5HTh%h4sNE@?CJsXn&IG*CfEN#VXWxgosGr2_4pclu#Y0s3
      zuc>ABr1p^f=4zyNA>@q(yl94C7k9HBlVDGFu%aO=8nXIA)*BKzLeHU4HnrJAf21(_
      z4&Ca|zKJW}F*JK268VhbI`r0m#tjXxwXOEITR*qMcT&@Vr&P)Ug?>iCEM%}q|N09U
      qM8QufQw<iTG!&$iB;6;e#~PiRspqHt5t;VcGq~*+rxG`D7us(~s83A*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/AsyncImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..884957553cd57c4483b4a99fe5c8d952aac98f1f
      GIT binary patch
      literal 3561
      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
      bRv#WwksifkkTcH5e~JVi=eN9Wo`COr#**$|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/BufferedImageGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/BufferedImageGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26ac9f85f48bc1f52ec18f992f710321cbf59cb7
      GIT binary patch
      literal 10724
      zcwU`Y34D~*wf~>VOeQn=!XgYZBnZl4m?VUtMF>lUL?AW+$|43-GD#-M=p+*-6Be~@
      zRcTewx*#BJMXa=zS{In0C<SfN(nVWqty-&=_Gve(Rr{W;ue|@c-<Qc`!P=K!=DYX1
      z_uS>2^Z%cF?sxQGj~@h3CcpE-B`9ic>ny!Eyf$1KUY9Iwk3<rs&B;qj=XEwUMG}$5
      zs@8CGWI-a_-V$x-@WL&aFz|qia5NF`7Mxls@I-Z};FRjLuxaT%^-Mu_y=h=27H_yD
      z(kPHs0>2Sn8Es6qu%SwjYZ?|tqRlNyfw!YG(G+gr{Nt-XVMEJoDXuc8K6BX)!O8Z%
      zI+M{@>B>m>l7-=pmYQ%oMZFC=bPZRLa|OPZaL4>`N3x<uki+`iSbIyD)maU(Xj?Qn
      zN03!G={$kEBHkGBA}9z9II$lik#C^@BdF;tGt>u~$HHI?5e%-5wnY|ow$?`y%ft0C
      zDt1zJydfMrFPw<#yVH1T;U}AO(s_PlAzx=6Z^46XKPIBki_--KpES_IB!s9{b0q25
      zoLW`sG{qMD$kk~kTPRf_ABAi`Xn&an3%Oc5!$J;xD)|`;({L7zPRV8A*7jJWhQ^6e
      z+rmkG_n*-}(~B8IWM6@3TXQV3B)UElTM|})WQ@>dXIdC$FFV`99DG)g$7L(xv3SB+
      zb#(t#d%9=(Fc%eG%oCjU?~!Do66a7c1CffFHSzZFrJeLk{wFNp#{yJ&u}}~^p^$}h
      z@i_t`a%pEcMsx-oKgYst&83U$FOD=MXHHtB>eg5o4xes%v4thNnZfpE(sL=&mReYb
      z<@6#=A(%MOZ2g;b`tvO0VUVBGpRZu8C6NoOsuWfuvD(4~xR8^!cXHC{15Em<meI-A
      zSf~SOG`KCYuEO4aTQagfX>fP0ZluA&P@JT0rO}(vY~yYznW(Yi)c!7AnTRHpB(?}w
      ziQ*D3E~fiGQP4t6K|QiJRF@~hZ5^?2GIGAo(`F(5NkX-LT&gTfbd$elF?$j1pR9U!
      zT3Cy9wk`(J9mc?uR#&OW1`C(ravQ*v;beH86B!2pa8EZ`^M(HG?&+^;OZssIuCj17
      zu3>a@=4QkyG|NuM7cE?;>J3%(8p3T1Y>{QjM6@yD#|`+B7aIjbdfd2d1669Z@MYXc
      zMZ$?hctb<HeS;u003xaeXfkk`h?{jso5+g(+NFJ%g<CA#imwPpG)3DQmqpe1)F{#%
      zNzB!i1=IS4#0>78U}B^AT-<Kq4%|s4Ix@Yn+U!qomxZm^#uoN=wyV9)wL9*%umfM!
      zLx^!E7G;;098t9>lx&G|mXZ^kN&}v&Jab(2QL;bbp!?(#Y?~tO&Nf}Ec_z9#T6L-a
      zAYgI|cWbome7hjKz4nAt8T&gN*Yn)tW~LPWM=IEsdC<al@en7s0a0|KIr?M^GtX7i
      z<>;XKi8yr{*4f@jUiDf^gTh`5`;el;l1ja%c!IKHdh~CO#9K?}HW4Y2<=p}V(SAJc
      z#bcR)U?4%A`T!G;!qt^k{5K$Y65sRUAme=xh-<>h77K@PShb8qV~UH)NtFudr!9OR
      zKcJI{i=_*ApyV1@tgf;ri-IPR_588)th0~V>=q}Z$!?EF+mgn!%${70^=xWLL}&#)
      z4Kf&#Hn|%7XBwpUkR8hE$l7Q_gn_gv+T584C!_H;o@oOO?IknQjyFpq;n=)*XIo=O
      zpLk<zwUopSE3D`&FJ2OiJz@X&%6KQEs~^9_%euQ)lpdA*Qy*LE<GEC;ijbrqje*oW
      zdZ7Kr!Vfjon2R?oyoulHIqQfo;#Sv2)H_w(BUJt0S$IU5=xSWA58Bn;m<Thz4$BA%
      z%UZ(i5eJ}uwD2eVnW4@^lVl=JdUR_&vHzH!hO~m_lzhj+U*Y5aI$EMl$x1F+5st+=
      ze0UGP@#1ex-ue&J&JQdcwUed4TljDMk6}tH1IX~6l`7Z}?}#QNH1t0h3(_4X^Gx?@
      zZ2Z{5TX<V1{+ESkbmI4DVmzxx6meOSrP-!s!^kER*A|ZjugMI>Ye^2CBTxx|be1oE
      z+OHpGrdH~lmL+*I$UeVp^Qo;f>|{62^ovi1STa;jvZHIa?C`>VqQ)^Y+>(Hdurp8-
      zziGqFc}<&{cBCai8Kv<mEt%<UTac4dw7`<latbX#(d9i6<FpL%0YiovjgS2_=c$&Q
      zh8JxM*+8)kG2W61GLh6#yrrEYnALagOy=~B)F!SiuJ4E>*6N|eYmX3zL;Avy&52$R
      z=>el=cvE?03iKyA*CV`|qA@0fSyF0A3Es|?GC9L5Q@bNtdJRj?l+W01?WV(s!U5s0
      z%AaM)beUm0Ye|@4tB<oxn{n1mOJ>Pz+gXlern788+gYW$xl>6^wdm4FTVp!%3(oF$
      z#`hA)Fzku^NfT69a<<IX{hwpWd|6;8JoZF9G8fw6H@~;qnVm+XDvP&5rs_jG`j0)y
      z*`~Ss>1EQ^tb(y$&KTe-+*=7A3hQlv`qTuD>U9~ae=24BQsLi$PEE7Sk|pwazpRjz
      zUO6ul9ro=|&X-z;^zqJwUc1NkPuh&=l0>|*vq5t=SuGcO<$~_iQRSA$<FQMkNlPx0
      zHMaFDBTeDXSkmdx_>eKJ(`u#)TT(9#<e?qR9OF#shl}2unAF#HUWsJp%Eo|8^x(}n
      zw<b!nB`ul|Ypz_wY)RWLw&aqGwpzb53Uh`6Y15ohPd6qS(#|YGE)^{38wQ+3`Z}+>
      zx$k+~-LCNIQ0LG#OaA{zIDzM7t*rOTy3AWk=IRy`mCG1IsPXycVpgdmuCU|_-OU6=
      zR<yObSIp`Lv$wvv!4A(Eoi-#nDqi0)03mwskVkrAt)^2B<^~o|JDXdouhPwA#}m=!
      zXj`v5x|dZsaXSq<SZTH(wxPY{Jcc*j>DUYtH}OVVn$bIR{(PnLX1UcXw`AVs`wCj}
      z6+JPA&_31i=4eBAUgekD)!cVvj_rFysLU1m;N@eIT&A^c7D`zoOYgSiCb?N5aW^$+
      zUfb)lL%;3v)R?bd*PL*kUwy(wXX-M$EV)nJYVaLif4;WeZ^`bAwpxvy-?HQZRZrQg
      zm!GOO=AFyh!wnG~vB#3{$b$?OG;}1<!8HWSKi!e|pL8kN-jjzkz5FV(ba}**M>Qk&
      zG{xfagl=S?B`K47nlRmvWE-lK$B$X^xE!z#^ktp(Q9F=~w=Zyg0oMEDn&wVVT5?dn
      zrymJ<=2s-w_cClc4{*L_%*>U;^0Zf;%5-^OAxpk5KX4|DcSL&g+&L%g>))qr?(-qU
      z4ouHj@~r%j0k+vmh4i~cRa*y5s?-{%5$xZD6R-Rz^JFko_RCS>eJ>~OaF%*BM%LPw
      zV&OeTgNw9iFff*!s(N-N5)u6-F;QOB`1wnMw9wAziR@ol^0H=kdGy;n-d>v%ieK${
      z)skOpuJ3DzMZ$@t23qPw`)Z({XHAY~)~TrRV}ZP3$(!BZ19=~7w9gt|BJ4wKepJ7x
      zjvDYjJ6YAlsZ7+f0Qlk3Z>g-gG;=m(4t%EcBiEFcDWPA__{`C-x~6?7PBP^%M}D{|
      zhf*Sd5uE>IzLm0F|8fstWNjBlJ&Mr}8{sj|;y@kC`50?j!C?hva~$kC&aL^`v@g_!
      z(?Ui2FfLS-!i0S&(z0Y9ri8NgVQOeE#-(uPVNBnSTx}`ejad|!^$5;RVg5D@3Ax#*
      zJ=ME$n%%P~v&U_Ea?IFAFq#sdKZ4;Qr+Nr;_hAJ`h7MqEEmtezZ%P+dvQ<U+wjza9
      zD?@hWqJ606u*Mp`mT$vRXM2Y*z1(fr8&hbR=1JFEr)3u(#@uZ<xtL28r_jz{M@tIH
      zMY}PG_4S8vMG99g3c6FcR@c7=c>&LM<OH&}VPW@%TAuKidyUAnoUCa+?zbf13uHG2
      za#{kO#-KOgQ^^*6?8o)j`NT9#*?Iicpmz~#)!Q*8Ynqo!mIS;POm<zl_&Toyyd?*B
      z9)E8)0`_)i*~Lx!v02BgC`sWq)w@20EupNe?!Bb2y~oWDqKMB+;6^JE(nf^D5kxyq
      zL4rLUI0H$XjkP!j>rjIYScS{623MdNS0RRL+4Dtg#0}Wa=l!@54`UNjxD`+0Hr}dl
      z$BVdwcj~+FHn!qpY!@%SCZlnWgs@Y}uuIOueX@+@8r(1SctE1~w#2bV*0H<}56Koh
      zDqmxAb3anD7hML5*AeXm9=?XJD|}hIhwKopdmKA)FE#s!{Mm*3czAj71*f)!`kET|
      zbpYSsZr$A7cd?rc@^Fv4@J-gTxwGl`7UjI$Ul|@?TaKJbTYQ@}pTx)?t$Dd{0rogd
      zdVq5&K^EC$pc@Py=mWwq1A5w2WGF&Eq$$Feaz#4JYJxpfWc%zpJzkn@SpFDSIY7og
      zK{h|h_JcSb-y@3;;Y>V*S$G<i_yN6i#8_#By`yd`vGy=)Ji+zbg+t=E=ySE@CaySj
      z8{7|jpYYaZ<!@YC>n`BKGdjPHMRvelz_MIf@o3PK#eYu<T`bBr&kB0nWt(RQJ)Sas
      zZ{Ck5HqQxqvdgsHyiHSLtw<Ar%qh>#*VkRhEzqX>xNg9`19=4jcirrOJ2}lgdI$XZ
      zqw8jkPR_~S0Z-Pf0)5VAlMcKOel7AF=jaG~id-!U8qH$m+c8$DkY6x5;0|Wz7Z`4t
      zp(#AI8#~kNK4O!%+#BkN1396dIN%HQ!~uUWC(ZD}fNwj-1+(p$gWiIGztL0!Zc~uM
      zyHRciOv^2pX6?rKV0OSVeff2yyTt*4T-F1=#?i`nOV~y;?>zo;kJ}H@xxh~dwx2R^
      zKaYv{8D0Hzl;Z`G@)vaJi?|Rkk+Lt7j<4WqyoT%XI%)U@ZozL!zu%F1zb85WKp6ay
      zH2D*O{bxe|9Xy1;l1}duIPc*o-sj98;@9{)iTWYl5#XO9_!m!6h(|2(%1FtP@#5!o
      z-QvwUPZr7`S<LzhIf=KeVZ0^{m$(F&qz{*?`F^tmGswCrP1a5N#fZ~t?OE1bruIYD
      zvP|tLYi_*^;Yau}i5Ztu3~jSH<YwAJiK$=kmB2YNlHqB$A?A3r7y|p{0!%Tq&1Fz2
      zF=Vy4-cRwIL)J665+{T20Hl_Leg2`e!L!ZA#+r>=wve-Nq1j(>CMZ^`=oslcaze&P
      zmow5$N4@BboCCk<8-4)4tQ|B+@vu>WyRi$u>N{5`W3J)pUA#&s*>l}VNN5x~UFl_@
      z9`FRR^<^(!OX2lUe!x>#5Xi1$PZy5$plXn@bSX}jDYSE$S!SU<RXSLl-t8sU951ov
      zc!@RJOIrKA37=Z~FAbj@^A<5=wkRI<sMPhE68u5W+`s5STDuqTy6g7gU9G*ZwfEWe
      z;SuC%aTp(M!<bM}7ycP4-i!a`?>K+&^7lUV*o_&XE|Jh)ai=8vkoXprgi?~5lEGRI
      zOUcP48m3Z`Us9BkF`?p=jFm1Kx3b3obC@MT$_c5N$dlPL#2lO|^DtE^ah9BeMN);O
      z@;O{6)rd$9T4fPBWic+3&*M6tR%)=2tytP%*URZrNVT(Zl}w`VTqNe{QY6I+HvI<X
      zc<oJ^L`~S*SL2D)SSA-eCQ}4811mnWx8gO$RCroS%8MPviyg&_srZ}_r(zP?NA;-$
      z6l5iaN-ajnDvXxZIFme?E@4#g0REgbV3{;xwM0-y4#s#O_o&;NR=3qrcQlP>t6RZ~
      zqpItox@XH=N8O_i0xs&S?x;{vahJ@?NK1^0(+BWvWl9$I_>}&v4jBoCWvS_-U&!R7
      zt<*2howcJ-k|>t7bn7~%<m;K8Z$OP)PS;+Uq1Q!ey)J@>&Q{!CM2Dw1>sjQ8?MAnL
      zta6b3qQ)Fb9UB0+#U(*^mn>xx*-N>AXHU^#Ox%tj-Lt&h6ZAa8Gi}d)Srzo8q^`Q?
      z5GIy;4oG9IzBg^uXLMti#LBasMoch0b=rjz(_d!<yv0XIt6+98J0<b*?Bbv|=+&CH
      zw>8Uif;o;ogE>XTOh+ZLGNhqM2X^Y?avj*IkINa7RF83c(#E|Qqp129Y2531fw}=9
      z*@zOknE=|1a=C>Dz7=!jD>#>z-X+YpB61gbvlZ8{yg|0%M!6ez$PQ+J_uyW+7Z1uV
      zbjf|ZLGQ+o<ePY2zJ=F#&3~Qm>YR3y^&Cq(=a^h6R~hFVbDX2KtK}NQsAF<1_vU6+
      zHk6s8kH9O(5V@ZF^k4~Y=U%f}i{MK6l6;x<8wi3MS@SXn{)};P4xxJ!^|4(%olw#{
      z*ABXCQ@LBsG=7uX?6!spro6L3pIh{?mBum`h+bHj6e=1&p-Z-h%&5&~jCpP`&#jvc
      z<mdEp5`p3H+Eg^M1w9V@gC5S9k{z6}5Af$RbB8?4nDz)p$)gz0a+0Lzm;Lm~V~lB!
      zV-?FfIfzC%gmyWM4e}JOm8Wr&e4q9?g1hBeWA{0>-f6q<kgqZa7t{8PeBIc62cBgu
      zi;`R99@$B|x1-2d(Zh3bf=sln=-SJG!yBozn9P!<yp6dfi#wTJvbdMoC5vw?)eFm`
      zC0QjVvs7D`WR;b;%St?DtTdNo>q|4OTuqaFv)o-2bQkTHZy&&WwYKS+>>_GMh6#32
      z(k0(b%j()Qbj>?wc=_Bi!^h{=8Mz}p`{m)0p1ZceH_|t_d4_MKR~x*hA(sugMHImk
      zZ05tKeYt$_I--k|=M@F>>`;`FuI)G_n5PSE)^+r;MIT!?r(}P*0%KhHpx~er2{0d!
      zC(LZYLEVqX<d7SB2c8<T2kN-}a^!#<t<B<Jm;6{X*bFvTiNN3<wm!~V1LP$PlV4#B
      z%dzq@L*Xl!Ca+?){2G<4FO=7bj5n}C-bAzfmTY~Kr`$0z_AP9bx3Nk7KxF(8+k}au
      z{F(Q&zwj>h4i3m)@q+vfFU$LQTRy-C@*zHwzcXR{K(gc`@yS1!3jR|@$;UE=_3?6C
      zrt)Msi{&hrTjsiaQt9%`LRYR-vs~=5WHsCBTzL|44KgUa%p6rM>BO<c;7m;ICuF*d
      z8Z9(QVit86B|kMN+{hF58F`K<+{9ezS=PLI3zg?t^I;pFlb^Ac%Y^wB`8m;>CqAr^
      z7g!r4bxbHVattPdv(jHlc5wzp{4#a-GrU<Gz{FbnUNFHfN<3Zii+$qWjj|pdR~Kct
      zC?ziy>0ywG&6K>-L*LUFeBc@euPcC2t`Rte<#^X9l)4Hq$2A&DU1N+<>`UD;$0(&3
      zXDBB;n_k0boefWQ(o^RmGpkQx=^B@jSmtymsq&lj_{q+A_kMZ3@7ThOvF`4ql)%ws
      H_}KpeG)}7r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c472c48685a500a24660002d347257415ec0dc1
      GIT binary patch
      literal 36599
      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
      Kr_oHb)Bhh|Uss6$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface$CairoDataBuffer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface$CairoDataBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c80d33b0a4e1925a5f01556c9a23a4e0bc42a90f
      GIT binary patch
      literal 1519
      zcwV(sT~8B16g?M87wRHV`4A{rp-5YV1;j5vRKB!W!30C-<Iqmqm9iz<T_FAxO-y{(
      z2NMJ$iN5=zjCZybNFjk2AG$kp=iGD8+<Uga|NQs~U<}I|Y6#;w%QfDK9bt%F$JmzA
      zHge9UF(*vBxa!(jk(Lo}GcO!5>t?gk*5D&_p5&NYA}5X0V}jqwo2AGoA(FhDeTwnZ
      zre!)agu&=l5@Krv-&`>x8$h_GqYnNCG@?nvbwc0e1Uj10La5s{GftjB36*_AN2`kZ
      z^U}=aod9alu0uly1EYzAs@aq@ExGJ&ZAkmA*eFOsFj-8C!kVy6wXXzy>h^?*D_o_z
      zv)l_UC!K|Y+^UpKXt+h__h<^j${7hOBllKZXC*sZbgfKjVJ|JW9kXa@xJ~Fd1+F@_
      zY2{{JvyhQ?0R0%y5Fs>IBXr!sAlKay1y`<Q32o6tELn}33LuP_YDiom&Y#ED>T#E8
      z!X@*)oD3`Yhz<kn0>9YamR5!^d{N%HP(`v=aa>W{BZMx}bQXAD#{)bh)H}uUA)z&T
      z;Wc^@Q}dqGF@<SD<A&GyH$~HOly_+<z^5}hp5htPiF8_)JTJ$t<jo}>8CzgOSewjc
      zazjf0=IQ5ovX2z~qK+4Mc}hP<h+mQ3b7CzIix5~Xx^`MFn#y%8XK^EnhM*@bOWJb<
      zQ7TDxWK)&fxNS_u{{__CtUe-M)pA5bJwF?GHwzzX_}v;G`i?-{KeP{>f5H4A+P-nT
      z1~>T`P#6lKj=Iswd!4g62VLk^+z6qk!uN@*sCw(&AJ7&0i1tu?9|0yUzk>PC7(GUB
      z>KNfv=m>p>hz5raFkFQ?z}NvM4)N%hij<>|8UN(ViKgqS4)vp(BHZTzPgl5HyP`|2
      zo}<Ony3RLk;Y`9D<||sivQ{6zQ~yJ2&k+_*8yHlDXqd&0uvi1@H0lYCmj#>%PMru&
      aRRpV5f>*V?Uh?=}A?b~T&Bs1_jherGTw>J#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb4bf173b5ce9b45cbb69a8583064e1527f6917d
      GIT binary patch
      literal 5276
      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
      MD)=9&U>(-|4{&LmJ^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..326d4355db4600de7fcd9e57bcba561237bb7fdc
      GIT binary patch
      literal 7704
      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
      Ha@Vf_^^~Yy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..655eba16fc1753809517a39514b5aa93d7268114
      GIT binary patch
      literal 12284
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9a29a2cdb2863f2b306fec7ea46476dc92688ab
      GIT binary patch
      literal 2743
      zcwVhlYf~F#7(Fiugv&}P^df}-ZG%lV&}fU*mWs5|AeLJJ(bB5jB%5R*$)=lx%Rlg|
      z{tmx5Q^=?@{s4cJ<9Rk00))aiW@g`g@?Oq4&*gpg?|=UI3&2Mx`_QHkPUp*!En~-s
      z7`vrN!8Dyny0jgM+PQ+AH}j=A$0%g1L@{a?_I>aw=w}=-EXQ6eJ1HY!*3T$(CF(c|
      z!G+c*=StfRwiQlJD|B++${A@>VeITv^Rk1x+jp&GDWjm~6*@AemClf@D{Yomti5<S
      zrSR;+)aQ|fHWa!O3`HG!`G13+=TG1}9$R^<G@~#XoS(laxE%CG?WF0$6@^>pr>GkP
      zxTc{G*BQT{Fn7a)L7BOsaOW(qnjuKq1%+V^?dT9|L_-(4#TwJlQ?+hsxQ&2<uUI{#
      z5V#1m$ooLU9RwA6n8|vS2p9~V7fIpOHTclkO>07fhW8XMEm(PTsho?O&bkrL5~_c}
      zP8it@!?EOlZPHuHSS;MhvsAXa7py^V(lK@w27(KXGiw>6AVHGAPHDVw_j>REpZf5L
      zLhtci8Xn?NwPv5%<$RI?uF=oNrd2ahGV<xH`1TkxK72;?r&l$6j&9zAJ=yg{!&CR)
      zzWf`JVNBu?)6k1coF_@&Nwu7I6t1*lrjIErn-y;sH9W&Th0Egfs+mukj+w0GXSOK<
      z?iG$4+c15!nl|lR<Vh;Uw5&TuzL>I|TrFJBH7sG7m04>7Bk#uK#yvT$FnSI=V=S6$
      zT3<J5y^y-2<*1#to#~UZT#)5>(R6m?Qf`VbFEni6TLq7mOCO7PUAr%yP6*nu#VS5e
      z+3{iv|Bn+Xv^hIW-6pGC+?&hp7cv{noPdrsIhnHarAX82bSzd4I7=svgp@~GLk1RW
      zfVCLo_G+Y~w9GxW)!WTw>B61b#LK&loDW%r!84gP<YDt3RJ*j9t(X17lWI@HQ*-P3
      zY)dl;L+|jGA&Rkoui0fMVa6=E?l)Rq=(~b}n+%7CpGq&<q{Y!{lcwUn+34JNkNfUa
      zkR}5jkjn)z`f!<JKkc7++AE)2{Z9<M7#gnNY6b7>lLr{mhYsM^hYv8S>u+)M5aS03
      z>65fWhY0`XQcQ9jAu+H(ibX;$;X0Nvj1@M>=lBq-xXV?&N`eSy;94S5xt7Rmb1iYi
      z!&$bYn!F;h#m$f&uHb(7cYLg{C~}5G#>87p^O@xn<@3cMzC4oE?^13O^d<d&g&@9n
      zrHoYp8&X1;!&ju!;Kw|^=4mAzq?Le${~*AifH=Vu6p*~I0Ct#~fJ9AzUk^`Iu+pIR
      zcsTm`j2<KHbvI`iNQ+6>Y9jPE2>ndTnj3sS*6|HbdZi822!A4>)Kh?jlY`z0zI)K#
      zn)Pb?uP1nICbPiWeB<)YRB;--0cPW+%NwZiiuH<l@wnCx_>oF_Fo@S~*p%G+nyO!@
      zs-5pCJscRXAQ{#VkqV3-V(XE&p>EL2e8?~>LsW)VDcK>`E<fUXxQ~5T=~NZFp>&E~
      eym6II@w4T)N~ieAa;S8G{z;m=TraxFrGEhggo-!-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3923958161551520f283f0d8cd17610c2639ffb
      GIT binary patch
      literal 8741
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GThreadMutex.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GThreadMutex.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6362e5c07d8ca88c401504297b1e7c579481f3bd
      GIT binary patch
      literal 439
      zcwU82O-sW-5PjRk*2bu9wbrAE2kpV&SrI{~i17m~1&^C_NVkniSvTt6@=yc?e}F$q
      zoQ)nt4=(KN%$s>{-|qXz%Nu|_tk+Nx*i5n_7|VMZ$OjWliFA;dNpR91X_CY9!q8(4
      zu0W%lNoAG<m(iGF!_YK0lo=({Fpnps?*zoDKquv@m+PxP-B$QpWM80qpfY6+1)S}j
      zfq;9Q56OdrMIUu|bqFl`m_yZOO&>MPGZLzdE{fZTbYDg(S?N5M=|E~_>u=CCBgNNl
      zh5x^ijd<62p=0VPOKtva?piK3*nq=7SHY3>1H0G_N5PxD^0~m-8BbZH-F=4Nb!J%V
      nzQVcTVur?3DbV8Bg3FOOCQKe-6$&ei_+MnM+okkc$>@9n-?L&A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f24f934b431443840f7010e8c73b188265d5e351
      GIT binary patch
      literal 2869
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64d47db6b38a2ab052f5ba502950f6fd0230384f
      GIT binary patch
      literal 1705
      zcwUW@%}*0S7{;I3e$leff`Xu+D5z~g77+0RGyzPtrhX)RTs$r9v|U@bWOu9n14a*?
      zym;~A#f!#B0wFQP#H)Xl@ty5tU6(eHCbRR-JHO|B=AG&9KR<o~n8ocF6o&bV+0>rt
      zFLX_R>1f-WTUy1bY4=LCT*GvpP&^^$1;gYIxnmhcJBBdBut$|CtNGFlQL|XpEt;@A
      z1y0qlCuSJN3r7}Pr0q+FX*hQn9;A=4{}@~HnN5c9YNN#CVCYd1LstSJBvr(bVhE)(
      zn<CS%B7!JGQXJ(`^Z6FH*7dDAr%a(y)a#qNWr$cVhQ+ZM7LIn%rh{}&rMyl3F&W|&
      z?kw9yZaS`)TpS}f8^b8W`6H!OoWmIPOqV>%F{DUuMYnmK%H_=xf91;3MfCd;kIQA7
      zJLEr{&O9Y3LAkr!RT1?st4IssScywz;qpE=DpfZ>sbb14Ty>XPe1YpF!>llLQ$P(|
      zZM}g(iq`1VHSSccMzd0F)utB|OsrRpV$I~X-SWCY=B<BbMcu0^=0)9P^Zy*ffFJOL
      z1an=*4Z-v`52eZXTBB(ddCm}5n(}paTJ)Vk&6_5-R_nTLb7AZ7Rbq_ZPKf?e3jOE-
      z0jZRDVzi=CCXNJ+-4tz5K1|<ac5)ADb|1aj(LMC-xabKQdxZ>piwJv-ID3PWv^M5S
      zCozCQz@42UX~mrlQLzw-5972fF-KoU->&Q~)LoqU=4nU8I(z48s;xazlb#taNPbH4
      zO6Y5VeD5O_j~vH@B&Q`Ajvhq62iOljHtew%JGs6Tbp5fd>r5v;8{|K=<*#`BirYnC
      zNb<6I(#=*msQ1~YH{|I}dtKC|p9m@R1snOr2S+?u^UTcCZjnn!7d>XM{Ekl{;VH~`
      u3f?8EL2|$CCC+wg<Xn(HXxqqZo%n?y|EmqJ;HEp?!lHW~p)i6aD1QNMx-WnL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0807a240c958f73d2209a6506e2274f0533976b7
      GIT binary patch
      literal 2341
      zcwUW^-&Y$&6vw}l1hz>Rk~S@t{!l7d@&g;%TC7rQX&@z<^cNwNBG$=fk}QM`CL65B
      z7a#Pg|B5eqD)d;7$2ZUMkMekDcG-p`9C(?XxpVL5e(#-`{rA5={sM3f4Glhq>8jOE
      zZSWnQ;@{b+Z6TVes=b-IU*60#Ec+3yC){~n*iF-DX$UZ!@gh2Q7zXW{*_xPU7|$Jv
      zohA3%re)f97;eUn;h#H@b2eUN2&5Zj5d_0Y9RnB)VF+Oj!wi>?#Oa9O6vGLrK-w6_
      zV%-_K)*<*2)uG`G!|5Jpk`vCEmUz(KDv4%+m+FGtat(vmi@a&dwQCH>E-_p`y5_Fd
      zQ_BJsr8V4@ojTAW7puBrmhBqDSyx`2Th-K(+L?`KgVdjQb-af$BG}@Eo#Wp(+IE^7
      zHIfx|LfW=jPc8CREzh^9<o7Y5VVvPq&!&zKaD~BN6(s0NXTpc24Pkiw>ojSIF`V<X
      z%VJUmPl!CpgpN_1mrAE}e2A-5+5AFgZaG(Yo-RD4lg%BBmgPSYR#`ODG$Rygp2V~~
      zrfUofefrSVx+8h<qU^#A9UtK)mAl=ha&Pr1_gD>(;y%`K3!gBAsB?4W9c~%aeSa*T
      zp^;8e-kKiK3_iQgaK20J+uo5!(5UgIdjSHmbUdqJjv>;`3gIr&vOn_-1F^NVtdAk1
      z;{q;H8iS%)n$$^J%f)Hrm(9krGBzh;^PWvU!!oxyg|1PUzfq|WAWO5lut*dYxhTwP
      z%~mz4J6P1Q0y@jVn!CX=PB(Ibmr0@YS<~^A^5HE*Shh5Mt>d{gX=R~o4t&m?>om{v
      z7yC<zo8R{va`xP{WC<M=$qH?GX3xz%6X|B^*w}aTjw-a&Xg3X!G38^9bUfFqvel#{
      zYgu%C>b%tw^v;J5K4OefxBc`7W|4^eY0>N?Su~uWF-WTnd}@C<k^CK@#MEo(dpP|o
      zS$sH4V~D=M1B%UKgk~dZJ&bp74p1|CKxAX`Kwaif<Sm&qiB|}{!lmRcF8__m{M0`f
      zdxOc<B-!J?A-RWCe&1zk7uQ#4n0fh&mwSXbz!QYAgeaCVjv}V<ROuLVGI%;>@F`{~
      zf0(ZPZG5H_-NEOsqWe^_)E!N{!QIusp98D@3(I@Bw~K|h=?2LeSnnt^>fxh=SfqW1
      zEWU7|D-;o+Z&*Q-7ccGM%Ra!80wx?+4;ZGNK2-Z*Ji=p@E=;vPrn(r_TX2)yP)UKH
      z)2QW_-T11)>yDF)XIS+BX$1sEU4Zj>=6u#ml^$Td132mdzd20NvmU^=eHHQJ19tiX
      tN{0c~djLQ51sI0`$~}M|`vR(m0ct&fpZfrO*i>U3TaXV+B8FhW_di-|-U|Q#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90698647c894a57114351b75d62678d56d6ed163
      GIT binary patch
      literal 9155
      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
      MnZdXRW0G9|4_`q$kpKVy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd4492219aaaa833ecdfe23da116ac070e7566a3
      GIT binary patch
      literal 3231
      zcwUuOTUQ%Z6#fnY5{9%uC{zhhda>prq|z!@YL$CwQ)+>xO|6$9IZ38TX41(7)a8>e
      zzF1%S<X`YfU6!mRYxx8GQQ|%)(_u0sq0L$|=eGB^zkNA-^6!6t{{!HCJoBTAVJ5HF
      z5>M4#HKFcVi3;atB5xHFYuVzOsa6VFrn+S4IW1o^RZBB;Ke`zv9r>0r3}^G%;#S7w
      zTz@67%y+d6XGkR5+H0jS&oF3I)MqumWRwi^u94*>hH%mW(8_9_CyowDVQ5FQ%4)Uf
      z))=u&Rj-z68LnII{oWgzu30x3W+QJ%ESh5IULq6)J`4oWk3j}sB%102Lnw$I^!jmz
      z;hcx+vS#v(i-Qk`AOw0V7{*%y=xv5TWL^9kXyG9I2>2LfO)MvaGz5Hy_VRp?Gy@C+
      zNloV)wek)(x7D2z#X6KUGHNNMnwnVKo84AHt1?_^?{3SSQe1smzRS>;=hmxah9lAB
      zu~KjnH$q`kElOOuLJ(wpT?ByP0{Is8W^l2V%W;!urOdn^?=g&b5>XJxj0jeOk{FSp
      zVqkmptkY9qxF|O}n^7oy9|RFaj3Fp1q@tQ!&wR%);U%9kN;K*0M3W3T@iD{YHet4k
      zO~MMU<A!kO6Na8h!<(Bl9$AoLOKL^k(Mp=7@#_2u<{6ZgZ!^3ivRCzEffC}#FFf3K
      z&V=bDVS1Tr=_He)=rd}C3TV8O9K$Ip6Zb`%h#aHabZI9e$HUnqFf8jXr`Af=w#Zb@
      zFw26lODoTfa$+HuqkG_pP!{fz^^P(Mk{A$8i(4DCR7=|Tnx1!A5jDSP)buR*J?gf&
      zNmp6b^CeMATX^8dHpBEA^^qVx$9+nTupn#G9Y^XOZfnN{$h$OM!wwRn#J>pQ3BF`F
      zLq?9}N`yYzDVKft8mb@PFhn}oxwKl+D%3G7YOvKHc95a4J=j=YSzX^)p~{MNa-&I^
      zLiq?>6l9KpM><h^y|a_-MN@uI!x(E1rXY`}f>DvmKk``Ig4XTDdjos+w5&zgy#=o2
      z3l?3;Eu&^;_^Kva@kG03J0oCmo>E6226WRyUlWKQeFx;&XOD^;Pm^Rng7iK`s~5D_
      zMdO`V9j9aQml%p2U^qQE6&eYR4&l&O$Jv({Yu*fv%iRgj?m4+T^#{Rq;R3zKB#{Lo
      zwL~OVFo{)M!y0bm7B14sXu~uv;T=iv4la`hwPd`Dh)pmd*W^^}FAV+eK=;bcq=X4J
      z1Z)^4TC}aaPP-y1{RfDr!{a@5OnV{jONgn4n8TzWSLja<le1ZxbxGK(Htao;7J>H1
      z!sGk6=7oGHA!7{@2h#6A`fW%t`;cZn+MUBkHux>l6J(SFTqn+T%zN>lxF{<QzT)63
      z4&^!Ar14XTx?uQB;%`w*1hf7I{&XFSUIQ7I1D#?bW-F9a;lLUZKc2BMFLa@0#?~lP
      z4do(@0yrN2O&V>S%RfB`LwHSl5|~~S;x%<-A|x4?F^&pd2$QO*=Bl%}<4IhGU9h}O
      zHP<jaD+2}u4v<XOvEe2DgNt~;A%5?*^?z)sPyO7{Z$vF1>U<xYUj3h1>ZhpKj!Ipe
      z4Iki9I<}9;;`tL_)sgiE=w||WPEfyKfaXWA!wxKc0c_Z-GP%@44v<e%Gtj)eUbq1I
      k9Dq5LY=BKNDU7x+=U-jb<}T;5Q_i|wZHjYU42e<sA7T#1#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e62ee53d652e10819e8e93f0151631e9a34f7f88
      GIT binary patch
      literal 2766
      zcwUuOTUQfT6#fn%3Bw2)6f76(ttBK#lxlCFRk=wUQH(cCTY8ur;(^IboJ>%BXqSEI
      zZ|E=RD_yHxR$Z;OK6I`AsIKmFW(YxtcELk3IkWfoef!(z?8D#x{Q5h9^LQ3R1H)j^
      zsb-e=3eWH-ex@vhmnr(onW@6^l*h}Dq*a-4R;1@TCE@rnG%@tnq9Y<0Oo#h&Ma)-x
      z?h6Js&2X?F7J1e7$Hj`YXf2c7lQd^}LO9#NLBa?_te~GN4CnIuPL7XSwsfR_nV~T`
      zaF3yB%q@sG+6k936@r1o=!hY~a7ZKD+$m;qs}*0AOdP>chF06<g{)lgxVOr1G?}f7
      z^F8SlM+WX0VCXV&3?@UnV$6{T(#i!+v}dIwW~!wH;oad2HmxMGuEp(p+>`2exY#_Z
      zwHjzdpNSrr2HwTV7)~&p*`soQc}h6Klh!R-GI0v0sg9!X?>h2vRZKg+C<;#(KixtS
      z-!pLl%}Q*)iKG@A^lUnmOe&iEN0Qtg+S}}i=8pulK^w-mJJy>V$Y<Z$Ghug>o*@%0
      zFqEEiChf~%hR#6G)LU4?3TuD;H*f(LV=zp7h>sW!Shnj>fk%=9buGNPup}&hB!*8I
      zy7yK~%Ba5aU^mxGW9Zq&i%3(wykz1sK4UOs<+|VnTU08#BM)P^N}RRS?UxfzEm8KR
      z>lnC#K4sImi5TL_rb!c1xK7U2Y>Je0o+RzhD~2{&rVX&Y&TuigQ<g08qR3pUE-ngB
      z6sFa$k%+2?$Eo5hW@5NeKP@7%P29vSh88mQHmAczoAhM8k3q_PPx|U?1R>O<+YG0o
      z3mfCK7jso_kz2yREbf@N3p(+w#IRFSS5&V^bqo&}($UDfbZ_SvxQ~bGkmi-}|1pYW
      z9MCTqj{kQk4FNB-qwCGc&;*8KwdT`InRFe0l9!|{)hRhzd$oJLGntPXTY)`SZCgcC
      zSYp?KRg2`zB29~(+`CStS}wbuFA6uy!sBYA*6mn<J~|N!bcIV>^{yslb%vL;#u`bz
      z7`3~XO?-pXF_d->V;!L0yCygm=%QKFc=JvG*bxCo$Bla)U!AYWXJmVS*rKX0?Tnti
      z)RxFJW~=G^Rxq(pQ8(ObMU1(wSCC}1;%=g1=$<ojZq>8Iq*QafCwfK>DNvlGIvVK~
      zZbU-OVtQ&&hg*NsETr#t`qc`P;tuNDnnC@wB-*xcXbYV`>(F=TvrPky63k^v8Ai8$
      z0~S~J5Ir+>hlDVb^hN<4N^PPywT0vBIFs7I`#Wd}G|}f6eO@5?36e3X5zQbE14t=I
      zb!}+uGzLTLY>3^R`UPkILTidRGV3_2es17{SNM4C4b539d4?Ef>lnI2h6Z&JXogQQ
      z5;8oeY^n^IEsXw%))%-kw~1>n6KpQ~C$Wr$q!a5HOTYdJ&FR-K)$$r8b>Iy8DYc*A
      z`)e|elK|iW`9DXJ@)Y$I37Dq~G*2R|I$4>TEE>F8)-*m3WfiFyRZd@e17F-2`~$Nj
      zZtxXmH;`L<f%|jmP0a1o9yq*2{aPk)oBq3SG|`CwBp}jHUy>Y}8PvzGNmK)o)49+h
      zX#Z;w77C$=;n4l~3kY(h__D^=tk+lSiiw9D438kg{5(Y~{=;P8(xu+tU}saL+eyDE
      z{96+A9qrKP)VS~KgdYw;4f3>%$6B}vkLVjTQ6(fA4V$=^&>u8rXAn~}BMu)`Fs2H5
      LqNP98d8_{dF+85v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb61d5056b99b436d66a0a8b6e96b86f65dcac4a
      GIT binary patch
      literal 5200
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7566b0bc4ba19bdc83b66618c0b7e5ca60b686d5
      GIT binary patch
      literal 1825
      zcwVhkOH&g;5dNACB&<O&5qv8uXh6*>_zvO$)Jj!U%1~J1X|s-TFxjMbCmN6b9}jv`
      z!RNt?7yprE&u(fBAu6a_wYxpj-QRruny=qiKL9v`t8w%YE|uMewPHW9E&Hjm>Oy!{
      zSv|IHJb1hyo2ACXdEwL^2yZOfxFc*{7wa;P7-3YqHZ57T%R<&Hzb>u3mLn@d-;8vn
      znk5*Si6ug8j`0%cC-g^{32bBaRJLhi0E2OCCmh=xuOx=BgRs3U)b*NIwbd=VDty97
      zW_jX%A@Hx*ZrLg-PrBut#!n})Q~RVNpKDDeTwm5)U+YJb*roNUNPkmS#p1KN@DtcW
      zIM2+o8ad0%vYJ_znPvZ!u{ib-27fY|tJuCD#{t54M-G)I>}r_CyjyRmVz3d%A;M5+
      zL<t-YYq%vwcRi_s>X<NaG>Kk}5uM6x%-6=9E=k?o*6)piY;<#5-YU|sxBerPZsfs&
      zbj7VkwIsYnyHpX}F@>6ASC(u~>UC=~rXERd$XsD_4c%qXa@^mJ?S=+HM-YbFi*>uS
      zA{>>QSmq(Bl~y#74NAgJhucWCCNuB)%61**XLUm=tZ&J-k<P_&I-G&O2*!kkDcx?<
      zgoVsMWTXpau81L;D!dEkh3|N>u6U;TDrrU7P_kkLB@(R&*VQzEi=3qBu+i|e(c(g$
      zkt;PPN^3g~!7SDqo+GYHUF_jb^1)aVl6lt^UeM(Fc1mpw35UVQKtC~-deO(<IIo@~
      z%@Qy@nM$Ng;|-GhruZFB?T)?2-g`!Bf02cQEQ}Tn;wSjL#*tU-)`M~WPQnD}4SMM<
      z-@L0Bpf$eY-XTrzv7bI*oIYZbK4FSJ;~3i~!y|DV8U7O{7$Kx{p8q`>H})bz*Hl4Y
      z0?(09+w#=X37lj-;S{nhj9Cs*TbXOH?oFO}jWaJhu)elonGu$Wvn{N10S}FJp~c5Y
      fUFZb))&^okAO<esa^RE;>}PN#fYz`BOs)S1bVBgx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6328b156a3dc27740cf1f4a841b711e6b536ed8b
      GIT binary patch
      literal 5158
      zcwV(wd32Ol75}}LnS8T+Av9!RSW{$~gwQD!V@a?!3(&!k!~~%s0{t@il6+*ge)A2B
      zRjY!nTDQ6uYHLwxv~CS81C+KPC}>rz;?~yIa*pS4jvoD^{l~4vd*4jRHZ0{FIVbbp
      zyYIgH?)}~6-H+$qeCk;MOL0zv6sYZwr$bwfZAQr0?u3%2X@~lq!O-g7!FFp$Pr9$!
      zj3jzZd;Uej2HSE>TZ2m=z~^>^teDYnT8U7Y$C2$qff6M)YQ+0P9qD-7=!u#F1?CQi
      zwpvE_Ivv}J_ty(}nj6+NG`F>`9KYYzv(=0^wD0OQ97CWiyO(yXXsE%qjh!u4inqPy
      zj)<9btVH}G4=dHSa)iuRtcXOdxaHhJiUh0HlguWvPQx^TsS|JXp#)_*$}v@-aD_VM
      zg}`(jUibuxTdcU*nvV6D_PVTTB`t}F5nXTC7O!)}_F&7kA>5g?>L;U6wcdvU%x1Ob
      z2rLM;jCVmQX^nLQ%cxqfp;BO49?*Q4i!!$9Z94qWeOQ1+8WsvHygHS21W_e0rO%4@
      zu1eT3!)Y~QWb>lnWW_gDO?Ek7y;z3^4>`gauu=jyUn5%V+r;*`GFhPh8l^B^0;Q2e
      ze4A-I3dpslV`Ss*zKLMRa$BKrxNU^3egcn@v2JJ5>`a;wtIr}$^Kq!_+YQ@@)mL53
      zEfkSfyjiI=|LXX?)`%to^RBF<fIG?R2+X~LzLab^yvVDj5gP@}x@N%MIvf@KrqgWp
      z8R_UmxAjld;{WE7>7zPKgkoi0CEofK?(KX;VDmLW8*WqAUeR2ti@u9hGo_(%q<oC8
      zr#>`el?E!;<@qntu^P8gWhGoX%sAzn*{kRRmBCy&;Ph0-LgP5<{aAw*4et?{bvZsA
      zYtbs8G4cxNKpw$HiVK7f?dZ_(UW(Ve3_3coj;aWW+F<oM1L}nc^QrYZHt?30wr(@6
      z{sD)z>(a3i-2z2KZAwHF_FAeaQGwZ$H5lC{EjD3`hRsyF^OvY5!?F{rZ6i5gMN&64
      z>$n4CRymj0PAis-n&G%(_M5gU;`Dq6FLT)?kf`b=vm&5puQ&IG=RK~Y5B&tlfRSp5
      zCI<`!$VMM53~Ja)Rpc@Tbf)b-BSP+pB9;w+#&lobm;jg;42LJ-G>)fULt?V`$FcYj
      z$DRBX+EfooV3=RWb~rlH*p_uARd;rZhjzQeIm378*ohC&5su5%6x?Nb-Ya%}93Ry2
      zAtgPfSeewtKOfQYQG6^L5?NFQuAl69PAYB#a=>fYJ+9AKH$YXQ*Mobgo0#wt`LGM0
      zVADP+P&HP)kxpuCZ;*RV+4^0$PsgXZWpSq*!=@)*;IleDhtE?EC+$SUOr;cdoxE#O
      z0Jwq#o0p#cFX;FpH#WYc(u10rLGB2?tm7;As(?SGYFf^J9l`GKWDUaMjo0|{D&^;5
      zkB+@~kRr|K?Y)FwHgaF~kdBAhNN+shSbaMiqER;e5gq%O>e`yH;!OCaj&E@cYZisD
      zwaw&)<53+&n8LVxTgP{py>u)tO$kmihmzyF0&_;M=d`o!bdoSzIofAVNlhs9g1V3C
      zm#Vwu6e|ngoXb}~0>Cz?8>+ZO2J=IZtx+OO!8xFc5)otB5;XHNHG$ZZoD(EncGKYk
      zE7qS!pYf?kY;=fjqlzPF)VC+>LF#)|{EqL|vozK)*xkr4iR@8VHL^|VI6Lo@j?>Cb
      z+YL+gpg+^`T+U4^V@YQx(|)1jmpDV(+GZ@V&E#MhDHvnJf&KWrj$h+9*<@@>JIORb
      zQ5wv{tl_sKUnS%gelW7^8czCg7Jtxj3x34k8HqSuC^pg`m7s!z64)~N9OGgoh}GAb
      zNZS!}mBk%@*~D1Cflm@>;W+iDO;ID2GE=A|#S7@q4HtclQ437JGx*DbM#<f{8Yxm~
      z^wMrIrV{scv<eZO|M`!ir0Wn$pFqX1Vh+%+k2mE~%Hy*n4vLkY56sLR?xjl$_^Rr~
      zhcK)9DCUxg>kndHb&cyV<{w1$sH_rJO}qfNTu$zK5dra%l3AIRfEp}Oip;<bq?AxI
      zO=%!-BYj|IZ(Kton<&NO7bO=mw>YPyRcCiEN|U$=Z&%VJmf;=B0*P9@Q^9pJmgnT&
      zssPL<_xu<w^UGyvtYsbQuPE*BmypJ~jhD6p@5)K5rBUXU_L`Dbp0jFH8q1(?qX2w2
      zt!^cni&hORO%9R!DGbEYnhcuiTmjb+P~z6P1MUpkY72RIU#-UE+llPSO#<%2cz>NY
      z;607I0-jSS4R|u>*#o_-uuMCQfjZw&#JhOmI)r4MPkY)|=P#($hY%{LEgHhyfUm5m
      zOb>VhZZ-NdNM*1+gS&PY38ED4yYT96U6ko%+P(|V2YeZPn1Alh-pb25&r$5^sxJBX
      zA>3Q%W74OpT^W4l0PgRq^PdQKtDi(QE1)#1K8!B~{3nN?(eE+Zn#W8$9zaC~4{YFR
      z247P=Q<;Y)etih84LteA-V3i0$Np3B@Nld;gP~!{t~2-x&J&#H@mDpzE<D0dVEV-r
      zH5Q9fQGv&DPI?%Ni1tquihrS4{2S%sKbS54OW(wAV41jp<x*mmEI^xdVUu*DM;2m0
      zYKTh@?xpd5T0bbgctrZJpT@_eAH#AAo{_~kA*bTBybfpNG`uWJ@d}OSX#F=?j@RXM
      zyeR|1Ez3o*tP~Y;o|rCYiAot1i)59kk&DHRvPK2Z15^tr7)FAJX5Y&OHqE||A8=^V
      zESoTeVljS*$0?YK#XJn-03lK?X5tAvNdY-ql;R-G_?zF43=UDCEyEi)j3ZQYHenr}
      z!cj`-9<<?UqWNKx+-K;7jzKKMvotHBwS!|gt`eW>XD$UCT5-x$Do?Iej$Ay(jWy)O
      z!kUxEhKWxj>}L`0EX+}3))(cZD`Yb?xe8O|YE;mCt_+V!pvsF0REZNfsS@bNBXyGO
      zm1H9jEm$!GGpEK7reqcP2?tJg`qRA^{=u_?41V6agre<HcwBU*iel(j$8nZZZpm@{
      z?g)M_F@%yjH%HiMc&h{MgV;Y}$;>?$9vWt(NxJ|=R3m+xv{MS}FsSTu>FrZv*19!R
      zULn^)%2q0{?a*ZhisgC)<n5S2^Z9Z!mdGtwChwrAi=a{Vp<NE3Lk^-#MzMv?^wZfv
      zd8a~T8KXt*b`}wdt@tBeAS9Mh*?STEpGJ+CjhFBz(y)WP_A-?eH}Soqxc`h-!H)+c
      JxB&OS_dhQ#DdzwH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54adeb7576e6d5d886787736113ac6a0174b8cdd
      GIT binary patch
      literal 1878
      zcwVhkTTc@~7(GJ^Eo-@0F5XZ90b7u+fPz>=6E3C+0<i=GJ}t{o2ik43JJtH=zwmx}
      z@Wq&@PZ*8<0DqM6o84x?QUx!Y?Ck7!Idi^m&dj&(pS}VZ!nF`;7{)VJQQtJ~8oF^$
      z>IKeiJtMdD>+4&KqO?}rnC51Fo!dRW;g&5Vx6=g?LXe?TrIvJ&GcsJ{b*CWol$!fd
      z40RL25^|Cu5Q{G}1g8iujCzK8A2W<Y<Q`6xG&G<oghqzGgYk->8HX7fGhEK*?VKU!
      zjU0Cv+GDHn+jDMy*03^qTH3<OBo%&31g$Ek#m|{3Np3kJZ#l}}9>EdikNW-_BFC5R
      z7q}C~F@{lMmQctEVwO<M62vUAU&lf?!O*nBXew(sP6#Kd)QTQTn;SW=jSEFtD9W^J
      z3E?zDb7e_kba|WjN0e@IW8K{z4FQ~qpcXxh4aW91Y_FwCR}W_TeURIZYH6!~iu7yK
      ze}qy>ZkiJopD*UtxV>boWjRS^E^ivyWy2QgzibT3JAxFMoI9AJtDLkX3EVWS8A}DY
      zx?t$_Hfu*Vu3f1#UErqJ5Zq42R~c#~t=+wUEJLeFDwE}to3b2fSSBr`?^eaa+9o$;
      zGF}bOOH77v-a8|IQL6?W!%B@K42!XUXjm1>v|#~Wl4_IoIK2yGnmeW~3X(1YI+W$I
      zi&A8DcUyV6?4NWH#yEA(XVB?U=u9uBXt`|O^q1R>!=R<}Mcd@FLJ6d;vLg2=GelCB
      z#clUss4FeHw@!3{mVtVLG^<4&jUoDbfEJnoBmL2ER11DYgx)B<ZPBB_FF3vuh<2oD
      za*8IM=>Vh09k$W^fzoQwOJhGYfIUPldqmguV>GZQbT2+d3wwqR_8h(J1^U@b46|40
      zqxguoB+ep6Uxqj#cyvbTTcdD;Z+&z{73{T}+3tDEnQAtGbL3|jM52r_NhPW%?KAY1
      z{()@_y|2J}vkOb}u{2!3MHg!nV`Z$dGM_;7QYFZ{T_6D;B!J6Ex=9mm{1u|3pcQNb
      HuA=@2^XCMY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86b97376812f23263a4d1df072392fc2cf0ccb69
      GIT binary patch
      literal 1003
      zcwU`SU2hUW6g>mjEz4>V3$<FcC{}jSuD%$P8WXM7G{KLA24mj_7;##5A+w8Z-~3A^
      zViQgL0sam(Mt#r+eKg+LMM)47<ICRfbI(1qZ+^Ud4d4<k8b~l)Zu@<Ai$CEm-wEBG
      z5Xx<b+wSew_I<hA=s&tCn%$OArFD<D#adT+JgoIZ(?E(L8_jjN-*)dcwnQ^zNcr3o
      z47uv4R11~#+bayyJ4%MU(V;rqWJr6`6B~Oy5isQA{(dMs?scX3UR4GmjhJFL6n-GP
      zJ~d5UmA(wGF%-&w!f)Dj+P+F$O(c=EVBs)BvTWDWU^rsIz_fupxf3>-m_=6i9kq~#
      zsl8(sGO@Q{;Q*!>W~$N`cl%yLsEzoFT(#TeojO-i$HQbQd@PCVmFoWqOGjsTt956n
      z4M{WMSi7znmn@vc5*<nXV}0>+tk@(o^B64Zxb;g(N)fDC>-JSstVzu|KhA1dL($y2
      z?+dls;Xxn*1Ir9c|8^CrHFg(@BxRC*ycAi|lRT#1B(kJ=WHXUXl4s!{eGgIelwv*S
      zIQy7!k^|(NSD1ackHP?RBX{1Z3~=08p!zfFPT&N6Ptpe91MPfEJKm9I?{NwrQNkzK
      z_)K+RF-E8SA`p3+9g958FG0+UI6Y)@gW?2P(|L}$$_t!%FxqBDl`pjEYlK{gJAWga
      mI2R!oQJ#o5KN0U6;eG!Lo*m&Oh^d~b;Cz&&2gU`sNdE+yH`S*A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b332f9184d01e2e2b0d53e655cdbaae2504956d
      GIT binary patch
      literal 7774
      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
      R9960!Y?~2MEo@s6`XM?4Uxfew
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3330885a2195005c2e44af6381e805927568627
      GIT binary patch
      literal 1566
      zcwU86YjYD-7=BK(P1<F#O=wCXMFLhy18qbRfmWm!NQ3Fcw59}{akj~sWa)M{v%4wf
      zyT8J3e)5ascwyQZarC>tgWo}Y&Sske%9xpR-uJxM=e=zHe);>K0Is5zK%c<Hrqd}r
      zHh0Z}`6MW`rSuBTV7pLkY**YZH&~+}0Zm{yw6RU6Sy<hAEbBo6ae>pXd-hxe`szCZ
      znQ~8W?U+qjSa5CETXq}Lo)H+Bt=pDk1-Auaxyh=4wm?k+Ck4*G;kRgcOnK}bJ7ftl
      z9IA`A4g)Czr!XQApN(P;<Vxx{SsjGHsDT6q1cu6%BUd^*ThiMww`?hpD!X;lu9}{u
      z-jQ%TcZ|H~neCQU_ZQ`^RhKggsD5{^F57|SI(`D<0_mRd+~!74rxV<}3YD%CLDs+p
      zTof2o@E&YPKM2cyIDiR(bD<zB_X6qobj><$ko7z5w(AA5p(BG2RG>>t6(I{Ju^xDq
      z(+nYLLCf+5Cd&UmPqsep*F7m6firKdlSp^mjxU$pT{fgYr#i{XL)n@qeJ0a#q09(n
      z6=_S;mq#X>Eh%jdVOu_ptaY+Iqm*L?)~+ndpi-P)v-YIzA5CoXQAyxL^H>vQFR3ox
      zG;j@{=$OH03Ct4zTNlj0ZG6s3yMel38CdM`DEgGZo3EuGdu8Yqt{XdSbKZ|igSdyK
      z1d4?HZvz8&FsCf;8<_8MWdqBYBkU(uBWNkfs)02niMOQHY;p2}pUB96rDLC(jqPvR
      z5vD%XjQG(@SX8gO9j`9$S!z#{ug-N^h2xTOuXy@-#?;dDOEGv4LiO(iU-v0hztQI~
      zYQx#oJE@`6a1w_HNdAWOFVytmH1D&B^Zt~+H|TqlQEp*~?=(j+7FvN3PvH!?v*b0t
      zGGT@)5h(3w{s8Cl`#Ap{PCiGbmU{01@Bek2Aw?fxmiHa{%`x(P7<shojT|PsNRh{7
      z2m$p8K`~b_71C)GLi%AuuSWEvh<+SWsHF+fUMK!;7gkvv|2&ZV73q9tT+{Y(BR0K{
      zTR-;T#g!+%3?XH^#yv<$HTF=SRAZ-yzycPd;6Jhb{iI9z%g=C^r^NFG&kD0FAMvd}
      z^p)6k?FWoZr8UC1lGYS})o(SC)_O+YAHJCS`Hi7e*{V%8qlQa($kJ-uv9Cj%*SdLo
      iIG2dOLR4wCVjUZda)CZyk&9u1&8!l;8r)`>;lV#MXhr$}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0494728ecb62bfb87b3477782e076aed56b9fa12
      GIT binary patch
      literal 626
      zcwVJZOHaZ;5dNk-3bld{eB<NbL7HI0S>r_`AwfN0hzX~qZ0KSwq%9hMmIq?u!5`p{
      zGENsS9y}N~nf<=m-I;G@=i~G39Y6yICJe&qFr2z0@hDvJl(-WqBX^kGyUoFU$BU#4
      zn~|9K%8M`Lqw?h8U88ZK;z=N$uf_vuB1>4((SZnu?oEFry@Zg9L?UB?(d)4Dqy~vk
      zpcWzTOEvWQMgCNUDmf#VN3B+`Q|l74=bX_(1|=I7%7n~Oty=_P*@lTi%2sU@=WNYJ
      z4tYYktwMP{edx>RR`df&SZR+v5p+eQQvdrfoA`?BIcxu?+Y^G-8BZfmUaB-{^_Q^Y
      zRDfW&!ca!%frw)no7f}N|D;YR{nW<+H=g0yrN-SOUHmf|iyDc|!UChsEP#P5W5s#J
      zqO&u@l2e^w#i`FwdEs*d>%6aXE>M9-X`x69D3Og-TEqt5IrDgIVoR%3v>s`eDjJ%l
      UwPcuY>zq5N>MD5R*u_2yUk~AjE&u=k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87481e787dd8a489913b5f9ba11cba454cd97607
      GIT binary patch
      literal 5577
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkButtonPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkButtonPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0e6f0a3cec1a1dad6dbce6e47be5a55c885102f
      GIT binary patch
      literal 1557
      zcwUWEX;afs6g>}03nj8|0t$#g3rfXZK$P8LS+op@_$6&0CD6V=`hw%na>fBiXB<EK
      zPy7>(_r1ih6lR=Ea$j!FJ@?$D{q^VD4*+9Wi=cv`KQG+Go_S;@%#Sj0z`2vi%l*Wn
      z+@Eo!w8a{EA_y@IUJ0DFiwCygLVDORL&tgCDHB6D>u^(YhSpe0qY9?TC(_cfM1CT^
      z!BCgAh2UA4w(`O(lo%>w%H2%KHmzKq%Vj%f?R;9Wg=A>Igd~|%_*%lJxlEZEUSMbo
      zqRF>lJ3Q~$uE>#`Skl9vL(G`j{eK8WG@X^!k*7L<z2%24FA-VRC6V<dE>}!K@fj6H
      zo`_=B)ICAWBA06p-{FqKb8}Xai;`sv!dAt$H8MPD2}@2fwD@(Y7JA*&y$Q|QIUYqN
      zx(u|V`?P+A3&x<K^(jm66}On-&bpZ?ko2aMoiz&^remph-x-p-76}+g{l^+iFt7|m
      zW0|xXFx)mUfI$X>{DBfG<T8B`#7N);mMDfWY+wX;7^?HZ<XU3!@)1WV;i!QKstH^2
      zvC27S;F@w)6};%C@>t4zV3(vCsV(M@w8~J7+OOiD7<h_jROg}UZTwWc2EK8*%Sk<P
      zbOv9z`jR+9r@Hanz!Y9E)DXfO{dp~`nLS$Z303p7ff-eE1A#miYE;n_xhTdlr{+A*
      z5Ra7yCofrjRmCEb5xk;b%q8LtEa5fDQXTMXZ#%O>)0^ws>n&T+R(s5n4AHdhI$6G8
      z={-8P6r(B_eN=NL-Bt9@Qpcbs129U2DA^EdVUUFyj<$8E*S5j8jT#3u`L-D?+P0z%
      z>d=l3dS0jV6e{Qf!owpc==@Bl3f!P)RC|-8U<o(r)aIekgI++N`fy88lD4SN^_(!u
      zQ$IZX1^quUbd2~h?p`EaA-SuX)bQXwDMNzFDU)@KdlwnfBy0T&S@-ckvp&QlpKF&S
      zDpc=RJpPXHEfP1`Sou59__FH+v&UFC&C*Fcz&mR57HNG?&Duscz4ze5nXJ7*)?TEr
      MOxYOKrZ`sr0yP$6ng9R*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCanvasPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCanvasPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9d343cca0d64e532e9285ff40230640aa8bddb1
      GIT binary patch
      literal 664
      zcwUW>+e*Vg5QhJ0YExr8)!KU2DoRx_c(}6C8%1x52#WXHxYo5cDce-Rr&16FFMI$W
      zN}MLORjMFimpOd%&&=li<Mj=|CKgS^2ul^O>0FCj;fTAysY|JyN>Fu<g6h8TZbjpS
      zBPQa6mA^s1R`)&W1reJdO#I}!N`!=~r3fU!$giHWyQe%A6bb2ksZ$j3g;qYk?_Wp@
      z1_o{PV~CLb&V4lw(czNv<Z-iBmikPTZ@5LO<h$bLTxiwu+rfBnr5c3g(mxh25XdEr
      z_KZdttZR8GwU!sB>YimY`PD9UplZ@<DBmmegI~kOB&G;9r#d6^#=k9MVFq(1W_kGD
      ztc`hO2xdhFQB&*GZ)#T_s&LyMqi?jzk>mCTpFaNM1_36LY!N@D#rFW)Ma1|65^L)(
      zupilqVVG|#jBaz~4o29@L=;Am0zzvHY1SZ&b1u@_3Vk5C_Jr&+rXM<Li7>t!D%la!
      KRw68fRPGaFbD2;8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50d6dbeef8a3a8c078c1d0e166b0de33d6d4cf71
      GIT binary patch
      literal 1170
      zcwUuL+fEZv6kWR=m{JEQcMwFWqHVbh2!c8Y!3tVaZz(B}w`n;k1MLj9r|1Xx6Mliu
      zCI*Z~<Fg-S+-InzRcc};GdcUV*4lfY`SJ7fHvsck(-9!d6x^!0Zy(vF{aTubLX^#d
      zJTM>1gXEsbALP6@PlQ`dNl|*vF&!FVvSmqgYC9p?oOT{0p*>#~wiJYcSlZ7o+HS$j
      z$g<-Wtaz3aRvg!ntAz1df&%;#%g@x3-mVBEh)x3?=pqa@R5WCU5kaqx9>PdVKm&c~
      zCxi+@W~8q#7>n<O!Jr0)FwCJ!J*35U6n}TxamCYWDJRNXcCN^Q-n5sui&?wuD7)s=
      z<epO@nCbr-zQu(lwh5#E7z3g2(5pyguji%Xxf@5qmA?3F2aAsyxQc6p4zAvIcDXwx
      z@@($Ua{D4LE!F3B12+&O&?~}FEPh7nL%yhrs<3n<2*dS=P!UrJ@pE)cb7?)Q{25VX
      zd^HEPgjoY7<_HniaVj_Il}fg|OX&a2*mxbnh~uW(?E+!0VYki5R_gDDQflkBu&iT=
      zM|4gr25#dH&qYnIHnYatv%bCMd;QxJgk|6|uJA@2W+sF)UbUPTn~qxVSc?VDDlkm&
      zWP|*+@n5Ks1|1<jF)`H4FYx&>0{j47iK!D9iK%0BA7kJHdjc3yey#`i(uO5;Vi_0N
      z8a%DQD8>N)bP3}iB6U?2lagD*f6JUIdol456W<X@f5PM!#9yA8Q$2yNOgW=y-$8GC
      z4^2D4{4uAW;O?1<sIU7zf0NAqfPEXxxru4EO+3N^QVq%$Ysx|#Us1~Vx#wf8{sLP(
      B9%ujn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCheckboxPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCheckboxPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..511f60b4b744f68dea8db5a67734b8561a7fd538
      GIT binary patch
      literal 3001
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkChoicePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkChoicePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7efc35afa2718d2ed81317407eeea6f401d77d99
      GIT binary patch
      literal 2221
      zcwUWET~ixX7=BI?2!w_38EOLxA{92;SPQlqN~I~qD5bSfs8-P>IfjL>%Y+3Tr**vW
      z!p|RIo$=$Qz1FeO@xrOM{u}>*`kb@NCP3{tOgMYazVG`y@AE!q|NQ&6-vOLLC60)|
      zNZHxVZdiL()_UK|ZcACsmc7mFoVS@@ckQCQ%9A)^0w?}E(B0a09qD*}Y_q_zgK_mr
      z0xdhTB8#3Z35bF~^OWt_-n2mP*nF7e$LGeE1!8%(Bom0D-9Rfk1o|7}_JJ9iKqtE6
      z=n_aCs$-xBy#hvAdIe8z<=tJ!6NrwD7gSElKtGNN#DmuYePe}jAERP9<?NzYwViS<
      z0fFNN(imW_RU-Y=*wLthPvmg}Pbkbz7F`VbEjT6lK`W~a8;GMt)f+MJ6h<k6uL-*)
      zG@DM&+m2k=-CC2?C2OrB1-j?mqE%V8s<zq(hcR#6-Vqp`{~sgFQSPEZ*AbBgnu@+6
      z!X}eqRa&0Z@{mZEV|n(ToU3;s&{1?9htG?4*|93bH+=RBI+TNK++KGoZgEqk8Gfm2
      za?4dw$;RzWrINrIycow>YE~C@X`O6J23`VbwikD+RnFQ!REBAsl7E_O#W|dhWBO6P
      zzHHgfe&v@jBaqk%PadgeJyE+MZ{RdW)zhqj=hYlrw%r}uvt5TmR&{6UZNb2VdfQ|x
      z2MDxQ>rD$>HZX}S{YOvv{)^dq=|1W%fgU1w{^V5f>>dSCo?0}pgzHq9oWol|jUIMa
      z6zYnB8+e1Fs(N9iL!Q2}w!uN>v?bftEvHnGhr(3hnUy7ds_$SFZyR_MH{*Dx@hc!z
      zKsLllU=@~uH7G|0_s%z%Z|wB`XjSgPmpPToEB&6jULERsdGu?Z?8;Kzyb<aweUd#7
      z;mBbxy1Uh)ykzTZb>NPiRPh+5JW>9d_=~8U%8zA|&#h3xwQ+Z!?_*qN&CD+_GBqU6
      z4Sb7<==42wnwh~G`uKb7lc*RR_~D<wOa=_z$B_9mhQ2|Msn!~vyoVMu!s8!VD1sCG
      ze^M8pB=8wRoka(I--8?mxsKA;&tjTJI?ulgxQINSX0+)O!5GE?{bV9TnhEATL+TMq
      z(#OmeM1?}gf-mtLdi8oL*wegvJ*`)vK5}|L5u8t|I6m-W6-cnc$`P*pzv6|TFm)Gg
      zX1az8swu7)>rHiQf-6+-2D<2s6mDwbDL*|V-j7Qp$&V1`LXhPEB$d8{q>}AUpqavW
      z<uHcDoHe#vWW%Kfj8uq`!m9zsYi!8Jm|_e&M8Ypz!+gDN2j>i|b09YPZ|ItaA05;b
      zSfEsXr2?Z>eB8_oaQyW$2~ER6GhAI_$PWu?#c>5!b=kNUA;NZE4@IyUt@4MJ0O{|L
      zHq(kIch?@!ZrV(Ju^N`^fX4|1e8^I_(2m<=_z_KXo4_A8=rSA<7!Gye%?)601=>$2
      zkH3}q1FK)d%sjwq4eu)KyBP3yrP%lAI>4rUn8~M9@G~m+Irm?%u`g+~uNs(4giI!=
      Mwyl|L=o*{<0v5E+rvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..863a1746ffca44467aed672e575490837157bf27
      GIT binary patch
      literal 6435
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboardNotifier.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboardNotifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e92e5d438bd9fef9ff1680f80857bc605008bda
      GIT binary patch
      literal 1567
      zcwUWET~8ZV5Iq+=UcBA_CD0`ONLvWO*lwJ*G%dADLY$ALtVt>(T2LN(z23lr*|pZ!
      zCG?^HBmDvOV--g-QX@4|c<Z0(KL|Z{u_2Mt79=!x@64GwXJ)Sddilqn06u|jU_c<V
      z?zi%r@+X;>J1XCB-7vqdw(@t>R;lhas(}n^OM&tpdTwYSE-(_s)}_CmU)~5^Sra%b
      zeLraVj(dbCZP4!uh&6%nzW09UZOd@C?;G@cX$5lj$w?H5EIM`1_td;VEIqR#5HAHa
      z*Mz{3g<+%w62-`$<kedi29XpPwmsinYHe5Da9LLCBrs|Rj;yc9(9_@1<sild#(HIM
      zyjs>o3}<!rb5xYJkDE|Yq35p`W>$3lcPzY%_XLtnSKXBEcHom-dhO78!NLcc+^MFL
      zp`t@=culJ5_eWqleS$`?R1z0)$-tDr#Q(=zm`0kEoc@Kt#gmlL&C6Igg@iukEEq_b
      zxQr_X@~^GIz3QgxD2p3Kami?^y9@O?hZDAZjhMCYx%S0(q^C6ZFD!f+aca7CLcPE@
      z@YR2bsr2Ja%%P~qFkv#!yoGDHE|6loOM$OkU$LR(-gtD9np9GS(r-RwvgO`EPrC3g
      zF-Q9E?f6_aJ-HjWX`m!<=C#cac61sGx3se12A4oplytUO#BmMW;k=LI?~+>>wi?Q<
      z-FoD>4K0PQgG(@OzacAk+^htx&~a~jdQ;E8=^<R!KzzvA#Q2<JF!iW-GWDP$%e|+K
      z)0#*z&f-@d1JHk|XArA<IQ<kOPxv{2(FmfQS7|di6W!|n;Un;EehJ!<%;?x2-p<6k
      zIG^d_{o@RyEC<Y!z%`<-6T1*)vJP>it0@iQBTV#i?h>i%Om{G{YQM;IF!>wI_*2ZZ
      zVbElG-^It-{WcQW{pU{@oM4(sLMAa4*~8Kos2f<Mw~W(R!Wi!39KPfIA}*ow3XN&~
      zB4`CZJ(Bj4#C0E+GppqnZKNpcvo_-2cQErSk{x6pAN<YpV+@g?9gFCtI=HHj*_<Yq
      z+kc*YhPl=39txt1uiFQE<y;pF?StQ$+hC<3HZaci&auuM3Xv`1E^MyYp@w-j3|M2-
      z10sGTqRN{G{88Cp%QmTZ3poV1f(B+8SHvTtf2QJJsPu<O<1F`pI(n_1Vjitl5R>ek
      UiWu*m%B=Ja8R)To8+CH=AM86`1ONa4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..097713c014afc4df54b9ce0c14ba1f082809f87c
      GIT binary patch
      literal 1498
      zcwU`UTT>HR5dNB6h76+!5@%6BRK!U@<NXGU7rcS-PGRBO5KfViFkzF4=>PC{Y<Y`u
      z&DNIsqUDdW>^>O>Hu7LORcE?SpT2xwpPu>p?friMj^U1h4#Jsbzm|LKK5=vIdXQUF
      zs*+m{R&v*amFe>8TG>~AaF>lE_tl!~`N5pGsw#7Cb;UrOuu})t0<V;d4hU9dlP{qs
      z-{v(zpr^cMcs(N|*1e^mNJtiyw_FT3o{>bw34QqpUS#DIos)%<=X=2vA?9S}3GwOj
      zk}}Xs=x!@$q6d8z(%8jSCc~h(^C&Z)0^tt}2_!ix@A>L>ZFNz2ES40ZH(xHerFpmF
      z$v!mhakj!U!%t@3L=1ycs9O^6wP2uAw0#y*E$x5>v!xxh(ACloS+KB;5d}rBN;sGQ
      z%`1_<7PuRgns4GTat4kNMt?1tg`+se@qZC)C$quu>JxUjS5q}LVc-OzKRQuzlDjJi
      zw3C5T+_C8RzA6N+zg$u#PU4L8<SfB(e)Q=$&Wnv9k8j=2{Lh&tB=ApMFfjFF^!^Xg
      z!bMynq}IyS7AC^3P1!F!oYU3`nU>CKp{SN>a-##ztiaj|hEyb66{ve;imqF@j2qkr
      zr+ujP1<Xq3j$oA=IZH4flxvlOy5>odbbH5-NCF=A8Q)ix>5^NmD!%+3?U#yS1`y*9
      zHi_Lbr>u3zSZSFGr5VbuQ1UpjjPq_gx;cIa?~dv$fYn6LLcD>UuVKH`-u?VGS%O}m
      zi~i<1VwHzkhtbd3BDIIJ4Gd%l>KMun)_IqX*RemFPSi1y9jjw>BjXUG1l9RB(Ljpc
      zVLSbUK6;Pc)Wlx;S67*8<%ENbt~ZP<BPXp1#}2It%b3=LXIyK-G{K%@5x+&YN#yuD
      zj5l$7A^QfSJ+XaFoD_A4*D$aByha*0-N3oGnA||yD|zVyqx=Ym<rsa^2(4Dm5Md|Z
      z{&ZMxop;O-_AA&;&_aK5U@#p|CmOgi^cL6JTl<-RK3_JGwlRZQP1=sA+7VSdqH2d!
      YMU&<v+4H8(oyRSmorjIT_S-PO0}@O#Z~y=R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9768413597aca08089a94b131952565c967b4a28
      GIT binary patch
      literal 18251
      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
      KCuF|@&;J11bF<n2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkContainerPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkContainerPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..242bee5d57b3e0aa9d3f858e1ff4574caef0a53d
      GIT binary patch
      literal 2481
      zcwUWET~`xV6x}xoqzMBk5?c!KtJdZNiGr;NNHtU}Z4^o{ty--^G7Tef!b&Eh4}EH1
      z`V;D#Prmd)*V4G!2NzGQ)&7D0o3{Jj43i<u5@F5EojZG<d(J-l<nMp~d;{PtR>KGg
      zoGM$5%zgc#p3yh$%!XmqGG%)`bJbp-t6H{hT1IV&n_-0Bj(xCEwG7K{VY>x}cjI;i
      z6A(p#!JG?mzfKEu&zP2J&kDSs@B<_Z0-?ET$%rC|UJViSbwZs~2#rACfQB&M6X?&8
      zf4%Ww)u^rLs})0FAXhEwm4aR~<-4;Pve(SIKqB{Ux-jA1RikWL1-)XHbej=^37KP$
      zVU^l@k+NYgSari@=tGHQJKNUgv`lnZ!wBLOz;u8I_rRir9o6swh8U7N*=oZo5gAS_
      z@Gn`AntY_;7>-loN4yqzJr?NNG)wjxL$4WTdCew)<ayRX5j@h#o#|GTQ4L9?WLjey
      zGB_ik5#egv(Y+nT!x(48y<LmaZs#<7iq9w)rEnQ_*}LRzzgSUBVk(Ray8}93HB4iM
      zvCMi-7PRS<Md@!z-l)8NuHh0cvsND1a@|p{@{TP%zGWAJ7?ad5G+dGKBW7J{k~bJz
      z{3t!NTPuNR(Njvyw-8cI`f5X^@K#@WbD@KjuX6h1YJ<l|=%<}^pIKj`t^`^o(<)O3
      z=>@&GUam<)NQ-$BsZ?uDSMwT{@QtkShK7Qyu-~k=iLA2+-yt8yO`iewWXGxMJb;Hf
      z)mL<@oLOAGZxm(iAt?}hXx5jFy3M2Vjg5_J%{G|kKvB1fM#U*ZmBe<{S~zN(uQqB$
      zW8Rc=8S9+9F?kq{)1g6LUA!O%o%cSjBapMw!?&vl@E_<&rC&o!rC*`{1z!U=sGvdK
      z&yzk$!UYWQ?Qjc@Ll^|qN`_?@5#zU3&@?Z3plFBcRvQ;p2(9(e2|<tVPrU3)<fJ>q
      zjLHD$O1;E~&pXIhJmfByJmN!c;z%d?D_`<4C9Ndi<8Bw9(bVurJQjM56YboiN~=Z6
      zy`-X?Yaw0jqBx0<Rpcm6aTQRjPq+%IRf4M!zw@`oIqffEWQ@FQSDMA1-on`?Cawi%
      zpJ8e=KHkLn-_XlNx`~U=a8hl}ZXq}o8VYS=a47T=*(T<mATkspCjCoL#7Eye{cpRS
      zc8W&>D?I214sZ}+bo~+BWIEqt0(UTnyIA1<GIUQ_dAF=Q=IJX=0g+!486fHsg_LDY
      zu-9KBr^>pvf8UF~eZRgxvE)l!#Ee56b$T8M{@%efJj{U0<PU?xeD1U$D_gMK(SjuP
      z-om65yNQ)2I4qyD+vroz^dI;(fE~sEY3F=GO{U4X>r|~m#Vy3qz-c_>=v8R{M;@iK
      zuF_c!-z}x|IF-Jwl+HLx$1%))ol#2Pd55}x@~!)>YxF#zPTwQ-&z{tTo0@RFEnII4
      U*W1GN_7D5_@>kzp-cu<3f7-;pNdN!<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCursor.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkCursor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..233d653bbe10ef65492db4b71620d3605307e7f2
      GIT binary patch
      literal 979
      zcwU84T~E|N6g{(aw{EFhDB=eqUy5{FwDG~9DVi7()MP_QFq`-|EKMowwxm1Nzu;f+
      z7x=1)NTLbRSAUf8&eSb}3#LhX=iYPgJ#$Wf{`z_h-~l`x6^7X;$^AY4hWq@j@DIW;
      z^CPkEKNtIJdDc%e9U6mG0*WL<HSX~!WSDE6+y7D`0tS6I75#%$FpRZI;AR>pf{L}(
      zIElqmhKJ5cvFJPtF3w$^ME;h@;v@>1Z3b;E-3bkh;IfH28Vr-pFrbbxhM9}G*1=$#
      zsG?@z3a;vyWN4fwW#SsHGt{F{Y^8bDkqS7?6Q)X)0=k){J9#I}0s|JNB)OXm^UlTC
      zW?PcDWkSa#lD!ot;YQxu4zpK$yGzULR@&j+HqT;t{*%<iZrrEY=UY*@7MyZmV2_sY
      zo|^oRY7C=v&w)A&3v|=}x@}O)i-F<x-`Wf;Hwxv}W68Zyvb!&Vn5XNH(C=A+Esdba
      zmRitPX6rDhK1$I$X!HQf?!6<J-Va#s(Qv)*unsZ)0k-=M)@$zzCXR4}GVbyrra!5<
      zGxVNPlUHcNBbazhrUtl+Rd{%US*p0jY|IfKsHlns+AJf<rlO+TxT9DtQg6Y^r>{g+
      j-Om{RSgxz7<TEweECA)`B{)Nxr_VO84{2s-DwO*hH2>Te
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkDialogPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkDialogPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95a5653758c79d5924b918aebaffc7173fa08369
      GIT binary patch
      literal 914
      zcwUWCO>fgc5Ph4tb?R;@Eoo`XM=7P?Bv3cyD^*G_tw2ZtAyR_Wn;Wmp($uc(4V5_Y
      zH~0mdk&ux%AkO?K#H?)+g-VEncXnppym>q0pTE9+2T;eBi2}o_AM~BK?mO3UPnB~b
      zMCADD$a$iU_N3bj{TCE5Vf+jDS_WQtngPcd7Dhos8iw(08A!FmP_|nGR0e2PIt<2c
      z=m`r&OmdjuqqwY1ikoi9Ks@gsABt$-J?sgF*;d$fdmT5D+RuZAdLv_owbp;Uu}SK@
      z)MJ=ABaV{YNVtkfi*}_m0fu>wi&$Xb1ltXdPr^V1iWCoP2hpa9B@+D?sf9&c=D32Z
      z3{x_G6?mc>M%2Sgn;clw<Qm5XtT2q(PY)^`U9rk>LsytGeinLePor*f+=5NI{XffS
      z3zcSR26kRp<*4B{L&+CvUn)JHvR%p4_T0dC+A5NP-_(Tb91b=J8xOE^_E~5~yvcD_
      zE1Hz?OA*WWdiI*+KF0&CiWA8o!C<w+e$*9@WxBSJ9jxmPSfSb?ePi^O7RZ_?(K$ih
      z4*3PL<JH<%SfA7U6rENYty9G&&e3f?Ltz@{f%G<mS>gZ<vz&8%pdK34sD8oR4=lE-
      zMt)0h=_AbICm2S8<!UX#^#p6$RubINww~bLu=^76gPvN#7M9VZRczDr9^oPB9ja;M
      OYD(D1)i6S6j>d2LrOJB%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4243902b29df76200d7ced89a2f2471ed572d992
      GIT binary patch
      literal 847
      zcwUu~T~E|N6o%ikA1##1$~Uqi2#DPhY)s^8l?yj~WYZWE&3ZkwlcmD8q|Ca%%fzgS
      z7lvzol<~}ztO10CCY^I;=A7p}b7n68{Q3>xHGCT-!d5r!2VccE5r}~b&ZNwPt~v=0
      z)X84&NXD^@za(j#4L<UYjS6Ay&V>D3^kfld5jJke-6j&OD3?M>Ld9!0I)t*P$4V=U
      z<v0kgi$|Db%aB&qJIhj;D#C0yB9B&^HXak|*JQ6NI;dgV#SCT%<6Wr^MH-(<quF*?
      zY~F>9F+wd&Qu(3Jx%p>tq$8%oEE1<3ktce7wOCQd$vI&=d_W7EtQ=+Oxyt(ypQ9>u
      zgw}rMqOP^A<Ex^m&6BrDny6jEsu$jKu4bd-po|R{&+&pV<NfQ7xs#@DDGdnA_fiPX
      zr>vhxazD`pEdBQYuXHx+aM$>+@=K}`bladm8~V~5_THI&pyvBOFmZv}5K}|UednbT
      z7I<{n0&g&h9W1iv7U6h;C1|&9kc6jf3*;^%%WN%wWr*dQr1xA*%aG>H+$u=MTfr(b
      fh|69Zu}Vdhzx5OAH(3YFI=q9miI;}unViO7Ix@9@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFileDialogPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFileDialogPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c869a820d2ffce9366b0aa36dce666ca4edcf458
      GIT binary patch
      literal 4290
      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
      U`hX_^YEt-<o*DSF_UkYI1KqXeYXATM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f22c732c2a87f6c6009a2a16d63c3f5af4c06842
      GIT binary patch
      literal 4563
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..956a5e1c98941bb91d60c6484c4a6f8752f4287a
      GIT binary patch
      literal 1974
      zcwUWF?N%CB6x~;d17wU5KS<J~HEmh}6KT?>A3@U^jg}ON7NW6VI>Hr4h8Y|#w)UC&
      zqfHugHEZ<&`X+seuAVb95+G)+vKGwDx%cd|_de$ifB*aEUjS~y)i5A%qiVM@`^KS>
      zF@92+hLmoms%n{KRa=&}bj|WAg*1c(E_%Bx!>(o?@9fL663}f!nTK+#sSG6rL{4DD
      zmOrbl-guOtH_S>^Qc67E50e#$%$6<FHr0KBP%^bH5MFR9G75nUIy4Ll4ChT-7FzWk
      z>6VNgOEQpCHmr5SHTgLRY8A8DaGK2JKp>G!<vY?I9!guSwPZ_XV;Dz5!^Ej3UM@L~
      zRWp^2OSnubi0h)<HCmPm76it+(SoQ4^_GsS7!??$q~cLi$@;5W0)w-Gvhn2W(o^d(
      zgfOY&8qUW^?z=kP!wup^P)}_0pe1v*l2z$?#^l(M4|JTvAm1f*L=Yvj)SlU-h5Y|%
      zCAmFJ4ypOFG9B9^DlpMat*Bhnu4Z%0O<+bx9HSaO6u8pCmYkO9f`}o5JFMa(fz%l~
      zb8o=Ei%&ItLe`zpCLN#Qa~d9I+sBhP&To{wXqM+iD?9bNVOM(RE2u;c)tyR{8>DLf
      z9IiMObN6V;VbFLNC`Y`ee2E7d<^_g&mUJv&k*X0w!Kllwndq*^*-JW>xsef`33X&i
      z4(4<`;vnZ2&0i$@o7XXi6`s{IEXuJqvCHG%OOaSNXp35Cxh{E7+H<8*iQ*fSG!%P|
      zsy~oAo`9f2PKyMO`(UP%S!E0=CXISl!&73>&*4GKv?|h#;9G%9WM9>vBp$AtlgcZ5
      zZ!(4re9ztgp>N6q9c<_p3=P{o)O^-Dc2Fjx%iU7?o%N$xE<|&&iz=NfqtTGu@mpt|
      ztJg>bLOcjl$3FKlq8xuQ1`D=^`spC{TBE~ZWt!)>WedcLPRlLJC6iw{qrK;Ah5>M$
      zIvb+5YzP<mw9;LS-(z$g<1<UwC|zSXPy2LwO3{@+=R(gh^gG=QVAx9<px?U)V}^h@
      z3PCR?N&}_SxeU^$f^_W!V{KgdtphOVEi9fU6VNrh9VD$$gkvM=W4x0-!Sxq-KRx{d
      zQ?KgBDFHOdVcembIf8lQK~4CHL_6)(9q~lbIm0w=2Ji+6W(yK0xb+g5&Ga9b8VUU~
      zef1c(+xWP@NC6k{m;@CFeAO#5>8E#!BybN|Pfr4~q-+35epv?P(%x>e>=}kO!`o!z
      zuYE2&?Q&rb_k+9~J^3z7xA6siAJX@$Hoorf!ZxKFZ%|(#>OwH=3b-??oyN|2;(*J~
      ku=WxgoAJ$Ke0PE$+o-g$*G8?sOpX44tPWFwhIe=HA1kS|fB*mh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkImage.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07cfdeba7a110b6c20b366751c03aff1ac7d22f3
      GIT binary patch
      literal 7420
      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
      HhHCj0K(K)U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkImageConsumer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkImageConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1879e9feb83e2aab4d8c2f800246bdbfa770dec4
      GIT binary patch
      literal 3184
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkLabelPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkLabelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9188160aaad9828933f52918e2f04b26d1d05641
      GIT binary patch
      literal 1390
      zcwU85TTc@~7(D}}h3#@HcgsznxNVh+;<d=#lGT-9fSPEGS?Ew#$}ZVXQU8(;O-u|X
      zJ{X^T@JAWH*>0A$K-^?@c4p3;^PMxZfBydX31A-U5wtK&741sqgL!IZ%#R{-!nvC%
      zilfY?I5NzAUfQOK2to|ASK`*4;}gf`wy0sl3`32$fQTV{;Br%NhC$8nKqb>IW_E;Y
      z*~M%wnP=!D)>l@c$i)k%U>$zWIkq6iOW?XL@iE&J)+yiNVzp!y?PD(CA<g6JEOW8t
      zE${MAG(B($i^O#YxHYF@7s?C~P1kGu6G1(jTx`4ikh?A~Y*-{zwj7(VZQ2_T*{aER
      zXx%CB4v<3?Ll|aIDTg2;hJGUmCz#DfaE+lWSnvW<FoIDPV;HA$NWNyFUrS!}Afb~g
      zu49ViiVaCnQMy9a%&16UmaIx6;;11jJ(-gbO+^Il1Tid|Z&i->xw~ubm*}u!hI3$+
      z@}_Iau|F9S?=5maWBmUDWhtbR95D14jV@^^Qm&bkHO#B%M3*G@+{P|?r8~4}*_K$M
      ztD-fNCG!ee@j%4_9-d#C#;oNbF{(r@H(eQB?q+zRA_|qE!#rPPdT5#c83tv?skjF`
      zXUPP5>pjj%DLMj*oLU>9qYN@o+7?0w6uDh8Q_rMHZ`_R@ukS?+@`<32hW+%lhY(t*
      zA4z?~z%Ps#sq`7*@-=aW=`-B;N{cN>(z}Z!fen&+iecoCqS0V&Gt#(8eLD%<!W>aE
      zWC&lA$Pq@Ol=N@3OXl0noX@C;=Ty8=$Eo<7^6L)ndYlWm=W{OkoZ(dZJMN$JDc<Zh
      z1@p3wD;#iz@yM_5F|t0_8r9$_rc!aw^I|jK9@Un=qP8V0%Vg!X_xUX9B`OjB;$fyx
      yd*oc4+8DLTXf?J{RjbizAT{Wn=4*`NEynSV&e+5>3U#uHKsMpaGOT+0*Zu*#o)u&O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkListPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkListPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30f3a9866a22e32bd2abe2cc3b8180e069db8ac7
      GIT binary patch
      literal 3563
      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
      Sag@YN)kD;BN6BqtedoWOQ}M+B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..88ae463ff9ad369390e84dab75acffe55b427dac
      GIT binary patch
      literal 2319
      zcwU`UZEqA+6n-wdbhg7F&{Ck~#X+cUi?9NMN)asxrLy#eZd;0POm}bFp}RBdbhZTz
      zAB^#fCVn8s2r<SlN=zh5o3xb%P2ih<#s8o__wIJKTfh+8?A&|qJulC5&bjB$zwiAH
      z;2;VH)(Gqw_e!ZN&a{(qX2Mia${;l!PNurT$@7luWhMgY<P5|GHfp83<Bg}vrve+i
      zQejjEy<@|!m-A<)1Vp!h<yFMApPdwFNLLMeN3Y0i*dbs9CC_ucaavpwSXYtC24*1&
      zEYO;M3Vd{!IG)YBo*SMJh$Y*G1mdUsoU8}qTUd)a1Dk6ol#!Td#1;!%u|c5jxVBd&
      z%@zzK)NZ?ldYEdr)51C=$T{tLvPbjIIHP%~2>MwkKjZ|ilJ#K%yQ$fgIcF;_cBoOB
      zh+&TkwpXAjxgskAVL<X78g)3~GL11N#6%M92HFJdC#E3d`}s*Xw6ISxFviPCVG5^Y
      zcwsri@#LkpA;mOh;U%S4@A;uScC9m?C&;PL3BqbBO;X*W_`Ynx!g?hhweX5ETdP%-
      zqt`4PQz!8m#|`Uo948FCUX$K|Yg3^tSa<_(l8p=kQZ6%g{Zt?6h9oVWLPr881u`|&
      zJg^GVF`MdiQ7VQqXU|Nyd1<S_Bxl=Weqcv=&ij7R4t=`<^evn*a9W`8F@Y^~sX7=%
      zb(CkayK&CI+X8!^nCvd;$-vF_@yJ3N=h?d-3T#cbr6cvz)6xt3OR^+84D<@@f7Drz
      z6S~t<E2aszQY9@L=oi>jP2x#bS31PjhXK_$`%Uy<Q0<0Rbx`G9sWM;0B?BYNq-#N0
      zcn9yY{zZQ()TgX<vWmWQIHOPL$H4mnyQ%@Ys}(qXH7kpu>$A<)OE0&wb&_x_j4rog
      zf5{CK;2Z9*EpLs{|0%9t<dDhII+W!}qq=n5;z(oU^*K2e2L83`%@qqDs2g*@F9lh7
      z#?_Cu7L#I%-BgZoG_HlIMh17Lnge>}6wvEBE!V5J!8O7EXRv{G8!4T~8mPaWu{ms7
      zLgUB+n&z;LQcEQ5xJ!jK*v0P_1_3T0jzK!Phz3??2YT_W)=<B#k?SLr1XrWI!Ct^~
      zRVSua%@S=+8(L*Gv}$|;&qpo}X&Hzw;)T`r6Xfl#u#Z>lO}vQx75gkTm2UGac8sJS
      zw2&2d^Ej~Y;ce9Id-%s)Ue}RD6P22Xy=fKG0&jh~EYe*8+Yqb>*c>JJU<CL+_0`>=
      z3V80pELv{i)Di>}d1wxYXK{EQM{c7@qj>c;tl?R7G<4466jg8j^VcHIE}>^+34J5+
      z1zcD_W*)=s3T(Rq8)NuZw(NTh(}R8n>c@ay%b<_y3{3O(DnWik5+AcX*J<?$tv*E?
      zJ|o!coQ<Dz8h*ivFpUhpjLK)KuB%Y_xkBY^MCB%qF5>bd=(A<?w`$PG9*e$#Dcr8n
      zcXHA}O*_4o(H|ma;0ABM;_hoA`GywX(&9U^_#S&Hx8ny^_eT!t8=QteMab(RBjmYC
      z<Jq&=rjc*Dg}OzIaTCAHHm@R5#c!r>@V85^Wh5>7CEelo7b5wUp6{|b?l9Wiiii{c
      k5iy=)pykN!(?(q2_cuPQd)SO6MqFUD`%y%JNxjSe3%F?fx&QzG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuBarPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuBarPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8663b43a1860ca6d13999cc1f2aac1d675d53775
      GIT binary patch
      literal 1236
      zcwU8*+iuf95QhIrLP8z)l+r?5D3q3BJ5W;^jwvlP2&j}o5mhR<bCOl!9Gu8?;D#6B
      z3AjdrRN?~liVGeJF>6OTRSJsi?9TrC&o{H{KYxGz0<eMI7(#^AlG8FP)<?^<K6z$S
      z2-hrmRr94+-4{-4*K!Xy6hnkyj8tYC^=88nju+^og!w^jpB*7ywvJzkT2lrI^nnm9
      zxWe)TA*|^+Ld+@_gT*y1J2J5}Ov^3NE!(lZZNjXU?W#LjeL*DCC<+B(Osg12g0MIw
      z?AGARC$qLAUbpIb;T~G~8lxq$je=FnS*|VTonXW(+sBMKnzB=Qnk%dGG;g`m?hGb(
      zh70d?CNV_FU}GR$RuRK_Ia*S271s!3tT?iZCE;~_YnD?o-{dQz;H6`@PM8`_r(hYY
      zDsEtnpz_wB2QA0*Phn4Ce@%rBgQ<(679d5mJv}FvZmEc4fdh3vJ~>1xC3jTJV?n`P
      zq+-}4j1Ndu+{1mg=FGvZSkd(CU<c3KEUx4sVfnu|LS}y~0aaP#mWn6fn-S+!z2;8$
      zr}LTlD%J_gyGF|`h!?gz-kHGzT$dZzkvqiCIetR&DENblQUqgA01C;p9N~H~!S6{P
      zZ?i5WRYvjzQ{Q+L!VJF^Kbm2u=eWS5xj=<k9>E`7#3lA1*~pGptK+2`-?8`wa|Zuk
      zImL1tD{b5~!auN>{EcxV*+$Zc@T`|^iD7|#ejjj(w`_UHu^d)#1P$-|5cDpBj@wuV
      z5y_k2mlf}#eD0v60+dyQ+Aw9}jZ-{0!J{5pnisxeqHnE7wZLTpWu~fd<EmV8jcFR#
      UM6-`5)g?+{M-uVxsqgXZAH^jO$p8QV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7da4f7ac48e0800b53151949aef470e50add2a9e
      GIT binary patch
      literal 1145
      zcwUWDU2oD*7=8|P1G);r9PUG$n^U2{>ikx8F;1B#fJ-*<x|9QUgO-${@lSZ~&oD78
      zdSUcN6MvNPJ*BWQT;c`o>3N^``FPLa_n)ud0Bqnv2muDQY4x;y{jIL)?_90JxuZ4R
      z18v(qD08c~Ww$%F#VvP-3L!`gYp3G3xy2pR7$Bz^md8;ObPUsm!*!Q41k;%+L#WH$
      zqHVbh(w1H45ilqU&LGMVA)41_y~(MVD0##!-D+wtYx~@A3n83kNRITzq-4a9P%w*g
      zq|h8H#M7D52rsq@0+&>99`htexE<Z$0=ak`IbgP2-K4CA87v|Z!qTL+kB})sN<jn{
      z$#(jLpoknR5v<Z{*SNE%*IHbpvkkpf)g4oO`<s&c#_TfWO8<XY1%^P|V3<E?-p5d#
      zHH3k2Q*<aDKlnuFFg9TxnwIHqGAyM}qt8@j1d&saL7rhQJ$YyX!JsJ!AuLuKVo+fk
      zzA+@B1FM_ej@{*=ep|sEG00hpJh%&GyKXk#`&Xvnz2sfH=NP<bim@&HYcT7=h_ph4
      zLHbS6Utvm;ga=v$gag`@Y5jq|BzmjrXUu%3L1p`hmvg_6q{Un%{{yj)kn>-#z))6m
      zeO&nDF)Y(_)nj`^&rQ0&j}gZcB=Hm}Ji{8E(@b9AlHeXFV1+tB=v7>%I-{NxuHY)M
      zB@x9nq&=@0LJquDs1l%eRLveDtM;+39^(3ue!}D3rF46g=oRr*J-y_h%hwaD8$ypU
      w-1HnXaaDbdqOT!me<G|>=37VnQSt+DQfW{}^BA{0;+Aoj63{KfJ+JTnUnCRzu>b%7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuItemPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuItemPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0259bb5f42ff3cf43bfa6d0df86b10e140a2eb26
      GIT binary patch
      literal 1236
      zcwUWDT~8B16g|_{7S<I?`BLx;6)B6dqWD=PAp}fgQ6mb57u{~hWuToUyHkum%f!^g
      z2jjCp%6MnDZcAy556zw4IrrRi&z=4C`}+?7OIXPv#W3s1rhVWXJGS#l*+-lQwx<s5
      zXX<c^%Vt^e#w*I@kYTX?30?OaN514z#rQ14)JbeNA4Ap+xT843c(D@U>W=j6Z50UV
      zmF9OChFo7t?y7C!Nv9q%q>DN|N-cLq&EsmzuZfSJH+`uXCi{?-%Nn0q_iKC*48tb!
      z7-1MBK`{YCp{wd;^?<sSau{V8NtFK;ZJ>a06BC$Z7@*pUQ{{DrvEuyc#s+n}U?PVB
      z>RJ(!zi2k9Jb2?&>s<HrU8la|1VaCBCo^ha(1>%D|Jp{0>{}61s8xoE_T=4S$v*>W
      z%$T^0YYfvpkYrO4u7DdRW^t385#ff^dTNo`dwPzdiFsHIM#xoinJMn+N`_k|24PS_
      zP*>VbA1MsEnh4`5vs}i9fiQ7!^vDmDMz6U__;TZzbZJq`Chlvq^JI2>MY0=?tm(cF
      zO+3P5a#t636?W`6@euSoFt+_>;POqO`;YY)x~OX~L(FOVouSXeU>UtYfFg|;#j`N!
      zM(4GLb98=+6rF%!%le9;pD462*24KOluBVr(@+GSV+a*Y)5(nCxQI&>8SUpvo9Z<o
      zHMU?ae8W|1p@r)$%vmigbl3{i9C%9tcc^9;BX}3FPQ;aMR(-mSMdD?!6RFE>saY#c
      zyuAwF6X%C6h1o>mojweiJ`5f)?4M>}OuwHfE@?Yyg1ZUhYGgN%@7Q;b)II3s4#=^v
      Ni#wmFdlDf_e*kl7{nh{g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMenuPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28d7ed6bbf0d46428414e3bf2ff87e235158d77a
      GIT binary patch
      literal 1927
      zcwU86-*XdH6#j0qc4=5z3ltjK&_XTEFNi2sB{YapY9NJbYK6|ouxxJAwaISWY;b(=
      z*+0SIFYw6+U(y*Lobtkhf0W~QZ_<!JQzw)A^E>B!=R5c8KmY#qH-PKdHW3lHRP)-o
      zAMEFL&i*OPHKh!4wQw)D7VfP}uf4&&2}5A%SXe2PjV^Rd;M_3m(2c;D6G%Ih0@KN|
      z#?)=EmaBw;>(%n9EdkT6R+THV>LG@_97f5PwiSA^CBt^}j^oJsTHv>v0;yzqB+WJH
      z$-s5Ay|Rum)~2+BhdVn0(WE+>aD2~`PFQhko?UMV7)8HIx|3zslMmXBXENBdpVfJC
      zy6ii4eajA9weKAo;jT-g#nBuNrN~o@TdwDZ1-cr@RNa$Y3{lKjm`0ppzHzNI(2!Xq
      zOw0+K8oIV{5%U7$Zfh{N?HDMjg;SVNhKm;7!xB+78E)8t^g@9P$<%P5qVI(^^A7UL
      zWZ6OzDOO0C=wdDo8uUw4^czjzqeq>l3Y)QT5|)XpOtp{i!(zxHr+mLJF#ndvVQ(fr
      z5V$f@+#xWl(I6dFyJ2;ye6yGG%;<za!A%pN3QWDFy@fn(37n)3m0dpwoi;ti-xTlg
      zimnRy%*1WJ`6B@q?%;EBqPzR@XI-q4viZWom#UCc?Urm+cHNzD-LJYkt_&2pWfNbq
      zWTQJo34hPRIARpS)g5)_h<C(zdn&3Z@g21Wqws87AkyG_K0hKgft6#MbcC5|w7KK#
      z_{gfV-u(<1$&$ib?A3~7-R#gOwOGY(2ade!s;+x?ps%hex46XQqx`?auUt$RFmVD9
      z5v2xasOPBn>;@tXOme0lt~1a8h(9?*FvW39ACz#Kqt(5{8JyMgG|u%5{~$Wb`F=XH
      zkMo%hF1&!5-p2x$m)El|G5Z2%)7b;ec5vkYqJ#ABSm1fKcb@Iw+5xWX^Al-x|C&Nt
      z@y0syc}NNy4EPO0S1^Z7T*bGzfh|6kN4ST_n&v{6N{^;meMpR=yMmASk8nMXc#ryT
      zR6r?}impZrr2FwrBW}FHWZdXrbybbULYn7y53n|u*hlF#vCB$We9zqzI(bT(HpO%p
      zsLD@9ja|K~3Ek)h=o3njQkmf+SY}!eI2%}EavLNb!#uubf`%qp>5=@kM=}vDL|2UL
      zD@;(Z)dGj&ijmGFri~$D7g=+l&Rv6MJ{|qY8V3yDrfSazNG1BD5+t>$3!KmdBK*y2
      edQl>0G(AHI>b(V3{O|t%)%<egt9hhRkN*Qz)vWLU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35c5677f5b867b069d0e57e595bea78c4b3a725b
      GIT binary patch
      literal 1504
      zcwUuMYf}?R6g^EQjKo=<qT&M)MH7jM_?EEh8Wf`ewS3^CN*yLm(h_H=VFK>Y(JH_3
      zWp@>;cB}jWTjgJ}JlzwXidCkn=XUq)bMCpfZ|DE7|9%EAf+-s<0>`R;Bmc@>bo1^~
      zl%JO}%vYni{6sW288jAT$)64Ga?^$-&}q)qUB8;YGxJJ%k&RY?{hQI7U;>G1MGEA~
      z+k~miO@!`zO?eB~{Y4c9{%h$+1%Vx7US0Vrx=e<2=8=F^3@XybZvxq0p-RC)hl5U}
      z1X{-oV;cmz9oX0*&{0;toNBzDk>LY(rcR~Z<-l|6kK9n{wb@J|fetE&YHC3sy<I9>
      zD#j#wW>vj@H&A{wt)f~n2*L^pdeY@Jv~d<PB`tHmg9A87e^o|?$pDn^Mv^Eioq1Mj
      z!yz2DF(A;snZm&!jtGc19Ol%JgJWjrPmXzB-PV{ahu0L;@~p(X)xxy$E5Xu3zam2u
      zUtre;sj;_^d8)PM9OQ9|wA6av3#IhO<)ZSm&;t~@j#|Bv*j-5BG|t*M!^&?Vc5n{o
      z1@@9~6;llSSygR>ZlnTVU@)Eeo_Et3(qF`=jY|UkKR@Z9fH8qKMvIlPjekVHLH1<_
      zS8z4H9^E6F=8hjH&+=_V#}(F~YYvJSXFC%#ttwH?v~x+jZaA3GF0J9FRMlF<n_3d+
      z`mW^W5wWuSwy&!|>VD7&J$XavChpzZj5!U&VRn9kBgv7{4}kvz7Qby=3GC!5j~3|P
      z&i~*%`God=(DfIWE$HDlWt?YdN3hH6g0RjFU}iv@Jn;#=>#$a{8AF`-0Cr=K0q;d$
      z6YNo0g0}B(bgf|D<Z#x?eMJ9oHc4|do5(G%5q48FaDfS2L_02_7o&!JASP&%>)COn
      zNpBO8!3m-ThLLRs{KC^o+851$#+;lw$xx?<S1_`I3-6IkEOY+*s6{n>)(7;z#i`XP
      z9e=!hhXE?o>!WYcyE>)oI$cR?Ik7H#(A4`1<y@ugA`W7l4|M`VxXGOop3~|y&c?FV
      g(s;rBl1bxnGmUoK!!6uq0z*t)Cuz}NHjyU30VXt5egFUf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkPanelPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkPanelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e2760f40c53090637fdbfc8011163b96fb3fca6
      GIT binary patch
      literal 850
      zcwU85QBM;=5dNkuJ-D7gDHN%wfPke{P9OBa0&1#|CXFG1(8Rapx@k|2y?Wh)zvEvp
      zF_`$^5Agr^YMk3PwTi}EZf<t=n{Vcu-TU_A%U1x8@yJ4ou+~wr`%YX4S6phhCuQVz
      z^qG60&klu>!664MWC)x8#MMKkg|B2Zz-9@HzvD(kgsc}yp(P<*-a6ssj<0;ZM<|q=
      zqZ|XTCEJ;L*p@cZxZz+5(@Z=D8<jQCnI^k$;`37(9gEX|E6g=RPXs3-@{{#2n9*Io
      zPgrmMUv-T@J;LmtjS+HPq1u6beIb=56vujc**Z2+Zpp??lq@U}^4GQ<+`=+pq9b+V
      zm6=6j3WPfj?qY@DFt#3^_d;a~%#UjxMr$_Kux{ZV>%6|}U;~?+7|Hjs?Cbr|i~9}L
      z@>M&$H09nVLoGX4K#|*!10jXK=pdy0HV>jfnD#=Yq^FPkjuHV6(LM^}$dmhiGT8k1
      z=(ZCgtg@suzY~1h_yWPgBzwdsX|v6-zlRh*K(<o-4Cf<zDa^37P4o$8KE*71#Q_R=
      z%mKzLV4gWB5isQHGA7O6QuPXpyUTg{{sFnlC)~cmYAfNt|BJt9dV0oo2M%_b>p7P2
      e!qi$Bu#9Szu!V|Iv4AQbB)<$E4wY;hM)xOb61@2U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc9d1db17f0466250c78020e2df05d95388f1527
      GIT binary patch
      literal 1015
      zcwUWCYj4vq6g_UUhKA6MZQW?M0p&6JfQ6y$3muhE1yxajNkjd-G+3Qk>qKd?!OucM
      zL*fHJfFFgpcB?iW51}abwR3zP*ZJ}D+jjuFcw!>Ou-%uj^T9oH9rrwP0?tFHADud_
      z==9JJ;@~xx@gZ%RFc?aI#m-<EhK+g191lb0Ku8fa7}m?3DR7FZSGo*F(|^w`q;b`T
      z37cU#0iB{2J3{g|@vz6kcW!UM3D)sFchGf1q1Ka4BRUZyhH~fsg4XH8kZOk2KiMPM
      z5s%{Fx##ggEA-=lq4E#z7MDB}o@Un3MkoF`HKE*Yzf$W$B3aWP2EODns<+#fu7v_N
      zOcW{B?+6>4*kV}e^GIcmgfHL9BQNA!s%}-1)&&t}aSJ6Aw;6KtUu@jLT?Y1%-nK&B
      zx3R5vK3Sly*~nv!{Q9Bj3pv-6nO%mo+oK*YU6v(>iF_~46j-HZd=5PRz+fHuap>`v
      zLfu>b^3CihJWAv$P45Ez!wWQ<xI$x=Rt==+0W#IvS6H8^O5qxfmfqbX^geP_t&LGw
      z#1f#Z>sSV3zzSADWGXULk;nRkJEGG{u~@snji*MnV0^*N&0{s)+d9r(;K58UNB)2V
      z;(bO}*wC7L<I_{kA}XjVDXQoKw4<VGJe|#uiy9un&<-9=9PDd;ay1jmXo6-U6q^b#
      N?7*Rs;jzZ={sK9a+-U#+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkScrollPanePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkScrollPanePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..afcc4a75d595b48acaea7b6f7dc976c54f32ecfa
      GIT binary patch
      literal 1785
      zcwUWEU2hvz5Ir|`;?&uuiPOXl4Q&c-Vmmmdg|>i8+kBA3#Z64zI!NVZ<Gt9MI=j*C
      zx>5NlycVf%2qa_#su0ioD8#vUH*1Fk2}|}J&z(7Q&dluo_4n_80Jw>-Qy3ChY&qT1
      zzWLHDnMXnCP)e`V3SN{pgBSIt=XN?Z(~&iLQ%DLd{Aci*>jb9lNH2^X5tus}cM?rt
      zr0GdBkOITGN+sVANaWOSa?Q2mIS3dA&SRV>5!T#;L)Vc`AaJo7!^Yln8WYH*Fe#8Z
      zeQRI}7X?OJGT61Ppsg!aRLYEjthzeKt1W4_+CiFyXAPt<DsZ7nIosWXJ?T9)_c~;n
      zsk%+G(=a_-{g0f<pl$mC`Rf1dV_D#O>)0u+UE8tTqdEzMo{Gc19B8S@obJn+(T!8l
      zBlm2_4(<zF%Jo~+FI~<z(n#RCfor%Skj)MDF&dqYSwudCoWRr>AO;GmU$g92=-e~C
      zb=yDen6GMX$8Nq-{rkW`5m(t&Uk0I9V8}ldm_CyiC){k?9qWno?eC<e5N;Xx2p<c~
      zP&r4&YMU}xx2e;&UB_1|^Sq+C3fwVpS5eBe;+~L`p0m3C)WB!zda4ySnAhQ~33C+g
      zgQ&25?Z}z1>;n>hPT!<|th46&cEH*K6GW<c@>}V7(yEg&Y3A~MWid^?l<Nk*z^Xt>
      zbxa3O5c3%aH88o^fmy6r`&~a!n^mU5F;wtn3XcY-(T^}tRocdhz2n)0G8IK7d)vSj
      zTvb-hz`Pnp!nF2JOkki88_?zRL1GQF(<MjoQXpM-yIxan*lNdTPHpkB0^%wWncrc)
      zPtFUd=LYJNf_j3}v{v*zFjXl0g0UVhgvWFbmwu*u2=DMW%@eqd4DR4EEh9|99NvX8
      zsYRdj>ZEZE??v#Bn5lBd3roM^{lZcY3q36Lk;hpcxKDx)`8HY6=rdtPh_0<=lpu&-
      zjPO6Cj1d1v<|lb>48Kip7m7XHyj)By7kapD{eT<FevK=0#iVk5LRUuFuQ65_CXF|k
      z)T;l);=g$<ut7v6_7<(jn8r5w>>!64xqQW)u5)poYQBY#LCkjpW!%#p+Q8?uhIqe9
      zjSrBZ2(CMnn7h&WP>)1V`)Z`=7EhHu8jfP^r<m1<_J1=lgVCs}V6Dw4-(<AvYIf;2
      zYzcf%wR1f@enUW>JAIKEP28lwJxs!4<E4h457T2oSqgrl%VjBB2@;fkT<!tCDqi$~
      WL!O5NU?K(+F_^%!2&|zqcmDyu6>{AG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkScrollbarPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkScrollbarPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3251faceaded01054bdfcbaf6ce38007f7b1f96
      GIT binary patch
      literal 1629
      zcwUWEZBr9h6n<{V3&bn(BB+E=t*zaJO030d!P)}8MFV2NAlNTU+(}oGUAoz&`nmtY
      zf6<u^cG{VapZlX6pK~{Ch~spcnUj0=ygcVQ=iJ?Y-~IIufUodV4k?98O)sjvun+8t
      z{cBj+cbuTo4EHMc!o7_~;I~@4cCb!k4(b1jUGdxdzUO#h9Gg`r^vCsqDP$XgV~38y
      zfK{q1q*wgs&JYw%XlR^N&`eA)6;9U@w8XlY!zqQa#F13UV;G|vV;EN$ZaU$kz-71{
      zy1r-XRV83TV^RVJ8Bn)dkt4>l8t25Ar*YNw+;-F!b3tP|G21VX%rhFFh<SwOC!QNt
      zJvP;5DRExV_*9&ubS}62#$KQIGmX!WQtNKV-EBEbZ9fvH!WSAjSS)8%<DX3ERL%9A
      zwWz)81e-R)*?G-x*sZ!9xboaJro*4zj)GPDe_LHtNOgAm=9~EG8*ccX=QP3%x9Qm}
      z;%0AhD&Z}KGuFp4O7%Pj@U_Mj%=gFiwkFLeLXC8sP<l${Lh_brRXpo<^SEcI)7=si
      zb5=YPnd423??5`^M_a6RmY%<eI-%<|&8~N3pg(9VVS$&5D9d(m1e7@tg>0$>J&3o!
      zq_!*9q;0<>?7rU#V?g0?=fIH3SaErU2O1AiBf>AzZK>C;iF_P6k;7ZMrZAIu9Pv~>
      zz|3P6>oT>+3e(4?7Kh1Z7uoWT6y3m+95zYqBegW@*y6B+b(ibpakQ;XV>K&Chp+af
      zTds{aZNra(hI7}I0Ze>&N#+Cr7ufFrCBtvW5G98}K8Y4lOYtm~|3LmNhHK^7LyS;P
      zQ_fJPC`HP7%Ed!m`klckl=weG7~m=a<}r$EeEYs(q3e7(=3(Im%Jfdg;F!giJO}B&
      zj5#PJ6fBSfDzu7ng&(z;(k<plR<=C*23LFa^2WN%CRUDNXS>*<T{GB<Jg!5E+>n!~
      z-(sPQ{Ts8hJPX}+7c%EEhgf_KT`o))C(>{5eXrmc()@qG#D{FKhAD2kYzP{Nq;P?x
      zR-_kdx2dI!c8A)4(e6@96J^XapHV5f(e$Ko5BIyoUU3Xkt=J{D_9v=;V|DxTXllDK
      zO<s=<@netLl%cT2q^B6cHpa2T`9I~S?wO%jj=>U&MfzfjMME~l%n9brnQO6QaG$*g
      DJ||ir
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkSelection.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkSelection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a01a65b8a515852eab0cb8b802ae0e766753c0e0
      GIT binary patch
      literal 7019
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkTextAreaPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkTextAreaPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..122e3808c4364b7f667935c93bb4e9e6afc26520
      GIT binary patch
      literal 4023
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkTextFieldPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkTextFieldPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa0a9ce610a99c2cfffbe77d8e340bcc9cb1f964
      GIT binary patch
      literal 3662
      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
      DK57hZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..685bdaa5986a162dc75622da0f80557c5e6f4289
      GIT binary patch
      literal 672
      zcwUWC%Wl&^6g@X~>ohen4U`tbqlGSF7h$n3f=W>fL52mCEV`+t$yGDNu`7F09^b>V
      z8zdeQ3qF94s<`7q%K`}&p2wYY&OOI7KTf`V2XG&EJk$u`K{kzFt0NVwHzq!0F5&|-
      zjvt%xPM)V@ZPt<(uexe5Vh=81se(?8PUA#pV;(+H<>;9@B+O6L+da-qp}8bbk1+c{
      zXWBd@xSd|um#Lc%*?qJLG~mGZ;o*XyI=$`Pus;Vv;9~}}GK(}npHB9<*iri_6Iw|=
      zP-$Nk+U|c9T{F_sYCZYy2pa@PY!Vg<p5#Zol@7TyTVnbhVY!o>hm%NaRedAeZHTpH
      zA6IcrdY1aVw01h74agOru=rOdq46@G76aba)^2ca=$?fW{9cxE(M?rZa_M1}u=1}c
      zg!=C=SP@^2TqVgT|4qi4tUc6aoRi&CxKaU{QM=V}zhXXWe@63Tg}Z3$mQ4}rv@REM
      z7YkCma>_spmw;+@S(GI=7Uk?zw<{Qn3ZgGqiaw$F0W<Egb9^Rj38457!Qf0VKpWTP
      VyoMVU{w8k0J_va-66iMSKLI<djM4xA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ccba58c9b50e67fb96ed98c0471a908134c1064
      GIT binary patch
      literal 17432
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkVolatileImage.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkVolatileImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c219eaf07f381c2390ad74c63ae2bcd5f5e4bdab
      GIT binary patch
      literal 4243
      zcwUuOTX!4P8Qr6+B?cUc$WCHAaR{NZOi)V*fjUh{Y~l+dHW-{L;nJ}*mL?u)l+nme
      z(hJZ~pqCWV8>O_s3oop$)k0&NViqrbEA%gw?sH}=%Ol06T5B|)&N<)y_W7>*_kTb8
      z0>F3hK@<T6_m!%R>?LhU%WBI`wx;WLw&W~k$DPGF%hVjh)F&%iNsl6=puc&}5Np{j
      zClrL2jiOUlpiC-=ly#$2b`*pPTCGmiTvJz`9@T2vykQ!Sq1Q(g#0plWW>xhnHPX4;
      zQX1VjHN!=!-B~Jf&9v+%t)gx!=*#&SZf=UxRkB^uXDp-Y=r(yyDd;*;Fpa9=oKz4@
      z56zM9C{IVRTfqSz)|g@I1!og62z-qo9|ZXzj=Ql}#Xj`$_9r~duJok%49&%$U_gb6
      zI~8>2jH-UFQJL56XS8{fo=fJef@aQXwjq9diy?ub;K(=j2kr1i(V|{=Z0jlk(o^C_
      z-R`x=b!W!7qMHmxm>U-vq*!TlEtKYxU^%4XE_BB!4Xd~phq>jHjrz86*^&tK^j)sW
      zQLA?Kw5@9j;_0bL&l7Y?p}8JQZ!8OgM^!w4ECX|e4=<oB^I<{-idV!JSCTI9n5`{u
      z*c2dBQybW7am!X$dTJB?l#1_y>>_o$Fyk-*CjSrDZkN9TK8R5f{Dg4f<0`_42x(kJ
      z)RiVxbRj0BCsgLj9fHu4Dh6>-!NK&-_zGqO{%H|C&y5R4RWpriy4ZY1#j{9==o|H#
      zRhMh$RosI^3hrQ-XR9p3vc-HFOb_|1<V<5>LAUjy8$O|WQN?q3Ucv4H!{q4W#l=~z
      zQZse0&ISbqKT6Aqktkkd7BmmYl8fU7XyOh}#Zdrjtf(O6!+2V&vouvKpwu*e-ZmUj
      z5$+znmfp^CZmZFeHkw=E<ZTTV_u*S{ETR$xuQ#x*ii#>MmQ`JM#xzHJ+|(;f6BbBs
      zGmNHIEoG<YFR@=Rcu`z#@10wG9!DLGC>Wi+w{2i5mcV-0ZPZVjwX!y2>y?J-7&X(-
      zi?VrLh@*z9!ok-R%(gkHr4{brk_+yBgC&%m(CTHmHzHClVtX+-umgmfbmO*GD;ov6
      zCe@mB8_Ux7FROS3KV`CbnbuV4?WFSH7*p$2wx-T?yQL3p=)`dyuL-xjPQ7p3#AJmn
      zvA&9ArQlGyoy@3JT`)=wn_5<NWQYwlP%5xEb~?!}Rj@dMm^3-7&Y*YGSFHuFV1Mi7
      zI}OY(s+@PnEkp11@(FL|9&8J~gqWVM>-G|(BhGhO-Y**4{<Is*8QZGqw!<DgmTpP%
      zS;sc2rM8Un*=w%~PL--wk)y8-EQ&udQvMp}j;YIOHKP?4^<qoW$MFvSEF%0DZ{l8*
      z4KhA!HSB_ZR!)MHKf(_P131VO<RC|cPgs6KbZmYHM8D>Hm+01fcZuOG_c<Q<y^kxq
      zkf45&zs^xhe0tV#cYfDk0$(Rn$)05I8ut7H{U1xb{rui9&z+)$$B2HK$Y+Q;O2ku0
      z;Sn5=CkZMhgM71v%Qr_cguqVa**r?-+(0aoxrOv9GJkKHiO7xTB%JCV!u>cRfjD9%
      z(6{*?&;|MtcLlAa1nTP_NQF}2RAdzoZW50RTI|~i6ea3}tKp(b=^@W*62~Y7r1UVQ
      zpp=eN3Q6e^N?|EIN-07WPG!mH1it4ny6iDZNJa;mgiiViU1AItC83itYKbPH1U=j>
      z2_+=8pp=ezG!l|pSW1GLpw8*)nSYZzV()Nf4QDd_D;UcRtl(^BZ)gP*nc)>oWirG4
      z1FOibAngxsg$8Qmf0>D5V>es-UN{V2L(+W61#Z$jEYnMoQrPp`VVQzKDTyQuNpj~r
      za?kRdxI!$W^z|QE!?fQgSE+PO8q2r`o5o_&gqsdg&sa>F2uc%Ac_yCVx!{HgrGtr|
      zQ0XOUV$eOfjR^%$H_PNG-(oMES;ed$^g7wT+LE$i4^$C<Z9IVEzMP-)gS<gzKX1=_
      z%HK!c19`=}`Y~dR@j3e`F0A8)d@#6%AAE}W+;A{Rg5_0QT1PGa3Hpcmtiq-%u51>W
      z8}1tn->(_w8`#6Vxd(62>o-|iZ%Gn8t|5=a9t_}zEH~kVAJd60ootI!Uh>!QA38dO
      zBeUsI&mrr$o@cuL%n$HxM`yf2C%FI*^DQ_Af`9dCe$aA*Kr_Gr`~ts}jDLk?595CC
      z2JILhwpb4|t>2)>{CB^F2|x9ZI^O+Fy0%?;%y0Q`9hGl(R6grhzI7YRzwwkG^_<qx
      z@;_Vr7H;}2jNjsS(&o*MFl`*Z*a7DE%ncXjF}Oo4p!hxbua+8Z4dL7PBixV(v;gGa
      zeGjd~G!Zrrt>c}1WM5zO^LReUfi|5FB~#P+aI$AQA4&F3ui@QIb3L-HeaVXWieO)%
      a7yqH@FI%o~NOoLE>A0k);617T{{H|38cVnU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4992639757589f0e9969e870bd058052791a1459
      GIT binary patch
      literal 7753
      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
      S2HX2RU|ZpWZHsWJuKxobwxZAg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76c143e2333369e03b80bed3b3c20386961a52cf
      GIT binary patch
      literal 7987
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.class b/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83f88f9fb8a98a81b4c2677cd9e758582c4ef009
      GIT binary patch
      literal 2568
      zcwU`VX;%|h7=CWZMjR^yK_a-sr6vLyg-U@a3IPP0L~AUF)Y>7r38TXd&P=fVDg6cg
      zYQKP|o-UvJqk8(@nJi;6Ag7$e-0fYS=iTzpzrX(p;5Moe1Q@1kdR>04>?^YJ&X)H$
      zH{~6!R5Wf`@@ixA&{Xzz)Uvg#@2jSv?{eLaAjmM<(({pE2;Wt8)t+bQNu}2rf;pqY
      zW9UJzgb>0EXY#7fi}l@YZa!1CHO>&v8)ZdXS4>r$8<#<QN3|Gc^8XKMmf?%C$rYP7
      z9~thX@-0K^u2SRjV!c}BCa<iCQ#PINVm7&yjiR673Zck|*9^U81d2?}ev`>5<gZjW
      zt4f(T4qz~Xv&7IbqbYh#&S{EeNf^R8hDg;gi^?u>yWRleh?Hzo)oV@XZLMq!35-N=
      z-Wzcr*b+u@fuXm??Wc-mbCV&NN_R5dFjZRw))mPLu$LrUMv@_>T5GyxD|(rr4SJzH
      z-hR!?b~gPYimME#$U`$OLjSsiFLA^5T;TSOQDJ!C!)&XInU|}{s~S0xT?^R=(hPl_
      z5Mmg^L<Hju!$)aK$Uvs*Q}uo04H233A+qJet@|p1+YAFfr4Ypw!<c_1e3BAxl<r8F
      z#@AGh6s4R&aW?B^+n^*(rA`(Yj}oPA7KCq(;li<k67J$2WlZPq+Nr&fIw}AAZo#+P
      zPHZMCvRgcDb_py<SVWHDw8Ks_%mQ`0M)0~Tu>DLl=CLfs!3x8@uBPlL)nn|W*CSYM
      z=E|Y4{8O3l*{Y#4gdA~(i^n%T&8gZXRqmi~^NT6s>G2#<>+i}MRh`-BymOt-8YCDb
      zPxllU&L7<Z1bthr30Fa}GF<vhRk*FWplK_HZquBLr_x((9O9BhMuf<|qG}?v;%-IR
      zRkfeRK(a*Jr@h6|=v+}V?rq&xHQ5={G$wr|nI;B#moUQ+IbPybrLNf}n#f#V;`^$o
      z$B~rJz;z#~27ja&wO*TpzLnk>UZIx;1=;o*B_^Yvknb={!>(l1%`#t6#c#~zV}3xK
      z9!C;X9}s^L+R^V9eIs;|X=SvAZXP1~8*KuJ(KqZ|PU94PC0Bsf)3j0{;f$-yX6aTK
      zc^mKhfOv820K;>^iA3-K7k@!=B7UXk4-6dO+FU3RN(AYUI>61pajWnv?#CxdMLYya
      zX0s=rC>`Ldxo{#(=hSA;7#(L^(X$&LF~2E{)Bl4*EEUGzJCL^U10FU2FQU)+hOj{3
      za|Ct?gIK{ZNsQ8(#44sxzzp)3!(%!X@d!`ILWwf)9Sm$ZWUG#~w+*slw?=Xdw<vnw
      zkZypyHg^X7ySp%+lkFnCNO(%tpCCvc<M@_NA@Y|bFGbotLO-67Hxb@-^62JZype+d
      zd*6|Om!1R!S_ycL&ChC<kI;P4(43|<;H#-RnnUhuD-MG9_l~!h6f@VxB;5*)=tsQT
      bJcROBhb7&EA=<*QP1sJRZ~5w194Y=EjE{qU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..609c79cf092aa553cf13c30caec1c90550b14322
      GIT binary patch
      literal 7617
      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
      BHi-ZL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/MainQtThread.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/MainQtThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..405283f49fb9622616b6d1c4c0b3da96021bcdbf
      GIT binary patch
      literal 830
      zcwU83+iuf95IvhXNt14Anp?S)&;l)qi?Db?&<cT&kf;J}+9(fw+c=wKQL+xM4SW<Y
      zNTf(S@Bw@jVs>q4C4{i#o$>L^IcH{n{QUMEz(d?GAj7aV*0J|iyceGM5P5ScL+@SW
      zy%tJ$quwNxVpxE~P_`vgp~qf=GE}?I=kuxZMWh0K6eu0Zkbxc0pBc3$Wv>i6624@}
      zMH4xrSm|7FokXG1<2{B#7;8-_5u7scVGs|dauAP3hBLpfw2GcGG+KZ6p0@i8&Wm6u
      zOUPo4V+9q4Y^&Wbf}zH-grdnB930CgyUJ0*GQ(;|Y569e4P@98BxkGzzL@q!sLXc?
      zI?+U(G2H3=cT+S+QJo$Co`gKmEROO1FYB}{M}Cw(h1P)?BujfJk;iS0Ti7&i?{Vai
      zH&~lv3%40cCqW$g@})BF)-D@(U?ixBc<73A_RYgQg*4JK=**Y}*vM_nQO63d(78%q
      z1Hw&z&Hak9ySqTu-B_URW*1ohY`d<}*|7YN;NUTFKB4YCRI!iigl;DNxPc9;TC=*$
      zW=1hX`AsxaJ&&UKmvg^h{nH<Tyak_GLY@>Pgp8Tp*hu>zoGu5Il&nXFOl{M3iLOd-
      p{Tz1}*l``QZ?K(nv@XV|P(5&nGLBG3muwwhQf#IpFu1m3_ZN`hlr8`O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/NativeWrapper.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/NativeWrapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a11283bde1b185c2bbfac5a2afda0c233b69b287
      GIT binary patch
      literal 333
      zcwU81F;2rk5S&dM8;l_#KLAk#3Qp7@nn)Cp6$((O*Jc$iGG}v~!@H=ED0l#mLYyy9
      zP|=KbW@ksUpI`4E0M0N@&?6i!O{-SCX2mZ~H6m6$IW=de*K%jMX~ZUo2&3Ss*eum`
      zv69jeG80_ClxBqZLL2Qa3H{0Of)GvXdr8s9PKE?qgki3Y%-hF8>@63S5XO03a<yQq
      zJN_d^?m<5jj`IJ@ofFcVy0xWT>5%tld)gi20KSm_*#~2QI84+P^0@7p3LF@mydiz{
      YLl2q9IEWMMddxNk>|q$rN5QrK4JPhN%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QMatrix.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QMatrix.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a514fe5b94a6db40532971f7ee529e141ddb14c
      GIT binary patch
      literal 823
      zcwU84+iuf96r6Q@NzC@f{nFB=G++k{%PRDx2!x2rOIoR-3POF_wwtghiNo3{h_8Z|
      zMgqhK@KK1fjum)7?MmL`Js!`@8T;4oZ$AMfXnL?1mV3i-{9c@jSbWUmk(4_AkjMMG
      zBG>AZ2b*F2zlc4Nt5f+#i_u7G2KT8Ns{9$DgZ2#Dlj$IS(e0|CJkVm8byGdq4m%9?
      z%k)J0sG!E-z-OogVaEr@yoWi4m2(+57O==r>&blTlEDcMTZVw)GRGBMB?V)LKtZcm
      zMs%S~EPLa@k<<s`s4ofJPLD;uBeXK-vT5h<RK{?(eO@rz42<YkFPN2b8I%^S!xnJ|
      zp(&iK&p-_IAiRLbOjb8@ub7bTnb0T!??h#zG$YSdf{VWTEDi7h$A-z&f1Qr?vD{H+
      zDqb3YWQ0&BSOsRebmtViN2d&PMZeLUpt|V(@OB?YXSmdiDoJD~k&{Gj5_w5fO(t0S
      zN<a(OXunPr=8v+mi5ebb9#6=^7WIL(DIsp)W+B+XE!-x#8kTW~E{j>_ivd(=K0;9T
      zSS<~0(c6qF{|^3^Os!3@{$-}?7SEm+I(&+o>M&*^D7YH%ORi0-2IDl(aR0A)pDM6J
      Q=3o6o<dlXPf&v--0g^1B$N&HU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QPainterPath.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QPainterPath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86e55c0cadaee39d782237d4928869c8a5164e3b
      GIT binary patch
      literal 1782
      zcwU86-)|d55dPM`E_RM4O=){AEsz!(+qGldG&CV;+ESAea6?+VPMZqB<$STP*mutP
      zoTeZogpiPm5Dy?EBwoQ%-*_PkApQXUDB#=k;iOi8lXhorc6a8RZ)W$8KY#fhKpuA$
      zgapQGb|?2h-_mpXLoe4dO*gmc<!-I$mhGADitg1FL<G(pxNTYYtSxiZ)mtso6^PAS
      zw&g7dgp;X?K;*hpH4_LUt|E$<z(~=u&E-yW-E_<PdczbLD>{bWsOYXG{{v&ht6Ob>
      zv&H{~HYac-S?q5q)%BJ+m#Qcj6*%2D*G#9GySA~x;AL00+Z&GCOkf1@VI09x1<wi`
      zdfJDIV>nK{HPe$}mKaX=9A<cVU$leV&ZP#{_aC1d#tA&9;H1FGf8V9z6iyQnW3O6v
      z)v{~1JCYT0x|D#x3o2g3I9ZZhQzVyC73uh_ikI**4;mfUHEpkC)|wOo(d7L?@92bz
      zBvPzX)7di1j$A4fQWd#$UPVThC~7pEwka)>DsukjhD^|rro4&^n4)R3qgUm5h3EhA
      zFs<TMT%yhBtXqa$jr*%|UE-Tn@tTYfvCVBy8s=482Ad^jwF{2j%WzFVu=JyYH5CZ8
      zEP+%1#V$P=j^kE&K6Jl8N821yKH_-DQ5P8UA+5>o3~lE*J(AP*1*vfojIRVmX9pz*
      zt9iq;8LSbso>H~iEwV+oYy!PuedrT+N5yTKXrknFT*F+nWc3d3Z`(=f7316+hWwu4
      z;058oLT!ptNK1MLLqAaoA;CF8DHkJ{#xOOtw~107XXS9H=Rhpb5~1x!>EQgY7`eBD
      z!@C#@;pS-UH)T1U*@Y&sgXg>WD3jgAnGl|E{|D%O^6WUrG{@^4cQ_`~*>FA^$?xD?
      z7gy;x-NkI*mhB=F{A8o~Y>cK?x;XKaDXZkOLtMDX=raPGN#S>YeY%%n1xGnwV*FW*
      zv008|o;ViR)>l!)b*>k14>#~G-o*QO8xLr0;vIa96?}pcK1Uf}67AR2zr|gA&$B;Z
      z&1Wm!V<ccpYFFr$4-me=HD(!Nw67SWz>-KVr-EWU;T)%&kzA(3<SadrA_?gUEoxB7
      z_7qJqe0@)mGg;cp?ws%EJ>t-*t@HgcprOj_Ok}aah&AS3_t9P?0><p4oxvMe^y@vt
      z{1^SUnIQ{{!M-JGijVuP0QYCqWmIhtw-(hDV%x)Y%=ghGE{C{U#I;E-Tpz~*o02~I
      zI5e`}!=aJ;9u5sR0~{KbeH>D|!n(wTU}bKxBSZ4Z@+IFNUuL9d%3Sczcg2@{LMVm2
      cL6BWtI^bITjPl^Mcue?T9C$4%{?66E0jO(4DF6Tf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QPen.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QPen.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2bb3ebb3ebc6233555681713a45adb9104ed3b13
      GIT binary patch
      literal 926
      zcwTi=TTc@~6#j;`Y}sx_uF6GS@Io)xRY4IUCO{#nDMW*T7@vmj*p4o{b$5!F|G*zG
      z{s~`bqKTImAN*0qGusV5h@0%0-E+S0eBaE;{QCX*D}dX0V4#m-qUm>>m;8u3{Ec$j
      zLWIt1<ve*Td;@8Q*)z*KT*)J`AM$ovgbe+w(wFKX!)T#?irrOV@Jg%{_ZZR}fh$a;
      zFkm4AlOa_o?isL%a0*}Nk!<uh2F{UiT=BTybZVX_n%r9po1H`9tIf9!(N;3>vpCN%
      zvJ)tq+XtF%M=`%*B9CD$HNr5KSc*GQf9W^LlZhP0ER5p<gVhwO%A?j=81i>yworV&
      zmBj?Z^al6ml-=UK>j~Q>h;S2$sG>VeS(wJ9UWdB$#lCb^E8g9fE?===V}@aX%A3Bs
      z!P{}IrfXL%T+_8&LVXlSU*~UFnA0uul;4(0gmrl+l?jHTg%Zl-PoFh|QK;5xReidH
      zn!nRIJP_eie&7j);d;>E-X0I7{!fx=)shjzRQ<mLU!h6%w#P8^&mb8X(Z}m&O^k|$
      zE2DN05jFcl`rMQ6g?7DUVNp-q+zmQmLu^THWk9P{bR*0VCI$VZ=_`YNiU$3Cq^R@j
      zr7p7NAIN<`{tNQYh6lSC`d0pq-1htlMt>&Ri#l7P%;YhJ%k<9Dd;PeJ!YAs|hk1&#
      z$WpvRN{e*TcQJ+~OyWLySVkEuSi>rA62k5&qXH*(wvJnLT^L~t#9p9V)2BxPFs3(0
      m2u9t^#Q6fPjMhx)1o!@mo3sK|65otPtR5&4VPr!im;V3~h{)3b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtAudioClip.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtAudioClip.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..134f45c3498bbacf2db33458134d3c994ea54d53
      GIT binary patch
      literal 1506
      zcwU86YflqF6g^YgF089O6z~c4U8=G^@Cm3`L`f=&ASfR+V>^`5VRzk5@$n1%4gLW?
      ztBEz5X#8a2k22obE^C7ro6O$XnLFp6bM9<^{`&kCz$r{yNHOH9Ufq4d*SO1{Yc~)g
      zbf0N=R!`I`(l06*SV%J**feW~Yq=&CLmmVow2)=!ZRP}l653557?@`0DJ1~&zOSB2
      zJ<8BNR#wuJ`Z7aXerSOqUGyuW0}NXoSZHVHEJ;ty)K?#iaGpO_!T|YYt`>MG&3n9<
      z9gAUl^UXSndsTN%htjK#4lUSd!*&N<ux-Nbb<hW!!7i_e^3y3loYfX~GC0vm>AO=>
      z2^;;`ZH{!C*<J_xFu>4N6}reh-;>1Q4%aITJMu$+mo#N^4)&v)L@J+GnqD4c*uGw5
      z`u6n~Wf5rUd!$>h$Ql`4`d>ecY0E^<<EtVuwY4(2z09z!)T)IRQ_EDPJ2uCo_T0N$
      z8a0l$)kBr!uWt~cK=GFp@=GRZi>ytoajBYSQ>&J2oWWTOBV@_OzB)LE^HhwiniR{t
      zu5`T7;#KQ4uyB!K;2*-{Bn!l8@Q>JOr9_phInA|5Y;4CkL;pNEnG40Ux(r1vH>-07
      ztTt@p5_Xdy<@<r@&V++uxU^8yK3!3(B5Q$P6Op|hSMrrGSyK**(N&rA>tR_KGf8nv
      zKZXq_>NB}QBSXVB7neRUhn^iUAY15dh@$yr*atZ8Xp+J<dfF6$5u|Y%ozW^NkuF_)
      z>@~rrDdq|d^w8Mx1^o|>HL&Z}@sHRuQ#jGU;9H~@-%)-y_Fw=9V&nm$0qR5=7l_D3
      z+8v`?KThjcFo<hWwL%jchj2I|m%|YpjgUH#C(0>0(N0-MBXM0g7PA_sXqaXUtBqnN
      z3G_w;-`7k^;4?Um6JRW5z6;WsG98HGN%})VRBqj`rKluPdJpFZIzHhv`9|~axbOyB
      zzu?k?p0NflfBRFtkMMzcWO0wYUqCMwN$CBEiPOZ2nJ}_oz0L@oHhbAZx`C@3wLB!u
      zM=c211Yvj+gtko(%7jq)8-X!ufgQ!7iL^JFAfBOUax;aGxV{lkk-e)efSH8SjVSZx
      EZ=gmOqW}N^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtButtonPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtButtonPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f1ae747e75e40098dd8c2204c7441a535cb461b
      GIT binary patch
      literal 1370
      zcwUuMT~pIQ6g_KOLPG>f0r@KORc#9rP!zC;lmc3&s0<w(AJekbK$_Gvf$_=Tq~n02
      zGmg*x6aR$c-IPhIP#qt#d-v|$bI!ecv)_My{t93oISJPo#>=Lw9%(0<s+~G&m2+Et
      z<EXpNy6ZTW`GVFGf(%nF!m?JSYMI=0>XB^>1HVT#a2VQFbW?X$85R=x7I+2AGLCg8
      zo%i?Z0O{mDLojO{a2Ww~D3G8qEdB?MuhfI;%IhY7=2nW_E@(xAGxX%Gl4k5{wl3Be
      z&Y<&JuQ5!vqG@E8W(W`=!`QzhF@&sBQ`94JDNAA$B_gbZP#LOm$E}Kt2Nm2ve;5qI
      z3ZfWc=)Ed638R$TAE+{77*jBg35NDEck)`18w8L@)*%edEUSBtt()bvObk;B;<!bz
      zH9xj5aXC~73?J$?&l-B^n3N}S$$beah9O@7KOt3WrsU|BxhZU+Wk$grp{1L&)VC;s
      zie?_jP%$rIj<%ZE-qsvmQE(UcsA478wh5-7SNM)@7~*oMRNFF=xG$RG0Yj=;>+|9f
      zFFEPlW%=8rHjE`al(5V&`u9sykj4sw?B%oTa+i9euW<pJzMBfTiZuz38KPHgE68A-
      z%2u^%j^}0QPc(2cFAJWxUfYUwpdaeorW{$0KH?n7w=OL;kGyBOc8PE4qIV<B?KvyX
      zQ43JH=nK&U5TaQ^JB?vl<;WkPSxQaMoI`$3<~3ZWQKlJ~LmRyqon(#G!_b9pz_TLg
      zArN6j(MwMXRR;aE4vLPwfZrq(5fe?FV<46Kh@o$Yo#EygCL2_p9`qs|Tq4M2k4~u{
      z^XYCQaRK>`w2S!o7bIT^#7N+W4?O(|v%}|D*!h6PnKL|UkWA1qV2#EMI<QV!vlzez
      l2FVvAom1Fq$}{d0$0=@usAF_;lVU`k^q0^M!xInv=`RS*ML7Tf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtCanvasPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtCanvasPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21f82b53c182943232315d5ec9ecf417ff5ef7f7
      GIT binary patch
      literal 846
      zcwUu~YfBqJ6o%hpE*sbN5-+K(S`#lNMsZs!D5TU6iXeodD1Kjc)M=BMbTd)tuWF%G
      z=m&p5e^l|z?l!TtLHw|D&dk2^yyqO|*YBUV0N&u0gFZs(Lbd&m!ByY~*T!!O5&EBv
      ze_*x)brrPsdG8=iSm-6wjiy#YnOK=6O#ZFvatPUXQc3fkuwJh9;2mjQ|0GSd*7+9$
      zs!PX&^tL_|E>alq;J_nnJcaY8(g-zNlS+JOH%>%&6r9urVYH@CgZgn0O1n=E)8<mP
      z2=l#cy4_U?DK;b&A1jHF(bvk(BmbaFcC;g6R@qjWX$jMA+K!)lc!mOD<U*MJP@Ib}
      z6laI>3)fgEFLgOPvLRGUYE|tAVaCH4UJ}OtHwG6)%sD7=>kt2Wn8y^sVY}GHJ=E>+
      zRP0JSmi+zBSM6<-*e=CihTm42qk|l;{k+@b^Aty?vb=Hw_Zz2u806LE2)ss?AL9^b
      z#aM=6i~v!V$0$Q=HimJ2t%L~_A_E>qf`7}=YBH4@O#TbsVCiNA_hL~3C%nK^0$57`
      axypA;|G@0m4kH_#Z{53}>)c<6REu|TIloK*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtCheckboxPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtCheckboxPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c3bf72b2b0813a320fd30287c1774986bcd884af
      GIT binary patch
      literal 2071
      zcwUuNZFdtz6n-X2yKNYuFQ!0?fY8Dwfi8tg)wI+a+7byVZ9;0Rpqpe!mTt2#*?>R5
      zKjA08$!Ad0bL8mpo9FPOJl>hzB&|*K*qmf{?%ey_=RWt&^zC22{tjRcmWBYs<#M%Y
      zJTsr0hWWxZYC_bFZ(L*3O;$v4ui$+9kSrQP4AcD_o&B0q6;;>s9Aub0>U9{2VW3=h
      znl*+q>5f<1VO{Pd7>1O~1CzW?dtOb~vW;zF?%gvR721$ai$&Y2TJ9Z&pdQULgpy84
      zXgI|X=@}EoNsMxgfiny)s?cFDyvs3+FvF>|RTY`$enHf8X2BK=V`-;o+Ih2X$+d61
      zt*86wkaHY+&vFyT>q<oPVFYnjCZA+j_&*SBaTBUUw_-IIX8Oe+R+=OV5*EY7|H?)^
      zab8qqZ^nCYr>s&da%u>-S(AlKb6f(K;$7jmfU6{8FUA_845P;o!_X1uxQ6QtBW2+p
      z={^mQ9_=?7VajN5+`t?~HjYJ3>HPww{yJ`P%;N(&UcybA1z{8Kb~4+nmW`}ix2k28
      zW`W~Fd_=yDj&DRi?&<+2I2N(w0cTy)6>21RCC)O(Cs^@t{H>6_D|;D!YSl%~DVJ>_
      zmAuQLVMwAahp~>7hI<SXz3bul4EL#95>wcs=!#N%pJIBbKs+@(pflIm5znbZM#>fY
      ztMV<3G&baTK4iFY2tYb`DdhAgQil}SC_E!`A{EUKV+%PAS%&lfK4~0}AS+kNH=CkK
      zYDBupRy$^D!ROf3utP=m*yi{GUos5WoQA8cN2^}h&MB)pGFnk;AW95um)g>hon$Hc
      zQtrugKRwh8lsJUEEQaV7uv2sfq;Z<~XPsufDAp`_AB-P8b+Zx??~`MYz5@u*hx$tQ
      zZCGA2^c<qk32@qdhgJsd%fAzEaB}AWBR^sM6)gjZs1UiiK+joBC@Uyz45$6z6eS7L
      zQ;Wr~9pKDA0~axfB^7wlbHfzQscahF!+8RcZx?7cz(T~C(>f$iwhwO+iu5sJ2e=%I
      z{fwDEptlffVYa)v*~0Da>f;vfbZJbG06>yJ?-J`(O0-6mtSd^~gZ3!}@F`aOv~P)a
      zh@N>uP5y~dAAG8X)t87&eXlIZPRcd1XrY$~4J^GuddIhq27c>OJa>Rh<~262x3Jx1
      zcT*L7pCm}rI)k&=z*TJ0KgKPRE{kR4Na06x*0yLjPjB0bdCX(i5i^g+ctYIgFoUn~
      zHKAvy#U=`B1n9Ez>-tU&128Y?$A3iVl~<r5AB?wOe!xg9{tFe@LXo~t)uPM#k{YJR
      w^!tPcN{(6)S5P8Wg0!vR7PW0cX|Hm1Sk9|4WQ@ssjmC({dkJ!$$_l&kH#CCVdH?_b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtChoicePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtChoicePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b95253e1a0af4d0ec1fb8f59010242e9ff90a93
      GIT binary patch
      literal 1760
      zcwUuM%Tg0T6g^D>W5OseL6L_jsL6m1D2N(BF@i<|f*?M2A!%_m%wU+HAK=clAK=Qh
      zmIYN>TCV*YH!juFGb0nhXjzp`-|oJB?z!jQ=`Y{ke*!Rs+Zt*Fj;z>a^HFXiXXc)|
      z=9-ix^NDNDyXl9Hm6vl|YlsT;RdaJz*Bo2guJ2hVaPW7p5J#YH%(5+aLSQ(Nt%A4c
      zIK{`7o62sV`2eZpl0Y==6l5F`)a%fo3yl5`&M&4OR72LX<!pI%S(X-a%S9>BoOSZK
      z;!>_;sdca!bst*m0=?D3gxRG8A`B?d^DjyQwa!yp>Cv<+OGZ=@5i6ls)~-vpyrwd4
      z*Kq)CF$i?%XhEmI{y(Lrp_{qwK#ijdJvxrysDQpA-Ha<&(@xp;!(`NPpN?ZVE}#X+
      z0<DQm(vMKg*(>IPTe9qxRGb77I+8GWH&-YKv?X?XWs*w@bU?>R6|<3`3$iHlt}JBi
      zf_$b>OdW$5Vo$7lCrq3HnX<@p*c=%SOCbKhD#<VpQ^Wbn9+MkP+f<aNloiK0q*QZ^
      z2@EDeg_MI&LDe;tso;Eb`4P7j=NKk%Ny9~f?!T8%$0RP3niqV&EX(Ya)-c%A_BQpp
      zf@uv?0xf?y)^Qcr1Y&E>y6f$Raw^BkJB!|~*RZvgQjVH1)}d^*{MkSn%i@<XYI#%h
      z?gCNvl3aB*h!yjV$zoAe<(7_{sw(jXr(DX*X-j<sO_hCqN`bMLSbvUMz9gzCHSFPk
      zjH?XyBb+s(e_#voH#BRom;Z6jV9o3J^z5V6<GY~&jeuu0p_w4cYQcWKO;NO>jq9jt
      z{Q&+YZ$;JfWo+S~@eYSRqbu9LiNoWOiPvZ}`nxvK%W>j)M09n&`tjA^A%CYrB1g#;
      z7$wYk=(xbJDZ-DDPzni*lj4L&(C`BV1l0#}nzSefJ<nj6Xe}f-LMuZ1EIoaSFPLJ)
      zqv+G?*u>}uoVyn+n`%CW2ffiPT$p)_@qtaGcT&8JdZbD13feJ+K1`EBn%~}4QoL57
      z;n22*LzI7*G?Ki39XF_<vJIXHWI69DQ74t!S)w`epRZD)8O#PHQh^ja+r@*Q+b&U&
      zDC%B!kS2>W78!qydV|sCpVx@aj#odvg;CqQF1o{H?=sFkYI>I+`uz$9-2sDoDt^XG
      Ra4***0fWJS!Gedl_!CxubY=hm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62adf5f30cd0d9a7e0830faeb2a2fd8ea709eb0e
      GIT binary patch
      literal 1920
      zcwUWE`%@EF7(JIfHi@f%7z%w+t=g~_Qlw9yDi6_MiU>58*0wC0OR_ZXrpt!tU({dQ
      zj)a*y(_cH&KdRGn?<OHQI0CbGKEChV^PTT;`S-uS{su6GJp+9Lxr*1w@7V`--fo8Z
      zx|Biw*D(JmT=bvTeNTGfy}+(lU1#4wTwv@q=nhCAuABnbi*Mpxqia?mIp=zAcuQb1
      zw{o^S1^$eem}${3%M4;TXTpFf5X+61(h#^{q8|eSre}xlfqb~LC!J70tf=5c6A2^@
      zT%y@cwN8NTRcfRg!my%yOTfrQnbfUO6K~@kfpbc%Yu6TQZe3uY*k#zL+I2abA@n^H
      z?_*3LwJ*c@TD@vhX>Li;T*ik6t_WN`OPMCF;+jChZ+fbqmyT0)VNCZC#tr0pOX)^U
      zShyi@z9Pc~+xevu_zka2WNy5ds^$l?X-pt*V3M6X88Pt*rl_G=bwhcg+~}ezciP0K
      z_>6h>Pv#lQy^0<$DZO8q__CvG*$-rdR}yAS%<6PIHS#F#uT9)i+^UtDLpkr5m{-$I
      z(AlUf&!UMX+~vR&Ob@0vc{CZdF#Sc>ldFxVJ2Kd`cWSKYV$pZ(TFDMv^>^DD534R0
      z*?QwPc9x!79IJ;MQrhW+xNXn)75F{p*W_2_cXE*3ts{YO1SWE4PpO(2LrJabV{X)I
      zZ}wbZk_z9O6G&T4GuyieU6|_U6UDm8wmW|P`8?sQOuvQb-6fiCIb=1-s&p$=mfBZ-
      zrVbW5%%LvH1J{v@zPIaE8UbIR?+IKvE!hbSGhfE8i3+$pBjh<1C6L+h8-XL2T{Wta
      zQ(7~r@{o%|;lDWwQ}3Ntg0_Ja&otc=^kwMXw~mmp#tw1bnmEMZOAKvg<Jm+unKh1(
      zok>}vsY8rd{VlvZ@d6*TaD65{n*N9IKk;!3H-AIg8coxPqMsi}ziMHw6P>eKxNTW4
      zFw(-pA57baWuD6z<hg)2?o!k;F5o`KP{1`j;NvY~8sG4-tP-)t$T}Wj10`%?o98Yb
      zV-MdUz!vV2<%uc_`@|IhZLMH{#VYFoi;ZckNXEFfR%s=)^^jIlTWhooD%fPEb+&36
      zcbIWXGjk)N*6~U9@fS#1H;(Y_aWxt3-6pH86%9wIuA(H>7RVu}`1>~3G<7MB>6Z{&
      z9K{d6cj=NkAT^a4f!b68KjNo0K}AcW?^s84(bpI6N5QTJp*tY7r8>~3t)FQ{%d*|>
      ok6;Z^e*|`Pe*_$q+evTgDu5IxI@p4IRrEoR=u}s9RioVh0aXN^BLDyZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer$RepaintTimerTask.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer$RepaintTimerTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..753994d8f9c91349f42cd619620d7d9928cdf20c
      GIT binary patch
      literal 1132
      zcwUWD-A)rh7(LTzyR<B&&@Kf^5w+HK`B_lW3k)|+Oqw)Cq3Qhs6T8yxmhG<StN0cg
      zR}(LM03XWu&2&Y@V0M$Ub7toIIrDup-+z4l24D}5HKZ8!U%8?6+J0kO_GMs=h48J5
      zz<L?9z0ufng&Vw}rTUQ=+m0LboRRQ*_T*ecnxUlJ!oV3?R~roMEulkrN4O*m7}7E>
      zL!+A{*#Sc~7&w#qE|I5>>jZ}k$IWEE$*el`wfdy1?VX7n7#4Ksn9YNuq+<?c2HtG-
      z<<63h46>3f>(HibRmaSft?9^3*}9HAW*O$Yjw_yrqZ3(=lc8W(?0Tp6uy6a0oX3l4
      zc|wLKiS+(ceku|7LpO(exUZo>*>4Eb^St4?6X<B7#W3f`aR$Dy&;HYoqd)Bq^4P?-
      zhAoDA5_=sxuowy#p$Ns*IT*GRw(wVT^2c82pNeOWtXKJ()s76qpm$tX`0b%RnTUyo
      zM>k9S%bTHiy`<QnCUSZhS)^pgiKS$})i@K6xp<^b1I41eGinaHGX?UWC-z?X0S$9A
      zLecz!MY9&cFpYGCifLpbte8eNLe<=gQ2U_#Z_$5Udhums_yTgggaR+4%nhvaC2a5t
      z=>rZ`{swO24xpG+l2S}+=88$xX~m@OjABxGmK5GaIo8=xbD;VWb@LNy1cOi^tPrZ7
      jVg44Emq~b)#H=YH`qVWRlESX~@8N;6rALp4*hlIo8BzZd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f41b6b1a33e027323401683b32c820856edcd822
      GIT binary patch
      literal 16303
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtContainerPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtContainerPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..47bd94ed763dc96905a43d08044d808232737bd5
      GIT binary patch
      literal 1580
      zcwUWCYflqF6g|^zyHFNT9=`BV5V1U@AP=K8#sp(*QVj?;(fDQCPTG+&Tenk@|Ktb#
      zViQgL0sbiCo!Lz(o5i}x?A*Eco^#LKJHP+@_yu4c+cpvm^L5$De{es!dG}c5Tb%p(
      zk1D^Xc08$EA-TUxE*r^zWgfLW$)yT1(+o3bv(8X4q#p|@)DwmWxzah52cFkF6sl0_
      z#d<{wi)Du7j#uLuSQv3&V~AnAMEtKhM-}cLxRoYnm?(Kww^??5q0gZ+sT!iquy9`8
      zGfE2#7KvcU4wA``@{Xmx+f<xls;h5IbU7_P)#j?x((11`xP)njkqWO1S#nRj4rPs+
      zQ`v2bnyX0kFqgF;mI1>J2RAilXivRq1qmaR(3f84swk-jU34<Hcq%Ax7Hr(6enq?)
      z%;Api<pP79E7GTxrbQTJSaguZEW?;+?^1_o*0LsK-Q4LNbz8Jw^R{xUhx?sY%kvel
      zk+bT`DsP6V2FAcX(<;(Bp-vo&nrcv;1{d`P1#LedVaV)z9ly$-3q7`}$YfTvdd!k6
      zi&lzW^C<1~5a>Tlry}_++U=#~l`b;h$V|YYe};Bo4QYD*qhw`+G>l;!FxCZJBob{+
      zV3M+vn8I{OyG%>R*ePM!IJOL#69hxDq#kVu+@M{@QcGQ2j;eV`sgL>yQXv7u)xnjY
      z##CmwHW>IU7B~|l`8%#hCBGoa#aPL=23LL=TRCgSse#*Jp7RrPZ!P+|nEx8#*z4nP
      zdK`Cq9Qi)=xhS|Ct9*$R2jG<uoUpz`knj7Di5_z0KaiDJ<UK5e$bF+Frdz@QH-ljB
      joiePNJ8El<tc0=F$+C=fpR6S98-vH;#g1dsWNrNgoOSWV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtDialogPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtDialogPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5123eea84c2778dfe7a2ff06d582dccfed3f6b36
      GIT binary patch
      literal 1208
      zcwUuLT~E|N6g{(BC@iDMrznep_|aXEq9O>3Utmy@m8cL*cq?qPJG!*E?Xt>0@fY}P
      zVwS`Q<Fh}?c%~&=6p69Pbk3c7@44sRX@C6u`VGJ>ESX3NjFr8*{l?jMY^M?0d#+ov
      z--Y(e@QHG&e)$D$6UOObua#Hw8*x~>z|ij@35h`aqViPuKw!oyo<g?a`_;E9EEHS5
      zn4pl`6fl<klAA#qT@ogwz}$cEEc?5AzUO*jMAcnXp1W4x-F9mm&UV!m=q>s?PIc3%
      zDQzDe8ev5R0^_HZNxCZtq*+j4^k0$$+Wdy6=h1VbOIFk)BA2CAwgqlj-_spmkT{RQ
      zP6!N3^dT$I|F_mmTw-s3ux2oVQHe2J5$Gtp;f4xzZ~ay-rl>kz*<KH8$}1N#tZ-H0
      z8m==oXvGd#Cqr|an%I)aAurISf>&;!4&u2{{+6bil(>m00ZFQ3Zo}G&v!^A$LS~yP
      zc<z^+s?ND1F{5*I`RI@x5ia?4uN15~q1q=yhqcOQOAo2D<s?sZthogiB<^BXK)mN#
      z<@&&ZHdHCB@Jp<?s$AimGwXi6w&SiSEvx7Fg-+>)IW#uI)yDtD<Zhya?@n5)JWuP>
      z{KVuTGM@=kIKy{_J7A+7(>O~s8i%19=YR<HpqC^X^`W1Cpn(Al(l+!RAJHqa=omYH
      zh@pJ`3od@gNE4Tv7*DJlO-v+~-Nfxg#$cp*mZWnmcaJjWF@=Rll8mWiNrap?_mrL&
      zccJeL+A+txSk3|4(R|tbaCT(CNECd8nf?UBIK+HXyO&jg73Ms}5cgp`i|WqA9Ia7g
      bQNUuPC5!t+sR%tFN=N7+kwO2Xi23m^F|Yro
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db22dbc97d6694b90cfc820daef6c020870e7517
      GIT binary patch
      literal 664
      zcwU84%TB^T6g>llYOSIOzD+c7!Nb@XOiZkCLnP5OMkB#>p%bk_2g_8x%N2<WKfsSN
      z-f4*ofw<`0N6(yd?#z6Be|!Qs#;%SOL-{d?tY`PlwcMe!`kaT>tF-RqWv|UWk9!Y(
      z;ECZa^>t_rdo$pT(CzUAm1Q`XL{0KBWY7J;mlq7DC1(b2Q;6=1FKy@dUtRS2BH)3v
      z%Pj`2E<A1^jRg}r<`{C0AMl%q)WW9Q?sA5_BRX!k<%Yhh$4yN>`2&XPEZs@FHba`6
      z&=LISl_4XBff}$d%{Gavv5BsvCddr9jQVPX4HIi9Qim&Xf|afnz_=Gt*x?Od`QDsn
      z?MSI$A4ExChHh7*NXJ3zJXKfJPgB$@)x!~tcS=(*X*DPUHDqyuMauRP7?zL&;%pf!
      xM53}hR_VQHD4-Y%kkv7LjiSP2DkH4_B|jsm9g~|0C?RJw3bv?b*p7GX`~Y}%n0NpH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFileDialogPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFileDialogPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ea094826fc39033515ca00ed4246b5c61dc398d
      GIT binary patch
      literal 1336
      zcwUv0ZBG+H5Xb-1r-OPHp-@pki;9$j94HE=MiZ&VCdH@_-XCRKPTRYB-AepeCdMYd
      zFuwLf8E5y-K1iF!7rQ&VGxPh;&Sro8{{92NHg*j}2rD(WZN0ZY*_M4St)>vZ^-)@H
      z<x8h7ijH0PYH#?=K#Z_FBD6m&L0B9N83Yj$PaM~gPYHXu@(AFO=hZ(rvQX~&dXU1}
      zF(J0^or)x)xMaeBN!a-hRv%}o?6~4}yKy4?Bm1N-2s34`V%Lvt-%<PUFecBO7GZUi
      z#^4nTgeWT#vg2wZ#JzJ@HDzw-Rasf}ig`IzZM-F9yQ!{y&BRq?CP7#*k;Wonwg=ev
      z8coj?t}Gb1K}ZiFC$WUAiDld(7&RdexSd+1lw{@|6DzpOp4MMaELTzmq^ey)krlWj
      zxj?pVyEW@j`i@>s+Y)*0klBYVQRvVM1YDyCDKeRVH_22wH=x+HG=R(eXt^dj4lF
      z{nX(uPKViw#j8}ET?jdjXAQbEEmEx#=0`;kl80W~uZXaue_wi2<#88TpGTa3)da7G
      zo+o)%;`1o4Mt*&xgX9-BBe=|Sl2>303I2vDwz5GOrf>z&)-+}qqO3G#`JcuxhYasy
      z>fuBD3#O=;biRZ6eEuu0|HRTa-0a|XPb#I+yPUYk$j4gF4AKHQim2Dt@vF#%=x01s
      z9`!&8o%Fn~Uh39MSVLa>3F~aBx;Ahxggw-ZA+T2(mI<7FuuTmkSmO}~BM@65VjK6z
      QA>NHZJiv}d1c{IS01My}f&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f70900ce602f61692e2aac5438d09a05e3113df8
      GIT binary patch
      literal 2250
      zcwUW_?Nb|76vm$$C<|#~YC^Hn)>5Q)6DYB@_Kiv#2$ZFPzR-dcwX-CbWIJIuCL6@+
      zU*cE4`ax&3%*c$kU;N-7<@ns2B_uU~lbJpD^_<^%&b>E(|MUAF050RXfsnv((XFRn
      z*jskm{>D#Nq^zdD_S292S<m$sq+fONH3QuO{mnHkGXfFU_MI*HVEu*6`vPKKpj$Z+
      zIG;Pj^F#I~1bS{euH#P%#LZlr|B2)>9Zh=$8AcbP5%eJ(Mhx#7I3W;iTN^<f2?3)h
      zwOfHfGns3T+YD*oq`<i&zzn=cUG##o?H1Ekxh#uzIa4jxH>K;(Z0BXgcRaTj?^74c
      z-LlJ0VMy&B^0W@)VGQ83f<7Z~GDuCkTB2-jk=gY@;DZPZ^oH3Qir_qknX!^XV8lF9
      zJEc!7=eTmQzPT=|Pwe%wq>MQ)Z<m+ts-ybBV7Fg#SgDc2d<OMoNyLV7++GZU3vbtF
      zzk9E0S4wJca@oM>!Rqd<>%}F3Q+uivgVBBE1kw?FjLSS*N{zj30y9Uea?pYnMrK$P
      zNOa&Axc)yPbjn*Gv{B&+EI74_SEJ-zrmhc9WTW6yUfnG)g><L0u<x=cz0LGv%E0Ne
      zypknSIB&aIx-Hw^vXbU>@|i#%{bp);9z`9=;wp}0WiX_s=cH3C`HhL3v<nQxYs1ch
      zy`3p+*>0Ycefg4IU2zJ2so`2VQbV<1%rMucEh}jmxF>MpZSXK=VW~4d-(0z@s+Wsk
      z0gD31YkFDWtK%(Tz+*Zf1zekEGTsJHpWtv;S-JvK9X53;z#$4MqGd&SRkc2k;0A8e
      zJ=xT4`Hy#|l4q&qwy$csNkNvpdNnU+9euspF3Y&u&3j9Cd{0CC9Yc?9@mABuIm2g*
      z-{b6k&s8DXtEtf)L`GlXoxc!O<_-FPKy()atMOAi82mG(24AE9H=IqSe#O}xocl$4
      z{gB^59pO_(y2dBwI)<3fC~o2t+`<TF1{yJN0UrUnbrB{B6iG55`H>`w*gA@2><v<T
      z17n@g#$F?}gYkX5VV(FS@$L}iF7Yx1nBt$!G;Sk{Im~Fxp$0$`(+V(E>k5-mNw8!A
      z@XG+$ObG&apgNGJA(us-c|>rZOgWt9@w|w|77nw?VREKdbC>~#5^gx)SkgrX5}IQ_
      zY+Hrm=;rq^LoTuQPuPFjQkg_ERDxAxC=pUGKS0YjPupv(t770u)%F%9XaxoQOxwx8
      z-U;m8z-9tFMX}Y!EX8hsuTTa>6-(`6c6Ia&iRWJ7{!dNl9-VVdgQglwo1if~z(YMB
      z!y_gZ(yb-7x)_XCT?f0tR2#vbbHDPC*o9ctRoTJQ#Y;RoD?c{_hP9iQh~m4Jpsnhx
      Y;+YPbz?v>Zl#pL=wu_@*YCm873yCu5^#A|>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfdfde005b13578e0a10040aa776dbe8e2bff99c
      GIT binary patch
      literal 4252
      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
      QSy7U=L<tza5GQZ{4<IvcaR2}S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d658fe22eda32bff420258fde3e90e1425ec0b7d
      GIT binary patch
      literal 2945
      zcwUWF-*XdH6#j0LHf>m-Ev1Nnl!B6`rBwkzTlvvKB^XL+Yq1FECfTM7$!^$e`pX~q
      z0~LMp$r;BtUwH9BX0V-+8O0Zz@sD!+?!DXXT3WE3<la4d?)RN@?src9{^z&f0lb25
      z5~vgCC_1&i8|JLpXU_S370dGaZuxze{9(^5TcdnTATF?P1Fy@rQ*h_BTZ6!k|GI=2
      z0*(HRHSU|fB_J{ao2KQfi@6(C-lyffK*NCT*!~HDW2x*0WD~Aix@r6U+3?+vTduf{
      z<@o(wlLGM}w_qg^!&U>EU<ho@+Kx3+E9We4!pxP(-I{gtW@*y&Z224*<Nl0Y73kcE
      zH%y~nAjSY#v}c7VQ18w;GV!+cq9v!ymT)N<czxCKYZV#!ZUfI_XA=ZoFwl-233Lc-
      z2@zBzN$f?Zf&DnZvKB3W!uDkrZK*CzRWhAo-?;DDPO(2pq?ZgFM2f!E(06<4N!PAP
      z37j_2jUIs{fiGB2ZP4^0&@zU=s-Sxf^x<WCS0mml;8ACpWr9wbyz5X+8(wjyY!)r$
      z-6|o?dAn>cT7^Nk<`j5E^{Gr|1xi8-9NZ8ppjP)L&ulJh!#T??&gjxph>3z#^*wh%
      zX47wA06V44u2$TtrOT^SD{thafdm=_nrO^8jDP`ci&jP(Rbhq<9K-Ph&QgSH-Y0Pe
      zZ%KikBNOw{88w!3D}fn7om4F(MT8+JPXZSNc0a9#GKh-?yZqH8E@3=@v8axei-8He
      zqth98YhIpQ9no}b>7-ppJ-1NHTk_JgxGaNzSKZ=MePvp8c3Gf#Z2}w=k+Wl*0n}kh
      z-+SCsBcW}*_es1DGl35XxmIBYa>%owOhyl!{n1oZainM1f=U(%Fz3!^>qqhy4a`V!
      zG?|6Mi0j+a3klp1*t^<CnNrCrnkA)|v-5eY;@hs%h>}3dh}$96*O4>54$07)gbhd5
      zF_lCC6$7^<b|bMRZB^c0)xc4_#uAoua&A4*QXHA(Tt(%2;Q#c17S@<mwHJf2m%1Vg
      zp7f;2(l&8L&xv4E$5Tq2f=X|uRkz`&XV2<EKF`kryK>Gh_%n=WCQxuotx}-J>C&9J
      zP`&6(xD{sLS+{EJHT{b*?B;7#)q^BVYWWS@GJ@vFyzP}KVIPYT<EI{V{AUY7{xu=V
      z?^fD5>iNByPZ|2fxF*uwJ<Hf~pW8Y#^E=5EIF1Iqju!4Zv>T6aQ(y_SVLL(Oj#HPv
      zi*Y=MoqUeVc^tsc5Jmd*rkAlRoqm8lkFa+M`<C!x_|WwjEvv7(mT+h_igu;|oFwKc
      zGN0zO9mF9FsfY}XtRoV2vT@aV7)R7fDX5iGg?@s0tVDH~t2|quUcwt|Q@%v9u?RtZ
      zkg~v=1kwO~A;1Hi_&Ee<P{zya9zMnB_2C@-BvEIy0!bEV@E+o^frmIVwJR2jEo1nX
      z5V@5>0atnc8moSlb-Aus+BH(Z(oWV4FIxt89&d+yaqZRpC$c|aOS=0Jvdb8`ht~8%
      zWT(29FuIIMTJEpm%kypv+)q<b#dY}PZVFcv-(kEL@Euhs%y|_~7p4?}5FvzMI@c5g
      ze-{IYp8{15bU(&X#&`V@3Kx3*!XECYBhQ;3!k%iqxs383Jxg%Yl(2UXjcLJkmA#jG
      z2P#a-V}Yu))hOOs?8Y2rJ&!aN>GL7w@(KEJJ0kaiFv<b=JjH=P?^&LcvYyAnvr@jZ
      zLCTAylPQ0Mj{}Gks#SR|z3W$;SS!lARMNK*tcDP)fkEpVzm0PN);OU0=815=QxHe=
      z%Sbq%DhRpzj5{6d=iJ5A?hEeXT<?Sp)UE965PToe{tAJ>m-s3;*aO`-b+NTw^JC;>
      LU3l_q^>p`Nt8h@_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..922e7102897d728a6edd96ae4d601320c661008d
      GIT binary patch
      literal 17525
      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
      LWGrL}xhwt;MPbZU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtGraphicsEnvironment.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtGraphicsEnvironment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a13721aa2ae352fdb8821afb126d01f63e22dd1b
      GIT binary patch
      literal 2031
      zcwU8+-BTM?7{;GN2piH(p|nte1nGx1AIRD$MGS?0Krot8YZ%6k<HZsV>9(6q4I3Qq
      zo$+t*vRB^fjD;DUGG6<qIOD%yea`L@Lb7QyvpKuxywCIg&U-%o{_l@t05`FvVL%{T
      zb6Unz^T0IB?_J}$luhG1*LdV^G|lHvtm^){b6_<aPF*^#hCzX3J2oUjKyw=n`<cbJ
      z*>WG}EkB~b;QeY-N@rhS>YH+p@0vWYs*+(t%a&ugD+1TjZ}ZG-3k=?G?8-PINaz^G
      zd4Whevpo!fQ5{hX#W99U8ZHXVyxC00I3@(*PODxy;iOeb!#e_(`{1fPQ#v%nG$cvf
      zCxvh5OX8Tuj6!{v?CFx4!bsV2<YueBBb!_1jx7bo%8jaNZ<|d^eFvR`?h}hpbN#9k
      zvO+B9fcs29IDATcEP-=1>E5;NV#9IiHkQtGEQabV#5t*)jyZfFFs*_QOv_dXYP4w9
      zE&GQ}vo0wfZ;NfysTmcwX*som216im#xst2+*Fg!vzF;zNy)22bkAqH7-A|AQ=<=e
      zo-$yx7kLby=vY$7YJRG-Z0&Pj-Uza_T+24Rs>(tbG;3q4y7vSNOwe#m?wKw7%tEp_
      z=}g~!tcdRDxU2S5Vz*N*aGtH{$`ggaLi*Ils+%=w+-vRa$)?;bsjosvn*175tYbq%
      zvGbIMsC9gXl3$k7jN@VGT)8h;{g7N-8_$`i=*^^D8|LXO6O$#+?6IB$AE#pL<Q}<7
      zu(#eM@k*oBtjeOLj>S~y&YxEXxWcU*;q^DbhnE4=kB622F^&vFZS`~f`kAAHY!|Xe
      z(6hOh7|H&QkwaX#olU;N<(HU@to(vY?3_&fiRs6wBcv)nMno$4;`P73c?o9uf7P?T
      zMXN=cFW~}KFo{*n;0}+|Dn90ZxWb66pN#R>JfsC&C!ApXb-ai7={8N>4ZcO#n?@$U
      z{E6^Nnads`Th1N7!u$gTHZe!4`Nz3bJ~FBw;X@BCcl_e@KXbpf;ikO#uXCnFnr&c|
      z`(l=D2Bi+DTmThi@{b6t63-Iw7F`lZwxM`C1W<XlLRHi++2U!&A+LYabJzWtz+LG-
      z4fIQFz4cL(>K0c#@kFqIC-sV=fMqZ3ZC2Q~S!9e-B-A4LD69EyyRSP~5^a`yxF47-
      z2Q0DNA=duF=iT~mJ8)ucoEXY@;NfiIVc=v0Rf#H`ZkwGBjA$F<OFRk@k93P`q2jN+
      GsLKBwSH9!`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImage.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..737657f91f32398ebd752a4a4825b3e8636ef417
      GIT binary patch
      literal 10031
      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%0DjXt~-(7p~=U;`lQCJz;*2FE_OQ=FED|tmn*n
      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
      F?*RmN#)|*|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageConsumer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dcbf9f85a6155ed88b99c7ae49a323ae562120e4
      GIT binary patch
      literal 2774
      zcwUWFT~ixX7=AXNWV1kuT`YxIX=@Du8!Z;Kw4l(hC=^;MYEvsqSjb|MO_L2DRheGY
      zI(59M&Nw>bIMXX`txBs-r<Z2N8UKMl!e1ah=WM#r3XB&g=RIf7`@GNlyyv|6<DcIi
      z0(c3fFnkIQ&K0Yvd1Jvy8H-M;WSZsFRVQ`cNf(ScbJ#9css*zgMnFMKp2{1=xzyP7
      zyqR^v2r20Bd@bRTddyEj$T7-urla7Qk(~ndD+n%HGfqx{lBQSAwB~a3QcGpKWR@Mv
      ztSHb&q<ht|@~N{%CFdB^dEu#+tR*u)Y-Dq$0$)b>SL|vzYl^5_(Hk$@Gu5nFrf=xD
      zRkWM|1%rv53GNKkHK`ylY|oe~{AktCf~OVu6J3)LC}`8rgl1v2YY3x3SaA(8>{8G?
      zVinDE)xxw{z9`aB&@y6Yjr^ohw#2%=8E|qI6*#mb$49C&twzh;D3tQ1Bm5KTuE{8#
      z!}DPr+NNlalF^Vrmx89US+Ey2m9jIjr3PM9H`#6t5vam?K||EFQW`Wgs=RZ(VH{!j
      zowCsIGL9-}sF?1W#}nyvCcS0xh3=t>V>nf+(@2+LJ8zdqS%^G~{~y8|U!`ZT;2vz>
      z;hYP5(kht6ip5mvMLNP;Fg$A&9kDf=H|97;xHT>=qo@^+rPDhgXNClhN_~bj4C5pt
      zW$oeuZ~G&NP$Dzbl}U>ur!@@X%>O}6yX=%Dj%B`wY=J<fI-)N##FafeTM=)vp^`P2
      z)ipE1(u`|3k7Ej=MZ>WcOo^sq0&j<Lk#~68h#DsG4nfVURYQc(>#A>R6#ZS7RJ?~w
      z7?&PvBNNLN$1G^LjQ6RXQ7#+HS-V8i$t^I_TWm@FCh&oVDH!CyPIKYRkbB+Jeyjuj
      zb^cNbi({Tol0wj$=HM}fx7uG8N{AYdZ)!Dr65C$4plC@vqE5&jbJ`N`bN3TZ@UZYk
      zCnNhgf(XGUUOxM-PdpDfN9!}6hMd_W<jlUnS-hJTJjLJLTupP|&v|$9KJ=urhCRvd
      zHSA6HtfAws^m>NBt&9ZpBY;=we}aeuL>R<A?mp}KbM6GBCHN@P5)pme-;V?Jcvpzz
      z<GerlGdhyL;-C+-_HraSdN}rQ9KMGaH=;Mm2*b?kB(YA(sI4xF7j-}SAg*&KULi*}
      z)=`N7C>u~ANo-^jgyKOccn!xSL_dyubp3UC+B<R&R3T6M8mV@yp=SfNg~9;il;#4-
      zPEeYQ+ej0UB!wl4B&0dvNwY28%r<lf>KPB>^*Y3N3=k1#NjI(s+Jecp(0#n2hxLYg
      zIQ1l9gY}uFZ9qp>#<=WydofyZwobSeX-QaEA_>2=L=pjMy-DeU(t3;XhNLyhuVHDO
      zqtzgpo^hEffAVw_ztu#=YY5zJ3;u|)d${l|di{NoRUBvwk#<CH$W4hO9ePB}$z1zX
      z{1?1?BckwI;LiGAtGFr8FZ=t{Rm`^qH~iYCbajeX=}KQzkM6?y%I!W)kG4#&#A4Un
      zWh0l_74ccu#7-=>bX~3*#fs(=p^2wQ$8M;KuEy`If9<ijxgqT&#RM!SKF^f%ybA@i
      zp~x!RID!&-Y4>q&7!^wDU<`|x#S*_RV+GgnDL%qi_!!^g6a2*Q4|wi(T$knfMn2@4
      zSDu<zo|;#lnpd8hSDu<zo*K*3EXz~#%2TVCrxi)e(2C$R<GI!d8Jo0JavbGQiD~m0
      z&LPM4vcfxS(Q0I5{?F7e;UZ&-sQbDfK2S&f1FMMj#Jl6YLejAtekI=h@Xq?*JwJGo
      zx!vV6{@!AM&k1r1aeN_DPP$ND%KPN~5}j`^1#XtzuT_%u^TdY~+$Ax<FG7xxXlI8v
      b%HxW3oBm&JdQ~A0Kg7~BioVV=2_O4kDw!f0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageDirectGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageDirectGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd14c75902ae1b2939ef6dacbdff7302ae8ac6d9
      GIT binary patch
      literal 3155
      zcwU`VTUQfT6y6hZX9$P{69kDZS_o(=wX}%E+Q=nJ70RV8VB1MDB!fvN%nSmLTKlH$
      zf9P{xx|W)?`p_THAJCuE)o-5}CImucsVispoH_fu?0wGRpa1^)n}}|Z86b~D$wFl}
      zwXHl=Qp%o{s;a7y+ObkgR;H{J)O(tt=BznGsTQ>y)_WxyYPJ4wr9@u-BGJ`_Q<kUo
      za#gRW6>AYwQxXNsdS2Vo)VxH}x<vllT1B&_C7K&P4M7l2oeh6v4T{owUJX+lb;uN=
      zh(zay7u-Y}Y-BA&5_QSsBR@yoG6g6oQRjkIQ6KJ>v#PP8WJ@Z(Ea*9<w5AvuzdMs&
      ztEj>HSWCr?C53aJ#?umAYHd`ak=CVfAxGBO<wbTGM>PvAy3m*?QN+v@)%<QrU9IL7
      z3!>VFxpaZNW>$4mRPO_s5;Pd1A-Wo%E2r;=h6c#=5e);!()H34&5|f_nxYkZ#Z;J*
      zG!~#y)TQ-GnXb_wYHuD?a$%@S$@DQ#1edHs6W+X`>^1g#xu{fCr&2d%9ER~Q`aL1j
      zCC-)5#jfLvfwQHRN}Mqz(<F^c6lUOM%g`z)@&yOJq*MwidvYq1u_^Azbeq1wwl<x`
      z-6z+Ab|1eCeh1CbW@l}*IYyhox>?v{3A{Z~-Qi5;kZ?h!4BeN=vws7_0T27*9AOA?
      zO2*!Fizm)N{k@>-<<#A+Er72WO2ypLjq;JtV%yqDkFus}Jmqt?&g3gHEzvg(B|O~2
      zo)vf;d<O@%ot`!MM6@JB0dT{lPdLbA>N9D*q#I`v{g_2>po-Z-j*}YX+c2oM?j%W+
      zX~Jv&dmr{3vnw#3=Z3ZA55&kVL(HQo=1nngig}agXPT;b9|aXwP{MVzr{%38wrWw;
      z3Pl{%@Up&Z<kVS>ueiRZx7c;Yr^`4&ZTQRL!GBz!BEt2FX9vE7h)-BM-qtbC>$;Mo
      zHIkEKZ>Tfb_J+>=DKgGu>?SY9&w(<DtXtGcQ`Cc*gq=rG>Ln7<1&RTcBWCmnp18v^
      zEtC-XnWwLg9u~8AknyEJ?X_3AsDA3F0bqFeGH|d)@nasT4&xUS_XLD&e{>)uz9F5&
      z1w8p%Z?Z<0ldq}sHGTM&MmTy)*N<DC$C#lA-3QWxBgnljGHxmddDgKPW_zCi{?j^I
      zL=@@~EH0uTOGj*mU7KP03?*iDlg%-2HN#v5<{B`+eFrA4I|p+Up4gk59PJ;d(R4G^
      z4Q!N6tbQy|llFQSRYs%kiaN;j6{Q8IjLN5x%S<yTnTD>^Xto)X0;Vih=gz=1?=sB`
      zCfukFQxR40F=p~&|3K7RqX*5n3aC>Nn_m-LH|-3UD?(qxfh3}bj;jcImKM1YbS@2b
      z5?`eb>o(pQ0|#g9T8)+`yv!Q){&9>~2X7U;J4bjM56!A`Xx7k2kBGjb?~xlqb=GlY
      zZQc!s_c``@0M8!oVB8z`)o63VFSz~3x%a@kPv_`BaL?O$E_aX1-Q#w$$LS<TKhTe&
      zBR%vJ^!R{f>+uUcilgUW^rQpN1nY@<qrRv=8i)p?p?EmnUZd=UEVRjWZGGZ8dIqHD
      z@cJ|GpW&K#fn)xQ(D}l~b9E+Moe9c2IuoQiIuo=ddc#oxkxxWLM1B!zhyo(oMidm$
      z6GR~qvB$88*ke0%*dAr!vE+FC9W%T>cIYwgj|Xa0o(KwW!Me9z!T%DNuYmCqwf_}9
      veiObnZ4B2}%=Hy>>mPILAH&YEeZ{bUY+o^<*DoU08vwqoHwc^^p~CndptD5o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtImageGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2729dea88a04a1f44e3d9777f41a04df3366b363
      GIT binary patch
      literal 2582
      zcwUWFS#uLd5dOx8WQnznWNZSMAZ~jN2!aS9#s*_?I5-Al5OEG*B@NP=)$X!h`N%~e
      z<RE#>Q^;E$!dof<Tds<$Lh_m)l}h)lBFhfABGu0H&h&JD{dM>3Uw{AhJAfnjHjD;=
      zJq5d*oHAyNq%rF!T`9ffT|YVQkCcppJntE9(acSU(Il|rC7S;#32bl;PujszfsLaz
      zWwp{T5OQX1>5*nE*em;{m7MU6+#TAC_>Oy784%bv`hQ@t#gnFO`hx-;J!{?dW(1ms
      zoxF^q5$zf_V52}|Pj4oS_{-zYIF>=Eq_PplCV}qtpoGySuuJV)hFwUGSe7gp){s{y
      zmnf36b2;hyren9@6@lZ!hHX23BIilNmx(peByKxi!bsSTeQ;cDByx`J%Q^p06rI@0
      z0c;cKtj4LlP57Q^7y3D*?E>v<IE|tk?GXqhG=$N@ue&tt#vbCuEl(GT=6Yk7vQskW
      z_xJvHiEZrD5J5D84)kc~g)Y!MYvz42B1U-ifQEy-8Y)V&Q1qj8B&p#rj!<GbMb)C%
      z*|TnDDU>J~JE|dtV**jP>|ZuaV!;#WUH@pUD0(vy#L&aT0fuox!<(Q|i7|{->0Qs}
      zDn$h=hNDcxpoV6I!Z<AuubsO>G!bDI)!HeX;ZzL^gnLHl$8ZGBYB-1U)FKSRG^}CE
      zbXT>=MA2|%KjR(I@D?u8@oDJ?YW1}p=&{kaaVd;3fwtP-uwyx%hRYb|>=aFZbr-5_
      z<zhm^Ra_HjB^PI?QVO0^w)3kU1=<1n>l)s{q=1$yd)%NymRmF^^Jzx$o`(08$E>A_
      zPT+=yn{2*?BVaSUXlTfC2R74UnSyE`HElUoE@h>6)yP@|H9qR(3@c-JCcjq~oBX0l
      z7e=!gBuvcGQ{;}GVwUevBfm6-brnH}3dCsMoOYdQ$#5JEF2f1sr6qmIRY%lKbJewa
      zvgFLjYT<F>sro`e({cm$u8>r7!6xSz5uI<zIqv)rsZ;5z65t|W2On#g$A@h2V*)fs
      z&%8iGevSu{x(d=y%Na8#haLO2Stxr3UmbM6yvXG$o&GSs5ZJ%cx!3IJvg<mYFY}jN
      z87S3VMqg2`$LJ<9ORgpPqLTT<yriyuh^^Fi6HeL7$#W(rVAGoZI>b(}lj3cp&j>%%
      z4&Wc%F>0oJg2oVOY=A~%D~NsCZKBm@`V!ju{zU9CHqq4a7_H0boQ!W?!j|XyGP)<1
      z@aiIV=nM2zu=Bbu7O|H#zsJ75KhUv&{R6?=H>k5v!6BYV`L!q5O=4^TuMY(CaitQg
      z;0>Ng<)q%Xhyn6*YO=Ahd;1cG7LnG;S-OG?`csTna7AxlM26&dEBJtp-1?PZHy}sj
      z4Q!_I1O?KMI8M@iI*9$$@P~04$8d&L()2%zQR?-pI8RM*5e0g4s7q!shI<$%g0J8^
      zOyCF7_z~Ce1R4B{>v&2XmM80jip*z_ibR%fD=O32Mz(Z9!WIK*lxnI-QX_dtS0!)_
      z2BcH5HPD~F^?KhDOucUb0~|d~iq9BJHR{@eH^tIQ$XgYho0Q{QWYQo4ve-*N4--I!
      z+Z8yd!94;C+zSFFY^=h_l8&IchfLcq@_u)fcYnou7x@KDB76#MxI=`Oh;UnZ)&iSV
      z&jMx4RQ(+#8h9_V3^7UdHv3D>U`TD0>kLF{2B<Zw27aPq4bz;ef!$ICyRCbBXH#c$
      zXQ+aYo}jA=x^DH874UIY@Sl?Pdr06u!Fr(lUI=X0C`*x!uCSy?Q&)th_!FzLnc~l?
      vvXsJSBsDAPK1m$Q1AJb^oT>&LUB<)7_?Jug`uUouAJs)2twsGvX?^n#mtREj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtLabelPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtLabelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..afe1edccaabf964f2c9699ba8a57c72534d4606c
      GIT binary patch
      literal 910
      zcwUu~UuzRV6vfYNHd(ulZA{bFf7P^B-E3>OMX*Xlkb)3cL}`f6n>wtko7uRTSihDa
      zDfl2h`=P`;yEQdx5Fd8t-kGz%d+uevegFIgz#jH&%n=%q8u@R+_n{viYkweR=D*Ya
      z3mt?#nLOvzhDF$%p*l$WgH%bS3uT3{I<1;u2$e^%iuGf{JvW$v>!fM&HrB0Ra+m+#
      zYIX_MLHbHMDB-+-4MEud56r}8j#><2C7+G@J(+dFULpy#AUz6`ZkWX;KRvYc>v%}m
      zm{n%dTZ>TQdOXa3IU<zPV`ZjM{k=!7XXe8w*LW-sr5+7Tzn2A8u`&<BRe>d3Bh>%a
      zn2qa%g=wgRH8cd)u|cpSsXOum7pS|<0+56%@(*<utElBLe^cNVZnJdwQ@ZT_scd!)
      z))i>NBM8PmN#aQL*+g!>ZBW|+cd^6Q!>Mb_ZJXwt!*rA#$)~XybM===?wD%qmqGlM
      z`JI+|w{ecwdCuB=UgF*Mwzf~;eB^Kr7kG7e2Yghpiv^Avg$#?R0(o>1HHMgI33Yz?
      z7M8KXxn-t%ihs!zqgnS(aLMyN;mTL6jd5d)n`habF}BVM*BAiY=XIas2VD4JZa@^E
      T!T^z(M!xfa`JC9QA?*GDWM9y5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtListPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtListPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68aa5d1c301dc5301ac5194f581df040fd60a7e0
      GIT binary patch
      literal 3498
      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
      E3w|!fj{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuBarPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuBarPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7486b331a07a7a88f90d7ff959032568d4d3af38
      GIT binary patch
      literal 1748
      zcwUuM+fEZv6kVqs7-&bqswh&Fi<i=(#T#C#h*XejK~W^}_At;<N6QSBsh4+u#KgpB
      z6H^l(j8B^QFaCnM_RQE)2ofJ=_CDvVv(~=N{P^|x3xMO8(-Bb^c<fZOPt6x*)_mz@
      zS1hZNeePxFycx@>PMDRO+|Z#Zr2c`+yUQ!CV>w=cZdK@RMy?@KXuV)Nwl}75I#t|+
      zbl!E#&ulMOte=GpxuFFGE$^1B7@~+9&|xU#{*$O4uTR%ev>j`<y1Zyr=FP>jrI0AP
      zOJ;e&tk|*+H#P5xy{d3<GpRK><`kk-Rp{F)E`=8Nr6W~IY|NFKQYn(9B+iyq%d4&^
      zw3(%nKvvtKu+P9w^eF7zEJGc=3Z3h@V@TqFfj;yr#2;JUv{hb_BZVEQp=PR_U<VBx
      z#32Qp*Z`ME6*dADju=Q`h`=yN0j`4$EeK=Az%Y&~7$IZctvW%f1>wmW7!jU0c^bhf
      zmo<69CEWraoBi0d_j1MWh7?aPS!LOX;VjPUIH$0!DJlawTnO?DrgU&^9qL2eH0e1Z
      z8#8bTT?*|Cbk_CkN3V5URyeRlP%(@nZ{Uhtm4+5PYk5@?pOONeW^T(enHvjyO$x(v
      zjrCuUjTr-@ve9BYCF_+!?6zC2ELl^wKgmsVc}(cg&r4B0E&K}zfsQu5+qo)mKT4~o
      zGsB+{`#?8>Z9Xi*_Xt|~+t^O8FMy!~oq+G{K!POV?ZhtrS2XNK7uOp0&<6AwK7vsV
      z;#Pm-j8AF=hjr4u^^5N)r_qk5Kcf39lEq97`@ccg-b0ICjE=oWM>^A6!$1v(-$Yd}
      zkJHK0+uuI}Ts$qdhGPxg0p<)gu8nQjjmy}F2@KMXAkS#7@MO}DDIMsBF}1PZ$C;ku
      zoeWOkB-!?$8>i?+RYV%c1R~NP-;RnUnqNeiiNzaI%6>+4<~wwni{gI8cnuTj(EWtT
      zMyOqWqvlxITZrQ}rRQ1yJAQaw0a?9d{kV#0N-6nx{!_BBUh*y_?@{tTB_B}o;TDpk
      zxE@MAB1Q%z8TPA(t(h7AhVAL$ziP#XTEeff$^I{ra|t~ttr@apT`7rK)|r0{u0=CK
      J|Ax<U^A8n&Wo!Td
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa832f3a2ecf7388aa6063a212a679fc3b8817d5
      GIT binary patch
      literal 1191
      zcwU86T~8B16g|^!yR@tnK@mkMplG`V7L`H_ga;c*Y6^;y5))sRGT>sFUAI#({vqB>
      zc&H{mXd-X^DC3=3(h8LDu=8=}oO93IJJ~;ffBXdS81p7#47pv=boSf>*KrS}6L20n
      zpQN)cSGj1G{QbZeT*%iHHeoPKbVaYZ(mUXrp&JAWmt@GE#as|$Fs1L;KYEg3ta6Ek
      zjR>*Gknj(MA`MsCurrbbNiKQ9lgkW?xvTUp6UkQ@jFP|2(}*Kup%?uO@m#)|0>gj>
      z6Fq8m!$JyawHmT;3&RYS&;@w4wa068A@(v&hj%QDD1n}uTd$YNTN?L}H8IN2uMN~)
      zvFk(}3u6ju9J&fdWwvl%1riM|n}LZ*hS3hEEF=%ZW+3_Yi_bM4NY57xnTjX)T62Gk
      zha2uzos;E?Pr0jZ=&Ai_(2yUz27`TBkuJ1~Y8%&mGE{--K0BUp>)scxjLukalu>ir
      zYXp9S^i8t7;tK)}<T`~`k*K~q`Ydzqh#~#fZ-zC#;wh8EU3|<a2F59AoW2BNFjPnA
      zDI2OEG@BIfg+=2v+I=OQLG!Hr9esA8h3ocI3xjs5g`4)fwcqwP+@|mD5sc00lOrUj
      zPkzyU{Frzn$YKHysJoNMkwy--o@01O;|yg1o{;(+WiFx*^BBYep`Q_RiI~gOz6BKU
      zoT^j8BSMdnDtRH5JfK%Ld1rd1+{c)qo{PRsf#&EA1^N_*9k-Jwb)c+8t?2Mn)KG8c
      zD&lGvBEwXh_>^XKmY`BhcgSRr#&yc^=0AZ%B*2(@1X^g8{wtACQFFUEc&`P9qQiDQ
      M7}Yb%J*V--e{7`c8~^|S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuItemPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuItemPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..daf3915702cdc02765ce8430e9a10c0e399ae2a4
      GIT binary patch
      literal 1993
      zcwUuMU3c3=5WVX!*{W#sQKu<QLz1>2+i49X6jGN!a9!%e&Id70Yg$0IH>ny~N@b}9
      z9(dsw!QnU@IEMqT{1g5J?W|;EJ9f(9LE7Ef**kOZ%<f<R{Q5h9cTkrQVz_c(y4fe%
      zGcBt<cd|#E+u5g1cE>4m(=9r@wM`ZY5eD@Yj(MwfWSQJ_eD4^;>w}(yXmN&x!TtPW
      z-Z-pV-}L)2#BS@R?yNH0R7<BsuUM9Gs5`k*u=g)SE>&fS<gF%`5yoo@5;)6{`=3Yw
      zGY{@uNjLeX+p2TBqSXz~Fj2A^no-qkU97vti1S!)Gh90@R6olcgXH+38Rq^gIfkh9
      z+!WeOj$llYg<uR}HC0W3s-Pf=OAOPek&<wkVSETl#thz2Fo$`D_yKoHTAdpV=hc)C
      zWN79=cGt0W^B@<;6$W-)#x=Yp;Z26IlP(HWq^O$wsjC^JOH%Da*{VO`4N|uzA;WMn
      zNabWl$VBJ5f*Z&ZQp4t&LqcCrhx4h`M5UsJpYp`818ugs;~o*UecjXy{W~te-&1fC
      z(^QS7-afM0gr3;fZJsyu#vuu-7E@ITxB5GqKO+gVYYj)Y%z~H;*={TNP{=k$viV!2
      zc1tsxGCsnZgpUUW`nFBn6nug_)uG|qHo;W%7BB0DA$o`^xh`V`1<}8E8PX%PD-Ls9
      zFNy}Zhjj@>hS^tlm4XeF7-Wynj>}!*p6qo@Au#7;Y+_r&7Pa4qZ3R2{jASGA9M8%y
      zrS@>v_9~v$yGe<b)ztTOZWBjFDKd&VQ#xJRoL?AmzeKSfD5&8J%9$!zFom@#YUGtZ
      z#!dek#@j*XCPy@i@D(n*j@L`_uI1VdepeSqCkHR-4RILr6gZ3!qLAnTRcMufNahT!
      zinJ4^QA%ePkD>fX(-6+lU#1aQLJZ3oquHGAhH*>)-fR-*2}I12m?G~8E?~L~TcedY
      zKb!s;7yrOa2eYMgCNr_n!Bt`U6X|0t_M)Bj&_AHFE4YkXUc@OMp&RiG#e17xf07ID
      z25~a<i5yrDD&`qhJqX3$^dVSC+(K`?6aXyID14&n4wg@{zeBMKeL&GJ5ED1f^L?Lk
      z_JMvNQ3Z$8Z&-OCD2|8!4#?+z!Rn>)(2MVnai{zfK3(jf+zYmVIQ=*1Um~b7$+=1J
      zTO`B=)oz<!p`E@Gq=FKpu!{<XpQn?bqe^HDdjYd$Z%uln!yVi|No|kF-0!0n>!LC|
      h9DxuSf$)$J9t|UqIMm_Z_y}Km<5yx$K3{tX+DpC-xRL+>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtMenuPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb09534d3951333844110f493b8df674897c74bf
      GIT binary patch
      literal 3060
      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
      F{|g9*mKy*7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtPanelPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtPanelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2f879ad9adc4246aa623519fae133853c88fc5b
      GIT binary patch
      literal 605
      zcwU83O-}+b5PgMRR@YS!LHxL&@qlPtjfosEUPw$#HU=Z%Ua-;CrNyNyzsnPe2Y-M+
      z$~Xl=)JQyZW?uXH=1u$Y`SuRr1ltZ$4CQ;7_>cUB`+TVVz7Vnhto<9^<WfXUf(|T(
      zy*aFglA4E7#1m$Qq4bkAlVQl5hceU`47ExyN3Nw*^c3oPFgt6gUSCNeb$!3hU^Ud8
      zaFNE62L}rb*?^i~C%uk{Tf7qqhJ2v9JZkeeG<dpc>4$K@usg5s%w?S+O$O*${<Fwn
      ztD!V=75;KdJ<YTvS24!zfzV0cIN$KFjv|A5tCF}YE<@ul_sznQQNs@CDlMD7%4C|B
      z;v%6d!fDD*_26&>_m#>NJc=%5z()qhSf;8xp<xACU|i*}N+PDpV~sxFLIFj>ma#OI
      dKc#Fqc6Ef(Z}Bst*2d!Agftar*c>yrz5tlbhXw!u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtPopupMenuPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtPopupMenuPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac7e26a97e2c53f6282c2747ce36ebd0db53e14a
      GIT binary patch
      literal 1468
      zcwUuM*-{fh6g^D>194ak`yTczgvg>GLADSi5FiLe$s0rH3WJlGI7|S4f*0TX3#%+r
      zrB$L&R{2quw<nMVr7RzMy8HIM=bU@GYkvOv{1w1BUP-867)<He(5Z5+gp>;_l;PYA
      zy|qF+R>H_+Gn-t`CMYDq$<X^iW-+OXp|d=p427X;PSsUwo?+S>e*kUIFtj(S6^<9q
      z3K(JEK7%u29CH^OcqBuD%rNmEPz99wxT^E5Z2E|sd&-f<8QgIrsc8F(sfzt=&}p5h
      zXAHv+F_g6zW^fQ4gXdp@7%GhmT^Q2zw>BAEXD7zRmSU;rB%;zAi`kuvAVa&iSQ9bQ
      z8AIo~6&5KHIv9HFLru|Bp{=Z@B@9)!xEZ}n@{FY#dNsNjTEvMbqnK3bN#0?MxzLUt
      z;c72K^DT=Fv}>8Fo+9I1VCa+4j{$~i<@h*e@ih74@QR}$j7S(JC;yZu!wVlnV~ShC
      zW+7x--%XmF>y+>HmAXKB!!866lrYLrSAHU63?Z_DfL`0YD<XAV#>8FtKxmwj(To;)
      zZ-%L+RK3jSqGt^3l17ZiI~o~=hWkQDbBW#2b5Z8oufaSPB`lQ6v(IEKVVP(x#Uv@>
      zQ58+xK04(|D=cA!p}!c8X&O%{+LD>drU{|sqE;COqL&#eBJ({;@uEC7mnTos=RyQM
      zLQzb{G-kwVL&kH=2qQLSw4#lg<7Lg|8=-f$Yh=wNUsc6pZ@TxM$3!~%2*p98lKvS^
      znk7`zw}y5xiaThQ{DILNTpwv!fm-^yXa?O#6(&(fD^ETR^=JU>)nm8`M64RoM1P?Q
      zab2`$LhUX5d!iGh!N3pHenI<zyEBLG8~-&tfolxTI{od=Yxu9a4#oWBs{1g9$)bo3
      zq6c~5!~%&}B*JBaj$jlkwy3E*ctKPUPw~ta6%;nwEd+&)B)*O0%_3~~--@|gfhV*V
      zS>C`Wy!eix4?<?-z#Yxu<&9qizhQ``H5%*Jh!?fFsS;Qtqhi$lI!3TzYih~k6*PIV
      Ng>7PENZ7SIzX7VmST6to
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtRepaintThread$RepaintComponent.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtRepaintThread$RepaintComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbe705535c5e4015f6e45a9b653cdd4878a4f7f5
      GIT binary patch
      literal 964
      zcwUWC-A)rh7(LT&X{iH6Xi*Um6tTM%RxXT*VvVVyO&WhmW4zmz30<;m>vk*nAU=o}
      z8xk*k03XVDX1c+I1k+8vIcH{P&N=h#{{Hjx7l0k?<dG40co>e{Bk!x{dMB|vP%3i2
      z#P0j}gBo~#81MHY<sEFKvqt}T&<|A@=V1xVnPY($9=dNkN2(hOSlv++32e45Q9T!U
      z$E7FSAF5Lxdvw|U|EHip!K^$F0s--vb;@e8zOhbNJ%OoRKlJ0efL)y|mfdEsM*lz+
      zkwsZz4i$lH)oxEi;F?4ZQ<~k7$fKayO^Im~1xhVHRBuMd9Tn|+oj?i9xB6W#XnT>b
      z=joyq_xvHV4Ft9(jMU^~w~O?;t@B*ft{W0pAT`^Rm>ILG#O#<k5+z81;>Z3d>Z(0o
      zJC`qXbXyw>$YvO-s1bO>p&I7lQhSo`!9U>Q7r`2>v;4jCMD~eH=q?##j|?)k!I>0i
      zQ!E+Gknx5b=Q;btd4^ba&amLr5-d6*!F9(<u=K<1Ugo$+FW@mO?9$~a73)~QGpv|*
      z<~&wS3e9dYmoP4Csmpin(OK7>+8Ku|#hv8@cbt_3cby8&?m3lQ0{frkDz61JX#9fL
      zddcv6lzxRJyryi^Sl7p*=ho|~wPv~r8N+lNvWDqKScd6V<oLd3{O)6mSTv!x@c@Ot
      DpB%gW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtRepaintThread.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtRepaintThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a608811105708c44cb45419196e2079524edfb7
      GIT binary patch
      literal 1750
      zcwUWES#MiK6#gc0yfK6jnwB)FY16dWPFho-3rQ#>ri)XjX_mU8Y`U>0%?0P$y}q|i
      zpI8J0c!NqTMSb=&Qkx)<c#YIw!vhj;m~ZCV34}$qb>}Q|=A7>=GmrlG=@$SeP>7&I
      zVEBgPXWq4LSsClLm#He{W^Q_!Id5K7E!*)HS6pS4A_xie7^|}7+{gr4fmpG!TCF(B
      z@dQri+wnBql(MaZ;{u^2zjjAJTo(vW*pBU;73fT+3f#$7N-B;{JT4JKJO+U$B)SkL
      z&D)N;?5{2<chOoZD}mm8rD&B4mTPOdsSJ55c1_@DTi}SL)Ab!4X0Jp9(JlnPQk<&&
      z5(5|%=&F^Ks?v3GI#q}vfrAk|BXF{v2>(c5;t-+&QKOwKm$kpc62myc07c(*{|EcF
      zlPgq>$MGyu5hVY+rGK-RNF&ZNn!r<5@x3X3d0DyI%c#ULy%(MHu2xHyr!=UH#B(^o
      zF0Jv)Y0V1~FB;7qEuE4$ZKT^;dP!o;NGsamgbwzyKqQ&tFICXGS0rB5I@t;`$@=J{
      zQxaL-;E<!%ya>(-Bz6Wb=XlC>{i>%*=hlj<>e&@Xp!=q;e3jjq#Z<DrnrSEr<n(Y|
      z&@H|sk=L2W>{cA6z*Y;k;aHnKTPY?mr~S?f#1|^QTU6(5J&=2LO~i5SkY&g@j&ieQ
      zt5#E-*Ph*T!ZG1+auhrG@dB8!<b-k!afg?K>tmEAXdy`B=}pMAc!=&F%&8u(-NwT#
      zPt5VeJf5T^18el+DN^EVc@hJRqxbHoJ0GHN5BB|t{&a|Jz47a{I^It|K=%V2_zwF6
      zZfFBXx4Drz7MempjtAuVfSe4-nGKA$Wp%cW(6w|RPBJIWZ8biqH<nF7dI<hC?8C=c
      zCk>LFW=g<yCh;cId5aeBFgc4>ip5;P2yC3eDrVr|4brz!K@C-WNV-n$Gu*;m+TTOr
      zFNM0_EYu;K$AxCezhpsmVNEJq=uQ8O#OouQxJaON9M;;II-;Y5KBJed#_yv$CX?w6
      zOz-q4!LEWJBKQb<@d=-tPkDLPaSEUFN_}CV91OxWp=fRfM+jzs|I3_>4g+tt3GWf7
      zMElGK@SYCf4IbzV^>uCHiUDcrJ{GPc-XA8yv9KXqjo<piyRH8f?^j&!Vh~?r2;cBo
      z_?E@FhfDb0;Jp~c-^QD7;?*1<71P4JeoRbWdHs;Eq?+R+!Uhh}TIZ!Rn>Udcun3q*
      JP4K&l=$}Znc=7-M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScreenDevice.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScreenDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3b13af20849ef9f605cb711447ffb4ea6845c04
      GIT binary patch
      literal 2089
      zcwUuM*-{fh6g{1VKpc@paKQ~hokV5a72^sKjiQ1<6n(IUOdHx7X2w~d{3jo@O0-H#
      zKfsT&yxkL$06}6N(mj38Id|>;{pb5H0Ov86L4skV>O{snbHy~w)zI)b_l@_VF&maE
      zKIcx6uZRlIAjPn+4!ZA~-jb*Uv5`S@%uuZGr;G1+C1hX^84|*xO^KniR1892I8}ze
      zX{BJBPSq%@vjRg$#dY2avR;^OBalf2j(qaxI+A@uI3m2okkU)Jd0Hl2i)WEUuZG>|
      zV@T?``7SW*)sR7F27~K)G(|BH3ESd+C-zgg>;AGBz(FZ8#4w<5jXXCm5r;J#!BL9C
      z^gQlR%7-Y9E#R7if@BP9IF1o=6uRYFUH0l*DFqqy2@PGyW@&dygN|;>Po|qep5fg8
      zRx67f&d7w$GU$3c#V*99Gc@di#;|8vIQ&VpyvY4IbJ6Cqp>D;r=S^S8@7iH1ToM7r
      z-j)Z3j3olk4T#uP<>7=IITo=8*GnR~&uFTsGPZ&fsOX88s<Wl~_X0!O;$FB!)s!+k
      z2sb3pFsU~L*XK8e%<*N<HbY8xJ49pNl2tk2!#heb^imib*p$_Xo_oEMj|?Ulj{F-$
      zGc42QZ_UWwoab@9jWl)<y>TyP4d*_1)PnsYC{jCY^TXs4Rh*Y2&vX5dTdLfz=q89@
      zDzfdkhfUV*fZ~ankLd<79B3+clc69lX~J5j4!5>5^pjM>#|z<D?y9^a4Sam2q!^ic
      zw^$gmWjFFGd`ifP?B6(aV-k*Gn(QP!gDE7CMhEQ@@`X?<T{_4gjXnMM5OO!V>3<J>
      ztttj!<iDXOKeUGa{0|H)^zHkG14CbN=qrw`VKh(MlVr#(5bX3C#y%_IbM${uIlDqK
      z*T~U04&yq#2nCGc2EEC^U@VUdxTu0KR9K8L`2v78xP(4hfy<;K*Q=x?*YVnVU9Pk#
      zkYXJ4IIU7Oo&SQdPxVkbBpQ#J+@|Yp)3}LSWM{aIJ2e>@v}9<hpSZh_lw#%0YBNer
      zi*YqIx_v0tGz_J=O(@Ts$mu%y9!6S_M>msSwIokbF=FzW8aa{txQY3uiJ7P~@8iLa
      zOsgfc)CN<uWIm*B#LUa;oX#4P6BC`LcCmW97^d-9IeUVqJ4yK4NX%eXNjy{d@?Y{(
      BxBvhE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea2937a54b939c4e1f9de1b0d71d243368fdd6d2
      GIT binary patch
      literal 2755
      zcwUuNT~`}b6x|n+3`_?Kl+tP<<)gJB!KS5ZwE+qQf!Gu*U?f#>4arS1ZJ3F}q*xz(
      ztv>k|`tFOaRlp@{`2+k>F3-I)3_~a>vex9Dx%ZsC_xYI1KmY#qH-I~Ms-TVGcExO@
      zp6bu_l)mev>YUrD@14|RXRT;+ZqD=PMv-SMvusovw(b~~sUXBK=tnHtdcA5CcTV^)
      zgsokZ+YC2y=fF=hM7FGkS=wRf&-u=)yy)m=r6$fprMj`fz~)`EKnx{bcdE3NrRYh+
      zG@NOMc>G*^V|jwfSS7Ba9eo<QafzWlK9=tU!(|O&L{wbCI|{BcjGhBg!@GzwbXK@C
      z=Or=_AA3_Og5f<43OWSCH4Q@;W>6?_US>!tvchLnLnl<>b3?=X0iS|6jcd5zo+dPC
      z7#4fu!s=qUm@`bi+}PgY_PV}R;|zT{tEkuVx^0MeZ!_dn4U#!=o`RidE_LHFo#_s3
      zZ`Wyy;Ii9#g)m3r*=!(dL+qyJ8s###c}e=D6@17LYvrQiE<P4Lxkrs9z^v$2c-JV2
      zZbz!zs8k)Qk34D3rBYQUH5&B^2F<Z`bEmG`+$_GJ7Bpv&w`ydx&g6s-Wircf{fz3J
      za8)sbjL3+lHyn2pnx^#_U%F-Vy1r%949DO*>9>%J)D|^N;{kQDsMo2Ju~u*lT{J!!
      zt7h4cXzpuNf%qwk<72{qgcSwL^r@eb;ksqjo*9mYFYuV5R}3dF>y6sc0e#9r25*;u
      z*YKr+b%vhiGYy~PArZz;S3aPO;ZlH0G_`Em+YG}&whFhlQ?unVeF?q`HS7tc-O@)z
      z0e$Xw>`p#IG>Ch2+xhp_74lrBK)q)CXqXirC^EAO`6m#!G!#*y-tW+7$i)oI&x;v|
      zn9`r&+FO*LHSQ;8f<axg8g`K{7=mS}#W#FQ0AZMhsGT&1(I&1uvf9MOBv-n8<a)td
      z>1v@>qlj)?q~9KT`+=g{XdO=+pf{1+Lw_Q<kAXeJ#5(wL4<o|3PR31PjO`)$heZ2;
      zeg}yQ_yi%`C$=<tF-f=R6h>*PlX!qzbUNVTBZb?tn&VO@UHamq_Efy4J(0y`;x&@L
      zxm91GCq$3PB}0$!yGPGei2=HF$>$Jv3(;7|0Y3WOHG6_~*RdTEW|Qs=DOw=aOPEEL
      z-j=Y4hcw&EQumOn$k)9|d3KRrVSP$go6O+8m%%g2K&Xw140?uMq1)vR3*JODwvY5N
      zeYb?pQ^~$UKQ<&?!VUN7qCQ>JqZ8H?S?#n-mxf2YL~#O5J;V(09boR5CnDp&4Wy&`
      z_^OYu`sqyLGY@rzyoDY`N?&M(ECwViKBVG9D!yce1ZJgV`tRz2r)2kOW~o-OX6UMf
      z)?5b<nu%M*3%=t8D}N%lkJaXIGZ3x>!t-8un%1_n!=1p$1{0f-i81Qeh6gkuD@Nma
      zh(h52UpFJY2ngx$g?vNZI9-JP=HQ>+ScFZV{0T`C5(ho<T(TeE5zvU`t~afH=*i}R
      ndr3lmMhw3Mk{tBVJLsLGEJaPDf^&_*um58VjwZJ%F^vBJ?glS2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScrollPanePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScrollPanePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..175f69d486ee551fd5e231a9cba9b44b477bc91f
      GIT binary patch
      literal 1410
      zcwUuM?N8G{82=q~Y>dj=V2Xkwf|i0z@C_OA64bCT$rPO78>PFj!>*le2f@Ee6T=cs
      zjGz6ZjL)@YV+2C{&_37ap8LH#ch^6EfBXV4i`6*V7$)}ZTIRqwG&07KpQ&>0W<L9w
      zcm9^?I+j&1Y+j&T916quC8cYQ?Hj`8ZdlpDFx*<zip9{eC~V;`G0bcEOE9+`$ND7v
      zY`!tq1j$Yo8I(1r#FJ=8mx?%4hUfo*wdPc+j?Ha9fa=MU_{~~nkGtE(p2ZpZ^Nwj)
      zMZ*>HJ4z~kS$GT&E~9C6nPq4vQijp1WHH2?BU|=m@Itr5EZaqRnp7L}xL>PE=R+#4
      zBi#vxTPji*W*E50VjQ;_QWqd6F@jMQcQM8=w9g|0dxrZ;cvZ_dE;yDjj|1LZl32!7
      zOyE94Cn-3cQ?#5ErJ7}7mELnteBmY1sO5rmicr@Zu<Kmxm&r#zWs8mMM^W<241M0I
      zfP&)*UpO`qQDM%e32J*vn{1j3ljJNzyLT=tmCmY|#F!jCR-wz$44%q!@{A!)+Cp``
      zRQ`cFo3l-qSEyCg2CYf5S~{qCzTEq4P_77{S6VjdOa*mG*d_zZF(e4LXjnBmGqJ-k
      zCbyiLYw|Zj9;CtZXJtkr(moIfJu$kST@>R;(7Thqa+GhU7}uw!>qvg1VH>W|J4sPq
      z<qpiDn?|Ey8G6tQ1fxFm6Nnt8FhKWR!64G~t;nMj!M`RHS(DQ1xS{Lcaq~AuPH?A=
      zdrhkD0D7Jlz97hjfKCmUg><Y<o(_t1MW6+d_8^FQ6sKgK)=cAJL|q{15+nT+Gdl_W
      z1dn#*du}(8sN>1k275Z_$_5$E6W3d^wMi;A&ZtO7rs+pODns;TdZcRBv=P#6pXnBB
      ebc>O-g<zf`i^ZTTFRupMxe{zC0$UDNuKWYdfhrXM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScrollbarPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtScrollbarPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..500b12a6752cb7259c68e54f16330b4d0a4fc9f3
      GIT binary patch
      literal 1602
      zcwUuMZBr9h6n<_9ED2ZSO|%dYThtK1sI8&~@CCs}145x7zRfIfOP40uxY<Pe1Nwv7
      z>4cefrsL=Ss7{}=8<M61o$k!tbN8I{Jm=+}yMO-m+aCaK;H`y-!uWo%l0LAjcG`aL
      zr%T3o>34p5&0pX3+<bn=_ExE~5Ixy*!7Y^BqAB{JXNSUYt5*w^LdUFAbo_aRnPlz+
      z$_>}e|KRwUT*KDj$V_Z1L>JsW6Gt1mG%V=<N7cwTpgNm#ie{x!*fHLQy^}WzeK~j6
      z&TrbDBj0sp)c@WoD_l7#OiPU!g*L`i82hiR6x!YQMd`}GakVn8^on#z$+f*~{7Omc
      z{!HUM24i5aHTscg!8Z%EFv@y9C5~eRV;Yz6xkBf@@i*;!#RO5ZVj9=DET*`aoU+3X
      zi2ABV@<_eRyb6_qs8bq~4YmCtR4YttTtiwRR<852eO5BdXJS)eH#BYvteddsp2Ku)
      z-*Jlq{Yv8&Zqrn5F|ixTI{1#pT><wHEC-k^?s}#`M}cQFW(D3;{=_(fd5!x=$W?p4
      z75Px((Gjx6sGwYy@}1+EWw&bfcos=1#KIGW(ME$!mA>hRdk2-WFR;aGK)i&k%;{5}
      zR<e0ap_`0XCTL0wIjmS%CgJH*qwyT8>~|1ttzzWp&NX=#8|q9P-(bVSx<dakW{q#b
      zsfv}{a+s;Y;6L-*+6c7ajq`sjF^tNx@@hCO%E*A9UOOi^zV24MU9;rKH5&NWO}Qp;
      z&LL-ytDXO)PD(3y$M}_{zKzmKO->ym{xi1`oZ&l830y}9e`MX<jfHMFiyk1@^`eg?
      zvg^kH|8(pT2KgP8n^UL%i6MpOZt4&hQomy8BSvzm$r>(leZh5wYodlJ(Oo~pmm+6s
      zxF>S1h6l}rMi~g0A^jc5aE{>~Z%c+L&QdcMBsmxct0$>3jRmHrR7A!-V0w(jdTJk7
      zT9h*JJC?TVsr5#-hZBeRdgT{9o33H48GVS}AX^t1y2;TKFfU;kPlCv)kgL(21h()Z
      iXioy$+(qc!iI;eVHa2QjvY~ubm%PXHRCpc4d-FG_JaS(E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtTextAreaPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtTextAreaPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56d5a334ca7824cda7a57ddd7198b0e0af6cb28f
      GIT binary patch
      literal 3522
      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
      Z0fVg&8l^^5*5O{6{%2kxfv@!H&OZ*lzqSAX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtTextFieldPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtTextFieldPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63e4fb0b006200f75dc46bdaba1af484bd5550c7
      GIT binary patch
      literal 2954
      zcwUv3>vI!T7{;HIrio3Lwv<u|$W0KFPzeZv5<noNSWLO47K?zU$)VYj?1s&zEeN85
      zm#_NW|3GKZaoQP~as1|tf0W~M&Mup6+Txg*&7R%!zQ5<aoO6=D|M~q70Eh8y91($i
      zvsNoJSDG(nN(*kLA*GYK=Vq?DlXB4=Gi9xEg|Fg>u5X#M>kZqImg`x@1h%iVT7eRX
      zoir`eJuPrNSy)fpwrh7yH(Lni0!B79B@oTo6`4R6dJV*3{6AC>uSWG3OiNyB)n}wL
      zS(>Ryfx&`ZF4d+=j;Wsgmr=KBHU;*tD-+H!E6_zvf!+TVl|Z+>V5zDMt(7ZvRjr6i
      zs#v?5(rq<V-dhc9!Eg^)YXh6`>I(mMf^qC*KC8hA?7(gVd+?e-d{*k{iAbhANUdbe
      zW{R$3TC>>%HTD^J9s6n8d||pdx!N){rLai@DWnAwW;0(gU9Wl!|AqpM8h8^21$qf;
      z&qk9sRCc{C(YY##vJ%H(fsr6^InQi#_<1!-;1G_e&L0&R4o7l%W=@vf?09Ob2gmSE
      z9LEKAzPtqn-o*)qt0k_sWQzf9Zr3s&yk;d%;&dFR1U9WPZQwne5$I{yO)toHXv*;H
      z^-29!uQ@@DZH4u+W7iG#q$q35#k4K2K;!HW-%fBn)LZqU`9NMOx#m1cTax3cHtf7v
      zmsXQ*#0=BniX-nx$B~t=i*d)Sxzf>cO~t>My2!A24bUZ5a_DC_O;4T8qxhhjsFs{k
      znU3e|mQ`tXN?&8V>_Sa)-CYT<yI>-L%ebZ*SL9+!j`O3-Ve+CxKPASkid;NPbyHQa
      zn>I>ZEb_W9(6_PzYDwKRkjGdYx5I)#5fZqCPnBTFhfywGwrj1r#qdRC#l8ubZlJSt
      zN^91@1&k$N;%*#sVZmU_8K|M|Z7SuZ7Qs5r=@0ifZ&j2)!$1z_1vZA~if+kaEqd!K
      z6Q|S-jInu4hq-KMbVj>qKq`Y+Q<Ioeb5(DnNnH{(lP_28puuV;r#7^}V*_8{k-uks
      z8<wujE9Wh-ajVgCC!|}oE7#<`mTamuwKtr%S<kFt#3Ce$cFQTtF;krbLmkKHLFLaw
      zic64JH-EIY@*c-4{O;k?INx{i9#0<_T}I*;4kOsW?*#9_5yWs5eH`uf%+QYkK#w+J
      zkPtQ6gdzS6MzI;ge2%JP)yH2aMcM30FJmN~{tesy#EvEGTEgD;(;G`T&=wvf064+#
      zEXOA)d`bskcpyK32r_|4k+v$>EzfaiT2VK4Jzd6Ig<tXZfhA<y=sumpc_Q+39@E%i
      z&(+8FvoL3I4njoKDgt=t*3kD0>Q2e`Su{`h7=0Bnvg_wSBc{XrFvN}oHH(mak!*nv
      zP|&OiT=H3G=&7uY=eRuG#m_RXKI@>~3{j1MYG9IjTuPW?y<gCT7g^U&9gLY!H^Y&A
      zq#0^7&5`OFcZN@!VS$zXNP7D+KAsr;3;oY=YkD9tkXXhi&qmvEdd-`qRuyWG4`VK*
      zHxlTLkg4=y^eCgE^<<!T+pp`8(z~PddR1GOP+hHMlhL5oJw7`jt)W0`DA4K)v@F)&
      z(>mm@&{&!kw>zt~5L$XMpD3uc+B>?2_rulR>^=W6Xo?f$dxBmOP1(MLW@p!*gt{IJ
      zvWlVQcYS_s&O#^WyO(ho*L{?9d=K!Mj_)BJ`P|cC?&qCn#P>W_eprY7CBD*Zo_?Cm
      ie=hpYzd~B$37+~IqdFIoMQ7YUhN>6|dhoS=`sQEq*GJO;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40669292c9269088a807efdc0cb94821d6a6326f
      GIT binary patch
      literal 12257
      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
      NT1CcqR`h!A{{VOc$Qb|t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtVolatileImage$1.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtVolatileImage$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d290cfd2d647fbe9c9fd4ec132b1f12ebe8eef91
      GIT binary patch
      literal 716
      zcwUWC!EV|>5PgFQ4&VYMG;LCv<X}}msv6Ejxu8~xL?Ts19Jnp8A{&`?YOh=MJ9_9(
      z<kCY`sfT<(KB~%ip^;Ll5(lqm-h1<AJnOqZzi$EbaO5IKc)ieRa3wyAKzuR5wUlx2
      z$pjzFI0}VPp*&lPh4gza@`U{doka)YT1-`_jFJhVU@leSciC~ciDjQFPLx*Wl+bBy
      zRx)Xi3Hd=ZmqifD9=1>@!NC&`E-Fm5tfD$pT3)2fsf<Tr8cITa7|ldD7O~3mHJHx^
      zCT!N*@A1H8U+74GT}Elb-$@ffMJ1y+m4BrKr`2Y-^f5}~nS5`d#y?hXvt9)6Oluhr
      zLXjld`l|2rEQ}JR7w6JkMspWUg1^aV9u9EG1`BB(-^f9$J^cTT_0i=eI{Yh8t(I+)
      zqZ~gjwiz#SG~hhr%bnw&D0P~@;Qg?oDxW1QCT!6+)HvF;c^OYp2W+&124jS0%&iRH
      n@S8FR=jOqukRkNldUz{#?cw0L&0b*7_FL70xqUwKc!^i{ta+xP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtVolatileImage.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtVolatileImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3c5a27e32ff8cc82e390061b8cc66a87e5154a3
      GIT binary patch
      literal 7103
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae9fa720e7365af7be45a58ad0f9c182a8fd29cb
      GIT binary patch
      literal 849
      zcwU8)&2AGh6ot=CCYcZdC8dG#p8$){RtyM<E`pFCQUp@?sTviDots#}bZSp$JVd+`
      z8&;KA@Blm%;(BJ3go=oTeSPh7Kc8#)*Y6)c0X)WCA0<L(s?*@J_#y%^vq2<f9Guu-
      z&wfyPVrK6-_u&!luaNbPwnAwc=gKN!^KaFHL#RGeTG{7>-R^J&Z)8k(q-<|EKkJ+0
      z$Y`l;@4*4V>zj$Jqm1(n_^1)qhJ5?m^!QN5BXJl?!ursRMR*`$<?>?Fv!7H#xVP%w
      zh0PwJ%nk_c|9K=-%uKt+HvVOoFLmuQuIrpv5^2-OS>J5n3R?Ue*1QzsBZ6<uAm)c8
      z)L1l9);Vr<b7&~^G}yPX($nk(nrSo<R=x;l;%o9wk4(fZ$MPhVNzui?jMF5$_9LOb
      zZ_;=y2g)&<%Z)yCcyz!@9u@u*HI9BZpX2N`@0U6HTiZLQsDI~W2@Rg>9Dx8;Ji-ND
      zwR0IRVhzYvm(XO0Tdm_V|1u97XmRej#tZxtj!skAI>ptq@TV-@&ESn(l*5T|&4D;x
      yFX9c{<a5HUIe0tEc`TsSY~$4ukP5ei+qhE{?i7wn<!@&y-z-&@=9TR%>-+&oZ>)>}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..602b48fb91b776721045619ba68300f305518724
      GIT binary patch
      literal 2148
      zcwUW^OLyBu7>3`mL)_SEZcY=@gc2aMzJ$6L!Y!fDnkIGPT)@Tjbf-9jtsY16k>mt+
      ztoZ@J9@w#HIn)IfU9#Xuad>B}*g}m%7Sd?G%ky348~y#ypU(kY$Abi70ypb+yYR?7
      zGz;dDUua3`7Q7?Nt`{omeW&gFj=f9iVrZYhkU&~FeH9pQ94m$eE}u#)ItMMsmbNc2
      zyr-Q6CdxhYE@y>GzhQZc*95ZVGiIoqRxR7|ZwY*uIkVRbv9ncyp`x=dM<6g}U<An|
      z;+Qay!lXbvldUSvlz{}!(V}eGa=U%7C*AwzUQ-H8mYtf}teUQ+_JMFn)g!Qc*1W>~
      zW@YKR^cB{(9DB#E)LbdqxXDbmpZ>06+5Sor^SG42D*{)}7|FmaE((lTUZvqEm9Ft&
      z60c)1fj3xTq(cT?#R8k{O22A01;j&v6f-h?SvoN5EOshWDupuBQk_}Oz!hZZa>S>^
      zr$JYiw(gp(hE-#OE`&=u7Hi+@2CkwYaGv%Xp)tA`c=Tqmr(@s78>YSAlv_^QlXnlb
      z{iRGlfK;MFU(3T!;$6I-z<UC-1I-M40K!K+=~tY#Tazm9F12Ygg`K@evet!h77g6O
      zGN-)dIyLEe;ap<!P+;zqd<3RL6>K@`{Iy1riv~VX<e4xzWFs)zb>5U;2ZH$*ia*xr
      zZ11Vkc`h>pj8xQ317)mnEP|+g`0PM7d&N`RHC=5t9X{itWBVqrkh`KL?o$KX*x>}W
      zOqX+Xl9@oV+w?U{U973dIA2vR0!GQEaj|K7p5$1iLRMH{6>&Z<A;v!;Z!s`FuI@Q^
      z>Pf+%_B_8fX%Xi-mdiiIXzm%tb4yQ=enL?U7x*64>TRMn3E09kched>h8esJ=r0u_
      zMkFs<0KUOha6Om%4Wk{*J?;^Qwfuo58C{!zB-FhN{3~2llyrQRg!ErXsilM0R_A`{
      zp(ZiJ_da)$$$g0l)I$lT18j`)H*r}f#LF23xW~d&X-Spf+<XVwXo_vkTIgE!icKPq
      zC9O~5Eq<x8d2LTF`&yLw&532-z|FvaDe#ZwqMqM|JYzl2x3L^}u2ZV2PUUkQypzj!
      zuo^wZ?|6#eGwmNjO-l6&OW`AYti#_v1$rk6{gKe02>tngpm(u$5_DZbH=@wTggznk
      z*MZP24dqpe&WkAjXI^&8`F<z6^U~q&8RzA9&cz=C=H;^hcwg^7M-}S4RmgdK0sIRn
      C(!THj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24adbb8af3ca44e50e9aa88e8e71b03f977b292c
      GIT binary patch
      literal 1280
      zcwUWE-A)rx5dNm!ZSAs33q=L_6HvCLWf2vTDv30jkW?hWkQlGF<%mn#U9#Q63-}b?
      zdF3?;O4Njycwu7VzdnRFK7u-DAuVFnUYt4S%$c8WzM0)OKc4RbIEP#mAwq7|shMlm
      zhGkltzPT=hXI3|DXVqMia<1n4uCvJ6kpuUFUG;?{yeJexJa8^s>~gEPCQ5!35kg-*
      zq}ULSZ(b|;cEgbn@$cK!kqJVo&?0~wJ6*9I+n*(5jF!Dp%LFCwu80^2M|DJTL_-+u
      zI%0?u!iF?xFW8P)s8x!>yKNQAg3wWLOICT=@@#qES1J-T;cBbNn{mcvv|9lgi^99-
      zdKIxk7%&P=`MNI8TtW;d(Gx{CVYJ26I!>XNptDupt*pBa2O=aJY3f=YgMP+Tf7pwm
      zp$~&PPGg9<SQY;7{bLe_jMUxcpzD=JF+%A1dtoxiSskM=c#7&d7+A$}n3SZEDl}$m
      z$@jRxoQ7efW$(rahH>D1Z}xKYf4ZcW+n^$=qYK9gY5;@K`!B``R3sz{he(n7GGXw4
      zg%d(zgKceI^8{_lt$8JJ!<I9YJk+Rh8HyV<@33dSY*nj*+3jpHIT+*#4)an$@wgmh
      z{)|JsV$fLI#-|H>ml`cS_5^x*2gkMon*_@U+W@c7!BP*-8ak2Wog_2+5nglj2=Dpy
      zHuP<rc!|E7nWq?7$nHLbvh@PPcQT3aH&&h5L25<`PpOZQ$abld-O4j$LU^E3mzv#u
      z^z(Zo^>`5aEz5U^<2|SQzzIL1AD=M9`zSsmi!YeweGXp(h_ibz_94pCILrX#G$#1(
      o72-(eG07{;{=Hnf2?c5XP%dJMiwNOTkbfGNgHpK_{5Avp0{di4RR910
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c8a09afeeb2ff66b6596eabb21bb18460c11aa9
      GIT binary patch
      literal 1351
      zcwUWE+fEZv6kWS59Xg#BDFrK_0;2RLBO=}k8m%!gsm27-gvV)nQpS`i>70UzUu9xS
      zB8l<Yk1*bz^$(2u%rtGe1p6@iT=qI^);fF7eEIwF6Mz+LXb2FN>Q38yW9?g}bs)_>
      zAzG$;U^{hlQ^lukDVxq~-qjEyWX}Z`o4b2WM>x{QhY6|U*ghK}yly+Td_+j5OFfhi
      zC}hfnP_bDPI)aEA&|naP=}cKeoUl5i;>Cfrju<W|qH)4Tx-=w1;S6OuCNQZXNf<kk
      zG%$sWgweW?C95JD%38)}XjqC|wwS%3q+BvEjTwUG3b`fTO2TCNG*bD!OehSgcF=Fh
      zcBODcOUEp(D&KR2{P4b&%@`I8T*D$^+^W@{RHfagB`ge7P3&{c&Ep7<f^fsY64G2v
      zRcylJfm6M1DV#5>k5g?iR<a%Os=Zqgtu3q45QIdjS+yEvt7WTocQYh+Y?qK3+A$#_
      zcZ9#ej!zYy8@AF-t_@2%SP&){b-Rrb;fq-{a0hFIxO>ba;Xg&{-v(i%;kQ}hbn6iG
      z&1Sn*70+#T9mx~Qmem1*@xtL!6&sf83cjuA0E#eiMmu4ir3d*L;Xg=#M-8JKBfNTt
      z5NCi)_7M6JV%yo=A;w<ja~&i)Nac?(yUnR99n5EQ`3|nX_b4(PrxE7(l?lEfj_>>#
      z{lEf#B8^|ja%RpaMh<zvo881Rzc!8;n7HK$S>d@a<QcC6JQ~>#xcwP17Le+{OZRfW
      m5yc;md&<Z5xDDLJJ!T5vzIWyU9`cyrS&VlJJfG!p9ry=@fN$IY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCanvasPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCanvasPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5c8cec0157dbdb6ca25caaebbbbf8619ec88e24
      GIT binary patch
      literal 572
      zcwUW>%}xR_6ot=)5oACRL`97YSMrlMaSee5iEbvw1jD{y12xbg!wfu^8%<pJ06vuQ
      zc1BS&QPbq6r~S@tPy6!v^bFt}M`<Jorz0IYcVZzNu?(D<l)f`xDm`*~rgnv1i1{_I
      zreP84zr)^i=4q*em`@Ro*I8GM#=%mW8Y7#8$~y9SAR*OKS_N%Fx$3T{7--h|1gq=a
      zN*hUR<&Z(1kgV4FHVE4}6j5Tp_z9h__K!O@-T!5YPAa%c%d2oYkp7JrOeCS?dP6bk
      z3tt)izGwwwH7C^mXuXQq<cz~e5sE(|66~HA`a^l4O!M+L^O@ms!f}&GU;}CXRN|3=
      zd4epf%V-D4)*q3pH|PO{dzK08aLw~3(1L|F8#*Yn+KX}Q@(j^zAC;)-LF7Ap1L-T2
      A;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75a9113d86ed49be04927565f04dcd6e6d4fe327
      GIT binary patch
      literal 335
      zcwRg8Z`VEs1_nb0K6VBsMh3O?yi)zF#Ii*F#PSmTg4EO^{o?Y>ymb9w5b2zsTacfZ
      znpeWkz{1EN09Kci2$c0t%1TWxVPxP<Pc89+t72r3($Mq)sj7gQf{?QY>d#2bOUX&~
      z%`YuZbu9y{m(%cpTb>FM(nrWzYlbm0h#~3m%`eH!&x7jZgGhL%Rzd}2FpPr9feqpc
      z&Mz%WPIb%7No8aZM)jQ@NFy5~10w@70|>AHJ<H0##sKm(I|B!p=7iE*4BS8!j0`+L
      Il8J#A04?fWrT_o{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41c7972205c9a1bc2f928bb0a3c1511e590e81a0
      GIT binary patch
      literal 12438
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edf0a7d0b7b06b3d8b3a486d678faa73312b9d7c
      GIT binary patch
      literal 5446
      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
      Wp27cOMoJs4)frjF`M<T)|NI}~q}LVz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingFramePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingFramePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f70594d7b357b5720573c0ca873ab7a7480c6a9a
      GIT binary patch
      literal 2549
      zcwVhlZBrXn6n-vQ2uW8;p=pi0RH(KgX&b8*U(!|u3ymZcqy_1lEM!R*liiqXNa<%^
      zzUyaoYG>>R{h%`t#&)JUqoXtaD97jSZo~2-(;0=ickkYN&Uv2aoO3sS{r&JUfU~$8
      zM2o<Qyje@GXscRMtJ}%4u2+)Px?$#%GjblQXeE7$n?Wc7C-=3TGt8V-ca7Twj&3(>
      zMiK~?bh9?1aTU+(8!_wJNw1VZ+j+w@?27{3u}ss&37Z<46;MX4oE}C1&!`BYL*TH_
      z%;iSA5Cl3^1ko;VFk_hdWUaKQSFUP{MO~mPV=ZaLS*>EocW+a%3r1BSwm;XVJ~C}x
      zmM;X_$x|R))$QyP`4JyOZ<7?mcn-Zm^w59jsfs@IGl6;Cc2jvgHk8>;Nm`CtrLtw}
      zrel-};(4-v+C+zO41+3;;{^egWPNo@Jar1(JfBc;5;2CMag!43vc<T$n+hY2Q$ZwH
      zgWabpPUDO~J7v!qIlCYbhz+GB)0b2>^2<D`Hjk88TDC(=X;Id5SAMxEc~5DE=_hr>
      zSBmk9RxTJzRi_pKysqL^3`?{(RirR15Nbvc5P3G_9=^09rxB}W=GZ*JSek!symwSw
      z#9Q>d!;$7#<EV3xe25a$CLOD?&3(0XH&fF8Jr(1)96|<@L1fv+JB(CZ!6;K?TV+Xl
      zTE+V^douK8-N+Y6y3Oz~4(&qV#m&1dD(`}ASmqUTW~rj<CNt+}G-Xjgo9hFCj_sS0
      z+I1B-BnzdeFWX_v;g-CWw|O^WX{SEIV1E}hGgs8JR;{XET6OBs@2i6@w~||@PCb^O
      z2aywq{;QdaWz4$W;?bEyLB+cmmFZYfu>eiRDXJ(*MjduVGpj|-)*W-1VoOCC8oR<r
      zFl)(VI0({Yg)OG93iRy5mnzHKz5;H}_!W>}K(`o@lf|7Gt5#Xk#|-(!>E3>w&Pab{
      zfHx|@(aHh&0pr}xbqHb32lzIQ7XAYV;)zYDaj}7eKk>B%hd6i88JME`I31?Z#kV7_
      zIl6Hea8?oSku{FuSug0K7j!V5XdwD4jxlO{ouh#P=edp-8yIRJxrNmQh4Xd#-(c*U
      z7{Dzb-e41N5U=1IaTIyMJiKcjUPOv`O(Oh3L3|MYjhzsA$|*pF!GJ41h)5G6g7diG
      zNaCIIAnNpL<ue-Z>FtXsn|Rv?)3=9`I+J_{omgX5?m95%+yG6OC`K^q6ecPg%^?xR
      zC9VR_YK$v|=e)QciQ7DpR{il!q%$so?!^2$Cgi$-sf7(pB!1k%<P+k4O2MC@7oYnC
      z_j^oQi8X_(j^JyU^{}$^b#p4Q9${`iK^%_xP2Ajq2s=h!FvypC<g%3s_|OTh$Q$H^
      z{*y9fDyCVU#jK1!>1w&)$rx5nts{S$c=yozWEoKw?xVx2s__7wi9kfL8~8{T-IUYE
      zTQ!K281NNgzUJy1?%m@r<hSgd`z-2r%<ThA;CuG=55C$=H)}JE3aZY<$-qX9QNyf*
      zloDW^vsiU%qsSZo|B0&aCCc0>YJ)Hht~R;%Gs!%ps7Dm_n4*56sNX2+_x~VDux%yc
      F+CK+)Cr1DP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2334fe73c7522f95b87ae78231d7dc7615b3bfe7
      GIT binary patch
      literal 1996
      zcwUWEO>@&m7=G3ccA|*Hi6In{QfO1Koq!2YpiK$|1Bnv_GUJY!;ij0KSRF_5NJ;|N
      z{s2CHK`*_~a%g8tI@3ds9QaWT&u)aQ80X`#+THi#+2?upUA_PC-~Rw+@Gy&%z|5Mv
      zQU1l=w9EEZSZ+({mxC?GT`Skr*Roe-YlX(i&Nhoafl-z6Gzwje>=}V``@&Vc^|t3q
      zHxxM1QaJ)SD~{GEvjUm0=>(IP1Pa#S$f=w;$92M+0<(us>OQzw7wD^aPviguhD{8>
      zFp$QGi9w7CqzlEm@*FdfML#1f$CVE@)>ozfv%T7qtcm3{>{i|O9kq{)eM*eLl|!;h
      z)S0S|uE}sQQM6NqqP45=v5&#IrtLmy$z^XNkoPuq{OLkRq*SJI$4k8i<(xM06($5m
      z+P>G2L6A&O$xVUreINwJ5{E8(q2syQqmU;}e5;U8B#{#_0z*5=OY&J{nD~tECtt+2
      zXrhGkEPjO9Nj<q|ra+!$RCl9}e(2U3zLYMnD=MbWS@9f(8Yp8Xi%SRfaeQ4Srg1@F
      zzzJ$iPkD5oJT~whu4i$L5_dP5iOaacZuMnYx7q#TvA`ht*rBYh+iUEXV})up!An~;
      zuOChP0E!V?9951cQz>lTx7$sp!5%xF6!gigbMKnCjXUJY_!ZmN1sh97S3Ebg+0Xv0
      zqP}3_9_~|0+xE$*SD1iN^EUj3yzi(k&+jhFMU^37R$azcT6Pe~KxM>1IK#_Ka~wg6
      zKO;UUAeU25jyp95VbXh)t0hLHIS-en-eRcqFLI^nx5)oZQwqoV9n$UxgjyoNGRC+Y
      z)3C!hfiD2PQb(i+c@n20;Azf6p_KlLu`=57NMo2g-Ux#a0TWT?O<EOxrZlyUFFQ;O
      zZCxdkMuJ5qW|5)nv-;Gpdt-gmjkQiJ_W-POINuAa(2cc4tfzZoO=&E4bA)v{s!o6D
      z9}I2dVt0*xP1LAAt`WOC%CB)&r{vRfM99CxpqjREb#DAk3^j^AexGyqf>-wvBY2e{
      zn2%snwBNw@nh>8rbie|yU0uAP2#!x|W3HRxZyM{&PE;(`V3}@dzk#2)Qcc0f(OY(<
      z8}s*`viVxNWeaPU?0IXd1GOXjHFtkd_MepZW)Im_ENZ|dy|>uiingLyX2+*K0&*XZ
      AF#rGn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d34f8504f27e6507ffae321abe907cdbc187719
      GIT binary patch
      literal 1575
      zcwUWEZBNrs6n^eDC>tG&cX<&35xcH30a0`?#3?cyY62nAZv~rKQ#xEbA%5~__zz6{
      zW@3hb8oz1y0h(wuG4Xd8&uwS7iGeLyZ|^<NdCob{IkyMD_uc~-!;%0W!${UF#2=|o
      z)VR83$2T=CAGfx2GaFy#&y2dJ8F%SWK!8C$5}V3xZ01bOv|W5XLsvD{BV(wa)=k|`
      zGPFq<59HVr(N%^(D)&GO!H-4}0z?MC6kQe2#4uJ{y2Isd2w_AxO$$Rp%GBncIGj}o
      zZRilt&d^kC6VZt-1|h52E84cr&@M$?cSGgGcAl6MJdJJ<J?JH<^%vS99Y*p{VVo4v
      zk5ddm!rs|b9~U%|MY_+841*$uaGDOdiVU+AB6?j&99?P|=azOx#0btZh*ZX$p=Zqv
      zvN^)1dBms)88I?jRpx+{=KX5U=%#kNu(77)SJX9wQf<xT)>UIw&Fg$$It<tkb&H|q
      zCNR_)e8Uj=w;v24%L6k^)JRz|7l|O1H7VjEE>TOZDou{fv8-MrE+Zk}%5gWz^AItO
      z8HO<FyjT&ir!+L%C8x5D*k?)5Dr0G~lj!EEI-}J3znM$ox`-RRah=q-g<M{Lnlo+H
      zsAyqOEx)rgO>gFKBrf-Iu8?2X=5^l4wrW*Jxd+Wg+BCI%%1|v!v$%%`!XRnwr+*!N
      zdH5=zfu2FyJwt#_09oEaXdmHwa%>09OG>PW)*?<Qfg<|km{P=mOh>~-NUsR(gF?@K
      z;sJJu;SHLwOZRXOz1XK{ZxO{ioFnUi%Z^dR0q5;Jefy~6=)*WBh>7t_S;{6&dmpVW
      z@@rh!#T3H_Bq{FIa?p?i_=pHTIRQFd2QNSi=5USZ7{4$j+UJDfX(TIYmwI2i3AsOC
      z>3xX)J&I67>IEW--&q@!I$Fy)43T`mXZlQhfrPJ=$2ThLJ0|f1Q}~G){HiEE>E)Kh
      bJZ@4>VUl1R3r?|VhjkIRoZ7gJAp_qZQ-_47
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6351297a9d0442e1ec7d2c036a08d296b7d95f0c
      GIT binary patch
      literal 2229
      zcwUWEOLyBu7`+p_c5I8pv}qs@N`SO=>=3sF3MC;>Odn2_#^8_wJH?q}t2mO6q{Og;
      zH9vsIFJJ-Z08Py~ELgJOM{&3_R%F$6da@Wv^Ue3&x%YeM-~ayl8^Be3md2Psx#=8~
      zA6kc2+3E)6j+9>6@7hkYTvt!i_JbO2i_tEPq`(U*;H%Jaqu%h`cDrUdGL4kLrDq~m
      z-2IO0NGA|T1uffOydrSfJQaymhOF6+9jpti7fu;tMlR9Kt4liq$%?xtGZ1*rKpNv&
      zBrs_pgS@~@VN_7Hs=_8s+mZJV_IIVXZSA(Dz**C6SnVClv(-K{CY3aStEVG5$Sx%&
      z8@y6rY7_^uZOULHmc!Y?lKDh2;?DV&<?OZPrhDMaTZh{JLQI=frt;vFdC6iP7t(l%
      zNjTBXz{^+=$oMj-y9Zu_a?gjTZHpAPb|1<{A57p?1FvC`y!ULsV+D;?$YVOj<K~0y
      z<NF21<e|XaGe{E4_D#Fl3c6A~1rmj&FNhcuyXgkD>u7&PqGVthvuxXr=QgD85BmsA
      z^n>rouS3K9Q+YZ*3x!=VI6^CIh!ArSI&)&Az&Vyr^^3ZC%i-Wi>9B>uBI=l$YtuE0
      z>v$)Pw*@Yqs)Y=^fj3zc+po7=b&w&zs)0333mA-y`XY;Ue2~Wby!Po1GjIb1j+rNe
      z9jh%MnAjXyT7j(YTTPaFs=z@Qu+>)0_O^ivK4M6htIE}4DCOSqtWL{r_^L}{fyZVY
      zyJ=tp_eh`qHOmV-B<5XloxtMcd8>;4#|G|Wi-qr4-q55Ry9s3b&3W6_L;6IrR#X7f
      zQg!HBX<NQ8NiP%mV1WfraGin3=hg3lKg=9g2CDSxYYRzw0F%YiV;IHd{B(ZdPfYwy
      z(-@xT^DG@enrC1l#g)M(ZNN0o8HRJ10`%8;ZDV)h#Sna%Z=sNizeRW{ZF!(EjQ(ke
      z!H&ah7<q?Qg`X=GdzdShdU$0(X+ksJC8Y*+?8WHhB04!-#3g<GWfX?#Bz_s9^W{i7
      zOA(#*kWNZ5DGr!qwe^rpx-k~1h(#)5@j6yUVU>rmz9H7PCt_XGSe%d$>sqL2ym$no
      zhqs2){9R1fc%<t_l#$Q*R=3O~))c}K-u(v?;a3mut<4P*)$fDvx%+{DKeEa{#c0li
      z;A6Dk#D|&|rzpJUE(@kgmQ~Pm^F7=eCi=6+TIhR4lC$iCyZStfD!){BalS^2H-|BQ
      x9VwmzH!NP5BgEIt(g3h8{txaR5%7p2AD<xp6Vx^Aw%&h=9Zg;lz0Rf|`yb6>%ccMT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..094a417f432ee8b7aa01cf5cb4bc6e73b12d831e
      GIT binary patch
      literal 4649
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e5d050c32db34b23c96ca00d6343bd27dd8fa66
      GIT binary patch
      literal 1590
      zcwUuMTT|0O6#h2U#-<U<t;j`0MGPqrR4QumGIqq#DZ*HX2gl2VvO=&VOp+F!{XIVD
      z48n{Lj!!=Lqa4qs3k{%5eduQQ?D@WPzH|2U*Y9uN0bIvJ6$(Rs&8=A*cHOq@?a<od
      z+_!>l$6d3^VqM^F?UC&-k$E(3P?2Eh5wIQU{!HF5B*S$l7@cM?ORaJj2sP)pPI#YT
      z(r6tvzRZv)daFDIhO~||NNQ-qIUOq68QKit&{1++{=Bxi!u^-_N|iHomAr~wUABEk
      zoTV`#(q@=#Ir@=;kb=}250`A8yCFl?7%v@i6g@YzDF?rhLKf#$^f4H%M$yra0V03z
      z+nZb%2zz>p^9P<3ZV1CFE-;L>hR|^lBMdq@6}`<Z&yB?N#HC1ULB(Y%<VlUxNuLL`
      z>T%pb2}p_)l-E5GH|o$UhRnL{u2%ViR}1*#dK7cmXo9&gS<PE&y9N^zDsl|{|8&za
      zi75&f@UZOF{0jBBSF%=ZlD@dI!7B|ihH0H9!eHp!^1TWVf_N?puQLpuk`F^S^<F%x
      z(DB?ww_Nc#cd0z_SFq$c<f>6iW_8>~o}rIGqSGgVtN$?rEqfk)uMOD+F)3#mv_^&I
      z9We>L$B|Qlo}R^1mpWLi+Cji+QuMeRMu@GA{#RHgBgT++NhpGx>?u0U&`F`MX6C-q
      zvJd?WofLFLo{ZKP$k3`sdkvlF5^U&3k7RgFU%@cMO6D%KUG)A$r`+vg@CPoHa-R=5
      zyO4-53f>UsTMXb`#Gh?&NPdOvS1?M<3|BEGBTYnSx=nmKmg9$5j>=(<*I-EG6R9$t
      zGxsoV=JsGUWwu8Js#AHkN#IT_owTG9yBoL}g`YuQlICSPX(@IOx0*T|d3}uKCCSL3
      j;*O*kBX1ErY3BBE_wSWgqTgJ!-ot%}E{MQcJb>~CMB#W6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuBarPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuBarPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fa417b0fed487b4ac8e74074d76ea0480f75131
      GIT binary patch
      literal 3584
      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
      af~@+_1j)m@ir0I1U$rLRBm8`Tyng|{ItJbV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuItemPeer$SwingMenuItemListener.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuItemPeer$SwingMenuItemListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9eb8411f243524a7a0c481ad16cddb8807a86c1
      GIT binary patch
      literal 1326
      zcwUuMYi|-k6g?LxE8Dfu7p=9mRk89=w!R-U8d5bOL9K%I^FpV%6?U6_wDD(|RBHU-
      z5Aa7B?<|X;QbV(u*PVOLJ#**I{`mRrJAhl*R1hINZCSp)ZyXxBapdU-LO8m6WLhn~
      zCi|Dd@++R`Y_mP{hox$|p0I?YAVx?91Z{(1uN(WK=_!a4R({ipLt%M(x#^j<)dv#d
      z-UrjoY!C|7u|<>^wrN_X_k>W)o&lHJA;h-qU6BCcyaom5R78=~kU)wM%}R%4)wIMb
      zzta#--DtE0VWw&~jrNY=m~tH&V^TPwJbw7mx#PnmjUXx8!r8N(j@TuvW~(Ff_FT^S
      z7zr$5Nx=m|ZtU<HE@GK5$$ot^VRjIwZ!D>}gf#`Lgr(C(Xt<0kgoG=+n(aGH&d7Wy
      zdZ+|gs)`KO6<q5Vh-9nVcKf5r9M_R0Ot*yhOzatc+Y2`cbJ<+=Z}*a<%4;a#1`B6U
      z?GvZ46Ucev3!fz{48sN+j4Wb9fzG%Q+ZsQF+kBP-+w}q~Aw6^f<@fb|-U$<;=dk?0
      z3nJKODa-L)PbndpWx@kl#wtPWUC0YlmTCGQj-rf2&?*)~x7vp53a;b%k<3_Q-YB;T
      zP%0(g3;#8uh{!-}o#fSBUPX9R^Mx<a@+X-3%&Q2dxsS6CP{9oMS}<2Ji#Z-SAkrbj
      z+mIn$$R9&H#zGe>UvagIT%n7b1GXuS4AdA?XY{*(HQhsota5gT6;TST@LtHj&OQ<u
      a&lgT`f3&(t&>jZ;BRme25`T**A@U1EcU^G+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuItemPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuItemPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c571ead688b3f84fbbe0113bcf60990de8935581
      GIT binary patch
      literal 1645
      zcwUW^ZBNrs6vzK}o0N5xX9j{GAZoWM6Q5AWgNTq|=0gG@ffvSZyJB%`N!tN0^sT;B
      z-|D9@5lAHQ1Nfl~=iYT=u##-ay7csae&>JAx!u42fBpiP#FBy#Lt@h^r?-q9BW>(@
      z>21!Pw7Y9so9PvCeZj5rvd2rWDXt*G&>^Kog9NW~TRiV6Xki#Q4XDpzh*7*6Vd&1*
      zwAEmSp|w;K^hv><@8Wr#sAbx;OmCJUt_MI8YYdSEyTDb1(XJte4u-IvSc`(8OM`+|
      z1w9PCfp`^h^egCN=xji1xP$@nxXHb&k>f>%9zBsg8N`a`5G$ji8<$1hAu6IbKCd{r
      zq9F=Z!6?IA)1x0h70H^e$1U!t7{OIhaGb%`vrW@7%}av|Q!Ap`>l$uAr->Pb!hGH{
      zZL2C^7^_<m-{F>*KCO`JYR{S$e_1Z&xU*{Hik$Y8wev=C&2UU{?*}8^d(&k|HE){^
      zi&8LMkuHp;HQdG|gX(f`(Gt-DQS}Ysp@mzODhjVYVH>n;*I%~CpVIJ9Y*nG)D&O;j
      zCHd3UxaCUaZQJD){gQ17Vcj@H#Gl}thH1<Y?wwS%pAnJc6}#-@`I0Fd#vA&a5PAk}
      z*`kpy6b;wqG^pOdrD2p#UzolZ5Tf^=UI&N|9Y%Ra?<q98UZlH{uSp~i(Uwf@qceGg
      z?)B6GdJi$UkKyER3?E@+J;@F+c7SWYNE||fu5n5Q-XMavgf`HR9CYN7l+Pp-DcqE$
      z6Ve3D8@JHmm!2XG6ShQ&@Bt=H(5g(|qLdF3r&WYLj^R!)BoY8|2;v4p=$!bFc~XX|
      zkih`RM}mB+Yb;u8EQ-6hCmXwup&%Sh^1)f$XTp6s2loh%B`#BIamH^kmSkcdbm=?+
      zw$Yw}ue6G91pi*wXsp&Kox5|K&7O7kgPi?5$JrA~XB2%Za~AMSW-<C_Vpv4z7<j2&
      AZ~y=R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuPeer$SwingMenu.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuPeer$SwingMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..409c1f7ac5ad6c3f98ce618a84c6930320bc244b
      GIT binary patch
      literal 1556
      zcwUWETT|0O6#h2UhL#ly2#6O@EYJ%QK)iz23R*0}OdUq_#kA}|n3~ii1swGs`Jgib
      zGd}nO{85f)x3LYVOdqn@bM`ymcg~)Z{QUL(2Y_ij)1fgKn|96EHg`<J-1UvB5U%0v
      zTK1+<l<TsvYpdi-HY^<xhHe?K7XX)}n<46NSzdCAVZ6{1<s5~~TejujW5}dhj7hIC
      zL~_oCh=HMl;}oKCwBa;|j!uTQlmv7YEL%LUy)6m%g;}ZyhMs~`HY;nUYe_qBMr6Va
      z)2&H2Z-5eySzd9=kq)K#ilKK?_)^5T9DBtsmR%ui(oLlc4dzwHvi-R@C4QD;5a)=7
      zf>upe*givl7@Biz-=rd3f?vRpj*G<g_bEpo`eV3+5gnHqI*&?mTtSk7?a`B$vSS?M
      zNKxS=`%)#Im%$m1tOCB5psO5{e?aS$VpZiwr7<Lq*Fvr>)843vWvAweg&kGMP^t+N
      z(q%MHsef_I;)agv41@oLaoof$()NU3bZTyyn$;JuR!nNlN@-h^>tqafIOZ@zGg)<=
      zvhcicE}Gb3IDbMubnl@GmL1tXbt0J`a6FXE17YS6hT(OqbK4p$G-LJJ9?Q9IXNcFY
      zVbM~<d?aR4vNG_zO#_jun4Tv*9eIY)mL%zx8#c`XO$GfMSRx_6EZRk($qdLJBWso{
      zjo$H0cAu6*@ULWP=u${VYaR(&x!T9kjULH{UYrRSCg?5Cw8-aUk!ztytr1D{9Yk(W
      zW>PzuIl#aHH8s2b4Z~!NzS+mHG}2^Dkde-QX>j)-LaRv?l!&X05#o_L{dKNDr=31B
      z15+xuY0LzQPl9SYvP66>lRd!gX1Sf}q8z%WDi!)JMA{LM%H2HfD$;u=klsH|`hiG4
      q66vRtNa;w&qkwdbFfuZl$sQv2@1AJtSy1aDr6KzxQ+tXfXuknc)>j7r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingMenuPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7f8b64235d521308e9696c6199fba532915d7d1
      GIT binary patch
      literal 2958
      zcwUv2TTokN5Xb*t5(o*WrIbrsK-yYblF*WZ^kP#~N<pcCR>4rf+kt$*!Q`BnoN)2}
      zpyO@4jIZj0GdjLFI?l9VMrW#z>Z87N)K`7gSA9@-zY{_TNsG*!?{N0p{q63zyI+3z
      z=c^k4dhn7LE`g&9W;VQ}FY94_#SW*WOouZohPe<P=XF$?*()UT!XvOpsU>vUyga)k
      z=WH*k1)8@SZ&(O;Nyc9Sb<u(j3nBuZq}u3-?#O#b;fqYG&l{#;-y^U$P=XD{2s~)T
      zr5|q8X{f~>0e2u6^MSNAcv0g;qd@q7I`yLg&5YY8Fca8W$dR3?6=mjxc|d~?e)ia^
      zp$&Hk)Muo9(aO#y<b~|~yiChDWf_<b#{4*l!(JQ`*tO*xG~9_J0yPWLj_R{AA<!5I
      zMmK9WZl}p-gnb;<a15PPD)KQQS8ai&z;;c?RZv3+U8GCg5nCpy@_~`y))KIsz$Xy)
      zqMJhBwyEJH7saQ?<71X>%&)O>uZFwO=a8M&IT9!W7ussjN~SDRno23+#c6@yZBLoK
      zvc3<ea8|?JI7dg5%x?(nQ+`(SR+oyBXux?5{h&s3Q?vpn0~J(*6%hw<pN0Wk5YY06
      zHfUu{TQ%hfkA-2%v21cyrYCf&FEwe@n$r_8J#FxJUg)tGjf_C&&N_-FL>TlC-(#p0
      z8_Lv(HdE@PyKYb2IKc>ybUeOM`!ZA>KrLBhLZ4(YE>n71x2-fE>cbkYa0__jGU1>+
      z)J8GhifNd{1WkBaCaq=4yvi`+a+P(B44(xn&1iU($HGr7J7ltyYEvyu=d8SPLnNlD
      z&Y8jpcx=_)d$)JDgHKr*>CC~f#T6>PTv!ruLR`=g2iIg?Y1Ne|(H*&{oAHDkwXzvG
      zv@BVvy$B^)6yDs;V`(my@RWc{E(^5YLY)r2$iXO$kY%bJrld8bnBt*kyUGH(3NqY%
      zd=*R@aeI-4s~VPB$XZh@cviz23;g3&Ha#bY4b_QTnyQ;4qGFDirc4he^h`!lNBRmn
      zI80ZUo1QAT=(mL~TJRs;WVF_iycQa*yXfmC=~U5sI<$`6p|0zw4}Fb>sgPJl({=0*
      zUBiBN4lVrd%Aq}n4tM{jIM&scLtyMg4#(-~`4*?nd06Fu=NiuB5Se`0CE7^;-jDvh
      z`6ba^7^JnAyaKPlgI6h**U*gD(T+C|#GB~GTj;~vIE!~^MBl|2$)@lgE|Nu`6Cs8$
      ztn!#v8PTwi)%|#Y=zVCx2rg011C-T+h>{P1QKC3m&XA6q-c4Ojw4)sC@qDbC0q#~x
      z?-Tq3G~z?${E%Z<aNeXGQ4tAznH;(3f104Yqto;j^sZqCIXtw<_N!8SOrd|GxSFGv
      z=L(EtBF`8gP1f}>qcw*|N+F+<*%u1Z>?jt3^WiF;2Zu0K2<eOpF^{8KPM6|xgj+9)
      z$ybQ!vGNd48ORNSd{Y)e*F%NGwn4rl$oCZzdmK-w#GXWFIUE(XqZIce;eM)s(=n@X
      zbA=T9^C{Mb1UEh{^`)KhGd1Eb1pl=t(b__ybQ4vGY`!$I-zc)*D@3*kLq$e6Pz79~
      z6!!<={;YsAVJTdyBJSx@++T$I`<6KHMV80)VoS^0pA~4;EEk?K?GC>4%G<A$+SipG
      em$gdv&y?D?l(Bc=Iki5I7gW~tt4z;}aQz1ifmaa#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingPanelPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingPanelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18e9842d89c3aebf8007e81a3656c234923e4551
      GIT binary patch
      literal 549
      zcwU8(%}xR_6ot<neny885L9&O#^8`JagFhh#JHFk5)Au-4b}{u$uP)sxzWUh58y)?
      zZ$T&G0@L)i=k~j&z3Ip2+dF_09N4f3M`JznAH|dK#XR+6DHDG>S9<LCP3#FR!yYGX
      z<O$wdwj1eGC@qsEUnDeE+02YkJXKnyXM}n)$e_h}=XgNKccXjhAcv9*8!kKj!m@i9
      zbwDV)sG!P4#*%Qpf==Q{OPzLtf1dusncFJ?yWh?xLz&!(VJHc;AR38qAQENtcQT(o
      zs41bj-a2c#Lny>X5UPKBCOG|QmW<@JGS2nY%C@0#$gSph7Wngshm8%6o2+g)Z}IAS
      styef+i(atx%-X^>$1<M+7hHFV60T5VwYTI^#}2UA?Q+hzHWqdJU(@A|3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59edb75bbe03bed48031c7204e751299b967d375
      GIT binary patch
      literal 2265
      zcwUuM%XZsT6y4W0c5JJOX;VWUlmMal5#mxFB_sq=(}xqMF*u~aOmXhAmE}lYlAM$g
      zjQIc_U%;dT3c;+!pu-OMC>Hz5imW(JR~TIB>fCeo-TOTB&%b{^1@I2ON+2R|t7&#i
      z`}(0?(vRFyM@qZo92sV_R9DY!`N&<frCy_b{*)zwn7~Ua@R1*|UT@e|yIs>wnLu3N
      z`g4)X)<MTIrRfU9-In3Z-w-HPFHB~cVJn7dxT^xUbN?f*8n^`vmh(FTv9h%%lMuM1
      zA%U?JqL|Q-L`GmLH!7%7QDGBR!;}xY2fNbV)_2=d;BwV!=<OZdHq^Ioj46o%OBW}4
      zI@^>RYw&7;$x&R$x+&fDP)?_F`Rb|Sgq<@j-P~)-O{?q3JBObCwU9=sOr^mo^OM3X
      zt|jmalX0$_hF38skaVP5x4L$NvakB6ZJiXhcK2nY4<_)shBq)z-g}1A(cMPN=aCKZ
      zSbMmAa=$=C9tzAnha|BKr)o4??vYeafoLxO4G}|PH!at&OwV7DC~8>1G~2jiTMg+r
      z!#)Dz{ooDxt#6n;lc$q2U)T+eqqWG!@G%FWQ|CqsTw(cC->9p%Ob(KiCR@obq8C%M
      z47#T90X|INmO%c(t)$^yyvM>APQ7KR!z4kLHLM^jpfNh=jTBb#X#$_{>a$&@VF@{o
      zoh{uRy)7V^+%%c$uB;sBO_qBy$DtT7_N*S`yBf;)j3Gx{6|NRTDfynQcUnfnQJoSB
      zJTZH*n;O=!LHhKs>9*e`A@8zfx;m%OURLx!*YE&aEPh9~ho<GkO(4~8(7T43&Fq<k
      zEvg`<ree~)+}0gOlH#RPewbsiqg*dQWHRcP!JlfHD+$#GYPW?LJ%EWq@lR-lg-kXx
      z_ZP;W&=kRod|svlut|sw#JQ5F(gtLC&M;iTB;f6?dNy_{UiQHk_!bJO@LPZv_bfXe
      zhSopzG1z^W_9O4ns_@grLJu>AVh^tkD2;oJbyC`;jz)-1I-rxro4D>>{}yt?bfS-k
      z=<JWAlMm>u`gG!oNnyYw<ypIAau{L}4_L$l7H?y56jo^%>pNn7e=gQd4~vuHW8L%>
      zjTMfe_3-|1nturC8VhtS1sVC8Z*|L5bVVT?<D+L7_jf&fyfQOLRKE{?<kwFG{Fzn$
      zB}8+|2anLchT9%3PLqGleHKiWETy1lW_!3ZO!QX|Yp(AVNKUa2?tAAcRJc>!#W@=-
      zzB-Kgc%*m^-mrL49U;C}Ee-(t;-B#AcLM%Fk;mtV{{nRncH8^@l8p{;)&&0&4-xqf
      Djd$5Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8836be2637034bdf166364de8ed24cc73a0b58f
      GIT binary patch
      literal 3822
      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
      adx_fJ-5bDLcHG-|$EL^VcMrq62>b^@PvdX^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe242f791dc7070d8106d456b5f1350cae1bfcc3
      GIT binary patch
      literal 2190
      zcwUv2&vV;U5XZky4sm0v&JU*vX+jAQierbmEx&Onw5Ca&IE}%<Fu5tt!&b+UJd%=>
      zBWK_WT!8~WrZd1yYi2lb<iH=r@O`o(D^48RgY@*??tXUn?XLaLzkmJ(;2J)OLlbzb
      zVeRMd83#t*IP~&uDV@A~Xj+YYRlT?5eQ(8-t=$R*3&)S*7!sILruPGrwTNt3;PRR1
      zqP^F)EopfIBi@mnz+^eJ2x$d@VXtYr3s(h}%8wtgvRgJS)4L&1%sh$VX+bR31cr+C
      zt{j2DsE!dN5{O}3M-mePvCLvkNhWo~agG{g(~@`h_jaVSW$d)1z(m=u8?Bn*m}(y!
      z4ynWh3QrJSUmcibx*<IU_e|T`w5oMSN{jw7i@iK5wrP2V1m<ulj%Nh2kMB>%3@)-t
      zrdw^=O6n)Ooxt;0h~ou1I(b_<p2a+`-;rL;XbFgIfh6NHJXzW^8ccjLQz}K`^H2Tw
      zvN~Quh9-x6N_?6E=b7MIq+>1ysfC>v%6J=NO~cx4$qjqomA4Ok{Y#miC#jC|Jt+&D
      zz$<tyj#mX{2CC_J9dGa!T<KNqeW%V8E(Fw;!4Nig?#X%=#;MZrHm(Vbw;j7KT{jww
      zCJzK=&xnUp70F=3R#o*Siu|sQ_Y`?LN{;9Vq`JoI^0VMz?nLrOGC$h)RqD4%9H6AU
      zuIjjhTWspUYY#p%kj=Yd)hdSL>rF+Qv1nVK!SQeks);sqtYMu^)i#`CKL9;7HV;{=
      zj?r$KbywYdgm!f7cTZJE1s@0`x<y(s)sRh}Z0ak@TtF{b<QH3p>q>G{#}zTp++%#6
      zg2vxW&NVPLrY4^|^(3KFdY)hF)QE8%&E_5<mHh)_*`-HF|IQ-~7x+&3;tEk41Z-l8
      zyD1+#ifKFz_+QF}MkFUL0AJ@SxSq>CM5=??-$LTBf4=RL^sY`o5^DMa`zlxEB^_HP
      zA^kU!YU$v)<=F=zY63%if685h!8I`sGZJ7rz-l~y5tsddIHG}rJ4{TamQVrC&ULWZ
      zAL60Un(u0b$tIA)k}pr-Wqzr&uOJ^#mx8plY(MSuNWxl}@Kye!buCwUs-jNjvK?H{
      z<~n$@zY1Tl3SZLgSCJ%>VPHuVu<W~k=M3nLe(2YPenaTD{{y{=Tc<&b3cAt{{f^M@
      z3H@OpwB$oMK>hU=<zw|Omvg<F?AH57?tWsue`Z~O8Bp)LY*poeLxoct^27f6{CY}5
      TYS{AMAE5?SZ$+5H$I$)*a&OIX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0250fba193b527791a36d5cad46bfbebb7b78c18
      GIT binary patch
      literal 3242
      zcwUv3U31$+6o%hb(zr>K&(;oYTA;KP+c7l-`sva%aT4M*2_a4c4If3ZH;IZZxssfu
      zT=IKhhR!hVghGc~xaSA(1Gwjk;p|G5W!a6B3(3;%+2_3b>Ks{r{`bpE09Uaefx?j7
      zHmd2z+OC$?_MCKub1QA{>Be?CFV1Ux-<i{SsklND5p;Ko&zj|mX>h}F<9is!n`4`R
      z3_W*rLwD{njKvrIKtCpvSZC<Ynnm7+F7&I2KxOEPC)OhvWVm&7>6e;^`Y?cDfg54S
      z#utyy$+TD5hf|0~aGGJXbzVgbV+@gP?uapl)A59hDQO~!V^NljkaR}HS&UPtT@Q`M
      zTO&m}hVv?3#~WmiFpyy~;Gh2xGKcT15hr{eTGS1`TrF>MYfalMaoWqGS<p)Bnx%_-
      zZ?N0h(QSs*aZF?Ab?O7O{dOKQ4BAZ#89Jyx?D-O|zf8uItL41@9T(-5OEl8X=w)u$
      zx@ly3$;k;7DZE=3;G4qGp)eZu^&^d|5xmE6`DiOtypInU2B;(!0twH0g|Y7~YRpl2
      zT*HkBt~12iN2s`oTeJy6E(LcUi?`i4wNZ&13@k@7Di+`3mc@%=iO6(U#iXDO6Ky3p
      zNxo8T&K7pe?2bnL+a1q}+BwPn5tgN8ff%jeh(;eGQl6K1!J+K4Mp3pg<sJ!+=N-**
      zBFKd|8R*-2M8)ZhC`8#Iqpb}>uN7M&8BWA=IU%su7U)M6lS;RT8^slIA-7W09j~zC
      z8=|x3@j%5Y@?ul|9NTcc$Z8fDV%oY;D`GcPe1R`1wm#YV5QWUNoTEDV8s9|lD73#u
      zgbEFFq>yMcrsEpflvBv04G9oev4w)%s~g-UcPEU_8AZN7MT>N!?g4qq_UU*^jtQ;x
      zCo^qUjiMcHkX15|3@vf;Qr*%^6gay}MP`fq3yB5F>W&hTZelWLrRpqkXU8nA@+Vbp
      zi{OjF;?v9NHbIo3FK<?@0-w``)nl#AeMKNhNX{_0l`Uzu&51qO9Ec0l%3XAvpg*@$
      z^c%rRI``7ux9FxB;C%8q`d(n*VRGU*hL%zjHH_BqT5=*)!?|Y^px{k9$0Xu_7QMhA
      zex>{0a1Jji0cc)=@D?rt^6C=arZj^X!ezWe1bS^C;U%7;Uxj`Ll0PGPfGZ3&eE5@}
      zsE4M3KO{Kj2KwLu+(w4x8SWg4`zVb2s{`)l@znj@0XKO(b^mn0-IExByCzoxtnpx6
      z#J>Rq^AQZw$V$XaM+8$kAZ9V=AyV?5R(JgnVyKd#y0adG;o~E$9BaFhz7f2Yx4o6a
      zzLCFUzJ`U6m+V4-GwgHd1H$9vC|c}rB*>wfzu&N<PXw?D46{_gk`dpM5iDX!%2~!I
      z9(Ixr(F857-UxI^(A5?BY{k{5bR{~3UayB~9Is(5tZ|AoPQOCqIzE#cKlja_^el`v
      zTlnw*UonKA$NhkhQQyZ+6g=3nr!f|SjUS+>AT0C&qHH}NH0BG9VcV<n9q1nW9+>p2
      zwMq&BHx-|u;IZeXLa#N~%@WEU?K<2RR9LuHDgi}7T3wL=(`P7d&fXtGjHj<)RPaPH
      dEZ7Luev6Lp+tj`SN1m(Lg>aERNa)yu@;?(Ad`AEP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f44acac3806c87c8a177abb30d83e5b02eac20a7
      GIT binary patch
      literal 2296
      zcwUW_+fvg|6o&r|rG;>6If{x3a%ia#5j++=P_3fnpj6cHDlHj^wkgx5;GGZP1NZ>G
      zfL<}9Gd_S1<+xX}o3`0$D;G)n@3p`6b-J?o^Y`a(0LyqALI=alp;=KsXeXMgom%R#
      zu9wvEsbL<fdvwhdi}{a+6+(bvvY|4W*UIH%%{me#48b+SG_3m!ozd7nLm*i^&=qu|
      zrw?5SG7P2-Q{S!>vU(|_W%D}2P`a4Y^7~rJpwA)<SVu;gVJ`hYVhM)6TuIj~eWPMo
      zMU!DMnszriSt6Eh#5nOTe@uiBVVG~(saCBZjA8mRBMc)xZTOcCW`#yXT6Rs7nt7s?
      z8%>=|GIe5MdcK`$ty;kZE|TeFqiMAbndXE>L|SI(bxhM*R?joU>j-uvdD^Mayvl#O
      zmYQy{f@#c><s8GX+=EMY<sE~tcacGH6t{G<!Vs(5O^GB(q42xLFx%3vTB{(ACDK#*
      zq)H8F!V7luLC+FHf6Z+}D>0~^-8}R)<hhW%$q;QTDasYB;x>8SVHox6#8pFus>_gE
      zz%Wn~-n8@r!?K4%sjo6E2xtE0$J#nq>lLiyAxS@C81rq$t-A}Z(6CR5JEyyv>77$M
      zl8o(C=ss;Xr*5%=6gJ8AdE=al9yF)NjzQSF$fv_m%;=x2l%eMj7*^^KZY-&~D?)dd
      zVWIVjSieER4qlP+9>chQKd#+l)vQMRiuh}`SFDtBddi@qIZ}W0E>V483jDkW{q^uC
      ze$Ml2h<{S~o$-6u!Wp`M@P`g4{2H{wBzpO^&ne*detr*N0E1%lI!AU8@)yGI;%6B8
      z?g8xBfH9{?0O)CyXZ*dyIL^ta2|``)qTV+_UBYD>bp=y0YMM|pUesX|)I6d#Dux9a
      z6(`i97gcV8y3YS^6Y2(5WYj95Zh29ko1pIEo{dUiO-8K~>VX&ar3q?-|DuF?j3+WG
      lMW|<9)Ym4c7f9QvEo{rE9YVeIqP{gjW$@Y_!hO5`%|CQ1AdCP2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3f2f6fb9a0ddcdae8b192a3efd04a8a2807ac01
      GIT binary patch
      literal 556
      zcwU8(!A=4(5QhJOmDObhK@>cCQXpaD8KVah#bjelFnBJ|U=4K1vg<yV7fn3)06vs)
      z3JRhLrs=f*^qaq(^!?-Y4ZsNwY@`TBLmhh$;!$`aiM)xFp*KyG9(o-U@01<{$qi?1
      zScKYIxE1I~C@sS|pCMFM*`*sHbE>q8&IqMre?iTGX0=POTERd%NF(dQhD#{_;1)MA
      z>VS}Qk;e`f8BfCb3Ob$yTI#6j|MU27&fK2&+5I{m_hfi0dLv0F`axfex*}9Ye<iKx
      zUQG$r_14R_o7{IYQ-s2wwh2xrh{L|TP{zFUtGHo!>yX<`^W5M+Bpx<4Ic~9Pb3VnZ
      uTdTjosnzKj+fS@hC~(a2DR9YkZDetUBCGv5k6o02*=~<>#<e`Ft9$}Trjg_T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/print/JavaPrinterGraphics.class b/libjava/classpath/lib/gnu/java/awt/print/JavaPrinterGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc1d805fe4bd223d8341f742e6ae2d24e300b207
      GIT binary patch
      literal 12394
      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
      T@uA)Jw#V`|JBnquW7PivLTNG#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/print/JavaPrinterJob.class b/libjava/classpath/lib/gnu/java/awt/print/JavaPrinterJob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..823adb2464be696e0fa0aad035bebff53af7b37c
      GIT binary patch
      literal 6418
      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
      L#3Y17AjE$GcpOzp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a19303c423978d3aba320e1d052a26727b696b62
      GIT binary patch
      literal 30082
      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
      b*u)BKVrBA8gi~a1B3z@Mo7loIjn@AMtM_dA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class b/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fcf170debff7bb2470b57722ea34583a1ec5524
      GIT binary patch
      literal 1252
      zcwUWEZBNrs6n-w0Rc3*WjW^%HsoOy6TlB-!1Yt`s6Bb%$_+ZT4cEOU-F7+1i7x`6<
      zW{D*J0DqM6+^)>BK=4Cvdd_*C=bpFr_n)7?0NlqT9YYKYyKZ3a@dIx1kJ9Y;jw?;8
      z<9Th-TJxI0zHp@ujUg3c+T7hWHyeARN!|p*gz_FnG{Q3s?>HYA=Bgpw@yv?T7VB;&
      zke2iX-!CyFo;t20pEIQMCs3tAok3gmS|W*Ij2RfkIO*jJbsZ^&nKKlVn82h0Cr81M
      zHK5~yj%kLgal(ctD_-EX%7;zSk&fq5?p4PX8^L}<_%?5}1;b?3Yw~uT`;M|BrzYR4
      zigMNS8%4!wJB}iapR9~wY*)w?DSf9ANI`Oie4!fe9Y2n#F7|<zP?`pD$y;gj1J9@4
      z4p94{(kK>?({YogdMY5dzEOK^zq9PE^2#d%w{V*wS=+R1YjtbAW~(C4=S2zC6l9G{
      zPCbtjif;#@QiR$Pye0gK=iA~?QiG3?)R<nVq+^LnI(Ek9+KVT#h-EchlVSGXzQi|5
      ztxcNl>X~%ci%(&TXJVI~+`y#e1%6Xh!ck=hhPbRan5SJDre}nnA+=KU$t38V){M@J
      zWW9w(5n!s=g;6}h#P(tr=^w~^hW6$wfi$F$!4!dJ2sTMJ@Py71d7mMR70i-nx+j7;
      zTmr(k%eX>p+Fx9Yu38Fh(C7L^ouOVL^prylqZf@d7_Q?+#9WS;+BeJ(a$m-{TAzCd
      z`G{*q+>zpUWCqEbG4e>CTtG1*KMuP`h$Ad+D}gTV4r<sj4WqAdkA6-6k-+w;2|Nf<
      G5B~!C&<VBx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/BeanInfoEmbryo.class b/libjava/classpath/lib/gnu/java/beans/BeanInfoEmbryo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1d5b277cafa6a66e9451c1dfaed4ea26a7cb445
      GIT binary patch
      literal 4796
      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
      EA6E^S>i_@%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/DefaultExceptionListener.class b/libjava/classpath/lib/gnu/java/beans/DefaultExceptionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..447615f2ee74b61b2af717c1295b472069f51b28
      GIT binary patch
      literal 1092
      zcwUWDeNWRs82{Zi=vK<WfdiDu0F@0KRZ#>whKiV&%xSV^34eCmIZC>A={jFNmYQsd
      zBz^!tl<~QCZ!kz~(%#*3&+p})d-~_^uipTk;7CG%VWV!f)pPx`u2#5iwbVEKlioJn
      zldo0YbPe0e8!eYx+>sDsnDr7(-Kwh}D(AfFN|<C=9)XYH7{c!g#nP+7@d-mZ|DS3a
      z!Ln7;unafH5KN`Z454GY#$_-}D~Lj7n9O?n5em&JkPv2=$r~0gv>O%fl=O<p8De?6
      zs+(oqF~r&n$_Qeb_}nw2MG)Q>FP%B|7mHyrl^>pSU`<PxBUr>82}_p>QT#@h8w&1X
      znVfQmPJG+P8@Bq<F)X*}I$UpP67Df9i~wEQtiNs>W{o>xB+2W*O49Yb93*8VuqMvC
      zPPC)Gd^DL784naZ#0FJFZ#KDAW5|rA`d6i;$Iv}(EsQjSlFTF<yw%d{+?U-Fq>rv}
      z^<{75lCh1)5>$q{Yl^5)-#ulJ>)d_sYcb5H#@RGs;F*HwB0KEbepJQ_>`U0|b6+m7
      zf&)<{sVPDx-6P|JtGIHN<e+G`ohpB8h#pDY)P~yvj8$r|AiWdxE{Q&)-zP}l2t+qd
      z(P{?)h-c~o?6eEzCuY9WGJsq3jZ!kOPry9_>>}pvfS}O<fl4EzabmNJxgm7Y3;Gbn
      zPr$sVPbWjX2d*RJ5w8Eh!UYniv6U`Xw>r2VOLeeGlMD?V>~yd@q>d96a7eT{qB_C~
      X&DZeKlZyLvJt;BMko6oMdidNwFTwqr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/DoubleKey.class b/libjava/classpath/lib/gnu/java/beans/DoubleKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23f32207594c77ab61a208a2bce2c05a36e1a135
      GIT binary patch
      literal 993
      zcwTi<%Wl&^6g{^|>LwWSYN51H%BwgJC1Ohvn<Au$P!_Es!ETa{5?85R{6KWeUu4Ha
      zVu278L|cgkf-N6~xHGo$XoD@=cjnx4?mc(>=kJf70Pdn{V1}^Rb;A0tcq!^_DICB4
      z&<)#t`B)wpND^`y=?kY@f7;%aoq&)G4)!G>-yA_3ec}7-3^`(tp~4un6?nGOWo-7o
      z?byKs!kTr4c{ab)Vzmu-M`n<~c@t?|ASA3(D-CYSL<+MiDwr@ZN60p9M{b6DZRu?b
      zZeR7_c0|7=JX@{f&1BHCeZo@nf1bHdqbq}L?XYN-rg&8NrnWghfsc&J7oq5LnT2tq
      z(e&0!&y}GS6U(@g!75e^T%VY7Btsx~a*i>dfgQqJPxw7G9X*qVlC(_R#+s6}2$?N6
      z^g8m9txPXBoWOJaeWu&4({MUrTLi9GQ`(%)68tyJ@WV5Ox_F{`1)h3_@pBwK;|!IT
      zEuX+FSB^NS9wGl#Q;YmAAPLYL{%77IP4D=)-eaEkS0fr0a8ZkAbs5r;Dx?Zu!eU&e
      z&R>P4%HNSa9ExiKeb9ntlrR*$jHM~${Au#XDP&To5R+fU25XhypaHDPFVK@JccD5t
      z#?=9eyvi%-V_X{`mHd?8`;`CBFz5?RIz*Mejrp$)+pXaSZgNeNkz2es!!aLR+{Hb;
      b269o=J5jmP>rtJ^&B>UX+|W%~XI1_I9JsT}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/DummyAppletContext.class b/libjava/classpath/lib/gnu/java/beans/DummyAppletContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..107f28451edd6fe5c23101829485c1c82e1ef970
      GIT binary patch
      literal 2208
      zcwU86TXWk)7(Ht{k*%n=v`I<0xdf=4Ktw48f<r@aTx#mXC3eE}fngMP>#CI{k1izP
      ziAP>}<&{4GWrn6O1MmDOhHqE0BFpx~GxAE`o^!tI?!W*2`8R+Y_*y}R;ab-Y^e4u5
      zhJL^e+tas#UhjCb-?zA5b!?v>`3iCj7bV0p?5^HCc)~kmon}~&RzsroArix-+V=hS
      zgKuj)d)u|$&33)H!*I1B34w1~dd&`c+%<gDu`3Mu^^RrQrhl6uTPp7}<f_g?UcfnA
      zP;j1M?vz+{EQ<mlo~Pj=E-@5BSFKu`;X=Yii~ALoBra>Xf;om6e(IA!FEz%AR>~8C
      zEPxWwpdc^2m^R-DdI#KX8wVC=m~A*6!`e4oQ+!9p>2;ZtiY#8yun3j%@*kTX!&2kS
      zx>HrOF84Qsho)1t%s#{QC}Nwcy|>#KL^`Pd07yB%fj1Q_QB<Q1((o3FByID<gmgA=
      zEr#>M`qUN*px!gOluL1f^Fv>k2=cmucNM%d7#6Y9b{y-eNj_Jh(@2oo7Jp;}mLF{}
      zTqz}lBCC|Tq2Ya$sc9XT8$OSsD2R&4JQzw*L~<%yzH8dubV=kwdE{)PCz~`vU{GU8
      z>dQiDQv0c7-ec!*%juBK76YCx2u<x$$~GoILQVUI+Z7q8Lb2r=en770#-&4OrN=!l
      zOy1)@ZE&N<usjAGT1-c;+x;LyN(r@g)Zu-3WE5;MT#kXwcqflL3>7(sMYBic5LwF9
      z#i!$OulPN8onk_}Xn3B}F(t@bRZ+!VG3DY6Kjp`irxyh~H#V}cn}dYPle;;>I~Vir
      z@nb68{7~2GzUZ0bR%Y-OS_*cFFmx$sXroEPZAL&UP|FG24!>iHQ+svvEUpSZigW{H
      z>6xNuQCtLck81Q^fJ&Ab`dXz`{M2XAPB8mB=6|EF3|<m8T7gYMZ(u=M#cwg@-lSEq
      zr<R}N<ut8|9BPuLg&@3&*Jx#UU4|tD)@T*jsg)C4`!yDrmV{kNo(};LS-icC>(Xxt
      z<w$0oFani7!Sc!<crUH=O+qOjE9GOQoA@A7`Y;M8!_pd$5*nFUBZFI#!|)M4PE=Gd
      za?dcIR&f#q$;Aa(!zU5<7Q!mC(`tsqql9}FyJv9<Yp6sL8}wwyN&Fxsis9yngm_!0
      zTr#wNirZ(!^W%hgHllKTMq`t~=MZT!ngt<tms|_y>R+fnn5{j>7yqPGe@cX?#;Pjn
      wQdPWtiF-1{2DWil%YL5FvU(Kb4w@Jq<N_Un7r4)mmii^pw?f>vJ&D@?A5FW#p#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/DummyAppletStub.class b/libjava/classpath/lib/gnu/java/beans/DummyAppletStub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f15b6dd21bfe52bd601daf816b9377b19a3d0bc3
      GIT binary patch
      literal 1275
      zcwU85ZEq4m5PtS}ISOZsSW&8NsV^01Emji~L(`_V(U1^piemJW$FYHJ;AoDeRezHo
      zG_h%-i9f&}Wt`o+LP4}2Zg+NOo@aLE+57eT`%eJtcx1w0SZKQa;(>i+7wg=1d&S*;
      zr}J_9@UYEgRrc#9!VF0rZ`*FOxK}^mjx-TvNNcaHQ;S0cgVpFd{SJ5KQ@h6*rYkzp
      zrL5Qcl@deD={C3@Go7w0`3K2xyYlag?D$Cpjcy26$W4aD+$ihlDPLm<?@*OELP%P$
      zaG4>L%h#sBaK*wDV#>N|!9>i&HHM`NtH+T>QlaK7#F1c_sR)<9=y&Sedu7+#)J>|=
      zb?kP{_JleI&aiBW9z*s&{i(50a|xFp?+ivWL#N%5LB>RH+mYgk>t5bbN|Vdclw>YH
      zKJ7$PwQ$C2(dnh_*&Qyq$FLlXQEOY3o^YF`{NFC>!X=36a6&9eoFk)Rm_NJ6$nzNL
      zX!-tq-V>jQHj*osm1dD+(U2_$Rwk)iTr^w66|Z*tp2MFBHO<+vv8|~pSRz?M^hIbj
      zl&18+4W+W)NiEt<id(ou>olEOlo_IZu5gN(!paF!h1C<x7JeZ8_7vAokol^yH)u^0
      zFYp9ml!$YK@SDhB3pdG|^;s~F1wdPiRF!EfOO`?Q5^e=mS7}!<Bm8;59@U=bn$7Z~
      z0UP}kxDz0Y0WwnfhS@J;;JtI;$N+qIA~-b;elrogjC%q2G3|!JuyN#jjZFK|!2}HC
      ykk<tZSebBv%s7phc!5>i55QaWsUfqWB0kVNrvMw&XIRtql=XltrNFvIKKuiN&G63v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/ExplicitBeanInfo.class b/libjava/classpath/lib/gnu/java/beans/ExplicitBeanInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ecc8847a49cb8ec7e2b9c656639db61b18b7b2c
      GIT binary patch
      literal 2128
      zcwU87OHUI~6#j-jrr-z^XrUs=OKgWn72kp=&o~J_5(o=%Gi@(rNSSHMfUt1m#*I6F
      zgK^_R6B`o~UApj>_$!R(+?LnOq%1n;+&kwx&+knC{QL0>zzr;`Xi{*cXzyjW&3!YQ
      z6Q;eJT{<Y2ti0vU)5)+m9Ti~(?b4uR+Qsbi+_uQODxwNHPr;7N6}0ljqS(z>tg`D=
      z6!flm>`q=zlM}HoY<E?-C%3x_1~yKEmV71*ELWVesJMp>fG>O|1dQ(pcgrc9f%Tt(
      zJ@pt6sH-40&ApO)<k7GT;y{67kiYsXnPvUH!z>gm*K%yLbkdpRhPM-ZPtGG&-mxi*
      zc-_E!?PiS~vnc3YbjGqRcUHm2bb~$ydp@rh#(7;f8n?xlZf0FUc)=-%7KCs~LlV6T
      zLg~!9iarH>4TCj<$f%(iEh+}j8v9dc<6#XKps{vUgNhhy*EDpXleLV7Hng)grXgO_
      zCNx|`D{EN|T}UWsTd{2MY;PwgDr;u0BxrIgPTnl7n-z=C^~<okWzl>FSI$`$W>-<T
      zXNN<zq%#e7AW0a1Lnz=-I&<ELh?+&d@KKQ3Zq!`++ZW(Ea8<fbTziPmLA`w7_49ZQ
      z*rWs@=K{8)#{)gpQ<WeFtq3iB+Q|5KB*y!*c37rKwX8aOmAqKCcx(ypd?p!+K_Wni
      zei6hFX6Df6FwDf0k~k$LF-1yZk(BYeBz{Rr{2|F?N}`*dJ#_kuCb|LU_3udOp`W;1
      zML)}dDu(p2Dn|72Dn|7QJ|@Cdr1eyUO%l;6bUme3F|Ma#RZM;*FHN{k&ncPDON#iI
      zv?Yq0LkfBHqkv%uWUz@Winxs}OvAz)w&~*zysBkF_?v*#xKc%GTtk!8xZ04^xX!TD
      zxDyenam`VwaW_<{aoz0a7DcR8oh8YBBl<Utd^t`$DlcuBj8-$KC!^pF?goJSz2MzI
      z@IBlQ0PCMU;DbQ$18R~VJmii1CJ;Om7&+~Y{5BB$5VHZ`ac|^zf#63peLr~A3w|F6
      wo};nVz)xt{JoqjGPyR+Li{5Zy>J$CTdwqS7zLGWjV;Xf~fk?qAEK2*O|F|yHcK`qY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/IntrospectionIncubator.class b/libjava/classpath/lib/gnu/java/beans/IntrospectionIncubator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d714b5c02c005f295be6c7b80da665c020653b4
      GIT binary patch
      literal 8782
      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
      Ef8SzW?*IS*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/AbstractContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/AbstractContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aacfd92f2e067e68c3da06eb6d2982e239c7e59e
      GIT binary patch
      literal 811
      zcwUWB%Sr<=6g{_{wpz!x*7qA^RB&+NMnw@HAQW9xTy&S2h8n3U%%ti^xlm997k+>r
      zCEiR6N?SpO<R&-gmCWbY`v-t6tmKd)tX6fyzY%xB52VnsUy)(GA|wAWh)pCyb5z$x
      zKA0RF!cc;%30?Isf*TofH%plRL!rea^r^UHgps#W^Nz}dl&TO$ia&BC6DeKYC1m%M
      zR%V}&_SUWl&Jj!Hk;b5lKDdOzqSErbaU00!QUo<=W$K}*U5QB9eXHr1YZVi`;{R^P
      z#+j-#XPj!xTkFi#3&MnpUgQ}VH-Y0`C(cIBXnAkX`2uCjn{$yv55Z;LuV-+)vPDxs
      z$d~GkD3qtlCLe2ywrNeAMHWi)$RNcZ>+v5<**sh`Jos(+w4YZ#SF+vpHw-){upyqa
      zNplm!JiAQ*Mli~iEiv9fenH`>jlA8JJc+3mc|Xa<==F_P6n?DpNq2`iyNN=fiE1g>
      t)ih(QaSk(Gg3La)1v%&%WF8A0L1tbt+aBbYIVXPvS>%Vc#!Crj`5U5Mik<)f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/AbstractCreatableObjectContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/AbstractCreatableObjectContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16cd898b203f135aa6a3cb7ea244d022bd296268
      GIT binary patch
      literal 1412
      zcwU`TT~E_c7=Df`47w?-e5m+A5kJO2rULN-f>9y~$($&J1n*AU<5tr3khT-}Mc!~B
      ziAo}g-f7~GGQOuRW3V8JUAlA5`|&*QdEU3b|9txn;4x;ixWq75^PA-@{(+Y*!Tqr8
      z2wOTLC_lHtDByOq6bK%1%M-7yEkQ@=M`Ab1LSvY^AoWxRL-&H~yU`*;rZ};|pe<3b
      zjtqM9=t4I`U&ZxBwb`&lu&xLhjEc0mx4{Efol~P0)!mTcY308PpC?rAIIBG14H1bT
      zaWV`QD>0VG{aQIO&Z{c*m%Fyuj$G-7Sr`n(^H{@BG%Rng72XSm!90dAOgEP)i_uA<
      zQ{1&YuA`4(xU;gA#<rKm4TjN^%oWcQHSVoNJQ6Lw9^7K6R;AgHfiSm^QOtxoG&xzh
      z=gA%6m^*dhn^9e)PLq?{Be|SC(-P#em2|?H)-i%n)gAMUKx<Lp`ZW?rM*(+K#5moe
      zJz~8c$Q`AAtRj=tUSCG;`@Oj8hVV&^@#1+sJZ_dEAkFibK#3ur)OFml*^ARV<t7x_
      zBwbolX<h_EGa!5?J*jfadECQ&hW@Z=rRHVsdcuh(`yIuv$!1`SWmk>s_`m0IS}|)T
      z!DgVIEWPwK&{^$fXl2S$Iz-O_Z7xBlf1OtK1#1+Lqg_4;qV+PZ1zbTNMfB5NBTpfQ
      z;^bFZW2Mg+_=Q|)@++=>#NZJMn@1SgG;SW^_94c8oX{AQ4$M>f0s$_<#Iu-gH~~uO
      z)b1|Xn5L;Ijtd}tItqA8H&l6sD&QxygOV!Y!50jiWqd{PRrFw$GT*c@8ZAZxlbDJb
      zX)uW4gsFgsWI4<If-DL_SCrGLfKNCrrcLrVZCrYbOHa7y_lP7<`ZAaHC6|cVrR`_-
      UTY%lMOSW|;mx3`oiKAxz0u)s~LjV8(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/AbstractElementHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/AbstractElementHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f46cc064370194004bedc213926a1f0b935a52cd
      GIT binary patch
      literal 4436
      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
      H^I!ZQBCH2g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/AbstractObjectContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/AbstractObjectContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acb6cac35edfafc0eed1ee6bc0275d761aa70635
      GIT binary patch
      literal 2066
      zcwUuMT~``c6x|n)5ki~zZPivyZ3>EzCT*g{TCLTF1PBSlESB|Qz#EtZW?E)Q>_dM~
      zUz4s@*J@VU_x_svf~@X4gGdCIs}D2x%(-Wuv(G;F&cE;e`WwI(c%;E65U-l8<Wv2*
      zo-9k<w37$2Vjak4a<gnZO}*mWFF%zPXUj4jdFW^e2wb}W(T)`eS}s;#IOB%bb+elE
      z@};=DW|)SvF5r*Gb_D`kOcI74mm<(GC~!Grm@?ODlx4H1m+Mlcu_}6fS8p2XyX_1(
      zHNzH2Wd2VdEFZFE+b1v<?Ijr74MAWef&m1{k*)AejKFv_-7j1qynR@aKRJeF+8RC*
      zh@MBuwq>JS|D_Wi#xy?GFe7l~Y~lz$!K}bwRXSUB-DamF(O6e`*O?l`n1-v=?94_8
      z3%I7?Gl8Mgoirt=%4P(gBTD^>rTjMcdvb;`kHrX<5T{rypOsF{IuO|C7OUVi4YQis
      z>p^#OY|1BfwvzNRF!2HsYRE}ekEUb0VIIbt8g2+oo(GEHOMJyMW0=paXPo+KpNZ}D
      znM$uKj7i*9)mK=qJ4><Fv|gw)l~Rnp#+n8mlciopX>zFOYHmfnNntu;jNlurw`Zld
      zY|@-~Z&s%jG;9dWp6=wVLaS2qTJ5CM@SVV1*WBuLS=H;Cm5Q|OPL#laVIIgs0g>io
      zQKUwDQd8&8fXbV8gAC_07qDQc-*6bY+$Y<)Qn)CcsH>Ta8c?BC>E6P0pLq=;=bgWY
      z(r(omHX7{{#miT)TFr{wG1O0Cs_(5&C|F>Q*V@k?ASF<Do7Mmy{&MIE(Ync1DDUDi
      z!mnuf5aBz_6}U~%3O=9}@q+LnE^{5l6%4f#tTR%@1{at9#PHb+8^mn78OFV+b_QjQ
      z^5Ip)n7cPYUx43}Dyz6ef&qH=7yrQU5vGRc2Hs%4<o_L?7D|EP>B13Wxn;FU|8&X!
      z8VjZAV=Qws&b{l8f5SrVH6}~T$GG*6XB}bn^g~&%TxC{}!nf|a&3mBMhotN^am%HC
      zk9uWDD@$_s`187p8Qdr80oG6;>JfJEn5YuJ_V6S2UDO?-*g&V@eQe=-SH^u}f~+uu
      zSt5TRi#2AygEXxj*1gLre&!0XYL?aza;$eoBD|$Uihuq@qI{qu5!K1Yl|S&lI#lLm
      zR`nlO{d-nhmQ%NzHG!n7N&>5{DhV<>QRRmFuCl)xnHU(MJ&q^j_l&3puEQegXX0$4
      zTI}$JtH`>0{_-6~@@+*X*pbq~N2I5Nk62F!AN`&VKI-s*DtpH+**UlD@+D4AUC?#@
      N+ULv)3aX-t{{hda+L-_V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ArrayContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/ArrayContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d859204211c584e6a9a268e9b7dd20afd013c0e
      GIT binary patch
      literal 2068
      zcwUWEU31e$6g}&YI1viO3B+wFMJ**LCdB=MeuUD7K&V@jbQ&g8`qEij8%H3o7-`)&
      zzo;*LfSI;r%1ry-AJysIm7)ko8F;X~+CBH&bI-l2fB*aIZvY?SehnptOMN+PJ>tLc
      zR#$Ktw>;4cJrT85qloXXg;I%;s-eQLa1yW^tBChhie;#B9m+7<G3bEHervP)Nc7YS
      z!^BNr`sx<L6*qUhr6OPUS8_XR0gvOA_Tn}}WsUM!DC3lk8f=ELySQzE;k1o2n4yHR
      zP;HOlTmhv<&f;tha}156(@5+DBq*uU#yQM0oRVU%En~%HPf)pTftuqLO_7c_Y*aD9
      zaHiu+u`wKUMf8Ao1EDPldpy|Yk+0v=&5GLfV}{F}*KnR3EBW5bUZ#~%-H){_hWat3
      z<Z~coU+prmHbryK`<_R9Ae4v_;bU&4)o8n|yQ7|XqWn<CHC$nEPm&qOV$cotGk6V)
      z3>S|$+d&}uJlIlPi3~J}s|>5Fo<}7(p~)IMd%oHYhsxp7@ueq5jtU*_?D!+$IcAs~
      zKXzoOoF`!%`()y>1sB)!ILugBKufPapho0NdaxUXd)jeR6$`09MB(r38$kmh$%9Mo
      zNliHPU&q>{O+?vzJFki%4~6tH{3owYQgl;h;$b%htaCpQo*Dd~=t<+wFz>dD`lqM;
      zOB-K+u9#cU;liLAz9#h1ftkRz?!@L$ZSLF-hti9)7SiCEF42&2KMcDx(#_8622)|>
      zzA)ogbe**Pdp7Rio3Ss%q5MLtrik$e5f206J?j=itgUbu^~AcbZ(u!t#g;W14&CE2
      zeHQ7y>B~&3N&403N%XYp(`kkN=bF!9HLw1O>E_af1JwUO;~8z2@FqQH4di2bUZ<cN
      z^!_Q{qMc?Eit~6IFsloAhlus+BBd^w)w_6)lF(4%ecHK9dlh<HFzN4-D2=MWz{0~9
      za39W+j-}^V{wGU5VF+)Tg!2hFOIWARy*_97h~y;|T{n?b@sa+7;$Dt|WfU~W6rw3^
      zP*vmlJ~zez)#mSLJRKw4$PrdE!fHnNnF-f4OXi)T%fF3r{Af7r<TT}AH0CSEq{L~b
      z8d}Qvr32jj71JBqw`<z3XNF>msJ?osYd_Nt$258*ROGtW$OJdAN*!WmrR^*cdJ4C(
      zX1aEVdNeMD(}^CcIV0r&>rd}%9ZBCb(ImkRWt=w9$Fwtmh0sWFlJMN%BoeGNaf#M#
      Xe4D!0O5H1L!YF58H8b!#gX;Vb0Uf~e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ArrayHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/ArrayHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c463af07fce77d3e63dafdf9b549a8b327ba5d34
      GIT binary patch
      literal 2748
      zcwUWGTUQfT6#fn*nMp{chDxCqjaY?{N~*Tj0%8$Gr~z$36sy*g<d6(ZX407x1lwAB
      zzhCHEe?cE>)3u~6Yqfpyp+Bmt`%Dr@2&od7?6dEeZ=d0xfB*Osz!ChQp@rc<)+#0z
      z`7%$W1h?EoMx^bGa1x`A!&fJ`l`(~*!N+j8nPSS74o}OorpOCRR!kT)xmplYyui?r
      z^vsIVFcTBp%@K2mK_5<=hGobRhSt8=9D{F+{Ap-o*xjHXLI{tAu?spwVAwMYg5mKn
      z{0QiXkacQRiXfgqr-nTYyF3>rx3Y=TBnab4bdl2R{Kd26Ke;6xGr8*yDgRG}@id;H
      zYzjrmaH6k9=|XBzq~%Z}C)UW)v6sQ`=4?j>5mo8zXK3G2n^6)S2PlwXk;*}(a;RFg
      zr!r|tkrj@PK1$iNt!xneN-JJhSCRxe4pXoN)8^zUp>$rT3pTDKI*wA;GIlX#Qiont
      zS}#%WwzST8A{{T&)Ka!>(tLw>Md=OJ<#oC&(=kkWrE}Z~Vnk`3q8Zn8lmvtag@N{@
      zVTtKtJ|&!4P9Yc~NjuHWIqn$hTw(V2C7Xb&9#liIxe!`$Mgf7w7=Ki=s~)^$&TttH
      zHnXV(Ji#+i;10Q9=zYW>3}IJtr@99WSNf8+lTEDT&4kNW5~ET&Mye=<TftG;+u4=0
      zC`iM$l7=gVrHX78aLguLtVoI!+O%>tOf&Q~tI2gmK4q?Ms_VGO&|+lT@CIfz%rJEB
      zoMRZ5Kuy!LLe6osNJBbQyAU&^XJzZ)Ut#IELWoSOtx`*MHH<fLjiD_~$#cVU&x=)t
      zJv%H{?5fhg5yo4%NxMOTx5aF}avD-~s2?jwXUK#hus~R+z>-_i;8J)(!ofqzDc=h^
      zas&laSXr6Vu=tScvNE6$?X($29u_r_VC0HPg@-*mMVt)5KtTceZGzek8VxB;#^y9o
      z0r4i8oOA43YOU%sa!^!3mUo_GLlCuSQ&>?ZG_I~%li6G)z>rGh9fqEoi_0`cmYbta
      zwy1WX26pc;#HI|_rD)M!4;{TxUPW8fu%g3U<vS9UJUbA=ZM?5y-)+)03j85MbX(Tb
      zwj8&MR%SD-hL0KcZE2NnqH){F^R3)yn>G`nwstjJTDl3v_FZMz`~SPFF1&{H8G>F1
      zrg@(B%D+?wq%UnP(6MLxEE=jJ`&LhNfAS%vsheWPE;?y3Zm4^9ckLZFpp5ASMc(M&
      z0n${jQleU+L!&>+l1@K+QebHVq4{-$e?@x<?UCIjblgYxWko+*!oDiqQ^Ipqy0?T_
      zm43d2fhv8Zgkx3ucnK$}^iT;W75xi^Yr(7Z?5CuF6Z9NLCr+Y=UN-|cg+YvB9H;3H
      zJA)fUE#fF~l$H9~MUryzrzm;F)B5ASb&PE}4teZps`r9t*jZL1SLZwz8YVDFPJDO`
      z=Sh|%UVy%*=tGWKo_eJbZ!I3V@H<{_!E`)w*&_yh-M$A{qI$Z0_c8w?IxFP$zrpEu
      z(Ek(K`V}KR=#NLTWuriM-~l=|V9X!x_IC$<!_qqJdmC`nc^&fJpnn5X^NPOpS1qlm
      z4cwlOyt|G&ia{xN;Tm%I0N0WAzSUXcBk!!f%Pkl|J3VKqoJ;7yWzxEi1JupqxJj}U
      zH6TsJ3gYJIvq&G4tSu~~fV)Jgwk>$`S=(&e8a~0N)HX$ZhR-Qdke(Ou1<j!Yckm@q
      pJ{+UdR}{}rar!IN1OYKe(g4K?;cI+Dyk(-k#dkz8eD95J?LRd9+V=ne
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/AssemblyException.class b/libjava/classpath/lib/gnu/java/beans/decoder/AssemblyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ebd9a2c23b277f6b8412aa96ec96ed9aaa9e224
      GIT binary patch
      literal 393
      zcwUW8u};G<6ucMG1VW)uM8(KhibTW&Qc)#@V2W6%x;w7b8l?`hlLDW`gv7uH@KK28
      zfM9?DKiTj6e0RRL_m@`y$LPig2>qF<(_66=X|9BE=~T&bs%(1hoLc0?<K=@?ca<(p
      zjF7O?FbiR3>GuO6I@3m1Bf?%k`yq_yw!9a4p@s(&LU_Tp30APyMhg+4lWC)_>qV~Y
      z*s}=Ttdydd2&?`5YZz8@?FfVHzd475mK3#P?e3px2+2)ZTdA(J|DgBF;mE7758||b
      y5pRynJ!UjQzy(Bu!)L5MF$$3InKaWAW}af5QSXz5HZ~fU2%G4z2VtwxY<~cQNnjKJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/BooleanHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/BooleanHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca089192694e2a2b1ee9079bf3fe88b6c2f8788b
      GIT binary patch
      literal 1035
      zcwT){U2hUW6g^Xcg%xcJ7Hj>&+7DorwSGR(V9?NLLNpO1sc*wF(rt!aTz0Ge6#qr_
      zK@ywjyFbc!XG<xC&`ox;_s%)@+<WKz{rBrPfGs@LFvqaoaRPInA8@lJxYIY=!gAZf
      zGheu_q{J)kw59MgL>Sg)K<jq5C&duS5ZksL+b=T|a<v(ZsuW$}_(Mu5-(-lqq!S$%
      zkVqnm7{h$ccEp>Y+Y(-bx1?Z5)m)3qCiiR=50epp&+ap9&XPJiM~T|&agVgmp-gng
      z5G6{Vv^H|J5H7jXG3&l(JDpN~EcLdvFD#!3di9GXdcN&CeGOL_ax;`F{l4h7<kt~A
      zj*J?~3uqO~SkZ8eVPR4;iR-vQgNRQ7mo)oQZn}s3hXigRtKl}o;_2yd8%f;3DhV~-
      zy{|H)Yg2$y9BVZ9N2)JWp^YRq6(hP+snx3*@(in|q}Ni44wn_L6R5?FO=B?RhwIE*
      zuH$pM({|Qzvj<$-?QH8<O+|qy>d4`~y8YtBOed>u>PX{(LToWCk0Tm;p8HuDBJ@(s
      z32mbsGgX8xr|t%xC3b9OpY&OO6crv>FfyWg=IA9iQmoNmnPQcR6^sGm-@|jAzIvE_
      zOvq=rNPn4Q6q2|UR*B&<=BY*m3s|JH6y+imr^Bi)@f6-LQcFK^^&7MwxOr%#?w$ne
      yhet^79wE1zDhzOM0Q1jCIzwcjgao!ptW5E9te`U1hB0cxz(YJDSw^iY{*(V6kpYJQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ByteHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/ByteHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..593c134a40455ba8ec99fcb0409fd45ef73d22eb
      GIT binary patch
      literal 718
      zcwUWB%SyvQ6g{JPXsp)vTPq?y!64{DDlU{37eN;l_tSK&Bgv%XA^KOkQe5}}ew278
      zYFm(^feH6<?m6eqynnpD0oX&yMjyj!Q)TWgzvFIQaFw_X;YSS-yC)B+IOD1jh}ed~
      zu+{@tlVL0PK{8lJQpxm~VSCf-F;NLbC{+4AQr@~^FixrCpdW(;n6Ma%o>byI3+p1j
      z<n=%>jC+yKgDW0OoqrdN^hPG+t(R2S5@qt%;xP#`Z2Z$2gGnO^39WB>IXvL1>DJO%
      zs%Ckst8`Jn6@E$sPUYSgtyD%Tu`$U|>R`UssYY?g(>BV%G-hqgFpPAN+I9hRm}ju>
      zc#w&UYg+OT3wlT|sd5>8VZY#HuNGyoFRD`C-e}kL>}oJpz~~Y5*GGq5f^wUpW6E{K
      z+TMA_z*F9L=<np!eL@~!h@$B)6bcy5SuBj8NE`-6F-E;{su`3|<gAAj<vKern0joJ
      WYEj+n5Snd56AM_RKEqOuU;YGd?ymg+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/CharHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/CharHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66f9e1563589b89362d6d94d47b1f6a5dba6716a
      GIT binary patch
      literal 958
      zcwUWCQEw7K5dOAYIXtmNXlu1<&syjK3fAa@(llvEjU+@LXh?Y6J2uBP#~!&ms{S8;
      zfWDMO5`Fha8D~$VL?!W(z3j|<GvCa7`~An4uK*75RL2U#o-4=obAG|=w%{_V_k|Pm
      zMObeRc=(#jzAr)@8pHk)T*n)Zd@(~Zq>nu5#m5X4tGy)S)E7e`<5^0h+-1<36fuy(
      zwJcVVW>{}~QoI=tZ4sVv+ZPP^cHnTo%R^7uGp800yoh>RMzt_RgL)hBkcb%${<AfP
      zRZ5A7sARPhxX-0q@5G@e-9~xA_0~QYPD}~L>3c_vVlR-9jtvHD3DZdwiJ|R(n8OWh
      zVOz&7hTNY_S=`1QYTp;qjRy=VtK8CYm$bV=wtQc>+&>B3v6^6BHiP>N#o1h@6Udm;
      zX8WcL%nR;&ebb>8aVHjG&A<*!wf_eUoBx`(YoLIK3bD_yy@)s)guy!{34wH!7z$Uh
      z=5GQup_N4$6`DoSo{$up)hag)6!A#aeXJZ!^&-+T5nt*4S0l9LPB0D~@yb(=Ah)1$
      zO@U#8mIU>!(4hxKwobQWvXv)YsZNmjoWu?K8;SQBA)n(q-L`(Akj0IpN*Zfery3e^
      zxJj`*`82W%NmZNj6uwlw#HRKU8&ec|Q|$Ee_a@k#VDH-$#a=aaiGvBMpXRJ<Nslj(
      Y!AlbOXo0yjXD*?JIx#UkN%9VV0u{09H2?qr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ClassHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/ClassHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f46b96e2842fe12a04ff21cf92bc050e4525f4b
      GIT binary patch
      literal 880
      zcwUWCT~8B16g>k=SJn!JD&iMbK`q6&G0~@0j3E#o3OtmM_+m1<9or$>*=A;{@~`kk
      z5>52oA7#8VZJGws=q9_Fd+#~-+<Rt!|M~tCz;kSbm|<A&s6l+fKk+yfT$#8nvZ5_?
      zypwZd-f`8=g$@xgY)k>RWUrr#5t5<wN-Al$85;HG6vl2YdP3O|CD}Y?2zICvVHWdc
      z%%Q}v*px~f40@^1M?B31!*a98cz(>abnz$|*se4TkETgYZjsP%eXdEF;mLo_#xO?|
      zLrRb9O%Knx>clOprRpS`6RE@WL}Zo-(e9T_^sOwE32~jFK1J!RF`}2|r(<{ohLtjI
      zVwIsHm9bn|$*u4^(2oBYz{8RVRor$S-eFjsWE^#M@!6S1euucnP`f}qDC}M_Q0?(N
      zv`W_HnrBvM<NUuQPyT1>BboE?;vAQnIb&MIKxbl4x{F(yyqRZ?jT-Gg3-`>>OMd~y
      zA)U4<c9~LR>l|0U`g%m)$Y);=@+Gd)X=R8)8P|N55*DyXJpxp)M73qg1r%3(*AJxS
      z)GCdwZ@6)`{{z+cPtS4d7a@k~cSkx49+yz&H8J0Kt=f<~)~a9)_x-%{RC_>7GR052
      F{uk=d-46f&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ConstructorContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/ConstructorContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5eb460eedf36d9dc77b7a957104eb69924e5db36
      GIT binary patch
      literal 2106
      zcwUWFZF3V<6n<_K*d{F07HA8KZ9ySP(?%2&DOB6oY9tLvYp{Tho6R*@-0U*DH@y5S
      zosrg&8U5~0;sfJzZ#rp8QsQJL_uljJoO7OY?%jW1|MfS3%lOg4h(NXxv<r`%Cr+Uz
      zoggmMr5n~|R49f)tfIE7!iZZXpD7DTfvbm@uheMmxT+XQM>#cL-mX28Ja$|KQcl!p
      zw`8DVfzxFJ&{m#bScxL%dD)BAlE9H)eJ7@VyrcJ>piwAl5p_pzc!8&u1ukZKw3{mO
      zg2qyxeYPr)EHbe)5;$%ng%bjaOtxy_9f6Yr!lyBY<0(*S;|PwXxjSuR5>reoma0_e
      zc|hcBRr{Q=VPRBYtn3A{(r(pcw52%^m?(#?<5!)?)8{>5QZ+r6IbZ(Y)RTY_udd<x
      zG7uOI<kMn@xk;y9zvDzsODY+4I#6mo_TR|8qhRj3=nrgsh>K*0u7}v&7ZBmW;Cm_o
      z+tm%<>$bp^%v*{wm1GB@q}QIg^0D$*xP=9Q%wba&$Ff!PpLfl51qB-);j)0GLeoxN
      zMfO2|m^41YRSQ=HE*t{CAyqT1uX_OxHa^8?0w)?$_4GqvEz>t`17h`78OdLK%6i+%
      zTt3H=h3f+6-fC#$25t%*V~a}^I)Tgixs(|av0HE+U+CfgQee6_?X6}MKGm~mW?&Ux
      zStxQI`!gv8PdLAt=q=t~sk*$|Si?F;PqX8+V<t6~$qtNQ;TwUOeN83YY`e`4(_J_V
      z-wMp`8<l)tHXMJ&b!8m)Sd|Z28Ag<666{)WCc`$zzx(ve4jW0{NLI(|b8-N$B;W1r
      z|ICoi5-f;YBxJ5Uq-dHZJVnce0g#6>Z@e6Ooi7jL%e)$IS`Oq)U%}0=9l3Jd(=XIi
      z{}Z&RF)+*5F2S$I2!DJg&5lnWS1nCJznjOnYx1lmXLGx-b1yNry^HY|n8?lV;8ZUE
      z0@J@6-?RLmBocTZlDu(aSi&jX#2GB(T}o#=D0mO&0JD1^GmN2kvy3}JuQ{CGi@Iv^
      z0@ArZFu_O{?(IiO8_gPXTsO#*9m_6q8kdkEP7+z<sGFxO$#dQyzhWLq9YG`SU~z-%
      zbpB6#Tv^EP;M#AMm&k7~>|*(!&Ta=Q`-g)&;*9DK3%)k%9JAKzB1&exhFg0XFPg}=
      zD7}qw+@;4BrctHG53Kk;^$$_NPxSbi?A1(FcTF!=yH%}X0~J;=it9wVL*#LG?K|2f
      ih?T-7F%v|y@ja0f#7p5G@e@Q$VVhAB^nPGieE1*0DJaSS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/Context.class b/libjava/classpath/lib/gnu/java/beans/decoder/Context.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8754b12fd37f2100d47517b53dd210a4d804159c
      GIT binary patch
      literal 704
      zcwU84O;5r=5Pd5jl@CP`@EZ?a%EiXSn<rx=AtBL7;(^<?9h(x^ns#g8uX*qX_@j(N
      zsRk=*4?CGRZ{N(D?c4jyD}ZyH7+4c%dn&d@@>yCoNflWxIe|-|bsZ>8Q*9tGu$9!u
      zQhC;`Jt9X7)TQg*$xu#6Q}_us&3=}7*?ABs-%K5P(te;K10@0Tm!4NqL=$^F`=Sff
      zRG|IG*+5H86H?sd)a?H~@}eavH_Zhu{=f2baJC)Ac1q|<e@w1G&g=~NjEGfRW^c9K
      zoJYwrdMi~+T)n3#9y6z5uA~%LzvpK5Inbf6yre<FThzZ_PYD7QKU&&XmBp6Qyg5wv
      zGYI0)p)T8EO6u}#E>;BC0_I<Z-@bq%=LTnaj_Zt+QOO`xY-Es4)R6o+*v?ey*vTLb
      bG!t$MyGh)`ei9E-jYAw^KGQLuYiNG}$v&+s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/DecoderContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/DecoderContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4de1f5def24f18938f497bcc043b339df4b13a4
      GIT binary patch
      literal 1913
      zcwUuMX;TwH5Pg%wgf)spK)i7A3;~Itc;UsVsftI5BKXNkGKRG_yVUMP;XnC7t5m9_
      zO27M~EPE!)vg9bWQZ+j>-TnIYo9_Jj{rv}kNjyp+#&DtLGz#zddtN9D?)ZhOsJK<(
      z6&9M`dDoF*Q>Kt$xY)&Yw(LufS7hMJkP0je$4U|Z)yJg(b%uQ0@;gzHKEpuMry(u7
      zFzb1It7Q3-JPzEk982C~IFajuGP=T$n5V6QI1XjdgToB*+~`UQM;MNFfHlyILp>m4
      z1}UV~ZXkms4lwkVEJr+P)XTzq!OON_$d=p+w^z7lsdI3dkn0wazEt`r-KY#>vu-c!
      z>XGHu>ND=~x{$(qsudsxL47uNYK7*dF3nintcVS1xsIR08HQXp{e555%l202uBsf#
      z;4IFO9F(z3iq{OxRb{rBNDar8*4wRR$)%_ZhghD=bt`$dR>e8vHe^^mgZZ}@s!}-B
      z(Er-slXPNx#BY=Xhb3;=qN>|~>Wlk=PzQ6xP70?m$#8bhP_%7P<MymqYp9Y#In%hx
      zaCuoslb&tet(ul^k~}82ZTEwqqhkgv%}SHRgn=uVRt<T*Mf+vxSx$|T8yLn-<#CH)
      zDC+TI-E%*vUekIeEvG6r>7j~LOik!+DR$5xjr+v$;s0=C=pn%8!f)6F+n?*GY}%sd
      z<kIz&ildQ9Ee7{9s@WDZn8Q51<+9uGDq_h}lX7(bC`_nWjL^iz>F*~-KN>r|qd}yv
      zn#CR%v>v3>OY(}*cObuwOnwKwYuo7iifn%DEBZg{ut8e0NYFY>>usWO1O2#(V{|jv
      z48{<S1A2FYl97x!iBn`dO?L@84eMlcnhs#(zaTsI4d$!842HJM61BMqvJoO1IFAb&
      z`64d0Ax~=@fb9V)8bC1u#zHWfag1uPJjU9<ZqZKpCy8eNrxw6x5x`^!m<$2OaXFB7
      zT%RdA{;>sPRbynD)&PTH0);jzPYGE)W8V&j*LHAaEjzW1YumW-vjy^vhBTYbA+0`o
      zt{H9b)AGe=e+PHl(kxP%*uFIPI;UBWRNtP4;Q_s1v-(0%eMb>DA_62s0jRZu;He-u
      Vts3PU7Fy%CBJt@keo1>h`~&3Yh{yl{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/DoubleHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/DoubleHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9c063218ab0b61f3776116fb65da3c9b2c239a3
      GIT binary patch
      literal 728
      zcwUWB%SyvQ6g{J9qOrc}`|U#1Rxk*<kct~0xG1`)xSynB9Z4o-niM}vSBeWiz>gAd
      zrjjaBG%(>l&OPVcnfH&^HvoHBb1=ZL(Nw8-&pX`n1y^maA%eIew09b(ekd-uYJ@^N
      zu=*qGGHT^W2Kz`VnH)1zwrhPR&O#9hm3)m<%Qp<x33XfyVz`I`Y=-fgRN^v?e4(#7
      zIbkT(;(&)YT+1x~Dq6{%Y%^^3llrknmE5(sCTWJPf0|<`&`6u4Hn(dA9&*+6>WP-B
      zSuKAnUHSJSNNB)4dk91;k+Et!m}Xe(VY&;Q$2#Ikj&d=Jc?WY06Fp?tco7R&WN<n>
      zOvTmh-zK_a*`mrwW!Ls=fGpPIR0rZ*nv4B$NxK;w>tOU4**8FkUW9UoqGQUlie1@x
      z#?X`LyYzQWb)S$27@=ski$W2jhQ-Dh#)-qi1SY9hqMAkdlwm!j$ms06VCFF=%|x?i
      SkFbyv7O;e6>NBhu{OTuo?Xv0s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/DummyContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/DummyContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9877814d6e87ea5749669cf00cf3e35cd1934536
      GIT binary patch
      literal 1589
      zcwUv1OK;Oa6ov03Y0{cNAN0YSfl_dR#;sHYqELZKTOvhJD5})%#`Yv}>x`rExJmyL
      z3s@n61bcoI;@UB;NgNfjn3s>gIp@yAKYxAw4gf2#Qi2?T`GyFLLw3vzlQZEPHn%*R
      zOXF40YMpF&Lh-IDL4m;CA;OoYuOzcntR+x<<_Jfv6Ugg}djtv_DAOPhV`UhDB7yOm
      zBlw%3Wpep}nJy<VRr4(7?lI|v^LVkKnvPFkq4p03*O0+%dxuHZ;)=_+<{`Jx%8Xu%
      z-gKF07`?@{(37^=wRl@Op72XBML-{x&G&iBbWakw1_Y+dFcan|)S2TFAYK??U>nRS
      zJmu6+b`?{+#Rb}#*N27qlOr@&_5zHMl#`zI4#wfaPV}p1Z<6J9!Vk<?u!Xs}9i86+
      zwmwJdtX|D7<%lC}-o-LhQQF{9(W{v|jN#Mw+z(vTOzRnv5-bv!J6*1#8!4E(DWxYz
      z;Q;}!DvrG)M>MEva+<yY)bT0SoAPcOQQW3WbjRh)=d_MtD5GZ3ppv&esVGylsZ{%^
      zVRSkj1B+GhWW(^iy6P~=4a;S|-)5?5R5Z|GDZI9ozPq%mB)aI`rCl$O7T<EhOFNnN
      zR0;KP3$IKb!rvH<@E?F}31<fO1pATuUtshz4sxJjTZ|T$;T*Q*o&fvv*b}$_<EWaz
      zaRFzO5#~9Laxv!ODMpJHAEWR|gqrP%VpKSqg}KPVCAd5QeH3wU%YI)kQZSOh2wZ`y
      z5$qaVAAqgL4vV2f@~O|_HY#7IsKta@OsF^DW?Zz@xM&e8|FMs?gRFO{$`zB!Q9Ooz
      zU)%A)WL9n;g$EIe_C%@5-G=%2V8R;aaC`?A{xdd1r8y*akB?tmxR(`sfOUwhqm0<O
      g@H>?d^3gNx8|eE}h<W$}{yy4vil8NhGa}XUZ=ZuP5dZ)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/DummyHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/DummyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdd55743363eea25f96a5c48b7c13a2ff403b770
      GIT binary patch
      literal 2314
      zcwUW_&vV;E6vw|SJGP^Srb+1!eigN)tzBBHX-lAWQ%Kze44zO3lbI4OYkOm>$dX4|
      z)$R=3;071C@JDbcr_9h9xbsIbJgqj0?8YPqYgfDPefGWYdn^C*@1K7GSi*V{2E)a!
      z7uiqvQ*O5e_d>fP+I~j__QR;(fA$IYI<5$c$TOT!MlScd_UEl9qAiOkFkG7AzUGR)
      z@T3MX6z(~mBkwch%9SmKe4VUJ<Zx^bMU)ukn~o<oqJB#RU-6bJ7#5p;o4Z>)aN>8p
      zn3p{#q*I$mh`Pow6G|RPhCAh^A9U?e-?c+NvR9=HoK_@7SZih=YooRpNXPe@PAG*(
      zgvyo)hLdx6HI6aA!yT8w<f%Ku*=b;g1u@BEIQReOkvzidFq|(R78ixl?(u-Pr3fgD
      zVtKpXXvE7#yGM`hIs<Ev?5^;-l2%SS;bznlNmW)|*B=Tx=afE2RdthM_qw&p*9^zQ
      zsHH2o!TYKhFWFH?I3DTiNry{OcX=2W<{)5ZNtuzWndTH0QDLwqOg4PE?nhoHHDj1<
      zs|^*-yyr`2=h>#Dlj9(1x5vYEDo>mhwHW1Kc7?3_o)jb6zEG}AYZ+}*D`M%8+n_B?
      z+`utXG>Jhk?wvh5h-7j-7_J;3MrI{3Q?)GlYTh6K^T*ZJRz#+J_Q;nHk$KGN5f79^
      zmFXIc-&T@>F6x<mT!T^!JnpUqfghCc5yPP2J@vn(V=dVeR`%9ePH2%bmKY5v1ktgs
      zTaR49Lt*WZLKe4LQP&E@zz?LwrDgS`9Ne|-;c!@`;HvR$3jG~9q@Zn8@d1}TyJ}(u
      z58`h{eM;BHH)7L|g0@(9;xENQHmGWB4~y<{j(#)r`8!TO`tZ=(EX`~h8I3bncVYfP
      z69aSfEU3jLyh6{p#DE;<X{6@If_DB`VH4-YeP@$K;4bp0DS(w2X+S(Xh0_{(24~5d
      z;WfOjp(`{R)1VIsT3681iBSd`qvB-Vz?&NN1&#S>s84C@GljaE7-djz;hc`|1m4yM
      zSu~3^JdX<+zpNuQ^1owTxGysy8Y$PnMZBXzyoAg2c7@jR^j221`<hmWgJsVrqTMFT
      zZ!*+EN-a?Q3H9An!}pXo6>GAhB7<Nlf~DGB!*z|ghNLl!++=cYrYnrJE2^rMV$YkZ
      zpg`#bZam(_&F2&TGUH!L{coi$c?<h3`BK%sBOSg!uq|&>)<<Z|9|-W{l(t+}LdLWA
      z@qx<X4z)2mLV127>d#Zkv#iTg!#&Nqtus8B^$W3n&7`=;GUET@l#o+<<_oMmUi@$u
      TtAAr$<=-*{GZpEfvReBODL=$`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ElementHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/ElementHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c80530b6ef0fc2d25e58b0cd8250db1cb83bcaee
      GIT binary patch
      literal 860
      zcwU84%Wm5+5M1U_#ctX>oHTtm4<wN<6?!auGK?4vV6+7c^w6FtX{#up$$(t7&ad^*
      z59mh)UD8UR1Tmt61{luH&Mx`y>d#*Q_y7kHEC@I(bd{XTUouHiYM11gnH+6$qHuzm
      zK1rP`v=J-`SPwEKb&-5Y&oLtb%Z{XF{1}gnEt2U(B~DJ0K9McciqQ2&4eyg_h8I*C
      zJt`fcM%(Lt6R?On7qAyUtZZjz(#nj`IssAqV{m%v=}zg!Rf@B~eWlEAWW(*+FytL`
      z9$oah-+78sb7)PaBpfK|*y`{;X@d%~9{0bA<s#S+uzN@H+0f8bI=_(#Sks2epO<6e
      zZa$uX)|qreSt_4#G4_et1=7H1!YLo`$KBDKE2%Xcq%(7^iG~|*qjgcy_4ORzGgyO}
      z$--(|oZ-6a=z(?AWf8m;5YNflcMd11x@@e%xA-b;SVDLHl(!$A-}=~8Hp3wg$&=qc
      ze(wz)0r2qPzg2#w%fJL<1S<hs&<^+*Rs%kPr>tLN^%CPcGn=)t16u*N;aR{PcpmTt
      YybSmXUN<V=F!K&}!FS)|{{rm)2mImgGXMYp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/FloatHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/FloatHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64158311e40dc1ac8c76b3ed9d0c82dafc76ebcc
      GIT binary patch
      literal 723
      zcwUWB%T59@6g|a((Gf-P{lvr<XyU{~7Y5_TKwJ=AVAz+TV$Dp441@8rbft0O2l!FO
      z+loM9h&E|+ALpKP@9oFu+dF_G<ZUDvwpyy|-t!0UHUw84w<)}^DI&MxhdjRIs_Bc!
      zhQ+Ww0$7tl+ZR0~L+VT_8J{!k7pfyF%DxDM`XMhB>kQTfWgLuQB8?<c44JA_;;I`o
      zM0CR&zF^2zLy!A)9!c%@f>wMdI}AIcq=u&`QFCn`kut;HKYL?HQb~uDb_-Pl_ql4h
      zwK$ThRVogJt{eBli>bgVKYF4a%TRS}%rWE#nD2QiVHEJVk8-epB^!%0^8ji3PGcD>
      z4E6)}yW;wm#{8oPQ>DjLMo91M7oHldh26*#6{#1P9p2EPMq?9<K0==aUHT33ZL-eE
      z*OAoz!3)NpP2Qo`G0|f}o?w!!g>Mwnm@+IWOd~@a7G{v8T#jNE`Ll-glq{oj@QV4T
      XKB*Sf$pK-qPng6i)+o=gZtxplW9zW&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/GrowableArrayContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/GrowableArrayContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..189542697115bfe35cb82b199bbd912b0c2751b9
      GIT binary patch
      literal 2456
      zcwUuM-%}e^7(JH&fpmdDD^RE!DYhX5Vri{yX{!ODZW|~Th=N+XNp8d9vSD^N0*(*P
      z_~L(|Z@&0oXG9q5=(~TE<GGt<2@pgdcK7agzaQs2=ezf>zkmA!z%@LLqDf%1Y*#bu
      z#+OE>APw8ilw`3|l1}D<Q`s^KmdrYiu`^w<J-O{g(JXM~lz?o(^&F$<1-=5BKCdt7
      z+1%%g`s$2;&;>fU>3W9k<qfMUBZLtbX!*i2Tvwnw=V!GHyPTO;rb+G@s=Po?-QMHE
      zx-5F!Y_+6a_SU$#YucuFpV*Rhev6)C+U3a;Sx52$&C|pjLj*k<I&oegk{rp$An=NY
      zUi7iBD?Po${{|UH^6m7zsG%LP7zXib6qf}04*eYY+#<w`&z*+X@VdY`TW;xo^F?_K
      zXbqM=a<WHN=M4?#pb2#4Ok2)ZHww~OQo<-wDn-M}8;+^|17owdW|GXY-2c#(TsE1d
      zqbvu#3bYaUbWNciqf}Zj9AiUz(y2i_#!!G;Q5>7uF3L^Mq~cMG2_#RO8`qT^1#2gC
      zS50R$bf8s{driXxt_!r6rI!ozZdg)};cdJV#Z7^DT^l>DCpR?Q!fod8r>R)k<V2+!
      z<j@<KbTt=)nAC6=_c$k<3-<Egf>mf5@2U}dPoTd(XlX6bflg6O2@D<X>6RtShLv^7
      z)eUKTAu&8d6(aC9Hu*LUiane=JBku^*%i-xzO(2V<brzwmy@T>$H7R9<lFF2;CdM3
      zCQREkOEO_3$^rI-&nMq9!3qh(vMO7$G#*11In^}Jkyfd4R>C_WaaLK*jkHUl|BbV8
      zHo6(&ZnY3N%o?U8Oa1|073fVil!@ovv`ccEZe{7ubfeR#=HO!u%UBV(+GqkAVo`(p
      zM7mXrc`qazy2KVMRi`LtO?7}THael>Dhdgn40UNXV*o8^<zJM4O=#o8yU1VjuJFG+
      zKK!=v=|mSj<6NyXTE$;V?V&q0`YSG^(!1zSrG7zwJid>CT_j%k(L;RqvIcOI)owBS
      zZRWY74gxOInyBT$Fx~|G)fHT26}3tdNfXy2Nbx)B;}tvy3c>HpsUjCxa-2_MA8-AD
      zVFf^0TGj|+PT3>rh%)TshJu(-rql`ztIf}LF+RGFJ3pdh?j_PI={?;4^M$%IFohY8
      zUJd<_-}@9%zfVjv#4<~dhg?14Du>6I_d7`u9r1*nEMS@p3dWpgq{eKs?0$xC)zbrf
      zaH6L<_SD30w?gw0*_9rB504b8kjhTK>177xDa^88xVIJ*7Vc)Ec_tNvws4}zHvw@I
      zb;Ny-p#$Rng|?q@RM4kH^Na&zP^bdNAnOF32+>RgXa+(W1U|%*V35*2PUemL6lQPr
      zEfqhTR@)7-30|FxCpvOjQBmKgKn|vBiq0zz#|{()nb$%^dwln8T6Rd{S8V6&ItBYe
      z=zUlU!1VcAs<Tj2Fhc7xB{&Y{9xY0Yb|1<<K04&Amgw6$#oEI{?Li@dReTaKlL?q<
      UIZAyk&3AR=w1nh*>U(|m4<Q*AV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/IndexContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/IndexContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6290b2973af862a0c8633b58a1eb1f72a8b20352
      GIT binary patch
      literal 2043
      zcwUWEU31e`5Ixs+Y{#f2Hi@Av1(lG*c7k0#O521&X-JCNKr#*EX~OVuEnS?ODiR~f
      zBuroWH_9L2r4KMe$^bL;y+5kcy^<mn#{nMXySm;zd-m+E{{8RO8vy6AQb2}byzBH@
      zoBSbfbp&_(mL*Kr5?;%2EU`21I)T^;3dk``9^!bt;|Cr$gV>iL?+L$WlTld;-EHo4
      zTg#nIVFq&yMecQbTf(9Lhos8Ezzn*U{;CK9;nC|lVO)`p46ZU%YblV`z>`jQ&ZxH;
      za`TkEge*ohXecveYxQ;s497H#VvNvz5f~Q3*Z_ojdzd_rYbauv;pmcd#O>ZzM|gL5
      z#}<mYYjV5IJ*nQ~%UrM_eTIpp4^WH>%}8s%1aWSv)e+l9RC<M5)(ZFdmY~ujjrthJ
      z!l{x=3p=KG5J=bY3m9jp9o7-w7h4_sQR1$OozPIi5oJwjC?H=zo#FJ`JcezHF1J?$
      z9*88ch-rq|TdpVcV1qll>j-_XfBJpb)2V~f6qe3SQ~16vecf>b{ekQIk~C|UP{TRZ
      zpRp3oprx!Y8BV0@yR+fB+e+ZDMCMXE2twX}6f%hhWxRHn=6iD2+eLiEa6SnlE{-oP
      z(a(@mDT*SuZFgH(O$N>Fk@m^->hDWMeGrb7_+NTIw}ah0f;oIwz!ip5?+(^*71wCC
      zX_nP47=s2wfnC?|1Ln!GE5ZRX1|(IzU(hgwJj00J>%=J*xwM59?$3G=w2Cv)BJMRa
      zR%)=G%_4qgIM;nggw-FyFiifx#2<;#+5oDg@v7VNOtC1{=9SZ{)l}ZlshBK%#&XE0
      zipa{SsSZzC>hPp_r?W_phL6bqW3txhUd0`4yr5_LZ&Vs5cTs&72ArVZ3PA#2)9<$g
      zGfP2p_=IlsC=8$CGa$51;&TF3)+zGLkbRoGGWa5-#c1GF!cC%=p>wkF9A_V6q%plq
      zc5WAEpJ4Pg&aAygZLLCVW?rEA&s!c<iUT#ZfEz@Afxc-sF##jwQjHK3E|c^%&r?Q*
      z3%GcI!9vWSoMgKcXG@ah!$MY4;N=9ojLRg40{@02=?CwUEXsdMmG>u(P19MWXYwUx
      zvtUmf;l)dQpTYVrZal?)oqwhJ?qUr0a2!09ekw^nm84(9k8u-c!goT-{nb~(Zy|;j
      z{TpL2wL=GpFOw?SeX86Xtcss%e_9naWh}Im_^SQ1fgd3LPlMC^eu(%{8ipm@imPwM
      X)en)fDM2HcKT-k=B?8<Iy_Ww69@?%z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/IntHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/IntHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f7bf4d59493e9adecd30e2ed84ee145c55904832
      GIT binary patch
      literal 721
      zcwUWB%SyvQ6g^YZMq{<MYJI;@e6(N?bRiWtq9_!*sJNe|V;xB+WttQ}OIL~uKfsR?
      z@5IswQZz8(KF&So+?kKhw|4*sShJC0*l4N9ec(OrHUw8)w<)}!DYSc~!b`52zR)%-
      zhOHs6x@>oR(MK|5PNb6IDMM+uI%MM97i}>huk772SZCC6FoLlx(#SC6s#1yTsNE3y
      zhBth{P^bnT_iwqDChr%m@LqNqHit<iJ5<P8hilSh*!ib3hBS?INoRYv8pD0AT5dhm
      zQnf03KT5U6gYZHcaLyk+(FtXsx;ADQ))LJ3HWz_z^KgK2P{h2AIfi_KB-f%PbQTL(
      zWUzbOk3{W`eE;F1KWA1|v6#8FUlU}q9z@y`7t&l|F1e$9gT*=+J%ssEbm%oGw<$WM
      z+*C59@(V_v<Gw?GC$1h6@(AM;6~9r)Vj^bAU=lgvurP%@^$Jw8D4&j5k12|E%CDGx
      Y8ju=M(@Y4{1Hv?xuuOf1l^DPJ1u$Z;IRF3v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/JavaHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/JavaHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a5f3b65d8c1763dbada3a49f4e73b0aea9c765a
      GIT binary patch
      literal 1942
      zcwUWFTT|0O6#lj?)P_jG3*sH`rA6cYRzb0X$W(k#>+QkWrfZFpCQPz*@L%bSsG~DJ
      z`rwapJiCdZmPUMloSb~;eBYkS_UEs!-vOM%avm9mqiwHiz2R@U)fC(dt(LI;mI$n6
      zaxHPM<%%GW9K-1p+<Y^X0k`FXD>}lHaR@`+_B|=qB*RoaCA1bHstg6c`9|3CK3`?n
      zS=Z36bX;qRhp)*=h!NZ6VOaNhOC{eEVO;LDt=h&1!VTYWJV(wkyey^B-syHa?_!<R
      zt+b^OO*a^FH9{K5qG)0SV+@s4%D;<KeLmgDV+X_drjr^N$1as_H$%2G-6((#Ya)+r
      z%Gzt907F^(O$=d}p;&i3vC{1{Mev9>UBR%U?%UjL@W4^;u`?%MJ0ZjIG<`kIRyADZ
      z0jXs;@n0om7>)h4KP}JLE`u3L9{iaLhNq>vAGEEtj%$T{&6<}oaGG5y!nno}!@`;^
      zR;A;6btja<Q>EUjMGQs~73NW5D5cG67>Z8QeV4!~lqWhECesvBt3<yrhC}}rPGj8`
      z@`0XghLfe9QF=(3y*3?f!xiDGY5>lfw4LW^04TgKFh&gsWY`uh(Y=-$f=yhcX0@BB
      zIW<7d0Gfu9bJfH(Tqijc&v12soc|Qa{J)hYAI2PyX2p{ZmqKqDjoudJ(y(eCx9EQ9
      z^RD=E(eHY#q$37y<4ztmT9-bki3KduUG>TjR(OXNWp)7V^Rzo)lN_qCzNVsF#zVgw
      z*kaL98#vapVrNtwj?fxs=_1Y|qjs6BjM{Vkq%EiC5dDq7B;0ngBq4M3JW#IWK4Y}}
      z4dc%~W9K?1%BR;cS)N(Pz7IP30R5lP(X*8IBDL@)z0YGmYB)&Va+C*$a2U|mlvbmx
      zqZE<R)-f2G@i<P9=Op=ZggK?P)MD*J<&W6+J|P{}NtQLqR0K#!hA>UUOj{MqPz3#^
      z;7okDS$bEr1xh$k`2?#!=>wf~A_65z3%Ee%qshW0T#i#cCSpZhto*=soo?n6t~}W&
      z&8YtTh>r7^>_(5;Vv@KRCstM!H?-PW%=HxFrY4)y?E{QTmZ&DbV7_1Yiyq-dlHb7H
      KSoo60-}?<LzTmC^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/LongHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/LongHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ec0762a2634f2b295224d8b01d533e182332a7f
      GIT binary patch
      literal 718
      zcwUWB%SyvQ6g{JPXsmCo?*}42S}+K@kV-ew;v(2Z#r-55>qt5&Nh*Gpt`rx3fFC8^
      zNlROhqJatbaqc<i&U}4;d;&Pdj*T&fy{788kNk<dzThfx8zP7rB6ht<HLtm9gd(<K
      zFzk=O)n%(4iXM`|x|B+$Wro6$H)5g^ik47mZ=`g5$6#Dh$H6!zb1-2s%z9FZn@-CY
      z@h$g5!LZ;(0T1tZEOp*18tH>f$lEBXp(RS>t<7T+W;pz(H3pML5)wK%@-leHRnx7f
      zu~f~{@ldJeKZ+ow0jKgDh;}L?mDpHf*co8D>r|t-#nV2@K_06%Rv2amNNqcZHLNq(
      zPdx01+C44#hXp;PmsFXIzOY|#vR98faUiNv-`?EN^_*xhcERWo^fyL_UV?I)qB7;W
      zVik&Sn0U?l4*i|1dPc}|Oi`5YqL9OM#$sUxv&3Ow4)fGopqfGXV#azwQKnOT$MQ>`
      WREz57fY9s{n%KZ5^%=G@{Pqu0imvGZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/MethodContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/MethodContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2dc1151cf22094fc59a547d66575388ce0bb4f2
      GIT binary patch
      literal 2509
      zcwUWF`%~LS5dIEC1VWS)2n3P_=S6IT<EDjDo-H_`B{7BoH8G@VWc#p1WQpp*qkmO9
      z)0no*v_E#He^jS?k}(F`q2qzu+ui$i_uIYGKmY#mCx9pTNk$99gM#VB_p}2op5>b9
      z#Pd97<+&YS;cn5&CoI$DN3INsVWNrWLe_C@E$1d|uDM#);H%j^PTSxpLx*M;yb?EE
      zhv7!j2k>0oh%eZ-cAV55cZNYJ`QcJpi8J&BPKIU{;v255n+5W?HmjSuJJ0YaTyL(|
      zMA8gWg7Q<)iY^r$_=ur397)T#&d}Q+3kBWi>Hry4wBedU(hU{;7+`2~xVxOEeS^@E
      zwD25MF@#$TDtT_Wn#)DKltFkqk`|bssF2al(4Evxp7KgrZf^>zM6p&*Gt!!^i+x2Y
      zxka7W8cF`2<`6k8I%U^o^23!H8vC_;eoeDUcDWt&WVy6&Tq+|l_+@nCk%}-PL=+uu
      z;<wGftcyLWn5g=k7=cRv8OFoS@;}Qw(g;O)c9i4$u5Ou*j87TD&F0Q=cqwZfSKT}D
      z8OCLN&T!|$aaBy<3mVJ<ch|Y&8I)^ZxIr#5z9g)3b;>i0HA^Q9yBbu+G{eB<u~_tU
      zg95f=mf=>)3Rym2$hAVcd0@Tcp<v!a3Z^hGrgK0@U#nQaBF(zCzt2tTK&;Wg)u}4M
      zW(34j70<B5(C%7+@p5Su6a|x*R}jati2j`6W^Jg=qHP_DQLM~GQpE~V46<wa_eIP`
      zWT&1m1#4KB@si>CWt)l(Y*JptdBV^fn(p2UdHG5LNaK}^Er$Ca9Q`HTq>YLUwu3$f
      zYKHZ29cF#;4KlAy#pb&P=_;Wpr`LER<9p($nU9Je@Rs@(G?!tj!OgiMXqCY%@-lJ^
      zqxHd-2|lNZsoSJCmAlm;RKc-ZAy@Mp%3$CEx##_qQDhjd8EI?7%N2tvYG!(mA$0Dv
      zY#6+t84I}_cbuvh-FM5Qt5ALDLswmQhED&)*#jX_6=Dz?P(x&vDlHvq-Wq~19r4!P
      zO<qwFxwh&qdBz%`HRaVmrO~N-$*b5957&m}**U(X`|tXNH~O(Sju3qbTIt){LO=S%
      z_!4~<XcgKHh%ZSeNk7tFXojOFP@|{l&Ya-m_vnd^meCiL%D5RFdym_{_yBk4|Bw$h
      z2?^tLTc^;6X$)e9Y_k|9ODKS&^)BE`_b4p$rTZkcko*7-E8!RY1OX-bD|#s8$kurz
      z#kV9V*{42of8bd~RuIJ~;Yb)mjBJldC(%AGkl7NI+eR9D^mjaASQ+~p4^I)#oMMvx
      zrZPP<CzzwCx6AmdjKm4PIl;Goi8RW1ks2#wRTyKx;k#*RP#TMsvGen^BoGEA;dv&P
      zq1A4MObkrmIbNXPuUmA_#JUT;QrSAO1|%uN6y>@~Jg%V^FEK)Eg!VCdz$WOynZh>a
      zu!DKLqStzhxOh#dZ|H%1>!W6nC)8aO={M}-iU!+NhHSipL5#?>mWZnsLY;#Ni!w}*
      f?>@C(A~c0O9g;HWf(wtNBIyor=<|8xcjWj#kEW9f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/MethodFinder.class b/libjava/classpath/lib/gnu/java/beans/decoder/MethodFinder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d04024bb812b23b097406001d2605b5511aed78
      GIT binary patch
      literal 3321
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/NullHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/NullHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2861be2877150cb328f3663acd6dc1f289398736
      GIT binary patch
      literal 911
      zcwUWCU279T6g^YZY`exbCT*=X)wR|(AJ8D^gC+!uR1`vdND0=r+1+6?WwIOhqt(CS
      zuh16*7WCa8CEi(My0ipbSeSe7IrrQ<XMX+u{sX`hGz=^-?0A0CJmqJ+X$$U0O;<R9
      zE5c?kQR+4KT_r*TIfmUixV{{Xm6#$K@@?tMxWiDdcIPmTlo$y=o>E%10YmO3RZQH#
      zasi9TGpu%{FM7$y7U40sm0&1!1Ba^t52cQ$$y_{?5zRJFDzik3W*hU6gc<h#b2NrU
      zqC_OLSM8>7#eJ{Yk3;Euty(7a);<+ZOa$}jqa((#4E)Hz8bfuC(qR;dk*z+>;7izG
      zfQe0P8Mw<(ysB5gJyd83@gd=gmR_%3*RQ=daGyNAEWA-lcw8NZUZOY4$XPU8FR+{;
      z54jVIFtVf{Nmp3yvp~8XE9RcXl?u*<dthQ4JKCB@S9Jef#lS=vk2PYCVKa+39)`iW
      zb}Kd7yp+?HUTZ{%evpKYcqO&J#f*Um8Vn1Jo{9bz=%=?ru|cN}#X6I(Hzrv6n$}I|
      z3)R`DgnWjZblUifLIJnZE_tkAm3rh*#BHjTD3_zSoOXRjJdLk3O6%Wn=QGwWP(Hc9
      p_DSi%1P>?J{mH(}v{ur|o?{s=u!VL;uQJoCU>{ZL&rnNw^*@7m<Cg#c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ObjectContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/ObjectContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2efa16a940f215a7abf48f856d79eb6f3d1f1890
      GIT binary patch
      literal 1498
      zcwUW@?N8HC6vm&s7Y21YHUaSksemxXWXPK@BSb>LkSt1s5b@jXdL1QQYuZlWfAWKV
      zfkYDh?jL15_pU1&gW#5R_qON!o^zga`{(b^UjUxtMG7&7iJH?W9rCZdWC-r~B~w&g
      zQ+TEK#-XSN>#h@s;~<3uL-Cr(HNy`)UJW`j7<yJL#|l;%2J;n_Wpk$%V$0Ke42gA0
      z*APcv8cApj@%;3j28MJRx6#AU=Zg@^kf~UXc-N>K!rSGBEf{hYx6183?pbml-b@4s
      zmd`L*`Jb-JB;kmomPD?*OoplU;&%eia%$zP+L3h+rEw3#3`wec%e>Thm@6BPS!SnN
      z_>69H)7<7BuZuu<t-7?0<Er=)Sgzxz@R%Wg-5h*h)D8P23Qs|27`u?!vTaf0_L^5~
      z)P)m7alII0m|rtZDnfUas;>vG&K<qOFWvHW#|?CD+wPGtXElssLe6ej!w4qjYKmdF
      zz3bfr&pnc(QH?W~21x|#^T|%Y10kzm7|&lft=61mZrW{-C(-HBZ^|LxgkwhWi#LmO
      zk5vwJE={k>Je`!92tEkEVH0d1e?>4uzuz!I+9tPbVX7nji7MG~8(vjxTI$?(cseUN
      zm?NP$<R?YHBzkBsSDT2@7tji4=q=2g;?@t^#c+qNcT~m#5?DeXmXV>|P%|3+$SRtK
      z9PScJG6zEDKE=q)Op7^KD0YBzgalsF^)-RZbZ<q$^=4WG&)_~DD0oK6#FUH{$}G^o
      z5|%O-a7~4+68w#Vro-x*P=<%pdkl|gouJ)_LT%7<nUy`q$o@G-_j6CqFn)%ozawmq
      z!n|!WAsf}1MP8Y}FpWYNd`U4#`l7}rY`YD{A{fIAiVF4&vt6)Pv{E({PEq=P3HY%M
      fn2dnQ2)Ka7(7R&jT`d0X62oXSEf$&9>|yyI%>y*)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ObjectHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/ObjectHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4dc2d191fed1bdf8d8694522a8482ffc9bf68554
      GIT binary patch
      literal 3188
      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
      S-lPAk_yXd?=$hNuU;YnZKYmpJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ArrayHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ArrayHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60d8209c67ef2aabee0f7da09ebcbcef23799870
      GIT binary patch
      literal 971
      zcwUWDT~8B16g{`CUArt$0ShW0DordUxS06HM?#23k_Jd1L?36jH@IY(nwhPMKf?$A
      zhdvMzO!xu(D8rp~9}LoDA7<yyopa8;b7uDD&($@6H)wmP5H?TsFg#OVRT#0-Htcge
      z=(7nA+1SKptYbb@#<FSe7^A*@P`aP8*)^=Pf$>lyG;?;U^l5kyopGFbs1w#p>lRvs
      zdiFW7?R7%8SC+gXtj$Cx**0OVQ=YbRLa6P^W&?!r03IItsA4ie15HA;;{cPrMDzae
      zJYsXKqLc|!y+N$f6J-*&E|N9ZHetJT_4}NZgN(;6<RVY_IPyI2Qa)#$708X1QMjGR
      zW=6%?9lVD*!tyB2KfU>w#Zza=Gr5z}-H3DbFUm-Y@Tw$<;2#Z!Cg%5vv$XY}XRn<G
      zA=uMeJWG|eY(2arbjrF;n7+q%JeLPhmGJ=7Y`S+K|3*bd1HNR(Bzh}rm+`x+7YMqS
      znD~`r9?7>Z7|?f2NgTLXSksu1neZ5`LSaiP<eI-R`)TzOPk!DJ_>l{=io$;dTr`gb
      T*{@(R$1h2<$lD^kz%p<Prz8q4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$BooleanHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$BooleanHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..172160ffd540e4946e94ebf1b34355015a96a0fc
      GIT binary patch
      literal 979
      zcwUWDT~E|N6g_u$-LkdF0<!omA4^!4Kr!JBBr4HpvQZKZfyZh021?4*%yju(@L)(Z
      z@dx;$jCX2ZL^kQebne_a=iEDIroVoF{|Vp)x*lqTy%RkO&(wtqBUajmLyof{oA7{*
      zO>E9O<^yFco9>$|O9k>?>0!!d->}Lv<Do%l7yMM|lkih?#&PbUN!Y5aTxt=T`DtRi
      zTZI0gDtSj(yNOQnJ;Fw>I&JNc(AbyF76_98JWTkgV=6!kZ9={008@iR^T*M7#O8~N
      zQYOp{vRI{u$|P=GCL6A8!mG;FZ}(D;G8wy&%RJ#|?1|o{e9k&AkvnVSaIYhq8x`j_
      z@E#rzR>pAt?as$M9ywbc%e_?YN8D?ERYp>T)rus7|2Z3(nBOJN*3N&vZ8{A?@Ih;F
      zEmhXC^{_<fRdt>)cdPeUkY`YraR=0HyVoH9NKHlyzGUx8v@L6w@%!uF5cIEc@2bE|
      z%eN^Q&?06e4qPm(S=^Ud3Zhdgyp#%s<`2vtuV3Tg<qd(ALZDL?{wv_3CwMCRH9RZu
      O&!t%uZ4nl+4EzB!Aq-jo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ByteHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ByteHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..745f552df2a11233d906458a1cbef81d4c8bf210
      GIT binary patch
      literal 967
      zcwUWDU279T6g@YIS+m{RSZi9pZ5uF2sawIfw1O5zA!tD<`Z&9})GgbI%uEXYD}9iH
      zf<K@?s(5F+g0u$qVRrA_Ip^Fv=kA`K{rnB!3AzDlgyDgn#)s-y#R)5I<1wd`F`Iag
      zjm@lMo${VCmQDA?SI4iF9_MU!4J$V>0UCsMLC%#vh~FiLoVox_!d7M3Qj5@ZpEKLt
      zA`C`V$wOgnXF7Aw2%Ej?wEjM!u`7oy5auHUxEi94g$OOQ3H6=_EQ~VEZ>L8In-40<
      znXovTq$=N6CiD9;+3;->b}Co@kCAeZ`P7Gh^MsExuk$kJBi61&4*Rok&lBs6O5Fu~
      zfEB{p49-8Tg;>UIZ^#{)Nabe4x8@gRBt>{skwggJPo^g2SD81obIGyCUV{+5(ON9a
      zm9=aGtPy%uJ(t;Cb{!98`gK`XK<&2w2;{%0$!Z~#?3_eTW$!cLVB-g(!3nN?FEH2T
      z*%S<@k41?i9}DXSmgG&iiB74oBNYnGUs(RMae`alE(mNE0-dt(xqy%E;+~w>aKFGm
      NkY-V|MOei;@CT+p2d)4B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$CharHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$CharHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40b14a41a22ba2dd5908b4852e15e64b8a959d64
      GIT binary patch
      literal 967
      zcwUWD+fLg+5IvKmF)^luTcCF?kqAMpsnoZWN>$XVm7*4@6@mvI*3Jlw%m(c`{Vw`|
      zkXnfk;G?R}8b4IfNPbv*cJ`bzvuEs^KfkU4yhhtYh0r_J<M34dP+`PM+i=M7Xvikq
      zV`CGWv5t998Ox^KKT+nB(!-QZ->}L?#zT$J%*m<J$KluLl;g}pov>40_Ew8f&rTBC
      z-XU}cWyw8Zy-jqIy(7Hrl&5X&6KZ`qY=AHmz{8Y}DrN&T&?Hnl4lp}NG=CYNMQpyS
      zC}qO@U=*u#Uzx=1i)78UP1r46{Xa&^J!WDTa*-z-OuWvAl+Rda1+up_3HLs-nNe|e
      z2k&8pus(tFPisDw@z@#iL?%+Y8S$-tu8gDzn<YsE|J!J6V*Z#oLtFP8d*w6;!Dp?-
      zvQ$~i*26lXQ`U2t-F?@wD$}pZdH`xR-A5q*MMYKvzGSB*dLw(6@w?lX2)b8z_%p}M
      z$+IpP&>`j}4qPm(1uV*&u!L5juqzdE&EHr)+`hu2i#q~Gxj?HZd@JChr+6mk6+F-J
      OFQi%IZ4uV60sI9J#|O3m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ClassHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ClassHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..711db205b9fb3a3d9475a92b98465c94127888f7
      GIT binary patch
      literal 971
      zcwUWDO;6iE6r7i&F>y@^P(r`UM<hZ}Ymj<_B2`hVR*G7rB2<oR=Lw9=2JJfBd+7fu
      z2ZRI?KY$-q^{w%tqD1mx?YD1dW@pFin?IM=05;I}P$6s`=uvp2PE{DO(l#7$JRGnI
      zci7m(W~^i0QO2@q_flo;XQc-zo1S5n4ULByp_#K&r4Pby(Gka)hdN=syzZ?Qp`INk
      zw!Kd1_REqtg|(IFB-<vu>6E9f?h$G|S!{qX8NkDYk1D1DG|(heI}R|_Pc(lW9Y<_-
      zRg^Meraz2Tx~ELy=0&sSY!kLi?|xsBa*)Z`m0a`*KgOQtW6H;@vjVxfIu7?CvYAnF
      zb_eg_31N8*=U;C==JCu$@?5@2X*ZHw{X`jQ5mri)2>$os$i)09agnzE%j~VwAOv5u
      zmdu<-wjP!UowBJDX79-z3vvOfG9G}MO?MCE->ArFz?bersou%lb^PwyIfCv59-ZZw
      zX?fNK1Nw;>sRLIFYZi~?O_)QgP<Ssp<eFEQ-(S1H)8BUle&qtKV&hu@SG~YXS+C$#
      Pj(;s?k=r6HVj1`gQC11+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$Creator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$Creator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1321619fda58b8418d906d1eed28d33af7509b8
      GIT binary patch
      literal 348
      zcwUW<u}VWh5Jm4q&BmC3m0w^H8&_*935tSXz{YmozDr10_rdJOkF)Rt{3vl>NTmdv
      zVg_c;T<-n){`drNjj6*xaJ5Vuzt(s44K-!oGITA?FKBs{3sc}iEz{2DMlGE=912di
      zA5qiNKR0WJBAAB$&Ie6xqzPVUPkW^ABHx(Gj=Z_p$K5u$n1=F;7mQ!JjRoGXA_ZrE
      zoL=@?g2`h_w0YE=nH^39v;SrlxLw*IAUHr@Qga`nE---G_7RTj99N=x!elu50iX?M
      ABme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$DoubleHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$DoubleHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e07c444da618297b3f2d8aa34c1f08fe61f02558
      GIT binary patch
      literal 975
      zcwUWDT~E|N6g_u$*}ApJins{)g>K@qM2m@UfP|n#lMNqH2s}=^H&{}pW~S@!(g#DL
      zi9f&}Ww=x8gTN+znD)+{bI!f@bo%?xk6!>@qU)hXSU=ID@Kk+KVZ=(?aL92sWE1YO
      zv5C!D$GoSEWz&6=jiQv_DLqWtY#CO0W;`?q?Sh^veG=|QryS=VnuL|g!lf3WnSV-b
      zcZJX&R3)zpYc0`9{+jT-SDm(WNN8-yVGD%G03L4msADQX3vEKZ=KxcKMDxz*EMoIf
      z$?SybK^Cj@P?^N-%Vfi~P1vYh{aPz!lF8VG|MG;Ru>-wL`HXd5B3GBj;Wi_i8x`l5
      z@E-0Fx??#1HRod%^Ujn7`6`v$5$~Fxm5~(TSw#}T|B#JL%-e}GwR6R_7fyo^yw_Sx
      zOO>^3Jv<@ws`^ftxz2e!mOD_FH34e3-BpnPqb92bU$QqPdL?_8@%zi)5%kY->sx`j
      zEzhQ4K>L`MIB>DB?qEjVguCdJ3hPp#(EN$n<K=VAeZ3@bPzZF&!hZ!^bRQ4oyoQGb
      O{*g3`qAkKAo&p!Y`U@fe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$FloatHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$FloatHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7498fb0316a5b3d56cacbb8fca4d28bd8b3da3e0
      GIT binary patch
      literal 971
      zcwUWDT}#|R6g_u$yK&Q~>qpmq+7B08S2Py-rWJ}*Dy&v$k@j(ty=Wv(%1pMuOCLmN
      zp+BHMO1zV%P^=4in9Q9!=bU@z%;fj=k6!>@qwAqY*gDpu@Kk+QVZ=(?aL92sWD_2;
      zv5C!D$9$-aWz*eFGnIc(dYH1=F|6{;cxVvX1v^#xIQ$r$a-4f;5;iL9mRf{nev;Vk
      z2BANwO5POKR-%)9o3PfaPFp!5G<IaO1;S(i4--D>m=4fFn^5mL!1N%|d@wqT*nCz|
      z%7ocL7OV6~nZ&KjWW%*h*sfgtE+^$6ld%iA%oDzhJ<t1;&shIe*jyQhdl%W<s5rlc
      z_wbOgG=}qUZ$1|A*je&K?xb=z;#~8aGLj-JS0oYqPua-Cyqh>nJO6pM?lcI&p4Q@7
      zs;p(};T54*)pf$$9lqm*Jb=24d!TmPy#x6-YBE~zC3|0@H?npazrT8kpnrv_ivlwv
      z-=<(ddzh6taIvuFFfTLV0Xn6^Td7cJ{=~x9)hj$Yza_9=2z1KAe*|3g6whS8hQ$K^
      NT$)AE7U3n9fEz1j33>nk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$IntHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$IntHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4bf147bd89cfd8df526f278891cf0ed59427e217
      GIT binary patch
      literal 963
      zcwUWDT}#|R6g_u$yK!TztF~+Hr>zUFD>WAS()s~KDhf+0RHS{JWG@<tvoe$Qcj-eB
      z6#4`Dqe}0jp@Pdo9wxbS=bUrzoSXdqbMp(pJG4Di2p^C2Fg#TkDvVfZ8}>OK^x1?5
      zY;0mP)-fL_W7)L#b+)H;KV`FHSY-p_p+;!t+*Ik~@N0C+aps{;STC(wXc6k!Nn+dU
      zgl?}ac|%y6iB7U@!rM-H+R723wj+lP5T*innD9}>bbtn$glfkDrhAFzFT=Bl&7q1?
      zCd~E*u}Y7WN!-3j)?C|!&C=CJeUxiV#V+I`PxwCeHlI^I<Npd9E8}pVBAXc%XZP?P
      zo)BJ-;oNoRV;)bP9nWMQrF#+A>gUQxim+UgMDV{2h9>6S#M#*z@oUX#5Q2TJ#j#Xb
      z%htmiLZ__bgqab~u_&Xj%6b55Hr*E>|3pPr1HNP@C3-J=m+`x+KM{1V@$f3g%*eAY
      z7|;jIN*uUYSaWzJZ^C1=3WY7HkZayz{>SPy7B24zY~=#2qVPWf7d^)dIj`Vlj(;W1
      LB5zAZhb7=I4jBd}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$JavaHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$JavaHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3bd67f5c40bfe6cf8125f102dcad2df61e926d00
      GIT binary patch
      literal 934
      zcwUWCT}vB56g}6(tch!lsixN2){lTOMOUG3Q9-0)C0L<F`Z~M0=!VUt%x?O-6coV+
      ze?Wg!@y>Rkq6U^>X71cQ=iIOT^Y`u^z&2JLj1k)Bdg%4kZ{_){bnJCG7<Acqr)=Ud
      zPFM$gs!YtLaV(%CrMnTE1H&pA7zaf{H6=$%pL^f@9tVko5@9R1Y^FshB^P1b*dnw#
      zdC6^I?Swi^_6Qrz{IvBmLh(R8mO+?u;b5YI0;XM*Q6&_b7BJljHJ=RoKARuPkC;&F
      z3<4FMDHGav<}BK@3A?$YztBjjV=AyFXMV!Zk>z}exX(JtknQzRxP3oPj0%z`_%i0P
      z;NUHxnKxq>@32Ui?EO!i&=?i>QF(Sgzm$>agteUY5GvmXLlf{}Xxm$Vmd&QsAh=((
      zmIg*Dj#>I&d)`$n$#e^{$3fMq9kTrQW3tPrh<8$~&+@jOO6$`N+}15#U8R^AIZJ{8
      zg{X<`T3cAJF)KG=4)si7M{cVy(Yl6vjW?H1`2Cb$|A)!=)_RW*Df45BU&3;#PqOB*
      G0z3ebYy8px
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$LongHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$LongHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0129d63545b3655f44fd8333bd6a9a44bb99f84a
      GIT binary patch
      literal 967
      zcwUWD+iuf95IvKGm>8F)rA@ihOC-`%#YN&R6sf9;K#HIeRYf1y&M0-|uF<a3?`j{a
      zN>t(l_$b7z@dFA(^26G*v*(<dJ!Aj;_5BBc*XVkv5e8#D3D4Ap3L{q9h9i!%5u5Ok
      zjZJLMI_5)VESv5y)8h|Hk5V@KhE<*!4-G=QAg4-?!_Uzf$GL|lVW+ZesYPh!r-|+E
      z5c<Qa<bkl>COXOA5w?5PX`9D{#=ac3K$r{Q;jWK5<^#0QCe(WlFh5K*f0~>}Y>rfv
      zGGTF;#VS2kCUN^R*>G(Wb}Lu^kCAeZx!8qV<_TYCUgsd?bJlr@9Bj_Q?L{^>D$b|y
      z9v%|bXK?;%&BqEJJ42qxL@GBUzBRuoBPqhmiX?*nC7YO--zUz{&OeU5avFr-qt;?s
      zs;p(}VV%&c>UlA{Y1gqT)33|A18TS3M<D-2O;!uOWbaAzM)oe__qVPQ^lxzgs=zGB
      zvnd$R9u_4ITr8{ySduqk8J$vLS1J^mw^%vZy1}E%DS?ARpi>t9BjBQ^cqZpHJTLGs
      Nq*)Yg5!SE){05b`2hIQh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$NullHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$NullHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b1ed7ad4fbb180fd833c65d3423d07380a548839
      GIT binary patch
      literal 967
      zcwUWD(N5Gr6g_u$-MY2Fin53TDsJMkL<@;;D<p(qB-sE7gy`e6dxIrq*35MM2Os<w
      zeIO)|@Bw@j@lNf70XFHww0G{DbMBpU+v}T)D*$U~d#Dh4$9fc=s2?hfSZNy$I35nz
      zg!^o4Vl&n;?<-^3w0B2o`dR5g%4W;3%7(^6jnK@=snW;cUUb57=AlklEiGGU5$f5u
      z#I{!n-F{hePgoxlon#w?cb)RI<s(9EOAZ?#Oa$=o&_@+h0UBr$svQTI>L;3aN2d{+
      zLlvb=nC=f_l^!XRxP6hVxwZ-GrK{g#q}*d7b|Dve!k4kv*-rVCbygsI%j0mHk<E;X
      zvs-u%&j?FnIRCZgV;0YyAunVirJE7o>fe=-6ya@262U(hj!ev-5@%@Zj$`kg1|itd
      zS}aSIwQM~s5jtf(m)YHQ9j|2iRap-}&8GVZ<iDuMYQUH5BZ)r9-evsm${B+0IVS()
      zn8)(03kLKP(-H?R7S<Cyl{aAqtwLd4D&(4%nEkqPj=A5r1b*cLt)lQh0T<0<LCz~!
      Q%<(U!S>$aIUgHh$7a{%#iU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ObjectHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ObjectHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4574efc157fa133c1d679fefd77e089106d064d8
      GIT binary patch
      literal 975
      zcwUWDT~8B16g{`CUAit(J}lxFf=wtTu$b@$Xb910(kKap;N$G}2A3>TnA!5X@WGI1
      z;t%jg5$-JOgGiHon4LR!&N=tanb|+rKYs&wgSLkXVf$DQ!xMF(!ibf&VV~ncpG~;O
      z#wIpn9rK<tmQDLhbi#4=QR#llX4kOF2F62;(9G$n(#PQ~#zUR3URt=&BGj{QiEXbF
      zy1laGO<`>%I?3J=Ry*Zs%ZG&8u530y7!TlK%tsXy0UBr$svQTI=p~vz4^JaD2P#UL
      zFx4BxDm_#taqA*kb8Qpem9BoTm2#5t*o9o=2}dIj^giWN)_)Z?mq+1tBAXc%XLs-(
      zo)Fq2IR7-~V-`=HDbM6qO1C54)z6fX6k(|(iQw-Kh9>3@i8HnJpKEJQgAjbuT1-oo
      zwQM~s5;|plC(PXEJYLBgsLFT%YBt?dkpH71qXA#C4<*`=wafV3l^+PYS9tV2$4tt%
      zE*Q``rX&trEUanF$V_;QR-v#h6>`mAnEkqPg}KW+0>fOORTRDzaM5$Tko^i?=J<JO
      M7I|BQ1-u4s0JJ6xQUCw|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ShortHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$ShortHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed04aa5ba4ec547b85b564fee250bb2bb9eee669
      GIT binary patch
      literal 971
      zcwUWDT}#|R6g_u$yXmH}Znducw(3IH6^%ms<OdXKX<=yvMeO4wd(lXol$or*t3HU(
      zLVrMiROy`<p{NUan9Q9!=bU@z%;eACpT7aDqwAqY*gVps@I;-dFk+=`IOI4RvI%$D
      z*u>_nW8PK9vgz&}XD0uo^e|<!V_4;x@z5Z&3wEmXQTR1F;W+ouB&=1|Ewu>E{5Y}Q
      zH9~(-mAoOW%|s{pHesb#owjs9Xza*l3xtUP9`5_7V=_PsZ9={00F#46^Ow<S#AaVb
      zDHEm!S*+3nWfHe8lMUB4VY_nmyPTAROvEnaGEX=hd!7#|pR&GI*jO5edmq`{s5rlY
      z_wa<UIEM3oZ$4)6%vthW?xb=z;#~8)GLj;^sYoLDd)dgu{4sHsc5ZpL>NE(!XRXDv
      zR9VZ`!vdjK)pf%39lqnWJb=24d!TmPy#x6-YBE~zCHp|4x3YE_zrTEepnr*n=LP1G
      ze4By+tz$~!z{SFv#$%ZYGw75GTT-FW{Ds+X%a?fi<A%VyLZDL?z7lZJ3%r#58eSFn
      OIcXL}TZDNm0{;N={t2=G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$StringHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$StringHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f5b8049292725acb40c55497aa3ef6245b46c23
      GIT binary patch
      literal 975
      zcwUWDT~8B16g{`CUArt&5ej}QG_jQ6LgE{OF+`(Dqa+xjkF(pGx@4J}nJK>u9t;U4
      z{s4ZI@y@z0AWimRcJACc=iEDIW-tF-{06XvZh#tLXQU_bkvdUv!b;nC$mw{<Cf;Xb
      zGwWEVyswO9(>-t|)1wbc4|6tqhLsze01ZOBpyx`D;?Kzur!GK~uvuBS)FL$9_sn)T
      z3H?D;^0u&EXF7AcgpFQx+S(zZu_v1?5N0C;xE-R7xd<(^3H6=_%ndTlpC-o%n=dNK
      znJ_;Xrz$^GCiCku+3;->-c+uBqm^=!+0=(z<_TY?9_U@p$E;n6++Lf8dz)BiRO+tb
      z11uA|Q#e<e3$cU;-js)OE0x<3@0vf9krd%YMG_%A7*9;f?=x>|=Ren8dJRJKQEM?R
      zSJtu(utMln^_{SAlk<2cZ=f#Y7O36!PeJ~Vnv51g$<9dhO4dFT_Sb(R>YwAzS%JAL
      z-=<(d3iA?2J{HzJEXYh)M5k2PkqU+8FD!jqKga#kYXV#dbjrg21bp-ek7d7xCk6hg
      NG>f7w!gH(we*v`N3$g$J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$VoidHandlerCreator.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser$VoidHandlerCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2368742b3dff8b20dd050b1bad5bd1f913a82b4b
      GIT binary patch
      literal 967
      zcwUWD!EVz)5Pg$`m>9Q73#5fYfi_apRNx}@7K(%_5S1dR1d8Cec1Eo$ca3%(Bo6!&
      z98e`H^#k~*idokO)Dp>uwP$DFdo%mS{&VsB9Kdt*Jk$uoLp=?T)mIfpth5a$9A^_Y
      z;Q<?)*qn9D2g+DBy>XUI-YPvw+3Xosd1gE`2%UnQDt#EfkB&LcJv0g1m1RpULNh-~
      zY;T(|7*!<?h4muQN&b@Xv|pXJIVLpr<gf+8TmTO@ebmto&_ah$?>j(ylxTi8J&D+S
      zR8h)=#ZeZkbgWF`_GPl++9vE)uKph*<sNgf3%Se_KFz$&>y%Ge=OuEuIScnHvbj-l
      zeg*GgnXop4^G|C&mT=!0vLX|y+>H3v{GyDc2pbhi1ph-eH8H<QoT1%ojy-c4gkWE5
      zu`E^Avh}b==vVbzW_R6nJeKL#W!(UEI_@Ko|Dq<V1z)naB-)X^%lLz>UkC=LnEzQ|
      z7UbC!4CoscB@SFHtlPLFZ^B)4ONCvjP-vcE>GRep?)|tT@VyY|mW3|`T=W1B<-CT~
      P0{=*wMbQ@F3D$wX%;N|~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser.class b/libjava/classpath/lib/gnu/java/beans/decoder/PersistenceParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6b6cc0df92a914fada34ef020d7dc180fd83427
      GIT binary patch
      literal 8449
      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
      Uq$iU0lXj7=BJCzMNKXR(2k4kJ9RL6T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/PropertyContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/PropertyContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28a58910a0df936fe5463e612c883d6d54c7f94c
      GIT binary patch
      literal 3270
      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
      NhG95`<&jq3{|BZ<QW^jN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/ShortHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/ShortHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..012ce512026fa7c2c1d09f4c15ef5dc127bd54e2
      GIT binary patch
      literal 723
      zcwUWB%Sr<=6g|;tN5}fs`nH1a792zuO2v&-ToheY+^5r6BhyStr{ZVnN^#)__)+3b
      zTI+xm4J6#hx#!$_^YQui4qzWS7Xu9Ib=CIo`2+W>f~%Ha6G2oH+OOP2I=<kl77Fdc
      zVc6&gl#OO6x=4ofiBvK^WytT8`&5)d(GcpJytsSA;G9v$!ytw;NFmKIUY1H+wi{KU
      zuX!~T3{&MO;NcC|()it=6W_@e!)8CJ<P=3}uE{kiGi?8}H-;3Iv`A@dr)=RNS9QM<
      zYpLqR-9+fBdM|>Q3cS)|Aeym^RLjK-L+%IDnddyx4IcMU9<rEsF-J2e1Wex<EMSqr
      zec)kRT;0-`fAnCh%$UjwnVtQ@Q-hVLtpjl`%>pNr8`?8ytbx%-m@`0^euI3MtW)w$
      zB%Lq3VCdQAJ$gMGJs{*EM##!`P{?4^vZOJFapG_=fl10uQOqHK+Oi&#WpxU#n0@Mz
      W8d2aVL73_hrm%!%$}_B3{OT7ZjInC~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/SimpleHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/SimpleHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c549f8af82798fbb8ec09901de5c4682b2e210a2
      GIT binary patch
      literal 2072
      zcwUWFTUQ%Z6#h;!WFQRE#u6^QrHJH4iD;!tD3~IYND8e<vB6tUCdV*clS$UhM5)jI
      z5uf^M*HW^Owe;Ekl>P{HpGio{CA1GSIkV6H&i?kd_da>~@1K7Gm;+bgW0<N~jnq^A
      zBTtnCx13a2=(V!2Q+cCWH^n-)%BHYYC=54ycxFnDYjfRQHAPieZX3d&>NU$1doIIt
      zt_O6h^i=5XO3N?J5Lh%U!(C!X#Ck!FM@h%G8I%>;3Br#-4JtH-<lCZmBz!n$SYoqL
      zEeX58OQv85<!U-Nx4CV|@3v8KcMa#9T#gAQbE$KiLNP?&k_?09xZFO{k>PPHSF<ar
      zy{egV_+BdGy0%ejxWY;2UOR1dPZxF9s98C~afKx{=@qambg+YRRE#pjdezo(M73l-
      z>$neM9G6v0Foe(Mrr`>%G7MCNn-f;W-DU8{;#rBit|5XO4E?nCaFbU_)R9;=-b%*g
      zRwb3EQ>;o_#d{2sU31nnMTMIgyV8)#bjYZ9pJDVQ{BFZAiF-ey3}cThOX#|A9Bx00
      z@FSLyXb@9~%XUdf5~nG|x24C7hMSnBTJm~bSY?`lvs_P^+6>bD_<)KUjg$>X=XP0?
      zXXT+EYWN7ZNCvmoa%Z>{J41yaCJ`URZG5WY6NW42)m*~@sI0@{Xrr)e*M71{fY%9k
      zV3eMUJH3bh*jxs&h-E3&XI?3{2f%PwLmvXvM;%FNG{$<hE5k)`k}<=z^ShWP&M|(b
      z9${H}42GdjtXA)YPD@6PvZ>BYnaENJ+rt&493E(Rh%XuXXiy!3O~0YGEm6`^j)I0q
      zpsQoR5pK(TqKn$TvWvoaEX6CHsD)P`d9!%6_?qE*cdvCBt<~%*?>0N}*LS(RXoXE;
      z`>h{{^NrjaP%`a&tzqk8&G4?aW7pKIL@N;z!%u$+3_e*^S}F9X=qJknt(IxmCoPGj
      zzlq=rTKX_V@1SR1B*-$}p;fr$hGAR)ywyd7=#WczmmVKRyrb#r@Q!^&!BqM!Bo8pg
      zu;iatp5u0ML^;4U9~Sx!F<CssR53K&L~OioAIVUPUi+A9;^T$D%y{4c^FI8duo30z
      zumAm%IK*PHiKU%Ckom2{ao&5cQ=}}dzQ8DQxQzQWhnt9F3$wJIBik)(knaO5k>5S!
      zy?oYN{5ts*u!7Htzg(?ijUuRozDIt3(&7#w*D1eIL@CY&Wj9X}=Ex&Jm`x<w3Iymk
      z+}6M(q?CRl@jEgJ%57^O`R5qAe~55#ririqe&NN_h{H}hqmWmgZ^-f;@p?iRYsq69
      iX`R$zJ3&4hguXzLz9nCuqR56POP9qCeSPm~_2hrgH4$b2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/StaticMethodContext.class b/libjava/classpath/lib/gnu/java/beans/decoder/StaticMethodContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1ee4aed140216a0160539f4db3007f95a47030f
      GIT binary patch
      literal 2088
      zcwUWFZC4vb6n=)JT@tq<<)xH@&{iP{(10xpwWtt_O%3TwXew>}u-S}Z+s$sz?xZir
      zKc(jgc<ed)-M`>}>FG1OF`y)een{rd+&j;`&%Jl<{{8lkKLIS^M+1EVxrW!uKeb+1
      z`I@x6FkhFpUzb6?qAcauTT<=%^@8sy`AQi`3M}`qU$2EKuxwQbq@}EyEAP~vN^aw;
      z0x2tKw3^aWp}<Hf0%$46&94W6^}6JQ>PvxB&s-~{elXU%me<G^^bvLGW)w=<YD$5#
      zM+_<|aJ&XBPTz1mM|~x*k~ywEhIrg0TNOwaNG6R0226Z_j|38#Y}LS7fuSxTr!k0u
      z6iCR#DV$DII%i@G=Sd}$s#vF{ODx%{zH`BZfqpGbnn)onFi>(lS#C9JGT7D`)I5FL
      za;sM0=zaSzsdgPEX}<LSm1B1L97fac$(MyV$7d*R9ZBh^Rj=Q*0?JATaqWuD=kEU)
      z#0oOd)H5cs$T3H}+QaUVfbjoYueM6Sv~{br`$XVcrWc`qNo2dBq;I~m<#XluUT9!R
      zAk(Wq!%#MB?(2@ZW^mQSH7pAl%8!bwS!5p{caz2!ST(RBaJdJ3oXSnd<Hp2wFtSub
      zs`yyoe&#(Iu#4lPlmq#b%d@sC#<Yg74Y1$GdfAxx2J3tnj`zZU#u~47DbWc|I|*1s
      zK|hIa>Fy}X_HN+6)O{KC#3pVT_)cK%ctl0UU|Txz+nfYab?RWEh}&#Uo)xTC$S}`k
      zvRyqGC<#m*YRZ14W$(sRJ8%Zd0@H^^Mc0)L%U!o^8HODzcAwv3qj$#B^hwRfcgMK-
      zaE7{Mj5%($D?Q%3VubKQ{njp)P9Q<kgrjJ=&;_k$CZk&xZ(S;##9u$0ir)%sx#{Sc
      zGS+2iT+twy=737@dyzn&o^h1=^xTS8POV4-Hik*NGn9VjKFM_|cYqIbZ!oxXfT2AM
      z=jQe?nw#Ilcy3`26Te0PAM<}a0$t{%B@FPL4Pyo8u}a-_Oi`1I;TXt8Ad)UYPg*Tq
      zW*~i$^a=FT7Wfo1?LaoD(Ykc*Hw@GH?88H!=}5Cq0vnN!(b%%%BaJ!C6DNrUT%j({
      zvn2P65%NE6ifbBqAD?Y;9p`Ui{&##{UJ	xbaK*4HkD64zTf8EbZgw;YLdY>Bj|3
      z;QMHu;p5TkRcy6`oMCvtZJw4ff;+Ulhe=d;{s6Q1ftHUry`Dq_Zm}i|s6$|l_IDX@
      pKNEWo_lY<{iwd^sb&|LbP^C1>sy!r9f;cJc5KpJ@ag?Sf?*Q&V8{Gf^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/StringHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/StringHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..643ed3f395d2b7e08ace0c90e8e30bf7e84f4bc3
      GIT binary patch
      literal 586
      zcwUWA%SyvQ6g?BuL}RsDwQCnr`v9XLZX(@?;v(px()}bE+9~O@Oj5r~SAq*az>gB|
      z#86tK;=s(@$2sRdKEK{S09>Hq!eTfXs<}Vr&)km$SDBxPc$x_9_j4`P@SdwA721XU
      z2U1REsVI>Q&b3rB?=f^*;TpzmDkehZB_(JN80;I$c-X*J6%{xPwNNVYFrP$1Kk+CP
      z4E1mt^K`(qG=3Sh^O4LLn(Iofj1f?GGp?yL!|6YpW2g`%qf*UQSin=RhNW)MUJ5-%
      zV-e>>@Zu5IJkEvAOxM3igy>J_Iu>`bm}{lSGXuvl812Fwi!LpMe3z^q`6l9Yx^LKg
      zE%F|{UJ>;Pd5&$e8b2shu~Vox*hP&rZ0upb)ViYIpseo8LdVnrE|)Z{g@%PX4k*uX
      HSa?U@unUXz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/decoder/VoidHandler.class b/libjava/classpath/lib/gnu/java/beans/decoder/VoidHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82b5e9885b25eef1dc499e1e5e3f76224fbf4092
      GIT binary patch
      literal 2834
      zcwUWF-E$LF6#w0@$)+LD5}^|1BYZY(C;<V*wt%Iy5KIHw8foRj&E_Uu*zAVg8wh>@
      z!;D`uzWC;YKI)85^+76h)EB2Z&N$Baz=MB`<GGuVhPF%TLwfGL=lsrZf9KqD|NQUa
      zF8~hWu8IJ|&azcYU)64C=>pd*H(lhqUF1$WZyUuknpHHpqe5Zm_wgGpxWdtNF>3M(
      zw?s39Av9!IhB(g9m(2QvJ{dCDn`cl)=p=$Q=!hbS2t(>wqo-wfXV$QIu2v~<XHqMe
      zoFSIAb<NCcjv?30O-0NYF2im==(cYkq%Wyz4kcpfc}6M>QCDcrV@Vh;B(t_tPS-1D
      z+STgmVIdr&P!rr8%(kJ8)^%PLhHYgHS8z)z;+Js5wgj&W$`oluxhgg>B>l?dy1Y^_
      zZ?)VbV0b=?&4@E}wbRX1swTsLFXdH9t;LJjs$vVnwx@eWu?^d$SX@j9O*F+)l3pnz
      zS}P^PW<N3v8~9S$DDTr{Wmuz&IzwW$FA1ZEAz&2Oq8BL@eGJ_z^N3;}`WeDyF7ldL
      zqZZqnY;Z6&tDK%7KdVg2E!zqs%@EX0&2_^#NWE6!V#Y3pafr~Wj$P%BxE00`ax$zU
      zugj{v62(!xN>wu~s+%PYl5RvIFzi_+tLH{Zr34ng8No4}P(hcpYiU>%uVI+@@ar|r
      zB;-x)$ma@Ixh@8Kr&WwF^!lqvqoJk?+i40K!AXqDi#@ioK+Bl+=2e`b5#p0Uc8#Hr
      zdy=(MoW@z1;&q0j&yr#V!SWGo#JB{>QR}sXOwKs=O*un6X6G4p`7q1KVznr}iAfa`
      z)T@g~89FL+CyKX_m!;MmmuF=AZ(6B@nF!9|f@CyBJ-C8LM)G-wMw$<wB^piRk_5X<
      zGwtabwMlXe??$1aKuuwCt1M=yhmyS+6-6qhPula%4sIpZaY;p)UY#~2Op}*2bJ!`@
      z<N#=0*Dws(^+ku5!nnq;W883EB9mAg42hEMB!+I#v_75?S~-jg^-6PHwCUWkMZ&FB
      ztF|K&JswogV)*_DO0cC4RUg?&Q<^4;B`uS)#h6{QiY=xpsBYUAy&4bDnC(=w#m|vX
      z(XtE-9p2r~X%(6ok;dh3ETWHZe`6WE*0|vtmNhU<Ox-Gx%g&`o%ZPf{Ub^ncuEJKn
      zEE9Ik(fODmU(BwyCvm@w#SWT8YasvRZxA6`t7M&^b%6e>eJN!Q;UCBhU@iSdyzN8e
      zco<Q#x*Kj-hxHzeicWM9h=L7>(b;pfr_g$%2YZEf6#C!UmzqO&u3ve87Xs*?ZNabi
      zcnlK!5J4XIQuH-KS}8h_@OVpWCw5U}2p!msJsxLz3YVs3|B^?Tb{?f-dmkVfz<4UQ
      z-!pQl*a6QNP*Sm%8dfkBJKV5B{R=qO*MA=`52$fv0qf#QY~VhIzQX!>oSfPhSLbkQ
      zb{?mt87HAKvjgfpHcrWd?62|A0=CZM9G!-K!W(mV`^jTMB%EnFrqGMC@!$fw<H7s5
      z@{QcrX+JmzJ}V>UQJPA{W;|NIBOJT>9fC1)4weL>?>>x46mXs9kmmh&aR+zlx1p*<
      zZ#i&^R2rqCjA09n*S$D{12{{OInsNAtUN_eQ}jg?ahYOD6mJrWg?p&t3)Ju>Zs2RY
      zhwlmfM|_M2_yj-WQ~ZI?@E1PE-?aXR_GQ&d)GDNSt7?y$RqG(n9>NL`livuhM(nrX
      vA#ReT5UW|#$qEv;Z*hdI5V7mQEy_wWiZI{D2V~tN>qC4*7Q=0?d+z)XDM$he
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/ColorEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/ColorEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d010e752bb8a8c828d25d26cfaa32f85580ef62
      GIT binary patch
      literal 2251
      zcwU87U3U{z6y3K;o9S>{!T?2Vfj|-3R2r##x1go8G*AnYSV;kOl3b_LPG-VnLR&@f
      z162I}R=@{+;>oojV#<;w`s}ms`b(_mPC{EsS!S)7o7wl=efHV++?hZB{q-Jz?f5=~
      z8iq}VU5t(E=k!=w=yo9{vZm*_g;<|sIc~rI5JHe4vLNQT>*R&&O;@H9#eCjzJ%;*%
      zm-Uww7*?Db@)zinUWKZgq2d1gu$~hXv$7gv>9!F|c&=$16jj$_+NO7aA<))7!Vv6p
      zvO+}w4IK4QLs-tx_#kyX8nJ>y!%BwQw54Yz7{ZIw%b?X9O)@B$wu(Xmk8!N^fy}gS
      zOQ4yfMFL7zcP9?J`m_Ysb8PUVj4H5^W0RlEaE0*KZRU7FBK4MOjCuDLZsll`Xeg%}
      z!uE8DML9YoR_C}>wy$CvN2kx9H|+@tJjH2y2ne_$E1#d{*x~1!95X$C$u5rFKFhSQ
      zEN8MF40}0hQ5OPP7+!3v0!=}ag0%{sC6ThYh%83I1_hfG9AZ#?<yEvzL5G4)1=|(u
      zP_SF_4{?N`Ff1Q3Z82QTrG=Z+)0SY+hMbIUjp(i^pQ~Wd8#8H-HxK=Pe|5{&5ngX0
      zDW<56R<}Le7P1r6{;7<}d!}O-LU@5XcRng^S;Ek*Ue_q*$mqF175nfa$4R8fDofag
      zH|F<MT)`=ZwMo|$*@)*vD0@WY^4@ghoKCH=QAHAGWWSw|3@>xM0-bCXXN$U3h#R)!
      ziaxy{9-(zqCA%^lSx|&R+#`~7QSh<!xX5@^n9N{sjKL(0nK9k%B@cpa@%BDBGr?gY
      zCk-m53qHT(iMKzTR)vGJA>`@oEilIRgdtoG7ql5lUUv(EFovcjgvZ<CD)m-T7Jjax
      zfou<uC326KII4^!vp9(}=67#Z+mhNCE^u7Ln<T=RGvvY8sv}au+Z^xU68TYa{1MiT
      zhVU-Kn#I`;7ELQFTm|owx>gmJaYk}}$nlZi2bBNB;e!Fp&dy5DKIQmKI=swt2E|l`
      zLN5A(<4b%+@p?Wl>@35!rS|$EsG7Z7QhdYlEzVQPo|CBVU5K(Lb;B>IeaZKqnsAD4
      zMhuwp6onTYlTI0ojbvqj-rqHJ(Rqjb(Yd61kY?x&N%v&{Yob|3=<VnXcr@Jb8yZuA
      z62gg8u!L2KRBZ`s5~;cp9#5n~C9F%NloBF|RG6Sv8VK7$1A*-{)R*ui4QdH78kUvN
      zMFTHkXW|#^@!9vK0$LA|Yx{{?J3!RhGsLX*60vqr@@jpOR_m9n+JGe04ogmLP*Q4f
      z$*3J6!lSqR`ktfv0W7Ec4yt7*)wdJtv5Q`fyD@-0IEB4P(-FzgHBQ$wx^V?PxQ_k!
      ziB|qh>xOAHulRstI8GzO^Eg55iK=5s=@$N?4AND*ql}SjXt;}HN*kTQ>E8qUZ(x1&
      zHjcJ*(cDW{(HNztJuO{jq;FlSVJ&j*-jB0?cLd6KHQf3Gnxl8g>yBU<<Kgff*fa1b
      z_6Al}@CDd>ot?gle%i?atiT|Brs8PD5p2Uznj56*hH;20I8Ewvq+Qk(sVJ`2CI3xg
      ziYi)(t>ndP#LVzI&R6<@dOzUz%wVAB2G+?En!BQ9yivwmSE0%xn!9dZVyszCQ9b|M
      z#pRUt-VCnDs6WtH#s}KR7w+JbGCnWk>zi}hWv7AOv9(BHHAd+JdXheSXMBxKm7G<L
      mHQ3@SqjQPxaJ8x|=08(6OA+(5bv~G0u!XgATX@Zny8a*8w*LzN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/FontEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/FontEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..976d05d7e7d96223e7444bdb9c7ac1e2224a1597
      GIT binary patch
      literal 1381
      zcwU85+foxj5IsXec8QBY<l+UDfMN)Qh$4zXCBa045s*++;oBw|;!?|QYO?|KAAID2
      zztERJX_e)(|KV>~_DmunA>uwv_iUf(KBs%;=kKrI0Zb#Spo1Y;v?|eUeOHg>xNeoB
      zykNMtQ;w!=%S}pOftO+U6lB%0OWbik)WX?Hsbo7YgKyrj4EGs>Cp5mn;9ax}+z$`B
      zG<3qp5Xcx7U#{%rxU;V3OwQ1ovGcmQp*x1y*MEB5_ePmvH1l6#F@~-(cjM)CzEAc0
      zLm3G-b*mW7x{hHLV}gi3xu54H*RZX!f?kG^1}bfuyr`RTr&!tHl=d&sk3I}2=x6Ab
      zV13V(bu|p)3Mnn{Jc%Qc?Mh~vj>P<6xTfJch8R?$yP=yE-okbzx6SjeWb4`0P0^V%
      zc}Z-sA+|3xeikB1jc6FfZ7NkfDb<Xv*Af!PG~7jq^cdxYZ5HI@-ibh1!-NQ^Mmg>3
      zrjb_=VHj*Jn5Y<Lfji<vRKq<CGbmJcS>K_--^YxC2Mj%}r!+joEFpIVyOk}5v39L!
      zr*0CD#a#-hc*3AXa>Ut?^dcfQui+`^`uX%yiCd&5^6%-K6(Jk4pdpS#O-0uD$Yn>;
      zBKZrEJjpN=N}rcv5-&Bp5{*z@yB1WjM4Tkqh>8qFB6ZR#mKhi|mTigG(R^*_-e&EJ
      zljkWzyox~M+D{1}f;4Ln#OEQ89vH0(?V@BE+0O70)Gy?8z)!1B{+z`HTD2O0Y&Thk
      ziwF>^hkP&XF3B`;`qM$SD?D+G%T-)$r1Hza9B2wM-9QakPba(^xG7oO!f>6{FJdWB
      z2jMD$KhT$%sN&8cQe?&t5&VY9O>(D>F@1zby>nH>X#2d1#VS&tTcYXaX!{he&rR{B
      vIeH>(ghT-gw8p6?36i#m86>fWm)NAa?qTVa<b%3o6`!zzRVn$c%(eChKRrSq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/NativeBooleanEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/NativeBooleanEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e59fdceca41b11a8aad21a4afa474792f6dd8ce4
      GIT binary patch
      literal 1232
      zcwUWDTTc^F5dID=bX%9(${o}NZ@ozc6)zxAYSBW2#v%#$w1vaEWZA8|X9@fdU-S?7
      zswS31qrUs2jI-O?a!pK=vu9?$GxL2j)8Bu-{RA+9<p^3BlDg$(cC<Y$Q|6lGX84vN
      zY{$*4Xu{az3$|^NJ0CbB2s5ZhurD0D!X0r?3zxh~#dZWkSZKP-aPf69z?zz+XG+2`
      zEPa}xZN{(+G0PB&C)Nm?v$uE*AzY9VffPYIL)Xb?5<2~?j>jc*Gqi4Nrpu$C5;9uR
      z#?V<bEWYCHmbtU4l}*l|6zxsTT+<xGx9iTZcw-Q;bn*W+6XU4MMb=&A`y{P5ep-_+
      zBbMLa<P~AqmK(tc!&nnlFioy&X4cWYU2cg6Fa{ZyWn6(uiuqfQG!=Bqc6d&6`8ky~
      zB#bdI5yds!h~PRycN0|SE#oHQq;>V>t2}k6cnUBbqs}E|q>yHiNZgucdM7JBFYoY8
      zLE0pYQ^joww;AAbo|JJ1cWIC{&gZ<_@F`BoxbJgmUCb6sc?l005<xL_*K>th=Bhu_
      zv>MDatqQuSwxjahiZ~dLVHnf?QVi0r>}jSy(=+xdsyC<86HlCm_-eB<7LX&gdPD7T
      zY@K!tc|46^@z@U5Vltj#jxq?lmX~H;vOQ;$FB<-84V<w%<9-f|QvDG9;i!H7veFr%
      zJMB81QL+l;^<(|XL&TD;KOnD%l#bGRSm`Q#h4Ps~E$E@MBS<raFg3N0zP)70wWnnF
      z2PFnDNa!KDhshca3cRCtE%Ys>l#VJceSn-&M(Oe%?a42=T1Da`CR0jR5bI4TxBh`L
      zRZP@C_X1G+cMPv94-WC@SCiFHAZZo~<}iYJ;+Caf4$IU^pJ89EcAcSro55q^#^}vl
      fy#<qj4M@o<=Bs$}sgb=c@Gl+FDmAng0@Tu9ORE)u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/NativeByteEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/NativeByteEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acf80903d48f0b4b5db96c2045800a1aec17e412
      GIT binary patch
      literal 850
      zcwUWBU2oGc6g_UbCJljou#Ru&#$atX5djiB6d@HfB&29V>eP3)GnuC>sS>B!{uO&E
      z(;oN%{3yh=8?{@<1Ae&o`ug~s<LlplE`I@djU5{$hOIEp{bN4jeqZo7^TnZ5Nt*e4
      zT*;C6bf(0v>DVYU)UN=)rO8mF>TGh{&4<GzRScC6GM4HigVkvE7|NfML*c?g)x!cR
      z42yw`#a@2W7wG}-M}lD`NCrIW@l@)4(JZSYnK3kj|FqX;sAfWSvIB8SE^3XyT#9%c
      z`dyXEIBaV>?(XS843$jc%*G1C#tii}ibTkxP8#MXB34tNi&d=Is4?7`fwi!Qd$`YF
      zk9d@e{qGE${}K(ZUuwHxc<A8~9y2)PxTkN=8Q$+7i-9tREn?Rrx<O3u4QKCNZ8UE}
      zwA6-&=h!5va4K~jTWGm>iH40WhNby44^7mGK_wGjnqoJ}(}DOR^-tC2zv7i9z&eRr
      z(95EVzMi5@JD)P6ywLgy=bVZXT#6Obe2ZHYy$OKwZOSxvED~yo>N4$?4NZqSCCb&-
      z_66>a@nA;fnuB+6@ZQj^O@IZRuAbnjaq$fG!quC?mD3tyeT)}B=8Uzk7;~n^S_ZZK
      E7fQLlvH$=8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/NativeDoubleEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/NativeDoubleEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74f6a332217c6060e98bf6e328b3ff9d192037af
      GIT binary patch
      literal 860
      zcwUWC%Wl&^6g?BCv11G^r4Qbu1xg+W3y@$DgcL!MkgT>+s_ZA}V5V|C(Rdt{zk*Fb
      zEcgIE3UU2V(k3kMV(w$koOAAsfB*UU3&3+cwNYVcg>mYi@(K5cg2#z3PNY#f@ejC>
      z6Y*Z9!$|DsJsVYq#s%n+R%4;fmtwo0j>k$HhT0n$OY@e&YPJRp)pzPdxUf+7u!0)H
      zY9M2Ake&^NKIX*EupX!pj|N=JtS*~X^I0Ygo#4L>b{Xo4FumkhoRg2uW{@9?cpUnD
      zqh%a+GehqF`ACe7RB>Wsond#5`WQtb<WWzD>6wVl4CrD5TQ)Ws*5=?s+QT+(GT0Ly
      zrQ+}t!`{DSgT-TA7Yw&O+`(N2hg=V`^9!aAho@p>a?=*^XBV|ZO*4n{nKzoPWk@Eq
      z>)|0DkyJR7x{NKgT<oD~<H@B-i#-o5G>E~df|qWxuTnh{A7u7k+shB~ETg~<$y>-i
      zi!%BJXtk;GDKd&H?eB2DQBr|RYb|fS#1&e-0zmO9MTTowCDa<_RjRJ%G(GB6DAwDZ
      zAGk5atvQvOZ@hwo*E!u*0W9gV>>lptE*_v!x_VK%a@teuO!4^Zg0b!eW6sQ2J4bc?
      E0!`Awp8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/NativeFloatEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/NativeFloatEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..928dc783ff3ac6141c842047710cea68b3f4130c
      GIT binary patch
      literal 855
      zcwUWB%Wl&^6g?BCv11H<(1tgpFK}Fh1xT<6LW)o;Az5vuRM}6`!JW#rBYPZ`ziKxD
      zvET#vD8%)|N=m|lS=@W)-ZST%nfdkm$4>yS@zO+v!42cwKj$Ov_XUqLUz|#nq?v!n
      zl^ltKDB)^fw@g$Snm3TgX)+Y4`Z^hR^WiW_6+`WVjHUX>V7RRwL-kW~Dr^|2J6J-E
      zVL6boILt5lB0b^#NHDAg$$&>ap2}ihHmmAPW(;2Nzy8_`^-QQvb|Nmx#)cc{QxT6t
      zzpGLihwZ|Ty?;3nLnV_qGqJ|7HA8)lA`$YalZN?)h}9HmV;v0>8{~Zk*2)g<;XZ>o
      z;!!S+zA)_mOEs7~)waR#(7_`-X0XU}uQ)zu`KW&`21;8th`xBG1!lT&IJ@z>+ggMa
      zQd<tTu|rbfRO)YRsb%9iToW%CR_138T4)l3N+!JYj@=|r2jV~$pVe6SjaLN&Hc8z;
      zu?(u{`ze~V^C>gROWrqF*HlzsQ>^LcTil}POaPQ`Q)ak>WkRh`U8UWsrs+_pLb>kk
      zeaGD~9?Yn0J$MHT?=@Xx0xao@>It4|7thcvUA-w?S>70%W9(kd8EfA#W=)NG8nyQa
      DHx|I5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/NativeIntEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/NativeIntEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c95656ed57faa3b692f2d0c586702a6ae1caaa2
      GIT binary patch
      literal 853
      zcwUWBU2oGc6g_UbCJljo(2Z~C25f1EhyV#5ijXQaq)E|+)T!@oXM(3JsT`*o{|a6T
      z;(;H)k3!tIVJ$5W_~G8`dymgKwtxQm{sX`>Jh4$>*o~4rIOAg;3<OWIK%7dQsw_C-
      zT8_nGq7O{NMwOvChkLKmkx=^6bll5Fqf}{z+H09e{f5EvTYZM=+w@epuu%7~f*QkW
      zC=+p%pAUpO;e%K(Y=r5M$9=A3u`iod{ZVENe)xaxIt=wp=x%l*F37~DADS~UPokiw
      zl}w^e;l@3<7>bdWX_DF4VAz?V4&zuvJnpI}KNm#%2k4@KEgPE*>vP~li%2LBH*k}|
      z9`iUC#~&E>{-ql(o$I(@xb5K%?lL&!yI&A2*ghVdiJ>;OEfOf+X^ER|9nEgt@LS7}
      zLTbmuLp&m>=u+x$Y^mj97ru=>hPB0+hZdT|pwlTYy=5=W)lj^X#dkFp{^MzJ9^0gC
      zp;#7G^!*fV+69yu<(2kVIA5r!z@=C-%@?>r(VGG&U!}}&4XcD&qq<7FbwksoPK9#4
      zz5fl@C%84Ea?Ri+9K14gTT@_3S5)_K-?(^yX6fpA>B?zOusy-!&kM#nbH<!YV{L=l
      F{|)FazwQ74
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/NativeLongEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/NativeLongEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c89201a7a204c04b71c4565e09358449857d937
      GIT binary patch
      literal 850
      zcwUWBU2oGc6g_UbCJlj&v5s%(#$auShyV#5ijXQaB&29V>eP3)Gr?09SBX=Ne+4fE
      z@xTw@M<K4=sNFgq@WZ{=*T?4^U;qB|^A~{Uc<Q3Uup6gEc)}+<915Q1p*WUWWqEkO
      zwVa4ZrSZP)xTrET&jCMXYAiDSWp>;z#$%OfhT0pMO8u6>X|)Fo)pzPx_;64Uu!0)H
      zY9v!}P@E1$cEpE?U|5gTh$jP{NwY7TRsC7!4DIMY?R6RIxzN4*NSu+2Mk}(H5}w9k
      zUuQCnyT*>ce>M_hEmfMkSZCN?pgtsth<Vb>;^I`KdJgolflU_;hHDG35e{$@w;0?B
      zPYQAPiDBnoqS3`mT^|g00^G$t29F#M%<Uz^hr<&w($=s;>}Euli0QrY;=LQK_GO5X
      z+79ptJ0um)r7mJiEgw(Na<R*>wtN<#jV3W@HRGiz_EnLM#CvIes<HeP&kO;!NZf&0
      z4psE^6kXbdlo{of&Ubj<sHniFShLNSxI!_Q0VrRkOmoL7q1LFb((byY=~1Ubx!&3P
      zfg4lYUQqe=;1xW)wse~_U`c1H`*>hoJVdi}^`dm;b*9*w;_=rdW8HJcyt%QCMeY3s
      DAl<&6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/NativeShortEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/NativeShortEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f24af87e905bc1552a68e36c2b5aea4bec1f5bb1
      GIT binary patch
      literal 855
      zcwUWBO>fgc5Pch`v11JVpbg)U7Frw^VF3~xf{-FqBqXb?lq&a4y0}}pc4V)k@~_|$
      zsvh_O{3yh%V<jQsz#e91XWqW|cK6rs>z@E#;f09`gB!-Vf6hnT?+YGhzBrXCNi+YD
      zD>)L~vm{jqMax8$p*e><PLrWX)z`_mn-7PCWvIQEu~Z)z47b%|sD4aNg$)CB2P>#C
      ztOha`hxtWcq$j)|35Jaz8StpbQ>pi5v#QQy#^442>#xmF&xGn^C*qQ9Y`H;kD&leI
      zcU3Cmu&w>r2bTjeR5FP(6B`UWGt}oO5+RQ|X_#M#SWSU8HqkJ#Mc(HqwX%adxXWOU
      zc$AByFATf?QVkYPwQVrmckloY87%VL)5jMqAN9}0Koyn^qSvpq#7s91XE)w-TgwnF
      zwd3F^o{>~ImHHc7YT4L>YvMV>+TzSX3r%8B$%L2Qv76-SKzx$=vl>gk@lrEjo74^H
      zWl%-mPtl~EPnl6(@qWPiPDKSa#ahvPgBui`34roV$_%%#N~kretF&7$XgbuXP_BFX
      zSGYaKy&08V4Bo=RyMnGU0hV;SdW6S?izjH7u3nd}EN_hMF?PQ#7;DcNv!=$p0=54K
      DN#4OD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/editors/StringEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/StringEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da5999a779ca8ff3ff8ad5567b2cca68a132587e
      GIT binary patch
      literal 735
      zcwUWBTT2^37(J6svT++5W7W3y;*CN~p^FObLy90J1tGLTB=3`C*p6&=!|ZH`|H{57
      z_#i&}qr`6}OOnQy?!$N6^PO{M=Hc=74!{BST;v$`f++Pb_=x*m!K1_%eW_!W_-(CZ
      z6f|w;BG0fr2Rc*nP$+#l`Q1*3!&qsC;&&NIeazt0_B#yuA8}uJaIjQH0Y!#NOGe^X
      zI_L^@&by&tSZ&2U9(K5rrq70X{YNGYpIZN6t--LA2z`>Ai!nJ^ueIz#$fF>`HH;On
      zIqr#}mT{E0SY_Cqp-#h41Ux)ZK{^nTo&r5Etd+5j4Tcg)ba<GG1%=<;3(?b7!5Q(;
      zoadQ584P9y*J}IEAx7$b86WVGq=Ko`zt~L6#WusrA_bkW9jB@%eoAwL)%h#>V!+rT
      z4F~3PsG{ef=u+oXW|Rx{8<hT1k%LFEXop95L9sjmP+q3Y@Dde5tx%n(u4-wHX_7O0
      z_0QLMHRJK@^eb(Dvs@b!RK{hh*LY(syv1f_=`gcYs$b*XJ+`hETs7ugm8PzCENb@&
      D-NB!2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/ArrayPersistenceDelegate.class b/libjava/classpath/lib/gnu/java/beans/encoder/ArrayPersistenceDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79f80a38423c5030502db494082c3a5a3da98299
      GIT binary patch
      literal 3069
      zcwUuOS#uOs6#gzVnVw8q5+i{G6<i^K#1WN17Q~PRf@2b#Fc1*2Gr3GUcDiGCPap~|
      zh>8n~yT;v@Xq69&Wk`ujl@DrJKKf*pFTTjHK)>6QOeQ2jO=WueoO91P-~G-x_s%bu
      zzWxrt27IVti9kGKXX8W0s1fg%hV8|ropuJK8*g!4W2{HIp6U72$u?=pjNwZSVS!Zz
      z4hyUiDCydrNE}SHBzCta1+Ga1>$ART#djFq;C;qO6ScP(o+n-3bZoE9^o)K>4hV>S
      z0@3EQW!k2Hw?L@6CM6JVC8ijzLaBzO0;NGX%dj)?R*OM&l;LWD<pa_)T{+M)6E^7^
      ze%1?u>?;N{>d+9?P$6*jJVY@p!wMahhzUfRgY?R0rH&#*ig6uQX}EsIG045maV%1x
      zV>NCd#@@c3cG?q{fooE}H|e+;w+Iw<v?P-4c}5DuG${aUbgV@+5szejfz8zg%ewoA
      zWZG|<uc?`@D#khmcfG*Uf;?kBIb4T29k(Gapp6<<R(2mEn(A$ZLDWKq*q}n(F^BEs
      zpyT>6TJBOYHVQ1OP8NCwcDim-uAAqO)oJ@OBi$Hnjmnt~u)Mmn(0O_V-M1+ByXSyU
      zICdsR!#&EkMM2(K=&Q_hY*mhJb0BwEjzP$+=un>9737XW&%jRCPUX5&plsIE=49EE
      zF`5#}_dbD&>b64P+yd^TG-2AZD?8jT-Cotl0_6!OZCEM8HI*DFV+dgd`@|nK*^?U*
      z|8ww|ro^;8->`i%n6a&kc1JE?doJKie@rWnjJVSCI2`P^6!vP^GiT4aI6C^E<}f4u
      zpobOTg&WT`wi?I>bR1Ai%hXb5c*L=#?e~t2@SHd(P&w<8AIf&ub=U?EVugl&Qo0~G
      z4Lk}~%zC@>kVRZMa-v|*me}%eXFx}q%%(A@!^Dt4F@Yqco$&`%xfYm~PSt{z8uVcn
      zgDsef!GNO_BLa#4G;)P4@4F^@Z~p?BcyN_C*1!x()fDp<anv0(>dO|YoN5+QDG*b~
      zk!e`wqw+F{xk~(Z%$K!BO4V>o$D``}EHS+v*BoZ1QK=52qdJb^aUvw80&5l`bG}N|
      z;z{NBl)%~rTsjx@N#SW7C-4l9UinDYu)IZzw=args$3^kxt<qjymGm&RGb)I#3>Cg
      zu`KhM(Qz7QIM;_=)0eYt$?Kqck!h+)X?U4+EU>EUM-FoyqIi`odXneRS)5df-_Y?U
      z-r@-tB*-rmsG1W$ZwQ(xVomq8=wzSUS&QcjPjJd6XO*2cEyj{g)=kR}QyoOtFLs{X
      zrt;uMUU4D*99V*t>YfA2D%BlHO_<MO#Aq*}^bKY8ceGqgLLY|~o<KPCCCV>gS>Jgq
      z{}NT_)c>{TaN{Iy-4h5kp()hnrQ0dpnV0G*HRPq{;wfy+OWR7O(4LoeES<u=O8O$e
      z*~RA?B2zzM%5W!fZ{nS~85_~SQ@#<q(1e3%#xQS-?!W`wLuGy^aefPa7p*&wp4pI*
      zK)E4s(Q^wJ>i&R;BzmWvKjl*qv1R=vc28n|*Ey7rqqOcPlw81rB;uj(FTm(qU!E?P
      zMc*RT7phD4g)d-J-})(J&g0?adDx%llddBwU>lj<&V6)Y71OUq5390^zZdRD4O7=K
      zc>`_T!TKQiG%)q{2;2bd7I^R(HA)_`xPdhdV-$yTu*D_vr5L+dOBD4*1iwGQ$C0-&
      zN{adRSYsqquT9`UZG|?4CmN$w(W=NKj*nwURaota8+takp;~T8Eo$Iao}0uA%6?Ya
      zUx{31?<=Z`a?xv(c>RPXDzu8CkN*C60y0z|nZVxKiipajRcSvik|gpkNg~rpw3#Fk
      zQ4vu|CT7cenmhvgSYAmc4xt=_xE4cX*dn_&`)4Fzv6Y|g<g$lyk_;Xoduj5Q!4WtZ
      zqbAF@Av}ZQ9N!ao70===oW#d?9-r{@8D79wl&5eCKQQahID=m~?Z4q={7&5;^!tl5
      zuc|l_w9>_V6)y%A6TzFR=aS&<5Z^+<o2qP>JNOfCW1MZN@V`TAg#9vrcd663mu|dA
      WU6dFO2D%6_?hJGqW4|9T^1(lp*bbZk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/ClassPersistenceDelegate.class b/libjava/classpath/lib/gnu/java/beans/encoder/ClassPersistenceDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70dfedff6e4aad4f2882d915744a1301c080c4b3
      GIT binary patch
      literal 972
      zcwUuKO>fgc5PjP?vFirvm=q|`mX@!$#aO*?G2%mQ5S8436cnlAv~icPm1`s0LHr^l
      zZg8Oz2*jBmg&41+HdT@XKJ4zio%iPLjQ{-o{tLi1Tpe=^-XI=&NBjf#`hv%qC*m+U
      z6sflp@hp2K(oAMKVPaQAV!(5uLt|JSBTUI*s6CRg%pWsUT27Ba+aXO870lOBMU7!G
      zkg@0tkNYBh&HE8C>>vqw)Z?iv;t{Cj?_|cX9sH+BpJ749S<d5JDnCzJfuct|9(XVN
      zM<UGqU`()G3i{4D@Z<YbWSLB2Uq^#XpGl~~IxaC-XJ9u^WjxTa#IQ6~#=sQ@7+7X7
      z1|nA?CYrcjbmay^Fw^A>q^#(_nM`te238sLw@KRJ$27H@=d6}lCM;~!aSOL8lMEG^
      z49%7^S%MmxM2CB-r=c3xL`fQUGR%oTt+DiC;;R=kG{(pZqHD984AW3Nm&M#yW)1d1
      zLBu+!7K(3<PV__3s#E0AP7OwN^906Mb#2mGQ=pFpTI*#3?H6d*a1o0m@@LFb479g?
      z!|J%U{Rxd9XdbxsW&0{S!L={0ZJlEF2rDDYUeSJH?V#d*!+N*CPm6ERyn&}wa+eIW
      vv5Xg3!ya4&c!+&GqrEV;Sr#7|D^7QCSD9_&9$KVUB^8JADuiw+{rmp_3P$ks
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/CollectionPersistenceDelegate.class b/libjava/classpath/lib/gnu/java/beans/encoder/CollectionPersistenceDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d3450cf4da577c0a3edcd90a1e10379464f0c72
      GIT binary patch
      literal 1511
      zcwU`T+foxj5IvI%8<Gei+zcvm@sbcEULYz#A_TA~BU;9y3VqrnQ(>rOm)hM3`YHZ^
      zRX*tp6jE9~`wf1J+A|3dNT4kDVW(%N`}8^8(?5TI{SM#`o@nqeOjgWlYD0gkr;1!R
      zofJ1qR+-zWoMjli<O<7t!EHx4E?w{iZt#lkat%I)!G@?7J`8O$!W8Z-gEyX7W$@()
      zI0!G=!|<bxp))T`zEa&Ra{HBDG$<mPw@SLPs@p>D>xVvfT{sNs{Qoe`FocBZxVq^I
      zMJgN5D-1(7E2-zj4T{X<8&DT(sF}ox!<{XgI}WADXy{_-ZFv_&H+nVnFhowL2%``E
      z41o%FbB6AaobGs{frvWH1Q4TQnS48l2rkJgU1rFiN%)MDf@=%2l6lkYB)br@jPkN7
      zNJ$mE$%z<PRhOZsRaF>*vZq2f#Cv{<TTR2ilRZ`MRSnlDtGcSX!f5Dg2&1?W#!bYj
      zgu>;v?piiO-(d-r`*Qu9Iy82OQ%g~Bsq>rMbORVCb$YoR!US$>NKpZr0m3vJcj?)g
      zd`FhyM4##cf=FOe_GgM=`uzT!*Nq_V<DrHJhcr%9B#dcLy*svTQhX$VAr{ZK(nfGn
      z)uS+Gk!8@<b!SBhpy7Khhv?lFHLR<tU-TmA!5zN{uaHyH)2gu4{DM`rOMFSlxg0rn
      z@FpYxhCzsspO-9}dira$OVP?`^^ff#@P!Nyg7j}whtmkrKU{O5^#ZLvbfB{yTqHjU
      z8aY5@Et%X!G<uQkVc_!-&H#A;S&Dj02y<x1JYnVtE32@FYVmb!X<fmf$``>^y7f@x
      zFh=V6K2f~HOOOA+=svDf&;1`U6!RS*u{It}`o5ui%^UOY;}%0<5BGMFmb)2-4}X3g
      zs~c2k%f#R*sd<KetRPNnlJ--0shG{yG958XlY%+LEUh?tlr>M5S6Py+k0O(#Zh^Ei
      JEUJ7<e*w5RcfbGu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/Context.class b/libjava/classpath/lib/gnu/java/beans/encoder/Context.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24ca4c464f75b4d081af9fb2a564feaa35a51b4e
      GIT binary patch
      literal 1179
      zcwT*yT~8B17=_RDgDrK1Qu$CQQdG3t1uA|^3ntW%G*-}Hn&3ymwruE<y2W;@-uOfG
      z${)amCIX2jMsNL5#xt`k2pH0I_MMq`-se4M=GX79-vP|vo`#UX`3<*|+q7O=xvFis
      z?VRn_n(KBeS8TeT{npbE5lE>0hUISLmaCg~%@c^WJ<GENlI4TF6|d#E8+n09&1y6R
      zL`k5l;JA)AFEE%no>?*~OfHfaM;NDdbfZTgoG~ihAXP^cT{24Q&=3>oEjzBg)OlI8
      zTTiTNL*bibRjigH=fPsct2=FhbopdyY&7QDZ&rLE8pEP$J65;ab=j0^r4&aB=QWHT
      zvcVUi;~a(sLiHMj+OIlRgV=$8h5B~oji<88MIC93)0gI9--0C7xJ7ScUem8H(4R4m
      z+omBaFm!Zzq2n~DE`~`O6-Z1!Q`a;Xhk<EnZ|+EcK}Dk?GiG#L!*xorwzh0{U0~{e
      zsmGQAa6X2cv~e;mFJBRF%X)VNQkl|8r)KHM3z=WgaRnKH_)4?Ws@aQ<yi7fiGA#>W
      zoUb9w*Bj!Gk3&U#8vI81??#;arx>krUFP*>_n>FZ9R{f#^nF$b&Tves1G5|pJT`|O
      z%%h(xY5y1oFbJq<h!~-wvjl}0^U?#%bJYltN@#_|*hoG51--i%S^GQbTPuugA7L(#
      zP(%XvS!Gc%2mKlWGtBy9B+(W5TmsU&K#*zvg!q7Hc-#B|@lXOM74*V;BqWiuzK@7T
      zw!;VDVdc~VI#s6FC5nAS++$?<JrHf~i#Bly69o5Q6qi+dLf%Z!$}+R1Ars$VtR~Gp
      nO!=~}CU0<%J?!FE@-E|D<Uj2<;k#H-K;17800sS*S@VAYsVC(1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/GenericScannerState.class b/libjava/classpath/lib/gnu/java/beans/encoder/GenericScannerState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a7a74adfcb4d8e441dac2acaf993c9076327be8
      GIT binary patch
      literal 5047
      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
      Ns0D!<zNSXK^nXR?ixmI>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/IgnoringScannerState.class b/libjava/classpath/lib/gnu/java/beans/encoder/IgnoringScannerState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfa63af360602aa64ae8ccbc93d1c5a706b93213
      GIT binary patch
      literal 2183
      zcwU{8T~8B16o${xN<XBnfFOt;ASk5>D<*n_(I5%fP$8iPFT60*?a&TxXU*=kYP|5m
      zU*wgE7ybZ$l<~~W+BRi3gKjeWG3UI`dC$zwuirm@0>BnL%)l6d^_J*5XS7G12BRW$
      zm~j0j3!G|8_yHHKx=V#%L0wYGGLR;)oFEuZBryJj3of4$NR`)42&8v0Cl4veO~54>
      zCs3+!!4A8f1`A%%hKGu&n(tEYga%xFN0VvU<{^QN+CRA5CUB+0WZQ36MGu*h`+~qs
      zxu*3V6)mSOm1tWz%bV0g+R+})<q((+k;>hd=a8#0$oL{T*P~%*YD^m39%o*2$8}kV
      z{pC*8mx-5j?lB8}uWRZ|`;9Z^%Bn!6kUXmXIIeoaG94K}Q=7>~xF&%ms{q@7AMg&B
      zyvIfi6#4;UywIawm+gec3xPRPXD0~grxEFk3$2{hoa&}X6@PcIzD19TmTV7vEcAWG
      zS;=aBok?tfizfRx5Sq}w3S~SV%E6mX&x@|-885hNp%xvpQx>34bppZ&Q!?u?6j~`?
      zsI@VUTa;n~@A<ml4P3Uz)uEV=`|CFq4Hf|vpsq<Ac+&7YgKrK#iJGZ=hwL|e8G}6D
      z$MxiMxQzD+lYq~H1{9$bi67~F05U4v*TPv7><jVuVRaRsg6RnH3`Z&sai9^4COCw+
      z8X*i!6_~NZj;yfR2zJfhTs@(=zpy!&xA}Q(^>ZB-bb%Z8=H4X0ZuVifqULVv-$22t
      zIMQ*jw;EP4!6DdEA9g2#8IP*yvK{OG2X@826|ID=xEo>b*%9w7h}Hg4S=aM12!H69
      y3=n0zFpL$h*@Yisg%x|ZpA))WkGj1N8#ct31jHt8n~FPj`(I=16L_Grw*CMI8Eaqw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/MapPersistenceDelegate.class b/libjava/classpath/lib/gnu/java/beans/encoder/MapPersistenceDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e69ab0aba72e3e82b3a289a4d851c984638a01a2
      GIT binary patch
      literal 1681
      zcwUuM*>Vy=6g|y01V$x`3+@_?V4}Fig^7t8V?;4Tu~HR%8n6pT$w18vZlB^0_^L0a
      zqNU}t<v;i*>gfh!NQk98O!wU7%(<se^YzDv&j3#2zJZXyiJIHWJ+YtJxr(%1KPTO4
      z<B{}ockJf8^nAw;7?IayUDoVC8i)w&UsK+rMj$rfxK1!B5YA*51R~Q!OdyOt6H&wj
      zwiO*$&b5{*(z|b0>g*UOHmY`g!S)>W-U&v6$Br+MEB+TnOCagEeqg(SquESlin_UO
      zyR}@Y@<dhxtGEVkrVVFhyMiy8p7edE;aUdz1-AFhB`}EX28IMu>px*)2X+d?YciOw
      z+dk(Q%w*RP(LpPYG*xot^8`}ZqvY8uP~4R8CXsUBId08*xUopdpKR106|^8#t@MT>
      zGHA2{fuUZi2qe^DI(FT8CD(Cl&+zYL*Xg}r;E2E$ooWS6T^(o=!x%Af3>n(!seD<M
      zB-a01IbFq&mBew385r$qXTrn@oTTbbAU!*1cmg}RdJCO60Z!qJfzuRZW7fo3oTL9-
      z`9jIkb#9%344h|X%~a)pW?PbO5XVId+H3`Cl)MQG6MV0!IYxRMY!B=N#xbe9FeQ-x
      zyBGd;@(EnUw1I2CN9<DH#C6OFY<=!gs#Wd+=}fWLP=r&8&6>E0f`IYZ_UE)Xyx|Yj
      zO?}y<Ir=wvgYKib|F|!_WH;6Q?>cj3Ku6uwp<XA&Bz-^|mK!avDsMRIuVGK`yMI#k
      z;}F;b^$T;ye;hsyzU8<IuF>Pmh`-||gan^49UMoJPqSUXbqm)BwqjeSxxzXHn)-;;
      z;^^pm3=HfN%h>&P6=ydqfIPb_B21tUmx(z^th~lP*zWIOtKB~A*WXLw0J9->9>U?y
      z_r4P|&b2i51;hDhI=X_R0xQVU6R|fqm5!|-$Gwq`e8l+T*uaJ8Ck!rz(?)qQl8&a0
      z6<i9Tyo}55aYYs15P1Fb+n=#VNDy>E3^N$QEOw$m61R}WZ5rnmGqadONmIYqrm{-C
      t#Qbedy`+Z->0Ob#u->V0B1A6W4l$y{w-}vg<RFgVF6#_--_u;mzW^zXnoj@#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/ObjectId.class b/libjava/classpath/lib/gnu/java/beans/encoder/ObjectId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..595699c362ed485a3d99c4002a14f090fd5c45f8
      GIT binary patch
      literal 2310
      zcwUWFT~ixX7=8{3Y_e=Ago0GS(hn<;wy|ol3Ksd4)BvqeD)_}FyM(37Zn_^>tXiwq
      z@y=`e1L!!@i<a8Zks0+$W_stZ&>8Rg1Jw7NT>>G_)LiVIeb4hg@AsR>fB*C|fYbO!
      zLKVZIyyd5s)D<<A)m6()=~m9xbSE{LUD9)2T9XiEs22cJweq2yq1IBD^|YlKIo)Mw
      z%m{?<8D?rsbr;9gLN7y=p)n*fJIYg@V_12*slH;WF6lMwx*Xynx@$Z}Z{6_>+j55u
      zSIwF_(Xcs&SYOUGEW<m;5b5liVTcZquQD3YC?UbHe-D|0188Ds)^yi!bZuapcFI#d
      z-xVZtaWFiipcaaRgXB;}95Pzas-O*Z3^jeiJlA<nK{aZ~X2!7e34b}OJJZ}%9<ZHL
      z%^B4(_;)Bg&{+{_*Nlt^S~=M<1#!p}kGE)$UxzbKDGFsNX1JFu-_<p)-=#o8jD(&Y
      zq?jA*s!V(gC#iCMzEJEiG)iQYM<n4zhL#<8DN`ekV>>cZXys{mS-~qfLwU>V)B(qL
      zhZK0$+f^x&@alG2g*a__dR`~e9=xXDbx<tQifa1$<N}qdGrgN4#P;$MzoFn9ucl<U
      z1CFDva@m^-1~5qdNe&I!%LUugEpK|YKnZUwi$BPC9K#ruFjD5vplzF!WCd@D3QW&l
      z7?F^srr4XkLEkW`2r<0PpkxEB(33HY^A4F{XzHxYIxln&E-1K&cX;6}Z-&P!`Y+9u
      zrxjcRwR4SHDCib7ds}%L%Ix=YjdvAvBN@jWkLNvxx?S<CdU^~WFvPQT5)Q`k5y#D!
      zO~}-u?RYU{8Dy6qLu3y|W6%RPLs6b9FP0g}*j7G<B{E{tDa4r^w_Ijq)U;JHVv~^t
      zehiUUInpWHE5o)=gAxN@Et)u&s=T7$V<f5aROJcUIx<#qUBV}2`azC(Lw)-6)(i{7
      zd-`()H}D13qTrM1v;U#^zq*`OTF&+@ue1uw`j=KA-<k51?K?Sr)ZiOo-}W${;&>dU
      zF^<q)jzZ>(g-%s`rp23f15n?>mlS<hlXM^I2*01c`stqkS`(~@`rDAAcMy#{K=USA
      zW;gKc1GL{4B!}oJ3vfT`X%ISul>gd<aZWZ$5-yXwH*lmo`4C5UbnAqB=gGkgIW#Wx
      zn*%hS$8o_V3s-4b;{`N@oM*&0P}}_@I=4_Ay&Jh(BCQcu7X_ITz(O*{8$6`w4JjHp
      z#c$*tz3!koapK+{qM2Pp4JD#e+sR`8koOb?Q`gaa8wuh$x`o<Jq$pFTe+k&5_t(+R
      zZ;E*7SM+3(TZly-;cO<5^?i>g!Kr`z#5#u72)v20*~Iw`WRgWp7BN-C<%itEKM62f
      z0=!=d*doA(C4gE9SR+8L1kfr0w+OIM0vMG5jR03l0IL!(M1aB?`T~Gk2{<Bdf|&hB
      zxV9G&ri;s>^OUF}KD)frHVZgNPnFssM~$YTog_(GDJdBAXJXP$x2WxGYN!H9uhN%;
      zZ{gxQc=!Q6?qLOwY5sr5HT*?`|AgjV!FAS1bAA#xSOz!QJiZi#?+A(;7Cy;(aFcEr
      Q@&AFZMDsIzEj+vRFV!X@!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/PrimitivePersistenceDelegate.class b/libjava/classpath/lib/gnu/java/beans/encoder/PrimitivePersistenceDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cef87423be6e9d1f5dd404dd66a1bb64df37fa1a
      GIT binary patch
      literal 1210
      zcwU`S+iuf95IvhXaq5INO<JHSG!56J2{kS7<O&`N1tbe91x2cO!AVzPE7z{<O$$i;
      z6TGw%2tI(1LX6i@ljedDe%Kk$&YW|0W`6zt_7lJcHgzNz9(28)dEgv7W}7=+XmYRP
      z@AJUi4aA|4;+XI9AQYjbIDg7r-gP9`p)srs6-~%tNN)*G$j1!HYOTefZ4<76BxZ6*
      zA<Zyn3y;6*9kzM!#%a4$QLz1v<F=eYMF0JuCf|#Y;gS6xLM?`@@IvW$QYcMNs<wh~
      z9j|M?ZXfWDwCo|!XECT%yAb?v6!0(<zGvx}XIPwgXP}5h9SaQkQHmTc;|fEj%jLG~
      zg!GzXwKgO~1+5I0s8=38iIA3axQ6RgBmJffgx6(QxKI;EEdzO!qlT_B*i#=jCDO-u
      zJDwB`EbF`bFIDq8YBpm@q}K0A5;m!W3`R75;ke=xAJG=S_us{i%%)|aiZvZIQZ;^`
      zLmds;u9HAWJ{S)}sXAq-YCGk}Ba%5krjq(VBN_C;X!^aN!*@iqo0Y#U-+Bav3aCwp
      zz9f0H_;l*@XOd-PQ)_3)d?hCVgU+-HZX!!(E>0kOiL8cM%=L@kVMc+Lz9YX^ub-k&
      zxT^g?aW6@Jsd<K#FXxD}D$^pwEm}iMA+N^OedNfi;D%x=;U;cTrH0$M(`WlkI4QE_
      zB`xA>G=}&ZeZEuN9Xz5y<-iVsKgTlJ6}(Wi4`Y~f+A{88UD1}6fQ0f)@{-Dnq-b=1
      IUm<V&0o^nyhX4Qo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/ReportingScannerState.class b/libjava/classpath/lib/gnu/java/beans/encoder/ReportingScannerState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d04254cd538fd97f05712973a9b57b2e1563804
      GIT binary patch
      literal 3297
      zcwU{AZ&MRj6vm$mlx)&K1cabaU8~dtfoNN?O>8ToAQr(AN~H>Qv$=$&n_b-9V4e0w
      z`;pogIMdGb1N1|6dhYIKiOJodWrqE8_nhBz&T|i!fByaRZvZ#oCeXt$Q?nX{1MNsF
      zRJdlj1#anfl{<wEerP+MVb#jIW?9@Rdz!}+=wrAXlhGQ;(0|*o4DU;Z-dui*p>L65
      zQs_l8jrY*ckXbb>zSgK$xU;EMOv)HuwRO$h(i}s)hl_pQzTq;=t-ec{C5AI~?(N&v
      z73+wgo?%-Iqq$WdU}{#aQ1%>3D&@D57{W*b!<5qU^_A=KdKzajN)6ZzkFtYg!!A6g
      zOpo%pRxc%xWyrQ;?=}pRic@fox@s?^sHQN631LG<JbjSH1zaS<w8KMgRT*Ywb#^R;
      z8YKmn7<zJffx4W=6-+TGo*e`+oXvHnmQuKid;&R!5lK^NOe4dPI221J8J7xLSkvnM
      zE_L7-#$2-9&>wYpepS+oY!?(<XBd}LimHN-8Q2^{Qa3f%4GI|wqL&PARu^=gyRL$H
      z>ZoJ6s8Zsdcn=aYK4gQtw%HJT1x2E@EsCTOyK=yFZ^a^{<r!g1^Rkv=rgJ?2RQ(R=
      zZ(&qI6iQ0CPP>2UR2JDyTT?eY<A}dOQn1KyPX4W^<`mqgNy(GkKok==GH|4s4Zh$u
      zhh{t|XTfo_S8d%tc&iOPwFlwH*9;fpgo>)gU(&umqJ4j=V4ZF|41<~oTs)b9L6ciG
      zZ~vt7iKw$qrh-kfw@W}EO1t69l)0ziJDUFHo7kuU!>aP1PV|D%WfA(c8M+*VCQQTi
      z{4dYK7oWIGVOGO511l6fr-5{R+6Ld_4mrgYRQ>UOV^JXc-B30Y_!fO+xRQG-&kX{%
      z<p$@`kKz<E+YX-~waei{^JGx1y>xCVIHUq+b<=jKoK)FvI67Z4#2J2GdPvU+C{$27
      z#Lp1@(tieePta3=?o6yqzlQQVJ@g<&*M5KTI^L&iItZZqfDaf%CQRN$AH@Tcf8fkt
      z7~38me~t6kjxjl`(&ZQ*9^<1EX3CGfi3!a6+_4}x;!ffkW_+z#%!LXyQV?ZNH5Cd?
      zg&TC4=`K~IQ@Z3!sR1OCn!+cc)RZqOqCbs9E1{^`6usFlD%bl87jdUWPmT1{NKeJB
      zQ17$I#`Vy~Y*X*^P){y%kDR;T;$SwC$wo3I+z#Q}VKWi@i>~k$f<A2NK?cuKr+575
      zg?P{IHa)x7)w4D7Y(2)arO318(6a|rU!eDb^!m^;7!R9ztIfe!ixn-?U~KxL(*dMq
      zFdj#P@l7Z?<+m$}+lZGhzk~b}lHdLx^54c!%vRS;-Jwn0jhUDyq2P8r{QIu(3PJT#
      z;LoD-<`%_>l_bH3cO<wP6zsR0JIM&QD~J3bftUoTOCitY5KRJkK@dj@sl<DwclGLs
      xJbD@96%W1IBMV~S`vLqw4*!{;zr?`nG(rMy$=kOjxL>LL-z4obGDbu?{{dk_o}2&x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/Root$RootElement.class b/libjava/classpath/lib/gnu/java/beans/encoder/Root$RootElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..654bdbb8dd947f013381ccd7ad2098aef50deca6
      GIT binary patch
      literal 1105
      zcwUWCZBG+H5Pr6AcU(__%8P<nM1(8F9{8>hV?t_TQi<_Q75#KAn|h|*GkaGIKg%zu
      zRZR4wKgu|}y+Bn!nsjD&?wMzvotdA%dfx!7;=X|t!(vNx-M9XZ?>4wEBA1J1xXq>e
      zEDYm$WvXr7;UYGWIUdaWn8;1Q47v3{1n~ogv{R}xWHtzAA&ns$S>zaoYk}aK-A;qc
      z=YFHj849(q>9^~?4AeadX5u$N#89f8Qso+h^<D-s_hMg?j5+7H%ohqJ*GhF0qf|#B
      z44h*a(b%>xTCNw%K(tJZGZ;HuMnNb{OfqDfZ9j@kTwt&jx{`dfFpU`l7yl&Ljbh%h
      zaS26+e2d3VW%!QEc$Z<psr_ASt@Llmz-5N<fhW9tQmgh~Vc`m{8knbk9;R(5bv72T
      zNV=)urr)7XjyXqA=TSo0z!JmEiEXm6jBE68-CBnABZR*`Rp^ykhMcC648{Kphr!g)
      zs@PUauiIF`4H}lCX)G`7$|ipls6`o4OHff%G?d3eaH-qCBLjCCrcYQOn##ZeVHUKr
      zP(Nj9SLtrh$tBNJWa%T!4|GVuBAe5}J><#SeE|70<QdLlI7yDlrpPas3nSTm6t>cZ
      zF>fnVnDCO@`A?Wqf!RIGdFjt^vN)_UMOA<vM)3uc^e^HoO}B?K_I2HfK6g@Aohpgk
      tl>-G238PSEnb=oT1MHTLe<#$B0XFl1%}m%*xT$k);kM3F{C98<=5I5O1dRXy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/Root.class b/libjava/classpath/lib/gnu/java/beans/encoder/Root.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..134b03eafaf7a8bba58ec9be067c088845db3407
      GIT binary patch
      literal 2009
      zcwUWFTT@$A6#jNdIU(6JfHajNwj$D82(gw@m9}0G1RE(33Kp*?$!<vvCwR^Y`sV0#
      z97o^0y!64*aU91-X9T7?<M`}9@Xx5<-Z_Reh1Q3hz4kh5ed}AdlRy9d^>+YgaNR;k
      zVDN@h&)u}Q?OajWj+awTsa95QZn;+TErbPn%*(3n+{j%i-c%)Dz}m81<@laJZ{EDE
      z`;}_0;M=8lrvzdyU1zFllO_VG{2>8U!@|o2ru4K*b=Ngsmgn29ugU^qU7+(q#i{t0
      z1UizbRe|s{0ix(YkAy_Gg+76J8;>Y@(bENiV-iQuY2moQ>HDNQvb;|^ibTWrghUr2
      zT6#pnLWE)R6-O=9H;c+$v5QqD(3h{3?CPrRR`fkkhW(8St21<1?m8Irjo9V#^hTx1
      zG{=(vyH2UqC`K@9;fcdjYIl-&48yu6Nr@EFWVluLHUvhK`S$isrS4VHUL&#r$|-A@
      zafuwB<bA8QCD5Nd&?j1^ldtl&=WE7iB__~KwW~I3+eXb2_^!RJT#rQ?KC}dDZpBwF
      z6W6VHS|W;A4A0_%1x6XVuam?@9kcs=eOq*uy~ze?HqS{sk4dsIZwh+cwE9JfX}m;U
      z+S&GNu0Z0y?96n{2l}Zfxy(wO!^;Ab52Ah$K%<ZI60c~6M@m&?yE?7B#H&Vgy=r>Y
      zX&92o$p-{6AT`gVw=7Z6=|zn5j8oRgS0xtF9m5)~S$K`JdoL@Ab=}vnqdxGp;TsZf
      z;w>)ZhV3m-XLgV)*+En`{-C_LvwRgT)aq_Y%~te2bm@T~*R}$3-f@&WU9~+=aYte;
      zi^m})GCxjXg!I-@3hBKwXIF5t`8+LJa`*W>%G)YE1kY3HJ;c+$q4(Mz9@;^FnsS2j
      z!|OX3*umh>24RTLK6-$y4s$-@n88WR;!$d31BdrhJcVAHAjUd9Lp)EUf5AXz7mxGo
      z*YYk-ucb2#(2l-D#s&0a1p~Nh&=U=W09{KN+OS|4Yvyv1Hkv~`tpn^L`v*qu0*@LH
      zo5sZ!%JC-UGfk+u04i}eRD<+W`-n$P(Q7>4!!fumsEH=(IZOtqw`i>yOc3Y%ZS-dD
      z;28m423eI$>F^HDr!)Gxix>7V(~#z9by;9P=CEn!hiv3W<ohw>-eNgE!6-gO7N6lP
      zK5r@6M6+ZQSiluivc)E&%Ry`60f{9BTWJl}NbpOB{EG6|Ex_?6a6AAG>6H$Ezo4J)
      z<oJ&m8M_1i_ppKsS(9fb+sIGfmMG8B;B|r9|NPaS<Tph5mPvlcx%eJ~_<<1#NPQMR
      o87}EYlqQ$)fQy#i#ydpo#&NbhVoF~$_$8E~hk+j`{uCnr0%*;jKL7v#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/ScanEngine.class b/libjava/classpath/lib/gnu/java/beans/encoder/ScanEngine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a7bf56d26ab20cbae39d026f4c5ef25bb4063ef
      GIT binary patch
      literal 10282
      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
      Bp^N|k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/ScannerState.class b/libjava/classpath/lib/gnu/java/beans/encoder/ScannerState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a582aca2294caae5fff15ebade9edf0b4262b60
      GIT binary patch
      literal 4519
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/StAXWriter.class b/libjava/classpath/lib/gnu/java/beans/encoder/StAXWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1799e02b73f2467626d74966c37d8f69daa6d55
      GIT binary patch
      literal 3532
      zcwUuO?Qc_69DYvQty_Cxtk6j(g91*ruA_?cg?C2Tbh-_6V`Br<yY8|TyIZ`y1&nXO
      z5Tl8oG<+cOC8!C3s7S(#gZL6-AS%WfqcJ9a@QZxWe?fiDxp#Nn>;RXn_uO-S=l49n
      z=lPw}e)IRG&j8$wVh}!o<zr?swO>D|r$!9jETjxGlOHv#RG;0xYtYKth809WV1WwB
      z>E>8!`^bJHV+T<w&@jhlXQM#nA$PE%TSgsD9iGUg3btkF6RBN2-F<501g~dw)*LlV
      zTR?R2Wkc4?+M5JoO=@o{n@?>o+6RiZvul0xfIuKkxDfoP(GbQ00e@5TKs5v+8mbWr
      zVG-(rh_cFZ@J_l;J!9vsXEfY~#R6f|IMihpY~9Ql0*y`0Wr@$&xn9E5Yq%Xt1fm(n
      z*v72l1lG+}#m$A0^(@s8L{$)Rf!n5?=rXx(>bVZf%3D=fA<&x67jvU=GjGSUstP+x
      zHgP@f<j$I7ai)(uwyX|e8SaqEHIleXP$eclLn*P0Sf!x}%>vcZkhESbP?%(CbpN=O
      zKctW347Zxuvq7{7tem^fj>8$_fSt{o0yW)P)95Wuj2KqG+)F3B^BFxipj%n_?oI~m
      z@oa%PyKmaOY%5=$p>^fu7YOciT$I^vZZ)&X@*8j9npX{jEB57zh4C;Rz`7vT3dC<_
      zwubv;8&_m<`GO($ZPc({&dgJm?U0dFpbA?Uw6njn^?@pEW!vAq`Ysv0O+yDdDVmDz
      zvvtefmd_L?)Tvrk#^G|F3skA?9p)&NZW?YLsKUcMlyQmBt)WM@ON|OikLwndF|2}I
      z+pb}U<XSVey(4Ex=qfzM?ID?0FLX>Cuqn0}=6`mIDPw!{>G5oC)H2uw6>5^Em0>(A
      zn^Is{!ytAG^xjfYyKiY~Sk@l2^|4-kLUrDMB1p|}_*Wd%b46pS)@kxmhY<}KsZs5;
      z3$7B=_rQ($mgN@2z8Uwhv%=QUZH`8Yq@j4v_udC2N6BcvhNq?(DGOXia&<z3DZ6IA
      zT5X@&U7AT|<|$fOMm1_M6OeHm%2fG3JP7sWi&n<y%*wM~Gkus>%Wy2G{eJ#ez{l?~
      zUW<@_yzcp_aXzd*=ke`*#`*b7CN5%r!hasMpI~86BH3~QvGZs+iD=JdEE|d}zlfE|
      z3%K(OEc^T{_g140F(jBj$=$1&5m<)+rK-jzX5P%zcGP1Vmh!yC`CN%ktU?+s=t3)_
      z6O1M<_ofuPB<|uju4JWQ4env)deou~_i`lUnRglY@hSL>CeESZ3Kq!6B<>eDiNK(w
      z7G&r`k6J{*^l<i3&i3(pXh^|pP7)Vh$ScGJ*rNb}dIuot0Bmpo5`wDy7p0C;1A95E
      zb2dYiF$%E11gYLb+T<a1E0f4kLPR!4+9#3rdv$;@3p|AR%BBOHu_(*IlFSh=^MiQE
      z&3xXqHJunbhuVr!`g;3u1kU<5o<yxe>zc$PJ{<LlC48+t@y}mQnY{vP`BAm(Q1L1F
      zc2cP!`F4*|LiN*g{Ct7yFLLz=3xA2<hex<}lpem!=vS~6uPM55hmz-bns)S)a4n_U
      z$t+U#0Z*Jk*M`{K#N_fK{wSI0_3LcGH#mC?i*dX}r<kYHAa;2UR4P)TM2iq&$ps9Z
      z<(rc&qzZqF+1@UpAM)sj*eQEe<`5odAwHG4)6LxPW{xCUl0qb}A{ZcPe;I^#DZqOr
      z2oVn<;vq!v1V<9#Ne|&ozRP;s{F`Q(>K6?qrnXE%_bKs`v$RX`piODFl)Vd_VjrKT
      z1*iB^?E^I8BSw5oBhQr_**1?~o5!!s<>zy)^eZh!U8aY40m<_bqsoC#VGQ|`ea^GB
      zFB+I3iDTg;?~_YBoRhThvVv}N5_r%t4?4!9wpR%m!#GENHIjw|6p7sq3GqDNWr=6}
      z_f^i)t5QTO9l`#LRvdS(6sne$TFsl5u=NTW)#k-=t~FY@CKlkwByxTyN9$)N{<&V#
      zrOx4dl7}yO1#54JJ8e(dE<cSAJ*OUH&jVkwzrJGUe2E5J!3tcZFkfRWzQsmd<I(z#
      zK3t<K-}4sw0XBZbVf@5{`ZHeT^B8`?JNT7Zf1}60D~b28(<zT9@flCzGp@UGl;<7f
      zSEHvn3aF73yMnXz%KJ)e;T7PFp7rLW6_(o%I^U(8VfI6^byf#BhvE-Dua`I<_GpDY
      UT46=Tr$$e^w8EbA1(nhM7ab?_dH?_b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/Writer.class b/libjava/classpath/lib/gnu/java/beans/encoder/Writer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52d0800815402e6b6bfbbd0e6441487ea55bc2b3
      GIT binary patch
      literal 579
      zcwUu}y-ve06ot<%O;Z|5OZnND2@4i0WkY2`1*sB9Fgb}yQyE8clJag0JOB@cu#FK6
      z9fAjc(z!nOTK9Z>zP$rD$6<&L;W$?fTk$n#iQuYYLZxLUG<(oREp&)3VeHD1tDM~?
      zE0NZO;j1m*X~AC-DF|Ef={=$E)S1c%-T2Wefl~-a@y&0OMXd{!Pu+uy4TUy}GtXO@
      zpIS+-;pK*g|FEC5`j34%a(kJVSIa_XS}4NgXLo<a;8`}+(lC`}W!5-Yl#NcsbzyfN
      yeMfX=2lNOg1lSXq!~*nSlMB&z+{VB&^4#$pdhR-oJjdR@=Q*)76ZXyB!NC{%YMJc-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/ArrayInstantiation.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/ArrayInstantiation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..793ebbf999b448e349a1561632619d8d669b7b8f
      GIT binary patch
      literal 1307
      zcwUWD?M@Rx6g@+`Z7FLh6~!-vf=XME6+{t=Kt+fo6=SL;;IC;rDNEW}vpbdWC_aI|
      zO$4KfK7fzl!x-=Eq9_IHkDa~u=A5~E&b|BX$LFsArcj8Yi($GhTh=ar!>x+o(zArD
      zIyK>1q9K|>D$gpoF5h35p5jv3T-lC{BFr$>iMJXA4BgcR_q+|>6bz}NPib&jw@S*j
      zWj)W3Xb4$XI|VPOFhmw?X{$wQl4-}cSF&Y>@CtR0BLve#4Cfd^nQXZm480}{M0C_=
      zB8muAinbIRt!72IFL<Tlf0a|^jWTy_ogWp$YRC2%W{RDJwi`s6OeywOj&=7@T0EgL
      zzUSIXloWT#q>;>7eKs}9C6RH`aMi>$3^EvXq1I~*qnYekyl0hNQ6*45jv=I@7-ksi
      z05vg!QHGf9y_79a)O;7WW4K8TxmFp)7(?>p0Ak1zz@Ksq<21ftp89)lo0!yBMs07k
      z`C9Gw;0~svm|__Gr(6?vF+-R77BMWGvInpJtF)ah$8eva%dTl39+;TJJV{i}uQBwK
      zg{LfK#Bc4AX&nYbmpMoNF{C?AgXUgxT5eUW*?P+c+P7y?(~&0kLiC?@A*mObqNHA5
      zzd|jcH#$z)7Ude(oBN2K-1q?!xrqZL-}}H6ohgLroTYP)Nb^V_kMmR+4ru7d1;CFk
      z()G-b1}M^PF5&V~oA1<I<5lhuSDsEB;`&=mkEd=JUvO(Hl**L0!l_&-$Z{W$pqyUG
      z62T`v!7}g;d4fj*_&p6LjzOHDL^sX`9HJV3Q;)SwqKD2UGGrMh3K+yAT9g7QdW`2-
      i#U?!hYmk(Cc=Cr%^;@SR^a80e;NT$^eVt2whvlEtBtTmL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/Array_Get.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/Array_Get.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a66241235f4c5214376da09a37baeedcfdb2a6b8
      GIT binary patch
      literal 803
      zcwUW?YfBqJ6o%iE+s1VhHL2QqsrAyD3%CfSLY0DuN@?hqND6+DNixJK$)wC~wEir?
      z3-&{QfImulb|PtuwvlCL&&<B(Ip;mQw|75&0$4}EL5xsr>7M^poCv=zg${hF8{MWf
      zzHG~m)M4On8zat+_GRcGL0BCo-|Yv4jM7c{eLJXzM(GwISFverp<90cY?F}MQd)%{
      z2$O|}uZuN8Vu$fA;u!Vdz$3&9#o7o6Sr1912xAqc<>y|fF3o|cw`EkQ+Ys%VFe=*L
      zA11<M6%fjmVf_#6a(Cleo__q>g?nmLD663`Y;mdZFWi?%W!OO)(_H+dtD0%NASCTj
      zT<(9?!yM)bjtX`=-@-HN>~ItdSak4;F#lh&hb1gC&UQn1|H$;7a&j1rIAtM*urS08
      zyRUY8rXlxKG}7!~RBKTV7THyt|16$c^l3PXaqJ+?>j>}mcpu}ZTe{}Ee2L7t)r|3)
      zwV7{`z&qA%FaenAt1*EbV52-!iLYmvyk~ymN|7pG&Q0Z>moAVgU18=1FO&EUcdcZT
      UF<XCt^8;`mD|l_eZ*0!$FG*y+zyJUM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/Array_Set.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/Array_Set.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54ef6bccfdfa16905f25eecfb7646426047a03c8
      GIT binary patch
      literal 803
      zcwUW?TT2^36vzK3w@ubftVz9A>!lZS0T=twf-MCR1u^s`B?Vt(k__ocGAXkgFCR<r
      zf<E*E^g~I{P9(Ne8(DVtoY`}J=lsviuiKlS0M=1-5F?b@y6+!~BjGos(19;?v)7Ww
      zmmS%aIt=_xW5nq}O@<B<gw;{u+XI7;Rk|flHiKGdlx`F9Rh!lky6q44J`z%&lvd$q
      z!esH^-=#VsvBh{7ag2Fz;1S}*QauAg&O;I@!gy6_`K8}&Nb^-RIx;HMYl==?7!~<<
      zn~Ctd3J8_zsQ!m?xw~gt9`F9G!aX)Bl(kS8mbg-U4EHUHGOQqtX)b=$Q>`>+2}wH?
      zm-~O=VIB(vM+Mv6AK|H0wm*hNEIU{tEc}=3VFj-kXS*S6JTSed?CeJ)PFaW{ERIma
      z>TA8eY04cHjWjnL)moH;WmXmEo5gdBj)tum+YZvaX4u<dKgM6Te8q3&0@*VgGtO(y
      zX8K6*z0BYp6M(5fG$xP-tW{tt@$(#$cg#Jm6h##(`KkO&`5f8uCFZX2GKqV*YeU{M
      U=EEQ0!Vp}*YrL`Gw>D?>H-z@S%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/ClassResolution.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/ClassResolution.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07dba7173e7cf83bb8258e0412e31342818a199e
      GIT binary patch
      literal 881
      zcwU8)TTk0C6vzLkDNP#^80E4nV=&kXl@=jQ+XHA9RpqJb!-~3Rx3!8<>PSuspKH>l
      zi9PHC>_bgEHmp>@R#|b5?eqVgi~Z~OkDmbc@xn)e5D)b@J{4yo?n$AuSn7T{kS3Oi
      z97&yLaU&5~_DN=GGR{@1eG~~VXNj7Z2BFfo^0pXBLbc^2iO|EilN+Un2ZYk0(kg#P
      zSgqYY-t7{K4Mqp>FdxE4NbqXA-3kZ`A?8pbEVh)E?eVB5&9UeuE>PMRNmm$U*H@dx
      z{6uAh{no79ZxqZqhFYFCuImWSjml*w7lsSms{IT2*?JkSp^W>4IoF7JJj7!kj|l7k
      zRfTwhbuP_CYNw48l?;s3-1$4Yba&rMPHPAoGZG|}ooiDMY<gQEp4&E8|87o)4?5}C
      z^yQJV9bLK6saG}zHu-8ieqe-q_I}v%*!EH8xx%X>6nFr^-go}$-w=J_RRN1UFF56E
      z6!C_A-!cJMyY$8qs(`bWnMyoXuzJO8vd(%%_3GN*S40<h;Ncn@xWfa4IGjR86J&&^
      j*l@^a6XbjTTQ9$Uflayv`@lJToPzlim_LDSJI&4?fceLH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/Element.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/Element.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df059b790a4a3bfefc22c9c9ab357f3925196946
      GIT binary patch
      literal 1800
      zcwU87T~iZR7=8}<*syE^L_msFiX!9#UHqun2C0BS(TH~J;J{Uv>={_P+34Agjx)XP
      zkDx!GH@)bWFzQUb)0zILPTzBO-NZm77uh{$-{<2z@4Lyr|GoYPz$H{Q^e{|sdrfoK
      zdS;nh-12;rd$oqmg~?rB=U(8OmGDMGl3_p<x|X+XKG@pjwSXa0+i_f5aF1c6svb83
      z$2F^t_anEfjvth%rlE>gZH9?z7rh5j36-Ciw0xh7z-f5?EyuUETuw-~NksEC*YTWS
      zfgzDEtTQB+39O?ZgBk`H`dj{%T_Q1%!wE8GbKeo%Ui?7&D6oR2uShm~!7yx~7dqj|
      zHeYMjx48IT$};4tjhf}ITf&j+Xfr*pOz22p%)lrN4PP(}9d&vgr!XcZ#to#9Cda{!
      zL&}A2IdtYud8DP93~w@jY<h)tDR$m~hKz=3hS63e@$oA{G=z>Rj8UYPZ7<6fGR$<P
      zKV+(~E)O<i-~ujEjKo19=Bu6KQ7%x^k`m3J3tn$L<5epR<+6cUT%pwRg~Kqi<pf+<
      zK|@gYK2)e^SEK#1B$+dC6<;x=YA&~g-1)}9br=kq<5%iWf){e{hJmsigVZ)xF`mnJ
      zO}}jl_2+^-(4+{O^0Qr|c`U0$Sq@`HAu68Thg(?DP+>UzNtA&l+@^r?n-ZQ@a60h#
      zF<Rv9QKKnpe8rK|Xhco9C=tmCYJY;>?*w|}z|mcgoCRQDRL(f9`)Jh%gX%t0zXJ^N
      zGnixh$nHT){)%McFAV*mpd<91RwZ*dsdhlC(HOo&Lh|WA@c^F}-{9270ZzZfnHD;$
      z?93sFd3sMn79+&qOH4><oW;3_uTChbap6x4?IBnE8<X$Q_XbnMn}4e|`%CXzJH^sV
      zOt!>wBm>;XFxD`QhnT^4N^m43jRfVL%!HA20mb+zp|nn-XG;4hJ#O*p>d6KrxY@?1
      z$9y_WOentDIGQ=S%47CQzI|LeME3((u-fwIjq{+Pjz}&?B$<%p+VA+dD?4rYOpL!C
      zo4EEd{_9Q;Pbi3|M{>|BbF_!~-#R?}bR>QO-$r;d!lz_6I}h-48#on$>5t|n79j_1
      oiLN2ZO4OZfDRS`&%RT5k&K}kN($=AD+@UP)U{x8pt1$Qe2PY+1A^-pY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/List_Get.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/List_Get.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e5d0d89452ed4cbc8fef3eb7361bf32a26aa2a4
      GIT binary patch
      literal 626
      zcwU82yH3ME5S+`y4o*VAKzM_o!3h$E0-7M22xu&tpim;)oXkazEuAm$T~r7PK7fxx
      ztS^Zu5af!Ty}g;;x&8cl{{V1;9TNoxCrU={z<=`Hfcr`2@+3?jxO92Uhdfc4>xoR=
      zUvp)m#BeZ+eK}4TjB}9)b-_?{T78C6mv|P6n5&@-gQ4Mxgx`#Y0hhOa5OW6GOG7{I
      z`%>ihNwK6JMaIzfW(}U&>@Zl*QYhY2z9b*}&R^2IoFzN0eg%u<Hw^|nR23|d<%p{)
      zR<LTK$*}#ezJ@idGnDmAT9D&uYV0SG+fz~`QRjCh--w|Vl3{m-LHbZH9m$YiiF_mV
      z=}(Vx3HCsKk)Hx(v|5TL-CROOSZ=?f@}i$DiiR#8qe`(hCJ@#M8RpTLh`ZFXKv+Gr
      i7i{|t%SHUOu=LX@;hApJ98)K4@@xZ}dis{uY<~kmFOy*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/List_Set.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/List_Set.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca92bdef0d56aa6b67f435580391e0cccac29662
      GIT binary patch
      literal 626
      zcwU82yH3ME5S+`y4o*VAKzIfO4Nj0S6wn0GL{M2YMxjKuIfaWHTRLChyQmNpd;lMX
      zSYHxRAjlOvdwVmxbNl)A{sG_=yCw<@&LA1P!{8}!LmniV%abU5;L_zWAMr$Gt|u~e
      z?{j6M#Bex|eKkoKj0=$nb;(e4+I@ynk9Zb}Sg4^4gQ4Mxgx`!uA(yv77;^^OOQRs}
      z2U6tsX|bdpMaIza<_(_N>@rx-QYh}LK$4FG=P&79&XV1Bzk+4*n}$OksR~xea>i8^
      zYgjkYWN7`XuVDk53}ro&7UX!E8VAY1^_3LKp!>U$Z^Y0F$*?!aAbrSB$1>vABHu`T
      z_S55Bf_;!*<flLxt(KxmH<yqRmOHPgyy$0(qM?f?s8Xy=2!wS)hD9`{;vTgu5LS=u
      hCEI?(Y7svzEd6vwc&^(tC)8=1Jln#yp1z|st#5|QlaT-b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/MethodInvocation.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/MethodInvocation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bad42bcd117841e2c566e069486782c3f1eb4b11
      GIT binary patch
      literal 819
      zcwUW?T~8B16o%i^uPw_Ku(c>CA|FC239H6v0)!g_iLr1~Qxfi`?W7Fp&YJ18#GhpX
      z7`^ZZ_@j(xr$h)J)@*k6oZ0t0bKbN2>-UeJ0A8WuAw_uE(f#m53`E$JLia+cTX9>O
      zP<CY`we5xb(jLd{4|)){gjKQjkRhy&s@fd}1V3{12O^S$V$Icbh3<rPYn1M65pvr~
      zE4xD|S8l&vYY;N;ne8Ku@c<qILb|fn7z1G<Ko&W|WKC&#(2ttZd=kyBJBYjOHiS`0
      zez}>k$ErtoT^rT>P0QS5LCe$qYfk)AqpYl3Vc6qh<v!$LqB86vk4N0VAXe=>X4vy^
      zDn6Td65uK32%hTgMxX5$XYXhn^H}ikoG|xKbbv)H5wflw!sZ<#{GXkpWX?GUF@*UM
      zcG!MB?wgj}Q^{P*H|MpHlwyI+rTI@IOeLR*qZG#;^1P05w#RvjpMLcl-|Ocne07>h
      zUMF1T8)Wd7weOe!Ob^v~fFj_c5>tt<hbUh%Kk`Y5s<d95E<UcFp-{cR>~}oN;tK9N
      W$rfX_uYpT{!6hu?g#)j+n$<s5hsCY{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/NullObject.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/NullObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ae465fb6979d5985235b770b8b13343885cff06
      GIT binary patch
      literal 709
      zcwU8&O;5r=5Qg8Se3XKssHpgXda;19deDOyV>Eaoc)(!dt-uCL%91Rt{w_~O5B>mu
      zlyP<;U}BUW=AGTX^UUmge!YJHIL1x_5r$G%gig<Wa-9};#n9oRJ?L=haG&?N2!>8Q
      z^!?jbkGF#aq73`9{MAvy5I^^X7hEtHcCpD2y(XUp1IaXEh%;nrp5XPc-{SJlZTXxb
      zTN|`pzv)U(oyV8a;L#g09Monto(@`Ju%4wC@J8TDnq<%ZtN32IWTn_Nu}G~1AyQbv
      zN&?FaTmKfNk;5uOOgCc4*)?tTUD0(Kf%HVT@}S-w*9OT@m@x!{sjXGfQ8R3&k;fJd
      zWowMp7=*ITZ#=b=%=E2?3W#0MnxQ^}GFmUi1f3jGMj9)<!hE450*hi?UmhVvF+DPn
      z&XF?ABQq|(B3OjfDrXm>Z^#;$5-k1a1WBA~N^ayFQ&hHwb=^Ea;a!qPxy&-rHX^@h
      SXXL8<pqUezIiYRqn!-2f`ITM(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/ObjectInstantiation.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/ObjectInstantiation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c13ec149d956381befbe97fd41b2eba3493fa6b
      GIT binary patch
      literal 1224
      zcwUWDT~8B16g|_gEoA|%fc1lq7L~RjD<Gm!2udI}f%;Ib0iU+*qz-9k&F)m<Px0Nv
      zXA{L}qCdbNWxO+OB#~mtW_RY^x%bRD_ul>W`}<D-i`cXfVpwj-wsYjZb)71AW#DjG
      z^XlApc$2rdRDtuXdc<q0C<En6C0r#uX(7Te+b?mavtbyhHQgX6xh>9++%qXnS2moo
      z@`Y@yGsFr)3bn~FmOXo%t1v{i2|9r=25nfd8N%6IWdIDrHlm0zjO+=?OYK&b`_J8K
      z(_G}$+-Ak~g|@rSh<YsohLyd3+<S;7p0?!2+oxI*$G%X!tX!W&X0qpjzSL1Z=|~Xa
      zt2R=&#t?0ARjf12WOL``bve}66S#p13pW|2`h?n;#1unZ1TSPe;B`}|!#L7ZW6#9I
      zF+-P|hG;ssZQRirmI!uQZ`8X%WRbU!W0?4_8XI$%Cm>S+hP57jyNKs7SFy0baOvNZ
      zIPNioL|sc?vayW&q)K_6LxxeR+8Hp-{edR7%24P*=+%W>hkD*(Mwd?o@6%Lb<#lV%
      zknY<_nwhfK_G^4s=y6Q-7_$YPk2LirOn)hrMh`gcLbSIKr|$q+yJUxGP2|7QJNE@c
      zpG?dMeTPlv3L;pg*oTAwjCZ1O8A-tGt`I7tXB1;y%nyXGGfVjsjPK8%;QD){=91IN
      zO#U;5$a(7<W~2BBhn&$LxO)&zI^}~%GE?qYl(I;+jxKk?SE4xOHA(nDf%I&^#wKap
      k!V(_iDXsf>Vt7t>82sf~BL0tvUlc{GVck@rU=TO{0Dc@Yj{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/ObjectReference.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/ObjectReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad8d84eae5d390fad2d3383e09183732c4c0f26e
      GIT binary patch
      literal 943
      zcwUWCZEF)j5Pl}T<kIWawr7m5wYFA!xoFRP5W!YKr9vUJXe5PxyCmDVCE1hB#^TQs
      zw4xvU0sbg)Zm*~)F>)|FGdJ@*Gtcg~?_a(GXrSSuK#2Ql93Lldlei-iHHwAmrahr!
      zF%Uzc%qZUP9E+}bDUO8Zf5L@B*qGL|lRJch>=9O*6Y6v9-QE_Vv@Ml1j|uDH)aqKB
      z;5_4;hZ)TIaN!eX!diP4gmXTMD0x^!;9`leG6l`Y`K;Z^=m`r=sl?uR*b(|w(isRs
      z&`i6@pq*%$#b-&!yp|(EW74RT)Z;~qN}TMnDBg*dMzl<#nRadB(g#_U=9SC1#ww*2
      zuZ-&qBzsyMWsBbMv5GZ9*`zI_rRozZVXbM=28rs&d3MWVdDea0!fk>pM?1qe=A9Mp
      za1J3N7d682Kj-jK#~r4&vlAYMf0O)A<}ka#k_FLxLsNEVty<|=cg1s=X<zw6)6J}t
      z1>jBiT@&lU_s?E|eHUf6vmCwPxWMO9^a);6|A_hM1LjY$@ZOeI*amRe-e>!OTecbK
      z5iW41nm6)!5wPARCLsPU<H{NQ9+PHO)p~F>Sk9qWqEp=bjEy3Gad@`s3FAKf4ZHdi
      OyNbKmwAiujx%UG*`Q?!S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/PrimitiveInstantiation.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/PrimitiveInstantiation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dadb0b0cb39f6a258a109eb2764fd3e1218090bc
      GIT binary patch
      literal 949
      zcwU84Yikoh6g`uT*>t;Y*QoVTYac$ECgS3kQXjNPtRjR^h(!E2NrrS}Gb^)`^mhp@
      zQa|_u{88eaNgGpA4GS}O&YXMB+<W)e?;k$_Jja%g9K%je4dO3+$m6!)DvO2cq+Ow7
      zk%+!fCW{ZX>`Nnu;)BWzS4MIpQ{^Miur(|9U=%Pce7#U<@V;Ou)m>V`RWEKDEmiLo
      zk%l}Oh&R~?U?{wnN}4_LDNoa<k?j^kzD5rS;2{iA!~%m?-fqo-VJXBl6l`=ogpUFt
      zb*V&S&~FR<k+&1~sI<eA7T40A&%wMok{QEpeO9ek_le4ilsG=TT)u@`mx~RKwKSq>
      zxTbb(mj7k<$+9%nI*%2s`nb=q`d?~@2biO3oqQv$9m%Atg`(~{L^G_-@M0)B>VfK7
      z(}y7*+0K?Oz)8`dnGSSEypy(dD_6JVnYF?Ojl!e<Fo(!ahN8&Mg?5i_im;;!==7Nw
      zmbX;-j`>RU6pNLor-;6})Do>F<Z0cZb(fM}U=c5IgOK%68gAki;G$)cXD+%;QI6s}
      zxO;B%p4d5iSFN0o#R;M_-1G3)CUDn#B){+Emq+vo`8Bd+^lgkq_i48*zj}sEHYHZ0
      SSG=7N^T%TTSnRROdGZJE=Gk-r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/StaticFieldAccess.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/StaticFieldAccess.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ed966c546447c2610d08440eff96218e893dca1
      GIT binary patch
      literal 972
      zcwUWC+iuf95IvhXahjUcH4v_)7cNblrlvwdT&e)7ny08Qu7XmYHtrI(vK?eQRD2c^
      z1%U(~z(*lw*A<l-AiV6(%+8sab7p`1{Q4ch7VeuUFl>$DiFd@`ac?MioO&V-#)l&D
      zL?|K=XQ}6BJd;6JitzA75QsE2VKA)Eg6-x8!(0&ZG~MHoU~qaG67qONbrTtno>IbV
      zRXa~8Z_8L_9jf1$PMwZ4`wYeoHLjuv%R&Vg7>bQ%e+~=_7D^~9Yte#<GDUha7JHLu
      zD3X0X4D~?cfQNmaNaddfjqHs~86Nazah#Hd*jTYR-Z^8e-0m5_>Tx17LAZpJS!?{Q
      z!%LNw5WNa+kSOEfkq9yqOAPjT4Jue>C~1u=SS3@dStZuDE!@Ff22-ZH(cA33R_0(H
      z>u8#2Ff9GExdj(3DyIi#*#5&lUj0|-KrN}P%OniTGbocp{&<oEqAS%Z>QfSLDlArs
      zUy*)s0k&E)S+-iSjxhQLYU@?<2IQ-}1@|-N-PQ?e?#2o14?5AI(}6+fLpmQ3=rL+|
      zf{PSc$ziyJ%Ye4(RGw+;3R$YnRa`r56H)U5-R+ihz4Q$?2Sw+WKQNpXKlj{^sF6>X
      p?Yp0__67G!I6p)Oi+D!c>0krT^$_*E=<gxg^wOr544WG3{Q`^b=am2e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/StaticMethodInvocation.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/StaticMethodInvocation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..895d02399c8a06fa8bc94cd0cfe0f77c109d55ac
      GIT binary patch
      literal 988
      zcwUWC+iuf95IvilQ`b#h1LaamZ$J~Lso{lND+;QLgp~FrC@Afd<E+v}@fz7qDn1K|
      zf<S@~;G+<;>k3dC2rs)cvomw%oZ0U`zI+34ANLI87#{TH(0k*Le6P!WnRr|VQIE$S
      zAMlXNH1S%gpNe3gr^iw6r5r^8xsfzbU|642yO$XZQ^CMbk^?{F3{F#*41C$A=CP3d
      zEe12x09i(9TS$>UC4lP1+>4P~o1w5v$R_fzER-?BkgwL-Q(&02P((>ta~2GgDAE*?
      z9}L4Tk6-!Sfu4w14cdMzlz$d1q{kv*c+{Lka=bvq$&&nJ_c!kua`*pWX`aL)<y0M$
      zK&#ci;k;H^F_A1|fu<ToqGw={!9K4;8A}XBEp!<xq+%wiNz~UY+{PUSLnM3Q+w`55
      z=WrV9s2Qj-EdCSQf{Qw}*7GuKk6Fsme}xX!rb@a^%&;_pF)7rFhH=1O2(^!e@j7p+
      z23R4IdHU5k*lOKm*=pH3!stV&{hQ=<$X9u@?k7yU^;1;bjZ@g~b)rM3g94oo>3mE@
      zPf)=YE>UDTE5l`60kkzw?U}Z&lBHm-;rba&NZ>iT8+GSK@hfh2^3JVRr{FBNGSB^h
      t3i))|E%zf<KjUr@=ZDzA9G=mNcCdlxdWiX~>8~Lg^wJ<mhD}}T{RFy=?=AoU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/beans/encoder/elements/StringReference.class b/libjava/classpath/lib/gnu/java/beans/encoder/elements/StringReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b0b7d794c940529ded77b9b436c83a32a4c1774
      GIT binary patch
      literal 867
      zcwU8)*-pYh6o&tyNTIeaxbJ&JNvz9-CT<r7uZS07@VdZ=W9pC$MW4$=WAwrY@S%)n
      zMnvL9CT-8m`OkNj>Fe9`3xEwQ*@!XtRoU>bf}6lE@j%vnF3YtFS3VE<HJ4G{FGNbn
      z>M6hAihSHgoME|BQ0~KENYqU@LppEtVIZqb<Su#lgcQ*M!%*g@d!@(_KO(LJ3*9bk
      zxC~ZirI-RkkBcrO7<%(U@{`7OiL0}q6mp%YRt~~qpoHEx5986Ls55NjI~D$|TdFZ7
      z`E8-ugmbGz#0ycNsI~dbU$k?rQq({aUELVPxQ#J}sejcjCNN3;m<%Viqe~H1s05nz
      zFQfT=SP2uW7-l*Y#*j49oUG{b=3LC{*`_}a+tWLRT0@ojvCv~2{5GC7oda`p9~S*m
      z41M}i$g;?`k)(HucE^a(0-V)Hda@7j?r0Z7FTHzA<T~QmB<&UvfZ-1{`jG~VH9%BG
      zYY;<CW{%>t%FCvQSMT9HVZ_20)-ld)xY%h!dM%`fDNGyWObdBPU#+sUPncytV0%=<
      QejChg!R!`n!Ne@S1J!%Ns{jB1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/io/ASN1ParsingException.class b/libjava/classpath/lib/gnu/java/io/ASN1ParsingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a17e9703b875e86059bda02dd5b1d0ed92a62143
      GIT binary patch
      literal 453
      zcwU82O-sW-5PjRGiN@M$YXxuWsjbjZ1wB*>A__vNLL~QXT;fW)k$i}M%TvLFKcGLV
      zIGaWfD!7MvGdpkIo886o{R6-d9SaqP{ZQr36Mx~3jGYT_GQ8tSDph#(8i?mi#>#@h
      z(EeiF+<rG0%yX$^HfE@Hdp?7489xXcRjk)hgUQfzr4o~THWkS|pGJbA<;DSze4a>M
      zmzPHNC{u<*_rFy}44tl9Fe0u($IB9Gk9xi~-O{EF+GUo8+UOUJ!S>=j3B<M3u6utu
      z4D=KZKr+y$LK!`UqD9pSAtS8y=U96y+BQX-P=Ba_V{A}XUy%qm3AI3@6c`gzbItzI
      b9L=8!r^Gxf6n0mvQbA|iXcgw|VrJ(P^nzK<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/io/Base64InputStream.class b/libjava/classpath/lib/gnu/java/io/Base64InputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6c30791de6679618354564aa5996da7cfb04759
      GIT binary patch
      literal 2758
      zcwU86?Qc_682_F2_GRS`#-PaC+@_#gw=t1XPy|^AjE=&9;c!ERyY_CoqrENdEeu8C
      zTjE=Sif=)Tj;NV2XvE-V9BPb_L=!*x^3_i!`b87|0PuHCyRI^VZSFbGInQ&R*WdH}
      zc=gM#0j$PJA6x=8Lw3G(#5iiSTItq^ku$?>Q9F}&dYr6jq<qi>mQ1s^SxLvtmazqV
      zk@lXg2g7Xw)iEWOH0+^PaxHskgFt0R+RizK?erSSyy-`Uz~=Ty$Cj<zI=4r=cEon>
      z>fXI)Z_mC5diOur*KZ8O6XxL1ur+cxnX=QFBiWpjKYDER_@j5NzI#pE+VHyd_cXN%
      z%qbc@xVwFefaq{Do{a(?T5?QYL<Ka*Ol1VzW_pkp{iM=1S*`;S0q=d5Z8@6+7B|GE
      zLn{kvLt`)Bccc?$0B$VSu@J!u2rSi6jRlfguA>rjC3UNgc?GIYM-}D^%!^sJxhtO<
      zFthuNfut!Dla3q7UL$MCbMaDhhOL}HZS1D$X9iuCEfBn+pNu47#_6ZPqK4VoZ<MhH
      zwvNWljAOA3J~Rm|C@JbLaeQcDOeH6dJ7#+}YaA~#6+kOi`*4>))%9j{+>JE?{vp$m
      zFBy~8K+6F%W35bGn00A55NYfUFiDGjxQCFNWvV;x{KwV?9rwwKdXuI-<P5WV4UJLn
      z{eN`-z9G?H6To`3OWhG^EGkv6#}*x1v5m%#Wi1H;AB{$%1+&|AMA1cI>Q5B?iONSY
      z9XqA>bDVU^7g`-qb�JJF-SM^_OLE59En5H=PxzpsbZF6uIa_RN|vo$4cB0z=P=b
      zp|89UGijD?ZVccdJmSN{(;_O@9m7V}h_m^09K<03-OBABW}LZ<5tnFc=xFShi5t)n
      z2SfB(cETL(9xNm%>IbP?QbuwxolTjEItjFva9f=vZ3hs-uuP{#pxp>Zy)qMn)ZmGy
      z^ENXgDCy3mS?kJ_kv-g#&t%eB$4sa?vDY+t%T&lMW~D4X@np@M=_r9-Kk^JtUDVlW
      zr!F`1UdtV}GSca;#x7YoDichqVDWsCm61Y$o^(DNH#v<Y@@F;8Dj5Ol`C85eFP6f?
      zl?r%r!OwF5b4q8OADdax^NKqgnR~TtckZ%!906Px@suFn#eI3GX%e@Dv`hZau_WaF
      z9LwZVBbV9>N=rT0rL+w6(Ssed)K9$!sO2Fn!^60ZoJ9p)xE(71MG+*lRDnCuKwcy7
      zG@e7s_IK3g;odm~(Km(WzR(0#O`>fQ>ta(_FOT;=yAYewrzWv^=X?#9{JX|6r@6%)
      z)F#l;)G~q2zOd#RyY^4>1a^E{a`O%v1X2t*$&k}@#-<|~G$D&s$RW%<0!O*LNrlvj
      zU20!|HcGCbiz~_P#%^kCVi<eKar3Podzn;?uPTa^Ko2$+liAE&NH5&yOTKv3%?V{o
      zFK~<L5wbmIC8d)$QYsh<UBnVbsEr{YN%xxbt{Js+6&jwT%BSes(`D*|W$O1`uin+p
      zj1wuMn<{J1z~ega4r}A$ULGHq!2Z6l=kymi@Yb~})&8L8^aPBsH|RZ!SIJ-Y5j8!J
      z!cSVS;n%`%55IgU==F?B#Aw9MIR0u1YR_nb&uW5R--#z)*++q@c_)2J#-n7uFPHHY
      zWxOY=yh_HaWX_e#NC~&Pej(_o+Bk-hX}5^O8NY5VehvJ(rV#3@HYYLk&8!fmj(1Uc
      z6A2ki?Kp0eX3qRavcRYaYBlGsUJhzAg*mN~{~VM2JTdYDi}E5H@f7Ot5=-zhhuUeP
      z>U9pzH`p|9;t<Z@2;L$>&a#|u;~Bg|?z<S{{{x)Ehj<T@cpu-8x{QzTCqBUyd@9_y
      zAOiSIEW|~z5)&eXNzsBS(S}Q66TT81_*!hkiz0?^6*#sR%0Atiq$H+=qDBZOm!kG6
      zVCj5)SfP6fbtXx95E9GTQF9fZZT8gvA^!3W5uah-6<)4Y_q>~#E`^6bluZ&*nk0fr
      znyZXu*}&H~O>-Zv(1Aj;zpiT7N2YCs1<dD2~n2H9}fWrR5coaa3~#jk?C*9Y<w-
      zz=+h>zIOK7-}N7tv@cS!KXd(sbN5%y+MhWke^b`#6dKE?;c+}lJ1$B*MoRj8LTP&Z
      EUr^T;jsO4v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/io/ClassLoaderObjectInputStream.class b/libjava/classpath/lib/gnu/java/io/ClassLoaderObjectInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5db7cc96045704f3754a7a39db8e41438b475fc
      GIT binary patch
      literal 881
      zcwUWCYflqF6g{_;uG=o4RbJwwRn)c^8$Q=(8Zjmth{5#xw4Ib8+nHt`ME{j0J`z9h
      z1Nc$IyHmPUDTEI@bMM@9&$)AEPfq_F1K7qh2RTA*pp)jII1)`|n(aVDk#9s_hI`#Z
      z*^58wQ4;URp%g<0dBXYxd7(^L7=E4VC#?Dw90)y_CT<Z5FO^pDYeKW;PY9=|T9-7|
      zJA~r<FFiSmmC=!d65)2%zn4`UED$P_!kDvd!Y~=dvY(*{`L^lHBIa<@gM(Xywb|p;
      zJ1$ts!#oOvC0}W|n+&@${4BbGB$R#A6G2CWD$UOh^YMX-2o3+b{<1GQ#ZxWMoPpql
      zGBUxDv>b#dwJDbvr1YRw|KGTlgZmRJ&QEtuykio5ZbcCfQFTyZ@tMwhc!Ujt8*p|e
      zpVwk&uYO?&exrSpggv>VQXi^U-T6h@jVil4$G;@;#}@ON<JiFs-d)ZLycgkNk>gJs
      zr`S?s>o=Af&wrx)-8S6eb<vjIFv(kPc!y=qDq}cSunO2{4eM5_WW`dcyV&?g>YkN)
      m#c_^zxA6nztzUTXEfXqOf)7?;Wemy$Ts+1m*ZGMo{^?(gf7iVL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/io/NullOutputStream.class b/libjava/classpath/lib/gnu/java/io/NullOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f42efa75e7c6ef82e52d577da6cae7e4096ee873
      GIT binary patch
      literal 710
      zcwU82%TB^T6g@**s)(Qn_>74=#Kgu2y3n}5#H0zq1%?f)f<?xZ)|8HZmn#z&et;ik
      zyfdwYAj%|j&wZV9Z|>*U`v-s{Y@0|i>^%6wdUT#0iw9Oyc;2muo<!7&Lf09Z&>4z9
      z)yWD&`jY!Rx?<2O`)vmOI=FW;(6E?=fiy$D!F{(WhFv$jbGn|(P-p}_$7?$wmvNHR
      zqX8c=>^A<}<AT9>33(*@E4CcRy7X;IS2}eWr#f{8lLA|nwV>Z8>$yI)^gS^e5ca%a
      zL<*T!Ai|z|!{zwW^r%C*1NJ~{$d@M1P}Zc#B4mU{^$iQJ<fM>Ent)?0k<G>pgv*2s
      zIph;^P4!c5ns}m!<+zv-rMH4rH7|$4Jc-jkCDsy&Vj^MF*Jnx8lteWy{*sVhiS~&H
      gl*!Ww*T<JRQ280MXA@Up<Ew1UC!WtFZmO=WZ&)i^ssI20
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/io/ObjectIdentityMap2Int.class b/libjava/classpath/lib/gnu/java/io/ObjectIdentityMap2Int.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80de46198f3847887b49d7d6b0a5687ba13ce996
      GIT binary patch
      literal 2650
      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
      Oc=gTt$xGgD4}1sMX%033
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/io/ObjectIdentityWrapper.class b/libjava/classpath/lib/gnu/java/io/ObjectIdentityWrapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bd975405892d8c7fed9323f0d1b61e04c728ace
      GIT binary patch
      literal 1122
      zcwU84TTc@~6#k|y?XoTxD+QrmTCv&-P(ekoga=I;n>6xJEYbL~Z71!JvWweY6Ml++
      zz$YFw(PA_)`s$A|p4pBSm!jG1?m1`9`7Sf_<LBqE09H|oA;gewTV8SBd~FtmUEFEx
      z^QK#Aamy9%(Vk--9&#s!2*b4B(lxENYGR1mDu`EuizQm!5|(hc84}sE%egv3<gwl2
      zI>NYMAO?dWoXyq8!7yoH3{i%us<8M|@1Vh*U9-{UlE`kF-MZ-rnX6*N?T8-3V)eg9
      zNENdgw2s;9NOGUDqGJy8F<k!3W9_Kt@&f}4NK#!WoF~J<k)|r-n!obQZtt9i7ewyb
      zHP;bVn_(uKJJmC&(wU?g=7Qx%p6Ir?qhXO2M|#^z=|~|XxAIniT_NY{vLkCChdc?D
      zQ&x*%d6dvI(@H=|!xBSi$tPQpP{jbkZ?ba{bUNWx12afSjJp!!9>bMv<zJ-hM4H-`
      z0~-de;W~p}vpuKD%R*j(g^^pbBJq$WzA)W)I(vDoD2h-NgGS$R%E}1Q1L*k^dJ7*h
      z@t(2}rszBAPp;F%2K8=YnzGqJH!dO$_|YXomFQ$iVXpZ(pyfYc;uB_%hlo+XUiOiU
      zL61VBJ-}5pzo#@M3*W)sAR%E2-@xei7Gsg)Fg*d0yJYDZ=4teg$mCFDaww8EPm%1<
      woD`7xg4FZ)jT79IG=1ET7y4Mv_i?9>wfKFC`*`p!;Nayc2brORO~32mFTc0#82|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/io/PlatformHelper.class b/libjava/classpath/lib/gnu/java/io/PlatformHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76e89f2ce921556740c1cdd46bfb1a69366520e0
      GIT binary patch
      literal 1866
      zcwTi=TT>iW5dKc~%5Z?qa*14GjKO3Xl}$*Z3Bf3Cj7(f$VF^S;$?S4ihRn`TGqVZ2
      zS^f*K%J5*7FFZu3Ldpk!fIrHz&)KQH<gyQY`t<p_`|Iv+{{8Roe*oNolfXHKp^8(>
      zZkx}|tmS44wi#@?UUf#;JHksK%8*iTw&_%|^QCQ34j4Ktf5mb(+!sCrTcx`%c1+I<
      zT#q50Z{mxAXE~L73|$RCZp$PP%aL!#47Q5R!1HbQIxc0*8B4}=etmZO$$DXWX@)`#
      z3eCBWADB+CY}z#up=N$zNKTb)%dvv{43W&(GD9@yZipoM84|8P?wD1f;Q|H|c(1Lg
      z;+`LfD#s9p89FN>D0nXQ9_%q(&Ai#n*qg2-E>ewfA{s8?asnT;*HA!?4{?Q%1QfgT
      zn+*ML%Wrgm;UkV1;z?X%=-#w!G2R%Ud>!LRASo+-%<&06Wr&w)UemOiXvP@JNlccb
      z16mR{D1)4Adxo1Fok&XSHV22s(37_uF;}aWgtugtY#}%4mQ8!v^elM~o$)C(V+|2Z
      za@;|hN(NgN31KAvZXuBbE|f&Ya#pNhYteOs0x>FhV$<49;!9d;RyH%u@ij;p8tv8#
      ze2IO>j8>EQhN9MF)VCZnAW_6^;Z$S<ZQs!F9cB~AGxRp2rKZesAUuva%#&g)KQ98h
      z%dzFgNXSt+DVl}lOOg*PkL2!pdm7ED$nk~TUWCffZiTZU`8D(^nXGU;k^GbN7_#s6
      zMAdyx!?WxbD8mmNkCBtsj~olqx`cI(r!eK$R4e(aQHFtxVZ23g41Kog2S!~;Z6r20
      zgyh-T0?<%_l>qVSZl;>0RynrujC!h?y9_Z|iw3C`-I`Yx4=uUx-u6X~%XnNS-tw!9
      zV^GSJtU)PAb&}}R*%{t>c<(|tMfH$<4k?8`k2HCD$>Weu{wC9XXBbG2oZ|gok%<0*
      zXygQ=>8s>CLFO2l$SL#_jHj<F&%`k%>YiJFs=S}k|B&J{fqvY?Mcl$Q+(wpO?&3N=
      zS13@`JB`{|IvJfY{V&{Yrim+OJ%rZ*xQ8j#3h5vWeo1KgwxFl)pW>?na6SEijD5tS
      zN5>dFKrC{kpW<QccZ}<j>lq&H<BA?7Gc|dLK|Lm|>`Qdjt+hkM;zyCA1`%D&&mg{!
      z(1$$rH;WO>V-yAAzCe8~lBY<X$1P+R=(Rq75?4remNLrj`z4{N;oqp_85V~RCD)dM
      zngXp;zfV=dfqGDwFh<K;QmY)43Jz1xgmV~B?Jui2&_I^=U(4OCWV1!hSk%n37QzD!
      z!rx;!%sPjtdK)30tNWDv3~LAI(Ic{f=*B62dZoX5Eq6d?jfV81CHF`pcd4<tNkYrF
      clp<PIyvt|UY;vtD;OCY+sW1<Ntx(nf0mK1ub^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/ArrayHelper.class b/libjava/classpath/lib/gnu/java/lang/ArrayHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48181d048b107f87a072a978773aa8622cc7de16
      GIT binary patch
      literal 716
      zcwUWAOD_Xa6#mXkr`2kydNW?Tszk$1JQ5MFWWs`2u(}-=w;3~xR@nO!R$^t-jSXVq
      z2lz350?wT_h(}_QIp4YGp7WjWe$TIuPXHz`oPa^--S?}-vN#n*Px$-A`7jjcE7CiX
      zVFEEi_Va4JRF-aq5T8-Ls>~70{OA@Twh-*f6ig)3un;G-I?9)8)x(kuH$};lgq#z&
      z!rKy|(&t7oRyj~7gns8w0n>ygH}ES$`P`V#?>OJZO#iHmZl^$KOCyJNLPGhw@@#$Y
      z|KqC!OK1&*_FpCl$rC9;_h2aq^}~KNXeWBp=tDm{C6BAZW9^;!--HrK@y{Dm8$mU6
      z<&x6IWWQK2uE#LKFEXJ&lQTA%V}egbMq;!I_h`E1#6XH;JSvW(nPa-%z?fl7q6Mvu
      z;d$;h7&C>j2V{*aSh1Q}`$jSqk#yA?(SgoLMTRTge4o@NH|WaTqcz&*><w}Sdvfd!
      zJ(sZT+J!-O;pzJA#rS0JVoAUv$7L3@iZ;&s;6&So>pUOZ?8Y_&J)93P5(Xotp?CJa
      Bk8A({
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/CharData.class b/libjava/classpath/lib/gnu/java/lang/CharData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44ea768e152bb5e121da587945190c0d6f8fb9a7
      GIT binary patch
      literal 41184
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/ClassHelper.class b/libjava/classpath/lib/gnu/java/lang/ClassHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..484c4a8ef80dbe99426977bb8544359d25d22d2f
      GIT binary patch
      literal 3642
      zcwUWG{aX}O6n-!4?!Yo2qFCFiWtlAqQf6jA8e%31NI{yJ<*+-z=&*~kv!rHeiK%6!
      zshRd^R%_p+29agokA3{mZ~Y_nbM)Ss-DQELM|hr{xgY18_q^{p_s;MCetj9hZMdKy
      zPax18P1J1F`n4KUi+0yEnp!-*MmPI(OMyqAbZlu|=T<#z3-~qDY|-tWSR^hmt=ZX-
      zunn`OMeC~*DCF{LLpSAWL4DXXqK3U(AU{;GUcl2Bi|7hef$3v*YqWR|ZT%=hiHd0`
      z6!6tMW`*EJ6<+w{+YA*7d@`mH)msz2ox0Vbb(*?BS#vC`nd>#nkYi`kk9?Fcpxt8-
      zNU(XzGzq!9Temx`L^Q0~dc;|3)q3gn=1}tlle&tmnReSUqTO|V%*I>=a|mq0ZWY(#
      z1_6ccU57J6Iqd~*RB;pLlkRLJuFZnbWRo0T1iWEW+qH{?O#<yl2$c#d#>wg0saS|A
      zfg<j+o1zhY$GR?(7HX<!l17VE)ZkWX8c%e_o&6+>i@Cykq7K}$Tx&|oy?|(9Fedp>
      zT(@L?lDs=rEW=%H@{O_HzF1U`+8sOl=xxS0!qVByMxBa!+)c+uyuq@xolbo{qF{x<
      zH522nOc-WFw`4vIDpsPA<z?#8Zo9{^Vxr4&udKV(ZszOd#2OV%xSu<<zCK+7uf8f7
      zQnBg^&@7O*X|r_Is$!iig91C&p5oBEO=conNrG>TC8F#r(aCO{(j(UmfnrkBkkx*R
      za#ZN1tSL+HGTF2>u0dT99tK(3NJrz^R>dYfN;c?yLczIBKQ7bMl!C|DSN{`C!InvF
      z-mcqzJdP5nVOT{3vSJu@mCoX|^hhSLIidg0qZ@{To^g55w~DP&UQgWErOQ30ie5xX
      zy<zK?X2&dnS?P*$Y?@N@^w<ZUc-skQ@~VnBY+2#@4trt~XV~Z$xOOVQek3qg7T``5
      zyYM8-O5dK)%((2P9ArNt_dliLY3w0`q^C`@*egUMyCUvD$Yv+q7tdgyf@jlR?xf&!
      zM_fi75U2=knj9_1lndZF6$fNn%9?vnw-Z)WMwhf6Qt`aZB43L{q>_hKyqMnEp5U1p
      zmVo5WmsK3WQTC}FOZ90e7lw))bFx;CsW^@k4Ahq(@yl{>bycNGzAfGE*GvNG&2@9J
      zbYz2t1xmsR%i{5qDMTeTA#mN)^~l<g6-Hrl)fVe7)~{QZ5n;8fZU?7t$m*+XU}rz8
      z>@0Ciy)MOgU&RMVx^<Iot8}#4xw|Uu{KIjl=eSir&dCZshfh>|Dz%oEntMk3x>DYY
      zQ&gp+1*QzeldnCNu)_LkLtfvdS=aF*X@hyZ6Z83%k_W%M{rTpXcR!yB3ivNS2mBn}
      z%^mWu{1S>b4x{)2N;7X|UpNkC^0&lsww)$tI9`TwX9aXJE#s<⪻|Rau~D5OnuIz
      zYofXva1E~Ivk(DXmoi?QGA^hbLhvih8=PRjGRwXIH)DZg&nrJ=zn%akpjnlri-vGZ
      zeK7AG0vW6fdbSLqddyoHJp64X3+w2ujfp+rc%J22^Q&$#BuCS5JC@LQA@0av{ENuF
      ze75D+Cs8yY1hFn%%b(iQqyI?UEy2_9Rt;Xl@{LtPxW^mp*)oh(t<@adw;_M2CyC<f
      zvbAzB;1T7X;F;0CtB24shOU-)fGr$pj1*?35ft-%Cc4N~H|C&+Uql9}-b!5CPzRID
      zY{Ocf(lU!BE<XM*aD28hJDEiQcRHEn(Q+OhL_679h8gJKs)so~ME;x{#UNK?u0Nkg
      zY2^qu<l%d4ZeDl=7cb#)mW9?**_y<2gxy)|$zSSCqBr0v_b#sWRgHjOK1&row+Yl1
      zB(Wk;FoKw%heT~*z&C^^0)_k;!j4n8Nsf2R@$Rp%_Y`Kx@qRhp{{ehS%p6cg%au1q
      zzpD!PMsP3>8wR|h+#B#*J~Mih(O+n-zB0PojrlDS%~cCW@Dg`P*nE8@9~%~q@ft;t
      zzfY6PJ($i@K7eOAvk!BzpA~cfl{iFxp2uBy0S!2eRd|UUzDy;KK*v$CeT3KBD|iaW
      zu$Suxae}i4@CHt@A@<>YoWkcgjbXfwAMvK6MVHHCs#c4+_9`B8wD^!#uMt@gN!l$S
      z<MZkHG*>;ih4)5>qvLIi{yHQ0i0WY?Si-7oAgVX<7VDx7x8iNC7V`fcVsO<vo>K4P
      zd6cEqdsnLWUbcGu<nO(ddYh+IuO_43Iaj@pq&got>N#qCEXN;@Q|r$hYMn`|bvUio
      zxh%EHa;VkmoDQFnv(Ks47i8=_xw=5Lz9dt_RBMFnd`(_1k&$nx)@AbX9r^m6eeeU7
      z`UX4j6LlV@R=-fG3)Jfh`TCWN|3+_rWGQqpqfn9xoplsC#ptd=Co>B563tmhAw8o|
      b8x<OK6k3x}=$?#1H!$L$b3D4I;ragnX(fA;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/InstrumentationImpl.class b/libjava/classpath/lib/gnu/java/lang/InstrumentationImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8caf56aec95ca810d986147b9bd778793b3b4ee
      GIT binary patch
      literal 3425
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/MainThread.class b/libjava/classpath/lib/gnu/java/lang/MainThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..128ba4e0815c484ca915152baafb90fdcba83877
      GIT binary patch
      literal 3204
      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
      I#fEeL0(7<+MgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/VMInstrumentationImpl.class b/libjava/classpath/lib/gnu/java/lang/VMInstrumentationImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5e8c8094549797192ac8c6e1947b90d6bb6493a
      GIT binary patch
      literal 1086
      zcwUWCOK;Oa5dOwVlQd0fNhyW!XlW@;0AV<AKt@QY2r0-s)KodpUN-TPZspjK9~}5i
      zAi)U<34Q=S3Nc<=scV81OWw!K_n6Vn?>|3&0eFPlRTzYwkr$h%;-fHK;f>7x>#i3@
      zK|GdTBqHT|-SNb&qD)vl1HB!b%3(yPJXM~Go)JpzPM=WT_Z?YB35yLZph8%&l_%fC
      z<ADqg#lV$>rtJ@f+ZTaK?pd%Lov4toYtK=NMQEw;KsxdRYwx=v3}x7hClf!2q@yc&
      z&&I)d0O4KRK2ugxU9(_e9nFSmofnCu(lFg_k|*4mPnfXeO!-{U-keT^wULaTyRPjE
      zM>^AnF10&(1s%7lxXR5JqNzeR(GyWl;a<DQ*A{^_Lzv&%)k(s}e^`WNwn;~$r#|t!
      zuICNXgw=UPX!!bk=%=vezbHbz=f}ZNzEsJ8v}TUNgM@~M;73RDRru$z<9n4)ChwF)
      z?tVw@8y^hRHHh@^FY($)0lY8sUc&{fWaMp~VNU6Df%!x;4UJ#L#SH&Ai&4?&K*KMm
      zNi?yhW%>26&TEY`8=1szX1P%Mi7Q_VGRHaB7OoXroJCRRTD*=MntT(R8Tme=lbo^m
      SrNE4HOaoiEr7Panx1GPbfcTaG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d188b259015a1af058da5cb2e1757e6edb6fb9a
      GIT binary patch
      literal 15568
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/ClassLoadingMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/ClassLoadingMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6d7413272e04e6d8d25ee1190cac1f297e64648
      GIT binary patch
      literal 1114
      zcwUu~&2G~`5Xb+Ux^d%}7SeA5E#<383NbzORK$TOm0G0*i4Z{!z$RIx24}ajH&tJN
      zw}Ar}s5tNdJQQNq4NeqN2@c+w9nb$av$Om2*Y_U)w(-bDioxs3zW1J=axdVr>-D(g
      zUC|R#dzFAkQBCoVFT01Yo(eAadnbVni(%tZ(J(E|u=$T%hV)}!`uYjORH4{laH?l*
      zaiV=CBO6(UEdx3mg&ZkeQB=q0QXd*dqF}Hpsv{gsVb+C>IfjKoZP-a%e%Dl)tNBtK
      z^?NN5)_E%s47r+W^Ps^)-|PoLOCS3Y!*=aIC$-Bk-xb=#MJG<FsJ_(k8TTD5W7WnA
      zaWBO-4kv?MEMSpgh2V9ic`&iUfdhtBv#hyTN1kDk@?XkeEZH=&#*p!&h6r0K60y2z
      z!gpP4;5OYxBy{rADm04?gDtoyVuoS4eJt7^DoW~51<ys;^P|XIoFQzvxQF`;_URuv
      zYZC8;>W6Ky=bP!~C!euwCPI&tx}k5H9&DPdjTxknp`ArL2QGO#6k%lTQf~Siu6!Xk
      zg{!nWWPvIP_i&9o_aY5B%#&qih_o6+nXLI|onz@!qEE-MgAuKjXs;tb(C);o0NK)4
      z-1tb#P5yZd@oWT<O%Uq|qC7YOmA^HvtxqgZ*YbDkcg9<PJyA;+GSF7Znh|BF>&^T*
      iO2gUB(%6AFBzsFEe;0$6E|Lcz<2}H`xO_R*dA|V*Io_K9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/CompilationMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/CompilationMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..748d54ffada729488701ccc1e629291d774f08a8
      GIT binary patch
      literal 1324
      zcwUv0+fEZv6o&r|rBjCiv{FD+EQ(MLPC*4PFeccbsp%=SG-zVTrtFk4b7*F!1|G$C
      zz(j9^Xrgys_)x~RhdP}=N%Uf7pVt5Fwf;5p>-X3109NosK_7$OwA<Nt{5{W_+-_zq
      zZu6$FgzaZ@j@2?u?i-F>+<7jzowr)1f*8Z}rJ8P7oMHCguna@Fa<P&xY;NtAHj0}J
      z$wF6I^<BemuFD|D_Iz&pb#Asr0)q@=l!q=u^+o^{u5NQnFie~QH){EEX}6XyZthmM
      zE0ywAErDT%Y$%gA=-u4(NNzR564iFA<+wgW{Hb9Z{xgRD%zT|e-8^iFmW=WgTxVF6
      zu)}DPCC8U6)1Z8dvdB=u5X(9HLPbBuG>l-JVKft|H)nFsTbH+t6bxIG+SZ<MYkbcX
      z(if+}%{q4tx$bPn`~$;dST6iuBgs*vDg094*Jx(`qU9>?U|K<%VM?MKGO-r-53<!G
      z&lgt3by~vp4dH3Hi+c=%gzIb`QS&nwi9If1m@&L_wig{T+mXke28jK@`8N#XbVtqc
      zxp__!oWD}RFt1?-_f;(7fr2IS<x*Sf#h%7!n8loeEW=z^wrzWVQz=t{fh25c0xJwl
      z5m?%%l+spMM%wVww&SNmh6){zWcMF4q<R@8KeDRRb{pb_A)7qeGu7ZDrazggr)L0t
      zn1q4^&9BfO-UpS|T4X(h7|lm;mFCxIN3N0>rP(U&FdCJG<iH71pM&rTdaE=7Rm4%l
      z4Vr0ZVFbQOBf~A+rnf{a(<sm4N%a&{pF%=B*xiY!<Dr^5)lsi?)LL?g)ITv0JMKR|
      z$9NlIXd#2T)nU90YyeUVUy%6#<rE7azd?VUTt30WA0cd*!hk(0qJcq(2s9N!SA*!a
      EKW?5$Z~y=R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/GarbageCollectorMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/GarbageCollectorMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9291b170c935e61de94c3adc4a0573d308f65802
      GIT binary patch
      literal 900
      zcwU`S%We}f6g^JUOf#Ln0ttn-^eNO5i9ivnq6#sBJ~UIQN)&bLq}E_GV@DGQg^yx^
      zgw(1FK7fxx+;O8mptGP0+xH&dbI$dZfBnAr3E&kr926K{M{3ac%)jtP%vID#xZ;sW
      zgffjio^~kqbsUSX(P?<{UT}4g^kN4^hL^d-P$WA28d~5MtHe<M4=aY!TdAbkWvFfj
      z*TkktrHXd8+6?Z8VOR8w)T-}bawI>zDSf1kugP6<Wx`DLiosCy^{H?%hG`EDW*DB`
      zVRHlVW8Uvu-<d!vaWqIeB5m<bEEp<*?((?JQ<>!>uxLKXKEs>f9z)(Cy5fnI{--Gd
      zBVk4?dW)|I$}o&=ZXK4v@YuscR9!4!$-yEukn7(L^E>cR!_%DEA2Q6{>YybPkr}Rf
      zSk72(QxDRv_$aeEEa#iN$h7G<QuDON>1SrAg9#K+rmRSr3y-3AbW@;n;(5I?euk;<
      z6c;c{yKC`1V(nv&qS|F0DtG|ch^9e0jBXy$o~dn94YO)LFn^9G->%e377whFcUd!1
      TqKD-1SN`T7-^pLIRqKBMi(cCb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/MemoryMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/MemoryMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..714075ef1809c9512bf12dabbb2b0d4c788b9df1
      GIT binary patch
      literal 7173
      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
      ZLWRnxP&pMUqe8R(&k8BERHUh@{{WUVkG22+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/MemoryManagerMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/MemoryManagerMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f457326ea5bcbdccf8b1e5b2f1fa4e0a82446c2
      GIT binary patch
      literal 1194
      zcwUuLTWb?R6#gccZnIfi8`EmFYU3r{B-LnND<TF3AsduRkc!GQ9n+EB*|NKl`k#DI
      zP%1w71N>3qnMp`OvjKhBoik^@Th2^=|M~d~z<u1YkYTvjSA*sU{*gC*uKLY@E8Z7@
      zP)XAhK^T4VOe6AMJr-O&3yysYIflwy)&#b|;Qp&HLr(EPFqGO8%3cyl)!$`Ucp#Nb
      z9x|-Dv!82S2K&iLPaG#QRI!C~3=NGsnfC02Nh_pSlB>kij$;N{x57hVgW<e`0#+ER
      zDK=A`me1qZ_%64l5}iSCAflK2z&H8B9{0OEl6pUC=8_{BGwihgch<W$vbd;IU1BJ^
      zDH#eB`?3QIiwt@Bp7+RZWd=vN`XU*cJP$*^L$i+cIBTzGf2oa4+^|rgz;p9<y*Y^;
      zT*Xa>t+azm@nWzjSjQZF*{!7lWZdPxJY>kawS66~=AerDoZGNZw_z_FL_P6T>e+A1
      z33^vkQK9i=>B-ZR(^I5>hOP^+kwKAmIodf`qUsSLGqf(&8>RdymcLS+L5beB>9>jR
      z;R01_LmbLj1x%%twF6zR8QmAu$<kV^Z=YhV-uRC7iS&~B^oBycC7X9fesc&P%NIxT
      zy1If5Vlp~~YxLIgJG3$r`y1AO;QE)b_JZm6jHWZhj5HZ;;r58%9P#s-f0leSMb3}O
      TRcxi3yPwbSgH-c|L2ds9F8Twv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/MemoryPoolMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/MemoryPoolMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9b285b53b413db374d03292ad7dba2e0875d5f9
      GIT binary patch
      literal 4031
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/OperatingSystemMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/OperatingSystemMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9442a8a9dc845fa91039634da70e34d06b28cd0a
      GIT binary patch
      literal 1085
      zcwUuK%Wl&^6g`tBc5n@CQ(E3F<x!Fp;s(Jg2nhm+N=ZNs3T&rl<PNgOkv)mpe_{a}
      zs95j;d=%nN5+wm#2^O9^_xhf5?qh!Z{PrC{9d#QyhWmjUcpvzXdm&eW7jeY{5ecQe
      zSACIiEmhDxPPK^I@16>-_M(1hBhRpPDsGl$F;xGZn!$P`mDG<J7Rr?#gY*2z7kw>b
      zmD*Tj*fCs3^E{ncH)E2LT<Nyqm?9YR&G@}=uz+(eY%DRHFSlmJG((=I4WqKul1g+2
      z(Sb<b@Pkk=lv=UR!yZqh@h8E&K9niLgVz7gtHEFgLO)6TLsLa%u8giu2+%0v0_DVM
      zjZ=<;OSod=GQ;v*;)v75Ra|3OB(~Q{OnUm5VY~b{VTK07x+!AFWoSAgyf4x;PSVl1
      z_Z)2Dri~j6D>LZ+Kxr8X7q@Vm_CfebgkkNsJ|^LYVY%a?j7^4Bo~30b(czIOVrSg4
      z;)c#}_e7G?>WZk5Pk)AEpPX(yNPO`^nni4!I_H|HhaNUHL|=g(d4a5rB62uGUY<M$
      zF5MndgpswYrNUR7{Y=*!mg#iJ0!>(Wh84QG<2018N|v^VH98H&E?M)>Dy^U3;-@Kt
      zHHyBRLt9hy1~w<?`UGvC;QAMAfBXa9&J?d?h*vYj_cO)sW}xq7px<Vqy;0WgFBU5B
      A&j0`b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/RuntimeMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/RuntimeMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a610d9d644c4c73c77aacc0b12894830a2493ac
      GIT binary patch
      literal 3865
      zcwUWG`&%5<8Ger}JDc4}LRLZmZ$zWQCRre@mjo{bk`yAhW?^Fz6^CVnA?)lrGmF7n
      zv}#+cRomKX($v&mw5{64)+EHJQGfAy`rq^)sD01bVRn}to)*}hbNSx)eCPcx!@vIX
      z=@$Tc@rj0O1X6Q$se8d#GP)NHd#*cg*v6chH*K%`aLM+pygB;dfN9vn`QoC6h`{!B
      z?JH(cft&v~rNFhBsj=yS@$t#&!IAz<W_qH3a!4RKQo&|C$Fk@81U3#9Y}YevFKaB8
      z%oq|xyCpk4Qz&@p+@j&S>7wDy3p5|<&-Sk+jbRgaByBxl18E&^l5PozLp(`Z3`&Cu
      zwck=R&y<SAg5#O9G(IK}y~naG?>>Qs&aSLL{J_baS@bOWs-ab2r#$jxwE|=0Do`Yg
      zR~eNm1PFo1U}4sbqXF0HXvX#QxU)(M<w9Rqw((p4X9EN}bZkbG9NnyA3u1D#Lq`(V
      z3Tz&+Y;&xXpD~?DV`kBm$`*3QV%BghIrkSM-n``s>>Bz16M^w)nlrtDTA`XdyXqqs
      zr$f7R?8a7sZMk_fcVe_a#R|@Z>Etcfl~PHYZXG@76==2Gfpzqz#K$yzN8t9#DO0w)
      zYA{|j9YYEkC>p~ZBtC4?6LX2qba?Y-hm2;2ioXnhhvjzITnJdwaqPieQvbUJwszKE
      zNQPPG<pU36pd6c3ZdKAMj(c&x1|~*R6~nUYnRy-GL%%?R91~7~PJ7D&w}qV)RtH-M
      z8@7ujuiu#~$>=b2$yMP?p0(ILV!0k=KY;IRI7so=4QqC^F0eWVFeLBYbv!JThcKey
      zfz>;y)A}99Sax-cVvN;bxbk#?TRW@q<1-6p&g-jlQeYErGh)p+hO=Cj@&~-3l5(-U
      z>epy1?M4I7Get9(H62%lc#?_Ho9+?NXftNyO?mYrI;M~+i!80>dJL@Bc16CFPrF>T
      z9<y>PW74)EtAC?!oi***f)m5T0@sJzFDZ+%|25t`DsaPk5M@$Mo=m0XFslzqmuGbt
      zm|<6w+bU7~?66FRcuP%)M~z~ihIwDB^4gH$&T~DEIV{NZ-6~U%0nNiM->jOhwT7;;
      z!x$IgXn5T3mTUKQxL|l=41%+qF}<~paj7qXC7jgo1W&Em(6NjsiM2dgr&7I^8tkyY
      zPJ*ZLtcGWp*!8<QPT@H=E!#Zlt!+7eo@w|YWvo$a#{ubZ0?*?`9WP0OC>43YR7*eB
      z@e{ce<C1#2X!vPu-KzXg;8nb);b%4XBDap$@do3_niROZv)-R|E1`NxUiue0ekpsP
      zHgC9N>V6G*qbM7BZRiCWiwp_l*b*K^QpgCYP&bE3%o4BVEDOZ-h7;y;?JL-KkcTcw
      zarnZdPE$qMI5hl@HBceiZ+I-fb6AjHf6(zqnb5K>Wva_AKU+p;^W}p4Gpk{>TFNDu
      zP`j%I_<_$Z_g70!_bvQ_``c>oRVHdNj`Onjek^dK?0rG6@2)Sac&1Qta^^uxz6e|D
      z+F@EU^FJlZ!cQZA+o2)G@do|}bq(U2>s9lO{P1<G#(Wv8Ctt;UZlMiplJgeMBAjhQ
      z8%Ku~Gtin!HeNz|su?$2z)dM}0ozlN3%KQD#c?aYTX;Iy)uPzXa}JVsh#Xnm##Oz{
      zf!oo^r$84{{FeNaK7V`aB6jkVK8;xF6Kp?!1$&Mrzk3OHUR`s-F?x3#2|UDmOq1i0
      zsuS9S6ZQrt^zbS7qRD+LxaWMp7FDZe6*?NA2QcWP_xk9B^lt_GS1??mi1P_7(4iAm
      zG>L#_Jj98K5GRVEP8<%<yM1&+GP4$1s)9BI(5V2L_Mwp#WY=P!tinbD?1Ldr9}RK(
      zRH)O(L(mU}pkE9{KN5nT4ne;histLdM-QtE2DUMkZeq&5c?R*+3UV@ax$;p!w~3+w
      zuQ6t?GhyGTqTLqInt05o{Wq;OKBuo>?&u|0BP%#Dy6Ykemr)WJdms1hzKo{?zQptV
      z+ZSnzT*eCm`x@ooM;t`k8o$EJr_s_DRnJX3+Zx-Vm+?viju85DfivG;-C4Qq9y$a3
      zik13nj^1JgyiG^W(6!%Cp|i}+-=ZJy@V@6*NpIs}ysNG-RCd$9LJUXnCRx~<kRj7s
      zs>+9He_G|tZpQKq73;wc@}6at?ZtIuKC9GzCs1{tuWHj3oa6Q1y@=nlD*j|v<Sa+$
      zy($@-0vX>6iS7F#vHc)4wtoph|1|`CJ{0|72>PQC^o3A#kLs`z?b2HA^~x6Y4LVcF
      zjVt)O?1gHsr;_pNc`Vhy7Rm7~9|i~As6z88zdxfmpEJ+CKnJe!urIL-UspNM8#wR}
      Ih5qM%0V2m{$N&HU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/ThreadMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/ThreadMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d2f1b09365cce89bc3b9fdd329d1527b6885d0d
      GIT binary patch
      literal 5137
      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
      GAN~)m1)p93
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMClassLoadingMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMClassLoadingMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..988d4fb9f1772054710ddd6eb484edd0c8b02d79
      GIT binary patch
      literal 475
      zcwUu{zfQw25XQfwY1)QDOG|-;y)Y0eMi2v)kcv_mfCzPS+EZ|qI4FO3FD4`g9)O2J
      z*apD@1D1T>-S5t)&u{N9uK-5aX<&sgidE$=#iQ^Op<+K3O2nM9D*bRePDD`znOH~_
      zPw&oHs7d;eG~f`rKTocrCC^KOdm@!APYJc*UPy4p*@8XP&}yR&m(U5M;>#+HIKL55
      z!h~Ls%|#N5T$=g|I_14A2uH!cjU5yEF_(t(!j6oyN|n~ogfP&(Tb2CQy&$w?5po`7
      z1zR#Bcm<c=$QjPer@ZT|%IAD8jnmz~j2sx-IE3B=bL#fGx^C#q*Gh)$Kco4ilNES6
      kx)zSGs$=_eK<gSnO{}A1wTlg_J@l<^VxZ>;TXxI#2a%L;1^@s6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMCompilationMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMCompilationMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd743a65fc2dcac620fbc07fdf1861362a467fb6
      GIT binary patch
      literal 384
      zcwUuIyH3ME5S&en9ZVo04GkXv6gZ>>Q4k3!$bkaOqCK0Hx#%8|IrCpsNECbkAB8v@
      zBxoo&>2`N!XCHU(AFpo!PB4kkBTOsPBrEYG5+zKPXkkRfnvF~H<=pDERKiJXmUkB{
      z%tEhKgn%&qskkXtTslH{CXICGg#N){P6+1qo@4Z}Im8A+!YGx7uNz%(oryv*VUpTX
      zs9e;t#ouJ$9^@lomi~9IQ^H=wF0)RkUxG|(?smE&#J9GoOTLutp#4Ak9JfO;g)c&T
      tdj9$ccpUjC@t#`d=mmr4E**OtcH|6O-VVP6-fsgmzz#+p`#<Z{yPuWeUDp5r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ab86e616d7d41dcceff2a0b9df8144473bde272
      GIT binary patch
      literal 440
      zcwU`PyH3L}6g_T3QbM5*#0Rjo3<M+)LlFa!K%f+cRuQWctl-MAQR?ttOh^oT03U_8
      z4wWhv20WZ|&wcsa&#(6n0LR!3&|)|(bR8}D3y&1nMO1Rl3sDMfqjY-BtBh1^loGi$
      z)%4*~aD7ugs{kHDe?4}eEvSRRKbKnC3x@V+oHBT^c@!bq*z95hK0_~&THMuTCaO8l
      zlwcSpCg&>Um2`TQ^z4&dGMpv<GB=^Eg|MrNG&(l5CUbkEWW8%<E2)dg_?BVtt9dR<
      zauCi;UFG6RIy?J+{dVYf;s|sz+;d2`k`5?}h?&bAyrJ_-K?@<F-y~14McDmmAl?R8
      Q2RrCB+;>d1K{GY{20sgLBme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMMemoryMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMMemoryMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80df17599fe8f87a91da0db92a41629ec2fac0ab
      GIT binary patch
      literal 897
      zcwUuLT~8B16g{^r-FCamHz+k06tykFqWFd}N)3_HqVc0q-lk=&Lw0A$?$)TkN?*ii
      z;t%jgsdu(5Xdp38vUBF1xqIf!y}Lhte*F&M7Vg-{5SF{T=N*W*!t;ghdV$cQD+8$$
      zuhneIAdKEOUv5gFw}V69hD8`ZNq*cuke!5(y{oiJ?h!`Hl@`IOh5ORM2=XpQktK{Z
      zl$N`_pe>{4qU}q<WFzbdza=7N;sI$TZ&XZJY5a$!4c6+)<dGDI{jC=<Cli*+mByJ8
      ze`IYqn81{cNy5ZQ?$e%5R3KeUV}{_c_<$kI{3SY|Q<XUv7jThKNWw(;{WH>X)NK?A
      z3;(h*`fD(ZSjokL5p!NgQudP!eZ|F9L+1nWZphB#nyK-1f?cljFy*(Sq2H-9+!As_
      zj|8gorTB)sp*~f?Mdterej@e0(%mhkg|9w{M1{H*vRrz>Z8oIhmW<kAEK_EWoyRgc
      zrmXUwvE@7qdr?PjDbwn?)16#3Ua<z&fEihS`0L@==9R}thN&JQ_lXx7IBAk0*HPfv
      z?I$pvW6a?^#s)8U;H09ZFBspce#Y$mZ<v2IjY}mCE=w~n9%1R@vFt3%01sec6M57)
      teuyGtA>GR`U&IZRIm&ZfK@~(fEc1b2yor?*SJ}0}HU8Onf!nG6`fsgQ)ph^?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5d09aeecefdd30290b0de965e03c8b499a693fc
      GIT binary patch
      literal 1497
      zcwUuMTT@a|6#h21gLqO@u<Sx*i6AOUYNlqXsgZydMx{+NTR4NqfkPb*P4?WMsJEVc
      zt(S_NoSyp){g2+VwGVg!shOBzU)I{|+u!=u+ULjbuX_N7@lb+=A(GWf;Vu4>hjU!Z
      zhVxwGStYM%MmQCZEBS)H9XCyS{PC>9wP^l%PJ)fWeH632v8AL92FH}Dsm3&eH4scO
      z*yaiu#RV&xWZ2<gXpO0wk|^aj6n&L%<P?VXSRu`GDXyzxUp3l{O|{4{68nE<lLVPn
      zjEZ-qP{<{CULmaBK<o%8Y3Qn!oeZv@v`J`V=rGMCL(PR}be(U<)S}^n8%-{F&?&*o
      z;BQDPez;uVX@eNZIE^z5o*GIOwnVBu5R4sNC2pB)##x+~aE_s+)+6Hrd<;(2P;^ev
      z44pO6(W;#gE}>h(Wr9EHm2m}ENnlNRMdk7wARH?qDd1=5X`EhN3eD(2Kt>RK4Bo>O
      zt2L<#?+rAP*@b=#N*Ji=qKZ#O7(>)b%8L@unE)p_2G_*Z5gFGo!XVMr;<oyPs&@%V
      z$7Ea=s8*iI2!U?Mm;m*Pw8@JJQw!?YHF5H$jA`5=iHhoL#WY8Sc}B)8<|x1@m@UB&
      z2&^|C*1#rVo?5Db2%-)q?e<1KxgvZ<$W1c1>pO+PzENo-Pop*<aN(xTKL-AfT2g?s
      z;?@b0ar#FoUA36vIW<#PhJy#R#^6d8N_tvZP{qUb{q<cAieL<Z6ovSSkv<8umuMBH
      znF&kZXE;C7!U7kK4%0Y}W*X(n0h&+I>_iJ%tHHnMw1eitF5FK(lbB!7QAQU-d<V1r
      zWn5(Vj-JFo8NCb>HtU#u2i;vZuRYTD38A;>2$5@;p^Q-r9_^szjh%VzUADdV`#&js
      zoZ;R6ZYWg76vH==<+g<Y?|e9<86i@@Jds*J8y4vs5rq%;;KvfRd5jWBkarn(X`dwj
      zQ#>$Jny%2Ms6{iSES-o_Qf+uf(MyEx!zjhaNi9DHOca}VZG^P~J9FYbA%P;2CYRMe
      Dl9P5@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..422c850ba65b70d965df91710e756a712fae5948
      GIT binary patch
      literal 950
      zcwUuKO;6iE5Pb`2oTe!dN<wM+!Ivm-z~sUO)B}-_iX4hW8ddFS6IRZ`dKcLa5<jb_
      zN<Huc_)&=QW(%$2Qq_|8&CJewGqakT+n?6}nppKP!Qh8_=%4XR?klcCKjNB)A`&|F
      zyY04!Onh~0jB0<`7hHdgE|iA?!^{KWQ}0alQ-<Q6)H40RFuA_bWhk`FsVHL-Pb+wW
      zBExhbwKy6^JrQ?!PYH(E!1TH5@>piR3l`FWOc<KMf3~$tdZ9>LMk#7X8vQvT0>jRF
      z@St*%#!`p78$qt{NY?U5tue0F8N?zP7<I}}%ac81SbT)lGDA%dRil(qskW^hAMr@g
      z$nWzczm3NjDx`2M__-U=Be!#PLDt$ohP_uP5yi2qzs%pJtB=K8@19J$T*<#Zz*mMT
      zBK*-^ZXzv6BYEt7>p85$j8;v?+by4%VcZu7GFzZV{(fv_a@Yp#C$evfe%ed&J+gd4
      zmPIyyp!A)L36$w9+F%pU=&Xzq2%iJ2L;}+mXHc~`>+l8UEY{q89rG4nI)B0Cy>i&V
      WYm0C2*5W%XT3pJIYA)MuR_*|HLjYm`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMRuntimeMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMRuntimeMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7eee11d960121732f342afded741357663e32825
      GIT binary patch
      literal 1273
      zcwUuL*-{fh6g|z78N<jD*;K%|VS<nWaYGhaWC;XN0|AQiVMy9AnCVH)66IU`0AKYb
      zq_oNp@S`kmPlA+?vNToczJ2@5xu<WR{_*qccK~D9RM5aMoEN@+WRwiOV2HeK8N$eO
      ziwjTBtiSe!XIgxHcb*#}X%!0!ni$&8(3=NGJnJ!prc7aaGYpNfc!r^A!Orn88gWTO
      zGeQh)DO2zb-#XyVmT^$v43U(bH3}KSG3C0JZ1N6Gmm!h*A5D`C9eM60MbY=>oV+h_
      zMA8+D@2Ac<(w<|AJYf~WZWtC->x{)O0>Ze0E(M*m9qbA2=}8*qayf^)u7+;(Fla;)
      z9AL$E>G-{;Oy|%6+f@zM(816`-$=MDuA+}fw#7SPzZcO%$|@LO=s7QE-Zu+5?x=_o
      zTy7>xRzeU#7`Jdo!EJ^C*{f{9aNVNe9qQ?0*W=bp$1ZZmGdT&qi@|E~TJo4-Fn00a
      zb$b!Rkb?LhS6<!Ia390e%#u;?`R3bmlvP{Qr|d^UnnIU1R7XWd#TWyNO5nJLhj>Kp
      zGKxhmattH?q`TI%Nfl4Xd8b_~amO`np<;reA-W$1!=#2OOcTFsPVz<I-c?!nxhy=(
      z&=*_%8~r>9omD{}vN!UxB@N5+rd7|bLKP$#`hPp4cHhzjiyyMQ=#d^mAJ$AEA4MI*
      zO0T6o!|}FEi3z7|-^ubNQ$Cp9I`1JNIWS7+YlQqY2mcVQ6^eA4nam8GK>b2N1Hv?h
      zg5)?_Xw<3znlA%PMJw89t)d+rHIk1+Eiua#M9S!0`vheta((R^`u8F?D!5s}y%UT?
      zM$32*c}#0LKc%69XJyPp<|rJJxdj@^So|E2DI{d2CTAch^NQj$N!lg}J7oA>Qon}<
      jilxkM!YU+W6>GF=#Y8nC!6{7B9F~_$I}Gc=F*kkzJQ+B8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/management/VMThreadMXBeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/VMThreadMXBeanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0589e04554a32147f3227132a8e0aa104dded42
      GIT binary patch
      literal 1742
      zcwUv1O>Y}j6o%hxJF(+To78oZCU)DDe&CO^E~PDnxPjJbT7RX1gn&ST-q;go+VM;@
      z9!Dxmh(P=VV1Za=!vb0<tq`z9;;$eicI*i69Zzi+%!0+toqNtb=Y7t(_s*|>{qQq@
      zmvA?XfIzlkwR897j?9_TYUG;Ik`2A7TW)T>y0+!$vR-}nrY@~wbK49fBrx7ve0Sr%
      zUULP8Hx1L&>jI+4N#3vwcR?VSO0Nrq3U*zOB8X89VMGMRDu$&mx0@TfvnDr8T_9Gm
      zYtmeoj-lqhG30I;ErIiu|G_seklZw^detU@?JUx1+O-FIy|a+%LaFroC4oZ?-MwL&
      zUGoIZm7Yk)J|D#droxzfuI7$U!!b-VPp$1ZWa$_M;;HoDGzkq!92YoD;g0#XW4E^j
      zrUyiLE{2`NsW4_qH*kT57gWX(W?Yd9LIs@Ba2DqTMrF-4cJzYXwp?!~iprbPkVb|v
      zy47y#j&#}Q$<%<#)5Q@8%xM_Hu)t8G!#edJq)aFsM?PFNK4QYC>$xgMi^@j_B<B(6
      zZ-24gic;*dh8T{jUR~Aj3a%+x-7VHVdTv?JP#YCcyC)=B=q&U%zp&k2Gn&*t_D|2-
      zEuJ*b6{l-a>P_47V^n*T<Qp1p;HE&tXm$La>U->C-JAM-jHzDh@<Cs8|CaiO@t)xs
      zQz%tZHN?7}qP1x+*^VmjY^qf3KLdRyytkH3JJJpA6*Qx4wkyq5S32&qbMAA*9lbSx
      zH@a%KotnO6s9QGm?@M$+q2MC7B*@<c*Q-Ooufu$JfoU1xSB|6LIFxyU==b~xK;wJZ
      zGhV?VzO~K*297aL1mifuc|>iqpX4#4l*p~8i0@;jyoX3;A1BJ{^~=GZ98TvGKVhPp
      zncK&UkCEL&JTbKOyzLRPiLVcSoBOT{an+N*L)s$gOO!8S5@jS%!7QpsVHsJhu!c8r
      z8E+xac>!x))GUF*SipH);4Fa*SE-_Ad9N<=rx{=Ymsm)rfE|Rq0?s_e%VmQ6I9dr_
      z-@{lonMq#S$CZ`cfJoB*&A}hp9^Z`D&kq>;A^Gl+Px5zikN0__%MjvQ>47U|@G4%T
      zqQ)xb85>|T^SI_U^|~6#w19Iy(?h?hrxjB$uXth}&Ff!acvpxn((j3HyGSQkH1IKH
      zKcT=bM)4`)_zYA0K84Twuul3|!#K{Ssn$d=-NjlYhQhhk#hLR?0d2&2hq^t@C`aH+
      i=KRXbAMgrV!fkK7!%b6T$)A_~f-B6fj%C%0SpFM+)PGd~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/ClassSignatureParser.class b/libjava/classpath/lib/gnu/java/lang/reflect/ClassSignatureParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cca4f03b46600f574faf569e15e610c5b3548ca6
      GIT binary patch
      literal 1982
      zcwUWE+j0{}5ItilES3jfV}pU17!o6`FA9VhfgBSeu;Z{X1Sul6Q<WM^gIKa&xn@^X
      z!OtXbyh0Tg6cqV@d`znN0ib(j97|p$dD)riJ>BO_U*@m3FaHE^4!>CF5wL51BYR&x
      zP+3p;wXD&1JzWX21y2P*(XII^Y#4n@nLry0Nr9Po{Id47aVs4j0{!8`Z9b?i9cmK@
      zOl~*_y-NftE90t7Pv^-gXl!d!VF~<4;8+(Q#=1TQzN;#l4MZ^Bjex+17F^#A7X_x$
      z`#{lM^ZN|N(71jrpD7C@3-zi_VE{uG1_cH>yd;J(LLzE9jLuG7Rr%WE=}ad<>sLO7
      z1V$zLFeY$29V2x&lh-ue->A^7`}r=R;uNPq*^(H?ae>3zTK`tKr$|pCohk6IlM<g`
      zf*?k#>QdcoDX-K~pfl;rf0n41LVYUn5e`{6Eim!#a3=mt;&V(1j4^THLuL2cMc{Z_
      z#@gz}Y-tG#hb`CwBN40-x?c9GG3ue?24M;r%y3p`qq~;*oR#<j=jg1eRe{m{xxTr1
      zpQ7h8>x}zS;sU;+QU~rM9l5VqxJXjt<*=Gd61_;Vb6#QrUkg}aJrYAo(;G2NF*Z)i
      z6^U;m&Dtl81CHzK)yCGQHYHA+z_3%VDDOieca6#Lo=b(AasL14Qtyk3z|euN7w8TC
      zDZ=o<mJ&$qO&F1mIx*QN&{(@r%G0jcY@EYFw^A=ss397r_NGkXCVsSVi#jd-$_!uG
      z+V&)Fqe#UtI;eXOi2Y=`>ubQ%%~Zv<w}z?89OjO|`MB|H`F4L|IOIyllXRl{NO69P
      z^@geFC707R9#_3N_QfRiOM+hR1bTS#XxGCt5v|mXv?dAB2T9)}bo!glNm{G+^mG&b
      zGtcp{-Nezsg+I`5)9%C$PCZ7Sop_B&+Op})4$i(pX6-qqS06*pvZ;x=JCUFB`@1*x
      zY!l~SV}1v@S^F7sO<d-mi%%n6SLr(+abF-k^B6%66Eq)FxPm!q^m#&D!ZmzL>kTZS
      zjAi_a?@+-C*#Ntx7X`u~+Fd7<h<3|_>!Ap9g#DhlZjhC4+Ojxg5%_`FT6e!pEBi?j
      zdFlmLd3h3LiZ!Na1)(jhM!d3x-Q^W1k>XaIMMCnwL7O6+eSx1SLA>jXRiwO^_Qe|9
      ai}f?sVl?GinsS|S)=1NOtfut{x$z#1^!Nt=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/FieldSignatureParser.class b/libjava/classpath/lib/gnu/java/lang/reflect/FieldSignatureParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f86cfaab759719053da67a7513cd7f28bde27b2
      GIT binary patch
      literal 1717
      zcwUWEU2GIp6#i~m7-ksgP!wp3%8!=aX<@Z02wN(2+l7Ut7ItkYnCNBqx*eI$G<Rp4
      z5EBv--Y_vf_-0~!FeZkCpFkmCBs}<HNQfrBnHV2<Gci8!M$mKbY}#(S4L;nN^WE>B
      zbI(2JyZ7g3cYg%%21*9n7~E=5Pk+K^c-rSdH7&)*z9>iOoG1KB(W?eLs!K7(Wlcx}
      z35LGb>ko@SNUyxegCP-}pB4<83rk%}#AFy&4S0bU4Knm37c9#9yjIIBm?%cl3#ysa
      zIK|9{6=7iw)*7%G+824*Sci6obyX2*TnKqZrP7&9E#4reG8R@~y$u5$3@4K<Qf-`W
      zSd@J(dE|vbW|>f}GPc0*f{hokkzw_;5a+U!obp+bOl1|d*+wV27&c15E4uEgGINz=
      z=xR#5seC5+Z?Ulwt5l?yZM=f53`RK&YV|2{O(e6aaTD9|s(~F0>*vD^g`qEaVB<CP
      z(7MvZ*a-1UI$$EHd{b1<1-|DaVWL+NeNFW*PKGivv0E`|h7Aj%(UEyM64E5)5!>IC
      zOg@N2RdH`A?(L?SIX~nSbFX6FX-cCI22~UL6+t?3=8563e%2QT4lwL`zEpFeoZ``l
      zl%cdRfOnM;4(j&k&JEefYAk{ZC06hPF<PHGD`bh&CJY^gu+05&E<J@ClZj~3tI=gC
      z{QuiUM=+^x5vL7E9cFD_03AzJ#bA@Z=hR~1INmcbN*ZXrqgs@on)Yps;RGo}idyK;
      zQ0)Fzde_=oR&)$jF|5n7$a(6lovlu@TlrF}sc!VxFtjO+lGR4Gfz|XiY5G?r6wkJ}
      zy}h%r`fkH<XR+aX<-+JQMB@yNFKAq+@lRv^m-w&k2Q>a{*faC<iwC}0p2tPSxwQ4B
      zTj>4{mtE)dEM9VNV4KFDy3SCHcWQjjb&4@|H9q4y*%<HA_?YYDWBj_t8Q00h_)U#_
      zUFT?w_h{VhI>RyEr}3J57?`+?!TXfaq3gP8!}PsCw;Sk(Mc3pK_Te+q{^z9FFL3~0
      zVGv*AAil*RT%o#MC68Me!4JscK91lg<na(k@dyR{Mq>FLqxgfg@E9lX7f#}Dl<)-a
      z<0;1RFHW(Qm|!+evvz#IHsM3ojgKfAur=-%MLi5?>j-+lw3Vm$s=vq375A5NQW(@#
      j_a?gUpg_k{*0s4aS@Z`g^q31B-;UQe;?r}iR~G*R>kOhi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84f2433cbaa11070173a7599dbbb8f92e55eda6d
      GIT binary patch
      literal 1366
      zcwUW@TTc^F5Xb+gS6H^76)b`x;;r2R6%=nZCP;!I)=L5*QRBn5J+@1h-Fmtu!50(1
      zh2Mb(O%#kKMqm9DMjrIV7o+jT80YM6mQvbinzMV(oSEOu{CE2C&zpAurjU;##GqBI
      zMs7u4({rY7RdRwqG<nI%UFQ}TMrl?EeSK-Y#urv=W*iZQk@o&OJ~4)|fAbg;C404I
      zTikNI^I)MpHO~;cVpxWAm0>vD$tknU5Sg>fTtOHK72W7%2&Xg4-C)?KB91PGzJg)#
      zTaDEs7fX84q@>A$UDC~ET^RE08zWBDs56Wg{$Cm@GA?-CHrFVAD4pq4rb5*Wsu;i_
      zhUw1Dbe1Aj;f`Ox+;071{82+UsqTSh?(O0VMdvg36pUarj-#YT>#d4m9458w;)+yc
      zPcTE&cB))3bXE0wRjTZ2yAZyy{rHIlr&XN5NxFCJMMoG`g`t0!2%eQDZk$?ZHD7BO
      zW|<2GStR5mr{WBzs3W~r<5rnrqFqOO=sqUjg|iHy`wt{)MxxHQ5d2~~6J+E?6&Yv@
      z%A(y6B|dM+$r$#fUo<L~?lc6yql-EhlM+OUNEKR9S|K@b^e>Ci>W2L4J+zxAdx+kO
      zwgpwozCzy%I)$*Gp1l+cd_n}DDPkK*Ivw=9aRB{*yOUH#y8*iMn0fM%mV~CgMBi(q
      zh^jpgu!@WLLatw3r0O~QNSf6El%u!2i%QN8Am$psH3dh5U>X}gxJ=%%{-Nv#uxIGc
      zz6ZN0LF2SGabzRB5fGEqBk-Mi`9Z{=7{o7^KI##IZijFTW5ieKcbsgpPnt46<BZ>T
      zPx6%J<~aRyCxut^@1~-Af}-iG`iNN{k$Q{l-7QRboXO<$CeCf*LW>5BHQ`bL?vm?u
      F`7d<zCqw`M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class b/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11a8fa0af7b53fc8cd293cac6a0599fdd26b61c7
      GIT binary patch
      literal 5172
      zcwUuQdr(y875{x7k43oR0tzuu>Vput%R-{Y7(t>yNY*Z31yRJ9T-YnFS$65}Vq@C0
      zN&2oyABlO`RH4R5lW4>k7L`U5n?xs_>ARhF>U7#nAJa*vna;E`ecN-sds!CT74yfv
      z-`Vdw-+BGcIrqRj|2uOQz|FYmfE1|e3l7%oGIkp^0VCK~6E=4Q%-(3too3Js`+M8{
      zeL*8S7&bQ;;fNV_AYH&Y#ogAki<kv610lm_h6ReeQ-_TKBNFkdgIa+(y`f;#@CTWz
      z+?!Hili3?E!ba2|3i74Mq<(??giGzwus_&G3~2+Qh=A~r33dLUKUy!avEtgKr?B)&
      zEtQ=D>5U<unT<5$X_$+AQe08lIR^ssH8_yPRH23pWHNP~hB?R<nCB&TTL=4l%y5U%
      z6Hq>cdW}G*5%%+Mdow+{(@#!Rdp`&g<ok7D)9^Ki!u>{|W6uEZ8~tX~43n&-6_wpd
      zqQGpE%4@U9(nT5;V~K!+z=;g@voRHom7NZh2^6UNgHeB=W?eXJ?D6^|(QGV59$&ms
      zLj@`c?-Vu&EUBoR-GZfXX{dsm;%WGN0t*tcvy!W}aw{vW(Qp%P7RVYf&HEa68es)N
      zBa2wBVFhj>(<A-|OttNC;8uastE=a$w`o`n3Z)|&Qa%b)RCFgXA;}(P+yHw^(O%$9
      z5-MUy56~*GcvdJVd8Q`@9oorpYckn&vk9zM=r(F-!W{y+43fuZ2BZERe#U10G;HiN
      z=NorwxC>NFg$h=`8St^#_NgMgJ|(KP4t#_zCO>qbg{nSzekU64=^qGW!;3bqvJC<q
      z*I3J`BAlX{v;7Id$m|IX27TN`dIT1xltd}`L7=c9*sNhoJfN!0ObaNpY}L>mXHjym
      zV7Xhvc4k?~EQ#@ob2)IYfP41lp-MG+M>re`XX75^WuaGqIv7D)G&58UgZ=<@#BB7z
      z@4(J!jo;$XunYH5_3SnRgJ#<ff;d_ICQCIR`WfQjjFOLI#2f<}J_ZKJ7#J{v)E(T(
      zSg+W!%~ndH8V0!nvZ5jDFbf|ipsO9|;J7}Z;S>0zK;C3r*M<A23kIW<4aKQjD5d(R
      z1YF6}Io<-P87Y}oPCtl;*x`o>%p_jS{w<oOKc!)nomuz{IatQuTNc!6sHRSxiW<?}
      z=yVs;`8Rz>Qc2?weObd^PCe($5OK>6(?IZ*l!d*SaOgF{2|;)aU*jNrU0`{#!k$^N
      zGh8FTC|O0L15XO*SN&MV%gEBZ4^Ok+XBgGg@*Vhwfb8Dtz&CkqaNr=X?G6m{N_r3R
      zN*|ZQyf!;<gxB>Be4E!M2VP7$PHhT?%}6M)+niRu*?0j**|K8-wb$6{l2r>29mh4~
      zKx4>GXm~|^Dpk*+Ph}QfrF^JeU0qXG?{?{2&@m0;I7OxF5BkjexpdPjJe3|kI-_9%
      z-{IM7uqUE4P;aX6c#_nyKt?1=sm0gMX?UH#!kGax*caW&Tjw==7jM#5FB!2eYUyaC
      z#8K6p-5weY_nOUq{>&98pK_{MB^HrWX*9B?L-L44l;ojHtu$z<m3*f)m!7%wrrC?A
      z0PUyKI$s}$Q+JJ_K(89Z0^L1^q7&-YLV6dHOo%6FvV973#M8(X&!9l;$MtlkTlZ0n
      z5<pR`S15`tk&0p)*uD>;)Yg26PIzaf?yQU9!xLEAHI5s+E;6J%27R+0L$$Mh`0`(M
      zXFZ*}Vp#SXR<^jRVpz4gYLsrKDchE?m*N02#X+*`5Q@ZeSR@XkTs)6zaRe*Gh_Z8$
      zrOmc8mu9m%tRY*f>3%(KCu`QyzD7IN**c;mPjI%q?~*s{={7R3!K*u0PZ`~!Y+XHs
      z(kh~w+4>RWTP*P%o9FU-Rmzj~tyOOJWCGqU{Z$mWUE^q-@@g4lC5|FP97B$HnWB9h
      zCE^5b5GPR~#>lf6&2J~MR-D3J;xt;tnFKVp*<NN~Gd>DV_yTyak^Gf3yv#>CI!Mo?
      zzt-6%g%pi8w!eGmH=}qv8~&1l7R!}=py>lBqo;$OYI?fqsU*J6QF?XpYuo4q?xENi
      z=P*5q&XM`&X_|c#%f#E{!bN4aW~quN(UwUw#KV+A?9v6@>7{Vy_joz}R>W(Duy6vt
      zF4rmS7)O8t8;T*~9YLAytWoexJImia$#D6scpdj!Lh6Q*MI!gKOyI#T7eTQ=RE^`)
      zts`jGoz>H&<Uc|ZSiddkYEs-viaM+wx;(BsYe|-SG#-v1IScW9%G)1MP5qd1_a~IQ
      zKZ7oQPT~0lmWyA~wD?0p_E%^Zm#|Iz8ix1{4HLgbfYt%=E+XQ0*du<Aec}(;FaAi)
      z_fHrR@8N{_GhU%JMm*=lU+|WAUxj%ELx2l*nCIXuKC7}LmonpXL`lkwC_YcPN(@l$
      zd;wo1yd_TnvsdkxQdaHyR8{*o^8WAS`9H|>e^S-{i>mhDl-vKIs{L<@s;!S#?W4-h
      zwV0~fddgz1+P(2CKBYP$Whxt1SL}2RqfmFcl<ALk2`<iYe08+g=^jRr?sVG+yq}+D
      zo#?~V9i95*6>FOrrm$Q|9Tk!~uS`RZ%s`&ZM5)X|naqYRbFfU(-(R$@lDVjtPBh6p
      zw8;g^!$Qlxc*VBiaXg{Qp*vm#8z~CBb4ho0lO62Ki(Dq}(9-~`{`S&yfSxz({p0q^
      z&k+>~i{72EKl9mlmGejVYy$hbte8DDsynxGLGCA_fr)2{XlLR85sgd?5#eFtTSPQ7
      z@f;EBnRuRvCMHI%Y!n-*LqQfJQ<mT%xfqYirFdMH;YnGJXXTAJC@XPT>KKt#I40c~
      zl{JXTn{Zk#!#TMe=jAQ9C|BZpaut3gZ^KVzZ9<c|6mK%y<5{xZ&XQ8y*}?I(I()5y
      z`~}sXsXM<kg?B!;B)N_(Y#_WF3Gb!^EK6+-In-IL?ko9^Oj}o!u;iRBC$TTrQ7}hU
      z(X7coSrWsT9J>5I9TXMwX$+^QbgK3#J(OcD$d;{`C)==4Zb+z-@^}s{#%s#kc_>oZ
      zB;n+L4cHd6+MT_Gb+ED+&JH6Z?I_ch-ZzfM_2#l{xe2+l6Hd7$A(ADwJ}1vow(K>e
      zozDuCtS%C^HT~YP86q>8Mc$ntsvs_EF|`IuR10x)IP*A0#Y4!MOq8j)#ImgiS+bXG
      v^Ce)A7e_hIt|uqnBHS#|9y<a>2@$x8f}P~NABA#Pg2hF)0)e*`_l5rhV29G2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/MethodSignatureParser.class b/libjava/classpath/lib/gnu/java/lang/reflect/MethodSignatureParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29f5442441117a1fafc7137160987ecd315ea5b9
      GIT binary patch
      literal 3626
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a244f0f43130dd7cc55f189166c2eaf8579d7b8e
      GIT binary patch
      literal 3079
      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
      Nbz3?~ub7@M{tKgH-1z_i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/TypeImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/TypeImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b580459f8acf8ffdeedfd2ed4b0281bda2e8b79e
      GIT binary patch
      literal 735
      zcwT){O)mpc6g{_{cBoP<rPN24?MO^ov5;cZL?Rj%q>)%nYcS39Bhyx5?@w4-*|I?_
      zgsp$$58%wGkA<;#@4R>4x#!$_XI|bO9s%T$Q4tW#9XES=-8eOL+h`u^j(KF8wXVK*
      z);2dAZCiyR82x$Qsn+?dA}pBrJ4+B=wVGCUT@cLXDgvd{Iy55)Vkim~1A<uDYMR@<
      zM%8rojH=CyM7dQn?26%7?!6yWx+hjgkSYIPVNswuW~XJJGG{uQEB{R;Z6<r*_n50h
      zAQ+Eg6iGoL>&x?34|R#Gcgoj9AQsoAYn67b;%<}P$Ws0}k=<6$shJy=JCotBt`}Xt
      zlA%(NE5r|~aB;l64f3QDg&5NA5V_$YfGGE{7hJ$F_vj}9BZzs~tcUjjVxljy&v1a4
      z3a(xurlqxX;T~hV=OStC@$&ukM>pZw=c%?ty*wtd?0HOl<`XA9Zj$FIs=F@9zDucJ
      qYFvAUTwq9hg4|+yOS}G-A7Pik3i~Uv*tK8f$1#IhB7bC$J^um8(3zS5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80aa4cf7789a43cefdb596dce591dcbf1e4b56c5
      GIT binary patch
      literal 4010
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..78946cd10becaaae06d553d0cc475be314c1b072
      GIT binary patch
      literal 1659
      zcwUWD+fvg|6kVqm3N;9}6yz#iz%+$cL<Hp`pd-UfL78^?AP<_BV;d$Un5K-r@)!Jr
      z4>}|0_~78HALY1D5=yTQ(@D<GK5MVFZ~gQ4=Pv*=SP#L+Fj+JzseScGP3fvpOj-QB
      z&I@)b`{|J9R7+FyI^R4v)I$g`jJ3zQm=41HpNk=|#|t{?rkjBq+~Ag0ctHTwQf<vN
      z78yG7X2sYmGYsyw2oc-_3K;4EaYt$p8Qao~q99n(49#9)$jVpKY^&4E9?y~Xb90Y}
      z;l~XL-H0&w<#?_O41E$p=oD7Jgf4`IbyLDMNDMt`&EVUWgFLsgZeJp4v!Lo1ee#?E
      zyQER+a{6jhqH04HFPr)i#SY2w_6_SQa(mrt?64efTXL9kz9V52cNs?Hwy=0Ej0sGJ
      z5SDNsGDEPSn+7G(SC_=A{62+{e2nCqJ5PnS%(>-Wgot9>nR>m(<=pv)imFq6F}XQ~
      z_?s{u;9&?e484uF5~h(1<B_<ZtGjo}X~brJzkc1Sr3Fp9#4U!-l3Ff_)o>PK)BkpB
      zCnq$QB|O1X!M;o&+q|F*XUvLK;4d{X_hGN(j8-&MyJGRzs#WGzQs@x}QPLBnw@<7X
      z{hfVc!JL!Ui%#L|#&tsVkfoD9Kxd!w9lc886j5dB6ftG`6a!zKs6l%76C*H7$T?zr
      zOwsd*VgW<sRor+CV+3$4q01agDEk~sX#2?;#h9l&MW;adlrL4C4#%_P@JjBj$IEaF
      z<6h*d7a38$A@&2e#c_sv=a{%;a&^}zm-QO9NR=&4dAn>Wk1a?v(Z*CZYJ!8+;DnQW
      zWAH#@aJpqMEsz)dk<g+i$;5B46Ud2kuq~0r6g_81ozO6dmc9ngFnfYv;Ip58Rh5X-
      z`5me;Ln>KHD(5JUyR6lTBxz#vq$$zO0{MJo)1rA<EIZ#oG_t5Tx=Y83qquT>DdiTl
      VTT@W9TF|qrb>m&jZmc?}wSS%SO{M?<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class b/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07d9a8da059092ccdabeb9c3eacc6b7656961742
      GIT binary patch
      literal 1893
      zcwUuM-%}G;6#foLSlO%~#E57DSQPV1A}Y`liq#lYNYEB!#`bC1T;n>MUEFM(w$J@1
      zc<htYH#$?X>Wrm*P{)6x|3~e)n*gB%rIWeYd(Y4BeD~b*{-2kx0gPisK?fmIvFq7K
      z`V&2C>2@XSiU*c3yzD*O6*b3tBFf7@tcexfHT6|XC<qb;+j~g6+toEoK_}rvdp#jo
      z7KTL_E$%nCDQw}I#tk;mUEMPsJID66US+qw7W*a7HSG%PI%iDV^kxaU#Nop250YHr
      z6nUpCR0PnYA&g^$Kq9%)1x~6#!4bJTuAvJmp{HotVzFLb74EX+LjrRQ-P-1-DGYiK
      z%^G2>_<y+Nf|RD5a4L~(Q<5~#g%QJ`f;i#qVT#r;gkeH&MR?NvE{m(e6E5Q$NhH5J
      zAj=M@Fh0Xs1tWazAGg$S4x?NG=UMcx?D(D%ntZEBAf+HlIQCzihBPvKsp4^6w-{Zt
      z^-}MwKH`MA<hLr{#+ZgIE)u#p7uO?fkFa>i7HCIn8#4u$2ow8FOS<*IajT-d!=w3Q
      z;~ER!8)8lRs{FKi2vp|9z=l7?u!7IIv38B}mR_r=n8LJ%9A>!1xXglWSWb;uDhcnQ
      z!=Yns8>FGlN$*(=SMe30ztubM*fr0s8=m75&a@5DV&ccSt|5;bjRx9{BQX*pdm{Kk
      zE@zH#@*rp`3b>`=_IAVu=i3n#ED+)!#iU{$w-hYyp{(G#Qd9DIuk!0Tm>M=P2t%JJ
      zoS-f_b=MGcrhLz*n;o)bR&3p?yYdy)ggYjK;39WqfL90|{NsVa!?i<>3;qUpg`u(b
      zDDUpGTuORU&(WPqKSOUS^9+$+eTOLj_aO+7%0rgt4IM={b>jrfhZ}C_$4S87$u#8e
      zWTFn<4d7HW%`bfJ<nKc2H}n>tVmkc-rwP-c!0bTi^<?lV;sc@hrBdbv&JfrrvWfHS
      z2xT^Y3Q#;6{Q1M*>ECgon11`=-7AdWe~!z4>_8mlgrGizD1svt#Srx)O9L3^{WQgJ
      zmF0OFY=OPdgdM^huK2KrxX=kqazs@=<R<LDn(Qp6{>0Qe&Zo98wTUl^={E?aHyWoe
      zOPMzkXybHkgG~$T2=lS9iJS5`zs}TdVSW?EEyOlnp~U#_?Bbu4xo89mo#Sp9MT8QF
      zQi{iEn%TI(gD#6Sjq~%r%=Jv*8cm@{GcENj`&CHlW4Md28GRhx_y$Xyfmkau-TN2h
      C5#sy+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98b51a98f91764eb664504e997ef232118fa0fc3
      GIT binary patch
      literal 1856
      zcwUWE-*4Mg6#h<~#;NDE!Ryk}K*^w6lQcB2F@B}2tYh6$vUXCpPTeGglUx!9Hx7=y
      zQSmZO2=OoMAK;0HBC&2_8iE&)c;X)dajxx!u1TiJy7s;2p7VX@p6^`$_3tmg0(cu6
      zDn<yW8g0MWGH;tj+iW+AuK2<hHLrNXvg<X|tzX;ii1JRyRuLo24)*=uC(b_4$0Cf{
      z&K=<rrYnPyO6=lyI?^S+WVJ2t9N|oMnDa1uZi^7R;M9c%1>-t2Oc0c8ZfgvLmvpE|
      z$k{O+V@MDtDpp&p`#V+PUNfsUr)gB2nrUyDt|ixzG3GU`E+Jcav7+%&R9AEz`!>hU
      zWOKuk)i{&1j%mC?I6d^JL&FK<4dGpvHCu7~cAYa!XLGlPxvR(!QiC@`sESnRDO6m1
      z<(oE7jvvfyquSz_QtqbA{iKdpF{@!7ITcw#GVt>~%PyXGU30gqBaa1wRu`gkF@now
      zZ}sC1FohIv>NtT}me8rTq&R(U+%=BZlwFf(n%$<9J`lXD_<wu<XgG`aRJ{8%w*!$n
      zUxm{IYVs&^wC8MkuGMZ3CZAC(v~u-6B1|1NulOvza1&T&gyl@vXDu=smT+FS-pZlk
      zMNqjd>G6q<i&*74n=D|v&PN?o=f3EOu_Pfb>-Z3*1lITn%L!Dt(#sj~wa0K>)>_+i
      ze77c6E!o29OQJ1YtF~!1+NS5b;;QL(g}W&6@fKHF;W3I4e)x{?k77jL5dNw>G#uew
      zooCx@SNJ=Te~6>`g$GFH3lCuY6a-B2+dvGURsL;U#u$|`PHQ;M_DmRt6sCY+CTS>`
      zNum*+P2=T=W{uZ!Z#tj<8O9^bFo&EbgK09q*W(+PxU`NVw1E^|4Y>3$HsT`Lq&?hN
      zgv+phBB4CNYkM(%Z7b5Uc^LOPRJsA3wg=*#7>Jwf!%g<#e#W?;Gj4St?(29X!o3@n
      zdvW1+(0ybVegj>}?_;jO;}K5X$1z?NcvT2iqp=?qetK*(h%;b=*(_#jVTQis3)w<}
      zb`Ger*i&VZpJKqB;ii}hRN!k8W#a_x0n8g`mSnm9z|pk)?&F<%(vXY{$-t04oQ4a9
      zy3okSB;7%pc5#xv3DQV~uu&Qc=I}l~U{aF(9g+J%hXSRLXzDSRwvBTS@o`9aVIP<F
      xWHQFt9}qXnd%^yv;l2^=_Yz8RtAp-xUG8xr-(rrw!#sU|K#fvQjVnRa`hNlmhams}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/Calendar.class b/libjava/classpath/lib/gnu/java/locale/Calendar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7b8240e7de2ad7161c7ee413c3e2bc7561cea8d
      GIT binary patch
      literal 1343
      zcwTi=T~iWK7=BhhcEtq|i45(-z63K+Yc#_w1wj<Sk%oq`safHOtLriYi!)yJ8~O>&
      z)Lj>q7tG|?59nv~8@lNxd(W~WX>oDR;o0YT&U>EsobSKCegiOpH4$9`1}b_Zx})qX
      zQLS21G!~81pqG`J2)lqG^Gm}}wP;4I8|$oIZPZF^p`n*GCcsNyRZZE{SjH6B1@v!Z
      zIy5F46W}gcu5nGN6U)~kX^LKn=8c-FS2!tN)$4|$8wEvcFbO>Z201Oly&|a^t5j>M
      zqMsHhz_X>+>PA92$Zfq~Y?n6guuba*tFRjR2KH24-BUCo*3){DYg%+~rR~`;a{G)d
      zy&csj6oc0;m8xW=8&tM`W20k-+~y7|8Jsa&(r61~PJk^GE(oy4t7RtQGWnekqZ<KS
      zkrBk80B34(eRV$Dj-xX(&bun(8s~|N*;FQ-Uy^V`K$osbxG4ZGV%(N-2Y1P7*4lq0
      zbTQeBNVw1q0U;R<I7N&K=(~`c3t^0L_xp65P`agv%8=pas|gt%xJ5jmF8rOC<K*P$
      zk6-1FRNo|~xx*vwu-tNZETb1*5wmAEr87$rbElbgz!Dr1L<zD4kAz<CvnZnvJ^{TM
      zRcG18-X^O(=l76j$pb7X)K>a$f-cyQ=9T!V5@TDXP6jjoyZ6-3o(ePK?WPAp;eWT?
      zl{X(lQsvvaPxTSb#4y!pqi5!%PE*LV3POZLXg969D4ZaV(!@R1Ou?8l9gJohvHRgC
      z#U(&+kedHKIFAu1+P+{QU$lS0P`>CmBEWauH{8Un{2@k;5H8xAxOa%i*>d~{lSMxs
      zHZgUG8R;0YqRnxPCq<j@scAHlr^!N|(bDH4z+nONCM80M(?S+ZWSkJuLgFSelcy3A
      zpUopCX-v{#fEWcZOIJBYv8>R&TE-aGFpXD)yv7{O38;kb;3amk2Mup%d<z}#u#NYa
      zLdtZc9C#C3kswMlJp(vKn^-#A(rJP%iQFQP^@=IZVAT>wEHTxb_;gNt(4n=rwONyu
      F`vZSPDcS%4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/Calendar_de.class b/libjava/classpath/lib/gnu/java/locale/Calendar_de.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d8c8cd22fe21204a5790c113f26eaeb2b6b1065
      GIT binary patch
      literal 715
      zcwT){T~8B16g|UkyGyB1O05VK6@6%ZV55m2DDlApNt2Bvl+-jlkm+_>2e;E?ch<yz
      z<;Mew27iD*%6Mnm6ha6OduQhCJ?GpxyMO=v`UBt@o_LsJSRbk^IOAV<5RW4si=atG
      z^?7pI7am-O4f`_FG7dtS>LZbkvm_GlGu4j;gCC8R7D}fKm6MZjqQuoOIP9H?NWZ0y
      z-6)ny>URuIz0qNCn`5KBz_4-y!NVPf(skI!62sy^CaK=zUk?W#h4}1YnPK^|vqggp
      zMN&WsD@9armm$A9b$08mM#slJhU$o*5syhGZK(sJXvF5haKDHg@(fF%RN_N6>WSo-
      z_slKJp$VtM6KT#CEWkm{*!ZNbKS>Ip7TyvjC9yCRx;cxhT5sGOSfOnbK9I(_bVXv@
      zG~*FX>d+TtSTp0&&Vdh)9)@{34QvHo<}Og^I#i2Yr@Ywiy1!BC=FU-W(|!t9r?6+?
      zpIH4)%sEm9s-zCQCWjr=@CMKE3NPrtS+^a=zcTX-Xl1nKo}OdlQX+4`38gq`z$PA8
      c@<V$OL*AZ}-5*%}c8$A#h3n3^Tej=*e{rysT>t<8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/Calendar_en.class b/libjava/classpath/lib/gnu/java/locale/Calendar_en.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4bd37bd58cf10f931cb0c9f520639ef22f05be3
      GIT binary patch
      literal 551
      zcwT*w%TB^T6o&tyg%+q#0r9?Y2QDaXbRltJ6IYEUYS^$arA%;0ohD`Kb9q^qnCJue
      zP{x^oATh*A=6e3`od3+%_xmS+BWzp95$uk6=1s!K(2J8OjH&0#g^$AYj&cho!JZCg
      zg2i6IrsA4TlPrzsdB#UEC9tD}3(CcmpfMN(vrHi$dso8=jl`)`^rDz?Ce8?qR=ZDN
      z`pJk|C==9I07Ve2Imn|xPz@NTm)XORrnlixm8%8HWj{=ry3ZdAJ)OS<12qROY*|Cx
      zGihl*_@_PTtvsf}Uo_BcwO6-Ly3svfFjdW6O3_hb97xNC{8NG*<y)Q%*s$azD9T$`
      z?rPY^2THGSp5-}*id-w2JAsK~sqdnyBPx@-pgp-OK7aUz^<T80A7_X&6QGWUhBwfh
      W!<{*7zQB3<!}?3CxnMW7YU>B?CToHK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/Calendar_nl.class b/libjava/classpath/lib/gnu/java/locale/Calendar_nl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12a29098390af7b92ad05589dff8fcf7cff2b530
      GIT binary patch
      literal 660
      zcwT){%TB^T6g^`LMMMQeeBgTpE@)h-(YO#}BsQ9e!4MawlmQ3pkdf8}FgqR|iV
      zql~wOpdrS^-09po=iGbG^z-ZW1HcB>42&@3TGBV$_ML6I9mjULS)w2tws$3613JS(
      zc<C$QnwIFQGv4j^p2PQj*>E{S%;`wQrRp+dE-$T~k}X^2X}!%IwL^$q#}!hjJq9gb
      zs50oKPJ<g5W0?AbU|^gfIh>ARl3}7LyskR1?@yZ-oZlEoF{FNwWoo3wy*QGXN+5%2
      zhUjj;vYsy&s-s|-Ng#qK!=xo7Kk;wt+&j1H!6a!bFraFCA~=W1I5gw}sTe7!Ye7RU
      zTK^bE(~h;cDh({j<_mwD60d|V9*UrH@|Q$00ArOp)##NN=7V<WOG69>ErwA#9fuKE
      z*547YX_0p%YFc`tQq$j%tVLdsu2i0peI&>TW+|qjQ`{n{ZRD_tCHev8!rP!oW*}_R
      u&S;OUzhM4{9u1Q{N}>nA0v1E^5|;bqVxO!(A^R}IJ^IDf2i%nqwfYVJErq-Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleData.class b/libjava/classpath/lib/gnu/java/locale/LocaleData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..338cc8fc352a2d477e3f498381944692138b1126
      GIT binary patch
      literal 6225
      zcwTi_cX(7q`+eWJd+!bb1ZGqOD<~oe1OkWxmL!yPVm1U5)axcJ$tIfwb~nMqjs?Yz
      z9XoccfQq76uw%!LV!@7L!48(+dH3%3eZTLI@8NmQIrq%mxijybIeWwUzt=oQL}S#r
      zFe#>ijcpyd&C$+iZlb**nuz6=WoSw?9Su{6sc+C0ZEMV(QQsVENHg^edR9bRV<{#(
      zyX-$*BI#tjt#K0EhW11vnr=^){r|ptazi5C7Ed3><Qy=phAC9oJ|`BYUjOx+U=U3^
      zF}cyGKcz%d-#|{S(qu4!jPxV<`9(7{?VN3^*0d{=ibgf<COlWuKxvxm*X3*4Lu6~F
      z*Iv@vs%amwlKzxBO@jkjg5mZHWLbfx{R3H!+YgX?lA4AG){(GA1Tq3SDl2O>jSggW
      zg{Hhf)=t$lPGrh2hI^2Vl+tuCQ#jh~7j`8RnkI_bt!Xm))yMn-41^k~`k1C8#A@^l
      zrfVt?3x$~?R$FGYX=1f$DiX%1B}`s@S6il1WvDW=rV8|LK!qZjD$%b26{->|<riY@
      z)neh+8nL?k=~(ztVs&Y%gEa?lpj6Y*u;$>#W5tU3`KaS@fh@rK>H}F=q-jndr@);X
      z$g*NhO<6fpQ?rbOg(bx5^vi2BwTacKX`Wc!egOtgiiL_`zqzr5Ux<oy268%<c05{R
      zs9U#KZGJvhc4AiI2`2|qCU$C8&eF6nE3xD=0$GSxcUB-})n{iVMpzukA}sv8Ko(=L
      z3$hY*zbKI9Sn!gptkiUAR$~5_2eJZByE2fK=({v4G43_81iYN<0xN>|dqW^+mTOvu
      zT`n@>SI&qOAEoK$Y#Ua3YanY-*4qOq8+>_IVx@P<(CwP;5i8~AqhR+1vH%-=WgrX7
      zG~J(-a39P{^nEChQ{b)%<kUh<k7gw%@K_+HW0_9`vIr$v7szr<_US-YV1~~IvJx|V
      zJ}Xhl^)f^3xtFpQp885w;zhp}$Ov}EhCs@)-^@yMcsr0a80lS+X@4r@Mj14%=>xGk
      zGBf>9tPV{d!<rlQ^QURr9LQok@-wu~#h(5`thhf7)BQ@UxTY;)wfoahgKxz`HNO)p
      znb}o81XA|Twyea<{W*}b$A6W35EsA0YK&$!&vsaic-Wsfp^dTb%nAMbU%FZ|;j}_)
      zR&q~5rq3a{C!yIBt3x&(Yq2^s=ZMuQ`<8o&)u|bI=`=+bXhvFk5K=WpT)Is$zqm{@
      zf>JfbH18@_JTsaEWm8=9K;fijNy(-Tzi6grNy#QWNK&$?%g-;@jFjx1k$%<Gn&QaR
      zDVq0_UR|0cD&uqfVptND@j03$D&xpJOk#vsDb13T@w60+M+dSPE6<bGwB~Wbcp?(g
      zZI1dSm6{QfsyV7z^05Uh`PkCpm)2>Pd~9jaEcw`iRKNlyA6rl^$;XyfzZ8#=d~9je
      zTqIWJ=yHizZJH5}UQ2sR#zR6n(3&fyU%OvgrMXJ_wQH^xYeA;cHDaN_l8-G|wd7->
      z-7m}6Ecuu~Z^_3*+AqVpjuQ*(l5k9P`eikm=ZJ+@g=AE%c$~yyYa%lRiN#h-J|T?h
      zwMkPl(=<;kyq%<2IK;5hfh@1p+$pUn?(t%!C49JBEIe5<v8~>(n4uY&sM_i^OCYu-
      zWEb<oKvtk~XGkj^E@{}-mbu|<u`myb!uHG$C!ZI{QrwFuRPCs%<Y0R+%OzrAmJ)*V
      zq8SSzsOI6dNdnGG_?39lQnB!)Ys5;)iRA0V!U81z=B51t)P9**SisGJRf&fq^;8lC
      zmdH!C`&F3Ya<Q;s?h>oRufndqCy+DoMkMl5!8{OoDusC<@4OVYsVoM8=cHtxJ|vBJ
      z7m{_U7C%y|`BAYjNeQ}C!jBYdmY_?u%f|?>3#1J4bReZ7&&oZR-}8YL!Ti>XobTsj
      z*)K`!e9cI?oD@PNKltJ2*ZzH77EPnt$h$DEgT^<5i=gFg83E;$z)N*XSg{0N3cKlp
      zz=~iNABtR%nb615ip{z?u&QxpK9e<fVURDR5M7xs7DnW`>7Y(XJ(WhCz7;E$vAz=v
      zq49%olV-`gbdz6=vn6?#j!Tg7uUUzbAo9F)yfI@V^Bic+f6Cp+nZJdTT9Nd}S5lQ$
      zO02Y2A+gf(5*6Z3b+l-OtaCeB<YlTHv2Y`@E~ld#+s4mNM(edg=7r@tbI~`r$ka<2
      zxuaVvNxjavR!BW>K{O$ARERwXS}WvUPIr@ESm75%+frH~|H8P&1!lBY&{$NOz1}Cd
      zE}xOTMjWc{Cav}h{K)j|Ao~Z`)w44FdJwAvdXY<>sNuaROjuu^vUpppqNBAwmaLA}
      zCt^${^QBx9O~&OqYkHG2pUXMqsN7y^B=x{2bGj*xPw73%{`ZGFzQ1!K?H$R6*tEEe
      z(&s--qvQ_SM}BPZM}VRMGBKzDGOdiG@eebl9HO3^C<KqfUH!QCTIyNrnBI}vkm(bt
      zbxprWt!HecHf(mmE;9WiwS7G^02nsA1GU)`*u(4%%rS$2J<YzrUS<few;2lD$qWPb
      zF$V(snvuYMCKqVT7@##{fjgV=z+KD);I8HnV1F|SxSKf?IKUhZ9BA@^yPHDb9%d?V
      zPct33mnjDBZAyXrm~!ACGXpr-90}alM1cF5nZO}t7I1%43mj@@0}n9A0EZbIk-o!C
      z6nLO%0FE#*;7HR59A)CbT+;#^ZCZh2Ogk{o%m<D&Dd0HM0UU1@01q-<zzOCA;KAl3
      z;34J|;6!s8aFRJ4IN6*DJk%@#9%jw~9&XMB9%0T0=9>$F1?FO4p}7P&#asrQYOVlI
      zGgkqpo2!9E=2~E}xgJ<zZUmN^n}B8J7GSx#4On6B0M0OX0xQkkz$4AQz$&u>7%{7W
      z)#d@<OtTtTV;%<1GLHa{GHZdg=5b)1c@j9=JOw=3JOez&JO@11ya4pgi@@W|%fP64
      z6<BXx2R4{DfOE`Sz?gXlIM=)fY&7o!o6II)+<XLVHlF}n%%{MF`5f44z67?JuYv96
      z8{j;%6*%8~4@{aLfhqG7Fl~MTc9`FQo#qeV0<!~ny!i{*W&QznTV~J+mL1TEmR-<E
      zmcyWvE%yMOV!3CewjZ5pxwr6Xmiq`VwA@elbjw!w49mL+pJ}<j@L84z2rsg{yYShT
      z_Y^+I^4`LWEe{et*Ydu?=UE;ie7@zO!WUQ`CVZjg1BEZLJW}{#%elf!ERPYs#PV3-
      zOD&HVzRdCj;ma)_B7BAANy1lJK2-QB%ZCduwVW?}wdF$LYb;L{zSi<|;p;3H3tw-!
      zRQLwV<-#{wo*}%<@{z(fS&j(bY<Z^eEtY2q-)gy5_%_S4g>ScfjPM<nec|Pnqr!Ju
      zZV<l9a!mMc%Z<YKSdI(dYq>@EKFh7bD=fDQue3a0c$MXp@couMgdecHK=?t+UBas^
      zpCJ5@<&%UTwtR~48q22%KVtcG;YTf>DZJM5BH_m@pCkOZ<#UCfuzbGola?<OUT67Y
      z;ioKLBK)-F%Y>h?e1-6{mah_i&hpj5&s)A$_yx<?3$M3)qwtHCZxVjV@-4zITfR;B
      z70Y)BziRnT;nytRE&RIWdxbYxULpL3<yFFOT7E$IEz7Hg-?sd)@H>_t5q{V5TH*IB
      zKQ6q{@{_{vTYgIT1Iy0{Z?gQH@Q0RP5dO&Wi^3mUep&bv%dZM=w*0#Ar<UIk{><`Q
      z!k=4yNB9fN?+Jft`F-K9EN>G2+VV%jTP%Mf{Eg*Lg}=4@x$suYUkZO``D@|tEq^2Y
      zgXOKlKU)4?c$?)Pg@3aAlkm@$e-Zx0@^8YwTK+@$H_JPOf4BUX@E?}{5#DYU3-7SX
      z5&qLESNJch!oq)B)kF9ntK|GMStaM6*(y2ztgMpr&yH1c{yAiooPTz$lJn1=RdW70
      zY?YjU)>g^+=N?wc`R5#~<ot6_tK|H1FRO+`R;i&5er{K(VJqY(Ssh3eDq#biiy!CF
      z)SJeTp*-qOV`&c>M}ufQ4W)x<Bu#*GFdc$_htouwN|UIRCex90D9xh7=oq*SbOgmI
      zpW3N_I;fCNpeb}3dM=`AbUsa|OQ?vhqGGz9O6V5ceJ7RC3M!}7R6%QL20cZU^a4hF
      zm8$41iqQL1O`p(A`jTpBE1vQb9YudoE&W4v?9y!RNk?-(I)?kxvAiewye}Qc!zjwR
      zRL|q7fhW-%&Zihpr@35CjU1sSuBABp)XXtz;TB5pd}`$d)W#=KJD*PT_#B$g7gCZh
      zqZD6FX}*y<_%`a~yJ-QhqT~5t>f*<#o1dW*_(eLAU#FA!9Xgpe(JA~XoyuR+Y5YAc
      z<X`A?-a%*J3-nACrn6LUTBIzUtp?CJYHwPshS0gF{dsB(ov$X)1?o_`P!-Zes+cZT
      zGiZsLNtdYEbg7EcWvY=bSFLn~O3{_7i>^|q&{B0KU9HZgYt+Sbt-6A)Q`ge<>L$8D
      z-9b01duf?^fNoNc(9P;ex<x%lx2l)vHuVPGuHK_N)JL>jeL;7st#p_AneJ9Q=pIMW
      zy-p6@=NMYy45XFLU|Qu2r~92edcc`T4>|?3+9{!joGN<QsiQScJw4(y)1yw3);itv
      zn6r=`cNWtV&JudkSxW1iW%QJ@oSt@8(lgE)de&J-&pGSqd1nK?;B2Jz&SrYi*+MTl
      z+vsIyJG~N8^lB)FUJDs|Jv5Luga*?aq2csqD39I>O{BL&1@um+gx(ER(R-mf+8C;*
      z_e0I}K`2R^Lf!OXXd!(RT1+2@me41mrL;M;j6Mx5r_Vww>GRMU`XaQBz6`CWuR<H>
      z>(EBp6534PgtpMPp>4D^w4J_l6@BmK&=0PmAKihp%^gfXxx?vaH;;aCC(^HO0sZEd
      z(C=;){o&TpcDJ5(xXtvZo20+oZu;9@NdLI<=j;+@cPT4(89VNB4!JAYb=R=xuH&$~
      zp0&Gyd$=1p$KA|5-7Vb9-NwD$?YxtxxQ~~^_{`;g-at0qV7A_H-r39JUA&3Bt5?AN
      zy%OHdtKtD(9S`*Cd3Udw_wbUur`OGUc?)@OZ!z!VE#X1lQXcFr<9)s5yq~v{hj?pv
      ze{UTR_15zN-Uc4#ZRFwJW<Jo{!XvzGJks0Fqr!@F!#O-UY<Ns~Am@b#^Vslk9v9Bz
      z@!^SlP`H36giH9~a1|dCuH%W}dY%++=E>nU8Wo<;M}#~0@bK|8LXF6L=nIVe*QY*`
      lMg9kh$Q`~~jrw=&;BNvkgIjt99n@$X2*Teod6`~g{||{$gDC(2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class b/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..101cf04c4c8e198b3fde4a4e3636bc634b9f7770
      GIT binary patch
      literal 2636
      zcwUWGYjYD-7=BK3ZCIeB6iCZOiY-Y)TC4)nA|R#ENE)<-A}zOVvQ3w6HzC;|7Zn)r
      zgC9i4(NWN0#_@s`M{7sh4vZbY>F5`Kk@}q7mX;=EY$kiozURF@&w1bU&wn1y0C)~>
      z`cNUTK4TVJ&Z`&I79*Qd4Xq_%FI}3E)AByJ1*)7=)y%XU9Xzk4ECKHx-PEnU0<LhR
      zPr%)gO=|(TP^rKJufWQLZfeQm=%AKArVbjKK+tyEr{;C}J}Y!v!+JqrW8!H!w9`1F
      zS++>OqNRJSyl!R$65)hxQnYkq)}TExpQ@u)M$+FODHZy$N&o>=qsE8TPt@#aC|HBF
      zEL^)#R1M}_6HY9Kr9IN`Lr7rlV%q~n-AHSB>Ag<DdTbEzT~v*tc63Ofv7DpQ1Or%y
      zO%mN_7R8=DkM#LbFCdzw;<E}G(8z4nTuw970<m%yC8F6p?O0(25i|+-t?V4&tHWi1
      z+a|D?{58v?W{1CKhmN>8l+BN-mYy{OXvTIQS_Ib3lh&gZvc-H#J5V&!hNkdJwhB~|
      zYeyikzf9Vtq(>4<xonqVUr?|EI~~V!r8NF8JZ$q9WnQ}lnwK^y7r7Gcc*%!7b606W
      z!V30cAFn`X@^B*F+a-IWq^1DPUzT(q5ZJvW3Qw0r`g}MjP(SayTQ3xNGM8%SrIePF
      z?2u;NbRx5*N3_e2b6V(+{c5VC)KF5xT56=z%ouuMn0Kz9;M$^|Y?i}erLnkG{keRW
      zoovyscW{>5+NH5`8oncI7^;=cJ9*hH7a1r;suI08?!z&9EI&mKs+Ovt4<`hwQ&0Fz
      zvKsoW9w@C<(sxopza*;Sc&}{TQwmPw3`;E(2Me=>tqI5DW$#Tj&M8na$bt>c%vi(r
      zsEo^lwDhCNa>|+dLAT<pRMZum#|STqZl<+Ma#oaW{5WIewL;Ob=1W-!5Z&qgQq3>z
      zifTr)EiyLo97G(+CT%@-7=aaY!&d9a7EMdydr`p~62E1}Lfn==R!rL0LeO2H*Cz6i
      zE-7BMaE#mY0h>V}Apbnv@wb9cAKzNI3Mp-xg8wIODmaW`9|OCvj8DZ;;JTb^C01ai
      zV=Vrno}aR@Xs~J$!8`B<tHvK;-N|j!sGY*b;O0qeiSj#%t!>_5v}qc#karT#w|VZv
      zcS5vzLZ07I8;nk4SDP>7D?Qt=;SNH<=mgrznucrKcd#WGeT4Rt!7BNg!v3<F-l$y1
      z;pTvD<y`9EEJ)%tu4gcc9M`w;3GQ-r0Jx1Ue4b*tr&;(JTBWcRX@t2(xo*cGy$oR|
      zhOrwX^p>aX1$3f7uSN8bxZ}7=%j-CY8??Gk?Hkm*#%MRG`3@|+%c!?`@;=_<`T;*5
      zb9WaX;xl}Nd-xPz^6eXZZWAH1A=r$u&t`HAhj7>?XAE83RoJ^YUa^@T!x8S>tk#7D
      zPd&^tH@j=VEp&6|r7wjz93`EVc$Jwu#5V9LZ^yL>^vvAF3iq!B*foLId&i}OZ%15v
      z?qeWWl?+z3xhbn_mH4_mlNjg@@p;zs6#^j-c}OK=!J$bE@ATGq?_q7M#_K*uX`4Id
      z;x<i#WK*3aa9b?oCVjoPgs5wp`QqQNo5mmC$3s}f=eJC13_*N{T0Foe{D6A=h(?Sf
      zh6&Q~GimsRB~7uoX;SczkUb*oGlcp9-okG-j9v6n3k?Q|2mdQjVIs@IcM#T`4P!lR
      zFL39g?<9#mOc-N)cG=){^CA>z;U#1iuYuD@4K@+%lL-`OzF*Wxf7pR5?Do0D(2mJ=
      dO5~}RCbg~Oi){X0(0pE8W<U~yE4J3v{{Wz2dx`)6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9f1dec7e339b2b60a76d4111930f38a1001b4c2
      GIT binary patch
      literal 328
      zcwRg8Z`VEs1_nb00d@u^Mh3<7yi)zF#Ii*Foc!d(oK$@uFy)z-mS2>cSdy8a$IigQ
      z$e=<{S$t|9BLkaFW?p8A9U}v?hGrNe1B-KhN-7rvGXp0N11kd?BLlxrW?rgaX>L+#
      zQAlD^PAVgV5ZIuw#G*_PA1cUFl95@=$e`>)&{k_k2Cm@z(xT*4w@i>uF$@)YApH!A
      z3_v$AfB+*90^I^6*?~NLFrR^eRcku~$3`H7iGd49vVjG48MuKY4@3cw<^^l#1FPZ(
      E0H}sej{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_af_ZA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_af_ZA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..729064cecc5725c8e87d5153d03e85c12ba69225
      GIT binary patch
      literal 2305
      zcwUWFYj+b>6g{_TlG`*bVSrMw$fLXpr2!EUThP){1e#VDXick@X>yxRNoML~28=II
      z!T0-tqT&->e)RFdwO9*(fXm<DPjLAQ#C>ijA#~wde(1et?|aTZ=boOq`Td{kzY)<c
      z`aVt#g0>W#AU$WDwbDg5XBAa?SZ_z18P_XWzU?|w*38sIf1DZxb!f-Hw~OgvyX>D(
      zWjFA0>R{mHi%L)`uX1+DDw=BE@+{x=1R28%+LlvDo4#i|g<e4|1Flo{Eyo|Tih+{U
      zBuI1%T3YbjU>+{Dcu7ed^$1EjL1|ifL%JqOOQ6x&-Py^1JA1GL&nr~o_*EA}P@?9t
      zNsv6J)S0|hDGORQdB>v4v##fl*SwlF&bW?03luAbM${_Jm#{C<$Agxysu}M>l6*d$
      z$)qb4Tqdt(tf1(hv`aOQy9JS;)?DCu%E?vCN@?0HN?MOQo<OT?$1e^nI@>5HGSPpc
      zE~+ZF1^<qXx0<kXXYY>NAgalsX0!y=E}yKw^XT-P%K5mn?8_Bx$Mz2(%hs+jL5%}$
      zUd0I=Pc3edBuK_g*U4M3?-3NwSk?l#7huqK${O4U*>P8e=zc*>gNRX{h7Uku%&Ta-
      z4~{1K$0tqb%Yh^<qvetw64YS2k`7|eSds>@589H3u#ba(m@)RF*vBv;!|ZRd!bp-<
      zu)-s_&QZ&eguX?F)U>3NFftaLamPsiJd8(~QIMTr=K#)+X#+iff_(y1cp3&~QPMPw
      z(KBdz9>$1!R?-ZNK~?6gvq@^>taG>zvIdrCW2TF^I8u8dbTB#Smj{h`m?*(UCVU`K
      z<Yot7n?*LyLJ0YTvLBQsJp~~Y;Vb?CBt4B@qZC(zXW@x*!lUPbP?JVn*o7pm<icL$
      zMr9;j#6FVYlb4g!PRrx;>Y|S!9E>=<e%k;n(2|x(S|O=T(n?9~l2%FTkhE6P21%PF
      zMI|L9wMa^FicgcYmAdeq4BL(x(O>ULYnopPL%%R%=nLbJjP>a`Oi+ZrOwv`_j#>0)
      zZH#W$@c(?FFwe~e<qy<`zHMvQoyR_5>St@n=FA=cA=kr!v>sQ9;JI9ahD9j`6bEV`
      zG=LIyxEZ*m4z~iQ>hMxvOgHRyo>9HGh5O2IZx8oXb#beKJL>Qn;I(yl9q@)a+zGs?
      z4sV76{tvJtsCgT0$4NI1&gpY%h@|8V+L3KE(q=Yl>@u@4W4D=&8+**GH1?X=RLt0i
      zHE#5pztH}w^MmZ%&&~tve2AS7Yv&`{`52rtsTOvQ7^5a4j&p>`5vMp}oFlS2Vp2yu
      zj#U~{SepzBYr@E3Z8j8?3RNYWmCmqIiIv=%(vw=Ltd#<-bWST(w9+$L={YE!k1hzk
      zz(Oy9xRh$WL9b*Z;9mp(2Kb+8Kk94@nKw0)0TT_Gw=`4WyM)Z!nmG?99y0G}<`Nhg
      zGVgN6)h5>&GVd|7hM8*A`^>CkrW*ADGo8#dh0KS{Y-T1AG9NJ`nQ0E0%gi)0lMI=U
      znQ3LFC1gHfW~qr5T=_{4%4b+7Fp@;OX$S3ry_c@hKKhG#=_cOb7#$Mrc!RgmVbO;-
      zc!Z9K(|ChDIwmgS4Zchn@dJ&B>oh9<zzh5*9T$J&0lrBC4GmEITxa3mzpK?Dq%?N?
      yBvN$Suk^*OGGdxs2uUtD&{y=e4*rI|4TF2aU^M#5kBeeY)x|c}Vy|hh@BRfAu<1+y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_AE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_AE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3c7fc7ce71a2baddc473c811d42d8e26a76e2d7
      GIT binary patch
      literal 2443
      zcwUW^`*Tx86vw~YG|4ti+i-zWut*@h3Z*F`BDA1T3L;Gr0>yv|x5=dqBsVp=0gKN{
      zTWWp3@PUe0uqZFF<1jLVe}Lm3ko@AG;P@Aa=j^?yv4b;aCU^II_MGpYJ^T3euRFg0
      zSc@xOR0yo-GxOo&`bj;U%Ea}Q5$;mWF7sF>o7Syl#yp~Dk8JJqqEetyIp(coD%_RK
      zS^JD!CZCNP+wx{2We5ZkMm(9;Q&D3;&+1ktE1-4R+Pc{nj#}BI+1Dme(~&WAmTp=-
      zdMa;7R0)U{fmwaoOn!h|rsF02G}J8MH}mOUBfCT8BvB_&6>1KJT3bS)5a|sVl!a-P
      zhBX0?8eS$KPZ`FEgg%%Pn0@%Z$>jPoS?l1mSGBSu8Pn<~%ae9GZaqDarnXKEZ`UoO
      zG}{A|ULp~UL?X?>LHf}`62>t-pR)ER)6-rL3iwV3`};SgH|2u5Ky5sq%^GHWFglp-
      z&7>q2(`1F4ErrWe2`y<_sg4;AO9fn8JGYmGmb6z0G%O9;1!-+<Z7b`qp$f!l2~-_Q
      ze$L_Y671<cZp1ArfozYbl4jD{LNlyv>Jg~y$RrFeD3id<ib=H6N(z(3;lf1Wdf}$T
      zLzI!SCkt1Lqs8&!sKmn*sn}JU)BmExBPBXfxK+4P_}Qk9QvDRYQ5-3b7p5dOmB_W?
      z2zh-c(N6oK$P~qWAFP7F7C&ZVj>O{v6@}{(+o<KKx3hg!Vh6XkB%a{*hQyQHUX$qJ
      zc8V3c{g}%NPf_JL?ZTwQKJE|EBow)y`y-Sj^?P`CCT#w+!;9k*hwRufp81(le^}x<
      z+y4$P=P378;u5`z7te4%!TzJ<KO}KX?LIG`Gwb)Go-;d6rM5Gp5t=zgg|V|M5tDY$
      z&XH#t;H^<vQWRy8bw)WW3CmU+Q=3Hg$&x*6+b`JBlyl)WtDWX;P<fMvTKP*%RQAO&
      zo4mpqsWp^*USl7%5}WXPUiV`juV<KR|C7Wh@6`y8jQP=kIbMv<xSr10^y005ok1H*
      z%$ArdQ7<u1qCsN5M5Dwai6s)tB-|1{i5iIjPw|BxE73$Zw<~EH-Rd3LulMqMrKz{B
      zN6#kNcA%$ST?HRpxah|PtfuQ=^(X1}G<E&Yx00?@b)R8%Oy9ful}-1*dA_K6KzAg0
      z=Enb!YvDjFrlq*(;jW{Cx#1zpOI8J_0PvOB)nwO{*|lT`%IsNW)5W2F10R3Y);sMy
      zr)_ZB`DJkn$ZjmN7m~fG%np*hq|6SHy{yb$P71US)OS(NtFW3znrYya8b^gIAn#&L
      ztWpa{V{UD2H0IIPMPpuVeKaPu4bfP@qiv+GS8Iz-VROm(F?Qa{&K>OB$<8~K^DgDQ
      zo17zo8g_PRd!iJvmm{JaaeyNZazso;999v}(pPFn=v$@f^z~_R`c`WODfN|<lB{%s
      zmC~$~VWsC;DW{b3O6inR8dORzDy5f|(yOF2<hF&*u+RvBvw_;Xcq8T_{wDFaiT{Yr
      zlxL+w-cck%#O;uG73t%(IOIJ=hKP6_^1dQxiAaZhz%wq0a-I(PkjX+OrKpdX1euhg
      zK4ubPQst0yOqMh8Iph;2l1a5gK4ntP#P5*LnA9?<ameRPW<{w4=WnTl@+Ex_(UAn!
      zVGY((e*-RIBmO`e?$Pt^L8oY-=Y17+igtS5yRl0grRP11-C~%Y_j8DdE9e$?ut)qx
      zkNfY~EB>U1{T@0hDoF7wH4EtYT__zwgsBzOx>w!C*Z-v9QP2+Y+Ya~!6Ds%;E<3?3
      XPB0bv{0}o?50u4LPRD+$ye9t!_=t$Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_BH.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_BH.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b141f21044475d687f47ff7ae0407452b0e3c114
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}X_MPDEn$IDut*@h3Z*F`BDA2kJf$f@pcqhLn=EZ0+0=9c79Ut?
      zOReu0K2Q;hw#rNFIE>8TAK>^0B)|A4IQ|9VId^w!?BI-<$=-WD_nhxN_uR*?f8F^7
      zz&cF&P$sal$IM4g=%@5ZI-AhbMx;YEyUpX-Tt>H2S@Wo#JKDC(hjM{><(Rip=}1Sa
      z-`a2VXY;v)(Uv!pX+t2GG!m(do{kxPdQP{pIRUN1*4E9QNX*Km%$^p3>h`SJZ|SDh
      zrKj_TM5Tae5}4hS%jWyYWjbCWKtqiJ0W+WJHgY>uP7<>OD#MN8aC1{Q945U!gR(F!
      zcUTkfs^R4V^0Z-`OzH#u0&|YsH<|w4Y|c6~?Nz1hXx6lP$?|5LPKBQ7%TPN@4R6ye
      z!=3E`N-voVMWfNi&;b2tAxY!7o=;l`QkiM52L=3RLcP74Gn@NEx<E}LpUW9$Vjwn<
      z>CUDlme6E{n@xpDs)Uv@t#tbghh+kuwq4swLS5~Z0(Hwmc0rn(n_EiyYpDVWS^`yv
      zlAn8|v;=#*PZ$Y{N+4Sk>6DqWw$co%8oC6^+p|f-2g)Qkvtkm>w35O^ai}m}xL&v^
      z@epOC?1{qF;z)6<I3n>dMJjgH=JdZT@rX;u3%3fBg`aKuDAiBV8^z(`SYb+HvrDcO
      zhso<ZiB@;cDT@2P5&~NTn1i_zj|-F)u1mC0%QJ6d`>MnaZf{BK;`WBbliXgD=-_sW
      z6*>c$#|lqT;W_KVgv5UC57HbId4T)Flq2=Kcyq>W{<Oo3V-kn$*ioMO8Mi+q@to~{
      zhgWlq`zmjVZpDk|xSwSI5%M3DIIcFISI?RC22jhHouF0Qnb8Q%oTj?i*}24|&9igl
      znfka&Docu@EOO2$XC-0TYNKk8$Uf!TL$>{b9ZfkGZnN4M-UXF6X{eRI#6)FZ9JR?S
      zoRM0C>+>r6sFm1+*YjEc^Laf(T>GCSMtHA=d1N$zI?VN9Y{u<$j;0T9{_6<ZSYnRE
      zJc(L~`4V*!3nc0#7E3IZST0c^;g_hE2=Wx42e1kaba6XUrqQXMkpp@+KUbQ1>bmq?
      zifspaTh&eQ!-LBKT*4Z<4OVZ8E>A<p|9mRxMpg9~R{Qj|t6kM_|BL63srPe7if69>
      z54k1|#1dMHhu-a3RImzo$?}m^1}XsjC3Y3r)g^Wf*})QfHraG>s9(p&U$wPPJKt&R
      zoOVG;+(NSJOYB8tFD|h|WG^kT!(=Znu~(1+?F02al=Et=p^-)!IIYG}<_XHXSQ{_b
      zBC&Xdwk{U;YU^WhpSB?um)gcyJm}Rn(buQ7#HO&tb$*PUpJ3;9cHYj;JC*Zp<-CWS
      zqrqx+_Go)!6tRyZVjOXhBMxyyTtysF5zo?BYDei?sp<6fYYF;RX$C3vxJoHjI>|~I
      zR?4!{^Q_dbl=4dHv{D*SN-rv<mzC04QW~tVh0d|iFoE;In!9*C?jimL@wbToh%J<7
      zxkKJoBub>hA@3;C!)tNKyNV1F@j2u@Ma~nE4tbwvTo~g#9r6K_MNHhN51E9RxKST5
      z2{Wm5$OR@VnD`y?F%!w8$|0XHsbUgv$frzdm{dFDGbXcRRDz4Q)Is@zzK7{Z0_(9B
      z8>qh#SFj0xpau8ndG}(wsH5k7HFk<tdfq#+TO6b3J%>GFh@STgh>A&ciaXdVext|z
      zckB~?(!+ia?PX=8_@$Z!bo?&4hY%5J1+^8cZ{w?f((o#1hXiZ~e2sAxd<EY)!A(vu
      V75d^2Ghz>x#FkITeyhAD{syY$h_wI!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_DZ.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_DZ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd6305f21b01df691cd42aa2051d614618fb8cbb
      GIT binary patch
      literal 2442
      zcwUW^`*Tx86vw~YHp#Y4+i-zWut*@h3Z*F`BDA2=0wPTj0>u;+Zj(zJNN#F!0~Vi^
      zw$%E5;R6-1Xi;8b$6;g!{{Y87Ao;~V!SOE;&)Iu#jUAjZGr7Cxv*&#G?Agb!f8G8C
      zz<ONvp-f;^znKpo*H7x<R3@&cjBuA~cALjC*|csYGv*OJd!)11hYEp4<(RjUsc=^^
      zXYDs~nS3^GY|opClpzpE81ZCUPeqMEJ*!)ptbo>KYwKozIBI2+W`CPNO-IJeS-NTU
      z=&8IRQ7Ir=1m^T-Gx<SsnTeP1(@?X3-^{1`jO<R8lSG|BWvDq6YHbOHLZmlnP!^`;
      z4r>BlHM~MVo-&LR34JIhF!%61lgSNaveuy)uWDsSGNv^^mN)HmJbHRCO>LbT?$j;A
      zo$WqKFOdjFB9Z3c5dCN&3FDZaPgw_&=^3y41*%R52L`sJx8#DlKy5sq%^GHWC_0qx
      z%cLZh(qx4jErqL82`y<_sg79=%LU3idpk=)UF}r@4a<XeL0Vf|+e-TDr~+|X0#%2S
      zpLe*l1bh3A8*z(DAlu`qq?xp~(G07bdITyuG6};6$|NwmViK*ilEPGRq%c{yR=6SY
      z0A-}?slt`wSaG5_Ch;IeDt5)@^uH+akV_{EHw%{wKil+Ss-L3Qi=)Mf!nDK|ms~B5
      zlGk?<?e3h@6!(241h)Ax7xN?@6(}oQlh{rz&)muO6^WhP-jsNp+v^ffaC=pvi`!{d
      z==NhiD?CYs=d24;68pJ7Omk4=0q&1dj@0kr&6%|MQw}dqNc7sV<2>`zZhu7LS=;|M
      zujVNCRo)VPiWkptKf(TE<UcHNOl>}|o--Tpqn<N6POG*vqY;`pMRl>WbBRftXXnT>
      z4RV!KmJ~%<WSvpYO2V?$#?>B?ebTi@Z2NgTnsP4OVztw}3o38YP%D3tiORk>Zj+Ze
      zBee$C=T-JmE3pZ$=QTeT@OnnL_CHCC@m`Jc$haR3nCHX9tlQ}vO&{L;*AcX_#9WE_
      z67>=bBpM_ZN;FC=kys|NLc$|aB~c?0;3+=$V>O!S;&vrXqgy>A2lPIEt~B-3_2}6o
      z+Ya=$tD8`Ta$NM|0@l)Pum+NJd78TZ=Tk{Hs=D8>I%ck2{pzNBU%aZQdOvq2dFICd
      zkZa*UETyHC)4N?q1@pj5mXEA5PytX?Vpo%0Q)1VW9VoHqkWCkd`VD;iRa@`03!JvW
      zX&08nEh4+I#9mDHk`g;e_OcQ?MD~gjdnGB*K2X1$a$bYAG}251r_?yg$^-Ha*2OBc
      za5U!8)<<JrZ9_EX(>6w9Qri@b1-#m3`ueoC=rp#v&X2J3W9;0)&O6w7mvY{%ocEA(
      zBv8Z7<=WmTMeO5<C`TORh(jC^QxS(%#544j+7bFzYC3(Zv^agMHG`D;U8N)|onWOj
      zD`i;eIabOkrMyx)rId!0(hExIC8hKVDGhsUp))KrO5kju_6}Z;l@ou1_*=w(#8%3)
      z!Xa-f5+UMo$UBPk^I9D8t|G%kd=7a}k+VdkL*C~Z7ezTwhkU?fF%viHLnc8cZq!Fi
      zLQE<ha*oMLCRGmkn2BUk?T}BHR5S5A<WnZKOllnR8Iw6tD#7`i>Y#i<-(EVBzy_?t
      zM(S_EC2YnYXv1B4-o4l%8t8dngI%JXp7(C-7DwrM&ti`lq38V^BH}W-#ck{rztQ9V
      zJNAh`>0!T%j<PaR{8G&VI(`@2Lx?c7f?Cg-TlngqG`tGhA%5EdUt>}QU&1#|aElX6
      Vg+Bkotk{Dku@y71-zu-EzX8E-i3tDz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_EG.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_EG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0cbb10854d95438a9ca39681c03fefaabdf6e0b
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}kL0#Z+ps_>SR@c$h0+!g5n50wr6Nrc0>yv|+hj=>l1)uFVDVXL
      zOReu0K2Q;h7Ud;&97bmF4{-bgl3)B29RC9GoV&X<c5uebWbZwnd(QWsd+y`czi$5m
      zU_CDTQ6jJ^Y2{ju>nHV=R3@&cjFxWI?6Qt!vT5BmGu9D3d!)0=k1~M<<(RY0R7<xx
      zXzw!yGr4Ts*q*ZzDMKKbFydxfPeqLZJ*(T9tbo?-XzNz8C2D6)E7>Mc-I1{dZQZha
      z^;FJ~s1Oj%0&|ktOm2W&X5u9RG}I&zuyW}>BfC@OBvC6+5pD{HTbsk-FzF2#l!aw`
      z!<v9k4X+T8rwrpnLLV9wn0xr1$qe>qvi89luPS9nGM3#>mM`sg%JuX>n%Y`5yhFDQ
      zZ?^j=y+k4uiA0)0L-eDCB#dKvE@kgG(=%T83sjyC_4jW{Zy5~f0yXhmHfvb%q3BS$
      zFO!m3N|WWUHWx;z5}Ik*sg79=%LPh1yPhlx^|V(B)GrS?1!-+<Z7b@pqYA`n2~-_Q
      ze%|5Y671<aZp3XWfozYbOv|*l(G05_dj-lmG6};E$|N|uViK*ilKfO*BtMzImcJqK
      z0A-}?sr;3~SYe_tCh;IeDt5);^uH+akVhx;H}jYCKRfhcs-L3Q3!{aJ{ItXtk6bN`
      zlGk?<?cSWz6!(1v1hxe*7xN?@6)4GHlh{rz&%A@}D-t`oy(#fHx7Q_};P$FSH@DNQ
      z&=bIXR-lUdIP3hB#6Ip1(;O7JpZlYfBlUZEb0!`Bl*<bf5{I1Fah~~UuRkL3tmA*1
      zS96s6DsPEC#S3S+pJ4wn@*kEs#{34ao-^wYppG*;POEk@qY;`pMRjqq^N2;8=j6yU
      z4RDoImJ~%<WZhBDO2T&3#?>B?ebTc>9Q%1EnsUzHVztw}3o38YP%D3tiORk(?vR%`
      zBee$4=T-JmD{%;~=d}P9@OnnL_CHCC@m`Jc$anztnCHjDtlQ}xO+ViJ*AaBE#9WE_
      z5_J*_B<dv=N;F6;kys|NLZV!vQleTS$WweCz-lzo#qBmNqend>`}ID4t~B-3_3BxZ
      zZ5R65)lH~GDJ}+Z0c+_t*!?D5p2qI~`Bc)4s!AGm$IP{>Titl?i&q&{@8?dFXKwfp
      zxn>T;Qd&wWz1y`^uyXjw@{?5pDgY{r>?*RWi|iV*gGKfnvgzVbzn+i3YU|u~f!o%*
      z?ZTqCMPxS=*^9|uQe=n7URGp>$zD-puOtQ92kMtn&TFuiMw)2glp04#X;9w5x>%Xk
      z5{;E>>!UHBwjmnxYa636scnkJf<A3Cef?TnbQ)Vd=SSH2F?Q}?=T3I+QqH@S^KNpE
      z1gqJ(RNE7!h`k&U<%k0uagZZoD&nw;c!s`GJ3`+IO{Z_A7N>8OW{^_SQ!-iU1S_Rk
      zDZ@(7vC^PY$|<E&N@++by`Yp{QcACo(r~#WbcTgS37ieq+`;RyQsQqAe~b8!*h+bp
      zx#Vp{B1Fnv@{S@&UW-fKRb-fm-zD!Ua+Zj6$@@IxqA2I-k`I_HX5vMC$RxzXi~5L3
      zm`R08&M{fZq|zlHGm%WHT=EH%DkcG!e9EMTNwrHpV=^a7B{+Xm9h5KVdx(xCumS6^
      zk@}l(37hc;+HjYicON=MJw5Mh&?VaGdGEn4ag?6-EOv_#dfv|=A}*sx+{Pa98$Is7
      zW3Tv=9`?KFC@CSuFV!rd<9ES3glM5wP+Pv{7QXr?4WEKeNWgKx*O*knm+*}n-0TKZ
      Uq0j#?EA~K9Y}rigx5{hkZx!K)qyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_IN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_IN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b2330f00c80f17f983fc8ae26df3a8f31ffb005c
      GIT binary patch
      literal 2454
      zcwUW^`*Raj6vw~YG|6q6masr6SR@c$<<WqM2rWJ+4=ZgEmWKfqw#kwPl1<%gz~Zye
      zmRjF0e4rwNw#rNFIE>8TAK>^0B)|BBe}Lm(Af9t~w}uYRm}&Rk^SS4I@44qbe*OE_
      zF96nHJcud<OVegCepElM$FupQo;Bi~vgt67<gJ`;XY%GD-8$6K9YnQ)Ch1tTGue1&
      zreN<j3i+ayG&UE_RMt=sNg2sZPS0vapKj@P-cq1;I@-FKj%&7+G1ILI>e};W!PZTC
      zpPnrm0yPSh76sGOR=(IrE|c*BVH#SgAZ!+MJ%+VS<|HtUNNi<{|5mreVlk5JGbj<$
      z_B>PtHJ-;}1>%HZ982l_1qCw>-ZP~_Z{D)^PkPl#yDM+ny<`P)ZpW|Z`f}7xlfzqd
      z+wdm5kMiG2zi28I?V?|_pMJzr#u2@kwfAIlldktG2=(@E%xx@0_2@|j^~s`T8D_Fy
      z>(BM%vjPhg`2ILGPSwkpcD8-W=pq{J=-yos=Ls*R9a<EfEX?ZFt*h=bsSZh62$hMJ
      zF!Nw#A$Im0HIg<JLbN5b88c%)LbEJu-lw3tJ)bgyp#6zVt(yQzhDu}Q!P3Rj)zWo=
      z2Pi9PkCiT$hs&eoVSxuJQnJeqr~eBA4|()r=|*Y1^s_@Brj3>KT6w5ETAC2p=#eYs
      zA@cf8pv{|eg5tiffr3ZEn1PuBk141sT@~0&Ezi7#?aKn&xV<6p1h>}&p5*q5Kqt2o
      ztk50CELM1m_L{RUjS1}L{s7HEk$bp5L^)EQY7(HVC4buG<xznHPV5NJ{EXKh6nM_@
      zzs0LL%zc@+K#%0*)7($7|1kLv2pnO4ombD9^@h>FnH{B7JDJf4&77sWIN5o`q|I}3
      z<eB=oN-|4|qAV<Tl(Q1B9kmg;M`R!O>_NwV!HK4vOE+2VB=3UEn>6IgUt%J&FON9n
      z70yVm!Si{IedJ0U!s|H|#%x~CAlLpUfnnaOAs!hCqY*QM7@cxQ-J==An|B>S2Mf#)
      zm?h94Fk7HeV2(hOz<hy)0*eLw0wIAqfe26Wc^J#kOxL$FV;bG^N!g?K@YAKrXK$Zw
      zW!QFMpiSO{5PY~0#(Auu+hF%*=<+mo{?BKVZd7gBu-hlEUBj~GdtbbeCg0L+8J@Z6
      zKjd0C5DRE2K6=BaQNjEOkQF4W3RD1uD(qUa>niMevLhAtbh7E<P`{Cnzib=acDCC#
      zy6v2bxVdCERoL^$o?l@{$zE7t$H-n>VJ{&C+6U_UDCgx^K_e?^;Dj7Ul`kT0V^yMB
      zjcW<Nx<*R`)U{e7sIJozLS3&VA^~*+eS>PNHi1o^^P}wiI6Jqq^Hz4=E}c81^A2+E
      ziqx^QPu;0e#4e7|IASkH?B|Gtj5sJGo~5r)57D<q)#)2jlk}}s4N^*bN*Pu<#!5L>
      z%Cpk*tW=OnMX7W`D)mdH7p2n6Qt4Gv8t^+pr&(x-z?n$>ZM>fF5r2dDTf~3FCd#wg
      zC2vd8Ma1utcO*&kT3qt3Bm+c(E_qLqGem?--sc(TYMiG_K43DBi5K-DlPD7}>LVsG
      zCN(ZO%VY_YkV`&hBAC>=<P#>fOu{btlu134I+uLLWV%KrICn!HlrQLefQ}@v7OSw1
      z`s;BC8}KJuafhDw0JbWP^t>;}cBPG;_il73hv|8@utOQ7=lv|YlyP(`x3E+BjUM;k
      zu}k@j9`-wEuc{)&FXb$t<9FUWgosnCQ0rfQ6JPzCMnFO*B<wigYh0AUm+*}n+~NjP
      Uq0jv=C3bH`Z1rU9x6*6u9~i@mX#fBK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_IQ.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_IQ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e95055012adee3f86d4cb00ce3cd38c64f9b3045
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}ZIatGEn$IDut*`i3Z*R~BDA1V9#-072^0e=Y?CDoB%7LUz~Tcd
      zZK?JB!Urm1(W1P>j>EtV{sE4Ez~&eK1joNXJm>CijUAjZGueC3=brPu=broc^{+d>
      z09c310h9==Oq%(oWBLibDV>e$X``t_HSOlnY%Zf)sjPWe&mC^>4xmh+RypRaRJy4n
      zHDK*E2D15F+}M^k6KO*roG{|4jGm4f{d!KfvN-{*!_n5wWK-12rOafDKxJFj9I$lL
      z>e17AL!w+jGz!d4=Cb*Ia+!{o2+>f3K*-EzdX3ypm6OCQf$~U0B+}d%i9|@R-=Hi^
      z%Ny1N{Azf)fIMj!#}oSCfWVwX_f2M?FPpOtOnX%*yEAKAePsDFZpWu*`ZLtdQp4MI
      z%kXA<fYM7O>N-0+8|nt>M+-?9NA-N#+Ly{qdp#%+JXP1%w>h(UpiUR4isy4V!;B9`
      z2Q$6dw8Rpc%)ZfR-=<1vDbq@~&2U&IP}<(Ty(rYvUMWzstj;M&b8~Y`QGYE}AWlo5
      z>QM4?4;7bSPwz1!ZczzjYdoDYQ`T0RVO4#PKv`QhVFW;#glASvqM24=PZoyl3HzFT
      zL*gOINZFJ2mBMIYyf7;9FhweM#o_e7DDj9#C+wT{W&5^6AEo*!dc81G7`LY+Hhbi1
      zVT8QCmuU6ooT9iN$|0~dggKZi@wh;VeNAE;wLJ57wy#L+<o2e-liXgHc#7Mr5*^%5
      zu|ih}^H||&Dm-UxPfG0N{t(SUk^8tmLOD{uhc{=!;m^3dFfMV>i5=sapY{5~63;vS
      zcX%~NxUce-=vBOMhWiQjA0_`GiKA-sdG(xGUkKHl*)dwRlNpWB%xS8NlbuIQ+B_#m
      zo~fU!q_U(a$|C2Ea#j+Sqc*1Yi0l)dJ?z*oI?<G~eT&sj@h+&mNkgstWhN^7!k9x|
      z<&4xCJfGLtN3Fymyq?!Xn9u7O=Gy-(G0J;2!XslL)L?D^<1=ojdo%-h>t9FE!4h*M
      z=1Ejb%$KN<SRhd=u~=fM#BvFrL{OqqBFs~K5yC3e)5YybnMRj-M)v8w{9I}3sq4{m
      zDYjkcZ&f!Th*De(;R4psZLs=Mbb0DK{^wIkH>x6OSZ&kSu6kAd{V!fHs@~6?DW19Z
      zKja!Y5KCw&rSxvkqJsJ0Co4c!38(-F7TFbKR~Fe-WQU9F*<{njp?(b?f7MpI?R>Yb
      zaoYt&aSO?=EwUGpy|~D(BYSC)9U*&pk-dTxXdkFwN;$8_8X9S!fs<++C8c3`7i(i>
      zT2nOU)7C{}er<g;7SJ|CV^Z4~jfMT%Ci(`nmgp3=c+QWp^Aqgc#?Cv~d6#l-SI)c1
      zxiehJ&ZXL(C`EL0M3f`;bHo9Th^dG}D&jf%O6@Rx%Qc<8K`l<-3e6y;q^Fc(rQ@uW
      zVWli9y}(KXN-3|DPAa8ArSy_gdPOOnCZ!>tBXov^MhKh@SKY-Mu~Oo15`UZcPuN0v
      zmbv5|MLLQ2T=K3WNnVRf-cw|VNWdlUD{_{Ibjb%i<H9KC>5>nbEMnqCeZ-`Wi5K-T
      zlL(V?mz-m=f=SRNpD>Y3DqQj@lL{swmwd*gib<tQK4&sJN+mddQyr8q>3filB(NT9
      zv4Q#<aS5C72U>8Co_9ZXh#Gp{S7VoGrRTj1?cxYM?>X!i!}PqLL#McmE^!BY#BcPt
      z|Bi0)Cq3-<&{k4HieIT&K*#TbcL>o$t)SMo`WC+aCk?-XPDsdcz&Dss!I$u@8{Fsy
      VQ=!lQI3sp{QEb_C?03p*@^8c0i3R`w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_JO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_JO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..716e7c3d1edf04334015388af80a0171dd9b8119
      GIT binary patch
      literal 2272
      zcwVhkZF3V<6n<{fB)4tahHYsJ772v6LTQSK2rZxlia^r}%Zs5ZY?CEfNH%q|0fR62
      z(smerfZw&ww1Nn2br_k!AK>@{HedV+j=w-W_wJ^~49@6`o$0;zdCqyxJ@@R%`T370
      zKLOZ-&qDAqY|onI_%-c@7S9*cT3(Nj$?c?hwP+PI+bEisHS6-Ji4d9?`lMsoHuCW?
      zqhz1eOU1I4){mCWOkQV*Wc0LA(DJH2ty!8~v>22zH@0SG<Em{LW_FmNEm1T}wr1KF
      zw0v3TXl7u83~RDhu{=#Kt9p(wnFbibX1Oq>Tca{3jt++A*gz~cG#HD;DBiSAS(tXs
      ztS|(nc`F0Isq5D>TBXF$Ir-dVO1YwCUtINSl{i^6?Hr+C!8-)B!gPW54rxB7*?R4^
      z7bv|<CYnqp2ci}FqlaYlt6Dj4pEC-pUN17V+=}LM2MY&FQH`NJUA8RUOjp!OVXBzt
      z*hH5(4+oujs)S;gc0SSIu!X^YYT{U(v=)0iL+_TTTacllq2apoZmK|<o<P;1<hv&8
      zOE58YO;6iY0zQ(?8>V3&rW<zjUtnlT6f=4Vlu4wqVjM&C5@(@0<IFn`oQE7QQAQFk
      zIQOe_)w|U>j+aR(x%)0p|6g*vQe)?xC1=t3(Pdwy`bqY?>TLC{v%+z(#(Z0yC9iKd
      zMrwDiknUbH7!HTgi7s(^EsVA3;yB9CQ~jL0=Bjt9b5Zwt3GZ@H*|_sPi5Hy59HRn#
      z<vb#^#PJ3N7hV*6K_q{QtRjeO9TUksaF)rw<l4uD`W_{F$64lhlgdT07CFv}B<HCB
      zGnBv#$2o?z&ON$yNfgCRXx=qZje8nRtGT{Ky2gh{op|k~FuL7$za2)8c=x*uKIaFH
      zE3{W<g=H#?UUY?!Y3O<HgNJbSZy(mBIXXGka&&X_aP)Gl<LKkq$g!DYD@TB%g`<rl
      zBCfa*#t!t;&tc3k^>O**Jf}^GA)v?sazV2Ufju%fBKxZaetZx{1-qzdcFv%d>>vA=
      z1Bm*xHLKf+)n@MA(f|B*Zc*h_8a2eteg6<{PzbS!p5muz*g*vgAV?@g$OkF_TIz5s
      z;kG*5PB>DB*AS+5q;s!mM!9!;dylvGdi%OM-Fm`(b$A2ejdeImcyk?&5#Cydw^0Q8
      z4s`ZY&O5P-ECXb?Dedt2Bm60Lr<#<wnhGd;)KpN}tENKAJ~hRa{c0)_R1VM@QijzP
      z9QrTLM<Q*)*{{5=k|H4#$A#jAP@EKs(^8R?iV0e|a)#DsMWwYxIZtb=a*-mX{<lbz
      z0XNV)BG6?bv`G6?q*H$4b>g$cFXIr&nmi^anIpsmJjRerikP6sT$9WsF(Hq+E*Xs&
      z?lF0B<9d-#O;r%g2Eo)+reLCisi}&Bi3z6JW2ObOO}@)x-V+QLOsmIOf@u{@*kek9
      zX%|eJ$Jl~dqf!aVOR`aJ(t3$n64;B~*hlC6_!<ZB8;0?WrehGtSuf4SojAcpXd;f|
      zB)dYB(86gpLo@ITB-tWOz9*PqztGJ46=&G*H1VDx;qy_%_vJ01_N&yI5OLZW?SY+-
      raqF)%f|7J4Vb=j4;v*^k7`Hv~peLq6mmf7~&(~?2R<)l<uTTF3o@Yml
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_KW.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_KW.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b24ade7af1750730a92eb0c6739a99ccdc05e069
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}X_MPFEn$IDut*`i3Z*F`BDA1V9%7p!1X=?sY?Gx8B%8Y3fW>F+
      zgIeD&e4rv0Ey_#mIE>8TAK>^0B)|A4IQ|9VId^w!?BI-<$=-WD_nhxN_uR*?f8G8C
      zzy@3nphRGGubGRS&`;@+bT*-<jYx-T_L|4DRz|l|S@WoF9c}Lppj4nvIp*wCI?|CE
      zun!mm*_@RycI3=t+7JjOjYKM=r(;IHZs~T`63{vvZQbmR#B3{N_O=LAwPno#TQ}`4
      zJ)JWo$^}G|z}#Ldo9ic+nRtmH4K)e`&0MC(uy(7QB<2W|ha1D;=B98sOnUtWWntRh
      zuqNPF!z%^kX~Q^~)CUIy<{i0bG6Q{C%kG}>s#JC~YubHe`7>^(OwaUZsGXyRcj~s`
      z&2}H9mrT}2qtV9tLHf}`lE!g8m$nb4GBaNH3sjt`@9W!|**Z|K3sfg^mSvcU!PsD?
      zC!3a7Mw8`lG!=%a5?ac%(`~aHRtWgoyLT3adfKZ6YFE@d1!-<>ZYk=orwSx!2~-_Q
      ze*Tf-671_aVI*uSfox5rQ)bHEPBW}&=n^Px%O;HgD3j3aib*unO7c^Mk^E%-TK<N_
      z1C)`nr}9?{V}*&rn8bq=sn`{V)BmExLmr*X-^^dm|Lo9*seX!HFN_u@^3xJqJ#w`$
      zN?zYdw0d(+Q{4CE5ZE5XJj|DPRG=h(O=1VNJo8SruSo3X_NK(+++LS>g4?SS9o$Z{
      zLT3;QSm8-3JZGJsk~qNqA)13C4|0E$a-@D2Z_cE{pK^I&LgKI!JI*sd?e#|_o^||h
      z^J<Q9U*#>)qj+JM`$_g6BmW_Z<7)GH^_*E>5H+0H30k$28I91)X{w8pokvXCJSRt<
      zsh_K)vZN@=!g5DBD+$|C8&`Wo_9@REaqQ=vXv#T%i`CBXE~vaoL#_NpCMx^FxI<p%
      zjMN%DpI6yOt;8X`p4Wm{$m<#5+W#am#(Oo&BjZ8TVtxP<vu>w*Gy{0^Uq{fv67wV$
      zNYqFyl&F<hBvB`^RARZrN{KRw3W+L-5Kr-W5Npst7q=s28lCDHIjHyWbET=Lu1mL4
      zY`f6ks%}CBe7G3I1+1gnVE3iy@-%e(&!>`ZRAsMWx6NF;nl%mgzIYWe^?vS7@yvDq
      zA=ku#SVl|n(Yrl|3RVU`Spl+2Km|ZWkzGl4RgqmycBsgnOEz5`>euq|S8a{kE_B;k
      zw_Q{ex0vj@B6|thON;D!vX>XxVX{{i*{eu__JR67%6To;(MTf=oL1u~@rC3atdEy!
      zkyyM;+YpQUwT-cOK-(0HOKo#39`b8j=o`>lV$;~>IX}YAkFj$bJMUuWJ<55na&9N*
      zXsC*vecHYlMeOH@7)Ko9h;ELEtB4~i;u-o%?I?ZAHJ!c{T7tfnnn6mvo>GdHPO?&l
      zm9nh#94iedrJPbat&|3p(hExIC8hKVDGil5Lc=UHO5kj$`VL-?`-s0m{4L@?VjJaI
      z>XNq=i4rMu$vcYl@>*Q-t|CK30xo$^k+VdkOWx-h7sohHmwdov2@@~sLnif1yr_?u
      zgqf7P<Q$V#Oe$RRF%!w8(j}iTsbms#$)`-JnN+#tGbVFmRD$z2)j|1!zK7{Z0voX&
      zo2b7Tm#_tYpapm7dG}+NsHNw9E%u03dfq#+R~)0~-9oz<q38V^qT(_-#ck{pztQ9V
      zJNAn|>0!T%wvrN3{8G&VI(`?tLx>2qg4(jRxA4_JY4{a%LV}J1zQ&{qzJzbw;3hYi
      V3Vr^ES+R$TVoPUYzg1pSe*@`xi17db
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_LB.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_LB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a64387beb94415ae60aec3c586e2b4e86be645f6
      GIT binary patch
      literal 2272
      zcwVhk?Q&C96kVrjlG8RV;ZoXyMFQcgP?{nlLW^k2he!%S_%Kw3+vL&)lAC&a0~Wuv
      zbQm7M|5|5?AWA`pkr{jd#|OCi<0Cjefw<1OH#K%}MrZ7_=bW|nUi<8`@9zHjk4HZN
      z*nv-@Xb{*uZdX#5%qwQ9Sk9S6E0xyU5&L4<DVc7eY@aus^XZ`|8U?zwW5q2LQ|ZE#
      zd(xUJSDc(RRI&3#OCX-Na)pvv%vh7AW4dKWz)1VCO?y0*ah-xaJ|NIKT(+lN({|68
      z#fl}-Bp~_(mXAB-$|PMD^%60fdIe&3r8H(ahjdO7%LJN|y~$*MUox3wyh)2$*lx{i
      z2t>4bqkz0>S(o$X^pwDg(WfReHBollvx{CW8jqB1cY-KV3JzhjG+E-lOq&mwu2sA3
      z8K#%dCq_m_dK1(9;Y0G)MYB?LPZdgwUe5|NUrS6(>@Dq`N|*v|xr*ahc5XT|T^cJF
      zCD!q>>P#PhS+#=g7KfKOY!C>ghhDFf)?#lK=-QC*3)0`;KTvnx&I;uC1XhR1w~yAB
      z;P}`jE9bHVaxhmc*ai0`-ms<Tj6maXId4V5OyWx`CehEAc=Od6Z_c~xeJAl8Gtzk8
      zyHlO5-mK0_JWr+O?)W_azL0pK#?E;Q-YxG(pM8<_)9km^>(!gy1Btyg=9}tudVMW1
      zSiAE9b+?-!@KOvb(5_A|$FLIZ5<>!=)z9cPTfI@8P59SqcvIp4U+H~M@x1p?;*dgL
      zdiRJHBwl53<;CFhD*4xFRY81fS|xMWyHERqZ$GBgx0&n>@4f^-NF!t2k~pc7oMQoI
      zn81w0DS?&VZQi<|isC0U=bKpL&ZVZsT;HH>=|i+mz4lxT9saxDjG<G#`)z>+?+1ws
      z+^g4>Wh{m+v`3L&((}OwkK*FrKCDkmtdLkK(IL?((Iv4;qFZ9E#CnO15@CsEiB^fY
      zy5dR<ThPOQhjhWVj_H5SQ|6c&0)`$SXH2J{a6m=|b$>M@g!f{Y#x@qsohYy+d(!`M
      z0I^S7#w~Yvv6(xz^gO+tn=^VU9V)1syZ<3vpAupnpAzCUT*iWh5h02aHGl;`a~*CW
      zZmq*@#PK@3oS5y%bC+sHy>|qAXRvn#`>HzKYU1uXyoPvf9ZnFhufs{=jdgevBk()$
      z9AeH}v5l5q8m?+P8bWdT7~8XrMk<pH8#^-Dh_N%1jT*Z$S!wLfWaANI57($Mka>W8
      z|HXNKyj3}ej8`&L3@gP!r8uk<N0j2IR*Y!Hajw!h!L`ZAaBVhDb8RusGE(+`i!>Vc
      z1HGjJohM<&+a4pA4UxCVkCVTTeUvo@%!Fq4lL-e*K{Hu0k$}0RnNc#)fVr$0lZ*_Q
      zqPlUl%BQ9(DQ1mgYARbX3B}Y@WyK^F(-bh1irJ*!6)^88Mk=NyU>wD?C?*y#Q;KO*
      zOl!cnidmjv2`US^QLb`5$Cd<kVmo&6yc=I(4}QY{o^U!wa8Pt{E^ftPG02H{3`fKT
      zPC^Gq#SCZQ=NJ*UIQbsoxcG%L?^m1<zjNX}!Ei$ZBfhI|0o!l7)`UoL7u>^JAL80y
      oX+$*XOJcqQ-p2=8{2@LH#C?I7g|6INqCH)wZCuoTti3+@6XR`1Bme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_LY.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_LY.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8707922160b3a01d6689996f1edaf8730d9bbdd2
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}ZIatGZNmbkV39(26-rw~L})>!JVeqW1d0I_w#kwPl1<%iz~Zyg
      zmRjF0e4rv0Ey_#mIE>8TAK>^0B)|A4IQ|9VId^w!?BI-<$=-WD_nhxN_uR*?f8G8C
      zz*<}mpiE#z%FMSO*H7xLnOs887_Cv&>@tt#tgLRQbLJ7<IueZsP$AHu9P@TM(;7_=
      z*!zruT;56;Tk~czV+e$kMk1ZnGcluIw{$ya320GATQ^g!G22R;sdj<t&YU@5>!#hK
      zXYz(brGRJ=n3b|}`F?Vlj+Y40P_sbD%x8NIYlq57qE?_X(j1AjwL~Hj((5-U3)A+7
      zH37dGUM3(<8ODjEJ~$vS`|v%J8R*Md_Q7edDrI-&OuLUPf7b2z^lX2Y+FCWdO}7ni
      zw)-f(WU{fVtE;(jkbbm~q;X8oXYBpy?6lYY0>RUbeSMp<n+6(nftp0#vJ5jZ7#qy?
      z<}wnCX|lqNmf|o~LQ9)=rgMhFQi1Yld|OGVr@ca;ercmqkhZqA_LBY@sz8F4K-Hn-
      z=Nv9A!JgjZM#82N$c{uNZKmxlG{efK9)XI^T+#@DG6~PDm_!?`q%c_=E=&}z6>dm8
      zKp81}vT&t1S{yHqN<2uBid}Iy{Vz&9<k5-3&BEov&klW<>Zj=S;z)74FeS0cBUg(f
      z<n^6Ihd1XG#eH81fh{4-#vF-91<DH7B(_q^GjC)2io_0XZ%RDQ?RAMKxV<V7<#vh{
      zx<i=D3QtnuIqSlt#6Ip1(Hs=HpZg<}BlUZDb0!@Al*^0b5{I1FF`oHpuRkpDtmA*1
      zS96s6DsPEi#fxXSpJe}0@*k2orZ%5f&zbdwP{)}ar&T+d(Fo0)p}IKPdBmj6b8_UF
      z`ngIfONyc_EO(T%lCT}MF||izpY-fu$9~?4rko46SnV|Lg36mT)XHCEqOvcJIpk%|
      zNUg#1d6j+CN*u!Lc`bx_yq;mM{ZA63yjLSUG8RHT<^(W4<9517Gk`b$bp#zOF<WA;
      zM4iMuiF%3o5)BfIB$h}llkiCdC8{ODJjLfBtV9!C+-TY~y45qXU+?ATN>fi=k8Y*e
      zcA>vR-Gm^@aWRAoSWUOV?n~3<X^Q^Or;=_|Rm!kCr>|Yz%BFi?ykJbdpF7e#bHjhg
      zwQwL7(^AUm-L9pA`QRrjKvo&300@@YRb*F}*fnH_OYB)>)5W2FJs*G7*17FGx2<>E
      z`6Y1+$ZjaH7m~fG#BL;eNr@dHds&ISoD^sus9#Pwufl2?X{LcwY8++dVR;8@;uTtJ
      zEbi0R#^Qc$T`V5Z*2m&f+YpO~{n|$Q2DJ9r6gGR#kFfJ&?A*!D+u3=ia^9t!caw8h
      zxSE~IwLLM4*vk<yjyS*(2RS0HA`YvFXXq=nBlNA*bovIh1bwSCgOpO9Qks=cuu_(l
      za;)?mD-9^6yiz))lm?a33rguFrSu9Z4f!0QGb}Vh;B2_&4qlI!6MuvFTf~3FX3Dd|
      zC2uRzMa1WlcN9tST3qt3B11$1E_qLpvqYpz-sc$?#5hlve86NO6EEsRCXGzIsE?RL
      zm{hvt9Fyftf-d=(iDXjcl24daF$uZkQzkV`s$KFKlUXq;!TFo&pnO5!Lv$p8by$P-
      z)Zc(h*oZ&Sj=S`{`>|cr)APOxJ4FXQ@7>rXj?(jPVYe8j=lvYI#AS4g+t?$1qsRSs
      z>=l2~!+sZ?Wo4xJrJ4nF{4RKh5Utb-YJID2;j4er@GIzqgd7KajR_Te3E#NEEp9Ls
      U`uq<wVh@zWR!ql!tGp)v20Y)0{r~^~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_MA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_MA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..204f9ad77592e836649b609c78e5de483169007b
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}X_MPDEn$IDut*`i3Z*R~BDA1T9wJQ<7K#BCw#kwPl1)uFVDW*K
      zw$%E5;R6-1Xi;8b$6;g!{{Y87Ao;~V!SOE;&$+u>V+Uu<O!nUMx#xWEx#vE9{p-#z
      z0M_720A&KplUBavxN*{GNoV6m+HC1m%`WR$HkUE%RMt9T<c>tQ1W+zeuN?DsD&5kV
      z>bLiq{n>mjZf?z6iL@yYPMGmj#z^aCpOG`{Y)(MybhHgC*`nLIl$C4~sP4#G{kCD*
      z-9|cZN>mDnW`UW>TsGfFE>rOmAsT8D2wC||kD1${a*~)KP#I~8L|U68kqGJanUsZP
      zd&8Q5Ukxu6kf%)ZM8X*87npVUzRC3WW^?wzDX%JJN3)jQOO`+5b}EcaUxwNlYIvJr
      zo8D{>P<n|(Lo^y~Y8ap&EhJ$cGxBMBe=0NO^`JoTbVG0N#>~e421B4Gp3mh>D?XqP
      zWO}k`iA6M7;bwDjm@1*AEIZvX&0&dvFS=!0NvNm2T%c}AgHw>!*4DO?{%Wc~oR&b<
      zq2y;DE-k^Hp5tcRrV_~ZcsgaJ?9DX8ipFk%@{Vl641h8TPp_CnE3Kq3Q5-6a7p@m>
      zN<2gvDSM)DwK!57D~?D!Op%IRbvXSmNj&1w@xrabmBP;seU$2_=#AoVajY;YvC$*f
      zio@jfokY7g=Oo2_UkQQDA<V*TiN^)X3fCpJQp+=MWBaPa4sLHrJi+Y^i6^<eCeg|5
      zBr9}<FozYMqQZ05g$ap$+#jSlC~`mdhbc$uck||qJN#*v7sn(HIkBTW^D|z5Na8ui
      z{|>L_DEC#~5<Q9+&vHM({v+f+C~-_}KChlL>kXlnGdoVJb~2+8nmJ8%akBG>MVsg3
      z$TRhEl~k4#MOozBQO-)jcGO1I9+7?0vxgk}1t*$vF5G6d)4U5RZ_-dJe~F38zBuZT
      zS2!cJ2G8eJ_E9Tw2(Rb05a#lFhPd`WNsRDb4fDuo2z8hpz}U3g=^o7h-u%}Qbg;xM
      zi8&Ir5_2W$B<4xfODvRFEU{FgLLw+pEfMA^J`Z698tLM8rYy5dJtO;#9)7Mg_0)A6
      zxfI(j^tY><5QGnxLb!-kbQ|p66kVRi&j0yT(v7N0ns&$3wX0pxc>jwR)YbdBBgHe<
      z|A$;N2VxN|#YgY<3@TU!{A2~lDgzY&!4kWQ?CKJ`hU{>OJ(Fy@IMlD><FDFUx1H;@
      zb#6PaByK+0^(FQKvKN-v4P-Aau_I(JEwPu80__9!eU$S`tfG-78aSoKQRWNFyI377
      z*IM*gg|<eI`L(rrETFB^V^UkM$HIPX1APNpn?8w6p7UeuyoH@R*m*lU?^Mpal=E(K
      zj)tq**{AK%DPk{2=p1o?BMx#zOhp`45zo?BYDef>sTuSQYH|8jX(lNpJ*5;YonWO5
      zD`i>fc~<IIN_nMpN+}H}r5Bab%S!1CDGgRQLT6cMn83Mk&0V}6^AUf8_*=w(#3stK
      z+$C=-5+zdMl6MqI@>*Q-t|Eg(0xo$^k#j_(OWx-h=j)uOOFm$-fQc9NA(I9sUerfS
      zB1|e>a-PXDCP9~c%tSJ&a>*x5s+fda@+p%VCe<$ajLA%$N^s$pIw)Vz_YfUPU@cZ-
      z9rf4aGB)53wBa5-?|y6-b@aTi#7@yp&wCekiKFzq=dfE0(er*DQE>%b;tuwR-{^7w
      z9ec%}^swJUM_CyueyL^w9lwj-Aw&zcg4&9exAE0KY4{a%LPCxMzQ(u;zKn0&;AS_N
      V3Vq>+X|V@NV#}vuzg1one**%Fh@$`i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_OM.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_OM.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f0e338b878f383236d3ec694732ab093d477d18
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}X_DJEEn$IDut*@h3Z*R~BDA1V9wJRE1d0I_w#m{4l1)uEVDW*K
      zw$%E5;R6-1Xi;9)j>EtV{sE4EK=O-!g5zHxo^yA%#tzPyne4sibI<wSbI*PJ`q!Ob
      z0Ib6mKgtAF_L}+T<N8UxIhBd)DWkbVHM`AYnQU6Ok{R=eo;}hP@uOUzUODEiWU9F%
      znX~p8xlBGAH@4-?M9L5dCX9G8t*4?!zn;~tOjbbau(frww>fHMlV)$LKy`b@%vri=
      zb?d3TAyFY9ngnL|W;6MIa+!{o2+&ZYK)}qWdyMQ(m6OCQfr@ZrINZ_{4u?sv-=Hi^
      z%N^DPd}?^PfIMXwCldNVPGHXA`zDj?%Ve#C(_U4|j$}-$k1Su>>3H>Yf127^YIwVD
      z8SZQkP<n|(C=!V@h6d<I3rQHq^nA+NpG;4CJt$ClI@H&<IlVa-(gkYb`E1rO;{(xw
      zbWbKFv4kcoOg0s6Qzf*dX{Fj{I4l$JbVc@+gu2=*1?rZC?1Hqkw6vD=*HQ)Iv;?XS
      zB|rCYX$iV|jvH}{N+8?fsic{-w$co%8oC9_+cOEn56UDsvtkl0w35O^ai}m}xL&v^
      z@epOC?1{qF;z)6<I3n>dMJjgH=JdZL@rX;u3zLN_h1)iLl<KGGjpA@|tS}|9*(KMC
      z!{qh7M4LP36vh2e0fDUn%)wlV#|6p?*Cn=5%QJ6h`>MoFZYL$4<o1TdQ`}yY=-_sW
      z6*>c$#|lqV;W_KVgv37X57HbIxu5&Plq2=Kd2_~X{*1$mV-kn#*ioMOS+_qV@x1MS
      zhgWly`zmjV9>t4ixu0PF5%M3DIL7=YubwmO3!s)WJ5H;%GouljIYo7`vvY|_n`h_9
      zGxc+oRF)J)S!A72&Pu|v)kf7Gk$uv&hiv;rJDPGX++wxUybCIC(oidZnTg82IBJtu
      zIU}_O*XK3%Q7f?tujlmu=JR@nxb{CwjPPC!^T=obb(rhN*o@oh98Evo`qvS(vBVsS
      zc@nh}^Cjve7D&`fES6X*v0TC{Q7KU^5#%Yp2w)W&=;C%HO`}siBm4Cpey%k2)OG9G
      zB-;-3wW*s>2@fs>a1m?hHduX0x;zaX|MRJ&8&%b7Snbo-u69+!{V!f+RK1@&lRR_%
      zf5<g)AePWlJoIkQqJnwhBg;=#8K?lLEU~M|t}d}_$PSj+v&p85L;X5F{;I8Y+WAgf
      z=d=q-;uex!Ut%vJdvS>!B713x9VUBuiM@gpXdkHWp`2G^4UII?z$rD3GEY$6#oAc8
      z)*Ov_wRO>$Pg@_2`LzwvnAA2#V?m#`iN1cVH9CbYuJdE;`~*9<v-1vi-ld#(E9X7r
      z90^vlvq$TSQp8@4h;qaMjyT8>F%@xGMLb7esU4wjg{ITDQj62KN;62Q*Hucg(g{{d
      zvr>kYUSOr1Qpzi(Q%Y$-DZQkWUQtSCNNLb(3!P=5VFKrZHFxnw%tQQ5;%^iG30o-7
      za)-R5NQ8*jA@3^E%WHASdx{Ja@jK*wMa~hC4*7s*To~m%9r7WQMNHhNkC=p*xKST7
      z2{Wm1$ay9!m{dCC6DE>Ll|w#dQpF_Tkk6RZFsXLP=S*ftsRS1$)j|1^zK7^Y0_(9B
      z8>qh#m$3<dpcVJ%dG}$5sH5k7HFk+Mdfq#+TO6h5J&QeJh@SWJh=?ob6nD@iext|z
      zckC5^(!+ia?PX=8_?4Okbo?&5hY-!w3TnNpZ{h2I((oy0hXiZ~e1mZnd>P+5!A(vu
      V75c)DGhz>v#FkITey6-9{swb8i5>s|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_QA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_QA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9419f3e396a0bc10555a457e640600025dc738b
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}X_MPDEn$IDut*@h3Z*F`BDA1T9wJS#1d0I_w#m{4l1)uFVDVXK
      zOReu0K2Q;h7UgB_IE>8TAK>^0B)|A4IQ|9VId^w!?BI-<$=-WD_nhxN_uR*?f8F^7
      zz&c#@p-f<9kC~60&`;@+bT*-<jYzv{_L#@Bxr}b5vgT1eceHbx59I>&$}w-H(vkL5
      zzqQ}!&*pOpV|(6ArVW8$(nzE-dOBwG={eoX<^;5MTU$4KA~7qMGJ9GCs@t+=zona2
      zm!8fW5|sj?NnmzQE}QQom+5$k01Y(?1k8M<+sN%wIZ4bCs0=rT!_7_MaG3P^49dc^
      z++j_?tA>{g$kT>#GN}*r3(Prk-(>oGvpMU~v{#j~qgm7HCCi&}Iu&}RFGKAtHM~Q&
      z40pB%D7|Dd6pcn3Lj&}qg(QvRdOmF(NM)wI9u)AO3HA1F&TQ@v=>j#0d@g60iGkQa
      zraPOKSVEH(CYy?9sS;Ysw9;)e9F_@qI=AgF33ats3e+tN*#&8CZf+^*ucZnkXbDsu
      zN`CH<(h}_JK4By*DuHZGq*G?f+DbF5YUmOuZ_6ePA1IUH%!)}g(@F{x#i7D@;YQ(>
      z#6y&kvL_1HiX+9b;)uk<6sg!Xo74ZY#3L>pFH9D$7Jjzrqf|ddZx)A(V}&V+%`UlK
      z944>tBwF1$rzr0GN(gKXU=HR=JT6dHxFNBfTAq0a+t(y^aXTsT1h+ROp5*qrL_4=r
      ztk4m_JXUy$3eQ;=CM5QAe~{*&$OGITrW~o?#hWv3^QRqN9FsU~$By#M&$#^|iRWzp
      zJG`1>+*f%^bSqvw$NePxkC6YM#Bt`gc=eoFZveHN*$G;;of(bL%xS8Not;Ze+B`c)
      zo~e(kq_U(a$|C2Ca#j+Stv0Imi0o6YJ!IQ2*wK`8;Wn$C;ayO9lZIOPOH5Su#ZjBQ
      z!WpSGxIVA3k6MXMcs*wWn9u7O;@bZtF~WN_%p;=#)M2g<V>522b2NQ;^Iu2M#u9TR
      z=1J5_%$KN>SRhd^u~=fM#BzxW3BN?OM3ATWJb+bbpo`m{GK~)Pj2zIr`MJ{6Q`e>E
      zQfxcW+p2DYA0Au|;1br*ZLoS%ba@)u|L0RlH>#?~u-c}tUG1ud`(HeNOue7GQap40
      zf5<g)AePWlJoIkQqJmYxOO}tUGEf2FFR`o0t}d}_$PSj+v&p85L;X5F{;I8Y+WAgf
      z=d=q-;uex!Ut%vJdvS>!B713x9VUBuiM@gpXdkHWp`2G^4UII?z-cv(GEY$6#oBne
      z7Kz0xv~{t#S6d&8`?L+QxYRbr;z6&riM~FqB{qdEuJdE;yp5gP*m);A?^e!xl=EJ4
      zjs~mQ*`w`?QA8(4#5m$0M;zjaxQaNUBA%tM)Q-}(Qq$?{*An!t(hO4Sag|c6bdr@a
      ztdwP?=UJ&=Ddm;YX{9uvlwMRyFDs>2Nolac7COg5!vxL;YwqIpxQF-~#NQ(RBeqbU
      z<qmmUktmT0hrFXm53j``?<z7##OILr6gf{sI^=zxabb+}bjSxx7BO+7K4cPN;zoVM
      zB+R7JAs3jeVB&Yk$4n%XDu;Z+q>4$vA)hj-VN&go&zQ`PQ3)<is)O<ceGk)-1lD6M
      zHc)>fu3!`XKnw2C^X|n?QAf}FYU~!R^t^Xqk2prpdk%ZW5Iye~5EWO^A?{$G_>CU-
      z-_a@lq=)?;+RDmE@k=!e==fc74<RDd3Ti7>-^N$}q~TT24hh%}_!{FX_zJ#pf}5OR
      VD)hx4X2c#Wi7lUw{Z@HR{0+=ph`;~<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_SD.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_SD.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe2446b001206f325518edb4c605fc2d50aaf6c9
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}ZIatIEn$IDut*@h3Z*F`BDA2=0wQe@7K#BCw#kwPl1)uFVDVXL
      zOReu0K2Q;h7Ud;&97bmF4{-bgl3)B29RC9GoV&X<c5uebWbZwnd(QWsd+y`czi$5m
      zU>z<8P$sZ4Y2~BGjgv++osAo5Guo+|UDmN|E@RlKtaZf59nm`is1RsSj(Izkj&`O7
      z?0x1yHlK@|+wxW-Z3=`EW;~TK(z@Ai<P1BT6VN&xZNo}Nbvu``lC1(Y?OAKUHY~fx
      zNasz7N&(R<Fguyc=KINII$k13LrnrfE1&5#b30T{60-y<BTbP=OLHU=A-#T+vaoD#
      zSQGH8;pGDIlxdzw7=r@>a}M7#nSs7+&OSKpRjur<tY!C+<<GbspONX$P&-QvcNn(m
      z&2}H9mq>)Wy1JUegY=_?B+O$*K5g$$Wv0FE7pOWN?(5r}**p+71Zv~?T+X!OgZf~m
      zH=CANLX#D)HW#L-5?ac#)9o`HmI;*W9Z!~odfF=m>X(I`g0!@>w3hVOQU&6)1gZ`t
      zKlgBH3HJ0JH{&*yK(@uxDJx}fr5RQ=_6St8XA@=slu2l2#Uxs2C56f2aABfwt#Cu)
      z0m?|(lZ7kA(c*Y<RN_I3RP2hw>3>n;A&*WJZWb;Ves<`?R6j+p7e|WYg(->69=Tc^
      zA+PTw+PpcZDDL}82y6{v4(3WcDo|FqCb5lLp1FhVD-t`ny(#fHx7Q_};P$FSC%03q
      z&>h4)R-lUdIqSlt#6Ip1(Hs=HpZg<}BlUZDb0!@Al*^0b5{I1FF`oHpuRkpDtmA*1
      zS96s6DsPEi#fxXSpJ4w{@*k2o#{34ao-^wUqK-2=POEk@qY;`pO?7dy^N2;8=j6yU
      z^>dX}mJ~%<<lIrtO2T&3#?&5>ebTds9s7AFnsP4OVztw}3o38YP%D3tiORk>=8%^;
      zBee$4=T-JmD{%;~=d~c_^LmE4_CHCC@?MSb$XF2dm>a<OjN9oR%>dr~*AaBE#2krv
      z5_J;uCF&&>NHj<+mRKsWT*4<&B~c?0;we54Vig+c;&!Givs*nQ`;A_Ht~B-3^%%Jn
      z+b;CCshd!Ra$F4J0@l!Nu=`SUc^W(a=Tk{Hsyb=f?bFw;ZdK#GFJ6_d-p?H=p1I*a
      z<eE7UOK2(O^ls0hg8ASlD?nBmr~s%cv8&0hDY0wG4wcxm$)<}#{dzwBs;zU|`EFb9
      zwhKz)7LwgiVlN_lafux!dufRsA$xg=y@C{IAE;kWIj_bV8fl_|Q)(P#<so?oYhx8!
      zRFC<zb$ZONt=D4#ZG#?@+D1JV@@t#u8_-(yDQxkaA7SUm*twmZx3lw3<-AKd?<VK2
      zPz^hmYkPEx*vk<*M;zdYgB%f45r<X8GxU|(5&BkY27RlvIDM-%la!L4Qi_#Muu_JV
      zvaIwRD-9^6yiz))lm?a33rguFrSu9Z4f!0QGb}Vh;B2V&4qlIy6MuvFTf~3F7Rs~2
      zC2uRzMa1WlcN9tTT3qt3B11$1E_qLpvqYpz-sc$?>YS%bK47wli5K-DlQ0u6>LVr*
      zCY3HZ$7BVQDwllBL^7#%$tO&znFL+(DU(_zH7@y#$!wiUaQ>z`C|}U`5FJTiJ=S6a
      z^*7=YHsKGn;x0Y!ery-@^t`XePSHlsdpCB8qx8Jzuv-k%^L`Fp;xf9$ZR`=h(c}I*
      z_KH90VZV#^vNBTqQq2N7eiyt$h$yv!THoqh`0AfD{0cfDLB|1KV?qUA!Z&Vkvl~o>
      UKL5jv*aIc871OcbDzC}E0gl;-{Qv*}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_SY.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_SY.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f48749e819e632f3ec9eb83e7250103d1746dd01
      GIT binary patch
      literal 2304
      zcwUuMZBr9h6n-ut$pr$01pzJAXnX+#g0<EPsI5^fm6z(GHqsWCWQE0KLpK{Kw)Rb6
      z9DYE*w{!-IwH0W`sWbKmbov7}U-}a|{ROq>-rdlYu^r0{_ul6@=Q;P>vnS`5KOg@L
      z;0P9jC}TJ@Y35_o+AS@X&L*|A9vhU~fO#WpWi;E!n&X-^t|o#gXK0a*dD}?G292D3
      zNzY~TR#HEcH&bbyA)L~aMn+4k`iy32cGhB02Hn`2IT=%J%P=Q<8LH!1GiPh2eML*>
      zb&d)K*2PdaX=U>><g%sb2$89SA!Oz=6S~zebK<CFsEBq%qupK6Xq4j3=#+(N7tIPo
      zK$;IQ@L65InbPKR4E1BrOeQy#wd|`~UR4qgWlejEP$1(S{90xvLwl_>pVe%=c-sq<
      zUMdwC8XD?|%+Vh`B&FZb@@ae2$ZUDN$WVDZGBwqc>B&VjhMHvFvUD>!r_N<2vT2UJ
      zbXj4(%h{w#D28dL<J%neGx*fRTP4zB>_ZIA`y*~ay1To3OU|8Cfh0YFszb>)jFpyP
      zWMW!R+EfDGmrNU`VV|NKTHCHLl*h9vJqXGqyuD%^-SiS?r7-U-I}e=iIbNcSBwlgu
      z7ZwXkg+-2+Nh!JeE>Hhoa=cPxmz{NI)%nR~U#0p<_PfGDVaeI#=qWPa78c0s8;-u>
      zotvavs{q5P5bDt&POpWq0}UK!7@7)q$!oE2udo<#ua|I%<1D?>`GLeM&LfU~fxdDc
      z5?beYgMte$3cezef0L{th-)1b$vkj2$iD8{hlP5LlD+3_aL@-Sr&y~Tmqe1wRDgL(
      zV4h=?VTZFux2}t#xCt%0CaQ7McGFg_Z<B8OL!?f;_F4#y;<fKkTE!&YwB8eGd5H?o
      z>mf7=&k2Sy=SPkd?S%zlxe-D$8iJVG_M7k;B8cgKe0Z1UsOQ+h(a6!n(af=vqlIG+
      z$3Bh&9Da^Uj%tpuxZ-vQt!Sg4%b;QE!}7;Fs!fO?p~wMqMY9ZnJu=WI`>zr{d=kPP
      z9Hye$QwFtc+u(B!DC*;?N!^ZbHG5-g+q2ufQk7Gy-w-#q{7bklA;eyKijSscEfvg<
      z0HGkEGEf0fS%RwwSC`-#!r>BJN0{1`&ds7(<=*J+P2S$@?K?|!y9l?G;N67xl;8;A
      zeI+<b_&^ChND=5e(Ah^hx8pEbI><09?I`nw`4e;|%9WU!@GD2uL_j%8vtBu-Cb)83
      zO@sr=30i|nueyno|Ht`sxLP>-l-E^K#D(IVP@ETv0in1c6+==nLMvA;(psUYv{ovY
      zX{}POQl!LxMH&;4-hIwU<9;`gCITgi(8D!PFq!ZXZxDZz_zj#SS-HogC3Bh>zsF=G
      zlOQJGF{Wh3i3xg4Rx&y<++$|Mjk`oXMb-O)*)5o&$`VXOFhx~PFj2u&c#JKWgYsP-
      zlNSsZOqIvn5=@m~LLM_Km>R)Ud&~!dsZ*&0bL+BEKBV;;wIpy9oj6A4<M<jU@H=|(
      zl%{6@=U6k%&32q;eKawLF~F|Vq_l8>&C`th0z+(-CgWp_uwQ8={)UU}51NQi5icvF
      zh#$#YK<#&@*o27D&S>|yKf=d<rxB2(D+##{_!OT>@#nbfiMu>86?*RBHtppSZTXgV
      IUV1J31?oUpYXATM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_TN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_TN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94d142985d97a62f748bedf66009b8bb12eb09f6
      GIT binary patch
      literal 2442
      zcwUW^`*Raj6vw}}X_MPDEn$IDut*`i3Z*F`BDDCRJVcrzq!a@xY?Gy3NH#UyfW>E}
      zEw#R1_&`N0TI4Bq97bmF4{-bgl3)B29RC9GoV&X<c5uebWbZwnd(QWsd+y`czi$5m
      zU>z<6P$sal*UCqa=_mAPI-AtfMzljUyR4(xTt>IetaVt=9q#H3pj@C{Ip%FM9qlj&
      z?0v>SHlIrxTk}>bZ3u)@M$*ja>A2Ca=X5)p6VN&wZQbgP#_gPG^|lIBw`Z*ZTes|P
      zJ)JisDg{Kd!0g^!Hs4P!)A14^8fp><S@}$lk=vnil9(k>8EJ|{TACw~2<i13l!aw`
      z!<v9!4KEjvCk^9xN*^2$m~-f!$qe*mbM}F0uPSB7vX<RPmOtZmD)dZ$hT2(bc$;n;
      z-fZ_#dZ|=HEEa2O7^EL9BxM}c^J%-w%uIXTFAzM{(AT#)vw5IF7pO_*b2-CG4#o#F
      zJ=wIx5}K@Vqq%UIDxsN{oo=7uuuQ<$)w!)C)YD!mP`9kXDM(98OKVAgEma^%OQ7md
      z@^cTBmS9iMF(YYH31nL`ZCa-N2+gpnv0I?LJ)1HDpiIIuD<;uGD=ADChYJ&hYlRyU
      z4^T$Ro-AA`juyv@qY@8Nq+(YbPX7xM4|#N=aI<i!@Uuf7rur#*y*N@FFHA{n_Q=)Z
      z2zh-k(dNxLMRAuaA@E2Db1+xpF@dteHHod%^32=Vz9O-M+nW+kaC=?iNp7!7bZ|Sx
      z3Y{U$V}+-v@SJsFQeq$XhiDFp?Bf0i<w*T*-kb@CKkf43xWqvxc8q6!#_JDDJm>h|
      z=G7eGzRFvoNAcom?x)y)l>CPzj;hV))pKTjA=Gka$7t0~W;8-Gr>QPZb{?^4^PC)c
      zrhcxH%95fei<~>kSxMNA+L+oSvQK#Suw%dAL{rX%Tda19cR}S%8fxV)F;UqU#~kts
      zXQbBP`MkzHY9$Wg^}HU!d|uBm*ZwDoQQoT&9vKUv4s!z-pK&|gqZz<k|2l#WmY5?k
      zPoh?0zC@kG0*QKw#S%*;mP=Gf1SP5^!aT(nA*@0pUEB`SGCI{W(xvzCbET=Lu3OKU
      zY`f6krfxzIK3oXlJl4={u=`B9JdGXy^Qoj8Rn=?Q?bFw;c2(oOFJ3UN-p?H-&s_f>
      za?KowCA1VDz1y>>U={F_6(Fk&Q~(4^>?*RWOY9o5!zK1?vgzVbzmAW;YHQtgzT4Kh
      z?ShiHg=E*4*o(+sTw*tny|l!RkiERbUO@`957hTj&a1J8Mw)2gq#8$=FD&n1ZK7O@
      z#uF9Vx_H8`t&b-H+J<;SY8&H;uwUCm-+<N{pTZW;`B8R$oSoa*c{@ArRL;AU^KNpE
      zg{#@wr|pST#9oewbHsj*IKUAJ6>&&KJWF4x9j0%krqeg5CFxtG8Kl(fDVeNvoRu=H
      zlx3yoS!qBi<(1M&r8KCNUQ|jiE2URSX{f>xI?X~O1kQwO?%<7tkNBI!-zNSewosns
      zE_p|h7?BE>ysJnruf-+rDKbPP;F9+hIYUIc<O7~@VVv`H$%jl9G4Y~4V$#6Gi~5*J
      zgh{1K&N5lSB<PY)m`Em7F8P#66_b!lK4VhDq}nB)GnpNy5}doK4$7DGJxE6qSdX>X
      zK>dxlh)wtdt+-3iyC2&{9X;=>u~W3s^WKSF;s`zOIqVk0^t_)%Ok6^zxQ#vHH+tNE
      z$6oO#J?wYUURFkmU#VF@$M3v%2oa@LP+PJ37QX%`4Zng;NXT)(H<(bt7xAqd-0TKZ
      Uq0jv=BX)mDZ25HTcgkz>Zx(im7XSbN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_YE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ar_YE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..277a3317448dea64c30fcbca3b347a8efe5763ce
      GIT binary patch
      literal 2442
      zcwUW^`*Tx86vw~Yw8=J2+i-zWut*@h3Z*R~BDA1V3L;Gr0>yv|x5=dqBsVp=0gKN{
      zTWWp3@PUe0v?woY$6;g!{{Y87Ao;~V!SOE;&)Iu#jUAjZGr7Cxv*&#G?Agb!f8G8C
      zz<ONqp-f;^pP6qtp`X%QQkl4(GFrM+v)eqL$)<HHnK6&**`u*eAIb$9lw;mXrdqm^
      zIcvX>%jC0hV|(6Aqzr*z!iXo+dMauR=vm#$WCgS?TU$5#TB24qY4)`VRCi>|oTZyq
      zkDkgK5|sj?Szu0IHj^J9mzj8p01Y(>1k8N8*U0WvIZ4zCREC?v;nwDGI81s224!Jd
      z?yx4{Rl_R;<Y~h=na~Gw0&|btGnrg}CTks<@v2gGBx73rWO>t0r$SE;q^Ye{!#i}#
      zaA&)Z(n};lkw~N|G)O;MNWwU-=Tp{!WO~NyegXfPP=EiH^p;#m7pRHnvsuH84@L*m
      zy_uB6QktwV)m$8>N@z*bN_EU~ST5j+b?z?-b+uOs)GrU&1!-+<Z7b=oqYA`n2~-_Q
      ze%_JN6720gVZ<#efozYbl4jD{Ml-B#>=7vM$RrFOD3jpqib=H6N(z(3;lf1Wdf}$T
      z1C)`nCkt1Lqs8&!sKkR5sn}JU)BlphLoS^tOckyaezxhuR6j*;6i15Vg=vW`F1c15
      zA+PTw+TA&)Den792y6>rF6K!*Do|FqF0q|jo_Pn`S0#3GJ0<Zrw>Ko7;P#qC7q`=_
      z&>g^hR(O&M&si5HCH8ZFh~}Wk1Kb~>9I4;Kn=@haryO1!mpE+4j`7S-yZvE_XKnx6
      zyqaU&S9weHDqcLx{RI1ulK+szappI9^_*FM0Ck+%30k$C8I91)DXNQ|ol8vGJUd68
      zX@IMwvZN@=BI}HDRuY!2Hm3H7>{G5iY}?P<(Uf!H7OS1%T~K+GhFbZHOjP#8F`K;1
      z8L2h6KCiNmT8T|~J+B3@fY&q3wf{+Cl=o_cN5%rE$2=d#XWdTcX!`KxzmA}dCFV-Z
      zm#C9iAW<)|P@+L%iNrFA6%rK^eu-*{AW!jm0IShR7q=^E8r|v{IiUCQbET=Lu1C)%
      z*><3}UEKsfJh&9VMXaUUVD%^I@-%k+&!>`ZR8^m0b<AA5y48*MzIgtqdOvq2dFF=y
      zkZa~ZETyG*=-sZRf>ppvmXEA5PyygCv8%|gF0pIK4wl$+$fk=!{dzwBs;zU{1x{P<
      zv<pk(7LnahVlO6pNr@dIds&GcCVNGRy^<7YAE@u4oY!D2jWp4~X*G^APf*^$x>&i^
      z5{*@8>!UHRwjmnxX&a+4scnkJf?jPieSKP6bQ)V-=SSH2F?Q}?=T3IsrJQ#w=RM>c
      z30AYSN81~vh<zLp<%okEafl;gD&mNWc!s`GJ4)Y5O{cG4i_^DCGf1h=RZ6nbNmfd;
      zQiheDW2Kx@$}6SQN@-9jy`Yp{QcACo(olshbe4ri2%HPn+`;QH5AipMzeW5<Y^6NQ
      z9rCs!5h4{1c}I~xUW-HCRb+^W&mr$Aa*l{}$oo9wqA2I-kPnzFX5vPD$RxzXjrxd5
      zm`SBW&NErb#P5)gnMfv84*7&h6_bENK4ntFq}m~$F_{yk5?q*42jvU;9;PD+Y`{8f
      zr2Zyc#%BD1Hr%D>-HT39PtW@r>=Nztymw=_I7ZKV7JI}nJ@4lc5m(SHZey?bjUM;k
      zu}}O-5Bptol$DX<mueQ!@w@0ALbOmTsI6FY3t#<{hF3v5Bw#z>YfPx%%lO6#ZgzsH
      U&=-D~6??EGwtOb`Tje$RH#v@o_y7O^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_be_BY.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_be_BY.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21f5f50c372f878f02a16b5f6f3410501bc2e0ad
      GIT binary patch
      literal 2512
      zcwUWFYjYE26n?g8lDBDE!ct1XaxJ%VX^M!5EvPLQk+uj6#efRiWJv?brluRPUVA}M
      zxfD^076CzK@MA$PGdRKTjvsdafIq?U7l`M)yJ<rQXUt6YJ?GiyJm<XUz3lJ*JbDaZ
      z9c~3treH<V%tw#uC-i7K8`slDv_lR%&7;{|Mz>N~^Kg%GxGfe$xq^C0%v-5+v?JAT
      z?KS$d`CQy+%bSU`p&*hl;;D?D){H(qr(4;a0=2`{*3D#8vvMgj*`lDTJ!|$`x@mRm
      z>AWFOp+H%qU}iFx&G!*yGF~7|ubLEu&3vZE$ZeN33CtjkhBXZh{BLfek^DY`Dlx4h
      zMO6@*q%2b)P8!DXgg(%(VAi2$7S-RI%~=N~S(Vc7%$im&d4Y^)`1MR*hQ=B4^;X?7
      ziW#4yjEO{3XJ^v@{b)J~<EWlbTl-R(NzMWVP*5Gu=W>P_AJ7IeJ=wItVoKl)IwSTS
      z>R8IO((Tg-OBMLqVr?a%Ma2~g7EHCGxp~pjmbFj&H1{|aPraeCYYvr8es|9?BW}^;
      zMQc2rGE>$T%CoYuTS0kyHem!ot&dFal|VDqVPADd?R)k^`@a3FGb->rY1`NB3A-?b
      zllMsA1!iA#t~tZ@V`tFCUZf?pZ`k*xf6tx}c!`nQ_JniVzRS44%N%#z8Kt;_Ge$VE
      zT4fwJinNC9i3;lGmM~_aM&MOyqFa?f8{4uPfvs%I`~utAzCl@u^E%tNIiJ8AlFzvW
      zI$RFrVD+vrX0!U6E;`JSd)dC?TwwM-iMzAvW_z3#a!BAUwr}$M1P;2H&hxC^c4Nov
      z-vr)ed(19y1xMJv<i_^6Izz0V@c4`$b#oQ$2V7Zi7`0s4F<K+8j4F2fUU1F{q-jyz
      z8lAHOCihZSN&mZ)ovQ8QxN)w~8Ja?K%#?NWI=EUEW3v7!>;$iboJSFPpIKwPR#U7G
      zIL9S-ohgfle#CoaoDr&S&^hazkx`WW6Xwg=^6HZI1owN;t-e6<59AIz$MYW!V-9NA
      zIu%A8YJxaD?QDD7JBZJp+Qu#{FiT*zK&`+WfjWV?0`&q51(pab6YvX!1gZogoZ`DM
      zR-%!PeMibPy5wcFPw(MNPn8#Dx1LL}?}33<d747-;c6IHu$oSk)tjON*x2zuFI+m6
      zl}W>DpFFy?D;uAEcte`Jg}0|TbNzqFHE|#o(^PzP`_G_;`4J#5NM0GJ0SJ}&mE>2I
      z_|@b`O8lAR)1f1~j*o{NYrS!fH`aOM+>*F?<ky$@^T}UW;x8h9Nr~S;{<0E(IVsRO
      zknN+IS79~1Swk;Q%J(SqMMME>W94d8i}}@cS}dTh*J43+gBBC&MlBWzsGH~+R9m!P
      zu(?Qng~_imxt+<|n7l)hcS`auB6mirnCw$`YZS4EBQ%cK&k+YWA|@ja$%uF8Db&OC
      ztWb4&hSWGcD^-J(l0~HyD;;O03@c?>={;8Jmr8l5bW$n}NTm;@(#KNiQ&Jl8yF&9>
      zXg&cWk?I0Ii}?sYL--ej-^FICv)n_zlt?Ebeh)b-ktEN>L(WNLh>)O%oR`Q5A;Lp0
      zaK?EW*XbdnZVg<shg@W25hKN@uNY}yq{2fkF|wSIkcWKDh+w4BL%w08l98~7e9K5R
      zBUK(U#>h;KT5$P}+$i7E^B`?WU_I7i1KAsK3!Cs4TJVHE2?1<V>gaQ@3Okfm`V@3w
      zr*eco13BzcPSGb|44ul)=u#eGxAF&F{(oYR@;6=lPtaagMvCJy3xCY76gMHFG}8AS
      u{#6h0!&Dgo3A!O+mw;=yE`xu>4KKLK3#LY2o|qQ9za+MNGWMoq{q!%IZoIJo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_bn_IN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_bn_IN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3ad3dff5f2f76f0b8d46f39c8844eab2fbaa262
      GIT binary patch
      literal 2597
      zcwVhl`*Raj6#j10G`DG5!ct0s0)g-<kG6=2(Bgygu+kJEPz<QBO_p{c+0<kM7GJ!p
      zBH}OT=rGf9WVRhdrs50&Gr;eTe}l7sf#Y8wo_n$>OT`&~Fw@?9&v(Cb?sv|8?5}^_
      ze+Xb5z6_yCV8x(SYCoo*(A%^5w4OEEd%5eej^+zF-8S>q;Q{M#PhSYt0xe7|*=DxA
      z*DTt5jbgr3NE=&ARwio*L^DR(%<0*rF{~GKJ6{mcddsnOYp^|O7ffrgQ=q;(ZxwCb
      zvitRH$&jcO5N!f82MhVqFj1!bB_cGnMj&F9asx(T2Wyg;K}dW}T>W*l#p7`bIc$&+
      z%dRjqf!YdVnSeZL7{@dENKs(cp=U}e4&@8>fhkrU+ljno50O=q^9DgZH=Lt>22XF(
      zZKJZ_d`f>i{bHF+ERjgWM(9T=WsIYGDQoXDb5qQP0^y;d&AH9Rm>xSN(2y<_3Wk*)
      zNsi<O@>z++l%4C0xz0n^xk@cn(X{Mr_cYp4fk02+USEL93M*)*mc~@>^xx6e(b2i~
      zDU<4vri7?mluF|ve?fK+95d236-0KWv!-R*FVQM1Tl)p7yYm?%1lp(Q^!iCqNX>O7
      zUFW9jJmQwLPf9$;_+5AWlIz^^;m-@qX5<^!`Py}E`=(xCmz(bR8P^&2;V%j-X8fG%
      z+~b&+UFU}DTz`7S%>vD?bBEopGH22^+r`1}xXy&%s}=$;MKBAE60gv~naV_BE1O;d
      z65Dudp6Hg?!30mP#B03#vsFsGPA6xYIEh}4;Av7)`XZREq`bkguCc}m<uhJB6O-=v
      zX$ji+g|731J3h+maiY^X`*^)u6@)n7O7wFLt|(bvc^+{lZ_+te<nd97gRJQq3!RX7
      zi{q5d+Z>HJ?=X0g3sKH<OyUTuy34A{@yB?4i^n%P;Q`+K3zZU#adFF28J?m-{P+*A
      zqg;*eSnb_uv#M%C5j3GujgCbyN7XMYFrQVNtz=)`?|VG{Uc#yfxxr<4GNqynN6?JM
      z5DL?t4DW`7U_W&e%CN*NiP;iO5_2S)CFV-BNGy_ABC$*&C=r&Zmx!t*&PT8ktyIQd
      z(=z(_h1;hOsFzgZSGZp<n9BCRnl8SOVFd7L1fy6@m(m_G=?=H{{>N9GE_U6ZVRuj6
      z{-%|!&%XcRBtPvtOto^$zl3X3j#x~o1n848g9;Wz4Ot<wsz3!m*k{*~UGK9S$d3B#
      znPk%)q;a#l0Ngiu{T#1v_WHR#zj<W0`0NE_FY?(jvX}VmIN8g5_Hv3q`#|FWX<miZ
      zG_!^#PVzje0#W$@Yg5%)domT&)+JLl+WKTFq-{v1q_#1ciq>eGs10eI$)B;MLVj71
      zUsdF8Mc%H+JDJ?W<XuEgMC%nfpzThQ#~$U8R37`4#{uP$Vvj@Y@iw(mJ4|h@rc)c%
      z($v;z21OeD-y)g8a-icXP>z6nwBZ5XO$7)q5?&(wHnvdoY7aTVNP>`{hn!?&P$}?`
      z_ZTq=33<o}BY8rkhn!L?&Pytt9`e3I7AU0R^?^cS3aNN~sF1iqYCYs5g)CP{*h4;6
      zh*U_Ohn!YOokAiWaz-Hy3aR&yvkIA+q!OI_i4V#JY7f$p1lD6MHqdw@u45DaKqns4
      zx1k2xMKgU7R$-^;qEA5|dc+ZW^b6P}&eJ>p6%t|sed0cLi{I#Z{~de8pY)JFMt4;e
      zMZCzXfR5j2<q)EsdO>|~)i3zuiHsTs%Px^J0iWR#JAaPLo^zY$Oocu-In8&!&$oKY
      J_X}oS`5TAZ7?1z}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_br_FR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_br_FR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08a98b7d84d4665689c5184f167ef48428d63c2c
      GIT binary patch
      literal 2272
      zcwUWFYj;yc6g|^4$uvz%xIigbpb(&xM^Z#YXhEe9C^R6wJPfFClMG29xwqcj+uAAu
      zitqOW6yLi1;71=HT#L2v2e|wV{sfo5K-_0?Q$xkI%vzZ_XU{o%_MADH{QB3eUx;Ws
      zeG{b?L48HrPhYU6t#rl7TNRa_(9^hm-f^pzS9a{PIrr??WRzM3_2@v~D_7DJ<(fCC
      zYL4&b)qdYDRFt4ZLFLO;t757t%e6em6=Y1*xh=bxHa)j&7Y7A(3_Etsvuy9ARq>Ui
      zHbG*mpv6Vk@uv_npD!schy=xLznW9-n3g1Ik)Uugl}si<HKicH_8LoupqAtYL2^c^
      ziv?@8CTPi-dupha9M?NFAJwk?jAMHxc#&#ggstjS74ss!JYspOvD1BmVueB~lS$3u
      z1N8-U-tsHn@p5%OW;KMAN~*f2)@ups%=@mZ?EI`bTg^EYNo#TLG1RDRdzIk@YwHDt
      z#wN#_vKpj)f>tND;`I0qqy`3h*AH&H+sCeX=to(geCe6y^B>J!P<apMmqYnV*)Dtg
      zu+OIclY&}@oq~!|3fH)>T#^P5Rr4Y1ei#+smh=D@N%`(vNz#L$tKuH|N(xu@5V&S7
      z$CtDRF~u2WGdcvjW)&RQZo`G{i_;QXD(Ml>fko1OZ6Iz02C^mL=piIaI>>ul1x`B@
      zr)8Wrfh`UwyI0Z?7T#Byk@Og>jPij^!WzxFu#PikDOh~K(P_3G=Uj*5PBZ4zU_HUu
      z46i-~>!9M?bFfDIURXI;hk>zzLY%r-!Fe193Z_|dNl+VWP}45E7qFBGDpNrRL5f1<
      zY#akxBu$}O88uf@(+YKTnaJ^#ixsaf2zNY<7znb9P6efSrY;H*b7=1ol<PV0LeiYi
      znx2o-a@KSO?W9G%5T|Zh8l`Isnm@SwD7}2wCD&m|OC&9m)Fo-Tq;5$oB=tyIBWaza
      z4U)o=Vv;%}C3uS)aoR-v_+3ntZFNNdI*(g9egq8tfSk14GW!7-8PdHLqY!->r<=3|
      zC-O>Vv}gas|9pVZv+YIY4bL}r*QWk^w|30buhLkVckcNQx)dkUS{x;W*KiRE7N!Wi
      zD7+Rz0Vvkwx5Mvf@;l)tn*7D^(a^BFxkL5b70k<nxjUFwH07;?-_zu;g1@H8?}fjv
      z$xp)H(By9f1MUHK2%0z37OZT=!i-+0mQX_8rfu0)BW-5G#&$CsF?N{QsIk+`N@JIq
      zO+<{{7^B9Z`4jE^cksg;{3r(x>)=rxd;r1Yi4G198HY_|WH{p}XB^`UlQT}}j8i%z
      zi%}Y9Ft!;_VvHGQF}52PnDPxK#Y{zJDl^kXW~wriqnV!8Of}8qYo-~^G^?4O1=FQ)
      zo#-+XT?TM9(RrI*%!Yu!1pF1?Khj>PYYmWBH8Kt)93Zc0Bo8DKAg^oW5|C(syrGe+
      ze98cMlXqNcvd#c`i;-1~G_u}iq?eIK);o+O8EFfUcNy8pNGw3!V?;929w6^C(#}Xc
      zKt5oklaY=9`H+#tCQ5Mq2i+(iVLXkNB-%mSXeaDl^eyeCKWLEd;L(lHsOZL<yO|D%
      zAw0Q9Xk475L&BxQ;u_xD8<Y{>;kCU*N5yY=Yk#L>;!nJ^cWAh!1&kl-UHHHHW}^uy
      zjTwL66yE$Zee#cthz9E^@p=G#MxX2CFX+o4ITa+M(AU3Tkb9yjw{<@ED;@Rq--Yep
      Ap8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_bs_BA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_bs_BA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..358c91182ec7d19e543d4d1ae752e2a5dc05002d
      GIT binary patch
      literal 2271
      zcwUWFTX$1c5T4yM$!?OCa44l<K`<y3ApsE)TQ6;)2u)hxKrx`gNwR5Anw%3)&MDR#
      zUhs}r6uj$$4?cQ%a4putC!bvY27iLfUm$+7ds0Ieu4UHB-ZS5x`DXU)$>g`cul+(q
      zyXc!ZbqLxr;{>^?HE-o=ZrQ4-TwZU7oO7;Mw|v`m&Xk&GMn~e*DQG|&2EJX(<?W__
      zOf}uWE347KsnnF9bVZfzx>Yk(!}2WO^#mFDMQ+QP$(g=qJ2OLqy2o6n>06FJZPfxL
      zsY{U9E@<V9=LQX!Ecr`H2_iu$C#aW{H?C8Xv_eoclg(r@plT>2;P|a0Lr_QNPC@d#
      zQgan+p($w9>09Q|oOM0_<dRiV>jl^GXQ9RFp%As|jXL%f`gp(Pt5&4j1SKk!Y@v`{
      zzz5k^)Hy4t`N!>gXd|en9C)5`$_wT~z2w#;-H!Ao3Mh;1__eWRhj$2yjE+pSxwT^9
      zLK`-3%xuS%@!gr-xpQd8%{p#eM#`uJlI=a+e&wlBRh4~QSq_(LwqyGbA<ovpX+fQ1
      zZbiijrB5%fkfbaeCRL@XYE?@T0wj;PPN>gGx(7u%fhS`5UO{owv#Y8C%lia%{d!6H
      z^PbOV_oIeKlolU=iy4$$-|E7f4yR}p^-AJw5J%D@5D-GrC<IVT+7AJ|lE#rMb4q%Y
      zjaWF$XF-XX@+n%)Op|~PTOc?BVO*6Y9fMG?&_>50j5HujYosdaF*Xihd`b%_|Kn^E
      z;O0*<wQ5K@3t?&w!AhK?J1?mMVZSPK)N?87<EXQ^6`}?lriwx!u&0$8l16a2JE#Go
      z+X&JCh_JYmr==PsG)fGCgC<PpQ9Z==RlUR<PlFH{xLSFJU&NgckDh~uRJ6wVypW<b
      z)XUO~De9-*IK8~A_rper)5V(}d=ZwkO44dceUjEl>X)=u(txD(k~T`pNQz2INa~i9
      z<`5sH=q}oVpGDqw)TI7#9=A$70}MSsrY+BAJp^OJy6+Mcp-)qEl?HKlf7V8;4(9*o
      z{6YUFXOus-)Z~3z2XEcx2~!WHahoF#{0Ci@9cdG;62UNBfr3RT1}zS)gHQlUwCPFc
      z-EDdg^mLoP5;~e0azD4C-uuFRO}O`m``R|Yb<hWv#aZ8`Z-BnBP2U7P)243*1Kt60
      z1UYY|L7Z&E!Fhd79g(!WPInhOjU8q&YUIpf%-CfX<Hl~YD2+X4FZVvQU7%%5ne
      zW&9u;Kg`A>Y&^!s2ek1)ZF~sE6X|X?ju-_K9#iabls!!LIKdt#wMS8VoW?4RC$M%I
      zXRsy=3v1FSgGsfRW|+xlra5M+FEP2A=_$?B)J%b9I<J`)G}E(SdOo^Hlw_hLfD7rK
      z>-17F0{j)=uLA#(hLB=sh`gqe2_VrBd0it4NGwF&(8%+Au@HGvBNu?k5P6Fut}{8$
      z5P5qs2hKS}E-|u!k(SpxjBH}0D@5L9WHTd)5P6Rg$w)Fp-d|!)g~$ht^f1yLA|Eoc
      z(nJX^|DYS?W2~ppl0>^{2kn8pm%gQa^d}9`4b0gX9T5E(v)kyP7{-vDq(kB?W~@gO
      z;v(h66)K4DFkr9Il=vO<^$$8K{=#^@L1P^qV7#KE@L%=SRufVVJN~^Xy6tEB<li)6
      o8eDWqEgH~g^tpEag1!u$v!OEzefj%kz9-szJC}UF(pF#p0}RsRmjD0&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ca_ES.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ca_ES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a06e022c94dd81b7fc31e578bcf9b6750633e18a
      GIT binary patch
      literal 2266
      zcwUWFTXPgu5bm>^-95=}l4S@XU_fwD2tpP_L`=L90wNo31HlCqW_M0D6Lx3fT!QNj
      zQM}(Tpm^7^N*}#ESVa}S_-6SV{0Wx7K>Ye-Hm)hG^5t~*ce=ms)2HXmuYX<nnTWR1
      zR~bqOT3>Uc;*2$C73*Hrs;gp2i+%2t=Qpg-@!V5Y>(scJp$<WV+A#{9da>jL;Sm*h
      zkzZB2BG;}fL3vwMorYC6)vV=Pq2~)SO7q;7TPvEO@3^%QLEU4X8-$h{PFnRyN$M0N
      zHVIl%^Sx*mE(`IJa)L-u&W#!s<?qoYN$M4pDhwA21yIc@6yS!fEkjVEaI+wJR;e?#
      z)eHnJJ$c<4f@#kWk1u#-wLRgv;WVstBUVyYW3~a=tG9Psp=xEi0ZDATI5AOdHc`8+
      zrmUzQ9(5YAhoGKn<on94HqB<E;?*VHC@6U-1e@WwVSQ}T?oHSoHxISNwNl|c1MAil
      zHsQpZ3R{LpHn$n5qKaD40`T^oY(MM4%8aUpIIA43)*aUg??HwQLz99!#yneP2tCg)
      zZjB_Sw4JD-+#2p?i=d3{)a#KONV-iM4a*N<+^+o^s_H9Pcc5vuGvh_j?-bN&J9Eml
      z_10b5F$k<ms5)_*qd8hieUea4!bZaTSfT;DSmL<5Sym<OVL2n|0hV);9%LCXLn%kg
      znBf2pR8y`bbS*ihDw2*sL4A^rLa{1PCN<(ndI-u)1m_c4LBfaGr{+m|6iT3w`ZN@;
      z3Z(+Y^^nwtVk@0>Do6dCbsA%VtP12aI5qP6tk(e}^)KH@a(QqnzJnaI=r+>hnD`nx
      zkiRJjvynyt4&VA5yVkq_IUh%#P=#uMPtp_UHA;!J@f5aDPQ3LDH&g}M;=-QI(Q@iz
      z?YSHcP+x{FEE@ZG6f*SUzpi{9mb6sTGD-cCmP;Ctv_jILq*apENGeE5N$Qf+Eh*0_
      zF6HPJT8}TH<hbg9{w|MN75@AU{d7!PzQcA5rbqSUby1Q&&e3HWLKnhm2g5p4`kzk^
      zCOBJD;n>2M_iq@w{-Af6`aRm?aOT1Ppd02uT8pD3@ecN)VJS+(%D_qx8bDobb{2Mb
      zo81FD-)1j?jcJBHz%!|3e=L{Bav+u~+TvEi9$b`XRhzvU_L??(E$l*@y$%ex2k1%E
      zyn%+Wvk@C-^*$w%d3lv?Eq553&2q{pn&q^y)huU>ZDv^-+s$%5ZS26BF?O0i(n!ns
      zZg#$xo$qJoF?Jr;&U>}<J~;2sce8WSm@pA>kRuLrgvk-dIO4dDDC>xmSf%j@)=uLT
      z)-J=snl-9mQZ1$$Gdaw3hM5}7<T2A@nkmpsk!CupnVOpENzL>$n9il<iLy+T1#mv!
      zbCsSiCxO2J{3YN&&<INGh>@2yvL8q)Mqbf~0+NoAS2c2u4;CY@Y2-W*86&TA#+4@5
      z86$7Z*T6N$$eWC;W~3GM79(pJ>5P%L8Cl0jSB$*Fh-4%iBkwLS=VIhNMtT_Oj*<5n
      zSz@9E7r)no@&VQp7)hdSw3)U;-$7r~PWppJ=o;SIG>wY^ytNx?uNcK!dw}+d(|Bur
      z+Al6pNnD}{@hx83D|Ar&hKKfdIxPOgJ9~}B5(zMVsI%~2`f_UssR)T5H>EcIL?8WA
      qMp}dOA-Q=6`h-5!!JpCRaqw^)j7DGlZc*&9w%Cq^*e|r#mwyB9SLJ8`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_cs_CZ.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_cs_CZ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..269b02094ebb33b7584091c339584bb85f68e4d7
      GIT binary patch
      literal 2328
      zcwUWEX>$}+6g{0uW?qs>2m^$GVGUbYk{}{Nf(yeUW+BilPEes|rb#B5=^lG}g25F5
      zS8x{%h=QW!7ph!7SVa|nFyV{kZ}2Br{sQsbm!2@Bu*#{Le)pVr@45HgzWsjx=jN{f
      zHsZSoDh#Y1bc*f6)~MB<byHT>Ztu~{Ugw1C<t#trI>%ClWAT9qDh)Ji$D*Ifw)bQT
      z{sFt-7QK|cqv)iwwt<GUoyz2_tZC;h&+=W*K&)p<+j0imP2bBngPjKI;;vKhEyq7>
      zWs9~#wE<(jf!TweTg=mCI$j}apyIcy2BJ<em$bdzx+sNN6lq!C(jxzkHm<~Zo258@
      z$t7l>X4++?0d>;0N7B|<!N8oO_pPch<a+**X|Gz1dtJvLA`0gMqsq$Vb6jWX?VXly
      zmoh%UjOlb+Z*SWee>_jxK4BHJ{=rOc+GjD9hK9D~wo#!zRrEaDNsXCfxuly_SY{y9
      zJ$Zp$%Q${EK4W(UcjE)yWpO3Z)dm*d?M6q((iNQ>?!`QQiuJQS%scmJ`T6%HhwYTl
      z^Q*2@HsfUcN110$>tO?xaW`#8(8d=#vt0@u1|ofSdh&9XFYrMF)%~s`XyS&#L)@FV
      z<lElFEro{(O#k+{owgJnVVcSF{;22MBMRHtjQ)vh+U}xlx=Gi!s$t;KDCS_U!sC4X
      zeN3=}Yrm_oleJM<VK)hr>ysoXsPGgGYAN){jw>R4QOpyOer{#$w88<NY2v0sorAQJ
      ztVx0A45f=ng{Mi4j80xw7@#$I!FCj$nX*y}&(W>m<rR)|0!~d_yFIRuq<MRM;>NH-
      zT2f>R3MXjfJ)M3iibhF4OgE+%y(~>BfP?L@EmFZL;q&BKgqZwhB2tDgz$ajSZ&bi2
      zn;ZbC=mo~GBH1}bH(ir7|0M!lmF&F2ezPv$&09SGYeX!rkfDH7_<9ucrNXlYAoz_a
      znlLwlw`P1I!H7ig&OM_rMJvovn5WRFFkhibVSz%k!V-n$3M&<=6lxUe6dEMOr6|^*
      zm0wQ}i|Ete^g$~rmq$!rJclhWBRC+#U3wyG5W-hcT){fN5PvAcA#UyYpBEP=yLQm_
      z<J05cxTf{~A3%+%Z?oMQ$=v)Oa%~cbWjsoVx9BW3tO{YG2vG&t0MwM>TH?AgTu<Ck
      zhG!FV&}lcxtm?HfSmy_8Q?M>5i(5$CT!t4BFDb)IiI<n*7UGp<coh}+9%zSH^IELq
      z&U$W~)cdFiHK<$Ikf@Bcn~AE}Ml%tPZ88&)*k&`KVq45aLpZjT&q%D({2ALz&X0-n
      z6XF~f=Uw8wM?3G;&fRqGZKxCHP;8&ci2V{_O2i?FI3f`V9dT4gJj<tw9pke)X7O1Q
      zOYvD7v#B&#Qp$+Zh$!Vm$rYvNMX8{bidyNURvObvFKVTiwbH9pI$bp-bVh{EkT};+
      ze+zFWLge2j|1SBTu$^^Q2F!WQ^pdFxm<yU2l(PiPdzv{-CK533Yvvpo6)+!2#)YQT
      z889CTvq+dy)JMWB6{ZyRu`n&dR0qr_!mJXeCSX1lMhR0JFc*cX6($-mp9xbhOkKcy
      zF3fC`Eg1h%56Wde2RM?zCTzfF+FNiPTk#h<afjD&7`u!n-o|UO$LQj1+=so!abCtA
      zx{b5Ei!Y+r_#S=6P3$xN;7$A|_8WimBEExoMFkbV&{@FoyHXlLv~%T+gsQc_;LE#Z
      ogf%%85}k6uRb11-U*nq~xGe}~qsM=k5qqdCwsJc5y7v0^U%Ouj#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_cy_GB.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_cy_GB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43f59539d407a2e3b2d7f43354c17721db317eb0
      GIT binary patch
      literal 2238
      zcwUWFTXz#x6#k}ZlG8LT=}=0+BA0S2mj*;cY(d*VOCbSaN-?0qG?^p=lS!S-5aa!V
      zcTw?zmsfr8(aVEtu@*k~=<+xC6I}iR@jIu}5V~+JA3A66@9gi}`|PuG`ujh(eg&`>
      z-^9_OVO!Y^(wEJvX4<J0Ovg%R)iUFjYF^d!?V5YB(7ZT38AqpvAr%<-wv*1<b^nZ2
      zuLWMgnhe~cV`)egt%6-O9m85MJ=3pw8uaX<w&|ABhVR*Kc}zo3rsmdt)Ai>}C$I#%
      zG-#t5`pRA{SYSwtFOcNcE)7XHsLos7l&VQ!1vQ3u4G+t|J)>OdFIcR^^_N0)4T)CB
      z77e0dSyzf?v#w#~h5Hs&uhcyMTq~+u`MH|wSLns6p%FE!3stTw)b<h6x0W(Kz$C@u
      zXf8L}Z1ONgt7Ha_KWkT85f5sBhTcNpd6rvf8qMl_%@NqBq2sr2*(=-ioy@Y$%^D)p
      zlTWtMmejWKJ~rR&!k#^2yYF#XPJu<UCoH%BLi?dl&0n?(J`XL%3y$sD{$Xa>J~F4F
      zGgB*Caqu=$%X=h1$%qlKsD~Jsbplu5VYVh`Hax!~@Q8+Zj<-;;cyW(1cE$_@9%ICG
      z!*V4!PTMex4bSajBMv9A68!>CFqCQnlQbwMa6}rCFeOjl;D{WPsm-FK9ZzDFq-AA>
      z8f!R7BU2%bU5Xr?C+&<9vIS<95Nn&0LUN#<qA}5^3!GP5MS-Vj9Ba~emZzFE3yi)*
      z=uE|w+2)fNklBhXo!NL)ff5_XgjUIuiWTlKtL?BcmsJZYR>@{v4o8qVOC`&7&60pi
      zeWvEsEzn|a7RaASjLAKV`#xo5{)Sa#HCHLc8p@@nC+m1ViPh+r)(c4tqCbw8mQ8Ya
      zsd2n=&*d$`0xJbp2@D9V78n#*BQPYeUSN~J7J;ZhLZC+=B~yHq#CD8u$g{R<om4-)
      zS#w_g#C7#N%$c4o{Sb_es~Jilg3pq;ft@^_U$HrMBiaA?yl@t~%a)&M4eY@7k^7Hq
      z!ccF{lr1w4{fFGBBw{0v65(67f(?rzMlVjU18e{iZGJcXo;JUieyYvyqt8jDJt#*{
      ztpnk@I$Q_Cbxj*@E&ZW3e;xhxZT<%Oo7((g`dixktyJJW(2lU?9oWg8UEFA>eRM=p
      z;x=~YJN2}YkLr7kd`#bG<m38&BQNv=Mm`nO5Aqw=$BdtG=$_!mW$=Uy&fE<?s)DB(
      zJd^5?!4dt0K}Jq8CM4sOWSo`^Lov=O#yNh4p69nqzrb%oe}>;~{UVjjC8dH?vZT^J
      zsZ?$$*-Gh(QmQJYno@dBDb<xyK&3`>QD~hMT1TLn>b;E@^AX}N6MvQXPdLQFIz!|&
      zh0G9%hREv*F^R-N<PC*1h{QwWO@%axh!D9ZGp<!94w1JOYmhaE$lDUxAdw~3I}#a|
      zNLPrwE0L`dNrcFI5)l&V4w3gI(k+o>h<qTCUWxRC$cGZ?GuVRbKdM3bnBVgpNnjs#
      zV?XT!_znm07shahuW1ZNwLw0nJ20({^DRAz8SN5|YaUK$*Z7d$L{9sj@8~U@(*EEx
      z`X^3nfAbZ+gG@&U6+cl~<Ug+)OGAh>SN=akbjL6F^llk31ujyOivjo?UnufTd>N8Q
      WLoyqE{fA}Tvu)hY7WXR^_4U8WCDtJT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_da_DK.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_da_DK.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8ab484deaef8853e66b7f72ae13df5f835427e4
      GIT binary patch
      literal 2290
      zcwUWFTXz#x6#k}ZlG8LTVJM|wfkL?zXagc5ws@fh#9k1>#efRaWSUN!%*4qAtT#mQ
      ze!qa?U6&6&dU=q=TKK}7%irKnaQO?wZ=Xy`?83F|TAj1MZ}0u>ea`GT`R(s(zXI5f
      zZ{uh(u(9A)(=*mtD_!(*R?$w6>E)n1<@qHma6I>P-a0)p8b`B%ZXH++oML*+sRT#t
      zidXe>_TH+SFWLrDc{}HntYXG4TfP-|z5#Qrrfs=}bSCf}w=ig+ZP;@wf#n9rtzy+y
      zXfa@HHL$qgd(|>S=JOSjbPX6ty4BL8?eEt;DJ-H!@7CU4`QJ9cmAGuP6E~=bm<AH_
      zA?ppObGAL3x8^DamYlk6Q<Z7Y4^GTSwQ4->xxqA1tP~nit5hy=U8LP3R$$jF-oc9b
      zeE;}({~Z6goxD9|Rg1w<r!*h4$^Z<s=c>MMyScf{TxrrPDy%WkG%Kg&xIuAvfpeXK
      z$jInuLt0&Jqk&cHdTt%Wwrzv!dionN_nl+oJQudyajJ3ShbCw2T)>U1p<K~%o!~y!
      z+0=L3K=ZJdx8vZkrxu=*0wv>>8&}=DMR2Daj8(Jmq9btpiUxPn!FR0fd&J>|j(h2t
      z@@;Jo(NVl{)hB4-soa;u5_Bj$zz(E>!d`Ynd4&-g)K=I}gSrY22_pmYFbxVSj4@5r
      zL~0_5r6TnRoiieEM563Tg`--MdE95jD${sWGcyV&CAiAq$F#wde?nra?DPzcid|Ni
      zl=`zg`aBKSJF757gJUmMr<3TEsx#apt5&5<k$YreUjvup!{Pz^FUusAeTP-}-kVw1
      zQ3$kEq;-}OtX!?I)KdmpSUj-h3s88PifqBt;90&twh_9XCt@!eNkcCru?!tzy_iH7
      zI^wvvVEV%$h~t%iz3dvTutZ_0LZ`wqg)W8V3f&5;71k=OSBNSk6xtM0QsQzFo6yG(
      zW6W{w3H`YqwI=0SF!hyk-0~g4AsHLeGnYUFpCxexTe$aN+Tob?js4FniL={Uu!G_G
      z0q@+@cl!}fWb{3?-;v7Q{~<RZiCDv}M0h_g;(<jGBZ?C>fd_y@18ya5YryTqsRq25
      znBz>lOJ-58o#DDHT)V<`c|+a`;_e2#l6Z9k?jc^=fP0D8H{cCa;CrAQVb7bfg`TZ+
      zoYQ_ZMN;ZI`m@buI+Kl>+cVjixg(Q}n>#aEW$wykQ!#TlpK)_A^E39;gYTE%2PJq|
      zg7-=A0Udl$2ahs%Jk=(_5%W-n8HXh!BN@je<Ah{nb;c>3@i?E#Jk4i|Y4Mpbb9}a%
      zHkAr>B}bHIMX4l8-n`P2TB)Lys#@usR+`gF&uFFRsB}JB6Iv-kD@j~PwO_|e*$DZU
      z$-heeC+uOL%^~xeX2!`xL*{kO6l5<U^M+>5lZl7So0_>mMup5<QgKB_`V5)3YduKM
      zA@hzfJ;Kzp-W8@-n3j-vPnZqDBtqtWVU#efA@hMSt->Tj=0joHg=q_!kAzvA;SpT=
      zQ4h+;e4gY;0z1%;owRr1JM6}v7{pE9xH0TAx_IGk#sOo9_w57@8fSRj`WQ7X^0vK<
      zapQYT7}s#f_?<WHA2@9M#f$bPhMStG_=&C}KX+H^Lx?n2{sJPp`4@b8tBsf@YbnWE
      i06xbTI{8a{6($da$vo&wKP<>S){xsgpZm3r`sN=;;p}?=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35e506318765a7e32d59bb00dd512df394c101c6
      GIT binary patch
      literal 3408
      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
      F{{SmJFJJ%w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_AT.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_AT.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4183d5e4cf2d8f430ede039c34cb850536d5ca6
      GIT binary patch
      literal 2272
      zcwUWFTX$1c5T4yM$!?OCa42oTf?!Z6(x!-r*m{AMB9OGgDaC*ar^#-6AUP+VoYUGW
      z;sx(_QSh!0JoxD4!L?WmUwCu*8~h0_e}VYT&PfejxRzNfd(V7(=9}5GCzId)zV<5-
      z?WFJG)FNo>tP^C<TJu)6>=v!E%I5TT$eD4yisjp`bGoEX@0*NMtDs(O82ENMo3m^F
      zF;#N|uc-D1PN}Q}rAw-4SFEzBs+MQ@t|!RI)wwNaHf#Ex?aU4dY9Dc(nr}J&lvNIt
      zq&7ifhoIH7o*PtQvg|J@C5Qy2oS-tTyfK}Uq*a2VnSo3u1FEV*0*>D}G6c0`?iM5$
      zlsZ?k7HfjmoVslewK>=GPb^y{wVrn!e-2u#5(-hPQmtTLrH@A~Uo|4#At<qkPk%n&
      zUn(K{lA5uCvOj58LK{IH#lZ8FQ(QC`E7NXS(w(@eiK^I+UmjU;c9)>YzDcvms}TzK
      z*|=p>W(RJJ@8H1T;86dqIxbv9#wY}G?L5_d<B93Bs_5g!a=2Kw9ov5daklkM32Gg2
      zODayNe0pVpBn=3Po37*d78LNuxHK%^2c}V5@dHA;A6nk_{ROu;C+PvyWE4)ytDimy
      zk}*%&T6u^WtqPyC;Z28Aw1zq*aXJVj=`jd-7WP9x1WBWe*eJjlBYgBY1Q1F(%wAT7
      ziE=4g%S7Y2(cv3cVf6%CscA{a0OfC7MITLaajOufnA5T)Jqh7(0PB-lzymzRHUTny
      zhRIb`(isR7=a9fOgmHIXQi(HBOB{D5MO_?s4)@}?xV5CSXc>fNu?&%eFG+GBBD#$r
      zRn9VSkbtM9G9+|L41t3hBFzhGLu_AFG|6)yM+UA|mQZYD5gxt3522Q{#`(OMqHgMB
      z>7^9)P-mQ8S<(DqE5zyIEl*yDC9RRPR#KOwZb?0o)=BD>v_aA)Nf}8|NeM~qlF}UF
      zlN8-UTk*Td*^V05zs^Z(numa)2gsD=*{p|PY*=?*f+F;Jimp%}?(WaoXx6^m{~SQ*
      z;N-0GN0!^XYg^y#8$Ds_sWfJD<lg_F8(>G;jH^U24OgLHQHnu}Lu(-vfD%o55_)@+
      z-T^(`q_2jKZid{$&8YXTaPJQHo^W5+<hLGr?}|7Zn)Hp(H#O;-p=X-(EnvVqK#m~i
      zZPbU8?KoJ_=hPBO%j<M+q1EU&3sEC$7GlOuvk*6SnFVR=HVf&Pu?K71*lYewLk;7H
      z+4xa5-p9rxY<xf)AJoQ&V0<Lq&c+cVZ^C1OJ&v-6$sWhq<AnAoXpd7^rSUY@Hsdtb
      zgkfP#8bvUv2GcAv+01l~nJUXnu4Z~xGu1RxpqUml)1qd29!%$>b)qB_B>`MWcU-5J
      z3lZS20)GwoPc(!STSMe^jT`|I4UsoAqJYFg<V}s7=Zl5NTN=3lM25)Q9C5wLd4|Y4
      z^&B|o5P6r8jf^zB-eY7lBW)q_J|kNgNrcD;j7Ub3A@boeb1FnWVx)tS_7M4)k<}(j
      zaOp?gD4$|IiIybVMg6oJ@*cWMd+ARaqMI1BF*+c6FlV>ZK{1RmJ5Gnh8BAG^j);qt
      z6PGD3zQ>5YMib(94A?*DsQ3%>^(Kw9w1Dxlj>7-dR~k)7S?u`xrs(!x=(B&*h-t9y
      llByff7xble{))a1od-f^6#CK+D}0YP`L-_mext3v{Rdm|<+cC-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_BE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_BE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdb4ed1df8424633cb58db954540831633d5847c
      GIT binary patch
      literal 2296
      zcwUWFTXz#x6yB$4lG8LTVJM|wfkL^oKpPMdu?3|!1e#VDE(TPXB!_e$nTgXGYU>42
      zyx%XNc-O^)k6s>Ji?#5@H<!P`pWyNrh~GY$gxG~^*|j=nf8W{r+xzU<bMo8YH-90b
      z9rSISngnewIzjrpb<s+f+`Ls%=}EmDbk4b6+461IIa5$)M#kgRET~&M2EJWNPujEo
      zQ8nuZUS5p^PNAd(r3xx<m#vbiDwb#Yt|!QttZG|MF>U&u?G%RuwT-&YtZzB~39A$+
      zNiBlJHbF~^o*Pu)QjeFE#MYpoq!W~L%A3$NNm>Gp-fg|T{J(t=D{w`j634H(7=jXY
      zmyLqtoKhDG*8HrXWvB02)a;Dw`6ugMtr}-s$DaX;l|v(Hl`CbeOZ4`b<*Qo8dysJ+
      ze*>A!K%s!+6x2B@DEY_ia@}W*AQIG`4?Isf`FV4`oO4T()(L8w;BMKDUm9Jsxj|55
      zWPG9_tfsbE(3%ZBcN(#M`_P7-fkupT=TSKNf|5H<Hy(UCcV6Xv99$0POSWVC`;e!v
      z|Ae6CQMaJtgtn&^_el~Y<EHC4z6EeE8p9o8`#va**@|B*(EUIe+xO?({EVar(3&v>
      zDX+TwAVelSWot0ZidLC-TF{(*Nm@o7k{(7mNF-?lMuv?s7|0-Lf*BhPc!U|=Is^lP
      zk|sIIDzng3l9sd3qo591a5~CPDktd}&Y1c22F44gjqI<$c#I`2Thb}^4&eQ`Hqiek
      z*(X4uXIWcSB;{aCUqF7m<;awKQPMdsL@jXInIv^`+VkiQ(gqgPOMG6H^E7ZUM4Wv=
      zQUxZ`+sJ~q-;BJdz}Hp@)<sAlb1;ikPYY^6a$oUxAZY=LD8bd>Su`7Egj>(^i%<(1
      zaX~L6X$5t#^<t8`s3T5S7JUQZD8%WNf4%Z5Eoqsg<&rujt&r3uX{DrYNoysom$Xq*
      zR8m4xo1_${xR#_o>c{6XX*+64f3(M}9A6HGzF1CJp3OKUW5as#5)`4&l60N6;_Uv6
      zjbZJd{GS&SCb+ez{L%WDclPz)eb5u8zO5!~&fNVUa)TU5>u{6^ZpkHRSd?NwaiAtb
      z11QmeTY=jea653S0WSr{G{f%VVbp79xULA-u5ex15Vs1ry8*8TUfY0sfY&$RUf_)l
      zcoP)x9$-gM^A_5Qoo(2d)BDsENy%F@kZm^7W;SZ<FtagZr<si#yUeUKcAME$%-Dlx
      z+!!){qP;cehuC>PJCCySI6EKE&Ih&gVK`?}ZR{K|rcFc~;Rur>j&sCGj>zhW(>me_
      zJf(34&lbbNGhyWMY&8^=iZvyhl`gPSnU&nS(o<S#Rx1TsX-+H6Yo%wj(sNL{6s-!a
      zW}(#}E~naW(M#C~_?N-I3jRmhi#nS_<~7Y^z(hmlb<Gs{EFtrTW-ft=hs>LrxeP{z
      z%v+psmC1F6%-hu(xaN>~hnXH`YEkbp)5}at$h^nQCT0>L^FA|@nbwf`fSFcik|FaU
      zGwsZ@h0I6HEH%-Bt3T*L`54br7)hd?G(fvx@1`5HhyJ7?x{Vt*M&qIj7w#51Ack?@
      zPSHVe7T2vuhs71#w$~^lzN0B|lcvS*xN85PBjPXIw6|%rsR@do=q&uBcfB@*l*WqR
      xL5gnqnLfQ!Mog2{kYv??KBq5q@R#&e7(5sTqtREtUle=1A-1_5`?dD^<{#uv=_>#L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_CH.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_CH.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03e0f52d6aa691206d5e0c2d81eabd74dbf5380b
      GIT binary patch
      literal 2297
      zcwUWFTXz#x6yB$4lG8LTVJM|wfkL?zXbU1DwxEzwZcQr;7XvCxl0!O>%*4qIwe<oh
      z-tQMsyzAn@M=uYq#aj5{o6FzePjLAQ#BZNWLhQn|>{^|(zwhk*?S1y_Ir;7HTfY#|
      zR{AzhErQk;onZL9b<r9wxp}Lkh9~rL&^hONWy`l+=S)GJNgs$)tDs)(82EN+c*3sw
      zM^)7gyu8{QIE9iDlq#saUA9W5s#u=oyPhCpqNZ&*#bML;Y^OLPs3Yw<Ro`;_6ILlu
      zlG+4`Awdg^o*Pu)(ukLo#8#i6q!W~L${W`;Nm>An{>}aU{J&)gD{w`j634H*7=jWF
      zm$icAj8Yd0)@)VKqSN;*sygj@{>g?{yT%#U@uz`e<<N*)<w_ar0=+$E`Kq4rK4hH5
      z-(V&)SSa8)1$E8}O8zms-0)c;hy-=!1J6@Ve%72V=iHK{Re~bp9$H}7j$ca8+g*d*
      z^nvlFxVqeWK`Yku-R;DdEhB6C2AeSso=4?q3~KH=-F)(?+<BGvadJ7DFWHXm??#>t
      z11AKvrrm;y6Y5FLZ<HiR#!c68d<)=ybcS2R_5)BFvlYKtpa+36w(rll`DsZHp*Ld)
      zQeJKMVTg=-%GO|%6|FMww4pn@leCDsBt439kVw*A7#TLkU?78}ab|2Z-~cncbx3y*
      zTN4~*m04&qNsC$NF;IsrI2~mtm6LP~XUzP16Z3`BM)p)-JkFAqE$I|{2k?GE8|eR2
      z>=U5Sv#hNul5#MnE+9W%b7a!JDCry*qUJd5bdtI`?RoSDX#)%DB|fjpc^WvFBF;W1
      zsR9$}ZDhg6(u%yOz}Hp@)<sAlb5KR9X9Tq&xv%&`kTeHHl;CRc9GZ<X!mSthMW{KA
      zxS-2PT0&iHy_lpP>Wb6Vc^^SI3UPYnU$4AIOIjppv7~NEOC<G3S}Lhm(n?9IC9Rbd
      zm6VXwAt}Wvt|w^&4dDBjupKq2zuIF~j&BD;-z+CA&t@Ewu~9vF35w8XNxDIsaCU#%
      z#;^`d{Lh;S6Wm@@e!4N{-5Un(J?IHjUsvNcXYTzExgiduRX9on*W>~;EJ`t;I8Y0r
      z0hDOM?Z6#PxDz<lgcky1nql|wFzU5CT$hAvPq;2^idzQU+k}?`uWZ77z^j{ZKk(Wn
      zybcO@53nPsc_VGY&Sq@P=zVI5q~vWH%(fcCW;SYUHM22eo0*Lp+s&*rc9_{z%-D%%
      z+!!%`qFr_8N7#7}JEz%sA3N{Y&Ih&gVK`?}9qb%2rc6W};Rur>j&sCGj>zhW(>mfw
      zJf(34&o;xtGhyWMY&R5?ighKMl`gPSnU&mz($iY0s+9t*G^3SfwbHX%>3Jw!iq?dd
      zv(R!7S5lp~>7{H0{LA291^*-MLY=K4^O|NdV4@-Ox@L-emXLWvGnc@`L*`A*Tmd6P
      z<}J>+%;Y*l=IvSyTyx00!%QDD^{985>1U=bWZq+D9W#lLd7l}{Onb<Dz)U+c$&mSw
      znNDUpLgpi87Mf_mwIB4Le2nKQj3m)E8l>&8chF7RNq^D^-NB6;qkW<W7w$&dFGg|S
      zPSQbf7T2vuhs9Ogw$~{mzN1NTi>AcyxN85PBjPXIw09`o(gMX#bQb>AyHOuP8petr
      xLW*wunLfQ+Mog2nkYvq)KBq5q@R#&e7(5gPqtVyCpBH<)DYmr{`?dD^<{z`q>0ST;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_DE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_DE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a17a8d0d9ee48b81271cdae0500f573f5fd04abd
      GIT binary patch
      literal 2296
      zcwUWFS#uLd5bm)oX>7|zEXEjOPIH;VG9iQz8xpW=0$6rnIU+~`D`}7yq+MmTi(}^i
      z5^~=MB;-zthdkzZNEKD&C2y(xhWvz7enH6Bqm>XYQWaNur@wEyzwYVn9sT~#&0mRV
      z8+{k27C{?|PLMihU9eImH*b|xYC<muoU^W1wtU-lP8Zba^jMr)1@&piz_&}O3A^ea
      zQB^na@@ik;6iP}^vY_&I*(#Z;VtJPDdV-9JnzrQ>Q>O3PPH|XJ=cwycearEWTctor
      zY7->32wGV5+@J!NM!cj1wgv?yoS>Xj-ngzw(gJAoZ|U#n|Di#wz!il`9KY^j2x@P*
      ztP><>lsaFqW~+i0ow{dH)oIuBPc*zbG|sq=KMfQshep&YSISry=<T%St9r)!kg-r0
      z%wz^<@rUCS)LAPi`A6+?!)Jvc64aFsJWo0KS#!3Wb4!v|3u;Mc&@J2XOQZ8P*9wZH
      z$1+V}b+rwGR@`aB(9o*2!&~phICma}qc14A`&9G6r*h|1-p9e^NWNq{w!a5?HVzyY
      z)H>=GRGiTE<orHK8WI#YUB~e)fcw!H?hxA#Kq+l2ez8Cg0%dI9pK<fkk{&{9(g;#s
      zZTDe_jC;z~V1yN|GVipZIeQYch`J>`igJ)h(mog&HqzV(8}l;GjEx37#td&AgaJWG
      z6C7ogS!gmri&^M#PzNnI9bqSxlXMhk%=~r(<Au{k_Eum#!IG9O=_Gpx@P1Mo=>OB~
      z6QIyDtgR}NaxkXOBYy$Lq<cZqSuRA)aoXtw^>EsA=nc{a7Sv08UX}ASa4<xieNIvZ
      zCequ;f^Vf2c~OC{trDyYkU-|3id4@EYD02g@pm9;4vHwj)!=zF8)bxBFY=2}a~g3$
      zmlCvuy4iXuLA}%+rz`Wmfp8S!^y*!&yhck}Bx$jv9!X0i^-5YQsZY{MNoypnlN6QI
      zE~!&el2cqu&_)`-=P_YBYEpl+N39%R4u-y1j$5A1I3!~udh*&SLZ2t-I&H?;{b?J+
      zIxz7+FD6WIM^X8sjWO@pIB@SlZ#VUAHEwg}zW<OL<Um@DqeO5^E<nSg6a$I_wGbLW
      z?M=7?xU&g&0VkXALSRfY>|P#5z4nCbl5p(}*QHHy%Ygfu@N(dlO?VaXnkL*2ysina
      zhXURM><DV!M4Pd*1sgMZpIRbGd5gAYTaA>NjT+m`Y|PkhX5+>VGb@dqW;Pi!cHtQ}
      zhRvU8cis6BcHYa*qwGA!&il3V0quMU&Y5H<J4cKu6A_0w!sLi!9C3mpvO40Fj(7@B
      zX`IHh&9LxnH}ZIP7z#?ox{}RG=UJ)DN^V2x8Ld>+N`Y3I(Mq#g={c?R0+cRBYeLIe
      zXgP?>$*x=UayA0~74WZt|A}^^&eo85T{9Ul(U5sVGetg2$h@hUi(uj*^Oj~VgOMTg
      zHfLOBa-AXbPOS#6Ib_~tW)(B_sP~xZXQnM=-e+b#GwmVs0W*@Bj*$6~nGR+WA@dP4
      zUCeZb%*V_uG|_^qKk7mG1kaNgNuuqvm3F}1NjGR0{YArc8#iu@#zZeJ+)cD!jNrbV
      zqyyp%u3L`|i7U8muTe&PPm|&%O^H8n)&5C`#oxGTZ_{W?3lu-qS@=iqdVL5fg%!Vp
      w6y5X-eRijem?mo>iJAj_L0{_NujuPAcrXk`qp$ujFZNhdY-=O-8}0S&zcl^n6#xJL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_LU.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_de_LU.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01d8cefca457fb95dbdef5ae605de0c5877ddcab
      GIT binary patch
      literal 2298
      zcwUWFTXz#x6yB$4lG8LTVJM|wfkL?zXagc5wy4lj1d>)53ItS`B!_e$nTgXGYU>42
      zyx%XNc-O^)k6s>Ji?#5@H<!P`pWyNrh~GY$gxG~^*|j=nf8W{r+xzU<bMo8YH-90b
      z?euM&S_Ew@IYIiob<s+f-GWtC>5N_uI_F%kV)?e~oGGd^nW;Fn3hLF4fp3@78GFV*
      zs%G54E2w>eQ!Fb%siG>_6{~Ejs^wX}>j^S4HEqi&rA^<nozk$Nj#1Z{@h!(cZj}Qi
      zsZEgBDrj-ZbAu{e8u5~n*cuX)bb?A=dE>e!NsFM-zqP-g|F;cc1+FSo;`ntJLr|jO
      zvR;s!Rq8^~nwt@{<n&#OnwfSz|3t&9UE{3l_|rhKN@zr_O0|M@k=`D&d{xhQ4>Hc-
      zZ!nu3EEaK`qB>^<W&fC6Y51%XM1ndCf#)fwFlWwH@@`qu8bPh&nW>ZLm+koF(FNP<
      z1Vu7a<4u8ey^Vrat?Rqfif!A5*YyoHW1PHz($N_d-F3S8=#%;Ls^H`3a->kU9ov5h
      zc{U9kM=_&rQN;<3Pc7_}BuK_h*KvFc;9j(bd&KsAP#UupzgnRCfwH#m&$@+aNe`eo
      zV+c}SZTCTljC;z~V1yN|3h%U`Jr5;m33W+&1mz%+q<t{5Y>dG`21(=0*l56`%<$GB
      z7!Z_{;V7%ZLK8_^%0iEUI%L7=C_AaVq+>W^_SYL2Fq}5Bw+iDVOIo(1Q|ukU`*Cfc
      z|4*_{fI`o*wyH|X!<f8){CLli3HPF;b6kj;=d{yF>gKfP(Ho=<EU1_HyejW$;9!h6
      z`@EzoOr*Dw1z$@m@}dG?TV+@mA%V=n3{pKUs13<|#b1J?c_^X;SA%EKY?KjhJ<l&f
      z&1=L3y^y43)Wz0|N$R1lI9*xr6@;S@r&s><%4@WwC6bm(>Xx)jQjetNl6obrmb6yV
      zdPz}92}vE2Qk>#ik~Yx*K9G#<s0sbq9<%a%JsA3GIc|A2<B*Jv=*de^gg#5sb=rcn
      z`_ndtbs+OUuO>`zdrA4DjWO@uG;sGpPni0?8n-!f?|;Y*aUiY1Q6jh}7olNMiUGxe
      zS_loGL=$cY?r6fDz^Nv@7#PzGyN8ESuifFgEL?lSb$L_V3gF%*yb^eI6Yc|E+l2dp
      z*Eit}P{4bD9YM{TX$y9?Vq;eCQ%fWzZ_!|`)kvGUsIlG5#f%+hE^h2JbJEyl=29_Z
      zH=c20*!+q1)SVw@=e_Ja%Fg@Q`G9slsGSePIh*QW=ZG<BBH{=~m>e<15hpkzrz1}5
      zh$rxr#u+@@3=7YMQNXj^P*5t>m26hJz)BTXavMrdX{8yh6lkSctu&{Vp3zFrLFrPo
      zCbW`;R)V;k>bylS<s#r;2LCGfA88NjYz>*$G?N7r4Vl+9Q{uCP%p01y1STFbZ))Z;
      z7#T8eamE!U*BLTz*J|LJL*^Z3`k1Lly~|8LGi@RB9y1%5NrcS%%t&V1L*@f!+L=j)
      z%!kZ$GSd+<A2GAoL<_F|pa<n+JWpXHiFVK+?S#FHZqRP}lZNRwZrm8{7d^OeH`4(z
      zg8O!Y4vMq5Zaq3IuHd%4Mp^M4O^BN`DSpRQ`v)Bnf8nORO`|O>Q2az^;h(+h^&zA*
      zR{RoDbo0;j>76oSnyiH+YYy}|eW8QDq_4u@p)eSYzWV)w*r}%2)<*2t+UuKt05_8A
      A8~^|S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_el_GR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_el_GR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6801e4fa1ff307fe4e1f704210f6aa17957945af
      GIT binary patch
      literal 2526
      zcwUWF`*Raj6#lkpn%gujVJW3xd4^YcG(|+j7E}sUq%G2gVnBs$vZM>irluRPJ}E8Y
      z3lv3=m!NbUe*m!{!%)Ef?l_zOz(2w9FA&eUyD4c0XKbc>&-w28zI)EOd-wkS&**Oe
      zR$(}R5(P_=RxWx_KdeVnnYf-ZqHS{6Y8}XA)4FYDtbImmUu$Oor3&g~V9qvE(KfTs
      z?lk%`xoq6nn6nZoLqRxU#Lcvx(u`g`tJ|5Z0=3Q6)~#ezv$Lj^Y*J9!lCk=1-Lkv%
      zRL&46SD>s=Fg2OY<a#M&oG%cfsRjihE0^vzvRh<M0#g+DBMp&AgtU4M%D}P<Q>ucJ
      z$RY*eh+!N`=>2^PrtN)V5`8_Hti5|YszUnh8O!b=uPp5uem&irrg4g#-lW?`VWp=O
      z1QUs9dwaB>{wV!~aX`<d?44$MJZ6ppD5#3(vRT85_iO#>?o3KxJ}uz<njgrYpbnXq
      zoobmBuuy@owR2MuwV=2}!JNnnDxLlt8yXwuEo@pj(Wlzulsxr>(yrcHT>SR#gGSt@
      z;ze^jWm=}af!0}C-=(0mC6h1$pjL+`_e!9V@^CKXkLL%Rd(Mb6>f9B0nz1v^9YTkk
      z8#FT_@C<dt87BKCVHEQ$#|%@<kaL}imDqE%na)+`hVvkQ)J2}B9uP9Z8u>v|Cr#&P
      zfo5i3qxEjl?>fbfl~XS_gfI=&0xxn4WljPc*_OEoY+{>pxF@hh+PuEN%WPkD?l=zw
      zUUBUa=C-jdS7G&z5T>*GtBjr}^r1i}+dmTXmcUN7FL5;jU2LDGD#(7#!+F&`)L!C_
      z<xevE^~c_Qfj3>wN$0k}es|?N`J)2eY+rFkInxB&mz^=^hQI-@GG~;t>j|NTvpdKg
      zli5+!b-62J`C|ep+HW^g!Y0gE+{;VeE_hfk?X{b~bJMwBK(oAuvJ%&~ndwzizz#pg
      z#(8gZPO>uckLL$@zZic<L5*7_zbDQEnVZLXk2$jH{HbF61IA?sCdMD-`eZjI&Twyz
      zg)jrvYz>7_i|PPAnsoBLmp_1yC%oh?EHF)Ax<HM<41rpKnF4hJa|IR%EE4bw1O+Mu
      z!o0+{AuL5beH7YE%jl4wrk#2>e*#tc`RvlOCi@;()-2Cj5I$TE;UbpPd9!;=I-d1y
      z|MT-pXSO0~*e&A+yJl(qlaF>#li%bmCa+xgA94*$#C$5nM|Z&#YM38o<ORqp0W|=@
      zBEN$C$|Apt{BV&!m3%ssWY_ZXkz<WF&hW-sZ=6}gn?-(Ikw2UKxkdgw@)s2O5%L!m
      z`HM+`_JM34<-82bX=VjY9Fg-V@rA`htc;baQ7z_IS81^_b+r}?sB5&CP}gd)aGAP}
      zo&mK<yN&gQ;1@XfB@S-k;LRM|DucJm;B6G#9<JnIpSoQm#tvp^%-F?@-OPwd#$L&I
      zgPua&N6&Iqr)N-&)3ZV~NGVxRGFj;mE2UW}!%A<lQlC`HNu?uFsb4C+E0x}tN*|Ka
      zfZr9G%|f#Y7z|fE#POJq@Dqf8LijDLr#wqN<Wq^X6XN%f&m@xMT0G=)i3|`D@Q{-d
      z86-q_$SGcNmd1H{$QN!7oU?~~$;doL3arzNL>MXekgph7%t+8fzGg%)QsE(I7^z?+
      z<RRZMQpHH6hn!_(szxn1HzHq@^Yq+9uOzS<E3t;`wHU@a{DmewqAQ~eo0VF+E|#HH
      zX{M{916!5-bWLQjO&Ovq;w;*gpU|O<V!QGOT@HU@hw?XF43E%KQbLLs<SKmCUo5<Y
      zh|);6Km5z?;?m<Z$|UGgLT&)Q!xc%sitjyggGZ)DpZjGJcUKX&be#KxjJozOQk&1{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b0737af2f1bbef8386f753c5b4901a8cde3435a
      GIT binary patch
      literal 5113
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_AU.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_AU.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4b4589a967e48e1e9c27489b01e272f75b28e57
      GIT binary patch
      literal 2289
      zcwUWFTXz#x6yB$4lG8LT=}=0+BA0S2mj*;cY(Yy)5$HvjUJR%(O%BOGG7~2=V7vi}
      z_xlAD@49^O(aVEtu@?RSm%qWE;PMxU-#(dy(1mOHkU9JN&feeNXV0FK-~YMs8xifK
      z@8Z-VXj9$^(r2ynR=VhBt)fa#=;g3;#`Q{;Z@bPZ<(wLsjZ>?jKJ6Izb}>C+SN!9u
      z;s#z;9SEFUQ3*=rRMsw8MN^e6&+=VQkTFryww!$0^gY|j4+-iRb)AZDIsTkg43wlc
      zL1Iu)SKf1jGF%$*l9JfkCMf9yr3K}U>zX7jfkywf{(k=L7{m%(R;a}B>n?_%M8jo+
      zAbCNlb2+P85w!H=U5ly|T+g3xc(rRh={kM^C{_xMs8uSLurATtW0tS#8Sg=oTrNF1
      znXXoGn4CIe1x0_xE;T&v6-0tMvw`O+CtEeEr3JSrX)VsU9<8z+zc{*R4}4@~cC0C?
      zF187;WBu(W?AS51{SJs~vZxs?LABi{o6kJGa8_k~oLLTMi?(C?`;leyz?`7gQ8%aJ
      zgqM+8+#*SkjG1`VR#nn{u+bZB-!CXW6R3&?4+v_TS2-ty4<gA-A@FMGAw-RPwzh|{
      zV_JUT0kxqm`;)Ykx+Oh=T98H30T@Uj38#<D@SKdpfVQMZnJEO4j=+GRqzR6)d={EY
      z(lQo$4Ac<|@yFRoEl8SSMGI3k$6YPMcw956<^(%))+e-q&OgOI0gio|rBzwd0*vV_
      zTAzb4<(`*x2F94ma@InUdN}J@Gy_=!%Y$kWXGCVNh8#=}(q{{j$}mxYjXd~BT9FyY
      z^R-ok=XvxAxq}LlJ%ffKy|4HKkn}9{QG~0(^Uy~j;ns^ls750$=~9xGQ#V^LC8?LX
      z<8)=w@P~sCr&sTI;Wb*)Qc24s^+;MSsaMhpNqv%5OIjysgQTdWgrp8hDNb=MNt<Z^
      z-^GOOs44xm&R7e4D;WAlnX^2baY)97_1q;WLZ2t;I&H<-{eq2A9hmr^HxlNzJ+J)H
      z#*p`H9=Q9MCro`!joX~L??2=QIgr-kC=pzbOVF?=#em{KErbS8q6xPHcQoNn;8YXt
      z0>(JQ?&WFJYfrc?57*vsUC|V`61cAkuL54(gx3JCYr_4&8=CM&DBwN7j-ci(v=uws
      zuyH}}Q%fWzZ_@TmtC2P{QDdi>i5a`hOx)OQW~8yl%%oz*UOeN*kogPkt2;l;&LiwR
      z%FYMb`H*%#teua-c{0_(&JknUM8q+UFgaqDBj!0Gqa#l0h$r!s#wk483=7YMk;Sv!
      zP*BR(m26fz$4VtuavMrdYo&@-3bfJ%tyI-Y&uOI>pmZ@>6I#VWt3X^%b>5_xGZFBw
      zfPW4A&$JJ9wua2>nwbO>4VgDIljpO9%$u6I2qqpfZ)xT-7#T8ebH<e>*BLVJ)N0_G
      zL*`v()-Y3#dXJfYX4*pLeP%W?lL(m)n32r1hs=k}v@??onU9$1WTqozK4zxNL<_F|
      zqzB~_JWpUGiFVO;+6{XTeNTJoFB+m-xN>83Q1s%)-9m@NFfQCFIxJ4(zV+y+xPt5U
      z8cm8HXiD6mY4Hc{+CS--_#0R4EgEfUf#Rn+3;*9;uMZ)mvEna~qFa8Y&u*6y(_}3q
      kS#zK-=t~{^6@48B4~D^L^wl31#m+Xxwl-qF(O%#F3rM=<`~Uy|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_BW.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_BW.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b335913c5b2992a2564872da0e7df6ea043c0078
      GIT binary patch
      literal 1713
      zcwUW^;Zjpa6vzKdNU|gs2tffYq7YF~NJ3F5g0?1zq6tKTq)0o?C0WC@H}^7^d)vvU
      zK109s1^NPQGM&zJ#(wRLZ{RcZ8QSUD%}u;z?2I3hv;W_ovwQZO-TU^R-~Rxxgs-FM
      zW4K<oyv%F;TRmgiRoxVsf-+myE8A)4u3=j*h4nI5iK3rjQaO6AVP*=(sk<vqZO^HS
      zoM+Wc!H}qls?pHRvN+Kl-L)NtWTCURZq+ko*D<X68pB}TwoYB$a`$!96C48!EX^=d
      zcWm#3Tzc^w8ci)QXqMMF63(W|iDQ`7NG+sN@|R7MC4C|&6U*(oBpG5omstk>oe<yD
      z^yVqU=-~&GIz6@>x6<>9D_yiL_n1_q;Sa)k<D@}$SWR!}uITRg32joVWs1d2vq^`k
      ziC4O3x_d^W=P|_qhM}tGIKrwn%gx4-ZE{RA^p!lSm0`JN{><c6hET3j3WRl6yH5SM
      z`o0R;?AqdgB&AcOq^Ty9?zzL@p?8j6i>gb9=Id3{unhM;?J_sN&(NQ@YhnOtWTVJ@
      z?Cp5*K*K1`4bb7TGIm+R`Hozc@{WeFj=Uq~s)q57T$OTN!$e1}NAdZY?)ZsD@qljE
      zS<ErYah_w0W1M4x;{wMd$7PNgj#-W{M~q{TBOzCRreO~A)VP9SiEVYA_VgopZIkLy
      z`?_OD?Ze2rs!I$Z>}%M=O{$H1Y)~oZ3m;XKT!rczuM0QdYr@#v{D<2RE30?3X~>-?
      z|7W?h48$}YB}DIcn5q^=gjAGNAE*F`1$3PBU_cL%P6YG_Y3dn`CuFmf9rNwDZzp_v
      zArN<w^khI^B7HfauaKSz=oIPMfWAg6P#<U<qMUEwCe19+v-nZXgUz(C*v3)|pSE$U
      zh1+ecwD4IQcUxF%<6dIu4elR=!f)`!K`5CkAN04dR3_t-ydt-VgnhE1$O@5&PaZ0A
      zmq^qnn~K~c!hQ0HNb(|qL^tZOB$p)VMr}!QMUrmR6G>8%4EW@!B-bQ~`J^BTmn80!
      zq9k!iG@oosG9<~MPj)03DVN(Q{i5o)OaCvZW56<1_ck=FAc<9~_8O+JK{bC!WD{F>
      zghM<=gGS%u34Xv+{DcC2MG=2u8}G1#zfi*8c*cgY%chWL(^y1V?IOQdd)*!(LzX^a
      u2;cY(&)=sJQLq!DbsSK^mn!&xlI#Sh{a`9|>E|=C&jYdjz1TzL_0_*!5?j3h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_CA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_CA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd3662fac6a36c5bbd6838957fe2945219389eb2
      GIT binary patch
      literal 2313
      zcwUWEYj+b>6g{_TlG`*bVSrMw$fLZ<qX7{STGSFK0!<4{0Rt*blS?v?%*4qI7+?4R
      z-|q*CicfU;(Z>hZVlDguE`NhR!R0Ry_qmyb(1mOHA@`oW?>YONdvfOf{?GN_h-fo?
      zAEypMYl=>gK4YD;(q%Vql~sB|Z~L6nu2->q+jUMV=VWFqPMv}Vv}54g<@AJI^AD?<
      z8+duOD{u;BB`8%;dAnkjO;xo#%Xd9N#zaHga*Aow_iU#)BB&?hIyK*N{G(PmP?EX?
      ziD5x=i=G=);nIqil*G{nK}jd5%qVYM*Cc5UGzK>e4)Sl)Fm~XoLM4vhbTI@aS}v;u
      z$@5B`Em-xMpm`_mSX8a#dj7GNSGUGl*YQh0u}Ww}txC0meU3ifZTYI1@h&7O6w=vj
      zx?aa+3hJ~Kl>KSD((<?)9;MQb%8uGHOHgk<@I2+@>t?+&<CY~Y$6Z&VWwzs&GqcXX
      zM>1o(+oGDHYw)+Myw!|Nn?^R?29Yz5+R++RJ^w`e-KS>GsJxH6%h7z<c5MFvWLZ0O
      zR8VKeEvPu*Pf5*gl_W^UO#J0mUD7?U(Iai&D=0o4sG0`%3F<ng3Qh>`N0RAM;5E<=
      zM2&m4wnuSdT7KXGb&;S4k~ELzOL_>kAd943FpxqLZXcQEc^QWRZAlL^Qwk*QhXFxJ
      z6C7pvEHs&<1uS$B)P4)`huKNZNSbCv3)6+0M#icz9?=Y{InK_U^-*o0^N+JnfNP&(
      zX;qap17j+W))!z*y5}UFhOt}aIcq6NeVp|Snt`l=<w3QKJ0i2!Kn|t|>GLH?RhTHi
      zMjm`Doyd&q`PwSO^Bnqw+(8Y=o<u{D-dFq~NO}tTD8kj?8R(;s@aQ=pRHG4>^n8*Q
      za!D@=>KMyPx`_Q?mQP+zQa{a))2p*Sif}OE^!jZB(4ZyFle9ompQMG7`Xw!rG$3iI
      zq!p4@Ns3BJNa~T4;uN1IX)O)mdzr8uHL1ViX={dG3q!v&M=j509Fnn7J%<U3(3eTN
      zO6$=Jzhq-{hbI2#ONDvvE-F9M8v4GqLw6qggsGpeaho#_{D<5y2hws}C4y&j4jLAv
      z7*HIjgU|p<wBc^xo;KVIoNB{!fid2&`*}L`-WTo*!@WP;7q!JL1|Dd`OMsWQ;bp)p
      z+VCLosy4hD3iuyjM^N)RT91<rI5@A*sUwn-H)vz7(@2}SsIl41#f&XxE^cf!bJEym
      z=29_ZJJz@{V*Wxqo6Zli^B6m4*m(~-@72!xwDSQtXHz}w95JR$L>%G>lOv9B#4(P@
      z>4+0L;xVk!IEl5(u&^eKJl1YQL8;hOvRUaYD^*y@Z7DsWm1<fk&`RgEQe7)Ot(BgI
      z(uHV4=mi#f3B;vT?+tn-7Xkko_&31+Ogm9$XUM#%nJk!S$h@VQBHtxs-qy?oF!7Li
      zM>Che$dGxLGcGo{&X9SJnI+6Lquys`88gkO511KbrYmGVWM(xpiIDk-8Ocm{$XsTo
      zo0(+De9TNQGd&^m2{Us|wBX85dQd*YdK@E3w1qa(R@mF<8f~Y)XoPO!369Yo(T^8+
      z9qkpPcz`EqpE!m0*P{dCBA(yNlodbFq_|E~;t#yNf6^iGH=f>`l<DYz;^#UGVf?N(
      zhmg|P1@`E=U+IfmWyCbu2uU^^=qvhK2Y*A~hQY&OFdBX3$62vQ+G0CfvDdWMcmDz-
      CnCwyj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_DK.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_DK.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b21a64e2ed0dabde7be1ee0da75e5ec3abdd12eb
      GIT binary patch
      literal 2292
      zcwUWFTXz#x6yB$4lG8M8!%#}WRxagMXd4g_u?2;eBJ?Iq0Rt*blS49)%*4qIwcY^5
      z`~3oncU?UA=;gt+SPLI~bom?n2`+zu`0bNP2wk|AU8{5U_np1Jz0aOKC%^x5<5wcu
      zM&HG$Nzlf;6Qs{t=dE<n&00m3p47`h=Zx!>EZ=sWQ_49tHW8<0K|R_r@a<xH(ysVN
      zRK*RvtlAeixuO!3%BiefvWliETb|{+o*-kgs%<&>wCQ`clOGn;HtISR-*Wt8RxwbL
      zS_Fv!K}+(U8<gQvkC&9h){vm26O`tZH?C`v)B%mYfxbTe-#Ua9xU5i#<JVjaL5aG{
      zdO>ntsdG7Np(1GM$-5R+DY%}0yzbSi@s#WM1)x|dG@@3iT*BI+x5q4B)iU0Lj0^Z1
      zoSGWU<#3#wI%5Szf7UM5eeM-Rg4(lz=P4(<U@nyA+@hp4f|`E2j&9kGUmRVuxlT}I
      zY+|AztfsaRZ)Dx=K5X4OJa`Ahsk0~>T|vQ}CmWAFGj~>HeH>ekWQ(?A`+JaOQ~xnR
      z&7*Ek#R*MME$)&eNXAUOZEHc&eX!9UZQm~_J{zct1`h~oIj(X}2p>d}*+Sq|(L;zD
      z_iSyCV8^ulzyoSQU-l$vDRoME1hpWGq<t`uLedzFSss;f7|@pVC^LmX(jgcSlr+gv
      zmd`@dNm|B2kAXU5A^r$EsX0lrtY~4daMH-$GK|MHgKAE&GiQB58|eH~>=WSFr&(H+
      zCC$N@$)fdmzmaM8yreVyc2t(L7LwG(S<j*w$QoE4REszxGJ93zV1ST5TaZ+Si2`io
      z!FSS(%s8H}ts*?nqff{kRFLc$G!*H5#ovIWXQ7WGTn(OwJ_-r9UIaol8gWS%leC;V
      z*?K8S-P9SU%Zuhe9E3Q%ddCZ|(vp@+S|+JW(sD`Nl2%CSk+e$ET1o3AMI|L9wMj~G
      zimOT5ME&?QCT&Me>koF;n&XSX(3i?F%d;7WWNbvwU4kO?d6KTt7M$HL*cjFR$^UsN
      zVSZcl${(!{dDo`?yN`Lo)Hl_*&6#`tLvDxzX$_7N!427ghD9j`6bEV|G=LHfxD~jq
      z0k;FE8t@Wej5F+Ro<_ZPh3oQg?GD!!4RI@hdm3;r@Tvy98hC93?gL)mfHyz^?*VoM
      zHE*UZ*crgayxym#NJ`$M!A!G}HZxIUo0*9j+s#be*kNX*vD3_?V#Y2!<HoT0GwrT9
      zKg`a1*?E+m_p|c>?R-!>Pr!L9)yB>dW5z_pVU934;wVQP=ZK7sIH@C^#8Vol@N6+G
      zJQGG1&sIZ0DPL2vS?L@rl~~EGD?P21Dq1PfO7mK2K`T9{m0p0-g=kf%mxX#kTuQay
      zq?a=h@UMV>4g62E8+A5^%<Gz&0uv3HH#C#yvxLl>nz;Zb9x`uf<`NhgGH-Lnl_u92
      zGVfGt;F?3`U1nA@Q;T|!nLcJ(LgsyDHZYS2nGcwe%(RBghs?AxlMI=Um}zIGEo44s
      zW{HUwT=`KC$|rc9z(^8pr$O2Qdna9|UGx_X(=A-NG1@P>apP{L17ZXh?lc_~r*YqU
      zG$AhIy1hzM;(MAFH)uxufxGrkIxPOiReOs@o0_2bsm{Vbc-Lw}NNKG24W#JiU+A;j
      qWyCaD4M|oV=nMK%2Y*FhhrvT(FdBX3hefeR8)BR5vEOK~Z~p~;M(7#<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_GB.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_GB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..726bc09d55ea6bdb6a539511aaf172c5d7648769
      GIT binary patch
      literal 2290
      zcwUWFTXz#x6#h=rB&TUw!ca=VBA0S2mj*;cY*A^U73f8n0tQr=CPOliOyXn)j5kE_
      ze!qa?{r2Famj~BkEqw6N<!|sOxcmj;cTOfDbm3Y)WX}G+v-h|6*|X>5_kXVa3Sb+)
      ziK9(meclbyXRLEpx>(LyMLRvIm;LVPvRATvr|h1z-IEieakLBcYsbKMis?zG>L0eN
      z<-p6@qk)?%+5)MZopnl9(X=a;XZdAMz?iISTW&sW`kv$FhXuOE%5K%ST>q$53~Y%G
      z0Wl=7Fz=Ov3SFA<5=m}t7D&25Y0mb>bxjfrs4=j4U_kx04sj)}*sR3$8!m=GqUo|$
      zK%TelvpK6)6<BoQwnbG7WzRp>^y<`js_gm&qF5<3qE@L=;<`X@@3nlpk?{^D$>q{h
      zQ|VfbhsoKet)S@7I;Ez^odOW(&IX=myV;sqE6tUQ5~~E-e*2caa$LVSHg9u{KxAU{
      z;g+z5+Iqf^H8;Dkb?fk!TOiBHvS{{%<@TItJ@m}n89VFq&~hYObX>>3pIJ5x9u;UG
      zE9dMu_%>4Wdn7^0n8|l-)g<ns&E{zPZh`o0U{^J`N1)@FopVEYFO$p`0<VtlW7N3k
      zXnTY^rsW47Q3v~Se-ew(Bk>?>VHSx|8cZRvm&U9blyMr=mUu`pg+Sr}4GKz3swm4>
      zLeohsRzhrA<bcKa!^+8?lbBVC7RQPwjqIt=ctkU-=D2cJSs&E~JO8-y33%*NO4_bS
      z%+Z+1vh_I{)8%s#r)li9vnp#LiC&fU44c8Mf#p%P$TKptS4S?#hv~Bgi3&{?;4lxr
      zl6Ge1@qBF+>3NQQV(y^IWKXi8Oz+$33y^q<`YfWX!86onA>r0@M65<5RnqfGEJ2U5
      zUPz)3J#k!`H~rxt#PRYiFT74mERt9((JQe;qEBL}M8CueiPaKoC881ui7tthN^vEL
      z4H)EyG3mJWwEkRYtvPiq82U;%YI%;rAsHLdbC*B_pC)k?n|OA=;BZt2C;#V_#QE*a
      z+x}Q{$a^;o-hRvzroN}f9hJHNKjel~AXf1x5#Emr*sv&KL~)`vumMQ4;7;PM7Tiso
      zYQYPMInK2E)HLd~H(Zy5YhSo7ZHZe(+~0zi6R&8&D~VUP-~r;bEqEOj_#S9SSo20~
      z;?8DnoY(tki=^arY{|46X)_ZwwwaljvE9tXjU8r28avHQDrW5BGj0r<KVx^p`2pp;
      zM>&rv=Y7g~LObu*&Ijo{mFiN?5o5+=#32=7s)!>h;+Tra=!g?K;xRs@agxst!{Rex
      zWclngY%1j&N{&)GtCUJgsoYe0LMv6ZQlOR2Yo(f2dRi+zOQj3Zy3leZw4B7nRQGkf
      zn2C^oiTo?%f5L9o*&Z^lYG#T|G-O`WOkSNOWM0?I1v2rFc|$W7$;gm-Q)OIcsyajF
      zt$Gcr=8$<?F)J0*h<Zmc1B&SgnRgYlPBDp)c~3D?F`XgvzG6BRlMI;;6w|Gku8{dq
      zF$+z$;PQ`pP(I@GI7brLjxE?hdndlbF8qaI+~AcP!#>f+8+Rin#0W3kY3vuLc;9+B
      zC@%53y@Dz6J*LGq%!ogD*Zzq^;%{EHH!#-LM#YbH7WIdBwK0T9bLD>^q8op~CpXK8
      oX|f)YtUKT{e6EAPz?Wh0P#DZcU;bfU?2(q(_Gau?+Ux6o0Uz(@761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_HK.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_HK.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d93fa78ddf6d7e2e0bb52a5728282d7e8a13410f
      GIT binary patch
      literal 2312
      zcwUWEYj+b>6g{_TlG`?I!vLjVkwSR1P?{nlLJL|7<<X`ErhowzrpYB4NM`C}2COf9
      zfbaJMMa3t&{OIF@Yq1vo0GGePpWyNri2K}3V(h}ToDXx)-uIk+&OLMH{`%L=Ux;W6
      zeH*7HK^qEAkUnQ!u+k+rXO&cXQZEOcv#wXReA{(SE9dlqi8wV2>d}sYZ<o@OcEvxc
      zDsJHA)Ske}mz1DnUghkvRWj9_<ypS#2{I<D+LlvDo4#i|g<(PMW3E&2Eyq7@l>#NH
      zMUWU2w5Z^@!5m!b@sbkQ8W5Clg7U2L#&u1SIt8_)22!b^!Bi>*y*Y&{9KW`02#V?L
      zb%NwYrOxNA`HG;$r|wuxrRaM8iMm&t#u?Y~i$Jk*Xhf~@Tp4Sp-rj5Zs+R38DDT5F
      z(3`>2o6isQ&f~#(^6IP=l>8aHTz9@3m0QK)&hpMm?-PPLa)IY5CpT}-muKCQq}75V
      z2PW2{akk@^#un_Z)w_Ee;%d4Z1T9@#ZOPEka9`c*M+b5^0=k3Zmz-*B!Sw7omGjX8
      zIg%^cj_vP;d|&@@LCs@sUd0LDB)PC-l7`R~6JOk#mvj$ov`X9e3X0DJs-nStIOhqK
      zcS3kSlFSqXuZngeYTUE6J%Sz6@&ga3g#_(R&|+F5=|R+jERy!XKnh7Xc4UUfWgG^y
      zB^_X<7)Uw<1A>w!Im+@`XevQVS?DmRLl)wXvXh#XG{cG(h6^W+jLyM$NHeJBBs+7~
      zhqZy0KgvD<j(vuu)tsbR7}GiQJP%{ay&&l<jJ+zyS&Iqk;;iS;3}g)~52_`c5t+Rz
      zaxhFtpDRk5gNXuc<iWqvjLbNmudNb1FQ8Az9aNC)aWoX^eZ~KQB+O16MYtL~1$`6}
      zZao8pYBb`Ko=wm)F6nteO`{n}m$4qs@Xm_~>ZT=edU?UW5e`P2Uj5eqRB1_zB`uZI
      zC25(YZb{1}^+;MJX^o_HlA@AYCACXRa*B@=)JGV?&Pm%*Q~D>Kv1a+QF!V)p-12P3
      zAsHLdbJ$7|`aD6`X%l+k7j2Ag|K$I?s4&lM1?7*`hrX+?|ITCIYU<l-+~&+Z{~<TX
      zfwUS&iQv}kM8l#K1BwGR5gI_P4Y&=sy#aRsCmZl0V2n5HZk|rPc7^M*aP1D)<qdHw
      zfO{J7O5jxuxEFX$15N?2YryNFfbRf1f|@tdChQDg<D%ZDrbtrWqRrW6BW-4*#uhUh
      zGq#%9xUtR5N@Kg3O~#BJc*l)l^C#L>bAEuGN7;Fdo%gZxe(iivJ5RtllWb?_h%s#<
      z;s{5W9C3^zPH;q4N1W0TkKiqh(|ETS7T&E!4(~QYL8(wvvRUaoE0tNvtt&mIl`2{(
      z&`KAz(!5rBQY$?TrAyJO&~q&G0*EWgj$8CnHUj<?@UMaYk#?cZ=8$<^GZ`?^ka<Hh
      z1wKp2ys4Q>VB#V3mS(Piks<RoXIx=&ogwoMGb@>?MZL>RFEh2M_n1jB(-Jc8GqawV
      z){yyt8Ocmr$XsQnjhRHqe8@}(GwmVs5i^TSwBXtgdQd*W`y@t^Xe(`|ZLqh~4cb9}
      z&@kP`6&#~|q8m5xM%ph%Z~;%zL2(B6uSXN&GOpjNlo8+2l(<RL;y2vAzta)%C$8Sx
      zG}hDv#ZPq>!uVaU4I!nm3artMKhtOblo8WpH6&4WpfBi49sCu29R?4E!D#fg?-#@#
      OYlv;G$KKFh-~0_w3+`k9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_IE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_IE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29f94926666778bcbbf10abda3e0b1c18209176c
      GIT binary patch
      literal 2290
      zcwUWFTXz#x6#h=rB&TUw!ca=VBA0S2mj*;cY*C@KSm;HV0tQr=CPOliOyXn)j5kE_
      ze!qa?{r2Famj~BkEqw6N<!|sOxcmj;cTOfDbm3Y)WX}G+v-h|6*|X>5_kXVa3Sb+)
      ziK9(meclbyXRLEpx>(LyMLRvImkIZD*(+JTQ+7|<?#YR<INAmJwPWBr#q^|8^$*+C
      za^Pj{y@8u6+5)MZopnl9(X=a;XZdAMz?iISTW&sW`kv$FhXuMu%Wl=TT>q$53~Y%G
      z0Wl=7Fz=Ov3SFA<5=m}t7D&25Y0mb>bxjfrs4=j4U_kx04sj)}*sR3$8!m=GqUo|$
      zK%TelvpK6)6<BoQwnbG7WzRp>^y<`js_gm&qF5<3qE@L=;<`X@@3VZnk?{^D$>q{h
      zQ|VfbhsoKet)S@7I;Ez^odOW(&IX=myV;sqE6tUQ5~~E-e*2caa$LVSI&X80KxAU<
      z;g+z5+Iqf^H8;Dkb?fk!TOiBHvS{{%<@TItJ@m}n89VFq&~hYObX>>3pIJ5x9u;UG
      zE$8ew_%>4Wdn7^0n8|l-)g<ns&E{zPZh`o0U{^J`N1)@FopVEYFO$p`0<VtlW7N3k
      zXnTY^rsW47Q3v~Se-ew(Bk>?>VHSzKG?+qSAB|ZxDC0D!E%A_I3W3A{8Wfb6R8f|%
      zgr<{Ntc2LK$N`J-hn15(Co!uOEshmW8rf5!@rY(v&2i<dvOcN}cK&hY6Y$ull(b!u
      zn4>Y1W$SY^rpxCfPSe<DXI0ih61^(x88(Ai1Iwdok!NIPuZ~=f57TE05*3;(z+oPK
      zCGE`2<N4Yu((@eq#N0uZ$)03Gnclb67a;Kz^;tw&gJ-DELc*=*h**tAs-)+WSb`p9
      zy^us7dg8b=Z~DVQh~wp3UU;3BSR}DnqE}*xM4!Y`iGGO{600TFN<<|R5?vB0mEuYg
      z8!*TZW72W$Y5lp*T65}JF!Ysj)bbpKLozm^=PrQ=K272(Hu3C!!QrS5PX5m;iSyf;
      zxBb!PkoRsFy#1IbOnpy{J1TSkf5;7~K&;|XBD^0LuwhZeh~h+TU;~h7!JWiiEx4OF
      z)q)oibDU}SscF<}Z@4ZA*S>IF+7h>nxW5H2CtlHlR}!yo!2`r=Tktw6@IBCuu;z`}
      z#GTFDIIs877D>tL*pg{C(q<-VY%?=4W4oD&8#~O5G<KSqRLt1LXWSSzf5z^H^8?Cx
      zk8&PW&ST1XzjmI`&Ijo{mFiN?5o5+=#32=7s)!>h;+Tra=!g?K;xRs@agxst!{Rex
      zWclngY%1j&N{&)GtCUJgsoYe0LMv6ZQlOR2Yo(f2dRi+zOQj3Zy3leZw4B7nRQGkf
      zn2C^oiTo?%f5L9o*&Z^lYG#T|G-O`WOkSNOWM0?I1v2rFc|$W7$;gm-Q)OIcsyajF
      zt$Gcr=8$<?F)J0*h<Zmc1B&SgnRgYlPBDp)c~3D?F`XgvzG6BRlMI;;6w|Gku8{dq
      zF$+z$;PQ`pP(I@GI7brLjxE?hdndlbF8qaI+~AcP!<gvfjk^*1#RxClX-tSyyl*`m
      z6qk72Ucr?39@F9)X2c)7YyZR{@i(v98yIbCqvFRpi~7U6+89Elx$-{{(T%_0lbdD4
      nG+7Tx)*bK}KG(rt;L9+0C=6z!FaIzv_DD-?do%Vc?e+D)m+0pz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_IN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_IN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b481d3a790d7569faa00bfdec5058112d53e271
      GIT binary patch
      literal 2324
      zcwUWEYjYE26h3d$ByZESO&2Hyiv+^0TpAD&p#_CPvCyQz7HU9+ZL%Z_$!^^2g7pR>
      zc)wpzRJ@|YM=u|oVFrJI<8SbTKfv)9h|hVmiJ^ltW-|Mp=XuY0&Uw$CeSiJ?<}XCF
      ziN1?co1oQ2+fSc1&Kl{mlQ+s{dO|JZ_9@4$7@p<WCrtaqcs5Gyf(DeM?^)&agjMqn
      zn>ELG^X6{fE|g6{iGrE8Dn?m1tA=ZMjw?u;sB0T`F|B*9WfzA9b&Wc9%`<H8s8RM!
      zNgaa3kf7e8>-bf;G~*@3v9(@M-1aLoraPu;lGFnxwLZoFjYFwa3X)Y5h1g!hLle}|
      z@K`BGo-@re1!J}*Xx{O=mQ*V_t~cHE>Qp%6*j@=JQVEQ(QK?q2_NeVWhG#Ys-h=x0
      z;+HHGk{SGxv-p84n5PWC>`hsfrt7_eVx`jd%Jy2)NIos7JMX)$Y3FD4*~*Mlmb6Sz
      z=#Psx&^^oc%A<33S73KMd$=X8A-o!IXhpKwn2j5UH{1cyhdd5~HsJ{KkGD2ra^|#|
      z_s|GAk}q4f<?Te4HG@Y5wU0UlGfH?riMf4~1j&eww{Of!x(_xQrtJF#MW=kTroaPu
      z7t?0J4&Z}GGF9^3I@*q?G1pS|2zGSC^If1060|c;^Ju=Lhfxc%NZJhpDJ1QIF~y@Z
      z1_RoX9$}{BOWF?uf|4dU%J5hy8>a;<bP&{j1M!F1$()fi#fk<74JQrls=|0wF{tJk
      zJ9E~@l!4Aa!9G5YeUhcks-zhhlX<kh03++1m2?Wm9y8BbOL6Mstf$coWc3Xfs%4xJ
      zncX_FF;YmMFG;GxL;)7^;Jax@W*pB`RvDgW(I@2gYe@DK8jAFu$=`$|j8GIsI0`%q
      zeH0RGJr9Ix6ylOD#AzXybWu>-u8gEhSPy1+=cPFH)BGsCGUp2k1|v$Z-7x@lTGBj8
      z3ncYPS}3Vs(jrL%l9ozZE@`Etu%wuzE=dVa@kyN4&>%jZ3ClLK>Vuv#X87XJ)TMLO
      za4p6G85vP?7^4t<5vOak4!!V77Djh);(uORnCH%->5VprzHiOo-N!zrtD9`h;>-j8
      zAveT<v<ycH;RfwN!@?8+iUPF}8bGlY+zH&(g1dneEw~pL;|;r?r&Fzc!MZS5`-62+
      zOWb1Mffl?3cxekx0xxgDDd3eYcoh`z9$<%1^IBSmo%Pr_r}n8Wl#sV*L#|y*>$$MD
      zNzX;J&3Z1XZP9a5+p6ah5p5fuQEgcNiFP!cA7bZS>^#cOd)axPavoRC2jHAZbg^?t
      zo753;h$D24IKmOr9FbEI$5q7RcuMUAo*kNjXH3iE*{PXODmIiXRyxB<6;^VZN>3`K
      zno{zW(mACxtCXHmO3y**e7G+30t>we;&P(<7QLJcfqxbJ>)?N+9jLQCVBSzn2240$
      z-c(GH&k`_iDds$wXu!O!n9E>fz`Vm57wcSSz`V=M5@s4v?=h2PrV;f%Gbv^|0_Fo|
      zRxuL`m=Bqe%yb6K6=ph_i3iL_%ycu;6)+z&)2pKeSAS50@+qFjFp@-@X#;J6y_K%h
      zHu{r>={Bz52<;X9xPjNwJ~4s|I7{Q=B<^3A4v0&*ey>nQ+@P$uNt5C?+`YfkA@LWk
      z-rF?V)&|ATR2IVcU26;>rLhXE;k7^0=l_-wQDi+NUU#4`=_?idHGLBV4+X(!^wsa@
      Q#2#shZEwb2S6<)#10mt@j{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_NZ.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_NZ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79da6e7893f6a104993353c83ccb285557d5a944
      GIT binary patch
      literal 2289
      zcwUWFX>$}+6g{2E%)BI%Ff<_q46=kREEy0HF+qhu5Xd5Q04J!>nQ4-SneN!r4UQY4
      zxbF)n?pl8Eqss@YsKOs$`5XKRmcKwe_f2OQQds4O>37e0_nv#-?b~mD|L6K|0Jh<~
      zG@1;opZ22MS^K=5EBOVx<m5*5a?m^D2W2~Seeaaxof?}=quD@@c8o%|lpAp?;ZdjJ
      zM?t~a8+pZ&V<1~}3U1jhS<b8-*r6X7Fh^?Iwl|%#!oc;W2Mn|i`CcWoz3{kQiX4R&
      z14h4rh0}o_&C;bFuaM!^W&;^7Do;7Vu&zmA0X2Fz_x8$fYd=@wS%;N);hc+UptbI@
      z)_}U;IOmFXwPIk=$vYNRnel`0MBS@R<5AxWXNXee*ht#t*)rD!dV8N8I&&HCVv=Gp
      zH#(ZDR(Y7BbH<KJ;e=bRd)#dR2098+5IA0;YE{cqeo0{!&$x!Ia=oxLG;fc5Vr+6>
      zL)4tudcKY|x0<kZ>%f-VAgd{`X10XYcAjiJ^Z3+Rrx5bYYOqjpJvV%iSvK??H_$xf
      z7o9ZtGP3hqq(I4(#aC@t74D(U-e~(?1L=v#sc3MYftC|a(Tm~zOfoSO1vT^lqlN=l
      z+k@P(>@W(5TG*BcGgyR9g@;)SvncGP!4wKSePTl9WS9oE6&?|0CQ>*=gMtbp5@m-X
      zG?u|)5qgx=A)E0>#mSjcm=HyqQ^k`e_RP|FOf#%zQk*60<Jw^7pA?^n$3896&aA=|
      zjqw6oUzC^PpI10TW1mxytTP#ON!GJ$2D3(XK-Ch@$jm_vd7K`mFU%;+(qsWH^Y9~S
      zW@a8Q)K-a}=h-Lbjw(#{G#kqFp(7uF!ZXxo5xxe`QJ;mxTQ3l?8jYl+7c*FbPO)Cf
      zpc|cOT%I@l@gSt}>TNH)Mk_2*Sgg>cutcF-VW~oo!U~1e3TqXT3atw53Ry{UHG>W4
      z<99LQdd`^sS|{u&xfM)(qa3#bS8z<G2KC&vB7x5{xQ0zUdpP5ARQpE$=Z(bqZJTz&
      zq56<_ZRor6n73N`ni_T`bI*Us^-CaD@hAyij|<qaBvM3aq9(8bXl=l4#O)2ZgE-rO
      z7ZP)vX?M#s>a{Cgm&9v#ye@5sTSnZ|fR_`mXuvCpS2y5Z;<XKU9ToT<XeU_nMr`8F
      zW^P>2`)EpJ)eUUPH=8*tpES2w`INcc%BRg8R$iGqt$a3R?&33T4p_fn_nh-X;=D(k
      zhs1fmI3Li?2etEII*(@C#W`V)TZ}j&5tc+8lZX=%k=GF?b;J{VD)SVdEvC(9t6AW)
      z&2*?VJ*VV~(m7Eoi;`bgdP*x*v{Iy%E@-8yR(e(|Jx`^J$(qn|5n4{-Qnup;Ud|`T
      zze4^s@;_rY>uiph*EKUrCK)qtXl7c@5;JdV<|3JN%)F(UOJr2cye%1*SyE@ryi=<|
      zYL1zAg;^=gT-1BQ^a|4wGw%ztPMFr1`9K&YOk2!+C`_9$nV9)Vm=0muW9DOF7Fuk<
      zm7nyWe8T4>M-teME!aVOC%(rn{DlGB<dvJkexsW=?nWFi26^F*;h=Gv_icc~#${f&
      zS21e*fHC7b#*IIC*Zzqk#^1bZZ(^vaiHe`<Eb@PMZEgsW<I2B4Bsczw&u*2G(qt_p
      kQ**!<_)-Udg|Fk_{y3P8zVhR|*kcW`&Gp!CwAZ))0{FG&L;wH)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_PH.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_PH.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34b0b6de6b3f1784d33e6113a19cc9c2fa3b2832
      GIT binary patch
      literal 2313
      zcwUWEYj+b>6g{_TlG`+G!vLjVkwAE~r8GrEgch_EN`a;=OaTKbOp_rQNM_<>2COf9
      zfbaJMMa3t&{OIF@Yq1vo0GGePpWyNri2K}3V(h}ToDXx)-uIk+&OLMH{`%L=Ux;Wc
      zeH*0~L7NJ;pFU??Fw!L_XOztJlv)njXC1d}c$Q<IHto~1lTm6F)T<nQ&nl&-tg3g^
      ztUA7%Gxz#-zGMnY<jtH_HcGl#F<irQTtV7YP1~>wY29-zyD%cCW8AT;o?&~(jgoIl
      zY7-=e1T87Jj$eUGBVJM*TZ4k)wqKq%-3e8bq%J{islilgcqo-hL9b$>3frr1Yl0$b
      zdxIc((KOHJjfJY9rKj##Ott8^-id}+yTTdA_KHA}a$tmwa;1#5OKtBnJhPtdE-3HE
      zGnmZhlNmgN$pt((Pu@Ih_$6=7DmR?(78ENMca?WllSc9hL7h3@bxk|Bpf8l?osy)r
      zf<m*!3OZ-mUTJ*M?t0#xoNbD$3vUv%e0{Aa!^0ze4YMCD$l(lV52{~ws<{U<^XJT*
      zhaSk$T*<O6Zx7`A`i~209e46(l<-j!i(4jX7;Vw<$&Cd`_rON4lzp$D=$vm>6}S(d
      z=!BWK19(4@%oTmNhIS!p!nKq=iXGkXd>5#V1nr5_Qd%bILDYgQlJ>$t3Q7B5%<;TT
      zz<{=-NoI<^q(d+uC~1nL43CAT<FuTG(5=uR1Mx@M$()xo$BG7~3nvYYRbV`%7*unT
      zojL2n%0SB>Wgj2MKEu*xMbbQsnH+kahcWG3kaQNtJ~PKzi*f4atmn`SWc3XfswJEe
      zncW()F-=IHD@ww54x<1IdGNEeA~TNXDXRp}3+NMa`&A@+91TT!&*UFL5@sigA{+&t
      zf<6ifww?h(H41S_&&Fv5m-M`#ma&Ya%UEYKyz^q5dT3dcUS9Nb1cMQ!SN}BtHCobA
      zNy{a5OIjhRN7713y^_{QS|@3Pq_Cuzqz*|5PVsS^`UpeVHD%f6wEBzZjCsB-G<DM)
      zH(ZNxKt@K@9L6X_pU3GsZALG=qJ`1zpZcFS73R6UV0z<?q3`bNzw_9~baj1ASe&`{
      zKjelukk;ZTAzYhXXjqscKvAF;LIWt)gxi5Tns6s@q6sen#(2Z-;ptRscd)Jq)}CNp
      z*%Y@5xVH(f242&Ilfdhma0+-s6W#~~d<WPe)I30&u``H`i)x=*LJ4_`wq#qiw4M!X
      zTlH*2+ooru+IBrFwH<mk5z%(y9o0tkpJ;d8`2ltwW9M;p-p|ell=DI5d>GD|L<c*E
      zv>6={M>s;~h+`aaf+Mmj;*^Sb1aGOG#=A{3@Q!IYyxTPsN`<<T#Y*Q{smw}FL+LT4
      zR8>m8Qo5*=7L?MHO6h4RT?*HPo@1dGKwL?5-lCVXA@Hw&e+~SPv>SD{2F&Y<$$$w5
      z%o~a+@L2-pO~qUS6AhTR6mtcP44Ah$<0_r&448MAS<Os6>Ro1%%+#aaV<yE+Tfn@}
      z%tmHn0rLSfl9~2^xynpCGx31=keN<qIs)b+W|rt^!L=XMpnQV&NsJ`XHrhhlVeg<D
      zw3Ggz5xR{lI70hH4{qQAIv_@I0Z-FGaR&FVONYf}T)$T-Bfg_)ag%1mZ@7DZrz7G|
      zT)nqxyrl(-pQ<c`@w;9hLP}#5Si=K9(`Wyb5m96<Bwll%FX&4Z{1ts21P=wlX!N!3
      R7sVcHifwJg-cVlO{0-0X?-l?6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_SG.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_SG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bcac524b291e53304e7987bd6c943beb8dd2e500
      GIT binary patch
      literal 2309
      zcwUWEYj+b>6g{_TlG`+G!vLjVkwSR1P?{nlLW>H8R-kEtDPTZ_X>v&hl9@P}0qYAN
      z;QReRQSpf`Kl=FKTC9aXz~yi7C%F6t;yyQ%8oO{U=fm8y_dREybI+W)zy5XO7b4n1
      z-^Qs$(1xNDWX@XWtxVa?TV<7*)XRS7jO$e_-*%l-$~k3D#Hm$KuXYT4yPTP{YyJ^c
      za|180_5@C$tOTVBDsNY;vZ<<;XZfxt$e65aTTU@!`kw6+M+9|@xlYZu9RHYA4wR%e
      zL1IYIqN3*pRk+N@OG;vEP*BndDznNP*ELD%64aI+Os9v3(&;qxstQ#&eq-AZ6w}-5
      z1j!3Zohw*#H9?C{-nN)p$@To>^Iq*5XI;lH0mUkz5w$AS3f3;Yz1Q+pBikLQd>@{^
      zLSZnAXK)S=xPm%k1!aH6uFSjMDJW4Y?X2vq^;vyS2<prSo~NAroH<vSb<2`g<G5?l
      zHQVvaV+;1cN6d-6O;HWm4T6@gt@mSic%*;c9KiAOs2{CC<x5UBpMQGxtjha1zZ}h%
      zZO8WSgM9zMF+r_kZb8KfA0)M~U6O{;5)+@>nv--FZ1hRncMFQo1gfUNJ@`DwRly12
      zy+|@s3cNbniKubU*7hiNOv?{Epf(b8Uy>Hn5=js6Q3FTP9vDa=3CE7i@T`o(fVQLu
      znJER54#0q*q)Cpld={EY(oz;W1nPi=_#^D3W+lzAqJ_!ANh7<fFdotjsyV^Vob_RC
      zpyiLUPk>{eW@%NGGz()okDeD`Ou6SJoq@4e<vD99N!^_FESiC=f#pH9j58v$S4R#e
      z3F-4CNmZCAz(yYYD6Pnh<N4Yu!}C1)gxo<5$sR{Tk=|GQ6G+13#8HH+!BfyjA>r0D
      zK&VC|F6r4ME#s1&7u2#lE9nx}Ls{N=F-bkNBu+0c_%Xu4h|{b88h|=2X|bfGlDZ`=
      zlhh+=xujl6t0b+Fv`$h~QbJOPq!g$4I7$74A?%v89W|x@;2CR{Zwf=-GRG{>W*m~S
      zQ9XwViqPjtx<;GO3%_JzbO$E?=PiYKZZ9f-Y<}pw`v-16_6bv8UE?-q?)?wBAr7R~
      zI7$RpW)~V3r5I2gsD;n~N;Khi;EpET37l%ei-0lSuzPqq_1Yb-%fhuMT$eY+tpM(A
      z!YhGSHQ_$sHBC4TysinahXTF>><DV!NSm-Th>Z(+pIRa*d6PEhT8)gEiyB+ZT+G;N
      z=HkXSGbfGhW-b*ocHkX1M$DgRSHt;!cHYg-W9+<-ohP*Oe(ih^&e>E4J4cLZ6A_0w
      z!sLjf9C4f@aysIqj(7xbX`I5l&9LxJ7<s(g4F#oQL&;{PbF5ThC3jxwF|Ab7N`Y3o
      zpq1vd(vw>0X((Nc)`gy9p%*}0PIca-mvRyCuYi9I{ExH?b+(4g>zc`eiH6J@nkn*G
      zLgr1)Tm%yjnYT1^8H@~>w>jeqlj{tbcbHkpOe5-DX8M?EM7_sMnwhqcd7qi}%p^kQ
      z17;*M?ICl8nRaH9A@d<Koy>HE%ty>DGSPyoKj=aE1n(0VNusT^nYO{+PS<G%{Xrvi
      z3s-QA_K6<cz#C~ojN$^GqW$7D?q81%ic7eDuTWNeM^oYkO^e@f_x?_Y#h<u(Z_!vw
      z3lu-qSqS5Itucg@!78vuH~vhY{ZmFvll72f-GRQKFLm%&^mQ0K6b7TwSHE8nd$cLG
      Lbw2jG_WI^;R?h9p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_US.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_US.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86ac887c5ba91af9e7f573f061e6dd208618e4db
      GIT binary patch
      literal 2315
      zcwUWE`*Raj6h60UlG`+G!vdvXkw<xzM*|`vw4hKZ7Md2=mKsoDn_QBGWH)Yh!TJIf
      ze7_$kDn8NiM;|{p!wmibj(>xHg5zHxe&=QrLI-EeO!l7dyXSo8+_Puz@BiHRjfl3;
      z_i<_ww6@>`=`+?jD_wGPR!ODD^fKz4cD=IY+pcp`IVY#gIJFAu)sBI0m(pW))jz7L
      zZs6tA-oVM1l%P~z<?OOmGF8R$EZ_A68DlkV%PFKy-?N><prDRn*QxrJ;~%q1fs)iF
      zNDK&?SMc1R0+&X-q$IXB3Q9Ubc}967x+Y0o(CFLP*T?_O16YA83Y9p1-Ng`;Xt=Bv
      zB+n~#HgC;V1<gNk*P^OL*Yl?vUhNuZT*og0#mb=(waS$;)-Juh&+=70<2}fj$)xl7
      z^elcjPF|h1f|5UJmm5C!qL5;7XL)CJxh1GG7kHj>a<k@adB!bCT7lE9Lep%=FAdMx
      z10R_(_ccY;Mc3lRth(Kf&6@`|-2ss^hw9NB)V<(D^XVsM&ZwM^)61b;$#!giH?pkj
      zKPISk*v+dr;kBgZHcJvDV<uj@H7n^p*yxhB?-vxG3{+Kv2L!cEtGpA!2a#m57<e_b
      z6Hz0ct?eP~n3f-SKy4&wcarAQ0!a^}7G#mM7Y0&D!s#QEJTW6Mpe^YUW{QENgD@Z{
      zX^f*RpM}Pgw2*}kgF0v-{wO=C8A+3@Xkor^(#W0)j7K$tYL2rrXMIc?==>Ax6X4jV
      zSXxyi&A^z*q4jwf<L)_0r(x_<InG*4Qa5KkgJvLWV0ln2;f%=a)sTZZLi$`$QUxXo
      zu#pF!ODi(tc)qqu@H~e;A$L$kvZv5cr1uqn3X-0NK8kQPcozC7B;0x)2-RrBC0$I?
      zA};AgK`nbSk}hFAoZ+39lhi{C;`HjA&mtU*IK6(y0Muwn^Cc~m)GcX|q#j9&CG|>L
      zCTXRl)smu;5|TP3r8vc>Nm@t!_+rLvM~&<6c+#5T`@+z7%`wZf8HZ$SNY7z{BJ^dF
      zuF(ec!Y|qw-Ttxvc~@bc+Y8DcZVY|*y8gS5eZtfi*oe)Ud;ddjfCFg-juOGe*@cEh
      zDFze=Y9Ta$5>2=rxT6Vo0;ihrJYbAB>>i#@y>^G|qHygA*Tqe7OMrWu@KWGqO?Wx*
      z$|l?gyt)amfdbwG><DUJPaCka5gX_AKD9(r@+NJ{wi;<O8#T6=*_g4_%*KsvW>y;8
      z&1@=W?7%Z_44S{tuDbI>?7WAahuL{QJ0H-_quTipoHMBoc8(YmCL)e-gvk+895Kxi
      zSsiggM?8+FG*05#W>|P8j2xcrhJsR|u4J>)Syn2ulG{*vQY%%pQlOR2Yo%GO^o&+|
      z4oVlIHK7++=p_)BQ=K>Im23q3YvA7i|1<4Eovk7Bre-o=q9OB^W(s_kka=4(7r?|r
      z<{iyk1|vh}UCy|~<T^v<J!Y0NQ;&L|ndQvXqds7!kD0cR`H-14%p^kQBW5Hs?ICl8
      znRaH9A@eaaoy>HE%qPsuGtq*pKj}gF4A0{jNusT^iMGMsPS<G%{Y8Ux3s-QA_KP0e
      z!0YLN7{UcSPNU)!?q81%iA%VCuTVz(K;z;DO^82m_x?#o#NW7jZ_#i|3lu-sSqS5I
      ztv-a5#wxHz*Z)di+%6-g$y!LV=0IQ3*E;wc`Zf$62!qk+t3S?(oob40ZNy&JUf=x-
      DrC9CO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_ZA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_ZA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad39c7410b6b050f8be7b469c54e31aa0a86997e
      GIT binary patch
      literal 2289
      zcwUWFTXz#x6yB$4lG8LTVJM|wkxMDG1sV_$u>~!KBG8L;3Yen8G&v*#$xNKgfbj+>
      z-tQMsyzBD8M=uYq#aj3ST>b`sg3DhZe*0t+LKm*(L+0%7J9~e7pFMj{e*fpjZ$z}6
      zzKc_fpiOxvNT0RNTj`>kwTdb|sh2~}8P_XWzU?}vlyho+EKaS0dbMNV+r{*xUGZmC
      z#SOfy+7~#vq7szKsjOYHil!=Cp5?oqAY-zoZ8`b0>3g=59}(0s?m89Ua{S{~F;J4)
      z1c_lmOY@!^l;P5dmz2cT7C}iTC@m;&Lf0f|2{ih)^!4#?+b~w(vO*<}Uw1JCB^oaM
      zg5(9I&gHCXMbNU7cP*+?a6SJ-!>e86DcA7}K(SJ2M6FV}gmsDD-f#J;p79<e$>q{h
      zQ|W3IhsmikR#5ck>{7$yUO^<NGaGoGa<WykT3T?6lGfpjvuKs=_{H%>dm98r=Er86
      zqUvIs@H#f!Zo;;0BU|r)s3wb=(GpbKb+Y-)GYe-`*2kIUXtroOw!ary1_qA{Y8`iT
      zDo%JAsl_dl1j(3*S8Y`#-3J@J(f0j<;&XwjXz+lbwi7Dngz!NmnJWZd4LyXY3D4H{
      zD0WQC4?LhYv}JFSmQk0aM^Fp0NZJPjDJ1QOF~@T<0R!5S9%ZHwNIDDyf|4dV%JNxg
      zI!Vh}=rK@-EyT~VlUk58$BGuF3MY+>m0>)t8B{aR&YblLZJ_f{u}^?wpJr)Qmb3t4
      zCX3eRU`)H`C7pq>Uu8LKAxYhw^(>l!tbyf0wTLq!vsXh7rU&V>1xaO?D8NP@d?c;N
      zjN|#*D#G(T`h?s;1<9U4Ly_KB`~gUM7Wyc{)!=#PqmXdxMIcn85tno+Nh_#}t(TJ2
      zLtSyYvS|3jL5S0<cf9Z#Eoqsg<&wH3t&r3sX{DrINoypnm((vQDk&kULsE)UTuagb
      z4dT0)v>i3Azt%Zxfo}yv-zdi|&t@Ewu~9vD35w9?NxDv(ady98V^jwx|L2W_`EAcD
      zf4ni|-2;PnAM=E%uc--}Gxz?7+%N~yIvgc}>v0Jh7Nr<a9H@oR07^9BcHoXC+zFg&
      z!b^cM&aiuU8ui*8t}DW|CtO!H#jOJFZNjU8*EHd^!0VfEA8>yY-UtP}2iOtRJVcwZ
      zvjrO$^ggvjQt~Ek&9oY6GZQtoo0*ug!_35uon}TFyUa`~X6(i@Zj6|}(4M;U!|Xi9
      z&g1NSfSnI&=R?~02%M)<9qb%2W=upJ<p`4_j&Z~Zj>zbUlRDx_Jf(38&o;xtGht-$
      zY&R5?@^vMfmCmtJiIv=j($iY0qLl)zbU`aswbFB1=>;fVjMju!v(Rb~ms6cL>E%oW
      z{43yJ1OGGaL7lB3^SWlHz(hml4b9~FEFtrzW-fw>hs;}=xeP{z%-fuCmC1F6%saIj
      zxaN>~mzlN9)T7>GrjMDnka?e(jm#uM<^yIVGwmVsAv5jFBtzySW;&Va2$_$WS!$vM
      zSAWuj@(G^v7)hcXw3T+k-bLTjZu*Nx=oYTr7#$EjxN(Q*pcuu4J57hgY23FS9T8V>
      z-Cm<9@dHhZ8#E*Sz+L+%9Tk7$s=Y<yEiF*|RA=G;yX*BKq%>Ci1yXeASNiOB88J=P
      mLXtHH`hvdH!C%qWVeoJmj7DGmaZ&8Crr6d->^Iu$+kXLg*yc<C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_ZW.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_en_ZW.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c091717dde697b64686fc152df5795443dbf036f
      GIT binary patch
      literal 1713
      zcwUW^;Zjpa6vzKdNU|gs2tffYq7YF~NJ3F5g0>n&(FBknDbS8{N!D=f&ArUcz3t>v
      zpP^s+0)2rtnNDXqW50IBH}DyJ20J~wxrtXsXZ(<y{r~oy-LvQH-q-*A{SSZzd>=&*
      z!_}(gWnSt(>KW56>!!%$mD#Xf*iKD%4cmGytmg-%D0&&jm80hxW+rdc-5pW4J*O=0
      zdsf9142g;;8#Uc5iWA+@UE5(u=G$xQRy9*}9mA@wF!bkatM2NSyQiC;;OJvuX@;Sy
      zV|yp$(v9cPXljl@v%K1oaMo2$9D}q*YA%(MzigT;=@UVjSZ>E9$q?(hOf&GGg!rMN
      zH|h+-haXL<er!8#sp}P2x?o%GF{wz+AB6SVNsa8FnqJdg(b@3}+N4s+6bhL}gAP*>
      zFLcjzca2)tV}bz;17*)~gjH@78?__b<d|gWIk-%<GA!53oth*bIw-9L!aA#6rG8v~
      zUxjRTW&Q(6>69sHstKig<}i5Zt)rKs?9!q6YS}a_!@Wzp%*^gF^ych}=tCOWC^DaY
      zJML*1#+g1kTvo;|YB<}Li&EawFw&N{q+Hf8+Lp^wu4))-%hf2pKGhvR(J1cG?K+J)
      zhB?l1jBt!{jB%Xf80WaiF~u>>5$1?-^m8QS>Q6PyV3rz}H!QKKuG6l5B(H5!9coW^
      z45@t>Sygq3A%r~*ySPrZagPlu<!t`*ic+Hb#;d~3b(=6UGyCy2#ER-2ts8RZ@lPz5
      zmVub0qlD=F4pP;^h>(hs>H!r1v4D<~?hohz(usf`B27J`@tACuvLn77_3fB%&jsSn
      zlO7M~3#2aw^d-_$0i7Z}9ne>31?mHhLzMG1T&I~idKSN`d9bM_=37{3;>#9pG;y<q
      zr6#^=;dT=%E!;^Ayu#i6Q1}(T*$*Y}7x#OcSSXV5NluX)M8ZB<Q)G!q#3v6FxlJVM
      zlXXSz5aB*~NF;flK%x`%NRkVZbfPvSxg<#^>aip#N&0;9M3O6##C(#Mgi8|lNkNjh
      zB$`h)B^i*U-zQs=3>AwlZ2zI^xI_O3)G=U@s(TX}mXO3UReJ>!SfiRhAhM1PJj5X$
      zp+=*h@fg4034TK!f1-eYv57a>!dq<P9iFm5?63*s*d*prRJ+LU)o!Op$dIK^7{b^7
      r!n5~jL=<d?Xl)0S@U05orzG3KX+M|>z5V;C*k^&*-frxn^7`(7V9s00
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_AR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_AR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89d7016db3664677d3d9d1d4cfd46a2089c675d3
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`>QXga$-JY`v6n5lN|ZpcqhLGC6IhOlIn2QVfcC
      z!TVhlykFMxLEpSQxE5>S3vVuegFnILFA%?dGO3{p*YY9f?ERg+zx|z^os-}GzVa&(
      zZKJP~)Fx=-j91IgSqoO)^=->l`GVdKc+-ARu|mi9PO9q3(a9vW3+mH>wa{_%1*aNL
      zs;XZLY_+@Qm0cw$TUNGHv0PKlTY(k&fgq#M;I_P(ycq_LH#01#bIkXuq2+~BmRnPj
      zIs}Q$f|kz&er+Bhi}{i=f=E!tt5r%W*rz2)S|%u-8_MN!pqf_@;Dya2Lr`1pc0uxt
      zQm4ySy((zMiJNMu&iX-kY%waW{c+z5XW=C(krB5l^A+sN^zj}mRLx4aph&r#A0N-x
      z>(E|S(^kz5k2sYmLQt1o3j*cYb+cY6`L3i}anFAA#PLFRY{}Vef?}hSW=mGH5N@-s
      ze|>H<?u*aXp{-kox7_GMi4DDI1C(~3Xua=5X-?T8?kh)Z*YTY20n`~7oD$SN=9g8H
      z(D&@p_DC8Mlq~xd*uEt2$K9Hzs*>*F)>uKv_T7R~73bRbf$h8O--ENcnp$A{UgR%0
      zD$q&y!Kq&Rreu}<4t$v-8CpTzl2{39NO}kc_$BRz0d`4yAdjgf?E^H&Gx9JDFiLs^
      zXUxV_g$%7^szW$b9u6OcF|A6HCSh15P#w{nbxBj22~{4`23mfcWB7uP!>FoxNl(J?
      zZS?#U49{PXRAP~i&Be+Y>fvJ3Xa|Y~NSwvZP%hBU9B`;V3)AJnDFqISczhMB4saeI
      z1UN7QZMtk?P7)AN4Ph^!qtFpLssc_)PlFzEYT7v~r~{IkXV1cgu!hU>p3BfG>SpWt
      z4E0iXl3rXg`_U{U>B0@)c>|WTLefe}J(5;Q>Xo!wQlF%?lGaPgNs3EKN$Ql8<q{ue
      z=nmS5pGCp()FJ)jJYtpj4KVckF=Yh~`w^HJ(W9557=4nV%QT3lgtHE&b+GV1-ye){
      zdPap~i*w#HFnIGxPnr5r+UIcPzW<;b;zZhjtHkgaE<?lOlz^9n*G6anrCR(n{LU7?
      z3x2l6Uk)EL4ZD{IQtv&{zAD;#qkVNt-WvFQOX{p`@z=p$-{Nn8pKI~^!GP}pb_|*a
      zXb>lxaBxPSQ(G)6uhN~xc4LcKj2n5gm@u}P#iX&_EJ|aCS<EJkomi8`F7sy^ZU*1a
      z!4GoqC<l*m@LnCfUk4vR@WE^+2gi(Y6B!enG0GW-Im6_PqdMc5&M0D)#tEz)#uHdm
      z#!0Mc!vd4tWKzsD!%Pk{oo1#AGx?h7Da};XOf}7PMl;nl(=%W?7jF=ynJ5k5e75T<
      zy-<t+e+l@@z<;7)sB4dqS2S`ENIXJb)rbuw5h1T><Q$M>guJei^L)z)d4nsiF<EDX
      zyxGvenj_>bM%FRX%zB%V4UBX|$UBVmGm?sscNvk4q$A|LMdnO|yw6A%Bb^cQ0VB&z
      zwBX{8dQd*XdK@E3w4Jul4%j>CTiQi`(lA}ebDN;Oq8E?tCfYAX@YWup1L72(+JFv<
      z3sex7Xk2`UXZ8wBh~M$b{y~SuUwCA%(^y*@7%%B6{8xRsIfRtQj(=~8Z~BEk{#Qmq
      ngN>9-BY-}o&vf$V^hK0B6eXk47k^lid$c9DeKGe-9re{e(VFRZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_BO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_BO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fc3b4f1ea4ddb51d5f5e230e3be2184f478a78e
      GIT binary patch
      literal 2272
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`>QXga$-JY`xHO5lN{qr5I3QGC6IhOlIn2QVfcC
      z!TVhlykFMxLEpSQxE5>S3vVuegFnILFA%?dGO3{p*YY9f?ERg+zx|z^os-}GzVa&(
      zZKJP~)Fx=-j91IgSqoO)^=->l`GVdKc+-ARu|mi9PO9q3(TOCr3+mH>wa{_%1*aMw
      zQB}Vd*lM)qm0cw$TUNGHv0PKlTY(k&fgq#M;I_P(ycq_LH#01#bIkXuq2+~BmRnPj
      zIs}Q$f|kz&er+Bhi}{i=f=E!tt5r%W*rz2)S|%u-8_MN!pqf_@;Dya2Lr`1pc0uxt
      zQm4ySy((zMiJNMu&iX-kY%waW{c+z5XW=C(krB5l^A+sN^zj}mRLx4aph&r#A0N-x
      z>(E|S(^kz5C!I<ZA*jo)1%dMHx>>K3d{@$~5Z7NqQyedJ$Ce!4CMY&KG1`*Wtc2^V
      z>tCPSj0@wlb!h9>;Vn1%kYYnH`T(ijCt5E&QJPbBhzrXR+jTrAd;oO@2B!qIkNIVl
      zBs4y|v_F!D1SQLU1-35<{BgJDsj8&AxHnc1vVFIpRK>aWePH`8`}g2%uBH~)z8Com
      zjtX?reQ>JRzA0H{zXRXqNQPEWw<K1A8j>D@0e(rieGKf9_COv}OWFr$j)&x77+{q2
      z2+o*|sR|id$yA4Ms5~4#3S(N8Bprcal|VJAIqQ<9G!v>krVX_GILGh>ABRy@^OBx~
      z;oIo>DHxu=AgRP69h-}lGt|SyrqK=*3y?UAo1t8wojKr8e-@_8lT!*D6!G{fRvq9x
      zKnQSP2HJGl#GoV~q8h?pKu4h?bW{bLlAZ=V<kYltR!|2dHP4=f3t<hH<vo|7Rn*Pa
      z^BL-;?j*gqWcZ_5NYaHHzVikwX@#Vfl6oYqlGH0{wWK~tYbC9hl#>*fl#<jbDa$23
      z%+MXQ5x<Lq<EcaX*EwmG_z^Jl12Sa=4*L<97}2Abq8NRWq02Ogri8N&rggCJKOZ2B
      zaC%0CV~ca%Gcb7bNl%&jRodrp<-Y%*8{$OTfUCst8ZJY_;*@}wgx5xB0Hs>|H2lsM
      zzYBi0#a|8|GYz|!2U71n(Y`9$d!v1IOWqpzeM{=BZSmK^U*F<yfS+se`@w+k0d@?U
      z2WSu{n{aSOpHo{bE3eX>#dc$hS&SQbvzRcpnZ=~B-7HFDhgr-fjGb7M#xC<`8g2&P
      z&%qCJ@NNzs<KVqIc)t!lfZ&7KP7aP4<0djDIAb?w9Oev@Gmh$vV>+XVRT?L-b{J1!
      zO&KS#rVR^Bc9Tgl(+o2?%ygQWD$L|-rl&MhRWsEz(;3ZF*G$iV>0G=)lxCtdfb-d|
      ztMo!K2K*)9F9ZLHhM}%KLSE6xK_Kx6c~v7ekVJ&Mrjc_%k`eN{M$YpsBjgRPxW;6i
      z5%Ok318a_uw-{N+NHgngMm8|g5h3p|($7dLLf&OWGLnvv_ZFEm5%NAGU5s=_$Onup
      zH_?KNKk7mG2<vf-B++)-LOWpZq;F{#{Yk@g9nWoo_KIFSwwq|b7{Ob6hz^KTcxnSW
      zC@xSzT%vLD9iG`MG$DS+EBgl>7JuQ9y-s6oZD72ltMGsI<>nAl9y|WNDZc3!`uJZN
      p2@N(<GK~QGls?nRpVJpn@=%nFMqm74N$$~>-1f!XFLl&c{{VDS>A?U1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CL.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b26bbb4751fca7e7099b625657ffb7a8590986a
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7wDVJM|w!D6aVga$-JY`s9Zh@?drC<auROitS=lbJf16oVpO
      z@O~Es@0YcF&^Ip+uEkpT!kf$A;7@S*3&d}qOls)DwS34qdw*x|Z+~ZJ=j6A)ul!0x
      zTj=W~bqHEF?bY+M*1VN>ecN(XzNokT-jp9yt<dqkld5*IP)t&%paC6N4;?pObZX&Y
      zRrBkCt#;MDimL==E6R4NmTRgxE3iU85M&ga+?F?;H^ad3rbh*J7ksZ4T3$G5xpgI}
      zOOV(oXz6s|*XIzjkS{4Chy-Q4dbO;Ay;_o_C4%C)kz6hZsyPJ#Uf4P^1a;(Y7bMRp
      zb-H3TYJ!%XxT%KPj30!@7NXMHANRd*2412X8F8yRSH-?WAMdt8)v9z0ic~83@$r14
      z0qqqvW!2sAh*OOs1ohbUAW)v&FdNmf?@GEA_Z&h`94~YWi_UHn6e|=TZOdvE!fn<J
      z4dyoDzW8h&*}Qpl(~Ulq*wBkMKxyxZ_WK?z&ni2_edU<#I-V0gfI91kCk1sD{EA8v
      z`kr0f9!VpDk`=!S+m{6XxLfyBP10T58Y>9dzFSbL>RkIiuzi>PdvG>eSMzM&i~M;<
      z1v=?IIJIlvl&y;2g)eg~L(8aF5-ULsNe{sQzocC-z%FSw<T16Ry?|zUMjnO%MoEw0
      zjM<o~n4#rNHGxCr;Sl|cO{ub^!!WEesE%mPhNMZ&ges3|11&$!F?_+tVbs)|q$gqc
      zHhO*vhUd>qDziw(=3<o$^>MK&v;)NgB+lSwC>LmF7C6+Oh3WF(lmiDvJidz605}H_
      z0vwouHeEI`CkcqCg|O$*QRoOARRyP{r$G-nb?uxL)CEbcvuEK#Skq;B&t+%@^|JMR
      zhWe>DNiQy%{b&}Fbm4~Yya`KMCTY2(K1nMi^-EeQX+Y9yNrRGdlH!t5lDZ{jxx|MV
      zx`Wo?XHj%KHKBi;N31fx0fv4*Cau6>KLQhDdh}8hqfat)nTFAnaK^#34j2FD`-2fq
      zPph!7Fz0>ihi^XVDN{d6dmXMk@E>#|oJebNl^7nwC1_Zj67Z7nItUG*RGXiM-`(c-
      zz|Xe%OW|XtVfXVu>b)=8S44Y%w6AQ-TLph$QJvLo{u=m$ZT?#Lxi)_Y4EP>k$DnyV
      z4dY}34$kOv>WF3KRl2j(X>2k}aU*Y*62=y@lr*-QC24FkOWB069c$9qVg5{`t>F7P
      z_(2Zd$-xB<-lK!}>EQhcK9KF^;FvLPBI6)u?Bt9?oMCdtQJry2XOyr?;{?_&;|Z)O
      z<0RI!VS&kRF)3!6W+sQ3PBT-LnS9OklxC`Frn+W2qnR3-=@~Gci#LhVOq2$2KHGDZ
      zUMR(YzXbec;6KqQ)OAM4D;hZfBpxBJYQzSTh>+Jbat=r`LSEO%dA?<YyulS$nXEHH
      z-fU`M%@OhzBWoCGWxdVFT1L7e<Q+za7)eFQyNpOi(h>6B0&^xp-e;tTk?sijfRUvp
      zT5$14Jt!YxJ&uti+De;f8|>}$E$yH`X_T(xxlPa>(T~S=1ML%IcxxwUzc_`bHlPFI
      z0u{w28W-Q;nY}^>#qW4!|DZ$SFFdl>snF2@#!I>i|5aaZ4I$;R<KLU&8-AgW|CN!@
      nU^6At44_ZxGoAc7eGw&(M9FCM#UB>s9&O9*T*&=WM}74VTp;OW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8bdc90aeb7218c774e2dd907e96d0e9ca964e24
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7w@!%#}Wf?%ppga$-JY`s9Zh@?~)C<auRB&Y3^$xNNh6oVpO
      z@O~Es@0YcF&^Ip+uEkpT!kf$A;7@S*3&d}qOls)DwS34qdw*x|Z+~ZJ=j6A)ul!0x
      zTj=W~bqHEF?S}bTYu?H`Ud3`$zNokT?v&@(tibl%ld68QFp;EAL4!Il3~VP~wCllP
      zRrf-_qIQLD)lq`7RaLQTmSd_p%eMm07i1Kh+?G3?Hv`{xr$+^K7d*EfSZ*+BIiZr&
      zB}i-(v}D@%!a0O2<V(s3B0(89td*6&S4)!AD=3~D$>nmOno|(q2CXAQP)F`|LGp}J
      zr>j<@E@<hAn`)@fcz$qfAu6r?anB8A;3aC25w~h{HSE3mc()a(R;61|q*~37kLMc=
      zXs@a%D|CV*b}fn!)Kdw4U%8cr*{GF0N7Ajh=MZ{gyMa?!batDdSYhJPwyahm+-CLA
      zn%qX*7oW`|n>UYcy3vP{3iP54P}+B*{k{|BSyc&eUpZEBY}XDRK%Mo&lY%-6UR5Ot
      zea|j#kE9Vn$*Na_?MVWE+zDM(mvk4m#_|KU?-rD*+1I}JE1tvtJvf^U)jZqxB7fdi
      zzD~LiPW{?9Wvl9S;maJ$&{FD?#7a;@(nB!7FKHJHuuIwvc}y*7FQ8eTk%wV`QPLwg
      zV>YHLW@s5x9mJt>aftrKrc_zdVHj2!R7W&tL(-&XLY2p~ftDZV7{1`+FzRYf(vvW}
      z3VMDDhU?8sDziwt!o{i?>gQrpXa|b<NSwjVP|nxREO4kl3)A7jDf>2xxO^3>0dNi=
      z1lTZrZ8~gXP7)AN4`9!uqtFr9ss>I;PlFzELhYOt)CEbcvuEK#Skq;B&t+&i^|AGQ
      zh6boFNiQy%{b&}Fbm4~Yya`KMDruRdeo4zE4M<ucX;9KCNoyqKB*i7ABy~&5a)}Q!
      zbO)`&&!T9%>Y)B{9<j>&1{nJNn6!MG{Rm8q>CsD3j6TWGWg13Pf*BjrI$Zpp?+->e
      zJ*|Sm!kqW7AHMmdr%e4Q?X|h`;D6AKa3Zb6RbqGyd(p5sCEz9Dbr2drsWv|izq`%v
      zfuC*jm%ztN!ye#))O&xlFOT+tXkXEmw-Wx~qB^VE{MGQ+wE1h{=i2-sFyMQD9fRie
      zG>nrCI5?xvsUwz^SLx1Dr?JT_#f`jKN*G(rQqtIJmZY)GEM*hMcC1Nbhxs#&wu0~H
      z;0HN)CkGcec#jU=r-Sz+_&~OsgJZ_HiHr%(*vT1(IK$+OqdMc5&M0A(#tE!l#uHdm
      z#!0Mc!va&K#iW>Nnwe~7I?YTqX7V)CQ<|x+nL^EUMl&@u(=%W?7jF`!nJ5k5e75H*
      zy-<n)e+l@@z<;7qsOyZ7S2S_}NIXJb)kp<MB0^r%$T=X%2zgy2=lPZq@&;F2X|m1;
      zd9$g3HAl!>jI3s)mGw3wYZ>W^karjvVk8wI?=m78Nk_<g3(T1ad7qIUM!F;914fpZ
      zXu-uF^`Lx&^*Bb7Xe(`^ZLqh~x3q))q*1z#=Qcrm!~h=K4YW^;;jKML`^70dwLTpX
      z7pN#M(YW{y&+HYN5WnM<{eupPzwpRjr$R>u7%%B6{8xRsHH4JMj(=~8Z}^2i{#Qmq
      ngUysoGk`v&&vf$V^hK0B5+$S27k^lkd$cXLb0POj9re{eqwVQ%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_CR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d04fdc6af1e551cdd6159e15c27f284ffa37f219
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7wDVOmPTf?!Z6LIWZqwq77yMA9N1C<auRB&Y3^$xNNh6oVpO
      z@O~Es@0YcF&^Ip+uEkpT!kf$A;7@S*3&d}qOls)DwS4F~`}@w`-`;1>&gpM|U-^}Y
      zw$j&0>JYSk+70uw*1VN>yo%+hd{J))+$qnmS%K}jCsqAqVIoPLf(Er?7}!p}XxD=Y
      zRrf-_qIQRF)lq`7RaLQTmSd_p%eMm07i1Kh+Lk+=Hv`{xr$+>J7d*EfSZ*+BIiZr&
      zB}fblS~~4};T&8R;w5DSk)Vtl*2>D?r%RHwL{L08oXh1PHK$O38?=rLK^?i<1<5l?
      zovvDqx}e?@H?5&Q<N3j{1+TQmW1bt#03~XX5w~h{HSA0D@g6HstxUHdNwu0E8_PEu
      zsJ*JDtk4OL*tN(*P){ZFedSgfW}{a297(t0o(1&8b_1ud=<GH@vBE^5Evl6Ww^_Yz
      zO>PtJi@z<yTeggBz7eC63hG50P-)+Z_WK?x&#Fp*`^wRZW4m_n0P<`YniSMo@Tw|F
      zoAB8dw?`7bMzZSFV0)6FA9q4m)g|4<t+D)o?Yjk~YWB77{fg%>z6WQsp_*s=Uc}Ga
      z%GW{n0o1R3Q?{yJ7e3}_hI*+_5?6v8k{*HqeM!4vKwZ)vl*iJN_JNw^8F?566eT@^
      zGgf1%VuqHn)Hn{6i^E4@OsTS@2^dxxQb)9AL(-&HLYBw0ftDX<AHLw@FzRYf(vvW}
      z3VMDDhU?8sDsz!`g_Bh?)X&ML&<-T?5jcaJA)T+mEO=CZ7N*04Q}%5narr7%1LPb?
      z6kx;jwdt^lIZ2?1dH{PK9Yr01t!mJe^fcsAPN>0IL0u@Rb@nVE3Tr|x@3{;ur#`lx
      z&(Hw%CF#XQvmebuk}llv&6~8OUP;R&^-EeVX+Y8nNrRGBNm?T*Cn+u|C8=9dmQ#F~
      zp*v_jeilXBRpa`{dBiI78(`@7W76_%#u1qq)uWf97=4nV%QS?h1T!|Kb*T71-ye){
      zdRhgAg*orvFm&@tPnr5r+Glg-!T*pO=0IADtHkgaE<wZMlmJQsbr2drsWzMj?ry_9
      zz}Ysu6c{rNdw>U0@BPufJlY4MeMMW`O5njoc~-UI)xc}o@LJ$p8(s$md<WPu)VzU)
      zaIz5xXY@IB#Io`#-C621Hk+lmkvB^TW2;$88r#g0G`5?iY{J-qHEHZLf2NU^^Zo4n
      zAUp43=K?$L)z161^8q*?%yzSL%osBfafl;!al~PcFgfC=jyR?xN?4_F0&AD?1lE*s
      z5^LJ9pj2roDOQ?hC7YE_vr>(fJgxMUR;p{IP%E9$N)4^_43y5rn?h+8N`p9`?YT-X
      zlw#mt0{=4jpJ)Wtbw<o9nmGt29x<<KrUE7rF|TRn9GGOpysnw^e9MS=gEOu)xz31r
      zvsnYz95HV(vznP!)Z5IgWu_})-eG1PGpUGqml?@SI%3{iP|ifm`^@w((;YD%FtgM|
      z3oibs2jwHI$1##b+h{XwhrNTorJeLAjnH*Gw+Y%S2JqN!r2S$PZ|yi85U23e`gBlS
      zprW`$W8ynJvsdVl_#Ln8A9Ps!g-7-}6*@Ygcu8mBf7O>;Lr8h-`0q{ejla;x|CW)^
      nWHThwbf8b^GadXneGvr@N5N?H#UB>M9&L;5T!{Trdwul}f}iP-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_DO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_DO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab3b866e5b3e5d30da4b40bfef321ca44273101e
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`>QXga$-JY`s7Wh@@1QQVggtNlx1-lbJf1DF#Kn
      z;QcNN-Y;wUpl@CtT#L2vg*TVK!Jpvr7l_|JnbgpQYx&S~_V=B=zrD|%ozvg`zVa&(
      zZKJP~)Fx=-j2q_XtOYCYcxB5``GVdKxYM3rwF297PpaC<v56$L3+mI3VPHG?f?W%a
      zsG1l0Wwj@CD~=MBt*EkHwH#B;TfP-|z96H}(6-!}yczhmJ2Nb(bJTNdf#n8MmJ=#T
      z9fHJ=pye~Z7tX_FF<w$e5DCh-VYQ_EeYzw`%LK)9L%CcIQu7K0xIy#C5Y(2tU64GZ
      z)ai;<uL)Xl;-)p!W<5VRw&<1Cc-(V?S)fEUGU8TszKVUBJ|43I)y#AYl2j`B@$r1U
      zj@m0~+6tXu(ym4xg1X9~?<==lH|y1s=SaF0_v}YcY&UR5mz>=uC^k0nXiHQx5pJ`t
      ze|>H<?u);zLtD2FZ@Cepk}~Q=8&GNYiPrm0l;%`9z<uRN*|A+acmR0@2B!qIk9rlA
      zq|NwjOWPv}Un5!Zs<1st(2qNzt7?+&;?`Jx!1mpOQdRrf_kP)P7~g}lxlk>zeJ|n{
      zY~|~q`v7X!zA0H1uLB=*Btt8xTM}1-9FiV_0ewk(U_f2c7|LU5N&7&}@r*nS1B#L!
      z!5OQuR3SqvS?UlDm5W34FE*`8l8(TzN|2h=nsrH2S_xSm(*|08oPGF$kHe^`c}Y*g
      z@XF}<DHyJ|AgRPf+GS2w$xsg`n?^g3%tzoXZiaNe26Nz1{aKg}4^GLqk;LVzSap!|
      zAW?t~)7PfMCgvo8B5DEb1#}d31h%R|Q_|CrM>(MeX9abjq~_VPfGDg1xxD8xw2Hdf
      zdOkzF)SaXkm&|@N3rV_g!#8ixl2%AsDXB-&DoMSPR!i!Wv{ur3NjXVzNhwL4lCqrQ
      z!wlU)8}YL!*seOHf1Hz6iQfQ2zaLYUZ!?a_#E2ff6vgP13|*!{G$oj|F|C7z|M~u4
      zgwr!B7+sw6o`J!ePkPGKkJ3JyGxz<6+z<!S23#eE$8Z@M7N-PI5~z*P07|vsG;n7N
      z?gGxX;N`%WY1q9ykb3Wl_Epi|8||xG;?@B7Ey=UC1+N2M--0&)=UQ+-6!0Bj$58VC
      z4dP@I4$kOvYKvv%Rl2j-Zfr4&aU*XQ6UH{Pm^8MVMQQ9Xi`j&+6Km4gW&TXVP3QaB
      z`9XHx&Ca9jyjMH#*Uksvd@$R|&M{-$M8pI~?B<BW9AR?AQ5|tiM-;J2;{?_Y;|Z)O
      z<0RI!VL_?fR8p)o!%8+Qoo1yfD|uS!DXmn~N}*Odqm}Af=@}@Ui#LSQER+UuKHGJb
      zUMR-EzXbke@ITQos%wv!S2S}FOgv&<)l3;oB4S?C%sDX0h<RNz=lPZq^9E;JV{)Al
      z^Jb$4t~p}fVrCsP&8WAT*}zOk#Js~yKQpO_d6yZ<OgduTTU5?O%=^rAG1D0_A274r
      zL<=tds0ZaEtj95uMB8Z#?SQ?LzNKCCCk@keJhutjD|+$RZle8S1aIvjIv`HrsrBig
      zxIhJQiN?iucxJEAg!mn=>>qSk{DnvMI*qoqLGhB#!vCr-H;0h&*zw<+;+uY<kN+(r
      op~*%_rr|)J(q}sObNV6*9*Tm|=!-uri9Om9+rAk4rS|&jAIxy+b^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_EC.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_EC.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9bfefb3cd5ffc45e5c40099464a2975c1ad90c3
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7w@!%#}Wf?%ppga$-JY`s7zh@>D46ay+ulGAp|WTsALia`-C
      zc)yE+_sd#7=$n@Z*J3Sv;mzf5@F%$Z1>(0)CN*^7T0Z2Qy}z^fx4*NqbMo8YSAHd;
      zE%bGgIs~nocEkLvHE-n|uVOhWU)0+^cgpi?R$zPXNmV~NUPw}>pg|oN2DXzg+V$YD
      zs(YbdQM*F7>L@|ks;byE%Q4lQ<y(R03o?pLZp)p{n}Kh;)1!jA3!YmKEH{|6oKQ*X
      z5+pVXS~Bf>;T%F1@+D;ik)Vtl*2>D?qa{h|6%@~n<Z?Ms%_#_QgVvEDs3Ui~AbCcq
      z(^acc7qs-mO*PbKJU=+L5S7;cgy#k`@DjDih+DO}8ung&yxR&?tI{nfQmy7ECi0C2
      zv{%)X6*|EYyB0+V>ZydjuiQ$*Y}Cr0Bk5M$a|k`L-M}d<I=f9!Y`kE$Wwi?7Hmir$
      z<Tm2I_-r28ym@rfjXsoApcid`(!LYz_dQsiRh0num17mhcJ1H+)LB0~DX6pHRaKJE
      z_w3^KNE#88ta>%ro+R+cozPWvNq2E;EI(lTZb7M<eeHX{;yLW!gR|LC&9i+k^5<>k
      z>!kbO)USP0wyItizRa-<Eu}t5tOPYAJp=>%l6JuWyQJNa$JCPc0Gj0)c^C#5B|U;O
      zW@D;ihL$na0URn9hmXRTQe{bpVOV8Q9nqW(Nt2ohRUXp@T7H~k_=1nasH-_iPr~pj
      z==muat~W2K%p&ay7prEdpNmbQ9Vq4_aRxU-IbS=oz@h#uOos=j?As{f@>Q$`z&U^r
      zV8isa>9C18NkBwBfIW|nLPub$8aO3A4SL84wR2Wb7bLaLo`nlxO_$|8m!aj<$JX;1
      z8lb);y|`%hqghDOg&V%}CM;>Gq-B!&B`udUAZdl9K}oA5t&x<I6ql5e)GaB?B|gm1
      z9kdQVi=yqS1Nz5##47U}VCeT_((-NgBQP<hM=wP&`Xob_X&6ljW^7FBaPfb>KN#Wk
      zv<eCfbKbvx_~w(IGWDah$L7j||3NpxiL@41iQzHqMZ@BhfR}{VL1+M_+Wa*9?l!*%
      zezwhD0v|ICdw>U0@BPufJlY4MeMMW|O8A3|>a1$>SHoY^=C6gHYx9S|fbRiz44T)|
      zFitk$;EX<}j#yS+r8`TV#wN2AH}YmFVQeu=Nn@*7lEyZ(lua1hu_lcj=Fc?R3cjC%
      zALQVj99-bwaUHx@2k%4h{%kh~$BYRR83#FICubbu43jgC>WpJLql8r&C$M%IPhd?M
      zC$Xjt3rv+3lVYZ6X0n;-G&9wh$<s_vX{Nen3N_Oi&D79L&w%M%yh)U1qBMZ>*`BNP
      zLMaCPCEzau|A|JSt}{Yj(a3%v@d$ZUBNZTt2zgB-=YS+5<aLdl=UYa|8(eXv$vPwC
      z&87y{93gKpvYL@r*4vD%Wuz-Y-eF{jkyM1d%ZOwo9U<>6FlQp<eMWj1>5h;O7+GSX
      z1s8wRgYps9;}}Vzt+a`@!QM{a(hmBQM(H}9+XRh^0X()FXs;N<TYG@^iBouLecCTB
      zP*Gf>3Gp4C*(-EV{Ek=l4>~0N!XtZ~3LPC_yriq}U-jkI5K<mH{=F%_;TQV&Ul|Dv
      nHd8Xq0Q!_Z)5)LH7g6#^l#E7S{9#e<(YD;qh1@T7)K~ui%2w%1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_ES.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_ES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6949ff6b02420b4945cabfec04287d4564f1991
      GIT binary patch
      literal 2269
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`<y3p#c#QTQ5)wA}P0lVnBt-<g}eKnW>YRVo<~j
      z-tVH|{j!!1`sU@qwO9*Zcysw1{0T09f%xr{NsV2&mJc~+?{Dw@?R|E3c7FZq>MumJ
      zg}zEthoE&+UR0d1=B%RY+m@?}C4KGlCjFphg^ur?QuR|~W|}$$4QR(GblhUesfR~Y
      z-H!rW?TWmrs|4k%%64j&YpPi*utGl&WR#lRmN!*2!@%*Th6Qzx`d&S>yl}#DBPFRz
      zkk}|_@l@bPvv8S@my{Dkf^uF|tEga)E=kfNLCL~Up-=$TtU>`^*fJS{ItsT7l4q4V
      zQ?(j(K}$~Fw1)b$AB4x}y|P*#_q}i$TB;TcNvk$n!@WqGcUz%qWx54Ps@3B7c(Kty
      z?Nv2tMQ(W1sl^_Gdh93&lxH{0My=wzl5Q20I23}-aJ<kRU0}Tp)-m%?TU;v@-m_xu
      z>cU367@y5U!<*VQ)M2AqGy%-LC);0purj0U5U-UZw(EFK_yBUOADj@>IqFwcn$Y$9
      z!sbW<WxDFuAp4RwqX};0sk)@QxG`1`vV6CoOwGCeU10kz>-WGm6RA0t??wEaqXHdt
      zAC&s_uPav7@4{C(lA|TmD~T&X4oMF|0KcSN5Wp^JH_BsbNqYdz@Ps@J0gRF!fsNUi
      zs+6OpOmzT8<-v&FB_>rx(h&$&1yn~hXG7A2W<r)nwSab?U>|<qV-V_UR?-s?d>j2f
      z4Z-v0BvrUb$L3_!9QARsNwfpW0t8OuWk?rjWd=B^KL^p}v8e<Ol6d?Ss{wEpAPR6G
      z23mAk#FV5^L_LH&hmN9-&`~vTN_q<PC@0d&IYC`0sbzZxDhg|=T;8)eT1LGrJ(r_?
      z>P^!N3no9Fg*09K*LU88B`uM(R8pU$Ws>?OEtfPPX{Dsqk_wWNk}{IICFMEA2RXWf
      z*5OA{ay)fF|1^(U72W`b-X0TH;IJNpsS!PT8A{N{Il4lFXi7NkU|I)D|8x6bgtJpB
      z9G#!@zV(AQpY)8WSJEDbGY|X+-4F-T8ayR|Rk#QZOHvA28d?XT0hDRev(UTS^d9K>
      zHhnR4%rxYF9!P!n#rLxK?vL-~ZE-804=l*DvQ1wFeRZ3@26~}QUke6&50De6c|8rn
      zvH^y(+D;vbyu3ztmOG72W;tmT&2q}vVwTg!R<kUPZDu*2GPdJP8#~OOXt?EkKRZ9j
      z&O6z8l%2=4^Iq+|56=7Z-Rzt&#!W;V<cOUdahM}ajyR?xj_ZgrPHCLP*=0PAGh>{>
      znKdjh*)1l;OjFF{Fw+@ksxgzVnV!^4b<GrMrn8!<p_!fr)A?kRD9c1y02lH-*Xa3j
      z0{Dx-UjqIk4Wqiw7<pME`++25<Q0wBKvFUCsz%NONyo@*8o9u)jFHzl;|i1OjFC5*
      zHE_)_@+Kpz7->bl#mE{)x?<#QM%FTtiII00k&I+x<lTAZT#UTONDm|3G4ehmi%qoP
      z(hqu2KE!zfBT2NCHqkc7+vywHL4VLN-N3p{(U|DRvfV&?#Rzuo0oo@{W7P(<UtFY;
      zxJ={XTddiubWr?;E&Dqi7Jp*N-k{Nr4lrKUS@@6oN^1zIh#UXil-%$$ee_QmDGfG5
      la!m*Ngg({5pV8-W@K79#Mqm1VLF}=%*v|RbFSOT}e*=&o>Dd4P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_GT.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_GT.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d973bd512921958319b58cbee0847710aa91de85
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`<y3p#c#QTQ5*(MbcuKQVggtnVhy$CNp(1DF#Kn
      z;QcNN-Y;wUpl@CtT#L2vg*TVK!Jpvr7l_|JnbgpQYx&S~_V=B=zrD|%ozvg`zVa&(
      z?Vzud)Fx=tj91IgSqoO)^=->l`GVdKdeeSTu|mi9PO9q3(a9vW3+mI3wa{_%1*aMw
      zQB}Vd*lJ(RE4xZiwybQYV!5W8w*o8l13^Zip>26Hc{2<gZ)Q+X=dkZpL(2=NEVrg4
      zbqEpzf|kz&er+Bui}8{&f=E!tt5r%W7||t3S|%u-8_4BykeXL0zzds4hM>0G?SkYP
      zrB0WvdR5Sh6F04)I_n4Fu|==6#$&!0&H^PWkrB5l^A+sN^znWxRLxAcAW6BL9~;Zp
      z>!`h~rmdPAPCAvyLr|Ap3j*cYb+cY6`L3i}anA|##PLFRc*)sqf?}hS6D?8AM7Yhm
      zjq7t;abNsxAK1QqaNCU-mDs2kZ9t{nCtB}&xHPBi5cicsw(EFK_yF>3?w=CWKJ1rO
      zlD6WrEp3k^e2rw;ufX;tK|k)+JXMu+7q`X=LbmS~l&Uz_z7K5QWqc3L=4xtz?Rycw
      z;HW?c-3L&;_D#tu`yKe0Lm65@-IBNx<dF0b4CqVR2LtMo_M<$OmNWutj%Vay7*Le-
      z2+mlIr3x8Z$x`DuR2~i=g)yy4l8(TzN|2h=nsrH2S_xSm(*|08oPGF$kHe^{c}Y*g
      z@NM+`6b#Q_kW}I#9h;MtGt|S$rqK>03lKPqn;~7G!5ny0e-@_8gHs9|B=PtvRvqL#
      zNEG0}47BO8i8)E2h-wIX0Ubphp`$9$l=L*@QBF;Rvw}KMQuFLtKor)1T;6jTT1DM#
      zJ)fao>Q2&&OJ+Zsg(O|L;hQ&TNh>6+l++_>m84!tt0nbGS}SS2q@1L<q?DviNm)+u
      zVTSIYP54<998ZnwALpc1;y1w1@5huCIE*7QF{DQ?MKSs$Lzk%^O$lcmOlyDPf4)B$
      z;q;6OhZpC(XLJ9}Cp~5AM`^_2%zghMH^70k0auCPF<gd*#VG-l1ZpERfKn|u4cys+
      zyMVJTcsVd;8g?%aq~3d?eO0vgM*HfPxHZ6iOY*F3!Rvt6x8M!HxfZ+;3iuANW2kvE
      z_2Xm<4$kOvYKvv%Rl2j-ZfrA)aU*XQ6UGj+m^5~pMQQ9Zi`j&+8*9?oWByEoP3QaB
      z`9XHx%g)2>d_X&oYUhJ+K9ucb=a?~OBH}Pd?B$3FjxagmsE#<MBZ^q1aRO_H@dVbC
      zaT06Vu%Ki&l@u$@u#&?{r&+1OO1@TlN-I^hQcWwJ(Mol#^bC~F#T!Ct7D|ISpY6Iz
      zFBD_oUjqL!_@8JH)wM^=E1Ee3CLS@bYQ_eWh?v(ja}G>0VqVwGdA?=DyulgQm|SPX
      zyxFLMYmS(=m|4e6GwN+-HZao>G4C+5k(pG)yvvMaCLJ;FEh=Xs=6z<mnCXm|513hQ
      zq6HU!)PwR7*5epSqMfvjcER3F-_joXlLqNJp4$W+5WRS8x6r5<!dp8|2gNBowE-Ox
      z7pNdE(U|xS&+HXCEPlr;`v*;kzwpRjr{T6XC|=T8_+Rzq<`7aIJN|o9e9JHN@xNsx
      oG}#ErG#uzt`b-CZPG3a915q#<ees7Su}52C+ZSWM)Lvix1K%|1!~g&Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_HN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_HN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22a9587b1fc30c87286cb8d790b172c528144a00
      GIT binary patch
      literal 2272
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`<y3p#c#QTQ5+qk``g07*Js{Ic=v*X6j_77`)&G
      z?{`t~ep$;0ee?3*TC9aHyt(`h{sfo5K>YT}q=qhB%ZHw`_jmUG_IJ+g?Ed!mm0yWy
      z3w@oY4ngatyr?*1%~?g)w=Gu{OL{xtP5MF23LW1&rRt~lkEf|q(0~q%LdPwZoO*af
      z)%_^2)vm~^x=K*Ks%)obxu%-60xR?bK}M;`ZFy5gGYlMWYFJSBsPEN7%L^wgH&T+i
      z1c@O*i>CrVnnlQbzNDNW5|s0zT15qWwIoT41SJbYg+c*TvkC&duytez>L}bUNS;;d
      zOx0@C1uZ#wQw{ZLKM0S{M`g7?=6m5Zyi_eVl2&cDhJBGf-fe}dRp}NKsaA_)W5q@T
      z+N)~Pirnz1Q;Q=6_1IAmD9>(~jatQbCEW^fC0x{SywDw8aCn=b#QyP8TUx6UuCr?G
      z>cU1`7=N3GHg6u@bfXU`HU#4xAhq{o`-KlxW|SS`!g9oR9nT3LK%Mo26M{NN{i;gS
      zMtrx0?;{B+(^bC)+m{6Xq#JpvF6l0Q8!HIezFSbH=3M(euzi>PdvG=rsX4aqMgE+l
      z0-bapocgtIDpu9+!q*(h(Gu#F#7a;@(nB!7FKHJHuuIwvc}y*7FQ6H2lKn8iDCuFG
      zF&k5ra<r7G#&M`T96kbLQdJ}!fnilZbyRaUBu!{0RC!bzc=8h*!xwxEMqSNHdIE-T
      z<IPXQ@ccPR6&C5(T&$X-J}x$i=RmOliPN|l$_3h)0S@)&V7lBnmB2v}kFR1i0L}u0
      z00(BEO_xnHN(v(CA?!K4D0GC5s)19|Q=o^ONIT~QbwN_=>>0Qa)^u6kb2(Z@y=*<7
      zqkig5(~Aq5KkkJzUAW<!H(^OjBrTQHCuy0aeo4zE4M<ukX|<$+q@<*bq;5%hF7aWG
      z?x1z}U6dS8jq6|MQLDm3z|aF^!U`PrV=y(MTQ5Ti`Xon}X%LSRPCMw<!P5U6KxpCY
      zlnO`Z`@C=c;LSTdW9q52*Wt<o|3NpziL?e+Nnjc-!h<C#1uqS+gYW>9Y4fx2yW9L8
      z`1v+}F?{qi?0#-Yz4yiYvUu;0_vLMQE8q_-sI#)oUj=`4o4*Erq0L_l27CwD320tV
      zgE-lMgR}aaIudz#mF_He8k@{=(kPncl(EGur;V*<SsL5Saz15j$C@^Fm_O5SEBJm6
      zevpHAa_}ez@6o~gbnpQLAIx`iaKacfk#UGKc5=pH&M-OSn9ew^Gs;+{aT05n@i^9u
      zaSChJu)t)um=rTjF_XhgXPBwROulA%QZv;xQ>2;BYNm!}dKyg6CYwZACdvXhpYOR!
      zFO(C&UjqIz@SkWH>N;cO6^$GOl8lj8HDUuv#mH+Kc@{`IMqby*dA?<gyulS$n5;8K
      z-fU`M%`x&8BdZu`WxdVF8b-Qe<Q+!VGLngrcNvk4WMkyLdFEV<yw6AvBi%9b0V9h|
      zJi)~ub)$TQ^#odyXe(`^ZLqh~x3q))q+z;_ahsw&q94O{1ML$dn6=|{K%B;?4d|e_
      zKqYaB#>96RvsdVl_#IRB4>~OV!jQdAqa7V!yriq}|LV)FCZr;E{QIWlhF|F8e`TaJ
      n*i6Ya1L#xwOecR%U&P5naWWqI;tvaQkG17?&gXuqqrUnF?C9y$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_MX.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_MX.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14b1c58ae7f3f110edd10fda317ebd2b5ad4a9bc
      GIT binary patch
      literal 2271
      zcwUWFTXz#x6yB$4lG7w@!%#}Wf?%ppga$-JY`s9ah$J8k6ap$tCa3L`$xNM0ia`-n
      zyx&E^`(-U3^v%nIYq1u-@aFP2_!C_I0`c1?lN!2kEgyQ${=T#KxA)nzbNbugSAQj<
      zP4sn=Is~nm^6L2+YtG8MzHPZGU(nlLZ_*E{R_OTNNmV;pJeH(RL4(?{9y)Hm;MBrH
      zs^-@NTkWWO6;}z$R+Q~jE!R}DR$zsGAjl{*wJmQdZ-#;6O^pib9{0UkXnEm;<<^y?
      zE<s{M(4wipug}6|K3-Br5DCh7^=erKyLCyDdIiOEBe`4-QnLyLcwy_v5Y&;oQ;<BP
      z)ai=Vs0mtp;+8ekru`s1I`5U%xafP~G*F@%8F8yRTgBe1k9S(3YGt|&Nh+0mv6yc(
      zP<us9T6H%(>{KHUK|OXo2$W|x%tp2ByOM6lJ%`W}#|z!@1!s2%iWQGN-WJtLgxjnf
      zT9sRm`{Hlo$i|JM8*av^#74bn11jx1(SF|p<r!s%xUU?uUB`36hmdFO@PwewalfLH
      zv>u;rVS6OuYa}av6}B%4`f<1JshXsFxHVP~vVE_hRMoluePH`8<NI(nQ&)3r-;ek?
      zM+G|Q0f5@|Z^~B1@509%%g|!#lf;!EhonbfKwr`h7*LnA6XmhAq}`xqct#$D0YyoV
      z;f&Q-s*s^2EVUnp%EKZ07n@XNNrzxqWk?;?nhi-4S_xT>X#*`k&OUs>Ct%dntfZ%4
      z_%?ce3Wn#;Nh))Zj?Kv`8S3X`lV}H$1qhtR&5$n8U<N#@KMT|4!6^q0l6ZU-s{wKr
      zBnog~2HJGl#GE8hL@k6phmN9-&{0)rN_qzJD5tK$SwUSWsde@oAPQ?jF7NpaEu}uT
      zE@Wtc`jYhGg4vH|AxRf+`sPhq(qc(VB=t*LDrrE{GD(AyR!CYUDJLl|DJ7{}QkGME
      zn4!C94Sp5{$5Z?DkMpoq<~P95@5h7{IE*7QF{Vc^MKSs$Lsw`RO$nzROzUvrf4)B$
      z;q;UW$LHs~f9>$CCp~5AM`^dinFs$vZiEAAHLeoFW7vy^#VG-l1nM9(fKqKZ4cy&^
      zdw{cTco8sW8ukDWq~80ZeQC50MEkO~xaGiu3-YXJ!z+PTwc*vkxi&lm1$+nCG1R=4
      zhH<hE2WRv-b;Ppr8r@y$G&Y!}xREzY31gF4N*bHZk~FrMrEJ33iZy9$Gk>Phmh*$`
      z{4hIjXXkNt-ld)QXy?6f-k0rW=a^A65pjScwsXWmjxagmh>kd_BT87MaRO_X@g&xi
      zaT06Vu%KkOloTsXv690|r&+1WO1@TlS}WDGQe7*Z(Mk=i^emLl#hXHD7D|ISpY6Fu
      zFO*{7UjqL!_@8JL)pbV9E1KB{CLS@bYQ_eWh?v(ja}G>0VqVwGdA?=Dyulfln_Oqa
      zyxFXQYmS(=m|4k8E9z}#Rx{HTG4C)l#7rt;-epEIla848=9M!M^FA{@%ydW02h1!o
      z(Sl1q>OuJk>v4=E(Pr8}TVQXcZ)qF-NuzWF&uxNsi2*#e>u8S{!&|$b_KH(@Y6IFQ
      zE>b~UrlR-`&+Jt?Ab!Uy`v)Bqf8mk6LE{}AP`s?O@W1LSts$g5cKr9I__|-{<A2LY
      oXtEiSX*$rS^qCI+oW6*HN1|Xf`qB>zVvn@NcFxCsslC4X2YZ0&z5oCK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_NI.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_NI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18e8b732dcf5e6074b119f2df1e088f244e35b22
      GIT binary patch
      literal 2272
      zcwUWFTXz#x6yB$4lG7w@!%#}Wg2hy!2n~pc*m{9*v68mJlwv@INpjjwnatG5q!<+O
      zg7>>9c)zUWgT8rra4put7v5a{27iLfUm$+_WKu&HuH{3|+50<tfBQRoc20l$`^v9G
      zw4J_=Q=6cTvu-UrZ!KC`$17Qm%I5Vp=FWJ2#R_cCJ*lcEC&uE`E~sAz)&kqf=Iv^5
      zL{+_-Us8K(ZrM?S(q&b$E0$xb1<SVr&lhCm8{C#Vn>7R9c4tQfb>=*`8dz>HZ8<e1
      zsY8$$7PMm4_i76WS<07`5=4ShZmm*O{sApXQn#RJW;m0{fNDWOfEzTA3_)#~+Xcxp
      zN}VoS^{SwiCvK{tI_LSpv8AY__QyRpn1dIqghte=EL5;}>*IY^pqiC#L6LGfJ3gMR
      z*P*?vW~`bMOxcw%LQq$!=KIPm)y;aP=sA*Zg}A{Snqs?wlUsIpo1n<V*knsuvl6be
      zesCbO1sBHOw&88tMz-GQLrMvP(FaKFInjFI$>O{!1-P&rEjhMp2M?gmrlDy;?K!Wk
      z;<N?dZFzqr;d8{xUIn%%3H(u~=BlcsySO)&AFzG5phU&K_Pt;79QN<Q*?dhcvVAY|
      z7j5P1r2F7huYFUr%3cS)=4gsmQja87f*O(@f&qR>dtrcG(mu#zYDotG&GV2v3<Hdk
      z9>E#2F;zZAtC(s6hswp_qcCPvQPL3@RuNQFnzJrxS~H=_W7<H=k8=!P@NpPbwIJz9
      z7+wiIKLx|}79|x~q+Q}-<rMXDu^F@j#e5{r;bti3YiAxf)Srdv@Z=PI8%12cid6@=
      z01yIfn7%e0HZdqMh^Pjz7tvAZ2y9gWr=+Jr4>>jMoE6joNzJoo;X+u$WqHq~Xf^e)
      z^?Zu@s3%S@E*t)E7UFc_hHu`0C9RaSN>Z<+)sp%ot&!9(X`Q42Nf}8|NeM}vlG0q_
      z!xY^?8}Yly+pe0>zs@PE$d7=bACPIwx7iQD*r*=81V!kR6kVnvG$oj`F|9-S|M>u6
      zgp;!>$Suuz@1~)fPkO@CuhIdVEBF5g-7qK823#eA*RUH6i&6|;99|ot0hDO*lkhuR
      z{4V(E7JmhN%rxvi9!S0ShWqMp?+f=eEqQC<_b;onuEk#uf1t(R06){>4}t;T0d@qM
      zH_;GIHsj!oKBu-wT3)3)3+={Mvk*11W+7&5Hw$rNhgp!uPP34X8N0B?jos$YG|~*d
      zpMxLd;5{6i<KX=|_@E9RL-3(=CkIE2aT6JnoUw;94s(Xd8Ao--F`ZGsDvc9ZJB%l=
      zCXAC<lZFMRQj<wB(=0RD%ygQWD$L|*rl&MhRWsEz(;3ZF*G$iV>0Goylw_hLfb;3D
      ztMo!40{kW5F9ZLHMxd@eL|)OzAt2EZc~v7NAh8g6O(W-k#6#qDjhyFOhR7RSajnTZ
      zL*&hd2G$%RZ!xl-k!IH0jBH?}BShX|WRQ_Wh`h^)WF#3P?=3N>Lgal$x)|vUkq;PI
      zVWI^Wf7FBW5!T}vNunLJm3G43Mc>kH`jbZJI-c7Y?H7G`Y&X+EF^ac#g2u!tJheU@
      z5*H{hF44I74$tfrniRj|mHmSbi@)&5UZ-4J8yGL?D*V6ta&rhNiyi;IDZ2R=`uJZN
      pF%33SQjGxmls?nRpVJp%@^F}pMqm74S?<x6-1ep1FLl&c{{W6|>B#^9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07e1832f4c6e1c4e258bd5ba6b559d23484c9a0d
      GIT binary patch
      literal 2272
      zcwUWFS#uOs6h1eTnYo#ngrNx`U_fwC2to!#L`+;lSVSgl4Z#5wdU|e>4n5tmr#m>f
      z;DY-u3hqml5BlcvU=>yP!kgu9@F!UQ0`WU{dg746Dj#z1Ip00!JKsHh=H|D*ul!0x
      zTj=XFbqHEF<weCAYtAaVzHPaxSkl`*Z_*EHR_OTNDOEppXf#cof(CS86gqCP<kZ6>
      zs_sXDt#(FU)m4J>Rb@Lh%Qe-k6<DDk2r^1dZp)i0nqlC0Q^SI~$9%6IT3$F|xsj68
      zB}fbjT09l_(JVsd^Cjg3k)WIx)ha63qa{gNBq&)JDijK!npF_sg{>n)P)Ff*LGr9p
      zXR21CE@;Wgn`)>}`$2eoJ}RsIao-E4;iYP^k+f>FHSCM@@h&S=txC6`NVQrVA1^i<
      z&|X!OR^*09omw0rsK<_iKzVk<Y}6{gE9q8<+gU_Y94~ao798FtC~;_XXIomU60Wmq
      z?drltTo`|whc<5>-gKi6DK-S750Kh>vi-sbD>KRtabY=PyN>6C51`Ka!3jZ~V}4bo
      zX(PVd!v09Y=SWxm8f;$@_>*qrsk)@QxHnc1vVFIpOwGCWePH`8`}g2%CQ@^3-;4Y?
      zM+G|RJ~;Jj-&Cxs--WL^lA|TmD~Xk$hNOpJfL{`Bp8&h0U69ArlJ)?a;URe#1{fth
      zf-`1gs#1=YGSvYbDi4Q;U`(otq$4n_3aE~1&W5B3&4enCY6C4l!7+Tn$6(aetfVJk
      z_%?ce8iwc3Nvg0&$L3<y9QARrNwfpS0whl3W+)eEX9hUbpM&Z0<WvF&MLfQW)c`mP
      z5CR;Sfi_(>F(@gBsE4rU&{60J9aRITq^Cd+IgxhG3F?BR*4Z;~A*|`LyytSXjC$F6
      zK1co3o2C~R41YWeX}WO3H*dm{mPlGEsZY`}N&S+ROB#^0QqpQk1xZOs8A;ue@?7G>
      z9Nj_d@Vh8Eo;sj^oky(-KLUn+KqjofVLt{_BYN~Ql%P*?beRUxlyKU?v<{a3=L3Wh
      z&Q7UtY<|xB)(_r%(le%hmG(GXdEh_jhB%Sd;3^5chKta!B&Fb`;dKxiK$$i_3%|R~
      z?}49h^B2R%OvCQyfz*3nyf2IQ{&-*BmbU`_z=Ap}+x%7VSGW0V;1}BbwP3(^fSrKm
      z^)!f+4LCTfDkmsjb|a;LG$EGLbkSxy;S%yQb;YL=z3%`E3r#&)b}V~6=O4Yz{t
      z=imo9c$9<3IC!@X-m8Q6A$Whjn}ZX^xQUE|oH5E7hdIOKjAJ_ExXvhJmBvY|UB=^B
      zGsY>bS;GR8-C|PAG{sB~Go4|k8Z-Ht=}FC0*G!RSI;)u)n(1jUJ)3M2Wtk`o;C#O4
      zD!oun0DlSi%fNr4VW{hjkykXbA4oDrUe$;VBo!mCY2;ZT=@@xkBj@>+G4cjiTw$`#
      z7<sd)fi=g-Ta2t?q?PqHBWoDxijj91S<6T!M&4yaGLnsv_vV>%G4ehmJ&bh6$Onup
      zHqnBMKk7mG2<r)qB+*vdMB89*r*CNo{Yk@g9nWowc8h*Iwi{@#7{Ob6fcA;gcxnUM
      zFD_6?T%vLD9iG`MbWr?`SN0D&EdIhHd!5EQI>2~ISK<HFms>+fMeO+ZP00<v(8vGE
      pNNKQ{l4}Ogr}UXl{+zyulZWDDH2UHX3v!RO<#x{JeyO9r`UmPu>8=0(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c979a5bb197fb119cd5b5c06083e740814fd7b4
      GIT binary patch
      literal 2272
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`<y3p#c#QTQ5)wA}P0lVnBt-<g}eKnW>YRV(@|&
      zyx&E^`(-U3^v%nIYq1u-@aFP2_!C_I0`c1?lN!2kEgyQ$-rw2#+uzx<bNbugSAHd;
      zE%bGoIs~no@}lC5HD?uF-?m&;Ea`2ZH|Ym8D|CGCl&YUPG?u1LK?6E43LUpta_Zp`
      zRrjO7R=Xmv>MB9`s<NG$<(g{N3aro%1R13!x8+S0%`kAhsbN9gqrO)UEias~+(=34
      z5+sHMEuISeXci&!`I2&iNKnp;Y84gi(UK%B5|k_q6$%AV%_<1+!q$-?sH1SZAbD1)
      zGgYfm7qsN$O*Pb~{UAI(AC=YqxbKD2@KUwdNLsbo8umr{c()a*R;61|q*^VGj~5#a
      zXs@bCD{{l5PA!fQ)MH0Mpgg-_Hfj~$m2@k_nME|k@j`cW!QpL!5{JePw57Ew;X13<
      zt}blEh4Hs}X!GXbO*i_GVnZ<c0I9tv+b?{uGNbGe7nUQo>v&H10P3tCoDkGG>Q_~o
      zHsZT2?2jaTj&#+p!S*GAKj}uEs!O_ydt(J5+jk4f)SPSI2e$9Be-F-PA~nbMy~v+)
      zRG^dYgHyluO~tDEUHF<KIa)%!l2{39NO}kc_$BRv0d`5dA&;pg?Ey5yL-H^TFiLs^
      zXUxV_r5r6~Dzq)3JRBZ^F{vt&j=-=gpgO8K8<Hk86RJF_4Yd3O$M6LogHczrlAeI!
      z+vxde7@j{Tslp;1n~PO*)W^jp(GC;~kT{K-p<JMy8Q@TV4yMbKQwbat@%SoM1K=z`
      z2ykEq+H~2(prjz89>ShON1-EhR1KVxo&r7OMA|tgs0)%>XV1Weu%^rMp3BiP>SgQs
      z9Q9LgnqFKm{P8TL>B0@)ya`KMB5A3lK1s_Y^-EeVX+Y9SNvkClBqb$fBy~&5bBPag
      zbO)`&@1o>*>VW=r9<?g`2pIYSnXm$f{TNJ*=+Vnif<DR7Wg0|N!f6N7I#~Lj4-iH;
      zJEg+W`8n@fKX~&=&zSmE+T(ELf&ZWz;zU}5t0eFmE<(eSl!BLr*Fk6iW!n5K{O&ft
      z2Y$ZIUko2J4ZEKQQty57zAWDR<9&Hs-U|2w3+k+F^H;%N-R7@>Uug5!f&t$Fb^@B$
      z(;!YZ;NYx2r;bEkUZp$BoyI1!oHUANIc01y%V}e)S(e5&vz$*E+p(sN9p=w8+zP&*
      zgCFGJog6&M!DBjjuMXaa;Qje-4o(>3CNd6k#!k*S%o!$U9Mc)cbw(MhG)`jeG9Jg8
      zF-~F48Wx!B7L#J8DQ0q*=?pW~n90{nPim&RW{Nb^S<TeYOizR9*<_O_%S2fK=kq;R
      z>4kCv_)EZF2L2NbLtST#yrPl)K$0=?szz)esTg@pBhLa!$H?m%InTF@kvF*F3X^rl
      z$eT?KtT{&BVq_H~t*o~hS;I(IjJ(6hT1GN4@-8Eik!*~-H_x1lk@p$tVWc}oK44_A
      zi56V^Q4h*TSWjRiiMG-v+6H?&eM>v&Pa3A{cy3cPCi?N%ZlJwl1aIvD+9yuqsSRkq
      zxIiUwiN?iucxJEALGe3Y*+1y8_zREhbsFvH0OKWHh5uJyZVe$7vE$!2B{%#+AO9;O
      orNL%Ot{Fg|(q}sPbNV7q9*UFE=!-ur$UWAU+c}^6rH=aQA0D#l+W-In
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fd5d7e2b693b885d5c7bf0bc162cddf662d1e7a
      GIT binary patch
      literal 2271
      zcwUWFS#uOs6h1eTnYo#ngrNx`U_fx95QGefh?uxQSVSgl4Z#5wdU|e>4n5tmr#m>f
      z;DY-u3hqml5BlcvU=>yP!kgu9@F!UQ0`WU{dg746Dj#z1`M!J3cg{V1=H|D*ul!0x
      zo9XK`bqHEJ<weCAYtAaVzHPaxSkl`*Z_*EHR_OTNDOEpp=t!D61r2D&D0JLn$*G4&
      zRNapPTkVXzs;dO$tIBq2mTRh6E3iU85M-2^+Lkv}G{eC0rbYyHkNI9bw7hV_aw8?F
      zOOO~Aw0J7;qglAj$4klyB0)JXs#R35N0%gNk)UK@xKJoSYF42DFKitdf;tMf3zBD*
      zI#ab8bwNu`-n54Lv>$}W=e@ETkNaLY4V0?IM$)Ry*03+q$GfahwKCm;B-Lthe7x9b
      zp!TYov?4b=>eONnK|OX91j@4;W}{Z|T}ij%o`dL#<Av_ng0tHMC61Z9+M-&CaGO<w
      zs|y=&U;J$v-n40C<Bb@V*r*q6K&8DW+wXg@GNbGe_m!iz>v&H10P?IGnh?}E=2umk
      zHsG@@Y>y;-jdazo!S*FVKj}uEs!O_yTVn+w+jk4f)SPSI2e$7rz6WPBk(y)sUc}Ei
      zD$qgq0o1R3Q?aUk7e3}_j+RibB(4NGBs~NJ`jU3SfVw2Kp_8R0?Ey8zGx9JDC`x(+
      zXRO9jr5r6~sRKAv9u5z|m{b)>M_^bLNFCLh4M`JP30WT123mfCefWZp!KkZQNl(D=
      zZS?#!49}mFRN*2Wo0C;@)W^vt(GDaF5IBvSAzh%s40u$34yMb4Qwba-@%SoM1LQ17
      z6yU%NwCS>mIZ2_2dI)<C9Yr0XqiWEU^c3V#PNcy(L0u@Rb@mJ(3Tr|x@3|Z;qh7Y2
      z&rv`1rs>56vmehwnl9Y%&6~8OC6bm(>XWogQop3-k_IHLl(bq>K~hpuMpCz=Jg4|D
      zM|aR#{47e2rw-^J=TWP|Z-AlSj|nSq7{_F4RF7VU67)%qF4GX25>7jq)}hk>e19;)
      z*(nu{&Chw?x}lp-ddAd`(jJF15B!JRFbC2aTqS|Wa1k1oq!dsZsDsb|%CzAuaCaN-
      z0nWGK#lV<p*!?_^dhd((W%1r0@5|fbRsaty$g{EyuL54(hSvZW+VCJ0@Eu?$Q1dz(
      z!pV9ZoYm*lk;u!dbZ5EK*l3oMM$s&%jLl{_ZEP{i(%5R2^C@E+*0izR{Fz2t&iAwP
      zgY3M6oyXXDw|3sEo%g|cf4-ZY6UMlSh=UxlgCh=egvk-dbi{ETQN}8blUTcq$FXLN
      zQ&_Wx1tq(sq*!T+l^j+&!%8()^0m^FTB)v;BCT{*D>byz(@=Ug*%ZpMP!`1be9u*S
      zp_~B!68M+F|3o9Gt}|v{(ae4@$(VUnGd7r1%)F+VXThXn=5@`S=Uc|i8=P^4$#ure
      zo6Q=y=9qblnN`fRqTXg^4KrOa^A0nE%w%HbU1lUR*_e56UO5*t?=#cGOn1zDz|3M3
      zEx7oj9+Z!;p1?>FZJ~{{74|mzmbTNMG(y+$+@@%^=*MHbp7x4SytM~tpE!-DHlY3D
      z0+qxi8W-Q;nY}^>#qW4!|DeO-FFdl>X{@6IikEa2{#SjuHH1{ej{n}2T>lGw{BId4
      oO*TVvO$YjvKGVUU(-(2@a2$+AU;JS~?6J1k&iU9cwbxhw00=(mtN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PY.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_PY.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5c2920fd98f954a43566e7e00355cf15b188dab
      GIT binary patch
      literal 2273
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`<y3p#c#QTQ5+cA}P0lVnBt-<g}eKnW>YRV(@|&
      zyx&E^`(-U3^v%nIYq1u-@aFP2_!C_I0`c1?lN!2kEgy2u-rw2#+uzyQIr;7HE58!a
      z7Wz6(9fH<Pc~No3nzM?oZ(FV^mh`sIoAiU46*|6mO4UytDyOMa(0~q%LdPwZoO*af
      z)%_^2)vm~^x=K*Ks%)obxu%-60xR?bK}M;`ZFy5gGYlMWYFJSBsPEN7%L^wgH&T+i
      z1c{A;7Ec9!G>ee=d`US$Bq--awTcS%YDtn72}%}*3WWlwW)%c@Ve7~c)KR!ykUXo@
      znX1*O3tDpWrW)$geh?m?kIHI)-1ow1c&S=!B(2(P4f`T}yxR&@tI{nfQmq!p$BT^y
      zv{%)n6}jP2rxr&D>an9BP@df|8?}n>O1f20Vyr%dt~g%kjxIR84X207V{Lh@Qn=5m
      zwW|voabtWo4{hE&yy-?CT5KprBcQeSWc!T|R%VnP;>L2sb{)?NA3&Y;gA;-}NBycw
      z6FQ$?*dR$znXdXZ*uEt2C*8<XbxC(|bF3g_`))y*nse>@!1i7C@4?wjq~_SZ7x{CJ
      z3UtzaaO&5-saRFN3t#6*j+RibBvyhNk{*Hqeo4DvfL+pV$YW|rdjZYxlspUrjFKL~
      z8M84}DMw40>HrRvhr>fKCRIh!5g1klR7W*uL(+t1LX}6gftH`(7{1_RFzRYn(i1Rz
      z8$CY_!}I4PRam5BbFpfU`ncF6+JRyL5~p!9lnb;o103ql!E||aDuII{9$&?30GtH~
      z0S?SSn=YG}loUkNL)dfZD0GC5s)19|Q=o^ONIT~QbwN_=>>0Qa)^u6kb2(Z@y=*<7
      zqkig5(~AqHKc0m&UAW;pZ^Dw6NLnhXPtr0;{gReT8j!S7(rQTsNl8f=N!^n2T;jtV
      z-9hW{!zekPI-q}^N39CK0)~D;Cal0=KL%4Hdh{}spigpinFi66aN5DN4wnAs3xpBQ
      zPN{Hoe$M;W58iyzGp2r)_Bvd7;6LbwIFZ)iDhWJ?i_ownrQoIEbr2drnKnNQzq`%v
      zfuC>l7sJO)!|vyS)O%mNFN^p7cwgR@w*vmaf;ubP{8jK*xA|+}7ux)_V8HhPI|0q>
      zX%HtHaBx<iQ%52%uhO06PGgf<P8vnCoHDkU<+QQYEK6gXS<a`7?O4;s4)bRkZUx`Z
      z!4GoqP7WUB;5|BcOb72n@cw)^2Pcei6B!3NV<%@E<_wcFj_Hi!I-`tL8Yi)K8INPl
      z7^kpi4GT<mi%Bul6f-%@bcUH~%;amPCpA-DGew%|tY&Ixrl-O5Y_ds|Wuh#A^ZA~u
      z^g=lS{3YNo1OJJJp{_GVUeU;YAjuecRU<Z#RE)f)k!OLVW8`&>oabA{$QxX7g~>W&
      z<jtlA)*K^mF|vx0R@U2$tYM@pM&4m$EhCv2d6yB%NH#{^n`h3&$oq`+Fwz|(A271m
      zL<=tds0ZaEtS2y%L|bVSZG*j?zNH=XCk@keJhv&@Bl_{!ZlEzSg17bn?GvZ*)CRO)
      zT%eM;MC0N+JhNBmp!glH>>qSk{DnvMI*oR8fbo*9!hhD6TSG`i?D+qt<c449<9}tO
      oG}uhZH3R5V`b;N(PG7{yLvb=1ees6{xyRaaJLhx1)KOpk113o7i2wiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_SV.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_SV.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..799972be2f97e7d2689a6d2ba85eda6c05a6bf8c
      GIT binary patch
      literal 2272
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`<y3p#c#QTQ3kUR?;F26ay+uCa3L`$xNM0ia`-C
      zc)yE+_uKM8-@H7y7Hi>yyt(`h{sfo5K>YT}q=qhB%ZHw`_jmUG_ILK|oc{Lr<zI+s
      z3w@cS4ngatyn24dnzQn*Z(FX)7xgykP5MFA3LW1&p=u}0i6nIj8qk6D&~fucrxqSk
      zHNPI%YFFK>xJppAqHL#Xxu%-60xR?bK}NC3ZFy69GYlMWYFJQr!S`yR<%JWLTUV00
      z1c@O*i>Cs=K8uj~d`THWBq-z6t7R4J)siGF5){u3<#IVt%_<1+!q$-?s3Ui)AbDD;
      zQx&UG6SU;`4K>uJ{UAI#AC=brnD2$t@DkO?h+Ea!D)vSCc()a*R;8Ozq*BR`jpZ8+
      zXs@VAtL}z}ooW;zsK>4cf%5Ez*{GI%SJKT8_v_baisOZDVZq@of@0=Gp)IXd3D;S*
      zc6DweE{wm;Lz_1bZ@S)x6dQuk2T1Kb-hSZ&<r!s%xUd|tUB`36`%q{7;Dn&gf?rWd
      z+KBJAus@RUIg%B>3fq?i{<vHBR87(y+#4$h*}hXys_I<*F0g%<{kw2BQ&)3r-;Mk^
      zM+G|R9yqnDUzM$j--WL^lA$HkD~Xk$hNK5zfM3!s7+{yQ8}gW1(q2F_JR}do0HdUb
      zaK>y*Rm{**rW(hg@^JVtj7e3NbO?r32GwEB*^o4$nNZ~sZJ_1HIEF9yD2$q#mGn3a
      z-$u_*!tne#No5x4*j%iVp*}7)iFTk^fW&Fs4CMmt%m9b_GcaAAoO0lxh{sp48USYj
      zLVyD^(5A~K1|<OzwGj3kItm@3qpIMP^d#sZr>>ndg1R87b@nt|2y415@0koOqh7Y2
      z%}_t}Ch7SF!ynB;lFncE&6}{KC6bm(>XWogQop3-k_IHLl(bq>PEuS_N>aC^ESGpc
      zL$}d7{4R=)r^fZK^RQLsN5Iez$b=O*>_=c?M2}vIV)RjlF3}*G5>7jq*1_Wce1I^*
      z=_wT!=I6X`{osu!J!R@wX|KbT2mXU@h!bfIt`fs*xCjl4QvzNRUI(E8lxp+S@Vndm
      z9{AZde=&T_H0*vJNWJ$(`?6^7kM`wlc`M)#EU2@x&0ht7b(_Biey+`53kG}#*fD5c
      zPlGtwfP>TeoH}Azd4+B-bsC$@QryU!rG&A?EG3PtW=R^`%u+UCY{!~3c9=iWa4Yy;
      z4!)m*cXDungZJp*eL8p)!TYn_92_&oOk^D3jGdfukTXoqIHEI->WmUrX&lGeWjuy8
      zWt_m8HY_mNEhfcGQ_SQr(<x@EGLx^Fp3qD+%~aP+r!`YUGd%^Sv+*WTnu*c?&SiV9
      z&~v32@E3r;2>eGHhPuuOc}XMtfy5)^WsTTC5)tx>M$Q6BM#!rgImfq*kk`243X^q4
      z$m>lFtT{s7U}O~|t*kd0S;I(IguKPbT1HY4@-`!qk#vN-GtZofkarpBVWc}k-eY93
      zi56V=K@Z9YSdU>OiMG-v+6H?&eM39wPa39ccy1H4NA%;d-9Y=q2;SOp8Wkt;)CRO)
      zoTs9=NMqt#JhPYSfcPD+>>qSc{DnvM8WlP^z<5zt;s4c_T0=;A?D+Rh@eM!IhyTh*
      oXt0@*X$H{8^odUXls=1+hoWRO`oi}Ma*wp-cFyO1uA{#A2Qg3U0ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_US.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_US.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98642cd3ba15a1f32e5f0b9be561d4e646596ff5
      GIT binary patch
      literal 2292
      zcwUWFTXz#x6yDP`$!VIl>9mxBtz62bEu|?UBDSCsC|24cOj``7FiB3^DU+ExnJES@
      zh~oWz0mVBmAN0-3gKM!CzVPPqH~14={sQsaCzBGoa4jD)XMf+>``i2M*>m#yKi7UE
      zq8;>Yoa!{%I_CuG1#`(v+iu>pWqMpKW6rGW6;0oAol~-OYTAfXy+&QiG4L%rJ#Ll!
      zW3uE1US94GoPsSiN)=?@Dw?(-7fsLfT~8x@yrOM7b7{l(EN5<5qo$1Olzh|iXG}Yg
      zf*Lf^1~qD(^W0z&F3a(PlGqy1DCq>nob*OjO@dmW(KFD~!@r?HtiX#Bl{kLYMb{{?
      z?6O%SaaPJR1+!ezsO{t(iz>~#o_~DVt5M+z*YW3pV#Uyin#IK;))uvW!1QG`<6THn
      zD5NJQ(&aJ^Q;@S}VEa>6aoOW;jYy;BeBgP~$(N0CG3VNXHsFk#&??LE?aYcj@R4cb
      zKuuItY%5;Jrdv%I8XDey8$>mE)Qpy(+V+#RXFif!ka-_x79)Avax8xzvh?=NXjGqZ
      z3o=f48L5>m5(LS3!7aje1>J*I*nuNUg6`$^n4Zt}eQ0~py77aTcWuV^V{ajlOKd-Y
      z_$5nvDrf|tbmMByEVvD5%DyDEQM;grPziDf+7AQzf^hZ-)CG;AJeC&p2&e@foJV0m
      zQP4Q{SdFD7leCJZ9>b<|uz3u|tjr0Tf??($HKR1kf*w~&$Z|p%X!sNC!v}l{MoBIT
      zIt|0kqvJUkj=LnNz(rblPBxpQ4o)_Yb|9IDzy+KP={yB&@TmSAOoxXj=UGUy$VV~D
      zAn}PrQGf;0SEkM861s*WN<Qpo&{5RkTe1jELFXWkasmaO)2IO@Rrg*1L}3-k<-M4s
      z)zr?`OG)aa_BdT!G5_H##Oc-B-g$)<)Fx<^pbkN+1$7EqBdANzIzbx+Z59+2ln~S;
      zD8(r*C#jeE@M(-&j+|5<?39_~i$PbH%8cn*j6*UuqDC)45&AqyS7;lW;?G-{*1qxo
      zc`0Fp8|S2-S)TKb-o86edcsgQ)u_dpyZ%FNkOOH0juOEQ*@A{eDFze=sv|Uj5;eFH
      zxTyv=1E*?mD==mnb|(*{T06pZb+~qh>zbOlwZL69xEpv~4PFntu?F`5Z?3^xpn&%P
      zJA#_~X&ZJ1uyI!HQ(Yt_uG98xy`DC*QGJJzjp;j$Y+T=EWQD%l$fjcY9z5gvu<;A+
      ztvWx*&JVM5hMf<x^C9ItrkoGMc_P)s&Jq2Hfrz6Vk>Ln~Bc?gxxQfWCh?95<{Yg9<
      z^iy~ybQ8};Jr5;WRhnZZi<Qo>QjwKhR(e_~m6TGTl+G%pvQm0hDLoIR^U;b>Hw$%x
      zxR7eTPA_L8;9mj%8u*`SFG{Qrnb#FF0VWzUZzx8BiG|FYiaE~*3z@eRa{-J9nYTIP
      zT7&BhnRhBRaLpm}E;H+ysYboWOb;^+A@e>nTbN0N%m>T}W*S50LuMM8Nrucv%rrC8
      z6fz$((`ujvmwr-%@(G?NFp@+&X*=zLy_>$HJ@gk1(@osFF*>Mq;@a(}L)r)~-ANkL
      zPUFt?=&*JXSMFt+(7vZh?HV1?{=jwnCmq%P#%+6(GIe!O{8VM(zq~8eA*3``{0maF
      u|5y6#Rv9rxRzi{$2l|4(RKZ`-*J1Er7>q_=`f)|<bWLpia_l$C>*~J?=I!(V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_UY.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_UY.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d588f93a7bb8faca2adf4de128e9c95ce8edd98
      GIT binary patch
      literal 2272
      zcwUWFTXz#x6yB$4lG7wDVJM|w!D6aVga$-JY`s9aSV@a8v=~rfGC6IhOlIn2QVfcC
      z!TVhlykFMxLEpSQxE5>S3vVuegFnILFA%?dGO3{p*YY9f?ERg+zx|z^os-}GzVa&(
      zZKJP~)Fx=dj91IgSqoO)^=->l`GVfYylFqESfS&4Csp<2WHCwYg8Fn|Ep*&`!KsEv
      zRMoEqw%Swk%B~WWEi2opSgxt&t-uQXK#);ra9iF?-V6iBn;90=IqG}W(DK45%dII%
      z9fHJWLCa?Xzc!DM#e7K_K_n>S)hZ<w?AMYcEfW;a4drq<P|Yg{@WSSiA*d~PyC8W+
      zsncbvUKO<B#7#9+XZ;{NwiuPx{<!ajv+xp?$cS5&`3m-B`gpGus%E8IP^4VWkB{f;
      zb!acEX{+XjN1aL(A*jo)1%dMHx>>K3d{@$~5H~S^rZ`^cjxIU8O;BvIIN6fctc2^V
      z8|cq%#)a|OI<$4`@Rl2WNU<RpeSp;N6Rj6MRGL$EhzrXR+jTrAd;oPe4o(SbAN9*B
      zNoag_X@4XQ2}+jz3T$5z_~UNPQ&mZKac`_3WczMGsfu&$`@r^H_V2;jTum*oeJ}DC
      z92MxK``}cseN(c^eh0qIkqoV%Zb_^JH6%R*1N@TqzyQ0Xy^zP$lJ*0d;~{w%1{fth
      zf-`1gszQcVGSvhQm50MeVN9!%q$4n_5~z-9&bp*2&4enCX#*`k&M|z!$6-{}yrd^#
      z_%?ce3Wnz|NGh>N$L3<?4E1oaX|w~y0wm7jW+)eEXAU^jpM~l2<dgyjMLfQWRR=f^
      z5CR;Sfi_(>F(?U$sD`i?&{60J9aRCRq^Cg-IW_H^71RMq&9i6WLRiCPdCz5N6?L=q
      ze1>|dJ4r7t8UAP%l62vQ@4Nv^S|Mqrq#jADB=t&KEvZk^T1owqa+2bbQj$6)Wx2$M
      z8M=cu;CE4QJT;+zoky(_KLUn+K&Gs~VLt*BBYN~w6r)cvbeRUxlyKI;v<?>j=L3Wh
      zPS2=tbaBpmHV)o=(o?2>mG(Pax$i&dhB%Sd<0>({hRe{fI3?gE;k6MOK&ci#4ZpL+
      z?}DFg@t4ELOvCQwfz*3Xw6BWx-e_OllD7ta-;z3OTl{tK`&<0=@N+Hx02uH+z>Y!l
      zMjFJ)CLEm6=hPO<%Byr|vEA5W7UM?VEGCR?W-)1OH;dBPVHUFqV<*<6vCI6KhMU3n
      zbMS*4yqkkZIe4EAKA?lg5PUG($-yyW+(gD9&e+WvhdIOKj7gnwOlK6aO5+694&w=|
      zDdQy8v|)kCZZaumnqek~nNBlPg_(TK^ps|*YNncII-{BDn&}xZor^b!(oB>Fa6a30
      zm0l>ufWHL%W#B*2Fx0h2$SWE-2qYdMuWG~wl8BJkG;$6|GD2S0$a%hHguKBO*O;s`
      zLf&j>V9gQo79;BzX=c66$a+RPBIF%L1{g_2$h(Y4M$!@T-Xe1*Lf&Vji;>O<`GAq-
      zCR%XuM?EMXVLgtKB-&0}Xb0?_^eye8KWUh*<GD@HKGBQEb`u>CBY0~kXiS{KQyb7h
      zae)fr5{--R@XTJJL*jS5vVYKF@fRN1>onTd2F6Re3jbGMZVn;kvE%QX;+uY<kN=gC
      o&|o7a(+HqX=`)@DIeif&4@Jpn^u-^R<W9EawlC&>siVI72O*2<Gynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_VE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_es_VE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..807553e5a720774ee660dc5c8280b1b726001e1e
      GIT binary patch
      literal 2273
      zcwUWFTXz#x6yB$4lG7wDVJM|wK`<y3p#c#QTQ5)wA}I(1#efQv$!R-fGE*lr#h{26
      zyx&E^`(-U3^v%nIYq1u-@aFP2_!C_I0`c1?lN!2kEgy2u-rw2#+uzyQIr;7HE58!a
      z7Wz6(9fH<Pc~No3nzM?oZ(FV^mh`sIoAiU46*|6mQq@mRjHRhl(0~q%LdPwZoO*az
      z)%_^2)vm~^x=K*Ks%)obxu%-60xR?bK}M;`ZFy5gGYlMWYFJSBsPEN7%L^wgH&T+i
      z1c{A;7Ec9!G>ee=d`US$Bq--awTcS%Xi1V52}%}*3WWlwW)%c@Ve7~c)KR!ykUXQ*
      z>8jPJ3tDpGrW)$geh?m;kIHI)-1ow1c&S=!B(2(P4f`T}yxR&@tI{nfQmq!p$BT^y
      zv{%)n6}jONrxr&D>an9BP@df|8?}n>O1f20Vpn|#U2(k79bIsG8%`(2cD3cTO5r}M
      z)~+sW#EtRUJhXZ9@TMDmXtALfjeyqP6YV!XSea3Fh#Sih+jTrAd;oRU4^9Z`9QCUz
      zP3U}nVS^+=WxDFuVEdB5pL8Qn)g|4<&9Q=z?YjkKYR<Lq1KW4mzXxYCk(y)sUgXa?
      zD$q&y!Kq*Srean7E_|IMIa)%!l2{39NO}kc_$A@?39w7r4S7s0X%C<oo|1=QfKk#T
      zIAb=ZD&=S?Qysve@^JVlj7e3IbQp$J0o4)B*^o4$nNa01ZJ_1HIfgIzIE=cQmGmSG
      z-$u_*!SMV!Nfj39*j%idqdqP+iFTk^fW&Fs4CMmt%m9b_voKvAol4-Kh{sp48USYj
      zLVyD^(5A~KCM5+C^$_+PItm@3qiW!k^fc%pC(_PYL0yp4I(rr_gf(53_gs#aQ7>E1
      z=cu20)AZtk>5pe2O&4zX&YQ5LC6bm(>XWogQop3-k_IHLl(bq>K~hpuMpCz=JeT+|
      zM|aRV{4h$6rw-_!=Mk&IuYjRnkO?br*pI=~h#tKRCFqkJU8X@aC7gCJt%Ifi`2t~t
      zvr{S@ouBi*^@BH`^o*&Wr9BQ;9{3NsAx@+<xJm-g;UY9FNhx?~cpZcWP^Qh#!tZYL
      zd*J8W{KfDw)3Ez_AoboC@5|!7Ki-$O<*k4}u%OP$Hh&fT)ouP7_=PrqEg0}Uz)nE(
      zdK$#Z1{|Ex=hTtN%d2!}xzpHWmXk)&ET@buW;tzaHOtc2W|s3QV>{NgvBUhChFih+
      zbMS*4ypw}RIe1J5@72Nk5WGL%&A|y{+(gDf&e+Krhd9IJjH5c^n9e9;mBtCIUB(kw
      zGsa1*S;GR8-C|PAG{sB~Go5Cp8Z-Ht=_$=r*G!RSI-{8yn&}xZol7=}vP_f(a6aF2
      zm0l<(fWHL%W#B*2Fw}L%$SWGz4<s2QuWG~wl8TYnG;$6|I!0dC$a%hHjJ&}WSD36b
      zM&4{{V9hb|79*<|X=T05$QnkvV&ol0)-sZbk#`x9jAUcvy?N$bjJ(fC4<p?%@&O}@
      zO|;<Rk9tr(!g?GdNwk$V(KguI>08=Cf6_2r$8(#aG0~65b_4AdBY0~M&^~brPi;W^
      z#RV#fOEfON!!vt@4vOFL%Kkxz#9w%1uhVEp2N*BuD*R`Cxiy4T#E$=ON^batKK@rm
      oN`uXmTr+?^rO$No=k!IKJQOFR(HDPMkbAT(w{t%COC9yqKaJq(M*si-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_et_EE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_et_EE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..241249934996a0a2edddf0f34770914a1cf2bf31
      GIT binary patch
      literal 2300
      zcwUWFTXz#x6yB$4lG8LTVJM|wfkL^JO9LVzwxCi1V$*U-DF#%SCWmy|$xNKg6e}WL
      z@P0)F?=ByB@X^bIYq7)!d2{(2{0T09f%xr{NeErImR+l7@9#VNcFx(e^ZP$HekGzE
      z^i7;v1Z^xiL3+lVGt;(PFm092YH`>(=Xzz+w_N9p^3P;4acULRs|^F+veQ|s>K|8C
      zH}DE-f8Z2tB`8%?1*>e@IaM(|(|0{VMz$8)bV})*?^#Z1NKnU!>r{Qy@h43?P?FjN
      ziLHVbmpnJ9z@*_XDJiJsw{Ha{ouE9Wyo0(ZNsADqe`|j~|8F0J1g<EQ;`ntFLr|h&
      zvR;rpuheYOoUaO6a{8WCRi|CgKiRNq*Lciz{Ar+AIaH!%xl)E)q_+>4zN%-u4;hQa
      z!LhNydHmr#MRm>$Y=6QkH*8i3B0-&n!1I(-n9t3Zr(9do8XR+$ugh|Ldt|}pIzf?4
      zX0*wz9&MwbRqOihT*UV6L)-4gIClYs<6cm5*XibiADNm_1s?~O!v))NEPo&JY#Nvp
      z)H>o8Rh$O#q6_ay5<(^_w|<#6E4QwzIZ5{et7_S-hWG(sUs+Wv#18_`x^}s4{}8aF
      z?3p@#7+2~kRYV^QqZZo?^hO)5X<w3-P?w}f(H}=8?T5%nIsh>t=^(_Yq{kt~B|QOg
      zTv8Sy%dX=|TFS0R5q-uqojys&q0T8ag|3?5_q=u8^Q)33`AI8YA1t1PS~e|KPqAMR
      zIF_WRYN`$O8MX~dY;YE8RaJbbQ&8PmpV=Z*$DL#K9Mq!nt9@L~bdtKcoEbrJE+;Ti
      zg^lCtf;4ha6Y8*Rym$pKfkGsCOa`T(ipTZ^wQ)wpAA+Pgcq6OpYV;fs5{G-w!<2Jt
      z$oXGL(lY8|?ZqVZP*<E@TJRZ!-4Lf&?t1kaEoq6QrINZOEtAwEX}P3cNvkETm9$<`
      zR8m4xholsz_$W!6XaHYG)^gOi{%$ACDIO4p9xjunXE6@R*syNC1V!l6BweK~Xh473
      zLcb1V|L1T*6StR?Kho&*?o9*t?)5}YPppF$XYT!vaD(hfYjBhZCgmbrSd?NwaiA8$
      z1yG_1w*z-H;ZERG6J89AHiq8AJ*j1PD3^t@CzQ*Z{8j+>HsO`PtDA5i@Y*Ka54^q!
      zZ$JdR1M~=L-b`DtvlScX^**&kQt~Ek%eNZoTs~^-$mL_k&Rjlj?8@b(u{)Pf#f&{z
      z<Hk_#C)!&#euRx5W8)Dv&am+zZG2c8kHUB?)xpLQ<46u3$Jiss9w*r2Bzxqw$7${H
      zG*)Sx!P;h+SQAD8YrCNksZ@_-airNsq%ucx7e;zkN2=;bfsS-uN18{Z3(;Djl^kd#
      zh>NMtn{+830sk`iSHb^Cdl9`gWG-uF3`{g+Ueip8D+rm_HFE(>JY?R`%tbIVWZvYA
      zD{@?C$h=jnfol$#x0&f<rtb9)GyTl8h0MFmY+xo4GVd`XnQ0H1_nB#DCK)mxFw@CQ
      zN6380%;Frb;K~oWQ9j0c3N1;rleW<==)37U?V-PDh;C!t#wa6tFmE^0Au)`BJ5Gni
      zSxj7yM#W`}+-o!@zN2w*gN}$lFmeB+W8!a&+uJnK(t?Pe=q&uZceUPxl!nAlAw@U;
      tOxNy|5z}PNC0R3|&**dQ`~`g(IuC}<xace2FYrCl<lEZt{YqPX{V%@a@>Bo-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_eu_ES.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_eu_ES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19617158941446319dfa53804d25f4810fc4e27e
      GIT binary patch
      literal 2293
      zcwUWFTX$1M6yDP`$uvnzIFwSbAQ%*iv;h$jTW^$tNXqS$VnBsSGNgwl=hTyPfYuA5
      zc)wpj@vh4UAH6)d7Hi=TaQPej2`+zu`0dF_ja|5w51rZHxA*?`p6Nc5U;n!H3lVLl
      zZ<5p@XhYQv^Jmmqm9KeaRnz%`+4i}oJ-@C3$8%5W@Z`9iq)tHtCNK<~TE5^kf+M=&
      zg??G@3f)Rg3(8h>*{Q3Vt!I_50?!v@6`I=0t>*2(ciifTpzblxZ3M~<rc^D|lDY(m
      z&4QLzeJ`9v$U?rPj35$}al?8^`+H1Fl9mXH=Z15+9HeG78gPS_%M#R)yIqhxr}a!l
      z%{2rqJ8{z<8q=O199xJ=8$98;!8A~!9vN{}pRHqGV%)n`pj(x0L6Nz+p^1s1N(H@F
      z^l25=f=Q<yMF{FChrX}f@|-<aFL^adw+f0K3ZP~=ZcrOr<h>2var;nPUaJ(&vugd?
      z+-95@e_Mt}hT0MOD5G0k0+f4Cw4e51>5MK1IISEl*BsXg9zczagHwV!$GnP85^g=a
      z_;MscGU-&6ThU6=7C|Z12y{(PYZv$~L0ycMAF%uG$gSpQjQbuG^MI=%qkEgk@l_4z
      zKBU%^AG#$Ks4o0pM>DjHdL?mNC@AS67$_uZ7YtO8w406j8A*F!KvvQtY&e*WM>$ye
      zEL6zQauzxOD&#a=W6TR0l8(TrD@0GS(5xeA$}lh<gP~_o^*CqEBkOUFDTR`r<c55>
      zP8mU@mrNgEDkesA)zca3<Eqm*7pf}XclelRaDAw)45$I1esJCcZ~@RmGi=s)92KxC
      zK9vM|arn|OI!UzC%s<O1CBP8iJfhH+am-^l(U}AD8PMp>=MvAEc<oj~bHmSPXa)7M
      z^+JaFsW(ZN7JU)Xj3nvhf6YRZmb6ULa!GxXR!HiXv{KT5q}7tvO3F!!OG-)VmXzfZ
      zS2A=5ZNSG;a9n-Be6o|O#4m$oUX>|@c7Y=@F=|FKMKSs`Lsw}KV;M|4nBu|0|9q7&
      z+Ucqe#unzkZ{y(2zkrl&o~k_#S04BexnWMEbvQ~4PvjC@Sez0-NuUnG1yHIDr-8fM
      za1U^{4KD@8c*E}J=`?#^w6BQv{%Bv>mbVIcU{RgbZFmjv+BUonIM;^PLjnH>*fI3H
      zkp|(}1jjk!r;b=wUZ*>Yoz{?Dj9YoTn6S3m#iX^(E=p^=UCbt|9axjrPWvYsX$9ZU
      z!4Goq!yG)u!Q&=)uL<6V;QiTd4vtw9HZl%!#$nE|IpZj295We3lW_v8w4T7)Wu3&D
      zvJ}>|RfdvoDOFj?VWk;Xs<V>EN>3T3hEWQQ(mA6vXOx~cO3y;+LcA%IW}!5Qi`ky*
      z^kOjv{w46Qfd7$3&|+uAylR;JVB!(;nqf4UM8v#qm<xQch<U>>7s1Ggd6O%yvboQQ
      zd8^q2_Z%^AGqZ-7R@OVrtYfAtV%}wDJu|6@d5;;%OgduTUr^3O%m>W$Fw-3|A2PGl
      z#uZ%t!3@erSdU{QiMG)YZHK*szNMY?2aV7Tyu1k-7yWp6H_=`(ig)(_?GvZ)?E17{
      zT%v-wLKEUUyt&utp!f|>?(cM1{D~L$290%eK=ET!g@3@WwuX@M*zucA@l8L|C;zmO
      oFk~|&(+r@`=yQ|&1$`MM4@b$k=*!<P%01ea+qsbYm5KWLZ!7Na-T(jq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fa_IR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fa_IR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e66957fc38712dd78e4dfe93c6a0a5e6182d2fa6
      GIT binary patch
      literal 2430
      zcwUWEYjaao6y3LJlG8LT;R2;#kwSQtM*|`vw4hQRR@x#B4+ARPCbwxIxvA+5SYLqj
      zfm+{+pyC6OqSnD$90z9T4{-be_qH>B@CP{l0&(qgZ%XLkjQMcS-s`Nr&N@5ioZtSr
      zHBLn9=&GMe6k47%@{wcO2`!S&#<jE_X^}&-(V5L<G&7Yoj&y2An%n(Us!)w2=FL<(
      z(vs>i+x4DoJ{Q-w<&8vIS16Rw<Ef06j_Tc7PBXJPh13>DTQic8sF_O{$p(cgnzBZZ
      zsTt-0EuGf|l_^wW|De#!WG<WU24_k@P>|<F6bc&oOoyJ^DP0Mgp-@?PbvV4XJ{%51
      zv0H}^!z@gz3i;&pQia4xT|b`CdV3U_b@;w^db+YX^WYS#T;{D=!|X!l%eaA8%XDWj
      z&XCjFHB&FF_JBfxUi>1ht&v0m`$*`WT0U*=OJ$}w55h=S*XGRTo?1<z%6LAP(~Wp<
      zv^Ud{O$%CtX=`+H$Qri$(6y9drkkcwmMG+DZf`FtE@&@Dh0~1MB@Jr|5ftOFj;_G;
      z?8C)d-_vnSkDJ)KXpE;*M#|g@?G<$g6e?}XCUig5<IkMlDM4$o`N^S)@BTbJWZkd_
      ztZVk5poj3^Sl8`ycaeudv&QVfduWe9abmz8w1%zGyXd26mOYMa<R0>7?#77SZ{6gq
      zku!I$j1<}$q**ju(Bm*YIaDub8v^S(g6$lPA=rsvVgSLD2<&kLPw~_Uf));L)U!}q
      zkmj(^)A*MsE}-=Tg3w=|eFobZ6||4zes(Mfz42L>9sC)I+o##wAz5pm<JxE4cydV4
      z^UNOx|9e44IUcjeIqq=qvm7T_X8@dGL7j|Wx5lhtcGeZ7Dt2}Z&2^lyDzBHuS#$h3
      zxq;?59<4D!-I#S;Vzy5ZZeS^#f@gxq-mI(a^aOZL=BT`gQ{_0sTK(2F-sMZIC7n9?
      zEAZmDEihh_e?5D45O#h#NORfw>%5;|fc_|`kK>!jBx4{*)im2r=ce69_fY!j&3g`?
      z0}GlZXpW#NL30IF3z{dWM$ke*iv=we<P{VUR3RwDOMDun6;y{~*pf2zHu-Su(>nNx
      zQswh@K+B~#cR^pHyaNI9(3e5FM61v>vnz#bQ`ho8pGVxK@}zDyO<lOE6?ON&a)GFP
      zGk2zV<(mJHtLH*mgsph+R?k4gyyQdXM^-{;00oNja^w|7c_s2tQ9ctnZVcjTKJap^
      za>u#uSnZDUit6SguPMqGAYWLN*CJnBl!uWoEy|Zc0sjMH4?M4=RhU_giIZ}kN<1NP
      zo7Tii)krkvRo6vhK6QOG=2tgFV?x~+jfH&bCVc&BLv)O`6v&S;`3WXBF?k1*cS&-y
      zB<}{fHB`Z5kGdy{ioIMB<%<1WagZxwvf{9;cn)8o9>KRv)$k3daeT{F9ZJc9Qi_$1
      zvr>kYvaIw1EA>dFe38;gsnjc#UY1I)Lg|#(5jw*{X94twDsR(Z%me%l;BNu{nYO@Z
      zsf!Frq!ozQMc$T3lK0{w??~hn5WkDOE0KO6!bRTW73W9Ur;EJL$O1+RRUa@?%SfT>
      zLq@`kl)1=9j4Wd$;36M0A{Z%mk@Jj{GZJ)>PZ+6Wq{2lmFfucW7F-;a2jw$-58+4>
      zt*14#0r5t<LYwF>YM?uK)qS)>sm7zel6EPLc+=acSviU)Jx9BhKD_AXsa3f~ZOSd$
      zqx_EN{14iz{Eesl4mFjOK=E_A3gP%&DjY(JU{o-ASN=+0+_mA8pi>fb2=o<wEsHPH
      aH*RsgTZ~3u{ApV4{-WB_soE=&_3ghVHHG>B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fi_FI.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fi_FI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55c2ee410cfab4de68a3dfd63b15e43c7501cab4
      GIT binary patch
      literal 2380
      zcwUWFYjYD-7=BOFB&TUw!nTxx<yvm#(i9O9TTm$!D@_ps#efQ@$+p>Mvs*X2V7w!E
      zzu!Q`OI1Gj(aQ&Cn86SD&G9$*6C8hm_`D~Z5;{0zXS!#f=e<4W-E-dj{?D~viD)}r
      zjZ>4Ljnht$o>6C2+II8GHq&Ez8Fi*yudIB_bxu!Nr$<KP)GVk+I|jaGr^l>{f7GnF
      zftNS;1x~>>1*HmR-YP3QYtAZ9`K~9(7^~%0&U8BKdzLdjD5!1Nbt=Ac{0U_Trlb}@
      zVymFV)1Dj5!eu^QQWB<qK}jblPnzC{)+A{Wa`bNP?dAW0eyqT=CX_gS-Ng`;n0Hw(
      zNS-szQbAQKf;vv!QB<Yqdj5%duU3sSuHzShV&(89s>-uvtc$dHzw*s`#k)|kQ0UKO
      z`m6ZEb_(W{3T*$FRi5`*DToBM=L63(oqRQ0El;|(q&0$?$|ZEma(sJufpMLn$jE4>
      zA*`Nlqo9?y+AuJ%dfni*+cEZ?hj8=-k~>c|Zv61%jG6bbaXFN?EywcrqRyti2|>-n
      zZo!Nb+MZh2CrJZ>S}K9#1dgvPNp}O5m2y-K-XkdPTR0jF?nM(zW~F4EwX9Ofm2@9l
      zU9V=nACdTGGhyTqgxD(3s0BURo1_lvl=L84Qwb#P;}$7N`?31)AHiC}*?E{TazBD~
      z7I+M+tvJJYl9q6WN4cshm#rIfl8yotO}hq;@po0qwknb)*bo$bZFo!z4N5M9lMsq+
      z{C4%m9K**Uv}jrmV@XfKXxc8D7@mQ#Qms~MXp;BjmQ)QDbT!XYs5XTHGj3o9H|AJs
      zF-cu4bp`=iYAL{$ZC%L@kyGn5#A-OpM%Js5$AK(ZBOgdB*61t(Yl1a=8Zw|*zdr*R
      zELVf)09dUCFX(D4R>PN&QR@X_!7nFiDRuJO#Uyo8XPjPLaIeDS6{pv4J4Q8HQir4^
      zlDZ@<mDDY1nWP>`t0b+Jv|dtFQbJOjq!gF<G)bGN4_9u?a?Ei(2#%>q9yo>`Rujsz
      z7>8tRNT22eMd-^UU7;;F(SFgw1?U_5pTiEfqIKHzhv%<O*QUNZU!Fu(Prwn2EBE|I
      zx_%C%HP}i7lXnps7Nr<a9H@!V07^9AR^YY<+zy;-z>9%#HSpfe2VAdR;kq<jyTf%^
      zL)>!Uo(8-EcvS;l4ZOAi_X4kPz#EVO-vRFtXx>a)VA%@8Ic=w=NJ?I(ZMkM6oy|p!
      z?b%$+*pbb}jh)$?G<IckshF`F&$uy|{h9XEogZN5huC?Toe!|{LG3)Moe#k|lWJq<
      zh;cZJh$9@4<%r`Pae^aqI^vX$cmhvpoW`@oP<SScJf5wFiA>Y=OcrM<ai%h7ayipe
      zoT;KS1v=9?ovErbJ*zW4uQR=fOy{GuL@PMa3J@1k?bqp*Tm<}U;NJlM6YYV{=8$<)
      zGZ`?^ka<fp)4Z3Ed0R8*!Nf!69nD+-BSYq0uDCqQIz#5Yng-S!GVe39nwfgk2h8*`
      z(-JZtGP8l1M96%^jAW)YWIkr5m6>G7e8NmSGi@PriJ8S&wBYiO`k;J<=Sdt%q8+r2
      zcH(^(U8UXh7Y)))4Dc8o5ZxHyo9Un!!T=wqQE>(X+@nL{A_n*+%82i2TwJ5W;t!1P
      zKk1108<YDc4L3C*<L9~x|Bzm(A3{oF#cwM`H~&Ik+>#N~WGy6FbD*#2YaKjC--N;a
      XVK5qf`G*Cu#~Wgs=VQOsUf=x-;2Rp!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fo_FO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fo_FO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8dba36d7786a2c70ac30a5f088cc6effcd1c649
      GIT binary patch
      literal 2317
      zcwUWF+j10D6kVN3GAENs7@80Q1_*>(fMh^K!~|3VLCj4UE)J;BndwYAndy!_-C(={
      ziud~k6z^C*_(GM+gH=@FOWrKM!B4RK0&(q=o-n4c%2cJ#UhC|=_CC9JpZV?Yo4*3s
      zj_=~AF|e`VhUrP`td%Z$Ijd-=hxBsD9ryf_6*!)IdfYobFd9d#fp+Z}22L?O<dlOW
      zcG(O4oV_n}^F`Z0DsShUl2y#u)0S@qo^QY$n$x!2LOK)pj$7z8(A4j_<-l@-<5n@W
      z6&ef}TMaBO_+B_om-%>wB)57DB;BwyX8QxWCWS@R=-k@bDgWDgxDrp>ti%l}E~bIR
      zyvuq6>YQy)<*k{rfhDKzT2y($^Me!fUX2<Ldu}j6R9}jWI;%8Y;<`w0@3#WGlJOp9
      z%;(d?!`(Cd<8ku#xD^(IqfTkwXO#gMXwHScZ@amf%uH#_D=MrpP%|ana@?TUzhHBn
      zf!O}R!K$!|+C~Gb)^*%z#I|j{>pHrtG0&Z2;p_`bZaGzb@X@hJI~VZasxMb`TqoGe
      zJe#_X8>sE~@^&0-dum~y6eyV}hprputwP8bbT4sf_L^%&_&x&-!R)Pa1n(y-Ia3wy
      z2M8x-Z&Y?4WZTF6+3SVEWF@|joiExm1<Th&1KYJXi6v-Jc$ft;wZcBuC^;4O(~@io
      z1KeaHg-1zA3WdjLiMqlNHz_J&BS|b3vBybGT9i0KW85B7I4TMjOJECP)-;VLG~+0o
      z6lcl&q&E0co)({w{Wv2<+0zPRG`uOkl{^jCJF75GBX5@_>qHW*l68`k#H^vDDH@0~
      zv9EzEN3wiYJxv#8pS{j39En=yWd(t@inPwkepm?0O!X|=$>f18ABVzoRAdRB1~2f<
      zvW#f!B_h_MkrZ?xiDhUJ>*XZc&=SX`1s_H<A91|)uQ`~b6_zM0RcKXMrqHIaT%lcI
      zwZdA3^$K+g356zwl%%+l#3pp{n;CLkdqjW9N3AirF-(2i9JhQ&a75Pk>2XXThA)!1
      ziY@YzCmc?2*U<mGtvJ?=1v}`UpZ(TNU3Z`UL`Gj>1CC^F{|~ty3B(#6CC00B5gS&A
      zdZIW{4cGuAs&FH5Qx$F|PF3N>#2jeaZ8D2`ZH?At(b^WR%d6s65Vu$1mBg#7a0l_)
      zD%?rDz6x)k0^bAe7;D~)E!^44jdOY*HL;Ysh3;&vna*VE%<Y+My}2Wkjhj0&S!M3Z
      zWK;F#Za(8?Z{`N}RGc3Y=SRf3Uz`t!^Fi%=NIMVGc{tT1&M|W|!-&HYk&%dF5^+Kz
      zvO40Fj(CbsWuE4<!L;~Hm^nThO`A%EijpHrQ=(K7C2wBo8Ld>-N}*Odr<G>3((_vB
      zMJk=In-f|oLMusJOf}!aE7=(NSINIl{%7oAowX73hGvGz)J4pjnkmRxBIYg4oF@~H
      zn71`^k&KF%cO>JAjMN!1@6OdAHAl>Q!gL5ziF#j{PGK4%<^y3i2$P7I4~0>}G)Bxv
      z!ZZq#jF^vwX%?m_Vm=XOafU6p{F5G(Px(B_kpy<28#`(5!uQyXKhcZZymRYuz-Z%*
      zyBP<KK3=#ZIAomRb?al$xWvo$3WkjzFk;-qsPQ{*+COmE_=^|qZS>dFQ1LUJMScmd
      zR)!F1uKaOC-R58L`JFQAH8~fOoO8gJ_(}(Vjc=mho+y}&zWn2Y*ke_(wezvxYOibm
      E0I2Qze*gdg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_BE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_BE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffaa796c44bb6ea3c00d10d02ccdbd39258b2cd9
      GIT binary patch
      literal 2267
      zcwUWFTX$1c5T4yM$!?pr;k1;3<r*$+fu@Lv*n-;7BGMM&lwv@I(`2_j<y`8?NwF&8
      z1@CuJ@U9O&$eWi3*TRJ_yt(`h{sfo5K>TLsq=qhB%ZKbe^UcgRvuDrQ`R(uPzY@_d
      z`X)(rg0{_g<?NibU}YV@U^yx~s<*@5v>&)uX#3uo>EO)JaFXf;b!o?PXgk?ayA&Q*
      zCBGaL)KJ+gI!aKws0y}gIi{Mo0xR?bLB?o>+wx|zW*FGs%z&WgobQ!F%L^whr>rD3
      z2ogI4t(Xb?@;qFY;w7bE>Jyam%I=g3Ms!V*S_Q>3eVI%KT=NPQcwyCK2&&6$5hTwm
      zb*^YFmISq(zGD%kSw9F*E_pR+ea!d5S!fA265^IS?_zJ&=7UzKs+sOWl43DCHkMsn
      zMDay6ZIzvH!giND)(Ij(EroIrD6g<+F1k~`BWWW_92r7yY%g?j%Z!@^#fFAQYQm~)
      z+XSu4?7*S%>+kFD->`XL=j}QQDxhq10|mFAu08hAsX0{$acntQaBR;G4<Ju>&!nLG
      zoL^K)LX*?WyCkWf&xkAa3bVMUyU`8@cWq0$2cl~QEZz$r7ncwy*6xF0PL)}_ABF|x
      z6)T28G__>8kQ>mH11V~wc1aJS3?z_*e#F2n=^z9!OB!K8L3kJfC?!1t0fdr9A%KgC
      z##6MCi5_Jq3%27p()7)13z8-PSqmVT)Rd^<F?Ql4r?dd%ad=z)&0i!v$((9l(pd<8
      z0S%vm;Q1gb!l`)kT7mOTr>KMT%?e5)--68*&f%n-Gtim?cbuRk$>aF}ihG?0h>XY`
      zaAetb9EBVqdmul=1wjocAXM&DfM!1pH<aOP<rySEDUs<pcyc{j<)WTX(JE?Z>4g+^
      zQhSnKS~m94{U_<tZTDP(CACRfDXBx!DoLG^R!i!Vv|iFCNn0evB{fQFmXzicAEl_9
      zdhkVz+MXKM-{pig#oxc7-;PNuuvw45#GoFxMvBp=DY{DA(TH%?#)S5a{?E4uW7{;N
      z!ranqcXapMdAb`-{UD9loVn{i==wO2HsUBTJcO-iSez2jlF;f14WPyvy$O1Ajot!1
      zU8Apnj!}l($&;w}j%Z&M?VZuSx+ZQ7^sX9xE%fy@`UdEmYV-{BEj9X9FyI~_$53-G
      zZHHwC4Cl3->SAemgLdZYjjWlE8@tSW!q{!*lg1u1FO9usKAkZ3VNDtX=1;W0>ihsZ
      zKg7;Cb{=NuL)!VUc0K~<v2-&#$Bd&UB93uHjw4KtIKdGobwplAoW?4RC$KgcXRtOJ
      z7S<-C047ysnqelJna(kjyTs&crl&MhNi&r-(|OIbsF|Jx(}j42Xe|@11#mIla)VyX
      z$AG^K{1xCo(tea!A0e-5WDH0=LSEB|0+NW3*EMp14;CSBXyhUg86j_S#x*9_86j^~
      zYT%k9<ZVVaFj9?rhmi~;4H5D#BU>41jF9&jk&HA&$oq^mF_Maq4;X1-q&Y%9WMqYj
      z7F_;856Z__Phlj9cGFJU19>lfOZ(_g8lYQvZWA;tI`P`}(jhU3$99|!i?euZ13Dru
      z;i<hsW8ym+7uV^i_#N-;A9PIog=h8_<?8CdctvO7f4ZyHA*3vJ{P|J5_h<U#-!c*!
      ntc0X04)hs)u7kgzFQeeTC>V{t{Qa`n6E(5*OR-;Rudn|B<@@OV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_CA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_CA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45f47a39afdc8c0dfc5480c8c216119d2a9796be
      GIT binary patch
      literal 2269
      zcwUWFTXPgu5bl%B?w)Km$ufixFi2pzBtWu3M8pI%EEgk55C(z^Dol1yk_mH(v$Mgd
      zh!?!yMZvp1_#kgy9<0K`7v3y?gFnIY7l>b<osCNht4vkqbbsCbb)P<+&ToHT|CNZg
      z(>F<K5VU#PtK?>_c`N7mMaxmSQGJYfQ-0uDq3wHTrh+s1;UqN*>e7yt&~|d8b~!wz
      z%6=s%s(lr&<S0Rzk}BG+<(O*D3aro%1R0}MZp)j_nPFgi(}RLq^1fFNEias~oQjgv
      zBuH!%v}`)?D|2vJjF*&#sasImtGJUYIH+rq)FvpN?ayYj;F?pYzzb_8Lr_C@qab-+
      zsdFW3p)6?m={putp7De5<f2!z*2jD=oPm~bBOz|Nb1u#{ZQgH%s+Q?4L8%4&^o@=6
      zl}aeTq^7Kj6CStSMW4F`k)YOMB?y#PTrd~hN#BvQ4!7EX=Gb27<d@ih$MVDb>!NC8
      zn+2`SZo{qdJJ3Hc(7j=>=XSjp_b#Gv^aCZgpRT|7k;z$A3~_NeRCH|54)-EaPw#}F
      z#=KurN$SS~F71<~0R)urs9tdfFLe(Z;^4JyN%ul@t$@Y*;N#*M0>#?>FwCk7ix0ps
      zue?&#Fod?2Ef;bVnzA=d%c)(`Lns3YB<+I$Zb`U%49t=avY;S53;~pq9)SQtNuv<J
      z#YE$2TERq*vXcedF<fct=CyfA#{pUMAehjUsNpeo;v}cE0OWCaTmH>oBt6NTYEIHw
      z2!0VApM>D~Aj0!DmTq1va=xiFb#T5JK}qDBx4FVu+>~<$T65rz8<Zt^JV8M5uyX*B
      z5xE17tk{mDkRxOd<cByfs0jsx%AE|*?5E*|GJLH(g9IogGCc=Ru1Bj})bnXtN$o7X
      zkfu&*Ptr?E20wcLBwf1govW~<<&suN>X5WjQm3R<lDZ_Vm9$>cMoDo=DM>AoGMwV0
      zH1!Z>t!>oy)VTi3JZ??$1~ByYn6Lty^$1K1>2XU@j6O}%RoaS1gfliKw0HD>ZXb+o
      z^Rx={i?iL)(|hOXPMLZo9ke-f*MHFUb0Dq5Rbp6$ZD?4W63~*+8VC)bRGr=oy`@fX
      zg`TO?mqEuUL+<2B)MrO@u8hvk=v-A7w;Fm^oxTS8+B&@(`uaLO3w>jqz6lI?2goth
      zyoI*HvJHmw+D;9zjJ!d8g+?Q17UITsvyd=$n1!UV(=141ms!XpjNSMqjY0D#+Ea6W
      zke!FwInT}q*!hrl9?{N+;XIaUVdt1}#6-kVj>vO_$q^?w;-ro!=!nz!O5+K9n~XE~
      zrVI<;W}^ruRb!fFCYzbgF_XK<<ZGs<G*ekKRW#Fi&9tDIo(0o|c$H`k6RiPoG1Gd3
      zUM$3bzYP2p;6KtHl-L*{uWDorNIXJb(})6+h>+Jca)B=vA#Z5pA`lrNZ*s=fCf6Au
      zZ&hpHnj_?GM!FfPMZLpFmXW3id6$t*jHDvuJw_xW%@OiGBh8GYBjf`{S{Z4HkPjJI
      zW}*d`f6#;SF}|lTl0-YGk9I=dMc>kH`jZCf7S?To4v0={+bwiR3}M-h(}*~WT^rD0
      zaS5yT3XO^HXk1*UBjR`L*+1y0_zP?H7Udfnz<5Px;s113YePsmocQNQ@hv~oC;yg_
      o&|ozrU3H+(=yM(X1$`L>_ea5K^yTlD#Ga^&ZCs4~N_&0%4=;%6k^lez
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_CH.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_CH.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d38b8e3add33630045c41326cdcd333f802a0c3
      GIT binary patch
      literal 2263
      zcwUWFTXz#x6yB$4lG7w@)1j1t1&gUd5fTs)vGoFh0+JSCpcqhLIyr5pOlIn2Qmlwq
      zykAklyH7sIo0kXI!i6uqx%>_O1ed=+{PxMD#x7jThn%zbxA*?`KKtxB`Sq`BzYx(j
      z`Z`H%f;P-}^}?LBU=>{7wp>*x>FuC5?FUsWbbRmhba1+OAW7|l2DD>6blgJ8sf9;X
      z&94Wx+Ee!`t`d~3DBG!8uBqm&zzY39kWp%ITi#5;3<JlT84=W3^u1bWdEunx)|I3V
      zL1MF@o|(X}&%<RYUQ$L73Cei&>XZt`bV-uB1;umuTrLNyd4&SJuxT;`wdL*<B+n^z
      zwqh;T1g$uA%NlC4eh{8m@=9xc-1ov+Xo+eh#I5Rl6??Zf@3lhJ%ygTeRHc$193RgQ
      zE-s?_iki0SZg|Y8Mm~bN?0OI=&t5bat5d!!>2^V}u^^AWI9})$ms#(CwRm8xC9ata
      zCt5c&nA?mq<F_@xb?eB`;FeY$N48NjT7hbNPqm);@YI~LL!4QT+OFd{;X}x?ad=Wt
      zd(p3`B%$}&<t>tgDrE)N>DjZmBP58sxMxSwJrJu_z~a5|sp19##oB!^%&9ty_rtKD
      zyh_9H06JQ;s*pQyo1+<8LA{c=3?z{B2n29T+5-X1lJ>HoAfOpBP)a%g0fdqsg#a!l
      zDrIOT6HTy_1>0jd()5k13zCikvKByaOjDwUNp|8Sk81(QNqAfSjh`hw!JKMd(o+z8
      z8x21L!Sg{h1*gi5t2XDWWT=nxO$$mQ--5#x&f=t;Gtk-`+;M`MB$tN=DDKq*h>XZR
      z&yjV<bro_1?1B6cF)JM?AXL?<0L@;28_Mvt@(dE7l*sffJh>jNa#7D^XchIc^n8Z;
      zsW(Y4E}Qx2{*(0bzwWsKOIjgmrKCPdt0eVHS}kcn(ppJ_l5&#bl2Vd7C1p9qhZ(wy
      zHsEt8Ii8x(ALTJ?iobnBzZ;WQ;IJNniBUanDT>i28M;ivXhb;cU_ysW|MT6!*rsPx
      zSX`RzzKz4Tp6-;XAEPmcGY|X+U7iDJJ&qE?BiN0G#VG+T39XIL07|v!Y3Q9TdKdI;
      zi{1krqYSy9CsFTx(Y`9$`=fnzOWYdh1IzNPZPC|3A8gUrL(jG7Ltwx?K#rm2jWi6)
      zCK%3XJGI5K@;cpJZa21=<+xEW%L!wfSxy?;&9XFhnB{E3*oif1>@t6(k*4#5?EEl0
      z?`G#BJMYuZ`?d2yI3LP(vUAKBHxY4|BX)Dd5sol9;<%1Dp(DyzrEv;thw&uVlyMqs
      z+OWW6H<=VO%`lV0OlOyvs+!5yOiyd3nr5nNrgNHU5lrXf4Wcv?r2$;Xc3r0z$}!+C
      z0e=Pf4>SVK_6WJCkwZY@5%Q`=Y#@mUc}*kdfg~g3b&Xu$+9Ko)&bY?pIwR!GMh#qZ
      zguKPbI!2mNZ!@x<k&Xy?hmj#hQW5elBa)GHguJ)JoQaV48R=rAGeSOKq{l=HE`6^D
      z<s+;oF_J{vX$$Ruypz76UGxWy&`rFu3EC(6@yKqX{bCev>;xSYXYj-ZbVyvJlDI<S
      z;#<70*XXeL4bSWEbVU4#$Mq%^+uFeRvChJO(U+S;NCoWp*QWTUpXkazWh6A%2+1@Y
      i=u`Sk2Y*gqM8Wwe7>&O4-Llx@EwSxOv0rMhul@$v8t1bB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_FR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_FR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9f94c3259d0fb81474710ef1c2d5e2bad9fa447
      GIT binary patch
      literal 2261
      zcwUWFTXPgu5bl%B?w;&!l4S@XU_fwD2*Pd<5i#)sfgrL0$v|*Hg~{wmGGQ)pb~YFh
      zuXw+rf_I;MkT)+6R$<`_Z<fEopJ4e5#IMiJ#wCSSrYh%jf8G6cpFTZjfBXCDuSB$s
      zzDZM?ppDahy)<jhTO~KJEmxJwdOP4x1)*m}PT-%K3QvuWr>R{~zjmxgj$0}_wP;+`
      zf_iAHJ$1k8Dna?GvK`NIO*LnQRuqJSjB<n9@~2B?6gvL&kf6?yz^_G?A5B<pT}kQ?
      zB(?}zHXR1_Ik+swOUel%K{>zfO{#EImn5lMP_j@g6bhi4Qz*cXnkGX~Tj5SY@~l#4
      zs@6hH(DIYFtf4j&gwgRuudLR`0zaC8mhxgDX?b%V_HJ$7YelM=={7-`YPC2vR$Raz
      zs;{aktL{ce9WV9~)MeMhQ2F+Px!_F(uB6*>(ouB9@gsL+iR}(SiP7=VmZ)YboM&xe
      z3(kxG!Q$ZHx(!2HZ`N^O8x^AwsI}*0>xmCf&MG^?iRG~EI=&M<ggl!DCIq#Q1XYzL
      zbUwedL6V9HsNynxdj>Z&h)%e;Wk=FI5Irko@m~0N=zpkKyAOt0RcG;j80M8<Z5SRv
      zKWml;xdV4OoTKH`BZ<pE0!fcR0Jo$)5Wp;HFAE9+nvnpdq(>ouP|{-%z{N!69IarY
      zL+oV1_Bf6-b^Xe`q;WvjJP3|zO4KmHPMqWkEdV(IZ!5U|i=-!+Q_V?w8bV;B;in<^
      z0f;8yRK0%1=6uy0^>V%`L22ZhceuhCoRo8hTAPJCPEeEN^5_7?z4`!=5xM6$vhKL9
      zLXMC<kRKu@r2_>-%9{+)?0LAMj6f^TA^}Q?P0zuT>(MF~^?Z(2QV&Zn<fxB&()7}j
      ziI49;O|RT^&kb18a!D&B^-5YPsZY`>N&S-6NLnYUASo#+BdJqTo>P33qq}G$K8CX6
      zt3&#eJZeqymv87-W5Nm@)?+X=tj8@w3HmfgmuLWuh-Ms2=s@{@zB(A&?6itT7H7M6
      z)4;8#J7emnXw>1%{r^E%<Um@Fqa^SIcB5fQN<m9QYa=v(GA()*dS{E?1wG%QFN2Oz
      zhTO-KsQ2D@Um5Rx@xH1hZZ-7&C3)7g=xd>`Yth$3FSO_zz<_&zoIuT+XaJVYFr3wP
      zYD?thHM+afZfrFxNuy*|QpPs3k~X%R6>01+EBTbM6KmSoW&T7%P3H&M`C)e6&CVn2
      zyiYst*Uksvd@$e1&Ix18M8si^*v%0~IKt$JV>;rvj;LUj#!0Ll##2}`#wn~>!vd4t
      zWKzsD%}fq6omph^G*h6Np3zJ-%~aP+XEoCTn9d~|L|G=v0yv-Vx<)Tn62M;u{wnYv
      zX$YL{F>*m82Z1DG<TZ`hKvFUCx<<|cNyo?=8adCk#mJkSaka^H#>iWZ8o1^dd7F{7
      zj5MR(VPric9WnAQBO4gW#K?P$NJg?T^8O-oE=E3Jq>GWx82ONqWhPp1@drI9A7ed%
      zktEtqTWJU6o%Aj3qCaVfZs3(o(LT|KM|Lyq7sGgC577Z}8c%FU2gL;{i_0`7zQg-^
      zl@5#F@x1;)N5o%vTyM}wTN@ZZ(OLKh`ciWUse~QB*_7P;GhP0-jFbi&A-RSFeMX<_
      d;4kRQIJg)GqtO??UlMz)CANJr_ABl6^*_E3=l1{r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_LU.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_fr_LU.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d85f9c12833a09cba7612e46868d97074c02f1e2
      GIT binary patch
      literal 2264
      zcwUWFTXPgu5bl%B?w;&!!ZL&qFd(=n1YtLbh?sbRKoHr0FeI>`!esU&nJ||)I~$CM
      zc)|M>6}<c8gS>fpunG%bc(eQs{shZkAbx#zHZCcwGF3UJ`|Iwn`}FBK``h2wekG!<
      z^i7)D1Z|k|>!lfM&MLWqZMmvc*4uu6G6+2@asvO<WO%APmZo+=ecG`eIc}-!)S@G*
      z7Suyq?XLS(R|(2jmF;+zYpPi*w4xvsWRx4+mOoW8qtNlE1_gBv2YxNG{Ak>A>q=6G
      zAhB7{(y1`0&%$LPUQ$jF3Cj6(Z$gD5x+F<U1SJc_LZJYvS%m`psA)0;wH59bB+n{!
      zrfSXC1T8yx+Zt-qK^Prd@XBg^H1MNoXeloil9o5?VPB%nd#p$`Gu<I5Q>_+9M~n0L
      zL-kcPY1Q56sN=;xg1YQ_7%JbMH|M>Hz?F2Tp!SjS*l{$*@gsM5k@+q`iSpP;OJFk_
      zj<lw*8ArzdKyhGT?fStjx9T{vjiS*Dl-qr>_0WeVW|SS_&~nIj9p8x_L7t8M<0xi0
      zsH!xf`T4~?l2k-M75C}e)3~GoG{eP3JCg2$=vg6)_ru4-6@-el2Vj^{brv6lVNUtg
      zhT$Q!v}SpbJ8+#tIa)^DlDG^ckn|V?a7)?^0nC#2u%IBI83|BIdK>}>B|QNFTufBX
      z(Q+m_$W9h)PvS_EH?Gb}Is(X=1Hn;Ei5kY)iIW`H0+18%wt^eKNP3Dn)vTmvAOtoV
      zej0)wfM^0v)f-oB&R5M*59gZ{lt#Wehbx@MNjYbzwHdhM1T{%6PY+Pss}B$vk$aXS
      z>yGOx<OtaV`5|IhI#58QyonIao`W082(<DX5}=gW^gKMd9<6dwFXU(ib+hzhj(Vv(
      zO)o7P`uP6S^vW&w+<+x5leAn?kE9indL^xt)F)}Rq_vU?l9G}#k~$^jImJggx`#I4
      zdnh};I;g+Oqt*m}{Dyuw#;wp{JqA-ldfYOUpigsjnflR)XxhPq_Lu+X!-KKSPN`^k
      zVYYiV_TPTGGp2rxMjX!E_aAgc4y1KBN&>Io5;QDHDQIbEZG;9;rbW*}?`+Y#pyylk
      zrO+|Tkb8L&_1+WjE8@L3-dDE7t%BaSD9`E^eGT-rE&4j>g%*817;q1e6R3G3^~16W
      zhO^pEZHc_RPWM*YjV)#+X_U-L%GhdF(#AHkB8}~4C7&{OU`-o4&7Wwn>HIJ|Kg!O#
      z*m;<p_iE>T+Ic^m59B-9Ibn>Nh&aR%yEx)7N0=NjrX!B&hzeF|oW$B;JdHJDoWhzl
      zEHK$kCdEus%;YfBnFS_KGX<LIS<O__Om)q4Rx{0m>0Giwlx3nUfb;pT>vW-#0RA%Y
      zSAqXXgWznBk&7BR03;bBuW7^vl8TYnHF6F}I!4~m$a$_UM&9I%t4yvlM&4@Fz%|Fn
      z+l;JXq#5-NBkLIHh>>?0S<gr&M&4sYGLnsv_ZOIRG4cT;U5s?b$cKz9HPM1gKj=aE
      z80!g)B+)k7Lfawlpl@j>{Yis#6R&KF_KIFSvYTk17{VKSkoJqycw$33ATCl_T%l3%
      z9p2Y#bV&S;=k*UdEdIjddXt9R+Q9gU&ceUZmzzUKCG7awrsSrd>B_%lq%_zF$u%74
      hGx}Tye?ecy!NoWjjlT5#qS&#P*!G3kue8_K{{Smo=@$S1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ga_IE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ga_IE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49406bdd3c75db6ce6a7b10395d2c43f93d09c5e
      GIT binary patch
      literal 2367
      zcwUWFTXR!Y6kfY&lHD{d;ZRD!B874*mj*;cY(XJyv62+wa5135PI5>NB<IwV6R;v)
      z@qR@G@6Is#AP>%{JUG)Cd@yg0zrmm2_zT2u?VOa*!5JU2_gdds-?!FY`;y=Pnf;ZB
      zw$e9IY7?}s=+u&D)H#(byLnZ%l4(6nI;UN)qI}zRP8QY4$?+()3+mT_HQz2L({|NA
      zWL4dom$&xToI=?WlqgtvyQ0dbHLX15yPhB;-OyG}F=_gq?G#4@b){UV>MO@Ts>(G>
      zQimWhENEfTb8FKGnd3`}<I^TVai><vS>A-MNzwvn3~m}6<lmNI%<!izRO0x}5JOOG
      zE@X`$dET<l7Sv2t(4rG}Evi~_J^$ETRHybcuH%>BMJj<2R+Z@r<^}rmnDVV=#(R*Y
      zP#Df+hG%B5n1Xd$)yn>1yD}GXuOJfCov(SG<>Y6~nM%$rOIj(Y?YD2yE8FqQsd*n)
      z3kpq+Ki)!Xs;$F*tiIiaEn7x5-{GR1Jc>q7P;SqO)<qx4ow4#h7A;5fW!tg+-N>?j
      z=%}Fflv}W(gxyHY?~x=(c8%4q4~)5$lB4WmNz#3SIv7gVl<i2mA6;iRQ@>_=sPTb-
      zk*Z%;1?6(cgN+d71^z<;rL+ew4#OyRn|)LHC1ra~2U@l}PK&5V(jzF4lS|qQ3pv3b
      z!{#*8O<;d?DoKyR)M+F=1~U*(gT}%vIu)nIEQ;QS##!kQ;wCJWgZ$x!sOKw5=t^jh
      zos;wg$a^h?O*xLpjAi?Xd=lnlebxs0G}lz0h0-aePt<R4r8(GRfnCt)**Xnt$}N|<
      zkW!p_xsWr0q9}ydBB=~V7vrG>2RnrlJga^U>eJYqO#O!eM-6Z}zS2v>Ws7olRRzJv
      zdC73}fX=K~@f;52m}PsGDwJB_XR$?r8kgpP{oHMcYg9$9^7%L|p&qtgh*KZ+MCqk@
      zS1CAEQF`T$)6;+@Et0fYQm>>XlKLbqmDDe3g``!I)<_CVib?8{l;9K}#c4ea;g+Sb
      zwkdu0533x%F@}Dhjw;V)KL8`6`Vhw`M4!g#3T;Gp{gRDyKa~ET?;9>dXVLOgb2p}U
      z{m|X-Ow81e-h|DW`~O33n2EF!O9|nzU4Vv#DFQDFuZ_?EinaKi@Vi?4Zup57e<6Ha
      z0N8zeX7$_~%u9l~FPN9M@Rq^vZ}FGIU(w<Zz+ctk55iy5;;)4Q_5pSXHE*De__7Hf
      z&g<{g7D~vQv^m>uB+YEt*lK1Y#x^q>HMW~sY3wkwiHNZiW7HTiZ_uu0@WULuhl5ib
      zJkG)Ubnv7O-jCo+qKkt=#sL$IgUm3QafBJin32_t6Poc9MroYH*kLG)F(Z$$)3Bga
      zY%1BTbaqau!b<LZrDwEKRV&rB(s`{k1EmY$hR|{rS`Of1qWdPjm<<7c8ThNff2Lhf
      zZx4`58p!|&2gqw0DRKn?^14PY0Eq_38ydL?L<Y#4oN<}Sbq2^=jT*S-0C}5{0Y;jv
      zcNiIDq$5DyWn?WQu>g6G5y?nrfV|I0CnNCy`GApbM!EvzLq-;wXu;*5^g;O;<8d5G
      zqHVO9w!_{*-_cI`i$>@cp6CdTi#|Nh8)%;x#oIhZlj0N}W{>uZOL	Qbv4FQ(~45
      zh(GWm|49eM-*}L3QL3#Cil68#{O@_Cc?c<q8Goo0-tY@uy<J8`gAGc&5kQ~O=bHQl
      beHoC412P(Y`Nw(OBQ4zaIqp|F>g#_2RJ{@P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_gd_GB.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_gd_GB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..783ca689b9864e87beaadb72fdf4531be5e8d228
      GIT binary patch
      literal 2380
      zcwUWFTXz#x6yDP`$!VIFFqBfTNTJ*cv;h$jTTt52iX^QtPz<PWk_^efWTs9gV7(!N
      z_xlZ0yj0=A2Okt4T(A~C*f*EI!Jpvr7l_|JnUv6lYx$5lXMbn!Z+~Z>b9R3J=f<x@
      zw1uulsY#=CMW>oPDNoC!?dGLzCev!z>zr`Cvh*$2IaVwj8yk*Nvqs&@vFclPGHq4-
      z17^jodU<oW>J)5KqeQ{XTV-h*=9KiL?|K^P=^D3mib=!wET=fAQQL^?RD9|9lhUr5
      zf?71v1~gh&^xWzcT;}2h#j&(WqqtKo=S*)@X%e&m9KD-*d-=C{03+-v6G|Mv?xJfH
      zn{!#CkvL<TrwVeqqS2zGcNJABxt@P`&Z||~8Q1Ykup;GP5|-tuGR6gJIVF9wp79<e
      zDHM{KOmcb}n<<zlWYzW$TID&9do?1B+VfS<GoAdjF<s8NwxE?7HT`x4wXz)F9+|he
      zTBFd|@Z$|(b+&alkJY!UuzB-f{~ade<RKb0f!vOxjhmjxoiy`4HZ6wow&hs<E@WBX
      zH>pwch+8nDgwsgOuaO{7##2^d_FB2*NGo3wbe~4ilx0_?<p{bTd?~9uJ7al}_kcz%
      zDJyTuf?9k~nbIprm(7QiZ;1_DfFYDSWmTkKl9uO~EvVA2I4z<ML61Naa=L<s)y%F6
      zN<l3W2^v+Cyr4(bn#6^9OwCGCP+H9@lG(=Nw3yjY$Iz$**#R!A39p0j%FNCna*`n{
      zC+G==O0zS9jsTh{W&}NniCsmar?Hlvy^b9m2V_)nLOB*8p{BqHPfl>=+3PvZT#8dC
      zXFiD=w!7Se<d*H5l8a~KitcuLAj9({7#-9EF02Oin+jH~oNe-|$M(7&7G@O@?W1N`
      z_xpkT;8p~kt^*KS;!-?|;{w2PWu+h?^|>12_d~d^j^%|~7U<{F3wmkJLm}{ZnT5jx
      z`zhJbUEp245~n59!Lti->Y|P)y*BS%1y?LeZ`^T}YOtV1f))$v6tqN8m!PGBx&^He
      zv`Ww#L195LL2ZH(oZ_=Mt*1Ubxil`zxM~CkWsVz;uA0@P^enamFfycWbc{muRh%x<
      zMx2IUvhWD{(*LvB;bpWIO@CzW`E;)DyZZx*8L9)0TAaE2Kj;QHkXB+VA#~maC|H;x
      zu%fV<2nC>6gWU?dt-)@GooKKZ!p76Uyo)cj8asn=NicQ=<I;w>Ww5&&?B%dmG}t|`
      zS2ftZu-7!$Yr%kXz&r%a8)zd|Heun6TBoK^LfoYOY_py;vSEFTk&WnEjciokW@LrF
      z-N+^)`VM@f`k?VM?W{XL%+9;nd4!$!u=AL5-m9GV!8wy?W9N`QVIX2ZM;IJ&h$9Yj
      zL{>!{RS{3&EA(Udw&)Vyn4ZVCRX4#@tTS26bc&hE%;YlDGt5*`OjX5nMlnq*rsoyY
      zi;C$in9hZ3M9Z0IIe_zt_M7x-HU#{2;BNxIMmwRiIY8c0NCrqaK;BkJk@pfH?<nLP
      zkZ6FstB~_RM1Z`<8J8KXGeF+2X<*F(@&O|~jMSq(WTcmomH_#Pk+qD(0_0;x1S72h
      z@(ClYjKl-vQ%2euX$z2xj4U)zf=fTCi}E?XM{p&Hwo*TB!+bkkr5*Ga4bm+%?+ESD
      zy3o5f(3m!a);&&pwc}{q9_`aEplx5IjP^Z^Yd2^@`vWcePuj2jjgEbbMw*(y_=U>C
      zf2Eh}mynVe@$X9E4ZqNrw`D{WSPO~Q9O!HMMg`B%w?Xhg5R5`!`f*<Dp@!Jzx!CWN
      H*Oh+(?{Eok
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_gl_ES.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_gl_ES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02d23282fa2bacc8717c2c73609e554c2d063062
      GIT binary patch
      literal 2265
      zcwUWFTXz#x6yB$4lG7$FVJM|w!D3J-LIWZqwq8nUv68gFKp~*QBsru5lbJf10gEDD
      z@O~Es@0YcF&^OTs*J3Sv;mzf5@F%$Z1>(0)CN*~9T0UgX{=T#KxA)nz=j7MFuKhwp
      zTj}d0wFz2Zb;H~#>x`9iyt3t}TwX7e?n%$DS%K}j$E(iqaWhHng8H>%7}!oOZ`XqZ
      zs_un;S?vnlilYQ&DynSPEXP!HmTv`~FUZI@v@N%qGXvjttHXl2#yqzkSZ*+5IiZr&
      zAxLZzw6yAb;T&8R;w7a8k)X62)=J8s&?QM)A}F36%4V~Wno}si4VqhqptkItg5+7H
      zPFJk?x}aspZdpTp*7JkI3tlOW3!WRy0wrpZ5w~h{HLOeY_HHXs%}lo;Nu`o26ms+P
      zsJ)_2TA>phv}=)vpzd<$`^qiPoAb4j=SaF;P;6gdp)0l<IAe=;@4)W3xvwRznF{Aw
      zwQeB02`9#H%h2%VR)jjrs1{8?oju1|Pdi;YrOE+LD@V$X?b^XZ$gyE?Mo{~hS5Zkq
      z*E5ToBMFkp-Chm0Cus|u^PyXpbPxJcu>3&5zE@C3;l}rV+4C9RhfW>w&ainuyk?ZE
      z=?5TW-uR|uRlE+o#*s8FqaI0I1@t970t4ETcENzOq}|BIx{@Y9K~mDAFd!)DG3>D#
      zOXbtFoTaAN%fcr57MoBdNe5tzmLPCYYub|dxJSYpS0x=`?-0E{%1(T`$6=TXJ$@3#
      zbO_@Fj494r;wn{{vsKd6%h^uiJjkYOAEC2oD>C{GbP6573C_WEV4?yWd0ak@WrLjK
      z4xtE`zBU~PCZ;5TI_d%JGtfgRs#apXr;!Tvgc_W~7HW#No&`c-8gX^crD+BAu=RYJ
      z`lu&KFD{z;XbzHe@n7$|K}%XDX}P3cNh>7vNm?nXU(#wx1Cp|m;*vTgbxF!_iVxFt
      z7p=z!k+)qnr9aDqR*AoUL*E=TmTxnT$i#>qyH1MHCuzDugJ?)FYhzLe^Z)ba!T6@C
      zDi~Xs@!k!Cx1RD&Q(s3DHfQet54j-@q_sFo4A<ZiG%QXDpd?Tmp#jv{f>Xd<Ew~#v
      z(}I@*W2RyE@j&XeH(FOjYhSdkY>8V1+`lN#>K42Pc%TKZ1<tnMbx^>2fE`248)y(a
      z8?kX#?^9bWBd^ol#dc$}S&SPwvzRcpn#H8C%`8e|yIIU6j2(C;jh*ICG~9H4kewf9
      z=TUYZW9M=0yhl4v!g+6|i=AUe!9>I~M~rgBevU9X;*gFwtRsqeO5+%w9mW%Qb{fa=
      zOc@rG%1tH3N>x^}S?M$@)mX{XN>6E}x>gFc(pjxEua%yG()oBpD8)i45EnAt*Xe~~
      z4E#&rUk3jp4WqjDh<Qabd%?sb=2gv<!6YK)HO-s{lZ=?xHFJSa88L5g##JWQ88L4*
      zYT%k9<}GH{Fw=~Bo0+xDbVSTM%&cRkGh*IlMlzF%nD-Wx(-HGNGu_N|Ma&1xEH%-B
      zOIP)ve1zvwj3m)E+DzMF@1SpKC;dUgbQ9NYg2qK3F58W?M~vXEouWx`0#~h1d&Nb{
      zi_26H-{G3QM$_Uq+_JyZe(@(R*_$-h)&|APIt%|vUug~@<*?#^o8lXPrjP$ABcaJg
      lNV?%bpVDVK_;dOq3Lc7r(dbJ*EQ&qU65GBI`=$2!>TgGA<y`;(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_gv_GB.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_gv_GB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d8d888c205366896d7f003b1e235e68b31993c4
      GIT binary patch
      literal 2369
      zcwUWFTXz#x82wJuB&TUw!ca=VB874*kOo9VY(Z&(LP^SH3K&pfnw%yBlbJf1DMm!R
      z;QfjU-hI&rAH6)d7Hi>yk1l_MKf&cM5cfHmNrx_6%ZJQ4d!O&yXU{j^Ir;sc+rJXg
      z4*DiZZHzWmY(IC=m^X5kQ!*@(%d6ptJ?pqN!!sTGd}aRp#8{Hr8TG3`-!rXT-mH5k
      zMcwh;k{I*tvLzU0%A#b}3`-YthHH3^%Sg*NwGF$H(>>R;D<h1$#vQxv8Mb%YuzbO(
      zgAp5Mw6x+n{v1MD`JB>N+Qukt`?VS29#Wn-ErG`1w!uO9+dhmDcuv5H?S&y4qf{$o
      z10#M}h)ZRoQD?O5+<i^etB&iPX+?D^TySi!3Y4e?lekfvt6^NCmJb-72zPt{o0QAB
      zLLt{^;AP5U*6=NF+N`xA9%Mv}x=X(63cJ+M8?_n7;<T1g+i%~ZR;KM)<BJy8Gm1@&
      z9gn1iYMbyq)-P0H`}UFSJrH(EFpZkPZqK>sOCOuLC`uk)nva$&(>A?**k$w3X-4hi
      zPFW-gUn8@)Mx3PNq$oR%E%4PIVw9W|R#libr-v1&84VZC9#H_F!@$a;O;A>0k0}M2
      zA{v}VQP)XPH(a{|b=jAuWz@sz33$OSoW|4yH8`LqHBN_MPzrN8+?*k5QY}_F<<+Dv
      zrKZxfTuL368)PfKKqsAqkLj#|8p8WD778$H!!6!Av47rmP3-g}g2o)fDmP&EEX)?N
      zvc+Y}Q_^}1J;SIY?;AEwfegK%LT4SnVPdNp6&j+lTpK>@`0AZ!kysd>axBX%U6Nj_
      zY3h|;FQNtUMy_aNE26oHg*KaZ>Q&RIRK3u;t?UYAcMfe@K$Tmz+y#-4^1_(V&-_A6
      zNIi$cQV?PwH2FN*O=7z-5OMlKnpRMcoV}Q)KI%!*ON$Ou&{s)%<(~d&(wvrYTF$AL
      z(+W;~oK|w`=d^~?I!+rn#W|%ob#cnbEj~)qW*R~P^5~T*b^51`8F|ZS>V`UPxTeGb
      znHW`VoT3<gnx>ny75(8=O?3WH{(s(ZI1Zf^;f=S>Oz-BQ`=6SWuCBd9rrf#zKjemG
      zBCW-%#Bkj%LBZmb07?S25eh)52<`;#ir{YGOaw0l#_7PkPqwxidxLRBF!lxG%1GWS
      z;Qk0+4ZJ3T2Y}Z_@F4Jp2;K+<d<V>9@Vte#Vr3f^E~|BFi)Hv7$`;$ToL-D;JM>~g
      z+o>0m+Ah7wwcUC#lhF3ynbbz~pJ{Ix{J0F>FN4Qr@Ie_op@NU7;G+mGWV&Q<Ogp9{
      z<Alu6WyUF)aYkkoRmM4$@id-XJCA3FX5g99N_ci^0!o!o$&^Z$T1vH+lB1NKjVRTX
      zlCP95E2RdMuEd){tEJFt5LYwZcj#I%2L5I6uY&)H_CmcqV6H2s045$VuPLS?9R$ql
      zin#(N88B}s<|-H-FmK8oSLxDcz`WJ;AUy}n+macOOqlhKWCkVE5isvcW}{?M0rQ?@
      zxMVs5=6%U@N+umJA4sNKGF<`lp=6foD8Y>%Rik{2=UKEQ(N4<JF3fk+ceIE8q7k}_
      z8$3Y=SsyO&Ei}PKaeYtG5q1HWw@XLab==*zsKCCbDR!HVu|IHe|4Ap<-?+5z(s)}N
      z6hBeB$p6oqVG~jgBmPn;zU3FXwO}Km$Yx5q89<-W=PLON`Z7o!4w6ym8$T?{Jr&7q
      LZ{>caqQ3qY_y-2}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_he_IL.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_he_IL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdf9faa681316326e06d7d52007a0b0cf3f1c04b
      GIT binary patch
      literal 2395
      zcwUWETXz#x6yDP`$!VIFFhD6-pirQcOH)KdXhES|tR&?!Pz<OrO@?G3nbc$gR>d25
      zzqLRpm0B*Mf=^x^T#L2v2e^EnH-Cc5Um$+_WF~|zT+4@?v%l}`%Qrjc?BD;n_Ztzd
      zr`tiQQ>Zg-m7=HgGkP?ePwH7C8k5_AbuwSb>9(1-j%SSH1F<00E7T?(OSYMf#>}F9
      z&?x3hg`}~gWTmo(LXnh_G;?}ZGe-1+Zs!XMsj*6K-AYF_yI@-BUWJ<a^H$N;Eqh4M
      zmJC4+3Mt(R%}y8cr4hJP;{}Crv{s?8Rmu$;h22t<pjpV#v9_awe?8sUfkzA|v24#p
      zRVY+-S)q_PYZ#|f`e;$1ImaF=s+h?a>?2jLMv3Ej%gz7=a<1Xmb0azIv*htk-8Q_6
      zPoPLD6^+NEqoeqklyOooW$i;|uIjNE9+}LR+?Hayu26HbR45o$a#S154d=6hmMT>5
      z+;t|<HPf=Q{WFf2E94u9X*Gdf-cE%UFK>U?ke;62N8vgYPT~X5A4s2jthNFBhEEwu
      z8x0VB$*gIa_BPa6)ine${rQv;B>Xdxnf(&fgZ?^qoG}P4JJ$t0i5|he;Y<p8iqGyk
      zQ_dt-;HN9T<G{BVKf`#!nfA`Npg3C<)K|$g?)=a|3T+G19GWZWIjC~RItA@uV;sg#
      zHZH>0&Bi4d&$DqE#tUqeVZ_+D+sTOr!!(Z*?dSB95Ly;=knP(jbw|)4wx=QUTR}r?
      zkKqLTixqy1r5&xrmYo}dUh?cIL9bN&%g#kXC)mD;*sFquJ^p(^DYjA785eYt?Mu#g
      z&NM5_gsFv<o#M7gWr#uLEbe_poyS=0A$7qIbw{{yQV**ucxZ}|&Cya5em7ao8D^w1
      ze2@I**KnCC`oNVd-0SQmb$VWJa#g98F)My6O!HasI||ipj|+Ma`~EneTnJMu%?;8A
      zGoG1y%YyXLBe$tS3z{Qno}d;%^98jES|F%R&=Nt*1g#L{7ZeiIBq+iqu7+t9b>RiZ
      zOv@OQbK#Ia%=1T;vuj8%n2cRA&?hf-h<x;Qn6A+pTx>gI;vICw{^#t&<7iA9c7OE+
      zwXEuT{2K~sav<(DxpLcor0eEDT8dBcVGz$k!~7Hg3If#;8bF~M+z8xMgPVaPHF!2K
      zUI^?~zTk3iargP|-s<iPYT_0Gx7FZ9z)NayJMgj^+yT6z2Cqa0{132w(7c+~;AAZh
      z&dPJD^F_pcT9>F-qgukRuGbO)b%T}&svEV0P&a9bNI>0;HK_J#ztC3C`B`?}&d&Yp
      zyo;UpNaq3Rycf>#NE18z)O{Kv4se9V5r;YA2uCDj#4#E1GFG7;$J(IkSVL+OYolr)
      zQ`*a9a;DSOOu1^Nyv+2f%v6+_N;1<~nQ2sJdIOox`74Ru=0xv;I3H=gPwyvu;6DWa
      zG5DWpE3((S%qNnGgYmn}r;<st0+;zrGUvbqUFLJioChOZ<_oU4P-C4g^CdHjnDL^<
      zm}zImiyCL9gP8`GxyZ~)W<oA=i5bC6qsv@orjePj%aoaEW~Rwyt}ruOLklK;k{4wX
      z>rq@uq7Af;Hp1RSw`nu|MZNR@Q#?SslvWJ!)wD<H!wes!0p$cnc!BmR7cjxEP+Yk~
      zgUUVHr~HBO{U;qz{>JEjK>c-f$oQ44Lb!g{yh}(?><V`O>R)N<p^SheD<R>E15ML)
      e8GM6oy20IUFd9Aa<BZtDHL>;8*jv);n|}c#lVK$Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_hi_IN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_hi_IN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1455cf41094c645f1d424c5914dc27a575ef839c
      GIT binary patch
      literal 2533
      zcwVhlZF3V<6n<{gB)4f=!nTwGMFQciytE)9LJKP8#Y$6zKrx`gHd&H|WK+`(SbPBr
      z6%<jwC^L>Te%UI641+izGJ@Y7e}l8X!0{J|=bmiZrGqnmFdy!{=Q-y&_c>?pz4`6$
      z2af=($LC?x39QIjmF^SzDZRT;%IF27dw{2Y>v*YL)NQk59nG6Z`v=3Q7wF)?iftCU
      z2h34>zcE^>lrzTmij^%G0<o--F^hU3WsK-$-7b{{w1H}F-O6>R?6PU)dIXyKO4g{Y
      zTlSD%s2CCr0-{S`cCK8ij8MoFUm{AbH3CtqQXDqQyI7ONEP;l^nnYq<S0a(1d?N;_
      zu<V*!69}<;nSeZP7$>v(*r-6uk*A6o&6mpdp{b}wwv#2x&XW}?dW)c594XQ~i`_eP
      z+o<iffC}G9zj!tqPbQP`G5S$4S>w1~DcA?h;#A}_0+D=vOL5C+T#ug-XwFp1Wy8vh
      zrN)ZGrGms_+R$}wyOZP8In%NWeKP`<3IzHG_xq@|+$#jymd2}1S+}ld?ev;@kf9=|
      zKP12Ph`$MYhff$8o0=edGX>K!?QN8QW#^DUeP1bSgh5{=HnV3El(I$1bnd#&uRJ~?
      zGcNHgJMO!aS6t_o-|-x&V`$uUuDQ+~zwdb_-E=3<yUurh#|uol#*W)OPW!e9%yXT4
      zjDF!xUaiUT+`XLhp6gtHLSX|0wnfo`R*9GBV@wr6l<jPL+R5HQN5e0fpj{l|DJA<A
      z4w)86(5uw28M+7^V4^37RSZTkN2z#?PL%6>&7QlQ<(ve4U(I#Ccb#8q0;~7|4!%__
      zhLe9KF~q?Wu5-g{!{jAWEAcv?B?`VQahUFl+GUbzxi0aBx2Y0&hqF=4TMSNcvG+NZ
      zBXLY%jxtpf9hFVtH)$7%VRlW_%KV0tS6x|_RISKQInI=CIoo}|OLZh4MH^bx>O>TC
      zRc{Ic3%IQDTDjHl_%pAm4yz{N2KQ;&rLv4f(T>(I$}=v$cjm*epE%o9SfWK@jzpWp
      zT#0sxc@iBGizJpvERzUIL?oIdVrq+vQLIEK^=-hkj6r^(4(P+`CDiy89n#CDvOO@=
      z%U3Ld06vQ15?0eSv-2k1%FcoR_zKfiZOj>V-_(6>TiN;a8y!jU)4a=6J9qp`x-Lb;
      zVk#v-e+jdwVL^n*3X@d_Y5*cWyOHcBpWRG$%xBLgo30kE+tuObxy_sBdULxs&-3x-
      zlilI77m~fmXUEB2;<FQEFZ0>UDFb~6S_eq;Dy$~Y8giUwKk5Q8`4DT<^;&l-9n{vR
      z(jjd_Djn7~rqWW|luE}!+GZNVT2JanY^?>qsDfWs!F?)trwZQ9!TlV(hk}!_CKVje
      z_NIujPcc%8aZoW1DMp$ZN0{*@jZ!;GV}qvC7|}8`HfjcC%KdMd%wRRqNtLKbKq=Pz
      z5O1dggpU$lA^Z-uQucZeImJklkf4X0W+bN+c*r}9n1qBqWQ>s#A<{$6s2%60lui$M
      zS0M`(Qe(ZRkhnr>toId?P)LJ^e4vo!3W<2gS%pZ2G<wK6g)}N8>LKS9(yWjs4;fd;
      z>=d=&!Vi2<CTKiNM-te8wb)4OO>nRof1(GE>A??Sr)Z~Feie3$UV7aJ(JzkClU~Li
      zagiSJFOd}2F(@8julSvw?mw_k{6(+zWAxS4QN|B>7try$R6B&|rdiM&T=f$!Ps<1~
      lSfxa(0r(hKnEVN@dgLyTOpU&9dj|KQk6S;*{gk6V`v;gJ=Xd}B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_hr_HR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_hr_HR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0b17507e091747bda9be98dba62e4aa8bdea8cf
      GIT binary patch
      literal 2295
      zcwUWFTXR!Y6kfY&lHDXN;ZRD!f?!Z6LJA@xw%#aLo3_wXiUAc)l1+O;a!x%tCs@1y
      zig)l1igz6!eDw0*3^VYAFOI*#pWyfl#Bc4K)X>2hJJY?_`u1AiT6^tvR(|{Y>UAR8
      zLf^)zP0+e&Cm1MOb!(vF7OjdJ$mwmrbHeqimT$Yxu^I2!zKJ-s3+mH`fp1p^a(2z1
      zP&GI3ifU)zlqyP4x}=JB)vB0k*77Xh^#mEY2Djx*5177ZJJW-LI)`1S=39<GWmN(t
      zsY8(1C}{Dt=LWMdnfI5J5=4ShPEai<Z;wt%(jr08Og59rfNEAD0mpA18G_m}cMFoI
      zlsZ|m=4yhL9KCH0wHep*56@dAwLa=P{tUEOH58&&b+(Fqkv`sK`KlS|4nc`hDLXov
      zox>lpFR2q&Q1K`2YG@;<s~C8ma*A{2T(#g<B;AShMjVvIcKpilg2TH6MfOdMw74~6
      z;X<p{uFh=4mGQqhyLt2ArdxH~xQLWd2_)NnwDrp4g|aI8xUw87R&2-iA3>b;{ZoS4
      zhuxBj6H1?6SRqMSIE<-MSyjrGBm_tvaGg*;Dd|2G=@6cX<@*K2P0uc?5-cAO)N$j2
      z^6Q?@XAh!=2b2~cf{PgxT;J-zn+~OD33W^2Y!FA%V-OHR(oP7Vmb423cqQ#YuFNTE
      z9~-go1fK;3X3C{#DKm{RWS1o!fH0*{(FypC|9U-;Gzn<ZLwZweR0rpi5OVgcq$4^C
      zgr^{k@IyQUVIlz0acxtRRA3t)JSC3rxg7RHih4Ng3@(hY>c&OOflnEAo8lrtmsCM%
      zI0IcXJbWBU)V19#7p-m=w1O`shGewtbD6w`T!#@-a_jDCNzb8_NXtTrP9q3^f$pq@
      z%Duo;eo#^l?)4ImkYUYstRkm*Hbu**o28di)JxrQI=|qX2pc3$uierJ4Or3=NlPX5
      zNLnVTSJHAxeUes6S}iFfDJm%;sZ&y#LtIYLJ+uy=OU`!GnEq%dtpd*mL(i2d%d=Sz
      z!Pt=Q#{@;_vlLySe!Q1IW21%pbN_QLp|6wE${(I@{+{*yw{QQ1sfX1bn<MxA2VIsO
      zX$`It!H`^pf<-9?Ee@@XPykA_=t=0EEqWL9bc?<iI+`4EFSn@Pd%}HLxc7$p@)o}p
      z(EAp|S=pkmg1)*%UjseUqOS!5-T`t1Ij^UFoNU0sDSb|Dk+i%<_vYJ;O=do744C<t
      zvBk{Cjjd*08r#f#I%aIg8aH;BKht2-_+d7Fl#L%}<6$=5t&R6;<NYumNq4ew#27W<
      zG0q+b*~4UyL+o)_d*rppQLNH<8f%Af3~R!$uqKTnm{gN#nwe~7I>}5`W^$S7S<O__
      zOo3)PrJ3e5)AO3?MKGO-Hi(i;lmu`t-F1y#$wz>{3jB58KhYpkY!8t)G%^At8X|9M
      zL;;C~$XgmY!xsyYw>5GOhzyYn9C3xod4|ZvMh={Fh`htdDn^=K?=rH6k&X~~kCC;E
      zBtqnUMkFK25cy!9ITa!wGSbCJXNY{n$YK*Exb&lLl#j6<K}!;CrA@RA@^<=;cF><R
      zNH;NmW3*fJV*GBPy<!N%cZ~Ln<Cwi3jfnG<6PIaJe2>9<mBz*In7e<_LGc&H?oAqQ
      zYXjpaItu@UUuiZW4PeKwIz>19LZAMdMofbZmsG=mKBq6V^Oy8h=$s9mQRquQEbu+l
      N;@dv&`?a?E<{uLF@7(|Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_hu_HU.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_hu_HU.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..669990ff5526aead9c4d17fc7487dea01228655b
      GIT binary patch
      literal 2289
      zcwUWFTXR!Y7+oi6lHE2f;ZRD!f?!Z6(gs9CY`wH;N-w#To}`$f!fA471IbBEPr#~(
      zRlML8ML`iS4?g(l<-r+d@FnAm<8SaMIQ{~0?VZyaIyhrya`s+pf0wnt^X1ELf8YEC
      zz<zuafJeiwIlCG;ZJsqF#d6LpT9LR~#_Ut&O38EzW&6Z@^~7i<fF=#y%CPDbijjC>
      z(V4Oq%hgKG8mij)qNO2}w{nG&Sv0H#vtl~siUvJik8Rp>5yPnz?74moZPBv5=$N)M
      zZ5FGRK(hvIuZHz=m2!1~CaeAeK@HFlw5z3At1_Y_39QrL3-^V?VTM|;D8P1Bj&u#4
      z@ckOZIm<eeH<uPQY&d>b4U6;TigRq$s#W1c*>>iM{3UneGfN94uItqCu<2MUneNfh
      zvcyksBGH@AQ+?h#Wmbz$x=?a$G_>ccm5OEOmW-v+Y`G|KFXfG-S(bwB6r*bn@6+HN
      z&5Sg-t>of`w(Z;=-pecVyRUEGzW&}jF>josWLAP=JB~MAIW>FQ$~nBU7|0b1cENdq
      zd3N_qYiNp=^Hu;XeQ0fk1o|{IPY)Wk<*DT0qyRGnMr)VSBfnl2c!<6evEgBXhgmCQ
      zCN?!ZDDVhhRMe>5NY}1T@jD^#D4iy2my+oi!D9r*Oe!%nm~Q4f9SC9rIs~Xjn-+MA
      z%c#H*7upU}BEt%>8lI>jFiM^(#ucBE{_!9-O8+FO@xi3PBsU|mA%Q8XOHj7}E8SFE
      zp5$)2&W#H^&E0tIIvr-}ySTtJbREnb5qOT9)I?g~Bsa+vb<J`!9E-|~`5-!F##6iq
      zGiFqZdDfL#r|Rf5kxU&O%TRQYNTwf)j}h4{m6RY)7GwyDP-c}nh%3OZX{MBnF_V_?
      zEW3<_m`ukKLop_Jfgvfdc158ViKx;&dzpw*6_R>i31SmE<nGlVy3i58YioWDZfgW^
      z@s1X#(*hd=HVSkKY!c`a*euX3uvK8YKv=*h&?3+#5RxfA3E~0l;twTWu&t!}xu(ro
      zITds@QKrpGL1LHm52#LTfft_#aSc6u7tVZv&D#_IpA(54-8yGE(bcx^+}(5c#&0py
      zm>Ma_%-#PHu1`8*2e0DgcwEPV`QRrC5P84?prrw~61O$rcH&S2UQf*S=Dtg|saiYT
      zb(6bxx$EWzzb(YwYw~Puz}twoH{cz_;Rd{u5%?as_fqq2^zdX456-D`c)THT3lC<S
      z^j;(D(<4UKukSaq0sVlH75YIV8}jRi_zdWWji1oJV*I!?eo`6_O5><Bjw$0K%6N>%
      z6QMR~?9~$nJyO!+sPr(TM@D)aQyy96ahy*f1BIIPXZdW=Pw?5Qn~aoOiDb!0b23sv
      zMmi%Sm1Lx{iuAmSw5TFgRitw&(vphw5+j}W)dRK4K&>P$gxYUmIqN0=I{7!q|A>A{
      zY;u`56*ED`=Q3|8CP&8aGH)y9yu6spTvE&hGQwrvkr}rbQm4zjTh|~pyUcr%*(RA4
      zulFUhLo&@S^MPb`N~XnSK9r1*OsmUWUX2`dnU5sXE}1r$`B*aR4VK`_52{f<<#UED
      z2^>H#4sw48-{LU-L_cnG{`wKqx;TFK;D|QB@tee$c9QeAf(h*+;@VXtwC^~4Zz84r
      z&e{71j%t5#^xj6)<6*?BDvSK{zP8eYh;ZfqIedG5#%KS^@GG+J6095GI=)cOH}IwF
      Y+~+#8&{w`+<C|&lZCdsHN?CpV53+OR!vFvP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_id_ID.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_id_ID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f92f3f5b4ec039ed11f1dd3e15fc1e4b65882fb2
      GIT binary patch
      literal 2277
      zcwUWFYj+b>6y3LJlG`+G!%#}WB9HPaj|N0UY(b#~EHo{2co<M&k__oUG82;-u)Yw*
      z_xk~gZ(V-yqmK`+#aj3ST>b`sg3DhZ?t3!{p$pgYL*|~n?>YONd*;l|@BiHR4Zv1>
      z7e|}Gx}qDT&si6&bjizGB|AN-mkIZ*S1nt<<GH7u!s&_eINAjUv}52qrSzmz^Jnau
      z7gY21-oP!CY=Kn4&O2qRWZD(0YWZGOz?iISTW&FJ`c=m*jtF#(d2Y?OT>rRL3T%lE
      z0kKJ7L9yxu6}mLzC6e447D&25IcHb*>zX8bs4=){a8UiW409!}*sR3$8!m=GqUo|m
      zKwh-%^95_JCb00-U5l#CdR6~K)2mbCjOY5ZM6q&cM6GhA%(X{vk6XUo$aoKv6bk7~
      zCOtRD!xZeZR#5VfI_0Lvy#f&E&Ii@1?dIpqxpK}cNvsrTo2jr@j_a4k=54MPh)j&n
      zw1hR(*71F;zTJf_TShkD0a;F-MYAU?xA#=*p{H}_?7YuI%h7zvaUFj*v#cLFF3>*a
      z73?_J^3?nuNl-GDp;Zhd?qe%V+jU%t`$?O2$*Nfr4^U#p%F*FLIvldfPEFz=ng;`2
      z^r#B6a(>XkPV7!%A$lbqVfKtt+Dn6?664z7@%Pi9p2VXxC?|1{2E`;Mm5-HELQ_dB
      zQbLE-p2c|fD{|Oo*ij{Iagcbn$es#~#}s2b5+}6~ogdc*lRc??)ZxzP^c9I5jp_5O
      zyFg>gyC89v#<*QmS!a{zQ(4am#F;g)s#GnpsmxrhBbUczdYcM-!BH0AFb}_rc4p?j
      zudNcT3lw4Qnjf%XPYZM~zi+Fdmw1MItisdaIVNBw;noX8EJq_%(~C(gMz6A7N}?aV
      zaa@@<@Zr0U<JCLfah;Y}D6vSQPhzn|zr+%W0g2@jt0dM)L?sduT@opk;#v~xF~o0S
      z(sAu6{e>R2a_S~9^eu9nJy19#W21W15{TgQB(7s45AV-9oX(-i|9J~>WIKztKh~V<
      zzV$<QpX`LGucrNu$~^ENa>FVRD|wU%uf!fUEQ%OWoTv?K01_>@lent|cN3>t@B(7a
      zGwpsgj(Y72*Tv!5AFfMU;+7H*wBTjL%UkdY;#Dnpka$fCUP}eO2ig(Vya5}zvxyrQ
      z^*-7nDR~o{v+YLO%tno^W;SMQGqZ7HyP1{74l|pI89Vum8zbf~*wt`;SUK-e&ST1X
      zpK?B+ohP*OAv$MLUCKFPOq+~2q9RNcaZE*=P!U-jaY{!#!KXA%^Vwlod?t)MpPhzH
      zrD8+LQA+2PQduc^O{J%_QcWubTIr%zn$t?pYNh9?bSYXFTBd}Sk+_`dzKNH!5%RB)
      ze~tXl*u^^AL*{kOWXMEA<_*mh)mcL3P0d^)6AziUG;^7Z44Jo8#-*mJGi2VW*Pv<+
      znRgYlLNSe~_Y^azn2wNnUomSHlL(m)6eAVW88RO#rc*J=koib4-HPc7nU58-z+?-q
      z{-g)x6FyIJB!O+%jP0~{;Ct-EUl_qH-nlXC6aBn$H{gI6<&8Uq32}xOZWV{b72dbk
      zkP$y%O5DJ-_=A`2pEx4^=3RRWV{L6z{8VRA|8dtFLx?n2{_P>U;a7ZiyNsA7>mkXy
      i1HQnQI`}Jm9R?4F!EE%^ALqp$Yl&@d#(tx{zWo>H8sLTi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_it_CH.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_it_CH.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84a8630b1ac81093002f653c95d951af106a6b84
      GIT binary patch
      literal 2308
      zcwUWFTXz#x6yB$4lG8LT=}=0+0)<j&xilamVhbvP0@4;?pcqhLlANXkbE%U_v3LO#
      z@AnHR-gWulgAZOFT#L2v#W$C~!Jpvr7l_|JnUvUtYx$5l`}@w`-`;1>o|E7HzVQnY
      zZKbc1)Ffzq*{f#HTC-Nx@r#zDvSWHV=uP>7YlXJ&owmc%xdTaR7Sy91tD)^=$LvaY
      zR8{<HP*i)WUdd5{G9^{CUCS}mj1^d+9|$tWYTA}p&YEFhd*xw4Z8_hogq9ahT256-
      zY7rzh3F;^Zesu;e^YN0>*jg_r?N!}^3PyEJk`_UuZ&P0%|F#Ta1)fo;#0%>#hM?5E
      zOTQp_Ua4~>Ypx<_@u@o&RhjmK@Wi}VtH$HL7fu5u+{lPq?u?6dk>1{Gg{q$ME@Ui~
      zhI+@xhkEDcaGa8wvZ_va%y#E}Rth3P?Zs*kD6cqY&bbBOk+fP+Y%~}`yKFCXatn6X
      zVmEhSv>~o8ht8~A+k3kcTeb|Z?cLmnaquE4M`KWP=c&e%A1<6##SkZ#BSpvd>~J^o
      z3=B>RYR>s3l_b=YS=cB^ELrkh<=I6`(%piRPSsPTU%!)d54Kz@2y5tG^uxtV@tqpJ
      z54&aCpRJ+$fo7Gb0*yw{;fhtjJ8waMcBg4EbxL{=1tFEBJur|((q0(IAZe5h1>*n=
      zs7iVm1_ULI!GIPEO{8fF3q8V4ymu7FlqyI%2E&>`{G?XIxgOO*RY@mxGBA&^PZ`or
      zu%bf0&%p3Q7zG%fKP#!kCE7(!HkGC>PBx8}Aem=zRcCQbBrF6PIhY@me*vb46Qcmz
      z!Titgd|73E416;Qlu`Czhp<tJ!~87!m;Fiz`zb*!s3%lzAwc*ABt%ud2G1ZNDvP$B
      z<CkR@HR2jCrD-X3vh{qLx~VfsR~CE^(NrYqrGLHs8ZBwDq$QHNBrTQHEoqsg9!aYt
      zt&!9(DK04`sZCObQ(Q~a01e_(8M8e#p+DebR)H@HLtiqJR$w!Z$i#>q!W6~mlQdnY
      zjTppm+Q!@tj{VO|3d7u5R$*>_;=2Y0?>zG<Q{P;pHfQen54j-@q}4b|3^(Q?G%QXD
      zpd?Tep#hX?z^%Y-4Y(aR(||jGG1joVc`EhV6|GC7wL4muHN-6k?rFd)fLAr(Uf?wi
      zxDU9$0k4As-UI9yYTiH_v9k#q=k-1{#WM0HZO%6vSu-Cuwwn2bvCYgUjqPS$8avE<
      zCSmNvGieN)Khdtb^8@Vs5Ig7Cc^^CP*UksE^C38oXWG~~W*jyVafBms9AR?AagI2l
      zBl0@p6rR#}9M2ZxG@dEL!n4&VLP^z?%B*Cw(m7UgS;=RmC$&;VD^<19d95_3m7dm0
      z&qC>9ye71Qg;s#LoN2#FFXUt3Uj+X$_#bH(N^FjpS2QyYCLS@bYDR%cM9gcNxyT2L
      znAbIP8H|jWH#p;Rlk1F_H)}O;%@Ok!Gri2zquyqwkC~Q;d54*G%%mdbU1lURtr7Dc
      zGp)>|Bj$Z(+L>vKm=BogFwugmKj=aE5YLksNuq7EnYP2;LEq3$`jdv~7Ovg|?GxR&
      zc{k90F@lSCf)0u^xOW3OB(C7vy+-5WTbd9z=&<-5ckUl_MEr#-_ZH=vnxOcR&cc6y
      z*Xu(_S*-X^r1*xP>EqjFBs5tIN!J|cQ~FE?e@<US!9!6n8h!Qq1+m8)Vw>k<ztmn|
      F{R8{S^D+Pc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_it_IT.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_it_IT.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ba8a69446df212bb48e0d73aa23188c3e2a1ae7
      GIT binary patch
      literal 2280
      zcwUWFTXPge6h58J?sj%JVHrXQ7!X_(f{+Cf5fd*EE=D#)m=Ii0VRp8&8JJ6)oec&>
      zQ1N~j1@HRcgAYD<d9aEqeDTflH~14Qe}VX&-r2aOu*y`W`+Q%Y^PSV(XL^7A>)Ovm
      zw2i(>Q-`1pHNR0jZOvIlH?S>N6-#;=^QVK*vmz((Pdd@bvB@-b3L4OkjmU9}C8r)8
      zQT3n^+G<b3uewT5zN&1;vs_cnTA>vMp&+Bw)VBOu(TqaJuMG?89u53@WcksQ<u;V0
      zE<s|mpry4iXw1T8Azo5W5DCip4X>iY{kkMcO9UkgLxn;CQnLyL_)%-g5Y$n)U64Gh
      z)S0R^Ul+9O#7%3c&jev~Y{4t5@p#}zGe9XXHj<V%>tSA^m-kwcYGt}bP^MZfj*l1T
      z@rUZGYT9bJ(WK+WK7xAeMi?sJo;T;cO5jSm73GzNa4e1=xuc5~ZxfUln=G}3wQ^xY
      ztJbeAY{r)HzjbJMOFP1DZIp{sK%u=S+P6DVIj!sn+m$1>>-bLe0CH>`oD$SI8dO!9
      zaP0ZTrz43atAVF{$F?MG6_j=xzN-H6t)#oK<XK_VM0ev5JlsIwHt{`JtvSJ56Wt3m
      zr+gJ^bRUkjZdGuvUAWSb94(_>Nn8+8NqPtdvPjwk0~sXkWkbQ(4+E-_9)<xyNsqvQ
      z77LYfw48+wu@kR73S(MTBprca%_4qMD`H<$TBsrEF`W#|arUV}`f*lNIO`{21QCo=
      zF#KRnQiV%&Y))3qQ6DFp#*rYIZ*f&K*d`KILXA$NX;A(-m@amV0vs1T?sHRFHNA~l
      z*eIjs!^Ss~LM1Nq5&PGIdIWn;P#5ZnlvfE6{xlMzsz8HtNQlbfrDyrF99tu<@wptW
      zpkB5v=BS@~)AYikk09=fG+p}F?Kf#j%OowA)F)|$q<%>&B@IYgEorT!f~2IRjHGT!
      zc~0>`j_#lh_&!RGuMX+2bkeHuV_@iqWXcL1#xa>1(M_141bv*Nt2Bs4jAk74?O^GD
      zK168dY)wU@3mxCLaq#9npE338wBO;(1OFj6#DTO9TS?$mT!I5jQVJ*y)Im4^%CzAu
      zaCaN-0nWGKrNC%w*!|p<dhUzo74h63&nw&FRsjzz%Cou+uK`}$hSvcX+VFZP;2vNn
      zQ1eC_#L6ZtoYm{pk;u#IbZ5EK*kYEGM$s&%jBRE)ZEQEo(%4~^^C@E|#<a1^{E>!R
      z&iAwPgY3MUok!VupLRZ=oyXvOFyGD231i$u!~{p|=7_@_VRFP#9dS%Ylrc)<1ja7o
      z35*%zB*v^^LCJ0@DORenlEX@8Sjl6hKr20^mFillp_R^RrFpIN43y3%n?hL@%7VC%
      z@3~ITmlNP$1pgBFA7~iWb;iugnmGt288feF#s-s$nO8M)9!xrBUenA4-et_Z&KXyk
      zTxZO@(X4@Mj+r-^S;I^#>Mds0G1C<@Z!@!=nM};Q!;EAm8#C`NDCc74J!X2C>5iHA
      znOSP$2rhrG8|6cc$I+5R+i45!fW4Exrd{+04bu(0xGCBv`tjgyq61<C@9iNP6Q}Up
      zhICL|qLR2m<Ki2<wby7u{D!CYcRDQo#7ldFMmsv7ctvO7-|VZcCZr-}{ESm_(@*r#
      rKV_se*$l}w9q1GKR0n@XpU1&NaWD@0@^_13kG92jF2sJJy}tY#f@JQH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_iw_IL.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_iw_IL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72274174fe86cdab40340697cc1a15b49e60aa6a
      GIT binary patch
      literal 2395
      zcwUWETXz#x6yDP`$!VIlVSrMwK%qb>m!^n_(1Jp_SV_udpcqhLnhfbcGO5XgS`}~L
      z{ni4ZRBE}13O;#xa4putAK>zR-uwwJe}VYzlbH~@a4jEl&i=l$FW>B(vw#2R-fu*-
      zfo=z>Mxl<hRg9k2&+5@kE~#gXXiRSX)~Q@RtJ`MII$@5U=#K@dR-snuShUSdG-ej;
      zLq;K2%qNYVMJtst6pEybq?y$-nlYm1bvu_=NR5?q>sC6d*?H4S_bAlRm$M4CZrOu+
      zrf3MNQ%LDjXihqxD~`aW5-%u>qjd^}tzve_$nTMw1T`T?`?~ga{&ja@2Ocq?#IijX
      zRiRMDWu-!5)G*GZ^s$0MbB{k(RAD%mw~to5>LrfnEPEIzkaZ2eo*l_zZ<5EmbldPM
      zK7k^sR5Tusj*a1CQpPF0n6VF=*^0*!cnlA3&2BBU=?XO_i}}1^CC9X}>`*QvXqiH_
      z&Ru5`T{A5^(>LpQg+jjmm{t|&<?T>t$%?jz4e9Rgc@(Zk;Uqo){ekp($EzE#f9SN4
      zw9x?3o6MM&X>UiJ)t!S7)0aybLBc;1ncXiz-RQ4##~Fv<l5<_qljsrb8_txVr}*ry
      zGwn=a1%A5hI{|!)@iUAkof+?ZD~hvKM!n@s6V4BHq|o*-&82yQo`Wi9yhG4VHYQ-~
      zV&fu=J#1Wp@jM%sVZ6Xb2}X>KyB(ZpAWZW)(E(0B1)(KDhuFT2Qg;L$W_t!QzZEpd
      z_Bc+!zgXtSS=zC3Y{|JH=q1md7W7KlzvNsLbdv3xh`lOk$m72klwuoIoe4pw*uLa^
      z=ghFO;V?C`veVoasSGiwoWZ>>tMeF(J)|!9q3#GbPU>NGc@Ir9vN>96!tW-lIm?Vx
      zhVPNz{2DG(Ss%DknR}hRq)yN4O|B}{GG@hZg=qmRen+929dSYLVLuS(lM7*Lp?N|2
      zVAeBpZ&{E&dgL~hX+d)Z%@@=xXn~*>K??=73R)^?xuBJT{DMM)8U#hS#MLmZrcS)T
      zm}waUaxNU!hj{*|a&`^sd6ThA272YC4v~+(4%0PSi;Ha!n|KGEvHv;y@HpzzhTT_r
      zLCvc>AOD6znjDCGOs?GeAL+U{ke1<7d>F({XqcY@KtZ4yLIWsNh3kPEs&FH4qzcag
      z#tVVn!WUfb&F;Ry-CNv!VO88B;MOX<7<g$FZUbIkh1-EwR^e61fd2uu51QA|TAZxI
      z!Kgf^8ec@*r}c?iHL4~2>IN+lP&aCcpt?y*2z9fThy>IvSc7Vh_6u$EoS$Xq9qio4
      z&b!%puXOI0&imjTk2J8ePu;H};vh$89C3srj&ejoMjV$BFJl$z39NOhjy0qvvDT{w
      zGNrvtCTBWR$&{^R%E?Tx%1i~BsVFmz%1mQ2(;LWi&R<USHYa))#Q8|$eR@CP1OFlT
      zkHP;;+mOB1Wj>Ki9E{&(K9x+G6}Zf2k~s$^=rW&6<~$hTGGB1TMH=gLnJ<}H%#0T`
      z&P*FKUep9L?ab7<%tdBaF%xo`OUwvn>RskCGxf}bU8clLBQp&ybA_2X8d@;<le{QX
      zSdZaK5^bdQv<dcRx=mZ?FY2KOnBoE2t+Zf>uc5t4FJ|}v^(!Ya!t=CGxqu0Nh2qK`
      z8c^=he&r90??36F@;65J1L~`(LB_9S6~gtq=3PRHVpp*H*ZfM;4`l=-Sq=%89cYHG
      e%itSy(+%!&gVE^8A7{lLsfw+w#NLu#-~0<|NMT+8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ja_JP.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ja_JP.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80cd3d3701990e9a697e2aedb0ab4ba5d3c15bc6
      GIT binary patch
      literal 2290
      zcwUWEU2_yg6uq6z?sk$*vJ4Oc1_^8eBtVw%9TQLq9}@Bf1HlCqCcDFC!tQL`%z_aW
      zqbNa%iVBECQA?^)<qIlRR#64MTmA;$g5`_)3&eAKX5yN{D)*uLoYVK7zTJDLfBNh0
      zeIjb5ufkL!XjR%S#D|U3Mm&>C8W}U*t)_kU$y`2bI9AR+K5QKC>JL+?pgI*;aI8$c
      z+ZuHanxnZwK56bO*r|*uD4H^pR@TVq=7^CuoLpXz*6n&5b~>&*dCN|>3##nQ*`tnO
      zI|D|hU`i?zBw7T`OXqWi5roX<ONwA=t)Pfq$PSwMJ*p;2)q=`mYh$tXEwNY(ej_HT
      zupNI{6BJU*je_JE(>#?j#zqCrKlaFCMu&2F=g4eSh2lLq+Zh52WjzoyvLji{)oOW{
      z;h6qzk71KB{Cav)DI6kYo-_&>=a7}1jd+~XhlV)4Dp|<qO*=WJk7WmQ8A;0p1^)Q)
      z7H-P2olNJP)ds9~^(Tt*e9u+5?gsY`+8frn0EHw`E^Y!lEjU(u+`hqKGwI;CvLl(X
      zY|GgJ=haOEf=WAcDKkt+j?TRuN$YXZ53b#MaAOLiqzz1`CVaXH^w;rke7c2KZ{P9h
      zHWfVW(<eZGyKvd39iTH)H(gprf_6k`J}r>+6be%jI~hz(NZJK}Z6xhs<@Oy(�wo
      zNnHRimDCLYJ2vW#&_Xuq$F0}5Du;s%Hz;_B;YI}q7;aMVS%#YxJj!s3g3mGBs^AL@
      zw<&mnVVi=3fUWBlOfhtKJIRoD<7$Q?RKwK_<EGu^43Jxk4dj+G0_0YLZ>H2O!~t^a
      zI1S{M@e+_*#mhi#-X5<+Xc6!68v1o+a$@G<q@>q9eE$+hyb+;VS`eo5bG`zvEyDEn
      zzy5w#mNZ||LP<4}7D=j=v{+J|q-By;NNSW6lvFOMQc{$+xEi6=)PxVD+p^7G^|>B0
      z2Kiag)RQt`<Spi&80t`6SWW@D5uxj}2Ip~xEHrLY_y2s7(9IQT)9IXT`I^;Dk8b*M
      zUA<F#EZ({9KkQmKk(T2q0lbgZxUe9Fz`|f9gbSeZB3=PrS;VWrqeXlkIQkj5mfKOy
      zHQv0)n`^y!aZ%n9@VX+t6nt3`uLoaI#AD!%MSLY3@IL?tP;)b_!OB`JoKfpk5{Sxs
      zv@TJq#q~r`Yt<7WZKIwDYn%0i)VAu0Xh>_r7}nbL?`gXq{3HiI&B2`<yqkmfs^EPp
      zct3)BqLmyR(E4;_9N-L{GY)gc5za`cjAJU}d5ls!j<HNLFqUgcj1`&*r?l^6vC}Db
      z%Cb|AonB<8QRP%nPG^+U*dv|J23@09+2|aE@o3dOdNUD#{ucBL(7&VYsI$~lCX~_x
      zCFm&^m6GPOc*;9UISVE1Deo#}9E$XmOT6O}o$K_JNmiD!;%B|bN<Axn*88l)SSj<A
      z4_H~rO1Y<8W<|16;VB=oQo%~ZQ$Av)ij_)F`Iwb?I<DZ#x2jRDVLXbKB-%*pXfyCu
      z`kLD4cWS4HcymLvTh!voZKl1V121kb?Gq>P;O1$+IFI-CD)oqI>J@jXPyCF>_7^%J
      z{=`fBkUC3B;P{E!h0uQ2{U)S1W`Q}_`~!XZPZ=R4x+xJifTrj(mHau~^pab=WL)%>
      S+jDXc7v+}D=6<1~zWf_B@D?us
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ka_GE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ka_GE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fa3ef3ae47dad7a5939618a1337c3374c33a243
      GIT binary patch
      literal 2718
      zcwUWGYf}?f7=8{R$pHey6%iG$c*6_PT5B!Xi-^=3uo}fi+v<|65KT5TY_#-lWA8UF
      zC<tQlHshyGFCRMNjQs(f{)W!v4|MtqYTxtbY+QlPlo`(M^PJ~>-uJw_drp4;=fQ6P
      zw&HFO6$0x9?0n?3dDe`ivk5b8MWTG!XP?UEGNzNt+9%GKC%U_Ws1#^sVctolBhl2b
      zbI2Ob=5q;aciv8>ErD>-N~AJoI%W--In&AJ1dM3O+q4HFF(;R@2igT{JG1t%W7<xi
      zna*1hRRUs@z`TK6Ha|p?a=b){rrHETc0SW@<@Rz-67}TKvZ<v-{cmZbE8!uFDzP0`
      zVhB{1C2IuaIm<eeG)IO7<{zK4sNunE&N*6E)iCbK+Rh-MKt|vA&CF1SuJt^<$8;<=
      z;}Xi)(-TQ1BO~-j%Sl?N%zWB8oXV6n%LE`$m&oUGmYo=hjb!?>X^E8rzG7j5+Lf}M
      zbmxrO)im4P74^iqcI)VotbW{xEnC_*KLKgk396ggLKQb0_pbXu|7k1X(7I(uBAv2R
      z&hwOIeQTdUWoI^N1wma8&uo(fS=JW|*NcU##lm>8FkLKMlz2*@saTj|c%PVJ;S!Hy
      zq>*@9U`erXi<!x}1kbQwis27)37%yEP2FK;w%|Dy++=2&$6H+FXsJ$#4r=Y}z$$tc
      z&xbG{4H7R3RFxMdv74b@lEfZ{dJPhL-C0$!#LEnIeG;!Q)YV8t8S30BWp4-zRLWO*
      zVw@*#NE~7~##LXEILvU;b?IYxk$nli=9#5(kGWP?+3Ix<oRE0ajlE2a#7TECl<1yB
      zzq^=w#lmfgB*Pobj7pqhc!kB+RrP}*G^*-P3oIyC&zVZir)tvtIP^+*oOT5hEU@`4
      znsh^MGdaZ1NUxBcOX8eIJkE6!>9ANY*u$Uo@Dm>XZLU_gz~w3Ll*Bs%%gXIwa+K4R
      zE2r@H+*h<Dn3^T{fIk7<wOO+taky^cY=LU)$0004gSxvALK7N-_;kijrN7u9K7ZoN
      zEYTA4B^F3DN-UIUl2|0sEU{c-mBbnezeKe}twdO*7!P4RTB)zmlx_9$)_U0NS6jHj
      z+kc;#ODU|$KnHIS)$m~|gh_0qO~M&W(Vo&8{h!ANZ8S9lmeX0@jT+at&b=R1$M{Uy
      zn^KvZ|HH0L1!5&F#YbmZJvGda0HGkE3Qz-3?ZGvKYdyG*aM*+A5vEOm?wiz?$=61G
      zU8t{3`nt#yx0rCV2QMYO+=EvTUgg0pgx7fRT5_Q0K=(eXc>^}m%qE&R$MdN0h2=wR
      zj#nCySln-Hjl~1Twpcu9Y>&mIu_G1_2aKIG295UEFWBXZUr^$gl(<ugyOg+_#rs&i
      zpTs@kS|#=w2VxX)P({R4#1R#7R7J!&;y6dVL8CNI&{$=dG*%l48fy%ToCaK{lyW+w
      zoHEKOtDN3aPQ&b!XQy-QG{R2rveWzQ^dUK&_m_;8Dx;-D6vA~6@k!iA{Aa{}LHy6y
      zMRitc=1XRJi1BOYD`p1NS~T-DGv|p3YUUee3dBgwe5*1pj;T5|^IfS1RkLO;DrSXZ
      z+^9>6X;Dm-W-cpctzxP*b44*yF*TYQRZNXyLYld%m^#JOYUY|^=EbN5V?XhWa-GIw
      z^hyHTuo>Iweh2PiC;mb^9?{_xK$mEuQ)vUbMF$;6z1SyC(m9mFesO^gplj$6_t7gJ
      z;DGpp&YeGTQ2b2?&LebIRFLBYXHh>*Cf%115xUZ^75F#&iW`s12ryX+36%u6iSIdh
      b8n<+Cn+~Q%kNr3!_J}98vK)JxRd@ac5Wz68
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_kl_GL.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_kl_GL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b135dd6be121db1f805914175ac53218515ce967
      GIT binary patch
      literal 2346
      zcwUWFX>$}+6uq6v%)BI%Ff<_q3=jxgSTZ0YVgf1yM9fSO8iE5Vyv%eao%D1My?}8;
      z6!(1r#a+t}esuX@6;=2HEPsPP!SWY~=f3Gl+7woqs`R_}ymQaJefz#Qzx{plS0dU)
      z-=?WWqs>((%+1J)GH1JGX`8u%T8=tXu2++R<vQnP?Q^4rG_`8fr-)%-*|~z{2PaJ5
      z4ZX5?Fmx)msZq9KmaUq!4YMvi8MvNCdZD2$oodbqJj<yLYt)%{9Y2sxFd^;G6x61X
      zwq2v8RnHCUpv=b$%3y0qql^>QCQa{%s!7liXbfy07~ub%Ls;S0O;q9pO^U8j`#fc%
      zM&gob&Q|1{uhFuzcPz@EcD>;AJgY<bMb`<Y;iYPkk(9N14eJuMeMkmoGvi%|sZ{!l
      z#bW;){_s8(b4rGGaMG&Hlh$ZN8g-RJ&oiC!oH19MbZtTFG-{dUc3Dnf=ND~m&?s?e
      zY%CVmRNJi4nhpI6o!Gf^ctih=xQ`bvqjEF`HFuwlzxlDr8M7SV&BaLBwj3)sfIM3U
      zCp2o!yA?A{=zDf?qXa=R<;zLQ`R_(eGLX`@9H;7fj(I`QJ!oZ3dUm(~-HUedca?q&
      zybrOy<;$8}!0rbzkhX2b!4Xd4O`*aj)`k`y$j~zC7W5#BMmd5G!ayy84#7YHf{wsI
      zT0svp$MOX|0t5Pj3QYE<SZF*$%US4AKr<5T6ELPsD4t|e9YPaIaYoQ%%n89cqYMZ=
      z&YTc!d6ILObwTH0xU*=^Bn-#BD5wGhCxeqsWvGXfO>2}!vQT=Kpc#AuB=j1d&BG?W
      zz=!R?Mg^7)yN>UIB4A-oT2Te8Kv}$dQKL505&A*Mflp!jQB7d-se%7AQlKce;XMm7
      zDr;^&4;S?{T(0tk46UGUwqDFoFLkHs>Y`H<%}$zL`PYmzU_r|SEf>@yXoa9&K`RCI
      z30f;?y`YVPl7iX=bqdOIit8ELLWB751<NtV)iFOQC;2+j)m1csuCO10sS!1*?UbO;
      zGIWEsp#{OTh3OtF{LiZlBi~UqgZ%ut=-D!O=abQHsQc}R#hLs5LvDxzX&qiAfqQic
      z8kVFKyfnNPLIbEh=6AsFjQL&gvoU`ud<-`1UY<*}_C)K7Xzh*Gm9e;0@cUx^YWQno
      zen0&6F@FI5#+bhe3iuAN6R3GBZNtuXY+O?N)RM@GTePFps^^SSQr~5iQu=PAl-Bnc
      zC86&%O4*dY56`qdZ2V07o8$+W{1B7#Og_xyQAIwg$YUTEvz<&%=*J919OsBUM;IJ&
      ziX%>|h?0spi>J_^z_U$1hiAJk@$AscP%@iJRaUZCX_l30tmLxN1*POGrBEqdQc815
      z=^3T;9F#668$zpDXf=Q<*{)mkQYiuaW#F#@|B3da#MTITO(8`f$q0E}AtsPiguJ1U
      z%lu*y@}@$r01*-L7H3>#aGeqIcB2NaIYQoHq@R&y)VqufFwzzw?=iB8k@g6ApAo@G
      zM}&O9NCzXC2>FnaE=D>d<ReCw8fd|_AJw3IjOQ7QB++i#L3?2DrSE7T{Yk@g8<%g2
      z4r{%*d$-c4HiD~noQ`Vear1gKrd`Fwd!35f_cX5Eq+{CexOM-a<Jw=ibZ=9>r3H$g
      zs4V;|d80Xml*5W2PD*b5g+5&<Bc;GbNTxxc&*=*l{3U%A1rJ5RX!Nxo7R8>5#kS7J
      Jeyv#F`~xR^0lNSI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ko_KR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ko_KR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f15729b37741ae3da12e8e734ec9eb3d8a1073f5
      GIT binary patch
      literal 2371
      zcwUWE`*Raj6#lkplG`*bVS!SxNT9sRqoKU91(iY(`#`!-45+Y8mUJQ6t=kP)-(ZDm
      z@m;Y{kgAC2=!_2>l@a~j@o(@CKv4ez@tm985IZ<yXL|4VefOO2oV~gC{_^*=p8z!B
      zN*HAd7H6z{;;?>HPh{<so;4C3a@t`XvYnjnnznV|h<%{FJB)G#buuvTn%P8$IpB61
      z19sj?8C&vJI%_D1rHz!C)3ch<uRFSHI||f}g12sE5}NCnR;F1&RjX|cxVq)`=-Ip>
      zP@zC+R4_H;*!g}6Ddr1AX=%BFsFlz48cv(+Nni?j)Gx2E=l_+BG!ySPs1wWeLsSKk
      zV#q=T;+SC^N$Z0H3a0J9Yf}S#w&U(CMpa7QX<Kd|u~5zfK|R->qj`#4-m1HXU-2HQ
      zI7ol-&dzu`O`nrC4(a)<yW7kaWA3F!^mt!iJQpXA>Qvrw3@bIL4d#07tiU`4fj@t~
      zOxtE!ZnkyO>H=DA@7`OI=i4q;P`lvHhBPl&afeXF6!lJ9Llvj*Fa7qNy@!pIOW!V9
      zQd!e7-OW^CNkfl<@>V--gh9!%$y+6`QbEPd3qRgGH%g<xDyHM3K3zlf*4ZLm$E(9*
      zKHWg{_s>4{>3u|Rd_U~d7S266QJ@u2usMopm@e=DH6|mrFc=>d*h+xP2(+;>JSOlE
      z0kRf&m;jjyba2ec2{!7AVg?&MLcd_VNjh{hTqWUdhN~s)VYo)ZM;We_a38~U5<bRo
      zy@XFN+#umWh8rd9CD^o5!ZgD|wL=WK8h6tdMGbdzm<|^2BnM<AzACZB_(VbPm-usu
      z9mZpqBz75}pOE+{;~xt6DZ;l-k4pSB;Tzu;a-Zdxk@FHi&p*n@7k=p%eR|dF??e<c
      zxxXQ=-o%i=$pXGLKEx5jQPg637_UycPTr9U<Mh9dPC*u!CNM*wMqs8ut-vgSI)S+Y
      z^92?P1O*}jRRS?CaXyMAXrP<cVOmC)y#KrPUVdj(`9}5Vj>+5;LoM<IM-adVQC!3_
      zI>m0ENr%3n<A1(!bQ3BwhTB@aE;UOU?tWn+ntb@$Os-t_A9jtLh<WrW0eWz!(1ryO
      zA{HiA2HF5bN_ZvlsuEsJJXXS|5~sUBxR#HyoNK&!rZ?Am^Q@A**~IHg_#EPMOL(04
      z{1RSId|?S+L=N;j5Drk!OR<brmeay9xsI|xOkBr`WVxEql0mgeONP|dS~9Gz)sjM8
      zuO(w4bt8>owORWHoBZJWIru>iZsp)@9K2ly?~uXm6x<oB;^2U~Q=^PsoS|{X9?say
      z8A+M3UuHZ`qfigfSfT1PM${CIm8wBb8Q;ldrz7l?V<(%Po@A#1>6DjF$E4Gsbb3ZQ
      zJtv)BAgANOg3(KC^fC#jV%692N-{wD2<fkp{xvpHpXHwNx>Pzz33|#KQpxbQc*>hn
      zIZjI0Q{IxwDN=-|yv-G7Yuu-&yu->IR{X3{R^qJqS?{t^&q{@-oMB}VD-ln5j}^g6
      zrKgOsQprlxQ_iwd%}SN0oMUCGMq4ocl{_dHXxv9f5?GBDSW9?4E@317Kr?RBdmX|y
      zrIw!SrP!{t&}-d=9m+v^tR1u~L-bakL8o#BUCK4=RDPw0`Zw%S{-Rg<Hd@Qd$nkwy
      z1$6u_`iBq+niZOZOTWX!oi;*JETlvW0r(If$>dA;*h_Bol4+yIznql2rzE$$n0r}9
      Geew_GWkTox
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_kw_GB.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_kw_GB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6455ce9cabd085fe8fd0499cbe41d2a8f168701b
      GIT binary patch
      literal 2339
      zcwUWFS#uLd5bm)oX)Mb|EXEjOg27zoupopGVuvKQ!4M>KEJp-MU@Z;Og0$<bcBLpc
      zf!y~6NyrTkdCc*UDyqms9#i=Z`3b4~f{?FAYa?8wDi50J{<{0?p5C6(@Bdu?m58>|
      zwK%m2T32*}^jWKBrOR&KDywuxZ~L4xu2->q+jUNztDl-2i&MLxe(f0eb~&A~tNvkC
      zbptQ2#sa5MR)SImmA5Na*;F%@XZfxt$jCIgEvJ|^eb07^BZ9idU8m|>j(^N52TD?h
      zATcaxVbODg8Mw^FOG?7DNl?-WD$~l_qid41033sx1_$}KWf(j38HGw5f7Znil$di_
      zBS_YjI#;k7RY8kR-m$1^$@To>b6%ZV&$^CZf)=ZULe#3vRIo45<_XJJvl;I~l0qS!
      z&88a-9HyYoSV7r8Vprxo?iNIXy7PhODJS1B8<lCdENP{nw%@LzSGMDq$LASW3yMsR
      z9c&4kWm|{uvHDgQwrm;Me4C1L@+cZTLAgCATMvC;`mD<PIJ6wimu<)PcOlFAp<{yD
      z$K8U86TU`jevc%9GB%+G%m8)W)08uTBk5icLCz}AFG;#jP)AcMDSW~En~piRF6n`$
      zX|k>yHjOq_(<->0(}C9PO41_gk@PUi(OJeI=oAwWvdq4Rg%X1ILeQj-a);^|qYOt`
      z1tywG(qbk$$To%e!#LXUlG-Kd2orF2oHnw18p31fe-`m47^uPdagO5Ydy<hVdVN~w
      zfN2`SUR97(K+r@W=?sAVs>Vr6N$TaKXEA!&Ms)y*Yn-TzVPYNmYo5ZX9GshhuwgTy
      zielJ`TN7(qCHd&AHq|U7uVG3xF(wba<#RnPD4uPo0bS)YxG36QZ#YG(Y)N`9q(;de
      z)E7c(F8rm?8O2*(p%m~5UQW^y>S5_(lKQA8POr|pF5%?F>Gj(tqzOw}Bx$jvUP((N
      z^+{SPsbA6xNvkBSkrb7bkkln9#VI~b(s~-gP0HAgn$q|Ch&9dch@s!0W0q&L9)ht^
      zJ*Wwa(3eTNLL2c#{gRE@9?JaBHw**cSycY`+^y(cKXm7Nkudecw#Vko{r^EX%z?BL
      zM~UD;U4Vu~DF!VLt&PwCO0?*m(7RgnZs@5NeIaxVKjc21UA^~)`;u_)3-_fham%3h
      zx9H2EuV~Q+ps#At2cfTN(bs|j-vM$2HE*Deuxx^%uI<zoNy!_uIoEEa&0N&jYUX0b
      zHZvDDwwpO=>@ahwn6VRU+!!%`rUz%8A7bZ6*m<0tceC@PcHXC*_rp1x>SE`Jalk~x
      zA&xLP;wVQP=ZKt+IH@C^z$%SXSUU_0Yr@E5?KBjainB~MGo53m3NyLP^b|8yHB+FO
      z>YAycnV!{5&ugX^!E`>_BwEfy%K=<Sb>E;@auMLK0e=JdPxK(_Y!8t)HIfAq4UxAr
      zQslFQ$lDq@4<sHU?`Y%#5E&xxa>ivQ*BK)3HEZCSL*#u%1{j%*`hbx^Mmj>|Lq^sz
      zk_eHH7?F&0hRDZ^bTX0*kxv-uW~3`bE-|vuL<=tes0ZaUtS2y%MB8XHZHK&ruF+2V
      zi$>@s9_SeD7JYc1H_)UQ#q&Hx`^0Iy&K~U-7x6e>qOACyro?qRApXG1{3jg}f8$}k
      zN#kv8VEkNX;eW_0vqMN}?D*59=!ReDi(6&HG}sJDHXZ0I`dSBnL*ItM!(lKQeffuZ
      Qu}52C+vj4x(_UBq1@5)-{Qv*}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_lt_LT.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_lt_LT.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2d480d87f42d8a0c8479184d9be443806e623dd
      GIT binary patch
      literal 2353
      zcwUW_TXPge6vxkGv)N9v3Cj>dz;F$>aLEP{5ffAh7crX<m=Ii0VY1t7CObQ`&dvnm
      z9l^VJm#BCF<-sanygXP%6?q~rmY>0oVEGBe|LL9GEGeuqRhjPd>vR66`^=f%-~YKe
      zOGG>9MvUq-+LUvG<fJ)eCT%xk+A^6^!x874>lIAja-B1_e<n2=qk4@xm1E#rb~0s^
      z{Nu9Z23|()51gzmHA-Y<#wwV$A&aJG`mU#uo+@jbPA+Nqp5^5FG-?@eosw@l{+MY8
      zQc$Bt+BS_A=R7wk!lfE7D2}Bbjp9yF7?<85wI@M~pwYFhtBe18doaQ-O6<h(D=xZ5
      zO;wi-8j15#=CkH>NuwpF@42bcgzNbyt6t5@9&#Oj0#-vIoJ7q+v4C-rT0UU<vXb#W
      zWSqud&(Kg$HjCqA<vBC3{ZXq>^;xA6Y1EntJWo2AX=A!D?%IOZYE+l<Q7y~y?STc0
      z>otm`MpHFm6}3$ot(q@GZ||D*ecSK0aqbK@j=EsWZKrDwesp|NW_%o6^k;0#vHVAn
      zXLI+MM)d=3R>lZrPb{pHpk7qQkokg{wWMQ}1l<oXVtMo60f2pu?^VHrDDJ2yZ(p{m
      z=pmeDQ2JAr=U3Uoc+Dfy$<LF11kPQPbJr`V5yg8XPD`jw&||2Xkr%Wd;|MzC0LFce
      zphFl(VLy&>5Jh@|*TGT1$lNubC5Gd)lqE)h3^NdP9Fs8<8AmZ0bf*NN43YgNs{bS=
      zhb0bviiri`r}%wXXxnEnIi4#DI;$oKA7{a$DJaW6CYH`|xR>Ru6LD(itdr=bk{OgN
      zSCFkyY|1Q|9vcoypLeG)E25RgP1HR*H_I#dkQ#F`7tGDxo<SOPO5?cY&CN=iSEnFo
      zTe9e4={XeN3v$KDxgSw)EIyAH3{bi~GYRWO&RsNB*vm*_o5j3ml|5hOBwpaEoV?-J
      z;<Sv~cy=jH9n==1Hx_(6VGqUVt-E@qj0G(bv{X>Lpk;zO1T7cTDQLBzb%HhsiVA8H
      z)FLRsDL#+WX6nXwm9iW;tiJY9bDVD#UEN4ys1e&CZ0J`l+e8uiI!;$<D{ALYSm^TZ
      z)c?HE(E80e=?_%DkM_;o_x?hf40X*NvN&_+f5`Q4Ag#qwBDh``p<q#JfE9yPM<@U_
      z)!5CjTWai9*ohi@F>JIs<{jLtYHSb3W#QNnj>~J}R>1D8u~))gU1P6-y{^XYg1w=}
      z-UtP}2h1bb^A_5Qm2Fr!uhyw9k`T9Od%9jv8tJIM!$>#iJB@Tq-({qQzS~GA8uUGQ
      z#`HepSK3=~ew3Z}vGV{sA7tml%K3<L9)$ByqJ^C!`cVTB$2h{^h!Y%fk|WY8;<So*
      z8c(60!Lv~}@odsFcsA=2O1X-X#Y%ZrDzK8vO3$)VNht+N>AX^!R!T1@rI(b_D^R)+
      zEeow=p_Kp^6Ro%C^>hUMP4KtDf1$nDXMITCQDg`t8j^Pv$?;i2@}43WKw=@etjI+W
      z5t8>g;|hcK8Iljmd*D5X<U=NFm{g)ZV$#K=F(e-|*~p|RB%d%5OqxUTDU)U<@sNDR
      zq?JiaNUkthY@h@)KdVOh0?$)uNur&!opxcqn{Ln^`iuJL4ld&cI;eHvGTuUmwSHX2
      z!*oPDi_6%fLG2PQ<0~|z{XoOoO**Rmft&bGI;Q=Ni}(%=)YU=pOO=IxEw5IZkdhej
      y14_{?ztLCo+h|a*91<@(&^Pq03cg0y!{DAU7=@nsX+i9Xn%Mek?03rR`+orxT?lUg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_lv_LV.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_lv_LV.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b1fb49fe94cf45cd58ec68e41d135a4090327a6
      GIT binary patch
      literal 2342
      zcwUWFTXPge6h58J?shhtunZvt4A*cAmn?{gn1IT15!ocbgy4b-likT?lG&Mcb|x6_
      z5xn0;LB&f@9<1WU%Y#)^;R6LPmcPNDVEGHg@AS@wC52U{D%0ot`kb#%pFZ9D`#;xy
      zBciQzB~A^3))k!~J#I`IY1_>kwwcbV;h;0>dL_fRT<4TMc`7>`r$#}Y$}#XQJDs&E
      z{!z2y243FW6F3Fi6qG8Md8=gDx>+_n!*@MFTDGcfIK{N?dzMq|71WY(or-Tb{;**O
      zrlcl8Vw0fxMb8b&aG8ylloZr(V@6QY2}&cTw_hbCX&ywnHg$FJ|CSz%z-1GuIDXAV
      z6O@>BStCfEG0lmBF;x+?;N(5Cs*Jgwe|*-fS>b-y@yCE-rO=2PrE&@5JT<-7@Xgwa
      z_aSBqe?9&EJ%vIKHdHW2jllMYtkSI0GC?G$H6M7M>Ex&MsnUpROInG2W}&KCj&En?
      zOs*Cb$qr}h!fI;k1T9;=;!Y*DZ0X&6H^#>E$Q*@%dfUnRoez$Tn|U8QmwkELax8y0
      z)>+>@ET}Q#7R)$d3#qw<k_5>_W%A~EzhIe;A?bcWO=Zg~h42CBxxN>o2jT2{=B>*i
      zeh4+nn||Qcq92As*)k_;xDRR-vr>gkDAn#HEuc0@kD@~Qq@+Da^6-rrNqb=ovauh=
      z5F3xf$guGQd=F1ZLdhcfjTx31NYX-<ISgvta3mdtF=~!T8iG+W&}-Ou#3;jfQZbgK
      z6DY;_t*h{Us%qgdo?)*5bvO;9VwNS1z;GvU8U+}RiyTK`;4bjGV@Yb~b;q$UtUGyg
      z+OsN>Y-}5=dqIdDG!~NZVU|%qq;d1A%@dxQu*PBfg5sQw0+Ur>EASiuatbOO|2&_M
      zS@zA+h?0Jh4`jl3tLSCqfgEd-uL2^|D&%}$OVT20W9wX!I;bs9Z_K$cVcW#%t-IQz
      zN=sTGX`!TcNsA<PNLnnZQ_^xtt0b+F6qS^a)FLUxOMITB_0)~Kl(iglK;7^mV}zd)
      zO+7=yhG#Jj$ylH2(ga25>m*&GjW`s4%tB*#XaDCjhHh^znto>XO0=)<zW1d_=<03T
      zZ}G~V{~_1IfwU4^iQrA0hk`{Z1{4QsAQXTSb+{S0r4F|Or|R&0VDvid4sKR8wuj@Q
      zaO?=j#dUE@fII8(QsCuvcm?pPI@|@krVg)#0?q+;1UYY@jhNYli8E@R8X_rqoi^th
      zwX~j#YFqVOOxvdC;@WmSC$$}VE)~;u;v3g`^<QXL&G`{_evF+n?7WYi4=Cq@%J~qS
      z`%^9K9MJ}KL>%D=og<EM#Bq+usfd#*;%R)Pb_(An&A>OI<?(ISOehs=N){_kuu_SY
      zTvmFPl`2XpP)cW%(v(tqK`FhYlwN_-bhIk8l!capIGbv{POs-8;NJxQHu#@u7xHWj
      znRgV^4<;Hi?<%IqdkLBM6f+Gb9y0GM<}4T)G9U1YOLWdNWIn9sz&VG^N6f5XrWW-v
      zGhNIyh0G_+tYsz<GUu6*%ruA0r_3}nlMI>9m}zCEC1frzGhasuF8-t%<qLdIpe2d6
      z(Pr8Xdk0;io%9#=(rrA*G1@0O@E&iV1ELSl@c<nZr|}wlbV!`TYkYzF#Sb(fuF;_Q
      z15fdvbVU4(m-sei8XBPZrCNo5ATQOLkkT0On@Q0PztUHC(ugUt8j`F!&^Pq03Z9|M
      aVQ^0vj6z@haZc>9y4c3q*zc6r_x}RqnFhH4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mi_NZ.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mi_NZ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b51852fecbd10a8161e50cf13bd9f59fd1cb3196
      GIT binary patch
      literal 2370
      zcwUWFTXz#x82zSclG8M8!%#}WBA0S2kOo9VY(b@5iZrD#r8Px`X>v%0Br|b3L#_7;
      z-o?A1;$0qGix)2suEkpT)V{d<4gLg|zd+pI$)toXT+4^dIp03}+h>30mf!!m@f#8C
      zpleZT&}dWM_EYD~^Jc2#WX+OH4XNgceb#Zyre`_!>9Tctcp^%T8g(h6?^&hPkTvC<
      zkW-HDX61h0&XuG_iJZ(@WwT_+is_o3<7%W2Rkck!pE5kxvh#f!wG24+lxN!Bm|60r
      zpeBv9UX7OIUB|D0vXCz*j-hQD#cjVlDcwWLlb|+ebZ_hK=HK>Sw1_JbPHeA6(KU)K
      zP&Q~Jrll<A%$X^TmY%w+si}hFdgBYMW)-I$+bbZ7l!H##ELX~C+tly@)04Fs@4+Ow
      zTq>PT&CH;foIGp#C2!O!FEH-ah%{==`mQVO?2Iu}o^(or)}qGsSSri*N&}0=fQN=B
      z4%B7U#5Q3&*56))?c4j3cZ6`0g=Z`Y+_s;puld;IIhplPv*^#3EZg$-VV2E3V;VIM
      zI5`<5Y(`@75($E2^u*k(XI6Yc_ko-?ZS3CtSe?=N>#no}JpjtMw519j<bk<a%LC~l
      z42)n?Ef+yQW*%fA(3-F!`{J~e+66tLQNySyXg}ICT9h4vvY<l%#*sLPNm)_QV?ahg
      z83F}TtTG&@Wvns+(ov@X(g_~)(HTW&#DVKE?wC+|9Hc?`5j26`h*bgW33wcwzhvhf
      z1Wz$RvfDGN(gLz4QP6n7O4{h>f<8-}RboX|OCe4j?BX0w5W7fvC{%(}0su2focp}*
      zLczu%f+=tQdeW27vGbU=!k{VbyqTOX%+2yokjuvSM)=V2Ffsde!9LHLRmWA=&tT)&
      zb<*=)D_NYsROI|;k-`=5tj~i1-@Kz{a&8v26oI~o16z*<ZeCUs7p;Ocxwcp0w4B<x
      zcQH<#)E=eR7Tu=cWJT$XJ5Ep)7PM5*GC>`JmJ8|>v_epqpw)ub3EChiEGQ<ZMNopL
      z_%u$NsRzq3WZ809UH?&YlAjq}JyBz(YjGTak$!cMV-%t<<8+m_Vo$t+g|pu?^go|C
      zT!`kp^ad7gO~>Y*yWg9bq29ei7SG)EA9B5%NNZ6_2=8qh7A#B=L{UTygax2jUEGYg
      zr7mtooT!VJAjTy@zmt!-YCD2<dC+zS?TWg*m596Q;#G)O*TriPud9o@5pSrAH$nmX
      zfPM&`x6oFMY{S5`8mER(LfoWercqBBnXtaY$VBv=MkcE7GBQHnZDbM=eGk4-z0dfC
      z_SVP`Gx<>_4>0*4lMgHM5k)=<ayrq%<dA;MK*n*-FgW8RXN+@3MrE8*8BgLX^wan@
      z=_bB0J&SL%E}@jKDOs#kWTi4IIjr<FD@`dSUnxy1r5UC4oKkv0DZK=x*>F{86$`Bb
      za3RrplU~h)fWHp>P2fM%UifSbkhc_)1`-aCw-u7-S_0%9h0Fqp2FN9aTmT{h<XxU|
      zrNKS}<h`l~_8cJZGqQ$}TGj`QbTiTvARjWak&#${e8h-gq&Yx7W~7;scz}GuNGl^P
      z0dkp<B?gw@%1`Q`e1`7?jwI1eO42U$chfc6Lw`{p-NI8Ip@Ui{Uh*w;SnJ12K1@fn
      zGkC{cI;vg7JARqc+7C3W-JoOIA9%$7q~qG(c*1YdKtlr*KUcHxAL!NEA*2*q{HIcQ
      v%dhmsZ5t5<R#W0t0)0hatK@I!+aS3&NX9~6`EgP1$-3Oeh1~BH>-&EJ)z=Gr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mk_MK.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mk_MK.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe192ab51fb5950b7ba14ebbfc3cd216ddc4aeea
      GIT binary patch
      literal 2468
      zcwUWFYgZFj6g@*oatQ(Bh=>*y#TPyZ)>>;p+lr4`2v$e2(Y87yV;D^)G)%PgC7`W+
      zzqQ(TyZWIY5zDFz3x4nFhshu4Pw46|sNLtzOo%MIR#}U=_w3ncpMB5Vd-MB0)3Zdh
      zm3|CUl|t(?Rxy57Kd;BL`IMeD;=OV>Xr0Lya=LBity8&krxHD3s#d635{tH(jrW?v
      z_7P(^Uo51IJw+>>H57`ajg*<wvzjra7j!#cP)O}{wRI~K*X)96WjYnA>&{!lwr<(|
      zdbVf?s!>SUtkA+tAzvH<rJOG)idQWPMXh3Pz$omOo&+s`M(gI*R{rm3$B1~yfD_C1
      zDXKz|GG(no;(}qEOY0-U3N1SMKvTnm`GS4C%&L`fB5&D)h(bAU64Y};IgAVB>%F>d
      z_!S>Q#dNwok!T;mAC{9g&gjLgebmgAIV%(*h3ZqqLcy?7BicxAAfFYq3I&{BoGE7p
      z9WyOE+dYr4Mxj8WXKzKSuee^J6?3iV=xABfx#j*CYfr&EdIQ@HCo30!XyB}ovaxv4
      zmCBlyY41jz4Q>4jRd?spMwr_1QRnwcPzOGUGXuM9`HnLo=wT>3cb(Y^bjG>uObdDh
      zo}J0kxHDTC^|43MsnQr?<|6wsR4H9?rofskjWU;6kAnrxDL?K))zX+V;oOAQxHD0M
      zPVSD<B5DxyBsWmj7PN=w(u<(IJeSo4?Z@1$D(GpR%Zh@YartuID>+<))%&8fnAM+U
      z^g2)|9^v_ARGJiYlrw*GCQ74%`guO#+~xUmK7L)$37K2E#JSJ=^E-lGborCcEkUQ<
      zs#DHgK?96qz3e9Ku4<MYpYgZIG&>uNQX@M%i|)G4pb8((Z9!S?rgVs2mQf2I+4aiG
      zL)=^G7GDHza8iZqlDW1Y-Qnmwe{JcsbP4@K_RH9%u3vO^3aXQCjaN|F^^Rv5eT{d3
      zT*Vyr1~cVq=1^YOXq1*v1JA~z)I<$ox;*c^dRsP3Z{4>wU0Bc}L5l@73R)tlNzhV3
      z&4N}6S}ka;prD|LpgKV@E^#eN8>kIOx!1IeK6$|$)d%<@Q{^StuNO>?JuuWIPe_CU
      z^i`B@&?cM`d(gz8YU}-<mncqJZN{*>%g3>CL)(K7WJHrU>wc3fH~)uRJ15dAEG2*&
      zeE}L4q!6MoqAEfIC{hvEBCe~5>k-E);)RHDm@seRZ7;`0Z(QPyP2RY)B5xVu=8AYZ
      z;*}L~3*yxkaVz4r74bSK;5%R*fai_032!#z#Rd7Essb@FLtB#7YFtYO)va1Gq;Aua
      zVRgHf6zUEw84Ia9@eHe-+AZ4Ulb>MnQ%vq=@;)XXkmQ4s+yinVR>$OkdPqaYVb0Jv
      z;}~Zg=ZvJxI4Lt;z*DHF@T^gFJR@of&sx=hQpQ&@S?L@r<ya|SR(eS)4NIk>RJtIQ
      zMx@fKQt5RlT@1QH%UNhSfU#Kp3|&eFfWHa+3h+tV1)tR(^0q`0K!P6fjzluN77uw>
      zA{T*#J>)%!i~$iI@;+Bwrm;^C`M~wSo;~D4Mp_v0vp!;^m5~|``IwP)j6^)-6Gj9h
      zwI1>*Beje~J>)Y+>KUo?kk1)esG$W{Z_17G1)e9cC5g7t7TS*a4*H39(qGg`_i)vR
      zXrI!AYknggP`Yr%_t8P+G_Lmo^(dEdwO^xz@-y`*({xDr1DE=rbXfTt7y3QwuBw9K
      zby<afpl|q_km4Ben@z!uztWd;HbN3~Q=%?`zNT+v^0)Mzm)!0pqtRC<=H(u%$gM8t
      JelJ-+{0sC8rJ(=-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mr_IN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mr_IN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d3a552d3e99114483c03ecc157ee5ced63a6700
      GIT binary patch
      literal 2496
      zcwVhkZF3V<6n<{gB)4f=!ct0sB7yK$UK$V)q4kaOVr^Q4Krx`gHd)d@vZ<R5SbT#5
      zf+G5XQDz)w7-y2PqYi^GATk4fcl-^`{sPBeAf9`&2}=iO{NR4L_nzmR=e+H`=eNJ_
      zKLoG=Uj)%4urh0w<Hz(9dOTlD>v<!d;BC-6TC@tfohzD$3)bPmksz7{y4kR7=koDH
      zu4L~uO2x93Hnx?`Ox_TPWQ=sKpy!jugl_3}(Gt)SHQ&0KjVEm@XJ-2Z+6Ibd$<|GK
      zRL_?Ui53CTD=<5270VN3(%?&kNwroWY?cdShP9J(l9(mX5?dRKt?!M+V&reape#(g
      zuGRzstX?i4Pa4MYj6PWsm~-f<$&|*6mVKaM)ynd4(X_`&3KZOfUoT7)XrIOE?YeE$
      zqb;PuchDEjWTL~v!_i6lsF;j#R4?c4eYrxz@)?29`1sbs)>2fDo)TzJmo3XM)04@`
      z!dNjcv4jFTm77lW40SGN+WCPQ2FnC|gCl!A)VlAL0-ejEwWh3J-?#4ZnR<|>BB(!<
      ze#aqi6LyasGtxFSLH4KfIWuR!ME+Oxj0!Xl6f;H;^j9J?dnQ3HHI-)Nj#K%S*M}rZ
      zJj?h!r+Ue$-0<Mf3Cv|=%Bfs+Dz`nV=UH`?Dz4S-QN1A0<y7u6_?1(=T#s1OZsk~a
      zoyxQ~hZYF*hcO2o5>!h|BTI=_Sag$<*hZJio0G(LHu#a_eJ8P#4IXDE@f!X883{?e
      z&MY?%6+RKhTorzV)4#@fO*_>KjU1ioX^A&j`vc<?^6Zn^y&UOA9id3yNbKW^zjP|!
      z*PB6g-;x;ROLK!<NxaF~Tyv^a)wIMxuHhPIe9Ng`lz59hU*VeXv7hS_?+7ep@j~7C
      zbv{q2+*FZA_%B_lmwla^SW}HLcbbtqto`LlZiczva<=!pD%Gr`VRWKHoyNnMr`mRm
      zULaM|%b85|O5_^=b$F^**_vT=p(BWi8E@LX&OumDT-zEfF-KyqM5n|&i7tux65SGu
      zC6-Dom+(u3B-$h*D#TP6tI$KuO5{vqgon>QeM}8GjR)kYZsnBhf`NX1Jt6pTA&m1_
      zLodi4&(VYHN&LqFORumsYuE#gr`oxy=jo3%l;o+qGp8bV|BJg`MZ^*+#YfYA7B$R|
      z07*fTnm`Re$RoFs+~$$nNsf5r*(B4WqH~wJ-Mn|Y`#g8=a`*Wj-U5=lJ@O)w7klI=
      z$xA(QjO67Wc?Ef(|3GIS<-8heNVAp{Cs~gsUqn8@x>U0kPp16ZhGZ(BZA_+uYLVKe
      zWGWKSHq#o^wj^((uWtOJGJaVZzp9J}l<^KW-o?g)WIPmUQ^r1RI7y7%im^vAl8Uik
      zF%B>z#f(F=O6_f0TeQQphBTelRxM4QjQ`D3)?ag!Q;v=kP>8fYKr!Vb{9VFJgx^9R
      zIc|0ln~@<x{4P>v#2_T#A}1Khs&riBBqIevq>H?#A}&a(JY8f`A&V4JXPr_=R3UZN
      z`wEFEq{T%(P{;~}gk0o9g-C_8y2wWgX;nzrMLt$YyF%Jr<g`L&C#eNze&UOAmezxG
      zC4r4thfQ?ej0(2kPxRptjrIU`h%TDxtFcS;(<C3kpg2Oq+rp4IhlKbV!(y6d_I>OY
      zzteR71AD|@G>0Eyps9&Gp5rK>>vz6>2@$7V(C%OTGd_8oMu5Q@C0sMWMSRNS&v3~l
      X_qt?i^qHG8xcfca<_7n3wz~WehNaZ!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mt_MT.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_mt_MT.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2f84f2dffcf1ddac8784da893daf00eb2e83be1
      GIT binary patch
      literal 2331
      zcwUWETXz#x6yB$4lG8SA(*a7sB7tyep*KWCXhEU02qdjA1q`S#NrrU7%%n~x)Z!HZ
      zZ+O3;s3<C;k6s>Ji?#5HCzrp$pWyNrh~GY$)Yye<nTI+1`_A6q-m_<C|N7U>Ux;WE
      z-H1|yp!Ef}GFUXu7=v~xXV~UoN*(*$Qzg$ae5>T1aQqYLsVFrH>Q;^w-?9f&R@pyf
      zmP-{cXYQ`JdD|2e&zm{RF>KwOF+9UBd4jZ5Roie2gSzioZedtZ>uAX>`-bZuG3<&d
      zsY#F+5Y$odN|hP7%*RWL;i^wi%&j<C(;HVcNop6=l<Z3;hX#_#B=lxXRN?xyYfVr@
      zU9S}+XHD~T-k2*3T6Fxb#gwN@o_}=St3}~-$@Qm!B2Hk04QIx|*{-hl7`|D{c8{PX
      zWBBzY^7({sB+}`0Ut$hFyiwjfWmIf`%5vu2?-kTMJ-yx8UQQT^vx3@k70)x>+?+n=
      zWJ|WBRe~B)4q9iqzCF6&a*d!+dMZ^HR?}UNGS*a^GBh;YGjH~y2RXb1`h)TpAFpr1
      zWVUGLd^ACh<ZR2e{GE{R={+K-akP{-qlB*#U)VEALkO_!{@XW<d|uLhjQsv7*DSh{
      z?#HKLWLu_hNO}O!?jQ5Ah1=f(KFGH!(y_{twxit)uUSs@ene2zD);MF)^8#~J7ctn
      z7E5{<1#vb>yHOxAN!r7PZAlu30ewl2RGl12``Ln~Bs3}nG1i)h(Gu2r6x4nLl^%jI
      z?jh+E_te0!;k`q<W?($Vj9HX)Oet01{Wz#p1z+GvcA7=vldNr`^H~^^K8!q!iP9NK
      zrx3Qsx_ycBPRFQ|^A<5o$m?<<8}~>J%f)0N_t}c18JNg!A&1ATSuBF}5ylm;eFijY
      zVDo9vsG?kkjUj46A-?HkJ-}ztLzGid;CXx;loVXOh}q-16ije+FU4pnS9d`WF@8Bl
      zU9>n#uP*qz1d|e_*Z(yURa(*_NlPSkN?IzZOVTn)-I7*HS}kd<q_CuBNv)FNoZ^!h
      z^$@1AJ!QG(g!*4k8Cl*Rn%X@_49{X5kdYBJn9UTTFJg3+Hlla_w1rvjP5sZ^g#m9V
      znEvSezo4_H_wN6LW?e0`af>r||A*WF2hu9MN(hUz9SsXp1SksBKxhCp*Wni6);in<
      z9IwM2z!-AaT|A)b><rGO!Pym@%j)8m19#Wq6~HU&Z~}OB9ZmwTt;6e}fbRf1gqk<d
      zM%?t_VpiQ#Lntn9QGcdU8`LvlZIhmfXq)v+RNJCwq_$Ph#3R}^JfqsM{uAw}IX}eC
      zyV!Y@oyXXDuX5g}oDaY`9dBjlkT$6!;vh%p9C4T<j&ejsMI2WVPv9xF6L>ah2A<7Y
      z4$l_Ngi@iVWU<m|R&rRW#7a-GQducgl+vtHno~;8D5d9=(hE>J7p@AOXQA^TF2>t#
      z(JPq{_}9Q+0{<iJK%I>N^M+#5V8Q|OreX^GE&=nFV$Oky2F%-vxd=uE%sZTMxz2S4
      z%)892V5S!J9y1AMYEkbqlVqkTU_M}G9W%`V^C2^mnU;XL%uEY2v4HuAnKoux1Lk99
      zI&`$)$`5K#KE?AGMv`bV_0tyETj@G&qd#bv?qCl`XiRir4R4^mVgy@wg7%4%*ufqh
      z5Ern4FH>54M-$>EO^V;Jet)Nf;!kYfJ2cwR0L9N#7Q*;ltqma!;>1Rx@P?o1^MA^S
      oD6$$7t2)p%`cegdMPCQO13@qvedYTFv4`to8|P!ME3a?<2Kz_+*#H0l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c0d94886a9d9837c174d20efdb9f0d0c7a24c58
      GIT binary patch
      literal 4111
      zcwUW`d3+pY8ONV@C&|7^Hpyn&rgxj(2h*l4y=aGGb2V*~UK^T*sxaA|B$MvWq_Z<=
      zH&#Uj<WK~~v#8)LDAHD~R$D-eA}T5>pyC07f=KZ`5UIascCwwM{loT?ec#{reV*U@
      z%scP<?mqnLiBm+hT*RUj5j3~Y@)`#8A-y4Er}T``(C#;ztzO&7>aJ;9S6Z1Ul?a;V
      zM|rN9X=pcd?k*!|drrz|^sIEo5LA=0Gnqny<7JGTphSDYSGW2alCEP~ed`5PHQ83q
      z)h&0op79Jx<$?}r%e3X%3hiQTrM602t*z14YL{pmRbA^*8?}_$q@~qn%}`skUbR*0
      zQ#Wb-YMW-No3#OTi?&bQs%6x6Evt5Dmby)|)$Q7#x<lKq?$jK0mzGnLnyYqdo_e`9
      zr0&)Zs9oAYb&r-;yR~8U3PELA+j9F+@3_4eD!4M&Z#!;B5F-y5#=f+kN4Lr!=ql<`
      zJv*31TVgmmn#y6@G72tG<M&?Byw+dz9lGlpj@8t!J2^=cuyUL79qInIY%bZ-+<Kr(
      z-?w!b3+&I=th+|5|7s*nLOtp9l8%lg`MjWb)<~OPHXJZjP`Mvah^WrkR$q90hM-tF
      zU61jO`h4CG>Gd+1aL6na*@A!dqvLARMz8K=LgkDU*lA{q$@8!(ZEfqa*<y9!(S<1A
      zA6=Kr1;w2k4oV5ftAZ*<;_HXc)i5e4<vEUFrSi#qw#Uv$S|%vco57NrmYZoBGkCEe
      zWn23uRF^hVW>(K6jX~YfUE7hgT9CkumBztAyhzJ6btGH@*n)>jn|&rK(je!ckUq!u
      z2JuFV>3A~J>NPFX%}aU>W_kMhkMLajHc3tByma45yqc_OdAX$7XGv;>(-JsgFB-1y
      z<U>yJ!NT?k)wTuE*gerf0|(GTAsqno3ZTQxpwJyW=hgROl3~NKn+xS85ry@TDQsq>
      zowqHw_Y4>*7sgUcWw`haa9Ox$H}-Usoi?I`(-I%MizU4l6A$Q?r#q&k*CV^v=y3|_
      zDy&sj*BwmW!zX0WF;QF^wpjziy>K4zEcE*QUIx7Z80cP~mvcQF2E4iQoH6Jc*&YKA
      zZec1r<=Va&M5JX81w*{%c#FO&CqZtEDyUM@5GF%)k`AJS$|Mc*^jy**bWoC{H*t)I
      zn5+E`N_;C1d3d;M&_Mx`u0sb?OS&E%Oe^U|bTA`N_Kq0Ec(R*uo#5Q3b!6UxTJh`!
      z@otE;Y2|!z8{Z?g5vcd^Aw`bi`0@jY9CFM7UwjCW!#H9*#Pi%9qbi;Un<+AEOS%JX
      zR+scKv}r8fC(s@M{}gMqpFul>2fT~pb$0k%jH=n;9*~V4lCVW0J34seXpCxj<clDU
      zO_ILM5zRdEl^DgTGRlKr!!viabV|bhO>`MKx4y-5>_H=E)OVt0N%skwIGSH!XAQ^o
      z2Oq#&?rKRQ{hL^*c09C=MSl>UP3-w?L3K^on2xSz#`=Co(A4wCLf+ryUFv&(9}BuM
      zoAXyKE9nQYZ(;i%q2%rM`6d4tC6DGI+n>U=#kYMN?_x85b@g}|UX`E4sFo5@`o)-U
      zj^GqU>6fEUO94wNl~f@qCaFqNwWJzJaY?n3#!0G^G+EL#Ni!wQmNZAwd`XKWEta%I
      z(o#vwC9RaSPSP4lmrB|oX``fONt-0KN!lt2*UL`ShHITV>2h4j?WSdH^Y~13>OK55
      zo$$ZkcjI)j4q%z)pY{q;L}^SY)P;w3`%PRB^V|QQ-v|6P*=M*-#e1c0;i3!QEEP%r
      zM?<U0(@wsS*HX@+Sy*5NKT~GY6e^`Ms3=r~Bs7jS`cwGC`E6CuRtIfO(8hxnZ^>`R
      zg?z?C*M;;%=*b~H1^=go^mOQ%AzcqWdrbVCke&-YKcp8xFB+p4hxA3zOUC3c4e18x
      z<srQSdSytjf?gBSYoXVL^m^z^$HZ?4>C2!uhIAuzb4a&9ZyJ-|7Sfxcw}x~(^tO=R
      z4!tv^cR^!^qOahc?xrq`>>(<7(H|$}*?84S>h4w&dz0NIiPt5&OA}WnyUP-KvOAhc
      zCA($9NOs4|5`FlLCQN+F#6EnMC$jjgNZ9zSOzck{quhv-$4&>>DbG%CC_25-cY3q$
      z^cLUgZNAgBzSG-%ryJmOQ(UrBN#dPs@-8;Hl}+BmChzr4-tU`y5W$B>f<Mf`ALZaX
      zIr!ro{7FCf(|+)05qx)Pp~TN~iC+LX5`be2z65Z*>?D1)TZxwy_zC7;XXg{_e2Sg#
      zXXkGuF)|W$nxnqOQKvcTA&z>OqrQiz(vhe~IO>NS^$15j%27YzsK=6+_=)(ell1d$
      z1qD5c;9qgD<VgbXYjlrNjtv9y8=u?+QWlV>d~z5h8jz=bayN(!$ZvgeB*`lipl5t^
      zoY6?$vp#x)(MaO&xT5h)$^-IyCKH)d1mrm;Q<zi+<as93nZyF}2PXAQssi#tF{?Tt
      ze`GS3NlidrWU_!sJRoO^q&6TgF}a9IA|QV%`iu+6pP4i;86S|pFj>K5LO}k?WEGRT
      zfc%ZgdL|PC@^>a{nM?}EKZ;qC1M*KMmob?Vkbg00WHL1%|7Oy{WLiL8F8WLl$bXn@
      zW-=onuP|w6GBY6mWwM<~eL!AivWvIY*&}=v;LD2W3@#|bg;R%%W&^e2s%fSzxKMWD
      zZvdCct!Qt9I*h-&aCw|U`v5MDhw%3#E{+$_o}sJgEPhDFX}_qWoY2S>J>-e&@I&zi
      zQ6g>;W#UdD#W7JX9uyVgaZxFr7cudQsEX8x>d0(S6Im(ZkycR~*&`B>0WmIeNQ{r%
      zEG9(m5OtBGVq)a9m=t+TOpZJ!rbb>C)0CK)uFMcKlx1S3(kSYcPBBaA6|<FtVvcg7
      zn5*0_<|+4x`O5ubf%2$Ws5~VU<r!)a5&se-d{ZkUS0Ao;{5(fny7;&#Ikz-rJ}jif
      j3ITYKsGlrFd62v`NXF?nd++F6u{xAnQp~OJqbmOg@{X(R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl_BE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl_BE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dca6e00fcfe2e5066d2745cc9b108876b52d2748
      GIT binary patch
      literal 2273
      zcwUWFTXz#x6y7IklG8RVVJM|wxrSSTHbq3l7Sxs&k+ulK#efRa<TRZ!nTeB`*47K6
      zc)wpj@vh4UAH6)d7Hi=TaQPej2`+zu`0bNP4PCgF4>@Ol-`V@y`|RwT{Py>aUx{cp
      zeVd|~plu~L%*|M{R?hJXmZNfGdOPAyd4AanY|lOKI_HN*Qq&}<TRVn<?c~PnYH&hT
      zz0fbHq0lWlN>HY#3U=9YOjWUbEAV_l##l|;a!WZg@NKs=AgFEFbE|>n2B$42RFawn
      ziCu!0mwYd*z-2LBQW{5ng3@kSo>cy*u1V4|L5XZ%Hk*Z3MWF&Ws2>@EV%aT%<eX9$
      zi`INq(28?+ETTH?`N5e*uU3u6JvW#JN|qxdVU;Uo?924=AuCYzOm`tkvDiC4-a9{!
      z;)`m^3Z3AjU0(E9Cx`^K7ee1xZeiY>FHd@oq>U(XbO^n%-M|@Ma=2Mgd}w5}A*`;p
      zP0+gRE?gR){=WYH4VwpgZ^tO8fU?mI6x?yH@!H2GXH+4;wdG*Jv0Xbjh&<bSP77)p
      z_KGS+XmVz0mn8M06APYOv|!&YC{?zs8n_3bXuDMn?&WrSDnj=OYAzy1`5N92&spD|
      z(O?js3+N#qHKR8N)3ky*Bt3|hEO?U8l~~!5bO?LVmV`dU=D<J982cmGXE7FI>~FEc
      zM4DEz!lSs)jO9u?0b@!{N;(On?4xnGWZbGC>M>>%WY4m52<OMOfwn)%J|QZ+0HdlZ
      zk|tqz7ZF~B;d--@reI*gIqP(qIyvhME{Ck4<wMoM<&fF0As4fQc5wj}9;1qHBM*KO
      zO~{P%KwA#1S;QfCSPjCeq^Hq76c8vLcu5P$fHFJ{o`ok$iH@G<0aOKzxTqJ>w2C^|
      zdNEC1)RCeqONKw1f)u@S+qYe#C9ROOQc|a+Rg$_St(Md+X}zRPlD0@nNNSPPCMm-y
      zuBB-^_273gX1i)a|2j`vll%%8`UN?SCNPf3<e(n97K+nnX}V53ar<D}#+>$y{m&N&
      z!`oU?!SLdQcW&>w^NhEc`dJ#aIdk`a$n|j`ZNydLcn+7LVF^kCrGR3D22e`_ZUt^@
      z!0o`92D}^?lMK6y=TYyS(Y`9$yP|z{L);qR?gqRTczpxj0KBOIXMwjg;H^-=_W(PN
      zns?Anob1BEoIa;mJR@&XZ@$UMnfZjV+sr48J!U>->^1Y!*k|T5Nn=0OlrdobOb6=D
      z53ut?>^#iQBkX)wJ0H=`N8vo4X=CTOam+--agH!K;uJ@m;fTDBIHx0?z$%UNSep$C
      zYl~69+G;2$mFh}1D_vxzGAntDN>6E}s#XfM(wtVB*GkW5rRSh@DNz$z%R*~GT+X!L
      zq?ht>@GpaZ75q<h0ChG+%xjt%2a|}H*ELh(yF|<znz;lf6)|sW<}w%=F>i6kH73^?
      zF>lvu;F=@m9cDH#Q;&L=nJhES5%V51TbXHznD?2H%(O<#2h6lGla81VnQ3RHEn+@m
      zX1R$LT>ViG%EwsGVkC+7P%rI;y^p@5{q!dd&@H^TNg5GdcyD*mVKIpJc7l$G3wUpR
      zIx4Q<y}d@`;(MA9H|Uu79k1;lbX@#}$MzNt$6`?YL}%guyX*BKq#Snq1yW+iFZAiZ
      qWh6CO3rW`;=yUo)2Y*RlMZtYhFdBXJhb6J68e*FkW53p3-~0m+Vdjni
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl_NL.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nl_NL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b56f82dbedde8184b8ef21be02aab25319897dd
      GIT binary patch
      literal 2266
      zcwUWFTXz#x6#h=qB&SVU!ca=Vf?!Z6(x!-r*m|Q}MA9M*6ay+ulW998nTeB`)>aWz
      zyx&E^yFU2fqn8KQVlDguE`NhR!R0RyzjHFFp$pgYA#?WkoxQ)k&z?Oezx{pfR{%Tk
      zZ3;1gEz@q8pS9+!e8nqS6+2(h%OQ8l^Q%_ic<vdua%Q}cLYqLJb_@fjk}o**;Fw+a
      zLce714c&6Z7RZ+El2f%Rrd_jqEAV^)qtMW{-08d-_>Mb0EYLaXx%I$ug9)n=+7j&o
      zV!Ob~Y2OQLbXkg*$Ou3n<A&8q+drU7l2{>-$PMOlIZD-R7T^ZWEkhudyHh~U+xEG#
      zwNMvWb^4Yy)Mq?DIJxAN)_BZwgBhY^H8K)bwN~Z2LT~T00=t>%HYO>T2gb$*78Y20
      z*`Bh(N^sn%MjirPrO@|nx3pj`R42WP#O*9@s=}r?ZcrIrwt0s@e7tb5C9Ii=$JwxX
      zV{SVS%-_)9(9rPBaDb(hSTOs*QoB#L9{9-QtX&FtU^!B%IIa^s#5`O3Cj{C?y|SGG
      z8=qa?ABjQsV9|5S7VRN{RMoN?;2wgq<JL8}S2fzRBXplYdzmq|ui^dlob#Po4IZH9
      zBD<%y+WAIDGFXLf304zZ^duhPTD2thaxFU&`?$`NKcFzz$GFaM9v)ZzmQpBWuv#gM
      z^E|VbEAa%4DSJ}l7>%mW#vP|&)fhFQ7@M+BD(8^Sr?kPgKc##^R`?8!x?PhvOT#<I
      z@JSl3Hz!f1!O>P(r!weKS!Z}SW(_T$s<S*CGy4t17o1?bQ~|CUpqlS6PmK*{X72mi
      zs?g$$NahafL0FfVWBXV@V5?D=c#auZhNr<IJy}Y$^@18byQGmS>ctG!pj%lNGw4Nk
      z3NJ4k`)CSMxOCIoZqO2|BvwoGNUV|Ql~^m$C$U~)qeM<3A<-exDUnqvKF;7SY~dGC
      za9n#_f0xItN%i>~`s$cq6BLff<cJ=+4#e?U23OI~(+4vS=d{1@Kd&ARZ+hAeMwceM
      zXKVkhXS~DI_t61IW$ybAxj_|(O*~4R_uvXPEP*6ZiYNv)039tjP2AanyNI(bcqK6>
      znRc(5N4@q$>zZiojn=g-aqEctmgQOBf;SLvY{8p|b1ir?75E-#$651M^mAt$H|F&|
      zV)3lJj=PI(#(-H&7<sdpG<KN9l(Ew+N@JH<%qET9e5Q;&=Fb>zIzOnKA6CwfD(6w<
      zyk9#X)Xs<Kd^p>woa4rr$%rE=;;4!+Rm2GuaZ*PVb;M~trSUYM?Zz2CI}D4@v{9mx
      z-Bg-ZN{&)Gr<AHoN}g7FRx8!DQmB>YwbFuCdY($>6AhuX5=xV}knOsTmx^)nuaJM0
      z{7)EWiER<{nr04@Nkq)+nz6|wBjydwoL2{nm^U?ZfsBlpw^YV;rm8by-fq;OYL1w9
      z6th7w&8T-3vq>@S5%Zp6HY=thV%}GbR7^TzK3G!DM9hbZ=~7H*#C)Wfl_pzo`A0n{
      zpYVB#BMI!p0Cv&djqk7re_|Lnc+V!WU-a^x-G+l=g!k+?4vDk8XMG$NmrxK_Febj|
      zEqe_|#P7Uh|G-i47w^~`7>&iKctvMX|I$~RLx?<A{&6F*?H7FdZy8BVHbOED2Yik%
      ebnut>DheKqg4yWHKP-zq(GuIX6#KRI`sN?2k>x1>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nn_NO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_nn_NO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1bbdb0e6278bd3a5295045509e3b3e820f0f2a00
      GIT binary patch
      literal 2281
      zcwUWFS#uOs6h1eTnYl?OVQ4}K7$h)kVab4qhzY2KMI@65&EkLxJu^3xPI|h>o^Ej5
      z0L6V@KygJ&t9*2Mu!<^t&^OE9;7_pp1>$$^^u#fRRpz1Z`M!J3cg{Wc%+0TVUH^%Q
      zw$hhLY7?}s?1tGH>#UV^yrSi(?6_VIx>KHCu>#w3PrL5viOD3j3mVXlVPHGiak~~A
      zQ8h30i)v5kmK-H0T~bB6VmYR&TD}!{z93_~p>4V4tQq*WTOJYAJ?6Q!z;c7*mJ=#T
      z9fHIrK?}>i7gpgi7cVI#sO{%#f>Lf+DJXxxE=tk@K^>V*naq~qOeO=tszMoV(A+iz
      zCG_?hLGqkZvn8uu6SU~mEvu<bdwy_Y&Z|q~oaYA9K#59Z#H~uTf^~u3-fIP_ne8@|
      zS1Jt;=5o2gI{t8ylA5wYCpc<X=DcnfM1p#Xq3<iVSU2mHg6BwDi384Zqii>D#^!CV
      z78IM9Jk%1_R9h!#@#?`w3$|<-*}S@G;=n~zjAo$L-czk7o-E9$Vt^CN(V}C!cCZ`r
      z>xYgDY9I4TDoMk*!ubu71j%F#H*A#$CEbDO$}e9>=uT_}^;!em1%P{PfV<&`3yjb`
      z*qZWH1B_zJu|l6w2U@Z_MT@9c(tW6=7Q$f<3PKK8dqD+t82e#(E{q45@nAd%W6Fmy
      z4sXb5sfiRVW~qm;Ib*q!j<A<1NID9mVqu_g+L%>^@vvrWNhjGkg!3cXK-(W<pAbhs
      z!zHPzqyp!kMc+#>T<@%;DHtVH<E+yu>f@|4m=<IWIgP_7Rs~-Jmk(t5HAz*TqpEKs
      z3GTcdX;DC+EeF<FC?IiIL#8J%;>aB+o_k48a(8C~PlKn?LR1lLJqv_VG~#+Lq-Y8C
      zvh`ew`l&Zbm*&lWGzm$1@n1LIpd~Gmv{+J~q$QI2B`uXSAZdl9Rg%_7ic9L0)GaB^
      zDXyewJq_V!F>bqRLjOpQS_OU$4E>TEw|tv%L?%Y{;B``rK2Fh9+K96U(>7*xX#9V^
      zL>S<%vI@rLro3<c(5>gZ)6~z?ew#B7{D<5y2hvI$C5C5l0U8#k1W*#FjnDw<Y{6Z?
      z-7UBWINgF50%MwC_wy*~wJ%ziL~DPvE^Uch20YM$mjkb8!Gpl7T5tw<O$%NN1>6Jd
      z7;4@?8?mzq8|U;swZ+o%25ru_8(A|SH@2Gjgt5)cCyni9UK%^hd^%z5#5ZY-m_N|2
      zrt`h*d_OynvGYE5KA@csYUe|6&ZWEAIc7|nh&ap<CPy6Oh!Y%<*Ab_5#H091<21e<
      zhJ|mZQN*{)P*5s2m26g;Wu*!$d2>pSYo(f23boQXtyI@aPiduRpmaXo5L(Vc%RyXB
      z_uQc8^D*!*fPV@6_p}Rjwnxm%n#qBQN6aglDf3w(=2gv{2a}AL*EDkxjEtDqIpZ>u
      z>x`H;8Z~gu5%VT9gUmFe-eM-hOh?4L&CFV6IwR&CW+XFR5%VrHUCg8+<~?S5nCXs~
      z_nBE}q6L?~(}VH>z9%t~MB8XHZHK*szM`G<2aV88Jh%zkC;IW;ZlD8V6wmDh9TaEq
      z+WK@zT*6~}g>vE>nh@7%Qv8O8_IElg{=_?blg8TGp!lKA!vE^7HiwY1Sn=PF;v0UX
      skNznmp~*%_s^LJN(5E{1Gx|IV9*%<1=*!>Ei#^s7+ddb2O?!RuH@zF^*8l(j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_no_NO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_no_NO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7790732dc657707c924f602e84ff9e52e68eb69c
      GIT binary patch
      literal 2287
      zcwUWFTXz#x6#k}ZlG8LTVJM|wkxRK1Xagc5wxCijBE1OVVnBsyGEJvVX5wT5)*GUD
      zzh6M{uFD4>y*$WbEqvk4<!|sOxcmj;w@)S^cHvrPt<2fqxA*?`K4*4Le*62{uK>2<
      z+c;VbtS`9L^o(`ZN*BGHRkYKidO7G$d49<X9M3)NdZ))H;%GI{s{^ZnQ%sLKmEee7
      z@v45#-cxn+McY6sZ|9tnRm|9B%eMm0H(-v|v@N%g&IG>W7KRLTjCgJ(u-xFdRjk?y
      zZ3c|Z1{M~4uUckEBVQp&*Pwx<TP;o6{(jw)!UAgaZSL!n@0LNX#ATbExIsO{G>~Y7
      ztTmv{+4gMSnyVOCbn3QERi-^ZIMIk|*LcixgK45zDKw&1sa)c^K)d%^fnBe72P@|D
      z17l+YbNp~Sd3(yL7K5WssS$Ih0T}4aRej%fb90%w(xg{ZSY@DPR!+-tgW||M=Nbc%
      z@rgrCX?3;rd?Raaox_$bLu&?_A$Of)+dLIE+;ysX+Y^&Bb}rzy)o`xpxK6N}RW|e=
      zH_$rb<?T3l=&AXqq(I4d<;GPvZxP%j$70p&yXgoVzoNlCbnp#p`(AN)q2oR}rhHr5
      z!*mpHT=fascqY4(ScEQx2iSpBP}swcD6g=W2DKIT)1a=xL&C^-JWPXv3ZqODHIW)m
      zVzEd)Lg$PK9FZt{QsJnUWFGe!vC1?a)r_NXQi7`teoPxY_a`K#%1+PFsMuwNNvS`}
      zgU{1&y|W5aH1c*us!k`-Emdc@M^>#$nIiYd!oCJBTV!#zUzRZ{`wolnrMI#y8wj*j
      zq;-}GEL^Ry(o+W7SUa#~{1u+2AUp6hc$ROEU4*XZiP(xp($5P?EJ2r8FDB80t~f5v
      z8~tzw;&|m>@47}SEK*pk(5<jUp+{k<La)LKh1Cjc6`~3Wg${+3l(?M42K4h+G3vPX
      zxc;pkwI=0GF!g<M-0~g4AsHLiBbPt~pCxexo4EI2+ToP;kN(g5h@;zHu!E7te0Oi?
      zzx{+KGWwF*??~m||BxG$M6BXgBD@?I@W7&o5ygpGzym;{3AYn>G~rI-R1;oE%xR|G
      zBcrI-?r>cau07$pv?*^Hac>h|PQ0QCuOwdGg!_osHsN(t;CrAQVb2?}iJr}LoYQ`^
      zL{jQH2C}VYI+Kl>TQk|1xh<28o7*#4W$wsiQ!#TVpK)_2^D}nUgYTE%2PJq!g7-=A
      z0Udl$2OnbaSgJ#UBj!Yg8HXh!BN@je<Ah{nb;c>3@i?E#Jk4jDY4Mpbb9}a&HkAr>
      zB}bHIMX4l8UPI|gtyIxURjqVRE6r)8XSC9DR5~B62`v|)<s>eoI<MoUY=r#F<X<KK
      z6LzuB){uEkGh<|;A@jOs3bL1wc|$Yj$;3nEP0d^&qeA8_skkg7eTK~2wH~DBka<U#
      zmBQ4s-W8@#n6{94PndPWBtqtWVU#fKA@hMS?ZPBO=0jmRh3N>HkAzv6;SpT=Q4h+;
      ze4gY;0^2Zv?X-8`JM6@t7{X0nxH0TAdU)S%!~tWN*X=kC8fSRh`Z#1<<YjvqW5)Lw
      zH?CpA_?;K+A2@9M#e4Q9Mp{~^_=&C}|8-aDLx?n2{{11k@fUo0tBsf@YbnWE06xbT
      eI{8a{6($dc$vo&wKg`QL)|A`Y$o*PJee(~BqU>V;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_oc_FR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_oc_FR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7dcb834cf48aeb7c2771d999162e7537aabe64dd
      GIT binary patch
      literal 2265
      zcwUWFYjYE26n?g8lDA1(!nTxx1;L<Dgrtaw*m{9N5lKNBE(TQCY~H3@lHI!56f5Et
      z?^jgt?k8vDqsj+on87do=J*@@368%&eBL*k8ag;*XS(k>&wI{uE_?Rmx4*Cd3Sb+)
      zi=)H9#){j>%~*3*uIkxVRp#>gIN(lse$5IT&pqwgr^hGb=rk~>4I6<|&E=hXFe&R^
      z!?)$0hFh*m1L?A~otjlG$XUy`0?#*K=9}D>Tgepy-*GD=2D-;Qw;ot-aNMdkq(GMe
      zV~c_172j*j(qz$JAY}jsQf{MGlK!|(Nnn|QXeOJ<WJonDnSdL#u1o_RnY#^$b5foy
      zTk~}Ty{B%QLw(xwgA<EZNv%(KZZJ(PRttrwRhzBxT&A!0T7hguy2C)CT+U8RWas(E
      z?8|b>YE*-xPA#-C&|^1zU%K{uVZK)KsseYi(s6dhaf9mElDoSMM8+q_+q_z#SkKzb
      z7S_xE;q376x(y>+Z`E0_&5YRy=Gu3vz2d{A8EFTsSd7|L$8~~77-!SaaRZ%WURlP$
      z&Zn0)NFZw<US=t7g)eBB9Vt82hFcf7Ps=sSr+hzIm67dBY7c0anT2Z&Di0dyDm!!1
      zE$h37^j+O51+t4TbToxt^a-e3NFeYS1@a5*p+Ithy-JX_06WsDNCh4zL`H!pD3D7r
      z<x^Opm<|!DsJkaAOv#eKBn7KPrlXqD5n#=c85QIyEwJY&$!%2@t_eJ?C?%WyECtV|
      zaE5~G%?XrLlG0Yu$|>}#Xj3eQ(VT^=<ez327}0NPGaMQgu<(OGm91h1j>Sl>s-ode
      z3(OK_@M#syR~C$4r_6Z~%s|#kK3hJ=2u#D%%JaNpD&f@&s_W9$no8=$6jq{7NiU@^
      zfWA0hSu*wE48-x;E$_Ms3-k)C5a<_JDKH?gN?=f6jlepAj6hT%A<!+5Rv|t~;T~+{
      z2a$JNc}RbjN3D|j`c1t#j$5pkdI-iw^~fa<!RIMl#t_>OOgo&?q5S{cJRIF*MFwMw
      z^WDE`==KwyDCl)G?x@Iv|3Q~kj#$r9B3y&Z*sv&K)Z)}Szy=`ErYEU)x9L69({1{4
      z>YQZC18NTS*&m)O!*d`!SGD=ArarhN&YCuTE%kM6`g-b_Hhlvb_#P-nnDZtK@n$nG
      z&gpw}MAG60?k#qjTMNagnJW}y=C(pHZf-9Wg}I|pOvlWfe8$aPg=-jT89%IyA63S?
      zmGPJ|-lvWCYvThnKA7%S#u0O(K##-9W4H1+qC5)9<Cyk1p*@Ox3iA}7UFI`<Cd|`(
      zCQXY>c8f_Wrix;66w}#7rkZB*G}CjMsjitCn(3TonkUowXp<<Zh>`>@q<e1Q<zj^R
      ztHfU?{xe3%*%=}iHFA(hG(_Ieh)pCGB5!KsJdt>ayrq!~Dz^}MTSZ)5P<e*PJIx$a
      z&LQ%yLe?sz<@KII)+?kdMBZ1(28AR-<O78Wg(O4d!$sy)h<v1w9))y=$j1s<USJC@
      z{iFxwQ$9~}B!TVNiXD`9;(P4EpBTYSF4-9N83Ww0o3Y;*<%T_k1I8IHSRV(Ci^v;S
      zFkxKfcD;_n#_wFNf8dDm7kBGTjCFL7@iQGo{YYPK4Iy$o`MZti=3j8--!x(xY`UbH
      i2KWMBYUi);b?BT8o!RJ1KQ8e-*5=!}==+Vf`t~1C<>|)&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_pl_PL.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_pl_PL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f74b3d0cd99aa83069791a2578e2f605f884e38a
      GIT binary patch
      literal 2295
      zcwUWFTXz#x6#k}ZlG7$FVJM|wK`<y3=>-uHTW^$$NXjixOi^K)4C%DVOq@)pts;uW
      z`yB-pZx25B=;gt+SPP%*i_72OPjLAQ#BZNWYv{tY>{^|(_jmUG_ILK|Ir;7H>%Rcl
      zhHv6%GO(%W*7_%{b5?)J%UdP8Kckle?pe<-TY=-brz@q?M>26V8|c=7wZJL$XPjzq
      z%&vMhKX31@xrLH#AXTvQPT4AD?TY1Ff#(}AGj(puE%s*v-*JnB2HJ)_w;EV(Flv=*
      zwnB>mW2=GXMc=Dc7_ykJkTd`TNw-!WxBY!ulEN|r(R5!rohDVqrT{ls*fI??rSCSN
      zrfqwwV9itwtT=UB4b=(H4^A#dCA2@{xxoazSUEJJR=HB<x=e5Hu>yOc(j5j`XZY7U
      zGSXWpP<_EZYt>4@ai<){7--MeeBXBSGufH)xK~oR(?Dcw{v!M0xIt-n$?jd;J(3w~
      z$Xh7J6LoJ)Z{?BsKhQTYFxY#G%LC`Bn2n&;j#G^%K0H2Y=L4Qt4dqLY>jaOm%I2O?
      z1I@!;!H$ESPc3bbLZ5*a*Rcz;j$N`82Bg(q9kAvv+EWVmu}#x_Nn+nmd;Xg56&U(}
      zh?$+X{6KadG!U;izh2VLLkz2W<6dC3@U0Fdu>u_mB8bcikI`Teh21nrt+0nGg;!x8
      zA+jnwK}ZM{o+Lyzp~@t&Qm76I6wD|bp;4-_bH`|uEl$#L8dKAb!l*_j6`s<RtUD&b
      zPDSBqNf#y0iU5CB;fz$X=C3P^>!7Lv-*u$u*QD&(Bs!(+1dq(JB%7a8m}CxXQ$<N8
      z$?|9Iyn@SyvOd2M9aPa>vVB1m_@%_CK--*~7K-pI^}us<DaEeV-RJo=h#+|}zU#25
      zvt**Mz^hmVg%=r4b+SD_CmLT$Vih{XdO3+Mbi{FS$u|*BNE~ywOhO%2SfQ{|p;KX%
      zLYKm7g>Hql3hNcp3Q>htg*Jthl=wJ_d$5V0OU7~SL;9mVZjH;`VCs8i)bbtiLoha^
      z2eK6re3ryj^ssZmgu@x`$^6fIiG!Ue+QIPR^mlIVx&8dNX7y#Y&ymXA|3TL$iP*rS
      zM0iOqW5c3|(Tme-0vmwV20uZ+t-)`npK9=z)8~lO?vnY`YiGEw3fHc1UEPqkhJN>w
      zI%^yJb@bOa_#5b_8~lxA;CrAQq2|r#;m#IrOzV9#MN;Yp?#(ruz1dvU?9b+6=C*7u
      zZf?)!l({3DOU2Bce8$aP*`F}D5d5$NKPthGOYpD+@72Nkb?^ZOA567LaKs$RGUKph
      z9F>f$WSo$UlR6`(GfwfT%xCy)F;DZ^YFd0I%siRw1*W1fIl?q0Oyxx;PcuEInW~zp
      zrkSQS(~M?%flTM4b)tk2B?w$dwco%ixd`!BiC-fABL*q4IYeI5$U!2}5P4lAHj!9}
      zyrGfva<CA2QzI9Ms1SKeDz3?j&JcOKu0b@1$UB0p6J#OlT|qVo(h?%?39?a;))0AL
      z5G6<=L_Sz#PKL;bg0u_L79t-BvOLQcT>e21$|rn|aU_B5=*14&JMk@c;ZF?WCU4&u
      z_8MKhd$(Y}F~qC)5Dpk;c=7r;Xv`sFT)~L(9dF(1IBfjROZN{PHU8qAdlSP=O=P^H
      ztH@9I)rBEMKUe;$Bf8~heEP49m<H=9$$9`j$2Fb&1-=ZE`@&>4`ttWna!)kmHZSIW
      IrK7(72dAa^%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_pt_BR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_pt_BR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2723253fd7ec8a35578d744277c3c6b9208e7664
      GIT binary patch
      literal 2279
      zcwUWF>vI!T6hF6VlG`LLVJW3xMKDz;(gz|UwmxW~2&AoaOEI9rCb><wB)es^TPQvd
      z#rOLGif<fe^rMdt&M<>t_~!UG_$N621>*1AY-;G>jGgJ;-}&8he&^h?XK#M{`|7Vm
      zw2i)rQ<I=gB`4^gvlguWvRkmqsz0lj{mzW*RV?3jo#XTV@!`ohH4Ey}j)8BN`?Ge{
      zpHx*h@Cs@;aEfImC|y(qyJD41HE(&A?|OoaY)#v8O8utq*-mLtQ0s{6RDH|wr>%0J
      zB((?<TLrBwd2TQdm!)_~DM2JC<ph<y@<w$@l2!<cX8JOj45a223UK`TmLaGqbC)1_
      zTB(yoYq2V5)v;UFP@Q!>|HzV8Qrly$<Ilp1RYDN8D)SYrEA;jr%UAVGw+TuVi@jrG
      zy^Hum^+h#f1!aHAu7o~<+6sZ^DW|Y#E>`kxS<)RSZ?YS0u^qoWvTXBCL6PCfY(rQ*
      z7Y?*OvlR!%|3Kfsz=rO@-kWWlxPX$;2^8CYtntVb`8ieaab!7EDBF(hKa4z^d!_|7
      zkGMq@C$v7jyhD=u1jUPP1=y7|0Hdl(c+Zxkd(j_XdDp)Kz7P0RV0k|9{TkzBzz?8x
      zRdt5pgB*MPO5Q5EEqIqhDOyGClDLXJZbj0g0H#95VSp)xm%az!P=L@;4Qxq|X`eHa
      z4xnliVyu)+(P~y2$L0ack@Psgs9KOT2{2|sX$oL>9$;ECP<n!$12`Ym0BwJgefW@1
      z>m+FR34n<JAP+F^La@lis<WJRCPf{bbr#2(vm9l62%QtuGNTrhS2N2zK^8g$?C=of
      zJsX+kQGCU+LE_7Z&IQgaps!(>;R3>}l3VqG&)|Jkm9Hv!7Ceh&Zr}&ncotiZyAW<Y
      z538uoYK!Z8Aw_GbozaUa>ZJBKU0C)FgaZ+$S8jUoHCoatNvkDwNLnMQQ_@;VU6O8>
      zv_VovQdCkxQmdpir?`}&yJ-_XkF4#eas81_S$Vz-41JGGTb|8!NXCZr{3R$tpQY$B
      z^`IgCtc{WF$^OrK2y>h)DSu>X*gH1&+<M#-roNm;ZO+{FA98&hNE>mK2rk7HXjqhD
      zu;Q?q2o0b_gPnxk+F-ZAPB+*qVPm*~J9#wq+7Yg6!nHG8*EYnhgWa_(&+QHNde|Ep
      z?2WK94R$va@E(98sChH>U}p<9PV0SYilpT=x+m9c^qRS-(QoEr#x^q-H@2HOY3wj_
      z>6oz-&$zM6{Fw&p&JVHkBka7Jok!StuXf(2o%h4}V7ir^BgUAChzX83#1SS(9Oj54
      zIwGedj^Qbdr|@hsj^mjyEIgA&0ZOW_RAMEYl}@r!g_T@ZI;EAWS}D*<r?t|eR(eJ&
      zJqM+8(V9?_g_0o7r`xX4OSuU6m%+aZ{wEqliOnJNnr04yiH6MUno(e4A@hc2&hf!Q
      z=1t9<2O~q~EzY>k<T^v<?OF|7bI82I%z9?(QSUOdk(ri|d5@WHW)dOuJ~NV;WXOE5
      zq?`(w51DCWrZr?fVrHd@7F_&M56Z`Q9>qu!ZKqz^0lbsGrCszV4blzVyD{1;I&tl8
      zp?zWqx9&LY7bkG(dUQ}+psct=W8!;UxL0XH{Eqwf4>~0N!gYItMw*(S_=(QKKiQY-
      zLrDEt@heWzEx*vG|CSNcWGy6BbD+=Z3myC=eH8}xg~4d_#UGZ%9&U(jUW)x%dtLbl
      DvSsO_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_pt_PT.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_pt_PT.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf2692ee02a2fd045c58bd2ddc3d6dc53b1a0df7
      GIT binary patch
      literal 2280
      zcwUWF>vI!T6hF6VlG`LLVJW3xK`<y3X;VZ*Y<)l<SV&u7OEI9rCb^^w$!^{30>uZS
      z_<lb?@r~mQe)RFd8D{Vc-yHu2{{+XsK>VGXO${BKu`}KKJHLC*@0@$~?#XX|U;CAa
      zw$Qh6Y7w-d>;%~p)+sAnaf?<(WpjENcaFPW)$(oEIXdSb-8UVlRzW@5G4Sn5HfPuT
      z1FGf*UQz7|oKi&zN|#j8u38mS%~_u1yPhB;SJ$?ja@O=c+bItUY9Dr;nr}J&j8zGg
      zq&7ifv!JDA&kg3_vJfvRC5Qy2oS<4z-k2^)(h@<@On)Ymfz+Hr0gm6;G6c0`?iM6Z
      zD|NDD&DR7iJ966^YO}8AA6oEAYJ0+U{8?DBY6zlMb*_qaiQXQueAUQwhoD5M)HgBF
      zH;+G5UsA`dpyE&4)zC*!M=|g`<rL@5`D($fNV-!{WVBX9Uu?&(3@_Tf3%mQKN1Ngr
      z$#9}Inawyc{s;O82G*`0?7P**k&CDqtw6P%N1D$(RXCxFKF%zMiWS?j{YQ{zWABWh
      z)?v4#;)LF(7q>`Kzo7VtTLpF{4Ztu}886zBbRQZtt-Kpof$s<2A6T9b{D8(d8SsPX
      zovF?+e28OjTq#&3w+%0IC`HStQxaDJeMyf2KwHu-0O(2@0f4BaF%4`<k87VZlJ=l#
      z7GtGcik7p|BsTY0j--76W9pQo0{{~il%@f8764{61EnX}Ie_zF4bb){*@qALv`&I{
      z9|M>Q015z;E(A+ltUAkCkEf`Mv(DmJ$f|4)p(g~jA+z%8W(A!<{u@_;9drUE*vK@8
      z;!y-hd>T<yF$?HxSYdbyVW_0$1E0bBLNTgZV8OFUhKd4hJclh*6>hx%3#Dm`>w7Up
      zE2xvvODXE6&Ny9I^bv#?B2KT~^5W~Xq-BzpOX`xeLQ=P+m6CcSt(LS_Qbtl#QbJO@
      zq%^0vl%jiR1HO-(?Wjrpl}=j)9tMUUBr}$0vmKJLA$|W66rs;kbeVe55P#OjmF>;_
      z&q0KHoGdGUc;T{lZS1}Mbx)XjI*r+!x#vIR`Z<u+;V2PI#U*H1lwz>ruv!QWphT0M
      zgx%g`cfd|J*-K&Laszks)zoWOxULA-?r>e%6t@a?&!Rl5o9s2P*EZSfU}u`_^-#cj
      z0FI#Mjns>sP1rcC_o*e4me=Xte5=uC=A%Z|%*Tu^W<G9gHS^NgX6Dl|V>_O4V~6=O
      z4K|z~X6HxQc_%v$v-7BS-mRU-;k-B9&dw2I!bHRrN9^YalOqmt#33D#*AYkXl*Utd
      zwi!q9Oc)lPNuvlQ)le$4lFdpdS*glOE-O8wm1<fk&`PJZ(!5rBRx3RZrE}4`P?Cj`
      zAkL>duG7o;2>4gPzXtv%8bpb$A@jOs_JWCq%p00fU}7Qjre@CZ!9wOO&721#L*{MH
      zxXR=@L*|`&4P0}`yvxiQW*SlNF|&@Dwvc(Bnf1&hLgoWzBs0m7`EWrw6*3<&)4@!8
      z$b8JqQWGt>_@llkpWt~ISCVKe_0cxq?erb(pg(DlZes4nXjF7#>~5mnVhB@rlE%d`
      z3|)`*iVKtzmuNzKkAZuQro``<w|~%n@fXJJO&V@#f#Rn+3;$+cZd^jjV#UumMK}FI
      spZ!}#Oq2DHRNaBTpf7dsSM+rl+#d#`(HDPM6nn5Kwsj%)8|`)FA9<qaApigX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ro_RO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ro_RO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e8a32cbd1b416c36bebf80a707b51abde59573b
      GIT binary patch
      literal 2283
      zcwUWF>vI!T6hAj<lG`LL=~7C;g4Cc;qz#CO*!qB$Vj*dz3&ns6o6T*ykll@&U9i4@
      zitqOW6yL88esX+#aE2NDB7SlF8~hU-{{r!MZ#Fe_aK_H`o^yWpoZmV3+_N{o{eAgo
      zBHBt{CMd#aL&XVlCyY}@uIidbRpjzYOgOWyXB)odI>$Ws*z{C_+8FgI$H2F$xx7{P
      zr$yZjJX7oroN`q#%9Mp^*+x|tHN!J}*JGsR8{CFd$?3jlIhA2X9iy&O_YKFNF{**!
      z)Xs=)X4F;j+@J=R#duC>M#L!X1a?Vy<EkW1%NWJ7L)mN=R5gJD9KX4xF^XhwWyDVl
      zak6a8*BLE8dczv(bFSwfUi3;SyWl$h9IUt<Dlx;Z*^tZB_L$*|W~Q4MCFk)sSSSpZ
      z%c#CAW{sfgAGGYyhf${)c%E>~d41k4xm8X#Gm7Sgg}zvhUmabtdkc1_r}8av&15*y
      z+V$(Qn{j6RZyDOMWq9y<8%H)#Gg^UayN|Y>d8%|mm_E+TN6f0_SpI#;vvFXCQQN3n
      z770S{GfP{<X^2t#SYRW-yt=>%8QSuJV{y6z{V5pUuU|pG6RZUbcMy26?gH^X7s}mm
      znXw!p!F$js{g-d;($xk3>OwoNb0kg6shbn(h>QiC9)Qe4?uINFoW`U?<T&I$m(zog
      zGqCr89!!!VpQaU(ViJ&LIGi4WGAl})rlHsdM&}?DqXuP0A&7riItOq*q7-!e5$O})
      zu#Z8hiyEinP+Su&FF|qKQ=D+OQ4F@sI-8~*nRO1Qo-mxi@GOk)2{dY4l)TWaHrnG$
      z-C>m2Rr9Q>G-@C!$U5*{#3s;6V7^k-_9?{e3MxSz$)Aut6E$DhCB^w9QcRh?8=6nU
      zoOG?`?z8fygxN4<ooCaulDeg~kfvVhPSE)!-$6JN33}nWyKlgpmUCLcsfW`_PQ9E~
      zaq8o=hSNGuSxzxdNlqP{GBU-*G~GrU@QLJc;gjk^J!q8Vd!VVeWCm@Kb_m8t)CeXi
      zN*|@^5)ELk{5cC#JCOgMZxKd0RT2K^;=K249JuksCw28ejaxEv-+#~z$w2DIQKEPl
      zm!V-Xio;64iVzw=$rd{WyQ9VKgq>-zyI^Cwq4&xWRkA0PD?`~E%2h3Kt6}#o$+M=#
      zUJH9&i`@@9+hVT=1MUHO6g6+80qktT#%Z-rk!Xfrq1%gX+Mr&HX*s<Z*S6}#gtkpD
      za&5a_%*3@FSQFY#{YM&ZI^Qdu@0ZTIr1PkB-lLrND(49}@6U8d=crcD5iunr4#)^y
      zMjVn6hgC#TMI6P-wMVhGYsauAH3Mr(Gr=U9OclvwNv4yM$(Bs6WO`gN)fH2qm`*FE
      zdByaUVtNKlXJQSalq5<4IG5?XLeCYWz@G>HBJdw*7$vra$V&>@4<r^MFDpa<iHFE5
      z3OOSW79y`I<QxzlBCpAet94mth`ipYLDn21Z%AaVM4C}=N~B*R?IH4(MAl0r86s~>
      zgi9n9BJV6Rr$gjjiF8V&BShYlNSBTlT=-rM%KKQ4U?hpQ(I9PyzJtD|o%AOS(>1)k
      zaoWRr@%C<_y=(+;?<7sI<9K^L+Rx5Yo?WB@`vwp1Wtw8Y<K6v(4zR!Q>|UeMNCb=@
      zs4Vhl`%-fVDF=yPa*A#Gi9Y<djJN_DA?bz#eN3OI;7{qZFnA~oMx!r$w<PvZOKjU>
      K?B~ksi+=!##Om_^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ru_RU.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ru_RU.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae37812879a87a14d3ecd945ecc3a7cbaa497a91
      GIT binary patch
      literal 2490
      zcwUWFYj+b>6g|^4$!(gJFqBfTJj<&*nj#`%3o7Ly(iZ8^VnBsyGNc2^q)sPbefEL)
      zLW+oh@~9|l;Wx{pOD(JQyUP!gKj2Sr`3uB-ZYCvk;aavU_nx!wKKq<|a_`OW|4d8~
      z(FVE|q!NWzC9Q1qxPDTPrZRCoWkg%$w8uJ@vD3O^W~?K2_DDx(kV+M*mBg%LrlPH8
      zpVMLVWwLhM*q*f#DMO)1!ibw`J*64Fx~)4ITOqYIudQ3jsOH$Fm26U|q9tSXIlAR^
      z>8Y$Cs7xVcokFvdb|%{k%5=P-FqRq=3R~H9w_)#+H3^ypjk<Mpb^K{;zzo0FKqZz_
      zpr{IkrYS2F5~mE~L_+WHQ)tfNCl=M$ld+wH)2wpow`DA+2VNlU8Gb$8o5nm#F7MDC
      zqmc0_WK1L)+S(fW@rUgsjAME><s2~6)0{;LkwTU6tZf@sykF~2cV|+9mLfrJAUEvZ
      zLB~wXNwv%%ELX_a(b-WHT2Nf2(4t4JXlz`vylMU8KK33*@#qc8t~y-2`F-8Tjktr&
      zi{^OBv`l9k@~p1!QmC{glQ4pW)<<UcN>HOh)$Rp%DmUm(<ObYv%;WB4?yNg5=xJUX
      zb*J1(VE6HP0DRK@#hnoJ4C;3;<c1JAP{5u=*W8<|0`{1o=a_RFnnUhgj05gHLC-Tb
      zni~OzsN5OmH8XaTTZaEBtc;bRv)jTnhpGg<h=wB5AZOUl_9!Cn3)+##hjIggcCpQw
      zfxpc5ZO$p^70KsZf?6fVy^|Ya_4Y8$W%XAX{RxU-cd&g6)x$o(_BD5m)w|d}@BYU2
      zYaZ_YD(Dc~S90fA{q=(VK+v0c{$1Yh(R|i%=5(`t1AQJ6lwkWhb~_^I7~2=Ync&KL
      z!c@(b9miG4SH@K^FU5V5^<k%D_%?u9+;dqc_f1eQN6A{{_XUPs*a>V0$0J`cdnXH?
      z<h{-6vg+J$ZZNO*4$e%zdh~e&y_0pk$4t48N7x6PSMH~P3@}UX3bjg%cQ+KKc~r&L
      z=`ht$RgliixW(Q<4$>!&9oRf9XpW${f~p106I3H;zMxt`iv=wcv_g<yP)JaPpa`e9
      z5~kHuj|<*vT1LBkb`I#>{Jg31Y3$N%lYI{iG|PJvA|G83(^XoFyW{kjxN7yS|MO|Z
      z{VPuzPRsNqtzKRK<ZBwz<a@iz<jl4IA=kixv=m$M;hmp_hWRM~F9@%M&;SY*`Q`8{
      ziu_9Wks^OKd|WBmHGKHxT<y*Cyt&4k=NH8-fL~kWFND9i$X^0~S&?4{e?^hM5(@Yp
      zVEa(>8d{5$byzqh*Qvx85tFn&R;os|m|xwX#RBR^Ef!QaX)&R0)?$%>x&>oUZPM=1
      z)<jCcnhw7AEgx@@`4qBguO~Zi`ef*{AN)5V4;lG>+)xh=UvvlM#ny#2XledIV#c
      zs$&ePag61v0i|R?$z-JytdwS@3@g3GN_|o(E0s=3rGBaOu2gzoDt!p0L4RIoAqy=8
      zFdV6zq>o}g;2#736!=}*iaJX@<THu10r7jt=MqWsUOeQiL<WHbJ>(0C3<D7!a*i`D
      z(6~+y8OhhcHG9Z;MwT#Ai29O|I!4Mo<N_lr83}pFSBwZo%01*FBjt>QJ>+XfDjBKp
      zkV}lr*3g2>cjQ6&2IC<dNurIko;JbWOt)wY{Y6dm5D$KUb}BV^?AOq4r5O)>JMB@9
      z;*qy$uW}j>{3U8rex!C~g7ztY;A#Jp_A7tmS${|^B_&Y&R%YR!?W=`DNKwrAB`5!y
      tpXu78G6E9JhlKM4x<R8d_&d7k1vhxXX!PZ=8L^#3v8B_o-%HjH{{mH_u2cX3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ru_UA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ru_UA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65f67e8d30d94d552cd4fa42975c634a282257d2
      GIT binary patch
      literal 2472
      zcwUWF`*Raj6#lkplG`*bVJW3xd6rjsG(|+j78J@;+9HG&11fBjB@HB-y4`^FMOzSG
      zND%=+fr`Tn{$_cNTBh}P#~*h80sjQYzd$_a?k0o|&e%@xJ?FdUeCNAo@4fx~pYcfm
      zYw$x5WeS$1jC}N%c0!A0atSS?N89DJ%Q%`dvznF88HdgM;jYa=lq;y0fq5&PiMFTv
      zt$libE^j9EEqNoE(G^6JdLo_GGBLeRGc_w`Dp1>9Zp}zVW0sjVQY{Lq+Hyv}r5RSY
      zmdWb^6$+G93Z|#bT)vM&iunRzT53`dHuBjX-P|rU2}~o7hE)v>{MXz>Gx>cwDKV@<
      zh^in|3|XQ;oYeK>No}BC!Hh%C6xH9GGpz%~s7mQ~<P58qyg=47{93jzOY=0jyj8RG
      zLdEB(Vlvs((a|(OKeU~sepJh6to`Y1F=n0uD5y^4O;a}#1F?Z@Pc9>{P(itU-x;KS
      zr41|7Hf4FS0$<nWoh69{zGVvLJ!wR9^Mb`KtDp91=LwQdogvXRhf24;r{|cSuxRU|
      zHIYdhX=@YJS>D)9V%l;^JqT)iWNN1bnibUA7wt)B$R2kF?T0i!v?rW%_CtZ^d2Q65
      zv?mCAK!1-2pRj+i#|2&>{q{v?m@)?o*o)LN`xdiM^q9a)9CL>_hwXbb4%+txUS@36
      z86k|aoU<I)%GfREw0)O;CuwD@g8I5Cj2WmAc$K~vRT|<7Ti70@%m)HnU7QpMY-gJ*
      z6TXw}J6u!XH5t#f1lrvgs>1A@Va#Oq*BSkZ7%6%m+qX$Q+56ePZjU*G0^Mw1uzzFw
      z4G*_}6*$QDRp&gjzge&!3B2vb-{burkyW{;0zGWsq&^P|B-y?}yB!fY%JwCS8E0j^
      zVbrp+V{}nmWvs$ECy?PjNqw}_G5#6?27Pc>C$si(j#TP?Edi6)rAGFwf+yEbxY4B3
      zIqeK_{=0NWT(!=yGh*L$>%PZzrS2!#2b?SQ7m$xQO74QRNsM<h7{)Brur(Y;9cqF&
      zGv&^D2RDebPaRMf7MLM0Q=nF0mO!1rY=L@#`2vdsmI(L-LIPC+5iW5hjOA#g>)f6;
      z^iKK6?ALnuF;nG3*sYmq_B}ArD(^`MK71F(HLRq&V)dr!YBje1&xe%mTV+bO+KQL5
      zc6sBouVpAEU)Swvu3Y~gbWNOyg|rnPz3S7bVSWV23zAm`Y5+ndekJ);C4M#ekrID8
      z`E-TIuH(Zl=UQ)`<;`{8Ji8=s4*B&Z{#^3sm-q|FUsU2ZkiVqFUrG%09mw{P<`q~;
      zE30VXq+CatFCr$eI$o|uV{yN_CKeB<Yh&@Cx-J$M>iSqb5>PkL7*tzg_pz}M{0awe
      z=HNCC-p0W@WbiH-yqkhMB2^shQ}@IuV=rgKIHQX*4sb?XW*m|kZ_y~!!!%Z?8jT?}
      zL1U$=6H}_dlxC*m%#>xOT#@M=$<!~I@{;MKWEzl6?@Oi+iRqNzC7R1ba|sxVR8Qb^
      z+(-DwgnvT#J!~YM<sR~>L^=rZd&p-JN%3Ah<a3FfA|&V`Ur1z#5aA)`xZ<1`>-3N>
      zT@9?+L(Vg@fRRGh2qO)QRCve*MwT)X@{q3>5sXxN$VEmf83}vH*Njv%Qsp6+7?~cU
      z7F@n756U+*9;71)ti@`qBYQn=V*~y|3m(%0AHX)Hjvn_F*rBx2!`_Kq$`N|hP3%_A
      z(1U&j9m<dBRK~GK`GcPFKe1Q&o1XE<Xe%ot#;dXl|C7E}IE0AOO#ipxU-2`(eIg?u
      mK{qAr2H-kw$mE+C^^%*sWNP%~u_?J-CAsCr-0x-7t$zV{4Ww8A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_se_NO.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_se_NO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df03a3f52c8e8827845d01d2f15ee876139b6178
      GIT binary patch
      literal 2415
      zcwUWFS#uOs6h58FWNs#tFf<_q46=kRKr%r@!~|5rB9cXD76(+gGt*3Zrl&jhbPvWI
      z!4*+)0Ts6>4?em)SVa}SB)nMu27iL(FA%?Tr)L;bSY@hm?>XN+=Q~T^d*-*lZ~RI`
      zTj+X>nlxIUcY;(wR%FU{v(h$GqiQ?goN>L9^exvpRW?tJPsFHMqaI}#_?Dd-waWfs
      zv+M?5*4!O9Ios4InKQFiN!o@vB|Yi8o<{m;m0LRbl;L}plONKkeZ+OjzI6O!(hf{P
      ztr}^YHCmYW++YeOb$>w#91UocaDr0C^!BNo1T6qZ@8;fK{vRB`4t>f*CXQb-(KU+K
      zP1b58&YEU1C#TCAEjoGEq{@@7=O3?IwJCkfb^J+aEu~P1%F<K``vP^mNBU+h;ys8s
      zjlce}vHn~R<>bsWGO+z4R;g}tuSTR%M>g<0)5%U7)1{1S3tFX7WTh9NU6$k9BlAwz
      z;B<WAV1r+cZaqH9nmdgc92{EH->9POEb>NMka6e9#=0jm1vBfTZZVv-EywbAA<Bln
      zV;VJ&xH&UM=z4N~n*<GVV_e^n8B<ynOVE9&x)QkM^6ZS4mxAuc$12HN7jIoOGg2WB
      zz$GusMQ}|Pi-DjAHEPWTt|!YmF5)4mVDk!6sly<&XJ;xE=|OKryLKgL5p@cB1i5i+
      zLAxPwP(gbjaX3NyAaNK$k3nL7L61XXYC)rrn3eg)6SSE5p1@~y=Pu7(E(kiz-ho>Y
      zbOe%92*870M6-d*<WF)K%S6BvY-mbIPjNbdiyl0~VO$UGIStCWOR_k3Nl=C@T^lGa
      zL$q9+oyiC~1F(QNoX2E>x;T#lZj;JG7G&Nm&CWPzlFeO%VMT_3!><5&fj&g0V50JK
      zLjdosjk7G*NPH$ivUQ*W63#j2)R5=UZqB`?KM#v)1+_3Q0^vIHt{);VGYi*Ks@c4X
      zKwOqx1-QD`610RmS-Oy*Zt9HD8}puCcm-qh*1xV=6&AEe&|*Pdf|dyC7PM4QkDwKT
      zRts7yC@Lr}s9jK!LwuT`4b+D|j#`d6u4cs%nc<nFt9f=zdKT*;*fOkce4HZmWrD8J
      zCVUlt(!wL@8~va2a7eY*AE`gDt_^*6e_(M#4at2LNACF#x&d~iRVXEb;k*D1i&6`;
      z7_=rr11R30w?S`j&^w?f8}x<H@nj%(^Ho=SSGX?;_wI0C+TgbgdQXGC9Quj|eI@kO
      z4SFy1wGH|@FyK2tjv(iav<WAhad1|hQ&S`<Zc=}`Sx*`1sJ_KWx9D4qbWGo7q=mlS
      zNGDtL9av-fknuC^tQkMd#*eb`2pjKZ<NeC`fHFP^<FRBr8%OjB10ILi!(fl2>~Wku
      z(#qqc@^~7n&`)7))g{)rp2gaxn_$Y<m@H;0GE<3}TxNQfnaYYOP)uhP)3joGK{36g
      zm|g+XxoDMWITI}ha6Z{_lU`3pfWHa+ZQwuAPUP7fBJU_<3`jIYE-EC?wS>sK3ONTP
      z79y7vavq2Xk@q;_GK2FBk@u@PaLys}0V69Jsd-&yq?eJ_5c!aib&SMA<ReA|BW)q_
      zF(Yk^Btqm9MmiX250NX3EHu!9t3RrX@)_0>xROL$sh_q%-cHwP2mMJybQ?pxh4yOQ
      z80i~nzc!44K28U;(-`L-9n>yhm|vkW?Ry&6ZqS7GI|lh5bV&OPL;N<4G&O<oa}|Yu
      zYp>NVA*Hb6=a-@zf1xk#q|u_ls!O73Kwr_<%K00b37rQ*XEgfi5A%GFHuyHzeZN&!
      G-~9sspf4%_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sk_SK.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sk_SK.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a847f70665863ffe791b305bd3984e33f2c815db
      GIT binary patch
      literal 2283
      zcwUWEYjYD-7=E^ClG8LTVS!SxT+6Lonj#`X3o7Lz_CjGP7*Ju8Y}0L%-MHB;Rz$qu
      z{VodLg&9Bi#Tk_k&M*TXtbTF)4gLhjUm!l`WK%*1XY5SRd7tOJ_kHvJ{?CnD0Jh?4
      z91R-Q7n~qHVNRLpqMI{|R(eofhnz9jE1ACSI;Sg>r;UL)8Z~q%#lW|V=|Q{VAGIoO
      z;N`5nfs-#<8d7;HXP3;PVU<nK^j%MbK3Mf_I)$|1d$v>P)zH%KIu+k^{NrXZumqYk
      zXqz?6FL-WHrpm0nKvF})FIP1rouHJpyaOsJfq8V&xw*4b{`YkACN5h{#qnz@x`xE8
      z%32NLtYuB+&FPAU1*h(rRb|}u{1dZU%?b~>jz3NmD}_STER{>V=c(s?rf=0E-p7df
      zeD}~$_cZ@lPu?0cgQ9=TF3svJr>F7pU8P<0(3%T8&vJ6p#&jv`76n$ZSYwh+vmL+K
      zKj(3chKMmRP-j;2xn9HaJI(0nS-GZn%iWmO=a@db!>|ia)t7%bJ7MK~mM{8pMcc9c
      zJ&d!V>$rx-em8H$(arBVw_5@|8sfuN-um^HDR4inM_eaw72QdJ2Uy}LKc18yq)Zbl
      zPpyZj_1jf{%Jb#RF20P|rjq-lmYa2bvk4mZB(VSs1s-8HhB+O3d5^dP`*@GC+yk;p
      zydPtt^e6DRRImjG<%26-3@5Qjx)`C#gy{$zr7&h?1&&cDnH($@7%|Hfo?xY=nQIdQ
      zCn-(L+@SiCRf%1HTB-#s_zZ=LRTjuna3>iyPr-4g1jZ<E@@3%hB-&))3ATrUgPCiL
      zP-Ni@?p2Y)5n={bPN2-XnZwNY4CF~UC<GOH_BAvymT$?C7nq_wBhFk`=vg9$4d0$4
      zVr+$E0?#M0SSIj-21xv3675(R$IEl3KK$%)T)gY^R%w9+0*eIN1QrXl3oH@n5Lh9w
      zT41d}R3IVHB9M|HK2Bl-y7+?_v>j_${Y;OUS-B5%wM&kho-J`m#`@HhB@n@9NnF7u
      z_Szq}Ihb98|8o~{TAK@&-#<IjZ5z7oJ=6(9EvN&wjNI`b?z*KRR<V=_7vnrOEQ%OW
      zoTve801|b$nYg76w-Tr7@O)y<FXeVQgz9b!@5SNW9^Omp?3NOD)Zt~sE9&q{;?;Gy
      zlXz_%UPll74wNIzc_TLQWiubns&_O*QsO4IWE%Cfk%{VCjZ946W@O^}b|WM79Y!V<
      z(|7WW>%GQx?5-(4ER`RX%KcJ#zf?Y`ln*K80V)rrTBLGBKWxzAh_o=I#i+D6AuTe>
      z;*_#@il@*|^K8;ho(Vn2vst(3sZjG|OHY&1Q%QPq@9F6o<*A}P1<KP|<!PFp&PA(^
      z&Pzw<NnA*^-o#6p2>DmYze@fm>}H;gA@iDIhR8%i=5@ssWGx}{hGNc<iHFRain%~W
      zgv?tq;!;EA88UB6W|?GaR_{n=rDSSW?@FdqGEE`#o@CZZCJ{34OGZehIb=SNOtWN?
      zA@iYRS|!sGG9O81zQGn;`cVzaCp=GbB!O+%g6))d;9Km(U+BecZrK?2Ywg^!8*xzU
      z<CY!9A?*y8tcL;ZBA4uC3~AqCSi6D4+8<o8f8vPtH#h8U^fxrn<7E{E9KS2IAw-%t
      yHxi;7f5xYG(ugUtYLcuf;B$PTjK9QJp>cO;%tl}OVUF!+oo(Z+?bk}{n|}c!2kx!_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sl_SI.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sl_SI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ceed0395b901b74421867c5a48f8b230c72fc2f2
      GIT binary patch
      literal 2267
      zcwUWFTXz#x6yB$4lG8LTVJM|wfkIFyLQ+ITY`sw~R#FfKiUAcS$!R<7WF}5#id7LW
      zco%Odc-IFXeDw0*TC9anKDqo2{sfo5K>YT}B!(_r%dXXP_Wt(X-`;1RJtx2YeeD+_
      z+CkqWsYB4_88^(&SqoO)@yeE?@&&z3xYM3rwF297&(xhW=0uV@1r2J)FtD9`!LA3#
      zRNV{xvf3NE6-NomR8-lnT8^n|mTv`~FUTk~xGi@kZw9{Y&WsA`8TZ_JV7bAR<%CL7
      zmmslC(DE7I3u|y`#Y;-VG$bhPhSiet59pdCEfW;a=Cau=xM~U&xIxoo2<ph*E=ZnJ
      zYQADE)&;FNeaj;1vz{NEY<YESebRG-S!juBB*d+1t%`k_Ht(|n)y#C8pj4%jo1Dxo
      z;t%Cl)U*{k!Ew9V@>wT{1of6f-&byV(Oj&SJV(+7K{0dUIND>ofir%SwavZBg5#{q
      zZo_f$Kav|68QL^@v$`GUEu&!c0j2hxZa?sm(wr&>IItWmJGN^F4<PxL;VD6#<6cE2
      z37yX@?T@6KprorR%9*nyjo_#?uc4}WNq3<yxE>bohFJGi1zz_c$FG-E;0J8D7lxYB
      z;(h36-79&4)rD@1rD+BAN#Z&{Dd`~yV3)KPg1+^A5I`#F0IFn4Nsq7-3y-qRD=||c
      zO)Ht{FrYaL1dl<ORwYTtAXF_dp~o?+24PAgbCMos=Mc`Pw1C@qf_)Zn=BJoi)g+yT
      z;LRghiEH#0Bvl|_x;g7~n)*5GEKY^2A*Y!`w~*M^3a&7Y<f<&m<pHYsHnP+pBCm}S
      zd@VXG1|UK1u#RL4g1V4CP(13Ao&hI{@U-$QdW%9L)AP_!jn=rN7t*wf`dE4~O#{@I
      zq?ebBeKZA0x_HxVH(*ICB(0RxFKLye0ZFSR4N6)sX``g9q`0J%q#j8bPVrHi?x4;1
      zA_}&v4(spoxK-ls-_UQzl;zv3M_^)14_%64^l6%|(lD+xn6)vd!-fC(_F#CsXH+oW
      zn(+QD!?&LCl&K%212$(K{13Vu2hs){C5DG^85$O+1hgcy4nhMc)uwkt?`hL}p=a9k
      z<<K$DkOz1g_1+)ttD=1%+E=&5t${w+rmuy*zD*y3zHy13ZPPb_0rvnohMKp~Ff3bP
      zIH&E@5zENybZ4>C*lrf%M&2wYj2&h%Y3wwM(%5AdGYMli)}*n={E0@J&iAwPgY5h;
      zJCC#Te(iivJ5Rv*P^O2SW5%S3h$9?vlp{=zIKdGobwp7|oW?4RC$V-JXRxLW3v0Jg
      z29s(s%`lVAO!LfCZ83S8>1oYW*G!>iI;WWyHPdroIv;Nkt!1LM04`*DuhUD#81Pqs
      zzY6?E8byhn5%QWw4grZr$m<$WKoSx1hDOfw!6M{Mja&dCBjhd4xW?o<BjoKy4P0}C
      zyu-*4Bh9EwEu<?#-eqJHBdG{^j}gg8cZ9spNH-(t2>F1KUPgK%<U>Z5n`pu1AM~Jn
      zjP(>ol4vJwr(KYD)3>yT{-ja5fu}Y>`^5lW+O2d@jNzR<OcUZPo>`v`iHlSaS7=gv
      zhd1^b9TC6diT#6)iofu}-k|Z04lrKPS@?JEYI6uFj~zdK6yN$Yee!P^2@N(v(hUdt
      gj6T=FU(lCPa4rf)qc4BIB=$sGY-cO>EA935KZsH0{Qv*}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sq_AL.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sq_AL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2bf4fae11ca9582dd987d9bb589e48367271be0
      GIT binary patch
      literal 2332
      zcwUWETXPge6h583bvB!@3=jeaSy*lXvKvH1Oh6&w64(ua3E+YXlig-#HnX$K>?{~>
      zh@yDEix*V9pi;$)mj|n;!k4^R{sw=7<u4Gw?wt*53agxl>GOSk&ex|;pYGrOzWFN=
      zZKCTDYGbsv=+x6C<E)XkD|y2f>5LjiozoS!Y<O11Iaxb%a%Uz&K}NmGvF=%RI%Czm
      z!=hHHyLqvz?i6gnC|(eGt8Cc1s2Z-}Ra{0|rlD;(#kB6ZmQx&L)Hz&nYM$YEM-96!
      zIJGlk8yU?nx|MnrF0=8RVwg%XiaGW2q;U7BoH)&6)Sld!Ob(=y$t3iu0$Dg-b6R5*
      zR@18)@pD2<6^!W`qXj4KnoP~CxZbf@uMUN?6~{Ay!e!qG8Rcpj<2*GzVtAst+C7Mw
      z#@C<CX8Q{T?4uw~8+F^8u*$Pe_cDr_W~!X3rHsT=jJoo5*A-5FTAwaYR%}iy7zHw7
      z3Kg>)&mNvLy9%>AGntmSrtn%u-K!e47#J8B?7w4U?|CGTx*+X^Ct5duaIz%w9yZU1
      z^0wtz-VW%m>pRLQI9w@+2%+ThxwYa1$%sf4EMX@&-G?&}33KL#Gjjv*eg(^h>nZpE
      z&J1wohC5Yv74slg6A9szJOT8Oa<96gtl$vJBN8>!t4p<ZVzeVh3uqyyN08HqC4F|`
      z5cXj?m?I#wh6`&C$ShWYxew%Srvz(1tZ`SypkhJY^pxUQj2217aqM-!;cz+(LpP^5
      zO~8O0Clnws?pmB4RZNM~aTtdLrXGWFKz8I4F!t6=PN!5jj$jhTgn)sw4~`*2PNzYQ
      zm?gQa8KZ8wYzdi`3`Z_wqpxZv3WFF2F{oONQxy(X*RpZkxHy5bT;4;)&j?rc9H+Ag
      zo2t03g_NI!bFp5N%cGkjFdFye8StJ^=5ydtO-F&}0SabG&d8)*h|yx1)I~;Z<0G72
      z#+V(EGq1#`hZaWYwK@02Z<z?a@vqis(3}=<TEwZF(_&6NoR)Cv<+PmBN=~aeg*Zhy
      zb#jW!B|eMMI_kq!%2<vVQx|)}n3NBQrXHW8hHFXeli?xNp-~FZS24Ou8&EONw9wRj
      zng98Cq0>8x!W*8w4&Cee?tUSnx_Z&}SaRjw|By?`Kw5#V1n`p1L%~8628sZ+5eh)j
      z7Tf{c*@C-(<1KhTFj^gUk8DsicKhREf9&zcB`tAFfqPr<GT`McI03w}1t)=5x8OBU
      zz&XGUAm{b80W%vhaZb%sTOiJFQGYI|rS)7$+ob2h+Gaf$(YEM0u5HzG@vycH|A;oI
      z|4iGP&JRoHozi(&I`5XwdzJI3ay|g(Y`jxC2egAaA`Zz2T}B*{5yxaiPDPwh5s%}~
      zwUhX_YX<&NEsuYPCZJSoDp^u#N-CA5Qbj7AkxDhCR98ypl+v_PdRi$xtCY?|=|ZR>
      z^r94c3B;v%*DZQA7Xbe{_&34-MB9;P&}ZIKOcqSYXWmv!QSQZO-cig2FcF`5S235s
      zaG!ZkuDDc}dHT%zl36C1X4D6gNl2y{^`T^vl4<vu%aU0mnW)cvBpEK54xjm0G98kM
      z`OGJh>5@#R&wMJG`8rB)<ww;hpW}ZVElISQ`e_U7t#pmH(VsL(xA7K-X*cV^OT3=;
      zvLQUfV>HT6;SqM}0K14M_%dbLbsA$g=^*<Z&+i{}i2a4v_cjf;wL$R<wF;sAt~Q&H
      z(ij=W(E4BK%R6a=71;=hH5}+``bGs`qi_A-lpl;jU-@B9?2(q(;B4%7%Io`o0L}aP
      AGynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sr_YU.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sr_YU.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95386a25b35c75be22d61251fe564eed075377e7
      GIT binary patch
      literal 2245
      zcwUWFTXPgu5dJ2c-96cCl4S@XU_fwD2$BRuL`=L9E+PpCOM(k3%<i5flkCo{vopbn
      zckwQwqIiAu!ACC-R#AmdK3V<-e}d&N5WhZ|#5ILgrYh%jf8G6cpFTZjfBozF&j5De
      z>oi&{Y@PO^p;>3%8LIkar>cj>%yz_^@`IWay1sX=5u7Vdq|s`j&p1Y*TOAs68{tXa
      z@S~ut_eWl(sx9Oyy6o1RYC+eXzzO}pf<3m#?Re8eg)nfv>0t{UqrTS&9WR`8s*zS`
      zvtaG8uxdK+qdHxd;}x<NU?J;8wUQ1FnUWN`EF|-T`Fx&Kb<G02aLHs_XvyDcL0!;#
      zuHq~-EUZ3z%NiOpeh{8s_G&l!xbKBC)KaxrNIJE8jeD0dA8<mwl<79cR4N1G;{yx)
      z8)W$vJ>^8z@RVDNoh)>gqae^;d7-dSEBRH0+btw2uE)l>URWJnVZDRa;>5A0xTS17
      z()ul%@;i8F{_h+d9%$Bh-ZBejA6RPl+2#WuFU{(5$OEg9a@F<R@FC{d)<0>Xb=0ru
      zG}!pu%Kj*jGVSS#uFg6NJ1u1Deyq+Z+`|S%ydIJ7Wse$xuF&m13vIt#*5P~*isgP<
      z>e`48FrX2Y{LpFRZH{EI8r=#~2}u<mp+J6x{S-*7aDW0?6%MgZ;Z%4`oJ4qBY*9&=
      z#<Ex=Ozc=<)*-<Y6sB}Z;UtBc!vQ))!KqW2G{~&Nlj0oF`HT_R_NT;Wo~M3BsC8Z8
      zJOzJ_$x2eAKd(@ci_>MvI+aC_WS!xum^G3#v+NfW2S%x~XeMX4Clgc;Tqdd0n@OSu
      zVSX5G%oFNbN&Gn|X=d|{GS91G#@O^6HKsM1<bFPjwdfY<g)Dl}oyJQmCOp3IG+z1F
      z#V*1Ms}<HL^eC)V=v7#!(5J9LVUt2$A*qm2=upT>iVw563tKt-W3H!<nNRSPQ<5*;
      zHm}5_6S$(sU~0t7R|W}un#EQ0vkl>l%aQCK`=752=d^uVhoj5G+_SC!*5jNhn5XBE
      zE1CQLgKkg)v6)9n@X709!;(l*OH*qB8-Prc-cG%vN$;edYtmOy=ipNAm9aB>PrR><
      z_uhD4*A%y&df$pX8=CZu)HgNho2loU^etrIJy1@t=56SwWjhTQj2$hBoVtO#i>>xR
      zp_sIX3dNMYt58hay9-5S?<o{>DSI#1w7swJBZilp9~9?@#raWj9u?<<#`&;uK0@cC
      zxejqo*y9C89G8d_5>b$d35hsuB8n#BELUYe&9%)w$2DU+T-)t3ne-CVv@p5CG$%~8
      zTQd2E=~=_nFieqQx<ICd<RVeK5VaGynCrZO7mEqvFB5;2_zxIniLEj6nn8{dNyf<Q
      z2GK-PF>=Wu3v#d+dBY$ViKrNPQ!=hENS!hA)?y7(bBw$#$VNeyqTUf?vmk9T@~$9T
      z1j)q6dx9uI+GFJXW#(**To$BLkd7GnK#)}hw&2S5W>7xjdWItj?8X50P~MAgun&J=
      z7&rN*rf|^e<&(M{hpiDlsK;=`I?wksz)|ZG#;j`?x4z|LdL75D-}sjPjuY0Od`fR(
      zw55fNADb-lgM4*q2r<N+ztKo;{|TS`Q%1^wiy_%X2VBEvCiruF5eE;(!EE%E?^eW4
      OG{v?q$9`$NzWN*AQQ?jN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sv_FI.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sv_FI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..352e9bf557d1d3dd8a8c5c29972fe9e2b320dab7
      GIT binary patch
      literal 2293
      zcwUWF`*Raj6h60UlG`+G!?u)y<yjsr(58rp*n&!-SZP{ec^FX3Hrb}zZg%5lw^(0*
      z;`{vo#kY>m_@j>*oM8rk;Wx*>!9T(AFA%?Tvk9StGj^tX&-dMPzH{!`vp2v0bL}@G
      z+CksOsX@?|f)k|Yj0GcYyE(%))8lFxb7owxX!w@vOqCa=M#tjRD5zUG2EJvd$E~t|
      z)GWJ!moxVVPTn>JrSfLZDjK$KmJHAET~ClUUePw3LR$Ad%P9;AY8i2zvTr#43BwLd
      zNlk*pc0tPuo*R_lQj3?A#MXeIq!SdUO>b1yB&iJ=J==SF_<wK!D{#p~C5~Tp(F7%G
      zE}I0&v!*$pHx|o++E3rHsPe4q`6p{$%?f8+$Daj?6+<Ix6iY>{ZEE{~;hWWrcOl~<
      z{`xbS{(K(C$(u7qVEf0cV$ElbAQIG?3p~$sa*O(6aoV*dtryf#oJY4T$G1n8Y;F`3
      z86C^ig;mwI2wHQi4TFR0HV*aQj&bfB3P)d1a>wcVgHKM+nK>T^m%};Rax8xz^7Qtd
      z5Y#y0=FK>v?Wv`Gk~AnNUcPbF$r}K70~Bw3Ujg@^OTJZB_Pwz2j+K2MobWCy;C^h(
      zc&4(4v0>l1>H##NEBlhvP92gSL<O8d(tcPhFX;ekgSMnm7!a29Ff%+MkHCPUq;Yt&
      z9BWM^X*p{>ip@C#0!P`)oR)M9M$teV4jM5^FdkFPoTO9i9KiW;WuWy>vQL0g&%h{~
      zB}vnqe;&QZ3ywJMf}|N3n0wATo1{+8I){THYhZYmBpV$@X0L)AK9b?#041KKl4l_e
      zzLQ2I#<s648`c6ekUA*)08a~QLVDlik3iBh*h3Mn0?$Dog@ju#0HGR%xTNz*T0tFb
      zy_lpf>WI_DB_BXI2XT7kw)b73CACXhE~!(}3Q1j(R!ZuYv{upvNt+}^B_$-aNJ?>v
      z%Sq~`K71SFmSaw+FZP%*%{POlZj}>g0ppO24Xd$BP=r29(iPf<!~3%qCbe(;f8I(M
      z-{ykpkJM(ov$yZgQ=ZV(RW)jH=I;NH8{j}%kE29zMYf?~QHlY@ff@)6phO*R25zat
      zt-z@|ybKr<4ZDk{QLUZfx*}Y=!gXa`+$!MiI=mWqZ5>_*yrB;F0B@?po1uXB06T)3
      zx6(H3Y{$k~wNDL^l)O&;*+wm`XQSE<JsZ<@>e;xqOV3Jex1LSKv^{vnwITf%+FNyg
      zfSn&==Mi>3$j*n9^O$lz4ChR$g`FeXq>hLq9HDc>agI325m^;+T17m8r_`qKY|;!o
      z6Iu?>X3d0Bp{iuD(mX2_S;?&_J*AY&N-0oEXO+^TQhHV?JrAXG(TdP&7FrGBLaOyT
      zy_AiBe;NF%;D4sQsIxI-UQ<j4Of+O(S4@G=5;AWn<{X%K$h@hT3t(i(yu}$;>0D>X
      zyj`h*YYv%rm|4e6HR@evdYEYnnfI94%uFI=-e*QK(;PA%Fw@LTGGsnvrj?nNkokz2
      zWjb1L=_fTPALDrnBT2NA`e_&J-Si#pp}%N|ZsN|3(LvFLD|ag$62rK0CumHZ!G-J5
      zVQ~@n?Pbb{A80~cqe<}x?%F@;i1-^<?M)hKXn^7;DhvPOU8xQsrLp2ikfK|ErB82_
      p5mRI(Bw2Bw&*=*l{3U%A1`mY6X!NBYm&6{gi*2mMeyzN|`4@z???V6p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sv_SE.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_sv_SE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9f6592fffc67f4949a38899309a45bdcd4be2d5
      GIT binary patch
      literal 2293
      zcwUWFYjYE26n?g8lecMF!ct1X0)=ub(58rp*y4p!5NV6BTnwnNO}6Q_$tG?##d<>&
      z@AnHR-gR`wk6vbQh8g_AH^<-LPjLJN;&a|?L+Id)o$0>kdERrLbKbLO-~9g1)!zVY
      z!?!Us7}%KeDyeCE)=uS%89VQ!M)h*Qn=JYTJ8+BM>GJGpYb1t716|s&61e%)s9O$>
      zIOSr+&p3N3UN-L-NM@akTd?z%Q?h+KDEbD>(W<uX<x*DQyIyY4K<jYPD+jh09Jlio
      zN1@q(vDLuhoL{Vz=u(SUNN}s$K*FmOCLDjCu1R4LHF~!8^vM4}KUd<C!%Dnh-o-Q!
      zueq!@pw2qZOxB(&8(4DcwndevihgjS=GCI{SkVinh@yqiXtE2X0@p=)d#@ch^BM18
      z#yS4=jg9qXvpi1LnY1hU;HX=u`K&Sk18td#?>k;*&YCMs6!Qve3^dG0w_GpC4=>nU
      zXCPvY9IOkQSKDY{)y*~x40Nv>?7J27+!+?mzOdx>Q}qWwG%@XD0v=oqW%91)2KO<~
      zrrzTQ8i$KnCx(8$(1m?c7%&hkU%%pIZGt-q3fI4{g1gwIz%6V0ZrXgu+P;TQe3w;l
      zFE=KAN83Z($X~zW6Ew3c_a(3d?FtXD0?DAThnC1I>}74#R@g^_!U_)wBNOs44Js;(
      z(p%(2YdnFaqV)(jr)>%x5ie&#;V6xQ%{U%3VwY$<s+nnplj2;V^JCgz>z@#x3QIjh
      zqwJIvCM5q1d(Rgf@rttwlQcN@l65M94#_&rgE4Ex_FaWMJIu^}6?t+b+vfpFGD{`j
      zWg5QuMkeNVpshTuS!ytKr5q4EWuTeq14ljrg{Qg4B8nP3OMMm+Zaq)LYBZ9PUPxdW
      z+QoV?fljo?aACm*5Y9miuiWy!tF*!rg{2A|3d<Ba6_zV>DXdmltFT_7Ng=M#s*scv
      zmlD{7UVa;+uIG&FFZQTCAvc4mZ<XV0f#8sg4(YLrBZAKoxQs14d@$v5QhP`L=dHx?
      zZOJ*oaBaprHuc_q%Hx*4s`j~(x$8gV`Xvx+c$5gQ$VF^e6QV>hq6V-5h}Yp3;?_Fc
      zMx3m}i-|eWv^!-Q_1Y1x%fhuYT$k6ytsw5I!z+nb*WqsBwRO0Mczqq-Kn1=B+7Z^g
      z8C$rsl^bXEJ{lrPbq#&#Ml)rlo6K!iI%;mW(lK*~l~(3XE1is*yZDTmgVrzDJ@0(K
      zI6o-P!{R(5&il3V0quN{&SS||agLaWEJhrb2umW4NyG_>Nb87GI^uCYm3f-aX4B>~
      zZf5vwF&!%9=9OGgnh~XfC>3i;Pim#IR;p;Fvs!6RD?Ou?o}<#armE0N5n4&&e6sBt
      zUP?#EzfAsB@;_rY>ud~}*EBOmrYU4z*Gx{%5;AXS<{X(=$h@hU^JG-Wyd@b|SW;)m
      zyj`t9Y7Uuqgy|M$KI&azdW2~XnfHX*AWS@D-WNs*(-JZt2-6}=B4j=krcIdEkoicM
      z#THv|@h3efAM<&VBMEFrA9m2*iSMure_;?ec;`kjVs!G#-HiRl5O3UZ95BxC!u4^`
      zxWN1N62^=lFm7DMA>$9;wSVHU@i(v98yIeApyDSwi~QnUo*zP_xbjC3O`Ctkr#H)p
      oYO)%Vs5;<te4&HC#8+W(e;CY0U;J@F?6JDo##-#x+UuKt0soipTmS$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ta_IN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ta_IN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0df44135d9cebfd2f0f0a959932274f7d44b5b51
      GIT binary patch
      literal 2452
      zcwVhkTXR!Y6#jP8B)e%^!l9Ic1p?t#E)9r?(1J?1SZIq7E(TOMO%81!IjJWnVDW;K
      zt0LnQ&d50W!UOi<q)<CL%mD9>zri`<4{-bi;@Ybx@zB8;AIxO--s@Z6xAxlW?7e>Z
      z>(LVcoA6~A4Fao&%}VmDeqK)&N?E;NB>Q>lGtZQ)qHgC)<|$i0)i)SMqd+GUD|Wt+
      z?9Z3&!$!GOv9iXlikT}I0<oNt%@_4T+8EU>-7Z-ITK`OJ-5gG)Z7XjM_XxD4N@m&C
      zP5YQ$s2CDW0-{@B?yyy=j1r};mxz*Uy+G8g6o(9JFXtpNhmgejg!*snP9zc(a@3$i
      zOuNR=1e$7$l>+jDVVuk9V`YJPCtsLSd8B07$Lp+Swg*b4JwjHf=q-YJakNPD9Cq*4
      zZKJl~OO*c}`o(j(_yGOlWAq~|XPnV11^Y<8Sf?%#h>VPEFK#c#_4q}B)@;SH3^O~H
      z9xD!&3KGi%0>6*nr|RWRyO5gYT|wTy!NWdXE%0jkLM!6+!ff2wv*9_D>X4;_P?_im
      zZ72POI5>3H$l6p0*_$oo&Ah#nc3IPPOrSAU${AtM_leD}n*@c_T<1I2dEz=%*LmtX
      z58UcyiI)ZDyUsmEzHzI!UFVMLOwmH(6@d=dx$9Q1yUsMbraigxzDl)qoe2uU@*fy{
      zjiXI-v?`N-thu&x0@ECAila>tO`?~+zuJXp&eJ9c?2KX_+9ckfb5X_;yLfR=VmB}D
      zO6=vugv49Cm{zj=QOsAee$MM#jz@`1@+O0PlnLH^f;XS^dEe&L9L{%=y>~g~!;F9B
      zlRRYn2;DQquilWLx<}P^)$!Uv-|->DzbSEo<6P&`{>-7iXXd*COKJt4@NgCOwlX;r
      ziT644Yf9@0Z~45Zx!(8rEVG0|0t-3dQ?BlFUP~1$7ezbT)apzW3smVwIP*JPhndXJ
      zGUC(`#V$nAfwnNrSufPPm|=`QcL8T$iFp$9CE6txNOVXnl<1ULDzRK*r9@C7BGDod
      zQ(Jr%#Ts<chwRUr#vnJ8Bl?hPTpBmMW4e`Bwg-lK`5i<Mz_lo@U>&^$dn8X!r>p-z
      zHcfg@&BKPBsz18+HC-=$c9Ar9(!F`LbLYQ=>sCT6qoV|<gU_LY1rZ`EOjZM^0EqbP
      zX0ls+b}QL2pFNjsdJ?qmP<Nc?c5hzb%^lvn(5G8OcBju?O!iWr9VdIa&rXoN(r2%t
      z2=pCj9iW`oVjX$blj8#W(GZBq$Jmf*)RO5;P}`KwgtX1+Ojz5J&PZ)*Iui?N+h`1H
      zJ?SazsF7b+<Tn*LrO0~}c^{MaF*!x#zF3PQ2eboeQVb}?L8UmP6ltY6%8KKx$j~UY
      zlQcGI@6j01PSMz`=@cpZzeO^FGl7OxpgaNRVy%x+%mfH85&i+;53z${HhPG~NFO0V
      z4=FQ}B_!k_HX{ZhVGpS=a!%#uA?MYOi_$7j54oU_#R{pZK2%6tAvM*QLJ|sT@{o%P
      zS*4JOhkT?EsgPz5`B)*%3W<8iCkkm*NQ;Mjs*t&9D#4`(d{Hjbc!I7Zuo)Y$h1Oef
      z58Lnudhm?eb_jb!2X*bW*e80aX%C`LoW_1(;efbG9s6qxi2Kx}AK{?*mD=%dI3)h0
      z_WKN}h6ai_&bxrF-<8@WM3QDfb8ziXxcW~TAqHn8(HR1+;|7aw;&V^j?TM+-mnLUv
      OkNUKYb?q0-y7f2nY_~-K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_te_IN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_te_IN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7fda091951946db9ae2f460a985923ebbe732dd7
      GIT binary patch
      literal 2582
      zcwVhlZF3V<6n<{gB)4f=!ct0s0)g^YURn?lp~V-<i<PDbfnq>~ZL+ir$)+Y7u=q-W
      zf+FG<WyWEKaR!w^#@WJv$PD=1@i#d83mkuec<#w2Y%@6H2RqYy?|II7&fDI5^4s4J
      z9|KsAFT<!4STSOix{vE8_3mswt!Ity0p9wpWBEc(x6QnD#5Ruf4~9`M(9VV>+st+k
      zm_>V^QOuVLX=7W-%47|JSjI@3IX#;+#`J=2=L-VbK-sr$jdUmNf@zKP2sHKOt)i`4
      z_K=<}84?WwqDx@rNFiSuBa<p$B1)<?0#U1!8#W3%IVXu3gmkRw=%D{~U9^$QF@qAZ
      z?23gZ&`_~hCLm84#)*tRUKE&h_?amcNAm^yVAZOT<wV}HM@b6hyhBjWjpb;c!Rqb0
      zZBzozr}B5uUp$kEClZPHIQ>yc8RM8<%G&$QT-9=+KxA}uOKwXsuE$RcG^b02f?=h{
      zljFJJd{$yH1$1vX?spT^Khv_aeKiJ41p@tp`+U@j?-lfomd2~CS+}ld?KF`(k)~3p
      zQB*|BVSg+33?DbrHnl?brn9DH+AmR*m7PNZ^?mt_5e9vsSZ(Jd$mML;nRK1+UFTQV
      zx#v2MUB_{q35n-e^}wCF<T^i1S3NJ##^8kOTy>qh)3q-!@wPj4#&v#}u6mJ)S6Suo
      z>ep@&nD09G8UM<iy3DxWpqD-0cb%Ix*)~Anr6^{hMdB5@JJpgTwz24yA+eqAo<DVo
      zoowKxEAbi|JWWyJb-FM$X-Nz)%S%OtAB<wQ3jYRMUt`5R&W@7U$94b6S>N_mR@UyP
      zi^4f^HA?#p<3n8T71y~{p%DEJoh9B>my9S=7bFgG#@F1b2^Can-|``3e^KHc4l&6!
      zKVWayxwfMM3mKWLM7hrA36&=&BQea$pRW{uom*MeX4rGNSU>9+v%ck=AJq6%{Thv;
      z6)oy?Jc>E0b6NiUw>ax^8_FN}7e3#Vu(%)Rm5pk~Q<d^E7DXFc!YI_t2=8HpVNZJi
      zWmsaC#B7OHi8&H&5_2WmB^F66kys`Xl!!<)NyJo$b5X2BCw<=m(=rBmr0v&-)#%iC
      z><;M#Q^_6}>g9JBK>(jdaRIC8E!v|dJ>AZM|2VekJvWXRc3<_;x327b_Op*9d6w@q
      zRpj=6ao44YSWKk^=r?2rH7tk_Nnw)eKn*~|CpVJZ<dd68j``%7B-4wdbDO&QytjJ$
      z9B*&)_PIXZJd)de@&b|<`Q$jsOMG$%$;*85a`HgmfzAQSc@<WZW(_G$u^x4Sn0$n_
      zsd}wDnF?y_lc|ulA(;wm8<Q!iZAzwMA#F3QVXY^57h5aFFDv6$m2sak-l2?lv2i~e
      z?<V6!tVtOMv^_~;>{X1UVjNJ6gNl)2#$jf>O{>(7(AuEsv_`Zvt&N&No<{yRPiC;}
      z=!9~VBOo7ZeuQ^Z0m6%fmk7Uut>nGlLryZ1ASCD^rx+Pg8F<KhjF^OkJ!G7bJR#CU
      zPOFIXk}6LRd0!z56jEV*ppdviDy$C`(xH$B5BW$T%M}vwkdGB271HP-pD3hJAyE%G
      zqmX8WG<nE`LS`nZ1!t%DqMWDo5M4=N1J+_Aoj2hIHseq9;0gT_gs?-j(fnV9U80u;
      z{~-FsQ5yFJ>=x%}!hel~xQRjW5PQV$G}!;ZUhx;r@+au4t0Rw-90hd!E>tcdx@i}*
      t2Uq=!i%-)CF<7QV%Le!imzexHE_>uIk4%j|>(p=$__*~|?iXxz<sTWa5=a05
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_tg_TJ.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_tg_TJ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f137d6aa90fe863328d6b27821a8f44a9d3cd7e
      GIT binary patch
      literal 2490
      zcwUWFYj+b>6g|^4$!(gJFqBfTJj<&*nj#`%ix0{}pe@oV#efRaWJm{+Nu5r>`s@So
      zg%lA1<xx@A!f%#Gms(cqcb6X~f54yM@)wBv+)PU7!nJHy?mcJUefBx`<ldX#|CyK~
      zq78H_NF@rbN?O_Ias8woO=aSG%80hgX}5JOW2be;%veX9<dM!jK`K?KRuZ$0nTocW
      zeNKnbm&w|3V_Virqzr{32_tT%^^|7x>bCA=Y=zX;ytZy7qncxzR<cQ<ik6Jk=jfKx
      zrKhrnpfZJ&bqdW++L>%GDAVzR!dPlhC~RfZ-G;qW)+A^aH0svX)$ymX0W<tw1C>}#
      zfubrDnx?E!NSrc^6A8V)PoX)7pIB61PsVl*PP59T-<GkQ9(aMYXZZDWZyNI~xx8I>
      zj6%kzkTH>HXlrZe#~-$nFplZjl+$UZr#XuhB84jBS=%<Oc)!-4?#`qHEk%OdKyKK*
      zgN~V&lWLhkSgw$-<3LAIXhCt6LW>@?qOozw@}~8V``CLN#iKVUyXtW9=J$0UH{uR9
      zFPh^i(=weGkY{y$mqMj2nS>D}v_3MkSArT9s&+59Q@KHRA~)cUV;*-Wb7$RgK~MAA
      zs5|9O0=tjT1K^YHFYbh(XHdU;Avc7`fdcj{y5`<w6|lzyJ;$8e&>V8_VjOVq33{Hf
      z(cB0yMCHyfubHu%+%o)6VP&igoqZupbErztOK2!E4RVHUY>y)HzM$=Sd?+^{XeZm8
      z8Tcz~-{zcx_DDYG64WX=?w#BatG9<~E~~%F=uc1tyMygps2+AF+t=JNR_|i_y!#v5
      zuX(uptDr+{U&)<g_16pb13_=*`FDB0NAp?7nbXbo4fJ_PP=f92*zJg*V{BgpXM!v1
      z2~#y!b{tnFUl~`yycG9I)`y*r;oAUaanEI)+&4kJ93^X&-xnBmVJEO19FKg(?42xl
      zlJ_>N%c^t3xxu{JJ2*4>>e1&B^iJ0C9y8@W9$_DFUb&wFGQcdkE7U46-rZ1`=1~<}
      zr^8f3RY5v4;}&}dIY^&8c3|_cpgDr(3aS<~Pf(4Z`GRT%Ef%y)&<a6*K_NjEf+C#a
      zN|;ttJuY~wX&LSE+3D1~`FT_2)7YikCi@;3XqNXTL_WG6rmM6TcgN{5an<Tu|L4<+
      z`&XVcoR;ZJTD`jd$=5Wb$@g}r$(d{aL#}}XX(_hi!#h6<4f9g~UJzahp#c;s^2^~@
      z6#13#BSrpf__$KAYxwZXx!RlOd2@|7&o7Ew0Kc}#UkHD3k-r4~vLe3@{)!@hB^2;I
      z!1kf$HMABh>#%T2u2YFGA|`2ltW=F^F~7P&iv`q;S}dq;(qcm0ti>V$bqmIz+N9m1
      ztp)OnOn#ZkEll3Q<Xw`yTax#J+!m=|vQOQoA!0vAXdH2XBMx#zOhz1*5pQ4=>Jf}(
      zs*W+F#xa(w29%NoC6kp-uu__pGOY9#EA>gGtW-KBmHMU9yHe?Wsq`U~2K{-Vg)FoX
      zz;L8;l0J(0fPW19Q{Z=LE9xxukk2I22E^|npGzdkd-0I75*Y*%^pGzkG7Lm`$T`lq
      zK;t?+WF%h$*X$wZ8Ck+eA?iy;>KG~WkPD2gWF+JvUoj#WDff_zjFdAH_K>d`sbr+W
      zLoP8gTSE&j-;oF98;pl=B#AcCdfEhgGu@&s^cOYJLp=Ba+M(3ov0p>Glx95i?X+7t
      zibvk2y~=4k@Rz7f`H|X{3EHRpfv5dX+OPbLXZ<0yl$1d6TbYG_wyzcrAw@Ccmz?}-
      tex_@W$_Pj>9}><J=mw3-;P2?B7u?_lqtTbgX2c#SiY=Xv{a&(u_!s37t`z_P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_tl_PH.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_tl_PH.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8638b0b4b167c0cec0b111b0b2e04daf19de2e28
      GIT binary patch
      literal 2319
      zcwUWEYj+b>6g{_TlG`*bVSrMwNTIySqX7{ST2LAuMUu8KPz<OrNrq(TWTsALsPTml
      z@cn+EsQ5&eAANjqE!M&x;PN;46I}iRai7~sh+VjrA9C;6`<}DUxhH4tZ-3wTm58>{
      zcX4VHw7%>F>GQ?~BW=4y!#2}dwH<cOxn9-qE!R2Y+h-=n;?ypvPdNs@Wv8=N%|B+=
      z+`ucEqk&VhO+l%WS+uH#t(!B3XZWrsNXyP?8%{Z``<~^LhXr+IT&Lz6jz4ACfhnm&
      zkQfrQu<W_P3|yM=l9D*uEGX#&)q?3AR5eLj0F8mo0|WfqI)oi~#zZBK-*C|cC7Ld4
      z1<6^{oGuylnxI9e?^sl=;(GqcrdOxJIoI(kK(T6QM2+f975f5pyx;K6M#j64B$rE<
      zO6htXmnoU&jKKDfTh*q=-SDVXc2{@T`VB$d#lZ7Sr&!nP)q-nFS|unlS(!xBEXTJq
      z^G?_B>DXjTTtjxfpcQLww`1$p;Vo<WTQSlWQ9inZ!WW-zz5Ybuyjk>deK}IJEywcr
      zBF%=uDM9TSw`9f%|4V9qw<JL_mW5SzCEbIjWCO>nNxBzw&hUJ;@53LEv+AZd?b?j*
      z7Ze{0X3YYF-AFjfhbn9YVY*Q;N^S=U+MA?Bv{=%Es02AAjj|EI*bf8pk`A(A)g_I=
      zfT*O0V2m=8g#j%V8c)&^7DCS=2OP}VF>aw*kaQfzz5;}%lp?|&Rzk>eN*U<)BkaTX
      zdyEy$8A)ehOiZKU1sLNlbV@MxTQyF0E=fI{tb%SJnTNphxG~as3fSOLdkv-o6WJ{!
      znL(eCA0)n&C<<WHSEkM81#|{Q)O^@aU?x$AkG54ID(Ok+qn<#4r_pZI)I5AvPzOqz
      zgIwTqNm|MUz96V=Ury2`?2|b@c_~S~v^Y+$%=<LL*@)9?|C)h0TGAp(OC<G3S}Lhm
      z(lSYXl2%GuEorT!sHB9XE=eg)@kx?4&>+4V{GsN!`j(Fy1%5L$_1;Vwp2avMV<T!5
      z6BMB@l5~wWp-q0p!t@Si|L1#!k?t&;ex^D1JsSq^JoyP-Jz@tf&fNDOazh+Qt8kSF
      z9?u16Sd?NwaiBIr11QmgJAu1ea5r$O1uq1~jKl8b5mkFnxGxR&-f&;m61N<<uLZ9F
      zUfF{CfmgTS0pPVQcpVh*KfsQl=8d!oC!29FtInw{l9D%ROTJx8>-ng*P0z=)?Rq}0
      z?a=d5+o|VMF>M#txHhc+OnVy653ut-cFwT#0d_v5oDVDKBXG{8y4X3QP3VX?$`Kik
      z&^h7+N1Rj<c@=RQtJEIF+M%7nn$Qfaomvq}W<#mWN){_kvr?6nTvmEqDb<uxpp<5n
      zQe7!MrIen5(#7bU(DN+xB8bbW?wj;-J_7z#@UMgaiT0qx_K<l)F*z{Nka<%vCYV^r
      zyrr0ne6f&uTQQfx$dGx5GcMP;&X9SRnH9`5qTXYspP5F~`^*e5(-ATsFtd)CM96%|
      zjAW)WWUesN$xJe2K4PYunXZuen3;t-T5$D8H7K8AJ%y1Z+D=<&2kf16op#ZmG)%Yf
      z4#((#=*2U<kq(Iwyu#yjSe(Tp?9mZ%32*Qf%8Bo3T-=}u@jD*iKj^6V3-9kO%CxmX
      z@iUc$Fn-q>Lr7`t0(*4hFZB8CGGdCH3rWs7(3kX;3jUhD34@2iU^M#b5A$MAw8XYI
      KW3MZ(Z~p-xM(+6l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_tr_TR.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_tr_TR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37eb8a3ac51361a4c857c42e17087c5743be2de8
      GIT binary patch
      literal 2562
      zcwWU;TXz#x6yB$4lG8LTVSrMwNTJ+XXj4Q)XhES|C265kz<>&qWJrf5lRB9JgI5r&
      z_q+9iQZJ}HT77UWmiW^0;_^566I}iR@!O}961#9M-{`|Rdw+ZHZ|`%?p56TR_l;kP
      zXd_(@Q;ndtIope$G0qzCd@*C>&3Hm>2kg^Dr(n2N(LU)qCx-^ZR4b@OIeM;@k0-2>
      zJ7|`Qo|7?md3H8$3W{aTj8!o5x;bh%hFf$5X^9zb!_LKZ*RkwekD!LWqFr(g+dXRJ
      zJyTMhAkigge$FX+qi~sxmlPF5f}*xpNSn@HRg$E6f-bjhXuGF>-CbC4lu;8GV7ryl
      zG(i{dd1<Q!$#bSTk~PXDK?_dY^$kkHMaMlh>s7DxWYKnqp@j;*5Ht#-1?=;bdAH%3
      zm6P5lD3Z-~CX=0I{NeSo=4r#ryF*rC*5`f{GCaJku&vZ;2x`oDj$_)HvR*Evi+M>a
      z1l0^B&?J`a=KJOtR|yIX4JN9>Dy(Y-HSryHcXfBSuIlN$BO_e~h2uR?^1>6<2OmhE
      zF*7a>E_*Y1%eLGd;9u8%R8VbSF>8hi4H%nyPm;QE1&56D23qj}L3K)W&5|YQL0EJn
      zKRqewAza1OnBm--FbZiy(!=a&LN(E~lD2UUuK+_Y3@j;%IyCl<C@r9ck{(4d;Fh$D
      zh4VP%ZU~^4v=@1%#y}=%KZp(~=`mPABq_myTVk&MC@o^HLx2V{$TkS~TUWibq#-~_
      zJ_C*$=(kFe9#=?N(s2m;Ir9^I-zF%ZLfFpf2~W}~KzqulA<e=F4xNQ?&_MiY2s<5v
      z^A1O;iSwR89P*Ax%A<ieF+Y|K6saMN;vmRv*pe_9LdZTn2_{!i7zJ1k8_vRjA_^V~
      zdIoRBb(Gv9+|I*-TBd$MInRL;<)GFVfTEu1NysmO2qob~M!2ktQCiGpU4rw}_|&+h
      zS5WiRxX#8`qtr|b!}R)`&%^JMFunP&ZkT~3Es(TGQj?^`lA0wgk<=n-xulhnR!a&>
      zib!gZ6yp@1M`<0k<I71{w%M=d*N~CsF{!B$d(?0&)_pM4tC})G0s1OR6SN*>yTcax
      zxIOVdM>LwdK4-dpvtK~dy7s$&0})-#?Y$OfZut+oE)Jv>I7$HjFXrLGf)s)lhE_wk
      z0E$%U_0Sut^hW5hDt$h5v^wNwZd0{4`TJsjZ}#^kRdGw9w^ZrNpf9h|TcNM4(%Yb~
      zuF}_l0q+1gfSNmKJuDkwIH&AX6Nt&1)S0T);(98mZPZgCZIhk~Yn%0y)VAoUSV-H7
      zHLUgMKhgGz^CRrMlb!q6c@I19Q_csJ^FcT#V-4&a&<1ow9Oej}BaU#yF^)*7h!ZN}
      zNvu*kiM38Mutu~D)_TnZQ?9~fG1CY$6_}~WOiwdYNilhf>6~IJE2d`^)ANeyMKE0m
      z&JexKM3(`K#TswYYpDS6H-Ntd{72f3I%|F8ZG|L(1byTkh2;1wKJu<YE&vJp$a@MI
      z10sFoea^U4=Q@4l14foHQi=MIkyb`3Q6DkV#z>uyj5D%^k%*6c%!p*9-bX%Rq@Ize
      zk9^8VBO?ty@);xZbzH%fN!2J{U_FkOB-%usv>Eaix<*^+PwJuD7{?*nBbqUdJ7}Ni
      z#VGEl1L710u|o&NCCuS*N{Z{$FK*C)_#H#|4>~OV!VJDmeKj>;ysEPBubGKT6H**I
      ze&A5B<7fKvP8lHu&V)o~9O!HMMg?D^Z~fpdKNuH%<%c=3N2+3LXJfxpUf=%%s#6`i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_uk_UA.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_uk_UA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..435c40fcfbc95b688e2b01135ba4f3728160d72e
      GIT binary patch
      literal 2501
      zcwUWFYjYE26n?g8lDBDE!ct1XaxJ%VX^M!5Eh?0&v_%Ll22|K4OS+J3YPtdIwM`Mc
      zAP8tt5G%+Gek`{EVT#`!KkWVie}dyL5YKsc(}oVtn3?Q*&a=;X&Uw#!+28+p_!z(%
      z+z6sf!LpQ@j~>;IYteKzp{4a`yBv0!N3yw$W*J%YQ2yAVu1!IdE2x*myk(@L?MA<~
      zSMSf}a|wNO-b|)-1(BqlFfv*?ruS(%&C2E!sO_${W~QPsD`%Lg76nypS+n2LOsiW<
      z=XHS!1<EP~(^I)@zK<vq@d9Cb)ubS7<}*EdZkw!0U>a#OtZHcBe{&O!<oD@RiD?xn
      zs)Eo2Wr+fDLf4NawSj&GGY&qpsQ%t;&e}i0s+4|5*0g%b3uHXQuVwl&G)|MRw`i7L
      z%=jE-OeUK;I+_OPN7G5_N3?v}+Gk`YIP(-hL3JXZ%jsrfAU2Tc$)*JsDk!(_ID^zL
      z!?e<EQ(iAt;OpA7qa?7Xw@ksj$wo9cFIe2N`e~nLo}kjHGgNfV!P2Sk?m4O_ESkD#
      zO{5LeuwJ1&%Nx6?n6_+E4}uyWnc69VW?ByWs(sJC>x|fsoO1%tQ{DEc{n#EaqGUf5
      zc!A>W3*_H+3ie}X&_!S5_-pn(@`-Ja3B1I}O+pIxZN>#&rUu)i%barrjoS~LQ=Fz%
      z20Fv`EfOo(V-?iOSHhTq8iChniKwW%_9KDKY>!ghU4boZUvLU6x{d8?l$P)vY~SRB
      z0<TLxXA)?a9Q&42VD-*0X0rMlZsdq_T3|2RSDdp>L0})-=iQRK*}hCu9T9kw?dz0@
      zCU-z)ayf6wSo?wfo4`A6CW#-GRl0T$+auH}sx0a8ogslEY+rN+onfx5H;h`Y?5Nul
      zs*IXB?wk=w(>8SLqddO~n7jz*y>{O(vifK<xz!TS!*Yzts(Be)%wkMdKZzaZoN^XL
      z<UMA&OFDtQFBjj<>kJjq51A=vH<|ZiX3AOeHX(&EUZFu|%K6f&N+!>{5XLOjuyrzw
      zI@APlYRZB3c6AV+J+*sXSYU?0Oo3W~Spszevjyq}<_jzmSR&vT2nkdPL^#EFVJt@@
      zZN+xO)H~%3v`_2dn@*LtWVe<x*!RFdt2{&@_;59hD_BVf$?7%e+%>lU&s&xbV`WOW
      z+9pnH?efNFpV?4MUcK84&RqW=a!nkFg)|i(UHQ|fVSWV23zAm`Y5+ndekJ);C4M#e
      zkrID8`E=OGuH$1N$69Zk<&AaTIJ+cn4*B&Z{#^3sm-q|FUsU2ZkiVqFUrGwJ4rKeN
      z<`q~;Z&uNZ6Y@REd=W8@)$wvQ8jJhYHL-X=T^oxB)pfDBP}j%ek$}2^o<X%Gb_W}a
      z<X4%ziOFqD-pb_dlDt!rcM-WGQpIGSx;sV@dpIJ-5nUXypCjTj;-HLpo1Q{FM9&IU
      zqi0A>(6dt2NhwuSGFa&tD`i+I%S!LEQomHnOQjQ1X+SD{AeBCnN}rI@klz)W%R+Mr
      z7>-nr<I}j0@Y95UPWWwXq&mwz<O_*(5aRccFC~)Vxp>GKi3|}E^pLM4GE9i@kh7d|
      zPK@jHkaKPgT(gIK&By{qic#koX<($nLoP6~l#!5!Tx3KrQt2VzFjC1#*h9W$q?(Z`
      z4;f)(dW>3d>6Y9m-_!E|ZAoA)R%0F6>v01c@E2O}ggylUY*p&$Gq3{Nl~(!$bYiD+
      zn6CdEb}1+6>K{Re@(VhZhuE$BL6`oY*rWVS7yc8pm6eg=WtoM);8%*95K$WGqYnRy
      s`}kq9jDQ5)kg!X@j~JD~KjE4e+~fsQqc4q3iR~(hEuV<JE?GbS3()4Zq5uE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ur_PK.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_ur_PK.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9f79c8c27d4f7ab5c346d83e50a9feff8704671
      GIT binary patch
      literal 2199
      zcwVhkZBG<e6n-wt?p~G!*8veNRuo^r7glSn6;NC8rIrPeQS3@v9d-v8+?}Pvtdzc4
      zTM%OUtx11D6G=ltsco8?$PZ}x19oWApV0Id)Sh#9cHI)2v`IJFd++m{^PGF`y=TtP
      ze?DFVa1@_~Q6;c{+|I`*jXOp>lS>&HGoDb>C3`IAWDVEK**Ejf&B4Afss&n<W8Sqg
      z@q{()4w=)rypuA|=IwOG6o{qGl$A9yx;bSyhMRK)v_vtsVUNdk*RkyJZh^YqoIULt
      zwmWQO@}@+Mfanz1JnrQ3Q{+<COGL?ZNFZwGv!kYSLFFW|iDI-JYHQ>FkxrTkPnnd7
      z?Ur0Lfk@e9uYjB}&D&{Xc3Ple<he;rPvji;dfBU1;r^WMP7n%Z{YB8oPGxD{q|E0G
      z*DUS$0_~Vi$NT%^v-G3mq|GrSpK-5R*|N`zl!(zfG0~Onq8Rn5yyKX5YF3}kj^;8F
      zy9BC+$e>xao9W$P+#?Ve>>H|(m7?w!*s-Ve*@YZA(tUVOC8S+bls{b$1#cXwJpbj<
      zNi*fr`DITkW7(E_nzm{07#67R&85vS=wV_TuS<eLMhXuL-*}5Ou1dT_SLCgE4|x4D
      z1@q>;`|B&-oWv_+DJ&IM*4HFnrI#!$d-H{#3ahM^=px@D<1I+^uyVn>M{yTwAaFX0
      z1~l^OwJ5frQQ|D`yX@VkeOJ8)66Xk$|7r<eP<wMu>-QzzP+59wY~x(s<SggCFMs_)
      zBEfkrdy5|V4HTm;dUNDWQ3g4yhwCeaN1WpjTWLjcm-u{F`4kVm&(-M_Gt5~~P9=}G
      zSV8I{=KOC&(NsLi+fi)gle|lBUHC!b7SG?aWi*OrG=`DhP@?`5g)#QGrzp}A4H8=<
      znk2SLG)rugXpz_{v0GxVL{K6kQ6~}OE$&3ojt;8cgk_rp>YKW1jPkdusqcQ+a4g0?
      z8R}6L5kUYSMlp+nR2A-oMMcz+_?LZyDyw$fbbHI?*VNwe`~r;Vs+nA{c;}XX2-nF%
      z?4qLtsEKW&3kxDdC`_mdbODG|;9A0U6}X;otO9Q)Oa(^kW-c!^H~I5ce{S~YZ56uh
      zgj*``4#GPta4X^66}XM?-U_^rBG5a~IzTxez(KMcBEyWbqbd-SPjEO{t;O|ZP&=w8
      zL)tMt8P<;LNvWOCld+I?lE$#stv|x4|KfZmR>#f(?RA|Ly{tITii@nc#EL$p=vRu%
      zG)nCXjWwE1V??_~W36_bA|?N~NF%{wpm#XXO(Kj~{S%~;0pd;K$BF+Ar$|=qGZTtA
      zLrl<TEX5>=3Hi*VVn&Dw`^;^{7{o}Q$?%TbIiHd$%ghdDN-CR~R%S}795Zdq)cDL4
      zGyBxJeC9o7Br~-><1kapOw?zlnW<-{&SzX^HtTc+`BhaYGc?|yk_3+7Fpksu1ir>e
      z{ElusrREpHdC^Qw?*J}}9%^?3xFl{-n{&`7=BUMeg?_O_?d>rxi(ja%{e~;z4{B&n
      z(OXqT5#Lw4fXZ*SRD_7rENBiM_z@pGOCzMnq9j^$z(@F4i9f+zU)<@7>7w)BZqQz<
      N&{mhVpDM3=e*x(85R3o-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_uz_UZ.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_uz_UZ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99520b036fbac2959b90fefbf3489c9ccc478062
      GIT binary patch
      literal 2292
      zcwUWFTXz#x6yDP`$!VIFFqBfT$faCbE)9r?*n&bzvCy=@P%uS>ljJm+CNmQ!Gr`~m
      z5xn1TpyFK~eDw0*TC9aXz~yi7C%F6t;&)CaC3N9hK4i}RzO(nY_t~@O<oADW{zgPQ
      z=|+^=G}>IS{p38a@nqS_@v=xxs%65Sb6ksiremM=FPxp3jZ(Wt{mRkz%yM$lta>Lz
      z)$!e&IOyB?vd}1z7dg}7WkXcB%RR@{NS|zIbGwi<JlC`fBN}z39J}gq+dIX}zF^d$
      zkv6Q+(t_*w6}T+KGm2wtn?`Zlx3a<=S2ZzO0*!%f0|WB6V;C!NMW7PfYr5zf#THyP
      zYQ)Y9QOfgrRikBR?pai|=(yhL1+Pwp(~j*Gfg)C5gt=9*ur5*CW84$XjQ1f)KA%jd
      zll3|dlNWQ`FMB6VYr*4wjYy;JobS5A&ee^&m37LD)@jsUbv9e*mT7zC)S~ST8ii(N
      zjh4Ws-e$a!4R`vmW5>w$yC4e6p=@*o1^1k3J@#~VUgSI+n~mnmrfqurk!5h`6iP`s
      zc@ZVNkHq3GF@j`AotLUbZf7~82jr3cCVCL4Dw^maynq~f)Wi=Xw1UnC@DXI1_bphX
      z=x&4UKzH`XX&Ln}dJOesc!|+LjoQY1Mq^kF49hq+QbmW+<1mi#I-?`lIRcMK5Jpj{
      zOvP!rR5_+pYK%_67#A>3!bo#W7LFP^P=WD;VxTh%W1?;|dQur^{nOH?hI5~j(gIsq
      z7}F*6J`ZEcLDU?KF;S9Pi*f3eS?6)0I=5>wO&Ru_sJR?+HqLBu7ts|tNEKIr#77dc
      zWO@&~X5B}UTEoKTvxw%kf?q|<1&yLrVb^&Uvd;rJC9eTqgqQ6!?3ZBYMG3a7=;b)A
      zpdM*miBli-MCsK<^B)XClwQB<g*RwM%NQ+Z)XQiEqdrC}8TB(-!)QIDjf}#KVvM>N
      zC1i?E<1|P^_%tR>TTH1B_9V~Bi$PbH$|>%e5(i{tRLxzCLiA;vuG3bW+AEqE)uGA%
      zc`0FjI}5@~Eev_@;LyFtJZ7kyYTT5W`~O33SO(HM93_MsatRt1rU+0JsEyD7inZWQ
      z;I0<j4V-AfOMx-Uu>0gNs<k&*R|IQcu&!*0TLs+Tf>#5tX~AoO*SFvS;EgSK6BO_s
      zV24oi7TSuPZP+-k_NgtDV7F*{rd>}OnXtao$VBvAMkcE7HZn}#V`LH$eJ`F-eZ=^M
      z_BEX!mCgsGb4ofNlFo;f^MrCf3g>j9OFD=2X#)|*WrQIkW@N-^8Ie&DXH>*fcryJg
      zo*g>JGp6V8?9>I63QZ+bDwU*?C6yeh^o&%hDkWbjomWbArSzOqdO;~&gwmyOLuj=W
      zS`FfIqWc!Tk_mx-4g4G6f2Mt?vprzmR7@I7IAGpVOhKL{VBS{DB{0!|c}Fpq!LWdN
      zS7uyg$T|b&y+#eP=74!$GHWH%jQT(_1Cr?om=7hhNiwm3`A9NMGMxeQv1B?W6AzeA
      zB-1UKu7J5JnWY9=aP22GD4*dui;*PSMcZjN>^*dY_R?Q8Lbq|>M(B{%hx>L59o9y1
      z-A>Vjb`H0#OGmXUxNWaeTKj>fw3{@o{ei3YPdcvsjhps1rP|t{__@j=|MIRkhmew3
      z@h?c>Ex*zicglz;vJnz*IM7%0wF>@*z72whgJ3lJ+K-E3XIf(07h=CtUf=%<^33Rg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_vi_VN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_vi_VN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..537181b9971f3bfc46c11d69ae67196ebf906ecb
      GIT binary patch
      literal 2449
      zcwUWFS#MKE6#gcT?TPIKa|t2PPz+`ZOAHAi&;;6I5=x0p;f7E{Te!9__67SowXdP+
      z#@dDME3~CsfQL#|rF4-hA<>sqd8qOm`p_Rx^%s<$8IPAnRH`3lzVppF-<&yj=J>b2
      z@B9K_D{gzy#IP=7mm{Z*vqmIWNEtaZGAgJ2_NhWKZ#Y)LK5^DMF&_7#nW0NMmK`e>
      z8MR8zVY5^y7gOe*vYpPE48gRSvhqewHz$mu;S`Dt+Gs`Furm?eDOz@BkfAkNuuG0%
      zJL5*KY;v?PuuTjLGsQxAf?R6x906MDVF=jee9|nA$ecJ9Ftmg>g~MBV!r?IKO_-F0
      z?NpaF29I1`!@$p(=9#oHSz=gp{JzPQvW22^wC3fPcC27KS+YEN1>8n{B2V)IxxCkK
      z%<66r(7}i47fPo?u~;lLNk2MF+B{{HbIzERuX#Sm0EV_yxmYyq)TBO{PZn|<D;ZpW
      zT>6%ZW!X+HI&XC~t&Yd{HpErs)-iNes<4HAs|Po)u3L2Q6lG3Dp`6=~H=g`p^0b+9
      z=;VATm9uQi*-bmF?;dApjuz6U7gX=y{6cY%q<<_sJ3V(Xlr^jnM=yg<5lMsWZFL7{
      zcAALo^xYI;|9Ux3%#J!!nwcsS^ALT2n#kPMNuq}6sL^bB?rO-+&fJ{4<%C+OYP$ni
      zgm#Wc=u?bkL%rm<rvm#3?ybOW1V<{cpWtH^xSinR6*xd}l#UyXOVM}$i-qVDay1j$
      z%5hl1UXC#Z`#8oG+{W>wg8dxF6x`17l!5~s&nUQq<D`N+Ig)gj<Q7{v(p60RovPwq
      zkx({(4w2AlS(ce8I}^&!{6sb2$jNd`it5i{(;HBB(%_h=FH`k7it=knTNIzesS~31
      z9B1XnPy$qXj_2ww&de0WJYRQ7WoN##IbNg}P)%%hdUk5=0;TdYL&rR_mi7gDck|aM
      ze{tAL0W3kgKvx3jM7tNS&U>Wls(SJIzpiA3=2*nBn4^PZ2}dW#QjRW;6&$NL)^NBv
      zd>pMDL9xXr0jx(iWj|`!W?XiYF(WCumL@yixKXr(tw_(1d>KBt@I?SOu#sMeleOqE
      zb&vkfj!7@fpD~?i?HP8g@4o*-^y#vVj#y&nuK$qh5rJ4qM{!a6UO)wN!$X#rtR_$a
      z;A^n`WVbfhZDa=<?1g00dm`K^o`9S?)VxH^ooZg%5Vwr%t_FKK*()0C5ZS95>@eAD
      z8tk>CK;MC|i*nw8jkL0f7S73aG`WKOE;c8cwTPZ@Yg_e%N9)rQUaenGaBV<O1U=eL
      z8ok<}{v&o(ogWs?j|%6ga2^)U`=s-J>3o2kW5HJ8?9vYE6mdvI=py2Xh&U=D5;Eer
      zjCh(xuAQK<MKfshX(<~0nn_BTs*)v?&IqNvP$~$eXN6KpDwU<uIjJ-$m0plaFG;2I
      zq;%0;5n3*UmJ@L~*mf7MBwWP5M*LOcf50xvvsp23NG3*%TQP4+CL_+Gn71Tzkr=OH
      z-j>W|Vz^@75j!r^MV^Xzw~~X%SuyVkCM1|@)cb-73#LUe9|&fxV0?=CP%vCDe#Lww
      z7{6cwiuqVDZGvf4%r(I*)Tsp5zn2%~QyP!al?3{*8U2I@a2q@ECkAnk`n?CktdpAk
      z2JB-))am2c&rVXCFX8~ZLOuQ(V(c5l*&Q5YbJXB}$07C?b@zLSHZ_srXL1+ue|)2Q
      z2@#>0{-WXD@H0NIr{R%gB_vRBz?b++27iqy72KnOsnFM_=fxgrh;6RL-jrUq{sBMq
      BGcW)E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_yi_US.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_yi_US.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59b99e01411ee1bfcc2ac3e7e80f1ed4406edeca
      GIT binary patch
      literal 2525
      zcwUWFTXz#x82zSclG8LTVSrMwK%qb>m!^n_(1Jp_h&0@W76U3wlc60*CN-IWRS^}u
      z-zb$!p<<~Os!xCqb+JU>T|Rf-{0T09fw;eunKX3aT0YF2+57BopYJ=j`Td^<zY@_}
      z8VgdHLXACEK6+9=tw&Rtgq|{@9kSVNoycU<x@~5xWBul_PAy2~3e`zr-ZoRw4l`#T
      zG;*1IHeqbbTgjB6P$X$2%(R};j6OZ9+nKCFYDd9aw|b(Qoi(kVR)wnCGgi*lExSuk
      z<qbg<3MtJB&Fsl$@_mpL;{}D$wOXODl}~pY*_|>cK{Mddu)3jvpO$8{z<mZXv20JG
      zDikV8mMJ987{;lj-k(!w*3l;>mFvx9?ZZV?rNps}W%mLF((Z>}PxqzK&XC>Pb=&Yp
      zd<ugklhIf#+TV|2lEw)=pRx~`>7rsG6urHh(wlPix<b{7d^T%XiGHm=-JMAZT8vtk
      zV#-X*PPI?#1Mln9wwFYCri}_MTv|Uh8!auZkHa+>HG%9gImmnV(bDSob)Pg6HmVnG
      ziIi!X_7;q@qNz)v^7c&92ojbhGJUcHwO~b@E6!zS#JT1SId=p-jm(^z&c(@}r?_XB
      z8^rgBbIaqNE$D`T?@IM`LC+y8=nAo;&bae~r{09oow3Q^z}=sm@Ypsi2Q&lDj}@fQ
      zmN3nt*@9kBC|Jm;QP4JpD!g<6w{xG&1YjovnF7FzEF3HfU&6Xi4cN&39buZo{(D(D
      z1m%QO?q|r#QD*?~pf})zGY)u&eHe^Q{vwGk&iN*r3VN9n7;-Z`;(=j+R~TG$?m3qL
      zUSrE!@P`NBafY1d9hrDH!x2f`1xywy9CdEXq)&vYhLi5)33QXj7&1LUC$Y)A+)-(f
      zPvOjXML6FJvUstIRlsLhP#^Y6A$ey=P}W1kjBJjV>GOgMI?W5~R)EDDh4%n2u%I_M
      z1GgC2y8N3sIL^pcE~-@iHX9E*w<R;q1-=uexm@783YBe*33?yx{uuXM2vaT14$_Cy
      z4!XP5gY@xZTe?6Cnk8tCpc+AQ1=R|gC#X))B0)<8EfeGy6cSV=D8fTr3)2c}!X40I
      zTE<>^Gab^q`36+w?b)SgO~x)6Xp<)^L_Yc^OgCs1PM6(l;xIOK{LkALC$zH1u-l8r
      zxMoGulMix8lUMRilSi)m54&a#q{S%3hhM=AOqibnKtZ4~!URyL1XluAmEdaNNC}<^
      zj3bEeT0SbWt#RAAZd>cN^Gf381J{+{1;C3+a6Ryn65Ig1tOPHI1J(iGKIFWTR-tD#
      zI?l*`D)U9eLs}CrSEE|ouddbN0d<`g531|6xKKA}@kl`3h<8wJ)qbMQp7?ndZ)I^i
      zi+8YimlW?ViuXjSSnN|{8Y1>_!~u@bIHHpy4$FwRj5vz7P+!HnLOq6eNY(MKR1<JA
      zJf|LZGTG@AJEe<G8R_)8bjnGmymUGvo%*HITW~t-FBqL;qxV3Zk5oUT58^)XAA$b_
      z{C(Pt6w6)aQ_1WB<9C_QBx8UHxXkC0Im?B)%omb54@S7mmptNpjq`Mwub5fDj2Cs0
      znR;ftr~zggn5l4?OUx{1Cgd`M%m`*GUFK_MDwzqp%w=Y(nW=J_E6mK)Fa=ld$&E6E
      z_YrJKqII-}*5i8vjnPK>i(2UsehvZJq158Pu#$EuZTKbZrQOPL{0p+QN4Y>9$`y(!
      z<M;tQpnb|8xcUF21IpjH@*h!qSs5I!%TWm1?}oPtDT-D>>t8uR!&7MlBv}Xv7X);Z
      fzLmivbjuBHc7rj|SMN@X?JS8cFUF2a)p!2_n$*2{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_CN.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_CN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..248fa2e5e1b195940a5f99e001a0607b3dcd7774
      GIT binary patch
      literal 2355
      zcwUWE>sJ$35T8p(a)AJ0K|qTYjVSmaAR<!Gw#G-TfYnuOv@I^lnk*(8x@@%AmsY9o
      zKCRk<r4MO6r^j>p_|TSfY`^#PZ|JAW$F_e#?aX8owj6s-^I`9Aelzo%xi|ODFMrSe
      z1OV-D#}7pURwvACctks)g;SZBmeRw0yzDlQWvsMj8yR!xRB|XX;D=%X4IG%Yja0bL
      z7_;~5W0|ZK)3;^KcuE%#jO#HYt)*0bRI@ZYV+m0Da@v}i2&=Ybn28<%<&lgzW^1NB
      zsHL*Hgc1RwRX|n3%4A0|q>wKmfUb1{0%kTntXn&|Ckd4TN<!;Gp|;jgD1>^WI(A{&
      zdAB0K$L=Np@}#aGk89&&0;-QZw3)GF#<C9;qRQCr&zN=+EnnIJUM)SE#<h~&+cjIy
      zS9=7DjN`ArKOV<T#PwrZHf0|$(uIgeQAcY`CMmxnmbEP1jE$?~>ETRD!g2wgKYyOV
      zqcTi86<Oe2iQdRS)RmVPT`izyW$qB#+Im*5&qM4chCSnPV6~bf?mh1v9?@eq?pgN6
      zQif^RTT#8aWl%tIBoo*DfPX@8;Sotd$&$I7({oePb2nxrY$%w&|8QEu#(8u0iiAxr
      z??nll3+DaFNePd+g0D&Fo%c@MEdc>r15gb$5}v@uxY#xXTxL4~DzK9olzs{Ui$2XR
      zl<OlVCo~X%MI`hL{&S7(b5j>2>?gQ^;Q@jj3<n8rWcVz>PKJjGZesWx!7hd`5Zui0
      zD8X)q!wB2k7{&?asvRRp)u@|f0BWh55xfYv8xBYjp1s1@Wd0)KQN*|{#umq1V{8*Y
      zahLH4jz7!zCFZ|ke2VxVZ!vy__^W3azlP_GIA8j-V{&!s?~MS|QGe%H_tO2V81yFN
      z%ZMrBLICQa#t)YkJR|2y`QggHu1=1YP%UARgjxx866z%^me3$!nS>P*nk0B7lu9U<
      z5Tp`Q0ceI6d|`ctsSogbKcEfMTv2!?4QiG_wnO@Q`39GQ2R;qJG_1v2Y$px8^euh=
      zbEe@-C`;&er0`s7n_C|KU`kaUbUO{I-0&ZAt&|AMaVs7iu$6dVUhtviN2>_%0HD-m
      zm!VzmvMbOIy6h^n@hu>(r>o3st+UoSYrV5BcI7QWyTN5IMSGdcZbW;9%MPL4<g!<x
      z0{#z(J=pUaSc{%@=s3xKDDnj5Jy;(tR>Er3tF)_8pVFa5{Ys}Al}eWy4f>RB{Q8w1
      z^*h*-4}P42pQPXj1@EBXT^zidgZE%?f3Tc_J<47cGxkx2N*M<!;}B&;IpYXtJda<g
      z4B@v#(ePWU#PD0D=%|#)D;cD8oRrd}lp&=TNokCgvaEEHmBv}=WmbBXm0m}sGv1ug
      zSrVE+;(V~;9$buikiU%lRph^gE!bzV!@R{zKQdm2d7GI8?Zsi<Vde}neusINne)g<
      zhk1`GE>WpZhk2ivrNrd3t`XBnOg`%aVnW1}ILvioRuNO`FgJ*i#FRPAO=8N32{_D$
      z#8ePd?l2z_Q>Ee&On$=`<raPq<CO&Hfc4OcxC?GWH~axT@Brtv4|a%p9M@}Lm*~Z5
      zJpjAKQ5@D5>=Ea1R$qsHaR&y(EbJA(;-LNw_KCl6N<V-|Q4uPB%vAud-*o;GLKs(p
      wt9Q-!@X34|J|=T1fm{H52A^~CZJ2SATb*P)=*h1a<Q{b878i2A;HWSE0nLg$uK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_HK.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_HK.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43826134f7be3d5261a3d2ea2a66c95d5fa29eb6
      GIT binary patch
      literal 2369
      zcwUWETT@e46keN<WD^3!qaa$WXhZ>#fOrROD~ebMR*#oP+Ug-WBnOiddN|QyZ(6mA
      zmtLvbf~6O2o#{B!%R^gc><{SlH}t9U*y%5*U2Ekeo-%f(c{uy~zP;AB*528B|N8gr
      zF96UEcl}TzU`^7@MMkufS|pu~YiT{w&%<7GIBR7z+sK;7PN$Cb_W7YyKph9>Y$F}%
      zH^%G(`dBt+#r2&zGm+K>gc5q($Y^O*AJr_)&RPPL{=BzlCL^kC8D_FmKt*@f9J4jk
      zKCGp4x`Z+TqE*0xq?OH$Vn{JxLJ+4~1O&}oW=OYsxF-o!0?NWI;c#1PI2=a5Q60N5
      z?ZUJoz{k@K0^})OKatSJ#{?`Kd~7pgsjOumDMpnuk7i9fh0K?6fLF_mW^k<H>0O$w
      z7pgrWpmH34(P%W0sNao0TuMS8)^ch4pphxYJ&Da|^{Ldh%r^9?jOQ#%H{;{#cxEV@
      zmasyAr?+nvZkb`)>F#;6t9W*oE3aU?MnLtd{ARSZbv71Z6PAl(^SCcqZqcB7@%x5G
      z^tg?SmtFC+VH)-hv~O%WETFVIo6!A$|3+y3UP)*Z5SY6;GdDdmcjHdIg!M)K$4_UF
      zZ+OIKuOi>%nx8<vrN|#lO(Earil0Q@^=SUWz4|f`up<ZyVUdKVv9o;5orv<)b`jz_
      zJ*-iMUPO8CXL*)f`$=>B27*vce$S!SJ~w?y!U06<868B_!HD)@1Ec2=ZDe#5(I!SO
      zAll66B}7{o9Y?g4(GVV$_BMtIg83@L1gQ))kqSZ$H8Fz63zxzHX~MHt8Jnz6FdjvW
      z3u0_>%p_x*^b7YGpXB&+j9+2>8^)(e|M?c<*GRv1mhl^Sdk_~&pK&Nxr~cjw!eZ+0
      zJo{dLa1DdrW_$%PMO+F(EiCfG<$0INIahwT`mghomnAHeP%WWG!eR-v5|&7)ldxRE
      zN(l`Tyb=NuDkOxc#B>lE0ncz%zhUYFeESb-L-fih{6ZbpEQ7cs`nvcS2fzcL2Vn-*
      z;vZtC3_STw{r~fY!|PC<)a~x#ovCSTdi<>ksQm2p7*x6LKkQm55mw+*JowyJ;f8s^
      zhs=+x1aJc&;Ns=TD_p!1dC0{VAjg}4xRy>Zk2TJ?*coe`afvH$De^iOUxs|Si`OGx
      z>EdDJ4KBVK9q@lZ?7^O!VJ*(I;KV7OhZ0Xn-iLLuQYE6syh^(o^C=x_%&%-zV^Z0y
      z#zH=2D}Mb-r}_hIF9bhD!Ou`|HwEve;5{6?mxKE-I2x*;V2`p-#f<%wp;E>n$~Zz9
      zG0qs|j2H1Mm1FoVQ#AYrlsJCN6&;<D1t)`?PLNZEoU-KfGC7U0Q;wZZvC}v^y~<9n
      zv(uaCbk>_UI!8tqP`DVXyblvG59(J?zlQqvupRp>b(D8liK60lly_N4(pntlJyy=5
      z;&+tyS-FUcbd(RM;!>6Rbd(QCSw>1BYm$_DQVLlgkrF1Q%u%kBvYM2Dqud}xl2Yy{
      zH%TccCFm$0lTt}ag`<2z$^sR)VCp+QD7Wx?6pti82dsmQh&RJ+*b09_Cp^Tr+6TKu
      zExy#vut#*^J3Rn<#c_P4E$9>H@r}L?QE?Xr#4PL+zv27*JM0&K;p_Ymx=TvX@l&n>
      zc>HDxhY%t-3LL%7Kf-5^+VHWMPYLD&;0ySYlW)TvC%M&0#*Lo(c3$owS8i!B_bZP2
      F`X5NvJ<R|B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_SG.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_SG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8129928f8d15908f8cfd6efa30d5afc97d77d193
      GIT binary patch
      literal 2153
      zcwViQZF3V<6vzL!X_A{JZPV=|SmYrT+ESV#B4P_DDXo>X6}A*Z)v`^t>6XoI-E64A
      zCs3IYg?EfP0}gL=#u<khA6}@P!4Kg08GI#u>G%o6b8j~3+QAu}F)#L>|L>l2?zw00
      z-u(RM+D`xu;N39l8209^QgT_lq$N!|tC@N-Er$tf(RK=&YuMKO<)wLbJdApVZs}NZ
      z4KtZGitZV`XqTL<exhXMOr0T~)3ZiFGgW;>b2Qg>7?gA+w`S#&s_Ph5ewd*#Wm`p8
      zv)ozDEa@B(1~$mhl6UOV3c1wcIbt+5z!0-ag$3OilQnTPGei;tiNw%gB9WkcD>_wS
      zxz%ZfAta}J82GBLU(9LcB17xkBa106*^Yaz<`tEC(ze_sQlWxp1hv9SfyQPzJ*v5S
      zb+yN6kuv=zCv!R4L{4ASN~Sww6lxxiGk~EfTXG!T%9hn~VZk;zcGBK<Q;Q7CHB+1B
      zhzHd1QD0Ow*<ObB-IdJ`4Gs6!%swh3OT|(jsLZxG|7NEbmi4Slo8==})36Np7^Uy+
      zn`Nj^**QH7>VAB4Z#agi&Fi1uUB7d8{gW>^o~X&+ez?N%<c3_k!SR%D_BzMYHTmH7
      zZH{Mr&bK&5HfFEgi%@fp#n6g2VLcl|JK8u-Q1fY>^*bMMj0$`0hP1~dzb@_P$)@zu
      zenI-&l6G3~Yxkr*CH>!%_KT8#CG9hU|M;1-X9T}_Roc{)2-(%8U-G0}UDS6zhK@?5
      zFUQa+Dt%S1@Zp1-<bFZgACWCQ7Gmf^TNt@bhtGQ-VJ!Zw?-k6^%F)iz!O_Xl#j%B>
      zn`1l2E{-0KAV&j7BS%~;aVdsg(7SI=8<svLzmgekL41vh{E}xi#}L|sp%MA|8xX)7
      zF_f{7j)1#l(240w|I3?zj!`tPyQ$h)>*(!!^l58Q<@GRTh?TqlA>E(|#7^2ufUc!x
      zYFH2<Qejecpa!79r=z4BeY%Ns+^1Ve(?KG;OB^FPc6ei_H+FgB7GK;}(%nA2jr4Y(
      z-a&eoPbWzC`1BsiK<|O<0M*=&eKa#b6RUC_b%8j)kNuf?C8=hD$^kVKQVyz_uyRPv
      zaOJR?iHDRU^b9M*>UTK$U!0G}8-;T~c}}H>l!!PfBF06;gorpLBPM0UG(EX;nw}9w
      zrDub3mYz}N9A(P<Z<*$Tl|-+IMDql+c+-7kGXdf{@jUTwag@U9J+dUpaUwyF7?Na&
      zggmk=$sCceM=naD5#b&&#fn=+J=Lg!Aln3~Mp=UF5TqJq3z85d;*k|W_Q-vC<TXLK
      zAW@Gvf<y(0d88;vlOT;AaRq5nsRgBP<Uv`b=XpAkz(MTCA+itSa~#3%7{)`o=t4Nj
      zy6BSY$2c3I3vLP%>;heG4o<Q6>0<jBlk7{n)YdS~exVEPSDa>l&}H@zsk%DK__|z0
      z{NI$ThY(2`=`RSu{_k;lql}P*m5^A)0dL|h8T>Zh@q!1vU}|*f>rJs|eX;em*elZO
      F>R*y2_b>ne
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_TW.class b/libjava/classpath/lib/gnu/java/locale/LocaleInformation_zh_TW.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..075188639f7ff969291f7b2f27d54c225e973dd1
      GIT binary patch
      literal 2376
      zcwUWETT>KQ5bndWy9Zcc84%E5L{}70Sy1s3&?Mp|M8N1EWHpHnyW{TQ?kpK*HJBSj
      ziT7NInt&k}O{_{;6_bY~RGA-;%5TV1q$)3|{DPS7-q~eBnX1ggIbVOL`|Cbu&gozN
      zp8FX9+Te~K3Iwc;o0;&ic1jB;(@`y{hkJPHHczCjlx7=g^VpfhvHn3n6bh(g$Bb<x
      z!#&2ReMlcoXRN5cD`Uozx`1Fzj~Xd0sp=z|rP*mqfYOuI*35WVwJpPpcL*r$N}Hp$
      zX4(T<GNVf<5+GUxRK%@xW&~aG@e%^Kv|d2K%%p~NYcJO%p<F;wXniQu+7b$dP;W%X
      zDoi`KtO)S&a)SVQTGvm;w6ReEl}8_0%xEHQ*@Jnn61IEOrky~`mvVqtOO2#(F6ZUl
      znyu%uJ%&lf@ayf3#c&fb{e+fD+Wkf<@9{Y5X!VH%#g|1hmZh7~F?B38luk-mDZta$
      zzZ#FqFzsa5qE+NQ{e!z*aXHbo0;*PL523ZSV?!QdHBqb?j{~z+9d+;dz|gQBwQ<j~
      zGnzC^!`_MNjZFgr3cJ!V-4FN^f{Twx0!kLm-<X}BnVr9WTf)Y?`TLLK5;iZGb5|s6
      zajjmIuq|&sn4XsKgv)tKLg&Kj<lQ0=urmOaP$l6hJh4B<?{U6eS<K0HJD4)<&GDG#
      znJnfU&*pqEL65^{)%yalgw&tI-&x-_KXXCCA%Ytj_7mL1aDd=uhR+jhXLy9*7KSen
      z+{*AJg4-A#C%B#A5W==rhB1QKY$pg(HmW8OfNH8{7;D7Mu|tyZ+!e+q^A{P9AjZux
      zw%BKiu}%EsUB;)_|19HInE!_H8RCDs$@n$muTC(20}mf@F7>!$a(1fktpL<eedk#B
      z(u1q$^fu$mh{@wZ0BWJi50@6bE$5#3;mW`6Q<j!cDPf6(Y6&$GY9%a{P$yx9gjEt6
      zBzPqhODL5Pq!cp&XoMzwc0Gov_i+>G*M_LsDBP$9G|M2{A$^^Et&70}p9f$T*5TE*
      z69&G7rk?-V=<s=z#C5wX|Awj?n;!j&idF7@dkxB5_aAaC6bLJED<15+<#=FT@S){L
      zs{rr-px9-Xpk3;+%g_$G><YB;fgrA>tITt?GuJqCturrm#Vtd-&Sfu0dxgucM|+ja
      z4x!!Pve%#j{s+V!thpK1;mUekIL+%&;0en6upv^Ygw=>wX;ULUWs@55EA47TDqGb^
      z(5Gz2(XVu<-@}fa^ONNKG&y&X^B!{E$IjjCydRx=gQeu`Q4XjWagZWZia1OWgA@_r
      zh@%|wB92lyhGUVU;aIFhaV$}EREp=63{pBtN-0uGlhVtiG|EaDRyxf}W32QlE4|K2
      zZ=%wKH!F0OgeH+VA1u2M7b70zFC%{y`R`x{)>-H<?=aJgjMrh_WhPF0ahUg*nLx(x
      zFz+*S9vSH{A5g|+D%I&Q9}=^im|WBpG4;gcqCO%fL`;#xTq9-;F~tsZoft_>iNo9=
      zri7S)!+cCk88M{}^9eB(Djvb~J-#S6aXf-o5?~W-fOf=N;TCL%KcNF2V*B>N9#M;}
      zyBYS0PHfwK&@GN*%eG*@IEU@}8uW@g&?n~LfcO;~^>1)c{DocmA#@cKpyH>T1@QXK
      z<}M+GaTYjxn}2}M7RvB3nGFeK9pDT2l7nx-Z6~<J3C4q-{&rF9VOMNnKK3j2`uZPk
      C0!lyt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/math/MPN.class b/libjava/classpath/lib/gnu/java/math/MPN.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1893134596e9f3fff2d61a691553901a4a37ee90
      GIT binary patch
      literal 7842
      zcwS{#4Rlo1o&VoE?_=I%0z=>p%wz@<6b&;W2<k*b5(PgH1QI|&1kFq`LuMq*z$B4;
      z0D>fn*6-p+LO=tqvs+_bchyZ@tKGJHtY~YcR#&YayXW+{wQjfP^kdu8v&{bPeQ#c(
      zopa{B|NY;4|M&m>|KE4!+$*mU(K7m$PMp!K&TQ|}+Y+}YmhMjUq?fL5-Jp}g$R|-<
      ziEQW6miF6H9X*V+#!NQT)6B?Kvv><5<*HmV<slatUQ$V8G;>`ho7&L3yFHb^A<^EI
      zVpOp%*OBPjlE`Po*hVTn=}b4H+3Wu1;1!J2L^9d7jFC~Zea-eYYt}4Yqk>l|;)k8d
      zR5$qG+t)B+eHeFV20)OBVL$eEB=UK@*;@QFHmxipkEFF-5CiXBDWKHu-uAYv>kvp|
      z?M?V^1KkcmWOr|uU_kBPm&+$HaU1pk$EeI=NzmEi!M4R-I*(?8i#|zG>6b50Z!&Xx
      z+unROi_L1y+BJ*Us)BoQlmx_2%7h;;Vb0;84ftP;|6cs_;3lz5JTAhh13)`QZjj!c
      zgMQ>TK|t`a%1gDh1had4b3K_<w#QnSNu~q~x&XU#f?yW3+z{NBP^iV$F>IULxwAVZ
      zl-mzcl|A_!_PWKZtt+<=_K;vY)0u`k`r4or%{s#})s$8?d1*CWheZR)ZgFOxctEep
      z-gE-w8E9$kxqMy_Rk{<mgMcgByPMIBj&vg5-L@x{Z?iP7)JV?Md?J|vmDwG+-fT}>
      zR|>;yXWKw3pX(Mj7g*5U1yLbDTX#?1_MTNjGQm>POWSFOfOdLmhA^2+uHxHQiA_EE
      zHp_tRiEeOHmQD5bw6$k?_6Yhu02Wi3Y%<fC!BIv&)!kNtGub^Qc$U4wTHck}-ELFg
      zV=<cU&4NjHd#1C^I!W*7x0ks(cJIMdjpL<SpREL~-v%5lOOXb=)I+_P&UdFXJ9|n#
      zZW~kYgBlX~9&v<J+Hw$w8A~+tsh-;tFtZ`-X(M%u(nZrrNrMi1X^{3qFV+IML$(vk
      zYozBO(loI@o0HMl2{rP47m0^(-hDV%>#{j?C)-LsR=yLeT9@00XkH~Wr&uhgplONs
      zO)ou2JAe@rP@b!^BPsBYd+AO(BA^j3&8Lunj(h2T;czoVa@s7;+G=eocMv!PV?Bp-
      zkjR61BiECLi6rdm5vtd^(`~t4%b-2$QrXU)w4nX8mu?k&Xf=-J3tl=UP@c`X-h4;u
      z+KfnPZX~Zdk;<qVOI$Lx=K(@m#8by;smL=T1w{UZ+%JgGN9>ZECR$EqczUe`c$edC
      z2v4;)KZ|wZT^}BvL%uue6<16v&_cfwHMKg4O4KV6Q}ZiFTl|WzYOr1z(wM1*#*3c<
      zH{l#NUy@ltZfXSiW(v_2$YEDf1mlZom1LtChv6uypxIK6dYS`>NysEWC<$mTAQ$K?
      zg`5FWu(O7Oz-eH-5_B!bC$U1j8x5Q1+G#x3I?R8S`vW%j;ql^oU*Y}&&?Z`sb2k8L
      z#hI<(Z6kEP38!xcFB|AGx^bEmjgAzJjuegHeYTXMk-}067hP^kp}`a-Ddsy;{24QD
      zyyLDIq)-dAvDQ@UVp>!@byG8ycuX_3iUoI?3Ld9OR|<rciiyc2rW9*Z$Kz>xG9H7-
      zs;RXMsmxR%>hq>DC25_MAr8(G;G_eNkc942;3!QOQ3m?I4YKZ{8!&$h?Ut)ISv)!t
      z$EnJeI1UY2633+lg~YeeLO?>|tx{qYXIvw#s$tC)(3T&v8=}J5T6kS*g{Z0IghsvQ
      zin$B4$PZ1pEmQiHOrl<km~OuYV`{>f+K`)>Zn)ydz)gv`P_jFS=YFt%fM(Ghz#XE+
      zbQmHYfJu%>v96PcH#uT8IfiVK=Hn77x#OjDzU_|7rAalod6X7m)(z$_pbITwSQW;C
      zdOi}0L_<qlb(2)nq6ph=UjnOI5^6@h+ZFQ^=u*EsYI<x5wTv*FC+_&J+Zy}bkk~CG
      zb`N=&>4C&=VJ0Leq?Ju&y!iA~>^FcnqGO2n#~|GkkY)rX8wHnRaOW|)gig@abP|Ss
      z5>7peOf*iNSi6@_OWt=#bL1V(<Q>iA5zv-q^3vH|5{gQL&!l$S;9*)TwWZ<I)lyq-
      zn0tlPmIt)aR9M>L&*C`~T3b0^h^Nn&+A%`M=^DQt8usfczu{YOASKYp#%R|3(D3e6
      zc<ilL3rqpvThO1XFY}iPym(@wdJfekRu$-1A!Yw?ec62FKz+Gi_m>?zPIxPWfX3)a
      zi5a8W{&IgAw&E#h(lP=0s`_!_MMto2`fRnp2~Kd5C*@aD_39j2?pHH@!-F)bhLnRN
      zl=G|AILV7wN)T+T#=?*^=&=(x4(QM@7FT;x;BlorwosrZkhOjz)MM>9PP1_6Dj>vy
      zf*4(5jU>Xag4JrV^6+zx@gITeiJpV<zm0VNJly{U82&{V=_MHc6}a@PbQOIUCVCy2
      z?T56D-hc!Ai1yGK>Z7;mApMw*(z|envv8H4!6n`UwV%_=^a1^V{)676kLaiLF?~qC
      zpwH<O`W<~r|4W}S7yXiX>2nsKU$ZcM!7ilVvMBuzyOjPQo$7nSnb=B-!5v6K_0pB1
      zaEQx*bAc<L4IP9e7BmLFBm|l^jtO_OW|zqf8-UBL1r-Y#c5tVW&m_doFX6zA*Phkb
      z3Is|34p`1EfpZ2xp$R-T0xE-6eu0sIZiU<eSC08+Cug05enpx|hm>Rtl}D)?7WNRf
      z2$yVU7{X>v5mOmbimn!EErE%O<uP5XzTys3m&*@}-Qh`ES+8QfUqxUmMN=6ozAv^7
      zPD^hwQN$68Dr4kjoI=q2LZ(rK>9mY_=n`0=ftAx*HiI^?nY0bK1e-N2<)xu%E3nf@
      z16E+Cos^eGwiYQ*MRf?u!1f{`SUPK<1$3>QztM}^DQ`2@h=em}Dpq<^T`?UAyw=Ix
      zYNp=s8%JYh2xkZr^O|L*9*>ooWu@v>Ds84W9@8V0raN92D>uu{vSevhxvX*8kj~_^
      zS=J)cKMLHasZXirS~xthN-|go>ItJKuc9!khKd$KMdv|97tmF3&TH_#j@3{rTTEM7
      zgpzQpPF71fR!4nosZ`ehL>HB$lm`cC4TNVBnqwEfLA%roXs%S3fsD9Ts>@3`WIw;m
      zab0$;2&0@{FP&{68jf|ql_95I1K5xCtx)g=K*HHtFtQZ<9`=dO?QEr}?Mhv3SV`7B
      zMFtmT<pO~jhHK#swB596eod}|M;(o+raD4LF&|FWhD~*nHpaAw^g-MEOijL0^(eaA
      zhSZ`_?{USv1&aASau=*p>a4s@b#kWs9@Hm~NZ_6!FEhO`$r;S;s2lcs5@N~&!hW}L
      zY_#|c@TO|{cKB5B(y5xYQ=|oU9m0D9Y}P_1+eA^g)@AHQYGPaIdUg|SWZS5n-ApOA
      zgVO94+Qn|Ay(~`M_#b8odVsalDC?kc;J?LE^b*@i|BChBXBqktyN%vuyQE!*ENvqF
      zS#~{(cE_^oS*L|Ni^^y<H19~uDewXpZISiuGJ42{qM)=@R=VqHAKfIIoQ<fX+oaXo
      z(H7k-tKTlzQq(~YWsyvR($<E!JKE{w=QvZGzdh*loT9}+pZgS51=Z7pMrR_ZJ%#t2
      ziJ>z6oDNFgfA#Oay)2Q$QF1d}5^=z+3_70BQuFO$28#<Uv)RnAQVsK_5n}7a4FL
      zLZqK&u>qRH1}VVyBbywcYIcy$XK0w%5vpaww4B{Vm$JKQ1v^U3>>j$B-Ak+4H)uV(
      z58?9w!skI`nTMxcHMXM*^pm)1-0Fz<7*1F4js!=gRIWy!uc<)uf}#D*;ZgEbhT@F{
      zQo}1k%0N@-MDdHtDUKuJ$sQ+#JwZAfL2!@4NsiNOHb!&V37XHIq$=QQ*tp~(Vx1%v
      zEx4$rHfdll`rNq8bF*Q%Mbf|qI^A}=9chP2#r|_>vBL<TgQJv3Uych#IHnhnd~kcv
      zm4R(BeYE%|B)O32QtQ#9UK}&fk{hPlcL+g+?mI4m&Q~=~0h#`>4V~I&SfQC}av-J;
      zxr?TItoVkhkI+NTk^&8(26V_13zQFuCLb|ss%Y*_HKyZ+0~Rihxx+D|Ky#7((l#m{
      zbDKsu9W#dXqN$%Ker_tzsp%F?W+)<}&Ojp?^Oznva8FVyE=D8dwNLl7$ZOpL({Brp
      zK}W=%K~NT`j7`uC_8h$B+whL(=|c7bEn)vm7qb@;pfABIUPh2k(hcl8@Q7DXb6%hf
      zdyTT}bsAtlq(kiA=?Hs+?qYA!ee4W<lf6Zcv$yFf_G3ED-l1pMyYwPEORoU_K6{_u
      zU?0#=*hlms`xsrtC-f!zl>UhQe`UXvHhLKWDe7=3IiEudo0i^p4t3wEW#@34v4Z%o
      z@_r)fR2PC#gzhY?>XHGAd?r0bM-#spcOC&na8n7&gncpYOj$q%t`LJr=wj~?bV_^V
      z-upmhuiWtz62@-1<1|uyUha4cCwG%*dOw8cS&$*Vuh=p1xU928OA2&;BvjWN4b{Q%
      zOyx;3!=+1~eXrvaL%bLoD}L<y+NGO)0rPx`u=sBT^KYqw{T}A|0=e@~Qcagw2grIw
      z5}Iq5{3Z6KTSra0U8>289JP<E8rB05EhZC~5#bc53|qWZREANmd4Y^bZRI5OPcbAv
      zIzaJLF&J<T4#=wmlTazi2ISR2#NZ$<Yu0gp0mFjUdS8`^-bxiZ(L~tv#dJl)+j-HD
      zY!3`v29>0^B=5H(uf;TCTB#}cWNNl$dVe4<z<dVypGjWsquG2G`FRBe_#CR{CN1ZF
      zieY>OpGRwXK#H={V#sl|_0D~0J?@j1tF3qXfb}xjC=ljaG_ro#2du;$RJhA*v`~kn
      zyZF)mS`JnXI~<noVu){0wi?FdCmy0&Q#naKTqWTalQgsy;Vi!t_;3S^ic4UfbJ73Z
      zR5cBXz5GH_c@0(Y2+iYBT8MX)*G~J0QR_%l>qu1VNL1@cRBKBl{KdNA8FUxjZFeVr
      zyA>V?xd)m<z6A%HB9-Vo#-xjgj}_s{adMk*94!*Ai>X8C<-dZ_LL;>7Z?H&sq5UQ*
      zMJS1+ij<0xZjay(qT?~u;jdkOmWz&!#}F>{Xpb&~+?UgZyn!No1zpY?sfjn!mHY~7
      z;aAcvd?oGTS55oGG2l4sfRvp{s7>laL5v)g`k04uagWr8NEi1?eOwL;e?wZh1%ZAa
      zSuOJYPK!*oQ@7eqjoK2^#Ahliz3-2?hZu6~e2Fs9;A(N;l|JFv`=w*+Lt4?)#)_X!
      zO}3csDZjQPZ-vq~!ml^M>YL%yH&BS*NDKH@TEuUHUvHxZj92mPw4U#n=G(1~C$!Q7
      zw&bl&kK5{aLaXE3YaHLc+WxRr0k1kNB@e*24@uu%1fRLX_U#9qR^V<>6?CI6RD4fR
      zA6PNOl%Q|s!I9!0gBpsiC#VV>4=NaFP)+661Gs}YPr|)-!pxlzIEg^cK;T^z=3P|9
      zvvdK^(PF+w3TZiX6m6Sd(pfB7W|FCgZKiI9fMQk9)flO)8=;xLs>(E=NqQtcA*@sU
      zjl)BQ$ZdQdc<3iLhuZ+2IwwfSq%t{NrF71trJT=yX1M~}=4ytUN5gf8Vv4DZ5DLD5
      zASe{S48z+I>yIEX&@41X#J3((o2190(GnDK)rqeS-bjNUZ9q;mq78ba!R=}mO^S;J
      z+~K;B;$OliX}L>u3Kao#2jU+V>B3;95eg^Ai(eMVE3hsbH(vZhz%9O5J<^P=GXidm
      zLSd100(!t5LaG;?8W>%T=`e5>_6bZkfP8}<Fa$Gm#KwRwX9PdIhygOfXt5pZ0gM!X
      zTPSXkZPH2FWNIgAA!Lk5(MHip86&vWgoZfMTHG|y70nAlFmD8RmpF9RGUO_T$BMr<
      zRbcf<*kvRB40XkuLQ}4C22nvA-p22tGJY@l`2BE`yWu7eAub-K^Z27w!yiM=f1Dcm
      zak`qHpw;{&V&fFG^3$}LKTGX=f_C!fsf+(3_2GSlzd(2Kf1>;Few4pRC-_S=&R?bp
      z{wlr1zf0fYuhFagb^0FvH+qZzfIi}H(69KL^k4i8{RZ#<<IgbSZ!<Ul2`lG6WdZ&!
      zo6pa(TK+y;#y?;Uc(3Fiveo<}c0Jyk_{VH3|3tdi6Y^Wxwo;Y?WY=;)*7cn;>!Yg+
      z>&v9OD`@Mlw4o4dLR}G2dmf9?2^qDk@jnSFI$C+dhSp;LlYrc`nQ1nZK^0geBl#Ur
      zehN5)1@IiVqx+N--Hq5S@<)ZQDmX?)kl%?i5S*mb$*(sG|2gf-P~kM|r|9o&N~`UV
      poH@jbG7_H=F&UpC;}O&R*W}_~OpCvncKiv*O5=?FUhesa{|9FA5QzW)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/BASE64.class b/libjava/classpath/lib/gnu/java/net/BASE64.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45e8b6793e24284511a73913a923b2d7c2d05afe
      GIT binary patch
      literal 3190
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/CRLFInputStream.class b/libjava/classpath/lib/gnu/java/net/CRLFInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90ac71c58669bac91ff16fb5fa96942c0328209f
      GIT binary patch
      literal 1605
      zcwT)}(QX@65Ixu4_1YV!F-f+xcoRyYV0)pa2{p7$48+vPU>cM}X>ckOCtjBgjvbse
      z>I)!H5g@?>PmrpjDGvleC4@v138YHA@;Q6}aPIZun6^TZcW3U*ojK>sZ2tJ`*E;}C
      z;bj9M0sC^ZlU=XATg^6IKU<h97fa2}jz90W-Rgz`O<+Vty;im_AP_3d35b%wV4>CA
      z@~cgMvD)akVU`|bv|N;yNy}>rSmpcFI45A#T66A}>$6ftATs4OJwGpSBz52X^rC=P
      zXw_U3VT{Bvgi(QTD!nNE!*M)_BZRY2ZNEL=+1zZkeYd9K6$1|mB>ycr)2Y|pwp;5f
      zZQ>|wSuhcUz<3-3hzksry{3Div$5*77pkibS75l@TB|k|t8GvE!J+2A<!$j+`Tvw8
      zS&i>5AgX4bzq00T`X042@I=4Jv%QF<m5$?4JSHtCjwkUH%SeKJrAl4m**Kn-Lg?*4
      z$u<7iM^7!!q)R6GoR&3mRGTNIlI$*4Ihf@cdHuA^I2Xs1%oy;RHTTMFU4oZN<l`8`
      zA!2UT>wGp`&Qdh^^XR!v$;RC{MK<%TPJ7KQdQy+kyQrU()bI$)$(7J3wT=iqgI)+x
      z`msLWWCqn&Hhc4}GsemA`2f8o#zTDDnSBgroIP0EFq~Zs{Dz}%IQvN6#@Ns5_QQN0
      zQaxYcoidVm4aevm?%pS&<AAbcKa!G4Gj>9u6nI?q`<y4T#zf{9jO`&cl}rro;Dq$F
      zJ!FE@X**%=AZkzT!t5TMOy26DI8K(pMLw5^s6qtG7{?`cdlPA_a(=EtcC6beKo&)Y
      zU#V1P9K$?~u$sg;c@M_vK$BR;2|IW8@XSGLc^!DCk9e#{JceiSTtGZ`PtiZsn1FT3
      zXG~iO$T~L3oylpI_6=q;j%{iCIGfWMn%+h};BM)m8(oc<pld63P2CB^y69MX!d%$J
      z(0>aapq@|*@E(`peWLz=qx+EPKH>*(mGnQx8GOQ_eu_DKMk&9*Wqhd^=DUb{4A%pO
      z(t2JAD6JQ0@gD{j@FFdZm1p=DA>WYv4DMD!M42rISjmKMW7-~Dkzlo2PPcQBUF01r
      zGAVar!ire>4n_l(IU}Pnotw!7ZDlfNScY7Z0d;IeZe5KC-q3FT{d?$u`B}B{UlGgK
      zWWUX|zec3j8M{F=H<87+<n$fce2*f2z^nKX7nrkzpOgZZI8`F;DNyMtQ0Xa92^28#
      hItogG1l4>=DKLWbN{a|PMb*+7yf+kBf>DXI_z#FO0FnRz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/CRLFOutputStream.class b/libjava/classpath/lib/gnu/java/net/CRLFOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8133d6f5c9d1b42c596857eda7c9c94b888f416b
      GIT binary patch
      literal 1880
      zcwU86?@wE06n@_J-nH}x6t?0R6zZH?X@O4Jm|9@cN@ulm5g3LLvt7y^+*xi(d#mh=
      zo5raz8WUrTpLFUbMn6qAmZ+KE{iD?9eS7I@Axd-UIq!SUbDr~@bNlCCzdi);6wdqL
      z5s0nX_4HNaO(SiaPC7SN%wMQGn{{X2shY-y51POcb!}DBd8_Q0)z*6f|Hb)BGxNDZ
      zL7=Co0?UTImgco(uVn<nxr$wL4BJ^W%5~F^4wW+Mrg(C50;1q0p)kE-URnVGO%mb3
      za+Y@4s5#7<ER`+Wa;62miQz>VQ&}}TAkZ5^7a{^(Mawo{sc)>9)dgdvY)VFzl2KkX
      zs+RQK!vm8pOkbk7+gWQ*nc>9%ych_f4@V^aU<lm^vY@kW)dYr$|0x-J_Ezd7+`B)z
      zfc{q1a!5o=6l5QP*{zbf=~&dshZ6z^chd?Nnm3Zha0rj%XaFgU`Y<AJXg~N6p1>GO
      zB$l(XjTBDGlVg;!v>qVHxO7hm_!v-7<;98&8<(uFT;cz+Y4dQEk0lUI?47B^ox)ik
      zC}E`iHiYLf!(pwNPWGB(Qm)?pAeOU!<OEJHtef%OZHSw8sj|xJxK)eW6(?S+Z*Eqq
      zj=37I*m0?SymqbTm>U5c$E=)A#)oqP$98qNXg4!vU8tsja(d<#r=qVkX!+C-%Df27
      zSL)T0$>ruuqV3}xljszl%5XJx9OiR?o{ydfezFK4*z_f<aEsqbpSww0lRLz3A9H$e
      zkP(OIo#wgx>(+nwFL@*3g(WQ#Soj6eyDI%L`8Mzym?g+Ki$i%ruBHodjwkXgm`puD
      zf6{Xwu}8_BiuJ4HJV&5;1<>0F#}MMGc2KSr!Gv5C-aV<<3W_Y@KXKuw`Xk|6h$QbJ
      z@iU@3NN(dqe<W}VeLRXq!e8TX>s?Sf{X0k}`~OAgDBA~?DdFoB;S&2WcveCh>o|j}
      zn8X_`B&V7rr}%>vbV-iwAvr@^#&;xB-qgb#Jl!sz!?N`j;EpD62WJp*flsvqiy1X-
      z;LgB=78|%cJusnf<9aHpkN>E$H&g}wc=5@(zI=vc`>CiF)uY<#4klb_ygKcuu3etc
      zwlTUZ+~EHPCuK$I_?|AJdhDCO--$8uD|EYwu}0pbrt@4j;B5~7Iv4H+>Aj1SxQVlP
      zA1~trF2sjez(<_H$0&2eTlkdGpYiqvt<UiVKezFv5^TC5KvS?gu3*wS!<l%L^$aa9
      zKi}e6S{g;UiRWnPO4!Vvi8-|8Y7VA){5zODpB(Xy$iZ!+^R?e_e5oh<05AM;SJmm_
      z3zK&{>m?%a9lN^C)9<-MKOlym6w`PEvB`80FS@U45CwAf(0+*-?OZa-<`7$jZ{MJM
      Te7EnbGNDGWTSib&8Cm=X6T?VO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/DefaultContentHandlerFactory.class b/libjava/classpath/lib/gnu/java/net/DefaultContentHandlerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c8df6145f839a2c57420aee7faec79688b297c50
      GIT binary patch
      literal 1353
      zcwUWDYflqV5IvVdx2-Fb74d;D6torVD!wf~5Jk}Sl|_<O6LY&>>c#DDv%OXLDSq=O
      zC?;w&8bAA^jB~f8KtN-Y-n%n%=IqRw*<ZiE{s3?qcMNnf6suv=UgWR29SUXN6brl=
      zsHrGaB2+Uxd=ZFvn)@n>mko3?<P&JX!>awDvM79IAkA=~L$GBgL;tHVdJ{gEHC`3Z
      z)pA`l7<N2$*2r8H%dlEz$R(J$Hl&4UDjC=_yz$Z%iXfQ@KainRR~b@;;ygq5RP;g^
      z=-W_Ui!p<KhHS!VS8DYPc67|DT*zSO>KpCFx*+tfPPnd<_jJNaE)aZ(VOPsuD%GP{
      z@k$^{JY24EqTbJ7tp@#CvlR1&5^)9x8TwZJOBJaS@bG$PT`rL`3x*>m3}g(9l4hHF
      z&*2z~1`4ZvCb7vl=F1He$1%o`<_$+S6vJp?y}GSYm5b}-)UdLF62rinb1Dh~0?H`N
      zVFb2`Q#ehe6K%Ek6r8QF<>I_9{fvn$a@3Y1Lvg=ZtB80`>qDwIk<Wv99!qT}&Ky#>
      zp!rQ2pL!{2*kjIruOcnMfFBF4#Ktf~sjzve+HG%M&$90FiixYZMqA}mjLVQJ*;&{^
      zyC+#pV#>e`(qTiPvwDhcMiV!2i@1nJ@zAH<hn&BH^(xn7Em?Lg(pF!C8#QBJOiL}}
      z@V_KEsk1Rmb4by@2VKbNO`<P7r^iBfimYugDY~7kcj$)xIr;2&^m-{P?|R*q<$68V
      zfa|5LLDw^^-L99h_PSm^ZSAAeuny3fu@1Q(arhfXycHb&f}=li;xkTu#P|o|>%v(&
      zFQb>v8LD8G-gpQ7xQjtJ7{Waq!hIaY1DwD^jN=i`;WjSfF`?%OHA%K+0o8e`Q>{%m
      zqr2z$XPjSqO*(P5Qp^^Bs4gYRmr-sfJA~GR`4x<heZs_B7%RB`p1tqz^pZG$M>0L3
      X=VuAuU@NE1r=O;&P+i7Mk~jMY7xqZu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/DefaultProxySelector.class b/libjava/classpath/lib/gnu/java/net/DefaultProxySelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f1ac73b1b80d60f7982d87d7895a8d83532a907
      GIT binary patch
      literal 1184
      zcwU85T~8B16g^W4OScPDum$|&L$Rg6itu9EKnMsSZYZIO;)@x!V;x*}$#&Pkzw+aO
      zD2cvd;*T=koz~XY8k)8<_s%`{oO|!g&tG4^0a(Pch8V+S)eX%f{+^qz2+R%fhKEkD
      z>wBkXW#I@r@O%w%hD<Z0?TkS?AzO+XL&{PyVIUpTlC_|~kSNQl%Y)Dt3{xG)MXNn!
      zVTAzwMca|C3|1I=vblYR__|jS8U`3fTJSaB=Vwt49R`LBq@XkO6%{Z6hG7G}=u6-_
      zG8)nhgY8TPMlnWQJEhmVd!?5LP3bKyN!-9K4LAQ_o2m`m#vKyJD;0)xwvKbSTQy6E
      zN7Rx+?iIt3C0(%-9v=$-89#KW_+iVlxwFrG8QIFIqX$D&VDMH_^QNsU=RoZluszo$
      zW0OlqkbsqJOZfA>?Lx~cd-gjKtW_$$sMQ*N>6zQ5C#SYJ38d#1a{C${&|F$2Y&(vq
      za%au2hR4DUnxQ&oBB?#0FR3Bzlnk*NXBhh*HNm7u9Y}Z8Kx3<^@)#yMYRUb3ogQ5g
      z()CK|WiRw?u_>cDjCX77LWH6RK~m{qFd9AG9$GcBV(3SlehKL0Ns?!ke9>q00>;5P
      z20!E4r|3KK1>-Ti_^3d4>3>kATPEORWGMZFI*ABU&16foGFp3Q&oSA8>MF2E%&Q7!
      z)PpdEX_ep}?l%$$ij32m&R-%qcL{C&2a*?<A!XU`om$o@(FVPWEtPb(4s0Zib~*Af
      zwaa5pNl0TJ3xs7b@sK?AmMki2i*`{=D*qQHwc<ku>r>*fh<Qh`X6l$GYpTIY(^a^o
      E-?nxM%>V!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/EmptyX509TrustManager.class b/libjava/classpath/lib/gnu/java/net/EmptyX509TrustManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce58175f9f80bef591bf291679e0d5885c85b778
      GIT binary patch
      literal 931
      zcwUuKTTc@~6#j-@7HSnKh>D76BorT5Oz=T!B&NZ{WYvc@#KfoR^tc^drp@duq5le>
      zOi1Jh_@j(xhoYu7p+3wxXU^q2*B?L6&H+5bT7VgW$Fa%6LwPJiLoVDu8o1%d=i4vZ
      zHcQ<*X=F?`KvCeP_erFQ!w;Q9QZ7JQU^UmC_|P;>!tqFf@=I;BdnHh)ZypE~oBb|T
      zP{6e+0?Z1`N7~T)?5IPwEjtMb)S|wU$$_*w|BsYK*VC!Mlj!Pd8w{a(q`ov0O~!c>
      zbp>|opCTWblFF=h!%&fRzT_qg`m<KjQ6u`(XUkb_;znL~W&cFc!0En811t$_OhEbz
      z<+ry$N%f>=zCKlUfmxZkUVAw3llZ5W%idaKk9lI3z13oJuT`Ftx^L4oBg@0usBcb{
      zGr$8rgR32R3ax%-6}{2<N>(OLe=EnqBk;ocmH5z#%z4#J=lB;g7tBjfzoGJ#g&9<t
      zmc4QZ*O^u?9B>2k%=z-Lz+SZx)S`#k<5$S7;}E+ZV(r2>g2<&?SoU^-+qlCK0(buh
      bc5iCf72F$dweTJHPsae86I)&NUJri(1J%v|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/GetLocalHostAction.class b/libjava/classpath/lib/gnu/java/net/GetLocalHostAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff5b5a4f491242052a4919a9fa4b852c44a180c2
      GIT binary patch
      literal 564
      zcwU83O;5r=5Pb`URji_jg5Ti=9&GexswTwvl{9Li;<>aNT*R&E2kO7Vlg5KTz#nBC
      zN+kpj9(E>gX5O2bov-hYPXOCk<w!AXv{YoY?XGPo5gI2Vv^>Y|oO(f6cS7kY4vk?p
      zF6h{*Wn47d!U;LD4C`?;5KiRF@Wr_FWmk4YOSl6jLv~Lp86GgCtF;D$cIdexhcu>i
      za7-}dEvdwL^w1RkwcYFphC<xEVf(U=lb{yf$$+6^{WGdbjr@rE7OORDd}1?)c`R@g
      zDLvFUBU5)>Uj%`UMU)uy)`%=a`B!PI+T>VbSR1Bp)V=baRG)P8?1;y~{<$kJ@*Qz3
      z`&*R$4!qUpqXL?nUWTrcB2QmKc9M`mo{`UNz9IJ-r**Q~IJkppvihI^Gsu&tOJOb{
      l*Ap^-N1=DidND{tLphO|Aq4DF#3X_J5jj4TTaKHq`~bFDe&7HA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/HeaderFieldHelper.class b/libjava/classpath/lib/gnu/java/net/HeaderFieldHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f6b28abb9cea737e76dd4fd77ec8fc00488789e
      GIT binary patch
      literal 1930
      zcwUWE(M}sj6g`6-7TgVBFa&T&XwoLOA#sx?Z3=`0Qd2uIaiv5?JVeoA53uR7M)o>_
      zMyXV(>NoVYPkHG>DzzXrQkCa?NIs+Onc2l&%g|PqcIMu>bI!SU?)AIB{`eEXHQYDQ
      zBXDlZZDyZY&#kO0y=-1uRasxLrBlsIXIIt@L<NTQxnsFo+0w={S@8r0x7(2q<bFe7
      zxTvF=p6z7IjH%V<1>&KwvgI@-1A7;2*Y*|#BB^v)AbPJ>l`#mICi-xij#NSU2aC2V
      zA2xS3Wc{(V;Yh_$t5{Cis@uvAoKbJvCg^nW-}9J{A%YRb&~IS$D5a3t7!ol1DP!Ek
      zDfFt{qzMDPq-faRl1UT<2CQl|ge`D6RcsgMkyp3ft@&<Gx~$-*O?-$80x^Q*9JwQ1
      z7IHKU;8%BEr62i5?zf5>#u7O7Tvd`vx1^Wvc!uTuf?Jh)3bl~#zN$o|O=K`5&@X)j
      zOI}xWpu)hFj;HrQ3}gjTZSPXOZuzXGrdQfrt~K3iBez$PyPjQhDc1HCO?Haa&CrrN
      ze(d1`Re?*#6!?VHZkqTEp9>h8vb1?ZarumcoqX({cq$$0-&Jdu>8t*2`|?&}oBkN)
      zFrwHNO(bzgcX2^EmrN|<9_`&GOM2@V=3}&UyC~nE8HySycG2@ZvSYDi!%V@Sj?!k%
      zWf9b9#U9m~^@?1v)ntry4Z&3f#~vgG{{edVW2ft#q1Qg1a6tHt(Yi^$;A&)sVu$$P
      zR~<OOZ;UJO1+UCukUP^4!w}+J6~yTP;t8TUb}Dm-;mjK(){}=A`yFRO`-wL2FvEcb
      zeisRL2WN3t6O8#F0fE{jdB%z4?p#2%#u$}VJo6jQ%pBl6*NIuKZTJBl@Fn%-2(_Z2
      zr~OMU=r}IoBb`qiA9JTla0!<KlFfi5AyySl@&Ku~m|cB^=-TXS#weaRu6CqzpVmWq
      zzoz{-#F=PuCh&<)r-u<21I}wFa8CR$&UIQ(=zU7N@}HbXd0xk-0cVrZDn99R1|_}G
      zO+AY77WJg=p>0|YcRTbsJgs2@jgW+7OF}Xzbq^zsB-~<K`4WC&A}W;|Z!ouhh=rmO
      zae&*mBa5$)oKe;k^(c92J;2?yA0lGv?9YF{pLva=C%?eQ2KM;fC+`dDeaVjbj!*iM
      ze}gZW^7mR>#^(yO^<kE6lB1F#>RMr;RGFrA$s+WA#oqK)Ue{g78-coCTFkxL|6^!C
      M`dR~$*HMLk0LmtJNB{r;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/ImageHandler.class b/libjava/classpath/lib/gnu/java/net/ImageHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02848b621dcc59de5505af9f2b448c5ab4b8de52
      GIT binary patch
      literal 626
      zcwTi;+e!m55Ixh@)^6AP{qmr1Rm4REUs`-oi^8Jd4SY=3SR-pzwpr1?QhX2;`~W{n
      zoTQ~*pb6QXIcMg~O!E2l_5ol6izVa;b1j_(H{xCdTAJYCR<z{4(3i1HODGU#dely$
      zjnt+~5(brS8=)gfSP1)y)Htvn#Y!u)O~_YQ&IyH`<WhPdRDAdtBoyn8FEcdkV*o|M
      zNT{?t%x;@9Jr&KEi;Ra!B;s?CD(gGYLmm~@GuNt3@LJMzn<T7N!(KmU$06fdMn)yN
      zw$dSDp<BUG^M+CG(c627<elZ)CCm^eT#QPBgQFh9g|ak`2($g9S?46l(nvOx?Ra@t
      zUWqI=e{ZfKB9o+#>sA9xJaV32gKx>s%~qbR5+6dDy#P7bRe1+pyuy3I&@;O^jPTcU
      z<R<?&FzQgd{9nn$8yHx9#n?|;(Se;5zY~CQSDWX?Bu7oLU0`q8$!xJ@rE~Q3Pow5E
      SraNp`!&<YLbEW5<x9|;~hJKC!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/IndexListParser.class b/libjava/classpath/lib/gnu/java/net/IndexListParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8aa7b07c0345132540a24d8666f574a7ce331d13
      GIT binary patch
      literal 2568
      zcwT)~|8G-O6#v|<?JIAO4a&w=K;)a)6-Ge?aYJ;h9TdvIb#!zH<F&o*-gtX0udj0q
      z!7u0p{E{e%Mq*6-#l^%#iP8}li9boAKl+1-n#f<Gp8MLh-RNAh`|iExoX<J;oX<J^
      z<)0t!1K5KPBs4H=$QXsdxH_o@3~mL&Mv6~Gw7hjvHS^q*;9yu~OLf)A1WqKzdD3EN
      zKH57t8XgFSPLKA7BOwM)q^cCPOwGvjFs$s$8hJ}KteC17xEm`N)*KHF^>&2^`UAH0
      zu1GjK#L!lSi-iWG;S&R+$3k&86aqe~ns!iKF>dCytkJ!RfG11)fx<+Bn+z<-;Le#m
      ztxfSfgSQk+!P4|VL^Ce%)Dbm5c3jO-Os)f(p;-qR_W5eG##J*wj`}s7_e3hmI5ikq
      za_WpRIQp_FE~61`3RYt+L!+-VCZU6&eHphh+R?TG4C@uNV3mx=@VJDH^zOP5DA<I}
      z^q>s4LWX5tV%X_>G`*cQ;ZJM1z=)Q!wR<FNWmszqwQS%}A)V$XPYrT4CF=PErDs7F
      zHgW}v;J7-mAbyfTseQ4G?dTNm^fPSr)l1Eym|{YIr-Cl*Vvw^rZj|6DH@<Sfi~aV<
      z*oNK0!5)SVUtJY}x&==QrDupiRi#qUW%)h@&tgBNjcihse$LRk;IlSH8QnM_p=S}V
      zOELw|gP0)`XH6?VtXX4JqI#(x5g;!r=*1yol+KNeP$eFOg&?RPgnot<`9dOZTL_r&
      zGO-*{5EgMe=xRd7F&vi=Srl9_TSy324B!MqQ%*Ey>1vtif`V!<DOibSH=+y>ZcZtP
      zVVI)j7YnMMUt(J7Yx`jgaRnoS*Y2dwRkK&uCA`eAx=J@e>nOKmoI#sdMirbF*o|r`
      zCAgkYkVJ~kR6~aSbsW`k{pgjbYFa@?#Ntfq**uq^5do@-p{XR#Su_Y3T13f9^I%A|
      zbK{9*ld2w5O--E3mkw)8qsMQI{NL0gZb;ORX-!zPFEb{HCkZvr=}5gm6LE2G5Q31}
      zqJ{*GsE!J27k4CSI&_<@uJJOIYf_9$igHbj>vGOXy_x1hc@~C^bXLOUg~?OHf<pyO
      zCv+LpxFQ<o>M~r3iGshb;0?S<oU0-)OjhD_P=LIp;BCxMY-*00nrgej7kre^Wv@NL
      z;<|zxc0XF#Xt@bw!arianjW{_S3AL$j%hiXEtpB(Z<nBTNqu$+J8Y)N8|jD40WX|z
      z(Mh6H1Kf0$YtBuyQY%3G(e$O&NwU@O(7Fa-f02coZXf#R(CVK@dwdSwyI8lw<1S*u
      z&$vI2E%AA5qyO#kogVibd`0Y-LtqY1bvwL{BKCGWy-rV45zpO*<Bq?yf1!xJA`aif
      z(YrWV*76K`oka}Y#<0JL({}`5m)A*v-L83@A-`w4rCF>mt9=UBEWBPx91a(8ZrDbN
      zcRL^a`_TVA)_GlCsR(u0>wF+Io2%ll#Fo#ZMYx%TyX20t)q;NffiWCL&i-D+@AkI=
      z<CKAEY@~ING8!h$VRRr)KSd+hP2asZivu`E_M>Edp1MAX1X9qECaer0P2dU)%+T%z
      zEZjl?A7c_<(D`dj;U1y?h|Bm17w{{t;x}9)&olTF*YP)Q(yj1p*MTr6>}owEyew5o
      z>~e(DVDC)YHBvmEBTs%D6xAo>%SBbaf<E$ik@hn*@m?XXf&nzkN|mPR-e{vW`J1UG
      zenv&UV^c&tzS$<zhXnHx(dU*OkWx}F2gGm*`^!)V%TTTJn2vjz=I|<|__ZRg74gou
      z6-<|{^H~j6YXyrsu8b8RZ6R|~QBQue#Q4h^V`s(qCf=<Wvx@P$rJld5Yy6(A_5OeQ
      CRczP*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/LineInputStream.class b/libjava/classpath/lib/gnu/java/net/LineInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f8e906acacc0145b5df69409c49610f95998485
      GIT binary patch
      literal 2236
      zcwT)}U2Icj7=FI?Y+bv<V1o@tJH|g<%b5HPg^r(1eyW2hg(3sdu06#gqn+KUfEQ{E
      zc!fVPMl%u=)Hr{T48t~}2BXFcF<f|KjEUEJW4!Rfc*A_&@6@tv3r%{y_q^}-J@50r
      z@AI8ocfPm@U@fvfcoag%bH%o&Q_rT_a+cH9ZRf0bZlLHSoPw1)>4Tv#S4Zu9+oXVk
      z$IdC#ch3;pqTuZ-W)+&t(atlDwWCl-o#`n$llN6wxpY2b=Z-7Xxtse_x#Mk&(<eAq
      zo;a#kA<);KPoLOtr80vGl`%VKJ6jbNgl8nsl2kCd@)@fNbxd+F(Yhni6^{p?FwaB{
      z>J=h0pPWuYux3kJ_7zX|S%m|szJ5#C=F_SEWU64xd&y}yPuXO*sQX?m-4cKoL17VM
      zec_g*pR5*{s6eF;ixryg*|Pwe5tI|lO!!bG)(R7T1jJfpq8g?TEegRhN->+Y3RY$k
      z10fJKu^O!kvreW8ClbYhfqcQSGMZ4YK((2e1(PN5fa{KP20KrutpUf*=LUV)Fj*Kq
      z<%oc{o45~a6)M6<I$Pr6c|bgyD4HXk3O>5yaW~K*0U2~YD}!bdZ@)!hRY_jy948iT
      znLZUc`=E)PlE%-V-7g~$?`{)&KpaCV;}VXyB&BN)o9LF^#-RP2C60Y2dhiHSIe8aU
      zVP$xR`OlPGVZVt44zL(Im$6RwWJ_h~dYh3naR`sG1E&hMW0gxz3c+3zM`ZRD1#8f9
      zWOuJTj>!?Je;`i{sXkf-%b}I#pIr+i^2I{h+GUH<=1mdR8sUf~<mKhnu7DwOqU8~h
      z=#>)DD+R)}PNvJ%#}hS}&F37xZRcqZ*Q!Xgu67)AujvyFd<L{X$^C~gpH_pr4-3!;
      zXiM@bjaFYmJ5MxW(;gYe!bo%!O_49re0Us7MzJ)qdKAke-chWKM884!0&1dThz!AJ
      z48x#%&E4FKm=!q2nx148Da=D3v!>~{un}3!XR({9%%{D?M=ZZ)uSAku*U@M2ZN28W
      zPIH!uucK)U8?ThJx~ETQbkp5aLKmb>(~vsok)HSkiM8B673!Hujq{g@`dQp&O@h~8
      z8fb#H!L?e0hR85B750>djkw#&u+=44v9@BHPFl_RZeyPmcA#@=D$i`K8K_34S~-LY
      zH9}*}5N^1g>52u15D3;9_y9gWW5KVg_DLu>hF!9@dTGUCLC+;Dju<l6>sUI5hc1+$
      zmh!)R40}f+t-(2gaXi`)^1O?^5^42@#&FQhbNH-B4I}6xhW<zNd4^FL3T8S&7bkw7
      z1h(05vm9+SMqDJ4I5<49yEM*N@Kfo=cInv!e_R&=`X)s0MRIQmcC~gA^YP(3f0rBo
      z7FO{2B3t|t=l3$(cb<)Z1<UX%R^c^7@j9FO1{?n-y107}-o}0m;Q-#Dgx`aW_mRVg
      zIE|0+0zM|nCpd>IJoOna(!PulT*Wnv;&a@<IKIbC+{V}V1K;9Le20JN`4>N^3fxjA
      zepEHMts3x?7Q!C6EUK|2gat&Dp)2M*iYK%XqPRd7n<<2=Y($EGgXnQyD()kuU;9MN
      z{Jxd0^7DM7I1uu-^M2Mw>y7nImrz-6Tsdo~dLwjs;xEr#VK(T!KU1K;@N@7hYH2UT
      iZ<^l*7pE-LkmjPawY?<N5V@rF$78<cEF#Tlbn8EbO{A*;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/PlainDatagramSocketImpl.class b/libjava/classpath/lib/gnu/java/net/PlainDatagramSocketImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..376931bdd6892cb027aa9a3102e14eae6661b5a6
      GIT binary patch
      literal 3097
      zcwUWFU2_vv7=BKg=8J8c0xbnvK?O`wYybg2ib%d%7M3J7X|(tex5;VPHr=hsrXVU-
      z7`^b$U*M%T-Y_FDqciHroj*!_&&f8~h7{V)>^aZ-{XXYCC;$BW+aCbV;(;F?h7&cj
      z6<^gi^|;CHc)qS1W?HxPT0>tiSd}$ytLqzeKfDY_J66vcFoet3Hp|6SzMRdaGg@M)
      z%)nHJp_FAdZQZm>dcDO5C^2(v3%PPq&88FS^g>z4M;JyO`9fx~km)GAT}5&smq@1)
      zg`!j(?<#URilwR9j8KFJ7!C@BnlIm2)QYO~Q0Jsmm|?7s?wnK}V;Fx%spWEcsol@8
      z&(Rih1u3FT!%hj5eLmB!c#C1gkrve(ncSkRH|*;g7qaQ(qAV!Py3&PIX<O>)_I5p!
      z$tN_mBzr@EA!zEhvB}FTRR(1tlgbF4mP=h{*ssY$s_SMgo?Bk!6?>NK3z=-%F;MDO
      zMXx8S)dp`isavgcs49INIr;c)W1U+qo56R<Fb(@M!$2fjV(_M{Di2`*GYVpu4uau~
      zf>+`5;~brAZ~71o+Ke!|px^{firt$EPPKP$D~N(v8PN=rXItybyiwGb>s<69$}H&(
      zLtsbfwQm_z^C@jFBTGF5Rt!_G8+XYyl(|#k8@55i=tqL#K)24~t%h}5BnVMODFtav
      zGYnShR+Ee3=M-EPl6^I9XC?1*X~_i*w|Chv=?soU)c!O^OMYk!6CGu{yiP4dbHy@E
      zqDchlA43(ShpI-iW9h3jxNZwRHaK5nIJ}EzRQ02{-Kt^5)toDFK==yQ7$#l*+dSrV
      zQRu8_a;VAeA`L^)(x`dL8j&Rp)q2EDF1UDJF!J&@c!f**Acf62#f)zg=$>0)9;|hZ
      z#wc&U=?<({^rk)E*q|BPg^8{-%kA4%V@)+}-dNEqeD<bD;}g9UHF>N_Vmr+@s7~Uz
      zDrTalU<p^rs_9sHBgtq<Xx0>bfDg&dw&?|A<mz3u4D&fhBHcb$pktYgbrRF8)wwPi
      z5x(;ct3{n$bOmS+%^rFY<93@SX-DcE-XUz_3k7%aC3RWrh-pM4(cNBxpyan*>cnnU
      zQ5PgsSLj#bIR#Qu*{joJs9?1k6+UN(%RRZvJ)RNa=pGWw^!gpZ1P0+F<R|1ofN;=-
      zLxlIautIpqg@*}`xNw;8s0;5We87bd5*~Bmal(gOc!K^9yYLahM_qW5@RSR`MEIBs
      zA1C~>3%^2NdP~KRjd(8QdP=UqYlz4-D)ooRhu&ZMo+eZwb{MTEV^8pU%<~BG*zY*I
      z^aO7_!ujs@Vr<|M-g+ogy+hw4GSppou}n19sNFi1*P_&4VU{#XJ18#UU0S{3B_z-H
      z<euS*Oua@D53N(NCGGFnuZVkof<N{c$?2y*!#Dl(Pbw+%kW9SP%NQAsQSD<rC2W!Q
      zKBap=C$dGHd`HZE?<!%+DS=@gSDl{Yv<lszNcu}Bpic^aa5)dQotYOZu90NB{_7;U
      zfozW?M?DJLyd>AHc^?ZdNr5DbDD_C_J?N1v$%5UIoA{_l@^O!Z;S+qiBRfMGpY4!%
      z#3RxZCoO6xR6&&nqN4$a_!Fd^aY*yg39bCt!y3ixvgYfY`Yjl{L`#xfoP8*EbQJ&H
      zdyLiYY=wk|g%M<<GU|BS(upc|b*xi7FHBgjsVd0GS7<Nn1F>o5eS(eNxRda+DOcP;
      zCvE@@x+o%U^96AS`oxV;+~^D9+H^yD<K}5E9;o5i^k3L~j60|MRXu|t7MIbFx2-$T
      jhv~+BEqNctJ$xgt%hsOq^y}h0<+-rOJPhAT@B9A)>R3lF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/PlainSocketImpl$SocketInputStream.class b/libjava/classpath/lib/gnu/java/net/PlainSocketImpl$SocketInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c03ad3228a81cbfd0fd2a3e5e873d6ed52e3853d
      GIT binary patch
      literal 810
      zcwT*xO;6iE5Qg7LoH%ja622Q6C?Ba5K*9l4TtFN^AX$o9q*S@|<d_vKb=HyXpdQ=*
      z(@UiS5(j<&KdNHZAQBQOvUc^(?7Pp*tRMd0-2>RhCleXM*176Am)@1<D3Lg)fhScn
      z^nZxN?R10cvsB$)(o7=Zbxat9>C`VnXW)R4PcCF!trM0S<CuHw+?Prw2ZWW{c<XwL
      zU>t>Kq6oqp8#&}HWbxL9iFbr-O&cZ}Qi(6UPFqCZymlZ6Q;pE~f|eIa9X}@x-5#Mn
      zw&Li(+-{N0GI*kJNta+9|MW#Sk)euB%nv@u*OwCuWqdHPK&XtXXk!{Pgq$CQvCwyx
      zY*h4c23J2Ln6>YRuA3HZhP}uaCsOw@GlbdFe1h#NC8DFii(|pVPL7O&I=^I=|38&V
      z`Z-zUc$p}0zR2n`GW-G7#^yC|x3K?ml)(h=dG>%5N~~?IVPO(enx>~<*DPy;qq&r|
      z!%Djf8~<S4;QgN=($xT|@IvD0M@YM`NsIlSEZr^rf=RzeX+-$QeNms5W|jvte19dS
      Otzs?Z=}Ki(QF;W7wWCP@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/PlainSocketImpl$SocketOutputStream.class b/libjava/classpath/lib/gnu/java/net/PlainSocketImpl$SocketOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b93b302f00e496a5897b1fd720b7997500acf0f
      GIT binary patch
      literal 720
      zcwT*x+e+&|6o&uRQ)-M_+v@gw!i%b4Du_33_JyJlC@NIE@hZkaN7JMv6ZL(302Mrd
      z7e0UwC3{Ug75Aou8U9)GuWzk2d3}3+0kDEO0~vyS5+wGSd*RxFQ1+hh%Agr~=R!HH
      zwm<(acN5i4R8vL5Z5hZBs%e4@?amuQL7mEYzD}5Gbfd1b^S2D7`a_tlb+;}Y5OSO0
      zvFHJz*Fqiz6It|GFwjrP*0f=uAp^0Kw2nly?;iPrP;P{t>mRt0)aQ?2PPa!`>00qW
      zBXhrb&ktipm|It#Xe${8v4LSi<?|t&-LD%HBN#I<N|@+Y$U;R=kiU$i(#_QzJ&I8~
      z+;CE5Hp3+H#J1F}SAQfgYbwEVf<Q!@z8lAaCoBKkJL>#yS^nQtD(S~#mE&cg$nhRl
      ztH|&Nn2Spfygk9X<5LC$ycgI5x<-k$r8P_pqO57Ud3IG(9$_eDt+CRs;^IBbNBsIG
      pnYsquz@Xa>TJfDmgmFx8<cpR@COadXKb6v^F_ZFir4h`c^cR1lo~r-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/PlainSocketImpl.class b/libjava/classpath/lib/gnu/java/net/PlainSocketImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b9e3e8b8784d32ed4404e5821dfdcccdff2b01e
      GIT binary patch
      literal 3295
      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
      Y^}K-(Ay2V~-#7vv@sM5T_%Yi41J)&iv;Y7A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/URLParseError.class b/libjava/classpath/lib/gnu/java/net/URLParseError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0b903cd36e071b2e800379f0e206420af30c979
      GIT binary patch
      literal 349
      zcwTi*O-sW-5Pg%zL}RtJP!G~eZ+?KmQwuG<h@O^GTJ3#Xm$;H{V3YX2JQaHI2l%7J
      z$tsj0oq=KI&3kX=>wEJF;0~=29^oP}W&9@JWo%RtKTpL(+FU(Yo7oUPq2YF^G)e40
      zLNL@u7b8OZQf!yA!fKNYuI2>)K6_CSYB;Ln00DalZPd72EtGwdi&PO>B3sIIF0HQS
      zKhQ5;bx!Dr{Vxp&wN;)}2LDbIqFGkjrFzuv#E$T`qN5AeqYC2W-?)Z6jo@(t!S&4=
      ihacQ|h`2@$?J={DWA4s>S*YX0xdb>x!+ABG=IjThL`|ju
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/FileResource.class b/libjava/classpath/lib/gnu/java/net/loader/FileResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5bf750a841f272b034f27e7a47dc49d9ea6986c
      GIT binary patch
      literal 1259
      zcwUWDT~pIQ6g^u?V?zK73KkJ7_|deLiXeyuA7o&rn!*TJhsV$^ZJah?(p3Ek{um!{
      zMqx%~^xYrjcz2tIsIB8mviI(}=bm$S_s7q#-vBINT|tB)RkPdqH|AS2Z*wo-aLg)q
      z^IKMf@A8(@b}L*#lwrCTs*7NV9#H|qh#?`CBMAx&u{F!Kyr&FHX`^4CSG$HGqr&gi
      zdYO1PoGMo_fFTVEG=|yUJQo~#ISvw{VGuEfQNyzNcDs4V-F@>=NE|bqirFZet|ekW
      z8TIN`i^%(G>^c>eI%$Tv|8PV~YTPT@$8B%VbGg}Mm`v+|&(H=z)y?-6e(YI}-BOTb
      z7!P1O!H$CKL=m1-h(pB`Ziqq6FeK7{Pcu$h3~txFI>SI(FRGZuZ3S}-S{SS04(<x0
      z7trSvQZX50xZE`$TvMhXXfhhINHYw24y6>_@2YH=c8z>`+_lZdrt3PciX8Gn<pW7w
      z7V$$3i&!Fs;<{{@?G_zM&UYXg_Uo?mP8?Q2@0nGw%rFzkDw&NV$8GW|i3w)Mz=$?w
      z{2N6F5wQrDH2UZlC$%SU!<M}CiSPxP7e(~8$Qr#d8kV?+w2IPN!6o{}DSC;B+#kwh
      z&!A><UoiZM!U#s`J0iDMsPHjVtP%x~>cEk}7$8^UxI$!NB^pF%eH9b*pY)qulZ}?C
      zPN1}NOdVuCWB3fyCqbu}+*_9&v<}Yiz;Kg#cEm19b|5b5PjTzR$3F<3g$UvS!9ApX
      z0>^io>=5WD#yN5aXP7VLvZq*ho%=3J#dse1#1rHSC{pGHQIv>uo1E>0W|8z8#VNN!
      RlcIAV^eUc6wFN10?H57N71jU%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/FileURLLoader.class b/libjava/classpath/lib/gnu/java/net/loader/FileURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96d33fa16fd1306b331ddc2deebbcde3bea14be4
      GIT binary patch
      literal 2171
      zcwUuMTW=dx5dKc=^)~Az*QUW~3TX<|x5PArw8SMXxJ?`4I3c%^a$Vae$)=m#u)Bt|
      zyZ~*)0|<CQD5yf>iPwO@mWTw8Nc<>Z&hbS!bp*)r**RxszM1pQ%=zQbUw#E}0UIjX
      z7|w3krPP-3o{_S-pRydI$lcVmY4MfCY*y}61R2h>GHaMH1d1lD9a(8&Iuaqx5V~yI
      zra#577tJ=j$t`0Uo>%ovXODqi@?CCh-!$x^#odfi*yQOZj3)iGQScr2ZnMRaU2K&h
      zm~o0+LjYkNDo&_)j6wfr(i%F^t)i=bTyxgZgI)%8gZsjY;bb&cMYjxlBSpEG_C{KR
      zjy?f=ilHz1s6MvZ4u;2dC<rlhW=)&tO51tvE*p6P+LLt(hP7(Arr6gGgZ`%JF`R43
      zQ&Xjg@NhveYt^a}IhJ$=r64F}Nc<1}iGcMg(G0`?UJPoBl4~{EqFx8e(#U&`Rr2|Y
      zP=|@sMeaEzw?O%fwc@R1j&&cRogt<pjs#KozG2;2F#OGov%TZk-1dpP;g*<9y{ck_
      zVdyxD>!CCxkrD-dmSH^lA1cxuB(|zzjG?!FI5U5Jx4?IN)3K?}wy`aH;E_~Gw=SDb
      zYnXc~E>V4@X~{ROn(4B0huh{o?zU4WPU=WwoT1(0JBDjeNi<x<iz0oR$nz~YY1Og9
      z=c<mE@UrMGr)2vw2(cQ7#%6@}nvUyYINEK#TUDOG4TiSSQ4KSgRq+Z#*HL60S<KM`
      z!QU+zmUm=a=JQ*;;HP7^#X!x9WkF>9DosJOnbFo6>sZpUj1_^uYkGb)S&4Q_$7@0n
      zHoa@6%VndA^V>RJ#~YL=HDkuG9owWytd4qD^hmGJky~pBvCql6b$ZPeU^tyUwmfoD
      zORh`pS&gCjLX{EpGO!u?oAd(JOr#sxEHy$>n>6*=sE9;wI^C1rc1C}CVQ3AIOwSyx
      z?X>%l&cx|pJdqrU1S3iXTKo|DT0|+Mqk@w^qyGoew;@7nhs2sf7*}u_S1}-W(x3K&
      zfRxVQ2^nt?PhyBXg>)9f(svN&@DzeldYUAKET6&oS~ee$Mp#ASi3*}~$={){gF__O
      z;>ij|4{oso38&!{U5wsU`K_ilAk&zkb(Zv5(&k9JfPN~vNOPzP+(<Km=P*uTL+HZu
      zw6@WYUJF_$NE;;01(6b4CRwGEhljYhmiQ4bRB(AN{uBCh$uh1?1OpSw_n0C%Ga2fc
      zj)cm%xsR?9VNphIzj^_EZ6p$^U_Lie#^OFS`mBB<R1Xx^r}PDb#qa+5tuOd3#wCzK
      zK+3T|N*zcdkg#^pC{PZ)v~JSvO>|?6Zf{XJY$DyoC3u)bi3am7mT(U%q%)`i*6}e(
      z5AYH8a37!Gb9{=g@EN|w7m~R}Y8JYGgSm%zQ!=OHOT2}*DRMV?yh9uYDBd1n=83Zb
      Z+(3aOg<_APNFE`Il8}-pI+r=G{|)_A5#9g*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/JarURLLoader.class b/libjava/classpath/lib/gnu/java/net/loader/JarURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..403e4e967e94fc746a046d9d8ea64e91ee0decec
      GIT binary patch
      literal 5457
      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
      Kv(jxKjruRY#H!l>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/JarURLResource.class b/libjava/classpath/lib/gnu/java/net/loader/JarURLResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ceca69272c54de52eaeee9e534d2272d35f7424
      GIT binary patch
      literal 2230
      zcwUWFYgZFj6x|mBL((Z|r~<80#78p$ovM8(q1ZNt3LT{K2n}f4%j6~*SD0Z<CT;Z>
      z^e6O3^n+as!&<sl>t}zItLNSsLIMf&OXfcI+2^s(J$d`?)jt4k;;DunhRL#9H=puf
      zx#^0)ta`jCd~=ce>nqlZsCjkY78+s<7dqh%5Db074g6;eqn5(d1E)%8#gvmb8HSk4
      zcL<pb5moM%&DFqn+%nzu&pNIX%rPvdtnL9>YLhum(9NllC%0LzC=%$!`#Rznq>MYe
      zIOI3-aWI_G(T9GyO6t%sz%XPvu6S7A*%tm9->#}$JeybZ+;`+YI*bJsr^ayQghUSN
      zCNmE&D6G>HXBaGtV8Pw32b8$rI}9T!BTU}$%$5s+CUU>qVmEL+x2EAD!*CO}+`N(5
      zeXL^y6ZAc$DjFskCQgenj!U?r<0`H(Xrx8SktG>9F3>z(WD-art-)Y8*Abv&3{wnd
      zs>S}fvukcTyOF?Ml8;lJEa8@e3PW$oSV+LcO%0ziobTK!I&R@Mg-mv<&U2xx7D;m2
      zXN4a)CCBE0AXzV`jIGdVP1tqc37(lY0n8SZO6yA<cW{?sfEaS&+n7!r?_8r>W-{W8
      zj?eHp^$2lLg{dbG)Rxt!6B6YfgWh^11^7nCx5!cpZ1b83)uGmDw~Ql)?=;LaTs%>C
      z9S^WT@7v~fg~~G3txLkvKj3b$D*UVjD;MAEu&_jhEpa>WWECdc;%GCQ4>6emERz5v
      zPXdpys$qq}_}^}ItYMwZsb&n1Qm1?CDoQ6K(q#@Ca+3VWFxSrBbue`#GV&TW>1iC=
      zEVzO2U0%)kzDKDS@L2kJqIxke_do0S1)RED4$CaB*Tj*gTC4cpZ*mG9q;TX^gUvAB
      zjA@BiOP;?YiWFRPCNMCfov=<u(HrY=2sdVRiC<2jRW;=1)d(1FpL{o@8T|=Sa`b1^
      zgQOg`v`WfROW!`ai6cS3@6oPEh!}m(q^I_wr?0=nP<r|$&i<`zhn1bYze9F+$!Z2e
      z$lwDyNr!eghx341jbM~m<w|<$Q7h@Ymrlp<A)S0gXEEAcP`+pBMB<a_J&eD>r9E7x
      z)ldVUyl8swSBQJcqaLCok0cPTM_JsCnBt-RjX(Z6LU6x@Al@XP5fBk9Mg*g6p`2~t
      zi#ISEm^ln+P?gmpz9mZ7YT+Gi^3LL`i1$w_g~ZRi#$2Jv{k7zlyFJ_wKa0tS4g9c=
      z{0r+f3Wa@aElp1~@YBZhzlu8r1KUvq<HQMiib<@~zrh;aY>*fQ8nc@u)0T>8BJ>(X
      WlqMmH5X5wggejq{vaP6`oc{pw;4HBK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/RemoteResource.class b/libjava/classpath/lib/gnu/java/net/loader/RemoteResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b11c6fca789a67605cda63b03d0ae846b43c96f7
      GIT binary patch
      literal 1051
      zcwUWCO>fgc5Pcgv2}w<xCQU=3K<Nj>MqqIzB?l0oNES#b%@N5>SFVw>uAFtnoxj5Y
      zBqAgZ`~ZFwVs`DOAGnCi?wi>+Z)V@_uirm@0(b(aiW0+SAX4{(f8x7>OE-%BL!P)p
      zK8YnC@@bqVV_t>HuwKl|7z{?5L=21GoUuRjdJL7ROt?Q`XlEy3><+|nD))3+5h5-E
      zdBng56zql~lzoQxUGM6#NZHeIFVl>C5x686ilBF~e__voJz_9l#D}~N14|Yb&>$O%
      zJD&BjM>Q}sEtFAFXvIPm*A!Z{P(z(z$qNO4lTHqJ^3Feq$dslRkNs%mC!vb-q$!WW
      zDZ}<ZZg^^|_D3Hu?EIG_Brp7lZvB@x^gIEV=d57pbnPqNrT+5cm><h97Sk%W7+Q1M
      z+xZDYjRd{?0gbM$o{%y$4nyNq`s_2*_w=n^h02E3#j8G6T>6xxL!Z+?Q~6A&sa&SL
      zp**JDB*p?PTCY>|2_?<yI1j&L(Rnn(va@E+&~n=48QNdzsDuu!t0V_JrL{*gyCnCF
      za(&#OY(JC08g2p_-NHIGQ0O-9kb**L977{Dkg1UxsZ7kf*dW%ue7sFPnoCG&l$~#A
      ueVGqZ(aGn!v6T_>#`Gnyli%xnar^V7;@5@6_wk^hc=>W?udukQS@s{-KHDb%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/RemoteURLLoader.class b/libjava/classpath/lib/gnu/java/net/loader/RemoteURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b498aa4d4f989b11af17828660d61780a6d3e00
      GIT binary patch
      literal 1900
      zcwUv1Yf}?f7{~tyH(5<qpj^awZKak3h$+^h5<zMT291Cqu}(X*%W@3sY<4r7jjbQ0
      zulg0}OdDr(#<6euq93Z$|JjWxk)+t!+1+z_uD^4h=dZtCy#X+TvW`B1@rv8XJu{!1
      zIadZb$1``OpWBdCFOXXsrBXQ8p$VMtCfF7cI9~I;z_UC@V5k(zIi_35Z3e#WR`LSz
      zTefQl3j#l;OKmgMFF0ns9vR7(dibCbX;zD-yX#25U|M@J-(jO;f7!GG&wtS=k<XL`
      zw1T%Q6F7#X0UgH^IEeur{Q|~8Q3HecNFZ5}!FoHTk#y#8QYRoVY#@fXz(C1%<!Yn4
      zBmGC_jw2NX&oZ5|>Dy}FTGWC)yDo6KYo_mEC$yxc=r}FJsh;2jVwS=pF!ete3g}NG
      zSOS-h1}bo@;gdywC)o(qhOB!H-(mz;(}ziAdgL4FgdoQae2R+<X~(Q925Rjy17~nn
      zjnW3r;d}y<nAR~Rkon*&4P<eJp)*E-hv}o!>=u1brM$XCpR4OMBe2kEy^E#)FqA1P
      zQ(qXkhA+w3t4X)uxvsPV+j9lZq&uVdcaI@l$4wnK1Wt9AFfa!m(;yLWF_3Ohl5Qo~
      zBb9V!MXAplSio(%rO1j~YXnhj0%Pyo+FtI!MqbBPjH&Ie7zDKrmkBJQVBl-zcObeR
      zHP5X}Re?H|dEa^$z`JXaz!HiI?TWy5`hzOw2;%v!xvXT^3h%R&+nZ}kKUuOCf!AEK
      z%3GbV4jjhmUPr+;=d{oYMjfxWFphS0%%<tLxX{67nDnx(+Qi6viCt0Z?Abgq_HOnT
      z)pR)O<CvX{-xHiwxf<htcyekwo6=q)F`3euFn-6-uc7b=zx|<!1uER8nMI6pb}drF
      zDU1Q(=rmF^szxk8YN`<nFw`B!1zd#2{g3fU<XR*dhR!|nHBLU6{0*0;__@q?g6~ih
      znU}~tm~P_gYPN~lS&iRYbFu6nSo|4d*|%71;?8V*G(NcN#C}0c?5ARXV(2xNo-mhG
      zY?R5|-52|h#eNvfGPZFKMSL6nqr~Qz8aO+L`wVLh6If^IZ!)<u^4P*W9#ij|Q0oD{
      z<Fn1@2Yip65JE9Zpbf!9iHrs9-3b%!qt$t8t`fooYi5o1HF}uALu?S>Jd*Ub9_l;_
      Hac}(t=;H9K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/Resource.class b/libjava/classpath/lib/gnu/java/net/loader/Resource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23565e1fb3109d1098400bc2a7e14869ce568fa6
      GIT binary patch
      literal 1229
      zcwU86ZBNrs7(I7usT&<HLjiFx3%+z4Qs4bB<%<!;G?Fk~V))dR>nIs5>F$jFD@;%l
      zP5f%&k1{^@wi}axOVi$$=bZDL`}Apl|M~tCz&$)MkYOmb!=AJ6ee|4=3#Su#yF7Nb
      zc{l3CJ~yB-OsQzc3){|CYoGgqVJyKhl-={_@3vi6&FTbw8iavZXIQpJU@J`q?Rm7z
      z^T=Y{gaMNwYgd{%Fie=xF~%_I1|fgbJ81Fvt=H;shN2t!UZ?5Bfn2AXn%E1v3`^&x
      z?4OR@71~_Llnu2()vznBf_J&!iv#i5IgQry<YU&v9OlV~B=T4U9|GSKoN}$$m7OzO
      zp8(Dfs-D9FN(QbmEdI9^CKj<ol@BAy9yYjeu{{IV8Rjnv%hbyzR&ayCXn9>u$*8RE
      zzyq!6gk{{4mA}n!-~Kl?@^JF~>2jBfVU0vH<fw#h+D8`EePkyQUYVZizofpkREvjg
      zv8P&QlTJoEo8e(kG(^n31BSUiD~Oz-0Fm=AKKcAm1X0*E@Q`6<0NWZw2$j@vBar=7
      z==ac?#A+6GMwUJ*@+RAqW(Lg-T%u==RvXCB1>~zIbl1M3@P$?xOww~gG3(IqjIisZ
      z0L&(6Orr>>nN($T&ERsX=@CPstm-#hacjRYUOh(P7*~&ep!`0WTeTD1JQ}1b5=ENP
      z@scE7k^JkSbXJ;9M+r76DjoHDnr>CCNr|26jj5f6(lC=~sxgf!YAMr6nY#3Jmb^1W
      g))O-Qa#nFijcY`f<6Zh)QAZL+qwxXVkCe{izuVOn7XSbN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class b/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f64dacb3ae7609ba046abd72a51bee493af0f570
      GIT binary patch
      literal 1716
      zcwWU-T~8BH5IwiuQYb4_M4%`j2(sN4RuS<7W1>xn4;2k4ekJPd_EMIVZL-}$_yH!q
      z`tFa=#D+u@e}F&AIQQ;$p+G}?@})C(XU>^(XJ)s*|NQs`;0Ep`5n~vuxD9KY?{do(
      zzE!R9vhb`IYsI4SlF%5^DqQ7m#d=!W7PimOYgc)_9%M6QiV*=J3o;bIml={JUKjL~
      zp|34VhBmqF*Svj(skYF%?+L#1n7iew@K%BxN>A9_-VzMCVh71>xPnY3RNAc-gy$D(
      zWwBmscs3D?2G#1qZg`HrZym-czw5r^I{pKOJ)`5T{z1Um7i;fIc7s8af>L0(prapy
      z3?KiCl#{~xi;gQ+8#^W8J?Et=wQ`_Xvw3xcdyYJZ4>f<wsWVJ;(iTcjA&yab!%GZt
      zBfHT<Hy+cGK$r9;bR^L&y-6KCNJ;Oij$Y_V%rJ~}8et04n3b#s!$N!Cmfs#5yiJQ?
      z$?b499h>`NIS^s$IEOx3^4hNOJf|G2Z>l2vN3C5>8`<OA+)Z&c8HSm#u6kvt(~etN
      z&K`NB(g@O{-lA2$qdIv4LJEj;P1M7^T{xBYv?jMOA;lB!I-8<S@9k(ycf)t81oNy`
      zj8gU14W4m-i($Ae_o3(U{i351Q$ed&969a2Xrl8nTbrZ~#_0o-Kw8d{ytJI8vNT6!
      zX^P5Ho5>~#(N8Ca^K>c^CP7v=bNRW9meCF{@QuzfT%_L=S>PoxyuuK9i$N}iF#;%0
      z)?~_)RbtAMb>qsDN;Fk(Fs%0_RB4z8$e6h%E}I#xiE(qTi7RHli7E3Zre9|g>;TuA
      z$R27LCpO>>@x7x8?}_sRv2tYS4zsY8z6Sw!q|b=-8Ie9C(r1MFq?aQvK??Jj3zb@A
      zB{E@t$N1MsMnJc%%IQHuSdL*{fh2f|tSlB|$B}yqITS=Ap)p*i{|H8({{`GsT#L9B
      ca^*uIC%HZyQ4xz&EaCQ<$j_%D@2Jz=ztApuMgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/loader/URLStreamHandlerCache.class b/libjava/classpath/lib/gnu/java/net/loader/URLStreamHandlerCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a218ce9c490498b9d82dbfbfb80ad967d7353b37
      GIT binary patch
      literal 1273
      zcwUv0?N8HC6vm&sbreR04RAV8VdKSZ-KhAMg&CtRLDUKgI^zdF+;w#;DJ?0TiT{wF
      zF;R$`7(YqkA7wnZ>j+^eGg-QG?>*1?J@@qV*YB_20W9H$j0i)%>9n;i{*G&o>1(#j
      z8>Xkd+|W0D&*a;y+-caRSLH^_lp!%Bf>fJ3O>MotWg0$%@|GLE>%9+>7{>J=rR`g`
      zw#s)~Px(%TVc?GCSpHpxXf9u4kg9IOj3bI+1u_O@oMTA#=;BZ?DiRW;$UVx}hQKhU
      zAcg^kQQdOPwf1)1^j`3~P2@4%HMm{lo+Z}drsTJ*T?SR}`<~=B${P)a`J8?vIGMT9
      zxpO676DB7WOyLsgnkF@5A=Dk~QYGKJC4^TLOk;+GJ8cq{PZ9Q2ia`!v0z>v}(+to1
      zxY{ucom)<`OFm6hkulGZ{_FWLt|BiZ$1rmiSU~|QL&~5d-#nSbpymG08N=X?=lZVU
      z+G0j}v<xw$GrDrC%b5CSz4)fv_6&2y5(74Q>JTjoJu)<}QTo^zB4TJMic(AiPtPG*
      zRUuIXBnt<K7rsGxJ$QhT&q#ix%?QTnIT92oQ{rtTu#5>>DIF2cBSrriT)@S!;2Xk3
      z#Gd*S(}hn+s{2SEVj>8;_4jf4)k(lTjN(3K@E`!BIz>W&h%(3$B12<78=^jtE+(w0
      zhlsJgF6;*s`mL3UK|HrCr6uC4#V=ThU|A{^(~{t)rM)8uS?UMykgm8&J$g*kC-hb5
      sn8P|sc!pcp2wdIl@Qz%SLsudyQf7osX0b>$qNGnl!?mElO9AQnA5#P{5dZ)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/local/LocalServerSocket.class b/libjava/classpath/lib/gnu/java/net/local/LocalServerSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..546291d3b56fa6f9d9d59f8fd2d6b70c4510abd7
      GIT binary patch
      literal 3487
      zcwUuN+jA3D9R5z5cGG1oZ5p6bz{sUdQy_|{NV&F9EtD1r6w6IF$!XX&-3_~&auG$m
      z;Dr}o@WmHjd~tZt8A%;Gqi;U=M>+n^+3jYVODmI^J$p`m-}n1|x3mBJ`^TREUdIy!
      zEeyL0W;s2lFY0NNyXm5p(~Ic|@yu|0k=q$7H_u%K5r$2HRroK4_Jw=n3#B4aO*G|_
      zrow8N>~lrS;dusjl{QBV({PV5v?d3q8PwBvbG+mlmgy*XiJ?cb8CH6HD)@&XGHT_y
      zidJ-K=zyvq#;|jJ-zvJ%)d7k`LmS!|Hcl8OpDZtAxqV5`7CA#qLZ)@w5PSbH;@&bG
      zhW_T^h4MiG_9Z8(sgj2$^Ld*)&hX&0O76SFW4neO*h=JC!=zkvh~>Oxn3T}oW^jSq
      zDR8?Owl#G!F1&POkA{Az4AHzbYIEJ?;&8io3~ESWh;m;v9G8oHCdWncm8_ndFIokv
      z%s4}5fwE=>v?MDzSalitha%R<R%YV7WxKMLM6hY)aFslUtzn+p0K4&~hPUuG6=ww=
      z00#-Uc9pA&+Vz}h7wVvTZ^H`6V#nH4Dh}hQXs=@;KUYOg595S}lNbrb>otD=y251Z
      zi|9^iIE2#-1Ihn`7@Y1PukUJj4^gU!G#a%`ljmGHK$MikIy@9<n;bad{hWrgP{rGn
      zhV!C3+RJ9qFz3ZoT-2ZlH;UnmSY^?aR7V=osNszI6RSDg%~+R=1#Xq;Qh1-@ke-XW
      zSx8?topPx}4Z!nLC2s3tR)e99f|&M5bqPlba}s$gVOnm&M<ra3)=_Z<*G1-UP!IWC
      zE*)fC+b|2mvQ>R!uM~kK>Kambk(V9rw?Y(IhSZvVZDF3!SGtU4z1|D6P!e3rbI%Z8
      z>8P+M1-BTs)E<wNjbfhLD&|mBFi*r)i_xO)I2sl(OW}~eNqvE8WZ|}g65SECR2poM
      z4rNg<mig4IXu6P!sq7r}#Bc*)DhjwB#UjIo#I=<ukBZZ~8t&n~7?o0qi*oO4l<c}A
      zKPE~1Ku~;KgKVm01sTOdhL*$)!SF}}7a54ly5+dB$VbYvvvivp_jwdwFeKM3URD|>
      z9I~c4^_F;{0T)BJXkH3*)mfqbOwCwjJIBWiarbYoyWsbWu;}wi<3XR%7W&b*M847V
      z&>E+I=%YmY4YZ5UPD3ZXjgUQ~wJWuRjj3gH&n%(mIpV)c>}Gm)O2(svIgX7ufi1Mt
      zJPdmAGOdDnYaR2LQ~{{O+?N`vU|TKcDY8CI*fGhu*|YXJ#oH@L5E~O;q&oKF#31aI
      z)KF^$uU4s5d3=t7pA69|0j(0E-Bm}Mr4u2oH}xCh73>xZNgojFwhEF}KQTf97l|)J
      zX}LtcE=zw24<GpJ_5F#rz1T-+hW$v>Q~28}l@KTUC17rsCo`c$w*-lPO_q2SvgKI~
      z@@7Ni0leWO5BSKa7vsTN&$$pj8sHD%ow{sY^NY~8jKedLB^;UX^L4y}(V@t5j15)E
      zy@cJOdK=V@b3{8IDo~&AsDtdraYjl!+n`_1$OKY9d*Ua&Wimz1F4PvMM8&yHC>uR+
      zLP5oYpfXfAFDZxoq;&d8`5SGKXRWoVy%S>T3|KA)ENP#mjaV+!f**vyZ2@>1Lq7PJ
      zpG|ccS7u@~hu8k9VR+PJP;OFR3CAA<-Eq(#>*idKLu%AO&4;9-ks7@L!;>aza?~|K
      zO+HA=YBi0xzH6w4?qHu`#%CB<Mqwt#DlmSBxdb;>uHcSevI;(meL~v`KCO10chfwj
      zntxB@{xsxfAaL_plM;O1K<E!mg8tGk!Q&<+XvFnn!=S%<0X09Zqvq=uQ1f#`HQz|9
      GZ~p^ir=_<5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/local/LocalSocket.class b/libjava/classpath/lib/gnu/java/net/local/LocalSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a2707e13159bc5fcef58790a927c55c886d513e
      GIT binary patch
      literal 5583
      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
      F^*@@js?Goa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/local/LocalSocketAddress.class b/libjava/classpath/lib/gnu/java/net/local/LocalSocketAddress.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa23b4d4bc7725836819a8e126057ddc13721ec6
      GIT binary patch
      literal 1183
      zcwUWCZBNrs6n^d)>nH{0gl)dz6k%^b1;w`^L5L<M6G$M7VEE8&*R5FF*|o&q;&0%C
      zCOV8HzI-zAM;XuUn!+|dm?pRPo|or5&pGGM-*4XmEMP@Kh+(>Jy6S;;sHrA*RKu!j
      zhFTKmwpD$@ohP-L&08%AVTMEy*5zXeH#Mih5HEQFhGy2)ZO7KldXXWrted*C!Z4BT
      zcjwBKyl&OFi~$TQkf1OOWOHQ+qYRU$@f)sTY+1VLaQo@|DsMWvWy%=A@DLa-C>TV9
      zVXUN^e8YWP;r5PJF}PqPl$14F7jNGfb{aa7&XoR3IZ2S}+}ZLJj%Rb{YUJ-+&1m&#
      z+^ih%s#DDE$;9!Bf&`K>uHm|bNrqT2jDi#{F)*vUk3I-Pw4t>cqE%jlo(rUD1vfE8
      zF30L%NXRlIdy&^%-KcR}Mjo>g3SG53@Cs%++~yUixJ`-=HN)kbuNh{}Q`FxB85t~!
      z`9-6+OAOPm(!z94!F@cS25HSEH){-Y=Pf~>$!A=Q;t@kAy)U3<8RTutwX6J@E~c35
      zAJx3Tp~a^9wBXc7u@-b2q&qRAbBJDh2+;>5^2d-1zcGA*k=<jA{m2)-AohtoA<85_
      z<pIkGV}){85yKiLu#StK&qKgCS>VS;2%m`|`*l?BP1W<C5&IaxMm*!D2cvWXd>AG+
      zz)#-sNu~<Fz&>Db;3(h5<-$)e`n7TOD8L)_#O{#5GG)FzLoXH3OCgOL9v#{jzrvzV
      zFDmG@aqASZ!*Kr$!)U;8CXn}n>I&b~2{OCX%G_7X9b+MWr;Vi!<Wl@09c>hQ#aGTi
      LPX*A+Uex1%xTx$D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl$LocalInputStream.class b/libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl$LocalInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63ed23d8d3815b73f29a5cadb3b61060e29f1a0a
      GIT binary patch
      literal 1624
      zcwUWDO-~b16g_WdO6fR4`KqF*h*e9A6h!b7O)#1?G`hf$D6647aCAD;OsB?`Kg5lH
      zfQ^Y_qDI$#?A*9<;YJr~T)1+B-upV1T1a5gnfva$=iGD8oxWXv{tCc2F2$h<Ossgd
      z{2lwAo%dvzcm0y>=8OEC^GkPSSSVNAv^p2ON-dlV18JAzFa&xO$no<{7XpSu0D*LI
      zd)o5?ZQ*UFnjWLzg5x>iMS<DOPLMmP8J;IKm;EJ~fPiHojy4lIIxMuKQ$WuQ&+|=}
      zg&5idI*X1cuhq(nGPq$cx>BH9G0xk8!{;bzuwsG99Vpmj8x5QwgyYt!NI^lsymG%J
      zE1~0i)j0Mw+j_lmV`2aY<2WENw0&C(DeMv0UABX}bG1sv4??-5y4@oAoTXQ$!1g3a
      z)l$(ZJE4FeEwMmWW!R460(-eIug-&>9}ZUkF`4McFngF4=*tw97T5Mx@-(C4tti`L
      zCD*S?R(--kj@>r6lSy`uSs2AQm1GuXczk`awk)76%upD}kV~ex<g`GXN(zPH0`pAK
      zwZBZ2x+^_0ZO*R+C3)3hAA4I27-dbg@`C5d;IeC1tCBXBY~2P1sh3Xw1P$H%2>{6?
      ze<YMi(61f*b(j>*QU%v_W^+%mEBg$)vm;NDd>lc64t4#WNZt_W9eU`LqC0}17kz+=
      zxP?ZPv>kfyrJO;he%0b6MS`1VpCGx0{i_Y`HkJRNIIVh3#3^t{jllSk2(Rg_$d64(
      zt${p@p$Ivt@|4>crw;toG=^x5A#em~)$AyZ)H=o~GJ>(@3-sUYKK2Zm*Db7{o8*`c
      zIk_#krvA5NWJ8~+G<~66ecjTQ(Jc&KiFVj;ylgLKb8E;?4``3DE2mF%;m?CrZNs+|
      zZ3_5C;O_+eLDGH_;V;!{uuc-SGU#~{6Uxa>8a}P|OP}|q_R|!z=tMTB=U%O0vUN?r
      zo7_$`+)hOFOnQ0~X-F|kO|e6{fdgweGiCG{4-wN=`;3ha-Bbsx!=grALPL*;scxt0
      l=tj3x)QzLFY8Z~rQKXZ{rW%mPIIoy5&``V!RyTl)z+d9D5*`2m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.class b/libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c239d4ee28d953f1a62ab5dbbee3c1f263d7845
      GIT binary patch
      literal 1247
      zcwUW^QBTuQ6vzK(?bfYS7-NDuU<gyzZc<dji^fEVCJR#@ATx%iZgx^FE!kT2Yxq%2
      zWG2S&0sK(Lb1!pSHWT)6*K_YV=XcKe-*&(M{JaG45RWt@2s`hC*#6*ra_qp3Y(H!{
      zzFil;M`7!u8`aLv{gT`t#?g5k9Yr12In$sL@-oW{?NJXw^*Du4s$UO&LP$lYUbnQ(
      z##1lwqGyDI@-&&##F!24W<PxAW<W3uXh`W$Fl!)<If7C)8^SYhAc+)VuI>fy>-enc
      zc8;B<?-Fv7*l;?Y*!K@r(J^6niVh})<B5|kKkPC`fAOW|o=097bT!;2Ec}zRb~y0p
      zC}2gyGGYDtY6cd?Sjn~@cTf5Gx#LBm-*U}t=sf4Tfg(28Q9jud(omCEjdf_oZ9?K?
      zPXw7F$RcPQRFjDXm>d(fIY#l_fEzyw<4((c=?OLRV@+&{9$D>L5V)Ov-|2Q;7HfV&
      z2&{22h2O&jazcI}n-v$tCt{@`ZboP8fFnfQoK?BNjP(OItm*}_-}<S*tZ>s3l9We=
      z7O}u*i|peR<Z%;_mMD>6Bum84B|cMmcT1MoWs5{n>pQYN+!?ZU!J$=XRFqufDz48Z
      ztp0~qkse+{OiCQk#t4E2h$1U7j(E!>$(hw(=~q>y@b%cL_HcIy%yBSilfS|;&un6r
      zED2w`N*kHGgnNutF@yWqlnU@WFj4S1+d{F7RZ%LJJ(R~K*g~4@5ot4n5*Z053AQG{
      zZ`kHm`QljG%JNDNm2vcA=(Hoz)>Y^LJ<~@EtIBgEr1gL;h3zfLv9T>lqJaYcso^iK
      Ckkt_Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl.class b/libjava/classpath/lib/gnu/java/net/local/LocalSocketImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34b587ad0defc38873b70a4ddb266fe4a0ef2de2
      GIT binary patch
      literal 4520
      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
      aC$<o&lFxpM&*bS44RV3cX|2=q3*djIm=J9M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/core/Connection.class b/libjava/classpath/lib/gnu/java/net/protocol/core/Connection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..339a3e87fa4e73a2eb4774758ee7be570ced8de2
      GIT binary patch
      literal 3158
      zcwU`V`BPI@7(ExFf%ud~L0JmXRtZTpb!n?at%|78C@LC?UG$MW!^7}in!G4z7xyl1
      zwTlaOQ`_nC6V6C*%1qneI@3R@({o=!NFX{+Co}KecklhabI!NrpMQV<1Hfwh<V2ak
      z@|cnK52`0szoA+FMAEd(h#B`s%%tY;Gz~+GSh{IA;Si|LUpss-G<_!E9Ec`&si^^h
      zx{!S*ZRv5p+_BXDxE2tY%Nt=WB2Zg!fg6^Y<f$uWTDvqgswGnb;)sAl!V4@2Npi8s
      zAekg>Hyd?Bw>AsZctV9_0_|ZMb(&Glg>uv=n2!ZcEEHH+f{qKdsFPRf1<F0`;YtWB
      zQ7{K{ooE!Oo=MP!2Gq$*FDP)LLatgBRKg`t719lDUwWutOCFN0r9LyF#=~k-m*2Tf
      zhc%#6SzGA2Vojap>115WFVe_3N3xd~v995WmXNnoPP9+y)J=b|JAWdH`V_n@iB{$;
      zwW!=(rQjtjci|PRabmTAQi!8qE!Gh$rdd05$$pWiJxe668Zm#5mDG(`z=hYa-ig;~
      zT$m#T8_>Z#MUt9o(RP_<wrP8DRwbd03g$tfVuA*ZMB3t2O&t<gJcTW#O&<_mV2gqk
      zsF&v36m&|J&Zuc$a-vJ1F)wO=F3|bNRA8row^KFREVr4^40nNRw|?B6bK}-i?&E4a
      z#fsUEpsbkPtngBb!cK(f@tNsOY6U1R?7=?ivD>cYqJYR+mVwB2#137HM+H`t3}lJ4
      z2=pj8Bx~E1_mOfTj5nR=ovQ8v69s)T-SaFnWS-KJoodQ%khc`PjdxgybTR|IyMK_C
      zRD_<}Vx=4Eke2WALS}51VofQjyuDx?>{Sy18Q)+@T@8pT&~Tg>DgCr&w{B2w4=B(v
      z$P(A$+K^^gTdi46a`a?y;tGavK%l}dZ#%St6HEljrkLLzZA2O*6{MuWT%OunVWbtD
      z#3`1WZbY@=Zb^xFL3uQy;55#VOe)=<vZ-@ydV-}SQ2}oV%(1;l<Bz0qzg(SDa9(D`
      z!K*`+Y_*FDF2N*=xMswx0Vh6YZ_ISLEv?7Nz5<^z&zvU~qp>n;(BXFBGJ^7PRlzk}
      zrz<tV(x?7r&+ggua=rr6;&TNzC7TM%%pS_Hf2rUre9bCTqtUKx<YzR;RGoxfxQ)9`
      z++kTypN33Xdp9vEtx6CG$SV9s!MFI1kz(TrtS{mHIqR~VVPKZozm7OZHaAXaBP8Er
      zrjrpZJLjsVNAN1?0&b?ioPU)Ll*xYwuFB*efc@t9x8EFFe9J=NUk;yD{L*Mu#`jXM
      zZvxfcN!0dDV9_`hbJ@UU(>R*F<>P31WV>+lSx*3<jn7t8bEgSQ`SkE9&unK{h8F>Q
      z#o<jTA;%xj+H8t~w<UO(JA&_K?_+rH!tuz<#mWr)Pw?tE0$#^ByfblEQI?;=*6@2R
      zvDewSO4d&fS6~x1&qC{`RC&uI(MI9)X7C1=TSqZ}65IP~cT8Z{pOe_r$IZY5_KwX!
      zUQgr=3}S%E-bk!X1<0N}@_ro1g;u4tj7EcZ0tbJ_++Hz8&x?H-9M0g#UkH!crVhIG
      z<bZ1V1$1#|CnW|UNAGl48}eaoz`HnVhxHg?vT%FtZ=k9e?r9)B+&N5;UV`)$D5)w?
      z(w}pEDpw?J)2^H7yE%i%11ywDYi`OQMoAMmF(zh1Hrf@bawkGajgT?aVSuGESfH;h
      zudfXTOj}Rlf020a=_Hceu}I=1Neq+32uYlICW$gRRC6TaBq7_Z(f2pzh%sMvM+VlW
      z=6i7Y%E@F{;-U!eEIFLx>O7n70%~v(OE{(^o;&L)kJpIz?WE4<?*k&s>KV!-CvwOw
      zGm#hgnjOb7_%MUBW4@W_SBQR<t84Umo#;1Mw>JyWTk_~FdGwk*`k@j%`-E%R4Iu`+
      z#qL>lX-lq`0*`Uw(w0eF?yLP|0-v>Ja3zBq`($p|)?av6GBq6zS(XhBwn6I?+{)ly
      z?{trQ?NN1$Il9dp-65M%^0`kn58%T?cKk2sz^`nJ-)t3LyOu*a6^)z<-{S{z_3`vR
      S^_25=Ep3n53Le@xKmG>|KbW%s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/core/CoreInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/core/CoreInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca3b397efd1aeabb001ee81b506a7a76cb23aa84
      GIT binary patch
      literal 1518
      zcwUWD-%}f96g}T&A>Fu5g_0I(k%np$7VMUSRE4613JsI?K`Pbu#U(7TZL*tLHafic
      z#*BY}FV6U)FTUV|GiB)b;2+>0Wqa<IbsKqdcJh69?~ilOxp(vTKY#uOU>5Z}3<YN|
      z?7GjqZ#_5k6SosbNz{y5ZZnE~ca=vy>~xdOB=)^_9;U)Yof|}MUqB((Nn(YehJfug
      zpSfRn-`(>PZ&4!Afr6?lm~Ah9t}xJyx?!Slz8fBRyZ*YL)D9D$;p)Z|vxb^c=dd0o
      zk$6|)*gI6nSD)7Eb%_ox1!0gZGp(BS5|)coTSQomcKiZzxM<@7M%cSLwPoQFM)SC=
      zVD}f;7{H(fg;7a($HrBhBYevb_mX|_ziXo)t_zJI^dENH+kX7W+isEQa3gAZtt~GO
      z<UMto$$mhcGmZa0P7cQuze4f9S`;h-1g#!2Mbw2*)ka<jnbo?eQkb@3iK9rcot1qa
      zji4RKWM$Bs-A*Tp6Msh|JYk)r6<9ZG<1N?)%;Cd4=2@@lw!Co9ec&bgHWqM)MeQKu
      zvZ^w7sruN)c@(+HZ3W|LjS122E>BKO;au2l%f2{)f!IIrNy0pM9&~zJ-H=|Zf_qO8
      zH|QY_%M|azX4H+F{#qbfN6w7srcgtf?Q{HOO+MV3wm1rXTj^cUcR?AV4d6|-^l*WA
      zo97ViFJbTjO3o>Uo#_`SonTDvD<>HLg8>5*JckJfT<7^dp>ALV6<nj|Qm>eFCIM|-
      z$9se>Gw(*)VxBolh&V4W&R=EcIKv&(k!g)(_p(x~GG$Dq2rDT`%aQUEIB$p*bYPZB
      zZ}$<hGC~$+7~@#+0dA&nGy0tf=2;>OeMF3mh?_}y#92#hQh11*Uoq-9U-RXO`OOI`
      zN2j<ogje4m8*h+{dQXeo!4lE$_H~%->rhNP{G|5@%>CQp7YrE3+2qDw;`V~+OkXXT
      zr}*fxZe7x?OMPOl=ntaCmaAO(=lmb9aUbirh5Newe6K||q&a*-f=XLU9G9W3yR>qw
      zy^LjACbK`~-g`9fq&w9caoGOsMjo)_VV_nj)A||L*#l{lrVy!Q@{T5~AAd&P`VHp9
      wOVnyw-%;87fgQ@fpBd>E#_*WBzS3>3X<sGNRH5!QHX390GOZl#b&YWUHIbk2+W-In
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/core/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/core/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4869133e3106cb5b37a6147a0a6ad6e1b9bcca8
      GIT binary patch
      literal 588
      zcwU82!A`<J5Pb`UN<~mm6!fCe1T?YnjCvs&O&U!^Nj#Ra(KTh4EUodg^hBbGAK*tB
      zr=<bmpnI4%v-9TV&3t{oe*!qdmWdR@&Vvl?C->R4B@gU@R)O-AZ+l8}`@)qypKB8a
      zLv_NryK&lq=59Y}Gh~m26u~J&y58t87%kP~7ShP&kwKQB=m^QL!hV<QTes_ThLWQ^
      z*YCJmM0N6M1dn3Ku<QJ9smV}K11?)iO6~<hNrrme`R%dUm?@`BnzhbeJU)nup@|Yh
      zIc5rFUtUi-CRQ2t{;)Dtv`|JR+I5{_W!?oHBpqs>49_;mMO%g1<L4q;KA&uM7?H3I
      znnLtal+h6>npD|@j4-o5!opkJwkT%f&k7bP=EnrWB|-xQ6p6JQ=VULIIU(^BVeSLv
      c`-2hIUgxB0u~cPDN~EG}1J&3;E#`0j0PKW>M*si-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/file/Connection$StaticData.class b/libjava/classpath/lib/gnu/java/net/protocol/file/Connection$StaticData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd22f746a60a38ff242d829458755126d41acba8
      GIT binary patch
      literal 1010
      zcwUuLZBNrs6n^dow3PB<Q4~Zd2#g_8z_*CRFEEVBCMJVL{C3w}w@bQqY3~gCS%wc7
      zN&Er+DC4<h3=<^5CcUTkInQ~{%f0>e`^QfJ8+c_P!?0ct+ukw%%Dqr1uN6ls@}t1}
      zA_L*=L}4g=C8Kbmthkc?E?3+@AH!H05%93??N^V9!(i385_?hH<g}SCrUWHUlvkF`
      zRv>nJ-Zu=xfeb}iw0O)_6f-!*E4{LcWmqSYx$P58s<#Z;<$Q&qZzrk=1H%kcH>;Z%
      zWtc4#3af6d=9Wq&w?mKHXlyl`TS?;P-jxn=2JT$;&{i_=ijmI)VPc#iQwUAmBYT*b
      zxKBwBLwRCh43jpd@Q`6(yIa)j<?B`72FX_}*m$JnW*Bles{B<M#SDVMwb73O6Y~rs
      zdV*`o<p?b-V9CHD!;C&pKj2By;;P}5JBbp_k8#uzv63ROk;5{>P+h1l*kM@uM-BPw
      zkS<}xh5?gdv`G0sw3}5CAMk1*^cm_>D?FBZpMn;$Skrx4G)L8t3BzXbfA1UJ1gjji
      zV_)n^ooDolwWf6#?Dqu3JGy6)7<j?3c&j8@xR(Ylb(f_dBLh=UnZ8WjY8M%VMgAe$
      zeNHi8{v7s^GjfixBgb*>IumDjaE9qq%sO-5@%R+^Z)xlkT4zWJI3(2y#>r0L0FyW(
      y{1fJ|kJXf^->F_6k1QkGzjB7BS5gBhcoAY>5Qw^-`Zv;b6VJ$6Y4~%zg!KnVQ~A>X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/file/Connection.class b/libjava/classpath/lib/gnu/java/net/protocol/file/Connection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..522343b2efbb1cc2bc626d2d3f31223414bce31b
      GIT binary patch
      literal 5576
      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
      HEO<W#!H}5K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/file/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/file/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d122e0c6e63fbab9d500ca6e946889cbf47e6d19
      GIT binary patch
      literal 1057
      zcwUWCTTc^F5dKbEx^-Ov7f?avQUQ0{+Leo<7Vv>+XtIdm(gfbN<+LnW_SEgx_$T}W
      z{tA47L=zu<@JAWvY-=fPylisL%$fOi=9|lppI^QKSinmKF@|)_Z(1kLd&ly5Xw?G|
      zii+^8s_SuU)A5fy9w<mKjCU~mJN9lEaObq`W=O8Oz8kJH#0|5=kk}AMTtyt$Gz=ig
      zFl4(vf73iI^I*>@dz?YHMaA(-PT<OS+n5NC-3G&~{clPIhCxy1{)X^<UI|^{GZ=>5
      z&9Pu!d0ryvU-i|83a`sYLxIjP5+Pk-6}LMc6{EPNV2nZQj-%l=?l34d9&U<8$S`WO
      z6M2qbv#2w!Un`_A!2lKaFsa}^!*DM`!xW~ebNpS?@u=uAqbtaE`Glwz%)=DY)YNKN
      zmt<x&%wfKj`mG4UsNF^BF*KOJNxh~nNn2J!PTG=W+u>Ce40#O}9+RoTL#l+~u%~1F
      zb@W?`{{u2hlER{fK`b#$7=Ijvf+q}ff0_3sR>d+_<U&1TxY;{u+PZi%@MtTpI%uhm
      zqbceABxwzHMKh>y*)p1Pd$sZsh#Bfv9P*2iMq5m`La!x~G+7K}E|B^hxmCzX$LKB~
      zfi+wwO>2Qj-XNKvJ`53JIMRuJ6zU`0GQ~>v93xw~?=W)u_&M%=!c-=!&qyns2Xr3N
      z$(-X6iG{PTSU$*J;OSW>`D7H%rgU4-v4=GFF;CJ&33(hugr-}m+JvO`9515E7K!$1
      KROMO}as3zSR`+B8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/ActiveModeDTP.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/ActiveModeDTP.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebd0caa719cd0e26f2c56b0c44c26ea4277062a7
      GIT binary patch
      literal 3794
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/BlockInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/BlockInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce1c6bafa544bca1c00649a7f09d0690556624d1
      GIT binary patch
      literal 1694
      zcwUWDU2_vv7=BK6laO?gKnyBr1q3wNtwa<kr5}`p7J}u&Y0Zdrl<j6Ci`(7IW}_WP
      zM#dR$RrJa`@tPZFq>f(j1HAOlc<1<>(=~)vi<!we?>XoFc%J8d_xHbkdj#MFE@zPv
      zFh30XwcGZ`b}ew@S~m*g&<XuoC+^nje&~GE47&YzDUMuwEel<s^56a!mah+a3uyD#
      z76e37V0R-7da)hEE!*$A8q3cK<lAn~iM(zcM)X~?*9Fo}*bicX%(NGH@vOi^WpT%P
      zQ;X`!3u{A_r>ZRhy%DzEJTw#x7}%YIz&-<cWTf@1fe~Z`_AGjVd$qr|>PE}<s_)Wg
      zF?4LdWk;SoCzpDB%j*e@?|@~iR#T+Zj=KT}pF%(&<plzze<i}w+}q4msZz%L{JP_I
      zV~=8Haaf=@h`Ba+k@SujIErHeg*dW<UdN3Z;ab;sV^R_C=IQW?feNZjD6?PU-;Gp_
      zmVC4fjLXNg<A*(0<~wenjL|$^!|Pd`7_R#mtAR1RD4kClcmW4Sa2jW_m=GA-k-tP*
      zm0@QM<YY^P!^)MFdbKIB%*wRq1hTwoHl+sIYQICxR_YQCCqxT7JZrv75rxmu;UIl*
      z%S#MDB*~?)A35%VCtF$C+Nk3a8V<3R97`R~BaIACS)NkZ#g(uifB9q|QG1$y&J{hM
      zp|!$j8Nb)G#(%*cGxd-rm*P(<O^NG1CI@C1e1<6|QNS$r^XAZIAf97sD2wtjt+c2*
      zqlJ`~`#}XzFhZ96gK;VDtLD#m>3gJ84`>uqKOk#v;APr-^&gR=ZK{`7H&B}{^V#6x
      zjbCw!pZ*O7=r@T{M#_l$C@IvmCku0%sm$_&0f#zK0}YBZPgyP!VUzc765kaZ##J1_
      zby#?domnEox9Qp9?K?c(z<U(wCf-+^_irLkI9r&&loDMso!-WDhPL$2nU-cf+Q7_X
      zKp7=ednjpcAY=}6IG-dvw=L<Pv}F&y|0$m}I<|rOX}zRx*Rb?-5li}36>n2TpCALO
      z*yVjhm@!rCQ^ikE!#YmkQ_jd|)c6jT@i{fTOU=GO2VW|}CpQTU2zv=(X*DQKN?8|Z
      zY0P()J<F&W<fp$)jyuT!TV^sV4>9@A)Fk_iSuX5aAH6F_TYF-(52!EVD~|QoDB>HA
      h?L8dBw=nVD(1=?J&?46b)wwc-xTt^%TvFMZe*=>fH?jZ#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/BlockOutputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/BlockOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..086a3293cf24d6413da960e6f0e6bcfb00e06bcd
      GIT binary patch
      literal 1454
      zcwU8+Z&MRj6vm&+Zn7kX@<*kBrXm&y2^y=kwZvNFpQeolC6f`cmCd@r#br0MxoJyZ
      zIL`DF@UkDnPDdTb@dNmwnm%_4kTFPKBzx}ObI<cT&ppY9f8V|b@D*+t=n}|mdX4Os
      z`Ky`rY?-YEzVt2M%~oYCJMa3|vtmQm8gf+zwz+LU7nu6=fyL5Fd%8gM{?bD6{-S`G
      z7wB2=y}C3#SvK8<tu>p?7XsQ+aakkI9Fwm*o+EDvTuT*>)yNgXEyvHctL3K30{Vjg
      z#EwHlZvrQf5a=y9o_)8mU9p3bS#fQFfr4+DZrKbRwQjxC<x{6FaPb)74mWb7e<EuF
      z=l%zmd459*3?9ub5cw@|q@qaWRTJ^0-z~c)9ol8!tiZ|rWBKC2P7DHHBybL+0(~+t
      zy?WIS7X0m+YpY7)p-LD_U=W|j@g*h<j0>DPN<V=iObQsO_4#}#FD!oYgswEI0$uC8
      zx(GL?%5j#Q;9i9n)<m2mbk)EW>W5`r)7#9h?$o8tk~8>PAZ7-ExnudY9f5SJaF|uB
      zY}uB~<&St35@>#v%9?9?l(t;I&W^N{0??34;2OT8NvnP%u<T_=UEg5G<y=ywF-l@J
      zU0v)kf+$x;xa#IQ*0zpw7iwVmriW3Ur_?zkotb`(&t8T}ef*B|3C!|n4*iTq_tG$c
      zlRy}q!f6&!5v^yopwuv*BYdZGbtV+}ld(EEp8f~Pzo5S~-gU2OeJ@ID5xuk)J+oW7
      z!=3Zfn(+!34&^6E&EE=(&$EXmmRhFtElS;{$Rb64<YoWVhBkhHHjWgg2r$Av)5x^Y
      zraRDXGFDB-(ituD{uM5M-2Dor?}ZYBdx-}UF<fF{5f+~8DEv1~RyNP=_neGwyz8FT
      zhjrEXu&yWj(R|+5{l_jBk>o)3`EDt5c36)l-{7)xgNex_>?qTY2V{DPUaZsoM;OD;
      z<oJbC_!vK6BV?V~(>`FGYq6^68yeFUM&B~xp9e=<S)|xGY#p6!v@9BmhPO6XDk!{+
      s7A0N!HD(V9M>r`!mD-ymw8^_g{b!sEx6Q$!7FCSO>6U}n!y4cJ2mHhi!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/CompressedInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/CompressedInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90704cdce659c7dc90a56d84982c187eb9a4bbb6
      GIT binary patch
      literal 2403
      zcwUWETXR!Y6#jN{(zNjarERz*Ed;rkCP>5!C@lqg2}D9$+fr;n;50cc$4Sr0Bq!Q&
      z2Bwae2Zt9Ob;J<`9K_MSIMOmBGsuJYH!ly)=mVqw1N`>MX_{#(nwgWm)?Rz9{jG1U
      zwST(%)hz%!G2w?tATeQ<63=TdXbDrd6ZwK=TNx{t7`O9@E^9Jh(2GSqn=<nyd(bZE
      z+N2+fK=j|8x`+C!P78Q@`jP@7C9tB)GK;om+QV9|q<e{BKg|ONj!6*$fv&zI{R2IN
      zgFW4HXIh{pnM$X72BdbI_N-pa6pXxW73epqO$qoiR>`!vGOn$2x1i^FnMv1n!!+y;
      zf!)#ceZjV+9g|@ts$jRZ4htw<R#p$di}fmkSW`!cVHNeLky49_)n#d;iiWbZNktQC
      z1XiUDQ|~QJj_HLVZ7fGz4QVT*<%YF_A$50CvCkMqft~lkw`>L4m}k~zo*VxoGXal5
      zDuT;q$osiw87tb#;sko8GJ4)NSRy}m2sBoF`YINg<0C3N=TU)ryP%oHalIfR=5$HE
      z7!B~i<0_uOE(Vm*5Ao9r&K<+j_@s)bq|ukjSw&sOYg5r!W^b>GC|U#9hXa1u8I8-J
      zRuMy79_~`H3N?Q82!tvG^t%L90Q+%JV69`%Y34+NK@4-Evt;CmsuoOpRVtU$C$wC|
      zX`nrk0FpQ?%bg}~(ez^1Hkn2ey(;?9&nDCIdEF$3&CyirlEdyjZPH^v#UO?RYHh1*
      z6ljVrb>Z1=943_+auhw@*_x89jmWe|1^nDerDV0dW2JFc_jso?AE0iHQ}^a{mRlGE
      z#_2e9W?sly0xM-XWJAxFM9ENLnFg&=A)_Y^*^!}T`)!9ri3o3!gBZX%_)tU5PtAi`
      z>UCARv_DX#tJGIi=_~oq(#esRv*fI+-L=788{M_ZS>?z1V}!MoCW%7g2*={vZ(v=_
      zGmDV?YmRwmu|fVtzHlyjkpCgaIm!RM1l7R{_cK%{_YYz-Es=64Y{6FN!Z5bsAzmaU
      zHY1}5*>POAb5Ei6ummA)kpd6bK<qja7vS^EP-ymCf<HEg$0&!CE2yKq+p$DG#5OJ)
      zR%7}jtSC#jFQFkeLYtB$WbW;eC)?-H(H?dK?Uwdt<+M!hy7PrDBUn!MIy&q3yT|1D
      zt>Kwim{HG362kTS&Xt2!;*}vrF5LT5UjI3>kr_EJFMpf(P4nBr@3vg85pZ}Gd#+)_
      zO>~dkL~^9z&<#8-o#$|54$s`c(XSWqhi59BzwSg!v)sLGjD8k(fSeDZ1;ex)Bkv=u
      z#Bm(L2^_&m9K|V&LZg(y8Dvq!IHoXxmto*F<nRVeoJRrg&~gzruA+p`@FHfA$Cr2s
      zzvC?aAo@G>_#3a_E?yJ0L?P?Drd%brzDF@j46+qvRgW#MDtknc=UKS8H-2jl&n_fY
      z<21$jg`iArzG>>1%n3K>=#rp+k!0C~z5k<Cns+JJShhJlx62pw@k~JO2bGz4Pzn0p
      z9C}p|L8ayLy*n)n$T~Ppz+0sIZ6bM>biYTs-zVK4knW2_e2I;G1qpo2hxsbs-%rqv
      zPtnEwG>P2o#BdN+GU|0RlF~`qJdSjVl9vOr4W}t7jM(JR>7$iT{*uhkx|14@xs5oB
      z&iR&f*S&1j+NtJgIm4XX=Ealy4X5^7J_p}%9=|8JA4u_!Rg)WcAvf}o(VQZMIpbq4
      x<jgXlM(HPQp$d}4Q?r1ffquZxeByo~t-oSDeyeJLkb8G6&t=`N(jDLNe*jV6)A;}Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/CompressedOutputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/CompressedOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..894d77070cb21610d6728ff238da7957c01addef
      GIT binary patch
      literal 2753
      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
      TjJaE1qT?yk5iEXr$DaQHu~Fcr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/DTP.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/DTP.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..007d01e24c7b87851a29953d2fc59b6d4d65fe8a
      GIT binary patch
      literal 382
      zcwSvlO-sW-5Pe(IBt~tjRrKOLy|{Sx=m!*(2rVAGZR0kiq`P4=5r3Npe}F$qoCFEM
      zJ?!v4<_$C7Kc8O!u5lJ%BygFVMsC%+l17uPoF$vtQf{b{cdO?Bp1`z|OJ#DIuD3cP
      zfl01uVXB6f<h0reoG0_g&Q@4C5N-sb`;SalR9I67*cX`fwzO9SVh&6j8YEr}5{C*$
      z#<ixEQ>NZ%_hjF+fR`-hF9Km^cU7s0nZ2YX#%gUHb?B8Bp}(fv-WDxw<1+nFlng@N
      w_^O@h1Kfl5`Fwyee8vGIk88+GgoA&~A&$@<Yl66|Qyh2oq{Zx+@jt@pFQA@Tk^lez
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/DTPInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/DTPInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f3a4bcc973c20422163e4820c3dbefed7a8a426
      GIT binary patch
      literal 867
      zcwU8)+iuf95QhJW-I%0?goKus5*k_##vm-NKq{($020C~NDaNno$GGOBFAgl8^miN
      zQ6aeC0eC3HcoU+OL$I`~-G64jIe5SS`1%dNJ=}CqA$Z5>ICvMmkAhU_Aj_3ju}XrW
      z&Vr}?*Dum+toL;;qLBleux>o13ZBbEi+s*Zu#R*_*bEl}cL+_LM`<w>c~6b9L})>v
      z0ipU(rc&<`?tA}1gujZIOTTmLfMEC3k*LGMSr;{&BdmG<@U4OCaIu7Hd1|?EaE8zb
      zWh(Z@qeGGRqr-#?YlSL~l7lFh<$WsJ`mHPo{^By{6A~&iC9M3l8bZ4ey8p*eY;Rzi
      z8Ya;(VJS{j!K&qzV*S~NSY%qNv~bX6!VLUsW?9A-t~uBybQTs`Hs4|7z8dGT;2+Cb
      z+NT@1TL#-*9+kyUr^1UThw|gO@m{Jm)Y-nwrvZDEO4Gmd8Lof(1P$Lh!TFCSw#|DB
      zHt&y^@|dHZpn)DPu+p8xVFjy(-ZXj0oGxO`WM0RmX`WramrB*&I7P1;^(DuKhPpcO
      zno+CR;Hvr6;W9dGyTY2yw@pKRU@T1WKcVpjR|&t9``qgrLv|;gQ!?SY@x1X9UDCI@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/DTPOutputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/DTPOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d48d3c264757a80ecae04824221574d56a0e4af
      GIT binary patch
      literal 875
      zcwU8)T~8B16o%i!E?rwzTMJeJE5$F$V%&H~g24~eL~X>-hKt@U%M_PvcQ(7T#=m7E
      zF?zud;71wHObY?jy2(st-gC}#K6Xxi{X7Qn1S<}v2&)H4;U5N{13wYUPcx}xC}V%1
      zQvX%&<94CaLUmOpf}sPOuwYyx>A#6$C9?B&g0-(w!cu1<a)VG)S&-xdk!{Ig8Ve-|
      z)F+glMoFYL3G40uAUda2oX@|px=XOP<i4oD!c`Y#TqDf4|K(f;SK?wCC4H*9aBziC
      z?L>+APz?7()(iGxF0I~?VG!>IS)}h{(N>?LoUk^z&<h!PKC)1R#@`Df%;rM%{+Nv2
      z?wiI2ad1GG4r7_KYPGdkdHp36sfuKhJ7_WCl>B!4%rb+!xbNT|p*gWu-G7sjU0GzI
      z;NQzx<}UT{SV!9}9+$;WXo?q45BlTT@vhY}Dr}$OQ=dJwQu7{thwH5!q3T&jxc=3|
      z&hlP|&HFQ^Jm;tvsNyB&SZR&oa03lPubDh#PB(GOWS+;uIL{{EwNmmHFVHJSeaEry
      z4Ye`yI-{1b$W`;(!)-L#c84{aZ%c-{ZY)gkzM=X9%Y@719qzSj$nMB<OeQ=qo)3Qm
      DUeLS1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bca990e550e22ea1d85c3682d0e6cebb39cf3fb6
      GIT binary patch
      literal 16843
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPException.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f52293ed60589108840c710bc8ab1191082010e6
      GIT binary patch
      literal 685
      zcwUWBTT22#6#mBB>bhoX+Wn!2%2jCT+2}$f6?Q?z_tmCt!ggeLjeb@^7wDlM(2t7F
      zjv_%&GB9(#GvD{kIcGk<-ai0rV^u?hVZ(8U)~$VSTP_c*fhPmmlYQ$t7+Cf8<<Ucr
      z4+0@w4Kap-;t6S;Tud$)k{<U5()BsRX5&w{=9pMxNbCq#1iK8C@{}60!w@@^S6oLL
      z84U)*`cz5-GsrUN4iC<_@7oR)I#)IuO4zqu$7%(haGjctC~^ig<Qa<P-}h!G1(F(w
      zBf*eu2$!D^@4DP;+uc5y<{PqS_dB*HLOf2!f*av8{L|%RoHUv=722GP)TBzMYLk?D
      zOAfsruZ!^E+)vxBP>wY!KT3a3O@uvA6ror{lJ*p#Q^FBCXDZcK=x>;<R9{edQoLfA
      zSL!|D?<0c)ln9kZ3d~~xP*Ld2Xf0xC>}x3u#4FDzJWlKqDtWAIj1ggM!?3JaE8oBw
      Br9J=v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPResponse.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPResponse.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13e8a9fedaaa71176a37548382b0954004e967f5
      GIT binary patch
      literal 885
      zcwUWB%TC)s6g`tTBrz^YsT-gvl)lu&f?BLWY^Z3dQa~ilip|8Cx<<y1><M4Rf=Z2$
      zSo8z>QC06uOsK$%E<E?#(Rtjt{{83X7l19iDWkyf){n;S8Nc9eB&0h^Vi|jJ=zfzU
      zcfWUhBGOSDrJ@Xjp{{8mk9_xNa3(y-V0iIRFt7uL^0`P;?o+qexg&OE5=8zsF^61o
      zhPj;}3gj+Bqjm6**6tH=k1S0vELbp6V`$|u^R=~35Q)R_`9LH+J_z+JvB$$cPXg6v
      zmxlZvqzvym|Mm856Gc2#!!#I*t#-dk!!27VVNRiE7Rsn7^xQ%f721R^<euIOv1v0V
      z^<Qq6W4GFQ>rt8ydP8P69w(mI57eaff980vWc1(2mi}K6wwi#Dt@3rP>RKX(iFrCL
      z>ORBJ{EE}uVApu`gKz<LI!&s;M^b;nV?ygw9v1Ng&`9|+jZ{KG`_?kwka|O<I@k0y
      zCs=YeCRlMcCurVfG{^%uCgurE*Tn*Q<o;FXIaB>C&z|MkS>ElNigde*wJh1Cs#qoG
      rCzdW}QB&!uwzj5(%$nf^J?^1+<?5bzm@9snD{kHwhq>Zcn)UiGK?jd!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94df65728c6a629c646b8cb0f6f3715c0f3b0118
      GIT binary patch
      literal 969
      zcwUuL+iuf95IvJ7HE~Q6QW9FATmwzq3d3``2pK9>vH;Pv55S9Smaxd(jqEkzw~z{z
      zc;Ey0D8#HOA%cR^2k*|z?wNCDX8rB^m#+ZsV9h~=aBrlF;9dMa4wNv#IMYTaIt|{K
      zaj-djw(~p+wNfH6QmbB=>RhVPmKqmk+hii%cTgoPmvE_rO_>^zO&t^F&0CrGZWGp{
      z*@-q7cULND?h_vMPXdg7NtqI{G1w(kL;YIRL1=iWVcx|YPJ3{$Kv?Sk6V;5Q5>JZ#
      zJ&_ILy;Km|kxt@tH_oK>kAhWOB;mmclpfPduDT)>p>wPpLM>qkv(5FbH23j`M2u~!
      z+`%$oaRPceIk8n<@X$fGjul*XaEaj0uF=C4TxF(Y5+Mx!U*ps$TwKQu2R*{-j1Uhu
      z(dE&ndZY`(#M`>a62Y&EtM2@%?v~9+@U}RRg=w7Uf@jeFyRTdYH;tb>wOV%eY*qMk
      zaEjw~wnFypdBb1(1lM0bg!i$$)a2E*muUwz8luI1w*)tE25q3U7IBtiWZTU9IgVA?
      zTPjmOWQ%xj`iD60AHY4p#m~6*JN<%XrWgDhz2vv}s-*CKLXIdZSS{B+2BjREa0Nc_
      E0}ey>lmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingOutputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb6e74b36001d7db0800e98bf51df15a0f176e37
      GIT binary patch
      literal 977
      zcwUuLTTj$L6#mX$sN1dV%E~Gz-dJU~5UbA^qG=!@X~YQfUh1%n>CSB0sqt@_pd>!{
      z1N>3OGZk=SR<k^G=3M4G=R24F`1$QSfah3uP$6s$RS|rMKgNL)CKzYh=tQT%u^9(D
      z2XEfJjY6%INQ~5~7p6LwYPeUJabfmNCgPEU8ezG_OC9XU)QD`-Pna_&GVeVjY(%rC
      z+GN}dsifH=Z1=AMj4rrLve+CP5^AA-FB%{;J=8JhqKfMt9Ly7z`u~QtBB{jdVss?3
      zgZL;FgoQ{aae5eM((32Nnk|#?@(Nt1^^*&)>cSAZ(-{%!38Oe+wQt$E+n*9Kw$XA2
      zON7n^YIpC_V=KMmVG-R1R&d|JJ%T?wO%D(7kTWHh7Q*2FWlqe)#VQ^<=n>Xtgm`#@
      zF3&&J!?F|ZzAmyv@NRL{i+{6wY9kW7T{dK48t1v-F?6Q1mdoI-@#<5%Z5M#03V#l+
      zvAw}k$h!46{q-+!{f#qtpUX!rK3)5mhN#mq+N^g=a1%GM0F+V(H`zwE&wSrvTaC5b
      zW$0Hd5#KHU49os0+*92BibsFK&)dwD^4~P#g;Zq<?>FQ;MFnf+*~g%yV*{?h2Yvyl
      Cr275<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPURLConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29c476162c2f8bc17ad0db1672fd64ea90b7f985
      GIT binary patch
      literal 5875
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..685c9070ca76f987ec059d51e2dd309f292f315f
      GIT binary patch
      literal 673
      zcwU82$x6de6g{u0jmA2(+ByrxO{-`SSK_d6C>DZ>6S$1&YmKDuh4e-IC>OdaDEI+>
      zlz0<EZ3|)+cRc63ll%Gg_5olM%Q{jFrKSkY2m8@B1y`mYNF^QVnGNNeC$^}2JkXJ5
      znCn8WFRV)yaJ!YP88W-BaMeD8R<7JIqz`4C8_+P4#Sk(K6P7FZY1q2s!IgdIafZAl
      z9oxIH12^iEVOrh0ZH5)=Uq?F(<4vxPc*71obuI%Hzg?rT^tm{cLU2d9QZSUuR<HA&
      zN?-enBuV4=$>Dy~v~^4~OvOl7nzgg;Mn{oh^>2gKtMfit0|m@RXP9Hi4O*dFX<^`z
      z>;45<xs+kx@Twc#C7b;9Mg&3$#6t9GRMCAY>eQK(8RenX4u)T;NWq|(iHBPlrI`Hz
      zP#&Y4#yBPt@_ItnCJWC4)a@RsmQWcckt0+-mZ3|<B73w?Q670m;dZTqnU?{ngIKEg
      R14^W#Y90&m`-?Gt=^H~!jc@<}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/PassiveModeDTP.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/PassiveModeDTP.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..611b0e3b6d43cebc634c7d0dc5e96fb0a22f0167
      GIT binary patch
      literal 3282
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/StreamInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/StreamInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e97e4cbe4c1d8fb224eb4074feba0a6fd4d4f041
      GIT binary patch
      literal 1089
      zcwU83?QYUg7=8{ds~~e<f;yNWe(|xbPK`5R)5zu$5~9WtjPk2M(VEhdQjC}2E%?t1
      z*dG&vi9dD$UX<}U1sRIYChd97+xLAw&iVf1+cAJG+|dvcD86<E`dj0jp*yCp_dM5k
      zTdu8l{GNX3d#2H?IK6>Cf*MqT+`k9*YtN>-1?F}v$MPQtZ0D+{PL-;`FU!@Z=1cjy
      zfV$_l%_tN^VhCeSV4-R`=959UX?iuIX`2GeRkvl>b;Gmdeq2=jH&$O@;}qSQcqIX)
      z?e_%I|8Xl2vK)c<UtLq1YnxoTd_^Go_<hUl`IhVSH6#R9CNobbe<BdL7{ev33M~4b
      z;q*JEx94_yw&^pAcqJQBF)U&!ip$7oNKX@;h{v#ul_;CDF<iwpfpE)q`)1&UhbdZo
      z=_#CRl=BtYmzNU-0gaVPMfz2mgAVgG%2FxMz1!hlu}uaRHuD_11FvNsSn`w;GiSId
      zT_Hni1@ck(^4_@Dh$^hgx>hKzf5n;4gds%vjdBIH*?1pki87-$#4sPwXgG%jl1Ri;
      zV7HJ_xt<S1co~5}n-$5FDty6(j|hj32$Dmr?Ic5=C_BWJ<k3WRm3qJ~Cm$k$N8~Ld
      zfqm8w0vCx9*Vx4pYu9muT2lMwjP@?E?2i<RO7VDz+=<X!V7)p;8kt0kposM`X<>%+
      z196yZ_P0RA)Y=dm_td!hD^*<mGuCs?*T`Nc(+ec=5@|F72X{w|69?I`1Bo^nFccu2
      QNa5@}ZV^dGTY<vupH+*=3IG5A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/StreamOutputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/StreamOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc74bf96d13813f210dfdb7eae875941f4bbd3a9
      GIT binary patch
      literal 1021
      zcwU83+iuf96r7W|bz=f;l9B>#X}GlHMl7DF6fSDY%~BwgR(YULj=L#FiETM+;8*yJ
      zN+?J?^aJ=P#91eVs42zLdS}nhnK@(s{Pp7$zys8DBnZ`GFET&cpKQ|;(hNdh`i|c-
      zyD~8MWhm@^E0RGZM_7kODE+(R*}>asI${2i>$&m?VY}G8u&v&VuUy}p7O0on1Z~$p
      z5(bh;r7?$j!eZ0)#G9z!5#fQ|=?Ox%={t6>ZHKNpkBgf8;0_423yfzI)(OcY84x!9
      zGcWV}ND}hr4^Ei-9J*4CQM6PF<M|gy1k&}rfsQ;O_ovNjO>R;kTub9RZV;AaXnTXM
      z2zUK{&=X3D-Yddd8cWC+xQT*}4Z`wy{%K^9;|_<H#j_L-8>P0v-J9xWi=cDGiU*?(
      zA#vDHf}1K-x6ALI@Ob2XKMEc3!c|{$W%gUulrsvfnuK~ZUi^djtTVE>s_J^VQvHsF
      z6NU*G{5E(89x`zomlzdBG^BAkmeFwqi!7oLCuKING`ugzCWNc8!5&wXQl|V3D_^0V
      z@V>e_#QI;WY&_Frra#33c37?vTjocN6Uz*4;Wi5^qdPN3JB$@SRjwo}r$gL5o8={o
      zznT(GO@vdphvHaxYex8(u^KQpouIO|K1AtkhS%KCVw*iazl*KPqt=O4ZfvDcnbRa<
      NRAH3lYBkoo{~M}N!iWF>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/gcjlib/Connection.class b/libjava/classpath/lib/gnu/java/net/protocol/gcjlib/Connection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f035395d0e125a5c05f495b9f8c3126495190ddc
      GIT binary patch
      literal 2252
      zcwUWFTT|Os5dMz2$SC3xhmf>TVjux*2b46VX>1@Z1d6GFCJ<6+Nh8|_BPvUdETz!<
      zOW*s@m-eYYfpmgl%1ry#&h$rhx<@j$xiw)1A4~h~?)UB4UH|j%?|%TeiSH!@7zT2t
      zt8Qw~HPz&fTCgq0%2<Y)%WN8YTAj2^lV=>=G9}bAbX0(k9;T``hK8a=aE4IILl~Nw
      zQx_duH**PwdQ;1DIx?0`M@vd%r1%uv=45Uh)lJ<QXE;BYs*RtBEHlVcTNz#uNs1C$
      z7`iKnIn7wN>^#pBv;v|mlUA0?sKa>$GS11kfQu5^8I;=C3OaC!LCSGwS~rMQ`(WfG
      z^&sA02=u5jI`Ni-E{3+_7zN$9LV<KM%eNNR87>Z<j1x%)(L>xbmTP3q0Vljp@NkbB
      z*3GbA=rD1T(TqMp`sx``mIaS~1p^plXezqtqGu53<SFc%zz|g+p;7o<7k)!@g@ehn
      zz^Z}<G%~cNbd%4!`82new6v&BC}m|dV_CCx@mzjc?`-HrhDho)JBY5j&b1BE0Y|Qx
      zy2q;?14~jRGrj|X2P4Z8$b7+r>z0~as9dz*JEkCrCK>nezJ&J}t{gU&?V66B=j!5y
      zX7g-HPtS0pz-<K+n532x)%V{p+&-<)saFI_NSI={blh>m)r~B-gZO~@iL~3Ay&X0!
      zCu~?+mS^K(8TZjAK4uksh!nNHRw!^Y%P@2*jWZG?M2L9>3!;UCj^!I=#6|FXc&K0z
      zOJor`C%u{L{a=;d90ozt)_Jr;#lVKG^d?<LJWOmi%0=sWWr66DX|$4N!F4Dd*YZ@Z
      z!wC}?Sv8OthEEl|i@Oq@P{*F$O@fL?w8mA&8lH-Q(Y)PpM2^@Ug2D`^(%aKIH>k?}
      zuT^Dl7Px|S&}cQ4+mVwyTMa^|MMAF}ZaPEGc7co0`donlQrO6!xtdWtHoXg8{SuK?
      zA=FY(K!)LR&gI48q#tOB;!N9CexBB35LDlm!wd#DbIwK+96XocQtDcb3ckP{%Ibq;
      zY~w2lUy^q<cghkQY5`vhPP3;-rP*8eYa=gOuASljHf*g<?Xd7cn7G%`uZH-i9Rcwt
      zl~0;M`m84e?OOz(l%JZ>O5c8@@4_n{jqRZ=RzfIrxr8^zx&ptV`2fu;q3|Ah|BMPt
      zSHsg1uI(b?J=JxU5ZlG@3-S)&27Pu@PN0t%T&39kXs4CdjR>wIio1x>ZyJcHmkn>@
      zmd7rR5!@y=tz>@(cPJ7Qy;j3B?(zJMq6X-E5`Br$zfk{z&f$HGr(%Dj`vCEk1KeK;
      zP48hw7)nT%Ft>+~h&Vk*N_en~QQ=yPe&nMgRdiKLzgIPt6y2Z--a;GkY$v8Fu}l!p
      z31YcMJcXtXpIKQ`8|LvC9}{zi6|A06GENm>0v9delLM@+2wHpiY^Rc2_Tr6^&$t&~
      z@$u#O3~6M%iUB_nQea0YM)ns-B4jMIQNrfWI47j-!`z95o_R0YM531{{;-d&oyTm)
      z^X#Myadc5$ar*gtNii@*+NY^wW=MCE5VN>OTk$65h{uB(-6NH|9Kko#b3*sGo|f<a
      E0}GrOeE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/gcjlib/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/gcjlib/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3104480ae442a04b5d18bfb0adbc88a4f8713d4
      GIT binary patch
      literal 594
      zcwUWA!A`<J5Pb`UN<~mm6!l_a6g08%jCvs&O&U!^Nj#Ra!6jvvl-BrJdLq%p5AdUm
      z)1?9BVBEvJnVmN;Z|3vs?E}CuwoRlMc6&0i`|gu#OCH+8K!wUvzTNZszUbJOuI&0e
      zFkvuMr>y&1rxga=9VBgr?1_*fJYz`L>TL$2sk+=k8o4|&$TAciA^CMQ=<wjq?f9Ib
      z<S5Ve+ioD@I{7rhM=@g9bN*wh!B9{`E}Ke9?u9~0hFZ<}>9SG(RnC|+Yn?xPd>9ua
      z6D5YSW(s9r-Ap?sRvGsHG&9q*P(~%*cb#En-Ul5e9R)sF{@oxSEfobGzYy^O^2u&T
      zF$p`MDa0>D86A?MNtI2=2r~y`EWGNrMKP;COIW0spAZO_2n`faB-XOd$)1)uCGiwt
      e?j7Za!!g!g=A<fGsxl!ZQgOC{s&=rc`CH%OK!%F|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Authenticator.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Authenticator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..318aa3a6a72f44e0018f39d8a3160f10d687e60f
      GIT binary patch
      literal 223
      zcwT*uJqp4=6oltRP1HifQ^dx_I#`Gx2my<nU|pB|u<VBQ#lu;601qW*ZPdmohAF;z
      zZywLv9l#os1Q8)EZ6_LemBMNkt#|B{GooT{#kS*0TdtL4=MxMG^EYXvEyeNFXvKtC
      zsd?x1Ie^k!2%9wjPzC$imf2yM|M~M(&j{1PbzbRxZ8Tx=vtbnu#00_sLDWwgAr1*i
      H?-9l?xdK5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.class b/libjava/classpath/lib/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d7cf7af762786c4279630225877bd6af88706dd
      GIT binary patch
      literal 942
      zcwU`S%Wl&^6g^`*ag&-RZJ|JG=z~}4R2U?xEJ~4@08%7FC5lp2-PCcWiL2BO&IFWC
      z;5QHw8#YK(AQt%mJ_>PXVigq%3l_dJbLZZ3&OM&*Kfa9s+(*fT#<1Rw2JVsn+IJ%^
      z++GrkIEcG$M~I$V9SXjcB>wOPe>LEJQH@)}-6Rw|F<~$iRa@7O+U|DqhzG(%mSOE5
      zfPdgHm_Zx~9tj3*zsjKZ;ywebGh`ozQ79fUWJ>$h)dqu6i(5Po9R&-MC{k@{wUGnE
      zj0F=Da(B@}4ta)x7e@T~;JC??mwvO$sm6-~zuWMWP@dDIAvz(kRlNW5V1pcJb5R@X
      z_juG69VLpyXA<7$G*jk{EKO&q=dp-o6H8~T+Zpx+Ken)f8w@#LQU!5u$l#Q`-wocV
      zpOdOfbF$6B;i2?X@A8NtzY`CVfIki8n2Ud(;jV<kGFhk7mw^UDdP(oYkWQ+Vk=qu<
      z3v}A13XRr+^955*`2^FBeuCLgl+tjC;tVwaTNG;q@EB8gf;q~}joWY;R{*t>H1wx&
      z74s?hJ#_}M&Sy-IKAvJ`RrZ;}vBniC4#NV9Y4-!F9(SKrlvm6R8gBPo1RK{<gtt_q
      z(^^sd6lPnS<&pgk6Xnqd81|;Ey~l#Qly_y_{)+3)9&POdVzhq=o+o(VfPC|bq)7xV
      fl)<r%wvw<kra3jEf}6^WNvz?P63lR0q22ij`zE{#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfdd83395e2b4dfbfb5fa2e6041e4c634aeb31a8
      GIT binary patch
      literal 2748
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ecba5b060feac7dae114dd54d1ac1c3bce57ad4c
      GIT binary patch
      literal 1894
      zcwVhjSx?kZ6#mLA9fm5%B94HFq7H?jqT&W9I*1z?jTls1J41!yOgkA`TwZ+f#TU0|
      z491_}gC-6pYWxBIDC0S|Wl62^#g}`(d++(q_MQ9l*Vi8a25??RjfAdQ%hl%fMP0KD
      zM=Mus$1d1KZO(DZTGqDjnTCw0ga%<!)U8?VLVn&TI1-|kUNR&!POLpmIu+BJ9g+}R
      z)Qc`X$_2YrGAy!=&)6m1w1`&LojE!$7zMXNCek#S84t>4#aN&?o;TMqi`tm(800HH
      zY+9ysOoEmEGt~dOnGVM7nW9v)_KcB41WgL+(JUd7?wP8Egv|<Kh%?%vK=#m91qlze
      zE2#C*HU&u!ZC6kSh0zWL8?aGA{e)>5Ik%KIDwp+qQFPKS=*20$V)EI)j5>2B^=0S8
      zKXsy3$+L!&6RI?)d%|={kinEEO_E@CMV(qYjQIkwlZ!&5gt;*3t3;KPP8;ay6ifAx
      zdqf$pL|Ly_!m+)0Nvd|gLX&oYI+mWE4#`NyK?$wF>yxfooG~g%45EpbBMOd!CqXZl
      z4Qob1CS(%+^zOSEVizOqf@Y{ao&CFE0;81v(DrUFe<XpE)FnE3jTvD#V_Z&}j27nX
      z`(Bfh3|D#=$-8$Yr2ZO#%qMNPQZU9%7Prn*uAj}(MeT~v&y>;3(?zJ6XG`n}f3NlT
      zq`%WliJc~jc5Zk*8fe`_r|+mC9?++LL8IDRMT^>3MXQ>rBBiFHRkW$8SQQ;=OT3Cs
      zH6>Tk^@;3ju#?u^6brbDD6SK_LH=)|3Ad2KZFJ%ec0ork^5`b3OI{qh+YJcB`AY(E
      z1vLV34H1F3il{(bM@%5DBrXuwA`^QL(tafx?d&b4en!j3)fBxDcSQ<{XW*wGp(m8w
      z8YJHfC99$2RFGT_CHIDs+k#{_l-w6e?g)|}g_1Mq4<UDc2#_C#k~QoNA$J8MKM5rd
      ztfoCc67!p^Mx)Ev7o<O3N0-;p5BT&SWX+S2`-Z`5UvMawVab<q_)4Z>WEsO(_}t3p
      zwk0%W8jp)7ZV`iaad%?nu1$btWY@Cjr#S<j(JVfvcrUO8FX`XCqD)>>@88f5e~Tkn
      m!YJP1EZ&Q3RWGB}>CWMlUqKGzg!q?@<225Q($9)m=Y9j0MNFjt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/CookieManager.class b/libjava/classpath/lib/gnu/java/net/protocol/http/CookieManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95d3b66bf3dfaefe939bcaa78f8f80e7fc4d0cfa
      GIT binary patch
      literal 294
      zcwUW<u?oU46h&{UwpthQBcxpn&K(68D-Hz*oni^GwIn4?{Wu3dz>g9WMMNC*jhA~5
      z?_6)^3xFAh0X%|8$d;Du#Hi$k)>;{rtBM|ssp(v)W5HKUGQo9#F2U&0te6yZy)Sug
      z2nG!|&mzGjN`K;#cta41*Qg;_M(G=y8C^(`Y`>#;_XpgfGu7&xFN(@OH2zSSx~)$@
      V(1AP88uj4AnFZ+E#Ok;l;T_K0Rqg-)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Credentials.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Credentials.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..289b5015f6057f0e0f6b740fab2fd017b8a79299
      GIT binary patch
      literal 648
      zcwUWBO;5r=6r6?fAylY{-xs|oRAb{=V`5NGjhcWY9v9d^Noh&D=-<*rV&cIc;EyuC
      zT?iWCV4A$0oj3E|PWt)v{sG_wI~gPx_PfEz>GMbK1VTE)D3oD4^qroRL#GyrjtHd3
      z{Wt@I!O}XP2VLj3)fa8akR8P$3iv=Ul-!?oT}EEeJ*EDT$MI7bbr{lTUf{`dhJ(ty
      za-OL+8H`%k5jiAbn#f|AAz7(5m%vaokwRLb6%!exiE+I^+>8b-5jA+r*Y642+;8&8
      zQ}-!p$etH7RNVi?rUdz}koU8Y<w|u?OeMOTCC$~tQPdXKp4w>r8h5O$*rR7B=@%sE
      zqZArt^qHhi7AjVbZV$vOUD19+-aZ_oU>}WPy=X&;Y6%9_3#v6TU7~<1tP-<3v7wAL
      yKqIw=X`~h<2(M#fy2hbX^-}gL3eU6Q6N9S<niIivAj9TDv-Q{9SZLnTs_k!pIDRYu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b30005ce21abfe18355c7ed8678d8b38ae82b956
      GIT binary patch
      literal 1482
      zcwUuL-ERz06#pHa-RZ7rt*TPAzKZ>z<GZxJOW7J9VO4mW?%vceJF}U&>nmwIh!Dbq
      zG!dkavM&-ERpJ5R%^%>;!MU@ghzHGN=G^-`=iGaK=ltf&w|DOWY{F3;a|qi;ysCN8
      zzHFPGkY*+DrC;=2^MaHW^GKm^vfuYSQIwAFb)EEmx9gO!D<aUL5mHf_YkMQ+iQ$VJ
      zq$5sfnL$rgJ<lF?1tBgkIAPZ&!bWR$_w{k^F2{4^9>SLNY?CuX1g+mMi3A8u26Qwg
      z(SUgd5=apm(kft{<#^(FwLC0>LcQ7+%P-pQkR3Q`KMiV%0-<M?HB2{*c{Bu7FNsBH
      z*RlAI=AFJ4N>Mhj1WO6?i`5_yo-8<Jam;aDbtl(3m_P@X>*yqO&#nLiE3lH#T>J$q
      zl+b2HXH=!*n%sd)qGUOt>`P)b*68RWwEoL)U@g`W8b^d2aDq^BSUO|<ErdQD8A9g2
      z3r!%6oPqV&KrkdTx9m`!2}OxO5p&bPMzDOEW>^#o7JKta_HHq-Rn5}~MA^SAPPioz
      zN;T;1270iAXLrSRxKu4Ym>E(8dkyqq7XzVlT}1uOt6TOM*o#(HTre&2{e;dLZh23N
      zAgETPC>^?56ctqkVeW4O<AREW-2Y32Wznc=t0yN<`_-T*1{|fg1%F0%tMiy*o`Im>
      zwZl-bGPL?E<8_hoq?ruAF;FU{)XqQp9DWl>GCG%6TY0aLWH$F2M)nPwC!(17{Ec%A
      z=qg%xZKyS8EkG+<!a}6#C(sDA=-j8-Nf_s>Pc;m@McaP0o5Zpyton#_uhy<jB3sA0
      zZ`mtEPpmDL7#l~E!ltmfhLl>h#ip>W2JP&x^qu41U#ZQ{+<*ALa&oV(5PFT>?fQqG
      z%iQN0;<?WsCb$9nkcY+J^Kjs@)iKHs*pA^5+edgD**f)MEM{t>(CH?UbPLUNhkwS~
      z=%Bk;MfZ?pn`674tx5N>ogQExJ%mMLIL0~W=^0$Ap-j&)N-uDOUg9=Q;4a&TeC`u^
      z6}2_X&EwWhx3!t&b^sf=h7Oi@KMu0jL?;e07GrcEs_!t4ux*K=(#)!n2ho8+;0L+1
      BZl(YL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ca44acf866f9c13cbfdcdb76680e8363a5bbe51
      GIT binary patch
      literal 3489
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fd6262a33260ac55e2a1969bacd94ec252d6968
      GIT binary patch
      literal 10087
      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
      E03vN$F8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPDateFormat.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPDateFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20079d60fb98b0ee1358c7bc7592ec4727b7b996
      GIT binary patch
      literal 6629
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPURLConnection$1.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPURLConnection$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e0631d513d0d5bc23cdb9a4ed29b7a3da136ce2
      GIT binary patch
      literal 976
      zcwUuLO>fgc5Ph33H?B!cfbvzKfPpkrb#g96LJ^2a1}YjVaojko#Feuf*_-|#E?hyP
      zLgK&=;EKf0LCkI=K#CMKhh5Lk%zJNUXZ_>%x9<Qtc;ukKusf2o@R*<QPzoJRGo@9m
      z(r~QxG<@0bAG~`Tb(NGN)`^lq$3cm~xA`fTqwvk(m_iOJ49z7>&t`foq)uY4RmM=!
      z<0KE-q#mszzsFEL;b{<OVwjWQGH{o2j3Q5Sf>oX*GSN>N-Y*3$DxOzj`-q{`RYOq)
      zL*0XeHDg`$P=)KFh)W*UahajmG^zC{k>d4iG7wpx4^qL<h*ZqeBc3JZJa?ANJu$Rb
      zsyXOT!?lsn|JBE^-;DlE?NDcl9PRbC&)XhDITJjcm^v3|7}mJfVlvgF!+H$vp_*l}
      zc#)VMHWmupH4F@1j~rPy<#{d$Sbr|#ROLkYO6ai~ItUncR%zVBLvzDUeC9!$22i9`
      zM#1;ZL;$~G=0VTDKx-WyMK6%GPv;_i>#fJ9sI_)Z;kUk`@!2L`q209r>I^@zL6!kh
      zI<DfH^<T%0IaM^Ls%@4(z-@hj|B-%~Pk)&z7WvDvY@KD!S&VfPn>Jp<E!?(DcPw%X
      ScWo8SMu7(I(O$xRJop3NNBH;v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPURLConnection.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPURLConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76f4e90ccff21d4d8e2c4afdc5f02dfa1d38353f
      GIT binary patch
      literal 12123
      zcwVhp349dg*?*pyO?I=H+yvMpz;X!5CLusEXgD-PkZ3r=A!u8d?2s&McEj!lh*zui
      zuGMNS3L>Jl4JuSnvH?@^XbaY=)gHDUReRW0Z9Q6R{p$7opPAVsn~?DRejogjnR(ym
      zeeUzk)1N<bl!&G)lkB80Rka2?Yc_hfcx!@sw5B5*iiTQ3ftt2xw4-Lx%9YDjt!Qcp
      z1%rA^)E^4k$;RXs=xqjgBoe4u1jtAlR3=k-8k9Hai?n$+=?$Uwj({H3eNFyIR1fN5
      zCTC0HC{tzAFbpN>%x22L{<f|~p-437ZP%F!n~akIZ?LtdIU4o{TLF}104)oJqfFe$
      zl;LgFgLu!{r0X5^0sj^p<aJE;u)eudk6>rgP)w{ap@2BoI<QFh`t)#Qm~$2s&ShKY
      zn*G5|Oyf+R{h^xqT~WP09QJlC?TmJGMj?RiZ3ldb1;1F2wuOAndUV0Ij)1?#9}RRd
      zIl_9RBNU84h*O4U+XMqXEq=sgpg6%mV=$F$mL3j=!X`{^Tik#PwiwEr(lnfb4M3pD
      zoZ}Drqw|;w%9|3r!C_`stcL9uY-`aw#F`O1O<*cYu(C9<!(?j+`E)0#bc#k}X<Qb8
      zzDC)k*{OnQ!thFWQaM%1*(xTrykfOrn5t1B6**{{NC()d314#344P@DFENc3)GYyT
      zB+}uHw$(Iu!Dri-g+m>BIO^9U8l6hDuxG0twH9HJ$>jr`uwvknlTM>LJDtvypT4Kj
      zY?=eb1@vHRw9VkS(LwY2@hR@?q%�o$8_5B#OphRBzS88a2>a@Qw~|IHEU-#fk^x
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22e8d09793c3f054d325897e60700d1ad73cb3ca
      GIT binary patch
      literal 677
      zcwU82%TB^T6g@*LRYXJ-6kmzP1wI?&(#OU}G-;FwlDMp8gqkwb)T!~KT<D5K6F<O@
      zGTxR(g@tx;pXZ!8y&s>i?*O*3XduO~+!CRAXFu4c;L7v^siY%4v#peGp4y`6@xXx2
      zQ2xeTU0O92aJ!SN8Pa>MaMb~WR#|N@=!de&Gte-S#SqdA<CZJ<dDyw(LEXObI77jb
      zj_oz<z>WH3sH?Vn&#+?sZ)uky*W&7k-`b(4sxnaV<7YIMJ{N~l2<|9X3WiF>`fYu8
      zwXgj_l4R!i(cym7+#8r;n2eFGG|w)+HwH=!8-F>h*Q<TP85A)SU82k|F=&R)rG<e<
      zzWWzsrY6I{;U{i%nr!mlTM-CLAQqxeql!*U(V)(x%qS17bus)xMG6^;>3Fz<QHt3f
      zfbtk+9XX6A<jsVv<*QEv)V*I+Euk{xF+r$8EJL@7MfPc*qCE13;`MqL)6WA^$FWqY
      R2TG)(Y8G?x`|~k=;R}v1k8J<|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6c26f3ebe43afe7ce76d956db442e690e1bef59
      GIT binary patch
      literal 571
      zcwUuJ%TB^T6g>llVl9IBek_PF5ztt5t8qg#nh;$;sxF5zfs!&M?Ues=K}=lu0e+P6
      zP9ZUdg>feLeebz*GM``X9{|p=Zz98R)|ZJh<P+{lp`39Ps?ZAqXQ0&Bxf8r6qWExT
      zZvrtAQkgIq%IQSFW#4)14uz)}49Q1=q0;&(wN>QH{v|_h!h?j0`72-g>YCxGw%E3q
      zsk;Q*412;t7PgH7iVWFW-CY7h$wm%&?XB7{k*7?{m*OEAbw$+S-5`BT=<&eik+0)<
      z(oh3GX1HkmmpKu!+F=rT;?~zd_Ppy<gHU)crHGmVk7E&=*kw5Qdjmu9*A7&PP?r8D
      zLqhzZkC|FVQh+9Gk@rF!y06rD!*b(zij~I66y?`+v_iT9gLH?qOG8gs!86t<Q=N@r
      e9UCclDP6--PcO>Q-AqxouuayY8p96uQ1}M<Y=WZz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97bf2ad61a76698bcdbd33e70ce4397f605901aa
      GIT binary patch
      literal 5178
      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
      T?-JSf2HphpbQR&>TL}ISwt$MR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..630f16a4c9c43882b9d2988c454cff4d31e4e143
      GIT binary patch
      literal 2288
      zcwUuNU2_vv7=AX{CQZ70v?Zl&TKeG!%?28vfFdE#7TPApg2L1RW^lIYHeE=vb-Q)Y
      z3r8K9@ngm-Zt4dzI!<LQ7ie1?)an(E=#}0$>Thv;&dC}ADU5ced){;2bKduPp7%W`
      zcmBS$24FXy3&N*hAYYnKoHt%F5+&13%sRGf=j=ja#&u^CS*vKd=2X@!<=vTdX?ET{
      z={lxS3_?}VEDu?BqROE_bIhV)m8?>prxYj|1r3fl=Q>u-Ew7wW5YE}9l9_WYn+x&m
      zLlBIeI(1^WviYC_ziCe^@L4<<$*zNdTY^*eaKWB4nR&)2O%+UU=I@J5F!!;GIdfJ-
      zn+u}3n#S>pM}azQPnjVoXwlGsdSSI{*jTpOHE7rnh94aoI<Z+nT~4GBzAg<Rgv02;
      zBSG{ki2Y}B8Xgs)f{s}*4S{!4)+(9f^TkQiIb}>1xYCrhb4Fppa4a$R7FBn~np3dv
      zVKP3bkW?#>WVPIsf|0&;^~{|4AN4sCn-H?>&=A9BAxFQ4Is}BZOG6O#LF`e`D}xn`
      zQa+I`6wJI)7<BUUMYH5qDiCIW?g;bPJ`J0MEP<kNQTC5NC+kCOQ?jIKk?^2~Cvkwy
      z<?uhvdi0$g5*`IdglCYlawVOP(HEGUpPn|k(RX%8oIS!NdwP1#bZHc%LX1Cm!J6gJ
      zmx*P>ri_MBj4?QKhlt)P2=RqyTtil-HrQJy?Rh6>j##2DoevVdU(iQ4!TEU)1Mmrn
      zX!(Rda%2a|vB8_O+vK=W&g*GW6Mh>xQyHfTTWFo<io&r^S62|xm$7vL8#uJBBD#n$
      zt!=C5)|C~siO;qhGUj9aZewO(kT`~z>nK_<#=g#=7f)k5={-)bR*ubiAH-h_dJTfx
      zv_+(peiLy$E)sRGV5c4-poHF5$E12Bu!5}-bpg@t(B%)&@C|mKzKMbFIeQ;L9^88u
      z*B)jCUSQNbHJKrQi+RqY9T%uyk$Y^!F^d7bhy!qN2(HAMl6s~pSW{9#MOyo%;=&SY
      ztI~Rcde=!yC>-GBWjEEZTjm~dGD9UJ3#jug(MT*nFKhf%(ii=hf}dW-&ag?^A+GNv
      zsi+{eh%Ntai~6pXiAI<1WBM{Ny+Wq1vbwLK6|b`jZ;-{C*o8|(`8E#Y9oFYv*5^IR
      zv|IL2#$(!wE+naf!hH>%rI1UihRY$^f=ft``{Qe?ID8jMKnitPhHoivst6fkgACIz
      z1RAUf`WFQfGM>9npytj?Qi>~(lDw4?O2j)lS8;T|>WiqJ9OcbD5%mf>q>2&sQnik9
      zQ$)RAG&=ABk$uFrxI#g$Vh28<?^BlgGvZyuI6lYoxQ4U%LbBRhMp<EX&SNF4W0b}x
      ztr1#$$`~mr<?0bHKn>?>9_LYybLe`RMq`&pxn7J%1mmt%q=(AhcFC`&hF#C~3OQZA
      z0bi2bS0u-)gjL?tuL=4V`tdCb@EuFAM!-K*b;4+c)F|(+DCKr~lC=CJkX@&%9j_B~
      zkAQ!v+^5eZz2ZghEnc#!Yun{LyG@Kg65~&de1~tw&qVM`Rr}~3rbco&E_<>^{A$)9
      v$$IZsQyGbRL%d^K?|l(kq}abQ<8QpFzw=iA!6<)Ly--bFHU%f-sb~KI)2^h&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67e49234e99bf09fc136adcaf0304ce70778fab8
      GIT binary patch
      literal 15584
      zcwU`)34B!5_5V5d&1Bxpyewpxz#vQ5giI0w0zn3eK-hv|kyXHjAsNVMG7}~f1g+Ku
      zm!j3WR0XX-wT)HkQe^<K?&4alYiqUIR(@*Tf7QDDYUTeu_st}e5Q6^ehrIjlyZ79C
      z&;6e7`QAHy=DYhJB%(3u1{W!&A!}o;6{m;Shbv-{WJPl#o{ZPU8!H-;$>xfMk#((+
      zmZXauOa;14V>q_9V*cvWBXvn8PhC6~Ln#`MF_qT#U}*N@#S5z28&6`&X^JEp;`L00
      zwH<aBB@@xuT6}dhhm#FVc?o;`*^zL4B+<e&tj96zR_NX<-EUgFe&e!4G#N=Sjq0iE
      z!mjOMq$m+-X^zKQBDUSx;aGj6o<zPq<JM%fv0`qx8BKG;t;vQ+EE%l}C*v3^*wa{3
      zv)iJxr#{+(<<>Ps;0<2E<c!5*brB}DavJ<}Tr?I<RxvFc`2+lWs80{ADOn0XSI6rk
      z9x|w(MMZQJlQFVnshgMvSmdM}DGjp7MW&PnTjVCwMMHbWOnMtUG=%y|x1%lckk>^c
      zu`eBtn;mXxfb%>w!fsV+Q6A-sbEC1yyw;}Gk;LNg>c)rwBwiP8TpCV9<vm^LNH#=|
      zgopH|%Kog4B&)NaT0XMm2RM_-jsA1fc<qh8-5}P5CJQuZWw7+nOBU9+XaZB8t{tYe
      zMjPQI4^5;=E($S~eDCR4bR3NZE-(trd#H-0xajy!;c1Uy(NqF}T<gP)t&#a_un{A(
      zCT@rDq;A&Yp-P%AaG1g5AK4vlq{S?YW>XF35pHgd#OlST-84O<D!p($$O#tJ%2Lc^
      z-2RAIz^dAV{pcg?QhT_&+k16c<YA{VNzl2_qD8a-<D>ghaS~t^3pe3mp{6F*ZnIl2
      z)QE|bELu*8Bd^^dZAB0;J)DeW`VTw&oOCQmTRo#wEIO4|+T%-Q+Mc_mV|^pKvDN(^
      z4WZQ*)zK;hb#p7o+PU7gme<mbPvJX!7`bv<$x;^qyW@NC_q2`4$kaq4yzvmS^w3&5
      zT@bUzgGg?)sEH6{y*rPS;o&ho^4Ot7EHvfK;&UO3brxBa%hXp7(G5#8&FaoiJr3NB
      z84T{FRyxx~>#?hySYKSbf$7+8VyfpTOIIN<8!~e}=7&!V@s71m?VNVXdvtB*ykpb+
      zxfT^rFN8oQ2MNG>jJnKpByr8yP#0+yPHJ({g-kx(B^s}&ncx0J2D!+hLh`xj5~hCb
      zRu`nLwzo9tC-|P;=;Cl=0_)va+>skSbTLgA!o1v~p9*aVS1bhqps$y%q^n%?Gp4d1
      zf-Q@#rfc9yJ3A!doZ3iit#CNfV2w#X2ffYM(2VU8Twia|d|F`A7R2Y6(WA?ueUi~w
      zYeXpcMvHEuU!XaL2sgHLp^OX)R+zL6@s}Q}+#bwBJLnb{{W6msbq{b!WUWlFmTnbe
      zHQiDe)2}T$jaG?QZnNk&bUX4V7Bjy!iHJwDNVo|>l1W(Dnd~o<q}xu5eoJ>^MbVZe
      zEwGAh*|1TsACtWsdL(Gl?|{|n`Sa$@s9r2%-e=Kx8Y={zk{qy`ssG68!!x}}dm&|V
      zJtpk~&Xz1HpSq~JM(3^HTl643Wb?0(3*1)J9aFBH=AlREF&8}wQt56b7ClbLZ_YDi
      zSB3cYTl6G71<SI_c5D=l%x2u0bp0eRJwwmA=vl~&L%&+|2YOzTLS#d-YvNDusf+%|
      zH2TO{YMA|;(HLpM*1PEiddZ^2WSaB}yb~&xn%69<CsSthXNz8!T>(Y3%){V<?>8)Z
      zQxuvLvNWP=-ja2{o#yWv@zLL<<{#*XnwlC(0*}xEi~dLVThrLu(ja^Oo<;A|KLJFY
      zw6c)WCkrWAA2iZFwCE%H7(kJ@%#Z-naU;9!@%<>oL!Z+By67{eq2HsqMgNj$b?Imo
      z)ynjRMgOKRF{v#5jY*XpA;qMJuPIp}VENjjZ$#_lBqB}m^%3#Ve=Pb|`>d`pE~|8{
      zw|NGLO0+M1`1cwFd84i~w{VT##AE_-W`>i=NK<nX(C-z|OasJMr-?=AMAso6<C4LP
      zx{qT}VVX9VB%*+8BNQ}-L9ustkcYKMWAX@Dr(4*{v2Athnl+NMjK)Yz929Sj!Io;N
      z!-yEw-vNh?BrwUvey~KR;Y8+VA;!bKxep`+_Z7nG9#c!DQ9p~1(xOptC`L>k0M9Il
      zL=we%x9W@Q+O@LDgD^+Y&lMmX9&GUt#_7e=k_;!3Ez6>^9o>q%71DgT#YYR`avIY_
      zUBx3UF5w`m>Kej{saUuJ)LboJ$}BGDQKHpaSGT0qY|+S??umN`kG6P>2uHIyoM?d~
      zkYR@KSc}Jr1Dv`N0Ov}JC-AY@$XGlXU9++4NpwWdXTr2V79L;@Sv-l4gLmuTxnv{*
      zP|1dw_+RwB%+=I%yFDuo#~q(?m251IC?~=nH9t(2Wd=PAB7nSTtP|>D*>Pbs${}%J
      zZBNKUGpELb#DyGWtfuhk@x;<h#9K|#Sk|kf4%`DqXo|G7gx8{!-}#yV<2hDqS#2Q3
      zO`Zq1Es7+|tK;!AqM{XefyE~Z3JYwlP_q{1Bh_Jh!xve+SjZ^f7Ke+3>!c%OC@-~m
      z8J`5hV8A1v<}wLNZWMY-P~GZFFE8hlEj~r2Vz#s&k6aCzH9A2DiH**K>HnGZt;z76
      zr{kRJrir}9;+f1+YOr_~v&pA}=oTl!u@;a>`HUEx2?Utj2(QhaF?G6&;o`A9%(gb#
      zgq&V)b7?33XyRsp**d0~-Sfws6+ht2zoKNR$yleWuAwz{Mx@@wt<cv!^slztb(&I=
      z&y*=`IBc5yKFHTcIX=tcv-wB%$*?vaTbtgHZpmwo$>#!I8JXGP<?}=l)k~gCZZ!D<
      z_<ZeI(PkHKVj9qqC{R@~Yemh1PD{Cv`<M&?@2ZciX#{<^7;1fR=T0>-{VCC@<E7H^
      zas=U$SW9bjb3B3FEABeAP%+MUP2r8R!|NmVnUv?qSn+B*|K=srkg3+qJ927udS#;G
      zmn~aXo^{5Fh`PAm<m({qw5sj$v5If7cnfdEIMG;rWP{w02%FcKd=v0JE!+~VlU6r_
      z*y&b@&FvQNVCeLGP0wO&K{yd^0!o5MIN)Ra=13wLjkHWM`Bt6&!;NsxulY6?w`Ejq
      zm!=l~Ms6qMY9U>@(aU%6Z(Y2TY2^1k=vjOx-(_pP>O@3uzCNH#?q<q0J<7JM?vp%x
      z58vxzoD7csemyL{PqMZwW=TsVA=fNoBW3aKO#OmzOUs$@M7@Xi@;(>ej{{{V+ta2l
      zno&8<;s^NmqKslT5$A~bT{+EU93;3{HtZ3Jxkp9KuAJ7*wjiz_2Y|#$@kI2ju&opJ
      z!_xHVT4*SfdYk+-Saw~!*<>6H+~LNxXqjwif;8kmSp2-OVqP?cL@KIip4`@&jB|i7
      zclvk_zr?S&_+_S}^w=$tx>j`FSTWa581^6*zsj#=u8oj=^nLG`!=tEsE7*pY=nWb1
      zb&LNZN1&Y6=6XRls@}BtulyFO>UCQIxAxQDKmtwm<I7uMNl^U{i{FuUxoaaaQHT+}
      z9{KV=7Qf5yVV24G?8t^i?V<(_KXjrd|5M~FyjmWOC0*n<`6G-e6=LfXi$4`K%hi}3
      zpjw2Z$^Q%U#jR;XOdewL=h#L({taWrI!dJSD|yqm;_~(l7F7&)Nclg~Ka+tc4{`B-
      z0m;rTn-^cyTGuc&vx)7h6gvwQ*C^snF56q6mvdU`8X|H5nA4n&?4s_YSd=fojRrkR
      zrtFZx5@el%a^%U?r**uzSD$91xjy|%LOU+;&E7pN?9Ggyv~0A41)#%bg1>vj38q^;
      zzji*fh|v%pBl0!<6GIMOvA2@hXXvz`TO6Z59HT#|7?gdUJ&TM~kh6b3uowPNmFj0H
      zt;ih!0z#xx4Y1TeHORiU%p7`zSw)7b!Il~#KybCj*0sh3s=uZ)rL#U`8)rmh3OHmi
      z1rB?qpeg%A=?$>R!2=3>qAC-JVT>JW6o4!DCPqVKgBxRxv8XrsJ!-5P?^5GBUzKlc
      z!2!%tm1+W%37nU}el3nRMdn5uwRki}mdx>}iE5Hdh2V&eo|1(vs#V8H7M|1XZvu`a
      z40+V?YN|_3$=r|WCe=7TgzMxAN=;MM*v~cb1okQ_*R*nIkRyef0U}c~_4&S9q^@(d
      zeMzELq6eQYYd*nJwQ6qW3QL6I+;9y0jssd*&-ZwpTFX_Cns2EE87`h3Z%NJ*j>a?=
      zT56G`NpEAg1#G2LrKy(4rBJ*{2+&l^ggxU;;b_cM%du|xA;eTGQM*V088Ou<Xg)W*
      zp?vCEIOH@HcBxgJu3W0ah{O6Y($%YKb=TXP%*RR6wcb(@1$g8GU9wR%vCLLEunkM4
      zNrR=L3QE%m*Vm^Vs_Ppq)udwf6@qld3_6XY@8M0=j21ICG)F-zE|oa)Z!^+uW<1dp
      zPI}Zj#Dr>9XS&q-Oj;LYS9G+&8IM-F6ktC1h}+{)8`Rl?0w}-O_qzE1|EpQi)d?j_
      zz3N<bo=g3>XQ|N%MV2~WU0{d3U9S%*N9>KkTnZAjZ-=)Qh``DsYRJ7#*zWQ7)y~Kk
      z32(zxQlZAEoC|HX*Wg5ph`rm0qppsS6qZcNeaHGR4k^z1NMkaLw>o*tzFuj^sQjSY
      zzS->wqzee-CZ#UzqoGG$j2K-MZ%x!iW=7@LPb+<uJxY4fV8Vom$PJcrQVvSJ<tJPH
      zbf=#l^5W@`pH1{LkMi}ifO_Gn<bs|^xAfz00AGrz5A62E+h$mI;28|=ra-WC7xfR8
      z?V^Ff@?BIM+($!}@1|k9XgG=^P%PO+!F#mLGW;EgnGm(2{|3xuBgQ=oBb|-<A5jUN
      zL*-)Ewoap{LeC+nSHZd@>rlERD=|<zn#QE(Re`6pat80C{&%+zX?MLyo3`u*Y12%{
      z(AaJ|5A53cif%iP>$Y=o*Ur~>+j)F@=b3sLME&<s<#L&NijLhwlXp|KSWD5&6wT>s
      zb9<J}{_QsB(!6daG`wr)+q#|5d|Ht1JQ=OU$8PCdnxYfC8n{OrD6$*1Z<AZ@ul2Y~
      zXz5{0E!)|})cr>=wSrb2#?;AOXZ6?-Or1un(xz(RaS0HQHdU6Qa0fs=y8j>0?|E&n
      z*lyWw&y%(%rFsoUrU<P`Tb=>vO8;Ddf9>+p-4spH8C{LP2H*cFYqGiR#&ao-c$3LC
      zQ7mn;D!uL;iL~afw%*1L{w>Q^PP?rf9ou3nK`m)p^V18@#lnN7WqT=U(6X*3KS0M1
      zv(}zHz0BHk5xQsTwV#c^?Pj9qbhY{gCi?HgOjJlmCi-JK58uuwAtI&=#Hw*G%AhFz
      z7*pP~g>v`N#mfsX-A$VxvP0#vT2*CKI*dxEQJI6P=KVBI9((BurmA4!wJEwT<O;a<
      zlP};Zydgzfw~*UWnbQU*6y7{w4{cA;uVBEo))sO}(1lF<^^PqxsPL|UiC$aDUwDsj
      zgD$&+DY`dgrXzNs9j*lk)?LzgrY-@aGYj|F@f&gnTmg6C{V94NMGp(?QuIW~(?(MR
      zp1p+A<-_zs$SdXo-uvi9+g{<z=q&HA9@did{u9&IgZr?!Jz4hQhB^M6tu&)o0X<-b
      zJVvEud*v_4mMBQazbdNq`n@+(E=+n1zc)pH^ILxJs!IG(x02g$4cKw;m4GWn?*wg!
      zyqlsA<|1G|sr2|gz4)r_GyosY*-u5mGQV?^lT-Bh78>QKbhOb(zo(#nI}P^dY&rOt
      zELryAt8Ay|pq<~b^}7q(C|^4sBm7^$^-$T}*#49GO@137utD@LO#}##n%SUUY*K(d
      zbQF7OAX_w;b7>goQ7ISDc<x1$xsYnPH!bA8urioV<6+dmBPhlrX#<zg1snu8%II1i
      zMGtWWJ<DU@#If`ak7GBFXFreOK|Fy=c_RK!;wqlZQ~7wF!_#;fSM$j{gV*pZZsHo=
      z$S3f*JfAo70{$7F$lG`k@8l)?J3fi`@(O+st)Jvm_!&NxpU3k>K8;`DRs1K8^XnMp
      zZC=NJ=N5jSll&pC*8%dd<X-+b9UuXIh5jpH$D2W{-_b!*{2{!eOYp%<EPgTIi5FO*
      zrvv_Yjt$f~;gzS^fw~;9=OA{%iu}Ji;+(@Slwur(C*{9~xGzgSb<-<!0(;<B54}Uj
      zum#V0xr!#iyMFTUG8)49u<YfjbSxL3Wbw~v7WYEQ!+*!WLiXtl{}FxMHI!8hBjjOa
      z!F}8t+{i^CN5GNdz}&JYDNo|s$NeR+%X~aA#l>66lFBk&mEvJlW~H+rM<O?8Qx2E;
      zb5cB_VAS@5{|55prF0KhRJ!~*j#ZUTzY~8uw=C|`(#*8XLCfq9?lSo@z)_F)kSDEY
      zLf(K^CVNaU;7tJ|A<OT+gCr}FRx9=RSAu`f;h*635B8Hs%d?G!pqt<2H%pD(JTYXo
      zQLjveLs#shPnXN9-yQH^AZs^I4&?@NJ5t=uGy>MngNHAm0=|%X^F`RvOQ?i@f_=J-
      zCh+A{#XqH~d?iiCb3R`M>|af*`5Nr_wR8qwhyA{mHu4R0F>j&Ec`IGbH_|q~iFWeM
      zw2QaV1H7Fc<sI|{-$I|^82&lmPG9pK^ex}c3{*S#PQ=GuoQr26-^=~^J|2SS2;QY}
      zdxgEb8Di%kPXSIKqPd?&m!b)<nXl36;bKHnHGCJsSkpCHtLP&{7L+iZOwY>?1whip
      zIJeJ2$)s&`8P7(^O*`pau0f55c2O(Ofs*yo6BI!tP6ZxEkioTx4M`dk_}FxEdK#lU
      z@mvH}eqwGLO)tyP?mQpQEeGeOc>Wgh2FrzRd7&gosol#<6g|w#1*-cgFW`{xdwC^x
      zCC$8hJ2G7mQzE{fOn!h0`9W;ZLo|XP#pXOh6ZtW0(Bo8t?+baqcGx(3O6{3&5ub{s
      zh%4smAQTxs0fdnYhfPG5l$;BFA-~%l5?s^Z7)W}a)0<aK$no*&ppWa2`>?F7G#>Az
      z`u#-xK3ur=K8`rHYbk)@+AUPjAFr+fTgYX!k;74Gq6g&5i6OU-&uGtlrr)`h0{ggW
      zdBEY;S<`Rs=6DE%U+3dQz^(l_!ft@M7+FpBaT1k?{Pog&TxsFWDc(3CrzppL?M;Ma
      zVA{Qkbj^+ALL*0Ze@y5cnUE*o*-v2~|2W{$b6V=-^L23x_1ec5!o+UANQS8N@x>h<
      zF4Z44%ZCBNERt@0d>JyWw2|a0RAUeFRlv~^d}rZ!Li_?b`DOBhj)(KB6yn!tHs0s(
      zpRsSR1AcGP+58rQ>u+=;|ATJlcj<ThKJDdyBCtNB$N3}rBS`%<l;7Y_=>UI5U+}-^
      zAb){?`Vs{EH6P92A_e`IkHd3{VxFZ8jgvJRS996}YmNpz>ym_t(xq8Cu%skm=g_5}
      zg8ZGB_Y5S7D-c+7@VpXrCQ$bks9Pxi0IdO8NH~%FzbCpP%lRcN^nnr^1<zca;%n!X
      zKS^Gcf3C}rI()sPaRu;{w~?pZ@H>P#oj$%X;M8c?94z-c9II0Nixh7Q<pcoFTT=Wh
      zo$}8Kxccwq+YPeS6yy`%ot9G}TTbz=cI9L19@+mryeF-foOWv;KZs`gs0s?I@c!NW
      zaJrL)ICv~zL2o#A`uGWZMyl>`Gm_GiQZl9Vl$6|3dPYhft@^y3W^KVX-wm?HV^=6o
      z&?<9&&c`q8;TJ>sjt9);MnPzCs34G^;y(rQ1G%<L<3FQZU_V@kR^@e6rTC3dFCV|1
      zM)KrfivJ!e%$V!dshfGIrNRy)L1}%Uy{`oIq3ykyDj&a(aF!wa@WcE;$k)-v*KX4n
      zl$Qgc-kJFn9%|9-u=t_2xRvrcjL!&)!#)oA^}32Wy7>>aRMhFseQ1N;nW~_kp3KbO
      z877~JsLsV7AOB1L{X!~SSruPOg_%|HwbtQT75^s{{`LyNS&_zBk;d6FW2dnbs;t}?
      zVU+N<HjD5=oSsM_5h@Q^%A(#XkNT^8s!#<KQiU{I`Dmf)O{<ij&R0dWS@of-RDkYN
      zeJQ2-(L?GedPEJN=hPtjiz=oAYA}7GhS1k)C@VFLO*Nd0)X_XZjo@KwB$umF9<R#y
      zcvZpE)o5Oz#_%$A4A-f#e7YLP>(zKZM^*Br>R7%)P2_7-h_|Xqyh9zwzg3g@K2^p0
      z)baeNn##|p>HLD4!GBdV`GA_mpQ+jWA2mm@IzgGLR^_XCsz}XO1Jyz`R4q~!YO$(R
      zOVl*ARGozXR;lG`jas3a)JnBcovhANr>INRsp<-Kn%b(uYKK~_eyi%#9u-lKqvfk=
      zt$J5AsIOGiFxBZsKt+s!>I`FqYBWkz%m}Jxqf8}*9eF7Y5q8S3BT6ETSxQ<4D>99v
      z`8$1G)ZZxNgQ#=B>jy!bCb(@jZNxeh*l{7n`Bp8GS5a6Q%7OCvG(|ZzPj03ODo126
      zT}7jn3nee5$g4y^TiB6>X)6cd8{5h!s)~ARf&Df7{j^v?lOR7UY>WLGCTM_|E`sl5
      zGz)u|4|JH6iybtTR|GS}<`>FRxs;D1$OlS<cmbcoJAoWOjzU+^IN-+*z3~j6rh1`A
      zp<>Ddp8VufMeGBrq%@GdO6JmAtpeKoDEZZzbl)Piht>gcs51tpS5ySg?%-eA@`)c7
      z$p+`XRth0LndeDJ?N)sxrT-d*z9Bh%8<nm$x~A0cg4~9@HVcMqr$U_mGJ*nnJb~KD
      z+bMt);)k53IVlyG7jPIU)xV9F;A8Q23d*^4crf!hrHVnp&T_DY8oG?zTaQ5NvhCE@
      z@9OWU|0VUsxI*X<`r8On-H!m?wQQ4%@qNd^rt<yNuailam~@HBfU_ghuhv>>BRSPs
      z<Wgr-f%*{z)H#ULb7_b=kAmua8lx@*CN82A)Frf7T}r2@%@kFa)0yh0be_6`E>Ks}
      zW$G$wQ`gX4=(k5*M-QkQ=oz(zURF2ijNYuTUteoiey^!va>N4~U(^Cw0X;9M;Tp3A
      zv|k;qMgX$``aRbw5wiX1el=1b>;};mXho6ALApqls37{B3DnhV%szvE^%{#LKeMI9
      za1yrUW+$k3v;WOBq|^}4VZZv8_LqZ?E?cDz{Ze{&X@`djMOh%%JJk*vq;8>+>Q`BJ
      zMOl}&?JF9dUJ=PJzUdk4A*C;-r%1jmO{vn!{r9Ny4p<eK<(OK1rL#>mcfn}Am(GKJ
      z=PwR^4h;^@U8Xm)V_rir8mT+Ut?mN)@1{QL9vZ6drBXb{s$IZ*O3$;(9=Cm-Q*?yN
      zv0{Sq>v`tUF{(m)z7Lh8Jzq>d?Pch7`E@+4k#g|70Q@d1IyZeOUKYGhjee4b?or1~
      zu{FTF@<DslvF&*Y3wvXi8ZFH_X5UX{r5*?7_9OnDL<~O#?><c<)U#RMElbbZ3p`Fn
      z<TG}|uem{V-@E)?+Pg1cCbG&!r4KqA9&pYz<c6$`jx8N9Rt~&3k^AvY5QS9ccWiR7
      z-&s)5SWvJ>RW0eLXtpah89bo$!5s&m5@A)gTTSnn^3iY^sXt=MFH*jG8N~7mLgh6~
      z`_G`q*J=cqTboSt>iQM2?tr;BO<=-II7#>v&A1*}C?szy_EZz@+MX{Rry8TR5F
      zBlPbYq`dmRNX?Pk1IIl)k3$X)Iqk}Mp&WgU=L)zADpKl1VI#Fo?zs%`0>r7ysC0A4
      zBlxfMvYfwd;N=>Xc}8V^8{g*7_j|W%=5m+%^M%n0`~^0n<+U?fUK{_&pSP9c_yk%z
      zDquZHMItVQWgrc6HC6FR_&jMF^%9%g$b+}C?L0b|X()8m3ycU2IWN#ljwiSI)M62o
      z(9RyzAPTPYsij#ppwdk~by8Lhs5jwLD@5SU*EgK*HXM=E$>}CgesZ@_xJR7|9p?i&
      zQ>rfDE6DX1rqo(UICX|xM^^Y$Jl$j1KD7=$X@OcSgjJQ4@A=CDx&8u)#x@{7v%>6k
      z(cpb*!}9WgBj60=1YB~Vv0I%LDl7{W?p5a~vK!4j%zkyhO>N@T%&^`}aZ^6az_)(4
      z>>g;XC?~iT%xr6|fiw#cc?VkS0JPS-l&jtcNdJkr`T!C0Aq`X?(J=Kf0QL#k;WL`7
      z{sm6|oT}BosYZQCwdyNcqQ0h+)High`VX?>x3ochN0%VbE;kh2U^wWPhLi3vT=cNv
      zrsoY0y<}MQs*y`?8u|2|(ThGYeDsas2d4Y5*9dT-aTE_Q2Jld05RWnj^LS$jhm4^-
      z%^1cf7{hsqF#^Zs5{?>W+zRco-Wbd08sqqUV*+n7j^)iph;J~C<6Df${2M&)G^#jd
      zOyS=f)%=h#ogX!3@Ds*Ne%_eHuNbrWFUA}`VAS$^#$5i`Sjb-+%M__^l*d@1gYqrO
      z@z5CQpj6&8W1G+-7paTk$$W6zV$Fnw{Ef~d4xE3#MBWqKG>|_=_A?RM!@xXlon^}T
      zE%g(9T{DHBMPBrwzM7v>mmxoTsD>Z4uMZLS4<TEMZd$@A&9S+365p$HS{|+ByEGZ(
      z(>lIV=d=QPo(CbfnovCBsaRc!uZ0|<qtwrkX?+}}zUpe^+d{q*^S@U89L&hbyI7XG
      G{{I2&)5XmI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/RequestBodyWriter.class b/libjava/classpath/lib/gnu/java/net/protocol/http/RequestBodyWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96d9510d62ff138ed3342aa4ccbb83225dc6d70c
      GIT binary patch
      literal 221
      zcwS{rK?=e^44hSKwJLb>4GQAo7b*yXASmd;Q>~#YWmmVU;@3R*03Ri0do_m)Gm~WU
      z`M%x&rs##JDU35y>PvD@v?114XW6DU*C*zyUem3lf@6Dp?%bKlg=i@BtLZ#3nO+?(
      zl(I+}@yr?~!%H$5pA_oD(Ly0`R1jBeE9~K~2oCqLccYChT}tzFF5=)XZQ_HP3bGDg
      XbqNp9gnuGLtHL%SaTGezYv}#}JUcbF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Response.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Response.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..844d50c5ce96abbd79150b52e56f76104c40bcaa
      GIT binary patch
      literal 2213
      zcwUW^%Wu?H6vn@s@jP)zfJxFJgcL~9jG>s)2L(b3ghvbm2q+`ok~8B@9L?B~$AjQM
      z=$0ibs;(+Em5Rhr2?@4H-FDr71#!-`#|(~>u)4?B=lgx<-gE4K-@kqf;2T`cVnE<P
      z!|CWN<|9*gEMH&sT;Hv^O?}z-SM?iKd)0N?Ru+oDuuN*2PD8)8v|`nK0kvhWxL(!r
      z+P3Qm2!pq5r*BKCxphk*+p^kivq90$%16vi-?N>@NqW6(nRSu~OjR~1XEDekfwJV*
      zp9qWuFx%A)XSL%K&oW!|Ix}ZGwm&a$ebz9H^^Tuol87!>$$Np0R6q*5R1BdgkeV%5
      z^AH$Skw%82FH~fMXt#=75baTsM}ecgDz-u8=t~uY*e)<su^sDbr?q5xKbuQUc};H3
      zY*tOr=I3xz@t1A7qv_4c@3o9>VW?sGS3YSFRceI$pL8ipI}5T=Y8Wjv%{EyTIJMWh
      z;%qsod7QJ@>)#CJe8%Mp<RcY})^iiA3N*9dW^q(t|JD{NzJo51Bb%z(?C|Y5W-C0Q
      z;Y8jeN!|uq9anJz#{{+of{-#uPZif`Y^uM+`gs*UVJ<LaMIYdt>03R()W(PJ_;yq0
      zTzT{b73Xj!;PGb2E7<KDR^9gG2T2XSTcE*OR8htZHP&vQ_dM4NT6|W1G-JIsuKR2X
      zH{Fg`vo6>?Y=gZ?I?Tz~N7NMkHZmyklv7mX8JBA=Txq`LO4BV@nr&LQL!s|vnDjg7
      z=?@H$4w%vY!A@<wixF*47h~E)7bUHvbTO`#(p^kwrA!x-FDP?>yn+4X0^B0jZSuK8
      z)VtV)dnn;PCh-8%ct|<GVnD|MOaU_DYK4rr-T@hL#VHwa&5De;>a>iwZq`gw98|5-
      z%8a!35+iF-Q33cDX{-hbp|QYMiQ=)i*i97ACW=dO@#92sIT9bGY<`zx@o>Ev*Z<n5
      z&qaC-2NTT4|Bi{DCYm3@*9qc@xcFJ3_^=eQ_!MPxtMV*9_zFkjfZruxG)RiNoyYem
      zNZ%iDYy;Gf@mu(F3)D%>ZGbxUR}A%X3)E?x*#LDme!w?dpw8n$h&mm1d6c`nLmYXI
      zLG2YTW`09jSxd!F`>yZiN28lJBHDaND>5S+vU1OnPOT|%)_;AhV#K<H%LyYe89(6v
      Li6c;vSyw&)115z_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/ResponseHeaderHandler.class b/libjava/classpath/lib/gnu/java/net/protocol/http/ResponseHeaderHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a8bb81d8581cb903dde861e605f9e08ac2a681a
      GIT binary patch
      literal 193
      zcwTKyI}U<C6r6_&Xk}yL38Zngwl@?eCX&#v@Pd%dE?FKP&cXwDC?nX|IK^a=`Mutc
      zCxAWX5dy-lvb}2bT`S9?TJOXa&ZwJ6t1jHN&UT!#F4?ErmWF+VDPj3-7;P(czBXJ4
      zA?{dmZF(lGHm9GTiLY&SNOHm=bG<M4SeqfV{=2>%iy?t9!3Y}8W(Y@xXy5?x2P2R*
      AiU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/SimpleCookieManager.class b/libjava/classpath/lib/gnu/java/net/protocol/http/SimpleCookieManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00cafb1bcd92ee221af2d86bb16e752eb37d29a3
      GIT binary patch
      literal 3051
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/https/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/https/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fba1da8d2842f7bdee0c0c561e02edf6907c5b8d
      GIT binary patch
      literal 680
      zcwUWA%SyvQ6g|_VjmBE7?>C4DtxAI%H}$dbL4}~j)`H6zM;nPVA)SaH<w942f*;^V
      zi8nE5TM*3RKF>LGaz8#_-vMl5$v}o-<wiu-t#j{Kf-5TsrIN1nt+rA@$ErEv%IBd0
      zoniI|bbe+xRLGsXbj^_4_JpT)8MIQl#h~xYD{ex=U>;fI7)ESQ@RR87l7~&_(&r3g
      zwsal8<%C|`r$b$}y$-{w{SQx7hQbY32mIQJd{vjBN?t#vu?)D_mqKt?c~UTxN_MyR
      zYPqNVMUtd>_~7y&ZaM}g7{(K%C#~btpN)YjhK;{1TD4}g-Xm;c5;O5BW*Lh8X6Rm8
      z6#C@5cR^+vG74RO<i)qir~h4vL0AT{5Pup~bYqGJbrxktIlK0PfoCc*Fe&De;TDD{
      z=Dz`yhbikQU?e41QnFrTZ;yT4y)Levav4TZB-B_kqhlp1J7g(CdGHOB7wa#We(IB|
      UB~nx0pj0ZZ<}jZaSV-`TUz#$I&Hw-a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/jar/Connection$JarFileCache.class b/libjava/classpath/lib/gnu/java/net/protocol/jar/Connection$JarFileCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0efc688b18cf703ff4af628c1f989312bcf4024a
      GIT binary patch
      literal 2288
      zcwUuMU2_v<6n@@(ZJKVsQVOIf3PNe2C01y~q@uL65==jAOQ1o7ZP>J1x4Z3Tmk;q<
      zFTC+iFM8pOSHgIOI+HTialG=vzv6#TpLdhA0n!<4X8OK+KAv;VbIyDI`sdf*0Sw{`
      z1p$G<CCf{$Xt%VarMt;B$9C<4ZBpVS$85{e3$9^XM=om4gkkDqT47mN5E5wjT};hd
      zN=`4X&`Ka&kXnJRtgrK2!%SY#O3SXcXzFQ!=GpOc=SMG1%w_W90wN>O!U!c-v)r6!
      zdU_COhd^|sU>cU;o)rl8_T>aZWA;r3Z4>Bh031UrI#k4=3PeVH$0nleQ4vN&pe<`y
      z`jof2s5|r0Tp*sc3!0hJ97BH3S1^L;U?6wdC<&a({%=ZHU2sV!2fe-7ZO2Qq*>t|I
      zjtmJ<^`b*;{7yk%lTalE2W!O{b}}=)t&zpOsG=K(1bV8_b)2XBo)#&1i7jXtG>W4v
      zvS`SHkD*UNuYg*gu8QM0!A7x^nQGN!vbR3Uoa-3YQaXkKBo&-|Y!E6s6)$6uz0lV^
      z%_N;&jq=XR3{I&yE#oPSH{oYBj57*e6*$_s12Xlx7N~d)DY|>sx@Wuk6BJc5ZIHZz
      zky_!TyAnB#vvP>ucp~2#NG^uMI43Pe*{P~U)j6HdNc}OKS22zWfmVA>w|3GL=&n&%
      z<#|U(A}`>g0zQVljV)BXjVv+AQN~*HTxO(es{;FKm~vuv6zM3!QA~3l*?3vjJ1S-|
      zM}Pv=u0F4?uF0eYPB*A?SNdwDD!3%Dzg{%$x!b{Gn8#&F(iMS@CrFYM%_FbkD&FO;
      zxa}CSV@mJU(Tq>ud$^(Cdi^ulDN2QgMUF1-H|a~CzKle>sX~|UK3p*ElD`Q!eakRd
      zJ$(hvG#I^SdPD^99L|30<F8qu$tzV}JO^9k1p+HYwqn;e9w=IJ;XK7Eor~M(HHPFQ
      zJ7$5MC&jzX3o+%6>T1|~roHG9IB=Cy8Z6p0?0zgpeY2#ssWVn=&i0&wUYUxvomeNO
      zCm%|N0%y$BN+q3}>N9~O&$1usSid20h)bCp9s$JUX6CIM3Zj%YRi#0GHAAJOg_0y?
      z@~?RdtqYrI{{@{t`G#HmAM=&dJSVZ&mx6BbI%hJ>Gkkm#`*z$SzOdq=Rt&Ho37&n-
      z<^Zjp<2^*p^Abk<NWIMN!GR6z`5B$Z%Xr}r9G>j|6XE`c@gw~1DWiV_J-od#HSh>S
      zQ(H(c3~b`{RA>u_7ZRaRXcKQv-p3W1j7<%c@m4C-(T?Ausc?KUKJ^GQsmK=Q7ZQ<8
      z<Wfp-IC>u~2_+E@c16n|Kq6emwT0nm;QN37PAFv*eB4MVDsh>ZDiiB3qj<Uh;dZ4(
      zzp5N-xq>z<pc8q@udxf)(SsW}!51}zMVzN)21}%JnbroiEBw8WRsPms;{%>w!NJ#X
      z@eMqD%X0&F@Ez{r2i)_S{L-iVf$s<ZX3~qJM7}Lz1aOYMt=u*!t=xKWkP+6Y8KTTV
      ziMeJlLwt|2X<WoD+@>stF~+;gPFzRIw~H`Rl9}D({H&rMA98M@MEuCF{$qUN4~QIq
      JPw_dL{sSgmEtUWP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/jar/Connection.class b/libjava/classpath/lib/gnu/java/net/protocol/jar/Connection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d67ec4c031075b85a187484adf96c4525243a0df
      GIT binary patch
      literal 3397
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51ca4c3c4684e39952c5f6a10421cc294e86de07
      GIT binary patch
      literal 3822
      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
      R{f+o7V~`Q~o^R=Q{|7)l#rOaK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/ChannelInputStream.class b/libjava/classpath/lib/gnu/java/nio/ChannelInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb59e72598f86aefcddc817eccce4f4a319f2522
      GIT binary patch
      literal 1104
      zcwUWDT~8B16g{&nEVNrtkhV&NDqsCjRun&=XtW4gESiXEf^XaHP*%6QWV>thr^u5(
      zfEN>`Dv9W;KgxJ#C=CfD^02dW=bn4+opbN}`TOH1fLRnYC=6qDH#FXu?@YtBJ!5Ih
      zbY1S0-0d(}4}5MmG^h+i5<vcA4hF^AVwf&>f~~{grty-SHM8pQ;)j5@84C<Oi?(YA
      z4;XTpGsa{q4C<0s;}LWrszZa$(3Qzn`oPeyqZ>U817+Lg&%;KQ`>zB6!(iF7Os8V{
      zwy@iWYOrND8LpK7b6+Y{rGHH(DltTs-&=e;usye_A#q%a7afm=iwxr@@3hVxZUrKL
      zJ5K~jjOa+=G7;O&qT^X_ZMQCSz1A?sFmsZn<T$);I!E9&(xa0(f>A^xxQYo4<447b
      zXdz=U+}z~8j!8^0^qLM4m;p(V%#^a_Q;>xyGRSGjGEAPSK{|$z7ksC(WlO!d&M>m%
      zg-$K)dO=#~n%?xiM%p^kBMw9K^#;Rmo5eBRx<S35tI`07yWP}r3v(n=od?t%s=i3m
      zRFzpM?$qQ2@Od+ID1eDBu6v<x@fBN)LgHlCrR?-3C<(m{8f`IKv{PuWp_kS^vR24e
      z=pV_o=*xda?6brS(AqB}=b@rN*hQQpD}IQ^c?<$_Cs?T>((MBIhUrWtD=yi0i9v9z
      z=Dr~I8_ADIirp_H_i$+k(S3|=w2(efztI#6PyRcm72HoLpU|!Brgjk9M|@-OS_?A=
      z`K~?8?slrnQEuQNt&fmE5o36a2`t0F6U^Z$?qC%Qct)pdvhws{CGE;5FooNMVT2#S
      MUEGtp%uDu#e`!YqO8@`>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/ChannelOutputStream.class b/libjava/classpath/lib/gnu/java/nio/ChannelOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7da924174eedc79d4eadbae94944ba6d89453d72
      GIT binary patch
      literal 913
      zcwUWCT~pIg5Ir}f4U_=#Rja79D3X>+<jGMS)G{*DnJ5o9?Q<Gad!3MU(ggLz|KLw?
      zM)BjpAK;Ht&rPB7P)8nevwQdKIlFuJ=dbTS0BmF1fF@9W6{hxU_t>>V8QFV1Hw^vY
      zAWiyda+t)vdt^WtSjrFtoR0`-UQb}d8Krx}^nu-uW#V=Mzws{dPdRr4@(*PwlU;$D
      zb-|o!OF-X?Uit-0VA_NMQ((fXwx%F3Ya)ldz?>sP|9N`U@#7bYKw!a%JU3{$u~h!)
      zrJnTUKw!=JU&pL8_lCu&9IL5HC_H`Z`Tayj;lRLUfyJ|NG!I6R0<K`iz}2&;B3G?6
      z(r(v}O<coufk`(ASel|Pk=hx9+)+fUCd#O=RTib7jekRLnz)5^mf8(upW@be=nyuI
      z4O9(S0_ztVyNN~Al<Zj1YLoLhc7v2n2-^8hb}z6z7S8D%MrrK%`%=9^Y0SX4R30~y
      z{c<z8R_a}8X|xSY@|>c#PhaD|Q2WAf^D|~XW|%pivsvan=(tbp16-n49HKFg1t7B&
      zD{E$VON=e^PN!GQ*dsD1j*9*jrDye(dHjC=;RH9@^%JbMYo9Pv|AyNd+J8lhBm{PO
      kKBC}b5<cOpH8Sz?kZdGg!6xby%W)6xU@L3Q&Y1500eEiF>Hq)$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/ChannelReader.class b/libjava/classpath/lib/gnu/java/nio/ChannelReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45afa8cec129811ea524cc988c7f6251e055d6d8
      GIT binary patch
      literal 2954
      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
      B+Z+G@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/ChannelWriter.class b/libjava/classpath/lib/gnu/java/nio/ChannelWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eca45f64455edad22d24ef550ea6b9246e76ef84
      GIT binary patch
      literal 2972
      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
      Kv_2zieB*zvgTwv+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/DatagramChannelImpl.class b/libjava/classpath/lib/gnu/java/nio/DatagramChannelImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ec3162f45cfdea147316c465b63c12e265e4d15
      GIT binary patch
      literal 5081
      zcwV(vYj9L&8Gb&pms}16LJ|mUAY7Yl0^!mIC51{tsY^qG0TM!J%Vzf^9J-v1do~nm
      z)k@Q9>xEix1xhO|f)}tLWm5?ylv*!sy;P?<qci^SGGlQZe>mef{!pLy+s$UP*;xGH
      z?ChR%zVH3s_kEt{eZTYV8~?g|6~IdT+>0p+ReknA{l4IVV7+Zc>o*4D!M<2<fAij;
      zZJUw6{{Dy;E`<eYi%@dL$u?E+IMLAkW}Gft#`$aww2j(s(-w^iC6=99*Vb>wf^jQq
      zE2v!xrIr)OF_l+c!%0_jG;9_?VX6Ty@)e3(EZb}y*xzHuwg-D6CLOm#L%~Q#FlNbf
      zYS0zmYdH!FTiy#RGb?k<c&-dw)w^msm}3ut-fr1ee7!<#b<0FvoPMi*n;9`f@n~#o
      zEPB8So3Tb&T6pKdkl8QZ94{&qX6m(E8fZ(;6e16E4V0nWi%Nxg|D8xL<|`~7voYiK
      zTO&cs9&aVU3Na50#P34QWk(@=SS-&=6z;BWxfvIY@6BFKhlq2F0XIB_ysI(bN3Ft)
      zP}J_V`UYZVQ-uC3yHBB-eCA*;$(+cRa!g6``%^S>)y)#FP}FC}TPfZFbJIo*Iv}7|
      z8d!zZ3UfF+2~f$c=H@67T5mJ39Q6uwt4Hy0!GwaJW6{1j5_QZ82qmre8(1saxI<#X
      zD%9rLtcm411M6{zg26i77Ts>`H=_e_DbIk^Sbk5MU@u9x8A)MX^;lxbgf@i3G1GAx
      zb19G|Y@-Od(ZHQ3WaV29Tf+9@E|N5Hsm2#hEzGFtO;{kQZ#J+2cMDUK=0gacn7Kb1
      zCkL}9vtlcSEhi0cN%hUa@Zm!ST7~5z%V|!oHp4Q$-9Wp*b3YKXbmWXOYdRD+n+AG&
      zrHKQ=#da^c6#Nq-wnpP!W<2dU1OLt>{@n)d!MzIQti5&(avUxeNoEO+$1IWe7zl#<
      zkIOObu)>PmSx(ArfL-9kLM*PF>qM9CoHKzy&1NrHQj7F#Bxv{52kfwUux%jT*4q>v
      zu)|IU+Fn7cu+P8_bV#<b5V4i#_D#K`y}gdSHWU-|L`=IczE@X)GZ2x{&D6z`Xmk}b
      zgA{B44|s84bORml(7-`y#sU@*TUPgs!h;4rf``}=F*9UxLr|!nMB&LxE-&oF#n;CT
      zI2sn89m(aefk&ix^7jUv4Y648kQa|C%$l$jYz>M-S@B5&pTgsW6%=#n-J0$unfSDU
      z&q($~dZJD9BIBPka74!Q`=gGPBzX{@m+kv0f~xLrqCy=q_C*={64{e68B+L)fv5G(
      z(qr~nwu~GzP=c9Kkk1G&Clq`c4LLsD#-x+y415(cNdgN`;yiEQ1wr6tCCdUC`<j8%
      zntG0nrap+T8~DcPXp7cX0Da5AS)8N4e%ZU`CK2RRM66#F_~&^xs2*oDYA}fJ7`P~n
      zHN8*v#0=fMxTG*YOViYznXXvU)gMfrTq-8zfw{6Yi6a!{&TO*3y%=W4rtJfER_sDt
      z#w!M{N^KaHv%}_KG;+WU=i?eNZx6<pZB;O7TxCb&Rig%ln2qbA<ZJBJlr*~Ow#8$t
      zXsyWrUN`W4{D67&>CDODWDE}CN8;@bQlXiieD{^2cuRH}7KJCSGvrN=cBC++yNO%x
      zw&*}CWNxzLU^P3(DPXyH=kb!6@t8S<AD#yE9gl3hPR9%sK&q;UPxZViUfuqeV4T%v
      z)A;MrgDoiLuaPv+3&AgoH??@Zc28^n+)FSnq*oW}(H&gVp*@r*tx_K3u9T^;@#LVz
      zxmg@@@p-oPdLP$`{d|Az5a#%Y;p-a4ysjZs`G>IR5|;X12~>BEg)8A=pqtBf)5SeJ
      z6Wp5-c78hSeAHo?#=BhOmSDG~@D~yP(gao{aBDUTJsB(%rJS*!(U60}rRTF2_vN6_
      zg*8|>0d_;mO@1<y_hr+$pZeJu-tyDl8YxJ&x6LVOO2pgTqwwaPfqVL@1a8mv>(EO)
      zgRhb_UnTf}mPzs0&@>@JS1Lk<KY`|BC>q8lYV^So30Rvzz&}PsQlLWw@E`*{L`NUZ
      z2w0I0Siy?hq64;~Z9>2`DS`@;1Z~X-kVNtb0}N&`RFD>{Jzejs#<RRFTkOYkFs$T7
      zIw75%>@SJxBmPc}e<$(p8u8aAU3VvN-<bDlx*Lx$!zUTxsSNnOG<+XI2<!ZIz?=~8
      z*Q_5eukBg!e8*AdtG)UHiYt$!sIvB|FMLX7dpWyzq+pH9*WfvW(sGx-w#>r<upSMr
      zaSeJ@na5YT=j6X{l)KKQvs^{w;QPvpqs;I)>*^Vbasrij7EACPyXPcU@YU0RQ`pFB
      z8(%qsWWC;D+S5qdaX%uO!*<rKt#P&^%DX(SUx<Eun8;QWag1Zaypx0BC`W{~1zCt$
      zUGa5({vPV|$$fZ?=5mq*zT3Pw$HZRbK64&(a6u<om2{R)asjJQ=q|-n9$F+xN#p-V
      z{Kwvt_#wu5nYmsj@xvtk3W<M(#9t-x*GSxT68{>BzfR&`pM>~_|3~6^Fv~`)4y0Zg
      zr?XmH$X?H%PaK7B7=vBBeT?5H`2Fmj${{?t<qV2tqVh^UAHT3AufatZUzQE~sB}eL
      z0>@nqt}~dq*6lCj=(GMjPF1)^GM*&BG0du^@kxG9@p~qLZ+4!+j9Q5#&wCR1b|-Hx
      zobOcUnSV2O@dI-5Jj?Q>6s!BFJ@6)3eTy@1Q|Vt|F5bZ+{F1MNUy;>!a4UYpZSJ@9
      z@H^av-*X501GeLj^!6vdPTuA2e}kL&pXuvevUh_o{=bm1zp{=0#-{i?qy2-;@Xri2
      zPN&s4ovN^vWIsW5r!Z0|byv#G;AO2#Gxp%S+-!t@{=b-@#tC{Y;K;=+HR@i)<)fHY
      zcMX>lxN;OzhcUaWWMl}hj*xfJs==KUt6YR?O)Dh=Oe=F=$#1P)mcaKqMX_aNt}=Js
      z5PrDUlh@!KCt8Ikfj3<ZUQsRIU*=7#mOqm5l#EoY6)JOUeahTt31S}(^D|oLHU)s<
      z$yH53v2vkYxlyG&@T&qWQ-xTq_)lC-<3H?TY*91Ou1c{}&EmhG3hYxp*s2nan#X?=
      z^Kn=$#GqP)C)8pbQA>CjUxcT5e?r}YQ>unX);cZA?j(I_SuUpbS-JZ$UpP~62Xp%g
      oeo8UgDM9jX86MLuB<=FBmdedSXwmX{h$^5(^U}}HG`hF{1NNJBbN~PV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/DatagramChannelSelectionKey.class b/libjava/classpath/lib/gnu/java/nio/DatagramChannelSelectionKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3159eeb85b69147e06237f85eae6c35f754c5a1e
      GIT binary patch
      literal 810
      zcwUu~O-sW-5Qg9BS85uq*3bIci_lgv2zro;AQhn)^ic7>jZ3?dCM8J={wFVjD0mRh
      z{wQ%b4Wdv=yNBJ`nRlL<9ro+{{R6-ub~Gdi<+j^5AJ~AIuJFtY7P7X_y7dloUG6lw
      z!|hOb?iGL3kRojTQ~wP&x;=-GITfx5&j>eV>sMwEVSyR+gn8ZyLZ8{;FqgF)9@nZ_
      zBiNp=xV6e1AyxP8xsD`e45XnG>Z3|bjm=xa<=6dgi~F}KjZm;Wn>lyP7wR56Q(;F0
      zgsL^^xM~C~?uu|Y^)Lw8Aa0egG3E_~T$_j2EEEHNc|k~)D~%ZtRt&6SjgYWAgx!fI
      zrD2^=8uvg|QAZJ*1{SeI(3@W0xA~<|BPxxV#(^TrKPUTxS_x^Tk&(M5Zw={HeyzH<
      z|Ay>yB*@8KmnU!}g~u?YRT|1Li@6A+A&+?pQPu(q5mq)9V~^#jV!7%ImOoK^#m3Vw
      TIunIXBCIi##aQ{vBh~f~9+K4n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/FileLockImpl.class b/libjava/classpath/lib/gnu/java/nio/FileLockImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffb2da7509bc950de05dc822e565f529af958568
      GIT binary patch
      literal 1125
      zcwUW?T~8B16o%iSOSi1cS1VMCP^u#BB2*MVF@A(-!ln@uwQBFSWrV?H+jJ>0{u6$I
      zH{OsaCSDk?{ZYnuwoPqKL@svsoY{Hb=bSV1^VhfU09J6<#DKumcF-#BdIw%HQ1#*y
      z<;zmN_HJXZ;hQi7GTmRb9WMx^A9nW$3?6vC+7b{If%rWYsQvo_OZiftWuI=nooM?t
      z*R2%F0>*lMOInEGj13dEz<j=RqPQ&_g20H4LBs_{ODd30TYFX6eBo7nDUf7=o?rHw
      zO6Q$LV}D150@I~`w!9`_c8~%Kr|d%@(Wr-NU)2MS!X+nEABc;GJ6=<AJc+j|;Gpzc
      zEMF*Fto*!<8DvOnN?&@RG?5iZMJ%E=HXpyQ$wu4JRAIS2W{N9Xe9=Y<mjrV8!ha@Z
      z;WF|j76fKa+-ReK94l7gW<!!`b@`zNUa>KUoQY)~&Z%aiMOST1U?r;B)%kTBX{=aS
      z!VMcYaf`TC;J5El-gWg=u%6dj&6?C^0^_|0v#gQ4v$W&g6&TP5&&XhGBEk0%vt7m}
      zzhlng+@vuP{|d`7zF_!>YXcbNdnD37fQ5(5A7PByD!r(|IFdjVrEr#xI-0;Fl{!i@
      zGNR}l$#KS0$aJ{t{ObKf&M~Gx!gzHQr3Q<c?E|}9DY4vV5!h~vI$)t^+%epsO8-kc
      zpD}!h5r@VXjxo<(^vb8d`gu*;H#DjA*rvO-ylC9*bfz^M0ba6ay(>%O#Y1GAn6@V5
      j2bTCL^0{`5)jxwvM$K0V+9E*GX1fQL?ZR$HiaWmn`Rv{M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/InputStreamChannel.class b/libjava/classpath/lib/gnu/java/nio/InputStreamChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7550dd6e78ad0ddf9c1ff191b191a92bb05f1c7a
      GIT binary patch
      literal 1187
      zcwU84T~iWK7=8|{tiUQNewCq_nXrIl*@tO5K{e5!R5&!{)dELc2N!2qn)(s_fV}9o
      zn{Jv>oT;Yn`%z8rInb)%OtZ6R&%Phe^SmFwet-P|U;%3?JPcD+tC`w0-WVy%tf#Wp
      ze$y#9HaGS%JBDTPnhJ$sKnBzdtD4G}c6r%R;bWL})5`7GM(PDODn_Zs)9)PK0buZz
      zYxM@NFtFDQ9@AnN$;s5Sgv%7UVp^uN$}k>1HzHPKP%`xj55S9%h9CwQywO<E4~8KP
      zDtg6jSc4w{hEUG5_(pTD#O+O?iehs0vQaA<wkiHQM#b4N8w}IA|FnVx_Q+Bg0*~I7
      z`MzV;t%izA3}IJo-t`19iOVXcPJ2%<HCzzleP$!S&n;O6bw?pr<)nO}L$os8+}`H)
      zax5F5>aJ;+#uXJ&hG_Q$GP2hl#iz8)ArwFyNfn8|g3h9Am`94iZ}UBareIa2rmU!9
      zLBkAgQ1#KRw6MgnsNoiFQv}t+FhTZgHg>LNim5alcjR4OUrF9*F}Bi@-KYpZ&4XpB
      z&xLx^F7wBxnA2GINah77?J}{@+XD|hv;?%@9<c)SRmdKMMrR-W<z)mA(vQ)vdyg=v
      z$Bz*HA`?dF9HInZiOxj=xQBi$W0WkT?KF&G9FR8wPa?$_$#=0sH6dx9l7-QCSU<$z
      z0kIt-+(JZGi11&oH4^-Qc+v>tq2$uqxg9PhrrnW$M=}C^0`~({?<XkAXBW^Xolj1I
      z^tm82xY{N2J>7+bq~5~p0fOH!_v#q2pYay-@4f3nb)tpqtC5cg#uMI13pZazPUt2{
      zIj~OW2KD0^(LTo%3PiO@D^ip)^frOpw<OhYmjsNGWr_Ohp$yUE6*<8B5_|OzcrEFk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/NIOConstants.class b/libjava/classpath/lib/gnu/java/nio/NIOConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b1bb782e53a3f82e86c4d4fc0b18a1161bddc219
      GIT binary patch
      literal 346
      zcwTi+%SyyR5Uk#06OCE-p%?K7RK%dy6+zZr2*l07Y_2ki!#YcxKpy^=C&7as;75s_
      zQNfFsn(6AQ?&^=vw|4;N*muz*9ISO4Y{at&v?_yT7|%*wH$peH3!5-9twQK^5N8{i
      zH-zEMd~v;slKUjQoyV($Kp|o9>q|w^N{csK5S&Y;RdYqKj*e4;Ju4ri2MYrq+wgc)
      zq_kYNPnoO|krk3KiOO6Qsi;&}|B!a`sA|Gt^l#QF!MiKlDwhk@ImUmRXPt!)<`^7{
      wPevaOzb;ojZ1In}IE*{Y1f~Z1C$I2djAWP5G2|(RjQ+O(BaF?!iBau+0n&s>ZvX%Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/NIODatagramSocket.class b/libjava/classpath/lib/gnu/java/nio/NIODatagramSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5175b5ac27a441df68005eda0f5892c5baa2c02
      GIT binary patch
      literal 837
      zcwUWCT`vPc6g|^!RcomhE%gzRkhR3dBNdSpNn=xziU)6FO=@U&rM7+-36Xg41N<m)
      zXLnUvO0&tGJ9E#+%*nogyuJb0#C#GlhK0J@wyya-w_NF2)ynZc_j$d=n>Ek55q=UH
      zLm`|C-|8MRXtH_RU|6xgRS0#`;L`1eRtQ&ONIF;Cbp=tD>@MRkbUB<y@Sz>)N`IH(
      z$QaDwf6>)5x^>yR6lugUsw0IlhDF2f^Tddg0>ikD1cp?X(~-n5L&lb_sJ5FIqIJqI
      z8iFRa=kUfEZ%MU}4mJNu-jRv@chvOWVqN%sp2lDptAmBWkS3k-SJKPG>$pbw-}Ppr
      zNHwqBa>Sujch3K~-iFek--c0cK#V?0Bj_j#TH`cHAx(9JcIR}iaO39M3v_es85wi^
      z8QI5xF+nv4jp`PuY!j=540bR{CyOBuQ^*5Br+iq@DW@2+C}2ABv1nDZg!zQbLq|L$
      c>;-~)2#5r;m_hLua<-Rz@C%t?HbBjN0s;WSCIA2c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/NIOServerSocket.class b/libjava/classpath/lib/gnu/java/nio/NIOServerSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48081b19f3b84a4bbdea644304129251aff6da3a
      GIT binary patch
      literal 1431
      zcwUWESyR(c6#h;r1VVtyqC!~(u}zhTyRwN0S|=<sb^0E{of2u2PLeX>uhJQ<jt@Ti
      z;E!@VH>s5Z0+X4$oaH;;S#Ey){{92NJYFeC5JpRG&3I=WT88U*##Vm2ApAq&7d-nw
      zgbI>`p;#+I<G6~T*!!02iZWr=YymlLwiesuE7kG>p<~f;op70u&0NkUTO_FK?`=^H
      z9nTFEbQ1<5FLugrH#LOhnztuZw4qmnf<8i9CR^+R;fjWKbP)PX#}!+(%C7L=TDxUI
      z=r=vvDi<x^k@to$8SXm)Vca~gE}Tk#NrXFP%W-3gWJ{RLWRLlA#ZFkTpIT~WD9eyF
      zn=u;Y49+Tstes`cWI6w)lWa-MN5vQ>6pRy6k*aLDC8KZ@grcHh5>qkXg0O486CQ0^
      zu2m8~VeBtdY~QM8P{Oo^8Qdgj>>ibC$MeIexOo+~kX4W&4F4BHgN_`b+uj%Uf$1<G
      z*{V!FTU2oehJrc5%w;A)!(Gf1I;*~S=<G@E`kA#0st!Yxg&lhSPQ#WHxsQhm9`K}I
      z&O^f^Jm%5ys={rd!UZ|IWi8E8@e~URo)IQ4Fx9Y#H1{@$gtFkv8dmU}=fvTxR~s!K
      z%$(}Dd>M(LLP(#}K|)W^N`LA?@*KM0)qGoQIPyIVo*4Z(>Cb-;o&o-gFbDa%_>|;N
      zK_}n4q8r0N<I@I961=PWSM=z)FGzjjTLS&O_C^>BY`w@{OBmqW)z}(?7y_b`#3v%w
      zT#F)J$1txF+u)seZ`VH~^|1-t5ee5KI4w44z!64}K1J~ZOC*uZH;kIOpXko%b=;_9
      zR>IbCyN-LCI<HUaSd!bnNF!0|uNf=PslP!ACgX2n8e38H$r!g0J;_gL6)!k$8a>SK
      LC8H45Beab_yG>(L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/NIOSocket.class b/libjava/classpath/lib/gnu/java/nio/NIOSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d18dd42c25f228ebfc1328adfe4ca81df7f4993
      GIT binary patch
      literal 992
      zcwU84+fLg+5Ivg)+!*5oHw1cvaH|rh!s=rIAu0q_S__asJn&}BDr_6<C~+!2i%O+P
      zJoE$jD8%fp<tkA`w30nLbIzGFV?R9J{{!#|9}MIeDy^vR{Rn;qUL<1gpm}&4hd+5@
      zAkR?Ld7gMW$&eRUoi@XQ|DQ$Gqjn%74QWz+lfeitgDBzzt@;BEG-_8@Q}E=Lh(xl@
      z@TK;=?l`IXDTBFp9r8{h;;3g}n&Fkg6TEqtRcMag_=1~wfs%y+W*Fvc{?M?gVgaOK
      zVFHsfnzdlyC2htR5kKf(o%8NVaNgz&jvt3X`!whZc~6u1<WlrV+#kJUn%!yfWN1v<
      zS*<>9!DcTTonfUmelsQ(v1Fi1AMbgrg*SLh4O#;Y>VC#ZKW%T2Dm@*?{cgzjg&f_^
      zrd*dy`rjC>8_3b2WvYl)N$)(J0!+G3sT+d@o1!zyNJhzR+@a_;ZsE8eZ&CiOxD|Rj
      zga$s7-UjhEQN$MJC{xuu%;PnnBH59tNcPNOMh;0C*~g=|tWCIo;M`>5ny{k;Ee%Ko
      zOL&L(Dfyck2(aD8Uo1$AjRA|cva&}__c4vHO0A+9nLS&XVq|I=D<e#mhfRGSVTxf@
      Hq1K)Nh^NxU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/OutputStreamChannel.class b/libjava/classpath/lib/gnu/java/nio/OutputStreamChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a32c59c1c0e5d3a58c2c4342198bf31ef34842d
      GIT binary patch
      literal 1182
      zcwU85T~8B16g|@}T__6$3Rtuvf<U_!DvBRiK1>@-Y8n~^A<ENs8OoBfOSZdy`~&}j
      z`~hElF@ch((RY88@y>Lq2u;kUv$J>ZJ?GqWr@wxG{Q+POD=I<^V^!PF?i+86tZg~j
      zvhN-G-n!><<Djr-*fy`JP#F4TM$NFR*>Yu{o1TgY!(^+@Z06RpTdw69l^V~#_jmxn
      z5HV{`o$oNP*9>9D_ZWstvi1UHj&c_*+wztfMpErl(whuQ!P((agb~xwjXnZRr8m34
      zFrYz2r`Qc@=t7hsR<dlq<{wnJyCH;8PRTKi+NR-J;yVZ`-kw!w7%%<L4wBd*+hK^V
      zzBBouXE}CVMUo+YrngvbokTH;F%>sRP`hq4j0pJ=t6o0jw(Nr}>Uc{o5<w!cKu8gW
      z=KbAW?&i|PC^a~x;U>maq!?0{=TMN22b#~RnMN#%3}#f^J`?;ex`tU~8M<74V9+G&
      zsuWceMROYN;vRihxhLkcolm#bCwjiGVFC}R6_G^~3)fwfVW@3Boz_J2tVm8&WQ-xS
      zohOIa9p5$iQ%j5}(PkR60*~%8LC~)QA$sTn(ESdH@zYzOcsDd!d+4hyGk}<Wie5c@
      zf_^=7g7_C%FhuJB6#xsg&J#cmy;#IBMTVPYxPk;AcLJU?iviNv)qv`nq<KaWM(;uW
      z82v}Yc8quf*L8&mFLFI0!Fl2-AdXeZr8R2<E+)nt$bTpqfgXYT5o-7o6y<XZFd`3&
      z=RkT|AQQNCN#+NN2ni{@fypCuf5Y^vQ>1@p8qk-L-#gbbGY#C?66$F)pZv=-N}_=^
      xTFYd`a}xW4c-AStfhoL{3iKv+%d!;7e<c2y^eo^pAtlJV92qQTw<NKb{{Z(J>E{3d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/PipeImpl$SinkChannelImpl.class b/libjava/classpath/lib/gnu/java/nio/PipeImpl$SinkChannelImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21dd064ad9ec75b78be18e15050d9eaf01b18099
      GIT binary patch
      literal 1856
      zcwUWEOK%fb6#lN`#PMWEN?zpQlmG$z2pA}BX&oN1NnnCWkb*1$s;Y^7?Od45xHIE4
      z-IPt)u<A=}vMkGXfdmNxDeU{Bs-AmoCdPK8$kO=CJ?DJiIo~;V{{8RW9)OFu8$pQS
      zbj7ZvADf$I+7?dwo~UwTqiW5p3j0ZJ-L!3P$@d7t3@3xIV%_7Z_~uxKsBQXUlYd_>
      zF))K6ytz?aXBf+W!c(~0NXRhs%n4ig*BEBw`E~}cD$=Xm;zi$a@43#VC~-GqBnpI_
      zb4px87mnzNqMspk==?+>3Wm>gbfZVZAci9tVi@gQqK*-aGUyfV2WJfP@%*8b%Ono!
      zT$V7VBZ6LrfxNK!a&2RcyZ6mCi!%)7ouX+KOjpSF#$niB7aqgeLsC<VUQ6o?hZc!p
      zLJ&&May(vl$|3>*y5e#O+QL?mSAF5wUIeEYh7>qq8!Le)g45KYa#*HaNiVpr<M!e#
      z9WFcmv?Sph-1d1%!weE~nn{L{MxiQY)pvzm$w<Z#Rg`0wMWyEQtmPD+kc+g5KTH(l
      zFwg5qW0s-M<Nm(8cP%j4Lx%1jUE!0WV@+~ofAV>@RxZm0F(lHLIxgW0YPIC~MBFiw
      zVLbk*Gscp{_*O>-a}528@RsSXb5~U{c|e+BB$lWf&n?oVM?1$vaD(C0zC4Cq;#(^<
      zf2EvtYIeyBq}OmASt;l=-7}|LCP}Cri`yg*?ens_tBW_)H0iQxt4_@=@<kz+?a0Ty
      zIxmUn0vI%SH)oli$7$GiNRf_fNMmhTMEcke1ATNt^rI`MEZTeekB}z{jh=n<_8pze
      zxS?cf7kV=G1_R0DTO56ZW3N=wI6Vgure~FaexO8`-aSmv$#gvxlZXMzn!@J<EG<bI
      z!Z40gR0t>NEKHu0iu5w&$tdkTW*!Wl*+u+Az}2HXTMA#VM>X(=k-}^n*1T#Fh$dg-
      z*yIk*?U$`7$IsODQw29#4-CqU;)2rYsNA_W;H%BRsU2MYyQRio4gmcMUpGLnw1M6r
      zTgK}Ov@5l@gKz$6!F}F@s|UC`6?BdK7YTQ+4fh$@az=^RHb!Epy}vLpwT-^1)LyLg
      z5`FJ+{lPBgKPcAN)F-49YCC?V^xsIa-_eghi2P3)<O@|uvJM;+l4uknt(+RNv~H5s
      pMNKbYv9Vcc`j=7NL^{x_-FDM_yBp9U+)~fmFaWin3`@vk{C|Dpibenc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/PipeImpl$SourceChannelImpl.class b/libjava/classpath/lib/gnu/java/nio/PipeImpl$SourceChannelImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5dea7f33c4ee9ffea8047a551dd47f4efc6300d
      GIT binary patch
      literal 1865
      zcwUWETTc^F5dKanlrAd>2y!WkiqdV-dcPGFTR|5q5HU?ajajy*Wp&vlyIZ0^z+d5`
      zKI(&sg3$!u{ZYm_r**lsB&5l9_RP%p&3rRw|NQ;A4d4=<#1LT^uQ=7rYh%O6IF_4P
      zu-3W0wr-Ctx>e8Q`BlSlxGhd%h%$_Yfo9F)%Z$Cz3~|Q@tPTFETw-84Lv&-!TxA$2
      z?BOatsV8I^+9oZ>3hpvYBnyok{<@V}<Tf`0*IV%14XebxtgaOaIq#OZf)*T65l1IO
      z`q24WF%E{KDq7K|pa;id=w;|{UZRRV^fRax9)xEM`DEdc>SeWqdKX0usEDDRp{rmy
      ze6G5-!o6q4ip?2%3a)9`MZ>eid;KsPtXe*Uc4%^H)8E%V!=Z&@7_tZ@Z@WIPIYk+v
      z2rWr52xa=M$=3tRb^I94F!V}r!q(?QPYh?NN9nK)r;?fWJlAW-I33Qp!KfhNYupKV
      zNx>L2G0_x5U%gP7vKV-lQ^^X(K3SCOl&wnD<2l<k-;j&cNiJ(eG0+PtGMHfK@OiM~
      zZeIyawoK6;H)u--cBzqj7w}xQToyZ`3!rN%F5?Py>U$>fHjQK$Og?XpF)J``tH@%K
      zp;PcJnnn<CPZlwJK$@;=vs4~Y(y05J$HXwjaArpx-6`?6^VML!oO7#A$q$uRa1S}5
      z=O|q@w_GMgs2!U-qz<k0oV>0x59BcEzACj9nz6*T9r?dl7X%UA0iEXV<!!_FInDYp
      zDbjQg8M+%bk-j>_L0_K;{pj9Fi&mfhW8{fLp=SrZy`*yy*PBXjK}{vTqbrsAf$r}(
      z{#7Oo(z6Fqdfp_UTa<X4-m@5@lhIl#hLHfIHG&faEG$79!7-eqs0dEcS(H4dCFxbl
      z6H&@9j4kz?+d}ep$kir2QxadTMb+`6NMoV_>%MFeh^M~c`0ysq@06`b#|(A-P{Q@s
      z0>g6SxF~h%7F*W<d}lXsdJ|Va@2jzJ0O)nxsDs{Y0G%RR#H$jtCB40gTVM9!KHY_@
      zhPWyfbeH^>2zRmp_dVHSMq1(n`V#5wkLVitfR2&$cB1qN9lvmIX$$v%OV-559?~JX
      z9ZQtHOo}~6CteWwOB&=WSxBk|92TP03lUac4p~?a$ZDacr%CVHW@YGKM70uW*M99v
      YyXM<khmO#g#Pbn!KrSf5EU7&B4`p<UYybcN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/PipeImpl.class b/libjava/classpath/lib/gnu/java/nio/PipeImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0459a1235cd53148ddd9c34a40ea40faf96ed30
      GIT binary patch
      literal 1072
      zcwUuL%Wl&^6g@Xd<HooxO=(Jb7U;uH0E=}H3nD5-3Q(yid)Kw-fNNWJQt?B;f=!W-
      zKrHwGJ_>O>2~kO16l7`UzRsC*=Z=5=`u+pJBRnur60E+ChVC2h#B(DRyL&1Ly2nXq
      zpdx5Y!v2vLMM0S9yr7b)=&fL<SBTx*XSOp!<bGRF&EjF|6X{$8(fKLRV-=~v6G6-F
      zomY}2%H0pbz#qivUK*dM!ys)teS!JxogX9v6-SwY1;L8O654$^$*_e^d>EK0<FbVs
      zmIY<o>6=)=s(~v6{Ux*iJQr%Afi)s?Rf4B>aVzcr(Yn-AQSf4Td=R9syn~PzRPV*U
      z7xukW<^DKW862rhuy(<Tg85|3Dwz4M1lzV#P@L1A9bvl$!G?u7RLTAi$k`EU&^-$V
      z<~fm3YFFjGEc}uEFy|3iUDl_a(95!b1GD+8W_%)o<#RCuEy31I&yu%46~P8Ym-%m$
      z__1AWu><a9W@<3$U!qr`XJL`nuC4{l=2t8=Ti;OstWj6FE^4m#to}gkN37FpjH+=B
      z*8y$az)i9V&%4Dn=XA9X%r(E@_UVMKs)L_2jWsG5(+EZ0DFEM{2A>vyOW4%w7Ph(9
      PY3(rYu(HYhKGuH&?I8u)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/SelectionKeyImpl.class b/libjava/classpath/lib/gnu/java/nio/SelectionKeyImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9070f668d088c5e46672755be9715b635a2a2b3
      GIT binary patch
      literal 1511
      zcwUWETTc@~6#k}^wzMmkTB?8urChcbsW+kqHPH%5rQidk5g#<mb^=S5ZL_;2^5*aG
      z5BS1^CIX2jlF&DQl<~~$QW^?`hweE$bIx};Gu^-ce*FRP0CQmk7)Cd(Mqyjq)e4qT
      zE39&p>#k9=miS(2r*4K3WXQI*^)1b^xaky}x>0zw;kdS@yX`#;5u0n(y?1qoft46y
      zhUIdbJFZ*_8idI(Qoew+W(&f3hJe1sFjej(_3E?@lNY@uDh@q2EW>@tP*ktgaRqax
      zLIR7mDvzQI{R$KeFm$PzN)H%rDu^N`vOxtA^f2_54U4Zdb~d=ZCKwpv<(jUU70oup
      zyT2H8w+wPVb`kN}oXJVpSIsb^X0GK$sw+iF(_IB)7$*$Fsc5EAl{+88m>{rDq@rf&
      z+%$QW$QM5Aye@=9kwU-lH>IE(A%?VCx?F~*Tqvm3ohUNMg^^_#x^%h<^0>#KIC4!=
      z(^Ljdoi<#<q<VK=C@3fh3k4C!2Oxu2jHG6hj@Tx5S2Wky<%@3^qN}xrt@A}goWS7u
      zVb2PrV2YT!=#LOYKp3VhAZRJZ#Q{_77e`JpLX`?`(6g7`)~QbP^<|Ifmpec_n?FF}
      zhXhE<_8>jy==p?To>J2@+@h6nuMM{`1jtOlGnom(0Oi9N@o5Sa#a?&zC*t2*;32vA
      zLINsYfe)CX?2g~OD8Yb4_7J0A5&MnQ`VrE{gf+R}!s?ZRUX$x0NmyvZOtfK6`<NB#
      z3Q$a*#~eApWcEy<Xa6msE)nW7VXa8yq}ScDpTvxGL$|i2d&lQUcj`_YLR~MPP&S)u
      z?&q4vR5&DVJ;Y=uWb_0iNi?uZuxlisLRIf+x6)=W?TZl9r}n=1$EsdJy?i2!&gPrn
      z5Xv`?$*|xbCoF+CC8NhbEHBYV!u~}38dd4IOK}>!Z4hc}5Nc}>_vx$LdHRX-r@!5K
      R`t+54NK+J+9?9y*{{ijaC8z)Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/SelectorImpl.class b/libjava/classpath/lib/gnu/java/nio/SelectorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e0b5dafdc0ee77eb08ee4f5702700daa5b0a580
      GIT binary patch
      literal 5965
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/SelectorProviderImpl.class b/libjava/classpath/lib/gnu/java/nio/SelectorProviderImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa0ff84414106e8bb83b5b27e0105d9bcbe49d84
      GIT binary patch
      literal 1290
      zcwU8)UvJYe6vdC%v{^%8Y-JlQu&rx1nhsX+=LHpk&=}H01w)-C@#tpOW=NALNh>}U
      zJRyO^2jD{?u9GdIsa5jedmSJD&avg+e}4P|@Cf@R78n}m-njdTPk7gpes>^T;lzG;
      z9QqS^Cc>jp;F>TPb~A}{!97p7Q8x<YjGm$NTzWEo!BA-1rwqn{e<myxP_Cee62nqo
      zdg9%9G!)?pAG(5JrSCi3J>{WP^UI$`d?6!-X8*tOdJI)R5Z-GZ^Yf684$^!KJ8io^
      zn>r_>-PYk3M+C9-y~xB0(UMKH=jeU5V&WFV)>M`pNJX(w#hN<jI>TODW3Ichp1P(*
      zb%J9V(8=rC*lMk3;ts>=R0{P!wXS20p`tif4h$VFOQm=<jN*_x@s*a?TMRYrZKwQA
      z#a~bP;Y5T3-}x-!?6z&Kl}1WVI}ELy(~K-NZ7I{`#B|!Oskh4+br?3Ljb<%uWnm5c
      zap;IQQoX&J?wRc?1{$D;4fU0%D<-2!vnNy;)ney67Qa!m0E<S8D)1Nvp5hvHl~hFa
      zI#q@nSR%zu>J6GLU!n?$s{9kxkAz$On&C>x!n1!+<qUNjwRxzzLfy@yUTRVIurUv{
      osZfnP>QIZ?MspsjrBJ(h)LSj;KHBq8wnFXYQ6IFZ2Z`$8U$&+mh5!Hn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/ServerSocketChannelImpl.class b/libjava/classpath/lib/gnu/java/nio/ServerSocketChannelImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6188d794caf24f94f3e11d5dbbc573dbbbb3fefd
      GIT binary patch
      literal 2266
      zcwUWEZBr9h6n-vQSP08oC<sE87StpNDfZ10ij_ATjDZ#mf^Bt^T;kPbH?!FwbvpKU
      z*gxQxexNfo%+#6E&;3!Io_lu<385V(Guiuc&U4Oro^#LN|NQYMfEg5Zv@lE*?MmXQ
      zxo;+H;UqS=yU*PXC;yCli%(43=2mL2Wa-ctuGFmZ{!RHTa|WYacgk=n-4G#@TC4X;
      zGIZn}a?E?Yz`%AG+UA5Uym^MnXu3IMxg;p8MfQ%n?mGLTz};jl%Me~Z$n%mX9J{Qe
      zi=kinl51+McEg}8It3m^2)zb65Y`c482!Hl!|20%(sqC$7EParElQ^Y3>OTvqAg6T
      zVFMR2!q7*R?uuf?<qH-$3A@M;jqb$GDAO;|%vn4DCZc-M!seOEUXHt)@`fRjcJii`
      zHC-Y1!J+0o5oLy}=gXC$y%f+$$()yPhR!1QGNvc?`N|SQC>l#irmh&ciffb@-L6}v
      zu>F8C62n+DR+kg^5~nPZVZ<=0Bi<lMvz>ttF;0E6D{RveFJ$5rUvZu=prc)KK4ahp
      zrWjiDmQ&_BK6%#>mT4Cgbsce05agmXYT{g0G{Z2UESja$NV=@FnKh8aoa%gU!`T#j
      z+^Kl-J|!EoJy-K+GxIVo!+7*e(d*So$|`OfSimAVit<{C+p5qV9m^zDv%4yy5V+SW
      z3}Xp*WCKshR8t04C7>?K3r@u@=txtmG-G8PZ<~9{qz>sW?#Qgx46G||bG#^QsoJ*&
      zHgJ=uA_h`+kOF1wn!aNn?i-i~vC&_voP-T#fQ|<YgH5k6cz;{iG4K$#=!q9=?8r2}
      zH}HcD8sf5!#|)QG0S8LdiA}SHwB%~mw3UMiHPk$z-p!`rhHM+>R(QjyxOu)J<f9w?
      zkM}h#y=mA|mNax*=tna_t*B4wOOsX3A=-D+P9r-5-L!f@>lXSB#V3!@6Mu`o?f4P;
      z-(WDVRWY>no5C2S{|H$EvxJ)@n&)r<U*df_8T9>e36}x28p8*K&*bZ&e;MUdwFf%m
      zzhkh9i7KMM)_~j8)olf4_+|kZ!*xsr5Saj?mmsEJ5mFT&y@o~!Qj?KKH$HAibcIe=
      z=`@WVYN8YD-T+&pq^6qaxJ4(@sw*CPgK0n8&rUe#R_tyP2lvS#TL;@!gZ&&gn_yR!
      zB9xj$9C-yj^ct<bH>&vJ1UsxOc8J@Db-YGuyhe!cc16OxO0yvXn^1}aFNv40enID3
      zENvfQ<=8LbYjtv$PVOCt=Ex)y2tgWu<1aV=!qz=)?s^s5vs!Q)lD8vOd^fBeZk;}3
      zhndqyQ^&;5IF_la9;xp$$PU|9U%$#M2I&70iSw9*$zd3I>K0Dc0@v`AW~oheI#gka
      z{0~UFABpP{p}2%|fCB9WJVJa9i}ufH{}Wy)#>SL7F9XKLiAPg0CV9(I94T#%5d4Np
      Y1P#?Ht2jhsH~w5FZELL?xw6{*7d9OD<^TWy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/ServerSocketChannelSelectionKey.class b/libjava/classpath/lib/gnu/java/nio/ServerSocketChannelSelectionKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aabae1ea38ffde1b4bd7241a947af4876105e224
      GIT binary patch
      literal 826
      zcwUu~NlU{(6vzLsTWlKlefLnIRcWZ8mx>@2p&05R;(ZziJDMgXNeg}_FM=p|5YK)n
      zaV8BFL|o=D^VZ*c^LTIX&o2O~Sl5su>|A+0^P2UU=?UModC=#9?K?L-s<)Zvao6T9
      zcOv0?r~Fn!hOqi2<I~;fbX`L3KzJfLB%GD3VVE<3g=W|l=20t*0_H@6T-I`VQmbZt
      z!}bHkt(7kbnYw?;b)=CukcCdDe^=t)*l|mEyxHrtcyO-L2ve5tF!zE5Lg|Sy6SYN1
      zsC=dUII<c+OFAP||2+`GNSL%sSpMN3gu)e%nk*81esWAmm&%Pi2y+JJu|P;UZNlcC
      zrlnztQ2gzas;Z7ftQeTa3_-X3Uf}Q(p+;5wWhxa#mOCi>ggPlHWs#G&CbfpND!aC|
      zz4L^T`#7K=Z(Y7>b#vH-A*GE$7)CJ`V>FCoLPC@@iK!SXn@g~J@>RaV)&pi=vG|DP
      VyCFIkyY^$OF$hbra^vHuwGY(<+yejr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/SocketChannelImpl.class b/libjava/classpath/lib/gnu/java/nio/SocketChannelImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26c94fce0929ae7cee4d4e7baabeb2b464141958
      GIT binary patch
      literal 5935
      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
      GcmD?+AApwt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/SocketChannelSelectionKey.class b/libjava/classpath/lib/gnu/java/nio/SocketChannelSelectionKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..455861650c8ad0b68a71a5989397abacbc34e133
      GIT binary patch
      literal 1027
      zcwUv0-%k@k5XZk$O0OJeksnqNDD?+;ZHX6rP?H)HQ$x~tDa0Dyujhs?9(Uw!OTz!;
      zi;1a;4~A#|DC6wi1;rEs_pm#=JKxXD&fNa`{o^Nq9c&vY5Vj7(k#ppodQK=Kryu#B
      zh3X8wFcd*w1j1J`3g3$}14Y96W#4~}yT>O1q4ZjYQoSMU+3tm#pTQC*Ig!rWL84;M
      zSDDru1R{^sb|<i-SaaKr146MAeG(?7Fk@jFCZRJa#I3P&t_($QbUYC8M=c{PxRLJ#
      z2VN}oI^Qg+p-c$2d$VG-2}Yh1VdvJRAe56lQNrpqHz3R&3f1$JJQcg|2vc^WI|D-1
      z!hI|g3jUC=d80ZRctEIKeLWq|#0u6dtfR)QPSR7tqTR>?2$f41R_7!x!Ft`j?9jvp
      z9$9#dCtPdJen0SJm>p$5QJsN*r40Sgqitdfwt=UFwd?#WEMkeU>`u;ui)Z$uQS6Id
      zsassTvYXGenBNQ67y2u(HH{LF2CurjtM`p&Yx_IOUsH!!9!;M0Gb`aaEVk;I8}6Wz
      zVhqgTE<?06kA)P=8Rys!JZpWm`3?8Zu`<T$IX2wZ7!SwT{BjYcl2TtX^#$9n(n!@z
      RnMbOi%q?p$kI+nYtv_3N55xcf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/SocketChannelSelectionKeyImpl.class b/libjava/classpath/lib/gnu/java/nio/SocketChannelSelectionKeyImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..648378a0d1901afd28161cddb906898fee685df6
      GIT binary patch
      literal 843
      zcwU8)O;5r=5Qg6Yq*{s}_^p7b7eFKN;6X7S#F!WxW5jT;bt9{#HCRmiPhL#?NIduh
      z{87f)wlPYy9y*=vyz}hr+kO9deFLzLWeo{J^}_AdF0EUu=1Q;D^z19)H`<o#3a2R?
      zVf)f^55?U<=i1SbA{2h=`y_;f-6oXGzo|-AC#1KfEBzh9PWeBv`OB7GHz-wFgjB;j
      z7dn#27|>u48fEiKZHJtjsLeWaM1+pV4uLRiU;t^th$&rh)a#sy?x_M0a;9fnPRr^_
      zwT?cf{I<Lyti~Lt-!AqcB?H^$W2PZwE`)z%`SMom?-7#a%7Km<%xRb<6yx19FpoS>
      z%!Fgdl5Qvn|5d46`L?a_Yki8kjv`7L76|z`oq<VA5%i|l>)K*pDmRv555A^QSY(rv
      zd>4rycA8^?a}9$Whj?|uRaG~tE2}Tit1C~)J_M=}j>AE1ll!)iK^>#KDusHCAqNDR
      s;!==}V<O=5tPy{M->R0WJ|g>!>1Pz~zwlw(Zh$pHS%f7XT&b2m0b$nGoB#j-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/VMChannel.class b/libjava/classpath/lib/gnu/java/nio/VMChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ee7d1cf8f04e2718cc948bedbd98aa8703b21e6
      GIT binary patch
      literal 2528
      zcwUWGVRI8j7=E@5O*oGNtsvO6Mge<CwGkBrQwpRdcp92&Fxnu><+4eS9+ysTgZRZi
      zq2n*`gCB54XP|XttbX=KIljAhlbSS#*O}|?zWeU;KF_=FyOY2F`F#(-c{Gw3V>sFN
      zdind-Lo4q&oqX-q%BJOc+)X0Ea7@`<%WLN=jr-gd3}dY(12Y*?OSbEHj#y?GH?lQ`
      z#7d{hH88xOLr01sDYwm4pW$fP@%UQrL4$X1TMd^pOqDyf<<_jOBiEsEVkrbn7-qJn
      zVH{IBjv{rKKws2x2otm=HXTAdRUS>dz@WFe=&u<r8UJzRBERlhj#us2TU?kAw%tND
      z3Q5DuNGCDFkbWM3j#<o+Xo|XK3Fjd%t*VTeG8Gxg{}?Irl|RGW^T{x*7=wJ)ooz0+
      z&Q?3UuFXSo|Hu5CWd1tCd`v9GP}&%>vEwsbk0k4OTQR9FNUCozoQs7-1>lo~l*NpE
      zkfa^#`uURM#?9w>N%HMsl2J%RvgOEvo{t%s%E#xT=u#m#UYp^NVb)bk8FkqQ43~9W
      zz(s1hM&F0kX}`-YYRA)tS?&iZej|9X*J|-@Axmwl-FRg4ZQ*o0KZ$D$)5?+j%u0WU
      z+R2Cjkil1UEa3_jb<?K`J~7ghVN!Cb+LjQ!s|cnI^Ug?L)69OzFk?jTCP5Bo_8%Y9
      zYw|~xo~X2nou1e9`^-})Gt72cElOWzA>(qdEjBaD8Di=$1}hCF)?^!2h<hkgfmVg&
      zSqKvRv5pdMQby%TdK5=<qc#a*(Ih~pyZXB82=(rLuA`>%<ace#hqB+a#HPwe3SW$5
      zO1}F{8NSp}S3IPhZZGJ%lB%Z3enl=ya(I>e$LS@f*HpfZG&_zIlJqegrj>!<FYz0+
      zUuhh}5&Eyu2;8NUmocfV@}pNOJXNBVv}w6r9M8=>#q|E!Nfqx361Ymf*VOrwfj3Uj
      z3~DC1NUWD|D#W}<=NOIpGq8=^4o>glm0$X(6KZc&q3MAiX?u-EiE$<Z<Ln3wa{yyr
      zWk6zNBQSC!FxCbz-o#>vk&nQ5YXnAh0OK9JOP9oC2SeW01-utx6$vZIb?ynKXLfLD
      z_@1`N&yC3Q`zT0Q*_?#8Otu7#SLs{Ab@JY~$XLq*u@-hvd_2VZ+lV-;xS`@ugABzf
      z;e!KlJi7k`jdSVQdkcF%;>a_Y8&e<c;?|!*<n-(g)_=xeO?^jI`#sh14~j!BK<IOr
      z!zYwere?Q^?U<T<O0#h?)(+^e#nJ!Su>PMS^lyav>j(7LW9z>&sQ>P;{y#|n9_jxp
      TLjPBh`Zf7u3$m{6DNO5M`=SLz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/VMChannelOwner.class b/libjava/classpath/lib/gnu/java/nio/VMChannelOwner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4dbde81e2db2ffb4e2d76f8aed69f83652e4d50
      GIT binary patch
      literal 174
      zcwRg8Z`VEs1_nb0PId++Mh5Bhyi)zF#Ii*Fyv%(4Fkk14#Js%J9RKpX)FO5U7DfgE
      zuw+hRUb?=2QdVkm2_pkfdTI$=B_o5BhNcg8Q>+;oxPtRbi;`2_GILTH8H7>I*8}Nb
      bV_;xpU}gXTMxb@93~V4413QppV&DJ(nx`!W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/VMPipe.class b/libjava/classpath/lib/gnu/java/nio/VMPipe.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19ccc2586627dec59df54556a383d13ff082d6f0
      GIT binary patch
      literal 401
      zcwTK!O-}+b5PgMp7Z(%+`48y9s#lB$jV2_kkYM)ST^cAU?PfoSf6J4J2Y-M+$~avN
      ziHS{Srt{vL%$u+8k52$s7zSuC43?(iYq1sFD9hugnaX4UkD*tCT9_rDCTp3N4E~KW
      zs=Q@rj?Q8R@7^wCh$ap@IDpU4jg*nk)h3boi%7I&=tnjcIu^Nd{V(X1D^)NIqkmS9
      ziFQjE?nZxk$4)kx9!Gm9T?u2PE_jhCK9`zI+I*JVty;)@>@0>4uc^#RWla&FPuJG7
      zG&-5?8B)z{m8bGiId|=ykqf89CFoeV*Px&ysSoJKsWOM0zoYe5(;;QQ2Cvbk+}R1J
      V9s#U{V{{4W5#~`np%~P2r$4^GTv`AC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/VMSelector.class b/libjava/classpath/lib/gnu/java/nio/VMSelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c022f8f92beca6fcd3ae6a8a0871bc4083005247
      GIT binary patch
      literal 359
      zcwTi+O;5ux41M0Zc9cQK215LU4J0bgATHC8iV8an^};DF(a2O1)DOhp;)KM3AHa`7
      zI03<lSn;#pvt#Gu^X(nL3HAbX2>UDD#%u8;Vy#S^T`grPi^fy|Ji^ckrO>N*k*}F2
      z_-9J1=A6)-Of!NvGj}pX7aIfg;1i-$X?fi~<g&UEc_|5_)D)u3M5S#0Lwe1<stE__
      zKjTk%Qte_wIJr%%T}~5D=Ff$EY?RS;fDvKrnz=Vw{3=|vG;LML3uR|Tf6pG<YW_Q~
      z4|_Ts@!ISI&SFMl>>a+M|KjA3z3<2)Y_cDG7cg!C)W<d=W`@jpj5~bCu5b4Xm$yuW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/channels/FileChannelImpl.class b/libjava/classpath/lib/gnu/java/nio/channels/FileChannelImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..817ba710b1ec2e9c38ca38dc324dfb42f65d2a87
      GIT binary patch
      literal 7914
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb1dcbc58c82e7acb6d1e62020376200c9c2a849
      GIT binary patch
      literal 1300
      zcwU86TT|0O6#ljigvOOiv53e`1Wa3`s0eDYY6I0`2WC*qC{Ljc5GhF~X&4=6{2@H~
      z<|{H-XMFJ4@joe^4Fx)5r4PH=%lR(n>}h}f`ThgIEj*VIU{E(LFY#92)f1L!Ckk7-
      z;~JGj`hCUFj@P5}M!_x`jtq%m=%2`1R4s_1wPf4dUYQ}VrqOQBw9HD1VNA_66G}$&
      z43b7P3WB)6A%l~mn){z-GLwns6||#MMhC-iGXah+gc;g5jY`fp`BGmm8KkL3*R&8A
      zE^)M=m7ybNTE>#Mvu-%GkZ{f}=%u{wm|}l|t8AGrL#%0LCnZc$RSJX{X^NmorRamm
      zDHU_Et_mV7?QLuj-`SzS)efT#3MSN74A(1Fk_rYfEMthFy8$J~HH<I>sYW!b(X@h5
      zjLR6S4?h#*xB-=cZ|Uxev7^&tTbn-ajgX0P#4*9pR<>QUV%nB}l@(W$;wnKUSF?3~
      zYZ-*7JMYN2&Cq{dDjd_eOYF<}g_TThd6i-C{M3WM(QlE^J&yZ$KyJz&rP-@$(T0^2
      zM#qJjha4#(6?(Naf1(vIDV<2eXCY!+5JwuaGO%?TX&MC@^ea(b*q&1`GN$ON&bl_3
      z6nH9c*0KyoE9tIlQ2WTWcES|(EagOVKr}9`0yJc_(MgC_IY|CVXDrV7Hz=`q6&Jsv
      z`->kLp}F117YSpa0~_d}UC%KFm(dIOt1IXuMhREZUt>NbTnl~EpD|0M1F4BBuJ0in
      zr%hBUR&jIn08{(1Lv#;x;ppS^>lrCL^9jL;h*ZVwDupHYj(#3sZvWKFxX-*z%sZ4p
      znfy4U>(U$SQl{@POLr-J@I6i+tDkyI;}IT{H?ev`BR~uZXqYFqI5-xN@oVwaS9^vm
      NeHDtQe*-L{?=Mm9Hn0Ey
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d434b32509292f91e165644b0eb2010074d9b3d1
      GIT binary patch
      literal 2042
      zcwU87?@wE06n@_JcBS0~HfRxnZXIK;KM=NoI9I@pLMO9;0xJ%j<I>$hwcKKV82!E&
      zKWLmWM%Tm-5R+zx4@hPmMlnV|82<;eZ~hmG&wE?C8jF0m_rCARIp=xKbIxgh|NHx0
      z0Ot|6!y@2YHgdghYVT;hMk3W4U(wPTJ=;6-URDp6&Rt_hJat=7+o1@Y{EuhZtL!9j
      zB$-ORm0J_AER66rm@pFAVSzKg=wU!1e@s9LGmR5g993b5N<?4uAk0uC;*UAefMa$v
      z3V06#P;neh0u9T0HfoZb)s~VvF@64puoc+*%K-tm3LB0HG)5DKKABrx($i(Xrf4dz
      zC1YATA@BRa*_A{_AaH1T`#OdwO`H*(heps-Evb1cTLQBzgaxdt+PeZ`oKJ#JT)+|6
      zj8b-4OxQn9GabbeA2y-AEMZbJmQC$u^tW@m5!XZh`J?b7Xh%SxrM8cXZam9IN`6<e
      zGXJ<g?4(Y;Dmrmm#-CSl0e!Ody0M&HAw!>^>{<^(6>#b%TXunia;>Vv(r+Yp=MH6h
      zVw94Ujs6<LAVr<lGr43o<itf>vf~AT<{BwggfK{U?7zv8Wenr89WPe9KLJy51yoO6
      z(K6Hes>VS!md&_%2{Wo<Ocq_YmdYfuiIgFYSEcbK0T)H8;$PzKz%@kecv+z1|B6sC
      zfl20_ij7T2qEmAMCk`um7_X>!71Lz5mSb(Lz7c;-`JALMtKvGiY0WufRa;w=gB3}o
      zqvh6}`WN$qG`=irxuIfSGId;^9NnjCNf_Lqn*AiXlqBb_$&52Glgg#zdL$tS{aDo+
      z^hkg9VcanEbU3MHGCJ4CUS21h<1BJ{`L@W#<w@aVM;$E=nwxl+RwEEp)$ia87EwQ8
      z9kvcA1$evNO8<b(ZS#DEMz^i0c>{HBTLFq^_^u+{O84&i-s6BrS^S~yTe!@S&i#=4
      zaFrtJ0}tiVt$Z?D3Hsw3B3jVG_a**70q>L12T<`LZy&*hkI{yE=;8SyKINc&hO79T
      zo&N$ikVl;NReXu37&*;K$R4eD8Zb|7XlHFIme2tYQ5vv_6F5l~j^ix6JSp^X;S^6c
      zjB-Ouwh8hn*@Rr(l0M90G4=Dd%Q|*9pvrH1A62jpb>!h_zYm*rQ`xLk<m4AvC&Grw
      z&|8YHF!U0oi`iY|cm~hVTjHH9<E7~>{kyC~1+)Z$9Xs$@P()8&!rZlpj^GZ?39Rq^
      zS%uj`)<A*p2WZCEaP!=W%_{t^3Vs)>?>FbcYgTSy?ayJLjQ^P4GM83BjI;3kaCZ?y
      zc{Bxi2`jgYh|Fzce9Kd<hR0N6KyfR1*gbjFa|nu<nk%5WDolBVnJr%D@_P@q@!D2}
      z`~?aDY!mn)n^{C79+Bb>oAx96@Dm2{Ga~qfEBq^B^t*}Q%)<IhL@R}9SitKnL!NHp
      h4Q8*yq}fs{^PD!tR%pFtA}`WQHj94(9FZlo{R1>v%YXm?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abbfcc29ec550d30de781daa977d4201d8a23785
      GIT binary patch
      literal 1313
      zcwUW@?N8HC6vm%B3T0)$1f4oTCoj5nKt+7bjEPiCrpqvykO&{lrQVEUxiwv<@n7+~
      z-}s=3kwg;{zxqG<a&A}0vdzGUwx{Pl_jjJ2bNlo6*Y5z9aaTuzAy=18YmdL-mUMl~
      z+2uh)gx2c2P}r?lhsJQOM-i_wjCj8Ps`>gE-|+-PV%uiWs_WG?21eni?aM~UWw^<`
      zrWgSJ{9+io=Snxc&ydeoBCyA0-KvFwE9<50-c(_en702?7#P5K3L{7{j8|MKs?Gf!
      z5yZ78D!#+LO&+-FJx*%juG?UksT}v6B{J)9=}VU&RlXkqd#o_%+;e$D5OcDRRfb{5
      zmmzm038v%E>(jSVVN1salJvE;QG4;AW|zwbrg2HfMTYcIrS+XX;e;vVaG9#rMQD4x
      zq3q-f9e$!D*-1FGl>NUChA~1^I%lZm3)^-Q3|CVa#1Mla#oLF%p#cO8v;WHUp~a$-
      zjv@{BxQ@@oaswt7)l`=l=JUr7N*xDfX-%HMQY<1%*H2<8mK*ecEK-%4-wYh_$W?7g
      zcj%TBgdtUyQUp<})q&94P10kImZLV(sYe2u>Lo=}&@oKeWRx{13w59=GfGjJ)Jm_L
      z#f3wReTqbBx*PNaRtaI_6h*m~3=^0HqUbcv5JW{8oFz5=wKyMRAJe<qpDF%8_C3<Y
      zFPJjv`hdZK1MQ$)Whf#%i7I4TJK7a8n89qcK8N|3Ytd6>2F=g7^05o^G{U4>f*3<H
      zKq20|LZ6`4lHXuHHxIGU4cO=aB-;QB*LnfV3b4`**y;mF;6`-6iCgrXpva{4+sM+$
      I8SWta7ak`f{Qv*}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85f73b42322af3d29e97c1106f0539c7ebbb2d5e
      GIT binary patch
      literal 2396
      zcwTkZ2Xs?a9LMqBYjV@l7W)5}y+IrWfiemdT4vc4P$9*LifM@@P}*8r6j5-1TSOd)
      zdoNt5hy!rp9w?wFxJ3o`-s|_z#p5}Sp7i_4d&#@+-Q=Bf^X%^rZUoR99nz5&piO0U
      zL;mde{CIwKvL?S`R=jRrqCUT*wxCZzI>G@u{paf=7Stz7{PO^js+yWP4YdK%rk4cB
      zD6XhVRwwI+1PJAIEejAXshODw0e}3~2m!LQ;SdRsQ<|(!Olp{0o~WA|FRw}j$Stj@
      zh*y=x>yoy;cW0zHHC6^RfZKajO#?{kimKw(mHAWZ>yp)#nFyhIHgeD+Kwe(yKVL4I
      z{_kB~%j|kuWuvuSPnMs=-qVKbXC>zaXjl6GpH5ML%qcYubrp%xNjoGnwYR6e8J#&W
      zXUw*-+45N$GLX*y0F8k3g$Q#WB3n7D^)40;M`O-KW06QSmae!w8q1JI(U?ROr;&77
      z%w{N7l17SiNv2{M$&xHKTe8{4(wJ=`P1qdCVfn|ZD4Q#}Y*T5<Hd9<dnk$x)7LviX
      zRGdy)Nh`Lsv}W5VR*<%e^GG{s$F`UDYzOJUc9f26C&fvmv*Kj3kKz>4MR6+GSFwcb
      zCz<U2(vm$u+Om0yGe}p(nWUTIEOMaYY|>qE4(VZ6)l>M9NWP@Ay%ftyZ^ikfkF;R>
      zDlQ-eiVI0U#YLpQ;$kwu4k}b!LIx^UkwJ<}Ns;0*QY_8b!P1-^qPUU_l{V}!>BJ6K
      z_YxVQ?qyP<ZVMTyZYvq3ZW|e`?iDgd-K%7*y6t3~y4T2f#kFLD^khq=n4Ktj>?Apm
      zoh&D?2g&~I!RlTohp5{@rl{LVrmA~`MAf}X%GA9@rm1_I9IEae5>xjsIZQgU(`8@w
      zaOuV#Azj%crHGxOxQ!eoJ=nP9v*qgEBNgi2Co|RUA_;XLkfYUoNGjERL}sbmO_J*N
      zklBhG$sFm<R>^+sT$#aE%Mi9khO)J}_GKTV?qgDy+L)JWz2a)pklL7^>anRFr=9H1
      zSRhBS$IBpgp>$zSkYVhJasazX2D6K0pJ<FXoE^s-PU6NXQf{0o6~+>oX)Kk5ahe=$
      zoGz8d88XW_Q<BD6iq+=XiigZ|{HW)8mU+%otTC4>?lRAp*~SW)V_YCr#)UH1xJasv
      zi>1a`DYeEWa*VM`>WoYMsF!&z_gta4-@MXqUZuF+yjro=yhauo*UCKOI;l6Vmj>eo
      znQz=E#~L@uamLNEz_>+@H*WQ#uJ+vKx!rSz=T1H|?~)^pH9U)XH^(>cQLHoX<(TGL
      zp2@tA4|APjy?MW4gZY4BqxqmrHy)BBjP*Q^xq%mGZsdUG!;0<ZBeKwVRE8Um$q3_d
      zDKR$5NaG0^WjraPji+Rc@wALJo{@3Jvz(jxoS)hAo)<hXdNzArk`s-WWxTOPCKy|#
      z)Yv8yjaOun@v2NVw#z}rYjUvhx*THc;C#)Ue$Y2OZ+hPHyzO~M4maLa{9wK(Q;hdz
      zs<BI=#s^Ynd??e5kK|Bex5SJ+a+vWkzZvrrKkBER&pe-dzVLi0y^OD<xAC>~F}{($
      z#<x;nd?)>k@1?)-gA6c!ltSYt8EE{>TfqFq5BjU;H_z{$KX~6p??Kj@)MD3|U4|}f
      zK9{{-=+568GtdVs&=;FffS=GW=z;!0IR*qPQ5d|4f&48pD6J4hX>(AVb`1unZNrdI
      z1VclG7#6C<@X%_E2<<{ixC2Ipr(slhIYx&!V~lHzv2GN`xkVW7?!yH41xh1%m>7v;
      zQe+h-M>eBpWDD}pBz0xBDChjO5Mv~l>44^T%azau<gP=rZg(SVEn5CPk0z<5d@3?g
      W2F0}0INAOvF7ItqBeqMuyZxVtr86)9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6799af3e1ea9c1e6595197c78d939f419b32d4e8
      GIT binary patch
      literal 2429
      zcwTkZ2UJvN8piSG&Yc+$5#JXZDjFR85->(ASP-mOP_e?Gh;6_TMiC5xku;Ot6jL^v
      zvYWU)Wz(za7)`R9UbbX6$!4?Z)%0FSf8MKma?Wl7hu?qZ-nn<ad*|bP^YAx&?gTIf
      zL(&lPFsQMmqiADdTcW5X)mqfhlxW+UY%eO`Qao;A8p0m(esKTH&h}*afyW-A&8@AQ
      zI<|NS)s=flFKcK{wWQjodhiPhYdnO@Th}Lhz(dbWL=g4RyE4_1T-33-KG{~CsBcbs
      z$gXT{NHo_Z+EVuX;KpcKaGG?8hsePJWqXidFwKdU#-ghBwp2@F27L6*L>BsaC@84>
      z-`%Bk|G%lQ#>O)s6FD}Xo(IN%@NL8GO{uLOaw~uQ#*})<sA}zKYe>#X*&!Lh)=~Ci
      z4C9G?-e2BXyIMX9AsuP_^UwoGy9i-!L$q5x?2Xih!|~ckBwibh#%t5k;<f4N@mh%r
      zpGlhVxulD2=^;I6hGfv5(vxONChaA?XqIHr-qM@$hpH&emTcNb`p~}8m-dr>w7>MH
      z17rZrksLZu2GT(?hz^#)G*@!z5E(*;%20ZU976LXj}DVzG$t{cFZp!145v;UJyZ^*
      zhsj~IKniG~6w(ngf*vl1(~&Zg9wA52Q8J1aNf8|_qv;qKL&wTkI!?yXVkxHMWjviA
      z6X-;lNGHi8S|TNMvP`C>QcBCDj82g$bgE3H(_|W*F4O4@nL%gDOj<7Gbe7Dbvt>4&
      zBXj6nnM*6Ag3gn9biT}|3uFPUluEi#7Sctsh%T1JbcrmXOJyltCd+7*RMBdwrg4eW
      z8mXbnWjS3TD=2^IN?A$kq>iqVRdltirfXykT`OzpI$1{(lA!fcPaC9xu9x*RDM`9P
      zHqb_Cq)pO9Q<9<^Wh31rn`pB%)6KG(wnz(Yl~%e%w$LNxNZKZCbgOKo?b1#=q=Rmg
      zZS*KPif)(fv{O3i(Q-6BMvkG!%CYn~IgTDL$I~6MBVMaGLGgg~M8#LupD5n2{#5aj
      z^(4hB){_-4SWi*BYCTo)x^<`GP3vijx2&ft_FK<Tyk|XA@vik}inpz2DekrYTydZE
      zY{f&?a}=*x&sE%SJx}qm^%sgyt-n-!Xgy!?rS$?uw{@4|TkEeBPg;Mic*go0#l_a&
      zDlW19PI0OA_nLRP^$+TuYrRnMqV*!hJJyR8A6YL^d|~~g;sfiYipQ*%DXy|!uGnL}
      zLUEV%O3fGRRf=n@S1a~euTku^Udy+zUdLV5>lJrcZ%}uRb+@`;JU6O4&w7)(ko9JD
      z!>zZdOIUAJS8u&dU5)j2b#ZH#x(4eWbxW;xs9SE`t8TS*pSo4nJJr=$?@||x_ilB4
      zt$$KiZ2hykk=A?E<y!Am2kU+6%B=URTVs7d-CFB|>Q-7GQdez#SY68ch`J5dN7b#f
      z{zcsq>tEG1TmPo6(fW6FP1eWMt+)O|UDEnbb+y*V)vd5Tp>CP=Np)4$f2rGKeM;R%
      z>%Z0ISf5sxY5kA7oz`d6on(Dh-I><s)SYd8Ufl`S7u4TveUY22FR35g|CiOj+xm+7
      z!Tfnu{d=sh@uRT5u6{6&_p5)I^$qoRS>IIuO6yzd-)wzbV?(X)s2|MhchwJ$e@|nD
      z*7r3Qe6AmG3RpkXSaAIxX)L%OA8US|^%Kn>X8lz0ne{V`Raigg6tZ?}Y@qcEP7Ujq
      z8XIK&O7nvM^RGFztly}+(E2T>e*7k6><*U1OnMgbX%QF4(J0^-k`)+>ofwDPQH=c<
      z@8w{ESAmJ%c1-fFK#BJhCWq2d8k&T%P!pzvc42DhK}-vEW4d308Ga{b`dujZyD=+V
      zg4y9t%n5g4Znzs2krK>{bYgy_3kxFMsEn3iVYCyAqFq=V{RE?;pK}Dgf|1$Mo%P@4
      z8nd{Vdu;ZI?B4!9=xyjT;znfLg8tuMM^>=lS0e*8P%ID5lX>7M4CL1UJLBNs)w$mR
      Dx-dlW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dc1a6402f1f851993a2f893a9b977fae3847df4
      GIT binary patch
      literal 2429
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d571c10661acd7c7c07287c440fdde89d477244b
      GIT binary patch
      literal 2429
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7196ca2de2d37b2714d1c3a51288f26e8f86317c
      GIT binary patch
      literal 2429
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8373403213ec30f21d82a7acc5d7571c8393d74f
      GIT binary patch
      literal 2429
      zcwTkZ2Ut~g7{~GVy$eKy_r-;Z<vN9?;uZu^0TmTja#6%}!7E(Fdy!${YM1TQ_TGD!
      zDK@pG?VXhko0{1kVp{#)qdh%O10Fu#d(OG{fBt9iocsLmn;$2l{?s{+JWL%cqYW7g
      zLrX&$(MT+#qAFBd7p~99ugM%dAdY-YUH)@>USoYY|L|+3Ky@s(sG)|*Q<l#ZpHopC
      ziAL&knY`&eOPGB5vH9T^#MCm8{1jkHE{a6MlNuJ6hii*N<<()Pl%iNgsJbLn8?ogh
      zD+4+1F!3Zz{v#7gVG?&T)uCu*#<cp{NVGD6ywoO<lBg|HdV0}6H)ogqdsWX8n@{^h
      zO11g4JUss+yY<yqMe3N+ivIt^WHTj9i#60%gvUheBMI)>zV>G7ih;d2zc{mYw0PyA
      zc#6XxQwyTF>&b_86lhkaNByNfU$E5g50(Z3!P2<6U}=1Ouv7wqC5aO(OT5^c7SaMH
      zNCIprEn%W0!dB7>CP@-ZmSl(@sG=}MQebOo4ckZ?*jC!YcG3>Em-aAKQeg+_06R)Y
      z*hxCUG)aS<r87KAj)F(a(XfkjfnB95>?Yk{cj*p$NDt_U1CNno;IVQnOqX=nQ+mQ)
      z(hD9Z$HCsx8}^Ytu&?xm8Il3}Nk7<M`ojS-01lLaaF7gwgJm!rB17O%845Ec6J|*k
      z945nHwq(N`$$`UVILwt?I6_9ikunmFl2I^E@?gH?!vZOQqh&N4BV*uL84C-g5RQ{^
      zaJ-C%6J!D`k|H=!Cc;TF2~L*DaEeTUQ)MbVUXF*;WEw1%Vi=SlERhm8U8chsG6Uil
      z&Xk$3Ov>OanFVLdY&b{ez_~IP&XajCBq3NX<*-63;Cz`6!xDxIWC5&{N?0XTFd`AS
      zP!_^PvItg7HC!x<VN{|pCNWqeHE@Y6fwfW#>!c3WOFe9m2Dns~!V}~KxJ;J8Mrnl0
      zWjS0SE8t3530KJ~xLQ`j6XnEUsnSVG&sk4aI%qvbX^-_(rBAG<DSc)=T{&hwLpjcR
      zrqY+zHOhI`vy}E)&sLsdJx6(}^<1TItmi2=TF+N{+IoR<z<Qz5cI#T@EbBVuVb=9Z
      zKUptQ`o(&&@^I@V%DL7{m1kNnQ!cY!uJpF`3Z<RaE0yP4uTl<MuT~yqy+-LB>$S?Q
      ztk)^+vR<#W&w7K>kJcNN4p?te_E~RM_FHdJUS+*idA0R6<y7nK${nnCDBWefQ+c`d
      zF6Bh)-O6*V_h6ItUZqE@_o=hidcQjBtPiNO-uj?A9_vHu^ssJF+G2fJX{&Xka!2bX
      z<vG?Sbt<fz)p5`JBkD}IKB~@a>to6*tdA?Nv_7GZSf5m<jdhDUgREQC>1};Voiyvy
      z>X7vrb#koFD!cP~PT6bSrjC0ZwyRTYeO{f2^#yenSYK3Up7kYl-238Xb*ine;M7`Q
      zRaWb3%I<t#S5C6Nfg!AKDkodtQXXr48$(&&!BEy6%AKt5s^eaV_tbIE_xtLsvF=po
      zH0uY-<<<|Cqt=hqIm!Alc4gg#Rn||iOY5h~`PR>r3#^|j7h1nic8}*v<&br^vU}Wn
      zuxsmA%0cU1<r?ePN{6ibFa_&3%I<ag7MIrg9c~Tl_v&%C|Dc}ttv{;A{lEN4Jv*#F
      z<Ce4jqV%ivS6q7Qe%wOVX55O_1L}F#`kV3+>p|ri)<epr*5B2+&iV&#{osR?aKHOV
      zOoZoCcbI{PV?RpA7m^t?fY#7J+C+nBHx1@g8p4G%l$TK^-$q%ygNAwHDch4tIi4yS
      z?zxO|J=<u6r<q22vuKpJk@CDvl<#e(0$&!5_BGNNUlWb>HB+HKi^lmIX}rIQCit7F
      zD3C=H1C2B(&_t61KU3epe$1eiJ2QK9C;j!frUE?78BOVxlI(qqbR)Iy^#CPopmu*B
      fN0R%%FQx=4A*Jc=IEjZpMIG=pz((xkzB}zt#F8}&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17c1793bd757956ef0f1b615850db6a85c40c7d6
      GIT binary patch
      literal 2450
      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
      PIE|z{@6@BbBS!xlTjd&N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a214f8effa3688fdc0157f2239e955cd01762ee1
      GIT binary patch
      literal 2452
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8553e8d875c7bd5e3d6a68b55ab05d8c1e729dda
      GIT binary patch
      literal 2450
      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
      Zki%OUj6`t4?Bj=H7z%<@4-bwQ@o!+fNLv5^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..634255c87ef56ca393050f3bd0cc54ff48b5e53d
      GIT binary patch
      literal 2450
      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
      XQidWCoG|<N;TVB};M607BS!rbT+v9b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef5df4421081c8b125f3534bee8f4e948ee8bdb4
      GIT binary patch
      literal 2450
      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
      Q_;l(-Y2KwfduMd{6L`Z%<p2Nx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e03ff4d4b23a3d1dcaea054399b45f13ba3da39
      GIT binary patch
      literal 2450
      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
      Zk;7XVibQb1>{F*>I0}PHj|k2f`A_A_Mdkni
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c982051bfb7f5f289888e3845ee2d43b7b26ec79
      GIT binary patch
      literal 2738
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb82993678af49ff66f8b4cac47ee944b5599d35
      GIT binary patch
      literal 2450
      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
      Vj6`t4>|=*x7z%<@4-bwQ@fm5zNV5O{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16ca0f4cd824a8000512238938873409682df42c
      GIT binary patch
      literal 2450
      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
      Yz)-R%>Yp&}?BO()^88be^N$$+AGul}P5=M^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b692542f2385d79fa89432a5ed0edabea80e1f5
      GIT binary patch
      literal 2446
      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
      DP~$;2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24ab44ca9422fdfd1dab6ba376d21ed873e7dc73
      GIT binary patch
      literal 2403
      zcwTkZcT^Nt6vy#9+o)dd#fFHuVgpoG1qB5gAfh4`SQJT27Tmxpf<Z8v-h1!8nBIHu
      zz4zV|(|hmrcW2DWIVmiBzB{u!v+uqA<MGJvx7<NQlPEWdd=6!|clAZq#5TqvU5V~U
      zTSu&CL%cUqwZ5#hB#8nJh5z&Q%FVs;D(|^Nq0a8^wSDUy^0ibslw8r)ndnON&UDD1
      zU(n=GpsIUy+)wn!Zz<$ZdO8Iu<WNRkqAOnCx2`qb(->>*j60NB*WDKDY>M?H?0DPB
      zP=$N1WKxHM+eX#jA#q348S83~H1zf)y4q98PXp5_g9bU2pI`USm&;rJeX5|z#*>v!
      zLu@>0-XyktY@oLzvB9C7y8mCDa)(kIy8C+C;x!4oB-K4zWN)SsxG`o7vu(C`=A&dv
      z!k<GaL`nNn0Ou(53TAa%usINjHV1>z=1?fwoRk!8PEL+COGt1eNrGcZ7CVz7DKJ%1
      zVVb1DbV-N(q#tBqm?0SuKTt(srewnY(jN|x0dSxUgo9)d94v!jmSn*pG6ZHzHXJHL
      zVUFa$VKNNnN-i8O!(mv$aD<G2d6EZ5%1Ag$M#0fC8jg`MaIB1l`H~L{qyQF5Asi>;
      z;CLAiC&&a?Bt<YH5jasM!bvg-PL|2ASc+kZl)x!61x}TzuvAK6nUuk4G7V0b>9AbN
      zVTDw{88QRTl$mgr%!0FJHk>1KV5L;TDyf3iQVr+ITv#JDaGuPAwNeY`%Y3*%7QltF
      z5Y|Z@TqKKNz0||SvKTIrC2*-Mh0A0aY>)=nD2*^GQP?C+aJejpD`W-41Fn>nuti$n
      zcCsDZUbcs;WEI>&c7Qv|jxZ)M*eb2CP1@jUSq<Y7hdaqmuwB|=hjhS%B;XoZ1J}x0
      z*eRWGovedh(gnMv8?Kl2aA(;W_DB!hARAz>^uj*rgBxWd+(mYQn`9H*ESur3vMbz8
      zc7wai?r;y;1MVq%!o6g#XtUDZ8otcBPiCrRUoZQ4+26|n8XjXk&^tWH%fVg_@p7n_
      z!@L~s<p?iFdO6C=(O!<xaF+F04G*y%r{Nsy@fsdxJwd~H))O_{-+GdU2Ut(`E<eS~
      zsa{U=a=Mo@yqxLfEH7u{*Lse!W8I?cv!1K$x1OgQu%53Rv|gYbvR<g1WW7i^*?O^Z
      ziuDp@_r8}Zr&%vkPPbmJ+|PQ2GFz`y&ahskEY_=))q0I`ruAB7cYfC?yYstVd7$+M
      z<w4dPl?PjIQg+wtW@UH1Zc)y*-l{y*dYiJlezz;T>vxB8uJumk;nus9!`8c%M_BJs
      zcGve_<&oC=lt)?bR~~JBK-vA$A5<P|eMmXq`ml0=^%3Pl>!Zr!tdA*=w?3{s!TN-9
      zk@ZRCi1jJuiPoo;Ct06So@{+qx!C%ga*6eM<tf$|l&4x>R4%o?q+DiwS$UfE73JyH
      zSG}+IH7~DwdBe+_%CoF*DbKdPtvtuNRk_moj&hatUFB-)d&+aI?<?0>KTw`${ZP5q
      z`jPT{>&MCqte+?^w0^2wXZ=ihk@a)sdg~X;i>+TOFR^~5ywv)&@-pi;$_>_Ul^d<!
      zDMzi}D>qqxP+o5RQF(>+C*@}A&&n&UzbLm@fAyyOo0s3c{DE9cX;-^@UO#vwjf4^G
      zeiJDl|8}gP$#gIk(@j)DAJP;ji>5lYRO)P^GUp<i=DbAHeaTerE29cu2hH%EOf!8C
      z(JbFjG}~WHbNp+m(tin6`L|MaAdlt-TB#<mh2{meQf)Ag<_BA8L2wH#48B2ip<G%N
      zT1EAtGih<?1u6=?j1jOqGTWOo{@RbJ8oRZFW)^0O|8~l}kp>iALuuF3;J@d=?vCC_
      ZsnkSD%ia5=dsktXAL`yQ$9?y(KLL8s3|IgF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e64d2d57f7850a692c0de1302a6e6695550da01e
      GIT binary patch
      literal 3137
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d4bb421d7386d44761a816b67c72340cc92519f0
      GIT binary patch
      literal 1161
      zcwUWC-EI<55dIF`b^%wh^v8<OYOR(9ETFAYskMPhf+1}}6%ucn1y0L0bQjr0<BbpD
      zmFWw3TYG_t7e0Uw;Nw{5ELcdSt-CpYb7sEpn=|wC_xB$FlGu>pVp!Za+VKPJofbEA
      zGhVH0EsNXn{Lc1nDz&n@n_SrBRkOxhG9-q%e;l*jwdcezwx%1pz0ME{7tV7|t0e|0
      zO95Vtz@uOkUc$a0AeR#%zJhM>t@dGsw_a(L250aW%&OKXX)Rrxdq&Bw>lTAr_|MGJ
      z46Z5#1kUGY@YWpXf@wAxUJgjje6V?@y|+g=eWQr$8Py@Eg0;x4cEe74F^OpzQw$SB
      zAQjxe48zDiw`mTm87~3|%D6S?-X~KK!YqSQ*Q_Ex)Tk21z7zLG(A-vV2lEW>rfKQ6
      zZW_*2UR*7Rt9uNS;rxK!UIrd4LX{C_2ws$mf(W97zFm4z%oVoF46~P|9>4<yONf(@
      zW}7mc31`)zk0>+-g^q^`9tjrD>#fbdG%lSonHpLV0yYKk)KF9gR-uuh>h75BR+Z;;
      z(LcU^i!6ySdeFRK@K&~=Sr)fsP<PK=(pwC2ue*={set%gG)6H-XPI^zkQ|FU5>=FM
      zaDR0?uF&jt>^1V@P-r*Z^}|(Mb8y`7;X0v67>B=y_L(>&T9>~-jdn1x9_!%d5&Tg)
      z%t^Hl?v_t*|2P&J$LYsU9mL9XkvKa2b%Nya8S^}00|$iFpq)WHO)An`%)*9B_5|KL
      qiXvUEGeyhvuaFY4dyFT9=B9>9VU>_vc<SJ%vF7APFOFw;j=&#m@e{!S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0262718eb6628c9f6140bfeabcff0f0cf46def3f
      GIT binary patch
      literal 1632
      zcwUWEOHUI~7(I7doYIb>AQgECC~Aiy6%|EWMHwkpD<~)=Y|L1%WlWi=?bO7bCc5#l
      zFvb{((fA4*7RaJL7H-`6L;M-ycc){iv4Blx=H9R8o^!r4_s)-BU%vt9!(|x~!``%6
      zh}_U`=@HYgBB>cYm*;jQF)?;!V4(l#mA<ZFGi6=lIT>Dt_J4p{>FI(PHpC3muum|w
      zg_5g*qv|AsSEB`fcu=dL27cmRV?jJFmeeH;laCf=ukzd_{c46Y)F-W!o|)8hhM2oW
      zuRUYr8Pw!|b{1ujQna9Xb$y1~lx~*rBoNZnX$F>}OJitpjc0T-?W~yKHw)ZM@u)f-
      zz&31`(Zmp}j#1Ez7K%+Mp0WjZLe>1B{1j|Ky;$F_paY$R$#64m&oFpGYJ#C@HC1wD
      z&_xhGcN`}zE6Z@UB42?YDqO!#&94-PZrj`~s#T&8QH}F_A!A4V2%%es%Fs}SQb8C!
      z<TA}|$Ezmby$T|t318OA8@6GYqSz;j2N<?e(-l5S9{f0j!!r6ATGuk8;0OlDNWq-d
      zvstkN;#Mx{Ce`^DarIV?AtobQ*~&@~3XX&JvNEIR$N8*ITiZ-KJx$k=yORn|VTgJf
      zn;agGCScC4><TEQ^l#F8ygK24z^wdyMn`NV`uLcv*~QhRyy^dA|?Fc})FzE2{y
      z1aV_kR@xI2Rw0+-aYG!Hx|P$=E8x^>!ZdkK%jo$$&&!ygbGgnjVvyZ~g#EN{JrF-H
      zT{YN1bD2gbX)e*z*Bw@rPw;)Dv4jBK{Z9Q3q3%MVQLu!=Mr?9;e5k`_VqxMixNL)j
      z5vV}R7A(I*jd#JbP$m?T!2JrcK$$Fn25fc78eOs+85WkiJjdq|><+hnK~O>wt#hdH
      zEZmb=YxoOxFuYm*>0MC?Qggrqx<4e&N5u93JMq|2?I`h;RlBH#ounqwKf7oqQ5d_i
      z$JPHtXc5-PJYwM@_MT{?rrx6=Op|@yYenpz@_xp_#hxOL&Y`}dyoABUp0+1NXj4=i
      znOpw8gfoj}i@nbMDbYWp6rYoc7xbx_LpxrQ_$&JUzeYdaB1RYu9~|r5B`am?BRGeo
      h6X*!eW0aVEv>`=^9vY81S{HB;;ysF3$8ibGzX1VnaUuW!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8447ee3747987f6e2e85e73f11a2a13f06704318
      GIT binary patch
      literal 1311
      zcwUWCZBNrs6n^gB+Lhww6%nR@2+9VIZX&WVL|{NN9cV0KswPXR4O}z2q#OEQ_z8v&
      z`iVrNiC_Iu#?!UDWI&)x&$;*ZInRC0bN2V&kKX|DSe6iC7}|FBv`^+|Q*%T^vvy3k
      zX}7eB{<2mmOc!f;2@!_AGk~(68Dew75v_TKa5}Te5Ggl4+A`t{3UOpTjx2F>F(lg@
      zb<^3_^p-1}Z5iE!63s?dxY>LzCnMok)%+?M*NMJvwuD3L8w{a3<(qU?Sz0UPi!yF8
      zM9Z(*%YKF~t4YPx0Dqfseg`rJ7~=HlXghT38gD<$Ac?KrY@29=A#tK%HeW2v$hc4K
      z(N_gwjH!qs&5%x4I~yv!KYQePlBf#DUf<i@vfT}Ht8O#!YQr+?o2DzgeQ+3Q?T9AB
      zaP^Xjlo({I;j~QQ5PTrean5i`nRgO$1UZ-Rjb2;S%ascGY7tNBVj8l`vA-<a7LC?r
      z7)fU?#0H>}geMGRmozdOpcPD`;MrQdq@7J)$%=CYB>{+(JiUUF0IgsS1-e9U?75b`
      zD!j2IPGFNB1%p~~9NR6|&1Tak=cHq2q<{uF&>sfg6QMVX80{rmeQmFRjd3m~yMIA3
      z!d%sj2*0KqQJ&O|80Wen@gCifd9Q9HW4w=|#8VVyeurY54^mY4U5Z`&9z~Up>W6sn
      zop?jYP<#ZHVhIYKA%O+-U=jUT!XU~R!7^c1pkb9<e~vZ0fR1&HQ-$hl!vr2uX2@bP
      z(7j4IM43<gfwm8o65B^Kd=NP}zSZySb(^WzM+Z#aDo?5y{ig6Z;G80dyo&fwOdI2e
      xnEBR0_4bsg__3&2YU~WboJTO<N$}wuf)IJ)#Rc-j(-k5Y7<rST$usgN^&iPS6Ttug
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc21df464c677d00659e2631a9ec056509b95127
      GIT binary patch
      literal 2683
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89bf8bfd60e63aaf0637906e06dfe1ccd6c34f2f
      GIT binary patch
      literal 2869
      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
      UDO_yX#Y^Luw!&qvD|}=7lj}vO1ONa4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71744a0ffdd3d2192033ccd9b81b02ebdfab1dad
      GIT binary patch
      literal 2817
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..807b45e816b1d84299f6571117fee21d4455563e
      GIT binary patch
      literal 2815
      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
      Fdj<TOil+bo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4fe01855836270400aa43af2e46d0621cdeda2b
      GIT binary patch
      literal 2817
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70601828b0ef012a83c732be92b4ae43e5246e8a
      GIT binary patch
      literal 2808
      zcwU9o2UJ`4702=W#MNNmD`Ok54aRr?Mu?3B7#pw|Hp8|IM#eT4LI&9w9ENQ&yPK|b
      zx9M&=)7>OZ6VfEzZJKn?bniCZGi~Td^Sg}ZoVMrGzW#jmp7f;m{?hS#@bP=@C!#6}
      zd&%Wc;rP^i@LcRtEI5^%4#p>9GqZ`gV0WZ{BowL(kJNdI9oqUoU(~iRmuO#k?2u=2
      zdiwnQMTcC&?GE{x<CDp$<XnqGDJ7+Y4srYRSR$1iO3xrSc^t~_NlqpD<}ZvUW{$;1
      zCle0&d#2;D$-&r6(zaK3dYYHt#z*2%8qO+UXBEI%`5ltwGn$M|jRzxhGs&rOALTfd
      zidU_ix{o&C4b~p#I;6?b3xRM|-N@mp%E~}hIE>x-4tZC1`)D&hBsn`hvUW@X-VWPq
      zn_E|&UOfjNZNr7e7iN-^lgYS`w&N1wv-tF$*j#d|{ong{t{#<~2~^eA`ltjKzqY=C
      zy2h$-DCDCuhurat%O_EeHCujA;ZWw~<kZ;o<=H?rUR;+(DO8z3SybgvNlDLtUVhW?
      zfA1<Cv_-GUpjun>^p!7Zb!~ZWB01|&QP2PR2{hpXBGdCT@kB?`j>~@XsR}!citrIB
      z_)R&KZ(lARxyVOe{KNVYd2b=cKJqN7L-)F)%mY!kdm!rZ3`D)&fvC?n5EYMLOT2<@
      z@rmt8l~kA}X)s;VVTNSDOv!{<k_EFR8{!XCQRo*xTqo;bj^x1gvL0@b4RE7ugt?Ln
      z^CS=EOFrBro8V^I47bP@SRe(kPzvEz*$RuK2yT;Yuvm)WcG(Vh$PTzucEVk<3zkR;
      zER|ANCS`E9?1tr14g(T^6;c6%5`>jf39F<ER!cRkks4SlwXja=V7=7C25EpH3Bj<0
      zVWTv{CTW7r(hT>=9@ru+aIfrz`(z(%l~&j$ZLnS1;eOc<56A)7Asw(&I$@V|!EWh>
      z2jw6<B!^&+^uS)}g?-Wo`=uWqmc#If9DzsWD2zx19+P8mKnCET48r4b91h74#9w$q
      zPQYOqh9~7DJSC^#X*mr?WCWg(GcYDGI4YwsE^#;}V=y5JcvjBBaT$jbG69p4gy-ZO
      zJTK?rq)fsKasf`s6r7f6cu_9GtK=#;BQtPTX5pO7!Fid7m*f(>ESKRGxdInt0bVUv
      z!)xRkc&%IuuaoQG^>RJDL2ej`Dm?{beJaNKG>rA>80#}I)@Nd@&%#)rjj`T{u|5Z5
      zeJ;lOJdE}E80!l#)|)Wa7h<e0!dPF7vAzUjeJRHJGK}@*80#xA)>mSzH)E`?!dPF8
      zvAzaleJ#fNI*j%880#A_);D6Tw<tT-Hz~WUZ&psRzD4c-1f{nsyRC0i_E_Jp?6uyi
      z?6bZ@Io0}3<uvQNl+&&6R?e`#2V;G&a+dXd%GuWUD~t6uWwqX}?6=;byw3Uo<s9ps
      z%ImEkRNi2{OL?R9ZslC-qH><~9_4)Nhm<#2?^WJxy-#_I^?v07>xY#Ktsha|YW=8k
      zk@aKB+pHf~F1CI`dAs$K$~&x|Qr>C(wDK<N1Ii`V&nTB#A5<>0KBT<c`dQ_2>*tgM
      z*3T<fSihhgw0=>!()uOkD(jb(tF2#AuCabqxz_qM<vQ!vmFunFP;Rh3tQ@j_Q#ow?
      zmU5%@+saMW?<hB0zpK2*`aR_q>-UxST7RIt&-z2<R_l+H+pIrUZnyqKdB63i$_K1J
      zQ|_?-T)ETwh;o<p7s}n%Un(E8{!00f_1DTh*54@iT7RqDXZ@XWzxDT8wETVkLHUUF
      zkIF}_e^QQE|Ezq>`l#}N^)JeU*1swrw?3vkWL;8@TK}ee!uogRVe3DXPg?(ppRDz9
      z<<r)GDUS@?L20)w-x4$6O;ikPaC5As5~`yis;3*Nf$pXdJwjn8ml~ZeYI3envvVu$
      zaUP}?myh<kLbT5{L9MQvsm=8OwY!#Re@d7Rq%2TJ$|7~9EKwJSshbz*ATQD(UZNg%
      zn0nm{)aPELe)kd`_Jrw(XMv7-7AfL+l&U?CQ8{HUpPAjdv(|3c^bl_04jL=-XG_+7
      zq|p@rx=57$>myOOe`6%-@#jUNUjL>@)aTz4!M)pG2)+Iy=<^rDRR0c`=HCU={iQI&
      zzZ+)y1ChHZSav(5-AUC?E=va~9HKOeQZ}8S92%xPI!Og|3JZ3cN@;|GbOs9+qb3@q
      lR*F+6jZrTpC_-m()C8VQE?-W@%E{xk^~)F5u>2{ZCji_gWZD1#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e7ed95828f1d45cfd4a415b2ee493c6ceb8dde7
      GIT binary patch
      literal 2857
      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
      UzU_STCaINnEp9;D;;Zg{4tOVS-v9sr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11c9523c7d9cdd9c56d594d125b8d9917931ecbc
      GIT binary patch
      literal 2871
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58f8954a97b710c6aab80de8f4bde4fd2d724dd7
      GIT binary patch
      literal 2827
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c9a6fa38a2d93b937a17bf0391934e2b332da0c
      GIT binary patch
      literal 2841
      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
      O5|^gw!8T7{t>xdGrJV%;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class b/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..32beb9e78675e524af7637b5b220e59065db75a0
      GIT binary patch
      literal 2594
      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
      P6ToYg{^VBs?^g9saW6Z&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MS874.class b/libjava/classpath/lib/gnu/java/nio/charset/MS874.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20728d0b68ff6c17cb474d72aa9e2c88893b95e7
      GIT binary patch
      literal 2403
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53a16c2831724be1df360bbe78403a518553df3e
      GIT binary patch
      literal 2478
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..531b25f639179a99ad1040557a14ba65a48f476e
      GIT binary patch
      literal 2462
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1581808705238252bd4045599f4e12c770aba2e5
      GIT binary patch
      literal 2458
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class b/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe35fe8e12387f2d6f9a5d6561fb13f06f4bbc34
      GIT binary patch
      literal 2527
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class b/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e88fad3a52ab639d612d2af2074ff6f317f6f5e
      GIT binary patch
      literal 2446
      zcwT+h2~<>d6vy%V<_-e_%DuSZf(~ekTH>w<uDGD$ilAhRBTg`ipa>>udz!YGOPQsm
      zwwT%CzF;o7luK#*zL{B>mTj7mY5nfAj^|V-nE8C?y_tFQ|G#<fyg7Jb>kcAnO%1}y
      z<4}BlQCaf1z?498QK&dMuOLt|Iar!JFp$@`Bp4hYPF{!n|M`-h<)y*&i;o@h6&4qd
      zFPrF)XH>dF5ovjap`uV}SBE&MS&l>A^y0BWCi>%i6>=y#n!?EEP)ug1C^)EW!kA#m
      z@W7bDphK~l#d(3koIpv)mj7DmOLMmsL5eM38d!CQ#2r*&peR2%tF$Cklpje<HKQqp
      zYB`jYl=;u6Q%C)KRkIu$Qd~6Eu^~lWoX20E>@6(_O?IeZ=Kt=aREHw7ipxs!f_*~v
      zuBv}O(bC>R3D`WQ4(r;q@yJ6F6pp(?RfxiulNamASBdFu3(NI-vvb43vU7dD?A-A1
      z?A(Zm>|F5)mLy!TED>UBsz?<WDUmQrqF}T{!>UphR+DNlMq(iTpo+p+iG|grI;<fz
      zU`?qBYe_9wTWZ5NiGy{d4y-G6VLhn_>q~tYFY&N}G=L4IA@qwMCP)HIltkD_8o|cW
      z7+xlq!6woKHkGC@Ns?eQX$G51bJ#*!z{}-wc!gX6TS`lqEXlByw1TarHEbhoU|VSm
      z+etgvUfRPB(gAjqj<Az-f+>;$J4<JnDyc9{(qI?q0=r6A*iE{@?$RChkRGt7^n~e>
      z4tq&2*jswTKGFyFmA)`TGGIUH2m4EZI6wx#Ov!`;Wgr|RgWzBp42Q@NI8=thVKNM6
      zNfsO~!(p~$!yL(hBV+^|DI+2N;gxbF93`XRRdN-)TCRrI$Tjd<xfYI=(J&wZI7Y_6
      zJjsJ&Wh@Lz5MC$O!F<Vw1yTS*5`yDo92_s>VWAYl2{Hi|Nf9iTVmMJI!bvg-mPiSl
      zER$iWl)^G8gHvP*yk4${Q)MbFmvVT6+yJM^G&o(R!yDyBc$3@&Z;r*$t8|OfUhAz&
      z71rC7)>&^?I$*s+X}xuZ(!17~N*`PARGwj-rF6tPTj{9vE~R7EyOr;--lMeAdau&g
      z);UVwSnpFhZk?-i!a7gsq;<a1<JJY5kZ8SM>6G;WrSGi^)$gu<P-(k$k@{O%A5uDP
      zeOT!i>tdx9)+OqH*7}H2rS(yzbJnFwzgw57-)~*6yukXH^8MDwl^0o`P+n|(Qu$Hq
      z3gu<ir<6Xku2g#7`ZR9VRm$%8pHW_AeHJgZKBtMJt<Nj1v94CyY+a)~&$<>j>pD#w
      zYhAC2LF)#5v~{EMeCsCV2dtZw7h1O{KWME`e#p92`C;n|%1f-<l->QXUHKX74rTZI
      z*s1J}_eEuQ|LjtJ#JU?pw(e10YTc{6-1?FxW>{ZVe!{vBQ?%~KM_CW3zlrrAcB%Ch
      zWp~`KD!cPPq&(AlSb3K9HFdJAudBbh^$qpcw7#kS`qsD9A8&nI{c+ZJ)L+N?uF_fS
      zd&;w|?<?PB{XqF1>xas7tRE>qXZ={&{eC`CUTytU`Bm#@%J*51C?B$ZuI%prqss2_
      z|Aq2?>oMgG)-RPeTE9|$+4{AzdtMw@cE87Ol-={^gz^sSN#(89Z<XEs^PTcG>nUaT
      zxcy#vr}YQr7p*@kAGZFayvzEt@*eAHW%v9%qrAoXi?VxOo>ks${Z)CNwNm*d>u<`N
      ztml*uT7Or5#d=<OuJwYld;I-@Lo$0kMXhx&iB;hoY6O#Uaco6N_=Pf(+R!X&OIxTN
      z9jEqA9CdIqsG~ELIyoyT#d)7Pdm<>+(}~hN1=Pi}h`M_AQ#Vf~b>|f7!R6GGD=3{S
      zsh2l}dV9;MkGF#QdMha-EQR`ol~ez)3K|erNtwPB8t5yhLB0wa>^nm(eZOJ^)!dQU
      zr90;D%Qf}F#oR$-o5u=or`XL@qxm|D+DNr8&7+!o!5>bMltW4*-0ehPd>4KM)N{93
      I-+gubpWK8|RsaA1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class b/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d72231184a160f93f093eb40477cd0005a2464d
      GIT binary patch
      literal 2458
      zcwU9p30M?$7{~G7%q|Ne!u#Tdcr9xxYKgZZc!G+GS|TV}>Iy5YA{c^6Y4>6GeP4Fp
      zcbazJmYr6X-G_OXT53XG{oc_Yd#dM2htGF+c6R3f|1&=0>Vwa{1fVC{$HH~czO1q~
      zV|I8!IHNLJl~Gb2uAU#M$ru+d8C?>o2v?TI!tWsXp9c-EtBK?se(fMoQB^gkcAf)w
      zYL0`r?2?LTWwd6n17CWVA_xAQs?vxLICOy2A8G^#O%f1;fP<v`Xk}!4?cAA>>Pg|5
      z6%hx?`Bf$1ilT6J)ZQQ28OZid7>8sB@qZs*GY8_0jc>~`3TmpOm1Xhpp+y1&Eght%
      z=l}ELtf~Lr)uqS=)hYq0HmJsjr*q`m{+jaWd<SXy|Fc+G99ltDZFNaxWYoTwbo8U{
      z_BEvO5?lb9YLn+H7jcN?kAp@)>{9r-4}p4h@Ip+n-(Of96H{0m2ox5_#ugUG#T6Dy
      zK=@8#h3_R!Y)>O;MB^o%HkQUTK@w;aX+jevktRtJ<sYh|G+B~qQ)x<@Ni*79n$s52
      zg0_^FG(}QqD``bjC6%_8*0hbZp>3rtZ71z$dudOD5~OL8Mne*!9i#(2MvkE!r6cVm
      zooHw2Ow%Quc9AZ$t8}H^q#Hd}j-|)RakRU1rx}t#dq@x3Q+m=~(u?+%-n5VOp?#$<
      z?I-<cf9X#L$N-utnRK8Gq*;<hvn87jl0kH^45mY52puXz=`a~ahs$u9BRMoza_I;e
      zK}X6+I!Z>-JjtV@Wi%ZlW9V2JOY<e4j+1e8yo{$4WCA^2j;ANc33Q@Nqy<tyC&?sQ
      zD2230is)pSOsB{c%D?nPIgw74sq`c{iJmMc(`hn|PM7I)hRmR03DcP}la@#cEtOIl
      zkqDh7vuK%=(Q+xLQHj#oGMmnkIkZA5=v<jgE2WZFNfn(Z^XMsZ3ayrEI$!3~8mXbR
      zQcD-e0(z>PN*BsPS|@e%G&zl)E~nE)vWPC0#q<n0gPxhpyH|0R;tlKBiZ`w2C{|g|
      zRlH+8PqD^&zTz|M1&Xh&7b<?RE>V1My-4w+^<u?O)=L!Yt(Ph`ST9p-vR<y(V!cAK
      z*?Og7tMw|yHtW@jU#!<Cezsn#*lxW}vBP@3;#cbpie1(l6~9?;QtY<gtoYq}i(-%U
      zR>dFI+Y}Af+ZFq)cPRE-mny!o-l=%PdKWkA-Q2AADDJo3tHF@<KE-nD{fh6b4=5h9
      zKFH1bkfwRZJ*;@f`UnrPKB}P^*2ffYSsz!dvp%7rcGf4kS)bBSsr6|MMXb;8($;0%
      ztjjgzTA$UBT32W&$+}W~uUMbcP&e!I9E$Y??y|n9K5u+4DK=VPR@7Tx;Y;hQTmtKB
      z9J2Lw4W(M&Q0Hpvn;OcqzNMjnbrq**eVdoEzN5iT*4126>$^O)^*x@-`o3bV^#gS#
      zT0c~$!1|E}n_Aasu$lE^4Ysj<qQSP-Pc@igU8})X*3T4st)FYh)z)>2L)I_US!n%I
      zgSpnPH0aIaYhJ?ojbf+uTW;3x6bG%}D-KwH;F4N@)Sx%-^&0ekFF$Fphjjy&#=4PH
      zv~J>(SvPa4)-7BL>sC(Hx{Xt{{>-Ubf8kPCw{vRN9h{nVXL4i9ubjE{H_pJii!-q9
      z=FF^n)ahycU0v_?*{iPi&#<0%lC?oy?{@k_UGMmP>U!td&pX6=Kwa-PKd7#E-b3oH
      zDtsCVPkK+pM0z<o&<s8sdmx?vTbY7hSc2YIfj-!bzD^4IIeF;sEW`lk0c1MsFwl)d
      zmOB91ZaD_IH)62+Hiozj80yQ!Fkc;p`&J^y*MMAqCPw({Fw(ygqx=oXi^;_3m^zG!
      zS&6YR4ag5<VqBmO;{z)&A+Q_W1A94wByVK)<d(ml*2v|v++mZuCadp7G<_D$yFP`4
      iWk@+Xk3{czKMC<Df?~3Fo`l2SLTj|~&e+yFy4{~T8(HrF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class b/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9185ccc6d812c46919c6d7cafe793981381f3dc6
      GIT binary patch
      literal 2458
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class b/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff7cd8a13c79396311da0412b80e4dceaace6620
      GIT binary patch
      literal 2458
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class b/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16996e6ff4015c0a4cc8eacdcbc05aa56bd13c99
      GIT binary patch
      literal 2488
      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
      BMjrqG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class b/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92a895a7887010d67ad73b8d125e48ea0f73fd7e
      GIT binary patch
      literal 2414
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class b/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..177250741dce627b4499dbbcea4c8b2f1af39644
      GIT binary patch
      literal 2462
      zcwU9p2Xquw6vpvyW;dG<0=ai-p=Poa11O<GNT{I%2%w}uM1du&$wEjl1qs-DMa71_
      z_g)bND~Mw6s9-NND^h|5zdPX3qn;xSzyI!J%6soj&amP4C!PY(2VNpv2kGTi^;z?x
      zi=tUo@#?IyifB!3tS)O(w5+JUW`4Z3A`w9c-hUo6s-Z5Hci^*wP-S)X{Q89s+!=We
      zl5)!`<5lsxVGaVB-Afz<^Qz~@0>J*?$lm?N4Nc&nc?uE`a*$dOuZm5sUoa<DQxu(3
      z8FLUWs4k0EmPBjf_Wj__P_BQ~B(!jl{P#h&av=TyE2CBAS%q~q@v8D<1kff0iZlnA
      znFas+an6i?@9JJ+gKC$8_BN=d2j+C}-od(xc&&qsg8x~u91g9py1u3?Ha2eOrT+D!
      zUUnKXcndCo-N+`-PcD*>$bSx+0EyQl$bAUyQ3tCNN`t}T(u9QK(om?lG%>NbG%2aL
      zR6@dUk|_KxNn(4NNE4bY$+W37r74m^n@Ka;T$<BVNu~TlRg{J$Oj}3`+EQB5R?>>L
      zme#b5w4rH|M%zkT+D_Wh_R^kqkPft?bflf66HS+N>WN1)B!fmILOV-m+C{q1uF{ou
      zlWz17IfQ0PChacWX%Fc^drD7ws2oZUlf!5)=|!_7i}se@w2$<meWfq$C;e!D=}!m9
      z06I_x(m^ta4wk_*Te9g88A5X;hvrHy9V$cVFd0UN%WyhEM$nNml8%y5G*9yAXc<k%
      z$QU|S#?o;zj^;}~9WUeQ1eri5%0yZq1$2^3qLXDZog!1{;c_@VLXMzQWhyO{LRut6
      zv{;I1iImW3GL24`>6Cxzk#Z!RAv5SvauhvUj;1qZCY>d-=xmuyqY|ZaWDYHpGCEi0
      z(wM~PF>(womvUMm6*Mk!I#1@&`7)nYN+n$&3uu*8(Q2ut3uPfaR*t1LQbTK{mexrf
      zt(SVbNEXrK<T$!m7Sjf4pi5*4T`EiI@p3#pK~A72%8B%(FrQw<$%?hsQxxm0rz+N4
      zPgA^PJzepp^$f*()-x5GtY;}cv!1Q^)OwEMbL+W^FRkY(zObIJ_{w^L;v4HS#a8Qu
      ziY?ZQ6x*y9E4EvgE55Z}qS#@*RPmklGR61S%N0LbuTbo?u2B4By;AYB^(w_~>(z=~
      z)@u~|tk)_Ut=B1jv0ktE)p~<^p7ln>1J;|kS#RcMy+v`m^;Y#F*4q@1S#MW-V!cCg
      zpY={|*1I&rKkjbDBi4I(i1l8L%(mXAc)@zVVx#o|jdZd;$j$nYM&?={)=13y2ybnD
      zl$-T2jkwm88d2-x8cDUT(!ev;Cp6O2`Xq;9UCmwAH5%~8_mtvm>(h$8)@S(9`Ye~g
      z`W%OBeO@E&tZUU-Ze6F5eCrDu30c>3iq;o-E9*<@b+c~Zl3HKprLC{<Qr1@$?^<6|
      zXR7sebqcL-sMo^!rg|-{Z>iV8`nGx<t?#IpW_?$^w$}F)d#vwk*A3Q<iv89P)LCr(
      zP#u3gKT;>%x=Eeh*3Ihlv3{)1OzS7=%(8x}UWWBEE~)i%_568%p`L%8FV*wU|B6dv
      z{hCv>e#0fRZsAm|Te%e0ZJergJEv;h!Kqrm<x*I`<J7F*b86Nf!c8qda^}{bI0NfW
      z&cOOJXJ*|MPO<D(*MEBUsO$e0?&X7IZB*BPn)a#dAO4HF{$+mU17iJ6-ObkD)%7pC
      zU)}Y^52M+G{tGdcE<<OU#aCl*Wb%J3)6o}aqaPkee{8`3Ck+Fgd<=3HW3Y1vvYm|>
      z;wB--9gJMJ0z=&u80Nl+;cg>F1hO$Q(11~aRmcl8VstPYV}cDB8(f8P!A9gKWMh0n
      z112P_!o-9|6oj%dDb#?;p_P~t+KFDF-5i1VBeNH`{`s=TXuirFHryi|4y-}Tm1y1L
      lAvAjwZU34_bN_W;gk+TP%xV60QVyJj4(RA#v6Fvv`X6*lSDXL<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class b/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30aebbad4f28ce78a412a40d1f67a0f8a62aaf9f
      GIT binary patch
      literal 581
      zcwU83O-sW-5PjRGO-)m)wSIpgcxXKstH+8UML~!kpcFi&$&zk~8`&fU|COE!3jP3p
      zlsHMNh=+REnVp&U<~?>lK40Gfw6LKg$FS|o#2Pq5$C4tn+`gkC9$Pmm914%C-IflG
      zVJ-s%j`XeT-hjKYjv~WW){VHEC=ovqM+`;4eeRvQu?QtY@mNR^pD^Sb%`Su12|aEg
      zkFp6JC5EakB)>`?dR*N(y?`^+?9g?BuA@X+PnufX7ZJmb{g2f)38{p1>y4)U*Ku3N
      z0>kFi6$WZ3GZ?pFqFjD1Qt`_7a6hFnm={uV)d`#^;$*6NCfy*6g!C_Y+z&kyYglI}
      zJx*9;o6JmAZQ}ssoKAuMB}a!IhpHL69Z_bK3wt9NFWK0nXrwS!ghs;()#ez4SyU<0
      we_?*I;E<5%tn`N3{Rs8vpB=@t&x~LE(uAMKVuo76a;7!50D7DiiW=qBFM!;B`v3p{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Provider.class b/libjava/classpath/lib/gnu/java/nio/charset/Provider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33fb54b6aaadceb6f379e5dc400c5b1227d9014d
      GIT binary patch
      literal 5340
      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
      AbN~PV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..afa2964f97ec920b1eca150679629d82fcc27045
      GIT binary patch
      literal 1248
      zcwUWE-%ry}6#nigbkrg`eu&6G1Y~2lfxmG$VVg^48c3Kx;)^NU-B#UNY&(o5{u4eD
      z-+e`5rt!f?AN-?~b4!642fC!Ux95E4`@VDU$$tL&_8q`HvN8e;Qx&t3c%kp;3Dd9=
      z#j0*Q+)b<(o-Y?N`TS&-7p)SvWk?KTf59?`Zy&_awP=`zn_>t@w9~-J=mvw7p#lXR
      z=vL7Qg}Bcs$mK*yuV$EhrBUDF_EUYU#u-AIRn%)6x^0MWKPb6X!(o`#{;RJfL!e0T
      z;nUR_l#&P5ENh$LNsH0+8<(dW<udV{1Vx=6jJ9DFs%zY7)ZC<kehkVOVCZW@sp1lb
      z7&<E4r8N>w3;3{#D;Qx2Zd;Dw8kXs$@**`VQezDLk$j7;??k~kCS+V=7&*(5ib+h-
      z!PfO!*|O`rl(TG&n-#apF#ZQ``+lYol@V#}=j1e0%pk^~R&{5M*L4~cv*Njb)=lPa
      zsE8v$jje7xUdw5#n+&7>R-0FG6Ss(EyFrIE6v;%}-h()vs8G49;+|0HUSG)`$pj2K
      z#DTV#O2n2R9%#$Tz_#c~(|{DLhF#=2LkwWg(Tv4K5jC7QO>Spuy5n$12EoH;jwXZb
      z4=3h84j_I3dOFcX-!ko%AbFACOiWe3Ao$5coTF9o;+#-rsI(hA#Gwc0J)R(Xae-JQ
      zTtvuc`%D@Vy|W*&5No0@75;#}80{`gr6$6g(pOyFn{DFyE<!Egea!C7hTk_aw@Ja<
      zyT5<z<Idi(leo9OB<?z?TIA*x4YZ9BxR}5W<zLg?y~P4ymhjGVJ9Fsc*liZ~DbKv!
      e10;z#NdH@lcu1@Pq&%%hR4w|Zo4_(M7(M{TD=j$y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b770a24f0034fcdd1d688008d20ce75abcb258d
      GIT binary patch
      literal 1622
      zcwUWDNmCO+7=1knP8df;mWXU_s0l&hz6DV-G8&AaM4*a`HN-ZI6=q^GvC5MdOAlUL
      zPGVVZSXw0q^bnVWCr|zme}?$=WDKzkXsTwW`^)S1-uJru`_C_50qn!L42fZ9#wtdy
      z88?imW!lm7jFB&JCpw<GJeblFiS8jQZC~Me8GeQ>f5Ei!*8?%E={GIY8DQuPC07E+
      z!V?UBjTR{Ip<YED6yjcGfv$@s8<M8QM~bu4Jb%fU&T@vvq@6ah6Gq+?bFb)kX3PS^
      z?&N><6=RUn1aDheouNK$SY<rXhqUk%154ARF|>QOvxb#%SETs$BDc~!7M@y*P1r1>
      zl_6LgqoNJ%6q-;RbOd)ItSO-MRBS|}SieQZR%|0omRlKThQSvKCm32+QYBX=Jp@s>
      z>o{rKIfmh?bOk<Myn2<IUoOUPI@~LUYeXTU8smjx)`=+yp+`oTp{WL?iU@kiWrjPh
      zS53hCR76D+ft+119n-c%ai1veXK1FTt9+C_C^(42G7d3xtY${V5ga8WMQhf`<;4E$
      zc0TDPwe1h$+N~T%zl>OQE6YKsH~~7z>Wons<Ff`GY%AmTG*wUTPN^6~oO&9a7#h=)
      zqmv9>|5iJ#VhB31<cgF}YbYMBxdkGhexZ_3F)UQ-$45^8mXS=0p{3@260t3aTWYe>
      znMm2ie46W~xG3v>--SK_rbZK%#q(O$C=_@>Mv9K%s#l0X_AU|j(wX%^{QUIPVGYe?
      z8l9rKMBhM9L{&c`@SesJ*3w&X>vsrs7b=Z{WgOOFy~`881~d>06Bof_8z788DeVon
      zUZKvv;9IEh2}R&u6_--sQqY8EkE_Mw%9CH=xZ8K)4T3$9j?V~6D4}Bxb-sn$66=V3
      zMi;}2r62xfl_2#7+^6>g;(SPK_pu$1T-B{*zKUu$b+Db(B>HCu%_PcVCw6)IB|?j=
      z^f!n_O4vQn*>GzfO%WRJ@n0!n@1*||4lMSTaBL2ZRpk#jx!BwJpagA_if87QzJ0*i
      z#frl|_x+gIpHPNR$;&fr#&dMxC8^KTPQ9jM^%gP0#PQB`-cxo`ajxSWl5U<l&SQj_
      Y132Jj=%ewdt91bv-DE|oW4MI2U!vJ>SO5S3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e33ad70eeb7b9c57c3b82bb4040be9f9c26bbb7
      GIT binary patch
      literal 1301
      zcwUWCYflqV5IwiAy)AutMT9D#0@{LYDTUHf<W(RxDez&1uo_dBWdm#K*6g<Mr~IIw
      zNHmi8)gNV?ZC66d%O*W{cIV8QGjsR%pYP`Ya#)w(VHiF#+u4umiJCQyW>z~^En9D8
      zcjfx3T&Y$i_!tJSq$}N%A+TteMr(<|n@sI7_$tjqog>J=cjdIJ(8mz(C^S^_C@Z%t
      z!#v`M5XZ2aX~RkvIARRZ)or<2-_K`e)45WS-rb|Rs=QM#%oZ|+b+V8vm2w>S8T=h#
      zjt2}uB2YfPD|0+#@U(4?A+l9n+sYT_IUW&P``ihK86?eiOGkV96^a~BsUJDI)UTN5
      z7$Y^+)(nFrCTLE|a=c)OoEqj~^VCkyOy_3iL+~OMh98p*$z-i}-157tubh3wYKEzA
      zw?7@|)*JPpp)-hDQ&Sszs%1FO?n__m*svK!Yq#E2nKr65&6aAIL>_isTyt&Z)LUAW
      zMx?~e9EOmopRVf~-KfPdmQ3BqbxCCj1%`=RJ&wEF5av*H_EoyW>0Z~zhWQ^pToU<s
      zb*B%P8^R)r)Ix5yEluAvoNY(`kupv>L%3?1x>aeYwyo37q>G(Mt_Y?<9|oMCkN$oH
      z=vkuZyb}Q*CIyejej=oJMOapRA}T9>5to&K5V9hPep%s86c302LP-n~a*-emipPW@
      zF+$iUo)Ct`Gs1`%Cya{c@)?rfsD}qrgbRogmJz}-Vpu^xRxyM%jG%%stRsaDWU)!x
      z_Y&(hWouBdg*tZdk}AVpzepoPCnN5(J4=a9k2BrWFR(8c4Z8!%o#KHm!7X;89A+rb
      zkjJbmlc&Z`Meqmal*u#9f9;XlzvLr$;bVc^UJ+Py1eSUQ-d`i&p>;U8LIVSWqB+X1
      LAwk#AXf=tySv3#n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_16.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_16.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a2afa49ede7cf122fb8359568b4e99564252734
      GIT binary patch
      literal 1283
      zcwUWDU2oE07(Fi(+7%qw>72|>xA_4~C`_nKaEW7ELPF+6$CAzq>}tbmuq1rwf8jUm
      zLa&y%XyUCu%J{scE(-%937q%iJm;J~Px<}l`%eIQycQ8)SZ=uk^`rUOR9&Z|T4!dr
      zXZO{{(Lpn>i4Yi;Zd_JJ$PlhLuG8OP2qsg<3_`W@!Im&b7gV3&^$~`+SKl_>ma6x=
      zj@y!Oiy=geye1*W5Uc5LGx?lW&@zpxp4pOcn?W47j^)WMFw9xK#=q@dsvTH8PP@k-
      z`{%n(OGXg)qX;3vkWALcUCZxo9`Vqzy5ri1gHNY+_sBeL+YCy*W0~z^v+MA^e<<|N
      zoF2nUeMY;=43gDx`=;Y^s-Iy(=gO%Q5$i;mET%W#=+#<H#AAks6DicOW~o%%ZstWi
      zWk^g7RT7b$>f?pp-4~IbO{woQ1T1=_#PlbkQMmS(J(~}s%dnA5P38KevWOhR`V3#6
      zC_}{-AM6W;)fr8#@p1AL`|f|F@JW>7<?IwbQHF+Xp5he^Wmbw4FNWS3bS?Y9;qOjl
      zB$VYf$btSY;2(j$A%tl!((1jp0@7(kiidwdHiAl2Hw0x~H$qBWH^Pdd8=`VYHzZ|I
      zzrfNrVh6BHzlx`&K}HENRFJ|B9?(g2q=*%)5>jqF^4(m*0AY6X7uJSI5^M~yM(|{a
      z1i`Z*76?*9L<!gsq2Rf2KIXWKc~r@14;fl>$HkGV@5oo1curo77+K%DK(#!Vd<oS^
      vhc1x+dZjz+LG4<4`6_(@MPH#vedBkLOK3(qC|sa4E^&BGB61~B_E?p_>7yn*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_16BE.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_16BE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c61d7e0ff125e81d6a4b13767a77daad3a50176
      GIT binary patch
      literal 1438
      zcwUWD+fEu$6kUhgi~|ZCTWj%FwHMGLprBaPDhNt~HtDDd_JIsA#cB1>Ak=<FpZNwK
      z+9#8mHtB0Ws_C9#q(+4l!rtey&f05V`2FYmPXJNm1lSnHs=OI~uYOX)T(5=8M{504
      zYlQdrvc>3PDkH$bFnsGe-S!Nw6`kviH3oYic);LD*D9KbJ_eB(LTv^&gU@6*R(Un7
      zH0nC9is)w$2xCA*cp0S6p=RS9Jt+~vJtELcC!y$kBqCz)-!3ZRfwhazFE5FB$k1or
      zEyNND5s$96OYuZZ#0Z1uOy`x_*{St<j5L=&ws|M6)^t9};5FqGQ+hSSE4s=>Of$&)
      zTrX2nbh^(^)cOalBEgQQ9ysxgArQ#lOfC8L_K{H=Z(irxZu6w1)%VoWu}0kaT3J0l
      zQ0uy}w+<bRBmI<NBHyzwNh(6Q#v7{62|Q-0xT8hM;GuxIu5DI|8%jDylMtbhcS3T?
      z>tZ4iUoJ)k%rp4A%1Q``^&Y1@4Z|YCNDl~utxO5|yXQlb!nLza&1g!UVLA}(inTyV
      z0V@nsJ)&Ab2}!IOjeW&1-lL>Bqn(C|4F3-m7Kl`&d#kX35>m(*Dzem)UMdbv8A`2L
      zFKb!dn4SKs@t8ASAp-he!uUAo=Y)&)0<FH7D`0m<7JZ%{kP3F$qZAzSfKqVEKBeH2
      zWu+j<_mzSu4=DwoOCBaG$bPb-JW94t9w#fwkIA~_DdhrBz7eAh&&iIPQ5GQ~0WVfC
      zja6)54O>{p4rLdhTTfd7f|w!CFpC$KI!@k3es1;`LM;Tyg<F^;7j3~$j<qmIZlMJa
      zxp)gs`?=%16J0j5&0>J!jba-iS{o6E+N@SYW3@#37=4%V(uy6Uw}vk163N1h{Q|3B
      rJG||h?OanYb=0p@er<+0)!DdnUm`^eM6r33;>|S*cZXujL~Z{Cw3kLr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_16Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_16Decoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef6a6745589f2c2d0a4379add7ed2491e1dee057
      GIT binary patch
      literal 2637
      zcwUWFTX0iV6kVrzHEDo0ZJ<DT3fh;Hf))j&G))45G%e{HEb%tIw9z!TlZT3mBZ@^)
      zK^)YX>R1YDN5&6iq&m*1|9&`pI-{dse(~iDpHAyK_ukl)7IZRm_uBicv-dvx?0xdn
      z>~}u^XhhtBB7x1rsa(U;%CkyCDxo#RN0f9%%{Fv*1!Ij(el@NQsc8qS0vi@_S`BHE
      z1YEw*fmk5o54A)DL`Yy+tCq@Sl~lGzN#;}wgM!9zsH-a+Fp1JA1eSM44oBL1BL!Bb
      zR@&Cm?+e7{-AcPfpxm%8a>OiG`1-p7vG%Ax5RJ99L=Q8ORxZuX2~<V{J%MOvz#qGd
      z!}YmYfif+f7*3>=r0--_ZBOe*at_X8``$z<k=-Y-zB+ubTI>nc^axm6SrBV8GjhR#
      zb#7E*JqviBZNXqokCVmO=*CLeCED!9D%g3Ta3ZBfa-)N4x=R^Mssf&{7FUuzN;)BR
      z(`e0(Br*b9!vB4ndjyK&<gU4QI=ssvogCJ*F@Zw`nakq%awksE&%9CYGmSM%c$HD3
      zY9^P=?s1_W+Z=e9m$-yWHyW^Apm<EnB(e!DC19zp3CTS>+}Mdns1K`I-Rg6p36D9j
      zOQ7n05#4wkyIHhRC3!+ikE%mKEge=<!`TsmP1T|Qk?vlZ)e{003)tpy**m}Rj`7DF
      zKflgNzR!(Tc?xG*9aY#esbMEm4Y(1+0b08w?7LvNy_b!2|KRla8$0L_!VVlREZBUx
      z-Dm@c%`%o_RVu4nYnHqd>7&DqBZvyPN0dx7pO{|BqwI$SOYL3ql1b5|bMKO#1#F2_
      zhsJIy8f@gO`6Spu5SL)5{P5Dm5YL?$9ZT|H=Jjz(T%B4j9an=1y{Q+p=r$P(+c^eu
      zteu=68|>5^@?AhNb!UO@qFz#<%XwQ?pf9JsqChXj8kE8FuU<~QqCoc&a|(65N|!Q=
      zN~|Vh4bcFsx~06f&a>A24XSFZZeoM{Z2C&y^Z>sek^n!G4KSG?^#j;K%SK}>w&Fqg
      z9uhr-YC4uk1}oye8q^x0tVhUp^M$-wH-ox;)8YbUW0O_?+G@YXCfg*_ptMh-L`uhH
      zob+1DF!yq4@$+7r1h2f;WcS)V<(IM5WO!`f;?dnDb?auZr+0P9^;!#4KVvDH77ZkN
      zO`?4XqBT#n*P6Z@)@fMfeyLAj)uQ0js4$?kS@Q{b_Id4BF~xArS201c|I<a$c*+*r
      z6_nk8f1$Op$)SIX^D!NH|Hbn$i}N;z8Pn-?dJay(MbW%CSiRRigHUh1*D1vr3y-zA
      zeg^FmcgHu0tb&o>thR7{x66dCAK6bfbct(v&z#cbIBx6mju27`m*~@_B2Me_oS4$r
      z^(GQ7_=wx+rGt$WWhZyCQ+rT_UN%!7ADg3S#xb_n03wK?3zM|Os3{oaPemLf{Aw7+
      zb4cJ6*I%O?$1`{fNu0+hE+T^oWVw>T6`aHucmdzzMf^;Bi#vYDtN4?<Zj<pB<sF>C
      z-*}yW+LOXT>B6`u#aXcuZ-{kxQ#9h7@Dcm*wus^#(MR5KN(JY|2rdW>?}{8QiI?!c
      zIL)=Ql;`k)xQGwMC3J|7@sXIKeVXzbJ`rCM-@s)#JoLL!4nux;h&p*@p`&irr3f~0
      zowc!ZY?iYsedy;n4RDu%##svk-QiH`i1|lMq~v+b$7S*=u%8v}=M6|N29jP3B)#ZJ
      z_hKL=&(pmayk@>B$M^);buR`Q=PerO7S@_b`qPo_&p=9khwjfnr8tNu>Dj^63KOkl
      zuM7|s>ox=ViH>uJQ@81eXNut|^CjEGipi(PDW`eEg7?cs34F%3`&@sw+y>Dsy<me$
      G=HNe&{w*E=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_16Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_16Encoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f411c933c7b410a968c8f90dc45616d9cc9c1081
      GIT binary patch
      literal 2308
      zcwU87OK?+V6#o9?=IO0KO0Yc2TW!-oL9jdu2uTx28yW~9r4+1bdYfKI?yY$^iX)>=
      ztsC9A5;l&7nT{I=J5n8WaN`EYg)?j%ALGWA8+Xnyj@0kJNoxZErqi7BpZ`1m`OYi(
      z{@z!&0PIA;1)IR;oKfk#ka;E3Y3OEWc05xoY30t-sp#;|u85H}N4260iok{kFyX4K
      zfdssv*wNuge^2a4zkrAdG=)v0RL&UXbS7WX><kJT<FQmK9;pGPQ3xyx4W=T)iDXYC
      zIeh#`vXA~@Ufr7)@Ql1x))GZ4!pis}iO_<zTVQ#mq%EG0XNni;epbL|XxeD$z6<98
      z-O$U2m`_{$VHtJD&bFrolrZyB4!;R_VMmLKW~>(2^a#IbbSTuG_FyeqU06p357JfP
      zz%q&0pu!_HzNq5Ks<uVNa;%Wr(<*#e!NSCKL+h^;MzmroGm_W%X57qX^65-bm*<*M
      zDUa(Vfvxe!H<R_UWr<z$@HE&;%>u_wb3&kZNyZWqs*H{Co%&wXjO`6xl~I#gsgf^u
      zd(nxVF6<C!Zs4urIqVW}nAL8tYHM%QZ~4aa651uu(bfpj-jJH~+pA(9_H(F;S|P(h
      zFmeL+w)U6@2XM%Rg97Uw#b3n>I4s~!q$9~_JTV}!{_**SRD{tZ;F_qEW%&eJ+QJW`
      z7{xIcjxH_F{}opelib}CW=SvWrXkUND&jcKByw8WN=2^CPaIeLKF^O|=Do};sp1q;
      z9GyZYKV}vS+Gx})#x)~X9+&eRdu-F9NXy{NcV!)V3GKbIglAO@$pU#!_xDsQL=L|~
      z-oL0~7%vH^<C#*juK3(kn{EjB8%`M^W~E$ryQE;8RI{k(bR&}wB{(^{al+(mi!A>~
      z$wMzp<e5dSHr#3NDYH_{YEj)<rMkt~E(2f(mrs5vInlyRb@Jrm$p$yio+W25*5C=K
      zi{~cpE4P@sPwuc~^I1~9){K=z`l)@*mlVprKu1&S6}Ww?W}q~!y9%G<8~32ymKs!+
      z|C^e@GV4fnP_d=Hz*7N2JhNCc1LrK(-^9j1>rHHyA6q}Of<42}?W6>R7&1&kJq#bg
      zMi##lN3k2naFFsa8yP__|N8JO(Sa%*w4q&oK~oE$gJh-lBonq-noP+~WDwh`iP#Ff
      z@$k#r5uC&J{$Sv9Y@EaH0m`jcu!+V!j%hRnw@KqHx^D!1O>;Oh5U`VR#~dPE$_%bk
      z>Fsj(`u&b;nD9G%iEGd)PFzQ`@+D60cX#-eIh-C??Y=?i8D$#2Sq$E1?(K5=oxXD)
      z!%LB9;2QKhWayyZDaE8>n?ayPuw{{81BXdP@cHvs=Z6+hb)omW7IfFQoRxhzkGm{Z
      z4rNPT#)p=i#%)X9!C#iFw(3(B88}J5B+Hy)Nz-V>8EnBI+cLyfp2IG#%sz~8u}0Zc
      z4JU8`1GvaIQ?y)Uq&!R%7;g%%Q(lIFNlf4ayv*2B_=s{EMSOx1ZV)wxS8)rM@Ey^&
      zdH*Bj9lU{`>G>Pu{DHUdC*CH{Df~@&7w_O7ObHv_wMOL<=ba5-7!_(6dI?L*l93G#
      z9yD%&oxFd*7{^B;^R;9ufA?}6%Bpsm+f&u1`Epge!=0*XliZeZYEIrRXbN;@U)`ZS
      ij3fut6X3LMuG;{wHLve+$=<gpt5sl)vS869GXEc?@Cm*E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_16LE.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_16LE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d692b5aeae4c31a8ac779ae96b4a6be0043764f5
      GIT binary patch
      literal 1340
      zcwUWDYfsZq7=8}Bw3Gp}2;#U2c-g?w4cHitOAv=yvS>_!r1)Veqe69@C8bk;%YFkN
      z^b?6h6TkYSjPL2nLVz{4IepLNInVpNm;U+t;}?J|HYM~hOdRv3_R;)oYTRyUwG-1h
      zvs`U&cc+@oS4tAX45PP>x7(H>x@L3R-CzhMQ~M0z?Z%NMqnAM@hIE^uk0I_c)J=Y@
      z>8@k*V;TJn5@7^H#vp_8HQjVS(3Lt7+#>?}@HCxW%q+?nV(9f&OUtVn8N*l0m0Te&
      z;{k)}5mhU;>(;FjKeA0O;~~TF9=B_xsC}@<Pfh2Ob)+DKu^1v4XGkV1H>DNd-`*0j
      z4OVP!y=k5vTF$O{ShvV+rBO5M`=(=ywZ9p5PwX>>sY+m8ixgn3!Clkl1fK9!+>zp9
      z>OjKdu4U4zTl#jnEa54+yc1H^-&PBS+-fx|A<2;FDytx2F1Q_DQZb)1j0Hd#dTJC<
      zqI*14X>NUaWr?~t4715pSF8^zN?2r=3GnIz6>92bQP>>AWI#&GqMSlSiT{TRA4Dov
      zgH`xI1qBp^iZv=pkctCOhTdp8HEYKfz0-fy9t+|YGNAto;tA7;AWCbAX55<rnK@OC
      zOFy9)AvLBOVRb+^B5GVWqN=JJl6qe^WOYP0;!$-}zd+(U-RZ#ueG|k0<RP>UVhyuc
      zM+%$Ju!TuFiM9DLg-2u=rZLm;O(iC~F#j8~EhNc2X<?eovlbF$QY{RTVJ*bS%(oB;
      zorljmo>ecF5(cn?alA&F=ECDho7MLyW@#FXUd_vc@V!iTg)Ze1Sz|7Ifu(O9-gZVR
      m*VHQ=^?9uL3^~f8IP1Gaffzy;cyW{B-8G874#m2M+V}^QyEMW8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_8$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_8$Decoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4bd770bda8cb0cac220fd03cf8dc9e472ff288b3
      GIT binary patch
      literal 3229
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_8$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_8$Encoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4bcdf24353c5b0e1e3c58f49424d81a66de7625
      GIT binary patch
      literal 2124
      zcwU88T}&KR6#mZc><&9l>9Q~_U4B|9(4}Cv?N*A=LS@TVa0^IVkUnUq%K)p(4%wfo
      zBqA}sX<|r>4{CynDQPs(HiE_&e;$kpsYxG=HPxhQOcN3xj6X4g=gw>e1X{vyzI*1}
      z?|kRnb0;h;ef%ka19(`5gHSn~%myFVFX+K!+ziG>^i<l&1kap~Jl0s%o{X7;MoNZ6
      z*tsqyY};HA!F?p2jAvR1Wr65s!OgXO1S!lLq}CU&ek~oF1Qa-Nj|vx5&T@yXk%-v5
      zH5yMEUD?s|M(VVFK4B1iQ8T6|`t(#>taDB&GZIe|s-kx<ubJS8ajbvy)C9$_f}^H6
      zM(A9nQiQZ+hlZGE#o6|B#>hEqH((W6dyRB9k!e=24aG9H6ACw=RIvkoLf)8}j%VU#
      zlHd%~b|@%Cxs0;adsZ^4*eUjSQpTvx2a+5XDJoP{VmEIeHZm4T*n?{9kx@e^y^}x{
      z0o1aB?!NZkNVL13P=5D<>V)okLQ$Y&Rr$Gw2=)6^1hJomjAdC)aiFbs!`?Z8Z+JNH
      z{WAZ#zO1n1`&2aGFdzD;o)|JyqsCywOht|4aAt&1u_oVU>h4$31U^!AL{InLZj#lM
      zv!W?SRkVnbJ!iU(+ck6Y?^p(be;si?1Z~6PX9`o4qit9V!4*&Tm^^3H!B32zFh7Ir
      zzn~|wJhI9uGn<MTk+_&&#TwClf{B%OB$GxeoY2#0BQ2wwXLa+jCdj$L#(oye;`ztH
      zj|*;I%Z%C}SsrC?oiESl`4GxwD`t!ES#Q3D2iK9$Xqz30t?*h*3JTz39tnjgviY1h
      zc%^W6KB$|A)-p>k)z71(LE_b}2AAgYK0AYIO_JV1!4*_BdFsmMvA2JR=ly!kH8qcW
      z`=58xES=R{1@iI?nl;I_KC%FxGm(3I(%QhwNnW;2Os?$r`wnQX8C=y|zJoLPQj_F$
      zEc`0;Hhj`YIJC;kG8<nNp-0v_cQv>*x3Be0C~OX{-^Y5L%M)JZDa|dwr0>|d2AP%p
      zs>xp8xL2N7rB(K-<NwLcdEDzfEA=>L(Wy!9jr#Bd7p|`D!~dDqbjB)gX>4tIO?f$(
      z_ZjkdGHU1&pKTC5mL0$=mYv4CmYu^FmR-P)mR+Prge9Hcu-5kE+~RA+ca_<0GUrb`
      zJwNk={Du<zjtcz2IYOvs8^oVDjK6Rcf1@4$;2|t=-VplO4qzF4k?|xEo*^e*AQz^{
      z&3Zz3o$WMvaFG<&6~Yy^bF>AYP(JGm;VZTa<i#~A#0@H9ts&fEyGX_4AU_pR3Dr<3
      zHBuR!pmI7%m2`@Bb1flyl&wzHG{zCn(H@$j0KJTx^cvN3jUl?o_7Vl@9mbdGkaaVD
      z!FDn8w{Hfc2l!@@g~B+_U2)NSTw#RoU_OfZvmD`j669XkXn;FlqiOD+jpm@{&;tB9
      zw1_8cL^?t_UlHHI6L^q&E%<CC_-rKjY$W(>B=~G3_$*}c*}iMc*ulunZ_n9?9DFjJ
      YoQ?lYU?fgCij&qCfWKSlLJ$1^0&r~OB>(^b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UTF_8.class b/libjava/classpath/lib/gnu/java/nio/charset/UTF_8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4185988fc57bc2b4c77911679f99b47d407ed266
      GIT binary patch
      literal 1316
      zcwUWDZBNr+6g|)0TIzsV6mh)Ci@JfM8+);H2;zh|vw%r~r1)VerGb+1%ydKk%YFkN
      z^b?6j6TkYSjJI7g3~Xqd_TJl`d+vEopZ@y&^#_0qUI_>=#E<xya$<Zk6mB;Z^Vo2j
      zR!iC4*{rDoLJVU!-jzF%A+lm~yS2&?OeFUhLgmJxC1QXfOzkOZzrzso+Uo{CQnZ$1
      z^CJ<145EE-n#wGvRT0BiRZ+xUzshIRIT0gQRbIq>hQV{2A2!aLsX{)T&WLzGBFv8+
      zqKBk_=Bg5c7>^>135G<XdVPNB!_7yo`r)e0t*x`u1IyVl4(b+zTy2;}ea~=gxAq@~
      zTE}*iVWQgKwi2l}8@y%MoRE{ggdPr-lKTSY3DTQOtF3G0N=3jEhUuP=ind)-)qJs*
      z5s>K1Lz*&$*Bb&BZiiF}@{D2p76?PYq&3C+FNs0o*7+ODq`lxU%q5b2u|B9IV3}dI
      zzn}9yP@+AXb3bhUAFl3oL~QW?5aEMJMDcbJK2U;+9Pw+7Gsm<xZFf&d9%9LDWQbNc
      zx14g_Xf`dfO6Xc4_zXyc{usDNh^{aqR11`yco~phkj0qr9g-fDqnaL)hcrDb$22`6
      z%bG68_cUFUM>Rbbk;k-4#J^Ba0F!hdB{pCk5;ib}O(gLa3f@r;L_6G=#v_UhGnn<~
      za*6?pON&1-*G7WE<2Gg}ur}fpp0+VUA=yTh!eSfY;6>=7J5~19v4tUQV*>AyqI}9z
      z<FWb^-7G~Hqf_xbaA#-930K#^H)QmMOJqNHX**`@{w02(E53l|Hwjdi;Kg-<{T>7X
      Xl)U>2UV8ciw6hpi5vPyKu!i^_QL`rS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/UnicodeLittle.class b/libjava/classpath/lib/gnu/java/nio/charset/UnicodeLittle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba587056b74060bbe7dce70c82cb79e9da92f862
      GIT binary patch
      literal 1218
      zcwUWDT~E_c7=F&yt+R{|ha!$ILC|i%%2ae@NTL(sl149vB;dtTYBP?Rr%CDbzw|e7
      zp;t>Jnt1DvGQOv479Cr)N&B3S=REK8zUS@FUthliDC41u1j9;8bd2}bN6Qf0HS9CX
      zJ9m8Jjo`NX&M~>~w;dG<!|WAKt%nThT`su4$B@(uM+{1hPG)e8VSGSljA1I2X<MRY
      zG<=VXmWCw8vq)irLD$W}?dsdBOESo$$%XT(^WoI-4z1I+!;mvw+iD+K9+&fIQSs0C
      zIm4>??<}hf8QT@U#RZ*Mh^!1rxLP<-F+-H$nvLeOMy*~~G0U(tlu~cJZdNMWJI%6+
      zJVSoC&f!6`qGEnz9NI5Ge!j0_F`i-)<qpGK422<KQ_lI(DKluo`Sik(<?<Nr>V=Wq
      zh*VW^Z)A6cQ6r*;HR!Sd3Ji-eRj<oymoE0jf4GQ9<YF`4MMTuF0YkdjqFak|aT3~S
      zxE;@S4tUsjf3;Cb9>o^uZ-9IhdQ(W#T&2+ttun%~VlI>X2Ca+i7n&w8Nnec+ctTjg
      z6pgYyDy}0($S{o?k&Gae+|v3F+zg--+zPNva63SrU@pKk!9sv6!BT)!@<O@jN6Lk^
      zb}@mcn8zMAX)Gho^i-pWa<q&Uibb`?Y83ksot3_{OROCi)h_OT?(3$*o!TGnwZ8iz
      d)+2>&DoB{wB{q(Wiqb`CP~zp#0+d76gWr1jBpv_&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3cf9112ac6060e83826a061590681405c986c1d1
      GIT binary patch
      literal 2657
      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
      TDKC2hR7uM+C$~IvZ&m*WA*EzJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55fdf449389a5997ee47442b1be8f1d1bc6ce549
      GIT binary patch
      literal 2603
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8885cd85c7b9453fb33a39c509c9a55836c0bd06
      GIT binary patch
      literal 2585
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..522f9c3987e691b50273fd5b97e08b5ab5856aac
      GIT binary patch
      literal 2587
      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
      I-c>681HbHFEdT%j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a254778da8be9bb78746d375ad54054d31c5653b
      GIT binary patch
      literal 2597
      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
      CuWl9q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2326a628c88ecc23bfd976be084f122c50a52cdc
      GIT binary patch
      literal 2581
      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
      Y`4pi6RO2k4>Mn+3`Z^bq=bR<~Pi+@uIRF3v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..132aee7793157077d377fc23bad87e3fc9268ed1
      GIT binary patch
      literal 2599
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b2c6935ec382aaa68f0afd87b9d660ccf612ea8
      GIT binary patch
      literal 2592
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dff7817b2ac44671297445ef002468bf946fc93b
      GIT binary patch
      literal 2595
      zcwU8;2Xquw6o&8Ho&vdV36KN`lZ284LPAfYh7usOEE`xt+ayb}5OzZfp<@>tDmLt0
      zQBebkAOdzo>>U+*Lq&;QRKWkv;(?>bWAf$u=FQH$DLdy(_8;H5hlu)8rjsm+jOtKR
      z_5%MBe|9Js&aSNS*Ea+jv!@3`RpI7_zWoN~I?485Ta8@S7$}M?D{|C^!wZ}06j{oP
      z6uAm3YlER+<4{G`^o%k^wxV!Vz)E!DSQIIWjU_ud6vdSULxD+6iz)*3)BF{+0Y&bT
      zaHYSt%wHdr@yV5rLUS$`Y3$k@Ik&9H$+c6&=84t%L)F=y#`<8W+C}XZ#hi8xF6xL$
      zD(fQ4iHe++by<-?Cvz}2GU$Tcnor-Y>#5_Jn?#e9Qer8NQWd4Am;Cd<1?B%<l~E=a
      z+%1;6%LT_o?$XKYvNhHO8x*CM{NI;QpeWiCZmO>gj0wt)eA;JyWJgNDL2!HFB)PR%
      zvXG0M_)`=`<lI0utRqJ&Zs9Jw&t~)b>~^ou;qdyLPOs19^7`1p7_pNvW*5tvD2{@o
      zIU0`P7&w+=;Wpd`Zp&@qIF5ty18df>o853bZU@J6Jlvk!!yUK-+>txN37h~Yaw43>
      zNpL6b1b61na2M_ZCv!5~mAk?Q8*mDzz^R-Hr*RtGjl03!xjWp0d%!)pC!Egda0X|<
      znVbpt;$CoX?hR*g7TkyXz}cJ)=Wq_(m;1u~xF6h~`@;ix06dTf!h?7aJeUW=xtt5<
      zaUPt{`EUUjz=d2058)y3P#y{o<6-b{9uAM-5%5SJ2^Vn@Jc>ubqj@wuhR48Tc`RJa
      z#qc;D2ao6R@C2R!mv9L@ktf2FcoICBC&N>C3Otpk!lhgad)Na{<7u#$y>J<q!P9v<
      zJcDPz_=RWkOt_rO;aNNjp3Sr2IXnlR%X8s*JP-D>AFkjExRNX3Dz1V99DwKZe7Ksc
      z;To=igB*kx@B(-tFNABk7GA`Q;1Gx4Fo)qfu7elzVz{2`;RbGi8@Ul~;wE?rFM*r6
      z8D7du;bpuGUe3$m6}$po$t&Siyb4~;tKl`g#_Q8`hBh`y&vZvi&eBGb^lYuxOV80p
      zvh-YS^pKvX4MTdqHd3T(wPmmL0&V0-FN{ockv8(A7i(22y(F@FT_l%Aa#<voYa>Cr
      zUK@$hE40yBdZjkHNUzdHs`P4Yw3A+=jd<w>Z8<2tR;QSsUl*C~dTr!OZ_vsky)m--
      zrbuqqYN_-VAiWhxZv)cXf%Fa_y%R|90@AyIbR&@71Elu?>3u-D2}th;(g%R_K_G1b
      z(#=4+1xU97=|e!e4M-mb((ORH14thM(w#v1D3I;~(%nG12S^_S(#L`H2_StENT1Tm
      zB7GW2p8?XnK>93@?gP^2fOJ2QJ`bcXXe&uy1k#s)^kpD@MJtxR3Z$=TYn1eLAbkT!
      z-_*+dp56k|w}JEkkiG+??*i$2Kza~J-`C2#-ydkJRr(>2egvc+1L-F~`l(jtcAo+1
      z=Ro=ekbViIhk*1eApIIhzX8(2+Nz}A0_k@^dIU)EzR}X}f%FG$O_Tlzq(1@a&sv$!
      z=Py9|E0F#Mq(_1DcOd-(NdE-VV_KQd*>P={&*cf=-AXZ=%{O5icpas|1Mp59Na-|)
      zX3$_-OS!az^5_uds{|@g#Z;)4(h#+ghN=TJ%;KWqmRuTPsiBdU4OC>=N24r9X|y$$
      z##kF^taU3DTU%+IEr-V2>S%(kg-UF#G|`?zlk9ag+1^4^?5#A_kwc}9I`TMLXqw|N
      z^>-YhENW|>nY^*%{(ei-3cR_M{CAe=W_Ii*x6kU1_xNn?4j!M~o#62~+({mv)7{zQ
      zbGef}+sVk>LNVJY?bK!VFema+G|j}s<rGh|D3NAUGR?sam`fStryQy<4<8#j820ID
      Ko=CbmOU7S$%V_!l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/RMIMarshalledObjectInputStream.class b/libjava/classpath/lib/gnu/java/rmi/RMIMarshalledObjectInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4223c7d9968c650c6014067fb9272df7c2d7ca76
      GIT binary patch
      literal 875
      zcwUuL?`zXg6g{tNn>D8U(QdQ4sof7X?WV=Ab_#2CQ0O*rQW*X8nm)ReG;bs?!~Iti
      z)PaH@75t;b`_i;dhJs)6&b{xRd(OQ{e*FCW6~Hr84Wt;h2Yyr=@^fAbMsDrRLF<4A
      z;VJh#(Ld@9g`-;jS)`6tAo$2Yn!)~q5Q^Yj1e$lFnjz;&XM$JTF~^m)8-;a-?5^v(
      z>Lr6=cN^VCrNdype&>iY<w`#^aEqZh;kS;aHw@{f><a^P3~Q77#)T4lLBKDrNtnoE
      z!GeKBhK#KROw6FDGfNC5dur~wtxCth3d5bh8aJ_wVh&VdA%iT#eB1TKVKnNA;4SZY
      zf}zls4);1daCMv{)9Ta>8J@KNWB0VAS=k%v;fR{*HYld`CUJfs)SmB4#m8$|vMb|}
      zJnjz?<8=dD4CUYHrpLqZP^x_y`Tglm^-zy2JjMpS15!?`P;e}xz!Ced9%1v}Zl7uu
      ztkY^{=vyPddOw6xgbmEnnWHF8kqL{CPq(^qtNI1`lkF?aU!kz`4J#BcpXl69oV)!I
      zrT1~4yYwtj2jDq%sAB=U*u)F0Ql>oag*Ds*Vssx5NK2zKp%n4fv5~mQ(rFS``)E>?
      pu3M~rK<PU&>{5eIcz8J#or{|{XpAP&U&Vsfn3M?8KN440egPT|&PM<M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/RMIMarshalledObjectOutputStream.class b/libjava/classpath/lib/gnu/java/rmi/RMIMarshalledObjectOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4956b2610a84874863790c0ed27de14c2488118a
      GIT binary patch
      literal 1182
      zcwUuMYi|-k6g^WY%hD|^V6jhYwJMJaw!S{Jl0efckxF6>N#m!5j<96eZFYxh|CJ^d
      z5>5O8{wU*}<!SK|v&rtAd(Sy{_T1V1{^QFx0NZ$~V2WX@Znd*b{anvFEhGE-sCcA1
      zZbLUsep;?Jc}<kt;;b!>g~Roh0zX6Y7lzB7bM8puB%DDt?b;w-EqNrv&Q2nC8NviD
      zTnO$C@asdoOy?a(zqmpP>=~9Jatup}k@h$wSz!nre5mm=Vc3?dV3r{^Ko-lx3WI;&
      zKII|!Ft0&HNI{fg?XUeqh~Sz8FAzIXOjcAdT-Tr=s9=d<`Oj|~!XoA+d{x6V0t|B{
      z!{V>nttxlk=v9+5L`!x}H!Heh$aO#I7Y)N@$dvwPX5^D<SDOP@<G*)`Vb<j$Z&|j`
      zdyXvhJvDW!o+XrF)yYq}^}8DGA;B>7-Z2F4b-aS_C42tsW1`VXO@`@rX4`Er_!3gz
      zhm3|awq&OaHK}t^>Yog0bn<OMI{#3^BWzPy*u&{iuVcII)cBzx-P-(zF&ViPY|t2d
      z^gT?`MYHfC8X-OXRH36l>zV#aLzto(#Z&aWol18xm->pxNra(`*d^k$T0BX8M!bvV
      zORRkI<ksjOB@(bpE%p$@Gu%QBHz*VDNnsr~0WaF18oek*n-i_`-ZlZ1TCAiyxHD=H
      z@(Kmo`Tm%&IuursM2du%^malx=T!hL)x~`&-a&Sx9rheLB>Z#Yz3}w49=@;7@PPg(
      e%+uQGYXzkb9qfD@>IA&}%Q1d%$bamip8N#(Mgpz?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/activation/ActivationSystemTransient.class b/libjava/classpath/lib/gnu/java/rmi/activation/ActivationSystemTransient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3441be9c8d8051a1be1560f1642cd6651aee66de
      GIT binary patch
      literal 8308
      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
      OX2udkOqMdll>Y(ltd5re
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/activation/BidiTable.class b/libjava/classpath/lib/gnu/java/rmi/activation/BidiTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2399011b82630e9b495575ac0facfce5d67371fa
      GIT binary patch
      literal 2027
      zcwUWFU2_vv7=BK&ZA!8&ZE0HSM<D_sY0^e&MWh9U$VX^e#L(c^jI&Lbc4@lHWH%A?
      z&hgGWFLi`r#u;w7&>0;jGBRFy;h*szsLwfBv!UG%CX?NB-t)fC$Ghij{`~vbX8=y%
      zgBT(LsSUeXxNWqILSx%17&Xso8J^|Xg$vfYb;DSzn=xnt!z!h2*c*jwYq!ms$B=6_
      zETdjE8!q!#OYaJZs{(^X$96r#_Nqp`Y4)M>5dzVzxt75GvO;QlR=u!n+*x3}HMb?u
      zzi8Q(cb3ykwkn_%opm#gC`NP)Vkm|K0wY1?6~o<RbsVD@*$07f9dRV&=%5ZA3CUyG
      z=1OyW&1@(a0;6T8M!5z>bM6N<Z_{!Gj+9^61}fDuC8@3NR^8ZOktk92hUqPt_XN_J
      z^3E15WOs)WID%s_9A%%L>w}IoQZ!FE60~INq~cxmOu5r!%JC4o5CK)mm)DWSjKHb?
      zR})IQB|YwInA=XvRDP3TeihxEjyI&2{!X?)qUPA1VcG89g&)bnw{*<oO@RS-v+1on
      zpV{oVYkh92JyDVwi#p!MX@)7sl~CD_!(050j`O%c4NR=amX2hyJsXdqg&4SD$AVbV
      zsn=P~XP!V2i}G?=#})7)4_KbrFg&NhjrJT)$&ZtB3Cl5*`OJ2&>R7=winh(WR5F$c
      z?eKUxObQnS566KJn*@}y2pA@ab(TQ9;xrpI^O7aE`cQW(&&mR%cv_-7no+!jKJ;@I
      z<1B&!X!0;|tjVLqdz@=LguL$O>^dt1?=Me3!SM7`jDGk8W4|C73@3h4K$E<V5(K!+
      zYl+2INwvfu2&^FZeMJ!s;#D914DS)%`y_k-6j#9tQ&$zhcqhpRkfSLaVrdG8l`{!-
      zjyW<bG5s?pa&5d8!H-?Qex=}(9<W3gEP><5D6lN1eXvhyTefSGV98v*ja(ErC2&61
      z83$U2RN^{KnmCACisEpmxJxmKSw$g7k}N{9bg1%Vxbp2il+XIg3wYfJ^Oz&a(*f9W
      z{tw?s8z&;ZkIpc#F%J3mZW6OaoV(<^hhzAn$4<J-oA!C7lK<@RFz;dKWCV|Q*!l7W
      zc20HoUyeUnAp)fxh_8Egmhd4`@`d3S&hswU;!;H$JR>_reA9yv?;@PRSs&pCx|TgT
      z-9b1f@H>iS8oDU(8=}h`T@qM{p41*;IG@yJ+TcH8<tt4jwfwV(|NNB?p5l}`Zr^g}
      ze}@Tt&-r~E#RD3?PqPn|lKBpsuVfH2)bbv+Oz;(V9q$uqiYpb|psp07t2_c4*Q<)<
      F=D#ayZUz7V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/activation/DefaultActivationGroup.class b/libjava/classpath/lib/gnu/java/rmi/activation/DefaultActivationGroup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..539b79a3d2c2af6c92f046d754c89a738eb8bbb8
      GIT binary patch
      literal 3584
      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
      J?1lW7{{cZa=*|ED
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/activation/DefaultActivationSystem.class b/libjava/classpath/lib/gnu/java/rmi/activation/DefaultActivationSystem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db9506a6693ce1778f4c00235669a9284d14fe4d
      GIT binary patch
      literal 1936
      zcwUuMYjYY^7=BKm>;|??LYiKqq1skLQ)pVXDp5mIQa2@m07=ANaDh|YX4%DM$s{`C
      zj34|N{)aZ1Nur&x{iHMgD988g5-@4d$`0r9UY_@U{`~9L-vCUbE@6NnQ8(L(r`m>=
      zup4?pt2+9I=IEB0xXYhtZNo`*DTS?;!y6L(48yL1p_%nWw(^u$9fm;5WiwpO9EWxk
      zCdqIvHCI$uQ$;nqRL-aGsfA*`RL*7dMFyslja0$Cm2>%QE}buy7{ZyJ-GXE5W}RTp
      z`~#*?DiqU;<)zeOnn9ka8oH@FpE3BNldBB=IjhEH43lYr6DJqrJs0Cm%XS7qRul{(
      zDC0E4<>Tazh9Y#%C<r0QFqF|vzSM41xLwpL1{XeCRn1t{Y+c+t#K4T}SP(v3RB#?A
      z$vNj6y~Qw{`JeTm4EXAt3J{G>zFFplzn2u8Kp=>BaYe%ALk0Du6kNr73?YKf*;bR=
      z&K8w6`g#E-Und1IiE9#K3?n_BYC62mZ3R=fPPJ)jc8e2@VeB|iRXCYYAVHQe&2aWG
      zkZo#4+O{oQ!mUG0PybF^H)`CL@c~&<%?-`aYmp#s;<iZkM}2Ir3W-k?Br!u3(wa?f
      z))=n8QOq5SNg32_a)d0l`IKvNRsg0L#-nO~H6b{s;4VblI+n*|I2}DUyEkxK#urqy
      z6;rfR#IYi7IwLX`sAS@<d)W>mgCz-z43TbY*u1W{9D6Gv8q?wV&Q(DcIj`UcB!-Eu
      z(}y$<1d<`-QIt?%xX@op!3t>l0)}O+x0?)C`e#(==Xt|&cv8Zbo%#E(h7RH@Je2T&
      zhNs``991dWn%UC1=_q)F2`_5ZY&n`)<r2yic+W#`n&&OMp*iWzDsKuH2^zy_PpHeF
      zY1CRay<qeo|F_gJ1PfN%uJU<Zya?lc#yc(`{Fi7NeDrAhA&a@ClPpHV-RZ4z_mI2$
      z=%nBz$)BRzE!xE|6du~aNO*JyW6$Y2fU~roav@U$I1kZ)=Ufg*<$M<)LA!uB5!=Is
      zo@&4)dMb)1fN{J<`yk%Ngs03d5>=S^X&aG0@I!cLAMf0c{f_0>KB7B_ZzKLQ7GB^+
      z=>=|<!td|l!`Lo94u47u@pkd~F7E7M{^eR%=H7vfN=t`3;$QH<_HjRRZ5w01V0i$q
      zu(mk$Y;7N<9Yn~1XXN@YX6buO?r-5ceBB9V38S<w6Lp1xStF?jM1M%(JfZ|X#tiMV
      zB%MNq+PzBMRv~H~HLTNTU=s~Ov+zB>#gA~@q(mri1tv*~qO4<x^lFrrO|mHpI6!Ca
      Hrt`_)c=Pm9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl$RefProtector.class b/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl$RefProtector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c23886f98bc0c59d07d2072257fb2d96c9afb0c
      GIT binary patch
      literal 1143
      zcwTi=%Tg0T6g^Ec3<;xzM<5VI0s)c%89+rbl$)SdsFYd+*|-`eO=y_RQ1bvkfS+*b
      zinW&bs*(@zKV10_>g^#_JS2<mxwr4>drseb=jWgArvMgEQqjRM*>FN**E}!{uPKar
      z!!lN%mn+SEJHO7iUwLl8t-$qE#2NY{SQrS~*bq(bZJ7QZL(=2h+~bbLeTJbo)pJnU
      zwQagBT&Kj)8SDr@KhH2yZO154E5Z@M6NaTidsvG@9{b!o;GXevYqzpmS}Sfc#LI4-
      zC%|w+gNm*sV(8J3K#Cz&C~m6gV;Hzjqr5YqK|yB{gUF~DV#r<6&?0;72+Q<?TI6XM
      z#t1`qg9lIF?z>*V>kN9~OrdQ$4XKR?O2z97lfW&Es<_QC{@;76-1PZ6cle=j8nW0L
      z?qG~T31syddM~7m8d6GP9C;NJ3_Vvu8YVHt(B)e@ydK(|VYqPhx}-QOVoy~#{6*N@
      zl80Lo-B)!j)7~^aA^p~2T=tY<x^1g2%@DOWChCOGv}+&@lYH8STNMYCo~_Xmv?_Gd
      z3!QHC;+}^4vX_cwbCYV2thu3Q@n=Hn(OR@~GCjE!$KhVtHhrJ_Dwc`4olpW_l!`GL
      zh8X=N9kgg7fK*COQ|lywB*nYQdWX1-Vp*R#fu?`KO?~$C2YOG?A6rt6F`$1!e_EMM
      zD~n%|t{o|ioYVJze}6<)&wWPjLzHrw_E91L_K40T0t<bpBZF;B(RUuZC{R=<IwC`n
      zEJW4}W+O?<xQjWGoJJM~;T00NfK*H74n-s?A6q#_Mrz6~e#0V7sx(>ch_S3RN!hP+
      tMT3+D@MsSxQ-~q5CvX@k89d9^QqqB3#LCEe5cx}ZNMBhdhDUe|`~xtM48Z^Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl.class b/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8595984fc7b67b0f3ccea67ec22d21785b52e93a
      GIT binary patch
      literal 1554
      zcwUWE?M@R>5IwhayHJaKe^pUXkhUl-il7uxECpMO8Y)e|A7<HJak1US-7S$f(ErAm
      zsEN@R(8P$5#Q58XGS0m;6=)l6vfcT(Gjq<&-2L_Y`wsx)xUIs&(7R!lqMO>b7PX5;
      zG{2!o=NA*H;#NV0mtp9T*Wvayx1%ejp=*wtmD)0Yq{7G0dNc=_=)9p7a@=+d%Uns#
      zGq5y6bHXwmS2Nw5Rw!`=`#;8TER&qeCLiYJGAqe_bJNIA2H%Wf8tyDZLnxeM@F$<?
      ze9NVbj*1Q<P$|63i<ZkPZU%3{%5xRn3|&V#++E*H&HK@X-T+$AM`uH+aL$ht=vQ%)
      zVc=-M@=_{m=})-3py{q<?*woPr-|bRcMsXAXQ6QBU(s<t8ZanIpJ7OZs?JMz@l?$`
      zQaYSX^ra<ZnEXzuxX$hS+IoRAv}Y`x+ON?NNG}_`?qkDY2xjWdJ<g!y4cpxjz#h~=
      zmd+ds&2Y`(@o+7p9}%2aF-mZ%y#ZXn7(*j9Q7(g=aau);VYnW?A=<cmHVs-(_almn
      zqK%grCPVc()#V{(9>L`RCNagJ3Lr~jQM*D%*a)*Eb5)d^X6OmkIFJ^TXfX2B;of>R
      zY0(}2w8TwajElNm5UpV7tkpi+cj+#-N6|^6&5r%=WF)FJfy%pGH1Z4`HT-nP9M`tY
      z4Z5IfR55FnY@II{VqXH~7LJK9Qd6eM?L<Ly98M$y2Zw<{5P5nOco2k&Mv|N88hhYJ
      zF9HYjW_hj!tt7XR#Y<W{I!U@NWuPsxhpts+7d;K%5ZuMUXBl{w{{8d@o>TA(43QMr
      z55O?ai4O@z5UNW1ia@FKj`exJB0QyZD@`xop|KOqQ_3Eqk<o4{HNJ<)syHwqv@6rz
      zKJTYW)gXNI|C+MA!EwAr2i~I}A83O=N)!_i->g^}g^=Qyk;r1WM$|o0nw11qgmHsx
      z3i;=7vkGmN9#M_`CGC@`z8omUDy3MZ6swe?+lzThDWoJ8<V+T2wp&O+G?CHWVMqgi
      E0JVBz!vFvP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Skel.class b/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Skel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f745a86fccd745db1da94a4b78f926337abc382e
      GIT binary patch
      literal 3350
      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
      IPW`q20zvpdt^fc4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Stub.class b/libjava/classpath/lib/gnu/java/rmi/dgc/DGCImpl_Stub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af0f76e26f5599b11a94031f03c42f1626926b51
      GIT binary patch
      literal 4340
      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
      SBtK(tiR7ohKSOk&zx)p{9dp(I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.class b/libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4877483282ad2abb397354b48a8cbfc1a13def2
      GIT binary patch
      literal 636
      zcwUWBT}uK%6g}grtJ|igY2OebWCm?g^il*N3Bl4siSMHgHnonh>(=iI`hXt#0sW}x
      z&LDk0=)>H(_sqHHo|$?7czpxVz?zK&L!+-^?}p!TFC0kks^9Z`!6R`Yl(?6w-{#S6
      z)gWy-5TPz@BpFJkB_7GZ`#NAqkFI4@-DRlylVuNye<YP09W!j!rfJyfFeID9E0G1m
      zjEfY~4lK;Nu#sc1YMPMur4r}ypsP)F1Hn-Ahdmy2cqnx}29w$<!`>8g|J<K^TVbpm
      zl(Ar=!mu$}!o{L?m<lz<;9L&luqRqlJE{C*?`Saw_e?1fHUl0-f~@9#+rT<Kf<-^c
      z3I+WVlqG1{$Pk{TY@ce4IQ8u(3NLUU3@1-9O&s6^1&Xf89n7Jq)lfoitZ+cPKFib}
      h;XGshyWcU&r!=kgLnAZRNMOmtWvm#kRw-i@_ymr@l8gWV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask.class b/libjava/classpath/lib/gnu/java/rmi/dgc/LeaseRenewingTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cab36a1241e64ada09b341b70f68fb68ef6ae9bf
      GIT binary patch
      literal 3205
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class b/libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b36276948979914d486d42c2a087f76b7fb8a52b
      GIT binary patch
      literal 4240
      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
      H`^WzQtws?Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Skel.class b/libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Skel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ac5aeebb600d08f857c770a82d0ef0eb44610b9
      GIT binary patch
      literal 4107
      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
      HML+x>(n}h8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Stub.class b/libjava/classpath/lib/gnu/java/rmi/registry/RegistryImpl_Stub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c75c88893013f4ddf9b84d372ae57957c0bd831
      GIT binary patch
      literal 6139
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/ActivatableRef.class b/libjava/classpath/lib/gnu/java/rmi/server/ActivatableRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b3f048a052c8440d17a1c7afb3029db4099053a
      GIT binary patch
      literal 3872
      zcwV(u`*$0~8NFlKUTL)?;Jhp+0Rf@dvJ;m_f!H)HI7v}(Y)EW{m_Arb8+#pTSFBb}
      z($ElSX`8mBw3I@4wY0S9D{XR4kV$n;Nq_1&{iAw%XLc>GCE27u)ILYMJM+!G_j}AY
      z^Y8!s{T~1xz%>mW0{6^0)!_wm(H!<l_Hf1W7A<f1iM($wn!Y((w2oLOG;|8w+0Jg-
      zvGZodr;Whv9J9@0&hjd@>r7|&3y4Dkw~e_@#Wx*4XBMkg7lJ<_&}HWRY=HvC8>nVL
      z%jL@o_?q26D$xD7?b!Z4fmr`QPM~wlEm%5YxZQw(+XOa_+m1C+EzMfqlvFLyGw$Z8
      z#-t{Ghl8E|yj>C4HU9ZdlXSX&yxC@Qc7b|=;iBox4IlMA+nF29wpboHoE<CLmg66F
      z^CvC;AboSaGou4JDSMlgy@fGwXBTY7VA~o*R6OrieCbUKCFjbn$2pN@Sn?I7pjGc0
      zDg^r0@+}Z}j}({|NX}U@yJJPO!nkF^MYb!At-L>3^~+U%bf8sT9A6OFusWoa=~gLt
      zYkL#{!?Vo7fz!U_Ic8Cyx0x>MC^i;=e&BT8D$DYyXxJ^VY1uG4*_hEVERbGNrkt2?
      z{ey1RDKxB-+zAh9crbzyAv5qWzC=1HEEpEp+#mHf7#-E{=rY+lm7IXUUIRLkl6KU<
      z<M^_GCef#-4mLxFp_KXfih%)S1UhU-U`yMuaI2m2Y~NamUuvy%<&rpnuW68s?JNvD
      z1r}9O;VrwprN7ndfm|F<({QB^JSd?L8<@bPKwJSR&sMDt9SchBSp!dEjLEm1MfapN
      z=9Wq>ot%mk=n<>r`c`z?dDe*{1q>gy{CT%9`h2Uj?4h<<nqJPc8g5j9Ow2I@&*3=J
      zQ8FEK&hiBIwCxk2v+QdQF}e6~V9!K7k8f!By1>x?vd+La@hxVLTWw`dV1Tu7OEBbp
      z1g3#m<Qej?@+?_QGXpI#)WDe?Ep0+g20_wMz?^}3*lfGO_7~XMAAwr6NVduZ(|Alr
      z5!`bno&?QtH{ha7ZPLS_lWba5=xUH|c<?oFc3W$rpYhz&XAD%aC@ZC+K0~a{{Vh-f
      zGZO5yfiw6v4al2iapl!6e9CkRMVZ~b?Fzb0jkPRg5ML75y<QMo*628kISnrh+`oR4
      zh_tU)Rz)J%G*4FTV!`s__%2V*<yFpH+ID<5U3DtevOE;5LOL%4k=Ah@ugP9MDc^oz
      z;D@-tw3_9z<?!6u{W&36#W^Y=er(_;vS-D8H<;9M4zFqWDcf~Ztu;J}<7Wcf^NoT{
      zpD^trB~r0G-A2+0Zk#s_`~utAYJ+G_m?cZ{{ZdMPyGiMC|5!)qMO>0@zq@j1MOQ{f
      zrsh5OlsuqRI}&)`z!7{PaJK&zci;b^P053Dc0u5d7HsCOq_B8`ugycNvgw&6xzXBi
      z%6muIsg~sJ!mP~mA#=mZyhV?B3|S9EkD<t+%gH2<v#<$KX3UfQWBWSYgKFowN#vFs
      zUc+pSO~s}9QMc;lt%J6_-fdca-`FF;a5s}0<CU`medt0rzclp~=PwUp{%RcKEt0<*
      z`1KH<g3qqZ5;k5_rgtdQ4*ouiPL@Xx-;BTro3L5lXXSk^1bBg?@}8?_28VX0I+w7u
      z8D$2t;w8$%fn|sy-+GZ!$U5b2SJpaqV5f3H$DO!~3M5-PWZOp@Y1N$>T*BSWOtZw#
      zE2gc1RfDNJWD>X+yF#o-`IJ_%p8KvgfV!2Og$PKj0TRRg=vN@Top5eY*>_+FdlcYI
      zD6TIvcmrP)xQRzT!DD<M;c+Vk?^_YvL&ty$^WYPGk>XB8IQtr$efTP#P@KFrgq$)Y
      zLyGaakg<0#a~+S}z<wI^9J+z=4oJRdn)%K_c9|Z$f^B#;!q?m2>kWOBi9Z_Qo05Fu
      zU#ug8BX!c{YM2?(F5}~oxFnC&@WMzUmG~zLm#`z1xQRjyCr0#4O23KNbu4^>++`d}
      zC2BbNDPFvUdsB%|aq1?{j_4`9hVP6dGpS_6^sYM29k1j3@t#+g@IAGzhVR$#qb0ol
      zS%iPru{tgWhHubN&RoaOYj}&MsrVA!`7D#t28VWU>D<~?!+Tei!wI@E#86yde;*1%
      zlw(bUt<=C9boNb#;w{$Q+f4O4*o$|uA0Hx%4=|4RdExstrtuLk4<F-2{0=Yic^-cx
      z+Mn?{uF(3g{JO&bYbwkaRl4epFxQFoD^+TBB7LMZ)$tqrR#kqTXggKH>csA5Rm(fa
      z?{S%%_d?_C3NeGX4aE8b`Ql3RpZJxa>W$R$7bbjyNxnioIu!?FNizRUmB!Wo0#l~)
      ArvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/ActivatableServerRef.class b/libjava/classpath/lib/gnu/java/rmi/server/ActivatableServerRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e17e2acc4bc57d97a9ceea163ea9fc8231a9ea4
      GIT binary patch
      literal 4674
      zcwUuPi+>c=75*mKWH!qHVIzc4Y!jszc0;1o0wt)00216Jlt2*LN+-KF$-wT+Ix`!B
      zRcl|?SD#8B^rdYrt<@^lBp|KWhtks4zO8+#ZU2t``rSK|-OcV&F#G#u?%aFN<2&a&
      z=iWL0-{+nOa1H*WqfSHTxLxQuWKNnrZqDlQggYtRp3Q0BnlycLG%JSH%x*EJBcfqd
      zt=)TVD{Xpyai@l6u2^PvM7W;i*n9i8YS4CSSlH*-o^RUzh?y;j1_Xbah6Xe3_h&R*
      zkt*so0~aVh=M9JbTYEJ$ZnA94zd=KN=b8}>kv=CQVyH*60Rsy)EKXUr7%b#Qg}X;0
      z&=5~KX?kPQC%%W15r4w+G$c}&8UUIWovF&5L!*c2)y4hpuaew7&>!d?cG8E1znzkf
      zd$d<#ifx-pi@cQdbS&4fyePX{<Q!iVmnH5M68Bp)^j*lgH(|O78ZI{w!-5#zh7KL=
      z8aghTa|2i4N)4@ID(|>{S?p+Eq<sx*J1;%T5`UdVGPGU*4pV2^k}VD9E}A2?`ZY9p
      zUWkH}zEr#nv}K106B7Db1KsG+pyy2692c&J?wXE==t*ar_?U-*V1I9nb#<+dcWCH(
      zGjay5lgy2IzLO6e)exO?EQa-XmyQh@+Aqd31MkE}4VQHuSW}8YKpDEGVUvOD!OAg$
      zOwFZdRcF=iYWXPM%}Od+YacVMtjKi7(26aRf_)m6hKjPLJ>E0yyOuq!NY#pM2DalS
      z7H>xQl;hU2oqHx+=ZIuMuMXz2rL<BcI+N~+EL+QxD#zFeTrs6#MdeCSSZ)zh>G?*>
      zSL<BLw^(-C$<gHj;d#tTpP8kf*Vm?QRVI7;cdjYZ9)z}6l4_5Ey||gsb4MivnTLHc
      zQ43}9?l<rr>?XQ2HEFo&5{*f1!k=(h1(6BUn~<tD$&&qm0aMmuiz~)0&lhf4jWG(&
      z=poh%*|i{GKwsAMyb=MF>uRnB0d$PBxmL`^VBxTiLvt%74F<Bv@hGso&7NnC+tP#W
      zu9K7WthRPQhr^OD&G*}M-Zrz_T-R}R+%|79pw^axmCXoOx<G3_3M|}l;SZWQA&r!$
      zBjjQXM{raJliggoX5e;wkP0T{(KJM&t?sN&XHAuPY>DD74a?ed1<!A{a`~*t3EOX<
      zi%=eS8~89j!laq`ys$H>AyyYk)l>*j+4z`&k4uD6-w76Du(3sAzt_NhxL?B}Vpq{j
      zIc7$7khXatC|hDJKgjkuW@bGR#i!Wf<+g5SwL4&3H}mDVV%RT?Dly^3@ELqg$7kn9
      z?kE|SGw=`|CZlM6m+Rz(>$3-Mr~&X&Ak($a%d^=n2$`%e8u${9GjQUz0==#1FmqWs
      zAZzL?2EK}~u|bSkc1C(Wd{|^J%I~t7C>~)@4oXp}?;8fbiEjmA-668X6)Ia_t?d6J
      z3*FT5Z8oXO+73t}jmlo}9RuH$y&~dqB8u-RhloSRljXO7P*$!8-?63SQwE;KNh!(6
      zdCjn5vpNWVVBlFyvuM+<;1R>TO&yg!Xt?o0=&F2Hhjq<kX4b$doTm0sN#Ft1sCKYR
      zRirP_en1}hjb<3!B~|NWR*8+Cyv$VvoATL^^Q{+PJbPbS@~4q~uTKsnU5Owxn+W}~
      zoG@EM1wUV?S@2Q3NK%xwRdwU7cM3d6m(|w71D9dWY?}&N8Z%jGuHRPHMs)mg?)>9g
      z|4{Le((&uL^S^{`(DAoB1v@kEI`|s{KgTZ?;CJ|gj^CGQE3;(akN6Ys8`7(}OThew
      z8FE%$#q8p_S>Y}(^haDvp0jhf+Ab8v5$W0A47`fJEWkhTnvQ?cVy(RfUdJ0ukJ3En
      zTg|GM_vB%x;HJfPOCD}*wXT!hQVty?Wj#MN>aYS0Xylu&-l81wuFJ8cEx#W4e-YoV
      z<x}IcAu)@^C)L&^YEvEm4<Ld;#5pp8O=!Vo@;ip_OSxki#}U4@Dph%o<(E!8k-WSu
      zGK;oE*ECipPT{R3y>adVZlOE->B6m?JE-(u7f6Qs<!BY&u58A!nr_#r(N*YF;Nn<=
      zgtDA00$CRVi6)*!*9@+%#4^S}jF(}FhPEQ|eo}?yaoUlVI;m}C{S4Nn63H3#?mL0y
      zspQ$z8MN+?-#ClS16|2!Z0$OGQrTEc{jKV`6gxuetI?!l)5K#tj!9ab;_B_RcL&;W
      zCsE!-Tz8j6p)>TXiNBq=nLf2pSBlwS*-_^phB#^`o?V=)<CyoVG6Xvmf;4qWZ7oDF
      zd=7eI1|x~&%8psw@^mpYixkLvsp>uk`F`a@LZzssn2Hu0z<X85TJSzPSEokrC%5W3
      z%S(1u@T4<RuaQX3;?@B&;9ys!&4(!eFjI3(*=!H?7i}6CRlpnhOLHVaW*{mpX?=?0
      zz_Iuk(=%}#9cN(gKZE>!zPhI{Ig2~uch2BLGx+E%?m5fZPYkX-ho<-g11GQ`{>k_Q
      zr|{{4uK2MTeBn5*Np6fJ+9EUf^2Ua?hL_NhNVGM?zdnOUU%+G2IH6u2SFcY@<NJ*4
      ziE~((NF*8DXXJX4vNIB|Tq;2xBrxC+=JQeJ`Z09z=)0O6TZbpG0Z(EhpEuws+=OSC
      z@o5Hd7W;6ToIQgA&XOrF;2!)G58_2$PF_+W+o1~kSTSVB@Emt*Ea-at5I>^j8>k}~
      zb@A@>JoVI5dy=}&Foe5tC4S6N17&_f-9Z(t=Tj!QKK`?k`;995FDtXlg5{#wdb)E?
      zl^$Dhn4d;I&*N80;Sk4)F_H@}Cz7Y}Ta6y9XJ;r?Xh4Zq=*ypJ<kd1m<urVStI`lV
      vYZ(#FD>JFkOtUoe*QBi4)A)NGDs8+*8?UoI-zc-uT(r?#1oJN?_wWA!PnWM3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/CombinedClassLoader.class b/libjava/classpath/lib/gnu/java/rmi/server/CombinedClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d28f179e68ddcb139799d70199dcf4258c94b08
      GIT binary patch
      literal 1957
      zcwUv1Uvm>x7{;HIY}hv4(vmi514Tm%l0R)DsHg-`s4Yf9TAGsbN3EM=E!#<UakJ?Z
      zuNdw4A-LnJw{=F_K}W_bF8mJOa^q)Ee9k6~DWr~GWOL5D&w1b9dCq(Gx4(XR3g8UN
      zDtrQ`SFJ{RO<&j3PR&f$4QJhO(ld6gWLidLrmENLIa{w7jtWH}><O#7wVLjDC7@Ql
      zL0w?<Zmz2)BXH<~X_@XNfoQy`X}D&UrK(k<?3%WfNfZT?8M|Tx;YXha6`FuQo+zp~
      zEHL!Xn#+!(KggMNw-18|sW>7q+%2PqAq+ET-Td0{GG&A4M?_{GVK|;m6lI2}hNCzp
      z&||uWqq{aY6p1G~7_+T-rVq#Qx{B8XLa)Bn5W@+kwTumyKzkWHC+16QM9RqW6B<t9
      z6swhO%hgSbriJ6LN)vaa__T(&6#Ml`MHWwLNMVwO-_z@PuMT(RDMP&wNNWh-ker^;
      za29Xz^{U~@0@*G!0s}doa=uY38P1Yks?wxT&MxcKqVAY--U=%2J(HM;+<)v9X71Hj
      z+C35Je%!R6rI!|TXxhh1i6YO0Zgx8j0bjW)k-O|nnEYkQ@ug`s(F9I)+FWoQ(^}1R
      z+TzK$HaNRcHttKtx{5i0*h`YU?atW^tJ0Rqe*IWO7Beg;x9!Pf^qPh%GOAd5&Df9H
      z0uaz7;-XQv8%~*;@q;NX!%g2@%w=Te8yXfdFVM#W-dil=OB(Vr-s7}09^SuNpue*s
      zjY%C`(sO*)YSg6X^3+t^*}IFTozBkhGvQMWpWzm_)B)xBu%cmEz8E<mD@`wW>N!(3
      z+-R4knwBeZf?e+C=S%R%R_9aUSVa$?y`25Yxr~05+(qzb^xsZB!GORn!q+((707QP
      zHuVH!0_T;e@(e?hQDq0?j}Y_*Z!Gg=Lg3Mh-;<L&nED0&A2IDe7uZ51`2(iIfyr=S
      z2XFoge_=Bq!T}k4`uN53?^)D`xA{EB>jzvVNERVnLloCBhI!ul1>VUUc%SntSmLvY
      z0&OYt|2}Tv9j?06glCR-0dMpk^=urh;5;&{5T)`0F4BaP2vh$7>n!lg^C2$N5Jk2d
      zRUfsCne|M0z=$+$!hdlKAxS)THnoGR+sm6iG1l6_AIa1%KH27?00#I~oNa9<!Z}zz
      zK+r)LIKuI9ta-SxX4*FH1ajOK?<J0TKt4jS8(U|y>CJ(-#29H~Eaa!2AuzSw!SY<P
      z6t>%z9`$T-$l#KpfnltZ%fUD{JdR{DZ<{0D=7_a82ASa|jrLQ?PVBJg_P?>+J%H`=
      fm)RbY?HgA4mTa43dq}qL{ukR9WE0T6yrsVZ2;aEH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.class b/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b7e35205b4d049dc4e4599e1ffca98ebc990b0e
      GIT binary patch
      literal 1527
      zcwUWETTc@~7(GJ^OV<?v1qJa^73~G7chn-FwIEu&A}DW5JHn84mu$D*{)unC^%<iz
      z@j(+wH1YTNte)9cK*WS@GPCnt&pGpLzyJLB3BYMg8E6u?wBS}UOZGE6<3ClIvh<%x
      zKa=xZR~7^1x%Vr4^Y40|b8NHGKvbYTOm%E`Av3+`OS>cxEizExL}9DS4_#HX%fWiB
      ztbie3s6e?30%A^}Wmvf?7!epq6gC&1@V&}%c7ypr;4?9soMGFXSCS?o*l8gKGX{ZO
      z77Vm<FDO^ut~{NW{<J;sNP*6RSG1iO+gJMBFh+w#RTju@34B|UkWBM}#wf7&Ki~zL
      zR7nH)hlD`HuTZ#1A~~bc@3+v5783_>$iTtBq`ou1#I_a=qld7c+bS?|1jh^<73klV
      z>=yQ+$G~xc#CF-n(2s<LBvJycPkbpIRSpEY>P#wuaxzza-+o!3Ics77g9c6t?B2p{
      zA%jz7YL_TQ*T#FUGs`CDbb&J#&f**ymeng63NxwYxL{#O6OXxGpq{+E>No~22^?In
      zGU*1=_bbbREahJm<+3J1&?Qw~wu9oLKq|4#=}gY(j#n&<=#DM*jzpwKwi)41{4jZ2
      zISbd3r)SAi>=jMi)Tsg!7H))K)gMd(<^!+d7v;FpQ`fVV)`J?EfHkQNIma%SB`33e
      zb135M5Fv&pJ{%UlUDG4aJxUKh1Fk!Gy3Z&bXQk2uAGk)|qirS3Yv<Y)`i7W)j?ov<
      z!PDV-JUX#EWNBd!x>!xWbz?6x<9dV|^;bg#z*H6a)I0QkLtCnbzAA=ht2nDIHN;cm
      zJ$gI)9~Zv7#R<C8v)pSq9esn=&i)$Cr&p_JNw0opeB0|^A6E#$B)ASjI*w6N)AX)~
      zdmZ>?dVwtCh8a1+$Wa0wBhVcB7#T;Nnd2D51Z&*D6`u2qFYxIIsc1q|4U%!z%Qgs&
      zHwc-jG(i*W@MgL0Q1H8y_+D74yB@tJml<A%u0FaZ(meCDr7snw{92T+-1cCshHF(s
      zXW3<Zg%K8ObQ5pATW@%+)2#Q9o>_VxQU1r+kGTyT`Wl^^Fd42laVtc@|5Sdq1;l;>
      DeFjg5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class b/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f187b7679426361e44b3942082e262345049332
      GIT binary patch
      literal 2673
      zcwVJdU3U{z6y3K?n`9U$Z7JB6@*yBezy^w<m;%;HF%Uka&{|Mnn%t%X$xNM0N<k1r
      z@bg7|P~c5pc-3~TlqCxm%SWI1EBpa*-<h;&N?5B)Uo!WeIcJ}9_St9h_dkC=2Cx&~
      z1W_jt$y&wu1!K~PJ9#r+kj|uZ;{CQ|$+T<Q)`=od&T-q$1rZQf>3QZ1D;qyHdVwwi
      zfr5EO3W%gYC~r)i^RJ;XN6MU8phH{A3o5#1F5c%j#^n^v34w;JV;3g`)}$(+C&wLW
      zWDcqq^a%B)bEajw`vmGE(IMvQw=*&f)}f;Tjq22*BZ$TzRxwdcoDfzsaDp9ZXvHf!
      z+R-7<*jol}i!4Y#=sKpAO+<$j@>(4lmIbj+V9!!X+Pv5p#0G)pN`|E6%B*xWtjDXW
      zlufKHl8g>1!xkN{VJq8qZNCtKRgvh6<!R_bR0YQbwntvVUahV)Y)5wxuUE~{57H6G
      z4uR$AqT@)*^^J@3`__bl>Cv$ZZ;-yMblI~jr`-OWQ7EKrBO@Jw_Nu@Iue|Da>v#)q
      zGrCYax+C(EVAVqx-qDf3aw@3c8jc&pUV+vc8q=^JeL=iC*KXx)LC1UOrwWWh%G2nU
      z$e9HheQ7763xw-wHi!eHq+;y1b2)$58hUY1jpPH>da9O7SyhL0gb)^JN|}~CTFj41
      z=cF;3<I1$8?6i>^G8|Lg%f<#J+=4*wnbd#QAU8>v8tU<(s*t<|+;Nkbu_Z$iA;?h;
      zdaK=_HvF7`M#~Xn$~U(9I;e^i*h>{GHOGr(D^gFZML*;1e^T8)(Qy_`UT<VFi<Wn8
      zYNu7JhK^CM)k}uysz54SVvK<-R0SrZFNP|=aUG^g(CEm#Jt>2@D6p=2e;ubd;mXW`
      zskEF><&s`QAn`vs<?u6RVZw0J<CS+DP^2d2Da%Y7g#~nbYa#Hdj$wSH7KHkCVe?Be
      zhe{&SbQjpVL`3$)`32;ZVy_ifbbO}9u*~4=N!f1~Ezf>U$LF{%5SCUkFCD|B6joR5
      zQu&*qrq_ipbWC|u@&6fGYdBI@gLctL%K=mAzr7ZL-6~2zPb!1=d61Oz%EhkOKvL@Y
      zUl-tqoPQTQY3k2{&yZR|@6Jy=pF!SrET{hp-u~jPj?b~s44PJIGiZK@){&OBS*)2s
      z=QNrgq3dvc?|tlubv{Jb$Tav^KhimijU{ZJMPxA6+4BI~O4wP#n>?4W=avwivB$qY
      zfBF!;Be4hA_XO|HVqgZzKbWZwhxyy>)pCyYo@aFuZ5YQ|%5ftuU=J?h0CMy*aS|5a
      zb|Xda)r?(>LpXw?ysg7-9Ak%q=l1!2;(RJgLu?kuE9rbUA4c~bZ~}vThM8hhIe6Dx
      za0kh#1Zy5c4r?t`0i5#q4P&S#K=WdNNdjD|0`LbFQ&KJiJS|r`K8<7vBlmEGBbY|>
      zZ%FVEIM2EkOo68PIUJ6Wc}DT^@$h}LwTKeV-$!8BN4op`84vX(q@Qr0zF&4Y_B*rn
      zVE{?e?$_GG>c9;M<0@Kk4INZ{53ZB!8}z(I&)XcqO>*}wKTqFb4ByWWrw2_OTb{SG
      z?AbqsIY7JI-2i<Q6WRkzq_(jFr^3++Prg5pqaPXb(>$hPuSo8cv>VA^o>*bET4hY9
      zj2R;*C0u@l?d-0T*jI;@Y?~-ac3i@ZIaNNZ<m~YH|Ct$nVXt?v26wqgcM!$B`TQC!
      dH}NHJt0+=maCPKCVcf=7UVVc5F7P$N{{jdAggyWO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/ProtocolConstants.class b/libjava/classpath/lib/gnu/java/rmi/server/ProtocolConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4859ff5ef5c17486c477cd0b28163886451a3aa8
      GIT binary patch
      literal 719
      zcwS|Z+fKqj5Qb+(K{*vsQ9R*^TN@vtDGOG5a$AUZO(hM1)HW%Fhx5V*@S%*egf@%b
      z?f1_=v;WS1|9pM{z!P*!utT6bjh6D<U-@$KF_RZTvI-K}PU1A4#Gx8Ti`0+OMG1BZ
      zG}gAzkEXKqJ`W}-0m){TYpIs*JyWGe83CdZsAYX)KU@Zd7iOT?$gN|_9L+Kdm;wVx
      zj?1WGcv+dtLjp}lGY2~LEPJb>W5pQhu4e1>ZL4AssODEF>X2(DX2~^kBU)%QsN*OD
      z>ZyvpZniO>sAU6Q1+R^PxW)u8*D|j|pq}Zyfx1y$0%b<s5i>I%AyC;UJQ7ap(Y}Ij
      z%AbQRPP|MeL4Oto1X};T<B|VF5tj{opagB$gCbIiuN3x?4+JhFR|Kvi*95L3O9D5L
      z4+U-_9|?Snd?IiQ`BdOD<hH=)NEZTMB3}u7jocCV2Kn|+{=2RGxJ0;LpC5h!GPZU9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39323eb2a9d34a344b9f5ee531c4be48c372b1c3
      GIT binary patch
      literal 1553
      zcwUuLOHUI~6#i~o=z{@lfui68kw;(9;#-R^s+h(iiI7G#E~e#%4z^RAwrGtjHZF1F
      zf?vSKg(g}OO^j|Z@kbfYy)(c-(P$=f=bUrT{l0U)d*<h_&tCyd;I11EhWL_Ri!ZCI
      zYTPJk@d`Iqxe<RblTH=YN+nZP7rBuxtrUk+YQDhl@wyu>h9mMoQPr2?v$<uSuQGT`
      zsq!M9QY)MxklEXxs~VcVlw|0l1ii{%RBgx%y|z@_2IaR-YPwdv&JYVV!~Nk@ILqJ?
      zb@<>!y8<sd7@VPS)(a|HK?_=i6;R-YhoLj0>HL1Jl;g&{nk&l6%Xzh!RSiw}R?t-~
      zXcdNu%zsKnO|(@DT-1}3y7Wk|S%g;ptfm%;qQ~B<scbU*$VVj~S8xm`7)B4tIP46A
      zhsb8>HTK_!l|iyR<#i#`pg``UB1FDUReB0)r67uy(xrVEMc9qdzFRl1LBSA)1x8rV
      zmCYbScPQL^V{VMoZ66Fz)wCi>;6Z|cJ@#P?XT`0ZJ0OLH5zdN?3kojc5*4hjtZ;pi
      zVeGKfrjSLI^xz6{#RO7PAWa?s*pcur05p{Bi2%5%Ac`1+Z?0T3@_bqo<I>wa65|4k
      zK}qX6H{>3#xN(PJ<ljb$<lPx64A3+<=?8YuL-Q;xnr8a8(2f^kTH454pt#8EjBG)P
      zL_d)c`vm_7d7z8d09>>#(^{lsC3HYXH$?`_W9UH;kXA3zFliknA_v(tF&51lWsCeo
      z^gGxFBGGSPGm*$gbjIl2LjMN3h3hBRFWnZ`J10H6b@a(5YShGYD5#?!FG<=u#_`Hl
      zPhz*81Ww`<u`3v)y`U6={tc_1d8_SUbQ^8aSOcdwp~QZ`?b?LP#%gx-+QtyvWeDPo
      zWDu6%5*^c|TMQ4S4~&Q=x6v*>4U7nQ(We>lHxQwSV{MPIL$a)s?r#WfT{0^slEuu#
      zG+8XOlr8p#zhG=35Z}Ut$#Xt%nHH1bYTz2#4cvHtpslwy@L>zwfm?E&LW;g(N*Hcq
      G8ou9`$V>PD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fef7f673bd1ac645763adc96e197074036e2dafd
      GIT binary patch
      literal 1385
      zcwU`UT~E|N6g{)MP$-23ML<DCzT9nrDk6&O2S~tdEX44!#NbPTVX5i1o7pbWcmIKJ
      zzWL-UCJIKA{Q>?Ge}#IdyTQtWAwEod=gz(7oH;Y?_n%)Y0B+)*f*8YO-Yc6g?LFHR
      z1;;FLvB!nEyqKMH?NZ6|?QJfyg`zvO_&SnNkYMNzyF4D4Ys*$-kwLXR&kyXt@jZrf
      zR#@lSUfx^@gyZEi42}04&j}tfWKtVe6ekm@j$mf$LDD&f#GJp)Rm9PvL4n4QJ|kQ@
      z*9?X>4Gm~yNLr4^m&%1rE>`VLmrK$9mhI+j;mCO{nFw~B62p}BKbFy^6J_C2fAW|_
      za-(Pq?geD&DRNa3+oRzkE>Sz7topMNhX;>uI$iIUf<A_><LSrcogFSz^x}#%@G5Cc
      zWz#to*D$DHfI*AmY8b*Wxfb~IuL3SS+g<QQfuS>X0-*%Gt|5gq?awY2xwp+QnmXYe
      z>rz!!A%Y<hMj3ijbN{Rx*I-I*O@UusBfn0oXJ8JEES++m2cgYTH`NutEVlT9Baghh
      z{#eH)EIE_)JTAgDUQ%$EVdQMrf}!=Vi-CSR+&F!aq(@#yiV`#wG*PCRq8GF(Gn#IU
      z9zxZ}KBM&`&0|Q?vn}j>M13=8!7SQordR9HL5K*W^XMcr8C^gZb;?L`#VMu_r^d8K
      zbBUI$F&SUbeFE7$H7-#6BqZyvwj7ZqkI0fWvSxX4YZPxunyjDJEAP<2_P?R`dHalB
      z**(N%EB@dEdJMg9;sE^z7+E*k>7}o~iLpMt^8VKk;{ap(M`8xZA>b+P!=gPb5$Q7`
      zTBb|70)yg7<RSv6Ls_6POdU5!P8Y7wUvPrZI&h1!Re>hGrT7N@6I%a}HHOKJ5KyZY
      V)OH*rBKf?HDSE46`yHZFe*>X+Hb?*f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b703c43827de49e3a862258b9ba8223646d3005a
      GIT binary patch
      literal 5117
      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
      WI^KZnHfbCP1pWf~-vNQY!t-A<zElJN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIDefaultSocketFactory.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIDefaultSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d00d777fbc4865864a22d98dca9c67a38e8c4d68
      GIT binary patch
      literal 814
      zcwUuJT~8B16g|_grE9g)N<ly@2&B-+V!{JS)fbi6q)K8*6CQ_kECcNhnNA!0SMt<E
      z5`Ta{ig0JPHd5+?^Kie;xo7U3`F->A7l2pT@Q`4rwxfP<#s@smT^aO*9ta(L`BZ-|
      zzVUv?G*x&m%mELL(%(I#7|K(~cUTOW*D{jkEkm-h)nZ7!Q(uLTB(gcAkzvR;WF$WK
      zyC*^)@so~VC^S^aJ1wrI%}2$QIh8$zmyQ1zvBr=Kwctj?Wrod4!}WG})DD_P%cxze
      zZ^gApm>}j+pa0=96c<LSsOO=;P;?Zjg8JbY@$iJkpXl{bM9Ho;&rq6rn|*{+)iZX{
      zdoW=aN)yKFgpY=IOa575v2thNzp$Ez=L~aGF&`^fwPUT(4HY+p-&B1aiUVn%cljSr
      zxMS6@3i>|Slcb2gjjTsmK%S9LZx1nZML_~S*^Ddh;sM!QOd$V|Ji{a8iS?M`6lJqc
      z<|D;c-oHlixVk*V+>Z&ZJ*QQUStBhQE#RrceJo;$I%p9*yQlw#`V!=`*H}4T8lpTY
      UzwhKrF=;HHb)t5|7mmMv3t6?WumAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a661494888bd5daf4a8fa830925f540b4a8bcb4
      GIT binary patch
      literal 2179
      zcwT)}OLNm!6#i~(OMZypKpZfE5?-wx0_M?%Hs+NVB;X{F1cx-8riy)Si#oO|$w1P_
      zrm*Xxi!Qr?873<h?ZRPTO1GWv+FfTlr3+SF^%pe#B%2UOh-RcKU48eQ@0|0U^Xq?)
      zp8`0JFI6-N?8%p^i5vP&Jz>rp2}_zcrI{EX86MKDg0xh41;Xy{qF%};#^!Fwj4hy?
      zHcEzlR=^XBrv<$I<*W?CgMbDf6oIWNqa;VG^K;Ui)aQy)U|Xu3(Ti!_G@S3orq?bQ
      zmcZWBrX-RATk_H#k#?b+b+*VlmU>Cbl(`~VCF+1={E{CnWHvF>8^m@*RJ01TyKqZp
      zs-|Ht5NcU^UJe*}Y1tauutOk3AHyZf)=L>uJHFP#gl!t7d@`Qe#7a^{l*C+wQBL$N
      z*s|9&^@XvjU8&l%Aockmb|Ro+x4_O9xB=bPUxl>eEhme61)>cOgsp`n<7pN91lnFF
      z*jLTvq!~m90zn+a+bRyd@U%gqG`xeDfXc8(^?8Qe8jG)w*|FBC;V`;bb-hxNrK~{L
      zo0GGSj%(qlV<EvZ#QHbE9mH`BCvZ}rg`}?NCTZDJ&_YF8F1?vGXZwq~W%1B^IHjUn
      z;J~VeUWwH?JYnQZx?MG;hWGISwMgrOrA#?X=VLk7kienXI^!Fr;~<h6PUB2nl;e_i
      zOO6wP?XTpoZX$ql=v8rEp!wymblG6``_Ru0n4G>c$apshtOJ7@E;uFf+vU1@M;t>M
      zhH;6Tx2QpRZSsOZWTSGV9dJs+h|`b0T(N2uoSiWZSKOUUv2004kmDLAFiHK}<yFy=
      z7_;5y^iNvD6t1)Q)k;>k8Ky5b)8|;<jt@1=I46~?+X23n#-(DG*?385@ODO4Y@=MF
      zSyq(&yX(#EE6_AgiS606*93xfpR?tv?F^7j+m3KQx$AZCu2t~sy+@qanycp6G;b0q
      zgRMBaq+qtKSEGP1cn{N#nJE(Eu?ji^n(5;?Q(Dy`{R<Y)Q<O|b*qu03cuvpA`e19_
      zK!ul_$$Cq}ZLlu>0&&i`b!YFeTS$FzkqMb7SIvyPU^s)dd3AUmb<ANO2#0fd_{I^<
      zr^>GcSHacSxeWggd}%_EPsQClh7g}x9l&)9*8rNawSHLqOPt2N=i9=MINzUO=kzjm
      zjXXj7bk{QWj6OjJH}>~<qu$OM4%85zih9Gb8jeiy`&f_9)2%F_HR_G}BFc$Jc-KMP
      zQA9+E`kvlf`G??m1KiW2M3o<L_5oT5R~pzQgosHym?Ked4Ffe?JW|7D-lK=RYPed%
      zwZk<`_o#tW{;2vi?7xoy*CqJE{_dcsJG6xMHvWl(PPSm>tGi);Bve??Px<eJL?jdm
      z-dlOz=6^WVijN+;S@;Xj@NpwYCU*0gWDd?SCugw(=h?Eo=wxG`KtCtV0CxwG;yT4X
      zp2bB-3}K$_`#CP-Yj);07{#|3!*{rf?=g=1?8FC{#4@hoC#3N^*FSms8Ls1ROuO}1
      ztmhn`KzA$k2j-9=yJq}`EIl-l$uGzu&r)~bXB1$-OEycmflpb-BzYIfLLqh$B{Eg$
      z_YBIYu&NKxgU=Y7pB!SahzsH|_PZxStiFwELpsOk$;pYr^4z@p@HOqsuF;M{KmA+<
      J<91MA{10KD9Torp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIIncomingThread.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIIncomingThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fecf25d8d1a861f9826b84332a61b7bc41d5b315
      GIT binary patch
      literal 898
      zcwUWBO>fgc5Pg#-acUfzhJNu`^U*eTX)QQ#3F1H{L{Z?-R*~R>++;}?IqPa;_jiE=
      zjRX=ufFFgJb*x}DIdGYsef!?Lnc3fee*6OP1iKbWgsp)}gU{hb80eu4MnYc*9UQ$q
      zJXF1SDAnNPOpCB@p-gCGv?x@AV1g3tUL=J|UdN+^(Cqvp94DH^Z9?_AR5E!%@LGlE
      zqg1KzG!pGuiPt5R58}SCv4Cq1EI5Sqxni%o2*Py-6;ugJ9jU~-ba*QCiFq~+#l0}<
      zhFY3?4wjQMIU?+I{%dfapr&&_!pgiZ2+rtZaSyd5p3K66mNz@0g_}IlRrqBpqrT8J
      z+$Jm+`fxw#c<9>Lz+JP9dxX{2ysa6A>)<{f@Y2KcbD{Wu_U2J%pxnA$!y^K@X7Sq&
      z*064BZWHPQksK5Tw2$Ld_rxn{cCt3Jvwc&a8zHU(jwSOyoGox}p~i8MZyy*p?+t%<
      z4BMygsQZsOd}XYJC5}y$IqtFAhmC#40yG$LCps)M16g(hD_qrNtL#+boSV;m-ekV4
      z`iYJA&0AyK@xP&diOuFi4*nQhd|YDZ%hb1;@t<a1&P1Dg5n9u_0iWirV#-|=KP!kU
      JQ?Zw^{J*`P#k~Lk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..88a6fdec35678180abeb1f6083af21e891074970
      GIT binary patch
      literal 3019
      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
      UH16ztU1w>fS2n^Q((j-D0}uc2@&Et;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectOutputStream.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56721ea989812b1fdc41c137dd9c01c03725b4aa
      GIT binary patch
      literal 2997
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIVoidValue.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIVoidValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6280beb4b669745d2e54b734609f7ba46623c48
      GIT binary patch
      literal 411
      zcwU82O-sW-5Pj36O`Amfq29%liZrbrErJw<LX2Qbz~d%e>XtNtH0l2m4+RB(fImu{
      ztRUjWh1vOf@69kDpRex#hB&ZLBOET$(p!p+@bZ=N)-vD7+<Um2gqfO$A}OT>lhDzK
      zM5GJvK3dASAT%ezbaow#ZwN>Je<GKRAH|7ERdGcyj!!~@InL(N2ElRRqDg3sbic)=
      zT^DsU2yI`bGALJ(%x5A>B%$YLu}DIZt18z;8wMQKE1uMvU{A9$kL9hZ(B0ol^s5aq
      zV0nWNz#COFII3}Eu@PFFd7M|zc>_IeVZUJKS%cdA+q&6je};~(R_6YYFW3|N`so(k
      VzqA2NoNJo<4MI=PC+unD{uhq%O&I_H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/TripleKey.class b/libjava/classpath/lib/gnu/java/rmi/server/TripleKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..faa602b8bb234e444031e84824eedbac77c6e94e
      GIT binary patch
      literal 1315
      zcwT)|OHUI~6#h<IXelF)LPdGj2RLnk0mK&|Dkw=K$O3GFyJ@+$L&{8@wj^#{`VZK-
      za)qx%iV;POJN-|_b8j1v7M*0~o;l~-?{VkM&)=U90E}b74-cU)W0#B#bIUZ`P0J_<
      zcT2d&s%zzQ;-Pr%hmX*v$~n`{7|W>*kuDN^S*O5DXz{qTQgkglGtITU<8qA>ga)UW
      z74FHt3Iz8x&RDipoF(XbJxrp0M>NUU^Uk^m!i!c7&1fTd^=PsQ%%GtGjWX)g;7344
      zXEih-NN8QOZ1JeHnG)`*naT;N$4Q&Hr0H7ny_)nDvsQsHu=w8-Vc~(SS;$HuiarrU
      zKO%k%oH(e84Glf$m2x9&S3E13IVK3}r+9lJQ3f?!#3e>`QX5QDbSfz9NsrbaksmQa
      zS8aN(WaZX{E8&JUj9`@D-!gM0vHX-UbQ*O%au89B$pap*QCqD?lL1`iFFYk1uW7iB
      z8|=@_=Y_pa7&&c6U8<^6aov&-Q-oeU@$bd}W(b~$E;r1|4R>m&{^{o!;U0^QN`QF{
      zSD+JuD^AHxiv>##K;L8AN}Gk^ykpypWI6VdX`310j!HyCc%;1i=g6C94f5hiQ!CFI
      zKYe^RL*u?P9A)8Ana<cAT4M2Cw8wgP(GeTjMfd~fJ?P?RNcPYU|7UN|L~qeT?{JRu
      zvC3YYN4H|=RGg$D$?8#&<n?lv$E?aa#TD7r7W;_yGWvK4mvQ06&Jm+Rp*_W-ReGx|
      zB*(9c^OC!z)5-XE&^AWnhoB{iIjnFmZ=**-^IQ0}BJ1F=;}sfwJKkfie%1=who8Pc
      zqp#?u0}RqPjL{(`=!en}sqh>*ox~8kBGxv<{<@VP{#aFAYsxQR>?67+^?X8n4@PLB
      kj7h1YjGLk9O3c1*hwgG*#@zcF`@jCOZyedbueu)m0WD4ut^fc4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastConnection.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39f35efdc9b9f1da2a0aecd0e086561269a57517
      GIT binary patch
      literal 4367
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastConnectionManager$1.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastConnectionManager$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d928f54f87093324a1997a15fb38f8632290702
      GIT binary patch
      literal 1917
      zcwUuM-*XdH6#j0TWRrBIP})jBDrm6@)TRYNNg@ih*p#Gbe@gwiO)kmS&2HS?WC{*i
      zsG<%J>c}`_N98fks8fp%%IKSK{zKMp)3mfqohduBd+*+R?svZPopaCM|NiznfB}>h
      zGzs(-%u0Mtt7>t(q{kg;SEU`FH1(Y3xPz8y%ABiPW>zz`g0#B_6!-*o*X<3>EW|I)
      z&e1|aK%nix>R81zwOK<71X8-GyJrNNqp>Lg-=LM3VKk#fg@T|!YeqNaXr(kO?TNJ$
      zZ5b=48B?0Ad;g6^pIg)&f&R>+u}#viT`~QrKRvs{Xh)}ljx8Zf6m6;HRXmP;0)EGk
      zvP_53k=RrS`|*T=0|LE|;#b8%bO|UqLzkvY+8vqt(Tb}Z@nOv=x?WJpFb?4<1&0Op
      zZnLf8X>?P+s%BIqG4@4cn@|QV!&vi~Y{4^#D(Det-)>(;3`Yfmx+`tXwQPaTElBCc
      zI_dPHPr<WWv>CtRxU!@oj(&kXxr%Kwq6xhuv$|n;8DUyST5ufCDLAoS0$XrZoWv>W
      zY07z*6xV%kDxRb#^9w3YBO%a|+fef%;m+E&b|s@bE}5oqM!}0)gxlCw@e*F9Lr1?V
      z>-^H5{W%qbc!mE3Ng5r|^fo*coEJE<qfCb}gkcqFj0l8uXK22x+cGb3EV{D_O^(E7
      zJX#qQS&vr0mL;nyJ=lvXUh{57IIlYmF+73CRE%SSRaMlS(YlrlZN`&sO2stZAP*;}
      zRi()S^e)lE_08yJ1iBt9r%h(au9RJwADYj}vPVn7TLQ7oWn?yTp0)D&Wd`9{ZJ3j{
      zp;x6h5d`;nHO3roS6#F)_)@Osl1BT!o$1uLQ9SPVv|vg23>pwA&8fE}(6cirVuZ)7
      zik*|^b+4ry{6A-X9+ZHZ=DIydcaC@eT8GS>VL7^4$V#_pv0qqTmUcO=X1n9-%A+5Q
      zkgwNrn)tHG@h`;L366rJ|LCs>->q+}{D$jhCHT1c7-#C55q6=KBQN7RfVe~8FxT$*
      zQZ?Le$DS4JtwEWt;Z}3%Cq$O<<UJe_$gbenxf*i4_b?!EANv#ji2oNnp9n+(mlDdK
      zk-##NzWk|R4gHZoM{pTu?_($tii8fY;MMQYxwd#=IucsOs7Qor@cUAq1XnwP->?1?
      zQU0P+e*Yl;>jF!wOEm<heW?RWtETuFlXn@4A1w^v5^v%H7D;&#H|t|JzQQ+nvk`ig
      zeG(}1?*pE2d7{Fgt7yYK`}9?|#}9ep8hY>%FTlra5DP@Sj$z!u1$@e?zlrzo8H)Iv
      z0)7Dpw}`OF(>Hi(fjige?MvLo*Z7t`mN@&7Gf(C*%1S94GB@D|yp4A#^db6xm#9tj
      zY(v8=ML&*7<d7%F(-?(B0s(S3iOVPuWg1;%pfg3yn5$#G52K#gwS0r|l=$`Ws+#`+
      DEVSYd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastConnectionManager.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastConnectionManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5d557909731b1c1caee01365643b177a466008f
      GIT binary patch
      literal 7405
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastRef.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..47faa31897bc185f9aa7b525550f03ec245c6e22
      GIT binary patch
      literal 10033
      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
      a?v%Ri*W~n=WEYj@<zsX<ANT4ix$p0SY~_Xk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectInputStream.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3079c0459433ec13fa60aeeb3e56ac15c9513d9c
      GIT binary patch
      literal 3682
      zcwU`V%U2s!82{Z6m}WY*lvV`mgWA?6L7UoEZ3|){lr|Vac|?I$I|&yUI+>x92^L@V
      z^&fa#=teiXu|Ddd!K26OIl9q>8#iv;xN+mgjT_JL_}!a<4oM(5Cnvcx-{bfD-S4~i
      z%TND)brZltcuPTup?lUUCg$};J>leyM1ebt+)0dEMourdBRp@rJgJ-Jf&OAXzciek
      z=Q%fJEfn2R*Wr3zL71UgW}CV-n<xh;Xkyqct%jZOB{4L)b4KC75r#wQE%A0yO1EJd
      zZVy8|y2YGWh9R7^r+EYnw`owYO+^ECYKWkjp&=>)cBT!B4;AxS?u_YKlQXoW?VN6A
      zbjJ|yo-r&0GxThYdV@02F1FJ;-Dle-*DWbwl0iLlCC3+B!?p?v+I=NU4X=43*o(Ur
      z+{JKkOA0jHgL{c!k>|vYWPH&z%tVGH*-n?h+o$0^?5Cgw*I{5O6$f!h!TqbP^u=q4
      zBE}HmCeL%r?WGpp9!<s4l`Zd5(8;jtmf72?iZ~wBa2Tx&TDEM<=w^{B+hAws*ChI(
      z7`Dk`ExBA)s!zdjh8;d^@~Ak5M>IT&qogiN1`k!HCg*fVrY041t=3hh3Xh(1xufC~
      z9@Ef+la!w$tCz2e{C>MAn@<S+3i{R^@v=`vFZwl{!D(vkv^04D5dkn@+PW+A2Na~}
      zu-(d+E*0nSgoZTE661`pc-e}`PFdyLl!B+$6_p%(R%jo_h=x%N(S8lf^>00GTeC8G
      zP{A|nswO-tGMLaXiE$EYlEE)}bk26l#G?wHTPIq&R9wJC4LZ(~=z_5LYgTR^!=7l3
      z(?R!0#4t2Qr}|>4Z6J-BWxE{?zg#pNKCPk+hPa>e;(+-8=mHtmth~}J%MhBPZYTtj
      zO2ty*49(2YugU37g$tLA1zMtmu|WzZ3!^ncNQPOy%jMP-O>@Z;l3Bybtd@_4LggMj
      z30`x?#|G#;$S12{%v#(#sJr|ouaprXNw^C_msH%CGwp(?*{EG~a(uuL!dk1Y@nJzv
      zHA-0)cao-FC<u(!+T#TsH0K)V+X&X&EXEzp_dDntflAix^mGCt`T%OY^9Ho|3U*wl
      zw-9y-oA9uA(8%6K3%zTUBdoizhgRwbS}8){h3TzL;!O~jz}pvJhPI45#WJysj>+)F
      z8|WzEK)Ulg#7lVKS_RF!H0a)wG_7R-kEWeOCvb!a82vRJ4MupZgoi5$-zUNk>JXm5
      z$zX)1O6aa6{E!GgszdlVP6s3GEg|_?1>wg;c&!fM0L}&@JXgZtrxk?PiSUa$gim59
      z7~yaUPgj<7g$Tc_LpX-<V1$_xp8ceP@Ean$S%+{6=YtVmDB=0a9ez)QKhz=2B3DJ2
      z6n9?4ZAAF_8c~x7WIy_@c>CHFp9Zgj?xB$)N5<D^n`oI?!Q8hMSU>v&uZ|1xbP1*u
      zJdJ!6>Ik8RH%0wLqQ=WnRjA_0!hVm_rl$tURDIfxOV4IZzt$Xg3%Fdf77d$X{kB0Z
      z928_N+&~I{uc@$z#Q@#<qfWPqcp*Ty{tVEqD_9Cpi@$2t;>AE%f7ir%DNv98sfqP+
      z5G*QFEv#4Y>i_R|sByy+xnK7CDw?ZMJ0+hS@$11<pD^Zuh47mEeI0K|U;(-pZzA*`
      D7maAc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectOutputStream.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ea3458812120142d00dc5c8179d008e70023561
      GIT binary patch
      literal 3218
      zcwU{A+gBS^6vn?pfWS1RlvWC++F+@KP#b!&MY&WGK!TA}AlLxaPQn3(PG;y_XsMUJ
      z_~5Jhm*}d-W!KVo|0tLHoXHI{k;`I*%$(WZ_uFUheI|eZ^T(e6ZsOY@S{Np`4L824
      z?yGUDsKsq=?Q<)hHMD|iJ4?K1Iy|ZB`rwRPEFNU?yS(6JTxZX9mK}?$#UNT4x}{uK
      zjqSJ>5kxz~MY*b(@p=_QyR)O&gQE;X>0^<{Niv}snlr@^iyl)myvop;G&gxC7|w<e
      zM2CU^&V|s4ZiYZq1e{B2248fGd2X$!d7U%#q|Jh=ud0?N?#qj<B4LL6$3r(O6m28)
      z%+eg5FioAS2Kh$UL>9{I^8(*<G}Ewy=x4Z4DO)O2ebR|A-U{L}!?j~25yIQJLfhQu
      z1+gg^?>d?uU!|-}YrGQ!xEjPe4CiaDD<>AhAg)n%D@)l~$|l_qFs@(-!$CwVjjwYK
      zA%+p!le)P%tMei^sNru!>pZ-|P=6Fk;k^)UAkGlnS9O<XwitS;CO$+4wojimhEA`B
      z2aae=G&Q^$#QO|gbrO1{;12GIR*#9Ggs3u0RkX<+)e2&wQfMg>YihyamV$9i3FUpE
      zObX>0shTleZy2I8f|)!t^xi`S3Cs%ZG~s5b2vRtwo2nypb3(U3Q&-c;X9`kC3)wu$
      z<`_DpEM?FkdT^*ew8XbXiWw}4_}i5orA=d75EcYs^-wj$BL!JJ6oM53EL8GZ-Z3pg
      zY#d5RE-F~Z7b5;kVY*zaf!8}RJNXa_Vo2KNrqjzbB>^+PTOG9eK2wO4(sy*78qoob
      z&VgY%5sN={HH&X5=))61)BiImbZj(ZTb^W=XJ}bZ(4de>DkYWz<`#`hK<7qfL!$9?
      zOqqQ+k+MxCN_5(;6gj&>^$ysMMd@wnuDwIw1>LkMU1iyHtpcCZMALg44%iI=pq-=)
      zgIh^mwQa$^)a2|VLT{k}ecHgfyT!|h-oHKc>4ZY7XXt7SE%XN{v5{X9ij~myGu^e|
      zyjT-Y*mbnAm{f&GBUUfqB7IZY&`S}Q=(?5e`lR2(vft&{D}-L*&0i4t4eyq3!oTA>
      z-PH(PlpWY8&a#^bvs;qV>*>oBaWzW68B}20!tDm$Bf1vx1Ae^MxRVS2P{Lgw=v{)|
      zLxhdhK?kbP0fK%Yp&y<cI-U#vSi+<abb_Fh1f4np`VpoZpc~Xh@<7BNn#c{6Fyq5a
      z5Hm?{<(WEWq{@sCb51fp#=H;H+h`MJDtEPnPkfm3#7q%$p(*oI$z1d)?h(vPE?mNA
      zKFmd8W{CNqDbuU%GFDDn+idPi37`8gSBRM<=4w-BPBPa{K1A!e@J}T?@`0`qbe)E1
      z<A@=8jFARtwtPJMt5CHD9r1xZCYXvomal{LS7H6w1edTaY&XEB$U(kaUZXG9vs1$E
      zUsd;ZiUQlJb5*LY3W_kwu4aSl61leiuj>=(8uOwWT*cKMmB?d0rK^A>HFoIe{P&vX
      z@3p{!ehOE&iK`7qy1J)weQ|{A{;6DFHgSDcc72ZS2G<cl_JP%g%`^M1?q`Noe`XF&
      YV)4C?MGIcY|6k#2nVZNfjBn8LF9mHORR910
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteCall.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f25fef2f43de0f48d77bcef3eb65f97dce12ca8
      GIT binary patch
      literal 6149
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteStub.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastRemoteStub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..546a9798e8d06c446a15d6155bf064b1ca33c4fa
      GIT binary patch
      literal 569
      zcwUWA%TB{E5F9sYN<*Mfpgb=e5Pe7(t`zlx#3|y?Lhng2VALd%<Mh8cfjIC1d=z5s
      zR;mPQMGm|6?#y^5U*8{}04}g!L5bnyDJ}R*G>N!MB+rGK2*vMHIf`=K7fGhYKo@ZZ
      zF2liZ*nH36UCC7H9)r_t4H?|)>_PZ&Pz_Lq$50DpDsGD;7V0jF$AY0AW}|34jFdF@
      z+0fO`GG{mq|7EMo;O9b{V_!TnTsFhS9=i*6#O$_)J{UFw)KQ}>q-pis+-5skrb>yG
      z!5%J=C!2$;P$O|8O~}TdAZLb)WAfm@d?h;3Z=+hF8>h~wm)mbxd9`bws%M8CtWpi8
      v0P1Vht5`>EM(z>1WYF!-J2vKQ-%dGk&aFaYiozDQtpyJ|G&2wHTF%}N0WyWr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastServer.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16057467e8b896611235928a4554be96ffe1bfa2
      GIT binary patch
      literal 6736
      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
      ZwV8=}SXwyhgAXsudX7XkD74DP{{!L$-s=DW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/rmi/server/UnicastServerRef.class b/libjava/classpath/lib/gnu/java/rmi/server/UnicastServerRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f20856e2403ca4848a4e54bfb85c3d0205bc1ea
      GIT binary patch
      literal 9296
      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
      H<lz4St$M^Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/Configuration.class b/libjava/classpath/lib/gnu/java/security/Configuration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cad8db3bfb9877c805b93b4d8694d816d32fc760
      GIT binary patch
      literal 174
      zcwRg8Z`VEs1_nb0ZgvJHMh5xxyi)zF#Ii*F;?(5QqRf&?edqkVw9NF<qQsKS{5*CB
      z7DfgEu!5Y#ymWp4q^#8B5=I7A7gwiHcSZ)rC`JZeppN2_#JrNQ#GKMpW}xW|j0{}C
      v`K3k4scxA$sf-LlC}!$`jAH}pWncy?m1JOLU<1<ZKpqnV2Uv^~%;o|B&|oOE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/Engine.class b/libjava/classpath/lib/gnu/java/security/Engine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9b5a3f916d5c78c511705676a3243910c337c3f
      GIT binary patch
      literal 5340
      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
      V0scx;bu`h;YElXOP3iH`e*sR5$~OQ2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/OID.class b/libjava/classpath/lib/gnu/java/security/OID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db37e6964a97b0ecd67fa4d6cec4317c13f7592c
      GIT binary patch
      literal 6174
      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�
      zESQZ22Gz#>cAl^>3)3(?BMXlz1U^byPNP~^-mwlmPIgz`GbC=sAeXfR&n@c2iB+z=
      z-ygy&USjn1jGM81Re9q8Re9mUTZi!nAD<t#o%*yQ9WxzkFB4<0u<^c1jJ*bzcpVeP
      z8<-~EWQ%wUv&1`C#OE^cZpM_XHGU72vO)YAAJOh<Y|nZOs_Ac3#lSBA-%773A&h&~
      z4kwelhgS?|2maEIYn;PoV-H5UoVnJG+}X-i(pxsG-4<uwXL~qXoVhs}n>wQeRxjq6
      z&b+_w!MR+>&tT5!!`$!T^et}|=M2P$gwaXPqmNJ^KE@dF2`><zVUqY9=ZP=i6JN6Q
      pz9Mw~j*$2VHj01Z2JtWcI{bG=i`jwCd3}JQ^a(2Ph0^ooe*t>fDEt5b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class b/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5168d406ed2a77f70844c9e42576ecd1164f3e9
      GIT binary patch
      literal 2136
      zcwUuN-BTM?6#rea$%bVuY5GB_(5l5YKuDmqYMZ7OkXmf`uqn`hqMPJ4EM0cf-3={b
      zed>%ezBuDs{{V*v$C+Afpmy}J&iL+wjyitNIDU`s>bXmR0+AUX?&jWef9KqDe&-{f
      z{Qbd40J`w1j2ec01+x^N)@HT1!*eBDcjw~6mZ9h7PU{A5>5?HaguHu0GYj#d>@?50
      zG6D>THfY)UEU6TDzVB*|7hT;lyK~~p5OAk-r=^n~OKtU9f}ws^Gg^wP5{KSSdGL~}
      z8}XFxxC9EE&`sSv$<P(q+TKRh)=>tj*UIx+&{Ha81jTN<idrZNeAuC)4m%lq5dp1F
      z=_Vg6&1AWKUdtMsA)K;unlY-`x;R&al8BDsp)GxB=_1E{c8S>78EH*zB$O_dRoWaG
      z%?vx%FsnB~>}S}!%uh@+4C_jI&T;w7ux%B&?anE97zboL!mxY2Bk9UUMGGEfs4H-H
      zMTg;F<UW7WuC1GeMC)def<tJP5h23X?s_cC;F_tT4eb;I*{w(zc2zSw9z+LGATDAn
      z-o=&!QV<u;cdo0q<@joG7>~&~!qBu8$tsTGajFl)DipX)Ox;%iLPj3MQ{G*o7Ej{1
      zjAIPV!eY+Q9H*$cQ}H~{mJ0D+Yo=(K+;mkWaDq$@52gBhGYtDvTf!4TP+jh+7G83`
      z^O}NF=#kM~fmHKMMK7MFQXwhBsYta5_$)UPo4MUwRIQ^yoMvE21!wTAjQ;i1dTJ`p
      zdYN-v&32tJ-JKHP0TqK7VyJaWS;xbPeD+tViaI=pw2X5M+tzoRiu0nC{5h%yTL$%$
      z>H$pd#z)Sj6pY}4Xt&INRLZEZJfY%wyg+nl`TPdlN{r(&USw$4XrQO08+mRAp;5V4
      zI;LbBF$I&jAU=5&92Y6ITCvDYvfflJzKWTI(3n!8W11o8TImWW>wCH4dJqPKOzBR}
      zcX=r{MN%z>?*Eg{iE8;IKE1XVqiB-`Wt!%YWSIsvH5;d;)1svNi>5Y1lS)ZjB|FDO
      ztI%{?>zkM`MfvGBO>Xy!+7^?yzR%1VmP3{YxI1MLU)MxJWt(5Lxif`M8l65`e$<3Q
      zVwM7-u$ZLu?@~jn4l3O~K)WQJee_%3)_xn?+M>4+YFkA3T@Sd6zKW+n4&qbnrkzkE
      zI2y3WlQ&{7As(c?M5iWUlwG1H{UmuOyl;tyZ~Hwc?Mpa#182k0CBz19q3af&2q&Xu
      zJQcl%qtS3*8PA+-zJc1PR7Pr`?R|vqV3<K{?qVbpUBuWOjMrd{Kz?>pO5Vj}Cj8PO
      zvQ1^=$|wwW&{M~yis?)K58=!BI?@@bQA(FF(<pt6zyg|93^q!u7O&T^g@4{-H&;WR
      zq~L(h5WwfyjxXr+B@W;#nz3IahHq%#eM=+iJ9OiFr11mB@FOz#2^07k27ZB!U-2@2
      z!)x^WI)29+_ycd^PrOB#xAB)p;~Aoe2&&K+zygZ6OawNdhx9L#Co#0cflJw$z%WXf
      lC7FR^xI(u+!W{8%678>gp3l*nB3;Z&5D><^mz2YJ<zGf!F`)ne
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/PolicyFile.class b/libjava/classpath/lib/gnu/java/security/PolicyFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9efb3e6539309deecaf51d8c4ef390d51b20150c
      GIT binary patch
      literal 12883
      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
      W3k(>m;5*qOwivkEBD}6cX8k{R;EbC9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/Properties$1.class b/libjava/classpath/lib/gnu/java/security/Properties$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2664158bd3f03e287337aab2f266e95a9dc655fb
      GIT binary patch
      literal 753
      zcwT){%Wl&^6g{^#cH<fx(g#pVX(5!PNJ+D+6oiB-kdVSd3hLf*26rlV9F517@>j4x
      zt-9a?_^7IPOjJsdvY64GbI-YtWB<Oq_ywScmp&E<o2e?h$MI?0EksgkX{OyTI-dw_
      zq$rv_A1<L@<+E6&-Or<Akr*EyD{rghsmw$w#%~iNb4BpXkt~{f%pA;X(r4ytsib*B
      z*lx|IwhsyJK|U5W5blQXu^7NX6rzSY!D(4SG>}SsDo;j2e~m|(AT$Pf5@(08mi9dZ
      zT{|9OYi`G8kH>R#$?L4N+JoCh^cV4vu+9}aiJneO-kDrWJKxxj0PEQB@%SGThttA{
      zlMqj^NmxpSnf03zc3L-j42_m5?YIAj2*EHfbt2wNyGrzT;Ev@I!VgLbeUQaPA$ZB?
      zol3I2VChF;j`FdOCShaV;vsgdqptlh*kiXHK6gO%x;34DpaniP1dJ|mw9jvg1iP<(
      zBHTU0y&o0lzQw8xt0_W*qmW~ZE@P#_SFtv$V*A*f*LZM_N8hh2cowDQ8)|Q+cJQ=f
      TZDG5r`9}|CKI7ZPbG*0$(<!k=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/Properties.class b/libjava/classpath/lib/gnu/java/security/Properties.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa0b0bbd2ea8829a67b0635e085455d6ab6c19ed
      GIT binary patch
      literal 5002
      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
      F_&-rT#5Vu{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/Registry.class b/libjava/classpath/lib/gnu/java/security/Registry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2be0f46c1e34b2c31fce371e9f5b43c04c21c0c
      GIT binary patch
      literal 7593
      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
      Dr4g5@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/Requires.class b/libjava/classpath/lib/gnu/java/security/Requires.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6df34241aa2c078be8c6ab2654ef931bb8ee910d
      GIT binary patch
      literal 601
      zcwU84O-}+b5S@asf+8sRfr&vq5RHkeXN(B}jE6N4mU!`0*2$)1>Edon!e8^?5Aa7B
      zr)z`|H}TNU*L$5eZ9l)>KLFqs>K0@e9Q#t+6F%p5jGm5!TG&H;(;~vyf(-_hq!w`L
      z+x_tbJ!L_jL1UHWQih5v5lXwgbQzRq7)?bSQ_u-`95bk1TskXSl58<3xWboQ=?EFz
      z{6*YdIqTvE%VS&jM9(W8`KTDw*0`>Ug!E0Fdp~-LZm1&<A4EWnO1~ps8w!K^P)jAI
      z_$*>E4sbOG$v$&ZXYGcbo}yIvN?lIVF+)^@Fj5)h<~-2Uy7>=u5C+0q7(&NsyDo#1
      zbiyc^n{emp^<IER-e@sHa}7_u(PO{cWWXRxD@Q*dORsCeCPf8`GEk&=3%0?$ddXPI
      e?Ie2{Dr6hP+$Fn5j4DD6_Tj*|FTfBE;piJU^{QzA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/action/GetPropertyAction.class b/libjava/classpath/lib/gnu/java/security/action/GetPropertyAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2d0e38c47e289f23c80632b7e8ee439f8dc0399
      GIT binary patch
      literal 1489
      zcwUv0TTc@~6vzM5d&@wf0^YHxNV`;4Uc96g!3%2Al!j_~@M&Adx@6gs?Jh~bl_pY+
      z4}JhYl<~~$rY&wYu*qEaoZtDMGc&(_|M&@D0~<+17_^S<>4(ONq4z}Fb4<6d8*SI@
      z+WKqZ)}8LLaNPd3+DRhDFsp1W!|v$2twYgvlSnWuoh8&A^Tf17M;!Q`3^Cg{5)8TO
      z$i3k@rrjws#7_*%qo0Y2X`AjQL$pwAlFN(kfyf|=8IBC5(xBiRX`~pkRnrzV@2Dl5
      zcSg%n;BMQnnucS_b+8$8Kbbv-QuX{flAMJ?SY)x8q41YEuHY)ebdTH&hca@7LjkrX
      zd0Z@L>X>$Fsz$35X#Y}lQz}|w*gK!k#We8)@zL-sx9J~G)bZ#b=L^L!Sf0%tjwDhU
      ztY9^XduJ|6qu+DI5k~<<hN;dd6vN|l3ZHOo&MNUQV_6oZ#F57`L#EO7oVM68<y}||
      zWw<V#8PW~2V;ipLkkL*USpEOau7s6sma$AKqSWGu&{LzbKz?a8CTX9pGxeNS6|!J7
      zX0&gZ*4QbsUuYG<9Q8BA0G=R*N90>Zj#k{a#wE<tC`k(esZL%p+U$^|tqriaKjP(x
      z1UwCR&ydBIVlMiA0aMPdky57U*8}<o(jwK&jnPX3+z8>H2l$tSd8P1q-*Jea3-EGw
      zi)OL_c~vqQ=wVP0u6@OAYT56&`*|26q5i!cD+M2xf}Uo;coUR@Yip+jQEEpFzpOPn
      zoLx$=K2`!g)X0Y=pyw4(_sAwXqLwC6-xIY-)cvu{!&Es_na^&MjTZ1%R6HQA4Y2li
      R%1i+xs@+%pI&?KY_ybgIFzx^V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/action/GetSecurityPropertyAction.class b/libjava/classpath/lib/gnu/java/security/action/GetSecurityPropertyAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d49ba7c80b7521f6a9dbee01c64b84626850b04d
      GIT binary patch
      literal 1525
      zcwU{8-A@xi6vfZ9g_g2>2#8-;K?T|^QbC`jArc}G-5^p^6`z(e)+J?2mR%D5D@_EA
      z55AiCM;XsdM+&qUB+c%<ot^tTXYStp_51q|05h0PA|^0f^`pYJyYCkEWF-o`@SxyU
      zLa*)@mStEnOKU-WR|et1f_{=jLZDyQ)Lg$>c)7VPD`66y0-4jKwZPl=YO*S~8kGVG
      z-`$Y{15UHN6b7DOofGKTcWV(Jb{0L~3+Dym*<6_=i}fv;MjX8s(&!fGb39+JMmw7_
      zc<pZ1G_GE8Yh^d^)PJ*>2tRsz0*{^lKOxOr&9++1mDAu83&Xf3(6cAQH8<dSLK#qK
      zrCr74#8bOmS=F7IY(qWI*)8R4L}24$HJ9^dZOIRAR13@MWpz>Yj)f#rDjT!Vg%sag
      z5b;$HWpk~fX^dksi3x$>)5?GKEM$=r=&rK4Mp|H^ZEM?%P@E%lR=F{rbE-iPEZoIC
      zfpn=J1r@pEsX57<d)jFQ5$Gy;Ro@MxfSZ?E!Op*DzS!z>ehy=F6X(@|7=P>^KgpQt
      z9%GX09CY3-{(HnI7(48*==rR-_3@r&1fC#)BKnzGjZL_M0Y(KFG=OC-0dy;Xoj=0R
      zn<l20E`WJrp0Z>?qlO#X4N7I#=}Tzn4Fg?govO4N(5WNbY@sfa`i#{}nmXFpe@wLu
      zRb{uC#hCNEGW-=|+OqS9$k^f#qxPpW{O3IG3wm-+xNhYu>d3L{m~pMCQ|+j)NL?qj
      zbYa&VDZ?)@Di?$H7i7NSzLWon6!TFh-;^0(TY$GLe#fE>qTio5z@U*zv2nJN>R+Hh
      d-Uy5z55p0rn#fMQC^ROfuW5ZR;GvE)e*oNvK8pYV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/action/SetAccessibleAction.class b/libjava/classpath/lib/gnu/java/security/action/SetAccessibleAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1714441c4455ca41a23147e8bbbe2ef0362455d
      GIT binary patch
      literal 914
      zcwUu}*-FDe6o&t?(byQZ?)!>hTg4#WD0Ri<LgNBTFT6|Bv5v$PvIxGFf(v-z1Nczl
      znIyEe2<k;<&dmJhJO4TP_<VZ@u#6cMEewklH#BanJInC79eN_TH!M34Ro6J@!H#Wn
      z-xno^??iVh6oyQsb}YAIoR)659jItynEcK-^TeHSc!ihaOop~wep})m!<<<Mc>KyC
      zf>AFNBMYQo7p@348B*C?kwMw5mbr!$I(4L>F?5^4<tL$JURadK&}&w0%PCr(kmux5
      z39g0Duw?$HPbxp3{fo_9F%5=(9V*(%sTWeC{n?z^JfebzVT`I6VVM0Lt78n~44r<X
      zGioJ!DJPMp>*HjW7k_j4-{!URYUtVgK*+MgKWLUD3^UYwioRC*AV)x}LNWaxT07{p
      zLc4rx&A&o_q@V>|v}&{iYa}k9n<70HA%h;;C7?F}9FS6KH3`TsJfp8p>7wGm22r*s
      zV>==Z#_EJ5BWX*T7@)V9xk?%qF`v+<ykLkuG&$R&oc#u8TFu!6CKJk5;!KTP<(m<Q
      T)Xq_ZCADTrty!9ia;CokAZN!%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/ber/BER.class b/libjava/classpath/lib/gnu/java/security/ber/BER.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0486a3b24462ff8e1615c89c4930b680f4b2591
      GIT binary patch
      literal 419
      zcwT)_O-sW-6r62ilg8B6s?}b^V~c3;+~UD@3qnY-)qtn6Ntd!EO&~UcKTA9a3jP3p
      zl=wFEB<jN3_r=T`=JV_A1Hc82Oq3YfizIiK;!(H{GRiZxesV*ZxmSE*!eD3=t5_rp
      zcN{Kdv^G)s6*MQ%kWU!u+#k-yquG?-+;M-v8BV-EZv-OFWskw?N3lxO`jVmC=>`nO
      zAe~DSHHPE=!8RP!9W=1ZQ0Z?tTAgd}r|@1ksDfe7feDLbdMc5Az9Oz$5yq0C>7|i~
      z1Cc4+Z-(|X&9g|3lx{3KdailN0uoBGMbXxT<S6Y?g-v<8@YjHTwRbr8W%i1l7c`$~
      XP{Ka_Hf7+9#Gm4zm}-JnQ5}8*bbDY2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/ber/BEREncodingException.class b/libjava/classpath/lib/gnu/java/security/ber/BEREncodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f83eb28a96ac2e00812642690b06f5dbdabbb9c
      GIT binary patch
      literal 496
      zcwUW<y-ve06orr5G=WfBC=`j2tqll+fT^eh5T=NMqU>p61*6nK`9bhlOqCdT03Hf)
      zoo0dzc(~`<{(R2$*Z0RKfKv=Dv>2RNmHa7q33x8TGLyv{pNouNx%aLL(@3h=eGSEP
      zAyZ|+XyhZ}ZyI<8^HM5VOc~mvvCm*!r;)JH#(EbWm<)YSDsfjXDDfefCxT(%rD2fx
      zK_>OSJ~WC)nKK-D|DScjFdTUmn*=K6vm&GG$=KKNTROf+Q!VmXNB+SW>{(i7p}3Vg
      zf4?c=Siiyn$Od|~sH0C&wP<%n%1ArT5^L|(wN2F~1vm_xV1v5u3L@Pk)ds!VU`nKB
      eP3Lfl{%?nKA}=b3y%kkE=x!T>DtxDUv-<<HsB1U?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/ber/BERReader.class b/libjava/classpath/lib/gnu/java/security/ber/BERReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e962fe13b72998ef6dfa416cd34049e1755dcb7
      GIT binary patch
      literal 1404
      zcwU86YflqF6g|@iEu{(+P-=N9XdggD#RuitcB?f_D}9*;6S8fGvRGQOY>oa5zw*f+
      z;0GjzCSvrvKgxJ#yA}dPv+2z2%(?fRbMI__{r>g?z&zqMm>9+@wMKAPekTVHc&VW(
      z+J|6~tHH38PII};RU0fFL39+1o`Jd;+*f8|=vq>0inhXF^=^iJc?L_QUgi#%(c^>-
      zc81=BQsc?S9))D(VwE$v67`Z?&C9AH-i=L*wxb*{OeX##JH%j8YBX$y8EixvkNfh1
      zZ&2{L7|iwUZ3Y&nRh1KP*qhMPDfM8yw%^b)n#$$9P%G$`2pVP>>WCp#G?y7}dwm^r
      z8I{V*)dnZ5LwaB0`<ha(9oR6zFwjn!YM*q2k~z@_j{{S<Ys2(;+!?hK_uwV^Jz0HA
      zlUMgR1-}y`2#_<ckD5HoF!(oCO2yhF4$L4ZjNR9fc|rQXiHCSZ-H?*etyF9)BW>iQ
      zWJF?^xVqvkXEr=$82dL!P&{?w85SA(BdKI2o6beDQgkc7p2$g}<$7#Yu2q7m;w~>~
      zAqN()BvdYo9>p&M#C;N`SDjcBR;(&N;F{=KSd?Lu%xQ9kt{}C!qU}(b_Bp3&nN_Y)
      zH!}5xTH-N9T(0Zw>oX^4FiCRF^t00UVx^fbDvjOrwgMA9K$kzzgyRdXOmNcZ(03OJ
      z9l|wQ-Dsh39le0Q>O()}5V>4Nt}HC{0Cs<1WVDHai`iBQyQXLJw{Y!jb|afu4H;Z^
      z+@zIRXBh6J)_pO5oYcO&Qmsc<OLe5PG1{}x+qj;!NnB={H~e2QX+6OmF`vM<<S~6h
      z&nadKP0al?HkU^ZG445p?HKb%r&uU>j`76$-Ci(zK4zN;9kp;P{wCIs+5+d$Lt~PN
      zQY7USncN^DX-p#nA99#Qp8m*QL&7E!c%z$`Xo)gR^kE$lGR7!o22tH2BYfbJoq|y$
      qw@_j^XU9<H`P`P}()&;(StTMUQ^onY`nlWG-H7Sb4A1r07k>bd69zE=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/ber/BERValue.class b/libjava/classpath/lib/gnu/java/security/ber/BERValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2405fd71d2900cb0a92ecdc402ab2ac787b56e7c
      GIT binary patch
      literal 1093
      zcwT){O>fgc5Pcil33i>71}F_FC8c~g7R3U300k<P6eNqNMSyZhC4}QFsjJ{fiBpN6
      z(*KYP60}ke2(J7n#O!8CQwUtVGqdyFn>XtpKTo~_xCbYL6vIj<9(w!1LEsH|IP6Es
      zN3X^EUiI0lM$jGd4D^{jZR*)lJq%V9xB2@hjuJ{(lOg?BB%2INj$fC^ZV-38oz^}N
      zlge(j++fgay*9U?Va`SdHbcSj|IuuMA!oxtnqj^k#e94Cfu?*Dw7MjiulK^B+X(uR
      z$W>8K_M!npss4X|6$UK{IyAM<U>uC?<o}+6A;aU425vK?cB|yD%i~V6$FMldq3~x%
      z1Al5QYtD>Orq@_0H!bqHV&fW04A~A(rtz9nZqD{|hJ?W+U|kJIAYZKbrj6@ZqlbFk
      z8}>u~JQ6F){$9de!G~26*XYk6gJRPZr76zf9DPm7-cnVkGv^kyJL|`=T>T5OpQw_;
      zyr@g`ed>RJEH-eSGIxx?0`h>2F5n{ZiRcm*2`Qq>SR$;@vX$05(lY3@+~V?jK_{_O
      z9ZRAfQr{z~u`%wPXjl^s3k8Z&G7@T<jD(sl)vhSD7sMd$OyP{p5PL$VHl<i;+&B?4
      zCt{{DWTJ>=MO>p(+%34@!45I!egiwg)sZ&B*{xM+ni}O>Qp6sEh;S9+J?MW>gq|Wa
      z+|S6KlB8wPp8^|dLMGl_fuAaHPJj<#Xe0L+H~t)Dn?~88{+Cm1xe41X*?s#L&*QZ3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/der/BitString.class b/libjava/classpath/lib/gnu/java/security/der/BitString.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c70e401c4566f390abff42b65e73ed52d0621fb3
      GIT binary patch
      literal 3755
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/der/DER.class b/libjava/classpath/lib/gnu/java/security/der/DER.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98e7a9ce72aa6474ea793f3b7aa9288b74cc3cf0
      GIT binary patch
      literal 1355
      zcwSx9TTc@~7zW^PEYJhxd@La189Y!?s3?eRx6?AX-L2c*M!ad3vLPk4O-gIxoqx%A
      zVWNrg+8<?nXGQZ#n{@YicXkfnO#1WJ*Y8BML6taN5tKP?_p@ig`yhKBHu~LW??d(^
      z>}Ctnjnjaj@#s-2XrE@C<Fl~Q6O{CARg-SjumlMuXvFNa&wD|;R|{JGFowQK(6CXd
      zSjsd!<=8sf7Zf)g+mmlR&5vNkRW-wtnm_OYo>o2AH$7R<(Tbp$VIQGg-f=8xM7;=5
      zp_7tyH8K5EUU_xAr|gnWVuI2Ry5JdBF<|?arSAs?O*r{OX?k^4khZ6a>Q7fgXyi&G
      zYLrB`()P>JH7+KTLbtB8u$r2zJ1WXX1SP8SwJ&WmTEjRdT$R!4CNK(HPQ7MWz7#ZR
      zT`uO1pwVa`WwHrRqU<P+?HPGXvV02j@^Tw2nHDrw!$KU?mBlk?sEjR^%wnLDYg7*Y
      z8z_U#Q&lIonPcICZYpgo-eTz@cF6aN+bl|Bn*WXh%a`=7lq)P*MyY(ytb3{)m1+)e
      zUJRk$qCS7~d9>SYw3_W^Zx7X6U8`YN%+5)eq8J^dNfD|zv>QE7;*h;c(<-f@23E5j
      z+WmLOVb=?eTcIv>rxCPjLAR-W5vHo0ezy@8n;Hq6@O8Z(*m;bF(XUa425AV2>$61(
      zILVxXhndsx2=gdB#yk#BT<UL<c?zCpo`GkX=iqtf489A@i|`WjRd|_MuV;n%I(&oq
      zCVY$eHhhQqE{yW(b3*r6ejk3o{19Ge&cctFH{i$2PvA}FEjY*g6y9cj20v%sfp?i-
      zz<bOu;eBQU&NG|1OHhF%u0<qSWcoAwjbcY%sPvf*KSd2K{HCIZ64!MqN2&gIv!grb
      EHwY=WQ2+n{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/der/DEREncodingException.class b/libjava/classpath/lib/gnu/java/security/der/DEREncodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ddcdeb26f9b18756ea05d876a6220f18fcc582ee
      GIT binary patch
      literal 473
      zcwUW<y-ve06orr5G=WfBXekmSTN@At0aH;I2oh2R5=Gh5#0o~KgYtvmv6w0`@Blm%
      z;yR5OfB_Fa*S_C9$Nu<ydk1iYfrSQx6RVOx1Wy6aMObFCc;S)A_=S7xsxXbDirwc>
      zJQgxl77T`d#mbal-F!C~%rmKEF=1#9M?Qmbo<_n(6RT~sU@~+)sl;_TpNZ@)m?eUt
      z=cQqg_(3N1xxO@tdzmxrd;fpbm|-yVDmDpJ%%??0?eWOh@f$k6L$8|Wv5x$OG1$|z
      z%tCP~b^gv@2?u%#yC56r)u4(#MY~0(V^T)iau!&5t=cy2HYvbi;1Fw6wU-d-I;l43
      j)CLnGHETM13v_=voDg|hIczVf+Cf*F=vCqUYG&&TCXHe~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/der/DERReader.class b/libjava/classpath/lib/gnu/java/security/der/DERReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20ebbdb87b467ff5548152f1db86d21f45406ee5
      GIT binary patch
      literal 6819
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/der/DERValue.class b/libjava/classpath/lib/gnu/java/security/der/DERValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..446fbd7b0f85b04c284a2f55fbc97a2fef0bacbd
      GIT binary patch
      literal 3556
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/der/DERWriter.class b/libjava/classpath/lib/gnu/java/security/der/DERWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a09d076b90fe2fbcd506dab54a6fc6781d3a7f3
      GIT binary patch
      literal 6118
      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
      A6#xJL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/BaseHash.class b/libjava/classpath/lib/gnu/java/security/hash/BaseHash.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..520cbd0c789637af104104d07f615257259b7661
      GIT binary patch
      literal 2006
      zcwU87ZExFD6n<{wI8E!)(lw>D$+`k#i8Gd!mjGKgwsdSwm#(l@6;OfZBu?s)CY|j}
      z>ktA8g9-5k5PYV5*%v;5L<>S_KY-uCAK(u#o_p=StOOy;zULmFm*+g^T>Fo|f4dK0
      z5(_bO35?g9?c8<irj_&TO51h(_1uc(t>g-pXU|ZGK@%8I1`VrO&&`*w+Z8_sUEt_{
      zxEAMZ&$H_G1*dL%zJS)WR&9a7(q5DW-*uYx(*oVnW5K!2_o65eFE?71cY}Sj(rP#9
      zE@lPva=TWuU4gFU0(VnR)A7#=JeK}<%wjRK#GKQus@;PKh71fKArMJtmg1m`ff%}_
      z^tgdIdZaXFpf`|G1|C6w52bMfN2H(O+MexCx0=3vi(vXoPSd{9UM<`1qE&9FvRW0Z
      zv1GZ9+=oidUvWHviPHbDO9qD0nNGwIFZs~hYgNma0n>#5ziGfgpG0`vz%w{O&V1Ku
      zdbO6jO8fM3LDetHyh)XCNF<e+CF%0Kfn#_<ASTU<QuiWWj^U+;I=ry%`Sz-TQy`4E
      z<+|2-rM0%s)ce^E=HPU(gGvF=TeTXAV<8Q@NgTXmYnJPm<W8^dj7B=MT#(474P3x^
      z=3BF>1=VY*y=dT)($;PNs_nHKzSI^C%*xh8Rcj>KmeXKRS6RrxX|$U5L1sgA968T!
      z)D~5GlKhrH&qAy1R_u$8>|EbYYfea4ZG!nCyraA{IXOH!nw%T8_J%7vqE^lh*M3R^
      zc$8j)+<ky9?tyXh7aTIPTNpNzTNp7@TNpJ{zjtpTX>Q~2Pc-Sm1fPeQ2CQ2{k%?v*
      z^fC^igi&1KyLmjpw`LF$PvR*+NfMe+k_6YKBneM~kKt$tCdXA;Ma`cv{Nrv)T`3n-
      zXd^HPLz8<v-NAX}hXc-Ubad|R=sbGR`R$I*$B+)4Kc+Uqb&}2*8Q{*1yJyTdx#_XC
      zlqQ)RTTIF~TJ<{^rqo2Xk=<i;l&OFUlT<Mb8!6P7ppKJRQOS=433eHsB;u1yZ;-o5
      z#i#`IYzXK)`Ij8W&1@ule;d#3B?`!IupO%^@Ni(b8#vCu{fZ18#UPwW5}a)M#=iRU
      znkq1LC#-NZp;hzINM27RqMImWWwptKmWcj}{BFI8XkNdEgqcky^lNgjOV4Y0JruNR
      zYV*OLk-V1BQ{N+@%z`+ngkEK&y*f^D@PHefY!@T&sPkFDO^)6zel^x{4!1d^@8LDB
      zHM|c8AEJeicx|Y<XM&1$>)r_KmeN$n(gx0`5$!`8XDMmSV&N4^QF^_jh?f&`j)Vuq
      z*JvXfHNrDfDDAM%&8u^K%pBjF>0!nIKIQW>#=lGN&#C)jU$aL-Y*8Ms%L>~dvy~{x
      zX7dvh=5%N+(N36gwjwfh4}Freu}_4EERIQDHy`}<@EH!K?MsIKiY0uFA+AY$!^Ge2
      u8;Xe#K#Zwmse-@SIi7O)%bh2&&@}l~RO_X1<xfei{PaT}lGjzvtN#GH-9{$>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/HashFactory.class b/libjava/classpath/lib/gnu/java/security/hash/HashFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a023e1e53ac8525827c1e538beafe5402c5645b5
      GIT binary patch
      literal 2386
      zcwUWEOHdS76g>~Y9-8q(s~C;=|3DKQK7#1@iy$yE;0GMUe>2m}H0kNl?j9AR(Zpnv
      z$}X$8NM*;?q*9uMs<<;%*<_!s`)spI<-Bg%F`7YVs`|cn-nr-9_ujqt_kVu*6+kCG
      zS5PCcJ@1qgv&Ky$;hEX8Yx#4Dg5ebs!~6^yS-<4YDX0}#9dK;J$tO-t&zf0ZVEG}-
      zvHT+f%UW790=506oT*|N>f@-xa)DK8%Q45w#c9)>Fs5x&KuedhhMh57OU@U;TEAd<
      z0z1=hk0dG3kT?C5<N1b@rEjt&U5RVlcP%HMY^^4g8Z|x7$eROJ-t_#Wibkwap#A4;
      zp++2Qu}((jT1A1iEv;|v62p3d`dbCdwXc^-wiMeC$40zQIrB!@u)S2?DY<69;W5s2
      z{}<;41<e9mt3*3lk=}&*7`Add*Sc;NbDdp%F>Du5!)ZI`3U*dkI!oH<09h(_NTod$
      zrQVJhT3=D>?NHG6R;At!6}nW~E1-A<qdm~+5U2|#F?8|nIOJ#_vx6fAy#mcuRL9Ab
      zl08!Lz@lVVPp^XHl1`+kI4GTtEIM`f?Ne}UNheZN9F<P}i%vbAT?$St=|qZ(0qHc%
      zL;B1gSHVevO;ubbBtu0?dW_PeK#Hy4RCSMG$xtySJ<jsZin$&I69OBn@J9!FRE$gZ
      zWWeURr<P*#(B~!lQo!bcuPnvpX)mL`0S2-PrUiDrQ$@v*19Ls*nfA;C=Rsp&lII21
      zSF%6l_@?U^_6gT5xpE6Dj@h8v9HYqoF#}unk7AXg$;dA92FzyUnqJxFo_pT0{23@)
      z$r$%!^J$DqyzE<cV%+qT3aHgs!DJUAuEImT{M?G;Hs*LlBbR$E)UZFYzEymTdkXGy
      zy&}|KvTZI~CC7{76WnK?EIY+g&YB6DBKKhZwY(P1>(L3+6d3lJ^cw+kNgXeh-K;ri
      z$?m%PmG-$;vat<}8uGUcHL_E4u5i{(D`@NVr-*&eK@C)XRa#&_YSD)Vj^ZJSb_H!c
      zR$^5sP_s1<ggCGNhC1<Be}dH`BCTspPw?J1Sh;{rQ%|uuJujMdZ40qSi0j(6XmJM@
      zcX1KAwmVvEi57J(evqEW3teju7B}l!A{eaGwa$p%9npJ8-%t9Fy4DwA2Z<db_MNUB
      zj<BP|J|y;)t{soC0b+y1ZtL1mgr$g$5X<RWI>N??ohEi#*Um)PII(lY4(VDZ!p;-B
      zK&(aAE=Jg8VpoZ+jr1BKy|(Ar*!DB72|PmM0%oQ-DF{5pN6*?GzkHKN*v;<%-{b_J
      zZ;0<Q%-2Yv2`BlyBW%uTKIbTou%Qg$6i)Mh5ocJRXHjI^xQPke$2ok748F!BzGZWm
      z#}t0R1uT&H9GCD1Tfm>Vf)}`ozi<tI!w@xW1`WuHCgj8x*1C=v(ari!!V<%n6&ct;
      zjx>dNz`AxgTOmeJ!gXfJ2Hb$Vm~PL=k(p#Hz~j-&BSE6voD6b9n%$vk4^3Za4u|G=
      zXof<Q4$Ya+WI}T>FhAi=<=PH1S%F)Kv2<5qj$z(GGi!7w?xGF%(8YQ@z>7JC2fVgV
      cd3m4lk{<FhzId7XF<#RHuJL?amC6tQ1#YZXf&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/Haval.class b/libjava/classpath/lib/gnu/java/security/hash/Haval.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca0a624ef62504e2f4055a2d770c79144908cc4a
      GIT binary patch
      literal 16340
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/IMessageDigest.class b/libjava/classpath/lib/gnu/java/security/hash/IMessageDigest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb1faf6b2ee9356d7fd940d40c8f3a84b960f354
      GIT binary patch
      literal 410
      zcwSwQ%}#?r6ot>!7AXEzslR&@*hso|SB(jY#s$WOT@Ca~sR)Jv6MZxnK7bEpyfY<f
      zbTRWy?mank?*0Dx`~on+sg0h%Syr~;QohMhQQFpd^ByjwT7=OpDJ3(y$}>`pjlRIh
      z$O>6z;a#$%l&hA2x2|3mRY@`_NT6TJ7sl8RZr1&{sq-?s5ODMtasI)I4L^tkhDlMS
      z&#Q{nzRqQ%J^X3#ATaP}hBh;b^vjx?P+AeprmUz*QDeNg>nJLo?oFQykK9gmuK!_H
      zBXAfuuG%`K>s;sd{?2`_^*kh7@fq;mTwa6?2YMkxxQ3e@x3JxDr{k{S2z!S6@C?T|
      PFg(N&I|>~0-NVT*p}1CQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/MD2.class b/libjava/classpath/lib/gnu/java/security/hash/MD2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0062efab8599244c2b650dfd2cab04bd68caf046
      GIT binary patch
      literal 4558
      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
      SH`6>{Qq6?xG6<Ma2mb@d8Q~QG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/MD4.class b/libjava/classpath/lib/gnu/java/security/hash/MD4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a426e3d63439d72fc9a9159f849ce39f3738bb79
      GIT binary patch
      literal 6039
      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
      E2OH1?E&u=k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/MD5.class b/libjava/classpath/lib/gnu/java/security/hash/MD5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38c6515787e5ae07fbcdb35eb06a9d2ed42dc46e
      GIT binary patch
      literal 7138
      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
      Wxdt87+?9*Fe#W>MCOm7@ZTf$wO+)km
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/RipeMD128.class b/libjava/classpath/lib/gnu/java/security/hash/RipeMD128.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..88e95d2dbaadc2210f5ccf86dce4fada5d8776df
      GIT binary patch
      literal 5286
      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
      Tj+sg()3?c&yQ23D>)!rfK=0`*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/RipeMD160.class b/libjava/classpath/lib/gnu/java/security/hash/RipeMD160.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de071dec6416cc77721256f0eb0fc3bc215fe6a2
      GIT binary patch
      literal 6249
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/Sha160.class b/libjava/classpath/lib/gnu/java/security/hash/Sha160.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bf70b05fbdf313d92a26fc51307797702810cec
      GIT binary patch
      literal 3824
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/Sha256.class b/libjava/classpath/lib/gnu/java/security/hash/Sha256.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffb909b7595baeb846c15aca1798794169784360
      GIT binary patch
      literal 5078
      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
      L?CEtC^*8<v0&rh)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/Sha384.class b/libjava/classpath/lib/gnu/java/security/hash/Sha384.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd338a97fc9d54ebbfa08c075c5eecb34fdb7c16
      GIT binary patch
      literal 6155
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/Sha512.class b/libjava/classpath/lib/gnu/java/security/hash/Sha512.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e3e53e697eef8ea5e59d1a5e5a8db68e0411b52
      GIT binary patch
      literal 6405
      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
      HY{Gv7)i_1N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/Tiger.class b/libjava/classpath/lib/gnu/java/security/hash/Tiger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36bd72773766b71aeb79d84eba67efc192066b49
      GIT binary patch
      literal 27969
      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
      Q#zIyJMKu;>{x4emKQx}y761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class b/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d734a4d5bebefdf162315e746825e292efad87bf
      GIT binary patch
      literal 10870
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/HavalSpi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/HavalSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51a42cdf0756a93194dcb13297484a11350928a2
      GIT binary patch
      literal 375
      zcwUW9!AiqG6r4?yrpDCPh#w##R1YqKJynFFh==GU()%`jBwJ!qb~l2b<w@}12l!Fq
      zZq%#z7G~$Yof-Che7?N{IKy5DkKwSWTfP=gf@{iKCCxKm=fq2)OMYv|Rko2Kd<Oo9
      z@Q$<=1zpR6w3)BO#*kv@U&vaTONQR$c){RbH7gomiy<goaD*PVV+4p9_9tl<U5UEj
      znNhMXX3jH8Wli_(<C4^aSXRW4q)jfWg;3J<KSSS?QZpQ-|5#?m5M@oPa=MYuJN$h(
      zbw(V({ui#8JpuX_L)%T^Sq6kB$>0^yi=`fh79)ED=T<nyj%D$;3?q!Ykljw1d;#`^
      BS@-||
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/MD2Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/MD2Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ea42682b62bfc5d6affba16dbf3ad5297a552b1
      GIT binary patch
      literal 367
      zcwU81!AiqG5Ph4bO--ZKh#yeAR1Yo|^imPT;wgHG^uA4oWJ{Wq-HqU9c@jMM0e+OY
      zn|jtAn0asJy<zt2`{NV9C5{7l43na6`C7aPt|@DkG_QP}5if-<`Qu`iZe;+Uf&V2V
      ztwli#S&%k&x!4*~41*h4OLNQ6o1QHh{QD-SA@(fa<g*Yxj3V?AF`P`3ZgC~*f~Q8w
      zx|lo1IFU6ywVM^GXR)e?Ax@f1R7;_x<G)Sclu|RCCjWk9&Jd<et1^0!&N<q(FPsSz
      x*vsG^v(d-E=D@NmcoqS{c|3ea_-3JpeVapD-FSd&99R_XWEkVHTXNJX;~&}uRc-(P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/MD4Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/MD4Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..919f6ad924badaeaf9cf3090cf1a00b77e0674cd
      GIT binary patch
      literal 367
      zcwU81!AiqG5Ph4bO--ZKh#yeAR1Ypf^->YU;wgHG^uA4oWJ{Wq-HqU9c@jMM0e+OY
      zn|jtAn0asJy<zt2`{NV9C5{7l43na6`C7aPt|@DkG_QP}5if-<`Qu`iZe;+Uf&V2V
      ztwli#S&%k&x!4*~41*h4OLNQ6o1QHh{QD-SA@(fa<g*Yxj3V?AF`P`3ZgC~*f~Q8w
      zx|lo1IFU6ywVM^GXR)e?Ax@f1R7;_x<G)Sclu|RCCjWk9&Jd<et1^0!&N<q(FPsSz
      x*vsG^v(d-E=D@NmcoqS{c|3ea_-3JpeVapD-FSd&99R_XWEkVHTXNJX;~(G^RdxUX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/MD5Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/MD5Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7eac77350ef92c6643301152c2925a26ca1ebfc
      GIT binary patch
      literal 367
      zcwU81!AiqG5Ph4bO--ZKh#yeAR1YqKIaP#W@f5v8dfz5PvL#K*?ndZmc@jMM0e+Np
      zlX}(}n0aq_Z<zW1`TPQKi*pYS!z8a7z7}tSYf2j>&5o~A;)T!!e_lk%R(fz5_+K*8
      zTI95lIcYP`#MY2v7~IQBng@p7^lHiAKGqoxab)=>i+uDj3eZQua50U$#igino){&o
      zeAYU~v8?E&*{n#tid9JrVO*!8TnZ&y{yTI{AvMEg{O=<(20y7AmC}=Jouk9}rZr&#
      xdl}kbHv1UZ>RA@Su?X<4!{G<~cMBaH+v?j6+*x6S6N`d_3}c*jOU^oFxCi3jRd@gZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/MessageDigestAdapter.class b/libjava/classpath/lib/gnu/java/security/jce/hash/MessageDigestAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5f8f7b5ba0d81977428a3db66b89c8cc9787451
      GIT binary patch
      literal 1911
      zcwUW^ZEw?76vzKJbz<r`JT`2Freg)xJV3KB#-L@TO`*kGS_XxpQVGd*ZWC9D6WPv0
      z(6%?*7ujC(f=Qd&4r$}{KGd{xuPrxevZ*f|--mO4=lst(@!$Xa@h5;1o~Vd16l+eW
      zxNClE7CmltT-)y!cP(D5n_j)R%017l@%wg-d;Vh8Z2R0*p)gGLJM`JDw`~;(hI7)U
      zVLG+qQlsT?bGyMAR8wMTHC-8uETbBIxH*QzUE8t!d4_bhatK}bUE8V6<u(|UrB;<|
      zNa2)<lMGY;0e(n7%ckYG+^&w(IKz;vao=z}-*ha>Xl@w(m|1Ed#X3eY#*oh*(@Erh
      zs$x5Qt<&7*?$e+|XDcnsY;2gWE%xD|;@54Dp)`d2zwHv`YgX6HrUVbj(=dVwk#>e*
      zB%9k9B^e*-P;r7GZi%)rjAe5@j*qr?x#iC#aT!-tTw%C+EUh{&;bZC`cWR_}h5NyA
      zh4y}3#x?{prz4MPh7$s@Zoj7Rdf@V`T{V4Ch-^8xAxvj<6mgB@b;6st?X){S11r;*
      zWw*+P5g6VShBp{uTXd0V?d*75SQ!+x!JQ~TkdO$F+bRpcyE?waEV)#}n-EHl+JjdX
      zZ~J!3@l-4_Wcu|7sK`dc0wy%v$FhnC45xd#(Di)Y)Ukqx45Oy&nq8~a?#dAwD7i7@
      z$PgnmvfbICG+pj>8kA<NS*6JiL_OgoR)|^C@klf|?s6$#TW@t-i!a+^xW<P~&Wwmg
      zT_Zj{ae886F6h%S3WXjq@k!b((s@jr<_r7K_i*-C+Qg8iUrk=DlG7T_)9QR+h!5}~
      zAXnqKAi?y%331CIPRsA%V!rS@CJ%WhDHY&3h2JEP7d=cZVrnu;>aQ5MkU1|U0AugK
      zHuJw>@&Ho|?{S&3eH+me(&nY4>VbVoW%vZsA?v1Oi~J-f%kbt1!RjGs5ut!<Az>+0
      zm=uJI2e=-?(UR5aZTHAaM)H#Qls?@|0&j%CO)7{&@00)*CNc;3Oc_8nDI-TB^MP@M
      zOcC;PnQaQU@P)Ka;Wn*A)$U++xN`ck9Ic%@RQVmMe+>6%t<Y{kvVNw4O3=F$Rq>XR
      zNh`k~`3?)4dno@E1(}VH$43eiX=NWvY2~ok7bM^n;kr13*ECAs;R?RT41SPl%m)D?
      znI#yZ%u*z?6v|9egTJDcLWC5)COa|j6=Xu`xBI29vVrpcNCWxPQ2F0T%g6r$W*cy-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/RipeMD128Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/RipeMD128Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e64e886cc66f217b3c7085590b8fca46dec4e3c
      GIT binary patch
      literal 391
      zcwUW<!AiqG5QhIv)25Bl+K3O}$<~8Q#ez@~#NsLSV5IkLG9+8lBy2VXAIp>A!3Xf6
      z#7*?zN!*3me|G-)nECj8dj~MZkpqk2G|6ke5j(*vifSeGGv7qSQ&FY-QI@n^OfRm&
      zQaZ31_#fsaRh39+Arq?fZ7fPnilKKcbE$6_I^)TT!M-bE>SMq#PzJt@4ctWsdmg&*
      z7>>t5i_b)!@K7t6C-bIn7|5I+>g}4;lUQfO;0Hw{vXxM>$$vg=oyv+~68v+iIfEM(
      zwTkFoHvOaD#q$P$6PVf29A<78Jrf<1&0rY?IA?zU74D0X7WPea%?n%_;|vEzdEYh+
      Lao9pet<(PkL@`~6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/RipeMD160Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/RipeMD160Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15dab49868b62a9be14e7e1512e66eaf0a235984
      GIT binary patch
      literal 391
      zcwUW<u};G<5QcxJY14*4X%G*<M9YAwL|KZE5EWC(Ku~u#u@YBl5;;yK9*YTyfd}BB
      z5SPHfgs`Raf4=`d-F<w%y#tuy$brRhn&dU#h@Ie-jB2gSGv7p#r=m*vqblWcF}=D7
      zOXa|3;D4BxvZ_QP7b=mJxs63>q-N+{t6Z5IhR%4hVzBRuSoSes7-)iTV}iTrV9!Gr
      z9>eiCXz`iI6CN6^@?_rh4Fi?ShkCn~`bn%a$>0Y?B(jyzs>y#oZIh~sVG{gvsX2oi
      z7PXG#y=wYLzl-M$04Jc?(Hus%iylRXvKcH=fOF>eU*W!xw6IUnr5Cs);|vF+yl)$Z
      LIBX%K*6Du%H<4X<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/Sha160Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/Sha160Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e608311d0d12e2e4e392deb017bda1c476ce2a49
      GIT binary patch
      literal 380
      zcwUW9!AiqG5Ph4bO^vbDh#w$`R6*B*^->W;@f5v8dY`7tW=l-U?xx^pc@jMM0e+OY
      ziQ-Y*ftfcu?>%NdKHuH}jIkTQV>pmy&6l($ZbVjVWuN&n6FeuA^E9XN#aX&i0elAj
      z2lHMSLsHx-DU7{d(8>zU(7RNnvR4e9(b0^-zo{0Yj}3;v<aFY!Lv*kip^J!NZ<Ms=
      z1(lMgR;yA@8`UsTrFf{H=0ZQxybug=Qe{-kNUNs*`SfkB48vjapL?bZVOrHX6L+c+
      z4}K@7jTHNEJEM8bMHfAn1J_O9IRpg9asL(Ji-R7vTn=3Y&K+@rfkV+Z4MS|VCOa)N
      F{sMK4Sw;W=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/Sha256Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/Sha256Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8bbdad949c21e83f1135d5741bd09d9188b23c4
      GIT binary patch
      literal 380
      zcwUW9!AiqG5Ph4bO^vbDh#w$`R6!TTc&P}Yc#2*ky-(96*%CKpcO&>&o&*nmfFC7p
      zqIeW{VCK!vdykoq&$o8~C)f_)G3*tp;Y)fVZbaT_X`lHr7rZ1>@~ouO<UCu+06qi%
      zgLx;6p+elqLKu6spp_MxVQ?Xpw3iIM$-#`lzpfWzh&6`5lyu~*L-ep7p^u1RXOed2
      z6{&(}R!db(Th%y~O58V(bD<w-UI~Uct#hhoq-ERxeEPPOhG9Sb&plIyFsmD#i(A=>
      zN57NfR*GG?ozXt#qK|>gf$I`@4gtYoJbXp?;-H5OmqS;9Ge=A?awz(yVT{erWUFJw
      EUx+hVUH||9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/Sha384Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/Sha384Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3087553bc461b9999cc8edd32879ea0978395eba
      GIT binary patch
      literal 380
      zcwUW9!AiqG5Ph4bO^vbDh#w$`R6!SM3qnN@#Z&YW>3y0mn=LUZyBopJ@+5fh1N<m)
      z6UC#r12b=S-h0e^e7?N{IKyrLkKsU;HDA#aaU-%?EBnk>ncz8@oToXB&nM|x1@Ia8
      zAIv*p3`udLq%ihsNoy-KL+?VB%3d;bMn`i7|GHX=J~kKvlhcW_4$;A8gf1e6y;0Jd
      z7gS1~TCGYsYgEHTmEyjBTnPO@i$XBONtIDCC#{<P=hL^jG7N{wf9{zvglSdlOx&tQ
      zJoufQHd5@v?TqFz7hUvR4qP{d=MWGa$Ng7?FAjRxayfJrm^k7T1Baq-8iv?zO?Fyl
      F`~{AES!MtL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/Sha512Spi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/Sha512Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19c6274b12ee1013c961e560f630685dd0be2ea2
      GIT binary patch
      literal 380
      zcwUW9!AiqG5Ph4b-5O)75kEi>se&#QbE*iUc#2*ky-(96*%FhoyAk{>Pl5+Oz>g9)
      zQ9Oz}F!N^Ty~oVQ=i57gDRwzLhJ(Cn#EPCs7@0L%*=MoJq$tP~A}uJMo~3KW;WLOo
      zn0L|`%H@s9rLk8_T3e|Z1{bPQ_L8ADIhr&0*Y#2kvBAJiK_|{SKo6TC`Un~JCP`;r
      zQk9F;YE|X4Ry9skCGVTZh13tUC?!Lb)ESj?(yHx$K7Cs#!*H1V=bjlukk*aP<gIGO
      zqu<GCE5$zC&S)QV(Z|4L?z$MBLjXUHhOY=-9Q3f|a^Na(?uao)4u#(|jIrIB>~zfN
      E3wX3yN&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/TigerSpi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/TigerSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..314580c2232a087790ca1afcb8c295d7c37cbc5e
      GIT binary patch
      literal 375
      zcwUW9%SyyB6g{`o$5=a#R{Q`FVRT_|;cP|(QCw9w9cG{Dgf>HMha?sJELVaHKfsR?
      zld4<s25!#1=RxxE`SuRr9QzSG!cp0DY|WoI)1v5<G|y~Z2v%`jvAHaT$~Q8CPhfut
      z?}gU96t`Bd&Gm|Jj8KH|QZ~|D5eAc!1;M{*S7L}QLSS5Qi~+V21V{)6ldO-fc~i37
      zDA|-V=NV_R5f9ztQm8p!)`E~`ZNcjWSJKTtOW#yd6OOZgd}c<7^R`okxRcI1`X$bs
      z5r?qvg)6crKxlhprwe!%0nuqXd`0|Xp@)&}vArD~Vu~G$l5ZKt*zH61dS&_rCAC^M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/hash/WhirlpoolSpi.class b/libjava/classpath/lib/gnu/java/security/jce/hash/WhirlpoolSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76fb5647ab0ddb856a42e5c0d5c4f02cdac6629c
      GIT binary patch
      literal 391
      zcwUW9!AiqG5Ph4bO&g=N5kJ6_tp^vuo>~M^JVh^&dfui(vLz;AcT@4RdJ;VN0e+OY
      zi3*;?8JKx9^X4)0{_*+-;0y;I9ERhxsQFrK1lN?*N}6ZBPKakhXZ#_PDzC~ik1OfH
      zW#E61Z%J#B(zQ%Uo6D7`3@L`*To%$?Fm%R~1%rE4uBeXz!{F&h+(!pH0lEkn4#!a|
      zpNk^pu~D)}XU*O)k_Fw>k4sYbVwn>|7?p|07edLV{%*P^lbT@?{qw0AgCCc*O6W#5
      z`=j5((?$SCu(zWzX1$A^jh?Nha4Z76ld%5+e`}$GT^oIyfpbfoV$Y)Bi-sZgTai)A
      G3_k%zGGSN%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/HavalRandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/HavalRandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db9029bb14357df7d68802e3db2a5aa7c5d351ab
      GIT binary patch
      literal 392
      zcwUW<!AiqG6h-e#lcvUKHN_8b*D5p!c2yBX5EsFPk?yC-kWNV_VVVejmMg)9AK*uc
      zZ&EjI#2I*V-+gxuGoN4Y9{?^e^5GCBg>K`ucoy+iX01`pOT5lxTpL})_iUGsLg&>c
      zt(6a#F#RK*T1W2kH@T=AX$bu*rB!oH=#3`}f_q!#a)3R8x3csAJ?w|@5E4$tNk=Y)
      zg*8U$Vs7sY6Q$)tyID%}B$lNlL`jv2av_Ye{g3H3E43w@C;$G@oDif{YchGKEMfF}
      zJhc#<g5M6ih_{D6SD(8X99DpT77gAIys~s~z%}3#xa8mrhpfU~3_~1skmD{HeFH0e
      BVF&;K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/MD2RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/MD2RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b043f1baada1cfb486774ee1bf353f1fd0f2b6b2
      GIT binary patch
      literal 384
      zcwUW<u};G<6h*Jov?(D_8pH=M(K6JcqEk^N1Y!yd1a)^4E4WIW$W4&=EG8rdKA<0k
      zcupCZ5VrJu@AG+A_V(-J6Tk(IJva<!nQr)6ya>LLNn=#~%GZhHmC+f$znwk`ot8yh
      zDGx5g<PSKu9l7JLQ&H8@F!ZjJR`r6RGa4@$+?z6$ee97h(y5OQ_5*YgFr18{Ha8bG
      zsy0ezb2~AJl$H-ov6ALVta8Z^Mr9)Mr7+6+pQc+ss|~|A`sZ)v41QcTCXsi_&JTZI
      zPHX^9L9c{ejCL12svfx+98!RH9`@hizmarsK-H%cxFm3fLsG#G!vIHZ$gm~DZ^q4B
      Ad;kCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/MD4RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/MD4RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b314952ae31515e0e79d57c7cd6d905b226e324
      GIT binary patch
      literal 384
      zcwUW<u};G<6h*Jov?(D_8pH=M(K0kbN~a<u1Y!yd1a)^4E4WIW$aO05SxiU_d;lMX
      zcupCZ5VrJu@AG+A_UG682Y?G4dvF-e3e`qyzU9$IWUZFwC0b`9YP2e%``h@DtGuq#
      zMtX1=W`Dq`?T8(Jo%6;B%`mu>N}4N%-ekIDaBu2d46#SP%3~ir><8#0U^tm1U2e&3
      zl+jWZ3p+7Nq!JHpwG#S?uS&rXCUwTkCD+pWpQdY`<%VIJ{PQ;p20yJ^orybX=f}S<
      zXEp$*pjW~!M!SyzRgc^p4k^Gp4~K8?Ur9PRpz6~J#01W9NGjN27~!Z38Fys(4b3}T
      Aga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/MD5RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/MD5RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6256b186976d7ad759bebd8db8d10dfa5079cdc7
      GIT binary patch
      literal 384
      zcwUW<u};G<6h*Jov?(D_8pH=M(K6IRB2%kM2*eZ^2<q-8R&bR#k((g#SxiU_d;lMX
      zcupCZ5VrJu@AG+A_UG682Y?G4dvF-ea^3Qccouvs)7Gfwg>O>HYol|1cN0AbomFL0
      zD-SNi><>7x9l7JLGEq0uFboz-t7gg2n@m>>?sb*PA@<0ZS>&UK{Q!Lg3@4Mg%PoYB
      zYK+qP+)j*QrR9BFuBCYt>q0Vwag~Z<C5*EEr|C9NYRfQ<|M{CagP&BbN#(7w^W)!_
      zGaG<Y&?{jVqus}Vsz)w@LkjTD!{HnJSCS46sQPpQmjp&QBo*v1jBwP2j5{*?2GDX`
      AhyVZp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/RipeMD128RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/RipeMD128RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ab8ce926329dd154317ae9bc2abc4c1297dfec7
      GIT binary patch
      literal 408
      zcwUu{!AiqG5QhIv)25BlYD7GHtAbrB7KDl*il^wIk>0n-61OCquuTLX%ah>22k@c9
      z+0>gLxC=A?4F7z?e15%u0GMFkgTru|>4vYwv*2r)G)C1ge3eLE8J+RDs^tCc<m_TD
      zbXpd1r98L{<3C1X+mRdpbt<Y_8iwAb(yG2<=!}jR4DL;t%031R14A2%ls5S2U@Jfu
      z0mH#4YU#PKz}hIC&FtJTQd&MV#ZsC_vCJhy7?p|07s4o8|1{nDNv#=p^smci41QcT
      zCXsi_QVxGx#ukPn&>gUk(eI*1(W7b#hZNwQg#9=8uOuC8Q}ihV=VY8>hg7h!VTj!p
      Ive!DpZ^!~<m;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/RipeMD160RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/RipeMD160RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a05207414b90cf1dba58ce552d7bd4bd44d7ab22
      GIT binary patch
      literal 408
      zcwUu{!AiqG5QhIv)25BlYD7GHtAbq%)=NbY#Z&aqNblQZiCdCQ*d~IH<w@}11Nczl
      zZ0b!A+=ZEchJU_cKEK{S08Fs&!C^Sfbi-HTS@5+?8l&nLzDgvojL!I6Rr3CJa&a~n
      zIxUO1QXX7}@gF0x?Z}P)Iu%td4MXozX;oh_bVkPu2KS~+Wgi2EfuRjWN*jE1uoa+-
      zfZ<>iwe(zAU~QDnW_E5EDJ>tGVkym|Smu%;jLJmh3t^P4f0}Onq}B{P`qyPM20tzv
      zlgK+|DTlu;V++F(=nmM&=y%bh=utI=LkjRt!u}ilSCS64Df*Owb23h`Ln_$VFvM;P
      I*=wEQH@c=|hyVZp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/SecureRandomAdapter.class b/libjava/classpath/lib/gnu/java/security/jce/prng/SecureRandomAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bacedb0d5e30cf6ae398633ebf76580b3f5cbc0
      GIT binary patch
      literal 1358
      zcwU85YflqF6g|@x`fv+U0Z~9GqV{DAD)=a(6x7tTHK7VoG;!M<VaRs3+1(oWD}MBg
      zUm=lVl<))mQN}ylrXZkZlik_5_nvd^xide1eLn;+jU_)k4C!^Fk=ax~su`PC8<udk
      zGn-YOsawW+rYv{(vTA5%Z9!A(4!8X9F^vA1e>|;R7Yu&YP38=fh12jZbaCk!H@Kxb
      zrj=#ru4yH;M){F~o2#pm-LZtRE~9h85Y9ZqK<solzQW*JG<A7hwfK^e}j1@fAPL
      zGfe!SK7?L`gJ8IzpbOn{HK4$cKmZpRMhGBXwYKYynU<C5nwH*B?TxfSdPBH`VLvWY
      zh0D=!gq~S6b)8ooVH&oA5sWe@HVM_aV;V)Z&M<Slix-tmO3t3%i5HF_sVpmHjwu*N
      zl=_u^kXf-4Ins;Xf-rcgQLAw4rCQNlPtB^Tuc(%g|LskmvmtDTsWayDukq6~BHUOf
      zinf2e%(=$U70buhav}0At{{OV>1d^u_?DB~cDOBb)^bu|z-ZLkTP#o0wYc5TsU435
      z=*6^xTe!^-7IvQ66sj(4NkKDxBMD{{%u0fAi=fOMDM41=Q*a*-7=p$Tsh>#md3hS<
      z7*c;Z4FypX&N5f48(e#`RpoU#JrZ1z7!vuBg2$4xN7b~JA8mM_?Y18(n+>bVp9*R1
      z&>6m^C97|o<a_DvdFY{|=C0_V(bq>$5VE~<^!I_XJoKGN>_bWXK=12)^z9*%NbaFO
      z@fDHCVDcM=nz*v-VocC`kPw0AgfmZq3+P7?QIv4ijk#!;#5KTONmjBS*KwoGS)m-M
      zt$*0}8Gi3UU}yLsP)wwnh^2N;uq@NNOnP4-j1@$%>avWt>N_m`NZ}@-hlwqX3?VRi
      zG}?SMQYuwNWj{?!eL^TftWDgJ8%b~Su!*~0;9K3Lf<C%PW61s?;w{<rjw0_VQXz7F
      wtkq~oL=+E+TDCgdp<ZwY00dp8CgzV^47mY8?ra`|3wGdwRNR8gxiyQw0sA8;RsaA1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/Sha160RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/Sha160RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b26d8ecc29b6539b7966089b31455ce626a57e8f
      GIT binary patch
      literal 397
      zcwUW<!AiqG5QhIv)27B~HR=O+t3?|NwwH<^f~VlYNblQZNw%b$ut^F&mM6hOAHata
      zXH!oe#2uLZXXf9J+0U<!Er1D599RsaR5ihhZ+K9NxY4qH4OX!TO0Ci$%J^h<{mfNT
      ztfNvouo=dG`AtXc{PzhjYoQr>w^GUaj-fNWSTNWRMI!pxV{odBUlHF$2m2nn@EFd9
      zVav|B!PQ!-bZ%Y^LaD@4vtA1Q!k4*V@WUeJ`GRX{>Yt`vXR>0r4FCVBIfEM&jgG~m
      zG>Fq*^RdC;9JD{oVH92TC_7Y5VUYryk>7uZ`$p2j0cDqN;D(G-9Fp>OHVkmoLXKOf
      F{|&9gU{(MC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/Sha256RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/Sha256RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f95aec7165de932bd673e2d92baef44ea6e1390
      GIT binary patch
      literal 397
      zcwUW<!AiqG5QhIv)27B~HR=O+t3?|W(@RAV!Bg;Hr1x#IBwNx=*d&6F<w@|+2k@c9
      z+0>H<aR+Aqnfdo)_Vepw1K<)z4lIUArrKb|UwBZ9q}8%{4OWQ=Dy_00&iPe1d*UiB
      z*Ks8s*bLLZ{H7ze{=1Y{jnE8(8>wV-%g`I2Eg0<kG8IGYFgSJ2FNp7=hg}bScnl}w
      zsACu0;2JGeHaD+EkyPTbT`z@x=F37b_)(egV!^dE^-t4oa#=H+NB{rSoWYIDRwv>?
      z8pQFh`P5)=3fdp$Fp53~lpU%<Sfl`F;t${9zLB)BN7<ztxF%zWeNx`mh7k@r$YJO7
      FzX8F7U~T{a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/Sha384RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/Sha384RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..010507d923492acb11a64c712247df97ae8cb81a
      GIT binary patch
      literal 397
      zcwUW<!AiqG5QhIv)27B~HR=O+t3?~6Efgw(2%drmBfW2vCE1d0!X^=XEKh=mK7bD;
      z&ZeF`h&wR*&&<Ccv!7odTL9NMabPiwQq=@&{=$Pw#Eq8qYp{+*P->M1QN}0p=@VB;
      zv589Qz-Ac#<u@I%^WP=Btc7Oi-AE<tTZYc?V##3N7m4U&kHM)jenos29qfDP!ecla
      zhAlhi23KpT(uH|72&EE_&1NO^GhgL`!4Hd==S!}osehVwoym&fGW`Fi77T7wG&&X!
      z(jZQM&Bq3VbI|@Uhf#FVqwG*MgGCB(Mt=Vt?i)!92b5j9fhiehI3(rmY#89Eg&em|
      F{~O3GV0Hii
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/Sha512RandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/Sha512RandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f31e348c2ae605ea9f5d46186b3b36779e5a0630
      GIT binary patch
      literal 397
      zcwUW<!AiqG5QhIv)27B~Yt#quR*N=N%&8)X;3;@8()%`9k}c^bY!bo8@+5fh0s2tl
      zZ0gB_xC68Q%>4T?yZ!q31Te?31B+prsWw>i7ar6iX|-%#gLNW;N~<i0a~{sGp14ZO
      zO<YL_HpA>Mzv+mb|1RZKBQ(R{Mk?9dGV~_rO9uPCOvMm;3{IW%OX9oeVc$a^9>eJ*
      z>evN0xJFBrEzGM?B$aq<H!Go^`Kk~MepDvBSaK~*{nNCYT-FR1(f>cSU~uEI)rokJ
      z266IhJ~J4cf%b<vjG~VLWrwN|7Ae4)`onj)ZzL@oP<H7CuE`kUkd(KxVT5r9IqIDL
      EH?bOES^xk5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/TigerRandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/TigerRandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..787b68bff17f671cc1742336e63831726f48bfff
      GIT binary patch
      literal 392
      zcwUW<!AiqG5QhIrlcvUKHN^+;)+%%n?5QG%;3;@8rT1;J#4YJ2Y&U|B)sx`C2k@c9
      z-PDU0aR+Aqnfdo)_Verg1HctVAw0sQR4rTc7tXdKZ?!b9Y@G|%XjQU>EQNmJs;D<v
      zBSZLv=^ysYb;RC(SMbINP3Yf9CCx3NH=ZmB{(W7D0S*X(ar6j19L5L`6VAqIN3OVo
      z87);gcW;KNRN}GStb|_hRV4^XTIal4axGo`)AY@=+!8L+fB$Gsh_brXxp<I{F#0{7
      zItb2TcZWM<BS7Eg&{i{eRsrEfGI&F@v(m$n&5^x<Yipe0*s6GM!w@GO<g{}p-(4YL
      AL;wH)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/prng/WhirlpoolRandomSpi.class b/libjava/classpath/lib/gnu/java/security/jce/prng/WhirlpoolRandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abe86b01c154b5478ff9da7001d2fbf704e4ab38
      GIT binary patch
      literal 408
      zcwUu{!AiqG5QhIr)25BlYD7GHtAbqwd#VT`cnThj)blo3(k<z3*d~gP<w@}11Nczl
      zZmK6ia0X`o8NT_K`S^T$2XKb{03PAAPz_u1N6ywFYmBU)*)kKXGOAz?3u($q>++7P
      zT(8nf2Ji{vKUPvV5gYz0=T$8Xp?4vbtS<?j(eaGnU+Y}-F(3?{etrni!B&JWBErEa
      zY28ci3~M7*F?D;xL@IIHtmeYp^LZ%<aiTL`&bX1T{~r4FLaqrc`PXGrLYV5tWa36T
      zm&4!4*qPx7_71opn_cv54Qw}oXB7~f#Qj%<FIIZkwl%abaBjf~cC3mv7>3wwP4-$c
      F{sQ*DXlMWc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSKeyFactory.class b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSKeyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa74bd74bc407f797b8670056ff4b522c46e0e1c
      GIT binary patch
      literal 5029
      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
      Ly##(?`84}K8B!{7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.class b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ec3779a8ea4b02d04a4f5e24ac8c8d1b1940e95
      GIT binary patch
      literal 3213
      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
      A&j0`b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..895c8f221833ad2cc25e7e6ad4b2ab2ec8ba505d
      GIT binary patch
      literal 4369
      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
      WaQ#@;btjHe_Mc{*|HQQa>Hh)c16T3@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParametersGenerator.class b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParametersGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..393aaf0e420ee9a966d136a66da7965ca85056f8
      GIT binary patch
      literal 2984
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSRawSignatureSpi.class b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSRawSignatureSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c26cfe6f6fa7b1b87907e9d93f56006d5680e6ee
      GIT binary patch
      literal 504
      zcwTjo&q~8U5XQf4V^d?=YW&l)w_2p37d<2hq6k9pV5H!2n=EllOv@%wd@N4|1s}kN
      z5@)02(smbSXJ)_o@$G*9e0%{Iqi>?YaGGSLJL50h%|%oyS-iQkNVvI7-0LvB=dYnm
      zGG3HQgbQiHU>I(msI`|dUlc+yw0xP#;)0<$IGHdQSMyl3u}yWH=O%U-MyoiDqHArS
      zCXy398(FZ>v9X1gg(iAB+hy<vL4`<pMlK2^v&0M5gKukO#q+eSULZ4ZS3XaLdf?Mk
      zFgU?H;^~Adsq6oyQ9Q|<9Iqj7{xgrk3g@MY#EsOD{;Fi8SvUs$3iM*M>46kYs(cuf
      p0o|d~{)F|oguO)fojMKdQMBj;&d|X*9LnrJHTH2(u?{Qc(Jv)fg;4+i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/EncodedKeyFactory.class b/libjava/classpath/lib/gnu/java/security/jce/sig/EncodedKeyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9bf4ba4bccd0e9d9828ddc5ed3386d0b4958675a
      GIT binary patch
      literal 9348
      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
      T?9VaSKe51I7r9euk$3(tL4iai
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.class b/libjava/classpath/lib/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b82fa0b1a0258d0e8a3150dc6a33b63d8885a3d2
      GIT binary patch
      literal 1043
      zcwUWD+iuf95IvikxOGemfdYjB4Ob@>m<rwkNEM<e#j2tj^^J$EvvRj}){*U0gs%b#
      z#N~kx;G+=Zjj0qTsFh{U&g?mJ#xuLW|NQ&~U;|AP6^4ya4c$Y2%-vK3!$f8y_b?D{
      zDns|J7<IW!-UuZUp2f*#j}J1Dm@pV_O;XBG29s;FU}$>N5=Ua>cFLqSL-n~-GJDCe
      z?0A|HaTU6LmPi%0n|ln#tGFjD%%Nt(#Jq*`STeE5@MyM3S!0U_^c~r_fQt;ZP-GpI
      zW?ThS=!;pJXD)sL43})2LzQ94lS=Fi`}-n!$M+-3UH9UEM|(VxxnBg0>_DarPiJVH
      zG6QOrc{B)jcwgt9Dx1N|8!34tKN4ci>3Ea*{d^&Ix$4Dz-PmoXgh&S>a5tkcChwr%
      z<q2t#vQOdmY00eD9|AGRWUNvXw;7&H;ydb?3hPZLKcP_z!|^YRq5}*oPP3$2Y_)5+
      zi~A<-F+4ouv}`;;gJJ%k2$k%|!z2(}G9S$9f7<>yPi-`4(sOi$Xn^^+X=Ttur;#EH
      z<ZYuu53tx;{|2kI{vGyL)IU?Cg3Ebav%AFIrQ_>knY=4w2HC5CUR}cq7~Qn%xB+Op
      tO8IYUHM)QFuAxyVJ|oM>TCFdr|G*uFPbX?sz4KnH*ke?oLhaHh=Py>w8ukDH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/MD2withRSA.class b/libjava/classpath/lib/gnu/java/security/jce/sig/MD2withRSA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee79076645ce01af6242d32588f89de0ff764d79
      GIT binary patch
      literal 509
      zcwTjoZA$_{5Xb+kmuHs`Wlyhz2ov-=;d(%c#0a7*B17s`tmksB=_z}6MjxwJLO~y(
      z4;AfRVK1^>7-nYY|C`zQ_<Vf_U|~~7f?(V8BePE@)C`y#2_8P1eV3U5_sq-F>Jtxp
      zH?4*ajiB^@Ws7@04I{xCT{;e#AV}4@&%<MaWO27mpfyKbmc}AMK?Jlseslw?Jh3Wv
      zdDyM$SRy$5OIKuBZOQ?zFPbf@Z9UktPIva+k%GDg3}iD{K*~T8dF3q=)Qe6G8&F@4
      z7YgosHD`W{^BFVd)zrLshx_a*8g`htrJVtjb2}rK4%$?375^l)u*U;}ojK&cORNzX
      ztx+UgcE*)B|NB%?T5LhC3+fPg<%guzWpn~fdO)sJNWa0jpCU6w?nP!2SW)>{WlOt{
      UEDlhRQRZ8LRjkFl^|*TD3ylVWp8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/MD5withRSA.class b/libjava/classpath/lib/gnu/java/security/jce/sig/MD5withRSA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c88c51d99162c7e081f317b5dcac0f09bb44bc41
      GIT binary patch
      literal 509
      zcwTjo+e*Vg5QhJ?v8k~Kt*2{2q!!wki+G?#EEPeFB1Vc{$u?cmt!-L1NyW$Vs-WNl
      z_)y|*lzP#+3&YIp{NK#Z=hxc@01I0>76^9yAU1n+OwEvavEb2*+4Gnga^Ji<v!8j?
      zy>%NpG=lQ~l`i)K8pVP&I&>5<L6ENVfJY|;snTAHKx+;=EQ2M2q6lea^yGzBWo%XL
      z%AjNGSSC1{r7N<mHst^}mrd7dS&#O#)4jcate~C&1Gy{~kv5P*L3t|#^^%jo`ZSQ^
      zMS=%@&6(fgV#-W-H8pR+;Q_mj2W=+qXuHqk+|JOW{T3Bm#lJ}{>hh3acMf@Wi8TVl
      z9mc|A=Uj;ke@|7V#Wv)+pbn8&en?tfMyJrE2jt7e%sY&S39=L9Uu9+it16$UY-taW
      U!y$??%Kj*@hV_KEkyLMf1DUjes{jB1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/RSAKeyFactory.class b/libjava/classpath/lib/gnu/java/security/jce/sig/RSAKeyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f06edc69bffbffb097dbd194cebbede2acbbf51
      GIT binary patch
      literal 5638
      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
      GKm9)>@9q@<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.class b/libjava/classpath/lib/gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70c34ed7e8bf9161731ea6bd41d11470a0c69278
      GIT binary patch
      literal 1615
      zcwUuMSx*yD6#i~0Oes~N6;MIN1?WOMf*V*AD@(0ZK#CZQOKzvvGT6>cW+CEFG4V&3
      z7*R<yzWCseGM*V~g%*wU;m*0|p5^<_(jPxRe*rLxSqVOdOJ&WGH~1!(EulE3YH!IK
      zijXa}EH4)_^I~g>t7cYc!sNDY77SH_pJDXxUX3o95;tsNGPF&qnrh!-Xo<#F8T`|F
      zNd(YNchllQw4ft|R)iS3qj@iMg==NGV4JE|PP-n*@~S2loN7^+E4)|{4B@=4@X9JT
      zRrg*~`t5bqVi?OGmRXu1=t5L^MSV?y2BNwAe*c0ih-I#o^eRD;aGasbGjVLSBH!iK
      z`h9K$5kZg3r7eIH44s4{rI=fWt*3}-Dj&ot^h@ab?d$Q(X|^Z}GlbJP!ys+)iX#?Z
      zF!V%ov3!$R+RZT#!a1C$`WcSRFuu2Hi^UD0*y(0XtXUPnMTSTNNW;|10SqzpHarMT
      z(M!~kb}&Rkh#^jBxz}SVS?qwKzZ6??uCd(d4vZirA;~cOpDrQDxWv$E3EMHK_cgv=
      z<*Dl4h)CpVdCg-vnmE(z6hr^N`bb^pHceU4u?5XdWKY;yL&@Y`v>}9L2u03R$~xWF
      zt4rMERY7B3Aa(lRQ$zV?Un#<{Rb8_r+@KxYZ=chs`)a8<c->9HB-Q!=K)ZuYCEEum
      z0NT1X!&O;9OrRrx46RvX%e{Ao#37gxmxAt?ikMT~)$2QWu~Ke8npGNAxW5*XXglbX
      z=ynx8k^m_l4s0X%jzk}h&>5sJFhz#9ag?Oct{IM@lfJY)2-iZqrI3C%)D9wR+vr|M
      zhI{)y;^YUMeKhhN9m(*85m!!z2c?=i{vN~0Pe}OiC*cs<>6}3Tv$S4w=tUN1k;8f1
      zqqiL5n8y|5Juvazgf%d(G>S0~;8k2ED<4Hkl6=i$+lA|-8K+l2-6lNHJ2lYR-=GuU
      z(VzH+^cx)6!Ngkl<~F9jCd0QAhomt^l>#0RfMt?ah{{9yS9yd%tkJ$cCZJCU;8TM0
      f1e171M4#`Wl&w?B;uh|Bl(Kb7Q*}zyUcQ-Mafg{r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.class b/libjava/classpath/lib/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f735eab972c7f632fe2f2052ac380340b8b40784
      GIT binary patch
      literal 520
      zcwT*w&q~8U5XQf4V^d?=YWxS@yw!q+Ui6S66hRPzNFxQ0+jNOrVp=vy#mDkgQ1AhK
      zC~-EHT#W9*?9A}Zk8kJm>+J(TABQGt3~rR<?u;+Fn~E@3GJA1np>R_fxuals7X%~z
      z9LOl)S*}E|kR}X<-rqx|b~xpWOeluNKqfM~WT<yf#tg>Qd@7pQWH43APZw!wVvC{w
      z8>w+5S^Fr#WJn`I3l>^7Hqfw8M@MJd41=y;P-32tnM}zf^89M{O^Gaco_5#qWg>3#
      zr-@Mad=d)=$DfBh9&;siy>1%WqfE(k1^M6Yc??!C&s8X{rRE$}s?IbK$Dox#A4ZqH
      wNztTg0E051-E*4nupU;hS7^Udr-mJh7QMhZTDX8inf;^2F7^u6exW@029U6dqyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/SHA160withDSS.class b/libjava/classpath/lib/gnu/java/security/jce/sig/SHA160withDSS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4a23b615c60a6c07b85fa328698c7296ba91f18
      GIT binary patch
      literal 490
      zcwT*w%Sr<=6o&t_W2cV2XuYjn*>+)Cu!6J*MG=L;%}CK@It|m5b}E^S;$yigDEI(A
      zlz1{qK`bV4axQ<qoScu(*LMJI?7PS@97b`<C*o1?M24wW=9y1I$rBav;Huv~X+0@3
      zz6b&r4ny-Fv5I10QZ4%<@nEE8DD+gU%o#(z-WV`A=kt*)Vx8hqlDODl;D2!zMP*Je
      zE{S)Y)~UT5dhk##VGRWjc~q^p$<V9&8DlD9YQtz1M_qq4`FhFBcwO69)mO2+NoPZ;
      zZ^dvb8EXDK6w`sw%EmuQ$Bb3N&{#oUIj=5*7tB)~%1f0&e^rkx0SBOAz%E9czD3rh
      ts0W8Upwg@r-{9RZP+Fk!LYW-4$a-`F$0(zN8hNE}HMX&nv34`%-WP^te1HG|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/SHA160withRSA.class b/libjava/classpath/lib/gnu/java/security/jce/sig/SHA160withRSA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02df94ee7f3bfdf3b25c5a720aab83c755037d20
      GIT binary patch
      literal 522
      zcwT*wQA+|r5Xb+kmuHt|S=n<>si5aQoE1tWLKGblT}VB}dM@Xhow9dl^s#yp3i<$j
      zsA%^JA(D1sn3<jV{b%Rn^YtBog<Tyff_*=T%@LhZGh|*Yc=T+JJZ6U6H{G+2)oeWR
      zXn5^*bZ7+Ce~P&u&?pwHGoaIm34%<U2Ru3^NS7-;0<Ak4uq;*yN+P7S>4O(qwV747
      zYvGXAq>zp^g2TTGiY_}$ImFdP*R^`qy}eMowHrqY>=`hS&tU}_18EeLw?WV@I|*z|
      z136+Oc;L63<r3!$X2NT!nF|gN*k%0KXX1wT$BdxpOguX7QNdOGlhmRi4+$zu$V+$G
      zA~4)ZEIf9~6X>tkx*}i?a&b_H$Sc1ktuCVzXwn1LtHtaajJr8<bF9C}ObVMSpLE&M
      WHj&2xiZaT5cVG+K32!H<E`0%(6NI?{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/SHA256withRSA.class b/libjava/classpath/lib/gnu/java/security/jce/sig/SHA256withRSA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d14df91c5c4e89b013fa5fbd22bf279ee4b24705
      GIT binary patch
      literal 522
      zcwT*wZ%YC}5XPU?tFy~LWo55>l?r-Ya8@Xh2vKxIbRqRB)^j=6?3BGbqmR`qp`Z`Y
      zhl+Nu5F%+8hMC!!-!nTOpRex#ENtsY5$yUwY!2y^nj!OI!J}t$=rJ?ozUiK|_wB|L
      zj|SInTZcwa{im4w0gYn8+I>2Sm>^hg@qkCi1nF|6OQ3beeU`xrK}m$PHhJ(ut2VXj
      zb}byxniSHpN^tmBLD6N0DTlba=(twby0_<QxAxwV0(%Aw<g!@8vVk-T%3C97m7N4O
      zqJbPS5<Kvm&SHu4IWyrk)yxHl2kbI_>@jgedm~0rbjBVXb*bPg{z+=lfQJN?1>}Xh
      zY!VpmI2Il|<q7oHYh4kr1GzY;L*$j;l2(_|2{h>e`D!uq2IFpq><sxAnMq+?<&!R3
      W+6HnsKv727?+$EWGvRF|)uk`5<%H1y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/SHA384withRSA.class b/libjava/classpath/lib/gnu/java/security/jce/sig/SHA384withRSA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05acfdf4610e19d6dcd79b3451fff6e93e3c0b1f
      GIT binary patch
      literal 522
      zcwT*w-Acni5QWdSv8k~?TD4w#Wm`yN&}gMaECo>vB1Vc{$u?cmtu-y1q~c?FRZ#E&
      zd?;}fr63k}VVIen`OfToe7?Q|FtMc~MX=-fkujuGY6Q%U1P`B$q05Ybdxmq?-fQeX
      z@o;eMv{fhswSS7a=hH9}tlg)RkO_iJi~Br0CP-JRT>_;u?z1eG3Cbd%`sBe4OnqwB
      zEj<`eT?(mKA!z(ni0QJ!kV9NubR4s5-dl6ETWj|y2D=(G<a1a;Mnf9K*jpuNRqO;d
      zqP`q46x{ck_F{?iIWyrk<C%*#_t|Ci*kj^`_C}1LWRG1s>Qceu_$R4^10E1m7mye3
      zvPqyh<4Cydlqb+%ul1OKZOFwTK15#mEooI5oj{QuP^gu%Z_w^$$jwlAk(m_M;(XF&
      XNqc}i4pEX(?z;o)*hqMrNp<-PxRZq0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/SHA512withRSA.class b/libjava/classpath/lib/gnu/java/security/jce/sig/SHA512withRSA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c220000c6d846591739c5443a3a66098306940c1
      GIT binary patch
      literal 522
      zcwT*wZA$_{5Xb+kmuHs`Wo55>l?r-Ya6O<zB1F*<(S_8jSkL8Lvs3o&j6PPcgn~Xm
      zA1d0tLWrbY7-nW?e*f9|_<Vf_U|~x~ieSeNVsl8R)C`#y3m!e2Lywsu_f7Y#ZCiU!
      zJQ`fPZ5<jx?Vn=q2Q-QWYxn6SVuB#k;sKA23DT8nmq6=``z(uPg0cu{ee&RiR()zU
      z?0Pt$bt$A{h2Ze7f}+a~Qx0);(Q&P=b#KqrZtdM81@;UW$mg(xjDa+Y%3CF9Rh$Gi
      zqJbPS5<Kvm&SHu4IWyrk)yzeQ2kbI_>@jgedm~0ra>gDVb*bPg{z+=lfQJOt1>}Xh
      zY!VpmI2Il|<q7oHYeNyR4Y@d|L*$j;l2(_|2{h>eg<2{52IFpq+zf>mnMq+y<&!R3
      W+I{44fRc=I-yK-TM#9@ns>@%RY=pf4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/SignatureAdapter.class b/libjava/classpath/lib/gnu/java/security/jce/sig/SignatureAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..299c7bfd0e9cc19a89085a88c18a635803bd0c61
      GIT binary patch
      literal 4861
      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
      C;%_kk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/IKeyPairCodec.class b/libjava/classpath/lib/gnu/java/security/key/IKeyPairCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9c7a76d75a7cbf9de2a40b7e1a14abad89162af
      GIT binary patch
      literal 553
      zcwTjpOHaZ;6ot=-P~{<rZ;fu;(2bRaiN+PwkPuV|HEP1b3}r%!wN1*Dq<_tYKfoVl
      zyd4R)K2|s9-uva;IrIMU`Uaqm0}V?I$73%vCVa+?sj$Pqk&*E%BBR|AQI9);>5qi1
      zVVR+#mR#<QjqY$FY{`)CHy)l^-TqDEj)AoqN~Z5kCHLe#cSDgO8^%z0JUhLZuf;7g
      zE%rL5b)M*DXsu!0))OtVER2P0`N0d9?JI^%O(%=8@NBxN7Y<#=rXv{+YuD-f7qd%!
      z(4@oXMBvQ06bd=|g)D|&OqpK&(`C@q|1~0)IgxVt1Nk<h{475VY|(OD!B9;_eiCCj
      zN);*#>>-OBDJ>2VE2LKwI#0Tg&_&XvgkD3I;w+=0VqHg7)eUT_x`l03cd#4(7_l+4
      F{|VpUfAIhS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/IKeyPairGenerator.class b/libjava/classpath/lib/gnu/java/security/key/IKeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54396a643bcecbc86e19507d09c23980e261bf3c
      GIT binary patch
      literal 259
      zcwS|Wxe5X?5QhKpT2BxW!6#4~gSEXPDhh&qT!tmOMu~~AuV&!`_)ucjvv7);;y>oQ
      z-7i-F1JnX!2%Shfv6W{jP8>R;Y$A4?h{=?brBr6jnvJvv6Cg*ZKaH`}kyvcD99lw7
      z%RLjC-QMgcuB=fy8WQp+w(dx1bYH5oDi(8j9QM|PV)QEa@%AVFg?Rt>9p%-*nUF^+
      k_Quv9SU=4b2!t%s$$HK_3P^ba6rZ<*vR4QdzcZ*l0EQ1kG5`Po
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/KeyPairCodecFactory.class b/libjava/classpath/lib/gnu/java/security/key/KeyPairCodecFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b67f23378601fcafa0a7bc88541e042446d7be56
      GIT binary patch
      literal 5797
      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
      Bx>W!G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/KeyPairGeneratorFactory.class b/libjava/classpath/lib/gnu/java/security/key/KeyPairGeneratorFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abafeeac05093ab5d2bd28a97771e9b621b4973f
      GIT binary patch
      literal 2362
      zcwUuNTUQfT6#fnuC&Upoiq@hMyoMkNEmkd2TSU1?KqQEwZS7%lNJb_zaV{$UlXmsJ
      zulfS6vU+*zYJXH$znK7$1gg!$?2~==`S!PO=luQ8FTVl!3@<da2n>|$Ap1<dkXcU|
      zfouA!*%h^#ol>i_(saj_tz79l?wB<AUDePga40gjq+QD1TY9DpUtr&L(>DE^0<EdO
      z1%b9vr>Np+MTd@d>=QVcH*GZ&RF;%GFPAJOkjOiRv=*dmhW|H}ZGPGG1hV=6MJgw-
      zzoh(0+w-Mu5avcIU#D2`UDGb*`u4z_Yy{24aTrH5Bz6Q^L(y>*T_H`^tOy)U^)>s6
      z;W)EU^kfKgLdU1*CXjj_NXwfn*^aA5rALlkyK#IR!>Q=Br=e%h+HgC2yHIE(9>-~P
      z#BhcHt|v8|+Y^A>*}1|<Gr-vp;G#fFu^dBR?R+LY|0-j+t5x60@OY+J&Wzi^?TO~|
      z0{uEJ;h=zCkt=GeA~9r0%5$qR4DJQW-7A^G+-xH#vu(>t)G$r?V&A#S3oJI^$Cp<i
      z#%7rzCOhr$RtW>&w6X=|=QLcSx~`j$UYYthuA(FS<aAue4Td9&#fB=@hJjU#<1374
      z_?r85pi#%NxNSPNr{fkzITV3iaf;@0Gy(J>kW4kOX=KOJlu7$YzKI~)b{vx$CWu?7
      zG-^qY?(SkrKwEa)nJAU#cb$)hQxV{_jv3q&=w!-9$=r7XBPz;J>Pgdq_aR)h97dac
      z?+^j+qo83<;M9K_>X^p^&a|yw)@S<S4u@N*ZdPe{NaK%e1`Ue>XX+S}EKx~XBW@|E
      zDBHjD%23s?Vj7+Z9B<6ot-!R3%8lV$fkBdY>{7DU(MftsR_Q5O+H#e&9Y09`(+aCS
      zoQ&f!o`$#M_j}w03!%l54g>77eX?3rHWvdQDBTWbxe#JmM=89tV!l(`jN=i^(DO5a
      z^e%AkY39qW^D^X1IvOlCUVU#nIRfp5C11Z55C%u5sVz9cwVvtuKz|V66_b(Q#RvD|
      z1t)L~HD-nn#mPOMg6LjBFE652gugblgbxt^Yy3AvDJa|1>xjMOq6Kk&<CMTKjdR$~
      zm0mNVJV4ojP8{3>_=}dItxW%kcJU^?hC@>#pH3WG!zVvNPbW@t@dG+HaC&ha$^6f_
      zmQM6;>CRGjp1O1C#Dz$wCsOZ_rY4b23`ClaL^jm)zu6`?O!vST$&E9PNfNwET2nZN
      zJbEyVGzWAD_iz)lw7Adj92QZ)Q#^=*IaVXg_x^Lr101a(TxK{Y@CB}HhUL;G40&(^
      zSIP0qsVI=)hf!dm=&gwhH8Bv0ceq(+c{;+8h+&DzGU&C4Q&2dEW%RTEw$d6y3b%15
      zO8TYkwEo0ohxNKl(6M}f>#rDJLw@=a7p-fU{R0bc@*8-xxPixuiEq~N9TP9tp!(NQ
      z{yk!Tg756g4lXt^9p<je9T(m3nXLeWlp&Wi^GScGL|JJ^7wsJ)b&_Qj&xzDcOc!3%
      JF@6+h@Glr_Xea;x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5462e165599f687f10c25064d48cad7b1427c4e
      GIT binary patch
      literal 2829
      zcwUuN>r)d~96gr=HiT6%qKHTptTqXc`07i<7EmmTuc9E>R+nTAt04)S4F$CiZEIh4
      zru}GVI{nag?6kDCGXg5DqwTcJ^jrU-PS4%l1QJlk56RyBz3#c^cYb&O`S0#M0NZd)
      zL5aY|crqI~r;TZmj2_LJhBXm6uTMl`nM`DFZ|^~ULV;JH(vC=I$#~?*&^bM7DJT<I
      zS(s-B`vf)=nvJBTn`gDCE-SV(NI;|o*7Vq6BbqfF=`iBmjEd`KE1jeK#RZnd^s`zv
      zVRfZU2GQ0n;K^8~K%i$HPOoJe$vD%>b{k2<+9S{v>|VO`lUPH20^ZJ4O!vcs)hbqE
      z4R;TQ`pO}&R>d+bm#cLu%Hfx*^(rcy)l(`|_ytz<7)kwbc4SC5k848-UE)qfwM3t0
      z8uHyWdaYq2Bhb+ExJK}d<#F9Qs+rmd6Sf3HJ&z*ViECA`MPO55U?#0c^C3EudTH=u
      zGlKG<A%T6tC*kVh464N2o`|Qo>+py`RSxpP&iT+xW_e5jKg0JWqhvisUV@=h9klJ$
      z)21HPEIsBYx!YB=V240yu-kS^MjV0o@f==I@Vr3%VkWbek%%~PC%9DcB6bl^Za?Da
      z9Zs3nVbUS6nzffym_C}-5*Zn=!0pUKYiLly+oR$oyi9QqYnkrku+Gi(Sf1vLEup~*
      zDCkhJ2~SsGFS-=$WBVW9N)`L@3VD$lpayeX7W3}M0rV(1$m1>LSJ8^ya^J%$j^yec
      zlZIm|Ud<Wy6KQJbT;Zs>C$%Lj2eST=`g0WPvr-O!axw-~tU#rLQv%_|J<_6<kxEAP
      z^LS<|t((?FyKV8|b%Esx4pU1;Pm>BOW%@CQ(^9Nwin`%8E7a%55Mm0VoX5g#+M@)R
      z=}aXpGnGh4LUf#^RAZ^5rZHwDND|ezGgx%Ed8dP_HME!+1;Yhbr2|F*d8{tBc4Uo2
      zOy@xioc4jkvAp2AYm<(YiZpl|mTBp<o+PT~rH;DD<d$xgB{H%Ed$oQkP3HoA7~}QY
      z<ij|5NVgd|;nH$}meB&sC4q|gyv2vNDTs92)^RDkcUAObmk(EH8>P*M_obk0uYs%5
      z+bB>Xho~eoBvA8EOq~4QRMw2@U530RE1Wy9MTUFpsU;6eP|86nMU}jQ`9-Ue7qI<Q
      z-6t<;KCej8@mUTp1ruQID!zSg=K~Gl8B~R9zk=eu0dMUTs>4lFs0lYup*CFOokHEO
      zj4Htf84Dl($5>~awI^78oE0x%4KAV<mr#$lu#pivoyvS~0PK}SBJ7pKT4JvxT93Vw
      zc)j%VMsU&XVFejqHH*yy;akLWi*RnCZU)cX%;PDuV=mi!s!qJSCkG6TZmniMrOy*+
      zDo(w+Ak~vkZ9#-lTW#pFzz)92i1IKIR8M1DahYoi%9Q8J?93zB?jrEX{M&f8IRA?U
      z`M!KU?<qI`Z$?X|&V;AYb{(aj$;LVR{{fUQ?Ztg4ha^o+chD|y2b}`b=)R7K<Sl1B
      z<QmsWB6G&0uCdfR>6y&qYGHSPZ>g{Ec%mEZ-}h9}5A5`hSc{)fho5<>Uw9+m#A&W2
      z{*4aCeAmyQ7sq*mI&|U$`fL*WbDW3<M$7m~f;l;dZ)Pz#5O{3{Z`_7<AMu`97z2$n
      zI3Gw%BkAyN2C`f?@^{D~Vnb8lP1h2b$Sp4Num1)PGzH#rGHWU;r}2(-<<bL}9Z&6I
      z&wGxiF6ZeFH%;S%DV&rr=liyYYyeZ_X9m@{P1_v`<}Q2A_F|Tu`wd<AonM%HIEnkn
      z-~m3vANU%7lFh#s@HOf3Rn3X~kaH@SZ{j0-j1sSu;tpF2{HVHG=ybItC!%H!tK>1}
      Ypi0bhMNM?X_3r|4)#SzXi5>On|2>(FtN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairGenerator.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97938b62587547ef018ee2e15760436bda9e125c
      GIT binary patch
      literal 7539
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6532a20ee749bf492dc8d54bd5278d81bbb47698
      GIT binary patch
      literal 5128
      zcwVJgYjjjs75+{hGn2{9Yk1!98lchyLJ|;^OejJKk12rw2?-&scr&?71|~CM=1w5K
      zu+=JBAFbNfqNNtAt%{X`CX`qnwhDdO+R}%8iEXtmmDSbi(jU59e&^ho$q)wUT9(D!
      zbN1b5pKtH;efu8z_<xTb2QUwRb|OchIv7dRY&ZIinz$KA#6s3U%?@**raK<5X>4g(
      zV-Bo0Lb3I0mbWZg9_=;*PUH!cD*vz%3Dz`sZ8rm!6Apoy*(3RrG1PK_+;B7~P~M~*
      z6ILi(LqjmcP)&TAv3h~R#+GGUmo=^0+U#!>n9y`_T)v>6YjGePiiE5sj9O9ICXgrh
      zaH9lePLv9ijKEwTHsWy&9*hxi22E?7(Q68ft*C4o@oBMQgi-ItI81P2yuiduVbm}Y
      zx<CN~*#?%e;^Ih^mrk+(0+Td2;c{Y%z__d_x-d<kY+m*J>O~7`tLN3$@^?Y?JU1p|
      zx`r8;Dd1R~EWo&I`?tw$KA@ohZdRiy6fxH&db`Y6tI-u^`ktm}zzDY)v5=fAqZ_%X
      zl(98d)9MMu1!}X@|8fkG2gt&#jK+EmOCBK4#?S4|NPw@`C%VF+02c{NNkUFXO~0$J
      z>}+sip1{=?I`|{~MmW^H-iYz|EHk!ZcfjnkLeYo|9~79}9*ahT-fe1Q`SA9sfL@}F
      zyHShj#Ii%~tY30tayyAL7V0-FQvscN5zzEY8>x>-FI%LM1uiTWD7KN(!D|ilnNIKk
      zr(PVO+l<vTuGrXSgcD`~mV!GiBWaZrQ|zf}2nGES%T$b94wgD^%ZiQ70^^&q`H<Py
      zV5L0VRdlKFXAs6#F$v>F9sC-u#TuL5s?;RGtdvsH;6e-<+hznzncy<puf7m#(d@)J
      zff-l!*03HMh*@q!v88qxjatTR(a@Um-5?EZ8roBaRT6ZEhAk<>W+$!_7&9WiWwDqs
      z&=iVWZgk?KvI1M_S>c!YcEZrm1=*R5?(R`SO4VhHES;%g8`!(t++u|yNw<um7!V?z
      z)v{2ureVM`)sD>xt1n?ujHc1+Mh`082qWS|ufViRo_0GY@;syH6Ug5sX99IeP>h}#
      zv_6Y8Gf7il>6iO5T3iAzw4!NjZX~eFiT+fb7}?*P){}<avQx@T*P8LT5j3TKKCa;t
      z_#}xTd(Ltr5ht>$%yPB%#G<=o8>z3%YEAe3Y)ayG#NKAc;shYzy;5#$ew?dML{8rh
      zfy&GGsS9=ztgYC|zpRSb%}9Moo{!6D*=g2rK>@c)X`#>v2crz%(<}Eb=9^`ihCCWJ
      z3lzx}8BHX&Z%4?6ynYSap(AF-6Jd+kI~%yB%ZM`awDc)w<&Xq!rZHZ4V)EU9EW-Qj
      znDj4UvmV`%I~ztv$n1^zp$NgSM<!QZ&?B=f9VxjB``MuVa=EvQxy8L}H?_2S*EP3#
      zyG(B+5e_@?-OI^hqiJyD#@#p|_4_@7kvq0Y%l9?>0Qa$qED|L-qaqs>F5r#}KO`6J
      zE<A$LAK4c5ZVQ>=Za036pEz+aYg<<2Xf$J+_|)(Ke#$RtpvMgC@W+=&BXKL12w1W;
      zEUdT^jBKB5*=Zisa2Q8;!J+<?=jf|SvM;&tbL!VlBPpB|{-qewa1;-bx`Ajf>20<~
      z`QfX`-eW8MP7L#^H5yMtA`~WK7ak^pO%Zc<pDA-oZRYd3aSYSt&q)oZ@JsUA=<72h
      z%zkdRK6+8Y$qnjdh(|U2N_HKW6}4ZwaGI2`(;Jakw;8cQ%rcfrbuu2)@VM;Y4s&P1
      z2*+J`k{r!|%O>ITy6~IynX?~w)0&9efn0cos!eiYga*%QcupR1S@MWSs^-G;=>;27
      zF<wlYR@o*eZgt`1v~_bTavffkM1D=+y40t5^r`&+R(UCQ_NQ8EZnwOtPQNrOZIRX6
      z%_~`P)zchod8*UqvYl|cTlS~8-RtJFakoShv4FWUByW{^wo75P+z-=v9nIz6eB_{9
      zUVi!SkaBrD<x|cIq48}IXG`fP|C{I$gD5_Vu}4rojL99IsYCD{!Br3PT@GgPw^(_u
      z<l0r3z+2GO>J1oYMmkyzpMuZ)*+ZxpS?W+mdx>T{U^eEc#Z{P_TwIl0oZ~n+YUSFD
      zl{x8^)oMGratWbHDDGj@c6jCwVZn(}5jLp^<87~G1UXuW52;;0j74^=oEL~~9K&Bb
      z=M?Jpp-6?Smm!C7O-KG=d}IhK*2;0I<1nt`WZj&TsPpCNd4pK}5Sj#h`N{D{jvdMI
      zCXStQyxHd(MrVg(2-o`x^a2%C&u5%Le5^e+cZ`}llXJCitzN*X&n?5`%P@s{;aufi
      zsJk<~3Z<832XM)8ksLeqqCs@aX>l4yiC$8r0+i@l@>!e_s6={~4x^`I2-|%g-J_Qt
      z#g2B}Gl-qOvimUAH%698A2SGxmGX_%$I9_QyFT`WUUmpVl#5DH#hZ|QCSS!&{`QlK
      zyHJJ!OyPBBHa^9h&!@2%d$1ax;WhLIUKu|N6QAR{oA~GRxD8*x0ele$@g*F=%^1d)
      z*$lseNBBI0TW}V);!S)5=kZPagWmta?II6%h%)RG<+w}C;K#9wpTBAx5R3U~Ys9@`
      z6+dZ`8?TccJoOYeI9f<V{8Wp%M72lqPI!rH54l#$XgA<S<niAa#l+Z1&a4(WMA}Hc
      zwc?*d+sN!X@eWZpQg9~zNbGwl!2`IT8SEkV4q`v^*h@j3VXT{J)0ja&bJ;^CzKI|+
      z+e6u%$Mvk(UX(D8I(&_`Qc+11w=ml>;!lmrS--C{dk^!|S%KTw;}<jf?YIMDnaQ_s
      z=lj;n1DDXtKJFy-@@;&_j+Hxsd6uzW!8xasV!6u}%iSGwhHwu#?;OOvK9}zD+<z25
      zvS;M|AP$|v(v-k{Cf6wANi1DkMU@R=@J>vUFNblg!}E(F94AFj4B`>xs=~N+x98XC
      zpj3fcKiQ}08l^diGy5<(9pMQ^knFxNM3G+Pc`6;ESTFWGeH6cy?3YN^jhN47m?`$O
      z{e?_>e%h`KFZoJj9i)El@s;YOsWrdLT;q`XaVh<{lKNqJ<e2&?U?J-|9CP(NT{VSQ
      zC?-r4bv)RVnD(oqdYEK9PO_ZBL_CUV{J_t`X|~ogY;2FA0Z(8Jo@5(*3cYw57M`Kx
      zo+a&`Bi+uDAkX6vUc?YyVw9J;`W1S=O6zO<eVt_dJ!yE3qWS~=jW<L--Vz$#7US_3
      zF&%#u75JN|!Fi&3M=Zg+q6zPbR{UMG<6jEhdqhQwq{S6X5@`+IW%Nem(6iJYanGQV
      zRIakA5%+FZ;>uGtdz8<nEoGLkZ1$**zEW@wWm6+otC{G}k*3qc6eS-Q=86&}>H=2c
      z40DolypcB}Depp7<PhGVMPof~QerJ)MRu_Ylp}MVg|~>lgqcsGtj|%7OOk?fF>_mR
      N@_z{ZNr~$1{{fDnM(O|n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairRawCodec.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairRawCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..848cbfe39dfe684b2a3d952a28ae9abcfdadf4cb
      GIT binary patch
      literal 4553
      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
      b8TuqC`}s+5Ku$~l=StO7hN>sbU3~1{0j3}%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairX509Codec.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairX509Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ca18493b559a445b5ece7593e828c8d3e6b223a
      GIT binary patch
      literal 4955
      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
      VuumV7HKJw));JXkc3bMd`9Jxe{e=Jk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..958c05228e401ba94a41b6f3c068e072f3901700
      GIT binary patch
      literal 3030
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..909a027c038df2d7f5386afab3ffa8961dd67fb5
      GIT binary patch
      literal 3030
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/FIPS186.class b/libjava/classpath/lib/gnu/java/security/key/dss/FIPS186.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9be1d405fc314f2ddea92142657f5dfdb3738adf
      GIT binary patch
      literal 3701
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c95e6c418fc6532439a50cc02b52f6f97de80ccc
      GIT binary patch
      literal 2347
      zcwUWET~ixX7=BI?*bufYL<$Jl7Fuf(J{H@eR!S8pAU1s1Knlf=ZZ?Oou<WLr-A<Wt
      z#u@MY13Gr>jiXi_E_9}ZYG<4}UUbGE<@lc65J=b=y-3d4_q@;Zem&>>{m<`z0C*ku
      zB!n2w7fe^#RPU=wiEFN{J3Go2-%;$6s?3<~t<3mMz9S*R(Be56s##DLa+_RpBs4O#
      z)<Qk!D8t!Wvu--vURO0<QhY`RW-_#=J-2Pu*-$3*!Yp|exIIdToZ&>CudA-%Oj|ZN
      zkZqPBTykuNc=|AvjAQF&fgp|7bW?Y(GYltYgK2}U$t*);(#rD~!f2Dxg3}Zyk<2!M
      zp+km@6JqzWj3&gyu3JVkVhpF!y2<C=?Hsq4)SSUZUY4dBS=H9Xcf}ZSHuMt1tLgvI
      zXDTCB;Le<tcMX?7orz>{(lN^8yo?Lzr2vGOXOL+bHwqRpZ)`KP9YBwEDT)NuMj`z;
      zQ>I3B=ZPYbT$>=<4PLalraC+?0u0JXVu+z3G3y;S5yT%xjMQ^k!X<{@<5jtiZYaLr
      zGHqpC!3gDZ5RdZ6Y*@B4uWnO!P7`;~G+W7i(ajmUHua!rncQ?lMsLZudQkEdjhx?e
      zRih+Wj&S(m98KP7hJ-O0=g=F&I~bSnE~OFFP8n~5Vur2UX05m?RNfGU1bfr}A!~At
      zI+kCB(8_x<PU4h=_Zd>hJEdxlZkfsqm1<i>ZaX{Uo+XMj!%2hWHB{n7)m9zLj$sz_
      zLY)hB<yKmj%*OBmG7@evoT&{nu2F)eNy~I>%P>T_OIRks<gG<pzpoqA0@A>hL|t)*
      zhkjP0$>W`oaJ%MV@RO0SN>``eI^pU@o>L(!n2+K^s<7sQkBNhiWqg9WG+DJ+<R)b`
      z7*y&pQ-yj|P~-%K#?TX_tOLg=NPBD`iUQ5n92<Th6r#(R#z+)fWaFM~1>3@Qks%~x
      z7Ry+!t?_AH-0PFoTRSA8M0#o5VT8~?s*4~lUJH6<<KnHLwN1Puw0<u1Kx;Gkw4jwR
      zar*j{a1mO2Qu}x*)%^%k<S`=MduUG$?4dI?xQDJ^={$rU`aeSvK*Nq8L!3**m?5TR
      zv?Ggd+{P<(n)3O`_blM;M11D$L}npxCvppum99u76NOgc)sQNq@0V)GM$fqBQOmwV
      zg_>SAT&#cxE8uYawR-5?BhYXanxs5K==U-d1efVccr>L_Ptab*Kt0X+5t^ndjZ)3v
      zQYC|^z(2)sJ$~y5K3c_J2q^yvI_tr1VEJzZ_U_Gk@MnSGtAUZb>cL+Gg6Yw!fF1G<
      z)7sbn0uABa{y!l-^fu2S&52S5e#13}GOq7dnY)M^_>y$;745zzbvz_xenU!q<V8E@
      zGgcMUhY3tlyf)I?4NQ5HnyxnfFX9oJ+M;MPFOYkN+12>Xeat<@;&Wuvsb^SO?cc|p
      z_*xks`O{V7dD{2WFTU;@J6l@H*bs*5$)<nOb#PLKv4<HE<*-R9?}~j(*W!D+RNtWk
      tKcEwjF@hhlfS*WwKSLwiI(EI%+Wk~3rFD>xNu{%h5af{8TFc`u{tKhq<52(r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c7f6fd41296809b450a5911f91c52dad0bff00e
      GIT binary patch
      literal 4618
      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
      YFLzSsCVd5-#IJab${zf+^7l9Y1qS3Qr~m)}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d93064f5d7a94950e61060f90362f679ba140a0
      GIT binary patch
      literal 2694
      zcwUuN-E$LF6#v~O?S^!<G!%*yuofsu8c2{2r9mL6ZH@g3Efh+DvQ2K&h3#(G>=r71
      z;+xLs=-@c`A`dz^*auKZkj^Oj!i;~E<GGuVHc2b;kiF;LbM866bI$Lc{Qb}4-vR8y
      zrxNNI0vX*7UsC3kaE_;JQ?(Ytm-#~2%qii1-5wo_CGBZVO%3n`32ufR&og%n8yH$E
      zjaGQ^Fzl*Ss=CF^870MY;gtayTsg~R@C`cVnxbdIW0tAvnJ7cU5mi^MqYPnxQ9Y+v
      zv*Ea!NszM)H>0bc2F4lOJw}>)!O$e55$hQu{=|#=Xc|;?K5WlTbMvG!t#N_UNGaO5
      zVya?aI&@pJYL206@Ofn`Crzm_onh1Jp-D-|U1%Z%S(DFj)8y$s!z4RWB^ac6MYH+H
      zjHt_GJn#Z>*I_%_CA`Y8rS{S&Uk1sSiQgJJVftUu8+H5xlTMLwpIr{aUO9q654
      zsGE#S*vSxDJ93dFNkuhBm8+r`DKB=QQ#4~Y_1qsA7yE#WAi5||(v!^!R%~-JTZ3Ow
      z340j!{GaG&4n_`_!iUf)J^=~)7&?~eme4ewQM8zuvFEsM^<GQytfd;%Aa<F-o8eZk
      zF3_bJ>ivnpWLzLWB;yUdNyxcggM3Zc&fO3WNr*msJSzwvw^c38O%L88C#UqBoy{7i
      z#nbIh2r_7&aY)eJ?nO6_iBcYC*yyi)Iik4Th|B1~+w_W*Y?kYUek-A`F)l@oiW_}0
      z`tc5f$1;jah8BPA6|#-s7&)FPk+Q+$Ia?C~zhWy|t_s!2^d+9MqJgu5)gv+nF(h8*
      z2^pgpV`!!d7i-jeEo<o10wUkDu+@*F5fV;#F^&-lrwQI_M#L{;`cmagDPeG4tAM<_
      zs!3~%Cwegq=Vh#eSHcuSu$FU5N{}VoPf3_YmYdc>%sKHuVR%`i5wbVOvx=!$hUvux
      z9P=WL83{BwwpV(Jr6_!^$Iva)AWoVxGMHtM(?-%%=T%~<;NXE8ewCHQz|lZ$-V&%D
      z>#G~-g$7;1T!pH5LxzDYF@bv1qbWIR>4pj>IEO?86P5(hHdU!)*n&wC-5*xwxCdA1
      zIr#<276dKdqvyLCasPv!F7$cu0eJ~|@DVKmnnQwW-Z8^AQ@l?Vv$&;d;_VgwXr2)z
      zP=|UV55o=7P5O6iAh{7TeP5#8yKs{Y;0e0BLIu2hpX53;)7MKYFhX~e@R8JBw8I9p
      z0FJZ~o5+ihT1l#N{H`zg<>c2*Yjdzox(%uR4%}^_Jq2uD4&ZYP&O@-H5mR*aq7x`s
      zyjTv@j90M53DoR_taBt0(nTq?VQVSmEbWC=FzDL<3%0rT-^PX|?3gHES1=F%6R>-y
      zmk^@;UfPGn-hnK<M=CIxbZXP-Rq}q_!6X+w<8^e<%CH{?N>Tr!@`}PF+wMAO4?21{
      zC|l{*xeVdp&>aMq5gev%+Y%xZOX!~P9Vy^wTOP4IdJ9PW5xQ5dQzvB!e2&fd0z2^~
      zcH=9G|1}QbCQ<4eYT-=`<68&k0YXDq%C$?9R@81MVH_arb#(KYG)%vu#KdeW<?|Ws
      zMLv<Pr>J)=cKr$IJ4bi|X(&h(8NP*$ggzPi4JR4$ICTs4?nT#P8E*#>0{DR{`6H3-
      z4tf0vO}I;lex_b6B24Qtp(16h5uCvUp=cqivzT;n(OfR!`kwrWnhpdX;M`NhmvCXi
      zcd>x!M@T(^Iv5mHBwUyCxI(4$&F66~Sip5!eDBkzO9&s*hYI`<=Y*H)65l7TKOh?Z
      pN{xF+<<29D0*>PmmH8q1@YsP}B;Y^^b}OaxF~nSF_{8yd<6kP~h-Ux*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairGenerator.class b/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e09c4234183331b0beda83a92005aa1211212b75
      GIT binary patch
      literal 4142
      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
      Q?*+xYe6E;ZbEtp+UjtSevj6}9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.class b/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8a5f4cf43152639b409d11d9214a6de5629d09e
      GIT binary patch
      literal 6261
      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
      DR!NF)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairRawCodec.class b/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairRawCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15ccade3152554c3ff75fed8a34fcf6be7e125d6
      GIT binary patch
      literal 4068
      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
      W>q<Oba+?2lvh1lpOk;KyPyP><A;6XZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairX509Codec.class b/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairX509Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6b6573af6543030a7dca3a6ff1de197cd596cf4
      GIT binary patch
      literal 4663
      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
      C3&=qL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/pkcs/PKCS7Data.class b/libjava/classpath/lib/gnu/java/security/pkcs/PKCS7Data.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efd7a578933cbe07ac7af4a98d5c2bf3759aebba
      GIT binary patch
      literal 668
      zcwTK$*-FDe6g|@|b&OT(zON5$g~Yg^Vo|hJ5Q_?xg7_e5I@D-QB~1nYN>LFM`~W{n
      zyfYR>l)&7~nX}xv^ZxPj2Ef9sh7iMK)oYp;_Kj^egwyoh;MTmpbQ<Q-ey+HZw*y;4
      zgrQ3@YPMH356c(A2^hFyoaMKUw-^Qre{Bx;^6LzmQ}+Vlksx%s%@EHzHP>^44Tf+k
      zU1Esj>J_1(gQ4$Vi#R$NdM#tYSY4VoENgLjY0a>V6~p4t(XAti9)?)9W!jf2{IpsO
      zeAlb4r%P?16CF{+7&;5CCk~odW#J#&<(gnf7V3^&E7`s)_bo7*I^9l}IKmi~8C+V7
      z>d+9Uo`Z9@!7%;LrGL+k?jNa8rD;_~u;V#&*9u{&w44Pm)|<W~c3qj5_!b$`5mS^G
      zrgsWqNcOG%D4c4T);4fDZ&&XqSwP1t^pj-b8C?(Py;t;pS~*o<o<?P0K%pRE5`!)I
      zE+G=*nP&`T=AJO}qfIF5EF##Tz)hv^|6*ed<0_V8g4$v9O{$iqr>XWpH1mj&yKlRg
      R0&~hn|01+(Xq1XI^9ftic_#n>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/pkcs/PKCS7SignedData.class b/libjava/classpath/lib/gnu/java/security/pkcs/PKCS7SignedData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ec095a4325c18c76402404ed3d9695d875ffa8c
      GIT binary patch
      literal 8206
      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
      F{ui{(h(Z7W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/pkcs/SignerInfo.class b/libjava/classpath/lib/gnu/java/security/pkcs/SignerInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..604a73552392e274d2e401df175ae6d4a50b5f90
      GIT binary patch
      literal 6501
      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
      P|4W_~P@4Z4cK+)BD^<BC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/BasePRNG.class b/libjava/classpath/lib/gnu/java/security/prng/BasePRNG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd9b6aa3bd176ed0502e238559e2ec8874b1d574
      GIT binary patch
      literal 2892
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/EntropySource.class b/libjava/classpath/lib/gnu/java/security/prng/EntropySource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3810c893bcda1adc7fa1b1e8cdc2360578bc14ef
      GIT binary patch
      literal 181
      zcwSYFJr05}9L3)skt#06GdRFv;}wXyIygF2(hx{fu(ZZr&A|hBC}XRWZ+suW_j*5`
      z0Jc~#B!qRN9q+_V@KM&zwAS;%=!WmLHT~dEy)(6BND0etONkI3FP*F{fnA+YVM3S`
      x<&H4d@@^|{<w!`2@>~(}AK}m{Nm%_+HxZZ-!WvOYIGG|tJY$#zClI5L`~%V;EA9XQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/IRandom.class b/libjava/classpath/lib/gnu/java/security/prng/IRandom.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f89eacbb9f4c4f9ecb448d4e00733af52b435e5d
      GIT binary patch
      literal 561
      zcwTi;O;5r=6r9CE0Ra*4Tk+zdB*w-ww;D}IP!pPX@wAi;E-BllYz_Q15B>mul<~Di
      z2pA8W+04AzeQ(~^_s1uITeMB&7}{eM+Y|oI?V0f6Na}?hMrv&L23(DTsR@Ijp6Wg)
      z`gu4Jo;FcnXs+2iKTv`XeZgQTJ|$>bo&H*PbtKieOR7{-Gc>GBjJ5RbM;>-NFAPN`
      z=Gs|ka_?9jhoO8w_e7{=pk^la7%tZj_IzKAx$kPO#j480KEw4t^YrCZ>Ve?in;5Me
      z45i;sXAGwG>hyX^D^)%kW%FnK7?zXJwGEmad2%E|-b(`5o;u5_YvPRIYAdX#K)Z1m
      z29e%qr|brC<cSBFL|Iwx;3n}>;FJrUJT0$COEFPIvYZmiDej^|YL(Oia;TwBTm#KN
      cTnh(j{UMH)*i7*lC(Bxc@RZIu-E+A30drG_!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/LimitReachedException.class b/libjava/classpath/lib/gnu/java/security/prng/LimitReachedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a0e5048e019b1fd3aed727ac1d4c22d78955315
      GIT binary patch
      literal 478
      zcwUu{y-ve06orr5G=WfBXek35TU$^gU;wG83xX+PpeVbWTB%WfD#t<aSWJ}|cmN&>
      zah*mW0Sg{{uI=xhd;I?K`Uc<xJqI<0<0vh>2mZ*tT!e*^`q^8mH1d3zNPQ=GxDfN}
      zr%)`l%u)vyL${=3PSDo_gMBGesV5Be{vcqmuClpsQO9Nz4cH8AU#8-=NM=Ia^I0qy
      zI(`=NIN(Z}b9HIyh0Ga7{(oYP8G3#HJJwVynMUJ5U;^xz04>Uu<dGTr3uADnS)oF4
      zBTa&XKSzvA8xBD}Fsnut{fl;oPG_Wyv@u*^<E4CdX?ID1Q&<FSQPo^Sq}!y%pj8=6
      hh%~G{JX)ds)8U-Ri_&3#O;rx2+C`@v-Yt9fJ^>gdWpn@l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/MDGenerator.class b/libjava/classpath/lib/gnu/java/security/prng/MDGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc88d8dd9351c2b00b6ca29715dd35204c73e442
      GIT binary patch
      literal 2078
      zcwUWF{ZkWH6g@AAYz#p(Dzp`&_|*^~(Y9hMR%-wuHHk_rEk&!F-A7p6>}K|(Q|$Eb
      z@z-{yj-~Bbf2z~|QJtQ*$v}WO<1l;oy_@^)J?Gr}mVf{I{S|;qkQ!nFXPQn}e4>A^
      z7kz1jo)v5s+n&=bR_7O`BRxHEJq-zgQ*VhY>At+XTwByIAaFDauyy+9Y}b)`!<GVC
      zb^cN9W_3XzQ`rfq2cG3LX9b4lT*nV|Cs@(#P$n@bFvem9!`o~JZb4Nkw9LYW?r#(v
      zy~TtF>I(}C^GO^M80{13OKA$kS~MS4_QO_*ish>GeZ48?t)}z?q8PYlIaY98AfB68
      z5lGCrCb0~s5XVRwM=&aIJhvadiXE<4j;w{PhV<@t7-uT3q1!9EXQ_SHnFuy4U*KFH
      zNP870o&&xN!ZuTNi-v(^7pr=k6$fz&;~Gv=x?Mk|aRz5epeX}^3%y|PG@eK!n4Q?~
      z(r{kj@LpO6LFv*M#^EF;*g$_npT0D6F@;G?YnbXgHIb}KG`Dnv6gJZ+peQg%H07wj
      z1~r)NC*eExXpl4ev4)QX&cD-vG(JIwLVA)?YM9|jtd&%fPt*7eSK0EgZR&v<(A-+7
      zTvn}2=>b7C!a(|}ue+5ONQaIoJ$sX|tMlw=XVMO?Tee-YUE?VeEc{@|c3^R&HIxLV
      z-qP%f)v|(RsT&*8+&-ef&8M+|TZC<>3nXwX*QaYLa4C&4z9b7XVoNl+iM5jITqTXF
      zqC3zC*Vm=TiD;PyhebEdW!*8|R%uhQPUK1xD;k!0w|5GZZCf^VyB<)OZCpv*ry7nM
      zoK|<l(rxRRG*h^T5e4LHCFflM(cnYMhj!JWj&b6kb=PS{nJZg58Xog1?D<^O+@Kz|
      z+pZV%h@x&FwH{y_Lz^^HbvN`3dCO9F>Tu7cDX451rvPz22Wa1ih9uVq`MrxF#eKSG
      zKg5R<&h-F&N06aC%H3u91>agebL=IK{}KhiN1NgsSY-GTQ-R5%FnoX$eDkY?lid{m
      zAi+OibuyFMLN<oiI9Hu|gERSGap4Vy^O@Xl$iKja=NMJ4EnF0Mj=}s?$32-D>K?mX
      zn|=c={%5kL;-=%%ueNX{fgMl<4ANE!rbaGzF^W3QVg*I4;tJL<hX;iG5V!FN-{5fs
      zJl_G=1+G@JxJKw|Za$|%F`gR1b<9Lc-k>rue8IQ`cQ+$~Pq|iNOm@)E2|~S8$xm)!
      zQQ!q`D>t9pab@;G&P3%+Hb4^YI^i@USR<X3U06fNMwB=+xI<zcWgifdiW=)EIrIna
      zt!C;k@zr0-abgQAv3-@EvPU)>++tp*r_$KA0ArM9HLCP2u68SV-5zH9R+=0;*_V~a
      zT0Uz9oQ1GQ?Cf@}ESoYDO-`0<9!5yA_>L<jHt&9q*pDJ4Iz1|CJpU5<Ylw;h@HdX`
      l5?@Wt&wIdZvX{>|<3I8r#!o%O$Gc#X^fkCr#Es~z`9Eu7!chPK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/PRNGFactory.class b/libjava/classpath/lib/gnu/java/security/prng/PRNGFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2754327797f8a976915702438015f74678e9f44
      GIT binary patch
      literal 1073
      zcwU85T~8B16g>llt=r}MLqSDEl(r}pK_#j21uRrnG_675ZD_|bWV@^TVZu-GU*HQE
      zNqjZ&M;XtyNR>i(*ts+J-Z}T2J9mHm{{92NJeCY}2u#)7D7Pm+%Uqx;k*~x3+(+N7
      z<=&JwRtvHcdj7tFgg}2I$B_)Z-q}-?&_K7qc>C>=s_7u~_XWD2X;+8O1v=B2O@YL+
      zS5+oDk+NVQDbQzYS8YV~9p%53JB|_<w7rUSHl?rQ^NBMN?&?5b+P<7=ULaLdVbKjj
      z=~j4mF>SYamqTB>wS49xpkhh7Rj-~mF@zBV!~cnHUbZlbt1%^C*9C^tnRfUj#soU*
      z)fnZvg&Vj@9Q7%ZPEf45p0Ac=KxQN7G21q9>*6PQwX&*Q<x46xF@Y3$#QwN#ZBXpK
      zuY$-41tu@kE0AQ<He_9~%>#cmMWJ?bWfkTPr0H(?)?~0tzlj;7;$_yteLUbR%WCzE
      zuI8jrmx&za4LoGL1+?rr4#V1W0}GF^z=??5x>wa78qd!fB%eOR<}5q*dY80^>^6c7
      znPo5XE2^O5IqLssQ0C%n+y+_m>*D{=i9|e=JYC^wfmYCVWshKf<)#A`SCbZa!qg@7
      zaA!4>(2G9WG4x~L1i)ctoI9EQi7s)FJ;dO;u(N~L4l(`(sbfrR9r0ym4^FWsSRPm*
      z_6u}l6)CK-Mv(*ek}<ncZ?uU?;#0IeoUl8XX2mhw#l4ft1?I%8hL17B8kzM*(d@hI
      fH_WxF^-?hKo`Sc?efv~RlItQK^CYM<&VKp_S@`=@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/RandomEvent.class b/libjava/classpath/lib/gnu/java/security/prng/RandomEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa3ee8ecd48fa44a86fced9dca4c2a4a9cb1438e
      GIT binary patch
      literal 1015
      zcwU84(QXn!6g^WGwrm$cq$*l;T5Dygc7ydvYPBdP8e)w#B&JUbjJS2#CCgClr}%Ds
      z@<9`86HThmew6Xff?6qwFLUqQx#ym9_w0|KUk(A3Ve6P;Sm^izd&k*z?7nCXLRaqD
      zz0mL2PaMA;bZfi9mpU|t*{EkAUC)k+o6Q~3k_=`)7=$hHXwYqnkbzYhj9w6UzYAL1
      zkq*PuHa#TPT;G-J4EbU`8s|C0G@MkaR=2BGg8+AfwlEOG2@?j=#5|$dY9zsM(nK5y
      zm7Ox7BcWrK7W&)#!1F}M@ixNFpi7c#uUn!g-N2v58HREgZODb%rq8AGQt+mbuY~Y<
      znbR9zz0R9^QuKN7oU1Ji<d9dQ&W(xMlA-H&NR)v&6m%p_T);(!c*_fX!H_Fj$5&9Y
      z=S@r_$&jwQ{^%1vb($VQvh|?lcnv3X)qPad<O{dYuvq`UXBGO|Lub^iW8_5H5pwGv
      z>taQVJW5gh@e%)Yy5EZ|)QXle(HNrcyGl{!2<3`m!91-MqyH<0tTKnPtg<GGv@1o8
      zIt<LvY0~W-b;c>)C@mi#RhrvJrc~HRHm@DN!3>=l{uZgP$UV!RKET;;rM&hT=f8s*
      z`A5P{VS&!2X!1>(RH4~xNaGd?SSK~Naf#v;+`%d~C?}>N9~N;Lh_WSmXQP({O;nlE
      z9E&ogT4^rA8fmsEs{VNC6Eg4rh)6`mT0~+F8%87yrHSC|IQZd2@G`DW0P_!H;LVBP
      IYf;zAFG?WC8UO$Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/prng/RandomEventListener.class b/libjava/classpath/lib/gnu/java/security/prng/RandomEventListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca9c8fa214f95b24d5b421482e77a92104870f2e
      GIT binary patch
      literal 240
      zcwRg8Z`VEs1_nb0ZgvJHMh30)yi)zF#Ii*F;?(5QqRf&?{eq&rbp4>jyp;T0*Rs^S
      z5}(ZClGMD^B6bEAMg{?}+MGn7691&E)Z`L&1~x_paj<A<NoI~diWWu&zQmLiB(oS9
      z)HQqvTWPHs#>l`GoL^d$oa&aDlgh{-fyF_3AVYw*Gcqs(F)Pqlj6fH%GjM=d44goc
      HiGd3MKNm%2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/provider/CollectionCertStoreImpl.class b/libjava/classpath/lib/gnu/java/security/provider/CollectionCertStoreImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c3dd00069f5ceac11bf8b896666bd6288835745a
      GIT binary patch
      literal 2073
      zcwU`UZF3V<7(F*l*^+FnR$5zx5=1aBh4514B`9J@p}G{>l-AaPahqJyi<{ld?xur3
      z1^$2^)fuHznNj%acmIxh?h+D0o3=2S+1!`sp68tNJoo<n?;n2xID_vD#01XP+-ClP
      zy>90NS!wzz{4w9~y>(TUe!l2Aj;w^rbBods%c1AXnR>%95EnSoeWt>Id^@V#Py+pd
      z9tw<FQD`$%&MSxofqj>itHLh?a%pQPwA;3C*JUXEppaP<NR%E{WJ6;F29g4&yU)(J
      z>$an+SDl*2`C7ewx_wL_Ui7Lmfj+!r!oYxmcelX2ps>||4w(TA3uIj{OxdX&15@7W
      z18ydezyY0aL|~+)*s<MOz8w0>tx;P7L-@eN7{&z#YclMh3XG*Q+xxg50w0>_$3B4}
      zOSy8kSznd@g1zd{{9((h*v_KuD?M*5#=|ug2uxXTUVB}(hE~S&d#)PwO1DO8*Qts7
      z>b|Pjp(Mn`-WXD+_xwT+*#?da9N&pRyWR#q5jfC6p-Df;s-*&!<ODLhBw2yJbY?M$
      zNt`lpvMaok)I=Vq1qKvV*-XLS?yAa6YrT-fSxgx?NB_6(n)no-u?Vhw7&6gIgs2s6
      zMV&%%7X&7Hh-<l*#3fudP}t!rwk$O9Ie5$Z>vmXK6FAn>^A>U;v!adp(!^DKMPux0
      z^|g*|(afx9q1Q~5FfCxL*}-h2iB_)Arl6Hy;OMSZW?T6(XgXo{d(kNsBVtPXwVmGr
      z!qdIJg(2@zr}O45cHD*S)z4eIH{3kAZGSe21uPo4)1zn|a9xTe-q&6v3fj2TZVdSb
      zmc6E5k<&_F=R-a2>M0Gwhn@xDgHM0-Bf(K0$9(k=!+y@<oF!m#be}sh{(qFsZD26>
      z97B&W_!Nod;rBN1{$JVLGYmb!=<hiAE2CmK#P29EfouGhh%wFibsWVF9FF!PG)&+K
      z5RFpYW34zk_Dc4TqwGI(MPrqo;>7X>(l@ie;ov560<%9MeR30L1TMwL<Ii#a5yo=k
      z@n<-{iHk8jLSk|}{sdQ+7*rH^{NF#5zqAQXP%3bna_2CDGKnqV9PaS)%%O;-i0IUd
      z#BHJ_inu{y1FY5zz9!NzZTton4LZ!<P0U8bZxQ$HWz4;lF}I2G-elY*rF)d|JxSP<
      Vu}T^DD5Kg_#<zQru^eSt`5&WGAF}`e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/provider/DefaultPolicy.class b/libjava/classpath/lib/gnu/java/security/provider/DefaultPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48a748c81ab0e8a4c08fc7fc0bd72ab5e6a121d7
      GIT binary patch
      literal 911
      zcwUWCT~8B16g{_JOP6g6hze9hJ~Rc18y}1htwvMhQ#B+Kh>y#5fFVPd%<hu#ulz_L
      zfy5u+k22nwC1qRF#NEv7%$;-2J@?N3{&W2cz)L)HP$0C92C07%oCkg^!c@!T!avi|
      zx$Fz=e-MX3s*;^Z$?(EKi7-Ek%uWckK&c&}Ph}j-Xh2x%jp2r8ZNgM1RB|Abw}fJA
      zbB|E!Mt$L6n$R4jz0a$<a8dJ6#}uK`u>w^PW;~QpAvAh&AU>z32SV=#2TBm;dQljt
      zy+BK|w?P+0)Hq>sEMvk}?|*A&*YzWj+?iqayVh8driw37szcG<oLGN1Qc8r0>4bwt
      z!r~-g>|y~mGd=RKjK|!ppx-AfkEhM`)-=-%*+y(_{Cf{Mi-htSGr5rFM8TL*juwYn
      z#K)|hF+WP%+>!pgFbY`Z>nQTC#aC?ZgjXeAIXnne-uWoNJkvLDzh1%niN<%{7BI`R
      zYY$)Z_Z8-B)CkpcWa1YnZ(ZTu9j#)68O6&0n8$rfet?I!<b6gPXR|k0;LJ;(wtt{;
      ziRSjVp-|ld+MKV02Hse~CmHEh(5zNCX3DE_v1`mEtPdSNw@G=7yX)rM(a_z7MLqos
      D*rv?v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/provider/Gnu$1.class b/libjava/classpath/lib/gnu/java/security/provider/Gnu$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e949b0debecff2d9c381820e72c6d171c460a01
      GIT binary patch
      literal 12433
      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
      JfCoL%_WyPq155w_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/provider/Gnu.class b/libjava/classpath/lib/gnu/java/security/provider/Gnu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..642a24abac0568b599a234ffa674cfe7d075797f
      GIT binary patch
      literal 805
      zcwU84U2oGc6g}R$wF`wpVC8!ljfZyX+7*}(DnhDKu}x&7T3H#7ZsKMhsZ%*=rTr|P
      zhCqUMeiY&+bYc_INTg%?oa5_zul@7a*Y5zDc$~)^!%CnhjbkwtjaYgUqmq-x*hEw1
      zOVilWlRR<^<%@cErZX(QQd%Xi8Rje1K10rld|AK}t+)0L3b?}XgC_heAfGnt8(fXX
      zp&Ut_C>`+Lc6+^9<GY>B8t?SlHNKz1VSRJsC3mDr)KGaMkuewA=gz(x*Le5s&LQ{y
      zYJ4n`BR&<O@<kFEayU^KN-t57&U`#3S`yz;!=aMv+cFGCLi11Zgp0t)ESc<plo<<U
      zcp$YjX*3J-xLU*lt}#?9Zq|rU=%CR{4CUYI{7Y5)d0c1UmpArF(?SV$8u})~YQ??W
      zPEjo^<8~fpy0eSEw&%$>b|Rgav~W|z9o%Io`cc=YsS0HveTL_=?9W}}nb^*H)vBJW
      z<=x<zI@n?;xk}5u$!H+Wdoc(lgY8D12>ZgQbUh<;$&rew=>L_$VD+Mj@#GtoZYvO1
      zPwkZMj;5YFp@?G{)AOW9g!E(dFJO@{Pb-(^jK=bsT`1YsDT?1v`nYzA8((ni!)H?F
      paF5VNj_@hrGc4f+mRS?`i7EcsjR$y`c~>%g1WuzxS}8lz{tXyr+mrwR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/provider/PKIXCertPathValidatorImpl.class b/libjava/classpath/lib/gnu/java/security/provider/PKIXCertPathValidatorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4feb346908574d3adf5d007ff956ca752588a792
      GIT binary patch
      literal 14032
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class b/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fedb12ef5335db159adefba60671ca317f1446d
      GIT binary patch
      literal 5056
      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
      T2$NX-K1uMrF`O<LnI--UzcbQu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/BaseSignature.class b/libjava/classpath/lib/gnu/java/security/sig/BaseSignature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7267a24e8fd9c3adbf1fba2661383696a1aa9297
      GIT binary patch
      literal 3996
      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
      L70oZI-An%ivb&gn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/ISignature.class b/libjava/classpath/lib/gnu/java/security/sig/ISignature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24174a1aa8bbde43a2598c1cf4e90d842c4b2d9f
      GIT binary patch
      literal 762
      zcwTK%%Wl&^6g|_XvHPMWO@Wk0OL@rI*y_5gHaN(FCQ>XcQ5Mm}4AvBPV%alM^J`u3
      z0elqV+Cd~FEXFhU+%w1L&b>c>-Twe^hPM{h7)}ypyc<5@ULj(WOFi`pnRr1c6UDX3
      zg@qc!e#J<+O1%E)M#S1eo#9}PcG9sDe3S}?oyZ>q-M}9VKlq;+8XxDZQ0G!5=M1}@
      zu_`oII^wAjHntgBWW<g0X{N_6IdC&GN@eVR7gL6<FnHga3EFtTaJ0<L<%DZ7BR9kT
      zr$NUb_PfKuMekkzs^^EHjfdoS<(f(uYKq^I?WWWIpVRF^Xp==Em)}Uc;mkNj%hbE#
      z*?Bu6cm7>0GA*ej3r`qM=Q2T>iiD>Zd17vb(tn8zo0V?)$_#areI@&3#kp)p7M?R4
      zuV{ptC<_9X^W`!K%Kz7jO6A`IW^JMZ>XSd-51rL?`<h`RE_+u#^4R3D=*qH*d-DNs
      z%UjfKhILvS^lia{P3KLTqcv<%yt5GRQoOei@581EYTy9nBsFnJnMahV(f*i_)(Ucj
      erwhol3VE@F9OGmOd5O~{<P~v1=hu~wH@^X8iLbi=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/ISignatureCodec.class b/libjava/classpath/lib/gnu/java/security/sig/ISignatureCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f998fd081c7e994dc3f2737c316ca7c4d148564a
      GIT binary patch
      literal 317
      zcwS|X%}T>S6ot=iYNM^S6{O$;2+gL0Yghdt5Ks!O*hLpIoeo1voIo-o_-ZbE03WLK
      zb`~z;>T=<`_k8E~`27Rm5w|f~ga>22ILJ>aYOQ>gyDw4aMr7;USm}JF=jC3j7;VBZ
      zV1=|sEO!U39HG0KZr;=7>Sg*$pp4L;m$r7&x;I&P9dQs5dPcjntUjd67KCV=FgVaw
      z@#nu7!f5>540uYmGe%jUiEd}ff0}*PrLUAu^Ma|nMv2M!pu?UBUbx2vIy__ETDU~S
      U9k0;ExoZ#CVfJwo*g;^1Crz47c>n+a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/SignatureCodecFactory.class b/libjava/classpath/lib/gnu/java/security/sig/SignatureCodecFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da49c5761040b92c74d2731c01d8c470890915ce
      GIT binary patch
      literal 3489
      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
      MFMtyGL_K%?19PBVyZ`_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/SignatureFactory.class b/libjava/classpath/lib/gnu/java/security/sig/SignatureFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e7bd568525dda0b2ebc75138317d39a0b51602b
      GIT binary patch
      literal 1382
      zcwUWDYflqF6g@+WE!&kxc_=6fh_Eb{6(0zehX@u*7Z7V88lw*FQkE>caUU9fiNQbM
      zSJb2!N&HIUk22nAv1ozlm$|b$=iGblxide0e)|q!7%LIfF!UAdK-=PPx#k(Uz%~6H
      z%`*#H)-2fE4_qU~bH3y5L=a|ZEa5C}7qsQ|EhFbM)Y^R8@E98O(plh}mX<aAB*VFJ
      z(>DD{hLAF_$`GD$@`i*EVlpC#3WjMLOTqTK;XdW-mcbC$ogBATxoe8=qn}}a)1>^0
      z{(m~DaI9eXY1{L;og@B;q93cy`mSjgk^^TXOINZbB{ZWof|kFUF4JYS;ert6n%fL5
      z%D~A2g555oL*Qb*qdV^mcZPdL6qm`5yvGILij1r1q5{U7fLmU=U^}iMPz<f7iGChM
      zPl@dbcCU=<=p&oU>?%%qJj97WIdjI8Nt?}PD@{x2M=Xj#>dp0dLR3k}7!n#KveWgw
      zHPhdea1*y87-mSEo|d@Ulk9Z$WMnj=iS&CO7o$GWAGP8dUSQFs>iPG47@{=hrSj!#
      z`aOfn^{WHJeHpbl7r{6Ij!);gw@C;INyNl5CF6ncF~swE(b_{9_b@6>W@S7=ie%Br
      zv}G~0D}Pj(aV(20HXWN>mN1Wn2+}l#(-5AF40O8kfxYeI&5hFiCJ_u>N|o^HMi^=~
      zsl#UdL<e*vWu3sy87Wgdl-6p)hXe)P<V1+xJE4Ugv<sm|yg>R>M_;!oGK#h8KBP~y
      zsew$ZL=j{{7~?okJGl%(JsK#si&-8ecuz=yol*}`%l6bF;u%^lW|*$VFBQ@G0kRtJ
      zF5=oQ>JQNWY##&qM>MH%LfzO!RQ(D~AKa^yR;f6UqSAAuH;ot;s9Xkd=;*~FG%R5h
      z%b37QNm^UEJaux1VjKzF#R!QT6N5Ywxj`7wfbtn*hv+^)l4ML|O1dW3NWpXwGa}A?
      o!5CqV)pV3RdqL|<YW@{k@fw}rq$F1{rk*q`k}Bcya*6r)7sJ9vS^xk5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignature.class b/libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fc0e6894245782ebda578b0c27f0087cf4454c6
      GIT binary patch
      literal 5250
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignatureRawCodec.class b/libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignatureRawCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8e8cad5aa94cc825fd9d5f1800d3761e73f6f1e
      GIT binary patch
      literal 2143
      zcwVhkU2_vv7=BK&*-g^`p|piyLlvnsO=*BAY71yXKUi&xHc+OM8Ok<nw+s2Gn+<KX
      zA{Pjb9~bp|M5TJ6H-4ZO)R7Olb8sB5oZ-SNulNUCs?TmhsHNkKGtADO^Pcyd_dV}<
      zp68rj{`&D6fE_rfz$4IM<V*46+DR>5)H5Z^v}fZ*(}*7{7UMmsRLV5+nq9K=VQqR}
      z;h3ILAPI!r^;s=%#1D)g*E6;PS)gU*OlmcUn?OL`ZRSmTuYk8TIwBxB?f|@~4MKrm
      zV9kJ;*M~~Eaoswojc0X%x`9GQ%Z_N4>5MB*$(}Te0^0}v-vPP=Y7O1)D_A+rR(sqk
      zRBo#0Gn}q27ier9Sbof|XgaB&L12BlJjWE1@uX>}d0RJht4qOpfz5Zr)NEEav~0I!
      zlyZ9B?w!f#Q?^;i`w<qXDc;#EfJQvvoW4n*Vd=Ih+cNV;S9C<dCV_}MVHV=aSzGV6
      zEN%8c$(}0NT%~Kd03xWZ!9#dh!DfMt_rfx)8)nhAW`o#*79L`-yI<WmHr#!9j6jX0
      z)c&FFgNKHD1w84blWl7dt%wTvrWx)a-l|4N0*GOof_8!Wl^_VB193uZ7pg@%fzfit
      z9Ztrb0!nK-sk+G`PO`@Y*4;gH6(xuGdngbP7Rgx|e@;>oUINQa$F%|n%>)058bjpq
      z(!_+$q;giz8}=lVID(*7mJ1@CjNV(2ANvSVPBYAm9|TW1sar)>A3#4;1^fSXT~f0}
      zTh9gY44$O`G^d(OVTus7t)Mn_1y_ZEK}Rh^EV)%>QM^Us1b>r%Rv?fnl&p;2XFAs;
      zywWA;a1v80#EQR<&w<3Aw~uWNM{)Loy{~N%f$wN|5M(R6&IDGm4VD*RHP*1_A+fd+
      z++GRxNM9|Bd}2wYry5y@b>&ELlVvFM-HKgDeWw(bygLWOlC*Q^ORPS88I7ZL8y2zg
      zr^|?pE~434@I4;%CNAL-*OIE1uWHF<OJdu832mLeu<zO~IV?5Ep$&8H6s^$QTKs+L
      z&d9%XR5imsZ-aaZ+qd19EMXRuxaa~A;_)A?z;qlN*&ZQWW2nVZ&WxiT$FK<#*osL$
      z+9tZVsuw440682&0clKe<qPy$m_ZR|VPhU8oX0diqvs3E;v!zeHN1phF^8LY8GquG
      zOT`2N4%`(g94m}ntg4nuc${>3xbuyQ6{1$2q~&#eWlLt3PBf6Vt+>w0cGF7ZP3%Dn
      zrEwJJuoq9c<Uft>3dz57#v%E3%$soOTfml>lyLc5Kse@0xCAa>bxcmU3|_!0m;9td
      zeoRS7cN{&A!@noibjBkRp$#)-!vQ-KnmN5><X<{Ey*F~j-zmkKsISNm=xd4`-E$eS
      zQOao%1D(G6n@;v!<-i;ErRb4U7pqs|6q?zdA=a<*`9I6sc#c=+HRAs|@q2@>$6HXz
      z<S^c*8s>@SJ7jzwdAv(j=gH`Mcm?k>;sYZ7A-|8v_j!E7{#$&EE9|f06a38n20q1a
      zxIpd~@CR4j!sjmk`^!vJ`M*t7wU8$jU*kD4=ix4Mc%GJ*driB%O5Ev)s|g?TtZ|j#
      KFg)y@EcFjRB;djT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignatureX509Codec.class b/libjava/classpath/lib/gnu/java/security/sig/dss/DSSSignatureX509Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99494c6c8dc3ab95cc7ab2fab6d714219ac16598
      GIT binary patch
      literal 2596
      zcwUuNYjYD-7=BKZ&8BI}rCgUw8<0yvTLK6I3816_jixO&X+tQAn`BA1q#N99pyiXJ
      zBkDM#<ES(K1Dw%O@zQpvTE02sk8*s@CZweVJAT+b=e+m#d7nM|_dk#R1aKU4DmnzB
      zWvd>Y*6--ino+FVrZX3<ndNAyR*NPxnT%Psbf<0`S5F-~J5((hMHOCwO|C;lx60Ac
      z!n9FzRQLoAwhxtR1#tri_|BP@>0A)-gd-CIUMUX1gRUS{_ysnmP0JXm&lC(hs~0MU
      zKu@|_)GHIZZOU^~=yj&dn!xe&|Lh<x&{Z~^%T;?ucT!2Wj1;pPR*~wKy}<TxdTpQa
      z$YesrHh~?J4IM*FMH6N@WjRLKu;VIr2=qQ%QOU5Q$xCAsdZo@@w?mV??vgoDZIVo=
      z*dwsTRn#4`61`~K`dr$qIRWfOuk`IB0O3?*LJIZ;u^%t65xrCr*w(J>Ybp*3>~$4p
      zHJX@n3^(Rz-ML+NGLCKNGXWexR{&ugQ4ta7du|sw9t=B(ehdgGcjZaoY%?vRuMQe-
      zGoIC8#3L!0_h=AN9OGo1YO6Ncp^Ntkfx}NnNLhFEidnj%+xm>bS}x5NjoXe{wE`q|
      zmwcTH;w79G=#*R=((5&rIItR-?37)-E149Jw3Vtj`(y-cDK*+k!I-rblJq<awm^qX
      zVtU!;m_TSf02-DV_D;%@ey)^bOt%?7jW^IZx!TZY8?}1HVb;k6V-@r&llQfT(RS2~
      zBW7DUp6*ZTh<y{4^&zMIMt)Xnzn#fM<XLF^7!lZ$vRFu{z`|;w;qgp1G%}hE6^xKo
      zuT<phu1JEvxrWIs+_cK>w~_fTa*i1~cL9uHT!!HVqsUq&q~vN4d0Zn%#DHJQ{%~Zy
      z;rMY~K+D-xs~jTggKTlo)r4-EMx_+M+jvLCjke#sJG!J{k8=$|M}cf9P8r2psoGH0
      zsyTMO=ol>HRCv8A+QHxlUAr5VjjdF3Gl;Uxw7HpS<!+MKjv2%>ZVC8#0XFHgHQZ)S
      zDrTr@cf<KnZKcgL(h^})PL#Z{Ir;V%BbB73hiwV$dw#!->CxIlwh06>)w*3YE}Qbg
      z-_`ayKPuy3ALznI;jhihl|K@`J9&z76<n1g3kW>qrUOB~eXh_zH{ZdA0XASGSN`6x
      zx#>L6bnZ~TU*lO><=N5l?7^0Xr?|>^U6jrCKgQPKC2Y?t1D+EL*g4YJd*wdnUBd3X
      zvVgrYMN<an5z1+b=9R0o+H_1)q?K<82l5Lz6!U9-&9{idIn6(h!I=60TC8&k$EkcV
      z7SIA(=R8j4w7{~a{=_<laUC~srdju8b_Kl0y58sR1N7oU-u3qh&__6pk8vKK;AO5!
      zd`i#HFpkgZ{RN5pB}wxYY<!J6zH$4$=SG}u_APfY#9jDnIEQV_xS2FOj|&`1FRn4}
      z1&$?*D|iJLX_drDBq;N-LJx*`RvG)rZkT_TORU$=+*|P~UL&H@L^Flg5nz@#kZz)!
      zW>i(y)BhK`B@jKs3m9Eq!dSk40oj;Wf|--x_Dn9~t;Wfx`Fe_rFf`vhrXHg*ydt(%
      ziAN;5$`f>{)f5+9-?H)tDtXU9Chr~0NSt>fi(Cum1o;CzU}fJDpYN#s0e$!phwu=C
      z_?eymLS%krr@yfiX2v3KrAH`WiCzAV87#XP-*)+PuZ8hFN|MZW9=q@^r_n*n?&dB_
      r>}uS3Tv=nclMx-F>SgvbF4_w7AHf|L_k0ssg;ot@C9m(gY@YoWY}0=O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bbd18de8e5c5a9e09f154dbb71cd75c5fe988c61
      GIT binary patch
      literal 3513
      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
      F{}%|&Fed;2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e03cdaf803103001173182f03fc28af8e2d37248
      GIT binary patch
      literal 3423
      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
      Y#Ws>M8|eG?B0Vn?CXt_4L<Fz?7c$}TsQ>@~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PSS.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PSS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5484fd578c5e71f6956a29c8988d3c297abda947
      GIT binary patch
      literal 3734
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/RSA.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/RSA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68c37239c8019169dee03ef700e221527fd33b1d
      GIT binary patch
      literal 4209
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f788cedc6d93a903e2db52b73e7a8a4440cbd9dc
      GIT binary patch
      literal 3399
      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
      RsK5^MAxE;SeWX(R@qgnS7pMRL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f8762a6e8740bbe70eec6ae0d19fd2d57c986d8
      GIT binary patch
      literal 1762
      zcwU{9-%}e^6vw|e+58}+GzCE@U;}M6A<#(E-xO*>fv!@jNe#m=W85s4Wii=}`=ceD
      zsvT_|wLa8e<D<O!;zRYJIM%5?`$wtgZbCp{`rt$Mo_p>+=brE9o}0h^{_PonamXR~
      z7|v^kn_gFLDQTOluBAKmw5@At%U06)LiWu!rVHc6@zU9Xt{IBsT0F1Zo;Fvw8iK?S
      z^8zc1p`~w>*SYG15M(%ca7wwA!%M&rysR6#GsWOfB#R7^a7W-rdlVsr84l0u248Ti
      zWp3S6$`#JgId7^;rKniCm^Yo0v!>e&7w7+{k_m=(jXSfZRaG4Ms#lIor*lK4<<@qF
      zp2YlKy%WjhTnOC^J~6(?Fub!vu2i_DRI--lR=MHKY^c2E=%x`yA46{|Z(5w9#;dwb
      z$E#}*^q^k=7+~n$ePF?{bVHj+7DIT6VbEL9&2+Br@T_Gi^&75Ja~;~nm1+coXm7(1
      zj)ySJaCASJJlAyFvFcHr5akbD&(6uyrF?d=M660JSfzqIw~)R0c78^rd^w6&kYEVh
      zrW}HNLQWRN!iZQ%F@zG!Il1W@i{cd0#MUueHHr|A*f>Mij<gmUhBkYLcjtcG)HG#x
      zb(LF`sjQfE?Z@VyOF~3cxS=^~3{2cAvEF;D%emzKlft;naD34+4J~e3ao4cjTFtZ^
      zz7k*cIwgLKTQ=1k!4zH#;mUtrL!oXvyc$IoIntzvs#LQ^`bQ4vA^8B8EM7!FH%JH-
      zuG6nVN-S=>6>>xhrfaEuRu}z0{M_z7C2~_IP+QY4KrdgSk=_@5+h~@ik<l0!*+S%J
      zGJJ^AH|RM};}CtLjSc9)VH!y%jx>Wuo54Qmr#+G9cSZVIk)7yjM6zKjLlpCI>QB6I
      z{YP{xK1I(`XYUq{{_zxpOItX$F!l@L{>&4c6o#~I1h$Q!XGruJeRfV7>y~1@cZG+H
      z*xe)e=fmbCylb*;jrzMOFgf-FqmP^F!g#f*AV&&;Me;0Bt;<yNJLrc(FQtqzs5ple
      zT!DtGSjRQIhqq9n9aXXnxG?bn-uKi`5erh-R4=U4$at6F#~F0fX<f9tVf9nKvy|CS
      z87~pN3*I$dB)h?Dh@u3qhbe!?!?KAJDJkQD*+gF|knzxLq9YZ|cyNBep&g{DP)6Ez
      zObADKGBt4D$1<_rjfNq}#9|xwcFn@OXZNNCe-B@hQUiUGfACjK_DPRhSN=L(tdQ4^
      zPw3z4K6TpzYK>1x&gYoK7nsABknsq4e1#H?@8WC1^@wnNgAE$*;9Goz@9-JE_rRTL
      lNNs_8h-revC`XQ<U!YU(Pz%nG<)^qPW@%O6n)52U_Aexbk5d2u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..faa4a94b65da124ce902d4eca6f7324c60d85930
      GIT binary patch
      literal 924
      zcwU`SU279T6g{&|vTd5SF`D?%s#|NZF~v0x1vMg=YGE<`z)gb^K_=T_owC`K-PvMM
      z{6#+KQ$ay}6Z}!)-OZBLR{G$>-g{^EoO9>gnP0!Zd;?I&q7IGWp6f^EF5l;7D4Zye
      z>c9-8YX%`VpWBbOo~_#TPW|<YEnT0hC=f4J?%rP=><C9khM|}+J?^{aW^Y$GN=J@i
      z@!y)(NF)(p$UT(4RF4?OmZ}|wOuU`P7$ytQG0rg4lD^o8`aKb}dCwCJrPjdVUWW%V
      zUZ<NG^+tva4_g0grNJ=i3bi%}`dnF0lJi*9Uic3E9^n}(ORbZJ8`W-8N0~wEHW?<u
      zBXH?7mMjM%j66l+)c2%#w^=>S(J{wx>u+0@zt26nv&9467fJ+A-#TJX$$>wPYYcOi
      zzZWT^cc4UQtZ&<GV`H;z^n~F@o|nfgjCj8D4CUi?Y!yh~ZNwLmm9YRr-X27OBi3X*
      z<%P3ncqdlEJZO0IW$A@wDAP4koS>CSnNiN(K1BXA6&eZ@bIIm5rYIJM08C?sGCeMw
      zOUcVAS<8Mr!F+X$sg0N=oKKlnav(sj{lJCw<xeAeo-*K3yM7{J3}LB6Tvc!}aiZZ8
      z$`lzc<4P*qB6Q3z)_!8@D`sDot{&q0_u7&EbfWi;rtqHX4@r;8kTdF0#0^r8tt}+H
      Gn|}atEyi5{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPSSSignature.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPSSSignature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..961bd7d3b675743726ffaf30e979bc194389d172
      GIT binary patch
      literal 4129
      zcwUuOZE#dq8Gdf|<L=(QN{Cs=hCped?d}Fx($<Jcpd{fV3!6aMHWVnPH@i2R3;X5X
      zyOh}04+<@6)oK+hwME+sTBG(W9~7iioT+xkU(Ps=GyYL$)KP!wjN>>uKIi7L37ZWQ
      zGn2jNp7XxX`@GNlo^$T||9$%kfHq9ZsFM)M<jb)m+A%F=>Zx+cu*PDhk%^T|Ew(S&
      zy*HUm8kxLil}ow|w}dsd&3iOcuNX>jWeXVz%?aDEY#G@YCo)Dp6HD-^mpW-uG))O>
      z6AOpm-k<CqA^{q^&4iwpAjKv4x>8vqZ&+Ih5snOUt+$ZY6)eG08TAsD*kD<Wv3j$b
      zX{u<zha|`u-5Stx<klFDBxY@rR*AGa6$G(d#xe;_3vpJ_gpdS3fo3KoYzWUsiY%P8
      z9}-rm@W4x&2_vr$lyk#+>3(fEOI{6$LQ2aHY9&LwJCoinJ69i8GX-;0Ti@2cQ6bE2
      zDpp~Qgk?1t#BEiqQG@!n-bCN3@>1qtt$YaP&826wYpA7M6zgQPlGFT9qnbGy>*LQ3
      zEoBu-V=C5TgM<JzjOR^D%clt1SyROYz~cS7X=)jLn~~8?t5ayPQE1V|T*HfWqCh^}
      zO+l%`dbXhg7d|XN+9h<=AhSr=$Y21Q&>`ca5^i6Vi;7Oso9;ZtRj?WN%Ggp<$LcL1
      zblfUo(;}6dx1&TS_Nb8I6QgY^{7@v+<<b)FTx7O(_b<M=B7-7QT*Y?m5To5H66oi4
      zDwc<{MryY{CLxr#5o_=DC7bUa6?<`?1f^Iqj%k)|yEIq3RMt90F(}mictC<Dl`Z7w
      z?fpH&NA#5Fq0LCzJ4UlaKOGRQu#?87Zk3BW3Z+54WQ-Uo%`yr+gj&K2(iD3|*?v5w
      z7lo-Q<72GmY`l0jt7o)qcPUfO>3OSSDC1#v%#EN%-qK4WT1q!<DX)i6a2UgapUTtl
      zD36ir9EH*>zl4?Z=*>zJ8I(bjJ8l|kj=D=TdR{N_ZO$EVM8YleQc7Ahs^k;E2(l`2
      zpjryIdVe8Z&X#!^HC>lKr&*)19wQTHXmK(sD550e;}pHtx(X8(du7<Lcn@T(QTyzV
      zi((y9@d%Dnh`fH>+Nb5yg<Q{=r8Af(e5hw;OMXJdqj-$RSlVt~mO30c)FaCNNfn>M
      zr@5l%Q@lkOf=+SziRB_r2&JFka#+j_DmaCwWIRccZ`$}OPUExU(xPe-`fgH?+G;E)
      z(kXmi#nbo#lZ)TAC%Ko`Nw~IcoEh+d%N5c+hGhyaT9%2|iP^gC+;>urmq%@1F4AMk
      zG12v7b1wB8ZU<-YL=Gx2Ff8Ml0EUni6rWe|O}s$SW&kAYTzJF$pZOPYPQ|xGDFaqP
      zl)1Z9(zqvH!YeXfmQX+EG#oQ6J*VP3IM1qT!Y)-Pl1;Qm7V#QWaZ&Hh_^yiY;Z@N)
      z`fP`=N8*u#Y(iG}#!J!hri4k+Rk<1UJ$lame(~h>M}+vEoVXKdP}0q^sEb4}C0Qt!
      zQu+=<-207H=jR3y0=Kf^UHo=)p;>%Ia8xJGaQn#<oX-H?0#Ir90lsbIQ~aq7(j-1O
      zjm9_8{JL%3!e50?V1V|!vC^Ie?N?R2+Zjjr`=SlExTbJxwdX^Oec1L?XY8;Rw>ubj
      zI2iX5L)gmE)>;r5CNXM5ESoWNAjIfSgb5<R);M4Zf{FB%XzMg0EmMe9<5`rUY~!t-
      zv8>=J4xSkKZEJzt<{+mX<mPC@U9D5NC)#=uACWMPt_gHUTPDyu8>s<q{*IC1qiDoq
      z2;uQL5t}O!o5fXUM{IT?)`@$?iFn!(W^1(dE%e#ZIOwHDVq(_>c8TY}1O^;~eG;x>
      z(**j&d-o&;uVORF&GKrt8{!0(;v_kpVzWHS{GMV7PR~(zYlYud?B_@*%q!Aib+=P;
      z|0PHVqEmSAwF<n~UU+&=z5Nc98wYWSRu9=@i9I2p9<&n%np)q*&{+g7;qZYeXzxT@
      zuVRSlRSWtR3i>R+;=hLFI5UTEQ-yF7Qs^hXo8{7P8gHa3-Uwx^j(3*vo@cxl81Kae
      z<K1V+8>K+A@eDiOZ#b4k+$hV$5EsGgcoKy!zV}}C^+(rDqRer3)Gi-So)zvi=N=!p
      zgyI4B`YC*-!!3M6?rEIt@T{npAFlUh+r1%A&^wLK%_@JJy~AHcJ-$z_<DB~e3;PDT
      z7;Y!t=2y{Wn}6R7ABTTE-@gcPMJ`7-zJzCp*2YcnWsY3*ZK2}NGKZaPn6Gl=A&!q3
      zE3CAeRX9_fvGiNosGPY**1O&l3L8}T>+ewD=laDQ3wsgYuvOTy(n-g??n=;o4j$LI
      zo%TABwnysl3j2^}8fQDa7vSCR8ei#7x647<ar1?|lX$ViAM#%b`d$(4_UI+73i>Yl
      zI+T##6;gsePNw-kjc<pP4u3`I4#m|T5ZZ@m7?edtCUK!XZ~^jut^@<)Ol}+YU>}?3
      zJT6ke!;aW_tl;mvl=3HRj-PUezehoT#_#Q);~u=vL-7}s^OyAg6}^9rBpcxY{El1T
      z_iW2Q;3)pckCi|16#6sIg}>kl{FU<l4bS24cp3j-w0|<%zwl%HoBR1ccHvIi4Rx*3
      zc-L6yamwC^AF<S;aBFeSE~bk-&e%nAlf?<AaNGD1BZ}!I3j;sos!T3J^j28XqihLL
      gbU(QS@ft@8nXJa^_UJqryn#1)2}pR$Zn=s70eC;p{{R30
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9942689636ac63418d84b01df890733a5cc30e5
      GIT binary patch
      literal 1690
      zcwUuM-%}e^6#j0q$%c^900v1Rw#8NnA&r<?6$+YAerzYDnpA4VG2O)5W$9+a><=Kd
      zQmlP&rhkOI`O=5#LvgHAefE!1&)xiJ1a!v9+<VVG_kQP|?>lGn$DhBv05FBCGJFhE
      zn(1aX)Gak*^Qvp<P9tOMTE?=~OtF;vs8lNHnyEUj#f$3peEmyal_4=iJ&2*2TIPCX
      zgI66HL5B0k2U9vRyZ{Wr%etvMa}56R<SK(C++q098-a`v!^whf@)fsM;noecVsM6m
      zLcOXQtE#1oeak61>$=U5E&Oi|GYq{NcNXhbO?8wjULp#;%grhscdj!GjTa6xok_0c
      zWyBbKVttii?Bxx`Fu0}~IZJbE+;kRps(jPY>t+aXh90{eH;f^S2(F_HvF;a2j-{L0
      zOmbDmYYYkRK(A-=4Tt9}OKn_tolV!FTU@P$kw9+`&f;|$V+^N`icsX5ZaY>Zf^#C@
      zk!!gnWxia@-7J$VWzwZwQkGV7H$EvYh+uC-@FvC?0^5WZ@{TLXRdFyO4pI#A_*!0R
      z`O*<wK!#*=>YeNa#1m(VVeloXjtZiTN7STlsJM6TaEs6twNCXsUHDJl0%34dbJiJ{
      zC>quCaM9NC$)hiYK+r%<)%0ozvqWc$TQ;Q?#s|pB`0yWHU2514uSJl@JXKB=NmT2b
      zL~-Jnj!=$qDWbF4T^c$KgOawm?HUe4xKwwoDqqw^50Cy!hh7j7skqddGy?R+O0?3~
      zL30o7GPE*U0}}@b|44=p5t@UZ^KG1<Inum<KAfbL*rC4#o@{}A(vw5T_q&k34srm4
      zO(YwmG(<8FQ@`VtYd@gx=5q|)8W=vnso$O>aq9r5SJFS>j6eGf=Y=7)jX>K7dWJ;P
      z<cmvEIwnPj?+XtZ(fj@QYqzxtb#2<#q(4T$WcnE<pSIYA@K%dKo)`k3lIJtZ^>fPk
      z3yk14HNT29D!7CyRhr`pG%RBsA48`b8@Nk97Y4pY&0{}DS`fn)dtt>%QBedxvWU@Z
      zgQ&Nx5sGyY@6gFIrs;)uy)wN=IyUt>ODLh&<CH(^$+C}gDJkm-vyXTxkoBb5M_($K
      z^~CueCp<}~g`_DtE43Y$g(EbZ8hzwr+34_2(-6u;qdR+DyHNLTZ!Ym`Xj)2*#wCB^
      zXUxT=r=5~trNRO>dg0I?l1tsTMXj+-G#Z%2JuKlXDA+|24^XD{HugxOU6}X=JG9;-
      vX&&HPe1}J#a2K0YJHkCCsbeIBLZw+CX?%p}$0AvN!bK>4%#&-`%Sibfx4Cp1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/RSASignatureFactory.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/RSASignatureFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d51e4c2c4844fe9199b367c29adbf2bca072599
      GIT binary patch
      literal 2802
      zcwU`WYjYD-7=BLLk|kX(4c8(HRD?EZ2r0B&!ab!Do3==xwM8!5WJwp2P1)T5<syQ2
      z6ui!;%s4uuGpI8-fHQ588OLwT_!s;oeo>#Z32A8qR=@1Iz3+RT=Y5}Z&i?+_FTVna
      z;A1a50-=mq2%pr>XklAV6)eLU3EM^{Y}s1)Kyr7|$e5Z_u=EZs<>ajqFRBIRyXINV
      z%!GRePwFX0pvKg4x-Bp-;jR@NBO6ZYPE=slHp4WW9RgL2O}zruv3y$hp$fGsyilZv
      zVd~w5+@Nk9)CRM<fIpE>Y1v-QGUT{4S?vrNj2}+?C%D|dHlsUn({?m7#V~D+i3#vY
      z$1==JwCM>k<K<{k9~NMd7YiTbUUXNn7)vBR%g6~VY;2mof%L9du?){J9a-JXI74na
      z;&S0x70<~4wN5^fKdW0Y&DIsHWJGcbNs9&*&ttWKk0dO|?lYwOqDn*tr1=^ZYtbk$
      z+b#^+?t-+ASHPtpKpexi?SnwGiV*5p59VusGFj%XAk3|YPo?Zg=uBi?tF(=%Xpy#c
      z(zY{}jFhbjTPi^oaoTnQ3hld#LaBR{sIpXMGw@~=HJIhYR&4Wv4h_>QGo;x=;eGs+
      zO01$4ZC+4dbrbRAI%E2<9ksRCjhGjE1m--pp^A3wB__ksEsc=`7C(k5UYd{A;zh*0
      z*hf;+S5>@(PRUw7=S(es@o+@F=n_~mH642jMmDWm3VMh^mYQ{7xf6I<9*hG|sBo{e
      zIH=+fc$Q{q!^66n<{7T2>L=_Nl_6eH(Jxh}IQinDOx0l(ui^+Lp{3JP_AgOs8j#62
      zrs6m>0WWLO?eeCW2Na~3A(u&6ETLSwMS)&vzEuH*xp>OFJ*0&qZR-^nmDgHY+Z3Ft
      zytZNUMg_UbYpszMAM!Zu#W0yolrfgiW=YJ*o3;uI@&+rIxqR9<;a)zJiNMOnDN3EH
      zT%I+l%964@L;Nh5WKt3%%{+$GNF|N2n7OnJpx}al2r0P4{FbsI&%<RE^YOYsbcPq0
      zdrab8x@~J2z1_&@wiM!3fu^Tkpp#F&4_EM}6ysY0!NwWx5to;|CrACPouLP*Te@Ay
      zGBpkVeiM7~K3{>SbC5SuZ{%3(BqrBzT{5{L5SS?wNyL}T7p#=tVaO+FX@v)7os5H3
      zyt=CRrqV&)U+mSuBcC_U%;snVTOnryWANQ&#{-pLA6sB2s<8`m*i(x}n2ULA>sj!+
      zQh?jElxsbKho}*E0;BME^0V}2X|%jE;9oI{RmHLFE*-@Su9d%u^It*<j3daUb>-3e
      zJK|0m%2sX)93Ye=@gG7hdf`VO7V?^?#{e2|7^`uFe+@@zdyJruV;?khAvFnl51DRc
      zyG7o~CFp-LW;NT9d)V|4);P9wKEU?=G3-nP?qiog*DW+O-$#eQZ&=VBe1Js1zk3Y(
      zL!(HJqHh!feOx{&aP#j!g8o4{4*Ju@=0vd>DmEvJP1bG3Vg8Iw+;oEE4mYnR2@W&&
      zr%BMlayVFn0;24<;~Y9M!Ze&G?F*!M5gA;f$7Nbvb%_Q@#)nh%l4bUjegS7lwH`s7
      zrN4*K7BR*~3SyajQA=sKM?Wc%4!0l^)j99hLk(0vnsKYD`Y(>-wZtvV4ahd=R{a64
      z^arcP@J3hj1g8Me0Phgnd;Af(h84I@1UC@IC&ch6HsdoE>~nJaqKuy?N`-1Brnl)W
      zIP#Zz?Tq{`qj`wGrHubBEhYZFu7v(4{%ifgF?=u`{#S(dHQ|3l_}>!#cZB~vA^kx3
      cKN9|J#PHK3_<JkBuPgOpW%vRgy8C?e5C6)q0RR91
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/Base64.class b/libjava/classpath/lib/gnu/java/security/util/Base64.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75ad3c941abfe4e798659a85d2b77fb66b80fd6f
      GIT binary patch
      literal 4996
      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
      Mwge6eS$Gfq3-<XeCjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/ByteArray.class b/libjava/classpath/lib/gnu/java/security/util/ByteArray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..beb2df456191a7a9b47c350732d2aaba3f0d2856
      GIT binary patch
      literal 2137
      zcwU87U2hXd6g?BKy^gblO~3&sn7Z`KP7J1`4JLsAaiDSP1PatCgpX|EwY|Zy!)A>@
      zs-O@2f=awrbyX><+J}BnCn73prS_#S{Uv?sd($&(hwx!kS-U%P=gz(7o^xmX=f97i
      z0C*R+iZ+2rp<GQY8n=zain&m=E$42c>R6@3*j>jwZQI6O6^elFdX$WEA#rYg(Ohr@
      zytj=~)f8x(9TV^!x5}0?N^5j>ES42eQk9$;fCn8KRA>U8Xe`?ffldux_yl%ltg<;>
      zU79!TOU8VOfx0u51*4QTY)j6YM#U*wD*^{H{|9qKz+W((Yy*@MjY(L3r*hG;t#UzN
      zcQlsSE}~%_QL&dRuGy+IjWY~x+5zlAhl)OdU0ciNx$11K_983`+t2lAX3L|oI1<YS
      zSZGAU>o_3Lp0C(ThLbLnvpvytI^6<?jQ6I7x9~O@T$XtRg3*`#Vp%_;q&yM{pdWD+
      z10;0YYszqn8V=$R>0YwRQVpg{OEiZyDt<(u!>LS|ceY3gQLS`3)e_Nr7*g^6bJ91~
      zG#o{el9$YK!6~}Rru`Te5D`C)^K(d+Gb+nDDV0b`K6-Il!<cLY)vd2omJE+;2%?7}
      zRvcTPC(}v^3hSv<B_Wv>N^n(JeA4tHAdX6WR%AE5R1+5#`ONbfQ*n_AUvwF(=JQhB
      z3+M<Si%(R{Y&C%El`0yxvB0z%F5?ROi`tG`1<PqtoswIxYPg2$B*<7^Hp@AIzGw@E
      z8>vR*hH+w_ujXZ)dHG&3mkBW?u=mxw@+hjHf?eAl>@c$+p#?!kdZH~m&5xUmeORVl
      zk~qm&yj7#UDl-eUjhuByAaJo#wHM5@mOQ4NPtV~YxskobI(W-a2YK8%@^Y-g&v!d#
      zXVJzV5a?gyGw?HZ{J>cocJkfn?mP?yN9a2UowJ^XH@X-P?np*uCD?`C&6o*y&P@G}
      zu;cru;e4*~s2fIWI5fiu*?f)7qQ-PG$R8Wnb9oJ+%m#Wd53FI|lxI}NdorY~;>&ng
      z*LD9oUaRAcc=tPe>v~WL=hhJ$a?^%`UOlpo#IP?O^2z0-o|J>ZTy98Rg%<BVM(YDr
      z1XVp*+x*8Pts{+{>fGRvKj`nm<~==9LuYe%?`yejgxglp8E+Uruj7OpB<QVe{vNO6
      z)B}$m4l1?Hxq&)T+r?k!Ap?$+_Y*97lx&^kQ9Ok(&teQIayE`(oWTSYnZ^h7pFob^
      zGSYDHA?_oChnT__IEQa&`w1UmjlJ`jF@D7*m()DfAaPAn{rH9P&XU$HJYu8?BH4u>
      zxp$Jf_TpPcog~@A_>8e9DaHhBW|*c>v-CVin~Gb+*BIUBMR%TA{gj6{SX1l27(sT`
      z%myw{u1mv;XUMyXlOd%)=<S;uR6o^s-qZDUd|b!u%$D_8ThO~t$$f=DND0g71FxW^
      zw)tB~spG~rfd`lvJnZeb!ueI+Y1eR!G@Zr`0>46FhD*X|0}kfguN)bKFWiwVxXm5S
      zV}T^Jv)D7FSz$k(af$KL#y^W@ao^ELMoISet;3vtzQoRu(!E$msfqZY?5*17-y!9o
      zG`@g-KM9lq`B31zC~pQzU&H_wN#)IFkSB>@(nX#`rHMS*MDC-n6v)FEF;*y%cO&Eq
      LB#-s7oA1_tX{4@D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/ByteBufferOutputStream.class b/libjava/classpath/lib/gnu/java/security/util/ByteBufferOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d7439a3c24cd1c3415b8c836cf1b975ac9b1a62
      GIT binary patch
      literal 2085
      zcwUuMO;;OL7=A7UCK;v_C=}>`2GJS<G`4=#CQ=$~ZE9%RQi&9+PQoM%4wIP7ly>hQ
      zaO1*dH*WPD4L$8SJuY1NqdY!$W=Qx53pdHV?|t9rdET%2=iisF0bItef*ygzs^g`0
      zj3-8_X_mc)<vvS!u4SjP&s;O>RVrqq;JJ0rU2_|z!H|f+sPAsoQiopz`b)mMz*ydQ
      zaOlxNNz)-?IhMO5(3_ZB7l^FXwoDZQ0~!=)G$eA;el~A8=3Q^MWHufeCEFAj$=Aw;
      zy>2utc@K>dciU<Tr1JkOfwYQVj7Y+$icy?bFeY%Wi(U=mm=K5>woP)EgcFq4HM1CV
      zxS*jA{S+@#v<!R2s2gQ!5fC|nzCG$9gnIL7*{r)(&1ou#9}p8QS7^UTS#N2W#oGef
      zw$XfG?ivJjs(#%b$%0+f@Ghc+t2SzTfe0Bjry+@Xx-nZRH``q<C6xq}#AY_fddt9+
      zhWBt;Al5j-m6LDpOVAGl^uYfV#GcJ8`&+A2nkK3HZPTf`+svCml0x8`hG{Gcj3>H7
      zNUBdYEP-ILEw64{vgp#ftl<WT9;w(?oh3U0&<Xxb!%Z37*JLP59d&E$xSz`CL5OWQ
      z)l^_jD_~#7kDIfeWpBx9et}g5d4ZvhN1?Q1mR$|E@VSZt?kl)=<UK&p@BnKp?-RrJ
      z%tD3DO5~4Yq`T-*aT{OCx#R|nB~HH2tw-?{cO||V5BBU@T!uW-u!*l(a-&{1oh|Nj
      zx7ZV=Fi)TL8wv64vB*<}9z;fAu<h~35@A&~U`vB3hbUSOM_(GNa(Xxj3yH2>KW&@_
      z9CNR;K{4L4;kQLyt9gyGdCQWY0KNN;Uy`7h;nel=Lr0ZzHF=8itoXk%-aevTNNaLf
      zU?1x5Jon%Xe^veiY5Ha`$deZM;Vg!HJjJ(2j2u0s@0sL2hLidWocj}#9iTy9z!D-@
      zhMZyvc0LFQ!Q@HD6yavL9~$4@pe@4tn?AutNHCfF1CuSx`~rnk@5r0}Qwxb=hirsl
      zU^7&z8pIt;aE3dClWoFDEVKz1!#rw?mC<@Yb7}f{hi86jx`itzhzc0MJ%ZlH1x~yq
      zN(K;ZBArAZ`lZuZ>?vP{j*ofjrF9xtL-HGplW(!)eDD107Ct%NiFMY#cqo@xn<5rc
      zaP8Tz050v{!G8F;WLmiX7e-rH`K=Ax?>m$ZHFvn(TyA#=wCd{wW?$j<2CH%B1@7+S
      z;YhKCjR5=c$ag%qP&y7>Jp?@)LifmTb_o45Z*nxQ1~}!6KD><QQ1!^u%&&<3{UgK>
      z<T$Mc4%dqd!J$%2E*u%Li$0!B<X!SOtWcc={(;?XU=B@Ofy<J6zMgo%8S07hn{S1a
      PFpeE6m;3O&k8J-3(jB26
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/DerUtil.class b/libjava/classpath/lib/gnu/java/security/util/DerUtil.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef4b9150c8488478948f7bd5660f5a69c9dd0871
      GIT binary patch
      literal 893
      zcwT){*>2N76g`u;ackVgty>67X<1q)NLYPfkpe}c4N|4Bh_;d7&2dJ~w2qDJaRtA^
      zU+_XDkU+fhQHbk_)uh7I4|A_)?pb`szyEyu0bmOa9TkSvAj;e$@5FOc?q`XRpWIA}
      z(B0+9Aypk3!-6^wy(n;B_l~$P8EQ{NB;+<j)oFAYw4J!m4OB5>VhS~e`HqPAt8Ccg
      z$${4kIm2Qn_Pwy{B_e+>HZ?gADZ^UlVizrf`vdMD@1;9&l*%OYCGRsla7uuEp18a1
      zw_PvHc&jtEzAqCI1+Cn!(f;W34^j}9jzxy%e_7g*ANL7%1~6b_MaOb!a+A^~F5?Qr
      ztT=C(@_KK;!qq&eYYfXyxkYwT9?Q9}Bf4Q4<k|ki!C)1MJr}`VBzeG--1{vPw{eGI
      zI^a@~FxXCG0zbOpmW~ZNQQJdL4%{&d#kU`4iO*k%{0hzDj_&8P+B(P+@~282{R*_|
      z^yX4!RHvG!nEpad1qQ7(wYh~$w3?#<s<Tw<n8Q3xEl{t~iKS>>5^aU5)%=R3&oIBk
      zdUx*>^`B$PIi>%Q#vc**v7%lXfp8r+ls5~jxJjgStd)qoDMV}%S^tH*7wJ5uej7`8
      RHlbsm>DYx1!=}PHe*yOz#_a$A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/ExpirableObject$Destroyer.class b/libjava/classpath/lib/gnu/java/security/util/ExpirableObject$Destroyer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3cf941eb21d993abb6d09625c934a0afeb4cc93
      GIT binary patch
      literal 841
      zcwUW?&rTFU5XQgW9d_Jd++7w##Q(Aq7>Tob)p$Wjj2k_$Src!)vmIy{W=KzuSzZ7=
      zX-quv0-Q-i5)M9q4`r<G9VPKJm+q>rs$W%o>0iGuegb%cWfv8O?sk%gyZi$WGZE!V
      z>ccSCG7dM!2U782EZz=xMWj0~MW$7HD3l9_Vb)gI#J=1Ys?W1MhMMMTTWE%rUODPB
      zQ?nzpPM3`5GLiZP!&d3)vU#fm24_7Ti8>g3A1-Phs%ZGQf+j<CWp!X8Gd`wJV`%nd
      zBHrZtL$eoA7}~uw;_-khY5d~RF_SYqEjh)dg0yv2<%x#{EV{VCuw0Jd<0ft~Ov~&q
      zYGj9hZ%B81+%?P8M`;mtai1YD*zqNo=XxhB5;nPv#b{$3i32Uugu&ZNa}|kAY1W(j
      zulr*|BKck=iBRh?&oV*V*Z*yWE=gFWpH)HI=m@l0Mrr#3QrbxDk@cE<lh+I$onbmS
      z$JJo%46W0m6lmD+CxRSN(MQaZH*X<L%;6efEz_bx$a%6S;6B~V<Obi-`hn}mXiTiz
      vCve`K+Sm*c?iGF7aOnI@wO{D<E0Mq1UjBqq^s3;2J(tj-+p|3u@DS}kFXzf_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/ExpirableObject.class b/libjava/classpath/lib/gnu/java/security/util/ExpirableObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44f30dd90900187a7687a4839bdad76750db0c92
      GIT binary patch
      literal 1264
      zcwUWDYfsZq7=8|PjMWa<Ky)Zh6mhFc!3$o75CS8COffLVB{AmEoj|d4*o%R0{v~ga
      zNa7Fh$M_SB?>QUH?1Nd8p1ytiKF{;s`s>e+p8zH?8%GDj*sd2@`}`xf0%1qK6CPVp
      z=(tw#=+N=`jw@Dn_JtkBp)vHSIG207*15NfAuGK{O*oIjJ!?S(p<g?e1Pr|k#l^Yx
      zQu$qZ=~Z!Mz0AOt8ItogF9^98R=699800ne`x8UFxcO#jwYbWVDk(*kP}w;Uet{uT
      zty2r1;bE!0>_->QF+|WkZM%-=gfk4CxqO8|o3B+x90QbSi=2*r3>vtCs|;P!4Um@G
      z&Q}s(7&2fWNvM+JiPzD=j_}L%g43m%&D{$39r>=DIstA-s;p#KR=VMy6ENi3ETW*J
      z6SpNrDvmo06Yas8wd)wgU5U>zthKG$Zd|=5rhy*x%D&w<@Brh~?!ev?)kwA_lWU!4
      znFsF+su{7WaQQI}zcF40y?A7c!_c8EiQ^Gb|7Xt@x#NoJ1wc0YiGeAk<i6AzL9+g5
      z2A<;uP1EL{EnKw%+oZKti+o!wIx@|HmeR(hFoUt=dBUG}c@PL1TjHXx+6c*Y(jB8S
      zgE+d$PS7@YK*x~W5wg>=FZ7Jj*FK~uB28}-gpikUhW;(>6qmmu^I0LU(W%oDSjHvH
      z;=1wznw)<FJ*8BEZgT+oDTZ5-8<fkYLK^ir+{8$OBirD3tFi`$%~RYm&oH`Wk~Q`n
      z`7g+r-;mFq;9iqBO<;i2X;T_iA{R<vPzeq<1f*rDHl(P;6n&divh>F)(OI%&LP_%k
      vkEO^7o^CWndQ?V-1o%Li`~OsstP5zGoGp2pv>hlY{4`#w`WX$IVFu~HOfwbs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/FormatUtil.class b/libjava/classpath/lib/gnu/java/security/util/FormatUtil.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c3485f317ca3216b39efa1963349804a5332d72a
      GIT binary patch
      literal 1246
      zcwU{7+fNfg6vn@yx3yHjm5bbjTGX~cOSv0RB*mIagTyKt6HT^dZ5P`uZnrAYsPP_O
      zeAZVVNDL49f{72ln)pW<zul5jf`-IRX3m^BbH4MNIs5DP_a6XanD(GSz@O7A(KY41
      z5-qFQilLbs(Tb@RqKT4GRLpB!df*gjv5yoKJr}*4SyQv7fO}TcHS?T+BN$o{aK=lk
      zsuvC%^1%hSKyymd)ul=?qZ(J0OhFZpQ>Cm@SWyhk@^?0!W?m}`1X2fr%uq9@niuqJ
      zX;ss6OG=UHZNX$HwF{Rv4TfeU9ASuxk*u+?Zk8g3@*r}@R+4a3puH~iaAM?4E!HN`
      zQ5Rdkn=Mb*f*pGkm9ie&i3v#6MRGwvB>6aoTCNmK>(2Y&1X}B^k<OP4)4Gd<<9y32
      z^VcQx3%G7X$R*(fwU!s->A<vv0dCKymm)ENMk*v~72AUQtAvtX1QGTiw5NO3s1Jh}
      zvfkd%io^;2<q56qh!0VWkf5OIIWup!+Lj&lVGQFGR_|4mLOGe!ONJU(%IZH@ZnBnc
      z_sg3uRgA2f(5&7!?>0ALCBYBYfb}`iVEsn)J@m$C1+6Rm4boRG8sO#ZrL}@ijH8h&
      zU-b~}VcJeKp?OE(J*{<iN~F3z(~fcoyA06F5#R`MMCF#$CS+OW?2}tLyXE%O;Fns-
      zuszSwJCA<EnYe&cNHF;#hLGfYU7~mj6Iiy9+N))8j5wCY1iH}8(w*q}54c_%uFr<^
      z+i-#XaJT5)CY-{=4B=LptP(CqxID$z2%#SUcanKkxKG@-PR)gX!sXZsZ{zeLr{Ry5
      z=a>!4z1xU=faILrL{C`mt9mYaO<~z@doK5E_f`#Z(r(Tp-tIB``-C7*A>$cZ@ti;}
      m(1({8z$*;nHDTXi25)f|@9Kc(2-<CXAp&>W|Hh=PKlKN)AoBkJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/IntegerUtil$1.class b/libjava/classpath/lib/gnu/java/security/util/IntegerUtil$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..518fc646877b02f797d5a6d51d33065558e6e51f
      GIT binary patch
      literal 689
      zcwUWA%T60X5Uj@Q2a6p)cmzTS53P{x1ICeZh(M7dWD83smk<uV4c?JG$$A#;>>@ee
      zlOq={M9Lu_kdKP!9U}r#B$&~RdaA3Zs{7C1U%vsgv6IIf!5itM^;KMomXX6GQt`Bv
      z#42d@bSy_Q`ogi-&ch+Rv@DzKEB#IS$HI(H#04RDsI-bda8U1c2aPj=a}@g0MF#Ul
      zWRWA3xkP?SCg(Cb73YB@)cWC21ZN^r>H7|J;;}M>-Trf29S{~gp+h~Lgo)WFQ121a
      zW~BQFdCSOvP>tjyyp)~5mnQD$IGPex>-~TIaaW$j4;lj(+<FnKSYvxeeP@@MdV`g+
      za#p$g-$H`>IZUFV?5eb}$^++nDW6d6X)U9pKo}#r=W<66gU~2FI+5`>^z+yz>^waO
      z?6biP(ly72r_Jv?N2hRj1BK?gxA7B&Ys+x?b}jQAvv@ijHD^2&QL_IO@B(GdrBMY{
      z%PydXMb;rKVfjwsBWKcFsd<ByivI&y=PGk`FO#!hytfi7Gvd8O39qnjjlZ`14ZN|&
      O$ku?xHu-k21>6E#{gS!>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/IntegerUtil.class b/libjava/classpath/lib/gnu/java/security/util/IntegerUtil.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e18daef73d0c286b23b19a9f4bec88059a714042
      GIT binary patch
      literal 1193
      zcwUWD+fEZv6kVq+9T)~$T2VnoKrX$>Pyt0t6w*L!QY5BW0xxD5j%9G1lDUxhC4Pdh
      zs1JZ9YUIJhk23CaTCfNSPSSJPm$la3XZP3d&tC!LQBV+K7_K>izGLhey2s7Hwfwhw
      z;9Is{a(rIn?h86Ah%m%ujBPkIePwfpn?8eDTqr(Wd|4@NEHbbXLszlxc)sEIRl^Q=
      zm{_(L+DyaT<_xj2M3CUi#%_V3ea^Hk$MPRDgj4A%L!?;W;tFC6BbTch$w!{d11h?a
      z(2&FxhUi=qE}AMWZKSImV7RKG1FE369R4hLv&r36W78%<iE`aE?5g2f;x3IU!sr)Z
      z8j10@EsvCxFPB2KD0`yhl~)Yosq)`eReaZSYK3%*shL;k#2|(h3{l(8G)BW6j8I2v
      zoLW5A3fAcR8L*~F!5Bl&ISv)0NNKo*0YR40kVTG=cLPG6y#V>YxTsd6QI=@oxl*b5
      zF82bPD3TXcO%IYPUDOVtbxOlDW@s?{`UwL?p9ycWsPwWank~bje44~cJ#bCFWQli;
      zx4g`R$Yjt;j>FxeZFnB{B14ochBJhIv>{42Mc&%!PP0Pi2%S5jk*AAp(-bAX_!o4q
      z$9W<iIY7@R^nQ?8*C2*4MC%M<n8bBy6~E*u!W8X{_O{Fc`u<IuC%OfhrZs|a12<{!
      z6A#w}ct?VT<orkUt}p+fHFJd9A$-SZIr|gI%pu0h!kRroI*hg4@q0vb$KSI1L=i<A
      zIZDo9LhcRn0a^8P@>WRcD%q+;yM}SH>DZ8h1{<WfOPQdkKJrYGB%LrCCm}L_+NY2#
      nK<$sKhq!l$`}?PCQR#WzQl^RrWEK8dxjw`rX=U_>7GL5IxmNnI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/PRNG.class b/libjava/classpath/lib/gnu/java/security/util/PRNG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e2d054ce1a52b3ae64f2ee0eabae597442cdc2c
      GIT binary patch
      literal 1822
      zcwU85-BS}+96dMLut^BIq99ShsMrRAiMF;<u(lu{1_D}Ou+)dTBp0$wvPm}^OFET)
      zk9MXno#~9z=Q`8ZI@3xm9sAxts?)PK3t~Y#JIS8k{e7Qv_wRrHcnaVGW^@Duj<4GF
      z%$j+}%+zGQ?pSUkQ+KUW=EmIYqz+BMP|lKRuV$_<ugSbC5H84)Ts2)OkjU-LuR4s)
      z&Y5<hQXUp)xop{%dqv<(^8bSS76r7cm4b{Sh}IZ%!~}xLzQqUx4#W^bi@?F0Wy{%m
      zd09FO=5mQcwC5^$v$SYBmS_8inp?DL0^R%c+*y#*wXRAxYu8-U&NJy`vhStwIywbT
      zzhH}*u}Nu5$8;-B6dh>Q5f?b50#$`;X0145R-@=bYZNEYqoeyde&-uCSC(Tqi3Af_
      z+L5-qV3p;JRVsPQkcz1=P75662<g1jsJfN3*E?M<q-#<ZyxP4noW&~)uGXp5U^4e#
      z0f+aV^zA)rMH2lw`UHAju38K!43KY6WoqH~QyX(zYN{hGaQ0b)@%6l{x>m)`^08dY
      zELopOXWVf--p=8?r~3tguHBO_6rIY)p0KPJ<z;x?3kvIaL*Vc}mAQS{tkSn@7@vM>
      zE;y%{;>aFl0)bnjwATeXa{H8Ge8iUP?r6i6lpvJ6HQF3uB!(+srp}XW*1Nhb%k`BN
      z>3GbI=$H@~cmZ=ct8BS*(##iSVb{zpm6es6^oGmQC`o(OEz)QRMCU7YCod-~?`B85
      ztC;r6;uPly@@wW2-p4_t5s?|5L}*RW3h*86-{dd#8`>Vx3g96B52(x$W?W_L7z|pS
      z&1f7#JD`wPRUnSTIMS>sI(QPI@7@+VmNs#8dJA2AAItrY<0D4+&+t+(VGQ2A|NX*}
      zmN3pM5K0(H1zHkDLIFKtbSV%{7={7{ec>k36MPM6srFNG?J>^W>`y(xs{#Csw%iuZ
      zEu}V*`D+VeiCew)3&#rMBe=NeFE+&0fNMOR=29~pd=|%W9Rs*Q#opsHhYxvXVjgQ)
      zVCEv~cpn@1K#_2f>xJ=|PpE+c-ozz#IfC05#9QoQl8zw^le#)7xs12z6|DV^Py2|H
      z0f_Xcf~lvE@$NI$qsmca18W!KksZb(RAbmLH|jHfn}dYud)WUg+EORFpI}TQ84qsy
      z%nxa#{!*yPeP?K!d?KHHBA<RDpMN4>0HSRL2)8BZ40#&pag8GAN(45KYf6ac=Quc|
      zd8))UPnJh&pBQ%?=YBun!Hz7WYTrA=>qMXOPTfThN$(}qgZLadd_iKrq?8+|;VXK-
      z#(jLl3it3MzQs@YPF0v|a<RkML!U7ZO;YxNLRq39du%B2G<Iqz@j|TKtHje;HHs;U
      Lr!jk4DU|yc&MA=`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/Prime.class b/libjava/classpath/lib/gnu/java/security/util/Prime.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0246963e34a01ea2971ed4c5adc79a1917878c53
      GIT binary patch
      literal 1776
      zcwUuM+iMh882_E@>`r!_nwXnTE;emryNM<f>n&zA+N9O4EJ;Yy(DX)UcTYAWdvkV1
      z6HtWGD)^uf5o}SRzU+$+X~9jYP}_&T2!-~k6iT5lg+l&@rr$X`n`}r{=)j!w-M{br
      zerM*{zu$ci;2_SbsAK3%WnJUEdC@cqJmK1wvuL=El{O}AE5lVN42{y8HnS;XB7UAH
      z9EQLND{DC;48Cyh41+S3OY#tW2x{;nz|au0vV7dl#JN3f#?zdkDV9r^=^4|ugzgy?
      zXWl9>?2SEdh6qD*if6fPI(*8^CUY5SW*7`dqcNG4F`ap1)JjFO4o`7A(!0G`#V&@H
      z?OZCFE9aDr%Y8y<LNJ6zw25QwW@rn04Xc78y)z<2*U*j*2KAzucKO5{gC0ItV-6AD
      zrC~2#WC#}KtvM&g=Nyp{eNM(p8eYaLl#$3~@}|wFb0VV#08x>#Ps6KtjiJ8a#vR)f
      z#0}I+sNJ_$L!YSPGm}X_%1@ne3}`T<Ba=%C{h)@|rJhPi{ji23I7*knDoonBxS-r)
      zPN9RoPg_1?Wf@phisk}|gj?J8qmVO6Z=T`98fVzv`akc882q$`HzaNuH|<#Y^dj}O
      z={4!S#1MKX=h_K=#u8UJB#$&8YSAY}hnM*HNTLscR+Th^c1F9uZw2*V3-}PCH6V=#
      zu!B~u96<XEv<I;h4drBZjjRIp)hB42?P&kRpMHX-*%h>`pmkW$mC(1?(_TVn3ElUx
      zdqdZi5_(Dqi<lPdCu<4)LAiB*iJj#@&o9J|a*YR=sMdQnw^)z%JX;E{J+3NTTq~|e
      zkM|!aVQ{=ZRGFYbS7^dRUm&0>%NvzsT7Dg)aWvC<46PW#J`CeHM#y#wvv?C0&SC*?
      z<2s^PB5M&7_y&`BjA=Z@yZ8z3;TL>>-|;d2Kpg)Ns{-r8Wjv|skR)rBst!r~SE)mU
      zIzOcwe}W_*_5BSeNm3*yBOWIYsX{%)|1CJ_>fFqUs;hmK)0`q`h69@oVG*GR1cD^&
      z_Y7Mp+CgcaQ-Ic0;m4@fdn)cuj~`E!o+8FJG{5c_S7J~IRV1ht64d1_V;0x0i)ohE
      z*_c8LtrrLthyE;=2*CxM#v*ZW86V*aI6j4o&+!?q;WqK|05|XzZsHMc5i3jh5qIzm
      zckwgs;ZIz}Uw9}PnJS}+Q9>G08Y78GNw8EWCBc$UO2d+oNA$Z9Ect1cALu?r=!<H_
      OuaYm7vfq+(pZO1Q;fy)}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/Sequence.class b/libjava/classpath/lib/gnu/java/security/util/Sequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ff5eaaefc2fabdb20fda5066211e56d5ebe4386
      GIT binary patch
      literal 1738
      zcwU86U3U{z6y3L($%J$YQkp`T6pAQJA`k>=pn=ksj~Wa_4F)4?xtJukVKAM9`M}m?
      zeeqxDgZjja54e^lF1tjY{Vo0m_1v2wO-o$9%suzqefBx~oO|cbzkhoU;B9=YVT|Eu
      z(+RSVtS461<MqI`{f%tk+pTPwKMuH4=Nc4-X$g@2rJCovR^2b!p3e~TLKwr;{h~y*
      zET@?*I6iN3H_s5gY&*8Uz@V6gbcL2{?FNs7VO)m>od9N`AW!xcZHM0p)@t0nYt>pr
      zIazGityaZyZLtrXivQ5|7>*VHr*O(0;ZB2r6&O^rpF{P0%k|@kU|OU<NEkC+(U4@=
      z|4Q|79D<=Eg&79ziPZ{tX_b0GIz}knLz0f_P!ZK|jJmPiF_QHeZ-{=yF^g&Oc|*sW
      zI6=v+1{IhvhxkghN4)Om)1L^OsUwXHY4+?dxU97x+^2M$#u+NgZ!fv7wZUMT_eXGy
      z@M(w&x{l>gV_Kx9II2+U9kVH4ll!8)9fCt5F+x+rMTX<U&1mrTQs9?Xm)n8U@NTTv
      zdB?Zgj)r-LgWJHe@7hjtIj~y|?#6JLu7NFLuf%Z)3t}`^clD(okxy3yVoAp`u2GQH
      z>Bt$UcGkFqJ|Dvk>eZ=P(L|YGMTEc0aC%gN|D+L-w{*ORBHeqx-9MyBo3DltHV3-%
      zsuU%ZjG9FpS$v@5LzD?wZ?zr1n{6<(j~EV&U|@)s+kso>H*N7WCSKnCGXhCZoJL4b
      zogR|7mt;lB))1rb9@;HJ!5FQvOvF%ni2p?P7$)c&m;S4SUBq6pru#VT!)t)F_7f+Q
      zYzIQNTf`QTY({Dn+ik+$k!-Vl+z{K8WP8awCVBNfFPjK!-^}!onE3|hjnsEYWz^qs
      zs2VYT#o=;QNr~kb9C?arM%g})o|P@kR(p7TUNPp>r<h7A36&1JIDRjo&ODe?6Kd-F
      zfBs5J65-7xm88<eN#g0^try4=&9<0%Dd7Q$tx>rR@^KhgB~ctF@DLZ#!V=c70*5BM
      zhELHU?_+!kPev~E#SFx64#aPU;)QjVtO)VsX^7`2*L57mc{xUgcW@zWxkr0}&l%rh
      z+{kn>_XAFDAy?hPrRrq9hbu-Gi<8&8xG4_F?xN7c?LRU<<A`zY*+A4@Ig!t)=j)Vu
      zV`%2NL7_RCUVrBFO9~4(EBAD-1mW`^2YgZK{YvuaeMHDZj}E0U`a&2zE~2}5{{`+o
      R+ePv95XJa_q9RfE{soqZTt5H+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/SimpleList.class b/libjava/classpath/lib/gnu/java/security/util/SimpleList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c30ecdea1178753204f9f6ee78a3a198d34ffe99
      GIT binary patch
      literal 2443
      zcwU`VTT@$A6#jM+IB7T(O(_+EHPBi}fW}_D)Nsevrlg<^#RA?A;Q$9uPMG9`p+4xS
      z?Snebc<D>W2gfI0`k*rk){gbj8GnX9ME&;8F$p24<3rBAt@VB1T6^u4-~RaNA%HVj
      z*WeTAS#wH>4P(nl6wPd@V7WIFCD*bO87sGGn`x`)Y6u8)C=+!uv0QWuM%I;Q0zuO@
      zbEe}K1&%DGm6dHcYl+$A4KwQ|1)7H~$8tvnj`r_Aj?D`Mrt&Lh2!6Ea(4Y(W`(yJO
      z4huX|Z+{5f)X{`yfwr{em@}o^vRRljmTglYoX%$rd)_Ema_wyf+;xlEPNe@ePHNS>
      zU?f(9Q2H7~&^RWac}9ND3S9V4J_n(k6PW&=00%*y7wGgLRRX5+w#`#3@6ezHQS@r)
      z5om8@q2mNjGN(oBZByM-N;;g<(T9GPg5{b8!_601F8#3@ij=pXY(X4@8U~o({iiyH
      zaGKzbxy=h`{~Mt;0_p#h&e~;SwRNL7qfDt|Q9xu#+c+*BTKuILz9pd>Nh8df>B=fi
      zH6Ye7%o?h0r<@gYd$#1xu1@Al&Pws(cGldKTtTqXTWyw8)G9{J+@^aoge1mgX;0L>
      zfs9+QoVBDZ_9=m5^#_wB%U&@HL0se`vLxY12$L9>pUXN@xWav7bJKKI1iJUi-h+?~
      zBF%gaM&-3Bj2Y=ZD=^eZ&Veu?zP?`ReoaRPbG&djU$&^fE)PneN$C#Z6)b4D!AD!Q
      znX-*yQOBYL(wO=gBgZcADqh#{+McIh2Gj8d-lXN0VVBI=Re@8D+R1(mK`is?`-5PT
      ze6gtPGuH${nS7~`H7{ARMYL6Wz-j5v`eHS(N3u+1ui;EK9t}Z$4{<feQy<6n_%1^6
      zz|Uy?0d4W`(dHk>e8+ts9_2TT0KdchjzY&6j$oX7Ku6h^>vllRj&e^ZhGQOsMFy!L
      zq8OU?FvuY=SVPo7k-%jVT_Mplfz#;1RYevp!&Jy3cubMWS*MaBX}dhycW5m|_bS@v
      zMznHh8meLMQVE);-wm=akZF;7OX%TUN(J#UVnso3MM1BpK+YnZ`IVM#Ps<&yWn6Kk
      zMf(RWa%k=h)Mz?R9AK5q7By{<`z>m+sVRpT9Hr}g8NH$_UeOh==!$!~<m_?I0!pFo
      zDI8YW1Jy}|g7T^g4lA!BJxa9QQjB`p+GCVR$33L4yu6Poq=EZ*LZBS5e}t<i1!lfM
      zSjO3X%O{5JBPNjHkPx^Fy;~kU{QA$|>l5%ULEq#0eNukF0B&KB<0x*|T+CP{0b@AF
      zr0{Q?R!`#@B6Z;;p2c(OV%YdSu@kCRQND~{(d56U`0v%l{vjoNM2C-SVsER&egV&W
      zaG&rVWUf<XxYh?qE`&#RG4@O3OX!huZ0M8Q4=}k9eqk4vB0G37JiUXf@g2Ox`3_!|
      z4$?Mq_FL?I7@tzeXIy{ItbD=lb*JVPrYg~=aGf#B$k^IEY1dWcz<?qaJDC3wOQa7Q
      dRqAk7&UayQpo}VcvvR##6a7FX`c-AM_7|}X@TC9%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/util/Util.class b/libjava/classpath/lib/gnu/java/security/util/Util.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..896b4bfa72a5256e845ea0dabfc1dc616dd731ee
      GIT binary patch
      literal 7616
      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
      K@H@5Y_x}&nr4&&B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/GnuPKIExtension.class b/libjava/classpath/lib/gnu/java/security/x509/GnuPKIExtension.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbada1312e180a46bb8c5dcd2612d590059b2ffc
      GIT binary patch
      literal 314
      zcwRg8Z`VEs1_nb0UUmj1Mh3O?yi)zF#Ii*F;?(5QqRf&?{R&e9OMUme(g1Hy*NT$V
      zyyDFKJaz^aMg{?}x}3zkbbbG%tkmQZb_O;^1_e~z$*Dyp`Vl}Q;CdMuc+yi#khu05
      zKA5)pd%9R_Vi5<sCbgnOA8vp(BLgq8fyImr5*nI5U~Q!(nK}B-`8hd2*FltW1?QI*
      yC8xS&=A<$*h@g2(52Oj`2Sx^FAZ7)I3lq?v><k<XApdeQZ~;Xa8Mr~>3_Jie=UO5F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class b/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfca58d7b4427dd13fa820c46484122ee9f91d83
      GIT binary patch
      literal 4472
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/Util.class b/libjava/classpath/lib/gnu/java/security/x509/Util.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b21e8d818cfea6aa67e625c3b7e08c0714b9f0b7
      GIT binary patch
      literal 2815
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class b/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8aba2259813e088bfec843648fc808d6ff71acfa
      GIT binary patch
      literal 11414
      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
      QzW)IX-pe1!sr>PO06RpX>Hq)$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/X509CRL.class b/libjava/classpath/lib/gnu/java/security/x509/X509CRL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e2ce964ec494969ffbdb20dc762288926db9038
      GIT binary patch
      literal 9760
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/X509CRLEntry.class b/libjava/classpath/lib/gnu/java/security/x509/X509CRLEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04aa144a2cb13361f0fd469e10e48a29515bc7a8
      GIT binary patch
      literal 5338
      zcwU`Y33yaj89kTGWQNHDLLfj0rBl|d3|+vM(3U2oG%_SLX+r~Ad1M~RgUL*oB?Yxs
      z(TY{HqLxauYQY*Uv<2HtfLI7!P^+~rbr)rEY3tI~z19}b|7OW#W+JuW%e*&tIsf_3
      zzuX(1di}^z02kw&17j3scLbuIje3vn2^;OvkQv$P*|KQi6`q^;QP=FP4@5#+9k3}}
      zIC4?D5sG9i%2${-3fhW5^!k+z^;;rFAZ!K$3VHruhr)EPwKf_t{T>c<n1K$Dmro;9
      zqu?+C?LnX6Qy8<hR>2uILZ<F-3@S{CZ|l+{ot|2=qahG6;#<atjGkb-9-)cldc;sD
      zOfw)OT;np5EW!$t(&n$z!=0=2ZZ2^yZTFi2GjbJqmX)_E*y>2cg<?!~V2Z*7Ym;9m
      z+d97<4r`c(5)$q(B8_?%%}y>W_YSXViG=7_jSHo?z=0VG(?;`J!%SSLFqS~^0fhx+
      z*+}K1%QhAY7in<7Nt#|WU^GU%)*GQ4^!0x7D)Letf2&R*`8_e1zck_N+_DC5cKm!s
      z$g{k@x!KV9RwHV->bJBT-6C?>fwJ70Az6`J<v<0MwicN|PeW5`!i79kX_$i|2Nozy
      z%!-8z)u<AeF4iysg)Y8bs^K!sRj_yKp)g~z7?(TnmL$HVQVL(g6%rR`Bp4UYh54uv
      zdrK9HbLlFfj&zz#jJY|K$f^rT(jFre&uG;^<<F}hGs+B7^kQ!gJvghjq~=EY!nu57
      zb5!?-Gq^Xc-)OW)YRcD$It?1$ij@pKGpHqAFIN1SbIFv<tQwJbm4*UnE;Qk74qVUt
      z&9zd)wOAoWS~T2%8yPPeY0fCPqO$blv`S74tky6N<6USI18Z2QBiGRHpk!y3R}5Y!
      zQ$fnls>KH3xK6`6a5M9e_Un^9!d6zkwpL8}G>nDIg$?L%z@?!RCbOm89}Hv_X2OWj
      zVlx^?OZ92Jf#%jo0y2$)@H5nAxW219!bZ1QVQOab)J9D|1MCEMPEJn}cf4<1=|VSZ
      z<fBK!Ent}Q_3myXK<d@G!kLww2?I4wyo=JihdZ6yM+GhT_XzT>8Gs{uMoz%nD3F_N
      z(E_=g1x+Px41}ZI-N8`A@YOMoP4<nHIHJl2G<*=Z(~BP6A2q^h31&sLF6j5u4@ukt
      zY{wlAd^nj_8S@%Gf{!xJX2b~Tkswob$_S)}#5i$2hC3bjI1?p%R>LPG&b9#EaNv^)
      zb4ICO&U?}v*@;hUxJ$z8GQ&wnW%zClpON7LGu)CCLKyUF_^g!;)TohQJe^E_OwPra
      zY0aFQH(DzhL4}K_F`u)vZfaOgaVL(Dq{WETIIuUXV{+VuJ*X1?U)IovuP{CYZ8Di<
      zC4|T(LU<<S{nAADv9aV_Aeawmcn~XC6uQsn!U25EfrDJ1E1*0MAI2l>LD4{0&}VM2
      z&KgovaF=B`k?9l#%W){jXG-OC4F*ONNP0nXs8v!@@+e0ctgRJyYow2TUBja|s-UIs
      zRk*rr6rFPEmm`p({*Z>_c#K(1=meVuIrY!pKgU{6lqYb)fhQFz-uNyJI@U8tK?!(K
      zw)axFPigozzQaWw5|Vl6={>1FJarUN*f-PV3%l?={J??lvx}VPEY$ErJj;>|@teY|
      zobn_#BqjMVe(Jza6lVVKl^T8~B|453O-7MWw4KH4#4i+Pbm{&L!BCgsvl{3oHaFf@
      zn4@f^yiAnCGIBybek~z1<?XbFGjiS(4xcw(BhV4)l*!*{_^nJ@cQ$L(iQiK$Mkl08
      zYu4Rnz|F(JZOCch#Pe(x!z_k{bK(z7{TwrrPk)kI%b(e%%huMGw@Mga((p3=!Z3D6
      z8OF<Vgz*gpR>Ji+4S&Z!7>V#Evs+Hm2Du33`Q+MQw^*}u&leoI(i?KI=XpR3y3eX~
      zwFIM~cH>%8?wJ$QPsIfS1vjfOkH2>Qn=Y4D{$Vmkj&JM9D~a{w&B1!|2FPb2S4~6_
      zcTM8Ag?!47R-|H>d<fGYhWntkdKN!jd;-gfbPZ-(qw+HcbNM!pZ~1)AXVe9$k4$WQ
      zmRAg*vSJX`Z3FQ1V_`*U)c`K(!=%RQV~vBD-&P&Nq5&*9cF>|!%)5WN^(^IGG;Vg5
      z<;Xh1>74O##Rin{B2tQtm;pb^5U}W6Mz?7YSK=y*SUIl7GRvWIif|3lO88rgI#QcK
      zF_xp=l8g7Sg!^I6i&LJ;<50b@=k2c?0+qO~;t_abXxxn{@quOzw8n7LZrE-6^Y*6{
      znqpCiQu`j7yoFKNf(3lew&pD86g>~t;_Wo7<ocB$aEbLDaK;V3a~L__8o$*-(&B3p
      zNJ_d?A_6vkn{Od4N+1;wsXYc`2pbM$fNe_yD@cLy!kZxDNkG_zOy=h8X`Ah-&AiAa
      zHmBRCQX7ZRmI<*Vr~OTgXdGfm0-}%*3uEZo4M$!dY_?2McBbJJrf~STN&@F*E6PCC
      zAiCR%LIa4z)r}Tyjp5yKe$k@$#@}fu8pHdBxsK;<U>7s;Zf4r9G+R|ETklVC-VSB0
      zUlfPhb{HR0@b=+?%EQ>9Fod0}s$%%mZfJb$>Xr22%x;C=bEnesXgXa3zCd^G<@+8Q
      z-ir!;zZCab1l(~W2?FC7`_JJXnx4)bpXa(UeE%Z%#!2nvcd5m?LF{1}e#x6oZdD)L
      zRY`J<)fTx4m3-b8!&hV2zq%^H?_}j6JT$D!OeQ&a_B*kU75M<i9%P+8L{j@m>Yzol
      zB5pQ8(}^1NBSuoiTq%SFX_7@)A~f)33HSaVgkz*JK*EPPc7!wrNqB(t9(@yp4-q9!
      z*x){iNGUtr{cV*4I1<C)s;UzxV3?1^@c02WOr*#%@)*PRI9u<N%+qhA1+_HQAWAv@
      zO&XAfoeU~(SP7HM61_?jZ7O5<7S+hCuxHX5kCwvKi2JlvTi?a)$ZkBMbSBcXIU3Ix
      z`LBbt#<N(E)KPjN{rU_&e@4Rdqh5>~M0s1$&j;|!V-*}Z*^l<T#Wq>6#9mQikKtEC
      zXzGWz*d||2t;?Ki>qqPGT(ON9XZK)RseMlZ`ga0t?a436Pc!+PjMG#fR>lzpBQ^Vi
      z%no8_n~a_uz#o@5#QhQnb4fm4TwNtIXJhzlx^=N|_TF;`hY!XO&lBJz8{sKxbef8v
      zVY;2gMR<<w_<5G?3)JjICe};*gZpLvf&5Rl>{rl%e`7OV<pJ>@+=kb12j$(N6z)`c
      zxJ%h^kFujrInl4i;tA!#)2e{?HHFiv(27TMT<KI~&!kSgGqfNlo}H}zMN4_)a-7zd
      gF;erH^sjQvPP-dv`4z^vpMFS=Ik@{Z%dgk}3$_6x=l}o!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/X509CRLSelectorImpl.class b/libjava/classpath/lib/gnu/java/security/x509/X509CRLSelectorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c23f76eb00e6bd61cffed5e36827abc1768594da
      GIT binary patch
      literal 2421
      zcwUWEYgZdp6x}x@3?#$*VW3!Rt(X@CAE+%@EswUeY0?&iBCU3qOv&Joq{*ZPwN=-0
      zEq{WG{sF%5LD#AvvX%?K`ZN3?>b{dOyb_lm=5g;iXP<rcIrskg_iw)gcoTUA9)ZY8
      zwiI90o@nu+p_dA#y&f-*j$Dl2<7@J6V%D$>-Od$e*7BADuRy!wYiZe)cxri-HU*6W
      zXOAQ3M!}9Bi53W$#bU`QB(*i8DA1O0{7bfJ#b*tBOrUYx%$oLPfre0cUcft<OB;SP
      zphZP9{0iCxIu2v5YsC!X{Afi>GXy$SC}@(nX4XiS)|QRJoVIKkv?Ox6X3c8_Q?9F<
      zUOQuwMJ)0EYbV7PEuEfms}S&omL?=u|8!Y5^0t}F78RTk=yDLvTzn?wS`@s@eD%|f
      zOqoU7%&wHoV#Y{Id_M;8iYz`Dz^iyo!Fe(`rkaWic%6cgmOxJ^ak4RE;ZI1;Ji^$s
      zG;zXn)-EvXSa@Ehi^y~#so5z9fq`n6OZ_$tx|!E3Mk^Q=7?k$%p@UYkGqS)Dr$E=;
      zk0FexoWHloZpE;tvpRdt61<`C(nJ97;9Uiy0x#7`r{X=lFQ72AQdM^-T#ImDUA_XX
      z44yeUkii2CN8HJrB|Fc)jrs8bK2*TL?5Slhs`v<3IC!P(S}tuqa;A*E5jYn*G2`JA
      zYXy_!UJI0?rCYh|snV)#^>g4`<WO8!F@qaCJDh+kmc^1owTqC0;MH^abt126ww@6<
      zbF!TWN0!bCQUd)o%++(@M-q2b+{G-<wX5V*Qlf_IsxBFStYRJu0!^lE6g1~z=sl+V
      zOm&~$i&#=X;+?0hD(+*NC1s7WEeH2g6`#qY&}cj^X;x9jYATkYb4)T?F-bS)Vqs;*
      z!TEF)b<ZcwdVvZC>!~6j^5iWqj>^;x|HtKV`ZP1%W0FL7ty*Oz4yJ!LS1RbnRa0J4
      z!5X*Fu#BdTq|3+0$0IL3Ugrw`c~SBm;A+CL1MQI=sF6LiF7BZH7j*p0JrBD0Zlwos
      z4PK5=8*ZSRE431X9`y3d6Nn(a`}ptWs^3Ar$$t;OU6B{)*u%hLbO&d5an6H<LvX+2
      zatEE95eeK|38@0hzd^h~NSPv3rCbX*TpM_vzzcPOqgCM8Dega3Q>3DQU|<6sGE=mY
      zViV)s9NNHHH~l__wh?!$+eE)>+Qr)fHR$!Dk?$oo<31@pkdw*F>LHJdc7$%qrJEw%
      ziw@mO7^~_q>a2l)%=RnB_c8I4o1oD#8ArMmaJw~y=_<q=y=9`{9t0bIH4%MLDRvjv
      z$Txb3SDAuUPSEE>v5t@oR&kp+4>$QINhNTrl0ghIPL}$Nq9vch*RVyolH0g_OC)2C
      zxPjO{29leI#2i_Bq;4@+QW_j3V+TqmEA-~5gqKS9d3SM7fDo5_Lw&w&JlKHGyCt_D
      z3OxVkuT6Lt8n(!^nXJD;8d;Q`Z>6pYvIZWr5e0gb(19o1|AGxF<2=?8#+MZQYtH^t
      zPSQ8f@hx$_Bg#{vd{4^{juw|IRk{s(hDTVT1|8Ha!`8`c8JJu(Q1uH`(c+Bh)M$-+
      L@_c3;t#khZ+|wJH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/X509CertPath.class b/libjava/classpath/lib/gnu/java/security/x509/X509CertPath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98e112e9d6ea5fdc3e9f0969eeed89708e5a1ad9
      GIT binary patch
      literal 5636
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/X509CertSelectorImpl.class b/libjava/classpath/lib/gnu/java/security/x509/X509CertSelectorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..823a6578b0a130f46011d39cdb6b94f487b93336
      GIT binary patch
      literal 3382
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/X509Certificate.class b/libjava/classpath/lib/gnu/java/security/x509/X509Certificate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..377554e1ffddd3c0a7e876d44cacad5025944975
      GIT binary patch
      literal 17078
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/AuthorityKeyIdentifier.class b/libjava/classpath/lib/gnu/java/security/x509/ext/AuthorityKeyIdentifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73bc76cac3c2fef0019765cf68dc2af6aa91197f
      GIT binary patch
      literal 2707
      zcwUWGTT@e47+qTuPK?Kz1_ALJ)M~g$5T#Yo76^zz5G6>9RNF(?grngElM{-y7cXsX
      z?REOn86P^n*+)Aq!70<r)R{i?M|HaPNdg!Sw!=*J&bPm{zWW#c{^yt90360Q8a4<V
      zPFlIhRb$SGWMv|kG3^_X`S#Z15jk&1x^nh(T8Yle8?i}g+2)ifGa5Vsjn9Gg&fC(;
      znrUnQsFBJ^feo=9f!cw!kfB&lhrs4*tLdpe-YrmNl#EAZ#*SsPIrY@wLb7bPPg*i#
      zq|O;LGE3UJXBgr#WAZIGGog5D1{{tV!=8?Go5`4E%cRT@<U5&2nU-n4Do_z_7!~kD
      z)00xeivrcI{`*iRu(7SBy`}AV%aL|J0;twegIa;glSQWLaKT*4u#%CuoiVLsN5kkw
      z&_^9!R0?bvFfCbdZp4^KF=xSnbizoD8uXgqi$ZUByjwZt@10M`S(_=&YS_bMIrL^a
      z5*u26@uLFu%9EWM_6h7+>;0t6M0$FMho!-rAA3=+J`U(Oh%f`sP%f}H?3VK))TwWW
      zAB||%&?K<?`I<Top@sD}vr&3(XL1Q!PCALc<U^}KXvRoQr86^fGUVQRe(XlIGIvDB
      zQM5DhNofyAD``(VG%@w|ijHIIZ4=){jAS%rWV1?sLPv*^R~F<-bV|poc#T!3sMxDp
      z8ShH5h9<7cgx#URr>fPhgEs~2(b0?3EChkQR)Q_UI6UEo@oo)g1P=bsF7=}i^@{nd
      zj*alE^bhJdhar+>ubH!oGuAMw;Q}3V>sUX|7YIglY=TaGd)mwj9C_ZHxaXG5ugOv<
      z6_aX8>esJ)p=pSzm@`tW+<*0mfS3>nFkNK@?ZjI;-d08MCQ@mO6{w+7m)r0+xwhhZ
      z<G-_<=GhIftyE{19bl&mLt5Sq#nIKkZmTU9cjwHMGe=jE(r}G4y`tgtppF?#G0F5x
      z`RGR)*EO)lfpRJx8L)`joJ!pgF$cnHd(y=*Ka!~SVUBYV8V@;J^^}s$>$rh;+4;uo
      zth89(Lv9Ocji?wAY2U*K8r~P!u}=Cg+Ga|}hq%S5v(snfd?|mmTv$;TPkp$<*0Ic#
      z4<B(qhFq4t<M}7b^Lu3uubY69!#;c_usyWi{y*iz=lqokT~-#p)FD+_{PA=ylaQxP
      zwP$y@k4TF$h<c7&1%E+3s8h?Ex1d@J&dDKmPR=6FN=i551?q2cesL8F*t~?mSTMMV
      ztv_Mgj}&acc7FPKf}2Z68+JHS5Xkk-+b+i(_p2fjChuNKo;EfuBD93PV?6f{Hs|ru
      zxkGt0JWwWfj|C%(IQ%;WZQsLJdVD$1`4GE!IsO1OjXY2OfzAbVIq#3)YZUxa(mSg3
      zJP*;#GkU^P=cx#^jx;WzZ>-L<h}Z)9)k|9*1FPZvC3r}|y$`XCkn>|jTZ<T8K)k3L
      zUkU#bLj|G?tcMxvLlw?Y9>ae0qX}oxiXrZb3%m^@j*EDMe<o3Bj3b9PaR--iA6M`#
      z419-4{D3L^N{v4`k1Cx<3n?RV)TzQ#yw2(f+FBsf7`>>%WAcr&N@?sPqt8kCWt=Y7
      zual?XS=0D4y8c2y9eG?~Opo{<(c|SvDjlusj#a&YC|VWtZKB8)DYAJ<(_aprTLtzm
      zgA)vEEjV5dzUc~PlNZ7F7@>L_TtadzDDp6$z*>YI%;oV;A+{~*2%LC=n~&fP-ljZw
      yxA54X$H&1>3-`FX-{(D#FIJqWaT0wCTX7rBEXy(6Wf^a+a%yndsjnQ=*Z%@|h?wXA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/BasicConstraints.class b/libjava/classpath/lib/gnu/java/security/x509/ext/BasicConstraints.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5880c34fec001dc75b12e53f4c490d953c57bf27
      GIT binary patch
      literal 2690
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/CRLNumber.class b/libjava/classpath/lib/gnu/java/security/x509/ext/CRLNumber.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98b5b2fed23c85ac831f0da985ae7d487bc0f241
      GIT binary patch
      literal 1879
      zcwU86e{&jD6g`iGELpc{L))~CHKhveLRvOWjW!Z%%a2qd4K|6i6l>kU3)#3VnPtgD
      zzl>i&M++S@qy5hrKa}Hrj}3`{b(mT9y?5`q_ndp){`L27zXP}fTS0&!T6fyUo_Syz
      zEnaQAmiN7JxU{fr@I%kYY!uepjcx8K7-vYlB{FyDai?W9ooLCl+ngbg&oW#p45t+H
      z*%ZTsBXJpK3i7yNdb>v2s^=Y#*SSj(p_Qs_IhJ>yVN8#g7{)Wr8dq?J;o?Zt5Y948
      zE+&_fi_6Ky1r-{mHH2}Vs;&4)7xi8_+jQ#2rsrBtJryraf=)C9F~M-QU^%=;ddu9l
      ziAlK7teSSobS<&=H-ma5Et*nuhgH7s5%HFScNxx0c&lmTi~SQ7V|Y(=a#_VSTvrfb
      zxHe3o#$6+u+t}bHy=izK9}s7kRx~3~ZG@J7ij+L1B8Hm^ZZOQfJyL^?IEhl{-j-RH
      z^5#RBr{)``z0-6XycX$CUd1e?1$0t_fd!firTH_ypvO<iS=`>^RWGGrkxoVpRml9I
      z1_dD^=IvT7h8rVD4ZDxrpm3*3<0mZwl{B?{VA>3k|C5B_iay$3@sgOzr(!B9xrR8c
      z`-Z%HOlsJYDuv~a`xw{bm9(Ig(eN?u35jw7Zk0T(=ZAF>6=V2Z!vj22v4$@c+|y7H
      zk_M}G(;+=WUbE-PL1}%bD)^G_)ZliyZP_(3s10l>*dz;|L}YBU)za`4)=5G^(rj=Q
      zPf=FzjN#lMl!oW1P~?G7ued|=(MJ#&ZcIfH(;<9AgNalkV)d;C6We4mbAO*ZB-iax
      zH*aXm=OO`X0)h`@{$~%znIVvRfyfJiU}<<Pn5&!3wp-<^mbkf7eOo032CmZx$LM<)
      zz!mWYptrEFDE&{+a}p|@zazhwA__Qj1g#vN>f+olxbU+~oS~;m{~#l16nIJQf)eS@
      zOJHD}R<jc52LcjMdSbqdtMjih_xM%^(cq5)dbS)+baCsC1Z~}ZgFCNq_oT+GZ0`ZJ
      z`H<?R2|a_W$l@k)vSy@*izR#{Th)azsjiASEaMYG5gny`LaVeEU8+=YB{Bc6N>dW)
      z5p|s>3DzX~OfR~Ru1c90{qEy4AJdR)Aei_ScYo@`O~}nB5=QF<_%KXd2S52K?TWJ)
      zC8z(yOyUT!vP9}4+rgt(NQ;vW@^7$q0^aMjMBO|ig`S@(66+Ts8~8=mDO#LGk5DX!
      nSqD#EqtwOM;TIje6tz02hIi<_gWW*_FHd1d``CLj>brjcAMKg{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/CertificatePolicies.class b/libjava/classpath/lib/gnu/java/security/x509/ext/CertificatePolicies.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f562f35fb3d56606674219a955b465626dd4016d
      GIT binary patch
      literal 4908
      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
      W4)CB2a;*a+m{>K$#P@CQ|9l7ndlKgW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/ExtendedKeyUsage.class b/libjava/classpath/lib/gnu/java/security/x509/ext/ExtendedKeyUsage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4dcb1c8d910a9e0554e934bbb066e3736bea328
      GIT binary patch
      literal 2069
      zcwU87TUQ%Z6#fngnJ^u00b1Ky8W7t+OVS3R(jaO=Xd@{>ptJ#LJ7f-F=wv2MW-zF~
      z#1~heeAT6fDr@PZYx$$peI^6J0QTjaGyC%G`<}o4{_S@FckzvcHilb8(~0e>dupu8
      z3r<D1_hYrmJJT^<vt#L+%}tGK3w-}^RV{J}eulBPDO7dK99dHhhcmQg<`^zzPpjlI
      za|s5y>{QBDm1ndnLr>Nfactd)W%a5}{NPN%&`sT*W$;Bt*BJaMOCvWr83xY845FK%
      zBOaZM#;2nb_hcyORS-fSLtw^38i+Iu8LC-~t=JXaEG9<RIzSu+?FcY*XLXY=I;AaM
      zSyi_TiX)V@3aYWDR&??05!)jhN#T^7t`&IMrm(9Lt}^tw@VXVt<c>Kqe7Gh&c}K!^
      zhU=%j*LWp1mtJ1xD!pV3;+i;y6}*QL3cNyehT+KQ8Oiii-JB<6+(1OaO@_h$msBu{
      zF@{dPnj+8bic_$;<|cYQh}#TTORBMLRZ3h7Q(cdGU}fL5)tZbe=#>y-=s#IB^Cj0r
      z>10H4S41m|v`#3H5EOn*Dwx7Oszs68t7_3TmI-2-;bPMmSz0=33!#)yFoTb%8A!=%
      ztA0vDvxd2?U0$#g7w|DYmGB8e*MA#HK@uslrD|GB^*znebzvv1U|u-aLw3?;ff`NA
      za<gdf2<Aft8NuuzW`jyKv3GRp+wn6ha_$IGQ%k%7PSdfGB)6z03`6Iawb2oz*x?8S
      z5fMZ9ZEZln1~(a4hF*KBL4_vQmrl%E=qQQJiIedZ>k{&mrY0w483tuZw6}r{d_fs<
      z%#x+)+wL$l{27k4Vx0n~3ffj<-dZc@O`(Jrv@Kf6Nk=!_k=TMJp+Mu=lt>wBmAvA3
      zMtP<97S$4$QG_mm3e?jIrC=8?Nper5D7VdU<E(Bt?U;<`=naC>=?ia!#aCIuD^T46
      zYPn1WrY<;ZtDGWvvABS?fN)wg&-LL*Gl(y#al)GdVPC<fh+JN=oJxVu>tZVnw6<JS
      zKw*dm(MNl~4VT4|qgO~wCEb2HJ0KJPg8N?(Qb6Y+lzgb`06jmU|3_ExBAqhbz%=dE
      z30!iiAVpehF0cS&v>FJA1qeu(sf^t^z`KVS%+noybi0nB#qm1c|5li|k`EDe{14xh
      zf9w#^`~mL#g828C5@Pq;FSpn6K~La2PxM0}I`%W-f`0#3%(mglfM0yfy_oV3_zCvG
      z>wo@idOM45I+GM|3SF2(AJXLAJVx*UH}Md08tO?bAb~7#9wCQCJfm}m=&$g(8{upt
      z3VcR#a9>%Hq$LB5q;q7ck4mvb(mujmz%o`S3ki&4m1ylG`50?na^rL}x`QH!H+b^H
      zv8Mr-{?xUoG-N!BOw`!ZUnCoXH*$#Q`4Fo^eS_@-7@<-fmcXo|8rq|G9ko{M%@f!o
      L$Jk%FQeXcINigz;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/Extension$Value.class b/libjava/classpath/lib/gnu/java/security/x509/ext/Extension$Value.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d8e83288f147b926c6ed07eb8a0d7dca72e8a9f
      GIT binary patch
      literal 1195
      zcwUWDOHUI~6#mZiF|>@OmRGgK3ZnLb3<#JgXd(n6Nuvv}3)nc6n|8=J6X#*d-e2L)
      zl^YhC_#iF_Zv89%2ld=(DWqURn%sNt={etbzVF`o_2<VCfLT0Hp%BUqJJ9!xw}$SC
      zdf=M=zTR4xd8mt)udlXzVSA=yPu2`85GtaCbXaQ{c0+%$vnT34K^1o0*%iA4WqX+r
      zUovgee?o{Ax0g#bLUe`yO(KGR4JtH3q*$sYk-~tAxP~;Ya&6smY(W?*ma4rBiwO`0
      zHN+4n3{*{9JP%&)2zS%ivA88ub?SyyGh9=iJIScuG(Eyp_44u-3CV`=S5L%5izO+i
      zuW5KqsUVzto%OlG3oO=6d?1q(;!R*!%r;y+KYM8_i3v=qxOL)P;G35I)OC%0PeTE>
      z*+4dmt=eKZN9s8T!c+LphVPnoqt~K#b}@+x?x~m}<o=`hCDUq{hEC}BooAwTf;Y<S
      zD;Ger9UD&I*2S7B9ZhxZnwF&mZQZtoyJ8uhCp;DNgvra8&37Hzjd8x!2){&jT3#(j
      zagJ5=@tWXM6$<}=boo1y<;pi)IY#O$GM_o8V2Ib0>?ehvWfTJx!!YMY+C99F0$~&j
      zaij9-b&z%5iT9X9K82HIAT@;1+65gLLKfG~HGe_oQ%`g1!shG9b($TXSZW@REJYrF
      zL?)LmG$l@c?$y#eh4L~!`tbL6?w|`i!a$%w{#J*e(l7>jFVILxbh8cCAyW7?<uMkD
      z&EW<|3daSmYLjnv49!-4g5Dz*IgoUfV-RnL7(eA~8=GUkJQ6f^#@KAv*evegZs<i3
      nr4GY<$OyhJMod3CM7h_Xi8BTzyK~Qk>n!evS&2D^1tk6f0f^QS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/Extension.class b/libjava/classpath/lib/gnu/java/security/x509/ext/Extension.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db1472dc5a81d5a4a4122ad4a3b9c241a71b64f1
      GIT binary patch
      literal 4712
      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
      Jv}eJ-{2vmuya@mR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/GeneralNames.class b/libjava/classpath/lib/gnu/java/security/x509/ext/GeneralNames.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fb83d0e68ee41f07cd1cd8753637cc320acb7f0
      GIT binary patch
      literal 3599
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/IssuerAlternativeNames.class b/libjava/classpath/lib/gnu/java/security/x509/ext/IssuerAlternativeNames.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15df55404d86302f8d780c0aba4aa3e40fb35802
      GIT binary patch
      literal 1334
      zcwUW@YflqF6o%j7wq;#z%S}bFXoa>&mvT|CfKqN&oAv{y2_b%1%2<~yTe25Y|CL59
      zMiPI3KgxJ!S_&zZ_+@u4=REVyd(Qm+^Ya&gB;F`!V@Q^qz&JL~OvB^Fz_t8OMrCPk
      z#o!g+$ar4B-3{C4u4DSv8PAy~+*8oO5WgjDyW(@lv&v4SVA=s^Xv=IdjAn19<TG0-
      zhE7Ld8DcFW8qi(taM!e@0?G-k7H!M1{B?%*Xsp1{u~|Oi3VIlZTb>g_A4B(iVkt4d
      zl1MJA&@iAu#~?%3YMnG3&B{F6bV|ma?^;eN6)SXub~JRNi=i)TIXoAf9CG)ad1%w!
      z^lZ6k+6B|K#Js-P89hh~QR;T3$WMK;f?OM87?gOcY-I9{9Tn{u7fS9bc*rpQpB|`~
      zz_^h1NP~h98Q_1k$i#))Ol)0HvQyzsk^DQNS{<ax-4ge6wW8?JSk08cw`?P8d45V9
      z9oI08C`J0^no$fxmyy@)Q;?w2H!r6H%Rb_+iaE?HNRqEt5u3K@c^Ve*lw{R)s93^t
      z1<x4zn^78;u|kn&qSf*r7^bclF@Jc>i+-wwFcq^H2w|1_CwveVvvmzG@rv5PJU!(O
      zSuxwH9d0bu?;?R|f!J)y{HKP?%n-K8_wai`*wrv2Zm#Z?1GmU`EYVJ5t?QN$Kul5(
      zw9|ub!#&ZXG}1*w(7%Je-B4-&j(qSU3h23jwy*b|qyH<0zR1K8`l|E?7U@|eFe+C;
      ziPV)6EMN@xB`8N@v8%^t&ha3Afr)(@gui3*iq<O+TO&d17$8psaio@o$B0NFI-X#P
      zs7!QHUF5u+1EKggOjZ&5+#q(z^&LslYB6;Z6OPsMb9AoQi(FuKUuRVqKd^X?7ka9S
      ZwHk9n-=c99JI(C3*VvH;`?ZY9`~`P8FJ=G$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/KeyUsage.class b/libjava/classpath/lib/gnu/java/security/x509/ext/KeyUsage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca69c62a4f717ecd888097e3ac5804785afa41b6
      GIT binary patch
      literal 1954
      zcwU87e^(n-5WO!zHY|&@X|YnZ4JEW8wAq4UMX)s_+jL9VV18+eH7;SBF5PT6$%aGy
      zGJXX;YUr`&sDJyRJkDD-={5=VpX|HyX70?~H}B=2fB*OszzU881Q-_Tc1J$ck9E0i
      z)H*HGc`2W)-CdWB6Gz@QUY6Q=-4HO&5PyfGa^e_v+icp=vTk(@hJc!8xRM<X$*JiL
      zhKp%6qZX6dYC+9t$zmz5Fff&2I@Pq>j&3_H%@~ylh8ZoVRrAVjDXk`pYEI*3#&BU<
      zsZ<p$rS3jb@;i!F<n{pPP8O3x8)HPy1Cp7%qV$a8o-w85i*700IKdD~<+FVpB&Qx*
      zHK%1O+$fMStqd4L6#2rFjA4F6_XkEx-ZGtn(=zQk=@8niS*C3|_Zh}wOJ#=fRP%u3
      zo@baHsa*&Q43n#gwZ!UrVr5N41d9@G;ub@2(_@;AW!*SSx9hT(YN<R)N-jy5;Qh>G
      zP212qjeVn4)b}kaHk@tNbgQhlOpZO{L~L)17bPkuHRH&k<82F&87{f>W>Z#k{T&fw
      zSmBl27V!zz1boVHeY5~+C7(BRT1of}_o(L<A%-Z=c8+Eg;!ebdh;?iT_=4fuyFDdr
      z;!6^xZa77~?#io%@PImP=+?7lt6>~OdgCo3fkn=|B_RbG+z>^1gM2x*<Wn=Ze`wSk
      zD&XO{-Sv-`3;syLhxmwEbe@}ShQ$%>4P7=G3&F5!GzTO~U~h|RKh`aV$p2}>FhzB5
      z_XltxcAlJXjiA#!TMzc?c?c-dO&&CFbxezxM3nKZfNyA|-gu-ez1@~jL7qCHiZs1J
      z67S)ufbZzq4pK?@9#!%@=1t_DG2Dy|D?Xwy5d|!Uuuu9#_97e|NH9PILH+2+ut~i;
      zqi({G$?L@>e9kG%fyi@f=tYL`f{rTklruCWe9b!-3(ZceW;`_cO`7hVN`g~ho<@T|
      z7*m+z7m`+U5D+5kB!9yo5}xv5iSV=!zejk+hc6Jm=)+;cmwfm#;aMMkpYRnQ{($hD
      z4__q)np^%tlJ#R;qn+#Se}?-cWBN5BmGF&IM1Mu>7dIqMzao8sdsOZUmR&1<zUfJz
      z)g70N(M{t-KN1nAip7^tad-I@R(Ec9@p<qkPMxTP@1NqUzv5&{{te}KWZvYs>dK{(
      zY>z45HWiwsLU(Wrnwv9n#!DWL-BM%Zlcl^OHL*iJ0b1v<>op|Pm(h13{u?qs_mc!&
      zW633y&Kx{K#t+vE)+iO<i@rvo5@ubLUg60pehBMb)Hq=m_3$CByRZhipZK_=eQw+J
      GYW@cUC9XFB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/PolicyConstraint.class b/libjava/classpath/lib/gnu/java/security/x509/ext/PolicyConstraint.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79fe36cc65dd54900e74a97a7185ff1c7d2614cf
      GIT binary patch
      literal 2187
      zcwU86-BTM?6#v~2vdg+yOi5`9EdgsA!bcD!%15vbq%<{!7BCtj>L$4)OP5W$*<kS5
      zH)nit9G%Xz<CDDjprZ|r%&5=)QR=yy2u=v~<?h*Y&hLEu&bjx`zkdA<!0R}W;9?jp
      znAPyEwy%XNJXf`J`ygDKnVb#tnjL;nGW6WRQpv2?mZqDw1UEzI1%P<X=4M4Nnb%XA
      zQRNJ-#4<x)@+@R6u{_V<v-snxZt-}nOqq1Mk&uBU7<zTHsAvDx-Pg)x-7GN33pqnK
      zb$gMaBRG;`a4(heT*Au~t!)|^Jq%q_6EhQ2vlG)11>NwfxQJc`&q6bjFPL<2hGrJR
      z8@5H6=0{RpV7R2B6CQ>ON!{eD)x9jYHnprlt$CBBoMxmnOBer5WoIxG6GbWUT8@`(
      zVxl5pfZ?JOUN40cYbO>39k?bc@k<CW44$n%&#mxse0`m3Bq<ogHF3PE;yPZV#x2q_
      z3<pQr@Y{qsW0+TP6C)CW4A)-lsUn0?hHkym7<x5l^Snd!mW*+R{yojuDOr0wA86f;
      zih_Q4MW#uWmTQVQFK|1_&4OKYA|!<E4HYxO<{{grR*>)}4ce(^PqT~Rm|jSjHZO>7
      zZ(>%(9B4~qa&GQZFEx8QskQ7b&)M@5qO@t5n1YC4D1uumZi_53)#U(XEHU_Xb6+#`
      ze4y-<9>|^4E|SGn+!2@_N)|VBv{U&;@nQ?^s*oTH>7I%%$V9$f)GG|*ZKyx@`cNwp
      zZ-gdBta6S{y}U;!&46L({4q8*fbcE>3jE)^DI#@Br@>8z%hb_&`+L?$rbPQ|W|tcG
      zpq2CH?U0Zmc&j>A)eUD=xABpL59!*RdMp`QrJ~|vq=^Q~yQ=MR1zF@JP)|Lrp;U0}
      zkmtVWXpN*B!LyTZQ<#D+cxC7`??5Kd_I-&8pGPVT5ceMHn42_^@pf;(8CA1GCrwF&
      zC^HNM6X!e1pwV6mw0q2=GHe=YU|R&+SMk1}M%gG;tsK9ji|54Gx<V5o4TfkDJLnDX
      zfM2{$BzeVtI^Qnm+exQ_m&i|b-g@B;bRVNT?Y(e>SAK%;M^d=ZN2fwx(6v!9iOY@_
      z1f+L~q$?!5>91b|VkrtF!aoa*9^tAh>RLR;V4CEiIk(?k$M9UIzq5`TPeiKzw0G<X
      z6Tb^hI3gV)({S<lJ#|b!f&Unhw2<HW0}Dr3tmEzIA;ui5``dQr#lvRYn276>gmpO|
      zk$lqAzrPC&JjY7t>T@JcJ6okLfLlbzZ6YQ{e@oQSGKLYy7*;TiyVUnRMDY%3lE~mb
      z@`U;n5AYct;tR5WiA{WickvV{hn@8X1B6IAq&_1|lo*omH6dln+=Z{OMp6gm`<x;@
      zBnGcgymf3)B~kj{B*{bBA5mPHkc?taHHQ_ZFB2mS{fw3GPg?Of%5A3vwc*e#f#JQj
      z;6y7p+ZIe)*97lS#lkjujIFen)$zeE(2h{>7VFp*)zo2nA2;NLkSiqDQT^d0kC!?H
      X3g|_Vo>ZMUF8n9w<Vns?97OFO`6B??
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/PolicyMappings.class b/libjava/classpath/lib/gnu/java/security/x509/ext/PolicyMappings.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d1da689c97ce7609284a89d2796ab3cd5079e9d
      GIT binary patch
      literal 2433
      zcwUWFTT>Hf7=AvIuwh*hf~c_-gQXZy2}-qcsI8nzY5)<$BDK0COIW+vrO7U0Pxk0c
      zd)qr_I-Op5(+fLogThSP>;9;=&$kI8A!u)QzkLtSdwRZi|NdwF4*;ieUqOvPN7nWd
      zxAhf0Q83b8-gNIKR?l|#CX7`#aoMrV^xbiNdD*nH1qDHY&gYnqth$C>Fde&XR<}Gu
      zpe8via4@ygWimP3FA&a^kp=dpd;`xltpwvq<v`jpZPUFV5Qulo3IvCojG<t!Kyy{V
      zF!l-5o#{H;b*8tgr$>c`Mhy`(3Dgdhk(%SBIF@c_6Vq;<!TURA>p+c$5Nc&2rfp1k
      zxdkIXqc2!2B9d~_x;3lkP5E6GhT`*sGAVUrHEk@rteNe3NubGxH=RUs@~K8e07qmd
      zhZGzYIJz_YjFC?ak6gK8=sc-t!4dg5rr{N|vG6?Q0>|PVRXSOA^&8%=q8)Js#|2uR
      zZ>gaJodSE!!Voie^IqCDGJd14hjCKiP)@fNoqW#7#I|!l#bGomNC-4;4Qxy=EYUzk
      z7f#DM)i8QE_gye#l4muX!|NPO)^KO^tRFck6}=kzAg517nMC_p_twxR7j7GAw_nD3
      zL&F8UN#AA96*wQ?X|+>Q6{;N<H4Msp8W?uOPLpVvlwoJxC8-?NFd~(8RBlS&MpD5T
      zX|vUZA;+?aC#j&}9b6)pJUi!P%tfC#tX?1%ui$w{#kZv5xCRAb&fQ%yc{NT{nffj_
      zl#Nr2Qu@4n^MmXSr!LUCJ8?>!qhpYlk<nr=;utY4!xj)pcI4*P4Q_g-k}@HrZBCXQ
      zSkWy3%`6l=BVS6H<STgo05-o5u)WhI(Xf-#O?y+(9p7bxRJ#vSz6Uze3Kke+TX!{N
      zKtcr=NT9t6U#hT!_rH|(_MF15Q(7OD{46gO1-E$vD#e4IY56zYf~_D&hHP03S$cuQ
      zaj?W8GQ$ZyXQ=oP+$)@5LnV|37alEF<WMFTUtCW)F%>2n!&qe-V)HTi^^t~;@d@uD
      zM`_q3&Z%lka)+o~ix2pjgt%AXxoZxao?(1Jmd0*Kgs(JYW##I$<K@%Fs416h({^@u
      zNg%ZHh6MQkszFq4Y@Q<Wy6_$3vkoftd;I^Kv;y{SK%0xyuc6^r?El4gJiw>QH_*$U
      zL=O)7QqYk*+6R_kf~$@|;sJqFO4d71tl{Miw9N4x8$Ve@>%^%dUVR`#9G;6%dg{->
      zx!?x6=GM^N7kY?0(x|UCTKkOI8ENLrm8eq0YYnwOKC6+k^M66>3;z$Bx@agGj@A`1
      zaIHBgqr7$NT(CLFtcHI2_kL$I^cbVRBehla0_y`;T?j*{$1s|>*$!hAZCq%_F@|m=
      z*^f)?O9~e;&eH^@Fo}6whQX7AEATLldzituxQg#Fiyv?e59#*^b9jR5em56O9i#W8
      zKZJGqPqCx*_?ZaP%%+JxGeih5u0*-Uj(6ibyi1f2<J&~K%JEK7H_wy8*yr&cC1Kj{
      z#|@t3vV0#m%L5-Is+?kd=Wj@zc!FCsV2>U>t-Y3Z;AW8d9Vl5o&99yrOTCaREaOcu
      yH|f!~0dp=Qium9$me;Tnxl_bl8Ka0#BcJnJ#Fv#(7X2t%$-f*$;A`LNoBsd?{Z@AX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/PrivateKeyUsagePeriod.class b/libjava/classpath/lib/gnu/java/security/x509/ext/PrivateKeyUsagePeriod.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..483ce3ea57d3fd42f5d957690afc48264f832708
      GIT binary patch
      literal 2082
      zcwU87-&Y$&6#j+)8<r)+rL?ptgj#D7AW2bL5ok#W*hol_A5luHZjwn@y4l6ehC`1p
      z_TT7(`qo!HYUnBFs82rlM|r%n38X^6mzleF?)~nsZ)X4g=k@OZ?w~56gCSNnYtcRJ
      zK#Nv+p=RsOv*_V;Y$nPNo#>jaA7~C=;m@|JTA8nLTepf5IvK*3cr6_|+^p)Bc`K(G
      zHO|nHN-|tapLfZolCumwrsX7f$+F4RpLQ*3j&4Mg6q=5`bQ~`^+$M3ZVCbgq+-L9v
      zLpg@dMXSgq_!tJ;qI=;d{He%vWNIdI=dO%Cs0s#fg`s<{i8L58Rs9Nlni-7L?B
      zay?+Us-O$q4E<@{<e6F}&+SbuZ%~?Q+A3&9PP29K-Bfl3cM>8gdFimg_Z?~gb@*+D
      z0T*7kqN(iZi3|@$L?+iI1Q<roXJ6!YG`Y0C&NY%`jABGA?<%;3_o#52^b9wHp*C%8
      zy1Lz;mGM485`qjPms=_bW1OK+uP##Nj$JD_yy!Oikr$JcV?{G)NEKcTwB?12VW=Wn
      zOd)bjQQynlNprL8?7Ao^arU8tX>ry|XPa7i(a@?@p}(i#BcbnZ=!NQI1+$o=c9P0X
      zFkThIN`>ASS2n-L3(l+rnxpT(%n<`zP$0o8q=bSVc&TsBu1+vhZMt?j>xqaGHw#2J
      z>Pg2=f=Vh1N{(IJ|HkOZ(Q}{~41xcf6oW#gW?Gj)4TjEM2O0CoD9B=s_*O71lgzFJ
      z+q9(7;!Nx6I97w(XYHGem#{^5^sG8j(+!t?pJQ9X7jzX`7Vhj6Ji-RGM#R!8T*hO3
      zDd7oS<g-u;zQWgJc_3=dmKbga&u85xF&Udsy(kbf13Q7!r(#~{iL)h8Mcvx|J~wGF
      zlkM*EIaRYN7g`q(duKc^%;v<?3mT{#IC+`oy)cOtfhPiSU%|TQiM(Oe>;hlb#oKVB
      zEvX^`A7jK%55349To>;RNvfc&yZ5+z7p*dS$xd-!Zeb1d9iwks?LWd>zhLlZQgq-N
      ztupPvJ&0R4<Z3~V^wN-YgXB*78WuoIgzY5F^YHi)-Z{qTHtl1p6Ls9oOxAJxg$Oac
      ztxg;v@&_rR-@|)y_<?`n2goGceSx9yq<^T6nLjcA8y>h8FX0U{`Z%%d6_%YpV&F~F
      zc+)E0O8!3jX^m6G3HY!`X(uV^C3^IhF^*3V!$U0KQ><bITgVXmvUrNm@GUj|JJN`P
      z!;PZIJL&f6Ir%SB(LPiO;UPsDfQb~Lcu2c~bhEDuv@_bThJVF_zu*^J9jlb;OZw&g
      zbedzgYxUTTr8GR6u^4624lUk5i(ibUwM8QyHPP~Ju0ZS<o7*a@BlikBN6^%K9mPhX
      kyXw=192ath<T|WY9G}aY5{<r$3EErnVyE%Gajort0j*@_3IG5A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/ReasonCode.class b/libjava/classpath/lib/gnu/java/security/x509/ext/ReasonCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b5d1606ce099b5e33f0bb3fc62dc750c1e66a06
      GIT binary patch
      literal 1609
      zcwU86+foxj5Iw_fmvs>c-~|z*Mo5BY0YxrB#c<JRNE9%NsIY`FuC>`vn+=8E;)5?f
      z`k<u-3#-&;KgzOavIQ1IeVLi<={|k>bkF|$wfhag5Y`mbF<i(yW#gr}Wf~=(E4!BW
      z%Ge$m95?v3XDo2DRCK0`8(cvHL-Zf6v)dkbN><ScWlg)x8S0WV498Q4Lo&&kI75>w
      zu^CvBL7mLmmScI>8S2B4EJH&zXA47DO#l_G49&x_k=XEfY<Nh6j&>aZbP({QkJJ@T
      z$vE3|^2Va)T24M5$u@&-bTp!gp*3YWJY6oVb9c#Hw~2HhRm_=o)^siL?He1zD+xhL
      zo88XwO^<3UDLBQ@A>pl}k<9GfXsE|&!Q_O7GdQat$Z+Ox2^-usW@Z;iUpnbHhx1f3
      zDYC&364`3V=7&gi;~FlYUqK&3@4r2Dgb^W8^4wc8^HScViUA^DFzx3>x4<`o(+jC;
      zqcwD+T|mcl7#O6!P?+D&&T!-pIWy}odCrR~7^WL(E|}g6BVpx}j>q%d)o8x1=ok^n
      zRm-WO2<=C8C{PuQ({LPYPoiwuL|z5WN1J8aJa5{;>YPjjHH-;zW4Ny42BxScb90kB
      zq*zZl89CHyA1f{*5;~?q)2MpI>gB<5{OO<`crUCHLw^nZYdi`HP`Hz$6S1gUNszo-
      zrp*xiU;7wZNZEZL4fDt-NYhB}lbW{8Qc1@>!CWEtv{@j>1uQ98Bz+FD*YN-}q{^1a
      zka^C~7e3su8bzykM7)D5QsBoz+ZBdOwcgHOHCFMI>JQSQEf&jej?Y=*-L&o(7!#p5
      zOZ~5>Ur!xQiU&xib}<aJH_+M)jqZ=gUz6|xTE0SG4jkP<+edVMkb%c&)o2Gs>CF$}
      zxU_-->B&i80mf*M1<)>~5m0N<fgSV=d_nL0#R@`g+8cr0y&Q<{;Ntfv*)ILSPz9Gi
      z<7)I1uD(W>*xHmg(B(mUi(V1%6=TbRi5*M|YX#RTxG50!xt){cOi|vO#4~{on!MAP
      z!2o7yox>__NzTD4FS5?bQrF0Sn|N!;B8fYM#&8!AUl4<KMth@3`))5;lQgC!pk8(G
      x0ht(hKR8XP#9c^|XBDKr;69ZQcv!)*Uq|2xovE1j2e23azz*$UKa*aozX6ZaaH;?R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/SubjectAlternativeNames.class b/libjava/classpath/lib/gnu/java/security/x509/ext/SubjectAlternativeNames.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75f97382f946b0be7b70fb5ce7fea33199f38f36
      GIT binary patch
      literal 1337
      zcwUW@YflqF6o%j7wq;#z%gqa5(F$#mE>sY)fKqN&oAv{y2_b%1ma#5bwq(0Y>c7&c
      z#Yo~0@JAWXOiLl95Wnos<(y~UdC!?Ye}DZ3Fpswi+8B~WH!zOOQ`0DOEAVXpvr$=`
      zTQ+#bH+F-ABX0TYj?X>U^zBogGmm*$K?g(pmb|Ts&)u?Jaw7%P2{=PrW|Ltwdp#we
      z*-SBXx&q4(YZ1|a?r@iTrXv+lPH4q)Y}fYJ7}}$;0z=0}>5wbvVHj?CP6&Mr-O0pa
      zBDtKHUs9oAK!c7!hOU)5X*imdd5-B8ja}cf-C`<M=mza*=tLJoU)FYcE;v5m-h1=F
      zp}XnXl4Uvt)3e3AzStSvPYY4%R>k5cK3PGoJzyA=c)Mg|@{Ju8?HCtI?kaf5F#Vq%
      zsF=XGkoHJ}f)E+tf3nHMh1*QLp`zrc!d;6DJfvdnr^((T_j9$X=+RismB6<hBWsua
      zlsG%CVH#12^h-6T7=|t)ullDTLA7sQP6xJg$UPNvNGg~oV=p5%9J5^3@C;8$R$YgR
      zMJy?J&d}eC((nSy6nQFoE&q{W>S`79^1`VW!c@#+AcPfapzwZJ%+@r#!fWaW^W=oP
      zWW{W&ez>+&zl#K>1!AKq^F|F9nIUYE@8J)Eu%lr{++5u)1)jyXZP8C-Hxw=*h?t}<
      zXs0*bhI^t*X{3vmpnnH_yP?wl9r@-(6wq@HZBOq#L;p7neU*tL^i}B(EYQP9U{tPx
      z5~(jGSil(WOHhu+VposPoM9|}j)^@QgnwZ2lGZB^TO~nj7$8#waio@o$B0NFI-X#P
      zs7$m{U1U<ufl&NACaZ{jX%M^Q`nDu#wU|1I3CrsFIXYMDMb0t1r?V=IpIA7<OFdP^
      ZYK^(BZ_>Dm?Pm77E9^*v{YFM*{sCi3FlPV&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/SubjectKeyIdentifier.class b/libjava/classpath/lib/gnu/java/security/x509/ext/SubjectKeyIdentifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2bb8d26c4ba1a1f699b3909aa0ca0642672613b8
      GIT binary patch
      literal 1612
      zcwU86?NZY~6g|sVN(cfKMNy$BXj-(fC@K~aTZ&XFRX`N$S7?_S4GEK`Oz~xW1s%0z
      zbVmK{Lpk0J5fm!^$!>P{o_p@OXZOd?&tCz=@IpcZgI2W4+ADoS*GfEJb_{n@tBhV8
      z(|E<z7RoEHc;21mo9P0#Tw~SXj)W$L$N@pAip#B%VOxVsx>@E74e2R{p3MG`Y<eor
      z(Ej>Qcsia-Fa*Z)rePWG1Vf`5USeoU+66A5o#9Abpa41;T1TRz(UGxe?6M36T?&FY
      z%+NCKBOOsQUYx00MQy=#467IqFSUYp6f~oSp(A5he6GB<!ktBZ#U%2<jGfobCEYQ^
      zzrWb5<`ROGoT}vcx=Xc|B%EM4?7<thmd@_%$Y{hV!Q_~Xehf$mG4$^*p}-w&Dm6dP
      zb($$SjWblULw^i|B3m8#{18v&xQrp3lW>-y@8FXPRD?;CB6k<{q9<=UfMJST)6G@e
      zS>uIJy}rxnMVH7DRiNP_wTKY>4tJ~JKa|aS!Ep%zA?+mvG^1kNmqv*pR;Q2y{YDOv
      zxRs~wlN5~`y2%jwpBN0CL~izPUp1-WTtX(_k1Mz#3TV!owngj%uDxxBy@mJ|k#LLr
      zyLUNJHq3&MC5e;-a(Kt?iKMBQN(!cNlgJa3Iem@Gn86(hY2vmQO2I5LbaF$G&#p3@
      zRrkwThnS2>bOn$lT|&8#_`9!Q9t+f6eSMu<B-n*|mfyGJ*Ft~~@K6Fd`@}!G^uRSt
      z1&^@I(B|4Ryz*PQ9x`dN4#xm;bfrU21-qvTCWIvNf?am<eA*Cq>3F@SM+FWB$Ucqq
      zR5jqZxSli%3NO*vMBi4(wBP1EW#Saj{sqc%@K6n%AJF~Y3p`3+nMU9$y$CV%c&ng5
      zx{w~Q0Au8B0rZA|1e6*XuHoeH7W(d<uVPSoE1-LqgOM7}e~Zx4h3|-c!pLrpUXR`+
      z(Y!_Z5`><_Nlf7!QeMu`HZCq>)T6563Y9=oppTecBNT=)T=xqarIFFt7Ws&gD&myw
      z-A<|&Z!6=$D%;0=SSIB4A##*Z?1jHzayiJVNNnMD4R?ccRooM>o!7UpNb}%h`c&~`
      ZH^Cu~>wR>SmxgHEO%&cq^vpZ`{1+XTc5wgz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class b/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d0fb150c5a896d548954f6e8da7b4724fbac38b
      GIT binary patch
      literal 4054
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/BaseBreakIterator.class b/libjava/classpath/lib/gnu/java/text/BaseBreakIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fe59cdb3f35d73060dae087ec167a027a38c041
      GIT binary patch
      literal 1503
      zcwU8+TTc^F5Xb+gwB52@<PJ)?6cKF;Qbka?6{SGZgdhosm*~S%4rQh6lI<4o-H&06
      zZ^Xn0O;my=egHp?A3&UQc3D<Q;DPR(Gc&)L`OgWz{(S!l;5OzJgcy2CW;Odt-_^4Y
      z-*>VzdWFx}T;D1<+}0h-RuE=r4+I3A3}J&zhOULvi2SB*>qWXgiJD-DP8z1+<QQsF
      z=~c?gTkBj!4dNOU#1zyq^qvxy9osNVXE-s`GeCugMv>OU(3*1VmUXk_Wlf}4Yr)W>
      zA%ZAF{eofg#p?DNw^#JFGG}O7u!?$lRksas_AbNDrct3D7A{bOMp24Y+vcVtXDP(d
      ziEag542g3T(9nYphFFO^1#_M6GekBFyW)uKs~VE%leD}z_iMN=g6k-FhL;S}%c$M3
      z%4KVhMx=IA1-EoY!vF?}T=B`mmsd%GAq`mp3Y*ju@pmkmkQL~U7N!t=Mc((M(ibc*
      zT-M!I?`arCpRmRRTUrwuCPkGv0q4wh*@UQ`(=aV(-m&?vVO2$Klj>GZ>Lyd?mKD!L
      zG5MYwtS(zsyU6Dav8=W;YZ(%xa4(gup{Gq9i{+CQBU_QbwRD=LdwM`<${a$?{DAhX
      z>Czz@zM}av-G<Ogzn3Iogd)e#h;g*hNprK%j?0pM1sxu7gucS3X1<{L2nmLdJ}D|a
      zxd1`+2}z$Y;}Ke1LNCJ;*SZ#Dsq_W%^qmdxT72FOq&(hJimZ_{5+!kjbclf8aC55j
      zl;+O3h&Udh0ZWpYbhA97ux`=62uA)8hRF(%eMinKs${*cBcjTu|3-csXffiqIO>nQ
      z<Ry2zgWmN=zVBP(!QtI@pVRO!Xylgxdbdx{`T~6L1eo?$GL?9TjswJ{3~$&m9s4>%
      z?~i{UAdz^BcGopUE=I?gbOqEJreeSvl`m2&oL)tVTG*slz|oH_q_K@bSftSo>9dU~
      zR04`l`-)EEfmBo_DNYo9DEBYg&e2)yIGP#w=RLZc-zOnoOKO`N<x`{dDxy-*S(!8U
      E7YWq_j{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/CharacterBreakIterator.class b/libjava/classpath/lib/gnu/java/text/CharacterBreakIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f55a8f2cc62a026b42ecf0b1f416344ea9d69ce
      GIT binary patch
      literal 3120
      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
      QysT!ol9@)NsrJ3<e-3a*A^-pY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/FormatBuffer.class b/libjava/classpath/lib/gnu/java/text/FormatBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa4394e044a5ede30ead79bc0a5cb33e4385b320
      GIT binary patch
      literal 613
      zcwU{7%}xR_6opR_W)%NG{7GE97-Hgts4G`GhByhv1;!1l%TR_Pbs*)|_-rnG03XWO
      zsRUfGktXezd(X`|Y1*&vk52$CocJgSoTj-6$Mi-a%Xbdj6a7kjXNE(meUt@iPE(Yp
      z;ZuJs6Bh7jI+giA;3()U)h_ESPj8wp0__$3&NAbcZL4os4x$lhN?7XHZsLhPTWHSc
      ze1%aj?)^3mXDWQ4+31m`Zn_*q1+If=t+2*S^1U3AQM?cYu7dT<(p6@cLG#~k0)Arn
      znKD(}FfPn1iISuRHiDw^l+05exiS{0b|*$BvYja#SpWN;7e%xuU?)+ms(s!HJiyVP
      ib92tEIjfG_*m2y&p5s1hj&&S3HgISi?U%4;3CBN$8L5l_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/FormatCharacterIterator.class b/libjava/classpath/lib/gnu/java/text/FormatCharacterIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0597d6e01836c863ae4df93906d5ef4882ddded0
      GIT binary patch
      literal 7158
      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
      R{L6KH=T!*%Wwq<4{{^^|9MJ#(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/LineBreakIterator.class b/libjava/classpath/lib/gnu/java/text/LineBreakIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c97fd54e2115c6571c4212b0b0744dc82e5a268
      GIT binary patch
      literal 2355
      zcwU86ZETZO6n<{kkF9$*+HM_VUEPqOZNZI!Or&$nRglgy<ReTlestaIRv0a|9fHOX
      zjR{5*jDPqF(t*>dK?4amK9rCcKSJUk6JugbjM3;{4Zop2_rCAmj$vfUdhb2=oaa2}
      zJm<dGZ(Y6$pc7kMunDw`WX3yoCif;g3i`f6M<Sik`*M16SG=I-l7(!}1^XRNeaZao
      zP6Ce9ST>^z)Q7?e<v5nijC5=q+Nq}sQ2~1_JFL4QP^H0*Y5`|=I+HH+2(*O~cVQ3>
      zZxfg&%>(1RhxFXm<j@#1`4ZVwa%@{NmzHPKXfKSW^8yR+iYZVL3U70x0zS#eQ$=p|
      z8vJM=NSa;(!9*D#Hk!;OQ#4xu)o4VM3kw7S|Kp~?0VlhYEsRP?dpbWb#3d99@2CK7
      zl>|hJ|1kkqIv*R$=4B0`czA~_W&a+YM4Zh^=i|eAmJvlp*fUI}_{SxQh=wHy2~>~h
      zg|(UCcxG7NC+!btXqWa%+AZTUjlwTyw$ykor)Lb9m>UnG%Y~H!b!F|WS~NU_RSY4{
      zRz*qDSE*NPxF5?&t5lNOKB8eUf^xS;L$k4aRKr5tE1hE+9>ZGl$(wwPN?Ce^o*8DL
      z8TKh(Naje&CYe?4$?1F3+3~!LPH5O5tEnN2K7Ayeu}a#gp<k9{mjfl>-jW^9rSx@a
      zISvhX2;VLXBqe5r{Hx@S67ko?(+XMz*QzTJ+auGcJj;U(8h@SYVkK($s~JwH#XPP;
      z&W{Bk)SZLD-g8#4n=7yicC4NS;4lGf@=2Hgn|PAGehCm+avpV;Fkj#r8ZV%(3|On^
      zcN4G&^;n}o8;n2`RPF-Y@u5g9O!%iv_{M-26Giv}-d1lB)dAl<MK~(X*w0uQe8dJ7
      zb73tJ*I_>Q<t&X>mPWLoRb`>hW|oAR#S`!}NOVu*Ty%qfKfAhtIQ_GbJr=SDi_oT!
      z7hC)fn8?w9cUkW#xVaQ3(avSUIF%;R8t@L_6siKg`zBEr@ODC7b#_e7A<;kuWXEf<
      znJwCaFt$>kO|!^EEizHFOu>l{8Dzvi^pUG8qGSpSbQ`;+{3uM|7uy-**ukgKd=V>p
      zjN`)sU3S0S7cJtOpr^KoYe7%V1e{Ztw!*s{L625MOVHylVnL*N8r{cmU<$Q&K-Bo{
      zg!VX#rN5*>;ba*+fi`v1<@7swi#{$yj7I$SY4jY&@+qt*`UIMkh48JjvQNPmQQ_0*
      zJtiTW<)z<o34JyUma9BfYOxOG#=gZ#0Jd|icW`c=#sWM?EuUxOhWJ8;*<>BPc!5(j
      zf;e`v?YrnXMvvVXMV6-*v6t(s*n@+};Sln87vngBmv9pM@B#KS+sn9sS8$PDS2-8o
      z;tl-B%)jAn{K1I7@eFP<N{YGOkjWI&P5U}ES&Q(!lGR3L->GS<Aipp1IBj;aI>E>`
      z4#`P0k!PFw2J~C<|7ysOn??tom?QrWGx85e`Auc6&zggQ84=aZSxebLLpO)tA&28A
      z7h^gOmG$Ate;bGqpa#Ot08Yd2TsQ<xYL4oIas+DS98r2k_eFwK_BiIvh)-L)Ic7DC
      z<kVTBJLigix)lBo(O+lNfWvI>5sH44qMu+(-{Y$~iKQq)KErODMhx$>{gZeSA7T(6
      z;aPmlarlJ7e@dA@qwr_(8qVQO?hoTU5iT&|b9znFdXbh(_!^ff*cJSQFYq%3`xD1;
      ugC9vtY)U*M_6;SX6#FYv>`o#YVs|sIA@(5NQ4%}IAy00G*qc;!oBsvNB)Dh*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/SentenceBreakIterator.class b/libjava/classpath/lib/gnu/java/text/SentenceBreakIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b3975c3ea27a63851a2bbe7ec7e20a134af2fd7
      GIT binary patch
      literal 2834
      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
      XQZC<u%~nc<Os|zQ2j^`T;^qGU4)jyB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class b/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de6b9d9dd170910cc3c770846d6afc8761155b35
      GIT binary patch
      literal 2306
      zcwU{AZBtS~6vzK72!glNj5H}zdqS;9&8&PV#VCrNCZj1{Gz+Y79R%mPR4@8Sy{MU@
      znVRVX^r4#0?!6+xVq?QxxV!s5zkAMq&t880{{9od3?2m0#V}T^)Z$zGEssm_UdEqG
      z$F3BURcD*awc6&UaDwnN^lL?#SBmi`xh;{GK?E2^{*G;qVhH5Co8k0+u#0ykiwwO5
      zvB_&?xhf?IXVUvDHDl*$QWO#;?(n=6PKqurtIoN`8W93ZcEy$}4E|VZGDAO!YC(kI
      zL!X6S^fUNklbIlnF`O`G5yk+HE3Fj*i7W)s!_b$uE8=l&J13kCo+}H6W9e$1mowb4
      z)!3W#%aXmzFp>V3iIiz*#}Rv$uoOcy*2x!DM}Y6_h)RJW(k>%`%6i<wC?*&#nG~Hp
      zXS=GHwg`r#fph2`(R;x4c1|03*;Lk@tVz2Zzt49|kNA#TutPFIxpig9oNk4n!EuvZ
      zZFa)-;EM7fuFOmvRC1oK1jBqR@m~cE?h3iS->G_m;acoJV5-TkTL>Xc*rEwL7n?jZ
      zmm!$1$qjCol_`rBmat5gmPMr~OZp6?)WU5GcVJN~Qax#Jtvg>9oOUZj$?P57k=Oxd
      z_Q<L`L%U<pEvg6Iv#^f44B_Y1nv)kvTOF36_G58HMPr;i@zK?dF8a{<qt{cHvWR|<
      z(mb6_`aVLVNAS}MFfjEEN2h*Z;8pY+2EQWmS%(bi03UtNlW+n3xPf6Bop6J25+i`V
      zi{ca^75cP?PU?pPVU3<PFmDlaiPBnbVul;cuufbtM{&kut~Hon5SgxH?BzZ)tXEcv
      zx7LAo7Uw+Pd5@PSjqgBSl6dztZ_HJ;@zmV~tybiV9yvo}|AFL(L{4k+l&dt7W0>^n
      zn8LK))KOeAxe=}7a@#YW(lefQaN{cdW4Uh3n%pq*UJx(S!3~$!?8Y3fdE^x@(}3!O
      z`Bv&{YSe5~mVpK}pjj%*1?oJP71v{+o3fn$)IbIF<Qt8#T!DvSxY_9U6s7I<JC&%e
      zI&MV^b*!}JRG?lL9eRDq>vei3c-UDlrydXau_Z0LDXpGHTC4O7H-16;1%y<*&yY@q
      k!m3S>Py@1tgu$3dt1<74#?U*(TtTum{)4fC`&yOy1E>qA#Q*>R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/text/WordBreakIterator.class b/libjava/classpath/lib/gnu/java/text/WordBreakIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1526fc3d62d387003c31af49ed092bb76ae6ef5
      GIT binary patch
      literal 2956
      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
      PMcLV1CG8C8xeopp-K0hC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/DoubleEnumeration.class b/libjava/classpath/lib/gnu/java/util/DoubleEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d26b3fe1013d838c5d521f05c2717daeb53088ce
      GIT binary patch
      literal 1348
      zcwU86&rcIk5dNlJSZEiEP%0u8P=t1=RM5o4He3Kt6%RB-NsQSpPrBIdV!Nw&)~Npi
      z`~zM*Xd)6d!J7yFDC4}{rGVwfVc(lK`_0Vv&Ai<|e}C))n86(t5yHs2?d3O&mqy-m
      zty+G;@hUa3XnS?hFkH*ARVajBA5b&w_58!ihA>?forHnIup<EkwQ4jUI1NFdRYHtU
      z^HpI!7i)xwm?2y$ofudkbT3=$w&8j*cKBpev0N_96=bGaLTAykEq9JElQ|{lDemkF
      zp>Rq}P~oh1GFq8;)<g_ZBsC;3K!|3tE8Spq8e)h`>#~LmfptYgH@XOkl4Xk}uU-+2
      zvcY{O^pzabsI3?cOP)ig;#RFDVXSn{Y`6`n<MFRI4{}VL7ktpjL^!R*ny3rgZTd=9
      zCF>g+RCLABfk_S5aGemh#g-ca3CT>h^#8@+gdLeIr;c%gNfkE<qlYAxoMq3fh6xt8
      zOtC4M#E?T$mbs-NgDhW}Wyfon;=Uz?q}rHI%Y=l5V)<Ts{keA6S);@l^NjM-0R<7M
      zm%ojOoR+`yB>A1@+dceTIChqC3G}iZcrK!k_YZ7Ec~9zl=+~!qk<xR!7}TS?82ZBg
      zD291WaYf)MS2eg=g)^Jz#~QA(cQlAc8Y6&j1w5oB8AKRy6gAdD^|VluEy=0zDp~FO
      zXP}~g#n3jocpLwu^P2k2EP4Bm3Bop1<s%fPIxYb_$Vtec)Id_hS$Ku@`B_^UCs-L!
      z<F3}ZLk<u31@dU%E}AI9#Us4J6KwgKwSZlydGwe^>LYnITAkK?P0vD2Y5g0fb`bxG
      x+~Yk=|MFWMaLf}vxA^pNw}Cgz=Pl3e9rx+|k=p6D+Uc-%g#VUuoeits{s&-6983TJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class b/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..808980d83cfc851428ee1567c9457eae3bbdb3ce
      GIT binary patch
      literal 795
      zcwU83&r2IY7=5#e+0AC#L~HC%t(6|MlrB~fL=mB+(309iM6id#WIH4yn_1b+7VF>C
      zL#qct!QT5v6~CD*+pvdrVRmNT``&xs%>4dybpv1>D=r*{rGd)AWB!$gnU-<b8J*~F
      z9hHql%C$_Ciz-9Q@-bI~@MHg2MA}7-p*^LV7I+NvmXb->6RG5}JmdXXFnCgpHCGWW
      zm%IPY-KOfDD3(g<U53i)+95;rP4Y$fU}y$tAz-NOSiVlsT!1=!qPkLv{cO}1>A@s)
      zuA4+WKIGI0?Jek|f+qRtp&T<b2136p8e3Ui`+sZAAs>H8QqhUUNGLtF9eyG!B~En?
      z(k+lx`R2A=EYa!zy6-2wEE?vT&S@l0Ooop|)1lu>vNRHJr8!8u+{i2ALJvvla4-Xx
      zR*%dz(DTl~LjwUJcW4(9Z@$Jg*wH2KUSReoZ5`aBzi-Jcnl~|TQ8QYFc!OqUEMHur
      zU6$>liajd}CPi4V`E}gKgWTY`Wq|5AW`7j=nnm9ikqi&1`-$RZ9_duRm+B9uvYb4N
      f;W3`%%GZP%&b!7Uo%HFilK%6Q-YfLWw(8j}3hSA@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$1.class b/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb7c64a1df1c858fe060e1bf30ea639aa27293ec
      GIT binary patch
      literal 2951
      zcwU`WOH&kA6#gy@4743VM0^oN8D(a8jNqGxF(B$BfKe2K=3&!wfrh4=%=Dn<<tEwW
      zPb51xF0@L(idDMPDp%PjG5G;WC5xmgl}cj1+tbVpkt!flHQo1d&UfDD^s|4yegvQ$
      zx56k9Xq<4ei78{wNMt?BPF$A8bTTC!&+=}bH8PWf#%!cLjF3RJPh=a;MB?1olr+6C
      z$^~i)tVvI%4bM#rRN6+y>vz2LO@U(rs|!$Py;*Zwdj8Vq>>`XKZ!E!7Ogrv%XV6Uv
      zh@?QdH)&-e?E(kZ2=BuTOOLSS-Iil{Cj<^g*UKCm5eW6UDOm}cu0zKw8cI>CV<WZ*
      zltyDC8gI7h*oN&?dfakSLo`Aly;fN-`62dy8I_JZbyT84!>iaG#x8-jwP7t8tfK*Y
      zXoq2%GLwlM5V*8fI|@Eqoq?)0VqX{$fjz4d>)4MC)M>^|^|@KcQ)WhWXzH+Pz;fhJ
      zc4kbbFB)UEWRM12)38U3w59gJVMt|<z`oTri?lOgD$Ge~PBZs3s+rJnK*d@!ZD}~?
      zvob5g=n#k%aQa-w%%;->B9Aq0nTBV%PX7&4&Z<QihnOOTY8v*^mNU_twd|BkYdC^q
      zVH{mnZ#fDb$I&Seo-^#MJU1?|C7O&4{Fkar!$EYbgzQliFW<*TD)1V8(6FbcLD9ah
      zqZfTF3uAUxI;^kOm6%>S3iS2G^(%<e0`)5?R7`kQM-p$)qn?|)6sV1^XhS=?H4Nfh
      z7()U_R*%z46`<oSoM#)EkY4VJ?IOB{bSwg6W)9<07#9Uv*2AY`1efV#$1nc2^~)U9
      zaYbcxC}X>xDvx(`yo>i3{xP43>6^H^K3I*g*K`;dV*u!rptE+a(<RGVw5AMPa&DQ-
      zA%-W7Os?y(Azo1paZ*RCDw^fN&W(|-Fs20>3gU;{;jB5?Z_63t<*P=+6lztiJ37Ls
      zV7{j1j628T`#@lK0W@jba>B5OJ;Rel%(JLf)yu$SF(<ImayYFV!@l5y2(+)YuLaIj
      zlRz7GvuRVFwp35qwgN+&f)mh_jw9239Eusqxar01kv*&5F>N=)v>%k-q?^+52|i_n
      zto%5wTk_hnG26vHL=W>{h7bojodWf%4Bl*rKy|g6QQVdDzY$fWuIB0@`AYcS6>px$
      zruZT@$KzrVb@SK}Z+?LK``9~=rhB9)L5$BDUxJc!kND5H{|0fM=sY6|n$hCZGRT31
      z&q=H9&cyFy6A>5C##K|WBmS3Ydx-YYhd4N@E*{|UBD!i$EZ}5;W&x)baApy2J}#)T
      z!#CwSn)f|+;yF6-1DnrtoW_quDxJxz#6g@>NtAO}#<NuO6Vx>?VBkJ34CUT$_uNJ_
      zFZXI`$51Ix>RK1@erITV=n2ZVhwip2`qrl}e)_CL)E9^!eT6b{x3I787`px9+q}NL
      zzB_)V1An1zzhWzXLj=Ebi2cd?zmUM+ID{AM_$BD(*-25xZd{HFqJmvVW4Zp}+jW)!
      zrtX1VYNZ0sl42;?DJX3}P6R8RPZO7U6T!(~m0%jA$Pprs#CQ;<9=?^os+a>4v|+~+
      zl!fk;-pQ-4sXP&N`~ciq<ld@44Z${N1yECdE&?q}P*1VpA*MzbVLy(m{XAykYB3We
      z8drChhgCFEPK0f5A2y5q*eROOB%(!fTk>+<e5QR7$UPOvo$=+)Qf~Tj5S3BpQs~+|
      z_6B=J#kemZ6BkM=-Z!cHqKx0Gsz@BBK1Zm}QR;IHjp8^*cPEaEE{3SPNUu|YUZuG1
      cBiz7EsH!R9hgTy$<VyHKtHDQnhIsn%zXPZ3{Qv*}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry.class b/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7bf52c692e1bb21108e1ee2e8b3e1130cee25b7
      GIT binary patch
      literal 2038
      zcwUuM&vR2%6#j0~^u45)HY89$u(nVjO+!Ob5hw+1X-RBaz(5c;&TDh0ef05ClNX$B
      zT{*gR#f;-lx?uqf1htN%8xb5g{y~oCyxe&WAxx)}$^CKO{l0U~ch9*m|NG@P0OPo6
      zAS7^l*{x@9TX(H&-LswSO=Yd-%gXg^Z#`$#R_3j>VYW@xmsXYMFK1k@x^AFLAnxNF
      z%U#Z1S-h>5JOkYV$t^ZU`^N>stBS@%p&c?I(Cw|*wc&ArvBFM*VdQz+wY>`h)2W?7
      zUk_uXB+xZoDXS<1`Xr)=#Sq4Bi5?^<{M1N^zwD7PVA6?#?W%?Pokdl>ZY?^BQ>!dl
      zPRXj;yw}DqPEFv<j-uOAnNo}{E3au5IGGyR5fLjy@Htj~4`E+RI*I`d8hA%wXj@*1
      zAx_*}xKSv4J~wlVmc(7MoH|K1jAI6l3S_pWX$eo_I5S4>G6&JsG@Zb)REG=dSURry
      zk}$NWIAwofu8<$TNB_?9F=R1r;N&aCT3oMr>W;)Iyi0bwCBP<dZzuP8E{FFeGB`o*
      z)E9NjslDOoXECajvl0h!s0R_8<>9=<VH{$P3lgXCfq<ycpS=}2Gz{ftdX=JAwcX|R
      z%WGOE49p1ZYd25TZKtfNF<ioK9&!?Sd`uBrYir6a3!K<S+gE5NOcW@}NoHDLrYmg(
      zI+iyRF!Gwj6s84Y#Y(-pq-Jeyjr|>pV~kk@WZrdEb=t9NHANc7wn~QjA!rT^lFDKF
      zM-ZY1joK23$GLH7XOg`KlEz)Mo1+t9n)}kDPtluxhIl&j6v;<q3Slpez5H2xi-`Cd
      zQSlA>$=2`F_F*6P1OAF#goyG0-qOTbngz{~^b_<x4CuPqD8BP)Wb=Tg5nL1+Jn54G
      zNdhMy<L&z}#0CuBwNriHLX`}t4hK}HbQ~tf@dQWO@jtfU%>bXmh{k`a1xjfAJkO-n
      zk<1oTQ=^B}vX2lKkA23$CMwV<fwV8ZNtZCH)uM*cUWz*5Ax`lpjA>`jVT3oZOYa(Z
      z@2dxGPB%%JU+J0JY)NA%NQ1gbJNQATksJL3k$adL{T-3{bOUEHKjWOh{T7#fWTGZ}
      zj)NQM*Vd+~fysM_bUg^uFNkA+E+67gisLUx@d5|LOJv30)PgTCEB<K_BNvE~!$n^V
      ziF5c6ANk2sAGFk@pT{OH-Fk*u4zq#FiMa;m11T;yaJBs||Lq_`2%q?45!d}&2+@l?
      MfE(b4Xc#5ne|%cEDF6Tf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakBucket.class b/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakBucket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08875e5b171fbeb4afc831e22ea784abb4509efd
      GIT binary patch
      literal 1120
      zcwU`U-A)rh6#h=T+tPLws1{KasiL-9pfMURtntD|Vw0*-u*S=28OqXii@URpycJ#`
      zi6-8f_zwO&iSf+PK(s_tH`$ppGw1u6bF%y8=Z8-KZelr&1YxNg#MNyv5Y<?De)Xjk
      zy~c(Nl&5wdiD>Jw*jdzj58_Twsx&OZoXPe@(5;4Y(;%M9O&Q9dBMJ6E_%YA<=5gB7
      z_O|S(8o>(WTSZuDjw7mZk>6(=H3+GDUf`+wgw@ihLi2ZPN4B2DGM2T`{6@LO<n{iB
      z%p!?N2RTd;ZjH@cZe_q%c3>l=qq7b&$Py--ULc>uuiG+Q7j55^rQZ>LON5?Y4>v8f
      z<wb;KPwsL7-)Kt0{NE)B6J4nu1}bFC-BNk1lA6$9Ygx8C@8B{P*Z?!Kc_tgVe;QW^
      zcm7W!iy{_vZLbmPrLl~j&@<h#>{>q#J95?2)tfzmVnxFUP9q3pSocK~$tVq%Q2eJl
      zvmfgdGDp|I0+%YupN@XH(a=vC6K3Xi^O)d_92_1`@oI-NZJzUPW$6H?-Q|5uy9H|>
      zXWp6If<A)<P=pjI<S5284KTy|w-1pxH{{P_mKDiF=W&72I?^tZCer%MggIOss=wg1
      z&MLU?aj9AP44d{oqWH?K9N_BS9|pei={IEPJDd1n49pyYhX!m+4Gko4-C%E^WYGG`
      MWmKS>%zqQ$7Y42sx&QzG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakEntrySet.class b/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap$WeakEntrySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a889aae97275cd2ab29f8af9693359641ffe556b
      GIT binary patch
      literal 996
      zcwUuK-%r#)5dNlDu0O1D9CD(b3Ua`K33teg35LWFjZIEp5R8v|Wg`nmkF<Lx_>cHv
      zeD%c#NiZgw_y_n$8D~oa2QewO+3oB%^L;Zr)8Bu7`~t9yc?T9@>1{k{?TUAzHPEWp
      zdM(9XxGiI?^x<=n?z|8O4TC+6b#k~NwF8?laTfoio9aYFnq7pl-cf0zO_=Evs;+YQ
      zV-+jCMwn|}B7R|uV6XSLr3b>503#^-DB)@V2iFLtrU@ABs93%n?004IN_2aYQ0??1
      z(c2P<GUpt$O`(K#aoTg2=bG(Qy_Z?G&_fNA4sH;p3uOX~<0gSZf~&MlgzhJVT63Xu
      zMhkO%)xjNZVWDPY*+(7s%>AbbE0^fu`OBDoxgv^Wn$2wU{{@N(+%bQnKS(0^Oqs?{
      z{v&3|C=h}$j%Bjm6KN`WHo<Tzw0Y(w{%fgHF@tBz=H<X;++*tzEPerh@xeFVz9Tr|
      zlZ8=(Wu8yW`-lo#0dovGhN@BI$z0D>9`e`t+{I(~$C&tXs!`7H&qI9olz$7ibN&j~
      zXnfvJ)ZcIscfVc`I2sc0P6R40rg1+Pn9U0qF$G*Cf5^yIwq~-u!33~~#r_)R*s8-k
      F)xU_Y=m-D+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap.class b/libjava/classpath/lib/gnu/java/util/WeakIdentityHashMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b205de2497344db11d1260f73e775984544ee4e
      GIT binary patch
      literal 5474
      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
      Nf-h<0qwlZa`ae8AYJmU%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/jar/JarUtils.class b/libjava/classpath/lib/gnu/java/util/jar/JarUtils.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1acf2525eeae5a7a2659bdc2c66335a463c881b
      GIT binary patch
      literal 9045
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class b/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f7ec172e27409ab4b969d3f3b55e4e508080cdb
      GIT binary patch
      literal 1264
      zcwUWD+fEZv6kUgw4lUDiD_{{6L8Lb+h$u?ANr5yOBvAr^_%gHy7%0;^odNMr{DM9s
      zNr{qxfd>=)8NWc>XWCK)9&FMxd(K{G@3q$1^W*o|QvgGllTgFZyQy2TZFNtLS*DhW
      z<qW=&kIn9J-AritoNA`FxFNyG&}f4)s=gUp+A_GBX7HuUkjh50ave0rQ2XBE7H4Qx
      zs%@qXLp@Nmyh-`Gcq*gmnmNJX2!@s!oHN-p_kh7G!v_z8D{klAwACo17A^_R3@x{m
      z^PmY{foqi^p^l+J(RBXW+Fj?ylDeMZf@3zNW|mb$6Yut>2M%~e!wwmD(aGS>b2Fjx
      z-K<V*f@`5=k-R74zF<?EH&w%=gt?{V8Typ}aFAp=3`_UmAs$KS`^U}2^=+OqW%P^U
      z&V5z0RfJ@O5uuH|_L1ApB*pe)83TxsB?htE6Rrl6A?13pF$qJYw7UJq(siM<9)lQ`
      z(F2c!5t39zBz2P;hLtmUdiFz#=S(fDOL$(fxpJl1{gR8!VDKw98;JX?Oa()G@HU9B
      zvkBueCNN3L)O1?NxG5sECj6R~@yZ?oJ!@(k2SPd(;?&>sHftFvKBoyn{%ej8h;n#9
      z_vWB!uR({H8;Ux_T+q`=s~h58>*;Nr5aQQ*0=9Y#`3MasXrid)2>wI6KpU+-yVx)t
      z8-*V+wA&f+_g$4r&>Iuj@G<U$okaw~MRZkbG*fFJPU{2_n1mNob{)BN3f)8+6!%<J
      zJf)MOZ~Qa-s|)7^cqu5Nw*cpg9R)vK{-VH9MD!a5mFPtQuIR;C<O`lK6fS?R6fVD0
      zKQ|hv`%|(ZgecXE(kO{%3?roHS(#s$`U3NWO45l1I<bfriaW7HBRWs$HA26`3sNe0
      zcbB-8dH0jeqm*NW^OPeuUSh1QWs|xH$GU_T<(yV>Cti{<6%oWE7iWhAaS@pS0R!|!
      j2CmF&qw>HGWp~Lcoi1UAh~@q=unRNPR2Z1BPtE=TL!ALh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/FileBasedFactory.class b/libjava/classpath/lib/gnu/java/util/prefs/FileBasedFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04da65abd4e638c7cddf829e19586dfc2cf109ad
      GIT binary patch
      literal 921
      zcwUW?ZA;rw7>4hsjZKX4t**Y*shc|2`oT<?OsFV05C-uD9R>F-jmIvMCL=Ec|CP=U
      z1%>?pf7I|fY0(;rE|7CL=iJww^W0DF|K0utu#S%^a)jlkpO_c+Z`({_*E4^G;yg0<
      zTu<!UkvQA4oj3?DRVak9ROQ)z(>!ck2q#uiAS`CtBOXO4d`CoGnlK(+MzLu191-TM
      z7swi6G>Js`jL^0m&-LASn~<+m>jdR%a3)lY5LWwDu`gQu^|X#29}Qy!=om)Pzy#h9
      z3R_**-HP@9J~itpkCQlb{bub)wLS>KqyZJ0ifKaS#dLezbWEWv?=vJF-WnK$#u-?y
      zFAkDcLxkV$h9?L`D{ySDZilX1r<*$RD03L`PnSbl>03g!p`5SY>B(^r#Ds-P^_6yL
      zvK<|<ei9_1Bcvyxl(k-yK6uYn<oO*y4rLh!|8iwn6weBeI)?bv;MF(Q$Y<sb!>3dn
      z&9^argVG(QPTQEd!R$33<}k<OWGdZY^fN}Vi4wkG8lNzqD!_&lkG3Yy+-D4|wz2SJ
      uQAjsCh|v+?9p6^Mi&*NyYh76RgVI%ot@W_VBfH#>oz1d4ec2DGYUKf2%FW6E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/FileBasedPreferences$1.class b/libjava/classpath/lib/gnu/java/util/prefs/FileBasedPreferences$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7082f4a270270eabbf86ecc81a4287c4c24e710
      GIT binary patch
      literal 924
      zcwUWC%We}f6g_T+44F=vP-shemNvlTQPS*?f>=;MLJTcZP^6ZXGh-50Q%~fXAn`ve
      zSg>IMl|bSH_$b7+iJ+(~W?}pK_?~lL{_*qccK|(XyI5dojn%As#NYDnESE`ls>PeE
      z`&1_45zj>YlCDAv6^X3TbKx-5t#88BxVt|(5>f7=%&=-vnOdge$AZpWXohk=ky&Gh
      z;)F#5^@;UBDw#iI*ba)*nnMO>H;qLF3{@X4&U+}K=A(i-Ln$y0wNNUtH#;5){fdtg
      z!LS^r5l@C(OLL!tj!B!LQ#g8~XVT_TB&IpTRuG<UNI(4Bv_Y<=8uy!rE-o|pr`<fP
      z;fl%jY9WQ8@xSil25vGe%IvY!G>%liv$Y=59!r|Q(!WAfo0*TP`-~)mH%MnXGSefE
      z_5T%m&#)-*XG#gZoA4|X)Tr7M6(wm#A}>TfNn;mHhM;Kke6-P_uN6&X5)-sX31)+-
      zWLOEBug~U*9hz{7);X|x-3*#O^a8C4JVF=Ax=(k5c&+wl_^lHxeX>3m3}#;p`#qM)
      z^2s*nMO?D@3RdST&*4xUp!yAK2kp)Y*1zD|$3H@4OZ;F(Hhw$KMU1t9TlT$*O>7aP
      Wgob6_#vL1u*;f$zF6|Biw0;3^<KLP9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/FileBasedPreferences.class b/libjava/classpath/lib/gnu/java/util/prefs/FileBasedPreferences.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7cb1c96f19f30a8d71b5fb2015c067ed6e63d969
      GIT binary patch
      literal 4473
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedFactory.class b/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c97da9c3c1f710a454df89c411e3613665698f2
      GIT binary patch
      literal 869
      zcwUW?T}$IY6o%hvV-sWis%zD*UB9vQ!XPN@QV~>eZ=$<wrJ#3d9BU*dGMOy+uXgo9
      zQ1A!rk6JvF2CY@x4P<7{%=;Y9duIOpy?X$#hD9AYhNX6x*yrv~*G{A#*q4Hz#`f3U
      zC_LS9V}7#ddNLAMIy8onR2H~l+y2%%=bqG2V3_ZPzthMC4?P}dG{b0o6-$26b;M9{
      z-XZG@!%57=3&Pm+0zdTS7DK*TYcgoN(FxZv#87+RMpqgGBMdMxh@yotd|)VSW=ZSS
      zS0!z?VkyW)cWKUZ9~x5lVY_}@YxaYoWI>0aR+AR`VUP#M5BWiI(c<FJZ3Ud6=tQ0y
      zG+p7VINdan$F!<tfE>v)pPVi`|8*_YC9~7nA5kP3W~#M+G}TZ|?TF1rln9US`Kqka
      ztK6$95$4EDp8h`MP*(2f>6Dc>nl&0t4A7}X(LQO^SGmXF5i1VoZ!vm<@hsBPXyP{s
      za+spAl*%^<U&j!>(B5ZE)2l3}3Q*Fqr_?shbZ6*Wxy8rl6oquNgIFB_D)^MbGnmcb
      e)eP3IG5)KE-RWYrCwA^FcA}Sc-el)f)xsme7Q1i&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class b/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db5bd124f1940528a9d56b280e10d905fd560130
      GIT binary patch
      literal 5305
      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
      Vf5BfNEl)N6rjMz@-}Qd4{};#Rosa+k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/MemoryBasedFactory.class b/libjava/classpath/lib/gnu/java/util/prefs/MemoryBasedFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0520bb58e85577d21c57fe03cb6f2100a410271b
      GIT binary patch
      literal 880
      zcwUW?Sxdt}6ot>Uv57Hmb*WZs-H_G?gWv*Id{FQyE~pgrEsbN1q={q^{8ugyf`UK5
      zA0^&NgVrk6KxXF7obNE_CU5W0uK<=YFC)dUP<JE!%Dgf4D6}2@+UFO6zQ-G$f4gl4
      z{CwB6LR!m^7zSdUW4d+ypmxQrP)3Gfww*qtk^9`Wc#zNxgTZYO@<z)ML&5litT6OP
      z0r$TV%BJPmt{rYMq)X*0gS6wFa~XXMiyd;b_$U})fQnvZH4I^xA+wpdZkLSz`&5jt
      zejJCs?ba)2<!Uz=Mm5M##A-}KHx$ZZ*e>6X8a3{pm^FtpWDU<UovP{EqK-FJq%kS3
      z)I-U_OPdmRyid|$YM0t<@sa0+48>BpLw6O?-KJPQ_9EZnySBJj?x*>ZaKa45Nz>bf
      z6!Ib;{Y80^j%JBQ6+LvSQME@J@f2Rrd&;u?=_d?6VkD`gxXRs=Acb)nM`QUa;VbCF
      zI_<4tl77&9tN@t~eOl`@)5k;C;u9vmEHd$C6VaLi6fhOTMNB8~QUXg47`ba>H(FTf
      Slb!jE&9$>zzp}HjYVHG+Kfta4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/MemoryBasedPreferences.class b/libjava/classpath/lib/gnu/java/util/prefs/MemoryBasedPreferences.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f25fa47e7bf83f85bd047ab7e77c9261f013897
      GIT binary patch
      literal 2204
      zcwUuMU31%15Ir|`tVULnCMf~Z77C@sAEBmD=!Xk5P8(XV-GUpJl;J^fZXLCb?2+U^
      zfG3`Kf<M9o%#dWDL#NOEQ4Hr^3B_^LAv{=jwc0&<_Uv9i`}@x)0M28@z=%Mh?e<F#
      z?M=JX51dY^=g9|tsU|nN-d4r-<=P!Oq$k~$^bMp1P7lW}tongxw}OE{fsErX`_dB-
      z_XP~;2A-qbGu6H9o3_7RvwLL*Uv*q3_)wsds~(<BImGJNZoAYVzS}O}&o>3qi`_M8
      zB871aW0(-QlB*tqa{^qxY2c{9)B(;WCNZthX9QBYd~*x}FIX^eL|HFd7)3@|FI$*H
      zh61?q>pEEpOjaFN*83Z)(z|P~cIcU|c3XC*X?u=(kDTdX-Jx9b|3?n$*t2N|On2=K
      z4Sk>`0W+LTNQdM(pQEjHr?bY?I@A0{&tW&Y{FjN@H@<1fUf^_HZbMGs%rLo%-Fn2(
      zM$q+S9BZJ!D#LIBM|5Fb@NzCe|3l5qq|oQoFie3l4OrLR8;|6cYDNv~9SiT`0u`dK
      zA*s+*ZV;TVvI=|O!bM!7e!lZ<sLrh{uHdQxwm!Zu-ogjq#u`C)!Sn1bfn07-u-mH-
      zWh*G>6MP1)@ggLun`z5Ht8w=EY7Dv*=j#@3V2Nbgs;_;C|B^W9VmOsh8`BR9zL`)k
      z=|ZTApIWG*MhGSgTuP{TNDiZ$cBfCB$2@NIri>Qvd1XJh&`^zL!f0;KgHGRH*I9<Y
      z<+ijn9)4Bpt>4W?x9_#&lB2HG@#L#>PF2Kf+@lo#7)LOz?yt6Zqj_feh3my<mTv*0
      z(mYQTiu1d$3Xd_lvWuy094nmM#%v+IjhBAY*~j^uB^FR2-bGAdk?%|Ne~c6K7D61H
      z#4CWdUZo|pb&7mOw57PD=zSfhBL*d&Dr&UwJ7#~0OJ%gPrlGAcAc9Wg4V+=rS#5LL
      z`(aXlA^+<T%yJ@35%Up;3cZTo#AAq+LQyf<#aqKDUul%tFf#6Qf~A$(X}q04>pDFu
      zcaE6Hc5psC-Xq69aCrnz@zHP<Ily%;=DI+RA=hh+Rtzi!Roubi(}VqP3^27~rWPj^
      zGQEjg5n7GYP<xWqX!ASx<lf%6O$`w6>}$YNVQ37PjR2KZ*CS5jHtxithD6PX=w}Cz
      zzvCi)KS0%tk<FOuUCcyyMgCMRu?G`&`@?`@B35kqzY~8<Ol-!97oy>13W676nEg*&
      Qnx6*{G7*BnJstVQKV1{Py#N3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/NodeReader.class b/libjava/classpath/lib/gnu/java/util/prefs/NodeReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9557a132dd20cb1824bee028a0ca48a6a6e0ec7e
      GIT binary patch
      literal 4168
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class b/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..929229e540a9c61fd0c1ed4e958159ef88f34e45
      GIT binary patch
      literal 5937
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class b/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7a24d86aa6b1b369873c308302c8f825a6915a8c
      GIT binary patch
      literal 2599
      zcwUWGZBrXn6n+*$0_lZ@0I49<ihTisjZ|B0p{*^Ys0646p|oncY%a-`Ws}+6V9^hL
      z_ZRpBobgLPh&p4&v35qr52C-x@tnI$nk*o~uxIz&^E~J6o_pE*=a=6AOrQ`$i-ysn
      zUClh!xAaWaGp$U;k?U@zXq4^s%<MEh7j)0ulJ}%^Vu)x+C{s(fi<!l>$I|dLbhvU;
      zuawG;)X?)V8#b8K&^~2YrfqsRG_;P4E^CNPmkY838cqnbA=-{kqESvO<S34l=#C-L
      z<Sn=DdU8`Bi5`MkWxbF!*Bss1*3dW7;56qsrd^yIU5*odpFj%j8aml~-Ynz|-6&C*
      zC$pw47pj|U(pl2iEYc*iWka`?b;soIKpCA<QOD7Wmj(LK&YVL6r<pUZI1Nj8T}sF+
      znIzKL|6NTgONUKWn0aEl-Vr%GV1H)?&S6-?DMdpLO=)}ig6ZTXL)kg=a0&+)G<3V3
      z?szM@XOu{>K!(gYCXnVj_BL_qg#z<Z*<G((31cn_WEj&Nha)%3ThfQoM(}*c8ZI1?
      z&run^Dex91!puaLcLTQ84M}}&+tRHnCE8ZCX_1jv1+H;zl1)gpOx-I=Z;o;253B7#
      z6%*bNxQVH7D8+_QVm>RC{p``Ss`**!4s{?t^Td!9&n(++40kk~3vZ9xy0JmnoJSK>
      zx8-2&3e4gb?TzLxSyp~S1(2Xnrc0((aHP#$avAi2z#M~82SB__2qmOz=oRS)%!mbn
      zMb0_lBmCvOU-62io3@6osvSn<1eO>Tlz!j9$Hn}Q0!^x0Ef%Hg<+g2uVfO`Ad3ySr
      zd+i(LU9zI%V%@ZL%ltyd@Ch9$FN(ZWa>}3cXfo4h0(oZY+PC&+k%v_mc%Vi!SFSpS
      zyle6>_l5@WBJ<KQNV|)ULk$Cb64Bcr+7Y8a+RyYgMUsCKt<TW<BjQO>Lst#GJEUvD
      zDS9Rmq30FEv@C=+PiNNzUQ(;f+FxgSL>ktm#(u`Y4~Va3f3IOMz55-a>D}i$w8rON
      zQZe=_>GP*3E?|<pTqld0=p@;PTgrz}(WUST&M0rMVmR=2l_Yy>OV{w)(>hsH0p=7q
      z<r@TGemjo~w60+UJps-22Aa_qImeZ9g<`sY4AuCdRIi7r45BI=L-mGg7E|3J8*W-O
      zJzm45aCVO3IpbT@d7`+ic=+uKy|vK$+lQ9xoiO27M+9~`2y9aAk}%En??W_SA4Bsl
      zHMIq|Nf)87=>vo_VZv{YDcF0*5WXKK{PsTyJCLm>no$mDZLEg*FwN73z1fC)1O|aV
      zJQVy<82nQc_+tguuuNkVPUVtXAx#Y{;r;Y0b^lodQzXbH!UsbG(?iAdWw4)y_Q
      z9?MP|%Xu2sN8``=xkDyVoIn>Db|Il8&`rPlu7`;l*d?n!h<2A&{-inHqk{fLq3qGg
      z@^?c>Lw-ow0RM}k<mo`>l^o=2UrD;EmCOW^E=wiprc&}+V7IEyntG8)LpMQ4GkZX@
      O7_cm{B;A_I$M_ei!Pe6N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34b9e51a650c9c2193817bd080349aed128af3f6
      GIT binary patch
      literal 911
      zcwU84T~FIU5S&d6Cax(I`az(SK!GNPVpZxJ6ai5yA*CPz%KODRB?jjlIX2=K@PGP{
      zR_a5=Gd~Kkcdd{LAy~TIz1z{u?8?_SzyAREgf$yE!g@<({;4<@ewK!jpU9TH@b^S;
      zmL?pIQx3~_R~r^#(x4-uTK-|<R0b(wB#qCcBFxtYu^oLq(d|vfg{qq|esLhK+7`*a
      zYRU`Q)Yy(lgZAT`-*sE#x*`!B!c^_PFK&)*g(^(93ElEgYft(aYT}`CrB1M_aZ@_T
      z<AsZHOcC<sO1%KWOBW*;)zxbkHpU#xVAe*FFgHZS#T?%9xIq*v$t2~<Ls`xF&P4%^
      zu1YSR!6i)8LM0EfPD3Uqq7g~Gt2hu*T_mBt|9iC3cGx3q3>@{bKZ1Ac9LHG_$Zw%0
      znf@QRp?L`IzEU!&Mxxh~JsTCm($gY@!rcQ(JWrl~TZ<1b5BlTPnatyw%)@ddKI3@K
      zd4j7;<QNZ>ykD5~*7}(C*86znef)_xSD5Kz-YZ&tEc{?h4vQRT4f`f5Z87r~X4*j!
      wyI8;;mbmlzFCX4x*{GI`A2OA8lrxp~lsA=jW%28ZQCP(X&JN=VWq2671zSSgmjD0&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b615849609e9fc136c7c9a257e94d59c9e3451c8
      GIT binary patch
      literal 1487
      zcwUv1-A)rh6vzM5?KcaQ0;N#Fil}X=6i~Q<m_UQc#!?Jznovw&SthX1Zkz2^#cN+e
      z@3``Y3r!>%6MX>R#ure}OiTF)iPB`}?3^>_cfMx(^Y^zO0A?`ngNtE&&uV54^p|?3
      z>6n#_&G-20%(8AAIyNl@hZY~)3?X@@qFZ~JwVeZQI1HYKurg#ebN_}+bhZl&?uPk>
      zGcb+8Z|HU1Fr6a`q2;xrwv^k-E<In$YQ+tP?rhDXD3(*wD^0FY-f@QTnSD#kXV+I&
      zSMo(+2{CvVP0MtiFer&+iNa)SyF3U5{VIA9@?nr6eUnrJU>H*2fmgf@tMI`u-eM{O
      z@H6!0OpE86)g5jZ^_>cp6wcKQy;9O`Q|#MHx3h0H7$*LsP1GC@uhvC7sD?86);Xsh
      zPbZT9;eDyeO1)NRaP82frf%x%F)CcQX+oyRpxM}Gm`U6Wk}L(0#*_~aFI}F(QN!U?
      z6&Xx31a#ZhkBnNK%1tG5SFhNDc8y9Cll5EtRiSnJf`wYsHuzIhbh`g?I#a@(LDeja
      z+u4fVXmFZCpmPY*G)!@KJo53<>Jl@SG9cv$f+QKbq)w%M_l13r^r5>&nm&3fkdBcY
      zPJKZ*6^ehyz$qdr<rGoconqvZbh|}sL<W5ZH*$nrMHqQRv4&C7sx1h{a2w(m$DMY7
      zIg-NGmHLe6dwAR@%1H<5m8SIzh^`J|9CzD@d8%00R6;}q#=SfH@d~4KfuVL76CK6|
      zrR^d)Dj6FRQl=tjb7xRim^_E}$R?M`brUhXknl(g(1!O>n0vS{13u`qQzt)pN?H7X
      zZh?-m!du2-BEs>XU$U`RTe?lFPPlCh!65zaHQ`(sL_*FHNFvn^_l`V8qFI5bXXF@3
      zQQSx<v`w=U8XD-T$U{jh;?P%2rqZXf;#M2VZaNvAESx7bMi&a$qfzWr5+>~r=({+i
      oKj12sVaep;t+1U&XWP9PLqDDK63K;GNqmIIB!grdpl1&Lzg&eS+5i9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexed.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexed.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09beb399a25ee9b08199f8a39e140eef01c775e4
      GIT binary patch
      literal 549
      zcwU83O;5r=5Pi#61wrv!{KAV#x!7>#1PHMS+C+qd7gEcnE!H+^w}jv3!5`p{5~oW^
      zG$HY_Z)WzrdAl=T-yfd<ny4$tFw|{7)@J71)MDX!TF7m_(7KKp>i(23_*6lTp(+WU
      z>D!v|I^&jLs2HQ?iP4{QjM3xWkb!ln)(!kfn7$aBUd*$=a>-Dzs9Bp7IaO~EDfb@C
      z`6_#1$R}BoL2)Azxl@L$n$$~P5WID`<N8#(QFXmB_~)T5vhuiZ3rF_Q8OjkC12Ym2
      zrm(1Zt!`}b)RXtE#+VfLA4Of=?7EgP6v^V=6}{w@1t$%P)TQlPP7tmL>p1x`nUsb>
      z99q2ZdNhXWuOHkdJ_Q;jXmoVekVk<~p)7+flxY)1l#py>8)b==6nC&Iv5Gy3`#6wz
      ah$D%|IFWdo=Czc6mh#SVAw4gp*VPX^5_|&y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ede3d6452512ad39f0485b4ccfab59cb277f49c
      GIT binary patch
      literal 508
      zcwUWAO;5r=5Pic}wW28ag>vA?huV0?m}nD|CXE*i7fuT-u%@=Uw2D8=lg5KTz#nCt
      zEgn2@V3W<fdHd$g?0o-xegQbgv4sqwF$ojrUOWpYiB;feIgxY6oeJ%RBRQ8N1Fy6e
      zuNHEI_6q8*d`e_El!U^C3RQf`pwV}|W{;3_qmi_+jtvVop^{pKDoQ=Blkr&UB8u2#
      z<%<@Ngeq4y{Ux%FjVww<<grbtH5QUUgcIlg44t%V$ycGgO&$hP--$uMla>8wD1x5Q
      z%H)4!E}p6xq2;ge$#f+hLUtBwLZ<H$^2$6D$RpU@DA7ZCql|BLS?!r=fI8R$<`CaJ
      z3LGs)KC_0mTkQ|5)!wo7##shChT{mF@Dfi^W>jA&QNeENWMdEesh^Dl9I~26NUM*2
      E0d;12ga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..351c0af1abea953df7705bedc0a6da3898fb32a8
      GIT binary patch
      literal 2168
      zcwU86-*XdH7(F*XHe}h-T5A$$N?JoS*+>HlDzp^aS|AXh5{$N^j@#r;vY75-vSAqi
      z6`xdQeBnW7hzvTz@a!KYe)ryGv+bnq!{+|jd(S!F`A+uV|Nedn;5;@Hh%l7f&Y<$Z
      zdSq1wp53kVc$+`2taq$l)oJm^yd|b}{^Ni<O`brEVM-qET28xicjp0bdI@L@xg%f_
      zIL0s|57=&{&U?1iwSTg9x}1Ua88WpIY?yM1L9?7@$L-O%Dnqo(9foAr>U*~>ui0Uk
      ztBs?+w;^BC^;FMpcf4J<@7?d&ytV1}ZO?WIL|e8U+goAC77rq?mKqGPb+^TJMDdP+
      zw~!(Y#Zn^)(rjP~hM1i)kc565S)5K_jyT8T8OULth^dCQ*O5R~as6Eb6AI{zf#Wb3
      zCTq6C?+kW#c<;V4X}ab%t!~32<7n+~#=MSA=A9jD!2wMqOX9ZJCLvAQU-by5SS_s!
      z`DYE7C`W<UuSwoRm%tNtzd^lfNx9o}cGrEx)fHOB#p*nR-gVs{)_8}I84AT}wRDuG
      zC7tU1R9HIAVD!0H8})R)cxY2g4IRr^N#F{@>>&pYT*YUkvDtMUk~~u^g&M8GyChs+
      zGjIZvNy0oMDpDGZ_8v*O;`oY2K}%8%H*9aiX$hpNfs*K?){$HEn($WrB#WbO=E6uy
      znO=7Xy(YhAi@s(L=-r}V$2>`nB7!&)^h8AT=nowc$&urPKT=I{oRaGaddO?K`!>xU
      z(mu5rr_JY>F{4AI&GHZ@&GHM(G7Pa`W{1fCDeo8P_Y^exT|^9D5?_U|&mlt}kvV*b
      z_vp>MLc{wg0&*r)F*ze22!)Ac`Rv?h&zsMXpZ)$ymd1r&F_ZlnQ#3u9eSr@m_#N@-
      z#ixM;okrjy75#CDG9OUpB@qRda$NB#&yhq$c}cE;NkOUT;<2aE5xgc}UzX5@I_g6+
      zs_`Qq=B9KWNSRww`u6ZJv=xb#Qa1vjDPJhVg(Go)8;iSk1nxz$Na40AA;P9YR$2W7
      zy6^cvU|Yg#wam7j<C8zI*XwH(nCl_03jtNZrxLTA?{!WFQ;=Tpy%tmp0>8DtfLkG(
      z^}yy!WWPeF(`liAQu!B_USWBNRRR)Eeu(u^E>B2do0R=8sQ!B)U($itG(M+Z3STy;
      zBt=k>YalLAM|CT8^^m%FpzeC0?mIue86l_q3^!DQ(@$_r{B6?v<$XmpeoZpALSAM9
      zc^O}xPN(1G_U72!riGusj7`M$*xcR<S`w}|zyI<#W9zNqwtxAu-wn;2-SbgUx4#XU
      Rt_4+T@^d6e@5u9a{|8irY?=T7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf5fd881cfe816ccccad37aed692fee01b364fce
      GIT binary patch
      literal 3586
      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
      B@C^U}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0710442c6028bf5167214800a9d89002045e0b46
      GIT binary patch
      literal 458
      zcwUW<K}*9x5QX2gNu#k^t=dx$y@=X^!E?n+K?npdk>0n-lCH!JZj;i#<w@}15Aa8c
      zvx$d754x~BZ-@83+5P(d_yll^a}O=TMW(CZS*%4+l`0R6%;YARErkhnDmOBXOQUq=
      z!68ikuv!_**GlR{5;}KEtMZ;OxQgmfE_4<&xM_GjCpfbrl|I_o@4|&o7;ZbaX^p=Z
      zDJ>tXmxVM>Vv+NVepDnPp9`bx{kQ3qOSK|gM*sTRl+a$4#<F%^NpO|*5-242aZ#B>
      zJ}5h6umifWag4w`*hRcubhvt~LhjnWH=YdNvG>NZg#$i)uE3a$6LeXP8XFFARAW5!
      Ra9qPYoS@Hc!fBm8`vGL-aBu(s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dfff383393d40295e5086453c0486005bfd15b0
      GIT binary patch
      literal 488
      zcwUu{K}*9h7>3_(Yget)=~VF0!;Wfo#q-321EEm7RCdqWtc%nXvqtu}JP98B0sbg4
      z={yW!h=JsL^YOmVmwbM`e*n0`v4<8REToPe*$azwEy_sof-j@-oT*sme97~)RzeoH
      zdN$+AgY$R5%9KBAE;CN(Tnj1c8$xiJG@+8oB3g%z;<E|C8CN;?(Z+TcF8p8qb>_<7
      zON8Y2`f1A51Dlp+Qa`COR!*1__Wsj!>bY1DE|Y)!aztn^YDGBN^kRZ5Y>q%N!A~o#
      zGJYrQz+eM(Xi*rzuwfUO?V@9<XH;yuw(p&X!5g+-jcj4ZoW7|*Xp9%=8Z}tiu#3G0
      T<DrNB2Ik=aed8t^HtC~pQlflP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da1645dc711287e2941f5de953d37158861f3a4e
      GIT binary patch
      literal 654
      zcwUWB%Sr<=6g_wP7#+vf_xsU>V(Y@ewc@5!P>N!e?$a8kDPu-5Q}MGD1i^(L;75r!
      zV?neo8c0rZbI!Sk<m2=09l#+fE*!#cs0Tq`JcwYBswglrl#fBHu~Y8}(|Ei$GD%dd
      zUE~Qf87&ez3@$r;*-Z&fw@08lAupLrm}~xUu2Z9QctprWQZws}P&`&zr6*jf*4iwp
      z$G6f$4rL!x@CoIn((+<(*OBH%bRuaD<F1I>!YF$l7V~LOC4{}^SlKzjL>hmmAuLpD
      zqZubbSoYy!g0Np5)3(<3SXL%@*YUt~<*BmS+*aejY6<?C*3#4?kt8y4u|-(=-<VMP
      zZH)>W=lGNCET9NGI9!I4@Uk1nJ{j|-`4ljc<?g?t^voLvGrSgUv2c!A-uvGK%we99
      t-vNsw;ukDE{SjY{iurO1D?{-vqciNh`hRC9n`_y+jtxdH>$r(+cwe0xfgb<>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4dd3fd602f9de4b50cca3ada29c2b3f4046b7110
      GIT binary patch
      literal 516
      zcwU82%SyvQ6g@Y6q^8l<TB}w;gbJ+-N7ss*P(dgPt#;vV5{GtbOdx4Q#Gi5{xbOq~
      zDDie$cS0HNIrn+)%zXcRegQbeo(+qzKZ-Ijk<U_OQyq##jns?icU#_ACU=pZ+Q<{C
      zrXiHkNZj}n6>zplsGF>g#Xu!mhWb_dp(0qpm_Qyo{v$j0gyOkor3*r?-5C<{Ui_dO
      z<WO-@hD)gQbfm7cCtoGEbB$Ur4rDl#tjqBtnV*hzN;v2(x$+sI)n3}v89LzA1ZNOu
      zNuVzEY=_<N9?zx-?o|}2#0zDbs?<i4(D+}HQ2G<a2}|bK3a}V$l=!C!D{z=CKKxvc
      zS2+^Q#9TP~z}mYhR~d^Y`G$2yciw;+HZUueQC|!nGFyw`&HsljV-15_*k*Rj#vSaU
      F`3s~`XrcfB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d2299f63e5985d7bb12848e5f566e9dda91287f
      GIT binary patch
      literal 515
      zcwU82%SyvQ6g@Y6L}P4gtyL?CphD}y=vr}8Din%JE8S1iu}+B-m?TpCD_4RGKfsR?
      zZ_+G_GTd|KKF*oP_s{1SfJ+?Mun31Uop^KcD!e3CfoJ4QF1%syq_5)#p^S|pp_cUn
      zp=aLxWG?;KMw!sasw(tG(kKzAH!%q$q4cCo6ceaVC`Zx{^^`Z)N~`#WP-u6?gkm?G
      zN(Tj0TsYVuR0m4SyX0je&EwLhJ_vmgj0IbBo)?Spvx*2ugTF6*ML2H%H`5tAAXEs>
      zC`^nmZ&iANJ?x#QB7)o3TAFSkqDV$I_6g0^jx5SOalwuSjuI?J8*BX0g!POqUi?<h
      zUCumaVlJJ1VDmj|R~gG$ae*46yBxq4>PQO?wsY|*vz3b*tHo9pI~g{yi&UPTxQ7;6
      EzjlXdoB#j-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9be6348bd044f56b7074f6ff9168fe25aa5c553
      GIT binary patch
      literal 549
      zcwUWA%SyvQ6g`tZqG@Vt)%skxsM5MHxK`Yh3WZXol`h;(+aXR#Co-9cevxZef(t*u
      zj}q_1f(R};!+oE7?&W@dy?+2W!+{Hjp%JPynDIv*q((-87NK|w2AxKq&&Bjc#}7iA
      zXBT;fYKDrq3WMwMOiT<zUJ;6+*843Djg~4rXDBKWazj;i$B>JJBCkv73#p{Jq*Svt
      zB8GN66&`Y^_$a|=sPv=~{d7JS`j(HQj6I(4XvDR&@gkWw_cCEP?k%%EZPRKlhir{J
      z&=L&ZFi!PETuD349du4@D}&!vO6YdPlSCvg_898_^D>nGFyoMTb98ts1r%YQi<Qi-
      z!Xxd_ryCHiOi@6VS?tLh)?Tx6m2}Z23olqF-~R!ih7H(a37d=NBeKq-dF%gXCzE=n
      Ox3NRk%O>t(AKo_+!*o~x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7e5fac75f3a2f10d4521bd97c4a275043bb3c53
      GIT binary patch
      literal 632
      zcwUu}O-my|5Qg7M#*7(fP5jpVLPQ}^bav0mf&>L2m?bL_ymgW?j*dOj(<A;Z56i+H
      z_6PW*WUI%3mw2$7uA;i%daAnn>G|(J0N?S|M~SdA(s^{P?p2iAIEf68_#x^ZZT?gy
      z<JOfjtwd#6m$N*vK0HFb5GP8HqE7#s2bM5p(;L==jrL^NnLF-i?p*GRIMzdcAkYb6
      z!LZGZKD38=*tuh)Y-;4>f>1e#b!>kS%8h1^;I+~r2PmT!Vg_Lqgt-t^1cX{U)_j`Z
      z_Su}Ne!_(Lb~;c=Pnp=o<4w<A#TjAujTR@~SGxVycvnKR7f5S0Lhvii&47<%SKIF%
      z?KuJ=Jkgq8GC1?`nXo(=PgtB(0PBJ;%lEl8g$ms8F<p3h4zVSf@<gKhAkl$DBtF>w
      zgW2u!Z`2<P&AixINAb?#c^9aPUy!}<MU6!)0d)vzc}&_8UvgE2wDJn6xP)<XsaUIp
      PUBkx$B;Sco_=4a+Jl>5Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE.class b/libjava/classpath/lib/gnu/java/util/regex/RE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2b08dade120fb537267c1859e6dc31cd88d9a6d
      GIT binary patch
      literal 29673
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/REException.class b/libjava/classpath/lib/gnu/java/util/regex/REException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03dd2facb4a9fb59ad2fa2219caeb3db4ca07128
      GIT binary patch
      literal 1846
      zcwUWE*>V#{6g@4;8hbpBg$)K`mKYMyVl2oCF(Fz!b`)eGBq2wT1V&Oz8A_f}jYcUa
      zf05-aFL}uu6_$WaLBR*)qf)uu8p~6*vb?DKoVoY(?Q?JI&%a*025<>21p$WBZL6QW
      zZ+vSc`>xqZI=s!dk|kZ=YVfXW+LnS4!>kPG7*;zu{J;=$zw2@amSYHZ?H+?#(%0^0
      z(krE6g<&ddTRqpX+^W&(^B^6`7$&@kOi2&{FGbIk(pg<FK|ga{Fri(hlrF5vn6X_Z
      zTd5T#6W(Qt>5^U$jKVM}newd+t%4e77?+e@SP^()H>sRW4`kH68x+$O!AyD;>*d^S
      z8KMo7ieAN24B@M$WxCfGjz;r)MwMO1wA#zLT&zk~W$h+c5yW{7XAxyMG9olqod82z
      z!x+M1x2Qo8cbm?e7BBQS>)fdr^$uA+leZg2r)oH+z#bWLzcHx^3;F-(=rXlyv)2|X
      z2TCB1sFUWPze=0C71`ooG)7IHBwQSRRSB*0Ue9P#z~N}@pqPS>86tc1jrx7wa1~r-
      zIJC#+ESD;DR4n6~Fy~XcNt8@ekY<?MFPiDMS|T`wtO#C_wN=Nl%Aj$_v7M!^!&~N-
      ziqG)50;+m$v>h6*BTth}w~%I<-}C11I_E}p=OCq`fTDsM)Oq>M<y&sj6Ir#LO~ci2
      z6D69EmP8C!MhM@@@3(05St(RB+yYHg*ywh-)uajeUv&;VlL}u5g&M<rH2W`cLEO>s
      z5iX02uQYs(%QP3RJ&2<A7*3l8ZFWTA41r#q;n+WEQ|*KP(EOC`zSH2VrkLG`Z$6hq
      zE*9tki1#&(fOrq$-$J|wT90F#R(hF|QwdM{uts>whu<JP?ZXkmhkSU3@T?CXCVa$)
      z=LjG5;bVl4`|z8D=6(1C;gddmituS4ev9ye51&DZ*0Xq<n0IK`Bu+4qcwz_V;wPRV
      z7C-q6iN`Yf0{za&?>~?$Kho`gqTBt9C1T=(JS1@ukh@EGmsG`0I2e$-_h=U+_I-Td
      zotUImM2*FtBKBZ-Ojwe?NNH^l;7K!lI5Ii0Kl!(j$uwAA@~;#pYEFe-;Yuy|63aCq
      zvx85{`Iku5c92=0(Vt_juy`Ty9P8UCZ!AXCZES2T#&>XA;%$8SXn5`^ni1f4>gYr2
      v$|G|6F%oz}KKw!dFHe0wrM!A(Deo@sQAP7qlYu%ZEl|fAlp}m<N^Sl(-ZgCn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class b/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46830048af89ef0182e6bb897f4e975c00334429
      GIT binary patch
      literal 2226
      zcwUWG&r@4f6#i~rLLfX!#fH)fSSyzNpp7U}lmY^^k~S1A2nA}(OSptrlDzox(!q`O
      z2c2=cbH+_OqtnqvH*B0~(iuB;*@Y{|m4A)+-IrJFlwciZ?mhS1bHDSQ@0^$6_rHIA
      z44@z7AbbM7*+MyS-MC>S%8r>!*fJ|O6PG?XXXYGfCkw^0GwayW$OqvUIN}DHR$|Y!
      zfM0GFZGnzdeZXOXpe>6zBO?XcQf@%bC}b0SZx*t=Zb+Bc)}&oCidIQLBzdsb)=JW$
      zQSuV?)y*)uZjjHa+?1=&&{D8x%!28R3QR;&Pw77!u^->P6r=O3a?)CrA!vA6M=K7o
      z-ukG~`5@W_V*j6N2w`+6&?D5jK4>yJ-vohIbhO}rvbuBx(4eeWbp+8U(3&y}@?trk
      zmiC;H&beA!86!7u*rqyrPQSBmQsC%5#qVh^bqv>~L@4g70$L=RR74^=n$W1Mn2r#d
      zL+Hb)AWjM#d|pr;37lYqa<Y(h)>UA?j<@hOT^UL=&Zhe#$>^j~<{ce_IL#R{OY=s~
      ztR-9u;$6y7zlLeU$q;lHBSD-IXs;ioV^nbnWu-&aX3Oc4qW-=PT~QyxgzCs78AXyw
      z%CGSF<{Um02;@};f$_+T26Dd{b14o-mztO;spC8@uq;_%alYlGa!%{Gh-RiT6_Dcd
      zk&cgXiG0>L)g@-{d2x0{dkAwnJ^?4V(Xnds3ml3>_fEM|`?8KjEK&Zvbwk#=u%s}q
      z==c;@1rC%blw&$&M<xr7C2%5A=X0r#-LC;VJM3isb5Fpo|CEPfs35^6wB!wYW42r@
      zTDBvpQZTYS!LB4jY}vYwH&iD@TB$cdA^F3>mBU4+NvE|zA^D;f|Cx$sKxoz~+ZoA;
      zXQ3T+M*ox|#<;VxXv>Vj#CVPGSp^#4Q{NvgpZfaTy~*1-`tGiKJHJ@&0lsX-L9Q?H
      zROZ>wy(<=fh_=`xgcsx5LmaN)XsoY-&e+Kcx_@z>ALH82aNq*h6xuM2!yJxI%#aQc
      zs{!FSUI$#O1wBlotbj{YS&F1aFO{lM5Ocg$rTiItfZiwQ;TBb974e_YuB_N1T}%Fz
      z3ZhlKxlPy6DhBQ%;M;zLp+%lMt9Xyw7^#n^)LF&Et2lcHm*WpGrEy8k#A`2Syvtc;
      zsA6G3!H;=o<`|2qxb7;JD@^UL?6Ub0y0WyV9B5n{>1<oMr-&$re-}-09qZiQ)$Kgh
      z0v6O<BZ4a!z*S7)8a*p8_-7)GO=R#bR`ER~?qD51)4PovD#+tE6z~KV{y@>y`dCdd
      zPwOe%CPtciR;X}>7(Ut(r@bckaaVotY5y{6a6OwYnqIs0&{S{MyqDX|qlRlh8w}j1
      z8dYQm{b9fF9$LeJy9oO3BM=U3$2+%tBJBTeZYv<VwzQoecK)JwH`j4@Aip5iO`?6t
      zd|#m(U!xb_aB6PyAAwsgkI`DL-3c0?0@qz`1K8jY`&=tWOCv@%b!q0zX?$Ox6>ynb
      n9`h02sQ9K>T#G-hqWFC2x80QOwV>UUO<qbLY&X6HN4ft2j{oP@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/REMatch.class b/libjava/classpath/lib/gnu/java/util/regex/REMatch.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa08c348abcd156f6bfe1da753ff440509a9f44d
      GIT binary patch
      literal 4207
      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
      G5B>|zMpzmE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class b/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3f9af9c84e5b5ac09e45b2334ddb06a614a68ed
      GIT binary patch
      literal 2007
      zcwUWE%W@k<6g{mOX)JjX2NORM<0rvL<6tEuyzCH&9R&oEZ7fHABtXVeOCB?tQH@4H
      z1uTGKLsfntEGTx~WRX-wP6eu9$AWL*TY%fGDOpJ@2UWHDcHh^z=k}ey{`vKH0O#?U
      zh7iMa*{LUY&D&<O?pt=!<7M7RuBNi4U)V`G^$Pb)-*O!dD#HnBXPZtrxxBs03%-U3
      z!@z;}6AnELC#A}AlR55Lrfq#?Zrhwe*-YgaSeoJ3qU+Rr)A94BUFQnnVhrKzmCc2e
      zIDjFvw5<F~KL)kpdgL6g2xttWnIn+TlR0lxJ%-^fW@HhzoNC=?m^{>EamV!1PLVfw
      zk!&NpWSixhbfP=DxMVq&f0^NOyjzCnhE1mvc>=oV7I_Q`#&n#<IMEYN<fByjq>dL5
      z6Vl5%PGUevujm-WkdR*0ajK<F=om(fp)X@Oe5qd9=H6P1=>CjbFzvia<kLC0RQ(-`
      z3h4&>>CRK}eLH3?OXR0)Ug3^klMuIJl={4m*KvX2cwix&IT?(^GY5|)=X;h@UZ|H!
      z+?yAUZ{RHrZ!!!X4nfD;c!xnRb6*BbSE@F{*5QbsB(!VRBVUVPab8D1UX0>hyr+Ts
      zI&y@Aj`wkeSl~{PUg(W<FBXx~aFt>FIS_SR!w2#$-xjTirxRNuWm?BaqJ<H+RH|`$
      zlaXzSTfE;c6*2TWyx|8up;?P3I!s&hNk*|$qrj`8ku?pUFiaePTXJ)CYIQ3>+f1}I
      zr(+G*8KNRXwl#0#@uN8ue(O4BkrZrf>exb(L9=Q!+Ey`!6^s#@oLlz_{F)^m;?T2?
      zZB|6bB!yBCLKqsNG!s#X;Jx%c2tmxqv5xa`I`?&)Ptc;NkuvpD?le1cr^%7~aG*aW
      z_Xw@i7@-I+k@Ta?3yd3&Fls1GOc*mwOc`gJIAe@9F>MT}O~fC_00#Y!5lCPaDslvL
      zjR0Mzw0TOhPPz@ukoICLB+lYB@l_*9Kw?r7ph8j-a1<#CfGX*U%mCIovJv(XgYDzo
      zy>|A9yuB&2=q-yN3!};Wf8J&n?+bzV-*hVw-Z36x;wOA#&^|@$46SKe@tJ*GY+{bY
      zxj(THXyzW`k}~@<`r7gyRP`|yLRdFC^h0gAC46{m4^a_Wy(QQtvM2V?V}wK}D8Kp(
      z!s<QcpoS^*(7#1p*d^w^z%*>6;h+W=U!#g|;mP_2TQ#(Ma0eeFLlrV)u|&FMx)YqQ
      z$eNQ<1B8uztloc$urE6Z3%3cQiFqc>=K=8v3X{J}4@!{p7#j?Cp(#X2P}bc2->|az
      g2si#{r|PFLAoLo(qfp<|Q2fx5HqlOdQ+j;*AF8^j7ytkO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class b/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c630cb677b69afa7d91d876f22ea5ed249184bb
      GIT binary patch
      literal 5039
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/REToken.class b/libjava/classpath/lib/gnu/java/util/regex/REToken.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d639446e7deab5901995bfbbaf250d21db58d0d
      GIT binary patch
      literal 4189
      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
      bImtA7s?Dm$^bMhWODx}Q%Ea(bsdxFmUW7H}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f41668e1ba9a92d21e355f92c50f4bb304e6e920
      GIT binary patch
      literal 1863
      zcwVJcU2_^`6n<XV<tuAJD)fWWq-YdK46Tj$L2a90GNLq&ZKRgbnQp>{tir;O-J0I_
      z&R@{nbiC?KFX~JZM=$&V{R{ms#^-$(NiIm@jKjd5J?A~obIx<l%d5Zt{0qP}EQb*g
      zxZHNU(vRjNv*fvUr!=tI)^_Rc(rWJ~%UN(9hoK2%PB<eFcC4Q}wqps1ra-i7y6c-O
      zUZ*1vx?wxEdy_`K)@&9U0$R1#vSJ9rFc85TbmVJ=Mic^Z13E&|decA{A$sZrUGchW
      z)?n3K>kvO#@2#7ihB>h1`_QSmoA#E#RQ=>eDgu!$Z>{FEtZi0W6G*fz_YMo}dfmF^
      zwB1dCV7~Bgz}!9>@Vi=7Oh4quQdKw2fkL-hm1AnTBS9*K6QfaF##9)S$EvQ58MuOT
      z0=g{;C-63=!+1wv@|401yo>iZj&-^gTwncajG7k=6fq-Us6M}TESV(Z)k0Iz^gSNG
      za%$t;hVEm9A&@<>Pl13uB&sZDV7ZUXP7pXa5V*iMZ{Tb#+XVFWR~gopnh(oKZ?Nrg
      z;l=+snVOt_uxoNbVvg6nYxOPDC9c-;x_u5LUsstO(`lFPxdYp2FM1mr)}T^o#PAtz
      zg~44<k3VDJHWt{c+3#CUOM+Dk$H7sX9%;`XACKMZd4qLp*_JmTez@gxG6PpRQL2dm
      zKfF}R3ae*CedR5S(Q47J@tG)Qe#b=d(jLwfvwKMVrZSTJO{(}cqI|%N>xg3>XXz>W
      zd3XycKv`*=BdW9{V?bGwQ`T`F7lw?pe9BV+?Zt>Aq&y!fT*Hr!a4-Ic%*xoz3@!~b
      ze_;(epVKq5yU6~5TmUzV*?r{8T1tD0`0N9^wTFAi&b|~cN8lHgV7D;A!6mW4_7-{R
      zs=RAUig4Zs9T85m#P?MZ)0jhvC=<lEO7VisKT82aN;KZHVPP9;KtL{&y#5TC;x5kY
      zAeu?Uo^cMlNId1s4)oxQBQ2*DYmHc667wtmS=2Fw6;)B%M;ld?Q|v<3`r)ZEelu3a
      zG6&;l?yDstmQ=B<1<QI$&;E+gbL3`H+7nGEWy_&rDnxB}WFY!P7taq~r}RUvoLa$E
      za(>G-yiebEn8X8W(xhq)*89Dx;|rf_RLA^C-T9%q()yTF2@-2g{vA@?C~-car4uu*
      ux|cKjlq=%*aC@kDWF|4Uj~n+77d@u@56NmC(K0gPk8t``rQPQ$XXzhZ$z%Nh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72d37f4d897aef88d70b2b1846333dbda9e1c685
      GIT binary patch
      literal 1555
      zcwU85+in|G6kW%jOPvgL+A^V#n3CSGonR+iQowB>nWpU&H?5LjL;$H1&m<WdkE8Jn
      zEfSA;;)Pd0l|o<O)rh)W9{K@%6tK>5lnSX%WO-&^*52#P+WY+d&tFdg%;2_(jKJB=
      zD6M|!edSftB;2mX!DjHFy1cmBz86FbUi02^uwg<I7&`<fkd4xofN%wjFzN(Rht3+E
      z%V88Ib2N&syH;ulXinP?hLFVz7IHYwK+!EVau67?pu>>XNed>93FPZx6fC8!^&npL
      z*0%#@>g}et-SFa2`ujmG*$T;bzJBzV)C7)o(seiTg9ie+mX|cQR#o*E#pjkgTVAZt
      zfnOWY|CVf0D;=86VGIQm;{#<>Fbl8ZjDX%ryf_iaeCEo!2@7XsI2%O1^v_$k0E4hl
      zo@*Gdqhz8eaOQ~fTPS0alV~zDpY(-yq}*><s7Sf3Gzy!X&is8Z=7<EQEpEx10>eqW
      z-o78ij@O~wdeK=cIWqsYg?IMzAMflO<iltuW&epI1r;z`U#l4i6b{vo+qBL<yNi&*
      zG-qfy(jdF$r>z|dTdb?<Z7<rat|W07Z7!r68$nzvHHP3|(Zp4O(dT0<T*Gy0<MA^h
      zUp8|}gWAbvt}M7Iaqd7IkJsj6ogSPYT4|?oGq@JYEk5=CO|8f(OjG47FKdQBUJhmP
      zYVa+iImjst)AAYD_#P>b{SK=<-b21z=;6e#s^S!%Csn?}E>%`dBhS&k$Vj<g2OFb+
      zvR)#OP?luOC`)om#?yGY&nQ}~ljrD_A0t2Y7_U5i1YLCZz1RAljLS%6PR5iqs}(YP
      z$k|%vCy6LLgt40ywkF@2D9q}=;PxcZ=WP9M!T%E%Gnh3dZM|=qwqculD6`dxA21<3
      znp1zEx(EB2_tqXv(G}fYUD&#<J^Hsh^{H&B75uwBoSW(%$g-rKvp9}R7{`0Ki1#T>
      z4Rg4RMO?uxS}XW~0)L1I^GLCPZ@2*8;wru;;zzi6NX*Yf{>E-n(&fG|2a@*K|B{ll
      zhj+=5A<K8<F(~N_cFAT?%sXh1)1c@+QCHa0AY+BxbCe(CpWh$$b+ryaesbjVCs>fO
      jKEaJop3QnlrI-0pE9yX_efYtF^7sgKHWNIwtXcXGlMYM?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d9a72acdf6ba0617f6a86cbe9fd0aa54ebd4b35
      GIT binary patch
      literal 2786
      zcwUWF%W@M(6g?x&NLU`gKt%8>JQ9drNEj0*ATYtQ2})#~;0Its@K|cg1J=k$qu8cM
      z7J;82E3#t4f>hxcQWQnD*`zAJkpBod-6Ld$vP?=fGu?e}-+S&or(1vg^V>@ReQ<*C
      zY1m(MYN?yncUG$A+KZ`*D2kQTrICs9E#YJqtV$5NhVCt#H2Crhe9dGu1Z<}&oT>(G
      zTEq5|<>nVeAt#)oOAjqehtsxWyMr7=vYF}Vlm<OhE{G8P*lD629bAZHqf>3ru-ils
      z+vMmy69xhrcIIqHT&$JmL}kL7TNL!kmGjo(lvT0iyuPTr3pOzv%)O(uw1#cf+FaHt
      zh!w)i^I;8sTNcn!6z(XomTILp`2CS+wr;RinhkBL&<U0FdSuhAGM&mJ3h5TGMrDw6
      zbW3X+KE&Z5K5EH`ax-xRAq|Et6NcEoh>0j-8g?k4V~!YiE4EYAaQNM5v(afuLBd2E
      zLhVT6SP-cevT539Qeel~nyPRw*zSl^&~RY$WR1$F6y&9v+lsnoSQ>(*RaK6L-Yw%w
      z%%7P!iBnWvo*~Y;p2#w?HK$FS0reP?mXX^vYmp=xkxV8^1#5Ts*s}Z~6B%sNVAdQv
      zPr;sBwkksIA2D$rUubA|%enHhsAR0FPywdB_*oNQ*6ou^OK<GHe4l)=L7f%h)+$c*
      zyuI?~q$t>;ssu+6d*{jHX6B)HlecAKvQp0el11%@oLcFUSQ3^it7j{0XA8d60ZK=w
      zLzu#qATIMzD5pisDW=9(tF9=SxC&x#vnmy9HD6v@)ewv1HoV5>Zi>8{&Tg{A(=V@s
      zYbM4qL8ctB;<o14!y-X@enCepSM57OaXleQON>yc$xnB4e(wMb)#m3#B`p&Q6oZ&&
      zw>S4Ou>hMfEpjNe+!L9}L|erpwPp5kUu%14yj-i~#d%v^R~=1PQc`ZgF$%}eJK7JQ
      zy!bfs$*WL(c?$WJPdiNdZRhAVJ#~INW8Lf65$j#Uu9*J9Si_#!Q|$5gO#Y&_hWXyh
      zfZ&NRkYbQy*u`_Y568I<#JnJQpDR$KPDl;QQ5U)yL5_L|M1t$Z2lez4uJj7XY%d=-
      zas|}tCn~n-c{F10|DU^0Zo2yb4%T<yBNmCKFBVTc#i4b4`~bTXS2<+3`0N@EC7%3e
      z8c#gOQ6ID?jYM6l!)KUekma3ap&3Ll%m$69<OjS2jpTjk#|Z_fkHrlzicemzbwID!
      zL>X^5=3hfx)imfIFdiWp?+F{T&+(}b19~j1OH<f5v5xdlF#L~W1R2+fFn-_A!bb1U
      zum93FnsJ1@gExtRugLo-X}d@Q#&8s06XzwiX%s`4P<RKu{0+Rr4ZOqhkAV@}>3<gT
      zl=YGbNv)0@^!c1?2JO5N>($)lOje)l?s*79e@xK36x?o(&OO7hw_KlH@MiuE+@9R7
      zP`y{tfoYOHg9NTM^)=bRnPhF<3TG0zy4*%tr-vj_mx)h*TOv1_B;spC8)Ij@ozIyk
      z$Zx+C$be2V6e|M(*<}PCp(_>->q<EtVLcp}9neX^qt}0jjkgJyW6C^71r{?;u@w1#
      zyg=%05+SJMl7e!<OV@zX-yopBE*LrbMiCI;PDzT+s4)^L3Fu%{NspwFcVNAYKWUN8
      zydM7@+5?QoUqK@ql97iPk+V@%S3<sK2YX)_r<BJ0ow{Eco?$ZK%{TnG7VFe`QBZ*K
      zb<Dh7aE0S46;k7T8F8#4jXUh^T}<M8T*eQo;1eFOM#0zl`<Ae~sH7WQ^Ko|{W>vv)
      zGHJ0iU9~e`FK$SkBHnB2#QciF<&7&Vq%1!Y&pnlGujkpw7Q#*3QtDV#drJQTxX3L;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..47cd3b90e59586dc9587a242e8fcc3e4c8531e8c
      GIT binary patch
      literal 2560
      zcwVJdO>Yxd6g|%#$FUiR32`7bhNMs!J1zlA10*4QxCwO$Ur9*X6bKW0Y!9)=kv*oA
      zN|h?Li%MN~1B*g8ZH2O+5*W3Mid7fg_WzWg_r@3$oUmZwnLF>@d(OS*-TVB{e}Dc3
      z;1Kdb_yl$pochpB^OiYOckR+p)hbxGho&cHE6bKM;pBqQ1Y#Tb2m~GLi<0eF0^L)}
      zsbo5Zp&7SoJB3jOXNy*Lc~R~xO1DMVs+MiXbSu@GfLIXF^5!z5JH~9scE<&Jjm+yn
      zi8(r^D>*9+Kep%yql*hhCNUR+z*Ze0bV_TRjsQBO71a?$r$E;fSufPfOICH(Tq>zN
      zD_OHNXI5?b-CWe%qRoW*r#2RZ6?N9?OBp9;-Ddh3f$i<mU6A>TC8|@i+(}iRW~jwT
      z!E(==x9xJhJY_irw<zE@62u9VO*hN0(?;7A(nYhXSgqXXIys(~0HcWoDbag6-o+ki
      z?bl&ok3dM_d$|N`XQl2647`zw6_mehW)|O&_XWeO((&5cR<Yr32nTUEh(qi4rgGEq
      z0b;6H5^lnWI2y#T!0tCBrsEinvmdiuI_-L0mi7bBpG(>?9VaAehm|jxg<2RVCG064
      z?Aj)fTW55nF+lH9^Q?VRNRj5DXNyc<+~Lm_=&M?8z3S8^Z6@ILg(|_SsrKNM^yXPc
      zyX`Y?sdOfh3A3&XIxgZ8)ykGCa+rIJ#4Bxmap|U&bw|UTs|&KJW^~Nriu5j;HZOtx
      z_DMA7W>gm7FPm~=%GAJJUcZ^V0IHs=msfbc#%sfMrk>ARRo)0;T*G1z*C|eWA00Pf
      zQhak|#d2~IES*>nj%ih>=8pCE!!wn7HET`U^1A4Hc_kc>5mb;R@?!PFCvPBHK6(GB
      zcSyZM{DrZJemboz*QI|n8GDM&N&gc>lBp-?mR8U2Dy)~!UV;Hf`8>klW9Y(h^k4+r
      zx!UgmU<djDWxazK;iV;0@F~KbO~Nw2wRVK@HiRddgySSUNy1Z#FzEqoNEk(&)yl+n
      zVRw^yoI7%_BN-#>ORlh5O*8f*h2QIWweUNXazd3l(8NmdEmwU0)fP^NS~;sQbZ@tX
      z!CSByInS&-#UCSb58>os>M8cFs@J}kU|v$^umw}=sGOh>UeSY0M|!`H10IPe(OVw=
      z!@<;J4E=#4K8(k^M;>4szegkeU;l)l_!U~}5wqyIi?i`a_yKk*Z!M?%hqb5{+57+j
      z@hJ5ut}MQ{;=88NZ@e%P$`BH&`)?fc4+o?b4Ky%5ti_|+eTngHKq&NR;D(n@RCzUU
      z`se5W%IH?*ORN#N#1_4bt(fM~&anDvN<YiLkSnZl4r7#Y0-sXs1>P5*)4B?ib9fWi
      zQR2AOh;j=#d;<&LBaa_Yz&#Z43q5|Lhg9@q4h9u!Df+Ob=)<O>n{b~kF+nZIXiw78
      zh`67u(z=Di#E7Xz&ES)@jiIe=j7r<aILGt#B7bb2nUQMX{4*RJ(UJ{Zeg^+Ypf4aA
      zn4a$o4EAXa?7fRXeD#&a^M<9$Hm#u>E|Kfl$NVJUxQE%|Gg?&|t-dj+XpHP3j><gO
      xG@|rU)6W#{0`>JWJk=ba&cVpu2CmMp9icl^^s84!sI$e|$@9o6WpXOU`X4KW0!07-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5a3db55d131881bebee2c2203930c5389e185e4
      GIT binary patch
      literal 1604
      zcwVJb>rN9v6#k}n%2u!{f>17Auvb=;i&B(ZfHWy+gkUt9xU|!DwYzP$y96J?ckluD
      zfeC@=4}WUnLmAIZYi)p*7@O?Q>6|&=<(%1{zrKD0Fo`8UTnwqA>8S6tJxz6Ny{uZi
      z$oJLftJ{_L+*~#DPYcg1zNc55+J<K5N`814Mmv;j*_vfD_~vy}x1TV0qM6tZEi08g
      z55kQu1zrRh`l6YvgeYrfQQfjF-7KcX$)2ok@=eFs<<_>gTjmVmY$d0acQi{E{~Mbg
      zyQJ3`)a*aWPcsB+&Thuc^L+-EVdyP#dqdmT4adlGvuKwX+|d{%x(rdUEm__~&!t%@
      zX_kcI`E(l{b=FwNY&ZJQ@5gn9kqcN94B!TXLYlK$&6ed<743{K+CHS<3a$#KVFe=y
      zlRpAkGIOPh)rB$K^5Z7MU<Vilx6#Ys)rAyMGOpmR*zsu+MW(6_&3^2{W-<7U4@O;m
      zq@#AyS^n#Ez~Z)JnYA^YQ0n87D7+@8_KL1mf%LVcH~yrT|8s<ySSARDAtEv~x;vh{
      zV^pbQ(KEMr*(nsbMRz%X83xzu^&lQ%&W}f=?)<X~(wG;GtX8?1XGop}r7P5ihbSuK
      zufKghxK(ki9ADGLcQf4f+n5jl7$uW#h@X!hFTH746fMxMi&lSpkewj#nL-!3=^d2Y
      z2|AdBLQ!A+7(%!tVf^SpFM$A;5pIAbX%#yz_dyfKCwEkdq13ZY47$3F%8w+&Lu)GW
      z1=kohQ$G-lCz2-^Jfxin_3j9xZ&OFOlM=xvc$0_hut_p3K_1Y1io{GKf*Fj{8pAAE
      zn3Lr3Izf{>g(&5jjN)|4Mb+bEAtC#e!o+D)p3|nDoNG$Oy+-BBhN%!aImYC7cq0cb
      zovC+tiQ?rJfuSZ)s3|bi5GbPi)OEKsJJq0Bq>RV~65;7%%)U51!!<g!-ZH~LlOce|
      MWJ1_mkTr|H0imj5DF6Tf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15fd74c5ad2d270db6b8475ab2d60ad79e1e16b0
      GIT binary patch
      literal 1668
      zcwVKGYi|-k6o%gc%FVT{^lI-|MQ(-O)V9=OuNI{?u}zIJept#BR$(E_uBrdY51KSI
      z(ZnC%k20PaaC?K+L<r2xnRA|Z&Y3g6et-W7U<NxLI2eKj-AaB?KdDK})JjQ%7x;1V
      z_2z!%BiA?e{GOHbz{N0pjT?h|S<^Lhg~1ihL=I?JujIKOPWTjbz|GK=)pY*KD(ASd
      zujWdeA&{*cs-*+f(8RiFbeTo1#xR+^@lYuSZ_UbO^gKUiU>Sz)0ylTmW36nJvs^Ej
      zMFwX$LL0uaY91E%CHZ~0C3?N68WP3xsW#d>0+NbcyX!+A20Z9*TQ2FQU=Vj1I%=kB
      zm<*1086PM@K_|KdVN}7GaBxe98DW}G5ELdS*YjdMso*}kh@my|r?F}gD|lme44(35
      zSrCTNYm=eE9T8qG#8t)=M9@Rl8aKB!ldgeb^?%DLdL?g_tCW8@E4@mpUP$hlhNc(R
      ztfM1tkdp^93<FoUwNjoNUd%BJh0~K4`eWj6b3FB98jnO9K4$2<DnfYSv7lfPOH_2V
      zTIC|O5$fa?Cz6sWFP5q4A|h}_1g06LTA|wlMC7W1HLOz~o0Y~ULvQ$M2>EW}xd&Se
      z{jDn`PO!}o|Hl)^qEg>g=sgU!-}moTEaQ-GY4WvRC~iUoQ3lkI5Fa=F=$X^nL$eh)
      z=u6h<@F~3CXy$;Q{{7M#CC?ac(X7AW1qHX86nX%}0J?Ff$%@k`EDq-vo8y+2gk&g<
      zU7Ha=PcyOrmpolCeuCcU35IAK5o2PPX5&rEz1{d%8{8=aW(hKfam-7Bi3Y?L2;u=k
      zQZ$H%2+I^AwrHs-8oEI=8jGJIdRcjalov^P>6~)NRu0+9AzL|)sitz8e!`!f)w@xr
      z^f?%_Va$dx8<s$_2|J)Pgk>!D1JiE<v!|FBN3Y{aAXUfHI-b?B@#gZ)ZeWx;_3UQH
      QY_&0D@Iv0?OBs{>12Ix(r~m)}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae764c80b6c76d2584dd6e7da2e298b61ee43dd9
      GIT binary patch
      literal 1615
      zcwVJcT~ks~6kP|<D|l1F0`nu$%=k*w(lQMNQlqekbacj<9xiZ%n{Z*S_cruX`VT$W
      zjL}RFJ@(L#YTD<(pe5i#5BGeoz4qGs?0tXz{{92NA~Fgb40A=pj=$GFXmQ)p%W;zz
      zc|HDiYrlHJjf_#?HBN(JDR422_rNkZOwKTw?SWZi=wH_j-AXV7Lp_n<0|w7lJ<n^F
      zUNue?3^Gi0HfW<5T<L0od*H;73I)S-5XyuP++et=q7VHH!&%+nZ|q8roBLX>Op1Nk
      zYF;ZJXr?aqtwWbp(oY$BYP^&k3d~#N)-J_Xu`5|_6s;12GZfAUF?Uq>5okfQ`UON>
      zPN*0Ym+p#Y<xBh0?Yqu?(<RLmPV2m|)<xK^AXy9dycJ%9DyA{R&?mhzB>&grksGs^
      zQ*gg)l}Mn92M93?<+S{XWzw)`(ZDd<kv;VniiAfHQxIjCxgM?JA?7K-e3@&ed<&|m
      zKHaF<7Q^(l(K0BNkFDf%tLbLw3@k_A5fx3ruGA?0P*!5gno*4JS*C6jQ}*#OH>s!x
      z@Kk8oNO<rJ>k7!)-x;jpIjBwgwVJ3ghS*hBdgm^V#1n6-NMeQJ5UP^pvhbJ|tS^Mb
      zbXQwy<SNzRX!m>1Uez}9d|MZt61dt8^THAf)OAk!(J=a`_2dZZ$^kgwrj?6sJWy%1
      zLnjWJ2P4jJxDkndh4%|>9q`dOBuN&?c#+^s7@?iN3CAtm2INXOVDctFvmjlfS)2?+
      z&f#rf^mCiBiCmUUY7^6D8tZ01{;&ONNBc?KZQ0jJw~OYWu#d(Xm`Y53!bt2K_kO}7
      zrUt^XGj`VI^~(e$D9R0rI*AFSh;2*yi8Q&|eu9Y01dG)oX?2j5ACK@@W@{NMEft5Y
      z)CQuyCk?C~N-+&=M7`k#Qim65_DKgBdY@Mq#%m(WUP^VK?KnV!wq<H|r0vT;&oy%2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a77b64b1951d12a210410bedd777a292c59b061a
      GIT binary patch
      literal 1537
      zcwVKHTW=Ck5Xb)qXt}sr#1^Z)YcDL9(yLbKonnI0n%IUWBtC566t;z3vR#_`HGJzQ
      z@WqFkw3zr{eD*^b=Nu>+E%+eGF6Ydd`Oj~LIeh=|<tu<$q}*^Yj2Des{75_1;x$_@
      z$1PsuXYn_wJ@c3w8Ph!8C~>XehKpgKgC~Q-;tWHX4n7G6kHL$Yt)G%B%Q18>>xOQx
      zGK_^f2IkZ(gD-WK=T%!bjT1L+GmP9E(eh$&CCvi&!3n<tFYb~dlvcA|Fx*qng>JFx
      zQ{aY&p(mpoe5Y19;MSgYP$s}Y#>{KwtY+zA-!!`Hl77N4*$KDRH7eL&<o339rdMi}
      z3^$5)iNP6C(+u8<X6H+LQtj={)hA1ul{O0ej29AZ@@)%|gxc}chY^gqG1~SAlx_+h
      z;W0y3zHAy)XKzT&NYAon6yvWCj(FZqh*nN0n8Xx0N`8io|7Fj4iBDA!Mub##5ktd~
      zmg{QGrrG#s0tR>GU6ZHX1U9nK1lrcMtE*6}RH-YW-zwd;E!`+?)(#K3l~A)DEYM_!
      z)_iz^B{!Zj1aJ0L@C?ssptWk18wG~w-=Yb%T^^ynEEHA*O|pZZ6Ke|AF-H{(_>FRz
      z@Jt$^{&q2RZ+6X^mFF*XF~5C(&gis=!wlU7C;cfn=%I@N@u6!$Zx=mY_~_)8+%YJ)
      zL#rHFM1()={EVJ(<O+fC;1zm5NtGbI12T4w^yVpk0X<m6eX@);;?R!=GLK(oWO5~P
      z3WkRmAdAQorEhWOaDHqlH@ugmn$kFJsSRSN8Tp>_NP=h`!{0En6TU<s602kU96?(5
      zo}-Ih#G;o7T_F^^XquuI?4p%vn23NCqFO~S)<}CD6WG8Mwy0+*Nf2(<c}*}!%rQwd
      zhiSw~$wNLfv=VjClC{BS(21xu90|<VvA7>;0C@akAJFArsUxv3iR)O6_*Jp})!QKT
      h40uU&uc%iUy1Uy@u_Jkc4b>J;n0Pm37n3r6>nG@ZUfTcw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c8b3a3deb75e6918ab67959c5b1e3d16650dd51
      GIT binary patch
      literal 1065
      zcwU`TO>fgc5Pg%RapQ!xNlPe%LJMt4qKJqC7gBL(#788TN^O)I2RGT;ZtQjC*eLxs
      z+_-Q6sR)S!KY$;F7;mhApa}>|-r1dx_nv3g-@bqO3g8hQXh;#BSTbs!nQzQy6gqA*
      z5SAD>kDhh?p^%2}5BG)b$ia5vIWWV%{Za(tP`VcyGK9*Udcp$NiZOvYgcVDK2j<xE
      zBF_-g3T;BVTH`>b?GFTD*>I$I6?rEj=$a=kdrF4iH{G5YIPp1gW<uK;5%!G#7v3Ud
      z_Z;bjPZ_S-sr7WEQ7m8y%Q+BM3s^vwkn`fAuA+Ngy^^nOn?Wc3L@{X15Tuw}wYkw8
      zZeUfz`pkB!G}X@YC?stCRSZG%F1$(A#$0Z0!65R^nYwDI9M_aq^EeC~Y3)a+ry^+8
      zdW4kEU09!$LC}x=DCmplPCTRXA9HvZ7ZM5`DMiqB&Cy7VH0%&|{%MSawW|h+O&(X8
      zZ!_zQXU4k>zZw?VljB{3EwN3d-^VL-UbD(0kmt29iL$+h_~9FnRK8$uifz80{*0A+
      z<r7LDrw~hu^o%Koe0CL7d6GVb$}2%J{2Hz&pog3jR~GA+C^aroehaPfj(?*Mzp3*T
      z<mM!K3R%QW+*0u(D!8o(H*hBbf2=UL7e94Qz=B`&(G-kuSG6yNEtP){_u1;IVcXb+
      F{sYXD@ZbOd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e09060fd270af8a5c2f830c38aa6694258b7955
      GIT binary patch
      literal 2393
      zcwVJd%~Km?82`Qb&UTfE1RE(7YH9O9p_G~`;X^=ZQ$o>#q@|^0N!}z2n+<L@mEN4u
      z@jvLHGaVgIJ?MeXlys_Nr{mF!7tbF33mk7+pLaI|W}3v#n3;X|+2`Z;e7;Y9`R9jc
      z0EVG?;b7>`>y@ER<&H8`F;#8I;Ca3?bai&Qw8iyQskAlC3#y*=!o|?lLY2W`aE9(w
      z3!MamPv?2XRPT@~TV?Q!sk&-TF!Y668m>lG7^K;q4Bs}@l3w=WHHPDjE$Uhfu9;Gn
      zOK>6}!;d$J5l%){{9t%fh8rG11!Z{QV`xjMI=@mWZg68++0ZD!_EagOXe)}LitifJ
      zWfs&j!|7Jx9+ZtT4&=GHpzNr{N-@Rtyjfsyh9gM^e^D_rg=GtFt#SG@1;t3}S-!)w
      zi6#yg1V|#%QYtENT*lkz@}m#$cyXd>FD(NZC(+N~R)uS7RPqQ;BjQE4NzD(1DI<y)
      zwMwg(fF>-QOg0YiaDEbnc1Fe^hRAb9E9q41j&LMp*=UNMA6nel<QX#|f*F=^4qY@q
      znpIMf)_EE4il{xMT&~PbFD@{QzEYD;);Lz~m$<<fb?vT%I0B+@XT*_^F@|vwSV2)~
      zuzFjMYh+azP0IKHQ)FZ{nqlhyHhER#IV0mk%o1wZR1A}@-HoJRUzBl4u$^3#oLaYC
      zAz|NtdSvhx@74lrc6n|0gk4l<96TGfzWPjK-_n&;b2;K<DmE~omd(=kHa8f?UhS$h
      z?1FG=@L`%kRXC{>w`p?2hh}2QG*mr5UCHIRk%+ALa9v!l$uS8xu;#^0hR(*yGH&5E
      zC8JP~BAJ1gQ4^77js&_Q5H>_OGcEL-pew<Vrh<s*r!<W^R-zk!w3!WEo~2U7$nZH;
      z?3>P)3N<JU8RVp{b7MwR%4JS?9gWI|v$WuxwCo-9(7uEC(YB-0MUNj6Nsd@w1c=v(
      zS|yIK2t=Jv&=!sDp*?zR4;_yzlukO^E!$zjJ4f~-Xv2BDMVwyS4o4BP`~)nI%%X%(
      z5d*Ct;s`$j^cFIQ^ZPoot$o2llWl1o?HIakONWE}Q_QR*`WWq1^i0GC9;3JWDNZ>t
      z>KdqG;5qt6-8CW|ay`XahM09`<DQV4w1b}YxHsf>?xEK@M}9>7deHj>?~VFw*!Q2q
      zIqDDjL%u3T)AV+Q+*M56$32pF+=rX(I^)tq<OJSyP#Sc6gS4RMY<j-Nzd0E6WEc09
      z9-ytxciHT@!#Z;ZI&(FhFC`X~ETd=NzPJ~1i)5{^i5Q{CL+;&LL<75Qw_eMfRkty!
      z`#6G_Ko2Hy3RASzrfDn9V2-v(3bRNPmBB@9(fardNqmmW_zLs*nxx-h0YBpke#IjG
      zApW1YiodbMJXmIan(202vwF2{_hY|TL?ua^S=2n?IOzXXCaiv%kRV<V;$`Y#5B?(D
      z6irDSzvCm4dML8r@G((dit8uxwnXt~@CeH!^WzJAicd%?k&_kDuqR0;d@)<mSo^gq
      zR?{)N9KJx`L%0LuRjj8)OJh}JVu6VGJecK9@(!$#zgsk$w{ZgNh(NKj>a<bo6BwnM
      V=E<i61<PK=CcP!%#Oc|B^e^SWFA)F$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..109851311fc32cebad7b63e25ee5d05e958072b9
      GIT binary patch
      literal 831
      zcwUWCOHbQC5dJ1HaY)=I(3VG^95^Ha>f}Hr6vQP0QOQMBK^%Hp?3Gz?)@Wl_?SJZ}
      zhpG~X{(%0ds<Yd`iGvTjo|*j~Gv594_x3k{5jK3(2!m9Y;g$Fz!m?0VXk;qChMx}4
      z@@uJ2#8f69O@1Ry@ojVD!y^nU<Bx?-GHD2n;!@2vhwK$qC6Af4ue2%-2s^#%wEj84
      zo8*aH1fd;Z0gV>wcoe|LW5RBAsk`=_WG7Nuo|MxIY0kt&CJD<?9*gW;7-jQ$(X)dR
      zwyT?rc+jTOaaJahnO<+w|4g8m*M!hI%}W!@BW1<c9};+LT?oN@t)-b{Vm7lfokLd4
      zXG*6ZWO11%K3)=fRhtU%8gJM<mBsxP9`zze&4f<F)55UyxL<wDyMKuxUrU`|A9cI-
      zZaAv(^3mk_B1e0i+e&+|^%JcD{X+1=fjYdm+!0}cn&@&AaLiCFVcFH6;OSiE9e*vh
      p=6%0sH!PY0$6Wb;I%nGG8P{xUt1er^y7MFF07gCM-NOsK`UmAY(dYmG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64eefa696ceac1b3cb77b2e637a8832c2d7bf744
      GIT binary patch
      literal 566
      zcwUuJy-ve07`!h@n>G|$%KydyQp!L8i3!9~fk3JXf~o_Xn^?ugb&!)FcoZIk35kIR
      z;Gqys$k>5e@}0j=zPnHM_s{1SfJ1D$um}fZl?4;_%z`WxGSGa?UxM57LHx*7pG|pm
      zqvI#8)7PC#rXtC;3y07u6q2cNa6OvvFeOw^g%ar*!S*{tg42y7?!iXAfeNaGW=|;I
      z&!!`;2W%ucq1}r^CWlOmye^wg`XCa*QE%S4P6#!jLYYO}=pDb?xhEX^^ZRs$9td@U
      zcNb?m<QF2JYipKfKQ|^cu9V`sD_N58#Kk(n|8FY6Epwf1lWHShHmv;3OzoN~FieIk
      zdmpI1n}Y?<V6|wzVZmVI?}Fh)<lnP|CeX?|t<q%IuvMBY&o;4&-7atitA@QIc?}zm
      F_Y2CJg~tE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ac5ab21aa0b2019968975249d361e9b6e4dc6d3
      GIT binary patch
      literal 1238
      zcwUWET~8BH5Ixftwp|v%+Jcmd6+zn~6h9E96qSl`lLiQ2BfKr`O<CFAZMIv%U*S*i
      z(HCD#6pSSL?vFCgE)5bu<e_)x-kCXb&dj90et-V~;4X>^0)(lWY~|h<Z;f2bHLaW@
      zYGOCHvan`v3%O|2MRnP+8^UqljVv#%>aSlKvT6xOL5MJU;na2(L2-oZxe3FibF%$X
      zc|zx`DNT2d5Kou<P|J|D+^XxCvX;-338A806)J-0(x5<NIqCCo&t%0wDlVZ{K@Xw#
      zWEl;Y5hZlFcFEomPSI!zLM)v*%|}HHeG1}))c>Su=*Lw;*pzPBuv+3D0(B2E;VB#B
      z)}?iQV<S_JfN)Ji2Rap8CnWx+t+b?T*2ThZMKoN~mI`hV`cJ~nw@j-loG@+@qOat(
      zw0C5xVK>d)l>U4sr6Pq<uVmP>Zfi&*!-Fsy4I!(9@w0fIdTQ6mdk|w9?sy#xyY`_|
      z#SlgbJtb3$#a4Y&IBUkH#XX3Y?22KP4afBE?Z=S2Wi|=Z7a!~KJ>?w=N%nf+r+9Nu
      zecd|iBHbTH#cEXrmkXtfnGLV|k2TC-nxNGUx3aY)MRCjEJ*Eo(iUf7lZaEe4!t|&P
      zoJD8CE6e%1l)OEb(QJyQf@g&EMFny4aY@`#;)MsF0dEV~3b4%s<1@my_iTIqLYDTS
      zj_slQ8?F?Rfe(mh4-i`qCWFC!417iMBL)vJw0?lpdUSXnBOH5c57~W;|NQL3PVkxV
      zN>B_P6h}Ap@hJN-LIaqk1aj<89TvkR|E0jU?%_UD>E@RQnDWUz#B`fnf$stSMzUX!
      p9NfdBPe+A1IRupSLHiDajzA;GW7bz(@Z;z3gug1k5T0Tl>K`65F;4&h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5807ea3d6b381b51eca29a1c0620f726dfe61aad
      GIT binary patch
      literal 948
      zcwUuK%Wl&^6g@Yw>(+H2w6vs@M<^{gp~A3W0jYw7#Y+kWLFpp9i8G{b-7!pT1fRk`
      zbc4i8ELgJOqY!u8r~)Zc!ouTwNB5jF=gj>2{rv}koA4c!2wOds2m9i!2=XjW0xf&;
      zUGV(=PI@5Kwm6jCXF7c?b@qP!rHZ4pEAJ&~bnr;1ZX&e<i*RFXh5?FTcMJ((tySO>
      zp?X2MC$xw%ss9mb5GJ-_6=zMthCh0|wo9-=Ze5fy?ZJUZxaGJ0_l!(51;VTc8xw@N
      zR;=W9e%O(EM|2WNSZJk@NOpyeO+VPQvc0%ZXpS#8BviIM8LKGCyOOyqKdiM~ETiJ!
      z452zI0S_xUODLtUOkiPcbYzD7oQLzcz*);Txky-c>F=zccJ^hIHEL}FMf`<47!9t_
      zeUaumk`H3ze`T1*>xPKnJyuHUFcJN}>^rzZ@W)Mwus9?qRQZC+{FK?Pxh1YjTsxTL
      zb&9)(+?V)2U8k>b>(@SG=3_B5$Lp+t(rwsu2QD=*&wI<q<2Z!{pr{Nj8^$6|4@lcQ
      zV?-;f->~##^C#vv>z^?51*;!mTSw)i69w0>QIi$!7VOny+zERH7YhqEvtMEzbJ(>4
      OeHrTo-Y9S2D%?Lh^6Ufv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a0cdb5359e1abeca943ad6605574e163585b151
      GIT binary patch
      literal 868
      zcwUuKO-~b16g{^y!@y8L3s$}=h}E=39S~iiBr;JUX^7F<g{&Uam-2L&A+IyW?p*jo
      zbmfK(2}a|BAK+i{Kd5)6O;?iC#k_mY&AaE^d*A&0{o@?KI&Rs>5gxb0#C;>)2{(yV
      z;A+{H@7)(q8qr%B?ujGWdak2mspD?>RjB-^B|Q<#cBGZ;?1-=xNNvL;tPL&GuOc}9
      zK#7ps-zJPaRH2Hu2v%i(yV@j}9veC^FrJ5vJmEp5{=Y_>)#exolX+MeAxza(DEE@1
      z1F0M0AdrMYJ@Q4+6k4UcpETn`#cg@R+g-GtO~R-O{UB+jbD9;e`r1Jevo@|0rZee4
      zgl*S56k7PP)OpNdo?y3S+~^+5Ud=9neEvLE>+h}0G)*gB<;y71zI>|E*604!-rdxQ
      zklzhMsl7mSI<jM<OsEVyAYt~R5wXk*Hu$IFcTBg;D96~wD4%1@o-xmH9Iw$gIJMQU
      zm^jTYP4PLImeMLLx($c!;1cJGz3aG)0+69pmWRbOX8NKZxX$EQUigkHkBqG^C@j{_
      zFj3n01j{`6XizDo=b!)lGEN3=^J#mu#%}BEb`LYOfg<A-x}Q1MdYS|0G8VANjuw_s
      b!ZlX0IkUvbV7#2^UdIYYC+qJ9Zo>Hs4jRgD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb099b6b9b8162041d2a73169d86520acaf9a82c
      GIT binary patch
      literal 782
      zcwUu~%Wl(95QhKB&8_R!w1q$kw_b#jEb6jgRRp3Imr7BEAkBi^sWWn2+~exluE^W;
      z0lGl~fmrYWJQQN=S`~{d!s5)CIhy%q{?YmU=jSf~Pq1a7MtBkG+&fX{%FDAT_6&#o
      z*?a$Ln0#V=piX)G&Ln4SvdPw=j)G*&zREaE%;c@o<Cu+w24QDrNL59c3n~tQ_6e<L
      zk&d$GghqF-H<HVjRyOKbaA3h9Jnattx5;jAG!Md(gC<%8cMxel$WM>h4AoK0gq1-O
      zsCcAIRK(R|BRh^#!pqs)O<&Be2-_2#kq+W~%xNLb?|rm!8*3Ks5LQcgtaRx4$I7T6
      zW8>g1Is_}^Y&bdNs~TAk1#*0X{UOOsz^|iX(zR*RY!_65v#&K9KUQhVsf7(fcUC=w
      z_H;#fB-^aZ-yzhBm5Nsr-@=^Od5PXgT$6jDPv2qpJKwPQrA%_gE)}J;jwWrurcK<C
      zxAs*!mazhqUK6VVBizKT3hGx-xAOz-{#PtspxL;rUtWV-k_dYI574~^y10k?<-8Bd
      P{D-0eu*(+f*o6HT?jE^D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4e36ae6629bb370468897b01d76f51a76b80f9f
      GIT binary patch
      literal 6298
      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
      Z3WX?#yq5|w5%RVz#3b<UWA5?Z{{SA*Kj#1d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2606bd63e0f4361fa08a85f09e400206ab9eb6fb
      GIT binary patch
      literal 6619
      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
      HTKwXFOo<4f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6db3c463cf1740195d91ec9eee01b13f92c678ba
      GIT binary patch
      literal 3820
      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
      N_(bOUQ@QUq{{=<e9^?Q3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5ec4b23bb85224b44f75217b1267082b0a4e972
      GIT binary patch
      literal 2109
      zcwVJcTUQ%Z6#h;!Nk|xlQi81^wnVK-xTLL!RW21Gl+;j^OKNd-Er)OjW0?tS$XNQ`
      zKhZwf<pVE$XxA!udGH7L?vwvT{LaZVpo@!Z`7m?#oPGQD{`Q{V|N8Ye0M}57AtZ3Q
      z=K6*2tnaOY->^3eo~+58!ou`Y{eg5BEVm|OFa%PkSP6tS>jI)kVZ#=P+U~Y=w|TR|
      zk1^Y|8xsPtY^hjW$yEf5Vtq{}5XPG(66oMXwv?;HA#lz_8{$ejZz6)Il9DE3hzfL+
      zZCBp$omJ^AS*x2;psQT3TALNiv(<NSX*4!$rp}blDr;1rZQEZhxodKVP)h<~TY>JZ
      z$;KQpJHAtvZmqFFMK)Io6xPmBMclC()r}>c@qYH$l*J9p(>dhY=n0tSRFKi!soFT+
      z#rrY5cOnzo%)}L>1R}Od*p4jnG2{d;odL{5KL$uul~<FECLhHFdp~5NfU5$gu5;d%
      z%1P;qxfPve%cptYnT3;m=aG&fkUq6eGEof!2M3D!8zw$Moauenu5xB3A6lMNxJFHk
      zVO*fSQ7_jYO0Q^blln-O^QCd$H1S!WU*6h!t&eF0l3azV*90zlvf+E~_KZ!4O-AQl
      z8<24p*t5<?9;crApIn#JJcS*LgO_l9XF+aBtD$kRLB^WzY?0?|S-Wp?SPP2{&vt85
      z{`$J~Mst+}<}e?_9YQ?b#>AKSii}#U-d$6{in)`*F>Rf>FPyATEY^LmDrao9VCRl5
      z(U9`NRkoa@@d>G|r4&*-t55DT&o({@wA0R{w4?2So_y*jypc~Dd+5yf?x8E6-b43G
      z?boC9+G>#RA^H~3$xKQ9xZdLJa5Dlf;3A-<w~=D}rdN~^l%!CEwbV--2BkFK2~Z61
      zRQ4g`c`IX7-wf*vW>eeBaOppI-Z<9tGWr6~M?|Ag^z{$CLgp8I5W+-0y^p~s=oq-i
      zE92WeWCmV{7x-rr#@K*yoW}$UxJf9JI#IqEtd*#b&AG0V_u)g95u#TQJ_?#p&_pR1
      ze^8@5omAJz4~T@Hr}D4R^$Z>A?EVokV;4qvy!R=}yy$#_X{Gr1XM8%54lL9Ew#)=3
      z6DOG*_UekBiD^#7410PDIm{AviSOGe;|nbF{Q&bvN_1K!I=UP|zj-zx&WP9flb8xh
      zEaLMsIa)ZDqiJGkdhYA#<rFB2MvU-CBpFFRLv$CJ{-p8P5Sq4;Xg(PwaZi;Z{x~9b
      z5B^L>4s&Jn%r7%%g($y97w(a^75-_z;WXbRQTH{D*=DX5j^P%C!vTd#y2aTJGuDv$
      z!LuWA#+juQVayJ8E~>ZfHhb5s;ST-u2J|Z~_EGK}+}B)o^SFDsVF_(zajRA}nx0^9
      P4!3Fni@K9b+GqK1=h>Bk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fa7c5e5aacfe408039991218808269ebea52252
      GIT binary patch
      literal 2400
      zcwV(t-*XdH6#j00H0iQH`6*aSp@fp8n}&iQ&{~C-YBed^)>^8doAlByO?KmEqwNgp
      zh%+h=Jow0)Z@l<WW}0?JXB?k&#s~i-^}CxGrzK56$A`W5?%jL7^PTUUd-k_Ke)tK%
      z0B%PR5ExjnE9pDt$7Z_XS%tJK7vyq!^4hesB<)FAlBOr;W226lE6DPgWzS1Df{;Lm
      zZ&EPrh4l5@9hvt80^X89SEdEtpg`ENOBEhI(e&KNqUny)$FiK~*@!EPrk7vb9yO~z
      z^JM#NG8?npGLglcK--XITi&q1t$0g5JCbPWH!&j+8gb^Oh9LIo*p2-H!FXb(9Rde+
      zgwdu}hjl~{)o=vQM{rc2vjwJ(PP{;s@&(711c@gyTZJA}n8$RqLyO?JKu<Hct7d-5
      zb2&_T95i%eUpon$)DgoefjzlR-vwe#1Ko_`J3g&r7j%KW8OxRvm10i1)2cQE_Gg^D
      zS(q_hOTE`OL*AlQ7C6@`3(c!c<-fR6&woheSD>46v`UBy@r=&WKI<16Q^;}{*YF}P
      zL~wpv<$V@9Uc$wCC1q<~Z#FNUr>~EeUsX~r>lnlk$;x8MTk(r$PVEotcm=QWz2uYx
      z&TJF*=JdoGuhiixMk5#zFrLLu$2GK(jHmQa7>CvHx{h&Z-1c*!cHY#HL6$ou(>04K
      z^H0>M()_xPx9~P4Z4{e;^B*OB($mfrF{MOi$+kJJwP4v)m3@WnD#vEg|7^k%#CEcd
      z%gX-t|LiRP;<_YeG+xj5R2SMK5H<68SuV#01SVS&-41Ps(iQkXM+*G{+LTjq^K#5m
      z*ZtrY)P98^ppV<ObVmwixh%^O@Ft&p3Q7XIH<7||x()Kz6+%GuR;~i7v-&f;p+B=Z
      zaSn4u9e92(-yYB^#5tARKu5B#iUUcbibKiNI-dI(N2=&buA%Ekbl=#(i7I-Mp(=VG
      z`*3lN$LIto5TZyoHenqcMG2?z5e&FU@N2T>fO8+<uM|PyuN1|AzcQfy6agh%jhfJD
      zr!4O(25U$UaqfMHPEH5-98%lsIG0TZN$C+T){gb8<I+P!MfMST8#^ygq}FhS&lsQA
      z_`I=>iLCL<pT8TwA}m%7!gqd$sKMwal>l8vE&kO;q?Z{RP$Az>$Zna9XoXRJ%Dem-
      zF5q)q!WS6DJ<Q@uypOMt!`IZ}8+f?yt1#>*<!)VtDEFsvmXUUI{SIRf5G7b&&GJuF
      zTaEIL&fr}?wX+ziC+$3ErQfc9LjJx%v?lEX->F_ZR&&|`=KV$;B2H<;ib%50NNr&5
      s@fQ1nZ_m_pL>bP_y49(=<1nk`*6J1$?{5=6ANr$76#&gQ%0oi?3ois*f&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f73abcb18616c26b5ad66c5a3b8422474046a800
      GIT binary patch
      literal 596
      zcwU{6%}&BV5Xb)ul}fFEh^RLcJpd*)M&m`}1#M!2njqo6lo1x|*7U>pS{{tb!3Xf6
      zjMK`A6EU0FoteyUzV`cP`UT(++a_`X$0MCM6ZtHiBv!r?(uiK1?qx4{Al;=Wk}(bU
      zT&0KCGWN#pK*wR=n=k|_8Rbhoa&89`@?wF)JqJ=KaMW2O?L{C5K1FT@oicu=w2IFK
      zP8$E<n|%SJ9Sq4r9xFCX*aG=RvtNWj$;J{20_Bd<bdx*|DD0)MK(!Ni((lVqrS{Be
      z#A6k49}BfHza5^$x(kxfBUh!#YIDFrnoz*L(wf4yFQbSe6Pp6N3smF1&)35a518ja
      z6)ZgEOf#{}Z;>?@IX-~ZdS}^x!|E$rIh6S>W#k78d~)m*6}IYs(O5$j$h0)8VDEay
      O)v%Fy1)n;$VEqDGYnloG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b13752e34a32bfbe600626cd869964996255db92
      GIT binary patch
      literal 1698
      zcwVJcYfsZq7=F%f9kY(f&AXxu+=f!Qh{G8SA&@MYngE#z-wxdg6h^zW9T9($;srm9
      z#1F>L{wU*n+RiN-A56Do=i2A;K5w_*e}4P~FprXg2*b+0+0+jC3D=sgQP*s-FWzfg
      z8#~sKFt<cQa97l_n}%6?&0YOq-7;O<s&BhoKT;5580|pUY@44}498_iyfjS1U1f;o
      z@>Pb|x>XY?L@}fyjs(MS#W2O2=JB4eclcgiFpN|zo!6_}Hsn4yjJXGf!%(V(_E;j4
      zM$<W<I&+~|O8IIE4A)eQV3g|NwHm{CuHy03xw)^s-8&SzTgvY;D7p_~SPmyf0u8Id
      zP|W4S5lF8$RoudDD%>$X2(JZYd3;yJJ=~|>*y7ka5wePMzP}Cy4;Yrhh%>~+al<|J
      zBzL9cw2B!_Q7(qF;oq!=>w@1)zZF9aNv`X{akBFa?jVGrpn;9YD$*G4cv%><I4`lM
      zDjv$j+N_HV&Oof8u-<F5q+$Zs8B*I;)7HhNA%Br$J<vHx&7hV|Q`qZu?l{6xu);9)
      zAG-7kUg{c?Bp-$RBoUGS7_?Vtr_s!4ju$SFJf}qjDH;>r;YVDdQS~37`KotMJqp0D
      zXcwVbDa^KzdDnrbyyG*X`Rq|l_>Tn?ay5o=B8kX60<t3clS1i2p@kc<S_^l6Ve(s#
      zrLSF<(*G<`gZt`fA$!&X{@!0tMy?(O;Azj2A4cx-Fz7myL>`3zG806QD9m19wiolM
      r3-bhXT{7*=wO)_sU66S!Tmo6_&E!iPLf>cJxQyqJU67z6ULf@sKjM<x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cea639307b212024772a0cdab52edda944b613d7
      GIT binary patch
      literal 999
      zcwUWDT~8B16g{_WS=p|lf@oJzkdk2i*bpCUc(6*+q-p|$7oMiOLp!jYZT18C1^yAg
      zo_%OceDDYOql|Zl#t>6VH<_7x=bm%#nLD$;|NQ&~U<(^IN(8^FbN^VJ3O~<O<R`K#
      z&-~pt`|*j?yK*2!Cd1lZCV~?gw)9bK!y-H#M|#DWEaAzZYyVt=qx1fGu9QG6f_<t|
      z#fb@}Lw0A6ln!M=c+s9l&FffnBAM<OQiJI)l~&m{;lt)wezPZ%7Guw3*l1l+;jPGm
      zUgPkx@FW3`4+vH>4yA(`%)6-ICSfpM$|zIgN}UsBwoM=sy6eC19LpeM4Ravec2UM`
      zVJ*6_ajmeHT+G2C%(s=6@A7^}Ci{hYMz`ZYL<b^Kg+JP~vYz5g+M22l7oG)QLs{uT
      zo)OlrJRD>D#X$%w6VJ&nXD`l^K<=nQ+v0!qpBFrW+tOMl%}AuFOl_<a)~66ps9cbb
      zRc_S`{}#pI9-{cTgJ$La@k~4_aCyDX*2fXbtJ9Nb^aD5Q%R}6%SFIry>eccPcfND9
      zgu6U1F&6m5**-J(3l{JdReZxe-rYXW!oFu}dAN^dQ_C|IO2%5j1Eb6{nk-`#s>&RH
      RXzHwDjaP@6gh!~s`3nwQ2|oY;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc1574552aed8d21e1653d8a2d633fb0e79181b1
      GIT binary patch
      literal 768
      zcwU`RU279T6g_tnv${=et+jsER;$qZ;39}1iXbtuftbK{6A&NDB)ue4*IC(}E&8*3
      z5`6Fn_@l%-V;)MWB0kK$d+wcc?wPwket!E7;1RY%1cb*kQ^iN>SjCmqSzPdpKgCHW
      z&EK<0_#-RJhxgLr^GlQ4ITs0+Rc1rf2`iqJDKm?QlOvv5LZk3)!bbmW**D5g=g;I~
      zX_c)?0`&;Zq_aQjrw85PXz+^AYUf7U#*S51aZS7uVJS`C9&|@Zy4OiuNu0L^!*s7V
      zc>SB_iZw!btV=DH3Bfy&ZamjU+ZTk|&hD5{Z|8>`p@#J)R&klI+}DN&)rSceshVU=
      zSncOim5o)Q9bOdccCN+jlRv!b@5_?sKHd30=I%HGVVw}|=T$M~u6AzLPVpW(U0Gw#
      z7%tkGDoZXy+#ziL!%+E;r^jMThPr(=<ec*n2ytHGHC&J^e%vp>lHleE+!B281YVZ7
      zf=m88a0{2tnxI%RIqe5uapj9|U-jdpNJ>N?vi<_D<A&1^^34VLzT{v*zI8S^@Mpuv
      O+t`#G`H5S&i|7|#`K)mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3570c140637155037bc04bcd05d75a817d17661
      GIT binary patch
      literal 9441
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1bfc44dbf2f2688781e695d4f4c1a383f7c64c6
      GIT binary patch
      literal 2229
      zcwVJd&2tlF9DX+0Bu%=ZX(gplRtkQQq=8U@C>F~{q!?)VYH5KH+HJB))+U>}+1TpA
      zlX&LF&>5wixNv|OD5D3C9Jo2--HZMOUgV(oyl+D6lztqXO!ocl@9X(}Ja6*ipP!!r
      z7{HYPJPP`Xc0Kil@s*LPyH+{nm_>6Tb?MZ2b=I`UT*Gk#P!;rU;H4m7oAYJMHWhS@
      zNT;%47gJ-dW7)+)2Iop<Zgxsori9y+YdRInHr%RHQ=nW^;6G~FmOG@NJC=PjLwrJk
      znyKc^5WEO$2x1Erv21)I2n7)hKKO;yr6GVe1sx*<IajaDn9jH{Q<h~_b4Gc>a4hlO
      zRH|;tBL1F{%_hJW+G_QgterO(SZ`LrwzbN<ChAmXSW(e*M~wxmQm>4dcF`><@W$c{
      z3swv_R~nbF*JEqqW=e)5fz15iI)#mjB!lq{twHo*PXN2u-JEpO@D6$u_$&d~j`y%P
      zfcF*b+N3ZIF~qsF991XW#ws#i;MJ=TlGq=>KF(nEcr>K2lR;%U5mDcOh7Sb1zgj5N
      zOjpG275c*((o%00%0{s!R3B+LB2|W+D^(p?@?4$JyEh#o*;)Bo&Rv1N;mj0xgp-ot
      zx^krfKFfmKzCyKb=c)gOUrWJu$8_tCT^qKTzOi4K-mJ+rlg-@)4s?Zi^tJiq|J->t
      zo(+-bXEf+|n`jk-d{p!G${hC`dxMcD>xF{p@cM*s9v1_+z|z+C(QpZ4V!U&6rs%ad
      zmWi*Ij$^8_m!9?Qp|NV+$(h5JxMiIyZ_<7d!+o-L{sejW;nkHAFD}mjzd?u|+bLb6
      zUid{4y-%Sfl26c)@IFE3BN_1)pIuP-+{Y~Y8I?i@4qz)aeT_Io(G5sx8+w>kNCMF#
      zake*c@_biU;pl7N9AxYv;v6PUTH+)caU0@9u!FscdU~<5iJ0Umygc3qEeyZZ9Fcjo
      zhP9QK>uy9Ue>0Pq)XT(Ubl$;4fATSQsrjGqt_MSUSK=-*dL*<2U-F?I2`^!Xbdct>
      z8dW2qyTYVA)H`vr;nmp}do9GJz|0-bF)fZ|^baxqfPN1b)U@hN`(--4ftL;lpQwKs
      z2h+Z2AnLn|pf|1FhyI;kX*x#z(@o!~U%&V2m#BJ2V9<Cd68ZK=_>_ixobpym9}2i7
      z1d{jpw<Aou7O_R>7GLXH1N$Dk`8-b2oZ!$-a?Ba*!KeIjI>j{&;}e|5F=X)>&fp@>
      zl1}Gg-~ueZeM!Q*7{@#=<0d9?3s-O(SFuR1AMiPra2=0u15YuHXE5;sMf{2qeq;3S
      zJpaHf{zMsn@e~UykQQ7@Yhf?(F$U!lU*ae$@z84+L#)Tk+S*z5F;d4O`Uw)o%UaH`
      zgEs1Jk;)lbeXQ*?yXhe@Zju%vR$Px$%(IF_>S_{I*Cf$tPNETcm5744;Y5FO8QJIX
      z=?_*gF(i5G(6zRL<>6MMaI3j+vpFH1m5l%+7;VBFmp2?}>yO-6#<|J=?o$I{o((NX
      Ugzko43!#mxxh&h8kTH}00#&EWtN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e83e5fd23fe0e7b49c6c5a03d74191b8d87dbca9
      GIT binary patch
      literal 2115
      zcwVJcTUQ%Z6#gceWI~ug8XAN`taxd2Yq7RPDoAMp)U<)NK*Oa)I%H0g(PRcEGfH33
      z<sa~wzLW>o;)MrYt2cenCtWUnly#qzG-cJ$x|R>g*=OIrz4y1z9Q^(3Zvf8Wo&t}A
      z(`C~g{zCg&8+IL|I&8Bt+ZvvqUbMbs=8|RW8Ot?w&AzWdmN4)dX9<eQ%9_J;3DT+r
      z-!~OzGm>*8XQr>_<|Kr&mRWZ+(<x|GmwBlSNrHEJZi<UkjDOrP4QGOccrLe^C`gdA
      zmd=9kBBG)TJ*0@|5`_*(h^kN!;L=+veDF)?&KoA1b88#SUeq?KgdNFSMXg%UY=hsM
      zO4+FxbqR_5f9!lrLZI$$<V>AyNeGvjGplVGHMf>$X4$Dw1Mvj)*iqA*Vr5a}UW>O)
      zo~>xMNW=88BhY7glCh&|Ygjw*F5Xx0-jRF=Hx(ZsK$B#ps#dP^nA0laLS>aob>?tY
      zQbmfZd<HLzYtE=RE1Wd5Sh4I*e29+}oRe_!4IQaCj|&u6B-ItCK~$D_ef~U%k8w%C
      zsDvI7U)9XAh}4P>vsHWo8gaK#&ohVaH|!~+Y={Ke#HuK5)1~Xs8%IhTSi3J+kPv(A
      z1SzXlA}lI*gOx14rXC(8Wl5u3b8L$M`)%g9wppJsD0zcx5zXp?aw@I2L}P1b&iqgQ
      zbBSD#7W<ltlX!>FY8q{xth=>M;yj*zImHFXHq3IyEtQx(mM8>pgF3mJ3E&n#H-cEe
      zZ3T-|YWo-!1uSv0H#eC{4>$eq<g|=O;03V4QN{zf!%up)9*dgqJIY@|aKUozBAYSz
      zJM3%o*3R-!S~=>Oz6dfr{AKfR1Apsu_MwALN+fihbXO1EL&CQU-J}VVq?1mjGn^cF
      ziet&a$2gvhJx1@(!n=?DBf@^3P%co8ixfG6e$pfxaX5hiKuCiEhfBN?kC1q6yv`Wj
      zZX%}X<X#@{ehb4dG?zqPwP9`LC3+i?l1-Tu(j0gvyd!e@5r)E(+u_Mw^pJdteu;bZ
      zm;MoFQv4$8zhKydl@VX$;zRUDea|rR09{dEc>N(1?;d1%L>8Wh{rcMZ5uQK!2*>4Z
      znb2Z8P^0n#C^Ffa7T>mS7rjw`RNg^n?1k-nVeH*OchtZ00@E+#G|AFWtqDxfT!AUN
      zP1DSBIEHH&!gZQ=p8juQ4Yy#^Cc0S0w^+dsxPu+s#Xi>YJ2Wx5dBOidYjOt|$ERYN
      z2bBLZ<@Vq&ObSMP_ybo+l4+9$kU^F-%Y@L7T->Hw{9;$8G4m>O@~h10ZJE1@&zg}d
      zgvhrgluV_cAonMHvHe5z2gS0KX;~|WRx8v>6lygRYBs{9>(nk^tvqI%FyDz5fl<zg
      ze;56!#`FV`xjpzIH=kgBX%B;f$z6m}k>!Ran2M}&>E+U&5Up1Up+<{q;uI_z)K~PC
      Xu8RtL8#t{BM~R9xF`mywj`e>4`>?Wp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class b/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9684862f5338eb238230fc0e797b2e4e29ae4f5
      GIT binary patch
      literal 1096
      zcwUu~QE$>v6vzLU7V0WE#0}lV4Rk6nx4LBdAjU*ZXGrQaWh3rsDdnydSy@Uk=tuC2
      z_&gs*qKUryp^WF2W)jyek%w~bx##@O|D1b%{r>g?zy>xHBp8+*Z>V*x50*9z+@9uh
      zhmW*f&+c&hJ#U-30+}Hn7i8)Tsi&^z2G1Dg%SL$Lvph$8)9P|Ns8yN_^2>gk&tL|Z
      z6{rk_cu?b`7g(b-(#SB(n)-fYZ+qwYyZyJiX*^<BGA>H1si34ZlE^Y_#^|VDoGxU}
      z8m`B;hlefh?^vxKXUG|S+v+tf-xcS`DF+>Qz)*?>P7STbpd492z<p1U&M2aZ#_1GF
      zQuaa5a;ONatB`P0^i^Px%9W<*b198w6d6=8ch~B<pGel@|8KfZ#T49TSp1u54!yuV
      z<od|wM}gb-RIK2hg1hG|iK(APrg0x-66NsVH6IKtheXYlD^sc(f$w?_Jyi)+(bDQa
      zD-+#^6BvXNX#)JbQBReoS*nfx(6{-PE1oDj^$hDGk2amg2l120N+LyHg-$OZBSHUa
      zbyfO`OJiI)rc(k}g)h9>qP=~E99j8EB(7mDB&nDu9}9WcBc4G#X~HYS^LB~X40**#
      z<Qbl@ZeW3;1vwj$Ka=L9$f}O9Nc1&HI>D_k$UTw2qqMgmpWx0Im7m8HFC#;FD^cBi
      tnAaxn0eKy&-J$*Ih8i{}%u@};Qw_yPgRmYDPonq?*04?-1}*IB;UDS5^K<|J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/RSACipherImpl.class b/libjava/classpath/lib/gnu/javax/crypto/RSACipherImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..154be44ca2b7daee675086884be8e53553e48d7a
      GIT binary patch
      literal 7374
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/Assembly.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/Assembly.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d5c0e1d2d334207301029f4a69e97c787996140
      GIT binary patch
      literal 2993
      zcwUWG>sAwI6y0AkkP8E7yi`GpM#YdIsV%lvyp)?Z3Ir3xs%>SG3}J9c(#gb2FaLUZ
      zgs#3pf3_}-%gfUKs%y2c&{yaybaj7|FbM`QKQiC-?6beK&pGhdf6rb5I0@Sak3cwI
      zsKi&byW0JD)_PE~i*c=7*4HxTgZOxT;)5cvL*9v-S|J}#W>)pAEfAPWq^2hq63ID%
      z&`jezZCgemKPJ#USuB)otza)|W<~cSATUUGBQ-}O>y8?eoM92!C>8`d?s1+II5x92
      z!KwA@^rfum8m}MU=K6xA70Sy+YfZOk(0SG<81{JqZ)9kZ_LIe&9)uSm6+P$;Kw!6u
      zAi8|mD{x|K)R|(jl+m(xn$UyTgOEhnuR=w)K<|uE(B~>^8QogYGNvx$Rm^JUqGlO#
      zUEfsf6{9S0belJ<Yr+TY)N;9bOK<Wk5RJ6?{-MPH4&#UqVSyuCn<PuRrO61ZIErHe
      zJ@cvQ+w-a9<a9cnn7g#SJg)Irkg+(fB7z~tLJGTqbh2I2ZTXU73T9_WhNoDzn*ijK
      zPpBA?FX^36rWZCmMUnYHyGSjSE4E?AXSI?87@WSJ)k_k;?865FBW)3OjeIyIFwm%w
      zglXz|%}m>xt-F_k7)7WHr*X!Ik6An$Sg07oS>|e9C&j@?Q?=Eqacrn{%ZKyZitCn7
      z0O#<Dig9!a_%0?>*T+*+eoP7sZC0&z<AIHWmAt1_Tm%E@EmcVJ^d=<Rq8&s6SA4k4
      z<Z3I*D&lyL5@|O3PNrh(Wm#|=HKe-BX7L`|ilvuzTe`TaB8gu1fl4Vy8F&<#7`inf
      zQ}vpP6sWpCa%&=y;3hLF!ym^^ZaEtsgH6gK?<a7L`^DwuveZT-xG?oX-d-UmQ!Cro
      z>i9~e4xd%AghgqXmCLI%AghXL2e`GO!jLUPu{Fc=;SM`=OWurI`O2DJu$xk66(I@8
      zIxV6^70G3m4NV}jU2$!!8fDF~2&Rh_E302LWJ~H^Z#W|of%QXq`PajX{pdg^S3a&h
      z@bkxB>CD;jICk@leU#rFTwS4s;J7FH1UsYRF?L0tW6zBzc;_+p{qC6c@f(7|?<IZ{
      z2;eey)3BdAYRwo2aFC<GyBMegj}zF#F%XSC#Gxk`Y=8xwgB#>_(*fCAyI2R2v#7&T
      zAhtQ&@Fs98gfrd($8_Y`N$x3Jz3%}3LSPxVvFIc0`V(ExG0N9}_$n6iKgCBL{DE_`
      z!>{3chzql^(8TalOnGsgm-of0_%u4qh&8AT(iu=;?C&zd_ekeHU+@4&@HI~08=S(o
      zID_vTnuls`U7BN<!7OR@^JI>Sc{oqHI$dzqR8M-YV&0Le;kd^E`+<&sq$WQ#Y18d$
      zlR~=X^%G1M8LghE^1^?^+rQvds#y5V#qD%3er}3uk4v}**YTMX*A&Hk6ZstHb-}!`
      zmz#k8x`kLbajOox*aEuBxlF`9Dc0+TSdJVA4p#Ab!%HnB&lr;DjN%K&TeN2Fdh4ru
      zld~`IrNgBUw>gtlu>`G!!KgE5(nY;5{9bPrnK$3{cT@0#Zt$1d4SoyWKW_>CQX9c<
      z0sZ$a!C%@W_}_Eh!7;p5@N;LBXchW?rQvO_v=D4Y!o!yCMZZumAUYiHqct?wd)O5t
      z?1~Yti_uRRmw76m#eY`nMPYL#MGnUvA@9`gDjAutV#8Ie#U!uC$VX!vI$0kh01+gk
      iE;3TFTd+bz4-Sjorm}2iRqGyd_7#pfWoS8Q<^KV;ZCfn>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/Cascade.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/Cascade.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..171e508bf8c87eda6a2306b4baf613310ab4654e
      GIT binary patch
      literal 5202
      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
      Pnk(mmTsi-)_W$F*Z$r}M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/CascadeStage.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/CascadeStage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca41b8b06a557cb1c2d32fd884e65ad1dc1e4206
      GIT binary patch
      literal 2122
      zcwUWEZFdtz6n-X2*>t<1v=UzsrL|Jirep=7tpq{ZQjJZim=d7%ZL>Rxi`(6}FNOLK
      z{0aU7zxV;q(E@((_}L%j@y_h#g`7%rPMf(q^W5j&=iWQ>&%b~E1>hnq1u2HvmK*60
      zjeX;>Zu$r9(9?||;Cl_{KwmWi)3A6gG+JCihT+`*V<m_oYjKCSjF8Nk>aomah7;Fp
      z*AA~UY!rsTzXY;o``ip|&n?f@88WM$#Z{y+ra^(mP<R=Azwam*PHGsz35M~i?eg2v
      zUW5DFM#CXdlU2_&oVwxL;yc;Qgx}c#g*aY-tP-hK%=nw(RMYbx8NSs`f#Lj6nKGyi
      z$1}gL**|g$K2eyf3Ku;JZAY*1u&m+@ys6*}!}PIvX?PW{sdx+L6uixl?=h`<juS@=
      zG)!TdiW0edo@F;>1t<{1RAC_WU@8on=<-^3HYWQ$HjTFInR@H7$=foNf>}yiLIQ3^
      zz8xOu6?floY-@ubba7b}XwFDoDb`i$=qd%G&?T!=tuf4FK|zrr_d;9^7f@nIw}gz@
      zBq_&mTl!YxA-Q&x^lvG6KMs0ai^L>d((nQD)bOOuDz0Ej!6G$&kXXYqKBNo5e~1i+
      zI+{N!ogEcA${McWBO>+rKKBEvXLZQw9ttIjbwk6)xJi|1M^u^RBT^ZvR$>NMHLPKV
      zZiyHH>ar1rzTJpIF}33ZV?d~;<2|D4P}6<xhAW*Br&J1a6$Kmg3iZNN95GQ2U8|6H
      zr$PkX)bJ@P)NY>#yl?P`q%O|yX!rtK3?uTKZhX|X2+#wL7Is%E^cTbH8t!46niInq
      zQZ`-G)b0wsc(%LMY)TSF0n?r+*eLyWcC!I@n%g`GW%M0EXK45u-%u@TUgVp6-4?IN
      zME@I65*q2gkq^Dq6iPfuWGV7LOFN@v-JyMPJ~qGb6zY8O59EHM&lJY#_oO^pCdaE#
      zQN}6ynu_6=z$758SBREL>ooG@$;3;L&|jfdp3VP`+#z0nhO<w)^s(CwNvkCk9oly=
      zL#TJj%FxMqN%j-jBKT5q^1bJnOW|+mn`AE#`NczA{+R@j^-H`w!`0`wp2j^9x_F3{
      zo~|>p5Nj0l7N)U|0<9%{f<@|hPvcTInI$@3r!+Ja2^DLk+2~8~GnwF}L~S-!Tm5xF
      zYPC;lw#$ASTS>JRU-bXHm$6E#XqG}VcN9kr+X;tB-5Q}aCuN_#kk1_A?jTVeVj2a}
      v<rv&0%Hcj9Nb($Zuq)9yd`Ww0X?;a|LNE<q5^zBDw}Ya0k4TuIAyMXk2q@<Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/CascadeTransformer.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/CascadeTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64e5a14190bedf187831af6c963f65a0d3511d77
      GIT binary patch
      literal 2530
      zcwUWFTUQfT7~O{?B!odUMFp!hO4VFwqV-ZMwrKE{8ZQ;ZBE3zL35-r=a4t&v&?lez
      z5BlhnFMZIpDy-J7_Psx;54HQ82}3NcxCrDs=X{s_?fsp@pMU@QJAh+&m_(nz#G)OP
      z@97Wqm2$)FEc;Gb_dKIrw>sr%-D~JgW7gGeujROH!%ZSCaOnRddRzrkO~W!4b>9#e
      zuWeanQedENIgR@>=68$`Re}DqrfvG43LMV8MSOlvAU^FhjWl8y(lCH+0<m0vZU6$?
      zH6+k4FkCZj<9g7p8}6)Lw^%4sa~irer@N+HcQ@nylIaPQwl3S#F+0#C;0saPnOsc<
      zmjmCl%GdN|g)x0`rC}`lrek|ajIqdD(HRA$@NOtUDfBL_dzTs^qEgdzjfQlUjqlU&
      z9`*|)9&xwH$TzffVLfni5C<@x#6f|f*Ba39J`R!9<-iv>-R;iO?Zxtq`aQ-@Zr;gn
      z-b&*L@=4?b4s6M<h5~j`5J_wb69U_MDbD577)42nT^1<x0-Et%(_ZWaG`r+FkEFho
      zK|(mD;X@qfY%~JbHEh4KF?}4Hs$}n^h9pu+d_<@!k!R4^^gHFM{ZO~e=2fE;DMM*>
      zpH=IDZ+LRlUe}&8y&`YImU-y8WBuy%U>b4_&xksg4NPe`Cx<+tPDo9#+~m>5{H1aW
      zm1;G=P)W0w3mPt>5_wf^-*9c+66iAty>Ed>{Z6Z;GWA=Az34B|VCul)PR7zb|MtJ~
      z$8*drdAhFQ25z#TX;*?)OWywdVWXx~u5^6kyzA<n8-dTkp)iKt<`CS%Y!WjZ(KkA3
      zxGhDBdn6%=J50QxXw{NPtQntZdM?Pkz*Kj9vi`;un#k%c_MDZSWJ3}rvh9G2x{)>7
      z%YG+I>9VG0AMw+e!-5>EF9mk~$5`d(Qutb6WHT$dJOyd!fk%E0)V9E?Sg31gpee5?
      zCql7Wl>>SUEe(sP2@Lv9M2*~^lH%Xfa355!KkS6Brxcr?@WHb+I8u=TC-6f_WaI-`
      zisB^0!Qg8oOpfi06SxiIk}03Q-J2h_lI#LmW{vS5M<0LqmMV*vgWpO14nWS>AgxQv
      z14tLvpcRTQF#KHk?%>~TD#OQ!W0DbPk>P4r=#6(U0w_yn7qoV&v)#1fT#u^kKhTyr
      zjuta}3O{4-FUZDlht_a$6^EZ<_}WX1&S#1fYxv-gg4|!l(HA)JoEe6gaTKSzSoWwM
      z&T)5|yB9Hr%Y5CcDC0AQD;w5{a2>^IA{X=<#2Mn3sL$efx9c*$CFTT6p7<$hIBev)
      zN~nbnQNmA1M;JUsZ+SKp;{CJ`Q;1(@ZH7G0LSBcBWJ6K1^Qdg%s!ls0eGA3C`_?dh
      zCO#H_7G+JV4(?Ki1(oqc=o@9!sN`i;MZ*>9+^4K6tr%lsWa%>V16NVoRQWz_=|9ef
      zuC3zpA2Iq8bMu)m)^N9`1p2Bd1&aNa+5i*^@-2bY*>VHh`8|Rr_M_D^DC1p#BP{d{
      zz4>&>cdg6hU)|BPVy6;MaZ{Er?tR=Rj_<&$?^mIB@ko)LpcJl*Gx5+^lJt+oWBjbb
      z<f2VWx~^jRaYF1&?0fR+ncQBFp|R9UX-Q$Qh`=Tx4i4b~_gtKWM}$6Z@@yWD*w+e7
      pbW~SY)b+6<+O3FoE27=%(q6*BF70))6k0L9R31+gjPVtc;2+q3JG%e?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/DeflateTransformer.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/DeflateTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b47c8c565027e5ae7c7759349cf28f98aed8ac0
      GIT binary patch
      literal 3183
      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
      KDJEZ1^ua%r<KW8x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/Direction.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/Direction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb994978e4b5edf7f6566ffa2b08db1cc1bca43a
      GIT binary patch
      literal 863
      zcwUWD%Wl&^6g|^8j^mo7O<#oahJqa=EH(&8RUU1EDp^!YP!Q}UjtQ<@8zy$3pTZB&
      zEfhf|koW*T3UOy*RaI75jPL85Gxy$+|Ni^+2f#htDPfM`#xTy@eLm)&Twff%PZO7q
      zM!`WpI&^nJ5%_7C#3g793lii;JRZ7x{e3Dhl-hfpS5G@T3>)4IGED}f)9ST4-4;=b
      zV;*Gz1KXwarXPiIm~Jr?Y^TSdZ6|}k1VhC_6$=ddW?t9qU8h&3O3gwMy7ZPUl%O+I
      zy)X`5WC#5~yyX3ev}<1C^Qgx~C}Wj0QNVdAIxndgEEp)0YWgl5(Lf>?2Vz7_&z@-_
      zXC{=q^NNM5xJH8nA2J@%T`RUXz0s!ghW0U_eWXb@6=6K2;cVv&Zjx;pxJAvrO~gko
      z1_o?m<ed}Q>?WD;gLWu4P&w`5u2i9Crxnxl7f_e$Bd;!(M|Mtbf~-c?#600FiXJO8
      zu=X45wRVDY-?1p&qH>qMDdGx!D+>64h>x&}`*dVQ9(uoAtWA;3nT->yHP(NiKFxnZ
      z*FU2+wiSPMg2uXPP<paOMlD~&rCf81FpTVS;~0xSarraK$5=XoPT|*6bzNbeD^+WP
      n$91Jje*kXgS`Txrs?_=dqqcE`V(s>{jCV$+nm5PbC{*J={ZFHO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/LoopbackTransformer.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/LoopbackTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34ff3fc6e971566817f484efba55c6a7efc5773d
      GIT binary patch
      literal 1478
      zcwUuL+foxj5IvJD$r6JQR4z(X6f`7|1r;B_;vuMIs)CmSd5J#EE<;$@WK+8vi}+1G
      z=nGmF<p=mtmOYbo6GOa^s#Nz(cb`6ediMK|uipTy;9e3jhNW7gWgPN%{MfL(b~A7d
      z?)#!{I&Gukx=oW?M>`&G`1`I`7hVz?!~CC1dQuq@kL-pWY%s)g3%d;3rn@Inh+{a7
      zAtV?^D|SOXZ`DoV?Qqi(4C58o;?6GjY<UhZwcx<^8H~!gn66WyY)_!MimWnPf$bPu
      zytyvPq@EmGq8Zq3!%t$Iq4-}jMMVU_gTS-RRv>&i$?qK)hCJa5YMy8{_jo{4=(%dC
      zTwbV_Qec=)<0>W@E_R}ig(GSzD`pdPtXiT%cYj|YureJS(WnIn)YajB@H&Llav|L9
      zH0Cf%lXjzB$h1_Ud(7;GZpm@2qiy@WQ2U`KBZ~5`%oOriOrpRrre<?^qh@Tk{Xo>y
      zSVECun0p>?TW+(>kPkIhSue~(VFl~u0as<IeS#Xb92zaP?Y2BiJhkPTrv@ysC=sws
      zBgP?rDf-jXp>vYF`(&BC$$y6aiJX{9NRb6rq2VDekeBWxksTpRqGOaY#>m&`lu=Nt
      zs+yu*n1m`@QxFrKU<e_-OSr7MUy0Zh)cpX6jUE;(VljcqGb~<`uaVXBg_-OLratx|
      zZ7QUECnqAK;~HjETt^ny6;&NK$cxkMP0XI@V?@H8;8uT=X9Gk7=FcPA)?Y;f?%-}H
      z+G5BgrhVwcc-2EA7GdQ6E%)vKxgkHdGyIQez9F)i?5Vz{6=tTjc=ihxrnRml7uCb7
      zQra8x-zw+_ouUXj6X~Cc^v{I)O92gv%8ktp*hDd$UyGmW{fjVr2GOE-v#hdKegcZi
      B?2-Tg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/ModeStage.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/ModeStage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb7f8859c786a0e28c5ce9907f1571f7eceb0bc1
      GIT binary patch
      literal 2475
      zcwUWFTUQ%Z6#h;K9SBp>(o(IxQEF=-l(YpEO)pBJHZ1`w2rX6XBsmE~hlI|BOTGK<
      zlTZ2w`r?DGWiRMjF5g_sKjS}8zjG2MDTyo>Fmq;~efIwLx4*Ob^Y34N18^Q+8Hfm+
      zDwTuOvbAPyr1I|Os$WT2o+npw&SolGDacvhDoF!TffN7jsGS5l3eu4!%jfdgRFn4#
      zqopz`W?Eoh-pVh@!njk(-=DP~N>3m@rQB12Z#$`3>C<V?MZ0YKmjxyhyM}At43SOP
      zuFU&(rJNp^7l>Y^dkk&ZYoZg~0*MxZTb}I%F`H<|9<}N*VW2}nw##xlSjkCu&dNEg
      zyJxDBx14#)wbggc81<KI7I=D>Tp`sgJE}@!x?;s$x7<PqWA_Mkv;whQ1F!oN13Q>C
      zaE#`<?YiYH(H_H5oKVE{3A7~!=DX03mkpc}II;`-CSJm6fkV$_$@tQ>{ED0I!Ydds
      zkRUV7yCw#aWW8m%;R_txj^J43Qfel*%yQBS(^(V4ND-4&C<yc>n!N@VRi5)EE?`8!
      zShBon9g<Zn#_%d$H}D!y))8E-I8K!<&%_wsU@L<%YqE>FZzMyYFR_ERoitLQuJi(j
      zz6Tn%YHV^lVym)R(IQ|fX-|arrKd4j)>_qajZJRk<*G($U|is&cJX9BaBY7xl_{@T
      zj$ODZH$%S;OjK|5aJ5gv+wvIpl(>cq+al@0HC#9Fj=<jM@|wut28k;v2F|piy4hr4
      zYS%FmDzgLA>_P)Nr6PsQm+Dr%YvL9Tvwt<=$1scc4b1T>?96FmUMXUad=OZU7sG8V
      z8o0A9YVDXQ`?4gdvAg(yF-cV*XNpRwnZ_DwZfQlxM<(v!V^+T!u==qU)&DO()V;}>
      z$m0sNt=h~^TE6evxxn8!=v1reRdg!rYA6P-E6aX36}5sh29`N}8z4JMHO{Q!E$qBX
      z>X;~Di7llpWhgGSQ!%lsu64WK5$Fz93*4&fuQPFXJj37WttY<$T=H9WQ%dIaiQJ_I
      zJM8jIv8aQH4DnSIRh@ipTRS}I6z8Ppt3aQd_*7lV*lZ<m^YWUl#$k6j?1oiQ=wt8O
      z_#Y|49}ZZqzE<OvZ-alGh;hG*t3~cBzkP#4Phk!wA0s{}9%KJc`s@Kddl2PwoKYrt
      zY7%ia^&l;M)pO{@AwaKQU>>1YFXAvy3r?{kwLIU}@?0AH8T<dh=&v|>=P8a)@iV@K
      zlLFaC=uQr8;f%l&3@vbVPT>20{u)d^!zcl%b3cZlj_WdR@Hs_5Sq`*m4y!EAVTPmU
      zRs+CGHGpvp;7z0n=P-d@q&-6GWnAI=Ev};6d0RvMhHG_lB-wLy3zHH2j+@zJPj-k9
      zW}e`^?_fk9A=>^73tRZG4GXG<<QA+5>a6u^uIFK5fvIm3@Ex4syPw|)vVMVAs19-@
      zWN`!qNJ24LPO-)!_16H>)*wf@Qe4NX1l||;A<SLv!aW_|ta^p<SF|!zgt6x%P>Xf+
      zF-=Z^I*~1-Jb+t^BB_gZzT=vNqi1`gTkzVOLfPoXvJN#`bq_<uv4(XWK8_7+YVSB6
      f($=O|pU|etrsQiWca;8FbLr(4pas6rUSIwTN}x76
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/Operation.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/Operation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69dbdacc54ed8e50b8a77356b1fe6ab4d3d3cf48
      GIT binary patch
      literal 679
      zcwUWBT}vB56g^`$$+~V6P1~et+G=YHNuXW&Qml%WhC~9v1Xlt+mC1HUSJvHScN3aF
      zq_0&ef`UJwKT5na3F*gEA7<u$oO|xMbAR1k-vW4#*I6tutPlN>b<D^7yX8caFbOOk
      z$Kqt*O{{JxBA&Q`pM}P-EJ2pX{h`$z91AC5$n_4IUwQ}KM$@+2`+E#;I{(48#gOlH
      z?Zdw+(_`+91Osa`=-ZCx`fjqrkgC@D3|b@jDhyCV6L~B%WVUB{t=g{j7b#OPkw!*Z
      zk4$8dp&lLA7yF}=frt+Iz$5NLCvdpe=aDOY6*Q2-6G^%xOP`w1u}G}RH#a67Nnj_D
      z>ko;vTI>9te;VD=u}YG{NW2ZBz!7mwK^-rtbr{6SA3+Ag4n~n9TCUWQn}5YS$w{lA
      zL1`r^l;sd)mE{QZE=WBpqr<=w;Y{*&6&fhrfE{U9cyNgoX{MF=@LUx>raPyA8&tT7
      zB0kWO8F}azXJjq%WXz~vp;WK@MET$PPtfq0WHeNLaf(Jo36z$UNQ=WWJfCrXBn+cB
      hU%$Z0DfGgNGo%Y^Kjy?4mEKc?<`g<3WO$`e>-UJgd)WX0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/PaddingTransformer.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/PaddingTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24c6e27e98cc070be470e36aefe96a4e094a4319
      GIT binary patch
      literal 2783
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/Stage.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/Stage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03019f30ac8d7f9d9988cd3c4fb7ed335df71ac6
      GIT binary patch
      literal 2354
      zcwVhlZBrXn6n<_J*krT3D%IE*inW**nzR)y3Pno-8X-gp1}VO6lACnfWy9=lO7R!?
      zGCJx9e}MV})G08vGwLTh<BxJY_iji6ZD~Gq26pc~d(QKm^PGE6{{8QdKLK2VuE57I
      zTC*CdoBD12PO5D0Y`OK6?l^q2WbUL2u3qB`0t|z~A!X`TEtN0b<Ykv3l*z8lr&qK2
      zWrpFU_V<Eo8&++ap)Xyx99Os8qHZ>L5Fv(h#Fg||k_RkFN3bL-hE1?W-C|Ixb$eU4
      zD-7qC9-mz1Ab_ZPwrNBDy)%YoxU&q=XjhT3B10fuuW%K93~A`YFoQoDD~7=EtOgZf
      zu{xnaLzrP;$*}lxW3$BVRlQ_#QFy(qn?>C=#J*_^xHk-kVeFU`q_ULwV6)UryZUgA
      zyICn*nXvdH3fZKDQ`sCnr@O22iHRr}^_ue-FTo`}Rh+??(CI~n`KOVZXn+V}IDIS{
      z!>!|5n%14N-Zg0#dc4dq{zST_B;$w)N#YEPPcKIjMk#v{)S50}8Pt+lFW)K{pL05W
      zL(!ObDI2a~rV898hk&>pbZDa;Uvm1EBva?_l=+t6b`-oqr&qc-yxg!2cPEv#ZtJE|
      zS>!t{KLxMS^k`rFtZDL^ZjvZ2Z#k)$#84PhctgSKG!qUHYna9iT{t@NBzLr9h<HP0
      zI`*(h!R)a|wIyK)SMipHYvST63;C6`YbzO%NLoV%^TfK<Al9izuy&P)N^{|D4e#J0
      zgC=y%a8bTX-BNXzW?-q|iarb+(VDtYHS61S^+{QqTkhOJ)8ypI(lE2R!(D;@o`(0u
      zMCy~4HbHM=t0EVn=*C=@{$fSp{(*)f3Jm?;=eEDkpt<7Pm}3YUR=!$wgx-v({B@y0
      zh@J=5pu^4TDtBC&&2=iKP;b~}zF>&Srpgna6cq)=h|y2KBYs5CgI?MxwDTc|fS8-K
      z4v48qZ;e)c=qHZ>+U3c|NAH37J_h57T|5(KyBPUR20us7VR8p5^sFL;8U^0K^JF>U
      zg%RBgfLxs<ct-nEINb!Fr6}R0-p85scw!%Ce{JE46aljXOT{_7B(c;Etn&|JjZ3WP
      zQ7roqRss{9SoEuT0ZH03q;QdZE<s4ba9N`NNWuyErs8)o@(;rIF}c2v*ZxWj2k+sE
      z4}aroZsGxke#e_RvQ6B>oF8lP#2yyn6NmH~CzXINNd7Mg`72`o8l(7zYWtQl_>TC#
      z#})h_b3N;EwlthV7VlC{CrQCY%GyU+FCj;kgKQ`1f0=sXX);5cqH;C9hy0Pg^-JuZ
      zDC%d*=oiVSdEQMvh7}Z=NZWL1dgvVy^*?CWA5WaRFcR3q>d^ynmkQja&^-d)m*A5g
      zK&zMt*6^Vuj9?wtWm_WHAe&#VJ|bIy3j7$Kh}y*6?I`pzS?IROFLaG$x}VA%KKmc;
      Cj5Ub>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/Transformer.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/Transformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5850c4f081675c2aa55c7b0a24a9a2839af3f78
      GIT binary patch
      literal 5430
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b37720404e44c64dd2ede6ed5438bc8f1bba51f
      GIT binary patch
      literal 1878
      zcwUv1+jHAQ6vn^J&5k4L;Ml!i+|q(0hbRFGAr37~nzW&A%1lB+`@+c1#!;~?k0iIv
      z8xQ63=fDg&GjxVW9{8g={Z`tMFL54tu(Z2A=XbvI?XLcN`}aQp7O|DUh`@ZU*|whB
      zFYH%V)jMhhu4VhaY*gw;){bX4{R7u)NN@dBRki}hZ6+`#Fr(tFy4|c<@gD-IA7pou
      zD|cgd4n6m!U8&2Gz{HBvbb>nqqlMXBfw47rU#2jMDFX>4Cn4~jfpJU-q{~iIZnYZ~
      z>FuawflS%0+Vx%AbJScfjs=H~FR)Ple|=C&uF#`#JMf%ltu(u<#AKD2j6h;v2DVf8
      zRp}F<0_O`un^b*`SM9b>b>@&7rzRz9GFXf9&J|`)F)-aCB-jq@>W}QJ8k%?2z-1&;
      z$m41P*ZcM-PVLHdT<hD2;YqupTfV6fHx%Ngz(~uFcW@y3BxcWZ0_katsW1hFF%{<J
      z35<?rvw<7=A&~8BR=bqIqQKd~<<<7Vf%H=N6t@%jOklbj@TBrwRs#c{;|pzNohN{1
      z^wGn`QVL&!6_#n|z+VPdU~%V}zhyV*?gFw&++{P%c{RCbU=?dT$9AhFoBIND!%oqO
      zrAT*4S+s6o9##?$c+^Yz@SN=DD@O{S$GWPq&T4*zPM?P1UE6lsUR7>5YGW@9JK*yw
      z7uR{AMtR#wRJV#Fb;Wqo_?+Zyh3kUvlzGgb_zT7#oQ>cNpJ&3%+Zf}wVv@F|IWwYY
      zOym8K%4?!Y512K=_mo*Y#>`OEG9@fBxfG(#M&TNzMmesD5PD8SpJ-@0mS-0Gz!|Co
      z?rM$qxVG8@Psi{y&a?XnenG>ZF-FOn?kYCthR`>(?1!XmhV*=t7t^P;bTv|Sl&2SQ
      zN!PK$y1=;kCyd`?_(Zt)xX0G<*w)MO25su(89H!90sf^Ce06YbQ0E?>-_ypYoImTq
      z&h%h!XzX{|*qrM9gNQq&Ud0Y>4T2?=9S~MS7Kc6d=3)bK_z)k3N_qQ-m6+`>Q5-Dc
      zvqZoWZI*a(N{Kmq9F~|59aSZM;y$RTr8ii3YIg8R2TRBJDs!iUuj$u)zRFSIY%#N;
      z7DMMAa<oSko88U07~YN79RJMmYwq1I^y*iBXMXEZv!vBr!WDdjN1>W>$awq?;vi$1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81dca322c34c3110e4b76c654ee2e91e65dc36e6
      GIT binary patch
      literal 8212
      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
      PCHVOz#^4KvjEnyR2AKqQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc48fc22ee42c173b1feec6f070c23a3e7d6daed
      GIT binary patch
      literal 4395
      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
      HBx&kDm9wRn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish$Block.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish$Block.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c46c20d4872e62dfe657898d1f04b26c0404da6a
      GIT binary patch
      literal 672
      zcwU8)%SyvQ6o&sv+r-Ay#(KXOsihY%3hpW{EC_|F3#D60<FuI?lai!f9?OLkT=)P!
      zlz1lAosbDLb58i?|Ib{$zCS(z9Ai&|!cZOh6KiBY*)Nt8zK-L-a>Ur>p>^&B&jS&;
      z6$+dO4Os?La+YWNL+iRf;!ezv_4t4$)?vtnV(3z=#;%AeM-2PjH0>7Ar@|NU8N)#>
      z9k2Juu^rs=JQx-X%ptEM1Ji(xMTSgG0>!TI`PJmH&%;~0?{S7wH*jpPXNN-Ov!7X6
      zCPTXG?*UM$m+5RPm6)m3dpd1lT^2sipx*?O(BT(C7FPH}52X%+(eZsAwmmzFc%)&6
      zp`2zymyy_@OePt+ZP{~BA)6*=)0BrtnL;1cK%7C@Ns<G4qxp_PV~XNi!jx!KiGgy5
      sC5jCh)4FA>kd};AX9`uKrJLGlPO<j?Y9;9#$+(HFM2X%Iwy_K42U8iH`~Uy|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish$Context.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish$Context.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30d5f8eee9361d2d4a4c13d3f3def30499cd3446
      GIT binary patch
      literal 1097
      zcwUW^Z*S626vm%>`8T>E4Cjy`8*alvhwCOrU(A>|bV@?p;wHxIRlz#CU`r@d{4Rb7
      zO*T!`7+?FLjOUb=8TSI)^xWsUy|?#w?rHn$_tzf)HgP)!DNs7HPxNEstufTw{rA0r
      zqqnVI$L#CdUFY3v%k8Yx9D8662Qh>NQan=c8upRC+d4Me)EgDJeBN8@I<{%Fx~72W
      z3CP1b1$TqPCWl)bsshnL$8uMwf2lDEV2eiIvutZ{U!Yi;JiOc#2-lofW*mg3B7sW^
      zLb#$Li8+B#sodl{S5?F?#cEzfe59_aP)2G&#q>xORH&E|NH#3ne0uVxW%dt738ouP
      z+vqlpzQx|}40B=v+C<J^Un#xa|Hx|Mi1G8vO$DncQF1EE&;%lFE{ecxsoeOtep?=~
      zF;FPeo4i9s0cGDg>9@@ti}OhY&tK=M0&3m1&3>(GxUT8OK=mw4A`^)DY$(t&A-W=n
      z(mP0q;3Mw0ir-HAt;%gG#T6tMqAQ6M&7L7OgrpO=qph7Gt$o3)mP&tD&XCb&1XyGP
      zkqbmV5R0E^ro?rM3q%1~M?`KTE+1k>KEk}*!LodeihP14k3;ZESjLJsk9NtY_&|=i
      z_Rc9Pr^tN9jh|R$7IN9ZW!dEdmt&U?T%O%x;4bjJAih1~dxnhMM^PT2Dxc$lY<hfi
      z-cIcKe5}?;Nn)h>`=oaf_OeKPgLtW(da#v`<7J|JQy%`6ZepD7x)*h9fJ;OlHvK%R
      GkbeNFZ{aim
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac561249f789d99d00318c8908752a4e6a943e12
      GIT binary patch
      literal 21891
      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
      R>$x~Rq60dI>pUpb{{qIpZKD7H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Cast5$Cast5Key.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Cast5$Cast5Key.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb7757f8070730bdb1d835743e81a4689338880c
      GIT binary patch
      literal 1106
      zcwUW@OK;Oq5QWc8g42dTLwP?+O9&wksGC<Gv~&{*sWhUCqU@d2YF(vHHBJ!ySu9W`
      z7W@Eq{2|2LxdSWIV9V#zwa%S09@{^Deftief!!=p2Ib>;>YoOmg3tbtF3u-oe;A#g
      zgyeUFWYQ^#?uQpyWDE+{=Z}K;*gqJYhQo=0N8@RHlo*&jgY^E{nrK6`DcTZki*`iU
      zMK?q@MYjwxylc&&;m~wwIkX+50!a!<3P}n{3P}n%kED>Kkfe~LkV_$#LN0||3b_=r
      zDc<BHN=ocq?p-;dZMN=2aWvUAC{|{8t9`ED9Uq1BFnFEEOH^`5!_T7%`%D#USm;G@
      z_+ffB2<c-m7=;Flz40&@^#h9RT5o1-g9bAq|Gq%(^Zl&${<l=MpX2^FY}Yk|+~Igi
      z!|+{XyUK}a)fO?x@5OOQ-BFMvVUop;!P1op26KNhu)+yx{!WX0U4sXEWR-Kud1X#{
      zU71(jP~KE7C=1G4%0=aE<sIc+<vrzn<pbqI<s;=|<rC$S@~LuJxuSfgEGnNXOUf6@
      zvSp!QKNnu5_~gO!eCoVv%bI6UtAE9-+9g)Mh^N8ou?Oj&Xu{6KSQlEng9pGBI$EL3
      dZaZnOR=>phzjvqP+7#Ww8>z(qJht%`so&{Cz3l)1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb4f96973527bae4ae64b81651f4973e0515169b
      GIT binary patch
      literal 38541
      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%0APuNo86%8m
      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ⅅSHtPM9
      zf$D>lJJg3Mi`7RdJJrV#t9C|W>XS%@`ZSWQK8qBn&m%?Zi%561E7Dv2Bhp`e85y9y
      ziVRj?M~0|xBKND^k;&@Y$Tam`WVZS~GGF}=sZ@I+@2S0!o$ANPF7;Dnx7ruktA38`
      zSHDE-sr}Jz>Ok}w^=ovR`YpOz{T|(@4o0`CKcYL-pV6J3i0<-aEb6IPhUdkyy-=*c
      z)3GAY#L7GyJI(WB{k<SIzzfF)dnvIYUL-cui^e8-vDh>(H8$Ie$L4!!u}UvJw$wxH
      zQ!gVm;w4fmyv)=AUM+f)P;O7Y)mQZ<A<gzB-)nWVpZQI~g4Cn^U);<ST~q7%ef|9+
      zB>JU>{R1ve%O%nI{;%$+kq4uL{omZos-vR?{_k$)tJ@+w{DW>5$W_tD{Xg6+EZ0US
      z`G2}uirgH%KcIJcBl6wooq=?-s0v5>1<K80Djq#8@Z2m_Wk$OPAvcSw-01NEee-ad
      z>KR4gR&}qFeWKC8x*612Q5*PfmZ1hlWkBCZoKO!%HUwce%T$j=RtG6=R!hx@yb?s*
      zthSmHSr$ayEKAmn9TmjfEL#@GIs~b1mLnU-DuTG1<;oVZra_vU<;gCw!XVwv>d50_
      zc>&xkUv`Vt3NqZRK%N>)3leTtSDqUS1(|MEPhJrHBdFzOh4Rwq{-Cy-)t6UA_Xb&R
      z)<BMlei6`j85ha%(T{^1H!GGCqwfXueZ~#tJ<%;eo|`q2Ik6LhIwD<^h&y82f_%5H
      zR4k1>6%@Exnb;M(KB((vjb%oxM^Mkr%7qLHgZjyLn7s>x7GdX0+l2XV@9AdgmHvcw
      zwlsIVlF7F_Ymcn)AU<+zjYodXM`J7e|HWBVrvwSVBoSoU=lut1^ZJsY0sWaSC`tJA
      z_z~KySrRlFS0nOK+N^Ug7BwTM(q<!{UL84|HgECi)sZu4vz1S;j(n0f+YVcO9&L6U
      zw)z6ve0bRE&(db+VXH5s&1Z+LzL++<lB?5nVmv-g^gVRW3$*#_usU9%&F;hMSV5cb
      z53A!<+U!l%(KrzrACie6UVHSty$?Nz*L>jDcyMUu*F3?md4m7f2?_t+-qoM{Jne2g
      z;q?~QJ6)uDeMF|$R}^|@h^B6A=JgYu+}PRcFHUr0H}6c*&pS&DcH@QK*<!dGulCLn
      zquqFecdmHA8zAO-=ZWRsK(WO;Uwr8e5(m8tWV$z47JC=U4&Ftwmv^xo>|G*9d6&uw
      z-eq#Kce#AVyF#w=u9WY2L**`SnEcTju7r2B3VYY6THXj%-x1%;yH>UFuH#Qa1}AU+
      zzh2~2+n`DEMb6Ed3VM;FSu?lK<5_dJFT}GJK}-6C#hptphV(L07_@RPfmU>r-v$+K
      zk1uYJF9xmMjK1c*&HuZW`zN<ujr*qhW~y<ARo`|s?#1fJ8h34VWQ{w$I<iJjR7ck6
      zp6bXNeO4V=qa&*$YxHh)WQ{Jbj;!%|P#sz0m7_Yc#%oM<WQ|v&>c|?eTmRQBH^#Nx
      z4X)+Jx|X}qwcI$@ayPn`yUDfOjjrX!yOz7rwcG^PayPq{o8VgR7T0nUT+7|+T5f`C
      zx!d^f%1rg{5DUFK#TxG}@u7E**z4UZt#_Zy_3oF=ya(iQ-h=W??;&}m_pocZM_kKI
      zaxFL6wcMkw<sNe_H^sHwRM&EkyOx{gT5h^)xf!nIo^UNU^Z&Tz+6L{aK1UtqGSH{3
      zrIkVZ)uL|6lAvRUoJk_Bq*64h6wN9{<HbSe4mnGMqZbD4UCiR(g!zXqG9fIyIl_4J
      zM2h#6yU_DRp0_~M_nxWoL2hZ)6G{<Te&66^w{SZB2NP8V%y9+Ke>Ko0H)lYHoV<}a
      z@q)ZTqsMlrlr3`H51l%)yi&EwsrvNW{W|Ei&Z+wRyL?b(sBI3<22@v7<esANo);l+
      zk*jF2$nlnlVmCJQmWq~cY~{V+e*BBM!jk0Le_e9Xg)bj{Y~Cg4mb~O{)?Lsa<<jZD
      zzxbb3k2{j82i2^4z@e(g9bWZvSM>^4^-5RuE3WF5uIg7^)hk`queqvM{s&c;|FfzG
      z9ZA&#YF0h&P}PGDuX>HE`b}5$T37WtSM^#~^?FzJT37W3SM}Qeb=4|3h1Ljq1U&`)
      O%?asGaJOwQq5ccSVg!N!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/CipherFactory.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/CipherFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4548e23b01adcfc340a55e9fe2ffde311f9d011d
      GIT binary patch
      literal 2302
      zcwUWFOHdS76g>~Y9(%?QElR+Me}yJEf`1`IMG#~FWe^3Uv6*RR8k%nG?hzqI7glAN
      zO%|!R%qEL$NR=f?sEV6ZlFBxlR3+Q&QrTyd%6Z+il#-!bFt^{ipLgE<@yoy8eGi}&
      zj}=r194a`a^ptVmc#zI{^Rt1Q&RMfX(@S@SqQ}Sut~alsQec}jOWTH1NDoa+nYlp0
      zMuGY`K-xERCC>`x)5B)L@&j*PU}J~nSV5=2hQ_8*fyyp7Z>rdUWC{ur0$VedV-A*P
      zCQNU{n6OO&E#u}4d(`kOd0qi4gQDdN9Lc;9*>-_s!3_EwKQNpe-On{<R;gzL&vFXw
      zO=V;CU9{cYbQG~&#dhpaQ1i;`qYx?VM6KlJSu+APjZJGWNuZ87Fr3na<;zIBQg|D?
      z8Oyv^GHk!E;JBXIW%%T{<Nr90E7&8@P>$(^mB0;1Ca_;1F=4xNla^mpa8O`xIk$@|
      zRw@oi$0Mvx-t-kT3G6E8bE!M4qEVW^!xv2#jRhmG;OIK!`a>HPEz+r#<UDK2$s4Af
      zz;WJa$Qw_t!*Y1VT*V0);f#Rdo8GMHu<gzX>?!A$jf_;Bm2U5nt<Pk8rh@m@VVezY
      zRCG$GivpWifmz#RUJ|&(82sQtL65+`axq3imoQV^GE5&S2Xk&zkp6Wjk3>c)u1L2*
      zfvTM02PYG_$_Vnawe3s-!_1*PwD6>0L|}K>X^`G3vNGBYcBoUbZ3SZj`^$L@(jw}3
      z6*rMg;(gpva9iNun@mXxAK)(8`KCQNV){Wi?(E$Of!fuk?sEdua}2xN^IT8fkWax3
      zC&)2on0f;RxfP0KW?@wBhBYut<C%WR=ADP%Y@*4N%VCgLa-&qoQ(Fowo2?VHD{u*~
      zV!ei6B(B0iQvUF<KI99HeEv12(Ng5ps<@8_3g)O^4b<h@Hr1Bv_$ka|fy=Mt%(!`L
      zGTd~$gTv7H8k^VI2~-qGdwXULL8{cOTk>*dj}`9GS61RtX^(v%Z~j$r|8GErT){kT
      z;^{c0psdoDpnlDd3Z(d}QUYgC$zj^euT*4&E!av~hi#~i0*K$kfDlLYpHL+h_2<y~
      zMMl@&dXD<fv1J(zV@ueZ`4WHW+P)Y&K<p5)-*oM8j5QL|iT$8!%`w(OEKO`t*Nzc;
      zij=Ok#mW;@o}%(oT{|6PXNk2Fd#r06G1f`!Jh5qAyATKIik00|UZ!$T*Lq{@3b72a
      zbGkMVI_%K3q1f|UY?Y<ebz0Tv+GvO+mvNKWc&7PB)Hi>NTLMo}y$oZFhn&C?CSNo!
      zzD)7QtP0S>6ko<h^dgBqruqv1xAaq!fsO&3#2^>b5H(jZjBB{f-${<QixDi~I-Xz@
      zpWp^Q<LrKcF?@w_Ji{%#;E?@H>tAsPe{e?s#9jQ&Is1o`SwSu;Oi_zTaR|k*ygQ>3
      zaw;vJHj8>pVVVW5gN>P$PI*Qf*#zUuaQMvG{;<aPZiHo(;&3FIBXKMerz6o3i3^eF
      zjl@7CMnmxpN~^g!6|(Z#r2!kRM1J?N8*?~_2WaLDwej_5@gdIRA+z@pv-F7Bc>J<e
      PxihJK$djN}Mt$@jz&le>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/DES$Context.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/DES$Context.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5edf6fbd833e760a75bb50b50ed679061ddc2059
      GIT binary patch
      literal 1058
      zcwT)`T~E|d5Iy&{(A`p`pdf;)D<8TaNHH1{gCPNS4I4g_-E34INLg;6xVG4Kl}&ij
      zpvFgjf=|9`BAOWF%@==^I=8HVk!+LRnYnZ3%$d1Ae|<Xya0_D^IK$w&TeCLp=k~T$
      z@#|ZmXH}f74dGk4d~s;nb3?HmYET(W39_oTyKXJ6Zi-6C(3yX@G`Wz==T>I(k5-C>
      z$9V=;U}&ehAhg}EY*%YSp>9bAE}qb_OliJGUTe7F1VdvCiMb{U#tC@eah-62A(?85
      zOqUtdX>U!$!O&&EK)VhF7Yv+3H-nN&mu2RnfjD&OT{6%HouOmSam7OI>8kKc_G(p7
      z^_*9+t7Y4FWZbw^rC^5PW+MJBjAVDOi!kp-2*-10MSZFs3aVFA>E$V%+Fvs;fI)_~
      z(37c2-?!^DZECqdfTQ}H_`jaX-T5M@RYSQ>LNbT`O$NQ_)%=Qh;7GMGQZp)5G8hHd
      z75;S94gwKq7-i^hG6I9v7y@IYQa+xFKD3~fB8?)B7@f33$gfRW)0Eqekf3dM5Yi-X
      ziLjh(UnaYc&dgVw&zQ*reIGpy+xscv>!Y(v*75)?+(Vo{LnrsqPxl6K5d$tG5%s%*
      zs}1(sR4H@uOy)Csz99MWm`q9qe{qT+eoQcQHbL(h1UqLE(4#d7zLVw_vWr^waN{60
      zuS_U+)ejgS=~j1DmQ9SBy*qoQlgRuhik*)3O1lb6WDno}{xNbQV?eH&zl6qLp@Z)t
      z!CxcG-{2m9iyYm}^LLTNJ4Z5(B`#tZdh}c~xQ-jd7Do;#8cU&ZCXpsjrQ1x@DT@)Z
      K63=iG7R*0R)y4Gy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/DES.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de8e57ef5e3ad0fe775a8fbabbfff47aa2b66f70
      GIT binary patch
      literal 13928
      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
      Am;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/IBlockCipher.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/IBlockCipher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be921c15829426a8d83865560b6ad57c9f6e9e0a
      GIT binary patch
      literal 829
      zcwTK%-%k@k5dOBd+<^tl4^b3B6t(r?E<W=_FEw6Tf}w;&d}y}Ur7m6en!7zh{nLE#
      z5AcsN&g~W2fXQ8EXXcx4zM0IQzrTJ1_=JxRN(}o$o%xsin&0?QG8voLkL37=Nc^y=
      z;%F3D$3dB)mZN;d_0T`=Uy8^$SYTM6MFSOU!TU-utOnuNFRhbavvVA@d)@H7#jw_y
      zLAxfAdU(LF9K<>`T$?klGU4Je!!{}M3N2ot#p~x%yj1=q>T0|7t#@>I+ByjjJ1$lj
      zb{-at#KgPeMkJCehO*{YRJl=a{7*t{ATD^OjGeb@dpxQ)LWY%TqAeyxc&UF2Nf|b8
      z*)k)QA5t%F;)M9zQGq8+CCXQFzjLuYLYAeLh89zwBRb;agT@*4YTZO)Y$UD6!7GM6
      z3rR(kCDKg%P+xN;2PEwd=U|s%ch)9UN({N`8rs7hh{h#`MCkc(D~U*jv13!`s?c_s
      z7QnDr|K1Ggv#EiYPr0d37pEdEO3z7jH_nnse3teG<}b+0b<w#HlKu)x*n$I>-ivgM
      zB`lF&o%5GbrIUMt8uHUy#hSJ2Q@equ)^1MiGd#C;3onS_B{3`z$2N8-_L^#nSea}d
      Z*~1%)evAEknRgE&@9}{=hPqYN_y;KH$9(_*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/IBlockCipherSpi.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/IBlockCipherSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f686b20872b4f44d3b599bf53b1cd2b8dd41657
      GIT binary patch
      literal 425
      zcwS|Y&rSj{5XQeEvWWjs5HDUl2^SmA-XNN6H1UA(pr=wsEY#i2ZkMn=ng<`ihcZq#
      z8#S7=op$CoUo+pw=i57gA$kF70%!9mmkYI0YpK&Bak11Ud8Sl`BOB}GxO_|!6QC~8
      z_Mo&Xn#<eig0u_J5a|45$2N{gO)UwuroMk-UMUmk^#?a4l{;f)=qOb#PA>$SODZZR
      zcu`Bbrb6Jj|2PV(hF_mC-nv|CN}P$KEWn<?X~|@y^VGOPhS5q{Gh>l&j&&(2ClfgF
      zy1f1?hl6_tXH<dBjO^1LWqjS}4<7j6Nt~yeu8g0o`^TDdFV_GV=Do@0HrT5GO?c0?
      fs@TFdS9iEt=eWz6eYDHUK@|_tfmiABS;Ns6_quDr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40dd935901a6b7402294b0a4bc8301c79af1ad42
      GIT binary patch
      literal 7325
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/NullCipher.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/NullCipher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..332e2914a6b10b3ee73acdf7e94dd78c03b83442
      GIT binary patch
      literal 1919
      zcwVhkU31$+6g}&>ks_PKq;VQr18FG5vD=!K@46{XOhete2@p37%?q-<NtGy4MwU7;
      zj|_i=Cti4f8K5bd;Ro<<_ya9x*NW|=9vEiO*t=J|ch5cd+`anq+3$Y<xQcZH34ysS
      zFDh-@kL~?ZGwAGveyQo~J(59bC34-0HVq{I!EecK%dVfm=ncnn!kYpk`T2E$WW{eu
      z6JxYIqFES0DveV}3!KT<6j;f%y{*z(7&zWmxms0+CTfl+SEAj94C;2nl>(DBziGSc
      zcHpS@crh71a@qnHYX8o^EO4sn`W{bB<>v?Dt~R!1Gb~%+hT=6kMr%5aGnf&`G@~Gp
      zUby7?&7C#p8=e+brWnX}<c0!P<7k64rjKx=&~Z!EPzHAB2W11V3Y_k5ECzwysX6V?
      zLJm_FW-({ryuizSPE{|ITQW%F4O|c~9@}mtS2tCJ>LB<*n49rtuc?6y0vM1hV-T
      zGn{{Dp@2&UirnwhsratTZO8Z8X<Wt?CLMXZe#_a^N-Lr)e10G^wN#!zxsbx!xMtw0
      z!1(c<G~U5E0n>>E5lGlBDb$8Y!YY|NvJ(p`JSM+u@5p<yqi)N_Qguk>ScTjBO}VF2
      zFmOZQy!L5J7S9Pgl!*d5ErRs?4DfztPC{8&z!d34I~+EaI5fz@ke<F&0y)KizZW_1
      z(pp%?9Rr^p!(HpNL%Ewq6?X;3Y?Wry-(xa`Aq5(StGglLPzd3$xPC+$Vw?XR)e=Lr
      zFj_KZYqq7kS(mDO?8JwZY0Zy<rd)PZ>rC`p<BEdew}5_7k4cMtz|r8_M@Z5FQiVw~
      z!{-UCpZS`=OB^lEplTLwVw_gG>xv0vIP*?pGKN{9r}CXVg!t+SPS=WsUy%J3+2T(<
      zv~f*fi3BP<|A|JN?w*PfO-6c!76rgroQtu)jj^vEB1i1kYQ>CsfY*P+n_m_)nVvP%
      zvu2O11I#}~NubZ+EE5OoW#TTQ-eYIga1r-;xmO1GT<`I@hIjFv=JS4!&pv%rCWRwD
      z8FS$WOcZl**zXb|m$~)*^S_3~pQiM{8j<Ua_kf?FI=>L>I`(WAwHJFXj-5glA7F+E
      z0w1zq3G#z3TUqm2j`^5}SRkK|`_V>qy*38W%@|!-x3H-9P1dA~USU<bIY#8E=2S6v
      zIh)Lm9^m%LYw<N_TSMRJy7r(`6m~JbDm4wQtovLW(bfvrlG<9uXIhYyrl9D4{$D6a
      i&YS-`g)dm2E`>|F@{F1M5yv&%9_WWeuOI6A?ZMwJ-)qPK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Rijndael.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Rijndael.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e074e51f043ee16cfe8b35629e3e5a62fb0cfe2
      GIT binary patch
      literal 11637
      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
      P{Y_RS?r}3Y2RHv8VZxv~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Serpent$Key.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Serpent$Key.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..effa3851b2c1d2aa7f07f8732f82dfd0c51a53f0
      GIT binary patch
      literal 5565
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6736a55b5fbe24f89ef2e4919c9058207b7bd8a3
      GIT binary patch
      literal 28958
      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
      MkF>jx%>(v-0R605v;Y7A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Square.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0900898d90bbb3fc6a4fee6c59ea9154aa221d74
      GIT binary patch
      literal 7421
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/TripleDES$Context.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/TripleDES$Context.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1c47abef00b6c6303153c03132412d29b357616
      GIT binary patch
      literal 732
      zcwUW?+fKqj5QhH&Y^7GHcs^@H!XdGq?lj(@CMHB<Al#R_!D?+uDFz?Q3q#_C58yj#
      zoNWl<LIU0F?9S$!fBtRu`}gw;z!7#-#0Z6^*D;^0SF3B<!CNczP1|WbiomP|PRkXS
      zSJiCU_d?MPRU`<8L`~Q7n&w^ON!TGF_IyOxuZ+?eQaF?Fu?!~!C46++*+atK$kKrY
      zE>zAP&j~LGx%>otp-xDY{Rfc*A*~|`O+y@WI%bd|#PbqJR~%2=c3v7Hs96nH5Hc0t
      zw%ocEI5O`aCZth9X?)wEd)`mtay&9nEYvl=$*T0P6SS(|32brgNPnpTeIT_6`i<v_
      zpzK=hwrH!^BJ7TBL{R&!aLA3~{6Z2ur=UQ7YJZ)Ut6|9h$ytmC`(b{Tv(qRCv|{N4
      zsbUYtd&JChRG0yNu)tA|_8Jzk#9Cm5<-S6WY1vsRmU>wEzd9DpwJ5G*BT^zBo7hI?
      E5B+wpdjJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a92b9620cc2b9a1756063678d664e23086b5e657
      GIT binary patch
      literal 3879
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74f36a673f2685b06f12301b6f65fcb0d5d07c5e
      GIT binary patch
      literal 11522
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/WeakKeyException.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/WeakKeyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b13b7f453a1bbe5f58338a5cc592e47c2c65d2f
      GIT binary patch
      literal 479
      zcwUW<!A=4(6h&`g038t&9rx@26B~mr6vM`7Vw||ajO#KqLv`qoGDG0AT#>l&1N<oC
      z>%hX`#x8na+w<;y{rdj+1aJ<of&xP;(iwjhbFtu|Sx(c0hiW>OhQCPh_9&Nki%?Ee
      zmFNl_hNdO?Ooo|J>5@O_xro*1H^xxDQCg*ahGMH7FgUl#NV+Iuw~7+V40T^=`IJqD
      z(mab{EEyVp5{ftwM%nY`(n-f^#?bNqJ7AB&Yx((rvCt78q(<qe*A8s>feo+GOp{q;
      z1OH$Q?jXrbDDRa`_qN^7YzLYk3)oelioQd8g-%^kMq28uu=AcjyR^Hczy%y!Vvnlo
      q8Y0~%wFb3~L7zy=mOG~_)VCe3h`i1nPS(`M!B&T8<l#qo&+!l3i)J4H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..777d436d796c0f7f917df06d9919ba56eaac47aa
      GIT binary patch
      literal 3619
      zcwUuOTX!4P8Qn*gJ&HVujWH&ojx9m}UE&CE=_Q5~Um#KKIBt}<aSWuR(UCOCNFzog
      z$0ogmOKBUzrKN->5Aaa>kY3hmyTC3@mqTCZT7B+QU%L87y1LKk5?@rW^hM_~-`U?j
      z`+R2~{rx|GUI*|vZfFPyJW?pvQs<2&V>xBID;3X4oi}A_%F5?0c}&`N$tb5w6<b44
      zU~p61v|Jf4xKfs6*~?TcfsPAug@7}gqO7tf-MnGSYHI4(oNFx^p5)3gfi728Yqlp4
      zSey{(v5l&Cu2M9r@?6d-O963~F;7`#%R55sSbSa}IO*hM7#--*(G7hU1n$w%i7wT<
      zSBHj>>fNVf7sAAxvC49`R?15El##WG**D{uhCOe%mKrxEgI>|93dCmaP6|@rEz1Q$
      zPdRgnuRuKJZ#q?#X3e#{6{XGC*?5~tf$+1-rmT3DQ?6<l5_oWPP`bQi*jA3QtvC%)
      zfnh()Hp+!m+O}oEurnT|Yz2j|pBtWayr@#lBF4)y7sfCSD5)N%C=HH2M8<Qia$zh!
      zAHt&o_s>xKsIPt0uw7~7R-)<*G{glS+Tl2BS=%y6HH4%<gq`T|)0tDzEMcM>K8LXn
      z2fA?xk7-B=9JreT(OIES2<$3IZ_aRy5)bI%SbTGBRV&g|i_~{XlnlpX-H73_FrLI$
      zHGHKZ?~W^Ud<|b`6)@9LfxV3+sgmIpQxjGpO@0OGj)gIXr!_n!(BJO6jwAR63s$~V
      zGwkXXxld%zOVb;RpH;lZbxbr9&Z&th9na#q`oxT1>gf=U3G}ARrc<gIp2aea@^WeT
      zrojGfg)r_GYU&bhs0G42d5Tr7R*e|VTiQAu(<z&FEhlp<mM9N8TJ>aw9h*m$R!0@X
      z2_17ymJ90aPU^@sC(bA_PV1P*x4Gq#lbdrc3QWb?E7yK@2bmXioW-I*x93c(cyioz
      z4H`=@7GInQ;{}}4@FLaOP|YjkU()d%7_1mWg_}-=OA>7kA>C#wt;{84DY<zqXeDiL
      z?k;6fjT_%lsbyJ_J9%BR`nfVteViBRE{a!$vg$*1Yn(_6478Vt46?O6Yq9P`M`c;M
      zyf_(Yy3z~N105X|=(HQND9sDLSA^k$o)gmHp(fC2+P=^BH!FUlBnsl9j%5YWNj8!`
      z-NBZ}9b248$I}|VyY+HqijM0|)be@hwn{OKOX%UEs!xm^C!hDh1ow8Zoh5BnslFkl
      zqK4NRF1T63R)i8Tj92kPWq5DU)kw6R<*5>}3l0yqSW+*-wh)rzKKK4FBGj}ldYVQn
      z@I*WB-!hd^9eL6y=bVynx^D|Su+1)8-lyJ1KbBAKPDlbT+(mL<rSayDH`m+FJXI0A
      zr{hgrC8J8ig_HjWd<Y*1=;~3*^Hr)AWsc%yoSJLO=PdQ~4s3f}4=HqdKg*5(QaTV&
      z&pUeo^|<>jpLVwDo#$Tw{_f^zmh*ybe_{=L65><zs-M0@$EWE3gTHEkzXQYqrV+$(
      zuAjvooWQ-bx%)Y**Vkh&B5Z?r0AJ#&LBB8feld&q9oH)k|4w{@-oIh@EetR8J-CL4
      zZgZmldSl`dHIe))VmH*pzJ)$=I(R$zIbySF-DemPI2;`L45Ms2Bf(XCInv3WRUE#K
      zs2V?`#?ScUUNxRn<H?U2a7Pu~pbws2=$l@{@!JHOrQ7-F-{MOg^p~GH+?9xQt>TPQ
      z;uG|BjNZV0)mabb{t`N@sctZ$bwsrFKjHaAL{o7=Dkgs4k}OL>fYTIz9{1o3M+?}G
      zMa1zuM)4w_&U2Wg@lM0Q1x7E!<Q2@}4M<!;9#`4Eivn(<h(E%@Ek=C-8~;EF|Ad2o
      z(WR99C+osC<X62ck%ZsN@xTMjbdy+lmc%4JBw~>VGmUG+Eb>@x^80yWcM-jx_#rY5
      zGRI=0Ku)s_u)U9mQC1sY#Y>;Vo#AjPd1t$QTm;nkyM!KGWOXe2^akpS8}xdZW`!w)
      zpW@{Wb#lp1_8ti-oY7{o_2l|s?qhV{!li{ZeDAh@8p%QblagMwM--KPzim+&;tqiC
      z6X*x%#bu^`1&>nO5xmCh@w!hdQBTuSZItmLU$s%Lx=f@IpXz0*rl`KMwWPVlppP-U
      zS(oFt@an?B<QiU|RkTL#C{({gSGed+>Ts2b-y+o88|VzT=nUgW_%T!Ua05Rfu>j{4
      zohv>a+R8RMHovHQKg9cUsCj?hQU#yj1v;eeHR)`<(LbkD@3TCw5&r`s{laGxts}MA
      z3^BG|QbTx$MH%op{B#?KjL#0x63LNO{OnG$uwMipatj}A*sj(}ptTZcr1ZWYt@){x
      zjV-s#>gk4Ab+_}VJwEGS66#|n{M80;>TV<osE54)HO*-CEuxO@3xt&q-DvpGHRVHF
      Wfp4<?HGzJ!0XWhC78FiJU;i(ojb7*g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/GnuCrypto$1.class b/libjava/classpath/lib/gnu/javax/crypto/jce/GnuCrypto$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13b01ac78dadf9fe8b72a53e12c0365c4b8e458a
      GIT binary patch
      literal 26862
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/GnuCrypto.class b/libjava/classpath/lib/gnu/javax/crypto/jce/GnuCrypto.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..746da7bb610d82f902f1da008b3d0a698b40af67
      GIT binary patch
      literal 1116
      zcwU85X;0Kp6g{tuw3a$BWgQn7Htmc;MR6S@kSd!a5J3ohE1l<1Qd;ubA@Z;E3lK^C
      z0Y?9l@wSu!GYK~7Tkd`5+<Q)6fByOY1Hc5PWk?MDHNS4|*@yNQ(-B7pQDE*l+?@C8
      zR<e_kVd#nTX2_koaHAu0RRo7_l?#T}Dc5(SX@(Y~xWSOIf+|;VlR=$d{xoKN+*(~<
      zX`R8Z`1!5i7DF#33g^^?CF@<`f=fjU+BMuj2ZLc$l7gP?*UYs@xPGntwmDSXkfAda
      zt`{&ep(2N_n7W%`*r;58oLE)#A}^zly!lu6tmE)7v;sd8f#-3d;Wq9tXw_g<xQDLC
      zYrM)ZnRb80u8ZWX6S;w3E?&{Hva`pXsLaq_aecmA-{0Y4-QMvygI)<7+uN{(8}HL#
      zCfapF68%3J4A~lwEcalSi)DMC6DDV*h3k>)nQJ^M%NVBcWo*F?cPXx72&1uKttuX%
      zD8pbFZK~%a+~#?SIopW>aipPyK?a3NCq-kXM;gX3PItwwR%bnrA#Yr1!-}0uZP`}v
      zm_fFM^Es%C82d!SQ%utJA}m9<(QI6Cn}LzI&PtOE@}P|x`CvO~FRx-PuNelKwCvlC
      zN#{}(bbZ&T0f*1IvE|u@tK%_<KKP>Vb76UQ81j&QB<c_G(?TmUjYgSvOSEP*_my;|
      z3#zW2AbW<~R_O$tr|8-IMmY(0Y0M`0X|!Pmz0wr!(M~(Zq8|e^=TX35%DY0SIF~=e
      z(AEh?-j_~s{}>N9OS*ZCiOtg22C<F|E$5&}^XQNkh<vd@uFzlc49^qt7Y*`}gc``4
      c;^iezED6$jf|ZiDoQzX=L$gZRT!Pa70-i|@?*IS*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/GnuSasl$1.class b/libjava/classpath/lib/gnu/javax/crypto/jce/GnuSasl$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..039f92cb0b02aeeba9c4b4fb35da659996061743
      GIT binary patch
      literal 2082
      zcwUuNOLN;)6#i}<V#P5yxGib=NL%U_$E~fnrD;k+8pU=TxALP_n)Cs*igL$QMv*$Q
      zoM~n{Y*{dDSuku_Fl=C^6ebHc?AY)F_yPO?7VLm?6;EQtP8t?RbG~!FdtScx__u$y
      zegTlhgD{RTj5h3+yrysH&t=2ieC9dwn!)9w-O}`?mB@zC$1o)PvZdP%xw^8(4KIv-
      zI_X=R+-SL`w<*_LbHlWFgRd%vXF4`RzxUK^CdP@W9+YH?nA4_hdNT~?lLu4BmKgeS
      z&MF@O!<$irAw>{EEQ$dPF@%zW5K~Q?S6b^U++EaHEY1*D9YeR4bk`KPZR``}F`PRv
      zV<JoCh1?dkb1XTg?j6LGgcA&>1T$xu-1g>m!*krtj8dsq9+a#1v@lLGT<A*Cq!V)B
      zNCc-b8pau_e>Y3c(wogF&f*+HxWT=OzRvenqIs@qH>M(Z7l|+~Fq}T9p(rlm61DWK
      z<uObqyF2Q(^lUrHFx=gCO;t)22`Pq?-OgNHDW}W%>k_Uo9PjpP^_qlCdz>0~H@Mql
      zoa6hBGjK%0)pmu!NbL&WZ&w&}?p8R#Fw*U(3b);p3}<?~wFM=eofwz!0mIqelzORF
      zDCe_RCnZe3jwB+@^c;yGEtZOfx`f$%qbx6!>T0c8RVB>P+!U*kQ7lt$X7(#ylaOZ^
      z40JMosFR9>1%|{Sh*=4@87>}znI@{raOn_KztRdr>UG@h!KVH3*Jz3C`9<pgBZNq~
      z7z{B%*E6CyE!W`lrr0vk_Pfi7`%186+uZe^HK*khE7*qRH0k}8x%bpr#W?M?5Xl>0
      zLqlS{(W*W|GJptK2T7YGEG&`K<sT7E{e-uE@HuY_o9_{)Zz4`wlyqS|ietY0INsTg
      z!v6NNfQ_VHA{rl#kG#UES2(}y!}o%4EC??LVLC2%!fX&;3&QI`cq0gJ2H{i?ei($e
      zf>4R)cJxArUhL3I9r~RPy&SLZ=y&6q(AoDpL)}7#zBA~@EyOTO!<?l-Dj3Bat=u^z
      zkV6`I`bW*<8VZ<3kr+ktEZ`1GsFK{pZ9F9O3CR<vFj2-jiGvEB6XONRr>NmGVt!8Y
      z1?u<`8ona=8jJV__wX&rcUZzpEaPXAE!@Yi6!mvJ!XNkuf8t~OMH&9ZV>XB<Y#1xM
      emw=75FF}Z+h|ZQM0{lxQt_X;EpT2$6QS3jW>=v*9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/GnuSasl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/GnuSasl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cad5a40b7fed77452f379bf4ee527461f0186480
      GIT binary patch
      literal 927
      zcwT*yVQ<qg5Qbm3T~k8XXc=Q;W3;S5TG*mVNC*`ns-jJxu1pFP@iBF+&Q<Cl$Ehg4
      z3O;QDi64OAFCm;Xoi+ybhqLc4?{jytfBgRX9l$Pj3}gs41|o8X-q`!-P&xUa0%u5>
      zvo9jo3w;AQf|WSygp5X#tBG?cgE8+jNsxca1y|1qvUaUYkZT2fR=_2K!hYxNw%c^u
      z`RDi<uU`dRAt>r_IS!X+3=>%_Sy;eT0^4pUg?vv899Ky$28|aNL$$7f62a!YwyV1)
      zidc@p*9j_id)~*IXyOLe46JJG`B|HkvM_7~Ldn4QnY3^d>jYLmIFx+MeKufyf=6lR
      zXMWKv*`$gGqES0D$LrpZQPm(=YIDIl(WuAd8?Waxf>Jx6p5OH(kNq^5Q%5}1oy{MD
      zV12+;d~Erg33b5ektcXK>Ublj<wZN~AyV9TT&5Z(ws6-#m0;@vIn*3y3fl9i3gpDX
      zJyi6~>LMv|R?lT}%;focCTcOe{$KV~l(Gp-H;5!<dpsW4N@v=MW!ily1d}b_3quy_
      zXRDtZ;+55>1?06gwD(G%iQZT1rNT1Il68#5Zz#U6ALH5yR^ENlxePY6T}<?kaT!na
      zwKLq(o;B5C6SwughB7KCx0+;t+zIY{K4s*SXpm?#iQ@jh6!zbWPp66u9whc5w)Jl6
      JY%x)l{s8+a<z@f?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..593f4c3bce03409c73118950d3bb850b7ec37983
      GIT binary patch
      literal 469
      zcwUuHO-sW-6rAl>+8C`yd-5cBsEP)K;-MncNQpERq0;+yUFw#&k?lt8&+;UA@CW##
      z#Fr>~@zPzGH*cAleedJ*?H#}|S`JDKovF@(8Gqu>fiR0ln+7u>gPV)NW&dO(g^_k3
      z7kw^lY8JcEkc)`4iGvEm!4g)6+L_YIo->r&dt-)5nBK`c8VqhU?1hI>Z`_Mrl(FKW
      z3Xh@Hj`Qpw;d&a3tWkQ}&5g}iX?dMJOr*KxlSDH3aVmH+=0@fH&tt{jt2x7Iyu^@y
      z`*mroQJNVc`zlY{{@-wv2QzqAT1yiqd_I@-XX7^pJD`1$A4a!|8lgj72PI;Fv+vhm
      k;l2<pVU^IO3Rn_mSR>|r%h1Gnq1h<V$7Z2rMf?^TUn<LT#{d8T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb69c04be6e05189b4268ea69da290fe2fec8d0b
      GIT binary patch
      literal 461
      zcwUu{%}T>S6ot=Cf6~TiHQJRc!9`UxSm~-FXiKRy5uwukbR6Q8bRyGK>_XqkmEgh$
      z@S(&>tUEWIfive0=YBKy>-*yqz$xlBEW%l&=Kh2|v1gy_#bcWI6E6JQt3kKd915;Q
      zIuMH<<7uK7`~8sdu-mjzBpj{KNGP96CDRK+p>Z%G6g$bisGv%y^ux=}v4J`$V9iAd
      zE}`BCGO`~t75T$dOBJ=Vwpt*SxS3DKLf^4*EC^nZa2Ai4mRY^LET#`~MrZ{qeDQC#
      zHo+MtbInChW~|-+<0l!G;9e^wbSGxBnJ_QfO9=L0CPlW$>=MdGZBw;i83)*hUgaIm
      ko3R$wjXLH8UQF;68^*c6G1Rb`XSQ<nu$^Zq$M2x}12Ri)tpET3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f0da33e1b43c45a6d9a73834443ca76e270d5c9
      GIT binary patch
      literal 461
      zcwUu{%}T>S6ot?2U(y(@M!Rw)xTuN-f4Zs&+EOY_MW}Q?9fvw4oya5=^8)%jt^^l8
      zfDa{3V%@pv44gT4IQN^mU*8{}0FF_&P#~O6)ZCx4C-&@fojxX!Kjp%|z3O+mCqu!t
      zNctk}GM+>_-R%t+A9T(vln4h)G!iQ3Qpx0kP;Bgt2&Hy(FKko^c5iUmJ~U7VMXb0e
      z!zI)kK}PmNrY8O{(NaxXSz9fTO5Dt6W1;WZI1~ggh&T&JOv|iZT$Yjt855ep5?}nA
      ztwnH#(Oh%Ul^JXM|M*dcCAim03Ed7^91HWJwSZs;W>RE}%r2v1)G}2Q1>*o~-?QK0
      lyct`-s!_+Bz>5jKV$C@BH-;M4^UOxB9yaqV<@haBe*isAZpQ!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0bbb39ca25be868d01b86003ab33e9960e902bb2
      GIT binary patch
      literal 461
      zcwUu{%}T>S6ot?2U)mV0M!Rw)xTuN-m8>d)wv<W}5h~qJ$DvM%6PYAppF&^7mEgh$
      z@S(&>tUEWIfive0=YBKy>-*yqz%g1DN`%v?%DfqSV$UAe^T#yyW?XnTm&0EFWF)v2
      z=}^r3jHj`l?+!x7!=7)ULO58Wkx)C6N~Y(8a(iz~sC45yQAdMNAA}d(Lj$!@#)^X~
      z973xd<YX^mYU+(rE!DJ>w>1N)#C7&C5&D)*B0+G2n6qfiw9M<pWhK3r3BeDR_~PGe
      z9fCcIGtEU`=B(}i<3~A`;9MysbT?v2BFu}{0)icwNs%uyyNa4o%Tzu}#sSv8TYrcB
      kW^4(oMs0HfFDCekHRGJ$7@AlwG8=`u*etSC;J48D0Yr6f-2eap
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD128.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD128.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a32381320016257d22f4e8867887896a581bf5c2
      GIT binary patch
      literal 485
      zcwUu{-%0{O6vn^fztwHkvb^dl=)#Ix6oSGCN)yF3M8o@W8f;{nm2r)HlX{G<f-ZW1
      z9x9sMx)Hi@2F`qE_`cuF`TG9&1W-lULV|EUQ44p<p4hX?^>P*l?vx9+f8A}iYD2-b
      z2)kn0Vmu7=a=+bUd?06{*R0mgETjlWYs3ke3#nvyNk~=>Mub!&xEERE2!(d<s&PE%
      z^lxIcjU+Z4q~Q?C6))nuK2sBS7;32|^(b8Qq!PD_$Fb0NZ0rj{$qP91M@-A8|GP|u
      z4{}bZdux1jb<R4$9tI1|MN3A+-Ty-;5uD(3loGn(v-w<@ck?SK?7_^AXpz}zWK6Y8
      vcZ!5jfOS~PzQcYqGJ(9QwmE?pV|+!yDCgIPA~s{sR$NQij=dD)caZx5>#%lz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD160.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD160.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1cd7d86c2a28583d8abb8833de12abdc5c0d91d
      GIT binary patch
      literal 485
      zcwUu{-%0{O6vn^fztwHkvb^dl=)#KH3<|;sN)yF3M8o@W8f;{nm2r)HoO*+<f-ZW1
      z9x9sMx)Hi@2F`qE_`cuF`TG9&1W-lULV|EUR&#g4p4hX?^<o+Z?t}}scim|;PX>Z(
      z5q89)$#@v(#cr$1cwbIMw^2PiwvZwmtPm$;E~Jv-B_Uba8xm6W;9g{rBNSTQtNLNT
      z-Mfj=Hj-F#kcLAjSG<Vt`b>@8L8zq~*P?LIlS<sqA4fvpv5_wbB`@I2A2KbY{_ips
      zKFArN=B@D2<vD8vdl1Yu7fl%vxBm|vMR0=CR!Zo)&t@}W-pwzeumdwYqD5w>kulXW
      v-6;}A0oHyg`wsif$OQ7H+U5jajPVr(qnuwGidc_58*wdRGxk!9-$L#O-xhX(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fd94f73360e5acfd09747961615e94470524422
      GIT binary patch
      literal 465
      zcwUu{%}N6?6ot?2-?Zaswc3>{!9`VcsHmHYP%EX<sR$$8r!mx&X-3i+v9F{nSAq*4
      zz=sl(@n_|x37ni8&i#`6@%i=+pozMJ9N}oJQh&l8*rU(&{62~O2^aqLdH<q&7z(aM
      z(iihC<4LUN+r0tfVXxhEP$29r&`BtrN+pvsLcXyxBosRFttg{HsPqQy&c3C($YaSv
      z5gwu52rSx<m>T<GqNN(QY+p5yN?fJWk<d466bV8th&hXfOiNq;To#f$IU}3|3;gkK
      zx)#9=<5Y9el@_-7fBwL73ErhrLU$rIn+fw|`Imw%m|<ZTnO#K5sAH;Q<ctHH-CFq-
      l?u)TGEE{#r2|StLGggfAzGJ9jHOs7JTElvlr3}A;$`@&%a5De^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23d2192b26c8ae06fde1795b900ceeb4077b9955
      GIT binary patch
      literal 473
      zcwUu{UrPc(6vfZ=-|D($Sw8g?^k79T2})oDW{BY$!G`bSG}y>G8{-=7$BKfWhdw|b
      zDw<t`dg#R&xO47s&Tr;^e!YJHI6=)qhR~X*g*#=B?8)UieuzSM%7uG#F}UnCe8IJd
      z1|se;9)&vI>kk?C`<+I!Wg$m6Tp>#+oJl34b3(ShKO*G1;hiX=L@4)%o$k?+Ya@%Y
      zgFGBUt?ngoH(+Yw`jM7u(oT{UPbzV}n2m+LW#d2)s$R%hFk)IJ{m*4Cx|egpskg!}
      z|4i5>*nYUsT=Zmu+xb6noRA65l~O`?12&%v^QisH!7j|mNEVr$N5NFfbWLQ80<42-
      n@eTH~kr}L+YMT>yF~(P{8|5r*s9+=YY^Jq}t<*~?ejBB4Dl~EZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0b86274a1a8a6f5882951e53de207318bed10b0
      GIT binary patch
      literal 473
      zcwUu{%}N6?6ot?2-?Y=wYPBm@f{Uu?;4g)WP%EX<sR$$8r!llCV@A@cIFIE@5cL6k
      zC^0h?bm686+?*TE`I7tj_4)ze05uC4!s$rO+zESRPcGN-Lln9bF5H`o-eu>|7hH>|
      zC*ls{QK;jsZl7_#+d66-TgVZ17swI{XHv=NoRF<=4+yz-cqfV|5z5_utGzep+Q_2p
      zAP<L7t9uFD4VW6aex#)uHIrn;lS*9A?uSC(vSA<yRWIZ$7%(l9{^v3mjpdZk@D}*x
      zp9z};+Ye`&i;hfi8~-Qv6EeZMQcCD{z@}4S9<_ft*n}Aw$s)7!D41%Q?gSa50BfgO
      ne1ZLJWCly7+U5k_jPV`IMmcjEDp*N9t7)xbE%j20Uq|U1HEwbj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfee628bffeee6154457faac459c7cb98b10d927
      GIT binary patch
      literal 473
      zcwUu{PfG$p7{;I1f2-@3wdJW((7}pY6pX+K%n-vhf(`HEG}y>G8{-=Ju{s4Ey49f%
      z70s?e9lAIJ?>z7DJinRu^Xv5uKpj;J8N$g}&AkbGWKSN~i-$P!CR}(o7yZj_BM@AR
      zxGxr6#^XpY_Id-xgI>E?Z&=6?4p+z$3TINu_?(cf?GFjLPIM=VC=trNLA!Ib<l4xh
      z>>v+^P_6k1+zXi+dqJ$F8n=>U#g|H4&!;1yZ`mjm1lNx^3x`b0r2o0h#rJYXIQ3Wf
      z<(~;#1Urc4nv1SXa6A7ejuSG$xl&5#PRM36VIH-AIoO368Ob8E^C*~VnXZY9QGj*e
      o7GGdL8=1kHskS+RcVqm(x>3&3h6*-P&t_U(Y^7dG@!KeU106ha4FCWD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77213f4b1543932a81e254a289d2e10875e402e3
      GIT binary patch
      literal 469
      zcwUuHO-sW-6rAl>ni#D{d-5cBsEP)K;-MmFG`2JqF{StIy2LGUBb!w0&+;UA@CSI%
      ze<W_A=*3HSVcxuDX7;_e&zDyK`)C>{5ws&Ybtm+JKDtcJ?z6<5Fz#NR_Rsu-kTb=z
      zKA-uNWr><?b_bLVMZ}eX3c=1CR)X4*kRm%KD7Uso1Qjp2;dPh<R(EjX?GAev=hqg>
      zSg=urP0(xwdA1u<8M$Gmgp4}5u@MN#FQ<27u7-3Ra{?zw7>!3%iM;=LtYo($B{&S`
      z81iqwjvgyariyW2<Z0{w8}{;G0=p+AS6)ohl<Pmu-xzE_?~D8peXFQxG<4TSNi)FM
      ocIwZto-{3CQKO|R@UDd)Sklb?mZ5>=LbFn!gVjPyiug5{Uxx{Ew*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacWhirlpool.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacWhirlpool.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc418647da5e881287137c87b80de37439c9fd81
      GIT binary patch
      literal 485
      zcwUuH%}xR_7@YFAur8n|Cr>6GP@@}6JQ$3LuGv6XgouH2sST8@Eh&qU$MR(2!3XdK
      z^l6OU)eDIi`X$r(nwjbMeSE*Y1E`~FAw_ULmJ4@EpXjs8^l}y{cgnciyKdk3r+v;e
      zkJ^0cQx++`+;4U$8%~4{XG(<@G6Y9!*a>nMLW<~;AYD5c5M(^{!1E{&l$xC@?|9g3
      z-37gFH?Wb$hJ!2|f@&>@^WBijvD=TdkmE*dE(b#L+r{IE>w7v1IYA{*jD`cMMcn^A
      zW}=Ch6EuP~23_5=L16dQLNo4*IC1xX(@7jo;IyRV+6(D?&dtBYl_>1N?2h;lQ(5E;
      xTBbWg$}qq>tmI!|zZjZA(V%T^;L`}dP%_N<m7$EyM6;D(1>1?1B=I{a`~Xf$dTjsz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.class b/libjava/classpath/lib/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4497929739d3118fd83898bcb17380dd1237d02e
      GIT binary patch
      literal 3819
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34a075a3ba749f06059279dab1492d4417bdcc91
      GIT binary patch
      literal 431
      zcwUu|(MrQG6o&t7-P(24)#~1%6J3}nC=)?MK`h=>=5<;_ms#7Awdx+rE5QpNz=sk~
      zry%Hsn7}#bKl$^8lehPmR{$gQO*9y`lC0u0aW5WutQSR@^I0r;tct1B{P;8+?d)I3
      z#kCeiSSS+)!{Cn_-*$%fp~_Tw#L)By69(fXzmXO?44vDDZ6W7Gx6q|y8AmpnSaHz8
      zDueF_^$R=|S;E6ot1KCx|8CXHUZ660S=~iaUx_G{3|^4OBAp1WYW>wT%Bh+&41@p7
      zJ7%!Mywb5eQ#GXj(=e<_^p`XN>cwcc(57gTI)FhH(B1Sb*Y)gYI8P)S=uxyO1G|*>
      S;8Nv$TCoOi30hw|H$DJE&}hK`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdf9ac289d01abeaeb7c7ccdc675f5d895f0ed02
      GIT binary patch
      literal 431
      zcwUu|!AiqG5QhJ4(<V)$t<i#ykcxI`(L<>SA_`*g5~=4+T+*#E3EM>NV|fxh_y9hX
      zIH`i52XPl>=AZrdTV~(hUtR$W(KAtF*p1VY&&9oX<dI(HMaJim<dMo}QuE`}U^pIK
      z$mO*bd5|j;21Eak8{c+@=AlYeal}yf`cnquB)gFoS`4k*hdm(|M7PkUV;O}u>R5Bo
      zz&eBH`PB<N5oyeWLaQ{Mod0fB%#N>8d0F0tQeTNMkqoY%MIxCBtt$Q1G>Vy8Fbw?v
      z%sXMQgRIn%JW~~<_tP+_Nc5L90jkAlH_)VLk{ZLH3TW@RR(IRApW!@_tf52ErVQ*;
      TK0uc$=hKP}xGT`+%DMFcNj+%I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7755f91c20321d9dc74a296b3c3b31f84c4a9723
      GIT binary patch
      literal 431
      zcwUu|!AiqG5QhJ4(<V)$t<l~+rlMUeR*;Gyq96t@k$T?5CEXg6uuarHmM6i358y+I
      zlPU;$5O-l_{@H)OW%lj;<rTm#dM0WN+i_a*nYb5^JkpE2$oMRhJW}~oYJPkg3`hGH
      za&fIi9^}e|!O;KX#<!iJd8krV95K|r{)E9e$!?^D7DMayVMoY0(Ji#;SVp0ZI#wJs
      zu*%?he)R%RL>lv;&?=3`=f7JOv*W8&UY2*E)K?-*B!lZ`kw_*&t4e=0jbf_i3<Li^
      z^NtzpAS-nw&r}8J{WJ_J68$AjfNC+?4Kyj5qz+(E1+=$ZtGnsi&v2ed*3hA7QwH`Z
      TkI<#c`LtpU?h>@VbZ&eAPKIdN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e40e028002e2c65bb30d8572deb29b2d4bea2084
      GIT binary patch
      literal 800
      zcwUWAO;6N77=8u{T?)7r0YBitaTlVEa_|6}Y(SEYRYD5um7zOn2fNeBFa?(1<i(ST
      z2Y!G*%J5Fvn8+$&F7Ma#@y`3}_s?qpud(7|f}x$MDmvxo{4z?-P}?#(O+}PSoeL9n
      zJ|rK-@QdL((b9*<@b*6V2&<*aIz?6*Y4bs+&$ShXVR~CCY2P!nTCo#|3a+v!v4+rF
      z-SJkt$KdUheGy<1Gjo_iK->O{`yX;MmP&lC1}DNC@{>X^EW~BXiyk-9)uX0ob9u(F
      z5kL44TSQWPPz#PZGx%S{Fp*a@W?hE)vr6mISkeDPe_>e6gx#;KuB^lCmBxvZV5{3E
      z^sH1giG|8+PJG3%d>4PDE^0=Ql$A-vo~(cN*MhIyR^A#IUCzBpcyzvLs(q?@lzS9|
      z^^GuGefa~8?^I1-*7Ya?Z!m*R%u%*}i^M!0)k*=H2ua6fkFijr13aOg^H{{v$m4)&
      z=iOWh{o}AvybBwv-f{lzj?oSp*sYD$ZsC87nph@zMspueYa<WO?w9Y6$sZBD_dt1u
      I=QaDq4f1lTT>t<8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AESSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AESSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..268adb81c1680712dad0283361192ae5e2f18f8e
      GIT binary patch
      literal 1559
      zcwUuMOHUI~6#g!4DGWtwkw<xy^3YPC3?PD1ZGs3|Ax14i)Wl>u+?0WKrkR-%>c4Pf
      z;>x9KHjrrIW8=afWjyz`sXQ7UUCcS>-t+j*`OfX1zhA!tm`2i%28N-WSyFejJ#Amr
      z?Q+qz)E%9xx>4Nbwz{~S$rKGgybSU4{FbCx+|r6Jw;3Am8>Zo=7(Ao#4F>O$wZ)sz
      zOt!`y1s=2n;6s3+b97ClRP&mdQ!}n@n7L$HgtV<0CVy5cWVyYrW%HaNv}WmAenYbj
      zVOI~m?zZ7DjI3SUM3O<_W{%RP2^+(^(R8J@!}XGFxMg*fmy@TCoFdoN#eB{pYrF7V
      zv$X=J4l{Io+BG8-{!%lytU^+>pe*m}yyzO1>G;vXFnH2GZSHA#V~dK`{QT%*n5ye`
      z7Q?ZqFvCpU0Z8}{^On9_A?QQ{3cAr7Kp*-U0y*wVzl`yoOWM*+7+@Hn*+sMBBI?jh
      zv`})~XqHE(=c3uNE4b{$px|<dp`#9$@eRTDNC4LnqP4J!1=<7#mZloJyv)#EhXZmf
      z3ZO*n_!an|Fk4Qaq3=9y7&b0L{n;wc1(YjLG403H8LI1~3Sb7e8G<zT6J0Q*j*oFE
      zuQ^UKeuXJ0py%Mn+?hp^LDg+K5mH+uhT%)hfF7MAfhrlRWb1sz5D&4X^2jDdJpHv0
      zy%0YSX+AX4*H6~Gw1MWaP*X5?1m%E?2DH*wAqhM{6H>TFTA<>HHUvp}#r}{-JL!!i
      zZ_wI_gdZrmk7O+I3*Da(PW(joA$o$r&uIOI&ex&H5u!iFdM6TL?-7Romy5{oNAz8x
      zq>s^sCkT`5$5Y(Gs)R6GNnM2?w3~Ftq!z=d1RO&gW3ty6#xX%a1=K_xs2}AVs4`pd
      zC4QqV5hA3M3%)P#ZW6$-FYG<U?17wI8#Q~UinK>Yy`a-|%JYhDHYxWTLi$#sOjWYh
      gP)2GfBQ=x}LOCx{Mye=1=*3+^?jz58aw-e|07YDgp#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/ARCFourSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/ARCFourSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1bf06f8f49bbc472080dc52d58afc2e697bd8d3
      GIT binary patch
      literal 3913
      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
      RfVUd(R(;-#L?v+F{U2<6VCnz>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AnubisSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/AnubisSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b1b9f438158b4c34733aa9c4a581c75edb4dbd80
      GIT binary patch
      literal 375
      zcwUWA!AiqG5Ph4bO^vbDh@T*~9$W-_stBdvDR_zWzS%D6mbeMqjp%225<K_;ev~*H
      z#iKY2GjC?zd+hGV=i57gOB_cC7*0#m@~wCjPh8sP#?^c)6_>i%D9ab7E%YvLbcB#$
      z`WJQCmBm^#PFaS*wKm$_F!UzV6+^hJ*J_A8T8PdwMi2W5`bZc~CYg8Tl`tjGoz<qC
      zd(k-4M%}d!g|hdes1!q*)lyU|VYTmnhN0W&9m84nub0dj;=FFHRJYozN57j3ucd#X
      wJHrQ~)5m~vMBNMlAs{+Whp&iV2nINy98(3Zh&aQDQ1VT~7>Aw7QO8Wb04cUwegFUf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/BlowfishSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/BlowfishSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b5a1308e7b37a9b745b3a4c1b0615675f2bbe9f
      GIT binary patch
      literal 383
      zcwUWA%TB{E5FDpz6GEURh;N|ffQ3X)MMzMIQ^X~xcPBN8s}M(S!sD|zA#vaX`cW0@
      z&;uugE$z<QGo#(zY(KvMT;SM)!*H5cEnkUe@yavvRyUfjGRZSl7t-+CQolT^b&=G{
      zgUc}ai#+er%~I5jGz^0)RjKBhp*Nl^7~HvDN*{X+e!6oF(8GR+K0=0*acq5gDXN?&
      zjZsxTv$A2VDtX^NrP4fzw3G}{tTRzAgi*HMJ-SVy*3@78&uL~1L84oe$vb8BqhEjL
      zR!{q(&S4Lu+sA;SN7WP#A;3F}{0{{01RWeu3@8JaM4aM~Q20Z`5TnlIsAERon9yDJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/Cast5Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/Cast5Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..767b8902d2d89809465f981433cded3c7ac61540
      GIT binary patch
      literal 371
      zcwUW9!AiqG6r7hPO^vCo5kEi>X+5|I=2R(2!Bg-O>3zFh(k(Fw+l}aFc@jMM0e+OY
      z8}%x_g*Wrw&J4RBpKtE~E^!pXBb*jh%eMTHKQW=78&k8bkW8p%BQ;y_ok{aXh42Z}
      zKb0Nata)RkCiJgWrOcern@pDke^IaH0DFW$xX1`S?8gWY6OJdD3uPs*3YHtKs$%9m
      zqfAxuu6<ZZea}~=BqUiac)8?Sx%p@5n~mBL&a(gfV@8Pby46D7DrX-4UR*dQPGBDl
      uS7c9szU`r%Qh1gD;dwH6Mf75+hoS9}Mc~Q`Qyf?pf6Fk!xC=S#l*t!Y%2(n5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/CipherAdapter.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/CipherAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91f2649b8522965a10b4d2bc57f8814b88818624
      GIT binary patch
      literal 9825
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/DESSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/DESSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91e1931b6c9d3f3780dd332fa692ce69146025b8
      GIT binary patch
      literal 363
      zcwU82!AiqG5Ph4bO--ZKh(916S`RLQJynEK^%T5Bdfz5Xx+QMHb|dw(JP98B06(fY
      zn|jtAn0aq_Z<yKd-RBp8Yn%q~7|sjb@U?gqTb`M>+E#p>NuH^CB@MrSNYh#c@EOK`
      z>E>;j<)XIIF!XMfR`!meGa4@#{CSnjJ`RZIaucG1L4+<MhO<%PM)FeVf~VFfT}+*0
      zm?$lunwO<C&th3hhB&D*Q7(j0j{i1&yHXp5i{$?srVL?PH71jf%2@~d_LXzdU(jlB
      tk5P2dqZ|;Mz#{|%mvR3C;X6SOhm=FAzzqo}I3g77Wf<bP9dgnt;~zalRGI()
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..172c5bb2934a406b8ae528cc09d2c2bc74f03ac0
      GIT binary patch
      literal 8363
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/KhazadSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/KhazadSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c133eab682e37c9ddfe08ebf86a7b3b20da0296
      GIT binary patch
      literal 375
      zcwUWA!AiqG5Ph4bO^vbDh@T*~9$W-_st8i>V(=2_eY;tbt#K39M5=$~N$}tY_)+3)
      z6p!L8%)FU-@3FfdpKtE~PO%@rV>rxB%h%#jY`C;fbyM-RR9x!1P?ld8;#p*AtpoTB
      z)4!;Tu3ToKZj@yhoNJ?-3x?igx@7PdRi=j6qQzb38KQ^n2z^8h2b09P@=}<br;XJn
      zpF7bw(MH|0_bX*@#i~>caZ*W9E``;u{~7vCp&uBIl7GEq&Jd<mYo)r<PCfeFoH#B0
      x3*8wm7@a-_lmqH!@CX6HaXfrQ_(IUb4&{(4a7M%#Mueho8phb|O!hiv`~~}UT0#H-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/NullCipherSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/NullCipherSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6796be3adf16b3f7fc47cb675fb5df556c7ad6b
      GIT binary patch
      literal 385
      zcwUW=!Ab)$5QhJ3x81s~R#$w7R>2_HQ$>)1r=^#b-qSQ}Q(|_BS<%PxBzW)vd?<0U
      z_2Nl0F!?9*=VOx3ulElCmpDlfF-$7k@~wCh&s@5f#@Bo+6_>i%D90DAG4oEAjZP5%
      zVc%JA*P`*tF$}J?)&7Q|H=ZmR;(5JRL+p{V#7)t|euh3WhSPBonA`|k@zOhOt68`*
      zDzsIL_F<*my;vE=kQcQSW+|Kw_0M7KH~Nv`y!iK9W(;Xrw@#`%-C=)qF9L&ph$cr^
      tjG~VL<%Fs!B2qwdmJi>MzLJb^KsluyxFX{ehorKd4I><NkmJsoe*;}FUVQ)n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9aeda4489e17c2a8a0a964dede83beb32e29f34b
      GIT binary patch
      literal 480
      zcwUuHO-sW-6r4>z(!^*rT0Iwfs0uC>)I&wkQmGI{i1faVOS=*`Ws{2jEKh<5e}F$q
      zd>h59bQk8$Ec52=`}}(U0MNsZ3x|PE^@2Z$C-KY^^D-|o{*XwXsQFA9etR*D4?Cl4
      zk&MWZcFu>fiz>tZ5={*CQ>9gL#!%_*jv1<h>|QqDk)}K!6|4lPAz)~ABOA(7p{G19
      zjMCG-?Px|y%bUgHM4CG>NhL!VWr;|~!YHeMAFIVo<qW-OiQn0k`V4-YEleUWmCf->
      z&w))~2(Gl2W{`?Jm${1;L;K%&2JdeG+Mq>Y52IT{ozNw91cw;l?uCsv_^(7AtP=WE
      j;T)sxoM4S~@MA+0>!oL-#1NZQLt+(dVH;jK#)J0_CVX#@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3bb8bbbdf4916bd53833518f3402fa38f37a245
      GIT binary patch
      literal 489
      zcwUuIO-sW-5Ph3|q>0gLw0bV|P!(J(daC$UlnPOVO7Gjav|G|m*(9Pr%ah>2AK;G?
      zCu#92-G!NXyKmmx+3%mvF965bvtcoG#yaCu@giP%Xx`>&%%`E`p_)&m;g8ohgHEe|
      zFTy@CqSlqpMk=vUW;k4-kD+>|v`WtzO6~n2L%A0}%NiWISV+1kVa-DY9z&xY<hnc(
      zddvr@QF`3Xo9cnm@*$gzq<IpfNHX|A9ExZtjLPxyu$)d*!f+C-@WAC@T?Tg$XC{=l
      zDwlE#+EFgT;N590O)nBjBIyen49$NX7@R*3G(qDdUyODIRf;yDQ&?01_JLpffcs9R
      og>{N9Wmp%eT9?=$>@8@hW3%9F7175wWuK}NcCZVluyNr00=h4BMgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bad376a94604ef64f59da8ba0959f54ecf5a1785
      GIT binary patch
      literal 495
      zcwUuIO-sW-6r7iSq>0gLw0bV|P!(Jh^-}TBqO=f2sPw*#Yr7?G$|mvSXL%Al_yhb=
      z;wEaZ(p{K0Z<#l<yPse09{>)qW5XgGPgKTc{E<JiP`}L6n9V}LLOGub&2G9E!=qOJ
      ziidrph+5q!e!7>*)JB=Gzr-Y=dM1@j&k3dW?ubzC#do3xhfw=7by32KhYCDGqaEbV
      zEaGayhN+fn(#gl_fmGr;dl(CS%g2!*_(2@<XvDS5``^QII+Y3GG+5$_i^p{c?l8`D
      zC@y7g<`%+(+=k!{loGlZ@gxz6jRv9lZwA3xq@W4&1;`hfT|w2LZMqX!h5`1TUwec5
      qYN&-(gRZHt`lwn1teM{Xk)e+DLbFkzk4;m3!%En~Hk=~Hf%6SMA9nHp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd458d97c07694662621f1737495711046c77a84
      GIT binary patch
      literal 486
      zcwUuH!AiqG6r7i)O%tQlX!Ts^p(?mk>8awupj3#WR(jvYrQH%YWs{12mM6i3AK*uc
      zn^e3?cVXVVW!}ubukVjf0A1`kun66WTCf>^<}WPPuk$=*vskcL&Zk1N+w+UzaeHvh
      z<AG5m?T}}A&w))iTw#n*JC#c2XM{>;e?+ju^ikB|5~`)6hYHqwRN)hvov5&730D&~
      z%(YaLelgRCq!Krar?Jove4GeE5T!9sMqJCH|9!Ocsmur`(F*@tuGJ@a!*rozaVZNY
      zuT&is9t8hNDWSuJXPL+xGzqPL0|@S41X?i5qc~)46*Ys7>3XmX1Du1P{toZWPz&n@
      lJyT)bp=RA<!}R`Ah6XlE%~pv4woMHTt6&GaaLX7M?hnG}a)AH<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef111d4f87ba3cae3b9fcff5b38583bf96d68dcc
      GIT binary patch
      literal 480
      zcwUuHO-sW-6r4>z(!^*rT0Iwfs0uC>JXJhcD;1&$kskE4jZ3={H)WHG{wz;|2Y-M+
      zN_-o|t8^FU%`Efg?fd+C{{Ya#jthr@PxXR7h$r#P6Z0}JGX9WAo~Zdu8h(8`j1N1b
      zOOcGok#^38v5P9h{t`_L^<$+~al%mP?v5F%gX~^5;E|?09~G<ws3Blzbt4<fQ=z9k
      zE{xLCzU^p6O3SOo<3ySpF-avu7-fk_$HFM9e;=#GOyvx{Xo=t1mHG^RoGnZu&y~&b
      zOV5E#U<fX>mS&KOJeRqP7DM~rcn0rp0NS8MVGpBQL!Hnibp(eP;O>QuH~6na9jp@i
      kRN>sB?%ZLGbns(C6YHgCqr?!KR6}AFY+)N-ImUzc4M9(D;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..185d966ca3eef7107e6bb1d670b4b63764e46b3a
      GIT binary patch
      literal 489
      zcwUuHO-sW-5Pg$=q>0gLw0bV|P!(J(da8J^C>5g!mEO18rCo`evPnh#SDpk9{s4cJ
      zxJipw=`OsP*?IHc&iBvf7l32zxo`-biJr4Z{>)#PFt4*LVUI#Gp=MKQ*!{)jpwsH#
      za?!VpxOFq-Z+z^cOgLO&j!->QT4m>iQhR?$DEE@FtiiL5g`|%X)&f)z5E|_$*JUx+
      z6E?_<(vxmJRF9OFck`!_G!J|fOF|eWg2zK{R9-J1%h^<=gp+864=xw$68u3jH$q;i
      zT*@zKN4W?gxYk;lUd+=}rY;(U=D!XE@6Q8G*!7VgvbTb&Mb}oRaBK#+2Vw04{<}>b
      ntXuSLgd<RO#@MiRu%Mxi&4RO4V2EuSLz|VbgI#!qjR)@+ki~Ri
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..098c4a886933aace13c6070907c715194e05b15f
      GIT binary patch
      literal 492
      zcwUuIO-sW-6r7iSq>0gLw0bV|P!(LN^i=U+Q7S|cBE4_p(r!sNVUvpfEKh<5e}F$q
      z+{Eftx(oB>E%Rn}_w(!h13(W4HY~!~R4v(@Kk;W4>6bK5*gO&}lIcunc7J&lo_0pJ
      zJQ^8A+zEwFh01MI3CC*;66)tt$^3#)=^l;=)nW1|8gK~q%F{&!8y;%#2(4~V7_*qG
      zDGPHg)pSryH3O-{-EuJz`hibkLGXhl;_;YkS@f&JYCe-0p&zVq!{4V32yU1xbtJB3
      z;pLXPlfs4I-6$pWFy>h%G8-*I``-wH^B00P%m<)YWOfa8gSP4VunYt2Bfs$m_tj7f
      nn+9D|Va2Fh3v8L*`;noE?NYN-qK{oueZwl)!#<oc#)0z<O)7RE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58d1c9eda3c62d7ee289a111a24bac28f2f9cc10
      GIT binary patch
      literal 489
      zcwUuHO-sW-5Pg$=q>0gLw0bV|P!(J(da8J^C>5dzk>0m)X}82p-6TbSmM6i3KfoU)
      zZqnjax(jb+cHX?V^ZoPr1>h71HY`GKqH;Fl3;xO?{Wi}MHj4y{<a{bLd$_s|d!6AO
      zkA{X3cfyyPYhj~GI9_9pP`{8$W|xFY_i#k04w5I)fMXg<Nf#Atc&Nc6w7Nl|%VMr3
      zEX=f2lYTMO45SkG`SV!lM?Q`P!4Hy%$0M#~QLi4W*;J;4vtW%6t`_SP+%U;?ByMCO
      z<(9OQLWJPmDkbzF=4mQY8!bZnUk8Ho=YclN`X~;WTSMKTZK`uvCIjpvzwrV0-J}*a
      m4Z0@6%2Br#*fO=Zq@juJlCx8yk6jaelU1;XeK@6!1LqeDt#sc2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fc6cac7f28186948d485f6742ccf4aa7c1cbd3e
      GIT binary patch
      literal 498
      zcwUuIO-sW-5Ph3|q>0gL{5ltUs0uC$#Y4q|wNfF9kkb1$F71}MDVtREqQA+L;K3i@
      zj}j+Q>QTA_GjEnR@9pg8*ZT*6BkbC+7}{e!=Tq?@9(iP*W?90gk>rt@O{C$s=e_W_
      z*}oQ1pBQm-VAL#@7roF%nc-lGQHJWN(keS+D7E&64CQWeCu?vRoQ0~35>`A^;4y5s
      zf?S%%LXUZv8KuXae6AiSEpO)cBWVU=6iWs_NFosrg;9C`ds)sVDrGncmU!dedL0Hg
      zOy(w%mnv6t3+7?2!{A+MEloETX)042+YF6=O=!!74H}?NKz<lS1y#y6b!}LL0DIrB
      ty}^AYXknGIOBL2Ls@4nEsP}$osAIk0Y!unYCRLwM30v5KQ`k6gz5y#4cZ&c3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c869e58b08b380022b4974c7f3ba7379a4e33c8c
      GIT binary patch
      literal 492
      zcwUuI%SyvQ6g@Y6q>0gLw7M>IQ576ix~jOaC>5dzE!|J!*iK0&Ws>^%0{tCVf(t*u
      zj}j-bx|Pnrx#te&o-;F_U+*6P4zXjyA{>v@oK5&We`KM4nx!$Dgo1@~HWr%QoSpZM
      z8r>@%c8wxx^dI6onT%}|3HwV763Qo1$@G*^XzmUO#ZG)HDsTw)!qY_oD;`Sl2(@OA
      z8MBD15$mN|s!=<ess>Vt>-lsjbe|6+LGXh(<k5g@ne~gqVmg)yp%pA~!{4X132rZ*
      z>rh<C%*)Mn2bl}OyHrZ(PQ;T$BsOY<`o9qb=Pv|xm=8d<$m|lz25r-|U>OG3dw%5&
      r?yI2|Rt>tQ!g@y8dcm6My&oB>SkE;ZIr`W%)i<nwEo{TdV;nf&Wcqer
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a2d9d07840815ae75e107d8b6e7d971102b5669
      GIT binary patch
      literal 1411
      zcwUu~U31bv7=_QKz!Hj9(c)LNMbYvhL}>8~$C1)HFijn2!f@eTNLNUW2?nt0zw*i%
      zFZ==iD93jbtd3=-lU(d`cJsbx_iXa>*Y_U)YG`sO4CSFa(~iuK<|obaKaZ!Lc4P_7
      zvd1IgYp-|qjC#IvU|Joja5!QNxicFW63=Yco<3*D7IayvIi@?*jHz$C!)CYGXNa}E
      zLy?5akm?+?+LcbL-_lc9!g3mMq!|i}I!`Z2uNB>P#jDx-f$)3gz!3}?-Lp)mZ~C^J
      z&lh9Ukv(Ck=w}A_o483?!Z*_N)b0$)f#X^4bm20vF2m}AQy2R(*A<!TD#PZ2ip8-~
      zhBxyq@zR!uPX!07%0h;8*L8*8cFf5{P$Ko84|Iz`i;yqh+A|oIXynK-)FZXJvw^(O
      zL?}4&4BJr*b{y~ctvwmhE&h=ln+&xmCT(*vZ7{?Ga+D(G-wpEb%KVjx`S(ZW7xR$v
      zhl1k)!&VdnL-=FiP8s-Iaco6AgYjWz`t*AwLc#Hnp%KNP=i6gP1h=4`XpSclqx6ow
      z@JsT!LJoAVkdHztjs%UIX8VW*>uRaImPvj?>T6JPj>Z%bN)bt=g!44t2n(@-3xSb}
      zi^!0TRF`mhZoE1-enHjLk7TJVeY5}jR>2i5@XdyGC%(zKuYzkq&vo1&zQJ-3VU2dX
      qNot+ALA*`8L%d78M=TJF#4_<du}aj4HDaB(O>7V!5g!wuLj4U>t!2~z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5055d05711bc99adf41d72e238d7c245ccab2473
      GIT binary patch
      literal 472
      zcwUW9O-sW-6r9(uG%;F@R?meVT0s{Jo+^UYib5(vr1x!H(=BmRHi_uZ@+5fh2l%7J
      zP3+z7!h18z%)EWyKc8O!PH<qMLO6<4&KCTIzp_xjEwh9zLcv10oD0qFFUP^4do$tT
      z<Z95p7zY+=g#OwVLgP#-nVl1=z5bL?8zqmT3EOa!=AeoV7j?LVcF!*&S<F?$f=o*l
      z4GTxhmrC5_&oiMP_$(F#&rd=gPq~%_Up>~cxl9SnU;A&xIzxgJB)Ja7wJcJcQgK}P
      z3GS^@LXTperXsb_CUpJ{Cs?a^bYPZ5amd^{8m3x?ouXn8U>$nR4><1zR<LQRV>;*w
      g4T`X3xcetV3)`h;r>q`!P4^6{Vh{VU%P}_WUr=dlLI3~&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d12fd65a02c4d5a74b55e6d9a07b9ecf64b853c
      GIT binary patch
      literal 481
      zcwUW9O-sW-5Pj3HG%;F@R?meVS`V%kJXHj(ib5(vr1x!H+AZm(Y!cC*<w@}15Aa8c
      zn>2U33vcG_%)Ht6^ZWG;;0#9=DumOS%GiRx@;4Uh_f;CRMJQM(S977+)AemI=-!Wc
      zIKCNluT(abiG>=Wzws2IaUqpVFA3FNe?q8@;uq0`Z3=5a2UTpjsKX_+dw#CUBCcjE
      zNVQb6VLsIIr4o<Xaw_yQpGJb<`Ekgj3D+{`<zp?K%Y-oSH~wB}YDjQ`IMboHlev&n
      zG@axU1ouHHp+^x<5@GDO37voS30AoQ9T@A#51Cs>!=Po@IVvUttYfeF3FpJ46>J-H
      kOa#Sf&<Z<-yX!Wzuv_%(73g8#M9*YZ9N-XkvBrk|2fTW3_y7O^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5af49f2fe50c3430f2851838c522dc8a635beff0
      GIT binary patch
      literal 487
      zcwUW9O-}+b6r9J`ez=ORqGu8g;K4?sCyWPBqsd}SFx<;pp=9ln?xOIsJehd#2l%6m
      z-4(q`o6MWn%$w=^{CfWYaEt>B1wwnQ=4{HJ`GSRdIZI<U4FwD3Y$7zf>s}7pjq5%S
      z`xos-H;P{#Wiqi)BDB_?BUH|$lIc02*lZ06rC$6XY&Zn_*V0818y?E=2(@OA`Lc+s
      zF&m^>s&OY9s|Heu+xgQ-=zBhj1i=sDkViwVW!A4AOX)-=gp*+H5B@FIA-IEhu0wGp
      zGb=Zj9c3m2??x%1dl63(kyxk^>i;GXtW^f;FzX{bWNsN1gO=$|Q7{a!4t@I#?yI2%
      nY#MY;1uamaCALiO{m4+ocCOjU(Z{Z-zF|e|VINK&<G}d_C-!or
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4deb7839cd8edf56ca583e780a5bed8974ae7565
      GIT binary patch
      literal 478
      zcwUW9!A`<J6r2Zz(pp8U=$V8AcyI#=CyWPCqe(F)HQblFfhBcIwuR_X|HzYx2S31%
      zGHwfZ*-hrnZ060|_w)Pp4WNq?8zlmpswJEA6@OuoeqCe<n@560axoK{JzQRgz1HoB
      zN29A=Ysk~AZ^I&Vwr(O+&!v*t1)<#Tj0x5-c@i}^gi4X;qKq966?lY3JIF&>%+-{I
      znU-og$b0I6RN{X5JQ4blPhvsvgCyedm}{Bq&7+mgWJ>4;TmNpo(tzNG$x=t+M&>zg
      z;W^6_2;QAiLJwn}rXsb`AT<AtC)k?-Xu>Rx{E)d7R1Mlj^-(emuuuKkC)^K1OV~B&
      knhJVDmEN&uw70gQj{U-OP@s=PQ+>nAIKnZUVvGal57XRkGXMYp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cef6bf86d414896083d02d33527678dd46118f9b
      GIT binary patch
      literal 472
      zcwUW9O-sW-6r9(uG%;F@R?meVT0s{Jo+=(}D+;Lyk>0m)X}82p*`%U>L4S=W!Gk}*
      zA0_Ta?{*j7n^|V&?fd%v_yll*0|zC-(M+w_f<N*n7VGC_p0Y(OSS*)wq1o-lDC)JZ
      z#ylPmd+p&Ua!?_3*R~L9XHv=hoKWs`Cxpr%y%%-3hMP1GWo-DU!Y4F4p^an-S2Gsn
      zTB=#!IvSx=;%4<Q75a`(6F~^VH0H^KYiar4V<n%<jKIRR|7O?e6TB#0=~!G!o8lFU
      zW9ujQ*GdUJNO+cs%t4dT`Zt{5{KcaMvn1>xbE~MC>KJy4l0krT7}Ve4y%|`-rm3Fk
      jpcmBW6<db;zcMtiU1)ZS8erG-z@Rerun)Hw<HG#`YZz;j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfcd56b27dcfa47a23c092b60433e36536bfd00b
      GIT binary patch
      literal 481
      zcwUW9O;5r=5Pic}X|1AF^i0A5Jh<A#6UKw6(O8TLhWk=Bu%v9swixwq=pXT9;=v!_
      zk1}oxciBy5-rITeX6NVk>l?rc4lEQ1$78i%Q~t!CS*Ty;Y0RdfV4<8(gk}#HSAD;E
      z)8k?9(r?~P_$wb-C=uFgcM&RQQpxn3P;9jagi<#ii7ISUSQ<JgV#7rlE}`BEGFKLH
      zHD>)(OEvCfO|?KOale=ig?{A2ND#ar4tX@-T4sFpSV|`{A^5@C-&-x!Avpbbp+j*k
      zGb1M#9c2~-_f{#PyAe+kkyxk`8vptetkncGU{*(V$lNk2CR&D_qF@kU9eUMII3ETU
      nuxX-WGUyEzddHUG?ox&twsXx+9zE=u>={(V9`<49V{F)elf-Zn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1c4c31d3b470c4674016e7e088ace51d61885ff
      GIT binary patch
      literal 484
      zcwUW9!A`<J6r4wa(pp8U=$V8AcyI&66UKw6(WDrY8tzNoz>>Np+hX)z^dmf(c<=-K
      zDC4%`S$326=56N9?0kKHd;;j=z($GCovJ09^GE)~BK^F`5;l(ni{xS^G`l^!2z#xo
      z5syaay;dmnLa59}nb28#jZi(2N@k}7tKAtB%ERPd)Zh^8m7)s^8y+g~2#t1-%d(iO
      zDGM_#)pU?=)dQ)-&GKO)^c|nXg5U>9#N#p7GM`tE<!mNXLO)phe}AzC1UF2UIue&M
      zS8@y1QLaJou9Xsc81pn0sf`Aq`LBV=x3WMJCOq;(=2lQO)i%>HN(KS;p<jE4`(|JX
      no2I&^gI-XjS8SQt`=z0d?SivYR3E#h`vzIq!#<qC#)0z#LT_=>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b96c5e2153693e68596c8315bd2a7417baf4619
      GIT binary patch
      literal 481
      zcwUW9O;5r=5Pic}X|1AF^i0A5Jh({W3FAT3Xi|(x4fmyPU`gHLwl(^L^zO;TgFnC@
      zW!x6-vYX7jxAW%B&d=}HH-KXtSSS&CQ<bqff95YN)US&)X7f<6P%dUdv%B-lpx?e8
      z@o;p}ZwF5q*TO=D&|SNWP&<`Mre}n5r#mK8hVg@_!#0Jbp@T9uTvXu_njJrPWf50X
      z7NlCL=^$@v_)>}6>~SLWJ)cB^;Q4XLqcPVq=c~s`I+F>Z@2~y6)lvh36U3Pg#g)vB
      zoI-SzTM*nErGy?vJV``ip-E`{>rb#&6VQTL9r+=1tEic18Fqq_L4bAW)j#2U7+Aul
      miH^yjH`M4ITZX$!85-CwG&@D~uxqksP#JsJhh2=ZVgCUQL~xM+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cc7e61f2d6d77b2e5cb2aec0af856d7dfaffc41
      GIT binary patch
      literal 490
      zcwUWAO;5r=6r9IbX|1AF^i0A5Jh&0V3FAS)Xi|(x3HPOLU`^eUZ87?%G@eX6_yhb=
      z#%(2fl-*?Byv@9s-TnM}{{V1|0}BPh$xJQT9e?1DEYwenG-h|9V4+;hg=RPB!=Tf=
      z9Pw~8=rqS#E+R1)1{O+$_S%Dl%BfT`JtGub?FpgOk8ed4Ho^Y&bWp^Gi!xk7z2#@d
      zEaGa$f>cX2>t%B_Un+6Eyq^j^=F><JJU<S3G~rri{pzrk&SgUA`fK0t?`b`P6U0j$
      ziVK-}Il1mAb0N4_N(tSMc#??3LY>g~H-ccTLePNu0A!2IE~8@5GF=x1!vO2htG>Z`
      qHMD?DgN~`7XH@6~Tc&q^WT;^~*X-ozVb@g8up;)b4?B;sVSfV+Hgi1y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01a5cc85c0b2c3212b91831a4b0b2090e9316579
      GIT binary patch
      literal 484
      zcwUW9O;5r=6r9IbX|1AF^i0A5Jh%bl3FAT3Xi|&`g!@ugSW>rS+xqddJYhWe1N>3O
      zZN;<fChyJL%$wQy`u_L?(7}O)0--ZiDVy^r{=x$Nx=1264+IP3VkR`ZJHH%uo7V##
      z3@*CO(R1`5<C%pLp}qDRp>isfOwI_!R(nh+^`m=Hg-x(liVlj{a8ZU!sJHw~mW5nR
      z*)Y*kO?%l^&6i5trjHY$M|=_rg6Bs8564`~Y+gN<l9`MN$Nt*?`-{~hIKwE_fw+>H
      zl9RKJG7W-zqm<D7kjJrzEz}8(e+^8&l?56w;gKCOw~UIZmYGgaFbJ>?z3LLqn}G#v
      mn(CMiTB1Vl*fO*GOG6FYIcF!Y9(GOl3@Ty|`>=Bx8}<)c8*&i<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..951d2d461a889796031d4509e04a43cb37024e14
      GIT binary patch
      literal 1383
      zcwUu~U2hUW6o%hJfdPtE(c)LtqG<V$ZlTsMjIo89l7caTkk|{&vK?XTx{C`~^<Q~q
      z;)OrJA7wnVOS!Nlg}s>Poyj@x%saDx{{H$6pop?SfROFlBkf54qJPy4_gjDHXh(+B
      z471;puJ&eUw^>T>HFTp<EeQk(sWZz7;pe7p4qp(GnYt>~EZy#E&7o`B-EuA4CIl<a
      zp^P9(i0n1CD+P9sVF8PAgb*iWruCg(Qcg>C)0VGCpE}ZQ=^aZF5_QMWt+wu(YCc{J
      z4twT+kguP4{FAh0&f%{s%Ts&v$vc)~e5^~GKsCbhlrv}BD%BO0>MCJvO2zb0v8FR}
      z4f)DcM~`{OT33aHc+Iw@Te0-PKyn^2d74{<!pzyy+q+G|0*?YI!p0np_Nb#SGVBY1
      zG@&$m`;O%te=r9<zP%GEutv~kx2WiY;T9p}Q6M*0?y8r&s&W_R%Dvyyzw3vb+ZO^G
      zgyQV&P3iWfJ>&-)D}l|q_HTY3=`Q~aVP6P5B5cmy-g3>pCB5{~i57S|SBTcJ<G-C4
      zE2O};3H1e7g%IXZ@N6GJZ#|mJuOuQr5&PkloZ~UZ1ieLs4sf35t9~JtaKST*;vy1k
      zqtqo_9vd%@jbCy#_al<aE8pb*zV9IDz2}?s>n6UDv2Os^yq@d0!92jC7h#2WyUFS{
      obCr3Ad6#*Qd7qhKW|?{B1LitYV-}eu=0oNd^D*-Y^BJQ50P%=cwg3PC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..764c572d193556b689cab07b9bebde14bb37f41b
      GIT binary patch
      literal 472
      zcwUW9O-sW-6r9(uG%;F@R?meVT0s{@PZdFHMIjX-()%_p?MmE~O)C1cJP98B0Uq=p
      ziMz3Py9@8lEHm@=eg3?E064&ogA!qHqUP*@Kk;W4>z7%cvWHl(Sk9(Gv)l7QblAQc
      z@_2Z0)IJ+T4l0E1(iTGPL@Jq|63U(Kh*0UL_o5EhaFgbtj1?bM_=ILBw2>^~YQmyi
      zOEu|PM<bL<+{_=xLf`RmA_zg4#ylBuEiGR>R`RLL2rOLsZ+4v?!Hd$lj>V<4DPE!2
      zw|;_ut(4IHglCz^95e~7f5QpRA|5T6C1DSlTSd)O$FO6R3<8|pp#BE$)xZ)~P4!F%
      ieW6C*STo%Jlc9n2LbFlS0Gp-<29>deZMel47w#{GxojE$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76eab32ca78f3177fe51d550bfa2dd965b0047fb
      GIT binary patch
      literal 481
      zcwUW9!A`<J5PbuM(pp8U=$V8AcyN{I31gzD(WDp?4ELpOU`gGQZEN(iJehd#1N;H~
      z8soNbm)+#eyq%dh`@ViZJ^>tI&qj%GI8hm!@n`<RLj5{VV>Sx~3*~$&G`qjJ8g^SZ
      z10D`8k6Y&|8_UFoMd++NMW~)iCDSuPx!oBNtbY6`YH&<pA?TuvH4hbdgho5aRawN<
      zgbh<I)ufjX)dQ)-UG_8<`hkxlLGXh(<k5(0ne*kNl}=?s=msl)Z)vJWaEEcGLvby0
      zA-8Bc$R!Bgtx`hwBc3F}*l!S;|LPO$<pwlitRp{UZUt3?wqYkInGCS^{n|U+H<OmI
      nZqPLm^o=V0V8d{4(S|xUi=M3leQcZPo2-l-?7}J5IB@;|@$PWY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07eeee4c21500995a120b903d6bc4b98e8067aaf
      GIT binary patch
      literal 487
      zcwUW9%TB^T6g`($X|1AFbWOqnTsV>73gZIQXi|&`hW$`S7*eKWT6}z#D-#!ffM20M
      zVw_fVD>KQt=T6Q&XYTvg>l=VW>{-YWT4S|fQ-04MS)iZhNyMgsV1b-Zgl5;>vq7tV
      z(dR+`v|aCp(ZijLCl(5X=E`$~(y>%BIU(d5%^{)Ci*7|3Hlh4$=^&3a7e%;)YQs-`
      zS;*Cx4H7NYxRZ`me5u6MVm1=`hL1u)@cby?;gD;Y_RGgYGLbQ%?XUd7zr{KPXAmuP
      zAkJlK<z%vh)P&$(DkXF;<Z&!w3spkx-volS%s>rheWZuXEuv)5GTjk!h5^>TSAK!>
      qY-kSa1|3sDA1Ki$HcapS$WXy%rrFBS!?vlOVR`Ie7j_n7!~O<cf^&QT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36b90c57748346b149415ac07a9d75adddfa4204
      GIT binary patch
      literal 478
      zcwUW9!A`<J6r2Z?(pp8U=$V8AcyI%e6UKw6(WDrY8tzNoz>>Np+hX*yJehd#1N;;H
      z2;;VJm)&IE%x2!aeP6#Hp8&czvQZ+isamo*f95YN(yxmwVe?3^NG@hVv-^vyu-Cd7
      z@o02;+8XjS>)WUhIvY0;s%KKk?3_?;cgBRuFnJU;I0UQ6b5X{Y2MZpd(GK!Z7IQUa
      zVWy>;4)UIQAeFdVK23yv;FDMo{2+;VJmy;Fdi_|*W-=vogN=W;T4_LV!(^!=aV_&4
      zxA2_g2?Xy}DWQikPg9ZFXb_tJ#uM!I05oA1M}Ej$3sr-*QGJvQ1MFkJ_73;W&=R%{
      lx~77@QKcX3811cWsAISA>=o!^-&EhQG7fMErx@eF`2z`4Zwmkb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed4e239ce980ac4b74dfbe5917350740ea351fdb
      GIT binary patch
      literal 472
      zcwUW9O-sW-6r9(uG%;F@R?meVT0s{@PZbZg6@^rUNblRYv@3B_HmT^(@+5fh2l#XJ
      zF7C$O?Jm4Gv&_uf_xbbw0pJLG4oZZBsamiH{=}bItY7AN${u3DVmY4)&2BG-(Q*4~
      z#N*N6q&*l$4l0E1$`(THOe&e56Uv?Lm{94b_o5EhaFgbtj5Qxs_=ILBw2>^~YRaNq
      zOEv9TM<bL<+$<g^Lf`R8A_zg4#ylBwEiGR@R`Qw52rOLrZ+4v?!Hd#`j>V<4DPEyC
      zw0?qrt(4IHglCz^95e~7f5QpRG9E3MC1DSlTSd)O$FNhB3<8|}p#BE$)xZ+gP4!F%
      ieW6C**f8Axlc9mlLbFxW0NbVq29>dcUAV;<7w#{hXl!c$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b5f8115fcd3801ee52ec023d7bf921a0d89d7b2
      GIT binary patch
      literal 481
      zcwUW9!A`<J5Pd^|(pp8U=$V8AcyN{I3FAT3Xe`DA!+j|mSW>rSTa5Zwo=iOW0sfN4
      zxGmgeH<@{F=gpg)uiuYP07uxfQ6L<S)tpWF6Mtr*ewn2)n}&jgayAi~-Jf6f+l}iU
      z4|^BKjoS%-<s%zKLTlwNLitoGnVu1>W@|twcH@z#z%hk|p$iLZ9!l^CwPujHvWTlO
      z>!(_(aVKl422zQ;`QuRN2R@7h!4Kk)M+2^9#+Q%9bRrW%J6QR9%cVL5w;#`SD6V8?
      z<mRG-%!1(EC?#|^;z=SB8#O}xUw?wVoPava>c|e6TSD1H+prT93<B(Zzw!?E&A<ZI
      mO>|8LeWOf2*f88%$WX;*uGz|?k8P8EgDmV|7fwFLf%6B+IB@F#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5888670ae88ec74069e6e78f5a11d43911450f45
      GIT binary patch
      literal 484
      zcwUW9O;5r=6r5KIrL~Gy(K87L@ZbhNP8biOMw4PpYPc_T153)5Y>UyK<;lc@KfoVl
      z+*UlxZt~u|&AgeNukVjf06iQyun4`0TCy2`<}WPPuZuiovskcLE~Y}Whs*2exP3e1
      z@$l-j9SOY<DtBNLx@)fyYUfhP{DM&FbVmexkUohzT!OPw^iaWuk1BjZvlAAwEa7Ux
      zqFhTg=@(m#P%3f1oR5Wm<l{sTf-sGFGU8em^Xk#gr!pg)glqrrFIJ!6Md?z<;zkxq
      zUdcKtGzk8kQbG?Bo@F9)&?L0}H8A;B7HGkQM{&s9Dr%-WW;%mq5a1jJ^>=u023puO
      m)iWKIjha=(mYMxu8XDLxIXh(yuxol?Pz8I~hg;gXaDM;_UvR7d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83dc11485a387be12f104c49dc47bc2c3f7f5766
      GIT binary patch
      literal 481
      zcwUW9!A`<J5PjPgN^1eFqGu8g;K5a*CyWPCqe(F)HQblFfhBc|+t%o3c{1_f2l!FO
      zZRuThlbQE+-n`lQ`ThC^aDoFH2Ep-M=5)zk*&B`2`zlN5GU7B6s|8o|;qp2h_HHLE
      znp~as!k3&WZo?uNY}`dqKNnJD7X)U1FeR|Y$rEqD(S^043lm!&YVZg;{h)BAF_Uu|
      zW=hEUsAy^jLh}3kdB)Wvo5h^K50Z$*Q>H}0t4Awah?HO$Z2Y}ysS$x2Cb^3EjVO%V
      zQgl>U5O{Y|ay5=wn)1{}hoJkfKY?9MKo@#-6o=?rLtRH(vojbP0rsKa_=NkRp@F83
      luFf!;s2eS`H22mrw6R@kcFO2uS7%=%6MNW)Q;u=q`~lS&Z)*Sm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d033ef089a7e6dfb77386d7dfed68eb10986a282
      GIT binary patch
      literal 490
      zcwUWAO;5r=6r5K+N^2FZ0%sBq;K7X_oG=~)j3&jHlyG0_29}hTY>UyK<;lc@KfoVl
      z+*YDT*-hrn+svEU-OsQ04*;iVm@o+EvuMp0{E0uaK)tNem@NXq0=b$C#U8GQ{#omG
      z#Dme`qBT}>6^g;oH&G;XwjLyuFJ&atD?*{&nGlNo_)%0~5v*TN8wKn*D8V7r+FoYN
      zLLSYSpDG#6df8mnlaaVzFQ-C{`7{&+*NX!lPPmd;zd0<XbD0pj-qtt#ds>fR`|(-@
      z;znj(cCI_gTnNrx6baQ2d6J04M2*n=H-cbpLePZ%0A!2wE}^W^)Lj>bW`KF@R^DL0
      qYHDCtqpd59I?6@^d%AaiWT;|4*Bs>N;!sytvjUD#hn2@zu)YD+FLD<E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f14a5c171b2266d34d302ab6f46f8b0168e5d7e
      GIT binary patch
      literal 484
      zcwUW9%TB^T6g{^*N^2FZqDv)V0WO^2V})@cYBVXv1j2r(BMhliGA%wn%aw@>KfsSN
      zPAjfuCb{?A$+_pu`TG9&1klEg4U5not2vwUC;q}h{W?oyHVp*}<!mA}yF0(^A2zOg
      zJnUT@HwMq~gG?qiiiFnEYlQNtR5Cpy6q>Ceq1cV@MFkGQUMRXKV8ufT9--C@GFcXJ
      zHD>)(OEvCfTh%}+aXWt;2|eJWND%xW4tX@>T4wX&v6xO|LO2SR{@-7$4#Dlma~+B+
      znJKwB>mbu0csEK3-HmvXh{Q&XQ2*D!<Xc#v4ig^PA#+P8n`)cs1eQU7z3*4v;l3GY
      oVbxUEbXdD6TYFeDv-e9w73(=?Bd<O-P4^8dU<=!DavKNE4<ZY2>i_@%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46d45f3d30d80082b98d50493c10e59ef34cedd7
      GIT binary patch
      literal 1383
      zcwUu~-ER^>6vfYNfdPtE(c)LNMbYvh-9lTxFvb>YN(#mV!h>(ic7(0#E-qlz|H>y5
      zA58Q?6aOgVon6X<B`NH~{LW17Ju_!!|NQ;-9Y6skfjL5^V-K|>{e%8dGu%(TfukK6
      zQZvk6SGwA(-MvOJwO`kbdSy!>KuDfhP6$0UZFBI9kVw~5sb=YRM{5jR)9#e2nHC{X
      zb`E725kh#szEjS#dld6nh#`m=Aw8+@^pbK~teLiaIegcaZc}etk`S*shHkZV*HrV-
      zVqnlU`-EKW%;TS=EpZNiU0I&mn@`@h9OG?G+61Z+mL{Az(^9Ffs8m-8YZEFahl)0w
      zp=-z&raF4mJJz}?B*dz=E#0!E_xqCbi1E|hBIKvemfG2C5axLlND?+?XtalIb&(-o
      z2&4$b>DzZL=lG4;@AB=PNP#tiHoZkz?+>;KL5~92nQ~XW+!d8OKU405uKrm+<lMdx
      z*dP?9Z*NGqC+z`0*hmR%&a{8y{ZM!LX9)R1-~nNC`u3)4_AKe8kBqgz<C#J<j~)N*
      z#7H3tzD=laj#UsL9tF=15b)L`+1zqG{1wqJUdcHgqfF2bgy|>F^L*7W#3C+uMiE>@
      zoNbi4gv%r2rIGP-uI7G(vpMCP_}}*z1pW4W6Mo&;H$3v4!!@txI&LsuW5J8C%)8xW
      pwZdFw-e%rm-eulnrkNRLj(MNC&eWI%W|6tY+-5#xK4LyW<R59CSaJXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e8b00de2483b30aebc10ef3c264b2ddea230df9
      GIT binary patch
      literal 472
      zcwUW9O-sW-6rAmcX=1b*t)2@#w1O@QJyis)6@^rUNblRYv|Hk)Y*Nvm<w@}15Aa7-
      z-^SkUF1$Ch%*@;Oz5M(FaEe0*C5GdPUhtWC5wAQpZ}U9mvsm(2&8O1vhpRz!*18>v
      zczE4yT@E4#6^72*7KV*;rB!~xP;Pfd43&QRBx`VqQ<{e|Hhom#Gc?+vjpT{Y6CUM8
      z=}FHz>Y>u|e(^k(=246j$q<BTERvBh%JS7?C7-H{fro4V&92j9@S=2KVtJ!%idQI3
      zte?TZ(^{H-BC<?o4jK&2f5RD^RXm!YC1DSvTg3)dhgcUSLV$A=)IQ+76D(nisz)7I
      glJE!Hg#14l>ewkXyG0GKM?D}^#y$?<7Gqqvzn(d4d;kCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2834bda64465a54544593b3441e606ef50ae2f0e
      GIT binary patch
      literal 481
      zcwUW9!A`<J5PbuM(pp8U=$V8AcyN`36UIbQqe(F)8175mz>>Np+t%o3c{1_f2l!FO
      zZRuThlQ;8rX5Q@k`ThC^aE2or6~gIUWo*e``5O!M`znpuG88P7tA)_)@#<#M@7#@f
      zIKCcqE>$*@i4BX;+jxplKbK0T7ldlJHzio3_*pdIn8I4nMHO2fYVZiHZjh_8h^sl9
      zq*|)^Fdu3LQi+G`WhV3!pGAV;2XV-wDc3UR<)f7@WJ2f%8-K4fH6*x`IMboHmAQ~x
      zG@axU1n*ucp+^x<5@GDO2<?CM33j;wZ5Zpw51Cs--JosQ02Pw~_Oajig!^IA3bqZp
      kCW36#sev8Cy>%O!*e!bY3iPpWqHnS)4sZykSmVI?1Dx=0Gynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93e1aebee9e519245f8e03f2e87fe54c111a0f06
      GIT binary patch
      literal 487
      zcwUW9O;5r=6r9IbX{`cP^i0A5Jh+j_3F86OXi|&`hWk=iSW>oRTm1N0o=iOW1N>3O
      zZAGuLo6MWHnK!fV^XvTsz%dRi<OrRqTCq8Q<j*Y7FUuri^FXjbE@wis+y2F<)4Uq;
      zV0hkb_QUAuLB=x+1wwn{IYQ}FDw&)S@~!rmP#8q_q70i*{<U<F$CisCTtdC&r@k!Y
      zYRX25mTKBd$11*5;%2p&2z|#Vp&)pE6!37&wM_f<V<DNzm~i56{K3D)dIV<_t#lwR
      zWoqSQvZK_5;9e^w^dRJMEMg0FLgU{Ag0;>-17>}shs-UaWY98Q7dgWK>(DE|!Fe?_
      nhi!w7sh}!KRKt$x-5(h$sAig4h8}iJ^$g2n5BspQ7#sFC2#|5$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9acdf5c7ea1f8437c816c9d304f789b563b8bc1
      GIT binary patch
      literal 478
      zcwUW9!A`<J6r4wa(pp8UX!J(H0X(?DgcHVtRijBUCK&EZ-N2H%CEM2MXL&O5;0O3o
      z#%<v)yUDzn&AfU0ety5c0rYWXqe5Uam9qtZ<!>y~@5?M<i%76YF6TnC$E%z1dFO7#
      zqtW%C6Yw+}*r*bE8#fW^7gEXWl3;av6GAmeo<#!=p;qR(u(0K!29MC{hD9igxtg(Y
      zrlpz<i=JjEm3YWsrb0jQX)FkSm_$6Da4ieHeynD5nG*Wp#=l#wG$gp=B-fF+l|_zQ
      zdd`Xjf_JZ!&_T@8RHQaqg!aGj1baOIZJ5PT95T0tx<T8h0V;+8_Nm|ag!^G=1=|K)
      kQ$fe5(+PHr_Et7Dv0HlfO7yXBs&ANu102FB$2f5Q0JK1DZvX%Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6dbd18e6b4cb7ae881f94b7e735f8d80e8d18c28
      GIT binary patch
      literal 472
      zcwUW9O-sW-6r9(uG%;F@R?pQQT0s|uo+=(}D+;Lyk>0m)X;<Q=Y*Nvm<w@}15Aa8c
      zyRmn>3-8S=GxPR+|9pM{IKzR165(W~mh6eY@K+Y=w?&?^r&zF9F6KhB`>RoO-o6?0
      zcs%U2hoi_rh0tBwLa1FxCG$%{xzn8xDueV<)ZrR#(ma&0;iC$l(CmaZk|kWtSd?q2
      zW_{~ugi?vS<?~eN2R=;%Aqdl$Cljuv<*Ua^K9?DRg=_!KuG1%YQM%NzxRy4>D-@^J
      zPw;P*5_*vEEEAc7CZY9jIKf%PqXn}h>>+cjsF~^*)<el4z&Q@;AMoA{EMe1B&veis
      hYIKAx!~H)Q8rUv0J4Fq!YkFW%8GG1=Ta0nx{sK!_YR>=w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..422cf816dc3c24d46e35869608f140d57c6cad35
      GIT binary patch
      literal 481
      zcwUW9!A`<J5Pd^|(pp8U=$V8AsBx8q6UKw6(O8TLhWk=Bu%vFuwixxVJehd#1N<oC
      zws4o-Wahn{H*a=+e!so}oZ-Mmfp9ue3pV2~{FR0JZJx$#777;1`BZ53czHc&H*Whp
      z>|b>n_f!7P$2N+D*4kZ!^0`zpy&zc4){s!_#bZ%{V+u<{7Zx@=l;9C+%^-7S5mys7
      zNVQaxZq`%{q!JH{=aJA)d=v?SAH*S#hFr^xuO5r(R3?OWu=e*>OLYnEAYSND+{nzx
      z%|$1f1;M*hO6Xq1lSCvoYJ~c~{sen90d<(wksUI(gtCdYVI33<0_;P-@(K6DzydZ+
      lbWH{wp-jivGTd9rP{nqx*~z1iU6Xx-EbL()PCmwg^9OV~Z%+UK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a994a84b414b93d8f84953b184a0ea3ef0612e8f
      GIT binary patch
      literal 484
      zcwUW9!A`<J6r4v3rL~Gy(K87L@ZbiO6UKw6(WDrY8tzNoz>>Np+hX*yJehd#1N<oC
      zw&GcKllSIr=FRMUeSdrc=;6RYh0vR-C7bhS{=#DYy2w*Dj|Ge6VkR`ZzqpEy+czT~
      zk1qS|Na%%7xdWTfU3-mCJCjQ0=LD<M9TV(f`Y7sf3C>E<gM|$rRrrKvCoE)H!qt>T
      zxt3}=D7G4*RN`*=G!goNPZB{0!ZhZ|m}^<gt4BMZ$&7FkuKmBiSObC=rAr-)Ygs6H
      zCF`irAo#aR2|Y}BmWj+klhFFtz~oz5pal~i#UXR6sF~`RsgH_5fO8ns-{HL(Siz>L
      lp6Q@d)ToawGyA_ZG_YNAcFG!H*Yv<33wzjyTiUpAe*hx)aSi|g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f40d2ea87cc7606b67bae1a45970ac3eea019fd
      GIT binary patch
      literal 481
      zcwUW9O;5r=5Pic}X|1AF^i0A5Jh)223FRPaG%3cUhWk=Cu%vEr+Zz2@o=iOW1N>3O
      zZQ(Av$;^8@Z{F<u{C<4{IKz>J65({FGPdBa{EdbBeVN8=5egQ{<y>g?aCsf{+P7mK
      zj<5Rd;3eZ)Sf~)X8+Q?E=TgaZNGNx@6GCMaKZ!bQQ&<@~C}Yb-6)vIK@pD%eaW!K>
      zs->C@@}`C_mAKEIr$RsSX(R}qABQ}ea4mDbeypT(nGkyZ#@|~nH6S=aoas>9$lS;&
      zL?^ig!M#&T=uyOzL?jlPgx0_Q1ZzD3Etu7jA2PR!nu(TSeUuCWtYfeK3FpJW61Gir
      kOa@(`Mnmiv?yh8LV7Jih716`K$(})F9N-XkF~)}d2konG%>V!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcd265c00959d9919c00c9f66c8911c7f9db0516
      GIT binary patch
      literal 490
      zcwUWA%TB{E5S;BRO$ZbMg>$7IS`Ju%dMe^TAApo1q*T4T!D?Lvr*cvRpT!A@10TRg
      zA)HXbk=oMitTj7h`}6Dl1HdVcEEEXmGqqw1{=}bIs9%<8%od?wp<K>|X7^Wv;H-Hw
      z;^C;@X^ypAMxs9mER+cCjRy&p3#nv!Nhr436GEvMKZq)9g8l31polFOWw?ZT%g>Bi
      z#MO)isg`Qi&E{&pRN`*+I2C%#r;#9dejM^>!nMr$^<gQU%Y@MJH@@ND)4BvFh*vrk
      zLz#Iwx$Y!$A-K0n3Ehi$l8D4YozVC<f?%yf(17^>WQ)u$qhio9T?Ylj0PEPRzQK7l
      pw191cj;Wv_Ds+t<)4M-1)Ucat_Hy*FZ>ncl5eGPgoyXX)zX9#ja(Ms%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7aa6abb85dc318b0e3b3ef4642638f98a338730
      GIT binary patch
      literal 484
      zcwUW9O;5r=6r4wa(pp8U=$V8AcyNP;6UKw6(WEE|g!@ugSW>rSTm1N0o=iOW1N>3O
      zZN;<fChyJL%$wQy`u_L?(8hs{0--%sOE%|E{Dp=3b&<ww9tsx9#Y|{6IKLboH?I3U
      z>|b;mqv!ZRCNmpFLTl|cLitoGnVu1>W@}6+_Tqa{fkUuYiY_c{cqqXm)S5vi%Ob9(
      zY?x}Prrm6-8b~E>myZ*nM|=_qf*-^okH%cfY+gMU)0s>NC&AkP`-{~jxWjm<LvbZD
      zB{ydsWf}zUMk%3t5l<44*r*Ze{~DNlD+|<N!XrCmZV6>mZ8LRHFbJ>@{mMJsHv<dU
      mG}Sd7bcZqxuw`cNmxd~~bIwj)ee9a<8)RV*`*3m_2hI;Vqj60D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02f110624619a46a4a81611d03bae38c845010aa
      GIT binary patch
      literal 1383
      zcwUu~OLG!I6opSGKo10sqQO_xplEnVCJ^z3Wtl*%Pyx%Tp;)*ZCM`@HXK)yd`mbDB
      z<-#A}ztM&6EN{<DSQx4TEc!dsb?@nWy7}?<+jjtE)HoIx@_l=(9_k<TkE-E*8hVa;
      zXb9CXhXdiNuXc8|N_MZU8|_AwBf^k5wVWaL)U-|S8ACePlBKGp+kI8@T+{B?n)xn6
      zr0yID1#t#tuf1I_k$VD*SV|&_Btvdm-^nfMwA?an@pAmGC)|$Svjjt`<ruov)m>A5
      zhno>^V2&7yty9N8PFtfK!M?OSaW+lfvmE1XOV|vo$*?kI=6qMCx+GIwW>}w6F+Eg5
      zbH=VAUYK(9gg@4XEM!PFZCki?OCOB{<>8a3xxrAHIa_vnS7TVDl_SHjIY*;C?#YXc
      z1%e~XP?^1b$8wI|n4<yR-m&CZXHaLisOuxI$`JL*QJ5=t!_VE2xl429-XG|n^#jTs
      z2#!sL^6c%JaEHS7=)pq8u{GEE+WWEY(w`v~2#yB~TeG)!Tytm%KYe_nIUdgyqI2W~
      zZ^uK04Cpo?e+#6dh|$XFYabDRKVB%Vrj)NpeDO=p(3&6uKcV0k&XQUS3bBlHzEK?K
      zks=$ZF5qHlyb>Ber)t@+6pGR}{lD*Ts`}&mrh~ePuM+w$;ELaK71xNbvE)ZsrPHpH
      px=CCk-Xh*6-XY#4=7@P>k$8`|K~#xlVug60SS3CrJ|aFr{2v#ASv&v$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea3973338c18478be2457f5f64b6827ef763320a
      GIT binary patch
      literal 496
      zcwUuH%}T>S7@SRi(!|tiw0bV|P(8S`QV=SF)`~(ZVx;$NT-q(^rfgEtm(geNBzW)v
      zd?;}@dhsOPh3}hL=9}5?^XvTsKpVR@EP}&{T+$hPV2?CXPm3&}vxw73ET&x1o3laK
      zX<iOlbSoBoc;4<DHBSejjUoYEagd;VETqUz2nwye5kaw^-17<?&9$eC0@gf~;1SeY
      zfib2rlM@<dO2|piOw<A)`So%>=IV}(V@}`)NyOq2Q^N4y$6_`WDM2?_@rP!$9)TMs
      zOBL}8VZ7X2cVJuyyelcW>c=cid1|9h(D*lkp!z2S4d{ho4$-%SvaYsfU050c_P$?v
      sgZrwXg{rQu?y#OwwqCHVx%VSO4I8;;Gp|0jboVtXU>iGd@)!rsH`94@umAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60ffacb16e720b67465eb4a8e7c78685417d2c59
      GIT binary patch
      literal 505
      zcwUuIK}*9h7=7uscCDS$>hwI=VR|rZpbRF0PDP;;ak6_>Lzhw0k+!10NUxp*5B>mu
      zl$dtAc#<XXzV{{H_g?aS|9pM{=wR1^L2wkxjLz5-d!~VUnWr(G1)K(AKIMwuo?VQ(
      zt*apm?!=rA&pX{->r`eFkyt1b&=q?L%wr)%dO}cY?~Mt{gZP10Ve5;9tb-EPTvXr^
      zG}?ZyO(P~lI!cw0VLxxG`$F=Y>~X@?J)1<F!1LpPMPsH!o-Yr}=~N^HJ%7bVE<e~O
      za7J;a0)8oSIj1N+$b|^pYbm)JL@Y_T9z}zo`L7E>?T-(d&|^Tph~5>L8ZDh2!q5z`
      v_Py!{oOewP)HFIe!gz&gykTAE?xGBJY!o${1$x-h(bKGiZS24<Y;4%Sn_GBh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b23e1ed04c0f670772deab19cd615c288cd75e7
      GIT binary patch
      literal 511
      zcwUuI%SyvQ6g@Y6q=~83XmwraqPlQsK`2&Sv?>azh?VZAacrl=Nl8*4e`QyK3qQb*
      z5-0HiuB0<??zzLc=giFe$Lkw_Cbmr&g!Wj?*_7Y&N9IRQvm|6wUoc<JCL&^&-IGD9
      ze%9yym7IzGakJH~cZ2ZZR>l((c>-H<novBHN+w5yTw`ZQ$oIk<QG!J%{TSQGVZ}iK
      z4x!rcQg;?`HD-e(l4{&Z$10vw;$nU`645mu1%lvuq0fUMk7U|^ALf&Zj0p$clGprw
      zWQSl6!g=J2Q<)mtnRqX?A~@$tiKrLwI2N&qDxvmo4x#)f2{q`iK)Oip0*V?<-R;BB
      x3@~@y(hKZ`rUuFyZCznJqi8I!s(a^4h6>g)&3c9|Hgt70%V85+u(B8n)+at2dlCQu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..675a03203c1db007c23c88736f3e99603d77d969
      GIT binary patch
      literal 502
      zcwUuIO;5r=6r5K+N^23VqGu8g=)nynL=%h$QKLyQMhy3*ZeU5>l5H{ivpg9&_yhb=
      z#%=N9$*`Nuo41)av%6p4%TEAp?Ax#i-HBST8Gq(4EYz>_G-k6<uu#sYLbJQ`%VDQ^
      zJ>cQJoQuIlyK~a)^Ca!sC=%G3qlEIQR5Cpy6j}!(La`q|iV7S;DR*^Iz=nqsJVLz{
      zWY#R=YQl!8mTJ<=W@>>{;&$;g7W#pYBSG+kIONfYYnk=GhsAU%6T)$@<{ekh>k-^x
      zywIVzl9`*ED~~cCf_I~o(EW%fiAZeJ35|b42-QC^Xux~|vPEW>P&R0rt_#aBz&`XV
      s?{MD?wNN$anhNU!WowB|(|ao!YS_v(+d2B!G1WJ$fL-jt$zvQiKab0Hp#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb13f91b568a7d1832b1bfe07352e4b8c6a627b3
      GIT binary patch
      literal 496
      zcwUuHO-sW-6r4>z(!|tiw0bV|P(8S`QV=R0Y%2<>h>_m6acQ@to3cqof0ie~g9p9&
      zqr~0l#glXw-kVwG&FuU9dVK@X#=Z@U;CL!mbj}{wBaPJ4GE3+@;xrP=8CUe?d>D3`
      zmm?P4iX|Tn+MSc;U>Mpc63{gV3CgEJitLP_&^j0s6#L0NufWk<d%7rK!$S!kLA@0i
      zV;VC#rD3Looc7E_EfA7luND)o?${*e1b&c2EFLo@4F7#BW;2lzbb~d2XjbbHxM8wV
      z5x)?|%guF1#)ZJUl9H=_%+i#nHtGb8e<KL0e?riJUKr*OeM>0oYHQYor4e8s`jr>B
      r&l*~&>gwta>m6n51Dl$AKQh#?m20;1>SITDU!wwcu?HuQao~Id?v!)^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aec2baf7e6bba63eb48ee3b45e921d810dac3c34
      GIT binary patch
      literal 505
      zcwUuIK~KUk7=7J<u{lJi=$V8Ada!{+LxS-jYBUaG#BeX8fs)xR-7xCE@?_${AE5pw
      zV>h^XGPKG2zSr-4?`!+{^Zo&#g<T5<!O=v{>5M(HCmN{dIF0Bm;4~2Nlq-6BdOm13
      zF8eIF6EW|fwc4G=^_0D^v4sKwU9p#-bS$JuPYBHB-jJZsi^jYRTNf6#4os}MD8ePE
      zHT}$+hD=WAAXP$6x>-}z7n0x1A4Xi=vr)(iJU<FpIAls>e0f+%ry?Qf_$yv=`M@rL
      zGl=FY;1?pZb8_iHW<=m#Ny$|&WJ$sk3pIlJzf%Y*f99YL{SC+#(YuI}MoY6p7&-&2
      veXslm=T)Z$DjFRfVSJ%vd}Cd6cOgR+8@XmPM-N*%dO9<)jUCwe7#sF4aEW+<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12a41e920b05b495c96396af33bb7302c404d97a
      GIT binary patch
      literal 508
      zcwUuIK}*9h7=3BCb*-J#>hwI=VR|rZASx3NPDP;;v9fzs!<NydCGA9imM6i3Kfts8
      z9Wkx*;7OLi``#Dc_g<3suh%yK9c)`L2oA<_PN(dFJ<?D;C0R_TA*Z28CS1{*)AOL)
      zx*V|ZRwR6I*6AL$0<ID+GYcgGy5ulH<yc6Ooe-GqogqP~AK&vTYyxZH>%hc{i!xk-
      zM%&NLX~g812AL9a+{>rxzL5NSJ{xg$$3_t+@ccMr(U2*T_lv_)HW4Yok-y|Ef1lVR
      zaDsTQLVh7~Kc~>{<xT|dm6TldBbKH-wa_4F{u@J3`xAsF^hY3HMDH>x8ZF)J!_W+{
      vcD?EgoM%l9)HFJ}!uUYN_{6I2-5(k1SSvK^1$x-f)zi$xCbnP~F*fXPKUR7`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5a201e45beb48c799036043292d9c28ed63d7b1
      GIT binary patch
      literal 505
      zcwUuI!A`<J6r62=(pp5T=$V8AdT;}Yh6Lk5)M!$Sv4;CnH?X8`aoZaGEKepL`~d$!
      zKgGB$Ts#?elX-9U&6~HopFi&(06N&UU=SQlWJYJ~i9OR$z0A{?&O%N@F`sfpZ%)sH
      zZtHT$!do%t!?RAe*9smprnrR?0bQ||pmHpvNKXjN_TGq~G>Gqc6}B!cY#o?bb5Vv%
      z&}jR)H;tH_&>&SpPWpLM-4~KyXAfhp?$|iu1fCy<EE+K-a=tt)rBjg*^!ybsxqM)s
      zzzO0^h5SO~c1|HZ$c+fxD=E1eL@Y^oVxd9M{C5gL?av%Ep}zt7B6^om(P(LQ2t#Lp
      wweMBm;JoV8Kux2gBaAOpjBl)K?k;4gW24Y)7U*G1M^9%awy^`d7-Pf!1@1C<{{R30
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ccba04988b00ed7d00c8b36474d7211aef7d535
      GIT binary patch
      literal 514
      zcwUuI%}T>S7@SRi(!|tiw0bV|P(8S`ASe|NwiSg`#FXB*acQ@to3KemAIp>A!3Xd`
      z^ex0q6vdNt7v`I9nQvxyUq7B-0JO1d!XP-F$|aq%J9bY4^$@2Kod=u-BA#(Yug?a4
      zr+G1C!HtOdu;1<+HAhOsA@2`-6GZ~L;y6M1L`adI5)@i{V}fEYy5$vE1lEtUjRMvj
      zl;9B5TV7^QLnf!xPnD3<ZZ=o*gydJt#e}O7n}nRe^`d}<W2Qvbe;*dpnMeq_-ir79
      zeP)-y_M@c=__@d&?Oc73c@a35QgYP`S(5O?M4h1VZxBKCPZS!^pMh)<y-O%-G<A0f
      zLo>kKcPme@A2l^l)oAMq;|*ow9qYPxzGSFjBiC%^=weG(SF-}Pu>&iQv0!}yF@1Zh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2b60be68844d438c8d2b9498320111f350e53d9
      GIT binary patch
      literal 508
      zcwUuI%TB^T6g{^*N^23VqH7Ws=)wskMh(V=sL`YtBZU1>M;KCDGA%wn%aw@>Kfs^S
      zFECCkE?gOAl5@|UoO{m9ynnsE0cc{=ghALFg)=tc_xzFh>S>xpY~l;%%jsAsc6EH(
      zYt_%Y+`pDn(LHIl_UrwJ=vKyK6L|t#aF|d$l%Y(H2)V}AfROJ*H=+cKV9tGQ<gnzR
      z0EbX*c&RxHcsOFcM9FZ}PNyoK48`T_ZYWfr4+BAPy~yXmfGe5y^TT{HmNDVLTkw{@
      zPizzHUNlp_IFqTLooRPcCxUYkhC+1$9>*d!Q6<#=jUkl(1fd4~5l9#5T|iNzsk>bm
      yngQmvTY7>0tf_&rMq5`HA1E51Sk}GsBSQr%nPxRZ7i+q@n&q&L4Om%>1?wAEZhC(J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53e3a02b28fcbf9478d0f6db06e02d03ffb9a407
      GIT binary patch
      literal 1467
      zcwU{7-)<5?6vn^V0t1w`iWdJ>TNEvSY*(nXRE)6&Oi95sg>d2BvK?XTx{C`~^)2*5
      zpTjE?FMI$W%6MiMo7j>xz{UK&8P553zO(!L&(B`~vM6#W3~I+3s>j-U?Sra2AA18^
      zJ=TS)8@;Y@)PvnhBbV5#Yx<$l6ZLX7SK#n5#4l`O2s||`WAKb2maNHA)zqwx+88*7
      z)hSj}Ee2o7J`zEM80PotJEgV5>OsYQMi?`gjlhoxLvmdA`6KDKP%|v?a`?6_oTk<`
      z1w*uE>zdip97FC$hrU7A=rd$%7l!yhd66=C|4QR?H(&_1O<R9c6BYxjGAxd{d8#F|
      zU6a|aGpvrO7#}U%u!oK=UKlb!*uC7kEM$mOElW5hQ|tEyrJ6hQvhFZ!OqesVQ)w{F
      z(8>{K*qpfC8n)$t1D@bWFcc;=*){Ex*G9ifQ~f77RvGe>8kMyEAkW};$&sF79%XkP
      zWjT+vDdw@?)jnxQG!IX3JYv|I)TAMtp0EZCe55!wrnpPv-B5Gr6AE~OW0PTfQj?}*
      z^i1JSC3LDewx@{IJh8pE%ts1w(5xYU3MoGVv~t?*!{?rd(wU`b@CU-*-I6(4!$c^b
      z5mdflp7twVAr^4SH45P}qGTi06<i$|FOH0#Q#JJ?n9fMw*jeAN;L11GH|Euy`UXe7
      z3U0VPH*t&j3bSs6C3@OzQp>~@;$7lB;(g)+Vv?95W{3}o>qM29CFY2aiFx7{u|Rx+
      F&|m$nb1VP=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a633fe26ec04b9df77b61c7d081d15a3dbc08d45
      GIT binary patch
      literal 496
      zcwUuH!A`<J6r82d(pp5T=$V8AdT>F57mSG_Mw4QUHQblFfhBcIw#DdYc{1_f2l!FO
      z-Ri}YVK;eiW;1VQ-{;r+2Y@bi9h3-;rgBN=?1??oSiLOrl+I&LW3iZVMQ_iC(P8Uq
      z#Ns=#;G>J~ai?`Qj2x5+=!$~`_KA=pKP9l*dt-v~AbsFfxSDHE4;I#ZRNxad+MzL~
      z36oPA<x0qD-%Qj)A^FYnal+L-n<Shd2-BD)W2S`RzmMg7CNhFvxZ)4ZYJCDPN|!3;
      zm%?~?h3>$(5ct<pay3X;mhsF%gP{3u1VQaj2%69f!yKY-1-7n^W<8WN0-XJz`UdY+
      p!xCz`db-21VOtK?HTQpHsAHqhY!)@ZmhOQ@7Pheiw}^4!eglBna&iCw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d15238d8ce598e0de8ed970d1875544144b9abd
      GIT binary patch
      literal 505
      zcwUuI(MrQG6g^qHb*-J7)#>wK57P&;2@YW*=u{Ls5i5JoYS=PrI?`73vwRYK@B{oP
      zG41x^lPrOA&rR+<C%NB0pI-oa*t1X~=uc%v=j?^O(onrE(wNRePD8PnaYgShu7acX
      z&4`5$V!=n3y?(cSF0+Y9ESLmz&0d1asgNQ)BQQGqV*+y+Kk+JTeX*2vU|_>V87@Jy
      z<LBBmVsc7@R0%m9<V|&7NPd?+Pq=zylZX>|ejKuB%#_IU)uEZrL_%=luldN;2L}XB
      z5N9gn*CLm5iqgYeh`_y-lB;3Fl7#C~GznV&x)9X<_@D(n2IPzAT}DNtrL$v{Gy|*y
      uulfP!UDFb38XX;B)KM`S*wneZEJGcQqGqc=58FC=ni<%^F6_d_hW!gjb9X2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e635f22990b2bf20acc74f6c496d318f91cba8d
      GIT binary patch
      literal 511
      zcwUuI%TB^T6g`&$rL~Aw@v$Uffi4^|(HJo<K#eBF7%}XJI>L}TC2jHXS*}c6_yK;D
      zaatdVE5l53?zxk5&zYI`kJmQ<O{|*85%z~_%EtVjKQcdhnj|3``-1s$G7=HHY@hUY
      z>StZ<U&)E+9yj;4>+K+XxRvq9M4rHAoF)_xrIN`J!Dwvs3HeTVBTBFcr5|G(2Id?T
      z;1H?}FLh@DS3}lIBB_S0bgbe@B`&6S0});GK_CdO7y3Nt^GK%s_hCL6$(V59&3Mh<
      zN45xdFPuicIF+fPor$+nD}r;bl!!V3k7E&=s1j=b<`Bw%l2C*G3Z#qlE}*E<)ZH#}
      yngQmfTY7>0tZ5Eqjkc~Z)=)IoF|T{)ONI&-GR<O!E|zq4H8Ze`6<Aq}1?v;)^m)_(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b478acce27eef45602635bd1ff9874559be7bde7
      GIT binary patch
      literal 502
      zcwUuI!A`<J6r4wa(pp5T=o!NSJ-A|m9xxt6jV8qyG2EBBfhA>2w#DdYc{1_f2l!FO
      zZSmsCu$#=Ax0yGyyI<cQp8(p}wNW5+#%jT){F%S7P`}R8m`y{$LOGuZ&F(L*2FJ~t
      zJ`W${T=Xy7Cr8a5PtuN!B7v<qN+_R6CDU_))!H8tioN(rRNxRwxvL8cYaUAQ2=!Kw
      zS+j_%F&m^>s&O})sRdGryTxoI^dlcdg5U>n$fF_GGV6a2i|IrrgwtTfJ1(EsCAfol
      zp+j*kGdDL^9%eoS?^Y?Hdl63(k=Upc8vlk6s()h8fcXSui_9*eY|u7c2L;0b`@pZf
      s!+kTffT}^)R9Fp^tv#%p-doC0!$z*z%+be|slH(rwy^^zk8$Aq06hD3V*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b1288aa5350ca1cd3ff6fc79e720c947e05d912
      GIT binary patch
      literal 496
      zcwUuH!A`<J6r80%X)U5v^i0A5F>ytM7mNo1qe(Hw8tzNoz>=~h+hX*yJehd#1N<oC
      zZuR2Hu$#O$vza%u@AK>Z13(A+HVOo%Q@NsZ_QalPq+XU;Lgx{ukyy^SqIZ|W@T7S?
      zV$r==^3kAkcHA5cLmNc`y5=B3`CLemT@YBUgE2v|pFHvk9L=?-3kw?_O7IBkt-u)5
      zn8_&(GbQA-XC`Wako<PFm~i#LCNU@QgCt_{m?>fS?_)8WiIkultocK;T93dDla-42
      zl`vjzt~)X=1m2C5T=ip?raZM#CusZ|K~Vh@f(G=$Fo)<{LRnW^vn~o60e0K3yup3d
      puz;$ruI{kfC|ifv)ZF`#p@ywovz=ETJG%QCS=hxMoIJ*X^9`Hya>D=s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8499e1c8b7cc09977e21f0f3b4784dc65184ffd
      GIT binary patch
      literal 505
      zcwUuIO;5r=6r80%X)U5v^i0A5J-FfrF~N8cH5!XCVz@75Q<l^%*|tXgSDs8f_yhb=
      z#%<x^$*`Nud$Vueyxsl&`TPRV#<qz9K_`$Yow8^4LVfi*OCmb;IrYVC!WF$gzZ@Ji
      zulvk@5HsGtXm|FTw-ffp#wLmcbje<V@~My_IU_JyJ41qEFB<a-EM1t}+Ay%<pah4Y
      z-tsbU8ZsHsL862Vx>-}r6O!MhPb01#*(l@$t{3?%95N*`zBnu<6A=@fcuQV#@xU&D
      zJ&01}^DB|r*|~HtGa_(qq~xj>vN-0ki8?{!-zfyuKXcH4{sv@==v_itqp8_33OWPK
      vUAOW9`(396R5jW<!Z<|PIKryt&Rm8X)^g2yjxIKIbaiH66I-zIF&3;}9iewa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f922f8199bcb0b8b4bc386fc90c0310e670c07e1
      GIT binary patch
      literal 508
      zcwUuIK~KUk7=2~H*c_r$^i0A5Jy<YNV?Yn0Mw4NTGu+E;pk#JSw;BCeo=iOW1N>3O
      zZsNg{p-tZRzUF=Jwf+2h{{Ya#wuutK(Nt!1&Ysva4b)4VMsyx<8i;tt6}>&X@b}wS
      zBNp6=n2*kThuyZ%Rm^2-qD(-S944p^gcRv1fzjC+6O@P11Fyj%Fc-cy46Hb)z#(XM
      zyxg3IOirnvDj}!+e5&CI$#1g930L=Q5^@69ivkvonG$)wI4q|#kq{hvOWyMLiG2dw
      zk1`eTOOgB8g?2A@B5<yy<Z2kQB;kpPCPC}p7=rqrAhe)A0{J3(S5Vbx>h1s~%>Z-P
      ut-Zm1)wG1VMq5`H15}L@tm@wRk)eULLbG0=iw#{}%?xZ}3sw<h!TJX5M|lDO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17118c6d583e2cbe181ce1a6075462cbdeb5da2e
      GIT binary patch
      literal 505
      zcwUuIK~KUk7=2}fu{lJi=$V8Adaz<5F~N8cA({+hoZ(((10}P=ZZrC`Jehd#2l%6m
      z-QeQM&?fKuUcdLfukH8G=NEtu_AQhMx>K3aIeTHRG*oYkG^X>A(@-pCT+zGBL2%N#
      z9<lIVEcocE(>-nl&lywPf=NKv>?Nq23n|hI0;7E}CNTT)Bd@~Ng{7?n0~;>Na0wc1
      zKli2)lT#X`O2}z1Z>sx3^4sib!qo$tM4Z6$<B&yTrbNzHhh{nx3Bj4a<|S7T>=8IY
      zoT-oxMQ-O5(xcpnz`c=@tA50igeMjn1kHb^5Y+z6K@<8LkT0Tl85NC|W~V6W46qKp
      t>Ia;6ot9A3=;#PzfQm81rsnQahB~$i&31tvc69V~W?&b4u!}J^>|dKocfkMv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..789ab4d6d0632803bc372d34d60b7a91d4c1eca0
      GIT binary patch
      literal 514
      zcwUuIK~KUk7=2~H*c_r$^i0A5Jy<Z	%xK7)=HmN4S^SK*{WuZW#Spo=iOW1N>3O
      zZW@gzLz}$sea-vcYy1B3`UaqbT@wX@lbKx71$$tRG*C}*8qr0-X&~Y`SM=t5;2$<G
      zhb*`iF(39j$L;1=i8$o_fp4NnKvx_mD4z-`(lY|1wKpLs_M$spfkj~bINLC==AZ<J
      zpx*K_dm1u1qkgJ{oOQFgnkOV5E$^pXjoCEh1g;kaESxYUvi|$9n9fB)(Dhcl=kGJS
      z1hyY7RlqMq=4j{YgUpM-xssBrUdWP!Cno9yjemm(s(+%;fc^|*i|AcKS)-}DBNQ|P
      w%zd}=0{dCh0;(EqU15w+Hm<R*d*@4r8a8sxW{xhlbagc|u#Fv9d5i_?6W%_0Z2$lO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c0ad6765d1f9b921801e3745de52fa987f2ccac
      GIT binary patch
      literal 508
      zcwUuIO;5r=6r4wa(pp5T=$V8AdT_-=jlp;jHJTJ-grL`@uCSzTNn8B*S)NQh_yhb=
      z#%;xeC&O+sZ{B9!%<g`Ey?+2`V%<cJus>8&Hs+7~nfcMnBnjEr7tEKFk%-vU@o9Ib
      ze%|5!wVa5~Npo+z-g^q~Wjr#GC$Kq(3B^OHWO76>8XJ8=z8&6)5-fr_^R;1M!9f8I
      zq1y0La~5zlWZfi^YS>DrDxOs0a{4e3QI8J-L2$j$=Ru!GGVN!F`D7$x!htvEEq|Zb
      zBG}z<8u{W(rhay&-AbJZ&V^DUY6m=yMQox<sQnv5DE|pU4f-RHF4DVzqDE79yU1w<
      wn450t4fd<1Ig~Zpy27|Y(YVE;?wubQDp<-i%Ne>@(bd(=z$(^YWib}4Zv<|6K>z>%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7a532635e7850db934d2a508c6aca14c602d844
      GIT binary patch
      literal 1467
      zcwU{7UsDoM7{;H2zyU-pO8RFdMaiFZMFTaPCIuQ9p>c%aqPt~1!P>S<%aYZ%>Z+M8
      z`T%{Sy0G4}yE&6G;{X@u_ngD~K6{>b_vh*N9{>v2<_It-U2~`$s~^=*ie`WAJC<^+
      z2}RTUJz*;cyVd4edat2shk9Q$DuvQ2N01?PX%j>Exo+yt3x;H-E=v_dHM>gFv30Y%
      zUCXu^f@SMSL=a_|-D~WWmk(<PRreV&Okp~X5aJA(QQa4hq~Ba!H^uAW`;M?%YR3=^
      ziMpk!Mq9OYx%Ur)PEQ{&6zZ3T_&@nJW%B-&#uskD5a}3}_O32W23BL3A93?+TV}f<
      zv)yD^8c{JiTC8aeZB4w=Wq_D_xfNN+5U-i0u*-%z7zj!=bM9r`V^|+EXL_gFWSF9r
      zBgIe}yWJdi<bcDT;7BuUj%%`OSSN4wL64^TPjW0V6vs6xs{^OV5OT?pn_wOlcODfv
      zkL3yGvENg_s7EvpPjIX<Y>aEt6n0;j4g>cU$NB_!X?_^0Hhn^2PjHkNw#GGS*?Qj)
      z?o^^@nqzB%SgjMwd&}HcNP%Vz`3sN=AxtZ$-9Ccuc{G<_NJPFN_SG$!p*2QC;1?o+
      z-<YNSqF0DHTyc$}xQYbXNOcX@edBrG_$5_SKO(uj^i7`kJp~W^aeb3s-I;I1_YL5d
      z+jARth;K0MMp&Sy-6eIOxJZ0Jd`Nsmd`!#`v&1~{32}v}5DUaL;!|RgxIx?`K11{`
      DcieQ8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a04a90d34126ea3d7de7b3ca1e70099e0d24989
      GIT binary patch
      literal 476
      zcwUW9!A`<J6r80%X|1AF^i0A5Ij~~l31fl;gGn_eHQblFfhBcIw#Dd==y!NB@!$ve
      zQO4J*XW32W&1~k)+xPkP{sEwe0~;lV?o6-vLOh5^9+{_QmheR+d8C$eY52|gC_HYB
      zuS67%2ffx{6xt{=bk^@-sGcgVvNHy&eK=t#50g7tgF~9)Tv*ufP=UwLXa{*FkA<G`
      zFf&Te`gun^P+DHE?x)h+ifJqv{2+-$JP}6a`uDM%%~i^96s-Tbe4##r8zw6g$qSXo
      zxP_&g2QYY-T1zvGMViXgMuVaGZ#qNmFCR_Nn#d2MTS1l3CUt@mF~IKlwKur0L`&Et
      kbg2T*WPHIEG4IEQI<^bXPJuplsrtk$>|q~HF~))O4UuGQ%m4rY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..961cb32f90e80c6aadc85bb11a8a491035a229e7
      GIT binary patch
      literal 485
      zcwUWAO-sW-5PjRPG%;F@R?meVY7Z_|JXM5RlnPOVNblRYv|Hk)Y!cC5qkqAZ;K3i@
      zj}j+oJ=<NFd9(ZGy`BC3`TPRV!-0hoLvN}xJ{M2onTO_Ok;Z%;N*=1kOd5W7aTy%9
      zM>ir2MuT2^ptFfeEL0e}>$fq~&XiW^IYYT~IA*8};|E!XO&3c=2W4!ysKRAvcKlqH
      zM?z0|kQ$|@{k*B+D=lxc$B8ueViHLP&yPb9jfGKpy*jL<GnFu$`0KxKHCCU&3F6Fz
      z@=E1OPQg0LH5lA$t)&@8B1t5DK$D^MuK`2-&jKyb@W>aVT}6$eMb#-vgaE7S)j#08
      o6D(nqqC**YCE^>l2)Rod8rUv4J4N)cOW7k-#vb-z7dAHRUkn&=f&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3eb8deaed0d6e98735ff5bc11b33d7bcaa25ac0d
      GIT binary patch
      literal 491
      zcwUWAO-sW-5Pj3HG%;F@R?meVY7Z_|da4MvC>5dzk>0m)ZCB!^Y*Ih|ksdt>9{d6R
      zC~*_5SGxl<Z<aUj?d<2*`v-syb}SSK2NN}CxBQ+zvQR(G(wN<bf`xK66`Ec4PlEmC
      z@SKOi@VL|LNAbgrOr{n}g!b}-gvy~*GCd*`Te~AdX%JtFDr`b^q3NKA6&Gc=gnG-*
      zgjvMZgaxUVYSPQbYQ9wBVtzLk`ihSuLGb)I<k5(0nf1SyrF1G2Lf2pZg@3E{2u={s
      zbtq0{rsd?ky-bDRo+%~tAmT|P5({-g<6jH2;=%+Cm=8d9$V3?xlP%MAQ7{Ow+Ftby
      r&Z~h1teWhY3OpO)3)T#Be`u&-J?CuX*~6x(o<T)yVH<XCW5fOifI)OF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ac55be5d27b234da84afb2b3a4d256d8c8a7273
      GIT binary patch
      literal 482
      zcwUW9O-sW-5Pj3Hd>E}ptLH)wwFlQ0da4LolnPOVNblRYv|Hk)Y*NvmRWE`Ee}F$q
      z+@yN8v+(B4@aE0V*Z0RKfG&<KlnAF&wPbVt%wJffUl&=z=8<5LT+D=K_m@{;uQj^m
      zQ8>EjwuU^-`W7mL&gN5u+L=@`J13Oe$74cem^=y_4xw5Yx+r7ILlqvO(GGG~7IQUa
      zVWy>;4)U3LAeFdVK23yv;FDMo{2+;VJmy;F^>4G1&16dG1)G0webj*9hRIS#;#%fL
      zZXr6!EePI?QbG@7o~9zT&>%Gb^(WYW8_<L~9eI#>Rn!bxrs|_)7+`gL`yKAe&=R%{
      kx+ViFBYeY-VcuGXI(7@qUV%RLP4*2d;{b<niZu?LA06axy#N3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91488005a71f389484944c715e5f6d6f450d49af
      GIT binary patch
      literal 476
      zcwUW9O-sW-6rAl>K8#kQ)pMbT+C$e0o+^UYN`)vwr1x!H+AVQYl2r6(c@ir41N>3q
      z+o)%|3-e}{dGq#teyu(L^l)II#L%7UC7+8Y@yw(2WsxU*9!Val#Z0FB?qV1ow?;Q2
      z3P<O?*5xp?P+{n--@{NlRa)g|4CVIWn4vOA9;6M2G{w0nW5Yug9z&xYm`olEJ>_AZ
      zDn0F+j(VW9yj?y{WO^?qv1IUrBogshq{`^u$4Wj^8N*Sq{^!g>eFis7mT4rfl!<W*
      zOV<Q2c-LCXbP$UylbMAEL-XHs2Kz4`P0*S!htaK~Mre^bL5Ub(b$t5`?kmv}HVIv-
      iz>19T*dpfr*igrI;n^wB$1YW$SQ&fRhf|Dk;CutDC2bu5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89754165e1c1c9464b952dc2db47f2a66d2bc62b
      GIT binary patch
      literal 485
      zcwUW9O;5r=5Pic}X|1AF^i0A5Ik-XN31gx}gRvTu8tzNkz>>Np+hWvz<;lc@7d`o-
      zjN5`|*-hTO*?IG3=lkdV13(9R77B#USk2j#Kk_FQ>gQP+vuP+;C}$I)+1>d?aM<kM
      z@G$6~b(+@`{=!EVN`&_6ZG_5+R5Cp!6kGcPLa7&zL>0CvEF2vavF4%-mr!r{nJtUB
      z8nYnPQjNP=Q_Yu3+|D0{Lf`XYBnX}#hddf^Ewg<2SV|`{AsqRu|8Kcgm*52PT!-RP
      zW=>A7I><Z-?v+wP_adGoBC${>H2xhxsQ!&W17>+-hs-UbV$d?#F$#tOR@<w-!Fe^b
      nfOUh8iNL23eqqBfcOgR!o4IByM-SU3dWIFTgI(D97#sF4;`wo%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2276d36f7eaff683024b1fddeb5ff421e6520d5e
      GIT binary patch
      literal 488
      zcwUW9O-sW-6r9(ud>E}ptLH)wwFj3LJyirPN`)vwr1x!H+AVQYHmT^(@+5fh2Z;V9
      zaTD9K-GzDcmU%P#K7Zan0CaI+p+x9S)Pl|U6Mtrrewk+pn?-^}ay}KB-CbOUz1HxC
      zN8#|i+X{uA3zb=@5IXD65o)JW$?S|!ZXb>al|k|#Y&ZmKY3ZVj4G&d#gho5aeOb)a
      zgoT-wYSPcA>VZ_^cJVkC`ks$tLGXhl;_--UnfJ@bN;Z`#;W$|TgR8~*1UF0;Iuchh
      zw{i>FQEo!;u9Xsc5c4z@sf7li`ELTjUS*&Ovp(`e=2lTNXqoN=CBp!#<J)g=Ukxo`
      m)1YfA@MVPG*fPxflcA37LbFq#k6lxJ!^+shKAa-Pf%6NN!gE{z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17957937de15f0ed2d893fc873ee567ecf376c04
      GIT binary patch
      literal 485
      zcwUW9O-sW-5Pj3HG%;F@R?meVY7Z_|JXHiON`)vwr1x!H+AVQYH;L%a@+5fh2YA<?
      zBW}`qw!84=&CZ)QJD)%A9{_sTvrr=RCMshy{=}bIs9)x3%x0lrp`1^JX1C`T!C`xN
      z&BI`L)@uik8P~!>h0tBSjZiz0N~WiTa%X=;s0`wJQHN~`3r7cKthuPdB{VyJZp$LB
      zCM-y`RFi(*)bOPeH`&8j=sP}+1i|y;kVhk~Wu7k|E9q1wgd>0T|1H<*6PzH<bSN%m
      z?&K7zgWQAQUMVH?AmT|P5(`a2>)!!{`rin&V3tRI$lNMw1}&2vqhuIhb-nr<oL56j
      nSU2dH2z(jgH#Q7&7cw-kS!lKj^ssHBXIL3K*o9q;v0?uLT`h7O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d31fe635fad917b737591c2c6796a7b231a08e2c
      GIT binary patch
      literal 494
      zcwUWA%SyvQ6g{`EG%;F@R@a3tY8MU_byE?vRw_ghQo5hUp&f~nGD$^0%a!255AY-O
      zPsB-lE$s}Pd+u=VIWzP6@%#dygDndM!rny9*$uzr_bk*8vovNmp<tn$O@(GxC;ecz
      zIk@0qFgWfshg!}eaoP_olnCv`Ckd59sbqRYD7Lmogi<fQ7FE~;``6S#5lb%0a0&I6
      zpE<LLs|gEIE!Cu(&DDIV#O3^UEcB3%BSG-|IONfYYnk=mhoy8X6T*SN_!a*i*CjYX
      zJlCN(lbM;53wJUbf_tu%(7lK!iAXHe35|a<2-TkyG+@2}*&?&cs2H?Nw~vBhfYtV@
      sPjDU$EnwN8V=C}wgzs1}%>9y~hSglNmZOJtQ$53q*uW<2JjRCo31^>l#{d8T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d12d74ba2a3ac339645f5d90e4ca1e01a1996d8
      GIT binary patch
      literal 488
      zcwUW9%SyvQ6g{`EG%;F@R@a3tY8MVIx~d3T6on{4O83(^wo~GyOi~}8<w|hj2lylU
      z72+heYdZtyo;#d-&fL$R_YVLa>{%!fx??qGQ~t=GS*TxTY0RdfV4<8%gl4yA=Rvo5
      zdCkM%^0d<&JjM4inOG<h+N;kID#udE^n_4s?GFj1etajYunE?}(m@exF3NBT^_HLc
      zvWTlO3sNoBxR*`Ue5u6E{9z>YfR7?U@ccOB(U5DI^^3<+I*|$C&|m$7%f)&GCy3`d
      z6c;kHa&p;0W<qeUloGlh@gxz6g*u_}ZvvsZ%s>NXePoBsEu&)4GTjjhh5=UFtG>Z`
      pHMD?rgN~`dml1wr!!Y+xh8i|=%~p;cwoUa6D`E$`u=5xj_Ajo0bDIDF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea88cade8e48af5f6f6beeda5d197299fd7c547c
      GIT binary patch
      literal 1397
      zcwUu~-Ez`U6ouEJzzGzsqQ$?eMbYxpl0sYma2zSE15@fa6NU@#LVASMm|y^_zJXro
      zvv}o<7e0Uw<+x80amF&!CKu;hIoW$<uao@x{o^Nq3Thk?hGO5IsE7JH{k>|qABJN`
      zJv4-Bn8Sf^)fd~lS~b_)*A1;%uW&>evM1Iv#2=fsIex;B$+u;xYUy@g)yA%A_iL>}
      zmm%744upaPL!!A~Z>&lCB<3)mLJTQ}{H(^~TheNwZQA1b<V{bw9ld7>hIHF8bgQeo
      zro0a}qvL@&VpwgTIR7+njgt5er021hGblaFF<!TY&A?g=i!+8UbY-kdGS+2=l^GSY
      zQzbQL;u_+aDQ8c5bCqQwL#k!l!fjakXe20*^6%^1U?`tHU9P^XG0f4*k!7fa>9i+3
      zd6;ouaO4;^LiBH2&e1D#G@$AKN{$tV^$;EneKg);h<W5FhReR=W#5t6*TQAr8|WYP
      z1Iq3Tj&+7=h<;7DLt&2@c%V2o!cCyPo#-z86>(p1++)}b(cf{+p(VT%NK7@y!*Dq|
      zM~?pqd7zL59Vz4$Ar(WMR!(<&h<f{pVreO@d`I$|S8|5dBoX)o1)p)2)UscQ1)TGY
      z5;%`E*+_K(7X#zP!1yUu%YLO;lD?V$eZNrESI;-&*G+wuz&C;`Ue8rrBfiAE7h#Fs
      rcAeBs;xh3T@iy@e@h&k>ED%e?RbrW_5-Y?iag(@3yia^Ue1yaw<)>SW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..254537a4b2d845b02a4a1ce21bcca81a34e147bf
      GIT binary patch
      literal 484
      zcwUuH!AiqG6r63^risyNw0bV|P(@rV)JsLErBWe^5b1pzmv&3KDM>2&S)K$Bet;h(
      zzKw!M=`PHhS?0~#_xbhy0pJV=HcAYqQ@!GI@g$ykl)fzUgwG?%Bek5#l;2+s!%k~-
      zE241J?{v>w{b6XM%y7I;7en<zX_a3xSnb0xLwS%q${HNf6zIajhKC9~hDJLusXP{X
      z%ELTWdfGD`^+0KPw^~eO`XDB;WblI|67g81%IM$6az0ZTLnm10duFK~gBvERG?LfK
      z1i6Lj#6&Q7H(JYd5Q{96nT-ZR^WS`m_?v(xXjPcQ=vGiAv`KYQA_mw;e(eqJE71}*
      l30<nNG^$pDEz;hP4Rvf6o}B`H>{9iKS=hrqoMMav=NmXuZaM$}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23f036eebc1d11a5511db3f377f89f14512c1593
      GIT binary patch
      literal 493
      zcwUuIO-sW-5PjRUO%tQlX!Ts^p^CUzsh5gSi&7zq5b1pzmv&3slzeFYS)K$B{s4cJ
      zI7tg0rMvLv&F;*5yYv0?`32w<2PR4kXA_<AnRpQk9>j0+G~%;B@<7d}GUg9g*M6rp
      zyc2;x?0357t-j92Dlt)JI9{ibp?aaTN-r6V_Th-3JcyoT4HjK2HEkH!a8QB6&}e(P
      zFb{>Ea6gTep7ipjx~H_f&z{FJeiY+SGPqt8h;SrgmFKI&aynHBL)Tm9g{!ai7;Hbv
      z;y~W0T+1%%PI46n=T>VO4?>Y7l7`S=X#Q(K5`QLWf(C$mG1?VW2~EnnC=mn9Be(Ve
      r`<-YBn}jw+7_X=r3v5yDEXz>Gc2Toapo?9KE-?dp*oRfvSg?Kp%};Xh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce38efe190be1a5f98845f2d77157222ad30d954
      GIT binary patch
      literal 499
      zcwUuI%}T>S7@Td=risyNw0bV|P(@rUR1X!w7NtTIA=3LcuI-k%DVxNfn?8~!!GjOr
      zLy4RCca-kJeDf{y&Ft>`$Lkw_U2Iq=5p>2fqf>Uv?rEqVW@${PA*Z33O}L^Lz2l(W
      z9GtN*7#y`bd(B=H-(8DjV!<TXo@bPxav-Eg4+)Ic=8(Yb$5*@xo1psR>cGH)i!xk-
      zddttPX~g812B{Kq+|9>ozL5MpyBTqH$wm<;@ccMr(U2*T_uq$RIuQxMzCX_$f1lSS
      zaDq5fAwLnhn^P!vavuWsR7$S;5la%DSf~>;{teL<e=%r4e**GF^e&^K(b8Q9CCvb9
      v%d5V?dDgUqMU9TGFdk7cp0K2Q_e+KvmJ7{FfgV<M^)xfEhIQCQj1Bt}Q6F`j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6750d9b9d2e670f31d29ffc94e15321a86e4d39
      GIT binary patch
      literal 490
      zcwUuH!AiqG6r9(zO%tQlX!Ts^p^CUzte1+QMX3-)i1faVOS>g*$|e>41pOONf(Jjq
      zj}kYj;8D5@^X4t{X7+u3e|!Qs#Ey*;p)*!<Hsz1}iADN(mL+T&2^PuOL}+$<ei3$B
      zgKHjzgR@TexYg%r*0oV4>@PD%sGdkAvr~fA-W?Lk{p4QM;1DW>r3(uy9xCt%jdqax
      zvY4we3o|X%xR=k=1F6K#{9z>Y9UsMl;0H;><002F?|&c5*+iy<qhOg2E*9$%+%TEz
      zNL<R?$}MCExe39$QcCE4%+pk)HX4NHzX`_TF9S`O^^qSkw}Prc+jL!&3<K;vzxEFI
      q&Cn874Z5bndO_8C#hU58g$#A97n+R%eQcWQ8)jh(+i;2)2hI=F-*GDd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c4bed0e852489b20c9dc38c0d1f1e63146dfc3d
      GIT binary patch
      literal 484
      zcwUuH!AiqG6r63^risyNw0bV|P(@rV)JsLss#J&~M0(%GrQH%YWs{2jhJJ}B!Gj;*
      zM~N>{@F?Adc{9trdHX)U-ah~wV9Q2{VSlXWd@3HqBah6}EKB$_k~~tgi8TD?^gQge
      z23H~q2Pd8GVe9NXv{7c*U8IYldZe_<jv1`>_K>06Pwr$54rvN>VPVNb1s+4A9ptGz
      z7JAIX%qTtX<sJ1vX?Z=rA4zj7MzLh@gCr91P#Bf#-^X$`Q7J<wSmb;8QauJYOy(w%
      z7b*{O3)5a6!QfqLElocbX)0424Tk2w`4sUt0Zq`V$Pc4iL6y)Z)kTRIVDI>~H@L4v
      oOIRj!sls|j)q24SY468|I#vtMT7f>+srtk$Y+w^kF~))O4O2I6ivR!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89a356e67b1ee2464e2eda892e6ffb7f9ddd9998
      GIT binary patch
      literal 493
      zcwUuI(MrQG6g^qHb*<HDb^1Km!xS+%nJ*JThcdB>P}zIdg)XC}Bke@}75xdH1RwkW
      zKT1ryfse8T&b=r1+;fwB|9pM{IK+;H62Va<XLQ0I*%J-b^E6B7B;+&{(=k`{?))NX
      zH~Tj%4Eks7&T;d4%wE{Yf=RHyOd~<%L`adH5*V%B0fE^|M!X7J7v`Q046L{)!zHM<
      z{M?wvOhz=wl#o$3Z>sr1^4r<NkgIz(j5&elCn1XmOo^N?4$W*VQi6`Z%ncV$>k>FY
      zGE*VH6uFmE=nirh0{2Qvu6i*`Q=VF=6EyxEp)LM~paJ~>$QRMOjEY7}vkpo+1FSu-
      t`T^%%rzNavbaaIAii+`uHO<|*3^lA5nvDWIZ0hLg%)l15VHaa;*uSHTa|-|f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25c9f924e101b17d54f5acbacbec92eafbcba674
      GIT binary patch
      literal 496
      zcwUuI(MrQG6g^qHb*<HDb^1Km!xS+%++HSv4rM|Wp|ba^hApF}C2d9jM?b(P!3RIU
      zj}p^5@llq*x#xy+&q?z6_5K0i5IYts1V>Yu(>Z%!k2F+INfy(2$Z05&8CUe?>^$hU
      zM^`KiMyK6gza4OuaG6;!3HFznB&Zz=DY6p+qq93EFo*FSufry=7N!mithlJcC1`g1
      z!kI=)PHB)SA*X|4s^JUCuk-r}SGQ~uaRSeeLl%vh5=Fl_G_#pV3HtsrSNwh4fWQgj
      zT!s8X6lP8-JSc1k+)F9B8b&Nld1|3a(E2w+Tl}S<1^opm7SX$knnp`^JybLUtUa&(
      s2Ip1N3RX2by25xy&3M6@?%f|58dxti8zp+!)Ya3>z!tV)moYZ%Z(yKw$^ZZW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1b509b42f57e0cf2b0122cf6ff50f838e47699f
      GIT binary patch
      literal 493
      zcwUuI(MrQG6g_FTb*<HDb^1Km!xS+%nJ*JThccmxP}zG{Lzhw0nYN-IrQnm`gCF2W
      ziD@_RQI^2D_vD^?Zj$ex&o2On*s)*`97QsxQ})E3X{cUiSwg2Fr=gflxT3e`7eTi@
      zyk=oAJnQz3+reYb6t_?z*k7iRpmrjp$W95&&hChyGDz-u9kwpaJsp@>aZ!a!(Cqky
      zF^!pwXpku(qkhrU@P*_z`NNp2J2s9vf#)Y7i$_d}f-ep$*+irSJ%5=SE}qsWaDpUP
      zA-@!bms9Ev3Ks(RN=mK<F-udPT4)lq{vDw${)V6h{Q)Qz(YuP8MoY6E44nbio>%{X
      r^R80^s~R00VZNefzF|#scP>K%>!oI+L=T%fdO9<)g>Bg77#sF4A18B(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9632900ebed6f0fcd9d36eab11f2db85c213787a
      GIT binary patch
      literal 502
      zcwUuI(MrQG6g^qDb*<HDb^1Km!xS+%*bpXy&dG!-LdV{-8n%osEomqES-v>%!4L4G
      z#I%ZglqGQPx#8S%l6-!>e*ieefr$b^XCfDL#-7+S4b)4VMsyZ%8i;tx6@9qs`>n>{
      zjs^bUveoW1hDyXCzwY}ciUh~&%o3E(g%s%pfzdo15fppTBd@?Bu>Ndq7}#)7f<sVi
      zdYLy3nVe8RRYFd>*<95VlHV`pW3Gm59C8BJivkvom=an4dss}TA|W{Q*16>Bfn5UI
      zj}|K6HzKpMbLmNDMBv;?$yG08Nx~BoHG=xTDcWL{gF5s#AX`N563QA)-L+BB3^0$}
      t$`bagrUh(jv~`8?hO)85mhPP&8LHUMH9I-F*wxk5%)lP@VdXIvtZzHXb~OM1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aef1323e4ea270f85c881a3cc54e795af98fcc46
      GIT binary patch
      literal 496
      zcwUuI&r8EF7=2l{b*<HDb$TA`FhvXwx64G(p-iYEbnKqhxMg(dNLzpWS)K$B>e)X^
      zOzXs>EP?mEFTC%)B%fceZvYOlW1>KCG?poyvU~PO1NAgdB03E?4a9uH6}>q-_gjtr
      z6$||SX{+673?8C85l>7M3HFznBq$#XDUuTcqq#dIDE6XTUV%kmE=+A0SaDE-Lr`ma
      znKKQU98*70LXNxHRMiubU#GJXR|7T*If3g%0SkvriL7577L$pH2|C^~SNwfkm%#R;
      zR0aG(WM+0QJjiSaoJ%RW>V+(hd2FIaQ2#eWTl}S<4*dnl7SX$evPM&PZ4@*E%ssdA
      s0{dCh0#-HJy25xz+4#Vk?wubQs#wo88#%hz)Ya9@z!tV)<uMklZ+L=r2><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09987b56230a1790c74f9c36aca9439d0d45ad73
      GIT binary patch
      literal 1426
      zcwUu~TW=CU7>3^|hXIOK(c-DvqG&l3wxtCR7$c=MkWyo^gbVM6?G(1IySRW=|CLuJ
      zUibt2QO0j}v1u$xvwJbmH?!ZoGw-|m`_Io`0Jc!)SYX%~*i-F9d=_6c!~Hs%INFIJ
      zHNzYYrK`Q$-PbGG)}b);R-;m_afBH%m+oMQzBFxf@`@py>!?=E681pTC$4D^>g{}w
      zA>4G1WDIeJWb3feEYSfaIw64&7L$k|$&j13_u`ULTk4p$d^`Qvmu^?|Ey<ATIEJu#
      z!Zp==wiuoa%`ro{bE$=Mrt4(Kf2C9}9M2HzTaNLeBW(uOW>}tc?R-xeyQPfXW>}xo
      zG2d50cc!i(-<az53GZfQ)kvweZCkocON_^oEG5o=qz4R}K^$fq`#M92Mve@_cCfwn
      zw68*q`UOXpp&CeG*K$se&GC?u{8w_UGgJbpG{tyQWr%p>C<M)5&&yy>Wl##5!NE{`
      z6GxPRUvO+P>;zKKr8|=Lgn`d0j_shg&_7LuOaDpKFF0xpwLl78*Bn{WOCo+&b36~~
      zrhDr6AC%83WI*9UJquJt5T%jR>;PeJJzglTq+&mi`0lk_p)o;3NFWyK<0{S9{6;L{
      znkN*;b)-l}RX1>RCcHcoeofu9AF)DF>8AhJJq8aAJl(Y4ccvSg=`P@ox92YI5#M9c
      vv#>&^-KT1mxJG<Pd_;Uqd_v3-^TZ-?gIFeN#4TclxI?TGpAw%DUm*S$gRfyK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3b64f532f97e4db878bdf9f0581069941519e14
      GIT binary patch
      literal 484
      zcwUuH(MrQG6g^qDb*<HDb^1Km!xS+(6@-Z}$7Dhkp|ba^hApF}BW*=L%O}AHKfn*r
      zzY&uv_$W)@+;hUY=jOhDy}kiBz?O{?!Tv<%bjBXoBaPJ4JWJ>-;xrQTDOdF7d=Pe8
      z!z&hr!`|V^QL8ryZIlUi7wICXo(d_lGXkr<Jt8RglRI96qqPonVPVNb1s*}89hg)a
      zGdZDQri7eyO-DTtl3(ZdW3F!5IOYU?kVGsVF(r)teJp2FkrH%*MZRa2>JqqNlB<Yc
      z2ovNMracou;9W||RX=8F%2OK+g66;ZI^u5vn$WAl9HMUpRgJb*$0%tA*gJmh1@5z^
      oB`j-nb%phTs`ZH#t-T)`>R2s2YX$mP*VWg|!Ui_s6k{AX-)-7&5&!@I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91b351de587dd35ddb25742c571d0088b30bb48e
      GIT binary patch
      literal 493
      zcwUuI%SyvQ6g|_lO%tQl_*xgbs3Hzp3qnPxMX3-)h;%=VLpvo-N*<!0<w|hj2lx~E
      zCE`t5a4DUEbI+Z*_nevg`Sbn(;0U`WN(}9>&iGV3iDw?fFS9h_(?Ie-%_cJDcNdrb
      zadU7Z0)NnJpPn>(Ivc6PM491WnMQ`{nbImfXE0iOLxyrcdXP0(bTQYoVPM5U1rEb@
      z%gcp%DD;^7X{_|Pn>W=xrR8n*IFj+b7=@C-^`bz8LlLVyUmTXxiAoqc-ZC#-e67o1
      z`%xAL@=E1ec2Rejt1vj%TFbZ}iX@RVgl&e#zZN9%XMzT30LT}kT|t%5q^yGyF~Hn+
      tYj3b$iI%WRXj6pog{tw5HOifN8R}RsYBmaVu}RS-W?&0DunHRs)-MAJbI1Sy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..811609ae3dbe4e63b6a6899dc202d7f6abddf1a8
      GIT binary patch
      literal 499
      zcwUuI-AcnS7(H3Hb*<HDb$UJ6#S}429SRe{4P`<Vp|bm|#x<j+BklZoEUyGFd;p(B
      zUqVdl-=!>p^PMl8@0=vBAI~oUT39ntAZU-|l#bagyQhJAn4~cs2b>0C5^_Z^y2t)@
      zqkqN%zkjr|zuV|W@!hpZLK8)T%~?hX$_GM<^pL=4t`7)`z4(e(U=dV)Tx}Sbb5Mdq
      zP-}XbHI0}YQ9o5ejyl;`)f1ARPj7}?U9w@s30yA@STtZtWc~MHF%3mRu;<Nk$KU65
      z2y8!|s(_z}%+1b~TbU1mb1EfQy@(|VPfXMZ>i>pli@zAup+5oHB6^ol)@bUkje=%?
      wx#3oxU_WYFz`RCVR~T<78}C@qz4IkQ6^prMDMuH}y1JSfSivf+JjR0c35Mf#bN~PV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ad49d92832479d8706b0c61c7834b75b8cdfec0
      GIT binary patch
      literal 490
      zcwUuH!AiqG6r63+risyNw0bV|P(@s<EeI7sgHj=i5b1pzmvl?qluau7S)K$Bet>_Y
      zA0Td0!J~8+=FMB?&FuU5etQRSh#d<Rf^ID5bjlvt6OGjKEKlh);xrPo30L&?{37hO
      zhu16$hi6B}y|&M?yl=rI*k5Ljpmrjp$WIB3&hCi7^wWD@hfPo|EgcwGaZ!a!(Ch?-
      zFHM+?X_zY^<3Tag2!!M}^M^54cWj(+0xw7-mW-GZMgRL~<`a<-^nztRxL9mJ;DqU1
      zMf_3}R!%89C`<_4D=E416P9H>v(O}H{hOdI{xZ;lULVCF`c_fXXz8wxie`Yd=ha`~
      ryl7g%szygw7@w#aUs%(<yO5!Q^-{A@qK8dgJ<SYkVH<WCW5fOd3XXCE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0aa1d6376ef7051c6cc5354413119c6a6270a9cf
      GIT binary patch
      literal 484
      zcwUuH(MrQG6g^qDb*<HDb^1Km!xS+(6@-bPb26cdP}zG{!<JFgk+!0r<&)rpAK)h`
      zh)ETElqGQPIpN%MbKk#S-vI1k!$yf<cPw){We@C;M(SynC3G5b8j0D2D|&O*4?C^F
      z6^p{b>Hg6{>%1S@C=+bY(?w7{7E)v<1Xg=<NKo!2cf1BiYaQsq!h(kiJc33$FsU?V
      za!kWa2|4bXj(Q*@zs~PRT-~x!%nAG;iC8>jN*Mk7Sk5LQCFlh6e9tV^C2+$eR}sGu
      zCde&JJ0^m_yOffvUd+;zr#2b{&42TC#NPxop;v`DMBfUk8f~o(QPK>sxBS`*+-FTo
      oSk&n13hM(^>k~^_dp|bRv0Qjo3iPq6tFM`bHLSxa#yD`k0f@hEV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e01232584e44f195e4c7fe9c7d8880877bcd7127
      GIT binary patch
      literal 493
      zcwUuI(MrQG6g^qHb*<HDb^1Km!xS;-90(IZhcdB>P}zIdg)O5?N7{<|S3U_o_yK;D
      zn05mnWeJ>nPwu(rCi(vP`~q-{Jqsm*_E=_g%AVN^4b|&Bjp;PxG!*j*SM>4fIyh<e
      z?^zi1FWYCQ&ASPEV<QVD!Qm>61eJ3kMS4MCwDt!CW-lJ`Dr{X?csek!=AsOjpx*Lx
      zV;V6zra`KN9C!1knlB`O$Yw*Xp4c$r1fCy<EE+H+a=tt?(}_q3I{qp*Tt2N!-~@4|
      zLVhE1FQ?EQ<t_y7t(08#B9<gPu}~*y{5wKh{0%_^`U8+JqIVe;jh1E|lynAI2VV69
      r&bv-aSl8(22-85tG_j$%yO5!V%|f$PpoeW8J)IfY!7l7#j1Bu2Yo~GL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b002970369b3691f24034c14d9787c5dbafd4f5
      GIT binary patch
      literal 496
      zcwUuI(MrQG6g_wA*0pv{tJCMf9;S#vogz#G9m<3%LS^q+4Kt&rBke>#%O}AHKfsR?
      z(>n1{mcY5^hI7wJ^7-}t0bmcCHcEu<Sk2gkKk;W4>6dAiut_9XB&QETv)l8FaKAmc
      z=218}J2>vPL!qZaWi~9r&LWe9>WNe`J0+AmTSJ1?Pwqtx4#A$Ax+r7GLj@k8*$HxI
      z7IQUbVWy=T_wuPmAeFe8J&uIF<D*y*{2+;VJmgyD{ru3%9%M>53KqHI@8fy|H%w+a
      z5|=VJa|_{aZbR^{loGlh^E4HyjV7V>Z-%k>OF;|f3y?1|yMn4g+jNI083x$fe(eqJ
      qtDz;-4Z5bn@=&$vST?=)BSQl#g=V!tA8V%ihLy374LC)N1Lqqk$aACs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a5f44146f58c5e8de858c984c9459e3fd0e7694
      GIT binary patch
      literal 493
      zcwUuI(MrQG6g}y>cCFQEb@O?!hbdyvIS?j-4rM|Wp|ba^hApF}Gi^mb%O}AHKfsR?
      z({A9SEP-?H$vyYnB;P-uUjUA<Yr`PuPGnAJ?1jD3NWIOogw7&PBQc+HMei@K!sGVv
      zmPO(4qI-JM4xe+TxDAuwV3kG!>r6<IofA|#dm{pKkUa7l99>v=x~O2yLlquDqZ1Uy
      zG-h%_!%PV|=@(7)KuCU<KaIJ1VB?q*_(2k}c*K+_`0~)qrXnTi1*_a}`LsTP8z#Am
      z__Zj!+){T~xDa?ZQgStjS(@_HMuVXB?+9)2Hv}!{4?wYq-c?u{ZOwWxbOzY_e(eM9
      qyG{+PYjkyl*??s>v7x!QkfDyvQnOW}k8K@&omH@dCY*AN1Lqg#G;(7A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a40a1f5988dfd5b01d3f299d88ce84230fc6d7d
      GIT binary patch
      literal 502
      zcwUuI-AcnS7(Lm#b*<HDb$X`^b}?lb{ADl^bWSEz5ju9C)zD?sbflf=V|gWb;RE<k
      zVp_#r$`Ux=`NH|mN%Hyi{sG_sTP6wwr=gtD343DCG*B<oG^Ue)(?CqeT+#c>o`2Zr
      z-?G5(UmUfM8v`Y#5x?sBCJchsBC`bLGa*HKPEc&_4hf8I{J<-)2&_L_8$~QRD8V79
      zHNDK6Mofm(PnD2iC!4E!Lh`%W<A|#P8%3PJ_2Pg<L#9O5{~j9YSR@2(Z;?yRAJ`$V
      z{dlGVel0RPJD2WfMg-1{lw5TqmLxneQ6s4To1!h|IjBQ_1F}W*E}^W^)ZGaRngQmX
      uTX}>1s%Zhs8f{%+Y@=-KU`6-Nj|^3;=9;w}U99WsYF5MsHeuy47OZas33U$u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c743a62cbc2e1f787ba6cb21daf19d90c741d4f6
      GIT binary patch
      literal 496
      zcwUuI-AcnS7(H3Lb*<HDb$UG*I7JNV6k#IhP$pCnI(DDc*k#moq@6#H<(1%t58y+I
      zX`Of}OW=Ix3+Fp0$>-Pm2Y@|nSSS&+BRQpG_Q;-Ts9q*nLdPMep_q)gqPOQ4!G5!M
      z&BCB}c5vKo_Meh_k&Y~w1UvIg5>!rv6xk_((b^ginBC-#S78%aGgAi!7F?9!64YCM
      z?o4AQBN}8%$f%P~)qElO&Gcc&Ri6!GPT=`T$l?K0BJXF1W;PNj!I3}D6@MSsA#j3Z
      zszQD#ax<q8?&dZG?v<2Wbz_#MJhf0KX#AU@E&fu_fc^sHi|AcOMWdy=LzFZFtZlFQ
      s2Ip1N5*9T&y29K<#cW|o_wJ7jH7pmJl>$Ai>gs7`U=8cAix?aBH$bX$;{X5v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a8b1776eff6a06a543822e0511e791a3c8641f7
      GIT binary patch
      literal 1426
      zcwUu~+iwy<7{$+U8=z<vE#9gvik3@ZTQ0SVF;ZFsDK#cbc<^o6j<9vz#RaVTU-@L>
      zgYWi1|0Cl!yVx|Aq}hF#-#4@0oSAcWPyT%W0bmn#jsU~@z?v#Y+DGk^qC1~Q6I(gb
      zg`yjyp>UMfJ9}z5(>l;}wbiI>S2;oq=?ix-M4lOzF?r6A%64R{VrtevQ74XJ4eIS&
      zk0I2w4@DF)hD7V2(JaydMLHplAQln`Bf*fJxA**#R9oyAmUuON-xp3->zjfh*|Bxa
      z>}if6=d;DoWN3^TN}UTWoH1P|JKig)dhU3JXy3H;cO79dur|ZeoNMQL(%21Y>?Xt7
      zoR0av;;KD$bn()Vw~xCwE6GMmt!-JtX`0%2EXY#)>_@uCu;IsHrm?3o1Zm_*GgSQT
      zwWfU;YQ!rzG7L3e3OlBK{MHx`Dan5&#~MS~mr7F`PihQdmmGP&8SJ_l?8*#^elyq~
      zYG1TN%D^i)HW;eD6jb4igf(H{vx=kQ_ZI4hspims67dR-Eru;$3SGw-nZivXc3N{h
      z@$060Y<nM+&nl!r;X*zEs=|oS$Z58Zkh>ns7nYOJZ-{?&TQ1QUCnES0(clR#(|pxy
      z#3HV^LNQ!Ll4N9c4cBMFOEcjY)J^*l%@?F@>VMr|;KARnZp!OB)s4<{1Gwexxs5x-
      yH&}2jEYoRssahef67Lfq5FZjB5wpY`u|QlWmWT>*lUOEJi8bP5;x_RqVt)btAY$eK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1470121544d383af72cee1f10b97456226963060
      GIT binary patch
      literal 484
      zcwUuH!AiqG6r63-risyNw0bV|P(@r@=&4evrBWe^5b1pzmv$v4Ws{12mM6i3AK*uc
      zZ=>K*x(oAWmU;8`eSW=v0O;VrMv38co~-zTcoNS%(l5(A<qwhMky<XK=C>E)u-lqk
      zizu87d!24;I1X)C49DwqF;ve~qVfSlxqUcgutw><tid5ofiB9}@KAxr&}auHmB%8P
      z^Dx&cnfFacJy40fSv}6Az7w-pGWbCniFhisGWz$?$`>kQ=mzV2&n(qvaKm(^BYCMz
      zkXx8eOay~>l_XM+Vv%Jsv(aE^{+mw`e-qFItqOA(-3qFNHmM#;!~pxquf4&2C0fEJ
      lp-UCk09ET8Tco`o8|v6DJUa#Y*rn<dD`OA)aEdVwoNo?5ZO8xs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c776e85cfef70d99e78b9ebfa90b27b81b12aee
      GIT binary patch
      literal 493
      zcwUuI!AiqG5PjRGO%tQlX!Ts^p^6w<>8T>rqE?6^M0(%GrQMQl$|e#0EKh<5KfsR?
      zCuzZ>bQj*d*`0ZBcfNl<zW{V_WTM1yK2@1F=P&%#3-#MFjlFp&yihJ@LVJ%_*Fm>6
      zy60gq8uU8d)<9(wnV2vbPB&>}s9s1V(@TbO`*_S?4C7}}gGCoBO&euwIjF#4Xte!Y
      z*o(NDdO@nCn)dUix-XS@$QBc!pZFva46YxCJQ{N?^L%}1q%)Z?^!!a;xc*w7!4Bd~
      zhvG)&T6R%)ma8y0cS;F8jChg=8bX7i`L6{@{F$H$8UXUeXjf1rG%4$$L<}%b+}a21
      qccLY16WSDE+@flXutT}CDnlK+Ma^D;F7_$9#L76pA*{m2g7pic<8pog
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbc2e47bb7f2ef148f21cea5255bae92facef386
      GIT binary patch
      literal 499
      zcwUuI-AcnS7(H3Lb*<HDb$UJ6#S}4YFua%uZYUF~Oe(w2YTPnvI?~pk$MQ<>!Uyo7
      z#I*ih$`Ux=`NH|mN%H>j`Uaql9SbFb?o?)U&hFVG4b{^kjp;n(G!%;&S9H`r4LZ%?
      z1q*}WNw?i;_M`aWRwOeECc*wPqXd;BAw_yjV6=9}1m+;V;Z@iK)gM;}23A~@;S$ta
      zer`=8CZ{w=m5|e3K34OE<d@mqgsW>di8z7h$03WxOo_bzJ~Y#rNC*!7W$yU<ydHrQ
      z#F+~DnaJIoLV1w;5V+@3ay5uplJLYrouKh=h_?8PK?C{|kT0Tl85NC|?z$*x23UJu
      t^##terX{RubaaI|LdCqon(o~%8ERNBG#dqa*woe2%)l15VHYtr>`x|lbt(V=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd0feeda22b352d97a3b9471c3692c95cf58a3cc
      GIT binary patch
      literal 490
      zcwUuH!AiqG6r9(lO%tQlX!Ts^p^CV)*i%K&qEv_?L<)M_#--g7H)WHGewHV}gCF2W
      ziJMgLDBXp5^Okut`@X(EJ^^&FXQM>uPSk?U_%nZDk$#<L37bWNMRGnBn%$mXgx%Kg
      znn&UAtk>zb20YDrHY~#7DszPDiBvK>C6wFyBZ4(Z9z_ifp;B17C}Yh-1s<W%4su@>
      zb2VXMrlp$n^O<@emAF|vjfKAB<5&><Ac=T9;#%hY@1vDXWlA^>R{7v^u|B~KlZB4N
      zrOd6|LUxp!5WFj;gdW5^O+{*>L1_M)U@ZPJ(1ckZ`5|*Fs2a3Q*F(uLz&`M6?{MD?
      pEn(fDYbvaJRILYWnBH5;P{(GW*(%V-wyC~hW$a)VP7&k4`2nhtaJc{g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad9d25414935048f349b3b09c31371af0a6ad64c
      GIT binary patch
      literal 484
      zcwUuH!Ab)$6r8l%Zg*X+u2#>59;%43g`O&c)=Gs{gq7aY7}}I=wq&=WpXEvL;0O3o
      zVzLSzr3uWN3G?RVeSW=v0O;VrMTy{as#bK)p4c<x`em7?bj}6kayb*4-d_&mZfkVQ
      zcs#o3b-JyqVeG;oI9{iVpn4{i%+CqR?ZYvFGe{pr4W7{^&_@{?0V)Ux8turY(uAog
      zjdLy4v~N4=kyPStwU`L~z$S?x2&0s<WX!a*`uEYvXEGz`M(cdfF4ZUS<8-CDxRy4^
      zFH9#kf*`n2O6WntvP@(y8U)RM^G(Fx1T<k*g+0XF3aSQOqk1SA2DnFI?G65`p(Sh@
      l^i72`LDk{dGCKINp^ojsvr}M*T~kBD%Gkp`ykd+8?;9y4ZW#ao
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e37e63f9f5d82c3d1c1ad323c5b72091f170a48a
      GIT binary patch
      literal 493
      zcwUuI(MrQG6g^qHb*<HDb^1Km!xS-WvZsllLz!4bsO&xK!kVq7Bke@}E1v`(`~W{n
      zOuK=PvINe(C->ZQlYIYtegSCXz(R@ObRrjY%AVN^4b|&BOXxJ@G!*lQEBbJG6?B?|
      zI~E3mi*CEqyp7l!8(T05j@M}<sGJEYvU38XbvPt2`^lJBVe7)u(}95v7iG8v^_HI-
      z)0oK#4KgL<q?b3<d?ES$;%UUyBOAq>!1I%k#Y3h<&R2(K7KxOg>#uXe)zf+ePLM2A
      z$gf52<rKP;+=alsk&>%^%+i#n7U~3ze@AGGzaeNqe*p4D^e&^K(bBAolFk6@$g6(9
      rdDm$Pn;IP*Va`x7V{B>eE@h};yU^?u=wVk!PiF@9un)T!W5fOhc^`6_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5459f9a0edc1450f68ba5cdbc43175349817e372
      GIT binary patch
      literal 496
      zcwUuI!AiqG5PjREO%tQlX!Ts^p^CV)ST7Ypi&7zq5b1pzmvl?qgiRv)S)K$Bet;h(
      zZeqowbO+wdTi(3c+0U={4*-4aS*Q^lN3x&`_QalPs9w@Mp^K2yP^5FN=-tI-Fz8Nh
      zSQt#shy6h};40-Zw_p++uF^@+I2BUlX9PxXe@bAElLy{}O<*le9T-@1QHM*=?)jxN
      zjhT#SkSighQQ6h<h2*!z<BY3&Hj6od=O-bHr%Z{GFE7n}E;51>f0ZZxE;k}@f}~I(
      zzY?XHQwfhs8v^%QO0LE+%QBu>XcKh)ouMuMrl14;1t<^EQAb0grP&ZQT>;jC*L;KX
      qs>>SIH99)$jnFU)Y-sNO$k4)OrP->`!?w<zt_<v87j`wqhW!mT7Iatu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f7786b9ada47e01e80737b36edece3e8e37ae17
      GIT binary patch
      literal 493
      zcwUuI(MrQG6g}y>b*<HDb^1Km!xS-WvZsllLzz%TsO&wfq06Z0Ok2?h{U@IUAN&A6
      zN=&<fkFo^Ly(jnFbCZ1ke0~AwV$Xs>a2&~;&e#)srlES7X9=B!oQ7gP<%-^(Uj)7O
      z=$eJW=&axEwS&i;DQ>|eI9#QXpmrjp$W93=o&7O^IZW<(9kwnkJRMZ9=AsIhpxN;Y
      zV;VCV(I8VoMuVcM;S0%c@`njmcWe@K0?$uE7LS<{1z#ST*;J$ieSei3E}u3aaDpUP
      zA-@!bms9GF3Ks(RN=mMVF-udPT4)lq{vDw${)V6h{Q)Qz(YuP8MoY6k44nbifmi>4
      r^R80^>lz&$VZNefzF|XicOgRqo26!}L=W3KdOE9M2fMJ#F*fX9^sI9i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba1edd4ede90d72ceca11f5b4164f7e810e7ff3f
      GIT binary patch
      literal 502
      zcwUuI(MrQG6g^qHb*<HDb^1Km!xS-WFcBt#&dG!-LdV{-8n%os9cd@}1NuEa2|oA%
      zew3J2agVYD&OJArdrp$iulElCP3&1H5FC%?f=<~3d!(Uynx`?HhMb0CKH-YqUG#!h
      zy??{Ppnu+Ow(0{V<`KW_1r|(#!&PPpN~c1K^o+o0><<adZhX(nunFuxTL%W#TomCF
      zR2zQgO(Q19G)R?@<4!hL@rC5Ki`j^)0UJe}!1LpfMMI`U*8d)w=|m(1C;lpzTt2Wv
      z-~{nPh5Slnc1|um%8UryYbm+vMl4BqVxdY<`!_{fEOStU{sv@==v_ofqounx3Yr1d
      vfmeQm^Qvh9>lz(hVLqc|zF<T5?vD%=Z04G+96fC7>S<<R2fMKI7#sFC5d(F@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d4d3d7d5581d3cb87b88a15d66a18c8e4bbf00c8
      GIT binary patch
      literal 496
      zcwUuI-AcnS7(H3Lb*<HDb$UJ6#S}4YIBzC`4rM|Wp=0-1jax>Sj<oaVDfCsm61?yM
      zd?+!k6E9^6obP<$eCH(j{CfWY(8P{~0>R-(&gq2Rvqu`Lr&$`)Nyup^W@E1C&DnX-
      zs`su~81zot%~rkt5Z{SpY{4YhUuKe^bS$JuPY8_0?tsAT#<#o-o4{I_Ixw)}q6n9u
      z+VC@H8ZkMdL8^otb+W07FC@R7PlsIf*)ZY+o*#!S8ZafYesO4~W04RX`O94K_i-Hp
      zCy3`N<QF0{b8_K9W<%g!O376>VoAai3sr*JzZu%%F9kK|FF>}4-bIu&TDohapc!E8
      vdF3}aubLLHs?pIE<}*s>3)Xb+{>V_ldal{X(Zi;$o@NHNunjwpv0;A$P55+|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d608201cc1d8e514acb383b9b8048c089b7d2c5
      GIT binary patch
      literal 1426
      zcwUu~U31bv7=_Qafdz_I(c)LNMbYw6NTG$QIF6Lofhl#I3B!eVAzdLgCK$k~|H><8
      zyzmG3qa5E&Vy9!7=_D8Xyt{e#?4FbS{`2z}fC?HM3k;h>d#0Y~pY<=Q;eH)Y9reTz
      zs$q^t!d2hy9ca~T`$#vmcC%KgawrU$OLs6tUzoNzeaVo{b!Dq+>Gn|7rmkrZ8=ZWg
      zL1{V1B8E6avVGKSmFR#HoshsHmXe4d$&j13_u`UNTke{+cr*Jr5N=N&Sb`zdbqw9=
      z>#iy1!J;x9nG=R`_fiYzOgG4m|4OP}IG!OkupHw<SJ(`!!>}^v+WEdTc1s$&&9E`2
      zW4^D1=FD6}yf)?S6W-0rvXN5j*tT$6mOhyXvXnUgksdH?g>jf|9%u}UG;(AZw!`hU
      zX9F2()Gs))47E@SdzN$h-kgjm$$urs217NJN=u(iYYY*O9EGqM?0XsP%M40kGdLXS
      z-}Gb3z%Mwq7<NJ_Xu=%}d&<Crieo$MEwoQF-KGB|>K7b!hI%N4o@<UR;Uy72t2v&9
      zb<;a_{13{53K>wikk0~D5kzU^G&_Xit;Y++)l}>U65qX+D>NpEP%4NiRa~X{y5ERp
      zT=RtDxQ-Ob$m#}e2Er?W@GI)3{fHHcQaAm-ZXI0N^>ovI-<fVK&|SbCZ_i!aBfi6u
      vXJM62yHC{`ah>>(_=xzJ_=K1v=7~k(Cb3LZi4|g%xI?TFcZpAl&k_F%EZ$%!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c84ed67fc34b8ce8be76c9b7c2b42721c8f66063
      GIT binary patch
      literal 480
      zcwUuH!AiqG6r4@dq>0gLw0bV|P!(KS@Kh1BR1~5JDZOvwl5UBcvPngMNY9=G4}O3j
      zCGJM?D&2*7Gt0br`#!(kKLGTw=fWbOsa(=Idti?=QBR99r}Ko<L@Z`p(cAM;-0xgo
      zvt%q%t~zI<*o94SxIz<wb0VZDPYG(>{Rx3R%<p&up4K|gM-6KM>Iev0-N=N}jLDS7
      zr4lk7n2u&7B)?hSPq`YiX~qe{C{I{6VM-YN`)HRlQ4sW^6@F({8W8w#zElan5GKd3
      zJVz#hAh?o}t6|29f)_4Y1nqz03B11nXhSawbBMlmI2v88j$vsAxCde54gRa97S=WT
      ky25^jW4~ZS>)^+RCN?Y2R)rz9bqzJEVF$bLsxcnCZ<&~IumAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2645583248d0fa79f83edf25c2fa6de37130ce05
      GIT binary patch
      literal 489
      zcwUuI!AiqG5PjRGO%tQlX!Ts^p(?mo^i&bFC<;-8mfp8<Nmt^gY!cD0Qcr>hKfsR?
      zCu#92-Gw)Ac4yw(+3%mvF93(wu~A{@MLOpX;z>O7(7epDgg=CmhiW#JhTolE411lc
      z8xf9FBu(c`=M$CMuo(82=wqm#D6O(nhH7_r%wP?Yd)a_P7jsD$RjhcZ!DDE3gF=_b
      zLPva<8Kt9s(bNo-mbdxiM4FM9#FD`el2F8BVN{VX4y|meQih{oi3ctQ>od5+BsZbF
      zRE3mVmK_u#4BoZY(hOperjov(#nArOfx-FnKpQkZip6NxP$#r0J4S^VVDI^j54i6{
      oD_A9TDZ+Y1-Fm|s<=(suO{|wS8zuVKr05f?Vhh`FN*f2xFD__xW&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5e01317a49165360767fc8a841670dba13feb44
      GIT binary patch
      literal 495
      zcwUuI%TB{E5S(q(rU`*Upm46#Ljeg31YC+Zv;u(?5K^n&-C$Cq;8ae^<Fh#NIPd{{
      z6v7G6E2=Hc&RVlGwm-k#KLG4v!$yg)AE_z3<@fxNh5BidCG0j7ER>V6(Cn&v(%);H
      zUGQ)qBcWT}IC;2{>DY!v*q&pOP(6}LX2*nbdvi#zddan@!6DTCOkI?*;GqJK&}av_
      zGmE*3SU=NJMV)-C9!MoFr*|Wv2YeI@f*&LykB3~#y#GD4vaw7Fhrt|IoIS2XaQn$r
      zhvHP`W^N(e$!!SUxl%&+VxFcVwb39n|IHvcvlKL8z5w|mvn!|?v`u$_l3{?o<=0-|
      rJ{wxXqCwYGSg)vBZ&)(D_aj3c%Y|m8Kp(57`i7OUhIKeaj05Kzvi*1x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c02333fa0d603f0721b9dd0eb362a1d4e9da210d
      GIT binary patch
      literal 486
      zcwUuH!AiqG6r9(lO%tQlX!Ts^p(?mk>8awupeRHUT6*8cCEXG?Ws{12mM6i3phrJS
      z+@#`Fx(oB>E%RpfeSN>Z1L$GTMupIe)q>6VBY$F%exBzkn?-^}ay}KB-JM?yk2_a4
      zJQ~SZ=uW`1yl=xI9Ih}%sGmwD^D{!VyFVsaL3%G5a0s>1(M1(&9%}Fit!`M@vV^Oc
      z4RbA3JSb+Gp;Y2_@h}m3#3zX$_+c9HWX!cJ`rk(@pURAI60Y#S<yr%RJ4_ck5|^@Y
      za!b`w;X&}Ol@dBgc$SIGMvKt?H-O;$MW79{Jc>i+)=)QSo34+FVSs($H(ues7+S%)
      mLDy7RAE;ZO*f71fl%a{uQnOW}k8M+Z!>ZW9E}SyPf%5}4#&e+n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25e9e19bf837b8431947e8446c73d7e4f95b6a26
      GIT binary patch
      literal 480
      zcwUuH!AiqG6r4@dq>0gLw0bV|P!(KS@Ko_&ttdnhQhMLUCEXG?Ws{12mM6i3A5i~E
      z+>PQ@x(oAWmU;8`t-jtr0Q7L+!XlulT+%svV$U>DFN-p#^MunxEM{EM`-@TB?_A%q
      zWGqsyI+vr^g-vk0MiYT^CZs6O32NQL34uM#A9w?v);iBe4I2UK2nbr;$b{02$&|*W
      z5;7f_j%Fkzzgs>|xf-)+#tFhGPgpi#N*Mk7XqPil5cHxoerHx15cqMvR0+QlCdaQl
      zCnkX)xRH{pVaAGr7cN=^?SJD5yuSfxLoW(*h`x0=8eOeUVQB`qM`7a){;Q@IHZ}UX
      j!d}6#Ke45C@MA+0+m&ah!VtT<hMLu|hkba}7!Tezv}<tz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a74a38d9f703b6d7b83c8d6b928633920b39035
      GIT binary patch
      literal 489
      zcwUuH!AiqG5Pj38O%tQlX!Ts^p(?mo^i=U+Q52&HExm8kC0&V|vPnh#D^G$4KftSg
      zkGM&TSLrUinYT0Z-p=RG`v-tS?ARy~I+2>Od;Z9uSg4<;S;Fo^!9qEm2+i)!&ikF#
      z<qZ!9G7`FVJ>f5WY{Me#FEK}`o=7FLQ$o4DJ0w`WWGrfMOkpnRqKp*}6?lY3JIHle
      z%vHqtnU*T*=0o*BDsek|7zsV#qgW99APIRq<XYx@@n~fenG%kIB|f-VtV?kF$xMgh
      zLgrF#(RPrF5WFj;gzm*WO+{*>L1_N#Kydy%(1ckZ`5|*Fs2a2lJ4VT5fW7C}-r&BP
      pw1icIu8FX|P_@3XX1F(RLmlfy&qjehHcj+RR>l^#;S@FwoL>a~b%6i?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f3e1ec07da6daaa0d756bc845ae4b43d9319364
      GIT binary patch
      literal 492
      zcwUuI!AiqG6r9(lO%tQlX!Ts^p(?nj^i=U+Q52#GDZOvwl5UBcvPnfh%ah>25AYlG
      zSHw-MUZuM*Z{9L*W_RDeUf%#5V#h{>a2%^SoAL+#$RhnT%TqRu1dHTsA~d@_I}eXK
      zm)ATR%2?=5DD+II+=fNiUt*9@Kaoo2r-W*EcSNuT>78i6A=nE~7gelysKFz&x<O&g
      z60Twv=31(_UraRvsl?6vek}Bmj}t-ggEZpFh-+E&i$g1)$c)enmbl^X)A|HAOy@ch
      z7qakjOWi@?Lh!DX5_*vEEEAcH7NPxb1i|?WK^x`+P%JXLhPpx9bUjoI1MEG&@dEeR
      p&<a)!x~9VVK;8Ppn(4hC8JbuxH5(=R*fiBQtcopc!zp7NIN!mpcR&CD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9429d491e346e64dd2af8b69cb3a4384fb29c8da
      GIT binary patch
      literal 489
      zcwUuH!AiqG5PjRENfV>hX!Ts^p(?mo^i=U+Q52#GDZOvwl5UBcc9V#HmM6i3AK-uJ
      zXNa4$c$MzLn|V7k@9lj4yng^V#-5EDK`)jCow6tPOe6I&%TqdyIE}<?!WF&0xD0!p
      z>suBLMa)$voEJ=S8z#Zw3UdV3nUEqsCosDEBLZ`fKJW${U06uEFtFyK4v(PK4N6^_
      zFd5S@S3<`9a;O;y$?uBCF;_!2PB?)dq!CL-Oo@^&AI*FsGJ=y}g%2(l>l3(PTBwL$
      ziBig~+Kx&Q0`Epjt_BIqGM?FJ5w!nxAaMRX(1u<g<stgkVQI8AJ4H=rfPLUM-r&CK
      pw1#z!u8uIjV42_8(A-<Jp^43^XRAUV+dBF>Gq8hQIF*e9=NEt1b^ibW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f7ca86b8b0c0a859870f9128f6cc45faa410220
      GIT binary patch
      literal 498
      zcwUuI!AiqG5PjREO%tQlX!Ts^p(?m26b}^-)`~(DA*J_iT+%IZ6E=zHXL%Al_yK;5
      z{(-oOQjgLdcr$N#^JZt?zh2(}9Ad{pji4XNg3j3kd!(UyO7n!yLrz1H&bXqtXQSY#
      zdwI>mv52_pj+IDbem)8;m<0Pvv=TH<gcSKHfzjKY5SYW{jyGWw*b7$&23B0u;S#ia
      zerZi(CL<c;O2}wX_O*N=`Au;@<!a2PF(>f+BxLb~DN*v@OEaH|jNsT`;*Edn4G5ed
      zDOAWWMCs;K%7fB}z`c@^t6|KtjAs_w1f73}=q(px(1HF0l!xf3qoL8#tdE+m0Bg@{
      tzQB3bWeuwu9i3r*pkaPuO>_50h8ET<%|?YDHg)!NWnc^2u&XgP>~Ek^c&h*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..354b5b25fb1905eed943c0ec29f738e910120036
      GIT binary patch
      literal 492
      zcwUuIO-sW-6r9(lO%tQlX!Ts^p(?nj^i=U+Q52#GExm8!nr?}kvPu2;S)K$B{s8}w
      zp2SV8UZuM*Z{9L*W_RDeUf%%hW6MT~a2Tl>oA7)7$U^-z%@Q^V1q<bLEHt}5Iqe^`
      z&M$d5kde@>!9#K@)3FVUu)Dw@p?V~h%#I1=_V$oq^^zM=gF~?Ao-WE*@=$?CXtaae
      zn8jR0te<JAqHaD_52O-Tv%8Vd13roc!4Hy<$3w1V-p>!MY%EhkCs^QyzfbED+<r3C
      zp*WMdms{xeau<Skp_I_Qn5U^oZ8QkYe<KLaUkI8oAAo$3*%ed`+NSHEWEf!Y__Y_f
      r&xV$;Y|u3o)(5KACss`F{m4+qYN1&x(8s!|zF}o-U=vOe<G}d_*?xC_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7fac486914f593f73ab6f03daf6ee8a9c8b6dd08
      GIT binary patch
      literal 1411
      zcwUu~-Ez`E7>3_%0}ClyMT>t`i=yR68llBM9LJWTWl9~#FdTRm(iKu;f+1M-PV_*p
      z!6Rop@B+Lj$8Qs?9m`B7IoRjj&G)^#?<T)~|M&@@f;z_xL#gkKwLRmV@m@2%4@2M8
      z_DrFf)^H#^?fFJiujaOP46|ePg~y>VWRGoNh(EL(%YVd>$+u;xW*bgl(|yl!`t??!
      z%b+yeU6DYNLEYL}Z<IT&r_C2CW-*sS3@L{Ew9cbT(rdnLIpW#)O;30oqh||-blWuz
      zyK8usoKF@Ne_)Lm%I#wV{7YP?Ea4kzdSrKoM9+53*KOf2uolC@lv5YFGS@ko>pa8q
      zl#1!GRNWnWrg&n>!>hr;R%9VVs^vJsYuLtUBq&kx&<DE0phd`+TW{(NvovyK8LE+5
      zopDcIXgm}gIfk_;1{=1!|H>K-=obG<j%9{Q6qANA@@ovSfE>k$`8R|7n=*enV*c%c
      z@zL0&{Gs5u&9EB9Ko{OnI6ecPD2~;LXVBk{4Uc}0cqlmTFw~+LbUbTli{KWL2b$x4
      z#3-G8H~f-(qL2mME95gnDuy_XoMzilg7svvw3tqOhx#ojIYFaJgz^aq<ugvwd?_r%
      zJWd5hNt{NSY@|AavlHWmiSc8qrhX)fCFz^_-}ei+@-^_ygmnkLiHYwFE(ARnaf$d6
      xb3uef+U+u_tHdSZHR5&R4dP8=o>(B3h_{F<M2%P>R*7rG8u2di9`ON^e*g(vXl?)i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$AES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$AES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14d17e983d4ceff5052285a7624c7ce39baf45f0
      GIT binary patch
      literal 496
      zcwUuH!AiqG6r63Frip2*(dxO-L-pXI(o;pyQc;K^MCy4Pmv$v?$|e>4EKh<5KfsR?
      z-$pN<q`UCm%rb9g-{;r+2Y>_YxTr83&GeE#h$r#P6Z5htGX9WAo~XrK8h&#&jt_em
      zS0cHaE0Zp=EbX0+V;40BzTzN5{a9&LoG?`TyAy`mD7%*pc*M!mM-^)U90UxVeq@b#
      zD)fxUg;9Dov=i+}X?eYToJw;mrm18Iqbw2WL>OiH?_;f)tDIpFt@uN`+K|DIv!zMo
      zxw2k<soS?M48f(=(u`7(=Q4NEVd(xF!O;8@f-Y!b*u&^Ls8e-`4NxHjxO-va4gM>^
      n3Yt`X>Tp`9J8iUx2R|~jv0iF6${J#mdPt~>Eo{RpV?21@B*=EA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5482386eb6025cac5997a265ecc5c6b4bb7f9c07
      GIT binary patch
      literal 505
      zcwUuI!AiqG5PjP=O%qeA(OR#C9;ycy1x2U`S`>vSLZzO!acQ@to3cqnKg*Ng!4L4G
      z#7WwVC+RM{d9yq7-tK(=e0~8qM9W5r;bg2cJ{2$Gm51hSp2mC{N*=2DL>m5Zc{Mod
      z+}w%qX`)OtkK?Fwp|g=nY*ZNdioFcgGo@8}&QR{|4H+u^_*vHA(8WU5MHy=zEO-pf
      zZjfv9Na!&iq(<p+FK=oDO3V9fHj?I1j3UY42XQE(p)e}Xmxq;fq7sJFV8ur+KiFe%
      z2XSUXd989ew<tZxg&4eBt)=NlB1t5TqRG(y*M*_}#|LfD7?3YU+d`GlrtBCcVt~Ex
      t*FNCB6D^@m=u(8$Le<*EI_2J?3=M1)HJb(c*rMnYD`Oiwa0(j-&M*Gsdt3kj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d5c34e543c33aa6d15c7c4587826da8f9b502c6
      GIT binary patch
      literal 511
      zcwUuI%}N6?7@V}-Zg<^UU9Da%^iVw*6a=y2p+!+xMX1zsy2frwOiFg^&trKKJoo@U
      zl$c$Az>_qA`Q{7r%_MpMczpw~gLM}rg8i|Y(Fwa}k2E$<(@fJz%xNs92{-hzcRbi_
      zpPsY$IuS-rwU+Ik)DO2JO<Yt6=$z98)kC2~c0^F_Yz_%3eSO1g@Ca%@#y-ke2;d+f
      zXm+C9ol2(0bdVXL#@&3Z5edaFW_KfQuGmO&f-urClS5`i-hUrfvP7f=2hp6@{C#AX
      zz#r(DiTR1h4gEsAom&wEXG(F?mn=<r>Y_=|`ZtH5{wE17*snmoh}{mV7G2xzp=250
      wZiTfM_|KM>P`BvY3TFdVr-en^2VXKYuvBQ43k<PhYiL;+t5}0q#CY&N0j<-12mk;8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1096cce1dc22f3b2d9763cc7070fd4580395bf8
      GIT binary patch
      literal 502
      zcwUuI!AiqG6r9&4O%qeA(dxO-L)(K(h2o*&!JsHa5i0e(jZ3>FZptPV{VY#{2S31%
      z5;v(APtskOH*c9Yv%6p4AD;jQICM}U3}<S^7W|pNuvot?^OP-O!D6|b3(fA%FUH56
      zs~a9a%%x72X_|CGp5;Ra7J+RzN~oPmCG#^vwcDEztT25Pb+`n(boEfhmJb^~q1BBF
      zYnE^|W8+*)H5(N(%}6S7yLy@meb1+fAOukw^JK!cEc)L=E1%1Za1w2J$My3@1aF+K
      zbSy4q;pUafqr!*aUn?banD8tUnS&Og{ci}N@h1jtm`^~l$ZQ)mgO2Hjs2Bz~{h<C1
      r@6FH(8U{U6VfRq8``9+Uzm}niol>(~Vt_qU1H-D=#{t|j#)bO>?K^pw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c761635f725e39714271a430869d3cd1d5c78df
      GIT binary patch
      literal 496
      zcwUuHu};G<6g)Rc(}a{lpfFeJP#Cai)v1VqQUp>!NI_+GgVnkUPUR#BK8p#7fe+xL
      z5O!c;Lbav$?yP%vexG0O9{`TA@1jO9n9Gtb*%N!FiF#QT8C@ovCStYVir$`0;(qt?
      znkDxOq0&{BrQP#M?7}9XYYr0BPlOc3DS_2Hm=f6I?14AnX|6qeSl9^QARuV>B4bQb
      zCg(IRl#uh0nP^2q@|*H;#?>90rJNv)vV^5mri9_Yk9M&TIl(Ym^M_`&5rH3PrAqjP
      zFkXJ8J2EZ=!IhL;jZ>EAJa^G1==>W&(EJmE4)nq>hv@5|uB)rr5H*be_b_a{!GG1T
      ohNiB*?r{33I|FQL9{kAA!d9i(u4;%K-9wEm>|zgI730DC20!C=_W%F@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f485a80410299d59eb84cdb4dabfd3e5f0b6eac6
      GIT binary patch
      literal 505
      zcwUuI!AiqG5Pj1&O%qeA(dxO-L-pXIpa?A<EQ(?jp;FJ=bZNH4P1&TP{*@=egCF2W
      ziJP<+Ptsj@GjHe3o8A5X`TPQKh+P{c!pTI<*_1!?7Z&Q*S(dPAC|D?Gk<je^{9<s_
      zzPjb%V<dGvOOm*K6Y)1bwoxIl6?+NQo>VeBBa}OPLqesWj71HODJ*PVl(FW)f=6g}
      zg4~<MTus;@(^5^kc~c{hO5Dw#MnXUEQ7j04kc2!QaxHVdJgj7qObMsKikDnIuuE_U
      z$y|rxQs#DUAw9^A2;Q|)Lib~yrXsb`B((mWLa6_lgBHv;AYWv*g{nc@uw#@=2H5+4
      t?E~(+NlU03bWMcSMb+wI-EeOqLjxOyX0t#aTPFG@D`OiwaEdVwoL|%tdv^c;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..887c846443ea1ecbc318d8e5cba80aede018dd54
      GIT binary patch
      literal 508
      zcwUuI!AiqG6r9&KO%qeA(dxO-L-pXIAR-kH)`~(DAyUuVxU^g1CTvpC&+;UA@B{oP
      zaTDvolXMs6&0FTp?C$5+`v-u1Y}=?1jwWi(X8egivq-<BdBSFqV3ACxLbKbmVR+EJ
      zyynsURO&cQlDHcRoeGuPs1ewb!-V>YR5Cv$RC_xkLT!*dhz1;jz3_EW#fk?D9--X}
      z3Ud~7HDO_{rJD4Msa7DBxS2nWg}&qCSP=XmiFiEXS{D7{u$E6{MmP?Zyyfo``vf;k
      z<~kA=vhZ_D?Ox$T@UD~+dJyw06Pb-Rq4RGHq4_5W9hi?mvB+!-b%VC)4pA`-uy_5&
      s8{AhzD`*;YO@(!ix;4bA>AfErT39PJ>m~ZwFx5A#icM_6DPtTs->CL|HUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29b8389d6271352d58b296075eae6e244226a35b
      GIT binary patch
      literal 505
      zcwUuI!AiqG5Pj1&O%qeA(dxO-L-pXIpa>NY7DXW~LZqIzacQ^2P2D7-pXEvL;0O3o
      z;wJXuNxBPf=Iy+Bv%6p4AD;jYv1_A3IGL)P&G|EbVUd1aWC@!`f<<yM6Pn##T!u&8
      z>miTsXHv(DB#FD>Q_i)pQ6sPwdkOV3sbqFesP^{8gxVl^5Dhq{@N4U$iZu@wJVLt{
      z6y7Z6YRbY)OEv8mO|3vGG0Gn&Lf`R8EC_y(L_8jIEepOptYtHq5>A5^FS&eRpWuc`
      zt|M_J3p=-z9u!6d??x%12Qg1mk=kezI{!`~H2=&&2j&}4EHc|d-JosQF)Ahl?0vuS
      s4)@KZ6*LXHCc+w`ZjG>Rxc4hV3mc_ovqT?TCi*6;VjDYf$}tX{A5qDB^#A|>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..887dc9d13e2c2e0ca948a10a8ea9a1b1877a0055
      GIT binary patch
      literal 514
      zcwUuIO-sW-6r9&KO%qeA@#|dZp?Yvp@E{cr)`~(DA*DTU<I--4o3Kemf0ie~gFnC@
      zC2pc9o}{}lZ{9L*W_RB|Uf%#5V8=#<a6DBDHs=rgkwy9`%@a0{1dC)k6Pn$g4Z_3D
      z<u#ASGpXY=N#f2>%QP0}gV08ez?K{*)K8?6`6;2=-5n8X{p3zG;1HZ2XBSnhc(C9R
      zwz@%K&tk5oEX=i3(_S&x3ZxP@i~EVtLq3TG!4Hy%$0M#~(SIM-@|nyCy<o|E{ywuu
      zaKmJwBXJ=MN4He(7hVMKN-3fHG0!rQ+1Mhq{|zEE|3sk;^BE`>nQftN&^Fx>Duw~}
      vp5J(Z`)p_hO@pqfutum`W2~Cq`;wuBwNkTQqK^$zeZ#8Q#5SBV#)0z*r%isL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fda3802ebb559480a5a4957124085af3785bd68a
      GIT binary patch
      literal 508
      zcwUuIO-sW-6r9&KO%tQlX!Ts^p?Yvp5Rr-pi=q%kXsJit#<kfJH)WIh@v}S$9{d6R
      zC~*_(!IN|s=FMB?&Ft>y*ZT*69c<Vr5%x!F%EtVWKeJH3OtOTHL%~8hiG*fX$0xnr
      z*4YIQuOq4BNs`2^{!?-<)5u1Jz~&q#R1c++*%6`K-W(7r-Q-Tx;1KMYuZuDkJXr7u
      zjdqZmvzV(9>t$N1Q750O2U3a4>BCUyJ|D({;0H;_;{n$)?`MaVERreVAei%(zfbHC
      z++H%(p*WSfpId0Rb0>m#u9VQ-n5U^oZ8QkYe`5%Xe}d42`3U5T%(hT9Xq#>iCBp!F
      v%dfq`eKoX%MT4%Xux?PbZn0!~??;9@mJ7{Ffj(AE^$jay4eM}<7zfTb!47?O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..794f2c113b1689fcbfef262f058ed63e9c080bd7
      GIT binary patch
      literal 1467
      zcwU{7T~pIQ6o%g|ZMQ82v`YO#rCOyQLM&K5#Bqdz(+)ux(<w9FrD1J@F{x=P>c8^J
      z887?+{wT+@No7Xp43qX^pLe(CyxI38zyJLF1)zdWjtGO&u?NbD{#pN`81C1e=O`zJ
      zPz<xz6|Qo)y{j$f>-)NK)HPkJ=QtKelp%L%6GQxkX`9|lhHOEVrHZB79Yyn8)9!3G
      ziY<m{%{dkcBpIgb`&+feqk7}5dU$Z4rZ9oYG-60I6h?JlJd%Dhs%eWigO6?DHubh8
      z7&5A3=vGU2O}QT)M!l}tXQ-%`hWJ1ECS?l#mBtrtz>sKLj`2YiHUn!g%#OHuu_d$J
      zklAiBER3ia9WA9f1J@9*O&K8NUv5bjGNc=}E!>)=_xplUO`UsL_ZU_}=FD&HY77&!
      za^x6RL$}+5wj6Lg5FB}i^{^(}mUH^v?00FZ|0Kr(Lp7{XP49bEhL}%|(irpD@#nE4
      z=dn1(JodW!H~pCA5eSZ_3~OOcG~xDy?J@A7;#e8uF50Jo?$Rd|4+O_5!$w$>rfc>r
      z;ZG%bra3moh}ArGg15|v3OUfMA%784F~n)*wA(|}KTnp*bD6{sq`vzlQ?#ath|!l4
      zi(s1e^FbkIaK$%D;wmy^Bh@ur9~#dNjbBkU^&?R#OW*8y-#B=T`@Y$r?#wqa^o`(_
      z-*X#xi0?4zN0_6h-6eIOI8S^)d`Nsmd`v75i^MYV32}+25G%xG;xl5ExJFzjK1cE|
      D71Mr@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/PBES2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f82f244bb5652153bcbefe4b7a5a78b24cd3ada0
      GIT binary patch
      literal 4591
      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
      ZQvQkZ4a&bzzDfBv%70M)lk(rF`5({3yC(nu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/RijndaelSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/RijndaelSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..225be83f675afdf7ad55c9569432f3c2a6560b02
      GIT binary patch
      literal 386
      zcwUWA!AiqG6r63-CXLa?2>ybt2Nyx{P!Xgc2*HDq-nYq;Zit((CQ?7kli<M*=tmXb
      z#vVM0yYOb`?ac6YH`~uI0OvSz(PKEtb;}F!D%LzTZ*^1gB9%N<^-3E4s0y74Sthk|
      z;V?}963;uh%|zWu!!W#7S~WKe{mFE};LNK`dKfWyW|!)tkG%i`1PsTM*yi$5=$t2w
      zQ97U9Ti-ZVT0XSTOKG0OvXl%_T&1F12%{|DHJxUqUTDDhpU;^w_(|28RNg7;4}aaA
      zSwDRcjSjmQ?E!{VU1C?%WrU;C$P2>{`0qq|*r)0f0vGUbi32(XKSGQVb}@&YGWrIE
      Czg`sp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/SerpentSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/SerpentSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1791f9f0a983271571a49edab27ac6f7f302d89
      GIT binary patch
      literal 379
      zcwUWA!AiqG5Ph4b-5R6Oh`%7I2N%JfDuNU|1uv1_x9O5@iJP$9h<=tQ!Gj;*M~Snk
      z;7y!`nKv`<J$Co=>-_`3B~Ca3hO^3aVk4jAvncIL>l(2sl_+()R#p_sw#vAo)f^$i
      z<S*{LFSje%I%OF~*V<@z!!XDu3x;sstkf8L41BvYjWED|j3Hu%(=7M4qL!u-g|pgJ
      zGp|Z=ZPb1DxK#E*E^Eb*=1nQ<g|yoDKf}<i^_C&a|M!*|LsT@KE!Ca&^5l1Q;nnmv
      wbZz)xbcPsF=G09Q5CZslI(|d+N-)3y<%lY9MZ_r%3B@}a5*+m=$2~Ls29vW~egFUf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/SquareSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/SquareSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d5c25c84311728c868628b753fd75594da488ad
      GIT binary patch
      literal 375
      zcwUWA!Ab)$5PjKhyLDaLy5c8@tp|f(PZgmQJS|>UdQa1^O<A*Rnic&lPl5+Oz>g9q
      zt9TSAF!N^Sy+@Ld&$o8~7dVO#Fq{;o;al-2p18EnwX676DlT=sQI_Wqjj$@Ob%c;%
      z@)vc{mib!LPFaTDl{VU4Gjzt2B}2HV)~b&^TI^cS7#-{<=ptb_9%tT_m%<c0cUGHX
      z=0(Fy8+F^<uavzLt5PwfStUie6juBGXBfJT-Z7kJ|9Z)cA<nDDN_C^XdhokB_geZF
      wx-)z*I$iWAN7PLb5CWpJwEv3ug<yaK$}v^ol893b2qoV%3^8g=4qImW1zEIOx&QzG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd1e9b0cb6a5f05b0075ebde532f4331a5f75a7b
      GIT binary patch
      literal 460
      zcwUu|%SyvQ6o&ulHOAD|sL)4f1sw{Ci;7UZKry&Usq5)<NT;UBFiq7ymMg)958y+I
      zC$T$4a0brh=bQg9=i~G39Y7BUb(9!*l&tt%Jc?&7?b>81pG(E1HZx`U$Z8X-tLyMq
      zt?#Wcq0x0z7|#BBv|)`-qCp&`R%f%tU@A<eEJN*FCpx=eD0jMJhRS6+RSvcoyoaZw
      ztQa>{O9$IT$cc1OM#DoDI}F`UkdNfCNFp8*n?(KL@TZphHUpigyVYW%>_|*v#o!02
      z6!BPCo%b8DlFjszp%?sf34I1POjlN_8=d>Ke_@VuKUy<=1o>fftEf?|Q`e`OQEnXi
      lPRnVvefJgK3kfAODY}$_6L>g9iz@FM#xDHAYOf&ozW~XZcHIB~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TripleDESSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TripleDESSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0feb2cb07dc8a06455296cf356aaf594a0b8a237
      GIT binary patch
      literal 387
      zcwUW=u};G<5QhIt)20o9(jeX;?SO?ury?X&V2W5$b$1ghbrq7xO%Oa56A}Xtz(XO<
      zfq@C(lkWbre}6jr<MZtuz&TDlID{xKTd|Xm@=2uTxo#@4OO;4<y;Vl6jIIlHbDJc!
      z_TUnxf4P@kxz1$WC_@-r>QXmXgkCgV6WnE$sUb#$QPW{FwfE7(L4ZC2!f6y+uqb4i
      zi-av@zOeVku`bnp`>;`FB{zj4gmIP1Vl9of{m-V`Z1tWni~swc1;J0M)}-oATfpS^
      z;h81yAMx<8i#YliaQ3*H!(jz@vvBwd|AnQ4L(V=|;DU{F9I*<%Z5ZRYgG@SS_yq{@
      BUXlO+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TwofishSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/cipher/TwofishSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e2d48984299949190b40e3bf8713013ec5886b7f
      GIT binary patch
      literal 379
      zcwUWA!AiqG5Pg%TO^wlL#9xrqgNtBKl|m_a3SLrr-==G_B_?6JQTth*1P^|IA0_Ul
      zf;Vv%X5P%a_t@RfulElC*EsXw5H9knWgGs)Us$Ggjjq`y6D*TWArxCY*AH@Aq>c38
      z5=MV<=Uthtd836Q3~ps5^_0+yM@xb`uh(LT1A?dbrapQ&4A4hFIFA!+%SvA5EY(U@
      z`NXQiL{{RyeOw8(;Hy#)qNL7vx#UXP{%7dwLT(9h^1ruC2!2|(Die3o%ERB)l~tR+
      yG1rC-GN+G$$)4%Pa0~*x%V_up|J6VTM<)BG0yl;@#<4-co`w)7oylp(jJ^S$6I_Y_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14b129724f9814e760bc88d42b845765fc1fa488
      GIT binary patch
      literal 414
      zcwUuH!AiqG5Ph4bO^wlN#FHm))q`seo+^R}iWs~^df&t$ZcR63yD8?gJP98B06$9H
      zjh;jVcVOnt&U<f|_m9^%010*icnrK$4WEgXc;ba_7pCU3g7_n~{9HA;T;5Q7MT)dA
      zwZ5J&ssR39qKpbn=BJ2Za4MBFXAHgZ!IZ(jsPAcrH9HX9nh-s#N9ZGB*d3?Nn^!`W
      zJTqFVa^ggzR4Te{<~iv*kypeJr*$E!snF8(-=DsDkV}Rn{pV#9hA^ueUC^a;K6}5@
      zj+`a-VNZd3%tjvrn*-aOz_SPl4&&hq!e<LTY}g#y3LINvf=!E}FB(SJ>P)sfX8Z}?
      CW@<$M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..174f53e421fa1021cecc7aac851d987c28f604a2
      GIT binary patch
      literal 386
      zcwU`O!AiqG5Pj38jmBz=KOo*zw2Kr^iXcKk3|=a|Z`MJ#rrEOHi1{o}f(JjqkCINJ
      zM|*JwX66m=J>J*%$0vYO3}UnhqsO9DGyS4pmGRXgI5jh@p1D$2MVZ;<gpKEL%hgz$
      z;Cyv6U*s_&!pU0UUlKz1!WK4M650ocQ$lp@9ymc8n>}>UCG=BU@Lf62*x&0cXTomk
      zjLxUp+Zz8qqwr*xgtPP?xz7p7#FgIg*w$Wq>#4)q8vBsAsEec}rp#E-sKG$z=p7qx
      ba<q`hOk@Mch%m&KT)iKX?Cr*4r(yP2V^w4Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5550f50e1f810b7d10e8e93118656efdb83065d4
      GIT binary patch
      literal 422
      zcwUuHu};G<5PeS5CWJsCh>?M<Fkm9YRKx%h2obRab$5bET~fPp9Uz~@gv7uH@KFf6
      zbVBODopkr^^xiw&*Z0RKfD}6cJc6{64V|!O_DW0L&WxgylG7*N(u-QXJc{}Fmbcej
      za?Om=H`7@iz$c(9WjQZ3H-AM0y)z+&IVb204n_q2rF!5Y)(FC4c_=~$>oK~B33dmW
      zbEh?v70rznvKl&BKNFJQHPeFYdsft(Ajwq8>Jihz&C8{4#$rxzlKuO;AwiU@Mwk3b
      zIH$c;#3N^meb|TKg4pb$XKP@mQ+O5u!C?}<BYLyY!-lPq?ZB}mrr5M7{-vRht%b?<
      Hf|>jP)17U-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d176027eb50e02ff3d113ff72c505ebc4f115b13
      GIT binary patch
      literal 392
      zcwU`OK}rKb5Ufr%SzV(Me~_DsW)Kk%1`i4Waq$w#eKNLY;$|mIX4QR`C&7ac@KIv#
      z>QOz|4c%Q$RZ;IBuWtYjuo<I4IJ(OVHPa9JNf}=*f>SfY>Yht=mbu4UyPS^Lcn+6b
      z4z&r+mlyLz79%3;|0?}SLTC?cZo?^|xxF(cMCa~?6Ev~fK?`j{H?=um74r%EYdy)B
      zu$4Nav$6KJ!r#v*Ozo0zoc=5M2_YG|!W$mi%B}YoxnJ3%2Z@ZTNLr%Gj0GLm7-;Rj
      eVC7kk1`?TxY+w%&`dE{z^F@-qUR!L`%<d=JJ7%8%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b2e45be7c9dac8974bbc5c1cfc622968bd6163c0
      GIT binary patch
      literal 410
      zcwUuHu};G<5PeRQri4Hth=q-<Fx2hPsfeW#2obRab$87vxTH?yx`=!h6A}X-z(*nM
      z!h~SpPP%({dhea?{p0lwzz_#90)~F6*L*G>#S@pNS=yS<CGiJp_(ZJi=$e{K(qx3K
      z&DCOA#RwVrpPGWCA^TIr&^}XI*>i?g?_|mlPU<`AV2dG={z`%two^n%84i27x8{}5
      zB`>T|x*U5=H&>c&){7aLTQRGMA<Jtis;Mx_&)>_?-m4YEAphTAV}_)t*GAHX@-|1m
      zvijZ-$8dkZ2Xh&r?P~0%5dw#R_%!RhAbEB$z>cel>%hPfhuC!}{i30Zy^YEKhM9c=
      DyHjVm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08f86a58ee78d59f14d3f99b2745e82c94a0466a
      GIT binary patch
      literal 383
      zcwUuG%Sr=55Ufr%SzV(Eet_UjMKk!wNy#M;5En0z+$UqB6E{0yGAr(9c@jMM0e+O&
      zyLvPSyP><QsVeI8>-_`3DS9y)gtLddP;>pPUzG9XGB`Cite&`3BfScP2^-JhhRd-w
      z!TIufvCLvbgp;+pza)hAmCbD!5}F5xQ$jRy_ne@K%??^<6S}F*`L<Zh*x%_{#)RF}
      z8J$hFw-x?<M&Z$}2p8%9V_y=Ii7UL}v8}B3)-wB*G4>&0Q58u`NSU#q^BM!Kqc?24
      c%F#d~Gm#A(BSIfra&>-4vbSrCotoMG1~Q{!8~^|S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc3ec363d4f0cb34107de04fa13236acb5be0273
      GIT binary patch
      literal 1080
      zcwUuKT~8BH5IvU`wk!)s6{vvn;a5wM6#)^7hy^r_jWMpN0iG_~Yq_x9ZMM6H`YU|q
      zS7>5{h|zcdi*G&)b4vqJ;K6;k_s-0jGc#xB=bx|N0Zd?7LleVT$qmgd{*LdMwqL6R
      zp1EZUb6eER<rV9>s67*|@Oj|*xpKwP5M?kg%&>&*i{RfRhL(Bh%3y&Zl1vpCqDx*;
      z#L!B1QB-wA&}N_+219o;uZT^DyCu^KeCd`lDx)(mUGX9;ZwUW2-*5y&Jnz}uDR5sZ
      zyWxxmo3hF<p8ubjG7Me9Em47nTM&YwFPX~!MR77*rWFiV40NN1N~*~i*qVj}!{BN6
      zImZzt?pOg4uI$*N5=hUDp^t`fy<kYCN$$w^qNt-6ZHn`nf$JD#=&(cI7p|&h5rEip
      zDm-jp1UE=cpSwk`%rI~)R#gyQ26g#EU%aYEGdgbJj)vPb$;BuGNu(HBU9l5nYk?r~
      znv?6<R6$1?cQuSL^q<kvmX%H6D=7_(!=#2}^^M@$jodYrJ7M6y3hA<HiLz8-<(@Jy
      zjRy<{FK&g^;3Zcb5dr1pQUwhU8xo$>s#b)3s=P&(Qew_P2J_T6cS;^nY?jqRoY@>5
      zGgwfY^_ZcTN}Ru2k&W;zL(_Vey0yH}x5ZPbmML-0u8b=N3{wjcsIQ4$&1j)hBWt>D
      z1KMajwg>%F9nemvPB$<`z-e^Q%Q%Li6PM_Yq6_f`#Rsw!c5(DGF7KlK0KKd6t9$7G
      zL5_iMu{>Qv=`XmM-pA<f;cvR`?H>M0NA@v!fSJ`a#b@{M=;KN45ya@6CH6V0lR*Lt
      j7{Vg`jCuNdPcVsWy{Dezx{aO^v>1yNrQM^r;#xWa+V2Nr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e64eb900b285fdc645cebdb8137f45b694e2de78
      GIT binary patch
      literal 1589
      zcwUuM+fvg|6kP`bflz^#TTz4}3cUc~Qa~x7+^tl`nKC%QQwV2DprlNaBK;J8!l^HG
      zlo>Ctew5=rX{lUV9rKWVa%S(f)>(U>{QULhD}Zslkx|1imNK*Ik#?q?tGbmtbu#La
      z&eda{Q&(1#Nv>Pm+2FY~O?NU@E`D;FmLV~WRIRF1!caeFn1-{!P#X+wGf2ys1FoPJ
      zjULpYo}ndSn0zyPvd^t8Z9mN!e2I*%rMET95Z|Ru$vHG^hKa=gijFa~b2CLG>)hm)
      z=I~+`!*nnqfK;37S<7&8s(s3Jm8z2zW1++?mNGQqDXZr?KXr_ZY0L02ge$<r%`+`+
      z9F)+?1v1(hdTt@R=_J0CDx;I3?|w#EfJjo%2EPa0ct{4P+-<Tb7}{HEKo40>a0)um
      zD?ILF=nC#F70;U1%#@mREW=F2LffJb{T?)<g{lP$Y5SWe46WBzUMpc(4_0&P2IX>E
      zv+a_nRlpStAtWP6BXOtBgD@h*ZP<&pZKO;w5o=cFggP6%&#~Kt5vVdo89FNq^I%LE
      zr;u^0rcU#CApD#VW=%5Gky)Yb223$@>zX;_1gMP0CP1bJXwU+-+W;?SM8R{0j$mbP
      zy_oeNhB<~taRrvOtWASFd^3CN(8_!e$GNuV&aP<Cf(K9WOvWpQ{@eEbnX&SGQSXn%
      zEcmNWulJs1RAd~Jw1LDw@hMj_j@@%q>SdLw7k4I^$yz#JGsI=?sd86G1tj`Gf*_t+
      zTG3B}-ZFhnQe+hC!UZ&ZqD2i9dMgxxDM*+>6RkYOB#I9xN@BVxqt#v0>0PK@T8paQ
      z$Pct#p#2IRJCW~byF{1oQ2~$h;Yb02e3_%!6*Nb+^YCNA<>@RUlz7DI2?mHk679Oj
      z_>mCmC`N~U#4>n+p)0iQL_TAfp@8xH<`uj<zGwl{vr@M-a)}r3yQOd8$Z!Gkc|vI<
      zzAn5h=^3PNV1?f6v>PW)8|XoTG;ENDw{%}N=@Ptibw-Q4Wt~whV#)O=N{W{W(NDjM
      T6|9oN0YYCROriU=d;0iqWFC$2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8e7c2577fe319438b58dfd75552f8c781ec6aca
      GIT binary patch
      literal 1599
      zcwU`U+fvg|6kP{W0;O_kxhg^th29_{1(X6RSCNX&l&J$eh4f4bEon_tq@Ti1IQ4~&
      zGUMgdk8<26E#=ngjCsgDIkWd#>#VbPe*OOX4ZtK`%V=PjN*a0PP(4;p6wNGTt&DQ0
      zaV5nI%F1etCwPo&Cbu?uVNKPnj9J(?%BE#V4C8eRYn3oG&FhA4EiyFv{BZ_pIg{W{
      zG@``?2bvh#qq@Pj@<;pJ+*bF~oWUK<XlgpHn!5O|Y)aOFo@1Df{)g@eLl-xa#Iw!~
      zZmL!#i($qW6<A7+Yk5<*3Q8`^HHE5U6eIrVHKHms;W<}NG@iBejFFS!W(d@P*)WdP
      zw4SJ-RSRTvF$`Tpw$sb{E7>x7Y9>`Rh$JUG=yRbTcgg0Yy-h~>{Ci8y7@(~(q7&U1
      z6lM=G^!oOe$|p{%MpB7crfwu7{<yf1VHeuaP5^?4Vc>7hFmzlPdLf2k-B-`AE0oJ=
      zHJ7V6TL;{UG5BTph~%>F?fxOxEEfU@(#iOTyqczV==Mc#rbPU^tr&+QV}hZlwjdWC
      z3(uV7*{Y#YLnefkPlQQR3=T5MA8*DqnV_l0nB}E1Y8r3ZPcJo_H)q@5iCIze^oEct
      zwsvC9g$U*uTErMEtN9!?bLeXJ_JNuCD4P7jl^eU_ZWdj5h(|JBFbrRJ?y||M4MwAu
      z5}nXjzkNGz-3S%wDUvo4{U<)<N_xsZN3CnD)AnL$Vwt?D@ikox^ichIoe-!P25EwL
      z8fiuU3VO@*HARt8bOcIh{!EJoIO*-A2uwr5ELv&hDko9ALs1gFO&J~bnhda^c4;lD
      z27^E0IYrkwx_5#<;5kFD`(6q6i-BMX-eQ%b%@#CIwF~IOqRrD&MyT+J)dP$WgCuV3
      z7UL&Ea8L|~+{7|^im`Kec7k6JVklv<xOI-s9e22dnK`Ln8b8Cc_x;lMKrmFoLXl8f
      zh_4sVD|$xh8(5+DI_++drcDeWN*Xpv!y6iwEgFS)w$5;wx2iLYmsqkr3X|exLhPd-
      U#R^tQ;RvCx5vI`n%0B(ZAMR6;^8f$<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..815b3ff6a5f852adf38105980a85ea18ca93e1f2
      GIT binary patch
      literal 414
      zcwUuHu};G<5PeS5ri4Hth>3}<Fkmt;6|o?JP$QP0?rwTY-KI`u97OmlCL{(vfR94h
      zfe9fbeA3-J-+S+L?;o#k021s4@ECZZYQ7K;;*saNS(}P4a^g#B_;@a!#B5B>H7U}<
      zRQhJME(7>~i89JHnV%wt-nmrLTrhNoM-vABvYJsJ8+Nd4*M#U`GeQ>;!~QUJ-n<m5
      z;F-}<6(c7aq*Bpsy_%A~6Vs9y;<U;|IT2dA{`=E6b9v8@r2o8Z#1Ljxt#i7P&gbBF
      z+KIEoA?zt|kJ;#=XLDe?Gk6vO!ExMwLHKN;hb@~!TY*zcOt5WH^hLt}JFUrX%Zxt(
      Ds~l<x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b5b0cc27c83fcf7299e5b3ed7e06feefd6b0c4e
      GIT binary patch
      literal 386
      zcwU`OK}rKb5Ufr%SzV(Een7mbXa)(M6fZ&`WbqQoeKKjx#LZ3^XT|kbo&*m*z(<L_
      zt4DLO8@juis-ix>-ai1GqZgw=7~JQDTIwhLtc)+$!KtNT^}wYXFZ7F^PuO@4V=jl<
      z1n0}qYMsT12xl9Ge@O`KE1TPJO=un+PYKbDn{$FDwmWE{P3WdJ=i6d6V}GY-858zX
      zXLL5z-d6bc8HI&?BwVEb$bCsjCa&;?hqm%M*i7wL);NU3MO7p%F=fVr1~mp+CvVt#
      cm7{?~W+EFnMT9<f<m&v8Wbf7%do{EB4L`VJ*Z=?k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a7b461693d6b92fceeb4a823d5ea37d4d419b3c
      GIT binary patch
      literal 422
      zcwUuH!AiqG5PjRGO^nfM#G?mq)q`u0o+@4hMGPK{^uA4pxG~+7btC4pJP98B06$9H
      ztvv}nI0G|phWFkuU*8{}021u^=rAOOYIrGL#4FEryD&8`bK+0b@_SjTnV{;H+G|pz
      zg{k$;d{O!E82DOQM!6>QSH#dimr9xohVJla!r)!jGYYW55a`vR5M69W=pka*AEwTo
      zS3(s$Gg_)*>|}#fD!OatQ_>G&S`kB>*14!ALQ6NVmY#W(&kSejzrPzZgjwC_oUWvE
      zI#@?Make;weF!d?%^v!;`gR(jV-esV$H6<oHw!!1vNg0FIJLwC+ZIK?Gz_q_G}&D;
      F;~$AXZD{}i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cae0da3208d2dfd6f969492bc34b140022c7c120
      GIT binary patch
      literal 392
      zcwU`O!AiqG5Pj38jmBz=f6$wXb`cQ|iWi|!3?8iXzTFPGG0m2BBj&R_2_F0aKT4cL
      zkLtl0n3*@c_jvCguWtYjF^JJ39N!kD%JidtQpQ)S;8bQ<-E*a`ZB{Ha=TkPG!zEW^
      zZG!XFWVy;?M1+H1r9Vjs-7{O*a879N?9K?$g<EifHr9LSpiAhdw&1IBIcI;P=Q$I$
      zQ)hHO)85wj`x%8h`#?BJ|CRidkW5|a4UcW@HvEe`s_ij^L`GdCEm390f{q#tboO4b
      d_AEyWiOfVcu#X5MY{=F7BFWxtEVdeE{}ZRbW?%pS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ecb9f067e32894dac9cfc7bc9a0d5bbef48fd65
      GIT binary patch
      literal 1889
      zcwUuMYjfK~6g}Izm7}PS*m<^rIuwc(yA>_aK%KVaO&TYKIHb7Yiz4qhO68T%qpkl2
      z-^#CmFZMuYTKLM3Vz?{2cAVIm!Jg6XYVSSw+_Pu(&%b}Z1#lNXDLBV)yDB2%(0pmW
      zHY~sHg|2aEapMKA8zpY}Jlx>*RnrPxzrJ4c90du6Oi%d9u##spT%5Os9X?_>pVfC6
      z5=(A{t2mD#4Hs~c;Y!gKd@HK$bAQL&cQ`|;=vt<;Yx=faw_hg013O?aivNpbfnk)3
      zDpgqHg8OF3TTu-6vqgzw1l)>zJFFXl$1Q`hOEebrV*kbnPhEL!aWAx85hzG8%=Up<
      z7cWi6uC&oQ2?|CTZuB6>;T?DxtzevCynlHGlMEAaLB|wTqZInKs4hmfQ{jFR*GRia
      zyb$gyks(Dg68u3%#RR6M*dH*AwYxr+UC?(`+`x>248zs#?$iB4ZiN~?!cB%`m4{1?
      z8PEx&v-&ZN_+>%GC-_vsEjrB;TN<*^85GLjGHY~>qdn<u3X)<@Lms!uFQ(^lQ6W3_
      z<9g~<yZIQx(D0e8mJHq2riu|vlXs*L4AW<wIQ9PCDDO{#VJ$nz2d5;^&jObM&uRDy
      zUsHel=g4$|6KBy<yP!W;Kvb>`#u~;L9%^`m$7DrPbwyZop-8SoR^MBcy9*i?r3xDD
      zE;v<}AP#CO(pZ)zSRn&t_ZIuvAc-|{UL=CZ^ISjVm18EN>q`rU$-x(6<di04$Cjo$
      zz9|BSZr_H)xHnMMf!9vK7Q;-hD&0%gxnN0rM?|+5o=F|HHI$?dL!`s1>(|Us#SfTM
      zu-oJFR{Kf($Z*{iPCetBuVmvv#`JlnqlJo1X(hGfM!v;YZTU@_>i5aHBcT&BAR>^z
      z1pVnlM{9*vpVP=_yfE8D@^_k?gGx`8M&L^dox?EAv{n#}mtu&^xIz(E<2flELkZfK
      zS+lvnk$!_@?k|k}c7&1g5hlv1sV1)H8u+k*j~ke6;7${F-*xJZQ!X%1I1eGsG=;~w
      zMdNV17o)ao%h|n{b^>1z!;>t2Atc%8az2%A;Qkxj?9zEabkgPAADCyL=Qj*ZEOjZa
      z62<&k{8li8HLCY5o#qqhD8~FUt$H1P%e229>$OZwpAbR<8x-4Rx*0P)pt<ZUpL$AU
      vzGrA)=T}@h!e%-3tcmiweq=k0F2_~3X)IxqeAHDc-(iw(Ghuih=k5ImjCt45
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d66c81e6fd339907fc55817ba4d08a9541c90e15
      GIT binary patch
      literal 2889
      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
      Chv4}D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d46a1c60ccec6fab2d0ecf07431b1f124d1551a
      GIT binary patch
      literal 418
      zcwUuH!AiqG5Ph4bO^wlN#G4my)q~p#o?5&JiWs~^df&z&ZcR5~yD8?gJP9890e+OY
      z+j<iPXJF>d@ZKBd<MVw5V2FbN9>XA4HJ^#4c;T6DDpT@VM*Nu?o|3LenLBE3NRbw%
      z)VK4h2;ejDKUA5fA0md%SSo2Q8Cw0534?!CK2jH348dY^CqxU|5!#3t4*Q8S=Y>!?
      zPmPu;A30Sok&5o?`IPj7m=?qkCuJsziO|x`-%H;-$pyoC^55S^3}IT<I-_gpjE;Wc
      zojFq+!+rx7%w`)MTLU{?z_SPlPUG$y!dDAD?ARLG4h$@Dh+T`K4Glf)txfjV%=inE
      C;cP_!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..327a65519e0486c97f8b730bb429021848dd10a4
      GIT binary patch
      literal 389
      zcwU`O!AiqG5Pj38jmBz=U!XS??IMa7#fwl7gO^C}+jY>bX*R4IF`wm0@ZbmdQPN5D
      zCiLJ8%*-3!d%Umjk52%{7{%xiP9KU&&Gn0ZRmRt4aB6N?J#nov_9Yh~W8*p8a6Qo`
      zIA32c$~;CyI9j3nD<SkRY+=JCp}V&~B}7;5o)dJjK0ptB!Z5W3-&Ttm`#U|$nXsKY
      zqw}fuw!y#8C_LI{!dd#C;OB%SbCowdv5ncz3huZu$1Wr=nj&clDl-;z(qf=@@Q$@N
      bIXXyWCbEG;L>Oa3uE7sU_GW9b)iQ@mMoDFb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..408fe816246ed04d9aab16d2f7240ba3d6243027
      GIT binary patch
      literal 414
      zcwUuHu};G<5PeS5ri4IC5EBzyVZdZyDq^VwLPRV<-Q92sE~!&ory`%lgv7uH@KFdm
      zFd>A5Pr7^Od+(j@{p0lwK!V)>9s@5_&F5k*o_MaCrK$KlC;mVU&mL=`>6)5LQly2c
      z^wnZn2JrtBQLf4S6fyM9q>|>Gp))$1GWe6~j{4ZJgH^jGL<gG@x`-I|Myd1WrBDUW
      zjFzexJJBGOif-z~jP$LTmBbLIRW8b@(9-qapT4=5D~2Tf=VfDtFso{v(}i?C`@hqU
      zoh1%nPl0>PMi)Js1KXX#vj_-|;{FT5XA3=S*&NymoLFLlZHuBW8U`4)COa)N{sa|^
      BYJmU%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fa94579f18810da805f66b79497bc591b9418fa
      GIT binary patch
      literal 386
      zcwU`O!AiqG5Pj38jmBz=KOo*zw2Kr^7B50U3|=C=Z`VP$rrEk~#C(<~!Gj;*M-?a0
      zqrEr-GxLV`9`9@Q@d@A*gBUHs=)Ne`T)*g7Wqh>^PR$LgN3K-%RBF!|8_(gItBE$j
      z`RZ!1%wt4^ll8(sB!uqR7B*ZE+6RYILUifwI6)hmJ#^3|^ix~#O}Ut{ztyvx3A?E?
      zI-hE9YyA6+!h?M#oTdNBeNIR+S9-$}TYK%Trw(gt>_g(BE|Qj*GGjrb1_Pa=cWk`L
      b(Ly3KkqsOp!Vp_>^?pdQw;PL{hS~oHh)ZNL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4621cde694c1d428909052bd878cb5bf21306567
      GIT binary patch
      literal 426
      zcwUu{y-ve06orq|v}r@25X6eaRv0ivWh!FfPl$*mRd+YN3NEP=xd|eV#e~Gb1MpA?
      zJ1`-2z?SYk*ZR(}?&sJ02Y?}VJva=fsjB!wJc}2e=(;F#zDS5aQOze>78zY#$M;m<
      zk|Hh2T;DB=%!A9o*ZN{gG?jl%44reSWO>2R8XQg;+{=7UUGx}wW%JXVRz6zT2+&5r
      zus4WoJkNwmd2A4sj;*gBNktFUaz=V0W*ISrQJ#owDzvoo@1t8j$`!*X`u~1o20zX#
      zozRW6QTuDjV;hVEn4Mq`Gq;V7sh*k6;1~sXM`8C3{;QD=Hcj<S2Tlw)#FkOP4~9Or
      Kn~<G`48H+q<!)I3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f0d4497cb6efdb94917c0d93a1bda4e1fcfecdd
      GIT binary patch
      literal 418
      zcwUuHu};G<5PeS5ri4Hth>eA<FyI!cQxOXi2obTQ>h6XkbxEDdb%1;p6A}X-z(*nM
      zmI<i?chcRv(|hl9U*8{}0Qxux;4$=aRq>g47Oy<h^}>{VmJxrVnvY(}N4cEdQGG*-
      zv@oT<oiB<2J_FyVN-5K1{)!k{7g9-c$<XMYj2Zl^@`2jeVhGIoPKXA!BQy~)9Cj0D
      z&I_S(o*FGxK6I*1A{E_N^9kvZm=weiCuJszvCz`Zzf0dt<&xn%`R{K-hA=HFozb;)
      zMn@ZXXU-JIu;0K1v)M$;*1%2!coqS{Y21EC_-3Jp9a}@&fu1Gyv1?JZrlEtqmC62!
      G8UFyDd2CSt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4ad7fc780bcdcd51112ef2921e9e67ab8f99bf2
      GIT binary patch
      literal 389
      zcwU`OK}rKb5Ufr%SzV(MU!XS?%^-@Gh!-IsE?yFHpNy@UxY-GlS#_V~N$}tUe3aO`
      zdQ=Z~Lw8qGRn+^(>l=V0Y{qC1PVVwT&GdtQQpT5y;MB~py5~}j9^I{7PKRtfhbt}z
      z+63pz%lRUU5fKi5RsJL)w9jmA!#Sb3yEi687w(1=G_l%23vEI-wK-oG^9lQro@7ke
      zN}bW!SbJOH?`IUIc1bu*{}a4VNQSQPh6lDX+x~;wtIV+j35=>pT7t@q1s&HIXzjmX
      d<ynpf5}Ao?-~bVNSd**sMUuT<TWr+K?k7$@WsU#<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/keyring/GnuKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/jce/keyring/GnuKeyring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4aa0694df0f8fd6b9d0fccf5de355186b4734d88
      GIT binary patch
      literal 9345
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacHavalSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacHavalSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5647594400ad4709c64496b259d10eaef5a8c310
      GIT binary patch
      literal 376
      zcwUW<!AiqG5QhIv)27B~ZNvu<5v!m}!JaCD2+~9J66t-rU6L(n64s6AV|gm{-~;$j
      z;%xQcMQ|5p{@MBdVfN#5{SIJ={Qw@raaJ~bA)dtxm*%y$6<<ijmqPN%y^s@X6ltvk
      z_zXvXqD0=zMQxQ~=v?Vi+iQl_;B?C1-&S+g#TG-D6MCMzi6L6pj?hNLa4<;ROkRjG
      z<Eb^e%*M{xOLVCon&nKHM=>iDL!4An6jNcetA8GSo9icrljL9j7}FYQ)flPnv~%}=
      zH!qwWhoIHr4x`&fhhjk02p%aQIE%Y0gl{B0>`)9T1D6DjuuCfX#?ZswW=MZS#$W$W
      BSwH{)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD2Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD2Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f87845df244880aa57d6a474609dcf9e011848ff
      GIT binary patch
      literal 368
      zcwUW=-%7(U6vn@F-CAq4TJZ@)n1Tk!b~O=15idG#D!b3p&}H-=u@!wRuLLiA03S*`
      znSyuX37mZA<o6wte0;vW131H;2Z!MxuR6XGkK&0-^W3yGUrEJFA^Gi0$l3KMZL|mX
      zFOay)Of;=B41;rB>Gp!5H$0j%xL0+id~7iIOF~b|Y!sk}%@BQr4Ew{xPUMBCa-OzE
      zSNYW1qC{8ft}7SH+>1q_7~-UsqL>S#ZT-`9+ogVBI86TWhABgk)}4{+Mq6+6dvt28
      y^dWR<*kH8!7*O`8n!q6ic*n8-ir|H$gDuJd?ZBA83ARav-xwn7tcUEb$@mNB`BcOJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD4Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD4Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7442b2e3e193511f653f93401bcf0bff4501ca9
      GIT binary patch
      literal 368
      zcwUW=&q~BF5XQfByW3i;)rwCb!YXJGx~COE6!FmYQrUYp4c#pLM{GqO%ah>22k@c9
      z$trjgCouVD^81D)AD?gU0M4-I!C^Qk>YlH}qj=)dJhxrLS5omxNPasLa(10$t@hyl
      z1rm3ei?&mSVRWu*-CZyY#z%7o_o~U2j|~QYN$5$HCjkc73^7E=us=@iL|%%z;8|yM
      zT}-VlN_DO7`f8!fy;zirAx;}9%DFJw);~?RTj~df!}K3-m@))e(;KO7wDm^6N2k_G
      xA3~Rg4MuB-5oM362^>;@cO3h#2wq4!*rFWJ4kQFluuUrb#t>m=J!E%H#$WCmRLlSX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD5Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacMD5Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2b04f198813356eadccadbbd00025507864f644
      GIT binary patch
      literal 368
      zcwUW=&q~BF5XQfByW3i;)rwCb!YXJG>}f?1MLcx9RQ8@tLpMwR5!*!{%ah>22k@c9
      z$trjgCouVD^81D)AD?gU0M4-I!C^Qk>YgvfN<49Cp4+bBOR0DzB)^*qIlW1;R(o*&
      z0*SlIMcXOEFuKsS?k*Vy<D(gad)?&9#|DGHAoQfllK=y3h8QAb*dM2MA}>W<@T@bs
      zE+*C%rMg!4eKl9+LCj0V5T}h4<xCiD>z}6EE%YP9Vfv3ZOc;W!>5Wvk+Ipkkqf=|8
      x51~uL2BS5^h_Xjj0*4gf9moDFf)|nwwkQX*1Lp)L*d`TzV~DV`9<sY8<1g_nRL}qb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1aeb2c6cebd51d2debc2a5f22536ccf0189c0578
      GIT binary patch
      literal 392
      zcwUW=-%7(U6o-H5x^>pNX=P8~&8BFWI1na+DB?xug_YfBY3MTgkJySnmREuoK7bD;
      zo=mR<!30izCw%$f<m2=09l#j79vp^IS~Pqm9>o)v=DDg%zLJXPLh_rLkaxOLv#as(
      zX<TU!F2mlRIMEl0sA^>xI%m4j^*KXpIGQuKmt~^5*kI@_2|YAq%@eZvXkjxz8v(;$
      z7+EjRM3M5iHo8cs_HjSbg}QC>g);YIktv2SDy7Kg!f4z7T)OpAKQJ6b|DI>c;KyZS
      zq`KDDF!&7|Sq*&@jRCtD?KV18J?bWKC;{Gn*nNfnLeaq%Ri94agun@Ul!9*zeQd8K
      IJ8Lrh0!SQO-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..472f488f3bf460c252f3cef043308bbe411ba747
      GIT binary patch
      literal 392
      zcwUW=%}N6?6h^;Hr=2>Et&a2w+_Z|uf^}07L=hKL7mjqFX2LXO{)jW8kL5~m;RE<k
      z;!SlW2qtjz-EeZ?=Hv729l#j79vp^IS~Pqm9>o)v=DDg%zLJXPLh_rLkaxOLv#asx
      zaa?H+F2mlRIMEl0sA^>xI%m4j^*KXpIGQuKmt~^5*kI@_2|YAq%@eZvXkjxz8v(;$
      z7+EjRM3M5iHo8cs_HjSbg}QC>g);YIktv2SDy7Kg!f4z7T)OpAKQJ6b|DI>c;KyZS
      zq`KDDF!&7|Sq*&@jRCtD?KV18J?bWKC;{Gn*nNfnLeaq%Ri94agun@Ul!9*zeQd8K
      IJ8Lrh0y|h-&;S4c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA160Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA160Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e2114629bb8fb2844a5067aeae7d2e7df5f492fa
      GIT binary patch
      literal 381
      zcwUW=!AiqG5QhIv)27B~HR2Np5{0@Jte1*V1nD7qiS)kRF3Fa36Sj%yV|fxh_y9hX
      zIEh|72=2h_KRe(4%<jkM+dF^}4m>yv$Em6LN<4}uF70z!6?`QXUkk}+cS0t!>FDx2
      zDYXZe;pk76(CJc?m9h-ID{XXj&CrQX<_zvlu~dC*F$5W*!%ZfJ<msb>?EqZ_42MzN
      zxbj?>lqZ$dCY>}_2eCHlzFseseGrRWF@$j;MLri+H}%h<TV;B~5XJv{%7npBirPwb
      zt6R@s-LuAkeuu_KvlvAeJ<1+cV>qM$?=<Yc!ha#@V283#J8(hZ7`vo`Zwv$MwI=&5
      G8GZrnmsj2Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA256Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA256Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5355c1999f20b6b15b8e18791c4087264c41107
      GIT binary patch
      literal 381
      zcwUW=!AiqG5QhIv)27B~HR2Np5{0@bjhBj01nD7qiS)kRF3FZO3EM>Uu{;%e@Bw@%
      zaT2|F5Zr;;e|En8nca`i?K^-=967KUPLsUmOYtmTxHPY2Rq&-$d?h5GJ_s34Cs*Nh
      zTxth4!^xj4p_7FuD`gmZH#*nVEkh?bn=#mT#X|M5!{DWa4%ev|lBbIfc0F|AF&qa`
      z<H|FUCp@l<&XaL-br9)XJ=UwaGEZWjDF#0(q{wE%=%)TTw5wFF8G`74PZ=|~aZwwo
      z?se<=t9#KH(C^UrXcnXBqDR@GDuhJ}aL)by2JRb43wxAZ+JO;)A@)gm-xvlsXiW}V
      G(*FVgf>-tc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA384Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA384Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb31def4ecc0f97dd714b6169d5177057de76b42
      GIT binary patch
      literal 381
      zcwUW<(MrQG6o&tF-8yS^TJZrykSfd|+d$Y5h9JAB-c)v<WueXJ+LE=RkL8u%#U8+i
      z5>Kl)UI->|@}K0(NAmIcz6EfFBL^14S)5gTC7#4Hm*%A?bH0*_uZ85Zdm*FQbZ|Y4
      z3hlsVIQ^3)bh;EpsSHDBqBC9IFtmd6IfH$hFI5*i3|>NLf0KwlIbF1{>!A&g;W!9u
      zD^Eoh^QbgBi^uiVUZ^wmP^}lrJc>oC82m7oBApAP>;7lcE)%_B2*Uq;Wz674d1a)!
      z(~a}j>18dz3F!H#2cy|WhpI!}2o@#4x$wJha9=4}*rV#w3JeJxVV{!sjiHBwMsnDY
      F{ucpWSMC4+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA512Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacSHA512Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b64fc623d90e7564428438975c77d0380af9ca52
      GIT binary patch
      literal 381
      zcwUW<K}*9h7>3_;-8yS^TJZ;nAXS)QVowuc2(m-<QrSJrLYvXGC2K{0mZ!lE{s4cJ
      z__ccRAeg|H_e-8UBp;vKcK{<CIj|VclDy_i@ho1rG_Pe<@TF9IB_y9d2pLZ&;pi$Z
      zwF8^s^iP)1$wHKsG7P;No$KnBp%a|X80@=Zq59Zi@KQpD>r@QM>7s*O4_$Z+$3fIs
      zc_#9N$Cc4}GH$L8BAu(pdNo((Nz60F;75fN*-RMS^go++mFhJ^5dH5fV+J=aY9rOX
      zZk@kQFB<_)K+i`r7|kwvR2}L<Sd;+g!tZb3zEQNWN7bbjxF#^fJ|*uP!vF`Z<gg|E
      EFY8BF(f|Me
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacTigerSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacTigerSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d995497a82f280b6ba6a125765a2b1c190822359
      GIT binary patch
      literal 376
      zcwUW=!Ab)$5QhJ3x81s~wq5ZFM67}a!Jb+K5yZplWlQgA8n!9h>=Lu0kL5}5-~;$j
      z;-q@;BACGBpUn3UlYD%>y#qMMUW9<*urLi@iAV9orG2hl#aB}CwUGSwPROY)l+9}$
      zA!IoC6D9I$A!?^ALuaCmc9#sT;qi<iysj3ii!FwDN$9Eb9b>exouG|`VSkwUp1c&M
      z;JLHf6k~7fW!k9wW<6JSD(0nPNV7_cawe?y`OjtOmimF=DErqt#xzD=HCCz{?cIal
      z#WQcGkD<}w7o*)qhhjw82mvV|I!U{)h+jws*r6EH30x33!Y--g8$%EMO_RZfOuqm$
      CNm+~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c56d2e8ee3a24b60b5d3042def54eca50ae7852
      GIT binary patch
      literal 392
      zcwUW=(MrQG6o&tF-8yUCw6Z7gW>Yi>?rI{4AYN2&D)TzaLYvVwCAL!^%PYYPAHata
      zPo~}of(e}bCw%$f<o)CI4ZtyW19%LhtZeu~ti&Ui_Nl53Ur5E5Lh`F?A@6c+i^`ZH
      zt#kmNVee0z=<~U#YGoNZr@GYj8AEG0nlktoX0E!}VCdz99zOh7L$t6Np^b=PFif16
      z7oyB~T3cOa6Zg2E=u+J@%bBvbVpb@II5AQbQ(?91zc2kd*Y^wu$-n2BFodaTtW=lU
      z83w<BBd4K{qA}nWquoY_YCzo>9wi{ykGn4jpDB9Sq8ic(oDeuhk5cr7p^xpgWM@sr
      EpHabJumAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/MacAdapter.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/MacAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08d9ad164d81d60a6ecf906cae32caf675f242f2
      GIT binary patch
      literal 2656
      zcwUuNYj+b>6x}xsopv&%r9280qzGu5LIaA579V|3h=hWq6iPvzPHxjF$xN6`N`s()
      zBKjBn0e<p>t|hItYpI|8Q7-qLiD{Yy*78H<KF+!OoU_lqH-G>0`yT*K;d>1cfg?Gm
      zoLn-O&6T9(Rf@iwT(V@cU|PvbrZt*1i@x+UL<M$kaiTF(v^BI>4avOe<dWlg*OBIY
      zUJA4kLZCn01h1e|JU$|zo4)Va^JQO_1iI4!PT9BfL@(0Ze%5wu{{w;D@$_bl439Xu
      zk--^(=(wAeI@-`}Ach_WjStS~=*2D#I|UB4jLp!Krsca{#lUXt5s2lapK?mR=~&D=
      z*(%mcs_2BkUIQ9BH0&4Hv020gv$V)UbnHX7@;Yds6S^wYcH~sKFfYC7kgMLbYnk~O
      z)3epOx*7EsZPIeAId*e{NLJJ_3jtJ9_5vs3FDambcE#&9OZ8D;SA4Jz?(+PSw0zaJ
      zb1RlC`nKzoGz<zHZ4khe>u1WvqU-rGTXT(J2q!cg7ufg0Tnrq;Yl^R=>gP#T6K~2+
      zCzEd|^HG5=>Ey`egga?FW}Y0x2j|9AptlXYgVR({*3QY2ug<({;5{XgSa{~DEJ>dZ
      zo-CE~oJ8iv7%sG(mp+q8bKx%rno23mj|_~0V$_&z#=cK_^w2#;kqV4fQ!PoW?Ad-L
      zc~MqI8n#MBX(dPVIhU)&!WGkF%h<gPw^^Bna{`CAo=7>%X5P*ct45@T^8zPZx-~=B
      z(VxOa4Ilrf(E2nDq;W~0llNfK^$Mon*!ilEI&hhETphix;}c{wTovePbTTlFYuuN2
      z%Vxfm$~mql$IX&_!6m+_;krOyqhYLU=d;r5z$~AavUA6A?>Pf^WMyC>$ZtT$4Ca&w
      z3^luL;8T3YW}3yKbh3foTioFn1Q}5frh$3IL5J^#MjaEF>j3lar(B0ap$@b4!%TxC
      zxwXx_VwEK?Dy`|H@0?@tMassoguI43ROlA@8YsXag~c){J`-=gTg^KyE}#-4q3$X*
      zZ}XIn)lSKPudYng4&>OzG|62HO_Hagk_X?Gq5q*z0V9<AwPKdltIIYvIHMvzFz^uf
      z30tmO#5{kzPFj3!ER_nKo+zhByl1u|z+G6NONz6+<XX?TWzUk6wtDxvH=ng(l^zCo
      zd)xTih6tkSq2<3<R6V5}J2|5YXzk+a2K^!&_a@e`Ju&nfc05O4VgvhT*U<kQ2Y#U~
      zf>-$M<vHLYzn6G=3VpbYL)_UDo@dO%Krnk1M~EI#4^B18ELUwDyTd3d#PJs3v;596
      z!CTml+X47Mc&rBA9TX#inJOp3IUhiduLmUx#Djn-v<F^?HXvpbzoKs)34y;bq$=b3
      zz#4|vaO&q;0-?JZ1U15=)u2(liPP0O(m`E7PYC&zKsvFCGees=+k=D`m|BkW#X5$1
      zs(3nMjo>ViqIe%4RFPE#6;%(BKNR?>A-6(ZZh9@ZF^pG>Z|69H$pGy~c3$N%J+zJs
      ze59vVapeaLY+zz`12eO|H`Z`7G_B&+Dn4I>^`~N`H_Kh>Y#nwRu7|0(0&1en>+mAj
      zY}$Ut1WK&ar(DadW|{HtA%m5==1td{H%*`AApdE4tpwWSA54{jGg}#8*v&|Kz~BS6
      z{9#KLD!5-oQEVvRm_q4a#}|<%n8zHS)HNnnOE88n@m0{63Le#@8x6GCr2vNx99+la
      mXcOeO%;;GFnFyV0kX`sX=(U=CgQtOa7yX|G_w!kR^WDFG!AKqe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacAnubisImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacAnubisImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd8c33c1adcb6c5791b38e15599e0c2f027ddfcc
      GIT binary patch
      literal 383
      zcwUW<!AiqG5QhIv)261;YKjja9&80&d+<~dL=c3ihf438?Gm>no3KqpAIp>A!3Xf6
      z#M$V@gWxXA{<HJV&&<c?+dF_MMgcsAgUmF1B_72Sm-e};OTLnd7eey88zC=Dlj`+#
      zQRM-AhW$Tb$1X)xE6dP3(?-|l44v_0!Qfw(OV!5)!=NPeNVJ|IIv7OgB4XGbC(e}T
      z!eo42TWzwL>l`N9sN1GUmAw~ft{CE^lp<dUt6l!{>DLc>%`i#+xyp<ooR^K2>Pox*
      z(eLuHv%nr`ez?QvcG064P<9HB6c8N7{a1u9Bt2|W4Cw_<2%KVzRP>Eui0#&7rzPVr
      D^733|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacBlowfishImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacBlowfishImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa2fb8251b28eecbadb7f7790ae8bd6b0b3a4a72
      GIT binary patch
      literal 391
      zcwUW<%}T>S6h^;E)27DMYNQV!ZdyghF1o4+DhNW<MWy@6bWEotnUE&_JeDiLg%99E
      ziFayOg5V6?`R;J;f&2OO{sCZ!T@Mb!AjxaK5Rc-S%krhD3|~maGa>oijgS|qd3w;x
      z`E^#L9$bd~KXIbZXQHT7$<R90xvtI_8vVhP!M!vy)y4)x#}IlHudO~B*bLA_z|iYQ
      zR?Ab7Cwx+sI#0%Swj1eO-PT#G%6k!~iXn`Q6zNoy+V<;Dx0>rE!(sIAb;b<-#MGr!
      zSK1nSzky?`!5(M}*u&^H(W2^6H-bY6@D9TE8~j&_4mwnQdVv!HhuESN{9x!}dnMUf
      Gk>NLX(O=yF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacCast5Impl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacCast5Impl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10db59be166be44fe7c36280d7afa73b77f0f7cb
      GIT binary patch
      literal 379
      zcwUW<&q@O^5XQf3x81s~R#$ug5o8rK_Rv#Bkb)qrdZ_fCreRIlf27%>kL5}5-~;$j
      z;$-#WK`;Z8Z!*7p%zS*ly#p9xFM!8zl$8x%inVy+(mdC;;!CM`Atb-Q6>=h0c63wJ
      zc>tf`@K2V|tA(hoG7P;7U21#D&`FMG4F05As6I9r!ivyS=`2HZuo<C?h+#iTohQ#l
      znenMLy3EGz;~>?gx@(HLG7n;&D~33&q{wH&XjlI{`u0(;7?SjVi;QWGY1J61u667A
      zt9#}QZ~z(}?l6ijdXxjIM({`h!AabIMfgI}!xrU`Zs452A+||H-xvniX-#%pGX4S=
      C_F35g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacDESImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacDESImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4010a1097a8bf4521f069702bf5106aa9bceac0b
      GIT binary patch
      literal 371
      zcwUW<&q~8U5XQev(<a7fYs3c-MXI3N9z0b9@ec@550T!tn<Z|^KembJV|fxh_y9hX
      zI9ok<5!{8@Z+3p)F!S;G_6}f-O%D#kZdSH@E*`}bm*%-{Dn6Hr7eey88zC<)lk1|+
      zJ-7@zf06{ArJ`<>Vd$OcQa7gzo#FnJ!9A~1<zt1xuLwO%)gnL#t0B4w8McP8?Z|Uc
      zW;|((F0+ZX^<!PC+qRe~b1!DOVu<2OihL@Jw)xMe+dSw6!(RNKB_<3(Qnf~^D{ak#
      zU$rA^#x`hd*u&^{(WB^5b_|CU;2lK%D}oo24%R3J^a3LS$5<y7eq-okuxzriB%?3n
      CLso$R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f08262006e855d2d6e432a43340aead9b7976c5e
      GIT binary patch
      literal 517
      zcwUWB%Sr<=6g{`Copu~;t=7k~Sfo~Pbmt2}3PNGjMWy?63^iq%Df1BhEEgiU@B{oP
      z@g~-FC2+{iJ?G?}<m>z66TmTc925whvCjR8coNTkn7qug*q?;bpNi1GyAff3I*Zy@
      zIv=UjL5a{>$R?DtN0qjZ2)n^T_Bqoplvdd#VXyNK{{E0q>ctPT3c|97C6p^zVHaVC
      zbWudjgM&Ju*$Ir79|=A72U()@*ve~x((*Q+j%0E#Mv){mf;be>P$bIK^TU#fLFg_X
      zYW_f+#T~?X63T033|9X7hel2C`dZ7R7l|~LY+U|Tp~XRp{2^4Yn>1#}%Rz;)%GDVP
      uya2Cz@CLWr@ZPcd%5?#2jIQmSvhoBC!(x@eb!=Ep)8Zz!ESKzE+n^tC<$THj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7988e67a1d5689b5b3c6f034828507df59487681
      GIT binary patch
      literal 525
      zcwUWBO-}+b6r2ahF6$zQ;>VFl46erNRgH;|n2@Y`z;G{Xg_5O9b{9W>mIq_v!5`p{
      zGPWD=ih0STubr8`X}^CyzW|(K*Fuiq4b_Z|`4fL(LHs&RBQ_2MoA7|$-SD70nTE}F
      z7(GAAWMrX0Xe{Luis?uu%@e|&zm$Eh=@(MT^pddO`Un4@PbhSv2T=lH)x`>mHp&Eh
      zFdx%F9u*fBs)TyWH*PHCYRGzNEY&bGsQ6Ne+u39w;(I;_1)=6g0T25;mZqO?7EBPr
      z(eknW9!ckMdeJNn#I-aQ<ptx|=m~CDDG_%<o+LtB+Y22UI!<1H3{|TplUeDqU~4St
      y?hH9yfa@K;!|`hF2iD$npToLFCp&9v<rQj%rBwzuu$gh{8E#=a<5G6l4(Jzor+`!d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..255c05e1d14fe587bf14f8874a42472af9f48985
      GIT binary patch
      literal 513
      zcwUWBO-}+b5Pidk3+p0?;>VFl6fm)R@S?^Gi3z&u0mHr221}MM*<FnOEDy%SgFnC@
      zWo)aSF_XM>I`7TQYd^o<KL8wI+e419H`a4D;g9@@iR5{f#cU!Zn{vT!ues<?XHl!i
      z)9lzofzVt?CM;zSDs3GScEW}1Q$s&fT4m>i-S$8Dogtyni|=I_gyjH5ER|3p6ouW<
      zM;_Gx9%_U}JG8A>#PygBvP9{zQ&&T!<;{FLlF1z(MUqetW5J^#Pn6AnFALTMp|g0W
      zpXV`7{6RcVguGBzU->H^STP~!Yb}#r#M4xozC|ZO)40f+&!Ae(TCpb+9!dtwCObjS
      u1Q2xhU*UJ_!5dayOrFE4LEqJ`jPeq7%Q7m9Ygl)jhQkePIxe|cTcB^M<a%NN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$DES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$DES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..471a25e12609dfd10a1c1b5512f3ef5b6ebbfe08
      GIT binary patch
      literal 505
      zcwUW>&rZTX5XQfuNTC)%6#pEFsECQxs~Rt;2}#vM3HPOJa7o#cwitaZ55~lU58y)?
      zXB$0ZHu<u%^ZRCJcE7$qJ^`Fz*G7S`KhX<sDxSo%7bY+BEcT|M^kyRT9_~cgpUtE8
      z^-W--NN6oZ38m~&rR`I~p1+j7VEj^Pm0b}II{)C0hJ<1-9?J>{t1ebhDx*rU#xiwa
      zq2|IyozU#~rjQp2J@JApQF@YlYrfL*elZ)#WFSV7BsBau6wy#5%EZ5iMKc58aCt}O
      zX?O}Jh!;sHZ<TRZ|B@%hN^tvH%cK{HG?iS{VhdW_zr~+G^|~3t?0DHIvsO4dM}ZgM
      sc8}lSbQ|tF)?PU-V4c;;a|3n;Xc&rJMmMmTGtFGLu${A%-?an!0sU%s8~^|S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6600160d4c365e9bbbb7090c69a2d193482491e6
      GIT binary patch
      literal 517
      zcwUWBO-}+b6r2ah!nz2e_;Dl>gP2&os_{Z%LR|HL;iQMMG+11^WLb>*uRItN5B>mu
      zl<{@NGp5O;uWx4hrv3W<_yll-Z3h`bb7*E_Bp>CI2;%2S5{Xfu#8?L6`cej+@g!_q
      z+{+g^aF8R^7qSWY<X%r3hlCw}A^U{sr`qV`jIi7M2Y;_e$hD(^DuS@=VF~#HO6>BG
      z4(TF`vIhqhLapgrFA+*J6x}4&W|+#$zBcM=HtwtVM)pHRsQOVL!=8+_t>=e18-vhV
      zJk<PwIE&kjW^tg-wKXXH^$)C?;B|~qaXXaLsbb^&uL^YzlI0JfO2wwJJ6;Y7j76@F
      wk>Le+t^GH+t*ZBql~=AaSY>q6-W@A%QMD{qSzN<<%BiKefz6al>0Mi(A3&gd)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7837efc974c29dd1d902868d4af8e024f58adf3e
      GIT binary patch
      literal 525
      zcwUWBO-}+b6r2ahF6$zQ;>VFl44|=kRpW)kgk;r34EM5B>}KhbvKakY9*l_xe}F&A
      z*lxfp<|UK9c4qpf{r>s<0&s?X2RTA#tmZ7@&-{gj`gNKnED8mi@Q~fz@US<T#?5;f
      zsSy{kg94$kl20h6Pjc2gB^(4R*%yX>DV0pG2#2kI@Y@4Ip_`0E350bYYbd%X6I{I*
      z(?cE=9}cR7dMmJQEaqy=`l*&`oEcOCsl@GkG8FoO4`V^71xd)`0oT&@i_L-!LO5PM
      z*54zUJYGMU>rh-vYf)Y@POP5b_mmR48}r#r7;AT_L&L<$n~$Mt)n>9QQx05%CDWZF
      wXA1B;NAK`DHU9$}Z>G;-)1a4~JsPDz&9aQj;uf|uPCdgN>}Fib?%D(W0xzI|NB{r;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Serpent.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Serpent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..328f5dffb3af845cdc9165ff4988841d5c7c3ea3
      GIT binary patch
      literal 521
      zcwUW>%}xR_6ot=)k%4g#9L1j{kr;jwt6Md0NK8mZU0~RkvB8p|LplS|$8upzT=)P!
      zl(8LQjk(E9Z~L9wd)n`x&o2NMICfDWbS7%SrhLg?SfpR)S;D4~U^5=EhdUk(X7ji;
      z6nZXH=E5N~H{yg+_AJxZIpHMSNM9NJS}K{{5Ki0w;5#FN(@&m61%z!MTPT%LCAjI|
      zlpczx`EXGuG}@tU#$v7}Y?x`OCb_;AN+s?Wv$4>Rd>jix5GE0iM_fx=uQna)gV5VN
      z)%uBy8*i8_bR=%2?ND6<XI4(|2TBRuk9nF3)7f3g&@^6(=2NI%w}$M>gp0Dt6;oZJ
      vU;^;Fy?1!s!2iI`o2d)fHQCG05~EZIEM-(S?_ob@8hJjzVa`&1*AeI!%Q$~F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Square.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Square.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cec0a6303057dbc2104d6206ef558661c8f43434
      GIT binary patch
      literal 517
      zcwUWBO-}+b6r2LGur7iqejJI!ASPC?YP^t`kgR&Za4&0vHA@$}yNW-{gE8^o5Aa7B
      zUn`z5O(uPPGt)Qi*Z0RKfD`O`C@^#<I_D4KNz8d<US?UsA0o-8BH}k!A{tC*acB6L
      z3nM+07}`tO4CU-zrJZAjy>Kb}jOgb|tL%bdzxxmV!HA*MPwr$D466ZFP_CdxE~y*R
      zM-lY^9vTd-ZfL!DEcApAGo$px$?Kug@;aZ6rMVU3STZ!jBogsR7-j3lVadi|=q(>=
      z@j#TtA11kp<fXC(wZHz6RWk$wt)=P5B26V3mw#1gQ;;Hk2x~NK8oQ(Ap+Z=t>J$Z9
      tK+rpUgWqcg?^t`Kx`1^;-}UCCd`8o<NM&&Yn~u|RxP@)UW$vyWuph@zeS`o2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1f778007224c5fc9d615c214b71b8d0ce7d1227
      GIT binary patch
      literal 529
      zcwUWBO-}+b6r2ahvg;y<;>VFl3_`SeRpSLUAzAeR;a-*oOLn_tcQJa?pX9-qc<=}K
      zqm1pwk0a(KlfHIl`lkK(e0v9Qgl!8sLT94pY|8KWJ@ey-SsJmaFIdQZc5}u3UN{Sy
      zgILZ2aemRaP#`oG3JAsYRwm6u!j89)eWK~7Qpxm;u-p0ve{V=AbfdAbL0ERNgklM0
      zf}Lh_jz!`ikBSQmRYJYx89NqmHDP^CQIpJ};z=d0=ix}i13n4_q2@(C4~9IJrvKh7
      zm?VV##dG~VlTPIHqj~I$OKCjHKa>MwKyZ6XiMSi^BoW%%{uQF36Xo^iP_=4enUyXJ
      zC5^W3j*-&^xb4mhoOaE9#mckpb6C~rWM@xW`G}ffX_dh>tY@5hh8x(-xRl+s1^NPh
      C$boJE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Twofish.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl$Twofish.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c497e637eda75399fab34882fac74a716dca198a
      GIT binary patch
      literal 521
      zcwUW>%T59@6o&r;$iO%VqIg*niQ$q^-KudzVnQ<N0>ZwG6-s70WM=U42>LcIjEM^$
      zz=txnBdjqeIq7M?|MdLr_s{1SfKwb=$Pii+wO}*;z@L~GJ<pSn%{;*Z?y=iz?)8JY
      z-xxlI_cESZ$PwymaY8<s%D8btIC9t0=Ni9|N+y?t<K{p3)`*bng?FL|!lr`_<O?Vf
      ztmJP>8(EYcSf~(cP1iJIK35YqNFu2wslMz=C2khMSVTiU_64Eph937vJd&nfZsv>+
      zLTCL{t0&TK>_NDQJaHvWhtdk@8act~D<z_y&*NC=&el?fy7rRQpF)+2F=SRcEEIGu
      z>go&`9e~sByu)r+oeyli={kdLo$d7ORV!amHI!DFyo248sik=j`zcH5T?e3F;*o!N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0149939a985d7956576307555cfb0db2190b8a4
      GIT binary patch
      literal 1213
      zcwUW@Yi|-k6o%iSl%WV#v9#V5+gdKtEo!|{o3yA&Bh{pkCVm{25tb~o>t3w-ul&*`
      zn)n0!QO2{o;0Mtxn>;)3%$)bk{pYW5KLFIR%aLFx_LZ*<#Ygc;)1A+@XK6!SY9pa*
      zZx4ljFtSaKB*W@|!zgO6Cu~nT45=MM8Qv~Kq0|b3HB+d**7h7j^&915hGf&~Nsa}E
      zmB0J<eZ%ZYCyjFq^A=^UWspWLi+Q91wV1^PT%<9CZA;Z-sQqh<sitw-Mv&rC7E35F
      zq&+L@WLPRqTPSu8IfliSq2wEX)Rj(0bWO>SZ&|u9kA-6d^>Jg;8yGI_P%CyP8x*X>
      zC`>dpC_|=g`Hn7M89~<E#IzYiGGq^wl1|eUt}9)RB10*5ytO^$cZ0d5BEhl7P>Hwg
      zo7TyD!yV90O(e$#!$!QdDO_)x4lpb^Dh%uKrWY^U40H77sLiyl*8}lI&=p8Uf@5o@
      zbsZT))f3XBbxkD41BP<EwJjaGbshsBD~?AqO||{O7Y?0gDiRz|8LIKNj$_!S3^!)s
      zkLK8!X|kOYD>^<tR>>l0gAsgm1%nqwC8ydU)e=+|D&LWQm(QFbTRp}3Q{>OE{FOQq
      zSfPI=4BDdCQ^#de%aI9Ja5YR?z%^W_lnLAjJvVWS$|LgKrq(;eDzQ%7B}zn@s1o;x
      YO+q8;#C_r+u}wTCo)FK72Jsy1H?~(n=l}o!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacKhazadImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacKhazadImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b64d4926e00d70b529be67e0005ebb81adeded68
      GIT binary patch
      literal 383
      zcwUW<&q~8U5XQev)261;YKjja9&80&d+<~dL=eQNhf43;&5~}-KemaeZ{<nw-~;$j
      z;%xNdL2wslzuEcC$IQp)+dF_U1|A%Sy(F*sQap%9F3nR}6?`cb&xGW+*Fs(`#IuMm
      zvoiJIGVJ~d6MGhmvQmbjbE0!yoienBqZxyHUc{=4HHKb6=)ryC>7#{SfHne#?O|k1
      zc`EXRPb;JIWMVt}k<Qgkoz0cG6Z2Ftgi#?yIul0Q{O8lH7J9`nivGFEgu$N{wUO#V
      z+y24t@}afB4rqSZ!|1lrq3BU|42Klp?T6i0_%9?KtW)&q1&#<DV}n%ijiHat#$>A@
      F!!N^yTqytm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacRijndaelImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacRijndaelImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d88093668bac1f4a1ed68e7cb6534c24379c37e
      GIT binary patch
      literal 391
      zcwUW<(MrQG6o&t7-8yUMw6X^fZ#G5aF1(ruA_ziNaI*U>4K<}rOV)}$mREuoK7bD;
      zp3Gedf(e}bCw%9F^ZE7u0bqh%A1#J)Y8sx2C-KaseW~h_XHxM(NPc%C<h{;JB2<1|
      zRJjk2VgFB@=!-;DwXzJ|Gi`Kz&d?r>=M3IunW!E%82TllM|N!u(8gwn4nl_ED0W(&
      z3zPC$ZM8|KZgvoBqi&mGq3nZL<ccARODXcXu-f(OPp^K|ONPVv-|I{nf?3&Esjjp$
      z41WX1PJ=zr7I25r?VwB5r|uLjN`QY5_1+M?Qf#45HJ}$bA#j2%O5qQN0k&6?ofR2<
      E12aNji2wiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacSerpentImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacSerpentImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c47eb5404dcf5c21148f6e5eed3db83ad1b54ccc
      GIT binary patch
      literal 387
      zcwUW<(MrQG6o&tF-8yS^TJ-_Mn>x_A3$G@E2!c@cqO$ue3pJxnOV-MKEUyGFd;lLx
      zJlVVw1QR&<Px9r1^ZE7u0bqo^03Jh<o0iYTvsiLzU+SjfbE$YKB!9RQGE=rzrnxQa
      zB7o0u^e0X5)lAflvJAZoZFF<V&`FLb4E}XBQ+;eOL=~YYi?uXF2b&SPh!_r%)LD5U
      zOwO~$YLk!M*Fma{x^K&=vX5d~D26z#q$noBYS;f<`puJGFbvcG4l`y5v#PaH-DoG+
      z|Mh<ABsc_(0Jj+JE_zf0>dxU&0)k=Oe?$06(Zd$ikWS!?z!A17MQaQL?5rfaD>D8D
      DXue)$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacSquareImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacSquareImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4040fa8aee37b6e5a0539224b9c3bbbbe87c8988
      GIT binary patch
      literal 383
      zcwUW<&q~8U5XQev)261;))XH=JlG1l_TZ^f5J3>49wNPOw@ciTe{PeakL5}5-~;$j
      z;%xNdL2wslzuEcC$IQp)+dF^>h8`S-!z8cyN^Havm*%;w3ciwxXF~G38zJMzS{QYm
      zm8l1p;owi0*o&noD`glu=Q`KbjG;9e&l%jyVyU{=V(1lw9<LiuA1(9(v=K1ujUsEx
      zQ;{b;u8hu;sqO4XI#;)Kwov9?EK<b~MuimVTo`ThpHH`X&})Wq^v_kM41QeHMye}q
      z`-i{FC)NV{p!s1BquWM@qDR>o98!RH6n0<XzmRmWP0^<pI3;j`9a6zJhCT+3$!<f2
      EUnDwQp#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacTripleDESImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacTripleDESImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6c390c610ddc44e2963eba3e3e808d38bbacbb7
      GIT binary patch
      literal 395
      zcwUW<%}T>S6h^;E)27DQYDD+qrWSSDg{z7n{(um5k<$HiGQ=rq5~hjhW4RJs_y9hX
      zcqh6O!5O&o-QnB=_v7>J9l#jd9vp^Yn%8_G9>o)v=DDm2zL1J9h2;0QLQah?Gj(|t
      z-z>|_gUhi0Cr|i!BFah`hR&(Zb#=zj8XU|R+>0VnU92(m3PO*nMw_UWj~3Pgv=K1u
      z3?l30naEQf6OyMBJKT?SuI}pPT$!nuXNn<=3MsOgFxvJ%pKkS_R}6>I{}-At_;FDi
      zsjjtE?EWH-tq6OdMPLu3+eU|~N8Je=N`N;EyRYzHC_31n>eCC12ppqFDfq_F$7Unh
      HYRK>l>;7PQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacTwofishImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/OMacTwofishImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce7041da24acb80ce487dbdbf80805d24dbf36dd
      GIT binary patch
      literal 387
      zcwUW<%}N6?6h^<a(@q^ntD`=ExETu?yKq$zL=c2g7cJeVX`H6aA8DrQW4RJs_y9hX
      zc+<KP1QWRVZgO(qetx}w0O(`SM}r|wi<-~HQap2MUMgGixl}wCl0V!DIeID|^<s9L
      zSD6ow;pk7A;H#;qtTGJk3teb?$<U0C#|++eIaM8OFoY$cCw46j(8Okl7D9%DIB`~<
      zi6Z4gYjlwg+}CcR3w2-T6J<tXk|~BLDW%B9!f4n3TzYn<7Yx1Rzrzd|f?-)3scy6r
      z?EiW{brKwcMu1z4b_;E)K6U44Py+m3)OkbjO0j`0ssWwA8G(IlQwrA@y4YDsc2{Kd
      E4Rc*yaR2}S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/TMMH16Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/TMMH16Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17a67ecc72ace78f86d15c123a1aa795a0e35e2a
      GIT binary patch
      literal 1659
      zcwUuM+j1L45ItkdUR&BEpj@yM2;>4tzG!1`Oo+@yzJw^291|H+fud65^{`&EyV}|v
      zrR-nf2Y5~u6_=rkgjarsKcG0Xa*P}+m0}-ux@UU2Pj{c5zyA5{4*)aRurMHS)r&gL
      zj(jY49XHvFb=%o-l@m(WS#LJ)&djx9-$G8{+AHmv(yeXDSgS-}c;1hE{kgzksk|YO
      zTWoKs5sdOchvD|jTpoic*cgH>aK6+q{+vKYp3~BaA9+=C=}g0q)M_W(RLQ#B43t2z
      z(RO99Ars%|hnqRQ?WY3Q8?R5GDv(!^N4IsN6Q~_VPL<n9e7)zasJ-e-TWPFZrxti^
      zYTMzOOk}8-VvE}u%KY-Kt77f9qtwEAfh)(a*Q3WW@VDsr$j-uB0yp}aos83SYg}Nm
      zZ;ly6ljJdUd0fCHQ{v%K2)twCGTtRzsafI8j#jCuaE79z{eazzt0TA~aG5bGUGEiE
      zuVNZj(bB5~ES=uYV+_}9T*vzYwx{&E^cvZLX=J&lll4d|PbJj?K1A6<N#NA6Xf`G=
      zNrJ>3cH&kq2kvj~C|6fc?vzh%jbNI|^@IGA+Dmn!WM~jOHf~_1i+JV50ZC89FG~7f
      zGvdU+e;}i+cE|u93ta3MAWqbe{;u(U)5aV=5g4WSwQQHPES0}sFqQw*#%+*!gS;qk
      z=_E}JMe7_MR_Zf+VS!UK{z@YoUt(BbC{d}>=E8!FMJzF%pHaG4da0-7jXdt)u7$6d
      zZclfDKzTB#C0-{~kv^iCjXLg;Cd{O%(o}k!uye=ydN`qmUIk{wG7FsTGe?~D*zl1&
      zoBSU$#Z1hxz;yqC?oW18UtcQo47@%^^9;1woy1jleDi{wK6)T3<}#l|dV~1}C~<)J
      zx2WCBbikS@j_f1<Br`b0f1WE)rQtkIQ?k2eID<F1=I|zpv^Yz7nCm%K&ba%VL58@7
      zQ-5OYXB2+Ng@^mN_-yJq##SeO#oNXArk~>K0X`VSx0yagz0#w9M1A&1zjc6l0V9~h
      z1Jnla3yQaM#_xFUDVF!K^6UwrE#W)-KvHzUS5V-;Mo0?;yhwOUobF}J(qf5hXyP8N
      u8+e3O1X#-wob3WXOwdRT+KEhB#r-VFhqV2gDL!J92WYVj0_$1HzWEol{<H@G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/UHash32Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/UHash32Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eaf7c1b1807683aed8f43300d12fcf0b20395469
      GIT binary patch
      literal 367
      zcwUWAO-sZu5Pj)(w`;9dEB*ozRu2Y0_Ov31ARelh>fW>2&}QkjC7X)=EKh<5e}F$q
      zoK(S^I0KV6llLBze0;vW131P`0FPlWuUftkkK&0-^W4~)FQnp2A^F3NSQV!yS)&8^
      ze-Uqmyqt^1D#I{1*Oj&x48768l)=BM=W2*GhM+AvyAVCBN9ZGB*d3+Lke8y$d1j5S
      z@`+Q$sjk#ryPPR=FJ`4;NYYx0aw?2={m;<1g<di2r~i1ugdxo8)<|`&oi_fxI&xC_
      x584?n7-b&=ssVLlc!Yr9Fd4ogd?DyzgK9`8a7M&2HVH-FG{o5IOtw2_@&(2bRNepp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/mac/UMac32Spi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/mac/UMac32Spi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..506ad50e2a75317c7b5c9c8e5cb0d8ff3db27ac3
      GIT binary patch
      literal 1242
      zcwUuL+fEZv6kP`@Q>MekauK{BH?b|HQ$Q3gm=wf_mTFSP7@tmulVNZ=oy>*MU-1Wg
      zCNVT>BKqQkA7$L9Z4fMmI1h8q*|W~tYwx}0=daIS0nB4nK?lR6>4f?o-{%Lq;nm!r
      zs_z*>uW&<uwZ)Cag_3J2h%ik36GyQ84tE3LF?6k1jukv)=u9NH86xY|9T7!0eF!U(
      zO+_bS8ZJR&7)lf*pKf!<)JuV9Ic82?>MK}|D2A1?@Luw=Eg0g3s=@7T?pgBO3Pyrm
      z%V(G_TwFkoK^2Zkw40=kA>YdE3nTQbpr$_)wcKAJ-xY?Qx6LY@b}KKq$18$LEK#_j
      zQr$Q(gd12@$5$}KFmd+!rnAp&YlnzWa0;$4WY2}Q=Q(w2lwt1N8XFRuMV`^8Vi?zC
      zle@aXa6`iwZjxXgP>;)DAbi>5hK?|>Y?_~&i(-OdjIv~!{24i}j8k<Ck*RRvwYaTf
      z1XCKOaf=~pil8XJ(i{@Ww`(!nMp8k7q2~;-h7@MW4Q@znUp_tX=jA<N1iAJ|vOOeS
      zGpFG);wp5^E69>>|DZN)TbSI=duCV>PH@sX4GUPL!b$6v@O^HQ+QCG!-F32IF;e+X
      z)EEZN@do+Vl^v$e&Hjf^h|=Ohdh}wk(xatn=o#X%CGFjN;@*tBO#dsfK|UR{quJ71
      zq0>_13@E91v<~&K0qCK(N-K~f;0k(ar!`^dLqDw%*-b(W(7ub-L27}dJESBLT36HG
      zG4dX<FBpDP$JOKX4-BV1;(B~M{S6~WnEZs9PP|UdvO3Zq&|j3mxg%uixO03+sb-L-
      zS?Mh?DUt)^Da9HISf{j)Fp3R~(>jAEgnNoC3M94I5Swa>Xo;1(CERTku!?(FCe|z!
      PbRQ2$E~6r4(JQ|JJlH$D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/params/BlockCipherParameters.class b/libjava/classpath/lib/gnu/javax/crypto/jce/params/BlockCipherParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..733b746319fd02cfd9716bba1236696e7723502b
      GIT binary patch
      literal 3568
      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
      Y1bwH!-`vda*EDmmY*XM5O6!mR2hP}B+W-In
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/params/DEREncodingException.class b/libjava/classpath/lib/gnu/javax/crypto/jce/params/DEREncodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab9166b5be54f20f6b73f83a451a790418e03e68
      GIT binary patch
      literal 485
      zcwUuHO;5r=5Pb^;v?3^oi8qgciHlz+3>U@3q|ro7?@QU#CGBogiou`diNu3Hz#nCt
      zEyRO*aS!umcHX>s^YQui4&Vf>3JMIpP|x{PJc|Vn(w8JNd>Tleh*ZQgem#5`>cC8t
      z4u^|CCYdt20*9e#C%7{F_WrxUP`*@JWdnv{yW=xBS7stz6tP)F31x=5r?kAA$77j3
      zig6?v8lDM6<cn0<dj08SPin?+>iySRpP|+Ea%+*$As=Nawfi04n%J=>YUC}Rg?8~T
      z8iPAB^E8k*%DOoCYs0af!XZco_7y0j(<oM`IwNF+rS1|NuX)?0=n?`P4tm(4thyo*
      pZWCI8+FD>hOv^2IkCv$aR5&N*MXs>FVyzWywu?r-yqVAJeF0$zX5Rn+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/params/DERReader.class b/libjava/classpath/lib/gnu/javax/crypto/jce/params/DERReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9489a5b224b14c205bc0b74ec0f2a7760369c38
      GIT binary patch
      literal 2085
      zcwUWF-*XdH6#j0rO`3F}X(fdk3RFRoR7v?^i)|^SA%(^C2W<%g&cHTZ)2+!SZnj8A
      zO&O;Q@ZyY*GCZi`$T-snoe}GZ1Mfcg&-gBWceAG9$BaJY?mc(U`OZ1t{m$l(zkhoS
      z;4o$bXc0J2uvU`G`gQ$AGH<U|oN{tGZzL<at(U6F)0x>>LtixP02G0+bW0X>tB{;t
      zST^#GfWKN^vGayN%aw5fU!`0X5Sl>n!jzWF%+95<0^8DMtLo^MlhcbUhL5?0KznLt
      zCaa}W^V;;3JYpr`^z_tx=Dqo=b2FK=Hld~ExlbT4GpprN^BHNf3je5Sna&uq#o{>u
      zC0$-LLhzwmMHgNPLSUDQR`})aRTTlW33Oyl%a~dzEg1H^zEEVnUD<M8FXnXHl(u)M
      zI7=oQIGFukoQw#x#;%OVb0KExQ}G)15<(Uy5Q$~C$eMF((<+Qe#{)PRz#Gp{S%0e{
      zhPXgm!EnY`9fMUUvAE>4>qQ`e&LzD%S+<QC+bo%md0qOGj>{xl0+<EOa*TpulZ#lq
      z4p7parR3Hdf`l?R@<zomc{>3d78v-Ct}|A?yvY2GumFw<?06ZvWaMoXgR&)+6*cM%
      z;Rue)i`pB)0J^2$h>B615QsXqZdHrAV`NFMwrE(6`GINJk`Bqncw7tNBvJvKdX~S{
      zs$-N?j3Z6m>9(z}=F62;fkg8i)CD`Dz2r!fGV(d43MnxgX{lqW=%Qg!a$F0}5|7UD
      zXG)=zDhu2$)Ct#`qLi2x*QAF#3!yo8J|;{luk8)#9FkRFAG?>L_Vd^3u8?x&x(h)*
      z87?OS?X=Y<dmHWTO?C(EaFg8$seKLu*Bv~`@J#U8k=R5eAs%99!uJq8Ke^6Pu3b>L
      z9^*R5&>?~!$8Mge^)U2ekDOY0Z64$VBU|_kxsd(8VBZ$ncDJcvqKy*mgp1T&_x6zF
      zPBu&iIW@0)m?;l4DDn0`0~vB(q}bzl6I`$X7bIN5gZsC{Gag)fqW{H?>ora=><q!r
      zHi5P`K-(KN_Tx<tbl9UZocI|%{Ox@FEn1Zg-$n!3@4nAA@fU9J_ZAM(E6Ke=YrsVu
      zWF^u|eS{;I$mX$44E^{V+W96l)kABM)Ac->xXK7ApdVy?qq4y0x)4WCg!k>PeTDW%
      z7`U{Fcb+76Z({hO`}*iuc&)c~Ye?zD&0hLU_J-GLUycQb6yKo#0gf=dTM4(V4k_JA
      zJ>WjVot!Rrf9(OU%iZ15hm>`{i1>TIdHN@V9>DL0-ub<4IN-YU1bj4q#aJSGt6S0U
      z@Irb5Tdn30;d+szU!vqL^E$4u(f6?**LVRsKOA||Z{QRPNMi{amPzx6m_rdOv}>@i
      zj*oB~ReS*l_j&p~uDjHo<y?^zkGfWThtux7bl@JRLyEbd@n^X6G0(^J*GTFF#&C{)
      ze&R*(E}#6zlpiZk3?)xtec_YQTJ&ovgz#E@*SgV(C-tp=Be128J#HbN5cE^(?lVqQ
      zjZkYW>?Vc#d6N$N8anJ_n-fggf=NtysV}fl=@qHd%)6`KLhatuzoJ{|>Vtio&UaY-
      XZGI8%Hl>I(QbaKA@*yze#-9HNxs__o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/params/DERWriter.class b/libjava/classpath/lib/gnu/javax/crypto/jce/params/DERWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d974a1510fe68b3292f6aca4943c35b48d2e8409
      GIT binary patch
      literal 2257
      zcwUWE-*XdH6#j0rN!k!fs7;}y0ThumO$ZjOK%tQS09Ha;+Rzq@gWF_Dx2BttZoxW8
      z5Ub3n!wfV20XoABFMYrl$~aE-*+0Q?#&`b+^}9FQBsx5po$NjL?)mYZ@0@dg{p-gq
      z0B_@cKUxG17wy&5qH)LgIF+xgEj#7ZV%|(G8x><|B{e!WIa9G5v*L#)5Rz)Cl3^E9
      z<MWGV-VtcKmer@nCa2OF0ig@*94Xr?j$u2~MrqabFpdz|k)D{y=p*TzKAx3Fj2apl
      z&*sKvb2q0Z#zyoD`iMOD2>2%^_33nOOl}#`cgC_UXGp*k>zx+RM#=><01sXZVi!UJ
      zyE2w-W>=Ty%}UOgFPQ=znR4DJO&b+U?%hMpS+G_Fj%5B<u7mV@S4zWHQMVnlXjTOF
      z#WE`UCBs=rH9idX&J70;LDY{PfzDT{1hF3n$ke>$WK6s0EU0XB-}!@3zW@&5upe&<
      zv^V&@LLWiAg(C!?H?0zv*l6#l4AmP%9DQWfDG#qXX1Y=_*5qe}L?9W&QKaZhr7%&k
      zmMq7*LlW9zx~|U+Q;nsv1iD_Gko0jph!c2+WEM@^tQd}|7fjo+ZdsBEAN{zo-VNd;
      zPBGTD-gbiC*tW`G5NB{!Ah1}rY(rvYAp)_vVfiR50jtS*M`L5!`EtRsi;P%u-L~e-
      zL}@#8(IQP-W3HC~#&FS(3;*iTskIfyTnge6*qCi9cD}q!uHtSjn>u+=f5nk5drlbq
      z&+}j4KQD_l9>jz!jHgsC`pz$JS5Y7r#5K?);#3TKrKI>U3JvaLxn!mEUSjv=%d0jg
      zC@@uCt>n!MmTc7adJ`U%aBz@b)hJ*uyzp`7m-B;G?%SI70q%D+?StI!Y}&WeLdcQf
      zdpA#xa}`{@@lAC6pj0|l5-oi9Gu#P;DFtgv=)xX3$#mN7I=Df{Qg?6MtM$FWzDJ!n
      zSbm8&9&;1hMB;hfXBX|kHfg~rrgEAP26=u``R}UvaQ#c^81E$(SGKSlsYEo=Lq|Lw
      z>DfeoJi3X2ZtVq5H)6CalG4O9OgXK5pQu^YeRp6;5hA5?lv<Q@o{~pNY1(T1eg-3M
      z<lFS1agFwECAL2NsWsc@NqYLWUSc%iNy;-y$p(lHrF@Z0U!u9rNqtWNiPxOefkb&e
      ztbjyunUbt#7#T_)75=On{#%BZDfFxGNr~XJ*5~QgwlQ>T+aO$#O5Am8|0RDMvSYh&
      z6|ZBG#7;F4)L+NdU&qz&;*!!8g-c#V8AVWwycuc;MU;g5s8x-G4m?FZ^5`Y9ow&+(
      z`SE}j)-*|4(i3Odra}iEJjrPT-e)+J40}T~@rSjrx3KWZ{U<q|+&I1)52&*46=AP5
      z{r>OYc&ruFhlkX8t~I<d;Qc2LcH<9e+(>tbEe>2Ks5z#113mZvG2CP~8Lad?)4GWn
      z6!@691q+LOZsQ}|<N7H(P115njZC#pOSRrNRkv??NYrIT%OWjmQkdk<@T-PC_V+PL
      zUTX3-aEn>wP7)f4Xy3sXI=2z=%C))?@yYe)jnFR}^)&V?2o<_mVQ)B`<W-K%9R|6}
      z5m{>*ok$&Kgg|_1ba*4XL4Q{;fZ0f>`V<$N>mx^XC@KqdCE<yNs`qQ`YXjOdbSA=D
      zB-9!WYlVe-tcWJUT2vO~&xEW24d{==Hx2nw-ae8bA3h_VhwSXn(TjEV+86BSb&~oe
      zN&5;}d`(KeQ5g)W-kGguFsp`9&^GDzUzQhAP1?g7YetP~g7hC#L<?HT_}BjdJaUkq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1adddb1be0c30075e84781d4e9b8413b39db602c
      GIT binary patch
      literal 1418
      zcwUWEZF3V<7(F*h*)-kol0q$1AXUI-8?q=>(I84ogVD4)4bu+d2X8i)bZfH7Z0<76
      zPw}f?{0cKt<Yo8){wRiXcVnq`R3<Zb@4fpx=bYy}&*slp&t3xf5H$-a0jCp0?v8vQ
      zcU><W4Rqh#@sv9VgN}Q1W2M%Q!VMX;`@QDCw~!GyYhvA@@}kh!Be!WbYClB4l5IKA
      zN(mGje?h+qk8$fscvaxY13&Eefq?jdhwFae>l*^;h0>-#W~JX&Ii!)dF^OCj#|(Jr
      z-KV4+PGH(XL16xn{FvhVjrH3#>FItrvT+ip1g1Jl*Mp&!fk$mi3yoM<S2DP%LqF(L
      zOaG^L5(4kon7|RUJ8i>4R^V8}57c_pYpL*#Y;_4<X!JeV-ISqk&g09B-u8zA<;L6l
      zO@j(5pg-!i3REbyYAV$hm{_Qn?k(r2Vcy1jc%K@QuywVomq%I+P0YPz<6<_5dgCim
      zr^lfhMqMqCN&reW90QO~0Gdi0iYb&)v2a=7+<#kQ!^IVW$>0sKMdEtBv}xfZR{JmM
      z4Zr8>4JEy8)n488)Ij@vPQgUWU|9HA;6$7iX}{}!Er;7{a*)Fk@>yIHxIolOVqV3-
      zRmM|M`B{xF_h=K1@0#$>ZB%ic12u?P^0k9K|E{&8JY79}Q#yQQ?6_g$OMJyPni*wZ
      z##pgHimS#GJB-_tlbQq7iefva8;1&ETXRjy^;FF_lX2>weXp1l%(FddeyAz_ICAlh
      z1IK5EZ}>%Uo#Ls^d%@?l^8~h2IQj>UKgNucd5qadanc#C1ttM2TyG(dRi0~@<Bgr9
      z;$58Oll{i|F>H&OhW_MS=2uwh7ukn%FS2V+c@M?%!+qQtN&~*(`Yk0jh`mPa^%%RD
      z<d3n<?gB0nJ<l>O;e%K<r+3WPrM8sGa(>6`FUUEh+`|G-GmGiPmrt>n!EeZHJ!1S(
      z;-BL`*g*|VqTb<~Exx(SDt?SL%p{om8j83|W_}B1?8nRjbsD9`=UBS?1fQ&x3!g6T
      y;j=BnU4Du$QgG6Lb2DN5iOrBWPN&YmBV+qO)dv}G#*A6aVwoK<Ro{w{R$l{HWjQ|p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/prng/CSPRNGSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/prng/CSPRNGSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c10db7a1e0d2145dd0d7d260b79cc96eb3236459
      GIT binary patch
      literal 1499
      zcwUWDU31e$6g}%WQQ|13n356)5&;El#~|o8O&Ur937#=7V^h<Ve#}PNIAY|LM_Mt?
      zU+MI{uQ1a#ZPOu-%<!W+y(<~pGyQy#c2{T5IrrSFSAYEW0>BO2Gmv4p*padQgg@nd
      z+X)YPDzKk8!tRB#V{f(|G#lHko@XG-a885lNH}rmsRO&E7oy3f8*~Z6U~rfBln@M7
      z{Wa$Zo)Fej_$tHHnkPNA&M;9bw;6JG`;O=-FOZReSz<^o`&^swc@#AQwH3tD9l{LE
      zF)Sr0DU^Mm`+Gsy74GNF`WWT}!}5r!5qEb*xJ5Xwh9HLQX5fk(CQvY8U^<64F>l~B
      z!`Z(iGnR^pw{V8xWJjphL8L^tCL_hAL*-v6mH#V%888%0Ok#@RMBS4j_4bhO`b1Eu
      z2M+h!JoNN_aF|v5Uc_*z{y+Lf0T+bq5bw5-BIHW6gm4)qOSSUj4Fea*<S3V#?~4xi
      zZ-<?@E95AeX}ry_;85<$>c)|>c7-JaDG98+rxe+FT-K3YVK`l?kN8?D^kiqX+|E&z
      zWfK*wP?f2lhUlw}10^DD=JAH^{bZuRz-lxNyYU`FMti*Ry1#?o`Tm2zlS+g`e>q%7
      zVHWS<0|W09`rk7*@gY89n2{p~205tJ%54K5Q#(dtP4eS)#aIw)43#jUxhj)RS)DZ4
      zAhh;*M9BzgiT*yPn1q|dO<Xo`i=p}tp6XuLQ%%90ec_Ic;uMv?Cqjm~G_4j57d1}T
      zxM|{!_Mhjjn-(-EA{!;G&9#C!bi|gYXC*(Jglk%y8b#64KTl(!XO31`TGOy2gBjXQ
      z)7KnK<nadW*6Ebd+pHYoWaSr}`UwlqX`jI&J@X0E8ZoS67PoL#BU3!iVJYEWhD9fu
      zD<-tYFE4(Nxg(t4DO^0nrQ^llr|&O*hso-*O7&-ys?Ub>OJob!B$7KMb(aipVIJE!
      zgL_0@OXRGSav-NyRa{Mqo5MBO#FW)TH?YvBU54JJm6w=3!u6d)ymMUn5eq95D=&V<
      zyIK5z{G%h>+$pRc;*;a&bkD>BDXkAY6_dys#Pb<_Y0{U6q}|39e3AH>Px*&_O8Asq
      wP-}2|=;F(Pi{jtA*vMiOae=VFSM>av^u8f4-;U`NhdM>dN9!=kNZ;N56HFIf*Z=?k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/prng/FortunaImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/prng/FortunaImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..817c972c95d5e536db02041bf69b6cdb7f8bc607
      GIT binary patch
      literal 1354
      zcwUuLT~8B16g@)=TiS&}5k$TPDs3rUQ9u+VrYM3b5Gjxlp0@2kmn^%R?N;Ge_%nEw
      zM8OD=MBe;S#yisjRg8&gx-+}?-gE9bcjm{>uipTSV@^RGLv+_FYkT@T{XomRhmL1!
      zdwH%ouC=Qz*sfQ$^rd~rRN!am6=_<D=gY3)9co#z;cL28u=lf$!Jy~`-SIeQ=+E3j
      ztwo$+XqYuD!<%F9#p0U`{&~B=gYY4wLP0=56Vd$>BM23tMliIfs7FHp5r!VBNL6xE
      zA~&^D$xW3wF9dN19SYhR+NF-NXPDZ&ZJIpq8MakYaTlEoYRRy6P43y&vhFZU#xgS7
      z)QNgEw@1k{x4*<QH;_~|Bbw_{(TyIGCWJCXVt?ca+2M>~@s;v^j=Sr6&Lrm|89T3=
      zo4RX=_v%N#S2RitBez}s+pNglCT{H#a+Z5pQqE8x+fK(fMOVWrq8Mao)(eHo=+cKC
      zCvbmBX4Y+|sjW)+3P12<R1_vujEcfW>*}k5F-pDh;+5;#ZV*XmVulYHI%~aKFS_=7
      zA%}!3c*Kyr5_5B+q>_xWZ+L55&lh>&)j^&+VmfqSa^;;J?h<3EXqU~xitR1xj>9RG
      z%KQ%$*%PVgd(AEG>K?!HXeqv(4$_Hwsv;(&1}vIP#T~Z95X{<TH_sOgF_M-V!&8Eq
      zE)*SRx>y7+4kYdTw5P*N&qjLNpeUoYKXHm+;tcB6DVjecocM%rq}6vG_=2_*+&iX}
      zI`q;rLIA)7J*N=H6ZB!4{-9Y%82SxJlKU8}QWU9Dw9qLqx0b()W%L9?$;%@&Brh+H
      zDXyTEE&{}5kZUd1EJf#tYnHCU3(3_%al)%|iQNN?5Sw2(RAv1@oT57VJ8S$1O)F<e
      zZjGHHb#c>zk4VBqI8JLHH4pj^$+gl-m-Ox>MHeaS4cd@F54{g#Rkk!BB}T7XisG?s
      zsg0VMz@%(uitMU1_qJ+DsQWyyoJgKvI{ERMs#%7zRIpCT8#VBuYxoeJVMZ!er1m=6
      J&q{>nzW^r9D<1#=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/prng/ICMRandomSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/prng/ICMRandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..747f0032817b2ec792f47207e983efba128fc3b2
      GIT binary patch
      literal 3712
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/prng/UMacRandomSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/prng/UMacRandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..214773133bf00aaa6571be6190a6427a83b39775
      GIT binary patch
      literal 3184
      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
      XROCfgW)ASw6P}qhA})EB{NsNCP^tQ%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHKeyFactory.class b/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHKeyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2111a7b9e0689cec3ae662e92a384477949b0011
      GIT binary patch
      literal 4888
      zcwVJeYgAO%75)y)1IMWb5E_UNM1(;GC&oMgA89~Q-b4s8N=&Z9b+|ChjCW=XG$y9D
      zX%q4=FM^n)Nz+Gas+OcF)Y27eSJvt)ZC6)ctNq)5{gZ$B+12mdnYj#b8O*9I?>%$Q
      zKKp$8+uz>j{_ej&{}{k7{M3mYf$hO?!Z)m(QO0}$eLNbE_=W?jFQx^32M)KX<IPGS
      z9?{30unF8D&3rL6kkGaGxNl*#C#nfJ_G)1*zF#2MQ{5+EYl;l2F63g38+JGZ*0*b6
      zwKFk#Qq_BvlOa{0pgj^$LVb#^$=|6-TYN~12~@S;60SW08`N-+o)4*ERafF_cj9D7
      z3kcljX<rOC7F7cha}VEps+TM#cX5>tT?fYkYBa7z!Z9Zb1a?^XX$hZELfT-;ow>n@
      z4FX#ip*GA995xS-_AV5n*o`macE%f2<J|(cds2`_mH3daQ46+&<7!aV_ek4PH||K=
      z9+DHA+}NC+@H<f^P`Qk*5p~=*IOIDNPGp?!!WNXvglrQS@U&PT`Tx&W_c^hh+OlA-
      z|DHSR4~7F2$DqkZ1*+Wepqkt>pwud(^Hd*ibfShSSSdO~3*CyQOSe*S^tJ<Q<YT8B
      zKHN#&agqxr1p=Eq#~W7`fD8H3K|Xf7aX0P}SR-}aq$FZgr#GdlkP;61dWZDLV^Xzg
      zIW3vZ!+lK5L*ZB=8ja|2b+F76HIAt+Bm6Q+hjvN}C{j7{z<QaO27#i?Lwe%677iMW
      z?iDCqSU8dh$F)(_)SiHIBuS{i#%$Uru`$DHTl=a?rLl+#6kDg6i$VS$m*sj(spbx+
      znoe)d@kVwHU5zC|ae<O76)DEdkSs%|iPs9i3ROz;q9sj3*Us=IQ1`{UMsk}3=>&_o
      z+>%ezC@J<X6w61ceDu2UP`Zx$oj6J&v)8fd%Y{CaJ8_HxvjE)P*3?tCw95Rba^hiu
      znpKO**q*AU0a*+Kc+?FACk1XxRg(!sV6#;@EijV@=DKQe6(m<J%0QsPT9k`OWCAVo
      zWDzz^OIOCmc+x_Mx221xaj9=<nW4U>kP?e6)50R5I5EQVS`>)Jn$b@w0X61Z)Q?9I
      zae{HLUvhvOQJf||E%rc+w_aFwlx96L$_vl49L%w`7zX#mkzm7;SBj!5qr6AAr|y+y
      zgvxc5kPN&oJceQ?##Xw#GL5BesXT6zyot`rp7n&lLC+VtA6B|G<n?q;UIkAH*gY+5
      z|MGG;FVFb8oT1SA^6)f={X5xQ*5X@u)`@2X@|R`IjR`!L<f1vE^C(GNW}i+qRu^8t
      z1t(r4)l1jhcnL2{iJVR-p;${W9MRP#MP37z9r~DrQ<aC;*hY@(k#NwEcYHjmmPPck
      z#4TL|PQ1<%$RZq5yK6Ctn0)lgMsim6gLAUR&*$MSwpCdQ+v@W0wm|)AU{<WgJbXvM
      zmwmfM3FnT;woqtMMNHH(?Go%@EM|0)?d@42&$tilgF}YBXZc6sh}BmQw^U|xo!Jno
      zSMix?TaauXy}A;Ph0^WNW7R&Ec8fOS%D9%Qw}ttI8_T?{@-QQ?ZgCP^xQcp%IK?>A
      z)e}kR0kv6^U(orPAILkUe{2P_0{PF*5kJTIbn=&vZy{%Q%pvas4szh)(_u_DVlAKU
      zqygVw;@gIGSWm0lj4{uWZp8h3N_V3*H&HkZPt7k;*x{W;Q70cI4K_YEHrVH}#cvn2
      zCAJd#9JbETwqhE)X<H#}D?8`0!#@Xa?JQ~=Y$diCxg(!5yBZuNjuQJU?mAlHxFP2X
      z?wv#34IaM_?dZUs6zoO=Rx6>j6K)5=b@Cg#3!BglFOFb0dQry<cOT276~|~Xz||Az
      z$0K-@e*yl<kfX+PG!?QO?ZbYa=0+Lr$5(h-KEKBw;CZ?9UxX%(Y&>N>4sc}W88x&!
      zNV|QgL^BT2u9g1}qlI=|*uY<HwCm?N2Z+_d*$!gOMr&7+)-FlagOb)G2CY4kq&~kR
      zO>4iT)t{u*FKv&L)&Y`ug0w!e8m)mWv}%MhLJC3zH_EWX3^+nsPm|UdLymLT7y}#U
      z&c_+#6AbT3l6sD$p1%cJ)hx8OX3%=dg4W=Qv<?yX5?XVv(MHm{msAZ;W71ntIE&CU
      z?j~o$owe7Y3(Vq7gDpKAZ?JRtRe=V_JPQ3}&EWd+8E-*_vGXuJZJ9<19c<~WC8bX`
      z*yd5;FR{(xYcmDksJV`BN=MI6qmbiQ1Ult%tz0#Te^nB{plrIEG=O!Pz$PWIsRdwD
      z3&1WWfpwX{rU}e%0_#fx>+7s_%;J&+<~M-7F;noSB{07P_C^xew@qLHbM%g(l60@Q
      z#;gF(kkJY9{5<pa0`vJIXD?70FEO95FfXs+LA=f@Y6=hIBJ*_#3A~B3cneSCZ9I#2
      z@EqS4@GhqDJ^uOuF5`#veHqvBK0d*Z@F}j~U!3_jX7C?;h|lm7e2$OUoMy#3{7e+#
      zy4Z|)QI21T3cfw~Sa@+m?Bx3{+!XiXSE3F#4GmtQ5}5zA5;=Mo-<5riqkTL-hf#R(
      zeWJ)^EL#mt+89x>p-DUAT4$8HgAwK9JtECzTrNYCHb%83rOs>g@*ZQzWfW;IpO{`g
      zrI%L2%V&m{_i6We+6&`Jd$BS4D;X-jYN)rFPX}ivr1mbsmCUrgW+tg>L(CoCw3s`+
      zrj~8qq?RrE@nlMCa^IA>Z)#!R#pJ$44QC!#{RKas!v_nR*w2~;e$DuPL)5=zHUAzP
      z8E+;2fL-__>hUL5?Vnk*e_>1hD_ij2Sf_tyFZl<a!at21oiaR4nB8I`m7|U1^h0JQ
      nhu+Fl-C`F{NOp^QvkCVac9&^)!nD&&yVGV@5!8{y{n7sbh=mOn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a6560ca21b2e5e527496d0ca09b9937595c43cb
      GIT binary patch
      literal 1650
      zcwUuMSx*yD6#j0hOeu9M2=1UFbfFz^$D)Xor8*Y027~%?nO@t$GBcTlfIr2=A7Nrd
      zCDHi8gFni6=29x9hDaaooO|wBzV9sk_50g*0Hc^y5MszyOkZ8$YkXbRoekTw)D>N*
      zu2E6*bC1Qw0ymslVG4(PmQ%6~1!0EKT_4pIy6+g?M#E{p%Ve3`o^Tl2#|_i)?lZI{
      zl8X%CDXT0Z=wJwyt5LL}GlnCGF`P<hGIEWZ6}99!hFQr44#zda6h(h^Svb%6a!oMA
      zHB0BUMeZ2Ey{-&<Rl{W%(GEu|#}Ezh8N6n^qcHu6g4Rs16bRxOH_O&40aDP-a8jE1
      zo>5chxLbX~?I^m?6EJCy;530I6xp5p*>W|jMR6AA6`b33l_U$MCn~~;;Q}r)C~Lgt
      zi}^PUJ&8h6Ycb0ODf(l$gv(S*+xHmm>@C^+@`}*CT&pJ8s)}HM%Giw2cFalygOt8m
      zFHGGkQ!_fikcc6P6k+AEyHu~F);bbz#fDngU+Y{ahLKf}VHo;Pml#xxFdT7(=i7w0
      z&Q_M4N-n2EAx~F!jumLu9N8v@^9MDNTFyNhuw~y9G%{U#!q&S<CXW*PLb$fj)yZ1L
      zqFZ%!fjfLv(14dnojZ7BDBtwDE^N=ROjp5On$l+bf=RtM%B{g0ZVJX32AalN;>piZ
      zwVJRfpjEr{FUuyg2p&+m>_Fv4F^0|vrWm^Sjf8w=NFSmUM7Cu4jxJ`5U@g!7bL+A}
      zJep)0WCXu9l4y14ROogSA(8+k6_0Ep`jNyCj?x*WFL0L(b2vs)Y{v}8ae}_ITZq>~
      ze4vowAk-GRmNs#!n2GnE`+_r{(f49_8=aZ>mEl0n#IGuKb?Os_GGCDn;cvo0bkI2g
      zsunHZBzo}>eaPc7rs*w@6lQP(vl2{dCt)2-AdTXh1b7qI$tpxqG9=%UY)|4gY3|T#
      zm~LYd^mZL|aTj!Y8&}dlk$aDB`rLbuqgxnTicf4}@<%5AFnvfix8$i2jwe*Qd1ACc
      ye@jm>fD-NIB1Z6n5G_%0UlQjfOyLz-zTU&G*kD(risU7`VuRgGgWa^uIr9g|V4|b|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class b/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39c15bce981f2f5c6e0bbb576a13b3e6de5f1cad
      GIT binary patch
      literal 4564
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParametersGenerator.class b/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParametersGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b11159bed138515b8b94eb582cd9a580f41a9977
      GIT binary patch
      literal 3498
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.class b/libjava/classpath/lib/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5156be2e8ec646ac13f8587ed47531168571469a
      GIT binary patch
      literal 1630
      zcwUuL*;3O`82(OMNC<H&3Sx^E*EFDU-zqLe(MkoiS{L*pgkuSYwuZEdj?dvEc;ki6
      zNO5$=@yZJy%JDxZ6{J*WyvRBK`u)rK^5f^{uK<qVv4RN0(Nei)&DnMPh2{8*)u3X{
      zIow*Pa>vSg73b-wTb<?pP20EUdBFVwITXYgHj5m~v&$uGa(a$Cfr3tkw6rd8r{=rC
      zVhD4|D^*CFonHgO5OM2tOl29mrbVTK`;s%T9E0+dFNRv@Ik)Tv=gDMDWplZ7ks&r(
      znc*6u*sMdx7KW&iE^6q(Rt2h#ZRlm_aJ)*H(zhDvd~2VXE--A@LD53mp`#0$kdivO
      zp)qXAyJbF6o1f<X9edg%n0UV8*j~~0U7<IPv0&C+U^t%t{{?2KLqklXQQ19Wj16Qd
      z@gOJWGty!wI;q*!wa}2X7>$hMzjvbsl|taV<x=aMp*5pmn4z!LoUOUu4EMzX59zRQ
      zn1Bd%)Uy|8nw~X4(wNb36vq`Dqs_Fqbew=mZ$tSLG@XW1IHTb78ghhHb({rFt<-I=
      z#wVXJ>^IgwOq&@r3}Hkph$yhlSnp34Ra~U)q+X>&XjaE4E)#9+YL%B~7!J0}S!ZhQ
      zB%@-CuyVx_4cBm80c||-`*l}IT?<^#x=V+SG{zZviJEO%S8;>rJuLg06rrYyTMST9
      zpd#7Ah;ZB$4b!71joiQ5x=-{NPK_5vR6Hcm)N7(bp;Gf5KIRH84*ZR2hXf`DiDpsy
      zI_QiE;?w^h6SS9ix4b*aPdub^BWW)YArG+IT*fAI=sPwHH4y)Xp11VxFQLy&E}`EX
      zSVH0hMMW?`XD{J{#);ty`Y?thu2SV|*hyA1M8htm04a$sn3O~x5h;mIqOy;{W*^rn
      zFG{y+vP5zjyH~4)IkyR?AS<N8xRna3#AQ<ImeCA*v9F11(Jg!(=126sUjglu#>Wy+
      z4+ENj#8@0?lidHVCAri#*=U=bXia|BHkqi?OnyV_5I*}0h8~y=9BkmoC!Acyx%h<!
      zE{S2jV^BEbSI8*zPq<2+c%F_1Cf=eWepBeT!|?tF?!@nfaze-t!noCy#O2G?>2;su
      TB3{sP>VGt8uQWL&Gamf{eb_}T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/spec/TMMHParameterSpec.class b/libjava/classpath/lib/gnu/javax/crypto/jce/spec/TMMHParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..890ba8ae194f3680daca78afe1ef4608d7dcdabf
      GIT binary patch
      literal 1094
      zcwU`S+iuf95IvhX%>_eC)1=%f_t<H%ctJ=YB#Kluty?M@^3n(7xQpYE*wJQ#n!f^x
      zs1gr+03U^zU57*zOBFnL=dyFo*_rW=pWnU%c!F9U8HRcgjhwFc$vbg;F&@a+>H6Fm
      z4!G|$_x83AJmK}Z<l>Mrc^C{!s@UmyQQ*93ceyX~SYWVpcF6sa2<14zzv=}sMV<a1
      zBn-umd_0tbdwqsA_qYBWJP^d)c<V*SasN4$OD}MF6vz%k*`2F5BFO_TsA6Ft_=oU>
      zA#=1z(Tgw&<x7TVwe!eR*p4=>7K8CRKISE4aoNO0EHh+lR;vhx6%%<Blvg!TL`iv9
      zOk9A;u;_*n-yikcTr|CQk25U0vG4U-o(NSuO&YQj4jDGwf0#Tq`SgFfv05d1;BD2!
      zB?dF#a(6!ayEW@P$^_G#FQ7u0v=tPo>|nYDqh_f+ln&#O@cCA#ny&uU(qlz~JM_FP
      zeK|S}HCp;L4K-M8X{=;(bWiW6bCIGRGIRs1*r!;s>l2ji^$9BW#ssThD4)SqI;(^N
      zwy1KO*cyc1K^eQaMp-+-<2r5t+EcnrdrCQ@J*A!1$~ULVJA})UE!g#Sc8XhbwFL8y
      zcv@OvEvcI+6lMyAsRI4^x_8CvkX3g%`zy+yXQT@{`Cb#6Nx_tmR)>2j;L2HWm<qm+
      R2Pxpyv*2MW_@S<P^b1X;+j9T_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.class b/libjava/classpath/lib/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64639b0a11cf7590aa5af0800493d810b96ea55c
      GIT binary patch
      literal 524
      zcwUu|%}&BV6ot=}LZMbr{KKU?iqVO>L`lR1H;5)E8&<<ODJ7*Pr8V+anrKX1_y9hX
      z@wO!<CT`4RrgKiu{pQYme!YJHIKr+0jp4xYV?GfN;*ra6F^d8|k&4e}O7goaAy1BP
      zL@1^zQemGw13JT666c=q9ezEUC>a?jFxaU(S27OWXps@lJtrVFp8kR`<o&>xia{H;
      z849Pa??x?h>%+D^V9+mudu1YrRSPAQ8FF=dPy!un!9bCr(sg~+i>D(M-inb&plUae
      z!W)RtP4v>#qp>?@;N5>+vB^+$RMg8l)a!QAquCGQP^ylbaBF{59VUG2QIk2Ed766C
      zD?PME`w~oAS4ee8YxFf6Z?GEsuc$nynRQyrR0}kz@{B54sFK>w(%8TzknR#Hqp?N*
      dGA2(okZ-)8^7Ml%q~>Lcv9iDt!?2U4YTr0}Y_$LY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/BaseKeyAgreementParty.class b/libjava/classpath/lib/gnu/javax/crypto/key/BaseKeyAgreementParty.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..634d0bb7972b99b5cf20dd7c8b40f03c24b64c91
      GIT binary patch
      literal 2887
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/GnuPBEKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/GnuPBEKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b4c4293f80086bec5df37556848074c229ba159
      GIT binary patch
      literal 1273
      zcwT*yZBNrs6vzK}o9ifLgNX_X2tMussQ7@ujN&Gk#buDp5OMKEDc4af?b3A$-^mx6
      zs7oZ#mnMEF<GFWDfn_1hUCuq{{Ql?R?(e^!zW^+tpdi99)o|MSzVXpG)J^ZG>AU&|
      zex$#2+MC6-SNuppjA2;Bb=z<n`o_*aH+=<hBF|8k<8$x5Ve*#VB^hF^CO0XsawbtY
      zgOnPX1%~(&%dz~Y3^SSYQ?pwnT5@-}iYSIO3?Ru6&1AO}3<v#myR5ctd()LItsR=Y
      z>07R&B88y=FkIB2Ai<ETSPrkY4|cfs+Ssu<L%QOchP`EYmbeGbn7?PW7^W-dFN)?!
      zWa_1Qu`JrT$}n->C@RJ=AqE&zsiP@jsU*-eTCGp6x62Tzm&5`M+ZT3`A!*Sth8U#e
      zwjJ`aGQ&uN`{f=#?V~K@Ga7E=4#ObjY=*kAOtxMU;aLq?<QNnR*JK$HDvHoO4Re@h
      z&?xlWZn&Q1?;S9VX0nx&71w;vavFsM9#TmfjA4M%*In<x@Dq4Ua@CD0c~$bRIVL?C
      zRaa|n+cWvPB^H|ucQ-F&F+-b((z!q<EuM(}r3tcWHS{}3x3`GU2VBl|pymHy@EED>
      z4n}_G^52pEN|6XgMVvH%MZ~Z~3d<PA3NE2QN5rH8eOCZ!DYA;FGZxgTBTg)k${k~T
      zJ3l+w!L<%1PYS3~<QbA!m7=+BdMKL0bxf0(ux4;WW~Xoyx8#8IEJ30BvM`OA`-b!n
      z-2EI@h)e$qsjhW%0(B<dtv{dt(!-bg^7Od<dA*mf_T?8OC-}L5kES2=qP0_KG(;cu
      dK^J?`H+|8iu<O|Xjj&$w-6=8>lFRb8@*n6_)TaOd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/GnuSecretKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/GnuSecretKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f19c4bc4ee9fde3f0b855c554f6ec387656e3fe0
      GIT binary patch
      literal 1620
      zcwU86U2_v<6n@@p(xhRPHkLxAtEuH9*%YEJ;zzL3Qi`zw9IAD&<Ha_8Nf*-Hy4^*h
      z&N$BaE4*>M@`ekT5z463(OdtCe?olTH|sWp%y^Oa<Gkmb=Q+<g*}wkzbsxYRSji$K
      zFxB#+>TTz)bFbPAIy<3Xy(2r-D_*oJn}G~hWG9QXz=(3GwjHlky}of<Hp4821V*)W
      zS2m--4Lemj3mA9Qnp$5J7<Sq%pD$b60)@swhSe}|y;e<N=z{CH;k>}n()!}_4&^n0
      z^d)~&<{@y{#376bOwhGnAMAX%;d=5~w7nsNkDZOSRIq;2X|FkftM0Ke9d5b10@IEE
      zt-Y3qfpLX=l$DjrYr|wRVIqrM9>-y2G5L%(tDW6YZku=oud4Ec!09yo9qM718vP2^
      z>H|#mF2t0HVdN>0f9uw+3<X4;m$vj;;g*2elHtOEv}2|6AaV2by6iP6-zG~gm32pG
      zTlRx(C(NP3if$}?%DnQ6$Z1oMBLhg5KO?yRZ2#gXW~E-Ue0K$Mq2EQ$;vD<g&u1}m
      z+nX}T;XJ$4t8j6>n8zI6RvN$4M<MB~@~D}(fcMDO+1ZgEOFA>i^*K`vT+88o5+&9G
      zE@eR}j{n#EgZYg@w_W{&i-}n*35;{p21uL3G6%f)xnlK!ay><{SN$kx%4Jv0*Jy8n
      zXH`6=*i?hR3{ohl@!?;vpnA+bOZy?1Twma=K_7#A-mVyx{h2+y_>i|0MwN{_aFKBf
      zj0TEbPrQUNK%Z1*p-;owTV)=JGk?p>8Sa+7ha<N2d+rgARVM9UaLllt;AMLv{RqVa
      zuyO6Yf;6r&$u-`uV-g=};B(zX39yv_TX+rAnx=&lJQ@0=$fWsx5~pG^Gu)MbN<2sq
      zhqUFUMlidtF@nHpl;X&09GOwf`-5dqa3%>ZC$MMYV54C7hx$FCMiM%sLsaMkTGQN@
      zDt|)!fQ)fp5!kQ%0ipIEl_kDhHRgZDn0mJ6W~@2=^t~Z09q`lBzti^<Y+H{&Nc|$J
      zbQcr&k{_0PRIbB{zoOD#<2=uc_(t=yyBrebmvB}qGR+ZtojpiVV~bz+X+3VUN#Qs2
      v9Vq>VxtoPI_wW|U6d&W=!aNs6><KQa>t!yFaiw3K?|RfJCF<0**N6WC^lddf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/IKeyAgreementParty.class b/libjava/classpath/lib/gnu/javax/crypto/key/IKeyAgreementParty.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96da8838ee2892140a8742c61f79fd14b370b6db
      GIT binary patch
      literal 491
      zcwTLh&rSm&5XOhvcC~6->%T{E*Mr1!PiizVw$@}54|+nJAaxfuENi;2=D`Q>p^SqX
      zZE8t?@Xc@Fo8kTA^$h@yVK0IPg9BwMJ{2!w#-*zZZ}~IU{PGIx6Xg(dH2y|7Uq{en
      z&<`Nbgi(C*Fh%JZG>yoS!A_iv{(`A@+NdE#wb29(;_qPPb;ie{7$&z2I_EQqh1b@U
      z5v(&fT<T=r$ZrCJZsDxNvK-SCiVR%Gqve$tX>&630}hkr*rf8x&S7LvmuEIFGW2x&
      zN}Sv==qdE+lW_Q$qI4LlkCXdT1}%qWI1&~LOKs&OUg(T6_y4!@D7@ZgKs<!erp~sY
      n4WYvktdhP)YLoU3DI2i4pmd@4#r9!qAu@n%I?->?+JN0pAkBW%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/IncomingMessage.class b/libjava/classpath/lib/gnu/javax/crypto/key/IncomingMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2275acfffb993077fba317760d45821694933e1c
      GIT binary patch
      literal 5337
      zcwVhnYjjjs75+|Ul9>z>2x)+%Ny<<NBoo3=Xdxt!N_faXpn(KP0F_B{Gjm~bXSj0*
      zl8S&@pRKL7R!gB&3yLCDN`U}Du<DO4m+$A&-!83hf2ggZ#qZpE=aI}r)3utlX3m*&
      z_TFcI-+r8v@4R{aCV>0!Ef)#|=7qInU|;B9XeiL9566vIV81dP2x@(?K~)QHRuYL&
      zSaHEAP%5PY(U2AnJk+~S=`#chR88QXc5_3G1=@xUWwow{hJ#u>X>=O85*lm~D2ggt
      z*oX*-Ab+e>HPvVpD6HGvR=-2Qvu>zQi5qH6OSn)X;Lq#OCS`baSXY!mMKjV00?swD
      ze#HYi=S4B53pncPcertvK*gZtx-X)H`W4-0#A3cgB&Hi4crimt&lH$Z*Pa1Ie~GxI
      zen&CwRe0fo+i~>Ho!f3y2~?%bCDex%UsN4b4WB|klzye(g&KkC|3!ia)tD{M^a;3#
      zI~cT1xz~$A6bVdgS2blza<Es?yF$HDMWC!b))$KI2<fW)Z7({Fh?)?X-#(d`k$BO|
      z5bbXBz=2YMDPhG3Y6&Bx_0g7J(my#vlHW!z{8%Kg(DHtAiVTMyI>eaA1_lxe^TokT
      z;7?siB%}OUY8;A5x)NQnb~{DPtOz=QJ9pezE-+i6O>*qp+!4&jy}<N=SW+Kjg;9I+
      zbvJnYy(w*GjcN?%H!v*{N^Fkl%DSkTT?sRZcFB-E=*2s*TA-Lf)u<H%?lFr?7}frc
      zWN%dMV`efv>gugbN+^9voks=In=NjvBX3%aXKJxzIO6M-&iV#ox-aC5n_@n)=TkMG
      zon-RtcY3h_Jjp3fN@q<_#$uBfO}O8U%{*6)MwM_Vnr+9#%qU1J4@oPlrP5X}wxN?~
      znFaK!Bc$rGcKQVB>ayaQ0bm9+Te4*ewqvIYtl7Df5ci@RJv@(7{><X4#>~8l*kbA{
      zRv@fknvo^pV-_jI^SXxP%4)5DeM}z=8Ns#8_5DnE$No4$)lLeLz*IAkx_U5VD5iJS
      zxsgooGL$skI8i7qxpA>{gGp1J4pWv)Do&Etuon@itO%Q}EQjvNM_0xrriO&T@?g_S
      z`A$9}fi^W9)C?u8==6J#Z6m+mnps-e$tMu=VyVoq0|MnK*QHd-WfvHd@_a{mpd%?e
      z-9grQUC?UrE<1Q^_R?3Y(b7Q5-R$=3#(O7p)n_O}#u#qj#~z+?(A>;;cy!E-Wm$LQ
      z{j8|%UF(}XID!vKKOYg8MTYa;18#g+pfafqCF5~k9Bd;}GpoM5_^34TG1*OX4P>o!
      zMfBJq**|F2g-3borf!SvS|VkAoozSkdMnGd%C0^nuYk!IXmR0_Y(4oap+AubtnKWy
      z>tS2ykXaHQJb_Xdo|;fiPlN*7I#=hYJt@^bBT%3BX6TOu)^5nrd0Ofm&pK+1PC}0_
      z3v_Pl$WePns-0xq#*@>QRHMA>-8dyMXS=pviyhKrsWlqx6lMz1h#Z-;%{~uKV21qq
      zycaLvH1jnSk1JZg>;b{t%(RWSNR2Oe@kOvU-A2sXbm2>E43i<c`+>zPY#e7Lj;~Cp
      zH<sxvy>n9Us}sGHvZ>BedJ&~=yu{X>mzVBEluR?@!pj1SCWEG9)0)mE`-F?qtt%5M
      zj)jx0cv&i56KMFqc(S#wN<cSQN_hcE$+=BwL~h*VWtoz+R()!}d=?C-iry^WW%iB2
      zs1BrW6i+7~7k$clRbKt&<K8!mq_3F6e#!R=3gDEFInJE&>B!N`onm;nGsRpLT$#$*
      ztCT9>81au_TEk7(3n&?dx2LRZ1m(B<4UVOy6+;cqrPFceNNMTNv4%ox>gKe_oF2Q3
      zS^i6yRaSW#9yvK_Te#b_FpBD)2A5nP!9ABT=Oxp-x%^&24}h)orIUVjp`2Gw6?R}g
      zcJd#BZmi(%mFPh`c5!t#!q|g()R<}ci&{#;oGm~d@f65MH%EzTDM!Jvkf`c2M|w=v
      z5RdFNO?fRL+f*@Ml?}FmC8SaAx&03R&8t{=A#J0`T#skzyAhxRmi{7JKSDVt$BI#i
      z9x}V7Q4-;=s<v2Y%-EZ12J8r}93`}4rd_|KYulBx#oQO>>^{y4_$j52^Ql`bZ^xXl
      zD%_D+YyFN?!2DJekFBgKd*F;6qh&HiRp-;rl$i%Vio5U_D)9-fJ)XsRt;saFTgJoP
      zW=1vTIs7U6@D{(BKK@Ml_%rF_FG{<!;xt@UskCVx=aQdM1CEo=XNmbZLwtg1a-8qU
      zliWW}r=BBEr<g9!XSv#9yIRZNmaBrvw91Z7lbs$@nU`~}p!F0Ao#!2yGp!h($%^q*
      zJ4XcCuqFraZO&z}#cX@-R28k2U|cuc?Q)~R;kttLI~%TI<0@OQIwja{7K^#KMbgsx
      zNWq=z8}4SOT&r|Cs->pCW&|D0g_VVs&THr@KqiTnp@iQT>DJ4bflG|tWjcQa^%!A%
      zuA&v!uo2g>8KZo8-@v<ZlPPk`1lVf1ZUd}jt?e@FsUGWDbu!sDa&Hf34(it6UEFn2
      z+e0hwVets;Wl2q%lHSQu(*Kqz8OWvNdvxpjq~r$#_Cvz`5n=t9l>CISe@b9KBPBm4
      ztX~k!FA3^bZxbc^us?^AZ*wlotJ_9em_izrNDI@H6xx(%Ih4euAUW6~HyRy{H>Kn#
      z^d4v92#gGNt7d+~^M6b1uMxrTi0k+C{}06eN8<Yv^Z3u$g1=<-o9;B;2h(^1Hr_VY
      z(IKwMt~i9@@z_MM9qt3;u{}IlY=`q<6V1+19O-E+J2rw3G&|2?dUK&E{h`Xj5q#uU
      zrSk$^*vbIx#m8;%%_iA@ql14Z_<s=2>je1*!Tgip|3&b(3FqGg{~v5+ZSNHY=oL<A
      zq9`l)2hwD8r^(omCL>^zu@yeHm&eQt#mj#AID=mx|F_K{=-1pK$zpMp>u~9`Bde<T
      z)mn3oG7wTyHW_&lRPmGG=T^13$52>*a&I<23-}4}vwRd!@M8JYg;6}o@zWfi=J;8T
      z&v1P9f~08_Cwj`B8^QCemCs$l8Ixkm?o!)sfqkZAu3;2ssrzN>p5u6)<BJ@>ma%o=
      zt=PIq-AmNH%yER{RgTv)wnoR=O0R#N>ou8mq>@@^%ZKp7B}(8GQ&A_TV}mG1hnR_O
      zQNcLgjfkj5Qq<ru$790BhxuHb5w$ok7T}Vo$1B2*S2=!HG~zX}7=IN@@P@dbx4|+|
      wB9@DCjuoO=)QT3dP&8+XgR=H}gR?#6h2o-}TV_6Z#XNk&Yz6|anErnAzboYqTmS$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class b/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d56655ed3a6e45c8d4f679e07101bc05c2d67e43
      GIT binary patch
      literal 1782
      zcwUW^TTdHD7>3_52Rmj1)W#$whdL>3VWDi&L!dD^Qj(@Iv=Wr4Ra<GiOq@;3+FGxZ
      zkgMi!pTjT6p+BIN5+fy2FMH7+RrQ_Skuk<dz3|S??DswI_q{XYfBt>@7l4ykP9h;-
      zm;HuwQ{I+$9XHslg;nR4+H|g}%?sr~sSV|ai+5dB3%#nJM6bZOj&<tFZ3JEz1ujWn
      zmOCT+1xBJsuj;I*z>^j4o-9?AK%Xlcb&k1W^t~eeva@<4sNT_^3j+P~p6`Wc1$rhX
      z*93YOs_QC^9_+WU59xgn7_yK=ieu69)pBE_q=MC$ohepbSy_|R<J>IvhBv&rz;yBd
      zcgiwy6K(aagn{Rm3zKWQkWpR82n$_Tq4X+Rbyp;P?ULWMW8Gw`tipxZmID)$dl)lR
      zBP3i2rF&~NkZxqkQ45EWP9u+_NgNZ%c1aaDXlmhJd>=CcB{xhv;~H^XBgO?1wR&r3
      zI-+-DuJHt@z+h~Rna~(pWA5z2m}oW|R%1VSM0PZ5TuS1kz-Z_4#m4pPDoEpVe3`@-
      z0>j$@-<57EH?(jHv&PDbth0~o4tlg$NaHI|;WX{+_+()ojzE(6%W{M6p1^1d=h)2Y
      zyq;XJa1jgKc3G<_f1L-a+X>mV6xUtQ7A;zsfs?{zf&GPibPd+?rA>{`V^M1?QmtO1
      z(|chA(ks<Q;HpcW-q^9Or*}pt;}~yB4}X39CG>^irBCslmx#{+&gQu;IHv6_ShjeB
      z!9O`mV3^NA<^t!?i&<uz$9tSvaWpc>a@3>|L%PhY1jhk;Y74ops3HrQW%5#l8jZsZ
      zO1~YzLBcfjeFOc8F*<X28){GQAZJ(}@UtQRf+74G(erU$i#}}V`b`_5+aALqqvJ%n
      zK%e~@gMYN({n4V=)_Gs6^TRC<ubAX4Jv^cTf74D5O?=Q<XPwWGNe#|#w_&qw*y9HK
      zgE2Ixd;c)z4(MU3iH|zL_gUEk!X9!z9<|w<YZ;Kk$M__wly|h7#N<wisZNQ<lz2jk
      zr<8cMhr~2KjU;9wN43On+y@;s_YNn1w43;>iMcJD$((KCJpKBbLopT}naW(!i;;8R
      w@a-C_xU#(&W84nlIkjH!{W<sUCB1sZe}muKs+lv@9KsQNi>pyJ#fY)=A0(w-<NyEw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementFactory.class b/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d26b5d09432367dcbf56d23caa3ac870c406869
      GIT binary patch
      literal 1998
      zcwUWE+j84f6kR8ED%*80ansO3@1(7*kSOI63Qhxw(=;X`4N)$n+(xlaY!z8bB{|ga
      z&UN?zzM!w=rDezrugvfbd<(-mb{rSSDYj>{b=KK?pSAYhI)DB1`yT*q;=YDHflS$}
      z84v6o`;k!$>f4cTd@1Y3f~-%M11YQ0i{|WN<Og*PF@aOc({OFCY~0&?Ad8W}(MiX1
      zqA7tRne3WCEbo_O5=W3op&v&DPMVG<7i-l`8LZfwt`ta{e$jT<?7&g$JuntkoKQeF
      zd*zc87%0nV$qu6WbioTF+bc59?Tp#xXhnhJm2=tdNej<sZRE)%F@Vz=(*IG~%#y+&
      z&M2ONQxzD@WDlMb$4dfzrHaaOE`^uz3iHT^HQNmfWzP>}-VRCeOgD<`#sz_qu0%@}
      zW7gT)a^$>p-Ky<b(ksaziStOraall<ZrQHdu7;}u*A7c@$GxkZTESOT@HGkwgY5|o
      zHw3PBja1u)wY)U38mh4CDohuM6CVxjkcYl@*c9!DTJ+1i4$GXxh)Q6Pv`P@Up@y3R
      zH(ngSVp^^6aU{suv#X6kI#5T>V<5wt%falu>(5QnOly)fydyB$Q#+PrQ93)SIJc0{
      zFnO4qb`RPSITi8V|JHuq52<}hInVS|ZA%7?{L?DrPA>&+Ma-%K$61d>)|g-9Kx@)#
      zk>eVcjB*-2Al%00?XW^Ti2@Sp@nH&!xW@~@E|of_y?JSH+LQPQmWE~Sw-e=k*X6e3
      zdtnMISmotW^QwNy*=pPrJVW4erh`o<JAQ!`(mrh-Ajqwx<=29uoO9HbbGFN^GNz*V
      zZIC_GFNQvKjd87U^#-k=?bn|n{wrVlkmNH-3(U|tk7ImGHJxaW(<X2NC-)NkO;6>!
      zt^bLB@kD=$Qwze>(?d^j_7|Mk#rchAxM)7clAgZQ!mbc|mDr@79&TaRiDigo^mMj`
      zjSw3pHmIk^8rZR2j1zm^9C@<Ob&6cT;>WN|Sr+-OkmV|dutwSI(D5<e!Up~Bvz4FF
      z>r;Hj{}w)nhc6oXhMF2!jyGwKqsWK}Doo(*-j&`Wvv)g`=7`<yP&!5I{SKwm#PS_V
      zXNk=nR9dA{k4k+q-zL|GWFJszNTm^Z*XXxHrC(9$BkHVE>DP?-=7mbn;V$O)lm_%s
      z{T|;%fgBbV8Y0d0hAw4>n<m>dV-52gmfB1&Hu8LnIKCt2?|JGExPTuqjGuU2{=7d^
      Qab(z~b*==vq@p+e1&GJ=uK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/OutgoingMessage.class b/libjava/classpath/lib/gnu/javax/crypto/key/OutgoingMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5bf101b6f8a314d042d7be39bcf5f9105e447187
      GIT binary patch
      literal 3590
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..251a2997cdd6c1426a2b4954c13365e379711e95
      GIT binary patch
      literal 4882
      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	PE(J0(VA&n9Q
      zgv_OhIBCT{nNbrl)`q_^+9qbW6~APLO=Q(}+TY7e%NYBExPeyO%wQk$9w5@r((a9v
      zX^g&`HAtd@Ic#Dj22jc9n^=z||D`&OzHeepsu^{5RE4>?g*B>SR&}h?t?)3na#rd#
      z)H43hvR3bx83)H;#_jYZnQ;eeY%$|KW>?KBh31~IX|d0u#a$ut<8BG_LEIN`=`PPh
      zN3h?T5#WP(>?9hqRQih4QNj~wTs4oZ7{pf}#$>rTjHg4MXNK@i;__RAcus9qX56~l
      zGn6w*xGQ}vpy?V(IEe4;$CR9f7id93`a%;GdWGj$&IG~lIdKH1^hzs|)g$85d18_|
      zCqI)fC*7^k_roDL%kEOkXC-eMLnV6E5Y7c0k}Iw(S6C3;rMObY()mK{5e>TH`>P}l
      zCW=OJWsW%e*`9!-1l=$yaSRi2l1=Xvr7!Z<avF>95?b&w;dhqAIfs6{LTJ89h`mOD
      zyw0QhA))sM4iSn&c#{_1qSkrtdYiMK;^+7o-r@5v_yzt!;J$}niBkNUp#P1i#XDjW
      zekW$(_l)QdVj<oYi}5G19Df!;{8ho`kMb!(IRb@j*tBuwbwap^JFBe`{avqUQ><jx
      zs1)-RZAz3(jTp;vMXFLIvqp`Cu_Tp4$<&CITEgt!ASkDcIz<*28b};T+%nofjvpz?
      z-NJj4q;NT_ae#Gjk#a+%-VKU!r%CuXIjUryRrm>`uVSVasa(w0B9;6PpSKio&i@Bi
      CmhJZd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60a834765805d0d6ecb877a4286ce52f50352311
      GIT binary patch
      literal 4528
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f05804fd185a1ef2d59d4d78ddb68e2f5d5e58e7
      GIT binary patch
      literal 4928
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb5ce608d13bde68492150ecb679f44b2973c4cf
      GIT binary patch
      literal 1058
      zcwUuLT~8B16g@*LEo}j*fC7qwilypq(D>v>Qs_1`Ep5|6jrgz`+F?7e-ID1P>A%uM
      zqw&EX;Eyui-D0f)9(<X(clO+K&$&1I^Vjzu05)JoFvhUqcs=uopYk)aq53DfV;+mX
      z*=(6vd3Y$rws74x_X?t)ag-2k;pqs%4CzbDHhEW!LMvS9KErISyjR__>~hYoW=h%e
      zPRXj(7?MSwz;wCim^H1W=e%T?-0FB;%{^V`Zcjup!7xX?j6oNp*)oo~aiTnj;eH`w
      zXY;vS-m<r?VsR%^vdeEvR@JUl^YzTGWf!b>Q6v~vFA#J-ctR14Jmp##B%L7|ycPU#
      zt@w{K>1m-3c|&x~>~>{PLpTyUw!hCXKd{l}x@B%kCr@ZcDEd17N_tYiVF;zx>kQ$o
      zPLmAHQCYJULkKq$n87Xbm%2CzzhJs3JyGhl4}{v~2d?lZ)@g9J&Xx4@^T)7m$u7h5
      z;(u?FG$w`TP?uVZE77cph7y_>Q|s?H8DiF1L!4+y3yEOms-2G#4htqg>q%f5*JF5y
      zM-i+sEd41ryQ0xkQuocCmae%+M*=CV`&N`}Gc2YqA8DW}K2Tg0U7`IpPZF5K6sfIs
      zda5CE(x1ulm7WcsIlMxJA^Ho#Sim)mQx>6Y3{lEsBYB(<#2z5Y4Ba7$W{@Pr4a!~+
      zhS42KCuhH6{!>u2Kxd3@;E1S>u}D#30K*b)2V{4!Oo+Qd%y2Itdq$Cuil#qf^&1|1
      x9I}lE@0}5*=#VKr6!ZFAOgzoL;IV(K{uMM8_|@dLN8(OLsN&~T3{L~J@f+em`pN(R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdc4b3e0d32e357b4587ecab105cb2318d14b14b
      GIT binary patch
      literal 2816
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanSender.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/DiffieHellmanSender.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71253615473a4a90643133dd05905e57b305899a
      GIT binary patch
      literal 2956
      zcwUuOYf}?f7=8|f1j1S^UMgxeTG0?7sg~Zv+KLE76QBlBuoai&kgO(~bh81X_I|(L
      zY&%Y;pF7h}wo_m%ooYXIraz!Rpg*McIlGaIfTbUD_MEft<$2!sIcM|dKfnA2-~hhy
      zp-P}7ZI&Vz^$C3{lC;VNJ0H0u%aK$j(q)W~8?sksvpL;NNHZlZA3OpF*5q(fmXD?_
      zDRa`a1;muVmY8yi<a9d|=`_+&)0SyzbqIJ58>V3&5vUF}4+(gV<x|p+YSe4+p;lmh
      z%rIqNDK{pqL47PM1sY=cq@EqpEkms<n;tu36b0I1Yr^LeVs^hY(~KV_1O^VeAWOE9
      zjl}grhXUk3K9!UO+sK<mA2tbuR!p#%@VrAUwg_ydeb}`Or!wJ7dbnVj>3VF%HXj-V
      z)-6e?VLNuP7HLU5`zm;{x|xpjk6n~WyQ6veRviR(YS@JU9W65@u){Sf%4Eqh>~bWb
      zCi0YSrt&$*e2<1lu$NUc9Q(k0)fRjd%1E^0<HJ6IZL0_MAxI4O4^oQ|6ECYqe$tc{
      zYhq03whXhDKC}w#T~c9#YO%)kq%20ddIwxnR$MU&Ylz@cfm$aHH(9pWTAVv-aZq4;
      z&L|cQGaYc;_ZI^dAOQmLV<Xy?3Lj?|7q=o|TXb>Nq1#-Hm26p5Qe7$^iraFiE6pxz
      zo4_Vld;?aV;EHkn^faa17hGAyQ8Ss(F>%F^QdrTfzhtNLi_BD&p3!gw&$8b|TNZdA
      zqke84)zAsT*ihtYaC^j_TGCc8yEGhEFE=u0f%Fm?-I6Kyy$?MCyA}vVvsszevk9Ap
      zTO|G{LzhfBRUliL3KZ3AKf2K_P-U2^PivxCj~4W4=*NIS9nZypZs|EzyD8Ybw9!Q-
      zQY}{RC3~LWy2FoC81x|_u=_uaHJpaJf>aWLt(Ex8?kpAZtcKycwmquC=QO+kFAw10
      znSMXc<AM*P?C?qfH0T(kVvD6Q+tQOf=;7eXnN|gG9w`kH<E+S-VaKQ=JLBA-PGd6~
      z3|yohS$x}VY-ia~Xie~3XY-Kq&njV4nBHJiZ7B+Q4K?tpmoI6sK=V4)eD-}XFVMIe
      z#;6Y^9@w>L(GMH-D#4V7GA=WFE}t66Pf~8HME{?4v2j(y%Xo#=o#X{1;{(zAAZP!C
      zIt^(uEsRogrQ#^>1n*R(T2<#d)e)A(Qr2EouJ;}{Ki<XrKD@VDN$!!ih7XjEe3sNx
      zL|coGc;@b2N;%gi5Ioqd8uW>VPnE{1Mn=@~a}8hMOHx%`%2LFnGQzjH1H6|K`I42C
      z-G=%$Ze8Kq7goTqn_;T?cYt21_ng&m&hIYAI<6vo3bh-Wh5tuRs-SW7I-4C>$5C?)
      z@Br5H>A?m(NUH{CPAX2AIVMqQPPa5{zKMsb5D$rIJgkP@t-qt`IvxnM-bNGmzDEOh
      z_FqT6+SyNoP)kFz<8&J>(`XC*jJ7|pZVnrV8xG9kv0DqU!l>ui#gxYhr<=)punoOv
      zLKLkyfp(n4F~m5FV-S4~{D2Fr0$<IZz>^O97@oq@jO@W7QoWawMZYRO4-(Je9~@Wg
      zbstVaw(_?#)G~|bZm99tjX87=H}uZp#I1R}4U7jQumeNbgR=-?#KE-1jXaO(AaTc>
      z9(689BC1(@A9u>CGB*(yn8EY$MT;|itv_L81}`4+G<s%`+~B*gp*H(#?V*}bW6ccG
      zp*fr%_B7Va;?gusI+~7o;oCcZtA+9@e0S%sIoQLqm^kEZ^r|M9tuvUM!Iehujd?;L
      z_&Mq%F~-76{>K<6c!Pz!$aZ8g3KJRRF@b_ZwATebPqbVix{kK5Qe{<)GK$wYt7fbr
      zyv~`25qt0k-X!e|we}X?b}Wyt(4=des}i@j%;24P>s{G=sARLaT798b#i)&prtxve
      zGmX#00;`=4$_eJ1WYj6fE>kv_(S|F;a@AoHa`VhHX|FJ;;Ssv#;0s`r!>O9PUpcYA
      F{uf2v-=F{h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e321d6c1eeab83353239cb84aca530ee35d5dbcb
      GIT binary patch
      literal 1075
      zcwUv0U2hUW6o%g^2$WK**w%iiZLJ@a+TCdMN@D`JZ3vV$Y)fLjAk*z+8M`bv3{Cl0
      znrJj$_yhb=#<ROfh@y!%JLl}2^UV96+5P_G>o)+8VI(odu<iPN^DV#Nm!_izUEMLy
      z#lSpknU=T5+uW;&LBUl*w1uyeh%@9THWYbJjF%pAr3Vc2_Q7$zWHk?VoApBN)xmzv
      zvTcTJH2|0%_g&N0O8V||hS^fb?`iJq2KV|Rg=vNrI?ISoF@)y^dW>^!bd~QitXB$6
      ztGZX%FI1a#t5iNLTeYL+VZGca99hkZ^*V)2<Zl8(2}gD%2_=}k;93~uf?;hk^SD?o
      zmm=g`G=YC3`=_3CBI4A^3BzLKx6O6SEK0ZRYvBq-o)a&mFZD}?SZ=Gq5HEGk$oV2e
      zatKZ%hNTR$SY}wr{W-RvYpyDNQR}x)g*xJ=o(SgKak$suN(TAxWn8ypk71|!A2&`C
      zv%+_YZ@0J-XSQ&Z(8S7Zy(u!JtxHFAwWNzn;_lzRjd9?pVHyngGPs88X*@tKiH8iU
      zzuL{7aQaH>f!Wv6Gmq(!!4~p?2_@U~VdN%HG*mScDXxoNAT@1w`pOZzGMK^A1dm2Q
      zif@pf82uM<EaM6ilqD&fLW=VASUyAf>{x!4I>-dYF^aOdK|Ax5J)=EFYcii*_>7w$
      z!r~QrrfCISLbR|-Q6?(GE!+-|zk@ZZSPx@{jS%*PqM$03|A@^mxc`1cON8&eF;Z$o
      f+8&8{Iuw)0vrpLkUCTQ%ti}k5A%WphSh@2PTPgrC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalReceiver.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalReceiver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24c52c99dcd6656094734e71e03be534b6a63945
      GIT binary patch
      literal 2008
      zcwUWF`%@EF6#i}uYzT{5h}2RavE`8m%@$jWG*+uTqX|S}tx#W=&F!+fkIe3d!k^H8
      zr9au30%M)2{jD?oqdGlzvxJ~wBs1AP_vW1MeCM3+-u(ODpML?Ef>01+m@u5C_JVKm
      zZB6%f8iA|56gygdQ=7LIxy`Lrp$l_McnabS`42eX6FavJPY7E$0Ry|kFkU|5ZaRVR
      ze&)LHwYjCLXKwL8P*9Pf_lD`1!A*u!ne0P`_^ewONt{Bz3Iz#<GiB2e%T0Sjcn|o7
      zB^U<FuFkE8+%x4m+KdOArq7TqpRg>-oD_~h*d<C&pqY@c)(lKbtMEoql1a{Q>!J~u
      zuH!36G32^}cNX6cNMM*@g!~IF&w{WFnZNLo7aE>p^y5566nw%ka3rsaPjP{oVF)5M
      z9+9%RV`wWIFN7Wxv+r*yxJ0?aZC~h3&kT07nl!{Jcj~U)2ZpqYEBK6nJ*Uoap?th|
      zF@e$6#Jf=Ugl;xWDwK){hghHvC>UoLJ;}T!lZ=WU^d^vFxM-WcZ#qW04V#W&(*&Eu
      z5GJJxzF;`l*@;@<QBZ3_JfOu!GZ4O%%Fz)rq*^1cdM+{XEA-_CiDfy{T_z<*cWr`>
      z9E-=OX{8w$Zikz!>MIpr;~MGE4@85GKq*O^(<-iGieZRg8^p1;$vsi0W_uz~@GZmT
      z!=g%-B@AxW0;;}4MK>7EHXX6uph1gz+Lu2kF@s5lnCZxKcA`p>xQ$r_bTCIx;;&*3
      z^9+h7c)e0BF`Umty0dw(sogP+5)Ig(W0b%m)psyQyA__!OlA8qhLVcA5+_b-ek3=_
      zDk@lJ=%bA)_qa_{8;hXZe0-`^sz&}UNJceUQvp@1D!9*Z<%7;DY6n@XN&J8x6_8X?
      z-T13`gf+T^Y`0!@e_@!*bT6~}?lC=)diY7jV?3cDt*<i-AMf`}#dC0mgp`Oy6_9o)
      zB4(3pk~O#K>0-f@7hLL{3#=d^=}gm+rdypN<f$SnPBvYf^z5URMsG&%p4>i?zmpMz
      zO3&VKa|Q$SR9g->jWc2RS$srZgAvqF2oq3}7`?yD<p<Bb#>X-Ijf=auOv}%s<=8GJ
      za(`gr9}K*~(Ar>jANjY38HXtYFiSZWa0!c~g(V_a3K<Nyup<W2Dul%2WKF%tr5<s~
      zP`0bTg#j4B;U|^L@8g?SZ!ohqSlq{VZ`&MBhpk$soA*9(sCDGdv~y>06Su;4Uhk6o
      zSF$C>bbb%tS0)c?U68frCT01ru|)q9p>dC44=a0ku#5Fvd>2pIt2UL9a8{40DNhLa
      iDZxLZVxQw0ct|VVO4Ft_9ntE+Rcug9jBGtbtN#zF$n|aj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalSender.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/ElGamalSender.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a1edcab3f21b9a850b8454544a000a100d7f721
      GIT binary patch
      literal 2505
      zcwUuNZBr9h6n<_D*$@_`fYey4SVcp?q}tXOP+I}TR9>P%EMSY9<hm?wHtFt0q3>_@
      zLudR2o#_wgC)+77mQL-r&h$6*x3qokCL&a*G&9*f_wKpRdCob{z4wp5e*P7}aeS>I
      zB+z9#)%3h^*H}mw+{KDtPT!G>>Ec}aqCISs3_B;CqI5Nc1$v(2dPOc?FkLB2((whv
      z0KrE#xLb}d-P=Y%dg-Cd*=pXl3S84K5IJi(mVaJgN1}UDAUs$u${2Q_Nr#50z^)O?
      zkz>_TUb+)T-j)KbBjti&Pa3YJ#`VdtKWBLYM@P1m6XV9DV-h*T;Dk&BY|~ZWveTnR
      zrC(8rU0f*0if@%2PeZ#va#QH_nXfH~qC;RW{Zlp1l(bD1J$1)ORb0nx!XE6^5Ep3P
      z5Ld@b*vC?slBAB*N!f;DrpNR1vf%f3KRcyiKVt>co-9;d%U?|Alp(JfPO)5Sgg~c`
      zgLs9&u2U4)H?p;Ne-wvnscu5ul?AI}G0{{d=wONk&~QZH&^CIlcqDW*AQDBABubX&
      zS&rGc2HIHz?IdUnZRk}3I3}=reHn7T%Qdz37(NI2sxLjIl8yZnXs`7*>z2vG8|B|H
      zsgtq9<_gI;g>s3|bw?I@Q@8P|Z<g1&sia=h@jBk11U+9?DE>^0lc#i?#&Ll*!dA#J
      zH)puA$V$7?*U%?$;Av7B+m<G!=^MUWC!w<fEmcP@RM=%%?DW*<7|x(qAY?hz$M!O5
      zLKiOR7{H)FBZZYUT%*L2btSqtZc&ecRKwJF$qwc??vLRjhBaIgIQU#=9hZ?|9aIp3
      zJ$3wa$?)gW1D2VgEKKe_1$jls$P?dT#c)i=_>+k#Rn@CHt|3RsPTUw5=-3MCI&Ns7
      z8rnDeuHzj{2}HeW-gk`x_f#seInb6=uVY5XO}xw6<t=}NqVng0vnuHFtd3hSC_lEz
      zuWg`##Xyh^iJ5`!NwvP9bj)2BNo1Z(-PU1(FpWwa)Wt+uAifo|jD~rE!`qQ#3>KPH
      zfRYXe1dWu+#ccVWz|a=x|Faqv-q+!R`9<&X=#Zn?%zrSSRDG=KxU2dYnx0m}1s#j{
      zfa_K2HkHE-GtIx+I3~Ro^DIkcmIAJNvnQCrLcO4&8D1)4fitf3s<ywS{{Ov2c~a!c
      zRkt87S;6hG;UY+><vbhNQeKRVqRuB;VcNWY_-y1T&9~sYA-RIs4>Us1`HTdUXVA>2
      zUUR@s><X5*;01cM)}h)07@t8xe7~CPY2Ez@FNW|NUS7fh4iD9bT}wEc{0T>YNAoJ$
      zrdqpK(DV3d#12LP1{vcL_G6g)<}%4;0tOv5>^cKwr2^t%TF0N^Qmk`HFxrXlg9X@&
      zr@!`O&k9aHT*aBG*8UZod%VVBXHcp!-e6bBA-67eVl8$8=kaDx&ePAv7N=+{4i8kO
      zkMNejGKNOi4c;EB4Mqj}!o5EtyNrpxhIqp=rdzaIEm8ZIXkR25k1XT8Ra~D6$0IAq
      z_i1r0aFySpIj$*h`Q6`tuELsH!JWQnJbEmy^)AC+MkN^!*X$+u$?y{H#iI|`5<D5C
      zG|lG>OLCJ%o@FU-;T(%L2+4EGq-CLmd1~3leOljezo}I>Yl*ED;z7L-&G-x-vREM^
      udiaRe4&u(?V_IRN&*BqW4UCb+r}T|5%6WXwIgRL@_yS)BYWyl-dH)~jxNfKb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae3a53fd4d867ffd33c0a29b49dfcb5e863b35bf
      GIT binary patch
      literal 2703
      zcwUuNYjYD-7=BK&>84=|B@{|6m5U-tns&LP_JVDpB@&=mXe}tRNw&$B?QXi+AVm?p
      zfAoUlWl&K^aU4G2j7?Ey9Q?$LKg#hvXOlE(>o9ys_nh~3p7(j5bNbJ}fBpqv7e18X
      zW7v|lit4m>QM;t3ow>Ygs~7Y+HIq|Etm2^~NA)=w5<@eOP)*IsswYy@dfJuIz_3<W
      z3wpZf819@Zf`belb>$4p)txCVtrt{LkAclHY)FdS8O_b9gGM$%L0R4DA!nX`S%#*J
      zKBW~+ci46)h-?W4f5CMa!pTK2W3FRZSxRf@H7vvJXBdtoRxbTG*628cG-PM=5d2uL
      zU@bP#>5=GoBN#R+Xu@i~dO|@XLVUGJ!76X{qyhyYhBZmU(vKHsQo3_WOPM;yZKpMJ
      zTyqS*FB>H{XA~H=B_A~g>aj7ayQ7+;%}~PjNHkd&UdZcdB3Sr!VtkDDJu;qQ*!sx0
      z5Vj-2yNoiZk;fw{gidtHh%>aT6rrFSDnU;fZc?|hZcgx+;3w|lC+=q0`B*0=_-qtn
      zV!+JWB)i-Uom?iPP7^`wXYgg{zz{_rw$e1t3=tlQo*g9HAwBQtY0cF$A(~o`f&=Jf
      z2t*RX&8ha37s5dd$asNxtc++;@kQ4#RWI%|Efox6h~QMtBN$^j+i{N*)eP&Y_Da%~
      zDEuVJs?x;rJJF!e7B#cLOVkwbE@Dsg%qqx8D0m7_b6SroNaC<pc9c)&xPoDfaM!4U
      zlNHwp4Z==M*I%b{Ng+#q={DDEZ0S{|z@Te;jd1P1tY8hAWt?G%EhkG$yM}G4BLvH_
      z^Sa~C4G2pRuQ04O>AG|m^gQX(wVe<qagOWbwIxlLS>w9Xkd~368&`kKK$`FshHT4q
      zY}4cl%z)TeGWMurTr^DLlw`2CT(p|D==4zaM3?g-BU|?rdSGN246RG8gGIy4=+sCK
      z=YlY)!@38pk2@>{Ht4-;(DHfRB2--~wYtnyF5SaRIJ^WYW7A6Fsssj6qz5z}#On<5
      zY@by$P1?{)EY0@qyu>x~hJtYn1#yLJd9np@mCHnUb9kG3_tI_R8uS&2^S1vzi>}s~
      zU3Aj=u)*KArpo)(%@d@pq!K@T2#{n0kofaS|BEF4c#5wgzAgNLrSCgjPV{Xg&su~j
      zcOC6M7Wu%o*aBK&?cYF_ZbNFHM{6uTkG5FXJlbPz(mXnTqbMIX^H>DwZ;I+<sJ2ek
      zGgNU38<0gib+{D<wot@guQKho0b<3GFtOrTePYGY`o)UlmB>$buZ-?IRp9a6vER}5
      z5bN$^`y?&f>DRG<9d~Q@Jfs9_W9Qu}($%8!4Dn;3m1fIPDPF}gDuz9T(>tw;zTD>z
      z?^`U<AWUves=u0g0MAm?bD}w3U=QthL}QG=w3hJv(lVE8$~0EX^i>h;E+Yu?{CntM
      znt!z>KUmE_gu~^0wVWT|WGqd7uO>NAO{UkZoctw4bGrIFA0ptt)A={#uf^g4<YS!W
      z_#ZgJP{NBP9Qz6zIq4PC31JFIcl>uyFOyGbq@NOk>ook&NP?e}Aa7s?zM!^m2t-@F
      zQ>!xR$4eL^Of87v6iy3H$14;uE*2htla8Nwi0k(;IT=2?fLHI~`~yrS?;|(axq#{L
      zg%W1GG0cWtT6fa#n5Uzrc=#giCT>$t;Y(gzTXS;>muW46C*nLj{HEt?uk#7dTb`$*
      z;+crWOSm?V2@Y$K`Tf*2VI={6N0;wg65%bfe^1@q!an?fUi?TC_zCCmGp^t^KEf}=
      l%&#@P+${6bifeR*n~8;eboJh)Y5F9tz+N%M_r-}H{0B`EVTk|$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21708e4f450a850981886f35b02185c15a38bf33
      GIT binary patch
      literal 4686
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHPrivateKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHPrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea6c6c3dbb9fa67128538a30bdfa468613353585
      GIT binary patch
      literal 2989
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHPublicKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHPublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ce1e3aa7a738144bddc2b8b7bf68865e5e18b01
      GIT binary patch
      literal 2990
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/RFC2631.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/RFC2631.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fde5f69b8bc22d992c14c2df1fd3eec91a29d0b
      GIT binary patch
      literal 3411
      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
      YqdzjhpNRirJJ+gaHRlR*_U<427lXRp_W%F@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6Host.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6Host.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26a7ff427013d966e892cdc3f62f8201b9b6f1cc
      GIT binary patch
      literal 4805
      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
      Q%o9b#uHvgl=DsNTFAKjFR{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9122ca787b90727bd5aa3695d59b5bc8049a3d78
      GIT binary patch
      literal 2064
      zcwUWFYg5}s6g>+92_qn-Knf{INSoFsV6}PBHqfMgh}gl{RI*7aZ5?56WDz5KBsqZ(
      zeSPSpk6+P$&`uvo+L`=-{-{px%HVi{>BKW$-Lt;;?75GX|M~Z?X8_*Cu8cm0dE0Gi
      zyVe71U#oZr&7h&(=LeeaHJ3Eg*jQTQ2MOEbe2=?<4Cy5Qq~-H&*A2@H4j3lPLdi(!
      z<-%&&NaWLn^}KGH4C6ULpw%tc*37_jTzi>eB-L>Jz;c64tKQ-Yh8RxMS@HHMaiJ)F
      z--<Uq*Jc<sGYLaam)8sFQm$kwQ0cH9-g$<hTY6qM62*d{V63+n5sqXMW~RJa%BPCi
      zLSDgmZ_f;QmQ39!XVZGVm@RH8nC$JDJ@VX0nC6{=kyh|pZ_g&fsZ7Bvc09}Jq=GXH
      zXL~tYzW=b{RpZqihJj+n&~=8Xc0Kp3pr$1qJL?AA<{s6wpTZc<<&O2txBR+jvgk4S
      zF{%@zDzG&MWu;PgTqn3e;nCP8gOqAi`2gCV{s>~YBx9a(>2;`z1uQbi4@46S_ZX(5
      zw`0BK4S_*Z@j7N1#&V9!^R2xd?iH<_Iu|q2s95z)%X0)i+#Fm9l_|JNvP4ND=*N<Z
      z%Xp7rGJ1ThLj6I_@fjA5SK-7-r;?0w*CtJ7&GLBF<Q0zxL=}x~CmAC8euXy!hXz*0
      zjg#&~H(@70B>j<!3z&@{iL{Iq!<nOS&F7Vt=L82@D{$&si53+)Rz(h;v&S$K?On=H
      z)o@#}!F?WxW3npF;+(M7RGi1Gu+~+~iFyyV!du3WK7sLsb9!$_@G(po2E*+CPMV4$
      zN^~P#{xI#>+^34hqOsiZ^lO%1)3WQ__br>ZU6+S(2U{{eVYv8G0V+Plw#c+uwF1gi
      zj&3Kj+1RGw`CP>ppe7GiLsv1=cf}N0v=z;6C&k#X1bwNjlHg`|`z2*k5Z%naa7@fb
      z%d7BJM~v>|i!&A%T+$phrJwGVifIgBkdREM4+`N(7ak@&(uGF}pX$P|5Pr1_PY|B!
      z!lwyOci|bjcXac}mc*2V&+~_P?(lgbd=8M7H}ED!UL+K!Sn-KW;H@W!{)YIkA>TV<
      zFZ^v6L%2(SF9?xDRXvKmMmvn2^8EOf$GG-lpilCGFi>r~;eC7%Qe4L}d8~vs!-pZ+
      zWwL~qGXFbnK0)G_4%=Y3zu(2AbeL{+#1sz2OwO}EkP*vmvE;;Z^SQJsh&SJtw0=c0
      zzs4B8q1t}iMLyXf&l72z{AWTUZkfbo{=`Q95-GecElx}Q)6%o2*p#qvZ0B#pwxq?U
      z_>AE(%Fpwep^Sj<D2qqb_U{S*K&|?bUbH`jGOo6dI+P)-9cmm4tqNIUn697-PJ=dz
      OMcjiO*0C0z;QR;9+{#n{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6SaslClient.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6SaslClient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0255854fa80da8c3dfbd97da46f35e4253623310
      GIT binary patch
      literal 1268
      zcwUWE+foxj5Iqx?tb`SmiwKAy3T(n<MY$+Jl%Q6n63}uXYUOE3rZ%I=ZfY+|KE{90
      zDizTxKERK%>`5YM5vk;%dv@k@_n9-@`T6VnF@Qy+R74nb+X;;~);sIKD0sDM;2Ljv
      z&G5bIiebKZzG7N_d8;hA6R1!aX3j_NX3YkeA-XOc5o|DY=<ytbvgH<e3?1mw(1|ER
      zZ&o;bC#>vqZ`ax{bB4aGTd>MG%M<duxv2yt;WH$%?b1v#^cUPpH4L~}vOHcidBNjE
      zXh(0IBkd4eIQBO8eaq&_cx%|RFtFXfU<|P*2L)aYgzNY!`iNu8xD2mt+8*Z>;&u`s
      zg&5G#gWfJMT+uLus|+kd>#WRRRIH$6q=cPz0&a6J8N&#!sTgG#{Zqy8c_H*fP&2|n
      zl#M+y8pd#4YUYUw!-(EGS3IARRVOsuz$Cp7iO4X1_SQaWDixLj6M<WpRx!meb}mrE
      z40MJrhrfR;Z0?iras5=%Q_>~NFB$2knhj{O8wt#*m}Qu1D?r0M7O2(2YS9X)SyVlr
      zN~hyF6}K4%T3udNxTE1NmME;)B&g^lNel*7WN)t0iJs1<WY<Q7!!X@m-%yyx{jePT
      zH{xsyMg3GQ;MCude2RF;E7FX$sTOsh>4si`KNWIP`v0AS1(|?em>wAN7oimm9$A&X
      z4DyV8XW|eSKGlz7WTW-X47$l`4FLIz<Q3Vhgt}B;GhD8x`9SBL<X023hv?r<e8%86
      z4DXO1|B9Py%CIuuF@Jo7xPrtF7_VvL2#XAdSpI^+xsNA>N2oMllHH|3do&L@OyVV$
      t@v2T{sZpj$My~GRKGBHM|JWLml%)r8tm6UQb_f&Lz{5JtNA(JuzX32oLhS$m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6SaslServer.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6SaslServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..401fed7a5ff09f9ced74205bf772b8f62ba2f108
      GIT binary patch
      literal 1205
      zcwUWD>rN9v6#k|xtdtd$n+kIA0&JJd2qIpJp!Je86f`arO@A%h$#%8fZT5onEqoMB
      zR74XVz=txPX)9=KNcYD%Gdt(<oo~MR`Rn^JfJHn~kzmjrFXnHped~bRL9H73{GF)r
      zFsQC@^VQ20(+bO`2=+ywLSdLWJ9;~3Hi8+tR$b4H))+eURGvY3;ul2{9q883i7tk|
      zoa>3LxUwgLZELSA82WR*ZI$y@;L3gTrxKOikip2c3p33yVEdJ790{{z1)^vQI}j1W
      zmfpHX)}wIOb2dd7T8>DkT8F)eBgg+Mj3N2#z!ufW^}SF<KVfW{w;^heoj{0+@S>9h
      zNyMOrUi5W?VOYZ@TxMV!w9d&2ykbQqo^hS57YT=kN@4_8Rg5x>{^`O)VaI_R)p#7a
      zWxhj3!x+XTXMtN`7|~nTN)<A)>!gNjxK8&&Br;6=KXpi)N`@uD1mGs7RZKCAof)WM
      z20BBxC*D7G9T5`oDgBhvQ_v+VEb(lU%|>Xt2L|R;%rZ>1m7rlB3naC;TC^e(i>eng
      z*=#DW;ugbTtKnsbB@MT+Olid?Kt(4?lHgd8+Pq6AdbW^}s!g~a!*qMPp|mhliv+1P
      zQOHnL37B3?o3oRiOg|26@!XZVANW_*3$g&+7hM<Rm!K6rBeE*(IC)0C(>TPrPxa#@
      z*{=G}4fK%J8Uf_blUJnlDC$Ce&2X_^<^!E8<d==vLk#R1pE2|eS2oE{e8r8e`MHj{
      z<0GUL7(c+@DDy{HWH`i~FBoDUPr8m!U%({0O<i^{j65c>izU3SBQY91nn>j89_|x{
      XUQFWw(o|&_<5<N*8kJ$KUU&UBp%pOx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6TLSClient.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6TLSClient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..158119e4f8a57470fc948ef43bc4a0dab36e0c75
      GIT binary patch
      literal 4230
      zcwUWGX>=Ra75>JSEqVNciLjF>3BiyQWZALWq)n*|p>Yz3@DkT@OpJjtmIiqoX{5}I
      zVw<Fa03mHDOW8`Hd!cFRW+0XcZb?ep(9(V1_m-BPp8n|RIsMh1es3hNl0%M;X5PGa
      z-(9}@-TU4v|9jy@0B^$Iy{J%dS<=jfN3;XlSU7HtXPr!VpFSS8t?ZU?thZ-NUuSH4
      z%Fs>63y*@(*@Zjw@oh;<*VB|&phOk;JEe3urJ2ca%&`nJ*~W#ef{MX*1+_U_x45ZC
      zGb{xw3$nHz&sl~u9xg6$L-iGgX*gRIR0f;+6?nF161s{?)Ctr=D5&c+Ouajo9@4Eo
      zZ78KnyP3F_>ennoeitV_&ah!CXzD!2kZD=f%_Mb4X`V`h1rKwMkqUQd**58nx^pb9
      zXB{JB+Fq<$3ZnVQ%x>^uHKV3{YeBMAy3o2$Yt33_vKDKx&Wj5bEL&hy;36~<iKI@C
      zE)CAZclXeU9(UTBN~gTIM8WEX=*Hwg@72siCS3ys8wB2fOR3m06AIRLE-l^WLr_6|
      z8NYXV5mIpe;*_gsLW{sgw8|V<Mw+{WO{L6`a&Hu5<|d{*MdY1fH|0?u-mIV@ZP+%&
      z8izG|xbc>p8J8HUScxr?25+TAuvBMLzlyhk2t*WISdtoBvr{thGVcOc;7SEP!?YdE
      zjFT^$%jqj6&wM3q63VLt-i~c_os$YKdYv6UY%h;yRO;F(P=#tAu9*jbteQq6K`Jpd
      zK19oJ&wAmL8af3y@}YaNhOB1WqZy0YRyBvw4doo&mc_J?<gC>+W$Fu+&|_udx@~vy
      zuO*35cd&dlMa_67O;bg|a=1yc-8m<jnI|S4-XqYDDpJLE^sLH>y#fP>DG;`9CZff-
      z<-(xA4RYZE+RD=V*sx~l33Aoa*{^OQ_H+4*rc!!ROT`?`(dSj*&E#v&)W@={6Ft#r
      z%ViZeVhh7IOjg*rg~wi2z^7NYbw@^Vi$D!j*`<aB5)fXDu*l8@1QiDA<RdL$N?zBF
      zvIg}60a+QAZs$_YlCCX=RD}hiVJ~HUQ78gA98lo3bS=@<LvF2_Db=**42Ro|WYl!@
      zq;9#n8WR}Dt!(LJ*NUaZ4hg)=6-#<?n}UsJZNSC8e~oVHmgZzE6^Bvh#T^Qk&oOfs
      zn*iCV;t1+|I7$vIEP>e`dQ9Nmcn^z_1W|B#nTB~zE!2m5$dpAkx_!8}bT%m+zF*)0
      zG$^Pd9dcPY^Ps>(c$f_)SqO~96PSUv<jhm?C?50T1FYGy0s<ez;|gkc3iRZLQbt_C
      zni6G&74BgB`w;nZR@7&ORXl-@2z*qsz(f55veG^-@Ckg9<jeJIsT^J35iFnW^0P}Y
      z$cv}gSjsJ_IF8SF@o9!N<MmuzE&=xNA<vYjd9p3xOVePxZ2q4U_&mNq;EP>iuiP=%
      zUfSCS+ua>cVnQA$&oJ6xlym()JjXng=`q13dHhUD={!&VGRMWdnZ98wGb%44?wRx`
      zo)<WY7ubAd4lUz=%ZRn5Nh~ZCviPOfyRXejtC+@%0;guuxL4NUR|H;?by(H6t9R#4
      z8S2*rzV0SAok{d$M&;DY0^h(liC3C!#>l3|6|^peaQSJe<y!*ZcD2~KA;;3<j-33i
      z!1v^2rItuYe|{kFL$@z<$bR=@fuG=~+~W2-xA_E?GTbk>|6Je~_+>G(DP01nT<^uN
      z*$w7!pKbPBWD`_)@2uRHWg`ur{T{fu4atiu4|OHS{}}%?*3enTjFi*(=eeZDGC3=*
      zUv0Qo(gk<RR=E=wGl)uF#w$@Fk9m$N<YDc;d3x|&O$pv{`CP`YFy9K_RiP=I_lzrc
      zeo+Xx63h7%1p)YR0pA|fqk&Q@+%a#Pu9{bAP?|jyYW4?CVoe23<KjuIZ}wkS{A%iI
      zIfG>_c{Jw{ejLlDv2wt_c?xei6>51Nmrr6Vx3<p+Phv;t1a`b!l)KuMYxeIdu3tNe
      z4z731tar)vIqx^oXP^Uh=)@Xy@e<gL&Df1L^x#^&gTG!3B8Cz4VL$fZAg>29(#Apz
      z#Yp97H+QgOK;xcjYWHwwtR#BNg`0NiQ{U6>R%|G|T<liyzb@1~h3h6l4FCFxY1}yA
      zf9DjmQ?ow%sSosOEpEakxEVnVxjwBZXrA?H6X)a9>XBD~ViLP4Bkk0O6bYOn(cwd9
      zPLp$}tY8j-VLlBKVT9=Hqt4X49M>1ERLI*=NtAmzBk}Q1!x)&tzOELTqC8S96SFqX
      zb0zkZa2CJqd8qnlBk&g^@X?D5vM#DOl-jG<K;klwijbJ?pTubKeNeu-<fD5Uhv~`f
      z5zjP^aByd&iY~1`gXMuL|6Ou;5_ebPI)1&EU!${M@8j3O;+H2-mB)RdfG3alOUzC{
      z&*PEPcp{GvN2)`C>Wz7PEaIKUlLH<uZY5hkB?FiI%j2_C_+rF&9Lpm$E)$;()J);T
      zse+cN)0ocV%aNLm&*HQ+8SqIr^7v{VXYzO@P!sS5eD3%=#f69(3aFF#ei7qHZJ;(#
      zoyU(to=N;HP&+|%j`HAq3co5MK7!SJjuXvW`F)VJd5ANIu^zXf1-Fy;N3acdkjZ!Q
      z5_%U|a};UZO{rrX-9t_H@?^Xp&*4FK@`u>|9>zcT{wE&6zj>(qmsbW49#d*~KaknH
      zk2z*eX0pjqA)5{O4}L=*Dro&*_$^13^x-x94!>tkTlkc<R7JZF;167_ruAd^BS&7w
      wQ;9!u#AA`nD~yga_kYG;*tA|^&A!UH8v3*jf8|J}S9LCTYH9gzF8f~lKM<u+00000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6TLSServer.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6TLSServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6278669cd2c8dd33106b4f13318d90d7758f4ddd
      GIT binary patch
      literal 4819
      zcwUuP3v?9K8UAjv$!vxR$|8>y#2^%sCG1w9R1&HsfD%bUBoKK>%Vc-58L~T@&ddf<
      zTSQtdwZ1?tiUn<L#Ud)UWCNrH`oh+}Tl;=!-%nfnuJxRres^~B+zrx`Gkfpc```cm
      zkMIBH&-4F1bsE5xcuhf(z}&c%j%?Gr^&OF@-P7f!BArH0#Id^;M_Sf4FJ9Ns(qh=%
      zhONLS5IVo`YNKaa+%}A)VYve1I#Q0yrDol<1*SB}a}mdgrft*hiR3nF1=KFxaki)I
      z*or!VNJHKgj_xGn9rB80X}6=^YEL!Wscti7$m69;P0Mtz7AUT)Y8CJ;PsI!s#VFTM
      z236pq2GcT{(#bZ%UZ=Mu41qvHDyk=1b=#EhxkaDbVLAd;`S%x&hcw)<;?!Nw>#4Ld
      z>tNb76Ol%}t5zDLuG|qdx?D45ISM9^6~EzO8$960R0fUm;jCm>nh@^P!(Fx&ABRgZ
      zUBNVg@)4J6xC}EGiMT<F=Hx6&=vF+krfr)Mb!)5gmlRY8Tsks2EplS4)vZ`6Sq6bC
      zG|a+mDz>ed!1RW(rEC3|BXCIpyH_cw6u5Zk{ub9Zt+<N02x*vyYMBGuO!9Q)a5J-F
      zwNfsuA%ZtD<q1aK?eJ1w@5cgxNlDXjC|1#-I~^76X)7vYsA3WpNf^9|5|#Nnt6EjO
      z8A}vgC2-k!ai^gM%(&mQ99OrZ#LL1$`pysDS{cf>Xt)~J&~z>eT>d&I{8%P1qYw&m
      zH4~1tDOfHr|Nkl*X~;?q3jBUtN8bmcN70G_%@r}-)!TH3zN)%Q2iwxF;mCR#iF1LX
      zWK0%SUO1S^Y=!XJsNpz`eDpZ=HB}a_vU)3;O7dh*uuwdu*qXE(PYn~3-mKBkj2j3c
      z$2AyNQLl2bMZ-EY3XFFQE7q*rdeU$W+mTzX8g7(Z6M1779c$^(Z6ih`+lH%PBQrDP
      zPJJR_#PvjrtGmXq`rJ%3r!8Yg7pusKRXB26#Re>5L`;kIcVSMFD6>&oYdD50ebF_P
      zpj2{LRKwe$sxS~&&@M3hLNsdVkj13hh91jiLcunH2}5aH#Uf$qRG29DgB3S*IKqgV
      zaN03!i{X+)lhV+IcM!3RlfYF4SmlCv#t(vL903_l#==s!ti7~`ZfUGW##)w$r^qKA
      zNfmY2p`i!wl%<|Zb*7ooiadTD_3p>JSmg!MSy?4{V5j7PTS&nL>UP-5x(++FU49Wr
      z4hn81guT6_?si1#%y_-!8gaw+<2@t;>5HQ$Tot$BeF|<Dm^P4~A#(KWThAX2d+>gy
      zrQJ>?>sVHciId5NNMv)Jie31CwD(R1pt62*T~(_ecQb|ZMwyy0KR{-?DGj+-!kf#{
      zl+|v=!&YpE4BtKt_u+m5lyP0|?WAp8!d75bLE;)6%MS{aNVQE8kPm8j2nSeIO*FZo
      zP(XO%L%9=idE$_UN4yin-iHgZ)9{aKt`)e>unZcRvQ<1ParseJ=Sb%BzI}c?F8vz0
      z(d5Sy`Ky#YlE2z5^&i#n6edcO4L98-SDw*u49_yH@vI%>so=neD6eZ#@k#V5I8MYB
      z6wr`CpFkPI-<)nsm{DRQPg!<{C-@CMNxnF5kOqZSoIt;ZPvO&KJL)G_O&w4@Ix7m!
      zj71uwNL0mXl*^ybYWN&J&oFGKjYea0y$nNP?Xp77F-hL0nTph}8DvLRI!iCchQ`zr
      ztou@l+WHj)#14k6p}-09prD}WW=|6xiCABfEgku%vnyV(K|CLpq*}I>rMBUu6YiL#
      zJo=L&Dfc@XzAJ;QNFrq*<Y(ji8h(HuN`G4QM4Cpe7$Y`gM6B?#MAMHo`~*KGKS;>f
      zX152x>G_z+Ze>C9((ASFL((c<#LqSSVgNN8<if8s{CZ%aRg%tcHT=$Vj}dQ9ZI?@b
      z(C|mROgtnRKeH>*BM=@74~3T{AN*OvD;^)LmT!O6@HhOOIwe~t4C$%Z#D~3(Nb_mq
      z)51`+q|$cOxYqQV_7UB8Sl)!0)K$#?Ws3O6FQzwRPs6d4JM8}XJC1J=j)G%Js1Mq+
      zp4j-D5U>mv@mI?V;9^YR=tBS#DRqfACt^J{r+AsX?xxVZz?72+7U3)|@5Rh{fj8vd
      z<~CNJLwR)uRT<1bfbxD!+8DU94-3zPs!w2XFP8G?TXVv7y;u=Cjup@4<gS%+L)Oiq
      z13)9KYr-_FK@}UEg}4E=Sc~h?!r3}(#(K~CimY8Z>*Z_}>S^~hdUrimQ=<<J)HT{8
      zo9Bu+E}$JvN4%q$ogKV*Oyx5pG_Mb9kA>!Cu>M#-Hf#)R>cdTE2JH+`AFv72u?1JK
      zU8#ib*)%z;dC;Z>+<zOj`eaL!OUzQr$a~a~=*3oMr)|jp@t#j{=A?s>Fo$JH&FL(X
      z-Q8%Pie6$~ISPvg#~S-#ZtO#6jW6g6B&tusD#neR+H`nn25xpiW+CXyV0+VHOsMgB
      z*|<6A>%+Ux^kdgX-~7Ptfdrqxd;4&Ql=0T@8ns?BKXA{$QjOy2RWjIHQz{iJImL=p
      z9P%^-O9Ky#RMCt5gIf=e-a6QiN9oQ-q^hi6e%>+j93}+)fyd-D=b=CFF~02|d^^my
      zgM)7$50>QSO3<IdlObv3(=r3cu{DEFoW+R@PSuq4<1{ZhTcZY5sV#%gc$0(PL<UR_
      zW!`YiE5Su<>Arw8?!vtsvw1wkf7}3zyDs0;2(se~VLK&zumm?_C3X_4x3F>ENrdbo
      zdTwRExr>swVK;84rajn)JE-SQJVwnKjwf+9KUMeOn;c)jUNYxCGTD828TaEgJRr*0
      zzf8e?F$)ih5FQc>$vt&=SgdB3vJMBu790{WJR&;z-IusJD)A(&0jzSC#cGK#S!c3-
      z77>ll(avJ56jiy|c-G_>IrGsE4PV0ZoNW;k@MRp}ER9$370ya%b1}Y3xl;P@jofTE
      zPk)V?6<VG>tI&(R_&OyN`m)EXU_Y&{rk4j$M%!oMTlhB7@00(!<kj*koJ;E4O5DHD
      zI3klxq3Zb=e6PlrUH#EnyqLkyYD$K`{<5aDI#?R?WfT3I41OOh$;}Dmpwf#!g?zpE
      zi#Udn4D~oYJWRHHf^2hynSGMcI7)tc3LEh>qxg&$;k8-Y2H9ZiK!nL*|Db<G)X?a8
      lT1-7F@lP*?AuPtfycjMaiexlPskt2g=1k$~S3O()^FKvJ2*v;a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6User.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRP6User.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c37bd3b210b67a220d5da2948c902907c9c73aa6
      GIT binary patch
      literal 4660
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPAlgorithm.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPAlgorithm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..32cc96a1bdfc16e04f07ca8789d8a8312377b7ab
      GIT binary patch
      literal 4451
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d98f9332e00f9896699edd7580b96148ed6d79c5
      GIT binary patch
      literal 1256
      zcwU84TTc@~6#k~Wy--$xQV{XR#mjCBEGVJ|V*)CMP{2@wx5Q+-OqRv6i`%WSCcgUM
      z^;v&IA2bn6d@%ZC;*T<(nU>m=CT1^l=A83==gj%$_n&Xy0Zida91(^g$19s#)>G@5
      zX$O^^&^I6RidhPFX3YHB?Im7`LuKd|8D`P)9CNj>#qBVT7(<WrmbhIG+^}NG<OD-n
      zx?SJQ^T4%=?sKb9<P2<up+6^M+g7+~&b!W{7jlOOvlMg~Vpm<y4X-hndi%8YUSpj>
      zz3y-DBouUO(9px6=*D^n7<x5yAStXq4V_3bbmd%+uavh7Jh)S9ES2+ZtGI4av$U@}
      z)o{}-F^uH?Hy>(Vb9gvcbbOk^<~E&QH*){xl@9~gb7m7bL0u7!AxY^sJ)1h-pgOwo
      zaGrcO_)frWE94tVYIa1!NsKZ?^+g%(AjpCr(9sh(OFV0HcL_>Pn(4rPxr0*`8MkP#
      z{7Km=(rNnirp9VQ&KeIy!Ep`epeJEsDvrs04O<vBWRMlv7c>~qsSm%fCFXa4RL;)|
      z>0Eig9N2up6*KLuO>9D>tHZ>jAc8399wIGdqHCEJBGH<FN<to@oWr!cPZ<iWU74@+
      zWp|OvjO`-*nOqU{(?3P&z!LqJiD-pDt2jcQp&ASWI0{Hhlwr~mg(74R;#j@RIISY4
      zq>g`TP{*X}o}|-i;W`~7jZRV4kfas_lai1y8FdfCtsIY<IARTs({0M1X@$CN%adYt
      zs9A?bGhdKu1(%w@(FWLP3r@F!U$h0&J*b0U)}@)w{z6o#W`BZxl*SLRWzo&p9_XF;
      zfL=jQ=6Sh`s#T@hs5MB{fLEm7YqH*u@NY?>cXS=zH|aRt&~cici_}4yA~WQRs6vcU
      K+1n+_digJsY1Uo<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7456527131384221b45d0b900a4a0c3b35072172
      GIT binary patch
      literal 5486
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e34b81e38ea6d88b50a83ecc99b4c166434da363
      GIT binary patch
      literal 4346
      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
      QABTt8Grlgz%#3FK3-KrNLjV8(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPPrivateKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPPrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10b2065104d9147638b925cb8e3e6a1d0456b998
      GIT binary patch
      literal 2479
      zcwVhlZBtuS5PnYH2|;QK1d5c<0?iBbT4<?CiwziRBtQs|mPVzQa0wSef;Tr59G%fm
      z{RPfgbsWCcar&V;Em%8)I?lAC{sQ0ik2vl*xdd8Br89oGIlJfV?(^)P-IE{x`Fab$
      zDWvQ$F`P(e3(|tTBCkp*ZEac4NsG#wl-HJfr15wxrl~8kt_&$_c32p^Pc#-*Himj`
      zA?1}+K~wcLX(t8)yUb7*73WK`J}>pF=}1;r(u&qghbs)Wb81%A`xwH${mq_c*Pmdp
      z4CH1NCm5b_!HH^y<o^)3JY02D%_<{>r5Qz=kY_RqgFBi_$(e+#sa!WUE&9BgXYfZ4
      zSbbid5&F{ftvX>wJ<q0rL3*le{0S!-(PYPS4DC;Z4rS6gy1n@&7mjkA%GA7)T8zn>
      zyp*q?YI<F;!@;FvE>yt5aKx7^2Wm$f*@?r9oJ~uSOh!q|nUIz)EGbz%yqZ#$bv2iD
      z-~>fhvnz5&o%Lo#6}`DRFY)m%b7)0Zw7e6o@bmNo47Eo3BJ8-XsoAu+2AeRa3VX_s
      zVz3iRK^dK6==3G~4}KFBcphDLoT7}kU3PjsuB6qxuC2MyjnfPb!=a0jf$4bY(liB`
      zj>RL1&_sB8C_KerO7`2)!_e_xGZm9nEiPZ<eVlUQ3|`>5zsO+r`4g4s#d$l<F&y7Z
      zhR2B*0fe^;eR!GS5Q(Jjp39@61m)(o*MSg&bxBUEDQdt)l6e4<+oA`6rD9vsicX_n
      z@AH?t4sJmg=cFZ^<<Vye#TW4>`+3eoE<`a*)RpXB>g9Qpw*#Zp4s$t;Ac=c~6ivw&
      zGNjm)w+eD5|5z7|&MYV?z1M$*kJ+RPag6il<B|(u3_3A|Njt7E)a;iBH+<cNix{Nq
      z$;~YA>E9DsOuryQVVvW+f|gPSRq<3j(rG8TCt4_^nLaB_aPyg?x7*Dpj#dZlJ5fo$
      zF488+#zJdFAlT8#Hc|BjDJC4EUni}=7&*l8EJ=Z)Aq6@N2&qN{<5De2CLz_4WEK$B
      z2E-caR$4s-u?bJG<0~8qblydCpuut%Ejxg9!t71haFzJUv^PV0DFJ@E7@`F3DS>-R
      z;2r~<OFUPLNaDCb;{(#URVWZNcLgn7oXVDM9qvHT+Qr#0B6Ab1!7ckbYPL6nwl1+<
      zbsw!$?)FXizS$w%PB1{8KnkQ^BiL0m<88Fz9dzJb^x!>Q!22SBx*~Wffe?aZ!ze;0
      zP8t;Fi9EOR1<c)FLNa%+qwYS=Ol{(9G#I#tmrVE;?6#nCfm10laf@U>q_TZX@js#G
      z_tRadKJ-%oK_`_Mz$=8tcwZW*lF$Kb;0~H^mqOaa=4T>|t7u@5XS`SUac+6s`Od!1
      zuOebNU#EQebxDn%i<%r0=f&@^k$7MOuMKb4e}pI9u>(`=nD40<9>9x-bk{#nIe*&K
      zu2QMs5=If@e?kN~M&&S(rOA*OA6SFbJ<_@7SnwgN=3Bw<z&;WJm3}xt9XxRZwY*dv
      z8%S*6@(tK6H(@dN@d`XZV^i_Cg^rWEkDG4c(Z2baV1A)W{fa95M$_^;rSS*-PyC6q
      l_>0K?y(^8eQW|4;gGPj&5}e00?U~4<g?6ussgni9%)dXc9aI1S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPPublicKey.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPPublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8083719df0b2d10944426f242a56c3d1daf18a6a
      GIT binary patch
      literal 1972
      zcwUuMTW=dh6#mB7#Bmzp1UIA<(uAh=+Rai2$|a=`2e%ksVw~0}7%5tBr|V7Dc37{|
      z`VEN(-jP7GPrLyoNCiOxRO0f4#E(Lp882>VYMMT*ea_4|-}jw4XXdZJfB6-_IaGr1
      zFw7gxj=HJsXg5{e?ru9Rb&Ge^w!M8`T`QMLotkCpIo=Jz$1wB1u`(*aa9l*FZLW80
      z)9I>x2nM#!5Y5Z&hUV1Ov}t6U4mY^H#1Ob(HcjUuLnij{kjGh#R~URNt!q34FGj-{
      z#xVx<v4G>15S~CJi19}q(z0c=sMLBRj0wRrqSv{;Rnly&(H;iFlVJog#4wgOo4nX*
      z)VO^`t67{Ol5gpnRncry`0k?5she$vSpI08p`&9(`V5BYSatAm1h%Ch>d$~6hTx87
      zb@=LahGeXojvrOPFlO;w5OXBp-;De1FLT3eJ9amW)0k(NDlA{lu56T--`yaLjndV0
      zp4?o9Cc{%r2N5IgM@?BtGwrf=L$p^9;S3bf-vom<7O#xpEYu(t80HRZ5ja^FKxT*W
      zJkC*L$Rzi`q@I-Z4;bX7AQl;B<*ubQ4K-_7+|aCL+vqfS)5+Y_`L<)WnnQSz!Qapf
      zlXRx=lF<1w&4W9KGI!0f&88tc#I`6}2+<i%=Z_$tTIMsjLuWS?iw|mQh$1pg0eg+$
      zW7&8$Ee>rtj5JoLcHTTx`@q5}cL*7prRy!5m`HM#9Gka07C8a_K}WON4-~js+vK{l
      z6n{@##atL~AseDgQ3&G#UJGFrxgbgmlMj<mJ#E!C#XUKMC+~@n5L#<>Y@J^+#oZY{
      zIG76}38#q6OP`;<h`5OK_yx!whLABr9;baD{f{e&<UYcQ<WCq=&i;tW?`YA3DE&rc
      zK#md%lv1RJVHL+|Md>AC3QqyjnkE7!trKK<q$NnbWDVnKm$FECVlSd3ys3mQMYKx7
      zpZX8yF`2VYGOL8~zT}Jcvif`xoWwJ-m}fELV%I58M8y>E;`cb^UHk&kdpNVck9a<z
      z{EVarzk}VqhtzuHg?*g=?SU%Wgt9{~*$qPO9$<~(70lEB1ns|yC1PWug)XZqeZa5$
      zfXTak$bek@NWz4B0j_w4i+J5l{+J|-V$~COWLdLvzxPeJ+Lb-LQTP(0Qumueck(_>
      zlwg5RFo{p;96rMwKBtG^_JJO${WDXM!6ky8A<D~Ck%uBZuEoT7x}rWLUx->r{0YBz
      zH}MD9ZE4Wy6%?A3w{KxWRGZvGeh<Z4@cVYXyM0a5R6Ot%v42h09gN}|jA55Fek*m&
      Z^w9gd7Vr+r#63xwYqTcRT#;y3{{bV5xR?L{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/AuthenticatedEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/AuthenticatedEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bdca3a13825a32bc7c18bf1fb45d9bac3e6a36a1
      GIT binary patch
      literal 5067
      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
      Z2(6}!<&2Ar&|*;}WGsY`aV-$;{{af|RH6U?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/BaseKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/BaseKeyring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d57b08a95e90db6da4d7213823194d4ad58ceadf
      GIT binary patch
      literal 3549
      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
      a<Xr^<^81o@g(J-weopvj_`B}<{Q6&D_cYT0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/BinaryDataEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/BinaryDataEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2a5db7fac2b3158b5a9161445d2cbd9cb7f29cb
      GIT binary patch
      literal 1815
      zcwU`VYflqF6g^WGmafY~#0QEme9#A2MSRv5rB$j`5D12lm<;V$SC`plnHu|F{1KWc
      zB$}w7H1S6n@9eInVlnE6wzD($o_o%@cedZYzyAo}92QN)7!p-k&phKV_{&V$Z`72R
      zc`h2hBdeL5Be~zmbHxi%`3(~W!|0CDbH20YDCdO;f*Fj(<+%a_D>C#<dvaZIsg}4~
      z7adeQ&d_zuk&e2-P)d|EV8-QyvY<3rb|n|?)s^FBh=ItK{!rMf312y4J)2yjy3<}o
      zSm;2HjW~K4t|W^831*_7VPuP3(RD?YyHkF(z9yt9yex~Fay;3M0R~fg$13ENg+2`G
      z(t8>9wvm=xvalaRCJr#fR&q8D;t)e;+4ZDg7)&HvQf615iL%PZ!Eo5d5uIYzc*FI0
      zMeiN6aU3HIR;|gJ;nZJ=>&8h2yX;9tLdI32MwXpM!o(=UiN64_kwl82qgGc8m)po}
      zBmDO*hQ5*`#e@3Vs_+;2s!I+Gl)N%`m$>if=V;SVPaV>h+F9GSVI}BYk-9|^r(xSv
      zH*~|a55C~Kk$N~7`nQh@=}hRhb>O0I>?KM}6!oliRYaMljiC@Z;CMQN7bW>ZRRmun
      z+5f=VYR=TUiE9jdexep<n<o}^{)Xl;saLmbOd&^itRkN9x~uXLqv1a=BIYqiG7Rk)
      zLIWwnYusBEYP!|PUnexOQV&nj#$DVauPB4zbi2`S*8`Kn^FbSoL~<pkHO<<X!+mmt
      zj^@H~CxJq0WzA=6!K?daaof@JF}TgjGrAC64q`)Z8&Zl+bkVO#Pcd`{>o|0+U9|HG
      z2Au;Fss8x*kg*AS>??Xcpl^9#_a^pyN{ww`-)HQ9hvD=W^rqh8=)j5e22MSC6X2!k
      z`$&MDBh+d1AWv7kfDzm#U+&PWb_Qc~IvG~MIL-jUDuc7cL9fo?03qqs1kMMnC-mhe
      zW-;CBi0K7-((xuS-Nc2h@>Y;sB4PJ~Qg#>?m5Spsu295PS{rnd4Z!Zvj?U`)0Jgk|
      z>!oyR12@yJo1nb`kB8*fJZV}8fcJ$dq%u#x-BhALCFng*TJJ<GCnJ_t=+p*gwlKSb
      zlgBM2t%xN36A<|jArl}1oy6$D_T;B6$(>QMK{S7wln%h?vt>`1C|eR)v+8^hweSPR
      CVx#Q<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/CertPathEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/CertPathEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe5083ff83e4c9ca0dc93f9113dbe22df1031438
      GIT binary patch
      literal 2959
      zcwU`WTUQfT6#fng4u-KJDwY;1YL#4o2(7gkZzO_EjX(v_l-72b9KvXriNi#tH+!-7
      z%Ma*VpM2}mwG`U2s(tE1e?xyke?;5wOaes8ZFR9o&Sjsyzwg`o?2|wK{^b#XZhWVq
      zM&MB1F2%1JH;h|x)157PPW+mjbuBv|Pf6DsHoU2R+jD0%1O?jHv>kS>Y0I;2NZ(i>
      zIGP>q7Z7QIZ7Ii|@eJD=GYTacVCXvT7wK4F-*`s3i_b{2<XYZr++<8Yur+C!h9?sO
      zTaH_{<((ABhBve>@0UEQ5I^J3*8%Jl)j>Ivh>Q_W%E`$P0@$vj9t{G$;q?D>rlC<_
      zzkjx1a5G&f$h=YLbMvKXX?y**Oj-0S$F9RJft|L~W-b$GQ?i7x15FCX9)aEA%(ABu
      zPeo&h5SsCfhLDbD(IQZ5793j&><UM!tcND9O4Cbhg}`$<wjw03J!9E&urxg(-BDwr
      zz$1+r$21CKhHI&LWijYYSu+CRwFy5_8qASyy3$ajlu!Z<E2R?%6_+#;IJhY(1p;Bk
      zHGqgxBT8W5v`W^NoHUs(fmB5u%TZyBv|TKD6iFJ>iOA-`hn7+@qan_mEc#3jE$xJ;
      zVz)xkuJn9C$3Ywl;RuducuC;ECg|vh;bnoAbs&$aD93ap&`u4fjcYPhC2I&La7qI&
      z!k#re=s1l&0gdBa+V*_?(i&0%u{8mnm!5QGuF6XYN%SkK0|L#<XseMj3w3yfg?G8@
      z$l=})UPVU3Ip%f!>p5VUp5xByIFCVr`n>egerGV5%EW4gzQJ{`_)91N!#ZBW1>S+Y
      zw57|<DmzwO=jucvRfU>zcu`HIc0$7_FU|VF>oJDQ8ZI&9YCd#i@j7$iIeo5cup@>S
      zyI1w)jI6Sz;SGVFwG(C(CLMQL=FXKDs!H?<-q!FI+w}U#mrm#~Fd<OqIc33Dc92RM
      zLKsJrK#gUyAl9s2R)Z|}{y;&}GGN&~)P3!1_}|K-kKiP8N(P(EJW;9Q*{D#K7$?eQ
      zx7Y!AbHkAh9~C}f(pC*;*qALiMoxn((7LEYa@Lc6iib*G)g8KyNC+b+>9~QL>@kem
      z?>ot<HWnFADidCXcknKiyUEDpQ5zmlsxI)pO5_Iu@eODxhfkJ37n+pgk92&j!q$7v
      z5<b<q?&$awpRp{9Wh&HfJV`(kPKm1T&8$m`LI{hAH6@{TZzTCjY^u?YI3?GV1D5~t
      zJkf@`lsEn+p?m&7sNwroi!GdK{;ZDwe84!a<yt*-es1IJHiG;E+M^A19i8)dD)u|-
      zVvoMZwgv3SHtw9q?#I#C9G?CS%@5If-*>i`pG|ZGoTTGZd~8qi8STR%_PsW)M$0a-
      z5BmXsq(TdSbO6uOgBr2_6Kaim5h`GgaHgy@f|*BnIatU)GC)3O{Q!E|tP)@=--QlZ
      zbaEWzPM7cOPmUGD(FKU?JPv1K56}~x!;56o%kSeS7Ld$FTjp_Qu<`6qNFNKvnuDEl
      z7z+G~k)Ls~24&87(ReJlfbnc|a1L+I!+adO$0!F#I>m-jMi}+AJx4h*Xkd5Vg+XRu
      zh*lT4H$uyc=*K0_vOa^8<U(x7LGoLjnj{x?2R>bS?$z*QH>O}wq9|9d;u`t%lUV`N
      zK1&-;MYcG<l^(Ux2WY*wB-$2#@k*6owH3jFC{pv4g8j%)s&tYIxSrh+#5`s)ffIMJ
      zGp78u^vuDV!>v0tqD9Rg{qWCUchPWu0bSXSIlMQI+kT;Z_z<7m_e(6oq`Y6jvY!+I
      zldE~kGlf=ucaT&k>GYCHAIY>~v2v0Xob@=0&+&y%vjt!JvUHNmSNPhmly7{l-~J1T
      C!v@a)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/CertificateEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/CertificateEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d732dc661a5b8f874ec07724013f592437bb9211
      GIT binary patch
      literal 2968
      zcwU`WZBr9h7(JIHB!&ev3L0NiteO`z)!HgxX$3)}sECM0Y<1mS;%eAUmyIR0t!=G+
      z`w9I6e$|<pbjnQq*qQ#QPS4$>5P=Ze*~#X<J?Eb1JkNdZ{`L3oe*id&pMz)<NaU?j
      z`o8{9UrZZLx#-&I2eRy#Rz5u{9oL*Q4c(Pvmg|&*@CzJjx_r_x=S|mqSX(UMpUzH>
      z35bk9=csKhxVq)e=!KH>arb~ghp~b$5Svh-=>=(&9MdhQ)np@sA%XT&re(Ur0ypBV
      z7T4xWu31Q*@%kIEwu{P8E(|4RNP5)H$uNBA*3f~?0t4~P{{#ynBGBjA7IaQ#3I&<h
      z3#XlYX<l0H*rFkeu4!8#Y!m3R>{x>yVQfLKVz6DHr|zu>a@AEE5q%Q`q8c_KtXjJ?
      z?8Y8}aB-P|z=1a+8p1xh?Usw&^eyZUqEBG&#`0=-8wUh}dFf8mPGDO+v6f>PhmZ&&
      zF0lU%cxXr>CEzQTT!EA8xV(-CYlj57CrnFTD$U=O&a{5FKyr}@+t3R$x?`$-ebDdT
      zGbvH3xkRh8pV*q=NL_{OjF+;TS0@JP#}hLudycEvy~l0h8I@J-IcYGj1jg%*nYOaf
      zGZx(?b*azOoBu*3yqrD@K@19P{TDWKd3h$x#5kph98;kf*6=<)6xh81g&AdXTEhsA
      z(Y<;7fgEk{SfQNJFotnD%Ge7WTrV}(4h3;e;8;`lF6xCj+nJZS3$=lUlX0G&y?!!c
      zwM;#W-Y_oWauAmUwl{G|!z8XSPub38EY}N9CWxzydvh|<m5$6cpoB4nYf452GP)vO
      zqi`9e+zs3eBFkg9@!=WQ4cB(c8fI~eMUXmXyxM3mJ%*a=*$Qt+5%@&IZQP+|d1*<9
      zlMU+xPOMM9)dobqi(C)}i~q(emjkCkssa&m?V1xx!n}riFnNdy>YA96x^YkDypY@s
      z;Q{kfF1n5$%Q1v8-Hk~r7qjPLMZH|Gb*^hOEy~|Cbp-;lcI`ygs|vn?q`A+unAeA!
      zAGEc>r>%dE3e)#Dj035vP_|NaSt}ZJF$rFaRA0Q6IjuUSrHaaAO(9jhA8GgkU$Qt5
      zZ_Jy_sS=c!9Z`40V+~*98y<%hO=m~Kc%owaoj|$;Uxn9rIKvn~FEuqJ2_J3c?P_aP
      z!mipS$B^Tus>eO6Yuph9$d456z|Vy?L=iwcdqJ-k;*VFK`jFsQ2Q<Dr*?S5<A0Uwo
      z^&hUHEA=Njm#`%p*;+-<t7PgWb|inr&dA<W1+fYaUVq`i_4B=x@L*kGu_9mwJvh&?
      z3y5O^hdGn10pkeLfY(w4gx7k9MBBU;Z($N{Q$@E<={S38ReLg2#k(u}g*}T&I&j6q
      z*J`Wk_?uX)PjJOaw*8zLP*@_$wqm)k1d**`Xd*>tk`;VFcRosaj#V&vvETFhY&Mdq
      z;=(J=PYf?%Dx2I>#q^-R|2JG845XrgsK0`bsmL=#1_Nq+G*E%AOw`QWFLjXnY9#es
      zT_&u!lPm@`2Zqtj_cg|12Agpm+gO11B8xuU<oqlpxkZcHyiD$RR#V8aH-|i*Pgx6;
      z)91W+E}(#U{<99iqWk;+A?`ld-03Loi*(vYtP`|zD8UH2Xya14Daum9LoW+H!(v@>
      zg`mU?FxESsFDu^e4LS{K2kL73QD(eWsZF{*FGjnQ3a5h4U*fB0y!Dqbkfq??R`K-J
      s3lFD*gr3xQiFkQZ=Ex%o^d)xTvA1Jy4XeImHyM17A3UNzdJKR12jtxl;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/CompressedEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/CompressedEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1955ca0afbdc2fd2d56e3ccc35f8454949cce60
      GIT binary patch
      literal 3048
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/EncryptedEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/EncryptedEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9125f334bef6d007164242340cafee98eaf19f7
      GIT binary patch
      literal 5894
      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
      HTg?0)SePix
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/Entry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/Entry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15feb5cdb2e6cae6c148719c746c9a5bf600706d
      GIT binary patch
      literal 3066
      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
      RB;;3=D>a^i7;>L){{x-}%boxL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/EnvelopeEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/EnvelopeEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2ba95df2aa2da24123010a71a7ce52257296834
      GIT binary patch
      literal 7797
      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
      ZX=+$&c9?o|2TG)gZ&_7D<1<H^{{+Pk<<9^B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPrivateKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPrivateKeyring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e270487ff75f75d6101278cdc6287dc19b25b47c
      GIT binary patch
      literal 7405
      zcwU`X3wRXO75;CsyR$3<gaCm>l<*KXn}irZ(FBAL14cr4M+2fvHj}Wj*-iHWp}tzt
      zDz>#!pHQk+Thpp-iINQ(D`+eA(N_DernT0#Rx9;wTU)FB@9boDH`z@P__8x|?mg%H
      z_niNnd+#$JKk^uWa^X>sBj9Zf#>y_ywrd?_zVOcWXsB$PzBB9(ww5gq##V>@+qI~^
      zA|X*=6PTHG{!%THoaqqoWSv=?ZdV{T5aRFTIyt*67WD_pC}@>a>-f~el>+t+>#CO5
      z2#8vNQPrVfB&r3Y4O$?k=W;c<w9%&d1o9I$0vdJKMWuD>Iye;2gM9J%+qddr0b5(B
      zS?4zq83WFRzJNdIkDg6Co}va$sOAJ0Cc>>?lE9dx)#`v2iKv*2lLVAjJzB4|(b9NN
      z(O}OmoQ$aoP7#=tZDlG7F->3u4J8Bub3B7B6=e_22nftjp}<L)b^f4UA8TvU!|S!C
      zfG*<^@@atvE$o-yrqHp_Tx(?pSG9vh8737qxR8q?6|*p2L9xKRtl3`8c<l&<o2z2c
      zt$Hx(_c8O$HNj|jr-D*q&#o8_wd>)iUyry@f+82ZI88b%&j$QBEL9dY$bijLF(0Qh
      zf!q2ic={09Sr<^LV8KvCuMV}fhxJIrobJLII7_aef=ZrG0e7K_MPR<1=8U<l+wAHC
      zyjIG<Em2X0rDV6(+{~B{;XI*}@OzGmQ5Y@XmZ=y6mwY={MP5R7o{F)Fw>lO1aItEl
      zTm2D%lI+$8HI+&yRtvb!U0GFKy6)Vn(sC!(5@uD+Iw#iiW!18!E_!H?VVg}p`$EB}
      z<_|`aRs<$ws+f&ZZKH}!xPTp_U#%+O*CKLcvx<vwF&(h-*wu!qxjKI&S~(ILd<vQb
      zMyHRcXa>v5>5uAREgE7C7kE;&YfU*Vw8F1oE7vi2RK+FO#ux_mj_AOKva0D4-4`|V
      z+f)P*B6YWFk$Ph)JJv=vNKGz{#m&^m0u&1hbNtd&CMb*vSDqThq6{(ERBfV&=)PFk
      zAKh8Tsnm7Vboli4sGogU0d;4mPudU+>%P!-x?;bfhBaHkr2?l6%{@ui%T-)~E4dij
      z@VC%`-9so1PJEu(){=EdlZ7psKcF|e(1Bf&Bv)tQLxZ&Y1r^ugI^yTrr8AZobKx13
      zY6aH|lnvVvYJ$dqRo=VtB^6(mz?Ej*7;@n&*rVV^fxLm)RPj~ZMAi_Bv8M=(OUt<-
      zWO>BoHgc<q+i*K)N4JJUJB*ICFvBW`l&qJkG9#5TlKTY4njll7xEq@le0`{<mgJ1N
      z>ixJ=#a;LY)5W!z6`6@Q3hv<|lYlH*a9!<YNXgkv)tr@)b~!qGzhJ2q4%ffrTz1Lw
      z;k$Zz4yibyE(1bYFYU3kdhuqBe;R7ZTiI|9s5l=N$hQYoJcNT>bBn*DDp9nvviF}<
      zkrVB5E9_Bm2oJOHiAdng<KjUEYYKYPTG=^VnG27|opwJSleKhMV1*~cn(ES(Dvxt3
      zlk9q2+I>P`<#C}t-aTDfULt><RB;qPCKL6b&p6^uHU0QQ5~{W;7G=<AUDw)-)F^mb
      zV0zMVZ6KhxYJsY7Ypjh;#v*_V&*G;Fe$r21+N)h<jjH&WJP$gfp#*Rjp29BKaGqqA
      zwn?^#c7aomYc(>j+w>uK_yHv-Rk&U{>9FXVj*l~JvTd^FtqnBR6!80KLc#CZz_a`6
      zpJ%udQ02DKFB2%u&RmN!)^r|4`tY)B7Jm{rX;6<y&J%DCF{a8&OhU+XV9u(YD8^S+
      zyeNyY53fl+zAmt4AkUL3C(L$%CG7kC0k7uBYAw1|!9Q5=*-vlgG&9^I<@R8TcuLI_
      z?M(xa`#9Y&<8Lv}sx0((1f~r;&4pulPsN*fU!D+$H%o9#L=xN?nGO)c8A-(H-zwga
      z`8bCE$b9@)pwTm|>IvqBrO<BRwFN>N_nXPd4pAFSZw@@tiX26V)S^#LQAMucjo8Nb
      zX5$oAs|enE=VpbmQVX<%!fkr<iiE%_Pp9DJZL*&&tBuh7+@cFjox)f|Yt>!Cj$KYM
      zl1)MHXy@5Mj`Z)CrCRE}q)?Z<DU52ZiWns@F}3-nV0Q^sjA5un9xtbv17Mt(M7}D<
      ziScZxJS!Ltb!~b>9T2kN_uCA&D0xl|rgg3qqdfaXcwp6K!>}d{YU3_3Sxiv`d+_*7
      zb5wD%;5FR7gG{0&n}-)zMHKd5%rk5bE-_V1mjRl=UX;bL<Wg=(?!g6_C-9)TE))y<
      z^ksf|?=Bd0`<WxvFpU+E%Rf7B@ss6E9)KGoAS+`e-*ceCCU0VVx5;~$@ys*7$C}T4
      zLq3|?<1n6@6Zmx+pYorYFXAXTgeebUdY55wCVyRgg7?Cayj`AZNWuBMXPMeRCl&{v
      zYrH-1czfY(ES}PflExm)=|NdH=2CV>qa``B8<pOJlpaK79E-ih-Kh3X=|+vWv>VI4
      zZd*5My%X%+SdoO_H9((7_$x69_55Ci)3F*AScAn_i*vA!qw6WzU_d-O0f@8fjfJf-
      z!Xk{fG3J8S7@^5E-ehoW#+wX}-B@0Ka2C;))Ewi@UzImLe@*_nyu2Q47#N>Mn%HPK
      zR}<4s=R%(6OjEaWrgSqucagU^j>f$xmd^_x#ukD4PK+;o7%c*i!@Czw+oDdW6a)nJ
      zee(L02P}Wnjm&T1mqy=B42X|%ose5l#P7M-X5jE9d|5%5k9H#nIh^qsg!!DnD?<cP
      zgH<tXr(_2tM+9$4#G6yXcj@b6QE%e?KvdY0kSpw+nC7+{ppW3Q6%Mz<z&^_DI0A2l
      zt&?wda|L~F+fl^bwvsq5>%{2ud(qLD|G6Gqby!r`-L^QcNtkp<lMc(I;#MBVZfR0E
      zg5A>LC^>4Hv>%1fZKugEcA~Jt@gSyq<G6tw&cE61h~pN+$zJKiZ71rlSuSP_bg_Rg
      z#z+_Y<G7<f)yWH`2N;)H5^gQ-=85-ie2agHOk9OR{zmu}WhS<hWIHegJK@1)tf?!o
      z09TTtJ4nx~Y2i9rxSmA40h@6n^S1{f+=NSUGj`!tj@-sO;U50(qnA7A<t}v6(;?i0
      zC;0UXe!YZm<5k>;w{Sn+rR*adG%|fPJu^#Irav|_E#JP$c{%+55p#YoGd+shoh%+3
      zdq=U6eLL~y)ADyn^eyy#AFbOFFh?Ckm>5;4cM{(opzJx6nxikVP!gj8-^KS5Oc&Si
      zdj$P=NwR!@AMTgWt~#>`RM_0M{BBC(q{05il3qMQ@uO~A4}MT#@5Sy$HizZ>tL5Jc
      zt8*NY1asTt_@Ub&O5^xZC-N(lUOd(4R^oW32hSar-G@5W{Hsa!AemyxhsAD1>OC*@
      zoQ9s$)RPTK8d==MP&F_?TX>Ma0k^PZpEZ-cj9mhFlm+n^gL@bgNuEO1>O4G2avY`B
      z(}q?Po@Zizjcf56T6lpL`k2y}8N63;0IwMdYccv+mzA(CD`8!1r}r8SrOQZNF8%Cf
      z@_)&M&BNvR6)oH8Powqw8U7|F^tbpO!+kA_{{<#ip|^z0NsBLj`sUL&eDiseUvF^@
      zZ?pNlL-~7bKJU~2+iWc#o<Q^Y18I~%d5|M^K9`D>Cd#wYP);wk>Xsxjz>aa-j-W4&
      zKdwx{+*fkI!aPe-k-^R33C$&PFiF@jgJ-2;p<upnVgY4K#ApNe{DgN4_fiY@65@Wv
      zz+G(Oo?%j7Hq1ZcFXjq%Gb?iK<r4Q__o3M2VSQ<Sw^0R>_S_QtEZ&#);BRsKJ-MS4
      zND!g`PB962!i_0nGENhPDS<7w0G3<SDJOL#z&z4Y5=I90jZdHcW5cFj%wi~KGn5{N
      zvIsLpF%Li`DB|~AQGNpHf0JZNpzJZzUn7p-?c-y>F_Qtu;&^vx2Am1II18gh1ux+X
      z33(Cbh{eqQ5>!xDEoxF2P-8)_F`?TH2E0RylPm_zN@2hU_-7^t{3|;Hj-@i-!wd{q
      zNd~MU16Gp(Ysi4}hh@M=2EZf(Z1^AdfaJdZtO0Nj-{rw)0l|FYxD%s$g}rf{P<q6O
      z!|5WI6nT4v+F0BpMwc8CV|kuS!c5R%GhtqYapGdebql5n4b%CYC7N)C&<)6i33nFc
      z1!4l}Eeu&=gR+T<B>O<17n(o|iXCy`mQA`>OqEckanFA~iNiR@iEYep024$g#b<%#
      Vvp~!gry4#BOrL^8mR(`?{{f51gmwS`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPublicKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPublicKeyring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af49c02363b8f163db94e4c338eb7b412565b72d
      GIT binary patch
      literal 4016
      zcwU`X`CAiL6g>~3gXy>w1;tuRMKL5`L|Iy+t%yr$1GuzM)V2=EfTLlOW+n>V7i;%@
      z)h>3od$rY|@_k)??Z42!p#MbM^Cm+`AS1SXA53!Jz4x4Z-hFo-fBb#r7XZzeP*5h&
      zFl=VRN3>(wXgHQ0OWDcrQGG0Jn8V>+W@dM0Fk!^*${7^+1Xg>xZ__M2?>Sdst*2*K
      zQCflWM3R4(N2PN(V;hMu4a3qi%BP-=2+X->U&pQ;0-{S`erM9OY|XU$v_wWPXD#Ga
      zu{oA7OvAp7=>iRX0=~{<T=(O8ELKn{u+T}K(3rF{p;?xSC8!cmhIP9~8_@-p1RA1K
      zKKpD*E#k*g)F@acu*{2`isiULU>+0Y3<B!{Gcz@KS2qs=H>yxjL7Gv+)O#``gL?XI
      zZ7@MzmC<BOOY~`JLw<LSb2q!SR+oV4YUuN$9Ca#cu|UBZfsLM9v71sHPp0D?8T+tq
      z+D1&X_4p3cPLC;AD^TYhm`<kjv~B2?AN8p7V>N;jFeDHu#VL9XnIa8+Qi~=P>k#JN
      z9Gz^C)~iH&77$U;ED-RF>`acN(z<22?tZMtMp;1%g9877ZkvjB+`<lYJvImgy~C%W
      zMx=0?R79|ujjP4u)ch*oxfrLt?Zbv85c2k&etda~%15-A?5G*r!;a!oR5t|{$C9S4
      z8K%`Ks~mC!6{srJ();}^e}{^l=;W!KjO$1knk856P|<}uiOQqF!7<CBh#Hn1xeihE
      zDCibgP`sj|7rUvkVe4tlPNrq&7e;rvc4pX%yA|wXnKM^a+ykkdsgK&zPkis-5j|$J
      zY3{w+Oe_$^*$WA`U&R3&WWOHPtR5#bC(wS*EKMpwX}RB-1kHlRGD9MlV$PZ=RFUc}
      z-kMo@ER#0uv2ct5g|t`!BUfI%h5YEpu!=z(7FZRSHKjo9>@Gr=ZnLy5i%eyTi)<}X
      z<ZNhi!U-f*Y(r-S?vr1*xfZBx#gH-DkrTe&TfX8UUyoxdj$@QNM|J|Ycv6}rm4b(g
      zT6a6i`Y|TwV?Q31)8#RNdjqqT7cI^ZxyETEW!S{_mif3JDS<WD6v>c8Qsd}Z?lLoy
      z;VzR(uqs^}i5%#Z6UV<}G^VF)gD+nN&vH=YU3>E@emsvC6}(WmI+aMpOL&=J{2X@<
      zNtc3G1vYqc?A8)P$@GXGcSl$rrvk5&tzpJEO*Px#JF(V{sm)m0Fg1S#Z%Vn}@)%ux
      z6?lhpS|3gE(95ut`yOf13ST6(y6oCoTjQ1HJ%Oc@MR8ZOg2McG7pEoM`@ATW)==)w
      zYJ8~TBb?z#i0d(4PXzW(c~8qJRsUbFJvn1I$E!-x;Q5%Wlzs;|x69-5JyPRIgLBN{
      zcp}#urnvTI?Be$D<7<4Y;2X}iQa&oa!}rW|oc+#Bz5wqi3VxitR=Kc+5q|uD^HS2E
      zNX`Q|r|AV17m=l=x|!4TreaNJaAnO&dCIFxXJx1FOJ>qBeWxL>T2<5Eqw8c8Zsu7l
      z=kFYp@dC)Z8?T`?m<M?VujA)3sI*mJJ{Hijke2m)${)2-WU=THs(;3c^N#0A{`K<-
      zY+`I1ZgQ-kf31TfqfZb+UUl1o<5(4(!0Lg}iV4&Yj3Y3PhKp#VZT&#rvf(0HgBNJM
      zfYvN-ox-UmV_*w>xE;%|6+v{Mm19(5*5(kndYi+vjXql))@}5X3?-w<dN%SY*XBq@
      z(+k;7fSpcKHRt3e6>?&`3ErcpkI$C!Ex}M0+fN}RpSv#OE`gr2SkiPEdjx(*|0z`X
      zww#4Z!+^l)fBstWT^?_hBYl+Lx{2MxqI%gBdpOhgqJiHxaPmqX!5mh;xE9>!6jw%%
      z`|$vuRk#s{pgG$*h?vXr0#~GD+eEj^^421jt8y%VLwu93#^;b-SmXN*{aFlk7jXWw
      z@m!vBJsSl?EhDa<n9GP)N5l|x@*3iO@({Tlb$GYr(DS^v<#}&q2E*YUa(UPBpPD0#
      z^Km_a5x0WpG1sZRS@JedBjk2TPg7+|njXv|)6e$lA84Gw7*`%{8pk79JU+c^EJ~fh
      zA{@gCzAe||(E?$c^8}k+g7VW74#7q2nkVrT3HtCfJGl(ca8;5#=@2~QtN`sK^PF-9
      z^C$4iK;>)Wc;i=TnLBBDTUsXY?m%c9r+R`-jhFBNJAaC1PS>YN^8_jhvYY@b@hss_
      zvL~KH6SZjLOK6IAd!BYXKE@{w?RI>M&zP}^d-FNIaL9d$vomNP<Y#$cszXW^U&+%p
      sfgdEdbB$U2JjH5(<Mjq5e3N_iPQg*D&ZAdj9G4vQY8PGLvXkM;zYAp^f&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/IKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/IKeyring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbfd18fc5b417fe0fe64e03cc0c8f23e777fb2bf
      GIT binary patch
      literal 754
      zcwTi<T~iY=6g{D(ThIy=Q2{^r(%HW3j?X-Gq&hoP>QKbd7ba{oo#2vmk}Ohxnh*Q{
      zew5?QR$-mO)7f)#?m5Zbd;R;@6@a&R6JUm6bExw8j9>7}I5p#u)A4sPHc}1aWPkDz
      zpvti5C2_{7-a9=Lsbg5!?|eN>4nCahwU62-$pJ&Nd#ma@-@D7uc&C+hT)AVO<)V%`
      zhBeBJCTY>%v}nK`kEEic|7?4okLq~Hus+Pyoh>?drJhgie*a7FaIcO9-!mOE;@1Aq
      zX24L*G$&|=lS}7LX7NWp+HD;(%y%wRF>;b_9^f&<av_mAPI@;d471j0BM6PKf^Ja>
      zeQ(vupQ0cML%=i1t*{KMVXG9>QTe$r-23<urCK>Im2G=9!%8?k$ksRV9Qv4@yG~2q
      zU1=SeR``IPw;gux{lOjO%(!@O&4_b-A?```1L^DBq~g8INYwbZ8Ijl47$}T3s)AL_
      zqDCwrHiJ6x`4WFXyiwwhFy|KwOH^r6rAoL=m6fT=6Fh}q!e`{*aSiJQKF5m!U*c7P
      R8`vyx3)|F9lPYpv{{fvzx3~ZR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/IPrivateKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/IPrivateKeyring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c575e139d61ffbee39f59769f99e49f967f4c6e
      GIT binary patch
      literal 790
      zcwU84O-}+b5Pd~-<x2s@?~5nFL^dAu!jWiVG?9epK~ANqSlsNA(k1ZMJop3rQO4<l
      ztdKPvx|5l{_vX!ZzP>*`0bJt5L5iW;^Fz1KM||uGJsFt5eU}rh{GNN)(rUzwyr1R{
      z(hNn5bUjYjkKMi$#=!=|>HiutGDBGezTwIr#;OdJ>O(BpHWt~ay)YDd()`8M5^$Yn
      zZCV^k5o%>7E<qa%*_*MD1ET_e=%B!Gwg`IiwG_cfYTos%_#91L2jN23^MtMmEy>6;
      zLuo!=*!7f%1oC!_IK4=kc1ds!r%CeGPfV|`wiC0hrQ)xprqrgz%^O3G9L3pHlA+F$
      zrXaX$IqFpj`ZZ)MN5*26>!in7C1U+$+d-&>yj7lL*j-w;x)q?^VpyZIP8*w{{d2Gh
      uyN4NMshXo|nqr<RTiA|niZetB<tXl8H;R>6eGmIlJisBb8II_i!toEwrs;|R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/IPublicKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/IPublicKeyring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d494a27c4eaa3d1b414507e00d31e5f35f1d98c9
      GIT binary patch
      literal 390
      zcwRg8Z`VEs1_nb0es%^XMh5ltyi)zF#InQ+{p6y`f|7jw?9|Gl%)E4c&w$dToXliz
      z2$!9Kg^@u3q)<O65h&}Ql$DxX!p^|P$e@VZ2&iU82I1uVypqJsykh6nqLR$C%;dz9
      zR7M6-4IhMw!6hK2)|yd_41DRSB`69_uqlKH6{jYb7G;)H>L&v==p*T}2AWe)ifWE2
      z7IO$0qZ!7?z!jWdT9lmXmYD-IL>M(>^g#N7!NADC48*L!uw@1Y6*~h511QKi8MweS
      RHv<n)hLM36NHQ_-0RVj<bG-ln
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/MalformedKeyringException.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/MalformedKeyringException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62afc92739a82c8feee44f9c97b94571c3fc966d
      GIT binary patch
      literal 494
      zcwUuIO;5r=5Pb`!)rz1X9!<OfCf4r@hKtd}SoMJEeJN{QDP2-p13$|Xi3fjxKgu}U
      zHXbw{+{3(?oi}gZ?#JibJAgy9ER-0If+%&K`3s*re!Q3_${CAAETh1=<>8}>Ct`Gy
      zUtG?8F-@e3EEo(;J>y8_T;G2;7|e4S$)wLvZg)He<3f#ujWSlNsK8{XyD}1Y>0~J4
      z2R;l1L&H@*4?P}BT^E-|@+4;rC+`2v^%z=hH!~M<A`TMW?sYtEV?*1hk-Nz((5rvZ
      z80>*cV_#fJ?PKT9HT!xLyC5y-Q=*JsNYSF|n2-@xx=XCQW^J3IO$Z#opx<AkteTSu
      o*9o;itq|xFQ*+Jk-V*hn3a7+8%M`YAR-vG?O*FFQ&1`1t3*#tkUjP6A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a847d81a2e1bdba7320c3e802b7fb5312a808b27
      GIT binary patch
      literal 2248
      zcwUWFZF3S=7(G`A5Zw5JF*L?hQj-)g25Vmxjg4unw8YqAQDR%Wl3U!m*=3d`BV+y2
      zmmlGO=!bTu4KvM5`@KJ^({pz>kU}tgS?=3&&Uwy#p36V~{`nVxxA1ioM+6pYRx|gV
      zzO6sYRh?GdwR2Bp%Q384ZcT4I)gPO3)!LS(UFWasw4w+L%nywD-&ujk7BS?efY{*V
      znqe94l0YV1C=Nup>oDAL4cW+N$^zjPdsD^{!ch%T!~~8P4NKl>ZatRHJ*7?{QM9YN
      zS=Jpx&4b0T`^0DnTpCPtV0w8K*{Tyj6a?b+ju?Ttp)@l-UC5M`;t8dATwt^z-L=4n
      zaC#$C9)-Xe4I_vM#Eiz?UMQWROCf!e<MZjkY`##%A&}BAg|kt-A#hF|&Y3z-6iidr
      zbhG5@u3UXqm37y!tr%wMo_`@J86+LY4Ca;2Hw8|oi(QD4tGM!hCK(OWcwJyb`q!E|
      zOq{@2)wW#Suo^)n43W@=qRMGlz(rbLldf9#tWTsfzO<%mn7N|SaPv{TEpV#4xa>H3
      zOYJCg-_`IQ-WQ0<J%kgz@o`+n6_xl^fywl~-4&bWRh400{e`GQVD=zu`XNJD(vZhB
      zI;ES2u9Wx3u@M}(Wp8^`y`o`RrF)?Fo*}o?iH}$)uI;Z2jPKd8|8x|e2qb%#Z#E5c
      zQ#vse1y1%>{PQ>pm{%n08a~EtHT_J(=O|I5Uaw1wm3VP*>is<V7`|Y^FQoi3yRH!L
      zE5ru^XIc8Mh-2xC7wY^vFTZ3rovOTLs7^j}V52T7r0@(cJH*F~jiuU&qoW-2o#1zr
      zvjTV3el$C^&_?_>4v#?NH_l(+3PY}9jH8r)499RB@J1(ak|1i7z$u;%t7Z;hmpE7P
      zk?d3(r+ZPCDCLHSI^mz{phg1JaU}6tKh__Z?8UlGtik{+l`u_H4?uvG^X9-v_IFJF
      z(t(P2izN?6^A7|tLiKeJe4iF5iez>N=U!rL7c-T_`8MYM&R%FE-Bp&L7r+DhQDHV4
      zRQ7P6!emEb5?NgE6tSZNlF}<l7Q32{c^C4CB;SxkKZM{C|IU1Zb;hX-r~3$Yak)ZY
      z-f825Uwdf2B~6VqPxe_f-LZ%bJ(T+Ey|7z^wFqkuP=5m-dg_;lwC858JuV5FB-lR0
      z9zGyL5v=wSJSV~TBzSR127EjMf=7Y>bGs;15}&rQmTlwC4(=xI@uTW;2jxVC;~hNg
      h8aBa_1b!gIkL;13SkXUYmh<j?%ysVLOE2oH{{Vp-yG#H8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/MeteredInputStream.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/MeteredInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e179a91954f3d82150cf3aa2ad20fa66e6199126
      GIT binary patch
      literal 1978
      zcwUuL+fEx-6kW$2W9$r2E)JxSn9@spNpRB!S}vgknlyF|X(2*N=_P}iz`%IM8jlh5
      z@>r?AP_<I?0py`lL!wqn-}_Nj*E!=3Q_M?cjc1>8_E~GMwfFq>_wO$O+`xk*Vgkh-
      zr&ZcB4vfQ6%{yxNZfV~<@+@bkv|{?EXKt6BM$2FKJ=3Tsp$S})$tBAz-L-5cM2-a#
      zHMiyX0;0^=w(1t+u6fI``~_ajRsX#jxinYKZwP41?zWjm9J-Ef^azZcpPb)FqEBE#
      zo!JJfEZerZW7xO7omSm+{5yv=v*BB=(~W*osv5@Yt)@S|WsW<p<1pE`4#?GuLCG~F
      zkZE%%JQ7hniBb@_s3VCk8I9;jpi7{yYB}a=tG;D=4~#9_6d0(wHN)O8JWH<Io0`9C
      zH3hC$|A)JC0x`>BIp-=D(3O}q)2Qv5+XC@i{xg9TQ!P6n<qmyMhZZ!GcvE07M7tlJ
      zNJUq5T*j3&@+c-zh~}NL>Ua$kX<SDsiAjOpQ=3){e^<xbxIx;wtU8e^mnD6oX1mRx
      zm<<U&rQ;pEOGoO4x6fBj^*crM?P@R}J@RC|)o8e$FNJCHEX@k%b!0IvK^An(VuEvJ
      zNutfAd|93^$=zjvBzFSx_*UyNUEExfmzKD8A9EeIO<AC4HcirL&3&sO3#sHQQre1?
      zu_|#ZYA26RbX4#$*(!8%-EDa_le11u!<|i=l$H>HEc~cq{BcYe4amXa`vRYCNWasJ
      z8qAV;R|>`FxG?rJdj3G~!+}?xW8lxi*fV4b@n;zRRUuvC|EmgPikQ>Hcn^bkA0wDy
      z<7RmVj0b2K#TcL>wv=2llKe5ow6M)Sqt-xQ;WrHP$vi<qJB}ZRbY1FrSwZVTY8zU}
      zL15PFj5V&_P=E`hmsvvud+P)_i7BzSU*OtV)O!)sp%9g$(SbV6NM>~hs5ejTNb?P>
      zP}*t)tvf`UrbU6&DRqZ?r<a2=*3`v|!C~l|ps!tub|!S|TDy!`hd~<=@>obddyYYS
      zG)OW{6izVrBNDOWK+~=H(bzBODLkZE+9S4n^pqp$`6fkv&YpjPetgM#zhYgFBDGJn
      zdHebMpk4bc7CS1q#aQO23dMNw<q2+|6=Oy~Q=uU#e26=3(B%%$pLjRH_tbx66~`_|
      z2jB#Er?remoxMtDMhVSmXO-?z={^Z<j#wR6;czHiRn*OZBrIyGU6hPIQqwJ?dyL||
      zJEVM&MV8MQsv@9nb_|3cX{HF9$?v}d;()RI+$P(qQ%|#@-tS+ax+qP^p5XqX(wqH3
      o>dihqBlnPUk0|$Re#qaj>~A?}-$i;b8Ooicv`<wJ))dD2Kb#{u;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccc911035a1ea8c92414bec7b695bc619d03977c
      GIT binary patch
      literal 8106
      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
      BgC76@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordEncryptedEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordEncryptedEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15f4eb45dda8d6880ea14b69a14ea9b46440c3f6
      GIT binary patch
      literal 8323
      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
      Fp8yB(rau4x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordProtectedEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/PasswordProtectedEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b2578e9b167a9f6333517e3f85dab14b74bf2d4
      GIT binary patch
      literal 498
      zcwTK$%T59@6g>rG08w6w4;F4AF-%-zOblW&31NtgY+RT!R5CcskkUc;EaS$w@B{o3
      zzruKnuZ1*eZtuP4oSxpkeZ0H^I6=igjKLfQkvZmbzA#<6oT|{g7fa~{BeTnAvxiU)
      zyE0V5Rbto*lw2A}FyuAC^f{sI!I+v1Im>BXojaD@xoz6l9fzUR{zF-T5+flS45?Gs
      z_X1CyF~qC2K0~4z4n+o=*fNl1DEuR3v5g#qG3S0H>^p{X)vB%0PJ`H4Y#>Q)+Fl?!
      z(PSW`!w0@#D7HhF`+Y7woqrdTB5>(;hNJ42pck4KTyZ;6(@6D{6nxUSX=<C9*1{E2
      z<%Pk_z&^e12XEQG9YXcONV?+E)9RJ=6Rc|{d87f*KQJ6<%XEq%1%oz2nzA}Yy)uRP
      m`!h06$Um+yMO~u^n1nk<X;syqvV&dXlqpY8+*>K@-r*-}33(&{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/PrimitiveEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/PrimitiveEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed589f5bdd515a79421c4632cb90db3cd3f3a05d
      GIT binary patch
      literal 2280
      zcwUWF+fo}x5Itjr7M2Brzzzusl8tS20Tkabwg@)ik_ZGi0SoXg8KglhtajzqikM%>
      zAH+Y97eClliR6l_V!yd6Rr#e<dRB`r7+gGPcc#1N^y%(1tAGCc>u&&8@r!~p48u9I
      z6yN3h{CPZM9~2xbz9$ZB-OR=B+j?Gi^nEdBI`)AAAH(2@!EOwLmazqQbjzIOj$r6c
      z$>4a&(T%vYBpCdYx~V%;47bC{qu$gfxL5^YJGv+)B54NSjFlBCTF{|EfyNLau+tq@
      z(8bWzoLEICx+PK%LrXZ4ZU;lJhF18c=bVP~_>7@7V^}5?)fbLbi5r~2SGIOV#!1K{
      zpKJI60}N`RmXP7{sd%;FD@wo(oflOEaX~?dVdxYmHC)6HLr2Ck9j=?jML|<I7j7W9
      z>c}IB$U_NyS;G|!Q<XX4FkCq<?qidR2x1DNG|!_x4I>z(p&G)>IXiCmk_zGs7weHp
      z!w@-cOxw9qUYO3@^Nc7+iL~J=!==KZ%0lF`siM%*gVnXr4krsYLtab9a9z&l#tF5h
      z+c3`1c__ZotT)sN4YzTJL7{Tj^t^BhF35T&HGBh7p|a17l33Z6zzfIL9>hHj)A*Lo
      z7E08#iDL+ys*Mb1Q@SaZOZhEfukkH|=mb($h8t;a>vHcIea?<f%87hRIgM8{A&(ps
      z=p;+hGMtR0<=t469V0^<6+bQ8cvQM|UKBCYba4ZRflXIeJS%adcw`3N1(5n$#RCOv
      zO){x^HKeg#Win&%B0=;vF>#Fv39zZ*K7LT?Ha*gi!jhcTCZ)Dq9NDmsGE=@h-xJLR
      zs5O}t6>KqFJF%Bb+}O74yvQzA4GsFt60~WB4rLXp%8KK<iX3zWJBMEqmrlx(_hA=%
      z4DAJO7lkyOAlL<|&b%CuDJQld6<nZL-6TEg+2)iAY=&SRq^h8KBF*c!iH2WnZclBz
      z>Z(<;Gh$ws;_7YI&X|n%U7&uq(4PWvkzYMp`Dvw~jV$f7`<He;dOwK{j8>qId_Yh1
      zEjl+VIQu68zoRQUQbyl<bkZ*R2l@kFmNEESeSN8n@C$Ul#n@)x>k6*Da~(J787Sk{
      z8zjoOyZ)LIoWTq|$IwB~aUyXGDkjj6I~YO&aZF;0?(O&VT*h5&(EBm&VV0t!Rf3qq
      zJm9Xrqd4ZSWJzb-6@8znP+3~iD{YEA(&vv3RIpIzpt{ysIy>j$pRY#M@ckY>lPdMF
      zZcvQOsMhL!Rm1bUo@EzHt44WPjI1jj!c7+u=%}_vw)7~(Mgv4g4T3I>2l2=&C>Sl{
      z#~A&}*m!}~mY1}D7<&&!uQDFLtig7<qkls0r|8B{4b=u~)dtD`loIrjzlVH3lg&qa
      z?xy^ex+LSrt7E0QQ?U<n+<Y^TsX)AQ#S(ji?Fx*lVAfryC7rJcrys*K!Dk+$L7ESc
      kr49*VwM|}~ynBctPaU!v7>;`kRr(()!g0G-ax2^aAHx<Jj{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/PrivateKeyEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/PrivateKeyEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..024cdb30811e3e9a08d1156eb3a0353ea817b341
      GIT binary patch
      literal 4367
      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
      bvD7K=6erJl4zZ~cVg&Lj3H;fy{>y&>P-vq_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/Properties.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/Properties.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a02d62dc28bca694cf217884c0c26725cb6d192
      GIT binary patch
      literal 3479
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/PublicKeyEntry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/PublicKeyEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21447b519f3bfe0a2b6f5d445064577c64b1cfeb
      GIT binary patch
      literal 3747
      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
      PV{SEFUJ1Mx#BlNl?NINv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/kwa/AESKeyWrap.class b/libjava/classpath/lib/gnu/javax/crypto/kwa/AESKeyWrap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc53cc89b33330d1efdcde44139fc7ef74043d94
      GIT binary patch
      literal 3081
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.class b/libjava/classpath/lib/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d15a56c879a2754b095b34355789fe3d53c28d4
      GIT binary patch
      literal 2353
      zcwVhl?^7F96g>+|62dlAC}=FS0aHtowrj<oZK)EV?G^%*Kq*B>H(?1|!zONaX`^-g
      z2Xy=g{OCtNsH3GLGxTF;{G%MtdkGt`w2I>}*?sT6`_4W0+<TWl{``Fxz(uTv(Wc;h
      z$?^4j=9c+DFS_-rSJ6MaZ|YgIW=&i5W!J1$ZKpI|E>&FH+t>_4Rd8Im>t)j^>2rm9
      zR?!P1q#%7LkZ~A_0@X1$Ed@O@EvUTb(&sYIs;*N~FgUXZsMoBb&x>{4_w2Ghzc729
      zZlNo-V|!N>^o=}=lDbWtiOQN4MLW7Rbm6#y_7P$3p0OQk*552x?xI;JOBR))S-x$$
      zw%9j~s<&a+6zDTY(ucfGjHI6B(+LGHYX~DkWWk$Jo3v$4IkPG`N2eYXt*U2NoLU$I
      z3Wg5mZ#Y|K*<NGhz^@ahkO<>6b!fp&RLW)6MZjnn!mxtQsoebH$|t$;d7;3;z)_M*
      zYB+;930O{v`WTX8)bvQd;CmL8Q13HY+D2BhhQVLT2qWEO7-*B<sJLF%UthP}fMFQt
      z6b!c{G03fCmdD+aziByM;1|IK`px-X)%OyW_4S(NC2~vo#l-B~VxnLr9NzNmEtWKc
      zH$+J_LHtb(XECZEB6+1&vr(kb9mP9%FN}8&G;6+I^Q=t`@8c2$F<sZJ7c12|TX%m4
      zHCp<zafrzfC2F%BK31~~X*+Y0rUJ!aLzbzXx4}NE_%wC$xpy3Lt(sr<BABFLhVu^z
      zMsO`~YhXS{2L(4Y7$W;-*_LIALcSwv6~>H$%%Sbe23nFnqIrV?2*6nla{^Fn05-f7
      z#7dSoX|0<~LX4k+)9msW&8KMiyoOFhqgcXn7*y`$3odB5gIfx^7{_pGp6L`hgVB7&
      zcZ=3FTMXpj^JeaXfK-PVu${jSv_Tbv#&2Akh|hNyEo>K_9^-C|?>4?W(%XprEZtt>
      zGb)Xfbe%#ESN#nq^x^~{R|1r!=DV*6rOUm5`W5{@1yCVrG$f4HaA?9Pcm;8Ky~?%9
      z-AM^EON$5=%REK+7k>HDnMZi7MXiUv!b@dsBDlpn3;QU>0*W!bj$ujZEJpT4Ny#WX
      zG6m+}*YQ1$?I5$#bAB88lXPZa@DVOv3iWlwL%W~G)!iS^wS&~kHr{#?54FctdGHu-
      z^Z8>y>XZaqCg>e>V}*&`MG~txhmSa6A4`Ha8UX`>W4MefQjjtJU6u65@Bvrta`hok
      zRk<3ct%I0nkfkjoQyOim{*XSxD><;2$ArjZaBnx&%IbQnDE-6(3cOjQP;2C8VE`q`
      zGu^-ocqRj$$$)3F$y342K->`DDNO$hd2|0wUWcF+%3GxrpOb=1d25u{``_igNqJix
      zGksK{bAK253*P*aLO&$auPF4_M-^IC#eXE81+zj6KX%-RIT+n{GR@~a=c3UbQ$!Jn
      ny&TGgr--H>WAQgEh+T_hOiJ<%1^kxl@Ai#qZ!oGW();dTnON8z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.class b/libjava/classpath/lib/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06256a9966af6fd7e4fc3d3b326cf7753e441bc7
      GIT binary patch
      literal 698
      zcwTK%O>fgc5PjPQ+XM<UEgxwp&|3mhEY3YS!Ii8gHj0y=st0Q^Ti1=dw%m2v{51~z
      z0Dcr=?4n>*IjmN1=DoMGGxPh;&tCvO<4DIA!^cP#<`rM^J2T8znM%#YEjOK0vHF(t
      zEQ@7iB~hBk>hfAggW*NVH4`o))BAoULdDQIwa)_E9Zt@^P94t;N;tNr_QbJ946V_B
      zg|BilJZ9J#rt(H{spdQ>gn`GzqeA-kCG@F;{z5E>=eW+4Y=XHpn%M@PGVDI!#Y={L
      z-<wT_cHo@^6U+VLja}RK4LoPqd%(_e88I{@zZN9x_BIvQh-FOQYIX0Eg^Ck%%(LU(
      zoS|vog(6cim9OI!!%;=K5n(|sTA7Yq@+AI2-COg>@0L1A((d`dap?3M9S8rU>#qBk
      zX|4vv#f8XgQlrxJ&Ib%yAxj?}?-)L992&hkt2pJ<Y9>uTE%H#D#0mZRVB=`}rJ2US
      zuuZ$MjW!-ZBcv1Bf<d@h!%qnB)bKNC<z`?P<%YDdN11)fH0XXwk=J-ri?pjqr{ca{
      VXEgF@<FJZ#YV1Qg@2gin`~?xksmcHV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/kwa/KeyUnwrappingException.class b/libjava/classpath/lib/gnu/javax/crypto/kwa/KeyUnwrappingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fb8b4684d9141c8c3c80de537d309ca6b986270
      GIT binary patch
      literal 496
      zcwUuHJx{|h6g<<kg-}{3l!b`}^+RAG29Sy>0RjdhmO^(oSiz7wk(<!=XE9Y`;0N%d
      z5YK7E04#WT_nv+4?)>rj_730>jWU)PI)P64lXwwR?weVhMErRo_>G+1>xmI@taNZW
      z^<|u>NSEO->{&7&OFuO#nel6>r4eC2pTD^brBkI<(qkwzTLT8?B6^T63RtP2h!R81
      zQ(E4pqoFi+Vi-z>x)=E(90;TAoL@T0qZ%{pd;bX9WoR_LENCcn!25}z=Wc6Y{nxF3
      zm12#?f%W`FV{rRXYJ7R6Y=E7=Jr3+1c0oe0XNfxc7u7ONM}&;9*q&qgHG6icx`e<n
      x9Gqa4y2^q?xJGCNs<}Xqn3h{=cjl=5R5&B%d8V+vVC4$7+dw@t-^_Nlz5w9GZRG#}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.class b/libjava/classpath/lib/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c3b89b8b60426b1bd7d631e759fe234a5fb9f7f
      GIT binary patch
      literal 1474
      zcwUuMTT|0e5dIDq8`=n1E?yB3fi_&KRS_r(SZ<XFY7s_X^w1vKV47f(s{9lk-+lEm
      z1CGr2%IJ@B+>;<x=s4p`clYe>m+#xNr$2sv{RZGFG9lD3Tq#)P#3p~qUng?T_LgTS
      zp1<OWMX|l+@U1PwDomRN+cCUiX^!VS+u07Gj-gq0Bus7<63gqGBIhyGTf8J(h9=$5
      zl|92uWQCVvI5A;ZhIgBxHWpuHs7u><5k@T{Dnd|Xhhd4Oa%o*SD}3D)3{l<AadVYB
      zhKvsm>%5{t_(}bL854y_L3kO<^|+NIq^X!*;h*&!>Pf|`!)B`Crow1JTL`Ux4I%(i
      z(T>xStYefIT4V9!pHgs^hVuN?5ErgQI<MjaItWX=D09=z6fD~jY3>r!wrWhDDClHp
      z2mr1oM-_Be!m*@+p2IMCV?;qO>8H>!Hmy7tW(fTZomJIN&t?zwhS7(J0*yhXR{HRk
      zDe}TqFc@HyPjLvt482vMR{WNkKLCdip}EK{kr#YS7LCLaZrP+&8vLKTU{L6CmxARx
      z^?Tlj>(>B=n=0yYB7`w2sALzoTcnCGMiG%e6Dn>&ZYj^_k4!$;ahiM>Q@9htH03Km
      zY1=d@ZP=EpB8?f^=(1I^^Tvk1zVr=-uGkS?M|m>T6iGmfevBZc!dbiQ<iwmI-$B<u
      zR()7@qnk9>(i^8nDV)4o)X29+Ck+%`Bg@FvYr6=4B&P-{{f5Z`<ETRlC&^QTA~d3j
      z>{&G9)B(VEs+6@{+ebb7pzR>K$aF1wW(ViqqF;+%^qq@Zw99wewCE+@QMKr0a^9eE
      z4}Fh!5!2tJLyN|LCkOmwWDi4>Oy~n24#|xZ4Pc(gEs&xNBDhN=7wNU>=)^t5utfi9
      z%T#wCvv@$!L#!c-r+DOxX%7hF3RQtlR*>}PFox^6aUkm*)kw*AKVf7a={<}Ri}6KY
      zS8B~yB~4dgE(PXtVB&!p@XZ%Ye#Qu)RQL}QW8fKaUneCwv>{KgUZ4jX&`=;&McP3F
      Xli0)@%)<+4q|;eCk+(VTqb>XbP#R=x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/kwa/TripleDESKeyWrap.class b/libjava/classpath/lib/gnu/javax/crypto/kwa/TripleDESKeyWrap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..544e205e43661d1c13f5b963d8b6b4c9006507b4
      GIT binary patch
      literal 5388
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/BaseMac.class b/libjava/classpath/lib/gnu/javax/crypto/mac/BaseMac.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d617c4426c14a8477dff8496a424e5a9e27f491f
      GIT binary patch
      literal 1694
      zcwUWFYj4|B7=BLb#$Docqh*D%c3rj(aw#+8I-ui{tlh%0fk=roCLy`bY3j+fBVVeO
      z-^2%ysHXA(?bAN+qY%$IHc43{G)3__$M5?-&+}ev|MmADe*(CPu8D%c$}mXnC(fbs
      z)OMqzQ4-n*j%&A^SUzxE6NbPAWwm`L7~0?NK9O!>qA0LDHLk-T0V8k@q`*RV64^^4
      zFBpC<FrNkk8Tm&%-E-o7fp@z9BH6KY)5uGX?0s5@CF9r`$~)dr#tB0!Nt6bzlgL5O
      z`<eKnBT(G*0x$VO;9~78TfI*$?QkGVn89lnDp(Mhsnz@EAn>{c6LSLRyIvq4rU$z+
      z+HrP$tvhrbzwbnzI_EcyWZ#PgE_eU0UKF`GMaL^<Snrpp>ypwrU&bodOk5VY{z}0X
      zuAnL~r%YLOm}f`jdCfu@mfBsna1JGAUaL>*jLAf@&|*3ou*^)l)~ffFl%|Cm>MZ##
      z|1J8~9=AH3%=VtL-4G}|rlA<_?Zq-7y)OfS*+}xFygs(@p(_8Z>xY4SSwuEi6j9oG
      z>dH~#g+XkB=k<wCTLnH0lU_O+g%PJ<?5f&(+rlTfrI>D01!+^CDhxFp>}cMUH1T}<
      zfiq&MO|%87|E+5$ICOk(a9<vcp-pTFtW898d|wV7zn8E+V<!?0bQe^`>Z%NLvGn(L
      z^d0u$N9NTF)5w+Eo|+{qAD0^n*Ql~JGyKo;YN(my(`l$q>6N|XTIP;ZL9g>XZKJ>+
      zP-;BGg+}uji@)(yz(ro?i2}6gzeS8~Eb+9IdE*Vd3Fw_-5gKzj#~ji}MJ_j*&+yj9
      z3sf2#Cs+|U#?{8gG1ey(OOy(H$Lsf`=wT5%1pYx&UCBVkRLeP)+NqQZ+?#kiC$+gM
      z+ic@^EdDwsDC(P!G@z9^<bZr#pgJY^>Mt(^|1>q2Gn@yv^AeUByng8fjRGbKmbA&`
      zIyhCo@;Iq7Ht?=y=iujnk62BEYefMzS5{A88)qQ*smRlijm&urSs~<2t+s;q=~d9X
      z54cmK!6zrDxs@kfQZy&{NSxs~V4Z_g*_X!I^ZB61r%+=h@R`PQ@;X#GN}JCix(fFN
      z7MmG9U#!ou%I-HO-C5AmBepdrM1nOOo~lwcr<-HLzvNEv3-T4dCZQrO(x-(xytj?J
      QP+ymO=xA}@X#D&C04nS-N&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/HMac.class b/libjava/classpath/lib/gnu/javax/crypto/mac/HMac.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5cb2ef2c2e852690ae960850d687f8dcb28d98db
      GIT binary patch
      literal 4848
      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
      aNpXdk3?lxBqjika!$d3V)?ZB~eEdHT2FA+(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/HMacFactory.class b/libjava/classpath/lib/gnu/javax/crypto/mac/HMacFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d2608d1843e792bea2949ff25d58bd12906429e
      GIT binary patch
      literal 1916
      zcwUWE+g2M@82&a13?x%IwN$_=t*0D-v9?ufu$9sxkt8hyLqk1HCYxlZlNp>tEzjW{
      zFW{AH)tdxlE$vlZ%Xjcq)PGM>Q<6}<n7wE3{U5&n`wxHo^~<jSF5{7c0fxDX<!d$l
      zk^WdSoc%q|*6O;Utz~s%RX04_*;f!|7?Tp3saqB8ZmGr%Pr(qw%yV7M<%aJFZ(rNw
      z72$f$KEu$Gu!MJmAry-j7{V)dnMV*pRE2_JhS7|$c+RhvxU;2~OwKTou?^iU=#G%*
      z_GQ?s3YXzh=D%>J7@`&Kr7hRfErT?*Sf+zI?>WM%q~iU}q{&Pwf=QfHaP~yBEj<-e
      zI4`j{qRwzO7VotzwWn3gNV%wIXYB8}v!c6v7_Tu5R>{kP6nS068<=B=5K6~$w}n?_
      zIM)y9jugM7;!V6oWSZQnNKqm)Eg#-d@h)NvBd%X^0}W{=-3OS01jF>H>_sq-MFk5)
      zac?%Ox?9!OXlZk-VhkEX>ZQzfsi(8tb@d9rEh^mgh^II%%My5>ArbqZO7TJzSMh;@
      zYo~=GGpOQ2e8e#9a&vc!)B?746nxBZzJoVydEBvd^N!=#jx@WZ;*%h|mR_d{y^fm_
      z-lwOer6B9H=bAF)aMw4<=j=;LjKEQe=Ex6~^!W2K@;zZ{c`mt`$7d>T<Bozf33Og%
      z4oD(`HAJJxAg3V9aOQ-%io3W+9t6dwQ??kUPIySS@2Mg-PcYJo;g&DVGIt`_z|APW
      zz_tPzYp=eF`zT7f_+ziT8Ct_3C5=2#@g=?@V)VT|Zj~7p`c};;Fai_bsQ6Z9X4tb^
      zk23y}3Ik*=q?gNGIcj^4?@0W+Dk`!Z6e_43L5)D*p@JIebYfbuO_NlFZMiB;P;-y^
      zR^2X(-Czb0t27~FU1{o08+D;9+ICt;dtL{sbUpdPbvv8#Nk|I&C5c8v-u4}XuL?N^
      z$6lCpi&7jHK^)LGNW(mY0XbCZG(x8<v@_ZV6HP>Zrk??*v_@zLQV3%SXXsCD3E>rt
      z(mq11J>E9(Q(zF-Nc@gL_9W53#5ygnt|umD8@O-~T*}{z4ZJNMj}b2>4v}o)y-e~M
      zW|Bv^!f=4`V_YxNfud>R#&5|d|AJXWl-4YP$zcfh=(IrqHZhGnW>G*4+tix(v5X>>
      z^@9NLR0|Y!>oV<EaRIlmLXf9r$F!mUKo&!^FCSu+V67FK_&k$1!a76tN6aOUu~D3u
      zZ6ZH^ge``rm~3FDfv+3Tx9N(QKKT33<RPjZs51l*sFGnp=NiFyNEFwI#d-j1jvR&w
      alm$Cr^&0l@9l@ETN$0>ND-2#>&Ho2%!QZ3+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/IMac.class b/libjava/classpath/lib/gnu/javax/crypto/mac/IMac.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21fcbdbd8693559678533338f4c50a8e49d2b4be
      GIT binary patch
      literal 686
      zcwTK%U2oGc6g?hY(iS#G86RVeF&L1(B;vVGZ7EW;bx2E@#P(1b*F+wk6D7{H^3!<W
      z2k@g1H!fNy;K4e+_nzZ(ZQq~2zW)I57H@p4Fl?o!iq82ZzluaL&utc6a1q60E_^f?
      zHtJHOxk;lBpU<VRlp6Pk(}U5c>9{``9moAchR)%Vme@j>w8yYE%uH#yu_s(tvWXVM
      zHkpMBn~-e6uX0XkWudrcSf3n!JQ~uW@1{w7I%?t$!_Hp{TU17nViuO_n`CGhenGGq
      zbpO|aPm;v(ZUx<#*vcrnK_^&{E30%g=6SDs!q6UF37K0(P5XGju;(bH6jh<@Jc`XF
      z*J^ek=hr+Rj~I5Bwz1YS<vOv{-!+NBtMVCT$UPX;Mt*QMh~s+a%~UE&TUWYg1BTT?
      zmeRUrsoE^1{xWfON}N(z=*;|c*~Pc?eC#vqFVn-Cdz9Iv%JZzC2fNWxJISg-$oERq
      zX|4LN!&>MukQL3w3bwEck0ReiO^Vw$;@fD^Xslr!^@!ZXhQoX45aT{EJmPHPA>|&E
      g5)Pj@+{ROfJ9y@B7tbB;;l&?qgYYG-SI+76Zv@$)%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/MacFactory.class b/libjava/classpath/lib/gnu/javax/crypto/mac/MacFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c3ed66a258e63eb09d9c705eb566d45d5598e3a4
      GIT binary patch
      literal 2483
      zcwUWGYf}?f7=8`{8<IsODi-nHs=25UXlWH|RjLvRU<JXT)h@}BtZsH;ccY-SwfC#N
      zU&eO&*{`&n0WC9irq0xv{)&F;&uIIcO%Q?D`XPJHdG~$a^FGge+5GYMFTVn4!M6&k
      z1UBWYV&Z~!Nt;MyoXIiIP876EqDRXd)iR##Oe&}rSSb|}re@_5eIpn2jHjShVBMT)
      z!qqcH$M7Z-C-t1+dd{RkjinWIS71fT*C=|1ndsNO4uRVJhGlpM1eQgjg96o^c2*B!
      z8R}KkAt)^jOYbcfMs#OD8!>f(aLUeT=Ah;n@>~{HdwGNYx1|0D0B;QCbT4VSo@Qle
      zn24n2;q-fsVdXlamAxeCrXz?oSgW9M0SzTP6;Gf^hT<3nfz^@dQqR)5S;cy(7xL_s
      zeOY%pHCGQ{BT35hmR(Y1vx+U)DiCCpj^_>;US42LrAUW^cnaGUY!ldAG3c&&>?*=o
      z6+nbH*>g9=RK&59X)tvwCvRaIlJdoF6$$JSsB?=Wu78<~AXyPpE1p)+Ca`Tu1Q}y2
      zuRDoOe|ad3X9V^=9`R)l$-}0dxmfbkq2O78riyU;dJc64(T=^ceD(=MBai1YIvBuy
      z0i~GN+<aTBWZ-~`7i1Dv>f=Stbdx#Dc66C61&0LISG@jISK0g^>H~O@ycQ{LYgKSm
      zpt-V1k5mZah_p!3!YdT=E$s@rA7wGn)6><`9>j6fhtP`?3i=*Jhb&nYFX5y>z}3ys
      z0p0cd91klP5Li2(fu!Z>j-{DL9LIK~+d&mWemTq54Wb`uN$Kz->Tpo@<q|Q`l*ks?
      z{&;zyg`>MglTkMRM;8(fySTSBR2t?w?ZH^7g8*?W2q<8WH_X44`JqM-S=7tc$*Xt;
      znmk@maS<l(*Rt6|CO1uyhrD*$rpZZX*p}aOSy(D;jFC&KFXE&$6n(u`<U?>#R6s!W
      z3xZT}373h(AnzLcLZER0j$~QRYM)$?sS>w`i-wuioggNV4&hb2rr;WLu+(0~>$on{
      zs84u{r&2jm>EulnZ{ckTe{4**2x(U(NJ~;&4#Rixu8Q|$#RNRN^isz4fr<}h`6+Cy
      zUWO3F$M{6S4RThAU021Y_>5z}Xcg?NG3w8Fvc>ThS(N0(Nf)Tfvl>=CBra!LzA_~E
      zO7wEd_S;1#qaQWohh)Y4yxc9dIf$8L{%ZIO%97&eav7@R*NKu4Pi<TU*P7T2)E~L2
      z!g4-?T!90q<``MQomx`DN;Gh-lf$^=KqP#Jzz?zes1Z}KX{_$%V_kPFykQ!fZXyu7
      zjVGsK;T`^Ii@%9ZV^=rjEvdL~HH-Fid<M@=iBv4yF^%VMV)-l%re|<CbqkSLxN}Z+
      zgtB9lt&WAed|7A~$0<vt;=f~E{0@2qzC*(-`qMm|5}3j1yYZ<9z=qMtXE%YRP|HaX
      zLLWh$KobYeMh=P{IK@8{gPg)c*oV{Dk2I&-863k|YQ4<eIX2LF_RlM<8V%Qx!3|2j
      z$EZ)#X3{}2XnlrjJ7s5SC1^iL%k$hd$)+u{{}<zs`c7D+yMOx$BlmG`7FpsMO~r2`
      zHw|MbE(s}c=`1Z>a=DH1J7C-O+`@+VEGE+79W%JH^A4^GOyiAdyd$-EexG#w^Cx|M
      z^fN|c_imv!cJD4Pnj#-H$a8Ffzk<J(7-~m7pW}S%GR7hkeF@FDjIG2Q#U%FN3R$^I
      nJXeV48gY-qA`cRMBYmtQi=X2QBHWAZ_!3`HCh)cI|C@gSF(`ZF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/MacInputStream.class b/libjava/classpath/lib/gnu/javax/crypto/mac/MacInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b862aedb6c03818b4c9b061920341538e66eec11
      GIT binary patch
      literal 1464
      zcwU85+fEZf82+YRT3V_=fhrbIM6}zYtAdDvCr;V~@PKI|#KTgSx>|N?*(&$~UVG`4
      zFW`kHf>9H_H1VN~-%Qt95H*CEf9Ie1PBZ=f<I@)ar!W~tK%lSSRE$UFQ*+(Omp4kD
      zYpj}iW7f=Pol?b{_sW*J8ipp&DK{CmYfRfk&nnlo1tQCK!CLcdryw8}1cJm6NY3nv
      zohA6FKxoW%Z11ALU~1+UbRFpEKMw0T0d2xvwxS4PPYe<471+N!jGhalMW9FZil$RA
      z<|@VF4cB&PVro5al|0*ZqG(230<}?mO3y_g&=Erzjk4MoLjytr%`>)R%~e*HtnzJh
      zsb~qrXWYD5%$a3de*24>_t0Jw=-=JJ_GlSIz;;Nst9YhVu)J9rW_L>ecbsef#-7xF
      zk_))x(^3m6#g(GTJJZOvtej^BqP0}k!q5fUYRazHIx>|^3|;7s;y8>jPSo%F?I4DJ
      z9Btxb8w}$#-_T!`#V~|3bWtfSo1V-tH7@lDoBz}lPA!gSvwBvtotK~^5_C+Sx=`zK
      ze{iX?LWhgvEZr5B!J<XC(RsI0&RcxBgl^k@11F>&^wLm}KZ^kWc-N}p?Q;&X6G4<?
      z6Tcj;%Y9wx%m>5<zM<(en(ur->(}(aCfd{5CKB(|>HQoJD5MD@P7-4Zt(ZmvSCPau
      zbh2}(ip70NKvhhXOtO;f0oFY@=yMyKWv?Oq9_?>yBq6nUQvt@R8+<@Pf?ogdEoBXe
      zXX-U)sQI_tI5duTIo>1Eead~HP!rXYHJNcGPKr5<J|F+0j~_}Ww?z<DtB<JZaUE8u
      zh84mQ<v_@n!rn2iY5YnlRMSW8rRDS%2F5riUZE`+c#XX>hUCkSI2l0l%?=YT1(wi`
      zCrqzgN8IZZH*#$lXMN(4KZswjZs4p-;!Icf7S0W8Rq{lKM)nrTp6Tk)K4MfuhqhC|
      sGbXrBk`20gt^^EK0c*~6W_C&4myXMn5>V9@RzaTaR`R5vafLkb6EI&3z5oCK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/MacOutputStream.class b/libjava/classpath/lib/gnu/javax/crypto/mac/MacOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87a03e55e0ee490c9a2a3e51c911e09630237d35
      GIT binary patch
      literal 1438
      zcwU85VNcUg6g_Vnn;X^1m{TZBQN(UTDvFANs6)^t0}PlYLZWt~%xY<8*9!PA{OG^X
      zL?CFQA5HvG#{1sNoD(q1-cIj*@0@eb>wf<F@(sW!rXvV23|1{qeWktCHr0x=Rda21
      zU8|^bT4lj=Yo5F0I=Z$VL5QK3?@|q0oi$8XcUt=l(N&|W*ImP^GO%TaAh9sW#RJ(3
      zL_fh0o-{1OonjbMiu>HHtP@9^&XgEJ)Ap(!LlDO$L~(+l=MbJuDT0#>Y0)$_tE$d>
      zruo=5ESh6xv!d5r!?t3GBf*)v$-a^)MZs`NLIlS+IxV3CVTO3ou=IIvy{tP=w6du)
      zB#L%LGfSFd@Mpgma$g#ChM|K;Xp5J!2-=>@kUH2uMOD?^Ii6_0k~uoly1y~4{3pGD
      zZIMl7StPk;YIJcO8;;>}^GbnNW6fyl5o8#;_sta+nw?JMa5;iu3ja_!2_sO+npa!Z
      z8ua-_x}y^M&>zD!T#sOkA$idB5-wthUaB&E3k(ruC0`(WT=+I;9_QyL`L1z_vFxqU
      zXe)W1=o-PGsneLTCEIf<I=#3gpKMEigsWnJ`~>NL5uguUv_N$A^c$v56fs&m>B*ux
      z-`AJT?Lr#<fzGdpKix&w_w4XClG)HUQlG@>Gqm;!rU%40Lmac{!b7C+2r>%jq0YGm
      z7wwY)fhZ7C;)tsU2&Zw@*H-D5_d2qlk^I;c35(*QAe0&#d_qP71ODMfF&dD_wR+Bx
      z=RbB62+{hC*5}0Zg6wL7HPtxTw3!g*xS8{~;PX%U{Nb$pR|GLpeNCRs7OrrUD~v%g
      z0ps^fy-QRJ(UT%rSA15PMoxXe2|l^}eh=9I2wstQaJAijjm*6v?2tsgMN)1`%D91>
      zzU25nk`7_clWs`Hxn!=de-F1pLX+?gCfZduNOcq4*rNM;CseZymZoYNcPJz#&|T6G
      O2y~B7kgE3uU;Z~YAPgM<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/OMAC.class b/libjava/classpath/lib/gnu/javax/crypto/mac/OMAC.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..449ad35b32280cb04ab761a4b15161dc6b65652e
      GIT binary patch
      literal 5837
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/TMMH16.class b/libjava/classpath/lib/gnu/javax/crypto/mac/TMMH16.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e245bda88d94c9aee62390a913c9ae118210688c
      GIT binary patch
      literal 4710
      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
      arHUs9`R*l|?_j{z7`VtQ;Jl&r!v6r(S?~1#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L1Hash32.class b/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L1Hash32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6276a81a15c1842275eb164d56a745604ca735e
      GIT binary patch
      literal 3648
      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
      SO-J?$zRp%<i0~WgRp5VUkn}+S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L2Hash32.class b/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L2Hash32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f57ef27334f18a1cf37b61f5d0c86caebd39d94
      GIT binary patch
      literal 3784
      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
      Hx4?e@beS53
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L3Hash32.class b/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32$L3Hash32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f721424fca42539010e934fae54b9fef2a8b4fd
      GIT binary patch
      literal 1865
      zcwU86T}&KR6#nkr*_mat$ndkUVoO)r%JRE~r3*sE0;LvML@i=g9?Y<vEJK&sx;r#L
      zj1+?j8vD?`)tDHc8cj?zks_r+{i%)BJ~aB^iw_!2`e6L)V^i_mS-LB0f{;7sJNKSB
      z_nhy1vp4>}ybholg9<pq{<t|EoYYQhGr?GD_LP+jPHC~=v&XdbM5tw7B$NRPBnDN4
      z1rwSX4-St{>M=`!%ut%!?M)<2T^mp646di1=^yHQArxj{0}O?|Ni%I}rZuW1rgbOX
      zU$nWod6y1PGVrl}2HBc0()$iDR7G~GsFNZO8Kz-%QR#u5L&ti?dTK`*q~7ESy#Nel
      z9z1{|HykMUKt%<EBTzdkP9F5YgF*!lQPx~PeKRrrlw~B%e)=~oLrWNQda5s#N~T=c
      zO|1_$`xCkuw<i2X+HWQ;f4J3+O6(EY{S4kfB$w>Cl`_nDXYHs9)eI$rEqSlD3RcA5
      zCPPugF!d*=r^fZvNQTdnNHV4+Mzxe7{H;w%aK=!xBMsRZ5_NpAS<u}hPz#Z7&?4^H
      zByF6eN$mYUM*9Vy&X|}p(HW?X<V&K{jaD2~Q0O6rwYZ7eHbDl>RX$<F^|VDGKw}x}
      zQ9uP%=icv6B=oqJ=uX9_r*zZGa__=p)c#N&Tg_oNI<Uv)jFd#2u_0Phv}S2V8QjN{
      z)2Wz#)DTR0wmN7M_mSIgntG}?p{3J$S^-h8Yp1?R&i6@#pIUOza?-OB3S5K>s0a=>
      zEfNu+szPS8C(%+-Oc5mjy9t@1fqQlJ%P6f|fwxXAxZ+-huVGz1{5A^LP#G=RwSuaR
      z#&zYs|FG~KVaXA8Uc~tZuXEAKLa&x#@4VVRyUjf?yRgj<<oW(Q-<RjBdA@7AztASv
      zeFUFZDwoUPesO7dQDR<6b-lAWCH7TUqa&pHW*VhXF*aXT)tNJm&J1)Blx=us_(Pkj
      z{q&qe6~UWu@?{k8_fgD0hL5kJnqNkMuc3v1f=<4H0e%%xvd{BRVUV5VpJA5l9RD1z
      zk$s(ifeU2c<k#>n+4uODxI}i9U&nRIaf^S2ANUR2=3nCu{|0x-e}wMuqH)kLP=kQ|
      z+1*1e>Zmq>>Ipe;5O1LYjWot~TtE{cCst{+K^mh>ktFNPXz?6*4zd;h8EstyJ#tN#
      z2u<+ssOei<O@C__Q*K{eku9deRuZT5^c8Jga+uy_B6f}RO_Y}k+Akq=6|E}>e~`UH
      z7E%0rJFh46MmBFd9^F!74K*Ruc(#6BRc*0#L`x2>plhR`jl?E9!pcQ-)O(dhB`1h~
      zy9?drlHXQ@+(a9X&l^G(TAQ>eGp{Ukajjfh%1EQ>m9VT_aYY?;;Ct!ZNK_)A3g8r>
      z0?1zZ+(@p84&oX7M=1O!BI#$8@n5i;-$n=j6;Bf$<G*2o|BfmC2Tt=pG0*?P62F5t
      zXiqeLj6O|jF5CE7bkj^3<*h^yHO^6nS@aT;i0mWwoMk%ew&$#1f~q)T?{W0mRUO3>
      MWW_HUqwE8~Kg2PVod5s;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32.class b/libjava/classpath/lib/gnu/javax/crypto/mac/UHash32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..afa01f824bed0a65b3a93974542ac9cefb1ba9b0
      GIT binary patch
      literal 5515
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/UMac32.class b/libjava/classpath/lib/gnu/javax/crypto/mac/UMac32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0df13dc3a55c1aeb272ee36d186bb15c028fafb
      GIT binary patch
      literal 6241
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class b/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f608e3f6363b1970ff07a38d883323c4ee6ecd10
      GIT binary patch
      literal 4880
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/CBC.class b/libjava/classpath/lib/gnu/javax/crypto/mode/CBC.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..631dd8f3a8300273f24586797b9354ed44897ef7
      GIT binary patch
      literal 1912
      zcwUuLTXWk)6#mw-d{r-`b&DJK7DD1nTesMlQm28~wA8JWQj+mZC*X;!sE&#(d1N__
      z`^fYU@CRVvC9g13CZuHo&-@8G{1D*mN|iGt4`uA#J$tnKo$ov6>>q!>*aL74526S$
      zq`TIz_*mUkw~CrG>brKaXRqtUdaWKsnBm;vpKIzsUnC=n2*U~fy=badw^%oAOIJIl
      z&JZ`%fm<_e?JI`RYK<W}&>Yp(HW(svhGn?(4Eb#H0KR7QH*}}i5LfGBQ*Gp04B<Kj
      zjNvGQq;<3eBpg?ez*`J++2)wSvg;UDxB5STk2MWTUmEs0y0hYOpJ>{eYPM9z;CtU0
      zb~lUx!{kBa*BPra93NWix?_%rf)|2e=FO-O56>-}%f?d*$r@CFLvj=Z%(dcR$S63A
      z)09^aAc^z17{vvK={Je2U<&Ur$QrL5!^v!JUpDV|9_yN0<x$>M@HWy3vSxYSlOiLk
      z%N=>{I71i%-5vI+Kv|F26$M448IEwmfvza7F-(nPG)z<Ps^)^z9rkp~y|tz3eb=z9
      z1g@gQkuPzq_Z7qu<JJcXqMr4kf*XiYe;J#UEQ2BD>Z-GDKd~4T-4dGp7K~?CYYqD6
      zT0A`;E4YdI1ZwysiaM2TU;m5-uHI8{3%BW(>Nx61v-=~_tOxSaIK(A-Dr67^$sW4I
      z%cemLly!Yfh?7`Ua1Znfq|WdWLt@z;I+}jl;Jp^3;$Gp<xJWW38ZtukBi;0NLp&3-
      zMrlwX=&M53J%s5b5YJB>DP(qV>?d(_LL3T-12Hslf~*VPL7YSi5Y{Q2CKzr}jYTLb
      zs1LkIr}_O<zVIBAyEw=2JI<3my@Q$m26;fBpNk-;yh}ll6tXlZ7rftm=#tPzVPAqh
      z%<mxgV*nQsA6f!R@ws_W3<X^B0lp>CJj_!5IWE(f{tn5PxcYDh@BNnN`(I-}qa0Wj
      zX>J=6w5v?gbbYe4@{BQVR`z~?B7A$_|MS;a)Rai{Dkb>~V)7-uvo>b2M)6f#r*#pX
      zePWk<hB-{5N_pgB=K`)b=?vGA%rj!br}8+^QBjgdROc>ba$}$DWFVVb)`xmQ>50&K
      zSE|U{$Pn*xO6D?Ba;cD#Gi#-<zgc-EGvO?gq*t_Zd1dKxD!hx2WYEelNIW&aU}4PU
      zj6gPN?jb{K4i>#K8x8aYt9dVSP}jTol#;}RRTa&{tvlqCgw-G)@5~vp)1;5_uJ?7k
      zqCM~8wpXAVav_tJUsK|g3qqT;i>3^z64}OC;+=}D39XTm5FQa?BP<p1#s2AG9HPxD
      zr%UsY_-|5~o*<7cEYP}y5f%8U(0IpV6=-Y+8ry-!cA&BCYm8C5F3~Jgi_8kOyov9N
      H=%4)ypSf{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/CFB.class b/libjava/classpath/lib/gnu/javax/crypto/mode/CFB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df8c22fbd37cc6558df191d36712c70b5aadf0a1
      GIT binary patch
      literal 2144
      zcwV(s-%}e^7(JH|62ej{HmwxerU*3zORQLG3$`|~Xe_k0AWo+`<FYKtlFf#0HWVDI
      zj)TATp|!Q@TW6f<tIpJ+wGR5^ga3v9fp7X`J@;l=qVRwZ4&>Xj-@W&I=brCNe*No*
      zRRD+Zas&+m9eJmkp3@if#kAor&3ol^sXSw*v!j^^8U^-lzMRo3<~V^sYo%b#dgsl&
      zRq;$$py6UhAW|`0-7^XTO(T|LdB+7($*~PohBaR>-E=NvmyKdpy$t92rUV+Z<c>lU
      z2pO}}F@&&9LlkWSBgrvIk+yXwpPuks%gGP_2jaFd%Q4SXOVg%1sZZO~-#%70bbCs7
      zE&1*z8@+;65$N2=yk^d@!1k&$W4iVdCDcj?9N3x^>Zqkva>9CpB}I;AZ{kr<uy3jv
      z0=qSIB2Hgx1TENueG%*x=-EnT4GHWQ2pe|UVa*-MzB)J0PS2T!H!Q0>s$nN~#fW;P
      z@6E~)-IIx=Oguu4is@D7*`Q=i*y9=wVi)H@3J&fSL0X`Dy++Qq&Ae`(bo14c>3F9W
      z4RhYJ%1#uA1dj2ViD`K>QQ_Hyp*v35OH7*yTX*xOo1g}Vfh+1Zb$eqNz@Sw2lt6rw
      z5vge$(hx?IL{Dpo)X*^v!)W5%S_?5egA);OShuYcjO$)O!?QTatClQ>7f<GLeYqI2
      zI2FNj9D}-IOZ*O$G>qbTfo9!x^(CV`zodqLgU`85Qffw{o~gSt<;$!kECJ1QR6~`g
      zq)lGT<oMq=C3`=v;YFO5>bW~=IcH~Q*%wMJR~efb*D~6SSx*z2C|6y>9JS=QM``?k
      zRD=C=B*b5b2L911g(B)1;fIsJ^%&7<G^%~gsrHust`)R?r?zfqjPVJ)%FVCgA)-WW
      zBiivWpwJG)Nh1-5OqJq9`NZSgEzieO{ddrD4_yL3V-Ion3VQxsWR_HURb*%FP*5a}
      z14J}X4!lo2NNQE~KE#F83Lg75plebKMMb6g+G<n+eMtEPH~f9s)E)Hm)BO!v?_=OX
      z`x7g8@~4!{{22WnhXZtk;An{9unb36W&SQk?jo~(lL53a&NE&@8(d1bMD-QygU8ZU
      zt}jseWt<?+V6jeOHjwy2AhG1z*DH(ug3i#$ZL~_<8Jb)cqEo`vTMvFu3F=%Iv0JtH
      zO*Z)o$=@RF6$*G8J$R?i-d?|;>|2hVllF4@{L+7tL$cVc(Xn>tBcXd33nMfXzKyPf
      z@y2-g_5Ln~LAe$W559YKaycyGVd?0t2fxW<zPajnw|tqQUp(rs)lxG2!^R=BGA>i!
      zd+5OXNb@<24`|YdwC5w7Bc8;^cm<ze2A`rpT*PPUcE@YFgW<7p#_zO^vuZ*mdWpG^
      zLg$!kqzApqg)n!X4_x@eccJ)yxX|CV6%(%V8rNvT=QQCOO}I`IZqS4;DEvB2xQQuz
      j2?Jm8yK@tB_`1%7VqiisFrgTjPz+2cZeqfO(lPlrw@A4+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/CTR.class b/libjava/classpath/lib/gnu/javax/crypto/mode/CTR.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..471a2bdc029a6e9a6affddfd80009b4f4410dd7c
      GIT binary patch
      literal 2347
      zcwVJdU2_v<7(H*kyIrIdQpHvpK8k4~L<rW}6e_JCkrtGeNcqrilWkc@H)XQ{$^|OZ
      z!3$+ZFZ`h32g*!ub*5Mm2fgybU*MJZ{t4rG-%ZmFZ~@~?H~YL_&pFR|&b$5d-(T(n
      z*n#mdd;;qy?Mmv5ao)I?$~!aDZYecYDwwH(kt1OQ1U5W+x!)+8Lkz+Q39OatsiI*|
      zrUr^7+cd_DrhvaRF(Dwb0^xkAV!Ngz;5*UJ1=G$8gnBL8a`y-%;)4%i<gMw`rjyF{
      z7fboG18R`TcIE^E0|bqriCOZlqrs169Xi$u^u`C5X$-rLWlv_FAo1!!%Qg>Hrp8TY
      z#N*#QSjrp4oZ(n<T$>EIr>(L;>%*CsRLcl7RqTT46lX}mgAmyIcvQ&4n^u#<)+Iu2
      zc!WN6u+Cfq1fJ8e0qd!$ceoKTYzkwez?R2B)v*~{1cG_lJArla&J{`?9zSE|-Hb%p
      zs^eKiG)8f$`6{J`;mV1moM>f^vguZ)*_^mXET!W`L<Ckz!u6WM*eS4S86#UPnv+Ix
      zuQOShGHrL?#k@J~S|vMzT>_is(O8+sVkQ^NLOJHu5F3~I)QUzocS#B_3q&8`1CPur
      zI>Ly^D5IkRnv8bq*aMBmw9d=nt2!E?N&WhD4B#~Zoo1EFDe?jh@e}=7{z=OSi_aN>
      zh-(^7p>)C4kj23;-k<{%g^FtxQ+pl9m?`TR#1I9Wu!=?YiCOwPb5gm(I+`So&$8u}
      zskqEpB5c8239F4SX-D(5EHy~w&+=j!Zpq1n@wPzwQo~baGhcBmcgEW_Y@VyI5-OF$
      zs8s4Wn-$MyC5aqP>Ntg?ti-A%lc9ZhVuI~t&1AI{Ys00AlQ;KU@-jr|!0i$Y8(E2;
      zPmsSpsWLw>KB=*KH>!67AG(ISo?>(m0q*5&qIq?)Z4qmJR9n~aSK}Kv$t0%`Wfb!^
      zq6JR_DtZR%nMOu5BzOCy`)Y}Y6a^rfNG_o5F4_ftM~rdDBA$N`WP<Ue0%`FM)j^`@
      zWW;93%TY_6Ry7j#9>i#35s4q_=|XDZtV*TVxOu4rUck0mg1?kNfSp*tc0L`qvFaXn
      zj5eni@zQSz{~dHE<n*tRJLr)?pwP=#@BKhw_dF|FKu_zesLH9fSzk3h(s~2owwu*|
      z>Zke`w8?#b{`C3pVs8-3MeigxV44j%N2U(dE3-HkNmN+ed350d4)FaZF5)<5FojDi
      zI$+l-O7dpxqwa!dGT5&=An<y<%2722+9i)a(5UGAj02L9H|&$cWm+wi1-MM#yoc3z
      zpW_esJ-f0(%=WsNyp%PVF`km=v_!IPTQsnULl1WMDx2`3%CgJbS?{jK5;c`sQ>FM+
      z^cFN#sD>k)3vhk-3D7<w+Q<J3Z3IVaXgz8SG~GjPG>}l{J@yk$JZQL2R%p~z!}G}x
      zikC<1V&*XC=KNj3d0Zp$*?>sWJ0dOHkQiM+_wm3OeV4xS=?JH~CDykX^UT*3n#X3@
      zzG&!VIxwboFix*Q_40Lav2iw3jfQSk|Bi;{uvV^m2Wz{Pp&vHnY*0jl@(SFlPA{w2
      zqbmQ5m3@H@e93<tH)yY~XsoZP%Qra2@fdEw#CNpo_q671T;u-hm{%$s@G7mVK37+L
      g4)4@dpR21rhj*3getfQa5=1vqq?x6%V~UmW9|2a#KL7v#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/EAX.class b/libjava/classpath/lib/gnu/javax/crypto/mode/EAX.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3bc66f205ea672b0f858293e15d5e6719d0145ab
      GIT binary patch
      literal 6178
      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
      YezqOTX+=9*%4y4hOpi+cI#9*`1$c;(GXMYp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/ECB.class b/libjava/classpath/lib/gnu/javax/crypto/mode/ECB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdd2385106033682485fc79011a98c458e702ea6
      GIT binary patch
      literal 1484
      zcwVJbYflqF6g|@x`e310Xho<9ir9yAMetcfX@jw`=m)R~A<=BNld`z%HruU$f5yL{
      z2}y$_>SuqH@y={*2@r!Z>9lw5%suDabEiLlef<Vt9>pMh3|Hz_OWn~vX#1+}95h^8
      z-L-36T`d-Z2rx{Ze_YU-e2s!2`WZ&VxoT=wT`iin#kH!*8TywD%W#(&GO6+z5Z!2O
      zb4M)|Ok00nl$(4hU110m2{nWP20z!U5%@8vAc!G`rBu1cv+g>ERnPweaI|b#{8ekW
      z%AE~QV61HGnpx2tL+m@rfV*up879sm|FI>{Fx;|g+%XSGf=9tHdod}b!%NHLy77@H
      zS&3{u$D=M`x)KHrO2Ifr$yX0x07*;+ag|}_BFqY|VTz$o7XxA#O{Gt``MSEpbvG|q
      zt}BQm5us>C_#TpuXs$@y5{b)%(d2HcK?6#8!m<i(Bf&5z1b6!iB1dRFj*@Bex@N98
      z_0}%8+|_-ZH(bNELb$^)PA%j-@i~E#s|uK0lW-!K!(G9=zz{#@35eN-T&_7ad(UD}
      zxFvC<4u)`Qt5Bj(x+45~sNf#%Gx!X;>Dwxh_XhQ0w_J*BDz5Qfu_$<^U|AGI*6o&~
      z^XG<mA|aYdPUyfib?>LuNB^gwTp`+pDSC+jodDrXERs#Op?sl@4^jG#&@Zq-SKnZm
      zqABkpE+GcUXau7KBO)3F-S!FJJHTsnThzxh*+YySVS?cYk`zz3apN?}TLO9~NfKUB
      zmn4px6j9gWS#+QmWG_T}47QnRWA<|wu3sML5=!Z4^Pm_~NOu5UbN~{WLu6=8f5PA~
      z<~Cz$8}r|L;)Z0$+ZcdBLUvA|Cc3DLUDT}H)9L|ua;y`DtXoI}?i6yGi<nH5q>N>g
      zbMe3t9`xa~Ne=00N~lHede@{V9^tWsk0Rf(Fp4G0`DOHkasfJD{ww9vvy^*8x&L33
      ID-yBr8z8e4r~m)}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/IAuthenticatedMode.class b/libjava/classpath/lib/gnu/javax/crypto/mode/IAuthenticatedMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2778aca6b300e3f9e17367c46e5f03e0cd619e1
      GIT binary patch
      literal 207
      zcwRg8Z`VEs1_nb0ZgvJHMh1=ayi)zF#InQ+{p6y`f|7jw-29YOeNV^Il8n^6lFa19
      zlGGGmpb$F)3nPO7NTq&GVqUtwe^ORzatS*F8zX}>4l^LyI2aiuF%={x1LYHw85y{O
      r^Gl18Q{6IiQW+V<G40g@=>uBA$iU3N#K6kH&Hw_844gociGd3MF|Rr?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/ICM.class b/libjava/classpath/lib/gnu/javax/crypto/mode/ICM.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbfff4b4f453b081b19c02e5a7e6b97890e43324
      GIT binary patch
      literal 2874
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/IMode.class b/libjava/classpath/lib/gnu/javax/crypto/mode/IMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa3408e851d4d48c181cbe07e0a40bf407dae6c9
      GIT binary patch
      literal 517
      zcwS{u%TB^j5S`&+3yL6$3i#N#&`lfHuB6oDMxe$L5_LgJxv9n4Hl-!#r@8P0{3zqx
      z8i8Q$^PHJ8Gk5OS_s1syT*8S28HA?eC+ftSS##Bn-oiLgUxP7MS(kPRatIY+R6Wag
      zRAV&Zb}YdL!r4EW?S{`hQd!Fj>=!Ks2zj%A-PaMSon;g=j$GflLMUm0KaDLv9#~$&
      zW!OZhQCQ_Spd#u}$R2Zqa@T0<!&b-8Zigm&)MeO4XskPrL~3Q~zLO%u1~TkW=5;4`
      zhEUXd+Wo^_pBX&_WLfG565H1QSiw+pHj;3h<}aK-wHVEdfe_Da9>y*eFF_OGbon&q
      zdEBu)Qxv`MB83?wk<D*hk3tpG)+$0oeMHF8%G0QW1Tx(VA~h5VZ>``G;qnTu5U#@R
      c0`C#7t>Aq?`nv--B&JSGj?M<Hqttr*1N&igdjJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/ModeFactory.class b/libjava/classpath/lib/gnu/javax/crypto/mode/ModeFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81f85823a7e6ade043646a2b1f3226c152b98907
      GIT binary patch
      literal 2809
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/OFB.class b/libjava/classpath/lib/gnu/javax/crypto/mode/OFB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..faf5fa22f6c5cb18f7c529885b24910c62325dde
      GIT binary patch
      literal 1618
      zcwUuMO>-1g6g_V~GLue6U|=G|7?A{=51AH%sLUA6M4}@B7NJswZ0wmlhmM`@sZKY7
      zODm;YS-A0|EEb9jt<owag;XhP|Al`<J@0kXlY%UuYHs&^_q}`0dH3F)zyJN?PXH%y
      zu7Hfdp}rSc>-IJKy44GA3_{=9@Ykeuaj9KEPGEZX?Y6xs&(kSjL}0(#w_MxnTZ^vm
      zNxSPxfiXV{2T|B|{ocm{nJaC9k(T2*;k-btviuls&ly~mfz{Coi+a)QR96LZizF&y
      zTp;Uz)HRUB9uuS3E6}Pe52;te!14OcrvTow?0E7*w9%EprC4)m+3(rzsvS6Lodk2?
      zRcBM+xyO+oR;nqmH}ckG;NGBwm_p##lS!eDIIM#!&Zndl9aesq8l{BQ)lpEAi78C5
      zt}(zErg6A{7X)UXgxSQ4I3kemsh$ZOs8n}U^I~^h_QIxOnKkh&4jS~1sk$4wB6g?(
      zRTVfyj7=Fv12(7<3p;M2frA3$N^p9w0$vd~GUVvEuI$_HLeP&kq!*sO-jjpS@x3BW
      z3QY0}jaYm`p)|S*rm;yJ0~Ssx=2r#EyNp1r;WZPlqsYl~t{FI^3R6_!mWhH27ei?W
      zYyKymfGIsql#J?V<x0E5Uv*U#biu?t-cm3;DI7I~QAp3HtuuE`4s%sW76gnHKMHzs
      z$x+i&WV;$lBCE}0TAr3sBKQ>+Xe=osWAx4;#}kayN@jg(8_)d4MF#u$H24NSXVMoa
      z(K{R;#C{wAv{%LiVU)*i@pMMDCILRr(<;AQtKY%oJv=Y)0MqnmwsG`Pk}nB)Q<F@@
      zNhwJgFVW-0)#N15bNWuCy$^A@wvEcKDcp$O_)0^WiMAMu{{W~b03Rd(v$Z>TnKtu1
      z#_z+rTspChxxZ?RoW6@U9^lOHXbz>8SSsLaB78$x-(m*e?ckYBdEQKU>UvEZg2V!E
      z?MM`9BAcEh{=|-r@ZF-6Nm?_jANTNf9@*3R+n73D&TZvHeQGNs=G0y}zm*qrpWVDv
      z&Z`UE`tP41=LFG!AIS3~+jAQy`EHU!X_$|B(t5YhX2XT{7IjmV_YPxO?VV*TN5rF8
      zqNnES-Bk65Tq`D{R#*D&;=M=v{4?9}i{?EQpG<j;l-Edkjg;3&cm+Bd@%{e+kzX_e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class b/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c8468361ff6c7f42d12daa9ebeabfcefd380628
      GIT binary patch
      literal 2343
      zcwT*0+jA3D9R5x&O&ZqTBn8sS{gQ4Q!d<1MKq{9=XpsW7R4JQe8y2?7y1QX0>YIOn
      zF#4d5gS^N%gEKHnKyk{ue~hobiQm~>lR{fNv*+xd^ZR|@_q&{v{`t@Eivae*jUgn^
      zU#Zr!*R`A4t!&9&u-sbK(#qMK=IH0NatslHF1edEwQ40hQM|5~=+`E&VMV_@odm*W
      zts;;rc#d_~Ftc2!7z8MA*6m?|NL8EH1$qiC@JZLE3HREIX03E%(zs0nkr#-MluV;)
      zxT8c)4_u=2Sgoul(2X}^=n?2_VT_rY<0x2*q(H2qyW<|q+VsG3o&?rmLk#N$)~}{h
      zK?;4;Lm+=aV0U^s(!lD0wnN}81u?`avtU&9@%nsGw=ZZ#(~G`V(#%VmZOHFnv27%X
      zHMtVir3Av*reHHVB=!yk?MTSCT?*DfVQ$=Oh9j`C@PBn3j$u%s_jUMOeQr*-6Ht+n
      z3|r(|R>2<Zr7X>|^eT(nmmXW5P2ZC_-H(GY9C)Q^d<zAK@HUHbQ#0%O#GDK-zhYHX
      zyelaW3k<EE>y@Zgj3_uFD<5}j{+>X{DYC$;IWb)_*_<ebjg>fYtE5}5QL8#JyeF`!
      z<(D^2y`q_uuIB1Zs|3cdEy3)cQg9j_0#QeI>lSH?tU*tDNn@PVELJau0!!6Gy;ybX
      zmQ}M|y*y#*wkAQBpr64uiqc$aF4kS$kxld}Bq?p3qzu~8&AAJ@<9es$vQ%|J!9_5v
      z4!XK~bFEX=md?-Q1};;lQROg`lh&6N9K&(>_K|{*afLXRJk9a+OfH`vkVaQgj6r*~
      zx(kl0&nqZ_rtO+-YYU~CwIHA_t)72z4Chx^%FCV>m{U-}HHK5KdaN;@H81zBD>#Ra
      z7)+wB*w#~aty*DUms#3o`dC%RkGAMln~~5qx8UV5Y8vyh@WNn%Cu?=Pq@Oh8@l%2$
      zvRjfwwvau{C(1D;k1=n~h&*!M%mc@H4Oibl2dz5!wTH9(Q+h-LUC+?_3;G}PJA{oK
      z6P$sA^x20^-m1jmQ472$xFXj&)u-614nDzlHS`2KTL3*Y2Szy_qm1LE&3Qn*z8lgQ
      z@aQ`|k&KUXG60`v5Yj619O|_CE4DwyP=WK#&^@dh?8-E-yDKiguRX)Q2Hu$(Y+(4&
      zYt$zh^C@1ir%9DxLY)by6~;1(qaHQeiF-LOM!};ZMO+CYOa;Vio?~qKDNejl`xvO&
      zz{ysyz05l>&iqcGi!G4E2iSn~OITCQfKybX1g!5bV;u=t<Ii!1Y-e9IIoiB>RhD4J
      zo0xHOPk5N;n)N+E8|l&ZT4DUknp8aRVJW^<fF-E>e1PDx3}Mb&yCe7`UWguffNr&)
      zxt{zM(eT4BLZZK0;Qq_MA`hGBDIx(29B;FCK4tztquSf-oX<VB%|2ql)`ose;Y0Gp
      zvEIu|h`HcZ5GeSY77}lEXz@@)?Q38<d?@+=N7bQtGTOk*cruz<yebQ1eIq4h!gAwk
      zX7L$jGmD-T_Z!gfAs&7>Ma@x>j3y)Tvh*q6fB75hXi&c3@4*;O;6@O}VWtuIl49<#
      zFYi*!R}}a)cHleg!uPcPf%ZSr<0m%S&up^0n8qXCMvuKPM}67N0?jhnexhelWxye#
      s?MIDoVRFpC;%<b`S$x7V%711~O9h;Hzj-t79Qyy)EI0VrUecX^0h;;RCjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/IPad.class b/libjava/classpath/lib/gnu/javax/crypto/pad/IPad.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..772670851cbc0170cb5234324e61578bc5147265
      GIT binary patch
      literal 530
      zcwTK$%TB^T6ukq578FIq_iI~Rv~kT!9-2lJk{V24L54Cm#c|rSQ-gk*3qQb*GTyd{
      z5X0)G=bWB%=HBn0&o2PDf^!ve1dd!0n{)a`7p4=w2hukKIy0>SovEM@s3w%jsc_By
      zbj}<}pf<SfbgYNlNvqdy-%V_5)J3qj6xuTMgxe%gY5O9QRLCLaG1H)w#Ti+UfkDQU
      z`_79Ic^`~`BIqlQy53l4rg*}`bVausLjvXQ!eN2*FhGSWfs5rI7U#^R+?G_bKNU9A
      zGuK#p+`OkjGqK5I2LhTtZdq1i+#*njMGC1IWT|jK;BxJbo<d)^xThKRTgfSeEMizR
      zuO|Uo#Q5_gi!xw@#ce+h9d_e!d}=A#vynI#37`V+f-8ao6mhEfl>-e_JVO~aAUVe-
      nRFK(1M!~tAB0K+(8tkUpI_#}5`-mK(cfuUQNt$$;CY=2Otdw|T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/ISO10126.class b/libjava/classpath/lib/gnu/javax/crypto/pad/ISO10126.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02c8a312efa89f071f3a3cc6bde5e128024e62f4
      GIT binary patch
      literal 1212
      zcwT)|-A~g{6#w1PZex^>O@~g{5Wm=lt_%<r48a;DiwmG57@0Aa?J_E}UE0ooG5!y}
      z`s||*nkX1G`tBd4p5B$h1L5J`oqKwIALrb=KYzdf0#L+k1R;iW!)&WB^jG?hTC;as
      zuBEp0x>~9%7bl97GZ9D(!^f6ry2DrWI)l`*%?1&b56V=B*V?w>?y7CqXsRoZmKNt2
      z!nY06aOWAivbi-v-L>jGiXMij;aEZ}hA#9fh@g)lnJo*drfxRWifbEYV=lKA!vGQy
      z#2JQ85L0jprx|)0+%1`otD7~>Fp|xkXs{a$g9>DX8T!kH$(PzMH@Lm3Z!`&=C|fnX
      zxu)BOclMK#yJa}UTt0Dx)Vl0&x80)7Ti(2)*{W75<*J$|Iilb^Mj5&{npSPQV!S3^
      zR`UA1sNfPV(-)KPxZ1AENh;ET()dD#Nn2H;xmuf>#7{w!n+<o15F}IfW4Ub#Q6E`i
      zh~3+%@s?{?rW1k6kU!S_W7{$tbiH*Nd;o}{fTDLnQR>3s&CONrxZ*<BW7Nxa1v9w8
      z&_`a~qITF&I9sY}xpmU6SZ%w;?;GCudJiU4@YLx+5)(a4YRkI?iey@(MVW4j7AVi?
      zw=bWF?L*0bL;qJKKT{@zGhSYx7YKO=z0h!$PD%%X6wV3ep@3~%oM{~rghgWU2#^K9
      zVWfTFd*56k{{@+}x3%gsQd0UEot5d7OvznINviMRLQ3|6r1WkzC4UN321Q#B$YPnE
      z=`u#~kjzws>U@XUSM{PR7!ytk$WmoUL^+D+k3xH%mP9N=<Zq0488Ka@s%umy(WxLD
      zzoBYRGc!J%elFFg;`sO0bDaKwo*yVY*~i51r1UXxm>?{$P6}1xeoE}mguCeuOW-aO
      xxXT3YGJ(6e?~Y*-Q~vB`=!;jc<Oc@g5`ISaFny@ong8~Y`76QvZ;Gm0{{eOk*DwG8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/PKCS1_V1_5.class b/libjava/classpath/lib/gnu/javax/crypto/pad/PKCS1_V1_5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7c141094f74c462ce45aadcd88689a8f5bddb25
      GIT binary patch
      literal 2172
      zcwUWFQF9Yj6#i~^vzvyMhDwx_)`BP|Y17bRE4EOvr9dQYDlM&{VA&?yuq91mb_0##
      zlc?j2gM%~9IQqcw#7iA?)Y@@6ee%g4C4P5PLWMGtN$#G#d(L;h^PO`yfB*C6CV*Zn
      z>1Yz@%onSPCG)zulE_wSWw(?lo4Lf~xzVZK`I+ANejTbn`;JZ{rejT-IRT|m$_uom
      zq(`Fa+Jyu+@^&$wNbzb_h6H@sQqIZ>#8Qu-5{{LvR&2MHaO`}d;+ToC@v-^Gi5cWS
      zo-No#+Z|?#NOVR(9VJQtFQ7%oZh;mLr(iPCXu)(G13~N&(DRl%VJ=$&dn3`*W1lIv
      zLQX>gyoivFy#o85McBYgcv+yCK=loQp2*Wk(PvlO41ur#A2iZT*+pxjy1Zajrp<){
      zd9|iWS+g)>R&05{wW%HVYW3q4f!)@!6)#`QI=%7hy*>Q_C^%rC9R~$MI}wrExL0jQ
      z;9%;18Y-LNSZ=i}DIPZP1|qC<p-{?Ro3cM950MNYhHf2Q0+HwKmVr2W1a?ueWYKZW
      zVwOnpNHY5T{g!-=7|`KoyUTK}{E@klWHLH862O}n(9tgt+*W(dajj(oZ{ZjVFe??a
      zmMxWQoU!c+r5Bd0tUHw4VJjJ(k(CY_7{YPtZx!W`(qLL96=<@HT%@Iy78fZRje=Fo
      zyH}~wI3JC1(JGcxE%1@ATJ%`!b=FCNz}QOGD!X>6=;%00Vmr2Gwo)qQd5&`IWFtTl
      zd(Xf*j~GvmN6hb7g~e&halP|!F@QAQ*D)!u|7nrEp`1KFaYlCLJkNP#r&ct)h9uau
      zfeYX$H5aWFcckW8oF|_YgE|R(U?78w95gwmyhM`q{YwU4CVkTS(7-8-N$ZLM69Gn3
      z94VW+oU%MEsfsAmSRk~p`CFn)Q>AJpYn`^`DQI~-5j~PC4iZk`3#$oj@;G@GXM|Uc
      zYcpiJUA#NOtNa+PVhzSRT7Sj9U$){vuO_Zz^c=x{Z&!ZW8`1sTk@0%0wc`(TJ{g#1
      zvPmz{sJr1+9O6~rwFboC7K9Ot{f5`q5&a#BCvm3fd0`ul(ZHdETR5vMQ|Gm>W5YkF
      zcD099rDGjO37QD2Yj}ImC-FOSe5!?gN?7A}lMZ3+=SH?RPpAx$E@C(45XL3uxr_v^
      zc-ha^Gi+s-)(H%IjQa2nA|BU1oTQ}?BaV0ZR3%E7@(pw65Lz%wOJfXMPXE)4P<eO8
      ztKrM7R(1ZjhK@%?BsX&dzL0OVLAaH{z#_x)Bz%>fx#kfauER8lb~cE1Hi&jMh_-q3
      zR7NYL7vYXT3gdNQ#SPxexq0B<2xOFCFr86@d(#<T@IX4F1&^dNdhldA)z!7B=6W{#
      z<Lj8{Uc=NL6&wBu{;dr7?qfL?@~vT38PM)yvMZ$Z4Ct|LC8V!mZcq*BVRiG0Y|dTy
      zlvUOoSGdEvyOlVNkS@EVZpPw@bXvpZyYMTkv&!l%O@y?r&3g|Y#MUtX*Dd(?p7-rh
      z#l44j)K${IiLY^++SbLIL5OP^9ry@`QDJ`^9L06M##Y#=8vQ<D(Kj)RPm#lCl=X9Z
      ze!-ouJe=FOgKzL1*BXAr_qfa0pYVex`1!g-TY`7sTPz?e|0x(Nr=W?MZhA5+#6LlN
      eDfltmfaM8(iU)s@mPQ6=*vtqgO|YS|(e}S_Nwxz3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/PKCS7.class b/libjava/classpath/lib/gnu/javax/crypto/pad/PKCS7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c47e354005e03f184076619c831b26e75227ddc7
      GIT binary patch
      literal 1381
      zcwTi<U2oH76n@^;AHjr{W_Y8Y3<hlyShE&LSU(ogZfMa$g_er1f>bwgT^GlW9A{!&
      zaK#_sa#vHON!)O;Y15e4Snu~I_znDlmFIOLx7u1u_BrqIInQ~X^PYeHef>9p87%7P
      z6Bu#)PGQ^n&U##^hu^oNpwO}!g<Ib&*Gf7Rfw4pXFIjE-memmG_X39?Rhd!fM6Oq0
      zz;S)2P^GoQd4beI-E)06`hwZn+-(76IcV4hj^l)mw7_6o>shQ>_N;b0jR6b_=#Cw&
      zSWR2tR5n-LTr;pYtu;R78RfzwCzPU93zfnx;f1_Y+F|3}IlP5u}JK1xG{Mw(UE
      zw^usN4Le-5HazmmRD-(Z-L^tko_j%UA=aA0n1I@PRBx9I^kX885u6b)59=>S5^cF{
      z4!e5vZE%um+m1RdN$PwW7cfa}8(vU<RCAxOv#99E3Y^<-Q1Lw5vApY{(`nj%^ws0K
      z-HP16H!y{~WR&8SwB$9WvTI9~N^WgQpwIRBk)9T8Zn7gC&-R^Yi|v?P?fF`0w>uvH
      z3YW|}evG4caVi2v(yguInn3<gWp~2BceqFm4&ng467t0K+@?!>qZV|+x_!fy<2B-0
      zOiLiHFzIuZxqtGC=&49S=S!wMeMT#vbVmFR;}4wt6(9b>b01FgYtRB;at*IzIF8C^
      zB&oj2h^*K1nbB7m|8L<<He87d)7><DjI%MBa|y)F9>i$=H+-V*;Doe80zcvSpP0J$
      z3c1~V*nwEfx5%JI7OMxKM-%9axYUE*WwuVcC?Si=xHPRFa8latp;1&!<*(G7+F#UO
      zU|?7^wP%_zmFKIbW-2>-?}pW%ljf2$aF?3yVG#E*hBd|>Ad82%Ogo45n9$eVraeN^
      z`xMhL$wd?}8Bb=BgP$Zljn_CsPa)DMW|^mQX-(oy@}Iz!c*I3kC_I&7S#Nr>%46f}
      zMdji%WzSSD4`J_Vu`6T3R1XAylyfX`j-T&JX_~1jjh(%>rus4wHW9;ZvbDp>ZZYOk
      s)HW$@VFAqpqRNS=aw4jnh${C)sT{>zEGomSS$ZlZO(mk{<IW530ri*(MgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/PadFactory.class b/libjava/classpath/lib/gnu/javax/crypto/pad/PadFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d63a84395dbf871d0ef09a19699139bba3202c56
      GIT binary patch
      literal 1921
      zcwU87-BTM?6#rcU-LNcB!dIczwxTvH!Zt-{HS|Lwl#ne@l0v~MZZ?;&bh8V)8!E59
      z`tD3yXMF5y{TNW0(HY0FGyYMI=WYnG5cDB?c7OMGzR$V&>+fHF1&}~lLIcCaqEps3
      zjUD3)&GdG+0$1BI3fh8Em^RG7^>!sRGMp6z%{H8(HlN?*W+34VLw{9O^SN2}tYBAL
      z<VDL5yj_MS$0%{1p<NFd<-oGFEDw?lXC^Gi3T`n(;)6>JjVZUlWkk@bpc%5zupB;D
      zF6FtGGx9cPi0Q6r*h_|IiSI+OG1#!k{$>4t5+IK)MINLbKQJ7V6t%csOD7w6mQzd)
      z*0+)-Gf5fU=#|j(S{W*O3eKTVgyLBxhOYSFNy|d}yn;6buO)DG_X+n>hR>sTlR+XU
      z1!4)(B?Xu97DJRf1%KHJHW<3=MY<};Z!35Q?@}#o?i2-;YMB-XaRq}=8Jhia-VZex
      zdgAGHoyekikJ_~L*z~Up%@G9}u98W<T{dk0nD<KC$$J#n4z<Q4y#KEuc)k3YRF<rc
      zqBV-^6kU)vC49het}Z(_nUZlsa3>hrc!>`S`-$P5#0WXLb?T6klf>FmVr@*uO`-h}
      zwZix9Q3)xAzPdWutUfAZQn05*<7_`6VdgY;PR}M}+!gE$b;k1D#MQ*LaS8VrF4Uix
      z?0iU(p`*103s{tJ|1|SrycA@SBilZ=*K^zt!d9+Ipv~y5l|StS+;a?j%JW=Ln0=^V
      zB^*7mW-=b&6R|yyPMH}p79odXlTI8`$35<sZSs8nKem8Eq%E4OEOke9(vQ}<84Q$*
      zgs6mdBGgW241a?dGB{er!&0y*<}5;^FT;i-fp(|6rjT-Nn`X^&9bbWqExHlPPRT7;
      z>*4y7Erv_+WB!lF!_crnfp+RA0-+;0>y|x}Pg~+1X|G)sBZ5p@NWsysiGH%kh;GXW
      z8pP#9NDF<9l4K;C)O{%5(Mto`=qZx~l4!&P+UZTHkZ=|qB>NCUXT<=UA&%hwp}s;B
      zd#UcBYY+VyHFjYS7oVb2jSw^-z6J_=xRPPI8XMZf@G~fCEI}_%(RP5*m3@rqFHlfp
      z<5lbiVILB<pvIC_>?UEi37b%3cdFPVVILC~S7TFE>@Hzx!n)MhY>2fSKqqWYANmvh
      zLqB7l;Tbv(@L+{LmKpZ3`rFXUqx_fX76C+VX`DfZFde<Phbx$)OKF}evw&&br?*9{
      z(%75G!J*N8LYiM<8DHTczNWGMmQG*b5q`v{_#JCuEqf~UBIGlYgLqE(=Tyx;7|0*C
      z<s0INiqC!z^A%DD;1ql@6IN_vIjo=%;}wyth&vTARS~nH_z91HfJs(rxs8M#HYqQg
      qzDty;LwCB10c=6VHvOG?bc6Z0jev68IqH8Kq1$vuO{Y^~E%*nLmChLe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/SSL3.class b/libjava/classpath/lib/gnu/javax/crypto/pad/SSL3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..407a35c249a14b9ab1bcceecbeb6b9f504281382
      GIT binary patch
      literal 1151
      zcwTi<+fEZv6kVsCc6#Ghm_nh&LcO#_Xt9V17$Y^HjRj4LAmKrV&QM2(nP%D&^uff$
      zAMgiENK8zO51JU7h>>@H#y=4EnKpwF?8825&e?mdwfFAN-`{=!n8pneE{15;Xl9?u
      zd-8s^V!fy}%xq0ovgL9qFG665o%>vn>*_;UVesD646SjC!JSI4F$i}|MfJf?s9x9e
      z0k{zi!GjQklqzwWtS%eXY`I}+Ms=Q-^prG1U1{!atJbQ#t*Z>-l39`UHQCbmcjr=Q
      zJk{z9Bc=b^ooDdW)kd@C2Sa}d1CSW}+qzkKUe;a`1uKdeWEelSQPg#{D(eeYwYjSr
      zjm7<nT5D*gAtK5!_^;hUQ_~gI@?nHwKr{AaT~iV^f1*wTbBO?k5aeMrgbPT}bmUr1
      zHE2w+R55*~{SMzeuNV&@iHi)rhS`23iPYH=%8ejM)2{L1`%;^QVllm0U~p*$1&-Y2
      z&JIOgr3){m*??&@oTgz{iS4Q)L%?acF5((P=G@t?Tc%N^Wh<ob6a?u1Gs8FQC7QC?
      zv?}V7#`omstC->>7^6M7!G8iFN~I{$*LAoE0b(ZXYa#H3pbK3T19SqnDRBYaghK5!
      z^q`kchCYYl3DNPl$;?-T-=T{ieK>iK(IZ4Qjxe+l9&RDVuMZJF#8?ZLj!%WUZC{H-
      zxP+^?`<K|HBX${AI$|HmKR<JvF3v+unH41AyKm0pp7nk}Z`31sB|%W$uD<ay4i8R#
      zMLnM#y<svA+$UT@Kb8^23axvY)E?N{_uBj&ZH`h%+kSG$K(fb@!vrBWaU{vJM4tK)
      zCzoj&MFfMyCE4SdLYDG#ovBaT%&)1=LuYa#7T*$-JdNrV?|}DmfZ!3PH(JOaQwv+4
      p9MfSU03H!uBY|~{;<0UZrcLFTO*&?ij@hJRHqtT6XziSN_76oz*gpUO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/TBC.class b/libjava/classpath/lib/gnu/javax/crypto/pad/TBC.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87fb7f43d67deb5096688a15e5b981fb5e55f217
      GIT binary patch
      literal 1423
      zcwTi>O>Yxd6g@AQndg{+5W^JmVJNgDwnO5!DQ=2WR2+e@Vo)IwA5B4w?O`%7o^i+H
      zigv*&f1=$~NR`-h(W<DRwkoS``X~Aqkk}K>8@mpIWF-6Ecjw-7&$;(${(bq!-vB<u
      z8Hpi*!*0+m-nGB6?-v`<x9vDAw(Vwdt+Fhk2~6$ywqkdjFYKnkuphbt6E&4l?8cs7
      zWWe<Tw^*ZfqOw40so{Hp7oTBvE`L=(TMnB}8hfx;!W0-yYJHnE%f8*|nAnF=0qHvN
      zCA;Ma9L(iw+c~RoMEG(VV>lp@A^+Wan>YwdV1z)ufWUn2ZKV9}<VPTI$b=4qG;3bq
      zT<W&!PPAs%ee%lG!iMc%wIffR`$1zV(VD^(<;L|!8pAkZVgg46tev{6fy5hLM@@0J
      zO>l~O$BDabMd*DKCooN2bw6y}TlKzUS5cM72^`;sull~@+Wy(d?Y5jCK6k(2v|}#}
      z(wIR(@kx<iTdgpaTd!2B`SpsxkQeYzc}95W4m;BEoxqJZ*pA7yzHdZMr|a{r<ig^L
      zM^AX<*bNdy*+Z-fqz8RF5}yhbc2syR3ImtdsmX!7MsyJcV)|Z7;ip%_Zq#tjduqrj
      z&SYM}@Dfu7FEgj7)<jQ73X(rE=IH}k^_Us)JJL_F|2MqzE6+nX%>Ohku*|FYImVNy
      zdL{<drx;Q7vXGg4g6x}xH8#AM6q>y>yo+NAnd1Y9i+za6!ehLrJ;YvR#{_=Do<A{j
      z;|cQ5wqf@rS}r4lD`c_y8ua7<dKM@9(El+zMZ2OPOIlW$_V?JYZ12!4X_od^>a;#P
      zmA$Ps7qkZ@!!mxr_;5)+f;p~Ra#IRz&61Y(aO=gm{>y+$ff|8pRCpbuxPd8rNmc8Z
      z!&mqSH@Tc!I7@p0^@Qe?9+f^#<;`I}p}vA5rjvQCa2?YmZQvXiHw}%5d7{m8X>&M&
      z1;z{x{Qy3uCs}<8C02gIT8*d0MD{;KkhJAQQ%Re(w1qKjJt*nJCF2oBHVv_<ZCU#N
      z@gKLITShjS_af(g`k7_?{D#a80($(Q+~pVJ9uA?!=?BQtFQ84*U$b?b$h^>NJ&;)*
      g$Se<Jmisa#Wt0<{W5iM7bmGrYu#zdTl(6{h6}c)7!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/TLS1.class b/libjava/classpath/lib/gnu/javax/crypto/pad/TLS1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..877195e7bb33306ef7397eff3fb12070ac1be018
      GIT binary patch
      literal 1199
      zcwTi<+fEZv6kUhT^hUWAhEiyii)dSfQh}NPAr=GLSkMG4Hay7C8S3aT)3j59KKR5B
      z_yZae6B6TtBnA>O^6p>w1^$7!&$Jl~U?28bbI#st?Y(w?{`vL;Kniy~XkrMLj9T)g
      zyd&=>i<Q@9%S@JKCApegNqHbJM6P_Em#gX%Sz&O`YKCUbF}Py!JcDrGR8%i~ge<+9
      z^23GZ07L{Bq*#vABz4&+C0DG9W|U@lNn1`c)aBatrdnB*H+7XEm@|vAo|h{c|886g
      z)(fr5(3ksfyE6=8Rkdnm9~e3V=z_%H+tkhCs}=1HQLwBBA%?;8HnO^|mSjCsDb==B
      z!&=xas%1+v4G+Q$p^NR#*EC&GD_-<5bZN$ptZPcY&EH=of$4rfdeF?nwE(W8pWKnl
      zWz`^?BC%}z()bO&8D23Mzz}XQcrCO3ND{HjC6wEZW^%jC&G*LE=d;=P`aDCEW>DbB
      zWo~Uz)K$80Q<@E!M&{HEyUJ6q$};$!fvX<eVMtu*?OMe&O0;Z+^qm4f{eLF;X5B=y
      zV%91}by4Gc^6^!SaS{yB9$er*fe@uq^w8H7ng{`&M9_N-{~^I9v{3ZZ3EZQ^3|a{V
      z>S<_0JDm(24#jh#<8PyhuL!<J3qLw=_7T@k&|Nq|Pa)WQj0nFzLi7j&#~4067izWp
      zS|Gwj+{S}{#6}&lo4C~w`$YZobDYyfc_=GsK@z@ur$txVeSr3`D7hs;P~NTXxfzH1
      zXTQVZ7e}v`8V4Q`&Y=@a2xFPny+mq{ZS9A3{)RS3F~seD#*u(z+cJ(3LN4MMqMjw{
      zsS{D^GEP=>BSc)1ZO<5zlt12ZJ!LZ=QXTIgGZKkz2+9Om^)@X;qLQEp%0^l|K;MWY
      z+Siis0nH~!6^=1+x+gM8v`hBSe$jv%pD&E`lyIK#8kzNsg!7n1!5(R@F6fMuaYo8G
      WBW0YCCL1G#Fl-OPw>xEPrT+q@8{(7z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/WrongPaddingException.class b/libjava/classpath/lib/gnu/javax/crypto/pad/WrongPaddingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b733e14c5eb1f5d18eae0311d64d08553cb7a649
      GIT binary patch
      literal 333
      zcwUW8!A`<J5Pbus#e!h;=8c;Yb>msW#o(ziCK5O=?WV3NyUp4f{47r-9Q*)3$}n4v
      zClAgfZ|2RsnY_=h-3Nec97Sjm#<{7*vwW2sk-E3CvZ9okSUPL+2bpEs<g-nx%1T=k
      zAt0Q1tth0)#qWX;PPEb0l+ZpqUl4*@o2eLW9Q4saNEjyCsQY@oQf@9+g(4g$HkHLf
      zI_>$-FsPpN3*jR9zo{ES{Ag>Jsypppoc^i0^3N~=8-x$yWMhmGGtqFMGv1>6&P@w3
      VW7rHY(PQj?3%DLO=YvKy+yl_eP~`vs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/ARCFour.class b/libjava/classpath/lib/gnu/javax/crypto/prng/ARCFour.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35a40c04b53be10edc7b051a7bc2dbb3a58ce626
      GIT binary patch
      literal 1692
      zcwT)}O;B4^6#j1Vl0f>f5Qw%wCDz(P8WPH%+R|2t&_M$@kkV3r;3eFI2QM!%dC}rH
      z^{3Qvbj6HQcXn9emYHJ5pFwvW-8kdI8FlI2y&Lg+FM+^xbl%*1&pG$pbH4kXbKg(@
      ze6s`K9L9Wb37p89<=C?JmUc6iF0K}=e5_D3v$5gn_*lMN^g$8m*mH@MWV&3`t<{Rp
      zh*pxXOiy0%!7I@0I2ao3aU*X^EoDf77CX+=)#>?{N9X1zhLfYy<HHGoK%(Y7V-<BX
      zdqJQfo;ORDW?HkFQI>T$B5;bCqZL?DJ7rWWrZa>UU6HHZIn9zqT{8rl_Oi^3OkJO!
      z8NV?qAjaK*u)mUk>(vnoISzX@1-wJLsaux>+?`#s0!lo;$c)DXeANtoxY4Sj1#JSs
      z&PU<er;a9cQ%;t1DOpTbt{X_?)0#1>5f=5TQL&bEV(3WxFViHzQ<7G>z$n#xWlJ|=
      z6Iy}Ej^JrL<HISkbZAS(X`JCLveFVbeGunVYFVbO3tf+zd}#C`EO4^6Gj13%s~N+^
      zY&j=QYxHJX7A!q))*-^mR@n`iQZAN4T8QNP(S_D}vKv!z6pglYPDL{Uw$!JhsUi)i
      z7(^rKPL(qmNm2!#Q}H~40`(c)Fh-1gdc_CcJ@Owtme6y$H7&LDl3d(}CE(XA)*)54
      zWXZ0>VY*oFl@#l|!l834+cl6mGV9+D!DIdz(w>%Mx?Lo-T85|{3QrNJo5REJIDDw1
      zT+c`2f}gsIhJF1p4iezVytK16JF9)Z1wqb_QyZXNaP@@)Pdvc!EyuB)v!5$)4PIQw
      z2})|k4Nsy2b_0hTFbp9c5{!?wKh6gHU*n_;KcI6W@(>N*qH8X2_5r%T4>t*XSGSF5
      zIPAW$jh=1vI+jWIpt6a^@O?ysN>Eu(t|=m@aBE}tugK09h;ZLM=-EVDcTkB0J!>A(
      zmkfF$I~(xQUi1EQ&+&55Q;F8M&}~nHd+MOKA~>_B3A?xYk~KN#J&<}IZh!bIJi7_y
      z+7_?+3x36KIA5hFL%xC6NXzSF`3<yUo=;%`-O$j76niO+IM+!mVg{0)S$<0}q2o>J
      z?_vdaki%VC?jesY6tF|vk0>%znVH_k?|8?dKEq;=-YWIBG=z&pq~d2>Vs;lZeu>MJ
      z+-&P(c!7POV3tp?BFz!mFeMM(!%J1$hqzL;-DA`dc7~S``2rX%&KwH0^G=8SO&|WU
      z@VR?v6Q73X?xR;(SZ4*pq_4-OkfYZj)HWZsTs){%<(?Y(ds=()(5XX?3+r}}{x;j#
      zUOBoZgst}PZ0r_m9UFFNx<$C}lZp>;hL;?`ZA@W}MY=;WKf)*6zl)C@T0@m<RcUqM
      UGlv@f9B|bk#C{krIy<BP0_bya6#xJL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$1.class b/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7592d24057a51167c5d6e4051bf1635695a9c72
      GIT binary patch
      literal 697
      zcwT){(QeZ~5S*<;oH&Mr&=x4A6sS-dBusfiDnddLAf!+#QuU38i*s_Xa?jEE9Ff1G
      zQW1!UegGeZ*mDC!5b<#K-t5eHXXWodzMTWu!F?Y~gpEWO(Xp6_k5O!<W1B@|qm!sN
      z*nhwGdTYl=h0t>SC>4yq8y?Hp`lzz9L~|JzM%ih!Z`4GkGLfSfu~nHS)FvX`(&9uC
      z+WkKk18bB{b_vyIN-O)Eu+sUry?sci^s<qxgK#;7k6Hi^%@B382wuk#nti3^UU4#%
      z=0FV7@<UlH(nDdCyU)OiJyJPgv;Y6BJd$S$9(=j8-TyoCZh#wD^Kp}~{>x@Qd^VQG
      zDw&74g>^zBk#+`72@e(pT(pv4kQFADuaq0RaWU8<$0LMqw3eoqiaeJbrukCGX_m9>
      zt+Yqk$j808$rc5~W8S34=Mt#Zb_?a-V2Mv10izABp7PxxLHFTjgxxQ=a$0h(I;`xl
      znm(Y-RminNuVJ~wSFk#BdBShkt98#1e#P}qzdfoBCo!k5&Ga5_m#hukDP1odz|2j4
      JR&W<<KLM<#oZJ8a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Poller.class b/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Poller.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebb8e4a2d3aa61c8c189732d9dc0bc8630a944c7
      GIT binary patch
      literal 3788
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Spinner.class b/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Spinner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..937382eab7ce671615c136847e5f64203d131f15
      GIT binary patch
      literal 738
      zcwUWB!EVz)5Ph3<;?{9Vnx-O@P(n%Cqz5d-5yXKAP*GG+Q@P@X<E&a&?%G=0sC))r
      z(K8YV#DNdsS2*wolv&#%a6z>+JD%~IdGD>i|N8n3z<unPs4(=8W#*iEZ@qKJSMTC9
      za$+Tqo$>V5!T$69G!CQ`%7nqt)F>zP=<Cbbsqj-1HHOxrdyq-#%|gLo`cWoRp%~Z`
      zhT5Y*2I*r4J{-9W#yFY_3mhvpmSHh8CV>?D+1X5}!(zTQiF_|~Jr(G>Y#QlFkT7gd
      zuA=xMv8hZhgQ0E1#8MT-Gq=#ehKU>h7&<&r!kgQ;i7rDm35AG>aQI^6n%HF6Tp;(f
      zFO|iqm_I%DMVtnaWEc&vrfTF`q-ce~nns!O#j`*=s~4zydYr-D)6j9~C5cE(3>doq
      z+fBD!Zby%HbBZd3p-q!tj*7lz>eQ)vK$%gl?tX^-fnF-OMyEv?d;<pWqCvG?fY8J$
      zW%?g~7PvV9(Aj<c5o^Yq_n)xV#`+grzqtH)baDA3$E~7`TjlN+NdezNoe$9FJ6Pwv
      rzc@MtM-wFScF8fITq#BN79wkUfJ8R(j*dI|xrMvA1?{YlZCJknnjw_%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG.class b/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..537fe2f5fc77ceda7b833a2b280bf626796611ef
      GIT binary patch
      literal 12837
      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
      Ll)-7*k23xb4^+WG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/Fortuna$Generator.class b/libjava/classpath/lib/gnu/javax/crypto/prng/Fortuna$Generator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b7c9283160c09aa4589a845bb638b5f71a176ae
      GIT binary patch
      literal 4028
      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
      YpsGo_|CyS<j8`D*MApF1@k^Ba56(oSUH||9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/Fortuna.class b/libjava/classpath/lib/gnu/javax/crypto/prng/Fortuna.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b74d5da87384343aa2ffe1d289881e9cbfd22122
      GIT binary patch
      literal 4083
      zcwUWGYkO4H6@K?5VUposLbxb|%P5GG0Wz2>Z2@VVT*zQ9m_RV52q!ZqlY^6Urso1g
      zQLClaS}mejEh<W@Vp~yBl7K<z%|4H`AN#fa3;o^?ZQs4;WHJzvlIO|Ux3$-L*Sjuz
      zuKnlBD**1rU&06ptjt<|;-G#=Kaxm0qj}Fx<Q*%UXtN#9xAZW|1y)aqBwQoyJEk{U
      zkV)#Uv8$(RM;P-27ApbMPV^d%sprfm^ue4FMx{V}mg_ybm9a-!4;hx%VY;4S8IC}W
      ztFHGMj%(W1o>Yr~*eS4}*|uCyx4b?*=NlD}fB(MrPl4NdTU%T9x1~B-_xGkAZKZUo
      zjAu;(Rb6{J_wVZN?&y^pQR?VSb*YU&vMMW0>Yh!r^&NB4uy)6k=vIM>ylv-Pf!ILD
      zOwWdOcQ}#iG+bBD8ZBnla6Mj$<aF2TF<isQ2$akF+>^tmX4|(sf%%R)3|8gRDS_G!
      zr8}n+NU!IZR(5M8Rtv14*@gnj28ps^sDQGepnu*r(=xs70%fuKJ}PUrGe#xW3WNi>
      z2+FWdLlpN2EQ!rDQr{Owy}&)UNJ%Bu3sgGhK`Wyhxd=8Q5k`Z+-81f|&HS+8B%0OG
      zrl)y%RKq6RO9HZnmr@~48v<KyhH7Sr0)44u&Q3pG&`O5BMNi#fePiSOn<Ka%-wtE5
      zz+JP1s-2$_B;OI(I;ZWqBOO5uTO_lL`L5Wl0lr1m^?g+kctFEqED7U#CG^gDPhNUZ
      z!&2NXXU!V!Kt#@3H7rB5obAxCyf8~?*olXjK!g6!kSxZ~KvJN(!?cVpe`L^bcFUTU
      zd1<FvqB;we>tM6o8#Y-KtLH8x@*+%@kZX8;o|*!#eb3A#I`w?u<!%jisFq~*Y1oS%
      zYL_V;;ZeVaM{y^McgW1;6pdkgUtsxk$a+{p=7`aHByHq9_K*k$@R*Fret|nmW4n9U
      zu@6h|D&cj34YM?=4s*n0_3G(iBU4n%0@gid$Dr>Su4L(YN4Vn-+kP(7Wqa*<K5y_s
      z!%adxy8+oYiVHV_VH^yD+|`t1=P29eh=#|(ezK4n9rn`QbiR}1$Y`(w>?|}(ATuA^
      zk=O78FtYP9DmzGQtbQOVnf5gJIK+mkXEKG(oE%l2Rm298^?g$0h=x%qQe_!Oyx?@f
      zb>dPVg{7sZG(3$bY01xLba^5M`Oka`Q(r1o5c-i6dX_kuaTK+OhL{+f<P0n84VQvZ
      z&jfo?Y&H%{#I{PfFXE*zes<HszfoSp%lJ86VGG*Do?OUvMP4$DSEyo|@l-BnWcA#G
      zPSzjc&0>7Qcvax`8~aAmH**<-4e}&2RJQx5rF2Ja-;3HqQHP?&mS_Yguugv7(C{XH
      zN&i*Cu$8ZfrRryNqd@CcdE+e&Z{r=dU(YTa@*$4Ryh7RI(!`5+Ps17MY&D(jwS6ZY
      zl(szkwTAa)a)f!-qI<fG(1$WYjCqAo2*BD~;h*jNFi(u`!GlJcmsSU5$6p79t#04T
      z`yR0w`iQE&j|CP@iKMzqX#Ipxr@d))9Gg(j;jswL<BKpppDO*Es@8BpVOL-nP|{9L
      z=fc7SE<B<OgX*Q*&Q$$ID3Y1-Y1NHBrL0nyBDjnzVSFX9Y*sN1S5-MlwQYVbH_DD{
      z(oWqRnu($iwl-6CT`lOV4e|z;DT|MCGk<NkvN)@XZ#3>??<_+I6$oQK8-5jJH=WPE
      z5Q2OFZbNl(UBmUll65WDi>^Dbm9G%zwen$6dwf>Z$VWwu%Y(5_jmxkCD~tD6p_22c
      z!gLpRz9gy;$G&*&nhD$;pG2&`HhvKsY8x-&z6pGH4BO&0(XX(53{7R*&SGKw0-Ea7
      zY40&1>T05A{`;?Z)fkfTvN5#CPg{JUz~#y@w4YZtJNVs<1^kX+9xVD`6SGBpd8}nm
      ztcQd9I6eRuNqE@7ZrFiC*n`99<gKLzgy=#y$9432mtsWVVe|xkoFv2Yw`M~TN^c3C
      z3)r@P9DCy9c;qa9i%w#of5Qa!T|Lj+E6Bzg90+i(V|0Kg$;wf(`V{RvO}?L@)N_<N
      zM!e7SN7f4pSF~U;z$IscNK@ll>d3&LMj;<ejzc^x=jwpM`VHsOBa^t=YMRbq??q%e
      zPa2Cca`H6V<NX)VTYi8(lwGdeD_LI?mpgSw@~5ywdZU8ScnP+^INYf?{DXnZ2JW{7
      zV(sHNJROEcCLHh*0lv%-94DMt=<*4y$Eys{YiQ^EVUqa>UdKMX!H4h7k`S1It1*Ub
      zDg;lEtU?GJmE<x61jqlD#=1*58iJgj!UE}3n{=uzE_ccg)I{?P&@{HCkk94Y)cX$S
      zr%CU-r24%Q`=wMrgC8pUKAsKizd%~cIc_T2U%z7IB|KMt9fFnr7s2~1zz@jIhtzr&
      z34Ejw#0$EM2sSYp9-?JA`!O+x)a-fA%DDRzqA8&Idr)9UnSeii3)OOv0I!_Es!1I0
      zpTvp&+SexVx;z-iFUE0d0;jJ^5xLXI&%0AJ7I%Ji<;2XrOZXrJxjMxnm98p5>F%_L
      zan&k5W=lCoem~**9J%}yP52DE+17{fIg9iQ#`Ho7??;PXA0;Cn(X$YKgWr}U_V1Lh
      z$LPCcDO%HXxw2Cx;09(NE3Ru2=lVBJ;M1$?x$~JUy9zdhnqt{4XJY^+xqF4Xzh?yg
      z$h|*fHNGxkKU%~Q#TXM`YN^8n;}GJFDqLjI$sD}Iwss@7ecX}dx=3M@FeU?l?le8M
      t%FH)ZdyPc>mFvHiRQjT#`9*~I2W9@Yz<h{+rItStG*o|&@&9X7{SV4(^&tQN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/ICMGenerator.class b/libjava/classpath/lib/gnu/javax/crypto/prng/ICMGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c38cdf17992bc5b2aba28c33e330b7a75d39580
      GIT binary patch
      literal 4444
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/IPBE.class b/libjava/classpath/lib/gnu/javax/crypto/prng/IPBE.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ddd98ad4990bcc1bab54fed5a329f8cdc624c93
      GIT binary patch
      literal 451
      zcwTjo%}&BV6ot=4ehP~GsfY{X3)se;iK`05G$AdaMVDkK4Jm16ns(~XtGVz2d?@3f
      zF*ZaOb2H!EbLZTg_m9^%09QDzp+q=a^W505NA_$4=}RJok)(WW*wb69hBBeO?HMss
      zZ|-sv29nUSeQRd=w(Bg0?%eSS-N~=YlWD})H-zR;@Juo;?^&FO8tQ~|Wu|}I=*cqF
      zBN?VlMuO{s$hrDjo0^{Y;Lb)G4ha1ndBU>nNu(=6=SR1&oS{3iojVOJ!o@!WddLH@
      zQfm>)o;mR~bP2s3amHe`!C+*K&H2P%{NZp+sLcKG<u#$<i98L$aTJGy`Zg_n8$p#o
      o*i-RVFi@wesHUg{O>v{Z`-+<dK2+Q;a7S^kz(=YQPQLE_PnY^=CjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/PBKDF2.class b/libjava/classpath/lib/gnu/javax/crypto/prng/PBKDF2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..494e88a1ff4683b4b779941f4ac8640490d7c9cf
      GIT binary patch
      literal 3572
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/PRNGFactory.class b/libjava/classpath/lib/gnu/javax/crypto/prng/PRNGFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fda72a8a709dc01ab1155d982e844c49e84399d7
      GIT binary patch
      literal 2272
      zcwU87TUQfj6x|;eCnSSn@KU^Sv9`%zj2C)EZ2<)$AyTfQRy$0FWFVOdGZPhi(b{|e
      zfv&#ymA(L$wYvJ$uGRn0ztVPp6DYT+4=|H6-#N4QKKq>c>z`kL18@#MDyR`?&)MbV
      zoPJM#kTl%IlJ6u-uANJcjAjP<b;EbuMFn*NP4Y;xp!3o7nK{$&73>i>vXPwhOrz{t
      z{$g^}%vqlAE(+|qXxWy3S)eu+pA@L;bFyX_wTP%t5E9szwrn#~F3y<lxIR-b1)^!k
      z&<m5gYsug1!8$*0c>*WXuLRmH5XqT-%JzKSHkjHKOK-v+^Igl%b;r}YF$aZGqq?1S
      zirrx}<Dh~A+c;N}RUE=$iO98z0taI8-Q`1Q5m0p3n03moEOk`HF&t+xbD^vkyj0G1
      zT(eL22=8DucsE06rDU$rrJ!Blcy-o2qka9s3)&C~;dLfhMp3~V0v**8Qhmb%rfs@9
      zg$m=8%!&(y%0=Bs%x7m6bW-B#sT0Gxu_aeSMDjYLA}Pg)_)glnZ@Q9F2<J$?G{b`D
      z6Y|gn6<v~im>qF_Z_4uXGW@oRcknJ9QZVhDpAQ_8k`LZj(T$4&4PJT13j~oWrK;#0
      z#$|k{-~)lyU8u<^NzCi6P|<`Qf#gfQuq`*m<ZcCh0>@t9x!$2G{pZ8z#Z~F$et{FQ
      zmz0W6hB1h13Q}9zv%`H`Y%Brqr^{qq&crU*6wWoha={m9dzG8n58}w^Mf$ClcLGOW
      zf|QQn0LjywxcwXcF8fv?IcECQWP;(%*r4v^8JFy)RE%OQjB!j$Np1?X#I|JjIfVk3
      zhUM6S8soUF;$z$)COw<oF$tCZ!bu3@6HF=4NwX^C!ObQ|V8B$sQjOantC$5v3|W4~
      zz5<7~u}ZDSNzD>Cyi@AlvQ@~MG<_cPl2+jbLpvFPjgkU~{n}kz#RB-|I@^5U?_3+}
      zWaS$Owv2mhu3jpcHmM}4TJ{APgAxx^EXtt_`A+4b#Pz9)&+s{okk`FT0D<F1aUbDJ
      z1&_(7TAMr-Pw*9&blEOCS!*`f$P|>li0yF2PL~MO<Y}MgE#Y;e$VZlxpjrpGCC0eY
      z471;oYrkpBM4XYw(GDW#Up>EGwWyIF5&ml6uM4~iUhB0Lgn!{p4OIRQ^9nAMI$S~{
      z@6^g6?8QD_8|0W(3W&ojSjX6R+MlQwOWHD`Ln5t3Ut7kJXHd213En)#-ZivMub?CS
      zGbXg?$&J`4#@=MCM~lWbVj5$o8B4HMB6@Zi=bxfolQ(ZI<Gtb2tGJX&1TR}d?{s1X
      zSJIt-puTfSTgAZA{}eJ@ia?6su3-;`5J8$$hSAC=8m^Q12p8c;7~u4A{%{8qw812b
      zn4;-!z{50~e;bcEZBKAFkU^_ZWwkV~jd;j<848id0ai@&%|!|{!m70tM^>$<{1fw}
      zpd)J-pI*h}3T_MqD%_e1h~Ju8#ogza5g_k2Z4LS9=-Cy_bv_5bmcOHU8QwDP%YzI(
      z6nOUU-(>s6CfgJ2DKJl#1w@IW1r9$|CGJ^=Xcq$Xhj=!EtN0q<@K*=o_?BE`|Gy9F
      G{O})PsztB>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/UMacGenerator.class b/libjava/classpath/lib/gnu/javax/crypto/prng/UMacGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b82bbfbbfffeff92ca2f8a2d88709a38924cef5f
      GIT binary patch
      literal 2654
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/AuthInfo.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/AuthInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..001a63e4e4d68d41b37b0f21d966ef8c25f1adf8
      GIT binary patch
      literal 2428
      zcwUuNTUQfT6#fnbCx)SF#0&LOv|hL--rA}`TcBdm5U^4x)LstBA&gFD;>-jAvG>}i
      zw(tA_U)8P^w5-+DCm;GV`a^2JGXdlhTl+9`&g`@IxA*?`K70QB`?uc#oWzd?Y6K4E
      zol^3qoR%}mtT$T>+@vpkJK0?druv;p*FZ#IyFO3a(#a<WCvK{2Ah2~(W&_u=lrOL=
      z9iEp0i*}wTXVaD+qy(Z}S=(}~;G#fnOY4Y0q}R<U1N8zst60PkLxYLe5Ea<c6&h{@
      zotvn`76WmC&VP?}$aANyobvj@&}L)Ufrcn{2^^<gqGFNI770m<ghi7?aoHwOyp{K3
      z*n=hmd)H-rebx_D!Nlv>Cs3bP0o@dp7t9KrZAq`u3p~ror#4GkH;W7$5NLYAK}9_5
      z-cpV=r@ScM5D@b*?8hNZ$YG}NYOY4K%@Gqvaf~%`)Jzb93N*G<2_uFUv>9k!pKo|(
      zqFqBo_)&<WlSS4XhTN}ZQX?cyoWM!eOx-R?Tld4-SSt;aY8^LlT42vcKRqSOCjA=c
      zEfa6!9RXun+9fqODR8VBP_;Bp;hg5_{085vtVGczus8A2MmdFxCf>z+OhOim%E__U
      zssU{hEr%b5&|{)ka~2KU%3%zbaM?hgz_u55y|(my6Ca?TnNGT1Mi!L7(f{xkTBS7L
      zRTF6puoE41r{D1d>15T$@-9<lU{D}Y{m%5il#3XynfOo_v{vSFx}Szkd<0(KhAHU}
      zxSk4I$`3E~xYqyJ#F*BPW?d(cmg5`vL}34h=zFCfT$;(MVqm$BflmdRH)v$spwBHi
      zxiwm!uhXjJ8(2~wuF;a~wQO7ErQMy)D&Jq#ViD4oqcWw!gz|>vgiY4sX*VnF5$Rd_
      zds!H9OCFOuk^X<gao*KsZ8<lmVK>#1uzJ7<)c72p`_>H14Oc&<yJDpjwP?^+aLS@#
      z^Go7c2`9BWoWiICE>vx)S4=9U>*|^C!EmEipghTt1a`0VSr~i&vOHCfY0Mb7!`wHY
      znwZrM8`0CK9vR#<F^^&;+?5X20AHH;O1GK8Hp@_#1FWF3Q_`{g0*SLIXsqU(m)28$
      z$>#a1=O+-m&O&EZpQVf5u%Zx-I2_`Cr<OlS!Ku%m4|lbQ!r;T8D87aW<-jjXh>b16
      z{1w}lu!FmuSL2Q133d;3Jj28i_K$VM4=$oP^8f>#WxQF&@pQbSy^O>Hx|VQito;ej
      zEaGfDRmO!fy3_oAzl<w?Aag$Q7~7g6Weklzz;-?+pD3TmD3Pu&Jb%pdwlYQ+P+!>%
      zjXq*nLr|E)c(~fQ5w1mi7OnxlKn*4s_y~6KonnzMB93k}qKA@hG;xF-;FM{{Wt`@a
      z>cSOTW{5XHtU)4QBkC{_M~OC$5_RVxai6F^;~cU?Jws~ZxQ84)f+#(hM4rSovBp!}
      z)o|7i!@^CHdIKhIQ7=O2Yb*59hQB|qb#05VA8}I&I>r@*h|pL&GAl|bz~Q<TF2kw-
      z{6x(N*G@81#_jY2>}!9Dk^qSv=xBS2xf*0TpP{bvA?5c37M}kl9<Dk%$Wj9{bT~(5
      z?s5dqqnQ~UrmUS!s-3r09N=qa1nM8bH~5zB8<~gBsD@Ts@EyKqmI6P7*!TYdU}=CJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/AuthInfoProviderFactory.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/AuthInfoProviderFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91d180d1de851ae84d0cd0ccd621bb245c67dbe9
      GIT binary patch
      literal 1062
      zcwUuLTW=CU6#j++OWD;b_Tr^p>XnNyMa8JJRf1_kLMtg+qi@5q!Zz$K&MuApDaJp6
      zFEr7_R}+7f@eH8G0uN@h=j@z0=ljlWfBgLN4L}|bHG~+lEw{%H#G&}WO?lJ}Jnjp>
      z!%MxOU2)%eHR&DNO-pVIGw|e*hA_h!<<2|8ZSfb41Ir9FL>Y3^fhseQ7@`}tYX@5l
      zbIH^`L%8fUtvKeO8_*DASg6{rwcB$VmV7B19g87R^-R&(7t&Veu`wL9ZJ&Wx|ErK9
      zgWj@&it7i$H3?=jS^Zm9J&?BBDyC*&PSjM4;~bVWEdJA+5sHCjtf(}l?Jz7RQ<FR@
      z`htOr%1;lxSKY29%fh!}Sf%dN_iD=Fih--R#t^5BW#GTIgEqs`w5;E1xIS~RzU*>B
      zJXt{;YtUo3#Skm+m3Fc_&kKt5j)5dnG%M?UPjvhfgrn&X2{R0Z>4c^fj?*mgGHF7c
      zBu*>h97Cj5Emd|ktTW`NLv=gCc6m+7Nf-{DVcxOKws39VQQI=n8tPu%>q*nvw$<va
      z&RC9|3Z#Zm^XZMy-x4BCOG$E`PMkC&9Z4S}{&{$9kc<wEd7L6?j2v(p3#4f+aCRL0
      ziM&Ik%bD+puzqHM!~o~3nZ%_5E`Nmn6>D#faigC}+#KNc(2yp>T{2{U8#o#Aeb)a&
      zokpDGBZTpo(s)9&MXX?hHfECsxP^5*rJH9c(WBB^9;Gl&Pkr6P{b5xPhM0w4qn8eE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/ClientFactory.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/ClientFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02f22f692f528f9299b470223a6c77cfbb7cf258
      GIT binary patch
      literal 4064
      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
      ZAAL~e@!blK&6p2Jm#fgDz(SzE_+R)qHK+gp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/ClientMechanism.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/ClientMechanism.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce05c73f4a1c47fcdcb7270b1f38bc95d330b2c0
      GIT binary patch
      literal 5373
      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
      G-G2eY8i;EE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/ConfidentialityException.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/ConfidentialityException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a16f1efeb377c6523b690cf9c40ebfb0c2823ec7
      GIT binary patch
      literal 667
      zcwUu|%}&BV6ot<~p;{3X1%DC~*+DT><4Q4X5EGNeXdvuMsW7Itq(2Ie<%-0G58y)?
      z@3ajuhzn<N@12=*zk6mrzurFpoZ(PLilH%bLhZ?TF{Ya7%_f1X`G#+6ZP$6^L(2)c
      zVe??tnVQxl;I1P>VyMJ=-!emwF5`|ag@ueEd&M0dv>4LWTAx8`yF*Js8tXY^kYy<7
      z+_CP$=Yi$*jDc-26m{1$?7rb~u}==AV9b4nQ~iH7n+&C@F7%phI3ukac-$E^Ykgs1
      zOIXM=FkcM)C1OxlwEj5hjXn2O*h_dN!P_C;l%}rKF(_R(^i1o9i$@*(WxFAoQ33rL
      z#7a{|zeQ1|-8p4OIit?8_C`et3Ppu7Z~+OI*q|yGizshW7Jz&LXpvHAvub^g!ZP8S
      zl%0rBj#UXkRNE*<!|9y~>z2$3ld@VrnPYbuc27+Y5$rgYEnsp26IB^|q-NNUx(~hq
      D{(6cf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/IAuthInfoProvider.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/IAuthInfoProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26f9af2e8dbaec27fae4434bb7d8552db44b06fb
      GIT binary patch
      literal 502
      zcwTLg%}N6?6opS}ooUCvTCHorg)M@?byp$^1x2CY!d*<$F?C3W{0!}@x$pseC^6G1
      zA~Oa;a!*dabGcvNAD;lOFo@A2I8T+Q3s$ft<z|&TO)aw-om_kOHc@l^WON~C!o+A3
      z^hzVmm`ds6>q2lx&|%!kf;mCZAKtIuy^|SzVEK6TOpx3zxyYT=%EsstTvS<BaBrkr
      zRcU3IP)>4I8h?KfbaQ6y2ER2dc^$5mV^Udy!6t9r&(s;I((&kpAj-6U_c_67qoG<I
      zygr|;>Ah6A8?ELt^@dg9XaDgVgk-9{;o?qafpXHA+hysG2txlTR}{v$jVRP{sM_J|
      f1SP>vP1(g>P1(mmP3bi_hv@%R!afT37LI=a7H)Xq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ece084802428cb44a336278abe33510802032b0
      GIT binary patch
      literal 237
      zcwRg8Z`VEs1_nb0PId++Mh3m~yi)zF#InQ+{p6y`f|7jw;>6+{eNV^Ik_^whwETdg
      z{IblH)FQXU<dXcNN_GYoMg{?pdi|WlymWp4q^#8B5=I8@^wbj1yyB9?yyR3y23rju
      zgp%NrqRhN>YfT>_ZL(%$;0n$!ElN&x%gg~9CX350dLYBt7#SEDm>EET5$H5l1~w3j
      LfgMOPF>n9?Ib}x0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/IllegalMechanismStateException.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/IllegalMechanismStateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4804d86707ac6db7f897c112f0f823330ca8ac8
      GIT binary patch
      literal 701
      zcwU{5OHTqZ6opTDjUs}g;A5q6!^1c+8aEIUW7LqK3nA>w&_K;FLuNV(Kg$(~3x9w=
      z%6Q96h(Y4QE_!d9bH01p&#(6n0OvR~5M#I;IDz@hU--ndyy;lErq6xbY}&RMaQi`6
      zL+(g_)K*-H+leK{O1h4L1Vc4+`N9f3sivXtI#5I5C~0x6TNoHpb?HdeV2GE>U53Ps
      z+ZSoXv7SK^DTZ82I^r=H^@P{qJzFs3Tdu|JF88E9N0$jTls>~%>p!t;424olyG)xq
      z1GB9>=?rS+t`4%LgJdaaUnnkZJ^z=Ip|ZmN<EAt8+*h46f)+G%han~=G<&6xA>DQZ
      z&k}c1Kk(%5C!A>njzRwjz2el-|Iu#H>4GYwnyk#Q_C`$%Y1-3Nff^F1V}rU(D5APa
      zRRgjSpg~HlO;xHh<dz9{q`aRKilHhZ=x!VN`EYt}#A;GF9nz>&PiNR&hCPv~J%=5I
      TvIWeDV7e<}kJJqNbN9hFg-4fT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/InputBuffer.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/InputBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25b4f11c5fa85377e0b0314cdfdd58c9948acf3a
      GIT binary patch
      literal 3753
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/IntegrityException.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/IntegrityException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8cbebd541e1ea132e05254b906f02056f0955eb
      GIT binary patch
      literal 649
      zcwUW=&rZTX5Ql#Yg=$4n6i`ocgJNuqH!)lcBqWWALb#W@DQjv=`bXihJdt?t0emRq
      zY}*h69PD9dcKgjYv-|z?`32w_=PGgxO~;Fk7wgTM8+NdmMZOVQp=%7hh&zFZ7QMO6
      zXOZwd6$(QmB|~n<@@L8pX<1<m#XI4NsLPOVw#E#~z5mQL<gr^q0Y!$gDLnoVzfO2C
      zvL-HPsF=QOxnnC3a-SV4(Nu&Cy7}J$I}FvPDM`b%JjWPDf$*G8Yb=`|%H{_QER^jw
      zAnLQF^v}s?8u;&Wu*_GLzGL#usq0pbK^yvUVDr9^*Qsv~d?m}!0KF9Cm#2(gh*p($
      zHxwDgg1*Gg2PHXZv}zQATPWyYkFrt<QQW5}1qYd+OQd9rdV7iTx}is8KQYu&Dl^FJ
      t2$iHc-7s?vXgE2fs<$tfI9ZoHQqfZ)yGXH>OwD96tD#Ob!)a1|_6x%Ng5&@I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/NoSuchMechanismException.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/NoSuchMechanismException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5296788baaf2bed5bd484b3d8aef9ff992258853
      GIT binary patch
      literal 418
      zcwUuGJx{|h6g;OPflz3v1RFy)KBOAvmM#dU&?Tt5Ypld5wJXO#?ayLDV&DhxqblqK
      zu^<NClTPnF-QBy-?fVCSYYbup1fyKl^qIY|HRWcrvYJ+`D(OsTH7_0nFPM_m@@~z=
      z%1W(bgapHuUkP3tX*aDRbMQkWh$d1=J0&<iOFf;IOyxAQMyh;#J|_ro^^-`@!Cn_T
      zhzNSARAN>y7s5QUMJWgdsphPlGb8=}eGF|OD}t-^f5FED9cFTG`YR4WlIhxTaWDOc
      z)4x1MUWp-`6?_rbF1o|mZBqoUf#~A$4ZE*y3XnKVn(M?dZ?NyCla_@p4jPvThv+q4
      I{YG>21qp*{i~s-t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/NoSuchUserException.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/NoSuchUserException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6f042dc3633f89c721da2c32de85b682cbe3872
      GIT binary patch
      literal 494
      zcwUW<%}xR_6opS=038t&#kh6HPvXQF-C#)2=xV|SWnXGD)Qla{=@@t{S0pZc03XVD
      zJ40Nk3%lsKxBc!p?Z@ZaJAgB^YbY^vBb^0L{Dm(AVO9&91SwDBV4O@cF@H#<xm^mm
      zuqx3tcntjlO{K_;va13fWp*yLRf0S2dw`*OrL?j`hH|GnW$<p2N9m)C?K&!`GBiV_
      z<v4quNpsI<v1Dk4iQw^+8|C`Vp=akRrR?zEZyhkSJE22^nCmE*Sfg|_=uTbwo=b1g
      zqqvD&;xCNBpCp+P@=m$<<39pU-4ISdE^w<v6@7{J8g=KSjI`2QW9v1)_G$M?feU!J
      u#12*U0wUcdbq0-%!H`JDR(t(5nm-*zL|*3(M+LQUaMeCqdH6v-bNB@#_iTp%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/OutputBuffer.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/OutputBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f163d3c12654e4574da2222cedefc62aa9b75cd4
      GIT binary patch
      literal 2769
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslEncodingException.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslEncodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..befd9ccb2f3f4937421fa36fc4e435714ee08c6c
      GIT binary patch
      literal 488
      zcwUu{%}&BV6ot=)LbW0&iVJt__=z^e=mtYH23L)nn(l`(!7+78`eWd+T#>l&0emRq
      zoq~x`H_qaoJ2T%sXXgFm^$oxPEgL05f2MQyQ9O%<8z#$n7Q3lPBiH9L)?qwVdNy8!
      za-OMJ+pq}jHJr*YPgJ)2hJRs%>ZQ^u8xhK#Za}bZ;;D2{#&!)AR0$1FX?d4FO=NN}
      zCXpmGy*Lz6AQENvn?oymP$}WW`^OuHgjUBhup0?IbNwvg>tQ!A`Fke6PN38z{(=aO
      zALmIZZ<UEZ{xjgzjG+zw9Ly?l$DiVA^X`n5SS!61wqA;BhpWR1oWsHecDSppA=X`1
      mV^H51jF>cRwbx&v@zddo$?L-5XiaS#Ot+6_5q?n29DV{fQ)%n~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslInputStream.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8672abc861aa72703469146459a9906b5132b1f1
      GIT binary patch
      literal 4002
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslOutputStream.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0603601854159390e1f2062e0ed1a21dcca3cbec
      GIT binary patch
      literal 2860
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslUtil.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslUtil.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a4b02114055fda0cc08ea73ab533077c7515404
      GIT binary patch
      literal 954
      zcwT)|O>fgc5Ph332jixV+cZE)N%?eAh$*xZq6k6TfGQb!2o#B)9NUDg96RzymHrxz
      zTzY^@KpYTfeiULhaY#`iKJ3iy%zN{8X8rTmx9<SfupuGEu-x%t{m?uz`??hz_aa{p
      z&Cu0bw7ibED<Q)$C*rzmdL4bQedt&bL+%mxc=VVdt=0A!GTXlG$VlUyf-G_jvj+E^
      zmvOi41h34t>oBN>Z<+4C8E~;r4l~hv9x_yo=_)oEibtl)?Pk~H?o-<ioRDB8&6p@_
      zMFICZo3*!j6dBkP8S^MfSoll+C`rL0$_x_sY^T5X?mtAklwpobsb>>Ny&ZRZ3~LEG
      zbgVew(Xsx5AZEwe;T<Q8Hfv|0GAg(tVVPlR3Q|E8D-2o7^*!p<f_9o|G>9S7H3ipk
      zgJxn6VWdl|9c;<Cg_;D7YK)sZsS{IEb<tS`b*wVT;wB?;42#;q);~n&afim;Xf!0~
      z4D*wCvu`=Qi2EKxs%tY;rnZB0QcGi(bjmG14lL&x7f)ekJnV)*V+B+U;!7hX-W2U6
      z+TAD1$Y$$bkpE0h3No!SSzsL*Y~Vb3$|#BK4B3k)U^XFmK$#*|sH<}WsHqRgW=_&4
      zf0%N^=)+Si1zaEo!Ey;p2@5AHDwgX5T>gQ|09U`_rtuNd8}+ua`Y8bx(MV`jk_K$k
      lNt68NC}DS4qB^`~8F%TA6o@qLQ6YMggd2H`?kvQu{|1Rh)8YUC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/ServerFactory.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/ServerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7eb9b4a2d954bca4291392188bd3de25a9af8b4
      GIT binary patch
      literal 3779
      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
      Q1ObqzP@}+a1ODIr50&8J#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/ServerMechanism.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/ServerMechanism.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..165e46a3f30cddb514dbbc8aa26037f2dea62107
      GIT binary patch
      literal 5632
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/UserAlreadyExistsException.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/UserAlreadyExistsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48614ee35e94e362f6715224c4c212cc1fc5f71c
      GIT binary patch
      literal 510
      zcwUuHO-}+b6r95H;fkOrUJW<E#P#E%!H^im(}oMmy(|sZEW4!b8un*-BJto4@JAV6
      zcZmm$2YYz)UOO{y`tkYp4&V%}3JMIT^C<D2`3qlpfl8Mq_B7X__o#)s36<cpbhwh*
      z=;105OC#f`0*9fUE3^m_B~6-Z##Fv(4CQMXNi$$5cDfS==Qf@R7e#E<P(qoZ;mb&j
      zlEqZ02R;o2L(`7~9!|KDcHUe%=1FRXbN|0V`wXp)Zxvq1qq#RWN=Ea3cVa{A+7NYy
      zYC`%EUu4^VaT(lkoTxzDOB?0r?`0=ei#F)Du%|#B{gP^hrVBzwSn91&ea)U-sxBdL
      x2?tl$rmmKg2zLmrL49K|Ag1M(d&g@uemdL{bC@|C=B$l_?e@^jmhWepgD+J=b5Z~R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousClient.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousClient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d455f55e26839f1d2e17d46eb062b80b0ed4222a
      GIT binary patch
      literal 1734
      zcwUuMZF3V<6n<_Rvgwkv5U_wCZY`8FZCP7eMJa017mcRDY1&HL8OPhrHMz`YH?uFL
      z^`F3JXZXSgoKeH*jQ!4!Vmx;@giIS};6wJF-E+?KJm=-+<*UE{1u%!Ih6IDza6<DT
      zKj4R^<sG#H*Yvq>o7{1oqm~=`X7RPPY)jz;8j=h*2Pef5>%wYsNBS)dDTeEDm@ll*
      zlfh9OSffWA%#d1=jtstJ7|Ks=GbESYx=7<J!*H>Bzq+%2f2*cr2-yrYj4-^HuP8**
      z=1#+`1)g*ocU9hKMLMDyw)Ta$$@gu+kgK>Bx3{?`)qD42GH6PlVXpFyW#47UDxJOJ
      z81&UcOSA*&I=+T6hVlQav=_%P;t5~$gXEgrFB7ih_J;7=ge9U*>@u7e2iy*MAeNil
      zwuRFmPb$Axn%XN3gW-b=uH!?7wB@$iwg||}b~TJMEDWx#Odt(z_sDAjVfVD9F~M-*
      z6lH!&hk>k4gp(QELY@e{p3r2T#L%RyHwqK6x|s}Saht}%!=UMU@>i}%$}4Itr{<^Q
      zW6W!qW0-yGv1|p>&fpU)FkF)UHn(Mc)8m#XJHNPIi^uIAxGdD9PZ_2MO{+*^Y1q<=
      z^80#oholwbO8m%YlvfPt8;%<o+&EC|hG=nV8@yhp{`fi;kxhfv=FHaS+Uy-2_wbbl
      zTJv)!6=m=>iqzJI2ueqRpzRzRBzv!v#xiZ)>+Y+`EMiq%i#3MAfRw&3n@!Jsq;3G+
      z6%F4q+=zVAHMbl;Y`0x65cO5Za_f}Xx34K;3vIfk?2s0q@-|6SvR-pT&k}1=-MEV<
      zZqjW9f^piBA^M%6zoHbK8q)L}rnf~T$O5!NPVXS|JDCZL(o?4sSfcQII7e0{4#Rom
      z=uF}QK_qZ7vT5`Y*fjlA6ng`ciar$kAXpFL(z`&c4uD{|j4RzjX6RJDMDp2*%yM65
      zqL=wTuAU;_peCuR#|nSo+GAw@fw7bOsDm5Fg$`~$@8OP698jfh{6Kgc5&l@5*~M4Z
      z6bgi#P}ler({E%ej0IwvegX4|B3s<aeb&L}$A#pdxTYMrFaE+(<tawjBWG!*gO%gy
      z=Y(<v6PUy|T|JW#=8rV92c&I>^gJNGU5fgNd_R+deaxdC=`0X4@pg4ikcx7obDpqb
      R>lV)9JA5B4MkT6w{Xd2&jP(Ej
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousServer.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f7e3141bd360db0b34d3f64e95a87a3c60a3120
      GIT binary patch
      literal 1399
      zcwUuLT~8B16g^W)w=6}lf+#A20+tq7K~WS$%2y;QV4y{Tr(rw7nC)(}yG8Jy_zQe8
      z(L{ogL>^82QN}ylS_#wy9(LyL%(-XJx%cj`-`{@#7)Dw{h{4#lOU7Hi%l8b^-7or%
      z;c?G0xb4{c1*ha0>A%scaCe2PA<WQQJE@FV6y^@MrB~1pVdyNwJYkkx>F-y7w3NXN
      zkqK!_f0Cgt(Z9wJo^kRbibjTp^wRRu`r>kKRYx6~V$g7jp)HY7jE2SSZDZAUrM*3_
      z@|rW!7E7hVmT<Ft%MuLnjAL?Zjk{94R}RDej`SFYGZ(Zy&d{WER?RW!b9<&J`qHsI
      z4Obbu|L3%dW4PoBPn;xa5xd+fabK(muSiTJF_PGv?%$l&aD%Q-dyV22LwzngKRBkN
      z1GiOGx)|Cir&e7Wz;GvqyXc_`@shvexbi($S{7zih0dgC=wnFLa+0QOVf)ey(yN}L
      zND$F!7m0oyy+|r`DTZW?o}D<!?zql7)gBV8V-SXhA%?+ocPQseD~9_RraDM(jaxFG
      zb-5`P>^F{E;N{BKoSO|*p9e8K#3)15bP7dF_|yWn5yfN5S+I8%TbC$sX?5{@p4#Ur
      zXH6QOGV}zD(lK(jS1J}A*BALY+jR0oexm77x7yp#<}|VIG4y55lS@;luR0~y6!TI|
      zZ|kY498x6cCKGk^)YESrrd>mn)&_bTMTjCmOUCs>#J*4%LNl#8?Z7x9m_Q3fu`&#o
      z5f4bN5Jd>B6~eZFEJcq(v41p?;9%+m1*=lDUxZ?|1_i@4Tt7qciEP%<K9l;1diFVa
      zgpT!8{N^D#577M)&5K9qU60=zI7I((@+-Q(Vc-MwWcUChgk}T^0FMqac1)xZqHo8O
      zikKu726#cATcDc^-7Jxam-PRv&|GFQf*j4tE5g4H1b3CCR0OMNoC>OhH{uy4gX%vI
      HtWNy_fSgWr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..266dd041e8f52ded791e70928e1920875c4339ac
      GIT binary patch
      literal 951
      zcwUu}&rcIU6vw~QZdq7YX{-Efi=ZNH6*i&=<yRmTv{E3Z*n<}{-7aNtyK8p01TLQZ
      zC-h=SOuY2s1&s$in)rA4cZhGc1tfTJliBxu^WMDoc{4wMfBgpF4h$6$hRM3qG<Ntd
      z-!n{a|5e}`KKE^dJFc_eaGSodbgZ5Q!d9U$#AUi+bEj@>RCg>hVCb3?jtCYQqS;)9
      zK`FR3OG6YrI%4Qz=q(AyT5mS0mbb~Pw#ASvxhA(O+!NC8Y%0OF@EMHKe?iSM3<$r%
      zZBg6wxM>xgE!S)CK)4P=U$%6LTMj(o)Ms<gH6(CZMe@ur?Wm3`=%a~j%c%$3;Y39Z
      z0~k^<$T0G6vNHW7ijHCQG9-2-%yNSZd#P6QEZ^6_kk*lrQT-U!eQ6P4JU9oPJkKnN
      z$8=o7bp};9HEVBUi!Ll%lynJ<>$r&t!Zx?Lw-mG^1%_DAZo&kuA}x~^?Q3PX>6zAw
      z2;bt&bxz6N7$e{)<QGLmJ|g)ld3VV&va$SUbblfdfkuCgtPCo+hYO_ib`sf(WV>+*
      zy`2ItIt4QMABaU;`9s9tA*QtQU(o-yBT}uC!Xx3K`&9S=G0af8St>P$e#~PK3x74s
      zQ0~>RS>~kKcd8<%SUc0KEfP5T5bF5iAx0zbrH;;h#Be@!h#T|i_~-$8((%_}(i_H7
      z^3cK2FXa?&hUNka1ox2OmI-c!T0g=N9wUV!#_<FbSjBCuVH)d%yMaaWSMf9iA8o@S
      Z8-nNPb#urQ`ZU$OMW-U9C&O-2e*h}b#E<|0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff24bb4a445ec448a0d919509d35dacda6bd2b80
      GIT binary patch
      literal 3418
      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
      AeE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Client.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Client.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa53a44ca726f068693b19b63bbebb5030d131ac
      GIT binary patch
      literal 3839
      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
      USC$R?rG{bm*N6RgF4sr@15AA6MgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..745e176636dcae204db6355215484e0431ca4614
      GIT binary patch
      literal 543
      zcwSwR%TmHH6oyYwX#r70Q1P~NX)`WZxngKRX6oQj(IpexSj&`_X;PI}bKwK{P>!c)
      zCAvxS&38`zTs}VE-T~kOPBkbHIQOHJPT4birEapA%a{r#LR_=i%xlvw&evvp#Qi|X
      zWTC-2fm&8hLl*gT_%P+JBv8HSIL`fWWKMbm+agf6S2d1Ig2=zbqHY`s$s&2j!j$V!
      zB5;Q3#&@of<r+V^#+(W95+|PV7=)Za)3kb>v3)!FlcU2XfePi)rOSGcKxsV4oMoFj
      zY@^KgOM^`ISF)~1Ka-Wd)g3yyZsKu&HFsly-R5AF>jS0R3lb#f%ChZTA1U49iH9M9
      zvJ<C?%X`b~H2yuSk-b)t0D(398Vy>o0YxMYsQ@~1S>XzDRpBk<n!-ECy9zgu_Y~eo
      OZYg|-BZ1@P`s530p?5m~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Server.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Server.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c51063967b374ad4bddf382ddabab608c18131b
      GIT binary patch
      literal 3369
      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
      W=1vw-7W*XmDB?@6EMIwSef@t-062;O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac4fc0bc8c4ef0572af1452f004d6ca46197ffb2
      GIT binary patch
      literal 2534
      zcwUWFYgZFj6x|mB6XFOG)JiR_SZfnrskNvzYBdNFNx+s@ky<+>moSh_VrB+N-|zSP
      z{rv1#`vtJBWxw}7^sjVv-$?+0w9BlO`#g8wv-dgo%wPZfaTmZb{HCEsAe^z>$h@&=
      zEJsqsQo+ebY{SlSY~*t3-bf$&<i*}`$INQ*3G7j(k*r~5A|o^NGUW)=pD``dIVVsX
      z3Qq|5`toTRKrI?{)S+IWDPdZ2*v-wz;+Qd$l>)&;K4oMljH0RLl|`R3XW9atiTida
      zDzGb6l!hadb|!w25TWpNOd!y|oRS5{%v-jGpg?;W&6X**XgZ}b-YA<5y8!lLzlMEV
      z_>IjGJFVjZ91z&evqfn+<wb$Lp>SfmX;i^HsN*0W63{Zz88&iqyXmM?G_6e3kB0^7
      z#>WP_PX%xYhc&csxx8$q<53(D@DnRmawO&1AKHmU(g7SrNW<d-2iN7><m*zah!RXk
      z7#)Oj@-f4fC!SJp)3K`Fbt%f5+J?dbG^0mFG$PPZ#fhzI<d;-Xqu~iZjtMkmRlMi&
      zwiCc{^lISEdp&zgI*~Y=3+Z%G+P01pI4Pi$ua_c&JR)#lUBGSDQHA!jj?+r-MxIgT
      zl|2n-$ZorrF?V)W7X4tdiZcO3ab7XHAh55RtP?6SeL60ppIM%jR>qn0vOKOfF6kIV
      zoaAhG#`aDqIpgsva;lq#bR>`@j!`H`iy72a?aCcXWsez<5xU$Hz_S?D@Z8o^DcO$9
      z=@`SfK=XQ@nmL&?vsv||=<#Lc@uZIDF~!teG_tN7nN_qeSB?HOFFWtYHFoEe^VfB}
      zq(o-slx;N32psWFn)%4MWxIt!zUatwzm>|TX|VCMG>~iCM)=091uMT~sYq>@&?Bji
      z$+RjBJKUiY%K}Fe_j4PK{VLBa@8#7q6WlB_sKzS`<$NAY8Yx<Zru&%s(=iSCN`=^b
      zFma0tndu=}+5q<BhJwx+scu%G0BpD#h<s>AwW3Kx-7#RKoP4pQV-ZU%R7}sfWjltI
      zqGOS&v9AghCsb5JiJ|q5c#nC|u;-FSA%JBxsK~ym()cwN6tYrp?hU@7O}3%1A8(Z_
      zLr)pGhsZq(vc%qztioA^^p1{q@gCEq;F8#>dtEG-`smJ;@Xn=O_y8Yi_)wtrKMCph
      z7@x3Ss}BcbUb)JnMp}G%3gj~#pW_Qg(JiFuCbNXaito$Y{7T2yXyRtt%t%!v>I;T#
      zFQrwi`-sdF2C3v!tPlQ=vYt&rpe3<GUGCK^<d`?3dAFF71E%^)?YZas)1!`1ePTfU
      zYEh%Uc${mT9cM4t*LAGI|2qdY2(S&X2hPHWbJ)d^UN&OCo4p^6Xrjd)j(yx|R#4&?
      z$3Ctst)XQFt--bxJhFzzhHmoPdI!x@!OqTAbpIKABC&=iS8ytE6TZnih)xC1uHu=F
      z+Kv^(Rxq%F%fVqbYq+w82{pUQrc(`GV6%c3J>(=|hs&_t3byN($FB)N7-&Zbok*bz
      zvoJX?lZtr`_tWAMS`f#>7^3AcEw9jW0=<~T1s0zXOyL@?vY1Rma^2)?9@pU#Nr^E?
      zx=p-I5*<XDs*GB=o536fY4=Xeax_c3c`VQam;dr;zG7EPA+yL;gsf+8m8Hbr6tbTE
      zNU*SmV)71_r&jSY=^mP5oL=z+IPJTM=F@ea1h2Q&DGj=VZ?^hY@b+X^_iemigRain
      z&bznqsSjPZ@uk2mI@E|ZCd0ZUN72AG!^=$W<hYZ^Vcb9uOUFq#jJ`{{iyO4*628H=
      wULuX)JJMlJQ_Ao00}&f3-;el-#M=1(nY%tBwO2-mnLUbj9nbvYW!kU*0_%5kkN^Mx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51523b5a7a0aac36f73ed66b2ff4777598efc038
      GIT binary patch
      literal 5083
      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
      XL;RWRH9WpP!e1Dfg1<VA=;Qwb->$r<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7e4cc00b58fb81a127d29b6133321fee61ccf4b
      GIT binary patch
      literal 5266
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f62e9f89c4e5c444ff883c848790ae0a025c1755
      GIT binary patch
      literal 3441
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..928a8694f146a4ba1725461f0a1584121dfa814d
      GIT binary patch
      literal 3394
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainRegistry.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainRegistry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa70f14be44be27558bcd9142b8ac2353d5203c4
      GIT binary patch
      literal 526
      zcwSYJO;5rw7{{NYvhk*fqT<`dlb1D~JrOpLWC?_c9!VW_jx-xtJC(2I!4KevGCmyw
      z<I?oE-~Z`9Ykz*fz5(D4t_>&<xDBF|&e%Kqq<*rPtC&hA1)U2PMs%px5f4JCl7#`g
      z1nN3U1&abYc$slu5vUE@p7%T$*^_SHbqF-vO~zA67zOtj>co*$EK*NQq}+rOfg5bL
      zmYtUFw6acX&ZPW^ld1I@3QnMDJKgr!eVlBym{289rCj+`Wdl<JrEy<N$F)s3KwKV|
      zhFbMDs<BpqR+XO98F(w%#1H?H`?18R-5;&w*?MvsCK&V{9M@gRi}j>@<3bQ9dvTih
      zyqo<+W9ud@eL+P61a|Nx3~0d~6p;+10+`6<99NKQIo?OE=lBr$D96XhCpkVvZsqtK
      KR|1#W{^}3XQF7q`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainServer.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a5f810b0f6b9cba5b5b55db69c51b5075bab3ba
      GIT binary patch
      literal 3221
      zcwUuOTW}lI8UBteYd5k?5)lWK(BPz8B;UlnX$&E@<20tS?8HujZEkD%AZ@bV6}u~6
      zLR%=b<sL4jKq$>CGks~8DG{k>n)E3%oneOIrEh(1U;EO52ZrzLO0r|iEj;M#*>nEu
      z_kaJt`ujJ3`740CaX~{w;Lf65$(}YAjHPVBT`v1h)-yaSTeb|-&W@{fLb?mm)esf9
      zy}58GF)9ls!#2Hn4KaZ|p_nHN71#8aYl2)tVS(6#rfvEM1zOUXlLFBpXHM#96KEaJ
      z4UFXDXhC}d8g3BiNavKbtYz56?1b-{cClaSY|WXr%va`Tr8{ZNT2dgHa|(ua(r``n
      zUOSBXCDRkg<i2C7{Q~VOwnjn%@!_R{Ec>Qodm45M?A<K8hMd3+uJq(uBirPHVO0!Y
      z9+zI3mKa(rJu{e@8Pu?w*XwiC@dJU#)#u~bg?0^{0;xcx;+s}YWYRe!ZS$;jmCQZ`
      z*AEGxGI}zOTXDNOxkDh`1i+0a)1gv2feg9?w%BsX4;%>WNM|<6Z-GEh0=?*CDU6C=
      za$NJQp^_gttV*##K?QkNg4DZ*nagJ?hUKj*?%3>US@8Qa(>m@G*q(Pf%{giNgt)V4
      zE=W6$4z%m|k-*J|r6r4jw@%yfJH1M|?6|(1)A3_MaANXE?|$X4KY<7Fkbqv4{@}7N
      z>2YT>I?W8~c$iVIuTeUqd=4le2L-zRH;|Jh*I87gBRzE-4l^hlp10_@bM*`ajwJ9C
      z93?|6$2n6ekJkh?i)={c@ra7xr$KRtRGmgKrXgQvO+bkO*EN<sh3~k4MiP()1oAku
      zs=Mek?SkXF#8?$?GJz9dAL#{WzHCXKgcQ>n9u>GPuxdKl6LtgGVXDqCq6Wn^Obc|b
      z`p-KPl|pIQlJhLtnnuvw2Hzty1W~gqmc{Hy0?&7S=ZwJa+@{QCH%3fi(^6jKDwYK9
      z$bFaSsHc}3$nMMizc?wsjU36#qT`z+z}&I1aUCU&4@GSS*Xab#z~XRF2a1&i!*|@x
      z2g}F+<woqMopIM$AdlVtHrOa@a5f#g8&nc_25wLx+vk8<-!FBJuxdU7X>K&k_k<_i
      zMzV2uYNRZZp{uwYHN4WOQI2B)%ZhEfj%V3uG};%M>r>|XDl}vp^Rf*;$8#EfK|oe*
      zP(Oj^@k>>&3Pal8q`RB+`^F;$)r$%I3cn^z!agC{(z)wg)fF4>I$mlLah(P#;#U%Q
      z6|XTo)|ymmHheZ7>3D<exV~G{84Yg=+_Wk@V*3giYuI%i4&-xKR*m~k0>8z(0&TuC
      zR5IM4NlB_S`&z?$0yoylJTkVnXB5hLqRi~oR!!8c>yo9-f-8gh7*5h$6H}CmPdF8~
      zAdi^pW4LY2hptb_V=t-Q!e1-@6~y>t;kj<%+x>`e2WVZ%com6HxQ$>d*EpZR0L2Hf
      zjk`oBhV4l58O4n>5y6gN&$t3(-TWyjv1%q392{9=LNrX=^nFY`(!>OLfYf>uk-M3u
      z&db*BYiJc0SFmd;c}o?0Mptm_lzQu~VsB5hireyCy_az3r|9nbGrD^&A^RcP)XAxj
      zp?3+MtCs`OR8-xaNBasorjqwoasL&ia1C3!Qqk+QQ)-)v2K!L@0VN&SR7-OIB^)@=
      z`Z2a2hy~XNQ?V)zT}icGtH}>3c@-p0S20}0NT?H2I$BLf3w2Vl&ycG-Iu?Y*a3;jX
      z(NL~OiLvhIa2_Aw6fWa)e8Fc7|HW6Bs=@mLI=SWv;23X?6Xprrf=TS*b00q*T{uaW
      zoWeuY7{oM=Vg|?X7}v)!iziURlXwnK;T0J4B<ZP$3o!9VPSQWYqSrFLy7&@4{>i!X
      zFD&9eSYiyzjN(~*&5l*2J<H;<XtmO+-3+~u&G<Jx^)cFg_y_$x$&8NT6MF1p%;))L
      zP_C8!#%j9@v^0wXv-zC2b3BXD^X}U2%i66*&u!dET8`pr<{5TGFQ1BJEy?1=bsT(g
      z4F_9lfkxDKemw_;&M;K7`6PtdeHrr+e2ByfJVm|=3%oE@#nNa`@+>cZ)`C+?uIDmd
      zh#=pa{LN*&9KluWQrx?S9YHx?U%@#ly%p4+6np#PXwTo!aUOclRdielWx|rH_!M}*
      zt403++PS{U^)>9o>n!aXNV8b?;!PaFTNuXMEb=?lc$ZMWN1)zk0Y3<`J;>adN4+fE
      oy-(oz=btwp5dH|QWSE>P#32%AE-1_6Z0=e7J{T?^1t|UDTXAV1QUCw|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/CALG.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/CALG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdc5ffa02a04b1828b2250f0e24c84d3e48f93b2
      GIT binary patch
      literal 4124
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ClientStore.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ClientStore.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c800a17428cc425db5e6f4f1f3260372370de8b
      GIT binary patch
      literal 2087
      zcwUuMZBHCk6n^gR>@KVW3*|-VBG}TxE^lj#)w)m+v89Vk{eYo@Ml%c}3{Gdr%q+s^
      zMq}bfji&yAe(8r65}HV2n>NwJ-{5aCKKJfAP{4*xGIP(p_uS_^=Q-!jU;q5}JAg}=
      zOCct3an-F9){RYLt6=)u8=+SSjKC=b{zhTiu`M^84?W*XK@(__ZUx71R|_96uUlp)
      zP#@Uts$+$oE6`s)71WqOs$#EP4gyo4rK~V3q3slI8o}C}vGL!27&-!)<C$LzoGBj-
      zO|QCf)3IGUoDhiT@(XmH_ExNVkf@FXk|~@KXg-FYMl)J<w4p&DIj#WYnb&osP$#WU
      z9rdV7BaT)%?b4CPYXX_F?OL}gca|;x6Jy!2BrDG}oCU+T<-E42g==;|a<&_UhHG*q
      zpUa<8nKZ+-GJQLka_mhWZOa`>d_MFk_E>&NX3(djA30{eYOxG`x#I%mk1wS#AaLRT
      zxhNLb-O%4oBaa~+y%<*Fs*nX8Z^@8J-@4;Tc5#;J#oE*;DxaX@keOJbpSQfuZxDK9
      z`VuJ)!V^I^4Rg(!w}QZy%{6s`5~Y`6S!Ttz!|iF$4XrJzu^>|z(=m=~<g!sAx2q?p
      zb}AjEI+L=6-e<jYCE0s%)vlsM%M7;!248_2yVQ0!4aZ(F!h?)YtUV(&Qd%ig<T!bf
      z<12(uVU|sLYJY+ByjSr}>xM1+z3ET`k4ONVV;9HyhtYU%cnxWtl~+rR^|g^VilbcB
      z(Ln!3&gKz=e0s$$GW%#=e2kV|v`1FQKH{{_?jrk$ZZW*UZ#zTCpP7bHf?Pod-o<&0
      zpj&y!w=D`V%29Ak3=ri2BCQ<92{EaT=~XB6DDGGBrpl;M`BWLU?jZ9g8ulT`=RDbR
      z{xHI8RN3F;=@ObS8&P3qxKKm-n=2B%yo2oGt!F!EAKb&mqSmSXfs}S1TKrnqJ@oIO
      zL#{tXzL@At>|yX%v{ZdZZddn4ZVx}dkL2+4CtVK|=7*Re?hIqkM2rTQBk(DAmyp3{
      z)c<p``hx3U;xY^rv5XJ6KZ~yv+leZ-ngY_gL_fiE!xZstqR#TIS{aU4SWS&+9e9WG
      zCzNXM)iV8&bGb4oGc9T=)!{u975{zY7rP!~Le4uiCX(X!$s@w1C{`bj_3^6p;l*l)
      z+})(K->@_x!)`0m1Ejz(5$VAiX=zO{y_mA5DUdABb=;^C47ej#dL+TQXGi57lJX8!
      zNhO(KmabWn$sQqfm%HB*@H@`$lF;{xRJ#h>6OrnPNX@WAssw(ZkEGsvxEDsAqBM83
      z#6u4iiL8R|X7=4jNc_azpZTBr1)a3d;oc!-dLt6OH4@Fd8KcxAM$cHy68K1Amj4A8
      C2fOM3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/IALG.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/IALG.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ed3d23f0178d8f225dd97323f357dec8d3a6f51
      GIT binary patch
      literal 2245
      zcwUWEZBrXn7(F)x7D57+LZvT2X|d)7h^=U`R4mY@jU;I`2u7@Q*(}LI*v%vx1V8w9
      zoN@eMXKE3dseW_DALV%NO<YnEiywCPzC8Cl=bY!+``6#Uy#jC(1r0ud(SluzZ|i&d
      ze%z=WlwBuY)vKj=wNj2J7g7&3_yyjQ`|*-)7vhgMw@t&<&?RvGWOb?J*rvW&G6np_
      zUEL74oNB@4dOVrdjX8m?yOwRa^UNN8LtJE)a7#|!44?y{AbQXz&=HQT_JEv%(9kW=
      zpR#N-Q`_A%D=T#d11ZPQORIXtlJmx*-z{2Ifvc_QUXx31y#>=v+ErJ#4W63`r%q&M
      z-HK%w<|1c<1Rm@gX4$nIyQ<-$z<52nY8thQ<sQ`IvwV4R0bIt2hARSNZ5^Q@3Egm=
      z%0UoA7!`>BKW3hr-MA_cY7!TYXt*YDL!o%gGETN;6c<VbhtuM26Tfjx$QryOFw`#f
      zY5>D{S4M;dqHQ9YR#u7?=UZ7Ab&TQiSU{jh|2MBJV+(>nry)B{U@#nM+O9X{oQC%V
      zCQfx_#&NT?a@nc4X5JIii(8n{@V>ys|1>O!DNM6*WTy&TYtyJ+(U<QhC`5wJ2JsQ@
      z2xvsfTHl$fUy}jc#k_`(1xDTo62vFC$G;<QR;)dq?F=U)>x&u|1<om1HP<S|AL-R%
      zS}zB%fKWFc@Lwb7bRBM*d8c>G1AbkC=p`BTFo;J;l1jNoC9~mH=UP|V*emrd2k`+?
      zEKUPN5h5AN*N|!S`AIV+?LEC@<(JI^&wA3>$#1dC&+t>gSKZ-jo#H!o^)m09REr0U
      z68i$zQ)i}?mrkvmrz_Id^~HL*z6xRu>ns;nl1X*nFhpmpv$a(<>6V~xT_w{lxJ8EL
      zorGoUC5DAr7>U3($wMB<TLrVq1A(kls~Bd&lDAHeybh)%Io`L_!KagtPhMTTgS$Cm
      z-*csxvjk^8egn}%1f#KE(Epq>AI|aJ$FsmZ{J6&x3mD++LOmMiF$k!UL=_10evo@_
      zbIs5ButG1POT|w_f5oL#>`x3GV>mZ3c8u{H6J9^Wjo*(Ua<M~1e)jTS;wd0a)*0q~
      zjD9>J?ql9npEYrqKn#=oc4Dl-LCBw{i9=j*m{$$}gECR{1^SP0Q{WHWdM#&{idj|o
      z!Fqf{qhRxW*rM!5j{W@3#_Eu_1zut<eT;?NA(k>z1NSFiBC#enr;hNc4?mzkT^Bzo
      zRX<lb!qkv%Fc_r@;3-}Ih6*=0f5zQSYRuy{wiL4&s%1{k{aL#5gh+iDp*Nos=>qGJ
      z#R@e~lIIsx<m3JtzVzztSMK#mX0eXgt0Uz6IH`F+?QSE4ohGmQyo`PLnt6o6TyJ3J
      z8eW7H=9Q7QkPdAvE68X)*n<o;Am!*O#rxD~gCkkEXV4pIW>i|)s><<Afz#!4o5~mP
      X%C~_#?GaeBpH3ls-xk4CQCt52nVH^{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/KDF.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/KDF.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..178af34da695d26abc566d60ff52a27117d6181c
      GIT binary patch
      literal 2276
      zcwUWF-%}G;6#i}!NeHV3s8$K0pkfjs@n`)3+8RWSB!Hk;q(wK&C9G^VakFtqXWHp>
      zI!>o=ed}X8ec+`JR$Fwc)5kvaZ|Gmqx4zVVcUdVFs?AJx?~ilN_nrHlbN9Eue*Oi(
      zQPjf-2<$1@^~_!UzP^+(oJQ5HWNLcN%G8`{X5`|fFhT+`wVknayObF#-j#+cu<gR|
      z<n3&JY-r^6WbW3mfXE4K9je$hSGV0M-KxtVL1F@$vK$$n_U)RA_4#?}2n1%b0->s7
      zm&hUil0>E^jk;sHjZED&t<3nu=;Z;L)yujea4^4ttMbp>DCovzX-h|UD-O*ggN9|=
      zrh8r>m`G01f2cAin<4O)hA3L1*oj?Xye$xa4X%dW=n!ZrNjK-EWk`X&iR5d!Dv(YM
      z8ny~-&zrU!t(S|^xvm#2dbi~(hHg#ij;ZGUV$-0{wJ9-^%_XOz2%<;BUbL!U2Q+NM
      z_Aq({T0Kw?>xy1mDCpHF4x%T5q`*FsO0S+tTAfK+omkp1s|(Ue+j?0>aG0l|%bN1(
      z*N{er^J<-1o=)Un6?kCdN^;{;1V;rrHbpk=Ik^<Yahwd}#7pX)Z_ajQNje(d!6||8
      zeN`%B^8z~)x%Cjf88OcAMAu>XITfvnv6!xzAIT^Na4w9&f7R(^qvp!8hVyt=pjmeu
      zy<t?U4T01q$>ug$q7V^W5a`+ny(k;$vhGT%XoWE(u>XIQWfWQTsK+G@mvMzPsZ?i4
      z_<THBDd~V$ukM0bW3g?l_w~KWN^c>Tf=`8V+H*^Mmi4MY`?|1xwa`9Dd-7$WCEpM`
      z%G#UIFp2BzCtEJL*@i2<e#)t>DOI5R*!Cl;nWi<|!VC}kr6I|0Q6S8vX^!mfOSO<o
      z&ScdQ+*amyD84Fq9&|GmENU<?M*!*Ya@euT-mGNC9n*FvT}SF=a+=3N7`!m{t}7JF
      zk|o`mba@QJONOkvX2sTE;x0R|y6UYPi`N}p_3y64rjb?GSt@o}pl@S;dvfN@vguAp
      z-B^%wYe3A;l6J{m;J}f!x<yF^Md;4Ifg#06Z*r6THxeD9la;z-$V;ZWHX>9ht(?(K
      zJ=A5p1s(i1aTew*fC%T!ugrP-aonLUC~u8-i{}|Z46U?m<Lo5g>bEuYJn|UrPqE`M
      z;y-xid-&Yuft_LC0fsq=E^kNuSrLAS-x+cX-?OPF=uU~Bu>TnjPCvn+(f+nXTWSS;
      zH~ZU;bUwwg)#2$_%pb>M&m(6;hl9IALA7?azwN!<A+?cuhAbmoWUSPW*x$c`;eR+C
      zBNMQ%LO92ib4=wblN{kym*<DBfKwR71&ncZ95-+cA7aAeePWd*J+68w&(f#GOMjN0
      zO^n`3?*hGpjB$t&T8OcWUxsl%)2}&K=W!%3nEDmbR3SLHj82tBVHuI9xc1dxJoN30
      zKjW=<@!g9*o<U6a#h>8D!!_=`WUTN4xI@Gur7$Q?iP0CZgLT}&cP|z_zA2&+3pYI(
      z1H8rap1=|2p_m8g)#Z=Qs^;}sp7Im|+8-hQ2<<C)pU>cNa{A=^H6l^Zs7gBb)<o^b
      z2Ry9RAm0#N!S}|QoYJ5#7+=BcGIoykKZ3pjxr`QnxY+lQ{vj4iE1OomJK12XI9*;n
      ze$3TRx%(Mof6m<p-1`Ct@Z~yTde?;Mh3zF8LJul_qG58q$HU*_jU0{yY94R*Zv%e@
      A%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b92fe4f6daca04fb7a9aeafb3e9d34368bbba8ef
      GIT binary patch
      literal 11585
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRP.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRP.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76c863be696d34c859899006b9a0290f3a8ee415
      GIT binary patch
      literal 4671
      zcwUuOYjj*y75>h=Gjk_N)21+OX`wA;GLtaYJ_1QCCTR*oCMo1GwXN7rCfCW-$;>cw
      zrw>F?XjKr4ReTgdM9?bBrBEPkDR$v<DN9g%RDAJAjsNtIe|*2bbMDQ}bTW-4S@+(3
      z9((U^?{A-d=GFhacpkudJne-;;Hpf%65F3TkUA7gmkt+=LadxB=VIkjF*Y)Mn-?yD
      zX1N^8rSh5Bj`96^+7R%ka+yLYYfMg+1r{gNhKiBR#coNJCkIo-ZUJ}Sj>L{30nsZE
      z>?`EUMk;S4Q@M)nr28%b=hQ?>;JU;tfLK{iS7`HaY?4M|@j<;@PG$6M*^FK`XwbJM
      zoy+F4##X9^+mZsVzQTm=#Ug=4^8onKjKvz3pi#iHMX5DFV5tT-JOWLLY+fI#OpWWM
      z(bRZO7idWo(y3fBRm#e-H5mzCCc3tyA5JWmE>>s=KqES1GRx$wN-UUQ8CO>2CQW}E
      z!il+Dj~JzFKGWUye+>As8f(2+a}iIbu7+!|P9iB~rv#RS+vZ!B+F=cCa$mqGBnk)h
      zQeUd9`w$g?T<y?sJz~tFerF|>V??dhAkBj4Zrk0!irV1C+Xb#&5bv;_$(D`MVGSFx
      zN#F`j?cLVDy=N>jx_4Xr=Khh<y+b{N{gRM6V4KmY;Rf8u63FPR!*%tr%%Ae38}IO9
      zi@@qj@F~k?dn#=dB(klziP@loxXn!Wg3K&j9DY_skF3Rz44_ZLHZVSCvBCgus1v|t
      zg+xN8CWcZ|#O5jK<w}mmoQDb}frjv&-aWnXwmm#}j`8(;nG&h-<n(;TnB<|1^T`Tm
      z46<kTC<ic%Q7=ZSC|ocw4P&aj@(M*mUO#Bg3$%qVH#gGfE)Bb}haDrGE9CXsLY<3u
      z!m{pRfQ(M6?$xjl>>{2@aUx|<*UPndye%mg(;D852?7kOTsX_6GzSs|8$mrj<t~5!
      zp|oB!vTRsh>=#(8wq*;kv3$8wEEY<JKGB~~7bd7-Z}lO^b38WE(KFH)kIPe&*HA!)
      zlT2{$VM8y=BDhlmx`UI7Au9x?v4R7fl)y%^cj>CV#pV7(8g7APiV=!&V$0}xy~H>N
      z$?79k1XC$vGS-{T#Pf!p(M#P6%~nUdr}wSs&+e|aP|v0c%a0G@Ltfk?uzY?Ms4hLm
      zm+Vd-7Fc$PIFucM`(zGEQaUQL$CL_QDog9@a8Yg;<HJTJdiV_RNwECWdFD0U*IS)M
      zo`^dx;ax^@IT6>(L0l@^{C--N=)<xKd*!9&klcxaEXOQs(`gtv2`rwJGv@mukORc+
      z58D=Lpv)Oxx-iB5p}$MsQJ06*%IB9gJdVc*r&8A0EPTaOxqPrtnvg`)Gh}%cMS8CA
      z<sT_jN@;z2R^E?3cJJ$@3Y$NX^ImsinY>{sErS<6&NfhX@FsD{YmssjXM<?uN)tyh
      z&da~RIW+G&jh5%o`m9p80#Hi8jr?xLm1<T#?4y?Qc8=tnKXMw&BGDJHd``Df!Rdhu
      zeT1-0=`S^R<0`CFPW=iJ+Z9&fYRl$H>PgN1$oCP5OyinqTsJ^ji?ndmegfW8c-z1!
      zv~slhW!6^o75YAduEBE<yV_6Voe8-Zoks7@=rcB)2%P~#gtLP#Z(|6z6UH#Y7(qMx
      z=z1j4g`EVuOF_Nb1i=tD@f+sen+aNQUyB0mV1C&fEYL@pb2q<hR=ngJa&C5=#FCCy
      zSESXoA<F08<D*AhqSdwHiU0noV-C_%rLvch_7Pl)Zuj9Dj4SsWO>?*v11eK%kf0=#
      zG{`U<)LKPI1BB@%lpQKG!NAs8kT&uw6gSUf`B~g9Fz4B$Rwk7v&D>>iBAAAqmW58s
      zLeR9pQhyo4wMGt98421(*kvsv6NDu*xw6{GV0+XVJ%1MOaiRSz#;c*3Wpf{G9pU(B
      z6&EY*vRMgTB_oJMc(39@dd%=U$yJ$#tnz&m^<=>XBGH!jO=D^r#aj3eSJh>}b`YS0
      zO)7e}J}Zzxt1g?O?Pe%!aA$C^*5H#>h?{JKO*m}P*Mz$$NyP8R-L;6tcPTe==0bJ0
      zy0l0ndIldL{7Ad`oyNUg!H^aTIzvG-kCBdP9I2V(z~v0Ntbv=VwHrKj=CqL48S+|I
      zL%#WDBcX=6zWmOR-yQ^<p}_2*hT>a!gn(}_&~IWbzQrT;41ZES%fohx2l6={z~@Qp
      z3z)(*lXV&&Wu70xSv-mt@f6N+=Sw(`Z{sz-WwMW%DYKJ(0Ux1`P}0XJIh1ri8Feb@
      z0TSR+(#N^#R+5jBM@bKI)vKf-YWS4&2}%u0I>uGMk{+TIpy%(Y64X>AlG-3We-g*%
      zQTwJv?aam0M(Z)q?rfhGJDeS}S$EZ=!d-9DQ<tAPT0>f^uldTmkDtY-9Oj_8df=-X
      z%u1mKXQ<&VQ$5Vf0(gai|A5k~Y;Uiz+y0QP<wrc7ud}KB7^C<Jo8M2Frk}B!T;SRN
      zITQE>9>Xv2G=9lq_!Yi`Uvu|w@FxG~D4($@pHWl_C4EMnFDX5!+M|>t`7R|%Qr$}W
      zEG3VUK4(!rgU@r_r=$~{Yf#c77UeVef<^fo7UfHbewOk_iPvltC+JCf=)8z%SIA}e
      zypU^-V3$pB$W@a(^M3d(9sZ8j)$dthGrX?<P<20a+6m}X!3rfEvl7sWFRBDI@_v<o
      zWi39AFU@O{yJ<@%rzH|?SADWWy-(wb+UE90<vU{Twtcs#6D5@NB$Mh;(o^cZNsnKd
      z=W&d(v=OvD)^YadDrZ64S<rSCw4DX<RTZd1{<5-Ic%6EZ-DE8bRjF_8GK+g22VL%q
      z*b2FwA@?OnTCM8kFHG`ZNz&gq{yRGG5B^~KCx86>i}mzx6~|T+jU7kQjw8u9Ou~{@
      Y9F4qoOu{zvCOOGDH+Ozb`TY9-0DO|fD*ylh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5ec9572b5398c836810806e88bd85f948101bd2
      GIT binary patch
      literal 3562
      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
      SG}~2F%l)%ebQ$szy7E8Gw@&*2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e20ffb6333fdeda6b65aa0c8e921af87a9bca369
      GIT binary patch
      literal 18659
      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
      WAh`o5N%XjT%1OSCF_k*n%=kaEc+<N8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPRegistry.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPRegistry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4bf66fe9ffc03fac30dbded652b54c9169a7d080
      GIT binary patch
      literal 3133
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c81ddc2ec85e67b8b0a0d1bd47a83ad29ea0fef1
      GIT binary patch
      literal 15844
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SecurityContext.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SecurityContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3830ff959e311d5bf801ebbd54ddf09660b55848
      GIT binary patch
      literal 2168
      zcwVKHU2hXd6o%h%{Oy5+5EEPq34{=PP1uHy0_CfT1BnwSk?Ja{K)u*FD`z8Tovzmr
      zQEz$yH~b2I02fs13W<yUfc~he=gh8>YCQxbWXb29+4Jl<bLO@G`S;`B0OqikK|-L?
      zcKhb8bzr?TTi)Tm-!*$yuVePSeY0t|`kvz-*1E25zw|Rm3XE{7*|FTVxv{ltw|s&0
      z-uAk+XA6urjvqFC&vDxi1crLfwm{;=f`C}1Wvjl)oBTcO+4~*qaMAYZJx<r9jOPM5
      z$E|hyRMDe#T_E4>`$roo$6d2p0+WqTw_TraEK%V!aVj@UFLd^I7(WTCg;<WuMd|5>
      zj_df31>TkikM?3A{5-GMKiAAxJg<Gp^9l_!S?g}wc?{u##5lgC8J8=YIS5>mNFmK?
      zQX+#at1A+@P+gVChw7R{Ayj1viBqf$iPIQnbzNd4R5v8fV3gH&5@$noQ(_E7R<|Y2
      zp-6Yza9n%6zqe(3KU-TJ<&JL4>TFt`!|P}>>F+o_f$9k-jJc4nsBQaek>|$B6`kwS
      zl+vs(Qh{=Xt(T-VxvxN>)^TjtXaDi4X?q8@$E(pDtM^mfkTgWHq@=|9u`6kle0hpC
      zH~weMtV&XjyFyKU)}OhMS3n^w5ZUfzJo2fG%12DT+3kBR`<cU29gEHE2EPfDbUj1#
      z%a=&7BS<CK4=U!On2%y1isS<o$ptEoM3Eez;@K$D?W=fBMP|lvp6ZnVF-iNpvtoR}
      zH%2wUMdNya31c?EWuue~FlCfd0j7;&I>3xk%mk<y#cY78QOX6FHA?varco*cm@`T;
      zz^y-3tvmGn19b+>BZ(TFVUbo(si$XDcL@_%#x&}vVuk+gR&f^%Ji;1fuG8)Yz9;fk
      z*cm;$2Pnmp5lZoF5=!xOhLqy@B$eU`rIg|srIq3-Wt8GMWtHMd<&@%C<(1-T6_nz6
      zNmBReBx+hPDRTXk@fR+>KRRgGR8uuA!-S)zAK;+|o`}Q0XyHd%_;MWnRSQ4X!c%d0
      zOA9~I!qaiMt%ZN2OCN-1-o@aK7G59^48oN-{F@eD)WX#`e4vG&k~at8+4z}%*TPF$
      i*o?z}XyIk@{2)9RhhJ;q6)k)#4!_aBf_{0N)%Xt)uW0!I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9757964c614dc73c37c381013c8598e81f045eb9
      GIT binary patch
      literal 2658
      zcwUuNYflts7(K%-yRaQ@qEtkSwkWe)92FHrw2GIy0;_iI;<~*!48t-q%x-695x$$Y
      z@eee%O}{iv+tf4)$<mZWjV3nfzvv%ndfwS#K_CWalX)-myyu+f@;>{|e}6p%a1;ws
      zR7p6Pvy19oZBCn4b!VaA<yBX6E!A}jYRYit3@7E~9V3dcghpYeTAH0xuT9)FbWcL9
      zYuY)>@bb2V&e3f_ot6-F&B<e~t4nAe^)ZW{X{lE<cX~`KtbX@AOG4Pn>oXE|jBcbB
      zR(if@dxj%HN=T>~(k;_Ay|WTRN<7V@7xI%vEqGW)H6l^$l+d(^Erw>a$aohG5+XxB
      zfH>1CBZ?X^Ym-rnnixW85zF^v#PE)o?Ux~=PC~<|X&cGn?1bUm)Fv!LsLkt|mDU_n
      ztb@(4H*LC<Y1*!***bUPN_?9Ui;=E{OgY0#8uwC$>za8xagm@(JUbji7kZ-Tel0;M
      z&tYa{^x`lhHK$oc<Jy#jT}mQ8y3y)%6h}y~aeKHpHDx$8I7XgS;$m+MDvpa#oe(&i
      zQR3+u^h<~xsXRj2DH(%cwj!2c=e%h@I|=dOjEuARP?S({!u1iTK}l?-PcWaCF^mhu
      z(Fz5_o|MqDm4r=OWhZ=uOENCwBc{O1rvkp6%9d<hNXWPfg|-a&@PcPBb0HSx>y;ST
      zGrp#K-ZJNy(`qF<9KS6Pu8T<B2zJt<%u+IL;u8W9Q^Fx-b4|xLZ$&XKq2mo@A`0Y^
      z?KulEq>+&^hTDFOZwty#Wqc+mBaShf7y7EQ!~V)GTGSv3(-~udZ{3@xrZ?4Ng@_Kz
      zx~5MXK_N;|mBbq>SuZ-Kw{RiP+d5A#8I2swC|C^fZ6A|yS0p6D;ISBmbC!%*kUdl=
      z(wBiP;<>E|i?|g;vc44eDIr=%$nQPfZ{d@KdInX5XkAd4__u;+GHqT|b5irxP-3Zk
      z(b0{|rsyG!>zcx0fr<m{3?X*&YIY?yInMTo#^sN-!N`8aF($ed#~S|X(ZF+!TxC%O
      z@pMW{Xj(yYW*NJdu)8wbvw{$3dzY{;w1oC2G_4}3fQ|TnB4P9q?gVzDAMfK74&g9I
      z_^?%?tp-GW93>&Ni)d>wG2iekVb1%<<gyVy@Zks0frA0SP@r_@BAWh2-3lb?Iz-i6
      zKd#`_`_Z_{(<3}JT9Gn<PACD=4Dkia(M7a}?_}uKpNNmFK+Wtpx{SUZCqs>~t`Y_&
      zOBgEQ9H-|>xLCrKHJTPefOS)can5h?x@T~N^Hmq>D13zU;u%9SApV!)gj=c5neJCe
      zc0YZH#3J@(k}p=!mFZr_wZZTr_Oyme`1m=}gVn9ouh8CFUBaz1d%wf3MeG*evg3hK
      zcD(oHFNpNMe75%yg*A~fN%$nL`(s(^F$w~vxXQ5(Oj^yL4Hly@%Rh%a6H{R79GruT
      z1i#<Fyzj<w-^Emr2{9YN=X9is7GK~F$2O)~qmyA`9l!*1|HLGWz}=s?7CZfGKK7I_
      z6}U-PxSA>ZvVwG`Z5es7vFg(kQbZWlK8Wf$;g9QU?>^sOu?>8UefWk_?&BmL_|m&5
      ziL@2z!o4~_<^7cD5~Z2q%hCZ4#X#`S%#RSPuBKy5C?5>Jpjv9pK1VJ|xnerr8m7!B
      z-_Lp<6R?qmALr3Hdi-&{&~JGYAJXD`lKwzZ4;l9#*Tq<^2vvg^*Ah+06EUu5v|S48
      z<*Gab=9q)B<Of^}CzRJDCs!4ZugYB?)COwn;F%7xbZpT2E4hE8#qYejkI>F}C;srY
      V?)RCMidLnfwLQ=(;hv8+|37i-J~#jX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/StoreEntry.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/StoreEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97ed0be25ee0c971d807a2a20efda30f859f7adb
      GIT binary patch
      literal 641
      zcwUWAO-~a+7=DIby0k2oLP4OSBHtTuV~oK>gcyaSq{^X958kHB1cq#Po7pL$Cr|zZ
      zFB<P$ypTXJ9{2(N5`TsI&d_MQIg`x1pU?9?@AseIt^qv4vWEeNg~Oy99`h4^8b+$u
      z(P^0REDkf(3F|slVkgn6=fPzdHC18Elf!Vobu1#yFw_xBB$CGr>@7oH%eH8wucRP<
      zk0G}y6REct+?DETlfIYffhfSih>tvOF*qx$%{&O&#~^aX8uQ^{sDLsiJxu&VTJL3A
      zw0+#h6hkTMDx%g6Vtg&*SY{S&Z;+(n7aeN=&JTuSO(x<^x7`w|!CNs6H&#m{9yhs?
      z#_tDRePmFUYX7s5XGEv9(OqTmWcDJKC&G?EdnnY?u8PF2G_b|LO%Dw!?vqT1MjN0@
      zs;xzu?GM^Zf%3y-^(bm0>%kTL$|sBl?j?#r{t~4#%mj{czGA%czKrR2WmF`m%(;b`
      zrS~qi1CQb234w251Wz%6P0Zjq*04=^VDg3l_h=|sYYq>H9+<~Me~ev1Fp)dK1&SZx
      ixn~$BTJlOCK3msyzWia$+1jc__iy_8=nRXtYUwvAH+*{l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/IIOInputStream.class b/libjava/classpath/lib/gnu/javax/imageio/IIOInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ae0df103d729b2fbd922803d9062f78b48922be
      GIT binary patch
      literal 1477
      zcwUWC+fvg|6kVqYjcrp<K)ium6lsf6L2e4dSVx>-N1Q?W01q140~~3SPMSLSPx|1D
      zj#D4}06)rcpVLe!O&NGdvM=kbthM*~`|tN30JBMdZQbn4kp_GkMfD=PLO7jD+F
      zwk)Sw_qTnI+Z6*k!+=C&W$(1X5D_(osr=c~HPy^oGHpYzFho~{Bm6anOzM(n(gg<n
      zrCZ{0Xh@haU@~Z_bRh<YUK2ftGW6wz!{62```mkP@0U44f8H(H<$~=AnFmGPKaz4M
      z@)sE<r7>!Ya`PPh&SK~(mfad<@mD8BUiF3R)C}BgAIw&(lfZ2Z8@R(Tc`2JFu1jBf
      z#rBTrld{qUNik+(MAl=3DV0S<_zaAsBqeUUUah*G&r3?+E*+C7d2GtWBnC-wYA=_z
      zWF;djDLTAQE8EL47}T<?W-}|Bk7zmW!9k7FFQR4c9QsE@;BhKQ%)E&?rLcA^s#4)*
      zdQ;YyO+3XSDU|ix7oXF7nM2Pe4Qku1dqut><O~PSPIyL+1>>|sjcy`|l8dA$PO*V2
      z^o~)sLG_5NW`5B#{S(RWlts`-?_PCs0XmilyNs)p4K>lYhJHXrl9kk80D}SNLzNSY
      z_O-<oRh3o6VK%z~2a}7TY=~l=vKxwHIpBzAejwSvErwHFai!q};c{(!@fP0*?gmP7
      z%6E%pG|aL=xYy@68^?rFaS!)9o#~y<-gI?FcO>L&{;abH44qu>y1Js<72;YCwwI7x
      z(+#8}A+nt|bBUI@1f~NsbT31+I~42mO)A>qkp^b;5b>@e&NP87;$%Q9qsKJAh>B(@
      x(x^Ij@ur`Icl3d9AG^+E0gGK`qN#hUW-{8ql7?>`(o5&e<QZ0!m{o;;{vW6%(R}~_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPDecoder.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50b29cb530f66e87e40184f1dff0c0dbb59b4b73
      GIT binary patch
      literal 3476
      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
      NFJ1O=|Fp93=06paO^pBm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPEncoder.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPEncoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efc1a6d66928ece42af9ef4bc96946ab30557ed9
      GIT binary patch
      literal 1547
      zcwViPUr!T36vfX#p|DgyKtu%jCt9eowjiP)CXgbHg`yCMCMIsnP?ogYrrjEzd^A4$
      zXpB!j7)=ZsB8en^06&!R%(SASxIDPY*?VT@w|DN$?#|b5pT7VI<CY&)0=;RcWNulH
      zt!>lJT4`zL%w#ri&MYiNom6gJ7X0uDG%Lc)SWenZB)4SB6{wxE9owB2s16RT3ixIT
      z8>mKo05zx;Xo}m8Tr6divan($Gg6=>o=aJoRjXjDcBRwjZrVkG{<v2ilLAIsx|NoI
      z6FmBnIXffgrKO%a8j3j^xe7GoJ-dOEX!WB-VBi=T18Bo3fkqZQo6F`4vRJfpj^3-7
      z%5*w_4xABaATVQ-DLJklUH0RwK;Pe|DA#iD_RMI+KqtD@PM;H4_@6tm>PN440g*8S
      zJ?Qphz?%(^8|YW;g(JVV19rl|phAbdQC1LC=p}D7Y#^ji(+iD9nRP^=5pR^WhS4oh
      zwXrEMc&t}I*#0;C%d6loCiPqbPlNH_>7rYZR@RKEW}@WgOYXAnnLNa0rE9HQu4Tqz
      ziG_+k%y3BO`J-ROwSw)+C9A;H>Mu8<+bNlM`7Iaym=b8!=YoP02P34GbEQH`s)h3$
      z`1uo!DB9Nte(6wGH670i-u-NiG783;;XTxSps9kvyTJ&I!-wl=pbL~C#uJS7Xhc&v
      zfoLP6*xk@4G{4m|;C(sh{x0e@^@8K=@5=q#R4t`)I+TxEr|PH&R5P_ibx?CuFEzD~
      z&ilimJ#_8tqer_wx_<4>(+z5OkuIp+FkMKy%R7R8MEfgrVeLlQiy!NaaAiQ0GtJ`>
      z?qCaxaB&w;u!3h;!*ka45)bi;qi>MHM@YRd?d7#&3|IBacDZNQAb5CBaOVVW=+y~K
      KQaAN%)87G_?vxb(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPException.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad67b8904407074a938170b495a8a881f3f55263
      GIT binary patch
      literal 379
      zcwU8$%Syvg5QhJWG0|A9E$G6X;=&8|;JVU<qELtzsC0i45AjHHPRT|3TCM~aK7bD;
      z&WR$53uj=M%Qrv&+xyEafMfJSc!ZtIG~z)%%DK>m%#^kwDQ4pI^5%S=s#&eA3E>mA
      zelz3o_4l0+oM@x#5n*F5cAUti$;6~CwaJG2Q-XhH?^J{ZEO)SofY6P#QCCfosPa}O
      zxgzvqo63ADOYP>brC;Ccim)61?{Y{83sqHobz*;P5Tc1~%2Zuwr`-GbJ8(3%LF~{4
      xak5RWAx|TCoIr4J_>83|?mR?Xqjr15<Nzz&ZGKYdV6{~Vu!e4{wch^pJ^&>|Svvp#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPFileHeader.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPFileHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7f09556c9c1a34502e94a0d717a1438a1d817d6
      GIT binary patch
      literal 2715
      zcwUWFSyvln7=Avo41_7A6cB1H=|USqAhs&n(pCus8O%}%LMd80A(LckHp8SqUD~R(
      zb*on%FZ~5x=uz5QkG=QCf22O&Bn{FA4ml^^`n=2YF5mq1&+mT%IEn8RGzlEd6e_{1
      z`ZawmXy)~dVHShQd?^@;UYIm<#+0F_jIsi!K)VD5b9x~Yj3=)e%a(vUnVwxQ83H09
      zuxGqjSh4hiHK*q)h64yiZA8MnE)mlLEy;8|oer7SihwhrT?+G9BM@x@T_J5YI(9*e
      zO~$9fV-w+-B?*w1K598@7EJ5BfZrF{>gtMBHuQW@lUuD&s#pp8V02(kz!P3uHcFOB
      zw-j^<?6(O}NQ>8R6g($zWZMwbadddRm@+(Y;DCyKcwWHa8<=aw3+PjDNT7dLeyQ-{
      zFm-XA5^(tzLjzhfj*|X(v64#_PFP-f<;~h*ANHUV{nFfVBC6D@37|H!kReMCeDEt6
      zc*3qg+o5&K2vyQ)qpV^O0h(Ja>m`9+X)e+LHY&9Ys|eynf#!^1C9=gb)9dtU1Bqsw
      z64)CnT3+4Dh<MYi3Od$}{uaD~R~3v1bZk)?FQ=sG*KnFe5z%I6BjKfRY(g8033NuD
      zh1%vvRh-2+#-u2Z1O|PLklVZex{5b2#!{jCTA}8==K8nxYk@#mMGHJ~^`?qect|T^
      z7K~UWpESy|dNRi{?T8eY_1v6ZHs!u{=(MsXOSV6<i&hyGXfjzYCw5t=)Sl8Uol=V-
      z)>N{RW~v*q6d2#B`r{RAQ|nVWO^e$YyI^K9r{Eod?#37u^SH=vXB=mY0vQ=8`&_{5
      ztA$@*wW?ylEr`)pT*A8w76lIOgj4YzE>{a}-b`6pyOlI4d_{#WuUdFDWtf?)<wEs0
      z;$hk-nMQ^+vRXDRqh2Gsh=+U*9K{ODV%H)vk9mQf?LtX~W}eO*+BqhC;#T?3${PJZ
      zMHwulW<8f<nMn#gtkP|3x}xG5DBUc*s<vdWPfKhsu&&}dK4cS6z-|J<chLW_icfHZ
      z@zl#@eO<Q9z+$KsxA2*QPX&(eE>bcnpVuBUhFMwR`(Z!%PT#aVaIV<97M}C<=ScsG
      zwS|&-0%i$JR}=pP<Vh4O<z+**7W;BblMPGHaF`__KM*b);NQ)i!d(-Z;gpTewNth^
      z=U%ATQ@?K`e((SG?VJT4*$%Gv^Tf@$lMh@E*MC#9lk<}QK6=~R{%DR41|H%dh1!0^
      zo=50h=s0p8#~ueB;6!Z5v4Np|p{RY+z0h&;K3;k}^b20zz?pgfkZS|yZ+9Ye<2OwB
      zhuS@x+sU78N2WLq(`6t`qmv{tg)V65!!(W|!uL6f(}-gXGaN7CG8T9X_^U1w^_JZ%
      zOT<P=sReV05!poPQCz^=43{K2QzPo+uG6OZ$POSdE@=ifkcbUE#Dc(xlk*a1m%kH9
      zI_mFocDb_dtkUJ=P)c!g<+lG<OzM)<;098gRE{tcK$2!sbj6_IG&7OqC(y(>ypIra
      zw)^L+rt9vH6Jydfxw=YR6Q$1(o2UExa0&(H&Ph#v6uEK{$yebSN<UDmtd6nvwg)Ih
      z0}du;1J-=NMRzA;-0yB+Z9dTMc2s9Y(x{&gG729(#LXsb5;|lTj77y27SJ{BS8*I`
      z7{NL}KG$tB-m1|$nXwufcP#@=T;IkQ9D8i)4jb?G_c4B(mOPw+n<RJ3*4l0F-F2;Q
      z+<|-%1@1Q1HTkrzJJfY|8(m-4bbW=dYr2BApKL7|tDows-1gx;Ta8);)YJ%k(@=Qw
      OY2oi13V&;(?)?Y5D_t%C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageReader.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a53ab1dd3b905ef75986070e9c8735f2ddfd416
      GIT binary patch
      literal 3376
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageReaderSpi.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageReaderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edcfcda2bf4457d13bfe0d43a2c17987fa4f48d0
      GIT binary patch
      literal 3037
      zcwVhmYf}?f7=DfclHiIG(RwKw5#=U{*1I4oH;IyfgiFD;b_q*dOg8E6CSY&=5C1@?
      zGk$2}2d8z~X}|VIb^4sM+ZYp~cBaED=e+mlyzhJ7lfVA{^>+Xl@GOWu0)1Jl6yMUz
      z`cB-;>siAr#Mkr1_;_+YA;|?p-!SZS(F~$RAo{kVQ#9jmYYDWM4Qr!dr}Vrb5Sf(*
      z@tkgD<7wA6t?Y=vzKMe6xVq&o>$#E<LRcVhH?<@XEE~3C7OW67vd+gY2<*3&=ZT!|
      zIMQVZ`vrOlIi`@rd?YbKj=c?8pw*&*BXIEHZYV-dX>-%ukqY5tB007Av?%u-+qUVd
      zqoh3RUZ+$n7Hro^6Y_>`Z_tCG=aYu3Z|JT*U9j`ID<IYaOezFUSh{PLjoq}ooSbg1
      zP(3Ey7(1@5H}gVVr<*ENy-2Nk^eRL3;JZCYyU08+Jx%2`h`SY_CO!zIr<uGKZ)h}=
      zGcD5{V*~ULEDN+u6gG??&IlZ+FJcIN0*8`j#x6L8O*gt?vhlW^DElDHLJVj)fX)zx
      z=tTBM2*Y&BofO73M5K@{7FInJR~i@DEgrcuyzRLgra)R;)^Jc-T=lNZJNj?s-wu*y
      z*EMvZQ|?AI96_7h-PCZ@+uhP|%#+^HaNOHXXz2E&QyNZqySo}rdeVf3C^~sDW=+dT
      zmGbL`y{NC})LkoN^xU#;o09gKZKEoi(lVuC4)Z)<dht$b^3KBKqeN<cY4OqG>iiU~
      zYcGka$VfW^SkN$wv=GDnjd!S#v&%*MFxI=3JUF|Ut^HR|%~}7WE7i8{W0UPXF#Cbi
      zl>@0GYq*n!ld;XB%ONOm*3Ws#HFI%QTw`RQF<c0%yc}<?0ewfyY~;3_GN}&XS~rZA
      z(XB}%!^@ShiY3l~L$wv2Ti-G=?#RFz=lRr5#!!fyAiiY#C@r2NF;|rYu`Y0??rl($
      z$$K7D2yayFg^mpk26~vJyly`UBFiz=G)>cH&X`eIYR4u_*^XNRgC5xTMq@2xz?_D>
      z4A^QLj^PGT;52F)v3e@%n_g}rjj0jXV^X8<197k%w&9lboIqEG9M>;>LcN3;Rw=$)
      z{_DKg^vp;QJKjt9-u7z8HolgL`-VkoNL<4cuKG93VQpBB%0hd(P_i?Itc1YfhSpV+
      z5T`g{<O|rzA=ipFQbAIC5F*`PL+>TMuZHd*%`wgW5jm07deC3H{PhqHSM@(4%`vL@
      zNB#AfuXo&EKd#g7_VrHq>q%cPs@7IwJcS-woF?@eE%F`5!<OIByBdg`O}|8ctG6Fa
      zueL<akrDG5=OyD4GA{YrSGd0>Ug8G7QGR3mZu1-GH_30B-^|Yn*ggKARsb$R!)1cJ
      zLI79Mk82p>K872luJiv*jPY+Ax2S)ccH>B40t=YLGN!Ob&HKuu{Pi(gJ;-yWQAqED
      zkx*oB1^pGoD!3Hss32LvwLk?oDj2O`tb*Gl#w(btV7h{tS9tIS;W&!}%rHp_mg*j<
      z`}8}@1Sgr=6jMJ(<nv7B14dmyFVg74A_lR9VdA@p6@^aouu!t3a4wVY;k?RKVh=<<
      z{izzZO{uRb)5D(FH<i0JJfvLUGki|j7v!~&dZgU_NRF)F(9oaIpQAPKV(1U($#cIT
      zBUs$cbFc8YW$XvEtpvu%e8S%?FKFDwQ$%6;;Ro5WphFHkgt5+(8`Q|M!5&k~WV>uJ
      zSPlcUxUbIDDnnKw4xxyz=(U4hZ8-GWP1r7v5};kk-wBjZ_Oo!4v^-|`HMUm=U*Tze
      VF6^3IgsXwV_*MlH_)h76{||{P_9FlQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23934b7a076a5da37e624b0e9d0253f6c3765d59
      GIT binary patch
      literal 3379
      zcwV(uTT@$A6#jMy1VXr&rWdTXhe8noCAQW|ORbcfjdD|vN?U7p4x6y)$vK(i1gp=E
      zFFyL_AMnAuLyO9cv^vwy_y_zqj%)98NJ4;;q7FmOzO41FZ(a7<`_I3B{SClbSRn)$
      zI@5L`vBFpRy@bs0w2)3BmB}WCCufpsdOasykqaTn(6(KwY?~n@Y|~j(qf--m0*-ky
      zgACy%X^CrsYmL);Ym67gl#;ZUoGO%(MKMyUyDV+#ULl3<iS5$)tSt9oHY*2v<{5$`
      z#4(H-v_#N|NCOz2i=Y;DYIG=q5bD+Fa0CqqGqg-dTTB%)DUqAwDN8U!CmfSo^E@Zj
      z++Pg3%QDZ<^%T}6Dn$E`lapy_b648wnVhpK{n+m70z=Gn>{XF-^~R)d`672Y!{?R$
      zXZ)>1GC92^HaM|Mj^{qkirK6%<&q?ByGdyCGd#yLgFV$)3E?C;qXZKcx6_HFWr;Mm
      zuIAE(jIiCYd#1>`(y{B&&Ty_w)8O`^v6GZxa@%%XBP9&GU|IcPoIr<4UneEX^V>5t
      z>*gq+I?r{|9@T;AtcEc|gWNK^GY`9jiJ>;D0>W@|pNJ7fKV!sB@JuOX^1vy3)`Zlf
      zpW%3UperKEa5OF4QL)4eR%K<SD{1~uRl{(s#Gx`)W4n@gb`!N9DHVp>2a0`iTASV1
      zU8=uuvC8uyyhbNpSE&-7F7AYIk&12ae!3+WriL^a!DYP8&}c3T^R5>jhMMl4dDX7o
      zh+qg;sp_4An=QDiOO;N=bZSMIE}hB|>QEIOM&o!6OlwsSIfOBWjw<?g7^8So9mQ)5
      zBRg8~9_V|<wP!wrx1MIW)ceCoVnP|7WJvvM!}}&QjA^_R!VH74-~AWCyO^Z{pkf}|
      zx;5?YsxHB*F1?=pZ(zmty$I%Uol3&Hx*0w@Xq5ijqfw6qhIXH+vCQ*^*NB8|sH<FZ
      zOMW62smBkXqY=Zn6~PCp@M}%W$&(w+`HI$1t8G#D*ozV!6Gxqis{IdPk@|Y+0QvXV
      ztjk?dc6lvPF?f2~1#TNVpvVmq9rcj(%9wHt?{pfTVQRYJS*MUQg{lDR5Zhk~{mMSt
      z>2TN3bFKzK^+=&nP(4xfmmVnerMH`U$dFtU%@z=#Kj3h@cOA`fb|0<kC#rs8Khj13
      zN9gwmfq{ZsixH?J+=4O0Fpi^oPXpi>+5kOz9>)ou;RU?tn_1L^fLQNig!-PKX#*z~
      zqQ*K-ZL%MVR+=^S8$|aeqPV5e<DOm-J%-chB2+bc3EkRu3_T=QL#w^$^DWNPT%oo0
      zZdp6CtF;{A=V|O}Ylf#&wANa*)~am;Xq>>yzKtP2*nu+CIxYQa8Csx-7SN2D9&MqW
      z#W^4C0(}F!qJ2>o=W;ZKq2l}s&eQBwEgvA90gd+;%~aNSd>xnKYq;_d!<T~b4U8_d
      z1^d=9uF|}Lq?%D|-ll}dNi0hLv7a%eDq#(+kM%-pTd=q9%md7QrGh!I5Pg3gH#XaX
      zzu+cAsZ8R!!oH@EenS+#r84-A*1pF@k{QBJ)MeJF;_l-P9%z@&djyLvaoqO9&G8{g
      z1@y>EZWHEcoFeRiy4ie(gCu=HyL(3$0MMmeeT3mJ6;pE|D%O$SRBKQCg=Mu+S=yV#
      b{2>+6BjWr!CH)W0FXAEk{1{fW*4=*q24R#w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d29770d6e16ef68f4dfea497d985d985fdddd046
      GIT binary patch
      literal 3398
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPInfoHeader.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPInfoHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3088838a42c3ac295e90fd3041d54ffd98d2d15d
      GIT binary patch
      literal 5107
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f65103b73cf1868281ecfe3a80023bec2f3b21e
      GIT binary patch
      literal 2661
      zcwVhl&vR2%6#j1Wl9!|bN+oE3+CW9p6dMt#k|07_N&{_ENNEWX=u7gNJenUhd4Yf<
      z<1nnz8CNpSIJyv*IwMpmBMY5zMrRydxN^gqzkrqXyDzmZEv;Rc%)EQ=Ip?19-S3=x
      z?k|7e{{g^0yr-f`z@IDCLYK75T0LYGwVZC0L+Rpls87$7vwF0DUyll9RjcUGNW-uq
      z;7l84QL9c>1)5SZflall-ltD$wSqa+5Q}pHjzdPtFb@k12L@O5*>4o|0bQfp$m&M1
      z(qwtw=v?QRfYM7GZrHHF0~a<54E>K0I>%fPXz@UW(*`_&Tt4T49S)v!&?xD{wPISY
      zjB4qEF3>ty&S-@(tzyXayihUo23gp(O29?NBV=$gFR*)E_-SmcZM@_h0=8PV$TVcF
      zXadIrgHP|NniX9uhGKFVD^1tTge8b{T6Q7rirFv?MQf9jdPUD#mUQesR?q0urco|c
      zRqP}?mOVYj;tLuT9VB2?pbK_xvb)=Zm$65{!|>Ut@oy1zts8JECf#&;5JZ<ib9Ks?
      z9xYpD0>O2Au@e7^2i@4tGa3t2y74MrQ?XB=V;#hMuph4rs5#wC7}p43YhVeXeMV6)
      zReA1+8$Eba#TzW4m0AxDA}rvdlL6hx<xOTY(Ag*V9P;2TsdG{{Ze-1TGv3Bg6-UV9
      zx(@0=6uqobNw$DJkcxK3oH!=n>n+y`+0q`<FI9fajX$fITDKd19G7=(K)~DJGgQz@
      zxez@Xr5veKaYCSdS>5y*6+L72mJ8*|5KFM&Mht_}%@Fws#Q2jN<IME3jR`s}=p#m5
      zFN|oJDLtFeiqi#s-pMddNhhbtfpn6xyo^30JfSyA_e>&Ru9$8lFeZ17%kZg$4DUt~
      zDHUv2-etQ_YgJQb^BtTQ*peY7raoRVOnJi_I)Qv(`Bhm0G_qW`h-Zmvq->PTl~?ZR
      zND&nm1$L};E#0^PO&%^SkXQk0F$XJ9EsJ!np|6=nAvB;>^Oi0myKa+F64<lO%fu&u
      z#kJ*Gg-;cmnBco1t}unwj7GV<D2l8#`J^PMx;n2au;EHsl(IS}8Md_TYaEXzRhsNr
      zD>1amrk~+vNrKonEAvTi{}0C4D-z{eC8Ntu%_m~9yLZct*vYQKhXhUh^AWLTd|RxM
      zR~)i+HFI@?T7_dU*tK^Co?zQuYzlshO`l*}(DA^Xw6$)ICzZ|Wqj=KZ(jLEy)^98y
      zTln3|y<lH(uopDr2wHIzoxJB>>966HHqQgr>;?E3Q_i+wJ3YwR4kEHq+J+Y?X{XG=
      z(T`mcTT=@WON>t>pxXo&?7D}S2tkek3isYaXo#N!w+{0gxz(e1`B$z_DD@t@S82;X
      zaD^RhO14M6gOu0)z!`RS`JCV5a1*@t&#++@{$y+44Ei71dR%wV?Q?itUe&AQCwxw?
      z%bwrA8FSYgQ)R+hv^eV@d^~p3C1|L8KKI8>b<V4PI``!)V#$^kLTa^j%dcX6?cFmt
      z8CGX8oFuL`DVo7Z*g1<tlCcQTHiI)^m(S^QiSKYW?4HGiq)+v^ZDIx!UoS9SAydFH
      z^3jhL94Esua&`h8I7t?VaR71V;S?=SQ<A`0j3SLO<S~x-x%!afM_k{g%@;`FD>j(>
      z93SF5e&QYe85i*@=f7hDkD%c(cgrl^!bZveLKdGOgRGUWzo281=sNHxa*Sgmj^AK#
      zrV!1KxWt*Am}W7B0<#*W=OSe)@x@U>nVHvVIZc_1I1b`no>C=(0ID#leZ-2X;WD+4
      PiQ)?CR?S|uIJx!@E*!eq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF32.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a49e61efe66743a68e3760343056bd92a8a84452
      GIT binary patch
      literal 2692
      zcwVhlO><LK7=BK3lbeJ9r6ow9l>#D3iVae&*g(;?lm=T;NNGvSM{kqc<kEbZ+(1Cb
      z0S6au*vmNMxMHCToRL;7gBw@=05@!$Vc|H#!j&6ltk1a#ZAmG1VKQ^iInVo^_dM^{
      zIlun%(?bAn;v*Fe0&S^WIdoaOqE$jhR!iwdJ~W*zg!=VFKB@N(bRJTntf|#IJW^FG
      z3OJ_?Gpm(mO9Bm(5rNI+lHRY+XyuGKT!qDifa8dfGt3@=Q~sefZ4MY2eNfkEHoUe{
      zBsY_<DNO{%1e8AVaKna;9=NbcVEBJLAu#5GK%)mLoHi_i$M7q$tsdCnpu0mxPCr%7
      zPV2={Z91b1G!5kwT4qcu8gg9&6*Fxx6noY<bvf)|hH)k>uy0*XP}z97@(O1JY~^H@
      zxky^437qf`J-?@97IiHfipXUoS16k?3kU}+y^wa*tg423%QG{2QBPW$H0(ZJN$3UB
      z$mdEb_6Rgv`m`8{E=g3p#sI8IbV<+6=)Ug3e)t7EJU-cLJgcPkbrYV9NHakX+HpW&
      zLuuA1jOHyhqU*L|WxvCN5L)P?u@p)-+o)5;A%VT?2)qYx;cWpmrJFJ1Itgs^uLx+r
      zk=1i0`W<%T9lWdJFiU8))Prs?&@LJo)QwcyWH$YQe!1tU2R%~eq-@+sn&}OA54|eh
      zXJM?%Q4jji&l;7%7O?v#djk<C1_XS4`En+i+i$i>QJZC^EvcDWha0;wC>xF)@2$o&
      zl+kjj5G@+H6ho)t1A$$2b<=MY^@Q1%&*Y24EWwN$CowF|oML?Z5&q=H5oWq>V~j>K
      z`iN1{Gb37JR!_#XY$2o9j6`up8i_Fm(#WJ`<*YzU{qdw;E!{}YbYm3ba@#q!gnv>V
      z?ZyPotC*xubvw^!B~xbd0xq)m6AXu`j~5M7c6U`KkoMQN$qJI;df76U6{3;6kuz7f
      z+w&)dRZOk+?YWk8;}WK&ZwZ0eDq73&U&X5Kq=~A$Y#N!+pjJv-vaq~%8;qR5{&hAI
      z-vAcY))y5$MZCZS%Sc>h`br6nxNH(d))~=jH8jI}Rz5Mk#44O5c$4jXiDy(PQKjW&
      zIiXH+`UPfI<c76TtmSvte*}wHL@Zw}CUkj0^JQ4R)H~!xc8rkk2O9Y2+hNW4u2>^G
      z8}i25z}2UeDjb8s_5<_q1Y7T8bMSj?{sKFKjtB0zt!Ya%t~518<Mu6BjNV7{ca{w=
      zzuUMM2-Ese+Uh|Qjv>J7V4Jj8wTf4;9k6CT?BJPlwi7M1AZM*)WFz`2b`fbK=HR#+
      zdnLDqPBP{wnkAt-Bo}O-!#+}wV}Rfrb2vDBU=Cfkd-y$ayG!vZ_DYxCtF)#cxVs&#
      zO0rA6i;unb2hMJ1yU+O}j*+_kD{NfA?s(Jjd7Sv!*5$g3sL$bbc~!5Hp7J@pE_<bu
      z-hNV@DpS^?(OJ1s1?)AT@fqN#0oyA#qPJXvmXxm-@7+=tz3P{XpDo~Iys?dRn{6HP
      zt5{!q$2^9*)dfW34)T@IJWh8z7cd(4NhCdwv2K^o>2rx65bt&`;8NVD`rI}#5AEJk
      z60S3N;GL?XAB{Lp>;%I)$Ph*t;2|8uFb-pcX*rDnoI#BL3pk4e#!$gHKF2xSK^)(3
      z{Vnl1>ORDI{6ekYI6lHf{LT)4j4AxV`4eb(ifLg-(n|DgY?3K@mT1nB(3#R!{EZo;
      z$Z{|KLK+4W9mJow%$Y(~k1@-co!lNF!?epHx``|?l{^c`A<yENBC7&17qt%KLlh}}
      d!sogKlhUU=vy3Znk<BJtr9ZN)uUWCV{x4TOz!3ld
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB1.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bd47877e5acaf6e98dfbdd5e607c13599bb6fef
      GIT binary patch
      literal 2391
      zcwU`V-*XdH6#j0LW|PeV@?$IEhXk;ariFlLzy=DWrEQ>TOIusps<6#&lZDNulWe5$
      zz!MKX@!%6Wj*N~o=z}vl!w|KO4sVVR{2%&9h~M2{DaDqKnaSR}=X~d!@17rb|M>go
      zUjZD0qo73~UUciJtHwvhV#+QXMa!<F=E@7HKC4hMt+9dZF$KXjQQ7=x6Ic}pow8lq
      z>k-H&hSo&)+m1D888pbO4a&Lmm8YPNNr7N51E>ffqM;Qbfh|L}YYo@Sb5?c2m~$+F
      zZ9|oU;Y=D;TfRRP2ECG96F9I&pl2t{2(-+X1ll*mn_zo=@CyD+i|NM^7)T5~kFI%D
      z%P6OE@-^o!)V*<Ekm>MoDdW1=gr>6f`FX2qnLd&()$@x5Yr(TCZcRa(z;+)`kGYX$
      zje?y#`kEA%aVi9MY1oZD0#SxHM-9jFJo3%`Z@xL#v=)0SPNkaX$(@Xh@tTHxh%-j*
      zn!PYl@tp`HHymR!LMI0_9K=>8z+TR<igp}Q@P@#_4b($J0v!TM(elRan<UVdSi!!}
      zE?aJmNg?A-99Gc9&U#U+;RsR!5jq*P>|)6i2qZfCq|Gr6Z%SR5x+&ZAN>RLpw1T(U
      zFB>|jh7&l+)|HhIXidy!J91%k3&eUWb;ooMd2y+V`)=Z<;TcC%=r|=O<FtU@%xB6m
      z++vCzZMVqODLBJauPRc$?s)d7y=Xb3M&X)ejvM6#$MOrNq6g=s$1GEo$nhtA^a<=;
      z<)e@Bo6VWM;c-NJ(J##gq}gm%nyJX)qJj&gw#s(QsClv=L&yv4DDYICHC44eIlE1r
      zKq;}hwN|jqtkykavqCjmv0d-Q7JWWaM!|@{p7q8~#V{_(!;J}yzd&n6v%e(LOjBR?
      zY$r8n)Jne2zvfzOSK!bF=Ybhs_;*m_FPlFB!Dia=UyV)`?=q3&|2o^Q<_|@<RxsS=
      zHYi(++-BJd;s#Z+`&OVF-o(@_5>hKOh3nOe7;{cw_d0dsby<B{`+YA-ByWN7O1)aJ
      z<kie?!n5oAh&050-WLJLUki8qZt$t_Ek~)8E6L8T2Esr10F_UbD>!~3oJ5qncoPN<
      zn|wD4He(B&$lWX0>bu>B?Ob<I7UHVoRT)D3#W!j5INA9SvAlflO+LW>hj@MX@Ixf;
      zq=Q_J-buIWt$MH&x|t5?t$Zqa=$CMJSPurxbmTs!btSFpYUtLd*sQCHu7qxxSEPiX
      zXlE??6OJ>cdJmhHpiggmr-96GfwXoXZLzSf=@DHiU5Q0??fArPO;DhG`Q*>rktcfO
      z^C#adp=UZEqX!!}+Z|a#?=+1<fd<ZZtFcH-6+dFIJGzA7>8@BbAQ~9`emPTf*vaQ<
      zp0bCTI?EiK!!Bf*@?Ioy9!JrSGzM`77bv-icag^|=cj}bRB;K57{kY0KOyEbYVTnZ
      zUvvEy@1cQdJR(|F;49{tSzNBbV~k^hSr6fNq9@5_JC-m-s{rFapydpLWbqyCXISzi
      zy}r*~h>X6#2iz&-br&DvGQv2;^$KMXavXudol3hCJl$nRuVXI?lxbwu4igq}4c2!a
      SMdBWjQ3*D20$2UKT>A&TA#-#9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB24.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB24.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30db342f7f6eaa3c7c70a07eb6e95930711426a1
      GIT binary patch
      literal 1766
      zcwUWE-%lJ>6#gzdyE8j%ErkxcSn8Hq*#%_E54Y_?f4ER!6iV$PreY!kGwhBovzy)7
      zmTKaQee$8N#-xd{(eTiRYGNQ-qHiWO@m~_ZJ4*=0QrTqhJ@=gNob%mt&YeI1{`EHi
      zLwH|Bi@=$p-!MP1@7Norw{90*uVSvOSItRxwc@z9rt`z2Dind#^I`e9n@wa*AU5v#
      zUT{TVE<JlFdde%iGp<dCvBN=@zgF1;WfldL2`11HK|FydVgko!J>R|2SYL5#3-(Ic
      z6=<KWtlH&8yXMLBo>B=)UR~hqA&CxLaZI3Ptt4>nNW=;DUJO2P0oKI{6A4VGXa9|^
      z2Q}ATH!XRz{Awd8go?3Dh%@cGK@)1`8*6KB&2>T~L+aNzR^4jgRs6b&PJxaP&xqFi
      zzD30=0zHRP+{ft<=t|&KoDyiQf9h2iDq$Ldz9aKpj5EmT1YW}llJoX&uj35Ps_0=8
      zj!>%vUdK5Bwde)~?=uqUOdqJkq_^(+brK%a(Tj|VG~51PYXW`f7l<>+jO!Ikfj}gk
      znUp?nCNL;%8f_nVPEb;DUf|S=YOTY>u$;OP_AzZ)R%WpkZ{dQ9EC=97)k)wYE^!zs
      zI|9-4Qa)p8U=x!Ql}6d|dxMlTrNS^N#}4d49R@DTtb9yHvk7L|_KPMXdVZ1hmb|Vd
      z@HX<~Rd)kUF}o)TT1z2IIitQn?-4sFAV}`y^Quh~hh13w-z9&qIUA?{Z$!2Fs?7kh
      zjf%V!2`$MO_x4O>K4GaNZ?VClDO4J@Rad?;fwlurb5Q2t7_p6zzZOdT2yj(-vZ$4M
      zwXc6*8`@7HK<BD+2hI~XgjPzaCJYH23&W^*3C9^kN^Lk1hHXa&_mkAcxEpv`rVx*z
      zg%O_h^=~2B_cOY;keVCV!W$2+a2<G%Ri47UZ7AK!HimLhLy47QUwnfODX7cMqq7NB
      zO4%53r5!z|b}LR++r-C4Y)8w*`;+lsFv_H{Z*lA?jN9$GZH)gO$?BUJPO64(XogZ+
      zPR0#ARvKw;%JN8?wy~#+^3b-iJbzyo1S{X|{&ip5HMEDjkCM?ygh`Vs*DYL4Mt|Hd
      z(ue5eI?8%xS(XdD{zY`*604m<5BFY-V+xmX16Q$#Yxsx*=OK?eCUFnf@fEFKV;bL6
      z{(-tD#BH-Df8d?4WYuQj_KW@u6GRD~cIYuh79H54{|uYcMQ@9e!mN+z|1Mcg;Y-X?
      k7bAnuF~?O!0S@M=)5xZPn|Kd#+#%On)X7g-A-vtfKi}=CY5)KL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB4.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2723c69ddc86c8c23cd110941b715f1de7d3cf4b
      GIT binary patch
      literal 2367
      zcwU`VT~iZR7=8{3yU8ZjDlBbKYSdc8hon{;EwN|=3Q<4=3I+PXl3kLO&4x)f1-<af
      z&h*NQUbUUhIGt(7>7AYFNGlzC<5hd*b$>zsMD24n6cEbCbTip=&ig*+eV_Awoc;ap
      z$4>y9#=MF;fq34nCT|*_8cRvLXyh%sl$<RtBzvt~$+SlLGG|o;w?$<JhikyHfO5fh
      zZLeEkFfp(#`ikvX{g%NE>Fq&TcdoPwY8@8{_RxWb0K!q!LlM|NV7t~(wK!{)$BbFW
      z5;!<e${EhMQMToJRT%UNc17UWHjdU$m=>s;D+rv}6K{g;oxvOUGc2a>N1!h;@FKe6
      zl`W%~%*tifU8s7az98M|<C4arSA!-q)wwyVY?(fiCbi2;IcveQOKwF)lR$%yr^W2`
      zHI0f_dGu{5uHiHYG)Hj=hXo>ZZw?!d<$2_r{oj1Eu4ygxl$=s|kSBN2(#LC296_8u
      zD)aWjSjjgc(6(nE<6#;(7R7NKU;ym32x~ZjlPca2IKGE`M3F$NfSR|wQTsLtG$l5$
      z@3o7TTVYVhxE-fdbg;6vYNO~xQXott{g$0Ccmjb$Yp>jMI*PZXE=1jgZF+?W&LXAa
      zZPv@44jRQdoM-9EObFB`rZcVC5V{0nJ*BE+x+lH3RK<NWantaOP7OLP$j*3IK(EC!
      z=@@Q4NsG3dXXsR1WT-bKX|U>e_OQKVIm1S7-ZDpx;(}xO3DeMx_oT%PLzT$#kv4h-
      zS~l6}rT<!SW^Q?G(H>lp+xq0T>5SZ_A&YA&u9DiOy(31&lL;BXpg?1er}C_cvhB&<
      zt?2{`iOr?8fn|ELZk^2r)o{sny{#qsqNlWq>jH;&YC8=>xFHWWA~3pz)`nu=#nV(x
      zU-fJ!*>6+|zRthq>TFlw<R1Hh5nlMWQRBPypMYR7HU3wjQ^mVXWcgp@U9~vNJo3&A
      zRdNOavO|Kh$jEM*#UO62svKUxTrN>wDKc_9rHL4GR^ZSM>7wWIYRZr75<fQoXsKGx
      zS@K5ar(pdS@01&Hl-EQ6@~PvDp9{WKuCkO$x!Ts=v5e4<K0xDJ;|O-0g7b)Q7O%k&
      z#XjGRikGmTM&#^e9PrH^L<7f0$`p<|UXd=upIk*Ld)C(e2(dx=ZfW}oM<3z!p;M30
      zb}tp=@aDZ#z0P0o&P?!jO3@YN&R5v4E9#7#nh#K~D=Af1^kCuFP*+F~2F+CX0eW<m
      zORYVo{em;}souxF73h-(-&scbw?HcL08O!w9?`?PQkaQpdgRR5-H4z-`S$r=cf-&1
      z@Hfw&te|@`K<`0y8JD`kE9jZzCaw#CWnAvkV&Rx3enx*+WCcT$9kED2EMxfLTCk?j
      z#CMtpy})2~GYl8ej7yAqFFJ6U7eF5yI*a#l71Owe0#{{r&JwQUbB<q7_cd<dK1T2z
      z#~(0;$3#EHgdhAb8EOV_E%?tcN(9RTe-JfJ77chp><3IzGnO$)MnQUiNN-cjb_c%4
      zhny*7at|MIrjo&D_!yrcM4$bbp)5@FIT(~_sG<e4ltsuTfgDU~A2XpA=BRy29(kT3
      LLJqbcg`58Xp9XJ$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB8.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRGB8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..280e069e117a2089e095d2b6e3ceef8068911149
      GIT binary patch
      literal 2347
      zcwU`VU2_v<6n@_3W0NI_ZP{x0kN{%S7Kn%zY-)ifv|Z>&Xlk+454PEDvas27l8qE+
      z^okj;#2d%a8D|`B<jNVHVH&jz4tI_h{15+x^?5h7Eyb3OnaRHIo^#%Fp7We@-u?6M
      z-yQ)tg&PW51QJEJp1NUtY%HeivQf0`N@}jWkjh$xifK&_51v&J+|p`rEY~!w3WWP@
      z*Y*Yk#*(93S`XQdHDVb&klxxzcjqgsMqSea!3+ba2p}3m2w{Oeqqb{}*UNKOb;_7?
      zEP=MsO2KfZjjAo*SA{{ZWY+|aY!PTZ!?Zxld`aNgj&Rf1-rjfve$rz4aRi2wqfcAc
      zysBlCQ@VWB-G#cB_XX)L-!5g`@|vcp!TS8XRkcjtk}lPYiv?@Jvny^*L5D!QZ%>c<
      z#F|FI%S?Ssh--E#1op+S9|r_>F}#^G9Lw{FSO4F5b=R~OGZm*&9b@KBTE=)KhC@g&
      zM(w7(FjeuL2z2i_#&ncUj>K>jtt7x+V_3y8bSijF;OGwO5knGP0!q>H^7bbL(2?AL
      zK5LgPw?<NkxCbW`9A{@etBv6#QUXyr8L{kQ$rA`9yR!1ksTkgnx(IbwZPP35!kg$-
      z@D}@JM~TL824~s2vJwKJ<m_OV9zmZ#JX5JVrrYTyq$=UNNtlLboK&HqUrxq50$P*L
      zlw-KX6g}E*k<=+TC(yI0NO|fUD`ziSPR=OYw9LFwUT`eGVk!o3LAo4dDoI_}XLac%
      zD{yd=mn;!9+jH=?$05yNNS+%e$HcDlm<k=26<i{?O=l;KnkP##iZOw`1?J^hSF5%s
      zr?;sSC?z*H*9MsB&AN3o8&tW9?Rw8P>C=(Y3MK>&Y&Uo+#&Ja^Hz|;R2G)jle@>)p
      zO?}<7oz#d?EBQMAqHD2TfzBOH1Q}lVcT^M4n?M1<cG~-2txgqhGokZ;i`A|b49ewb
      z1Z8&-)GV7o++I~Vym|S$NO`SH!nUgpZOl1={o7QD*JE|H(ubZy8>c>BsaFe@yo&h^
      zSiinc%7Zw}`yl}NYvGRH2|g9R>6A*j(%o~sfymFkfy$@K6&$xP&SDpLiKZE1*zLPf
      z@B;SGiQK)2R^M$K+PUtfEX-BIOEQFbf~fD|Nq5f@;$!l8u=@cHFX7ek6HDm6+Z*Ka
      z`rY1;77Bm%E%s<3<+|LO_d!u_SPN;v(!)rfq6LFyZ{$8QT9~iVo_O?EoMxc#_t?D*
      zZKmz*2GYL=de!^rh%1_^MYK@qdOWJBr>E|yf`ZV!mA~#pR<y`>E02~jFcXlzgAdi2
      zKr2=z8aUq<Sw?1thh@w_0~h<E@kl%>e!)nex{UFe<8d`08p!>$#?&=*@R?@L{mgTK
      z9Gt^GoG0ZOa+k#g4B--nk;4c+AmK$^Mww&%Dc8@b`w|oQirQ~*1^2lB0h4GTkH>h|
      z=j|?;CVOklKcQ}lY=`j&EvAX09m}|i_gJBQcz_uq3NreSnB^`+3}54Y?!rX!1rdD6
      vstgm$N0dbv_YAI67R3!5gh81~1WC-HKy8CHG+|Nun9=8nU4E@fe(v@^eHd%?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRLE4.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRLE4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1fd12dde785cdda169052376d0fb40fe14ebc085
      GIT binary patch
      literal 3651
      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
      Z=MgvgFTLFJijUck>=|*rY}fcJ{{t%mdJO;o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRLE8.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeRLE8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3395c9dc94054a3b1e5d39e556f5f779c93034ca
      GIT binary patch
      literal 3241
      zcwU`WTW=d>8h*a`F!scyG%ze~dT_g>I7w44Etqc17V5-p+$N2wLxM>tnb?zf8hgf!
      z$8ADOIkiQwTCP^RtG!wEVpWL?R3y}}8^qxjegZ<;i@oA<wGt8+h36YLiJOu(B2wl%
      zz2Eyj@ADo$e|_uUp96RT?<!~$h|O7z#995EzK}4h`kZ0fiJ59GF=!O+l5u)Cb6A0Y
      zL#gygt|{mU1T*=8qq&TLNDFKku&uhQTkg1CX&64*gMcqHI_!PZazh9N1~bEBN9BS*
      zg3p+i=^hani4SjR?U-3Hh76qsQyU9qty%lFQ1`fie}Dj0_|Or-1K29Cb=b6wQ;q73
      z;f(1s6+@t7*e>doaosWH`u3*ZEt_?Ly&D)>V<;uiHd_|x+7xaIoA(xO!B1LBo*jYX
      z@!>nA>#k$y)kIb<vsSI)=Dm$nw<nj-&$~_0M7l9MYdA*9lcY*Dvrsf@uE`K7*e&po
      zCr^#p(bW?Ld+7Rx5Le|?#`U)mJccfTcA78c^orrS#GC!qc(Yc?SQxM?wlhM{D=BH?
      z@d)DRrj7c%SsSxGB?3L0wlN;2lHLgRV><~jR~c4u0KZd^pck8nM}%c_P(Yb8+`Rc3
      z0X!0KK|g3#4XaL4i1<k)6+Fevy8ASOr*T*yOeI5xIahXB6Y=grd8a>ulspUZY{D$L
      zW$F4KA~=F)iMnAG?P|?2>deZ%cs9FP-zU=wj?(*eH0Mogu43fO1*4MFi}OY)uUBgo
      z!{c1Va~P22GDt8qm7UCXk1IGPuydW3LEY7x36@@TS!Njw$$MF{6rW6Ic}>Mhj3{8~
      zYwPZw*6Xe$^%O=09xf8CYfLz%E9<X$CQy#APmdOusr6@TXj+bPwrRO{r`esBQVO0I
      z*m1AYQISJlIyWYezYA7N!rsTyOU?6!YgQ6NdcEwOd9A9=w3zCfj4K(gtrT1Ael^6l
      zTq4K6l&m~rKN5_XIM1$EB85aU$u8bjuac5`@lTo3j6ml-;=mT>+>Yh$`w-KPIhYD$
      zcia>O5uC+5A<MqQ*M#}joehDQcV!&Mc4Bg$Ngi7%8>1AH-W^b}3$_eojX8NckQLpU
      zOHeK4Q!-~AxC&Tk54M~x5+#i`aE|4xJC43sv}=p2ZKx?VI&;=2x~c3hY_S+ZSP<Bj
      zwa)1kvlQd&v4SWDTfqf^_}aCj(t;Pr(S|!Zo3<NPslM8I*)@t)x-F<sEXqJE$PZ`1
      zieb&UWKosyRu(>|!8^j_cHV9{MMJ(xd<@s#u>;aH_Q;o-PqH7|5kQbDMLy67aUEW_
      zR$JEXTt`~gTc}0I2bbRmxs&Bu>Q#Dr_b*}F$DYtb{Hh$mo*2YoJj_|FDFzLX$lnc|
      z{RWRxiJV1gq>b}V?BKYQdqIx7c!ws$ZUR)fH{a8H6MIMGcVEvZ=(&l$Q++pa=!2x6
      z!|y*x270uB=I>p?GyTD3JXi3^rT;Uv;M<0uMwgK8SC)|}M1yj_>|4U|{!mnjhQy~h
      z(H~w$uCPBE_K78&zOm{?k{$yC1T;u4j&bie!48qn6MS_}^5q!DQy5_{KS`-m7{e&e
      z;CavG*(U5&m*?>U#_47d1}5;LXW>N@@Di!n&O4KsVtl0LmpKbi|FhKf3grj*Oin{5
      zRb!-W21Ul{43U+nDNH?lNm_`DkvbCB_CDo_UOXB2EY$Ds+)?Hb@Fj!3q;g#-eNq3v
      zFx!T}Kd@yPy9ynZC0JiX{k}tg$8yx~KlGu*tfToSgDLfI=l{NF;0D!PR>XCDxv?6O
      zekmD}n!H(93u>Y1WKdJI@H7$N%IcA-smXSYU;m|PxggF+Uo_(B)zmu`M|{zM7VO-i
      zDJ6fYJgv2VidU(*otm%X;F?`uGJGAK(LhtMv#bR#2gS5BId(ZLw6GSs_S1iPQRysC
      zlbUO{{ztDSmJus-oL|D?7xcITr$skjLtezav6&HnK^MQ{jL!rsqd=)CM)+mM?F@Pu
      zrGw-w#|Y&an{nnqf$eV!CdzDU4s+llD!7U&{saquhK;|Xj%#r7Pn^d`Si~o^^c61P
      z8@!HhaS7jX{14v1_qdGz;|hMnRk0OUL=;nEAKoLf_eBr>=w;mBSeK0VO2%;}Gf8+e
      znO$w(OlF}E0g)h<SD0}T5%=;ez@O1wv^K>o>JWQrdx{x!k!AS?XCb2AhBrA26Ynv+
      l#hFUfX}rx@J8>VvJJb>($}aCTgdeb%sO1eo<T8t{{tPV48;Ae^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB1.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..645a36027a3d45ad11ad1a03e368e70dc1b3880b
      GIT binary patch
      literal 2105
      zcwUWE?N3`(82=sma{F?DO;)6CbJM-GWl-^@Dok``3_8m|KyX8+x9x3vS=(E0ZwGNv
      zzs!9!@tZL*nTZMU+ZG2zUCfe2Ka9V{f5G`Xw@{>x*e1Q_InVh$&-pzs=Xw11ufGEr
      zf~KHD;CP`@k1uOCwAHv#)(W~|#xvz=e7ur1bNcK=a!7%DUsQ5xrUA4B0!AfoPU@Po
      zIhEemAk~D8&?s+|^frtxHeodKn)!T9w*|x{Zq6AM!yXlwinL|k7P07pfP0K_1>i!r
      ziXaXMxFXR7KLnmpp};4lLn=J*deHbKq^eJa9|3{xv{BJ7*UK5*n%6QVon~n>tCbcs
      z%aHqRrQ0qVHGvoRVYOQYhTV}b@?-Gh)g8US?MQmBQO&k=tsGCu?R4F)*6le*Gtz=9
      z>$aBDY%QKjO;2shtr#9Te*UAE>!M}Y`iy4LwM<rEd^M|AZNse86r2#~ktT5oo^GD_
      zaSCS?oEA9IMh#R%5EW1|#-fq48MH`A2mLC}O1&>*OzK9VXe$^LIP6@ft=J8J@fl-P
      zFHKllhUpLBCA_R)NTB!W@u_$PuL>L}==Q8$;njN1(X;C#(R7RFJ%|wn34tRmkYqid
      zZ$bhXz#FoG-XzP&uD6DLioYfPqYDx@qT(FhVloS4?u1Zty6$QaZ{xgzcLYwiS8f$a
      zj0t#FWR<u^mXh*{aZD(<xKo{yRw=}r)lo4io4mVf85Mfbve)M=ElXoz3bfs30$q)>
      zou(2v*-q<`qtVED-+o<4NLBWmz_I^nNIt8Y@tKVKhE}S}5SH06mbo%!)+=^HOtFls
      z0%}RC*|W{9H)Ggkt;%P%lw#_wLPm;7eyRn5qpi*G?>3VUbcOIx`YFkklWxweTUlLB
      zB4&B_VGl|;Uf}3(afZ0ymLr9dTMij#<viiqK|~NLzn$FWh?Mx=*e1GS{p&awJG+ja
      z*dc`0@$5YZAC~8k)9F0DB<W`iUATY{``|fhk2gHvFpfC$s~1Okqj03>$wA(DjHnK>
      zlRP-4<lW*g^68>x%l*JNtj6x6=RQt0mRQl9OL*J~U&ynq&n5gJe<IL=dJq^6{)T}o
      z0~?4x#A`0s-t%y9N3n_5hdaZa8yH@6C6qNxhJzvhV8R<#T_Nv5Jo)0A`Tnr_3r0H-
      z@@?DPL0B>f>}9Y9?=7FW<rlXU5mG{)AD(QkA<%Gs;U0tQ$3r|~Y8r`Kc2cy&^nHjv
      ze8ePO!x?-`R0gBSBE=HSLg#6oyDW+*paKInuHz=kxD69uql)if;d|8Z6Ho491wUgI
      z8^k>#>JNO5$N18@>05Nmls1d8#Tza;#n{5TNRyS6rf}IQ+7_lU!;<vT-+PFX<xR4h
      zrR2q@T<0h$^mP~Wlze3VBi^UvC;vNGpcEkfD=gvzHkAi|;tH;^xr&T<i7|DOn}<<f
      Mqa+x$Y^P8D0U@spoB#j-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB16.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB16.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21fa35b83829a8ced689aaf04542729b18192d1f
      GIT binary patch
      literal 2126
      zcwUWEOK%%h6#j1f7<)W<lypK&TiVi>?KCmrVIV0fb($tFP7{*g&>Bj|_Sn9yJvQTU
      zV_H<Ph`L9xV8H@b0U;q3HI0BO0*Mt1qzV?~&k)X?NlaoAVN0HS&bi-tpL>4$`^R+v
      z!_XvjFdQ!!_2^CQw$_O9vR2S}C7LN$qZ3B9lGEoV<HIotZiZuf!{XDk4$@?hxsk6-
      z>6*=)O75$WXu?KGDbGuK8%md&FjDeX^7)!>F|f<ToZ|+!#u%nUZK<~vSUAPt9;duy
      zxX`U2fF1@{D4g<x;VA_Ye1bZtzyq%b&MziJ{R;e$8M>3)(67|X8QomaG9{hVl9jAh
      zN@*q+{Fcyd6?u)}#6D5&XanWlkuTDR)5ojZ7Yz49$=zBt%ha`UG$GiTx>c=P^R{HP
      z1y|NBEvH#pG?AE@-lAJEbY<K5k6fIKCb#ri%_P&JTJl6At5+>vF=`S{F!TzQr~uD2
      zZ~QogGZIcyzHKx?K?q?6DZ>|e&Z4AQLKqlOa8}5D89t@+LeY{i#Bj)Vr!85Iz341&
      z=%q<h%TWDgJdYP73^VlYou7gi@e)H%LAT~~gIw!5TTWvi3MX4E??Q}9h%p>)fyC?i
      zd=nyL5U+{}dX1tC{cFw9PtY$-|8Pp+MirdH>r~7FMQ*21v&ZgQ0OxT*!W#^y+iSOi
      zIK~+~OQK73hSG82Vgi#AE^T+Gq#1>1vpWi=#FTeeO>U4CEqiOh)Uu?^DhzFp8AF$I
      zw>?x0C)*i4ijg}t@853<2~rjF#&Gn129n-Yjo%S@-_}ZXk-|+H7_+i8Ua1?FLnf$=
      z4F;v8)vUQD>&<YhtX1imr4v+ovyc&FoIce8!;#iu*g0n6fi4kTP3}=#vFhe4bu+7r
      zRYbG4<7E#CJdV@yaM2cV!7Y{wQEstj?2|SMogIV-K%s9ZaXCT?d|zY@U6FxR9EhA<
      zMQ`LF)KxtFz{Ur~J;Z*xKvv>pXB=I)2$crm8Im4zEZ`6h+Z(J8N5~_ysb?t$;qfS;
      zIw(332g7s1H`}Cmx=6C&dF&feA`j8~5GS1@Qgr8H9(T;AdbZ@bm|ykB<QCLpc_i=?
      z2Coi2LiA_6>~ihC4+gdcYj|a(GuZhEBa5z>w1QMHp!$bm-k{=Ay$7&)?~{d~;#R#q
      zzB>*#5LAA^SO-+!mW3}76!FNr<5_`s*~gasY*}Keq<X&E{ALBR<LcrAN_7Cg;|UeY
      zDWgF}0@75>chQgch`Ww6c%M)ij3J8zHDnGt-R6nQqKE?Na9Fs7yC~y6ai5`zFYp1r
      zMh)N6%^K=hM+3j$L;OnEC-?||;2!?M$98)@N4F?)vppN+<+9zL4ZMjYMJA|eT(R4@
      zff>wFllsZtTL@F6cL_5`l$U(oz&ueB*;>Z}Q9g?Pd%R7QpK|yPDWYV`<Wnr-9U3za
      e{=`*Wqj4)zWNFH)lVbBw=GTd0l(`tN8~*^wffF_W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB24.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB24.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa42a1303948c8e6d23186a9fe1d5b61cc1b0692
      GIT binary patch
      literal 2144
      zcwUWEOK%%h6#lMXV~-~<(g`tbX-i+W)5NqC14&7#(=>5$nvjHqHZ5grkDc4vGwyiY
      zgcemSqVADcAhDrrBC)H~q$)(H8#bsC5^JQYEXcp0oI8`4#3aI&JolV)zjN++eE0tP
      z_m4jVI0;RHhv87ss3mS_x3$FtFKb1en~7|>k{C8}W?r8hNu4?^!N+iLXIN@%!bMsP
      zGB*n5sIEE6(af$6={jtHoC>_8H{o=l4kM?4StwL>n}J;<<qS8tJ;*Q?ZOXl=#9}iH
      zz9Fhhh8JxL!f0pkMq@J}FubBbLQqJ16!;PF!~G?Nsart^GDBO28~UYMIjdXKTDGK<
      zTgJ?3r5VlQLf<g@?0H^gIJ`?%TgE_jdkXXP;q(dU&IZH%XlA=t)wXo4oJb3Gyk=Kw
      z_LO58Xuy?qTgz*<mPn_^$2R0f3~f1a{$m&Gti^48LbE8e=$1UZnA0mZH;t-<!wj9m
      zB_Y7$^_>uo;<$ukRBsbQP!L6oLCW%3p0}xJmKFhe6r2$DV3v>Syf|-5=wsOH9H%YV
      zZoI?<U(`z@mX@Xd%Xkx~B%EaE+POXjZ{ajUdr`M1b%T!9^NyWpAB|-iB5y+sNJuj5
      zYk;I`g+d)7qZjWA2E9jFM*ofG`lsnPNB`K2zzrxkgZHVKMatYMq3Y1?N*HHxPQnKa
      z$C?|rf)s`r{0m}Av_|Jr;)r34NVu>$oswo06ZPpR7!@pUt61EiC|d63w58?9nVAet
      z(~P0j-P<G;!;xmFM>%r0=iR%pkRTPoH--cMLrA(;Rend*eOoKlL<u*DFqXM6WY!GZ
      z71K1vMFyp$Rqe^T8pv|HtX1fm&84aJRxvBY6n!d1hW(9X*h({TK^F+FW_D<<c<QFi
      znw8VVQ$$?ba<lsc9*5}h@X{;dg-<*xB>BWM<E-?e(CQ&X7z%w`NXrva;Jf0F(Hier
      zK}Y<=3OeI^pswK6hYmg>_95P<a}*^-afZ-}^H7NhuaWhj8v%Q<&w0VRu%Aw3j`TX^
      zAWl3$C=X>P@?dyFobBnLd|Jt}9#{+ZEAdC@e1s$J5})_wlYU<^sQNeT`D929CFKUx
      zn%p1$3B8wlSCM#%x4qu&`;qXb;W6InZ;7<5qJP$#l$Mc?gw;@AG7wR`YM=uz?|n5L
      zQG9BkJ$PqR^OM%Tq4h+RCm8fV4Q|By4iS-^ygj>R1eStqDa4i}rb?>+!OL%#A-e~k
      ze@KP*;14{fwz*BUoQBO&Yp<dk*QkM?;yA7oDvLqnkf!lWLZ{sVX*tZJ2m>58ZsIP=
      zxKG;GF!4Pq_yM=DiYlJa?k}j}85Z#yKF9Bbe~vHk0{8G2zH|om4cbK8>jPV-lP)>~
      zTgQjUP<BEZ!zE|1>lnubjjfyFeS{cgdly$IuNaN?7G*F+l0>ndVVa~MRqzxalN6#l
      r)-XeoOw~NVEIuLP`SB+%lfOdMEKu!Ni3%^sdW~vtp&YI|l>6)-#e*0(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe373030d4fa4230b747aa5df7a5f8879bf583f4
      GIT binary patch
      literal 2162
      zcwUWEOKcle6g@Bgj6ai4NgZO^(w6k&Buz{y7)VM0r}?-zO-MpQo0c-R$Ii6=F&-x&
      z1uCS_9SbBDEP+jyP^oG8REPx<QWtF4RYGEoRFwtUQqCJECNYVyCC|I}zH{%ppYz_m
      zzrXtdz)5Hd8Uzk!^5yUqZ9!WK8#yhb8-;KpR}2s3lZBK%ITAhfi~^^?p`BsTv55-O
      z6!01ObYWE2Y~^TtSBF>?)=#Ijk=5&P8m_|V<SwMsCEXGbXQ`Yv@`g1aFczxIy{^PM
      zX9S#stjh-nnpODGBH##h&Uhj4m<k0RDeYC^g4>14FCtCtD!lLsG{=p+ey*HL=;pMR
      z$m(>97m`|bMl%hmZy24{yipS9*d?niV_@A4>3Mz(e%!jfA#fuU-|khiOkK-`V^SS2
      zTg9?9Wn21da5>%5QktcOW3lnE4Y?M>Ej!MC>~fto4NITUOoo=-@(nE|^`d1I@+Acw
      z0<F>|EWzW|9WRdJxPoJ>w~isG2%%FzNf@(6%3{$XCIfV<I3ewxgfXfcnR!b=ufRV0
      zIBn6Y#0yUtOL}(1)DrB!4^M+EJ}J<)bA2jK;aP!}jBZWpc^<8&Y&&Tm>WtS!-iGK`
      z5E0m41BsT?=_<sB9=sqK^dhqi{Tr>~ALDP1|IQhS>sN6aFR_^!W^R{IvT1k0kC*YP
      zf>#8N)i-VxQ49*W7Uh(<hUTL3h#`z97~Y&tR?BC?)#<1hl`L;Anns>cwB*%kQ%llW
      z6a?y~nLtxzZ<AC4N9v&-b2KVFZ{LlDgcK#;1P=ZWA$hM##<Hw?LCcn930FuMv#>Z=
      zDCez;7~>e11k|invL>slJ7HKkt;lOO7h~(qOhSrLeu^1^1GQw>N;7#u7YPr<cWADB
      z>ZS^1GpWm`h+NxpvwI~ThxvFo_=-5-l#dD}r+jAYl`jg{1|s}W`E8_@B2wbpy6&K<
      zt9uQ5x=yU2wQDZ|Yk2&ojStFw$oDDAD1(f122CVE0K<5K)<cyD*oXc03)Y4MJW<%v
      zlgvS$c#x<DW+(FycuJn#(7}9~Xjxb8divC^TWGz7BbB9V-kFNHoDomJwP8<1ya8{-
      zSA)9i>+^q)p7TAo5&jX+IUL*fgZ@p!9X#LH7;L<azF9{^S%n$&2fV!zcTjZ%+<Wlo
      zgHNV|sx#nj@hop@E@~}R%}uR+L+cKz-(sKv0nbMC&k>Zl`nKn~3ipafta!zWA_7Xl
      z^~Ix)SK+Iqapor5(2YOvfQ_uQc!6yL=Gf?qXvZbC^DP|5Wug)oKoT(yYZ5wl)6|lf
      zM+SKquy7UEki!jXpQ3;-QN-7H2j9TNPu%?(W&FzM_wg=%!!mxS&jY-Vhq#Wv@S#1z
      z&(JIfQ61qrPdjUma2>B9&J3kAhI96)*D;O>4ziu`UPmW0zQ$}ODY<#>dzhl6FxGuc
      zQ}VEiU+@McFKfAn8A?7@^c80DCaLJcpE!>Tq~tt4V*M9Mj)$~fV*QQG;j&G_xBmf4
      CH6C67
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB4.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb279534f204809c5fe3333ebd081a9a4c19ee87
      GIT binary patch
      literal 2105
      zcwUWETW=dh6#gc@tS_6SC3T2tOAEc(P7_lo29gq}(=>5$nvjHqHc(jGYkO1QSg)Ii
      z3V3Pzh{PL0LMjqc#9J$xL_mcqRq)XK7XAX|o881ArV+N}oik^?bLKmjIZyun^>+Yg
      zpeg7OI9jMQ;!D~MZ6$7$wSsO`<C$_TK32(AbNbA9@~i^)o~Y#Hv;#B+0!AfYozOLV
      zb0WQ`L8=KGrcvG~>1`NYY{F>dt>*J}-4YO&xH)H33~NMSGSZfLTg0OC0`5`96@Uxf
      zDuUQ2;EF`&{SbIgg#w?H4yf?J>w)u2NL8N-KLP^XX``ZFZj>{+Ij3bxI?dA6tX7)W
      zOhfLsly0kN)CFGNgVjzI7<Na#$dAE~SGV;7cOvQCMs>^7wQ@Wqw^I$P*05%6&2S5@
      ztXo=6v$S|BH8r^<w_<o?`}vPvt_!AN>C>7?*D_gwv6ZY|vy5t`uHcwJk2Hx(@Kp1}
      zj}thh;H1E@Hfo?Ef~bI!F&2!R#h^t>I_Ot%TIzinV?s9yMN7e;z(M;uZP{}C#ixxG
      zy)<rW8KysgSMaKWGXlNOj!(sFI4iKPpj$I~g;(o2ThFeKMAI#vcOixqBm@q%K$4Ao
      zz6l9n0B_0$dW$S0JKh}o6n~5SN9QGOSj9QK&14qH+zz2`ciq(>-obeV?+To3uiPq<
      z7!~j=%PMh=EGFd@V;EO(al1Mttx||LtD|B<HhFi=G%EC>Wv|bfT9(G5D$sVD33NGU
      z+f5~Kyq(q~N5jc^-(FovNKN*ez>)uHNIt8&@wtrqhE{6G5SG|5W_5YA+NfBLm|_`M
      z1k{pNw`Q7KZ^p37T8+<aF~!uIg^U!F{L~5phg+NB-)$xz=rZA<^fQtxC*5qdVP<tX
      ziJ0Y`hdn6ac!{IK#Tnv)TaFY;ZaHM^mGgva2N6N2{C0AeBU0jfV;ks-^{-)n?DQIX
      zVh0df!}IrTd{~}CPN(zqlBAzebm0O*?1LAmJ?ePCK^(H@S1%6pMqx`Yl7qbQ2vHqm
      zCwXv8$-Bj0<kLmXru(69NR2%}&jTEHmRQl9OL*J~U&yni&n5gJe<IL=dKefA{)T}o
      z1M7%C!s{;A?(=YPTd{#RhC0KY>lj*aC6rZ6go7dfV8R<#T_Nv&JpJ;Ux&E;F3r0E+
      z@@?7NMOZQj>}IeE?=7FW<rlXU5mG{)AD(WkBH%c`aG$~T;}IS+HBRD|>=Z3BeIKC@
      zA2UhUa0;IgmB9$INU;Pn(0Q8YE{h@xsK9`Q>$r(B?x2dVQNwpI@jdGJi6{54jGwWB
      zb>bcq^#{Jd6MSXg^ewt&N}I*l<PDeXVr=3)q{&K3lelabZ4*<NW=Z<!?|nqc@+Mi$
      zQ1aq4uCtUB`nrcXN<K3G5g$<UlmA`JQwk7&8w>c5P36I#xPq%}t|B8|WK5mp=3&&=
      MC<#U_+v(GP099HHr2qf`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB8.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c0ca4964733e672f62158ad4ad33f80c52dd57a
      GIT binary patch
      literal 2105
      zcwUWE?N3`(82=sma@*SrY_cMCo15;fErU8=>V%1|j6r7^SP<OM>1li09@gGlZ*PHY
      zW}k2$P5fp|OlD$2{I<mbQ5Umh(GTNq@n3L0=UymMM{JYc^E}V_J@3zXp8oyo?*Pt$
      zE9hW2UNRbqMZUyW5~9jWx-b*DYArEl<jsPf9Z#KC;N2IMnw)ll7K18`qB)^+hdGtm
      zS0UYm4U<w)RP;8KE;nJM<Ts1Ox^6SDE5uw7hOkE%CZlbsw-s1yj=?)hd8zQATSEv3
      z7(CI~To4Q|XiyN4)FBN%_<eAHNh#{n5QNImoe_q9wNcIK)-2CebW+Qhd0v_0mXQ3m
      z&})}Po#EAeqT1~OrQK01(?`(9uRC&vyV1;ErMhkDyqZW$cB*058upAM8E(N<b(<Hs
      z%@gVL)Z{kZilHmV&VS_coVSFnPjib*%VMcxD|x+U3)848IKj{(RT2_B)w~Jf6wW9(
      z&2XZP9%zUn#-QZHyeQa|G)qeZ{Tj|nc_1eybWtkX3I-VtJMQ?h?b=IBixs^xZt)zI
      zU&U*9UBNkq-sk71;SIdWaG<2yS=}Jldcl#?)JJ2P7R!4O!wQlNM_M4MMzPq0s2IR`
      zIY94Fl+j&lu6~++3-pi8N!+l83wW1`S)$0D6za~@T@T?sTvYHr!|C?gts#X`2H&#m
      z5}nb7lyotMaRrxmx>MmsDbehXh6y?3-8D-XWQFH%&RRTA%FJYFd(0TR+`FBjVmR5(
      z=uwQqt$E*mQ%I1SoHvGJ|1*&Etm@*H%zKGf8Zw1N8W_u59yJ?=?UHF~;|haT;dMLP
      zWc@i|S9y(|*+QC1Z<TVAOwp%SVmR754F4W8`9PNm9?m?cxN_6Ym<=nh%S}X8-hJ4E
      z5{_4Bb$Dopc;J;Qg($CFGR{f+gw75^grL#4lehvQCB8SliLQA6Iu6FquA?V@2;p_S
      z_`tzO<UQnex=2=1WM>pzxP&mx!Am4P?pnZM9C7wnFOHH&=1?zF4ASE<LUmAdG7ef(
      z(l`5y;^`vEmiJL$NQ*y2&qJJak9gTzNcz0VK-jk}FC>HEU{Y;CJyM54zhU6ozy=bJ
      z@s`K4_dXKZ5p3e^q0UI>28QN6No5Takx)1|nDj?9PuPDD&+dFP+aJ+>!AJ+ffo+|8
      zh{y=ky%DUzzZzhxLAI)}uoCwD@N9Dps%!kx14^zRkMV>`;}&kwDbWIz?-TUlQ!3I8
      zoWW;=%3%a~q^Sj2=yY2oE{`%wFd$&#CT^pOyTpAB6W`$rd=Cphp^p1l!p~U72H~FI
      z7XHAOc#1oYr*F|MOWJJ47J0bhG-C@NAVX0}Y7$qSrfp#g)6|kaviBik6y<G-Dod1~
      z{ADpiltQ-dW0t4@MgAi`A}UDn-@_bHD&fDvJU*tO^5IWh!*v?2GG)9#IdxKOKFazA
      LQH-*d<MjDIlGF^R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRLE4.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRLE4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfe8f87be2fd8e919e85ffb6ea6452a9540c67ec
      GIT binary patch
      literal 4023
      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
      ZCv2Qo<jF~{`NRb_5L+Uz<93lh_FvNd+yejr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRLE8.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRLE8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..78d8bea4b8ec27a3a04482ca5d4ca42b6807f693
      GIT binary patch
      literal 3631
      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
      E0h*tDCjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/gif/GIFFile$GIFException.class b/libjava/classpath/lib/gnu/javax/imageio/gif/GIFFile$GIFException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea01c2127808adf601accd51716af8b668522ec6
      GIT binary patch
      literal 464
      zcwUW9O-sW-5PcKV#Kvf~wY_-|JZO~$&y`+^l|t}R>3tj5xRP!pAJV_&N$}u7Z~iE8
      zHZAoah&wR5Z}z=6GoN3tZvf8GabXd<u`YuL@gx?3nu}PfG>Fw*a5Wx{R3eY~zFb7|
      zu~4aYVG~-08ze%<!TN*XTqv!I0ik^y{tzZbrgYptnG)<_dMiC_pzfmvhtLR>me=Kc
      zCbJtcOC+HgrjbadB2xyhigt0Ya>7~o|1tXncP{gsS;q9&I0SE!mRTf?lHjjAdWOhw
      zthLOBiO6%AyVxfj{MmYGux^e+5N~M?aqy~~T}A^~9Dvh3eZl54zbts1JyW&bQL{d<
      e#kjL%!N+#x;$R02_OP&9Y4*^pRK~r9HtOF#X>RZU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/gif/GIFFile.class b/libjava/classpath/lib/gnu/javax/imageio/gif/GIFFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..535f2062232ea434d1ad9c04a113da35288d719f
      GIT binary patch
      literal 8669
      zcwU8A3w&Hvng5?Ncjn$qZra<HDWsX9!>go|w1I}CEo}o$nzn&7sY#le7PgsWCdriP
      zOqfg{ty-#EK(s7YRG<QFcm)-e3Q2$>4_zJt;sX(1i0-PWsOv7eJ{F1pbMKu=nx<^~
      zo1E`FzH`3wegE%q?hEfe_5^_Q#X=oYAk>>0tk@a7Dmqk=*cI)KC(;$YiJpoL4eQq@
      zl5riHfTgA@lF?LeMRV8Acz0GnPYu*2)7@7H$nCWP1@-T5t8Z#;Xl@b^4FW}V>C`|r
      zn##6ElY?;&k2^!a+t^&Uwo!G;1^jLGEt?ve*0wdbsF76ybMkxasB7M|slKUAO}r~G
      zcXDDwU2{`gOS8Sn-vk1aGix_*ZfvMq+eTVVPEhJCP3v0LZr#z`Uf;5{rJ=1}jSGQd
      zcf6&(m50~ws9jrk>4uhOj;aOJ$f?s7Y;LJ<Z)o1qs-``>-w=Phd7Y~hv234!uP>hH
      z?W0Z#dz0y|XmYDFY&yM-?xfz;+mMRI6>qIlUtKzx&J0jf&a%zXWIUUVQwx33ferSM
      zy<$_epB&q`9ko4WnLm-r#xu!icRVIAn>=lqXlkH8nu({nDVuLF70X1grV_IG@vM8k
      zFB2UgufVMC^sfF)d|)6RTNlkn1&r8WCYnv8Q=E%&#I~@@rE~EvZbEZ3PQsxzn@Oa4
      zX}qFLd{;D)Vy8Bd<+TdC2Q%tSr)MMv8q?{1C95|{f<v>TDZ))1wmuWx6(7j&JD5!*
      zE7}RNbcXvHtGkojHd`a$DP7zypw*>g@d5~}HsOVj8#N|U@utCDUGYp?v@01`8!1(_
      zM>7f4cL#l|-EB@Qb<QEq8&ds)SzaL?-L*>X?XMr|j`u5>26WU3%*!uq&d=zm7l^#4
      z&z#LRzupfIHkh~wE0xd<CYHfa)TJgW9cq(_3$Vyfs@cS5yw6r<G}fBvO+~YVnfS>?
      z-e#axV17gDs%SD13-j3UK#psvAM3D19n6abN>8-e;&wmYk8L_Sre1V%dlTDn8TGAX
      zq1j5e*Dh`_@Gk=4y7XW&mO3{ZR#RaIzu{PXpgWW3r`33JEw-qeMNKSp?$~W2>`-wN
      zXW&dl^_n=#8B3Tr2a6PSg^9D_Gq8)7KK__)<qhFo(f*}M?6i`u-^N6P(p<*G04{bl
      zS3i`Erv_|W4bq#Z-@JA(k&MMN2IwAD`L*FL1@?h(DxD4Yq?5_?)$v%kYj-#rwjFQE
      z{lcYwWU)p4*<<1Z_#nX*?eCALsHR|P!{QTE?H;(wz+U?DV#T;mF@9KJ$xMbh=?04P
      zUrp@CwRDVZ+L;tMrSwFWRZ1(@oA{{GN<lImjWsBs>iAeLoKNvHKW@MVrT!aDRAaef
      zy-6YG69Owr8{ZS_t7b%Ig96tL_@s%O@hMs<8jDQ>p_4}lVInNsm!SJE{C^H&rb#d`
      z1!g>uyTt4e=Iu#Fd%2tFR`<EXM5zO;!zRwd`HC7gQ3ZoGbAqCQdrrXGR3{R+&%}tW
      zMKx!K7B%`g6Q5V3W-Q*#h}2@oR09tPEU3?9h!QpKgjbp)Y~RS<?n@@VjFpU#v3Nd)
      ztMQ{IzM{tc{n73#HYbMSNd}>Z1xhECwl<TA?zZD`^I*2Qr#8(fKah_!>T+WyLXJ;8
      zV&Zg%ddx(*3Y6YdmmQ3K{rz3LRSxkmW>Zsi1DRqv5Igxx@W-TX^v1Jp9xEW3OJaV~
      zO}WfP-`l44f8NAmEMgGhWZSfCqvl^UQKl5GnCo&$q>!C;Znja2zGY%53_reuS9E;$
      zxRRrFH&x4U^gX;vX`)I8-RXWNxyTHFYM5cDLB)2FGVlYU?08F0_wA)hmLHiYaa8vc
      z6G4aisflxy63vv2fXVC~&$dLb&ZlLqbg?Rjl=^Ic6F5^vg!e|afnPF;H>Z-j!|7Dq
      zfl4@$3ioi*kB3yKxdFd6@f-Y>3Wz7;N`-5)%A<~pHtv0C>4cNB3mxfPN%WLW45;1y
      z%fug5{L}^#du;UmkBPVOCrYl=;#330C&@b7YjynZ@fNZ}j)A`tTq{;ot=w_GAAiQ*
      zRS5Y%24JR+nbMC^>px6H6gJGB!Bn@xg39g`D>2a2sw;hqs|cKIIvY*a60_8}x63Iz
      z3%U}Fi#<K@4EGT}6HDMzlwqPm0Z9nIDGG(jds7Qe8KO~N4Z4^`>~7!A%sE??1PNu$
      zSiF^rpvIiq$gOz_x|8u}#t}(pe0M0LJHK4(c1BY1p{z6Mk0tDTL^A}a;2EBDQl-xr
      zeY8(yQ>JRJYE2Jjy5q|Fyt|8orAkNaHl$MVOkFa{x@^Fi&AT{LCwF8SdKMO_>W9<<
      z=rA~1plVn6*)N>ZH`y<m(x1it>?wVV{W(+mbJ?FarGE<hfhqm@?4LTNe;WJ6Q~C?|
      zqwm;s&}~C*d%D{$blb4ovK+A6v)umK_PwMk3GDV<w_ob^7rSl5U0>$5<?gyAZoAYS
      zuW(z&f4g1g_AA}?0(ZYEx6cg7R^4(1R`O;SvX_Jg^>3Y3__)#Gv6|XCG^@U?!)vv*
      zb@;5-whrB@YwIwqwQU`i&)Uqtx|+8PYZ?C*SWEfWZ=Kin5LO+vPg%pivus<g#Kk<R
      zj_23dGkm1baV{pcmb8y;ElW8{A*<M<9O9zLIMzozqu8kaT%!IomOX-|Lnu0ibsckC
      z#?khqr9W<LDk~quR!cvuCTct8UOtW;Pe#hM$~l<WYZ*i39-G=Xiq1&6FF)$djdqpm
      zl{JxaqjD6nh!(Q+y;|qcD0(8HIoP-NHt5<2G@jlUc^G}SArfKR<Li6e7{$&q(mQ#&
      zGnA7csU#>HLu$<kiXvs>xYF(ftuqc!ydAX44<oFua17awxmS&2C^&}Qb3ZhOYsT;q
      zbt}bkoy)T72(+V-W4NJX93LOWfe|d=VF!*ubVSO6<M_8R9Nd~;JMpU#7+Wdt)}wsn
      z%@@^TC2H+<4b|%y<d6-8N2uhx3Fv!hpwH1AjuF<66P8aBdQTBHPjl_p(TaaZ0?%L<
      zo@H6~9QNUP9K?&b72hQ1%NWJC$njmSdWEyE;w5}vWjDNrAL4cV2!F><FoD;FhBt&C
      zKNE%cg_w^wMKOLO${6X-BfS#8r*wZ5H4M%Q92d~(X?}bfpHXNebqmiEl&cT7*-+U<
      zIS<jHJUsUU_$)yz`JbiSiEt7X+)csymKop_DSH^53Knd;2n5ykD9f|mN$aY%PZ^%=
      z?W4F|wReu<PSrNL{6|J{L|M6<RwfQpH6h!|p%bkfnr>yXTsP?_?TkUdU#FSn9Y&ge
      zFlxNZ2rz+4p*|uAKHDTN6&^l}G;9|>K3EKNivskKP6-oPQG|nHHa;UPTcr_41v!<H
      zx{H*sDWzO#Q%aE@p3Uc(t4NJ&YVFuC&Kb38hvj?R;Kh~4`Eq!_+s3=6(%NtYC1qNr
      z)o=v!%Dk1<`XeYT^Ho|a4#VqtpiHl{RvzXE+vRG7QE5fFhibd*71{%Nbwn8EAxhvC
      zLCh8*6pMv8UxZmao<S9y#p|EVtDl3*#UlHP^BwW*>wq@jW@Cj_pL!jfhzlawxlpNc
      zwtLl|`$sTqs~uXtV4H_Fr}GmwU*zw>quk3&nTlAeI1-+zLa8{P5>}x|EXOP&`82T_
      z3yJ2lh~{&N+)2qw^U5!E@hnv-?1Wya(iM}7n5P1X_b>vgRS`|KmUWmhKwE7YYwY18
      z@OxM5j4hTkdjz_^+N<V9gIa8FP3RCzyOSKTHy90ehGM~FwHDCW8)xLY(Cex8jo?;K
      zwLXINo@!$R7ZiH~zJS&j(1Xd&%PP6>QN<eYailX~bXHnMiN>}sHgs^`!M6Q|2pGZP
      ziI=#(vsw@6_BpZPiBWscs@!f`rxrVIH`P!aZdzFq3h1#uXFFX4^w99ci~D^d;8Ri#
      zPsAg|-cdX{=^=ZWRUsM(g-ftNG$JTAQQ1vY^kys;@555jisfPpA<|BWbYPv>hWCl>
      zgvmC-<T854<@Amn^o~yK5m6ixUAUL+{p=s*_}4@?o)<CvPQ+Oy#_$)>&GP1QmRG%E
      zuIRIk*<-_Uo@>k?{=&eiDuadi6T_zpMC%w5ziNBZ<ru>gq%;PuFEC8{2%sx4%<yWE
      zzLH+{G$|cd69Qi&WiZgLa>oRNZ@-(DE7&Su^(x&>dWb?dMA{b1bQZW`3C6{ln8&9x
      zUp*u9Gcz*xOlQ7kM&`xL6elu2H=X(V8JWK^<H;{fXTE7h=9h5o49s^vIF0$18JWL1
      z<H;{iKl$(s%u+pd9cJ-yr+C2+m8o23YxJz~)QsRP<pe=hFpP%!EW>t$NAT^S?GS7B
      zdqhaBxAacmp5ck_D~@v}IV>a8r+1!&$7i#=s#wmRWYI%?-ji{7x&8;!)_X&J+R4^y
      zYJH^aIB#rW-3&1TQ{2zc$6O`8Kreg%=aIfxd<pg9L3-U$#7GZ_hcF~Yag!KhPI?G;
      zi$~~nkKsvi49}8&MSPX-)+cP`ZY27tKv%gYE%T(U{8=nJzHfV&#VYq{+rw&E?K;#T
      zD`AJaH&03RNn?5@V+_z#fq@sTf_&{*kjrGRowRoR;f%H8k5%268`X28qmgn;&ktL^
      z-1vC8Ww6u?Sr<<!D{ptp%r&{vvsy*zzC$R81T<BQ1T?4Ed|jF8b&9J7jw>}Mjk2B(
      z9f)U`lb&VPe2$^=c~ppR&=@Z;48BN1yhKBM6CV{X;}hcB41wRlu=p-U#48Me-@{Yl
      zRlFcxo2<jA^jzM0(al?4dbm@E4Y59S>aasJ$s2a46Zjc^?z++%*OgROW995;vvUM0
      zRlGjkE8m#nSo88;`5*XCcdLY(uFoksM9+MXTO4>!so<fGxxX04uT-`^P@=`g@a9tx
      zlbg@CYsojEiC^=f{Tt@#-{Ms9)|9+_PX2!9;4M3p3;ZsBgQ>yb(djb(dB#Zc`+Ov+
      z=jz<`4?K$^W!D2^_(SK^I>&w<iGM&B?_!Ram_ZFvef2%Df?*(Y9>;Il)xWA>{<|so
      zdHX8(DSv<CZvwDS`RTM@Ie(wxtK!ccOXmJ%9Did`JA!*6OIX7N_j>n?;vLHRj&_$_
      zV!Y$K2S!9wgIu8P)sE!B`&?v+gYHqh5Lx2QVSb60gZ#@Q*rZi!o@(z1=6?mN0^Z6c
      z{2hkRQ?2dyih!4cPYh4I8PINHh}2Y7y~Hx}8(BrUomgdird7*QhgTXXlm%EJO{|wi
      zXpk1R$hp`l=i!6$6kIO@xI@mz5m|z}We}f}A&kk>@hItM<U+h4&%n3jnRrv4jo-?}
      zw)$%vwdR5GRv!4jVjZp`P$5CCT)@LxeFK%eh`_&(HGqmcUe3SGYG8WYDdUWKdtd3k
      z<u-Y0l;Nti5R0UmfTpUlvSKg&duzFBoL8MH+U}TmgUSl!%eF=30iOaoQKlE`9+p~K
      zvHk?3w%vA8ud0Y*VEe=H#B0UgN!Z%aL7oRgo)5pQge9vHkjqgbSKv&!5{u=9sF161
      zfvmxDc@b92i%~0Uu}Ripn_P!3_EU1bt)$EBk0Dp)m2{=6Bm)UPP?ke|rs?G~MFnCD
      zQ9E>Ne9WA}XNxL?R-=lK7e!q}FMHZ9i8di%&+6p<{E4C46C^#0s=UuZybbwL;pJOS
      z=$;xaIHa_tbyj=T6FrxHnY4l&^F;!_aZ$ih)ytkS$AbQhD3TWzc&hy)C@(Gu_?LMC
      z{&t(tq|<tH13s-i;MY2DuJ#916zdtD_)cy=6&XTIlw7AT^Hd#d3+UDU{9$^4-m=sd
      zz&ZFm*+%e1_Kjs)z<+bQO?e$Ts+^wB5vGcgv~z3YE}UkMd+c4f%Go54AGBEmh7!BF
      zko`h3SDOJ-i&YnmAZ!Z}DC)Flln^$dRaF=6FPaDx-9GX2P{8c0QN_N`GVj9dfT0C^
      zL&NY9VpHzO7t8F(!-AI*UOKZG5j4xBvp%anO35ZVYcpoa&6p=!h`UxSkZlOdc4F@R
      z#9RmQwvBk}L!;b@7Ma9$xeMJgg``X)%d!13g9CDa4xPoY9HcYv!GrRH7?mHwF?kKX
      zF8ASk^27MCycWNd*Wqn>z0l;xM4>z&isg+WEDwsM@{?kj{IsZ+w}^}6tzx4*Bs%10
      zMHlIv@(z)fcZ!TWB0eIA#kKNoaihFf9FZg9UU|Qb`&%(vAu#`S;=WvP5W`}&9UKDU
      zAfMd|_Y1@UF~`PzSX?LO+QH!hkrDH3w67LB#VK~NUn^oFU_SsF#Wpct%%X2KqY6)p
      zQ|U#+!YfYWoL^LPR6WuQ`LbLu)F(+()H81>?<s;*UxMA#^L3u2KD%un!7^o(NC&O6
      zP3xqi*zuHx-#D~}qqrovPkjy{wb3#<N3pR)&D}lm5}Ql3k|91QopmL9a_dTBTo#;6
      zVT)8KkY9#J9z{rg1?S3#u#Ei+<tXaq7@FlcI^-i$zC>)#hmGy-`zgeD?tI9p$9%EC
      XrX-*L+*kzp{0Gzr{B;oGbQJs(O=m!C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/gif/GIFImageReader.class b/libjava/classpath/lib/gnu/javax/imageio/gif/GIFImageReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28bc2583ca9c16d0eda4ee8e6b1915889e68e755
      GIT binary patch
      literal 5068
      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
      J9qI3{{s)DXgv<Z{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/gif/GIFImageReaderSpi.class b/libjava/classpath/lib/gnu/javax/imageio/gif/GIFImageReaderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5db948a7d980b8112ff70587e9bab6fbab1087c4
      GIT binary patch
      literal 3106
      zcwVhmS#uLd5dIb)lEvC!afHht%;f`1;F!|~hYyf#$$*R#n~-EJjm5%hB~~kANXVTZ
      z5#Cd&O7W10Dx3<H>nW-Hs8qh0-3VEh1F1@>M$<jr)ARK)J^SZhKmH8hB)$w_lZIni
      zyA-=?EE_8^GiPLlnU7`7rP!7DL|n2rgpm<Ws$d4ts3Edeu~;x;Yqd0lmW7?kJ4qua
      zG=!(+hL~m8*;vYTOglTMp>;HG7hS`4=M1YPf@smua3y(DLtt4rMKf;)p>yd(^rVI@
      zj<P&z8O5SB8N?P1hY2~VkVJhXQ9_Qcg{+~;=7yq%ZMW*72o_6AOXiAHXi3Bq<FgM7
      zl5Tt8n67dq>FqvTEENiQ$1SD^Ib%2(S`bDqAzUM4xW+`@$r-K&ZJ~idg@*mM;hM{$
      zo|YGrLmMkp+@u+?;yT7gR*37+h6)ucQmYodicl^14i8ctnFpqGLwObA4h3if8-&ui
      zk-Qpja42n=w&{+r0J^&8G&GLpGa`T^8n)IZF^FT#*JwUhC>4dXEFvs`7G|JZ$5yll
      z(aYVkFyvaFj<8&dG25zUWRVBK3ft_lD}BD^n>x0kT~eoXZ1<=$I(DI1Qs;E+_NYM}
      zdpzl|j=dgrK}Uxty`*EmM~&(@;7P}IM9|Kfo;GcfEaeu3Gixkb>YC)!hBaq6rsVy_
      z<{=e`04BNRrSB?Q0ZeN+QgazqDR}oWZWl_fR~rE&c?HydDpd(WXuvfcS8-j_`nuL%
      zk@YKe?$PTl{kxL#sNS}P|7vODrT@{Cs!I2c$!hJMe$D2|e$$o}?wBa19kbxF$7wj~
      z$Gqg4R!kLu80@asshTY%taQ`r4YZp!>@kt%Em67Eu%kMcGmCdc+8yj(U}GL%Negv0
      z%jccynwY6b0(h4f_2u@sWr?g|U2?LeoUq-BUJ&nV*ryJR<kb-o!m#shWKl%yl4V6h
      zxQ#_wUFjM`l_&;4mm=!}7?01asnQIx(#{<XJ)WIcmOPDzkicCX_h2zuIm5ZfsVgqm
      zZ4?5?vt4bNx(U+~I_`r{NUMB)Qf8L@ujCN!F5i>2H;Lhu=easc=;XWOh@xO3noKVt
      z;r01oQXSzg8$`FsWG(EdYgWVdGzr(QqqurC(}WSLm*Se(R2AT003Ug;<|}J8gva<q
      zhWk_Ymv!M@_uQ+?(89(p?4l~_P%2+?(n5w%!_Ia0K)u>H$Yv;C%XW6vCNz@^klTbH
      z`A`+VnS5&%-$tIDo%Al*&DFfkpSSz-4(zPxzd@dTTdnW*=RLmOUVq+Kqu=4{?f2&c
      zzFtJlO~iN*o!oJV+_z|yZ$6TZKjH9vL-=Uw8M=JBhxG9#kB+A18^b5K(62qi0LN*L
      zvmEC+hB!tzE^=Jv82esfnc)9rdJCL^j<ZB?j+oB#+(8^A-HjpiVT7M?7jOy}xpE1^
      z80G&M#`%lWLW0sO%9{Kzxmv;fHKV3+zR(j6hBuedRmSl$`onF+8z<f=i8qldW1yjo
      z(`B43<9r!IWJb!kSjOct##S*?3v`m<nPQTr$t4Ij$xzMk&}%q?>*&G_^df~QW)Z_p
      z^ka^|-=b@8(~WrrRQF&}Go>KUQqO~YhO=~oLH@3CY_n3ot+wv;#Qs)E&Cxi&%V>U{
      zvIVX+lDnnM{Xx0R-DL0YXnld(^WpbaVf@nj8>XH>=ahJYriQ1I{|ez3$jtZtim6pB
      zCBH$CWFpzOHS`>2-w((Q_dQ2(-_r`Je!2mqX+OhYEU_Z9tg<@{h{ZtUFn~O>b)RlJ
      z%vF(jDJc&I7(N-qe>|APG9D1|82wyP{+%T1hj_&QbF4;>((nO3^n)}^UPhti1s>1$
      atm5O^P(7*&RZHcd7JQ}-((t*`|Ke{N2Mx*q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/DCT.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/DCT.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2108bde0dcbae8c13e523237ebeee2cbbc12b912
      GIT binary patch
      literal 4527
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/HuffmanTable.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/HuffmanTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa94d71675d24dfed5651d3ce8d16c80cba2f699
      GIT binary patch
      literal 3234
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGComponent.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca2e690e050249825c2b431e23fa58a4b246d17e
      GIT binary patch
      literal 5425
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f834155317a816e1450193d8dfae1d29adb9e02d
      GIT binary patch
      literal 9405
      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%0A~KSv)6Kx#TK$1|F}==k&T~udQ-zcazuc@$4CR
      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
      A1poj5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ae6fd9a3fe21aaac0a9f7bd13ce5fa9dcfcdca5
      GIT binary patch
      literal 384
      zcwUW;%SyvQ6o&s3W1_KIE$G6XAmRlay3kFf8>vzWDpb0k#$lY2%#>WDujNW`;RE<k
      z;z<;txN!~~&gDD*{2!lh?*O{!gzyOa+E!vJpXFSbOloDEn9h_IH}`|<!8}p3(l{H!
      zC+sd#!{OcUo)BCZYsx-h`!KFKkxHw@sLYMky`wR~zjTi(!V*?nSVll-$HuDLDx0YM
      zK~7Rd=)^9O=~(8b?tg}U`D6;hLHr+|JwlkNqTqck_s0k!8o4S@)Rk#ITsS_haqNNE
      zWc`SPopKJj>%-#!g5#4{th{jLA>tf0(=#T|vBuTTH-#3~8<hYXXg6A$&CS*qlQLTK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGFrame.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55349a9d9295ea37b45557bc8761c8e2c7a63359
      GIT binary patch
      literal 2241
      zcwUuM+fv(B6kWoy9UKAXUIL*&DYe}Y=SrK9(qeIs!4#+)KQtL(E4HXDQCaSVhyFmH
      z@*jQaOd&JvOh2F>)#*A%MmCf}c+fd}@3YR@*Q3Ax`QtAD_fd$VL%~GZZln*4?~NbR
      zR?R4zmXkg>G|TCY?d8=K*Ql9Ms0!i&k**qcIi1@-FpHjo9)WnJ=d!t-SF1aV1qDh*
      zL6`2>b<eQ9yiskKAv#hNbhklwRx`p%&+#^ELEqP1VGo@p);9~!g_$9A9=c}Hs#}gt
      zx#(0Kchf1EBriI(L&r94Pj?zN0}KCPmAneW*;Np!m{z$$V=O?`6-;I?NqV<v*z>&k
      z%(5+SK|v^y%qviJI*TEMQ4Pa*uM-MxYv@5lNbhTi`_iO_USIk^Lm&Eu^r40U^hfa#
      zfmisAVFsh(PD;ZdhFFWNWt&@#+P>-T8T(bH+n05UMm2A^me89<)vH*{YwEJRWHXtV
      zW|T_$X)%~*B9qA^^TP834QV`75EZ73$oghbwe=<Twr<o8tLBPP^c<J&`oC+i(bkdS
      zu_-bVfg18rYmRFjIksn1eY}DJ{~&L=o>gp_wYuqTw_2+vq-V8cc!qx{3M0x;7l*sz
      zuvb_mS$*4d#hH)PTT{_1)w6@qTmG+&-R0EAiC$~GeqA&CJm~6WB9lE^$-`=+Y}xfz
      zMcZ%8UkmKldqu-4*66)GuFOxOh)GuAvStSG`4~2kjpDh2>36|v*u)l}0~21<o6~bI
      zaqZwYu&v?CQ>LX;rf9%9do4=d3^-IVa|&kOEqw;C>onY=xnhaS-NB^a6<0CIw<P`_
      zF^nLL2(_sA`QQfi&Nf|~-)z%0>RoMmHzhuH@jDYwUGBZjozGnE1I?Wem%Dhy{84Zn
      zp;l!S3inj%EpDaaH;yruiX3A+6*|U*Sf<1>o%$0qg||o?Bl(;3`!UyX8N(B({Ab7T
      zfN?yeugA2{BZ+6Y!&A*?$1Lv37}B`c^!$s=8yFpn9=(}U$KpLdznKfCen)b2P#p~4
      zKEeH#t6LJf$Th?Cb-Gz%5<2b6(#?WT)pR4IN3uvldQ7Q9N^_J#{08v}SCvfN_>@wZ
      z$R~K(3~YgDfsdp{S&dc<F=<^VdPDjg@=<}$2-6lm6{h~#MO@S8xwgoa`(Lhp$+d7X
      z*VK8gU2^SR!S(sYIgX#_dO@zj6*+!!G1tU-u5ZZo@(Qj+cGc%fOC1n%F!5_Z<+pOb
      zZKA@#MClv_|8j%qF!y0OL?>8&s*b34POv_r&YmFGimZ>l2P%xv;-fiWWZz2aNB;F7
      e!r@?whOxs6cSvcEQiylE@D=i8Qt-88e(^8)w5+rM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4dc722d41a95fe0580639ccae43ef9a3b66beccc
      GIT binary patch
      literal 1776
      zcwUuNO>Y}j6g|(L#ECQcs7p&zJ0%SbwI@lZDTJ@sDRr6@2Pdgi6bT}rj{TfYW6uP8
      z3@MB5kPt#3V3n@A07WVv5{RT~k?5X3!ImW(wuJMZr%p-{3by2T?|b*1d+xb+#=rh`
      z{}%w`Sd1VfFtX}4?CXX13LCalEv!n%v#+nqReSF8%%z;#$hqqc|B7Feg=z$bK<d%p
      zx<0Z08JerER|G<iD{wl0pc|6{?bSkUP1XcNmQLDn9e+x|N*)j(wIpCndnFk~7~Lj1
      z(IXH}rj|M(&}X6z?E<}d$CV3>>WZwrURbF}fmq%v7Ai}Hnxp(+)9|l3b%C+`|B#0j
      z7+gy_X-*(Ivr&}mzT>&|2>JyMD;%2$xy9B=l+@xT5*QFL>(b9U{$jaIgILL2YN-oP
      z;ba7Z0>cLq!Nd_96^JC4v$<R<r>>t;dqc!475oBwvaH1Qf+T`G!xhOkb*wikmFx{)
      zYWmp-#suvDsD57eYSwGGrAMl<O`OFD@stz_PpN;-L<AjCjG|k$`NoRQ6Rpdl=a!mI
      z=c@GQgZ@YKUB_2=FPV5*HL|OCO%~UtD_&ie6lB^&21(vqc_^8RK5xRph_Wu2$YNUH
      z5OJH@T=wdYVyO$9Q!z6pW^swq)TLZgiqEMT>U8D%51Y_acHGi}+-OmY>KQGa-6)r-
      z-kYpb(RbXk$FnP5qgIr&j+&tUe;biAN=%$&>M)<d5WgHss1N1Qzf2EBt&85QjsT+8
      zU6|I$HhO>1w+`{QM<b+RV2U@+BS!CNGa85SgvN|&bkbBq!Luj1XV5#Q(KFl;TzjqX
      z4vt$tq4yq62z=X05!G-P2{NPM&1QH2uRw<$1AUve!8O(b9Z3w_!_&rNxUUg6uW_yB
      zjTY?~hVhKf6~k#Hb#x3VT4CC3Z;-W}>oJa$%DX{Z2{L5u;7mFmx{ZEiWfGg{vl81F
      z{~4oi+{LpG;(I(!P;OwEJl-OwcUaj~a#$f|5rZgeZi7wKfLj{|@EjY(*9Z|NXekMw
      zC!=P=Y%Mn9Soru}qISLc?miLQS|YyC>dgLfK4XMRJi#JfB-o^JwJ&lr%{iFLD0dS_
      zEFQfQl{>hY=<A4=KKMLi#kVn;FmCQ89@0bgA@%);1M@MHeuCrp6sMSA6kqU9;LCkg
      zP6VWSsQRl^n{O;43<p)_TDtFbdoxho4yVJJX2+H2@muIlgl_NtX{5Jy|Dc8Tt=-=f
      zx6l#h#&3x|g6F6Q@D;tU3A@EfzQgq2kkoff^*!H<Kk{kWCgB|tx{onD*hkn72#2^o
      R$ARJ#Op^J4@Vq`*_#46SON9Uc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageReader.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..748767500ec85c36ab2de3242975580cb34331a7
      GIT binary patch
      literal 2704
      zcwUWGZBrXn6n<_<*$|fUS}H}`P+l4+C8e!cr9ycLu;nF45QO^DCAox!up2j<7Su25
      z==k>0FZvt&U>zkhGGq0N&iJDo&%L{ZB~a)vz`f_5^E}Tv_ne#j``_<>0O*IUAi&U-
      zF$=Lx{jt6iGq&{%H>}uZj%Q*I=Hru^Ff4FA&B-^&&~ntzcg&!qdCHQjj+s*+$6c>M
      zhRS<}X*fd+oza=2&iS0-$4=&q!R{r7;21@QQGsd|3PM$=L9K%G40R$rmetKnEV-L^
      z__m5V)H76A1&85+M2`{fylt3H(y_U|Js3hGLxW6mc4RWX5FZ(jFSNC_g>eBF6*Mz6
      zo)D(uCA3hkIbq701nz40$Q?3gq}JLQ!{l>??KN&M>T6j}Tr*Zm&o1e<A@-gz=xi8y
      zhUjS(^HqYX)@a#A#xQk<nC5Nku^~%-_3R2VRAsm`#f{7c6(tzex;2Jyd?&?oj$xU3
      z1s%SewM6M83~CY;*AOND)CNy&X=a-5xEM>~v`58t^fIV!3%I4C@<+Rus_3{+#W_@l
      zaTB)`^pn`L+e1YJw<UrQDZM;WMus{{L}oY39X+i(I>R;6QdWa)?=Yrmi33NfLd`+&
      z;%<&p?Jpig#tM#+jcE?Ib;lB=R>_mDP&(&Dx~oD>wVusdPm)}>QyU~_m7$*e+?)^f
      zbVXlKPKbh+jkL2N>NBe1zQ{XBU}=Wos8$A2y3={xrY81;>rWilBQ{!CU*|SYOTR$@
      zIiX?_Q!bCRGDM<h#4()934Dgjr}HbAVQ4=b0C`7=f|FPuwF+iB@9Uvy%!#R`E~%D1
      z<Q7b{$6G2EkR(pS%!zqz@J&==ZIh=Q;(42%iLw@#0IniUM7oFymKm=2BxSQaqi2(j
      z?(mYF5LPHR85J=tC!(8?a-6;}mhezWZVBN%>bW^9A_YcV;ywi*FkC7tk8f;3pf;!;
      zkB=qh#<jW0NPh^aBZgaIbhwHHdPB$@Il3)w&Jg6AG+oD@$CERscPE7G5u7^$$5dg7
      zx>vf>N%NGn3U-Q57~%zLDtlu31Q*&!S_OSbF#4t0rN7k(ibt0$RkVA60Q~^xd#)D|
      z{sn47!ycNRk|lsk!Y-o+DE2jarSGDZcFk@CUdAhcTwTT$!lQ;Hz5uS0El9g|$uR3N
      z)c3R&(b-c(ch9f5v4_}CWh6sHGE5=&eI)fIl6u_1tCD1Zq?D5kdnAe^VLz9k!_quS
      z&{IBGr39;#VDIAfW3U6X68-@nVx_F*oDVHfLJO48-oW7V(SnDmyJ(BgLA!@HCEAco
      z@F-fZJUL0*Ly4xkryd%kvcCA;jFjJvP6b?}kklD>GlubFB+F!}IDsU7sM{qmh-8yO
      zwj@c!4LU|5R+`th^ik%co0fE%ms3sa52)V9^hy!4&&nIxrhq(^$noV<Q=+Qzr~+c7
      zkLB}-5QK~_N@M;nEdGd^eJrgsyi>&LGhzG3GrTJdhs@2C9<W0#xr-)zM9d$f6QB4l
      ztIJam5TC*xZzcV2$NQ4`d#M7L5Oey7=2R5&Zv>x;{hHVpkrwN9vEIkc6(Q$OEEcix
      z8*Ye`EiY;h+lR_}NE7fWJqn+p7N661t}p28(U+v=D|Fy%YTR$A1;0fc-}%%|lv*n%
      Hkv{w%YDFoP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aaa0460dd50ee83f69a4980a4042b4afb18da4bf
      GIT binary patch
      literal 3652
      zcwVhmX>$}s7=DILvPXshOSsfPxU&h#5=5?qK*#|bl1<2lgn)v>W>_cg&aN}FYw!dW
      z@V-wxKWSM-mAX`cN@?jQtNc-xPxp+=l57H0`Jt!Z?)T`Y-=p98`=4Kb2hfgh{8*$Q
      zk}~trX|15mM2(D=(v56%I;W?i10#KhV`5`e*QRtUku&_LQqXv(sGT#ScS<P;6?Ahd
      zYsIyUt{^-p6ryR(OhprpWtgcB1&e#KrtN5^Gp?ocdH_KMzQgh33j77#vW=`6fXc1y
      zZS4w{SkiJ&TC;6oGJqutwh(liMAGIVX%nE^W`R~vZBoTnu>4dd905Cj?wm0r1cF1c
      zp}w*6IYHMwZ5fWdOx)GpWao3atmW7Vf}YZ>DO%9A%#iMAQ<|goXRVCpC{RxN=vXLN
      zYif>B&?`x~UfDRmK<T11qt7^&HlG#Z+BmO3$%>Ggjb3_aHuwe?QU#t1X2ZPvGQ<rM
      z&^$H>Wy5^@a=bz7b}qFH-gA12cy=b!hG{rmOrEC5xPq#l?3C`uRs~CEhd+P_`NB+)
      z5o=Mg6w3l=Wy;7@3Lr{0NmA`Dr3=A_RfL7$Bg}INNWu}E-71y~&R(~s7EI5H{}N0n
      zcBrVwGC}QEu^KgkI-p{WOLePwz~%O+c+jQ#R5ZBU!z$LgR7}M>mwQx2BbKpp1`Sh>
      z=QC$@YfL+vmc^J&YUy#!GQ`^3tm%|46PhC`j$xG5k{Iib_jZr=o{7arj*p!gn;hw*
      zc6klSfOUl6!<dRVjw?!Q)7%o9yHlYK?`>;gAs0>swUhU2Y5uMM(NttShzU&kapKO*
      zJa0RCM#V{-Vg_gPEXx(HGShy9nvPrR9RWN>*6bP>iLGD1K7=#S{CJ#Ete~mlERuX@
      zb7CuP(ny7<$;xq_FvL@s(w$!2PFhCJ;k(S2*OSjXMmj3fN$-fvH4(rQ3LX*w8)J##
      z#`f)d+xN7#Z)+UrkM%c>x3_KI!Nf~T^-_;0H_4Nen%S!-S-&weCp}S)bolJFo^(1Q
      zCs~GlGf7>dv;D}HT{|{h;`s5Dg3Wh6Beryi+r8uwu7_%ogRR2BCORRbSx@>=;KQ}R
      zGvuPQLdauA)WUfM%`Vov9!6J-^PW}loH(!A(rw-G;{~>y1r97-iyDUOobX)VC|G1r
      zV(UF3VLU9|DQIa0^-1nHURK3qr%p0V(MkcBWxXsNJN&rfcItb0zeBi;*M#$4XPo9Z
      zZ_ZDKOwk~liEi4`52~f74BLHEMW3l?A~rlKrL6PR5AnTwN5#8%kJ`-gvLBe%rpSG?
      zoe)02M}B<B?ziBXDn7<13Rabn>Q=!>>LXURV90-!EfxGb=ZO;;@1qF?>+W(z@t}XM
      zVm&s9t9~h*%M=SGvUw}1_Zy<{R?WSRY+F>~Dg2cQvmaHXhATf;ixA*CRJN|=dU4sh
      zj%)T&(yK+Al=E_LuJ`5@SXq)^#Wg#g++X9(4|sA9dh<iG<QqJ>wcfnWlWUZ7NL-k+
      zpIA3y6E!z;^#iKJpBYY7{e~@*zHn3GI+|--dRt<$D%_TstPXGI?ha34C+S@ty@&KZ
      z<vKb!x;PGU9OCHZ=;t`XG4PWFILPllx&e3uDs~adZnR-9zk9gfi7xENA%6RD00Zb|
      zOb%fbJs3wXU;QYCq!sZG883nVmM&B{cQ%Iu;o2gai`Y@bu5euu!$s`#713ElR}lw`
      zIK)M75&cCRDPrIz5=D%MAH9Lox6$=WHw`eXM~QQg;Tod-IGsF9_m0s0$LQiwx-&rs
      zjuFLiY$d*CHmp{hz{8kC2eAsIs*4L#(&Y+tobxd6<}B{v3#Wc89bF^EPfOL6F56QT
      zl!0mT6+DSFc^U3iab-$#-*ZPqu%+cs<gTLHcdg|Q<c7BW0@lqf<hR|#(^XyHp=QF@
      z#m#3}i`S@J&zm&jdGGjUCI@(+pE!d^@%Gb{$S~1NO68b17H{kzf`Wv&lRn~+C5SC}
      z5f^B+j#e+?C0cDD?3Z~JAN2wrrQj7@^1QI0YjMrsEnJ>#zKK_7`{LO$Uj$1B1@VSF
      zD2O-lmS<|OG!4`?|BSc8z8iRd;&x0!(!d4I7t7*Oi%;<x=ZJXZJTskA5~wfY>R(uV
      h3(Dk8d~qFDxxNjqP8R<qg1pT9xKfstUrFlge*uDQmTCY1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGMarker.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGMarker.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d677aaf92025b8ca92d6310800f2515e5d49dab
      GIT binary patch
      literal 1860
      zcwU9oXHyeV6vpwh(iBm^-W9Q64Op-@Fe{0HL=rJpTyTwxA<>xF{ZPJg#utv=QODlf
      zjJ=m{pg!l^MbG#~nA!RNZf?#^U^BV)^Yj@aYM>Kk)X$=tRHhK<aSl3%175F_a=mPz
      zXP=u2gk!;Vtxj&Qn=7MYi>i1_AnjyQfoNBc+nu+lG;D|L&ag#RlSPA?vzY^VCzJ1R
      z(gn8&2ZZ}}*ettGAy%kQNs9)A?PRi(kK;$GEUJ)&Xj`zeDHh|kYKsQTTB4;r_-A#f
      zMMX*5F8YNZ&iZ;@C5wvJ#A5Zl{L*v-_bb!$xL=!|&;7>q0`9k_7jnNd-N^mk^djyL
      zrWbR6G`)oTlSL(bmK^-qhn)PyhaCOYhn)S*haCRhhn)TcliTA78Ft&W%(`P*M%^_n
      zlkS<8LHA9|oCl`mT|6``@8S_U9<^ouS<^EAoN1YV-n7iWU|MEgGA%PNo0geZOv_*6
      zD&7pwlmo8$kQ1)^kg+#>$m_o8Lk_ux|LEG51m{K04U*50@o1d$DX+GNIA0)}qph4j
      zWrM6fMg~nj;k|7U&gZ!CmU|g5zY=S8Gdl2^o3p#zaw?*O6_ld`7F9;PjN4Y|?Q(Mo
      zrz`DRG$fMkcG4YA&SU$F#rZuRcGpJ!`}tXBQF%OD$aTB6$Iq<%`_No|BGurg<$Jf0
      zMpFruLS;}t>JJZ4E{6vySHOe*d3>;PC0wOk4G&Qs3J+5r4v$bC36D}9jo&fKW8rbi
      z<KYR)6X8k9HSlERT6l``RCt>5bhu7=20T-F7Cc*d4m?*m0M{!w!1I*n!wZxb!i~y{
      z;Kj;I;HApT;N{9I;FZd&;MK}&;3nl}c&%~}ww2exEy^J{th^qMD7V6G%27C`ya8@k
      zj>8G%jc|wZCOE0Q8Q!A272c-29p0hb3GY;P;4bBEc$cyZ?^aI1dz3x6M|m%tR_=u}
      y%2{}y@_v-XA97stSP6)UN@kv-!b#b32-i|stfRxYR+tTRgpLw_w;YpQ$A1I4Y-sKP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGMarkerFoundException.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGMarkerFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aafc5c4d56454cf7e74fe1d4f538a64b105f0b8b
      GIT binary patch
      literal 382
      zcwUu{zfQw25XQet)24(#Ar&J7TVcRtU@Bs%S_BGzq@wO_Y6X|nuG|FmwU{a~@Blm%
      z!VZXy0iSgG?)<w?cORc`?*I~X19$|MtBTF}3tuz2;JJ{R&6gr)HxI+BTW+3(8R<&R
      zhU-i$OQ}@=pU`y!%%a!#zaNCwg;cV<Bs6-*6M{d`GttHt0U;XLj?hFzIOwJIbiq~5
      z#-))e?>oGcN+s^9#Z;I_J}m?xPIbnM2{+Q!KTW@Uk}E=z{&Vj>Asp+<WMU+p&*5L-
      zsWZh9>=|&6Y&6lbIk43^Jgb1<ByMjIzFO&F2ku1A<}(W>*tIJ9#?ZlDZL(jJ@fWK%
      BTu1-_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGScan.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGScan.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19532a9c02f95e326d91e32d969f2ede1dbfa16d
      GIT binary patch
      literal 2721
      zcwUuMTXR!Y6#jOSCT)5sEwz-AghEA3LTL)6+zORmpafGu!9qc$r|D^ON}51=!fkwU
      zhS3Kd#}{XO)X^DUe9)N|W@N^3#y9_gFa8bR)Nk!`NJ0pR$;{qsue0{I*0(PE_rHJs
      z1;Bo+gy2)?&lM}F74x=vH)XGyIm<4kR&H9k)Y%KCW-eyUVh90+PBBOo%wjHeesRUh
      zItp#8=G`-voy${JX@ypvFWXB_ULinn&fU%^Y%W$-&o57vR&SPyR?%5gc<ouuWTBM3
      zL3KD=XVa6>E-Q{*NKKT>=Dm!)=8P!>kK0At8CUSf6XIj4v}A?h#})$}*xUx98)!jL
      zq^$-*uC&cSt1E3c(B?`}17TO%VW1ts5OykbH}M)qKemY7>jn&LBBP95w9Zvl7p?Lo
      zbFpA4Y{`_eW?{}O+j91l0Vi*h$*#<QWSFd4;_0-|QOusYL-u8hc-cz9bgXH6)he#p
      zrQ(_dvd_Q}Qly`=nE0M}I+1Ct%~%Ng6?VVGYc=(47{-W!gBVo^Et^@VRA$B0r05SD
      zI8vvd6Ys|ijNv$`t=ac2U4yikZkJ^n)lxx)JuhQi^-bE!Rxr$^rK*nJ;*<O(=xrFM
      zq^48icgDaOu*v*17S_*mPFxMMLT?+`i_Ho?n`WIJp;FntUn)9gL7~IrVwD{`s};8@
      zX3??ln+_A4o@QHTYq4}P$F(lKC!Z7X$;7L%layRC@Sdd5sDfUXz!FlmR{~*58N(HB
      z^qUrjR}H*_cLn@?10NvB-nrvV9WCeO!-4@*J_PgLc!v08R*$47vBs@ymh*I6<GT0S
      zsChcj-BRD@2lQg8QqEeZZRze!Puq7$SYQ`p^YdBZn<C>!$tT07_f~Ij^Y*Z}w|hH>
      zihBnUIKo^zdCC(_aUV)PMpx3mfo@rPWa*WqPnL)*vE&o<&p*bl4GjFG@pg0F$|%5O
      z1Tctg*oOg*%|49a4QdS+8GG<1ckvqcynaEi!s5vP@|ui@VU&h7|2xPY7;W%>7za31
      zhjCQLvD5YC#UWCH8BtnFQu6V?x0;c^coO@H|HMNExQ>D7BMknE;mqE39N@X{d$cD-
      zW}Ms(QPu0I4l(`*J{6T)k8t$ce|{5?foDJjVFM>*@7=)oGv<HPh#k_!nqYdT(1mG4
      zaf<rWNMVM=CU`o_e+F}y#fLbDWu6@NtPnn^i&F6jcaiQ}I7xbQ==LNZQ71I@8K%pX
      z6eg*4lkgoi(ljGaFgzcL#(DyeF@3B>0_|&ggwvN<xU<RmbwmOSQYlKYXe>`TR->?8
      zL(H-6msy)Dq%hBruCg}QbeQ9=i)vj)NM}^nWrU<gi6YWDN`5V!*LCjT-3uhqLQ9UQ
      z7x34#4(N_zh<-QMv;OgiY#=IPo?>tv7bD*w_z+zW{3=$>`=5h9Hgwc=cJBgHw}=?B
      z^ti;{U0_j`b>vCcS6xTBksItnNw81%x};U6Ylt~;qdcj5jgujsBW_SN&u&lN&>ptB
      zc2y4sJ;-;(Twd|eX1z{rPZDZg$X)xP3KrG?H+kt+-4L`_0o%QhgG{6wvSJ^-82Wl6
      z^le_f^UBbRIPO8GGz&nQska8|lK-gg;b^Ho9NDIq`x-BQ-1PDiEbsETm;InTBz13y
      z%jXl``Lr(g!787iekH{5a&xTiMy$_>_4y015+2rAQ&N#eQeQSDm1}xA)_D1=rkC^D
      G%KjGt$jAf$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c773e1970594e752094045c08682f80707a8c6d8
      GIT binary patch
      literal 1269
      zcwUWDOHUJF6g|UyGX+`|Yk8^!3DMG4rUo?<l@SX?3=(;WycDOUty7>w%213O6Bi~f
      zG{!^|jlrD@R;UDtA})-Hj}64=!j+QnCtMisHyyyZfiAv#?woV)-0$4!=RdC(0UScm
      zfgAw`5~&F#sb#cliax3(V!ELu$6^VkHxvn_2Sdh)k?tJRqA>@UfKo10v`JHmazfdl
      z1;{7#ly24w5WUsi0$9ixiseH@o(mH41xVhO7EbJF)l;#yiP1<b-K9lFsM6hPM75D_
      zEv@t1e#p$L`nZ7V)-BF=TtI$2ZH$ImntFQsXdG{UxVk?~jfON+6OhAku4%0C4leF!
      zK23v}21ORS0WkHYxxhkX538T4EobV{<zGx)Sz6_7V&f*2nTGXdS^ZkMw0foCwydsv
      zoUQ9Ah{)<&rR?cq=9B#H!=t9T_ZgS0eyhDyHP!fAR)50!$?A_U%T;G1RkAv}^d|Lv
      za*U?#G$zu~SXk$`F8u#mHT>$>2eLKWfskaK4$6+uQ-PwxC(Eyp`<!47oOI?>1Og;H
      z2p1t&R)%fZPLY;?0=q>WMXr_niwpA1dIQ-i2wKHOS%F>5(N4ID7qDw<Z4PhJ#<R6H
      z$2MtGxYkB!qYCcVyu2Wv^NRyPcTuw4&+I5=V?gwaL3goV3c5?;$w+&E@x0W}tUT^6
      zvzd5%K;q19n<1suF+~-2l<X)5oe!VD5fGik*_aWQY%Dps#`R!|Yg}BD#mvPuSu7FW
      zxcOxi(|HmMD&77RS=E3&2+?XA5k?cb(M*~%h@%B5oJR)jxQ-6oL?>>c3wLn=_i+)A
      z(Ss@U;u-odjefkq0Ol}gIa-nRYTeO!+fjyDdY79f$;00D6-`sdHxMUpTm7O3<vuZZ
      zXV`-ZAEOxcpwcICaE}~!mv~TR^ZPA6;eprYBeV)G@Y(|3njl~a5?rw1L=kNo7^10k
      dR3b?p3{#f+=bMOIbJKqp5o>P#P1IQR%3tK-=RyDg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/ZigZag.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/ZigZag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12c6a8952c3d795c35d352a7d93997d294bf3a57
      GIT binary patch
      literal 5447
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5bd013ae00506e78325c75cd2e6d5038f2870d8
      GIT binary patch
      literal 4262
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGData.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5186febbb4fbce7ac87984c2ea88e376aa99c789
      GIT binary patch
      literal 1572
      zcwT)}+fvg|6kUfD($<JrC@KXBUfZD5yJEQrR5V)AnRZa*#n7IXXh}LDRq=0p=Rs!#
      z9Ci2rKgw~RlTeV0FU{UN>#Vi+Iy?RS=f^gH>v*Q3jbWhXG_!B5_twX(y<*k4?PeQJ
      zE&F2bQQq<`6%mHBM?z+no6b9i4!2re<vs&5DH*dJ+n-=i)8^u|nVDyZ%(xXEhk|1o
      zR74q06l{mjHCL9nSF)DsoFP$g%T|5f@@$cZ#fZObuQCi4{@Y_t0M{A<U!jztZE>1G
      zDSKtAq^SYL%ukhs{3#*d69dB;4JVNhQA$HQIv8SQF-y_@L_D1pUaea`FS+4>sdPce
      zXPdrV&wjES*?a)-a+&!!bevN$#L#;<M#FhrAUi@*VGQ|VX2>grY7D23BH!t1wpp(e
      zIGuS-_O32_w&;mc(!PQb6;~O$Bt_jKTZ(I|K3~z0#Wf<ZJkMGyyNxvlBb-8_o-e)S
      zWj|*gQj&M3I{ZUk+Sys<yi#&aC+O-BH+Ei0H*VvuiaQ6~*uiMHhf#(o?ThI&nzS_S
      zWQR~xZ08U&THJKTcZ)s^Ut{P=XZAE6RC6jO8BXmlPdDv)g?mv<(Y4dc=wd2e`Z}T)
      zxKs0&^>ICp3CxJ~$TK9<2f4*$6PVTT2#@I!tVV-76^4G=uLIyvF(*zu(J+Q_hIr9!
      zdSyOqi@nyu%^eXZF+^La&=*OID^`&r`s&1YLX{Y0CCVc7j2fvc16zoHrML|m{l@7D
      z+#>949H+<#aOlJdKt^4}$7Dq7F40kRQ%#WyJ)uI8-iUYIMk2X|UL*A@x`ES%vVp!`
      zv4kWarNj40EJyj66zvU;wnV$pFGcCE1!qHnS0pA-y0P#LeZ$5#Vy8enw?$Cd#NeBM
      z)Pm7wF-V5*s^~2h9T#y)s$51oRJl(WF>F_h`!m`j>&kkIH85jNGHL-fWMs&YeF4uR
      zU4u|d37%ikf}m1{6_I_%urW;D?6>754fqO4ET9js_cWXe>4n$V2`d`Dft#VwROow5
      zI<kpd`{%dlx|a6P#ai>nXxf~lqxA~uCh1zmOv#^^SV%nB!n8DD6Aw3Ge%WV2b&m<j
      KmI+TKs_+-qmn@_J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGDecoder.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab6c3034e931f458ec0c0afd0cefe2860f2c56a6
      GIT binary patch
      literal 5300
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6712c7ecacff50bcedcbdaec41b8d4d58759e563
      GIT binary patch
      literal 5501
      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
      V!(3|aRm5KAL9<8oW_2Qz&j7Veh8X|=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGException.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8db2224ce694729703be3869f7887e9a0706ba7b
      GIT binary patch
      literal 368
      zcwU80O-sW-5Pg%zL}RrdqIboEAJD~fr58~VLKP~#Z{xDAB%6{Z(!b?N@X#ONj}m8B
      z5y68qFua+0@A2M0-c|t4(2o%i4zz8=lYEv-VG600DaG7saW}rcTxM!so6^Pz2|JD>
      z_<M8v^B_d$#+rIW*gZ-;A(t$k)RnP%cswP97v+OW(85L=YlsM))L1ocikYhJ<t$f(
      zep+TSpUTR({rec!k7hwQO#hEJB(#c!c1C|95RysRRGGRm&b9YjH*jq1gXM5V+#Hc-
      r%-aY7HxQkizGD4_QGkSJ;;#c{3T!gk`(mMuE$<Rx8y)Y}^_t!%Pz_Y>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85f16e07f3c05fc002c01e67a34a3c965c2d94c2
      GIT binary patch
      literal 5022
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGFilter.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b419b9ba2cd8a1779a086b7d0027021e6e42ed6a
      GIT binary patch
      literal 3211
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a806c42419c52a7f9d60f8d9fa9e90c4b8675a2a
      GIT binary patch
      literal 1461
      zcwT)}T~8Bf6n@@*O{rz6wIZv?4t}<^Qe9m^U<tMe7ArBL-B7a^!*o&x+nHuMbxTad
      z8x!M=@h|KzSQ7=a8ob}%u|L8q@p-2$CMvecyyv{<oadb9Jk$R7>E9gy7qO(kCoodA
      zTG@5&q1Mitb**ZccD7+vv$vNP7PNX@QxN!3PJXRrJrD?1Wv+mj69`S4mg&w2D9OV8
      zTp?8wh+J>$M#D92tEu3Cz=?hF_7VjGdAnjn;Kxr<C<rTv2^^6{*_y`WW!EvSYOZD0
      zDuxqATtK~N8SRFlyGEt9p*GiS$5makZm7B(a!gG|Fo1*vJ1lTGS^OGnDpishN1_<Q
      z&*Y&s8irL77)};a-z0Y%Pla)eOx4v5*J!3>`Egl3B5?kD4fchRm1-2DI3W;r?M_f2
      zk^HuVxe+A#AaFX0AVQ(pkL!>hfq|lF8B4ADs^Q$#R%?bpylCrMt)w}o^t+b<cg<{a
      zU&S9wKP59a8Y~b6nib8Z!oK@C0l)6(yybvmk&)zFs^qU;yLC;fbww_CT;5W8Ipx(T
      z#*hu}$`7Xudb95K3|d_Sy99RY4T1iu;pXj{?JPGmo$W`G<?b4^zuc@YBiS!;j@egr
      zw2dZ-%2~@{+z=Qd3)Q31kw2q8)M_nbQk9!tlp5WX%FgXC318b~yXEM{yeV<}duth!
      z1yqXDdQ1075oiVY<$FrM&+}N1D6Rjy@%8kv%<*mXXLgjoG5QXXm3J6ei67j?q0G(}
      z2IEJ!Fua9dwsG=9#((J`b|1%v+L=JdinX6)f*mtVGvt|1o{k67gMsI7a4Ma^ne=O%
      zvT46!Hy@IGj^O~G<D6>({kV#An8Ylmu*mZ!&pSLzn8u&@9VTXwV)kWEkaeV)4bRHp
      zJlRN#LK0b87kKAqZGwL!zj|yHT;fwQeoMX*qnwUk-o|ff<$d@KCemj)T5rl1IUW=K
      z(F7(pV?&Rgy}T>^0R8FBSghv<>CbG&!aYAke|D437lvoNZRglAPlj`d<2r^h&zTp<
      z>jsJ_V1;}oGu2b9yvMA}*+ZOpn9Orz;isJ^Mu)`}Ph0j8|Lk=Od3(6yp$>duTp(
      qo@ZRhUvU>>#=`^>p41DJTC(3lfjWPU`iF-a?c{e+1?QJpw>|^eX)cuj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGHeader.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7cfb2b44886cf483d8e9e892ec89c52a473a97f6
      GIT binary patch
      literal 3615
      zcwU88Uu;`<75;AgH_1)vrp>x6ZQ^b~9pg3|rCXL{A$FW5?%Xs>(zH#>f@9ytw{z`a
      zJ8jaktYhmofi~Dwp`{N?)rW1G`mjxFGEwLx7(DR8CJ+b&;sL}9FT5b}z&gJ3yVo}+
      zONFI-&v$<JoO93r>tEgZ@ofMP;aMMQG_=p==R41&&ZQPQ&9kXl!z^^p<!3ubM}~%t
      zRK_U!;MUM~SD}IIeEum7p7Um=oYkNuG<dUyIh!r>Fk{TgVQspQD-<Ud=L`+?>B8B$
      zqERZDg*-)1o4K-4q==a(&85;5X-tev42~tE1B25eM@9xUGz=8-rE)4?o=oND4Hun<
      zhArz-(RlRmBXX?K(9l@)#P~ooNj=xtP)v>)r7tlOA3Q!77uKa=yCXGyEHN=W9Zil7
      zN97q~ZKT$QQ!hR3HS=b<kCsA-ld(j{q=ve|g){?XASEB#HQayKBsqc_+yjM-Q3n_9
      z*U^fdK72{T4pHjNr6@dJE}Hq-*u0rz>izf%tsc!A3v))gY-Dna!BVzREC;iyGQqUu
      zeqS(DhX)W6a~&F*L&=TSdO9XW;;T9$*vm*#b8|*MqhV(#(eVXg`_(;ubTZc9%wpLn
      zb%^>yqW(1vdpCQ*UCoH**L57g!y5eMg7uL34}DREvTX>}vb2xt@W3mmM~BZskLmDR
      z=o>m}Efm#JXQ2Td^%fe`p-a8CB+a}rGJkf)C{Cnia%`)nWFei(O{R*b@b;m*oHa`t
      zb|?SO6!eIwYG8LJRZeNBIT>SvrHg6C6-w|o)iLQx49CZ$wogbg#wg1SPl{I)Ivz)|
      zj%ZTHF&t+VW{q+pFGE5Zv87G%qG4@DgKn1C>So3sE?1~yO3Y5{IE8P@u#^({jIm&_
      zi1lV^sF+$TF*G`-)9S$buu(CgtR*VbMU4hk(@~>1YAzT#zR=XLm3rgpR6fU~Ni{Nt
      z2iDJ50e-rgkC|m=OFP7%sd3Dj`C7tZd*tOfE>rIZr}{oCdBFjzQ4^BcpxPAOeu#9?
      zS{3BZNw=weL1uwY2i4LDO4509f%OYkt&Yn1cNkC5S|XLBB_<{4tdnle>3Ctjm^KcY
      zlA%VYr2C}Y*v*>Ah&Q4}nohQbw49=To7UR2&ZhM?)fH_)11T-5vn}KURs2@+O&gwX
      ztKzqlZ?59+A-|)Fzn6SV6@MS!=9bMtyh|1qpR^&!-S;^Cck|@u;nv8mHSCVu4m4cH
      z?ptU(aSIQeX!`OR_C#*4BHXlZ6%Vdr{~8|oC>(L^--^$d0{1RN+!hKfT#9%s=qL0l
      zc<Cm(!V#Y%>tB}*c-MskzKV2rI1;dgZlagC*2aCrbvEuNuD5ZFShsQfJr(Lf-VZW?
      zK%6BRWC9K{&>@6KBS;{ILpVx$oU@fj63>yofWvqVBX|Qx@D4_?iYM?hj8O{+Tj{|t
      zb)e88l~_TXPQFplVV=2o+Da>$O6+Co`T6YAaMO`BjD`aZKk?thc(_$^vQt9cB{7Cw
      zQw&3*YIaMU&7NiW+;73{VnnSU;%K*br`&zv4>0a(@w)a;2y(Z0-4^n+cs&;Kws^f3
      z^0oMEIe&}KmJ4`We70bK&uz(of7h!PsBL!JsE+r38`tw5v$4*5{MCu|G#_G*0w)>z
      zDW>^JcIY%a?_2D!6!u^Sdyz&DP9ut0rZS5HOf2IJuHz}(Kn@?`EIwutKH(Ed^_Z0~
      zC)J;-+0qn}>8er4uTm{YCd{pnjuVuP;)j@GNxZc7J^GcTmL|*3E=hzI#M)|j4NqQ$
      z$901dbuB{z?ym5CfqySu#Wq3y6-fMj?rZk5UiS+22=%O>U8rvbJA?)(+NeNarDDf>
      zt#VXR@1xpwp;Xh=s~j2sbz7$Ys&Xf`Z1eHJoh60cH=MkWasGjGjP5*haDkJ5k<<P(
      z_G5|P%u8&>XIY8wvI@_ki04tpW!_)F%Xkq#!b^Ca*?AM+$J;!4AFtp8=1uaiTiLPm
      zud$ML=J2qcIo%G-<G$fq_s6Qy>s2;%$41Jr@tAExrFIz&b|U^aG|SYrDpT7WQ!{KQ
      z%Ty<+JoAW+jmmFVDSI5{jN``vTUkmQU*0s7cdJa)J0=Y0{cloQnsG|r{|?k|$RcXF
      z582lNn?`Kfr+O#ry`Y-OTLC`j<U()j8}PJNXQYi~21n&V+`^;yDfib$+&dq$34XyH
      z_Df~=9?KisQyHVvDiV!@SMm8jJe9GzQrqu%U8?dqZ1Y{bhIvie{ArmHaV~qg|1A}P
      z#d#IKPq3URF6eL`#RnYTN4|YKvd`3BS;iKkGm0}({q5e1FRe%0tv*=4Cie*={teg1
      zZ_$U}G2-8Iv;Ki&{zne<pSVc=%mwlnEaI<h^1tB+_<L0*uGpEV;a1Oa$w(&hn|4pv
      z#?t>|)9xv3s@%O%`JbCA&uyyQyHWXHn=11^u&w->`oI9E)OY#YYibj9$(OmrFSEEK
      zc;3Rjg3nvHPw=9J`vqULa7^&i7LF71<NmJWQ<K`PpYb2V9k$))Y_-p-{5$3N_l(lG
      F^j}YQw)p@6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGICCProfile.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGICCProfile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea403864db773db060808da7f9db53cae719b531
      GIT binary patch
      literal 2711
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGImageReader.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGImageReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..250520747c87606e4e4ee247d13d68b067719ae4
      GIT binary patch
      literal 3530
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGImageReaderSpi.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGImageReaderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac1c7e7964515b5b7eba81890ee4b5eeb734a6cb
      GIT binary patch
      literal 2450
      zcwVhlOIKS}6#fo*L!j4Cutik*poKmX+A6K`P#z)N3YVB0XfL(JOSp#Hh6Iy~W#Y_<
      zLx(!)T27oeP&(-H)un4Wa_HQ@qJHP(8bhFpYnioj&ffd%v-h_jXWw6b|Mn?>D{v!d
      z6F6Ti@1*YAAK1Gocgrq1ZY8x{E~c_ZMwe{Pu{WHmxlQGuz`%aR+P0h8uO$#O^^7r<
      zU(Tfk+U`sXbgZO}*`?f?F||lhVnLcnm2CPjy{cO-jtO+mRLV8aE_*9>X~&78Lm-eb
      zmIWd!>71!A8BugmbR{_=pykq2v+3O0%)*puN}EwUCvcWgBo(-%4=%|llKZ0&2+0ek
      zK=+-)U_{O3xjFr|RA^t+7t?EbD=Qi8R!+~;rJ2>&d;=Z2kzLOJrI2VgH&e1}HEC_U
      zP;$$zH%a6}!z%*8naYL}gTRY%gb<G4Wtwh<5ydHili5nuv)4<`fZ=!#E7b=BnX0|L
      z=@x48`k6Qq=#FBLCS{aSoR<`1m8ZjT9G9mTSqha3Sx$LyIgTEAkP<lk%xvANx}GYe
      zym2LtUUWxrP2gBdd=b3LEGi-UKre6ac*O76TM=9r7;I@1byDw?CROR;wK$%~3EE$9
      z%Z{<LweD2&GH}@_m4aPbv8%4+ePMW9WwaduOvW*eH-xx6bg+~MC5P1eXrg~ss@M9E
      zYpeg&(z8YXqbb#e-lkh)n=Bmh-LsRs3U+zcDX@E0^#ppFbH22G-zj)w!>fEX>D_{}
      z?YVr-5zI9=$Wr5^1EZLaLq{L6Y}wTZQt(zB3s|IpeX*h5i!Q}Wab%@lsOr=l`VH4A
      zJJo`-e~S42+3pRP0)lAT+%m`8!jXEB*9C`{(CNJ97D;h(9WU_6^HZU#2_>DU4vW6U
      zO;ZlXBDhx{Q2(0lcHG6gvafA{OG8JlkSuG=+4Y=qjR|JGijFty)CyHsWnAE#k9fy(
      zODXlP93OGZ1PqtdVI#rK7g%0XrGL(q8odW_sELA8eANMdUt;K!Q;t+0B8XBNBi)8}
      zoIt#Z?<9Y$iPy+;ypcX32btP?{Jq!TIWoA1c<Uss3%o$?X9OXCyIS=7s1?vY&Ran(
      zo3}!mk+;HHCT~Tw&b$@X+Vhqc*7~?cNIyn@@CUqP1rh`1W1J4v>9eL4Oq`=&$UnS5
      z`jSs4NsmzRD(P3G;wS|-zE<d8=X#a#0h35#f?wHLu4x#U!z$)cKnCxz`Ahu2kDKtg
      zKV+wmsoP*I<Bf<`8Li-c_ClgP(Yc4ydl=forG&PJ8+#ZD2>#Ua1QUOIPpCXBGLHuO
      zv4k^xLehG?ZVPW>O8J?_3~$Vm4w6eNkH4~VvSK#_6BmEN=%<*z_#;M*%ikcww>c3Q
      z4Ss=sayJD&84dM>_R!xGy!Hs8z{E#E(Gw*9^m9b|Kl|f1Y8e9kU$$h$BDcy)zk@FJ
      z`f=Q2P1lIi#vs-)!u(t%Kg}G?V^iUttRwPqOX_Xph`5a!Ci2|7Xnz?i#C{UPxP{w{
      zXpntn(Nl<;cj&D((g|wIe8;}SUF*UVtbNr08diy_Dd)X)rH1nuK}zR>KsWp{T~}ZL
      Yc2KL451Whx8b$(e7@ss!RQj8L0yGLf*#H0l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGPalette.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGPalette.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b553c2ff0faa78861500245f4c535bdfe7a37caf
      GIT binary patch
      literal 2641
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGPhys.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGPhys.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..483336b8e60f89b6fb8b8421044aa6b018c9ef45
      GIT binary patch
      literal 2042
      zcwT)~+j7%Z6kR8>EyWd$;)YysE-GykTNd#!;Sv&{xf2JIJAovWBHN0i#F1TJsNK$V
      zcwwf)3-Creed-IZ?M#y}r9<EQ&~NA;^bbn+k%W^W1bZYcpR>-{Yp=bJ{MUcKzXEU;
      zriccHuB=^&ZyEQEYTVi}vZj@f7wl|&e)ih@X00T`$IyK&Wqh+@Z!@qeT{Cpm82m+}
      zY~=}0Ff>+5W@*v;y~Yr@Y}r=%DuWnFtdAw4D-6NOYT7Ii!=_jY!|7vV)rkzg@qES%
      zLcm8dWSo$2l0@FL&1%6+m(7e?vc56Z{DxYXUR_etTw{L_O=#onc7~IYB##i!8MO0K
      zxoFwh;pj>u7*5IXBfwFo4ADj1G9)x|q{;~51BRxgWt+2=os?NzHc~m0A(YIgjogY+
      zwD@mt&{y8HN(?>8_c}bxiM0apS%P53C>sn7>thT;x|pVs$V7BSpiD|U;WIpiem+X>
      z`CogV!05kp{|6+G;hc=~xWFLo7~AHAvz-v(R{JA~gq!9i8GVRw^017{xI&f5n&pID
      zc1TekoY69tqFu^)*CB?MNc5<062{3Q%0=bLSmc6Qu&QRxt%2*kh)IUFx0jAptX#${
      z25}7u5z`FH+YA{qxK7P--^f+WxebQi!-bnmZBey{-=Qgp3A9O=rAn)#CEgRN)0AqY
      z8m~o%R6aj1V*!hlxKSvWc81~1yPD$2kSE#+vCOx)Nv%Q^dN1*oj1i1VSS3rH;Ol(l
      z9lmnr_>~gwQk~UQO_gwuTGRElq!!Ggx?`5jVn5}htF<V#11s?!JffeD*HXSxOq){{
      zZ%El|xqeQ>$5eiSUIae6sOiB!qW7eRcb?Sl&a96gGc@2shfgN}%>a{}8Q_T)*1Pr*
      z(qAc!KjXwpG_8hO_R;#MrV9hjc>SHyUe$drQmPMhzY8UT0S7*KxQh-=7wcr{fUE=#
      z*os)Ehjm37_z`WI_8U4L(JlNazl$!-w~L-%NmB#m2V5Z4zyRfSj<lagJB{??BF5-B
      zi9xL66278m8AJG%PQoKx!DD=m)3i!+bHgY2)bZj8K0`0%&Jmp+ioj8n#snIbiO;wz
      zct);pUq`f1Y#+MT_eNG<)3cvQa0}ujpB`uXwjWd8&(Y$Jb=1eg+CByjve2jwz&O=r
      zlIk%91=DDyv(bg?G&e`D@_7tnk#sLP%3B?6BX#8?PCc2U@}j5GCXHNWr>9aNfm+z9
      zL+8UI3QjqFaf|M^Nx>@Zu!c5rFN`}*MAhA^9<h@=aJ}jz?|W&N2L4j=V*gFfa(-1)
      z8vl@XG01E9{R<2wc^x^pL10jb2?NU<_+ma6_+x$-1Y!Xfh`Ps-bdRG1bdRKndf*MB
      zd(RILh3D`!EFa|6P3nMq<c~qhQj}*JSCOHwiLbG7D7UJYTQjo6i17ak+$G0(A25Er
      zz1*G>o4dad8cVuCyI*2rHTD8i`$&dv>|u_EyY{fOhm~IrPu+H>I`*&@`ohIwj=v<#
      kxpmPYr!luE&^9$jj@r^bRQ3f=sDN2YD&>?t?X1oG4<5#(-T(jq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGTime.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGTime.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8c2799cb701c276677b979484b91da62121f568
      GIT binary patch
      literal 1650
      zcwT)}TXWk)7(E-ylH!WQabp5BN!`+d?5c4}Xee<mC3m+@dWmZY;ZnsGiCSCs*fJCI
      z!0-+){R{j8n4!)LVZu9){2<C%$;}KYsXb$#{r2p4IeVnP{`vhFzzuw*p-*6J&ueF&
      z*x%X*S+{2IIc`1M@b<FzH`j`8&C#F;jGswa+HZSL1(b^II|A{7BxT#aTg@&rk`qv8
      zUC;IB1vE3ivzSkp1Y#=(WvAi0b+4u2oWSKXv!4)IVX0nmVu)bCfCgPdTwo-qR<%jq
      z@|&)=x7c>86{o2qA&`3HIR_1=>^qfeC)L`oH~o~)fl_7J@<hsvVGzSISyCWr7Eb5N
      zrAv}AV&E;j%{lBw!|^Htqh>z+3b|J}r{e-AP3?Akr<In+$K>&Gf$RTQ;LJ4gWXixL
      zTo%y%dblYtY`%Jg+!%&6TooAjulO-s!TWMPQ=s3>2cLAQ9|9QzQK$lg1=n*n+qGS%
      zS+sYnyud`EUbd?xyXnexFR1wYZcE@|;k8D|Nn)o#zQ~7$um$>d76l^ZW|@(WV>bn&
      zwYul;Ggz@Z4DQ$445~HPYfA&EEvH<UDxWt`TPa<N`1y?$X@NO86)mNhy@75Ubn^#t
      z;6(#VSmqt<IsSG~Fk+_j5#R;n_L_lpxvg`1LpCCVcMRN>L6yN}yCXvz1~y;v*4bi9
      z2JahqAcHY^IA}NsZy6}Q3~vSPQ!K$5B7Uu*<1;=Mlqgj^@!m{I-tXtq89S$(ac}nt
      z9s3$*u*??wDLbpKyc(k?{)FVyFD%L@o4U&jCW=6jPYc)mTq)d%!64xl*D*$Z%3QF<
      z4)KO{9M^uvr6a_)k1)8M7&^px>$r<I6Yq2}+Qr2~y!)pWnHs{2@8kM`r3C1QX~l{L
      zXgX@CAy6$X1e&FXK)2$(z5dJ*u52fjA+1_TMwLoZO=?L!*?)-lo+JG$`{~0q{!ZW=
      zf2Y{_hZw+3Sh$7T_!xQ2;30C@!7M76gNJ$ihz0Hg--PqvI!_}&Sxj<XiRcYxmS~Ex
      z2y+#fd6IhM>6V*BQRbb&G?B{eH}DaW#u_FoPf|Y*<E%dkX*P{aAyvfR%pmoyW)itW
      z%x2=+ANq4FT<hW!j`(;k^BWc-qlpzt_T96hTq&bch!97~TU8#13zds}2sOe&2zA1H
      zA&g7L!)L|QDlM_&WvaA-5v<}W*4X_zb;<L4hsL~%uQ}~gYy>K$!hTOws^SsP^G(YC
      x66fn9=3A#X-#pn;!QsFYpVAZTB;Ca}4e`rKA8NpP5ac&PelNek7Xj<be*t+{U%&tW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..644d5a40574d8c5c322608bd4c224d0783b0fed8
      GIT binary patch
      literal 898
      zcwU84U2hUW6g{(iEwHT!w0=-6wX}h?y7gJ(3yBE{u~7_tX_^c;;u4rmc9*6<t0pBT
      zKKKLtQBCh%R$_pxFLUqAJ?GvtXXek{uipUP;3x+};CQ5G&RAZ_YiBC89I2_&q0>|T
      zmGT>l(9z$#9MS?M#yJzIN6y(`tcIb0>FOYqdZ+{rx@&C~s7?%dE0FbKUb(y4i>u*x
      zH)xy+JnJT?V&FShyWx9*UNaH-Uq$OGT77|Z+xx2W5O`oAk3s<{JhV_mSs>MH^|?~D
      zkU^HST?;vwgzdUoeVk1P%Kst<6UBG*hH}!EzRUagFwJ)qNYwq0?{wMxNQHmxt~Ohn
      zj4KkPvwVod7?k`Jg`PL_hw6jNs)~z=ubC!bb+lG~dm@8C1vwlF)DqNktEFDl$&wWP
      zuM`Y+h%$ry0ZJwIGOEx#ShQ}@?vm<hidFmN9NYF!l<bo^D)y^6c78<cN3@n1WA>0S
      z&yY7iVcYzS$8=tgW>xV7Pk|`onMRcHRGwACUOda8C@5y^TkPB{n`imZJdYY$3qahE
      cej=W4AXiq&7aPb1_M^3q1B!)+{sIjc_ppx0?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..536ac420c8134dbce10ac7ee4c0a12c5d3f0f021
      GIT binary patch
      literal 1219
      zcwT)}ZEw<06n-u++I597$JpkaqN4IL=yaQ!Fc%Zzk|hoMfI;K8Qm)vgw4}6TKWiq=
      z89(>~{87ep%XrDyNRyu1bDndabDwkI@4w%F0KCLo2@!^J#|gAEV_=+XUBfXtyvrS5
      zYjAJCz1+~8IK9Ac_#QX95@HOS0<KxEcG^1Qrau*Ch?q9Rx*j5I!|7->+vxXo*JyLE
      z$`JRzS^eBD!?r$$R{#$!$MTOD^!!|;KI&zvi|QTpg(idY;oRgs-*TP4gapItIRA7U
      zk+95=9R-FpYp&-7J)gJ7D27<gZSzGi+*2VzRuDy6#Uj=iHuASNR%i<Nx{3wF8J2a+
      z;q{=~;@(H2WpgT|yQX0`4bKwa*Up&Gj6s{H!|bF;!-z;*yR{Jp)#H8F9`H~ghRUSj
      z;Z(1$Euz)JO+l*?9*-oNc<Ziz>;}$6A_Y(JOhRsEWu}U&c#angQiuC>qf6IK=cnli
      zX*r#$f&xksiX_?%QWZNWQ~p=i8|J^u&!&I5Ya?bZCWfe~c!);~QMYe0Y|Rmd_Nn0p
      zp2?3bF{!2D6e=Qt6h3hr?u9^3%l4W|&6yy>%FGOrrEQ7Qk2OLMtqhP#iA@VVj5bXn
      zyF_1cvMQ2D(YZ<I7}->@bcvPX&J|XR<x6C~hglo+PKuiH0T$#vDDplw$(IdzQn-&T
      zAUr+5HsQrdFh{8-i895PB}T#bnPLK$F8#!lSn&rkzmUK9R4iSgazR~!a0x<Ba~~oh
      kA0a8f54khL{4sYLyY%-&`-@j$&wJP>tB{A`0B;ca4+VfU3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..769500cada3aa4ec68fd66c7f8edfee4498bd83d
      GIT binary patch
      literal 1282
      zcwUWDU2hUm5Iq-`?gDE;`XyjXRce=oc3Z8riN=>ECME<QYIwiUE8V(WlHD!w&BTu%
      z;Ky(9-9&2i!5`p{GR|F^)(Ea{!p_{CnKNh3Tz>rg_8q`B_H-l|c6;)~Ip#zD-05@4
      zd!jF7=o|=tDE#W!v<9L3)a~-n9mu8|ghC2mhsKasb&khn&w1QA7Tr+C48z(4+B5(L
      zts}T(C^Y{>xkoX{`+{M)Ie|4!X;GNc4DTFmeKK`gTPm6fkKCZTrO;z$SBdvs>4py&
      zhE{Cm<N&d>|C4B~O)~5c4n-Oab0#ifHiIM<Oysc0khE%T6}e(UhoQWZi8M0GyJ{i}
      zlOfl1rD&b>JHmg$JDyNt54zlIbKh0xvyYk*gkdjk$e61@N)?W{JoLoxQHC8We$pwr
      z)!G?UaZ|?{Z6~(a#5yd7bWel_gA>0?W6WE%NkoNbo2a8f$-zbPf;Fvs7Ab6+xQ6Qt
      zDXH2qRQ@pq-9j~ehj*VbWXAXpU8QSwtl6fjXD}a05^LY%K_CJhyA0(Ry=k3)R~)Of
      z<Rtx4(CDvB`-ggH`;n#H1NpqVF?32$UJiMBU#62!=M>qJT_2%ff5E)n7-7lY7@=qv
      zwGqmnqMBuTFRD!A4N}Gnq>Y!DHC|!Pc#Rc`*-_^bD#Qhmr&uH+Pw_}bo?@a=XA<<R
      zze^DntJF_%!~Tq=kI2@^7Ee(lQ?56@Vk3zQ5(U-Bc#Ev@j+(#6it!;LusVi0Cs2Wd
      aEo!2??TAVOw<46=*dd#t7{eXhMdBBH>PFxI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/management/Server.class b/libjava/classpath/lib/gnu/javax/management/Server.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54552f005855f8e5f08b2ffb23aa4d303abcfa75
      GIT binary patch
      literal 23261
      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
      blcEFiM%zQV%;@hyDldtrc>Dp6havtCm!ck*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/ContextContinuation.class b/libjava/classpath/lib/gnu/javax/naming/giop/ContextContinuation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a60d0b0e71be68f478f4d467e58c913babae322
      GIT binary patch
      literal 11356
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class b/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e31b24f799fda3b0f036eff7ee8f5c6c11b3e798
      GIT binary patch
      literal 7202
      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
      U6>mJtdk)EA8bl<l3@78i1&OgYw*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1936b365eccf51d13b5194335ddf4b1592d50a8e
      GIT binary patch
      literal 2055
      zcwUuN-*XdH6#j00benXc7)qff6bd5A7FemjkW!GAltx2QTB6hk-K0Coc9PxBX49#@
      z_~?)EQBfG4oN<Ji=pZ&Ql^J~V!9U9JyPIuVpoQ3(-Fxo6=X~co=X{&~^Y5RJ0i41$
      z1tEcvl3mvqjb&p+w~eZ0m-Le5Ea{i{n(_A;yIwV2!?PS)K}2Aebk-{dJ+BlN&7!BE
      zOJL{;h-V@NA{DFV2_!$xIc`aJswI8WskQv{3CmvKIwsI<c{0Lr1&(a*m<^m55G@#9
      zu`D36e3k^d&RVwRofEj4+CDx<D$`D7!F0!7oFs6}rt>Uf(pfO$2qU3lCw2>jQ|WvR
      zd$3nQKPh*RQN=!VllQVwshcqf460Dj9YYdB3JwSy>yVKIic5e)Dq=0`u!<h20=+rQ
      zHfQS9g6Yl~g^DSV$T>x$k~dsS?t{aKSGH;bCvyKo0&IDxz<wX?sJm=X!J>D%<2DP#
      z{E5z5pOc|dbnIo*rEc`+jB_lVds>rH8O4fIBSt*4QZ$z&_nLxJRNz)hU3clhYj{J!
      z>jJ|sWUS&%DFJ1{ta+~U8LhHWyX?58FN^s&2XaQm7*2B_!A+)OR!!Su(<8RI!m|2O
      zTX2_==T*Feae*G`7lg?XPpH@dReD@hk&)O+$@C<)f=kqb4_5cAiaz7a){EsJv|V5v
      zQ%K10cU2t6i8!^JkVRisF@r1oeq_E+_`Rl6*^Wk>o@Y?mw<!%dD#4TZtW$T3=9DFM
      zHn^pdPD-kgVNwb6i6X)uC4LByf7G+TQqBIl!(ZjyPV~}y7cCbdKW0#Sh?lgHRrED6
      zpdDYu{w5A;2bviEowp$z;k%#sz%2c*5h;&8e24*jgqL}$wNP*rulTtJaSSQukXD+v
      zA>SHdT$sOp>>2k0C$XD1I_(H|ulkH~Jdttz+A0qIO;TLeFe;!4QrcjX@H3jMw#2wH
      zN3iHKQCrag6M?sI`k5R$E$J229^map8?wtk^ftjn+c0M_{#=-I_nw0JVoMkbIp};o
      zs58j|FWg2n+>i#JfyX}~8fg%7a)Vl{_g}KwuQ=DQS?xF2i*GmONVaoO@<EOp0hhT}
      zj-E%Dy8aN;e{IUNPm_jrohS2=Pn)<f`T*H`GWpGI?$$xt+=j>s_>S-IsjC~<k002e
      zAKCd^oaXIK9Ov5l$h7-#pUMq$oo>y0;t}=`{=J;s@);gkLoST*<V_^BFgdJ?G}3rd
      z8Cr;!;YN6)XQRH}e<rVA$m<Sy-o;@wsLWqEy5IQE`##R#51hv;E~3eAdd=s0sKqDX
      W+RHlL_q9C4_XoJ@&u!MvGWQ<<8o=8C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..712069789150c1fb9319ac472fb72151b2b79720
      GIT binary patch
      literal 908
      zcwUu~U2oGc6oy|frD;Q0vyN{V<0D92K}*X8Hw7f97*q<I#HQW5sg-(4ZIn3G_*qB{
      zBrf;?{3yh6RtebPq8B+iK7Rf9^|62a{PrC{9}iuuF!WMYMn`<kk0ZrrQl(KU^@r#U
      zh23hrFY>ue#12o4&Oe5I7d3{!u81;D@`GtE_=KTurm_foM2we14j7tqo`rd-MuuTM
      z)_EG~SsD%Z-oJVoQ6NSAnN-reVA$y_i~k32>yV)~)DzJJ!zCXVP`6pjhl_>>2Wvi>
      zXfrq+D{aM6iQRHG7Wn}mXM&*}>x5^AJePL7DAsHT7@jO?FznO$96G&+8@T1-Cd1k}
      z%Ra7IKi<ABb6P3wejEQIZrjZn{E<>3A7;EL1o>*cR!OD{Qoj>sswXb)F>EjA)yD&b
      z<S!LwZ+s*YGg5`&Dj_$MPW<~(oK6nnzsLj>XG%k@j5uBhqteJMddrKcu?-z;od=>v
      z*W}RiT?qnvYe3MpcV;W}HQ~|xMarJj*y>u{M<?*Rk591L{fgjIC0wWIRST%2khn~l
      zPdUkP1y`#&wR?ejN`E`o=zhlP7hFHfn2`bX2cxlIIJjLYH*lxYo>D;EO^P+##r<DX
      C$K?J1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..249ecb29f3a074a29fc71f15a827927e643025b4
      GIT binary patch
      literal 3622
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceURLContext.class b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceURLContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c06abb85ec65346fd5880684d653f318ec64dae2
      GIT binary patch
      literal 11362
      zcwW6)33y!9b^gzr8O><)Y|Fx%WE*75i&hJSHzZ+W$+E3jl7%J9$Tk*FqbGUrXhxpJ
      z3lP>ok_IQCCA2IBl9tjWl$ym7jsk|#7(!E;rb|kiG^A-t6Ph-pX`3dL^qf0y-fT~d
      z_`ZDQ1Km6C-Fxmi|M|~y-^Xk3edz@Nm(d+wXoSng!imP~jpN42#;`FS439OA1tSxU
      zJNZwK`rT(nj|T(hzP(-Tk#O8R8TZ0XSmnH}JrW%@LXkkP5sjHqFNz2YvQ}9#2xZ$l
      zc5K_%)j!m>t-pQOP+#YP4gz%&Tr7fcQCB27))*P*9eeh+ZENH|Ed>8WG%{gE<3Te<
      zSlA_!8x!$hsBxDOI}$gBLnbfsjv9e@BzlT)Y1b@`+mYPCn@i$RBODuzM90l2p+*Tv
      zYLK--ewqF0rE=_%$cb(v%*Xm#1EF9z7~jIiRM!j;-0hJO(~CufwX>Ax$3iU8QI3lU
      zMXgF$F$ha_%tI+*URN+|_9VuK&1k<^&2V-_0!C=Shz8}i_3&V|BSaq*6$e+;4EW)~
      z647ae4ljH%tI{zCb7i(#M=|^|TdSi4x}Rq?I%-iz(8tVpn-LEj=?mUqDug;^VS|qO
      z@G(~LBSCiV<+D{X%}e%yNBF_Jea4Oy2Ruf2j}Xew$68wmn=N2M2FvY>M_F7;P1?*z
      zEO~_GBTIe<AK}MFZ1!RkVSXMcI<7!7p){uC4aFlvk>Tsj0CT<e{f|ouP-|PfXk|#V
      zUrj`!%5m13&hd$mA1&CTV=JyA%o$?ShDOYgIcCJ!xT@-0*|vb~)*`l}4conFCsY@<
      zdY2jEpwrQT9Rw{n!ZFQ9<XKdLUHFg}9Ks8nOw+L&UF?scU~I_X=yk&6fFC`g*B+)&
      z0lkt+d2u!8qWq;pS!?^^iD5r_u|)p#>)3|@fi0E=+p6k<sMQR3aScb|OhL?8`LQ1d
      zBybOAOLR6uNxYV$q>u$2DI*Sv5r@#v`NkL-iJGyP#C{%<90K9k9*cg9oT<iZ($=pi
      zXgr5zj8!14aj+^M?-t3Pg%)<$Ydx`vP>^+9>qLu#P6qlrP6o`0crX%<c`?owWF?Ev
      z@Npv)9FeqYuk#_oC8o-cW8f{E-b-`E>WB+ReP(zhwm%p@B1@0!I3anfC}f7ml8;X5
      zxB)j3ieri4WVAEL)t#LVK_SaOtm9_f!X68TN6eFZMj6TK&YDgiZetMvshF&^DJ$>L
      z@e$m~+>Dx>?ZVxXCZ*JsS0Cuim(2$r@ZzI{#ksHA62Z`jRFPx&xQ^ezC-`v2BVo$n
      zYce6WxZtSyT{taF{^Sh7I^e^nIS*EjCt~r+Slo!lD^D<Hm9p_Sb^I3YWzdX?2?mqX
      zyJHHRL2q^TeL8+y5{@q(Nxt+WgwsAez>fk}n;`~1B+mF<(a{NiA08n<>d$9&Jb=#;
      znjJK8s&I~^a}Ni_n(Cwsn{7g~76(*0y8nQ%EO#vrHYxr1L)_=Z=d;+D+%H;xQOED$
      z3Fo+QI*?TqGD!oKuc0(o!`Ejg3~Q&H^|X#4u9w-fIxfe0X+kD-OyN0pWIWQN<Zg5h
      zP{%}PwnxS%B4INe=i=}seA$a>!pg!0M{Itc&{ADku5)UW_T(<fly~7pVd6_U1e}re
      zDFXWNGG~~|sCg_AjG80N>Bn$d2)M+HS2%?7u-z7ln#Rbfwn!p8lHuD6qQq<B;6G!R
      zq))S#c=6{JL6R@pLq;stZp7jlEB=DeQ~<PIBXHChGc(hk7k|lZ)GYU9s?Rwx%*s0Q
      zzbMtxkZCvI*#=224}>By&S!7n@4fgIVcjfSIjd*W@ojvE6AP!lz|qdpz2>MHHNydO
      zM3SsyFUoCuKo}7-lN@cCF+8&$)i^x!;(LU;tmk{U(J;ieo=CheF(IYV%yjabSi;Cm
      zM9tCQN$1{jHn~rLlhD1)8k;yH1lTKavoA3mNL`!ioJ`BHBh_3;B>zaqTX=h>7SwSY
      z6QApv^-JRR-*o&te!}WV@*4`9Cx&cwI%W}~1siL|{HLkt$iAxh@s0%0JNQo>|Aqe+
      zloRo7p%ACA%&SeeF`;tp|8UPS)4f!kBttNqFp_@zIesbi?OnpLJYFReM3;k3PQ_xj
      zmzC6wO7hbMoK7NbgIU6H6E;VBlXn=+WHQYkF}cBroXVuYB1a0aL?X9N9^y-VQ6en9
      zl1E;CBqh9zFA1`;Gc12&6NcP_=2#Dt*L9B6S+Fa;zQs#ASEe+t_Jw1q@UUYh9Vb*G
      zaWZow;B*3)vrsU`MsJv%W;}F+6XVv|5&=}E(>&s9^!iyHoFl+X3mv=jHb$4n&bTa$
      zM0Z70yG0AQJ`fvOHRFyhwkEZDF_v(6(Ndk3$;GjRyZK1yxH-fg=X(%ctkWe_$<7QL
      z(P-oZ;ffhpS~$Q;XeF)kQWfEn0!sy~)r7s(oeo0tY-pKzQ8qLZp0t*4b<Tkz5;I`;
      z(;BMb(4<<?<kzc6r<4nAIOu#mao!^vIOnXMl_pttsTusi?RYHpEn-!n)g5YsE^%O;
      z7872t*Qtpv^3q0*shLqt?Z`rR18o*`uOP&J-RKrFMpf&gP$Y6RF=2PLPEnoPozj&$
      zHPe=y>x)A*O?^nAtGL(9lg=f4M|O`!TP0}Q35~Ptl~N)&dnfJa3WkreQBgCMb9d_0
      zfhQ!kJ7xB~dKp%&NzH6q6P3@q#b#yw9_fjHpLxSL_b5qTF2u=MfxCfyUlWD;r9$ju
      zF3+ZL4+uD?y>tz)cWM<FiH`A!_^Avq_sjZ&oNZ?bX1fs%N8()a0;V*0rN+oef21RP
      zJQ$6H$61Mj{ggv1Z!=(saB=!^Pa+iRjRg7lXokXvRf9ppIt7RoaB+i?b7odAP~c1!
      zaMYBqj_S5en9Bt=%bLZhFK2n5trtek@yKy=M>H~?u|sq_s#A!@6^Ud;;TwGV1CM+U
      zO_GE!aMF$tHaW&zVK(@P8-#_jbzO4jx?%Y|5ewcRZ5naqNQjayw%AW6=#-bFe@QFV
      z$-s}9QJrp}8$~lI@SOsQ<Hv<gFMXJ+Ri^jkYxj;wblgbajR?iV=}*bpFt<%4-+KEZ
      zi70nlLHP(?`97bF*NJ?r;6B;K|9Mcvf4%TQ{waoEjU~|4I0tk2uTMU}^Eh9=R`XcJ
      zf6H(Y?_0pX8lffkOk?5T6c#^&il_LehGmeC5c2Xkj{{h)o`ScP<6>*`?fk^e<I378
      zTvA)Q;4CU@>(BDfhO<~zTXz;~YHKG^eHQg;nHRIVz{hysVU~M0D|eb@eTt=in$5aL
      zol~2Xigm0W)a+6=iPY>eHcC^oCioQyeDAmP`D^~|;jzE=S*)s?#D?zr7tu0_D|_mn
      z!?ttSso?=s^SoQl@5i!f^s?1^o89H^hDr2IWB*{edkTYRrg4a09JXEzmAlW_7St-3
      zKf`d}$B;hA8b5>@Ji_`sip}^O+VFYo#usokzNoC(!cJnHY-{>)9SqjEm{$!Wz*6U<
      z9V0MV`zChPD8|_S-TZzOM|ei^je}Pm<-PJNq-=eYr3wzW)|G`PF>ycU)w$T@gnMKX
      zC%fuOt0r;NLpWIHc9q@A|MHtj-2MQnrV$#P#$AJT&*5WJxV!9AlekA--!qBNOyPIV
      z%e%7s`Awa*>A~c?F3<BgHt4GB8+4aF+;^t7PB5OtqiI~46z$Hk-ji5}bL{D9tiqQW
      zn`yTEdA9Kdw(5E8!FjgpMdsDZ3ZF$uJ8XPzWhV(fB=sZ1?#GnfU5t{8M}I9_`*{5%
      zzL3k;H&}yjDan<|m9}I*{s>Ph9{KUdIK!*uj3;u>;I`kbcodK`p6X!|?P_+{Hn^H5
      z@yyexXmIo7Y`Oa!&bjb7w(g(CV+zwLyim4l66eeQB!%anp5HHkPvI*vxxkZG&-ci3
      zCe>Hv^;3%KRak?ssj(fetFa4TSK~gsmId!m*zND|?5DirXIRU3%yzyNZpSZp$Ghmp
      zd*D)u0n#u`?hN_`Y!Ctrf}ubNSRfQJP~X5`F<3e(IEVtQ(*V!^27jvp?3<h|^4*{*
      z85Kf<3s}g*$_tn)Ly{POmv+lsaRZfNE|qZ)w?Ju?4Ce|<E5bkEyLo5q;3wih-!$H2
      z<o@xzEm5)_XlaI%eYSl*+sQtBpJ$qq{!brRdescle_)~K!$0#(q`!rK$&-F1KM^t(
      zE1FK?hv_&;ir<{U{bE~uG5%F4FGAnW<E88sULI1s?5?d(F|uAU@*IAwf!XyAoAV!%
      zx!4nHCh@ar{Cu#X+)XrvUz|}itee9BCYf0$G2bnWthX4c3~ok?B49H*6d{{AYEwkq
      z$b|*82SwD2IdnA^@wklkVm0+)9k)|0G>BF@hz`0IJ7@@d$UrXzGRSzyw)YU*D{vNJ
      zgQB3Ea0!z*z*?+kbbiG|aibS}YiBYt*!+){2lf^V>>|d6TsirG;_y%+1MMRF^r95n
      zMEK<UOD)Qk`Vp3T=ZsQS{vw|uS+>*$<z2v4_HZsG?#_q|S1K~7nEZJ{S}oOl(^N7z
      zMRRhwdvAtf`H>+q=YC+B56vhuY3w|X@B&dl^K(spa)u~KDLRkxQV$2FM>R5$X<ERF
      zF6y49#XOexsHkZ6)RucxTr?Mzdn7Ir55Qku)a-s7tIO4+b5x<>Ia)4{%9_1G{&KIy
      zeibzJ4fW?}g&WhfX0V}N9!yd78CIZ)i+hJ12<y1h0=)<yy@XQw3Kr7^te{s>M_)w~
      zz0Lvfb?l^Xpr5`8gWgc4j;iJ%Vw)PV@bh7e>ZqP2mtu$-XdN@4k^g&-8rk$Vd)AMo
      z)@(7ZQ6b~uwyB3MrOO!7ogA8ywY>~o(=7aPd9FWxRKOoi4*popd&M8e{vZ6Y!SV+;
      zX|!o3kNlE7@-9l*hQ%6Th2}z?=0=lNj1H}Y8^1Z|*UDgM3o<-%%r^Fz?UA7E5#xP5
      zvfTE_0ox<J4j$o)aY2u?=6FP_D&Uc3+L9;qC00(_icMK{qNkzW!kUW!ZDkj2OLr&v
      zC15d@P@5W8s1mT48{ZVpYghqj>rtd_z+7!3mS~$%t~E2(tyrmTL9KQbW8S7zU$08m
      zCR_DQ7QRJ%3rVK@x$rBr*iTm1A&Gvw16t`E<yf<|-39XAb_cKu$?PkT_c~_Lq|%O@
      z@}Z5QSR0#dlPce4^1{x|b19~WlTE7Co;JHxx9TZ(ryEtzIoc(S>c-hMsyY3sXt$Pq
      z|1~x4R9slgB{?hRv>TZVH({Q3GZt#Mu>Wsk|KGu}b|-deA4RYBaa^r^0@rG%mCd`<
      zCGfCq^I^LuJ#6=+tE`@M9+oP0xcO4CP<5vszFOJcDSe1`=ixtU1wfgU?yery7Sz@^
      zOj1wU4`s4Kdzkfp1SQ&|n6G^{<MLT%>sH3?P0}A_-0VE5bkkXnGuG*Q-~aShb$XGU
      zo_SSCp8hnS{tTb~ET4XM#?uY^bR*|<k3%!G4cQqbw{y{6flqt2KvwZM^g}Pht(4oE
      zlU36FC-rGevlS}4)J@R<bBgxMY%rtQOfqUYDpht_j#@gP#`Vmsj0?8*ZN}z1oL#<)
      zO6_}`S-#J#`T?`*Ev(mmhz;7?*rNS71GBBR8C&fPQ(<SAGAqLn9pbh$*R<=bc&(_r
      z0B`*(D4C|ioFA_{FCBCp$FGr2%j!0x{R%!FN?nu@!xgp$6=YgotDsRUhR5hg-norP
      zHiI5HCnxi}=4P~m9=jb3I;6045fODK>H1tz%bnd#VJnA4Xd*-C>q_WWOK1uEH+hFS
      zn=7_1Lu`pHwj{+O`M)QT{4#Sdl3$9dS;NX!QS%}?Hc7GWdcHey*?IgqI=*H3gD76!
      z`Z(PCmp-BPt>in!P1cDkrN?k>gvYgsVc(1eu2w8_U5QH97OZw%g*C2@3^G((+IUb!
      cH}g*7BEE!fQLb3VhTqE1gbcTdMRfcB0la*rYybcN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e668e2170695a0537c278d0e93fe0dd349f5bdee
      GIT binary patch
      literal 1743
      zcwVhkT~8B16g|^cmX`7%AcA}eh_t1!iik=PrRCF95K17#2eNI4ve@o4+btnJ`$zP}
      zS4<G1B>Vs$ee}nuceYhZN&yoeb~<zC-nr+TdvCw}{CWc5K3*trFbt)Pyt<?9YI~}o
      zWppE@rgV{2qk7H?>qe3cxfvs$;ihKk!cgF17(72@j+RCHd?uiZq3euunGb`K<L0iO
      z;0!%cVWw1(NvRQ$TPzKT2*cugR*0c$LN|14k|F0i$GeDH5||h1BsW8qofa$!L6}9y
      zg-etB*BD$8k>nmYQR{^pbqp*28-{<)4Tc6U6jU?RM|FcQ<}-0_u4?f#iPRVs2`#;*
      znYug|jV^0j&oQXce<~=+>4<ML^k0brgEOv^xBtpq7~FBqN^HmUw}g=`FjQ-?KgCuO
      z!r0}eMW`>3FyxO)I%--Y+fsaoC#;ZyZibdqbIdZyGo0Vr;-&{(=#i!ACAdDR<sIBr
      z(9h6TF^3le@G*Gfh2thENBDYQpWhHXA~IQFaKj48WC1S*5v0D<vRQ5<8G^oY#HA!k
      z(b_Kz%NJCJc3-5TUk#1y0|g@t-IsK!7o&Jc>Y6+!(!0cC+;=&Vl9Dd1gr`o0e#Fpx
      zrk#qCN!(Ao7zfq3+7bn<<m)SEKpe;LRF;H>cEDGDe~w&h3Z64GonFlBC3v>@cTp@8
      z33fr-&`1=@*jh<aYDk^RChU}Qtjb_8cw!=NCitu_XRM>b6b;Kj^w7{c>AOZB<m}Sw
      zpuHO&T5IUE4Hw-4b%DWP=MlVtHrHp=f3p3qOFP8_uPAmIwOBzTokj~0XhJh!?{1*Q
      z&QOP&Xr)NGYr`!&whrx-*G2ao=qzUaPG=YWt{$Un;|RB3IwwD(FF1IBzRr<D_}4q-
      z_QaL^08g+%J;c!ZJ0~j`-~aj%I6%GJf5ANm7LPHu5j@1>p(9M}ud{v1F-C}&@vO)p
      zKx~0cLZK0d1R+eK51i~8dG25uZ^%1C?6M{NR{!!_#T3HyYBi#Wkhg>03u4CRH%%|j
      MV$N21-d1hlH`Zg>9RL6T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0232cc693f8b11a796bf1ab00e7840313204b898
      GIT binary patch
      literal 1733
      zcwUWEYflqF6g>mgg>_Y|sG!ytK3b@*?*~Ox>Z@9d0zt)Bw(U@sw7Ye?B}&3K|A>Au
      z@slQ|B%1gG{0aUT^~^3oq?E9mnYlB2X70IX?%kiizx@Dk2ICsq1df%Qx;bmjS#M0o
      zs@P7+EZJ_=%-S{omQ$}t&+={8(GU?BSQ~nWT`rjaw_&ruf&aiw7=g`0wqyIl0%P&4
      z>y=EmQZmzSEkv3lwo~M&sN8kSMd_tlgEGE4)b*BtnZ%?(B<&WZj&^J@prJ!xd)9Vj
      zu3pJYZ^Fu#r9d?67Oe85<=JY!v>5Sc?3%!d?1rRC3AE*BDCCAB5NOZaL?<>Jia=-H
      z@(VNL_B^?XjDS{fojK|G0_Hlhr4m`i-7H&N8_mzkf}hgRE3o_D^0@C2IZ~gVmY$9t
      z>{CMRC&zeVvJ(ezNW(#a-j+TL9L5m=BOgv*Q6_Rc@@x%O9Aw(9R9#0peo8qzYTy`-
      zGYPC}RXRn1WW1U2${<#<4Ni!w6A}XZ;^~$+6~=&pBu=j2>A$U#=fT$EO%OmACeCO$
      zEf8B5Xy7c)32d6P%5@otm(g&6=dY;(hqUYX@{O<K60T^t%*6ahK3%qIH3Ng-#cL($
      z=K@K)<IMr`Hm~x_vXjxVksC|0X}BiPwOULKHw5;su1Ohqd}!H02BZz#RIWRGH}s<8
      zI&Q19xWkHwH<M^yQKhFXDb2fCCqr3kVaD{dx;-Ym%>pPWilGwGW`{hcO8Nr(v#o<8
      zN*{OYUP0crRgrhED&tdXE7O_x$F_-o$Tp7rZLsg;YyuI!Ku7;TGPVf)OMo!g>l}d$
      zvG=f*R)2`YHf#q1s|!1Lin5~E8K67Rja`AK-PjX)5Qn)>`Ca&qo~Mi0`=EXJBl?m9
      zUlEI)ZJ_UQOqo9-#ShSvU1kF(9=~fB;o|#0zc}_caOzXwGlB3?UJtSDiJouZV(ufN
      z(V@`jj1DW~JFY)XHZXE>5w`{-y^+t$VGS|>;0dWtF|6mzjTh*{ONKXvizrZ#X<8+&
      z+MLaDR_0s9JYEMfjBzJ}S(ae|cPSDx3v~*0pI&rUWj2suitPb%><i0QnWBZ(JliN9
      LQXYXv0l%@otuVnE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..778e041966106d043a9aa32966c6d8e79d3a1a2c
      GIT binary patch
      literal 1068
      zcwUWET~8BH5IwgoU1(QYpdcbD3QD^b79l(s3?X7AO)45OB!EV?%atzKy-RlQn*Id;
      zgFg5Jc+jMTL=%1YM;YgCH`wS)AMVGTJ9B2{%w~W6{`LdF1FUFBF{~Vm$UL#$TWwQV
      zo+FM;$CmB7cj}rlutaEXiD=vM_*`<<MC576Fcejg=~@)=ym`WHsUgcS9;1<TTvK`S
      zz><zH7}BCG8CabmD_c%Dx5Q9s^qG2%f*v`-k?RZ#<-Vipm0gC+rhmkTz);XJgj^13
      zjOfT?lu9aBc85^Hgobg3`95iNT*V;qz6*R$@m|xRDWK4B1mBLlCJ$a&O_wu_HhkN1
      zcdfutb^>Np_YAB3cF`+4=`eWehfY_~Ldy!D`2nxF+~Y!qaYOqIdBNK<0U1i=O5@)_
      zt!bEJnE5-YZGR`STS-i<ZSzx=B8ORwD1qj6lu=>OY+uNjb?l&rbVmkM|C;iw>bS4O
      z$huq{%N7khP&)iq07Guaj{=)Nb(AQ2(&VCYB(p9A4>nyZ3^}!x?~wpABzc<F08;c3
      zlkz~Zs3uERnpPe<y<VZ)3$hhbGOFhoHZD*!svV3?AD(0KE8!_j(LNme)QImfu{^<b
      zvL<5g5~gtjh;KJ3Pl|YN#rYNcDxFN_Gdh_3h=I&m`s|W48$Z2_$@H#ULdI|#cM^&Z
      zNfR52;uG@UF}rtxyFbYs?%<xWNAP||mAl+fE?s==sCycpF=(XdvHImQ?-XSQ4oH^Q
      qDBumv?=2qU5bJ36G`5k{GE4gc7O9#P%$Q?|{t6%|Rcj?I1AhSOkMDc{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23f9833499e8c29e9fd19bc16cf0c8b1889b1098
      GIT binary patch
      literal 4953
      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
      Gz<&XYPP<b8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f94219ca9eff4bfaec9fe8d57f4f842f3de11f0
      GIT binary patch
      literal 443
      zcwVJYO-sW-6r9(liN<KPKS1%O9=i0b6rrG(P{C^Nn{<gA(%rI6O8r@$1P}fIf0XzV
      zzYy^x%MNdbd9&~B%j?rKfB|{|T7+R{Dv`^TTni)T+GHX(Gc77th}617vZ%hR+v|8_
      zO{v!9g-lE9?gMy){;!No+l9Df7&m;P+)AhFtH&qo|L`vtT3jW$N<VW6{+Twq91_|`
      z$5VngvNIK;jjad)HVEBV8#S)xiE=kGDHNd>+f)`)>2%FMM6bNlOTu~lzdcV0;lx&s
      zm(X?W!Qa+?{R$4jlk@HHUlSjmnQ@buXgJV0c|`cYMGFz5--rWjGe++Q?4aAU?>4Tz
      EH*i&Wm;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ContextContinuation.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ContextContinuation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c12490e32cbe16c0b5bc209c167d28c76ba5bdd1
      GIT binary patch
      literal 8448
      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
      RH4Ers3uvXLio0ss{{Y%@bJPF;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf7b508fc9749ba0a0ea2040e6f5d6eba332c4f4
      GIT binary patch
      literal 1061
      zcwU`S%Wl&^6g`uKxN$-QX(*wTk^*h>0t+O>B8Ua3g@tKFgHj%1;kctP!5&u=J1T!w
      zBv1uNd;lMXxSkqlRJRKj^SF1;IrlX`e|`G_;4W?($S~X=%E%fy6KCI&jxXfU8p&N@
      zMar|3FDzS(!^eU=ayVX>k<XPAia;93G2A<wy6uZi?VjT08J4CvCol}gn5&6!Im4nI
      zW3`;(L&`;cw6>E=mm&X9ND)4wR2pxOke)-5y-<;4_bhI+&yaf(>~a%XoG+n(S%&#E
      zm1e&Hh6^Pam|-Z}Lh{YXA8_^38F-Xp#SUD@>pM!scH+#1@5Pwmf&E|IrOIXoiJM_A
      zB`E?py+2Jd+(1sa3K>=#Dfu6BZ4E};4ZB5L#We$q3=5~XsDve4rxtrb@FCh`SUFu=
      zPn-Ke$h!uX8LCqiCk2|Q<7V9GTMTO{S|`(N_6@93{r?`;_g%i1{E?(V@c>fVlMl4U
      z^lPHaVD^GYxqL%-`j4eg;Z97%G7UdV>l`h_e}MK3-3u^jFOv0w>@1zdR{Id8R_6=K
      zpET$q?X&u6gXm9*@C+5Q>PK+Qp$h2RCCqF2A}&*aSiXiUiTnsTjjy#nqul<Ag$$m5
      zNBwoXbBG%UJM2I+tE91##H<hl*dg{S^1dPMcgNz^{>H6g4GkT|L=!C?x2-ep{07F5
      B5w`#U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ListEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/ListEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebe526a4f1a0b0e729d366a99bde45311411ea3d
      GIT binary patch
      literal 854
      zcwUuKT~8B16g{^tU0e%Ps8tXUzo3A)(bpOvA@a0*1Plq`X<8<An%!A4ohAM(eSriL
      ze*iy<cz38q%4)*P%-lQYoIUr<UR_`O1n>b1K1zg@j?TiaI2GSQEfS?WVOJlkFf(yz
      z5*0?OXFuyKkw#dRY9Aiq<NqmpiQ0DUTf8!1_7>+3hEV>bw6d#&dgCa{!C@>Ixo-_4
      zn~MhoZzDaH0UqE{1wMueW0BHwJ4;&9d=af!62_ynE#d=VR9^R+p8cwNgfP0-v`xZr
      zOEExqm^@M7iQu<WeJYJ5%r^==|JB-Qb!FQ&eLNvd4Mrh1V$tjE3T1pe<*^*ir74rt
      z^2n2T?qllrjT3Z~3Z^l`HagPgGK5-V@ve^mHN40pn<Fd~_$*G_?+>4cS}?kI!gdMM
      z(Z7dbRIs0BrY$#B{tmT)gx}{>yae%+5{CG{Eb-1S%j-j~R=F<mUS3*0NASblS9lFv
      zca0hA7~xa>28B_K0q#`AW7c5jnCNTm!Q-z0)l1Y4m&fa8cy^B2t#{uCR3lc|a;kGT
      X_&=&ucKV9dMj7`SZ=Bb+jy?Yidjr<~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/RmiContinuation.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/RmiContinuation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8b6df6dd2869551df3282ac1ee3def514b91665
      GIT binary patch
      literal 8301
      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
      SSi=T-jt#U@@;?nORrWs}*GPH*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a16cb51ea6376d2693867cae9de052e5591236d7
      GIT binary patch
      literal 1159
      zcwUuK-%ry}6#g#jsEi6j5J3<{6t+&O5TDfeLbk+YLL!C)c(E%ta7ovau0<aGTYTmL
      z6M;k%eD{wsez&V*;9_Ev+n#gp_v4&%`}5bg3jj-4GSMfnyc;CWzI*5%If2_$!LG9(
      z>?kLRd?#uu=Ur2+rrXsZY0AirRT!8s1d5vD_$~=+jeY6GCi(?tt|<M*6fk_%iUmfu
      z>zDlXI3nz&fH>fKBhdd!1uA|mFkb3`D{oL{CESq(<S=Yu5JiDpsk|`&fm;?#+z=S9
      zt3a+M&4!HLyA5CRq#k;%zu`to=h>za@2Qr+^ZNf!f%OhH6j8x$J?+W#!r)LwjOI%{
      zs;*xj7zNBdxAiuRWLp20K%si%$pfw4GBG1C-D{kGAO*Jjz``u1*ls3N^<`5AF<UYM
      zdBjr2N<EA<^Rb0_%&`ZJ%V>IlB?|*6XoPKH0+S}5&?c2gV&yxl;d<ijWrVI;Di{{X
      zdw$qrH-+^ui9A_Tdd8EzrnjgSjak~{xbo=ZFUgC8e(0ZO;MH0@y~(IXgvJ!?a}3#)
      zQ;d9J)`wBPho}Lpz(AGU8pfE7x6!!G2x)YO>ViKmdtxqd7gNMcGd7srOI;jBg5SJ-
      zhWp1IgZ^}LGZnVlfJ|86A?E%m^XTN7%uY`k-eT723!?Q|(f*1Bu91t+$Q#GG>*e@e
      zI>n9-?=;id&T!=}oe5h9_9l0>j1Q++SUyAf<U1;x=Xm-9R|gtXJYiuUyNt>mqeYsw
      WjVfu*b$KIg=TBWk(IGl1>e+7<(%<v|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/rmiURLContext.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/rmiURLContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9a5f28385a4749b93e31d7a7c54ee07a001d579
      GIT binary patch
      literal 9374
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.class b/libjava/classpath/lib/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86da48cb36b566081614c552a043c7aacf9e5f02
      GIT binary patch
      literal 824
      zcwUu~%}yIJ5Xb)mOBR-tk5Fh+T3T)aBrFi(5=0M?P%CYzR9d7;T%3&wj&{9h<3-`E
      z=m`m=K0qG|G2ZN<gj_gy#-8!~JRkn|aQ7F$4%U545O%vJ7d?3;2g1lio37}Yjuv?q
      zi!9M@{rVBMQe)M?9?8h2*|iUku;5}uEIHtNyQd=Sqe57FLh4`Y(pg3lDhJwVdq|jU
      zY@8CjR@zYkCNW!uk7>eusEs<#leWr!%66;>wJ?ojd@3{T&ZW__7rIZ_3tygnld#xT
      zc9_>!)3?$@Ozbqm(TbYk6Y{Z4)QG7h53M4%Iu>7K|H8T?n;Xx8K9&euFUUDS4a=@I
      zE8K|2f6siAmrd8eN~X>k?%MS1HEt6>z_l%nDTLrVXUh%<E90vo%qnxGv(zNYSi<ty
      zG6}&+nrD$Z(rz;KaXsI5fmjERo!1n9zX{enaF#QC60C{!)aEUMKZU!>vQilL@rq@2
      zcmZ>mXU+c)i)HW`Lme`>N9}jryT$995yIz!us6I_65Q?$-WL7<b-d#Uw_C+~=DFPm
      Mtifad$Ab3h5k^+hSpWb4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/AbstractSessionContext.class b/libjava/classpath/lib/gnu/javax/net/ssl/AbstractSessionContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6beaf07062cfc889fa6e62a33ab25095c37c8f4
      GIT binary patch
      literal 3707
      zcwUuP`*Ryt75=U*X>ED)u>5FbCytX8D$A|~r43CS433+$YUL!2j7t()SW6dq)78q|
      zT{*USKMLhhUJWgTOv<A)Z7GnpR7uH{l*c4Pff;7_5BQ0{0{HG~Em@Y`2F*yjd+)j5
      z`OZ1tJ$Lo?e}4CS0Pn|dG_(jL3U)bl+E_3aQ?~R{u4|<xW?j!Qa$Z)tu354tOSUH$
      zJq;m&t;#ZG8FnFcboR8&aWo>ZvvGYkn`vAspm}Cdmdd;n_Y1U}#d&MeGF(@nGgF83
      zhsHRcH4C=kl^rQCzIOh=aOP$ykBt+o?Lf{lZPObUXiW^w2!tj}d8wgOAk_>s@01qI
      zymV4o#ZflmwL_pwM?0bdTQa6CkCcnE(wR19Ei#Q|N;$)tF&tAp2ZJ59Jd?Iv&#-fR
      z8c7V@Jb8iWp~ak>_c-Qi=o9E`%5%*iitQNCu!F?b<V!~{b_#UU_1fZ%MG?m?9lNnd
      zAaWqc(ze7Z!|6GvbVh|THZ-H*JpzOExwK`;f?-YMawJ}3qT#kiD?fVAG}L6xip4Mu
      zW@LBf-SC))7IUrTx|p=oUFoIk;_6N`sY`{C66mjwXJxMJnBLMVZWB%G{y)_zne`tp
      z+e-Cmd%<)~W^lr`OP<e|%(mCyQf}ZsbzDAHHXW&Uz?OOG6wNAXHIyBhrs5x~*>FX~
      zGn|6-svCOLw;iSJC~ZgA=gBo3^R=@NV;c51Z13!n>&c>y1Nac7P2`m{O&PXPkPaC&
      zC~D0#@je`6c>~UE*xQDYD8@0V6nKxoZL71M^&HbKj5Uu8%|vk+_i4CSAikl09ci%B
      zY{|{Z+@p1;igl(j>#MS;$`;O9#_}>X=N8HT9Rd{SZQSrn^DCP^lt?R<t$0vHwmHhS
      zk<~GcqilDsTq(o!N=poRb0#aCym^JOji%Wi3N<W&fyAkUL(Liq=EoF=Q#wA5huMr(
      zYr9uzWv9QW*=>E*K72yQCt;8|!*`_ZDcVz}Whu&RsP{*a1KVky)z}b7$EOrT7YSz!
      z*Q@SunO9J%r_Sln(55J!*6}DTD$|k0(gIT%Rt#B|cDIU@rk|Em2blm@m1kq>?C$Hx
      zDg7=fVz=~ArhhU`=jkH8BJ#3lTB$>JxhNff507==43;!33iPaNpkrC}T^<07-XTjC
      znK})&a`IUnAH#_bd>&ua@C7#9jVS5(6243bk~t=&b6?5z);97Wt|%VI*ED>!aSQu%
      zI-bDS84;U{VKJhf)oBUNfuWO%%{O&?3s2Vl9V<DWU*oij^*cJgi|=tu%^B`g$&o=!
      zRTZ41isyWKv1W3doA;pv3wp~2=~P{wwe8!uJ`{s;aR;voj@Qn@+RYS(|7ra<eOe_W
      z?+a*B_57c*zig<MtfvB6bvDhbeL0YL2Yo5bU+`3_N4s)-Ifb%HObxCL7b(@?1!%Bn
      zEDiD;7@U=ZHqAYAK}PW$UR0gpr8U*5bv*7__N$Vu6d86ES?>O9sqEzBVN-RS{`DJ$
      ze-4CpQFE>QhS7qM+G)&CRK3M;tb_M0(6Nc5o3NQ9TR4*BRed6{t*;^Wif_~HuWI41
      zB$9z1e-y;&#Vx$s#`_T0#eD?F_XrHUidY5xZ$Vso;40!Ll9w@ft$r6EL~*Ns?Z$fp
      zPrV5HC{gam4lHnNksg<Quf4SCpmhR6eCpv{62rV3!U%3BhZQEHL3Hoq%dWB$xPz=d
      zki(t0%f()N(B%R}cG*u2u>A_|&J15iZ1^h1PsBbFo4AaF6&y+iNoe({4KRhk_vzv(
      zChaT{e!%gwOv2OX$1^pG#KQv&06wJ*rbyrjpL9PlYEJj(cH?M}_QPDI)<v0{W6Ays
      zj@MJancji(w7<ZBpIzl8ijQIj@b5G{M66ELUjocBSE!YHlEW38oEo`~zAJcSq=H$Q
      z{4EM+FVGujOmS)CQq5T(BK&=YzpoPXH9o(Nov2_JuK11ztB^Ivdr*W;hY{>R3G+lz
      z6dtQm5Z!!Mn#(6EaE@HW^zCn8LEtTXdVeSx4^{A){o#1{1|k=+FCKmapA*<08NPvz
      zc!agMh+Bu_kqW+YP8n=d2Hz0at8MSmo>e1}c=!?lzb$a?zb}e<42Q`9c$1#5p^MJ?
      z@dxt$Bf0*GW&bl(aUFNz2JXgRFoCym5B|y${S8_Col*UR349Z?_@^K5@hbmXym^-Y
      zDZh+)7XBf64C7(S;A!Tii=LlhHbV3`&TRaUb4r&#;))18=s3p}S}3FrV<HIr7*7Vp
      zy3^OK5&%onjq}APUarLx@n`<!^QlTGC_Mj`U7#RDP4_?H$j|U|e}<<iM?2NaN8sa;
      zK<op`NBi0H*mM=oorpbu882K*_CHRq=Ibcbg%=|x#8$M6PIQSF|6+8l65l{ACj<DU
      R5+8lO+{lLCU-@Xi{vR~AqK5zg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/Base64.class b/libjava/classpath/lib/gnu/javax/net/ssl/Base64.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbbea5b430b4455f23b7a4b783f51524c9a2fa6e
      GIT binary patch
      literal 3230
      zcwVhm3v64}8UB9Xm*cvr<J4`^BqU|frb%5B(i&)+v`Lymz%-=^Nz;@ye%vGu&b51e
      z-6X7pQo3mxL!*c>6*^id!Ww&sRholHN45!R6C2VtZBsR-32oEf6JrnU!D#lMYv<85
      zMHO0<d(S!l>zw~P|My?Nap~3905ssZ1_z;R$jAgn!big60YkR}>2xB{8cyrM%^GBa
      zM`!|xurU<qjEv|}i=ef(bhRG}ZYFp`3)(Krj2lDS2+P}&M%oG+R!=yQ(VZwF>}+Xm
      z+tt4N_B%T6yeo9~p3c4Z?Ca{jx2Jc1-+^!>8q)`dhT|jmCq|8A>adx%GDpV7Cmy(|
      z;pWE8TY|UTdRu*fu&l7@p}j4;2-GHV22BKYd)$ay%>=1-Lk~f2OU85;B$T+Z9L0nc
      zp}3*%$&5yHvpXC~=;F-DXgJXmHsfMl5X#nYJWW^=x*8Uom#Q04j!sxz+uz!;;mXuC
      zloM9{uedccIH;R0l%d3hN?fO*>M~UGR&G?IhWCgLhs_qoSg!5Z&?cO&cjF_tfi>Y&
      zN;hJJirTg-_s(y!&53o4jZ65|3cn46jkQ-E^s4^CvEGf1@DrR?GOr`7tX(2ohCGrP
      zBslt8`DKmq#vO#Bv>6TQ#*j5kP~t`^!?~!*jAc(8{cIs6#kA~dN8m7Vb`?1Ah0qAQ
      z$MihztCmVd?CxqGkLoEa&UL3@2cgt9izfpeo%0$EErhB$MeBs6x0q&lqSHPa2h+o&
      z;(FTL*oAi9G*L)`>#D<row!{T)E)VY>2cvsgf!eWx0QXOHa>DVYU!pMcViF19Z&ZT
      z$1Odb3P(kW@x2`oTkLh?9_(Wp#f_Lg-Z_|$*`cAEOY2Hh;)$4UI>E*5Gm?fsUye1=
      zxy@=^=)!(+xIVU63ZWih(J#v3Afa;U>ajQ3CJgIcXvTh#@qim)k+Cvnauyn*%%%m;
      zcGFDqu{g0C1b1qf@s>WS8&*wvIGIVrY9e|~#$Z_aq)agvBG~T)16n>BP7Ef^Q9V{u
      z$R({G&M>$1B8(uR;r`3%F_GrDZj8d<%g{}evkc8$<6b^};qv(KDVQ1#FS`CkYB$ml
      ztt%x&2_t_UJtEB`Zj51^8;q5luL_~ID@%%qHm90;I+I}c>iM0QEFdmk#l}H26n!+s
      z^($hel3dBIu4KlH>bv8j-7L#zzDY#mKFl`U%^X+*1uCyJd*$S{3(Mx$ZnkoWuEvrT
      zED7*PJSufl@O;%a@$y@>h4-P9-|oBtR>H?)5msS!-dP&s@I~z6uY0XYz2MxVU2tuc
      zr%~27g*96hDX2<8EsOX3Qk_pdp;BYFU!I>SbF&kU_seC;FEy56c2YUoSuV@GP$#u<
      zzii92qXR5dc;#6!sf_y-Tk275vC2!&j>*n)#p~oSn{uegVQp{4v+$kJ$fs4Lp2jj(
      z-k8Js-n@}~Ek??<7^xp@RH>YsRVz<n)-U;GzasT__jh+oL1z{vexH-`_c;eRe<%5z
      zmCwz-^WjnWzvW&jpG9%G;%O2lS$MAzi@g2PT9z)d%%Se(`6BxXw(#5JicE8LT3l!u
      zF0mv0`4~e5CU6}-hFToO&3F*oF^L^Gh7ca+hH@O^c!b{{$4PtwXYfg6@hRl+C|<{7
      z_#Qrkx9~WAhbQnZp5*HNEEVH(v<eecfoG^1pQm~}OAR<n+j(rq^Ry4=Xb3ORBwnP)
      zkfmqv1v-Z>(s_J|zJagMcknX3iSu+3Ir<G=p}*r*dLI`Y3cl_r#f+l@-*Qyrb;o*q
      z+a}GyJTb6|83ucHQ=X%aI?kto5zrj#(8yW|ZpT_|W-Mg*9AyaN7A9Mn!-rehPDO>o
      zi`#gn(IzI|R-OscZDT|nXyVW^M{Tz02%Gt!x2LhQuP%pHH8F+VA*o3U%2IQdR@7DT
      zMZSWLQ&6+GWUo9;XT{<_UZ=gxp);uXl+&o5MswdZy868LPNBD;JCMVDQ~2mi<x3(b
      z#ykHf`c5@Jjr>IUdCJFS<7weoF=hN@P?nprc-$v1NVTIUkFmVoC+BczLCl4%344X@
      z2Nv6V9%4!?>7p_Ngp0~9{>3hW9E&_8)-Rt%q|Y0h!r;saiK+xZ&s}=Q9-qhQc{HA|
      zvwL(=ZdHY6JwFEoF5V%5LKZ9M0DW3uSUewf_V<NoXT+v+_N?arEY>Y}m7PbtfNk<J
      z!$O>k+$y+%EDBPeLuP?NZ*VOEKjLowV|bWPrMSrK`6+*;e};AVIoI6Vd@H|X=KP9(
      zk^CA1_$_nj56q80GIRcfC-G-y&b#<B{(>3&72m|)m_h&G2>)cyf3fu6EP0P5m&lD-
      z^76-GB@wMAnbzVWZ6qf(lZy^gF%41)|L7_ui+nW3^W#)bpQZ|WimK=ot)<g+J)NN&
      z=_OiEU!z)@;q{vopdU~Jy+vDW)->nqm$}a)|MLDJ9^f9ppK|&>_W{8gAAQ&6g@jV(
      W<AdB4WX|pvc!*^RTOPBqdHBCnvF9=X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/EntropySource.class b/libjava/classpath/lib/gnu/javax/net/ssl/EntropySource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb6337a81922352b7e33da04c80b69ac4957d86e
      GIT binary patch
      literal 176
      zcwSYFF%E(-7=_=DNEH|31zcgF@d`v;9UPr1X$Yh#N?Sv(=HLN5l(CJIZ~XG!_uil9
      z3&0L5hJ>(fwd1{bh>2@yxiN|#v>k_=KM!tfBtuGA#{ySExBPVNWn&5K?u6>BC(Md+
      vPgrU>+1gua2x(DXYC`@q96Kcmn?Gw6g&85N5tD?IIWojEhD9L37&-DUW`8Nm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/NullManagerParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/NullManagerParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c66d4bde0e90eb62140c105d509b21d6df0109c
      GIT binary patch
      literal 370
      zcwUWA!AiqG6r9(liN<JakA8q!4=!H3C|-n~VilC$U*ZzCY&Wpoh<=tQ!Gj;*M~N@7
      zAc6;3c6jrc8HV@q`SuRr1mgrf!a?O4wctm7Qcef8T3Iz~ti58#mG(F6d8vc;s{|2Y
      z)C!elSE=h_q05jUChY&VudP!qL+zh`5(x3RaVA_4`iGM_A-b&Zb&5W=G9=g_40Gf3
      ztXUS?-*I6zVVu_`+c|sF^7S$b4@S}^`9G_l5z^bb@ui-c*1z|s>bOmkvq(Gn133}N
      mlU{<G!c@nB!O<(y7a4lU1mkXbifzH{TYw!5JNu|p?S29F#9T!H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/PreSharedKeyManager.class b/libjava/classpath/lib/gnu/javax/net/ssl/PreSharedKeyManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dabfbe3f67d8a2abcfae74559066a59fa569e60
      GIT binary patch
      literal 350
      zcwTLgO-chn5QSgGn9=wb#Dxb?NI+~{XRRnk6y^kNr|5JTyF+)6WUl7I19&L0CW3?L
      zq9|VRJ|3?=KHuH}Twzq8M>w~>R!jY=*UEENDOKtza=Flv=l9$^Xs<2D0)4`$wW&&b
      zs~(@1Y;u7C;q*7$F@%BTEShjJo^@=Qqw{t;nSFyMHme*|$tG^xQ^N3iZFrSk@TtHa
      z;cNpZHg$Bl=^|d(=N~KK*epUwd^eY~_->uggp={)Z?;5~p^k=cT*Xr1pT?IhB=rbe
      dGTZX8p1h#Ij;LKxec3~~?BhTb;jne!=nKR8V$}cu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/PreSharedKeyManagerParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/PreSharedKeyManagerParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b6418e66015f6765011093d6dd95c4d8b854cdb
      GIT binary patch
      literal 1549
      zcwUuMTTc@~6#fQE3uQ}7X$#&F729%IQ4yqA6a*zKim8F<iy7KUStwhw-4gqsc+f;4
      zYGQoy!5?KjGrP7$TB8rUGdpw6cR6!*e*FCW6~Gi01L$DTi&j<N<%j&OZV5-PR7(1W
      zEpj{D7KJrYTjv%p3VVawd|x=it_0v?h{y!J#I2(Ke0x{qodEm{qo-lK)D@n0%66@R
      zz~I{xH5$$t3a09qCEYNsJyCedD?97_Aj8m;Gm92?s<vQQZWlLiG<4(~+q8-q!_|<t
      zYX?qQ&xyP(9I}zg5~hFNv`i<<(3wnal8U8rK?Ko>u!de}0rWErwqXh)f^ZKQVj2SI
      zW(d=^cvjut7WPZNT_TlHqnziZO>Ud=+gtQGJ0>}uGXAs5Qf*NwXBbbOwV7(?Q~J56
      z;Sw%0bQ8i-iC0L#Kr+<?q82mK)3AoC7@>+#C>>xklY6k4)Y+u~t}`TB3n0rDd64Be
      zBbq!NRNbJ77M|K!N^MG|X$@l-C#3|zFxx`uKWQg`Jt<(Q9UHZtE%wWYLg|dRs{L!J
      z=eCABvT}YmnjvTwgyooyDX89w-}P3lv`R<H=_erYbjytvjht2IGppe~=7@zv=j0Lf
      zpUS7DOfTk<4d4Mo=+uUW1x!;Dm>vfy%$2KlUaXk1Ge`c~f0Gi5T7$|(PZvE=+4nT|
      z(B092pjxB9hTb7sSyXXABz=Ou^cO^4ogn%V1MgLIoZfvD0nEThhQgRbg1$622ZI=*
      zkuC(B_wZIJtAob=v144=N`JrrO|E>ywRd&EpbE&6kOc*na1%T*IlF;Tf@8ReqzC(k
      zL`WHN1v_5HrdevMp*2b>fyV^BOf)Nq;fbOcc9ZKAagRdICNN3abf4muM`m~)V$B|=
      zzN5=`)OqxWjWyyjnry`C9I?8MyO^duxBmAO!;D%7LK6HKGoL^m)~JwQZN6wKb*NtI
      IhbrpPFBOMpY5)KL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class b/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..78dc1ff30beadd80a489a4e5f868bf5f01f55200
      GIT binary patch
      literal 9537
      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
      A$^ZZW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SRPManagerParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/SRPManagerParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f51aab7a1c75a6c3f3ef0efe90266bd7991c8b1d
      GIT binary patch
      literal 689
      zcwUWBTT22#6#hodP17{HS`qXTUZA1pA_&oXu#ya+-o|aRm33EU$FhG_Py_|_81$o}
      zv#Vr5gbZhQ&dhf?-|olf^DBTYtQrV0Y_yynZ;NZu=Z@6e^K4!}sT~SOw4|yDB|1_|
      z<r#=Dq<tK>h1254&9*ePfhZ~bW)G<qVQN?1juaRomzFIVa@CQgscyU4<(?p-r@Fi*
      zJnzO;7ZpNoGembR$I`nD#j#2G1{syy3mHck$pm7UW(eo<4FhS0wNZkjo^97$%c0rI
      zeN%R|<vMYskc@$0HUR^Z45_N+$fI7TDb=ZH`qO8st|{z>P?p~h4<q`@@_r}#?_*N3
      zR7>igb2Aij`EfHc#OrQPnR39){^hah>tLO-gsCQ|GJYib^C8;D5U1x9b?4NF=)F*Q
      zLZbMNsTZWqo-p%PC_W-{AK>Twd(r^*5J8Dl%1C1$^EjaL?*au{i$JjRofxepWQRUH
      c=z)pC12T8tveDr1IFLyU07Dsu<p8zv1+XHg$N&HU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SRPTrustManager.class b/libjava/classpath/lib/gnu/javax/net/ssl/SRPTrustManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74bbe0727a23082bac6bc414513b048f1108b839
      GIT binary patch
      literal 454
      zcwTjpy-ve06h=Q6N=gc}{0?kv6eO(9-8vv4iiikefXM`7Tm`4H9U!m9zyt75i0c%o
      z1(m_Rl6B72y`Mk7-ai2Ju^pkoaG*@d$Kpl2aU(r<F6Zf0a&1fJFN6_F+6c=G-GK01
      z7{xE|$1?K~Rv7kwi}MykD=Ul_+Bk;Y!_mx7z12nydbbR*lKxy)iO|F!FM_5|PG+Um
      zzT!XdfFU9^6}e~FTjbph8QO&0NUI-p80YB!_RqpU@u5~{#!DKVx_3xTgmbTjeK^&*
      z40>-giz>6##24HN+S=I(pJz#r)1tJQoSHj-@;nJGC_IKGI!*eECIuX!g%I>A;<~o6
      TR@ZfG)U|^ykqn!3H?Z{$oq~VS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SSLCipherSuite.class b/libjava/classpath/lib/gnu/javax/net/ssl/SSLCipherSuite.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..557e437300a0e8d5fa78e3b8e6383e9e1828ca2c
      GIT binary patch
      literal 3137
      zcwVJeTXWk)6#mwhW5-c1ahtYDLvTtjzSc?87N~oR-2@Cy8tUK>LIK%P92G?}x}+`4
      zFg(zg&hQ%;c<F1Ip-G0$w0-8^@CPVoB{@!fVcg-t(ysQL@B8+gvuFL+KYzXeFp2Mi
      z@G(Sdnw_~PZAuR^nrvlEQ_Yl0#k^8qmyMFGSaJ{o!(ncbQ6;UGxm~#@S1pEMY35G3
      zke^|Q6q~Ch%TTmhmf=8N*Gx;&tg@uqatQql2loRr^h;_@Hxz4qgTbe)(qkn@z?-sR
      zD!RsSw%AeJf}vY_RaeWd9g&6VhQ6t+$_B#;SBxoFZ9;ySS@2fKs_&|zDb{s{Yq564
      zE4kjt;$;RQudm8s_%S465XTt&v3R*3L@pwXz92>zPBj?{sw&qcb=s)e8?t82JgCZb
      zi?Bi%Wf-qI5s8{SB+<gH=!R`t(TW_k?(5OYLrXTp7{(YUdYfUWgYtMejB%U_LKN{1
      zPBR3ms;*IZkH+G~*1To8%(Ef}Ao5X6!~q;+I8;<LdEVZr$i|{nQDvS~y(+0?$x!&*
      z`zToJib;Fx9I8FJrDzY-WUJtmK$Sd;vEIVFl8g5O9^MV28N?**Xn)e@^^#p(pKesw
      zu5l1k498m|n6nj?DkO{x7~+r1BHqP&R4-D!E^Abl=~#Ol<86uXV6q`xVPI*Fbd@7r
      zYXNAatt$Zcyum$hGK|Iw|HVYdg=M(?EfF)ArITRku1#zDJ=QQK{X-FH6c{ddRMkWD
      zS9?xox5L;24Od#^O6M5nJ1G5M(6{kP5DN^)_JfqXfrvXOF^E*c4O}Ywld<?pH`Wk7
      zr7pRj=Sq}kW-N>ejM3TAqz&Hl>P^7mu5grAg?@!FzQor-d_}FLv8$%_j8>yl%R?kF
      zEOZS~Z$azWD5@e3;V|C-(X4@rs-L&eykwiSmDFC!#dSl!&%4AvtmfAsXhX^7iXpG5
      zM3X6Ko78Cd;arpqiudkWr9Ni5*M#4Bri*XjoaOO0C31_kY`I%&$hzsCZr(@%-oWVe
      z3zYVp+s_*DVi;*0u1>j&xTbs00ttzAsmu=7nXI|DLbG#dik`{QZIH9q)`+9yM}9Sh
      zOS)}T<ynQd>m&Q?@jQ1D#wo9U`U4Qa2>tqK7NnUEAw>A)MdJv+9h^7a4bB=B0lmWz
      z=oX5Q#}S%6CKQ3*iNrRJCX&x^JoO^*3l2QT@N(qjHr{%fNNpkd3ggdkCXs%IbH6)S
      zae9t9oL9;J2KsT6@TcjL%i%Qgw0;W-j_aZ$i4@?B!j4)#;`)5fh%5AyZyM+6ONPD)
      zWHaF?T%{FmHSru5mbY;+v4u;K_qUKu`lkl*`iCuCk4*Ea(3ox^zk?5+?&@^;3XYy*
      zE|wP)KH@5v!~Ibkw@%zV%9C%xo!Y_2t>g<1dDI2lC7<-j`G_aS=g26u$@rO4%sr=e
      zFkkdvdxArW<md%Xv-FdXjV53G`ugwZm{{g2Ba7Q8lg=zD*~ZdK0_i8{L4tAxjX2d&
      zCio><S)rA?R1HfwiRvDaQ~1oW6G+N3J|~nu43YI0p2)d2k-w2&fZi!K7YQYjJGlD_
      zY%WD5Re6FF^IRX**wPhYSV(VSb!k|5nR-gzK4Krjx~J|GRWP8?Or<bw(27nuGf0(*
      zbFfI^rlazr%jK!$BOXAGmcTul`N-=iz9AGp`GyHebLw8ltXKINdh^f+5`W-$YrejB
      zNZi~6yy6{19p8G+mptbIaz5jpk5-5u_dpEnLKw7<cK%AM^P`UZ7VHkr=USZ~w>#6H
      O|4rPdIl}|T`r*HZ7Vb&_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SSLProtocolVersion.class b/libjava/classpath/lib/gnu/javax/net/ssl/SSLProtocolVersion.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e36144967aeab022a680e849766769c20303353c
      GIT binary patch
      literal 1205
      zcwUWDZBNrs6n-x4+O1R=Ro-7jMc4{b$D7721Vb=cEMQVtGWAQDb(VCkX}d-Kl|l$a
      zBk{98%6M*>f;y9Zxc9u=bDr~@d+z=I<MRc80v^feVVJ4=P2<pR*&htwiH#`o49hZK
      zgh3qC0<YqPksJ6jM20>dWq7t<H@5s{gCRwMt!0K;vm1;eCG442t3a}09|j=<D|6lT
      zx!$|Av%fu4d1~%&SqyWpy2VVFYM$%6@j8Q$%U2l0&ESobMoIyLrs5`UF-WC$$Vkq-
      z>cWac*RL1L<#N7~q39tMDM)F^+!$3ML*m-Fie9J;{if?XJI%&{6Ykjuo<s0vP_w;?
      z9lG33oC*Zo=2fQ&uT!zhQg>CPk>T2m3I!RW9lvuUV%oC3rb9|Tm+$fp6yz~4Lubfd
      zD|ZydPD8~49x!C=Ftm?q!TTcy{W_`LgF~kl7t0-7Wqy}(!e;j^!;=oZ<h$i3prB$A
      zOAM>mVKzNGii(|Z|9ojQWyK1bVa<8w@@pUdx5y&TphhjX?%Q!Qq^QS#p_IB~yI$NV
      z&{zceBB_m0{vZI7GM5<OQ%j`6Wp<3e46;S?-#{Pb^^^57i3OIvfK|1uAPHv}IKg0I
      z4vUhQm?NpLWDCa_w5sAUMywNzeWI)$Owit!FqkL21x(R^CzBJt=s~yZyr!5GNll-h
      zIKz}ad5Sywpm>UVS2!AR<DXr^GI3oY=Bo+Tbb_zpew(Y7bav_Ey@|ADG1soNMs@hv
      z&@slU&jtOWTH@rlh4FLb7C!#2CQ&?S{bHM;sT*w!ojm+h(U^XYhu^^dpVvcd`MyGI
      Hxm^1Ra9aiF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class b/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c399712b0ef0305e8d638e8e5a54c7bfba863e4
      GIT binary patch
      literal 803
      zcwU8(U279T6o%iE-A$S_{nDmt<5x>Bk``S`i(XW`h*%UB1yfQG6(*Z$vt^yF`%&7P
      z{t&PH0l5(r!3)vb{;2Ai$r3{=$g(?g&c5@W=bSk^|NaBOI+jW(5SI5<<{pS6aqKFY
      zx=9kc?Y8$y`cd3_CR8t!aS1kIR%_f)sD1Zk_dxn7VbYIODpk63awrMZA`~A5Do7s_
      z>_)5E;pIuxlNDH)tfGV}!D=)+We}#Ta8M-7c!82HviDsX?}%>5HdnmJ7hy-lfsXT}
      zo%Vx-u;Tq6c8e+cW=pu&@C>yIBDZyt%2u|w$BKU@HE!kUu`dtPAW}&Q*9eQ3N{s}j
      z72UD?kcp7lYI&`(32ilB^H?I?)1_a8iM~ksdOpVLIahB-S?tU0K%>_#_H|!d*h@S+
      zi*JuT^#FP2z~<3TaHh=BHVXUzmDO+j*1uxvGe-r?@ORpr++_U&);`26M+-wW=GYHr
      zr(KEf`zq$yv&K1_*9BHMxSm&Wc_m$Y^$Vs3qXI>f+%?A4p&&OV+`wXfcsEC^ul)jj
      zgkufXeuCIYn|*>~53IkIL*_T!;afiZZj8A;Vy^RZ(-7Ul?YzhaYcxPvo6h0)=|xI^
      NjIunUykk^%{{ZXKm3sgH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class b/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9803984522d968115bc68d82510c683020a9175
      GIT binary patch
      literal 1871
      zcwT)}TTdHT5dOwjFitR+P!ldSl!7lb4v?g6xTIhwsfm*mOq>!_HEa7|Z?x>v-E~B&
      z3bj&xMPH&uk$9m}E43kNDw@8g>c8mkXgX)T!3acOcFvh|&iBoHGqbP%{cRt>1d2g;
      z2>n&Po_?S_RJPK(u+x^Mr3=EcR6`%hWrOe$BJwn?DS9=1yYxVm?H~e#?xr_mY-}o~
      zQqn{aEpJa$gK<n%(bTWy3By><wkS*qekYeD&?4bf#?UQW(e0w5)rEh<E-n9f{k!u7
      zk6Pi++5#akqw1<XNASnj77|5*FJn|h2wrrD5y2UPH=f{Z-XRP(qsnQTs4CjLS*>pf
      z-M+e27MnIRx1g6WVl{G%<+5W|Off}FQ#VvwRAROfo0^Q39@)YQp$C1Ep`UOjo^L`I
      zY*W>%(}`jTgLpTH_Ap`?;`qv%p>wL;@kIWpXw$7Aycfo4v=iF%sxEHTH%h`>X{ghg
      zH_9xI!V>Y`b^7d@Y7qwW|5u}Fz86n8I*G69ie?=N)}>F}3t=4Rg81NVMeDYzrRPmk
      zd1Qr=K$;L_eOcjqoQYxAgek*121ID7DOOFEz!5&j{AFiDyd;&-T6P*jtQaSR!uPyt
      zWs;F>qoL(d&0K|pm?iWabuZM{*M%9v46exPd?E$N$zm*kJ2pe;I@Fsr?#!|+%rLIv
      z8Z)jNW>&4Lw(O={E|HNipN5eG_hLZV+!Q*uU0*zNJemgWw0w{c<1$zYuVu4H(UY#S
      z99x7?!Kj;MaZQya4ZDRqC!g>(r|ZJZXo|%R8N>>q_rzNBG~}{8w@eEU{NV9L6s-uc
      zr;R7tgD^T}fAKoNz6d(_+sQlOya0xhd+18-M`F)#>Lq$sJEMCz`$sbM90RW~_$!8g
      zc3?*M+rtE)37-Ecw9y3~vWtk(CA{yPIbayY7~rfVDJRP|?owWK_CQ<m7YsM>e>wn{
      z(Sc?iuyEs=3r5_CNf%;;Z%d+R>QB)3@OyV9R_Yaq%?qS<5AaTNexL;eDT7wZ9ttvg
      z5M&hR9qkB{m~t5&!Y5xM?w#?@?x43%67)}X;LUb_U^}q2_3g}K5A{p${ts{d>1#4J
      z<jL_5bdgza;4Irw$~(-l2BypGVSB-m!-rv9;+2QjAL1i7hQIl?kFDY+cGF=S-+zKG
      zcl8uO&klUPUGLluCZ%)0330q(p2F|hJ?4D|zi;=kmj>M6|ME72PjbtEmiS-2j7}<G
      zm{u@GMQ-T3Ja3<4iB?fy-<P!JB$R9fcp#<XO4)){e9V=XsMAhrUiR`}xT(G7ck*TF
      zC1zFwP9Qbk{XNX(rP}jNvFB0)!EYk%+mXl%%s<EVyQzW0yG8+gl_v<LBA2D-P*r~C
      z?!D1$tx+Bb(0z1}f*vaKU%7$_61YO^JmFQ&O~DtW9?Gla=GB2E+{7)8y$g$Op@ulq
      W+fH5{eCBX0VVP~nX`}+~p!YxdFn`ei
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/Session.class b/libjava/classpath/lib/gnu/javax/net/ssl/Session.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fce5c3c40d86178317b5a796df4a8336b9e51f69
      GIT binary patch
      literal 5167
      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
      Y-+Cp)dDlXF55I#b3JLe{@Aqi<AHnByumAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SessionStoreException.class b/libjava/classpath/lib/gnu/javax/net/ssl/SessionStoreException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71de739a91fc3c5b49fab37de9a97c7473d6c350
      GIT binary patch
      literal 685
      zcwUW=%}&BV6ot?5(`rRQ6hv0KQovYEbfFkFMiZ09O$qy<PRf|ln*J!S<%-0G58y)?
      z?-W7|R^v=Ex%bYw-#s%QpKtE~PSMnnV>odA#C+t>d}8_{HlxThZ4pH>@a;GV#m&SK
      zPcdaW3JlF9p=~Yh8MG_u%eco-JG7L}^tkVub{tCI?Y0ICh3nu!7|3I_gd#MCvL$_S
      zpNxkh?DL@~7^+s_aBsjvsq%TT5RYWU(6at%wacK7>4Li{@rM_Nc80@mmHsFUUes)|
      zt^8J%-wH#~;YmcyTBeqvarg&hM?q=~h8-lKBW|U7S~K$j$BKe|FltjPPZ50>ojPSb
      z<Y)t0yEDbgD@8dNbQ)>ZB;^U#D5}p?C}BONXxKoR7>ZSyv+jtkX6WtC(G;7@urq2p
      mPhopA*#f4|VJh0fHmMc1mSwTNOuZoG<u4W$OId8BJ-c7TvWw6F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class b/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50b76a7c2817ef4bf8a81fe57c9a08adf3fc8eb0
      GIT binary patch
      literal 92341
      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
      SuijjC`zY<!FJ52uOaBjRw2DOl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$1.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e6a7d2ed6abb6cac0a3f4c3124d3722964f042f
      GIT binary patch
      literal 1157
      zcwVJbTTj$L6#j-S)U8$4<)V1MEV3-PW#2Rq5<)PVR5U_1zRq^XGFYZ$IwkP0^ubGf
      z@CW##jAsS{t7ziJG}C_bopZjKbLsaVU%vt9Ao4N7&`wnu?eYVD7%5?*qR66sogc`)
      z(9v42Fq$Xk8CU&chrbhzjt`HaX8og#t2BDq+ZBoNF~%_G*g_<wmgXpWrR9OlL@N3l
      zhl$uXGFNMfeKU-i9a%Iw49oFQr>_fbx<bphQs`xpS&>SbRfg5(f9TA28NBtpFREa;
      z6vD@a02PdfsG`PDX<CQzSSqnu?)8M;=DkcX)Z;wiS(j^R_a~%h6JuB!?m8XHrJ_qJ
      z%uI7WKCA6|#)~4(dEaFloR+chF~cx%=6Grea09n|++>*gqfCg~m}Zzvh1ohPjMy8n
      z5&g^Q$DLgcs4DkDOxd_#D=&2-o=ThR^tnXZHkcuNu9VPDS<qD<GCUco9E08Q(PUU0
      zCY;V66kw=s$y9MuYBFt~&oBPRsa^R?V^*m(;~Of;@<OWgg)lpLKSbM(jxYE2v)84<
      z64kImYZR<jvjax|Uxii`wz?MyJ;n$<K+szFh_Lk;mp{;M1XnEQEEMf+qfRI!Y}pA+
      zI-XiX9#;u_w7cf?+Jvl^_XXGApDK-6&U-VU;vK8h)=1^fIhENHmC@EG-2F|4R^2f+
      d;J!l-(4cRf&@ARK?}Xr(ma{Kl(Rt6}(NE|wCG`LR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$CertVerifier.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$CertVerifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b68307eaaf4ffd45d9fb9beceadd89f1d34fdb0
      GIT binary patch
      literal 3995
      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
      FUjzBHj+Foa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$DHE_PSKGen.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$DHE_PSKGen.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7c38ec5de5918058f9c45db76785c57c90246e9
      GIT binary patch
      literal 2687
      zcwW6#TXPge6#hEfo7pTwSaJbE6r%*#8!Re{7(~eh60!*~y9P~EGMR05hiqn+nc0x7
      z^3fk)yghlVQVQ=SNP=3_mQOzT1N<Mp@Mw8@W<nB$EmBrlQ#IY^^w;P1o$mhquV3l_
      zp2U)ZCWhlhvzocAEow^{Q@9z&DQ7CSwP+NCojE<{xVEOd!<t!eO4_{W9ULCIIFTDY
      zD@+BPA>Lr~peT!?=88gIbLJVsh0>^~F&xPHc-^j5Tq|RkuCOm@x^Oas!xPoHvY`{K
      zkMI@8!|&OQ&k5ZYt`CVA&Oq4^rpv&l8JgXa;q)G5IFj8;PGqS0q+uHFDF!RPwXF}8
      z%Yzb_PE0ZI0jnTdz_3%rHmFgA(5_-TIv7In#FSjwr6P=GIoqQ`K}62>s%Sx!VMo?5
      z#dvjLPS|;Et}GbZvX-uur!?D;a-ih0Gz=%Ul-&lhsYZ&iP$^GVO@`>uk}fK)VVRDC
      zCm7nL!Aw~*i<x}MwysK-E$GET1qT??TXCu45aJB#yr`Wn+CnUN<aTea;OK_Mz9^DN
      zD@ZYPJrJbgFpf|L1#6<DIaH2B+_RW*gkH4`x0dngxQ|krKdRDUd5WR6C`@5fNBa~~
      zRpW`7eg(%Enr8a9;aNPV;5hMhf4)_mkXE8a;SQNPv0jix>QiwNFHj2#vq)4jBpY#*
      z%Vmc=+z63D!M%vn3SMe_4ma&l(T@Qtg(Dn?2qbs$L_>!@E^s%5vkJ~I9DKMPDuyva
      zso6xYwZO11{?8KU<U~w*>tufvV+yj=-48~o7{_^r7E>&_{WVumSBK*>{qm&r;$;<+
      zl8zk}Ta0NAokqX<QRFeD;1!10davec1R#4C@G9BUY+I}8R;4COl3hogpSvt{w{PS=
      zsuADmw2B$LPED(OchO{!?EXe&4KkM7-&AqY+wKT^QP}=Ulom7<bI=(&*4l1kMhsUP
      zUR8mE{|MR0equ@nMJMzUiWKcyP}JB&f%AU{Gc(gKi)W~~40>F)>DB^q9`tm>`+r~^
      zIVRkaRp^s>Q6HGF7<N0ttyXeD=S^s~wjikJl;XuW`J8_E!@0E><WmqSl-9_NRGfR4
      z%)D3O5P7G|BWG1@U7RuGrM~N5*XI%GkH{G@iJXD5<~Z_vMAz?eJWg*%h+cn=Hu<Q~
      ztW7>C-bfD$5R1uYh~y^1Y)32McaUV09Hwz^GPQzO@;2I%=@oP)53gW%vXif%>xQ?d
      zoBq2bl7E0Oe+Mo6U9|G|(9Yk-Bea$zt7HX_VjtkmWE4%_OvVxNW-<~^-(%>YwH_~C
      zMzK>Q>>BML8*FFt7Gk%spN3Apio}ILUPUI$e#O&cB=7!>Vx{3{Ji{<{9bK`=oyeFE
      ze0~+DRxy}f#W|@+)zkG^W%f>F1rt7CB9yAfB5y6{1Cgid%lT9&kix0@PsjyAsve$A
      zZvv<4&7@h*r$hG?3MqmuzV0=Dcw=KcvyGPv<5D_Izpg;-52aO<*9n-UvVnhu82=dE
      z{1f!>PjQHUhGYD5oZw&J9KVif{v{0l6{`Geyv@JChx}Vy<KN*X{~ot!yv={WAN&UH
      z@|!Hie_SVz?F`84#$8l!jEL#MpSVJ^Cen0Mt2jhs6I?HzDi&#s5{l6=y9)j{^ji6s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$DHPhase.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake$DHPhase.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2225d7d0afcb3e7b9a7986d4e7fe7ef6e1aea9a0
      GIT binary patch
      literal 2303
      zcwW6$ZC4vb6n=(G*^-VlVhRNTOM!M1kZrZr7iwDwZ9zgsLW2giZZ^}fve}Kh8&3HJ
      z_AmG|Jg21R_`x6GXMc~!JG;wEj+)aPkABI_oqOlr=icYe-Td~)FTVn~2}?sC!>zj8
      zGQKwt%;$zHLn8<rqv?AGc1`-mQZ)#D(+XEjw-)S~`*LPwb#u=Qqz2BQce%MD9a%R+
      zS=%;)eTLM&JY<+H#@3d9*bF_xc0=huGc6ey<hE6HY-?Q}E;8_EEyrPC6^8zB&kkm8
      zFf0^%!AVZ~@7S&#-eoB3y<L4RkhwC!EO<4U2E#>x3&=3+{1=fbD%8cI?aIfkMpgRT
      zX4R1lLq*RrowDiMN=^>BsusiTo?skvx;Q|o3=0e(okj|mRZ^owot`Tz&D#R!(64qA
      z0vgUUXm+FNY_(j5^n>S?Y=*Yy1{$Uqrc`VrkXFmL!$V`uJun@+M%kR$X_#gh>x5V;
      z6;Jd7n8kGs*BIt|$wfd%jzLhnE!BM~8`2F4dS{{6&nOqun8Ujo<{3u+(MVtc2IX7x
      zqCzp`^kQd*F;RbWsNCNacn|M04A!M9eR>onY59_HaXq)YtTO#T;5I%anw!4dFazp?
      zW0Stv;A4SLKus+y$0k5ql&{xdnC?b&Y_zDZe=2Y{x*kaXK>D#pDeem_VVNF_bnDb%
      z4Eb&z6+w~R8WB&at>B@C2i*rj#~p!3SfxS+G6;xd3a96~28`{JaI^SKU>!w<>~SSK
      zi}gd-_m|Y;Uz(hSlq)Mxj|D!*CKdM>6!A`vF!;a0?CvfrO11<_*k;JoW%wkJg{WaR
      zXi`N_xuRGv3+&)ah6|S0ppHwp=sIBwr<NNs-1BM?9~FUJe9bTt$gtHcC5^vn`es8C
      zFI0u6I>D;EepB^^A)3PbQMpqThXzr}Yx$OZXsc;B{Fm{tpga>(Yc4TWaLj-jk=ijC
      zfS97;mZDE%3PWnv(QZghIv|r#Q!&zTnu>z#-XQ5dNy`3wer}$>!r;%e@57t)o2C_f
      z1RB3gK7e5*lc%?k1)`nu-xqnyB;LM_WFVWLJHn;>D~#mlk1&>>IKud;=OJaoCvlFC
      zVStZgkWWMru0%+(ClRtq1hrE+DCCnErIUB)Olhv*Y83Z(vQ&02@-K1eC1z+D<89=3
      zl$@NkapMTLNErVK)zkBj;^j`f+-sxI##(pvMo~#~Cr4i-yLfrh##g7gP7-qPtH|(a
      vOz|1${2Ctd>!@=bKl1#U%DzbQu2WXuP$g+_;%VgPJD3q4^ml?9whI0y+6#Ev
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/AbstractHandshake.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..063f2b20c95c84726e7d98ddd2312a454daeca6e
      GIT binary patch
      literal 19585
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert$Description.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert$Description.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c8403e8ad8471409b22734aeb6291615ce5ecb37
      GIT binary patch
      literal 4176
      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
      SzC)+}Fdm`LtVebG*ZvEf3ZI<-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert$Level.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert$Level.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6cdbb324e23f1efd4ab15f9f4a2302a3d5b741ec
      GIT binary patch
      literal 1724
      zcwUWEZEq7t5Pl|S`|RTyf*X?Nh2qixwi7tg7TU&ch)ErK#W7MHTv>d&IEy)SIa}v*
      zM85EY5S2ngNkm#e{n#JXc6MzgX=+qkTF=hz%rno-&fK4Wy?F~@9%UUvgewidV?A-U
      zoTrvALaW{OtX9z6ayLX^6+97yGbOPlJRK3ju(Y#0$8T6gzq3iue=ht~w##=3>C#|0
      zIYM-$uvRFs+;Y5*AdpQsQ!GDNov9W|4~i8+=HcLI@qFELeK%YrXz5Iq5Ls?+h&ZAK
      z2<J>B@i8Hm@0pCJOUF4>!oc+#Ior-u6Ks6mL=>?&bg6t|LPt#QCQTSPLpWP<eNpag
      zu8UyJS@)QDvec|QUeyU)sjEW+8a|alFA~Q3#p;Io%tRas<{CbB+XUlLGqC+oG(<p{
      zP1~74)7No@aOpUT?Rlc%c!i+R*%W?Qd|DT+&~5rU(wzHgHg`I%$B1!cIeFLT=WsVt
      zj)YHn5`H0N;40>1I@j2uPdb^Zw6ILvz&uykX|;sEL70{)d>~p*dVFc(E8OJA3!B|b
      z!f5)xE^K=lb8OZSVYS;V{KniaG1WS4S**c(#Xug5I=&-}oCvht4#lR4+gKtboFH(v
      z>&@0SA$v02`|D3cJ<QpCj%?X;y5e*H5h35NN`o`h@V$uwiiDddftEd|-Olwx{`W-k
      zJQ$T`C#Z`RS9YkO(637)f@%A{2o#iP>-dq7`afPgq>34rrs6hyC+q}_x^OCLe$f0D
      zb4&Bw{ThFMB1;o;+5ncil-y)I62Qo$95>cuteg0V?T1-gV@>{U9D-`evsz>yBYPNC
      z+E^s2wDIWgtZKU$t<)mB7_aPM;wAeGVT%6^mcTEV#&cd!+K~J_^dkJgydo^k?CkVD
      zE@UtKiqx_9uwwm^S?w{qR|;WFVVJn2_{*KlK;!i}W_qXrXGtvcljrdFv**h0A}{JO
      z80R&`jCYvt&LJ+>4so@X%<N-!@-?o%#uxjz_3ns8QZYQ>=x>n1AxHU5F)_O_x)tR8
      z*Z8Iv-(o56qS;qSy*L7jslz``I7fSFB=9X3dd|1_RHi+)i;3DjE&H~Xmla;srVfys
      x+c||sM`cZL3*YHsWcfti8cE6?VEH}h!+si8)b1`nhI}wd-Nrp`k&-%J{Ridzgq{EZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Alert.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56c061916c75b34a2ec36be02b1688dda2c4cd5d
      GIT binary patch
      literal 3279
      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
      LUk?H|_P6~HW8BzK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/AlertException.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/AlertException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..153a8a2ad3f7565e8960f688e83450d71106d7ab
      GIT binary patch
      literal 1895
      zcwUuNTT|0O6#llfB$OypC{-?65wRB_pyGvck*k9BG6Ms`gJWoSN-(5Mnj-!be}OMP
      z=#0=Ao$&|wqa4p}LxBRezNDKy=ewM<XVc$*e*6M3g69f+4Dp;@)VGa2V_&zqs}~BE
      zzU$=o%q(~GX^T7V{C<Y-x@O*1;AiMOow~f7uEZGvh5#`1rfZR=7!<RR&SwmZfo(7}
      zj+?gWPBQezYJ)f8s|^0xe3l1s2`vgPGem2lG+aR|LvxlFGLGpv9*)Ip%Jt11BT_-M
      zA*`UCVc>so8afbRP~H5p>zH<qp`DZkTDJ^4r<Zq$y#d!WG@+9r96KA2uQq|9TSEYi
      zVs%}E0+pd9ZQA^0ac7e|E5@e98A7tRtA=BWcW=}0ZkYv!WX+N*XG-UEyN&~iuLjA@
      zZQ(q~kg5Z*aiX}DEhqm$IFvjMhzXuJL*kqcTmYll%NWH1)fhfEgJG-=Qx|$-7!scP
      z8G<?PzTky|k>d(R7$VgUXNsmpj6n?Jp1|B^Xov}pVLZ_A5RYiqjon>tXBh@h7Wis&
      zn`fw%XKMBsQ!2(7d}C2TH7=+osu+%j<R1)E3~iQ}4C`Yw$8GKyF3+Z-DyC^79ln!y
      z`RRzbV6z(LFi$PE_#U^!xzurK(jqq{yoMS2>OiDqqv%r*T+SDr3|}zC$hMuH$05Oh
      zn{*%z^bPYNByIw&LgF6KuR;-;L3%dR+dIk-c^!%5A+$q;O1PRx9-u4HeSn^ClHrC#
      z`{_AOm<jqwOd^aaL}@2lMw4DIAXh?-$(7LaNwr&^+7xB`goi}ZUqat8eNb-C5_C?|
      zc9hd9w2DV7$of69_e3U4MUJcwmT>1{@6VuN5v^Dv^5;?{QHEDUA{Flu&%0P9kR%}?
      zJm3j05l&RCQWXOw3|5!%iqNl5bVscys1*fO@`~>0q;XV`PsT=nVtBoTyNU1Ul9i2y
      z9v>n_uRWijh9*BF5PDMHp!f{M53%sIs@ydy^9}A`o&Ltwq#3PD?wO%k#ZymMmz@Oy
      fg7KKB?DXvkaG(NKsGn!SJzuK8nRCI5GHdBCGC-h?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Builder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Builder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71007f5b80915ac5437f3e93e3452151b557b955
      GIT binary patch
      literal 211
      zcwT)@IS#@w5S$H%AyClKQy^%tsOf@4g+##%ayXGA%SMhJ!Ph8w0FOdA5jDlmuC#N#
      zKhGC{J!T9MVO43*>$FYpTnopWM)8|9tt^D)iI*yDh9P0makxr##V=Vca>p<xtpBKw
      zMmNs-+=+rP&U{%4OIU8U=iW+7!;^;-N&h$y;;ZpC7bmF%VgAeBb=(j{7=#&x;uOj-
      LOu7rxfDz&^4JSEn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Certificate.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Certificate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46876c904210841cf1b0f63718e888667c0f0586
      GIT binary patch
      literal 3965
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..486ab65f8a0a5162def5ac287930472d991a0ac4
      GIT binary patch
      literal 2243
      zcwU`VTT>iW5dIE(8Q2}UgakrjF2oDVWix6_BrIaGT#`*TixGqXiDq^gmce0WojpsS
      z%Ch_imgSqiSytuEm?~Y2R#AEOM;X5}EC>V;eb_mt`*eTZ{dJ$SfByCR27tG*rlC$C
      zS#&GLlDT588m=Xca@jFTzPDn}TfQ-D`O;pn3#PQv72BaoLs;O=qq%5^3S2nEwuUJX
      z9kg9r4ha~E?9s3%*Gg8ZdrBZY?9E#-#PNy-U7%ID8m{db={1$~!h+@NXhf4hz3Dif
      z@)bCl$aH7-u}sAfLW>R!#{@<a`<ndM1e>z9Yvn4-dCQ+P^A4jQ%Q6jT%Jgj|*OXzo
      zXqQRA5#ejprC3&hS`|&8?}*MpZe%?lR3y-z*q@CC2)wGJ17`$I9Kcr`=X9LMDS?Lh
      zO34ZEmG**;*YG;iD|uyG+MX+Ld^hV`2%IM!T}Ut?$8w8uQ6QA)&cx7zJ`KHOaF36U
      zq(Y83_OdNiEJMdzDuYOw@ySC|*^)cTC9SQsURI>-7+Je4gVw}GR|{52C0EvPS)ePh
      zDO-h#Z_7195xbMNZEMy#VHaIfR(wXgvKM=>H+wixYKY-ATopJI7}hww?)&E2ctw^f
      zazgr+xg0}3Qfe9pIUgi%Dvlvs)9`^n<L;0;t|LvdZE5+Y^w`t3t)2!pnVLQo#|XwW
      zjB*NJKGkspHyO&cR;6lJ4Z$(pqA{LdvI;V#;g-PJ!^?{ygRG7_$dTfrB}d%?@94a$
      zp?fZ^iuzE;T~$=%5dkcvnNXTZY7%p4Rp$t%bWG!(fVOCsb3sC!idkhlt7A@K$ECMT
      zn;L@$IzCZjR9`SlW`UV0<wG4N@^mJv0v(A=`k<R1$Gi>;3u<QBfkn^XbeK5UVNrqG
      z%4+TaSPh?TJxV;tjPIBsy|8OUoA*vAbM{ou=dy<m3GKoPN#OjyjUCCfwt7)F$9ah;
      z6UJ`a{UY&ssJ%*;{>Nyu=@VYXFIZ!?f@pvF)w-xK(8-%0;xEEKBeiO%=eL2<2<1Ai
      zdQVFjzaiGUj^?M7>(I(?EI8{Y{a10EyS7bRoZt?@t{o?d#J1p64RM$@f@??5FF0Mr
      z*-#aoJypC>MfY>WtGM{{HheTNycR&~n@%-o!T-#6nA#=o!<62|mB8yg6+)QQMJYe|
      z1N}41dmRIJdY|Eafr0R2jCO>dVOZcfGPz_Gw+AA99g&UZ<}X_C;>#+=1F3$e^v|}6
      zj~*jDtq?vI`0mAeUllXC%}VYkH=+-JKx2<uN!717tqwv-h5bzxpH3?=oZR@fio$fQ
      z`Y5Ys+03Ij{gj2|Fv+{N#L^T2X*BaYMt*OwM;SiNw{RJ^$zhh3<Fvesdpyfy3PtWJ
      zn88<=#n-%*-{U@h!h?Xkp-nor`|<=1mKiOMAK}6yah;^DgwGkbi`4oka~6uY3CUfE
      RxLXZSo-08|9|eT3{td6xLlgi2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequest$ClientCertificateType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequest$ClientCertificateType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29a529cd786c1f79d763a49db098e2ba389f00d0
      GIT binary patch
      literal 2127
      zcwVhkT~ixX7=BLku}Qj8jBOB_N>H>(DBYrM)g~e|gt9h(vJji`qO*iU+`4SyW`jiU
      z9Cf^Kw0h-laJ;}&OGn1)wLi-7JtsR5X?o#IGIMgybI$wmJnz2e{Qb}Gj{(e}tl$(w
      zq2{!-d*-gWr#alynoV14xb<CYi@REZyPmaeRZWkt@sC@)=}i`Fi#uM=!Fs#F6$BZE
      zL=eq3otjp3T00DpHDms+q2F3zD3%70B}X9_48sqpis*~_o#MjXg(ZUG<QRr_O}oVz
      zn9gvzxU#W4S)MO#6b**O4+h00U$rgA@@5$V=}eg+Sg3FD2tqM1Jg4F;&M}1ZzR5_s
      zbX*_9b1kQq)AdX_O2#89LI_8o2r#BX5g;PK1r-qiq5`B;L=hIN7geZuhT%-fa`;MX
      zXOp|@=B7=0<E47lw9BSz2`o2b2;db#=ORO*AB!%DjEWdelM3%ct4Zp%>u$MQ!=<#I
      z8A#0(Tqf?v1a#ZxHPfDVYpoqJFYZ-&!?Ws+f-6*%lSFT}ESu6r@G8SZ%lXKuf8wO7
      zGEu5}oGIl|svD^oG+Y&`uQ8nKqdHR-7O$>r2G8+x<Y%wH-)~96736GqLJl>-E
      zc=hff!`bwcE@V56t7KN=o?k|45^Bb<Y|N&pYGyE<7{dY<6%-kUdswua9^X-M3v?Nx
      zrt6yRYQ52B$oAG^b@LvtdO5w%mM%J4kz`l587losI3W4~lvL<gX1LayrC^)QX0Bh_
      z|2{Ny6=O!d<yQHkC9c58lc_HY4|*eX$KkGw%bN<;7^eT10_vo`8mPjCRdY<Q<<k27
      z6a4Z6Dbs9jZia4YfL`wK+^Bdj0Gbtlj`(v_%!rGt3=EHnXF_<;`4G;K|1hDiX;=L2
      z9D-Hi&jx}Ah(AC=qUVDliAE(l9|}v9l<0-9BGI_=2f;uG38ND1VAQCDI!GFoa0lbY
      z15Ervu}|S8`cDu~V2^UQk;JFS;xoE$yO@*~V$dV$vsxl;L7LU<RPq2XXD|GQ^l_vi
      zsr++N@&zgTQbtI~7%D{#OFi-dBfAKuaLJGQ6)|8U`q)p>Mx!CH$TUtv#J)&liq!0r
      z78*$!<NJr0t{g(E#Agoh+So%}e~23gnEmsJ(U{Eo4N~})*nEdH?o-z9aRom}c4{|o
      z_e;?FZOr+cG@8X(DElkYKOY4Q%grBqoI}2}DCTj~cfL-$q7;b^CMvfB*~gW<_!`TB
      z^N&!tw0|NRJ1TXQZrD41j4bVl(^#BkAK~_2U{Ci8U`4K0@viWY)Zc?at+p=rH~s}}
      CZU*K6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequest.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9423b74f6bfe7edfb4148414b3b6ddcff60ac31d
      GIT binary patch
      literal 2520
      zcwU`VTUQ%Z6#fo`Oh~5%Lb-`bRHzBJP^HpRz&5l6Y9I&{n$}t-$q5V$Ghr?W)>i9v
      z^}qO_E=^prmdhs}{88dQlOYWdS>gjBXMg*A``eeZ^Vi?M{SM$VzLQYHFtDaOu?=NM
      z*^TMkj#-u#%bUiIn&oC}lAE@gQ!|Rq7x=crEn9+*p;5TUG(}&FCDR)`LsmaS^c13L
      zMbBF6$|moQ8`(Vuf7;3AxXI9xaJh8Vh{gA89(T>x$ze>@ReOS=JyO*py3F94G_pL1
      zTAY_rj|&X7k?3*|jR;9-VrZ^%PewB?GSp|Cyym9G&=!eSjZlwPv`c7X2pxfwW>)ZY
      z;1z~od}iwL?YUbsH|H2GCQkZY7jj;e@fu!ds569#p)XR+^WRi3gk?wwFf=4oozFR2
      zX>KklX^pgp5=KVRmK9SKXV2)f*Hw!lmN-*mMa?y?ui5Kv9cP5_h>R$D>Ac2m;*HEi
      z<HFo8V*rB;0WvSH8>WXX)&d6y3^m4O1~x<a+Ix9UO0H6cPt&5QT(>I}Ezz}vN|Gd8
      zVHo~DSA!VFh?t5X!#TyVNu_G5Ld?+VV(woV8k#p%J)`Co%@aYT=|9UAQKNAg6L_C$
      zls7DjZ0Ix}RHKR>m-;JwZ_0>^sjRbTCTXBYF+$BSayd(sJzyJ)HqoyM29LmfdL=6{
      zFigw14XXI1$Vt4)6$u{@nQJB`CF2Seh?_y&#d!&Hhp&fVk(zyo&SG9v^+UqFP~=ep
      z=}88#NbL`YCETNTbv$g`QMIffSwTv|{Ud9n<RRk$9x_NfistZS?pQvhRZ}gWAeQh*
      z==zuzO0^O!3y)P93er?rC7<VdmNwsis+K3)4U!dgz9Y(zld&ek)#XKb0#K<@mTfv2
      zJN!i8n=&+kOD?YI0nh~0hr{lZ2#<@V<z>8scg3Vm2SAhA5Dr&NYRSiuaTV9ZNRZDi
      zW%o2(<>`v9Q9k~>$#d$iSPLieqDM^f7+T9+t8BY~4aY98<D+dSwBB;khwQ;c!!a}b
      zjw+T-+etZtf`UPw(RFT4YKmoXOTsq{lV@5;-BlkqNvvwe8&s`Y`m3WqpV*i56X&Pz
      zv;ye!9G#Mc*U<mw-Xi4Qz5*J4LQ4Uizo6?!GS?6VaDkjaP4;05Axz^<I<=Or;VpCn
      z?l(bCI}Sa#<dLs<<Xyc#qpP-nx0`VA%(pt$DbAe*^o3&2R_j*3F9!;`?nyLYz9LAM
      z7o>sK!VvvLiy$;4UXW{UhJ@~8I3<WFha%qlp-k#`;d?HjTypgYnV2Jw<`HElg7qBJ
      zx{uM6CwJ@*G!}59h{>1aCB+Yj@?nMIp0eUr-0~FD8}UL7k&lq!?_~u{9T&P<A=F<M
      zN}H^7n>ACub!2<7kGrWN60`f5P4yR%oC__C`uhGv`#zRZeZOM4h>t=G1w1Yw;{t&J
      z>MtJ%trxISaonQgKyLv?hp&L`qnPPow!n6dVxQ1we*t?h6PTcc0Zwy}Lldon7OZ0s
      zDn_t@acoinG$gQv6m+Cv5SoXBZ9IdCuVJ}~50{cF&(#ZjiYJtM0MGFmo>HVH?9z?T
      csSGW!@dcrxbI)BBU*apbDUA3SzP-`$4}9QaWdHyG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55e36481f6d1e5c36c8297fb8c73b2919de19a39
      GIT binary patch
      literal 2972
      zcwV(uTT>KA6#kl>Wnp)sqM{()F$ycV8Wkg;!Xn1i1q>jFM8mK&Fgnbxvoi|Dn7g@O
      zOx_Y-^5ko*O4gWES-zwymEV!y5%cxza8be1lzG^l?$c+!bI#Y_>7Kv-`RzV{J@__)
      z5`ldawwJhITsEc?wsaHuyp_l~*~{jbbP^rXam{fvW4N+cUh-t#O?sxql?XI}#^-u7
      zf>MF4PkAMP7AS2sZPPt05UQ&m5YRfZV={^uUWz~$SfyT1*k(47oN;B+8y}aBj%8Rb
      zP-a+GR)rL(s!P?U7x8R~B7_PZ5v){Bi@K<w%hRSUyS=GV>GT_;77<sb32hA+j;ZE>
      zQFABFyg*a>xu^&#ZDFaSen^3}b&IE44uN$#)}ltBa*2Xs*q~!0sszf%yqx7nit@e9
      zI<{adgILm@a3_5}Q_6jtj+e1rAZ(darYo@eQL^T7>vYsB+;E<#EVnE#-Ts-JWXY=n
      z?mXAD5@|E<`m~kznG?3*dJdh>KJL-_d@OD2uuN&Y3l>!9mctAbLjrpu*e$T^(GWUb
      zQ59=>^Quq5J{|kfL^o;YnN)|7Gcu+-Ll2fbph|pI$3Zlco18}`s_Rn8rF0WRtBym8
      zx3XL|Z@OmIR(TxJ(S~*!O;<XGo8@M%ncYl3uT)@fiJ=3X5getKo?O*&46iXSTTc5s
      z5+GQHJ(1`cy&yAgO9Ux_ju*gT6vuH=M_N%;HX+>s!}9zN>sDm+sK!`=1y#c9I(pG3
      z5ScXc-F~*z)me(fEh=Nh<H8USqpDT7EYSHvL_m%oZATh|mK^+_R7Vj}{q3GRnRU4N
      zs?tMGD!dpcFEbvUW)cS76Vv;5?@pZI-zmqmGiJ`Pd=W=*USNX{5RlyNIL1tm=TeG&
      zt|N`9D9&L-9ac>dkizZHh8~51F&z@)0#R;nr=8&mI;KQlKb%yUlR8Y*7U3(zk;-yW
      zSu9%WhLfr>&cW7^RR}RRJC~c%$R!;PSbT`c#Xd?Zv!~-SuBhH%@}#KPOnpl?(~Q#E
      zRpm9jgxDguHhbK2A=T44osl`!c1+4xxDTPM>fKH0r*g>+)YMx7b<es>)VQ4Gu4Fh#
      zc9bUrmibaoOJ*Y2lOaoun*X~P6d#}I_}p*EOmIjk<Clu0uLK&FxTzMk@))+|m1J<U
      zMEkOylaa?v)f^j_yo`1!B;FUShQBaB5W;*$P{#jq&JLo4BOn&9(C{mwcd_CQrzKd$
      z|0th8E1!q3nj^jFib|~EleZhH0+=HKOlACMR2Q&5UcjaTY9An0z>c5h084$RqYJ<)
      z=fL9FNv{Uqx6udvlR2x52jV;LVHYpFkplLr0HNaiW&sBVgMeBAEsWO16@FnfYqwEV
      zt=$7R_W_P~H#8P-g6>^|%6LlP`-gw4GDCh=8_5TdVn!#h9w(Vc8tv%fD2>zT_Op#c
      zQ<((Ws!>1J1bugMT*I8(Nz)+C5OZj*I^}hiBZ1)s)xDvr6X)q!%K5F|ac+p@-^H5?
      zvOh4Fz0u9&GtJ?K>hS#)W!Eb3@Ol9gYBoPC;KFTa^TqwqP{35T=5tj*PC1S=X_Z>z
      z{gLoUQ#f834wzJ??+S2dX{^-3BSj_|bb9a(GjHP!mcm;BSBJ5j|GgAJA60c4J6Pj>
      z*4@TBQ>^R+?fpEchA_&LC&M#k4AVTbKEgPDz=Y3bFV)Ao=eWFuw|y>SxQXj{hYW4u
      z_sP3>k1=<k7VqN&>R^a>)Q22}h`X0~H@G7X_vK@b!V5T8XrK6;^AjPEr$@{XpS8s@
      zKdt!@+MOE8y{kcq)i-`I7;pFm)${6K=WowNrezU&3Kg)ifrsZ-<oq%=7a`}$sAZ$y
      SV89Bj#Mizg1itanZvG2lHR!|u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusRequest$ResponderIdIterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusRequest$ResponderIdIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5b971d5bea9a7019e4a46f1824e0fe4fdcae2e1
      GIT binary patch
      literal 1355
      zcwU`TTTc@~6#k|cwv+`*i+C#n0@4;`xrm|=5+G=rG&G@F1H8Dj11u@Kb$6CD{v4lq
      zz=TU8iM;!Nj6M<1ETt_MUz*L%<;?lM^PM?oeqH?d319+m75Et5Z=0^RtMBU-&E!IJ
      zoRU_yt$m}&ZEcC$!q_qjy5KpX3)flYUtI2pp;hjbEt6c*#kAnIE-YI?fFUA@w32Ra
      zYuU|RUJwde7^0rl6-G(B@@5Dcgs(8LG((HnF`S`shUrWbYG#RG&M*xz&oGl{iXoY2
      z2rOAe-U^0J6|D$|;YXK>HbfcxiDX`$bgNJhB9Dw=@)dV)liMHk%@U^+Ggd(_<#pST
      z`>HV@(_%<BBk8UyrbGiKuLznF$&E#Z@N%WV%fhfsM?o(`fBm9YtejieSuXKCZi<>)
      z7=0K}(9bZ{geDbFG04zn*QHS%6KT>CMjTxVo-qv8TOchfoOMNZYteGeqEnN>pzP?*
      zikAxA?YfkeQZb6>l$v9F<(^qKhRye^eXc-b7^xF~G#$5Gwrs(R*|NMF;%vxq3|&;K
      zL^5-;8)w5*#3>aI@rW)jXSsHPzcXa1djFU6nB-tk)27MorIPMAoJtzIqdE+&Ib+)-
      ztWAWe+rcxppTXS5;`}TINR^-dAbj*uhXIj@>_K{_L9(|&rLmoM3!VqinHoJtN9q)j
      zl>Zp9?_~1f9*rGD1pFn~ZzA}E9@<GTL2w@rXl62d@_tO~0PW%)ao!6A#8XGayLN=w
      zdf+oLpWw;ir!&OYPBC=uc|;Mz@U>_ch|xhe^EE_^*P@LeQ58Q&D35_+#AKWkB)=gT
      zIPf3T^tVV47HVLM)|g(<`jTm~$`m@o7%3Y+zkzRWz=tmJkp;?oqKY4;S)K(`Czw3E
      c4yM1yvw)I&>8+;misrBf>ceXqXFU6xf5NgmXaE2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusRequest.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51fd52164dbbdcd1a22f5719326f3d2066dce758
      GIT binary patch
      literal 5846
      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
      JeoV6b>wijxjzRzc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateStatusType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab5d495b94d062619534fe7e4b38ae00380c3e14
      GIT binary patch
      literal 1177
      zcwU`TTW=Ck5dIFk+?JKL)KW{S*Q&6s-BzP7kOqS^CDLNDEeY{yp<CQ$S;$_9{3~r^
      z+GuQi_D31#tZ32TL)qk<Gc#xAn{Up{e*f|L62KNVqX;o<c5Gig(Fgi_)iylUbuG2;
      z^akdU;izT9@yuhht$T*%>7MT%4EshDB14i#sFrSb)QatQ8N_;7d&BUwc3rpvLwKND
      zzQMq%42jDA;ofTFW$mz{F+6)a4PLC+woKdfwi$$6zCq;5y(1%rumpx#8FNT6M2aJq
      z#a!*G7|nA`yHluE^Nlz;-;@zXgiC1|aYzg^HPbfs{cg)}4)m5qtW&jKTeljzV{$z(
      zN)V9Yd6p?~68tap6&X>)h@SV(bcs>$3?w|y<)^4y!hNhp@qkJkOE`2rqbuVf9x=pq
      z$I*xFUVq4-jMJ*OPK>r!s7^3d`TIo!X7yu+oe9<Cr{O9<k?|O7yxK9yvZcFjVN#C2
      z2adWdX+7U*8#^X%LS|x~4IV^wYi7qLn?sJT{sAgppZs>Av_;($=qD0NOME~`n&Yhm
      zW;1+DNEb;<KqkK%q?O2vf7vf!%~Vnl&oOg`dGRZ$!YSspGc0_h`w$jsm*@mVBq_(O
      zz{(d*?Fem`>>{1AvX(u^lCts%*{kSez${Lz5&;8_kPa|p+zz;MiL({R>kjUYP+w3+
      z9+^JHLi4qtTsDiG-kz|0fqUy8{@_Q*AGCfmi&GnOBMgNs{8maa<pTL{VE>N`VLjNN
      IU?VuypAQ)qTL1t6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f39d010ab45db9f85ef65f91f0e0053e37d4895
      GIT binary patch
      literal 1610
      zcwUuM>rc~A6#rei(J?CEMBd0mkZlagLqOO>9u8O>k7Tg0_`#G>X0fzO*CPB&enN;q
      zB%+`Fqm1Wv1Q18!n%v%=d(ZtnPR{MG-`_3)3}Z<|6+<L%IP$KtuN=sRYRko<E*C6w
      zU)xqKd0w?_ZAZ%~wz_^;P(^qc>UgfKD@I;U7|tGpXLD?5k|CP<f1ntHZ*?uP@_ub`
      zjlsLG=#I+3k_@$pm5t?|%xr2Sk!BcpS0QLTr)!30PcsOiaE7$ao7<`nUOyNfN(kT)
      zLv{Qrr8$(k@shSJ&B(`+$#ABIk{?U(qS^<M2Q3mrRP(Pk34YWv)TcB<U2*odRBK(?
      z(n)+EW#$w;qgWb`-9<kHJmI8W3{B;@N>ooJ_)tSy?GIX!JnWcOrc@9)lnhr=01?j_
      zx^H-rx~}FGeb&l5d#Yh44svS2)=Wc0h}_@RGv{bJq52RZpN{d-Fh3c=+zmz0CXT6~
      zAAN{&R|8a~GOofIo*_#Z!Y~zEDHK#=o1ueyxrZ{wPmD@<fid!Lo25;L#?Ze<D7P0;
      z0(P6G$cq%Ns7w5qLR<uOOT#Vf!=kP3Nq7b7iyFnUl*61^IHcQg+u`cgu9~xB$udhx
      z-fg0*X?2HTrd(kvQz>9h!fVVkjNJyC*Og*1Ru28|drAKMY16TC>Vn4mv+)kYAWtW+
      zX)SLkwqsGs^c{$JC4#48GsD!(0{vM$Gp+pc05pqyre>iI2O8S=?V;F9v4jVdUq{g<
      z#rzq%0LupI1>p=0Cunq|CXdIBn!VpC6pqoD&U%i~oIXM87dlggc6!&jy!|vs(Sa}x
      zzQYII_$!tr%JI-FMfy9=&>89cir`&@AyPX+3P)XpCKp3Ox9fp_aTfxOXXv>?HAp+7
      z`DNQ@H>V4whp#o$XeY%-r1$6oz1a)&Wdq?e^tYX2@Dw9w82@ptAmFN-Kno^`eF{Ou
      zToqCYzf?gQ6ZBo;9w%<Dy6G6L*|$REG8^YbS{B;RF&RC&My_@d*mYHEsI6wMFe0?V
      Zcl`ktImhfzu=~$d;f?!FV8NXi{{Wxvbxr^P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$CertChainType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$CertChainType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a91b0f736d4307262b5cfb85eb8b1dd9018d1cc0
      GIT binary patch
      literal 1447
      zcwVJbYflqV5Iw`T-L@<R3l@1PDr#Gh1r-q55J;(ELwSTglEx2aDN9*Wwq&~{_CNVS
      zK?Bi9{Opf1&RrUzrX~h9*`0f4@0>X^cka($UoQYmV?jm-VXkb|)dT%lf3I4Gqt<E_
      z^~kOso4basrVQIL_so*+82RnYn1HE$-L!IzBSVIV5E6lEMYqao+NvKCdbEudt)Q*s
      zmox8D>Fr#WFrT?$h6F+0TGO_cbE^dJv0kYg1kwnd>5csQSYbJnPc#3*+gl{?CrcI6
      zGMz<&6pa-Ko>X<$@WUGf;f{hZdI`Q{b4!0Tb5(HGu}!O-(6m?~z?<(X@WSVZEWkYl
      zGJIk+s33?=LU+crjE(x?j$!BYoeEbH&Qwc!rJ&oUz^*e03HL?P2ZTtwT$iaHD)1w~
      zTAh8f#x;};r*PRFu7UgGb9=>qlF``Bn-fG7aTzf_)N4W-HODwqFpddAK(}qZQK}v_
      z2=VK3H+K$<l9SNdxHQpZ*%i3CM_6xDW$YG`B}^%Jj%mWob>>t>uhkOmQnd~+Ped?V
      zt=lEzjVaEkw>90Q*iBG0%Q9@2)2PXqCB*()F`=tPGj}m-mMz_>+q_=;OHcB~tyoMf
      zP4lQoeA7Kk17b7*wz9B1U_3uS&!Cu1#$Lt>x_EzxQI3&#roMrS;ciJfL(eJtTomzm
      zT-5LV&QLl*U$*EuL4WoX1D`mi14H}`vIR*PCc?1m6))eVW`<SP<zcJD$A`}_5+C`3
      z(W~f?P))3q0(^6VE<?oSQ1HmrFIJ)giTNI5tjVgfB~eZMGe$rBq4NnRg<Kltazm3Q
      zfG2p`44!4LXjbF|1I0Bdeo;({3fHBfb3B{)*vf{hvI0D9lTD5|d&J*hnBwP9e}MiS
      XC*g&=dWlye!j(RQIX<G-u7CbFj_OU}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$Iterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d6bd64d77bf33a91eb90099a8a336408123a2cb
      GIT binary patch
      literal 1434
      zcwVJbOHUI~6#g!4nNmh5ExxOOfV4$BfcS(EE5X>Lp@~QhtQ^`)J7l=i%!4%k9M>!`
      z;gLupd;f>gl`*c|XgqhQrN9P4CUYNW&i9>jzH{cw-%p<bjN_StHin6c@U%63L$7Os
      zyPD&eTFtgLj54>iS#G<=s!`HizW6#nlykYQyOymW$Pkqn&D2FjE3B;XlB=MdA?8~>
      z*D$sJ-V7l_lzE+j<rv!Cs^JWcF^uNV9C(Ug(}pnI8HP;q9Jo}GAvkN5c?TG}RdgT{
      zK>$4}IuT<CBvVECrB{W5FnQz+!RNj86>h)LS4>Xj<gJo!7IoW@_l7YjOJJBhdm>Hc
      zsFI-Ib(i6JGIb6-y;)H%)Lg?7y7@|Xs>BqTtCzTMaunQR=s(ha-dgZV)j5-|bKy4K
      zBIv__f_{e7nM13%gF%w2!YS!&GIznOBS@e}!Ci*Iqxs3n@hEt1VfBUOiL%p7m_e!P
      z&b%)eHEUTGkXA8@d!(adyyw1IPL<8qtqra~V;DIiUKEa3t68?oDGS*F;%rePgC1%=
      zHR9wbQ<@A9R9wdml6k@M>=J)z$lk|~mza@A1~n%Hw`Wb=aX3vz_-OPy7L1C}UC$=$
      z>ghQ7)4$8~#RQ(2!T=>7pf`jzdT6qNXjINV{q-TTcS5E065X=C2hg1!-9cA+57BgB
      z2l0<&YQtq(yNC$*POz^;@C{e!Ccy;3Ra~Q;Ns-9=CY^(HOZdb^KM;^eZxip*HsZ^{
      zcf`Dl+goq<kyzTp(1Gs}Lmb1$qWvJtPxRtfOSD8Y+6a=3<fjScGf<4UjI)c>2ZVx~
      zfz4+A?Y_tF7N%H}={}tgnI;-c;eBK%v$2B{_&+W9@F6~$rMkx(_+i@Rw@`W)6I&<1
      b%m+)A1DNzr5Alfhh!5(+V_Kj1_NV^<lABkM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$URLAndOptionalHash.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL$URLAndOptionalHash.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..977b86b34ea5cbfadf9746863e1aeba2a5d20f21
      GIT binary patch
      literal 4330
      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
      K{~!1lmi!lox%1Wl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateURL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93c03fc4d6be2ddcd006462e56cab6e2e106cdbe
      GIT binary patch
      literal 5717
      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
      JpHcOn{{!v%qLu&v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateVerify.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateVerify.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..256517cc4f6ab878709baa77cae3a5e39b47ce6d
      GIT binary patch
      literal 1646
      zcwUuMZBr6a6n?HCOGu?=zLXZG6)(bSY8I#^_CiT&V?*QcX@LvgT6dXc*U@SEPxS?x
      zoatj9`rhAZI(I=UAV-Jc?%i{r^PJ~A=faO)U%vsE!KQ*PhN+6-sPD8rZC^FGt=4L~
      zTD8nQQR0@m$}L-zMNzYPj$5L9puo#8c}m8Xs2G~<SX_aRA#w^bqZy^zj`p5Urp?j;
      zgKtq7!d_;09?r@X)exqdKCpS(DVMpG%ATd_ie51-VejmwA~^={s#)Rzc+eAs0zbp$
      ztT6bxvs>WS8?B&ohW@Ns)byNY3Hja(dhH!iV@RA<vdx+lwNP-SGF<K00Rd{FLJ}F&
      zb9Tcp7tW{8nH0&%-Unsx1C81_O=sxJry2aVxn*0zAT0yoNJFl!85Ok=O$ER(8pH_3
      z8197I&pV_jxJhJgnEGx6-;xq;1#ko7QpPO?PdJiOFv)P`7`aJ6`xrQZI}&)8&YM*U
      z(KvMbnLs3nC}IrVRhdU#cT$)0BTh}$Y|AOyp${@o4Psj6DQ=!__;HWC2!#~PF$}d*
      zq#dD`q@eqFpkRTaw-ph@LnMiAPtzT~QEstmqwtOw?M^lYFpEXmV@&RrgLs6;G##y4
      z<wl7iekQY<@?5gC9Md&9>QO(Q(g;3=+ApUZ0gc^PwRl<V%X{Beg=Ry3F$|vg{`U;!
      zvFX?+cl+PL(dmVnQ#fW1Y?+Q#<j;isH4V0@Nk|5a(-rg3x10Wqy!51BD6JRh?FGd>
      z^i-m;sY3)l)3ysiS_AY1=Ha8UT%=v70mCI+2HagQ`iMmC`f-KOl6IgY?bTM=B+;h+
      zLpy}w7Fx2rNjvSn1HLG$<NBu)R-YS9yNtmGqRA+;$C}wcsg`sge}o&`hX}no!o)Vo
      zyS*O!4u3pWM>yU;RY#(KCh4Wn@DXOWV_z_Th}4L;j-@(QlHPc9#CwQUg8h~CgjULY
      z_D50zJ+wY2qch~w3u@sdHM@pMWD&+IEMc8aH?T>c9A3N9=Nj@(%*YcWL*o6|B8Hd5
      W+(+vgF?fh)fmkx`IM>~(8@~Zee}v2c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherAlgorithm.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherAlgorithm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d24f3a7cf827dbb3436190e088e0764034123bc
      GIT binary patch
      literal 1286
      zcwUv0ZBNrs6vzLUZfn<7m;<LgD2gE4c&Jmshs}j$VnQ4vv9P4^RT*`ZbRFqBBJsoc
      z6?D9SXe7S&LmAJ#Hu4ZmT$A2&f2Zf1d(OG1KYx8a1&~Kc#sEXE>2>uz>%jV;dv>6A
      zI<CI&w-1~h+t(}3{;utp-DcZ&g58#k2*V(^)m_VL>Z@M2#Sp1&RjUm1)&CDvV36Kc
      zp3wSg)nJIxYVX(#(Ms9aTq1Rus}rlWt@Y`8xw^$^;az_RD8+{Bcur8FaG7kK@~pIX
      zYz0vj48s~maDz@Rh9>Du^{g%<@ExyNSj*PqWP4LX6fp%dhcOK@2Zh6J4GM=ihr1f$
      z98?bXHK-gC93E&$AjWqY4H~X73{@S^u60}6w!dj@yHt6q+HP2G-SQpILa9Q+Fr^*r
      zIvvXNz;e4bZS+jGuTH3Vh(|K=49Rm99(Dq|rQtE?65^KcTZfJI{vl1n`95rH@7ax@
      zuy%!NjdxTQIc>aWSh=Eo+5WPW@Jz!Jo--_+4_0xlPN#5H^ow&yH?A7(uHUd<JG`MI
      zmrhvZ=2WZUG(9Wm`eahN6r$Kq!llAWo^Dj4KS^F0<r4ysltZb6G9F4blnE}AV|)zA
      zGeUNQ7@{~yqEE#9`S=aYOkJ0bkvc+Jz^#aYQ32yo0TTl5!~{$VxF-vk5-_a@m`TRI
      z6G}a#4Kvcis9{EXm@v#(50i!|_b_FcN)I!}5oW*8@dL=xs*(g2QNuiPLd#$JX~Jal
      zRJtfWH#c#NxiiNY86b4h#9k(%s;L(X6!4GxGIfl*r+b(+-$=Prv&getm&Q+^&wsuY
      kjr~m_P9w4$#>kO|e^pZ~cY>!s!2azwfEQvdpeW?a-^;=rWdHyG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuite.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuite.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f6e02f755f8592d5e27b80b7869835d7de51b10
      GIT binary patch
      literal 13470
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuiteList$Iterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuiteList$Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..860010af4e987ed4ece8e959531f39fd41930570
      GIT binary patch
      literal 2597
      zcwUuMO;a3I6g_XIp=X8$Cc{TQ%$EU@nI2>Uh#`WB%sA1}0iqBh=pxPZ3v_Dep6U;Z
      z@-O%cbfHzQStM0LEU6OLE-iK8#*G`TvMg8XCVF4f^o#`Ju;}jF@7;6Wx#!*YzIpQH
      zR{)0bzKjUN=!)s(9%$>@M$Y7J&T*=_nr*EcI=6ELqqfTJInQu;*>K$clFMz)wQLy@
      zLsEcpRn1(<%`QLS6<0<pL$5#Txkfc7Ao~c0*qWsmEYEZqSc##<Fm=Ac(CV%lPXASg
      z!E*CLCI~lan1*|UA(uW5FtflQ6)c^{K@})Spe=zYQVJAwF+|gug#>zVQbsR>+B~s>
      zQ#egUYLyCi{CbY5t0V+Hr$9zbMCTO55o72q8z!Ie)|R<FuPs+OL#k|5wCaLp8{$70
      zl!S{6W5-xB+)Oevs_8mIwpqpGqKpBCEA<YzV>(`~X4x*+XKRAju*~8{h1W!oKtECp
      zkqSv{dJP77RdZ(ehU;(3lGv6(1utNT%5{tnxIavt)JAEyZN6?;9`Q@2k5JQ@<`+tY
      zN*x(5GF+_p@QgL*RaT2tzQ#>AOq1~vL#Ccpu*`~Q+mteG>BfDda<Kj}q=f$K3SNfr
      zdxg8g?^4qu6BtEG2K9Si-Sm<;LbIMbdp}PHOLxKr8REhQe?CFoG^HQ|mD;lw`qaK3
      zmV$F=^EGQ-nCfs>XnkG58z6h5HIK9orc2FA6-TU_>_2!tOb8`q1y?aFq8SBw3^Vkk
      zpUxEh^)|!h=2jGJa|$k@PegYV6wybUI%j!yh2Jv7`RG2-{6m73K`EIgw+mIxaX5Jr
      ztKU}fIb+4tT+b%({L=!<hu?CO&3bfW0?(7yC_OFW`Vq&T?&OF#^guEx?j`!~phrPF
      zWr=8-<|Fhysb;s(sXoRDHTwm+w{S*{ZsF`BpWr;bQ;_KW15tlVgx}!=zQ+ZhiU~L_
      z(&C_)91Ex?1M1ig`WGML@@~l0>SKQN@x6OF0bWE`kfwPix~qXnAX4h*I7?6GHnN|g
      zMcRyR9^m|`K~pN!lna^0d}g3cFnw|;#m@~CZ6O6U7-fx6EYaVnPv(*tB5Q=m&Inm#
      z+^1;U!5Ec$ZC8w_i?q&?bdRju#`wd#I~b+8$z8(rQkfaN60F@zT);2H`zyu2(ai58
      z`i}-JBcYa?7z)bC2gW4TZM^ys5~3>U-e#m;QwMbd@F(@cUljk{z?Tg9@`u#+p&tWN
      zg7RZg)SmGFDOJ*!4k>j2*DxNIdY;4pPw4#*I%$n_j53&nan_3KEY=`#DwJ3VOCAnN
      zmi=1w1G~pM8sKsWe+^v$d?bJ$(Uh#K0UrzT#jvT1<fmxZcE4njkln_u`YB0>Np=bf
      zJKfOT?bz?`_Py>-PEkX>8Bh)cJ=sE=_}0V!>Y?X?KLUc}4~0xW3vvmw0VETg#<-gO
      l8n?Ic&ZB3*ibulckA#si3x0GL@A^&%i9J}P_mV&U-oHu1B6|P;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuiteList.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CipherSuiteList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3e12e18dd7ceb9f53e3b855df1851eb4f5346ec
      GIT binary patch
      literal 4200
      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
      LyTM-t%{Tu8qMG@3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientCertificateTypeList$Iterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientCertificateTypeList$Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5aa251ed7f39fe21a5320357b7f04e918af324d9
      GIT binary patch
      literal 2872
      zcwVhlT~ixn6n<V3*btTy(+YmHwHB~RP*R|@MQAI;w2cO+g;GH;x+HI5J7G874+i}U
      z{sKE%XL{oe7sV-{G9&fIuW=l&yzxf=h~qiSvWYa{43mp2XZJnN^FGfx=Y9F*pKred
      z(1#BdGzeT;Fx>P#ZCP7M8`4SJb}3!9%w@eOt#qcOOT)=X%hB)Z1<jGuAC+ZZx1Fw>
      zBQ4D_Ed^nL7{k*g%~(iJ&fk*-M?sT7yZ6;~^irB3y9j|s-6+Zx0g)4kESbfO=^Bne
      zle4JXU1tT(=MN)km>5QMLw7C<3?&Xnk(?0-XUw8(2DwrZMN1SR#8s#`DiBH}XL#j#
      z6$&Czbl^n=F9@7F%w{TH!pl?utx%A*=ljsAb1dqFie^Lv+VZ*~C)}lZX-#YMB`FZk
      zn+2^jqggt?`yazxZGkI?+A?TA6+NUCivrgV)?T5wDet?I7;17;0~B-%oT&`dEyH%p
      zWz%wGak9*t>ZXxhDabMhQFI~BUI;6Yt&0Q!Wl^&y<ci}pe2&}vx{5c@OB>nx$I|;u
      zquWAhH!QiVn=TbHY<P%kiDaErL<5($f^!0=D#vNUoN^0`*^*o$WRRxdyg;&&l`)Ni
      zYgv>sZWedA|6993#M#`CiZ{WHT#yboGFKl5Q4AoifKFp)rJFfE`ID|Qd3THsebElo
      z2sCp6z4a(f^Qej>Qgl4ZL4{j)!`#mG(PYUbbD7&=ONWhIQ*j;Cm{8dzBe_JbE<X59
      zI7VIFd&dp4%)E-T=;LTY#TfeNZb&?v$y5EFK&B3Ic&jNDr_ssLEfraG(yUCGu2qm%
      zbw1fA_dT|~yt#myGYn~EN}6p;s%xZjGdEA^3x?*n7SY^))<?efjXqMBI$s{ft7Iue
      zzeajC@D)q{rs9070kIfg#`J!Kekxiii=%PMYoNa!sh)MTr8e<gDzuJcsh+RVzK-K-
      zwA6r;9!;2@4~hB#5q?JC&+&>!B^ZuVv^glI!ur%BK6PXZU9+2bZ9Cv<@-UA)eEUw0
      zkLTzN60|OOe5;rk5l=lKX;09$fu2Wb46lY(_i%n$r70e0N(W4X9y8FwOb=^PtX5I9
      z1Qax+l+{mhnBE3FGKY%6S^Y$IoMlnXzCg<s2FdP)ZT^y)rG4hYcc`QrxcK<?76xc-
      zWSem9WHX6N{@(4x1*{S8R}`<)$|i~arb<hHpydjBeLG`*VPdHby!9!f>?(X`wV~qa
      z2u%X8O|$Tn;_s{YVgcV+4R4=#F)+%M57^X>@c*$IF3#1k+Kmgi7+5_?Vt^m$`6Jr!
      z6Hee~%J`Kse!~!cuaY<#NX!J5`+Uoa=e4-Edw*2Hl>q)Wj{5L^AHLsE{#k{O1o&()
      z)LHLj0j-{8lF+k(tCdp{^%nmkg1@V#yA`|B-MTZ~u~8bRcYMlje<mBLiSIt%qepl&
      zL_(0Unvn5>Ag3|uLz4b!Y)<t&#f=TzTsr`k-4`~!FN_K^<3+deKDZJru>-U8ob$ea
      F@Gs<=lYjsK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientCertificateTypeList.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientCertificateTypeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c4c4e4cfbac3309f5031ec519897f833b8387ca
      GIT binary patch
      literal 3931
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5279e3b19b17c80ed50d14e28436657912c5af75
      GIT binary patch
      literal 2502
      zcwU`VTT@$A6#jO|jd)5G3N4ow3Q9w`q!&ailvXGdBq9(BMZpr1o#eD9C-LN@g%|&X
      zf5Qiz(a_Nu#|NMMQPyvtoFqUADwCPB_GPX0ee1UK*WbVX4&V-~06YSBGiE9JBJnD5
      z5H+P8Ef$Sv!OFkVQ__mg8M-v>$BXmNSL4g82`iD4wzP@?cm-~qV>f@0%qGl?T$YDa
      z_6zi%qdZ&E4axw50)yv~$(u#nDkW{167Wy!rf$y&TnopPe$>?S(b+>=&X&??X-y4n
      z3V7%8DH%c&E@@~+NZ@izH|0txw=b=Y#J(W~T4VWS!q`k$y4t&kUOTH71;%6lKQmKg
      zw(l?yXg`yfz_QEOV1}Y`+tSU<)PI1|(`j8UO2fz{%+=Dqp(hz+5FG-(ryC2SlObF~
      zR{)(%Ne!1(u!{6ISCJaJ(IXH@=dBeI78pB&%22G4`ILgVp`jOj3{#p(rdMF-d>_X`
      z51}6)1~4GdcE+`ak1#0EY{^`LwKX#WP2r)X5W<KAFvNOXBu5&Cl~=zZ&5WH@3`RAK
      zAu13|7zT@POVvY5XESbwz#R>(Xj7K=G>qe8S{6!nJe#*{Wf^ZA>n9o}@hQWgzQ9O>
      zMr~jo#*_k{7PuO23^AkOAs#V4OTN}k&PCe^<!Z|XnIzNJ?L*b^?^H{`lgbKAT&xK>
      zFC{xYDbUrpaoD4Jifk0+B@Lgeu$oh)0_|CV5VIT!;R}2jzzV1I6n_n?Sfd9+&*{wL
      zm6OG)hS*XKF;=VehK8r$I}pssYQ4NPjyC~s-zrB#@8&|;eWl@Rg%~X4i@L4nO+|25
      z!#W1l1U%QUhXiw;l9dVg_sXg~)T)+*3?OxU2<q1w(s)K>J73`=AeM+!P!9~Bq)Ae~
      zP?1zvFEtn{@xCHYr0TFsd~h32@5vVN7c8094+KK-e92161zkOrJq_N$G35a_nYSi*
      z;6s3aI6?0C4D<UQcQZWqQ2HaoN6>!a%7YeuL(b^~+RWfGR~;2CypIn6XT@ox59RBM
      z>+4UV_$b#Sg1%bY-{9)X=x`a=?|UP@PH!1E_eRRNwf6=izu<P{XWVuUzc1tNR&_Vw
      ztf+Rsx-R3vR-M-%@qk(4%n|c3S<LgnTEIO#A=^bP@wdj#R-DHxY-*g>@fj_Jvznu=
      zhaR5Leu2DO@rdg-czMrpcO!a89i`u1A+ks=kusLci2Z^7A8Vxij?$U~s#OeJP><?X
      z*V&}&tVKC%DkI*y^__3;hf`iQk9lcvy$BM2=6ZSQloA+l@*5j=nfc1tjvQg9LamH%
      z%Gj?H?4omUn*7*dbi3%G?4|6dtXFryh4bUOlND9n;TruN7r5^P{poJC?XGUQuLsmZ
      z3qVq4a0A(6NPR9+3)u|wRv~4fyGXlE70Bl|gty)JDzR<XvtP!GBjoBKb~we((bPmI
      rWe;U9Wj&h%wQQz&SAm+KRD?X@bTwZeqwA@)kOz6Eg#-%D?%RI=o!~-@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb61905831810ca7e7a7779ebdf0d17575d8142c
      GIT binary patch
      literal 2671
      zcwU`VTXzyy7~Lm<KyZvPns|?RCqTruYOQ!BYDGz!HVV?%>Hq_bP6ix?T)fuaFHc?l
      z2Yv2CyH<;?+U4q#5B*WK`wSC;5q#*%$}ltM`}W@7{?2#ipMU>+4&W{P;6snV;gVU8
      z-BRb(#h9ttv0BZDRjtarUeK)AgrRGueNHbHb?u^N7;~yQUC$YM-UpAsfj4BHU(A<P
      zv!q?tmTErq3G9ADaH6go{1xasp_{sWN?>y+C1YczUWp}^Y%NhQ7BwqAmKN|#R0>)E
      zy;!5b2fx6&lx}KM^|_p8T~Tv}CNPw$<W(cBTDp98UwZ7aUK2Q)`aku?sV(Pd5E$+#
      zO<;?wc}}&<v4mbqnzmMQL<b<SQNb`qC}Y7=s{-TQg1dnCWb*<eopS=%itRpZ6WIBN
      z+OFEVp<o9_r4^PwC$P1fhS@{_LG1Qnm%xS&dKB!zUID*q7&O|}WWSP~l}n)g3JxH|
      z_-fsrDOW68#?N$*4=acuD$vV#Y3ppFd+b34F&tudENwwI3)CBG4_>xU<Y?h+f|!;@
      z%uS)ri2ZETQ3ZooFR_m)cn^mK`U~|c_W%o(jf^Wefs<r3G_z!v2^kto25=f@eK^D2
      zxQbjs0uusWL!Z;hyzy0|mi4WvI@>I*8g<9bv2L9X;(Y}dC8EDtsp+;}G3Cok3NAaA
      zl{DLjN%C~c4<LmP<kU=4eke&_IZwT;g9ar925Oo;y`n?nUR98m#rpGVRn6=665}}s
      zaw)6eW6W}ilx|l&EN-S3c=?jA?aB<dnOTxGyX6=>5n|1^acSjE1)o3_*dKa*y+eu*
      z`Q^gsUGrte(rsB-4w@{i=(Hp4LwR}UGIE-M_Htkew`AaLxl>Zh5zR$sQcIXqV4}j7
      zRb?LMy_34MA9q+}&9>@!J9tm#)fCt=&*$VBrXTYHfncyuzLCubPX=Yhiwe%+yzIkW
      zS^GVSp6uvO2@fRRL+R>-r29-@`-5Qj6H0pUxdi=`&8=EmQD2lN;cL)zh^kwM$tox1
      zaz&2aaH@lSTn)@r>Q-L6pvyCLw5yzhG8?;CaxeeA{NBjf;(5($Kc7yahkrm{IPwI6
      z-+0#ph1Y=d_B1ojU@h-Pno$_QI>5Q(a1uje4Y^onU9A3a<S90EfICOp^KEebEx3Mc
      z!e+t*<l*eX-C+zjG4_O?VoNIW+<WsWc1}hk&wpxQUnUx9U@Q}DVEk_ce{B(sI5j4D
      zy+oqRgiB!?CLPjX6V9OmBS!h{eVb%!ne`5<>EZn#4!iWHoo8S;{5y^`@GhCc4IFRa
      z)GLI2PS8gVfznKHs}gdHxnPgsamZs5!dp18?JxhN#Pv3CAtP^CNHWu88qYjKD(i_p
      z!PE-PRuTajx_u36ki|w0{SM4xAFj967IUe62;oDD;(>;}PL;BjnO3KMWVDQrvr$_n
      zo3vM=bogfsgriNT|G*JPSkrD-<5)}MN^eI=2dFeOhYiT{xqvZfBrW1N=VwJ;yw&fx
      z+ix$9vZ$s!p60H+W3KfBlB~CZYeUx`dT;)+%JbW8o)5G<=iIp{hg_7tuxQ}M>W)?0
      zvisVyRX6(u6?^!beuiB32?~?XP|C6=`c&iv{Nvnx#`sXR0juq?F0btH!r)*7OY&hb
      z-oX8~h)2BA#>Xpa4zfi+os%)oEx5o&FVd|gI(V1uyhm5=^UL*sTlpbd`p8ioZYpcJ
      enZ_6RlDhqv!dLj3$m_ZDzQMQ7(0}J}eg7ZsM?_fw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..615693f3a14fcacbeecf44c80b69fa34dc2fac92
      GIT binary patch
      literal 2588
      zcwU`WTT|Oc6#mv02pa(g9Ga##+PbMP2_j8tN=#{p<1{o*NHL*l=xvcV_JWWZNoGu5
      zn!m&h5Ym};`j(mgg8rIL&&m!M<4}_a?d9yAZ_nl1v-<nr-~R+~1sgg-3{z#NX0Guq
      zUN;@#o1SNzn{IVWmV|5OY$+W74tGjkg|CZ5PPl%d%4tc5#*jQk^_H+jnfs!&#JzQf
      zzICy^w7n@jhFC$Vm^EM8W<h#>mLXD<WrzDUS1=^nmS-Asn>%H*=)2M>XJ<)8m!4M>
      zF5zA8s8BaOVbxseZ=1a4SIqj<<fQqCng;}7$xUttFui_7dWlJfONH*^p!8;>BmG&1
      zh2&Wj+g)#;r<NIbvYQCJxzp+lEmtjx2pC2T^uvfEjJSaToMQ+lQ_E`QEdxF1Rin2J
      zM9|AHRFICiU)xv}?h;?MDOV$fs>SVP?n*Up3N;l{hHGbtOAE0mwqwUpi8W1RU2bgJ
      zi!~>L5Am^%j~LS3pJ5<@PbhK1DU%zddYXO3Vj&;wo2L`A5qyf2j^yc#Kc-_KjSNG-
      zRdsw(_mzkt^FK%CjyBVomtpFdU`TbXWMC3k7@~C7?s12gh0AcUa9owxFrBaa!YPT;
      z-NSv^eq6<rj?Wnej}yzl7q~`A_2g3#kYirQG+p9$N-BV?ff;;7dGf1suFJP6Udfdf
      z@-D2d35!VHL8jwthS8OiOxH0-PIO0Z9XW;zO_0OQN8FDhk8gC`rXtf#Pz>C`JY58<
      zQmuNTk=q8T=4{D{;*XOZ41WFbZJ9XaOEz^9B}x>(YoLI8R6Dt43C~MhWte+|YSRjv
      zT8<Kz7YsbWca$fOU}e>z%aBZ+%FV{UfSAg%qJbqmJhF^vbK^{wb@Vuo?+rY{4@88r
      z@Ks5WPoza}NUp*q89ANo;81(GEm8~e*`iO_EBHyrkHn<zyfpALeqo4v!Vij33mD}+
      zk?eSC>xnARd2j=(uowo&AL79ltq{E!COUa?k~hu$LCC3oJwf>><WmguXA1f2;njl>
      zTHm0;QLNTnOWc;K*v8ucCX_ydG4D9S&Dq@ZR4AfHl^f&qR)p!#B8(CBbkIzvSqObJ
      zkF?CAv6y;vf-&gP8Kl0kGK3iQPidr4A5UlYFr0pl(e$M~jHNH{;rvd3e}UQ&wMWy?
      zLtR7*VNeU>9g>d+HpKBR-UEV>vLzIZloesTPvfzsq=&3~wWeM{h7WL#T4l#Sw5ryg
      zrFSvBi}77t+@=47%u8rHN|d2yOnoo#8N(m=@&&Gk@E2xDc3yo=`HiOhW)o*0w+`^_
      z;pD!;89u<`K9=|K_!V+P^6LRgJ3(xe&uOv|S|9lu!H5>csMe23jp~#(fJGWV)CRGk
      l4dFK}7Q~|A<+Eli2H~PY|9zBg$N+N<>(oa{!iZuv@E?aj*~<U`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e1a5c222b7ef0779a5d5fa97d4421677306835f
      GIT binary patch
      literal 3697
      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
      OiMMDCc;q1*0R98kCq(}M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51a1a2b9508b9485178006cc90e8cb8026aaa38e
      GIT binary patch
      literal 2856
      zcwU`W>sJ#;6#orOSO{aWh!1>$G_@fD!D6iy`;do1jYtWm(zNQb8IsY>Zo0dPqJ7!c
      zKKxkz2mM+-8aeGbZ9n&q>gk;gBH%HFeh4$O_jez2?{Dtq?|**#1He(-Gtj_rBJY%w
      z*UXA}GwH}6>HBuF<hd1<lU{PvR?-P3Oeg0T%<D3CRyw273o_DE3yTIgL%fdmn6zcy
      z3}kNB^sh5C7ISYg97t(&(wA1*Q^8{Ly!3rDFUM3~`oS=v$P+`8ukwz}F*IaH=oA!`
      z9~)%oOKm<_vek4-IVyOMLB+SCSU1AD!rlx6A9ZuG1q|B-qG*kx5$ys3JLqol-b@rb
      zvD?5dhJAG`3G6{9L&UOOM>2H8dux7e)5#|<%wLmMFsyy-6NsQm?+yqUXfn{n(DocU
      z?s={k#X%g>A@nfpiLWs<TkzZ)=DaN_a04-h*mK#a_B`bV>2j&$dQ`;mo0cpE%5}&=
      zN|CHwoR{9LR%d8Wxt3{XOi$_a%15rt#&B{AxnIvPDj~NVpG+N2Z6-3p8>(2cXUY_0
      zboH}uV1VJ!`gBh^71LI^b8>MNXMiYncs*>&O_#00X*=)Iu~1xteUqVkJvL38HG{Gz
      zS5YlEhT{f^_KD5sK;UhhAo5BluXOPf_41car^Z9vB;9*Bijz2HV7UIfT&E-OF6f0A
      zKG82MZi2X0Pq~H*-L>EYj2JjgS=*e3z$nJZSw(s^XLTR+wC4t{<=UAVn%teign_g5
      zv$;V_U{bq`(50^oMX4U=1X4K9uq!W}%#bFVT2L0XsT$`P7UKWE0c<vNz1b0+ybA);
      z_=uwO%POE!*Kbp*RFGa;BdO47Tr@CSKl5ue1Ty%T-l_kLqpOr=IQkzIe?f&RF^8;y
      zPZ;{Qq$uzyKBGQ3lP1n2x9C)N&MN{}q31&`%s2IiIHfWQ3(^3Mi>^8*F9wPTxPUyV
      zTdqSTXK0RRN3tWKi8&~NYoI~J9kcjC(@h7Sa`F^J5v~EE?(Ua7et{A`XK2mKVAAme
      z)3L}_fBZ#Ly{VU27}hlP1p<^QLesK{I5Fx76I+^M8_iF9szNNMh8JGqhQLh_+ne=>
      z)UIiSY$W~~6+O6$xGnGnzNGw>OF2^$HbVKUiM|&2MpuSwhUtOytw1wc^ze3T<{L@E
      z(D~9^Q_D`fWzUjll%5_P8!j}U^%%sY<4AARHht<?4BOTX40My@M*8Q5qg@Y1+O_Mk
      zNNa<R2H3t`4`n)Ql)yH^ze2kuI!9<tCXPHoTjD8RP4rdK@fUVJ!QMpwv+e!|XgkS&
      z$HBQy{uJGRJ|y)PbfE{Yk%QOCz+UZ)Uqyt^qJ>{V2cJU^&mzVz<1on+6dJj~8;Aqp
      zPKVhL?sTAyh*5yOA&%h)c95)(q|GGhC(KbDF55;@eSxLKW3)ZSP!;by#`}*jejnZX
      z6aDtmZ~t>~6(6P^;P_hnR24IiaOpnwXm}NuwFWKAm?voK$|<!`rHaBb?DKv4`!c*L
      zDt$+)xTW*;)f3!#80K21VnFAaFJK2RV36B5!;8pr7Z&%i$UWTR0q*iL?(qtK;Wxtc
      z91E+kw342Fy5x7zWV*DvvoN@_yM<1CkGo;=nqjU~GD$0=HA3;-`E@mzCjF7$4xNY^
      WV8uxTehB~mh@WVUhU&-gGw?6JA0C4M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae8f45ed816f55b31101efd90584fccf108714b1
      GIT binary patch
      literal 2151
      zcwUuNZF3S=6n-uXtl%b6LW1@+*3`m=WHq&|Hr6)8q@iGvN~Bd<+YQ{n>Skef7e@Y2
      z-=-fL8>nMvbVk4RM|FDcf+Qr0$(Ox%&z|Qz=bU@)v;Y40_z8fEFl6``u2igsc295W
      z4>XIrn&X&S-L5r_GPkuw)8Ll7qFZIBs^8~R>$<IPI|XhVTL!mf_!$yI;McjyE4s_e
      z8@h9!L8*K2bYp9a+YIA50n;p_rlngh@0#ZsLXJ_fbhlx1246AFaH82IEHkh>3_-VQ
      zI8zrGQn{n2PH}@*4a;z^F)SyJ1AJ+g#dNa3;9snjc?b+|C^!iv3<+ZjMi66=63K%2
      zGNB-VpxB*OAmaqXshnZ))yDQFw>R`nlZuSyY9-w)=(Zu=dq%&gl41TBsUA2UDp@wR
      z>*mdd#SmV4P~vshs9BDTNrtmtRSqvTY{PA78LO$AMmft{eLorRGn^lETdn0ArRsuN
      zsnKh7d!O$VO~PQ7`Fw7jbNiO{;`H`;pJ$jHjGTXQ=6$aa5>RC%8Pub<K*2Opbky9c
      zP?rfhtbLT>lING9F3pEAiwiQe;UhhOQRouQQI{R=IFvEbC6Yr4yM7*B2$%4QjE||u
      zM?)z16qgwSPQ!4ivf(pq)T`Xi3s0)+GhCH1Kb&YELc!;tTN3SG!~S_QTzpM|hag1%
      zCDJk$7-o(IRIrHaBnJ8(d5p-tsWEk{qUBxNuqqUP87nfrVu-(Dq7-ECHN(jYcQcmb
      z>Q;%`H<LIVsu%rm1R}YFoPrxzWf-G4Vz3vv?b2MANZ;t5o=YT)2jC@g(Dr$Gsje&d
      z1~=(G3N7+(YD<7$2Tc|PctgQ0knRK<^|CI8;B?}p>eTiAPQh&my=?Yq0tu3>J3@=T
      zR}extjJx<r#*Yk<y<V(s-s2@#fi6@mWYs8z)`Dr0^iq{)UfCf}@rW#(uQluvUp9n>
      z#SYxgS%IeiK*qADf2Qs@qIIK#vV}=XP@*4{A5o#5w2KPmq}3;~1|kumw)8H%MleeL
      zr)YPVzWZs7sncyl)V~o`Q*Df^Gi}6oJoFha7WqiOBOv{Zkn}4?rQh%-*(bedF}#Jh
      z0dFU`ecn#6OT_XH?R|KcY+;J>9?s$%KJd8zq3;5}rtTuLiw`@P*~Ld4T<PG8M_9^D
      z@7X)ZN^>2o3DbB7c~xxU9emqHQN4ZRncBe*spr2Sn0o$nhv?E+L6$;iY5cPNGG?g-
      zkajR4J;WHT6VjiEOMgL?b}=WlaZTzVEj_|At*g>wufz$joV8wwaa_hGN>mo8t>s=5
      mHClxwKuHz<=+gy-QF`KqQMwMjFg|eaxrK_?7XeS83j7ZNOh=Fa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7a8f8760dbaedb3b158172c3bb4ce05c62cdbc2
      GIT binary patch
      literal 3440
      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
      RXWs86GA%hO)noV^_zR$U$_@Yk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abdc3cc54d30bf649a4577ffdb7cadbf970961d6
      GIT binary patch
      literal 2213
      zcwU{9ZBr9h6vzM9&2tvmM5LhjP>U@DCEx?L5-k`uvL%F?4d7zibV*iN42w-ROzDe$
      zfPRF2gic@BSVzZBoxbje>h#>3D@06ZDld}%{hht%;huAM|NiIIYXDQIhH-*na?@+3
      zx9vUq`?Tly=|-cLep27vbE{50ovpc!=P%e^wXtPCc1BF!_MI>S487bVU9-K-wC*)`
      z7?Nv6qokL!c|$Lh$_sivzszto|GvRz7!pN&ZoX{l#Z|rdCXgm<S-n^?az=Kpq%#b5
      zZd=r?vi=~uFju&D@Tg;Vxv1Y?(ajRWz&pXq^UDSDNyz#;Qw+UzrXxAt*<YrRM$V$%
      zv>)Y+f?+P`^9(&A=^+Q&DOI<zR(E|z9GrozGsN9S(Xp%264whWOCzgud8(b^+QZ{?
      zGm@#)T+j9IFesyAtCT#uTXiA`#=tPF;w;WFgfeo=;AsAEu%=&kz0Db8eSK^-O1m$p
      z2qF|gn8QaZ!W<$TK2{Oo5alqYBFZ7g;j)Sthd76{iZ}<A!&Mb3haL_$RP=D@<?yMB
      zUJiX6W>oZX&^X*tp>arXm{XBJh_A9LPGNwdFYkIzp}Di+)Jyh8jXIdj?^f*Es$F+E
      z3u6ol?(uUk&~4~;-1cF=P|=T*e3e&`#7SzLzvVVW7imzTJ-gO)2ycvz9b+yr6j2I;
      zrmA%mu;1{V9Th8}F-7fq-QKV4KG|nTb(XojvF%j+8KaBI;PVZO%9bB7<hq=0>^QY5
      zSXZ%zhy1i1A+t5R(U|F$<L!?F-NKl;+pJfdoXdyOe<aTY-%hWC;dxG71a%r=d`sv4
      z|Ftp%<x3Ma-A&K-n{`^xAE_ks{-?h)GdoF_K%p;Y-|P^70RYml)QHrm)R@$`R8?w^
      z)LyB5QZ=awu5{1nrU~ums-5Qdnm9yxKENQ=F$6Fh!(;<X`~hYqPb*5`1<pLfd4V4W
      z0*b(k0!M-pFA4l4Bym(=DlBna;FXBP34xPZNQRygd`$~WzAkuLi%7mH_%kgk`Ig{}
      z7L)OA3;tY-D{Y?D)IZ6hv~b?E0xeuLtzZk6Oe@sFsA+{;7&om*3lpZLk!gyAY}ZN1
      zc#|aB!Yz_m3%5z)EzFwFaQ8Rr$_dQV|1>omu&K=(IEM<Zpo$C}EaDN?v59SL;Rm?*
      ziB>=3F@8Y}uTX|ABJdx57u)T|S2X+}A4+O`_yuyQv(I6qP6eK0@i1Q!0s8-r2GyX^
      z`!vp`h;>0+oFtaSc;5_GIT$tf>PJClN|Q3uVCr`mza9h+3FE#9sJ1tB1nlO#c+~mF
      zF3wRb<4fs0O;%pjKnr)RMJ4sx%J2a#DQ8~d{^h4fqOpTMMd`EfK*mUsg+GlYS?VRM
      czrg<6Pob{z)z|ojdx+A@uxAHpUff>!7tQ9-MF0Q*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8a202eb6d792f21208743f96ff6773801cd9c45
      GIT binary patch
      literal 30697
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHello.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHello.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e903493d277c8f9368f26a20aa989409077f378
      GIT binary patch
      literal 5069
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHelloBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHelloBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63b373653162f0ac944978e1d82a34bef8689932
      GIT binary patch
      literal 3939
      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
      Cftv{c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHelloV2.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHelloV2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82fb99371c513b68dcf28e97d8da1a894ee9f005
      GIT binary patch
      literal 3414
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientKeyExchange.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientKeyExchange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13b5f4fbf91f32676b4bc2925e5765799ae50213
      GIT binary patch
      literal 3437
      zcwUuOX<HLl6n-xRCd6?871Uad)@s6H+-h5JDVu_XrA9$qz)5lm1H(+5%plZSm)51#
      z?snf>rJHT3PYr#_^R(akp}(TPq)*SC1QH1%e3<Pl?>*-|=iW2_{P)M70JdXXLLNh9
      zOt%9A%CIsL(76>zB(y->G=|kEHv{#W%5|%Sk2a1(`V~FKCAb)t3G0AH-+}h<0FPJ_
      z3K{%!;4~?EG|{gN@=bL{bd;emZ1?qXlVN4h!O~SDP&aDvI!9c?P>`@yi!=Cwb491d
      z`?(nsmgFK0b2FhDI%PDMQ-^6-M#RuMQ`Y2IxJT7hYafH=n>CvGhOm%T{hbW1dLzm`
      z$Vah^#VBFO_xU@;_X-&+QOe+sajRZa5($RoK7TO7x+ARdU=`L#SWVhl!j|zE)-n`D
      z?YO2!6hUU$6v&JOi?9w}3F{e39#FTNQGv4o8yP%x%?EoM+Zvi{+Za{^bM2gPHpzGr
      zo2h(;5HVEvX0v=)6jW{*65QggTt*Q*;;mA~BFGF&gR0Kk?4d9>k0@b{@+k=#5k>1%
      zOjUfRg)XaKCBnAOS+$vMO<f@K^gD?YB69y+2#s0Bl=&{~mhcqA=J~aXjHmGo(Kwii
      zpjL|+rfT&MG3=as>6TfXh`eg-kwAF_7U(KtFR1tP4~J?Qwl8>L3C~f)b1|hy%+a{T
      zqa7x1RT36az#}HNJlKyq(fIWY4GZ6Rxf@DQ&?w`8$VO^t>Q!_@7qTW9&1qR<Z$l^~
      zWGym+(=y6j0(JGSM|Mnu+SjM@Ca!5iir!&|X=8cNiVl&+^9-wIPa_ptNXC)rB|Abb
      z66grn@#rN})*Xte3~?ea;lWXK2*7R`$DPVKU?-{N9|<-C=tK&rSH@{4G9n@sS$IB?
      zrLD68l@uWLcb@=swY9f3O6Z?^#xxGat<miL<UtI@5(XJIW{$jOP2({|t2JZx5G_vj
      zJZ@3pCD4v3%h-i1Q`KX2wyF`f8wSG~TTj^WxM5NcdTGabr#5=E*8>e_MDfHV@&#w2
      z)QIC)gC)bpFwF@i9_M<Lp(@)nH34h<Io|0QY6QfHj8VKmC%R>%l(hMMxh`ZofHPE5
      zMI(zsjq5S1-<b=|9y$px$~3fhcyJl7NO+lH%RCP#8Rzkm0Jti`xJJj+Y`Nx&B)m#-
      zI%4YRl(37oJvTkLE=qKBYV?r0gS6I^_6FV%w7w|@S8&QArF2NWfwyJ6BWN#(3qLn*
      z5jhFVv?G@HoY227;{&0W9KEKy@exCwmrC{tK9lh21Aif@&}4j$FT{U<qS?H?Z$_FA
      zt&>xruSAW%o>AI|GLtFoWn6XR4zYCJn>$nlOCwarxXJs}5izfFu&KC|HACq%OW8CF
      zwP9P+zex|$OxmJ^9iBq>gbdq^@B^xtf~7gpY!wJJ%L$UM0=m1ztfe2p6=KplPnxsz
      zEFk@2ETQ{S`nu*=0$a)_u&gqP<y}?cR$h@r**!d-#1r>PS9u@)@~Zo&_?1laP(}B3
      z1P>e}=R>qW3jqePmQKqJXv1c-V=HOPQ_u)t8{oW&keKr(g35E=L|7tdYW`GEY%K*T
      zba%^tgFlI#!HRo$b_~lWvA>%{Tj;8oK<zk*8}6W(9tZEhLytpaD49g7V?+r|pk3G;
      zcBDr$(k>xA=15Ouq^E?m$B`--X+%h)V^}naSoZ|f@ktDHPeSW1(I*fmni5Hzoxr)j
      zrkSb3GP-wCrd^cHF|0>7F>;)AC+JV&B<gXBIO`#4FP+S%VbH-kj4-Ysf}4oq7P!M+
      zX^Mk1dv4sui`YjDF|ps%<!dGz!Dm^TDJRr|{JZ5zTu9>5-RYo~5XGS5XE6rJQF9iM
      zQ?BU+m^j1Iu-nqGh2<=XE928Bg^u)0mUm&6_qDY5zqD2XJ$oi`ohW;)brLtaD<|-J
      zTgBgSR}p7#Rh7J(#Cs(lR=Y^FO3+#HJ3b~tSG$t<k{GRaRf!zL=Qm`T<#?MusZqx=
      zQSGLzKoq)h7R4B$zw1$~p<KK;hfPG9j|kgKlpVqaYR-!Y;S!O5*~wy8D$?l|?ZLPB
      ij`DC*0l&u&v_dg8^^a7Be8Q^6Po#B`{%2?PU;YQ7nx4P_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a18851baca422a8254e521b8de7442f203006b6e
      GIT binary patch
      literal 1785
      zcwV(s*-{fh6g>@uA)x`;7eN*klYk6};1WRDw+KiuJX%9&lGb4+H8Y{$AN&blcvecI
      z<%8w3A7yzv2_RNTfmJ@tO!u9;oO{mg{`u?McK{>U)=<VUnzS<d8{@z@)GguZu50RP
      z$3Bp|!qI0<DJ*YQ9L*mlQihcjGZ|^p4-FLzgVzbvP|46&BBGF)p>jf6(wkz~4n|8=
      zkm;0gVj1a)NGZP!$M)=mZN`P;O52Kr;tUnD_O1w^8Z{a?L!%1SEotjBM;^7fw<jEq
      zTGTOA8K!9`3{Nn$1(!q7BA$@|%2Cgup@G2+7IpbwjnqY@CDt<gJHpvAc1%Lq5GA-~
      z+;F7Y7mO8NO1cbVC1G45b%ep^DsT)})`LMi$fKkwxlT`{{!WfDhSp$lw*6qZ#c>ne
      z49%D5QH@@XK6EnpcQa{IDgl-C4#!>eld5Ukm0k{B(?wNJGf=Y}A%qE#DXgTIVki%W
      zmID~XkcRuj{9iE~y2|V`<-YV(tr3m~3W3k1`b1uxE4))`iDg#}R8jb$xC$TVc%;f#
      zC5*I@klv9pKH+$(jDAP#8+1ynq+(-&qZMrdOyRkPXAJ#UQ;B05Gep4KbIGU8r0qyA
      zwNJMK(O)9ZYLOt4W)2G)<{9*BhH@-oi74KTO*4%ALt%y$j&^kT5yhH@7YyO6j~&N4
      zI!LKlEc$v>@%)lw6EVV*&UiGzm*`Z~%D}}1l>;$5<0Qm_R0px^vQsvsa-o;{D5u9q
      z*R%R+sG_%@cI&7h3s4iTFT+;^1_r<2#z!)gp^@GJ`T}F%7)KMWdh*U_MhlQz(S%Sc
      zwIY_to6!mCEF_=J?Sc02Cv;`eQ=Y}`a2EHn82EweEQUXv6{^fRPUed6d{ChXjSL<Z
      z622pE1!yjxaBLup$M4ZWyGRz3Czw4(8*P?PuzHNzu=-6seMZ+G0H`wAH@454?4atv
      lJYCES1b&f@@)CxzOz>B7cv|u`&zhdY7P<)$!>e45_-~eM-oyX^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43c99e0376798fa422483296b819177b8857aece
      GIT binary patch
      literal 2480
      zcwUuNTXz#x6#h;xnQ0tAdZSjsNEOobl2%2k<z@?&(loTDv{n?FCa3A(bS6wDy->ls
      zf55-sqYt{44lG&Ar7u4Cqr~q_rb!AZYxy!W=bXLw_wBvEv*(|GfByr(D8ARwBrsgC
      z%gH<0&Fps4mR_<{vXVvD*);RgO-@>-w7t2^%v{#ZZb(nMB@HbCr=R0<WjnW?wF`1a
      z?$9_QaPm3E6J^ulTZ1le>Ul&QyX3j$oG0@Fk#nYPdKUzG;wfdHv`r^DvE#{!^4gko
      z$NLurS|**mjG`Hb474FCa3p2gGF{$SmF_}z)sh13DJPe;7PGFY*5PK0w{DgMMpFN;
      zD&u6e8lVewH6+FTkgdh)Br~3C+67Y8(Jjz=V_|A&EQ%iVYIuo>RU@#LZixgYD{liY
      z;}rpI&2iI&X7?HeO&#Pu9>od7G`uR%QMFNL6_N&C!%5a)%gq)AlJ%jLQAXY^OFJj)
      z0cy_UivH^c-oPmqgLZ6yz+k+gZGXcWMG;3rLw`NH+OdHF3<|WlawAIt*ad;+c>lC=
      z8a9x`h=888EH>4XN*mLSLE0ejrh#^JD9^VIoWVQvES9~@y5oAvGjlM#F$3@7JtEV7
      ze|Gf(Jkb4|f%BkpBd**sZECqAUT?f76`eY>J=5D!Dt)HE>`>WT8x!a~xY5*<nP)tK
      zWATIOOd0q9ms!(%xoDZHa8Xug+Q2nc>4+umg0~(;3TX|qyhBehHE<nsM6%2clhx?l
      zU-BBvhXyiOU|I#aSL7DjW}1N~Pn2K(vq>tyj|?m;0KMpxOwV*|C9#_ZKEbDCmzU2<
      ztZ@_eiSz_+8(0Bngzh;NFqQPG+RSkZ9ekncw=@vBGuS3TWpl|jISZo5qo9V)dZ5om
      z4R`kROv^bMdV7W@EM>T%WRTjks2p-KsB_0a5uGe?QTgfMc+o3^Ft)4CIS|U~Tno-E
      zTgR5bp;&BBKe6*MmE4Yji{Pl)6%gY(?hAC^k2M-&iu`TXw&=<=bDIeejK--(iBe<D
      zj=BY1sRr5cG@5bBZca{_YOwY+fE!kRoH-1HCbUB1Z%N~d1DnqmxVpgoCcYzyfrl`D
      z;a3w5^BE0xC+Tw;NBGrUvBHZu3It!g-;AMRb%wEiBuWe4mlA@p+Pfa%*zDlIBOLe9
      zmre}%INiGP2t&VNH1R7&)%ph?Z!Lw3v%!at@ueDzlhFCRN*2>ZxJINIW|P7&W^op2
      z*8F<FE>Xd)vb)5SO987hcpnpt)`>x8(?N#3@yw~h_##gP-(3~xD@0HDxawo(PsD$&
      z(uf2`ivg5TaR{M=y2xR$u`t+S6|C9EeEW?Dtt&r073Ef4l*8316i*oCX3#32FQ{K?
      zAY|6+W2r{X$HzWy)d*I)l_NyHu3LR!_y~>%RZ!hpsRE6JbR!AjBl~o+W*yB)l_oE6
      z=>1pN>-opXFF(ZE>|>bAgAegpdf;#9LjykSq4v8zN_ERk^<)y;!Rp@r!_WB~^zooZ
      zWH<o2O9{AyFQFG6V!Vz0*yPV>ivrl@tlz;D?okrEbwZf03Sk~!1VYd$pfB+iBOm4Z
      OYkU(3;oAV~yZ-?7D?cp&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..776eb4a1898292cfb1fad68729b4f8e5dde621aa
      GIT binary patch
      literal 3336
      zcwU`W`BxiN6#fRX5r-};-E3`2l|q2VE_S1I0gBd!#fE~^g%05*OdBTYWI~~vR;~M1
      z>%Q-GKkCuYBj<SZ7k}_S@)zs(W|ELnf>t<Z-pqY>`R;e`yDxwK{mZWaHsL!j$`ovl
      z8=25?Z9<z28Nv#s(}_^ZOit*d!VGmJbYWPBBm0N@B8U1kQyUkSFw<VR6l_?)?!aVp
      zOf%x*keH&fM?u{J%Iz6F!PN_&g8GHPB#pFXW}=oDRp8mJ8@jbe!HR~k)DIbYGSoh0
      ziS|q^Cd}5x0R^s(<f!nY9F;06;8(CXtQ(>yGd?2Ber+Tn6jX(iQ7ti`nY#SW30>Bh
      zo>s6meDln-64{82Ktb)iz!U^?h!bQe6tPU*h_{x=!G~oE+(-JmT6Xxc0;{}O$&3rS
      zB-u<8S%<T#xD~4vcw<Skhj<ihoF`IaxRiOT3~`%^wFoc^VMNKEg2sh?6v6eQ4!3);
      zUP1Ld+bZrry@Co;jB6~N5m!*&(0EW9HK=GrP=QZNBv=kh$f_QkKS%`>G^?mWwY1!*
      zB7{3>naWs^v7~89%SdT>n^kPVRz{{i{gh~(lIGh~Y{w3gV~SI{!7i+BC|1rF*vAer
      zEZv%t{dEI*>@SfTXMedeR*cS8l`aTtuaDBLg5?dRQSDdJj=iLIG?Pl`l0QF5>Qr$+
      z67ER|BW{iPaW@WnaSso{9Kb5>#UVyY=;Jy`skxr{d`>la0L7`u=shZWrM)keOzW1O
      zG-UAmR2-JU7v-4<=RmALzltN^;q;6Or@{Wc3X+aOzW3v(7emE8HoL9j0fY&~N;&`~
      zzK2vijA07nBHtn|rWh#)u3eK@M^r>1CrVmGO~LK$Om(5zW<<@Y6o*isDY~^ZPkqET
      zB(@kjy<lT+`5)#ItFGd>q|F!AQd*R>Nnt|8xGb+b&Ekp*ByrM<6vxN{LHf+3m5e46
      z0~|>#i3$^JICp<IGQ5e5FO=RKQ#-4SoSzfysrgHFGw$SEt}i`OibY=V0M*!H#&d*&
      zrcTEEn8X>0>8w3O2D~_*ZwPAkQPIjPp2MS3@q#?7;k<^kNi1^zaTQPCBH2kvJC5!7
      z&~Xw!#kx56PvDHSdq%~x(#~t!B@7>)S5O%U<Xb+_7Le`rqKcge`|z@YwSj=hSARHV
      zis5m){=-h=1=_rLg(rP(@Z9z2$E$eVi`Nt^nX94V4ZKMp6Ivo8dSi14?j1QUqSkx_
      z`*8_xOLi{$@Gg%<fPYf<zKRd<Ay0&sN(njUTK-ePazJgjM`hc5BG2O~A3o!dI~OQ*
      zW6EM4WiS#F(<fO_lB{4^p;*O*=O8Li%F$h0*e<Fzcm0uM#*B(CUEbrXON87gZLyBU
      zDMuOH@bcG?k6-+az~?Re+CzC6S5L5M8tM;xE5jl_{kC)`ZFXTX-<COASc0X1{l<%l
      zKBTXjoUh**#m%)hsL)qc?Nu!AX=%!0%`R8az0#G%x?|1qaTObWMpN)7G}*$-S+or1
      zzc$%#&H0xs?i!p0RnK4&vKxCDa33M;=Uv;*o2~<G=tLJUf*w94;H?gn0^nXIvx`9G
      zTPvZL(L*P8)2^I;+UT_!F78*+x0B9Z>PY=s2gp8R31-oeMb~er`@R6mV=HyrK~={f
      z7gUkwA?NIbT>)UdO-r~b=hK}<cW@egj?*k6Sq#p)UPb5N{o+A{xcaf0>sqdLTxW~2
      zJ{Qh|HFiD<rM#1Jfp_GxSR^BsXYpXwvGeX@-^_tOR0Mxf0seu4m+d((l@csj(6SIW
      zIMIrnR2H1@%E>v2+XMrRGl&i42yl|`cD}~)G@SSm#x$(COvLCQPA104M4U{FvHG#1
      zppAu~JdL@af3Xi-TrbREa%dW-yJv82sCgQX^fdhepKQ;^TB@GR;_0H#=j4-FzQDCe
      z{1UaKSfgy^3@!~dUB%^TyjAs17Vl;8(G|Gm>&MqS`;<@i^XIe4Y$H2BiYM_T;hIb?
      zjQ}jd&+tdy1j#<d=AL9DPw_%LP01OY<-bfc=p<8U>kGJIx3!PDU*JndSW3@d;cNDr
      J0;fXX{sWc^I=uh@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethod.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethod.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83819e2cf185f22601bf3d685fe3b37b5d877056
      GIT binary patch
      literal 1447
      zcwUuL-%ry}6#nkI-&B4~+~k*_qHYB#LqW`@K^BaS1s(=VroNO>N6FTbwj=W5A7p%(
      zpn+&4KKn<h=iV(a5g*p1J@?$6^L^j>di(R&*HZvlEJhGun6BClb=TN8-l?|ftDaX=
      z_grV++BRLa;MDhA)AKCHUN!w4XFGx*LocsZYldA_SL{ZeA-J}w>kKn`H&8k1d!=j3
      z4559a)-V~E#?Z5}wz)c4dZur#6dBal-9kq5m6~N+{!<1iohcDV!Pz#W2*trLAR~dR
      z4B>pcB$d|BXDRxwWmj{WmMO)k_?nCm!cjzca$QCQVZIuc5l0V0pKjUaTBE*Yx*Nt;
      zjpQeEr()DfhHLR$Y{nts1}7b7NM6R(qPi&~iWq72cPx)QsG7cJd%j^;2sWG6GF`hs
      z2&I;(<O10m78ZLPEz_l^aVVIMV2Yu?L;r#2n{^rYF~bluT-P|LIC}>SO6Qd8Tf1h(
      z&uN!zY5dzngsSzo49l08)8*9M>p2-J9x%*z!WC+U=jATL|N9)1Z}Fnja4Y6>i+|7L
      zKO8f>f#xk*Ron0zE)^|Z0LgbJ`e|+{O9w!r|1r2U#19-mF~TDq8#)z0|1dvsl!qyo
      zafRx8DchiGe$9RZD<}FS=@|V-7!+AD7!+A5^qo@a5QD{X@DQou5r#fdPXHtIj8g=r
      zFp3P_5Ltl#A#H{iq$@~KR;EUeF{X@t!NhrYuTZU$sw}CS69`FxA>)?N&sTf`iSFB&
      zY@@!R8b<N%@Bn_l{~+qd(YpA4itZ6o+$6nC);!}&2rUc5vxo^iCcGztQ*NQPyrT6T
      zTDO=~iu_$j`HYE=XFy@GS?FjEwFSp;59xOE0`2kvlZO~8zm$~Ia-Ms+Dvg{VGu^y^
      j#?B0k5$$XnLurp1PcY>K*&ks4?+f6ec+L|ukB|NUPVqZL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethodList$Iterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethodList$Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b144ae754ef627f26fe38c0f58a024d9a259a93
      GIT binary patch
      literal 2681
      zcwU`V-%}e^6#j0qupulZO>5BFUly=Qs04yo5Nw5*YBZ24Efw^kOZFDFlk8^p2gCR;
      z_!sDd&iKqjJ5#75Gvc#Po$7-xzWAauj^mU1qSbSkWfN(rvp($R?7ipv&Uel|=jQ82
      zUwjE*6z|K3Fifr*Ztk|au5RQE?&NH{mTOq%x~_36S1{`hi`%wt8gtxPGqtjAI|C($
      zTdHGPG9-qCfaYqdv6`!_+~!qBMkhncTXh}1mJ^VD1Ve{zXncc#l^9}mQ!ALR;V^VM
      zYq~u!!jLbAl`}=?Y2DDBOAO=b@bJtcgH$jz-UZ4=K^)z2M3GdW;21+Rommt+PbrWQ
      zi=z+E$atDzBy1oBC-5vKtyZhFC35{=YD+@QDFt1KG4z&ogU`G56>eQqS8ALgSvIR`
      zZBey!@$D~4qPh%Ip~D47O+}8Xn#M31PBT?k#vsG_W|v$yY`4)cEr)BBhF~Y>;zpG>
      zgb~L8k_?e*onbg!BnEj+wdeVU;~m<vII0T@UcfLFz}7$D-ZHgaH@RK4__}VoR20eZ
      z5F_bK*l_VcwJqaChO^C{pEnoW>RPeJ>)dbxHyJN6WSU+D)2O<ZMJ{uurr*-52Wv5o
      zq{w1Y!OIXQu*w~A0;P~r;}}Cy2F*u*^B78E4lAxxxiw28sM$eShAvSOZ$D1GHlrYe
      zEH!Q;s9DdxS=t-sPK(#gbx~lOJ3{g63f=&fI@)kaaXwuNCs>T+aXOHLSId;pQ&up7
      zQDMz1n8hfKX8LhY(RXh%TnH0aa4sk~hkjvQS5QPh9rJ?eT2+2U7n5|N?U)RU2n<Te
      zFt}ByskY6jO0njx*R`Op8mi-3M6vw1*mC>ZayneqE=}P%(jBFzgWeHwU(r3E6jue1
      zNQj$_zK_tOpohGKHAj9C`t8dOZJ{@NA4jv%Ega7deU8)?PTr-h2u^!661~4A>IX#l
      zkig&Ij7P-;9A_yw$foM~)YCq7YzG5N_woF0z}4wtzVq;@Js%%0tn*0IJ`-Kn!XyyM
      z>^+ip553zM`V1Y?W_0ra=l3m|l7XgNz%=eL1Kon@leQE;v`};h6x4F$l_y)GuQ89z
      zp<)QHJdvFgvZ!XCqI(D9l<vh{v65Y)ILp#aD(N;R?%deH80}5(5-vq)X7Gw1J4IZ;
      zkHq^E*+0|HFC_Zc7A^Te%ViAv>CF0tNo2S2>PLu+tfZTpk!DUus1tzSs26@G`;QjB
      zM8G%OCbthg8<-K4AB&{+g#SmXlD6C?)j?duM3Cxf5(E56@4wKCM>vJQ=`SLJ2_|8Z
      zb+$;H2_zPRlt=xPWiMCl!09oi1uh5h*Ko{-=Y9AgP05b7;9~*47&LX!n=GKmOPM4L
      zZR1LFO5$RZrJ%6BmhSGses}lmb$4Qh8tP4-a?tO|4m!lQ?)+O1J!iZX5M;J3WbR3j
      wbEx=`j6aQC*`cp+bsO*8eFCg_DD2vyFe=QVXWhWNUL}OYJ}l9D*;{|_AJS7u6aWAK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethodList.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CompressionMethodList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a686a9d929e65fd052e405b126785c7e1fbaeb54
      GIT binary patch
      literal 3860
      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
      F{{;%Cqy_*0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Constructed.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Constructed.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab4fbda2eac07e7a73cf98779e5abbbf414ace91
      GIT binary patch
      literal 213
      zcwS|WK?=e!6h!A&ZEM|l3TZb6*DeJ?5M1;GwGFW)B$ECX&*s7dcqlQ!g@UtuJZ9$k
      zx<3GHut*RQR>};btH$akjAYUGT3nqS+eSLEv!-V^)GV6>Q^GQMLRUtK)47v16Jjlm
      z;tOGt7Y9Phwq(~D<%{#<SO36m@s9{uX$M!!eXFIP_}N?sIVSjWghc+r3^Br$1gR&4
      HdEm(2?(sL5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4d148a45d50d049e1c92a38d87dbacea3d9f1ef
      GIT binary patch
      literal 1657
      zcwUuLU2oH77(H+E;ly|)gf@XdSXqH3X(1~cA0wgExL#v0X{ggk5f_mgOfX8F%5kdo
      zX1`%SVt3m`7dC-5fp)zgwe5M|S|vlBlvR52_`H66dd_+5KmYpeJ%AOgOPFD}*7HW?
      zSN6XBZP{~z@^IKM@A-p$_qpSjwSgBnUeG+)b0kC=X8ByXZ+pG6?u~XCPHU#2*PET1
      zZkn5&)=h?jIUQexA+6Qa`i9=oj7Cl0>R1h3V~DAyzSU$%(!F)7rasmgQfi}N8k*WP
      zHtU^rwW-qBzTF==49s9SrPsHgTxqH1wr(*LpG~hIQSJ6!&ka@?B86g$A*v0YI|;;O
      zFw7~KM}{F@4M(yC^MijY@LjK0F^pm>NyFz9#1KzF;^2Y;iGu_OmlPy8NOEvlL6QTR
      zgDVPT#QD`V1)pG+;xt{)sgHJd9KUJr^vPe^9CYn|%l2K4#i5J{N?h9#L*^t&M~bd1
      zI0c0)1uxwpgZyIP8|1y`_zX)0qxe5k>N!E{C~iuL0*{OEhn#2nv}N4JT?uz+ofDD|
      zhJmxI;A`BYmD|2=A9M$M2Mnc2W1Bm#oNiDtPB=37)+C{4^94ioggmBp%7a~1P{9L+
      zTa!du-yRMtCo%u~d!VdjYcTS=&NnV!UTT8<1|KDlmfQ2}VC2*7dmlYsomS{-Wo?Bv
      z9HFmRT075QJb=0s_C(l|VV8Nw41XPfRF1!DgyS@K8Y$vAL+A%$;eUI-gSFG?Nc0WP
      zzD8D{^U>6tfH?s##!~YF<^}vTp2`TgAmC?GDl6b(;vM107+I?w9V2J8V`Jp4c6^Kl
      zt1XSOXuZbOpM|o|={F}-R!Q4^<gtonJfKyq;Ss$Y1u?~ozQ|B<jr>QcE2X82Z%{1d
      zf5q|#wpo$R25}nX`;lPC2o41|#DC&fJdp^_p^Ps=*6(SCQLpFD;P3B#6muI?JRN@i
      zCDk0&9jbY%ir@ul1+r8c`8_1JRC%fes>MTgc&zIZZHd@%7Y*|Il>BXB9TvH1!o;@F
      zsT?Ud+814~;AW_<Or770m43nUPsgNjarkWF;aF%gNrJx$AHGeeJe15BSKE&xrT6VB
      v-_VoDg}1o1eE1O?I}SZbCaWPwDU3%>v(j7K{{!s5pPM0b{8z<8(Y1d7FB4Vl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Debug.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Debug.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd47c506ed96a76a1c48c3cedb8edb114ad8f9fc
      GIT binary patch
      literal 420
      zcwU8&OHTqp5QM8)9=d`czT(YzQV&c#YfN-m(MZ5367fQ2VFE+eU9%73-|}SQ!5`p{
      zGWHH0j2ADJ`6|_&n*RKH{{V1=?Gkc?-ARy&nVicP5vWAOu`iyZaIVKH5>4f$lM?cT
      zT9y#L3?`!M&D1C%6q@e&eTzVkgo+aeaUz4HFa1<myq*Yk6Bu5*gQ5H2T%L7WE-zY`
      zP1m^{-1M%xoh%GO@k9qYIVD*82Yo``3CGHYg<2V9R0!3!4pb+7@>JB5p09X)I~+;B
      zFC(4tkC{)VIwtJ3|NGT3!M+RAXrwN5HfS5Sk&W<axCXbfu!91MOeLlqmYA3Su>Ffy
      n_(fS=)>U?dVW4pMhU%+{tg#l2*+8AOya-?&8|Dm~CbjhqR?AZX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/DelegatedTask.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/DelegatedTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8523bdd1065b85813d7a3586f2d7909ce33343ef
      GIT binary patch
      literal 1606
      zcwUuMe{a)P6g`imacbN`(-sC}!-b8dE~}v%gDr(E<VOd%WtyW(8A!-Yo>DW{i5#bZ
      z5Fccpp#SWT(Ty@OZT!Da!6!jG&rQ?PR@#;*zJ6Et+<VWx=jHFWul@pX8H*Z@2;^H~
      z&wl8wdynl<#&)+G*qx}o?l)y*mt`PZUM!n6ulu8hw7_u{X$M}|vhS`ul#N(JMj*HA
      z{k|85-bx?^GC{l5l99kUN0n#<Uboxv;#IpTS9&emebSBPnv=v77`^Isi4_n(@DQ&?
      z?MFOJI=h)`%BNB@Iy>J8{LqhY2&D4U%L3_AyD5h;hH(u!0rTG~8kj(qh1|MZt1J#f
      z;DiB9xsEx0D3^L`D>ABW6UjO4h8HY*k+05uXJ$UBuOo%`4V=QL%JG4LVd(58UiG^I
      zmh)d{OG>Gz7iu^saCVpStw6;DZp^sK<A&_Seml(KBkmz4%JhOrdd(+h<b^t>a6vWl
      z38$9dGd4Gl{IFG+ULM9YW;9rA^RVfZ+H0M5D8tymMSM!uuIoG~SDea1u~sQRs1@Bi
      z?CsE14xoiBY=J2<30c!@?oc$7Zl7LyX8NJ|^zt*E>ibN?+&g;Weo4l_=eQy;(&$AI
      zGj2NtCi2tH{?LNXeP1<j4PSEPRNJ~hu}{4h`+=<l$UbaGuFIfsa3=TmxVF{IG3nf6
      z!N5F51vG!H6Ht{|P-qhg2`W=QGUd)PR14o2DB>nJ$a(^$|I@*t@>Z)7C>uBmLqk<y
      z{E#SKlsFMTugl5(!x`KYeV`i3QFq(Ds3EI<BI<YaH>=?3DV9y~H^k>@bsP9MaYQMa
      zHm$m$&Col7QAQo(X@*vPv`rlU6_d{sz)3!JTJ;~3fsOYPuS#)h0Gy{sL3QgTPFtxL
      zIJ1i#WqIHV<FB&#wFGZ$N8>}Br5%Gg$n=Jds`&fXZ#eT4M*hH5J$L>kK7PH4$xY;Q
      zvqOI(RZm%NJ^ec_xm)<c+QL^GFr9wD^_eYvZOyzuX#?YnR+`ORe4UsLWE1<GosD6Z
      zd@8h6es_AU@~qfsxX!mCeK&C)C0yXUg)$LU%;6Sp;5OeDv4ABwxXb4fT-s&Yd-yKl
      zcp{n7{XWMz=37X3k8uj$_SxFBY7#?=?azZYGKsUcXH-LjQ5|LZgW%FH`@r>s;B;DD
      R1A1;J+Y@9ja3{ez{{Vz*W1av2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/DiffieHellman.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/DiffieHellman.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..587b65abcdd965edd9fbd54d4dfadff4366e8fc0
      GIT binary patch
      literal 8733
      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
      X{g#F!`t72h(>lhtq5kd&!~6dMa!bc6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/EmptyExchangeKeys.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/EmptyExchangeKeys.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5796f8b3ed413ed52d6080997fb45b822e070719
      GIT binary patch
      literal 1069
      zcwUuMTW=CU7(D}&rQ5Zww9=~;Z|!m^>!rpA8WS-!!BYEBL*nBC18lS1CCe;<82^zE
      z`a&B`eDuK|W&CE@R0724KFoYGbIzIbok{lRudm+$JjQ{72t&T*_{O=}Gy8_ah0*QW
      zM#pn|R)c%S(M3lLj{5bs>9qJUA9NMO820|g7y~oJ4=u+MFBqbFrpgd|<u<sAc`PVU
      z8CIl*;aILw8VFwUn@#R%&~SqxVcND^Hw9-{*UOp83}jJ76iXWBuq;6{A@b6tiskUP
      z{zZ*@@64J_ipdH|+f~!E<T~7piMB<K3zh$gqev~<+-Zq+&|;a43-?TTmeXQb)kEJl
      z!Hv-_nP%A3u!b#$U48m|1|@;p3=3W1`E`;0kp5UyaED=S5?Asqn@p;>i~9=hF)U9a
      zG(5mV2Bl}(K0j?v7&xt+^SYR2K*bLBWY9Xpty!L{5|P!AL!JULJ00#c8210Ez0h`W
      zNkIm)P7)oDH?6*WsVM~t+T(&jJ#&4p&R<*d@lsPSQ;<Z8g5Z!}jH)@rX;f(S91*I3
      z`E2wGiAyYgp+y8YX;f(j4v@ezB&pIyK&)VuW(okQP$W;YJc~p>U9;oC&fyp{a?PaH
      zLgu6J`goQNvGI9={c?;QA7gKY>>9Nso7zrppX7cZ^$k1kb5}@TVmCiTW{CZh{2$H5
      h09&T<4K{HcXs1W~P+L|8d6H3W&~IVn?n$8V^fztw?8X29
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..381d8668168e53e89058ca3ea039d145c1261ec9
      GIT binary patch
      literal 3204
      zcwUuOX;%|h7=DIrLL4^~mnxcC)R2I2gK7~MT+x7FG$~RGAxvO!NaAFI;8we77x$(6
      zc6v_h7eCaV8f@+1^ix0dNA#!EK6hpa0SQNQPG;`h`!3J>yvxi#|NSuzU=x0jQ6ynY
      ze<BkYj1EUf0twX&q|<sJWh95SKGg{9PsEJTl&SW$8)|DbZK_5{jTx#bqeQ~`*%U`&
      z1JOjkdPE&f%P5nuW)|V*jHdH0K^|6(w3bXrs142{-)<z$WGtzNZRth{WjnNlX6}@*
      z&l?m<frOR}G>@8Ub0!{FjmDR;Ruh&`vNzeMx>1a|3d%80!m^p|)`Z<yfC?E4B`mN6
      zbVeOG+B>MmOa+UuSc0oxHTUY#bXvk9Z%uGg%Gzu!hlC{xWVj^E4{8auEi=@s8por(
      zx+<X}n2bgBaMaMmv$I)Z4rsJiKU-9VGAGFDwZKcLoG~T|o4j4kFUMFpR^wF}9tpk|
      z*Hf@Y1YH^m1-rMnQH^yn){>+dKq*)cFR6^`I{7eFk&u>}8R5Ihr%z<fEtsuUumUTE
      z@eK+B*eIdAFO$+W+sIOHAsf}$tY8ba(q}4Th6a*`DSU<s%Qq-^9or-nQ(nSyQaH0L
      zv#d_!#!iWZqON8MQm-)6q+lm@F-eAcR!j8d)r@6l!bXX=rmI=VH!IkSeFA1Ot(jKu
      zES^fuB*X&>4&o3Q*R>&yZi~G&En@$$f+H4mR;qYzRnUf`cI7&um(XUY7<l%K(9#a<
      zVqK*>sfA^lR?Yp>qms!%ON(fcYD5G(Z%SBU?-gY6q+q>E@Yhm+Yx+;d<7wfbjQ;!0
      z0ioBephtw}ibYe=m}ZW0X(mIap(XkSBl&%2?^=b@ryvRz!aDEs=QF6t5XP)+g0eRw
      zhQ{V{BMwbe-JnHlScX1P$&_rTpgAFU8VMno6sZkPNZ5zgJUNXs3JkEpOH)FReL54m
      zunQRmnKq3~%=DZWdS?}k2tC=-(-SV7<81MGQij?+WX*tXJ9VBWkBI()g6-HX;}Sbz
      zx&vn>yKx!s$#{3lc(WxGypIpW%#P|A^=Nz=iS`Jbi9|Op;)-A(?ZQW_EDwKT?-K=|
      z;u^CWO{G*(`E@Up6bGnf_J&9&+vpbV$ha+G^(@2agsJHY?&2Op7*I#{Wrk7`ykhdb
      zfYU}7K4URo^b{Pkq9ATC7;+!iM#Lb0&IT)m*<*%sRghm%;y5WrNoDRhuZ(!=4ka^2
      zOg*59S3*@GARB}--}SV{e<}YJ;$6e{zl&>5NnYph=_HCM0W9$O$Dq_^F+bv~eT>RS
      z+$+LTUMo<->n_^ZO|3nck7g|6j>p!+a=ZdqD^6Tm6)WMX$nsO=`1z62!cK#)_E)U>
      z87}|$1IYgI(w--Ht#%AGzTe=_qOMIG|AaYp{_(q6Y>L!zvpzD3#zzdm0op%^xj2M{
      zTrcK*8Cr<wFy9wPIPZg~N2`U>XM4?|Y+&iXVWDhrP<pTgjYKYZT7iuY-fg@Ksd)~r
      zEOz{b>R)m=%B<54%ZFl1IzA-PT#l8;4!f<iQfbA#M%XLPVo$_2y#G&EP^`FYi9Ens
      z=Qvo=eyM4tb5=SbZVCA(L98ReK!lWZ@|)u%$?if8x*2>AK}4CTUeeK*M?|XwvWlQP
      zEF!j(K6_P9B90+sCGI#*I3fH_J)zlAAO!!)sw~1zG&>lA&pNJR_Bta|(NC3pG%XAb
      zVwNp}j#U_97-z7R<FE;7X4gbJhV#Pc$mO%c0WVf>S>VO$6jvgjr>JX(am)&fRhtWA
      zjt%7Phk2Bj_B_m?nrCJ198q0h4_wa6v?rHoP94YoM#p}cPs$=Ty-u#=X_w_`tB&@+
      z>@E@4;8Vmq$1u?P6sJ4c6+><Qzu^)+kgBUNvlz~M9OYx3FN^csTmBRmJN-}a&KN$d
      zxSGYsSzLdB(u%83aFfD$TK9Qnmw!Hqa5Hg%BiMy&?569)c7qY#WCm`rlWy~q;11cm
      sjWCC1H|`Ph{k%*J<}xveFYqPfagmd+@HMS3WLbWLZ>>yxXZid7e-)AQ<p2Nx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ExchangeKeys.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ExchangeKeys.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fe3431abe3155921a988dccccad09c5af61e799
      GIT binary patch
      literal 686
      zcwUWC+fEZv6kWTWGIkv8g-h{*P*mE|gb6{OFeDbMAxzo_NO>gFnbUHbVTR15DW9bY
      zkoe%E4}6qypW=hYYRt*Gt-bczE9dOH?_a(G*hWo9hEN*@sWo!O&cq5tV#Tp<T}I(p
      zdLpvg6ZhN+hT=$E#X2-XQ4uYlF{|4j2{+L(N7(p>#6cLuNtC*Y@CbALbTAMRVbPun
      z1v0c+SBYp%;XNk2m4Qt53Cs1Fj7E>39fY1Rki{btc|0a$>y4g)BFZ{Sg!vhHCg!m~
      z$b0FfFI^`Qgi5_JvqBzASk_S?lz$6%BTwl(!Bc|KI{bLn?z}&I*C8y}fAaQ}o#!T2
      z@Pd#F6+~#(XEFcgg0N;n#{)vamVxM`7kv?(IDMbJm+jDX{GJm@b^i%!$+?UP4f{X;
      zlV9674%5gLAEe4J{Tkd-0$P<_WO?RzYRU|^4e`js;PoNjPC1_8y|Q@=v-u6B&E^dX
      xpRss@XV+N$#GwqTyp~x&^_+$smU+XEyo+^4mhRK>60d;iNtIDWUQcs3egJkYsjmP4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension$Type.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bd8fd9be7b81a8451e110ab5af55c1ef3f0d772
      GIT binary patch
      literal 1970
      zcwUuMU2hvz5IwhRdu?Zv8W&QUCNz)`V#j0~pe0~8jd3=~65C0=Yl{^R*2dWeSI#<G
      z+fnnvui*(H5nNC!Dk`3f_~rq@1L7N=`VS~`uUBcPf>b|@=brK0b7#(sefOV_?*N!X
      zS;h&5#J1Z}ui1O{b=7s+YOB>ycfICbearDw?RwjBTlJ<pY3}bjG6D=kJXLMj?zXDA
      zogIb&Ln~FZQni>ZXbdy?N2W_NoGN7Bs4kbXD+R4+R`XhM#av|=&gFHEb6UyNm-SrM
      z)T-rDp5dffDjTM@RLy0pYno+HH54iGgr(|gA)BLsVP?&;Q7vg#%9>#^NJeRcA;P(;
      zrnNyO2KVen$6;VP6|WV`g~>`bPst3aH~XqSoT)YHZoR!guS_Q@41rv8%LyYG1;c3t
      zPvQ(iDC4J`p3Xmz&S-mecRQ`?iAsc$&ngHa6o$;fQwn4b!W=xUAk0C8gGmJu4x$`9
      zry$C~00&700~{zEJg-3EV333J3I-A4rxz5&@EEC>ue(mMv$N@VroGu9CF1#J&2Cg|
      zug<XuMj_!MZ{cN{$8nYS3V%hx5KdC(?YHVJQsipWtMt^Joz@e5s3`&W?-Rkc)Ak8S
      zQW{W546DWY68%gkiX1c<OAN6iwePpu&W?g*tk6o>o@ejZn!EcX-_Z`&H?KLhc3M9s
      zr1L4uqNMe!4401)rk|#{$ZHB#LA!n7C|9mww_54r$p8E6qa}<Q&5l=dmg{_wLx&H{
      z@<awjcU{L5bWTgg722UkDUSxq3nY<@`nGGgJ06`cJ@j~{k4_iTi*vLtG-X5=&+ugj
      z$jiPD`#$3PsP6}SulRnDd&K$90kILj&xAvCKaNwx|2Uz0;uCoPHkcKELXvJ`_y$G<
      z8Vv*l8WZSTFeuQtK+l9i0!;|?tSk#OCD3#@EKowAnOG>+%S{P98<S(bY&91Cgd$QG
      zBZd{|V$86DU5p!6sEY~1lDn8PtZ)|z!-`QTMUG;saRYN7P{}9oB7IJg48Z5q<QEvl
      zmq_9(%;Rg?+HYXuTWsMwwDB2U5;wTfAC2GqDoGq5uOw$iZ{k97>?6!SU>*_!_?`s&
      zfu#LWFboS01+NNe`H71wQ4MKieAag;hmo(0#4o-5u1Ld1&(R2h^JJWBo-9MQNVX)Z
      z0rI590VzQ?PBuX{MV25-k*Npl;IO_V4IcQ3xPB(CUx@2h;`)uaekZO!kjJ0&?q8(B
      z-{L)`S5<Ev=)8c-e#I(z{#`KnA?DvZd>|x(_l{f+`i)2Ep{#%TB1O4S!(Gf-Yf|!#
      zmElt@NM~>1wba2wZ0v9l5h_ymIg-9)(Kt)q!t0-c{r^1)1#v23o!=0pZ=gi`Ziu+~
      EFZ9E!p8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension$Value.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension$Value.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3a089e811d1954b2e385ca7b9bc49ad2f70bea7
      GIT binary patch
      literal 487
      zcwUWBO-lnY6r9)YcI~>hwSHceB3i`YS@B>|5Q-j@-qYPsQ)0Fx+0wt|N$}tg@b7pR
      zv#WS4<-xqndy|3TeSW`x0652fgc_kg(FL3GIbSd>9J5xjnaSre6NcR^oX}S0x;Nsg
      z5D@}Gr_?gV^@Kf)ry_L`8id0oF4u)rzDHOi94*lea&4U{QYSJ(<5Ftrt_bzxlMx{p
      z<e7+3$3}uCVnTZ;wYV={#=<=Du@Z#tFi*J}aU)CqHw@gfw1m^)>M1V>@nc??RNTta
      zqV>N&D-8(Aoz}t(6t`B`2)l&dD(-}^@(&K+Q=x_sk-r1^@`*gId&Vjbg#9-pul`X(
      f%VVP&exdC#`4ymp&1&DRa0}bM$JO^8>;=sq;vaoe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Extension.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa43c5df3f9f67296fb1467be00ca9d217ab037c
      GIT binary patch
      literal 5727
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ExtensionList$ExtensionsIterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ExtensionList$ExtensionsIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1192103f4529462f006b1cae061bc4903b98ef14
      GIT binary patch
      literal 2697
      zcwUuM-BTM?6#rcaBw03)@)5Na2^HF8X$jR<DNtHUQ;i0wrA5InmgE+;lk8@8Hw@!{
      zq7ORbGY@vAfMaLGXa5YR>Vq%7`1MjfXIVA@(;6Rk?>+aP^E<zD?m6fCC*OPv-~tL^
      zv<OVDo7K#HeN*4cn9|KSPAOBdtxcmS?M!ydm8N4@X5Mhzp+ItSuC#U6vcm`o#MwAg
      z(#`eE!rFaVaKmU9NO-4J*C=J!_|QTiQnre-R@HO`L{6a1FpF|aAmkXINP%{D!*GVi
      z1hjm!ye7$N$}kOgTHt)Dd9(Bqd7ZV2G75ncDmtJlXhn~T7<vU-Q|ToI2|ORha{{Sm
      zVO6|<lN6<1C`iYP<bQF>F_{-tgc0H0ODdv>FpZ=N1%n<fPv>QpBLZD{!<6&Y@|v{o
      z=xZfPVRzmt=%ppyHdyu#L!4KED@{{r@Y<B<@P_Wp%PrUAu_Dkx@-16#8djCiL#B6?
      zN~N1}LwHJds~{^bdkG^WkgQeBytP;@Y-CHaEKN613*&-7x~4U2nT4utlggY`H0~J%
      zowWjW1!L$@C|ws-q>xrH%3=bqs~E>+ieg<7;dCn3G~-Cc50_D=RA@*GL^<%>K_SNu
      z6@0l>FBaKFa}Lr=VO$qDTkEO2rc<p{EZddEg$h4JeS8tz5Ev}zrfIoJa+EY&S$2}H
      zmE`wk$$L2kGq}lh{f0naDqjO%bZx_2_gX<vm7HmgBsH8Z%hslhAWufV`-3B&!9Ck5
      zALT%qaHPx0Ur;fJTh!vITyy@IUN05Z@j)}mZ?LFh1m}2nSH%R*9gEP{<h;HoFw~4c
      z##&Kv71wz80kgeErMhTU?Si~%cs+KcS4J68K+Tz^v}a4Y<4C7o$Ei)f=%TT1>TcC0
      zklX*JnQuHbr<%*t^dwDn$}@d!2%(#&2u=DHo*}e$^TYt+aUOLfcamPr`*)GFOnNP}
      z4rn7gh--W3)<(WY-wsY`tvl$~Ms_i<gVPT@z#;l4$O-T>{eK__k8uJ&(%DZKrc;$b
      z2?}R$mR7;N=exN~)_m8cJtWYFIQ=EsLffs|0c^W>{YxE8R{*00FqdfMyAFo=ydlJ|
      zbr2l^1l0;@ou_?>q)`vdrWjajoWM@e7pJ(tK*uADE$`u#eQg)7e#YV`iI?_SL0cxb
      zE1^|N%r0L0>R3*Gqon>$`#;c+KZ(U(bxg(sCKC;rg#LrcWFsb_;!0yCPl(CiNDySd
      z5EvFM4VhfQpr6*P|2jP!^QTZayP?%>UTW#>qzZ!wBP=556wx}!o&a(>fV}QQ#+m#f
      zWO2LYI9?~=brD{?4lf?yQ8W5@)1=LHsyxEXa`)^Wvimsl@S@K{NE~SS2)ug}Ij?Ho
      zLa&c?(d(5%thXCrovdS{1Z?I4Hd&ud%zFz8joM_s)*}jEiUFu1Sw|`skcu6UiqBA8
      zzT-m<`=#AR3A<f;(1W5D9t?qy$wWhwJI^w?iY4D9?YDbW8~G0J?qd1DGtB0mYWDt9
      Z%_uP+db^MCF*p-UF@aT@6S{Z4_74cvK0N>c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ExtensionList.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ExtensionList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b63f29142c0ffcc2b6f99cb41e79c41c3f8c589f
      GIT binary patch
      literal 5666
      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
      A8vp<R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Finished.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Finished.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50e67a23569a5f9e3997cc878647990fa458cf55
      GIT binary patch
      literal 3117
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Body.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Body.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5cbbf3d53f2b3fc484129679aea0ab65bb42ec03
      GIT binary patch
      literal 340
      zcwUW=K}rKb5Ji8*IGv11jCTl<+1R*tXFv=HE^>l)rkG4@s-?Rp=+#_!01qYUR?vkY
      zE~*MXpU;2w{_*+-;1XvF147kGuXko|p0#k)Az1z7-M(ws>supD*qTRPT)XB)VMv%~
      ztF}g3egClIIw}-|^FKmXPD1p39l0SCmZgnb!qKu?6GqW(qVJ?l5zD)u=r8fA`YjR4
      zjq82QH=Sj|?7QMcwh|_55%w!<Lg1iqN?7~{kTA@M2_;oabDTajNVp0kWb84@tl;Ex
      OPcTilM0U?GFUAMtFk3GG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb1af75e5a2628958ab0cf00fa1b15ea4677a791
      GIT binary patch
      literal 2593
      zcwUv2?{8CO6vw}ZuD|cPyRi)!Lx&8ub{pM9hGT<K#vQ%VZL-@HD$2auE~U`j*7kO=
      zXw*a#Of=C%6HN4l?@Wv@uqY!E(bxV_>Uo}CSee7HCTHh<&U2pgoaa2}dG^=ezdZsl
      zf;B&O5u!P}8ozF?nYZG$<-{wMLcCNiuH{#(ay)6;E0t^J4XZc3Ub6gXB1D91ykOe7
      zxMo*Z3C&3@m6}_e*Dfq*Mw&2?dhUSZ1Z66vYqRM^8HCZ$<}=#-V+>De^J#rrpGu@P
      z!fto)yp~<mE=?s9v*(1h!Dlmz*2X}KXXj?wv#rsS2leT!m|jod>7apWeO5P;+F3$N
      z<E(}G)Rs6#I+0#52;McbP_+o8bK2VM!c1=_k>XqkgO_(yk-)@qA#dlMQv^?cG(%{b
      zDy~=octarUQ_zk51mA?~vZp__c_4;U&fB?hU5{ph?EI1fFMI*`1-z`lFCZY`kb;1K
      zpn!e_K>;BF0}4U{!UB#c2n$dIj3`h9Gz)lDL9>8}fa3}x0$K!|P|zYk6>w64Dxg)s
      zX$7tDiLWyX+R?$KP33KCwz|4xmDA=@fveY+DlVIaj9JbLmc|e~m=@bUN9f#cxAo2H
      z3fi!ntL0qFR|ui2#j<WYR?aH(KKk|O4$i=jS+3XSLVBTK<;+5&oU5){wxiuzwn|RE
      zX#4R7AHddx&Q$XS4jRBb4_56;wNxsW9c!gWHb{@dEA)gghqTz!0-<A@Jw-FZ<D!B~
      z;1>0nrIKZ@5W2-ap0VDzm~mObTX>s$$SKwb3GMy=ox;8|;7bz7Sx%<jw%lsmxIUR<
      zMN}-hldcV61y}vxIBLUM>lMdZRgl9qLeMOi&GqGCX`K*j-0|Gfb!*uf*S9h0qWk?a
      zrMatw$?XcYqa-~jD9D2!tz(U`rV3`IGQM5#r{6lhoFSuFEiYTsdC{zqCkq@Aj{JJ*
      zwr!PVIIH3ZcV6%Fq{mGw667Ko`J8P!)iQsd+_Lz@4t9EK{PYN42@k*Wk<)v{BLJ}W
      zyE@?NpsPc!4!c@$b+fA@u5NL)>graZ`PT8h1Jo{Yr<r{mzY}|S{TBeb!cERUiaZ2m
      z+xB`q8|b=+7bW#HHAy-k>7dsusaMirpBk3fCo$?*6^Sv4g8{W!;*i9+>Qf_<hb6zF
      z`qdW6M<pLq1F9-{RPt+TP;HkyCV5;9sU4ChB%e~lYNzB$Rr#GQo*G^>vQ0G{FtXkn
      zdX22FhCU<fuOVh+12qg8S(Q!0tk`yx6&puc1#1{%6{=x^Rk(&p;~o+}b4hk#ivNys
      zl|ddvs0rQVMT~qHBR`T9z(oooM<Lv#Fm98AJJgIHD1r?loRtxT@c)B)t&!vtZ(^;)
      z2D&$(#rFS-<mO5d(GS!HAGIS)9Wp|vjG^Fld6MEwoTZ05<2+LC33hV-5RX0RYQ;Yv
      z{3!jtMg7;wa)YJFQgQA7CpTH%WBHKfW0u=2pKbB^g5@igJ6!X-Tyd6OmOhpk%Mi;j
      z%Tbn5mNAwImdU#hF_V3Wxoq2o4H#Ybk-3jIH*n<-Jg&eAt^w#EN^}Sg9mXx{!~4{a
      zk0^>yD27jI0H4z!zN8_1O-Jwz#qk{t<9iyB)l%wpsP{X6FXA1y@^RK;%p3a!$)BDq
      z=o3ad-Z0tgmO2O%OYY=Rwu-CTSwkXw-V=M2oe(`Y<JtEB%Y%2Hj)u*n5AsuX-Hj1r
      jix>^HQS1S3{0VyYJP&O7RYXb5kg30m3SVeP+N=KpY-%t2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85412abbdfa7ba809e3a49172bfb1b08a9c047d2
      GIT binary patch
      literal 5821
      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
      B3qt?^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fd0428923019f2e445c4d1f5ff8c5a486ebbfc5
      GIT binary patch
      literal 905
      zcwUWCT~E_c7=GS$Y@<|xi4#<CD#8YfMNRyg(F6_AWJ&@C<7Ky=ZN+*zPg{a9{v$8&
      zW+a+;>4iVa_@1tr6VY(d^PKbceLl{|kDp(@0l0xm9vQ-NN5=N9v*+yFQbcwb`gTtR
      zd!8$l{Z#mVuqEEbB8>9L5~g&c?K`q#Z#H*Di>o<8^?wqMbi=OmMl7xe?t4P+fhWD_
      zA;G9rcL>?Xfh$ZHn6QvXfiT(dq<9g(Z3^|$Y5IatYy>UG-*J?u*J&{ub-j?C8z)R(
      zClsP!J5rwP5SA*9-y0be>(#$Yd7L4Xj+WQsc3UVDMNH_SWZ@iUd1FqmC!|ZLok)D3
      zQZL{<VR|%a`9t|*T?=2dFok)-Oy!tp?AKGG?d|LHIp(hsMv5@|FI%SjLUy8Vau3f;
      z5Uy#vX@a>O#HuAWJblc6B)hJ~_}wsvzcGG8Sw_A!9>;lgi;)<|Rt{l)=1B$?k0v9q
      z#?3czif7iK38yj1NZK_O@VV1qT=<IO>qE>uU;U2p+G-zXU)73p3G{K{V5nS5Lfqy6
      zcX)l5&+H!Na6fS=50p|DJzKyf_9-x{jLWP*xPq&xb1jXYF+L5|b4lgVNaoB)=J}Ml
      YmMC%e3iYvgaD@G2gq<6*my)jKU%Vl^!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff278f3e56f69b78221c4c0d017b488462ef70e5
      GIT binary patch
      literal 6952
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Jessie$1.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Jessie$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdd87231b07ddf65ed685cc74c25d020f7fb87e1
      GIT binary patch
      literal 1944
      zcwUWE>r&G|6#iDwgi<X=@xnz#Q42`YiYN%8m5U%PR8oOaM-A;xi4zhgNjvZazJYJx
      zf1OdBaYp^`Lph#JutsZ(KeF?kv)_K_lHK$D$LFsA(pZylh~ZM%u4u1}s<ETl+}AwM
      z(zacvYL>XGJ>;He^8U1hR)!8i(k#O+Ys(w2c+r<|gyCG^^?0%3n*Oeqcg?D4@iH%E
      zioWUC3`hJ;)9X)BpzMK>CWt<1+NM9na3%R4{DD=5)@i52+rV%%4heD$El9-Ch7N|7
      zq#z`+rp=csTN~Uh7#kL6P_j<ZuvQJ%6!yNeRV2!A`QWhqX-c%ktx$C*lLOhm`!XTp
      z48_p(?6hP1e8*P{S-qN8sf}F>15M<AA6eMiwqoePISIW~!S4{$mf?AEoW}(Qsm%Q)
      zV~hWthVHwjU7m>HBKjp<V(2@tq&P0)3Kg|o@fpUF^)=Od{#kgEp(|sR)r@5to*HQZ
      z!Rm;NLCSi+8#1mnA_oi^Dnn1>eKjS6uGN`F3>nuO?Glu6gVY!KZqBfcGI!^UqVKr7
      zYS@nT(bTwvn+&NYofD)w0U2ZTC<<=H^P4E&X1IQU@;@YGOfqyg$~mtuN}z``-b6U>
      za(&Zqd8tlBTsRr`7>?(RV)(b_2@U6FMkU;57;1iPLpG5^otZiveLf>$?mu;i9O}$7
      zbn0f=HvEdqe?6n&6`iymGN{e9h*mor%4HdPBNyUNVIeDHiJ?6bM@GKEnIKs~VTkEY
      z#VztVQ;d=J@NcLhFNXMnZF4txw48=ZTkSl<T%$+UaF|ZkpO~Ual$f=PmgCWr&vAd#
      zDIrC}u!X+EU>zM|CepY+L|+?X<ZUN3Mz-+828TW(KKKd8-UpoH!WZm_(~D3D#R&`V
      z37ic4oj4V$u)ZJ)@NMt|;>u~|>>j%J(6<(tSCxSp9*W@M2-YGv9l;~YXjJN!G9EQ2
      zlsi%Lu9AtG)5>hre4s2u%|#_w!^<IN?`ow_Awlaht$B3g5w2ndBhYad1!~4Bo?s0o
      z*0F=9c#UUxgXegQ7kH1C_=1f{yT0wWtCduQ`U<HaXusG6F$;nJF{ujHMI?R#1}_cX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Jessie.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Jessie.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb217bec666bc1c445ee32e9c571ca5ba38b7913
      GIT binary patch
      literal 943
      zcwUWCT~8B16g>llHl=)|A|Hyl6~q>Cw^eyCHAbWm3gsg%RDCkj?W7FZ&XSpFl^@}c
      z@d=}eKfoWQ-hMzZJm5Us*>mo_XXoagU%$Wq1W<q*#{fg7p<3PvZ}ZQd64o;&^iFlu
      zmUW@MZDEWQal{y=IwhVFK}$<}<{k7)7$%I+l805Hjf~V$xx~P>8AjJ5Wh_^=%EOiz
      z`qMuQ@#@A~zr4T4kgjw!L#`U0Z?#m7VgjQKLr>kjn`ap7SAHz*AHAt;kZx)CHF}3(
      z_@z|RzG4{6=Bf;_^{6fqn4(1Q)d|cnd?`0iL(vq<lDczP@!JKru;P4@_So_LO8ePL
      zpUgW!)I8-@)?`TYIZaYCMd!V{nt$Q!h%;xGE8Y;=+2nzZ^w~w~P`8Y|p6qHnyQNi!
      ztGeTFtx-wfCNYRRDWq|iA)CEEed#)ttHyDUVd2IlEf$iP!~KrB!?2XC+}J_dNj$(}
      z919Hd|E_l}2&jfuXmu2ZLZ|Q$OAM)cbf9HhhN2<r4A1*BTye!kaxJjrhGOo@MEkW9
      z5!fQbctt9)*J{>;KIFAfbes?cWFbyQBHSlq_E;Jk{XZsQNcvGr2VzrpI!Ai6+i9Xl
      zmz5HFJ><p+gA7?`kPJkdzz~KB#R&}{fmtLma*0!f$1r}0C+LeFidz&XiP@uWM)%Be
      z`t~Fy($nXd{eig;%jcN?hRnOK-L6Lz(}+>rpnq+W{tl)gkR>M7>qidD-P*_9xPm8i
      LCn-1AHG29lQS$Uz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e494b6c44bbb164d279239cb63cf73c99e852ab
      GIT binary patch
      literal 1570
      zcwU{9ZBG+H5Xb+^m0o*Y;6w#Md_;j(<OF$8TM>k!NGZlsl8YwhsAoA+uIAbj_yT?&
      ztuHhhiLZU*H!{v_FM<YNV3Xc|ezP;PyR&=u{paU>0OKg?XcMr?LBrZ|cideo@ak5r
      zR<YiM)gAwp7g{UcUVgW<=>}zQzEZA+etmOWM@*oT6RZjiSoxr_Ef6cN74rh)g=1FB
      z3TRL4d4c%i!<UP;-7=I%C&LY@fwJ<gL1n2??XkTQamyla%Sz>o&sMLj&ljHMDP!XK
      ze=I4HD^>i!ug}svBk6V8-a_@2mq5D#fnJF-=%a<^qL7}E!a+Oidguq`>~eZNNwH@o
      z+7VAcXE-mRGb9);NhBDO3|AzQ3<krngu#$v$Vj9ZB*S$H$<V=YL!yJBli{XBCqoy*
      zv_u!;Y~7MDaYCT0;0Io@vAyAiPu-1*C(vD}mfXs^8~V)3X+T3SZMDAX*JyV;Zl&Ro
      zF*%YxehUrE;l2(!C-YEi_G)!+TVer=0!cRv-Mv!v%^q#?a0Ayiw!Bh3yL^OenU6wO
      z3tM|FkUygD>Hk=&hKCY)EDKB>uDDQfYqjiAQ~Y`P>Ao0twGo!QC7)Z{chodvoI|^|
      z{c_;e8zIFl{8cA+?4{3U=f>%jHF}#<bA5c%08%~DM5M_`jYw0G%1ApR?ToaG)$Hf1
      zLzQDxryD0}o>PG6CFb9cFAz@mY3(C=KA>O0Kup0o1sB>CTvTv5u3%8XRb9c5f{}!R
      zw1R79D{fTLnAr-n6pfp$$O%Q0W>V3VX?!Ktn&`KkSQF=Lr@e`bwi9n+(024DhHNL%
      zMA~*ta*dLZ&mtk`1WB@qDf<Iv-qV)aaGRcE)E<6zz(PN6V3<CXlbFCfZlXxm3ru4R
      zGuXu~yu~Q)s7(ITN1@du%FxuI=$UH+ACWyM9;X0ANmAK5a@=h?qq~@m(x>SpIlZTe
      z8D~Yy>^nK$<*Ih}6Yh<^`>UGxy@VuP;-#oYhCDoKbc@U<JopCj@4PlVQqL6>l&<~)
      Di?>pE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/MacAlgorithm.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/MacAlgorithm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dda1d5af3a1e9503a7f29a13d2eeae311a39ea7
      GIT binary patch
      literal 1121
      zcwUuK-*3`T6#gy+3SHe8Q<O1(PX`QFF_|yLWn^L`7WPmfAwHF^vM!}8Z6WesDSOzW
      zaq-zd%6M)=94?q(lY7to&OPVrch0##e|^0KP{s=p5r(avJ5)}Lk?~1!tw8a8M>+Kd
      zBm2nml!jqeo!-E+gX6x4D8n)jR2;+YDK&T4XNWdin#NGj7GzNwgvRS#+V!_phNW7w
      z)!1xTwN_1MD1P`4nncBPY}XF<h$~-clazzOk(EG90z*p1D$)$`$}}XC*RG`NfoHot
      zwO(i^DfXs}7~%<t9Nd;6a**I)T}A?Ne%g?cgv79-*{;<b_Pdt%-sn0OLs}b{hSN4Y
      zo8!<aK|qT11jn{d5=MqIwCGUE7Z$Hi!X}=IctWMj=pOrl)t9k_JVVm(JY#GQPRG=^
      z+3F6vCzctg^*OFO?~@n`I{e7+YEDxYpCm7{B%^?547;;T2ae(U>OAVdUk?pY(g#D&
      zwBFdfm8-M#J3N-E)a{;Y1VfMR)ob~cg{AJP`(>J<K+it9pXK8Q$cj^&;5N0+N6aG#
      zFF~gG8-y&v{HuNg>!g>3bF7?UEd;lsA;^T_PAml3_;*6W1Z#RHIzdM7#3sn<XUKga
      zk_hh7E|CRxXpAM?3%z{Nd!7EWOhUO-vADf)j{8@MaSFgRNe<5<9&qiX{2?Aq(_d13
      zJUuf(uJcYPUUn*6Q$xsI;Bo2mH8%D~LXt*VoN^S&!*8WDD_&sx2iU*!B2)_B6+91Z
      F`8Q8Y{ILK4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/MacException.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/MacException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa3f3e4595aa508fb57f6c249684e2a2f44412e2
      GIT binary patch
      literal 322
      zcwUW8!AiqG5Pj3eMq_N%{(!gI9$Z9k6)&P7L_H|IZ_~w&#NDz<N`K2!!Gj;*M-^v7
      z5swbcyf^b^hWEYs`~q-}!x$~X;MLaZO)vFISyQR9EY!lgCC`jk4?4eH<z`W_voRt<
      zKP)PC>i+3hAat(Sa&=8;pAIL4=*G=Vf;RS2?4U#FWo*r3{XRARMNbPuIL=(Ii;4Ce
      z`t2~P=3Ekn**_hP3CXjoeQxeJ+#mfF&%y(oKujS7Ns1Z4SlESNGa0S1`yr%-L~0@!
      U#0Zzz7nW|%QXDidy3J<q2j(|QiU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/MaxFragmentLength.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/MaxFragmentLength.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9341fadb7b895d49c5ab963a9a240d17c7f6322
      GIT binary patch
      literal 1780
      zcwUuMTT|0e5dKc@)CjaHf}&Qul~9RA(PHsd1+5lP(JD_&fV9R5X(yyieeyT>KYY+p
      zi=#6>`rwap+&zh<Q>vrwG-vnhetZ4WA3wi*1CYh@C;|eRs@>3D>f3r#vkh0<+Oo8|
      zQ`<H-3`bkgoAZud-85{sWY|^rMHC?c^)HCIrfb++X3aib)~$vi5G~Cuu1>Aa2uzm#
      zCsSS^=0UR;cE#+jI3*C?_Hu}#K*W+Tvd^wtrfs^{1%m1EvOwr|ZNrE|AfX_M1LQjE
      z+r#N%alG6|rb7zCh_G~6LDZ8*6vRB~sDeI31O`f`Z7eo6*9_;0zGhM8WU02UTV>rb
      zS(le_1aX2h^)vLOf;jfEbV`AOeN>M7!rY=F)*6+H;ZVZ#c!`Ii*=9{EymF0#H00w*
      zLyclw;6M+vf(c}(S>3Xz0+&h|P8a_iXi|X&nq#ouaH+F&vC!LB&WxrRs~WDqz`jkr
      zS^7O&x3=s$rd<^{_`7UNx2u|Wo98KCQE&-4fwSqo_8yQJt_loMj@634|5b03scWey
      zW@$d%kV3<>h%#|p$IU2i2n=?6D7b|JQBTrisnS);(%MU7-R)IN9C_T~)y)wjdX-;h
      zkGl%)ff=XQ>xR7{aQ>e<^~;t?9`KB&d0Gn!E+Wf!OC0v0z-W7qJ-{(MCc4v_B6Y{8
      zm`!Hjp4{X?1dA`%8qT^gZ!%AZ_Pk${48ut(AxM7)5sdH)K+*`)U!F1l?2~7bc`Q#w
      zo-z9FM?c{QNHY-ve`dZytb`H)>|pQ%4zd<bggkACwMZi7X~V2V6N8?1<UN4{7^UYB
      z6#^N$pY#E!7(|Xz9+MvYqnFrEyFwb5KcMd5xO(&xQtId@jO_+X%DN8G^Dy->Od&^P
      zpp*y0Y1tb~+?|jT_ZJ}f49@y#a^%gn{?KQf3#uQHdeg%BckL_@X+0(*E1stxS&*Lf
      zqh#o0TOjnd3pv(-478C`ZKUQS!<@Pse69l=Zi6rO1dnxtGd;n?O&@$gPJ+Bu(Zc2K
      zj<X%;NC!ISqhHh9c+S(wnT3h(Oo05##AjUF!R<^7^DW$8;H!*xrM6INVKMp0Gwmkx
      lmUx*$T_JMja0D|QOPp>maT?2b0w(kno|43+mt~Y^zW|ipO_Kls
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c36422821d74995e69e4bb47bfe81710c9e5cf35
      GIT binary patch
      literal 6668
      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
      G$^Qe<GvA#6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl$Manager.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl$Manager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6068aed38f0f63ca809b410b1b187701bf96a8c6
      GIT binary patch
      literal 1486
      zcwVJcTTc@~6#k~ItSyUFM7-doO3_}B1+QSSVu-}XiX=5W__p0n+QD{rot+Z;Q~Vd0
      zAVwdI&;BUmneBp-HYQ>=n>};pJKy=vnK}F8=htrl7O`p|#_+7^cCBrD$KJJEuB;$v
      zTfX#mM1xCfQ}SBNmb~$j_g>kq-Q;rJc9bW3m5$%eMlJ&hhP0-z+P2%YUe~v|qYR8N
      z%np(d;ba(5EfHiF7)sR>%PA4fig1N0Gn8}x!IR%&NUV7co&>{~2?M87h-2JD5^08b
      zP6NiP!sQ#?PMym)cD>CRCaRuex3_F5^g41TbYTo@Czo^BWnEsAE5b0$<*L8iT~kuH
      z%~HPFr*~w}SDsbljttQhmwLYIa9;_}4Gdgj$cDiIce+xjo^_PA!(DX*O=22X4P0SZ
      zKCyNa*KnP5`?j<@)P}_&Z5YC^so`948I)4Eff)lg8LWQ{HE|wObO0``_2CROjGRu(
      z^8#LJP~Fss7s6ExlezpLR?EnnD4<B)6n(tlRMFHSx~oLns!(E^iZ6}g4lD!nlw)w$
      z!~zx>jFug2@Ld(&sJA-eo{9T-pf!i?<4XEdRWk7C*s%2lGQ@<A7^a0p9>1AA|L}I^
      zhTvBQt1s(2RP(yh;p;-j&HVk?=QRU^S#e!1*V=Xv=vEmK5E&Y)IK8L9(rG<i^f!vr
      zn?#Ddqhu{1Mh}oG6hFZ%e8!oNw2I-Z_JunQimqdVER$li_Z%ka%k-%e;sV(TT3rnJ
      zRwF*Mun%(|mx~9;>>V+VgbeROwy8cYV$)U@v$W4}3%4V6lD-<1iP#RPkHs&TWB7nE
      zGVU^b$HP6g7uKaSOpq49r|9>@D`_f%KeA<_Y@?)o3CqO(II64fDTVn~LcLE=4y)CQ
      IrtuW`1;&$wF8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..876fc6da638ff3f7c9fedd024ed730a8c35dd0d3
      GIT binary patch
      literal 1630
      zcwVJcYfsZq7=F$+=$Hd^a#bfA*Ny24-f@T_i{RoUXc4oJn3U~gtLfV1v_s}k@mFYK
      zLLyQ0lZijd__ma>aSQ5)bM13^-}ju;U%$V612Btu2|k9ovQd}cs$1%|Y;aq)EM2Y%
      zb4x36A+HLqR8+xB&v@gxYN%x{meitcibk$l(<KBLM%$^!fJ#kc=&Y$ity&DT`QvUU
      zn5;T*ZgXK}h&-<un!Ui_PbAkF0$H=fL-6B57!raEy?M>xEA{Fo7i;RK&KV+kv#9Fp
      zs?eOZw;8Z28by#fA%b(}OR@BEqfBng+&)B*Xf%=B$e&h-Ocxj~htYvf3H=Ns4p7!r
      zqb%oiotITzu~nNt*)H;$t(is;gOrqE+A$|@P1Uvcyc9wohMk13F!U$#hZ2e{G^3nJ
      zu1mPaFmzfF60S2W{&VW%-c|@v#GEkV3=4_>D5Z0fq5Wd!C`*P^;z$A8Ni8?Rr8cW&
      zNtk4qaSLMcVqIu<L(UmnRJPKhUN&i6sW#b7nuG*{{Fj$8h-rpLrlB`tR=rj;g>A)1
      zBJE0~Ng_=W=`$rln7}Z@xs!G7R=zzsl2r)BGaFgw)a8R4bqvsw>@34%J7~pJ>cvX4
      zLM_<a3{&mcSBBt4bBhb-C6Rg)%+O&uPIU233(|f3mi4a0;M>U3$th-C6#0_oyveb%
      zZ;4x2hH%a>xX9`x!|Aa}9uRSQSAP1FF>3U<s1MMb{t47~(MqP#{WiUW&?lPs5T?G<
      z-JC}^^<j_PgI<?@5tlr&;^E@cpAq?q?p^d1A_F@Z+6#Qe)q;N)(E{m?C?A``J#I8h
      z6u~mdJZ&+EHw{KHM(A-b)(O|@HSv5j4yJx!>Vso7QHUgWklIUq$5j3>@(7WD7i92~
      z3=|At%{3X=r+X&OtOGYl-m$ys*#*fYjTzi>Egw^JOLw#^Z(PBcSJwkUhC8_HerLFc
      V`^50!fy<o3LmET0AElN7{s0Sgu?YYG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e194365901293270a983dd096ab003db69718d9a
      GIT binary patch
      literal 3435
      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
      YS4BiwEWs?#mQwN}Sn`|4oE)$H4=nSv=Kufz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dca9cec74251457d88b0ed21a7b9207a3ff2d0b0
      GIT binary patch
      literal 2988
      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
      Be>eaD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Record.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Record.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82c3db5b0892c435d88526a2d0e44e9eebe244ab
      GIT binary patch
      literal 3611
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94c704bde66f12466a48f8207a6a9244657d910f
      GIT binary patch
      literal 2766
      zcwU`VOLG)e6#nkKdNOGtnE*NjA|ND_2WbI$We_2eM`RKLfy5X^I+LDBlS%j3-4jWb
      zuHEXwLW-58J5fO);Zd@)tiqjzRl4z~Sbn$X6`29SMR(tO?m6E%-#O==e)#vj2LN`V
      zpdcV{FlQCDOZuXIS+fjJbKSgFaO_2M)^N1(vt#F+qU(+5mYy@5<9f!kou%#Nt%8t1
      zi!{~px|P#T&s;Jxo`Q(L)_Ty#umnO`Gj9ka(>2|UvsCbG&DE*zIt6V^cij(dXZAQX
      zQvwlh&UClGDzGR0+(Aq8L#AbVhXpPq|A+mvhS@zqYD4y{(FB3DDw+_BA&6EL&4>#G
      zlid^YWSt5HQEH@3%NQ*#%oxr&eMTlEp0+c3enNLlxi1StlDa_Z`2(+1iwTHkY|GP4
      zi$Lp>>005&J;$_isqS}T*n|!Rn*}<bjjf6VHY(U6(B{LLwl;kF*yW5-@J!oc*hN>C
      zI$rNgAeJ+{Q^wMmZc?MSQ9LD)Yh;R!=`Cqx<x~`%%;WgUqcJ4Wqo7-0^OM76R#fz&
      zkMzmh)2$5Cxu>DKr-Gzpa{5(hU;{?-wmn}g@b)wSY5+Z5FOzV)RqVlQ0%{3v$hNX(
      zPN1t%bPXUB>|-PO;sxEC(+17lu;m#nb_@qFpx~fDdxcajk44YSYv=h=k-{MsBJ0=-
      zgSu<%V<;OM`W}p7FAmEVeuLzb!_$M^6AF$B?5xY#ys;!xwom4)T(J{|WjH#UF@_^(
      zRq&=jtM9~*<fQJ-jp&6KhR_<t362zE_LtE5iPS$TkA_veg;T71q38)5SRG|)?xgA^
      z-Swg<M(Q2pqBvbIU2Mh~j4L?Hg48Eb(j0!ApNexhFA#POPc}!q9Hmc_6ge9t=A??Z
      zF~xq&mF(D$iR6=-os12OjN2O2pJy2>D<BqGw{)XEpo$pf!=?((7x=C<`F~KMWk~lt
      zUd^^uB+9kop~BlcuICw9GglLaV`fcx)q9?Nk?UhyOVickM4CVC8b0<vh>hDtCu5W>
      z+Z&I+eu=~zHf)jDP@VvWtAL|v*K<!&k}eCdg%do;CyW5%a*zWpEppWJ#~R_&43(!Z
      zaCM3rL4Mcv^xnpro)xt8^xa0=O^O0o&-WVt_zOaPPJk=ez}*I((F8BzCBR=v7Xd<Y
      z+?IjIxR+XL&n>j|E~EYWWbiuAK+Pt+{4ew`Dfx=QeZ2}@t)i>gifyzMcm>-_=wgcT
      zH1X_O1^p^Mi|@FDu1Q}I-?5CHBXZdn-o1=nqxZ3QD%2O;eFytj@cKZ=-|wvM!=-(w
      zvX9)yk*O674k-6A#Kp0JXd)Uvo(M1F<Rn+=M5MeLO@#cFl8D~LSO5v-F8GJNF)42N
      zWUnxF6|#e9;rknA|68=;I}X_I(S@7Xj~{RXKVlNMa1pm*Vi_)0@G<V-6Wqn8xJQ(q
      za1{^y1if3LUQN)oa)LJDBfNuYdh5am)S6~;_d~~fxPTBnoWc8Ch3V%g{aj!tT;v?q
      zF~jni{BdM3%i;(aI8-iTmI$&K9kn#Ct0mY^SC#2Tv{#wN=@0msOn;&DAtU>BRcSk_
      zk#|%}n?<hdbCGdLt<IXyO@4W5jw^Mm`rgLYsQBLKcldAg{fPPgo$^OK{e!LZ=c*Vw
      wt1)y|W0+$WN-=2u9tcaHH&D3?5nuS152Kb8$}j<3^565w^BeQc7hogs4~s#zZ~y=R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a6957bfaf14d48974419fdec656ebd810edbe40
      GIT binary patch
      literal 2583
      zcwU`V>rW$96#v~)m@;%<l~)&$hq#t!m$E(<5SPUT>y~F(v<t2~w6|qon5i>UmZFJq
      zW8!BM{b1t%;BKOnNEH1<;vZ!^cRG{;#ekXQ&b{}X^E>DK&bjyg{m*ZI02qWJ!NV|^
      z(R1N-WlPx(>)Z}omKM&M#+I7mW;nhuw`k@pds@+z3^ym0q-~ga30{V-lO`3^;#rkJ
      zO6E+H>o&tk?9z_9+~o*E&8VuY_83D|sC$XQJ7J`_j4IUmA;HIREvD*xCbzlD%|&HZ
      z;|zhAkyNxL#Z<-G-SpaPs>LvL`B*51My_Yb%M`cE<pkFj>RyhW&&NnD7+&$C8Z{Cc
      zNL{FgHAT;aqngGuiWavOn?Kl2@~o{Ix(`j1kZ#!RB4<_6)E%CZQIDWV_9jC^D0U1H
      zw@p>gjC3zac$MMi`C%}~#RQ^+%FyD1Se#0v+WGK9o{v+e+<|Im=sXkVxS7dqQZdUS
      z?PTaMbS>YmB*mW9PVBk<<`h%e<Tf!RqYXg@&jxYTe4bZ^-q0x$PgdX<Z$z|!T#CYy
      z(9LlBByLpSBH~ixTE?LD+GfeREcjjuXPsM?$_FenJCIc@>zQGu2GXiV&DD>vgaIno
      zfAq>DTh;uyjX^4KhTC!1`<!WHxoPJaZdEGP*)0h}40kWxlt%|d!dv9(*gR?Gv$heo
      z6oR14!gFqBlTKoHP$wgTcSSedWq1<$AEzO9F=tdMAE>m!^JtDpc#om!G$HqMsz%;r
      zypM4S_ZY69*6`y#Cg^^lD(CoY`V`Z%tLr>zS7KVmD1tsrGO&o4f9OXPAJGM)WV2jP
      zG4x-kVs3yAT+EMY%rN+DqbOvk4^?pO!yLnnGA5FSo>ntHEHG3%3sIXzQI<#44He?J
      z$c|wAW9r%zPb)dC><&>x)3>J;Vm&q7E+c`MgvZpl4uooiqqC*6AtQvKgilX&)lqL$
      zKH@9*%#Wu~=<1@AP~HR#Jw(R^8%B7pqjF>gG~E{$z7rT~3CzJtiQE4SF?3~=6e30K
      z38w(`sHg@-*$}J1gfNR6IWx(NskBr+5Cg)L!5`IiZcb?Agj4X6tAq}E0jlWHrAtse
      z12pr}oL(*(YiTt^e@6f6o&w~TH1WVsqfCEbo|G4Gg=YSu60YK!192TUT!2{z5NPfB
      z1%X3c*++dM&{#n8f%kW`B&x)A{6z`)suN9uB6v&?%VprLCGb|f=7Nurwg^PtM_VG$
      zQNZg5C8Qe1>Zya!Sk!V6#H<T%kX&HhBH5d6-XVd?Y#OU+XRr4V-v@g3&^O(8h^C%>
      zL=rUINfhvQ0q^{Zz{|ieNoV>=x{uLB-yX&a_#p6L7gM`<I1`v9>99BGJw$W4e7-0j
      z_8vp_^#{EL#9i3weS{LiBCtgIeY^OiXi>oOLGNE!`SB>4-aoOjizlv`uqt5nfHLw@
      zW%I;iC$^n`k&`7f(3mFaI&rW;d~A}QPFh*Y{d4re#64J;f{hq*P_RYz&j=xp9ejar
      z@g=^a{}1>IKjCZqjOTcPZyb)tobK5xalD5lQpBkY1Dt$%$iqA`G^--~2-ci9cF+Qq
      VqVdqT;nYr}m_&sb=`f1T^Dl#Y!+8Jz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLContextImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLContextImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f3a8f7d9cb72e9284a1f97711dc8beed9d47f2b
      GIT binary patch
      literal 5552
      zcwU`YTXa-c8UA)M<%G!rN@y-Lq+CnG%#fi-P)duYkxQCM2uy%Rv~n^zBm<K<<C!yo
      zcxgpj@lv%?Zzx_`ThrFs1}RA-m5Z%VtJbyDHy>O}SuU3ky1YE-a(VgoK8Lv{P#-dT
      zpS}P8`|tnWJFoxe+<5?Z;tdTI0&517neZWF#5fvGnoc;KPJ~moH4+~%?Qk?2X}6M&
      zdDQ6`P9-$>1R4uTa}?23Twq?>v`0+aTM`IFO3~Z;(~fP#oT!;j$E~DCyP3?fMBGd|
      zS!RDKeYnd=8iS@Sa7P)W9@~r#8MZmlX^wh?gz+EFehI9O6tdjkx^C0fqmG#zDB{u`
      zJCk;@e9Ox4_2yBKV?o+Z^%gL#ETdy|cTW-D9NS0^Si=HKl#FoNjAiV&Ga8P{iMd<t
      zO1it_$+)vcpt5<*UIAabHDLNti8>uMSVZ}ec+%|74ELLMuhE|{1!^Kz%t-7t?6~~)
      z7Jbf8JS`9`quUH|rtDfXIY{(&+cX@LyIa*Kqu;zHQj!4f=4L+xZqw0-r2;L@u5Ae;
      zIT(&Qc04(_xnpKl4a)_ZXIIcAmHPRy3@fD*RtdB<zX`j_=_EZnWThSHy^?M2r7W9!
      zqC=p`^~rYAX;*n#n7@pEIo}i|`CR%aq(j3TKU%O(L%6Kn<x50o&8`=yPMSwLl4-|C
      z#u$+hrQRq2{k%co*3u{(jhQKjbooX`RV5b!NcG>U<0i~u_7+oGvBRdbjY2JZlvb7Z
      zMhPW#qMKW14`LZUHxcf_Ju(rtsEoVuM37Oh%jsXJ`HHfd7wLSjK=?X3mulOFd)S^_
      zxgD%+fql*Ui)7_BrQ)rEJ~CVHkmmWbK}~DeA+V~DJ}YLJnVcn+@x4!nAJuXe(V=6W
      zoOSD%j|CcfJe=$GQw_TXZoi?1E#Z50RAH{{AA5D|!~Fsa2h4*;CgF7Ewer%8nxUC%
      zco#d-?EPEAy9JhCw_Qt}9?<b#91vLK=~USBOS7fqsE{W1>$n*UCES1x69;+Pd2qYE
      z)8IA_XvXuPI(M$IpEu5uI0Vl>%}CueYc8?B#j8La{P)RnH>Cwtuy_Qy-+sIg%pzL5
      zbS9Zzp6hUsp{j$XlWS4i%Nz!!E5&Xs!R7(89Y<uj9~EfG$Lt-ltt0ZZW9Ca;->>5X
      z_#m5iToqYUbCF{S9VMc<d4Idh@Su)|@L_@Z)Vnj^%T3K|X7RIzkMLqrnnc~1M8c!#
      zF>GVlbO`3hG1N(6k4Wu4#uK@@2)WSQ94D>P@NpjaIg7X2w#DT9Bp%i9DW+!L&b3<B
      z@o9WUpvtja2MgSCEyMEN?#FRFCY|~@p8911C1pR(dsLwZyRB#@Hq@3FwD>tRoE56!
      z3oQI{v^`#H%p?7hmrtdE$s;;R4;K>cN!n)2;&~t=PL4d{uU<n`7IY*M=Ae;?I=sW=
      z9dW*cbTEtmy7@-ZWZGZ?7w6AR*1H@jQ{Gl@$Oq~cIb>xL1KpOh!$_q}>Q|c=gdC+G
      zPh(8Ox2gEdm7G_F&j@t<Uv*aoPYHicrtNp+6>z3%lC|_SzN_N}yeM!pYpJ)e3oR|J
      zrlLNy@&=UQh4^sVycWP&l85#AlEC_F^_in25VynX>f$ajGAYw`M%&a*6(-n^$=9N^
      zX`wbP)TSk!*O2`<gU9^%KBhIC^NyRGgtl0Wol{;pY>QcF>v$PI;3H$e>apV^apt8t
      zAh4m>mAOq<k<Ix9yR-k08IyOo3v_OA7^`qeK-<R4Y9?v;@d|#V;Z^UhSN=qiNpe|W
      zUAdZ{?I4oibxicZbjqL!kvH#N89^h#hUAkkA)Y!>D`UsZZE^WrSyXscQxV|3mn?j<
      zYW(Bn6Hs$^<jp~iytJs1R~9w$!lFhVyZo&t0$)x1y@g+I;V2|lU=p>bIjKOsf~er{
      z9{6|(X;4s#2#awmM<1UyOFV!(sgB&!0-|C9P2*XJIcoWVJa#RQeW}OZK~QN=^)#0C
      z1%gW^v7#8_pn_QDl6eqvb~{$9{c7BSW^$~;8U#GpJ^Yq?^?{cVyn^|GDXcw<;23=S
      z<jOcVHTq>C?RQ1hP%9wGRhz30zen>lulK~RLTgzO8?z!ddLlN?B;puXAK~h8em`19
      zgb#1SrfhIr-_D)JU40DD-Nml?d>+8uEWq3Gj#7X&3D8~)aH=f8JF%5i+ti$w76~QB
      z33U@!t_H+ebjY7h`O_7=jLyo9zA<bG*80|8!p@VZrTrb!BXZ>;c9P!R+vV;>b9=ka
      zBKojT)cS(wpZM=3m#;cNP4|!~bQ#?Wx-F#G`%a>PB%N2VHV{(mebizMOWp1LE_#<l
      zcenRbKZPD5`gxbN#wAfg-b41ampNzPj4^jD#%Zn&M$p9HF<Sl%YvNfJ(sL}G=jo{z
      zuo5pa8OE6sr|I(V(O+k<i+lSqfqqQl5T=+==a@_{<3XHf)Gy$1T*BAbHlD((<UYry
      z`5La^b^IJZ#V_#&evMz?clecx$`)1DSF;&^6@wU3k-CaF(JRzU7Ih`+7_q~w0v~Tx
      zJG@zid_a`MaW$!BB^?lvnnX=<3aQ8#>bs_~y)QJ0kqfz5P>2bP1}E^LN*TrRePhu1
      zSG7;3cyJoW`X=$w2|S#mAn)<M&;&j)iO*hOo>$Ok^Ke3q^-R{~SjT>GLXEBXq8c~h
      z%WAv_U!ldj5#?3R_5HoH4fqYeeoK_Atfk*`{SWlbAIb42R{fue_7@`kl_-BB!rzJT
      z54Mzl66Ig$#lMvwH>kWl;Q6tFE$I|vz$-2@{_FS#R~k6`CZ6D|m$mRDzQtLEeCiZ?
      zkCCfXes6Vs_f#ZEA3aMCJTE=aHy)AR3rg>mn<>ZF(TEdjTuztBF-TXqCI{#!h<VTi
      z-+^L2=7|NU7YorK7Gb%l#R^f6pjeEMXv{OM)ibS%>3IsW@icg*@locPCJ^H6G}Ba2
      z7N1>Shj@}Y$+pxojWc~UXD2Zk2~J_^BF=Y(u3%2h#V*kun!*peW$>r*3S)kyd##kw
      zDF64Qf}7Jkh`E9@5kiev%d@csi$xfXVm(%h4Ok^MQu9qp^MEVW)7;O_`Wk)=c`_|w
      VIjkmXBMa>(D!B!VLk8|={{vI5-N66=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl$Mode.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl$Mode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a21dae612b7c3255e17adab3a7549b38a89ce5d
      GIT binary patch
      literal 1197
      zcwUuMZEw<06n^ds6uP=0I_B7XM+G)1EYUBJWeceZv9M&_NQj>b>#$2Hq%TDNm9h_8
      zG%kMjM;Xs;h_VF}X+rOLea>^vJ>}=Guh#&|*cGwF@Ve&&%DFKzJ}HjrE1qX7Lw7K;
      zPEA+Qbxn18mSfiYLp$3ToSGsc3@bcbu??rEs7}yli0SH4OFd#xw1v<rlv>m3YV(+3
      zS#6#)vaJK{MAaEe9~MT6SG%_5SpFV^kju9iA~kZv5tYEODkF)zRIWM=N$0e`UFg1R
      zIlW3f-%3#IJsDBN;t;u#mLVd>r3W(NND!1pg_}XYW4gyi$2J*K+MsLLEyK0A9vUSG
      zSS1SnN6VwCBf}0%5_WU>MH`dw1kXe~Wk}8t9(%som+>4~hJ@j|#<)8eju{HGZ5?*b
      z&8}am&oR~cfW(m2;Tc11&NT816BUq?@d9~<H?w#(+wi=~yaG4(i0)9*2Z7r)-&x^U
      zZxku=U<SGFIHnsynx2RvL+*cR(sgj6G%(%jIffs&Bp=)&QC+a>y~=)xmP4Q~O4#4v
      ziv!Rp@-vy?8$+H5of4KQPA08M8h?u4z}l%h!X;KNkP4Oikx*HSekV<s&<NU*3D)!r
      ztbd`5C2Y_;MmWG3GNFb4Xtk%<Wn#j)h=uK~OKi?hl0#X<7AHvrAL7w8{Vg@X)6)~I
      zx8Dne>vokhX$YHFc)auZ78?6QAwk#va*9zP3-?MXR=C2eA7KB^6DXQX+t}e5<e@(#
      LDEk?dLVNi)!h0FI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1080d19c1299b04271ec48afac0627ae01e09626
      GIT binary patch
      literal 21687
      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
      GqyG<LS%IAZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLHMac.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLHMac.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e59baf6a675ff3b53a500fb1931a588edcde4b38
      GIT binary patch
      literal 2627
      zcwUWFNpllN7=0}XNl0UGgfTdP1DHjYkYy7fi&^3o3nT*(G1w-{SZc`wqZu&^u?g9n
      z1+ra|Lz1f8a>ykIQWXpiDab8V`BABS-7`qCfeHsr_w@3<_r33ZqksPW;{kvH+=?K;
      zu)Auw*~{uRbs=kTCu`e!wr-i%v@*A{#bSP<pq3&CF|>;_SzR@%*)wyOdC7?&%+S@m
      zU9uMIj+w2grEE@KiZX0!UK-I&gR65oX9%4g8XaI@!whXBreQm(;Y_Kz%Y(%0h_`=G
      z%r7wnYGsD~`A1>0HZQrB<}7CCRePQSaobj_d{nD)+ZkjCUg3*$X_lZvb+tU;4F?&*
      zM>Rupjx%gd=9{F7j-?sZ!QLr4H)57~3_)}$*o@~1D%m>~!*+B>u%kt$H4G-`F|L*z
      z(^^#U0(LUQtK7-Sq)L?Q;FH2VV>;_WaTRPtdlY+!P+|0N4EvCbVE?Lmc(4k3k)m~e
      z)m3#nS2awFkEk|(O3E_={eXf^NQhaVf(|5N=*Phb1|Gq?j;3daEK6Oq6}*T;BvVDx
      zb&@kVJ3K68+nCo3KIzuxxOLvEZX$1%RDDXdH1X~)hMalLX4sSef45N;!?p6HT9a6h
      z5ocIe5>{g9NcOgDd!`%|6+EtB5Jw|;jp#KGj9Hdx#c%>$5sVO(HP)OoouXT>o0h}N
      zV+$o-cQn%=;)W!$I+jl*f|Cqe)-Dgbnoj9Nkz<JZIb~uP$7x}#&NvD<6Tu|I-e+=w
      zf>Df#>*o}_jv|Sp*6ZA$uE;#mT2G-fC?MWYFoiLq<(S?kLxlRZs9opM?>RwkM!_sD
      z(jh^{+X{)^p=$U6r7H?*o%$w<w;8rkB7I)__Yqtl^&pK7CkN<psGx7b9JTtYy9&w>
      zL8)07_9Y)L<P&Ne@vJ(p;5j5BxXjSqJTvL)`dL#mC~TvAF=*(D(UqD4L-h1Ii`yb#
      zOm!&#IoIK~u<+`vga|e9AkRB+NpZJcrgTUwa(yl*Y#%Pm;*d1S-q~SsnA-mu-lcEP
      zJatc);<&oprY;fN9|)`)^wA?Ff^%+#o@Rxfj9e1bIXNwAbG>q2f>J4Fh-A@ptr8#C
      zL<1?llllZ#?4+E62w)xPD~zpJ50Pb@KA8b1^xoF;z5yZe388sN=tg6QXnHwz$T3Dg
      zawgr_LbIRgPJqVKsk_*kO5ek_JJ^*@^ekiVkLXOb_x~BagS0<pe!-?xd(vN$V<z=G
      z((Om?Axo1?`z4zECW#!TXG#Vu5S2+HdWOQD!w&Lwl8o7p3wRmR7{Uxrkq3{^$xe?7
      zUZNey*(-RJh%(XPKH&*E!)V+<gpb|6a33e8?_%hoTnmvz!+z`y5dSG<TB(p|^Acb2
      zZu<C4^qP-4LZ`)E*L{pnCnoOV6s5Ck1$l;LoL$EG+l{2c@}SWI*wp~MfQvrhAxWFm
      z_Hd>deqDoLw;;qC2$%4tk5H902YOQJ#9J$PCxE|Dxq~VJR{uu)J~T@F%EQz$^rqsS
      zlrOMA7FeYDb#&uB?8c22b$c4>_P|74(xh(jgH}jGL8#xOeU(8>M983cJXnDhdbE@l
      zOKESZ$sj=pz(-`#kLmAp30Zv7l4yS;QEH!t1w*n{1uy0TL;mSOGh!*zTuKMi%@=vO
      zAQU;!tXDU64RDh*zD4Hyf+&26WB3Xu@iiIj8%b`bN5Cf+BRgEDL>Qe3lYj|nIcn&J
      zS-hT!i<sM1@P42r|CrqRmd5W|RF5}QkK;qxt^&~Y0jEg;p<0{FX#0*el6sKelY~D=
      y$dq@u0og`!C#1Y>B>Iv(-A1x6NmGA{&-^e4d`|{KYrXhWONj!F5`8Y;ZvF?L?-&;V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c080983e716e529eeaec9c2a8ba37d7f3aecda9a
      GIT binary patch
      literal 5048
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLRandom.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLRandom.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05a9336d9e2515a7888240e9ef2cafd9dedf4390
      GIT binary patch
      literal 3093
      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
      K@}7V1`u_p5o_>4)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6353ffeb89e553ccffe0927f36174cca7e87f3e
      GIT binary patch
      literal 2363
      zcwUuN`*Rvq6#g!3vn^Q~>?0;2N~<+pNXRBOeT7=ZG*~K4Y^gXMAL9a7vI*H`mL-$^
      zS30Al+R^c6|0u_E?`}7Qm%}hD_uf6<<D7f$<)455_zS=~zEKfjxZSWj#=d!E9ve3I
      zjCQ+ev|Q)Ns&m&UmrG^t9&xwq)DE~;Fl(OUzA7HJnkp2A8)sp|qZy`aj_vVdPv97q
      zOXCH%PJ?p{Qx7cL@*Xm*>J#A76$WL?sq+}3nAV^|V~FbM$^|f7)Nl?{3^OIm<~yCk
      zDtBL))h1`SRB~!&vtqiIm<NlBw`a8(?*5Pbh&oXUvkmS&;y;<4rnhCa_9&=hd7LP(
      z>gjJwg3)N2cEc!pu4OlJG0b94#k&mpc*SkIK?w*E4fD9d5U=|xZ~5m)xZG*A9M|LZ
      zUg;PX@xF@p7?#FJ^dK~(aE;+I1zJr}7P-1(9txRDdfLyT<5^9kWVOAViVqkP{i#jk
      z29{KOL|bq+Uc*i3465hkUDu?J(e>WK>{j=A&C8{Stf|P5tszw;TQ!%P9`D^3hFf|u
      zJ;6o>I~dzOuJM*<Id)rxL4s1wa*X0`_(sJ#HR)v3F|6U1=+5&hZZj-MS^+H5!w<{X
      z>n?B8j&0zsh`dJ)NjX#mbW=kP4``uk*>#4bUJ41$fc@hj+JJ!-=}fhQYOGCOiVeLu
      zc?E^pEn)T%!{SJnMPXB|nze(b(_nZ)N~JRu3DcQee*=$2^(grTeK@I9pB9x2R_Ndk
      zk7QUMW9>A#9v9?*VMoI<3Syr`2}j306LERrbZpoQ5w=3jS#~;ZjTbC&S*1qbM5}@d
      z*9jS=+n>&dxCLn>u0-lUdS0Me0TKEDvCIj5mw!Y27n(&dL(hv6c?SyaQS5yrXg2Fd
      z;~nCI90^wHGhD`%fOA#O0p&HW{v5JR$+gcUi{`%%SSa-nyGhaFUE(#8(LZthcYGMZ
      z-$?iKJnrF1ggjIripolEI-Qd7M;ePf7T#d(W#(7JPw?^6l{eUUnLNRrF7B_Ka{C!S
      zBi`qjLs@EE^U-0(3-|;NiCv@UPbr^>)Xfj*9?)2!-(-*OPWG+tVi%uh`-Q(F((mbR
      z|3M08e0V6F41~pKn?@0eo{<)!(n4Xt!YkUGbM%|)v9PJkE5byUTzny1%q#si_7I0f
      ze;NDI#)eN3+DL^qQh^OIdV((r8>bjyNJ-?$P-(!B9@OM~Cb^jH;%Wb`GO0+662Ciu
      izeyUxp-T8Jz8VjIJ^)_|ntdvh?4mppO{1^nsPZ2R8yYnL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLServerSocketImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLServerSocketImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b937398130818bc8d8262415bcfed19353140875
      GIT binary patch
      literal 3468
      zcwUuNTXz#x6#h<|X42`QgqC6jk()p+NVo{pwiIIsQVlH{2o^+~rqgt2IumCmrFg@;
      zKI)si>6@<Q1F&oWUEux2ALVkNnQ1air>(54HD{lF_Wt&L=bwLnehA<ozL3zyu)m_$
      zGgp;)Wg(-hcE+-*nVM<LYg4M3DHaPw)tpz&qEVhz?a{efRYHVe>!b1kF@~<Pq1)<$
      zqri|ZtZpLL5*}jcQ*~vssuoqt(hNOks)|h~1G~u3>%L9pwAu_=t82Du5%*F-fM=?T
      zUda?~Q`0Mi6Zd4#nucwZjVcLt>niD1HC4B>b$f;w*A(6MGvu;!Ib%$z4AEgt*X$8W
      zQQ|QoNR|jDzfe|d!f#7LFL~(rrx}^i@#YIdBu8dsv||&;dOX3<o=BED!SEzU2cm-7
      z!XY6hV=J~vc$y)xx*vJHqUow|gJU~(Fsz$Wr<HouUP@J8A{mk_VQCjfCu9k`DRV)A
      zPV7ZeLV_W+iv6WTmsC?!jw6LMLkGEa<uJp()lwKx9g@l5vmE=8VTjp=>jlHcL^90z
      zy*S8m$T4=VP`q+baGv8hA~=%65j=)t99@tF^*jehOi)7{>s;zMM>k>&>kE{^vHIMk
      zYMv7f#L!bP%1X7Qn3}kI%!oasQ9=)_(HX(<p~md5sCGWQ$Eg9R%QrOz9%*zLr|^;l
      znd3A@Db{k;(A8j4#wV|;Wt*(@wm^Inuz|Q^fguq76zjE`VcJ21V>l~eoMF!@LHaZ}
      zUd3x<ngq3~6QJOZDRZLrdY1gG+gdeK&@6kX3+GUhaGnP7(HD*jc%6!88(Gs-u2bJ9
      zE-eo-8N#C$_lM&PJx=`dmYVYoxX8wZzy|2IR;*4WaZwDn<SiB|loeVidPsy!nb3_|
      zOFPR7D^F+5S1N0HsbXS*xn$g09*(s<oS4{fE*VwIV)f7{QYF^t+E%|xsIIwoTH-Qh
      zp^I&1Fk~NRYc5aMXtE^JSia3+g3=*tB$o9e*qCtT1*&U&NJ!73&hZ8=3+fuj6}%;=
      z>l~9V^)APh`}#h|v`gLKsNgc;Tg@P7&HexUP$`!h+vkn&{8J7MR|&aj)XlPbN)v0N
      zKV&ED7uwiCD(&>YETKnif1=vN?srbw%+A^6o!sNE^UiMP+&~EH5vThGx<%;LgN;Oe
      zPk3!~o=)9GUn;$b{#0ZUn^X7j)FO7Kq7U%QMEf1=X<%P*B60@@9HQe64hv!tM^o*K
      z7!aR9@fp7D*c_qnA@T$`PPRtK#}nko3+O`@yYV6|?;Ne*ECz6rB=W?e^+mrEq_N5M
      zhorNBLy3s#Kc1v=^c7xboIB8w`U#tVY?_QZ%rOUsy8<2zBSSkp<s+VQ7b)*-ApaXq
      z-3maId=Onth?helj)p_L84B@AXb1zr5T-*zC^YR4lC*e>-@}=9D$#uu+YsV}?!$>U
      zaVDBLC8raB?Q7Jzh1)|Kz&!QRHS}Wv+lX%2*xs~pF*MNOV4xp{26`z}c`&H_WvDXE
      zxTicq(xR85sV&sft<IDk?pLJqwXfr%&5nyw@nVi)+7cetNe_#s(r&$JI)aGbP@!-7
      z5P1`kLxJodPOgS{G>G^uA%3?4V%bBS3XgXnh$SZdhZW*gy?Cd?v4(?Kw+QR@3RvA9
      zRwW#3Fo<=Ju<oybHREB?u0(Ki-SjqB{uj(nP<!;Vw!4@sh-}u<VlOmcr`-{sPrGxv
      zAkKjX-Vx_;1Mi7*uz?TKtp?vi%L;fvVLU`He#I7=t6lgVY5al1_!C3;i@Nh~pTl|2
      l;cgtGe*Oq7o+XDrUgq%bW-mAJNpMn`1K8$JpE=a${{eLN;j#b#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de053ac51df6f0e26fd94bce302b1fa8e67fda4e
      GIT binary patch
      literal 3412
      zcwVhmZBrXn6n-uwYzYe`P*RdY1z%`h3b9(Xl0wB4N;CpCZ7Sf~CfSCCu$$RzD%BbN
      zr2ZY9QK)uw{Opf%JooNqA=wRu(P7xVFXuexInO=kZvOt~_dfyLfFYrWAzjs*>0RZC
      za*)<lE8S?+(sk2#qE%EgT`1%WMtM)QR+O@3m``*2^_qkL!_{_&PCJHyvY}h*fyF%-
      zQu)(^WRHzA41KpXU9%P$=Hln@OB5LbS)-zc(2D^X5@d$nc%s-3h9Mb2^f6q_Yr4AD
      z+%Ku-1Eo|`8AkF(S*aBjQ{!`IF<|Xz4Tc*p2=CE`$jfC@RV>xsVz?F0bARD(uVw6o
      znxa?J1<Ta*Y9_ap@K`Z~mJiBm-O>!bA>lH^s4&rtbZ*_<kq~8wpM@o-7s5EMaAhVK
      z3g^+*hq8z87C(T#hLd;LC!xTO(XhDU9yHpk8z$|s97Dg-w2W-cXwX5hErv){weG5q
      zm1fP#YV{q}EHpJsrQ;ckC$_y<A;giCka(dk%X*cHf#)Y9g&BsyiXEkeKTd%Q%{phM
      zR!)WvVGgfLNHffw65@o1Ox^Ydogf)%HC|$3bxqmlVMgN4={GH{md<MpD<k11!*FM6
      z19%&^B)miA+-@)9UCc8`ma$}-3UyyReo~nA(ym&zG6|nG3Ac%skBSU;;y$OII8#T6
      znvrmaVbZOFhx(pwe5J2a3AokE>v4(K<NFLt|FIquMG1EqVs5}3J#0Elm5Ql0=+v@U
      z;nD6<P5CBQ<b-lEKEQ{hCf#5<X~b~F)58v;xO0+cmxSShs#ofUrW5K!zB^U2Ec!8Q
      zcWD`)=Tt&;8GbBd6boFA0+-_fsTS{sEF>w)c*G?Mlr+6U4O-(@=BjAsh`(dYXhU>$
      zwk!O3h<}DJBz(?r$q!4$mr!VrS~jcbhORjbd5_U@tHs(&e5)I;|AQ_=h3mX6O8cB)
      zI?7F;RXJLT>aDw&oo);Z=c*#VuzNi0I^A^s*MT==s9-eBvbv)24{6lzD>=uVFiqgS
      z^gDzuK>lr}kxXL=7wFkfvlaBv9}r3&(SPb!4E{{B9$cj7knqePfCaK$#4ybwwl%_p
      z2QlKP^a&yUmuPQ{)&ew(2=p>V3er3L9OIkGUod!mGBp-BLhL6u2zLhV3Gkb?u?rr?
      zB(946FkZrx2py)BUKYf{cm=PDV6S1uNoP(_AqvlMtuw~Dh#}kiP7H?YuJ1fq^S$9`
      znC<-oZ~lh2dhi!Aoj8w9;0(Js)ay?Aee{lyTpaT|%82JQ-4Y-*afJ8Qo+G=-N6Yhp
      z*=XPptFy;JMu;4!&xW8NiV`JWJ|WJuE6%i#gozQCq=!64Nw7SL6Q%S02x~$dsw*F2
      z-#XP0OQt3cu`wTv205u&emeIL@h}=ZW@OjFK4I#(3`4M4w7p$6F_%ruVZ%qCU{m<U
      zutjSDLKqPYgM!z#r(O<dhi5<K%5{iOg<`WU$?mtS6%nc&5b{$D(mRZ=sbszp9FsPd
      z%W;Z0ZVHZ54#zNI*otvJB@dr=mC9#O>3d@G1F7_5SCux;uF~)lu~I#(l1@=kzfKU9
      xLp<&*Q6{1jx<J_RAY7w(JfdXhb-KIeQ$8LFyQgE+d@$NcY;*;n(Y_ez{{jtt4(9*>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$1.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffeeabd64c7ed103158b200be9dd21d2c525d5e0
      GIT binary patch
      literal 885
      zcwUuKO>fgc5PjR2x^YYslD2$*l>li9xVa!C5C^IvA{i<X)Kf1TdzEbK>_%R@lwZWT
      z5?|uL58y{3X15UtsfTb_YxeEDH*aSA^Vjzu0D9Q)vB1zBsWLj?NBlTaqKJ&iqG_&=
      zWGeD#Fo*{_ITS^IGR@jOA09))=0+J;qiA<{Ad<qzB17{p`nFVx4>Q5ASd67<Z&8hS
      z-Xc$l^-L;RJZE^=nV+_?$KY-2R8+xmK7@~@02S0jRMB9lbZkOBmP))SCqt3HJ9XHM
      zb;7efo=bb5fu6O^@L=xh?H<{#<fRI55tn^jV(84v4ROU9tfl%DSE(8ELt#~}g}9Cz
      z3`;yogfZ>M3@`p;9I;!6)KPzT=Qt75LTW`b@^Ooyb;cXnmzr8%J(I`~40M?%;-z#$
      z`={0;%U}rmN{M_s<HiUYUVTR;nKn|5UW;O^(-0lo=CUbxUi|44TePhTopWG~hFu!{
      zm<x2O2nelF^n~sf3A&q~5q7^~`NZX1u$X%xHk+VHQAn{xTUc@UDjGAD{h7*2_Y=Y|
      zSo?@Dw&CVCTs?6tpLjQCx=naQHwajX8heix`{4A~PBmuwHFA3!>#l=4&QlwAU47;h
      Nt<F9AdbG~_zX86J(#!w=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketInputStream.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..807805ca9404487d9dfe73debbc9ce8a3af4b819
      GIT binary patch
      literal 3668
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketOutputStream.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0df84a5fc22701bc76b2b54b4b9559e3c6e68dfc
      GIT binary patch
      literal 3392
      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
      X7_CXWCVZ>^kKv*&E3B-<cQE}6#XW_t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLSocketImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c53151598da9a6fd79bd15a5fab3790310f0b02
      GIT binary patch
      literal 16460
      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≫q43{2Ncane9R7*yq{FRFx`SkOlaqdD>!iX&
      zCk<@P5vDaqTCMpLNw|xw*+JIqOtKTbVtTJ=$RRIgYf7!w>>*hZvZlw@nkhrKW~ymT
      znbn$mNW#5jO)pt<f0EctH?5g5WNT)!HAh>md6;B9Le?CxwPu!$H7iYP#`U#kcDEsj
      zZ><JBK|-D+gPx+wdpg0OaWR9&#SA)T$OawD231%MdX{88M+QA_YtY=Gm(Fo!c;;KJ
      zd6^`<Le{)S;dy<K(pfO%(y3%?s;$<%NwVG|Yu>iCre^5LR%=>wyw#fbNx}zY%|~R-
      z$4RVNXvU^~$gw$rt!c1Y^Et`-f~@({)|$mbk4>X#%@V6M-;sp>k~Ke&H9sb?=0r0#
      zONShrX13-ei!};@LlH1SQEaVQZu3U1*+d_2ptF#stuV|G(n6<U64PoiNy&iWiWBk_
      z3Hi#f1X1H-qE^_5YA{9R8lp@YD-9W^T4jtRQ?g;CG8%G}oCF!UF&U=~S;i_uhTAH`
      zMKZ>cjC_(Y-d4tH3djI6pzv@QRBIR}67D1l!{N4JSThJ_J7apSm_>wHOqeCMm}d-v
      zxt1|It(awmIh`<P*kbwz!3;3wnO4l%ggJ*WkFmuJ4uTnC%&-;nIKrGqnDhH%W~GaD
      zV!erZgo&BTVAd}}59!Q8XW1Y&_Dh{Oa}QdFUiuejK8ps`{_^JDX<<2#z;cc_*M_Ca
      zD&>I$mQ6GQ_h;E^WqBll<$SSuAgkcpfvmcKMq)$WWV6Agm6Yy*tvey9K>oh~m^?R|
      zr-qhY;=<Mgkg}s?uekWWdz_0(c407rg{e*a(z|4rxQu?JMSomDKhmQ=uBIOj^9MXn
      zKT?bzt-HmAJ0O)hqzm$CvK>zf7Spwa!atj?b6^2f)3pW`!xFkCDq9y-7KHev{`Us4
      Z1$Y9dHc9FDD-if2UAGd=O~C(U|1U`qpdJ7K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31c271c9dd2f5edf2da53d18a4842da455637769
      GIT binary patch
      literal 2107
      zcwUuMTUQ%Z7~O{i5|W`UK~PIC0b9*QNL!$4L#u>K8yjeCN+?9FLvjd1hnYAtLGYjG
      z5Aex{x|V|4wRHLFk8-)sB#k7XUB1kj^PT<ev%lN<^RHij18^PNA@m5OYgQw(qwnea
      z8B2N@*EKVB$KErl(#aHyg}teJ%X(#bVJ5#@H$w;t3^l<O=b-M{86FnvhCoQK>UB>_
      zfh&doW>kDxfxcP8GQ2wifkd(-5S+KGGJ*i28bSz%Fd#7gYN9aCl7aFf&@iZ6V*<m8
      zg7V6kx>d^*J;$(W*<`670<UT4MW4Xgf?>&(#_pzc9_yPXRmTc;MK?>jW2k-081%Lc
      zS77255q0E<p$$l@M*anR$*^>jG>K$6rvzTma1rMjd)25(*W;~C<X!2Jpuml{?I$F!
      z&|@0Laha*zWsZ%nsVCBe=b1QxxmJ{}tTY_MJILIZ2iY!@TbGs0oLRHE+unVsJNmBl
      zq*J6htFj(h+^@*GXV{h-!aD-jI^FZuo^Be|lLT$I5Rw98r+QJ&F<4q)q@!_)vf@aO
      zpeQDg31L!T@I*WsuHm|XR+C;^1gn@xo-A+}Q_Ot38WVm`%;3EcZVH_1hHH2qAJ8tp
      zZ0M$&uUWPu=XF>9OY>}m!MaY#eJ0MMCGPs_<Im(l{40uz>o3*C$2%m9N07i^80_;=
      zHqm4=_(@iDlD=G-OhY$S4nEQ_r<x<eU>B_l$Dta*JQhP(pekQe!!yjxylt9F1#6~Z
      z33r(umy%5B+19dN7nnI7!Gp~mg0m+rtrYr{bjzxa%WL=;_t~(9-(j&t7e=*AfV%kz
      zoYH&j>$++XPE7iL^dYa)J<m}?*?Ai~rgJC{>MsZLYA1B|WXa08J0yrU2j-D<rKbWc
      zX;?#8px03rX0Ca@TCcJYYEW~@lERfWe2R4j)M%ab8dkkQ2a)4ECd#>dz6sP7@Tovg
      znFoFL)|O8z^4yrMagG%2hEtJCh7vy9{aj2c<rw4J6yT%GoT~?le<A+!9pty4y9EUK
      z2gFiGh@@UXTaTSN!nvO?^aHIu80Pnk&v1*#Sq$PfM!3_OUU(gEa1G*3oNqDS;Hu8T
      zsUI<Ph|%Y5o<85caLhm4_P>P7r~Ajh@A5C4>i-t55Ovi@_26yJhT{5;%7a{|(|;iK
      z4F=P{;9X|o#v!J^#lQ<B)?>GhF#CJ#Hcvhj_!+qsb?w9<?y2|#{=Ju&FJP7568CFV
      zx{ef{AdL-7q3r8PHScNZQGW$2`x>XQf(O);rlN=Vgq)9B`kR)bukmraA~!qZU;U>J
      z5w5@{byQBx!4v9ga?BB_u>Fc-^bi}}Bs+9_=97#xfo<Xa_za(uM$tWO(XDZ(!iy@p
      n^o5Iu_@bN8;p!gCM6^v9CE=#8G)mo7A036{Ux3yvpQrXW@FmwD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..adbeaacb05d6d16230d9736dc37b5eb4ff365626
      GIT binary patch
      literal 2111
      zcwUuMTUQ%Z7~KZ~3CYlwAgHC66kE+j7$_9Ap;f}A#0FZM5(-i4kQ~C$VG?I12>uiO
      z0Y3Rq*HTcsmM&lYQ7-qHq>%))%a=KGzO%o5_IEpf{`Ko`04A{$M3+FSV%POuW8XN?
      zZRzQ*Yw0zox^I@Hqv!Lv{i)>@qm*Bs%kI^zAOZq|4RFahta(*k9o9^Npiwqzo|FRD
      zbN|h#_|gKsv!-o&cLloRiGo02zFL-HbR(i6h)@vy0;8`c3gJBOro6GqnTaqo3@G=g
      zz)(D=Jax;kD|+5@OuLd!6#5|WnuZ?q3Y^cGwp^|6ZAs^`v1L(tG*>MdR>5#gwQm{&
      z-j3-CjJ+bNwmdPserZ?8zffH=ZNnl>JW<RjftNH~#zn?oHY?KgcxwZBPkJQCapUdy
      zNy#eoH4US<$`JQRZhlQY;RZa*<O$3*qjY7d?wH=8eqSD@J4|j(mh?HRQsr)E@1fxs
      zd(x9mp60a5e0cGoBx{~owcQ}z5twLq&)WNjWtLA9wA_M72wXeUi*ioDQUb$m&6AfU
      zM|uQBFa|w{ae;wT@o1R9q<~hDUP}b47*Cuoa0pY(e5)E`EJql(@Lmuz0v9^r8s5hT
      zw97B+hUI1}cGZ#dhAaQ2c{W2}U8m#$6X($qbA9!(XYw%i6-C92m+E4pZ4ySqh+`lG
      z_WB5$XuJ{pI4e3%U#?81X;>-;A8D9V%@Jm>i*|`4Q4V7si$N?<m9MGpnU+3ZwJfEA
      zHPf(!drXf@NtX1g_KHyxxOFmu2V1)Yr%zj&DfB7nmR22?)$lRyvtdoY!=mvHjB1%~
      z>gGdmM(?q&YpOvwF{%I2hrG`4JVy;>`)%x)_Mtqiy&TLN?a<lNB`ap`k|5F;m`Bo;
      zo(iy_VI3iX9!FW2xyJcgt;|BGLCquz3Rl$dDK;2Ty?N4O+O;|zM27PiFJ`jY2GCHz
      zrvhC?9`shXw|!cX<;H4`b2wkEJ0-bfD&a$&&&9Y>j%$3Iy7@3O=jwstUy%QN3;FHi
      zZUF)Q0ny|!!pRrVHlpW_ap5Nn{y=LNhWI__Gu$R}76Z70VeYhs7hcC3TmyI$7n_VX
      zxvH~J@<$9FVdQy>r`NYHobV5|{IB5Z+5WNbJN$EJ`oD$iMBVUFU3i<bp}4-I@&MQA
      z)E`KGgMrj9c$b;Dd4%b2(f<PRjp*%T%>Ev|!;=pMenw_hT|0J!Wfgz7fA1CM3s~c~
      z!2LRvZXk&#NMRFGDEfMmjeDAU)L#xOzQ$>+;sG_KsOTX+A?Kr}{)Q#*Ykb_Q$V_|u
      zYyZ?C%oW(8j?$SqctTwbjyWO~woh@49AUGQWS4Hwe3Ib?uqC_?pW$=TD7vRjx^?bU
      rco9XHx^(#nUvv^WT-_6yh_nbJB;4|qMyR{&qa%>~>!x+v=c)V+wW!!@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8f64b27a955087b2e3ea15d705b722fe1de73ec
      GIT binary patch
      literal 3858
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHParams.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHParams.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4633e65b4719a0c994799632cb6020219ad7244d
      GIT binary patch
      literal 4428
      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
      C-n3r;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$CertLoader.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$CertLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1c3bd9a649b30e53d863cffb9b9c8f48fa744d5
      GIT binary patch
      literal 3121
      zcwVJe+fy4=9R3b0Y>7)tTd>e-!J1+Mw1EO`Ay`WTSZtt35Q|0YvN=t*S$1)EgTedV
      zs_%XASw|mrFvWI8eRIbD#qq)Wt@=9~N&=*5qLWE>&pF@k_Wdq7-`%?L6@VUmAft+*
      zKVharSJY)S6Ee9QavUSHWLwL6oZF!ox0ktnRyE^JQcZDxgxhY^Qt3#B#1JSUI>HT}
      zP+cCMQJoY+t((*xe>X!{w0wJEk{i-Z-95z+3REH(oMn(AR-D&?;T{DwsP&;5^$KL{
      zWT*}Zz^<rn^2zk#0=H+>1%or}iCUU!%&N97*6W*+aGl{q1@;Swq8Ma-amkoYn+(3u
      zjK-H--7*~+_cH9?tS%OdZUE}gjQuiN7&^+gtKb0cBht8;pwLLPq|ao{!;O=BVIK~n
      zO-5_!tZtG~@Bj``cn)_Q@|es8f~86FaGtq3_|Y!oFhhHJ5(*wdfT6}o>n=rBvKk`#
      zQj*&-fuy)P&?Td@w4nkC1xIj{p)ti*C>crBOz>eNVcEKyTx94i9pbqnLKN#kbSu<w
      z$EX%H%XE3h6(KQn-X%YgJeaif;kb-`hG5x33Qpi8l^w-0p_*!f+eAZjv*?BX?t#&a
      z%gs2CpWDENWeie%Ui82rhihqyWhFFa>!zkJsiIzna7xC*)R`6Xq2LjmrnWNGMM`8N
      z5$f462o#FBWFSGx&tODGgu!2qvkFEr#;{LIT9(6e1)A%OVMAA`cjp4zZQMDuEd*`U
      ze7LBm%{Z%I9FH;VP&JJTR!q6!il)_ewZU1TII3U*lX=BG45uqnT*ToWm||!#tu~ED
      zlzv&)Xhu72gwhQ$?tEy%w3w1HhNdE{3CGUh2?euwl3{OxyOF$}NK(~l3=9;L+e)`E
      z@1?Uqp4jwbPQg>SNQL2W*Bi$L07|7lP*hW)mK=FcD|iN%^5jwT#VR7N9EWpss0tRK
      zG1L<sR7T5mLdD5&v=|ZF%WfU-)e?=L%ShzC?qwMNKVBE856;$6&*}=UK>Q((oV_#>
      zqb&FQhj}&x>SFV@n(5fEj3ug<&8A6qO4V%<6?LcsHy>3W!*oSaZDs8a)w7I@jOQ5+
      z-5sr91urltB4z0XL)W~F9SCg8&+S7}Z{a1;8ZR>(58M$}DglCvR~5X5*YjM^Kp(4!
      zi)c}ry(>>`if2@V%BL!|DDEAOljb%xO^uf8%)@1MA^l;*thBB1F<sn$8n-xbRHz{4
      z#!Zvk5kqwx(U-pbl?QEf>8hqHCTnOAH!pgtqOXh{v|mSWCuuEqd>x%%(9d-!pLv*F
      zVo#h%KcGhX9u2fsNJi}L#vY*&d$E%cjr1<js!8Z$BV?n7c5Za6!ncZjS=_&h2eSx9
      z*Ed!XT1D>!`vwD(Vymk&i|~;R^za%U6^k{T`xf;#(KNT`{B=D3b=Uf47BhoVUU!R>
      z#Rai!k*bfaVcyfY0eyB2@y^eY{0KgJ7$2iu9NmO9mxDZ)MY;fe9WSoom3;iC#IN)t
      zc1u5@Rr(oz=@*2hUok5EhV#<zn3w)QO8OJa(qFhL{f%qVEqo&VgDgG2BoYK?eK|JP
      xIopj-@di@FRx3Wln;!dqT*F%!q%6(TlzbcS5Svwa*Yn~k-t!n|^l8TXz`t0KsaOC2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$GenDH.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$GenDH.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c50e6e1a7df41dd5cdcfabb6427f82e37e44e53
      GIT binary patch
      literal 3828
      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
      GMgIf#0CP70
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$RSAKeyExchange.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$RSAKeyExchange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f3bc829b19d0e2061a64e4ff79661c548e20dc0
      GIT binary patch
      literal 2453
      zcwW6$ZBrXn6n-vY38X7fN~Kn<w2d_hX_jhfp}|&?7KsFmS;X3?^|E`LY_r*oyBntX
      z!7uuUoGG#62Y-M+!k^-J?rtcAb}}%X@dMfW@|<&@^PF?;<?nz0{0qPhIB^UyEY+Qk
      z_LT4PXPP4d&G&7s?YX;_DLhRV-mdW0xMTVa-W18IzOpX%9y~J|+^LH=h8a==%<l_Z
      z)OjGxE$%lNE(pi)_S!VBcw&S5f$(%;cp_jJsudVUf`;WM=NYo)lXJ?G-LmCa!Ci(M
      zsnZzN3h8Zz;i7AbF)+NPB974nVwg}dhDnB4D!natrc@{xVVEdej@az9c7(UZcWgmB
      zW!K>LHuo$!?=23?Fc|Wu;Brh@iYacj+IF?$FeGSIv;)g^{5UQ$%tkIlC0(t+%?dY7
      z%c;MF#ql1)wLVnImWi+nwrezX>t}HUdx_z)#A?1UI-V8mX(eZu+m;#eIe^XfTpq$U
      zUA<#8R_wY<(?;tE_6oz*zT+e4t2~no7yAX$_43R8QCy=OkTMCRkclJBaIVj7(P}q@
      zr(zCShBI{$lpH_cjzKv{r^+E)o8;8=z@u~X>GEr=^9kfIABV<}IeETR>Yk4oM!8`K
      z-%l<wtevX#A}WVkRy=E$`h+CU%V2M+Simi+Bw5!CGpW)syacAVCG|xWOSp4L<t9V*
      zji?yH3$%v|^Gih<SWhg2c!i{vC8<vtlCQ7{O^(7PwG{5D_zWvl%BH(&Iozg3O;OL)
      z3S-2(sN#OuQ|<n%K<=%o_#A5ts$pBg397`^ZBb1P3M&HTrTG^s)<bhY3^m%38yhM%
      z@g>m^PMtcLGCoi!D#Z|2qD~|QzJeY{b?}APXQN^ZUsL!#<%P<bj!UHnXC}n;j?3X2
      z6%X+(!*pFZ!XsV#ugsqYrn#rb8$ym!it4SV;yZj#;vSHqQl!hy|G&x9qB44{;zw}m
      ze#321CG~{P4RTXFL~e+n;hLe?h6)o@5;MLCI&HmI+7<5cmLSn7#K$Q*^U=vG=5!q7
      zQxx-j3g!H3uPM3=nxWFMntUn~y4&##v1-W&XZl!A=cEHlQOThc6>aWQ1u~5HzcHAl
      zmn}yB2Ml3KK5xL}q<jFw70?5ip#3v6TBo_hO=RZwp=SQTcqY4#v%iPHbM!kdw-pVF
      zlEs*k!!)hE9Xgr7c^V-c$s>ly<qRh2dm*$N!8>>t@8bhp#?|n!e+VZJ`)%sO7x<_=
      zr(~W(eSzy;d~z_p-9=uG=IG~a7kBqjkW=~h91o&TDf*PVsC2PCc>B?YoMmIZwdnIh
      z7dwX$UXijW3m8#uVM@7;OUfdyD@!OVcVH`d{HiR6QO`!)dr^<z7d%0oVzw#X1}yS6
      Rgr}j`Caocqn5q>m;6Ifg#$o^f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$RSA_PSKExchange.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$RSA_PSKExchange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5a8be7b4f77d9dc18578105c23d82a8c0d3aab0
      GIT binary patch
      literal 2897
      zcwW6$Uvm>x6#v~Ox7(&`t)<8x6^m3z(v(mH1&U}>C=H|~G@<-Sq1|pS$<pm^*xgi$
      zpnd>-=%eF|-@zGL(a}8m;FF(#@8FBRIi9<l(xlW39cFyU+;i{woqNun-#O>z_kVt_
      z0T{+t3fdUXl&os<p0=z#NLs>6x~`e5IQFtp6izZHoMqumXjaiJYl~uFIyX9(&0W6m
      zKrd@nNhk<2L|fRO7p5p_o+#!ucadSQuykjoLi?;ECN<X+PEP2K@EF<(DF$9~FN+nz
      zWrF*Bu$>Grq#0po_sWJlaEu|5dHJ}d-C4sjymJic=uQj^ss9QkHp37evx}k=46m!`
      zL?nU`-cZqnUWQOKHX}8CDmdDu^ri|09fZvomYAw8EeI#CEtrC#H)HFXIiop-+}97o
      z@<SQU?jYK&^w4K3#!|(cu38KcIu#Yquq{`?0fzpj?@DRKtX3=<R_QrRK|jOcCREy#
      zbebvC))#ZeL(zbJkKv%iCS9Rd9m88mrmbboG>Vj~2G~IT%1zjmovZ5QQL|*zw!GAU
      zJ<M>Z$$bEQG0rH%{^ktja+&A)4#bHLN=*a_991yHu&e3XF{4rzj*29xth!3VOIxm|
      zSvrvri~95@O-g4n=Q-qeB$nC6dL)A5IHBMJhWN`9rs5<%Wa!XzUAXSRDTaw1Rc8>&
      zW-haiu}s}2%Ts>rDHW%2hDu46KEs}9dJ8_NV;TBc6(8f=W+*2Zre7%(T{vFy#>r!+
      z$4D^l8al=02lc58YLsE%g=l<}Mz{<ufiV^5ae+#?Xpb9~W>POl3#nKk)rE^lE100x
      z+P+6sT*76le4_M%rBkaGDHl<)?4&QAR568iYR5|RD2gD9X$4mqdK#!-A;6M~9P$jE
      zn&W6Ix?Q136>lt%D+~98?v13kIZDfEa2zu#uHy!Ss+)$eylG0Gy+mc+D$@aIM4I1H
      zQSi-OKl_13DsHQ|gE`8Kuu3#tD6W>=QFr*bGz|wLMT4$jq4gwhvQbe4IZ<3H73wgV
      zhFI%j@o{x`$5B#IhC#!zBrM?&)y;3g{g#zi&&Ml58bb<NU{Qq$B17E>iYkZ(u={@p
      zQwZwQR#Cxy8c4dmL?v2J^wCz=jBO$(g;%zVezIK^9;(#-uJEdrT)o?}nxicVN;-Yw
      zT$Fs?dijdkSq$=_3^}gGuzTCdNexBX4emQC?uHm%^a%(R<X?kG&aOJT7&qkG*tcc+
      z9F_MHb7_m18#6VR3X?i}%X5f+dWA#u&nJXl`6!drE1zVbr$;{Dv~Qzd7gWN%M$#SH
      zhiUDL53Zp*{v&$gi8bts53OPM4?cR2e+Oas1UNsBPCkxqei3`=yx;fLhke)&_>%P5
      z=1bCRh`hW-)@^v3&bmqW4&KE<9K!oJBK@;($bysZ@7~x`3}yy-{0X|BVt5@NZO9|*
      z_+*g8UF%3q(z^R6j5AD0Wui7zn^)$4=~zQX?w=qNO4NEf9<Ao<+i;?`noor4JD#XL
      z#g+OdQRDMNP2fbWolaKsL!svf3LVr<g0pMEax++F*D=42yRFst&V=Q5U$}nlY_M4C
      za5htXiP8j4<C<SVFVErtzltM#8pAw?QJzPZU&Ab)!6Lto$NUDq<~Q*zzlHB;{hrU_
      zSAHAM_#OPk=X`2T1Zk~P(~du}jL(RUBlrUke3FLo8&*gP;TfSG;&URo4UhbY9^(sI
      MBZOzvUS9(L0;Z!x761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$State.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake$State.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..120d8119b5a672b7a013bc36bd4365c2de5e2246
      GIT binary patch
      literal 2284
      zcwU{9ZBrXn6vzL!o9A3$3D12{v{)gf4W&|R6Oou~N+blE4baePT*4NXhNQCz*gAdV
      zTR(yy!RZT4?X*+Jj<5Tn9M8SEKtP<akYWG(JA3ar=bm$R-~Rpj4S;Ld^5YD{)Mjlr
      zwr%ZMk7G5v8EZ7Eu}5xw&)Klum}$FvwmWatHX2*jLwn3@T20#z4@0-u5vy9Y&6rW!
      z-C^ikEo6&EdEUt7mdXX=&az<^8K!gZ>OIa7X}dCw!irI7dt~Ts8&gK1n9XEU$)dq9
      za%ACxQ7RjEQ}fCE?Zams>kqRU`geeGdMQu4y4z1O*?iWVH_{ZgU?kJ!R4!}ei~FhQ
      zZCht1!=1~HCNgw<b(w-@GbM&D`Q$K`r=0_L8mq3;v}HLM*cwCFX%uX0Ls`N`etB_h
      zC7GksFkHWPni>ZZm8w&7nzIbr_{0hYPt`Z<0K6eET;O;Q?=$!kYRT|;?y%ox({*Z_
      z@$A~##7dA>f572|F95%QF%G|gfPjxV0s?{pq8vd1Apuu7LIT19rZ~a^xPa>%TtJtA
      z8ysB%x&?g3(Ji1yK!T%3fG*$*4qZU6fG;_E1w;fG91-}$-EEFR3^DZNoSL2A-C4KY
      zqP1S7az=9Xid9{)Tt~1phM-|V6d}hjc+%P1C(m>Ap<mp6%`t#}s$z4?X~>dN*L-_c
      zb=M}G8J{>slR{X*T|ZW7;5rg`(rDT{93@bIpyj&OlS=*36Dn_KnoH~3cBL85o?yy~
      zX8UDkOAi<_C!B8LG`VW{mg64E;<OzuQ&p?ch@TYW=m&&GGGx|w-HM%YL{s{Y#kne$
      z)4P$a)ofQfwHtnH(7FGAt_)uF1_e!Lvt~7SUAj*n%Ovscr=N|_P0<i&^i|d8M#S3y
      zkouJdlm?ZCl!ldZrCmz9mG&srmG&x)2&F5{p40)M`dKmG#6F5Qj1kJ`EWn=95YrzU
      z{{yTPIj4EFmpK0%qY^*#D7+}~Bd@|s632ZCCnR3>E1Z;gHJ~si@tVHBdRp=)x?l51
      zo{{{i9#DK!@-026I4=2fJ*0S6@|+%4oRpl>xz_fd*1P^Bi`K%ZS@N`S(JXmexMY@m
      zElijte+!dlDbPa9Ea_yLCL!Al2^nva1Y3xcgj$#-3Ad0W;Vq=i=g9m<#X5s|y56Eb
      z02S)O2G!8U6+A!!n^?dW*5F{9em~$LenJ&LV+X&WhS#X$Ei7cE7x7Qu(RL?rpXS3W
      z`W3x={w2POUU-4U=z!-1mJVY^;Gt`idbmf^@jZ3?vGg@6XDfm`vh(}B*ABWbb`7AQ
      zBE?7<sW<vNmYy9r_etYZ>5#V<960Pdar5Hw%|D*7IS3O)wfP2FMOK3?WJ(KK^i3%t
      zdbOyXdxho6UypfX2XzY4m*c+j5haUw8j7&!D}3`8*njWS@SVJ~ur7AU)GM&(hN)M=
      GzWEQ;_~1?e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHandshake.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..092029d2bb5ff75129efb2728562560966567fc5
      GIT binary patch
      literal 34821
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHello.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHello.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f4bafbbe2a1be3fbb7e86b3687102f8a657d031
      GIT binary patch
      literal 4424
      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
      Q+4B~ov{UnK^PKPe9|I9HJOBUy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHelloBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHelloBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d46e850802e89b791b5e872909891cde3fd42573
      GIT binary patch
      literal 3225
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHelloDone.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerHelloDone.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dfb260752893ebd0f72d77be628fab1ad012531
      GIT binary patch
      literal 988
      zcwUWCO>fgc5Pj<;b}*)e5E4o$q)<w}TDJ!-6agv-6)B>Jph!J#;%(w$?8qNc5#sl7
      z;Q*Hufy9vmKMFBxTQs;4>cKm^<9To9z1?5Gzx@EPjV%odLv!dx<`JLpW78F(83c|w
      z_PvR13E%7re<J)n;W*xN&lMW-43}lC>2P;w?)Q(xAk?5TH2%Y~$6YHJ@i$^^*R$R+
      zsE=&d4j(h*>Wv;l{+VY99XVVyprOdH*s)#lDtg-&{%hWM1VgFg4Y<?ezAevbG9QlY
      zfT7(vzknTT?g)1nj^gGo8H%CT4Sm}kGL-9$&Z)K}yQ72Qnt>834D0o?|K~t7TxY0e
      z)4P%F&_qStV1SOBxTRs`A2*Xa1GiCQ&?el8#QtHXYvTC4t~#o?BMrPu1J4_@SHwMr
      z<skH<L0EfV`%uf8BPs41sG~tP@$p!=7Q@E5M5pRvik7tNDp8DmacCdQ+dIR+pm)8<
      zABY#WyvlNBluZf1DtVuyuRyOgPmvx6trzHIQY0HuXr4g-LK_7Jt!kXy#wA*fqyP(8
      zq)0~NN(yeLU?uk{gM2W9RQ@7KOp4s1to)}o*%al^8T7*$v^s;Xr04?@qflJ=j_N_{
      xC$!c_6iQ29v3!En(%Ka3Q#4OW7pNR~f-;_BiJ~O0Bm^nB+_kY0%h`-^<{vSD*8%_l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchange.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec0a6ae4550b5b2a95b7be0f9cd9b47bcf0914a5
      GIT binary patch
      literal 4255
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..691f08ac949152831019e0a45d957fc0569d1075
      GIT binary patch
      literal 2131
      zcwUuMTUQ%Z6#foL7!nSx&<icM2GE+D9oq_CQlKOSjf7AQ4Xs-35Kfb$lS$Uh1k2Cx
      zC-~yCb=B0%TIzFuRG0fqhEOrdY95kvnZ3XL?QidWUcCI{F96qZpkavNX2oji-x`O;
      z6WtQ7?l`92u<M8NK-hXw*oVU25=R?P%2mUvh)h$O^g%<AAvK7jhGB+<J{~?Y!|*L>
      zNq3bY8O!&v&&ozs*u|!FMLJ$$2xjXCB7#wjY2Xa!l$&nJx}G_5iT2~i!sa-GvkW7K
      zY1YezD;O@ta`Ai@%X9<*jB{w1V7MLYYBC79vw3NWLbJ9n>|JBuq{tI_qF|N`TdK2v
      z8FZ`CVOZ)1-K!*NhLEEIGQ75KB=)|S48vrsyAWY8%y3-BEW?E!QjOvYM-)>G;e%$w
      zluBE5yTGxCH%ahD-I1=WTMXy_EBG-2!&Q#A5hFsTuqtkqArOn_B1j;mAxQ$B^5J+#
      zA%{#^ldg)TbG)k<gdB=b8iXC;-ZgBa=BO%nB_1!S<lf_$#H9$9@qvc-iOB0|$MGRP
      zqI|wPDa5*2soT=6)@Y_k%|19=U7SeiTUgbw!k`c6%CUyq)IEir!Un_jfg@|k&}@1V
      zne;`^nWm^1=DJ;J)`aDfgJ`Jojo=Q$9Az98K1S3y28l{1YSk^O`#Lt&;CxK|;_L2#
      z7F}Cf6%t)lE64Gvs&?2GHG{_8s;C~wb8Mr)a7I{8(-v8yVU(qNM43_7cz$;|KEvnK
      z9F3++4^WS~cD<$6YWV%YsW*zUVi_()QGrVwMeH#w_b=Q3Mz7sq=}|nuRSjP-+!)+j
      zwdye!+P6981<eY}sg%Frc%-BnDR<-uTjKkSKev%$y=j-lrd038Y_G@Rn&O0cN;N>g
      z5WW5(S~ZN&f0#~p=zfS+o){0}H$;-p@y1g+58)jBN4#%KL}nT1X?L-0iwm@ax1$Ln
      zBu3A~l#iGt8%FEp#4}8{Fc)ZHKGDKkEyVx9XbabV?!XUwhASR4Z#((W)Xccy12%k$
      zDFVFN!qP8D|AetWvHoBp`y3m8Cz36E(!!P>k4`&#Cn;R?lFnd^h)q(uSFnL3HeX36
      z)k!Bs%`oewv)hUO14R$ey4EXt3-^A<eTJ39j3V;rgvktLPAQ)vG(~BHhF}a^L?}<S
      z*(O2-tYXI_6>W#>kXpl+9;tcE;VV4!)TLqZ={4!B>=)ZHzn=aP!Kc$y$n6v{XkYH^
      wB~rg)`ZR?im35bNzlU*@D8wEXaQ_twiyaD!)QAr$;5a5=kfoxq@1d3d1%zJ}CIA2c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfd4e75c4aebe719194ce419ae0462d9e82c1d96
      GIT binary patch
      literal 274
      zcwT*vJqp4=5QX1FO-yV&fVF7jqLx-7+9)XG1Zy(nhy2K96ZC2p9>7D1n?kVBVur`S
      z_uiZ5>;3>R$H0L_SVToFQrXC>C|HZC%EU#LO%k#aKC6b+o^RW05X&OslT<RV9CQi8
      zmJyk`isL!uKs&Gr<3DbjvZ%DG1I;19m047(M8`Q{Ihh{*a9{cB540k9ep#!4cS**C
      b(T}RL*3$+E9Wy=iH<|7Z`mKU%wgvAEoqkfw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$Iterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67f8df47ff1c6d0298c229356cef22cb5834a8f9
      GIT binary patch
      literal 1410
      zcwU`TT~8B16g@**wv-i0i{DjIinNP%0Z~B+2@*`2H0?vR1|Ez{JC-He-DW?U#-HOe
      z510r<Ys5FBKKX}?cb3`~cmcB6nYnlFIrq$+JHP&Z`37JH&m{CQ%vMcL-PRgfQ#HA(
      zI*y^%ZL6VIxUCks-Qad!tMQ!fxXG-`ZOyf82|<Raz^I01R@K7hHZQvp`Wa%r*K>74
      z{U6N`(#;BQGO#Q|zq_S7$!UhE+?f+E5^PB~b$6K|lR5`3U1A8XS`|J3hG7{4h(r*;
      zh>StR7y_wuN$iZukPxPboNn^GSKH+FOKsEObex=3){K&7>%wk3gW?Dbb7vRQsT`d|
      z+R~gnZ@PZ^jR+FBE#VeJ`pj%H?qG~$IQo0;vrt)srcXJaN}oej*Cbt$wPu;uUEMMr
      z2@?!s-J8r?MX$WIX7Cy}-A<U0J}D!GG>NEk%D#}wUNC(GNsLH%z%brztE}jng69_A
      zJ-0lw;&d`oJJ`HtHMj(oVX}*OWjbEHZrLuc6zZbl6x^dXgAuxHD$&W-rTh$!WZcC)
      zDn!xp>@t6$i@S~=*PIbZ203e*++H;_$Klio;clxB6!og9xt>kfH>dODPCt*Oi&boS
      zk<?P*=?|fgKI&i~8WlZGuRBEkLC7>-B5TEu0EU&RJq#%ah$?|S#6Oa&50_~iA|l``
      z!9Ei~3s=YzV1nQ(uF=eJ9XHx^ON0`8G368D^bhUh<_Cm=JAs`JW4|Bqy@x5*VWKiq
      z)Htn!WF>vhk}nxZ2tH+<h&O_7N#j25@4jv!xqblUu+0<4)G^&Z$nz7U_}!B&(aH9Z
      z5J$Ra+q%OoWQcG2@PyhwJ^1huKDt6`XWIA)n#Ep7*~jee2{7})qRIix`K!lxLUY6i
      MCGeESdEdYA5Bm~N;{X5v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$NameType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$NameType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2fbaf341fd81cdcbc776783b7e5eb83a6dec671e
      GIT binary patch
      literal 1354
      zcwU`TTTc^F5dOyPg_gBo5fCU|QM$`z0RbP{5C|!uv6P2G6XJte%CRolZprSpvH!^j
      z1r0<a@!20`oU;@GQxomO?wOf0^UXJx^W*22a{%*Lj^Y+!q3Se@L$hhVGaTU?o@X0J
      zZoO$82-heHw<+ABSrY}z^CzUR(>fASga`>4W7wusHF8d)Mu=^0mv&wk*S2zm#lrui
      zW(eV?X*UFc@`T=8ad&H?yjIxFl?Y3(x<l;AR&2|${1t+d*2;v?di_B3ARGswU&S3H
      z36X5uWjI~9s;cC>mQ&5-^IAE^&UaOW5s}i6iWuUAzJle5VxzV%+#Pe@X5Ps{y<*yB
      z)3u}?7~@bdD)WqSU?=zs^l=qY^e{dDt>rQ8s_@Gfy<pnhjY!ZLzIl<>x@tun6L=QI
      zQ?B|NhnDAynu<xJd48trnypIxs727PGu_@l6cs;{?_kQymPP|^+iwV)9SYRCW2<0V
      zg@zd({dLfF+w{Clrz|(ukw+gd)f;X_Y*=zK12;3xN^gRicO2mcn8J%<fuQ{}Ssv0Q
      zUG81Usye3Ma9Q5?gG#oW2CQUO=Xos@eyGaoh}=Aul5$6Y{!zJqtcO|ah01=nSz8T!
      zfYeveUNWI5r|3JuK<FE*$}xA~1cM*>{uYM$ALkRKAwiS47g*)T&!LUB$+<&(s`^yw
      z6eIfhXQZy86OtLtAVLOuX)Zt*3NTdMZ}SK?n*9h5@UV?)@JW)n{t2n~zu_X%NQ(iC
      zdg0K9iQy3*w}Y42DjPC%jKRH^ihjPAm9=dtV`q3W{oy7Wf0t#&c#rfphRzmw8&8sc
      chN<tMzsD(<4I~3|G9sWpkLNs&#lXJw3-)0+$^ZZW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$ServerName.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList$ServerName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14aa39f6a512d32f4e0480693dd21e9e5b69594f
      GIT binary patch
      literal 3814
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerNameList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..feed520b9f40621d40ff463a851610f1fe920dca
      GIT binary patch
      literal 4498
      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
      OXa4^6_PTtizx@~Am0gAa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerPSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerPSKParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe9d7142e4356357c23c51fbc0243690c6c5f2ec
      GIT binary patch
      literal 2864
      zcwUuNTUQ%Z6#fngnKVu*1Zc5Zji8l;OL|d@23iR%6bS)LTUx7@AvsB=9cI$Wgoe`A
      z`~7b9-5=nCcInV%*K+BL5B@0YK9flZG@+|2Yt7`Gz4y1jv-fxQ{QKV@e*!p+A0@Of
      z4CnMx^s=(5l%qPgqQ#;XEttltn&D<N#m!Z2&ZlPP6;oN^7B`C$ybSHaKdLEuE;_e-
      znWrrYK8D^Mkm4m(qqhV<!@(W=CJeo3nWePFGZF#}M;^*<hOeC}r}M;xJ1mO~zU5Lj
      z%T0#vghNzUjc9z$;&Ep?Mh>H@u3E<#diooBgwHW}CyWdaz=IAMyAfpY^oP#{(1pDc
      zx*0kf#L3u)9)?|+QbAMGip3fB^@kf~*oFOgQo<7q!7b)FGb3;g;3<Yce0u8AspQG&
      z@gzf6;z7Tdpc9hu40;(_4Y9>A(BH_j84HGIWjqF%VNXKUd9t*!%*`{(vPRs42_vm&
      z=M+;FYj@LY<y9*2p~OQQvqd&k^lq1!Bb$_Es(OwJ?Z*IdKYM0!Xe59kL?sMUTWVyf
      zv1XC*Cn|3lhj5rd${J>pkV(CbKoiZvV<N>-886^P5&_rK)MAG4&KPy|67@bNV+1c#
      zmrcH+kc{-4BaLZci^&+p7=vHYG@~Mbp8o0PSSMt>igEHUl&n<VFfHMqYVJQF<0MW|
      zKJsT6Y$D#K;ZrhBW13EG@@uM|ArWs;XZ3c-)I{A<t+mstZV4GYP#uy%$;yr}>~CIb
      z3arP8yH|3TqU8)zwel+rM=AXdGOD}T<JBON?CUrqA;l1V#84S$LHF82x@0)~$cY1V
      zSI*10AbRi9xSq4}0bIme65gcCv#p9U-o_=;wWhA9RKl*UBG~MRB4Zh85<reu1>hy$
      zln1zfU&MtUEWU`#$;gWY{(@0dE!EJ4urJHF0*%;ZctzL`7l>$9jgF3j1fzbmZJK3V
      z1tIz^qryT|qbN3s@xkWzr+!PqDxJvLCg{rMBGs0g0hG`oVXc~)%=2Wms@5{r#SFe7
      z1e>UORE#k(lgqdz;~j*l-~|!q$9qJz@*N4S3;PE$J`{Gzv1_^?ACo>qp{hbJ<!L)K
      z781w$RK{!IetgcrVt#zdu=i$Y>qt|aktS#tsN4mUXVo$(i!zdPqR|oQI(Q6mX}c2*
      zj!4!($|#v>KB<Z!+tXlz4vRP%^#nw}R!9)jyG0Cd`kMRc|8BI=a}TZN$fJecoskW+
      zM+R(k-ofKGp8g$uztVOKo}*_QIRPi&#W;e9;~=f}R>JT+`T^&kfM*VP*aiQI;=J@8
      z72v_hT@20+Qi>zVNb8V|mzM7070MI&4SiyH+s5%lcM*5~*qB`0WYJ61K~v3(Ndz#3
      zb{bI!FpUT`;V5PhL&9MespPCN8zuV;F$&-adCU@8I|h*?wjSD@!@SFO*kKQN?_lAV
      zT2`O4H}4?J6}yYf=)^s4><RJ~w(bh;PGTOhv1sFsztFWE?0g+qcMXijg$p*~g0%@S
      zkBy~Z=2q*{&)ZOz>QLHhD5OUh<)Yi!KBw@B0hd{;jqD~h8>)?!O@aX@gj0%aU6=b@
      zcpueUR8Z9EYAw+rm##0uY?#{*d!>%1uSS!mfgAm|tC59!C|%gVwb^?pUl`oL_2j@m
      z@DGt(ZVm<Cwef!4@+0x2Lww?_KHF;if}VpmzS<-*OpOAHBp(YMbQAYu6(L+BnU)d7
      v8jj&Q#;{JZx<SXgStp`}nur$gwId=w3GN$wOUNDcLH-WkJ0iO6<oe-%$eXbv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerRSAParams.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerRSAParams.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3e1b90569f7a150ac1a015ba1993b628a230fde
      GIT binary patch
      literal 2848
      zcwUuO-*XdH6#lkJnlvm>3qeY04JeqTDWQN>p;Vh%G|-kGp$WArP18-Xm}cu{Q(6$;
      z{OyA?j*9sEi5HzwN5hO|c=W*s{{{aO@w<07+fXth)9H5aJ@=gRedm1lZ2$b{_d5Uv
      zam|l51+ikKmbjE#&aEUWnw6+l%ZVk^Sk@ObGm+NJWz9U79zByYbBk3!yb3zS*+e;4
      zDJD+OU()iHAMFYbJuu2CZFPJlU!tF8M^n%~Un>+eQ$c7#2Ce8uBDrd5Nx6ND2Zr^E
      zZjC6|8EJVUno-~#GZwTUJlL$F16ve$BGF6-2vmh10R>wp^ollBTb$R-^SSx5rl4!W
      z$mhzLoT-bov+1=;Ix)p39>~P42N8DU%0<J}t<s``!;$EJIX4wxwBdBD13R(Hk8TBt
      zhjdlZgWY6HGztbEIx&k|)+$A-Bny@bB8<I$>`}0-MWIzZjwciZikg)!8K%W*MN-kU
      z2e^Befs8_-s&P|EDex~E3$=2sDtZ>Ro3@y<N{OUiOjRtc$gYW8{VL)ZV8|t-s$05I
      zQLvpMo4RawSe#9$IEX>wEQ%!Ek=bOlr5gM=%qXo=25|^a33&_=Z6w726pn}d`J@IF
      zw9O`oMO#@iDq4j}Jfx%`NLG^#I^B`hY@!(v{W%rSgN@i^83NI$Y35c%m7=prL19eA
      z3m6x4YmEwaM^fq5JcPrGDqaH1>7j#y9&%2lTAx<1qct#sA^vfflkaj#Gb!|dWuz@r
      zuM|beotW}E+q+D!;Eak%oK>(ta=*QWiy!Gm<q6K-%u;8f^5?MGk4!^XG@qf>YFMXn
      zLG)#Yb|)22*hX2|Y0Rp41+NnRlJMiKXay+~z(q2vT4pV8g|7;~oQiqj=a+uvN&pL-
      z3E{9=&0TafdNdpsWD6=Hh>9+j1Z`d9NVQ-Y!0T>=hE$Hq2)v9(MTBV>BJ0uyl=hsI
      zC^_u9u7x+w5m6;e<es8FmrSjouZSsi9|G!u6y1(*sI@Q~LN1|+7PY1|m^Nx=UOS<S
      zdAEH7hy%h0d&tJaUmt(F#Qfx!LJZRm2%ej`I)OI+0KwQTsImUvu=QuI+VBXUTj&dn
      zz{|_ffl)>PcG#z}4ch_vCZcj!AVixT^MG6f-e2(OPj0k!xi>DOsJ7jSqM#Rjj&FuJ
      zMTWlEuh{CT<FT%NZw-t09^ah3>Y4M;{oqCo%F`zq@l+GOJ}0uuz5RGn;-M&<99NiG
      zFpD?m=(!!36l-4{v8;HB*Kr`bhC?&n_$?e+=dpv;1ht_OYbUbk#s%!fjLaUk<GR_y
      zcv@!f#BMx;XBj~e(sFQICk`+F4maWO&Dm`2)$!f815+-08`pq~Yv3MSyI5f$&#o=-
      zU1JRj%v2QjKw^v8xg2a;*rj6<+b*IPDBI}KCs7K;4CA<i@<;j!#$)|;j7-Kohi@Pl
      zzvErF319rqh+O-<H{taRc_okDPwGf!?=5A>+grzp?7Fo2C>y|H;2MRqObC}TfE5g3
      z6-hQo06t=;b)`1O7M_%19&w5pB8gr?_t1ZjY_ym5Q!ezsxE4jp{7>kO77Y2sGUQvQ
      z67sD#;C?oH<;8lN$lf8Qce#F#|B$^;93LQs4=I+9B%=`<jms!QG1!dGx{O9$Mn@b*
      zgV=`&zKKiBnc{FeD8<BU6;tXsz44lT+;q*_-D}2=faCo)GYB~p*Kls;7S2zuVS0u-
      z&rbFKfxrOk_3}X1Yjw;uE%V|Tt3&JTtfP3Z?UG|F*HLNOeuGcmqv|@mA#CRJQx@zq
      zu0N;xuJe|BL8ab60$);hUvWl!%_e?>G`{7>;yaGu@0%1{bjw$yc$P_sUkl1-MP|rQ
      NKv$%KugaWn{tM6IV0Zuk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d68e2476d21f669d051c921d05f6cf63db40d315
      GIT binary patch
      literal 844
      zcwUu}T}vB56o%gu)7>Vn-`}mZ^e$1z;0Lr25mZ_PLlL)lTPDevjBIAhWD?B3Qf~^q
      z=nv?RDm}A_LaSEXf#IAp=Y7sQv%h}-_z7SWZ$sn=TP@QQ7qTxeg;7p)yNUQ_)4pyh
      zD`I8)%AUsiUr*xW6KQ2fIc2*c@`TEhy1z7pU{@RM_6W<Rn%4=VQ*khG>Y#Uiu57h@
      zM#vwgO;yAg3K3o)AWYS?QJ;IAy0TwnJyC?&TH27wnY7yHqhj8*HILY-J!$IRWvc9~
      zo;e^aJZOyTBgcs}EfG7bO^fY%pR?ZQG$G;<#%VV=(#Cm{_xcG1nY2=?UAsfrE|vf1
      z^;iu)UN+h+SNpf3Y5~i56=H=To+*v+8mokGba}$&vxgIkaoV#D^-22&Uwz~?E1rpW
      zAbuPFjd8?3lJ}6aJ>+-+!TQE`yu9Wpha&IAth&XW+Zg9)aoB|j6B#AIB&L|*S<?@(
      tX8vWp=gtq0u;wtIu@?Aj$f{&HkiWsw)g39wYP%UF8lI0Rgg05&+8_Pw%!mL0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d938211ac99f5c9861c0cd943fc8b29352183acf
      GIT binary patch
      literal 545
      zcwUuJ%`SsM6g{`vepIRde~E<%7QPTWVxc0bG)PJ}R@1s+ny>T8%(M|t;T1fBm4rlM
      z>sdU5xE&UjEav{rIrq%TynjBw0@%c2gbZQp%5>tE>Z;q=u#cTf;v1WG^(EW5#?I-~
      zRN6Pm@~PEb<@rE)6(LI)>2cyjnXCAu(c-3$kS9!psZNDzwMz7zY9uUR7uq`8-oEq7
      z0fCMPL*>*suZ*v&q{F%URw=swcz7Wc+sb*iHEvq=gv`Z0A-}7Q_IrfB)wMbyTTU;z
      zfIf^BF^m$SRMm!$JM9MBvv1Y0YT6W0CDPLW472`PJHmGL|Gsw!g<9INO+M7Y)i2ye
      zZ<Rc}Vhr1IqMTzFVV<z^Hyy&@FC{ENe9FlogBe8VmwG^cErWu@B8DWA9C0prM5<VF
      nZ<1So!sugwj!Vpk;Tt9bEdVfysc=6X;tXab7Xp0_3+Vp>xlV|@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..106f9ce1276276d9f413cd8d9c93f95cc6bdf4ff
      GIT binary patch
      literal 4385
      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
      J`S~N7{s(|P7r+1j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31d3f3d650e192fc08c6c232b05774eeab1b187c
      GIT binary patch
      literal 3037
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SignatureAlgorithm.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SignatureAlgorithm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cc244b320901f2c5a52d52395663779b23668bd
      GIT binary patch
      literal 1648
      zcwUuMTT|Oc6#f=pBnvfhTp(Q2rcuEbV8t{c7aM|cOya@VGZmNd@X!%PHOdGnBil^)
      zMV;xBV`dVjNtr(Np+72<vqE56=z~48d-Uz@`OZ1t+4VnP{x}1W!7Bj+4D$`At-Udh
      zjCY!2wzOu`*4}#Vk+pAnnr<~5qt*7zyxnj;t95WFAk1)!AJ=TdX=p{KeaH~YSE`lT
      zMs-VP(8_%gW*I_1>v@`A@;R&MJEhIS>t8nWtL36XREkff5S2ny$_15jor+;#x5O}5
      ztZZ#4+xhZVk<xj%+jl-<u5Me7)mo;clBsQmaKYU-MMNYpBxHPxA%<u!I5Ltf_vFx9
      zp5-*MrPOwe&W^~4ASy!OU`&R<fylw63=vWObx+11WQN;i%P}kM!#&g6H1=$hB9+~`
      zVQ(9r#j(FAA%q0w(>k!4q`J|od?=Z^o(9i%T1E^r<daP8miR(ShKgAR!S(hn$FTh(
      zOCsh;xy`bElu2jisUadXzb7PN^vJN=CIws|jy~0t@Dm;jc*GFDlHPH%Wgf~{#1meH
      z=NZR!_w6x*dR5En-W#*t%9d_eD)Fueep=OE845SFAk}xGA!KDdMULU|Rlb64G@IF*
      z0{r_GWO+B2x!Mw!c}2!UWCW}-jQ0*!T)kaCShGxfzvy|c#~|r$+pC*v7H|38>xreg
      zGpTgB!;t?^<XoSnE@xLVlwpYe1R^VA{E7l(g}{p3#wA_|*>Qe7>134Fzrii?yG_VM
      z82p$21XfGLLmzSH1j9bK8}`Ad55^-tn27#KDAdKUUJG|Is@Ec2Oz0<=dQT(+_>N|Y
      zEHH~1r0~7J$_Kr*AY_IT<|zy6?Bqw>?>R>400Jl3{}%8AuYtZFKndIr=rrF;pW;XL
      z1Cr_A{Q_to{yL|gq;ZeNeb!0LbrR_g>s&?|A)P=sR-r30jb{|^Ip&bN5;Yw}jq%0@
      zQ5VUJGmmsJRa+0KXSEzxVk0zhiiNoz`*{uQvhWy1c@}V}LFQ6|si%1U7uf&$#YO(u
      z1HU#!=DSN>EY<!-xU+ML7iXWPb(Q)+3WTe_A-qFif<W{Fj1q{PgW3s}Iz$r37)g`I
      a6cwH#tJ0fZBzs-{^PUy_`6Y_JUHb}@ooE{X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e48767d17c0abba444f35d04cce504363a44659
      GIT binary patch
      literal 1347
      zcwU{9&r{Pt6vw~YRsw0D1px)|ca^p%p#mxdK`CYIOu<7P4tfghP8&=&OtNKg#*6=t
      z2b~cV4~}R5D95)UViATJJY=)G-}gRwZ{OSe{PpcSfC5%E#25+<(Kfg29edXlT$(}P
      zn%lm&<J7rtR-M+i%d0#H98VNIA^EP%6f`6l(#pkjZP74aY;N(I)X>E+6z;aA<C-PW
      zZgJn1<jD|oB*S3kuUeK$^L&e;r|L9>E!#e4m^sB{p>i_9D5Okz#abjpmuxygW{Q$I
      z#rDi>l=Ffk9Jxpz&z{>mx51DodUf6dhJFJ{7&_v(XrLE^4DoDkL&q>KYq-Q<o|A51
      z1fvYycCAMHD!tYJh_K^CpW8um&EB?jjNzJws}%AH(ZF@wphJ1X-&Q#ltv}mIpe-wj
      zTgYg*&Cq*HFmMNVDO@M28^iE1-=mVNv&tIK(9MvlID)UYTbtZ}X>YpJ0s|GVX1g1<
      z@2GXOnNS60m_Bd%nF19!)wF{(&*vqVx44i&SeI8xOyPls0)6phj0UDL$)J(vI$;=+
      zf?g4TI{8mx9sO@9;3ET%F-!3(a}DzhV`nw5jyWtCc!EWBMe5|2&Anb`(5qhCuklq!
      z<vwy+Vv`EVV3dX6e$lmqfKy(nlBl^};E2W=mrbv3U<D;AW`oOeo%E4o1?jk<7R64-
      zLeB-n=;uJSp?MF@V$joR)z>tS)6<JSQc^Ulkfv-$^AmeW=f7YeKk*eq`?zv|n+$sx
      z{}lS?XzUAp6@7=OyU5eZpf!180{24gJ|-jb484`6=Rafo04BqSBT`qWyz3z7M}!&7
      uMuho@kUk_lWcY!(eOMp=;k@tQq$5roOQF?MJPYZEBwzr`G$!ae7k>k%rcaar
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6dfd010008ca137fc35ab20b24620c4673672c8c
      GIT binary patch
      literal 2957
      zcwVJe%U2Uu9R4ok0dc4X5R6!*iW&kMDXm(uRK$R>0d2#h_`)HXhSAAPIx|6_@2<M(
      zW6@PlkLPsNO&9Gs6^`Yc)>Rkn|J3%olNbVtw6=?xx%YQ}zwds(*S+)mpFjTsU;v*4
      z(I61dnZ@{BbxB>0o0=PU93x(^ttCCH+3~cVFBn={a~$0=M=jIUmfawH0?}Hdkp;)K
      z)r`AUTVVI4#MsDmYHEHeIgz+JJtZKL0xev3T-9`ERHLXh0-|5Q@3@w&3ACjobiC;5
      zM*OnsEKaC}A%W(!o-<XqC^aT)HO{AMIhDEeBrgp;eRXJ<;3048l%Cf~IdEP#b$3{x
      zG1@yL;2X8FS_qA3Rq!0zD2OI|XPP0fS3wH`L39d)YY2tVfrzx&EmgY|G$X`tq;yl8
      zEan$9drDm}=u2zL%BaSSYU^@d7W&*p-4Ph5Lwm>U(3PMRk8AYfQ1r&d-W?nd;)uY3
      zox&EvVH}k{9AkDQ+Kluns-PD!h9@U?ITkG?!%)p!{OZD8E#nUL){25)h9ghijQMp+
      zqhwZ~;l@SAz_8S;x9_M-LnyJF(F!g#oFE1Tjz1MEEpu7X7HBG{j&t9#J>XIDE)>c8
      zV04GjlpK9U!8tIbK1W~GymClN@v91k@fvY8)3sO9G6>;lZ&gWBG_(sN7!87cv}{>W
      za0v<8>aJ$1Br4Fc#Wq=%6JQ+4ATF~)YF8Cp!RsVudOg-2tsC$Ow$i34OR^^+3GYG*
      zR~1~708LDx*McGR;Y|f;utD1>OsS4LlF2X}T6Rj$m%P6sIn5}T#apbiMb(+~w&%)q
      zX@6b84cugqbw;{7x<l#7j+BwStzceOQoz>o){-Vgs)Ey45I9?>to~J@k(u+Prn+`W
      zF?Y3$tme=GLHG8i>V%3)!to9!HDBQP3bVDfT~`WETJ~B!fd6+Y1(=9rmINYON+e+x
      z^Rf&|JxpE$&v;7o41{38mW@sDm+Cdb&Zms*M_DCL#A;?yOM5-i=G01qxG!*cGf_#y
      z&~mCVV&~|G=~g<m2`g;Nj5O<(9oL;NI&SxZ)@@p*Nefq(C9;HfCGq!|vg#5^yS8rT
      zJZ4R*SGYZ=1jhb@Z*^~<P}(Zm8Es6LsgBe$JSoitlq9*@qXv&0&EYM}_TX*XhzR@$
      za2DjO0ZnL?_W|d-yt%@MR|&^b#yf-WJ)BL_Qt-Pk78d>M2*(;9qCK{Oj=6R0dx-r%
      zde#T{ZiSEU1o6j+HjYkQ#`BaYC3_siA%1=6#tUWaan2g}ZHxVc{Tnzu*SC(IH5`A8
      zz8@;E0ndEGgX$=$m!ah71Wt0DKM^>^wE=Gfffqgampu&L?3)}*U{h6Kq5{S`q=^JO
      zjWZ>NVh`b(xVB1$?GLahiLT+SoPCSyVxlxZ{|FZZ&iTH>K*aY5V*-znnmq9clXBE|
      z&L8ow;f*ta{@>8j&rwI<s|N@~{1Z}pTHx!y{*XXinp?xISvl_Gn9rSA$-U9ze$va-
      z9QN{z>%>hA;x=!Ac}DyWPfZmwl-)rF1~jbTZO_MHFQcm!A6L1arEi^>rdE~_7{n3k
      z=D5c&bF@gApNL`TxJ%o6DCMuDWq7qPk7MQhCCm8>Z_VGW+0B55JcWByH>!djt`G`W
      zGT8hq8MOZ)gL#-`j)Ud;ZQg)27hA_W+be6Ssz{s5Py#N7$^dZ>5b(>Sf4|N6(<)<s
      z#kk1AEE!L6cgeB6>l?IeU}>&(c^#|2#=6)<+dJnozCUN@eL?FltNd%P_}9*#0q(n}
      j3Gd^B@(xF<=<VO`+XWA%!FxXR-XGy(lv>>KAY1<iYQ~_c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22ce76a9f51dd41183f56d765b9d0d2808a5c258
      GIT binary patch
      literal 2111
      zcwUWEOK%fb6#lL~W*jqt5O5(-z)%8?6K5#2ff5SEffP56L$NWW35D_a;!GINxbsLc
      z6{-rTuN~{IijY_%l|tGoutP%Xwm$)N({-gveVjYC!2zTq%l19*@0|19`}m)qmH@no
      z1sNfR?N!TH=d}gxl4@~JbzM`fJNAN6;f`9&6^>78x(tb-@0p+OH0qwM)-+ueW`?fp
      zi6ckPWu}YA7+8j(d(5_6PqVy|X8Jr#)ker^s_i5cvkWT^8kXT5Vn`)(?c}P<b>A_(
      zhB~LYb82>yyRKH{M~y0Xz0rXZgEVGWcno2zR<IHZ!|I%2@w{IvbEl}4P0rApvvtiZ
      zX^tV}mQwQO43}X??*IE8C2vulVb?1HqX5whl}_dYZ{IUabyBMbkYmR#>Adb4G!z*d
      z8MZA?n6(x()2K}F##28TuQO~7+)T}?s#(+IRn07Tn#Z3yMX`lpGXWfKE@YS%GVD3N
      zrIS}>*flQml}KQ_jBT`%Wv~>yfgKFtDksc4TbP4NQ{{QC)1+Ti$=J!TrUR4Z@hW$^
      zz>rihfE0sF2ntk|SdfjOA43Y#7-onXEh<pS<Um%0>{f_@6w>_^un3f~ml*j%-$$IP
      zU*ne7(fZpA8;b4Fgy=Ql*>=LMX{H&&9_$nB*v}B}Y_8xrhE=7VL~(#2@m#z~D@}NF
      znw8kUJ5e?~H;RJ{o1Po+Mc$x)j}y5}8N}YuOhz>Ho`NHYi(czm<v4L9iZPP%zG)^X
      zCWb!jTZwTTm+?MB|10rIK^7k{M0C@(Xm;z8FIkJIol`I=YOnGwqOsYaCItdvno@8=
      z%(<&<+WN&pz=?63R8T;XuApD9P%pH(<V+@;9ViK7Nx^BHA!8)~LEKIb%w%Ht2(vO~
      z7<xJe+HgHyQ*ag^Qwhy+w1#fi8^M)+0crLns#eMK3N)0dQ-`~PlEjjdKwnY7gQ423
      zp$cVH!JHVpBqlAQ=S4Rc1<p)x-87H(T=qTgiq~QJeWZPPq+Z*BrA1^iu?d1;8Z~i~
      zC5wMbA~Psq!S)@Uj~n70QCg40ut-4Hi@?%z7Q#kEu!1BxkfJ1ab;vRLLcCX`>88^m
      zl7(hPYVaOb-3fep=(p*Yp<H8FL#Nl8Ug*VIAULf<oN_R-tS8%sKo=r%Z4!AyrvnsV
      z`e5(oMQjb>A^Im%Lyr(k{eWG!ArJkC!MjjN65m}B^Cr4~#-8ckx9(x&fl&9v+NyVi
      zYOr^-mFV4k`Vsoc<?tin&^O(ixrd_<QbMx`dioz?{4OT$q?bsOzlDwTH<1pfmlpA%
      z1R*Tq6hppgzlou?qrjHGjYxWFL=wkeq6Z@Ba9<=Gm+oV_FOqM@o+DZ{PwiSdi5Cb=
      zsu^_`7s4abZN!B-E~Vqr-ky=GH;UIK77r4C|L^aC!+H|*z&v~P#v+UmI$WNJ8X`kj
      z$W83a%N}N87|)jWEw<C|1T8m*t#lKIkjDt7aG0)M7Db$*&ooLnk29FZ3@&39pWz&?
      zqk<bm@b6H?Ett5E8Wphc7&d-|gWurd2|WCP1^kIC_#2-y1y|Sxe8INh8dK?i6koDQ
      ze8tY<YgWcL0clPW{fGi>($LAI%tT#wnzGx3`V?D*I*~9;HRJdMDM(bgn`#~+0{w+8
      SRGD;a6A?T(QM4EI>;DJessda9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSRandom.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSRandom.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e14e8a55e01d9aa787fd774f4b4dd1f6936f805
      GIT binary patch
      literal 4306
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TruncatedHMAC.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TruncatedHMAC.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c270beb33e70be6fb5a3d44771f3cb3d393f2a2a
      GIT binary patch
      literal 1125
      zcwUW?-A~g{7{;Hoj&;^5IKBj@fFgDuP!LT_P!mT~Fq>RJmKd+P?QE3P)1_<Y{GYtg
      zn?clg>4krk@jYF|Q5Hfk&gc7k-uFCxfB*UR6Tk)@t4J^yEfJVUR@ds8g8OEt<CtyF
      z?b;3QnFn4V>Xy$NJCzsPDv}KO3!-24d@ee+E0(L46L5yqQ(M^na|Xr8RT+}oZi8!3
      za7D)$QVio|TkyBRhZ^?|teQhartH=&r)qh&+((B=|IqGG>hfhP-J;YE7cKuVOub9n
      zTF`8Ak73rxm8FC!Y}YJ(@_8w|*wQeGX%$lplOwKm%wU!Z`RG|~hB@PXX|xJM+IRPT
      z&lW9)seh>)OSH_vDdl0frQ;^D3@gU@`w>VQcNngpeV~d(dP_XC6xa@#q2Vr;Ror8k
      zh)3wSj}->BD}T^lGgiZ1?TFX?Q8j2-fFb`{j$wLK*;N@)&{4!Hxox%ETr?O~FZIHx
      z>@bNby_qA4w#S=xPj<vP1qMd#pzXVXSLd(nuy4-TvnCNNk<|+1H%2RJI2u*jnKUzb
      znm<PRD=iYxXiSBNo487&J_w-s8qMTB#v`~G!3pJajC?XgCQiu-+=$4Hh*Xsy=@VqW
      z#PDZBxO$3{7ZJWr(ef^pXMN1a>CzCL8ltli-6SWZ7un41O5qn~zGLBC;RH*^cu?#k
      t-^W^|_+K-FB#p0$*dcls^LP{LFAg*!eYsi>pQTWh4{0SU+zeG7{RK*3>gNCe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aee80a9fbb5417f29524b84a6c1f43c3451b8a6a
      GIT binary patch
      literal 1497
      zcwVJcT~8B16g@**7Rm~xMe(Bw2uNFm1^gC5QW{K}H0=Xe15YmP*e+Rio84Jb{W%(a
      zA_fyEi6rvwk22m_YN>^nhHQ2|?%s3mxp(gD?>|3(0a(Oq1w9Puisfm$`o3P*EG{(H
      zHMN>!?;B<AXq%4b3SLfoqG~&aFt|I_w$2Lf=)!gs1Q{ZdLNj%%q7`;_c}XbfWr+G#
      zPZ*~5&zm7+SY=*kU|EJ<Q8nDD1qLnGm5ybCt{9dfRvDHOU1F0(hG51n^L{W4spv;I
      zi~xpJ3?Rx7NF<B$%ZLgEedLidES~rFcDS>t@0gs@%Go8|Eb5LS_f2C^roxcvPRvyW
      zrR0JZuM38?M6ye|4%0{C3a{5oye16WauwWX7{54_yuIO-s_Q1-<CbW-g)xQ+1>+2J
      zT?JS15R+8D3Mc8AME2U+!-!*8!6Syri}uRO?kRYp@L|pNtg_pZ&7f3uH}4mY&Tw0%
      zky0^>$5c<(_{4p)Y&wVU+5239#xQe1{MK^4TFrJyLZK#4f;ii1GLK>E2|AF@PA8cR
      zPgLB&T`Km5?Kvg>#*i&BdO68?iDpo<mc^Znsk<(xrioqA1q}TgM#a*F=MYu(a@gGE
      z%e8XdimxtXg0czF8$u5~bOV4$MBWklX@tl=0F}lYv`hOQz)))T7=x)3L{foc#D0*e
      z2RCUPBqHD&!M+f|SKOkV1QP_KxJ@&YRU_|vv<}iP?h_aNKtMcoM7&!^h;0Yo6LSL(
      z4&R+3zIB4BGv6bM7^eS=c0iWz7{Os%w0JAp3=&Q8D}?eHC`L@iX(0I-q2NK_pryap
      z_h_^+MO#dBv_5BAYBKemVxE*OoOR$&+wgto_(+=aUTos0X_ntYsRot~JHX5b%PI%(
      V)L%WrbDG0GXbdlCeCgX?{RIvbc60y$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92955986e98703045c599dca9067acdd57d9bfb8
      GIT binary patch
      literal 1597
      zcwVJcTTc@~6#j;7ciXaDtXc#?u1Z@j3o0nK0u@(jD3`F%(D*=>vXmudOSW4gi9g8)
      zEgFbM<Fh}?cxI>qiVvon?4J3~%sKOYXU^>RAD_Mg7{@aO4GhVGQ_=R!L-V!fSe{lc
      z7qtVobZBo|uD0e@%AU2Is(8C4*Y<3yJdobD9M9gdEqCqcz*692Xy(yc(R2!$?o{>}
      zLMyBKX6ogtu0Lm(&eXF(f}v?a&utp>sqxMElrhf`+?W`f+FVL4>a_KozPfgC(tl_c
      zD;5JwGc@W;>x%=~RAyZ_7-nA8OC*rY7j4J(rWvGYEX&}VD{Wf=_(Nd0uHpu6GRVo=
      zlD25(ye@|4+D;*nPRFuATHL0>4><sZgANr62LTScR0KE(a?qn92$_%iRH$fTXvx@)
      zwN%;PB2wm7k%WdbrMy|pny$^UaE2h^9;Y+N5V?xQ8Ht#R5E@B^w`-S4UBU9QXT>9R
      zR6bdhl4erTSe>;CVGQ>bj5D-eU~@!K`zjvbAswpey5>>7ba2EFzsPxcYtPDiiS!k&
      zG(Q7Huw33@SiM4OtX|#{9;=wZ6vM>D^m9eCTuxlI-{reNT@x}&6*q6au=#1V{k`WX
      zk6=*Kj$^qZuT@q+4K(s!)afo<CQmgr?1E!@6_>^<e-KO7SD5L<>^QZMME?<aww*UK
      zKvt>QK+OiZMVR*)(AvR!n6RJbo6$n?t%Tl?mp>by!E)hil5~RbF(Lxp^7#a67wER%
      zFHomIcVt<hZsiL>sfvh^^HtGq<os218acU&ZsQoe?<sc!`so`Y3)YFptOEnW%U`;+
      zH74_<$46F;4|Sg4ZoKOwqUX`gTrKN?%=+lo^otA;kwZmX=;R}=RHA%C7_Md2$TF@v
      z{sGaqzthRw$p%Fl^=v^cO%Nj(tp!h#mlruwMQ?6Fihs=|x!OhP_9?XCcbBu#`%6}k
      odUmpwBTgPZ8w#`dDIR?T`*)m#Ct{R9l1B*YPccJBIV=3BpRA#F(f|Me
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da386d6d1e639936298e2ed8110356446cd19cbd
      GIT binary patch
      literal 3221
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fb51677d166338370a1eef57cdf9a017d94fe13
      GIT binary patch
      literal 3425
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1fe208606fbdf348ed2021d1b4352f17dc63b62
      GIT binary patch
      literal 1413
      zcwU`UTTc^F5dIFd-BOo}$W0Ur3fLPg7eNICtw=&rK!Y~%aoe7jgUfES-8S_<`Jjmw
      zqKS___@j(-PS;9GA;xTWb7uCt%*;;v^Viq!02Yzf(8aJ^va80iSu^W~%{`-1v5d0o
      z)I@>1#v9w^700Ua!i&1c?TT>htZ7xbh5$q23StXBt?&$?T(wx_F2is}QVd%-M*6+S
      z(<;4AfDK^_Z<Apx))5iUG6bGG1s*{+uIbRAGjzw|*&Z<T=?Egk(4P@D->;tJxcl17
      zS>!vIaq^~>HC-WNKN;|jM1^4`^B=9tQY~(myd!158^H+1G>kIb=uozfn;2pUTH-`_
      z45P7l$L1o`!)+ZC7$<B^+DO@`j!BiNSRzklhdt-ebA?@E82Te*nRdx&W|hjcjw#GA
      z%*HOh??}0ixP}-*^r~5S!qSmIl0iG-_3i3OnIV43ce-ezVUAjFPp7NGBJl_eENWO_
      z7-&c6Si&+{s(~C7+nPGa9rL``xv3OZ<c6%$x^<dERw5qhc#Jjrnr6Ao?E=HxKaI>U
      zTbXRgVc#W*vdfF2F1PK10t2H}iyS&tH_vy3T)&CSc57a;Ns=~;exM{Lx0+5NI%^2i
      zvxlM`bkPMw5~p-0zo7RMMP2BpXP;s&BY+jcu3~_qktQ0~Ne}82REo5*81gljR1Aa@
      zpV8aE@Q0RSNafd*lHSDlO0<|5_xXm;4<;J8^|6h-b&ectktbT@HuF2}{OykBG<l!D
      zKxp|clwb|qYiIACV~5VMXMFZM8krp0lypDC>|XK*M!q5SHhG5mQ#?pD@UVgPz0_af
      pL7FeHPsJRN@JmGTN|{VHg<6xI!V_$gO_=@#w&*0we5zEQ{RZ{uEFk~@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c58dce94c363c16925d8071175d57d5f963a794
      GIT binary patch
      literal 692
      zcwU84U279T6g{^av&nWfF>U>*+FDym8o{+b2^B$#f)KS3?fYbN*-n|vmf6{0{*{H6
      ziVyw(AAIl!i8E{Pv(Sf`xpVHhXYRSom+zlG1K7rTh&jSqrpx3|OvL*{vrURZB}XQo
      z$Pt_5ot0{1J4B7p_LM{koh5IEhn(6Fb;3%87Mzww+G(<9<U}gYc=Rl_GS`I0M5qld
      z#!Tq+e@hIkkviKU)SpN#?Nh>1_y6?PKB2aokGKiK<rpCv5dySgG|?smT~BEBrRLY=
      zc*y3h7^>=_JQZqR80qgbux1ZrL0Io!XxDWWn9}vW*xl;?>v|``4J?Pa`PW1S)57vN
      z#x2|?%x7%(On$`1P6?am`8sbB(I78P$}gnvw&`1W;8}$DrPgeAl_&~!4qDH3s`A1W
      zy<&Tik3!rdtX|*>58VU<w=RL&9Y09-1LoXnB68@wiyphXN21>SQ^dV9Tsf{dS3Oo`
      zTs3_~$3?M=J-UF!3SYvtnaU$~`dp)Tg7_n@fB2<Q_c(p~qrNe#4{)bqtzflM{iy)Q
      LyzBNF*0B5oc^{pZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e85173e938ca5550b7470f232064a3b97c40e81d
      GIT binary patch
      literal 725
      zcwU84+iuf96r59sIB^XL>4kesX+UX^>e45qA|zCSgcP7spzj-J<!-fISL<~||B6Z=
      zP#^dJzJmw80&&))Tr2fq?Xz>{jAxGg<@?EJ01t3C#0+62Gi9<bCgN>kq)UoICx<ql
      zsIj!k8>e)4GenKh_LM{mlO?Z4`!aPQ>V%~VEo53+<&Kgat0qdzOpc$VPUVKsm<Zi9
      z;y@BQgWnQEXO+pe2=zzGDEFAK(EGo=wo9mO=VRFf;bM#sjR*l+F`8%-f}SU|2Fl2n
      z<-thW*J7lr59O)QyTU4epMo{FrwYRA;M}<EDzGJcpYN>={!P6V;VQ0&xJFp~JNs~2
      z#JGW*gxO5G9h)CY>y8Nb&PsRIKB8e>+EhMM-gDC%TK6nM{M;C6x3wq=$vIk2O{(*P
      zhh9jxmybi-AuOMhEk@T{n`3LIZci;@gI65zxd3W+{HFOAnc>q!#ON$n5BctqsDJ+h
      z;{HcmI<7dEJyvyin!cjLRm`<V=P+O43s{`0Z1UUp8vXZ(KjF%|UmA6f)3-n78`Jp!
      Vw<^{WmMhht3Sj1Ke%7#p)gKP#sN4Vm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..663d50bcb4da29ea09c74b0618a76a4c933ba22a
      GIT binary patch
      literal 773
      zcwUuK%Wl&^6g@XFbz|I?hL$&Ncr23e7_nhf#G*w=ND(XwsVZPGNhax3?${dJRro8A
      zT7g*f1Nu>jJL3q1S_#<LXXc)B&%MV!{qg+-z!TgHQ6oH>m{RP^Lpc>j6(Y|Qk=gW6
      zkCYYf3Z2~Fu`<ilXtNxTl?@RPE;+hLq?w2}gMBqD2y+8pCam^+(dblcekxR@+F(Lv
      z)mTpn&E9YIc44)dxau=)bn%?fZJ(<@tLgL!!B#p_5$afo(ZC|1-tP1p-~nS?z??(P
      z7$N2fOFeDW>+)cr>{~fVl$#?R%A_x?cIVk;Q0(cPAbS553NJ8Uq}5=Am3HUsxDjsP
      zR*0K~^}n=^aT{xda8FHNlm{7M<DVlrFWG22E$vXf)NZ|oGkEM+g!q*)%5Ehx&lRt{
      z@W)1Iadvh7OKNDkC>b?fkp2c7cEt6IjCT3#cuU={h`SGt89Y43@)u9M>}7$c1$fW0
      z4_L%Utnf{%l3^8B0FRsvdE|_0jIZL_%;u>-gDsBO;Rws$aQ*Wyk4h(f-?-w<`qr@S
      QpDo<sw;P)HL)=C56L)U0I{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6142e3c45b33140c2e283b5658933a58b0c17dc
      GIT binary patch
      literal 7423
      zcwU`Y4R~8ud47-ebFY*eM{%O0ik-yiUu?;W>!fuPyGa{6DN*Y<X%phcfiALqZ7Y=}
      zS3jxEO51@Ul(DgP-8x#>YABdOOH&HATc=K7v>Ao8v_PR_V{8kIpLI}5VS^3tJ?CCo
      zvaGCmrswg!=YHp$?|kR`-t&In@$<ibdIms~*r1_8U~PXg*LWm)G&<avG_#GFOrmip
      zojMxtHPel6&&CrPoB}>MpfM3m_BZb7Ibz1L0*+lfZxX2LDD>>hrsK)}R)NLssbnS_
      zO=b^76FF0dhYBuh+PLZRE1Iv|yd~Nb>oxlX+*ieu@$5Egs;fUB;A~IznqD|iX~2s`
      z0!upLNwYII*kh*mM|%>cTr3rfCJsc?artcvo!NnSMqpjXTkL~&d2dTchuU&|eP&vq
      zzRof|8BaB~jbu$r-df*Ly46-4D+Fkhzy$`DAt2CNe(pkFl+nhG_t+-*%WBcES|I!u
      zySccFTNyHYtvO!QV6Ajptw8X+ZKKoOLus=wJ}j^(o05aKr_<39ffaRSh97G4;u5Ua
      zaOpfeSltHdP_NW<q;50Q?a>TFv%Ic;p&qFuWS{|IE}t-y{n-Hpfr#vAG;kS_33qHD
      zn%+*7IqM?z?Otrc6&fxVSXNNi&JodA)=V2{#+3rD-gtkUGhB7;k@^T#4w&4RgT5B1
      zIMgN}j_{8iBChP*We!^wF|2im+9HuMwrbc;XOxQbKEDQ)^0C9fPFzcyWk8a>0@Zcx
      z3w7CHkP~(ph)8GY*;L*FN2-rzI_M5QGg)Hef^%t*(K*ys*0BP64Q#{J0s*z7GG??&
      z{pJw8&@Ql&qsonunhr=!Hwb8S<Br_mkOY?0`F~^F7U}2~s7&zuZs1~!Q#O^BO5b7N
      zow%9q?>Do1)2Sgdoh8~XEr+&pR$YU`($`UehVz;-=W~IWfnE@jp1xFiFq(}dvvT{9
      zvQgK;h*Z?pdJ)Gh8VH-p!kFFB?0|s;2I<Jbcv9kxN+LQ^^eK;DMKZxg=Dhf&$lX~3
      zUC8}EnPpDTZ5YuooIfV>br^UT{*Vsn%?%~uv1rzm4yZo|1HGGvSM{*N(%zMhXC>%w
      zN2P|l@=LILFMG53-aGLgNki{tzr7KTusX>%(!lo_c)vXQp0qg_Wdca{%UK^Va5p|k
      zXAVhiWX5vwRr5b&;7{<UbUq;@k6O{mE!l<C`)5+`J(5P+<@7u8=LYVR$wgBOC6aPO
      zyLhBJ%I#JjmQ*e~N7VCo%U-91IKwSN9+P4Gm<%J+Vjb-|&zK23Bqv?%#mDimhEE7A
      zEsP>g&3+lX2tFwf{yFeE&h;;&_tMc`N#^cYD#-|wVQ2=qLNfQG_?(8v<}>$5CTk8F
      zcpS$WkEo>nSZZjbkV1;nR-}w5B2!33Pm_FXl#fj^9jD_w8=4G^T3BGxz!xxOSrd^$
      z4NnVPRJ_Yxb9hfKyQi-$l}q+!b`HnPp=>;r)Nq0*U3jeH3Fbi^GhA*kI=t13X`GU{
      z`=D%nS#reR3e?n<ah5%oK6{q_swM5J*{9{4zhl}xPhQC@d0r|ZYbzzYym$(y7>XW&
      zRkk8>%|K&Yyx$I_l|{dSmo>bUKVl_A3|xqBO2l%gheN+@;1zs_g6^F+?wLbssa~n{
      zRRe#I?=k%5t+{9-Q*w&zpw)NFKrsdCxnz8Je|*rC*!U*{Kfpf|da+zOZ6>o)zB`^s
      z$jXYj`8pTW&+%gdC7X^WGm=IHZmv7DaD^gCdm@_2lp(J&v+B#pSh3APA)|qdhYDj@
      zxFk4;;5o{wP!8E2O_LOg!1Gg9w}lCvseQTFz-}`;km@ZO^zQ<-MNmv6%>HO%dn{&V
      z3OMxQKky3;Kc5H2yaB3aGVnTn$;6g4Z;K>l?He;o5}W0Vd62ZXso_`T%QE}d@N1UA
      zB`Rcz{GSH?3%_LyxnCued|SU@F)!Z4e;fE8{GMUsP;2i3*OWo|p#`&x_2u_!X=wEl
      z<Q19_EK|-k#t;s{i-SAP@Z3UQY$=1qaxhpZ;x2^S5Sq}*Uh&NKOeWr+l(ql0>C~Vs
      zG8bCjtqGb~QzB<kT0n<acu>jH8?`E4Z`#b}(#icJL$r120*&0rpzS;-QAU5e(`F`@
      zAjd9}-)fXean(XUGEAwSBX*cPZ05tT>f8>de^c`>SA`?7!(`De6F5}_Zp<aKJgW!d
      znK(VNJ()~p)mg~QF@>64nA55WUN6?Y)%BvuD{64c%ZlbgO{^1GqjY6V@<Tj3(rBFz
      zUh}f)6i-ar5EqGy1&rPl6Xel2&yck4ayvA0(+Zv2W75j<_akRAI>;z2BVza2GxNow
      zChE?^_>Eq%UJ|i)Un-Z5nb*eUJ<%h(HppqTGm=d5l9CVF;(3=TG%;s6$aX|GTyXQP
      z@v8zlR`SWaDJ2FajePTB2v=|ti=R+KmhkCT!kzH(X;=fW6jgkCczaxKPj2F9*{21o
      z{8LzYykvSu(R2-~P;E~S*weSc$??3EPNU{vFf@rZr5bKf8dg}NYz?xtPW5}3WiGOH
      zJwgMWd~Xj<;Nt7~2)Ys{^bW^X$F^~-53LT?j8=#VZ1DM}uu&VH_j%Vn`$rvOb!cX6
      z_SI0qgiE;qFi6EoR3b%FhTun<@(ixvyP4ltBd1IZT8m>d4FgAS!WOj9G#`D`imRxx
      z3Sn$z%R#NY-q>b;hT3Ib+A)o54o;%2)6wi4$A)l~9`rk_4{y?L_bs`Dc21zZYfe}Y
      zjXH(jSu-~Ka(Du7D_FitS@B*5dz7}kpH4bPYe%{2-OAd_tu>X6P_64|nNY3km9;vb
      z9oS847jd+-+o|mCwC&!=9ywkQI)XD(*i#y~dx}D@+v~{rH`w!ERG<X9?0vU59nG$B
      zTpe)AO}a{UUXT`KepijN_v7#eoU4^5T!NCZ*)Ij0^IUNumj@o=;$!^&1h3~0)0|H-
      zRG-2w%5K1?m8sh-bLL#qHRqBp+a<DfBlf8Pb}HvMAuBHF9GBYMetUCUZCrb#bE>EC
      z_EPU0FM_paZb^?)FJaB{+fpS?DAmB(s)JKF)Z)y$%jIZxkK@_!b98`<!T*D<fXnZ$
      zKJ4@P^eOaMf~r3G4qEaWzq@w|1HM|?)1n1j0Zk3!GuW(;qmsjuQZlLwzwT=qn|<9O
      z<q<XAuOHsD6tj2uYRBN8FS+AkIoGFRGLDr2*Szj~Rcw^Xyai*kk8^dWTFdS8yBW0B
      zfNNgRy6GF>D<q9)>8a;P8K)`vDslZhkN($)zOU0~XRrq^&{r=a%EB?ucLpzE1mDER
      z@GXY*6`bJr8GIMt#;bgu#`p0(<@r8R2z@%|`LlDuK06oevx;OKwBa9l&fN^Dk6LBe
      zU9{&V6?Qi*xEr_ft>I>JgFNXvj?yNpB_o-(L2;SQmF}RJLZ%cEKPWmcZrWv0C2!L<
      z4qoB<izs`U%y#tpY1~c}+_8HacOGn*#2-o4V8>{)%jY|xw-6a)q3587LlZa__B-c5
      zaV#t$am?rQyZlZWi)Jkta69}2!5??2h6N8j9MCyVK7!4jaTsA=?F2qN>JfgAgvJ{V
      zDQyh6{T>zNX0P8Xp&?(y1BVk1A0CG{?DyWApXk@dX1_tG-aG2_`JH~(*zC;>6ZngQ
      zC(@|l^M~~BkFXg3#)$uzsp2PCi=Xn?{tR_^4Gk<}oA7fUwqKB|UdLYil4yB@5&abs
      ztQ3#p*SrkBNzVHXKE(R+e*Bh){df2r3&<~0b`rDlT18C#3}-}z^7^|}d|tM_E?ZW5
      zSxoeG;4f+23L@!#{1wp<;O)p_!?k!)VZ}w;9>Yh7BsZ-&iU%muXwPAV3!Ru;rqJLa
      zQkw17{aAws+48Cw=X1f^s8yzHPq4a1=F^XsfJAtexwY1yBHGA<*JFcMD*fwnTofv!
      zwCWsOluxl;=i>aoDb=*9Ea&&awC6v{`I2NeuOcUob<Su0N^<<C6elPmCr*OBW3#UX
      zoEEvwC-pV5m=Sewi+U^(LHI=otN9Lz25c1JB0}G+q6O9ZwC$$Nwwv7C(XHx?FF`%+
      zm4sf!2)EjV{s^<PWqCiprPEi_g)@gw=(~fC2IYg#h8zu2##TeYyee4?h%L}X3zmvj
      zREw*MBDWe(*iK%J&#NLqCv`l@mW<pN2vcj(R*sfI(Si>8YogTKJBs2aiz`c|ruHV3
      zqA6R^mnoIiNq6;wSX}cUJk`OOhp}NAPaT}b^uelUCUG)2Gl4HvePsgARm;X#*{ES-
      z0$-cN*H2bIfJHUInTJ><9<Mo}cLuA&4t`fl3gOnnB{h>cz*|WdYQ;^sg6}QjAlgMY
      zc8WuYh<D&7@y?=}se8`$?l~ZL+YySe<~+k*huY5z_I{!^q}P%1UhD`tHa&oq!O!Dc
      z6Zq}}SR8VOW+b;w91oR7<Op2i7J_9EYsIZa?pud{z;_@^+#0)V^N{qz_Hy;gOhS1I
      z-(QY@8T`PbC6RcyQY97X%o;yr>qn~XAcy^gJY%S(ohs+t7d{Q$@eCZDA&H;YPT`Ff
      zXL#lrylJQODw)T_e)q-+{AS;%TkwNr>1(QQFH`Hr(=Y-~zgz4Z$JU@Vj_F)$kSX+c
      zEqXwgLLQpg7EdVPVef=+F?`d)b8u2DIw|J{JeKC*jLgN(f}1+YRS=KBDLw;__$-!-
      zM+x4?uueRVFyB{-C$LpKi5=pLxQ^xXZl<yW;wc;!Pa`3wG0b}9F7XVGaoj!Pr1Hy<
      z%3JpdgA5JTS}ZD6l<yNu=)nrr^0C*!d&OO1DO*l5@rbAr%NUY1JdsweZ6Oy~tpjKh
      z%c(^p%dQuGv4Y-C(9)IS0)|eP|DT6L1mtpLB^4(jx!oc}i^Y~q3tl=V#hNLx_7pBD
      zIKeAT5-;%do+%=<CE^lAD7v`x{FJYk%InK3KT9?LT1I&VIZQq!kI5?DK|l)fnY_o!
      KUlp%}>ixgih?cGZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X500PrincipalList$Iterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X500PrincipalList$Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5fa0f04f5dacfc57b2fd9cc34d1fb1123ff7608
      GIT binary patch
      literal 2566
      zcwUuMOH&+G6#gzV(8JJ#36Sv-^AwVqo=5|6BoRb;1xF`<LP%hhruzmuHFQt)gTmk7
      zFVKZnxn_}61!75+xUx*LaO1{}R#}!Sb>pMTva~$6>GTXwheh8$_ulh;=R4<~dmsP%
      z+2;UyFfXBwA-`z(>RoL`TU9OYsjgd6%Z|Nb8r)HD<-5D59MjUxvQ{dZuGdlUxTATt
      zBO%U^5-_!-S&QoA!d<R=5*irN!K&|>B~?J4A{Y|OwlQM+mdC&f4E3gE@KyTj+iMNp
      zlIeDIGjtV?BB`H{1EytqgA6^Hqd~K?4Dk`$;EiB7E~5!@5;3&NXhu6jER&s0B8_Jy
      zJi~D5DAY2Z!}FA~rt91dvO2Q1f)MqB3<(KgotDvvgphMqMiS=&d4bQ1VxC}VDVi3a
      z@Rt|3Govk(I74gE*0s{C=9pq0F2+Tj8TyVSCpvg4cT6)3hFqq&4R*QiJEr%Zs`=iM
      zx=P5MaH_I|9K*#*x7@H?zg)H*j~kO^!E4&q*s9LU!bn0v8?}hdP;&?dX-RV@_^KC_
      zWuBpl=2H$|F>Rlcja$K%lF8Q2n2Z#;5?*0ATj}cwd)n8R#!7sdTVCWQ;R-{x;x%Gh
      z6vQEy>$YLuG4<Vf_MuIjXTOXAyhg$oxhLvcs99tZd9+D*gL<G++=94PlfE~3XP7RQ
      z;YI-&8buj`{Ur6xhzu3fnTc{#r{<?-Vf$`2IDFY&p{9wsLR))Szv?^RFR0#<(TmH%
      zD#{qeWrh=(y`G{GCK)c&mYraGM@9x&VNJ^zN0v@y+V<Uo%B3r}y+}m*8fQ3zo&5
      zk&@=RoYG2E9-+o*bJ5Z~-y!(SUWvv1AFqL0Ph_wk=SXdgzIw#bDsC@5wsqp}(!W*Q
      zR3McSPYunFkzaE#w$N;j{Oag`M#-%sr94EdlKT`V)^Spat>cuE+rXK1oWCCscF>rn
      zAixtEzoY<P;W!@A+GBLms!XIrg$uYye<tb}h8YOMBsQVUJ;bH0h_4~Qd>!D^+dd&)
      zSTCWA_L*p!km)M<2t<qWfaE>E`A<+EUyH5nBK)RGP)j7JC!)y*v_O-f`DkB?Z>uPp
      zA`0p`@_L!<IL-0_nMc(SUcE$ilD-sG@MAP>qK|UDx+PYWIf^qMzfCpWz^nIeZX!>6
      zgIk142X%UVM}5De1NxrqA86-CdYpc$($X7g843<wC>Rc_l2SG>`~i|8tN87;x=K#R
      zs6l|AsX2Zj``0SIRKz#BPj2rAHZUY8KNLxA3;&-~<Hr0xsdm!)b0tdkG>HLzqw#kN
      z^#@MjPxAPSJpQI*{-;XfP$Y3IO1URYSqgGBcAXxJRl%hQehuv*yf=g&(2*=rg-=BI
      z@mf2YH6PZ|sUeF0X2{eTwqiY<UE$tNnxJN41q2!07xMODkPNPekZh>8QOSLQi49EM
      gKLj>@Ane@(VbotUfpr73^iKv7)3{0FtzdobKl4EmXaE2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X500PrincipalList.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X500PrincipalList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e7b6e997deebcdee31d281d63a884ddb1b5af57
      GIT binary patch
      literal 4562
      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
      Z-sZwz<l9&HD<ISOG=G2N&yMEr{{^6A5>x;H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8676d628b6ab1803a386f77f9d901bb2c6753f5
      GIT binary patch
      literal 5311
      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
      M@VJ1F@G(mM5BircYybcN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a45271700a2e23c691b4d43f23d7afdc56ab349
      GIT binary patch
      literal 5245
      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
      TA1uUAm<U<y1@{Piij4mQS1igM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509TrustManagerFactory$Manager.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509TrustManagerFactory$Manager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcbf57006a7b349765b67282d9e9d42c3b98df6c
      GIT binary patch
      literal 3262
      zcwU`W+fx%)82_D+WHl^>22kQ%0Z9TFv}kLBQlws@7?B`|+RI@%CaYnS?rtL3i|tJR
      zkoL*fI#Z37sqIrA`X6-K={VEJ_N9I3W9@gABqSJYa59@cm+$iXe&2V#vp@a&?Nb1U
      z@woyQLo{XNBe!^gFGUPtM=UE7$(h-Lz97uV)uThlr_H=&U*rZ)3G)os?5w%mQ<^Gp
      zGqg$FNQN7!$ffyPLbDZk8TQm#TyKa$;f9vZnifOrgkvFZ>zPPW*fEB!Nj+t7J8uex
      z!?n93t5Zv8c~iHSBbqSnh+}!ou@^f@`d&M&TRlSz!xNhiPU?^7hHjr^xDk961J~<e
      zl)~dQ&~NG*w?!;8!{8pzE{LsQcwI#^R3DnquA&7U3{An%jDl^nwHE$4Zl#F=A3D)4
      zwE`*>Y*DbYMEAz5_^<=JrR6;gp<pBMuAd6cG-DqQDA>=?Qj-G}-RL2Rd|`p1vt+KS
      z0AitQGOM~F68Xh>VNUb;3}w<kk=1x+hMT&amloYJRSYAqz;n3@DPf8&w*|rJZHRpG
      zE7uu%8k6>GX`$U7&*;Lir^~LQ!G?TQ(UY`I-AFm9_nltSM9$W;hNa*zLth<BRaPp}
      zKFa$WDu!{0L3L17@OZQ|*A0d(Ja4C`mvau~FE}p;lN4rwQd3s;r-VJGNhe|<ZdrLD
      zPi9{*)KG}BP)1ao038{(rQa1!{l*o%&2ZrV^`-hL72|kEW->cwntYidSf;n8vg)iU
      z2yekz@;rGVe$|IKE+{xpsoj9lNp7cSct&5~R75H!aFL;zqK_MvO+87-#Ma4KJsw^#
      z7xQ5Vm*hd4Waz3kGo3cGcVx-O<hh<==q?xhn$0DmrNWK0>%%li`bxRUItS39$5Jti
      ztJJBuHKAKn$h~#hs_LCmjNo0yH3{!JLwj)ju0-}O!~QyvN@^#$$rpu9mEpq;yf4js
      zK!sCnMz-(JjNG1Ap@HhE!xHwCDA385)qC2I6wtCecumU1aZ^PKX)4;nDu+bBS+_xz
      zIf=b&a}8pH37ZmDJ|j!$7Q?|>g+w-)*V1E|RF<ac#mWg(kYO0Am5mz?{EBb|N0k<x
      z%)v$=RaEF6ER+`sT|@E6&SqGgSX@uyM&U?}9GPI){ZiVg)^ai`Y75=<1ZyiqTGhF1
      zK}RMwOO?}|a|P0kG!%2SqA!`vo0>SI%e!UQ1{cR6X_eY%+%SYWp5c}ys0rUAted}t
      zsAH8DsEJYAqsIdm{PJd|@mBiKa>3WuChvC|d+2GwYqZl!qc3T$(EEJ2{~_AKMfk%j
      z=$tEJ`$KdM{D|R!sJH2uJK%kK%yS=m1Kv*ekwo|#bgf{=+#oAr*Awh@VfG6*>vVT|
      zzIy)bf#a{2{`WYRe<u$=6N+EZfnU*u-!On@7^U|?+TBNZ$vgTG1e{R_VbUK!JNoHg
      zMl*;*v=X6RH_e6|+;Q5Gno78Tpok-DPJQ$S{(u*MRyj~A4ip?E2h15A!<!_{@Yd!X
      z{6!A_ZrH(bL`!^+J98i)Ih4;6P|bXY(I*&l;Rl@ly5h*|2>#<ZQCF2pPF(WxU5}V0
      z2#6%yU<v=3$2ga`kJhMr1w(TIcM*y2S8#c*|1pw9%thTS>RG{!If<Z%_oAMFr|A*6
      z)bKhQUa2t{a0fh(AZG7lXZ3pZ_yHksQK2<MCv;J|fo~IcQ@Daf=gn!p8qX=T(f@P$
      z;BP`R^Pq((*v@?P9jBs?wPKk0ae{SVlx;(t?W8+rH)h#haJC;B>&7DMb-1`mDWE7T
      zgc}vYjS}H5WROLU_-G;74`C9<9x5#hHjVml7I_q?EJtbg4wi`NSsE?lE{(LxnhPH}
      RTz`yDoU}9geTvWE`VZY1Wm^CM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509TrustManagerFactory.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509TrustManagerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dda2c145703dfb6d111adf4395c6a0513311802e
      GIT binary patch
      literal 4623
      zcwU`XYjhOl8GgQGlUbGlG(a#2h+HK1MbT1|6cb~h(GVgVgCVps*_~_#Co|ib*+6Wo
      z)@l)IQJ}2_OR2pWthEZr21t=$5n6k**W)?;({uW}fBUoT^UYqexydCzcD~Ddf1me#
      zzkKxH^X~(=8-G_&AaGCIN``l7gW8_3rF&u5HNy$V9yDUQ6Mp=@wfA>AN!Qz~Sz26o
      zHfmANc7_xL1XfMtnT9NqFa!!+Jt0uiCaJ@wX2ru1&oQicy+G*UNTlV7=9aCU5rJTH
      zQ+BCDla8ZXo<Kv}jT^Trv!#MyL)0`Z!`nbJ$}74A0?l?zS1?bYGAlUj>QrZVLt(NT
      zwiVu_dmWCQ&>e56$v+9=R)M*FhN;)m7tPVAC4{+{uVMif3KTbFbSx~N>SaY&2#Zjr
      z;5LC}6ZJJkqq^%h+m`3prl~tB7UOmSHD-4>#vs+j^_alD8KF70@yoP%^%Z$qxAgAP
      zqh7s&r2@B1Hf9zC?od&LVg+{!ESh}(VA3!d*dSI4%#xS2{q}$!!V;`jaTnGwGlQC$
      z)VK5r+*LkRYsFOeLs*Xa@~2Wo6{;C5Es@YI`c*Ssu%;YkOsWr}mN_(y-XPX8ui0P(
      zagQ|B<(~O+rJ{RP+=tJQ#<SBR1QwJ}W0?%bXH_UD4x&zCPV+^`;|3K$6bsC2Gc3J5
      zInb*+om#J{OBmZx&Fs<~L+<^<5DL*Kk)RS@UcccoWjBFZqP0}F;#5fd<=<1@9px20
      zZ8KM!@5)9Mvk+47d6JL&+Dcr-H8bLAp5C%2swdKTewe;lwzpj3*3eAjDLod#Cd^l`
      zSzz(Znpm=F8(YaJP*pz3s);Ujuv7+gk1o{9+6(0ja20G7SUVBctroFm#G1^w&3*qs
      zjyuPupp#u^YG|c*M%1^n$%^*d4&_r{-Hj(9+d4vs;Bgh**v>%3b+4JoF#3!rqsVlu
      z$);o6cnKX}XdWf8{}^^iWPCwjNBPZQ;=0sSbSZd(R!x=Po;1yj#PM7x&;(XoTW$!C
      zqLK9~8{PoDzV2KL+&;NwJ)#dqNR_rVo<-=C>pX;Va4hll)ly$A_0@VZK0aCJP=eMy
      zi2(&Bt7dvxDlFLr<}!N^>3v$#^s;OT6<-3OJeyaomg{L&l$BjQb32;qMi4~*Z8O;?
      zXTzY1-Pj{A$K^E1#YUiUS~b@{i`dzp%64wU4sYZjXtfeaDt2^jAcP^z58|r=%V#pK
      zLv!8TwiA<G{TUU{;%khAXE*n2PLtzkLu_J%ce4!C*Ht`^7kFUW8XNZFjOkRHr?S4M
      zS&q0q?3GA=kzvXAu(RK>cgrs6XMR6hv45BJ3^UB;`lKFfGh8o(eQ1;#zop^;US>09
      zC(vA3Yh~Hi?X$F4$pM}7R|aA>4&tzaLma!)5~%n#zC+(EeUH~->I43JV&Wvoj4i48
      zRTbaE5jJ?k&8vYHj^?2m=K6NY_L_?C<5(JId3@tj`_tg$SKY*hu@A>p{1C5m)@iZW
      zB+c0=yIs2eV--KaPuZUOHFvYDowSRt|I(pt!+2A{i3yK@G{1_U;Vq6wX|YK#2+W@l
      z6#vjS<!u$ez&p&p%K_obZI#C-Rh+_UCdsoih$%1cna0d%&J>&xSbbexO~D8)%K>gn
      z-V`{;X7}ll%p)G<Q)MD?yB$eJ`*U+9M=Ma|$_gQbXR3P!A)a9StiF+o6%Y(^fk6dj
      zxeA(8xRQvk<U+%y`h{)NxJ`-z*{7}rqI`yc<!XAib6-0E(g@j5^9pXfMtQkthDv1M
      z{CXvOl%3~VD3=;0yrS5bGtaArX;n8|4_-FN|0g1L(uwLawj3Wb4AojGjIZog%hDYm
      z?6S`&86w=tw^SkjI|}eI&WAEri{%^9{|5bUfqZE3Tg3frsHC66-9NaOe}_jgx4Yz)
      z5tN)o=@^!r#<Ec?@Agku<WA3G)d<Q@VOa_lB{lrXEW_i=yZMvCy3<&HbNu&b`Rh;m
      zMt_dKwKN!fmCQpYO3=d>`3|)4y9L{^6}@a|QM|<O%g}HL?bzURf-Ww|Il7KtA>FSW
      z!2{!>Lq4I&xDEJhYMKa5c+ih#Gakwa*utH>TUz-ZTCQTwC^mJMw2t7Bi-8Mh>n@bX
      zk#}=~=lbdJn1n&xiamM4m*#}GQ)mG?{I%e_MXGs`%B4w-RhJMsg0jj{Jl0)VHHJtE
      z+eXlH1}(!_&C4$yL23H3@B(&bZ)T6;(e4rSUL1FEv7i2@Y00zH{Tx<tJg%pn2e99_
      zsx+-HW0hP*5u-iQK0VLAK51WpMQM~LN~^BogrDAirgw97I>GHVSD~E6uJ)R<u-mFj
      z+!T_T8&MbF<%&@Zb)Ule5q!BWFpQ<!();?%evaJM_?zmIujH8PimJ*2WkpvoyR0aM
      zr-%7}d<xGEV@+LP6n))gff0P;;!NvN>|;c}xw$HZm)eK1zUCZW5s*>?l$yeKkD_=O
      z%l-Ayx}vh8OW5fj&8aRc8pF;Mez1)^KN2|lzbom8cc<{iw(9B>ettpTzdMHa(g`@p
      zNUbMmHX?<UjP(nd??IgPzsGQ%xR6=dj}`nqK>AmRm4nQ}A!h0@mT~^C#H(1#!M+Yh
      zDD4=f9p}F}ucHfZU?)!SiTEZZzlFVco1E{E>m;d8lj;m_&T)61dPljsfXjFvzsE&<
      zOpiaoCHxZ~;9vL^{>}UU;6t$xS9}yaFS9F3vnb%|m*nOX0k2WQMdF~8dd8UhLfW;J
      zl0KmA78X%fF)_QBrF0n|^6W5IS8$c9<6Qk3zv1d6k@OLMODQROZ~(ufl*_1~WyQSx
      l1Pk#8{E<>V&QwX7{!gSYz@L32{{?^b%T=%s2>cBN{|7JUB2fSU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/CupsIppOperation.class b/libjava/classpath/lib/gnu/javax/print/CupsIppOperation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35b2608e33b958731a605c5bfae8aadf18d011e0
      GIT binary patch
      literal 860
      zcwU8)+iuf95QhIvoTPOVdJLtUTFR*{2n%ruLIit*T)A}=yOy{i+61e(N^Q%r5wFD+
      z5*IuG4~3X@>vZW2H=h0ee|C0uyubha`~~18p0`kA*g1_0<4k-N-;6Yi;@mKcbY`ci
      zn}(Ulqa<!YV_1<H##F?ohC4nBCpk&x$-o<Z;Qq+s{oaY=GccQ>V<zz|7jYhlX%W_e
      zcZ^|mo;w)Y$37o=(xB5fOQUC5qa)X{`yVS`+I5EY(zdw6eXd%Xdc5iMJdc+Z8w}m+
      z6-!&1&8m;fdUK;yRqL51ANZp~_kF1^RQiw~a`Q@GtaR_{@>19T9ZF!E7hNsMsmup3
      zuu8FAiAQe0WoapP7@BXQILhBL)c5uS2F*-9hdSzb+{Od!GAuh$93B_v<1q8Zcp5US
      zImtv!1Cd3NFGVf?63rNPo&Wvb*9^Ls6xk%~M{;BLdcq62o1P1GM9-#!Ei}+1Y7y12
      zK)k51PQ0XWo4BL!4dP{mSBO^?UL#&tc!RjB@J-@Pg>MmWDSVsgj>30|?<strcw6Be
      uTGixaDLy3S6-7p|aqt6=zLzOa=&Mr%K0$-PQ(CnzlCXz;iVO#3=Ci+BRhe@D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/CupsMediaMapping.class b/libjava/classpath/lib/gnu/javax/print/CupsMediaMapping.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27cbc7cbc00a9801a2b5553ace885ba6fe014588
      GIT binary patch
      literal 4194
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/CupsPrintService.class b/libjava/classpath/lib/gnu/javax/print/CupsPrintService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2598d34eac36a3f03c73d8db3ad07ee5df22dc40
      GIT binary patch
      literal 1287
      zcwUWD%Wl&^6g`uKIE2vBLLa=-(w00577I26A)&N|O5vfT&5p&ynWU~<+p@=@{1vPs
      zvET#vD8wDxvGS@?N3!poIrp4%XKw!f`~3&NE9`4XF%<iDpr7*rztmmNw547TT>q<z
      zTEZKchR~2<s7|9y*VT_*_fud=^T0923mCF*P1}_37+#kesz|qm)K8nowJ5W=-Pc=^
      zO8RqF%58@H;iVy5X*#yA;pQBZv3vq!$kd&#$RmwH0XL9kSZ<iM_#9kxgm=O_7TH>D
      zI0m=c+%r`kFJ|PK=`(CM7M(+lAsu)o!_s6=47tD;p3N^piJ5+A-{rpl-SN5%duQD4
      zTA~%WuH#A3eJ=^r38ZLqD-eED_%8KKL`S6=Lvha|%=ppOEmEkJ$5y^{&V?as>Ok%n
      zu#OF~;U(-_3&{y?a4GtZ_k&?&Mv7sxFXVyfaT<WhCKz^0*R{4)z!N-;$WCp4=2Yln
      zctkexNwaoj@qy#jCYJfALQiU2LdLQSK+4E&0o!;+liLf)88)s^rP<_T?sl#tKs7BV
      z@C<Qes)<{ho~)OOgZ_{-U{FtnA{t?&pv74Zd5TUb&d@hksqViR;?^&UQ@Bm<Jbi%=
      zg#U;oiYgHf%eWIV=CFcQ;!)9E+zZh;tWlIEBuxkHDTPDIl?RO!hS>a>2xP<JW=LL)
      zAPKpK2Y49nYj}jmRKe7(#*}X;S8~}(b%^3L<F}A;Jwham*^r0Pk1l1dwVi3A-WAsN
      Q@I1CwLOHZn2`j7r0X{}PUjP6A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/CupsPrintServiceLookup.class b/libjava/classpath/lib/gnu/javax/print/CupsPrintServiceLookup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d5abd5448e7327223ecb5fe2aee90fc43a512ca
      GIT binary patch
      literal 3703
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/CupsServer.class b/libjava/classpath/lib/gnu/javax/print/CupsServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06f6c23bbc054a5ca6e56204b31d06bfcb64eb58
      GIT binary patch
      literal 4232
      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
      MA0YG<*XOJM1~fTI0ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrintAttributeException.class b/libjava/classpath/lib/gnu/javax/print/PrintAttributeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb2f527a642ccc410680d6bfc9dc6274add05edb
      GIT binary patch
      literal 1653
      zcwViPZEMp|6vzL!kFKk0)3w^oIdx9grrqK|@P#7CP?!c0rUjV}(l*pcmxMGKd+EbF
      zU;0TD90gza0sK(nIk#z7Z90ca>CL(Kob&&kbMH;Q|M>b1z$P}+hzYE9>_B^M92ke1
      z>shw1J>l`5?|W7=@Xh;&Ez|Wa$4(<5us9Jo=1&PMkNYPz1TrndH#?4JnLUBRuFmmV
      z*RVU<R@dnDZVRLijBdc*m4SDtW(?JibvgQuWn2DTfm@YHu|Eq`8v=<fr)_2sM=pz5
      z<OSlDYGVdeUKVMbVXK(M3^D>a-LlQc!G6>9o*K=rNin+9GP(`Jvv?jZCj3_xHBi-0
      zxwX_sDX@Ei>pGrqwnqV^p^U9J!i~`@W1Sw0{9XUt_(g7fS)d#(%$p>rtx}{{V0%1m
      zhotS!KNNG7i&-UFgsQBBFV3V(U@s!!KW|i(Yf}Z()1tWGa>w+aMW1f5QjK~Aioa$I
      z&wX_meex@j*>M7|Wj?U@DlSdAavQ8e-vGMp^iLv2Kf3JnU5N2jr)P@RXOX4xEX|(N
      zdYqm)wU0Tqb_7MOA7TEpOeoP<K!V0?8XuCtBg{d^Ia;|qNW*!Q0ckA|Mo4RsKrxBA
      z5MtUiXPvxS>tl%#in<=b*`<<SQ1(kw*^?Y~kT>Gwaf#SMT1<>di-~bbyb?uRnNHj%
      zqD|Qj5#1@oYq)*_aV;deG*7awTC4X_VVa^YBqEq^=n&pg<~t~OFPS$7nImRl#4N~u
      zW71-JTv|*|kiUj{NZ07e@k#XylusjIN-lnoknA8Jgb1u-BO-bJ_vDX}$(oG1@e@j*
      Bc18dI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrintFlavorException.class b/libjava/classpath/lib/gnu/javax/print/PrintFlavorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ace70f38fe112a2ea65904dc6d0dbd160f36a8e1
      GIT binary patch
      literal 1248
      zcwU{8&2G~`6ot<?CLxJwAdu3g{IpPtGi@=fK`fy4DngW$Y(ND!HNhygBgc;VSRjES
      zvETuCD8#*E69S!xip7lQ=iKj}xikL$<Lfs74<Ji01lIdu>U{9V-ib4egD`QPbMFqk
      zaTM>K^!#BGL}3Z0K=YJpX1^$~GQ0m5K%n$at&9YgUbSbHJ5etaKNKiF3c?_HOe}kz
      zsMQrPpGHT11qEENP{x8l!ESZS5V&Zeg!2Nmb`bi{(&Ixv-uDg%zCgVl^}IpXivynL
      zi)QjZAVVANv($j>)zfg44u?^k_($%q<J`BEQ)l3Xedo7&zJE5p#KxDY7W!a5q#%P0
      z?XJM~Y*;6u6#aiByuk@?5>XSWvW>V#r?v#1XafG@!0Vj<j(|KXj!iZCe)3XN@}}LI
      z|As1^D2;o*8}JP;>u&NMhhmN1OM%)sY6d?W`YCu^Muqw+&0JbH=v$E!SaS0VYM*Fk
      z;1cx<6btOY#4bg+sMBmQQ{ytO0BY1As!+_uoViCDj;zYf39ia54RnueyrAHYg05!r
      zDYS|vRtUx;#v2NMO^3g(#UBv<4dLI;!LO>y{E5Gn<6o27q%T!tYl7QyTf;v_5h1A~
      x#h00W%D1L`OC7{eBhJKkv4OjJCP&qcZbW`Y?c+2>Q7w)Y+R6kuTEJGS)=&R<3~c}a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrintUriException.class b/libjava/classpath/lib/gnu/javax/print/PrintUriException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efc7ebebaf87a105e6deffd78b2fe2d8670f59a8
      GIT binary patch
      literal 1355
      zcwUW?U2hUm5Qg8gEFcv5s;&Lh)>aD(?P}tU(RgDtL5XRo5UW>P*lbUO3t4sz>YbPV
      z7B4ihA@RZ=;EyuS95#q$s}13tIWzOlGiT5I{Pq0@fIGOIgeI`*xPf_My|spB-;=Iy
      z?(^F8<l|x6?)$RmCZP+g%%n`k69P-q@n)koi3%h<+ZwPTY67vqlLFZ~r<<;=a_>{l
      z1L;ctp+K=z`#V-{3Fwb{9XpK}av97aPgP3gRtl7zK@ykPx{^T(X@Oi_y7u$n&5`ZB
      zu#UPm<<xs^tJ|_X$>-3i`^R!1uvP!>?WwtJ;0}U*zvuaOr^)T_l*T=FE!Q#sWX^QX
      zEw6FQ>-2%5HGDlm4J|}Q1-7SU2R?P@M00L1XNw9&2oz+%pJFB?a4$k|@#~csTNW@b
      zT7`Q_Ikw*jhk~Ax#-c!;=G0eikS|{<pB<C*K`-#y_7ll(xH$7xdz?;_O;zb1hekh|
      z51Mw3r-Swc`R9<K^)j6f$seOVXN-_FR!>nds;8L$ssszP7NOHxqxC5jc!n(MSR~KJ
      zSca=u0+huVp{!*BX$rFvVmfr@I(efq!m6>xoZSe{OKSO$)UT+@YsE3fx(O$bYq+jB
      zc}3Ke#l)B*ZbT6`&nG%WJSMdy;>kJ0ZQT3^@m5Ie(>cy{jY@Td9b=u5%X$QJNRRN2
      zl<!f%2gSTQR!*433A3o~t0{}=F=a7br?`PiNH=Nc{J8NAh0haULODMwNM@W6LIkSV
      RjS$a&IV1iQDc)0A=5Mh3{G<Q?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$Color.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$Color.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c22d8e52f024fc24daa4be7a39d1247f6ab8565
      GIT binary patch
      literal 3306
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$JobAttributes.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$JobAttributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f94ab1c46aa4463a8b692d591305ad9c19b33284
      GIT binary patch
      literal 5932
      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
      VHB&x|--D~@L>}dY`=}hn{|BSdb>;v7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$Quality.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$Quality.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1d54d08a09f458b5610282785c2232cd83945ca
      GIT binary patch
      literal 3566
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$SidesPanel.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel$SidesPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..364154fcbb8578eea7db86711418e30693e1e31e
      GIT binary patch
      literal 3599
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$AppearancePanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1624662a83e79c54d1357607f24bb15898df149
      GIT binary patch
      literal 2445
      zcwUuNZBrXn6n-w@W?{RO6alGygGy@>l7><dETu|GQ7|Aal^V3x&E^^w!*1N&l;T^}
      z5p{g~;D`G5$sgd1&Ioj5#xH)-zu>q25XW<O6H2fHlQ7(Ka?X98bMJY%`TO7B{{V0n
      zZz^bDNEWPeYDvGP-%gbr)ACZYaurV6)QfhZcdS$rx}#f$nAI&&RM5!K7HoG{OskNZ
      z^6d;QZ<Y0;>8;)@1>c7<brJVo3E(5dv}EVTJkO~zjn>ID6~N70*%L1D9dOOOaI0+R
      z>tvggU|%Jwh_UF{%erS8+xHx-lW*KE+73~Ly+zaQ?PoZ#H-X%G!L&^8BE!k(K6_*H
      z42|P<UNnQ@5e+Rks3L?84Xx;82t{M_D!TBPg2N1lcb4&z?c{|sp&Op<tZF!dqYQ@(
      zN9dloyj=2D13yDgbdo-?%ua01_f;rHR0@4u!wGaVG`qs9B9BM+0LA7NoTOydm&;1e
      zsOUkjyy7W_fqhc6n}Z_DTs@(IBdj3CFj5!3w%b%h(JT298Wc1sIKwbpAK!z1Q;`hF
      z&T43es^A>Mx%$ZbW>YZ`@I0mA05k=|3>~$#zn#%n?Xst02<K%Ysp-0ca;5YYFEwsk
      zo^D!Hr%BmBA&hFch-ZTO22h40I{<-gTDSCqUtEb9({Ksn)P#CI&k(PnUoP2}u)LAj
      z!;A_pSKb`okv5lw<(jsoB8}(dX`g4{)Rr>L6fz24U})WSKMm8EA#>2tSIvT%A0xH)
      z9NWwfKZk7WQMrr}QHIhnQ(n#q=bD}?3OZoMHuU1W?wIm>#n>o^oFP?bPcmplKZDgr
      zroCo#rmDMIf?WgEZQ*h$PuG+4u%O`;Ir3eBX~K5qL{S)?$j=GqmT3ststdBk7G!@c
      zFf{3gAzc4Snyq_?_I<<DIlJr_V#4%uRpUJ)adhQLi#lw)sJpIk70|Y0dy-NSb{&I3
      zsk{i3nwq(k@wexSy2YOh^iwTE^i#;uAg7<S20699q=EA#4Ga*8$d{D9hX~P%2(5<z
      zRw7g*S?|aD*3lN<M0>o6KKJnG29CwI(32(G<Lfw0dQ|H1b@Y**lzM6%{iF{_{mFF<
      zZXuK<hUvr>hO!C1iKjPkArb!#gBy7EI$6`%h#K0?*<7IK}IN(DHRl)z*Km?Uq%
      z^d|oYl&(Ih#3dje_5m-(6C0S7rgSzG(W<-2l9cPOelD)iI*$%Y*w^5^jAp)qcD{;k
      z{x%Z)9Srk#k>>9s!|x!=KR}Lu2#<e+_xQ(H<7@bae}W(Rr}&wFh7JBX{^VcaFa9O|
      z;a}k@ad-RGxQ{tpBbmWnyhQODu!bABPMY+-jLsnYWMT9N%Cw(|Y;dhtgNxq?68GAJ
      zgLhJ~!0$rg-{K(u4jue^9OXawfwh1r2pnm`O}t(Sa;g%96JOge+hk#B4E^MT8~lIW
      iUvn@>#wip-9&b>m^pI8{86~+$GD*@TIY4p=k^cbkZk=)f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$CopiesAndSorted.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$CopiesAndSorted.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6dce1bf64c809dbc2b99ed0e8e1a107cd171cf68
      GIT binary patch
      literal 4024
      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
      OZ=#15q8`J4(DHvzMsyYc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$PrintRange.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$PrintRange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b2bfa93a1eb4e5cc28656b61456608f62ff19d4c
      GIT binary patch
      literal 4723
      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
      G!uNkZp#$Uq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$PrintServices.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel$PrintServices.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c187f142352d67c0192f94ce85c8704b346bbc85
      GIT binary patch
      literal 5188
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$GeneralPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ae6977ffeb5797038fdf9a0cdd67d65a84e962b
      GIT binary patch
      literal 2133
      zcwUuN?NZxD6g|7f7AOJ~3WPLG0EbZ9xR|s}Liq~BgcNF03aL}~D_QIvM;#-%lAMG;
      z{o7~gzdk}cQy^1j`T%{XPVcVl1Tz_k?eXsF?w)f$_FVbj|Nj05z)c7PoFP+n8@Zpv
      zbMZ1)_Z>IPZK+ZEtB$C7)rkkvmA<HL30Kw(bTJG>XM-1xTg`1~J43&Q2GW22q#jx3
      z3h&N4p|^Gj?UZFO&tPkWFWjnZ@!jc|Z(G5MEK&CAjtm$UI-$sG(285x@%&I$6i@if
      z2_|M3M$hI^M;9E|36~g>sdLVziws?PuOfTEaM8jASSDh4&q6N-8Dgn)(Zn!D3|wNk
      ze6sZSJij9SHBk;df8WAoyiWvWUy4xP->ZlF(LTd?YMnmm!b$9|-fL3Ko8<Zf3s-TC
      zp(l`G3wbSd1}I%LFvc+3K}p+g*~BQ4D$DB(xpS)2Mnj%et!`L|BVph}hFk9rKA{W~
      zlSnG2j0FST2C^jD4wy~}#KcrYm$T3V)4)xJq4xWFSrGePBQ!CCPgLfgGK@qe&WRUc
      zF7LUaaLB{_y1MijZd<s6+2~FpD8rQ#fXKEfTv62*qA+t7=CMG+5tRz1)<(Zq_gv|Q
      z^Xa!44J<W#TW_p7d(sUY&o!}#WfkoTL!6|f+~jfJz$$h9sr)Rg;Q^T=6>d9Kr?NuJ
      z_BdWMzda5m#@lL`BccM8<6&cOSNe~{ZcS2v1+Oe>Md3T@xoPZDjmePhL_`c$O_#6r
      zei>}j`bO(iqEW9<E=sN27Isumjzp$4&)<<XS*E*hYFa63Tj^k%p<9$m<ob27*_pb}
      zeYu!BUc)cTHAfeuZFgGXD7AH$81pp|1Trx2J;T*ANeOW>1}gk1ag)<Gjl<B}*2yGi
      z(i{Dwbb+g$q!m{krDtjdz_!(Ujh<t4vKM_c_5)0Hu)_VGnL2=-Il@4un?A2FbcidN
      zV~m!_HhzE!T2HEV>Huk4PpS1s2bexatVF2I>@j9a+4vDYKE$nT<}aiV@!4atE|zRF
      zc7(gHa8FxkYg#Qb3Xn-?z~>pVP8?!gSr<z&+iC&Gl2zlMI+G0=msH$*1aY1~5AVhx
      zH!;R9Aj>Vx@;)r{er$3ZMSc;__yB(9gZPCH;a5J4-}ohbK^()xMLDB@O`4bS6c6#G
      zwrycBstoNh`qJ4bw6CI+9!24Q{U)9PsyX-=3_gxNp2QHpu6<Y$I`Uz6qlm{%<{M4s
      uIC0s3ye3L$qo=`K|Gv><3E$G3BsUD-;Ro2HZiXLeo}~E+&7(9wh5bKmqBcwb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$Margins.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$Margins.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e39037012ac5f16757c74c6a80e39fde2512cefb
      GIT binary patch
      literal 3187
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$MediaTypes.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$MediaTypes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b96fcd6ecf7f7e69f756d4c9d4accaffc07e36d
      GIT binary patch
      literal 3821
      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≦vhFT<9{;mHCH$r0QqM{!u5
      zz$5Y`o|I!aB45KXc?v~&8mHwMydi&rv+}3-wfq_0l5gM-@=d%ge~x$LFYvBBi+{;q
      zqMz(ot`c<)IoLF2@c;&J8`)^%J8<Btw0p?=X~Z40!uWVo5rgdRGg!$(5nt?VK7#{?
      zv6!aeQG96>Uu}LJ2TtH#i5(MeFCqp({suMjx42mT4ol=)XqCUOFeP3xg`d7nM$j(-
      zEX8;6J<<T&M;d%abrGK!KUO+0e4vQ?596NFw1@}72g<hmhzR&t0I%bjq;KxCO{X3t
      z9@2C8dE!M8FAQU8)pf(DV_DO(t4VT5ie*iw9zXY9#R<pAr_Sa#QNu9eR)I51>UfyY
      z6fGSxu~<H)5;zf-ZK$WmKcZH?O-%R`nrMv6KjRwt7bN66*dqT*Z1@}cXiUj>;mE&Z
      zP`-yd<v(z@{3q_0@8co)Z#*IYgQN1lI4M6+A&se`8!Lr0PVa@I7^VOwDU2s@Go9{W
      f1x^w|(%-Afp4Y%XX~Xn%kh<MzRl)};banp&#Z*ed
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$Orientation.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel$Orientation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36419521ae5f4bad6f02d8215c2346d198d7a698
      GIT binary patch
      literal 3923
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog$PageSetupPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73df9933a5f9a977bef8ac88d0200b6b77a99bc7
      GIT binary patch
      literal 2129
      zcwUuN?^7E^7=AWOa&SFpM5xr-(qdYZBNEU`DHNoIqF_>xU~2r;F3C=MPI4D7m$rOR
      zM;)z>wtm$5$v;771UfR~AK)M5`0iZ-Nv8vo%Vc-&-F=>Y-*=yP@8AFa{s+JWgoY49
      zvSim&pNhNUeyZwPwwGE{t#lVHQFcnPHBpjT>D8-i!j@$XT@3xf>e@ZaE~Qp{JHxSx
      zEL!4LHF&$6?u0d#QP_>Gs;td0Jm<KUv_0Wjj@{&&?u>8sfPn~mE5a>VcCAS^*%?_T
      zKoe2KyJOX2;|#-xGpMCkEZg$t7)IhptWD$?x)z+G>;c7Y;1~=Y9M2o*#Q+13CvrMY
      zU`WFY3@2Mtf6Z}=(p?e-&vCa5oWzSnP;jO2<n>C`+Y06x&c&DMNu*n`oBmvbVn(N}
      zUovnSXBc{F(rY5m#18=_avIJuT<R>D`zNhq7$Yjkml-CGNYYa*w6#jsc>`fYG`zwv
      z)d{>+9y%^yM3I>WG<0i7GF<G4tRW8_qXALMKo4{c6AXjxr*%Iqww$`BV;rxmz%Mck
      z1qn`xdtPe6A)hRpGP|sfoMY0!B}@e;5<nSFwEzNJM%d(#Iu3=IHZX%LBpXpIQc!L5
      zm8xS?+%t)188yr`D%+n}v?|iB`3aiEyz=%cLzsl5wpqY+4T}uNpNh}G65b+npuu&k
      zWEHQ{u-%V+=4bn%q&TUXX(CEfI&Rb}o6_A7n`KE3rk#Q)=Y(si_lB`cl_kSiXBuKK
      z%6<Zy*TO)X)>oRVBK2yKqET{PH;`2|ITV<d95*Y=vf#;LR=Rhsf>df+S4voC=oW>7
      ztohf)YNzr(@_Ny;PTeiYCCg7r+w7RaQE<yPNok=hYBgEY@Dao5LrEF>+P$DFy`@fQ
      z%Y)Ko&>E^IDU;UdYtn^~Dn=TGR2}&}l>rcqsvC{oIj!tPAGOB;rb<`gem6(A5jA(w
      zZ+6r31cN&`W$s}(PquU0h|&0h8ppShpz)|0zq*aFJ@7oCGRZxR=ab=GytacklICAX
      z?BMcEvd-qCI^V^cPjJn*(A1b3m<nJ<e8Af#Sz|j`R@T`(j~Yz?S(2*#(~o3@+BxMn
      z{~2NaIePe)7~o&wEdLrw{tc%1x0vVOA;TXa$G^uN{sTVaKjI7i6CUt~c+4N+9pX4a
      zTog0X$WT9z+qi*M-?oN<ATu<_=tpY<*WL|6+6df#@4%ma$~pKi(D<+D<Bu`OfAjY+
      z0(7uPv>Q3xY%rg1Fo%gN`o}&|L>WV-4-WbN_x(1H52zoZZ5Tep$B2@+89t$YnEG4P
      Kk5Ydd(f<Llcs-v0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fc4db1730d225bf327c7e410a388d362d607cf9
      GIT binary patch
      literal 7369
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/DocPrintJobImpl.class b/libjava/classpath/lib/gnu/javax/print/ipp/DocPrintJobImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07ffdabc27df87b87c26c2b6b187af43c3aef187
      GIT binary patch
      literal 10253
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppDelimiterTag.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppDelimiterTag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13792445694d01ee144abc9791a3cba81eb6846b
      GIT binary patch
      literal 675
      zcwUWCO-t)Q6g}6ZR%1>5*4Ovcg$U}xATAZLwee9YNlDW#1g&WebtI;tO~t<>Zr!*N
      zT=)b0QR1B{5~K?k^KtGybLQMT^Y;Go3SbATX^aro+F{?g_HMm9BkGDUHbfK|r6?-;
      zfw&Q|-*vrq8Y*E*l8nF$+lJk|_FFMw$*!1A-YwZyBk#ISsZevxYQxR{Cs2VfdDIDe
      zu@}a5FX;OUUrL0T6T9$(Ei>$7-n5Dh`*=uFAuLp!lI5DtkSu%4)vRi*Qn4M^EDm9$
      z2&4NV6!8H;+1RWT)T7R&uR+0l2Gf`!WXmG-t^Q3@7TgScHd^kqyrAxNg~VS$HNFx(
      z!g~1^UE3q*qL+;D`HjNnDIs+$J3`Q^oqo6F9}B5H_v8Gw)aQ3%&$0&m;W5f6E!%}L
      z#^VXBF`h`^4CBcJ)){9Lc#6k}teqpX9NFcS<UL!@n0p#f7I@Zp1#GBru*kd2Ckaa|
      y2R4wy-!FkfX3CtNQ}3bW#vYJTAC<>%C4ErF87rQ%%0)s=$3Hg4zXQty_R0q|3V*@?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppException.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7f5c0345b5fbcf5d2e7978da0c74a21c8e1adf5
      GIT binary patch
      literal 733
      zcwU8&!A`<J5QhJSLKP7N1raq-Pf(1F@uV0I5>1GWF+qDT*x(v$n^Fv~<%z_D58y)?
      zXJ~^2QG1w~-TwbKGyC!R_730}yDDM=dp&2UKUpu<NcVi{1iJJ*z2$kAqps}*(sfiQ
      z0_9o7EywA9f#kV#WY7?ZSE{Cf(sUo}6yjJ;BY~tq){u^UGkosY{+-q7+X8vR?OJ`)
      z@+F_6OC@-e1AznMzlrJsg^Ixny>B@^y&aIOSFf7fbd8&41jK;b{16G0X06}M&|P5n
      zI=N|{!a|*ZwxIVP$TA~K0;#q;^t<+z<Xv;K`y8<u`=AE|e+pIfa1>QKolq8(6WSO{
      zuT;d4qL`u#oRatqD^#UJ5#?3N49G-)1}Rya)M{g7=Lr|2Y)%NpP!$ol${{~#PEWFk
      zwK31SCZ+KUtBB2rRf<?GT9+4Awc6nrTl27cGMN+DUMQQw)MzlS7#pK{d*a^t0zF)U
      A@c;k-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppMultiDocPrintService.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppMultiDocPrintService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf6f34e6bf4a37857a52305d566f758719813de0
      GIT binary patch
      literal 945
      zcwUuK%TC)s6g`u;aYzjzltLerhDY0A2o{U3g1YHL3N;83io|kars-6UZH;ZpnlCC6
      z2nnQqKtHPDj)PEBuv8ZIoVh;tanAMcKNr6Mtl^D`0>g4INS*KekRLgbl0o9gD013S
      zw3+&e{1AHEI@l5FP<q0I!LX2%Fib2l)c+>kRgS?(W1$!(TupU+9`u|}LX2LEp%n2r
      z{&7HHT?R6F$MCi>-~}RazU;JHx3g|Xmi8DbACEi{B{B?R6Js=3j)EH+4fZ}f5ET?r
      zvrxgq5imTmV4|$iV+$iFGgMs}h^@5W6>67veW8Vf9{2aSlKOrfG?H&JW@x(iaGLZN
      zQzaS3h9xtUwPgYCQ{i&vP^ieGDNhNWh@ny&VVATvmfYMu5Tj*cj-heaX#Y~%{m8GN
      zjs<PWB7@t=Q#7RHzqiy0Q{{<IQhPR&<IAc}#T+f6NY4WlaICjN|MRil37rLs)5hqu
      z=w{Gu6jefB2^(}y*vl);bBx<7XM~$)m^{g{ru4Uru|X9-Q?`p5HZe^Rdyt7IcnW0b
      z8J<&Rjb^B8Aww?+>8WP%lHR&!izd{p+9m4ywtY$sPceCp`JXo}OBrD|Yhw+_*KHVH
      HWvtg%!)))f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppPrintService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebaf409b67dfd9e69c85f9bc1514cd8bc754a5fa
      GIT binary patch
      literal 20077
      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
      P-xjNCroRd*`tbh%^2g(V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef631bbc2e260e75e0fb717ec78e3bf26f37e0df
      GIT binary patch
      literal 9273
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aadef6cb135604c20c441c52872401eb0862b19d
      GIT binary patch
      literal 8604
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse$ResponseReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6d3829f4c4b1375f8e146826fbfbe1d3e39a270
      GIT binary patch
      literal 13159
      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
      E07llrV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppResponse.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0653dc80c975eb095cba899c9dedc83988d57ee1
      GIT binary patch
      literal 2476
      zcwU87-%}e^6#niK2nkz$qy=ehF-2NKC|$8?E5Rzis;L1gp(vu_Cb@>iuvvHScFI5C
      zgX53tjBkDDICc8sj8;V)nb8-YeDV+Q*?0c{9nZa4k`Q+W9yn+3Ip4Y8{q8w8zyJI5
      zF90TBMWHb~R<?a(%e-aYHXPTog<(04k#(G9?m1Q4<55HydS!x9G3~OkRM_H0!O&5u
      zmdo5_IF(aDUsx4Gu340nQ?U#~o9|i--L({(3*+W;mX`IZ!(CHYReQrKF|a&CmnTf&
      zdmF`Si8I7q{=UyWQ441oj@J>>Lbz7J7u+LWO?&4oPf+PTbqek_rybj>7Mj2NecSUL
      zr|Jq`YF>|&Okpx;>oW|UQ^ks9TjDAmA~m{7!C7J!!$~|E#VLlQ)U8-CJ<l=4rcvSr
      zzii}pJi)hXr`K^BXGo{~T7G4Ifnhjz6e1G?-G`2LbTIVfESoR-+Xe2fn1u>ylE_ty
      zW@XiME%_ZRc1#5%6RE=@=SNrLXu~-j!x)f-pU@FSr}Rd3#1M~SjAU)-H|@ISjubJD
      zG|tJqi#oc|BfTee^wqqlboAD|r*$OIL%N7fi?lnNJED>3ZhAZ}4nF6U)Pn(Qt7>Fz
      z#}|3wa&tQ)^^VWqE^<fSxEDnx5Im%QJuQmoiSrRGMh={1ZkD(k#}r<W61~VUk~;DT
      zQqw8S=$OS7YAeTdWuaQI6Y~t0>ui!GYJIz$bc1kGCd-AQ>3h7CEbJt+OZDtHCh?Nw
      z@iId?&_s<J2|}Pu(@GsfY@)b+aEDUCMm>ghOX^9z9x5<3j;jQqyFKdEEs_zI@k4bR
      z+se9SE~x)#HdCXmW8Y1&rGq)n&Z)_gnY4WU@PsA~z|EsQ&<t<RK0$#S{~vq3EZa@J
      zBiT9Gvg<l@9HWb)KwdpJv+A`W8hIJt(9wlBb)`H*_!AMOP_1<%snPWri7M$hjuX_d
      z`Ks?0`87+<Wp9&!7v)KaPS&=$J1ZXmS*iQ5tT;=h+UQ}9V^F>Tkbg9=%F?(h+Z9+k
      zg|alB%Jv4fFR+Qg5-*kAiGB=F{YU6)jI65t9R|P0&_i-HBq2A}$h}2dzei-`Dkyar
      zj|adnh@K>vN$+7KJ+_PU>C?MNrT39u+rx!jj5l1P;Z8K%OO4Hj<;k=U5z#(EO#2w!
      z+9x=veTot74h-!xOlqGi63N<@cm~fZ))}P<Q(jC_j^Hw`kbREUA{3caWIrH3LUw2$
      zQ)@){>cWMwA2Iy^J&XI8TuaQ2@8R074=F!JD)u28@EW4}(C!kad+5`?L_)id0qrZ|
      zb{}W72Z~d=R=Lh;2(KWgD)nOli&QB=H?@Qt#GT<)EC&J_WF_<V^ba`yZC#2Exu|`k
      zO6#?Rpfp1sD<R<2*Dc_mLcuq&8Ui+2cm6FD{8}h@ycPUMDEReI@I)*4&rtAM=$YSW
      zJ@a3o;5YGB2>9(*@ZX`}cS31jYNh>8DA+_H1YB$Zw?#w18o2uZF3ON|$mmCgVH5Zd
      D!yx{A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppStatusCode.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppStatusCode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16ecc7b8b2ab7c38425f37e03009fc8543f7ba57
      GIT binary patch
      literal 2084
      zcwU8-Yi|=d6o!v!(m-hGh09W4xs-dCZMML|F0jC4;-rSjIM|*@-7lkQH)4ajY1Aew
      z{uUAv5+C>h`=eI8o>r}$1o0&^kNq6`*mLas_y6ZFM6^b#M8_Cid)pgU-ev!0?<@V?
      zZf{WO_WKpl@9RM}8198Te|1V!U^H))%68U!TalaZI$HxqvpNYwu5~?$Qu&$@6KD%}
      zdV7PcH)v<u!_E}uAx5j7n2JU$6|bdIr8=o<BTNDcj8USR7_My;V|2rh3T0f6L}*0Z
      z7;&+P^I;@-Y*MZiMy&?5RPi?n*9QFsWN^;wuS-=GwHl9YFJ`*z^~TbqL1Na?BErD%
      znzb;;#fg?w;?I3$iqX=T(vn(>YQ(L8T|DCnMl`uh@*In!Ioja5OyYd#X+{fPZ$rlU
      zkR@!B*Kx4y)Fy8>QX^#=$+%(N<BYCPblX9ca8EtKXvI@&GEABlv31SB<k{(@)spI9
      zf69z1Uc}KSvfnwMLXU@?WOUODOO!};xXzn=T%KXH?8)JJpfsP5&Ftt>zgawmQ;cqn
      zsLhr_*$Eks4?H(oEUulmSZjVX(b4TYG#9>U26^otnTseu%~hML15?C?t2l@bl_J?Q
      z<0`VnRbVD9q=>4&>bVv~$kQYa+JT6I{hBSJ?w36eZxgqsXv^O-YdjzDFg=w2B~LKC
      ziSR&e962}!S3D;_X4r~W{^?%Hs{Lq1dmcQkn&=JNQ5sDG5os92A&>U6#35Mogk};M
      z(Te!d&f7`Gmxm)U{jA&T4xTfbx^uV9s9^8LGELFz8EVivqq(Tt>%_x<Haoi}+uZIj
      zT8wtKvh8-Z+qHbqSQz}>-9v#!-@SOBGAiqx;qF$a-pz;edRJ{Mu5sjpOYkZ!p#r8s
      zC3_{(aqtO;%ixm^&wytgJ_Vk0cpkjq@FMuM!)L%}9X<#C!Qu1ZC5JD7E;@V({G-E{
      z!B-r%>$&FeGWfc~H^4U?z6HMR@E!17hgZNqIeZWNv%{<4io?Hv*BrhNe&Fy!@UIR(
      z0zY>6H}LNcKLI~=_!;;Qho6IAIQ$YEI9vsX4%fik;X2-q**e5ipydIc4A0`qCwlcE
      eS0enD@g(|)KgCbf#M{iiL@`OSf7PwreDf7Ou$43b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppUtilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a98c3c3f2ef01781aff46ff55e65acff9df4c85a
      GIT binary patch
      literal 15597
      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
      Rj@*XhIoXQ~WKt5}_&-d3(98e;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppValueTag.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppValueTag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75b174fb8d078b5b3488cdd6caf4482d14b5018f
      GIT binary patch
      literal 1278
      zcwU9lNpBM|6bJCX+mz5!sA(ySS<|w#Y@sbJJ7}6X$*9RpnRr@2LeaEDWl%_>HbDsS
      zA&|IZR&n9N35f$o4tyxY^8l5B1Bb-^`Pt9U9)J7(`3rz4TuY;e;qY3sn|%;HiXLa%
      z>v6M_joa<4+iovKjc#2<YiXnyxS5b`M9sCVzw)5I+F{rhdev}o(GQf&Gq8Dv?YUNS
      zqZ2hd$<kihgEOQ<Z^84IJ;Py!t)5?7a>}7J9-*-7DOr?(VTL&G`(^1Qv&R@x(hDo5
      zKhCh%&ncNxRTa2iu|}IO%A8wpW!}WkQRcj(q;e}s<|&4OKvw;7s9ZnEHqEdjaJ-`Q
      z3)Yr148uy^Qnh7Qm1<>*hfXocFiR27smOmLa}1-KYy43C5p*cHx$N&C-BEf$-d^^D
      zq-eUf-Y{@YS5m#ytyOa+`SSz?nwu**K~*ZlB7FnTQDNYe|43P47^={rYZaMyotnD6
      zm<+oNTdu~<xO1KMn3!CmtIW0T)d$dvnL%XDeGQf4X5H&PT&b_CXr)o7^OjqyQDZ4u
      zkBxr~raJfI4TenlKhNX}ogm)$Em}7*KY53t?~xgyShdw%U#%BnlapKP&YGO`7^zOG
      zdl&Yh4_ioSQV+J0`z;TUw^<$}Z@0XIJY<=ZcUm4Mk61SQjauGK-eY+$d7ouL+Hd&)
      z`Jm-P<inPakTaIY$m5oel8;$FPCj9If;?&YB>9x()8sRj&(g2Qd|w)wGVhyOMs458
      zPniCgOgT^g1JnY~kiv7!Qg86*B+TIgwf(q=OTQ9)rI{x7RB*1*6?|BuCHRO&EO<s^
      zRq!#5yMm8vEDL^4<EG$K8ViC?Ye>OoG;Rn!t8q#2IgJ^?9gQ=B&ug3zJg<=vTx#qW
      zyr3~Ecu`|W@RCNq;O<NGr9Sk2*sS|F)dswv'@UQ)fUP{M26!5cL27LV}`Pw?J4
      Q(^Fig>jCwzBw4Qh09R+r00000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/MultiDocPrintJobImpl.class b/libjava/classpath/lib/gnu/javax/print/ipp/MultiDocPrintJobImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4414b6260b62ad15e08e0bd5e40fae73f6ac6028
      GIT binary patch
      literal 987
      zcwUuLT~E|N6g?N#ZLKJ}3NDCR1d??Xs?Tdo3}{?ajA03hk8O9djOn&xJ4N_eK9Ojm
      z@BS#`omt$V^g+{P=FXjS&$%DdA3wi*1Mn0Z4rU0QQC0;XqNC_IP=(BNAe9Pst5nOK
      zJb7n4Z}PZ5R;hyqVXY2*0oWw0oCp0)M`%8inbgk-VJEDk>?>u#15q5wMD#)f2+}AU
      z1q00&qZ-e{143gv9|{k%xH1O^E@3{DnRr``V^Qo!aViL{Fi)cNAS$FepE(=)P?m&l
      zZ8CM;=n<T9k{n^<pK4&0ibG5W7joy0sHiMI4GEVl1EJpu>w4Jx!y9Rik1H(#E43#+
      zR-)7|etQQ(+qQTwj}xJ^%(K$L5@Go~hmD*9T-+gSTD4)G_*t&~6QTXGQYtUB82a&v
      zFS!9?EHWLLh%FCo+%^5aM_B0855^sz<xg0wuZy#sR>Pxs^1pR*{2;H2M7)w_qDysC
      z+cKP31@Q~vPV;Xt!#h6|UN7@$9}WHhxBKYv<|(|-7BR=G$2+ji*d1JDt2@Er8s-6O
      zUB?Y(F;)vVE!xE`wv5sO7TI%~eGNXft=4P4nKjH`(SF}rKE=xSsan%A?OG*&f|@FM
      RxX(Va)+!#@3f64o`Y(OU2(kbG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/CharsetSyntax.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/CharsetSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bda6259ed1aed3c9342eaea752d8e05db6b20baf
      GIT binary patch
      literal 1048
      zcwUuK*>2N76g`urc7wa6OG<&_vL<m`Q(ns^B9M?mK?;fl;$@r;i6h5OopIIjDSSg8
      zK!Q{PiRB52k3w9Jt%R1oAWQblz2}@e=Zt^-{`?id7Pd5G7_7D**<HTR5A1&E`qFm$
      zeVa=ex=tj8UF-00AY|jvm;69Oj$t+i+aCAZ_A{p|T2jLV!~D2f^8#OR#}gWKh6UAd
      z1G^zYmwWEpxWka&=UznLVtq_(&``g<%`kDt^<8<7VX^#gyV7LH)q-77Ko&Cw&S91z
      zTdp)U6d6{>_?^h}o(E(}gpUqdqA%UR*RepVYPQ+qho&D$(-Edm&;sVL6w4WtU|2RV
      zi2}n+-Sx#z)N@4mA~|`n9<;dE<m86-X)z}|?to#V{vT<QQN1l>GYMj$TsbQWy~78c
      z*sb#Tq<|~9rs3*|Ye>KbF2khk#9qX`!Kv($o7%3tDv-CbflFA8rK$$5;|56wPWR+p
      zqy%coUZ0L3gJcRrp%Fx3OFVW}7$+QU#{AqGjmRQ{JTzJr;~eRK%Oe+OOO+|wy;cZd
      zxq6Ig>nEnZVD4pc{uqnjs@5lzK2R@%^YmUKCUBS7_o3qf={-aVHLR$f(!d2=1k@^?
      z#poe_=_Fh2X@2!1O7BOq6RKEOGDZSOWmueJO1_<v^_V=w+R-U~^Dn+W;!~t4f0xi%
      z`mR_%z}_LBJ+i)oJ&o1YhqyUJWvo~vi-1F+waA9RG~Ot6Gf^0sT!Dpk(x0Ze8&u2C
      Tdh-msq<`A(-kEl7g}U_zzH7?Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DefaultValueAttribute.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DefaultValueAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57279beda55e5150099e3e1a6abc098e65279cec
      GIT binary patch
      literal 263
      zcwRg8Z`VEs1_nb0ZgvJHMh4^byi)zF#InQ+{eq&*yb}G)f&%@-l9Hm#q|%a9eV5d<
      z#L}FSu*96wR7aR7I|B<Ng8)dAeokUuy1su>R%&tyI|CadgFLcP2xH({85zXVQ%f9+
      zi}RB+6H8K4kR+5fG<^u@wq|7D3eGPrN=|jl%mHeV!s<LdkSRd7FfuR$F)Prsj6nCY
      PGjM=d44gociGd3M3XD%<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DetailedStatusMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a673700138bdbf7cf4b98b068f828b2d82d565e4
      GIT binary patch
      literal 740
      zcwU`S%}&BV7@P&92q+3FiY9UsRBVj#gfTHFi3#EX!ok}Do4TeH(ryX7m7YvI_y9hX
      z@oTAw!pX~ie>1c5ZTs>0_730_dm2IvXNKkKPkhKn`oNZ!(&b>FbERzAc9qbth2qi_
      z-G<`Ib?$`Ya6@Q_Fyv=RKZK?jsm9n+e54`Du)i2}^_?+9FQg^aCBs3X=7DvSTZZ1C
      zxn-0m9al+Huk}0J6y;)zAyVmgMI2!ylF$%iNY$hz>Ta(s>?UuUq?-2OEpAJ%4w@15
      zC>@6L+CO$KGb|0c>H6ApK4}fp_cxu+dS*x%LRGjDM&BMYWD3O@iHgY`hcFsp>byr1
      z8^7kk6*25EWV?a4lH;2z^(O8Z;*Gv*cSKcs9&!s;IPo;;!!vq0+J=4tFVX|jxlGk9
      z)nSU-;nDFc;xCkjkfbwC5x7AVRjg2!pTMw+6yRrTSSJxLOCv*Q+5ww^Y>A>b3#Zxh
      eR5I$f?tQuBWE{vbY#}>G-Tq5`SV+zJsNFA%POSt0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/DocumentAccessError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..810d80dfde7c05d558b4cc026383327928bbf4c4
      GIT binary patch
      literal 732
      zcwUuJ%TB^T6g?wI5l|FF@sa3GP_ZE{F(w2xF(JCZxNtYrNgY#KGMy6mD_xnm@B{oP
      z<87&k%Eryy$2s@Rxijw{uWtbA*fuc7P`BN{eB=W@H2X@r+LZmi$+cFp8)#vkc~;O9
      zu5MbE@cnb8JY^ususc2SO}`OC-5I%>4-KRkc4o7hUl~K{M7mO+GVE2_A=z}eYnvUy
      zUAr;v1X?;~+q1YM8r55dWXro386=R+!9bcJ-<Gbp3VL0kZg|%r)j~wS<w}Ni+)U~R
      z=`$R+|Gja8VSd1!AX5J0l9q5HcN28lF+<iCy2Z7yJvCw|R;p7HEr<I)aSY;I@g7O6
      z{=nla(%4`q-N(*qJhE03p*Mz1#|xAtE@bGSJj4D`s7D{p=*?&o`us4`)6uy=)g{#l
      zipKuI;R`a)l+GbXXNDqhjubAiNZIa~h9%^IC|kw~iG*1JMPieGlw#Q$#Slvr*waKZ
      d6}7G-x!f3z<rvnm{%5rOd-QJR=w`&)`UE51snh@f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48b83e7460770ef543083b289591e21f6d65b09b
      GIT binary patch
      literal 1072
      zcwU`S*>2N76g`v8Zg4j@T?kN8)-0u_AfAdqP>NJ31f-w{5HI6&l(=&2;Eb!5PvIN-
      z01~7UNGwlCd=%o2Z8fyy30bmd?!D)nIcNOq_vfzw*0HW3#c;dhh1M?L<NH=Wa6D-_
      z{l3Me3>-U@!fJ3C2HdT4uM_f)XdZZy?`y~~%qWoMQp0*`?~1n6kYkt|RX1JV6Wn%%
      z2A!c0H5}h+iooHn^Hy~jvU}VO>1)<Uz$S@%oehTEUB`3eJ%;)6zwJtkA+zc4h&<Am
      zHgE<r4C!*ErNLxa9?dsG*L~)bH4$v>w?$t%zNe!=tdVx9#}7)LFH5#4c{G~GEEW`<
      zF#(1p0~5$IOxGPxG{T-Og6Hwc&AQ*_Zi|x}+9$<~>^cL6JN5ral?>}0AzN`Eg>q$F
      zBzl(*y2^FrbvutsxT4|miR*}m4O~QtG8At@?ha067~j}N<yD?MmJM9MvZAUQxQc5;
      z?c2L2?<4_GOZNJ74C%)z4Ed%X25s@!QT~f#ovkUJ%nC`RkwO+4txT0G{fAj(RMu3P
      zq}}Ui0$8dZVXF2MlV33V(wsZO{I_cD6Ba*EFNL%8ULYiJpU@AW<00`q!Xma%jCv6V
      z&fz=|t&|p{hkPbVR<tMm>PIZTKc>w^#YRM9!~+QpQ+X!fTM1ZK;2~BHPvKwuh1ZYq
      z6m5dvq3JYzi?ttM?~qL&*1m&1QEaP2Tpyw`Vl>I3LTC_Vqk}1QBlc3vaBQ-O8diya
      Ziga&KEk*0KF?NanwB5m2yH+%H^A9Ns)S3VQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce51861aabd2e9fa805f7fba16ecef334b55064c
      GIT binary patch
      literal 1632
      zcwUuMT~8B16g|_HZdn$oRTLEgQIxjS6~CpZ(DET#3yOir+m;S>&9bfAU4t5p5B?4l
      zpNwysXh|f|M-%^ne@4BtUE12#L?32%X6`-bo;i1RzyJLF1;98KCHNS|3#Ow!)E;YF
      zYRS?~Th&V?RkLkN&p9?%@A5|uFWWpny}MPG5MT%kh-zqNL0!x}<m<MCAj4oIQJtiQ
      zWsqyTWrp62%i`F&p-x+t_9Ua1?Ic5RQa5$`8YPTo>UEY0Xcm&u6^1~%nCCM5=vL5)
      zJq-TQ=!%3e!$3Vh>lnsTk(6+2c59uNY`tj8=s~xHeGL2Bl$H@ecPAJQD3A~m%RU8%
      zaF_~c`FxX}>baBAHHMyyZt|?Nnd8<yEoaa<Bbnm5W~^wIF4o>=z<!|9vCn1x+jBCd
      z<FRHqE^~_|3?Y)YQjK>Oxb04<Qe-sRV6o?J7bT=Mn-_}K6Y^m<#U)G|T3Hm6C?~6J
      z65akk;$FcJq7<=qbtW2{8nTPkED2-eWHUD9Y;15#MjYM3Usb^wjFUBG{V8|*xFELA
      zDL9V{v?d+G_JwGx@q*)$g3Gu<H%2R!xJexvYuBNc15`yMCD2h1wgz=0&#e%yGWf=Z
      zWK7_?xMs4LO^bplhQvSCajB95IinzkQ$qBd;FxdHx_i6-rd0rE7+8*>?{7I2)@dxz
      zXSQ5)taU!8i)+`{=0cqo6!a4yi)nPw@QEu=KZYR9>9F+dqSYqFee@oQZ9|EFL)Q*^
      z?r&r7*VqmsG}-?Ny|ItzjaP7R^#djPaD<+Ri3XTL04X9(BaB(vpTh~vqn{!Ns-!rI
      z0l=LNVu(sI9IKU1QI5!x+wjY7WQl~{Y2cG<d~%I%7{@(6)m;M}g71BeD(G&mxim^O
      z!J}a$cf<oHJg`5)nxXjysJ{k1iBm1m(PpUG78<KT-;sfSdN1!FPG%=ELV5+KUn3kB
      zQ-1|#E4a8CxcU~u@f}Ruk4$dknh5o~p{WYe70j-_^09so`{vgVGV?}V$^bPU*rGl?
      rr7!OpIrp3n{(`#q99g_{B@R_(coIXng$3MnyOp4MhL{*`yNuc26nkWr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/StatusMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..529bf4eebd030887d3395937a92ca4a54b83804b
      GIT binary patch
      literal 707
      zcwUuJO-}+b5Pbz?5fBvo)<kZCh#Sus6N8$VAQuRU$AZmTv+R=HE`figCle3;0DqKm
      zwjhFV@zQxS^XAQK`}y_$0pJ{m1|ke)%L&Y9KHx*M?@33QvfnqkQl9JtN|;T>Rp8$X
      z-{+Pv5MwCJl7ERUF;vZwqxjH3oZ)CW>*@zF#4n^H)g{Amu^y65n>!ZmqY0}zt^`Wj
      zX5H;_TU1MJhFHyg6iGypO2a^cAzPP@Xav2E@LIfMlWI=W+uW03J}Ji3lk^!X^?%&8
      z%CIuvcAzyE{E>ZI`<ixVy)vXMp=w+S%k@SK`C@5CqGog7Cyqg!2Jex?=3IZWB7r@I
      zjITXadSg=z$)+24U2!Y*>N&?}p#=RaqX#1M^v7YOccOEZvOCJ76pfSe=^K)-1S3e(
      znWP9@BaR!a5h{#n$RG=7w2loD2~iGtVv}WTO=K$+!(KGUUZ#?9U215#^te5dW7x*d
      Q!szbb(TAm@`<iv|4fnI4A^-pY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/UnknownAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61158195de3d243ca5ff61b62f0c66f91b50bd0d
      GIT binary patch
      literal 2180
      zcwUuMTW=dh6#mAsy{@}$6DM&}62Rrs*d~eF1Og=&h;ucBq~zifQlM*RYqq$%)_R>L
      zFFf!FQXf&p4?v&>NF`ziA|W1lKnNa?_&tbo#%srQECegfoS8H8edo+KXZE+hfBXr+
      zRb&)+1cq~FDRD>J(RLFB+c2GkQ79xd$FYq}$<Y%V=0~P=&z!C~6nF*Nd4D3WnYqMD
      z=8m3q6!-<6Ze%%Os6z$X94#jxk^){+yGxGH(h1WVZ8LM@0=^wBU!q0N7H#xT7^dM&
      z3G_yjr#EjUV`(Crv9|Rf+R&lm96}T)8cUynK$i*y0Um`_oI#LBy(-Q^6}YfunEG<*
      zZbrA)wM<?nV`a5`TC)wFyH2n3p-~jLvh@FCqGO!R>CTMi=sC;Y6X=Y_8q%N1YsDh%
      zQE1PyRHEy#^|}^Jl4d#9SvfivNzzWfdY~%0qtTVF%IA&7Sip;?mZpnUdIizPuCnS4
      zVgPa0@ddhxXjR~F3yzfO$b?csByd&16@f@AjZ%fehGXOn$Iy!^MldR%W-W6^x1DuM
      zlE^5j)=@TWgL15CW9m*~V>LCd;ALWIbOkYnYn=6~0^QNmO2*O(CItE#F>8CKqwUV^
      zX7z$&Sf)V0v1-b^CeYJNk}MhdZQTxH3LQbJq@;>L4DobU#T@3TShYeyH@5})qp8!^
      z>Eg#3v8ZAa5ti-^7UfMUg=msKmU94asaVDe`Q%Gjxy@&4K`5E71+YqQO6IZ7d29#_
      zwNl_;@)5Y9;zhi~DlYQ$T@{xR3E(Cb=CT#3-dB-CirltJ=JqgMTHd;++Z32C&R3#i
      z(>S<hmF%oOZ}7wEZhjKO9G`wWR5jFm)O+}K(yz$FZ&O-&nPfSGb2v}^1)Al_?<Lz6
      zub@5NcZkmT;32x>Lx<>jBvBWs4-+FWOFQR@ZGq5>=tK%nkT+h%qYwRn9C2JBM;zHB
      zM;x0odlFB%k%!3guC|aks0Z>(*Qz8|tIIAi{Q(hip$Ql2i+_*qX7J4hu&)ljglAfS
      zJNKKwxt8E(|6AljOYn1ez6H3a8NAmLe7PQZOv*<)jxn&w1Qo=ZIX-FNQ0p9nQflTH
      zaT5qI{s_a(r~j-0AE@K0bY1*)%8b{-#~9me$fJT+4sOsb@>+-rW87suPdNjhlji}I
      zz!wed;X3<d?Sx`VmM!oXU(7?u?+-v0?<MfX0;AMSYSYwyrIvK<tZV0}{Y-7%oiDg{
      z(X}bI$C%oz;PrSJ(`C$*v2eiWXdC6;D|?^p{i8=nP4GyO^MLHz{Z*sz>LhdZ9bu`0
      z>!G*HSnIDbmXR*w9k!bXp{<jf8j+9iOWeZOu<;NdV;`TAy^n85p>OdO*?oM6U+@UO
      j;|KhSW2sxDs*S7LeX57|@IEQGk6wI0BM*&l$tc=CG%KjI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70d93f6022e4d2203dd73467ff10eccb57e1a581
      GIT binary patch
      literal 1151
      zcwU{7%}*0S7{;HWEnAm`YWeU3)D=Y9BCJHirN*Qwm^3yR1)Jc(WZI6)lI?8Woh9(E
      zc=XIcFE)`x<JCXP`0jQs<s%-<W@dI~p6B<z^UnPG{p~w|H9XQV!tlhFp|#Hs_@UMH
      z9jPp*+qJk-zS9hqu-f814_y^lRj=!aV52|PkY-pIcAYwEQVCo5+ecFILk*)0kN+Ja
      zVK%rMipt+rhS8^vbksA3bfH#k&`|Z-LPrW?1~g<fj5EwfRLkYkwrZ{`Z0=TkJM0Ll
      zHV<2(s~k^ekz<%Uh~Q?2ADPlqW>c812m({>acQpUFmNqm<{737^;6_F<s$8J6g*dV
      zq}U2OP2unGrc3GN>t2hy4emS9JXuVuJttsTum4X`%M6(~PX<<_^NSB5cY|{|y=?A_
      zmMRzDMwOT|a1*x}QeJaE%IJcOVayh)%IQWt|A=9-P#h9fT^<Ca(MYq!I}~^7%zkqI
      zEbcQ*wBl4(lGGVy$W#deujLTEJ#=pi3FG3+7>LRm3Ji;vs{+MkoBQpgI64?g2A1)V
      zAxkkE{R*WD#hQ*Kj4|ljUg)>Pb0@x*GbLS(LeNtuJ+%xy`wWfrdZ@obvp2LpLgRF4
      zwg-JS{R!hIFn043JzV|qg*HYoNqrt^>MLZfLdOQCut^P=>6_`B0ph>wxIt(ZT}u+;
      z1!*ExZuuwJM`TjRrR5%Gj|cDx$^m#qS-mF1&JZ{^0OxQUcVh5em<f0#o&%{o`#gY+
      z#!K&Fh|%9pAPn~~f5EzN-nw_GbrBB|>v~*CQk-CExAYao9#+mX)DXiMFjixg^#?Da
      B|2O~u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd452d080ea7aa83610664fa370bc1fb84727ad5
      GIT binary patch
      literal 1042
      zcwVJa!EVz)5PjQ(ICTsSDG(?H0tK2Df`#Bjs!CO=3Z$rqriz5bWs_{pBFB#Gb(Q`V
      zT&M&RAHYW;#+${Mr0Ru(y}NJTdpkQbKYxAu0pKN?7M2)xydZHu@l!r^Cy@-4D<>0|
      zD;3E>qJ%pVCp__0?CyudWGn)85JqFJ_Ghq#B10pu{;NC|Q`I{Q6rWlsF}%9`9%I<&
      zej@h%pbVuQ8A!Fuu-WXUV%O(^=k_Qbc<mXIDCxW1aL9ep-s&?HJK;#!D4^oNLYZNu
      zD+6(uj0Yk*<^!KxYntBYkxb79EUJ$(X4viiPeIxYS5DJ6q?artOz-h^qFFSbJVV73
      zs>7A=!sv`)wYinE==eO2iDMDxkdMjY#y@d$MHzP(>LZg|>qIBlGD$PsBK2MzheJu%
      zjB<tEFlLK=%t&nu_ZVJZULK8!Xs$Xo7#=uipw3XH6m*+Y@R5TJJZ4xXuxm<_y(?cF
      z8|$br*u5}`hT=e`#I*}s@FLaHcrzLS>IRK^kye@n`Y+Sz9pMF9t?g&e&tZR|?GhaN
      z+q432Q6kD!+BIf0T*C^WcU4>`lXO?ZDzPb7+%&c=TGLpe#y)43B@G>EJ7*R)cGL>g
      t7o@l6r5`SouHmkczR`~Zs^78xe)}u#)A#TkPv(8RoKH3Ld8%2PzX9_X{BZyP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31904750b1d0cc28360ab71bb449d25ab83cd5e5
      GIT binary patch
      literal 3187
      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
      D=ug-M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c24ab0bae487f8c9d1f62783145c22ffcc668dd
      GIT binary patch
      literal 1603
      zcwU`UYg5x$7=8{QsUcED7e(D&yzByEjrUto7uu8tN>EzsGP@3wHpey^5++FzX8i0A
      z*k7_ceqd&q+3)L*a(vH8EJYYU*iQ4F=e<1d<-F;~PyhZ0;09I{^f5ea`5pbWy=iah
      z8=>pRy1TKV+i@JajZVyUhrhBrUL5HQL8Baa&T~I@y<(zNFu*Y08@m@*<6Cic+mG!n
      z1%nK?zMUl{tlM6P&wkM|DAw{?dAU+#n5le!nRy1)w2DT_w9J~pkSWftuGP#XIx0rp
      zuuN;7;fQ6<musYXVHk^sMJctaQCPN$Yt^z@BEwLvY_4=sW~S-6z8gPg=%1XbGYk|0
      zhi7n#82ljDrV>;zjA}TIGYo?>sq@5SMKqy%w%^jLRK4HICz=iwtXG1j?eY9n{U`;W
      z)u14g!Fj6R^{GR_!G+}~4M&A#oC<O5?Og1xOZ`O+s?cAiD)=V%iCw6F)i5N~lhmf~
      zw%V~!UeTZl<yG>1%lRAbJ3@U;!!e=0P6LQ|Gw_{U)OKIVkeeEYh3z&?BW}B4kLj+4
      zEHVt)itBT$v)<rg&2D&fha<A5x*fU#OQni_jMB)6BchTv#jOj+1Cyb_d2%9MYwwh(
      ziWZLxcFbErxXo~Ka;k@-;Mq|`J_`9*_Bv6V+GkHwWI$Iv`Z{RHJIi&%-sIA4A_E1_
      zMp4joDT~vynU_+ogNxsF$}1={OdswQ#kTL*p|fva6)Z3e@AX-vq$*5Q#1@@UF%L_e
      zmPM<T{cd@&gK9PCgiT&@#lX%S@+MppLG<R+($en;G8hvpM*jw5Vxgo|Q#q7MEtSVo
      zIh@L@l!D_pP7vD&q5m-e@o{&-R!2^<9sKYCV-lQ8z>gCAoPY}wTuQ(%5=<muN`mPG
      z<Rs7&a6^Jy3ApnQCF{dIdX}gNV2;Y4rBX{YCIe@&fXg($30Tzh5^iG!kMWE=>R7~c
      z(!Rv+_!ED?0Y?*U+^4T#1T{o2ZrYYf<LW1=T$#SQg9m#_Rp}aH5RnWVPu%cO&PJT_
      zm?08zdPJ%F===n~rL;Mc!qz{+{_au^O4U0_rzPf;j#1rn2SN*9hrT~F)S!_hp%3Ve
      ege|*^`PE&Rt2<cS!P3_>fA!F0yEIRw*R#)fpH}<;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a5542fb61297beb59fe54a75c4f12f53615dae0
      GIT binary patch
      literal 1173
      zcwU{8OK;Oa6ot<;Nu8!{Q_>eSJVFaJNl6VtLP9}Er4K13Du_U&!UBzxX_&~hgFUX=
      zzrqfQWf!m^5|uz~`B8{#$E2aDSg`Pn=gv9by}mR4`RnU90C#am!wAEJmhBsDe!vfn
      zjw@|t$WF)LO1aYXl`xuOkNcMLjBUq!=1Rwv>S&`E(-3D^8nm9;Dz*|W;nt39#Sb-%
      zGTi%jo`_lJmM_-+L>WdON?WQ&4Do!WP^W3#X^IqL7}ud8sbPX)F`yb2w_8TVvP6qp
      zYi`Tm7q;3wY>1AMj-5oBA#)JGbB?ca&R)(XJ&|-=2uK-**?jdBRHF*)RyjzSu1Z_%
      z`1_`CUvSf+qB2#d!L2%XWw4HdarIVu4CU&7_p{892uoyO75a4X&gYhQrm&}GTQpR;
      z@G5A+WgVBWzz}oHc2L%kjA6Vb)H<ibaNHw?>3m^8v~F?FBaKFy9llR_Xa3rcnvlc|
      z+G#sxsS_1kioSwjj;w2*=QJecXbv3QQbZcQ8hue&L!O~{zRFYFZgRId*ryaou44ta
      z8IqK^-fLDYU#O(8jB$ok&GFra*pk7C%n!GCHAqHRpG@>5=r>5vOc#m9F<QN*_z2C}
      zVz!G^HvR!)*{SA7Oq@X9%}jPN_5Cw#k6@a{4B|9CCd3A&u!#k1VTK}eJp^Xy4dL57
      zE>Z#(99ER*326dVdgTY$dn97V#g#6y$9?!DRRTPx+G=EYIRH-g!D(E<)ew9Qxd>be
      z*FY@8KJ{UvVdzZ=(R<qwgyA|ChpbCyt@2#!P27sC_rrdY;sndP#V;syQ98>|0}Q>-
      ISPfOiZ+H+0b^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..175d9df5ed94d807b25dcf303c8f049aee9bbbc2
      GIT binary patch
      literal 1338
      zcwU`T?M@Rx6g@+sTS^5iP^~~g@uMx2RZ$U3)TY%$)0BjgMvZ@_?NF91ySO`x@F>0o
      zVj@NpAHat)-q~(TL(v~@vO9BU?m73|kNx%g`%eJ(u&!Z%VYOv>`Yu1<hx)!_SW-9k
      z_jN9%W7It<^rqP6o+(}ZwOz072qE24`$WSa!+bCB474Q<W%bCC{7^%fVddW;0>T<M
      zJyGbKG7MHWDlZt;%Ks@a&k(6@6)L5|W{I}z4b!j;`II4)&eVv$Xg5U!qqMVZOGGh_
      zxQ5FN<0_W!NyF63c7vNDh6zkEL|Z}z)C`m9O!>TDJ_?3J3|DZKA-o<$yOVA^n%rvX
      zRZ?xW^8L_EZJ5B<V$cwYV21R%l3PvgG}U=3hG9e)#>$2zD&AgQI9t4KQjy|5zQ!Fx
      z+5TY^AtWd(xnsBtLkFs?%CS!ci8TG_-P>M83?r0qkxS9Cog;>cPR2e((d4d6J{tK{
      z_@3ygNN<P;mWX`UuIF68HMwS|fC&N?T-R<G6rtJE_Jx3_f2z7pexdKiXoT-m4&sBy
      zP0Dntx6m8)UD1&F%)4Pcz#|P08PXTCcItdKKdK3<4B5ZP=m+FgkTumKf<>#g=QPAi
      zL)CTa{7^0{P7+R2Nbe8^kW?+F|1qgrOzRMRqZpyv7+D(_gnH(FfW3`h`i8MnOnpJp
      zH>W%1>}PTrz#M%OL;yS|@H32|glQC!!Ybx{4-hSlXF&dnM1*M7vWrWnxPC?w^<6g+
      zM%4$-x7~2VSEzOixJe{xcMG@4o8}zpfHp^~x(mhGahEdeAHDbKV(sgIjv<3=A9V3N
      zbo)YR4$A@bjjsYoWlxa&3jGtb6RaGQHQTWsANL4q7s{brU5r9fQ9R7xV^5S+H_8(q
      GmHz{%QZGON
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MediaDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b569744f37b3f236b2189de1dfa5b7916c1b86a
      GIT binary patch
      literal 1043
      zcwU{7-%b-j6vn@ywOf}(prH8QDk?3C6Qf?$n2@SSQZT028?UDAungJmZgyu$c`Ln9
      z;{^}ELlMqS*Sb;+i8p&@&N<(2znL?~C%=vWJV)Ka6vGSGPx!t#5JMhD%GX?lAs1Rl
      zs+(xZ`*K$#o{ssJ>?`qhw6joTsOCj~1Uqu5+lRguLkpz~@folqyhN`5&N7r<D_`k1
      z3@f!(D(0T>UEZd;?>0u6L@STCf}ZeXquyaCHiN#jQNXkV3uT7cmh$CxGU&=^M|3@+
      zR!n<GL@M29$)es<F~h6Yf80ZZ;nG2BJ!Mb$q+@u--?*Ch%rNar-4t57L3GHlP^;$<
      zO;5xz^;p!iEe3>G{Hvb*qKq31GlSI9TIP`98fn(!IOr*Y_j9+poFOKMHf|!~9XgaD
      z+F-cnpo%4iGBM4NY&^h23(GYB^Db;N3_sH$l~yu#@Cc6?=1BU^PX;+78~>cD$$aeY
      z%bsprY?i@p2T9bE?^Sxs^ZD64OU3lc89fO)5xw{#MS2<Zy-d4J$`>eFt52T(fc=e@
      zQ*h{OQv^0p!UxRIsyb@J70d!=HHUeEq^k-RsGEj^s~L8UVp=Oy*w-<#WKy3D&KZ?6
      s98C*L6VmHvrC-jK-o&j;`qH={@0HuD-*NXR?w=*><_PwfuwuGur@n{#egFUf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0aaf09781adc542f129cadb1767a5a4790a37c0
      GIT binary patch
      literal 2077
      zcwVhkU3U^!6x~-oCDUj~jE$+*kJv(#P-|P;CRHhrKuaJx36|vpYk-lA9R?ONWA&}i
      zeYd}(jcYYsy4oMm7ypr~`wnBEK=nn|8t%F0oPF*-ANT(A>iORQu3;yFV*;CP%S}Jj
      z9%+x$y}n^NX`|OmYmU=58m^<KTlxddH61&>&3~h3>bY*y?dX<M(5#keSnb@vA%dX5
      z`O!GT7<tR>s81|MdmKSn;QE_S^aEBk)73MtwE`#9VtK2SujeY+z3qH?SD;XOH`Lb!
      zR@D4X=5A(p7+$UKm9v#niMm`pTiGe*Re_6B+$Nls#)#I-`FnM>kk6Cyj7@S@dsl0i
      zOlkgpNwQCyn$=FLo`qayb(YJ^-ghhBe|L#SH=0x!&P{<pB3Ts(X1gst27v_yr?4mx
      z-tg_gL@`-CPRsiWB8W=qjDq6>=>r9^fpkv645AU77dSbdO%xZ|IGd8Gr&>O#C{|c-
      zTkmOo%^9lglxsD+rb%5Z)$H~R-HzfT)_jWRgkOSXA3G*x=|83HeO-4X%T)ym-jmW*
      z1+zFoS|!8M%WkKk_x(D@OWmesR<*t%_ntC_02WvZXWy^|LXTuu1VoXYZ0k;z9NOLf
      z6LvC@9BF0N)NGr@j?ky9b%<E_kKJ!|6kjsEj^DE(@qNE*DZj5A2?kO}C+AcmIdyjC
      z=$IcHpUba(-*hpFT_iSR+uf!iOFMG&F8Smq@kdU~<u=FT|8t4pTe2H6E?O*|-j{=y
      zQ;^3dN0aAQ2L<M67Gua@A%-HpkKj8#Ez_<*vDe#k4AXEp1PV&n<_!837~#K_m@L(Z
      zrqXz*H=Xsj=O_?UyKcX!ZyK_$D{r}NYcd|6S*F7;gfN!mJ>t{5ByW+o#{6~0ThGWD
      z^;S+OSLuBcb416vdx;?Aul)j|7C6NGGn|%U&=Z%W81lqrDTY1qY~(L|SPR52sI_4H
      zl3EMJFRQh1{A2YQk~A^S0Z!9)z*nmlI>0im2RKXfmEU>PF{Jok#ytOTlgup=&2g8-
      zA__Q%EnGkaNqStx9em2~2JT`5Dtos}&pY(Ehi!f}{D3B^c!1Bb=0yh6;e+ERcas{a
      z3$HF8B0W4i=4mySui@bq2VVHZE0~n7@myX>T*qgAtdzG00&(%%QJ}D=`q2xb49tEI
      zK}ugtKyQpg-6_x@zQWf&bj^pdmdSDK&m-925q6!Gn!sKe$Nn+}EAR~~Ho#`7mA1L~
      mtry7DR{ucu5L<tuFbp(H!oXARe&u{U9SJyh6tL`hSN;VZfA07I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85ab6b4a025172406256bd3da681ffe2dd58c449
      GIT binary patch
      literal 1031
      zcwU{7-D}fO7{;H|uhcZIuIuK<{FqK%+fjoEL#PZ(MJU!PR15Czv^mC<EQ!g<*!~s&
      zhF$251qH!d|0wZI8e?sT7gCa(^X7Se@6-3>$Ima{0Nh7iL55+^bV7Z?kNC0f`IaMf
      z%ky+DrEiTwDRe`;<)JMDy&oQqg#X%mGAk&^F>KHK{&>2M6sGV8CywOD3JMGl{@o;D
      z4!IqQ_U|e~;gRK7a-Shr>(+<#=(vVZkwr;^f+9n?XE|aP>=hr`WU2JrF}H`@x1xPg
      z%*l6F!0@p5e}A>bkUxr|F|aPB67NH96K}oNi(tCV9aDcXnuxJ%)eoY4>l!LpW5~Lr
      zNt9_x#!xba>~NZs>z^>J)#`Jij?IIBGzw|@{E+%q|9U^5#E#i2;u^!M6NhbvUNgzh
      zutC0d5V&KD8W?i}-A*veN0y3O3T`s&oUIBZcMR?u>4a1eRKsoDVJK49;cQIVTD_}c
      z3nd11;D-KKJhh^Os4h(QUet!ZL~_uTr>`<kPdZw<pQGJAGV}uqjm;_4PqfNFqq`bc
      zACtO`^R(KSsjz}F5U(y^l^85KhJ^JjVU>5kgMC0gd)nBYqI#M_S11JVoZ9!v@Ny1Z
      zPQhiWT#Uh&a5(`t<2{hAu#YLM5SI>Oh&FqjKp3uIbIE#j(Q2G&y^b4+buS(nDZXOs
      WP2)3eO>uXT;mt9$l(7@5YQF#;*4|nG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06ea2a66c825fe81e0340181a00d66ecfc35aacd
      GIT binary patch
      literal 1998
      zcwVhk-%}e^6#gy=*(I!$1WKhyrPgXf8`fHXL#ZKzHZ&%f#muCAaF*nfZYONw?hQj<
      zefGWn5k4rL5yy`H0giu@<GDARWDOa7P?*g<_nh;cAK$t6{_)qZzXP~~FEvasY&G4k
      z`OH4HPt1<zxWaTg9n%)Va}K(Kn+<+wcU!_Y%bvqsVGF12R`@qv?hD@7?in>i8CJqE
      zhWNbOJ+ht?@I*t5;qJxRf`C=K)#cf~mO<YuSN1E}!al=x@xRx*&M;NXmbR^2b}!G6
      zsN}2pik1I5q?_&QhMA{*%HcNm?SmGTH20(^i!fWZ+cYg@p|CTY+EvvDZuuwwPrdp^
      zz2&%$*kp*L(p83NuHE2qFw7gcj0J|+MqrPo3hC+;Szb4wL6_2115-We4FmC>bj`pt
      zbPX%i>}V%C-lCM9wkJH>5jx%`!pPk4>vo6hc!xOi_%Zi<o(ZW_6sfQ7V`ZjQ0|s7`
      z(rp7XxWsU&=(xPpJv!iCz*Dl=uG_7u?KyI<lyO8bPwj}Oj?XZ8ELmk>1)4;Yi<~WZ
      zv+X^nNu<)DQRG^-?-OAf`IPJ<Ld^fe9*j!ICk)H&A?F#dPkJU82~Cq?SmB{xPNm0=
      zJwcB7k;&ie`(AV><VhrK`S8%^LXDQ%TOdu=_uF-cdTfNQ!HuAk^AQJ5)Yul)Ikqtk
      z+f?eX{DMmqa!($j9Rm+QXGf>hs);yqn2%!@MGcSWa*sR2g-+)y;j|p#aNoceDAD`_
      zB0@z!NS$Xaq$wXf<8`tA?~O6Ut#;R|^BqUhyK=#OS(CBofg?icn?wwY@+Q!uw<zy{
      zTI0bwt=6mZgsPR!C#^dD&muwSB<=o06!P!sE3jJZ40A7WMT(jd7p15xaY>4^J&$GW
      zH@sPkB(GbwX!3?tn@rxcYO&<I)=Q+x#A=aKTp`;j7Rh*uC9<AknasC-qFfWm(C@Cw
      zzfRSBMwQ;j95%5)qq&AHT&Iz(Vu$>8ahJY(ctqMF@+3b*872B2V-F2loA?lGDk`WK
      zdM|>`Hc2COvDKwBn8UnrrL7Tnj}>mA=Y{taTT;4%_bCQF==dOrl~H>jl4L&)0>zZ7
      zu7Vgna}b14Ngthqemn|28Uu~uQ{tlsT??SZV|o;O62e9Y*mZ22$KD#nemfR>j~MG=
      zZwJ_k*bgJf??T9lL9_Sqd4SAO9BE4=v#*e=t^SPs86N(E!mxxHY87}vyYJ~(z6b?O
      K3<8#w_uk)}zQIEP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa0d7a04528ad1d9dc587f299eba7e80027ee406
      GIT binary patch
      literal 1778
      zcwVJc+fvg|6kUgwCe)x%qypYAXp2I;D^S5&Zq))pwKE-G3?-CkNNX;RJo)5{{)!I@
      zGvesz2l!Er`<%oQN=Ik3nKnCnpS8}~>+JN$&oAErTtPuX8^c)D^3-SAOYN0fw++ix
      zje1?xT-P>MJXcp&^)<~iT}OS$i%Xtn8t&$lpOg?~I2Fe3;-)Qcqqu3g+A9e$hHHP`
      zB_J$mrl)6rXBpb3ma{XD7&3)_7dg%lTUcD4&lVV>bNSghh64@(t?DCf#iUJoo)kE<
      zYHC(hEs6?Z4(il^&=V}X^W^_T$eD_1ScW^n5J{y=Bqmo|)#D%m3J#-}WM+bTG?h=6
      zI;e6)fdrXH{R%q#=%|7?WC_O^x|(&%I7z0h+S-~c<1{f^HG4xdWt=6_b)&k@2?iA$
      zfWo5-3OaF+;ZVV_^aXEYMYn@y6NOquGfSFn@Mn>XBZ3~Han}upHhIadVPJW(v#Pr}
      z&DE<ldy~3Jr9*z^OwDnqdx_R8Xd8q$yr&-cE#n$PuW)tvh40*O;3pjgVT<7t>rJIw
      zo>@07oNhX{!QX5DG@^v<AnfAWnxnhoe5kD?WwMS_s~FVVYG^9Y1|95YY%HRN?l5%j
      zX-L8(N!*p4x5zTx<`a-ra1Wz2BebOuAIAiG;+V#)gc*9rT1{TQUVrQw#BAt}f;o`n
      zuE2nh*xA&6r$U*<m1laz9shen4Dn*kvn%?H!ENnpG2|nhgZ@{@K>D`R)z8P5{%iXA
      z@QQm}+z0psiaX68-DSECp^H%6^z;T%@Xyj$uySk%iESi#D2cF-hq4F<V&8DA97&ug
      zmZOPN#d3S%OmQ3MD9g%`EhH(ug+9t}VSozfKN4vhQexv6{f?5143e0{X=HH=IXuJ-
      zq{S+b2zo06NfVUex!BOr9SrUA#6`A1t<DQv(qDy(qD>xM!Z2|#j6e;z{AVDNU>_Pp
      zF_9_>62&hEBn+2@r+cASo1srzK%=-${rJ$407{OWYsNkgVWSP~O>$%(_IxweYl*#0
      z-ul=}0k$pnz6tp{gluaxJBIN9IY~Uc)}6?F#YB1N6YlOH_Zd^W5`6pL(G<N6k##r7
      J?u(TVegQ83gyaAK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52518aae293be4a63c08ed1aa6b7bbe4af2ee9eb
      GIT binary patch
      literal 1207
      zcwVJbTW=CU6#k}MrC5X(ytMVwYULtbjgJ@&p^^|uYf2^27c;<=4%zPF?yPD5ioc-`
      z`XY%YCcgTkjAxb=uvA~nW@gXK`Of#9%kGb#U%ml&gzXp>7@qYl&lvFc{KObK(o%*T
      z4h^o9BRifFMo%1a&s47QQagpSFI?O7l(em#u_uNw!`3XpG<XVbomz^Y#1Lh8{BOa4
      zw#`jXRDa(xM4w1Ys;6Y+8;wSx%@D5HJ&`~Ni%G-~XGk@rC3d~zj&Kfm$E2W4)9!M!
      z%^j)F!DUz-NtdD8{LjKG49i`|cHO!Vy{VUhH5ir-&s|15N}pt-;+@A$GP3!m7B@_8
      z^^LvGKy+25@J82jHHj5u8A5hvplg_eF)a3ls&OUywsT5p<O?&Pn#o<4FfqdH@?)xa
      z<qv<0Dzy5QIBqfA7><i8JCjt)LE#KJBB;8q-Ib)&o0-LCz&Ahe38)goCd0#vQLf@v
      zk2}5j)+WGkFNrPOr`&Xn^Znf!9!cs=zR=L%LJ~y{&JuVYm%s)V84@kqbGo7~_4wES
      zHqULHEd3TlPAfvcNQB<>Wzl|#P6r6n1H_A~YwIH<K9RkEB<%@$1J4Ot$7QmLV;q){
      z0(|QV(!`>z3|R}lwM>>)qFDzDFUX^PsnU0_4~T@$ilq^9XA_|%3IO&=s6_#<e6id(
      zWFnTrHC!h`Y9Lkv;<A4RLK*gPLKgL}-ufiTu{$7PSi|~U=*{z?^1{&DxD$ld{00K)
      iuh@89{EWM_^5GFmQ=)M}in`$unVKO?PY56Q=<+X$EET%|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/defaults/SidesDefault.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebb5f42d30aae180a8ad246e19a4048ef284ef6e
      GIT binary patch
      literal 1850
      zcwU`UU31$+6g^uzw&SQDc0Op*Qd&yE4sisO@|94U#IEDkwbRNmc=`|&TXmIjB#$MR
      z_K9cS`5}<b5Qa|q0q~y~&aTv0I2k%q&&YfC-h1wzd-h6y{qx7406xb3Bu)uj?>a+$
      z&wOG&)%ye6@pZf3*G=Ca*t<jD(mU28bJ+7e-LN~BR}6MZ#04%#K_fuP8SWd;9N&DJ
      zMB=sO!-7q-H?-DXc?BlxwbG7JDVB-?H>z*Ia7AFc@ohb*u~V(r$~&cExg;<%@*11<
      z2aV93C~j|6OW)CGY~Ne2(lh1p0H@n9cY7o>{je$-=snZv>V}H&h%*+ORouh0&mO)Z
      z+0<&gXFIlkQy`YhHwEGwZpTVPU{=E%-XgKpFdolU^36#`<~1adlGX(clY#ZNhIC-P
      zqhTtru4vGZO5&=(x$!1axJI>I$0~Rv)Jfq3_UixO2HQf<b-D$s)3s8_Q@c^Xd+ZK;
      z6_F==sNpouNUNaXEY1m>t=f)N8}9E~gHW1m)oq)-ra7?XUOCf<VU`W~k8Mw2;)xVe
      zKvXDx*YY<^-|D)9XC#!%N7UcwnVv_<lFX@@`$WwACm!BT3SSDGmTbL3s5&o<7$bVG
      zv$_0<H=AK%Y3y>Zy~_Q+p(l2Z*fq~{+crDsM5g*`$n!Y<D2cS!D21Y(#0H6s$W<H)
      zVh!X_lr-E%nPbDFnt^N_n@Sq%m`&pjs!81C8+y_#R{H&I-|pGIZFw5*p~k5Qn~hK{
      z=Z>oq@zi(sthT@M`gR1;hC3Xzt=qPgFcTg7WeMhYh}`*1aG2-iK=a!)FUMJ}>2RG2
      zS52)8a@^F)VdE-M8Dv>yn!CRdhx~P4K(u0qn0b!#(u^x}L7EfFyg2e+8hI}#UgF(W
      zEc>3(if7+9S`*ov@f?fvvf2U8(|v#i`VVlCfu&!0)F~|U{|+etUy<w@iQM9QyNOFE
      z;|lI#2{n9<Equ*q9rx*d!2B&<Km!J!7Phg2Cfc+g;RbY76>NoXf7sYfdZaJ0c;OHq
      zjm}Lg@As6@RJgeyi_)f)5D9#O>#QO0DJuuH3Th9;vf`JcLJ8&CQ$@5O92ViHjr7N%
      zUyMWj6QFS_vJyg<Lnswo9LN3`!N!lUt5ob5c4-{@(+OBXy}k*tEA+}(CVT4z)?16e
      Xp?HYR-%%Ma^mC+8=BQ9zWo`Wn*#njB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesCharset.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2bb5b6f6e15966cc6d5b74b5369909f88fc6532d
      GIT binary patch
      literal 804
      zcwU`S+e*Vg6r8oSsWslJ*8BCTRca6s6r~^q^`Qt-Er?Is8skb#O0p6CE5!#v!4L4G
      z#IxI2FBKn5*iCkJX3oiEU*Dcy0IXusKo`TB<3-jbzveeqGZ3D%M6+peDFacDq-|aL
      zb!+Ei6_zh}5Zcl}l41F8VN9*wdXnE5NHNTPC4Umz?hMJ}qumXL^~yhb+G0p=H(cQf
      zSz<`!3pMg9`)76<eGJ`^JTGo!z%XE95JL>9?U*{6uc%U%%RR@clB?%z6>2?19X4Sg
      zO_GZ6?1Sj4ZU;xa?oy-Kir?UFjR!)lHJCvH15{F8h>+@Cb2rk&4sV8D$ChO-ZO0F8
      zsY<@^g;aKV7!t=I&H=w7i;-{pu}K<pWZsS>EH+vxFl4HJ6g2Ezq58~q#I&NU=;u>J
      zG`eX_sE?!rk)*i?DxzL}JQ7e>-!s@r)_g?&1G4u7bYX<%3_XDoOl)FQqaYy#8_P?C
      zC@i(K{D|C7-5wR**ScJbg)!ZNdK;&P7~PYYioJ?@4J5Mcu5Fak(4jUlTidY-!!%|(
      Pq_aPzr@u<)HEZD==7p*b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfe2a71b35d0cadefc56e929fb5bde638d92e2f5
      GIT binary patch
      literal 844
      zcwVJa(M}UV6g{^s-BK3N3MisfeQGszLyRvJQPOCl+4QBR2@gI@>tr3W%r?8T1pW%+
      z1BoVlfFEVNGhGXU`r>S6viII|&b@Oo-+z2P2e5@l9!i96r1RiF9Esy#k}7QiHJJp$
      zm{g5&BZGrv6zu(qvc52RD&kP+C>N3RP$4|~x4;$3;6xj7?4e3%UM5`-X59#-*L}i^
      z@INN(5^6i+SZQT;3FTIMNT~FZkFthE)|a{t!m^JWxJjt)6u8w^X!`{*s{{j<)={@T
      zoM-4QA0BE<36+-p{BR`G_hJ<Dtc@@ki+CtfWn-7Dql{(lXFjQnFn1*4+ySp?6BZ(A
      zdcw#kNl&;-t9=R7i$#_(#$!xh9J0j9Z}mc?h9+TS=1bPmQ!6@g;RT^SNb+<n-zYoq
      z=3h;FYPI=+uwlICc(2=A^P{QoIS=dE0!PoeZr9>B(0;=|!_pTtK69dk6+V|-`4tmh
      z!pAmNT?I^Lw+o3~&e&Y_@sl&GU2y9z`<9!(bG)@F3b)-D_U{f4Mf}~xMxoVlF;H&M
      g=}f5VQUfRAPs@b};U4Z^qi$ZMe)uExfkQp~2_^-(TL1t6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb8fb466771bf146068b0eb0755fdf7304c03ff4
      GIT binary patch
      literal 765
      zcwVJa%TB^T6g>k-5%Gm@CF)L5apD>^F`$VC*<eUqPGM5Vl$Nwp0)M3|6BmAfA7#8P
      zRZ(>1X71~pGv`j`_3iluz!3@t5)5U_3HZI}i9YXo%F$ePyIg4PDKpTL-@7Kia?PsL
      zLfNw2&_W0Pwe)>qN#8(<VSAMPMZA%H-55Ap^bMpLwth#QePj&jW92A)%CNIr3&GqL
      zj>Q`^cdYWT6KG}gn%fe#EEk&$sfyc{StK!)gMkdgY)v_`9&}9U-3Zer)qDhR3QvV~
      z+)U{^<ujbr{;_+RVWKDOAi87BFRf!oK0l|U-WjGWsVhQD%k>5f3%kV;iHa@!P~IR+
      zU35rd@!LGUB7-%C0(mU8V}m6>a#-rb78$Y)H}G2WLWM>)|J>y;6sI4-=qYI}`W<1U
      z7o~HOs!OVq6pg+8gC}GkDNP_pXO<#RMH=Urrfho%!whDDD4WAPiG*1m3xuX+uoTOd
      lD2B6So;`d@rlVFplFJRpu^huPR>r8SKdHCBQr9EY#yh?&wsHUf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d80bce239b01507fe520e79906ef53403b49627
      GIT binary patch
      literal 757
      zcwU`S$xg#C6dcpilv1{`FB05Xi^UNYA)x{isDeWg2X0QVf>D}Oj#HJtf)f%4K7fxx
      zyto0%cH!c;&5Y++etCU*2C#!A2LlYdewgrE(GgwV)+#hywcA`6qm`Q&$!{Z<pGNLs
      z<RvW`ngh?1aeSn8q+<tphLwKmC+$LZP4g}^qU)f*u>3pf;5}m~?5R+heTLPwMhfPE
      z2z}n9dFa=Aoy4esHzH32vbKK7kgrGAvV<Il%WzO+7;C6do+T|;>I>lpq*}4?OQBU-
      zXU)91Q87cU@$b!R41*mJB=&|MZfTjoy8M{-J7*a7rKt-e{Yc+2Os=i>Nz?-or}7SA
      z&P0nOroPOxD~gzBSRjYh>&#wNSbtS%4KkFPQKCJ0tWq0Gf9$cH3e!(u^oX<){facw
      zThcj1)d|%(iq6L7)+0&}ln$UwXNe+kgaVE+LfJ|WhEa?GHXFwTiKJNtlZ2*4FrCR(
      lDW<brh24Kh7HsR>%9VTLOpaj&vp=YF->Fx>QWq?0@eK?$vqk^_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobId.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66dc5e1025c86b3e6d8c66b616b5741bbee2e9af
      GIT binary patch
      literal 725
      zcwUWBO>fgc5Pg%HIJhaL?gt;C)P(~HQn7k2Ur_{-tEiWhN*ve8%H3+Sj_h@n{2hJ)
      zoGO6?cYYLN>;zh%2W0Kc&hC3}o@c-R`1}>XK6YKy2u~7IglFPhOv6d0j1ARf5(;ZG
      z6&F^9XK5TBrg1cK;Se5Q1zv(8V`U<<!OU1Obx|kmTo3I2+7ar{l~ML3!D&aG6HdK!
      zBt0x)xd|5y7b}EErAnxUNy12LnF!s@l42~4eKQ@(iB+j-V3n}VF89<Z7>ik8QX9lF
      z&@#^hdn!z@@1cpcQq(7Gw)>Zw12$ulgR=W-Um1B+jANM{i&(Qizn>0;J`tHJ>&2mC
      zPgPFn^#5~c2ZS5vLKjS>h_IYU+Y>yiG@B9D+np<BdRpW;<6Xuai7_)a{<vS5ZQvo#
      zZvMXnZ;%$*P`*{AIj?H@tfcVk5|5I*^GlbRC(7|ASMRv4ao&8|x`5YmK49ewn(zHv
      z7r6cH6JOM@&e4a%@dXRKf``}GK$jP=H7E181ys8`xXaRnd$_-7u~*gH*r$)b1?$z(
      bVI|U>UoS)mEj;*#y8Sox_*&{tg$jNGgDjmd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobMoreInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd4d0972aa3686b240fe2f356a523a2967a7c711
      GIT binary patch
      literal 638
      zcwUuJ%T59@6g>r;(Gf*a@v(6$8f;u+jE2NSGrACE-_bgj3>{KB2L4J{CNBH{KgxJ#
      zKm{KQ)3m+!_B?Le*SF^v0DIVQkz=TZI^k_`FZ#S|l(t-TyIfdnRFGK7+i}28<KQed
      z@<iXpE(#2r<M1!&)x}A3psnb;aQ*}xeMAh-zS7DbFf4BQDVS?%Q;~YL#ZYL(H_}5M
      zvqiX=W+?ee%k!iYNOLKIi1=kcz7|nS7?tLuV!__29s~FPb*(x>J~4`6ezFsW*-+Ys
      zuriFzfMIE?Is`;QhrAJqUXL&?Va`Q|+?OZLo8+d$`ZQJ<=E$+uA-kF)KL)QEC+1on
      ztF-Bbu~v3dKK%}LM01LMD&6S`Xq}<#067|fv%T{K?~$S$inMxJ^^h1xn4_pNL}4B!
      xAd42TNE-BRSQ=^7vYZ^s?BP?$$x5f0NO5>P5~2HH<p;I$oqG8zbuB}!zXL>giC6#t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobPrinterUri.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f05531cccb961f2d1c1e25b876e13522abcc067f
      GIT binary patch
      literal 646
      zcwUuJNl(H+6#fQ~A|MDTE*Gz$!3k#!k&u{32r;tUr#PuYpe4i9z`xRyi3fjxKg#%8
      zaKYtZnoi&HE$?++UZ0);RB>n_!oVHZ=Ob|^=6tG^Yq*+DxiCg6+c%PrJe#*X`zmNj
      z-Pg)OjN#}j;S=1yzU(esBjy(3e}WqC5kve;xysZTa;0_v=B_k>NUc0zh&8<%nM4$+
      zG%O?-vTfzcjz6)b?g@KL{CwLRit#{b738a8%-pIOL$&?S#cB*uUn_>p`Ya47N1CQE
      z((&|yp-?I>0b}7hyg3%L8DT8Kbi{=Gch>q{@^hV90(-Ooc~+)N!%AqC?0UW)$_o{4
      zvo_9Yph34pQ_;IYHx_*9N6@)RSsf92fcWvrBa#mkMUbX58CK7U(ZCi(#U%<EWPvc+
      tMvgSd4~3OhCCteo&+b2j;$f*3ilmqAl?d&K-5=EAcWUof>VAkicmsC4jWhrN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobStateMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26c28a9f3207a3bf822f7610bfdd2ad0ea29eebb
      GIT binary patch
      literal 724
      zcwUuJO;5r=5Pb_s5m5y3+eB`HiW}k)V`5Mf4RV2)c--QqE-5W(w*>!{o=iOW1N>3O
      zX+cHd;$`RS&6_u~?;o#k0IJwA5M!uXPQbfjAcnl}DMxeF?{lHGr_4Z0-gQlW?V2qu
      zw7ikNFDz*w!BCuR`GL3PP`4f(Erte?47;;YXI~ye@<cgGpEB%~8X=h5!m)UZ>W)<#
      zWdf~i-f%m@mbLONL!$29%QWIx$iP5~A=^-nYz943dTn9a#F~%bx586lJWeL`gYp@U
      z8~@(8#xOS!b`UX7siY<BNZogJQZd7VC3T(1EZ2KvSSgh!DC)NGeZm-oX^I|E6n@pm
      zBU0F8$dR&&AIhrqM!Fc%EjREw@=}G<3x8xEg*^1pjBZ66(5Hu%PDbxMMOPHZ$r}3y
      zhc8G!lN&>Z-ZWX@97$YYk-Xvvh9zWy$XiB^NJ1}<6++W+td40bWW!oK&z`<1lToS}
      Z(Pc*EF&)Di)~8xG{<hxDY~6}b+n<#YrL+J5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/job/JobUri.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bcb38baf7787f5d35b4e03528e5dd117ca6adce0
      GIT binary patch
      literal 617
      zcwUWBOHaZ;5dIdh#eyQB__%ll3^txIL_%UBX*kH^zQs*lQd&~B2L6?vOg#7l{87ef
      ziw}GxX4CD=?Dv@2eR+L)25^QW9Vv#Y<Avsg-|>Yx3#6w^Ih&bWsX*GH66VCW&8}|`
      z1F0j!aQqedi5gyC^_QOF3mw{@p!R#jpq)!ksun}BYDHkv6DksE)<z7Oj(;Nzq>;-*
      zN0y;rNl)~`sV#y5w_W0wEPu@15f5aPuZkIUE9VS#>%S8<8PZ`O8MfD(V8}T_b+{6a
      zA1oQl)mj2@x#yT2m(S;f(FxPzQ!?INJMWW`=QOj}Ck&Z2Vhf}1hrw7}%Ba&^;(r>E
      z=pm>L`ZnlMqCbsH`zB>Aq-X(J{p1nG14Sw1X*c5P1u@##qNtLfu#Ex`M>{Bz2Hg|N
      nE3HPHlS7H!e+X%DsT+&rljD^L4TZfQ)XI12;8*HFj5>S+5(<Gj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..473e134dd0169978a4ffc4e3f39231aab0fb2726
      GIT binary patch
      literal 691
      zcwU{6O;5r=5Qg7HqzEVqf*%*JAi>6yF&Na4n3xbQHQbl7mNlg%%a*{u(vyh?e}F&A
      zI4u=Xj0e+XJ0I^nGqd~l{_+ao6o&>93}=oPm=Aoyr{+jWPn&WyGP%}D_5v;DF`>-X
      zfUB|4E#JGBPM}2JK$4;McX3=~%{<Mg22u=1%i=HL^{2&<x{#jKO@>mX9g0ntdyZ*Q
      z-g6q&E<>{A_eBP4$mU=m&5&<PPjrG|PpCWIbBR%C`!;vGT*=UngGoJ*V}|qgKNoH=
      ztWUTbMEsS>7_ttjxfYJEW(>tjbxG86`FKnkgESpJB*gBwd<;orkKp#abKPFFX2@86
      zplop?!%fO7vz>$}dQwK$LSxeNhJU&pIycB`B0(RJI<7q<^F&qxIXW{@^pYyBut`>V
      zuEG}bKxA!WhZr;!iZQDm`P8An9v7fg6uONdxp_K<(5fh{l$L*%TECX=N2-Gl`hTE;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/DocumentFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..164c6fef2a23e9c4d27029f71118006cd4a51993
      GIT binary patch
      literal 1481
      zcwU`USyR(c6#g#Mri3V1HWkGxvUDRZh)V&5LT4NbIJVZ|@wUB`V48H&8wP%g|3Y8D
      zkr^L-@JBhGq+u&{#^ELR+_Qe)Ip^m0pC3N~JV8!D7sG7La`j!l$M^MyV^~r*8V#LG
      z=@?~Kik40|`ifm~>%x*b+o^M@AjA+mA9WT{6#KGpU`f8OAj~k+*{k3-8nz=vwZu(V
      zG?z{c4B>ghGUOt|)O6m9)lF{I^a9zfTBfCOrD5uMyTVP8iI*5cS-UD!bfZ^;f(S!j
      z-mt`mTQ3Wz$jc^Wjr#5-?ik)ZP=@4=(PWs*U!?~bhHHBscrW=Spv1%U0iIgVgJu}4
      zID$)YF(t!hi}MK%GUrUbXFHkr)i6dd!k|=kxYHC;#chl#xWh2iv51DdxW}N?gnZ8(
      zUKf;*VY0&*;+Itl?lX+EtCwBFtP01g{6ND)jJMLSi>kqk2My}Z;B<#%Dkd<cV3MJ~
      z-KJq0apL5+esjAG-)4DNRAeW7D#noX)+0sqJ5ee{FvGxf&+)NF@8c=WkT)8_sxqYi
      zs|f+yj7N7?!*h>r-wEA<Tb9JwOaDT{OV1XOb}KM~*9>YV77S`Z1w${D-}dK1ef`H)
      zP>Q-ibMiacOO>*;Q#IQ;U>La2*R08#O>$SrXM-jiL6)FZgJnr?2kWO6Y}cuXoZ;>5
      zz{OqiA2PLt(L1Bnr(Z~jPI_+i?V;N{(s$FTB$BBksNYEJf<|AJPGA*b<Zzv&Sj!DJ
      z&<FTZKW<VIPl{rIyn8T+p&;!SD&zUDC8EQJxRpP~*jC~YvF~_vghVub2%WCa=s3jO
      zdh!=WJ&#mient9ZU^@oeO0gqkzMeuG_IZ4u!Ufv6BI5XnC44#ua}D!Y@S&|>#D_V7
      wNi34oMe-ZG4Pd6}^eA*k*;)Fqui}0>tz`~aGb%HFDRj9#^mE7172j+1FKTCQk^lez
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3fec69ffcbdb6f0a0c653463a2c570fe0d3141f
      GIT binary patch
      literal 679
      zcwVJZOHTqZ5dMnDBA_TJK8W$)1x#?`8G{%S6B2~O67B_?wPxAflrDjPr6&^){s4cJ
      zadugJdooShnd$fFOkZA~o&lWUz(9hbVY`8O$ESQ|`bxUml)i6rt(6=GS}bZpnb(1%
      zrSFKIFBI3(bNg~EdVw~OWH|oJ|KPTXX$xh|UCn0(QVd7G122~mL+V_*Qa2cqm3DPN
      zN6Whr8LS|igMl<dz9U`H4aP&E`h4gRrO@$4+!=5s!#pk~^{t#RG&}!mug<VK<xW6~
      ztj&<Mg>G@`%2RWOVx`&%rA>#sw%Ky{WI}j@FkL<-#`c$ci#%Psp2jXic^v!Iyrp4H
      zlVi;bG(*Pn0yPp>GHm4Vucw`c()5jthC{EUFAYzc5$$V~HISeMq)y6@$UIP#K#ulI
      zRJ|ZZ6YCU}7AR~W4@A)>wn&2pi(;%*i*j-(u={tRR8(q5BDuwNEJCeg=Lfa)oof9`
      I-HTBBZ;X+hH2?qr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..421196e8ce839c6ffa2ee2e141543147ae5f5d88
      GIT binary patch
      literal 732
      zcwVJa$xg#C6dae*l(uXI$|k{;MI}NUK`kf}5>nJlQ15Or!6-PDYoqqB;Dp4158$H^
      zFKO7yazU2tx6F*kFL{1>d;+kKH3vC{W~i)t&2Ra@?P;luD|<bc8>3~%8ZoK~?Y6kF
      znnylYq2;0QVs$A)tHp(bJj21?B4gxWs0<%CC@^e(CVdc2-Xey=kyO$&7?!sD1nfqn
      z;s(@L;o)|hA@9W(qJ#;QD{xR`nDwO+Eql`u`kZ$n(y01zmq%@`Ws+ybyt$Hnh7<pv
      z12|-uyycNi@A>ACp&Sb1aU;T54;dD=wm*Tqi1+)1aR}4mHzcw6rJsouvCOcpMh@yx
      zW})7F_rOpJVynC2R3=Z`_|@!QqD|kP(Y(kv{RhcOW21eFvIcUrfWpr114{Q4<xru$
      zlvbO>IL0(ZwGj$4m<7^k4)dfzGr&ToRZnxep~~*wg$iluEETDY+L;Kw9ZTP+wQ*|j
      KBXuQ3t-b<!S+MN@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95d28bd460346cde8505a2dce0631ed484e42d6a
      GIT binary patch
      literal 856
      zcwU{7%Wl&^6o&uF%_R+WNn2X3Wx;|F1*<zmP$lH58=_L=stY6*V>2=nId+(gqxMyJ
      zhA!GwB^H&s<)IK~#wLWOD`a^tXU_l4e~#wouOC+ccJRzWh2eFa=H8G``H44HGS!|O
      zk3Funl3}hz5fjQgEM`AfN~HQoj)a36!}EFNU)3Jh!sG;}spcmR8VudrGc7j|YAPe~
      z?oX7V@m8i%?=q~t7#N|KYnfPVzjMq`^Rq9ai7J*`aInPS4rD40@=++%5f2k0v<F$l
      zlVh%=*_XkZ{wgO7ZwCKcbf2L<<w;Jg)tko1wfL6vgf7@9T_-$^y$|6~M7rPkWDIY#
      z(8d}=H4BHv<U$(5axAn@z&KN<rU9L~BtPMk3FSDHbHGPrWBs4=fJ#W?{t}+hNm)iO
      zD*X4fG=gT3<th^U(llgqvBXz~M$dyh(qE^iQlpu=OyeEe?V>^-(0JLsMDv1H6|`t<
      z+Ne*8J=~?${UQr1Z~?no#XVv$(}0rozGS)GYq0OASI-P|{cHwZArrtMUH_2;!5r9~
      vfnADhTJRPgl;ED-1JyP=pTQb7^w~mM#c>H?c!);}(#JQY@vYLQHf#GgmoK~s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db550ba8905a1d5f9fc9248c53f107f74bbd2fd4
      GIT binary patch
      literal 690
      zcwVJZ$xg#C5PdEsfwU~8P__eC7L|x|QKeFZgor9cDR-Az!6-PD<DmAh;Dp4158$H^
      zlZ72lD2hEZe(%j2`}yVZ3BVrKY!n#weHFXc{Faa0p_a<HayWFkF<SOxBeI&%?rF9k
      zYI!U4v5E{20-<db88$w%KbXC<<L+1)KC)r`32MDX4A#C>(li+=n_dETl`x4&W9x#U
      z*bWE6!30WW*qCCN^Q01;_@*!PIqwI=U+}_99$auOlRPgL&6SK8n%;k=Y%om3S~ARj
      zHO5f#g=upm{7{b>s+(IGAmGY(+X0Uv!q|lA@EbC-_~pDy&6VGn!ZO23ZlFF$JJ;n~
      zYX+wq#`;nm$z+`M-wp02s`R4dlm1D1-DIbGqIH_GCJOWc*7nW=oO_B2DAVes)fO=h
      zFhfx-Ltz$kKpM@XLK<|rsODPrG^Y*=?CxF2N=qlHNI5&sMQCa){h-#qQ+vNsS5nmK
      EE9>i^G5`Po
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c01302eaf728e177574038e8e1271aad5e7ce07
      GIT binary patch
      literal 760
      zcwU`S%TB^T6g>k-wV)`z9}9Paij7NCV`4}!CTK`XT(}!>Qpc1++9|=m(v^t|KfsSN
      z-f63%uyQl^b<UYHH}n4S`Uc<_I|ecgC$1k^4}8c+)*z6+vgBZ3ais#;iIhlsBCuLX
      zbQD+ON`xVIg@GKy?l|>_))ph>Jo<`{4CEOOrlVp}M+8IJ73W`FhWx4Yr8;BSt28yy
      z^0@C>4$XbnPCAj2p4IGkxhL%E4MVQpzY`|1C=_8}mZ8*?zPOHh9TBv7$0OBp48P%l
      z)OFg-se2hR*v)@$!Dg5laxaQ+m~cyv@nV<X({bkv1y`s#iMjpYkzu(~9h0bgJPZkA
      z5aycqNMhyJJiTHTn+&U|!&<1V)q06H2Gi+BL02@ScCazU{*l(B&%kJR^b-0QI?@X1
      zoTKWJ>MTWL|KRWi<};-k6zMc60uAJGfqBYy6Brgy0^)2DOC+MRGL{KV{;`_M)+p*(
      iw#=TsCG&Bs70VTqaVp2KhV=>R#$W2~RO(iY+WrKB#<g<*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55c5a0bb008a5c60f67e3ee35a17f8d168b845d2
      GIT binary patch
      literal 634
      zcwU`R%TB^T6g`93BA_TJz7{UrfC)CnxWb@@#H0x!CLsF(Cv{9I%`heKSGqEB;RpCp
      z#@mMvl$B{R_c7<3dr#->{pA(F3HD5+7)~88upan?Pc2_bPg~OWEv~ha{XmPjCzN#)
      z$6LQEhr&df;qWKvn_v^n5vnuuG@qI<7!DQ#uRb#d<6L@DHyF|tyV|4B9Nmd5mXOQC
      zM24ZzlAdS>!@f{m-gk*oY>fuo?Qtc;I%%f$y&N-~wf^C$&agb;Za^~3X2>~0H#u1u
      zsTo75Qf-BLmdicIYPx(pCcH_QHXjmWbMC%FgFL66!8UE4466lxP0J9Q?Ti975Z5xY
      zF}K5Us6j8o$U3b<uM|f519YxX)j*0qz&P4}M)rxa6!LUtqwWPUF0o2kIYwa(1t7}S
      su|XO%52Zw_7S%MN$R59hjHqQtBKi0_5h0J*`a>=Mrgj!mcOum82U^jJivR!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CharsetSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c79ec97fe30320b251dbc664172a480a6f6630a
      GIT binary patch
      literal 706
      zcwU`R%TB^T6g`7Tv7iVDKE41X*tj!dh=jz2A#5P*2bh#GrES_Nfxps~i3>l#k22nt
      zf(XWinPlcZ&N=rnAD?gU0IqSNA;EBC+JW)JXMAqBp0t%AUDx1Bd2$#iVfcaTI-U|^
      zqdnoCFH~<8(2!)P{mou+7PjJZ4Jn4JP4G8xtvcXVApF)U!H~L>wp2}qQl%4e4U5~R
      z(WAU=HmU=LWZM}F9ec=Rp&`wX>quL4gXvIseLl2EqtJ0i+!}CChJGAOs)_U&Zae>7
      zK!ag_7PcD}*lCR+V+z&gN|=tfU?^6q8=$tueV;HIVY+-u5+^_Mu}B)H4EfQraDCkh
      zgWhujZzLXMI7w-{vuMfm!;H2<P10|NFD-}e1M-?k&;e4HwO8mbWF?TLTaTjm#AxA=
      ztnw0tBjkX{I!2x}XkZj$t$O5Bg#vqC3#FpaV<eJYrehHr6r~+%d7Ik*m3kJT&c6Wb
      CW2cV*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/CompressionSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb72871d84bb9aad81579f93e824bfe50becbd37
      GIT binary patch
      literal 2442
      zcwVJdZBrXn6n<{ABq3~HNCT8&wOCsTZ?Rh2DwLLnm&S&GU5KWrbxD@67&dWt)1m#~
      zC%@<)P#Jan=J-wNOtE(A^t1oNzo9;Nvyc!{N2f5Gd-j}ro^#G~&b|A`U%&kh;5<GJ
      z;gG<1(W)la^}G6JqGFqtn=mVtgzmbwxl(nFgj20l%C>7163OyL#WozrEL+;HG6Y57
      zbfb6ObK0tIX!k5v-wYurFxq<89#mE@RSjoy*C3!|<}=d*6Y1wka7-XHH9eD_TqKk-
      zdport5Khj|E!>*cG=UC>FjjF<Unw!-@#VCPlPKv{F`;=D`X4b^h?kwe?dtOLrW78}
      zmrToaCj<fm@hme-mJ3D%0x=a`=oSc$`*vj@70<TQazaH2VJV$d(O#2YP!Xv~FRJK3
      zIE2#z$C_&h<7MJlWy=WT74lIqR!h3emvdAX@0*n{2AEUc&sD+=s!(xQO2aCS;HbdS
      zv}qZc>c)y;`!qz;<-A_X>b5E0J!J#|#0cuHnT|l)T}hgNNRjBG;U*chShnwx=z(|x
      z)5((VII>aPlhHTm5!+|?I}yfZfv$X=(UCo#*(CaEjlJv|h_~!!CpS(vHT3N6-hUfn
      z`gYTI(s9apla&-2Ms?KB_n^Py>Q+Iw_e}yTxkg4BDhc5_GplEtvdENS%Ym3uF^w6v
      zhq1FYJ~=X}2qqDWAcdPDyu%~dY9LdU%93lAOxH9V6=}?IHvH-va-SVINK=Dmer4Ur
      zyJOF)Zx3iJgn7=*e`i6UuQi>MwykqUCj7jrEFqy8OyOBQYRPd2G%SU%C~$ZmjEbzJ
      zQ*q4uhTQYMiX3i}U(+>g-7VW}^X~L{J}F;M#1HUM2p@9t4_Z~+!N>BH8JlkN{Q4Bi
      zZmy`ff(eOKP+?$|L%*gw8PADrWgY>?aOG*+Upw{gMupb`%d3{SVdQ_2A#li)X|*bg
      z=W|^kqLr(5-k34vdFX9*ZF%=MzZy)1PaA^hl@}7fB)#%F^45sIc6jSad53r_ZxF6w
      z{vSgpy`y~Ffdctgd<>Bb?BMtV^hi<h#9k@3d19XwgPwRQ^aL;E0?~dgr$o<axwhz8
      zEf<Wwsy#rQCgN<Phqi6>(zuO2TDNhE=AmC0>JUcwd(lhk3X{BsZY0r<84TkFUgtB;
      z6E($k7B?}+C&y!x=eml^81)dqw0T4OMNCj5b-}^D9VF^8BA#}MG-W-%?%FQA<`E;M
      z^NdI8@dhsVSR>v$5QvJO_ke<)>W&AZ*33SLz?&?k+4WMhtJ%U;!CQFScOCUz$yvPF
      z*KP1s_I$_4(gEM0X5Y_R_zF4vzVCHvr7ae{`WTbB!G}ohVD?wsc#2FNtH$G(?AR9#
      zcrhQZ9SeBZ$NP!ZwQ;>P_z1TIo**+v={<o=;G*&)PK-RlvcOY_^l+Cl^borCxgw~{
      z3vB)U=WspbIl=;8G4$7*)o&PV3qAOjWAYv1_@1M(Mdp9-(z#Fzi6Yjx_H(36CdSi5
      bq;-5k#7^Rsupz&TI0K7Kmt~i|XqA5e`|Ud-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f61ae2a2c9bdf99eb7f70608f20785100a7f5d45
      GIT binary patch
      literal 783
      zcwVJa%TB^T6g>k-6;KqPC<}IiiWAoujX_OJ2pb4-JHS}Sl(uQ71pi7`CNBH{KgxJp
      zD&lM9X720UGw0r!*SF^v07obpNHCn5cEIn%NQ}AbDO+>px?E`Osa~KZ_XF2;JS_+O
      z-025HY3obJ8w%b2$Qwv8lxGP(n>%u>+xNB>V*_c1!{1R;s;;mC>7RWR7}CeeR{Dft
      zx6%xIxg~6qx2bNM^+_hs%HmC@FDzNFb{SF)XCO03BAbJOd4_yb*|HT3d(!KOo<*#M
      z2;LQ*3gbAL(znWIIBWiM9d(AeQ8-6<&kxNsk`-y4R%i7yWKF3XLQB)}?ip4q)ftM0
      zC48SS24PxaNEB;d>hTrxC^8fWvAWt#B(FBr&5&t3f!CLpDpXPWV~psj=#MbkBuzyB
      zCA73qIu|IqqBu#`*xNsNLgta&1afp{$O7j`;{uE1l_xMPArC~}GFFHr^a@xdG|hqa
      on6^eXtR)NVVM>{fQmu$CHz~(-3>(<|(Yp1$_4?P=?FhB=4rU0yt^fc4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae13c0ebad48afff7f6ad2b29a2adcf70fb76b06
      GIT binary patch
      literal 3892
      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
      EAH}1Zga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e699d06b143ac0455dce979912cdaefa1918f004
      GIT binary patch
      literal 784
      zcwVhi%TB^T6g`7T5%DefSQ~>HY>Z2c36f}x4I7mGAd@<#PMhhJ;9u#=#DyQ=M;UKR
      zK?I{4(`0%d=bSlnXWl<v-vAt8+d_un(p8at&wIRY2U;p)%OJ41F<N#aBkV8=0$&@^
      zwJ(Gcnp4!|Ceqw<xN;-ziq;TeA<J<5yWAxAQ5oL1kYhL;Cw&n{>TT{tBCHP^47n4j
      zq&a0MRh*b>dn9VNsIT1GUYjA?@Vlab8O#@9A<wYnNF|!lLr3Uq-tkCd)$wn+*XCNr
      zd0NbxI~g)uIsZ198pCWa_8;#!<&|OH6{bM~uCE^%)+&2rpoYi8kT4cun*4zz*1z>r
      zkvujScHE(psv20Sda0M{$Sy;n<wyEfoXhyMyMMY*Zie0qqfyd9=<URRnkcPvl$|0&
      zACTKWctPQrq6~_(7Lsb67-v|Zs60Sn5lcW4En|f=Xed}qwW>)@JFK#&kx(uvT_qyL
      WK|2+pVW2ccEl*N!exz<DsI5;(TE?sZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d5c711ec481944ba54fa60dee948a033ddcf544
      GIT binary patch
      literal 1309
      zcwVKG+fEZv6o&t8hqjcFLpfPc0TpS{cBqG#04X6A6Ozi!m>R+b8DLV!l<8y+4P5z3
      z3Kt|AeE=WI`0ve7YH7To$#kz-Ykh04{jWX0|9t-ipp4fk+!0uBxRLSMYFj6U=R0m_
      zIG$%%Vdy&tQD_@M<asSWw2zE!&#T*h;I!PpymF?X3CwrX*W{KP9h;|aXq}{x6e#u2
      z>XfQm&BzWmuL1%C_5Jexia@1yn-16FLS=!WfQZ}pU>!7BetfScYZ^_<Z5XDCFn8Ey
      z*Q%8`ZDa4Y+o#tLn~v**6@f&)P#4guts^@Ffvk>kOb8^`<G7aJF4PAZnbMI$T3YvX
      z3?iMvjKFAbziHfO&2niajfcu8OJZI}21C+%q(jGDfsvZy+B?zlf$hhq%GO$kR<myT
      zj(k_n3=+t)h47OTP_wqwKtOC$w}u^7t<Y|?{8Q?dFLVi4ZCXLVL#CLsV;z&2_$M9<
      zn?{L;qHx7_tWdF|8$~B<cF$%qU+6oXF(z*H3~2Ex_kTB#Y{qOw{-OQOkx;JRtkezV
      zcR?xn3_wFpPJ!P_PR@Yqj8s;w)Rk+J-eHU|dz5cqNXXyX4~X5w1;)-XDNRk8(*r+|
      z+f8I=&0Q_~z&yts9n3q!Bt2)CrfcCF@jH0T|7C8)QruvbTW;{8R4|22ETM`bpO<)x
      zH(Xa~Jy8_c2Cq}xOobllOD@k|VDY+cMtR@!csq)ly3E2;bwFt?A<r5D1@>@RtEk?A
      zL{@z56iO=BM^!|>497(Tp5gfowAhPUeNYVsR${aiqts@umu+^jT8Ay;#Z7jhmu>f9
      K1yz(;ul@o%PZl-+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..beff50151c977885e987d38475c3dfe41ac72cda
      GIT binary patch
      literal 1363
      zcwVJbTT|0O6#kY=TS@>0M8F#=%C$rkujL}NDGih`(pqJFz?3d+FeIHeMR@fW>G;5m
      z&iJlB%JJ+blq$U0Omp`8&N<(nb9VFV_qQJaX0aMZ3&TRmsjK_up?RcMs+QxaR;8kv
      zo>#RBb&spHdZpr4JziAT+(O#5i?1Eeva_db7;OwA&FN>UIez42j~&lE3M0fYb8%Ed
      zDsS3#URyqOFoccGo%CiV$*`39uOj0NQQb&tDc#U>8bc(xyuFjtH)t8w@|vL=s|@Xi
      zzM9Sv^G4IwHG_6lvRY!(NbY3QdWsyKxwO93K#}=f+j1;#k)d^bBG1s4aEm;Geo}DU
      zSec55f?+_xRSYtO=7Zp|@r>w0wN0m_W~l+E6!)1rm8@pmUDM|AiF^ko4=V^G62Wz<
      z-*Sq4PiS!Axv8K-ct)s@qIn$itOLp4Q4kgUC{@7^xkKuLzOSHD(BssmW0lIDASV?l
      zf}Ez<kDPztPEpV^3c3XSfCf<GyRK7=)ymeMOnIoFTlnT^8eZ9|Ho2ZC=s|>`Cu2F>
      zs2>z~HD?xVI>uhvQ{Jpv0!uQARt(U{NTWt29g33|f#)VegR|vC8s6q9Q57ZbB}|W(
      z-0Cqy-}pq6M8Y;}HHrySjA0&-ME_s@V2cRos0a7mf;_WWUEG{l<3iEovu?e*%Ttyp
      zV)(-QC2ux;P;?dO-;M}|#KF-=HYAQo+Gt=q1FHnKE3n;x?UA;P-j{Hh)Ord1BrJZ`
      zcd+f=K6ZjDUoj-XH6PrN;Fb?=OK{f*_aqqe!Gr`;K8Q)6`e0UqM?QG`g*I!!Q+lVU
      z2w;)QU!YP~=rS*3nAlNh7{eMhtz!-bMQo5~3+s4AXd7?od58Dl*g=^ho=HVeL-aWW
      zZRs?wR<hyAsp%6uKif1aLmh<R%ES>r3@_wt#43(?5)rEf+Pa0-OL!T`#>fg^YcKoU
      ekPJ!cNXjX`JCI{k_sY4{#J{PZE=<*ARO%1Twj8<u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3fa0734ab5e92410d7ef6e11615b0ef88216509
      GIT binary patch
      literal 2290
      zcwU`VTUQ%Z6#fnYCWN6>S||ttt=5KXTCKehibk+4H4WMz6!6kXavBChCY_le=&KJ}
      zm$&7U{sCXHt_9XEU48PwC*S=q>USoS3lM8-)=Ey!K6`(A?{Dw3&+mWz{40PnxTB##
      zU?Q6@M%IiCV>42)&Ab~i3x$Z`y0)1rx-#Mv3kAz|WhQdXN+nmNbe&{bq@ht@u-3L}
      zH!nBc<W}A_HZ?R0jMvwyKrI-#qI6>A1A)fGT;er>i}6Q?myx%PV$OA{(an@3QGsA`
      zK9-n?-I(Fu$#l-lo9>iAAUw1{_-QL6H5?K+|34iBahNc9D=$Onz)=lH1P&{lNYOQO
      zk+_vMa#BYpx&%U5>H1~@N5ez${d&<5+R&||2Tuz$Px_&r3YQdfMm`%!GNODodeC%e
      zp#=hcIy3}>=x4HyYvePAol){Z9W4k7w8zc7Ocd8s(w;X`IWpYg*)JHjsrH^QgaEpk
      zmAh&>0+av2{i9lg^fzs&nkqjBl3<QGFZjx7Z9)RA<ZIe+W!AE{1dfym^B|^khT~92
      zqfWwDmo<dex(Fh|lQk<f=6I2fRiYK>qG`-=th7lVnVO~>^^p!XYMIh%s?ipftS>~0
      z&+2#y=a`ecQ#5iUuCumobE!3%cB4bfEx3RQ4HpH%kLyF#l&KCsSx|$@)0C<^ZF}qI
      z8nbPK)J}$L=ub+9x$^kFG`z~<RP8;?xaqhd#4w|pxwRFSaaF?=fwnz<bj;!!JJoch
      zZMc@rn(Vn1v%WmqiZ~J)uCq}Np6Zyx8|o5r*6eQspLSKB8#+$oj0$RA$6KmW0V9)9
      z$cs8|Vu`)9YB&iGgwtVJX|Cva8}AU?F+Y@^cvgwu({T$14P47-FdSZ~Q|vl24QYXq
      zC!m*J9qFo@ySGG?yXytEn=Ku0pmf$KRBAxA22-(8k5vJ&#_z0R!llyje~GHnF0=?G
      zt)iWlmrZqRj~%@6-h}6?LQH;}(7^h0BJri^Q4@%3Gk-&9<*Cly92%iM0}s%))Y1ME
      zp4!E+AJOY=pDAw#exOPNj`O#Rpuh}`r_qk9=*1QEBZ?EA1_;aP>4VQQhyYh@cw}@J
      z&sIS~p6UW)S@aACOKNxyC%tGiJdaZZQUAgiqBgG|Mts;YuIen%A+{@!&7SC%2d9^g
      zeK-yj&t$LZ_<qy1x~8W+E|uv`FAAW4_#R%^!HeHQyNC1J+)b8um$qvHDiO88TtC1e
      zY@!=m=)*@fUiy76EqEEP_+I{?bu-ua1H_hgF@1gbKKKA90_PgP$BD7~cwOKjM0{ii
      zZ%#DzH2sFqXiw7)l8YZV3Lf)O{qFBSM@M(C{0lDZ;N6EvRbv`w-GNWo0iUvXclly|
      z#;5Uf4B!h!@+CR`iurzxvy@-LH(sn$rFf8m<T^n8+tlUMU=w7qO5}Fxn&dA)ya~LI
      S9DC{{rR&I(0|CqPU-$=Lj4@XL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MediaSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3732dcb9ee09a77dec64d016637b31d989085bf0
      GIT binary patch
      literal 1762
      zcwU`UQFBv86#ljixovup+FB98QWZ+lHe5x(N)V`(VjvA*N*H0rnQgNZw%*)(y?4VD
      ze~N#=SA8j>Bhx1z`~&_Q_1l{?O=+0v_>k=0v*�JKs6GfBo~@O8_6^p@SiT%gvze
      zZOW%|%Zp+i7*9u$Cyj~qdfO;3X-82Q8`bbuRYS|#?x%x{z)XMKUd)=>GPP%cky{S3
      z0_O*N^`Pp~Z>wZ!_dp<fRR`K!6F8Tz*jUe(LDQ@8JZP3WmbTHpR|z+yuS$iwKxR2?
      zs2qkd=EA{<z_E%BRJGk&SMi!$_lY`@y4Pi_?RVFhF;8?NuvqzjDwG6{Jhk*K`~j-0
      z#7`;qPWx#Kj5U>6mPR$h_?f_DzR(A;?8_vfk3*lTY!TwEedpa2BRIiYTb5L@M^fM<
      zqn45++|Yz?^rT&iW64a5`93x^WlDv|mBBqqj0_qw?v`D0@E&>Y#in=_otPX>;j~qL
      zMqoH!sE^?ToN@4>z|nn~T%5(Mz=$>~mL`k^-rlV$bt!l4r7`3&=b%944xYN0#{zp7
      zaL!)U<?i~X+A!4RJX@3Ml7qlUF6aF?6PvIjTn?Y$l7ow!;X$1*N6`aj)JChs#btad
      zFiuHt2JKegoZfovc=l5%yhhs|5M}*L;LKq<V0A9JxQfrIvuv=_Q~3cIA6faXySRZR
      zPS6vXR8ytcnMW33*~OQ*NdXi6gG$Y1Yrf^;E0h^v!tS8t^N$Ch53o77!`phuDPqP%
      z8GA+dPa*B571=x4iY^Gu9u_SdtEBA{aH<cmH=1-9(soP+jhR5M7PjLJwW94Uo!o!B
      z(}#<LLt^|L;iH-1%IAguqx>q<KFrmbn_qa2+%Mb?!R3FBD{vcG+`&=qW;$+o1IK`L
      zH;y+6Vs{gmq&N9tsta4>YR`rz#Lqp*Y-(Cd;oQz~7mjxb#}9<Q^J?g~142jfE>3ns
      zcj#?Ptp1Ku-#o{3b?yb;7r2u731?4aUf`Udi>OQ#=eObgiVHhfTwVARqs4`7TzP0c
      z_+bC|@88AZHoo`+i`!V)!R<X3vuT!1iuWC>_gQs-X@tDW5j=d4OSD}_lCr$mVS)-)
      lxlXgZD)|cf=5QDHh&X~3+{f3fWE|H}qcFBL57KP){{S92y?_7!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..583af160e22796a17aa2d04f87f65ece6fda06ed
      GIT binary patch
      literal 2774
      zcwVhlZF3V<6n-vAlaMZNp%h95dABJI5k!g<(U67`nx@FM#Za|wlO^4{*~Hxq7QgCO
      zzpFn$?5Lxb84wv9KKsRA;onf7yV*7&No9s1ncaK#yxnu2bI!eg{`31E08Zo6Ft!L}
      z%T_(PtliO8k~Q0~+@w*fB{kQzjm5gFC!Kn&R<&Kdl$@%Yu2D1f@oKSN(Jl9?W|d6C
      zDy!=nVFU#ZwYqA$$yoJ@de?Hbl`ujAr@CuxxSG?<y6&Xb1p+(NY<?n_Ss0&A&rW6X
      zGXj&jmlpV#z%ey*J#`~B)7(K_n9ZlBb2;+H7t+($vl&(3NEfvZrGd6s7xI~#3+mNO
      zhEexAjL$01Xp1JZ+C86>2_#L;DkoJ>!dSNJ1j|FfSIf=6)LbJMi)0z@C4s<Dd`=*k
      zu9oyD1o{;0LBBxgqAw2)W#e;ODcPqWjEJQ6E7;ngUQrNjPzM$CA`-?Sft~FMMR0`W
      zb4ZzbqU47a!7*a)=rzsO+$P&e)U9IGG|4L^iq)E-I}w~9>|HcF^oEFh+cpVH|19Aw
      z>AEYU99E!Uo1{h*Y{w3Ul`||oU#~3cwhwhIS1oGhoMs#H+hax%Kp&xSmkdXs=Z-9l
      zfXK3#W!+6PhH}-u%VG}2TdJ8hHOC>?Vd~_y3N8Ack^9w-;5>n-_*H8LzU0>}u~Ay~
      z1zoAF?Xzbn-nD^tQ8CljL&w*3|8F*F+fUn+<5Y`=1h-`Z$Nca+?H!lFYWC*M$1LAv
      z<7}Q~7?&A!Gn1@EP<30j<hX(iuCQqt*IWa7Hf=VF6#AmbVls?tJaxLwN48d*bq&*S
      z*&YgVm|}PO$h71&G1LiR3uk(9SueU{o8`XYXe^9rfzcO4NMNu#?kU^W*jtl+kagyh
      zRCUI)Suvlx)mSf7%!a|kXxlSB70gMXgO2gJE_L2lP{1uBZ@4;VuWGY7)?3)K$@+YH
      z`~V+?@gc{jQ>tJAAJeU+uej|);Damcyr|%9T#}wj3Uu7&<Sc1U-ZNss8Arg;T{*JP
      z0ztl8sqx6Nb%z-XTzGM01hyD5#%?)s;+F-YYPD_`^(%%PsT0pVY`traH!XwY(}NHO
      z<T1+IcR(JZ-Wv7SUT@tmk0@{D0mU`K|4!_pb&OwsAqe>^KZYm-9%A=>?3HBDBL^he
      z<B@}s40+^%@DsdR2*eJng<$NcTIh)#R|}!oYwCT(DWab>?4@jt_g0~24TF@f;Q+-a
      zf8|zNkl;Iy-F&AR%w+~T!LKXm$0QEo8V=(I;&=}un86u7qnO1-_EHKrG0yJ^+`<%}
      z0_IWV`!>$wl;;^thxd)2+$C}(FEl*(5Xt7=QIA_9e7a}X-_XMA9$=C>&3#!Pyn(a6
      zuY~sv1Y+Ws4M!o5WqD4NhS+x^@Fvc6n2xrau5>XC;w@b8O;7oz#4_G)`$dawaKm<t
      zNOjnrY`6WYi>;93;@e&(SIYWg?>t7TF#G`NhnV;cSDzx^^wq%e8@AWiE&lp^e_L^#
      zHEj4>Wp+JWM~5HbhQJf#r%2rt$Op~^?_po!5#|M+LgYsF1W!JIrhXX|WEKU!{rB&Y
      z=9VYu7Wj@^-(wGd&&^h`7eBCNeq_u1#Fkkl@;`gwoNa80GM2a=W}6udj3Y-+%lL#I
      WchR4TioA|-lyyAgrCs%QtNjOxy0Loz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..178d41ac7e7479af4a0116f414229af7286dae50
      GIT binary patch
      literal 1375
      zcwVhjZBNrs6n-u%+Zg3-ya}khD6*lW;!8AcArhDh&Oz*4LP#{-Xl6;*F6}MCzf$->
      zqR}7Vk20QnDPxR<Pc&)oz2}_gIp;j*_V2%+e*i4wc??|)`I-}G`^JHBs5Lyx;hNQG
      zXa?t=RSCGM`9Y)MdfeR8J_I(m8n(IaR)f0f@J+Yk>*wAW6o#2rnhT1&6V&x1hZ~16
      zL>ZPkM>VO+h8>vx>bZlVueeqEqJP@n-uhU|uQR+Y+(^k;hMpGIUZ3zztz=Ye$~nAS
      z5D7HfaB7+^Jrv(>QY*5)Fzns#jnxv*Rc*_$_zFWLl`b<VYwn(z07Fv6Fh&@nxzMkq
      zHqzxD@{Fm7Aue{eRP-Po!z9CCd*N~1CJ`N%XPVW-ahJMp9tFdUiUfMaZcc@YK8AsU
      z<(S2wUNOC}-DJV78g|+6EOC~`1R_XMN&KtjGjtyaaTwSJ30gDxn!(MQ>m8AxsdS5?
      zYqsJ0)O3tuibkCfBbWT4;&CidVf9eC%w8y6W}mdXXoluOG<xg!MpNmI1015jeA^7?
      z&ttE<xr9yVZs1kTH<kd+T{}*B#W71-M(FK^f(bDw`s*gdm}s38V#}4JrZq~|ehg6b
      zAf3JuLOj`DU^|gh44q(9Y!$g3@BWR6ok(&@-%*lx^b<^zf#QxaN|s}clWFz`!Mkve
      zzH>6+OZvW`lsURfS&U%?3s@z~YrMh}+?Uayv~<(LB38&EY|+K3Q_NrRC8Twe+IlZ>
      zV`ou#AoGab0#d}mkj7%jm62y4l4ReTL{VufNfPzU9g;9S#G@<FOgr>*2dDxKk3;BE
      f2qjIX+p$&)R%v3FNsBAk*><eo0n6}IMm_rvk-amo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OperationsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90fdd259480aab8cfbbaa9f5d13382597c165485
      GIT binary patch
      literal 2682
      zcwVJdTW=dh6#ga`d*f^pXPc%sE-kbrDRJC;OPhu|_O?xNli+nsO<Tgo-Z~DBZPs>3
      zq0n-X0D%Ar5J(`EOQ~o9scZ!m_a`Li3opFz!V5g}19(83xztHR#7kxEoNs2%ch1b2
      zZ^qaD`TBbRTkwn@4Gep8#aejUp0($~Wj9}}hV$ie*sfOH{A8`_ge$djx#U)zY<RTn
      zxOO#PDpsuPV}3L-tX)W+Cz{3DjCHD5wdefsG4wC(RS%W23pJ+_xjw<rGL{$~NlqLd
      z9b(uQzllZet;ZTq3^VAdNPIXJNt!ZrAeu1ioi@uHiA}^tqvJ=+ktBmA`hpgSMn<A$
      zT>2RYO|i0xNHUoi9vV-Y7Lmsy<CZxgQke-ND<_)j=1@)Cz|jtk#$z&OYr>415zDOi
      ztYjpi_ODUTOr*>hLpwoQ-F%wB*m&ZgsS>qTs3gT)(w;0(36~v<^O}VVb}<*W#0(Xq
      z-Jz2a<yLNk$8NH`+CZj|FXpR*42?a#DTbzKDeDBluujJvxRb#*pyr!;hI>;jG_yg6
      z9~wt@>1dItS4TjiyLGfm6w;wf6xPuu(H0%;5^dAbA<+&UL5X(h=#=Ol9fm}Ebu5!;
      zpN=kx?$xneqKJ-eiK04INM!0*3C)j#48g@k)Ifr05tRx}mnJpbSMS!`yoMvBvRS*3
      z&)QW-I*igeWn8D;zn|n%af;bcwv?&OIK`?4t_CqALX2~QUCcNINqB%nmvcnAQ2k&k
      z8qyS~Y}YDINaS~14aX>uawUfoq(0tL(>IVO$aAVx$jTHp$;WjHj$KiU%!q+X)ppf3
      zNh=x+IPR>I)sQ18QID2CpF7VBQFC)50x#nuI#yvdM>9Is;1-6Cc)sY2)Mh3fSLx4)
      zmoj!CWxILa7lQ#bVjZcaI+d?5G|zIiGB7H8D{Ur9b<CCAQ>5^o-USkm7VJue^ynv_
      z5qpLhT{q0DE1-dxU8TB|Lv?-Aj)-b4yhF=-dY8OKo#bdPx=0(Y`~Kf+$e$zPj-EVO
      zajN3N@YlsE)!dA8AkV|BT;i6A=ab%SBGA`NYF@?f55427`0WukplqwMy0UG`wkzAA
      zY*5)wWesJQDchy&a%H=fU7_qsVOR457M6~eEML{FxQ$kMJJ9e7nrIB{(l=n~=BrqH
      z1?xHV3Am9%zkod)Y65QJFep9x1ePxS0!yFG0=EdfRp6k&+XW5?yi?#-fp-h63%p0*
      zHh~8OZWnk^;0}TJ3*0I2kidq(v0&$SIFN2M4q53Y<FJ)(HsV&=XN*{BzcFT|H6vls
      z+KnW&ej`P#W*nuq#dwg~fN`AKR^uURb>m@b+l)zS+l?%>9mYv&gT|C~1=BnaOE-F0
      zPl-Hiq)Z-qD3ymzl*>aOCG*hFvw7Ie(|Op+^Lg0L6MERmGkVy~Q+n9Lb9xxyNj(hm
      ztRD9Bv>t|dUJo%!T=<-hs{uu7uVE{-<8+=$(o~vsag;Q0g3k6h)**vlOrj5Y?7$Ru
      zql^ejh@pxjs9+3p#CVK6Ps70z<Z%{{;tb6`hbQqY^<Kb>cpfj)?@hdfxA7X@$E!Gx
      zH}Dx=$7LG%3UA?Cyo(?44t~Np{6gPvcn^P&=U?~$f8#^u!+B=lBeotFSP19XW?W>u
      z=sS)}><m6(7w|E=h;6hozAKO#>HkP-6N5Cu$9$XCTt#_)-vKfD1>LeQ1+QCr(fYaG
      zIdW--^c>M{YARMp^npf$U9Jc6iJ>1v5M55IAPloqoW<0+#nhjdpf=%gs;8v(D=G<O
      wdNKFc1>B}O_cT@iKitA%?(a)-pQ7`V+&;x^X#R8&^Unp$hWcjDir&-z0x54q@c;k-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5e02a44882182fc402f98d50abc4f0a160d7fe7
      GIT binary patch
      literal 2679
      zcwVhlTXz#x7~Q8$Gif?p8rnjs+y$FnhzJ5&Ktl;Mm?kw-s-YlG)6;ZnnuM7N3-nc=
      zea9c5h&RewRAk}e+2!BxZ>alBCQV2K4=l3Q<ed4wZ}0DV&iwW7AAbTk23tdiK%!8p
      z##YQ*=IvO;wn}cys#Id8>)O^r)s-=)TB($6S1!gfwk1oh>00GdR^F^iheD&S)esQa
      z-%Qh>NR+Cp#vMX$YX}M)ZEv+fHD?w{9<M6|LNl4{Y&M>p6}XgoEzwR0bf@C!3&v!8
      zCLz$9P0S^-M&d@3Y<peSaNgt4O{p+zE)*Hnj`@^|BUUs^g_z-KNV`=sSuX?MY-;|s
      zg&aDQFIpwbJtxpP9Gw#gOqLgA7y^Ad`Y|97Jmc#F!^!AeH#NI-Xb7p@ZXMmV-5WZ>
      zwcTDFJqT&o&wN{x3E?1JD(ALoxgosCno+&z<jsl<;RwrS%UjZR<am>Km`rtX9jiQz
      z=+Lo6?Z$L$#WsO$DXS#Y)zt-Q`=yGc%6YRmXWEu}_k>||qL1mg%a$Y1bxRdiKqT3W
      zf^;WMR~E|l9X4Y)+SHB7qUks+m`0nlxk^Oeb9%p9A)FT2S8h~&+^&~>e4{IDDOrr>
      z&i4;T+xEVfhKZK;AFkWJ>{zIABsR0O<Ve?RE)yJ}B<?unyu~aRn~uXNKbOsnj>|@v
      zcKb<Uy5|{t+jKQtVEB!ck|h>a+G?~e>bL|>REXhtiG?wVzA!E$rQsu<`F7KttW>VJ
      zR?%`T>FAh7np5Eyrzw$3!<(zvB*`qS$h<r8qGUISCN#_l9Djw92n@9^a@@AfJB<LV
      z%q3<>#`2<GzP$21n8loiD*{`d<J0kpDs8~AzLd%)r{gN-S!>Icw&|8_PC<QeJxtP<
      zlkqxkX!wkWX0uku=P*fIlDFN~(f5n0I-A$=0X|erQpXYsJTJ?pllDLy!K?iD#&KIq
      z5h!<8E4*xM=~Rm}IQeQ-5$Lc~eC_h%8D9|y8|A8<mlrK{k`BJ~dh|Xj{H8HDK3xc6
      zP+ffd&JC(-&s)R(+T*Re)rI7(ypFgktL^9|I>NWV5rFzFKY_>v*RkUvcB-xBZ3oph
      z<ZXx4c6-fYkM<P%a-ER_MlKLJWaPRchmBk?@|N)sQL03)a}7JGTf-ogYZ#(-4ST2_
      zeL!Cw80Y_G&;L0_bC!{w#}33XfQ#6R1P)L;f+X#xah%Utq-l|%W*Sq-@-52=GO)<C
      zfYUhYv4Xkq^WbN8juIscjts3M*6<tlq}N!x>mF{PW`(!CYN_2Zyh9EiHJtFd#=Uo-
      zGa`Q5APRb-C67d}seKZGcX4tP^i(Uf(gqs9dwAc69`&KDW3(0fRTDO_ft|pa&Dhaa
      z>^E((XIZftcFf0i1b=Ele%plX*hrSA%SWCkkJ9x;;!iM{8+nApI;MU{@)<IXC~6(}
      zj#GKJiLcM+>&D0IYK`w6>(a&b)W~BP0#A{d=I&F0bmz&y_t-W57}o@zL8Qj|1EY_y
      zV0;}A6!ONq``<rf4VOnq3;aOW_c;1L(%F6N#LpbGUl7HwO!+>0_P`70M9n3ZVR1dc
      h;ap*0Jf&p%0!1?Rl5Z6y_07g1lsPUc?TY8^=KrMwejWe-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a29d08c318ed1f5bf806e2dfb6d7aadd702ebbcd
      GIT binary patch
      literal 1332
      zcwVKGYflqV5Qg7Fm$sC0E0n7Ws7Q;J6)(|PY#@jU+5ll|6GEa{U{lwWZL=2wpZrS-
      zA4oL%1N>3O_Z*f|OT!nMZ1<d*dFIT#bN0{QAHM-C;CT!k0{My)=wHl3^GL6|w&Uw|
      zy{?<S@7lY8Z|Po8uh(4P+SfPDinV1r70WX&Y%yp8Q_b)txatH4#<Am@M=?YN=G#X#
      zQkBhWV0p_I4uPKajnXIM!{+A3R%!K(!0X}-3e5|2HRbB|NI8{~xm)E)gF8i;R<DxL
      z4dr2cuf+ybRbg0R=Y|!;7x${RWBUbxNG4kr&{k^uRssU4BnB}g5M2!YT4pU<?xJTn
      zi5TK?HJU^h;xUX1^tYB9$1Mux)cjndhB)r9=f+lMm`WmnZn?UfL=rs$eMQ@`)`Npx
      z%MF`M6>EEDwQRb!+$&=O5u{j>|Jn8gIuE5J0%DCaRxE$T^sP$GJ*JGAY?F>FRnzm>
      zbc`|U<^hSJ|NNoOam)*(>(ndfD#0#0;0VYX&67%JvTbKIz`)g(am`%BUUxOgCX8C(
      z?pbeb35~XyoVvOETsSp8ozO5QXTnctOiqOFajC0%Q&qmBwDzKp(f!<gB_V(LpAg%T
      zGYp&}Eti^Fj&%OQ*mfi}VQg!u+r}v-X<*z5(zKjlgr@25#5-`0|8qPFc*z4^@W@48
      zn>>b5z$})K<MR~D^eo{OSN9bK9?#1a7E_=_+M;t4XPCLnn^4wwZ126|hR>t$Ks6{=
      zv&b-qK$bO}=gO%)5J`z|jYLspDybyNb9b0T;2|DeL36F>$2O=29gjnFK18X_WGibo
      Xv08&&z>}-&bSvw%VFgu`QP2JXI4mCq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52db096290eb78d1504fffa5ac181330e38e3bd7
      GIT binary patch
      literal 2459
      zcwVJdTW=dh6#gc0Y{%I)iF0X^LTP9loU6H%v?W(JSEtU^Nx%&hHu1*Z;H=H=x=N6E
      zL*gCYc%oELRpJ3ssi9Owedd4gH-K-)8^>{6q^h>OGkeZ_-<<QEGvmMh`QuLj?_k%5
      zDuI!dkq_^vch$Xc&eRP%tmkrJ)wWH2GjD5QE1%0{O<PNbmmKeMUd`zCe*DPlgGb<E
      zDf}2ZW#o6``-ZLV`QQ~8sJyC3wXSCJniV;62-HljM5b2-#$vA&;*fxMVR2<X5)<&u
      zMrURP>MUZ7)T+9f;XX|pF^4>yQH@kME<MDY)fm2v$z3+S@yc=dhqp4iq1&SZ)uHZn
      z#xs#kY5_0?1<hz-q{FV?6N+}P*V1!Nfe(IX)~=woFgvdx0KX5f3pA96?#COHE@`UU
      zwjZ5jG_vNdn(^ZjNz-~N?GRj1PzS}Cy`|s`&I;7WbVFOn?`~?Qn{P0d-BL5_s;N8g
      z(ilKBnn+`(b&H$ab<`0MQ7W3!><QJ@Qdx7K*@U`FB%R2pmc{IST(h9=6489Z?@I2+
      zd(2h}+y6yDyZ)l2tOwEY(z3OLx+@m0kqf8FYIo&m?f-Qtv9-i5Zf{$fEi1&tT4{+`
      zR(4BgcFB_N47)j;X0&Y8NUG+^Heh-q0%uO7=ffDoJx(ENP(aOe`XQp=CT_4}xV=my
      zfKfCBFohW(rg`KlwPG}vTeEdC>zbut77V|^6{95Znb2v~N-T?;JKB~#^rGa7L_<E@
      z66k#i3D~!l#f+GyO7EB(Se`kA;~HalQOznVT!%$0`>;frPw*&MaisKE`j?usW>vu&
      zc=-Ift(mHwHCg4OhLo77YbWDJxa~uNhvBqW!3I7it)cDN<t^=s=v4BKf)5~>K2xA#
      zljk6<S_=}y7Q4--Y`6Nd<Y~8eb3DJMX5}+nFz|9}2vq4#T$S?TncWcx#It#GOPki6
      z6Vg%f&XRXF|0);^e>MEJJGT-4KH8nTNR9zHb~qP`9C@8^biDOwAgYmX_uzr^S$+zU
      z@E#)g2(8Z4C#P-B)GwzU-e-6%Q60PxPk4eC<B6K!oAF1uOshy#AE1@y1GLe8fDSsk
      zej{lWLVON#V_<~a4l|SpnlO%5o|g-lL?>o&4N-cdn7|yLw=mD=60W0LGJpZ{0(Qe4
      zrNyy%d(I!C=Xj5Rw60QyHHm92tU|Apz?t=-pByX}!Y)_g9jFe9UyDRuX}Tjxl!DtO
      z5qMkbeG>X^IW%1X>cLgK??MM$DAl@Lj<rg#o+5UT3Z24sm1DoEh`o**F1F9bR(XFZ
      zLw-|&tSTnUqv0ZNlE?8i2Zx_xG|}@I<A<2|9h1*7cN|5b0^hOL-<I$-yL`2Xv91Na
      zht#Ep<F%eASP*!Ixp~gw0t?lHo(E{_e}WGMo<qd?T0Fgv@k#t^kD&2Wf$#tQyYG0*
      zF46)&aO-;{{*jyA$2t7Oruvy7JYdTADf>ei&eg(}*g}$HCmT^?U_5H9<u+1eY$RVA
      SI)iJ*CG61dr2V<vE%P6iGdGX`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93ea94f318adde7439b56e5ecf22fefd18d22be2
      GIT binary patch
      literal 1820
      zcwVJcU2_vv7=BK&&6Z?oZD|Wy5Gh)dv}Hjms6n)}RwJQ02J47dC&@A0n(oH^sKslP
      zQO7^PA8?%ELT~5*qocR}5C4YxoXs{(n|OiF&hEbFywCf*pXdDX*P~wnT)+(zDS>NE
      zH?lY7w%oDXzT<|r({9@`41K2-g~|@1cH8qq)v({!TIGMB0<RT?j^|eQR3;38*<Ox)
      z`yTjhH<UXjG6LrYW4nawvK6UdX-^@Lx#GA^c$GrFTrL;Z1&n2{p|VILXTij<z-YyB
      z)mpSwQ~pg^Ytd-D;?-qqUHXn*C!0pN;RFIJmH(f1N#I!B_kv(msm8uuK$HbWK0UNK
      z6fpyO&Zy5L*`hF+uW0{vOS(<_z1pU#ho!<Tozig&6POf8d$moSMjuQd*Hq!M3{}(f
      zZ!?U1p$D|wl0iU>Nz9tuV$u@_^i?M5HcP`eEpW2kNpHdLhPu$rU0{k7OF`h(9r|kY
      zG-NSh>~CTaO1B~X0fj4>I4f}eNzJklc)`LfUKDsnr`=!jmG*|ia^(wU4K7$HYVah%
      z{kSY<kQ105oY|7^OBQq`=?$$~c2%)4pFDZGIoP;h;=I7o17sFn(%~6_^QF?5MGG(E
      zlEAP-dl`B@>%P~p*ruH9lkpY2X5v*2MZeZU30Fw#s-5s~%agg$)wycnIh@f<Z(3Nw
      zHO|R~4Ax>JR`3?TfeQ6`I#>bjhg)sVFDE5x5peN8ltduq=->t=$8*DJ&sM$2ud7u@
      zAJ)_Ve)!@mgqIk@;yc6(EyF)=0)CHhbrS|3V7NGa^3*P}KT}S@;y24b@HVmU;3%bH
      z2Zs@i0<rWI#>k?jaZ0IJIz~x*;=xQjT&G6sM(2KqxQC(i{o>p%rtWtgjnF^`V&X#@
      zd=xvI>X>w$jp78JCLu=~(+TlHyav+a;-@ZICf<@UiPcdjBs|18)o1$bVbjkBnsO8p
      z(`6P>>&6~q=Huc6JkK|8>|$=8sFTn(tMLWNwtEQ262c>xk7Lk;KN79`a=G{r=LCMi
      z%neEx1=iA+j301f;UO*y{032(pETwk;PvVqLvZsAfqQ@dIlu3AHm1A7#(hOcU$X^w
      zaU9<;@^4YVcXWA|2k84aoW+hyX0yWo8RYO51LIgRtW`EWMTS{6zRchza2D@!ZBTzb
      H_Ez}^58bff
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..561eaffb2400f28cada34e805e4f6e2dbde8356b
      GIT binary patch
      literal 697
      zcwVJZ%TB^T6g>k-wV;SkbmP`XaN@d3q9i89#uzK?2c6V0rER8D1AnC}6BmAfA7#8P
      zh%a`g>CAncbM9l_-d|n;9AMKzfx+>^l;4X7G2pRQq2VfyxiChnUTP#y(m0N^k+=LZ
      z%SzqR%KMC2C^2k(Cw~z;S7+WZG-6<(%&<QlG*Rk`AeG7SXM&-8s6u604E1d{<ML3N
      zOw-xvGL+iUt+Y`@r3wqP3^iAU@*?f`q`nrtfcQ&pbR&YU&?@uC!IHUC3B!^5kC`2Y
      zVyYFx!q2`KD!w#rVWc1FA;a?a&Ik~Q(C6(yBne?G!d!?x^|JCK?@{g0cV@B9uo{o5
      zHmOW=(hGy_MXA1#rz#tzF{QP9$@H+)A^kJ-$k|N`qH~VC77FwM<=wq!*iU2?P^Ht(
      zqsPQJ!8}=OBNP@;19EE-b<&`%VtK69%zdh`#2zO?<vetri&RJHu?WqJ)j!m=-_*`j
      JY9mK&d;m9NqoV)-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/SidesSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac100801793f0d7745dfa3cf826bc8451b6b6204
      GIT binary patch
      literal 1511
      zcwU`UYg5xe6g^AR2PN_-4|$28qAgP5TM$HrmWTG?kW%e1+6iq8aY|B~6k*2C{vL%7
      z%;@M>XZ%r)H`~yb%J_lKBzyPVJ$KKZyXo&g-+ltPji-LJF+9+Ws`OsjQ}(5DMK^3o
      zFPA07wk!H})m9~|S}vOvTP;emUQ{jlWa@{&Fy72-aN<UFS3WRoW#11U!_3*M>ZP(u
      zsj6DfP7)05=~O%~ugBsshS|jV^vyH$W?rRhW%7x1YBe8^t;QMp8mPRM-pIJHFShwI
      z5r0iVW;3~zAf&^hJq#_QY?nw=?^ePQA(a$ElVqNuEjm>?D%bBWo7+0S-oQekq#L@u
      z$lwV_vJAqqSyY2y=oc}7i==JA%?si6NVc6aLn8bLIMIlR_F8mFM6ecJ7SU0QCPat`
      z_;Hn?yY(CaOp@oOp++r|R1Dw-9oPP7)~3;tX=qWksHp)&$i7Cx+9BmU<Lq!##07LZ
      zQB*`1x*56>x}m13yW48TbtjZC3rZ=gRCH&~!5}>7rvuqLy2aq#bG&3=>*T+t+RKWq
      zYG&nt1cf6_4OlKImPMBNX-!JmB}U(=yxX7v=17L4){54Rr>+r8Zf<UWIC5rtduU<2
      zrNfgaYyWrei5ry7YNepA==}DaZZ`iS=nJGq)8nNU4moY4uX4y~A|He9*x`;MABP>2
      z`A8Pi=p(cTA*#|#vtJP4{Iu_2InOcrjxgwi0uP6s(96To20GS2$9+F=CFcoUlXF7o
      zx}5Wd!txQO2&HO=7$o=*!-OAVloHclX{$EO(0heM01rv*A_;j+w>6G2#4v$1OydP*
      zl7uF)gcMeh#&e33*nmt=p56r--{B4<UJ-N*y6^6x771}M-_*!4ZZ-A{a`X+^_m=Yp
      zYOBcB05`!$_3ly)hI_d0){62u;0duW^+G-lX}pM7OS?tr-;t!ZQfFJKAI_i(c!YVE
      iI^$Bwy{T62rzWmY=Pr<2|8S>Uxu4JAGV;q=_2e&|89o~T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c90e6345f5f84d26c3e4598802e246fbf7d2b5e3
      GIT binary patch
      literal 1598
      zcwVhlTW=CU7(F8tR=R3MtG3o!@1WB4eytZuX(b{mORK~Ov(Ob+>4M9yv56)=`)d>*
      zOf>of{2%@e<C$SwD^_2WWM|II_nkA}WhQ+6{_zWdlbDHPgTQpd4U8w&bL)lC_8iwY
      zoOau=eBX0wfo~g~pxthHzP)J7drmg+AKR|))Ggm>x#o%~j;O%IT8*Flyc;Z;%dT&|
      zh$AL2xxUw`)PmIv>`r#YAP_CxF69MgivJ$wWr6MG{N4GySt*p}9?qNj^21X07S#u)
      zvt}VD5SuB?(JC;Q%a<#K*+MQ`p?R>wW86l?sx=wWwg*KShtag$hG8lTl{ec=R7D@U
      z<sbZ?khQ6L({UaDsz4-_USLIXtwlQlfngmxu#-_wh4yHwkY3nG%ZQFRG>LZW*w{mR
      zbR>Fcua3bU+NVQ@7RLdBq5hmS9HOGza%~MqSUJyr#?JV(WP*<EWn62CmNbi3vpP;)
      z!!bs(=rrh~A;Y58ZO?Ze$&74ymZ4)4HcNC;#}*6;Y$-afT?&?JwinhcS!~s<=7Qxp
      za;-KKh+vq3_>Y|q&w4H^EFcOzpkeztiZ@!`GP{yWuW3uJX>~d*UYtH92Fmz<v4?Hb
      za7AD&@SKeGOZ_vey<uZ1VXp1}a4Nm-4cJP@eBUKFwBq}>he2+_Yz1E3o^>Q?@1O63
      zdOm!*ybJsW*yRz~X+Gx>*=IE;!g(;9bv2L5>Z_Tx=N#kiRwSvijjL~nLjGQTf~ZD5
      zVEcRQk}#^^sDuLwj!76(a9qN;f)m<j?5{?W2hD0UdDyHDBvWQJmON@!<H_UZdrZ<!
      z-7a>~p^H&^bTLMkF2?E8#RQ#Bykh_xaEfC|1vSMGFEfo9u5!HUH!zMl>_ZW0+{AI*
      z!5Q4fd6aR5-!x2GE4Yh!j%D1#eJpc)Nw3pN8BCTBCQSJ%cjR8|=<W|V^YiS4+O=5R
      zn&R!~dEu-oqeSO;Ca)ka;9{tiQEMQQ6mM6BVruKD6486+P(<Jo6YHl=^;3g&s8Pm!
      kEu>C{R91AdpZj_ZH@eEbj_mK;6aCyb>u~u$p}cZG0Qa9-jsO4v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcaa2fffddd2874d83fdd48dad270ea376104717
      GIT binary patch
      literal 1372
      zcwVKG>rN9<5Xb+AZri1-TnbbQilBfk3aj9q3YrSBNv)TIO&a{Nl(nu|wskKA;<NY;
      z3Li)``T#zZan9*dN^Sf?o82=zGru`={<Hi0&-Y&dZsSoLJq)>;6X+j}J!4;QxR&GV
      zR->UCzVBMwfp6+w&}h_M-`vsPx)wL9fou5({KOfD!Z6iNpOWiNu*(k|-`I~M#<18u
      zt5vFO*n#OiJqa)<rI)33hSlPE8eE||oEMiFBAZ3d(B~27)HaQ6o3<F<DvH9oZ8$ZZ
      z%LoDeCUq{`3DefL&f9~UtJ;=h`K#1NCR?Va^7S1v0ct_R2u2xVxiGF|3fXcmMJ{TH
      zLlst9LvPcX(2#%{$7P1W&dya_A=;@sriy8@JkMTMagBELZBM|n8v39K>$-*u=w}!x
      zT8>!?cDGG8JZiF7uNrpQa4qpHoe4xRO!fQ^md6m?6T&dC0*P5O{k-9uwYqyiC&^^n
      z)Xdw4=h4aIlv6Txi5NK(57kydqe+oo3tlMOLQ71V1i`$0V56CA*O3iT;(Eu_W>0ee
      z_i7TG;Pt?*nj4mY(%l9qUtRiONJ_e*^iPY?&_|ROgOO`OuH!;sxstxL#>hK>L86A}
      z=?fHy-|HV>mB=xYM@R`%k>;2%qtYCY{luk8Bss||N^*)<qRFfL2s7j*?hq+*A7YIB
      zhZv{8+&3!PgACo5<n}q*c7<Abf?=#7g=d&V9@E&seLTlwy7DOC1+A}e2U$sjnxr=|
      zY;~19!WWyLIL7>G{e<+sAqlwTQq3&fkjEF+O)O9i`re_3wVKaBB+0(E3dN-Boh+g?
      z!(kDITT<(@=u#*8z6+|*Y3_#TVu+GbGo9?GHdbk|_eh<8*tt&ja~GE3fy{dN7kw5Y
      AUjP6A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/CorbaInput.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/CorbaInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..906d9aeeec41faf353c54cf9156c5003eb522c16
      GIT binary patch
      literal 4281
      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
      F`X4Yc)L{Ss
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/CorbaOutput.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/CorbaOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dda2f230f2d53114803400f71b3ccbe251e1c7b
      GIT binary patch
      literal 3416
      zcwU{A+gBS^6vn>;fj}~)+=|$Xy{UxIHrm!!Emk2E4Pvo`ixzD<NhZnQkip3WO0}(*
      z)?4dK`=n3$q))nBOX6BS)IRB2zUZU=GcNZzXEGUwKv=@c<m8-ve*4?|?6c?he}29X
      z;7NQQL=(gQe6bu`R9Dn1F>6VW#iyo6M`Cf)N~=?4d%0`}5n$NO4Pv?(n@TTg8C$L-
      zZA(*^f@o#vt+&q5S`sD<gOjF}kC{t($xj_moro=)maV1@E#{@2VF;9M-C#I0Sx?yX
      zl0Hkzx~*#^vJGa+mZcTRRrjQjV5r5sBZ8J&hxMXvpJlil*|va<oW?>1=NLlgu4J@j
      zTQ`fPAi5ZOY8-ckf{UA3Ere$DD%gQt49$_jxppu-q#%ekK6+R|7z!WlQP7SM!_G;)
      zsGTn_r8R4Y3+B<98P%9mEuH^%CIfasFEJdftJia)l$dt4m@=J13g>jIWXo77qqHIq
      zpe19NB`t`@s<F`VCZ;^GwB(F(sSrX0(I5sH2DX`E1&{N{TUIUICfUKr!e}BfILAT9
      z6b#`AWhGtCF*GfV($LJ&kR@njXxuBAOXE}A_$0+0adtn$Cr*>$ic0zw!5=kELsNO?
      zBNwIBSq0Bym|=%lPo=8{>>}kw?pfoyLhhK7x+~(T3kpLo=FdpnIR)d0SKXybVvRJ=
      z;J;Pr?5aA67gUSye_6pKUZG=<`&TnG&(+37QMsn25MIS}5EmFa{Y(W(%n-pgx#fsu
      zscW1txDe-?<`m51HM$IxzPw!!C70lyFDh8T8^n{Ix#N^7H`AHK`I%H@jhSUxVv#W!
      z^<@PrF1b->opm-=)jV#Ps?9fy%MCdNd1T!%b8?xDGqj1BMA7DEZz(YN5lTqPFnKOz
      z!Y0Ky5Sfs`Wd(18j;*6+DXrNA6|9(an$e18S$bCU9inr&C2U2(Do9VigsEvdJvC#e
      z^rEd<IW?p4I!rHCbtMZ_*L>eQ3f{#vH>wh!=NgkdbuzHonQ?CUo`UyznK)IqTCJ1r
      ztd>*DhCN>s9K=meM@?#U$qoG~zeXW^ginI_nBhR9o}}PYd{z}Uu4_h?s`#w04Q|;2
      zeZFOrOPXaXLp*-iot~a@jBmj~YFf?oX`yE)?`QO$>Et~O{ExaCJ$q<<2RhJ%o%Aa}
      zzdF%PBZFoF^xYf%2|dxFb@WA#tfN1AbRD~Yp!p{3rDq?pK^G=Kh24$|#F-{y68mU2
      zD)-|N>=*ueaex#sF*-=To5bi4LPFzV?DA-MRA?BY54UGEhpl2_K{!z4qT_(^HnstA
      zibmY3E&3z+Dj2AdLPCH_X-Ru%Z7z)(-v-(|jd@UEP8-_0uY#j~V1d4MPyAsw{xD*A
      zLO2Q2+y1z)4&wxknuWWQ8{Cc147X|*?kaf7@605<%feZoG<2P{JI*-x^w!`#6+G<+
      zuMl{36Y#U7n1jz?xFPsCKlmDfuWt%|L4Zg8kK&sIzSThSDB=xsJmv@ACh(n2z%Sw@
      z0Z!CWJnDc$Lh;=SCj8{PM7ZZ6hg@>Vm3+RA<OGemeU~G7s+k_M6};|u@CDuFFFg*r
      zTnAmQ^fz&-PEMNX-^s~91t~xHE6T~&n<hIgz!_w>PWIsnG(Y$o0)M+HxFEp#Hp*ks
      z5B`q8-!~|aB^0+##r_IRKX{$Ml}*7GfdVMO-T<C(6nF66+V7lXxkm30Ztqin{e}AT
      z1CNIe*Fy)ch_=PB*02EYRdCg>{a4cXTZ00;zKuI`!w>$0lJaMRJM%%EZapGeA-$9c
      fyqm-6)BgY;R&dMj;xF3px2JLUxQ+X^u)Omx2<J%s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37a9c8379edff144b1631b49164b043fee45393a
      GIT binary patch
      literal 890
      zcwTjq+iuf95QhJaO-$3Yr7bPTa=u6l>Wb4<5K@y;35bZ4lpweXcDxB2+1_ZqZu?qX
      zph_U|06Y|8Y=@+f^u{|gyZ^WU&iL2w?>_-N#sdchhDU=a;Y0VxJ>fc(yxwfp_V~W&
      zyGdX^XlX>#8;YJe6tNN7fz5Dxo}#X_=Qa~FN(@8EKUUqI8wA2<V4oO@FJvUmONNa~
      zBUSRijRrg?SGPN)cy-bfBO_H5J6L2`pPriRFxYkF3kS<%596EnTfCO^`$7x9?(5t`
      z2}`(ChJ#fGtFqlG!NPi)UuO7RX(&D5Djej5?vw6QK2qAaULbg`ZyPP#usUnDG4JuM
      zP`)=ZkVc9)d(KKjM&ex(dO{zjRED*NqK0%_Ez^8lw9OY8GwjZVo;QOk!(w0R*yP0&
      zJ>!y!{*2tg*5AfT#a}lkja>jWw2TWV(*E&O&^!`aOP`Ed${W&<+A7gKaUfIgTj%-P
      zO>e+mVp{Z@(fm^|MHWR4E~0=1%52I?C{uJmae>z5ogY~Gc#4&W>=bKXsZziOeM{Ny
      z9u2gHO^P=2)3}1GKo(uY_3WM-SUp3(nbDt7h0$8vvA^Ng|I|0+?QKRa=cmS08+ZP3
      enzNo~YI@TYQ_N)TGsf7&7^5cS#_nb3@Babt(8uEd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/DelegateFactory.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/DelegateFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4652d0654eed13662b0e1119f3c19e51c08123bd
      GIT binary patch
      literal 1678
      zcwUWEZFAa25Pr@9OD0N_IDRQj(~zciZ3jb>G<~sCCxGReRDcT@*KN{Nzy&KKB<473
      z^RL=3cBYw0KX#_SsnhA6fB<%8+z-0D-F<Fv_t{<j{qG-d0NlmT8YUQSH@r^rrTwdY
      zloU-TnJE<0spKYidBc``%dSaZbTxz+t|(B_wY^5NP<_d3k|9(o@1_~1t)ZzTh2u5W
      z87^gfuPtp)R&2M!bxbL^>{MynEoUtqhB`^dWiTo!YuDUP<u@&}sN=HIs7u?nS9iH!
      znA<57%c-<wJ};WNLfL#?NIx+%WgXKDGdsSJcGcxY-t;9Ogf{um@f^9qaA9e=LN8_f
      zI*;H2<_%oK48vv1@p!(|ta4FSw^bH?&2}rcaFpCvhU9_MW>~QP2TPRn#RiwzAnh7m
      zUR*j$%(8WwM!FU;k7~Rn9b!yFjA4F=$$F9t&vs2Ae4*jvF=NkXy5qQYE_8g-FVazh
      zVoU@vCL*|nMV0fX472Zwr=k$c23Bx~ShHI#?$sGq&k23(<#ipa4B?Dxx7*5F(!gi9
      z%b-iYhodSjoxQyt!F@c?@cCG8mAY-on+CqXmpwjrgx}&qcF*UtuhQ`~JxB#hoF+pD
      zk!=jhmTk7&2)@B14b&&|s=~dx_Ue)m+@`V`c#IT-_QDr=yGd1DI46pL2Ffi1Q^O{8
      z+9{KPEqqI<dHitLD&ze08$(By;l|tEh#ekqFD6BoUW`dUM%=`7d`F#I?`ITq`VQA3
      zxQRuz<P8+C!!V`BA!B#i^jLf}gYtp!4^^{|B{9@$C^B3dTHc1EhNIgecSfsUp&mbz
      z^_n+0sC*f&o?(Z95n$GOhg-6R94=_;qa)_AF;Ejz@;jo&w;VO3Gp7bIs5|u`4L|+p
      zLWm-aNs=^@CZLlX8IdoNd}%~}kK`*O@>Tkn`f1QQOPVC@jP~%#3FdweAn(&U87S}5
      zWx(hG@ByyVK7|i)gHRs@!7wU{a`O+_!?e4vach72_6ZhNj<GZyr{x$4>&`3O%f<gf
      zG%$ZPFt7E@x%ewQ%J{agMuZte%5?E&ZsEqy;Hu+~D+5FvAW(a@jt`U7m>5x(z7
      zeUD-V_ArMZDAs+7?I|IC!5VBr)u{J5a(IDfv{%u9gM%Q$4a%2dM=99nP(e9h;5vEU
      grPBm?2$Ob?O7IwQ^1e@}DiQx9ehOH48Zh_lKmQq>Pyhe`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/GetDelegateInstanceException.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/GetDelegateInstanceException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d03037c7163a99e5c0a2b8e3d8de94ff149ffdc2
      GIT binary patch
      literal 593
      zcwUu}&rSj{5XQd(vbv%u2wvqTU|cZK3x-7TPe?YJ2;pAVW~o`aW+}>Rc_Q)P1NczJ
      z=|a#bG4ayQbmsfbH|hJw>l=VNb}b|rYQ7pf5B!NwoM<SW*6rQ-nR6}lg$RVtwP>r6
      z=E@V76Hh#987d1YhP+WY0aw1WC@`dym}rKA`&I1@qVSpb1JPhepGqZllN$EFb#!zj
      zmES1$NZ$(Yg^eWEGqAAAkaeXJH{)SnL|p@6$ho1%gC38h$>)zLJ&+@YBlo|%kg4Qw
      z<QwcSLkyKAHkYne?itfN#&nLs?u6sW6Iaq$EB!V8(7;dvxu73mNMHqNiV_sl{&cQU
      z)}%Z^ce+xY!hVVC89MFwwMLpcHYh62y0D2X5Jy|sCWc|<=BzeNGPA5o^<awpPuMYu
      XPGZ>JtZf0a<}ec(lg45pRu?}3VReHI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01b7bb8b867677c18800cbe27893cd7b2f552433
      GIT binary patch
      literal 7327
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b431227622784e5ede9a6cade0a1b002ea0a1c79
      GIT binary patch
      literal 863
      zcwU84O>fgc5Pg$6HFZow)08HBmNwA1AD9YG1R+60MJkg@{gMi&jk8U*a%^Nfh#$p;
      zOOZGr&ip9EtP?>XLOpnPcIVC8=eP6Y=htrlcCc+CM_BEJL-$;K5Fg!mpxoyE!OIu!
      z!9X3SDp0ACNo~i3LAa(dZXm**yWcsNerjTtP|i+=jCGsQ;Jt`N8pVX!XDU?bbHYsB
      zIUyL$s4FeZpkTwq6++Qdp==Ka9T^{qP9O;-FY-ljB4VZY<3l6utAtSVF4x!~n0}^!
      z`_}8;ziJ!PCr-=6B4PPYA(m$WSKM7CgRX@VmTX+dGE?_t+7<(*F4vt2ro%K=VXtAK
      zikl{G{N>W9X5$ua6XwR+jv~TReVV~(5lCnoret!VL&%+Rwd(yxYeNGVWgSMt*q6IX
      zySFgu&_mrxuv=j$<7Oa|M6$ERSD_z72`hLb(|*)7;Sg3XbKAxywg?3_<+Vuq`f;@}
      z6XLQ98qOXbfoFifJWpJXKYo4Q&2jdaSK>9l@deiBtZZ|%G>nd6aPcbd?GXs`DDuh%
      zV_{4XGg8x5Hov3P-s14o*uFryYH+wf<<oD@d6ob=MV{WGK<_f%C!^jmug>n^Zgy7%
      mE1YTWMcl)xo?7l$<ILc^ma*Q)gG}q_7r>LU&e1>}8@~XNn!soP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dcedc9ce2898e1ab293baf90443a2f0ba457e048
      GIT binary patch
      literal 822
      zcwU84O>fgc5Pj3QF*SxzlTyB0N}zW6Fds)FB#5XKDYU39<-lp<Ea_JMKx+r_qquM>
      z5(m@+Cw>%S){Y<$p&oW;XWq>7+qeGl^XoSN53ylmj<7b$#^Is(AU=jVRbh8~=lQd6
      zCsnUYm8eq5qVvdxML1`A!bD`FaC>kl<I+Zx(5|Xu?hU(n`d(;J=9<uaqB2!JB{ckC
      zpI~+Kp>)u|X%{w55n6qf$*plZka|xH5=rp-c`TBBp_R!eMXNke1)<YFSz|=7<4OU~
      zt^56d)kd?Gpl9PeVfhcB<-3HDa8t=-=)l90iwjt0>X9tBM9S1{KbT_LEw#!<k%LRP
      zV&n2(F4dTetGGs3m}uL}2}}MgL(n6TFgDD{WMDvWcJr~0<)$*eEKcA3zL_Any)2Wu
      zn~0*2>{;tY7AJYZ+%IK$kPmI#Caj+1qYEDa^YeAzXjPh5sJvjpd(*0`&qTr7{(roS
      z@BsYyyyp2=o8!gL&e;N=9&;p)^BZ5_e6C=ZcgM8RF)RkpaPHPkIExlXb{2~hf>+$x
      z;ON~shIfSa-8vlM;-}wiO*2j3E2h=Dd%|Q+*RfKudyK7AY&WXOHQcO})B+9O;oZV5
      Gtp5Vo%fEd9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..403b5e6fa52bca3342558c44699757b314c6a492
      GIT binary patch
      literal 18745
      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
      L4xEN^++6=30{VJZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/StubDelegateImpl.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/StubDelegateImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5c64c1b866236a1c812c143abb75fa3cf60d00f
      GIT binary patch
      literal 6511
      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
      C)O3sh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/TieTargetRecord.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/TieTargetRecord.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3869364453ee9a47f0d63f9544b3c0b4b96932b0
      GIT binary patch
      literal 890
      zcwUW?-)a*<6vn^FZn9>(ZJL<WYSpU!W3o{f?}Qeijfmo6p@|XOi!#X$>6By_HoHZ9
      z6rZ6tf^9*;2k@av&rCusrbStpIWy;*-#O=Ff1myM1>iZJTF5Xg^}^IU;D`LP7Z0S@
      z*xKIQ@LE!|c-#}ow&+H2V8LXVRU)s?!=AU*IS}21!APWFsQ6brUt_QmjTkcA)Cw<6
      zWZ!$khx<*DP(HUVLz%o}n6F+*sI?i)MidAe2Bsb4F+(M*wYG&>hT;U$Mgh}#P&o${
      zZm6i@Ad4JB!Iz<UpAI@AZt+f^nlAZKm-pK|mg+pdG?RTv?XLL$;Ry|p<$Kxyg9icC
      z8clK8AsRt7b>G1P7Ozq4kP#!JR8tdq%En?49SQ|ncJN4na%q?jMWEf-QHiR98eAG+
      zD8C4O{g%OQMrqs?ucaET{8#(WR3$tlj|}=5GAJseC}PSw+D(e`uxXv5(+5&zXs@`Z
      zaNM6Ld^$z(7$vuUjPf@Pn4`5s&wveD*Qu!n%6NrabTc=4jCtG!baaP`G5Qv8cU)qV
      zG)iT=-%+Zc;NHhSTw7<}QA7SEo_)cy@j#El$e!zXOB1{%@ml}jtzdP`d!f(3jN+Z(
      b@mFNcBjf0TnbX-_&2vV|F^{3HRZq?VvACgS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/UtilDelegateImpl.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/UtilDelegateImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2e50ba1c3c8f933a194a5eec2f4f7635bbc11d0
      GIT binary patch
      literal 12840
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4f068bd581e9f8b107e115734f09cc49d31d98e
      GIT binary patch
      literal 3264
      zcwVJeS#uOs6#njHk{*U;n?Oi}NZ2O{%w*q&#aS3gOae?61=QG?TqX@Y(?fSp2#d11
      zfuNvbfe-2vFIW|QNGPdNpDiDJ^~D$ehvm85oseZhX<1X%_x8Q#d}sO2IX%Dr{o_vn
      z8u37ahha}9R|ua`CX~srkyXR-qp4UlJgjI1eniQQY1~L~jb{{#cW3jO1TRBPF^yDK
      z9kNtSwN!3OC}Y_CB1{QBhTSic=qqTJn$(S~VlkBMQ*)|yfT1K<JIvsX>to!H60DN3
      z0)B=yy=sp47qX+=7*s|z&JgI;(~35%7^--8553m7YBGd+|4YabhUyHr`jkmETgVPr
      z23N9<U&GumRXt~W6=U$9H&lz;FboHSy}FSJ>)DJ8pVtjbco9BYu<`}V!HM(=FT$!G
      z9^mAurd|{xky!1pgpCXv7ed6MiIHQ`RJ2b*6<yk@nv%<e2~5ppVg*$j<Ax8L7`6@N
      z%tBt+<YP6aZL8+A?R3qA<8_T6m8cf^dzoQFuy-+9q;^<H)X3P1ZNz|*&-2_E(HiWo
      zT_Wt7jtGq%GInAYgU`~PONRBqr79#_foeY(YGtfP9m9eDlQK~jWx6fLu=8I5F_ca?
      zWK|T$WRNCiDP}})fXX0M$PKDlE($QFn54UnVw<%#KpCRY;(E^FlUCT3jYw!=s1!Bl
      zxD!vL!t_Sh7G3+%j5fhTJ9R`69_F1K9X-R-mL2Ol)r=QROV9QxhB>Zid`zTyo@`uG
      zOfyn@QUb-XX<<GVX!@}q2PIH*ty!ck;}vu=tX0jZX{wo=NJ`Ssvl1v7TbD_(lU%3Y
      zO48aza&?JU46@xTDW2DqGzo@+%dol}F*X%_-2|YUs-+tjx)Vfuk@$<%-G21Qcon_G
      zFNJ0p$_2ZHPl}s<8Aox9f+hoTJ)75aJZBAF$di-h3#!<`myn{1Q^l+df|_`UkQVbN
      z<2Afa)ymHm6wO@Je6tjv^x-5!C&k$1poheD$VKmJXm3nJJ7S00lb!92jZGb0(S~G0
      zw57SDJ=z?LHMcZLcw>QSM{xzU+gmb5@HWFL!X6nIOm+7k9ue6KEDgekQJQ4J2YXnC
      zXjq19x<hvK32vslnqtvdBHGZ>N~RO>c)Tl~j3pbI;>p&g&X&gZwwQ#m+0qijHpR2L
      z#U-4kdM!q-AYojFD(G3Mn%&e&#%U@Naeh{Y=AIuj)GU2#Cb$pOonGOikjTq8Cx(wi
      z^z|#Exhi3b5k^yCZ?Pe_>?reLg1Wv-45&#N7eIwvYUxM#q#&%PXk9T}mhleWB?rm;
      z5yc!AW1@Ip_6YH-GOh{nG7=w9$0XdKSu~rJLz5JFZZ<6po-~>EjuR^R)kE+4X+J)~
      zZ3(v+s%EvE`f-}jZQ_q{hfHX?ezuT*-fBymq?mR@nD|7-r?^LTF5I-Ka=&~-qHd^j
      z$eR+~Ow*is0TO*62lRrG=1EnAQ@z~xHY6a3F~WogrI6^qijUstLr>3@^cJR-(OOzJ
      z1NnQ}c(9tDW%l6#tf8mu2w*MN(MrXQa#wketL*VUS)|!BPt!A}xgHx_%}K)Z(z>JC
      z`!zN_L&b?_s5}vPX$G6Cr?F)k+h?%*=eqhm(+EEIDq!oRNOu6$7{Yc8+ji<4EZ2_M
      z)!V*_-Cl%9TkOJUpfoW0v)1H#(L#Dc%Kr?_Cm5SS>(rt+M&`xgpNpddoi0L(qy>6K
      zpsRiw`yOF+AnI&NOP<Wj%4)I<WGM0Dl!J_oTH$EUd0l}x5_U!pA?f0`(JG`o^@}~r
      z&%^M{VR-C#1;$|<aWE*X63Q4@`3m7$_e1z;>3dB7KD)g2f#cH{c!;vViK+U)DSI#d
      zfH&!7zk8uf1=3DPZ2>Me53!e)%p>e_;0^|OmDfJsAl5UFuqu#tPqy2%W{Fmk)u&+u
      z3iPOXiu1G(%To?SM^UjV?^9fIMD6!F0ea=RZs5A(j?W)`3|~D7M_**l!KhyVF_+X)
      z8g8O2Jv5%maS5Ao8Cz%o1@SJG(iODgD$#xoQCz3uzJcSoNjmSr!YzD`+xQB1@C)wZ
      zH(GzkJ^X?D_>*q_!UN{Tmuw9lJTFyNK1&$wZrY@K*g8UcpX`?tyC2Y*C~2B#ZXxv2
      wjVK{Mh52D0wZ+}<=6v_tMeq%g{H<-H#*v&W3cqWklz#W|8A&tpOlW`c57dMqwEzGB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/Password.class b/libjava/classpath/lib/gnu/javax/security/auth/Password.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df75b3a547007b2a46a43c9adaaba73d49f2f409
      GIT binary patch
      literal 2543
      zcwV(uT})eL7=Awbb4pu&R$)_Vw=!TWr-M3~I0sZIKd#sfl%I_e6A$eH4k;~ZPdB*H
      zH8wHo5_K`gWj8J^*^L)s1QIbUdg-lkn)s6$@2B2sbiUu$!)e3M^hOfS_nx=!_q@;h
      ze9uSu>hI4s0UXDqgbD`#Y$_L;S1u|`p{yFuWi)*`q~!Fu(1?=FUP@;Y608hIwyH`+
      zIbBPJ29_4Jj53{6ho|S&xX$2MG`2BRO!YBTPLGr&A`I?@XtrO?>Y4PiN;!6c!QQQ<
      zG(F5<3rzL3PB2*e(h1cD{?mEyvJ(vZ+;G7|@Kh0v4)LOzn3ht{<`$;a%ou0D;EAQ<
      zN^(NUX#CwsTJ<?C%WydMZ*z7L5keQ(wuG8gmWkaEgCtt=tUWz5lT~R*7NwV@nwr(;
      zoUq^!C+DYD0oq(iY!ACp38#c+hJX+)sibB@y_t-%98D$ErQw`DJQGRhQi<%qQe0is
      zwRB3t5rzY$>QOzTrDh{JEtya=4g?6E+V?oo0-5&<GSmlR+v~epCwN7h8|?@YNo8?S
      zO_9vrK(uv7u>s!Yz;RO6UmQqu=-~TLFtqK~;Q=_E4Ap*x&)HsvcG8WfaEe;!>EZ^4
      zy1-7DE+?8GbNzbUu))rwr`?d?AjLKMofi&?@DUmMxd;Qo5fQ@?bbJvJNFv80*Q~0S
      z3}_9sPW4H6j^R+Lc{G_+XO-lruIQ?H8V;OcXztZ@bzxCg6aK`OWBptH_ABwYn$5O5
      zF$9@tP@~AQu4ao}$mo@cwBd6GOQ1-4%#CqyT3Y!Xpik)*I7idDOk5q*xNEDnNVjvM
      zbXlp2Zi59Lt_(#Ut_!Ud+-bDBslp|mRrJ<RH5EK72Q9(PI#jQtc12V_L{F#q>>Smf
      zM;%4`i?yhy2qNM=m_R&WAjT+T<$DF9e-}KJn9K+~zu@XL@tg)8j~>P&RLzkeHIUC4
      z$SyhP_3chIN9#oaEf-5oXqO4?LIb>_+65m)7SY60Y{Cvw9ha*h@3*ewpln%1qxU*$
      zeAnUf`d$id-bDKbnkF~UGU++Gj#lp)j(Hwi!{a_4JV8NllcF^|xsI;evhQ=-D!OTL
      ztRigbw0k?HTWFF$MR&bDSTCIzr!ZU$YhQW!ow0(Q6(m+~_uaVvV`;imsHW#@G(nWO
      zzD^UoK}Y>2<*y(@@gUy98N7`#T*Zrc7jt+ImneP}?+Z0flL=@hQ;mYDM!{60V5q?(
      zF20onZ^JW`v*QBk*-Mcmw2JI)p1$oT@*&mV+|xV`!#sm~nP&&y3Yq7VJ<a3TVV-CA
      zG|vv`FKGR8PxCk)V4eZPJPn3<^8crK{HA$2u9n=>QSO|(+nw{Z;hb-X{vC48x0L^m
      z&hZW@|2;Y92Xf9&<ea<E@H2FZFXNXo=j2T(@}?AdQ;NLloV@8A*>uiP!#RzF6*W%d
      zv=ELwLHrx9p=tv|lb+Z*&fez3eQdI?7O3}V_pjK8-vuLgai_tk5yKeyFR0<|sDBXZ
      zpM?6?E~w3T9xoWEA5b-)GAyrQ^ct)ymhM}q;yfEH;|0bVc({4v{%>3PaD!#c$cK4e
      zwvr7>CnEDd!^{DRRnixh8&#|db+r0fHCk8=j?sFO)uM-a%6uL+m^tamm8Jh3%&3un
      gR~T$V;zj{BuE9rUQ*qhJpQTZ41|Xxu;#KGW0h5rneE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e387600a32dbe0432033a9df4a6210b7113ade04
      GIT binary patch
      literal 10086
      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
      E8*uq9-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/AbstractCallbackHandler.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/AbstractCallbackHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..806be85bb3cccb74e24847460b493f417024fea5
      GIT binary patch
      literal 4916
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/CertificateCallback.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/CertificateCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c67139d1f271d31e813174caad33c94c5e7ab437
      GIT binary patch
      literal 663
      zcwU`SOD_Xa6#kA*m8$ovUI|uSF_B<HYf+I@8k;gp$?dr6GM$k-cZ8*%WFZm@KY;%v
      z&K-oLLSi#HkMBF*`Ocl^*T*LSYnaKQgRtHV6Zc$PiEB5OexjARaYbUzTwer1L--eN
      zMQWo?l`o8}eAIGq2y4HyqVQDdmM|&`KWT)4SZXB#PwJTKN7Y>d?Gt(#9UBoEPXvj~
      z#xJ6DOULts9{)?6Fk7>dUy8Q*eZ4J0=e7!!DHApp{sO=E0}(dey3s0ZZY_EQrxKmW
      zJTe$4pnyR_aiJYptyUMkZV-kG$fJkQUsItxNLmf44@D#3U59EB-@+4Ym-COJW6o4e
      z*sT5M=<Lq1CfMYqj#`(-inOgp$k(Gp`*KfN#o`ZxRxJs0yncp%gboyuMJH#uH0#2k
      z^~5p14WFQwzkQq?GRornmR7PE=K=jo%l8<%OF1L9o_0&jFEeKcqnypYGcbm6AdQMV
      QnbK$ilguPcr4y##0Ge;DOaK4?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/ConsoleCallbackHandler.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/ConsoleCallbackHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffaa77f35ed9f7f232b1e57a895a67b600c0da9c
      GIT binary patch
      literal 6784
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/DefaultCallbackHandler.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/DefaultCallbackHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6626fed6adb074d525446d4140818e39f7b738b3
      GIT binary patch
      literal 2626
      zcwU{A-FDkV6ovOBcE(ZEKhqXyfRX~OQ_-kx`s0$)Bz2m`pe8AHOG_yr%TrsR$XT)k
      z$s6ztTye)WH>Qi##RKqAEY3)>ttjboRA0z5)}HU|bLPzW-~ayp2f!6HIK~)mw%kDf
      z(frxm(YwM5Jlo&Z&A@N#mgzVR)A~tY5iiWZ@hkCs&2*cN@Hlb|<&le*8(rTst@LV!
      ziQBeo`*#?|OS6v|a+OX~6fnuaSMIGYKQihH#xbQL50&9m$&gWW$8=kI&G&4#wIEj=
      zGi+C^2U`u{)y;+@7>Y)RVm~%LTh8MjbAH?IGTbso+C4be1qQVp4lC`BZ4vQuWazb=
      zNY}@ZR|O|=n&T9MmSLfaxA6|c@s{xW&SC>pwW?&EQ8A78NYWL4O*q2xMYHNQ#SUd%
      zs>&KMi{Vlxw^YSA+m8Ff_O?vl?zjv$M&+DP@5%feKIZs{;Y#M^Dn60<AEEp=w&jcZ
      z?zWJ?GxAYVF`Ft+q+*zV1FH;2qqGg`vcPOnm9LISxv$)l?i?<2=wvHw*}%6QJ#0#$
      z(xJP`pbYIYoGi^6Y2AW?Yq-I2oi;90cojEMW|*X2h)Bbelf=ue&@(1Rwxi;#n_GmP
      z8&MdkN))Al&&gKM72cdnZxk$InPaJ6qv%-gc73s>;w~x-Q&gi(ud^*Yf0yC>LC1gp
      zPYUkgKF2D<?4ix6Sd$kFr;<gPX&Dk5bj+sN?f%m7nxi|WuiVoy53s?pK5DnqOI2**
      zA(e`(598-c&nk!5-+eadE{#&Diygn}ZU@wx^CNN@NcZeC1&4ws_=e*tHA*&uif8@p
      zkniZC&1!*qYM97I;D?!9J47atHjxTlSeaMRF{yO|&l0P)Jblv#|DS|K!3^jchx`<1
      zl*a@;InAzPj79*zSS<Vn<xd)p;Rs|^$LP68!X+G~ks8Tx49Dp^hZ88qh-Fer?WCsl
      z@Kz7+rXlw!=2{3j9SLKI9KDYZ2$REEd>G??jd5k7&HRQbE!V^OKOo^Vx!(u#X*ti!
      z`9wIMl7b5~97aD!aRGy<4=Ca~{k?5aoK0N7L+Gf{{Z&u6Di2(h$<@Wsm4;7aS4*+0
      zg7y-ZdYDh=_=HqX6STsBRv_A~koFlCV%pu9rf9|6FL9@bl{D`;)#kedPZ{tO;#EW5
      z7x;3YyYW}~9*i`tK`QID?!F3XHL6BLTa0O3D?aMs>olxIJ<(3U_yEQU_H77zPUia!
      bhET<Zn2E5JoCJam5R4Gt)05$cP;dSZa}%RV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/GnuCallbacks$1.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/GnuCallbacks$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..828953464348ff01c35a18b4e46fc7d22c2828bf
      GIT binary patch
      literal 1268
      zcwUuL+iuf95Ix(3Ix&W%?u~1?1xQj7H!UTFRFSHbn-mICs`lA&mc+$fBVS7SE0CZ_
      zJn#X06k^sgZRAu6k+s&$*_ksl$K&6Be*OYbLtViXgV7hEabO;q$A-_X(6fWjh8YF}
      z!!jMGYg!+Smm+M%wqK|zNHgSRg5j8=Z@ldua4S$S&9D@qr!4P0`^a{9pZB(`z;*@0
      zbTF{}!U`2_PgJ!*shhU2gC@gjal+iv9z(k2_IMTymozBIs7N8FA&Wdiswe|;ZCmi2
      z@UY9hU9;<O2EFYP-=68&(vQKk9Dt!VSqp_44UqCeQeduFYA3a8WN?LH@n85WQ}i6}
      zRk!(jGjvGVYYg?V_2TFRiHaLoQgD+7JgeGrOyAdV3%41RJ`Z-xL!Ruc6L_}hH&on3
      zLBTzS%GeHuC)RKu4`}9(VZg9a936QSIainBIl8o5;kyo3Q2rlX;^+iP29FqKlgwND
      zy9%ldYhzg{a)goAdOpe6`9vxzSY=or%NfNc2pH6k8+sOhVaxTK8P>Qe*%-9fLU1qo
      zrkqwY_gq+x>l4)*9t_+bR%q)}bS{A9^K$v=-=CtBg-Yl}vNp(<h+1C$4z2tHm%m0a
      zGZKq#WcC_#vNW<KI*YjopT|PXavW6wn&ofM^hN#Z39g^u&VJ-R)JwzevR)Z>4ZRk-
      w?8|B81*!?uk)!^W@Dvq1!zMjvT{Pn^Qq-HwdW`j`Hx}K3BA?JZO)H%H3wjn-H2?qr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/GnuCallbacks.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/GnuCallbacks.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3485c08d2ea5d819a9151c314e72caef31b34260
      GIT binary patch
      literal 745
      zcwUuK+iuf95Ix(baWHO6Oey77%;h1e)LH@Ff`DK|Rj^8>KoE}`dr7u9yJ**r;Inut
      z0*Mbm@JooXNktG(nU!W|c4l_w9L@J%U%mn8;Fg0WhTV}W!ec(=A3`gV!pQt%$cua&
      zCOpfAJb4%Ht0J1&)<KP7vrPY+ePr}hrou4P?@J}~2Mo)t_JE-l=~OguhGBL8@YQbA
      zi{r<==y|{X2tP{s*}y6da4>nFiHT4-&!tv2&~Jk&H&PciIGrIFbCqVo*gY4^Sog4k
      za}2FkTuqX3H46K=k!sX^^8ZtN;J{}H7Xo^_<D!X;veN~IJFR%3YU=6YA}%@DV%Ywd
      zu3nM|Ya^|4qcg(f;WDl;c&R=zaw;=15-G#I8MZl=PlLUr<f+@9L;7NPERwv-upUb#
      z4vWc9n3sH*2?jsbG~$2=E&bVJEgwrulq`sf!R_n9B;u(oe`(GK_sVYw#(`48L>aeM
      zSXwgL1(d?*te{TXA@3R4jP9)+zp(+=_fD|(70ow0CpiBZo3B4nYzbFMuT}LOoW)%t
      c^dYX1=l!Y0Hm+BBL8WitCfzQ@npH>tH(;yHHvj+t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$1.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54f86511b9d4191bcba713946da5cad7157601e3
      GIT binary patch
      literal 1388
      zcwU`UT~8B16g@*rD|NM{2tox>skmJVTU0~@O-RL1Q`7|0MBk>{p<P^dlie*Ji6%;n
      zf5m4Kiir=J$eTaPcxPze8WQ@jbMM@pbLQUDv;F(;=Pv;Bcp66^!(!cSn%jJr@0)?J
      zn!X(#n7kP_Op7~Cm0KUo%{|+#7u&ma?$#XPXXoRHGNdHXbhukLUstz<6~+-`m{3)|
      z7n)*MxS_dfg|_FG?I0Ac@EKxZ!w#|qy1U%d<;x7(E_bq>LkzR!b4iK~&$dK|h2Vn{
      zUK3lq>4ax58CZ!Sq3SkwygI{hhg7y;zI?9A1dgrPt{pyO_@wvP|Ao3Ob!{V8VTcyJ
      zniv4XkcK!e$!u7|01`60uHiB?nT=_<f~yHca6>~9;|vj9!jom&6|b5*RpGzoRfi-<
      zmp$sD!hKur+r_B-wHTIqn>9O6iY2*nz#HLjdH#;5F-+>^t|nQNISrRU7SnOuWth2u
      zRvPX>Cszg{+!PMkQPfIqP3+SUdP$NR$j325f_0Hp!z|{=0tBwufqgc+{$9c&C}{M-
      zka98C3+=4~hCWWO$Ilyrs5ZT(Z;2PSq#Em{&YZ-Pn@cWz7)6H%fgq`qYp&&Z0Uh5E
      zVZ*D%vBa>@ll&T%u|gL#)V5>wf_@<f<|-(Vk0SK+BbrJ{vjM5Jw3>=!G!@Ba^v}{q
      zPZB9QJxJL)?fWTajF}eFM!tn>#zYGv##pq4QR4?PM+!4RYeHek#rTMulxdU`5|g;4
      z>bG&H&3Z^DBNPqenD~w{a)K!eqmdKjWa-_;9~n+y=1;#PmOuS{M2HNgFiogw=qjGw
      znn8@#&osps3=wk%U+Jbp<nT>(F`~LM+Fi)(J{~AN9x9FnJW{<g)h&?5BCSz8#*_d5
      C5p2Ey
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$2.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..764f6246b9cb859d2b23f25f4355b55f8f387671
      GIT binary patch
      literal 1802
      zcwU`UTW=Fb6#m9`yx>j~Cjm;RA<(+uY@BSGhI^m{6N;%FE&(IR1KQXVd+27j+Fd8`
      z5Bh*8;(?o>h^IUwVI%PXQjz-5A650tY%G;xAtevH=gisfeCIOf?BD;qeFxxsR1Cxz
      z4%gkLb<19{Z(D(=Hhmf1vFv8pu&TD>EZWsytoc>x)(h*WbGBP^grA)>kYGqFN6WF@
      zx^-dkmZ*jXk_@}G)m{xPu_D~inyH4;b4xM^g)4l9WY~~Fc7kG;HWmCh17ES7YzM?J
      zR{AVSq2bA@=&+D`pLW;QK;^|S*kMrdtn<o9xPFDJi6y(~gb@h?D>9_CUD}RUXW0I+
      z>ltk(=j60>Wq6X|er}U>Zm6m*1r)nxHd0|o6ug?)3QC^Cz!s%_#jzDBr44a>0j{*K
      zIle@%(spz7A)P`T!yNtC%Mi~gqP~)J#awfFQTSKvMThz`Q1U3nitS5vUN<Jxl`|aO
      zTqClR>dtIEMi+&@<oU~@#xR^Kb)B?XrBj(H<X{>YVHn*&BRNKqr*_cMTP@SY%U>Na
      zFC3w{16}xy6vi=Oz@icPr0tw`Ym)j<7h&WkYDKrEMveNA8(Ao-yrwt~;t-*Nk5J;a
      zLiOYpic$JUIF8~NE!zKKib`X~G0kxTG-m1gCm2eVqMgEN12Z(^U8aGffHO4E#9xtt
      zj4ms8Lovs3mg6UN)k)V2<<cF7m`$HEpX)k<Av?v!7HCzr1nVhLka@4^SH)SWf(&)L
      z=yAnN+g)_&M^SL>AW%Ggvu@S#0)m%C*zjrwE;Ah5)Fg3S!Bq;-(8tb7PvkbVX(JU(
      z&`QMV=|N9Atu_cq52*dolD0=n+8r%vbLfv7qo*GO<TXgz9G#OS_nM<EY%}vM>@de#
      z*lBK0w6Mz@>S-ZkzQLYX+H)VhQ<{O662IXa(m3hlk8hFH_V2Ji;$|^I#>uu~zQ&F=
      z4m`maX*=5(E9d{hVE)}7=vANcZTzr?DW%f0tBu2J*dHN}pUA{sM5v6m_x=Y(A`@@p
      zM`gNR{xga)oByzeWd6hZR}_5-9(>BcN2p~~!7<ej+@(tHQ6GM%O72t64={y?n8qW_
      z;4w;gifed=n|MwvFR)CqiI=)!6A4w-dc{gRha%NHKwr<}XNodSoF$5)>M!fKbGV>;
      Q$8@(q*o*W|;1cHl1#RlsHUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$3.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..039dc83b5753ed985912ce01ee58d51045a057c8
      GIT binary patch
      literal 1869
      zcwU`U&2Jk;6#q@^cwJ|Sjd4m7>Xr{v){fI{8u~@jl-5m&i<5@BwM03<WIb`VUGKu~
      zI&BWz;K&UQs6w=WlyjvfNF0hpC4>+NAvghTL9Gyf1@LB^C`Fh`_^><gy?LL%_uhQ{
      z=VvznjN+_@9)<%Aw`HE^OZ<`<2&?7W;j+nF;i74A$C>BW1+#k5b{nO2ZkoGwNBFrh
      z4N-=aG&CLVHq2A==Y<t&h%sc9lwS-@u_WBkJZgou=T__>6t3_YV&S44<n~bPN>{<h
      z8TyvElk;AeeglR_Ua4#*QVo4FAst=nY&c>Vt2{7J$#WNMzsaS`jd<iFA)VB1?syG`
      zfejZjDf8rUB_^fVgzehlB*S|~mlbs=po?@nrkAfVL`z;>YylyqLql9r13I=KA*n}o
      z^g)-@ppJ*opFjkU=}2NbL&T8g$%^fY*;aF2_-FXMBN);Zk5Z{|-<JHkFe>}XaHu;B
      za$|&KlB-#n6aIqdH$|Ocr%~xRPE(Sm;u6SVmxiYqhW=Ym$1^Z!TpJ>6OG{p}Nnsf>
      zM*iQ>Cs069!|*=_ynUx*1iPu@;*Az}sMrDHKJ)etjOWiKum^iJj53V=?=I>X!?P4Q
      z5Mfm~<WJPgZe3g=e2sFx7RP=HZ*kWWP8<hG>RsT=aXd%OS{6YZ6AV4Bm%t>R*KmYd
      z-eD+o9K|sjZi-Q}1H0Wl<D5h@g5x@-Wbb3H7upNU<c`zz_6N0rVq49+9E%Qn$ZYz`
      z6s_vDd`q0LWwgOgBd}Xq)8dw0dM8Q_4+23DC#PJ?@d8qx5#gd&*YFa<zOH6WM-^u%
      z%|*rDk3PeGql=Bp*QnD}J$=21rc!ddfK*!UmO5#()Jc0qk8TfrNu)^oVWOsq@1=97
      zFuaO%p}2}nVPq9s3xm;BY%6?<p=-(}OaFwjrFp|w*g=#|G+AON9#`@w@MPO7o2G1{
      zB>QA|4NuJ!t|Rj$%*f;lb`&L(-MfbT`{*ZnYjzFh3SNCH!m{$}#?`;>tYEH~-nXgJ
      zt5hb6=>waxn35UA^r1~zM9DJ6^th7sNm-O+bZ(=&!;*h__6vEep)_)H1+kHvpI@V@
      z-o*#FLit|7N9t_Xdm0(~e?$0uOSOJSm3>cj|A1Zi5qaVd;wPHnpHaatIE!0&4Yy(A
      z4nq8jH}M<Z#$CLFd*uChT&DA5{Go6ww6R&oO;RWDg6iIf)Q>Vn@29uoBwi#GBjjD?
      UGlN;x0j4kq(l|x`DCThbZ{C0UVgLXD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$4.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48b477334b57bf5a1a80fdd854de4d893e5fae60
      GIT binary patch
      literal 1692
      zcwU`UTTc^F5dID=U92muRS*zGv1%{C0wM_YUO>Q7R1Ar}n8Wr^7Ph-_yG8gLzWD=;
      z&m>S2A2iW7f0S{~X^9dGkv{CsoY}d2Gv}NA`RmJ903&#zp@m_h=v0gizQwnVvM?*2
      z<?k50;;$Pfx9wGKZW_z)ET@>QpXRtzu!R>N(-35c%0R>BPSIFe-4Ld)A;fS=S@}EP
      z5L?3WjYp<$xlYb1`@#_(L&#sZ%JE^UoolLihC$!rcKpDJA)PxmNuHO)K@JLTlfe$z
      z7`hGuWf^1PrP%goEnyePD=fVV7Ps9ZL&ssiX=Ns-&|S;1{QC^=6HWGV0^~<wZHO(o
      z!Vt{51#t=t=X7XjlUj$4QwU4#f{xSBrPi(E4BEp8;G&KQdKm%<86L@5j>uO^tHOK9
      zS8W<sEawum74BK`TsH>gbuvsgH-PvUjWNO%MV<+7&Gky6z|fb-HDu9@)Ty~J;<%yV
      zIz!LVemZU<K`bo_zh=$4r4p58IG;%7{&08M_Xt>~4Jqoz-Q+uA3}8sZ;30<BymS~K
      z>W0MI3b(24j>KPyYD<twz7As)v?8|{IvZb_j@uHNM$n`!j0sF?xWkbAZ$9Xl0?ke<
      z3qP;Od<aUtCpoEmc%XqedaeOabUef(B0D8nvC3BMLKClLSO8fa(~=G$$MvnX9flT8
      zpL>tH8RCvvDoCdM1BI$AyA{tAvzDyV-G~iCGK$uF-l0E5*5>81pczMI9Mg8o<i05U
      zb+@1)&v3gby6Jd^=Y(Wk9cyzNN}ON`lPegeoe9v>ieNM<7Ym5S<XS07OQj^O6#Zsf
      z=!qao-e*ahqjM|Co>Y1tvDCmm&Zh?V(V6NF?xQR989loy<`TWbDwb}Qy}@PDbkZpj
      zeYm3RSJ7Y3`jI??Bs1wMt}PD4l2xQX;B0D-vhSg@ijgYDN$Uz!aaUSj<-bc&#pA&r
      zpAZ`S@okq<q%lS;gk++UH5mP}J!Ybn70}KE(P0g7Rz#Xv7$rHyHWj=pG!lYPhbOfe
      f%&H-c<B4iKfO(a50Z&zXOf>|=kfV1Hi&**%K2O1~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$5.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c232e86c653344fbe9938921fab3e36516db254
      GIT binary patch
      literal 1727
      zcwU`UTTc^F5dID=T_`Ip6;KexOVw>lSws<`h++j5%SACH!qcHWl*R3?Znq#mMH6o^
      z#Ag$zi4U6Sn?K4pXWM#-g#;dUXU=5io6Gs;{P_9#3xG>lP|(0IoVQB)I^W>W^`gj@
      z9K+qxdC6VVv)nXSc=n0DuxVKNboF$XTRBrW(IEwXhOi9OO>X7&xs`R1brl2{PI^|p
      z>FQ!bSgt;ibq(9f7)4iD!eI!wYeq3TK)ExAN}gg+H@F$CIWg#&eL?1VvAAhFxf)Il
      z;Az#)&{G4D>GbJZz?31(9C-(&ch2CZooDFy*Y~z(Ca1udVHxf?!%OXueI2li{c5gT
      zV{DPZpSE+N84O2NC}@&ehl*wdrFKk33sk9fsW^hxAbdEXB7`0WpC-dY8N(8@rNWAE
      z9`O}ZFhnvomAJ?qL!PTfzr13Gk;4rlIz;0PagR3h!dbPQf}l(4)iQONH7Rv!E{G^D
      zC^*m1y|<r=i_nO<dEr*9X}eIMv<&T9Ec1uY3$8<jrJ4|@ZtN#~D~LYyD@gvs`ihqd
      z9Yp7Vcvj*jwcVlp1yos#RBS1TL0nOAxmsTRi&HU#s|+nv-u!QN`nA|{I*4l+RWQPk
      zJP=J(q%cN^#lI07wdJ%N*f?$~xItv7Ll+ejxJBHjz(u2IRPI$<l3_mFRxv4A5wL96
      zSlwc1;G(uhdt4AvC|k%$!u&U7%CcaWoUE8KWR|Xar0ADXw7B;ydPLGDwIXQLp-C%i
      z+C_4o5$>9uQ!vLcbST!Tcz}ltt!v)#&#VTu1MX#P5d*YBKKdHr4~ONR0pW<;GEdTu
      zd6G7aUg8G&LI{(08)<jx+(@!Jp4des-nWbPcybq=@h<-^j>kWt`=b|glKw$2miWeA
      z;1p>p=@f}xoc8QzaJGuNO`d*|sYDs)X8IzrG7>M)7T+QC9dwp)sf=OLj{C~EF0GGe
      zze!O>I{Ezr0?F@RKN3U&S1?R4!x-^orHr$(J@yKX>@`~18=}QqMA<te*n13;9A(>H
      rd8cV4R6?~psZHUIH>9i7_B}%LVcJ8zkBrwI^BMvon4!NPvzY${V>Qxh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$6.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95590fe47a5001a822e8e09de4e941c681c8349b
      GIT binary patch
      literal 1714
      zcwU`USx*yD6#gzP9jGHMmE8rGs$GC#SHuk~Dp(f9G?BMUdnu#S8J$j9{)mY`!1zoe
      zHSs|cdGjau;1=W0FrIr`RJ5AF!^}DN%vrv3?sw+h_gAk04B)PYI)-z3yJS4zt9;!k
      zifqX>y$yqxycHwMEo+Hq9~uj5rkzh!Pq(<8vxFNR)!=6c%Rs~8cHWp<dLXi%h5*A+
      zW#wz0Ay$R$853F0bnLWQ^n@*3hJd$X7Nh-CJH4;s;|%&Lx1u{v4E^c<Cb=ipy(#-q
      z$=gXp85(2;k3KN8??lU5#<cXFa0Mr)pmfTa+;Z{^t-IZ>D>FF-E}FLKU1oR^+h;#}
      zMgI@HHSxtW4E~gp6OCXvq(ei4)LL~kA}F<X9S5LGty9NAGzH<qVI3hHVerLdcqnb!
      zVzyLR67D^|WC?~y+97xu?waykHTvbXGK}qS2+>g*Wr!=P%nNtfaSI~H&>c(HWYeV7
      zsktDcIHTb-L)X9kbeu(u*qRq!#hP*o1uDzX5{svQad^RV3D|f864Z_JkZ%OhgFX$t
      zyO>__(qVuo91xF7+@iKyW4|S;EW>zwF^EA7YZ#*MHSbKvh(x9lGHD9p9L6-9XXx7-
      zC3IW>%}*;<^85j(+LxTxC0x-!Ts>5SD>|-Xf=EwEGG@`NTxx7lhWU`vaa~d(U^||<
      zyunb%>GP5Q-45|5TgXYa`~`)oEI1`MD{h#wN@p!bs1eYrPucX>NLjpC6g211q@A^#
      zBDv29Z^g-Jm}MB*7v*%!;|^t9QOBP%Wf+R>btB^$^wS3U=&6T49F}Vagd=jvl%y3?
      zk`|19zIF735GL<t(r(eYo@7@dxrIogXA3Qf-Yv8xI{jPdNW4VXriwXA@1TmM`(^KO
      zj5M8eibOY#EBgtYtY&>io_><!$udsO^hDxiB%h)=@q)6yKwB9DWsH*6;Va{!wBDb6
      zD@7UCdbgh=(7XL+lTsuxOr(S)rjivHCuMu=1M1mFG_g-ajL(R&FG#Yl7$kXteN*s`
      n(?|$H6`s^4aYGGh6gO4lK1`{s)3~kLW2zw_f;7GTn8Dl+V298r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$7.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler$7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59ea0f712c92b4f90f85e34c3ff5a34bc3281f6c
      GIT binary patch
      literal 1255
      zcwU`TTTc@~6#iznwon&aD^yURDiup9EO-eq8WTl`nng??B>Fbp4(;HwYj$V3y!mf@
      zCJ{`0&_v$+QN}Yvi7yR_eV9F$J>U7xnRDj%pYJ~aEaE{97Q<3IOx+#6#}C{@_-QQF
      zq03X%aeW>HP40hmH}+-NUhZ12c-RU=TwTf`!%);fH{fC0U2pCPU*(Wxm@r<xuUxSw
      zLgha9m5f49CQ5`NX2`0JOsWgS?e#_egdxAjgKA6iAZjy=c-<5_)_wERxGBidLFbtm
      z7QG9ZHpPKjPt~VXozqc@>{A&^^^D<jt<PF}*7o0(%xp1amZO#!1jAJaISgp+nu9^)
      zwKn45GMqeYTz4>pQ3kuFK?P5S;%&Oy6!9i+27;mFMZ~nlW2x<~Gowes@VLJwt4nlM
      z1#ZUtPQ=?$yenD^m73Rc6IQfNE#+|wcXGH*ee}2_2UDohq!XdGWFpVXtbNch8`BQ%
      z=_a#bq~!J?gT?9h_(gn_Y9mTxU#v=<YOGfy^BPZ!^E#wOT@HAX2)dQRO6UhsLg8yd
      zb)r@dF2kd~Zpxu|cc0!($C&>H&G4|+$5LQ{MsL%(1iM(&TLBbHdMAveji8rq(HX)O
      ziYk!yg6s^*;ri?`iuJ}ZO7*#8GQXjGWTMCDn>Q#zSQXqL%^{sIxQTJ&pTJ}{UqX>K
      z$x8hzO7@A7!|&IAX>o$Pjngm4Hco#YQCI<^lmK)lj69<%Q}M8-Fkn@QZW?8hlUB{p
      hmQ5LzF0IyTm@zHa4Sp64Q!F#(0VT}QH-mXB`~?_DOKJcB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/SwingCallbackHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8781c2c65b183d8063b5e701e3cd976aa640418
      GIT binary patch
      literal 12162
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileParser.class b/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6318907f3d20534c2d5d8b7a9b1ab522eaad587
      GIT binary patch
      literal 5453
      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
      U2)PwPwJ4Nig%I+<U=t($10@e#{{R30
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class b/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..751608e5faf9721af4df6108894d0eb3b9c9d280
      GIT binary patch
      literal 3414
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/security/auth/login/GnuConfiguration.class b/libjava/classpath/lib/gnu/javax/security/auth/login/GnuConfiguration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca593c31c383916bea23bd5a436a98c838719b31
      GIT binary patch
      literal 5617
      zcwUuP33yc175?wcBoihtEJHv-SY*v)2Sia4zz{%UCxNmyYORmSOJ-m)6K38hXl<)N
      zTbH^NQDdv6R>dk++!8Q#sZ~&Ht=((Y*6#b>Vr^CWpZDHOW|9HEvdp{h-gD3W&wu}O
      z?tMq!fAVPnbCu?WOQEhSma5;ZU#f4bPa2_AB4Tc@*HdP=J{s?e#OlwBrJCch&PZ1(
      zp_`F-%nOe~#fj~6j1}DMRhSr*3H2#65*0Jrb=3#?G!hL8qpXRo@s3o~NVe)d?8!1`
      z2W?y-cFzf(9ICzaib&L0ttXO}@1n*~G!l!Li-{yqxk16x9PcoE7=<xjjOI$#LQ$P~
      znxlF$slku23f?ZmY}309h0;J}aL{J0nIQBAAI9M{FUBiOI8j_0CZJ4V1RdEOBswtM
      zQ{{<?83BcI4FxC^LLxDvE!DlrNUYO0MTyHFjED5-20amxcc-(k(TddvH%`|u1>E52
      z3S$PBSg9w&B-Dp#I9>eD(%?mr7Zs<J!BB2}m~FeL(l7!(A6qpVYN3&00l|kEjwDaL
      zX+!nJO`AZ{ntFP2x|hey#CC-h`8d2Vcw+Z?{cr=%z?ojmR~S9iorbeS0Uo||i`m&4
      z&cQ-*8#Q8GX4ukEOEDU;*o#F9B{@pfumtDQgaIhb&c?cG(`F-NHdGGp@?xpN$U!&3
      zNYX4u6P9UME(?2-k;@G)&QmxEi+RHoFD)9*#|NlrGv1U)=%g?ZxG)c{JbhlYD$M);
      z$>m~tPmi5G{^8rDpk*gKw;-4syf{c0oe3iu_F)}1c(FcrpSCAWqg%s9e25E>>a`BE
      zRz0R$nKn5$X>*4e*98jG^F`IfpVda9JCaN?nj&1JQ05>B3gnz%eQ3wUl4T!J7?)3$
      z8+_0a@?sOcoDhwM4v?o&p|BC!GPt(HV7ts992}%;5g?@+mV7G+MGc)%yOQ0k7$*r_
      zk~FHJ8+2dRlZc0mWHN2DIuY+N5@tj;gbKevY$@lhVmmHvYZ32QZWjyIOH(XHITq_#
      z8CJ%-Dc4ICP8&+e(o`hcVI+#MO<|@C)}@216Z-2cS=5CrlIv25Xq^u!Tr59VX!t0u
      zWD-(XMyx|&QlMpcU3UC8$c&F`_=Mzfkr}rKeYhGsz1X2JK9|=t0~&VWlM2NYR64{V
      zIh<Rwa}NZCPiwda*ODzdXo>ZtOpY0P_liWkd;OZALgk5FMdI~YGc0e{YxoRqAe<g4
      zx3=(D83TDIR5C|yQW!hve_c2czsxxlDBo0+^+-|n-cURhGbKk<3;%Poeap9nj2;nm
      z(u>>EPGo^qnGrAUVAfg#F~h89I6m~s&h+9=4R_%SbVJ5sHXQDJAb((9d@(Hxj>ut>
      zHR{7&T<pa?3R5yGwd&E%c%s|r;F1|Mq&Tm43YVf`Ee&QPZ79N*6{em-Zc=D=3h(<h
      zd<75LGDxeL)h8<;fla3eSbOR$uep8{9@X#|9=C<y9GjwnjI%j`Twf=Xg|k?nbBYgH
      zYcCE;0XoFdAwK1*Q<TaqIWl*YW1Dq7DQ%M0DaUkKjz#XKJ)16IxrDDVbSs;mV+mTn
      zZbj|cK0Jfx1<(t;7UWlI{xUfmM>M>Mm*~inJ5@M1-CoAAds)Lb@J+ky2Zvr8$E0^D
      zb8(dI_?CuO@okQF8;LF>m~-^_14AYVZ<<Z7jaUlpGWq$wh9BUEOs6fz_O)`n=dQ-C
      zhGM*i*S+|0&aHq08s5O0<UGQ})6F=OZ+y<&7N?&Meu|%Y@fLv%AJy=4{DRkkn6b?q
      zdM|ZOY{B^}4Zp^3xUD2z;p{wjkl{UfT{Yo%8h(#INY(A=Xo@nk%ChNdjz^=kw9cao
      z1o@vd{8<hIZ&**ZSs=&6&9ITkrQ9WV!_s`wQ>JEEH{}Yjs<WwiIgLlj9a1`yc25!h
      z#XGg=x-M)TGjFHsk|SInj!9iQhW}{zuYf5uw#jtqdQZdq(p4NuE{h}xJ)Ynpc8ngB
      zvT%p=n23!SQ(+nKP|K=7VaBNwc7xb^HC1G-8F5mpsFM%-BIH{ePbETz-9K*VrPnGX
      zm`k;~`DNzDM7j2}<&x{U_2eC!&l0{BL!(^@-{$Zse>A`9!^ndueGC&Hv8*TY*T*NY
      zgZ5WpvegUPPsz+~=Q=WfYE?h~4`5n*KW03EnQYExGw=i|IZ{37a6CZ)yWzneem~tx
      zkhjs@?Ur-Rc7;0BTg%L`f{|tRa<&AuwE74N)Pd?g%nR~o!5#8e^*Cl$A3}o*&!UO{
      zT5AqNt2u;b1#7&<{S;Ol!b%wr9>^e>O*(*mL~=iAdVnE5$nUoOD8)mVg@-W@2QVLx
      zTgXngS9g#}s|~B<(}$z0@j-f2Sd$@T3w;VvGY(>Hu=+4YR}Y}Q-G5;}KHP^(1nwbp
      zvbyCEGtt_s7dZ7W_vZ*d4qqZMM=>2QTM)+EE*%IS(iFjFF6ff)C1>F^d<un==z2>p
      z3iqLut+>_lv6bkBdvHZRy@2(|hu0bOTPSCu4sOFFXC;?h^&J0ikOrBv)ZOS_w9};q
      zkZSi|){pIz`fzz4K6VgSwbdSx)uz>Qi`w|Jp!fJ|RaLe9_*6fx^EB=|{_@6s$B&fn
      zr(cPo5jQfzbF8P0YB6O2CYlRx)8buf_dSee&Xw|6j^mh0aMP8GUz={!F;y0*5olBz
      z7U3O!HTkUw=363Lnu*|C+>FmM1`oaO#x3kA=f~?FZlRlFE~n*^s~3N7wfI#Oro_C%
      ziFvAO9YAk;bw55QaecmZA4)b3V6XJt-CA?N+KSN_i!WtwsG0?r3ZPh3@*Y`@QdN)1
      zYOV#c%66O4)Km+Gc$rMN_wrdxA>2oW3bd`6O}LToqQ**hqyPScctGSnrG|93)(GA3
      zS5?(y=!Rz_xfZ80DEKtTmh{ykLOT~ls)@C$8DrEkOi(K^O|@XQY9+sGvZP;`;j+Tv
      zvWV&wz%KqZGvMB&wQ#@0-AKJX*jmGUE#F^N<A1mxkBByk*?z)lb3_QFIQkcQs>(ds
      zkR@i#l0^yO%CjOzCJQl=AzZ=`Lhz~%GHjqkg)vS=P^LCBj3{QQtqjA&T$Q3sE~QMi
      z@oW3aEQu`1gtf>C%ZoGdBnH?sjw^nZEjO!BF`mNHR#x*qJxn4I`Vx|+GPNrQ@JxHP
      z|7-pDdLIr;M<0&1%8tA;B=gkO<a`Ig?&JZnD~s!FNqmPw;E_owNevgSc@43-R%2)_
      zHDeb`ObH9%cPa3@;dzA3?<pL@j}$1<OIQhiqFDOQXsfQxs*(#mWuC)WTIR6|B_}d#
      z=SywMF)Ao4ID)ZOw^;ttjg8cOS%JL#)`g99{zsPC<97}Qca{b28jMueVwAd`!QFs>
      zx{*6@6V6jN<9xN7-^8~-S9`Ek-G(b@vs3k21T3}#$`G&%e_`1CASK6t#oxF>0Bfz<
      z>&5~s!{1qZJ-CQO{e!Inj`QB_Nbx}@Pn!JyWR?Uil9(mwQ^Pt#25?OB_urB_@7RY$
      zAKpzjj@ymFBV!&V33Vq5)m=>GyD?tfgK~8*W~%#8tsX$F+K>6_0M1g6QfPfxq7G*5
      zYm*aJAsSe}B-LkHsXk!sD{uP_@aq_ol!gimT}{7oOTn?>)%K}Er{Tb>9fUVsj(PPI
      zeClaR>p51O=P^;eh)L=wW~f(~53gobo{9|16_(<q=vT0qN=o}2U_9KFTp3)d_<vBF
      Bd6obG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6849564508058bb5b8453d98d650684e8948bc9
      GIT binary patch
      literal 1398
      zcwVKF-)<5?6vn>+3bMskt783AZM7=2>c)7ZVrsN%f}u(jn`q+2cA3^OFhh11!le(S
      ziC#6)#0T)9jAv$nZgw|dB4jo*=X}3!X3m`7e}4P|a0itFG7Ps4WZ(Ye44k3utG;a8
      zUC|b{)A1eqF@5T?*AJS?3!d_UaCreahRSs0NX?LcD5MCs7@kxb)2SU=g;dj11JUN*
      z`q->4_f@UB%aGevZEhipVhMA|Gb}cQ<S+Z(J?^!fy$)@-)KIR|*>yaj*P~!A_$Yh^
      zd&UuBcdZd9XlsT?|9N&YQavsivK4&|>)Fudy+A1G7jT-PnsC;JZzV-VN8ezgXP9$4
      z%GZSz{;RR&dxr7>4|as>QO;Ge-Bi8^^^|@=b<$~P_?o+147lf;c%7;h##^2v{jLZC
      zlbWaCSjn(bsWuYl8>i`J3#5+l46A8CL{Tf?3d6mB?IBai2yS5w>-zbxQSZ)bs>oxS
      z!oN{{&*jgBZi?lUC%>(&XalMb^sh*R8jaQknr$INe;~iHd5B}*X_kRSU&}=Alkx%P
      zX;uzZDB-wq$zuVF<iT(PCn>i?u^g>V8P`o3OphbOya{X@vr?EGnK7Ip3pO2Wq=IFf
      z9f3E^S%}GgiIJ@cnVFEwI5#0PVXpW!Mt(>o&*Q?(J@-?|i%BvUCsiuBf=h`SPdwPS
      mn8z^H<1$tg9(SoHw5s?MYwtD=aW!uBIbv0uSY0=&8-D?T!Wm!y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1aca771aac3df16e9851f608d10cfbf76402dec7
      GIT binary patch
      literal 732
      zcwU`R$x6gP5PdyH6O+-=xbJfiTruNOMg&n@Fp8jf?@8L&lIcj6!Qb*Ec<=-KD6u*!
      z9!5m%hN@SOs#jIrFRxF}05&miqQbBhslvPE9e(d+NuffoEko(?IOE<fnNy1PMMnnW
      zJWV<>6zQU-kJWWz!eFR(m3~z$>MVx7ZK-6w!?3jM>ufLPD)KJ!RH~@i&8%E87<)-5
      zEc6r7-7Gi^J&lcqjUEhC(ThQblV7R*hS42szEt9@XtzXq$y>2taQ!6U@fA;{jz35v
      zzmXY3)BpFYHAzJAcG;k75(Xy}S&+)RTqcU4KN9)74#UFoivPo7Q>}fG6low1q@Hx<
      z`#CnW1Vi;$DUt5QJj+C8VwR!t*Nqsg&z+1q=zpM3g-|d0$eI+L64t!4y5?HzuKkGW
      zLzz?~Ym)~K$sb{eQ2jj>!*EL}2O}6IA&tfeRSaMp6J`BmX{Rt<>M*)9m^17*T{y%|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f618affed4920ebb026b0e89b59c7c6b614ad067
      GIT binary patch
      literal 919
      zcwU`S+iuf95IvKoF>wRE(1uHaQi+G8lo~|e0!XD5QX+#YwW`D$TYDQ8IqPU`NBjUh
      z@HOSBQjz!oJ_<3rNmErpNW>4bGqW@2oSF5n-{(I8Jj1$&65(}M7r`en5TAoAEp#08
      zRICD#WFpvM^OmDMIZ%<@H|apd(mb;1w(b}CeroczK1n^42`{I@xqu*4UMQ{dSA=FG
      zv@k&;bT>H2jnduLWTw+;9udmBX)JxrpjyK$Dunq^Y5A_`9ZPd4juS~(3e!j=N5Uu@
      zkCNs5qsj<-;Z&lp4BuijEqab=LM34?mRV#}KUb;dA)`b|ofD|TZGDCyRJ$@Ck`UG!
      z&2U1_rHYn^TZAY77Clxs?D0{@9lM>o{ML=>1|H99ckUmgg^A=FWf!^n_pU8VL8!I0
      zmS#5*Stc_NYlNr&%THLGSUDbo_|5HCVvir5t;f*^w)XTl9&fJKXU}l$yQ}eSj!)nV
      zs`!dI_O`jtW^1_akbK<0JmXkzfxVLR7O~`*eB5Nub}VCM#P*zTY<=|y>hCwsaQk#j
      dR&f{K98qmpG$JZt)!BQv?_l{?zylu0{{!Vy@x=fD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..967fbbdfca2671275c9e85f29949417e3ec8de4f
      GIT binary patch
      literal 923
      zcwU`SO>fgc5PcKUxN!r8Qo=`pQi(&-qM8bB0VD_@H8N1Cs1i4}_L6SptfTch>Q5;L
      z{sWvUfy58sM<Hf6p%n^3B0kK%nVorWX4XG`e*F$$3u^%?gl=D#(V-ZLqo~MBokjzd
      zsz_voh@P@}#olu{Qi<F#`ADVG+;!nMr5%=bCpUImf5-z=36EzY`b|NoJyKfPCxmt@
      zb~I5YbU)g)M(KWMI@0U4_XyQ)p2`sCP;X!kHNs-7w0vC-_N93%_A^OXit|Kdd%`H^
      zPl8o@pbEl^c&4WRoW8?!S`56@RGWl_R2GR*L#uMlQzn^`+7hV8WkaSQ)cewoRS2uC
      zc0AS3SsR@IR|%W{?)t2~aZ!jSuDku*AUtc$HuCAPZtLN0UYbO{RBn|kf3Mnf5`@OK
      z*3xt{Q53QWuu8c9zxuq_>80Zih@ahk6-NB_Yy<Y*vvp^<zHx7@Id_8jFFq%9F+PD~
      z)bSAuj2?2Gi#BlHGljT-MdoqnBBP2&m$2lOLR@C#Dwc6&qV|AqTz>r<n(x+6aP9M{
      dSj}I2@<NSq(nP3&6>o3imZ#;P0k?Ue@E0|u^acO`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaPortInfo.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaPortInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f84357fb8fdca3a6804b007e3ac6e9f09ee74fa1
      GIT binary patch
      literal 753
      zcwU{7+e*Vg5QhJ4)5f;(RJEQJLC{t)3f@RPAQiz<MNoRbP1d@SZptPtzLpn7@WKc1
      zp~TssAk+&rke%6oGv5q<_U--U6~G==ZKN2E+N$S1@IHTZqp+uZw<CS&@*v{wDJ_?@
      zI}?5BiEAD9r7!flk*`A?U#Pp#hQ)C3FN7&)$a;YkDrR7H2CGY0(hjAP@i9Yrvth7q
      zz*XD5iM3Si>abF;mzz{u3w@DC8jgbzj52Kes<_<DfnnT123eC$I<S!?r6HBL>UCN|
      z-||)<7>bS1<3W>aY4)F@72nH<;iT~|3%*>e5=ik*(qw2thJr65Ps?sBL&cE4347WT
      z=hF0F{F%OEC=AYpQbN}P9z`OuvCOdh*EtFDeNt<UJWA8`NzqG|!8~>n=@*jm#=|`A
      zy7ZMzu~^yKenz3PHo#b=lo?>+DXA`+Gg!2?sM<pTJ|-bBMan*r&FM5|5`GaS%o5jR
      ebCji$%ydsDndzS)bv_|4V3A@znP&+rR_+5$JiWsJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaSequencerInfo.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaSequencerInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..021a78358ba6d58588eb148a4822ce4bda8652b0
      GIT binary patch
      literal 870
      zcwU{6OHUgy5Xb*cw^>-0M`+8V;dQ74fr>4M9;zTD9;y^+i;#kHcXmx`wDE$yoAzV1
      zr&c}m1N1{xjCUhY6eL7^7|)Dne*dxk@Bg2_01mL}qQY>}Q+aUB2mE_r(p<$sU&b=v
      ziQ&O9nJ*NbiGhs7g-!=D7W$n{x5aHPR3vmuU8OD@hEEf5Y&%2sP%4=nF>LRI77-*|
      z^@4V$rRp`uGmQ>|bDGA&!wXFNc!?^*d?=MT&--1WFL^f+42xkJ@ub7GwDB<MWM8FW
      zI148lcjVelqAA`ll*VRcn2Cjnw7kh=su-qwA}fImn>&qgO!`5w>ESh&T)bg8czVkF
      zk;-Nt%UB_Cl4~iGab*QRlHjvRbOo=S<~kCerG2^j<L|O>p$vXYDWOjjZj3N4))_uL
      ztvE_zsExfbw!r9<?W&MRKTX!9s6|<ucX#*R|H9PIqQE2T(GF-TG?*c8t1N?$*#hHY
      y4)X-D-U4~Hx`xFecAs{8=KRL1ANR~^k^5Hg{PKLrt6;UTZ&5F_ZTA{B;N1ZX|LI@=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e73ad93dae9444c28f997317d2dfa361825cc581
      GIT binary patch
      literal 2276
      zcwVJd-&Y$&6#gbz*syGENh#KXHbs#9uxzDjt$|`7t;U9erlPcJS&}hM&$65DZaBqf
      z-+c4UN1uGHRY@$T(KpZW#pCfD{{jCG_0A?HKse=q54(5f&fM?2bMKuyzyAHG0pKN=
      zDnbkw%68SbYi^kL4bQ3CC1YKbgkf5qX=LcPK(j305JkS^Ivb+IT@?z$M3;qE5k~iB
      zh8|&m;&=?xxATW(8k6cAnWq^d(?v_z!oR{0jwhBGlzFGbH8Aw+&=CoUgnvhBp3-p~
      zCm2qaxu3HuRlf-<k?t^Di6{P#E0Q3p<D?`QB!b1NznekDDTd2OCg>ylr*-t8SH&|7
      zb4LOy@OxEm7r84DBN%4TjS}B5JOc3ey$GJAC}r}6Osu_A!)ct=5yLr#-sx7TC*pa@
      zZCIvVHVVEg>~gwWlUUa9JjPXwF`U@3y6O3RUB?TUVCXYl*W4^Rl}(1^PSnM<yS(V9
      zbNi@rGSA2J!sa)s>ucP-X|7qEqMvt)rnPLkLe5*tULg}rb*4H&LOcy&oR{aJ(op<Q
      z1uab-I_*?=$0*00>@tkY^6A3pn2xmywy$l+kcl5`k$BP;s=8NjNyV!Sv4fCwyoSpZ
      z5K1hajN#Ni(N5gbFo?8{DNHk*jX#-O1(m{R2P9`%ylh$-w_IK4wtw}0kym`-*ec$j
      z+TB|ob5&tcC?l9-7|A;JgdcNx(J9;FGag&WWplAoKoiq2i>%Dp)jdw{D6?6-spBo=
      z=zM0S!tD~n`Tfq<W!>^3Eg`P!$YX(eitjWR=_bd!O=#~7vQ#}HNc`x*Ib>jhKJrd0
      zI90dEuL)V3!}}N4q{O3}nX_%~&ReGEaY|R@zeb?q1BRKyR%~$nmmJq`R;#{yI?&Y|
      zRD5{UCKI&QJ=nW+DyZGg9|^nJRXgC(ZY9o9rwr3eM$wk-l13^b!AG}`W?zynL~^bU
      zt&U^Y>lnx<8>z;svicZ<-(lz>hQix8y%IeW9jW2DLNZJmCE2KBG}RiersV8fLJ1*G
      z|4~8*9un{O#PkFDQKP<Dr?nq(5s#3edzzpfL$qH-8p*(~eq2I|MvQ6lWg?d~`G5pc
      z4-lDbR4u<Rl4K-%k~O^8q1J-KJcfdw0}8#l36n4afD81bHvuMF01BPqLEFAJ(EYN*
      zR%zQ#1*FpU3qq7Zoe9r;gW(h*j7)9e<*%T(hOa;PJj6z5()jwHzqT>6vW?l5Xr_kw
      z)E2I7;q4l3{M05LA~@hT`u~mr{DCtx9><@76R{>y%LzGJ#1gp?qQ~SNyh}2KLV$D=
      j?~zOr${?*TD;nM>xuWz@>=|xRXl|4Ih~&p4SE2n24NhWx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e321d8daeb07c316a8bf0ce059f606379ba3fa42
      GIT binary patch
      literal 5607
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09552ad627bc502b8e912831a993401f737fad59
      GIT binary patch
      literal 1274
      zcwVKE%Wl&^6o&tCT!*-!Ed>Gv3N5fmD5_xzMMad0R7l&1mM$tbu051N&P?P>$dU&F
      z306ofcmN&>amG&4$hLwIwq`Wv^8M$`nP0zu`~+|xx2iB0)=y;Od~o~jz=>2MeWxpY
      z;kZHMI!|cZOX6M<cT^ZZ<9*@rDolpvbmlah!FnX5h&LIwn(gV-4p|x12~}VCJiI*;
      z+m`RtM(dEle5!nIqk>u;Gq4!u+d}f)q<hT61NS(ff{ShCxxt|u3T+RaX8c}64EO%h
      zLjJNFL<*|S@c2KQCn442lA+Sn_pqN2Jl>0il2H{G7+M8oE%-)~R|NVB<9vo0FHn)5
      ztcdnTl1B`U6CUpfFQk~Kq~B4I$nq)tk_M&2?%*}|xajjRO8wh3uFQWBx-#mDI8H;e
      z<Q!!(EH_*2LVu$$-E5AsCwPXHGGHQu7<*qOp~qhc{W?o!vtQQ=SOql-{ncpElapPg
      z(<Ti10qf4%cbxe~Cj&O^cItgVnGZ2br$&~AI?kpl7UnQd8Vn0KN3linnPi<$Ro7@S
      zy-o$K)UlO{)wAGGjNu|lu<78dQm}zbL-20e3o(_?IdXr3G{)p*ER9Jci`Bm5$hW2B
      u6<p2NH1joiDS53(7P^(C<T9=oW<1tlUvnBCOEqp_<sURYm1?Y}*3Cbs9`T6)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaReceiver.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaReceiver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df52c733f8fb88f857ee6a91e5a3ec83204224c7
      GIT binary patch
      literal 900
      zcwUWC+iuf95IvK)F)@akmRq^CK#)QzFi0RCia=EXsU-zOtG;iXQP^s|uDnjv-{Juw
      z@xTZ0QHWW$g_a@|S)QG<JLk-0_s7p~-vK<vy$}t;(~%vgyK18LQ&)`bFwON)r^+~$
      zu8R3kl+`Pq=!`oae&mexgv$^CA@Q`-C_75u4|X}LLbM1Ar^Jp(gjV%QyUrs*uRm?t
      z6=6NsR#z_w54zLS?(YzSwPMI^5YEL2aVA0&voYF82+gh!nC)xJ@5cFn%WX9<OqlBz
      znKC=7)E*yh2EJ^<v#GP6n3Z%8IJQH=oo@dWdsECNJEumxvf*orUhikTSLwpK5DSFG
      zKT}>ehDXY5RjT6OQG_r*;1h2BU!Tyfbk4%h_XxB>n8{4xgcxlV<1*tn+P6D@vYCfo
      zlMt_4%jKF;&aqT>m(ZPd96~-m5Zsn4Y05tXN)mrF@*X{IBNBU7&=WM|1ESvY7sS1<
      zIR9Bt0~f@$BnDW;oY=VbBh2HXtb|LrEKyg)4+LGUwO-apPXCs8TT3iSYEM0o@ZL3C
      oug?iLa8npES0smpE!X@15ZgXh&yiRIi?v;nj#2j}ZvY+8FZRpRKL7v#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaTransmitter.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaTransmitter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1759a93f3f5fe2f9ae9ffa903e83d4a6d3e10418
      GIT binary patch
      literal 1602
      zcwVJcT~8B16g|@q3d>RoR1iu5wQ4_rf}$b?5g{g!f&>W(Ph@FFSS-7;yKN*s=o|6X
      zX#5GjN&*-)(S*MFql|a9OKBlu6VvQ`?A&|KJ$KIb*Y9sX01RWs2N%QWhL%rmDFx+a
      z($w=>Ho2{4)ufU$mE;r+i@IUW@PeA*5wTr16wTaLEsGmIco+gAGnrGgjpUQ{EuOJ_
      zsAK3phgX$X&(M0Bx0Kg3Wj)6k>J6UZYJnRJq4YV3CFd~3P-ktbW@LyVp02feku|Pr
      zs`Y?jAX<A`Y=yxyt!H@y7+PdBLYCl0n~Wv|8Qf73(41B^zL4Ku=f-kLN^4rrD7h8I
      zP{rPP=@Df!jMdD3w&f(kZRE8Egb?<jn;}{&l8heoQU$8^OlO$<M+Nh=E9EU3dO^){
      zBXR;aO8}_`T){OTt};yg7m$nyuG7V2aw^v>1~w;<Z_0>@*Pa&?CfXjC(Ev#z)%`LC
      zFvt+3F07rnWzE_&xRPCC=!?$HU0@t>RgEUMmdZBkiC!4)!>uZdFWW>CeLExK{_ik!
      zlmM!oOqn9)o{Ul95wB?}2B~Y@sH6@@V;6edo5|@WZ^Q&9eIV0z{xw)eO3+A8^}Lbc
      zk5yr{w(9F26v+(otfp~eI;WT>CnGkWu^0883<ejxpuYzCQP+V$K$xEXF}(1QXg|d?
      z({99$0Hk>05P|p?wC>Z+g-bNnQ4H`L?KH~vT0#dd(@Z)LbPyJtxW4!S0nl@Ru7lFf
      zUfrNo><EcdT*+qKK`)F7?7lK~5<?F54(V{y9FDKfABzfO{l!nH>o5NNj^S0R_Vy9(
      z?h~Ac#Q7=EkAOXwh}uakuuG?}s0q7h!E1EmjZNBa7ZG+y#Y(h^%!~UNbLbbH=J?~Q
      z>0==yQT&`J{<QfdVgx-+_FUrg+r{qD>05fcS0T<{7MChFjyvd~6ZEebr>}$^3La8P
      tOeJYSN(Mch_FO6L9i6_X5<Z}n)?N5mK^bx=U3h4ZQ+Nb85<{4V=MO2abJqX>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice.class b/libjava/classpath/lib/gnu/javax/sound/midi/alsa/AlsaPortDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..895d98f457707c975b88db08dcfd9186edb120a1
      GIT binary patch
      literal 912
      zcwVJZZEF)j5Pmkf=1h8R+9YZ<zO<4LmlS&VK@b$hRsso8i<W@25I1*gy5+J5dw0Q~
      zrJx9Y@CW###JRnsRSQ*-WoGBuedgJj*>B&!d<Ae9cWe|G+=)uP6F%ebyf{i#;7w&9
      zJs!r~dqQqM(#caXlfJNFF|1`wFXU?Cy%?VeKe16_Xr9Y|MlMfdu%vn$F+3hz{L)#<
      zzK&)x5W2M}php4^7)lSNlF1{6UH3n=+CwU9FA78jMXWd|W0j%kwufa<j}B~HVyF(J
      z63^4=Sm*;j4ylvcAo6)Q<XUEUerP4fGG^%fp`^1xQYR}DF$X;}o0i)iTrk7dd;krd
      zs*x7HkTao2$*~qZ7%^<R{r>s%mvf$Jw(=@UwJ*9dtGNDaJv&({gVR$==)I7~v50Nl
      zWVrXY9hu=S-Xo=-p^Z(3`~ReLpt*{tGD$MA>Tf637JX5XY>5onPm#}X85Q!>{ou
      z0xF%)a5~$cQ2jutfOYb##06f%!XafGp+@LR&PE*#z(koUqjj0?a!t=*V5##F)%T}z
      kC3E=3$T&G6m!a?~HVp5Y@z>F$y++Xuy1Yepn`{f#551@DjQ{`u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c928dad56653914e8f6119f21cc7f8764a766707
      GIT binary patch
      literal 748
      zcwUuKO;6iE5Pd^T9E?jKe3X{9d>#Tq7-(;)xB!)qOj{`xNZdB|Dp}<0BCiv1=fI!g
      z!ljis@B{c!RmV<5i^_$=?#%4I_x8=$55Mp30qkJS#Ry@yt$V?_=!?t1nx2k>u8LI<
      zTdRVDX7lKns{`3rk^G*TzKUhKw&TJfOy-;*5xO0GYn{s|b5SPD6{pGsUsNKs=t_>6
      zObO-BN~>&-P^zz=5S)DzOAjTC`*2YqR70iZ*Iu_J(;uRhNJ1?%kw{KNs`7ex=wuyb
      z37^83yKb-v5k>MMBdpfLe~mW6zs)qWROxnO{j7p%cDrSbhgrOKG54hB0nEod-ViEM
      z$M#fZ9l~t=IV~276;EN}>9YjVd87X^2wv0l(kLGvcfIg@Pg^;U;2&u%)BQwPD|t56
      zLmef?vdpo}Iwp3pO4xqsys!;6&1;nZl@VV2mAD$?>?23wIJ)r*-feO1^X?U}D>!`l
      ziZg!z!UU=ud3cx_3LG-BluK^bYCkb^^C(d+DAxsjX#g40^Xx4aihCFD@V=1vP%sx6
      Qn?FBr1=O(2yMq<r57VoyBme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94e1a7599101468cf885e8d61f975d2abfb4c691
      GIT binary patch
      literal 849
      zcwVhiT~8B16g{`yc41j97O56gAmIUuxbjFazCetHLeM3BBw4yc9n#L2nRdfZ@bCCQ
      zOnBf2@S_NKMu-piqG6J~d+we4apufi-&|e+*uYYV5@EBi#>rV$Wao+1W0faEnad=%
      zRwg@X+TLexM-;Lr4vj8kF3hqEx7Dc*5fBz1l>Vt$c3Fg~)hZhbLcQaXlR>8XNjfr8
      z^|uHWsd8~npk2=VAe9__Bpk0iOnt1#?rN71Z0lS^DC0?tNjxR&J=(<8?j#7)F)FA!
      zRF4s2f>7&7B@V{J6Jd_BlY!Sm_p(7ZGt&8Y!C>@FTEbT6zwd=b4Sow=EriOoAx!1M
      z_Kf^Kl3EeMLKy2&l<KkRiBHl^p8tE_ca8)hZYw3s_8_xX*bobZ_y5X}FmcZji>yqU
      zpJ9nV77A{$Ol<in@RdYtr`Y?!yDr*jt-W1u2EP!unw1OGT8-)jp8fP4X4uvdus!6;
      zFR0-wW|87KM?P~`u4cdCXEgAFr;$f58I?S0GAesC$0+c~v8s6Fc)84ZKkXG>^FQ)D
      I-|#u2TkrDK8UO$Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c21bd4567776fa9822d4d10eecf2ceaac316272
      GIT binary patch
      literal 3095
      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
      RNmkM*OzU^SKV11=<v)LF13dr$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIInstrument.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIInstrument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fba99b598bb2f6dc81a1410a47785e6d1d2bf220
      GIT binary patch
      literal 978
      zcwVhj(M}UV6g{_WySA=ug{mMZn()vTaP`fI@daYiq(N{EG4eERC+%Q6H9J!Sew98L
      z6CeBlKgxJ#s0tKGO?=pyJ7><l=bk&+??1kN1Mmp<L*xjLyLyxyiud9uF~gDWBm>n^
      zNyiwKY^P}>J=V4-jrt(7Rd;S^W3$mfY8xUTEKOwoArK0-r_Aa@!di1`l}%22s<g7t
      z2)6nUdCdu0>cW=LZ!fsp6}H_w!IQqw-6XY{(%sG4J|Wl|c4QHRs}b@jlrV#95kkxo
      z-c<jO%qe86FO2cJaZ_ozGa9sH_DZz+k}%gCwncwmWXhe#VBn@ocryKL&b=IuxM+Sg
      zO<2Cn5+VQ2c_1wO%^i27#lUwv;gb+{rQH@*5GvK$DZ-1^p=`TWN-UPO<#Xk{RnB$(
      zz$Fl(hSoCklaeOH3ZXW&dBW^j`?$wXJHx*KmCNpZIm+=D;tJzMjt&^j^B&jNKBH7$
      z-&hRj3!+b+81q{42``znhcZWX1dfjDm;-z?kBaBSxPhBqEXFM?Fpsc^+hd`1-pN&^
      ekH2ddJo4JtjZSXIb#qwq>oV^69$fBSHiMrA{{{L0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6eafee5759ee8f296e0f91e0813a16aaf4e66059
      GIT binary patch
      literal 3148
      zcwUuMO>^5s7=BiE;?z+R#|Z_R0R0GHJEd-+EtG_o#-X4zU*I%AfOZsHaa3d}W67C@
      zBUi2*Idfu|=}bFhI53=h<jj#@!GYm@rM03s^2j|{yZi1wAMc};pZ)jy9{{f4K?aJz
      zjfUMWKh*d2M`hP(+x2qOtefS!>zd`oYE`Qq*xs(;n%^0%8D6i@Ze>@uZNthSEs$eq
      z+0yMsd2RclQS&kw6qr6i7{Li-YMq(T1O~lb)1A32FuUBhmpOvXo3`oQ6et&-1E&=?
      z1=1C#Zk&R^n2J-#W|6|UiecmhQib9s?@X%5V2DmEo3^pqZf+Z`4Sm}(1oF#HO}94n
      zmdR^bOmhzcbNxH%PLn&b9nV;^1qKS5#x|z$Y6h<e6#HgX@fyww47m=m*4dd@$`a3c
      z6&El=$p;b-XjWL#G(U|j*Mb%axo=ob&GZgBXLoiOUsO?I{E(~>LAv0h$6Ui(cdUc;
      zmf^bXmcgelsVMX5T-P3<hW6x~kd5QJ0j0(SS5;iYbs}h-AQ)udMY=Y5BA3}6G2|OD
      zMS7=nex&BuUdyp~yW!iMSMdSc96h!}8d+JeIFW&U-D(rd2vbMuBYQ2U(bAg%isF)M
      zYGYfsza<tn->In_h3VCH7Yw`3NBlu;9IH-{Wy8B|Sw}i_sfKmSTBX=s$~{<B`4adm
      z)#A%2k8^-q#VrBFp-Uuak|DYk$994pdRv)Br$C{|18Ys&40hy<L2ZxUN7EmCP%xvd
      zs$(&q>kqsY6tZNhRWt6GeCZ~;uH_}ZyyRA+7t^X(y6YO$*jU#mfOGWWrRX;Rh5n)F
      z`vY=0{z7RrMfG8*^c<np2AxRJI9Zx~iqX<<$dyu0F;SYP$78B1c!8dIqydq_fDpv;
      zFGhue(^Nn0^H1VMyaf0&)>4T3Wt@=;RdT@!<E1AUeS#?(CZ?tjaqfsd%QPa3oEY|L
      z&jx^yb{wx0t?*}WNP#yK1q$5)c@mg-4uM%IpvfGM2`DiFXGmZw63j^ffs2X0-|D74
      zPqY^jeP5Qoui$Mdut;x>ZRDZ?hj{0gkbjV|q7<>53%PTl<#)p*uK7rU99aw~u0|+C
      zNFjVvOz|FWNQ#U8n$W3k8}mMg8th6Af%g;hn(NMMf%2;K$m?d9*DaaXhhbjVX;fmZ
      z-Ho)Tglvjr6S$q6(7hfBErb-EK5x-46-RMD(o>Y8B6|wRxTnQF;@*jk`=jJe_Ih-3
      zM|SdYAL5T<#Xq4xngBWLuVci&j{rpo)RKWe!~&O+fj`Cq?_wEAx8|oFw`K*aelTlT
      zM?%&=_sF_K@hLt-Qr5r5W?fAdKTHtc=tKO^Sn+$w;?H`BZ%Xmc`w;&tR{V=(@xObB
      de<{Vc`VjvoMqI&H{_|^m1OB&S>@@B}{0|@hyAl8Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89d7fd6c4e1798ce172f14a72f14e4ff7eee953f
      GIT binary patch
      literal 1835
      zcwUuM&2Jk;6#tFmWbN&Qx@k&Dnl>Q~;KU`{d=Nrh0!`9_gVU6{Nh#%{o876i)q2<L
      zj-!SP2QFNYxFS{D5Td;RDy|9w(E~z7d<X=H14sT2#GCcfx^-IxTQfWJ-ut~b@Aux!
      z_y2tHHGnY)4GD&+vR5<Cn;Yf@BlK&YZB!iFG3+pOjD=FEP}=n5x(J;&MKGlHCxj)O
      z4H0NaGGr9aa80jlEU%pxmekO}(9`1WKM+HQTzA5ugABRimgD9LcF6G@Im<Ab{U5mD
      zRfgoeZ;Lb-Iyp3?bhKeRM;aN1wyZMPUUWQhtX5eQ!AWz?6%1WP-!k1*GjP;C7ADof
      z8K$=${x-TOhh!)`n_)0pY=JM)v?RjNEQ|c2I+T9of+ecb@x4$(4@3Vgq6@Ao%BEYA
      zrW7}=H0)v6+v2yh?guh<tYa_wHSA;PyI*{c0X)o*E(@tb)WV3Tf{tG7=NMAD6zLXB
      zX^yAyD6$$JV;J5tD;&cZAs^Pd>3PB>_x)$?PRM-2BCkRp;CNhx)+ux>S7L+XVDpK_
      zwqYET8Yb?QWQ^r_0#npgo-f6+$IzZF6oyw7c$(uW%rIz?>fAXhTQ*i5;&@u2IxXLm
      zf$u6`WooTwa9G2$w_S$PW++94V-E8~pI?&<yP_lw$2X1#jz`=E!mQ*q9AVhq1eByK
      z&($2)7C{QnG3;FND30w4d!W*&(9D321r$^hFOuIzJ2k_p@0CT7V+qG7OS4*yI<Jp1
      zX)%st<rU&M$BQ^YbV|RWWa!SeLdf<cRyC~9>F$yg$0>C%t*S&Wv8%-gXV`cD)~B|U
      zPDN1PRjLe(oTS2=*#1^*b9)mwwIN*Ja^xmq3sh9g^+N*cCBGI};;5sparYhVII5g7
      z@B+0(Fz=dSD5xcQ^VOvbK}Dp|4wlKNM}%I_HX3Q@B;7`<NhIhG=p(t$!AGv*flq0d
      zzz&)_$OiZdT{QD(tz##;=}X1KgJiXv)=Anuq<pbyT6d7-Qtmo>-^Yi!Z_qoF%+=9%
      z8S3{|<QaI6#vU4<&^X(ZtYdJheOLPj7#z6*eg%&xQEpt#qmlL+#@g@^R$A59@MMBC
      z`FjHM3fT7<X1~P3>8_(!@w_@t9WT_eTu13vu5-xH{4H_x9XfFX2k-+X@FS-26Bh9^
      zmg##6zre$<cmu!TZTyaR==(1IpnU$s$M`GaX_B}m24bGn>Lr|xxVwaxafYIG;v!zb
      vtHjj=X7L(cSJlB;ir=V6F5;KQorU<jsSqp<kboJ@Yp|m7Q2)@&W&{5Mi~Gqf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2669da8e3e433aafb782c46cc6bcfa42b819c96c
      GIT binary patch
      literal 2595
      zcwU`VU2_vv7=BK^woOk<DY0!zEwu*7N6U)e7(}5JObr1E7NLG^k~P_qY|8GYf-~NE
      z=Y=!e!JUpX4#TME7?|qlc<tZtf2i*{yG`0;t<{UozUS=wJnz?YPJaLMr(Xda$GU<5
      z!wXfjrLJik+D+ANw#<s!Fe-*xv28<LDi(9aTc%UfZR2CzO31bFDQV_)1tEq}0aWXn
      zSyeBT*7UNYAi^-!N7q3ygiNiWGmPcC(4u1*W;M$&RMG9SWvn|!)1;MQ+K$y~=%!;+
      zC>PLjjJldPY=_(jEuCUmWt~1pHgvPnv>22P-LfS<;?xW~@f1TQzvmi>HFDB04d)cY
      zM)E)4`pfx$JE;|F(PFcr4}#$_j(r%7B8Ul&{g`A3CQ~a4rWg)%yK&mGv|FMjQN%GJ
      zaF26DF(j-*9Ne{@;7~9itS31JUF$H%uxlOV7{LI;zPw@Tg;t}aTbH#`T@I>Q*6J&o
      zWr(%684|5!II;Hz?Gz8SIjB`C47166A3WC?J9T3SDvm3lDUR%%KgT?trWPf)_0ZK|
      zHg%05+7%D=W7i<0nX2v-q%32}l%Fu8<gl`(t3kPN)iy%*(st2u+PKt}<<VqnwLf^L
      z4_lsDQRd4Wr|=3jS2RqHI;Y??!`#2)1$>cX39nHxPE#s^A(>qDX^zjHf^#H>JtgXv
      z-0hw%X6RSrwgxMBgW=#V9tzGg%<N9WFuWr$-CRD}xu`kiS~j&SlW5kP9G6gJ7%&{&
      z(i}0$@vYHIiRHX~@_q|f6wt98>;KB}Hm-_0O~2{%ipT416w6rUcn9xNG^#*mNOxq?
      zCrLMZao*qO_&~@zqTgs~bz3A+;wXcTj8fC=f{aHBA*F}cUB=0O;v+}Hp#o!m<uNdW
      z^j(zGJ!^==9qT!|#{`U&oik0{TC8ift=kGn>#04Tej476^N(4&bAt4Q=~4=ai;4b`
      z0^(YdZ@RqXn|tqJZ+}F*M@Pk_NNaI#?Z+7X9-!4%#22CW^XW_*vGgO1r+-HL>LVO%
      zW4de3r03h1O)s=DmyU<pNTlQ8HjaER`IGcJCu3QZS)C$O5kn1!U?PDgQdlSL+@Lq`
      zEO}5gq>%xnC8`KWOVkmRmdHFLEs?uG%wxgJc!|7)KTrRN>C7gM1#qRCM^t{>pbmT_
      z<Bhw%op>D2P!2RcJV)#<qbk=xm>6dtbf_Y7^AkzKT?dbb4v{bTNH6$PU+{~*;6yL@
      zGhgrtU+`Qn__i<jC1gGDIr0|Y;sl-%&n8YX{DN0EaVCJ@aJEb6w)8G0ac3K8yhHjr
      zaz3Qf;_*nAJ<@zH>6b+Mg)eCV7d+C>$x~=SbqOyroc|hA^P9NLh;q5G@DSHB5Aog|
      zgclyrHl4Y<fBnI_p=L;8zipM>=dCh#rE^*fU0eG=6VGJM(%(UFM?9UoExQ5+^Q
      b*NAC?um(vdNcNiKzD`mXg@`FMNapw(NY77X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc8191c97d0638a6db3787819d05316c4465ac70
      GIT binary patch
      literal 6305
      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
      Z2Wb6oG~Y$z-)THc<3DKJPUAlz{tG+<_Z$EK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.class b/libjava/classpath/lib/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0efae67cfe5819961910a6e5fa95718225005f29
      GIT binary patch
      literal 639
      zcwUuJO;6iE6r7hhF$spyK*C1~^uU2|s9TPJxS&QjgkBou?$}G%l6WhBAad&u;(`RK
      z)B`_&ABA|ku_~c*;qrFg_|44Q_0#j;M*v^3Wurj&GKw<yr+@9=xQWW5(4ELox)*XR
      z+;2Cjh(ZybGt*(BqvDC5+OP=Q|0!M%5$q_9{opDgkVmMEMEX6O3`N|}+2U@SdFw=l
      zq5{IagA&R-*prdSC;j1A5b8Y@_~U^eOWo(Bm0n6V+3&q~`$IzcNJcU}CRBF4j^}l~
      z_MnO)mK`i%g)lc`+XJ04{l#HUD6eHARn#{vbqLj1Bx;<cOcF}NX)1UdXCi}GB_dE!
      zsPEn7xgRQv1EKQ?t+!YDtoO$!euN_b7eYb51fv3D8*^MM+_`)bpQXKfRBz2^hilo8
      z2Uy_h%m%QCnlW0!hg|&I7y<RY*3M?bYL@;mY}gN|-u-i0H1S=`<BWAZ<9NzCR^^Tw
      jHS)wdnpkC}Mr+I!4O(Yp8MJ{GZ=#XDjLn*lCTa5p^(BH5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiDataInputStream.class b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiDataInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1dce70845d85e794f5b9fdce95d3f9ce47618c96
      GIT binary patch
      literal 666
      zcwUuI!A=@c6g?M^u~VubMQ9zh-5Am6#BC84R!uRZO`|b!=M$dz49pmKLvSJOZ`5ya
      z<Hjak^aJ`W{RZoO1CqwL=_K#Id(XY^oO9>*{m)+j)-Y!wMp$Y1p?fa6qUUyk(675K
      zRafq*YD#yPvrVBz)xQY!zHUp=vXCI;&A6)q_eqnGTvxu*6+&UrdmQ>_pj130Bt8ap
      zX(NsoDU2aWnDmq{_rlhRY#)e|rX);xK}|FdMO&GA2qyHI>JVJ-zYLcMG4m|<tRKet
      zu0JYy(r@Uqs;>$0#bT9UZ}n>OLaV^<Sa?myjz~U_IyMN?DdbTgj2pI%OD!XU4Fc8p
      zFwt07G($%1{UB`D<hC*!6`t|CY83FEIpZ*2j5GdA94)RYT*vrME-nAS_-)j;Ioc8W
      zfhS9N$=UQ^3MssbSdy5)By$kb$Z&6pu>@Dyi1muKjN0<j9dczSgKz!sn0L}&`(-C>
      z^$dEn&ed^w#`LcL{&8+b(r=j@*k<WZEVjecyKH|CMSO{@yc<vttvDRt@Efz#0%kZf
      J3px?o>;p1ek&plY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiDataOutputStream.class b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiDataOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5de7c501b06be66342ebe48de408d1746adf4d07
      GIT binary patch
      literal 930
      zcwUuI&2AD=7(I9REkz5(LTN#3OiYUjV>Qu63JbN3C~egmjLQLr_A1O&m_alRvhXD|
      zag7T%ZZvV>1NbOi`2^ybfud=;5t2LS`@VC}Irsbd`}+?7t5^y^5y<Wtw)$M_XkE2!
      z+D1)n%9>Q`vZ1S6M0Yhy+p(<!+uF5Sy4DQ9D=_cyRcWdxrvm<UX-KOekX$Yuv;Jk|
      zR>}h2J7!G}!GozVeDDj*l%%0=+s%sJdZJYty1;D7tZI$2){;&=ZhEbK*%r83`oGLM
      z0mbCK`00rR5}mP6NjLVa{i0!w03DZ$D@6fcM{C#&Ac*~q@yuVb>vg?F-B&GX>E)9e
      zquYFLXro)z4=iaK?En@8V#hIxJCjKW0;w?4NC-^1dbeL&bPVm9cB`syO6UE_(_WW#
      z)NqmaJ#c;=A}*C@fK>qs|A0Sp<r{)uh!li)hTQHgGIN+FijP<b<BY4~$63r!Lm-0a
      zSnCtDz5K3u@{5tTy}|&obR^g<q@5~?e!pK>j0E01TmLXTdZ&mqTfO&~Cg-p)82(Cq
      zp15aS&ka_aRKCaFeY!os0`Vn0#AQ4p=P|Bh8#nOOWoJg-lZ0!SMU2T5GR_exR9eLx
      zk%!xeBf-u*d0ujoZvKy)I6KNYdGk!4V)}e)l0H94pGieA?0v;zYWxN=5A%cJ(ccAT
      x+*9KMs|Z48s5<Scw0^-^1J}^RO-Qczr5k@~WIc(W8^`xC{+t_M;JmAT;SYQE#o+(|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileReader.class b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00b1da899c5d7947fc464206e272b09f42776799
      GIT binary patch
      literal 5807
      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
      DgHV3#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1982f16ae34e7f1dc842fbcfd98c330547856c36
      GIT binary patch
      literal 3371
      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
      AbN~PV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5191a9dc7f58211ec5aaea6ba3ddec29472e9eab
      GIT binary patch
      literal 507
      zcwUuI%SyvQ6g{`Eq%pM`-%GJzb<wCB7Zsrt3PNyUANy%D)RAOTCW+{m=x?|ZT=)Tg
      zlsMBW2)fX@!?|-0=bp=*xA&J<0LR#|P#_#lW$xdwTXyHCNiIV_W$`THq2C$md&ODE
      zRiiWPB`Rjw;C{v}lnBjVJMvH@JrVJRxM9?U%9)TNJ0}#I2O~nMn}pm(l~CvmZ7gZN
      z#c~Hl)LfLYOxSM*#@&yYocjGt2{~>5WQ<om5RzZ!@tCUt8%KJW7bFuFjhGUq{v=D;
      zwMYpk!GBk66P$jMs|hz-5o%wmmT@7t7gBQ7jaZuU)WQ~F?++t%-}fQdh5iGWLpsW+
      zXtZ>7s#(&xdg$4n^9=V%7X{QcIywUnu<?i${c;yVtiqdX*5<g5jk(s?ZeknN4^ex5
      AMgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc0736d8716022f60f5652e8b8b5982657e375e5
      GIT binary patch
      literal 2587
      zcwUuN?{gDX6g}Id*)%K=%deKAL@6{4rJ*epFeoG?EemOj{b`F>w#hc#l5Rq>fr224
      zh<*^AamG*1s2`lc8OIr9q;;sH-~FQ;&)eOG9b{;o$>yE&_P%%TJ@>x1fB*CJPXJxG
      zC!<b6N8YT)7qn~IQoK^Enz?vITPzjyTs%3>--xc|^m1!*{HzUR_$7peb-bXN`S|ec
      zf}XV`)DI>H)IJH4Dq(Y9(X3dSX-#N_s_yHom^lglQFS`)quVCp@l0}3V2Sub-{5h9
      z8A&~HSFa#Ghjbqi#P5)vZb9lL1k`jo?XZB$dTm3Q+YKD+?h<&HgS(xfM@%(KXb^bj
      zXi6Ou6TA5`>4wrGAvABNIBML~B?RY;g6=}y%ocNonWu@P&4^}+`Ru%AntGu^MVxtI
      zubL^t;#A<IVH(!k5}KkJTQ8#+SItt@8nw#0wwP$2;CAVytX{GV>LsH?!nT^>aP5tZ
      zP6=Hvs?WGtsg_E`vZd#e)tpi6XT-H-Os%h&(?jr~OF<MA!WV6y2;m5NWgPYTdKQ#|
      zV>r&0#4K5T^kS-A4dG3kl#y6lVRA|8hNY*fb8~uG!CPRC{_AC}B%xWX$h^QTA$B>f
      zAc+)}$?KMCT6REc5N9Op87f*4&5R_+BXh;_qDCSTiijF?hHwb|B8347J6tX8-eb%x
      z3WaQd1XaNs2ncju!9E8KDrj}ku!8*#dPl(l2aPIdLm-H8ZtIaUvQ}-%zBOZ*`cQRo
      zRxgifvjx_?F;mQHg$b=}2<}e$t$BkL@67z4lSDxS6<c-se_@AEp!r-`Lfu7*=9{g~
      z)eN5#SHc!b>hypupM-r;rw;##<e5>T0a@rWSn23GrmbmL69sb+$AHIiW>g&*O0#&e
      z^&Hh!+a3)Cn~)diih>C8GAO{_b+!nhfTHLDHd#+};|}{(RqdY^M@?o~$8MBF32R!h
      zyVmq-d#PSE!-R|~#od6VjO!8(Z>%Al6(YJ2uAwW$=DexkGPDpZ+!ATuW(&V8?V8(G
      zu}fk-ffA~H`-~Q=<*Y6i^U_|6r&Fwzps2js%6$c`Qqg%i-DTDrNQRf<T7R>)>{{Ne
      z+p!z<2$0F*nnw`LXz=h5`6drn$TxfV7V@ng9wvXq!yC!BdH8nn9Ui`ue3yqekvDtz
      zZnBo=;@RWjuadv!;d{v=9{xHJuO9I^6Bmy?wz}hfcRb*ZZT9FRilUusW8xde@gVQG
      zI1MKG&d<5k*a{AZoBjw69_&~~&t%8%I5Bi+8K)Y9-(&MC4ox-otswnZOw2vOS$90=
      zjv03xa>om?-;nv4`(CpBiAaDGcJ$6D>XhOme4po2&u5HJi+CRk2cKZ%A)>Kx*amxJ
      z;U*jGjD;gMa6%drA^mD^JHh{HN)IAGrdaT47V#pBbBTh!Pa$TQ@MV5)G@QaL26!I~
      zL&q0bz}L8fZ?K4OVd6WK@FT9`Au9NVr{NI~$Wts~k~_y7sqilMhmEG`fggE1#(VT5
      zTHzsm&DetTIPsq%<0o2(#Lqm&Y(^;K{{ix2%-cBJVv~i;Dhg8vIWu&he<OT^h$DfU
      z0?pg={uP*yYT5R(X@Oge={8&VL$>K1Hp)lL_AcAw6J~smW&V^A+~>FOGiLocPV=3}
      zWTz94n~9(ESCMD563WcmiTWIiBFeUX71q=$u1&3ADYlFobu0MbSrm=7CJ%U^zNFq?
      cF^UJa2gO<IdZ=T3;{Oig146c^j~Qd=Uz5~2i2wiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b47ae8aa608779ca04612371987f94d1f97ce0b7
      GIT binary patch
      literal 2634
      zcwUuN-%}e^6#gy{mc*qEw3JY58wzccCT2nVLxEC(7D-H7C4f!quO+#JEy-?XcjHuj
      z@}d8P4?eY{jxW}65~n!TCw1zR|B!m_X0u6{Sl0}*ckk{w-}%0CzP&vA>&a69v#3hw
      zW0)%GHRYcAv3g&zjGA6lEVWWC^P;k}Nq_5HEpk)B0K>UnK~_~$mTE=KSk=nB8O$)a
      zpy`^u$j~2)Z!rw47)2gJKY}s>7-Tq{)pUNdR@vs}hPqwm45L}2pq95(Qxkjl;efrX
      zSqx{gJ{ZmuMv2=Vl~u#6s5ZmJSXN{znxTlt^YLs?pzbsR3thio;8j~QbW6f0!;uzB
      z`j+=b!cm6VUU-|jRjXDF)8<7Fx+Cov!+0mFv|g>*IosrFC4@0VM4KiUMh<e{3W4E8
      z8HaF!VWIuDBj2~cfgMfs_)vF=5TZCOVX{+j8(hW|rWuASs=1eI33R4>X9#B*PBg=!
      zm6~No-3~-Wu%?$%A&ej<l*JjwT<&F6FDaBn?;UkfBxEG<GSL%hw8YZ!EeQ%k(uWDA
      zmp0d&n-Ef%6}4Vri2O^RoN^arTojHBnB3yFNV_cB`x?1D=C_lBmV-#DdKRL9UH7|4
      z`Ejx*V!rKOo!iRhde-M~C0r$&w74wSc6PYQi(MvL!it1t2DuYn#x-0g>l;<B=Uh$W
      zZW|7&3SkkmH2RuZ_Ds}bN#<#NiXABom;8T=-KDa)Dd9$ot(z|67T%`jmbqTCcO4gI
      zf;7N&898i_jAqw!+NWf5mKM|AlJPEXldG&ftt!lwiDx9-VVL$qM7ZNU8Smo*QtX{I
      z?m08{T)Q;q5<(sy30JBNbG=>ppBNc&pt20ZmH++ucZLQ2c7N@u`0!ZwR2X(;q*0(&
      z=Zu<J;H%DwGTbt9O5o7Y(z?#gm9lDCoKEwhmc1qD3^V>dh^F|BPpX73cWyCBH2NWa
      z65Y{%7rIKcQ)p$h2F^Dy^q6k?5Tfg#^YAiWpsU;rpmms5nkf!bRM?5?qr>Wm1GIzz
      z+5yAo_c4}FG%#Mr@$U`*e(3-nYX-W2;_fA!ba>E#-2?hFVlKGH6Lp;W0>k?l$&a3C
      z;M~uN@I)O{FeM7k+@SZbChNG=E_<ASfQJP0h~U1$IKC!-e}id!>rja{fjug5ypA~{
      z5=9X6SRfQZ>Pin%*Id0}D!-Vg%5OBV+C%c=4#{D!P8e@u&5@i&rU&}>v=hwNTFn&N
      z-dYw)lcaPmFcJ6x?}Q@{F_Ls|ix2A9ygljc9&ifH=jl})cPAV8u+8eEgWn*1Ka#R1
      zh+rS5@e^k7l(hfiu)RRjrrI9cHFrQkTy^@>N11bUtZY;FB9tjQ6>zi^dT9BacB0FQ
      zH>ae_J)B5(P#267G`_n>QS74J9OAE3{x^)`cbvjA#PA0aw6=$+cytwah(Vn7hM2~V
      h{~?wR4)M?D4zUlK6MqkTw2snUik_A!ze1~l;6GY_bD01D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/WAV/WAVReader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/WAV/WAVReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9bf00f743610614c78b806760d29c889d104ea50
      GIT binary patch
      literal 4349
      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
      TcabaJf&p(nUIODb|407=p2Hr<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.class b/libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f1dc137d068dce20d2fd7660afeaa28efb44c9e
      GIT binary patch
      literal 1366
      zcwU`TOHUI~7(JIhrX2<-kAkRG6x5a$DvGESA5bmSG#ErNF)?A<UfY4`Ofxg(;YL<!
      zG(HmD_#fQ3sfi2Y+8<^7Zd;&27sSQA-<fmo`R@0c-+zAm1TcY=gf@oBf>DXDsT=B6
      z+}_lTLcFZ2&*FldUwo7?&GlI$pW<8}Nfvo-ea_rU=S)L_n;{@naa|?N{p=dgITE}L
      zcGs7<%ix{S49&U8;0i}p7~DxS&t<sKu0Vp1p(~>qe6do>a_ga*)j2~?#>}buifU=%
      zyFt30qGmHpW&S7P1VcxGI|43ntx$Ao(WDua2K!jcJ4FV6S=9`u9(OF9simlHI`O1g
      zDw_s3oWwpiZ>i;?ma`M-bYw+FKaNQlVCX({LBSx7Gx+GKq^X-0B^Zu0`z9_S<0MW=
      z2+`r;R~4KV9z+T$)8YlotQdLm<QWBLF-*SgJ>R|IgRVt%4CfT|pj)5|3IYQ4Bcfmw
      zQIh8^b@KuBkU<Kk(;^`WV+_IOI^WwZsEiom3NB)TLDuYLu9K4IYbAXm++J2Nx#w1N
      zmx1LN`dZbKjtUfXi?Y(m7A<NL+oty0>IV4<988W*G>4ZM1~M&!r3>=1S+R0FrHL`>
      z{dY>ng^0!=Z5Z52>Z)yXTf!YG(h<juw9SKtAu6zomWO^aH!T`*`tlQslVxN*qu(Ka
      zBhUtgc5jW$qJws&egU26BFjXZ8sf2r*cIsbdO%uglDhV!Jx7slwUqXvuP$YsbWb8~
      zCssvp+7pXbaiWT$SSaWotzv}M`6|NEUx-b62fbB{f5B4B8(Q@R-K%5*ezH|uib-`!
      zYNC9ECBgxJXw}=q`5K(m;08VP;C{8n(N6nIit81{`x+s<!7$z;ig&n)_gKOQaD2oz
      zKH&vE*YaDa=g`PcpevZF<-CKdxJI4@x{hh8fj|jDZhGN4W^jYLF^s3=`xY^6xLu26
      O7IS3fT49s83*TSLjvyQW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel$RadioButtonIcon.class b/libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel$RadioButtonIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b660932429fab7a5ffcbb6b9b98a0bf3de45f5c
      GIT binary patch
      literal 2334
      zcwU`VTW}L)6#mX;H=8CK2rWo220@Xg5QqwjG>Epbmp~}k)-p0aWSeZ;#dK4Xl;R9;
      z_~sjL9pCATGY&k|L1&a17%$ZOc){C@<9MBMlo{_jsOR6^B->bK7$36d?AdeqzH`q1
      z=knjrzX;$?jH-|byC<#L#4-K2ej-txGp)(QOhKPW2;;!e!<l07u^ubmZy1Hm!+PE<
      z_Rdx+MJt^vS}J5hL<A-ZI)@z^KW5}AD*Udsnojr<{CiEytn4HBVqIedIaSOXLHH2T
      zpdvt6oiQzAXm)zsD2?jl1%uF>DdzOTm|il)yK9syQ)Zd4C-Xl+Ckf$6qaxHn!<?L|
      z*nrXm&9xpe^OY$=(~NFf6$g4ema$ptbCpD@I6YIe46Bl?+XhPd%#@icC)4S!u^?_j
      ztBUo6HUDwY(1vzGfJ>!{g<^?0#=5+@*_KpsGojT>ZNG;@5FOZ{;TCLUjApsd5^c%b
      zB#t)WR%}*r8)4P*oEmP&7Vh1^aL*$=oW_a*a!f-PwlcPI4O>gB(a~WS*RUNs*fn3$
      z=fu<qYAl_0$amlljW_Eqhvh*Ya)Hp{vaAwvsMsHqA?(6ED()t%zmAKB-GZ%ZmU~Lm
      zMqWVJqoLb|Fku!7!@PBZ`d$t937X20!SraKfO5Zv2SjMlERPrkb~EzAu~$RNcI?gc
      zqz(`$M_9Yki22hb_hE%e^OqC+<GrCLIDc6`Zsgsz(Kw+!bG`X-WN@T7Tgn;zrr76}
      z<?Fgb#PKqwEz2mS3VOM0lvNB9I&W~_`5-lHJT`*YgMSL2d6|EF-1x1DwFFCIscd}?
      z!LzJL(D>=MjZY)YPt9?_Dy(M7%Y!v;@OC%Y7YRSp5PHTF>Z^q|-$>}$6+>IF)(Mpd
      z*iYq8ZSh5{>sGd1Ku5Q~&A*7~Ji_sF*tCew1q59!9#yjIWH}r4+hP&h;!%~=Xhb~i
      z*GRzeh&0t*B0<)btRwxdEyTK-btH$^9XW%mG-c~4+2Z76rB;`Nozkq>M#c5?dmLpa
      zl_LX=%`O=g0BSCZ<6*-S4M?2FPQpA2HSVg*OkGaiMy56tRNZ=BVrrF_S_i9SBY{X@
      z5%(_ONw@7MxnQ!^Y|#zH(~K38J9%v3HrMZ198m+>fZcAZ;&xT3(q;hXY5;7wa<(e#
      zgHznWRfnm$^fWK$kPF{Ys>2LcTNd=R%o%a0I^vM0yIQronrFlzcf_G8?0xeX_N;AB
      z!`iAgRwt3CM`||WSGoCasX(=qvn6c`$JUSWo7l<Em-xV3;P;Dsgf3wNUgrOTSNKMK
      z75#V(M{yYzmT(HM^Xj~TXF2K;-oh2UjqmXe{=&Ny#(UI`4`>rUq+Pf|X?#SF;$wOo
      zpU^3MPEX+rI*l*s48EfC_?njR4Sj}h=_<aHWc(m$xGJ^aC#e%ZOG*499mcQH1b&lF
      z;&<sZ{*V^%r}P4@Nf+^tv_z2JCrSF0eA163OV>#8HIwRVrGR}g3_6G3y%>b{Ao|2*
      z!CF5Cn7Pmfk><-oX!}`{;rF%R0JiWoruo9i;2`%z!jRpmLpaPbXx~T=VFZDH0nDK6
      AB>(^b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel.class b/libjava/classpath/lib/gnu/javax/swing/plaf/gnu/GNULookAndFeel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53b330b32eafa94500744787af81be49273d8f65
      GIT binary patch
      literal 3156
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/plaf/metal/CustomizableTheme.class b/libjava/classpath/lib/gnu/javax/swing/plaf/metal/CustomizableTheme.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c27ff08925e2d4a6e367250521584b60d1674c24
      GIT binary patch
      literal 2107
      zcwUv1&rcIU6vw{<g~Bogq==xRh=}EftQ1t_muLY+3mQQZFPfz+Wl7s@+O438XT5sX
      ztMMo%8lom%G%+#p?q6ekv$KIZUE6r*zM0+c`_5<Hyy=hMpS}PX#!?Vf41>u`LEkbS
      z89RD@+sY*MY|7Zs)23sj^jIP9*lFvDv6eDdHqEpdM1Udk5B03MVH8r%qL_H<T86Mt
      z>nVe@v6P)Lg%?9zHfN=c+~Z+}?s$n`%ud<4dkc5Xyj{p8%!vbi^k6u`pykbkomrPY
      z2a{;=gk-goR>pFs8LA_Fs|<mdy>4o#MhizHni!hmR>oW^q}R;cio|P)+X*AJYUC_;
      z>+)s5*|hQuL-GHq7_m3xP3O-3cEb^Ozq+yQ$bC-qtp;(Fp{r6EG<4v&KyI%G!wHTc
      z>KIspp;@)0MU%yg_C)$BS6P&#hvO8w|6-1c)y{I%i`9y3qe9=$5mEFbLVu1!Q}iQ3
      zf1YDV=tHDm-akB%F~ZRxGD6AXFCyn6$7o58OLdupm*luylN{qEIWE~1j!;RC%XW=p
      zMaM4vLWdPS4XdwXrmOgL0oZEh!FW*y7U<b$|QwN)B?$##|t*{q#&%=LY#h6UUT
      z;wGJyYRM79EZHu*r!a4cR%<Kiqal$-XG2X)zZ%q{N}NAk<SKD8Zq&Tk;6?7mkQ*B*
      zkJ_D{%{0>~GKw|*dpPvYm4)e9>%JUCD?Pas;4s=KG8{p>mpq36>48xHXLQ^j*u$|8
      z=sYmd+>Z~);Gt{OCdHnS7@b6yyFT@rXF28Zg!|v4^E))cI{gMgG22z>HjC)O`*df@
      z()Frzc`|S+&_#UddL><-r0Z4bp8C=al%*R~>7J3n^9poBzI20<PM36pD%}fTy5X{P
      zQI+l`8N8}MH|k3lm2?**T~wue?Mrv5EZvw&_m&KHE6|Pm(v3;F2}w7m(tY%$n<`5;
      xt<rrZgKrh+W_;<UCEZm?H?7kB^rfS}7E;a8I6$-clB<71wfW_H_2aH;@ej+KWrF|!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/CharacterAttributeTranslator.class b/libjava/classpath/lib/gnu/javax/swing/text/html/CharacterAttributeTranslator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..88aaece43ac044acca7a3a5bbaff617bbfebd7b5
      GIT binary patch
      literal 3502
      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
      Q;_vte_ejA%z3l(>Ux)#Q2LJ#7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/CombinedAttributes$CombinedEnumeration.class b/libjava/classpath/lib/gnu/javax/swing/text/html/CombinedAttributes$CombinedEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94bf071d5bb0afb5f11cb5a5871ff723c7de9ba1
      GIT binary patch
      literal 1066
      zcwUuK%Wl&^6g@XDx5+?5nl?NNgb*M}Lk;U91Vjl!GGzhE0wIu{42>(tmh3U~SKtTO
      zbOBN$1PeZZk3!sWO;we2k%i};xsP-1z2o11e*OY*A6)|(!lPY3Huvlg_P!Z?bp2gZ
      z$$e!`)YLP3!PIemIex5E=sK~IQS+ax@5fUa+R6=l135xjGnk&u^)H+~IZ_4+gtf#Q
      zE7vnm6cETJ)U3I|ZH_vGf||Hd^B!T#TBJX&E<A93S3M-WYb{oKMn7k`+e1RG7mVdH
      zczS^%N=0N*5fE4<WLxc_j;sk7SkkB_u#6?bip9D+@zjywE8FoTp<)Fi+Z)=UtM92Z
      zrx!qYvd|3ko`+YGfA5Bo;?+cQ6!>HAVPZ$mgHZN8IhDSOl73&8kjD*yYq(A*`7D!$
      z3Ds8HI{m=gI{lVF12+l9mq8qk<iORf*Zyy8OIH)bGvAkC&$FXQMg}^B?jqw6R_6?e
      zI&U}2U!KphUN`^UWxZ@RW&JRG&+;d5j<e1)dW#HlY^$Bk8CE*qaiP<l@$K#m>)+U)
      z!9_kRNzPN|?J--QD+jp5o_fMo#bsOp612funFL*Bq<i5drdk8G#CD@|i0Tj237=W+
      z5bG(<XAg1*$C`yCcbMpiqq<aw^rllzE9Gn)bAIA665J$wfjHu4{Ph&`n-k29lsSXj
      P$$1AYw#9_IjZNS$QDgZs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/CombinedAttributes.class b/libjava/classpath/lib/gnu/javax/swing/text/html/CombinedAttributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34d9de70e97d505033d4dd9f345233087a3ab871
      GIT binary patch
      literal 2759
      zcwVJd-A^1<6#v~_U}1O4H-*BMF0`~Tv#@@DQEQP>MHgtHqTok6yWGOm*%{oKrJ%1y
      zed&`iYJKr5F;QYLX(5!vCzB?9()b_vhp6Y?8Kx6<kq{sD&iy#&_dDlz&b|BK?|Z)j
      zcog{<A`Iz8tCYE+ujs28=cZvTW?a7NW|rK7nHjYUIm6-$Bd%LCawV5LF;p=$3hRui
      zlkHUQ2G6@O)G!<`!wB4FIGNNkv`R<A&dl(lp_|70dd}nwOlLTe{ZIE{vdS^U@?Jy?
      zSNjieIN*5TK)$L`dx6J6=_+VKGegZ;!!q1+3?u)SdzPUgOKD7&3OQc9;;GP_wez|;
      ztCKRc_BUh8MWdh>*BI&?p0}+9n#U1EhluGIL$rTjwvJ-#Qc#Dum>pM;K%ByNmkftt
      zD0`UlQrb<#;_8Ow1iK7pyoAFgA1>b+m`|V@Cl#d7L;RLrkXe=4F;uVUW=R~DaZ$v*
      z2dV4vs0uWsDc(iy2FH`cNf5{Sz4B&Cu3=`ztWtp&b=R=1;RJ^8NDLW<wu%M{U5m#U
      z5*D$JnY_R)m)dq0E}Vsk;Ryv#;wc6t90SAY3UXCI5WRI$1oW(e=RmSFEa}dKUF1Ho
      zBg;F_5Z6QUR9jw-?fYcNP@lJ#*TRbS^dHpiF}z5zl-bM}g=Le6E#nwLhZx2bT*ONZ
      zNA!h-!&Q%(ze+^N&{u9+&PWMG-{ot23O#C<L}f^yaZ!j#1+O9-!zG6Ehw1lIyIUaz
      z<Cwy<xLz~zl{pOD@IE!!XIn_oNLfvD$2M2^CA}!yt<G>R@aqDZy0lU&$^L&s!D}FZ
      zTG1Sn@~*`UXY9R_Zi>d56vNvJ&Y++47B<vJGj^$%=NAp}vb2|nKP0HAo5wAS7e`Iq
      zaYRL1DrkfrLXRRsanOGV8pY#7e<_XP>7j3e)(Vc0O+BsVQAIYuQT0BmwGE9%bz=u?
      zPSv*1ut6sgw1{&;16IiTCTg%sNNa@h0b1pmL_nLw7qg=f8Aim@?DNdgDoWo5bqnpP
      zb{Cy$`Yw{c1O&|l4SY!BM-<@4<n)OIPkC<W#t8}DAZeJK37QDaQ!-^i^A1@H`;>YI
      zomzSuy;0mo3$2pDsyez}wI1-+NUU2Su2jI4!YTC0^At|gOmI=ne6Cv*tB83}+r|LH
      z#1H5qia{!`I;ah9<M9YK@wDWl{bv|%|MORfxSOg2d`jbIl*Z?z)fYtbC3<PC;VT)C
      z>JbD14dSd!K1Sg@k8@JtCK+Uuc3;5xpsEpBlg=HC%xz&bs|h_eaY1~O;`^|&p77tG
      z7T;2je1{HvAF67n&s|G)FJqkWnRr%xp6h;9lTvP(@<jSR>ZRWPaxc@5)PX-y@zx3Z
      z=aB5lAj>3Pk+LT!w_Vxk1@Sr0$u-a_IJYsuAlT&O+TOC>k@$*d@8dJ^*W_c3QCEwz
      zt{qIxsUG0KE+9>|aCu`7<h>ANR{(h>kUlLXA|JNb^S6*^B=Dqn!uOo^i`MOn`Fez!
      zwb_?aE-H2IgHW-$0|~q7!u82W=7WB{?Blm-o@$$T^J~<p+9uvwk3NL0m(}>4UWh+v
      d{bvZiEr4&Mi{{<%tJ3cpboz>&Df;Dre*s{=WE21Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory$LoadingImageIcon.class b/libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory$LoadingImageIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf5601cfea6287e638fff0fa3ba12cf0ba185d65
      GIT binary patch
      literal 2165
      zcwVJeS#KLv6#mZGp0S-tV>fYW3J#El)+ugGDFmpykh-LGaaj@w;t5aei9OADCbB0@
      zQXzN=uRK)Z2Y^K30U?1z8iCYjRFxeec7c$J#3Ddt5fmur&Ws%=%>xK2nfsmZp7q{y
      zu6*wASI+|2g<}dN!hwo4n>ntX(B?CZIm4=C9DUx&RGpfc$=9@sK4Iu{`I2poY9+_6
      zFANlHt;}lfp5PS(2{GXyV`^-E@8og4<S3ARw&~W>4HJ4?UBk|d>vcmjjg#7>sT1VA
      zhGjVW34zq$1R<ES%X$<6bgGCTO6V#WmVVD{ZBnm4;8|=e*d@)J(AW#hJ{feXMuRX?
      z_@8BE32H@m1boOSJ5@KYJfYJkkLX6F>JTC`nqj#NA)P9?wP|xsCTG`XY)iMC><V|d
      zuFX`9QX`ws4^Bj}8Cw+e65>}VsJI%}5W*ZQXPb7NYfTNd`(`d1K_9MDa4liO>Kzr=
      zqn{9(G_}$+-@;l$5qUtx4cNvZ8m$oBskMq;k|`B~*ukphx;7^+fuN-Fd9Q{(q{aR0
      z<oiqcR0g{g+(g*ke)=<}HkGOAj%H?#iEqKSr$?;vsIHqTZpLn}*n?ii1AeiqjNOzT
      z%#Y~}d$wNEvm(%~Du#t^k9$y-Q@71ST77!Fs+H|Ik^Ai`?r?LTGE8%f`%+kCRqPd3
      zakjdzZq&5;f^STq5_?<k7I~|}XSB{`^3FW}b8pZBA==PR=w<&%rFpSqFgxxhJ!*&+
      z?Om?{hlFG9xx8iR^_;0S8hS&)-Grh4*2v<%*R(RX19vYZgrM-?2U+5Y;%^5_yLlyE
      zLp#nueTjjD4g8Jr3OvKg&!UTw>M0?HIIrA~==L4#^c@6Z+g@my%P#d|n`xkB+VgKr
      zm)A8-V3TJWc#8GHZ1O~U30Lh2rC&yJ30u?2L@*iaE+&FY*e--%kw3BCqAxN^#x@mK
      zsHWfpxt*1ZZLVT*Mj>Vr?Rp!FZU|Q`=yI>2@8LMkyMLF@;6^v8psyBhsWmCF#5S)`
      zjQtQk*%W-Bv;`K~^ziC(i^0HRAdp_hP%C0A%nIR^kUmbvy1Y%7l>JKGwX2QmV#Urj
      z(i7yhtg9O-`rryS>H&|9u40?I9eybt%~F_CeNL=iqRY623llXA%Yk9#IrOI!azZH!
      zy@XN}xaebX8VV&8<>||xr<018b}SNF!fot2B4oAL0-p0d?x`uwQ&ZbcNb#}`#bnPx
      z$11s(-ELhOo74PM0_V6n&!ZD>U<=-4<}H42-o_Z-fsXfZ67S<le89u?Azr~pcpV?(
      zGkk)J_>>fUK~a23o%o7+aDh_zn)cxvx*y-t6uzTJ@dKU0kMul#qO<s!-o-C;0l(4r
      z_=7Iu68(-pr35ZXefUe_H(AP2Ksri6=@AM^7Rl0M6qXh#;ttoCH$eVy3A7LU#lSH-
      zfIGzlz-R;qc>o2<F$zMK9>*c{BgFAe;V$N6`V}dRGUDG8IP9Lq5#-%RM9lY56cG6b
      DcHh?&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory$NoImageIcon.class b/libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory$NoImageIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6a75d7c384db09f434fddc42554957956c22ab4
      GIT binary patch
      literal 2074
      zcwU`VO>7%g5dPkJz3VvZX7l5c6da%pjnleuOG7AeD6}r27AByCCI|uY#@^bStarnD
      z6DNR>fPxSdBoLe{kbp}s2q{E8z#WMjXSj0bihy}<*Y>vL037mW=6m1#y`6D>{PWiL
      z0M6hE6%xZ--Py{o8{5WCzSXvzdfqp8{CvZ2+WAt`sGBR6*)COGXThlYuD3g}=n9xa
      zDr5$o`{r$fJfB%xH><u1B}6+B18#z0L~t!PzifJzVOy^nYqrUt%v+A-pJ#|=r&bu`
      zqFXbQh#{q+4@riBvgMeITg^4odoJ)8D!Wy~UNI;N*&!(V4Xed4U;h6c6&SR->2r0}
      zs`(93Qi&lIf|pIJ-tZavHVw-W2tzJg7Ht`AKVNj4o33LzexZjw=^2|1tJ*4*N>eLI
      zjN*ujF^0i^5H#G4dl(XwtLWOUM{Q=OqOl1pBr%TrRNTuj8EtXXHm>HIrf=B!r}<fS
      z-Hi)QZNW5c4fo?{5cZ;NR5utV!mzhFi||)UOJ>X6@~UQmS305L0URgaR=1?#?41<_
      zO=UGq;RI1@p3&yti$TqnN<q)#$Z0smtI$Prj_<kla>J;(ZGM^8aGGC^^e!(M-bRNo
      ziU&2E6~V7sw!K6%#=xq?Kj`7<s!nAd@cwkOLx1!+*)Bt}Wo(<Zuq*w}rWm9hPPT}+
      zEFNUR;xjgO&;(6$XPTUn<CtF2Hd-ySrJ~3%{of{$p+7Q<^x0_qAR!Kw_Ejc}wt>!m
      zvd)rZB;zN(gZ2$65)RRsBneCqc@hJpX#oj321(LDVK@wMDhv?QkKgRND*`$lagB9d
      zNB)iL+<~rX91dJ#Zxb&;F0I@i?wX6|_L14cv0NrCXY}DpTHeDXH{=Q(iArecDQ@ax
      zU3;vO(GOR8P{#<BbQDc>P$h~gl}J8)khC}<=_qfgBI*z{Sz!A(DT<ZDo5Ai)2jU{p
      zLwIr_M<dv1Cs7D?j8I8O(NqUjBSrB_M@XuXph}35$8FgIa3n0h^VWhc;vVY0sn&r6
      z`I^kG#bR9-RrHn76TOZ@J);kBr?6?gKdi66S06<VFs=JI`<SM%JjARLn^nKY(Og<d
      zt2NF`Q!a%cfzE4DSz1*;|Ld2a4k}*ni|^q~E~5l31ac@y7wQ@6z6*{K{a9~FzM@|$
      zpiHB<h!md15iB8#Wt_tmJcU&lcph!MfcNntZs28niwbUG4L_lVUt!{R)L8-+8^=1E
      zfz2-C74{N5=3$HNVw+t@o87=`><hfkzQh~sCf;N};4Stu-eJGtUG@jwlVbQl>ce$u
      z03S*xNzULSsfdrIReU1Z_*C-nnOLQzU|qsh;@S)z;_F4)EFR|TPTDy<LhHu0Inrb(
      oQWFKtBThNi@hD-6q*0IONuz)Icuc&-<G3JxGWa%M#3l6o4Lr!OaR2}S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory.class b/libjava/classpath/lib/gnu/javax/swing/text/html/ImageViewIconFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f97df57e08725c1dc33e51f149c74509207dc310
      GIT binary patch
      literal 852
      zcwUu~O;5r=5Qg6c1S#c1K1KXOJ%9(QS0#ENF(Dy((2#gs$_7eGo0KB>uT%~sns_zw
      zM;T`;A&6e+VP<D`=6R>netx~a131ND2tI~N#~Nxq{=moDU}RVw%@t!;>$-hYtM_?F
      zGz~GT>$Y{pb=P(tLkKV=WW8o`s=jIUgzhp#EZZxWr3}f&B2nhfsmru^o8pDKVAZe;
      z_kzJ+DmNJdHM=bo_@Sy;N0=erFf4IB?6-t-$6Kb5WLxKElRJitXUTxuH3kePjn&?T
      zW{P!$d%ZY$x>Wu<dl+<~VhzC%vJ7Xd$s8>RD9Au%NRez~X&X{xOGQYEY%^T0D6))G
      zP>@Q>tvz&fab?Io<^SufND&6LZdt;qnS3x1w9Ck^tt6J|DAKfk`i*>0<X-5c$kECB
      z>4rWYS%o5vJR`q$JVoT$YlxB!ddW0mWYwPn#E~E$#s-qJ<|<XoC;fud2cmDt+)t64
      zAVu-hoE4LUuo!}j2rS_-eI9A^KT_T!6^OJmL7w7eQie!bBIV{JA9g*vhkf!%I%SAk
      LB!vR`1BAZ;J<7#O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/BorderStyle.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/BorderStyle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f51a09709d36f47fe03482d21000f5791581e386
      GIT binary patch
      literal 736
      zcwUW>%We}f6o!8{w`mA%YAA(r=^ZjIbOZ||NMQj8u}I4zD2qz1<YcVG)pRVzp3uHZ
      z#UpgX1|$|d01t&Y<5ZN(hFSQ0=gfbO{$qdt@%0;khuErNiXj}Pd2}ep@;I^|bUKWj
      zI(E^>9VOAg+USMJVwH8>Nup{fGc*fnlt>c3?H{UvW2kQHRJ-R4rB>KuD8DqZs-uMI
      z1}dmB%yx9DcJrgY%HGL-q8NC`3}n)inJ)74V%d$fW!UWex1lyeL))HAbnJ76`Bvw`
      zU)N>S-VXNy%+dJNq-5&~=4-h6#~u@11J|%X%c%FcOzdByCad~UH%K$majen+H;H58
      zoQeb7E?C-8!AlGkYsglB6)(wY!vJf<!_1g5@dimU9S;fb5$e<`7a$~s$sIA(#xlwM
      zW&N`fL%nPAY@lB2V(aE_cd}K8u>yJx6yFpPy#k#z$|8!4VnuvG@X7zK(^>V!`?y4B
      zV<Mn<nc_5NFniwo(GLR-1aE!@KSfXQ>mGIlU-a-w@LL|*g5UA*NbqG3q2Q|?mIYt;
      zupszd4>N+dJXA_&<+ER|7ReXz1RPJXjy4`+8*lIo`&7GddH{h<ij4dhoezEj?q8xg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/BorderWidth.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/BorderWidth.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..caea7dec0d21163f89920db0917d28a00544cd64
      GIT binary patch
      literal 755
      zcwUWB%Wl&^6g`ti?WArR3<>X2+R`?*gkeJkDJ24_8!T891=QWd9+D}JE$ngVAMg$2
      z2iSDOf`?e}0elqVjuRnN1j36ubC1qF=gjr@A78%#xQ%TCC5Fy0&b=c(;m2O~M#e)=
      ziDTuB)Hw2jEb|^FX(-a?GE^f26^4y}(|r*S)retXSH@E9F|@XQ&GsTr+yj-;NVn5x
      zs60wSQAZgy3so$bSR_o1WL(D*mJKu*nx_XXG;xNs#p|3$*(vR(gCh~BZs)KDhO-vV
      zp~X;t86{lxd6WwVwr}D*jgLhr^RbDG3{`RrUR8QM(9p6kWAP*(4@CNm4<eed{UqQ~
      zpQlpyb5N%wbJzdx#dR6V6CP>3KX$=j$czHY@GrYM)Jxj1a2;!ucQSiQ{UFKHK<rB$
      zsQH`KO)WrNa)ka$bffiBHK=<_eTmK;$Ndb`wd<c?y~CnoeT4lU>#p6N14{*9yY__w
      zs5$l}LOv9Nm#MD7q<WX6@1cP%+StW4+{YI7a0?G`2R&RNMtf$5t5_-G>=0{}!qoJ0
      z=Am8`A%RV&$TP)?Q{<SU<rMx?Sk4!$Pf;zOR8D?nXcSL;3>!Xf(5d~bnG*G@(7$xE
      HU~l~dhQ*^V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSColor.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSColor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07ac9f9bbeda446965a1273acd7c0c4f392680dc
      GIT binary patch
      literal 2754
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSLexicalException.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSLexicalException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e17935fe3459fc82bde7cb39cedcb6f88df74727
      GIT binary patch
      literal 490
      zcwUuHO;5r=6r6=ZwIV2p@#+mQaYN99Vz>}ZOd37Z^uE*$tmy}7x7xquiNu3Hz#nCN
      zTZjks;vRP1?wgr6@8k3B9l#J>8x@A(JkI%(coqfEUQ|5iS{9lwbQJO+%lOpuTv@0<
      zgx5tNms%yU4U3^;BwQu@_WrxUP`^^K(i4ViukSNh)8tV)sA9W;8tM!!SH<!!k7hD`
      z5VKG+wB3ZfeUU2j-h5hmp)!V%`|oUHhHlR-vxR~Lo=!<O?)xUio=MSUup^meVqQ-F
      zMP+cjBu@i*qfC^eKZcwd5spD?!kh|Kv>x3yy+(wLur^p>>$Pk<bUTE=87!P*hpNV!
      qM7T?644NB*2{8?~J~&yS_0!>kn3tu);hME^Fx5WV<?v3aIrswl0BINi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParser$1.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParser$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40025b684dddf84de2133f2b585683f69c57de72
      GIT binary patch
      literal 1508
      zcwUWE%Wl&^6g`tBbs9_y0m`eC00k0KYD#&vrM$wc5FS!cCB$lyj9P<ZN4CRb&mZsw
      zuwf00Ac4dOux3#N2qA$4KLMO^qR^H|bTOWpJNKS@@0l}x_v`gr0OPn}ASRHTcN^AS
      zd0#%Xf(N!cZ-we%Xf1>_$EpN@RVbBiN<UEk$hd*Hz&h<}Ig*Yy%6C;IG|($xtrDal
      z9j7cS_XK)R+O8d*66ne1<^<veuc}h$!5R|=k^%!o+f~;awX*VW$+Dva(nYT#ojK{-
      zdfzt2!v#AK$QM^xz{vQtKz|TQKP-hZR5j&>0;AbG{{bi|hrN3KbZ)K>8?ed1#${ZT
      z9t8w5F^J7<$!idFQ!zTWJ?o}#yG-XRS({E`D+8AoFqKJRJ9Zct64=ls$iy&q3MA^<
      zMBr?3N#c;kd6uOic4^PuD?D1))b<$B9(&1Kw$L){H<8tR8xgqU3M7Meuhhn>X%P@M
      z$E<*<+-j$@Bo68%hjbElu%@aij`U?{drY*yOCQ}jGjK#;^U8yB4cn<IKZ#=kYnR|^
      zGAD3C%V?)wO_`X+NeWKZ>nu&+U^n{yF}2}&U({%9Gy*+i;w;XQq0nnN32e;%8%i>g
      zb>FKiKYXNR+vPlQUpfuSH&yZ)ennlhwU+xkDjm}yq;l4E`DPp$1d1XbxZqYCFCfA-
      z6)t#H16N7nDur+28m{x+Ytkn5gA{xhrf~>VFGqquh&TtIB6odUO>h>R69--)^@58S
      zOny_GA>PxOx4^yGazZ}_I8*6Z-v)R>;2zGCFOg1fX<}Q?%yVS9$qyZFA~TeK8?Qb?
      zKMm_fo7nRleOxxN?{Q4<?CI~tze#tqDu_kO_5;?6j~Eo6Ff2YJC%(X<?S%Lm6_aTt
      zY!{<fIUHa)DU2bHQKC@|oeqyjdqjEDV@+5qyZpw4-<NdR*XeQ`hua`!GNF@Z2=WFK
      zx6?;o;ds7@$@C0AY;3ZL(_OHC@Ok`PQgo(MbOr^SkMd=3fvXtLFGkUqa5;)^T?~-M
      KEcCTqLGcgGtYNMI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParser.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb05d08a33e98cb5506dca5eafd23d3d899d0f43
      GIT binary patch
      literal 5677
      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
      A!vFvP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParserCallback.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParserCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abfda1483cf969f854139b0fce5925866dc3f075
      GIT binary patch
      literal 310
      zcwT*v!A?R!3`Oq%@)W_i@)vw2#0hJbB(6v>nZ%8&GBo&Ln3v2H;oDgF0e+OR<3<w_
      zyJ(Z!p0@Y%>+}I&f>DKzfnCSF-OxK7Z9X({ZH13w-((l8&)LqLd#02*%_xK=`E7-s
      z!EFI-ARS*UH|)jWCJQBTLc%+aDvayb`Tx5e2SwX7eRwe#a$NnPyLAz-SL_2NlBSIY
      z_x1euu9Ku2r{_xH2Cm&F&reNYgS#^ij|J)*=oysgs-+9`QLI(C{Ha$MXh&br+`;f0
      DA(d9z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParserException.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSParserException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..860cf3cdd9ce83c8c7e508e51e1a6af2756df6e2
      GIT binary patch
      literal 406
      zcwUu`O-sW-5Qg8WG0|A9R@AdMKftwKQ+g>1LQo;n`!+7=N<L(FqxoB&1P}fIf0Q_h
      z;-x2dV3?VG=b88O>-_`32*Ut9!g*HK;!!@!M%Wi!X2Pk)iG?e2ky<OJNpdHRRpzou
      z)sxdz8Neg#wi`lM;`;XQgW!*KsojLIcNBMmTrx0mhPl!4jNnbH2Nhxk>wT=kCk$d;
      zs++o)D|0XBxgreXDwX+68r}B4L(eU=C0xY+H5(CvLRl-b4!vZG5GGY^Qgx-<I|s{z
      zvvvoEAa>n8;$Z8X1MVj1aRC0w=^NHwx#}V09Cp))m1Ashwg00+ADbP;#})=1YrEUo
      F`36OYWN`oh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSScanner.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/CSSScanner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..044cc5edf49464788fee972281e191124285f6e6
      GIT binary patch
      literal 8017
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a847e5c8f31358d63f42a2d75e32182e93e72e55
      GIT binary patch
      literal 3980
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontStyle.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontStyle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e66ae34b12287e53015188442d5d4f00780045c8
      GIT binary patch
      literal 653
      zcwUWB%TC)s6g@XiViQ6_!=n@mA#Ei{kZN^JXpt&Kq6E4K%7Wd*9fhHTE#h&Yp8`L?
      zrkhHANL}y&{iv$f;|N5%>0)Ni^_)59-0NSzf8GLkg%>VzgpFaC_@`nlF8%mIg+t%S
      zOXHuIGwla)?02Hj^vowMUE~R~Dbd%0Y3~Q8GBAX~Sm;C&YTf(0o*A*yHlf&7p)#)t
      z3!DF5H~WPA+vtNV!NGJHF3JRFv)P{lp;ATxMMAZ!LV1{+4dm!Z474?h0-^h2q|$ow
      zF>g*(OlWrhvm4IlaBzY*l%}6`z}9;n9&>7CgjPWbPq5-*`9a%R_A;Jgm5K5^5jy^>
      zy=*eu&0`OBf*TFAI#2bBDom{iv_~lQqGS}vj!M&4?sC0MWzgUOIQ)+YxpWGQa*SPg
      zyiak};X21>sr7@`);G+2v79RJ75j1rdAwonE@rt}%-DE@8eq{Jt8x&`V_~BCaiZC1
      zeZ@>|@jI5TQMGuD@fEy6`vwK4z4H0as>UY3J1k)zt2jU%ht_W0MrcgzmbqHDE!Fv5
      Kh6vBB%JV-e;Dgox
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontWeight.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontWeight.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0c7f447c4e02f8afcc5d26c57568e9e6ca75e19
      GIT binary patch
      literal 676
      zcwUWB%TC)s6g@X~unC4hD4{?puLvbU!eUK?s47K54IoODO5IJuC>i9~!X5)_{-R&d
      zO*cq9Bo=%CABB2tN1(PF79QVw=gfJ`JUu@=0@y;uLXJ@F`LTN{&c&r0T`0fjYI&*M
      zz8-jPH;UY5;Op;F_4?X^NtjHKt|u6G*g2J5O~{`MFP4N->viu~hfK9i7-=Y9=^esM
      z_5bZ!n_zwpPGkWF#vE912u8Km9tB~-K^`N7VoUk*ARcsN_)T=YR4C{QuPs8A^uwX4
      z`zj*TTW^iS<_vaDuzOOsvk0ucXJeLa`$0GmUIBAhurU8u?##S{4_IWNJd1@F{gW@d
      zn(f*T8%u1h6L=>KReqvFpglt2IEcfpY^ub2@zvF4LV^{}Z}1xta>*rdmE+oi&Fd(4
      zP4092FVye(+qlK}b&4tSI+32-fr(wle!?Vo<qVA}lz_CFW>$8BcbFM+UJW_d>o*uL
      zmGAKWCv2nf3*~h1F&mgX$QzA?-!FReslP99&|?05EaCvGI6?(qQ|&rCVb-B`;%+(3
      RxAam~m?^7>PbR!;e*kewh4=sf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/Length.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/Length.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5b309643975e5bc843cf5743dadb690f876079b
      GIT binary patch
      literal 2810
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb5de5c504009bccecbed502bcbbfa237379442d
      GIT binary patch
      literal 3283
      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
      Lsj5$^&VK5@x*5>K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/GnuParserDelegator$gnuParser.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/GnuParserDelegator$gnuParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96638d692c3bcb39b483c81c9dd9fc3f6c7dad4b
      GIT binary patch
      literal 3083
      zcwU`WX?N2`6ulE1OdQd$H8hk^3ZXbl5o>50mV#}-!C4?C&;(j!d$0wv<VrFL-IuTZ
      z1N|2*Cr!`khyH;6sGi;#JBo=L9FlY5k!Iez@4ol$%;=wg|N0xi8T=eam%!z+TQ{Ft
      z&#h%MShC%+8Or6*tb|p^tXX~_ee<SUpVd!k>BzDbdj3#(Z7PnKfY}iusMl(qADRs(
      zfj#`SEoWZ(f$h2XvS|S^DX=@`xj|^T;k@P4Wj7jsLSScDv4f%00vB=}W3|(rAiyQt
      zwZkg{3(0LE<X-EL&Zj4a=LKRZuOxfG{0t<}o4^k2Ghkr9z=`D6Ao_B)E2rz#g7ouN
      z!I1*{a$b?8vRE*_Hz#ANAOcsnlgxVeSQt?fIM$gOdsDI8k|R@IwJP0EpgXyk8lLaL
      zAl{4Ph`_mRFfnix?+ff=e$I8P_)OsZCRA?ar*fH+O`qF#IMjei(W^kO303jq28M8g
      zg{kDNvcl;|XHAoiw`AtMXVN9kNesu46gd0l-Udc6%Cam~q|XLjd@};7$04@@IeZ8+
      zj#HHSwg3#A#u;{t+sF@Ry}(wJY;!h&bGQ)4c_#PfB{pyf<J?8;c~+@3UR;ww*J4WG
      zt%f!-)mr#Mmw&8-+G&(=q(ac5Ph^&hvZj~@aa<NiwmGL5p)5-r{5cs$<_TQIwKzT%
      zIJw1m2CjpQ6J;5ygf-h^$>G<?ZiqG$2}&$u;0A88w)DLghQ3{>hmxD{<o~(P+0~jO
      zBQuhoP#wq`n8a;v^G3xQR+_}*W+jU_w69OqLv<Xy5=HlCN2nk-%c{Kz0!FiiZi&;1
      z>8yci+z}Y+$V*4;ZTkDZ$Md~EnblsV!?u}or015|X@z^wz+KEMlXeS@6mxh2QessZ
      z1XfuefNh46<mQyjNkW}N4-GuRK_<_QqlEE=fyb}}dY;%tB^Jx!T5@=yhb)Q)N>EX<
      zQ?t2jCjDxZnZi?947nG}u;Zu*>|I~G?s<;1xX+$~=T$6!_g+R|f3D4d?XJR$gPZU8
      z7Sv&&hA-I$t5k}nm9*Mfwa+vP8yHwn(n?q@+B~r(Wzwlp&O8ki*0O=;YQx8r2lqV{
      z&s#u=p@XK>UD3m9?^^@kVSx26g}h)Ab6(vq${V)2x(>GA1E&-wlh3*?&m6}J0>!;2
      zx~F(e5Q?7yT|9@nv6F9c{kCh*9(B?3c^Cf;?B>c_d`fXm+4qi&{(-)cu|Ki*ckOV1
      zzX^^&hCpe&&8L3--plcz{@&=tI~dTmhwyF_aGG$+s()k!eJeOT%JJ9=K3KunD$Z`i
      z&JuUB1-n1O?#D%ZM9c&D7@u%$f^#vxU(!(?@mbjqu0>hJm627XTZ7$N54Mlyzzq5@
      zOTsfa%$>C!bTA4!h#aPL&}jy3By^{l&_HXbmM}9LbDC#W?zg}XMDPO<{9Vj7;U5rw
      zM@zlNTCwvRu@{N^P-7o$c(v5)KEG6jetLk<wAVtE#4jv>vLA0mS!AiEn8@e9V)xif
      z6kg)VDx8)CUt!^|vpAyV^q8G5u&6~AQX+{bILq+@DlN>$BWB~xta~wv5Ot08d~14H
      z+L*t?2-QvW@<Qtc_zGV)u}zL@rkj}G{1!p&)RTdRF&YL<m@a&;e}BM_I;3(R#81F~
      DU{MdX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/GnuParserDelegator.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/GnuParserDelegator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa8aa3b614655324eab26446ebfae94b016145c0
      GIT binary patch
      literal 1712
      zcwVJc+fEZv6kVsZR3_sM5ftwV(iU{QfH%C-BA`W$#Tt1rhxXWxj#HhPD)H4HFzPRO
      zNz_D)ltdGK_YeFDKf$=p6fv=iij&No%bvaW+H0?KK7D=n0l;3Iiz6bizvNb}>++7A
      zw*0%cTe1Q*9a!byreocbp07M>#I0TkXBp+Fk_;+d98rP3MV%Tvng!alhh<l+obqhx
      z*!Sd=qXbs@;WDp0->$fq#xerpjKK1A#q|T}26^dJRqV@Xw($A>OGBVJD633R6xg0!
      z6hdYqGbpgEART8&7H$ai|K|VEiSg`k(I(8ZcF<Kvo~G9ny%?d13<;dbE`g}7()TUK
      zX+CPZc5qyvJMm}W$-F=`T`4L9O=vgKiVh-4B=ap0SZ~6_@;EjK9Q!X+20F1x2j46(
      znOI7NgMU+s#=O<UDy$Y*nYCSYu6lDyc@y>iw`MEsQC?C6T+eStgR<=l3@izgKrA#0
      zjMk~vqPwVMQT-P0q8gag-7toy3+h%tiTZIQ1=f5IJa&G;q6_Ucu>vbKv%5@mV>kb7
      z0FlgV`yP|0a39Y_Nd?1h@%%MSO-|jeDz`xFZHZ*v&yj?h3p^qoG|-O&aSRCT`}aaj
      z9K<1kwPooR9rYt+7@GTu#(WxSKaQ9f)B=oMbE<yXz%iVNLo2xf!;mcMc4{&fSTS)@
      zmuaxfapn86L{TR&q;*F$&0fd}?}49LqKmv*n8(fw!7jNKPo>M!%c+2u#H2t(O$+oi
      z_ViaUbi7=p>J`*!TT85?Q8~MHAOUmCb;+6|eP2<8Eeq!b+t}bHzA;4Ez&Mt1-oo27
      z0)sCPCG^Aoha&|a+Ng1?;kS*e%k+(K>`2XFZK`(`>r(I0c_r05hmEt?G7~y%<F}P5
      zfCv0OWQs><$75{gPJ7)QJJ1y-=?K%34vK9jZ9UwJa+L_vJtN#0$AMJeEK;er*wR}=
      zAIETBgH^+Ry{h5xGqfIwzDMH9`e+SD=Wy!d48v?-(rz}q4r()N2A(kFQzm^*>kC?6
      zG3jf{<V^^$zn*Xb-~iIdFp{1PlbJ|3JB<-S>tU2pj1h1IXTs9YBFoX>|DAltfp5T_
      B%0~bI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/HTML_401F.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/HTML_401F.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d9889c62e0e5845271050b3a948783b257e9165
      GIT binary patch
      literal 74378
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet$1.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95b5278b73c9c22c09580ef9bc280ceb5fcbe2e0
      GIT binary patch
      literal 1076
      zcwU`SOK;Oa5dJoH6Ox!bDW&CAXn;HbHyjWmfK*jMR7%4kC{l}%aMD%c;zwk!A^aWA
      zJ%H4z5=i9^;=l#OpFzx8CX~P_hgt8=%=gVVp853i{SkmVZX^(6xHE79eb;ztjCKE&
      z=?rwi$3h<p+tNpd=W|c**oI|2BFCB#p4kfo?{HD7C!jLqBvQ8w!aeTo^1etQ&M+T(
      z17TWv(+O<u8NzfO1~wwwV2F#M>6ccicx$%m4dS?GI;MEQ&?wJJQt2|N>+TLuf+4FR
      ziBt*-@*2`8Fev3pS4K{0NZ<rzv`mM$1G~q)Cq~cW42724H>|GVnerVuRoNWF-5FJt
      z>eO6zX!x71$D0<nxg-2g%ytsza3O*747X?F)^HKar0@lQO_ar_t?B7e>9j*sQC;f2
      zT=_RCffB>=pBcB^PS77lnC7_8M{?XLtRT;j>bQZ|=MPQ!Z<hWm>!ze)&^8>0d+V0r
      z`<&!un@-<yed=zLi=n%tp@!=W`2iObaNDqD>f&#e(<|4&Dh*H}n?sD2p5_STa&pr2
      zQpnQKD0-4^Ym^~#venuFGSx%ms>%V1@5mLyJe`>kAgMkR!55sSmjn|83pf+T7O@o3
      z-6xcc6|4K9W%hCQ=ndx7J!Nk~84pvw9-}Hws4n4hMD>hH%2@4hs)guU-6Hq4`kchx
      udiwz@TZg#vaZ2?!()gVQ^5a;kT2xBG)iC=S%JfZ9Oh$nMDs-x}bk$!KMF_(H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2342a5d5dfca2a97dcaab28fd183733bd02af43
      GIT binary patch
      literal 3164
      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
      Qzcx;Bl)q^DmFLob0r(8MGynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/gnuDTD.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/gnuDTD.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0c19152da616609c555578874075b18abae6bd8
      GIT binary patch
      literal 6936
      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
      Fe*sgMvj6}9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlAttributeSet$1.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlAttributeSet$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8517b19d479cc3f829a8c007d9bc2889b10c55f5
      GIT binary patch
      literal 1270
      zcwU{9%Wl&^6o&uF&D1gELPKe|w1H4^qi$%+f&db#f<QQBk*W)JPC80l9J|<)QXYkO
      zU{NG0E(-)37CaQ<j1!`e28pn+Jw9{h`~Nv}>>ocre*sX%9R(qV^^Vim_sv7|NcUe^
      zPDdB~Na$VBv-Jbh^SKv{9}3}Ft-jz*F7j0c5r(8(q}wJfdDhzJZJ{8>kO`uFVcB}!
      z>G!y23d?mEVxnvL`8CorW)`e5Bo0kG&&Poa##ANBjoq^xOFUp`6#hf&FWBNPLuAX{
      z<8vT48Wfz7qm+g@s4BuZuOW_khHycqCJf8r+x=dPdpl;!<_u}WZJYM4=~?o97>vlO
      zFl^55GhdZe>6(7S^?2RpJ?;oUP=6jr6qhwDBFhkW2sE5#m@gEK$y2Mz^kofKa8<#z
      zKaRCYa!yA@9xDoNFl47Ye7w^zG~7gi40X5|xqQlBGu$m0lfc@*#B@-8w4C-AejyR*
      z)1Ikv-2lJxuPC+Y_PsWLWXZB;CabwBDGb^Z$Kl?VZTdc^VkYWN+je~-H@N7!dkStd
      zRA)Xa4I9{`RvE9&w%L;ki@y)#RKH=3x+_dq6rp5Nwi}R4%Vwi*H%wO?8qJ=i(S3x1
      zNTO6e!MRf91j*6|q~B2}gbdwPdV-Qwv~ht(av`N-0T+Wfb;=O6K~FiSmfj=z36~h&
      zjwrEUrZYxRM+9n~A;Ax91GxcViNPp;L+%Yy<*&$n#PvqyJEE22^6?0qB{X0Yu7?y{
      vvU5Pdmsld06k8quhhkE+h*DrXhB7L_?r#OORp>#+U=u)^st82rU$_1Xht@pf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlAttributeSet.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d4f6a65ff6fe3ce1bafb16229dffc95fe1e2d7e8
      GIT binary patch
      literal 2379
      zcwU`U-BTM?6#rcyAA}{)*bktk1&VFh4NVb*3J6jRAMFMx2`GNWCEQ6<H@i%BL)#~P
      z^<77ObaeC;YzrzgPJL+||0u_EZ_*@9Qag2LvU_vyIluEezjMz0`=8(c05F12eQ07B
      z$ykNx9b?b97j^DttxVMA_uS}hH)lq7jl9G2ay{p|`RsPV<q7Wk(86%B&Lxq}?V7yW
      zkfAFUUrTPKmXdKjHJ41TFJIqC#!`t`l3`ST<-k)6UOM6yAz#qzTx(4I(`hqnW!)Ku
      z=J3!aL(9Cq!vkPwR}e&iz^3JSD{XZu@W9K^p=T|=Qpj!deA3u9IYUUd(}uZe<g?<x
      z+zg-@?S$vv&N>WAhP&m^441-^S=2O$*Xs5io_42(>bC?&mx5C`9Y7Dx`EZs<)LJR%
      z#d*rawG)JIWf)F|tFel^gw=-uANrp|D4r>}C=l9QTet7>{Jh~1``2;Vhf54Sjnx;`
      zQV_-v$x)r#O@5zYGF%^jsJ<3upuw{Hl+amI;Df&n!|3wi3PbOIR*^JLeI}xY>IGzA
      zdsJC@e4?7>ijm_~mhNXt72K>Djah{p&l_&mwxsmq3Pv&J!!>HeSMI~XkpLzzDY}Sg
      z#KZrilV3nhv}qf!Y%rX8fhE=2;qE$jY;%vVm4;#<{F12<_<kexY=}BDbrAjG2Gy*Y
      zEXCN_sp|O44LZKT3~UPB7Zl9nT?WsdVHU_Yn6`KCm$4i%oi`NRgkDqBdAlIk(I7AT
      zu);9@QppoJ!!(y_bPphoHBq-&5oujP0(2F5(xz?k+Tkh>D#NCN_b^KrM|I+o?3RK#
      zTo<bk70d{mW=HgGAYm8sX}*vZSIDW_@?Q~ANXKQ%qM0-e$Kek838a}W<|cHDy9nZ;
      zS)q3;y;~uIw9&s&vJg+(G1%4-ln3ZIkZvdF9h4B)$Z>)k#t@PxAlG0SAWC0GUypi(
      z*D9`Fxmk2kiUv3-c`$KJm7M<~>lXUzs&<4k@yJv7w5RYy_O(NFAL7D_IxP2}h`r&*
      z==&9e&+VxXp*}%Se1?BRqzU_MzszBhXaX^cx<IQ%bYdA@)DGvNV}NQmh*d<ehBt5v
      z<5;IelbFQ@Zcu#$Z?(v+#9OSQxJt|g-UzLl2yKkKuaZnm+yJGl7RgV@)IpNGsUKrv
      zOQiQ!g;+oy8zf0u20C3dF9q_@`83{^x>6IAKxfECSb0_L5!8bktk22oiz+N{nY0)0
      zP{9QjwN_otNVf{DV$Hs6STmZll5>W#6>ZV0{fWNs5K=X&3)L!egxJq$RW-4w@C!*1
      zzoH)cnz(&~bNE&U=qrMhdG<;nnOrSOaT%7%jCCn7(4!t=xzqmxlw-uVNZ-|c+PU=@
      z!<96OUHd&X`HvLor>b;%%IVOgmXK}ol1xeiplbxULBID!i}|(4AwJM5;5`yxpCmm%
      rJANVX2b9)BoW-LCY5A$wKa#qJD43W(QN)iW+9yZ>a*QUV0HJ>YOTP=q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ed578a3f5f9d65ff6b4436ba8b8b72927aff051
      GIT binary patch
      literal 1850
      zcwUuNNmCO+6#hDi#Ec^(7&cKhBV<7a1l&Mek|1aRm6(HN6*WnkWT?puHJKnDJo|gB
      zB4~N==)oUl`FgSdS|s5z{krqs_rAC0_n#j>0nB033m3zD!Kf&E>VbNwls{@lL9zLv
      ztrYE&uI#H;nOlyWQFSe^+NKpMrqzNM9tOWKQgoF}wz7LXXES)Y&P&`NX)@IkGFj7G
      zVsP7Pfnn?%^|kayDnt%R(PtNu4fIHBbTT+`(6eh=IW4Py+R5o=ndceUdwM;n1*Dlq
      z+ER0zVJ6i!5hXLv^|E5nLBL&hQ7eaL8D`sCo=KswUDgcEUSaqUzNm4>p+_<do;Y#!
      zfuT=E5Bw6`7?2UbASFH=$w;`48(s`EOm&DV<0eKJqyo2_)d+{%)T6;j5E+wk30=bR
      zgp6AV)v!dJ)1nb3&c$lBf<T#+;l*Vkg=P34`4Gjl7cquVCro7A!3?!)&NOT%gjnkU
      z;x)YuQGfD3i@RRTQOjJcbTa0#K#9-W)PxhQJtoqLB?<TNz>E8x%xJweZA&%E)bJ%v
      z-X7wS7@Niu!{_h?!fekk(!O<1PmHM6vW%<frtwQ@2H&idvfN6mS)InOH)ZBj%9W*w
      zd;QTPMvP&xy`%qk6iu0=8avI6G|<=saj^yx74AfPXbV~i8CM`P4F9W>H1b=!+qT8k
      zl0;>HA!7~e48fvm<aNGX+20o{g|wXJjkL+{>B*F~&5D)dtC|!18TvB<gh5_63~t4B
      zwOr<u1dj*`<HXiY+q(-vF-If?#UwZ<%>kVr5sGtCrUAcS3_ji6^b$ZX*<YjE7rG0a
      zrD&{*VDuaMqtnM2s$x`}<5k>_PFFD%J;LY_BEQfVt&6cEDBrPI#nM+Yci}O8M~DKD
      zAwru(;x)N>gCV@7_cX$IhZXv@pLEF`p5Q6qNY99_i%31kV4c(g-I)k3>Zu}rf-gC?
      zIl|97SaMCPj^#nJi4d<N1RMmS92B&Vv3dg5?ZjOoFoW`9o&pTi0bO|Md|x5uIH!LM
      Js{IB$e*sh~_WS?<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..32a21a5a288f8d7d4ac0a03681bdbbf9c216a016
      GIT binary patch
      literal 10443
      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
      LEP@bu8J_<GMJ1(S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..192b3ad9e5a62228396f3129ecd0f5c13a502ee7
      GIT binary patch
      literal 901
      zcwUWD+iuf95IxgeoJ1~d(<X&-r%;@>)LbN}NQD$!Dz&lzku(pypiR0;TshuiJ2dbo
      zd;zb}ha&O72k=pdStsI>@K8&$J3Djc?9A-=$Ioxy0o=m_15<>}PSCdx#XB*uqhl}V
      z*s&bMb~o<%_K^r98QMK{ApOXG>1@{;H5K^p-y{|TX~OzhqXXUyWC;rzZF|bD%g__P
      z_d&FLNtlh2V^fBar-J?6Z368PrX3YTu?XU(@cS}@;YWn*mKS*O6GF<WGzn>k`3p#4
      z)`W>U!lLCkZgQ0`IIS10L)nh28am^8fqdTYwPe^B-d%K6o39p}0G~(3blmkK!ejTW
      z6^{3(${bNw9TQfp|70?0D&PVx8d&0HjQdPn!ev4(R`odKB)E;%-wZ=*HHWJNWBI6k
      zAYxI#bu1gW@ekb)XyPVrv0c9H3qRWJ1S*t{h`8#KHOX3eoyTod3|NG@Ki;QG`BDTX
      zR<XvVHeT&NBh0%KfU1tZV`4+YGCMW5&Nv$AwokNxP^hbZ*p@q<euL6@Pd9V~*Tv7y
      zl3`hbfgJC79*ZdyScnH;n%8q|d5AP?KyEdaqOX|wlAwybY9#Q8qc<_nnmNQ_0VO?P
      zC}VNNvByY_Ew7#8eDTUDu6;!Q1S_AAJ;D0t-;CLWVJl%P4<klwTC;JN{lveW#^3)1
      Di@Db{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/TableRowContentModel.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/TableRowContentModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8599669972a8ab5d24e7b6067e814ae6c459489b
      GIT binary patch
      literal 1284
      zcwUWDTT|0e5dO9;q;vv8xCwYc6iiDY;$2!%NI}qoGqmvFTYxhqOqytNDvU4w4*eDA
      zD9-rc5Aa7hZqkZkJ3wY~a`yJ^?zfwtzrOzfFoS}E7$IMAYsQ}S);chPecP=VQXEKQ
      zS5_V4wdDuGH>%!_Z~~)jZ8>7y+c!N|3RkX%S_KJ0_Phu#e-yM6`a*BR_KcG7ZOgIW
      zh0uiVAQCr)AK0F|u~Hz=b3!L)45a1CP0Oi?Hq;*?#LDb3Q9L#Eq9dwYZH~~Mw_RJ#
      z5yth?Lki_WF1<-em|SlPacC;K&`TK9O*0BL9E$^AZtaO}$*xJLDGcDEf<eOQS=cIu
      zFic2QglrT?nAQKmElHnabLsOn)&asL6)HLj7mBtk)@s!);g{=_YDI6G8MT;KmK(~1
      z+_eM3T=BevYc+aiG`=Hu2xDin$ti<fZ=Z*yx8Sc?mBIvc1vhym{<o<}BST0^uTB#$
      zlb&uSFNG|o6-=E#sM}N+xW#($re-<8O2zejVOjz6(%)(duadYOuG(@3?&7|JdxW09
      zUJIV*2+LLR01vs#^7_Uip|{xNkV|4VL|G3}@+uyO?rlr+#S;6|K{%);7T6G+G&E}B
      z<tceJe_Jfs;W&p{jb}QH!ZluwIKOR(VHgUMeDC0&Cx#Td!<~ul#Or;5&u*61kYEj<
      zW#V!AhMvr%)^~*duNe6h`CjI;i!p&5<K@xAtz2PgpdN**7>#~UjdPDNCgD16G_c>Z
      zPZ&8hd4%!RYzRF05o%VO;mZdopK<3ft3CQ7<PI}mFmiaDb{Oq^E^sp@22sEWo-y<?
      dbi9a47_EaJmoSAnJc*ju@f7n>qYDw5`5WP=Lg@ei
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d90cc458729559e4426488b79a0eb68cb4353e90
      GIT binary patch
      literal 4383
      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
      PKTG8)m6RK5|2zK$9bAsa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/noTagModel.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/noTagModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d95f8c6f7ced5abf350b4ba87482ab33c07ea37f
      GIT binary patch
      literal 1153
      zcwUWDTTc@~6#k}NSlVp4E=92_h+;3u3gQJ&M2nc3dWi)R^=W`fyJWkgyIV_q_D}fe
      zldnh=6BGFX{tf?!dS+X0QWG}W**SC0cbPM@KYxGU1u%gb9TA4fvRkt@_*=ed`E}bZ
      zTY=aNtV&RItk>N0g=baex^R5Ul}o(*Sj}~43}Yw9tqUFP45q5KY-yE*XLHAX$5$P}
      z(Cvreitv0}y32(H2KI;{k(aI?a5q@tPEE9-@i2ynD;fG;6+<?MlX5BW$iOT^`)%8`
      zgE@v|x<x*-!l32JO&n458t6nH!$3NpKUDg3bwjKLR2l<AzX1aYhOVORiYK+|s_>Q?
      zo_mXOjVyCAPH}Tl3o5qHFjYKxXZAWu-rK^6MANOD>o`lD`ZuABv}l9oS7e=GG~Hrj
      z$Cu)`fQvdtj_@~f1}<Tgp(BucdS*IvTrrLm(grff5{GzG<Bne_yV4VR?u-BI=w%FJ
      z7}s%yq30lbUrI-C*MNnq)RM(}#nJ;h?BcPCSp}aoa81=|OV5|7jBOt6M{|Fau<0!@
      z#7nZ~t%*fjomSUD_s10m!*t?NdfO1eAar!lJVsY8f;hU>MWDILccP2NZi))fC<`RA
      z(J1?do^0+b%+DbtNn<CK1Gk83n&2}SpeWe@;1o`W_c=jQ38GW9XPUInLJNSoN2~on
      z>P0kHYQa87?03<J`9tjHKD$Zm=R)@L7;3WD38#>m=$%g(%<W(}`vqodatD_`K;K4g
      z>wSc!)Y|UHKfksyv9&Lmg!&B^Xk0`;9+JocU64X3J=7rGm(E}c*GV#h5!}E{`Z8*T
      HVw(O78=V24
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f551dbf59770532e101a42ecf697ac375e270ecb
      GIT binary patch
      literal 3855
      zcwVJf?Ne0O8UG#FWnsMttb$R9-lS1r7g%Cmtb!3)P_dvUC>BjM7xn^IFZYtWcafxN
      z)0ea{iFs*~zN}4S+D@C!gby?$>r9*`%@=2y{s(O*{oJpew$tf{PJidz>#_oACsStb
      zJumy5=jHeOp66UX`S%AO0=OUV#84s7G415j7mRshA)UKqIn!z1T=3H~{;ZvzGrXMX
      zrDxr&Y3I@ohZrIP^-?-*8<aghalxGQW2h3?tadFoJ!*QEVOvid6Shg=oLY{VUe0oz
      zQ$qs+;;2Av#&vSO;rL^Qoj0Qh{)9l(cQ2ZbKw@~cl^%iE`AOT&nOW*MBTzMAIfnNX
      z7a5+*2lJ|VD`)vRZVm}l&w1v&<>tBU8vZ<S(pFWk<yihB0$bWLnYGTej|oIF6pf=2
      z%^J3#MWC{+eN3*mYuEvu_NPrhV;ecz-_+J#rbKP_NYQ&Wd;#~-ocUzluqoKswvMqg
      zG3*kkTlrzo^IWeQZ2}KuJk#(QkS-n9Ehijvx@TtdPL>$!hLhzF=F}9GS@ULB96OPe
      zKBrdM8}&VEVsJGO=+sb;202S>NCdO{HE5`%E5p=xEI&J8dMATKCx+cg=GkDjxehlY
      z{*1+#>Viz2cjrvc@Lf+}V}8{}%s3xrzS_!V!YmWdGtz30hK;BrYgGDAl#;4VSx)wl
      zXPU<tGAVcm#vyibp6}D}MeLQcehnGyrTv^`o6e+p(6-%6W>y**)UXMgrO;swN2E}6
      zo;=RVoueA|gIuU^FACJm=5xMsF@|I0$7=Zc^Ol`8nVk~?cMUm8iLT<+gLqj8dK@E2
      z%GaodlQ=~J7;|%`!=PK*GVN<p66)-!#%ZFex9P3&?6^G3O6XiKhyO*#<Ak<VZ<i|0
      zX*iE3h`R3vQmbJM)e&s^KIM9|BZfaYBSD$ekd@SpO}euzAye*6X_%Ik5Sx`!CUX?^
      z%$(`d>D-KaNnqD{^j<$}wgv<D)xg1A46Z=Kid4Vr+NR-XcoO7J<m6+g23camYXo}a
      zX<tKLibW3{93G{dSP<CYne=*=fScJE*f*NiqQ!FY;#feld_5zf{u<lm|M0*3aF0Cr
      ztUUM)f#&toT9P|Q$0kUa&yry)RZJrLZEH5{d{I>plD*GsXhf5Q?F9|J0oh;D@Ex?o
      z@G`MEyVmV$yehEoHbGVO>8|>zL!a~936}6vx<6y;t+ti(TXiNdZ)f!hQ_r(HyYv{o
      z$JTK6^EK9Lydm)LfXgoBOFeq4+-}v$EM?2^JcD&IrMg(IBM?#cyL8zv&&BZr{3wPW
      z-f<5FNNFhGD))m{IyCLLo|!Rn=4UiH7EXodOQ3$DVOSP?eALZ*ljb2y_O2S~L6<y+
      zdni-MCyE%h@u}v#hWAwk<Y_iUd3VVcrA9VQH73H5T}6$|563#rw%{(lw{rD5^+q^$
      zC2wF`=PhjQEaL8jDB_+1YHwoac%t<N+CNG*FQX&bvP`+oWpw{q+1}0fz4QgF;0Q~l
      z8WXfMiS00Xr%a)ZrPzrXJV1$LU<D5<ALQ&IdMDKEVa_VlY!4%mak5#4{-rresc7;#
      z_AQpoR;kT7rCJLFLe)Z&FFd@5((<=j9`2~`cn8tQV&!Tj3uQ`bOG?;nLnS|@N7B2Y
      zWDy6hBF^Dp0a3A(9KVi%$P>#L;MSquV43Bzxq!QAvHN3)0yfIoZ$U(dmgICvER`Hc
      zGJU|enYibewC9=H%e=Q=Ks#O{a4*yUSJ02wa2RhWCz}FCLMM0d{FhWZg=A0Y?sXy|
      zLvd)V>pg`vLxF-{{>35^NyFr<>0KKD#9}m5WIk#LokuWcqJnWIS>F1|F5_ig+wB
      zR>YTY&(CsR#8)Iia3>+&qTXv<|BSx=f(iZ=<9H8ev4{&CR{(cPfV0zv5nQCEN{(A4
      z;6$2ErHYu?-%>z~TV~5j2DdSXzz3{|o2-Z55R4DW_K(Q#kChQUP*h^wR>d%W4-oii
      zz9l_o&=MNnAJSz*vT_;w<ZEDs=o^))-x1wUc=-2aF>ENsU@^KtRX&U%rCcwdQH~c2
      zsCgf=@1p8`<dzu9&`8HE#5%%_lBtAB)*lJvpBUk%O!S}2qDhsaNnu_^vxAOY;!Jv<
      zDG{MBjHXFutNy?>#l)`q<TZ(CWOWt%r7WPPQb4?!Lv0I`mgMWciG}eSczQS`$y~%&
      zPfM)@)TIJaeEsyhh^OjX<%}VJb0w-ESAS(xe`CG>ogL^OO!+?<#lOnP-5uKIrzO6{
      z(vajnQi|yhA-S)Vk^6D1C3gk^xd#!D`-Ex$&!`5V7#_BQVD)ye_`j*I%2`yPTSVE+
      ztI#8=aae4?kl2WmqJdvIn|aeW;xfk-w6B!Vey$W}FM_U@kUkZl$p&+Ey}XH*GEIq4
      zQ$*gnp{7Se7BnX#lGE4m-CJm&y2}N2GOmhvafRcGcw#4;+b(Ppt=J~o%G5WP)Mrbz
      z`Y9<XNofcD?#k^;;}vyjsJ+*2@4ddV$G%t>_C;A2i<SH3D)mc(AI#MK6E2E)lj}E&
      z_`cdIEB}40N{BS#q8ppVgV-(};(sK2uv_fq$8s<F#3MK&4&bQh;}`Bhe!BK!Mr3e7
      z43-s?T`DL$Y!7`T(vMYph{&(WFxFvpHOYc1Z~SisU1<%9BlPMR8pLrliWBP=*W2pE
      Gwf_M6H4%>h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/transformer.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/transformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b5e29a94663d6bd7d3da2b856596c59dac93ae7
      GIT binary patch
      literal 3015
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0db9a27ba30b78e847012ccc95ccdfdd60bb9d04
      GIT binary patch
      literal 859
      zcwUuKO>Yx15Pj2xEZHt3{i2kw7Mhl{MYs_hkXmtxKne=9Qmfvbt(9!GSw~(kRN}xN
      z;=-Xt;($2wqYz^!LO@SBcs29py*Hlm{`~drJAf881I!Rw{j3mY^1VD4`G+Ly3#-np
      z7}#MdM$+WUh`bn$w6WsQr;S#CGNJAyB9$yS=$)z92B;7gJzCf#6>U9ay|mg8Dt3_M
      zja_cmowC~=i}#Z(u`dbFn^UW|P6*|;K2=o^ZbS%hJwyq$2vyVxrKTg)x=E(q6~mq~
      z$Fi3y!hBc9GCh$darp!+yCDeAroBX?#X|(KUkBSfZg&4)-QHDXs}tb%KU+SshMR?0
      z#+?XvagVSt@jTX@ex{9T%bfj}{`Mb>*o{Ea&2^;_7kY&7NEaqnuM;=u?D*bK9hVSw
      zvP_wFD)U_N__bGAoa&ri-zq!MrvWwyV#<|Zm!G4==NhP9cdx=f<P4uGLPlpfdcnCv
      z!tI?4MB86+^NZ)qIm}m_`XlB!ia2)Y0v0{Kgj*ArH_R+K#?B8cKjCwUmCt{CDqi==
      ld#sIl6Au^N#{*xFu*#A1S@X(=c;vg0uY%R<{4Jva{06-D(=h-5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..546fddc6b50bbe829fe3c8921b2a44c687f94b5d
      GIT binary patch
      literal 1742
      zcwUuM+fEZv6kP`jrR_kmT*VtgL0Vddi}xZ4LX9LXA#^0cmu8?RbhMozGpB-|;OA%n
      z6CZrnNBsl!2fRKS_n9f>VnR!scJ`jxd#$zCIcGlpefJ)~6z2SBVwl=8E9x`-g}$pg
      zJBGQX3cf4Uq9~WtZQXXbtvZ$MZOazwikn8K{qQkN)NPaTnqD#ry0C19R#7yZ=p+$l
      z>b9O_Oi}Z!VH#qNVQuW(-I+6s7q!JyY>mOUU=?@(3?T(AXbqwn?F#(pU>F%|3?iH{
      zOuk$xZ*W`FH%go#lCd^*GQl=vUcKp)Mlj5rcaZ2b84-%=re(e?TNQ__9I7vj!SCd`
      zZObL-@di;#I#uU{O-&>`h<*(Cagjkiry>QH(96(Lg>No9TXN?AI2gK%x>+dkoNRY^
      zA#D~kooZusoK2T_nVX_2^16Z{4AVem{W*90R~zhq8aum=zz$0#(TIXk++gU-d$K*b
      zd7GDY+J+_(C+ZL%1C%?XO;j_6(Z&>$o5FRdVIGFwlP2ecZVM_1&_ojoRM3VA>VlSJ
      zqat`?J5a{+hb=iSQUOfkrXMqnyf;oaE4U>!^ry2c+Is%6md)hnHEnh2;S(*L&!shK
      z{T&5&rS;*e^@l^yvDx7^ot|LMs@R+Sks*&#$lHe#QU-&vWSZPwDCv$P#|x*;&64Gi
      zv@91ztAI&5-OcpoW1XGyh*RXFpC4^>KS0p}n%w81`1n48@x)swuPJRpnEr!wrB-VE
      zfKG~f-8_T~hyZTXg>Jg%Lk~Uk0Ou)}Re|^(g5wA1I}P`VxIZ6*3)J8OxQr_V<HJ>4
      ztHQ05I;pSAh4UR?Fe{_P0is919d5}NBKS&B-(2uPudN2&g)zhkG)S;<jJv86HJVpc
      zEsaT@q}fAqSzg~@YTtWC#JA-&N%@h00oU2@1pb5Qe$pJj5XEmI_~VL+d*C%O$(oqq
      hs+b79R_@Vi$!YJqxGBuKo-z8$PXrGjSFa!K{{Z%a#_#|D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c330e24eae90b92e14dd05725fbcdd3b204854b
      GIT binary patch
      literal 20690
      zcwVi134B!5_5b(W_Z~AD9uN{hLRf}9OcKH_0s<ifi6#L_AhJjd$q)u6nUG8XwN>ld
      zTB{bd3R(fTXlqpv5)}6Z*Sb}0wJud_)w<Qzx?6td-1lZl2on7NKOf=Ux7>5j@;%$V
      zgHQhN?)w0YSKoV}2zj;j&3S99HdJlOYuXs9ug!}FH%0T-MC-zN4ONXz!N$C%=7xqy
      zV>EA}zV*N)%;@r@aAafNqF_}`u(3R{E?6HrO(=9DjQPRYbIa!zMCzNORrS#(g1M%=
      zs+KUR_=r~3>rE#ZHPITvu;Rll$e(s=iZ+I-qXb$;up1hKt0RqdRncgW2~ZI~s)<xL
      z*9GgN%n$R`OViA2j)uZ{Wx=QrSk=6Gb+D1p-+2|T;>F6CXnpM*{f57>qM>Lw$OL&E
      zTaV{g)z^e&jTC*mpdnaK@bS8hp;gV%Ag?s>@S@8&KQ_hTCS^laI8;*=jW9#wx<+A1
      zY=%s)39hbc4o5|vV-G()rhC4vstfY0xv}X?tA~8PurX2{Y-$pArgxp5Gcy>UENY$+
      zst-kH5=Len-mGJmFoFsqH9;Q?47V`^BN!A}W0rU@iZG$ee8e&3!$=HI0b|&P2VNOv
      z+vtIw9^?{wCooao7!*r*kVhEb<#il48!_I8u^2DxPGIO~bzNW1d=}e>983}dlL;AF
      zNmwn2)QOSA%43!Y`$ya8g;WoYA@u7Uw?0gDWS(K8H_~J@(?+_CW@C;A`CXB)BSdW!
      zpg;RcVadYsrIqu`ONuM=%gYxP%~@PtSXowBE~^yUI12qeIF4}4VHY?QWPF(CaDTjw
      zK^W{qF-kosAp{OfQgbzF-1vDm7GNQvdu=dUq$5)``|yaYF^31BEWF4@3Va@vGxQI;
      z=Ak{whcYY?llq0|Nj5Su(1T@NQGN$_P4HnURtTw+2}_O~UWXUkfmWrB3=EK18LAJK
      zHrK7<L{PO#;$K>Eq`Ha&PGd;!-G^p$O^D;&_#@_r<7!o<j`Tg)LitItb984mDht&$
      zgoEwkr3Y&W!@KaM54Bh;np?+drIP^Ej;cf-E7;g5L9cJtL0Lh&DIsE`0qY&!b&Sbh
      z!#R^Mg?aC?CK5?cNH*CBgHudVCyV|Vnj(l%*HkNpJBVNkhr~@bPQ_^~?Z!31MmFWq
      zN4AQfAsUL*Gp(QC3=e)vnEay%*f<kCIeV=N)`sc@bsqeTaMZzZEflU1k2(kEd2lWv
      zwc{5y&c_7=4`<Ql;DXhJQOT-Yuxf3vn(ceAGJH4-zYu)XdGSl0Kg}OzF8uQNS2ixj
      zC7i&j8aT<bfpa^9L?^X_=2cVvwUF3M7?@Rb=nuWPoLw%*U$v?!5@sa&8zN19QS5JQ
      zTq)Y=!4a%6x-ild5|s(vEjG5|YJxW!acB|xWOXVX;kP!f#WoIxYjovO=)k*QR#9j8
      zW(`z1pcY^31dN@`@#1<$+cf`ZFK*;YX|ycbB7m-AYN2{v*Kk7U61C3h|DMVE8LSMX
      zy7BIHf_t4vIN?W<?py(y>Lj+v>Tq+@n&jYQX&@8Q-St8dw_4Woe1)5;gAHP#CJ$Qq
      ztJpV13*v7?HG6H`g*%yAW3Wl$6Jei?d!)|s@Ds7LJiE`v{qn4bUURNn%KGpi9`@iN
      z!q~&QTe}L;#v?+_TOE!x1@psUFZQ#67uQQ5_eUfC>PUSwRNu_l<H=0UA6*ml*Th$S
      z98Y@i#F3;!adI8)<Fea$N+9dws9C~^zN$7Ta{f_(vO`vQ*2Z&qo_XXC3aXk#(MPqz
      zborXb$VOpUipoZ<cn$;|O+iq>O-ED%AIz#GsA`9WzK39-r(>7$xg}MN>zW&wSN*`b
      zn;WbSOU))&AY>j4Pq)7q!^MDy+ZefJk|KC>V<T%^BB8E(xsS05=H{1k$!2CPll(Ik
      zZ`pVo?{Ls$_!I~0YolxAWs#)tk$Bg}KO|<D>q7N4lGER}(Fa~H{>ck8*9SK>a3BoU
      z_=AzvqW+I;e2h;x95D1E;SIt3`kH(l?FtzW(Nj4w96_~_oPUJ)zifOaiPC1lN_mo7
      zkQ4qRVeu0g{a1477qU#zk4&B;@s)({uL<jZ6stdGj$?;!ZG4B<8H-_U1QF+dHV%lN
      zb+2@SZ8_88yXtVTs&S6nZCcvL+3;N1JKjZP+GL3uy45u|MdyfPkjEykJn}{~B&)*m
      z&}UP3p`Yf)@&)sX>RmEyYwBTBPwK@B7Az<!DJ(6oEG(VNb;*&5*dRT0BdeBrQ@V%J
      zxS{zm^KI%weOXFw$*b2$^vpj(^K{sVU}q5#kFu%1h}bVCBDWw5iwo!Gm(3Sx84onT
      zrc9k2rTVYqIOC;3oIrB9dY~aTCz7G8=-~S1s&G?>GA~vpEc4QEjw87|Wh#wiuo5?)
      zIbF>D+OuV?ESttqfcao|YN`l{n|4}ME|aq6TbYq-(^$$A&u(7T<mPow)Sc80lG$mz
      zO%rsEaM0iafqg$*)x?)>Wz~(L292*NHXTh<nXqJ-1*`QAO*m`Wks0Lw#b3m9(`=e9
      zrnAcm*k<LG1;q=>3Wd94ZJJ557%QBGnmFU=V&RCEiD6d99m=<94&D?a*VnM9@@TG2
      zg*1;tU|rQZZeMB(!$C(^Gdr=!vcvR=iTT<L^KB}k<Jk<Z(--Ph<ACW38NKaMUnQcO
      zWwmu-QCF!=3$(goNMEq9uvFGN(I$lvGAgt23SRZnV#3fwF4yG!Wyh5i`$P4-kc1De
      z&bV%*3c>P89V*#F7RRvym19;}^we-rxLR)03LRp~%9j=wIyU4?<*K>Trc*@oW*z52
      zF({WCOo&^0s<x?ySiXJ@jll+|*I(Ff&u-wM)8z63p-^kn8lm7zP!NvR+O$qMN-57j
      z&f&*HTzQV}qVByEVMd2HRCAqF<)ih~<ROmI{vVvqdEcfeH9O@@98A*=86plzDGnqG
      z(?(8Y#I?(q!vH6N8qxV_Hk~f;>lK4vT|@L#*B(E$=?prPxlB$+R@U+Y$0L7cqaSPu
      za_0yz&J`o@yF=MQI(|(-EiYj2a#Y6bb{XapoiDWMmvj+FMW?GOkNjYPv?PVI(8V@g
      zLYFe*^^qFMB$JjOS#*$T(^F_OUGAaFj%52KHd#`!%>?i+=Mk>;sJ=_Pya(~XGeZov
      zNL|Q*JO{iw2ZO)mN_KI*uFh-x)v-X{v%N(<w4IQ3(2@oGRc)|_FO6jk##j-{UKy1z
      zWVeq>W?0vjo;s%nk1tXtRf+z>Z4}F$oo|mDF$pJj6_!VU2cqBE)I!|gE$SlmBM8pS
      zd@$ykqq;_2-0*gB!#fCpE^{Q^U#O`}%-tk*?IGcBUZ}AtS{|z7@?$pvUgDn6@Mq~b
      zyjR@qE^)U`z0KVhpnW`J^ccT~?j`h3e3swjMs?lGd+B~I2+P+<?B`_bkF54f?eF)}
      zgKS)X$>Oqd|Ei#0_IYxAbPqi&;yrSR%4dnRPmIyj`p6R5Nr|_=UV5B;cKF=FdHIWr
      z%TqW`K55fa^fbf8)$#nQrZw??NpD@tlc?^Oq_}y;re~!r>mH31M>Yl<3#yueK6;-1
      z<e?X0-E#YBHoZtMu?jfE9)3T^edM7(6Gn8!Za#XMUa{#_`m58S#6=~{KJqvopIsbk
      zigK`do!<1&8w{eZ&$8)n^cKfey@k~j-@4N}S;DeKxU8gi=v@!}J+=Xs^v<S#NHbzK
      zaj`6)y)WAPK+Ig!iJE+vO&{9y5q-?USJl)c2|v0MMR$&rl&ZumOLN_RztR1aqn^|?
      z@-Y`hN2ErM5C6643)qq`YBtC|zBIM;l}%qu&Nn#cOAz_irjs#3-h6M<|KyF&sZZRR
      zNil_``U9nGWjF<lQ-#L9uxy&-eBrT`SH3W%gpya>brtJ^OW8Kwz?)vh4Yr-sOplh0
      z)W(RE>pf*-BC%=2dd6^>nQp5-(zNUM<)Ls`SH^|XM{bctkFr&NmBC`JI&txW@}kn?
      z+S`9lC@LG&K9#8kdDOsm_IKW~xz%82BVd_V`3d7BBxtMnH*)h4X^#3MoN-z0{`Jj~
      zXwV;O^1BH~-b;Zv6~7Q(hugFtJES7j*<PD@iDO<XRHu_hn!8_6$~9|zuVB<6-KO0m
      zui~bNMsZ9~Ikw7`7Rjf3V%;Qp6*oXVG+lpC6ZU)6c*e0`dSk!-P#CWFj~+F8tPq*V
      zU6Y!05Yl6f60KKLY<0Af_D6~}m)XwtBM(=r>8WglX=;W?P4Dag;^5D1b*w}^S=w2}
      ztGLw}E5?z6U&6H<qr_xwVnc;%Bw&Z?{b7ld)f^|iDxc72as9gb$i{j-FQy!iDscI5
      zBq^$|32s`@%uU{$NHh1HN#%f5RjCVtZb4TCBfBInFB~&A_hyZu>X-&QZDtF+ifd6d
      zYPeSwb4}__Nm#O!JAh6sIovVjLR+1v7BP#}T+HN09XJ>GRJmH>QHx{ewXUGiU~RC`
      zRuzgH8n5QLNHTrDPS`3MQzS%|$=Ayd!FiEaoy@a~oDFM#eLK!Qs**4yG08a`o2R>%
      zBo(V_F5ju3yQ)?}kCI9t;ilrFYPIz1mfjB%uU})MuN2@9f>XV>DPDs0tBkkw4dGxk
      z7)x0^rOsCM$>n~mZsW>DHP~vsYIK?sISbXah8^<QQ$88N-%L+YQMJLNxSbjN!(ZBJ
      zquL}p3p#dkm(&%?r`hUsnPusa%=%d)rD<IQi>=PI)miFi9F5&yKRA_UW!F3B!&l)l
      z?r_Q{dOXLbYw36yooB1_m7E=gn&yNf)!erZKh*khxg^H^f-u0Xz5RmMreM?`jA3D#
      zkGA1S&i@BfIz+ubUG(uQTV1R!iEY#$@ixLTk>}U8+AIh;s@;A>Wn-|eDkR}wzPa3{
      z>sWfm%x`RUrMij()ap>Rv(czGo|pO9a$9Y6wY=*YYS*iaQGaWzYqe3!i^_{7jj8Rn
      z+M%v<_wPj=Jj^O8T3%4(DEtPSZjxS<szlHhTiq;%_ef51x>fZ%Tm4=b@2(wzIdz}^
      z!KNGOc(1yh9b-|jf&C#G+7R^5&`Zzs>!6m-+*OBGg-<Qeid!SP^Qv9!3q`f{5%F-H
      z;M8ueywx7*Ie)0n^*HAw+Tr%vG=a|as=L{nV-c8_^w03Bdsv#861VQN)%|X5yO`Tr
      zUE8M6%j!X!PQV5kJ#4E-WMAG2Nr09BvENpY$yTIS&R*CuO|sY%Htiz)`YBsIEw2r(
      z&ZP0?l7UxarBZbYMyls+^@7mzR<qO8MjB6**)Q5^w91mv%eFdB&G)LmaN`h*Xl@LS
      zP4LTiui7dVbrOnRv(@WTXZcoDRj+GqDB*t9tKKBc)lEi|q$81fRix%rKf}u3oTLg#
      zNMrrwT-u1$^x2U-u4?jE`30|IWvRF1+-rnaaS=3no@*?>yFui4j|pY(%J~(AKg<Q7
      zOncW>cX08=NPW+ysCu6};KTinBjygG_kY^zLwz0+J+(oORP;fvipmzd`qWly1y`RD
      zGGa=q*3Kze*>!1F@y4b~{i6V{`kX^v#hMTob`4e4PERFeRDC4sXRAAHy*SPn5>l=b
      zKl#d5Uu!>^w<y1)Q0mf1b7OUIUPyZD?h7@;V?`RSD2wXr89L!AZtt2f6wEFEvCxzM
      z_P`6kl;5T3Yj@cC+JoN$N`4Wfuf36`uj%f!kDjL_%jj!AeTDo?N8e{)fWBs8puP^m
      zV7^Y}6^Fpje-GumZ_th30A~l<Ff6bSBbT;e^d4jdj6DeOea_N-7`v2Tj%&ljJ($9e
      zrt&A#_F#Hqcx+%7X6?aTelm}r%-@5e?8nd}uooxn!HF&K2D16eZ_AbjcH_i0EZ&0(
      zzFoRB;M_0YgOxiqkEih8$7}iSXAP`k*`qAyX)NRE7>x@s0T<y|T#uQ!0duhj3pl-&
      z;US!iNBHagSdYiih$nCcUw?+LP{ow`ITG^wYOSBMQNx;MXG0LHT|G?E_5kdCs1+vX
      zwjp#!oTF~?j{g&Cw)34!jpQiYr7?$T$V$FIcAypYt!PZh<dZj)f)w&4@#Ks1<U=zy
      zXr96>u|sbg<HO)<Va|S5an5dR+>O)s;jE?EdvSIfex7z=D=u;$x8l;Y%i_0J@NFxu
      zYQ;4zNC_C(JV>xIOkhJjVNx%S38@%Gy)l`uQ~7=-^}$@~t6B6ri^o|kbXk<qcBY{;
      zvpZa7tJz%g{m?)%ht~;9{3q=O{!4RoQ%9W)f}aK_EjTp3;L!MjLvb^YoCR-j7hKN^
      zntUDEZo%Kh7L-BmAr~FRrP^q{Xuu&7UvwmHbr&6pKj=kebQ_Nhz5MO&^5^k9i?4Y<
      zyu2P{n1^H}4`XSZW@M5>F3w0^oRPdZBY7?(GP;9DCcoc_5iU#F&>#gR7IA<(DG9jb
      zE-)0ka3_DY8_;C-XcBiYanZ-r0Ar?&QG7T5xtIN6Wh)+N!SE7>;^08qqb%cNt$3O*
      z&y?mqh&@~2&3yoS?%&CjQrKaSV)t`67|Y=dGz%8ZX7CrF2hGJ%G!Ol0J_ge9jJ{%I
      zQwb(eDUPNSlWa0Iu8OI60e@o3{W);Gh?kghHcRs|{;X~C7hHXi968#RSPRtAiI*qo
      zLdBi<6});7jVU}5r7Pps4m28*Tv)}qRQM|gF3v`H4X?W<ne6h>omH6Scxp#trzJ7e
      z-6dwqPDBzzj|(vx!!yM8R|h1#EaNC$lDS2bo^G__Z|wSi@3tN0PW^fh-s2bVInPo9
      zX&=ZPholzFa-XNp*p6;380X&hHa^;pbP34swc$f1@o7cNfwq7%?ceTwi%t<a0bcL(
      zHhd|Gf>&?FH(TK0PrgqeZwZHN(9hwc3pqvq68-3645mvkgf7Qux`OR}C1%i7m_=K0
      z0$q(#x(3VXT2ymsy^gL&6WxGKv>B&U3ofFY@f*4YTj_U6f#T}8=D9f23iRREL^?8=
      za*Ebbfoc)E7$b{j$5a*wq|Rt1LsVHD=xu!1O5G{~sYCfuMf|q6@xH!iotC&Nwgat{
      zl2h7(zwII!r*6TZ_;+zKGx?Ukxn~#kbG|t)>6?%FT9VUB8R;~zl?HD?S|CT%9Gi8%
      zu$WH6T4_Xu^G4Qh!767CKOemX3j-WjJ{MEY+{SL{-Y^5(F*#txUTt@bBoht!tCg~?
      znpVnjNb@JoihZ1A+y`vyRBh|*T-VMqx!P!4!phfjQU>jo4RG|KHumVf7*2PwN8gQ!
      z^bqHihcTNT<(#q~^XM@Y(Gw`6r`Xa@v!(xtwe$??=s9ep7jP#12^Y|dxSU?b7Wy-`
      z(_e5sy@uQ9b=*mBa2Nd!9;bKl68!`JqJL5feN1We3H7DVXaN12hSLKyiaw`_^d(KF
      zuV@y1t<kcABNE%(MN1#b(HJ3)Dj(_+N^v$A;EXU222JFVfwl3`_SlHh;v=5nzBOfM
      zu_MwrCOO$~brQl#k|6a@ewIL-k)6{<lVhN4VV4$nV{7c9V>EOQd=}tgE6oreW9MT8
      zbAV=hwoySF9hb1jG$|RC30qm{qdXX>QZPbwN4DyLiQElLQE8aT*ZHb17O108rZRAn
      z8i1h6O!BPNuC4~+cy4h-S2mW#J*)U&d1<LzMn1ZWN*u8J__DACxBZZd#l4WFO~fl5
      zh<e5XQOkjM4iU!&#p2jZ9mjgcLRHIwodF${Xi-HAaw~L#PN#Ct&(7l|v1&x)+gayJ
      zCK+Q-lGypU1e-Y#IBH$V2@PsEd};)GtI-&wvbaqfgB+EONh%LB)HoEW2`E>SP^qRM
      zq>e^d9fM738ctU;xQWcg`6?fqRRJzjh4_P-hr9TCk2(R5sN$q_@~Er&LD=TP)RfKb
      zBL>(9T?N>(1i+Sc8DJF*u#*^I%NSrQ7+@<IV5cy^su^HG23R!%Yz+f!Edwmf0IOqw
      z)pr?SCwC(69d5NZo1+}9G-f1;T^bjYWs2)S;#g|lcKFO0&hyNiT-HHC5?z?64Y1TE
      zc+_b~S3g0f`YHVC3}mUZFkYR_5}kvo>U_*n7bF!Xu}~uaOruIC9zWNxCur`|k*np9
      zGU`CQGW*cA)<!l#;98FLyHVs|aaC~(dL?dG7iaHBS@wO`qBQ$H^Lq5nHYTO|x1+}{
      z3W=e%V#+=W>n<vt>RYLyjW(3Tx-YizsbaOC1a{L|TR2PY#<6^Rc11$y3DP2}->|?}
      zqMzD=Vd`o&-L)uC+p$>fzzTI8s?-fwt!_k}x(OT9%}Ii9bOlf62zVZy&%zDEVt2F{
      zL+Jv}_tKVLj89y_OZZ-3-8)+xcpJKBJ97Ra!BS7rjJg9}wG*joSCTLEjwkruIy@5x
      z@0namI;5`<tnhWRF|!3@vUk(322J1uO~2m43gzn+f`S&-f-^QM&NXO|e0JZC11~0)
      zAIxTi+Q%@smqC3W!{B}lQ4cZ%_OWX}oFx6^I6IT+H{2@;Xot|1T*HWr6KIPT#gv~X
      z#j8JPK{^)X>bWE-DNdHS6tcC)PoOgoN8&GsAaS*}hABTKM69)y#tGbor_(hDw;<|m
      zM#DQvMW{DcgvuUj!V$SH`$2|2Jp@BL7!<<LbxiCqGJXBSB;=>=E{R$E$LNg2|B|9i
      zGKuT;PK%6g(7lu?yN-w9$M7CTq%#g{CS$-MNSx=I>88Vz7}+@qq`M?qxH@)7Om{aR
      zJb`Qu;kR^XeT=b5ggkLV9=etO;1c@1OK83uuY3}0vIn-&Z5?S%PttSJE{01>Mmrf!
      zqUT+->2MMj9zsbm#w>i{lGy2PiRf~iLrUg$hBb%xJJRXSl1whIufsqm-S6RapSih}
      z+S2K6C)=0oqkEP*FYl9=t+-TL^>li`dEZ74-5+O6Z;}`#=x&rE)i@D-j77*a$}q_&
      z$MMEul<_s8fr>cO74i#hX0{Isxa@V1wm-f}@(O>=;RXxR>9JA?;=Abyj?jN>rRN@?
      zm#3K-=6>X4m|U9wWtx>??Z=P|Yd5_%ty@O7{YcN~)=F=ioYFG7v3cJU0&{b6Tj`$(
      zeFkI;(FnpcYH^gY1_O<?7-6i#7^4p3jC#y8A}BN(QED`4_UAk7#Mxg!u}y~s^oheh
      zcW0l{znJl(xSIcrEn;$H8Ortcf7lk|&{uxgz;-m{7tOAirEsEtT1P7-b>lkh8>h2^
      zf5HkrBMAX%ac<IFWt#HOCD5_voXunTes3)0x8R0=v4=k2MPDXr&~I8$+_5N~zKgy~
      zJUGyTz%E7c2g+<g#xB(@@gPOEFwIuQtu}qW6*EPaVyCQBJs3(-DJ5-kWlJp?t8MwJ
      zUrVzkwUwihZrcweW#wfoIgIn+H7;O%{DSpyAqE(~#8BfRWE;Q21mj}NFfKuXaVbiS
      zU!&aEjFrY^2pU<#K9B8(Xo#xEhxm*WeoCx47B37Pm63He*MUUiZ3s-M~d!FQ>GW
      z^8v?Z#sSu*WWs!wYxdGM)mtixm|~T`U2P>o2w0`WI(9pK6G%O_UF*x=y03pPX5>B)
      zI)e^_vq{B0BMKp#SRj%7V;)z=HI_Q8O{M8FLG_(xwa__<H>2CX31yh2?Rnaz`ssCB
      z)qpJ+7sxQBb9D?ggbkHpwzm{#L-wBxp*6@6CvO{i>QQgcv)i#ywz%bsHZ^n__Za;$
      zy6M6>ZqJw+xS`*6;N2LB1AmQ?*mmGK_FBy?_PI-8*Z)7Zu{ypydbrDPN8yiVJH~6T
      z7=4~SUdI`}&#*YwB%I9-Wb5q&HOvLIQ2YLs1gyWoOg8TA4C$RnH+G{R8!^*p!*Js+
      z4oG)nqHzzV8TVq2aX;o84`P$CA7>el;e6w9Tw*+d&Bim>YCMbW#&fvEc%C8s5^gtM
      zW>~+1dyQA|l<^v#H(tkU#vAyEub&!k;w$4V>S4S`1B~}+knte}jE`s>j|+_tXrb{5
      zEi*o&Q;dI8weeqCZG1uX#@7@zzM->?@95{o_jH-@Kf0c;HyH=$c9ZB4vl~5cdgw(n
      zh2AoK^d67DGi}w)?4@ioRrNB{RGQgG4Ke$wfH^=-G<K`m<{<5Mw{qRe4iyV$D&GyR
      znX13rE!>XX^r_xZSdCkp5ymL#GQI3Dm%vaXd4`2s;-mk@MpO|Wof0428XGAiKC<JZ
      zH1v1B8-Uqr6o*%q4U?S_2ZPbv)j9$EYiFYjq3m=urd4Hc#jtqtRAY6-<HV`PB@$;g
      zhsOyelG1Wo)#TFL{qW|ts$=eOo^Xb99`+8TtC>9cY5lT-?`F$g_8qK@JZ`L3syWEV
      z$@=PmXeN4b@EFB?+-M9mx$Wlb7&9ArW*(-R<1oV<k9>0?O3cYP(L5SU&8b*vPDiCV
      z8?|PBQvDu^=arC}s|}HdX|zLUxv3bX3b`rg`d!XeT{V2`s-c?IP}ETkC&blIlB5Pp
      z)R1Gess%F#rEc1WltHN{ZAY&hQBP{>URAdF)||a+>E>J6flQHqg~*>e>sDSU55?Rs
      zujHm_k-o}(1uH`CE8+^7f*!1pVpd2AE2NYaQo;&3krlE8lg$cN#!^<sa+H~ss4!RI
      zBy%-RF>8|)Q5{!AbzBjXTt!UAV0DVB(*5f_@fM;EP75L3+myT1Dgq~3RV&%{tfWkL
      ztb1MAszMz)EVBVA=6dur8<B1{A=8XvxY>+=xgn|Z$c}X$a&(KXb{^*0KUk(KwJu)i
      z-vFm)l;aH*=0A~=oL#EvM)>%0>P^Uy&UvOImL%&zJZN!twgcJi_Ca)^WnKi!yo4=r
      zDf*k6G040O!_3Pu%De(&&8slM+=`>ktCKXJbfn>O=fha_6SWC)I@??Qloi1xy!__h
      z<@h?jmkM)=s8!TIw^f}X+@Gzv=bm4ky9EOhQMp$MgX-t(gcmZdc51bb!WdRzQeDdh
      zj&0tI-sUanXWoXv=IxB2ootLd89{rJ_?;5xcZ$nzKiMbI{07h+FREWksVDzL1|1rH
      z&2Ou^Xp5ZwwyH}zH2miM=x#oMRP({k8-8~=$gf>o(*JV3(XpEly-fb%-hMWVyJZV{
      z1eWe*A!_90ng`eL%K8-B(NXvK&d@G(%}x4*o2_gLj2XGD_~ss~RAV^zzFhX-Z2=BZ
      z*C)81BZu(jlWg#(+2DUfn)xg;%;y-z&-0ouu=~Bt#{M&AnXh1;`B$7^zJ`V78(3z(
      ziPh%cu+DrtNwML$q+wT53$?CdmoX4-<lc_8B)<l8rGLf+!ippy+{B<%w}=vMO-4gP
      z(qy%q!m4mY&kXEVwNlxptJ}DgU>&d`#GgBC^O+wrOg>?le9AESjD7Y$EbZsWHostK
      zf60;eYZRE@;&}5rj=bMviTOV)w~*8pt%ysx!j&=;`L2{oe))lpHND?$JTEn7#Nvv1
      zYzt-t0t3yOR(zgxs<jO{fp!O3$@{_HfioE6=PDYQTC?N8BbnDipZTP#ol*e_$$s%&
      z=YX?qEFWjyaNtAvE_HOPy0aqSmYVJMOiGasSSe7J4?e30dRe_Nz)Hn<t2ZWDX_#&G
      z#T=_23i(~Bm4QW8CQh~nVwE)*Ypo$@<nd|NP@HQG!zI>;BurfDYD?i_)vEg*8*}uo
      zl0qdi-I0=i7U*JP1*1m%W?;ZMguBNo)>_NHFIyv+LD81rJWW=ya+vE}^s~ky)5=To
      zy@BrPKBQ^%ap07HRp+ksI-Kp-^?{B}YiaIdnB>-~cg0iUzIdT36Zq?f(p=`|-aYDp
      zT(w6%BzYuvw|d|%^{B#DHU>M}<B5k)D(>)e2e#Y8&=J>~h%{>wvp<Cuel(_8Q(4)^
      z;5cgrDy*4UVa;MC&q-41`ZxsF%dfR`JY4VYO{AexH?$ma<@ehMfw7L?$eH}Z@f7#t
      z4l2%bpJ!^AZj8_VaJ%k$-s2*=#F)ZCxiF`%=~NCqgoFUmFF<TT)}U0Mo;_qxYD$N9
      zvd=qxkc`hYsjqAvWbZhzx8*>2;y|P*fdYM$VU@ybEkdeQhC$Y1WLXuMXf4ID)-uNL
      z3Y=h_%-CJY-du%hs~RCIhz4slHdwVd$6AAnthLx|t;05}4mb1rHfufZw-(|d%h^?M
      ze#-E0T=fsDKWaQzqg*|s%Zvt0SI_D)V>L=OvZa^*IKFRur;F^$?A_|Q-)SP!Olb4T
      zbNPXj-b&V|6s_t{;?^ygko4#!M>|6j72BT$o=ngAag3B}3AK!pLqh9x47AQbj&&yT
      ztg|u8I)~A9J{DRRU>RRmS{EicOl4fWN>!-aX(j&-_aGEK%%aF9%Li=Yc-QANPOr4<
      z0<8?ojb1&RW8eytXUG{<ZieL?!uI8gV!7*r&QY#-;bR;hcdNf{!DNo;Z-~#es@T!C
      zdqN-Eir_z4u{MxHME9LM<87JIrv9F}1^wNlpPa<ek0>>EEBjEb>L0t+2dTZ~6g;C_
      z8=cz1xjrU_ybdRndYb&;%(@bWwH4j1YmjbT%TZ@LhFUw2ZC#HE)(x1<O=f|03+7vY
      zVE4U^@wSs)csJ^;R%~Li&$9M%oV*K{TX*9M>pom#-H+|o!??kE6t`IWahLTZ9<iRn
      z^VZXN)p{OpTQA^!>!qaKtq<ac`oKM|k&)AY$;dgbG4K!d5x+IrXpid#%##1DhWeQE
      zRyPh1zmI3)rSTGnBibh|=q_dazjTri(iXh&YRd_^Z?UtzgB0sscDVO`u-sAV-<@sS
      ztN$FlZEt-DkM&U}+xAL+@Z6yq%V19byA|o#T;<*fn=fD92+O$D?C@h0>zgF@GUDuI
      b&<?dpv-gc&;9K>b7EWQTexJrV(bxY2S~Mk1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6ee266838a8a41e9fdfed30ef4ad0a771e9b386
      GIT binary patch
      literal 1382
      zcwVJcTTc@~6#k}Nx=@z8Kub|6YH7=56>n$(Z;{ZXKnSFU#KbIRY?rj#&2|_0N51%=
      zi9nFV_@s$H%6MjWZH4k+Vm8@1v*(=ea%S3}zrK70a0ky-gcx#V%hUIb1LII{yfdw`
      z?(#!duei0UZW~U6J9@*j?YiUYRJi3jRFb#cHN&>Kqe5Zm7tMOrpw^AueO_`IB4*<a
      zRWS4wWYTlZs!ktrlxmoMDza!=rn}4#PG^b?%8U9Qk0K0BLnpdKt7-9dueQsbZDY5}
      z83qgWl2I)hjw$xRN5!p}4Thz{f7l>d;W8)P!|8mc(6Zx~<+{LdMMDQ7QHn-1j0$~P
      z$>D~}w=0}LRKytuTAc*V%iM_~hJ^4lPC^O0*o|wLP;s51=iFd43?RvnN*68;GnZ-q
      zq~gZ8vHLn1LgpR=%L^avE;4!HBdtLdK4Qpfn8pl4r)jxGqv~;a5_vJ^wq8Ot8HNgN
      z2E~E;bD(ZxkLX7(p$?4S({LXTsL=Lk)(e+-{U`S{O3SEm6_5UmTuyP-XjEvDQ7k}H
      zv3M@G?Qkx0IcVYxpJ=!(&M>-F_nZ=6F~v<9ZNC_E0zyerN0@#wA$sT%$VioIgfetl
      z=^dq=PAj9eBYT4GPqM5hC<5luOK;6DKp*;P9iV40XnqZa>Vb*uXAJ#-N*Kc;JVR_J
      zae}c^Tn*tHCO<ZDd!?wCBxMENSe5uAK1P5qqMNuy41y^YFxgZiI#UEc)nb~O4k%)4
      zGv5)NIY#C^l<<cp-ykUj)`@R}_%;#8mgJo9(VCno;+!R}ICag@P(q3#rcD`z{&eO8
      z6$jKM@Fs=9aWc3rHO!vkZWynG^Vw-XZcWlxzzORuhEYZm6{#TWBQ+IF;-OR^BH=$o
      z9dW58Oz~**z&2?wsuI~VEbN@%@ezh7%u%>>gsJQ?mM@Z5$$E{(Y+(%bzm7B!kTX1$
      H9nXFPDQ*<o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Buffer.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Buffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12e6aa899668f6867cb051100769dbd4d23d0362
      GIT binary patch
      literal 3384
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Constants.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Constants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4ffa342648aab94b03f5f95ecb39b6982a0b1fa
      GIT binary patch
      literal 5329
      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
      E0!evHf&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Location.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Location.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c43fb01a38e45cebf25ebe15b23b818d18ec5fcc
      GIT binary patch
      literal 591
      zcwU{5OHaZ;6ot<~1u4Y`Dk}JhJL$rSF~)_)jZs5_ijS~xqXi}~rnID;Du2sGW8%Ue
      z;EyuiX))~G%sF>@&v)<i`{(luz&^I~$S@rCy@<a!ug;i<Z_?{?CB}*m)X?Q4CkREr
      z!)P?}1I1ncjW_+SqonWUVK6M{7<U~C-E>|=S1}YiqA$Is^aKNIFyw{TORFNemLE!;
      zW+;Wq3DmUCok&lrQ-<trz0F{p`8{DGi#ZD>iVX7_avcpjB6x5*F7e8G6}RmKQrDA9
      zLk(oeaMb+QqmBu%+o-n-U|6wGKu)_=3$v+Pw~$X=&B6?F^u!T^dGAL-S6oQFK<SUQ
      zr>A3wdb9Mi4N?k_V;Yg@>_iKRX2{V?>9nXiAZ4U8_6JJu$>(`GO;X^TaF<vhXQfS8
      zL^(m3SegKys7LqKG{COKShj1%bBu~@XC7m$#i&lP6+!@46uF^oT7<qu6?e&qN{X3`
      O&~AhF)!S_*`K@1It8mW%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ParseException.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ParseException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfa6e9b56de6a3c31fc7d53a27fa870946cef05f
      GIT binary patch
      literal 489
      zcwVJZu};G<5PetL2121gVPS#|3c`Xlz=A+RiV&hzcQ;tAQ5r{%L-SiqNDO=cAB8v<
      zq=I0>!};#{-Me@4+xyEafMaY1s1c%3R*DDtC@WD+bv6=CRZfiEBo(=|g|eb3^W0b`
      zQZp5|9=fa&l{;;+0CmE)Zx*TK*1IxudNO|}G*5M=-8rGV7teV;XL(Ze4e5`qnaW|R
      zqWuA(eqruahy^UQ&_I*Wj&-JP%E?gKzGo3OVw1>pAg%WG7g%>=T@cRVf9w<ysPOu~
      z>=GJ@EDN5q^`~<}*fXU~)Rp#TIzM%fd<%9#yp}&a#_z^4;Od%Dj|bg@!)Gi$aau#j
      kG348SRud;!=4|Jah89+4G67c6W)YvQVV&9Reb(Li0J05#fdBvi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Queue.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Queue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfe3cb347ebb4e663f2a110b58f658fbff944bda
      GIT binary patch
      literal 1980
      zcwU`UTW=dx5dMzW&L$hDx#3V!LtV<n-jFU$od%kwm$VKTOadeXB|)eg`^4U`-gWmv
      z6A&OmACVA`@PMjHh?hzPsijpb$~!*_G3R)*32k58m3HUsoSAQCzL|6W`S<=q04MR5
      ziUh+%-3g6N^K)~{@UK};-3a(rU^IfJZM00!=bqt*t(NNrhV5Q6J_vcpRU{b(gpXmH
      z<gu{6$*TbaYcfo(RXPG(azEqFH2IqJmg!w*=sIgTR&b6%$rqLxl9${X*P!4~8X9_4
      z40M{c4AKLJp)^wH602v@P|+<`BWd)Yo1wpAIeb2Bu5)k6T(>z{SKO*;FPokv{v%~F
      zXjnc&v9mHIZ&apg`K4wn*p{`eY83v3G>#%ixW4rTmug}`F>5u3seETa+FTZvHN1pZ
      zRJ{DZCM|CJ0dJ=9D)J0HrstX4RkuZn==sW{t(-1DK~)yOI$l#Twg(&rmTg=VP<|TY
      zI6+lxShmfO&#yg>@VG{FmxUdZ8P5!H#2ki%LxY#9+T8Srx;hU8b>+g-fU0<dvfocs
      z7FTv^d}|>L7B*(x(5d;QttxK?mg{um48!2O8|1j-hV@1+5FoyWDV!CvI>V4T$nIj`
      zQ694Fl-b~>$iGFTIg}W~>HJfr+>J{Ny;sG6<#>Cx81bMjx}jI)bCwudP0rs5fsA7`
      zbP8Pn;-$j?@z7C_vPVjlEa;%oH%)&ZB0($QuznYP`oM+1(0>Pmx^f4@;*<G<_7ZrO
      zz9WPO7)a9P(uWBQ;S}i&942kLje+MdN|NCSvJw6yNwL?f|B2^+Mk;wrxfMfp$*nU7
      zAbMknV|cL*!RE*=NxEJAHYIf%gAZ?FR7mkZwy3X=NM50Yf5Q)?%KU<g5HpcUMo1;{
      z&D8GUxbVniYgC=|6|3PV<DHk`QjM8Zwn5CyOQ>;0Y6TEUb`OQ|$a7p!7rXCM_YRQ-
      z%u+R%iN+F+qfBS*T_Uf7xA7h|VIH4g0ULN9K9=w$KEe)`@gqLQPgubXtm0R!;dgv0
      zxhl$5>_%LPm4VlZErak+Qj-&eP^1=#)earqQ^cS``^C8JC1O<YJ*?}>DiIMeAd1;f
      z`;eR>PSdhM1=J6;X*h1vBu+<=n`ABQbAsk0S7x$;l$+25Zgyh#0j5@l-n@(HzhnF%
      z+19HxkskV~@DYSEMy`z$mzTpiDuu3B(wvt?F<ijKDDGEeogg{6*Ww%Klfh<1u)QIe
      zsO+tn>~Kc3C^NPjCo?J!%h$xvH^|^yy0&*vz<0#mb(z#iJ4lq&QTo3uIcMU6k5VZ{
      Whe?a4?a^8P{s4(uOkzn|&HV?mf~ouf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7f253263a2de162ef7cffc13b5e6a1b4a86a8b6
      GIT binary patch
      literal 5335
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Token.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/Token.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5b7a939742ebcba3b84842c0d2fdf10eb28be3c
      GIT binary patch
      literal 2832
      zcwVhl-BTM?6#rdF$P$)PBc*({si=hT5n4W~f>w*R#PU%k1S8UP6P9ElWYf(C>Wrfu
      z>w`M#_}q>iUs_&qrhsD|A9cn*%JH1LA%O;FiuECT&%O7Y-|u|h{Qb{we*id-TOL#i
      zTu5aLp%raiyB*4J7}-?F)^FRPw7r%I<uog=TcLa*moqIplrc9#5pz|~df*Z`$u^;k
      zMiw)P6+LMSxHr<er3+k~JQn7pnbd5<%#I2uB<U&B`cy!K1zf8}c1fTvZ(D>CUei*9
      z?wc$#&&mrjtWBmhtEeEx1!~5OtYN<;P#x%w641E0q<c{fpNbP`5NMb*vifvkEumWx
      zEs>G1<VGf{SqATmhb}v9<OPO~7m!R6IW-yxAJ4FqiSB4E1X@(oLSd;*g&Q@L;kc8L
      zns_nQV}bDab8+}psHkT|!^z$hIbD(9=c0I7g%@=K(}D2+4c(=}1BJ>TFE`F=;CPTu
      zwf>7uchrL(f#GAB?nU555WZUa^s5NT7!rEQ$Z}uu>3J0w__RK6YnFZ8%o}XPH$y6h
      z`NpGXm-e(Ts(6jh>ga4wmu#0Ub1j@rW(s*@ol0A0oBMW3O1Fy>(-`QkEQ|sgAJOT-
      z+Xsf-x%J`_F7qtWthoaV<2+=Fmdg=;#H4-=RN!4MEHCR8<;+WUyQ*RoV_t-D&4c#^
      znhw`iF^MVaO$S(@w-R==((@t{qt7tHb@pfcNIk+&NJ*giXdT5iof8k{1Ws4#8JQ*B
      z;<U`G_y{qo&$^Z==rhX#rvl+a^6Nze3!K7FSmThuq6%(M1-e-ACI_Mk^gUw+q&Jcx
      zsbUsm3Uq!HGt@7BK20%RTA=+f*Y?a6tO$5}{aPaL&zX6@f{Z{_f4>51E<xSloiz(q
      zQomyGTj`ZU(a&HwM>VddKN&Zz^l*_Rcu?h9E7vN16XZ(I53M}S^fJ@;B<%)i6>J~e
      z#S6bkwHN8@r4_ga7pBlilIkeo6q+RT37jqh#7L7JXkdU~+cuhmz1wIlL-_~<_>jI4
      z;+`YZsD$)8W<^Mr+R0xbr4EXuO46Ju(qw4QIE`hR_HCRE_8s7AA{T)L(p)628)P4+
      z^P7?{=-8L|8cTeQl*M`(aHC|dmdr05%}fDy9?GnfW{Q~8WN*;<$}=$6RWQF&WWGZ;
      zjM{o2=2w}yGuYxfz~3rsZxYij;<pGTPv<sTP>?<hIY=cRT1!5(B0y4=l-QeUDX}*$
      z=}mXhn+J5mcN5Z^CkV!N!Icg^Mr#lK9)tYqEAIxjF~GZCxf|TZV0kyPjghkNXQ*R=
      z&xr4Hs{I$leFr`G60hSfuHvhG-7-<~e}ZnCr2i9mgCy=2dgzM2ZV)2h4HIQ^&CjUu
      zy}3nV=U+HS%h`Kyi!BP_Qq1+cJ66p{bGvwl(@IKPPdWBArRN(;%(v9a-%&!pM;m^?
      z0Djyz8N;Q?co**#omeCkPHTrl+0YZ*!Id3M%x^;N;j<k~&p$mU_lWX7?SG>BJdgxU
      z4oE5T4tzk<#8W$4iub<k96)1=KhgOFkr;>mE26vj*tfWYxI-S_L1GhQeD7PLtDsZ3
      w9W46{R&pxG+tt!`gtu#sZ8<ki!#_k99?|o^Nzp!{L3_9_Ct4{drnJia3kD!@ivR!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/node.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a3b6dcbee77734b01c96a84ea9960bca9d2465a
      GIT binary patch
      literal 551
      zcwUuIO;5r=6r82yqgX*v@dFQf0}gJ8M~y~FOd6{kG$e8{1sYf^ZBw?w-||3AJop3r
      zQO380#2CGJnVt9c&CJ{V_<VZ@&_E@N6hmX+$9&{GJ2O6+3V*<*JCl4U#~u%zXyQhE
      z5{F?BN$v$x?gxE03!Pz2Nx0{bpw%6@J;{&@LMZ~@@fcW#L4Oi{pQy!<ITgN;XAJ48
      z)v2}Vu1P+5XjnC2punJ2Yi$E$Ya)xBVkHx4WEhIJ@ZH;Z+;yXSr|Y?NV+TFQYdeup
      z^|GnUp_nin+y8#f34`(Yy}Dkt)Q0)HAdY(Ol~Cq}nmbaiIHc7y`o0vMv>!31HePlN
      z<Ox@(dZ1d(73;4s>y<f?{W;cOlEDqa5_H0I!V8jJqJSngsdKQ9VGCs-ValE*Y?}fX
      jF+0nc7S*YrG1?z77U4C?Y>K%_V#*8IuNa2iM7#F|8|-Ap
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/pattern.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/pattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cea9d459946352974287b8f535dba935c2575a50
      GIT binary patch
      literal 1556
      zcwVKH-%k@k5XZlJcjag~eh7l1pdyNGK~A86QfL5$NUYibqN0Xe%SsR0yXLx;#%KNt
      zpY(|rUQAFDP4LzDN1?Mv1IGAr`p~_Zx&3~2W^T4Wj=mfM7(z;i!jRZ-D(0s3#;Tg-
      zZQI!}1+NM-FNy`TWO-%ondM5U<a)v^xZ4yGf_sh*jiE)V%z{Ol$JtGu6AU58UFT(j
      zzDNhcN?DSjZqjyakzyE+{tF<s!l2zHD*_b_26Pw<YBaVI21Ap95b7A3)3(DORf<{e
      zEnC?FXJ}2kIjgW@dA9UxK~3asDr78J8nyONDY~^*>xEvlL@qC_nP@QDBDdBlOLvPq
      z_FL{HW2+IIL#K}O43qyuGH?MG85%dZ@MAN1dM~@a5DS)}uTF;1jmtVNF$@P+8@PfV
      z>i3rIPzr1zj9v-5#xN8JCc7=QeFknI%24l?gzY+3fuO58;ta_^yo?OZRdd|O)MJ1l
      zeBwqB!=M~6lOY~WpI(F|;So9cTVy%!x!ZE4XgqZcF|?h&JK@pjmxafzB10<J7x;5V
      z7?hHb3o#iPiD0<n4@y#!j|7v}?y$nE4DIQ^6iF{5OK!!>@p)TbF{5@{2IXG#&>dCj
      ze~ICYyr^U;Wb3G>HB8<-`3gNF@dNtxe?sF&e@`>5O};V-4O6r?g%<KUj&~ES74WS#
      zqEclzi}o7xh!paqj5?*Jb}<^?M`QQ!M5w>(Gdd=;PHi7uouPePeGg+tWjhMnMT-nv
      ze}|B|N1<*hIsEYRySDf6D`L-E`v(qi^P7Km0{3tWW0>`y$C;-5^#OTlIy*!4EmCBO
      zvVB6c`xJe6h5@`J?JH8Q;STMYMV1Kbn8Rzoviqc>oKGstU>GA*kwQBY)JKKL(-<X7
      dC2lWq#wpT_IBpX!M4SdpP`6}%C;c8y{Q}_3r2_x}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/parameterDefaulter.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/parameterDefaulter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..084edd742a9beb9b100d8fa69afee4f22aa54102
      GIT binary patch
      literal 1882
      zcwVJdZBtW66n++xT#1(=X;9M_t5$)8mkYHoHc?v)L8wUtbBU$4Wp2m{7em4%dr^Ks
      zXFC3fe)VhH!8lWAI{l<G{T2NsZJ)hKGj@XDOJ=g!bN1|W&Uwz+lRy9d?RNmvxNV?E
      zAhllgtW9Ufxo<V@xz%+`$@|LMP+Jvi+o?BX-D-H-+qJsVqO&EHtk23jj#uHvKtSM_
      zzHC(-UcFJ;lxs?$x2(znXR`;w&f2pnfj~p5hQN?-YkA78So2O}Lpi02<Z<YdTXoeH
      zf%Bt>qs5EFOV`RWj9&Dc=)+r#Wi(zia7^IseLRFQfc`%4(1d{_dN*Vuh>*ZQ)~(9C
      zw^fpLTbl|*vb8m*QgrIBmfOmJ+He{F<?I{K$UKA2s?S+;U8=Tz@jpAlUu$LGV!5E|
      zbdZW4?o#h(6wOPXk_D+!VVuHg10VdaYArkyXK+^FsH$aa_hdcoG?-m<G~Vr4lXlL;
      zc?^?X#w#%Ve0Z%UNX5HV21W&@UpeY9Ms$(JFkxU^;PhdAU}6$Sn2D^&Em>8%*aoHq
      z&K-C$)3Of3!bc`9;A4S)Cf5msRhVqE@j{G_an^09R3ARYMFXD+BwqfOiO-Q_KkPUa
      z&+oY|`Zeq&6PLAFpvo4}{Cr{JOUwwEPPyE{6Bya2F#D9Ms4>$fW|7gD3{YVFRZ`U<
      zTr)9`1%bimSxeWvs`4M<f^M7ZCbGy;-u9@y_;S&8tNQ5fhKWTi37pL27VVYQc{`U~
      zow4nk3s;xz%xWQH3tV`O7b0M^`-V~8mAmA_QF=o4Hgu;8k~(}aGwntql5hmVg_>7i
      zlXI>f7ALyj{-nm@)1w0p<sJ;`=>z@YJn}Vyb1cmDD5Ygu_3(En@fc>}2?kakWAG6o
      ziLpnB{^FY-=NdtP>kQW<Nlzon%ATO+c<VAwBIdgo!aH=vK=Cf#Yq=0pbYbx9!B`XT
      z=MsB}j5qP&9~j9`Jj2ctjL>B~8Q?*54+(ALA6v;_Ecg^tv0xL^$<RZbiG}v?$x}pP
      z0liE4ViQ;N@6}`|7JBy2U$H<Fb3b9w_o9WbZau_+Fa3(V7Gr_@#Lu0)=132aBSm@c
      z78(Cd4zvRQ%a+-|xA-Pj_zZ5d55J}K9loc$1_yUh!Y<1A0eA2tHheDTTUmCvctETq
      pISA6Kz@09|E^I83k5kyBhb8hkP23{CLHZiT*U0$%t@sgs^Dpfa@zekS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/textPreProcessor.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/textPreProcessor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9daa90ed499b0261c291523453f021b04fbd856
      GIT binary patch
      literal 1913
      zcwU{9|4$or7{}iqdcA8)**e?-bE|C3FNKzsDV}a@OsLFN8Czt6f@WOdfRfTS*XzJ<
      zGcmX<niyT8ktGV5#KvfJnurb!nq^sZ(fEV&m;K<MBECOYR*cz_#U^*3FVFk=e4gid
      zJ-usxudD*ti-d+MfqfI%VtmRxWzNP6GwJL^+_7ez_@pzPiRVqbVA=6PF`v)bj%zq>
      zTgUC(s8uNBYz>M)NV>)|CLNEZrmRs%Ks}Jorkzd!Po#N3KuP4rtN=Xl2jPV(u(>y#
      zwfc(FDa$@#rZSd5ZEtSW%nX=zTCUeO6=yPC5a{Ur-vM?A1oF0(FRul5M0z)(?RRV*
      z)?FMQx9pDQ;Y0viaF>Q!fx26Zg4hb3*=4Nkgfr=8mkdClK8OZv7N~Y|iAmG$vTgH4
      zKkmj34ci5bJB~h+n~5iK*@9zcok9>{+`}_dgGZ7ldisxdC3<9;+{lVfIuq|sJN=f^
      z5x`C~Y1nlW#J_Ao?8dzebHXAMC6a6&k}2LF!~=*3_zRZPyPk<O4oG855K+XKqnXcJ
      z*)f6bkwo+DY9<}_1QAD@fRC5R<XL22B$*seBqe#(JSnpkXt>=OlCrC)8cqlZlTVUQ
      ziea<N#8=3hWH)HpYzQ&L)7_1}+zgkae56;J$Tl#u0mgIowCOk&6A<!{{#?->wGO9c
      zSLy$4l07ms>>@}H<WJ#@ZOXUCRh*;X=xzBHzOOi`LV$18-E2cO-@&qgV+}`vP1sy^
      z7T38e)z_oT2%U#lT#SB)x}%=X*s3ySD6v(;TY@_05n*LS_g=v6udyu_ZeK>@JnG%K
      zG9p*!*Zz_^WldMYOK6l9T`9|I%L`>}T^IE%<35j}h7ErS2V=Uw-SAPO`)D>aU7bg@
      zuFXR&AuPw5XlUm$ng>e=M5U&AP}dA~&M$Pot}LxxmVw7s7ZHkj+$m3Qjk#G|tkmLl
      zwjj{Kj1Rz%PUim@Lg+#r9_PQHhmHIM6+LLjVI1PvjU?Ys;RwfJJc$X8Q#gtoj=@Gh
      zX7LP8V*qC{h;w)r@8LO|#}JnAJU+t<_>!7S7{O(v@Eb<)JH}lO<K<efbC9#Wc+ll>
      z6%X<DDn@k$55pknI;`Rm&J;$tf=4;?^6nJ&VL#cPMGN!U&x}sf?*I<Mha$7-q|VP1
      z4^;?XrJs*?-MBSjT`{~dPkSh^2tP5G&?r|mi>T*{k|k`4DXv*|frKiJ{yFbj2~F;j
      zrfpp6%178z<}4K|w_MU;-Mb`j4I5esMoib*4OLgAq*2#&?*h-)H8xQwuz;=6P@uwE
      zm9sfbNY&EXFL%zl$h=Rn3bU;1ORVV2tmP}L;%PMDHAJXt!yN1V20P#kYxX9|zC~hh
      zlioWxiFe8Q9BchPX7B-C#XP+}q<Vp>MOrS9^T+rCpWqwr|A<fVGpYZ9&+#Y8OU_T1
      zD_-Gzqr&;u3g>GT&R5utWzIjj#J#+y)n%$O)`Konjrld)WQsm&syNoRuo6Fbds{rw
      oRaxxT=teCzxgU#5)UWWi@7=iS%3f|XprzW4Mt(lJT)*yr0Li785C8xG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/javax/swing/tree/GnuPath.class b/libjava/classpath/lib/gnu/javax/swing/tree/GnuPath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..841cc89adefa667dba72b4eeb337a9bd60c09a75
      GIT binary patch
      literal 453
      zcwT)_O;5r=5PefBwWWfBf+oc1O)#<Xj6o9;y)=GA!U0bUY+y+(rXT9x@?cCn_yhb=
      z#@X7$gT%|^y?yiE%<Sja`v-tyY+Eo0&1sl=bMYviz4%FmQ!k06^e)2mS|l?ICSm7~
      z+UKHWLP^EGh?Cw-1rq`d3B?l?s-#P39NhWZ=>>v)SEIQcC!JwyKrnlYiF8mv$%O@%
      zP+!*C8rUF|U96x;sQ4<Bm+AdTMtv~~B%$gr#v&MqNNJuwn#oMXgkAr?t2*5GkgZ=^
      zGM8Wnzb84ji!>U`bEVVWJm5&1u+Qri_$T>py<?6nta7!P-N4B7Qv2`?PP_SvwHKxa
      mDqPE%)Meu-9GqdD+1^h(Hc$mJRKq5RX|%-y494{=q45oHcx1Hz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/JAXPFactory$JaxpParser.class b/libjava/classpath/lib/gnu/xml/aelfred2/JAXPFactory$JaxpParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..904351c6b5ce54a1eaecc273536f4f0df554e969
      GIT binary patch
      literal 1835
      zcwUWET~8EA6g>q44Q=x+sNe^yfHR}g>VCN*Dzc!$z!KRY`c}-8Lz||%Q{BVj{-HG+
      zAJix$8Z|zd_^{ddXpBF_c&nzJX_!IHWU6Ya&OPVeQ@7^rr)Mt#oWZPt28QEBuVinm
      zxi%N>9VrTD?U{+?g=wCTe0gtZhHnH5T!um#NHGlD<?DPy!vnn=+KYtNONK@+&N3X#
      z)i5rvxi<ta2sy^k9K`66oG*(S7ZT;Fa05lRJeMm&Cki}>$`KbF&xtM)e>$_okec)h
      z!bBt5EVRNj(818ZyQGPBw6%hv+d>nX)oQN=11$_4ImZ+8rL`3y|KuyKAWY8Bb9aeL
      zNBxdBQ_-puGGuD&s_zt~yeAaVg7m4P=pI>|&MDt)mwQEfF_Ml~982u{v2s`BqcK&R
      zIkk}&LFD*eXy6dTaMB`jdftz2h`e9)oWDh(f;Di2VW<|mSPBAPMhT=c;|B`|(9h7|
      z6jZ@AnK3l2bGIb6AI3>iX~kq|BXvs4)P^bDjD-;#XJ}OfaS!yRGuyf#HqgK+hW$GV
      zN|bBwD0jE!F)@lWs!OOX`_tQ$Dp2jaMLAV=7!K@6s|sf5bi#SQCc=Q{#l&A+3f-5t
      zTX2rtSdF6KyshF!RlJJ5BY0GjBDB3PQK53<yoE7bpc^OU=`w_&x1O7~4N&iQR1c=4
      z^r^IQv>BLS=t-P>v4|>i!X@rH1s)Me3x5Aba_ccxg_?_gN#@10qnf`n(c_~^iKwr8
      zo{*C+4?{t1dYzv9*Iot@R^J8&>HRg*-%kU5=sD^YJw}=h`qF!*^F6ehB^0B%H@gKZ
      z`yB1Jw$S+$U0L=NJ&$x)FOA(u(fBWo|DXf+u@?`}M>|$I82hlFW~MrxA_i#PO!Gk;
      z)*?9)QOTIuC+IqHaub79W|L;%5vBB4GY*!KF{4@?#WAg7VhF>8W~#sIsEq4ksW`2&
      ziS)yYNV6u`(gJ;DP(`3M7GTKYL`<8aUne!`oL&P1MB4KP-DJ_|EhVsp)8vrat;)3P
      z++UEzuSn)~!l8kRLqFoD8WCH|15Ju}XVz~LG))znpYcn4gLB#v=v=zGf8E4y4{kok
      zINjr=SNcF*_T_CE{zp6iQ}DY4bx(!*$}ZHC-$VVLc0N$>$2!yvn9}1kt^&FP8LnXl
      F=4X#*laBxZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/JAXPFactory.class b/libjava/classpath/lib/gnu/xml/aelfred2/JAXPFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49fa7f3e7027abfc90f0cbf74a8ec65eb5bb83e1
      GIT binary patch
      literal 2898
      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
      RrC%~Opng%*^6zVe{{`ox)v*8o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver$Adapter.class b/libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver$Adapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d34cb43c5377d3b80ee3bb967519249736cc581a
      GIT binary patch
      literal 2407
      zcwU`UU2_vv7=BJZHe|DD3)s>^tF=~}rXPU<0)l8sTZo1N7F!*zPBtg$;&wN)d&1P8
      z<&2IKFC4G^Gmc)!jXJ#N?2<+{r3@Fld(L~_^E}V{wZH%O%dY?~VK0Xi!(7|zRt^u`
      z3KwoG5Y4s9&iXeSf%8lR^XpCCks`<;!!Y)gKjRgbd+o}D##3R-91Mo@e$dvpLw;DP
      z`koY?yvMz!D*^_y>D&FyOnuOG!?(K!N4_^1j9ZT9$lDCFrPq2c?lNSmep8r8qi7+I
      z5r%YWaW@YVX(5MG45M|&6WiT`h6o<>hASA()P0+~yF75zJ~n3Lz7sOc*H6v?DNHr@
      z2`3ctr6dI@eTr@J|B_=nNiARs7jihyaN#vES(v~%2Iex14+UZ<hLQ(;VoL4ip)ESn
      z@x3sI_esIvH4@)HRti3_@UF_zcqi~}5r&S}u6dyhy0-FQSSZzxin}8NI=`8;MA0l*
      zn8$}yF4EH$QYALwNr`Q8$yKtH>W6`7IfwUor$dKyv!nM^v~J)qSlVaP6;WW1-bl+3
      z%U}Z5B^euCDMC`6!zG5Pp~rP6lq#sp7FKbE;o>mzV{htK%zOMmgdJ{EJ7rzfV-&rz
      z(Uy}pwb$fv+Ng~7J`cD}{Y8Gc(vxbf7Nz-93!i`-(v5D5I`2u9^5(Z%p~^U`k=+$k
      zxU){%^8?k(d;5-zWT@Ml7OK!)^PSV_h~}mz9r-;qz>xS<5T@{&{R-T8%L+uozqD`<
      zcS&TIrjcM@DSm-WFS}T|KeVu|TGQO|yMZmX95t3B{pnj(EYu@4&l5q_<zXnO-@m5+
      z&hZmViHv6!v-C?y)03qqrTz@`-?Qk+!z4?AR$F9G(bp{h46D5K6GnfaT?(h^JwkVp
      z{R5fopU7wb!WptnMBX@ycL2Q_CsYbojc|-vjWG-5A2GVr!(<9apr$&?{tYwxd;qY}
      z2P|M3Ga8Uamd@TITZVSC8v43EQE~~ohdGu&{)eRgtC6k9Ge%}=Y!i6f6k=NWYN^XT
      ze3X6_(MX|Sq&4Df<lEP3p@c=vVxdf{6s?ztB}&6*^eBIJ1ZXH{<J15c>w_^Y$6yRA
      zG1w|93CS(Gm!<ERlDsmN`3)C)SWC(t!>DmuGhK=N`%GiF8Z(XIW6h*i*Jzd2tLwO-
      z`Dg$W?BCKlL*JrK*z`;fw=xOp30THCO<j(h`_x6;ro1q{`W)+;x`;cpQf*p&Bf^a&
      z;WQD>yanMF?#9Kssu712Yi^)R2a9!0r;yRG*Akld$f9KE0a)qbi^KpJ3own+fa1Xc
      zsK?b&qp%o{M^qh#`zI@2IY#kvta$t6xq6V8D`O3L<MNQXO5u@ye}x@wRXC5a3-blX
      CB)HQ6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver$Attribute.class b/libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver$Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68cfbc16965128e63b36337d4f40728ea2fd9732
      GIT binary patch
      literal 657
      zcwUWBT~8B16g{`y&UWispdd;WL@lJOhK;^zG_^=V(!fJaV|bfxhcaZlCHv9%w|r<w
      zeBcN0qYQV31|Nuto6MdwbMHNK?wy-Izpnwj$F7SKp*2p5@aH5BrHao|HTn?tJ3kIm
      zJyU6`ljo@(7P)fa5SB0GOop*c#^K5ELPa^jN#sNk8oj@vK9?lpkA%uh#svpGlhePH
      zk>T+)lJT)E^0G@6=`*cH1Ue;%Pdd^0XF|LEQ10Q$>E3|v?@mXmhBB6Y_*fy7+j|2K
      zgjF9E2*aNEa3QLAN`TpK_^94Rp8Kfb5n-vP6LnlnhARCohq3L)*c`}IoBiU@$<K90
      z*zNt#z_|Zfe_EuGI@G4PexI{%IwAN+NuttjEVE2yE?R`<zjb+7_sZC2>t%kxid_Qc
      za~D`$ptnHokN?~`Pv<dXo!JZ}IE>BU3QNJ;IU2#cIo5*4`W(-K%{iLCI9kFBlVfzm
      z7dWB=PkcpPbg?E5upz!-ljFgi61MQt-q*B_$TH)pWSMbMX1;B8U*WZN#;=Yy*g@?U
      D)&hjZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver.class b/libjava/classpath/lib/gnu/xml/aelfred2/SAXDriver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d690c175254f98338a4adf8155556023ab526174
      GIT binary patch
      literal 20456
      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
      MIPq(0UjXO-0r3>CE&u=k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8bb85a3f0ec3c51905d3daacac6d4c113b9b923f
      GIT binary patch
      literal 514
      zcwUWA%Sr<=6g}x{`fjaSwQgLvs9iYdRuQBk6p9Kh#cgJKTc>0)lF1bP9sj_U;KC2^
      zqr^-siVMNO&AE?rPwvh8$Lkw_BkVfJFm&fKaUVkAauPE|(_{BG6gOPOr1sCXR)Lpj
      zx*%UT$T2h*e92wG<=nmY7UXM&oPN9~hSu<>G%{^+e!`Gna*>!~$>P`&*?^%!G6_j>
      z9Ym6$I;9y;gr0nn3#Wk$^ch38doVHj{b)*MWYMgmiW);>7)ZKGLXXs#d&0gQ`CLr6
      z3etF$%;~!zX6Oz7yP%o3Jc<(K(`Aqf)W3O$>1t-qfs~~Bg2yq%4t5wie`_<;eyL**
      zW+U_Qd20ov$5~+!C5z=%T(QWEnT-wBjprInGx^>N8qdbbV9nfxG}(Sa%aSbt>)5dM
      QO?$VoWu?>hZFErl1n_%y4*&oF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fbede093bb9f815fa4d3b7b71d3eadff981c139
      GIT binary patch
      literal 500
      zcwUWA%TB^T6g|VM2o(?%m6Z!)(1nd|HEvKN38)E#xSf^}N~TlNPK|z)3s)vC`~W}7
      zc&89`W8x(D-ZN*;ea*+`+dF_Gv@B#8_9iNE9s}ucA@3tGK6dT`dCQ|%M7tMK1VZU^
      z;YkZQhT4oja7S`Aac<n1@H9i&3za6#@M$g>SeL<GGW~EYBtyOTlQhtguO=r9C9Vm&
      zi54+KW1&d2FP$qMPy2jMlESI4e0|1{ZSRj5avdsHLKamUW!MbWp0C7p61XB7a#sq|
      zDfGA;@yIv#C7IJxpL(==|69|{HVBi*6PLb8uY9Wx&5*QRS1A#7B#&beTi9Y~{au;9
      z=T~j)fVQEpH<m{M=2$4EaRnvvjEuIUxJt;OXqf!LD=IGpGN_R+7_#|{HNy5nfI1rK
      R`+Dj((4<&O(>Jk=;uo=dcE11s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a0779ea5dc7e9ec8f34bd6610fd93304b88b728
      GIT binary patch
      literal 528
      zcwT)`%T59@6g`FE;fR8$sJL;V@v(5!t;P+}WD<fV7~-}-!IDnLbP9n#@i$zVxbOq~
      zDC3>Rz)G6jp4<C4_uTaR=kp7|CH4!*FdPl_IG9E%;6e?I=wAiTk$U7N5$5ntTWM#Z
      z9>fKB43!a|@IY}r3?8~8(X$MmoxKVM7BXaIKVi6NF5{b8VKi4^Ul8*^3X@zj<R)B=
      ziKN<G@VBjzdPvEVjxDz`)-4`UP5wq|X>V!T$!UkiH{!nVkwvA164n^XO{qm|9Cd|x
      z;$7uf;~rNXZe;rY3wriNlGx*=V&}_~48I+ZO;6m*w0nJCbe<|Ek)hVYG!#z~krc4U
      zQ2(Ep$QIN%0PRBG;gRK#M|uh<I$VM8aMd9rqa6v?$qNY6Nbc+d<#%#2*q}R~25WDq
      Yx?)#=O>DXRw!3TCA@p7QF6t=$0<}$jy#N3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65a9cb98b3fc21622fc7a7835a4445f2f353d023
      GIT binary patch
      literal 704
      zcwUu}%}yIJ6orqIA(N!jgpx3{v;`I{VE7q+R#j0qsFfl`v=VL9ttT<5k>eoGq@vG&
      z5aQ=WSVTx&^a1)%Rj-{07A+Et<hjSb$7jB=fB*UU3&1AkedHL{yLu2G_f*V<IxwQM
      z6@TriPu!%!EWSU^gwb3zIzngiKnj!k@E9f!`F9>GuDkKa<WRIThT_p6QL^3WFibV?
      z+WVQ2y8D*;>5nuMJ=^yao{BF<G8A^Cmf1Uo{L*rZ!Q1V3L>YNJ4NyXvq1u#M><xN}
      zFrRs%gw5`^xoUAE?R>oGW#44Vu+e<nuMpLnrGHr;va;MNfuSB?0tKtW0RBil4^Tvb
      zp}gN8n6~&JEnwxAW8FqE1P!f)*;PDE1s&;YhS~es8EXHb#{zvVPZwziVZc8AxE5W_
      z(V%lA-xE^XRGIZgHwdm>yF%}>wS_0}!c$af9*j(w#4{IF!qhlGk<+7Ew*k@05VdG^
      zi0No;h?%>*koF=xqr7vJ!V6TwOVq+EmmQ7v-)7exICILP=bW<edD1Uj<}6-1N(=uA
      Hb141=0Nj;|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7347af6010d60c1b071ae9c5be304a573e772da2
      GIT binary patch
      literal 703
      zcwU83O>Yx15PeSbMM%>$&{E1*D6Iq>Siu#<p(~Igt!UMj3W<}mnWU~9yYhNV^Ru{s
      z#DO2ck3x*isyQK6vfs>j-prfXU%!9+1n?4jEz|^tGgBs4bDc=iQ%93m$)~wKl&&DR
      zJ2DrgZ=o*GKbMy>(bCM4gYh}#UZ7Lh(&corxF7*B66n#DCugL7XT0(YfvqgE4Ef~a
      zQI=X`n5e9I&16S%vR_W8<OFJ;Q-RfG<j@w}ap`AdX8uf|u9e|lZ8Eu?C^HinERzl{
      z$xXHW!sQgxH~#ikHi<(Vd(ND5<9=Q`N5=0jJf*fYJV-OQx||y}LbV{Me@#A$5#}}D
      zD5Lyaft9DvPFYH7C)B|Tw!7HG9f7rswS6e(V{#{QtXbwDv$@o#(y8EA!MZ;S>UOgK
      zZ9VMhI4=0T3dG*^`-`AWpgZDqx>U=eprVB*0^9$tDbR>jF$7P*f4|G8fhNM&LObFO
      zbRyoY;@t{YE9_OcR$(9O5eJojtHRsZ;9KzF%`k4Ul`w`#<N0^o{mMoS_xNsx;N~~n
      ZkL_Xt9^heoe-!T_9y4|#eFwW}{{bgPpez6Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fddb3e796b3c28734ac40eae8a18608397fe70a6
      GIT binary patch
      literal 52439
      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
      C?c~b<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlReader$FatalErrorHandler.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlReader$FatalErrorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5aadec5355bbe7dc41a423ff38ca103ea48728a5
      GIT binary patch
      literal 624
      zcwUuIO-sW-5Pj38jmB!NpS2zo@!%H?dhntMq85cHVnw{J?N}q*L^i4PZ+Q|t=-nSB
      zPGTui5piK>=FP|3H~aqa@(N%R^ENVsjaJZcyKU_%*0+Y6TkdsRU$APjS+1#A=_6x8
      zbF6}<W@E!5EQF?&PDHBfayNDl`Brsw-0RsQ<ahnRkM{`KmDMYPbr3e$K^DUW<d7#6
      zJwM>HPWy(<rMl5fnDD}e(pSp(3GOAW_|A_ARqsC%cL+I7FkxxM`!2P<e|@e@#7Er*
      zKg50*>?GoxK8$Qk5Xu81{W5_>)50H=LRb$wrolBoSz)ZNw0f@|6`^nv1Z)npiXxT=
      z=LnVGw<DB(?1x3jzalvqx$>WaZHZj*lw{VPG4zy{9kKZ|d5RISg|7zjqvAy!iqbVM
      su_dUK(rinV5NFok1~@KLj+w7&k0XgDF_q3tr)UPV;+<4X85InD0!$f@?*IS*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlReader.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6330918d62cc6990b9c87a35c91deb9f4420d99f
      GIT binary patch
      literal 4752
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/Consumer$Backdoor.class b/libjava/classpath/lib/gnu/xml/dom/Consumer$Backdoor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b3c5ce78be439e67fecd192296c6deca73be4aa
      GIT binary patch
      literal 5882
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/Consumer.class b/libjava/classpath/lib/gnu/xml/dom/Consumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7dae3f68bc4dd5575cbc079ff8dd3339f1e7977
      GIT binary patch
      literal 851
      zcwU8)ZA;rw6vzL!twv+iuGWY7+}Uky2L@s9DuULEgD?cOxOclvFI~3e-jbx!ueCQ8
      z6#M{wsNuP>6^Eq;l5<YZ{r}Db_u=2|J%BxYHjrY-w`JGv1-{)<fn8HF>INb-kYQLK
      zW;$L+_?{H@u?mJK7$)~U>BR>O=~B7DVAgxC=)@l74NNnvsIZ-=Bi^&m53ion44Im0
      z2?G|x^2_2xKUOZmWo#miISUh*rv^*TZ+^{fpUbvg^LZ3i%MAnX7&b<=UOeLNpO#Xg
      zi7Xa0BhOGMIpc;Qpb3U03(HucQ6dqaa@q3rnC0=(;^1Ia?_l1c?DuZa6yXJL`hp?n
      zD3|*U9(p<+{LI9^yoky<qx!Eh?2IT`zoxbP*KZnIdb(|fudg@sHh|iYq8Br4zjc-t
      za<00eD^5J!{p>KYtBW#N-=q{_QdZDZQ^WnEKr2l{KPmDiFiF;+C_~W{O!Df94=hx2
      zGkwff?vVXa=_7Z8#lMN{J$>gA$OXwSkwXKk6j@I)tYMw3hHt!rpOK#;n<w~}J~qeE
      kf0C9HubI%7o^%7c_6qnw+!S^aT@fG2>Kl`#_Y<Zc0sGd<q5uE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DTDAttributeTypeInfo.class b/libjava/classpath/lib/gnu/xml/dom/DTDAttributeTypeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7438845b4c48acfa112f7353103ab40f8886f89
      GIT binary patch
      literal 1095
      zcwVhi*>2N76g^`*OB0v63zV>ivL$X43-t*og{q5`DiqX4eL&*DNru#wm&lnk@E?2z
      z4<HdC@xTZ0QHVQZ6RJ`P9*||9Gc)(xd+r^7|MB%3fCs4OpfQwt;m~;-_)a$poUPW@
      zh7hsW9tz%i*XND!O_YPdU>&<BuH(C5&w0^4<{gnkmSG`^d(LRJqqM)`8H(KJ0T0EV
      z8*qlX=5Or*<qms~8H`Y!8G=LvLDVJ4oVfmwFuUf3o>*siUHMb{zjmsJRCkl=7NBF+
      z#5Cp@^h)(`3e=d19P*M~GBK5~%O(m5yJDi4uxlnv<QZm~UdZ=`L7T@dx9zL0qmJtz
      zy0ItM>82r$yaB^f^KUb!2^D)>$YnCbg-Z3jF<PgB27R}~^SDc{j)dqxa-7j<R3EL@
      z<t4TDo&D|28r5W&_6A!#_D*<rCyoM!%0ErHQGG>Hak>~oUQ8TXU76DrUKBp(;wb7e
      zum(fnAR5LUzT?UMOXu}km!(jqY3lT5=&|JR=@+%+=oJ=HET(8GH0Yhi1yaordk+m+
      z!m|AZmc2a2yuC8UMY}e}qFpk^DA}dV7*{`0jE3v<y+L(=hm>cHDm|f0>zKz=l<*8U
      zu|emc9hH;TWk50MjVUJGX^KgIx?<9yp_ufT!7OfJDRt-&N@d3WjKz-=8(Fovt;(56
      zKw54Vw<qFSD%R)joR#jLlIj!bJ={;FyM)q{rhho2e5sUnaysczLnZA|LpAMDqo`$d
      JLn~@k`w6d=)&&3n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DTDElementTypeInfo.class b/libjava/classpath/lib/gnu/xml/dom/DTDElementTypeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd47fc332f6385a8d157391f959213dcf8032ca9
      GIT binary patch
      literal 1909
      zcwUWD?^6?36g_Vf*bo*-qM)_bQd>0%A*<5*gCG_Olqg_@3?1!sbdx-jWj4F%W<%<?
      z{u})t`oYc!PIboVx6bsB>h!+1%MwVYn3?Rpz3-iK&pr3PfBt><0l*EERVWOX>UKx}
      zrD^Fkr>Pgq#TAP;x$Tu-wRp*X>8OY@BzBEGL$?gOu0O8q@~Wp|nBlDB*7fdORU!}1
      zGem8p$r)1XN1$!bHSKzVVW{cUxWy1RJPK7h9&a<8@lSR<)6&<Bc4Nb6(b2eBTcSgo
      zl5BXvv`uf3;aa+%wm*{DAsNe*Dvk(}8pe=fh@>++BOuutRK&z;O2Y_Z3=`|7%{M#E
      z3U|v!#ggKks$uOIt|`8QVAN}vBzJoK{~aUkqjfGneeq}0nL%D8dJeT)MwQ3#Im5+<
      z=e6c_z1!{PyK{MAad}JMT3Mc@j0|IDyU1O0kJnaRr^%51C_hS>X9V?nlQG1+P+_7b
      zI1SHq><#WUoEifwk#JJDbl9k)2HzTxGjr0EK3qXKp3xA;XdE+`Rgq&z_H|xE9y&FP
      zQZrob&E!vBA=4jHaf8}&ngFV&J+PkJgFHNqjb==gkra<x8gAnbiEedB^qm2sKdOuv
      z<{6YyaRk?~py8ev&8TQn9QU!L;@e{v(HE-W0hZ~0@Si(|MZ-Bc$gyX_`V|eDWHe>b
      zmrt*dF392J$_|x0?i!xs7DUYtH9W#PW!^Kaj=06=kDXn1EQ@l}Kov%@iSJcBCjSTR
      zYj}b+nnp8Vr<=d+blfUmHN~Yn*MGtCf(Fx6Q-uCQh$10wG{kQtc+-^0w<f<;`j26p
      zPEXM4DHK8i6WO;&WM}qqCY#&G<R27LaE_iSq6FsYxj=;X2)Kyz6q)v6_yiXu`Gic%
      z<Vqw~ki@6B7^KP3TkI+9b;vv{BM&5-=I;h<NqiO}X9Hv;b?GGZyB=sHgihm&0Q!*L
      zLc9|B{RDDDBD4N(Sb~DfK?w@JlqHDOSGXcey^3oA?-PoOy~*qwr2obcdo30-2gv?~
      z>qjETC2Wg)DU%~RGUb#H3{y^quHD33K>sV@1Tyc_k7wUw=IL8}y^plalRLmSKcw#F
      z-k@-R#orJUZ7Uvi>;e@D{7B3{QTLvclP{1)g`BMQbS@ui$cGy8SS3@1!Z_9fHEV(Y
      hQ^$%uK<Q6xFr2KmL0r33t<}?-sUQ<0FU0BX{{RdlnYjP}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomAttr.class b/libjava/classpath/lib/gnu/xml/dom/DomAttr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..034639a9ea138595ee9d68c4d02662fe4fd33803
      GIT binary patch
      literal 5205
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomCDATASection.class b/libjava/classpath/lib/gnu/xml/dom/DomCDATASection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7b346bb93c7cb4fe2c0b0804be8a1bf80931853
      GIT binary patch
      literal 849
      zcwUuK!A{#i5PcJyIE_;%A+%7MHYpquTCl42mZ}m;R4FJ*4~fEo)5cj`Bikz(8~Chp
      zLgLU5=tor@Z_)@EQK^UZyxD#G-ps6j{l5DN-~;w76bL(Blsea8;LKF$^i<gG9gUAh
      z(oK97SuhD3Il@?8Cl-o?Efsst)kjw!+`mRBe)c0j`9e5s4RY6e%1uKVC7r>!xD-wx
      zBF`Bmu^)Mz_Jm+|)l8OQz^=eTh2XSC|0%IH@FO`)!>NqNVj4(7b)Z}kOhoKw`C`*d
      zzWW!1dS3m0Cmq6yx{72>*nYGM=3I&()jkgjA~YT!!D+YOZ%?vrUu4~G5t{$#cFrak
      z)AWo`IPEf2XAG&&D3CmN+mp$V2RIZVms4xC9~M+Xld!t$&O{;(F8)4Pd8E?Vm0$gA
      zGPT?k4l@xn!7jX3_~$WTa=j(ao^W=|nZdENZ@qhei}DTQ0-o}>%n|4__ZX{;8gm}j
      z@C?vs9aUDz&<1ME&U7~yx&lS*W@ozfP4gDd^U_0(-?a3nIdv&*FQsj4<E3WX*ug7Z
      nf{i*OlR2;PW?^^0G2<K6#*d{<QE#1Si^}|XVL^DSS-XD#;3Tuz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomCharacterData$EmptyNodeList.class b/libjava/classpath/lib/gnu/xml/dom/DomCharacterData$EmptyNodeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3bdeb5e5e52b11d6b79b05aa6e56ee4fe0e566c
      GIT binary patch
      literal 621
      zcwUW>xlY4C5QhJ8PC`N;5Y7}76c9yN2#E#+MFLWg1qFzH<E)&Gd?0%R;hiX;LZaXS
      zcqqi!F$hv1irs&%Z)UXn{_*+-U=NJ~3_{cKN9Ndb&3@pSoxp1kL?~=6!;a8m>(sl|
      z4;MjSS}M{7WC`;_aVJby_>Otm8%mp_dBRc<I_CYpopkxCC*+Tmuk<k?v%Pae$hJ9C
      zLI$&C6i_5oE#=FLk=K*qwdlE$P_qJCxHlqHv7ZLBdY~dg%liMWhlCkNYD@Z#9whU-
      z+(&8Y5$fCB9cy}F26D>p%Q1ntv~(4WLR+4xcz%6))^7X=gmTySW!QE_6v?Q7bwcB>
      z4GEQBJ7N>O8J`^gM}`l-341eanXJT`YrdfL%!Yw7-}xkXf(qZ|Nde|iW#x~-LJGH1
      y*vLFik*7aM<D0BuF(nUJjW|b7Q{;I<E>E&48Cy%JC(Lr<tzeb4l+0hl28y5l$b0et
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomCharacterData.class b/libjava/classpath/lib/gnu/xml/dom/DomCharacterData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..47cd710c753977e88cdcc0528eb776033ff079e4
      GIT binary patch
      literal 4429
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomComment.class b/libjava/classpath/lib/gnu/xml/dom/DomComment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..deb808dd57f10506fd63dfcf6aaab6a86af6f3bf
      GIT binary patch
      literal 614
      zcwUu}%TB^T6o&tSN=rexig;OQ+<+Gv;}YYB>c+|j!+t1}TGMut+JcXzD-#z!fDdIn
      zEmaeU3paCa-~4mVnUBx6cK~PDRgq(8IYDeZ`JOSAzF|s#Abnp1kqU)jZ@G5QLvBYR
      zG<n2T6c`#Zbd34Aof6qqhQfs#xX~p;uVXDqn9`0DsBb;+88<v0IL0Un-N5O0#|+9q
      zPKAy<N@b`hGZ>xGKP4)b8;D`-PegdfC!S!aThiv<n1^l>XGtZxcOMzr%j($>eTFqT
      z4@AhY{bvKj%(xe)PptI9P;x{xq<MziC#2cwu0k5x4BDany*Yg(<Ion@Zqj1qx1C;c
      z69-_l8hVxfF9(G-q)}9)=!T*^+2T=EJ3e`Z{*of=bn0XQlh7+{khi}8Q9%_*y&CEy
      nlXwj@iLPN2txWioY*NeDx1N6_3u)>$l`AjGnH+5^rFOmm#jTE8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDOMException.class b/libjava/classpath/lib/gnu/xml/dom/DomDOMException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..729a9446d60fb345cb06aa477e0452ac2ec17738
      GIT binary patch
      literal 2560
      zcwT*0+iw(A82_E#wrp1}0~BbX94@8XEwCzh14JkVDfWW2l)Esydv<qVcFs6+wk>#x
      zMtv~G7-NVbJ{V(+@$xVxa#0f>eBi-9%J`i#({^cBo1C4q=lgw^-|ze8Z2$h}_dfwV
      z13!fphTe)-&(GJ~d`Z^wBeFI!Iev1!D17BeFNHRS%`&Lu=MEHOK!cT`tz;{k!5X`1
      z&)Rv{_A2=)6*ykyFxfm=657`2K0#+>YoE2<IvLq0L&p)vbJS6C$W9H;(BlMQ(qLGV
      z!CI_iNS7SD;>l1sMTU(8TA3}4R;<sU3mX`^vr{VpI`En?#}gCvT0sQUcEOEnE86ai
      z9XR@Xa@eM-PROur?0<C8^ooWan_?JjmT@KR(ZQKjL~C0H?dZ_E?HQ!dsdqavScNo0
      zsv^{ciMt^?*i1ML7%`e_KoiwF2{03j+nOCDdDC<-F2c~R2(3~sgDm<}*vqhKx%+V4
      zaZ4gdV?UlwA<wXOIU++-^DI?i+BaEd*pqE2VzO{k6xHFT{TaeR-Jj=l2b;C06E85V
      zPmjw$@KLWUgPN^{KE$=_OBoyjk?XL1Uw9>kea&L5I7;}K>@R0<6#b-+lCiN9#~4<n
      z<9UeF4C^!}7`A3d|2tSGPBLWDx*vSPu8Bju3$J1{h0~<h@{VP2Mknn`+N$xyA`prM
      z?8G=V{<y~-uO#NV40!0=5!?y6tSc_dJfP%ae<voX*~fWks?cU7B`-J?vb;{yG+h;3
      zziGTAMd%GEUJ$M%U{wU#nZ~n!5fYn1%E)a`DuR$#v0f9NBItPrK3%mHFIMfqE-JE8
      zHo|dV1T{w~Q6kg@n%n8BF(gSFAY9)E1iD1iH6e8%q7ZVMnrgeQoHG%wFbph~G-t>D
      zWm)%1x-exbke(9rx~OZ0A{|LHTniP2b>EjkT+wx!2OZB=BvGNRmUt@3ZC-N9Wzxb^
      zT(}~kO7G7W?eb*MdZ=#zGSfY?T{p&cMa6a(q}QeTft+<pCM|VxH-X|11C;ExFL=$q
      zZ9)}9LS7>)^q!b(B$AnGKI=%=R;0|u@i8++p>G#ONLYvA;8~KtCba%E6iZHyY40L)
      zUbxNGLL<oY7Q-=}#neILqqHPJ#dKFQbiAUh`4oyc@;OIU4MNQOR6a%1ZWN_PKM3bU
      zD1uo!6ASkp_mbCy?vp854~pWHqwmTM%kIVf`mMnZy3tzc7p4_0`l_Q{i@xa0ldd^>
      zrU=o641GRD--ZnmNauQcA7S-FSiczTMtx>1r^#;=-L&hDk=TUIfZ1(955>{(dXso>
      zQ@nP1_AJKB?Y)n!xqbK1m)qEOAABi(w?Uqx_)}PoX{^V2ia29(9gL$a=ITju>7C})
      zVs@HYtJ!I8ZCHn$*p*b0H<bbHxnI#2Ehg<ShgVFJObkeptix{fH*wy&+}UpGyaxkK
      zocYhooGVS7nf_f!oc~H16679Ya7?FvjJ`iGbZO`j_C3S_>-h(GQ6JOe0gh+{zxO2K
      zl^DSv;CO=QdyHL;h>;l4_Zv<zB!PyOXznxv<5PVBRjP>CEd4Ic(-_>rS!%J5cN+#G
      zNLaL^hSv<swEpKI=EGWvkLG%}=SS$j4-8)|7^v-_b_17aU8QxMR)LnFRi$-{mPhMN
      zT8h>jtvj^dN#eX`jYZZ(WSxzybCES2Su>G!F|sa4*44;*BeHHpRw1%VkyVbYYGmDv
      zv<8+-3iQO<EKxoKi#|W1Df}20@Ch#CQ(VJmxPi}6#1|;zE*yLb7xy6X6_NfLb$mmj
      de2cg69SQP1-p3F45I;3E_^z2+P1rM;<iG52QU?G4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDoctype.class b/libjava/classpath/lib/gnu/xml/dom/DomDoctype.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7698d8f797a12199b3f01462f7fed7f75e7267e5
      GIT binary patch
      literal 6376
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDocument.class b/libjava/classpath/lib/gnu/xml/dom/DomDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ff8f0d1ff9a73916b0c13f30a26204267998fe0
      GIT binary patch
      literal 23664
      zcwVi134GH<_V{}<-*1v8-<BSv5TH`zDrri&L}&qla@B1MQm%pup-rLMrlm;*yzi6s
      z#uZ$wXtf@ws8Fa~5m$xvcD)Zg7iB%yW7Ty%_`NsZZ_+dk!utQOpJwJe$9r$yymMyQ
      zr+<BT7XXZugY6&?daVdH<*%u$&9ADj%b!+XH?6+1sV)!<+d)Ifi0dq?uL{_~hS0OV
      zaYg>>(Un$5WQqe}Xlzfo(SKT?G32j}j+qx}v4ayKJ9hAz27h>E{-QbbJN-0&ZIeG-
      z--wV>Q`b-%;Hmy_O??ode@PeIvrCJ+3@AiMuUr|ZJhdjcqG+YR(O(%Rd<eK0Av4mk
      zFi=}tUEf$2s0s!`)ah8>R8w0;9SF9{`e1bpRfd!tf-^;GKvQD`U2;vZp(#8)SXpmE
      zNH00Xf0{qP)*oDvUmk9xHX7szMEmW`0JRinDC`eb`D^Qg0U8ln8wv;NimQl*2{pl*
      z@FWD8Gi(8ZR;1XT)qOvB=}zbe{SELyA15FT;M&m$N9P=dO$@k4Nlh?N)>OAV&^XV(
      zyf(nJ*H`*$7x)`%_}gmK!YgZtNuEP7q|gZxav1S2gshzMLyjA^Ac;uKH6R&MxRz%?
      z4@hx9KCN`*@DbcJ(tu3p$+gi2xWFLnEC2|uP#`=tx=UKlViVXn15zP{8mepk)SgMB
      zig=Ubci0{2h!YFfia?m9y3AikEA5#xto!CU;5dY&fmPNjh)FajvZm=KPf3qxYAnaC
      zjzT7~$be}u9YL?IX$;X=cRYuf0vah{rUA2{n1mrnE%Vkk5KUNahd<EPCjibfN)0Gu
      z*jg~KhCs{8@EQ^<lftk9&@Ya%s47x#p&iN*dLODAA&npv$7$ezcz_9XFoot>R8C#X
      zGCeG(J7*Jf%n22+#15pdsqr%mI1x@F{iqEDSA<t8{U~OsUuwV{IKd8nl7Q~Q$82!I
      zGN?453TREXmHtq1RY*-=%+m?(WSHWD8aUMsrx4y)vUqO{sD-*tVKG@lvuSJUyQ7Tm
      zP7qcZ&<HGMO`$+zan+P?n1!x~$%>|MO>KU8AYABzCRlBU)5w-|=`dgotR-QnAz3x8
      zVP-@?)sSMVodBExXW8LQlFjbDEFfpc%l7Q$rvxe)a}Atpz<Dqc!LU}hfNXDoH{k*U
      zE`*DSUx8Ik{#sU|obC{YEoS7G7;q`G)=sP~BSB=imm4qvCNksK8SqEA(o`IaIn2W1
      zU^Q`XOhUov!qR!u;%1SqTn*RS;TnXaetV<=*FjHGh#JLv)^aCp%X$NDfIpc_=JuN9
      zO<|&bNJ3H)7=#VP6vA0hQ{{l05C*LbhZ_p=^H;B4J$&`(;VeCiN=x!bjvqfRKS(G;
      z4gSi212!RunkvTMY``tB+0>FK{xZ_UaS13mBAS@tw;9mFn~+SKP_&XvCGTd4d+sox
      z74D=S!Z(9$km@#NB3{-NsJjighbJ(Byr1PY%WDY@cin5ieGyo5{EftGo<&<<6)`xy
      z6F30wA+unwY-(&Yjc9ko>}djZ4Kykcv8vrbMT`X5#TueNkuuQUn7hrsLy1`S;lznd
      zGxf5WN>(94SzxurA$Lx9I)^Q=!=ng&<5xMmbo!dgKm%JqJ3K}%A%2&X{|YoZ;Bj)$
      z5r2|xEjHU<+Zgayt<7#|420;rAlnJM;YoI@d*W0tA_fb1#NP~f3ZAA#`x_bpK_WRX
      zk(PFwZP8N5Af7egIko_faJ|{-gkA6gV}6khcX<Mt?8cPhVGA7a5`|~cb@7&WUljYc
      zD0f{Z&DPhDM7-|a#1{K?1O5V!aNO~x0k6QTq{=lxGO^*Q0rL6*rAXZ-9wBrI?-=kF
      zyiJrg2C6OEjK)AiEorg(<S`!@@E(szrf9CFdhMdRS~G-jP7BalEB)a>6%+cA0UyHw
      ziXTk5QbRHm?B!w==mnL1s(?=o_zXVhV3b0YDPfLxiiZ_RfY%Sw&yR#2etCg^zM`Ll
      zzeqwvZ7By2I^jF`!4BV3ywHgv8t)kJANY~fi!|4CVOmbnuwn-BtEmAaN0M73=Stc|
      zK?qjTUlD7i8tgKcP-Gg>3X}$Fs1vxFU{zqv>}r$BV(zjV=-@6_tv?hlj&$p4V1yS;
      z6^}IxOh$^}T;Y0dn$p<lU(29|Eh!=fVyb~oOryQXSyEJ7tk|S;c0dH_%pGz|VhOY6
      zed0hWbD#oyljx#{C{uHIid^1A1jzd8YF2R)$#B530S-J$MV})bNV2K1Rc8=K8#oXL
      znIU>(IJB^a!;OSW$Pok%F>om6kZ11#n=N|b5nA-bkx&r5yp~*q$vKA%tB(i)Max0V
      zGjKS&!=zdc^UaM!9AV%{97VBSRiN76RNLv1h_~LHgp?&hz;SJ&vBboxsNrUOV+}+&
      z;J|StwGJ#mm_Vz_jylThnh=?d)&8}i>?884IKdR&V90@!OvfAy6*zD*tw_}wAe*1Y
      z(*jivoJzYy8d_bmCQzl2W)CGBh||c7;`BJ{c}Ra7v7Qc`Ndh%AI~WL55!KoA=aSwS
      zQQGL!30LFs2L6EqIj29$Sv!`JUy5@}QN~9cQxcZoYy<uYJ(+JO7&sTpqe6Drz$JDw
      zcyOT|=XcK`xrgyAG%%g;;5@7_a54KF2jxs=Fi4Fj8h8?nrNvQWc|)MGrn)9j<$~jJ
      zse#Lo0`JsNY%HTff;fY&Xh=X7shwZB>!aiSbT@|Z*r0;lEr+r|Wtz;1D94OO{|Ymd
      z$Ua0G6d6I>p@^dYA(SjK%84uSR94AaPON?-)1}zSq+}k2Pf>OpW|w#@`!{SLs|N?{
      z*w}r)c#IQQVVJ3CLKyzP7zU=Rw`mm<ASS4580uQ))*+!rY^r5Pi|Xr41|L4dvxX9<
      z&+48vS)EQi6FEGzfKQt;Z%R2uFe>pJes~Nq;|b0A-J`VF5l%c0m1J~hNEbjnj{H_%
      zlcqV1^_788h>#ZtL*d3Ii@4(7VdxWrBBOE{xg?^Q9nlpAu46}(Y9?XDD}of?6!}AB
      z_b8*vtf{RHtnk-n&neC(M@5cZnKV0IO<76Y$`c}U;#KG+qiIei?W*#J{Vaj&4ZHy<
      zMM{e^HvdbO(oNGHNSRYscdI^X#E233%2wyIt??$&Pag50F+l$LW`tu*JKpIc>Y75~
      z?B#(34k8AW18<>C>uT#`3^m81Zp&W>!!_Zxa|6`@N=_<CRYx9H(&DC&u(iY|qvZ6u
      z4szmcNU8B$Y&GysyvsaLP-AM?*Tx^zuzyxLT&cgI(1rKly>{FZcUluW#=!gVek+gX
      zX3B`_j>PJyxYv#k5IYjmpM+b1Vlj!^4BU=w9Ki9BrD@dMIg1lT(RdrY$;)jw@L}jf
      zMAi9E4a}ufpgvf;wp&KljZ<XE`yBeviX=l>oL-5caKuql*HGVR+1;TDa)E?Ili2^&
      zz&Z?a?Fj?V!E?E`$H3F^46gmnz>Dz`J3bwE0$x^c9(>vH+3qLmkxmyr1((wgzF^>s
      zoNn>%&uOB>y0W;6+g~#9<w$$Ebr|f#XYf_F$*&>I{a-Bok+e`Ei*Jyv?Jn0Ye4S~1
      z9be#|m-y!$1K(xpdZ=R}b4e<K#I5)~Q}_Ww)&Fk_6DPfh|1j`T+|9=kZ}R8I25!b%
      z=@b8H;3rWkyM$qgpBdN>7V@Ys4E&PyFFE%7CB!QBm4RRL5n~edl&DiiZvEE4f8%$2
      zo}g69ol~4pgMNrRI%Lo;{GK`aJ)BEF_>+M@^AQc}XlE2f9lsiQkYg?mugW5aaD-Z*
      zA%x0rLor%S$|y8L=)y)WAXp!!1av;dx6{aW&+-SWYSqzp4khkKk^^&k6l$zw+aCxt
      z&_@-YQ9FY5k@Mcnl0>r3=PUswEPM{rU4#m)cz0<q)YM3km6OjoA|DPyXdQ-j)$=Yk
      zkH!%#);NwayB-=vg2$@rS|ZpM46LTaFd8~AkmBgU>4^z!KyjC*&bun^oKaItbK}iK
      z*D=u(C%fp=J<y09;S?Uxk90(2Ar$;hO3V|2#`=0%t8?{Ae|TPf`O5m$wD4**g2U&-
      zLZPTMu%>}Tq|@u9T48EqAh6J1dnyB3{5wfJ6tg;E69K7wqY!&zmINq<8j!(>DJK!d
      zU9Z#l2y#(fZS3e=1Kd11CDf(MgiQ_Q(Q7pxoo_%dz9LEu#dVVYuZjCM=P!s{&?Sdr
      zzn!p49K*Xfmd_{3c|V+MVn%1OQj;;M3{P)ttZ$55H<`Cm2|F@EiCT@?`ubCw8s@0L
      zh0K+hXox~Su1>EBO*2#UsA=Qw$%dH3A!52YFV^gFcab5c@NAnI37NM;Qz?Qp&7zoT
      zh*@khQ(~^QsEb*5yaBx<jE?Cd7gZJel|*j6L7A;2GEB1#F^6xYYz^vkm~GWuLzHvI
      z#2Mx6)xiK;MKRwH3nKRpC6V(8wuS#>swxbzSS+C}P_WgpTO%J#C35D8jGA4X6c;MR
      zhV(9RqF8E(WsIMX!`O1##qzjoHY+7@3BOos7krhLC?tudhD7xW1FLZbrNw0P;dn8h
      z6J)iVT0_+Fa(bxcbov~-s3+6$8-b-u1mSYKAgvq_J1Su??-Hv-*bq&;Dt2J=R8Y^Y
      zME;sM=fo+WORN@4X{SQ<O^qD(rkE9Gp?N^4?jg-n%a~IQw%}dOc9(Q1{varl_ECJC
      zFs6%U;FKHuW{iz6@CeeUcsCJAs>MZyD1}#9CFZkdz0?qwv1d(*^{kxU7)lZ9imZnK
      z-3|_Bmv(&uz?$+$1JWSfF0SgHcO`r`;1pLvf6}9x&~(o0BC&J=NnXqfbiE<25!bpv
      z7dIGU6inpWjfTjB0M|AeVi-(xh(9Cf^XJXT8%Iu@ww`=uRlN6(#$)VTqYn{WRk1G-
      zlBzl%E2L4nS?8~<IX!x!!koO_5O;`HQqE|vxq#l?;=gE!p@qmB@KWwJ#66r5Bt_>Y
      zi7UmuhPaQ7baEvppq3<s_@Mn<p7ekr9^}1pH3sVHPcu*9S$MY@Vtd4fEL>S%8;D5t
      z4nyojT3M=fZXfMrWDgsngOR0&8ft68MX?wi;t^urNheLB+*>?qpeA-7;@p=Hy2W1&
      z@wj+`787b(9#S2Ayw8UT-6rtxJv@A`6+k8!A@NtH?`cCk!}K{SP0a~$<8y|1o*R2x
      z_eCU5VJa4`q?pun1+?rJ4e@u5FZ+;O9by>6df5=KC<Fm34B(dpMcnhcA>QB~cU0S_
      z1uAR(rqJ?!;1_oBc7kXpCT>d-Z;5vd@vg$qXytrP@fLo?Ki|@i_|Opl5c^5I%>C@5
      ze!u5*L5Z2VKjcRcI$Nz#eA^gaQ)agK%^)(Xn|yYSH%V>kSu`VyCud2fhrUetK0cB2
      z`MtzCqql|R1-^=Zg%Nw1D8A{QnwN!?zZGALe;eXE7(#2TXV2;ol!X+m>2jcc=+lz!
      z$LRzSW;zM%e+}^yXC$sr=L;Eb|HTl$a(j<ZT!uw`8krmpo7kkO)W&oj-STvkc;bPm
      ztcgaT)7S7Np=pp7Cz63!{=_^MD=VKH2-Vk;F^l7K?1Qo>>_WS=|Hi|!D9>e5_v4&6
      zP)_NPE{X@GfpEhAl=&XPN;tR-#BhWZ$?S@Ef{Euxx!T!=aO`0(SQ7)Y%Zx)XqjQi`
      zrb{<p89&0I0zvLX>j;?7`A8Cihuhcg@myk(V(+9A+;K;qx5z%SpI!Ei3!V}Rh9P@N
      zO3%h8;L(vG;~P>owvpq08v$;r4R?JI7#%CuaC~*ht&9;^5`=OUmQk8TQ&MAOYd8aj
      z0YKpBKOO9l1WrijhjRcR_?;c_|9V(us#Q{`qDsoSROz<LOsni=jq9zxClP!P^r7Fr
      z^i=@rx)}^_2lT7h0Y~kC><1LKf%NO75+FnrgkcbmGRMMT7(%7Sj}t980fNJ0v%INE
      zxC4fIwe8^LAD=gU_;wiK&D{>8Isx|q8~vU~OI$?YDrgCQBJ+Ic2Nx(rnI<p`5!c2j
      z<Os*WSPSJO8pES(-oD%6*m$C^AO^0Bfn|%rvcY&_2*WB!49gb}Ydyib;V`fY6T|Yx
      z!`ei!ZvIVJY5dU2f|aLW1IYAATcdz%s_BlH9g!B0G=BMJO|7!X$o6i7sU@x8&fNwx
      zv|GTDyBm(*N*^U9xqA<Oft_$Oi8O%w!2u7DY&}GBbUz#gZ85}VTX=NZ`PndC5jzJ?
      zh{}M8ae##}lQE_`O_Xz^C_nFp@=-$h7=e16z8{7DuqOuPfGEm7QIzvwzJ)U1;*U-!
      zN5ymKg%}R$78ryDu+W?=<`Lf<)YLn74>)t%V9`d<ajUltPTmd6N_~64@U_8mZY-t7
      z>ax7O@Ck0sYloE-o7@8H^L9h9K=<g|pkWV;S7kepg($GKLbk`&4yPmRhMEF<uE*XE
      z=OD52{0(69=v%q-VuXzc_YsyHAA!7#d#@<4d2D;2SFT6**tWq{ZE$_(6g~Y$`sNXP
      zA%(s+rvJGOZZ5FpdTh}_1n5?T4UkNg+Y!oIVI0-&B9b(Zwg-|t8Z`~3rY&aEUS2RY
      z#tb^RpTE6#9PAUbO}mKE0Pm0;c#o{m2P7FEk}T{e?f(RZ!sn0+Uy`VP3&+BDB)Z?z
      zHvNaB;z!!3pI{mM3_<u6R?+twYCi)7@j|B+Yj6eH;A*tPW=w(>Oon?g1s=pyXu~wv
      zN#!G$LBWX|p29xx683{PF$?zL0N9U&83)1VI2itgx$pz};Ab2Tzv2i)9EnLd8dGo#
      zLHP<ZajcSqYEnSj>xjBhZ4=o;3dK;8oNuL-4u!8t@*gCr*iWl@h-w<GW*uyU?Ib@Z
      zfS0yt2g%kl62YC+YbPV)fp&P9+U_OO)j{xV1m`dCh$Wt{sBeH}xe=ksVM*Ep13F+=
      zg{=d2SET=S2Ry-zZLqfup2?Lv;Q2?*;jB75{^Ty>|89;yId*)fk(oiX0TzN2CqNob
      zf=oP)GSkTvQ62}wsLZ9de4GjeSOimWI?TWsFdJvW0xB!0TtaP2u{cHnmqiWKGI*I*
      z%?kGlylSnm%+mREQb6AZaCmcfz-#>TMyK?o@Czp_2RqIO0~f}?PLIM)kHUTn-nL*@
      zC_hMktt)Kb4%inDd^rKHBH+~uc(yq$3OvIC&b4=`CaC^i6wP%Onu#WwQPI6h_C;!*
      z&JD@%S=HuPg5K{W=qQp4z*R(0Bke#4`eK;4-vlFZHH^izF$7MG5;!qR;6#hSB+{@w
      zRQ^NtGnr!)+3Z&2PS_vkR*>8su8XmEHhyM8rGp==nG4l>Q7gG!d7gJKq_RMzrg%}w
      z56RP_iTyUlx5_s7WK!P^@Jd$dl+BQomAbeES7fF7RsHl9T#}Vq(2Vo5QkOR4?5s4{
      zy&0TTyw-wKsCdKt`o0B6Q}G}5B@VXW;H)&+puXf;E!c~SbJSOV>PyN>%Qn<kc5(~+
      zM1?tWz*Q~qMOK;*)K~t$THw8`v=PXJq<_%@FJ+~Fsp{0RCoBCcRsXsL9?nYtM%BM<
      zf%|xE4lic$(z15KzsG8B?QZ7oi2#acWFN?hcmACiQ^x*{C2TDW^}m}TjYxcFGn_!h
      z`?taIU2qU{U>q|CM$yVUOa?sG0)w*B^onN4%1X0+)C`$aeB2B@Vy9|jwN`x1>(<N-
      zz#cIh@Ryhk*qW6(Le<B&V2j#}o7HCAn3bB>jMrwR4sXVFT{h<IE*sO(Wn-3i*_e4<
      zHfBcb#^AWvjX`hh#$dmgjUmFL8-p@tV}6L)n9qoa9nG+x@R?9#eG9xs7>+aXO>Tj|
      zb=y1Lt^elU9rCaH-koahT~*h;%WH<Y%s(hm`#3}G<76W4l4cm+Wjk}t?HpuoXO_90
      zndYLp?COOYy0w0rf9;G3$u*VI@718;wPY-=Cv&|X`rw~nC~ks0yqS!~W|)Y#LNVS3
      z^RWdg@pf2+caQ^Zg+Jn*a1-7|p8Iatf%m|ZxP_eLz3?vH2cP2o@I5{NKjDMq6dyo=
      zJJEsdI2m_i2|k94@d;dtPvUYatMMs37oW!U_$+S3=Wr91oAG6A#aHn@d<`GOH*puf
      zMI+v(uYLF>zJovGyTXa@iQf3W7=j;&G5DdFivJLEaKAViKN6?n$6_@e5EtM-#Z~x;
      zxB)*EE%=#u5Wf&R@k{YAmAmlY;tBjt{47v9gpip+mwkmz9!2HR!YK=cOU@RCJXNH~
      z2GK)?s9cRN%X39<W$0$Hp_S)ZhK_4LsrWflo=PFdFT~+IIgbL5gCJ2o@~1WpTW}w_
      zajJ<Y;33tfgM(i%THb&HDRTP&<Gp>!%qqj^O)Y3cF)2$l!{Dq9&@-!_R@Ds2s@ay+
      z9A`B<Ewl0jA`5hJ6gWkHNE6wRDUOC*F$l(qp=uFc6Io;tR5KUhq=?I0L>lB!bo2|y
      zs{D$~B6A+iV;_>@Z9`Y7Px^NC-HAOqaVxhde1tm>lEv^Cuam+L0~M|m3zrT_n1MZM
      zrh{MSniwcvaHu5hHc7?^HjptI!&;Y`O@i;%+3KE8U*rbQpdz^$!c-(RL!DdCK({%D
      z6#Zl>NYhieHS;#0$hd@9ILfVSYDjAT7AT~G42{dJr@@6S;N$XQH6;z2)fA7?q7JC2
      z@b>Mu1AC!ckI|=tE8@Z*F$!#g@<nkh^bzAAUyO%Iq5w+81ehZx!8|b;{9+0;h^cU{
      zm<AV!nQ*C?1?#EYKyz;u$18SCGMA5i&}7$b*q63}jm>S=)^P17#cB!7rc?p{;~17X
      z9gyEASlh(`ByV&P#TecVkd~W)SyUZCkvmBlef4j{0Tj1;F}Do|mr}OY0l^CT+JVE$
      z@^Cx)@=Cov`pWlpMjAsXO5iNUE*5}WEQ0=GF$@zY!x*s?#*1Z8D3-$%QK=R)MkQKB
      z(TJl+NgUFbgl#yQAQsYoo3$|%yNn@{B`skn=2-GjWhursYYD!XCEzg`cx<jpLv$?h
      zMV2#|605%H8@Xd6q?=ljf#bbOPtrG1inuTX3w^3PnPyE?v!Vl!GY97Gg%Libf~0^$
      z%ubGkGjIxp!oD^v%D@@)OVO}7L9vdaGGd)KkBa=fPM!r-=2u5Nt0$f{63@agK%7Q8
      zxrPK~E$QVMBrInV-_C*}s?QYXkl>sL3&r^)G#A1OaS_x~*&r@~v&Cg_p|~8b6<5HG
      zRNh48CTiO(u7oY(DtJ&_9i!vhqP*XRvlQ>Sjdwx77K`^11V7%kIPO((AVAnkNjU-4
      z9?0`?qNwt@lRR1*78mHPFwLWz=_ZyG*u0cHVp$u`*^ToG?EJByz~OQ11qbaC)$ATe
      z8!qzLWg9Nx)D%w^u+XFLfn<iF^3sPoRcb1vQguBz#0{iUH<C5^GxQXjz(cz+P;4fy
      z-3k*$3rrKYL$PRuGI1Bo7k9%FaSv3{n2@+nap6RBEm1Cn)rwKoOfEQ}R%K$6zLu%H
      zN+X+9uCgwj?BOxwt}00iCz5-t!T?#<X^^d~nS&&?8dq4#HrhJVO6tIs72X|qO5DMK
      zXp0GylOhKL{8G#Uu!In^cK1)9tytfIt4O?dU??sL5s#8oJw{UXcua=VKf2!jic(aF
      zPO}h&ES(x?BFf0^mlcbuhl#3R)(%`9kL(#j_8jyQFT{x0z$mhT%4(si^|fr(KxMU9
      zsZYl<j&P-Cs+FD{kNgcn{uZrt-(gmI4xW32h|W`pE{I3;5g|H2h(0+iq6?3hrRP~J
      zy(k{p*M#g_V(E9kgQXYaB^Ci&ECME*1dQy&J}H+%*ZmoIDcShTBX-Wnz(1O1%a^4%
      zag}MiuIZ%C%h9bk2zH5(E(P?G5(Y>ehDsZFr5$`!A0d<A80m_kd~%fX$rN0gluyR%
      zl%}N<T+?wO|04v8@|~n*93d?DZ71dOvPsA5x03BPO?z@~#C99r47^cwcHlhIe{C%F
      zk^j2M7q=eSlh%_7ZrL09%RaQ0elSvIL80sq)8s&yEeF9oIXEV6SrA>%0?T*JCO`FO
      z<WooF*UgsIJc;<v<2(KrKeZQ<ls`H<;;owEyj21}HI!yKX}L6Qrdl<3PmIjl6m?$S
      zsPoE>bzaSu^Xhb4%rV~jjh(DI1^N)HMi8q;5vz_NRvk-QKOS;rA>_-6wB^UaBsqmx
      zHWg;dX;4h{QaKYA%30u-$3sAtK&>o;)8rgDQ=S0l$Z|N3>KDlcaGhKP8)OA+p>nHS
      z62t0_D62c7uByW_(#UT!ErEHF1dU^)IURVL(%;+pp!DRjygg8m*N%4}<hJA8g1pjJ
      z(_szrXxs2Xc35toM<?g?P#f-8$S0>Ie2}{L;OE4Vo!vxbB{*db^pK}OhOC7_vJQsH
      zdKfKN(c0_bc-aJH^0b(kZBCT_IhLq6VFrmx2SM!tQ{aC53$1ey48ccm7p-B0b+*hg
      z+oQPKT%ER!983=)<W?**kAGCc3F34xQ%-}5_4HQ+tZaM~1{C=L+^+UbrKUWV|Bx?m
      z&i3Y-r@;7FS*w^3{d%0fhDX1iq_1rLx{SGJw(X@hBX>7GRiJg?GZkKs)=qgEaPhoZ
      z{2eI;e5I@vKcZo;7w8?hm4@l<l)3>IZ<)p0X0eY)zgO081GeR=gJM3h?vqDxL%%ls
      zu$^)^iU(}wnJ}L>A3V^C>nxhu@FPNVcEq(ZkX1(vWG2bO0rPtgWYEwE%<IcqDV2$Q
      z%_*}W+D(WYsYD>!O^9}nogu<^7DW115bY5dgS$Zdlpx~gG|rJ{mPsB*JN^q{tW%D4
      zwL-1O;dZs-H!Q2)7Z{!-kI|0*L9oR4`+{Uo@*Wt;tv}N26i>3Mcv6%tN#^$d^1=H6
      zPqHVa9e)u(BJN4@dJHC=0JQTl>B0+L=ytiCn-5;sZvzxqi*%WbbZMQ7beW5Ed0c9d
      zW`dc7*5UADAPHygZjgFzUYn4e;Vl-h6v`_=$aOGFUIpdyYFHqzC0lSERLS*FFK>WG
      zc_XYP2<K3Ff!qie%bQ`HY=#@<Ezm4C!yQz=Tiy!y$~)j8*$R)!J7JH!3!amA!z=Xt
      zhP(&%$$Q~|+zQ{x``}l3FG~3k+T?ajqviILJ26YP;{e%#KDi4E<X^Ce>a*ly_y_qo
      zmdht_k=%nT<<l6F&*9nfMO-JJ$Msa-C||-&@)f*YzKVCt*YRQbHa;oe!RO?=_^Nyl
      z-<9v<e)%DOBR>|pJRqF%6Okc56-Ud@gin4Uj*<To<K#Euc=^7VC;u%L$?rv_{86lu
      zKZw(*evbTEoUci7m6jxK&|Kms%@CWYyhTe<_G33>u*OI1hqzVP&4XF0ImltsE{a=3
      zlDZ^VM~Q<|xX6Ay1m(gI$z(tFQ*<($dTlr?S}TX+MG9XHP}F6%+3|LGNA#dJJ3a^7
      zMXE@n)caMqSEN%d3Ezbl6<9d&1Bz!juXN!zut;Qxo)m)XFkQH*mMk)0u;5GH6iW6?
      z$Sy$9OZ2wv^GdQ{oc5)32v0?BzdW}lcZj}mVULytN!n51q_Q(nOo>|16mgVwG@T;)
      zTVYR%$QA?4!vt|OjnxS2Kr!f$ShWOLDS6d~64oLAPgn;>Z%Sis0>zNHfL|M#=q6C)
      zz#fRdvd!HthQyt%Yhyvzj*SUGW3Oy8%m9>M>?I(?8&AljgoOAK6B2)StQ8R<(+)w1
      z+ae?n0tpBiz9o*3SqTXlk?;~*438(Iln5zHOo$k1UWoI%#_oi`h<J|7O-RV-C`Z<U
      z`LH05A}L$?@RIc5R?JCZof*lw_-(<6R!BCj<PI?={tQlA2%1&_c5MlyY9~S;?PNGw
      zTMj<0DrOCN(KY0WV=ZQmOT<j@#xrwe!ZnOPvKIkb9WgU_2xb;o%q#>eyoH4{hIPQr
      zcZQ|Dy<|dK!RgCw7ZU_@GS>v%NT5S8ft@=F+HD1PI;1L9qri@zogWg3w2&OfhZS9s
      ztRW<8j~L06BUs7Q?khQ)kerhkiI~<6$@B!W*CuAf%ie_v_ia`}RW6R7d_%&?e@Lv#
      z#qpbd6RqdZhuHKIOZrM9x2)u}HT6>Ac{325*v||_RoH1$RG7CLldV6W^~d$Goob<K
      zcCMK*L_Wt5WqBN%ZxdyEAjP9`Oiqp5L>xOI&ynZRD8%q+Td_=GMGkX$%`V`ifL{;+
      zPN4EkDmAkov+4U9tIp%^$mJMH<4Bc)Dhl<rb}>)IfmB(j!Z+JqN*+Br1%Iui(H=Wj
      zuP>uemm-`+t?+8@ZgFCP#-Xn`*@~KBH#PdL#!4%AhI^>7s(`7l?wo!DKYCFFh?Nln
      zY9a)j(v^TuI|&$UK{z!EsFa`wEtCyrG#u?4NqwuVzL1K`#c5Xf4sPmOZS}1+bAXsr
      z$&X<?$;2&Wp*F)9?RJ=?-3ha_yJ5C=FU-^KgN54tuvB{hPSGBM21-oUXxrfo?O`}e
      z>wulwqp(Zc4STi6;6?4P@TT@SysJF{2ec>QUsV5!@~$7Wz3^Y{83gTFG_>cihxT`L
      zYcJsd?PVOKy^db(4b0cx#If32I9_`fkJH}6S=#$}g7yI});`3g+COlmwjUd)zDoND
      z*JvN(Iobg{U;7L%)jr4TwJ-1{?Mu8_`vzOIZ*hzEZ+wW#9ol#Ju=XSF*8YpnYQHLZ
      zf0}O}@cD?m<MWgtv8%V^UU7zU_48mTg<aE0&lkcV3bv+`^q++%SYg*Lm>}#F{%Eil
      zMvF5EnofzRm;bLYNEhCupzJIaSON5)ac6^uZdE&nYF<@4mukmBk+9=vs?CA|6AGRH
      zBTXo{7;-EqmqI4ZIFB!mRPB7K?WQ2iE-v6x7XDW)mcCyNQUx(XawBhV`b3`9_`D<_
      z7h18sR+hK-;6LL$l&*nY*TJdVAzgRCQF;;#pzp!DD<(V|615RSB4H`jl9bJ}Lw~GN
      z{7I*zwM@NT0scoSCUwYf3i<qXshJ0r`OGv(%QLeeU5=&fZDO9=rjj5|r`pBEoG<aY
      zaZfS^9y>2VWihRg*4c0gr!_Wo+uZu*gMaN@)^IiudJkGwD)i9PpqHKwS$a<xs=Hx?
      zo(ae3y<vvl59U$($$EdaO!J6%X>^%Oqsv?xUFIScElXPD92G5V&<kd%XqjJ#O;gdb
      z4TeIVVuzh_`$1|`9b`~17gt!DRcsv*_ae)_ZZ9Q@9pcK09pdWkVjZ`{1*`f%TE<}7
      znV~T@zgN`eUn8!yxSUF}*dDL(=I#*JZ3JCzA;Y7W`r5^MVtO8#*gWejN_A5EpNRXK
      zTjLn5*=pLLER@dnSkDkQsl!4KN0WQ_F`w|7Z5ts&Zt<unGXhTQbj|A2UiX1R&m*ZC
      zPFs)<nfeHlsFAb<qaa@&4de7Ngy<NUs*i=a`Z%c8$HPi}B82rxaGE|j=0IglbW7HV
      zO=?SeK#jOrG!wQ=ST1fM21|06#bUDx%%{RwN}^aZQQQ`NYg%D>L^rYE*a`eN^jI&M
      z>6W<no9a!VJ{@#@29Z9KNT(=5kA0F9asKS`?^F>I@V{WOoaM=uv)r27Chp?h+=Ex~
      zOGNTsq|T=E;{E~F_p`vkAHbL9w`yzSdE3O6jWEVbVD2Y-U7AZi(nlfZzJ*+))~yR^
      zvmRn)%4-*Gf|5sB(uxDksqGuk!!t{L8R9Q(V%MZr$oKkWR-1T?oL7OyFg%(9=gYD!
      zYZFhF=K9*i-y*}a#4QJ3BEM%sduk&*6U9m?x!L;cM%d1NrCq$hhYxqfjM!w3cxfYC
      zN3E}xwn9(eHYh3UTtps)TnE35nR1Fb<+Y8lj9T8@E#4~iZ4>(@`Q&!7k4SrOtR~0m
      ztuWT-*4xDUe28P6y=35xWDPhL@8u)MX;Y@7O?<HMLjB-{+QAETbn9+y^TDTlSp>?W
      zr-!1)OMqJxDc^QVz^5Ek=%t|PW#H21zy!UVY{deYtuKTMeGx3z7ekG{1Xk-O!Fl>p
      zxL98XSL%MaMz4fTdKKKM2VkpS4cqk<@Cdd4RX+uu)NA1dJqT~;4e++!2p{Po_*!p*
      z|LUvZ7kw?-^)s-CeiruB&&H$lb1<8}2kGZwo_+z2&@aLQ{ZgEwUxHKh%W$TCIhN>G
      z;9PwjF4C{WW%^ZEqhF0-{aReDUx#N?dA@!<UZk(bOKHrt`i=M}eG@k8&Df&ff_Leg
      z@gDlVU%yRB^%nJLZ)?;gZYA5rFI{Jo8~TVGjer_RQAhU@E`|x})<eLR<QCf0^}{B}
      z79X?8NB$R{e3B`UPYMpO6UC`8U;I;iLTxk2W`4>h4d+tN&+0wIe2R7%ijK=52bZf8
      ziyG)JK2z@R&y?Vr@LJSO3_E2MpNlU*2+|joga3=QPW+J!1#8v(+{eV%8*m!Q<=5sD
      zQ!_7faM;Ol=C|J4%>ykvdNk{7J#s)lR?l<mJ7IsGIx!z>%fMrO)@ePz$9;`^@ff#_
      z3{DdDQM!;P-8NDwmcdIc8SIz7(LAcpu+HMe_ZA{X{~!Gp7?pvAYOqQp3-i>pERy1`
      z^Kg?j&jh#uj*1}pZP+)OqjNg3WLa1ez*fQIj~<Qm;Af9!_h=k%AEbD@%b8zPHJ*pj
      zq#AdUKe`)|^?S%C-3$Hn`^m090ABq;7*6FVeH%>Dx5G5O4NCMKut0BzMS2IEs6Rrg
      zvkQXyqtHa<YJE4HuRjJ?=#P`?JOS71Pr{$5ev`fzTJ*oc{rXeTu0IWr>(9bd`g8EC
      z{yeGBv+%P1BJ9)u4hQs?;S2p0_)32jzNPvP`s<X2y@5{sO;Y%`u)n?!2kY-(j{Yv@
      zQaxY)5RcLSfra{hoUR|hS-N?xH`f%LsQAw(m#f@9&Q}SfP;IEhKN$;!T?!JsN$6B}
      zSUQxz&r&M4zZ!O`Y|suUHK|)dY6Br{rkIlBH}AMy9nzt0Tck5CvD3eaNi$th$LEsC
      z)=h{@rpO*N17)hT9?OspnWq#<9WuQlcZcj55A=r^_mva{nj|yTN>TQby%SJ-3GlxH
      z0q~gA<`K1Qc71NmqqkF1262IkO@PyeVA!NWH_MzHMdyjG!6VI7nQOcnUaJS0J(_Ck
      VFS7}?0m*WJJerpv8HbRA{tux|!Vdrd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDocumentBuilder.class b/libjava/classpath/lib/gnu/xml/dom/DomDocumentBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41f2981c4b994a962b008d8416c392178ac8fbdc
      GIT binary patch
      literal 4375
      zcwUWH`*#~x5&o_$dtGT`$99~=#ZA(>5BZ^}r9i<h4SBfKMR5`<ag$J*uBDB=skE!^
      zu40?E6zBu`2+$WTv=j)1LK`40O;R=IaQKNI_@g*{_wH&V$&$?R@$TKZGvCa7GxwqY
      z{P&B00=Ng)HN*sVE!&mMTB(>RIHk-Xr*z24S4yVsAE;Qxg6V3A3*36nIB%>et+L^I
      zrt4*z)CA&IsazD;ops#h%<8@Q0Po1*If_lGY5107&j`edp1|!5YDI6OW;RFNp1_^J
      zNV9%6cT`PDrTZ=0@*fa5liI}j|Kqf+qwz&1dC)1C33Q=fM-p2Fx>DndH$h-fM>l%p
      zXqyfVy>hf&$4y8G^k*&GoUfFYO!v64R5Yobb@E1W(QqyK9SY<AibZDjWIGpx32(K$
      zd81@{Wg~CyUo~7)#c?``UD%^xx4@1zIq0|*w+ZOWrcdC5j(yfzrpMHHGjG9E#SLid
      z#q9zKyXMkM;!dPA+$AvD$xg>OCIWACPitRR^3GINc2lNk*vpxm?^^cq%y^yX$kI78
      z@6TwM5*WB4KHxY-)36hm#9kd4j1qV$kS!X;3MuHxhxzR4oDB^vk2Y3;-}Z7ZzQW|r
      zN8hZM<(-_f^TkRbV7C|d3G}U5fhcVRj1PFGKWqDzzrJ94PVv0VZFkUsvUncXOXD;f
      zs2B9!Zz^%x4ds%}Z|Zme`xu$mz|~zXxY|gSY|LIa3SzWV40JE!c3sDP$gm4VX>dzZ
      z)OC|8=2?L)rWB@EY9?AVy1BhA*Me-c<~7FcWMji^*d>y-xmxRdft}43;mk}DhjB#1
      zJhSMCsN*P(v5I-uG<@?0@M33%Ym!#JkFS@_nKoewbgP|9ARRieoXnhEuJ}YWjZ%BN
      z#Ozw$EX$BR4J_==dU|vFPe#)kP6`Y~*hiv?Bu?W|4c`^GZS(C;$M^6U>l^Tr&8Zk!
      z)h52x9-`*R_~Tg8U~qqHt)U~20wLLF2iAQvNLZGzH4%$)+d8Xb0bF`_r`ow~OIXZe
      zM-8{cW)-X;pPlVs1@^U$tJNmerUM@b+si?jP0O5f>z;3x=E%TstDR1+RWDK*+^8Wi
      z(Q=1u<9rt?I?jU!N3ZI*6AN<!_cX5PATOul=G!)G0_%86!}r6pqlKl8r|}F^T&_=X
      zTWWk`tP<;49Y4g6*agdtU9h8O&_uVic}~akc!8wQ=HLo<!8|v?n&Dub;eu(%gHSU6
      z6CFRrOPuyv*bJqbO~w~Byuxi(iEY!*oLI;v@G>sQ<Gd_KKiBaK8F<1en|1)C;q{sc
      zksh>)JQ3a`-xZ#ydkdDEz%TKRhPQbz*KwgZ((x<&Iw0++OGMXS-~0rOXnYM9<l{Fw
      z-p6m*%)Y~L>7_<Rn81vT`}Z<~ivnY*#<^B4D9Qdn#~*9;JX%>QTKTzxB=kcaf3CH1
      zO)m96((!Rkf7Z@B1wu*vzv}o~O}{4BaG9rY6vknrc-C=CW`XfUyOdnGUhQ7js!@5M
      zyQ*kRxVenH?^Ik~Hv1ZLr8vJ@h{R#B<fa;6$}hIy#yizssgFIpvvu)i+=Z?3GRM(Y
      zd6iRdUgY@J`Jd#Iea%r3F~s@aHgOGo6O&gkFfnxnLlfyM82*Iv7<TZvomjxPsrenE
      zWYNbHYY6k$N$Esjj}hDqsFCz5)JS@csgd;EMd_C?8hSp)896sH@fn7zxJ4j4IXG6u
      z9Wne1lUI?x6uD0*#Ra}|%H{UJFm#zfKknvF0l~j7cZR>W1N=$8Pi+GK)z0u=>j3{4
      z-)A;~|2n=A!k;EtvW(jz_`_3!)00))--R1x=~FrdVwfz)S%tnQu&XP_x3Hh63I0hx
      zF^&)5U?)F^TKhRigeT~y*v8L;Y>-Aj4`D9!lTrBr-SjhXIRXy)q^tn-Kp_Mac$mEw
      z7~jVZlXF|7u@It)Y#hxXl{%0u5y%2NCWhlmD~1zzL;)^wETbPK;7}E(WY*02Obn8S
      zsVdA^9e$AgQ_SmW4B(l%>_?;QN3jA+Wj{!so>18@sKwRndo^5eW0CLqbl^Kp$E6^I
      zbW;d}%H%o1KhF?eU<fbPt-Y}*jIl5bIeHQ<trMJ+0d=W>ycPlN3p+U}9WxR?wt?GM
      z>-shsIZG-RLIJOC1Qsg{PHsFGZ?MdTu{O`g52oWI@qeRlY9y{w{}87s{qc17NVk%9
      zSMj2h9=eW~Po=Nn)#;w8k)EsgS*Shr$aTDSYVeKE@zyoGJKZDI<otWo{oS-SHKNsY
      zr-=K9D*nV#TG1;7f2rb9W32^dc)8Bu?_u5#lXBp7()R|}=bISDTg>`x+<|xb<Ly0m
      z`1`c@0JA)Rat!D=K4MpWOhzuTOD?lKpWp&MrNuuKcaL%dBoh&L7dii_>X&!Ie(9$t
      t$!8aRT~K9=)6+59f5t^I%PzcvtK@fy2-omAM^CZ>Ql=57sw(!y{{W)+6vY4l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDocumentBuilderFactory.class b/libjava/classpath/lib/gnu/xml/dom/DomDocumentBuilderFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e082d19a9ddd773031267f8ca13de5493115959
      GIT binary patch
      literal 3710
      zcwUuO>30)V6#u=pG$9?f2()aqLXkG1jaoM>E~TVeoR->Pp%umH<TVT?Ght>ziu-~J
      z;=Uv9>lZ%=N2tg-;wL@FKg#3pO+vaPEPlzG-21!xz3;w%{{8(A0Jq|Y5b6XrXY4{^
      zI+snPom^t4liTT-g`Bkg9R(|!mhOOI`i^@vga(0*L&gzfIsoSl*ORW7sErnAuyXmV
      zz>T`&W)j67v!s3Z&>+cD2^hZR*u4UESx=yS9xUrsBlQ%q%ROlpTsh)8ru00^&IpJJ
      zfyV8YZTa^J)OU1_(R9C)mJ!rrnT9545v;%sAw&fdbB#<oj_>)dk*~HjDl-;YM>VX(
      zDuE_j76)z5H*8Z1^mKIU|5HzI7|rxjPqp=Q-=f@EqhT%939QUWze-A(&{d)nS;NjG
      zQohSTdpoa@$i)!YpkWajL%2~OUR|kjY5E;|%E}bnKrHFHjvK~J0_$w2jSgD#w0dn*
      zPQgw`(27kem+b<pYWX%6!p#C3uU$jsWrv0k!b)dM>5L1s%+;BkHf25tNvZ7;xS<A5
      zV3}^&a=4J2l<pp5GRwk5b;mTaV}@&~|7Bu>f6!uoZPBl*$=PD{u4Gr;`oBxePNcb2
      zH3Ok<Y@r1vIe6@(YYr5JBNa_v2=@qdR||~<=ls%M77Am#!1{x}pT8%OC>D#|#hz{z
      z-Ja3JXtKYHYMQVa_i4Bv4+tzZU1|7IPnA^CT1V<y-N;&B#`iX12X=<gFVK7ih=wEv
      z1T@wAPOjv$KwC#uhtCU#GxQKsVH-K=<qeL1gsrqo!^6;dFIe92Wkz4oaAj~6Of1GQ
      zMnc#vuwpiX9gdTghOOZdjIuxWj6RxVkLgu_UM0Op!=nneXrNC|C6&p&8unqF?t9W_
      zJhbYoEG0Xx?tOI%=TLS}9+IZdeh=d@fwi*KUtOkS`|2znwER+R%7Mo<JfULVXnBJf
      z+fllbC4v4Des2XH#*+eJ)5$4rkg!P&rV@_M3ip@UVK8egayoC==`Ip1|7e#hr=%<G
      za<(%X4l3am%S#5ZWPlp2fWkP$5}A&Xm7Yn}N+_!#r-U@i>#s1va0onNWUVyQQvx2=
      z;Ff`76-F37TXNd6&1@kpy9`xZ1wNvosKCoCZ{J{v8Pq)luAbJb&w2#Yct+hk&k7u<
      zD%*l<^?LTw6=y*$qsDxBj@DceMvz&ag4U~dQ4?Oqu@GM2JYNl`;Z?lG<d}w?n%AXU
      zYFyqm`fwtGZP=uYolxEW#&rv-<*O!CUB*>-P7y0!SimfcmhOW-pU}yIPt46VcVI0!
      zZ=PI)e+PJj71SlLx`vVowN^f2s%JUFg=}`ju{b?$<<^YgLo5s9Q-Qn6S7&hRcC)X#
      z_YLXHw|WrxUSg_bEKz!zbmc2=lL$V;=OLWt^|a6l4PW3(mR%k$80z^mZ>d(QpqAy=
      z8WtnMurhPPs=0&t4vM6lf@{hFOKrZ^D{i@9f8Zu+ujezc9?R9MfnUqjUglY+O!5p7
      z!S@q?m+;?@MAq@#9-G0^->_Vd#iOgwqvagd$9~27zp>;ZTF0YpGuU`3rYL`6^Eqt!
      z2}^Xvh|i$&(i!S%KsTSBTdAv?+G2sFK2is0FG>3kB8rEw2D`8cI+4S;4I}8qC=x`r
      z1wL=bE#!dcPI7yw^)~u^JMQ3@z@4~@+V3X6f&aEC??sj|D#^d-*_K7o-V3<59(w!&
      z`UHkzTcZ!g&SUTt7N5n?PiQ=g)On1NJVEmQfSd}*LnZP7l8tI|n&hc!B^Jp~Rg-O!
      z^VMXJ<iY~-MNE&Ylq%<$$fth^s-*H~V;z6@GP-@t-(JQ#&PVG6TJRV;c*e1xd3&50
      zdxHCYKbP|XX8K8t@f?Ri&Lr<=19|QRA88!p`8p&{VhX2ueu)ge<+Xp7=Q&t&YVcRN
      z21{@O&*6DydL>aW;KiUzxFZ+V0Ea2pz;i=<Yu5$5RL}X)E@IpG))~BhDWDy%$C*lK
      z(E#kQ1rJlThxK$Y5wuL8q-<V&DWf9zI*B&}^BeFM-ljQ$ckphxf$!w0cy(eneT{+K
      z(LnF&61SqaF3_eL>OH(s)^R@&1TSXYEU9>5PG&?!g(#~~U&^66p6}y>s>~droRVyh
      z|Ba@L_;7p%A76@o5<ibq?1WguIec|SWh$;RRk6G_nA&61^D3wGHLSvM(oV1=PR{YB
      zz2Z%K#hZ3|6A8TehSgo@O{zTU&6hn0v+ut8x!QrHfr0lpdhhf5gE?7jt{82uWbwN|
      H?)(1$h3~!#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDocumentConfiguration.class b/libjava/classpath/lib/gnu/xml/dom/DomDocumentConfiguration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d0038f9d0af40d2510d3e8e3716697ee8c633a4
      GIT binary patch
      literal 4078
      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
      JuRAu+{1?u|+UWoQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDocumentFragment.class b/libjava/classpath/lib/gnu/xml/dom/DomDocumentFragment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9bdd263ea240e5bafd8789ee390b6b653244dbd1
      GIT binary patch
      literal 575
      zcwT*x&rZTX5XQfSO0l5)6(P|W;srF=7>^hwkq{3J7Yz5MthJ`yO=>GXmYz&J_y9hX
      zaat;gM!f9o%zpFRZ)ZO~-`)Y7qNO9laNx+ueDXbWu6%Q-{GqZVU&wG2a3_vBG=|zQ
      z(OAuejvT|D3LJBBW~T=~TN!fau5`l-(sisg_w>6{2JMP~2C^s=p`*yK-<kZ|P_kSp
      z#*sf0!402zf}v_Dn|o6pxN)8qweZe;U}&#neLL+lY^a440Yhu;y$l6Mgz?kI+$VUw
      z)3xsTBR4%R9di-}u5|i&G|0>0JZ<XTu4Z9OR20}^<i^IDf0#IlVQ7QV9LNv-Q3e`~
      zBTv~TWdo{bDCUpKh2vKkFNtD{RwJojl6HV?+BKFslu!neT?JL5R8T`brS&K>irMPU
      V^9qzpO4kXbxI9iF47-V{`2}*}hMoWb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomElement.class b/libjava/classpath/lib/gnu/xml/dom/DomElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0800405b631a84d923ebdc3b33729434c0361c4e
      GIT binary patch
      literal 8101
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEntity.class b/libjava/classpath/lib/gnu/xml/dom/DomEntity.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..554b701c682851e166e7c909f9064a637f8a81f8
      GIT binary patch
      literal 1220
      zcwVhiNpI6Y7=4pCOH*fQXi~yfN?EeC7UEdc1GGqyLJm!dxH`_rHQ3|GacFw!i8K5R
      zt{_2?IB-ScM<KqMSSbprR3Q%IdGlu8x4h3ke|`H7;313@Vhkl)jE#xs8Ux=m_Iz(&
      zgid&pg0|pl67oQ#kYp(Ofo&W=veea7!jKkzXoik2=)V2Rd}A7}DQu$~29B_I7?O`2
      z;e@*kgKB#&^qy~xJubqXzjgn{)OrlsQ-8oSh$E|G2|0#twfmnF*Lq7}DCkHbogq}z
      zaRsXkx@W%T2izR^!X;<oRasBI?Fil(dwm`pnthi`n|#Z3duHIsb3|(4kuzdgn=f^0
      zGx?bCj|C4HDi=0GL4@g1tn_f)cO9!WAUHZ1h1`=cZ}YGd&8nl`tyXJ`CRU(_EioL2
      z`@-@E#4+TEdg;06M0QH_cra3<&(QgaIpQx4TGEkwI__hgVVUS|RDtxYs-uEy8Pw5C
      zp+W6l(2I^uDbIBMabWRhj&vwDb7NZ;jSY$yr<I@;lcS*jI|+@3E-P53(<z;kw3q9J
      zWTUxN(Y`{jR}x>4ub*M%6Wzp6qHmE@K%X=gR$vo%gfcO^Q#ICb6;OzZr`Qr*r+hJm
      zZV-wqbd!*#kgO&_v2I~Ks>PsPDiih3$bX!rPAYP!(&^I&Q96d(GjTH#$Jo4b@`o}u
      zQ*K;BdAd+}=Mu`d3zeHQ<#RO<phPa;Z8v@(OFch0L+t~!#(A)edi0JOey;+Sr=loe
      O0tMx#EMiM(wtoYPWb>i`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEntityReference.class b/libjava/classpath/lib/gnu/xml/dom/DomEntityReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebeb3f8a231f4ffb570e0b755f494db05fe9ee4b
      GIT binary patch
      literal 1169
      zcwTi=NpI6Y7=4q?Y2r3?fuvhVfVSDNDP@y_I6y(Fl;)6>+#P2KhS;tgy9)?$;Rh9o
      zMd5(BA@QRS-#94*r#X0LzU{ql^RM6Ez603C0|_C9Y}fMC6SJpwY*XE}&8L=YxTg*N
      zf;-&Oxr7MAV!)?vcgPT9Shbz5dc33ihCn1k#L`T<7HY4wBTemTR#$Dhj$w7H46%oX
      zWw?(RltL|lzH95A$t|}!8CPr(>Jws5AdFcVGnivoFEpn@6k9W3xFkbDoFP>+EME7_
      zHg^uRcF)hv*0o+sa||Jmlo9u((Pzj7Q3C~16;b=x;ts>|)C3rkUG9p8)%|8H6^a+N
      zBSB7&wLX8|*b@n_%D9Xx39RF)ge*gP3cQRQ^22CSxu=K3utp5yV>$OdAZs;=>)4QR
      zgCR4`N5&?$hH3i+8@xXWDvIfds`j-*0xhB}p%efe_mNS-O$J%?La6s#ZZd2ZE*SCu
      zJQQA)pwgr!S1kzz+cK7sVURlK^{-5?p4N{0ku-<eB%YW<)Ak&lKQqK0q$g*th<uT!
      z5ryfC(iak|MgLP65n9ItX_6#0NDk92m*VBGbXGni^^xQd=INaCZ5m=|ledlql5#_T
      zEMf`pU$g;)CSHO;M5d7$;j45DTeS2Esk6VpF<<%G2b6~nBfxplrcv+*@)l$Y1+RR;
      zTCMyOQFc}y;2MJf9H0=w4=DQ;-%uIg7Q;W5EF}bZl++QioKQJ$s3mW)fp^%#`>}GA
      Z5qq3=>Na+WKaW}5!CgXPxaT9@{{t-v5RL!<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8932f652b7f52edb0d8038c3406b5dcefbac782
      GIT binary patch
      literal 1909
      zcwUWE+j1L45ItjEEsZZyWG9kiuwxlpW8x*4TP_3~Cm}JiFp&|Iiw9Qnmb}zz<yx&A
      z@=rWK6<bg|@Bw@SKfn`Dd7_G<d$h6?c^^_LP51QlneNlwvw!~g`yT*q;hPku1lHSb
      z-}s^97$@D1@vz%@bZ)tRnUsURZ~AuE)rJ(}0);5o6p{ifU9W9C-)ZR+i_Jab6}&*!
      zvmDd6PHNo~OCVnzN3iX#!1S4Coi|LUuN}TO&rQQI-L_HpJ=<-QL)x{Thv#Y2_r03g
      zAvMG5-YI#~M$`pn+m`=qJX&G15*07LM{*hhS0qwM3(Qq**Q)h9P0Kqno6aE5mgzK1
      z&*pt-jQgi{Phg|^TBV~vk`g)`apQC@vEw|JB&Ly}T9JP(q{{X;B(g*MZpfSMs}hp!
      zGogK0gxF@K&gbhAGnf^~*{<zR^y9nD%Q+k$UoO*Suh+5ED-BMdBB3~ejGl?ZQ?sY@
      zep})u=N<Q7oN0q0@eXbYq?-LEm6(bvj@iB=@gCbVEz@mLN9ins5Aab69}3KmMSaop
      zt&YTP+#$BDzUNW6BfDcA*p9=!qKfSEh4&;r#(f$!pAPH3**T+7`xKZn+4b7gD+={M
      zXQ8(<qsV$cJ2u7x|BIp3+w5>e2fN{v4(=Kas@^ABj%9i}IbE%NiO*3LNcyHn9i?Yg
      zjd)kOe@EIw4^2(t3r1x_+Jli#-s7GV(}jpWR~i|_P?tEwmsH$(x9_#A$2QOQ%y5pk
      z8AbG-x~}EzIcBfNZJD2(Zu*W80s1HC2YyDhPVpFPnGK~3C5<D=G;)~3JfU*5Ge`=O
      z3H1x|KWVoDtx0YC8w<3`fddwCm1GXrP>cYVCc*zig0Dw{mnXq5Bf)P*f>$QN|3-pu
      zU@Zb%{_$0?5Ru@wun~g)qJmG8yrW_PHq};uEp<J>wptGGuKEq{2e_+>@c?;MOav&Y
      zVlu$8Dy9OgsD*TZ^3N9$x2Z)C^GJvsy~sS~#1#}o0ZU>LtKup)#5LR$MeK+YZi^+I
      z*|&q}VP>p-LhTh=`;-P^N^85M#kBT-8Xni$9{DA-_K>us)*g|T(%NGh4j!M+@FZl~
      zByYaAtOS#!<tZ<DUJjH};+QDWpNN-6oJxGNSRqcU#OVfcS|d(ntcmrp%9g|Y1;2tY
      x-hH}(vrnq6U-4{oV}`9l(T!XBhQ)!`MFo=lJ)=9OaHKI`p`lUS<QTq2@qhdAa1#Ik
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..860ab7772a7011d4bf8e444b8585290f26211b7b
      GIT binary patch
      literal 1038
      zcwU84U2oE07(EXZDy%qR;67w-%&Aaxjq%2alFZGI8sg2A3+@WMsWqjTwlGcnNnU8;
      zvcwC2fIrIkyf58mCJAZU_dH+c={fE1KR<r~cz`_}DZ-W;Osr2M-x`ib*5P>cd@6!?
      zm%%$*K^+>QJg-Sdmas7nUF-PaKvjfHM^-XP(59X^CTw^9ZIZdj+V4kk=nUd6M=e5j
      zC}PL+31oBd#0$K*O{mm6ADpRU`A*<kM{(!{ZmZE{-h=T_<dMd*fh8D(<&GDKH<M9c
      zgm0a`F9@a1c;NV5C-h{TB(?ax7ZGZm1)5v3_47wX^WO^)bXTbNChXK3i?roHST~^K
      z3L(dXhl$X1y<yARrhy#tge9r@+_^_{l=pgzcG-=tbfsos2e){gq)Z4`=MqXYb*Xee
      zbP2}537$>*Y?TVBM<{S=AbjU6r^~Gh<z`<@;r!8f5)Q-*PnujfGjvZbWL7%}M0nsk
      zQ6$*>{DsY^vHmpQ8Kn4Pi}=4xNjvz|IM3gfp9PK{s}3M*HcxT&yXw0pW3Gc*C^Ei2
      z>p%%BfI?+dxL)MSYQkgj$rH$!Kd|=g63tUZW6T;7nj$uEW6p5(>!soL+~J$pN`}9%
      zqAZ_fvsv9d#kRSwonXzZWKK}M&{N_r&`ap_3I(#ULa!BXdp3Knt&ClzO`_Ylqm-9%
      emr+`wI(w-p)L=KIzoy#J#63RqN=O>_k^2i;D$q*+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEvent.class b/libjava/classpath/lib/gnu/xml/dom/DomEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2f853f54ac0ac3f22f470477982a4c3c11dc204
      GIT binary patch
      literal 2406
      zcwU87TW=dx5dJoCeaj|I-84;0+PXKI*lA2}6q-_qoeN2w3$c@ulmcsK<7{fLt@S!I
      zf(Ksu2jHm^h!>!M%1y#exg!t~st^+V7hVzHIo{a8-H1re%$b?*n>ll4?1%q+^8<i0
      zDEiQ%petuqVz&zU*mAKD8z~k>*LBnO!K0vaO<UJudCknlW-@DfmR7HVo}!hDy>>1u
      z<8={Sj!BFHkG)aS6@-!vV9K@(GdHBbYim|cXHYn~6G2)=Ft#mQu`C*<i_4@7%9z<z
      zt;~axQsB!}GMT(y=4pxUtY&8Qyhe+HfNd1?l&uv?bWXCOvR$MaST2s}D_SMb{66ML
      z%R0OI`rRt^B$ze;1qW34;8(CaX_)$SrI69BbS+INS<Gtr1<f+V*)e+TRf9EkC*2xK
      z-hfE#G~pOi|4$o41xHl`5adhHkf`;f<`vEpD%ymzo#)YQEo$xSPYHjY3Ki{a5dHD3
      zj?uX!oC7L4u)79M)Eg)~F%_M{ql$7H-6U{QxX-EBgAkh{Iy-9>OIl8|jiM<d7DU8F
      z6?+9iN6C`cayl<umsE5KSHLh0+ZmeueUCoE(o+9I5LfV=56}K*4pSRtTQ8^>#u){B
      zoG}qqP8s>U=)O;k;INfr{hW*1wdJwBF(&fty)0_DqF|p(ev!Qu&#M^41qFV)ShM?Z
      zmG9de9j~mc=$0Q-%zj;7DjdWlW(0anXfLRk1LxMOl}fs~%;vkLe8g1a9r9zI8!-@0
      z49}+L=O(7d{kSF#!|8B(cy4?&?Z+Ztc_190kH?cT;5x5A5biTfEo&R=dcPkx*z|$0
      zvp9adA_LfxaIGzVXk3^ZqS~yA33T&0GnEx?`%YysW2#uOvig`IhQEDl&<904*(Xd>
      zw-R}+T-M7ztSLC@wiYL-OjT?-LC!pMHk*7XC^)hcdVa#e1sew(<*c>xvy1BkvBVI6
      zTqP;n9LepFl8Yc^rz1JvQtoxmT~dm<--m9p?&m2+sZj2Ue1)DbsI=f9|9hoz439~G
      z3_vdqNz%hO;sOpggJ)d9$6Ue3o572&;FEaV1$^pW6FB1v?nlH09Bl^QbOoPw1rIiZ
      zZCCIU{EgZIx75LBKWzfP;R0509v2+&c?ax`c&d2v%Q`wp3A{zj+uInt_4H4<Ftk?j
      zbTh*{WO&zwLBS9%I}EotjvmTh!Eh=Pt)eH=TSYW-sEWbJ13Xj3*#_@Hascm>_XFnm
      zkmGlkL--MMd@S=sYFthpp~X4kiqsN}ZjssuHL(Qz7ILZ>qeu9Hkxh)tA{se67z^AZ
      z^JiR?&t;zOT68^6P_B}A$BFtP{7syQy8SIC7emQSOedpaC+=hRni#TA=({Mp0h!?d
      zKganw9Sx;L%v~Igh8AjCS2XluO$$atOAbTy4nl&+`<}4A<X8vqh||mB6b-#9#eHNN
      z>k#KQ1Dh=Q0r&W8&eC@*<9l4fkNolYiOu;LSMdv`@hj%>8<z2qBm6ro{DBSpi8t}r
      jwieuWS`ftRjMRCV7OcozIjmBKs2Q~0<n{8DCIbHgKv}{L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomExtern.class b/libjava/classpath/lib/gnu/xml/dom/DomExtern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11ed42943405084a88bdb5b275e69eb4b333b38d
      GIT binary patch
      literal 955
      zcwUWCO>fgc5PjR&`KoD}q@@j|KnsV)0xZr&y-<*lqEK*^12@N6rLOFC>)55e^MgPl
      zLgK&=;71{5)=>_|pdRdbGk$O8?W}+O{_zvQ3p}Y|MPPHPGUqx9ok<)y$8q%fI+cm4
      z!4T*cJ`LlE6fl$*QRocLy(`ZNJvDXQGzrx7P@sO1jl;lyJ0Uo`nWZvfSbZ6&AUzUr
      z58Oea=W*<3kyPp7-|cQw>5s_JEArJu1$QhouqLqkpE3PW0|M(7OjH?lEYxzeVWEzy
      zKx+^vIn1K5OisOVsE-=^UO4iSfb&JsNY8?qz*ccmzCYfDB3q|77sM5=fEj;MG7;$g
      z)0)8QRHp87Z5s#uvK=$&WVvR}_+EzkQY^}}**tB!ahCY<O~8iNmgb&wS7VRPT%jMK
      zf(|c(P={BcV_ip+o(7u4TP5_Fm|Weqcb<NSWj~vvW%rCZ+IG*Jqx+S<tzeVhceQdz
      z?02L*K^yO}g%4B*j`ALqZvz_jaE~T1+QEJ5z=-`+G-5}FM(oL?Ub}d(aO6;ArD=ad
      u_sep8RTn?%aaK-PjBDdzskmJf`=#PXrQ%jm9F~grZYRDh5ew{V*5f}pS+2AI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomImpl.class b/libjava/classpath/lib/gnu/xml/dom/DomImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62eabbb4f716ca5bfcbf4b8972e0e02eb00ddab0
      GIT binary patch
      literal 3939
      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
      U)!M&8`)^m<M||zS<7j>Ne{>?Yt^fc4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomIterator.class b/libjava/classpath/lib/gnu/xml/dom/DomIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ca7fa2a97951301c36a514200f2e2eabe245477
      GIT binary patch
      literal 4187
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNSResolverContext.class b/libjava/classpath/lib/gnu/xml/dom/DomNSResolverContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f76bc655d48d68796d02e1a093559aeffd1eab0
      GIT binary patch
      literal 1251
      zcwUW?ZEw<06vzL!AO%_n)2W+}>_NxFT%#r$otZDtWlNAP;PByHfh%;D-li1fL-|4z
      z&7vmy-VbFwEwwP1!8C2pJ?H#?_ndp~uixK(0Jwuq84^RLW%aZ{$JCmlqdgU!a<#&{
      z!t8UWC@hx`Tp3Y@^pW1zHB+}*+J60rH^>`fSo6FCUv23f-nI1x*UEpbP#<SF=j(f}
      zVQPCWcXU@c3~?veiD9)QoR;?fUc)bAVC!yMdv!qHQ8`--vB!pGxZ4c3vj35vt1(22
      zqREqpAf-Y<njw<S)e@kBR3wmONR<qWmwTN$cV6gqlT)N58oF829m87(&Zyfqx(q9&
      zS*Jx+rdr$$58<$~=a)M=zpCpPR%<Ia?NV?VS7lsbSf1IPifdS;Vof35_3V?|#cYSa
      zH3nWQQ+qHZsJw$9LA6c@l`zDq+3dfoJ~2pQ%5A+{rtbaoeM84(`HO|@c$dSA<Bieb
      z9nt49@(k;v_@UM9*|u<8-rTo6v>~i#g9f)fBZ(YR49TkKISsyJctcq_Z2+4d5E&YA
      z1QO0bCM)gDn(n+zuL6}kXUW>3xJ3VC{up!l!WYbcqLqa6^qnI$@BmRfB<&+C(CXqa
      z8yCoeZ+TQk&m}Ad%qIa;$$!Rt;VYITd<>y6N&>dWU`hy6a2+>%SSEzsr@xmau}Ma8
      zj3I>#3CjUv1*?;c{3K&{24f931IC8GrdZ^|1mn5SP>0cgLDwDYlgg<MDyJ&5G^(NU
      bE_uCJ{5x{5k5TwJp?^81kB9mVKkN1%v%vZv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class b/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ff3c7a8dbe0b3cb1b6a0afe70984d769b0bbe12
      GIT binary patch
      literal 5204
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e2c1a29b51fec7804b266dd213f2936d6a534927
      GIT binary patch
      literal 459
      zcwUW<%TB^T6o&r+YOz)kP;`ljMs#5{CT=ip5EGMz4Tk+t#yX~*A-y0zmMaq%K7d<&
      z9^;wH#^}PC%(;H&&z!f<msbEM*s@V#*b7ze&Ev?M=-9i|@jy?+F8TgUsH{H^#59vy
      z*{Cq==p^(WPJ;p!rk{F0F@~jcsbqG+Q0^Rz7%DxIt74g<m8*0r0(mRNq+JZRv&X4$
      zP{xW23oap@p?}Y3+>5vhy<wI}6?TnE&6i3H@^~zg8$ON%L&Mhrk48L^CSMdQ*_})o
      z_WggY)MapnI!^*|CC#+EAdk!!D7{unB)y2IsYq>XGBp2?WvKrW#xZDpn8WB<SR!vz
      wbVgNEsUDUa)n_<Q6qm3{)*%n;9k%s>HOk#@4mGS7OueuTGz*r|-9QW5UzM?OTL1t6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71bf96f416781c44d2ef50b0023617b2e6a3d07e
      GIT binary patch
      literal 1009
      zcwU84O>fgc6r4@6Nt>EB{Yn}_A(Q~I6KX0hh$1clq)MSk6y?yHldKX~j$Lf0wBqAX
      z;KHxq)Kf1=BuE?(XMPmo?Z!|-E7g{FXZNjUX6O0muW#Q0tYIyM7{f}(?VI~O$838&
      z^P$(<^xC3Sw}Vi)!ha@Op5IO(!I0Up_AJw}+>ZIQxg%O3Ln1ub6%2FrlhRh`+iqu_
      zVZw<hNTKfe9rNX#mXZ*A!VLrSk(~a>(D`&f5H)Kz?EA#Xwi%N5ZPyMTFx)Ml=0Bft
      zTW^rT8eJxhIA%0VA;S<a>y0$#u#m$1*p)`S8WxcyY1<8j?=mcu_0!suU|7<?k(B77
      zh7=|wx};$eX@;4)?TXEQuPOZJR?|@dc`eInSiUXS(Pkp-+5tnUet!NGPg1<-TMnIH
      z{5OqJBi40_i+SUXh)Q&2U$m$lT`TCyG*ku~G80|H4cwGz=oJ5!*Y{iEu`R7>k&RVJ
      zN6QVDtkfJU2t<&A$uNJ0XNKu<*SJlg#OY6yAEgEPP*!TDq@v0cG&*;IkcSu&H0O-3
      zm^Lay%nk@w2gn=C0~9_}DTZYlvqT4efCPU9jlae$e}gQ4i_26qMijV$q7up}X{L}A
      zk0~VO<FtDfE0Op<RiquG@&oLN@df!ReMcw|ED$VwLWW?DVD1P!aU4JX&(9$^e}@cz
      zj{^Syov`#%9I^iOW8fM}q{(re-XbwD*@no)J++3C$`4VNibEKOCtB(*{G;O5MrR}L
      T7%FP4;ug(msxhom6PA7h%m>bF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6be5e27c4046fc03c9e0cbb3fac0f706d96ece40
      GIT binary patch
      literal 3023
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b1006cefff48bdfe22ac53fcdbf0973d363d0edb
      GIT binary patch
      literal 1025
      zcwU84%Wl(95Ir|>;v~2wBz*)5C6oYpv~?fsT3}Ix6v=8AL6O)XImsotm19ee(^h;F
      z3y^3lfy5Tk1+ZYl&md+T)1qPtS+?iSoH=vm*k`{!d;+kJhdL4hi+y)&9t|C{=MBxL
      z-f-9J$x3Tr_q;<(jRGB-Kz`pouuaEy`{rI}Uv?>*7MSt;zInLW4LiAw@d6n~9Yo=h
      z6-RDS{SSOgARP?UsIn$78;54VwsKYQSYW#vi?A-#wE|zc{g_OxEuifXItziT2C~TI
      zki<0uS5Od0R%>k?GXmxR3C^L2Iqou;sboM$h8Qj7%H8p>BmL)g$B_aB%j?=s+x8Wo
      zqol^G(vVnNE<C556YhvP{@Fty<uEbX{7SjDqh3o^v}E8e?~(4w!0rxck_zOIEUh+c
      z*5%K%#T^d}RB(^zl-rX>0-`C9?aRQDZa)}=jx-s!VxW$OK(6JD{jPkbcn>4eyvq9M
      z*mPa#?>P2oBu6?n1d1^WGROIfSR?n6bf=J@i%bOadHyW)Yie|p!Bm~1=q1u&rc`en
      zW4eBdeElPeFB;1$r<gs){5z^8aGjph#0c#SDeW_|+85lQT$ytyVF5RRFuH|B!gF++
      zBGynwA)57sDuUiq_4k-R!JWE@8SoXl_6>&iJse<68lnM$U5&^dg{uKsCR;ec{kP{t
      zX>QVfgamUF(7D1as;E(2u<;SqMtBA?6J5)1E;0T5OG+kUN?<j7n&dUeS7unpCi1@l
      Dh)2#K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode.class b/libjava/classpath/lib/gnu/xml/dom/DomNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61378095b2b5ee433c85e6d4563ab2059ef3148e
      GIT binary patch
      literal 22734
      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�>3uappgqdJhh8G-
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNodeIterator.class b/libjava/classpath/lib/gnu/xml/dom/DomNodeIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3875450ae4b04cc447321c6725df0a436d2d4961
      GIT binary patch
      literal 4168
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNotation.class b/libjava/classpath/lib/gnu/xml/dom/DomNotation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0eebc788ca5cfd4155601423eb4680ce7482a8d6
      GIT binary patch
      literal 856
      zcwVhiO>fgc5PjP?N$a?6Xq%SsRSJ~431A_(6>)%qRLS%ZLurp2XXU!syU4L=`-`}O
      zgo?z0D-u5nF}rmtlyKmHEPLO4ym>R8{rT(LcK{FJ)-lDf63N0lNfU3NQg2(OyDH~-
      ztYjS)Lu)Mf;v^Rtg=!2-DvP}1N1+LgNDQ?nv5fPl3_aH$BX6s)NQKO|{3HH>dkL43
      z7vxziqkr;j?lD-;)j-&&py8knhaqr-|1M*LVa~xknhZ|L--({!10|DFhKj4ZnD=8T
      zc8jzxve&$y2!;h;g*@5gS*-2SY2}CUkfA-^;OJ*<F;vyD6xm;LE{32olBY&uqE&|J
      z_eDR6!<_-a;ps3JsfKnW@@IS~-t=~8PwwU<Q;&GV!78pXG$=bLxijQnbI`)FjoVnS
      z<Idy-8MWr%s;1k4DzZ?#jP=OPKgN5YRk21DEA&?B%1yzdtxc0PL)H;$#@p;Po$kH+
      zZR;!S&KYJuo6Jk}og*gj77gsvHV&{r*5h*y7O?~vM9oq~jaG1(m>RVSRSdd9$f7v)
      zTI#-{Q)jhE?7H9mf!WR%+&sgrkFdI*F2rq<)F-*n2rr+LO5ti*n$dIDa5jDetvJY8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class b/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63a6addf9d213efcf34d7141a64974f9c242ef38
      GIT binary patch
      literal 2725
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomProcessingInstruction.class b/libjava/classpath/lib/gnu/xml/dom/DomProcessingInstruction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ae20a37502c12be251cf251b12412849ebb69a5
      GIT binary patch
      literal 1255
      zcwUWDO>fgc5Ph33H?B*Q^dpoKXrL6wX=@>lMHLbO2`PlqR6)SWbxbgdZR8Icu5d&M
      zuKWv-Xe)sPcYYLNc4I=7I#LxyyF2sVo7p$(-+#XU1aJeogcQSS&yDnf)7QJ6qc=Qf
      z$M;Mt2yC}^-wi@PGDF*QC1e=p#*i(qYe~p4R6W0^AKWxWB9YIK3k|<#g$$+UOXIbn
      z_YJqFw?m(BTMU`55gG)#WxIB`&2U?7jumToX5?6IxOJL-I#TP9<Q-~HMjGc7$e3lQ
      zsO^cOwN4%kMFkS3_-;-?9#agnP206vk+X04d&Yj>;_Z8;(eD_(&ChW#6TYwmhP841
      zL@(&NS?|ELe1@fo4Kd`&t-aW@d9{}0+B7Bk5L$*qO-OWV2pg3+-ZA<SPXzxG3u=;A
      zGF|wJf~!~|YH)(e6W0{1;W~qC2fLQh_1yj&hO}CHDxt=(Jl_Aq2X_ai^@`t9hKf4(
      zew_?b+k7T++lzeDx@U9KDw7P_<UOKF#nbf9B1J!%3%%JCp9-z?97%VYvI?D^6D~t*
      zNh?V8W6WslhbU+phbVm&oOzxTh#g`+BF-*~Xk&pQ+K`DwlmW3jk0sLOJ6<y-cD!nu
      zI2W)S*VJj{sI2x4g)gHrIT3s&q?I8cmM-Gr*~nHRxspgOjg#F(@};wp2Z`j%Sc%Eo
      zViJVb>PM*l_f{6sx5RlT6c&f5k*7J~AAMf@iN#uv$xn_dYe!i9jF}%$pA@8HXuq_2
      c!r<Q1Fg}pLM-u&XqDXmEq#PGv*bv;!zq1<Zwg3PC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomText.class b/libjava/classpath/lib/gnu/xml/dom/DomText.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd371db59cbdcdafef723a36a516ed7e5fdd04e9
      GIT binary patch
      literal 3741
      zcwUuO`*Ryt75=WZ^4jtyO&mLoYo~RZkjk<g7ZUoA(?I-4qehlXWNh-HS<5SXi?l1G
      zmE%yL(3WSzBebMV2u&#z(>5MbCZo(ypbS$?rwjuf7zTcXpJ4cfzku@HyNY7Vatq_J
      z_TIDSo^!tMeD_Fi{pY8@0Pub+>Sz$yG~<-|=X2TqX*btD?B>R;c~6HX&{gwdXx1#4
      zY0oMQo1UqoQDB2xnCU;YJFPtAIf2H#wqtwy1a^fJHRp%jbSY;!-az7EbI$C~n$Apr
      z$}8B;%s|hCfHve#TOkC{VnBx>&>v3ypCN8a*p8Jf<)*B{xH*-z1X>er+RRRv1zYYb
      zM$MbGivsPn(ItWbfuMWJu?hkmYi6g<oS7}D_^S#L=w2K8v7vapXF{U9S)$w`u<cz?
      z`rZP8sZvIu;n)zDZiY({=PGMC0!<EC8$X?AEg~h*GGlp3T9RgtmbP%u>iU|no%L_`
      zRJ)ps`K;~vt!od*dlI!B9SA|-4g+EI2!!n7VauF$o$P7m5BD6^(JRndTmIPS$b8z$
      zd$#L@5J8_rx{I`jQxdwsod(6XO~9xWJ0ZCYVK+XgV-HnTTe5+>aJQ_rG*wgvfz4qu
      zvl^QWa<6ocRp8X|5ZG(rKJ2?emQNq?q?-Bm!v;2@HH1M7>mcJduhAU?BRC+iK3%X(
      z&yrlpSOPo4b;MbZ*FhXK5XS>lkso7dc>nnRl$DmmsSETTahCfJ$kG!AMv)}bj^EH)
      zVaWoO<AVl1A{`s^W`R&bNa3S8##avmdBVU1CfP09DOv?@(8{<4!n`NEq81f;wWVjZ
      zNhUjD;3$r<17<#NInzV4c6M4Z_rC=YIAP%9c!)(6mq|$Wyxw5YVG3-&@gnX_Tk~Tj
      zZ!9zDmYnHgRjnk1*NY+LjPS?VR0VF(%y@Drw65-?z%6!hBx^}g47rZS$K<T-S;f4W
      zwq%=a0}ta9ygt+$)#E9-b%j?#yDlp!#sM8UYJ9cu<Wb3=YoHt3LdfEi1`6OXYh~<8
      z4KhO9$+!Z0>Pl!u*zw_-Q`AQZr*zB--1_dG2IkR5W^&{|+k{UE=-VGunv~b@(*{0+
      z&(dZqwlixqCoX+IXW;X4AZRq^q~UP`Pv8rrpEGX8n^l*SBTt{c&fb<fGgH1{Gc;Ra
      z?|v_w{`{Gob+hX7%4>1Pz}MupXv!C?IomB2o5}SV`SDEyx8gP(-(p*8K@65M8LJ@M
      za%Tu<@ohQo9+HO=a{H`-^SD4LzSISxb(>N@=zxrH(ZF{lJ58ROs*Jxt!6Ko7v^OuQ
      zSmP`wX~D{8DZ(m9YOpHyqK+T%^a>5GnA|D+(7=MarUfhK&RLafs;7OC%ib18a(Rzm
      z2I43~r`%E@Z5^=XcdRk&f1mD>#bF!C4e&q6-yO}+NKg}Z&D=e}U4YM~NMmpG8bYsf
      z-GFuc4DksJ(RUc@x$5@)a1%BFYQ-_lC~~z4ZS<CL+beNRG^%VZGVa!P?HV@MhCaw=
      zT!r4_yH-QDR71C*1Ggye7IdOZmC%B%TxneKXG$gAIQN=@(HZTl10zY_F_kOg`z?b(
      zVO3zrtPNE_0hM7(B}0~g8u>J2hIXwzSO-yxwT-JR`+VPO7NeTQsAe$~wt!l7RuCBq
      zTacdJs%bKFAD{AMp!N1E)r5`8bV4OF{MVIa0z2?N|ERc)R$0jDNEtiNW8G_r9NC~>
      zL-chT`bVRI&N4objPmoIm`2k;<MY@Uxrz^UXl3k=1sAaX`tJT%kjq0$Xyaq7Lv6}9
      zJh^~%zM+hdO-B04INlMwGAR>jG7k&c2nQ}sRtn$8GJzQ~Yx7MGoB4Jt-|yfYjlx5W
      zQ*8u~Ai?o<f@5h0kCXc+=<y}w@f8L5AWsuimEF^rB5NECID)j2;#M5SwCdpw9D>D_
      zhP$~NMTYE-PzC-<Fn&*k=T~`7c4JK9SwdVQFJtzX$R>K15bKrZGMqB<qtPWqqF3Sl
      z2CeeZdb*598ZIFixGZ@s<Iyr6yMUl}Il#Ya&mxowI8byvMF~93a-U(7&*64Fi=DVY
      z=ohgU&#|-@mfg6q3d~jv;EN<d(7zX7CKU}_f3+%;ztCGs=wu|pN}n8EKq#7Ebzhg&
      zZsOt_jhEi}w|wfC-ucICID4eGjHj;Q>16L!oTK~3z9<c4JTn=UhGnPzSvmDLw)Z<X
      zG<cW#T;T2{B3q;mUtvpM;tY713j8sDWM09&xXN$fpWuG350T<yC@;H)Co9+*_-o=h
      zUQ&)Uw(t^H4Lse?3-Y|0Ti?S0T3(>1#@+Xowhz%F$HpR?vz|~MI}bgu08P8E>jLKh
      zEyp8C$wW+}Mmw}*hek4DT8FlTcDa_w{-qX#_V+$wj%o5}U*tu^d=2cD4}yM?GQUH*
      zo=eiBxkIB%oA2VQUz0w4HNoG$9{kNN)+Sh6<OX?%sY&2xB<$xT>~&6pUs1zvkhnMb
      zV}FU@-{4&QHG#jyyYO2a$M2})-(wbk<c;|g9>t$2fwysnwzK#HN%`xtS-M!g8;kf6
      eGs#<ck*#@|*}Ld3$qrCRPb#t{sjsNYF8>$#OkRip
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomXPathExpression.class b/libjava/classpath/lib/gnu/xml/dom/DomXPathExpression.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0dc76e0e39afdf3c8602c3b4c606448b5d09ccb8
      GIT binary patch
      literal 3337
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomXPathNSResolver.class b/libjava/classpath/lib/gnu/xml/dom/DomXPathNSResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f9db6e3fa383a688690be6b19796231136d2afa
      GIT binary patch
      literal 638
      zcwT)_+e!ja6kSKnNyoA*wR`pwUZ5d@DD3i31i@gDCA}WU(>OLa#?kz&f+Fgn59p(!
      zJ(E-<#9<%yUT3d0Yt8$|>l=VgtV)P5tmt-68Ca&$axCT8v98a#->%g!MAtF<!jlkV
      znCkF8S4?i}%2~4`G+#oTVa@S$<!(z0nFE(-${#XA%ywFWA*24@tr1pbi0>J;;U6$$
      zi=)q_29b}bOCpMi6cU(Zh!#tY1jtVc62=+Qs$q*-&uR+qk~ht-4{6+NaL)+lAsF-9
      zMwg+W{vVYrWlYDp?YT8>iLT2vadmOZuwGPu^4EROu=Q$b6p}HA1qt(H?{AtEvdB?j
      z*Aq9!AaFUtW=PhZo~MZuBe0wwwYL#)P@woxsxc}Ae}V1@RRT#uWa>_64v=K|8L4vR
      z3F(J$XPWLw;sV=<VTTyI$k3Gg+QtlKfv^iy867e`)I1z&%H>C-D=)}LaQ`hD53TI~
      S5|h8hWGrGS6k87WS3UtG+KOrb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/DomXPathResult.class b/libjava/classpath/lib/gnu/xml/dom/DomXPathResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09ab411c5f0ed801fa143f06d6828f9a620e0b8d
      GIT binary patch
      literal 3637
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ImplementationList.class b/libjava/classpath/lib/gnu/xml/dom/ImplementationList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..256e59d7959146142f7dfa726c6e800e19f9ae5e
      GIT binary patch
      literal 765
      zcwT*yTTc@~6vzK(Te`HY+sdV=$fc;zLgL0~Vzh<_F(ge^d4TkN+fKGa_Cnez5Iz$R
      znn*}}Fh294h-an^(USCGcIMoE=YLN2_U_kj0B=yWVG-8CWZ+%Ik=IFMuMwX{A{L1X
      zluQ#}_LYq+p>z_Q1zr>+p?BCi5pDM72$i%KdgpK3rt-_-*N4S~Y-FyIZwLb=BTonF
      zgxn{YNVP{;s7?lJO)lI|JEDLL9y!RvC1k3#W*&@kU}Kh0^kpKx4dRyQ9S5yQ5a#`~
      z9YoEbC$&9xW>r`A2^;?OF<DSP6v`J#sJf<EV-8R7%*IoK`@cR1D=0I$FE4cisYFcJ
      ztTt-?)P>YFaNWTMD%^mZ5tek(<ZkOWUJzENvIsLW>4*ygH3)^HbkJ*y1E~jIemLA~
      z-2xR}UWU&MA4~6$e}W93JPPcY<JSTEExrpoH*j`#uTlKLmW9XsbxrPjWbuJ3K4PA&
      z@+cb%SOm;VQ&|(1I5uLwGqz^_L~)2^!qq)9XCixs<&3h%EW&fFjtQT~s$5N28Dh=C
      ZA8dY~pzQyn$h}wO;w4@g1zRS6`!Ca6o4o)4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ImplementationSource.class b/libjava/classpath/lib/gnu/xml/dom/ImplementationSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ba53300369f6a14b2c39b3d3108da726c0d8080
      GIT binary patch
      literal 3312
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/JAXPFactory$JAXPBuilder.class b/libjava/classpath/lib/gnu/xml/dom/JAXPFactory$JAXPBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5252a06311fc015f7317fc81a10177bc40b50b1f
      GIT binary patch
      literal 4140
      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
      Yi4aT#U=e&z(O2<2psG}`B3H5FzW{L%cK`qY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/JAXPFactory.class b/libjava/classpath/lib/gnu/xml/dom/JAXPFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aff36d2a48693a4fa9ef61843d8e9c10613bb665
      GIT binary patch
      literal 2738
      zcwU87+jA3D9R5xTBn=CcKq+?$1V~$G1QfJfv_PZ9^g>%Isfup5r|H(sChVoeyAO^}
      zKB=RFFY3DwG9&4XosmaI|0u`rY&KzOQg}%AoZa8$`@Y}r{La7s{q;A1v-m2G4uPJc
      z?PsecE4xrGWp57Onat^iS9U&*BPNhp)>rgu@VTNpu5{e&jk4jFr0revO>03qp|wC_
      za%y67WNM}$kjg8!tfkw<?6l{YcJY$Hw(Div^>o{t)h%Bp&?#_u$@3~hSrvY;>=d&u
      zQ&pUDMLM1--K;=7H!?hPduk*BP2gY~>qV)1z7yDXR2Bu&`BuQw<P<DJsKnCcN`r2b
      zPT7#IOMC)iPGHMr(>A@U0-G{@vjVZ}<pr6<CUk4qiIl*OylKmEzceqM8GYW8ifP%<
      zty$eM)joU~^Oj6kU|)U%WeFf<%lqqu6gZLTYXg6s8J&|ORYO)hlX}K+SYWW#sZN-R
      zFPcT)(Uon}sS^Ud8n$739LFeY1EnslMMo~2i$YD}D7uq$IHBPrP6=qH%lerM45?J3
      zP;*K2VIYovfnzTgU&CpfVKcbWi^hp%=K5w;o~(wKRGu!=9oI|Jt>}gvzOOq{WjUwe
      zyz<^j?`OXz@CtQ!UW3>T`!f|sE}B*8s)!dgyo%Q-DI@0UrUH91t^G@QaZvl?8`Lzd
      z)?tZM;42!g;&tl9LN_%KIMTMnO@m8G4C8tn*8~nc$4tWwj4*aldUwY1Q&JDwXCGrL
      z+R8;yZ+>FbA-t)2_$`6+nGK9K>{iA6Cg;R@O+vN_<SC1x+o!x<!=Z+<S9$lY>)WB;
      zBt|i=P)rDPw~<&iz%5M2F(t4!ijlmV&8uMsw^=VzALG&0i>%k~P}FClsci3PxC73k
      zEqbLQ?FE4|?b5cqYMe9`;$02zse}oyT>qHFA&hfeFz^2SMkv`Rn@TSGT4P@gdvu)l
      zJ$jsKlRxriVt!c~ULg2Fc$(@TMlDMgb!*ru29h@OB*2+>A#8hPKIr=PpuqwvRLgp`
      z5}l{6u_Q}+o&kO8mc$a4<1l&F)??D}5iH6k@A<mruB%o9B+tE}l!&R5C9ru#jrC_|
      ze`s3o)QAixUr>h7FAk4)#M9T~zGY38P1}=BQ-LI0bSH3M;9^9E>Y$nd?Cr*#<2D9C
      zwm$he1RA4XjYE#59q6jJRdWoq?NQzm$?3B17&2$7S>F{oDZv~j*-_i(?6q{)l@xDl
      zWHRv5WoPj6jbT4FV+(h2?mCd*J{j3><&Oh8SQ8na>KiX1{_o=MJfDKk&Hby`{V*`w
      z!~Z0ozy!nJLJwD3-3WWJk56_i4$$IY06?&jRj7ZsR*;PTKXK#<w)d~$Xkit{AK{34
      z(_cfnhD^8|tl_L$re2QKaA6HY1+}Z;at&_~O74&R8b%ALw^uPXP{U*mvo*|(t>IAN
      z^eWze%%mALy9loi_#`^{KS$Pg$;}|7Wm=SR4)<u~A_t#eR{}D<b(kTU9BuF714f)<
      zj1Q?#2iH30BLt0rV1a(hb5}|dQ}JhLYcL7}t0+Bws@(R#<O_!Snn1pZB-|AyR4Y3u
      zgIbkQ2@>9e(~|HC{Zt(~n|YdP>h9kL;rG;yn&CUc@IqZlEoE8>S)>P^VCx!OmdJmc
      zT2YK1ptC>r2-Sy5=Yc@yM!x-w2z<vl-?JHhKsSEmyPwzw4<Z!PO$_NK#WX2)1r$HQ
      zr!8ovLyA2O1PS&*_4if)bzOfUxnH^dEkeAfnY1TN+JVmkzt33*)ysm{mcW<T`#%m2
      Bp*sKo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAnchorElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAnchorElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fd7d7de21b5fa1e54472156b9bf335412282fc7
      GIT binary patch
      literal 3209
      zcwUW^&vz456vw|0(q;&wU@29sB8rqGrHw6CiY?gCA2KvlY?H_j6(*A*8BAt4Gn3LT
      zbm2x9Zgk;B7Ho9k@f`6SjYk�sc`Q@0)pTCAs5q(dNGU<NH4E-uLFOzn}aGU<!5`
      z`vk@sZl|!-ZWZcYyU+~Vt?9y&*S=i7S}M9$)AN^GcH4HtG*SX55_5O61_e%fexvZ<
      zto5&~J~@HGdB=6aivm}&r9{~!&+5qZxzasz(=4=1w^7&#eaCGuo?KNRwdmFD4EE!o
      zjx;oZLnX(x*E;Q*?U&73%N7_ad6wC#n!Y2~%9#qAP9X3fC{N+f2@H4-T-&G9{ttQq
      z-8I{GaNo4-%DN#L`sj&4=1^+G4vUs$2f?bnEijzT^(Sk1LEwNHWqo3AXCUyRj#0cM
      zaG1&?-jGsjosbmAvP`o$0zG(Y>!Vy<Rc>}d$E$daHVgVTJIxgFvr_!gRvDsRY??ml
      zX&4hoTk(P-!ES^~WSZys^*}?O?vNGP<PUcIR4N<b+jligQcs&?kuQjS0tZ!8!f2Ql
      z(3)yRv0yJ2>#Wg4Gz`ZAYteWH$-Qp3G@KXM@7pc%1d(Saw5j1j6x!Sgk)cs&qiNnJ
      zwIbb}K$_$YlsD$0yJ)y|dyA^GIYYw=WrSwUkv`e=%Q_5P5jaA*hTGeCc3MV!sy*dY
      z)`&;ArsF+aBe8%J8)3u@IW!5Rq=XR<q-^>PIkpO&H;n9fAZ2CCMwYkb(Qn9ywk?k<
      z`&o{xRISzVqZ3y(+>&Isb=<*mdb)LoUQB2;E5`C>^vxK!OD~E>Z_>5c@H)O_uQ>Ac
      z9^>BVq&xs!Q_`lt0s7>PA|*cxv^qemGObedtL4YfO#F__FJ$k7PX9CX3!J0eSv*5l
      zKF-6lI0Qu2VLV4F(i*~%D4T8xS#qbN7*RV+QAB2?^Fz;faqRK#27{4%J`&gC6eTY3
      zGLEbA1(J)TseHVPS9$@9RCOuR7*Pm&fF}utCWO~Hm{SbQ3JY_ZgE_^)tWs4e0cK3W
      zWI31|19Odq8RuYf9886(stGW81#^ajnP6aUvM>b>W`cvcO;vXiU?vsJ8yw6O15;;V
      z&T=qQ9E?L%_Yz>H70jC)%nSqLvM_IPFf$xXKviJ^%&>wv$HB}pFk39l+Z@a+2lFXa
      zeU<=oUct<9F!Kz|=Pb-c4rZQ%`GTsxOn|wdVBX<i78sbXSeQ#3%mN4VHC26+08>;j
      zi&*N1S?=Q9pL$@vWnot7+tCNJJle(8UYPHw>R|%R`&f@)Hn`4|na(_7VX9nb%3No@
      zr>Y+kU@EFJA8;_&8JHhgn428Tbq?lds(PFNb3?)0!iP$2W)J40E<WxR`<0-6V}VRg
      RqQ*%4K@v|`2`kF1{{y}i+v)%S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAppletElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAppletElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7744e7c15f7876aac2ceb960fa9ff3520bda2efa
      GIT binary patch
      literal 3172
      zcwUW^O>+}R5Qg6YAuU1)V2lGeAA}Dh$=Hg`ckCF1jX@x6K(Y)30;~0ww64{zYj<UH
      zNe;QdA(!NkOLE91Iiyk*Qk60V2Yx_)REnP2!GP79%0W`k%-h}1zCEjd{(bQhz!=O7
      zwg?Qhyl&}H$1N@Sol-mMxZ|Z6zjLL2y;@#baqZ}mYj<of${;0hFj2dqN(&tJgH~zn
      zg!PuHr<_1~((#;VO5kd~npk$mx4Ke3QC&7y&5~<+tx_!t9IwUf6dD4lX@AMiVk>s!
      zkbxnvv+8*ET({G-gSy#tZGpb3Z<%hx3>>-Eo2jVngaZG8@(%ulz&3x)vjckC|3NR1
      z^URJNu9%j+aH}F2dgzHkY6Ogy9hF_D<q7oX3%x=E`>4Aq6<G)z$YBs43hbgZ#Tk*T
      z*^Q{uP@XY~>uiJ@E%$Oc4cX{m4xi!>H41wg9b=OC`J{<*+6@gHrDw2QGbGc~q1qGJ
      zYRPXYsRfpSBJG5M6$@%AP}W2SM(N0Oqxh&SgRDFXthTdi8yFYJnDK&6!i^K!mi_69
      z7&uLaTNKe=81D(}(5Dy8kQASjF;dZ_6`h4|&h$YXZkNW}POD8^=ZUDTV%iU1?`w@3
      zKY`~96$3L;sdl8dvpHPG6@fjZt9YC3WoJ^+9dy-Hz7mhAn!|O>QK^tCHNcdr$iaw8
      zY|b3rK?D7<D|6~XO8EKavTe}=E)ce_;<)|%>zFhRg<{|iX;w9s)HHM~FZQCd6txZ9
      zr|GZBFur?>ahR?7-N3SE9r;G?=ia+f2~XFMT%^x7`WqWWO1|i{+D@xFty1)B6o-$G
      zJVW*`inky~-&y(v&XD#j-lM1(>+n8y0xH^t-Bd+Jeb}Sa<O4;r(_Red4r6p8RheSn
      z2kY4XbfZC9ZBMG=xmco$3w(r+b@~M=r%F@$@H#%(3|OYDi>k(eMtB3bk6>s}ILyHu
      zVPIxim>~}42nTbGvZ@I%$23fygDEgDH&~cq4yM4tEKpV>0j8*7j&m?049r~?ro_RF
      za4-)j>tO=SsD}BBgBfFBmROh*9LyL8<51Re0?fFEImyACVqiQL<_rgOih~I$D@uSl
      ztzph`Fy|PUM=Z<)2Xl^t`I@r6Nr0KuFkf&mQw+?vEX)NCW{QJ(Oj%D7V9slpGQIpg
      zFw^U}^v5Qc?^u`$uJ*!A53b|dW|;3O>xTrG8O$q~8=NyY8E1ZEVQz8G+~l13iL!o9
      zfa%xH)Hs+r1M>?D)8Jt09L%qj^;-hWf`(b-#&nw*)9)<IU2aUbxiS4oSx*yS?&vXn
      g$vJb6aprFp<}1#bdz>@RDeFZ7%zf?51C{ge6_X&&iU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAreaElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLAreaElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..674f85bbe7b669b0773ca45d74f36798a85c875d
      GIT binary patch
      literal 2461
      zcwUW^OLNmm6opR{6AMQS5J)l%%<xKr?T~nq48tP<;=I7bghw0$-hg5^ju=^@BpJeD
      zX2Ax2%q(DIs#x#?_)!$MTLOZ8RmH;c)%CfjzdmaD)8`K#0Zijz8hZprn{K<X({c(8
      zuT|I%Th2^j*=yaX+$tA+X{|W2CEYNMl)%YE<u_Hoz$wpf7GBKOcd5F}1p4P~*AA}=
      z+{~5}O_#lTTgm6jPp#)x!Li(CVI%Zyx5;#JRe{u!*N_?XVZcNhhQNWc?aK9bYfJhS
      zYs--WgJrL7IaSNI)qUJdh1+%@FrJLE3w};uulK^0zQCEEU>7i5t0jYHR$Xr1D=C5=
      zb|O$3k~U>ntk-1_tjU)GN3ywIv4LL&_E}o>k9?Vdz;7mw;kdv-8rQTTNw?Y|IgV$U
      zs5k;M_+jZGZmy~pJ89w+PSavR&thkpA^u6l{CcT=wP`0bFfPz%IqGx-x<fMhY02~a
      zMqnUM{kpEHAAIc#q}8T<`NY5!<+x21^@6AuIjnn8-IvYP49t>`>nWYu&3O}l<AT5l
      z=@vcDk(S%FDK?2(#PHQQm90hL%$b<S6|xJG?1mY;nu<h_r$H1O+txE_ph(9oP$hMP
      zxGOL~0y?xMw;^}*hDrujNfBCGw(2Q{8zxG)DR7vyCAa$-vD=|zIS}l2PGw8chSp8o
      z#vL*XI5TcDCAAp^6kCZ>^b{(VPget*lz*t}D8ouzXEwaHUze-4dLu`A-@7Tb5*<C-
      zHhuQeAJ`$J)N4+6`{=GhcPaWd@)PGK-y`#m>OC;&nxSvt0%<Q|KUMiihhK02(A7cm
      z61p11VXZcBgetYt5QgIwrs)@@O6LbhIyn0F+XDT%J+IBpND`Y1{Ek23@ddKe)-*oR
      z!HI6bB26u7kKq{MJK!0Dp(ruR!Hh95t1Qe}4rYvlS)-|P0?c>}ljUG?49p!CW`cvs
      zaWI=SRZW1&$1vwOm`Mhv#=;ahm`M)i5luZ#fSHP6{v?PVn3)d#`o9aN!NOd`rCyks
      zV;x-XhOuetX#&hFu4<TTTrvwxGA;|V$R)GDB@@t8m;h6ZlUc%YFU(2@*SnM1VPV$j
      zQ1-yAP%^i=Vg9A5{}N#C;+}@t;F75@$-H7=s$4P^E}7Rf^(FykGfw8do_X*E><OaI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBRElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBRElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f7db7e404db5c9c5271434a769eff148a19bade8
      GIT binary patch
      literal 923
      zcwUWCTTj$L6#fp>-CD}Ug+);AAS?^oAP<m0j9i1J`T)zm&z4Ck>BV$g@Mq}@CO-HB
      z{85H8rCF8jCZtK{oauM#ocaCd=Pv*ocvVIpVZjYk>uca!7g1ncCV~IfI*fvo#wUCK
      z^vIWi43jc6!dy>W2UQ}>MzL$%Y&!p-{*xk<cD>L`-Vr|5?4FW`k&`O;j(sJrh2@LT
      zwa${*3*Ca9)h0nZh%Tgoehio>LnjQ|UMN4OK}*IB(efpsVn>efn<Dm9pKof(rPn4b
      z^^VeszC(Bt-GnkGEIuMR!3;$p+h2qu&rd%n|E}chuP_ANmC1oG1#6GhR=a^ZCfMCk
      z2m^!{CSGESFv2utx|cAll_spTTq`)BB4@qbv8)zxn#yR-#5@+*sNH3>Qa~!6jd2#G
      zu_KQ?b>P*9$NENb*oAm_{EvJy`=O~Ba`%+G26q~-dVOvE^$!@|x$c9>Z-ZB0i?Q1n
      z<f?v;!w`mntQx^HR#8<2qZwMq7+1=vit*fGgTE+Lxn6mGi^*>tgHpD=n~9tEkX)QF
      mjhUSOp5-!Wrmx*%_F=$1X6<Jh<9UR?0Vg;N@w1q5mhJ!$5!1l{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBaseElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBaseElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e58d2f09e599899e069f51b818219f13e6d323e
      GIT binary patch
      literal 1105
      zcwUW?TTj$b6ouEuGA*?Vj@-P148zQzHt2&U5F>~LwDJJsym!j6Q`3v-Mf_R%f{73Q
      z0DqKmpHh%8XA;w--Dh|0wZ3%s_n)7?0IZ>{V~o)7<HG(Lh4xVr*@HX^pW53=wA+2}
      zY`K|u6N*U0xekr6Fj9H0su32G)VGhHc^6cd%m}rOAP(}Egtskcr0I6z6;i(Ld~(0I
      zcId{weVC^~>?=C$9zlDZ90?OwaMgkigD~j?vDh!7zDT=nKNN(zlXz~}bJIYctEQF@
      zf{f4{jdB5goiLsp$08*x{Rcb2irq+LpIuLUIM|Z}L+nf-H3Z!k`EDvc5~f@2VV!|_
      zmJV28f^gfy9o!{M$svy1%vseha`tJq6dy>Ht7m6{GpdoE%vrFoh=-h$4dtvThSaN>
      zV92hU^4-8P?>{eV?q_Fxf_az}sV8;<xs$o!FaJb3GYj#Cc?tXrk3*A-=F<e9x_r|3
      zX>?W}J^lgnJJ(~d_-^tOc+T1vxW-lIREO)B1j=d(H`qm1b=)k~2Bx`^Ni&$O64v;Q
      zROy}i+zD=dI}fOp?TymhI+axBgnPJOjlW{M(wfItPw?O};3iLPl^(Md!au-yh9SO|
      eR4@$%%#ISKse);!VBYbRGXiG0f>|kNT7Lm^OXpeu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBaseFontElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBaseFontElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac899f1feb4a8588f43b32e6427c9465d912ac50
      GIT binary patch
      literal 1419
      zcwUW@-A~g{7{;FiW2>_Y4w&ftKw;2zKpm)%K#Y92SgppmvHPynQPU68c4GXSywIDO
      zc;O%5A7y+`+f1{aC0?|B&*}3%&+nX`{`&pnCx8a_3YcP0dVXK~<hj~e;A!Wv=Wc5!
      zf%m-q$~ZD3yBYZLGuQTPKQ180usl&cROK0}LD<tScC3F?0z-!Uf#W;z6NVRxG12%W
      zu=-rSZ@f1@nwo3+J*^doj^7i^)H)2g<KWCLVj7oa6d*Co8jf$j?t5K3Y@1!zW+)kf
      zWx5?Rboe-%%*E$U#Gp<_8Ck$S!%T4D+abfsfABNNzUkS~2h*}o-|C!VjGrjDhC%At
      z@p0e=<h`KO#)T4=DBa?UA{cJUsNfdE9JTS#!<b~<eoRhlieQ^W$x<|oTom<mc+j$p
      zd$><Q(OA&Bph^6N3PjnYU64?v1;3+;=Av{iecN(AQ#GyBbO|bHA{z7f4H=u*Vwfk5
      z?vD}(vGvqDb<8Pxx{hrbJ9tP&k;telFw!|WBe!BJ=!cfwboimEh>yk=Z>OE2HPAIf
      z{~P^2{4~<&5{=q4%F$C&>l>TjQT#^r6lA&==?UzTb`MvmQd1qSViriMIb0(bUX?JP
      zs3j~=#gi6M&Jr5*hN}u{>G}XSz77NO$@D>DE~k>roZ&X^WbIGMF0rQe`T%!F0S~F`
      zDDfy~2!8>W2!^%_D<YUx0ZdZ}vnGOB6~VluE@J{rHG^4)G7eK4p#Eh9=8X_W!-H{{
      YT4jL7D9kB!btb^5c$C0API`9#02%!p!2kdN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBodyElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLBodyElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef2f3d1965d558c72640774bd0d530a1a51a84fc
      GIT binary patch
      literal 1816
      zcwUW@YfsZ)6vzJ$PFCj-oZP&FjIoVN85hAoj9esMrZF=1!Z+G=O)2zZ+79qr=^IRZ
      z;Ro<T8PC%;ld#i-EZNR^&i{YTucy!c{QdPCKn>5b=o2WKZbv<HY_;t<>S5^EOX{xY
      zylT9wZ+q=;FKxpy+%Subz(lIDtLhh+^n6o2UDhwCE;SSA-?UsSd@k^&Tu*Jf>**aS
      z->4sHCz@(&uBq;azU7+CNu?=}+40&&4%cuqk1P~{!Mf!d?>kP*@EcmoHUtWFPuJ|G
      z=36pP4m07Q6$q5lQ7*u52weA0UBefcx&pgE-qjo<_^Ro~!N=E<pog6Zq((q7jc|*Y
      zj|GOym0qEOahk5#q{u<wULN=HKwyY$a_Ck_vQ{UgPNg!lB5tx0bVrVGo~9f$k;f#S
      z(4e4a&<tbZ-_8J0Zfp9n>3bcwtzcRp*Xrg}4=&cJDD~!!XM4Vaia@qy>N259(5=uh
      z$t1smdD^2LJxMl*&*EysI13fj<a?$lt~R1b?z<VAS81^)v0JXB8QXLFUdPvsJxgAb
      zvEIwDAfJ?WBk0mm1Nv7DAS3S{Wj82mP?n)zr8+w|{}Z_%6!#%d-#PjP)=0Zf9-tcQ
      za0`P#6b<1vb&*j4cOtcdVT$CW5sW4iYE+S`Y_%|Uj=SHx1Nx)m&8T@kmL$yu9^z4A
      ze?je{)?}YO$K%U@Tjbh~dW<Fr{{hDdM$l)9gDEmFdn`<egDG+_Z^>0pftgNVW;mEK
      z1M`7}sd6x74(5Pd%@mkQ0yE3O%rP*ZSeOM4W{!jTOs+2}F!KqF%E2r$Fl`oQiGx|>
      mU@USSrNGn@m}L%Tg@JKdn5P`f3I`LAD@=h|O<>j{&-y=prY^n!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93e0e4c798a98d8fda27cbca43a31cab932dc524
      GIT binary patch
      literal 2264
      zcwUWESy$6Q7`-EfmJ$V7MO;7x+Om|*g++w2NT47>DcYkCp&d%3O*l=;@}GRrmwJv5
      z9-sYD9=}N<OFLB`+RS|U?)~n)ndIlMZ{Goo;hi5h82YnDF?yEIMKfkTdT8f!<IyEE
      zzna*H$BMRX8p}DJ=Z5WvkD<G2??qP~L$6uLMo%ZwSGp?b80uzqL$~J`)<W^Bv`c2X
      zDB5S@AGH%Ln$wJIbjL2}MpjY@CmDQ;W`+k*g9ZhD1Q;6Qy1_S#`F&nUX!|+N&>T0@
      zS}v&-bg}n}KKoF&82%#Vn*14tTJzN41#<fz>KPP6%X8~kOY_}rRcNSCPZ~rIgFnmd
      z6|<0M=nIA8@+`&uKT-m?L)ZhV1i^4uK^N{ZG!e^|R-lH9#QQ^%%&raCr0{0^c)-x}
      z&$;A@Ml7V$+_KjBIYTR{t>6#f5ktM^bRF??q42SSKJ>c^1?PfIt@}lrS5qj7O0lku
      zZj<4XVpv4MAckm|RWWQp0+JspProy&fmAQ)mN+#ThMG_~6~GunAmi1<&<O>Tc*4*@
      zy)o0wam^^3Eft(1cIzs;FO+g!OevTK+3v8a5w=SRQ$jmSxhHCq&Q<`ew6WZcYlV)#
      zYGnACV?_;Mk*wI-zAkEF^0I;zykcmfUezd%P-;VUZCo<@LaJ+HT|pchL}tmzWENCm
      zK?w4wnCiMooF9{$ZSmgHidv|a)N(~C?$WDyB9>IOyedO*$1E1od_@;8d#CJ`9udRQ
      zLo#dVS4&^WoA8Nm2<_@=m!O@Gu7Swl(C}9TztH*y6#5U+6_}#lX~F;zw-2|_2so=I
      z+$I*WYDSCGO^<?BVp1F0y$O?aM|1@v%^f9l{=ogu7c=UdJ97@d;&yrb3=h%mF^qW(
      z{z!9A3BBd;#Vc_C1$+P@4?a(V9B~96EFoNOag|W2!_n@UxU@J-cIf$F1kp+{qa}=g
      zDigCI74sC&D#eU;mGHb=%r>ERs)!lGtRv=yESWh;GJ8@nFJ;Nh$&z_bs1H@dw0g<R
      zW1&(^tc0cVWHhOmRf@hsOpKCQD;IM>sB9H6n|SSr*^(vmMv}~tRLqVHo{+$grSPOI
      V*n}+DBB4&Ic-i%W-E%N+e*=F@wFLkG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1438b30b60a9bc0f1178a37176aa6a5267536f5
      GIT binary patch
      literal 4083
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDListElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDListElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee60476f0dfbbef4292b6aa0d06d3de9f3bab1b2
      GIT binary patch
      literal 891
      zcwUW?%Wl(95QhJ0+&CCROG?u~xs;aDBwVb*0;E=mUO=UCS+pUG>>T&VHL}k^zEB>D
      z4Vxmd-~o6j#2m*eQArRB`^=30`R4c7KYxAy0bm^uOiU401DQLY<H$Kyv2&8e(Nkwv
      z#e3ZYch?Qm>~$n!Au|&OVQHfDTva73t0ZtvpZO!Ii!?%YGn8TWlCa-$CmT?HuH_r<
      z2k(>TM4k+sqbvz!Fs9P(5sV#mEG$%T*@lT4Va5%mc$dcmk#xO5BnWj^`CioXl2GSm
      z(a281l(6;>D<keV2-E6RiiEK8ALa?R^kR{I^nCID@U6D+mwC3JH3TaV*^Y`?%S)=X
      z+Wi`u1k)duED&zmSi~*D0xP$bii9WixUGyygFIu#d~3{h`piy8*hZ`0?rGkVjeA&T
      zUOI`_7{lx9b(4l3sXXz;n^5nuIc8f=bT5zK*WqiL|GWwe{dG9I#95a!gU?#$;iJdj
      zV14Cy3O3&@K7r?~eSs?+b%r`z#SBnHv$)0-9n~>csB5^+k)AY<Mmb@fpJ<iYsV|)2
      z#+UN})uOyv!0n-=gcEM#PTBs7aRr*&7te6_qQNch+AbK4(!w8uO{_45aKGqT{SA)5
      B$S?o^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDirectoryElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDirectoryElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b80e6231623d8eeb5baaede5521d499e2603b585
      GIT binary patch
      literal 907
      zcwUW?O>fgc5Qg7r+&CCROWLM|7U&05NeWnn14yk9{Qv<n9B7(DZX0*y8rfdttSS5_
      zE?kPlfgiw+Ld-f=sY-%4*gG?R=a~=h&tKnv0NBL3jR`_4Ompv35_?A~@s4#8KlJuh
      z^0M>B-;XjGXqA0_9?L|g+J;3~9xFdnRSD}V3%!#^!8z3^BB8n+rICJ0c-{2JH==^v
      z$hZ9W;-m0lk%r!Z&Z0CN5ovV^)}A_&4l20p!bXiS<wvP}n<sslbwodwgu1T+5qCuv
      z8NUo#`ZyX8HvZAdg$cF@lj<au8DZ@|1|YbpNaWyy2;||rSEh}>2H-Y~hTw!!@2P~f
      zyr@dE)vIBFU<bpH1Hug#i&!GevvOCdSc=q?+tEzw=b9OF%@G^wF?(>1Z8dwXuHh}a
      zSivgu2IF{*5xkyRIT`4I%CkVeh|DgR#%%0?$>%aW5<ioC6DzRHUt;ePdmZ*HK5Olb
      zd-uP=`O5YLTz)%z0*_hy1XtK<4|TYTDWI^Xag8a)s$-^5*D%YLsWgX1Sz(jE7?s_w
      z&!6J@m$L%ZBD`I|-Jzs}6K>*Gnf{D%1)9?rPjUNVgFBqHTQC}B3x671z#3BscZ!_5
      FzX8}q&y)ZF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDivElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDivElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6433f235d66bb4ee8ab10819d423124ce5dbaf8d
      GIT binary patch
      literal 927
      zcwUWCTTj$L6#fp>-BPRI0xRB;i!O`WpbwZpjH_sn6dz#O_t`QjW7?_dw&2gw7fgKc
      z2l%55XG*hPwiwf-bI$a;_00VE`RzM^H7wULMpz7W?tO|Q?=XqIqb!b|dRs}n-QD%K
      z)bX20#!_c>ScLftfkRY{QArwlC(nZ4P=9I>YMV-{>;++`<zH-`1i684_#ecv@FJl@
      zZ$C?w4l8z6dIalrawr{)<Fbo7Y{I0kw0xh(eVKMeKazxop9CW6iBy@s+_bVIH6Sei
      zBg!!Q2H{e2qGifs`;X`ZSBqE<K8ipd?7cGqMxt{7gCW?V%sP<@HDRW;G77XY$L_))
      z91w20xP{w<DW)0IPR6i)p0Uz{R>g#>obAETa<+=oGe+|+?qh+C1|vofD@fIc<LoDS
      z8pyZGOuRWV*C&R=HpIurKgqXq9F{pn?k2eFa%b^sw^tuM{tD*{*JE(`?eGe$Gxj;I
      zaMeD?;VLG9qME`rRxwor(*@eb3|Gc!7R}OOjlURFz1_HeiW{GY2DM^)vk-UBA*DFs
      m4(^upmn>IEGkx_G_x=vpVb-fcqgh7y6>yHj5I>6rXXy+n&(;k9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDocument.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..528c28d4a34fcd188febe8e4c3c0b43bc74880a8
      GIT binary patch
      literal 10676
      zcwUWJ34B!5x&OX9N$!wbAi04+*a?eS22vKO1Y95lh$I0L7K2NeOm32a$;>bd0XJN5
      zK@rrVDAH=(=!Qk82}lvD6{@zj+NyPHt5vJkR$FcR?0c`i|2cE-oyjD*dA}db{O8<n
      zJKuKBck}#zo_vakX7E2$QkW*T1>@ygIs)Y_p^ozQSVv%H`JzzA(p9xJi$cD5hY^ga
      zl)*G2l?(*QhgnSHLXo!e&RM<`8L0x8va4#UYOCs2HLY01q+eXK!MoX89`FX+$}0oj
      zXmlRaP>Z6nW<f(kRRdNMRPmTUP+sc|gGLiVo9Y^xR@Yaj5i}Sv5V+_20{);sb{><f
      zxMU4eMrEkQP$>_@X)0C9XUa`3HpC+SVA~*K8m^H_Zk0wb<s}s?^+wxaMK%>sp+=)<
      z2vgR4smo1cnAoe*IHsxnI&(qL*B**g1q|Vk9GXByDotb>++&X#O`^%LJsgM6&M8iD
      z)AHsGhA%d+_ex3cB{xllao%t^U?4ojj#fz`(<(QW!eicufxUQ`Cil+;5}Ri_c$&RY
      zc=>BiJPSc$^UOr31W#*7B+zW8Vn@EkAhUVr2z{ZJtty@4s1GDIPX&|G98qaLQ&ImM
      z^)@~7C#yLgi-m$JUEt)ug_6kTTZq`T_@QVKQ%V1I<&Pjtp-9rc#gcEcN=un0Iq+?^
      zIWA<%Yzg?Ia9<76l>T{YKx1>&fy?M<Hd<6#;lx!XXl$-}M61<r1X`jZpH?|VYq20}
      zNXaNsgNZ0#<P@zQ5nd;GA{{DS;>;82uz4=S&RQeh4y56Fr=2YpG&WbW*qK<7J8N;=
      znIKEuSu3n;H@t9VyOWhmL1Oc4KpwWwP$|H4mLmsRk<AnoOf%gS7T>en6cOLE-4qkw
      zXS->$_@3jYEy5rOQt5I>gYd(aeI*jzZ~E<Or$n#r>9}i<u>OuVm9BGgc6EohEy=ST
      zA@T>&+ElvHkxS6nTsJeR{-{6LVr)_A7AL<|N2>*u&AAi$0^Vi=4%y|TuSU?=T(`p`
      z0i(?bBCvNld89@X*?fBtg@9kByPaB0O|?yb52A&$YNJZ~oT60&5}Ri~yx!prtMo0W
      zHi2`*=6C>FfZ{4W=%l3<BsR~(k|%~k;8ACuSn?3~j>v}~4%P2DS{6$B>j$Fc838vv
      z28V~_!KKn6Cx<6aH(S7AI6Q>d{>Uk|%X_rHE|hyH9BYe&;&9?or*dB&jx7;nHt&<d
      z%y7&vj)WgOnkk8FzNc_EfU;9g2f_+(#M>6}hTCnfr;)p1tfB}0)M<Z$GuZ@Bi>pHf
      zrTjCeD6EJiYw~$mw@Ia+JLy;%55<xkFXA%S90>U~ZW7CG`W5^V^+o()gzsf1zcff9
      zTh4C;pAnE@f7Ovs64`veg=eC%tpV)v4JWG`1dYx07P^SfYliQ4OrC!ER(YEPMy0oB
      z5dVN&i?yrtu2U2foJJtoOWqS~EpGY%aq)><{m?1p68xbg`^QLEu*r0F(<j(?OpvJb
      zSEr3jF}94)gbBEi{Cz;p^`TCi>kFYPak%|+KxZ`|JgLt5FTvaz3IYCGKyg`f)Bj*I
      zF=I<CalQPHqd6c;y<#FqA;urW)>(1fx}dSSFtjM~fXZ1;EUQx*L^iuQTjfC*0g|_J
      z1SF8yU{vEA)-XxLgB_t3f2&_?9?h0%LUG!tQj+!?V+9Y<Xb?esZm+Qdw~A~YN`-F5
      zNHVcK77JIDmv?q{PVbyGT?|&M>ZQ%I%cGc4e6buJ&LdPV=rKG%hQ=eg5Siv}!9`|x
      zAHze*IyaAowGJ8rp-|Lt^H}r`2P*5z<mT~AV|o+Lm^*iF`4&OzX3RK6eTtILXPA3(
      z^Q8W^Zqk{SO~H}mL}r;LVtJOv#axmWFgPkLU}AJEN&77VR;E!7iFo4-HtOQI5=Ugd
      zV}Pv*`MiNO-iVZFF1o}Wk}(5~b+`|O1KC_oh1n243sWRx^eHN?ab%b$=h#@gKZ>CA
      zPioED^Rmgs=Lp$zrR>zne9`h+AyFo~SEO`8wjXOu;|DMU+io*rmF@mOOC5&lg<I?3
      zX*s2)st}J-r_{t)4gdBc%Hi{Qfyx-Ka?_t_ypSuA-q5$$ABiTEG7T&4M@*H*i+KrC
      z4j9B@!ZJbL%aCl+xmx23c^UK?o8sO;w7M-AilF63jkL0{Y+omI)M{KOj2a?zpg}eG
      zn{j<>!zqSy+7RzJ^xnq7xj|`*-dn6V6JoftyCG0EE|C;#G+xUWC0uPq)a*`7BhvP7
      zKA0yM*J(VT&lQGVqVc7|8NyJ}Nh>j0Np^SCRMgKl*9bXYjhopA-}}&j?PDLuUSAyj
      zT7w9-GJKQc4To__Hsd$7k5uU=qJE7x@J1#Lmr5fNTWDY&>@V5=zcLN+5!5)uP4G@M
      z%{!T`BGZ@#$%95PCGx4>Xf+}c14Gv!8IumLKd5pXrb&MUjad2W`Wmt6PK~!%j<;gB
      zy1qJ_V|=-&$0mWU)c7hvq=IN^2;)0%V;X0Rs`UoM<ZHA*X4Mv-A+I6Glz0RcI;195
      zB@!qLLVyy|#0wAf(6k&$)UhaHD?Tb?`Wov<1A$RXU|I|5EiaKbw`hDlZx<fksqt+x
      zbP*#Q@cIlh_~Qo<gH1+^)`XYk+=zBJx!=tsPi5@q8&0>~BxN?=$#;oB+$|Gn;7-~{
      zW~~uI?$P*OkwZB+X{~l6*6-7Jzj!a`Ha2?$aa51o6TCU4e`P5f!NnSTPrQ+fCi;Sy
      z{!A#|c0^4Q`6@B$=9NP0BN{&{tjUEn3u36u=6KBPfWnuRq0mOZz|kbm@|hqbgz`l0
      z`vM`+{W3cveqnWnxTqls<j(*I^4jbdA5p9Emk!twgm1+4O16Z<8XsZIYD0T8mbwO}
      zd3^{PNOUr5)R?zT7$j~*-5MViS0LP)aloN<h_mppX!*xA{;@nEVxgK)rx6j|UaUW*
      z@ku@<UNMMQ2g}7fo#N_}YVqi4ji2G43dhBpqtXV^H>>+NQ*vkmpVs&cW9)LZiGWY-
      z>-N=qDVuWnd5vFS%wGkfYZ$%&4wDu%C1{L`cZ5u{ihI8<PnCtL5gAmT!i1W5vB%5p
      zguZP46~C<VODKOwc8!0{7|(KoMrSn^y+I$seO3=M`rnhvnC9~Ph?UA1-A1Pt0!jck
      z61&Z1^K1NusLwY=6dFXWz0JQ@8ROc>v|EhLqwyd39mGhyh_Cd<MG|{beZQ(b66zH9
      zvmT}<S5^KatW7@Y*>n9UiA`oH1;mvvffXMfa5erT)OmgUEkhij;|B<leAC{Biq7xD
      zuMi<l>6$(a!!yO0$uuhcW|vBl-4KdLe8ytGIP8a|^|k3jDow;t<r0GxK1Yc^co0#x
      zm{8<5F249K#Oh!g0;-`z84png5V>Y$ouJ%Cm(C518M@xkn2C=gH0(GPG<MU-Wu^LP
      zee5wB@1nJ(`V{>v3zq0*7M!M+TX2Rx%YtX?U$@{~eVzr+)z7!!0=?3LRr(SOR_n_w
      zSgS9$;7Yy0f~)nl7Hrfnw&10DlLfuH&w_^DW<kHc(SjXG7)ruTNf=GScoKH%TP=8n
      zew78c>DOBDdi@3q-lXra;H~;?7Tm4hVZm?ccUf?+ey;`Z)4yrK`}J>I@FD#X3m(wF
      zYr*d);X(a}7JOVkV!<c$ZVMjMk6ZABe$s+J(Vwy4v-%keKBvE6!CxfdFZGu!_-p+Y
      z3%;hmZoxP8w=MX4{T&PbF$v$-|75|BlJL*^Uo7~k{x=JLuK&Y=|4PCylkmUw|Fz&(
      z`OGHHXIDOFnm>-RdV~ib=b??=oVN_m^kY0skyN8>G{#2bY&5|}MK+pjqN6<Z2$w#N
      zVp7;c#0zN!a1~|IViegD%B7{0kKYAUN8@NYmEieoT1n?qJzYo*w3=4YdVFrAHME)5
      z(zSFE?W9K9OY7)Cx|j~qC3KW7rDy0edXbvwbx^-YUiy@p>EGnzOlsj=GI%t#@>FW$
      z8Pv}6$<Iq@1J~0=zLWyoP8}SjAYV-(-a%pBL!0=1itzU+%1=;?Pf?s-pw0X$b@Ds3
      zg+HOK{4cs(QRoU~FkPvPq^p!kbhR>_wkdPz8f6h(t1PGMly!8yV$gOaOgAW3(2dHC
      zbdz!i-K^}V9m)Z^MLA5jDko^C@*Lf!yh^*2w`q^^KHa5!N_Q(?(q5N~?r{yKdtD=F
      zpKBuB=PIN9u9<WJPlE>wNTG4cN!l+O7P#tox@=i2{xq9tSX3b!9FbOfoXZi^8Qnb7
      zjs*A=d_IgQJR&7(30gjz=OpCtY*Ws8pcJ%OrDfgx^>hgb(Lx`yZ32}kL7)nr2N{YO
      z%}iO>fhGgrQ_GI=c}#T&sL(U*7%yV#;-&Xe=Cnijg&Td{v@>6Q#D{EMqmVH~hoSQc
      z8bRG?%|~bgeov++rS8&%R9p8{Ud}7zj;8WTL|Q?MAIl9`gHL!B;-9c*7k&%Q($X$o
      zT~l_Nib~6LqnjIRJ*TOl)T4g|TsQ4BWy7wEnGU7cR3s0Lli2?$92`$m9<p#aJxgQh
      zG>(^_Q8E2I#kNw@woICW91^zWVJEFX3OI6b<RxsojGGd+@dfxTcD+m3R_i%Kx#+1~
      zyuP;7)5R@oVVoh2J3}6HZak>-NT*h06lR>JTu)&JY;H$sAD|rJ<bWv1X>vz`<P4Rg
      z8Gx-q&<VcG!pzf@H?1(UFvDWhrU@)K3o{V14uz8Oucu-7d<i>x8T<bYYWWr9z-y@E
      z-@-R<pqAgH8T1y-q2Ey@y-UmJeN^)YsNN4zp&yZ-KBgdjLRZpfbOU`(x6v2UUrP}y
      z?AngyF8HQi9@RUf=aBgnmY#D#{wNLuWk7NTZ<5GQW8_*Uycw}0?ID)=prk}FORjvG
      zlK+a8{~WbBFM%GB*~5-=tP!!;+|65S%DVW9Lu(;RaOF}Sx<^8$E~3q%k`Q5b;U=A#
      zQXRug`5I;NHGHkGiLbLYm76wZ3N2}7a!!hwnYNjjI!)%wVWtb;ldV)9gH%3Srt%re
      z0rpCKif>3w;&H;+XpxzmM}s&YCJ&?GT!3O3Nku$L>YR{}YbWq{JAw0PjtmI%O?<Oy
      z$9}V<X7`h}UA#l&><~{`BC(KUo-$<Mtw^|Ja!o}_5s!ym6JS>nCWT2<z*A^6+W2@b
      zMmc$C7Eezpu-SIP%!XCFWWto22{W1sdAC_$xAPsQrE9<^f>Lmt?`$kB?dCl-W%{-*
      z-izSwD@*z)5z?8I&9h*~Y#GF4NDEB8*$DYJ`CBri_uD!)m^zA5b<_$S`a$_QrMEuW
      z?6?B@=0V?lXgC)seICZF^HcN|*?LFXdLOX$t~d3LN!42-HIDABu>igzUIdL*(6|^H
      zm!Pngrf3^uYtwCQ-*)z7V}G8kg`PU-Sq@LG7{HSc+B&?Zj<Kma<X-amp)P*7&n>Nn
      zsx?rxmPYVJNS?+Nbz^OH`L?<P1NRGV>a$;b$Lia3wpbTykEbyjDazT-R_5=@_Qtqy
      zSVwmm$sW>M#D)~zZ0r91z>J|j8GkUa(XoDvK4=>K*uWyT4j|%(vW*H6O^C7RHN))~
      z*Lo1wz33eKJn3n46=Hie4drc!-!&<XYPhXpxIFt=40JNWqER)o&r~+g?CWYNL&xLk
      zVZJfNYSk90@)M@jNBBnxK}fC)c@@}=rdx2BOVQZ66xv7GrDdLOK6VJ!KUwF=t?1$t
      zb25f!DEFh|4bR9}-^D+vJIsU8`<_*Bhsec0aR#5U84EKH)37dnt|BYz1plJZRf>_b
      z3=^lPp+YUpDpb4pm#6rZLls%a`L)K}yl#FS>v+<|Z>=p<Pr|$vxHWh3yXM9g;-n(p
      ziF(+Ddbk}$eFxh5ooJ?e&`j^9MSKrc^FCSuU#-I(IKU5p`$61yAExd62<_xYrBhnv
      zn7rF|%5Hv7Iz^!O<!x&W?#>?oxo|_<$baGw;i5&fj6dR!QJ3pbdw<3~I*S5`%wPDg
      bIE1#M{6FQ-u(lm*f8)PnjrnsKlrR1dmIGS-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d47e495ec21df3ca722612b2fac887b9e1d14a14
      GIT binary patch
      literal 4725
      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
      Bsbv5F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLEmbedElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLEmbedElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abbe2879731dd036fd67b3a8117b02846c2a0c5a
      GIT binary patch
      literal 2258
      zcwUW@SyK~15XXBUBuf$w5fE<?fe?-bM3KXA1T3TiQV{V)%i1jKvbb06f#QpPBz?gu
      zAN&A*D9fJRAq43yO{y}}J^%jquXi@Te*gFh08>!TKof&O-45lCmMI@NmV6jk=Cr)#
      zSR2)?%DPq44%SW0((E7uDF#D{(iPV=wLoYYq!$g_2uch#3zfv0HAfA(e4%or94oS^
      z*t)zIc!sSLnUQ@4sj_pRWuX~b^Uwlm1|1c{*0w{$^r}kD)EIPC991#*70=+YNTz~A
      z!)Gv@jM6yi0)rOkgROZC2L1z{LEcs@&36@5d%63ZBV2+<1g>Gwrfb0_p1!CZX(~Ra
      z?!w4rwFJEkay<RkiF8?D(3gknaDzc7Iz$gVKyfV$&~&IkJT3~N&A-^ahbr9X-R|V!
      zF5JUz{-tiiL=k;mX-D+w5L5H(TUC5bf(Hl_4X9$OhA9;J7ex#twZ3f^4lAB|XdI)#
      z2tM}6K#4Ob@h?aiWa>w`25Si>7_`=V<ITiNu7UBqqI%+D#ly3T07L#dMax-5HHtD=
      z5vyk~(BmKm-!Vhou>BoH$5Xt9oEs-xOvKy`3Y-f|wv-cJ^$a(VU<sRBXCa>Y4W|sU
      zdrs)7+B1W{=Y7Q6Ji)=CAMdmo_~#0w_<slE3`SLqQn*UR(XsLGAbrDq6J+r>iz|SP
      zs!7P<t{Cee4{ec;1ntm)E_~OCu1(Rd3wO<!y$ao;!xWxyRi@b0a|+kK)*Gaw^h{))
      zk0rvK!A-a&%9qhDvc~e!Q@H&%;2f&vBadEza1PjyFbu!<DVPBQrbNOFQZNG)Oc_;c
      z2{1zfW|)F05HK4gOp$^qP%vAl+D?EO6)<Cz+c@R6i>kc@H(9t%QlpI%qrD<Wo1$Q*
      zDVW!&dXoS%BVZm;Fw+E#Lc%<zU}h<pcc{|;0rP}{nI&M}lQ45s`8-kXlI4rkEc4VX
      nA*zlOW?2xkJf&bt1k5KAW|@L1Q81rT^(6sjNx-Z`HLHIB4N7zc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFieldSetElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFieldSetElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a26b4d036a509064eae6fde4d3f7208c8136a46
      GIT binary patch
      literal 820
      zcwUW?OHbQS5QWcxiGyn%O=&5Q0#Vf}qy-Dgq9~LN5K&|hA}RZeb8B4LzQ{Pxp9Py%
      zVu4umqblZ_G~$s67WSRT=b7VUU;n$f1h9aji5^19kDJc#D0CVsat_ldTy)k|v{~PF
      ztAPv~HJNUNGLms>!XV6arQ1}F@IfWMbNa=*Lv<KP$gKo%kggK8N^aM|>&k0tyyE^6
      zC&CFu>^rqI31YuPWp<xntf_{y(2Ex~OymheZV=0zW^^Evx;O|Wq2MY{g!>{1blxf&
      z>0xk8D0i3g-~}p#K6M()gz)|u`U!R{B6)lyJo#hqyH@c?KdaCT!SrQXRY}BVmS){9
      zescf6lsw+@vp>0FfiP}k0+WPcp0X<v2HKu~EOl`0-hv&ruVP|~P<(PP!K$fd;>l{D
      zEu83V)V$t^A`9!~tB?P_9vJ%DaMsURoil^aeEHMoxxcW^Gs5P(#V7EU*<}oHRKDdf
      zh#?@0hVhc8=%|2K8J))nM|#t1ylHJ%;*O@Qa$)oj#;)-0ti2<bb-rcu?OUofpD>+K
      FGdHYD%!>d3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFontElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFontElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8b89f0ae13f7d7fcecb5e636f5e0dca5f957d95
      GIT binary patch
      literal 1273
      zcwUW?+iuf95QhIPAvVU)5_;m?Lz?E$VihhxYK15*Q2~Q0lIGrVm(<AiA|EK?so<ta
      zT<`!q6k^u4Le;D#WXYbL`DgymyZigk&tCwxu&H5+p*{*z>r3EU$0D#!lE8mt?Tg@`
      z|JLq`FnQ_ofQN~O3d2&Va;&N{EQ@Gloj!KYsV)p-sP1^7mpo&5-Ly-G?h7}S@@@O0
      z^VzX{CmdP5B=W+MBGVc$RQAL%H*g78O=!>=rfo0e@6uq%qrNlrIYZ4BuHz4!$dl_L
      zSxHX3n4wXQat?l*;j%aldBm{#AM6Zf=mb3e<hcCk{VPc@!A=BH!=R6NvL}2&vuB&F
      zNuiEKa(AV|0K;t)cW{?shT5d*ZbGtQn$V<1Q?W%VXFVQU&Z&9^(rC%VGFHeao-kTh
      zG^tNVBg!uAf{r!%;SUs1F3xj#wdZ}MYKy8dMR~QCMMh7gk;}WDJg$YwLwP72iILIa
      z(+<(?rVA_Y0Ijajs!yv5ef4%{WAg`$?-WnLq_;s|;0bA;;u=NmT!-tJ2C`@dH)x8C
      zYPgxHb<9#Eo#rrKIBZcxs<d`(;S9IFjSZ?<dM6uh=8|GK!#&(D+Mm<7Y&5lZ&hX$O
      z;4XE&$Y#tJ2>$>V35L<Ls)DI2V7f|}h6<*xf_Xz-b_vW{0kf`xX)0h2l`w4;Oj8AO
      QL|uatm{tMP$$B>a0`n2|Hvj+t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFormElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFormElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57e56179ea47bedb78a3538bbf372d3c159d64d3
      GIT binary patch
      literal 2784
      zcwUW_-&Yey6vw|KfnCBXl&aX)wxS3j5h99Ji$9?JP;7uI0i|loWHU_`H@i8T4dP4t
      z(3ke1KD4j>6Z&9Z@U%Urr_cSPdU|Jei4kUxJ}{Xd_kQo^-aE7W``@2`1DJqo;1I)5
      z#cSqwYHq&l*Yee{=3dCp`L)}{rNV+A)aG4L6JBT_#c(RovSro9Fz5%B{L_neo7Fxs
      zhOTRl=Y%&H?qmvyqI168l;%@~Exyh3F83<=)i7|pie_hYogp>rmqi*K=&@kHWauq8
      zo>*?yN+Kxok}DYc3%<?Wbsji!9dD+>s?%T?PDW{ipJM3rpL!x-IP(_l43@`hqEY9z
      zSi83<2@bFmfwW=hsfaKRLp(#7(Sp8~v%c#JJ9K<+%D@Q%N#uBCnFhoA7Cyj9hCYh3
      zB6HZoWH_-eSStYoA5l-=m}nXUI3>$I$Z+MYn%W+1nHoneG;xNi>v;91(mQKm7$Z~`
      zUM@?EWmTkO8C~~HjMB9#HN(*NOyp?Z5HfQUV+>{}c0wKqZX(ZMI1R@uiyada6wT!&
      z;hMNe9)3M4)BrA7_ym{9QEYR!$wLa;k&#!dBM?-qv&s3jwT7Xa>Rb?BC9Ep{McISv
      z7LMU~4{l<{z%)IoH?`QprywnZw4wqWrB)rNfQh40eZj&l+>SadWoAM;rmB$Ju&!>p
      z%V;#BNK)@}3k58ZUgLn?h(=HUE+x#2ZHsz1Tjc>MnfQX?2v=KUcC;78c+HIAFn@jB
      zt(0U{OsrAIxSG>`V{e}!Egz9*htKN5#0I4!q6M8aS|^dzk_fAQ*~DX#s;PM-wX`=U
      zn<5V?l9-cCsOFJPF`jodnx&dU2DYr%Hx?@L%J!BWdh(%NU0a;rRu8N*5Gr%J3h7n9
      z8Q5aMksqIdgP)jjSw#$zTnGJi(zp5@q~sTkR^7BJ(key2W;S<j>?P8_)BF%D8q@R(
      zTp`=5I83u_WQQZ@1=OsMw3wRp<6UJ<H-~0265Y!<!ms2f&!+#vz(#f#@BM=hvoG;+
      zA=iI;7el%Jj2g3QJg3HSHJ(@F1v&0wGWViIHjW+|ZxF|IVz^0>rg0K8IE~Mc!7QE6
      zVG{Fn*B8j@mZCo%F~szJI8T{fB|;`&L`*uV)|5H1T>As`FXgvZ%r13OP+C@G6>Bky
      zIvXoYkhMHBvi)<rn18X){cfAP(Q;qJNbEjMrBh`jcgp$B{${L`*ZsD1+M6K@FY%Xk
      zFe@6Ehgz7sI+zt5%qDs91ekj<%&HEisDTk$m~|aYQ3ta{UQZHW)?%3ZI+zC<7+(wX
      zr4HtS4kje8W&+Gc4D(P2^GE~pObhds4(5>#=3DamE&=9o4D+=PW>W+6y%wgVgW1%<
      u{6JnmCcy9*#>VAX?b0il@-D=Fv7ZR)xfZCZlW;T=Ka<2ST8S-X`Q(3z3j|I8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFrameElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFrameElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..396a7ce3e21593923f4ad2f2ccff09f803dafdf6
      GIT binary patch
      literal 2533
      zcwUW^OIOoC6vzLAmBtc55fR@{q!cvb6U7$~0X3ik;yJi6w6Tq*8Bdamy3mCi-S|md
      z=myVm;Ro<TdAyUPrM5TcxM(wX=70b9H+M4m{paT|0ApCnqC;S??A44nRo5uVs!<86
      z?s;QIR_9k1%vs;6+IL*LYI|W88G&P|(uS&2;Dq$c#>RzWld9ECp!2%pIpIx#dwDa}
      zbw(CzN<Lw}uwGk+Yk6g3IrJT`%*+h03S_2b$<ARLx^!fr3G|qbXD`;O>$bmQt-H2B
      zuPKX`yK4E4ij&DqSaAY@p>&jH`U!#Ua>KKIfs_9MFQ9vr9K5oM_T#0y3ZV_25R^us
      zyKIM1ttsi3RE56$aJyW?fI!!CrCX15IS3rkaS(?Dc9Dewm<&n0UJJ?fbe`!KN6{U$
      zl;6u`uBvj!bR5SCDi^es8)B091B>@iFV;omru51)c2LxCT0nCtDp5ph!PZ)`5D$AO
      zX~FW#jyG>R<w~ewggRc0W-8GPX@Y+>4M9EZZkRlAN?}FAIjR^-Hq=DinI=VJIf=4l
      zut;0c&__WK2l0*;<&qsZ?<m@qA70aNmGC|3M{}x?6FRQrhQL13PD$z7me<lx_7K+M
      zo@}{i@@w(QOzN1zG#LhIhW(7;nmP{xtJ?`GpcB$^(U-1E3JvoDJA!&ht3lH$U1=ru
      z>EKM-Y2ee*bOzB3z45d(ExnMgL;YF^4A7h1{HbWVFu7$}^NaSZqb}zFa|O>Te0u+=
      z68*N*=d2eQb>%7ALD33D8G34kk<l|hko!*K4(RlsqbD#<+N;<}qe84hH+q0*v<th*
      zMU8r~CsNa)(nwX>i~gj-7_BH(w$Qt86Z^k43Uo%(HzIRAmL%o^hjAoHzfE?LHKmVi
      z;%F=26lG0E9{mZz7T`&Oq4U8h4rY*nnPXvwIG8~W#-yx;6qtMhGt9vh7??*a%qRy_
      z;9yoM>q!dCnFQu62V*cWPg$5T4#wbMo>7*S0&_lrxxm3(WMFI-<`M^Uk%M_bSuayy
      z`VyGSxY7<YzKLsJTVNy$a}&4PVa5+`;&v-cNLjTMm>JxOU}m|_%rTvL%fj5{Iy1+0
      z<~?P7NP(G8I&+VMxzE6SWMLLKnEM>eC(8Pq0%ImHi+GT@jYcs!h*pj-O&lE!j)zh7
      F=r1sZx1<07
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFrameSetElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLFrameSetElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..291b20f97b18097b3e56c0840eadbdb8244ee83a
      GIT binary patch
      literal 1115
      zcwUW?Ur*FP6vfYA+16SGmp`JYfUwYA)CPUf1Y$&RqgZ*^UH83PCZ(k9nErA7So(sA
      z4}JhYl<`itqG4wf)1<vKJ@=g7^!Dek?>_+Sps8bu!48tb`5Z^iiHM!kJdU0?ha!H{
      zd+)YWFXmmIzm9m!lU#?!usTtFp{g-7L>f55r~W@Gg&{+2FHFMx1;df;PBcCgej(+%
      z?wR+=b0RMZoNk_mNubzi_8GJTal%bp!8Hpy42BsuO!#pT4|v-11`%hdyTbRPzL$n_
      zU2SUlX_zszCZk+Bz%IkI7$!VrSpN@x1}mZd?4#%N51qG?VvL_Cq=rEcczz%v;+eOb
      z<2nONB=t#Pg5i#ZW!z<$r6w7<pOb1(<m9tyD?XAcSI_<gE~r}iGH2Do8XiziHkPxc
      zXi|?yo~$E=nSll!A*E^*-YF}yD~i<T?NCl+S^eD~OJ5>kG-Db8{mj$Q<fv(Nl~z4k
      zY4kK&+YcXogZY)}DOhwj=?Od|?Q>kGsx{K#24;Y=n#E0WkyRaYrP{zeRWfM-i&er7
      zy^$)tRljwP+g~mMYUTD`X>N@ql{v#b+^^bSl3i&{?c3*AxeT~ZU9U=y#R}ms;1a<w
      gy4F=N8w!}V5@u5cv!Q}{M_uj&m_`M&Rrc7w0gTP-!~g&Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHRElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHRElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de198963440dae6c79983965f5b79662b101a294
      GIT binary patch
      literal 1596
      zcwUW@TTc^F6ouD;LWepEA~!_^x%L8#<swDU2qHnP#L!ZbzUa`Nv}5LCI#X->O+M&L
      zO?>bN_@j*b%uFh@XA&RU*=Kj{wZ7~*{r%_XF92CQiKCBUu4Xs2&z7lG9ZRcwmbtDS
      zI@WRVP5$`wg~=^$dvU}VW+QbS)gZ%+)2L~!jmjm}6)T3pJ;OG<rwp%>`AEw{r_vPi
      z-TVjrldhS%UDFC)!?0_TPO8KZd+t<u0{ytAA`XRNIB(eeq-kC7Mp3^oIm2k)spw`&
      zZy4enHe+7ha2Xb&Q99_m3<FNf<_(7V{~%{jZQbJTN4>(&PG5@r9&*YT8V04ty?xWD
      z*$iXJRIgCM6s7AzkpROT71OxOFhXM@bl)S{MbjgvrKDs*vSh{WM2^d5N+M`h#RJSy
      zklPcqEE$r&n*>pwIEA`irLq2Gs;pp%A#OXaXo;AliWJfelcYRw9FyyISDF;DOy2G#
      z?^v=NV6Umr@R0o6D8C7bUs=EsR_MmaK2AUd;|o`?MfNUL)N_Mg@Yc?as#jOAL$9YL
      z%3!hQL76Bx%|?YE8RDvqcVDPAK|uSZrO;=9{*yz9iQ7x3AvzW56r-n-&aABdK;k>q
      zeNgE;K~G?tv^iX-Djn!>1H*t{jo>D^h-wtKe6@lxszlN_Cc=a){UTKH^yp+8x4(4)
      z2L1M)Z>|QC(465O?uX;g$j-N>@k|>t-GKWvb>MqUgb4otrwE32jCm~d!YsD2{Iv__
      zND7m|N-xafbQ`PPFt2GU9|4oax(~A<+svk9GjF9Zk7S$Klx^mWrb-boTj6H5WiUAj
      aOj!!^SO$}m!MvlX_Yp8VA<V8nv-cM%8ZBi2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHeadElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHeadElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b0e5c2fce7f37a26210a3afc66f46aec1e3b102
      GIT binary patch
      literal 937
      zcwUWCZBNrs6n+lWb=D#{dGj3vaSWvaKWG9mB51%ALSXLuU3V=tZ7=Cs;b-X=Nc`Xr
      z@JAWX?HXKImzXBK=bS!oxu?JX{QL!A4bM!B5ElJ7bIzmC>8Qv#NuzMx*-_DMbKl*S
      zqVpk?k&IIl24QX}@(NWU%&WwA&R%(asB2<`%4QG;>0835x;s>KM|qisZ@6E@H{paL
      z_MPK231YuwvfLsV+o~fijN+CJ6IH^v8^rP;i`p`2igqXoHCK5eY>6b$eK9oBlb}mj
      z8Xl!D{08BMI*VmOSon|Z1UnXy?4Alwem>gM2?nxr0*xV9zDy4j^(D}$ChN<C&?;sL
      z=4lUOfpFi(13V;5FjX6Gr3`FmDGMysORlNR-Rkz)PL;7*+G@_mJf5;ucfjg-38{QX
      z*0IVGPkzk3W(Kc!RkPTKc#VA1{GX1((A(thCU;Hl3_h!kl@~8BVg2BG1UA1dK7rSa
      zeS<Ns8a*6tV;sn<3EW{7UDa?mM^`b)m3ErKbm6eZUo^^W)MhSl@B5WOB_D6*;&u;G
      ph!Y;+aY28_a=A3qS1$16dcZAaz0WnKiwOS$&T<&yXCdb-{sji4+64dr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHeadingElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHeadingElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..851145ef67ae57e3a3d5f66ab9fb875e330a96f2
      GIT binary patch
      literal 943
      zcwUWCTTj$L6#fp>-C8T)auHAj1!Z?p8}vaEh;bDRkm7@^`##&9l#+I8x~=%L<OLER
      z`~m(b<C)T|m+dB`N#~sDck7(_`Rn@+0GoJR#Ta4TSDEuQ3Y}gYIVWipzHoNqXuo~r
      z?n}`Nl)o3sNUF37gRn9ZJU~?lYjNT`XD_|KP{VqJ%1)qy^flqI?vB*mjlE36x7}0m
      zML3~QzH^)=tW&bn=n#x|aZg$p$1NLGn1o3;Q1U|-b!E~P-B1#0ZtRJ$Ba%S(#io&-
      z1bsqdbd-PdZxe3BXG$i7)oa8j*h)mQ|5<qQ)5ilHVkka`&=`X0%d`~+z9P)j8^b^o
      z^Xx7(!UAE@#y#98OfgNHwo-<5vy_#d)JsmO%-QS@EN9C&9c{E?;~^fgQGdv2y@XUg
      zAnQ2J5>LJl^r<hFp6zo@WGmt^@{jUu9fzT($=yxv+T0nun$3-;&n{t|b3F!|-xjaH
      zE5>f&HdoCn940Uc<kb}Ju!^o~n9k8AX1LN$vzRL!Hu;N2RhzZD7g+c<FsS6)JGr=h
      q1u4V{OL$Pw->_UR&Gd~6EdL*{#jLlv##|BMPr!K&L;S4foVDMRiri5E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHtmlElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLHtmlElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ce086305060202dc971151f5c39770f3578dc82
      GIT binary patch
      literal 937
      zcwUWCTTj$L6#fpB?OLng%1!XXO<WeWK_4`M5KuH=st>U4d$&wVO*><H0e_ahK*EDR
      zz#nBi(`{hGb`#U2bI$a;<(&Tcd-)r{2A-N2A*=*4cYef?bF5<LB#Wb0&Yp_*+n?Qi
      zZazdJ7BVwo5Eh0auTV9@qDlhi?6u#Ax*<lWZG|$-wh5n_?oiP^<>wl{>3;K0Jty*H
      z;2dR1D1(ZdwGP2}ua1R<QQWp+qD~lhLn*%GaaSa5uNw(M!&SZ)b-X0heR*kQCt*rh
      z9Ui4G{3c;cok@`pmj5F=!IoYu((j%xz8)Uv1OwSQfyNN5Kx7?}q@j|8$>!Q1w2oPV
      zdD_ERAk5jA$3wydQ?>DK#=vf#vD#|0VoX);R@!GfRmJLPs|6d2SYoSm!0K5Asd`7&
      zk;)Tad<^yAX9manQnT2Hc#S-1{!d3?=xuU$i@P>=2A}oT`tuhTuzqnp0-N6!pTHZ&
      zzQrA`T0I=@VjL){3EX29T{UpOK-V$Jm3ErKbm_3cUo^^WHD=E7;OCV=t+?JQ#O)rW
      p6em2w<C4C^a)mV0*U$0fX24x$y(=`P%Lvy2XE_Y<vs`di{sG@c+Ry+1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLIFrameElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLIFrameElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2cdbaa635fc40188297255bcda39be86d32647b8
      GIT binary patch
      literal 2730
      zcwUW^OH<QO6vxknN<*!nh=^|#<Way1zU56TFAFmY!orQAjcG7VoFo<9=)#RI+~~rM
      zZu|tg!5J5R06&!D|E9OKz=`8@Xzw}q|3Bw<Z%+92`^Qfr8ljaqH3;f8opSnl$xavC
      zQo0zF?9p`AEiJ4q=N9KYy=2_6jgsL6af%7*iqzIrO@g{z&rEM$$=9j&l@ru7ZaG#k
      zDQKxb7g;vz=F3t(mfO;w>1kVc%=BvDS&qqM2G#||GH$_0P$L~oQk*nFtvSmvR?4MK
      z!&}ogZ9`C7&duxgy6#yrR>@dUw0uGTK-q;qCg^~>?HC?T`ycdzk`B!NQ$24yxW6bF
      z_R)huY6NMf5zN?@=?H4?AJ{L{s1x0FsYsBZlSw*7rv)8`O*WkgAloblsMOofToTt=
      z^J^`Sah`SAs4Ge5=>i)0`x^BzCjR-ffHJ(uS=TEVo<<i19egYkn_&V9f0v@VU5%RM
      zF%8Qs1{$R>Ma6K9ykE`30Zq<z%&g((HM)fJ*@y~=u;>5XQyZ0KD@@C}XIf6R{1rU5
      zQkbbWY4vw&YJzImQY*4y6@sEhH_@>o*_MgQ@#++{Z572)U<Jq3s2zb{3D5@V)x780
      zHZD@5X?fmih+V&K7k47X9!{PW)aZLSTazDVDzl}?7BEDLNj`qnzYT(n>jaqE>hucg
      z#2D7U({*#5Sar)@-k7uGOLT&JRW8Xnz~q1he+TfNr-Neh-9*%kXbn*ezglW=X!tuN
      zzG2-!Nqi^pOLP<3TXYDkR7FQE)Jhbt4$~1-k*hX38me(`SjkSu(5KR21Upg{PqiK2
      zp%Y(g4VuFAL|8mok*MN=&d^z9pGLW`H0*;rbZ#%;EL@qeMu$T93)l%5floIF)5E~b
      zvoO6JOb-W>gKIegrcc52b1(x8%sm!nkb@cEVAkQ<h=55cm>~{kn1Ol7!lXHvVGiaI
      zTzUk|Wd$?B!HhC61`BhQgBj&uw%~da0dq~kT<2hJFfc9)bBlwy!NCM@l_OwoE0{43
      zW}Ja}!NN>%FykD|OSoP|z_crvNe*U;fqBis%y2MM9LyWI-bTPoE0|dhCd0tIV`1)a
      zFc}W!JzO6mV6qBkj)R$JU_P=iiyX{62lEN8&k-;S3TBD!s%k@Fj0$2e$Co;eh8jmM
      HjF$fZSW&My
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLImageElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLImageElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ee11c579e413d1f5fd3df22408f07c8c006f791
      GIT binary patch
      literal 3147
      zcwUW^&vO)25XZldY_dZb1rrD${s01G^8=QEKTt3b5@H56QM1Vg7nRKJK4*uTAE}vH
      z!bJ~W^x#DgUi9Ea4;EG6Wv%kyAK)Kl*>C0rQoB7>9Co)~zi)Scx~F&k{qOI80L;QI
      zVxPcSC+L(P`Chpd`sH@wdzZ?Kp})MoQn7s7k+(eQ%OEMDAaF8Q`b;$>a5{{f^3LVv
      z9#wBPfuU<|;3jhdw@a1Wtczi@qvTgB5A26_*|P(uTumZ3a2U^IO`xz4w&XAdaKJ<n
      zhQPs!8_3m;-;mL|-SDKqNF{9AUd@hNb=J;8(spBkiF}m3^j8H2!<|4z0^=_LFJK0?
      zFXL^yDL2+Eh0q622udSRbY!xcT8B%M{W=4Ohaqs>#H%<VaER2Z)_g+OjZQ*g=Ss|I
      zxPrxax6%<Vq^9b;Y2qYKQJuK2&IA+0KNN!?=RMa644k3K*~%nuti7}gsUR^>5*V;O
      zwH@gt8T;w#W*D_(WMGE;jnpQ8yz9?2%hGk)q#r0vS_WoG*-kyGiOVM5!rKC)q_cwF
      zKG^21tio>ALdnYJ@t%qIL9-i;xm06JDoag3Sei230Rz_+Uux?*+E$aY;uU*4ZKQ5s
      zk>=&bzP+uAFPZod%K}H!nS`FSgBR(gp3Pe4EtKk6D-{zfSfy-nUN)|sx@w1z(p-X4
      zA0U`Y7&wbEZW^dkEsstuI?-MH{7zqFrh4Gji1c@<(Ku>m54@@jHKvVNQho!Uk-rm5
      zU)54$%KVu#HI%rfXKIuG;hve+_RMtCZ6$33bQ;`IW;T({%p9(Uov107T=gP2#{Atc
      zs43tS&1`@^gY@b=j)Ho<&}l!N*6CEBUt?-|=KNn6{*&x|FzI`ket~yMdj&6%HI?b`
      zG7bW%bqKFe7G;fKG*#0-oGex82*z}US-MfG;?&5|E{;8YR$wS~UrUplnM5ZScnz=X
      z@EepaO-<p`UA)l?I8RYG(;Q<O;W?m!p(l;g9LzWav&6!j<zU7+m^&0z$$>eeVa{<d
      z6AaA9EX*VaGr_@ZP*g1krlet}IGAY$rq05g=U}EenEMp9l>;-QVJ@KD4|B1LOOJbC
      zS}e>vw5)wF7f*C?r5DDfs0TSPv$T;4<^v99j)4hSm>V3-90wCqRFVU8UBk@Niub`R
      zbaAT}<`D~H;dVdF0>Rwrh53r2zRrR9h&EEee8TO_8nZLsurTY~&a81e^DRYvmjkn*
      zcc#X{Y%(z4voN1>Fq<6A4;1xd4$NH*Q|DmrF)%-|FrRZU_c)lJDe9LTm@hQUeQtrb
      zm<9fog=ugLyu~f>Zxr==4veiAxXHn^7??j;m@he)76<c$qMqi!NDbqpG41~Wp}yy{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLImpl.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51b462af2ba6a52bb117203214547e699e4cc60a
      GIT binary patch
      literal 767
      zcwUW>*-FDe6o&t4Yhz<uYu)$d##Y6+fCzE9P(&f>MT?+!X&lo?7D*HJReTG*QBd#!
      zd?@iu8nq}cb8*g@vwZW<%**TJGk`@*NJub@nr^6EJGOG_IZ8cn>?LK}b9Sry+MaV^
      zOGq(vx3*AG6d2NLmTLtY49QaYh#|G*opKpTWU^>OnxRv(Tz(KbHSSmSn#~!CnrG<t
      zk?vb!A16~m-D)t5YrpDH8S;kD^?+}CM(A)iU>GQsHP1Jdt7Rir)~u)!x)>&Z<h}RF
      zD4<)2?O~WI{c*myqHOYDhctvf>0T{q=lZ3t*t%;fmB6=LQ~jPPx1<hh=iCTX86-W6
      zK@1VGt~Wl2)Bhu$Fi2<bGsW)>RKDbX!}46>SG>?S_>LuBy3lf;c`=4bl9Gg2Ns8##
      z$V#+R$TRY7GY@FLqaXp9Y&uFVpo46-*+4!=K7~9w<Kg8924tR4I3_^x_6uO81(1mW
      z487=!0TluWRk@kjxqI~Akc?aQ3CTxAl}6VIv>CxBngcORM8g<~4#;7Yq6Ecb5n=od
      DLSd)A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLInputElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLInputElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22c5cb07f53541d074491961ae8f7d68f0852ec7
      GIT binary patch
      literal 4906
      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
      Lu@bLZJ1_qO_G}K5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLIsIndexElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLIsIndexElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8281f93a2ce446ec582e30a13c4b75c8e49da24
      GIT binary patch
      literal 1181
      zcwUWDNpI6Y6#k}7W5*a;LR+A0O}8XYTdTkU6hJI(X^^R^HstO&Lu%wD@<RKw;1VPb
      zh%-M5@y0Rf5=S7*_M4e+o9FSb-`{@#*n%!$f}z~?V*S*0^p5Z9$C2wi)VF<iule3+
      zgblC5Pj?*daxapQV^|yu9-{ILD}K<`Paaw4P@{Sb`DeCgM=u!ORgAH^+rAYGc-{D9
      zel~T-^t$>{6xd!jW2V|-$i4A9T)`x+sE{BtOdGbx_hYxsgQnSbI789!Ez@b4fi1@A
      zWG*_kLx$@3C>QhB8K(Rbj|U9P{}G=-^-PzCJ=5YJ4jUrGNPG$*Fbq<cN4tLDGOSjr
      zMs_#F`rjxrZV~q*%_v}4P;m!$8D>c3zzhg5Z24LxqiGim_NjYy3HKRF|MX=j2#dgX
      zdsNR-)DdwROZ1_82}ERDQL&1(K{lcGDk5Avj`+B28BHpLXQp#mq?T~fRMfCePT`1C
      zIfIman3N+w4lKTFixaYtc@8!O5hZe*q<f0~tQ=i*@@Q0`Q8O6>vQ}H)_y*-G)e}(Z
      zsn8pELfEIcN|iRi;Tooaq?*BXQV~@VHxjgrS*nE79OhGp$Fw3)idMYY$L*iE_hsmj
      zPgb5M`sx6c>N7mRVydu}Do9$f)W`B=`s;IaX-F@llG0yNpd=j8YkgENZ}Ba$_7aWx
      RbQ5P=T%zqTx;7Hd<{u8_6o>!-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLIElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLIElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b16aac2a3e9e7e8e16c362c13d7b5241d07f3755
      GIT binary patch
      literal 1224
      zcwUW@T~E_c7{~tyy0z9SIM_r{L0(3;0TnRO1Y$&iSS?)0+<iArN=;u#UqHW;7kV=j
      zFZ=+0DC2XwId$t2FS<VG^#Ah9Y4_vjx9<S9@L0wK!;%xE#s}Xs&O+ZfPke9NI0*e$
      z&11_l4?XVlAdw+4ERNL;R7Hk`FmjBmoz7pXf1((Qdv4$+&lq0o*4W5{u#*b;uJzu&
      zv<=S=9OE>J+`!4%skIoSm*E*#F^TIMWGD<%mK*Ss)Nk{sX}3MjP_n{~?X~R473=<{
      zl$^UU!^(J+0s1aOA-oEB#IXDy<P2J1`#ip|JN(^SQ}mCJQ@_wK$PQ1MA1`Q{)oY_V
      z1#<$G1S%NrYM948hG{a1%Kd~??KB~GRnIw|yk0r}U0BYuv_#LMhKE?9o_M5ZEytAq
      zVibaG*<MPfNxfz&sM0ZBiVabrYp9{lFheRc7;ec$qmxwPL8hdeJ=jeR1|CsToR?I|
      zNiqc<qd4_6Ors7za>WNx9)9hc!bk@}{B#xQpHqM&zA;)|qg9hu65W-0V}0W*)Gsto
      zK%-xk?!Xh$KE(~1>OCE9VhYHnY22a|F_kcrsTIu9B$~>o^c%M5iBQS)((Nwpd>#}O
      zv+cbsT<b~t;SBfjpl^RpaalCk8(l061MZXSMV3+NBm4oJBN#d)EMsL9X0?m8PeU+A
      exiAf^kHW0Zcd;=H^M+j37?>)R3z+T9v-1l^`2;cm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLabelElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLabelElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9cd0807d956a8d48575a4e8aba0ab176241843e7
      GIT binary patch
      literal 1380
      zcwUW@+f&m(6vn@$r3o<#RzSQ{5a<PnT%6IVIwFXukx{6;r(tcQxj0EG@?Ysoo$<l(
      z*+0thYzVcq+tKN?IeYdy=lku+_Sf(4KLD)Yu7V+kxrW~|K6|cl7<fiA_S{utEAVz|
      zuT0abbN8vsJ?_T}vJBG$r5#m{VI~M0#?hMHrRwd*kbB_xPW*`BMbRACbt|x2LS8lB
      zTc0e$wfu&$ABT?LkYq{+4B5@#kZZ``oDKyl!>H-_e7EJ*d04aRE@#M_fo-`5R_KUz
      zn#{&cCt_F_jM7bCWf%^Qd>%5){s%mR?pq#@K3X<^yZ2lm^uZH?&@d<s9&ZPsNAIOr
      zGUbyL`==->rl|HEWi&8c)o~5i8OEr~Ybzu{XW;Wi$;i$a?9%M23T`qK{^?6+B8v^%
      z=27&LA2W;-ZC`&CGYlhEqWZv(1>tQSbC^FN6g@X$lGa->A4Dh_l^&h3o{-fY2(z+|
      z3Kq#M>N8uA6v^*Y%AZ(if|}+*lTdMoAwz?wY}Cop3v8Z7+J4XqZNBY@8#X1mN6W$w
      z1p>{`cbNW@Ib_AXrPT<nYP8DIQ!Q5(m%c&!O7ReM`qk(O+#~IMoTsRKqQeD@0!cK6
      zi_}F#d0a}=D#j@iP7|0+9oA__sI+qaavN8E;>MSbM=sfUnDp0ARB3;PTbNEetfU>3
      za=y^UY;XCKu5zVQzJOv{{+NIgI4ZBSQR+S7GpgE2dQ7H=_<O`9Iu4`HvJA$Mz?f2)
      W6&Z{ngLy+$djnurQ<$}+X8jN3=quv@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLegendElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLegendElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..763de42e4c9fb3f3abfb3daa4bc8167f6115b85f
      GIT binary patch
      literal 1372
      zcwUW@-BZ&*6vfX%X+n*H6;S-7BBdWdDDa?Dbwm+SBco9Jo~CPv=EF%+k^f3x>WmML
      z&;C)4cSEd{Zq@0uxw|>{oZsEq{`mRz8-N-%6pSzwZNH;`^jy6ic=|!?xoi4X;O#VC
      z7zVew-+t_JkNdHL48z<|ZBLbDm=8i*KU}v?s0Qp9vUeTdiSIK!D;Yy=w*spp<aOh%
      z`N7m()3^2gICOklvQus{WF7@=p2H~4Xi%UsOc;*OcROB-hYhpka)!JSSf<-FLr1LB
      z%}jjYL=1mH>BFxxj0J~24{6%}pl8s0)8o;5)8eo9o(hHmdSVb72F2#_b`W|D3#GCl
      zKTGlcH;Rf&)cb~Za$vZu;R>!YOp?n>GbBOp#ET`#ne_$i(&5z=TxTf!GnZzfh)v7l
      zQS_W2F-#HdfWL~H4C7{^ddH6h;VlgdC>|3E&&`;mtxn8`5lW6qi~6FcWqnN%R?$$!
      z5`{$rVT+O``K3zvlPFaT?K-xvVwEm|DN5Rn(p`q!e$WXmzU_!>H7mP3D<T91q8p{}
      z82uNs$cWoYt8rR2XqBO-TB$BAe?jgu)g#d8H%Cw4HfitRELD|b9nN6_NUBMkCl^uW
      zaUoHwn4(G~O=Bia*q}E;m8;}0b}{=M*FN<!vdNo!iNAKNO8psbU@mp2r4C9ZU+7}~
      zbo;{-?MknG5v8>K0Rbg&)L!kPe0szu)U}g%%%ns78F87$Vf0y%!RQhgLkd%q!RRuW
      RSJbsP1ZFjbSxb7>e*wA{DcS%4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLinkElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLLinkElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd92dc1c093fbb0e49671ed2611f0d1de7ce0d52
      GIT binary patch
      literal 2470
      zcwUW^O;giQ6o%gmm4;FkQ9;EI5G^gJ6;MGzKFfzv)Pd4PHyYY&8%+}@Nf8&iaH9)1
      z`a4|crp~zV2l%5L&rJg|?a7RbB<G%c-uFEB<|e=Y{QL!A3{RqH6Sz{gYU#bInJ(GY
      zbj7Qh<LQiDUCV7`vxfC@*_2gjc~L|J20|+jsyYM)ZKs@mJyASV)nq2nF=JSUH!JWk
      znGH3~*u|PEpU%F}clETXTjlhY=NML*$)xfEktMq%V`xWL98qWj$Em4&RIBbtC#Ub2
      zQlKYm7j-kQJBAtu$%t1mT!BP5$|3k^fg|>7OF9BW|G_R0xAdxXU+G1;z4<^9w6GI_
      zsuAcaOD|)%imD{go=g=qoDtAUK`sV?b8+<Jyg(n-F50#!bxSo|@W^YY=8?<kB(psQ
      za(55AN0Nn9UKtL=F^J1#=!O~gGKK}U;euRa#IaP-9a0ONN~T&%H4F<xi;Wu9F%`!M
      zMg_V_+SDq+v2!~Xa}Tv;SL`n?9mh?KQ7gBl)i5LC&s9`$I`X-OTeNQ#iYVtca*da!
      zBBjzWMX#$8j2c_Mb}-VYazmC3UBe8WqN)lh>jqi+ET~{pni}Tm?K{$>jO%Cir*<`D
      z{HfjjDGEAiDyKVi*RV!;&yOkZ?&ljz$h~<bHDuL!r>L=noFB!u?3z=QD~9?S`dZKY
      z4Ye(FN~kqmN9gBq5)t)@(WsL~IT}Uisf~<YyZ!^Q?-aKoPWKo+fk~>J!cmGw8g)2^
      z<A5J^;{>^=sE1tJ{OA-#s?%xo1|7y|MpZ>ediv@(`}Lqfho7GD&Et)dz+B)0E(Y>>
      zvh%G;-e1S1X21nfE&3k40m47PGZ-Ql`cL9&D@>w}<hLf66&B_iuD8M@M(eoI46{zE
      zYzWLS?TmsM=U^rnm?tdEZ4PFFgV`okJ_P1g0CR_fnPgxJEX-XFW|D(>N~&ieFjE1{
      zJq~7?fhn;t_c@qp4#ptWix8NZ0A`khnPXrq7G{Bind4wwQh6aT^8w5v2eZV$?6EM*
      z9Ly32^OjWaLSQlh%nApy%D}v5VIFWWs~pS+Qhf}8Sqoquaxm)*%qJFRgM(S;U_O)T
      OO9)IhfO+I=9{&ZwZHLbQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMapElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMapElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f3a25d011fc336302bbcff1d41531c2242d7842
      GIT binary patch
      literal 1389
      zcwUWDYflqF6g@)=Tgxg~p&+7yJX%^{1$=--paF@Gr6y8I{N}Kolr{Sx+g<Qy>6emd
      zV*KonGTzzNQt1{+)Ar8nx#yfYclOusZ$AJmVO>EF!&KD?w9mGsRa{#;@@;Eb+i~re
      z<vo3mAHT4KEgWA#oMECXu!ZU)l<QTs(-or)^)DAg-@56T{szPAtlpJ#$29^8FX*56
      z3D+#{RJDEIGo5P0&fEb*eA}&vBx2}Sp&-F9pqq{;1@@uv%KXq03@P0;xOKoiQ?8qv
      zasSAyG0b$ga_+sr(CeN$!lT%(V4XpAxGieO+z{{Iy^;nxtdjwWVMtVkU-SegFVopM
      zJvzp1*Rq7+o32w(FnZbW&XGwljH$STafU$>c`Fa_*CWH|1+kWU1@{;x|9i?LMlc~G
      zpJZ6Q(m>nQN;EVYUjkDU1gGOmx)~L-$T0NtN<{)nVL-##sKHD8oQfRs6rnibR=|A%
      z$FlNH#600&I@-28859bqAvHvqbZ8|oB%@qbv4Tg9C?!SFr^knZ6rGK77&UUG)=-js
      zPgSg9jreLEe3=No=*yqncLUE5yQaL+>5hB5D4Q@zYBBou(%T=W54|O{x<;#VxCRor
      z{QSZhl3%Irfl9wg`Ue?Qu!ieY<r+BLzyJ_dgSbg7vP$7rh^C;Zl1jr!Hx)iopL{m{
      z9U~udb=>}mySX#m*Yl|dbxh~$$mYMaRMVly4bpf{{F}7i!WfF7gLH$Z>0prX^H?Ai
      zhDB&iwI#wxPf9NJu#Tm3;=XWuHzZOUkR}nsV`Q4`TVy^w2(^>5Cl}**LtT2Cnf5s3
      L(WRMZVNc-?X`4ni
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMenuElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMenuElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..275ef2ccf2fd9d7cf7cfef6390009e65cd0d74b7
      GIT binary patch
      literal 887
      zcwUW@%Wl(95QhJ0+&CCROQ1=iTzY{j2^Xud0I3zC7Z61*3mUS>?!-NEjqG!fV^bcA
      z4Vxmd-~o6j#2m*eQJY9CY|o7U`R4c7{{83YF8~`@w=qMwAFAB@n#A6bPQ2qRiJy9V
      zI(geY@DHTQU&k_$Dzjk`mZvJuR8_)?PDAhHSumzL2P0IsA{AvX3GZ6|ROp@#awFgL
      zKZ!5Gi-iik!z_(dIHA(+5v*N(Bpp<6*@cZ7Va|_~e4i%+nRdk>mV~;m0}=N`8kxK-
      zTG??lB&<)jGG>00Fso0LObKiM;ho?rk;vg^5y+1p_KkxJ-r0fC5S&nEyE<Vl@2Jvh
      z_iI=r*ukjefN;yj5^fWktlZH$mO`0v+ZmGvdB%)|)`aEsnLQk1TdjV(XL!plR<O#v
      z;WS=j0<UkjO$K_X^E8leBD2Qk#brG)tvrFBhL2hP>MF3zyW#8-XI;)LzScSqA3gp7
      z=R3zUaQW=;6?o3t7r4SvXQabb%mGC-k84aZQ61L{bqzN-GLsh2C?{<29iy^4_2wyV
      zemfgbEy`O3+#N|uIN=WNmhG<?SD?9l=@j?Q8{Fouor2LQE&MaMh&8704_5R%_zPzD
      B#{d8T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMetaElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLMetaElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d120276151133ff1f1a3bc543c8d82179b5fd4d3
      GIT binary patch
      literal 1477
      zcwUW@*>2N76o&sPp-zmUC8P^`OGBEqCU5~#D@5rc7Pmqq%>_5$xTD0#OYze3Sa4G$
      zE_eVQ3US6UZPbh<6e&LE%>SSBd1n0k&(B`~+Gs17Vki&1SpVue`l0XY!^m|W>)XEj
      zs=H_G@yOh9xXZmrL5^W5Q+cMEW?1%vfqwGD8dF_p#xT8Mdv^4k;Z4=ZY`X1Rv5>DD
      zpUq=acT8`fccQ@d29ipx$B^6d54nm<xS~Npo?*tYJ-#2ieI9hpzQY-chHsfp&kSsl
      zr^Q?}v_pnUHp&?MI>TlE#Nz?O%73skXrAfv@W{0I!TZ;OV1k_pgoZ&K@Mz2TqGXRs
      z)!L*qk3|N>8fjE8+|qCxcNk{LDh6*xB<#l#b*oe*+a#N=hGS#rWUihVwWMJg4`@_4
      zF=|y}lAn<#IHTxj=SyrK=kbuH4=HVNk<)TGw#-l%p2rF~_i3B*C{YrQ5|U84V-2}j
      zXwl6IlbGt^zdDWR_;FzIU0a;?!sMB*2~>JHMt6sfmp+aHa^eb6R-mj)S&p9hdZXF;
      z0rfk@Q_$#Nr6=%|w9jyrqWVaOYnTC&XcpJ0i-?N2k*MhfC=!$AFrQ9n(~3|j_2R-Q
      zZhku(FrAb)lIGe-k~U|!i+id41+`0Blf7|@`xgN>$@MbnF`puw11=H_qu+`QrYwQk
      zmBLhHFl8CcTXGp0Fsms{RR&X&z`T>f)MYR=8O#B>dKoaK6s94AX-Z%|NMY7wFijcE
      QM{<42fN7;Ldg6KX7c8j}y#N3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLModElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLModElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9d1bbaae470c3b299db8208a0e048f60b95558d
      GIT binary patch
      literal 1118
      zcwUW?TW`}q5QWbcH#Ux;CA6X33%w;NU=<!fYK15bRRNa=8uIQqD|eAE$X-)^7Q7UR
      z2YvuQ3Nh=L2FON2k>Z)%bLM>U<j2o%-vMl)V`7G3B}@wUQyjU&G<J_=96fZqX?)N-
      z^bXVEi-^ZOktPg=<*C9mRgF|>7P=>of<IJ$&tj<Uh(ySz46j<=)S2BhD3pBLd+&er
      z-N;Wu_ef?U2{k9}K7+BB4!MnUs5>xWG0b@);ctp~z_Xq|h&V&TO9MaZ`<YOEb!f<A
      zku$7KM;WtkGt8zZ3D4-Y{RcXOllU>uKllNE_x7a%m_R20rC~5bF873_YN6Gh)LB>}
      zX+Q!S4A&f7#|?&gGO5U2Nvc7i-0LmP`_bi^`R~9*ou#jGmL1%|UCPNPayB$3{buR}
      z+4UvwiI`hhW3YzQNuhpqJs;my7o*ZXN{cMu`$FxgIkAZcDv8(_Eu5A@|L0j4YVXvY
      zr>;kxK~Jl*dGG#L*k7ogfkWRmJ%PuheS!;Abw)Z|#2ipo^SDG)RMo)cQf*;@DwVW|
      zW|go-H%eu88dpwn_48Rktvuc-hdU!lHJsrlZdLYYG_D*?_RUk={ugkUT+hoH%?e=*
      jxI{3FJ}WwyRSnF(7G_-sv#Nu6O)hT=%ti&%Dn0FAAqVR{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOListElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOListElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b198cba8f45ec5148f91dbeffea69301868448a6
      GIT binary patch
      literal 1554
      zcwUW@TT|0O7>3`4LSl`A914mD1fgjQ#DW|Y<Sb(~9!5$pdY6_=iIW49q@w@H3%#i`
      zUibt2QI6lH6+6jxhKshl+xL6EC%c>9e}4V~P{e_RK8Cr5+tfZgwsz_{+F9t>%i5vm
      zyez-b-|1EmzOYTlbVCU#hUuQs%hVvljORDBi<Np;Do$e<+_GFN+-7*C>OHB4UcJfV
      zoBBuNlcCv$+t7|f-*Ov*m0X1(b>N+vY4qc|0tqt1kZ!r=+on@9{jyQBO@<NOs~dL3
      z@GU;?ET+OUD`3d>R_V6iWEk)+T+?Tmy@EW0;u?+_oEvrX<U@%oB;-kfXBg5AGd%Dd
      z%F-tFtGTL-Nd~FjUP^=Ej)E!NWtgDkzUSGd;qrESA(3j$kQn2tV0Ws-4!YPWwVJDN
      z-n4>;m?2)!i<c4bs(iZ{L1of74h_GpTauBb-3j;thvyXJQD7LQRLKpmB1#)12bav0
      zT54-*3Lc|Kq(DRxDV8Ed!b#M;{N<ctV`?s$ld;Bc00nrT4Fyl}jA59HVol~nx}vj`
      zf`1K#PZ&MVwt^k(QlB8vCo3ot-}m&f*YxY=k;O0Zq~NM9@iIDJIvn~8&}&aGGJiE_
      zc8z9bnx*Jh&KDLIe<1yx#(hxeJ59g9I%PL-gGTvw4mU9bM5AHcA_^akU^Gh07^4yI
      zG>%NCLy`XBDJefP(ZcPomkkD^<*f*=v?Coj!#&*Zl<yKQLR0xv3lHLgdsMX_F)|&6
      z|ALd4B?`kM%q3;!TTtUNM?#qeEGA{<NoFZ7^O~yk9x_=hM=~pTl9X9(Vf|Z7=Dkp6
      dlXfg2vs!53d0gg%swzEX*65hH%wANp{}%$1LInT-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLObjectElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLObjectElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25f196249b4942b0341061eef000d1e956885d58
      GIT binary patch
      literal 5932
      zcwUW{Npw_26ozj>NI#N>K$t;gh9nHlC_<1S36O>)ARQ8k2)^!qbQ*dH{az9RD$1k?
      zf{FtuIDm=+oFkiXj-KPeg&SPB(S;jbxY30hUAR$?w_a6uI^F*>E|T1;y2Dq0-Kq!o
      z{`ve%B3eqfd^AkZyjZF`a5$L=MAOMYr;|)93pAvYjjhd1+rtN}h_fkSC9Ra>qY^<g
      zJbiOsrGjRsGqFJL@<^UnQ941TYvZZ7vrf>~swU604e3a?bgykXVD^}Sgqey3LQW>0
      zih-HxHbEuz>8Mpk!>Qa)J~9MVG{sX^OLsDCWm?T}!V*;3l#ZB*HZv2KV?9~objEE#
      z|A8_HzgEzQbZ^Sa@NWMHy&!+eOj>rA8L@Wl3`&L~dS;M5f_yQ{*__TK1<kFhZo*p1
      z^(=}(lR0)j&y<m%seYP9_X!%qS$3EicE~9{uL@{3s6Y#gSL>q(1kD_>t^$>E3mVU$
      zMX3#%#at2hJOs`0(_EUTxMZe{4ts^W9m|Ug2;{S~1t*}8Hd&{}PYY-v*RhN0%m+cZ
      zi^>^tD=)}m1_cC-ly3VXZtZe=V3AkYRkeme%ekx5uFdmyc3#kMo)k1nC(U|4#Hrl0
      z*^p6ozJnlx12!h&v6Mk;x!+7_@~o|A1(ivMOr$g3!;~9XA5#r@#m=n=8m$ZGTpPF_
      z-O4%t(e@x0wXM2zCTe92YUFK&U0ZFdPTS@B{Oe4clQuD$6e!FiB~o@xFDSDjPg)iD
      z2=6>6uZpg)2RjYaYVGUdkX<^Z!=r&(t?tNOP^N6q2GcPO>fla{vZZ>c!L_7%4OS$<
      zmxPa~s=C9VeY_r3Q?i##KZPkGXp$>NI$@cqf|i1P*rD{#<u0k}P`w%RQzykapY4@z
      zBFNVvJ5qG0GikKqu}*FtejQ3XU0a<=W7d{F?mOe|DQHkedb%?b!SPc!^#~fre!*1X
      z4T0MU>Iyn*NmWqo=7^t;(vzIZMyb$Fg6>X&>R?*<u`_7AI*}Il<&!58a?DgT+-J}U
      zxuOP2&ro(Cdx4+rU@B@IHt0D%a>oqE<w*5Hc1<m4Q<hZCb56eYsy}QsH*n#V$4l7@
      zKhR&<MWygA+iEtu40@Hd?Y6C?*`+j6^J>yHq;s1qoI#g)zDJ8Fo!hi6uX%es>U0`(
      zm9KfPG}Se4S7xQ#`zePX-Ru`d(By(|L;kmhLz~S$JCccaajRVCa>?wFyMk@@iRJmI
      zrzhmv@^fg=M^f_Kn1gtrUa(N!Y*{GXorzeR<8m+seJ2-78EGbW%W(b~!T;=7NhR{b
      z%%hP!YUNQ0|21kBEL?Pl%5JkgjQsq&jQ<j?X5Te5ime*uN295N$hF4MSk5A?N*d>S
      zb33smD@~w@y21)xkzQprm6Q5u%3Zquvs{f*cV(TM-><xMenHb|hR(25XYkcj&g`ez
      zh2iyi;l5n>e5%sn8yLui<M0LjR9(2mMve-)IVS2&3~X^0Z-;LTEkZDh0ZcQ5S%P2|
      zBbc2W6&eC&DS}xBVA>(f3IwwZ!R+Cv$30+HYM2KR%qjq5LYUPEW)*_j&rz`<VAdd*
      zS^#qp!aR&%Y7tBqM;-EjS*u~zA(-_5rW?X+L@?_S%n^<{>H)Js!_*;|dH{0_!fZk?
      z^$6x9N1Yl1W;24>0$|QSm>`1Lf?&>b)CCWiMh&wS!E6IC7a>eDg4u>(E^*Xl511AW
      zvmL?g05De}%uWQe1HoM5sOv+(gb++CfVlx-+7L`Dg1O02w>)6lHO!+3W;cMj4PhQb
      zFuM^<KS$m1fa%aMd-z!_g4x?oPuwhk`2xa3$ts4~JFTDg7sA}-sINR=_R#?s<{(lg
      z0hIX~!laNg38c(Dj{3#}CaIN4^V3)abEu!}LS?>%FuioR80HWw(^m-d9Y=ld0h6Jp
      zT$rbkGRJ^2KR}pgkTS=RGCy+EPaZJiwKC5lnBxHEX9#l=!5l|0zi`yA9xx{~%qetC
      zr@=A(24S8@$8;JU)9)PhhX>3VeM~PPWzGU+{)8|uB4y4ZW&Yx*zdc~iX=TnMm<z=)
      zLO__85zGYuBTC69d_%yzf?zHJm~sg78iKiqV8$@aSPz)jHOw2RXD$`@jF<pn-b6if
      z3G|GZ$}rPBU@q&Pc?&6X1t>Ee!n}=?xq_6L!!UC_V6JLq-l2DOwuSDPGl)WtnmmqS
      zIga-b$2G(eV2&jo9Pew650EI=fG8`VC?6u28wiH~S18taz<jJ>K0z=y0L(fF^Qr4~
      F^Izz}axwq_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOptGroupElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOptGroupElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f34bf4d1059c56fa0d26b934f7e826740133a061
      GIT binary patch
      literal 1268
      zcwUW@TW=Ck6ouDm2N>ySE4H+Xmuf8x&~~IX(WH&B73*!(#3B#84RAuo%!SOw`lEc%
      z7fgKc2l%6m`%EX;z#;JgW}m~_Ykg;P=J%hUzW_AwFo!t?ec;8$7uPZRzH6LDuCr@2
      zefMSSt@(Z!y$Jkx_}t+x_o5sWhV_~1u`0{3=?4SjY_E4gB{5{k9@w58Jz;pQn=_4@
      zelHgCee;v`*)kl<8yF{1V0#0}PPNUTJoEcJk9jO;$U$XTG;NQ+i`^~{T2|NL3<cBg
      zSx(yuY_U!^mFUzC8EUgpCJwOAknztv9x!bD2S0=6SuPKUR*!%D@Jdij@e_s6Ff0ss
      z)U-oE)@PX4s~r_<3~E2!%Y)&Dh7xWvtdjP~_Z@C|BJeOGuWlTX%Ze@;QHR{ai|&fv
      zskVjTx`w;BM~2}n!=l8nBZkh%RV5D7>T-u+S+7nDRa9tVj!=lSs)ics3`^8D5mT0N
      z%ciA<<4EaQlVceg9-u)%;Z#sX(j>oC`4c}5di>ZHSEVGs5IdriMo51ceKPcxWuS;V
      zNUKY<YSBuer&_CTZT~?2JJoa0=sQnO;1Ovb<1$sXa~-Z=5lE^fTqPG#6>u$4t5~K=
      zB(0#BCN$_5p~}??t0P?hIu6Jt+Xsocb}mWH8E)Zr+WwU65^HKNjc{iY@Q}KW5|3hv
      x@DFee8|1=pADh!K<q`C66EMe8m@RBi!<6eI>`cPEp)PX<Oob*RV0M$9y}y4V7M1`2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOptionElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLOptionElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa059bbb702699cb730b4afe2a55c8f223b8e4a9
      GIT binary patch
      literal 2410
      zcwUWEZBx@&6n-uilGZFBDz31;uh<5)qV9`SL8PK!1hutleVeqsl<cGl)27JyW%mc|
      zhjm8l&VF$A+s^o-9M4TcsOjzMhr)e1&vTyhoOAQ>(?1^o%;2Sh0fwo%)6Q-;>}<_#
      zWH-EqeKDJN8@G#hjkQhBa-EwtZ*a#`kYG68H#UkIVmReC>)BVAs$Ee%bPQ^X+q~-W
      z8pD3$H*?F(+NM*_-f&%;n@)~l=&I#d-W<b9+UT1%?^fG_FV{s;@S2uWmz-ou42eaz
      z##7jX?=&QlVi++jhp)C972YhG6`M1R8E)0IOJ>s&`|vQ~ZCEXa|B>=VeWZWTedX{b
      z+3^kP88pXi@YbeT<qsb$3k^N$NrQ-CQ0m-Ua+?i?)9H*MH(T8ANKr9C*mXKdf#C-Y
      zM{ty3lvwVWO$vxwGL@Ei_C<nKGB2m#IKzpr=A|MiMV_ylZQCnE&EAvFlvOA~%4rQ#
      zIKyy=;=;ZQjs=fWSK1zxdQhgQOw26_b0S^NlmzdzhO;<Fysdt`;}YJo7>|)!oRyUW
      z$BTTMN;*J}_aH^iOBya?hG94iU348Um~%Q<c4~avFMU~z-me;d!p{tQg+EqH3|LJC
      zHCU~MJGyJ_-UTFvS>d*dd73O+EJfA@4L7hDG&5GByqS`zqK6o8_p#fz^p=L(pt&4v
      z^&~nY0m<K<sCUQMB#{~#6sUrJRl^CKOyM3LD7eqCujhlHp@1TFV#~DKd~IE{u-skF
      z&UZs_lr%iTNqSS2;IJexfu*~B6_)xJDxQ+1TS1I4BMeU!+;+3dmn`x856d3;d6Axk
      zQ)lTnNWX+Ah(4~vw4$#Io$RGuk#-6Cuj<oh&%KBChSmcV1Bw`+zq5qOVT4wC5QkCh
      z1N_w(_7jU(9l$|9TE#f6M8-q-KFn~LZbVc{A3NN^<i9xfSCnJOznS;>wIC|wXTtQ5
      zVJ2iy^s!SN{P<@Kp6`My5j>4d2)|B(d~pPy>_Cr~xJ;-OpJO~MVz<Qe$Px>~1riak
      z1$$sn@8Dv*lGQFLgOL<^P(9%H_$6LPK?=Sivtd?Z!(*upS7kQL%4~Q}s26=~$c4(U
      zMK*Mand{(s+=z-)OddCT#mr52uoM?lC)7qCG4nKHLd;6!j1h{N(BI<De;C%OH+TQW
      z+B@74CmlT8HEWnM12*wHG{Bo(IwvBXk0a9-2qp3-^~r!QF0@U8wz`BSBcVx35xDk5
      g=2}_e+H0w6&t$HZWv=~Bs6YC+_B3?uxsQ4A87=G0cK`qY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParagraphElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParagraphElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..389ecd8e9e23da5eca4dfefc9f77d419ab3b1a63
      GIT binary patch
      literal 951
      zcwUWC-A>d%6#fp>-BPRI3J8jVg1A3m171i1F|MLfQjL*i?`O-TThdNRw-p~tZ!qzK
      z2k@bcXG*ggwwstHopYw&-<j#J-#;$^Y~gVg6NHAZGUsa)I>&M3^wTKZcJ|}wUFU=Q
      zNhHEg#A*LcC?l!TDh$HPSojcCA*{!V@0>mJ{y~)~5-NLv3ep#ZgStCbc|Z0t4c~Q7
      z#24X&Lix^Nngq%(*=ckM#_RZ4TA0Lj8&#NuX*W>vV;1#f(h<E-5^8SjiLfh@K=;L_
      zk@kZDp*23r)d_Y9*WxoJ6T<3$3_!4zh~(f@c=G7;dmUqB0FI$C1k;ykI}Ch9n5{QP
      zfhHE%U1)>_!d)Bputb<)nl^2x4C`enE3MZ{&Z*4V91Jbz$~awZv|{5S9<kA2#OO&0
      zsr-tp!#GPk`8Lq!zBJ}^pK2<b5nm;b%75)741J^AO>x)Z&fwK-wl+3@!1~Vh1Z;j=
      zyaLY|yMr5CH7{|viD@9OW^jvDbXCLc9BpEjEA2Fg`NCm~zi3poS-W$N#cxA{O1{09
      ti`$owLY#0P4+{EAmdmA?-a5zf)qrhgy~;J_iwJ)ME^rv)XEo=n{Q<Ll-|+wd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParamElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParamElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8477d00e02f90b04c6e7c2f25c243f5adcbb8ffa
      GIT binary patch
      literal 1468
      zcwUW@T~8B16o%h{(rxQ1SOM`HD9|rptzKvXF``INS3;!p!W*5INm;WWWIsUvmEK_D
      zg+IU_WjwRH#fHu%X4Bnw&Uw!{&(3Ur|M~d~KnpDmV+_lEH!{9BwsGV+#&PJ_kBn{4
      z*=@fw_qorVSGI738*0cg%x79JTzQ5?&+i*&k9$L|%iS3Ao0e;Z&luj+%*?LaUN4gN
      z4f8WU<%Z4OzHt!xmfKfE>K%sMOYcaOFpeuaG!z&nP0JN~k<%4^n|E!&P&U0Dw>#Xo
      z<T?%J!ec97sAi)K({C_LcxSHg87lt)&!D^95y1)XiNp7=CBg_iAxIB{))(Pktfp)A
      zQC|VmB{1C5aT|9SrpPU4ZH1KXMj@50)D&Bz8mI+>Ni(XFj-2yA$2=BjPB1d3swh$)
      zihQN^*Ar2|lH6%h$?$fp3Y6_|JEC-r_VrXsiUw(vHg8}^daN=OV^h*d4~DXXRH91<
      zUgY=0jwMfcPH~Rw5*G{fp5yeJp#MY>Ir-htsz|Fgt#b4%G@7exKT!HkdJH<<OY{Vu
      zkoPIBl4>MAT*D*~t0`QkE>e|oBX-l#k&=^UFq=+jQAWD7M)~GB=DuAF$j9N$xVfHK
      z(&h|zaW5@@PVM5>RNg$t{mXz`RP`e6F`FX%1C%g~u0<70MFF#;gjrU>R8%l;smjcN
      zSxRA6R4`Qq%)Sz)u7atmU=FFOlL1ppVHzr!rUK@J5@t;W(^SEHq^eIDFzYFd5!XEY
      E3v$U0N&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a8f379c5df8919ebc35841fbf939944d89ba7ca
      GIT binary patch
      literal 4808
      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
      XnKP*=s+_1*g{IJ)rcg+@czEmox+%!&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLPreElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLPreElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9164532e88f68c3f7f91d04d455ca9f25fd0b37d
      GIT binary patch
      literal 869
      zcwUW?&2H0B5QWb)ZeonvLP|qR`6-m5B>Y%~MUh%n6k3FlL5PO1cAP86$i7C-HQ}My
      zuqhG?9-t3}nCn_8&_wFOzBA)9-yDy9{QKuG0Gqg1!wg|Pl)3XYiJg9$I0Kc$kDdKA
      zdDVI2z01TwED|AA4F+Lts&K5TvMS9&XY?faOZ6{{P~C}Sq;?6fo8DCBej4OjzU_VT
      zzxYn<%g{MgStP>=l~$Kvyh!`PLIoFX)L;@8yhw_-dD0VE$M400Q1{ZnkGp;r>AWl&
      zY7h+x8`G_vdfz6@rXwjbUfVgW6Kv@xV))q)#E18;HgLu|8_*hp84C3=>Z<{v(rmdV
      zmU-An7c3C2*;vJO!Xm3&sq~mV#e`n2xOb^JVJAG#9FCbr(`|J%Y0buM++osi5~(qP
      z<m&Yj<E+Cp&jRr>(tB&1+0G-~$#8xFzGnF!tH99Tg0l;pbvQHlG~4$dJp2LcJI6Dy
      z`EKzEY_aw!<~VAf=rE53polKvGE;O^$6}#2afKs2X$g&T!X`h_s#?2#^$089#sjKF
      vd8dHeCz29QxPhBx`!mKBXl`FU!ma-e?s3=ig3%}~oElulI#URDi=K@??lZq)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLQuoteElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLQuoteElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d5b2408a62716850ab0a9866831fc56888ed6cf
      GIT binary patch
      literal 932
      zcwUWCTTj$L6#fp>?OLkfa&Z+w1d(L{8}vaF2;m+i#Y9>6y;~-wr0tmQRQy@`f{73Q
      z0DlzmOsPoNZep5r&Y6C<oYUWzKYsyO#k`3D!hDcq&eu3{PGszysyKS(?8^9{b>x1?
      zq!N3Ph()4I7=)R=&}&qMFe}r*Ie+cnK;2d&RMx{JR2ziDhTB(lSNfTTueoR57te{j
      zByf&Z8YV%>&0?Ei?8p;gVGu($OjHTOZkUMoS=<q6%j-mfP;;g4MQtw)bzfW>>NM;U
      z7WzlInSPCMN1i7lCCvRtc!HgHvFLvGeDUeyI~}1XJV($Nf*A<46DqF88jHQSD(VdN
      z8DN3%*v2HD5Js4!Ew>b-I+<p_Xp~H-%-8JxH5@Oaw6)KSjc1r;pKg!OLJ6sSH`cMt
      zQeW(cdf@evvA)zaHX`01PndtvK^S_C+}-7_#ht-twYjvs@&nd)t_NWA+u{>=!`QdD
      z$5rzRhx-@?@@fPRSVdPgjOOSn#<<c><CrKMR{4uYna$e63q1OEZBWUt*K=|E3Q~v@
      mrZ8R5H(4&1X8O_vp56|)#jNdIW1@)gFJPU+5I=J{=lLIC+t`c%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLScriptElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLScriptElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..918b4e12ac3d727fbd86ab340bb3c5730cb1be93
      GIT binary patch
      literal 2174
      zcwUW^TT|0O7>3`4(#9GAk%Nc_5QVlJBA|kT2ox%Z!Z=d6=#7T3v|-wWNm9TI{Y75r
      zO`Y+=AK;I2{5A=l+HM^$+U#!M_uc3FcGF+KfBXb6gS{Bq7{&@#MY}AQv}3!h6}@t4
      zR$I5ro4MWWzTuc>-bRU+x#h(WVHj?yt*N36qqbAfF6N9nRZ|>8bjh?#Z<%2`k!=~f
      zZW|RLU(BBB=ekzXt%A1iIi^*RtRxQ^B5C`W$I*`KDq>I=y0WIl_bTNh?&S2N5@+bi
      z+J;^_)E!gI!^MbKG+l;&p!|iu$k1V5Slpp%|AU@Ewe&J~&vb(yyxS5CP4vVdGz_r<
      z_j3G_TGX3JHtXVGxUFIk{S2L<G;Ld+-_)3U<?Tzz8YIm3RNTi9ncW6+#PgkT3f-hK
      zGPa}OAw&C#?Fio^6^}8-&@Fza>Q+5UJ*s$wJSN*rR$|<(WsAt9iWDX&(rt<ymqf~s
      zJXQ<>85APhIHy_^XmmjQ+%HRU!_}a)bWwL`MZp|djbIXhrLQI;XPuvj(``>A^9mLy
      z?N}@b=$9%MvBWSysx{j#aouWQm-ap%kc7FBL_Ro;6&0&kqcpcwTE8SMFA8TA86}8)
      z$54<VR@X6T#r0Rhd-U;)E7%riOQZ09_@nr~U2zPaF~#j4l-==Zu`5Q1v7J60^q0|v
      zh<K@Jc8z8^nnmcTq$Vb(z9asP#%)mPJ5Envp0o?NL8DZlLnkG`A9dp<rHD}vZux2j
      zy)+U#^`Sr9L8GTob)>2o_*#pP`io0`v>FJ)Xofo&3eC%;7QxZfL=|@%;a17B<|p(A
      zsv2Ar4+unTJX`~rA&uB4mg*U)Vzdz@Q->0(p^Vp1R;Vt&MzRx3q7i0?T-iF9`c6%T
      zFjF#^X$j0*Da;cY%(M*VfLw<yV6+fsMg}u0fyql@p2}cmWiao_^`QmKTnO_F&zoW9
      zt9bFH0p?f=^NMat6U_Wj6|Wm%OmdyJfLTD=hgp|(W<$~$OA7Nw)|m}iXIyf5EnqTX
      gXEtRpTN0Q{Da?)xW=jV1iCmvsz-)&wS>Ln!2LLB>djJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLSelectElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLSelectElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64b41b728a6e933cdbd85c98d9742872083d4ec1
      GIT binary patch
      literal 4686
      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
      aHPiErGBuY}5brA>z9qzWN(kTb!~X+_@3D&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLStyleElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLStyleElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d7b9efe5c7558ebb4b143fa7ffef3c68c56b8ac
      GIT binary patch
      literal 1427
      zcwUW@T~E_s6vzJ$jIE9;IAKij1wr--)G-tih!L2?mtu??yVzZ~JsCB9A#Eq}oxISS
      znRwv`@Ix8T(>0T9&k`@zp6Bd;{^!@z)8Bu7{sK_OUIJ4L>s_a(eX%XA<J#JJU|ZW-
      z)wN&OPxV@GW${-Qx49D}5Mx-GC>^Te46Cl!)h;XTYpPK<hWLT$n86E%w|RY{Yt?P{
      zgnVEBWPCO>%W%3{E$~dIE6EfZ46$Rk!;_fCtcnB_hB@7I`1_vS;$GcoS)3uIyKTd2
      z7@jH4Q8E^sn?6HsGRk%OeTEtL(%~M%+JC?^sE%QC|H5eVvyX2C!WcXu2o1w*mj_kT
      z7g!yJ>3pH7Aj6<^qFfRT_f#z7KEo1ek6hQ{h9ept2IST11>~}rm&~V0?*4W6SiV_k
      z2*VW>kFiRI{v^Y+#IPwQ&d60Ej#J(-4Tgn$VO*#nM-#J!LUb#rD5AtLPh}%*vNCSj
      zv=o2XQu?gnV`(a$qD+nau|_#bk$j~RL|MPO;0kuco=`+Ne~@EH*4&=g<|n4uqKsr$
      zwuC87m)<4)X6U=4FG=hsoo>*nPNx{%m11dQ^9PdODV~B#*CgG6UDEF1CPl@84!1A|
      zgwZ^1lZ%K_xD%=sEKnpmEg~ItDAPYel_;i``ndab*dQLJ4?=TwAc@Qw9^heA{*vrM
      zYbsyv<IyPKAyplP9_a|-A7BP+<ihX->*FxlKJwp2U{0hk8`vC&$(H)q8ijdBRr&;&
      j98E^RY|CIO5||HCm}fGWiVWtAsu~kub|RSPVa@JeYq23q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableCaptionElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableCaptionElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1a373ebc4c1c13b96d510c291e995f57a251ca5
      GIT binary patch
      literal 963
      zcwUWCTTj$L6#fpB-CC>Q3W!%wyzDMWgT81`BQ6>>)dyMkeYQ+WO*<vssra+>1ri?o
      z0sbiCnbIuAZ4=X^bI$a;otggneex5)Chj#cMOY72?tM#QZ!b-}eVxRQyqz?8+yCJA
      z#W0pVaiF7Ay^dufm2Sc!tkg2bs0N{vW}$cZIQR=yBT8sIi&Ugv5Z<@_TJfDU$PIkU
      z|02E$FBU5Fc6Ao1uwth(AXvS0Pdb>!c^6ICgjqjQ@?)M1Wmd!>wEQ#>@jzse>B~(^
      z??)rTMtziuA+`uJ>7kMtVf8;|Ah=2-a&#a9`T5g3lVoBBPGT?wJCu4mjzUG4Z+9kv
      zHkR037=#1DH5b=$gD}T5W4f&wHq13E-EUVMRh6?n8e1+@aR$a{#l>yhVWZK6(Sr(7
      z^({HOX`Ti0O=OOKx&DAR44eIkFO;X{KX@9JxmWJaao6Y0;??f1tv@`5^MmUtxcqi_
      z1)ebWDK2o;J;mW7W`Uxb!zETRRSTC3w2gVLjMD-ZONUMVVo=R)>&g+Xejgh&itXox
      txO)mI#R)fYtE9hVxk8%hYe!iAH{dH~^$Lx}GQwHFB@RRUtQMTRe*nmq<bnVI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableCellElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableCellElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f145daebe736d6058441d9b0103a232119296e6b
      GIT binary patch
      literal 3661
      zcwUW^&vz456vywQX*0x8us~7yA&8bFrHuteuz>vqHW*rHN{RuM$z(E_I+=+xlcun6
      zqYF2>aH9)1x^N>4To}(`p)TCWALa4hd9Sr6xpNMSWbS+Ke((F-A2Uz?eewqYOvA%8
      z>=BT&y-s1P<reCGtI&*E?%Bek-&$I`QCc%<uC-vf?p4=nSzeTelz<b7?mJ#10>=Ho
      zE_BbCyS%uF0!A)5o)cXWa6MZ}jJ)WZ9de&3Z5W$I!8JU)P>uq}vzeV-ML=r7uUi=y
      zg6DKdgC<~K$?>e^POD}GF@u27l5ZMr#Rwc)tIbr@bV30W$te99%m^6vyPg#YIQ0w(
      z2+%#FWrc0Sv~I5!31c7u#2_DZwXKM*DtdKmOTbVzSImHbmvnd;#sp}1td7!X&eduN
      zaWI=3jHtme3~HbQ>0j011e_GGA4LQ=7ok_J6XA{HS*D&GVLIHt@DL}d&^>SHFb=2j
      zo^arv(~OAkBqcfLI<}`l9!qVIiMyfNRjF?|p$1cw;}-QVri-l%p3d6~zUv1XoW+xx
      zZPEfy!kv?NTUo<Y^QH#xU@)_3&`wA@0`{0qiL=mLX*4vrgfjB*8x08*@1wsdpL8__
      zEw>G1pCf1A#lCw~ngtye;i`ZGaSQva!<MutkyS*b%NAvsi#l9~4=`59#TsK`6{)a<
      zBO{5Tgk7?Xx)op{Z{lfFF65<4+l#%in`1X44c74GZN@h4huizoXW3s5jCMS-RSiBw
      zPtWh-4)NaA;U0V>;4rnu_g%~Io+baPyk$FbDqEH58#>g$#BgC!IIaX$Dgi>tV4^B3
      zu<CbZyRg&g!0(1}eW(KJL~cuqMxku_ZA*g|O$nKD5X#b|LR8f3eulSgs^O(HDr$O1
      zHkCoq)}4BUqqm9Cx@5{|>(b1W{Z3$7*Btsz9ZmQeO;Mt763a4#zhV5!ABPlu0dch#
      zS8KRR;Zw^`oSFO`GQXm|2Xy?;;1l2i`d)<R(aK9dcmehS#MXXz5u=bb3I}3u4GyA3
      zHywg8bwdH4<Tae{!Qn?c;YZ@l%W-I3I;hYBUV$S@JdNITmd=kJ?ZNTKee(HT^7M}U
      zH8`c@v&a&2p?snTulHy7KB|`D7-Ne6|Ll%oCPbd)U~&vhiG`WqU~(MHEmW;0z~mLo
      z84hNWfvK=C1rBDCgSm^UdkHX83g%4?W}1Py&%&JJV5T`33ssE-n70(n+Z@b!24;hW
      zxxm4k=U{wPwG&`2DwuaUm>C8pVqq?GFf$y?15`asfVrYz-rIQ<cfri|V7~ul{G5fk
      zhHuFL%<PdKEcL^DfvPVPU`lW!hFRt+v%*y7D;DM!SD6*AGGC+Wn*^Afsxqq_OqqfC
      zmW8>^!IU|e?@;x90?e9%slfUm%$*)o``h#b3-d92G6-`A+jPGl=0{ZhlmJu5ca2~g
      z+|1a_%>2y4INZ$G+|2xfsz(Vh8){}g<=W&jZF<bYcwC!Yu1&w8s+R!MQf=}%m^K6R
      ugoOz>m^KIVC#wERfC&{$#KCkJn7>(=E(g=$VE#eX(*&4J1+x`v9{dLZ!7+pY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableColElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableColElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00405fee2018444530a7a5237a56e690d771966a
      GIT binary patch
      literal 1964
      zcwUW@TT|0u5Qg6mS{iB;<Rpp*lv7&{;ot!T6etJl6deW2g*S$fw!t)EniTv|Ug%Ao
      z@xmYAk8<2EiRiSO884dbw|)2BXE({uU*CTKSioKi9Rit()6hQEZ0*FYX;r^wFKXLv
      z?Zx4K@lZdu&Ae;x*k;Xi{1g%bqp|8sRhPhoTd!yrOU6Gc#!#SZ&2lXNnZV0TG1hq7
      zH5yXBT0GUyb<NhDigw`FEvLd{vL%5;-aRqX=)@HjDJTLxMawZ?HEPFZJwOoXE4qem
      zm-M<N&rverS1nH<7mw01z^Xvfy>QIBz}SEA3#g7>Grcq2FyFl`NQyRoqL3N^rDFP<
      zwpDQi1~S=pp@L!Ru1iH40=HC*;I=?7mC2@?KFN+7J~>Thm^E>o74Nd;AXih8jYd`6
      z#{+8QwKbYziufm#B+7hM!32$KRCU^4(vum14x<{*p0B<xmlfm$Qc~fT%OPNpC%qBg
      zQzSh&(+RmVlPxHiCr4Uvu#-g<OL!>IPnv?$O3RK&4<+UOaZF?i;mpe_R`8UJJkDr{
      zF)GL@1-W%o?^3W-1@xYGo$KL(yS+bonT!HC_mOqt(`NEC;)M*usgJ@iec(3ghPi9W
      z*L8${Dd!{%JtNu({gU*hUqwQG2XyMD(;=M_bXRiIGqc~2{z`ENRJx|=4lI*)g=&CY
      zsKYh%072A?>*OM%KJ*7_1p^exPJ<YVIxNsXQkBZ}-Du+Gm&*oSL3%wfS3^l;E^r5T
      zqw)>13#_Spx`}(OfLm0R4?Kn<guj5p1Vf9*7zZ=X!0fRwlN`)A2UDb~{TP_32qwe9
      zWEq$@EX*_qljUGaRCN>sGZVqgVy+!VYhvMZ3(R{K<`EvZ!)PN-JZXjbKvjAS%sf^D
      zm^E%Q>&#|M7Uns(nRRY6r&RSZ24*AL%q9o3#lW~M%r*zJ#liSg)rf(~M=(1<&F*iM
      Ca8tbi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e32ae9fda8b7d1d14980c4a07841a5004dc9737
      GIT binary patch
      literal 6637
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableRowElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableRowElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1962a990f0374690b3cb4bd2faeec24860ebca4e
      GIT binary patch
      literal 4138
      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
      E2T6Bf;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableSectionElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTableSectionElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..518fda891022373b4dd4701c96d40e0b657e1b6d
      GIT binary patch
      literal 3194
      zcwUWGYjYE26n-{Mn>5`5#!~1-t_7N;Y2+dz7ontFifJotY2~7_P2MI8o86LZ+A87&
      zQ1~E@j^jA$IQosR_$3T7qkM6gar{l{^X@K5r`;$Yn%(z(&pFR?o^#H-{qyf%e*>@^
      zcS8s$7|5HI)Kbw%<*Z_=U>A)&sbQ;ldTKN?rOg^*Qe<u2GEW$yC`>zqpn@$8J!)1h
      z3Sw3%pIY3TU1rrFsDhTmx~bc*D>&1iX&8Li%2uTLq0AL+K}#8$nNLmHCEd*X?8K%O
      z1k+YdM9_pb6(NKbtj*}A7^@U#MaiL|AeynVnlY`Fbh-96gLXkLD;R7{#V3hF3Yx7&
      zQ<M~Je~ug!sHRpF<#{bD&P|L+CaZEF6KSI$oEP?xq32Bn9sRM@hGA?Zx+X0mP|&TS
      z2fYf`(M^I5*)*H2*o?HZ-$yDx<Z!tLx!%ubS^{lRu@&10R9*$N%g4#TO3h@ME`+gz
      z>1GQW^=mH69R-1G!OcBg7@wO9Bd#DMEv&gYm!Pvx`>gwHrRlUoI*b&XYC&@oXe~e6
      zmz&;8h{hAvBJ12oN&R~@Z5f7J<U=96!ooJJYu!@n@~Vmhc+D-qxa^5%Wmm9q1z4>i
      zLZIqf|F>}>*oPysojEKAo@-c^qm6MOD0&#jsIFa-!H%m)W0Qh5EtiwWW9&G&e?rAc
      zoTAQxGFCKM)24n|ucne<9y=OCFH?=$>t<P$q|yqu^^Y`C`q>ak^+r{UVVtFMD<m6m
      zg`bl~8_r@fgbB`spP(wHa85ycwj@ZtcGJXs2Vi-C<y2-=yoK{pocVcS=F$b-$T>r_
      zTGZ8BGQdR@m+&@+-Id|En6pa4soW~_=ZYD^y9!?VPYpQ_x|tJ83X~D2T64}dw=$AE
      zlH#`JgduF<2py!*(;;x`dX`t0bsZibJ+YJ(^KOUdaYeS^Rp~M5UIj%JrlV9z6s-l}
      zC?)sjRa^sSx}C*5sh7&Or(s9GZ%J(|gizt+tUOb(h)(LrFwT`N+f<srr{aBi(8hy$
      z`+k5AL%6{(D{HOdBYez#ajl{m<&nI}a-_AgXmHD2kPtUj+>$A*kq~0Zp44Xzo>E_(
      zB4%wW9htN$rK~uq%g@K=#vh463Bfy)e*A0ZSGXNP`EBB=m8&VPf_#SKiGk!pM1J9W
      z04jeYd;&-0;L`_)yLMQEwSe=s4lgi@e2d~m$2yD-zDcC@==2bF^F&&O;?WINbUmm6
      zv^d+xo#3i#;ss~JVUy>6jNzQnbWc>Vc_qP9^g8Xt==3Pm32r1AiiYieWcqx_WPHi&
      z^dr;fN9HWOCK{00<&o+4BNOu>Gwn+z;YTLsN9H2EE;S%C;E_rCks0(MbJ>^7%YI}A
      z{m2M<%{3si+at3Fd%b9v*=y3O_c8XJk5{q(2@b{|;&3JrJzB*O0frNGhMi7dUuC>2
      z>`8;`BD#4w)X{o9v~{#UjS&a!4Bqh2?vT6e?L@q%ip;3QiynQ1Hv<?OcnUS1tYUiR
      zJ|gktKou8el27nX9lV<Y0cHN$9D@o07qJ=F*)%tnjZLDKZi2~a1a83&%p%JuQFI~4
      zH#s(fBDtgrTsO)1E-6XmG4khw5261aCl6z$F0m`XO~$-Mxj&_xcNp`ogTKX%Qp4}A
      z;dglWkRLw}^$)IPtaQ^6%3zJ%$NuCa@L!gL!LHy_v~jT{7ty0#!78qQkCyvr@9F&+
      z&B+J10}78nQ81Q#`p;iVU84OCk<YohM|xi};jgd(UsI-U5W}}@#_!kzKd|~g()J79
      rIrlJxpB%4!E}a_vv`0Tci`#q)u&)j>Whq}2ea`(8<oRa~`kj9PaJ8WS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTextAreaElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTextAreaElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ac42790fa68e0d51e280f2633b2c5d17d9bb4cd
      GIT binary patch
      literal 3318
      zcwUW_%X8aQ6vjU#j;%PNDQS`x0;Q$2b)2RqEh&$bkTehKG);=*80wY=S-x@H%2JTz
      zJZ50Q1{U4Gf(^s4fd$L}!_&;LVAwIkAH{I4q&P-C9=cF`ALo4Mcg{Wc=I?)g{{z4T
      z_7dn)kg8bq%wEmRl<it(%d44}GV^xrdj95eUhH|Zj?foOQ4^MzKup1@j@C`9xPr5`
      zQ_1XJHd?G0K?OZKx>*+r2A1#ZJ9@^{tx9IibE;NlN<sW;)v9{a3YJpK9iz_MMqO%6
      zwJWr*j20Bc=IpXaq8pEC=tWXN|8mt5EA?7QIC;Hf`ZTton+4se%6YgL^R}w4f^=t;
      zNOqJ#kG*RNN5Pp#;8&nodQG_7x*^tcSqdnpgjW&Xyx7$1rdJ4xHJBQ0PfbN42?bAT
      z7{OBtj*^#@pY>?FRQJg3T#6|OSNDE58gYnoEy#GMG@Qn>6whsocb;+Lk3=i~Ct8Bo
      z7j36TZA6*!oh0`U>a5~CRcn)0B+;mbG{%Ao+|nH~Xm%T4fz|*k)EiR?j4L?(zj2A1
      zLd+V5aNQeXU&ZqZdUb#LK<v}5+p^o-^2aj6IoqUm>Q0SjRa_x{gXWU|B@Hj*6$Qu0
      zCTm5D%AN!@OTs-+jHR-{(M)T24KpO<azew5P*xs>LTY`o=c=x3{IbtjRI#8yEr)AT
      z{&fx4LAJ-q_L^;*Lbo1;wMgo2t9mR|40vy9Sivd@x}5|$=AzGB3~IVUH%7%!P>vP<
      z`p8srLNBjcCLIyks!liyKo0kAhkLfaC*^YXuB+lMF*-B~RCE4Fs?xiVwaQ{o#XIEb
      z>7}Zi1*!*o!A3ZglKK5@A{26+UJGhZorbjTw|*~GVM{{-s;tL-4Z}E2+pajc8L^UC
      zcl-k>s4%6`wuX0clI|=W&9?3tTkF|{o#1KRq?d*8$v*B1Qy88KT28Lnb;l5kRr#ik
      z@GsXzS!KG{6p6kb`eG7_{%4$^5j~o;(nqsA&0_ScrpGRf{|4<x8h7Cc{Y}y@FhyQh
      z(NCjvV27i49Pmd2I7TXRG)P~UKN_M>Mx?aE2otm;trF>h6Ae7^Lo-0!U!L*BwZJ44
      zSMW4WhVC;Y=S!3OSOd>Q0T;+?(bpIb5e@;*&_|tx=WsSudm)5LrU%Y7koprBqC872
      zJjo`{MJ}BTlg=ue&IFfEhD#?;Uh5swxfG^znbK&3nQY+2ZzC|bS(qt0&^DOKkp^Ck
      z!rUXTjSetZFzdry!(2Ped;^P77=wjb!i{#Ad4gGv!fcUOwFAroZuu~8aL1Hmj;Y4N
      ztZ~Pb<BrK8FSi5CP<Tvvt}^RPWp-JZH@V8Z#Z~4#@_N4mOd+gHk?WZ|OwWA4!o1D(
      z%pI<0J|wS?I>6iwd*&Vov%$bTWMOm;W`l$In7lse08<KKjAqY_`*Waspd9U&Pg_8`
      zn;@G_*Tpc8!SpYv{Dr=Bx`FDisL1J|))DdrJ|n2lN$-mm&B3PTgJus-lb3{!r^iSs
      zn%bB2sDIUxTD+NB+<)k0Dkk-Lpf!0|XR84_D)u!weZ$t;;Uru};yaS~o|W)8i8>?k
      O6G{BcO6>TSyZ-{7Up8I<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTitleElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLTitleElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6eb748069c46283f376f1dcb645999f4332d66c
      GIT binary patch
      literal 838
      zcwUW?OHbQC6ot<a#}2N`n-of0UP6TMu%L@p0wGao)mDZD81}}DjFCNqoC)x=U;`41
      z{($}{#2v?tP)MXM?74UJopX<`{P*ec4}f*dS?FU}h(y!9NfY->rtY~)lMQ!Ira%3C
      z&yQ8Yzb8E9LRl~vW_qG+%4C?6S>#@S4qs56ZVcvDEMm3I@Vn;qblsC-Q{$W7MQ|0k
      zNgyKkNM*5zy4)<CFc`b?jN2&TjROl6hCweD{Ggeh^2`rT6V5Q=$uLMxf-Kg3acQXY
      zxWTa4JIc%Sn+#=nEqKN-{~zHQ91*0vaT$dC`0$sG@G3k-&<ukWapm(H+R#{S={0AA
      zVZy;Astf}Kx+{gscWO2MX~%2b_M^og9elzRi5neaL*+{QNH(*O|A_TkCc1q5nl{EP
      zS(WH1(~newp_ffvKXpEJ2A!4q^2+K1>^rLa;LzKq6Zk^xSG=XF-r_KTK_IV&FibAG
      z8o_8zS1?AEo-~eXF~Ox%Q|0<S-rctC&HQpJw{}`UVa@O!Q-ye&Xl-oPm+$eRGu#eo
      VzU2<p7S#@CVw!^J!85sL_8GSKyLSKp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLUListElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLUListElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f4840a31237356582b88a1a6507164ad57030d4
      GIT binary patch
      literal 1250
      zcwUW@OK;Oa6ot>UP8^J(CA4XvJo=!Cle9Hykw9vN=!1%f%Yvp^Waqe})X4T!wnO1R
      zv4BmGSnvb*QHVQEC{f}_EMni8oO{ma>+!GOKYjwJ<B5tXhP6)6H9z^Dc_w`GJoddU
      z^HBJ&8pqbD<wo&KkNZ4`RVWNg6Qx(GEW?TjJLcuKGo%`IW618hfg3+(cw<--T@QuR
      zmGT|ygZ<GqJv-=_CvoToos^wQlR-HUXI#THuIo^dW0<krfWPbdZ5}r4w#OOrmT+vZ
      zX@{;{4>pzf+>IE@lTn80cNj9_GT<S@>VLp9=z;C?=)!jR>HF6bVGN!Sq=rH3@c2OZ
      zq@^KE8<kcLMF!RBZ)sq-t78%O7#2vmFNDYKK*sIG<karQ<S}ogOs7TO(U7-dv?@*M
      zx1?hkE94hV@++kHwdA-NnW}`*_<TXKIioVJ%b_gCO9Giy(NRT>VV0UkLP}}SX@gRu
      zzk#XGnLLxJ<1y-#6OHARQ<~BblXfDyp~H_{c|wXQ=U`K|(eUU+(Jw>aR0fJXceJ`j
      zs|KwUy6393^^Nb)zEM2|ovs?)fv2Q>h8t8>`#Rjj43Jc_xJ53q%HwvT&S8!!nKX~W
      zAfZnGNR?X6FZ6Kd%T+)&+1^de^}b|a&Tt<O2JJ7%F0rQe#U37x0`5`Qe&SIWAp8R?
      uVwGGN9${@9rqqM+bp+-p6=oe9<1nRK51XSfZ>h_g08^&PNSLjpXZsK5PY;^_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSException.class b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e5aadd0958ec524f7a79138dc712a2f6333905e
      GIT binary patch
      literal 584
      zcwT){O;5r=5Pi#6r6P!Y$cKvFfDjvF)C0x~>Zy7u!JA1bn^IF+(iXvA<k^cR9=w|P
      zql~kF1`^^PX7{~)^JaFkU*GQ^0FF?R5MtOhoslvb*h<eGD7LR$x&u|anizZ-Sgs=>
      z!ccNOQyCu{zmkP}hS<5~SiuEDv8t&L`lGJcx??JTie|0D5NWwRE+dY02{J=wg)V^v
      zHW*}+2RGdJb(1q>tF;A7E$}SIY|02Dl|U4m4Ed#+b3v^mgJCOy46+Py(Oyd*`Q+EA
      zE~wjm&mHSsn>TAKS%#EqIsA4s=yI<uC^A)DL$^D+X9+wfBSGKt87k_(lWYp%(~$H`
      zV~85Fj&dtUMq|+2k!SF0OBBc~I~|G?9MBuX5Q`jX8Zn9zp?hKlU#OQGpODxyq{b`O
      y-jJ-*p1ymbyAW~|lT+OZ(m2I7&X6axKg%Utn0gmbM2Vcmsf-=Uq#rYN*!uz5bB-<m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebff3b21f07468df7037f7cb8387322f61b67022
      GIT binary patch
      literal 2644
      zcwTjsTUQ%Z6vzLEgan3336RhWQd?VVE~P1gRHatSr8OEZ5(p+#aWXjx!^(v<GqH3n
      zeegvee9;GA^u@Qn_<(C!aEZ$g;CJyWsQb)JLYPb*$RYde%Wwbp+4=k5KmGzRjr}0{
      z7%o@p&D3G7nkqGFsj87$YSc2>bp4=d2H|H2?<=1xsj5=1q}Gc2TqSFOVZ5PNQcq{p
      zR*)0H(5KZIq8TelYosh|*3`LDn`am>o*5>urArK>nX|lfuhlE!{-9Z`YO1&o78QeU
      zZKTP_>uRG!4h$ic>!w!LcxjU#QZZIw2;A4|n)!gi7mMc@{ELkem*7K0Mi?Uu!x^p4
      zSDUpW*Ef}7m5b61RjK9_T@&9Oqu<=q42FqJPc?{dw8G8BJw;bklk0X@WQ@hz?QU?T
      z#P#_gULsvRG_dan!EjYZ5Cak>a7}<-XSfveR82HBYIxKgi@D3jb3weyaLv_%ecO>!
      z!cDv;s@@=ZRCnI6J1yx>eJ?ySdCTQuN6Y6Y95T*(O2v*ZB8@%kCB;-2BCRx?uONtN
      zdR}hxLbF`vx`exkNTlAZjLWzpVGeHwagX7`d1M)H;cc2Jm8GZDAKO`sr$y|28Sj9e
      zN<cX{;B~sXN>}N0H-%kpUc|g7;~`S?49$jp7sMio-)?_x`B3Etrq-Z$?^9Hj2H7he
      z71k|2@+>yXv@AQ6%2(wS%F?!Yo%%#$-SUVTuab1F`nK6_Tfz#~#auHaywQ<pNC@w&
      zo_KtlG6o@$-8i$`UhB>R3a^i447I%0+lwiQw_xw4aC#y`7EY4UHrtt&ovjs4pUDWd
      zGA*~aIV`s6{6f<X7eoM;aRI~RVsyFqV+FAiQnu05RsKj5%R79wrFVodxK25I^w*C7
      z`oyBq?_Hnh**b@uQ+Cdfb5cn<M<_0AeU8$%6rGID{=^B!ezn}9^ck>>vlypO*>=E1
      zT%wbSm+1u0SrFuLiiv#UH%y-3<s(;)haEZOc8*tY!^yD>KluZp#3^p(lP9?K0+VMT
      zl6CorLLXa+#%*UOk@zo$xYa`f$*!IV$<6bjXHT~+Nk#Aj@)jimiKGX}I>mg{0TO6~
      z1TaNo5QXnp03z4#)LXyEd5XLF6TF^D9Ajo>B#b}%S8q=p<Bd80bBraYd{O@~=C>VF
      z)Zh2>fB!s3V4EE!kMZsiWeZ`3)Lw8{ZqcZLEvlEJn>@x)z$BiKy+B^OxCe!PAykWV
      z)+TT`2k3r@G#44CN!B=J9HUu0#``qOD>U0QJ|JpFI%S+LGS(vlBG!aXu_C6l<~^uA
      z%BFSb6KU%cA>AZPpN+OYorB7{2UYVN)K(ko+@P{<5S?O-9)lWmKyscS+isAjo*;Q|
      zkZm`}7Zmel50D`Tq~Hm%;|BT46XX+bkR3P3*A(+j4-nY_`P36+*A4QmCy3$=vg-!<
      wj$*#=0TOaRiu8KBK}x^4Kz{H9DWlQ_GVuZ>H^`3^^HUEH@mnbh?^!Y0|8<zZ1poj5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSOutput.class b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef0f74d865c12ceef9c06511817e286cec950c86
      GIT binary patch
      literal 1412
      zcwTi<ZBNrs6n^eDI_Nr?12?81%-6jr<wgAhArTx2u@RH$41UqBYevc1nzmE<SDI*+
      zNa7FhM;Xs;yHQK`q4(b2^E}Ua&N=tb-(SB0Y~pDaDTbSUYbbv;2XfCg<$)`|uuY|X
      zJoG*dy(}^eg){ZDDi2hvFCTZ$bd7EWhO+JS<uBXXm^G#_q;0;I6rX0;a&X`F99=bc
      z7-rpb*VE0T9z#*Nl%}|0^?6*kG`mM<24UB*3~!GlYxNF8=D_ahBGM>GkdSAXR}4#k
      zH8i`r^G59sbgpP?>Y$@K2LBH)Gv2A;GAt|83#GipzV02Is*b98x)Zpi%UXR>$2-TM
      z$W9hZ)U%}G0>B(7EFp_o5oIiMt1AqZT5>;lT}3w`^Fl42xZcU4%216}5k#Y+BGz!1
      z=Ut^1X>s8~T$dqFrSG46`WUhlsX8{jy!$^iN7VLYpo?Q-bfml?k0i`NB)A)e->6+h
      z^M-KIR`?1yds9Mg%x+CyhuF4<j;0?Pe8z>yFxR;#szglFH$!WRkAt3kio5XloWFB%
      zdP%fiqd%E;M*B=-g!%72>^iN2f4PMstx^EM0v2hf3Q!8k&-`SBxIp=&@dK3+Zhebs
      z>_#-CiN<ZLh8ito2oK~N7g#%Kj&SEEDwjq?Klq%e`@T>q0Ea^SbPxCa8Xn-`m72&>
      z+|OZRO*O29<UK<36hfn!VB{rnl!y^wVnp!U%@fzrNHEfj8+n~*<T2Khj5Om$-V&!X
      m#R#7_Pb?=I*@zo?pJ-$&*~muR$OqzloMI#w8rk+aPyPX=$NUBW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..616257deb3452b22bdc2e20d60fdd2337087e30f
      GIT binary patch
      literal 10963
      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
      K?J0#TPyavIT##=7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSSerializer.class b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSSerializer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8b4b59043f6d1378eb6ad0a4c055a1face33aa7
      GIT binary patch
      literal 5775
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/FilteredSAXEventSink.class b/libjava/classpath/lib/gnu/xml/dom/ls/FilteredSAXEventSink.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dee62bfc95f2d6237e90a8cdb769bfd31c8843de
      GIT binary patch
      literal 5514
      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
      V@uFQoblp7YX6n1=n;QF>{{ZNui~#@u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/ReaderInputStream.class b/libjava/classpath/lib/gnu/xml/dom/ls/ReaderInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2be7972948f55cf2e26946519f15e875cbc0b14f
      GIT binary patch
      literal 3321
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class b/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5f281ea1960d783a6d0f6caf380524c3179d0bb
      GIT binary patch
      literal 12805
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/WriterOutputStream.class b/libjava/classpath/lib/gnu/xml/dom/ls/WriterOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..946908441d3d46310808188d329747603f2ba72a
      GIT binary patch
      literal 1291
      zcwU8)3r`b45Xb-9*R{t<v4tWp74gvraN+|iMFJRVnp80stAs>zZLj6b^^UYx<!hNp
      zNi^XD_@Rum+oP%18q#!cc4p`IpPAj?e|}y7Si=hmK8D4H)lpBIrdqR`s@YaQv<ydY
      z?RT7$j#F}4y4I8sV3_=(ebrRMRtF;tp>N_i!$k4&Ko5{(2<ukWt{GN?A=ZnUn$=J#
      zm3$NrZ5o#0Y%#=>-sDu7A@I_!=`#GdrXYfG27fYDj)0^T1Q7}&#t?jekYCAi=cED&
      zVTNeYu=F>bW<_ruXcbfE+ICel%Ua9ed)FCoj*T|MQt`^}snD^u?(Fq@nMw{f!|M%-
      zQ4l&=;9Gg`w5p#thHbSa+@dBgTP*DNBQh4TB;gLj_`d^CFo$^tR;7P|(8;6SR9U7r
      zlRT1QkjPUII;_IrJKB}7LX+_pCSw^YAKycU8Idxoc3#FK4xXhU+x0rFrf!jJ)wJ6>
      zk3LiIlwU!xZg$$o+_Rw|%RO?*?zF0U-r!T69v<H+*Q4{qq(|qYAKjg>=(^}DQ6vK1
      z+8FKLiW9&@`W#9+bB1U-cKr<T?;>N0)))e`W@+7^yd0v~M1nktULK}#0}vM1VPwr<
      z)}?Q`^bjWxFlFK0ri`5dR;bSkiCSsY{8lKoK)wL&ZVKv-OO2#|AUfB@Z7(=a$*%^$
      zkv=$rySV3q?~ecnTyVypx#;477hELp>;Hh$$hhFt5V%79@F^yE#lNt8n3-Q7Gk%WM
      zF4nv%@5n9*m2@wwuaa<8xb>JC@d@h*S$^`;gBem@7c~K4uH41CSL-8Hb||!z-Z@u`
      V@yB)*?YWosiD;ik(sJVD=3fV;$Hf2u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9bde45fbdcc6e0747d869b0c5e89ec00583a8d9
      GIT binary patch
      literal 1884
      zcwT)}?Q+vb6g}%WmSYP-Vn{<NB+!<|c7j@<v_&M8gg{-4lh$d{@Kt1cW0cC0$Cmkc
      zf<8mvfgkM*lMH31!!LgHp*lS)$*yBCqmg#^?!9Nvo_nwU`S-8C0epd)hM2&~y4x|H
      zHXOsTD;#!>n%6LHx?V$G^Zk~F`1@Q+UQKF92psWRb>qo}YOtjO1rk?m*Y=kLj?EQ!
      zt;d$(SZ>`|tL)0EZ)P_I;wy|!VFYO%8j=FzMcb97PNO1Q8&<`U0+U6rYB`%$%U0{i
      z822C9ZGoBMdzqU8F}tQ9-a1@Bt4qIRH3)WeF5Bl&_FJ}FH&Y;M9aG2%q?Id)hVD97
      z<)*CKJGLbF$Xxc0K$6By%js}G+3rmbTss0**G{cIt;(ivdv069DS_#J>8`Kc?rjSk
      zBJjG^l5W5tB-`(;th~)Q-PWGCvbE~S2Au^y7;ua>Or`cGI%Y7d;jBRB9X<jR>W<Y%
      zvSDpJYs!MV<B{Y5V0XvVkP|pPG!tFFF)BK*;|L~F$Rf=o+U-J3>HN9QQk<r8DzFe4
      zFX%XpGa9}Wm>r585gx-ue5K=Se8XgQ+Ok!ssr<K9Jp~Eq__kw|rEjKTVo}2t3VUEf
      z#}clRLDh48%XZsCN|u?{WLKm!!>g|=HW7U<OuUBc0#k$Ku-w_%k*ySN;5!XB*+he9
      z>L}p*u)bCtt4(5=1LYbRnbaam8gBE#16w*Kkx5|%>#D;}B=IBL@~+EDUR2f%9Y28;
      znXsBo>9U;X-&L}2nL^q@la!L!rYiG~Rmm?Z%UvDEkxAmdfVi&?`9;UF>Z3#@2xBP?
      z17vHIy-uqtZ`i8M5BFO6oC?4!(MR}>^5>Q2%U=dpW1KA^#s^5`^7}~r$yp3Kzp21_
      znGq%qaW)lt;V{O5V8(hRhEOs^SVpi0Mss^O`bQ5c5g4xqFnZ_^!U#4Srh}394#p30
      zf*v2yC(iLC-<g2Cf}fAzV`32dRv&gOq9{}sM3LvC$YgFGAHT+@gYoNq@yTBNXPArP
      zF9qV!;}x>oxfh^R3xgP2eHeNV;~ei7Vmyn4ULXhKcZ|lLQ>F8-aj}?xgX8%Zxby~-
      zYRJ9B<ro5wk>|ZbPBCY|J$@e$?jg0ea10enRi!XiUyc@{!zZ}+Ev`}3nEFcube4O$
      z`i)mo-sUT;Y?I0A9&YVpt(c$uVGrf4JWX4{Wb)_k`cAmM7YuuN@V^2fxm_OnD@i!a
      dSp#R`vLHNa*X$!_M&!mx`XOnnyi@|5>VMKCi?sj%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCDATASection.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCDATASection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7944d0309cc49db31f97552d20388f2fd0161ca1
      GIT binary patch
      literal 420
      zcwUWA%SyvQ6g@Y_L}Rr+iyOg>_$WAtpo>bORCE(`(a?P!L!6MzKuom1<w|hj2l!Fq
      zO>`j?L57)o=H7D-XXfMc?H#}wwq00+gH+dIR^%dA5tmFPrVzK<6mon$3PuwdSITG?
      zHev5iY9MEo3x}|4%2Yg`$L;910l~RaT2({B&XJ#mPoc;|or?P?W5VEgO0dT!kscPX
      z(t(R5Lf2PX-ql4U%OH$$N!avF9Ol!oRL%XTX;%;Gk#Ok$>m>t%rIN;KE(F1wn7WMR
      zjcR;*bK28Jf_)H&BrNhT5^v7Rb(zr+7B9d#>A%8zVPv7hr`L8bSaFF}M!jzq*3bo7
      Nw2lq-;8d+<>kGffWJv%3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c746262886eb3074c07e6ac13106b4237843214
      GIT binary patch
      literal 2367
      zcwUW_`*PDp6vn@e70VbwXaY%dp-m}`Z*fc;T4+Kj;BW~wPD?^41X^TSwv~~kRF;9h
      zMIWSpwEs9vndt-cp*ozi5~?rC43qI_wY%p#zw_-`<=_AQ{s+L9XsH+zSZX@m((ATe
      zvaK3D4oY>mUApVIZL{3cJ>Bq4Z&UYm6^g+5WA|3wx~U>5Fzb5F(yLWNE)6IMB(GVH
      z<zE*#m#rM=FZGhGJI&H|?Z7nr_1vC-QYM)+5;&<rMM_|zVmW5D+pd}3u3ocEfys(%
      z==PrOS^OSODt^oA2xKcCR?E7;m{n)35efmdY5D=~*=(+F!;bG+PLnpIZ@)IoL*H_p
      zj*4l4kNYd$+<p)(r$LJvW-%q8kt%z%r`ufuRy*&L3|JB7$nA0Hc@3Xno<chVp-NrG
      zO~#>}pez;BY5FaJL^ij@G8Z*WVk(U#WL0DY&J4$C$l(GVjvWS`>U3)zxe^dgXScRu
      zj9|s0h7}YjZxlj0ZlgiO0%A*G+;F=Njnn$!q3P6vM!GC8Gc0$jYuR<vW6^IkT)|cH
      z=p`4t-JlkYYnM2pRjhI2%=74)h7C}!C4<xg#W<%&ra}-Yc0<EWKD?Cg28--xS;HJ3
      zOG5Xk+O*|#OwW&;ia*RH++(M<__*V|B%Qixo4y(7jI-l(9Zq`Yp{*O?><rDu$*b6=
      z)T4DY8tmtf*irFt;MfBPHSFRM)kZB-w)GBOpQ(X<my=|}V?0su6J5ojB@Iv68@?`8
      zy-l~ainSD;li~Z^p&LB$3!lLYf#naho{`s6s8RDg=lC0>R+F=IlaAX@=Iyv$&oJ*;
      z{4JOnz3(d=sVvgrCFnO!AHOvH=mSG<CunpXWAq0k^Mxa%|Dw?tG`WjsuTaEQoTAZm
      zunVU#0m#uAd_)?8Zy2qer8$M(&PmmhTmi=OJ<R+Wi6-Ubh7{C-4WXdm#u}07gX>{o
      z7_Lmwo5#R?ibaX=87_o{eib662<h`4zW8H^>RumJDx%7xFhX^o#tGibO7rszFM3!W
      zuCXfB7K42emqx~1lIt4%54uDVg1AQOen?}kXfFR2t4}!18+?6)Z^?!A9=_}0*02}5
      z^r?N+=fzx<bB;U;yts`!Bbk09UWJ}HPEwWWiivqDC`h<W35)c4Hzx6ES=>`PgneZ3
      zOeW6<Vo~y3RB%pWjM46k@^H8t@8kOspjRPKCLX9L?LHnyrvx?n<`{iAnFuEn;bcPp
      z$EiQw<5ch<?3LdMg0IR7L#!#1Vpi$LAb?rrSe9uS-6WM37GM!a3q>4ArptkH#IzDI
      zt%OWG+LTO5GM4Gs9{L)GbS|y%uEJYXxjBC5Vebh0mBQq+9)5mY2pXIQle&ELVEo^n
      g0h&X}T^b*f{I6t}*Vj6Q5N(3c>o8^OG-Q199c)d<6951J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeComment.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeComment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11801ef1a23f02aa96c8954cc6e0710ce81b94ea
      GIT binary patch
      literal 409
      zcwU82O-sZu6r5M<R_p4zu6kZPh#z1OK@Tf?S<y?;gR=Lu4c(MBfo!Y(El+|6e}F$q
      ze64#BL?k3{@|c-7$;ap0JAhMc2k;2P%+%t!EJUGWF1bi;DQ=7{)x?&iGF1Sdu>Ut}
      zCY?+w<*sBU19S)j>oW0lmb9FO388bTjjqOoor5Tsk5UxUWa2K)RZ@)(rv!guQx#$f
      zYh46bA@m|`)NNhH%00-qP=u|>CbF1Hr<?nt=~pv7C+tQ4J!C}iblSN5nokJtZS4|u
      ztsBe!PuWSs#t_8O2+RC+#G4axU1c<e#|!8j9ls)cVdSC9XV`YnS#g1NM!VlEY@i3U
      NXcK+*;6SZr@CCnNVk7_n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDOMException.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDOMException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63644b4110ba9b42375d547959fe959940d996fb
      GIT binary patch
      literal 1176
      zcwUWCSx*yD6#lNPmQ5~F5nOOVRw;;x3Ly^DDIL?!l$j};%Q%#=4(UQlL5xPD(Zs~?
      zM|`?IX?*a}2Y;0D%(OKSd~lL)?!Djn&beo~zkYxJ0bmldO*p|YkS**+_Vc+&&fB16
      zE3#S4M-~gkyc^Y%%6`V(E_=m76Y3dyiluDi`BWy59JVqv&Upo|JkJmwG80?Qo)gJA
      zg>1wum%KuDc6gbgUM_CBAuyb5MF=enZJCnml-;Dev*To4hQT5AAD+jl5bDs@iUu??
      zbR@ijtL^4D+>+&N<R}VH6f;h4*(rJcxk}cTpLsiUL*l<`oh641CCk7}hNgTiL4G`!
      zW}IPYSGB0JYMbi1Vk?HxjI*SrfTm@r+TtO;kD)uRDu!gp@ip5}mePu8RZQo}WyR1*
      z9@XV^QqijXMRHNKWhtRXZ8<I(l58nP#dL|GOVjPBWJ$J^Na!m{v|_lz&_{-(9#vzi
      zELp0q9Tf~v^EKVFV|rSvQiBYgK4qp;Dc!JY%3-=g)zYS7OBPkLkhZF&jFP^VmuX2g
      z`Z`0%T+=LRwQ`Qoqp8V`<P%sY{XC?kVx}ay8eoe0P;-!ESuxEDKTT~8*hB6!l!LXF
      zQtYH^CM8Rb`!o$r^^+*>mNIV4^QRv^HsNu9km#q!SO@<*L7?|U=O)@EQ6KOvBYk~i
      z-_ZOOtzQCBJN-j}c!JhRbkMH9BE>0m2BBKO(M5s$-Dz}_I^;k1N@&(etM7j>`V$SK
      zqW3fH-xGYj@4rN_2rGnj!Xv^HLWb~^;1P0!BB4asCF~Pk5?&MD^044Ng7*r3PVftY
      z_X~bm@T-Df6MRVU5y8g<9~XQ=@Ed~P6#SN8;%{-wlrS(&_0Lc@?qC&jcz}64#yvP#
      zz$T)|B8Dx*k;i>(BY_=g*h300VBi%c|AwNxBhL?1z(+j9C-U|i6|NLc?YSK^>L6$j
      Ljf?K_@4x#8M@;|Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDOMStringList.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDOMStringList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..489ddafc656a9882078a8a5033db7a208fed2d92
      GIT binary patch
      literal 913
      zcwUWC%Wl&^6g}g-n&392C5Dm!p+HGe2}2PAiGqXzMX5|HT9gH>9B1TC<cz^_N<V;~
      zK&)7?>7qzHBo_SuzJ#v;?u?_9LKbK=_I;gm&%O5dpWhAv+`!cw42C6N4(+{uU<aZ@
      zub$lv`}SiQ_W8rjC);r(r0<A9oI{#nw&(7;cHm0i-t6?aN6{?9LKyk>>zkfN9s@CC
      zcimvf2MqHsoFi~jahKAoLW=l4gH@Z5ueTY}&9KW0NMYJU9y1K7TD_eIX)%$*6hqMw
      zl5Y(A9UeV%I{{~yb3)Gz+HNG2KMJPf9YHc`&i{=|+VVb+9WMQNM>lN|hlqKfp;T+t
      zCk>Mkvdi}v7?n<Wp^RN22daF+WX}sYk7^DVjx9CGnz)Dx#rdnD8w^^$3?trj2Q)-R
      zZ&OV;p*<4}h3#+{d3;T%kx&0S)-{DgmDZP{n^9|2TcqD1O*fAMMNW{l27?YzXncj)
      zSpJOSNAe7uq~{D_fm?*QO^7>~BhN~zF^^M#wiGLALWyz-=XLD^*~TXn5BJA>Ssh)~
      zJZ4fc;-L|6W`y1vDYDA%V3sw-dt}&wvdSw5f2n(bX*5y9qd(MHV|5l5a8|1+qcY-u
      zNi_<&n7a1?CB<4<S^k1^Z;?swzcE-PY5D6%>PWdo8wA$r=}?~yVqd4-KGi*|3EQ~m
      VBArXr%b@RmnYtTfU(rlUzX2}}vOxd<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fec965957a8ebd68392ef6935ad72881d9d1b8ce
      GIT binary patch
      literal 10110
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f34c5fa075dd3b8320b2e07d727f7bf64cddc5ea
      GIT binary patch
      literal 5993
      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
      Bg}ML$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6b1bb27854c343f336cfcf657825bba877ba06c
      GIT binary patch
      literal 1683
      zcwUuMT~iZD6g`bGfnnAUL|A22+>IK7GV8YjejvhDZAGNSLdlEOnKYqs(i3NT5P!=4
      zhkaP9R;ZFHecY=3QCr^bgdrv=%YEqS?tAaKefr$n^Y4EjKLNOk#T@z=yqZe9?Rww^
      zvO?3QR}JglZz`;d$DyCph0>1_8B|5I$bB6~?{dg66gK%5-?p#@k75zUUhimzW3lj)
      zNGwO8FXC9L8UrgcWM`$4`aZ*<!o(^=W<IP62Zu1|B8Pql3_rLyf};$_W1*LLUBnIU
      zi@CQv5)@u28`RN~RAMQqS48xjR|0Yjl|r8ft2~ls-!f+OhKw1mmj35eXBga?&~sWx
      zvXW@Zbg@t}H}?XrYTgQ&Rc&UX&GfXgDSS=1j3UN{PFFY?m3Z56Aj5@1GtW0gC9t!w
      z?Tdz%p^9_(iD9Z6v~1`3P_4^a5^)oof^s-Z)%#u@Oc};qoX5|kgp5~tAgh$m)R4+n
      zHtxKO3oZA2$O94k<Tj2=E(*r+ql_1}8(dWvl$QG4GqElrp{N%eoI%l4dy=}LP%hhw
      zy75<fU+STEx7-GJc#8)~hvI299Ll;VxK2#(jP%G!XXkL8;p~BDDG7q*P%15=R6PgR
      zFxZb<47WG5ZcKZgRey>^oO=1BM3TpvD;<05&BMHA?_X)8&F|n2rgOMU@1m20iy6$4
      z6yi<718Uckg&sF850JF?T^vT%!5AJI{pLDi_xqAmacXTB?-@i-(OC(T$QO&!yp{29
      zya(HB)D2X9`hhU?85*?8(wZJEeFtbaOLj)HQ{1JI*@63>c6~TT-y;@z2N_IL><o_6
      z&TU3x2q$dTVVrDbx@FHGEc+|XkhRedEpnvkZ6VES1f%4qro$=PohDm`c4Ic%@5I(%
      zhxc%1t+<18G=8CRaTgN@`G*JryrA2>BxY-5d(p;nIAwVmS6VC|(6D+OT(e2?l?9Hs
      z#M&pxS|rVC3Z50~SNa=w(%mAQLFOm_!QdXQt?lB*=b@XEJGlJ^28x*vxc7b!V{4PU
      zc<?zr`Lr!amGTIpyiQVXkWEs~*KKU_DVu!CCQod#mdzu~cd=O^oDq9;pFw}|Z`}K{
      an?SR|ZwM68I&Q1eXnN>qTBpYrx9|ltvUfTF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentFragment.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentFragment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bacf0e76eff670c798013b2a2dd0ee5d0b9acf55
      GIT binary patch
      literal 436
      zcwUWAO-sZu6r5LUt95nP&x0s<bX_orupU<SqO6y)9+bVOZKx@20^L^qTb=|D{s4cJ
      z_*y;r0TPm#y!U39<n8_C6~GC$d^m)DYHIOV<RaG*Lnabih$~|Yb!p?eP^OxcGHuX@
      zOW6N&d}<Tr!z1k3G8GS}aohTCLh#PD(bbr+eHdo)UW#0rR9r`yimOq7MsP3KDZm0&
      zI`FYX=!V*;X<bCByp>U|2pge|Wj>RoZth=2x4P4F!XW(ji$(-TCym{YAcWw?)@7_F
      zy7AuqRe#*bZ~)@4ghl>U;?0>Emzj;>@B+M}!83v<W)3=h25oi7iZiS-+xeWr8oEHs
      NdRS)<PS$ERKLFnmZ9V`1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ca7bd4c5ef784cf4769a8ae356af88d3f38cac6
      GIT binary patch
      literal 1475
      zcwUWDZBr6a6n-uOyW*M(gqoUWzVVWqS!tn`q85c%;b3NdSYV}fV3&cV@?X_V;Y`l-
      zu@C*IrgL|9h(Mc$Vb9Aw_c_mb_UzAJ-@XG_Kw5x{VY;Z-<&Wi(T+(u6PUM17mY?WG
      zS=}`9^|Gp)d#4pufSY0L($ch1pb{^`kWnql9~Sf0Q7Zt0cSX}RbB*EZT<S!5ugE1u
      zFUq^Q6E$zf!&wG*f>3<uLXQLiB12zF)75mnoKvfNO0Gm0{*;kdN?E0<@z_ba&39Uj
      zVK((&lf)TZT7g4#kYEsss+m^G1R9(Rw-jW|s-_p?J`j5eAp{tDcqtLK%Xze=o0_Sq
      zL}ipNw+g{)3cPqnsl)|b`<LpiwcXTjR6;)nd>F=cF3UJW=mPzcTtLa9WGbd+=rx<u
      zi+Zl4<&y<F%AD3rwalXdijumiR&}M6spo2{$sn4BJtrS?M#2pQ1k6#tb{#hA$H!{b
      zhX`T<q741*bR^uuJONUZL`kU;m%v|gT1is#Htq;mpcmbCB*Bk>53{(-N50p#GS15g
      zXGJVAutQ$>K*B@N3-l_LimKCqv5RhWr0hxJB32o?D~?vHA|4TLOvE~6YmR2CT$O}`
      zNd!b}(fJYY`$WPN-v+VL6x!d}n0V!^PV|9X#(}|?G3wR4x~=i04s|T<JimwuV$nr^
      z4}HQS{pmxYsGGbsxabFXBhfSXK9lEyL{FcUU7{Py=p`>?SK$i!0L!EOA`Hewcd%qD
      z20W1lf}fgDUMsm`!AN$21H&+gA?NZE+}2s|Iff4+Uohf6!&p1WdJ9Nz6J+9Y5YGi5
      z+npec@x8U|q+@S#OEpu?@xGFTU1WD@yy?_AW)H{-Hz1#3aVO@#-@x*I^aloG{uS=V
      zqSn*DW}C;Bp&J`^ylI&Rw*SzZM-M$;l02^vL<S?+!#J{-!9HSmjYYhneLX}1Z}ALA
      c))*5uB}WSn<)0!+goB8a|D2E+QdWnZ--P}<1^@s6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e398a215d88d1fc2b3ab1c041c97c8195714d1a
      GIT binary patch
      literal 3362
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24197b0b881e4d22732c09f3b09c2a2e8d2c5265
      GIT binary patch
      literal 1358
      zcwUWDZBNrs6n^f2wUqMW#;bsUFUVM>A_~d?6$C`*B$*Br6}zp>lCE94PUT<emyu}V
      zM?aYOmyGA$PQWpuY1(t{bIx;KZ-4yy@(sW=9!dx?j1-)T{;_E5wv{EZujk#OzV5h1
      zbJg)J|3E@B!|<6-DK~FQ2s1=nub_XJ$q7?HWe6`=j^!^g^h_l8jrWFb8%{xgn%y^Z
      zej=7(XkH<{f+n=7kRUU3CN0NIRf<{DduC*9lL9B*oMC4S&*JAA*zCWv$_!)4e^j4f
      z2w8a^<Wzcwwu0$zR<gF0+aQ<jiP#CJwC`C?q2`o6DEnrSJ9W}2<@$zixlYO`QYBr4
      zY&fNgzv|@NJaHI02-+^%$3S}kWK6G2JO<f!gZK&<23155l`zcETc3ZqvbSe?3Pvy{
      zVU&{9ccJ1UE>S>Auwol!8cFo8HUyYZa0OQ-j8pw}CKVHiGDy5FYDd8kCiy1fbt|il
      zBbJeIje+fOM_t8rOw*E$Qpt2^I9emdDJbYEA!CN2wNxAbqKsP<SCcVEXt_4;MLwT9
      zD!LJsLA&VCoD;Jb)<qRP+<KSTuX$DXRSfW!<kHb*BaQYN&Wbu1`p>G6K}ow6FK4b<
      z{K|EmxK>k~f>FxfL~jfIPBOi8f$7vr+7d$a0O85_A(YRgg`m<`5$G&2=Fm=BZ{URv
      zbOJ)_!Z|R;_>}-DymcXaxTNU4B!e6pNya0yPe<{?0(l@}tAVu^o1yPNn2#DV`~QQv
      z*^oJK#QaH<Y9hHiS;hI}R}8%%<w6yg4-tE!MYJlWw&LH>r$ugXRf~&n<Ypjdg&@Z5
      z;5`55ybzq1gs9@)aapsXpyxE|3=MG$gV?6u=q1LnLv6gm4BlWKyI8?nYTG~>S+eE?
      bYcwde)<z5A%jCzG@tB6YN*Nf|M5guMZTl94
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntityReference.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntityReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a8f196072b2df79fb8c394bf2706cf61f13f7a2
      GIT binary patch
      literal 432
      zcwUWA%SyyB6g{`rR_o~a1`)yKIKl)GbTKj;Q8#4-mD#6ltSM~*we|5?t^^l;fFC8^
      zR#!eiLUK>;J?C(exA&J<0DD;V;ShSMsl`K)i(E%sGLhIqoEclF6I1Ex@j_jzQkhu!
      za0y#~vd1=IibvSAWh(CX<977TgWw%$qpJ~NtruqUPKsQbRGdedimTzygy0^tQGhAT
      zb>L%$&<(Xw<GP4cc_pKqJ(fco%X}hB-Q2&LZgrz?3H|WD?->#toiuJgau9+`TbHpq
      z)s6MWZ}LH-!ZwJb5~le_i8m+aI?HGThZo@Wcb^eFF>=u1GibX9tT@CxqxDY~7SIJ+
      Nw1_44;9#w0<pX1+Yn}iA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ca72878a5a7f951d9ae4cc3040540b1f916dd9c
      GIT binary patch
      literal 917
      zcwUWCO>fgc5PjpAnxrOa0}TZV1p1Yv5*FfuRKx+=qDXFfNEL~r<E-3`{1G{uQhpYP
      z3W)<hfFFgJT@Xs09D3M&<2Uo>W5>UK|M&^uH4YqDgxx5ec~?p7#d63n_C{IaeM+-L
      z^nyf;df7;v1``K1VQm~-23{Pbk#{y6i%>aOA#7%O<b8P)8sWT#V961o?iXc;1Y3Qb
      z2m*BpEAM0~)q6stwHVoL4><TEC#;}^nu}Ge5lXH0pbSp!!ogi_J#bM*g;4WlDtfbI
      zDDv}Q7z<rK3xjwN<WhhCBW-mdr-Xg~R>O0@ZX}eUx=JL3z4=!ADwk<=*!FKc1WUDU
      zTGTBBE!9<yuR<|VGE1ipo);eZ=<M{rn@7$?l3j|qDz-GR(dsVEUFKPQkw)smyd<xn
      zIzL^nPk6gzzFSUQofdMf7y8p&rJv36P@G7;jK;!)ztW}9<h_>o+<}F<UNrx;b-iZB
      zGM`nr?7hd<XO1W_);ix&?HpWVy|Z<V``?(duwi62-yirsV(BreI6;G%=3f~eViPcy
      zE<?uBg)AaG!efB(3AWhtlzleiGiI9Xxyii1OB1_|9fP~rGq}H?ZD|kNZPR1t52!iQ
      A?EnA(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a6a5c69e97526513e205dd5bcd553d61c0fea4e
      GIT binary patch
      literal 9182
      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
      EKb2#T_5c6?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNodeList.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNodeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..552641a98df2299b5e382578c8c75ba59157ab13
      GIT binary patch
      literal 488
      zcwU82O-sW-5Pg%x*2LOst=|{LOH;u`JV}cep;8F-pyZyUOS&Z=kS5i?<v|1w{s4cJ
      zIEi|&9%Px_nKv_U-t7Cw>l=V`9M+)`j>Du7k8va-<?}NWlQb4LNgB&>I+2c==XDr_
      zjhVObMC2u*xb<f;V6;Z)q**8)E`qA*r=Fmx38C#QxAY0Mfl5?<McD5CP1`QPxMmg$
      zI@TL7(In_y+cm)g8mMEH&~j8F$3^VR?B4SuSq@4AFLJ$1mGL)d<Wn^#oH+lk$EpmK
      z%ed4uvYq9PIBkY9cVrUg(@M^WVBMuf7RaHh=KrEQE7!siE7sXo*xIFV{&AhngvH1j
      zdqZe^0IT<cM(^|)ttXB&Z1UZ#YA<1+&m9A10Cv8rv4sv$c_k|m%jO(A*u@^>g#C)=
      F;1iLxYI^_x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6b5d11d411f337fb36afdca656511544a024a90
      GIT binary patch
      literal 1060
      zcwU84ZBNrs6n@SaYbjN58)Lp8LlpPsDo#Ne17wP#6HI1ijPXOam08lY%hvhwuk?c>
      z(Zr8_@JAWX?Fx~Bnx^-hd+vF8p6A}5zrKD4u!s!_0m59<?r9%dmS&kXHv3w`X=#sa
      zr)BIouI`$SEg?vl`A1sAkPsq7olaAGpRapIhsA`@s%e|<8eu9~-q+vhnx)%KZMU{>
      z)ZId=N(h#?gMtx^tB@cQCd#I5?DSeSqw_+qSq33ocIvuS)jOux`@x|5*6b4I%l~Ci
      zAOy^YXmbJpVZ3R$&wDk?tZ#ElG@1G%sp57_yXhxYK6YKBC6Z*<8Js8}OsfbZBH=tC
      zHe9*c+uJib3NB(s!X?7w@O%}QG0P3PeaX_hOeb;-fEO$%n8Un;D=f{>k&3H`5G1bO
      z(Oaxy91B9l>qBz;L{e25DFVF~i5V4H+~5n++ik;UTG`VoPJ{-W3NkdpSlbt_C}WZP
      zW@Y3#+Vzzx3VrUVh$13mna|&dx%X5|3D9!;NcHe(nuluMBtrae7zj$m>2>PHmg&8c
      zW0#&2MMyA$5&lQ{$p`u82gbWG_SO*K4+y0*2T(q<7l6vE;zgIZVi{-Hiw&}H788Ky
      zP2wDgNL)ME5%f4tf|cL<3(p*3yPNJKR{n<gD|RmQkvPD$XW4MFkMzsT4@_snIpJnA
      z-Wt9+Ft<Fz6}JcbCC~J6_tO!`9L9NFXOJ5_{ysmjP0Zo}7VwZSbqjes#tODk!V~_U
      cdPEWfNIsEKj<28q0l$D%6uC38C}P6;Z_}yntN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e0c32059f4ee06b6e4d0c9d4935df4bff954a01
      GIT binary patch
      literal 1110
      zcwUuLT~pIQ6g^vNQ$n=ZVg;oX{J^%s21NyJ;Q<iDsl^!>9LMn?O_!QZnsky>`C0l>
      zW^~3M;E!^=yREf+^ufvO?%jLuo_o*P&9C3ze*$=fbp;WIV#DniCoRWt>>4diqwckg
      zUDs>zx4vibAh6xWo*RUI#|mxFRS;#!j675I>RdsLVZrko#+MaKhAu^7h?Q;E4mTKX
      z<SI?`vuQY{+c5TPO>Tvy{1HQRi{Mm@VM2p~I76ahyS&<I)wq9X)*Q}|taz5`9GSi?
      z_I+nG{A33V%a#A*R$_?Qb%A-I8;0=)4-ZYBW`?O;ekkQ2^a-b=f{18HBgHU5X+nys
      z*`jt7+HISmNmlUJIzzdSASkOZPb}UR-2@6|8K#GI+}?jP2s6Y(uXj*EmLYu}ZnJZI
      z%zYILxU1j}!{m8V8t&mf!BBTwjv0_(sWZH!lW09aUO|q;KNr$a5L^X2!BfQ?mc%{H
      z#8ITn{ZJ>O>%zON(QA85F0<X{E(yGJ8TkvY9s#NA6Ad?!isKmr`zRpSG-O2aSWPC8
      zPNR;Kqz7KdxA=}No<?@`^%n&K=BeBmjVttzh(Yg;cH?AiAVMDyE9j?CzmXMzMzbot
      ztCYQlt7N5nS-6G-AgxJUCk%R6NcFJ{xu*(+E~dT?pkmTlmM~f`p$Eg55J0Zen4!om
      zibZL?O(Qda^{91GT>pW&_XIuP#o{USik^Jfh4D@&*NQZfPvz3Z>c8S?$#;j!?UMZp
      ZS?pmEuZKA4eNG9?;yGSO4kdZM{0AD|{L26U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79299bd1dc4893e111d9730f04eed8d95020ff12
      GIT binary patch
      literal 2414
      zcwUWGU2_vv7=AX{WFcJ&6j}*iMFdRKgzzC)TA<pNk4l<CTN(<8Zqk!<%VsxjHl;W^
      z&UodW*X0M;afS=M2~(YM#v3lY^2Wd5g*W~K^*JXoKpPw<lkC~|y!*V*`@GMd$uEEX
      z@DqU3s2d1rI8=7)nbnGuaqI#w%b7*5lDX!36)`7P0|UB-6R%AfU$T6w7zlsD3M>Or
      z4ZA$QoOyJ%sB$ENhUi7xwS&tVdK1}YYsJbqmRrtD7nVga7#Wz?ppSctB8D)!Oc>av
      zVQ1EMMXp{c2!GBhI6^~D)+<`hyye^Sz7^DiCA+4fKl`68jA#hiixOf>aShvRRmTpR
      zJbM$91KG{=nG?IRS`^j5_S~9*J`MX`&Y75=YH!EDO%rkK*I<@KkYii(mQyFyy@`RB
      z%FhPA?UqMkIEcdr4pFtudnWpEMAEAlYAT?iFEKg!8jzzh{jF999Wpc=H*o@Qvk+-b
      zKXN%RuUM}Lmu>G$yxR4@J0o2fz@UL7*>~DEkwRKSchMJCpp=&V(k+Rt6gucCS!GO|
      z!f6dV$m*u$6SN7jcM~NUC7rW4XW*Sp9+P_}&f{HbZo4(%2V<h-`9v8?Yz5gG=}<{h
      zyI^7%9KKn5Wsbd_nxloIUa7=P4cerJ$VxN0XKOAutCk;}Ze7nv6D#xebaLK)yLQD9
      zQtWZh4S2~f*@384ts>FGiGjP4=`|DArQ^COqI|BEDt+;Ri5qfDXYq;*Oqs}GnsgoE
      zmV+e)GTAh1e#vvx6eZ@2iCH<A9yu6atk_<?Hft9gwjjqaV}L#PZSHQYUMdM+ChUvh
      zHWuXDtj2cF#C-`TDdt$B1tpUnnD_`ElaW=e3YV{Gs-t~6ml}}>1rtTt<hH<@ZM`ay
      zlI_>Fh^l5wF<j-baG_qJ`Co@jm-(XVQ0cZXvXh4<98@%P`J&>j@cgr#MP>Q_<0}nD
      zu{j*BINC}zcudFKW%pI(ezFQGRh~GrUfnN>tF}Dly4xq&Ny!yQIG-@T5gy|5%M+7#
      z+qt@o5I;aPIrt2*@3{)W<ZnzxhnRf<JGkm=W}zE90kztN-Nc|^*u%ZOjOo1VRjA*x
      zT9nsw$p+q-N`((Ja3GiB@0-IqL&wq^NQ5vP;re7elH9<VF!IT`-oQ{i@?D$6VG@-T
      zBN*lVdo1)m53MmCBI7uN2}SI3vrwDZIb6gg)#@qkjVh!8K08WEdvKHpqa@nThQ^2z
      zVdey`w8R)u4FS8!>uLj&4P>7nqCX8kZBvS>gd3`~*-UPg)^HR1TR^|En9l2+WR_63
      zrq*GmvZ)QsX_!hqM=bR-B2WJQ^GDoX7~DW!!!z8;amBGRw>O<q!3I9er<%bR5B;8Q
      zz<MFkdBx-=?`~178P08v@!M>5hVtbp)g4-JfqD1X`hC9k3w%u<sHc)mjxGKn%wrLP
      z9T>zaaTVgzDU`9KykjH1dCuAmM&yXr2A`vQkaDfT2(LreFCBb>ZAnIkk~yisu)dC+
      zaXlB;l?cOnTz`(PxUO3IBdwZL);KvFNhiO7ac~W%;t_5vhmc>#vA8}Ql@F`Dc(j$W
      zBOZxIn>jB7{>CjsBah?@p=K2IBFD8z@+FSS=Ha$XM?A!FRFHtn|2GfmnJTX06J+62
      z#(+|-z``o!c+8AXx%v!WGWIpTP$FJ$3efi78nZ?z&~AJMk60mA`CJJbX01m`Se@uo
      StRd(>fkUh$l(A}xZSW7;3>-WF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeTypeInfo.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeTypeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91918d9c64e55bdf6e021cd58176659d49a7b12b
      GIT binary patch
      literal 562
      zcwU83%SyvQ6g|_%#->keeY;THBoz#z=t6O$R0^doTDovINya!OkCLWUKg)#(F8lyL
      zO1y~`s$Ix%=f2Lla}V?J`SuRr5Zfv;47+YHHXnV@^rS^@U^=01UI(EsdQU^q3hqJ`
      z3PW|kC*1US;F>qqK-jU0978>fT=U_`PDwv_hKzI=YVE(2Gltx`3}k%4u%gemjXr~N
      z89G8k7NsKcC^KYrqn`&YP=ty_hDuuoqBHg_5%sv`iR7Ws=3bviGRdb!CBBy<hQ0Q`
      z@@T7qE8-;WaG$7k-I&>}8%Hv52~?c{jfUJNWJ!*$L?kD|X-1*XpzHI*`AW;UWzf3e
      zII=}krV4&7bdWHxLz=T>3yJnbI{leKmWM`_0!2+^=m1*d6~)H>3o6f)Ww1ndnYh3)
      mF;0kaiW+6B-)JnO4x~{sl`;AZ>QR8Tsb9wi^%*wPd0SuCXoH0S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathExpression.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathExpression.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a9eeacbdb8f1a8103d0e2040d910cafc6fd13de
      GIT binary patch
      literal 1313
      zcwU`UZEw<06n-usg|6F_Io)(Bb2>}+Qgyz>uxN~9eh|UPLQG6dO1Wbtr6r|B^jB%3
      zA@PGhz#nBi_p%`J5{)04`*O~6p7WeO?T??|z5}>}2MS^gdc%v%UduIIr$$TDtotqV
      zx#zd|n^#tNQs}h<-sw2Lry#*_wrO=O)3v;YS*|s?9V$pNtouR3e7|Q)Y_Cl)a}3Oo
      z;B;Wf6vr#%8It>s=Y)?L-s;7f?Hu@a)Z$*4AE{6Y1IKIRi!=C3mDjxEyImgSb5&~L
      znP2BB;+WTv#sWiJ&s9~BDh=n5p#;$e!=^q-k(=y0O~~^a6r>myi;l-jQLDy-Bdg|e
      zA=I}mw`v8BIG<i7!V{;%V9ZuIHa8khyzbi!8~-pE29=LYJTs|+Ar+iXM3nsd*a&d!
      zc$VvY<YG|k8m?o5bQ}kq<SgrxQxSts@vh}YR!Aw2^gmci^ak>kDX3|-Pzybqw?h)s
      zQJ^zqXWHyEO@YC%GMaTzemRT^0oxjOuuG-ueqq?-izzbxzw0^M_d?za1xVUpypXWL
      zhc?Ang{)8SBXY@fYQ>KNn;$yDC#%!Euq()rB^7ac&IsQM^U=4Qq$drbZ;p2FD4w8o
      z!RSLXjO{)azhdb#-Ndjg?kNuJQ_d62<0&rC$rvDT5i5Y)t>O~Z6T8b;Bc#|}!BtuN
      z8tn&M4=EzD(uVN`OMPU2)2I?upau^mg*HeWP_UTz;^az(qI-rLxJigjDJO<o$Vq}D
      z5-M8LB*E6&P9IyJh8#&*vpga}8%oe%;<k)y^s~DwyV0;m{ltltTtKl=Himn$?)_f_
      CiaV_U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ac3fe11903967e86a4abd48c98c5a729a5d6e4a
      GIT binary patch
      literal 660
      zcwUWAT}uK%6g{Jxo33S9TK3&bs6k5vQS|i?6oFV|Nw4EN>DYd;uI0}vD54(v0sW}x
      z?j{!5LkxHJ-m~|dIrqMQyuJZg$D)b|L%v~m^sZ&<rmWGYrPm!xKeio9T%B>hS+1Om
      zwqxE3PlduT*5bEZH@V%=Pirk<_$p!y%Z}I3?>3B(+jWVi{~|Lewo?}j>C(^MGGRLm
      zv0Z6Pf1e?fAN*aY68Vs_1fm#8B92jpXueR5gZw0+VwfRSlC~&!teWsHc+LEJ$lzv`
      zdorkdpyD@Wo1s|x@6co}Z92|P$1QV9v|Vn9%kvY4m3--Y6BXZ+c4Mb72x*wcjEWo?
      z{XJI_8Dwd6*Av&W8~7byGbAcb$1}u{49w^LGPoA7utckfQVdZb*a+PbiZ~L4Xp|jM
      z9UzI~Gm^#CC!`+2o^iTIi3@B(!4@&Lk)|s9)r|>E0$~=YGCE|tr+LuR)QXQtt-fF?
      ag8RN`EVQ!sLrm+7X_&=aC^jGVFMI;Xt&>Cm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathNodeList.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathNodeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8568c73105562abde946c0a2a9807f3bcbb38e9
      GIT binary patch
      literal 609
      zcwUWB+e*Vg5Ix(bw-~L~UcBp*v=t2EgGh@gLZuL@pcG$|benF;1=3W-zY>&!4}O3j
      zCC;Xb(7s66%+Ai7Gw1Ane!YJHIKplQ35I>gAL~z^tGmLYFw}d2r(gMj$M0{<XwV6I
      z+z_KE1BGFEXg-*_Yx<6UZ4J3ir)h>_5IXwfu^l6S`x%mfHDo9lvzP`$x+#1SoiUWE
      z^W|EXLAfLv6-g{=$YF`ds<mzoq(DOkS%$nJeBK#*77y=C%jI%VV4H5&428^p4wYyi
      zMhsQse<n#<wl93s70)!Cp`u|8D$(>qPHZ`cM+WzuXb=l(Q$a-BlQ!BlWA+w^OuY@p
      zq0L)DYN^c6JCx?JN0XAYQqrHaN3WBjm4no<K)V(a^Z{yp0<C`VhWra<39Qh6iLk&a
      z6f_9YM1ivMv>U4^0`X3=l3bLif6946Jxori*I$vJp!`Rv#_)53T*P$Rv~fzu67o(c
      SGOS}Gj+@w`I>UC%u=5RgK6*U>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8006e3e3f872448e4b1e5e83191d1ee690e1d19
      GIT binary patch
      literal 2233
      zcwUWG-%}e^6#gy*0_pOjw3J$)Qd=<uXsoTRHU%qCDmDcy7)r6~CTzme&2E}(C~d8^
      z>iFinPmX=j8J}=QmyXW(=8I4I;9ubXp?+sKmJnd3WbW?WbHDSQdwveT|MT;&08Zhv
      zFzOUe<m_^MJ#WP=GtJj(eA&szFWXMuxIU}9E7y!t*>b}ODYUQZYkJ($?Oc2&y=r7A
      zZB*!Win;im(-~iHy+D<Cm7+qulU`NmNY*MR6dEs>w&{*4bVhd`52O@A<Ib`XK|NYD
      zG^3Sd(ScMmcohv{G%2(tP1~3*=hH@UUQb(w7;-YYmC}o*d{=}acf~9z^e3OiS6-|s
      zYudVH-lJ`WE)9nfAxXAqkgFwUxB+nfZo%-cG^fx?X>gB}Zj}S^ghJ%fdd4WYrel}F
      zcwV7zk6=B81x#~p(X?|Fri0Oes^|nqyki@2V~%4Py1ixc1_L1agjmKjgIC2-ZCZ}V
      z(M9Z(y+&7;r(C0`yH0V=)m<v=7ZzJDlvW%!Y1lb;#pj<=*k}4kW7=3}0Sqb}t|p$C
      zxmx9mR;o~tJuhjV+VvVut`oQ=;eJ`eb2uWqS2XnDSQuxvmEMF?W=`e&tcGs%L~t6f
      zNqM}^6h$WnQX)ubIEiBd8qx3qjz{nY-VEa+9ou56L{GyQ#udVA5~`W3!lCGm>WEih
      z3E@Zx<)ns}5N*O+ba2Ub`trJ)SusjC<?L+@C-9<_Y$A-S<f_fwSUH<DiV-ByB9B=O
      z@8B9+K`#^xds(47I=(aAfs${0Uc(TEMKvX=3kpNKHP7A@Nx2#8q-!U_w3g*+^>|Oi
      zO}x*<unNX4y~N%*u&oMxA;~^OIt-n~SaYNygJX=TbcLR0whZLL$ZktyU{#{e+UkEM
      zCungItCH+nHAACvK9Fhx3$1a<Wp9oM+L0&~6oz+0?-C_H2ELu5Xwvf@soK4OO(-)=
      zLzdqnzQH@9wk~SBCUT2EA#=$eA&LW}o)p}%!5Y(ks@Pb2C6PFjvt`aH7c<7BDHE=<
      zc8Z-8UG@)|xf*0<%E;v4Z{cc&)Y3lgCQ-*95Q%L<iw*vSwjcOahy8rEQWr=dgb`|t
      zqJv+D0yGZbAmHzWm9C(Z_<-{qF-ok&Vn3p76Nk1aBfk0=RmOcfEdT~|s!k>?-%3V+
      z|7L>|(MwE-@1vA(B-BXQ-!&4pV2z}o7~x~%)|?DH#WwP8M-iip9afFvI_X=bbIPHt
      zfhT{(Jj5?_e=kA!hD-Sjz#vyY*ZGQE)+J(3ZTy1Mi`=}riE|##Z*Y6z2}V6k$oA4m
      zk55H!f<NKw;yTiCS<a_CTp>epaTC+i^=Cuhp|>;iH6p|9Lmp-phGU%}4|5*gUHCkt
      zIzv5=|NVQ|!*!}GiqRzxA3VYGCd>}YgWc`nc8AN2SmwU{riV2TcQ^2VqNbS=AWc^@
      z3`ds#F09}pR&fOuW|8NYgIl<b5`XvM;t|&H1=jH;?%^wbKgLJ+77y_oKEa=SOR~=d
      nfveO`1O6cPJ{_G!is%Qle4pX_nCN;wk5lu3pMXdHtv>w^+J5>l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeLocator.class b/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3cd1ee602c628776d2605736570085cfa2568b48
      GIT binary patch
      literal 1191
      zcwUW?TWb?R6vzLQ#B8$N^s-I8TWh>DH@mhfDy@oyDhr_oA`xGN&1Q)cHoIlBEAa#P
      zZG2E@2`K2J;D-{=Okx|7So^R$XXgCR?_6en{r>tLz$Wf1h%v0Sy~yZyUBl%~S~^D0
      z>KiXSzw1<e+Y0?aL4skiW4*Tw*YeuN%Vx*1Lj_5OWj|=kSP?UlGsNw%&!AT)L$=A~
      z`ZhyyhkHDH!mys77EPZN8Vrew-*QyMF|R?z0+I5CMj8xD8Wg02wX7kHl!6t8)nmq9
      z<hnJVd!ZBT_HAcB<i3}Jq9Tj)0(F65WxR@d7;vvmIa5e8EL6GY>_y$C6TGsTt|Qu_
      zHr<95aIqg9Cc<~T$B?W3Z<aKIxwaG5qNdAjv&E3j7p9Y|)J;yqb=+V`?H_3$o^D#x
      zykXM%hhFG(&6c3AYsgD_Z*<6zA<1#Ka=@mLmNneQ27~I3IZt_UCQXpA72l1z-Y`}m
      zH#KYtq-KvfC_~+k0^51c#YmUN$F?ERSfkK5eP<AZE^eJ(u`ceM)--)8=E$p&^^tUO
      zT1&+NGR4v%7K`OW=%t^?d_(q)es+L!Kgxf17sc)i$z!-g|C|IqLIT@_-N8H_Q<|r^
      zjAv9r1x4(V4YFklT)`?JEm0DamMAJl_ElN5DCvPL9aK*7fXX?5KESolM@f^?X-cp*
      z6b`{GCf)(<8E&2kyEO@`&4lGgumbh*Z&>Nm1nl)p7(EOLGfsrvnS{Na3ELXM?n?E&
      EKf&_q;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeSAXParser.class b/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeSAXParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..458c7f04f9fbb3d0bf440ee127df98220480330b
      GIT binary patch
      literal 1481
      zcwU86ZBNrs6n^erD3k(Y2!cbM%F8yCitmEaAVK{whhew?`lTz^QQX?4?GXJ<e$WJh
      zkwm}yqm1X?jizjiWLfX&InQ~{)2C<q^Y`a301H@D5Mj7pu^ak9t*Te8G97!mXB_A+
      zZKuYI%bRZu*W<2&7(;5$*r$p>)@9by0|3LIZPd6|H%z|#$#6LX+h$PrjjFX{_?BH^
      z=y_t<mj9F?p4r~cmKb6y&JI@*g{Gkw0}Rnjw$ulPAq{c#h-g@Yf*#7`Et?k_wK8`%
      zjB=IelX=H9swKm<#C<Cn^LH(eVJd(ABP}uXRk(jDe=L*DJ8nfb32*>XR}V~H_btcv
      z6kK8$52J`JC@Ywx$!*nw;};wCy5stMCqVY%3b{$u^gfwLiS$C+cKoz=id2z8T6l7e
      zVKkE$zUx)PuINSIB`cSNc^Zk|e4StC#*WZG(WXBrEh(7(-#ZR~DyA?ihW0V^3uj!X
      z&RzdA!%Q~`q10M=kDERXnq!#mG+>>ZPQ|vqgd7mFZfTeo4>)Y@a`WTqv;u7ry+>Of
      z$<Dc?%?oRr?V_zynlLO*yVz(WZIu}kmRD%oUs^`mV9oMMp&eF>PQx|%3rlR<$k~mW
      z7raQ*)<)^q6`>C;v5XXXD)c3HsjgDAMR|c6${nLWmpZ~=Zt@6;@3J9D*Cb+eeMZ-1
      zYI=@AtYCyP>1G=)U=)y%7{g>F21O_y!$msBDHo%=2|4f{^$C=Eg49;>@-eRd4rVp`
      zUrBzgiE8oF>flBP*P@Jp#0jRha)+e-5Q$^Vd~0JYgcuV6V+Pq4qfncpWfz>Qq%T6}
      zz}yeq6dLEwNK|EUg9g8qq+?BRV8Z}(+$M5H|7&-;(614F^gQ}^ME^eIawolr?vj_n
      n<@<QhdYQT$48(;OU)xMDLMFrm6CQSLPP8|F=-T{9q8|SP4~QjF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.class b/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b2f698567ce1c99818b862ac7617e77bbd959ac
      GIT binary patch
      literal 1596
      zcwUWE*-{fh6g^EK17VOwK|~Nmz$75!z5t?Z5j89(h>*9=(1gKZCN+zqf8rPT;)7BO
      zE>)IqR{2quw<j@15|xKcci+C}o^x(@=lhROUjST0T0sp%ENA)J&bFzUMwW&x&E-4V
      zUCZ7U>B-e4?zqB9aNV<==L%{W`nLE}N|1nju<2?C^BC$k1owPLxD3rn3DA7cFtvG}
      zA7coQ8<ycsFodG96^7brdtF2jLZb==^$MC8T7P5axVuTX2vjsSfT2Z29m2A%VTlEQ
      zJ1d-Jo;3wSThi9KxxyVou8YB1Z_^+ZL&-zCB!#Lao|VE3z0p|mAFc@yncdMv-ZN~=
      zRd9k~q%ysbJ8fGVM$UJ*%q@WwoMh;<om_yB%BXnRZV$En|N0};on95EafZ5NxC?w+
      zxOuLN$!FXVLANt9<*bT+nW7r*3O9{)l49i|=*FPz|2c-bXeJ{MCXy3gqHvB3?a{(H
      zn%v51Y0n|dSS+Jph+*J>@CDmT3Ej?F#tX4t=Hfg<e`RXg&*yE&E6a>P!$k!b{$+Y~
      zKA94HT{tQ(;WGKvH--MBs8%}vi{h0=T*Y+-*BF}qxR)w!;3hSRJTnZILl?7KLifgE
      zl_3RVzpiQ!p0aIIaMC}DTPh}kCT9yV>a;I!qZLSNt5inRPr1o(G+9wk-Y>W8C_1Vb
      zqXTOo+JuU`m?EC#)T3D$xToU24Adnilj&J$KB;0J3q+Uq$?1(MP7mdsI5te4V_+GQ
      zm$rRJ7YReYxUQ<NDtHk%L-#L4|2+&f@)gspmge;8>Dxf7DcWT;w#4@liGPN=wvQw4
      z(fpQTHE5;pkpMqQxM?(F25q!b3m6>5v7mN4Iw<=%&BHWyqARF98gNnGXLPT{_i&1S
      zeft=AQ>q;f_U~7%8AYsEvz`=mB97sps-UP;)I0P6Bk^}=9{PwYHTa6r`QdL+La(3<
      z?_vD)0Ru}U<{=TK0<zPE5=AmOyNx?U+J+{wIz>oEc4w*z&}k*nJtYC%FVV1z*;fef
      mV(udzgz)%a|5k~9jh=j_jJ~Ht-&3TQvqh3B=^q9aQa=G)@N`lD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeXMLReader.class b/libjava/classpath/lib/gnu/xml/libxmlj/sax/GnomeXMLReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a12f58e309802d279af80845ff83bd62b9338ce2
      GIT binary patch
      literal 16049
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/sax/Namespaces.class b/libjava/classpath/lib/gnu/xml/libxmlj/sax/Namespaces.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9cdd479f9b01f96335c36d192889f752bca97eb7
      GIT binary patch
      literal 1840
      zcwUWEZBrUo7(EvjQCKBnqty^&Z5u(OG^S~+qIt2gp+RGV(VD(4aI0%@VRjcs`?-Ij
      zGyU9rHGLtIW~P%*%}jn&({mTPqBxx(%f0(N_c`~R^W5vJfByUnz-4?BMnGVA%c`aK
      zcgyLrS>Ujfc8vY>im@x5s!^0q7@EMD9b?Z(mknzxeXp=1i>^S(agE|5fwMU;S98sB
      z`lf9g2RYMm=L9-3re(Sd0>NZzT|ir`lw<@!M0JGG8Ai82-zk+5=!kZKTj~g*Lm-wj
      zExA(LEl7LKD3ql@JXa|i<#oe0)q69jx!a~AFp~R!H6*50YtFXXW<bZ=7$iZXRHBY#
      z?xe`M)I(;gm8x2u&~YBaEO*Qwq^ByY!XrA~!6@b0a<{T46;3wQj>H99(tU70D{!%O
      zqr7XI*4A9AJ*2=d>KIetLDq(m66ig0?2h4VFB_zm#DtDZN=UR=v0THnoV)Ts#ivwx
      z`oxa^Nox;<ars!M8$>#BMS%V2sM_*-b6?rt##KO=d?+qpu?c;-Hkw=#v?Y&CM~NsF
      zeHuH(hEt4LS3;u7jO#jX;3jb#g)^4SzL6+ZzNq69+*Yluv2x}VH{J+}05zLBL#9=d
      zG$K~4*|xOYRnHhn;r+=}i}b83ZNshDb6vQL<uGzQ97oy3O1Vr_vtl_qR&Y-sa(j7o
      zZS&h)HowL`v;cWGDvHmM597W-&+&|oHPHD^v$>s8ysl#dU(oGG@*uD5>OIDcA>ut$
      zcwY*1A4`x&zEZP`a>-QpDt2^trqnu&@GJzOP6X5i<*#~pr5Wks>=v^scV_%4BID1Y
      zZ$3rOABa6+EP!7A_IUNv&~Ozoj&Z)}jT-dfEvU~~A8&?LDi<059WhZy|Hctggd;G|
      zbqg&h5g%p9N4e2t6;~+gspFhhs^dZ%+7joVwxGp*w0H4d6YV#y3~|i*Nb`>|qh1nq
      zy#E48epe>{#^~fk9pgV?NR5*(@WHG$sJ%pIeEKm$gWBPbf!B$jU%!e^ANnMQX(f0b
      zy0MA`Tb@Lo7OmkrV@qtRBKBcpbDvn2k*lN@K?Wb;8j%ttJA;oYdYVYH%xYXW$9zM;
      zFU%;6j4xn8&CdJm8$<`5Bgyv7&uU(FP^)8MV^Ev8RL89r;~Jd5<NgLMFW>@7<SlUp
      zTikQIg>%N|oN01avn9>~te&Rv*T`%LqaJ(3`3}`JI9tr922Gu4VUuxg;wAK7@!2!1
      t3LMh!2hXs{na?ur;Z-nzD$c=XGxt1Z{SDM6vjP68z4`A9UwO4({|k8_eAEB{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/sax/StringArrayAttributes.class b/libjava/classpath/lib/gnu/xml/libxmlj/sax/StringArrayAttributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3d4fba1ef83de84c4a93ee859e1904b27b060d0
      GIT binary patch
      literal 2599
      zcwUWETT@$A6#jND1d>BrpyASx7Lm3jq(mdua<vhpL<7i0rnckd0B1rl1bRpqn2wH)
      zo$<wSobg4+@j+jB;i1kHI-_GBe5f-%>tFC^sNde_^pL`-<RRJX?7i0aeQU3^_8<TJ
      z{0P8{m<zxo5X%+I$?dg5vXEcovYOn~x07=vGhfW5O;g`VmuN4ROU7mZK7li<`j(z7
      z=*3)edU4fQDg{s@(7bNu6o?Eyj1ce^jG}<Z2>3oUcDQl=cGivX=45tCUo!>;YPR%3
      zS%x;<&K`1Eg5>c~zL+nK2n=+)0^KOCuNg#}HS}e}9CX2mEl|wp`mzy(7Y!Qf(MX-$
      zv4uJaoYfFOZ2-*zk^j*tU0XHOAsE29r!K`Jk>~9iLePQ;<GdufAkbfxWOv1<v-zSi
      zRbE>(%z1sWU<fp3*O&Cdf^O#Jx4r2rt>k%kJ+4HqRh4(Tp_`kADbQ7oJ^}xRo;S%N
      z@&a|z&J>r8ZQ41blr@UE(u%rJ7QKc$Z_m;QcV}Y96RYFp^lC`r1qPJOyiCfa=Kj2e
      zuStBFv{iyI`ZT;OW9te}b_HtbH1ovanudPq;J;%X26#BXvtiU?h?}Eh>G`x3u^^ky
      zGVNq8cORGHQkqN<ZAfc)4WmrgxKq{(n=;)BS8GlNW4D+jhd>~D!U%+2sO4>5t4`AK
      ztsvVmqhSQEO6yGx14sy5a-(q%o|3`i(t1n7unZ2)t(VOuV>~ar?wo69^-3soFv!cF
      zpZ^{?Tzq>xa&pwl3E^6=ey8Yln%1B6@^gJJ{t##4iQf_M?jn$Q<S*=_DIR}-re6`>
      zM~iK??IYqH*+nesU%BezUQ6^Bgx~2&gng-ph|X~*66J^QgVfwTuZYU1AO8L8C&k~v
      z|G3i94<80`7DKqe4CBl<iR<V?8sjYPEWh8y7@nhNpQR3+cpgwz7cNq}v@S6p4-$M`
      zFEdjweb1wtmXGH#qFNayxk`V()UxLYsZpB~ibS&<Y!Xg1L9O6<dV9FGM!rKRqOyTs
      z+?R<*QV($DzJqs)0)R<kP1BxHxXo6qBfgbVYn7Z-wG1yEWmq7?P1?6kV7OW>!z)J_
      z-Y0`jd+7v*0f%AIW@vbtp>gmi^a`O@X|Gj4H#pD@4)m}CJ!3<MkBN^&Qb*xU!k1`o
      zRltWG_^<=d*|gyg=p!3!LN@h~>gUveug%AcPaNR-x40<nD;$fS$7oUZV>GC>N1gkl
      zdxw4go9D2<I@R#qCHhAkw~zU7eZt25l&$|6TmLQ_{qu?jpKw%8$QRn~O}@7({V}`2
      z>(NX5b=BZ}BJ3PYddTd%yu-U_l{vJ_vfBFE_wIQ_yQS~%3VqFr_Y3}i$(#8KEwnrF
      zwbImK;W?VR<ik!j87Y-`RP}Gz{2A(z{-JohhnF^SfHw{cV~yE26|f-(HsqulvQw3?
      zSsQjly<tF*um_lQLH)j>%s~e=Xp5Cy^lXXKN5OuqTH^4tB_2cFJwf7(@}K<=F<06p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/sax/XMLName.class b/libjava/classpath/lib/gnu/xml/libxmlj/sax/XMLName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d66655ed28ab9e0ed9a03d084471c97f360fea1a
      GIT binary patch
      literal 1238
      zcwUWDT~8BH5Iwh_OIc{GfFDpmL~PgE6{|v9EGj5zQXm0o)EC*7OW9_-h3%HsAE5sM
      zAARvv6RC+0{s4cJaqf2G7fm#q-8*yd+%sop&VKv;<tu=BtOem=7_XWwwNp1#Lod@(
      zQ=3{xeYRfQ(CR!0A48<39c!wgnN@YOT;mm+AxP&hceV-)(c-VuZQIh#YK~!OrC~O0
      z&9qCJ(c%&Y7-kP_`!K7j?RGoWPNy1HRpe0TGnqxzq)g32t-=|+ElXz@Fd7xj5Cj<f
      zN4+(0Xz_i$L&lPB>UN$X6EF6ozGgP+oUpgJw#Tj9S$>HUgKwp=$3yTUDq|SuDRDee
      z8UVwn3>kqCF5prS7yl@}cU{J1j57=xTGK9=d%Ux`PjK-<q9CrvWDFu8tSK2o2uQfX
      z0O4Pi5$XY7lQD<uRAsYOZaSEhmH^H&710S1tuTzm3;jYQB#Ar~FJe<NRNSH#@uQYz
      zGzDz&@8RVVFC^S1%3@E#9qO>t`w;G7F^C0*nSXaxMh02RQ{}d!g1LB~HuqCTxTu?a
      zqg5|+>#0^YxDb$-bxE^y;k%nY`#>l9vAzR#wV4x|(5xo6NL~M<1O`uq#KnlOWH+|m
      z&X2_V5)ExPT2_TW(FGmZO_>sbn5JoZ=?C(Y68s2|7bMRE2@x@3vLiwS&MLd>kh6N|
      z9Y&aLL;x0mj~?KS@)_rp<S9myk!%-Z`Izq=#>B>i!cH-%M5j+N^B%iOGUnUuVpbd^
      zy|FIhbQ-;(e8OZGH&2j`&XYYs_FIIbY1cl1tVAUTVN!8}?>cVyclV>iFGt@zF$5Nf
      zTZWXIC9XM);yzWI#}t+k#|qL|rJctpU=135YgorCY~eL_utc|&US$-M2OMh|52$Wo
      uiJo`}^%xKFh&ss#Z?)GGk}q?j{6uWz!%s>9XY;uOE%yRkXhtMN)RP}^xDTrU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.class b/libjava/classpath/lib/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c377bb5df3c48cb53837b7ad51e40f93ec1392f
      GIT binary patch
      literal 1647
      zcwU`UTTc@~6#iyu*|Myl6{HsAs@NN>h<F1{3@K_-lt|O)gE7;xlx>z>GrN`k6@P)R
      zkf=mSyuA9OjAyn`3n^jsVY+k9oO8Z!zH_F(et-Q2U=9ydC=Byer*1U1ZNs+8^r;!X
      z;EuQHiftn=gewY`=bMfx0^<pHHf&R<h%lV5@ps&?xl=WsmuqIlSJBOoa78sJ=kbQo
      zp2HBc4@)sj6=ZTF2s{OEk)eCZaxDKL!*nV{e7eLCS#~!}4P7{=qX&HqU8!`b2Siqf
      ziWozG!E(%J_3g4Lio9%_4Do_n;dY4&OWKFdh`(id3=4(-5Qm7XJ6t%HQ)QS;71{+^
      zfAn&V3(w3qD&||?a-D#+)-pX6mrrO&DXn7_!wjiTQWTGN#N{YjLlRe{4x?1EsbI5R
      z#Vz6P$cqwsFUB#cVuE4fOo??2Vv1p=b2mCsAOMZjzougv*Gc`V>9^m9VdY<Hos{zL
      z5d)*Hjh&%2gW^+ICOjlV)RYQHm1cG1<n^^p?sGeT<et-EU`lE|uj3XLXwK=D%e?Lp
      z)KDtjQFjdq+>x!hd!jYR2P0Z(mKp3=gs7~$bx|=_EIG5Ir%vRo%qFVz9B4&pDe^VY
      zpFosW4`hpaX}3atg}z#5A9^PH3H^IyDY!tteUuB_Lj;SIv4l8TmzvSIhyftj$*R-~
      zniF|8M7{`FiJ-beds$;7^AY_ANWRMMW8@3Q6nucTn#t|s>i0d02H_2moK4&~WdY0N
      z$y3$G7{=28d%Rhzg*}24(gAWeGRRUkqjrU6F%yQx8hKt2LXlXMLbEW!v$zq4#cT4s
      zAp}k=Dj``Y^8Fold4r;5d@}nPH&=5%k$8_-?gtXP2S`XFw|9YKh*g@CE$FC`&u&9Z
      Wwh)tqm<?uYkY?n5aPP&S%F-X+>2T5j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformer.class b/libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5595c3c834dae964eef265405fd90571f11f8c78
      GIT binary patch
      literal 11424
      zcwVhp3wV^(nSQ^?+%owSNVv#gfIzt9N<<JaL6iVOAOs~b8t}r9{7D8UGjV1DM5|cu
      zwrZ`~Dy;6VyKbXv-HKZ>QnrHbBHCSBFRk{ntJ~GBZtbqM)>_-H?R(BYGnp%-&%?t5
      zbN=(6^L_94o$vCVpYMG3t!Dr%k~>|n32OR+Lk)Wd0u2HG4*u+Hh=zT^NN*@S(6BBT
      z8ZbK&k7n2fyI|H%-!9)Cy<==;+9Ic5M$Sd%z+k`^H6sGgpfBtjFr#Le4-;C|>V~1H
      zKhUtrH`pYY7#fNW4n;2rhX&1X)US3-O<6QH&$aHb83_e;nPI`~)?8{Y+S0NmzJ$w*
      z&2TsrZuLi^W>D>^%(-W6>LTv)M54n1GtzIGQ9+pnCEyG8HEiCo)9j9Ng>!{J=#Q=x
      zbXVn+*d7`RcbiQoMK}&P)tv;ic2BoC81;vO5f`Qi&N|7dtPTZx{e44WpW2e#E3mH)
      z^_U(MV48tacm)Mj)t!Y9oNk~9h8oQ<P>d26W(i8i&S1SS($B;4U?!%iRdWou;C5lI
      zU~;aL@}SaMxWGUmJRXj!4b-5PM-nu5x2O1ba#eM<ht<}40~0XOg$7E=Wp5-JHhpxp
      z{;?eH!6Gbn;Y@)yGtM=@OE$G`Ft7w?2}=6RXiJb`XYCiPJ>f}Kx8@Ys#<1>55!2+s
      zLM$_|9A^uPsG@zC$2ic^lW8ZH`-6RYd6R(^iRBjz?Fjh0TY8isD-E2B^LY52Z}vq@
      z#*JWpRko0va+|Tnh1G(2<HBuVEzW0dQq>yfX?L`FsJB-ojJ>LQTeBPM1(VuB6+NNu
      zp#d`(tuO<o`t@KkHmFeAD43E9S*JSrO$OSqS#Vm~$)6t%4J3RY&!Pr@s3Fyv+nTdQ
      zj%Q};)*K<FuwJOJZV^mN#oEyy4(;~s2=I_QUFcw8$rT4Zp@D`qn>QumtR0;OF2*GS
      z7k$>ow6ab(6z*%-y|`O1SF=qnY^B7^Lr|}Ey<HRcs2i6u3)PMaf21N9idOh4(iSL3
      zUT)wDY^S0uM{<>5Syfh$X6b3l;Tacp@NhD{*gWJ9^q65c7`vxiW>-Xq2TctwGBh|C
      z3P;VJiYgC$*r5LDGtdt|Yol*)&<t`{eO0!u>{yNKX>#LAfmAC=14>dbLqOhOPY6&u
      z2Mt`Ma>*SHSub5+H<^?SuFWaMa6+p;XtoUv>@dR}>iAWu4|V$joxZSNJ;x{Q(SAQ=
      z)MfcLf9F&UBBDJeC_hnE5!fP>U7d4Hj{2rH_z8W%II9sI5lI%HvTSGa{b0P}(9j($
      zG6JI~tpM1zHM30&MEZC*d^@Ezhc6YZo=Cp#nwB|SY7gpcDa+0kD(X>zTse+77F?Gj
      zyiP^KO`#r&pQJpdFcH<2jR*^Ng4ys;azty61n4ZnmvOHP_plYFX)<shzCsu9_yo)I
      z8J9PklH8<la14`UmoG4+4z({0>dCrDT$V!m7X}{0Lxk0*n)UpXq;wL5JxE>5vF?EB
      z3nw*4l*ES({Egxs4*ibwk8WI>PSfV+?#0=}$Q?-Tnb?;lW?oh9%*y0@B}9-CB!aoQ
      z^`{1s(yll}+P=y>3e!pHB&yq-MR~nd`65k`sc)#x^#nOt=HB6x23|@puEakY_$CgL
      zY^c~xN?1NV3Aqk>QeQ4(rX|QuHiIwC+%T+geapaMMRqg^O5!SEqf4o)`5l~Ed=*JO
      zqTF?qMJCm$Dw{1v@|=2oCsQRULD2N)GkKorP#~&l!}EfwlK@MWOAn4=g9|T?hu2yv
      z6dn9m1OJAXERJURFTtLc<VK!Am#o;SyPA|6zGvWNyu#j}++@A%2qi@KpK4;38;tVc
      zYbPdN2}cNiVBmGUK^BySTC<?&sfL_Q{j<A~2e0Bs27Zj6kPt=^gpiattH-GTd=>v;
      z;7vuERT?I)2rm3*9v4J7)4uAGF&F%ofw%Dv8;H7Lth$8Py{Nf|<+&wyB&6-nag|Z;
      zwLQEaZ83conG*cWz`J-am!m06u<KMidOWzQJKgv>38`gE9zuEy7rODkyvv?|Ppfr;
      z4-EVgAEuhf_haF|VmypGUq~zY9~t;HK4#HNm#+hL{dk0rFZcwX82Bwd%~GTfYQuOG
      zjo10VXQ#^Rd^i4|uk&6ONQ=XIYd%^Wk5ICWkRm}-bGuft&Ai`o(#nOB6jr>&7RkFI
      zJvm(B7R))hFFfMHG!NdAB0~%*wr=U`eZii9YEv`gH$f#s?bQhyOuTR6W|?5fL@Biz
      zdira@tf~|3R+06VOfqD$OtIQ&tGUO|i%W9<oDB7>4GrmQG=$R(nI>KfLZ*nys*_1z
      z&6d*zi}PQL(rA``i0}2tbeW-A@FNPwEJG?}HXB=l2PQ$xNC%PnQmd~#q52fkwKf>_
      zM~4$n9+@Nal={b%`UQqmNwwvL^mSPWk^Wj!z=H1R9`eQUWDi-mnP%Sf{MM2Bm>F2g
      zPXxt^gCx&h6%PA`RsX5pmR)Gc!DX=_OXMul^oajzQ-20*amg~0=*-n>@!5tnin`NY
      zX%4rmY${D-cbsY}l5^x-m#j>?)9{5M=gBJ4bU#7)q9K|wHEnN8e4YYU%UYMLA!W;c
      zYsmTP%b`8UFm%g$-b5F;WrF}}SF0hLq>XL2-xq1qU69snr2_{uyfG<<FL(>_2YXB&
      zp|q&GwfY{J3m(rdDQ=@VoGQK3x?#C{{Xt)V-efhFE<?7eD~`Q4Z1P=k{G+vXXi2I$
      zKDwRJUW?>%+3u1n@_d?433@|(vV(q!D;G5X8EW&;;3Db4GMD-gFg^b&m-NwJT5!;e
      z5>l&2det|gMY7Yt61h@;s!Dx7?$4_{+@WxQ?oZ#&sA2XddYSr)qhl@YVwC?9t<pH4
      zI<jlGFC3%~a-UF3%edUfx}+}3IqhkWGQWL+P|%EH^hiW@u@uQ}L3P!5HIU)Ru-bL?
      z39fFr&nB){eTI<F$#pKdHV@}aE8d1&C3}<K<HmEx(Oz{8n30IDkI~`@B)_#WG`d59
      zp@CrHQ3Cl|b2?<^s;-|3_^pQAtPpv6eNkUvZDRThhTNv7t)1ul)d##OnV;ttDqWaO
      z)>Od14*s#J|IGmSTL_Q-ErOwci&3I~CtxCfXY+3<%J@8qBRh9b##FxU=Ds383Tt9G
      zt)}iErq|RTM0w3&%<PJx;vi;oSjpkMgP31?93?eeSalF}BluzMvskzf;o75E*l73K
      zpT-%D4zGO_OB<c)r?JuHbv})A8r@#UC{{HVdJB)Ev}|3Y=P)LBc|9?-9I2`CI=qEm
      zF7&$Vo`=gm0((JyVh}^C))Z{C>n-*eE;vH1?fcM3t?f$dC@!K_$Fu0#PvP4doqDBH
      z3HLgVqN~wK9elh@OPYHazOJ(F7|hyH^p@=$MPL-6G4U-&4$w7?*pG)0rn91S)?K{h
      z16R{&d+Ds}>DJG~iyJT(H=zo*U@>mvjyrH3?!-E-Zo`*w5$?vN_%gb25BhN*0{9Ac
      z;eK3)2e@+|zDN!C^Up(g5PyZg#AA3EPvUPeibwEm{2lKBBX|*y;x+s|uV#<)HuDX9
      zh9||1r!Yh`U*}=+&?s{^pVVj%hKXE_Q~=oYNQFQFaa~6A*AV|YbmDWkmSNL|&BU@7
      zP9j}ToAxq{F2yQZwwK}5O?z&@jkGqvpt^~39-{Q%W?E|}#znZ5Hrt7`2Djr2l=otM
      zos(#bY26(heHNdy6HO_7BP!tN3me}76*}N*c`7MU=e4VV^Ew!72Xyc%|IZ{gAg1*d
      z;u+d>gh70iXYed$;W_P(m6pteKR8lhFM1UB2S=7a)JP?bU5`}SIK-y@hmY%%$-x=r
      zqx6|8uswB#Np%;`+OlgiB`ev*HQ&VS+PXuyy8suD8R5|oegt*X9@2{S;w0c=e3h;e
      zJ-VOJZ4~|h1H}@4E}zx@A}#z7_S+aO3DHiy?M*Fqs<kXBwurH%#LnjVdE>&C^H=Tg
      zC}D^2*Mdx#Z__L9XnBUUGA>UTp^wC+tc*i)sxvIll<;%L#QQ0ToJmAZMt6xu@HNJ`
      zC95Hh$U#KqnTCCk0>qI7@+ea#2axHRKz_qLpX32jq@@Z|?C~5xre^~AeNG@>#}o0*
      zYjvcn2v8NXHimyl3uBE(95BS0f+sZsR46L_PvSsa<feE~sdJxSTQ`cQGDAu{@JLZg
      zNM)bB8r{#4jpI?~ktKSmZXvWsfmPy(H^X9?m}0S!wD@UO6idcAan~1Wc%wL!DPT&9
      zrO9H&kp)cfPfTe`)OHkVHT0b*ICbg-R5++cqyjaDXHt;H@a&kbGL_0wj)^h@r^`&t
      z=XeZwO%nJ&<6kh=|BflWb~oLq`rmuHnaNDm%-ZTzE3?<D7Urn8`k8KIF4b;Uv7fn*
      zqxdk6b(O7);rNldXYs;5EUP<;7oNs<8Vgy*yzF`GX)a|&qMIpe5@T;+4Bs7*D7U`4
      z539KK)p6~M;ropqHcZbbe&{WfQT+ReG*HM}`>>os-Wr#X8m0ZGG5q%kKGOa0f7lP}
      zQu|?{?uUh{AGRqw>tlF7-gpnH#@kk}+Ah1VZoBiekY7-U^3RwQhuZ3OC>MF{suepd
      zPgN#7<y76Dz4`w}uv0beW4dv_f5h_2Z0!}bCWc=rF5z`4tDV|voNZY>O<S!N=`K&J
      zelvm@Wxq@10cC$^QxEl4dnaR(X)+CAvbSsH`ed8`6;?0~YWQ{`bF=|vat5Z!BFvOC
      zF;5nwPL}W*uoO+Q9L>^*jnae;S%DpL4hA{iCFkN=S%n*AHSUl#*e`4GHI5&XW<1Vo
      z;8U^=houG2$ws^&t$0N?;Vo&y`?47y^7#{KmlEk9wu{9pUA*aE%FF%bvXD2XC9+*s
      z@JiGn-JCJ`r<dq=$`EfP*UNz1AR)O!!g4PO{65Y;EW6}UGV=p6EKkcd@(dZ~OI-Pi
      zd|rMcx5%4vtGp|>t1MwPny%tMNhRJ(Qi=E2!v9F`7-DDwQ9z$KHG#0xGtjib!S?*S
      zIF*=(k2HaBp$@;$1j3Dt>iR3f?7k7p#U=$DJ<d$ElOlNV0vg0YnT1jkCkut*<qAbK
      z3V04rXrfU-&yQ%LVV92hI)|7<tcZp~hIpG+I-GJtoTNB~k)gFY<>9zCmpp?BTANc|
      zNzfH}liJj%fOfvkre{^77x=8`!G^=)>WWF>rn=fu@r+7|`Yjuksa85oJ}lE!MJkU;
      zd0SomsLZrdj`MTW{PdX2)${Y~#;Vnsil57!aLZjp_9f!H8?)qI)W|*b)qOZazKUhU
      z-z*Pcwd}`wc~DogCG<5BC9CKLd?u>Oy1BAOYAL;zzNnLWVqeYCLdI|bNz2Q41!JV;
      z7-wF`8yPe2;=PQSU*f}znP21MjG5o!)6^N*<P7GE_Ml84T1CnBYLX#m^0w0dZCTn{
      zaE>*xTyTgXjkXbV)E|;&!BJV-Xjd=2c1>{9v!k}$(O<CLYj0Nr`*u}mCdoQgX&ldk
      zWo`t{Nz%f4!&$59wBKYC3fw5z|HsE_$K2kiu0!$?L*To-etr)X@-iyrH7u0xW2O86
      z>*RH8k~f&juj48PNR;od=DKU;$0-bRZ`}P8xNfstKx0c0lnZ4GwN&6Trf>({zmNxa
      zk!HRtu~<5FnuuJSWMJ!bFXn|zHM-|v)WqbH8X*-PYwlK0`zfRLZASMyjFg|H^t4h7
      z1|xhcg>sK<lS?yu8>xvE#Y^K+seYvHkX%+k-**c()g5P?Jb74pyXs=n&$cK2C&%hN
      z<;-ME)g>$B9Cg!_4~XeQM(sx^mycN;Kg9z19joIXP%odQMC#IHq%PH!LiFf5O+*$@
      zZ$Ji!uRf9Ov>_-VB={~gnUOJvXhLDLr!XB!DiD@!i|vaHYVvI3wLhHYkOP#W?h>^s
      zXOF{v;IKrx%4e`+I$|=!E~5Fyv94P74cT)@uCb+1<M~7iTQOX=32@s=QEV$iiER=l
      z+9son&!^d@pvE>;16*&ZNdl~uga>L_fwyQrRLiQpMH^D9{bSdo>vXW3#_Pt7auea&
      z<mOXg$Sv81%%UN)X-FjvnM*_F(UAExq>_d#pdnSK+>qN&fg!hN8?uOoET$o6(U7Gy
      aWEl-vPD9S3A!pN&##3yF$QKm?x#Le@?vDxp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformerFactory$AssociatedStylesheetHandler.class b/libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformerFactory$AssociatedStylesheetHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f64bb975b9c033b0828ade0672baa922d6938e76
      GIT binary patch
      literal 1279
      zcwU`T-A)rh7(D}}Tb31S6-7ZnEYg;r1wlkHMuMUwRY*#R@ou^u+9liFIy*J+DEa{2
      zlL#hWc<F_2;k_}&7~_@kn{7cNk%(<(zu*1loHMf@e!hJNU<$Vkv@kp>`*nM(>e-%K
      zB(rHN$^CF6kX8GEA5_KKekkM;cT^y^(+go3I4)PBR8ZTV2rELUhuklDLK=uM3<a_r
      zjSTsgT@hYQ$k4tgHhA6J?_+4IijvD2Qu$5(oZBAv%XUFY*DudgQMt+!46%w78w_z(
      zal`Z^!*u?{XlYvfw(Gm<4#RBbKi<!-6OP58B-+8yWuYCWiB_Dp(18>~YeqM8<y~Jq
      zu2+jfuJNLVp2`Of_tv>|b=*wGG!cfClfyVpbfVZ@lYt|`kmOtTLnZ5uas!`XBy&{W
      zqZ!S>yuam$ntm%Z(96(s_z(*VPY%inTw>^?%6NDH#KZtD8yI9r{yE&j5U$V}h-Y=~
      z5%=!Hh*pZ5!cp_tr&`-#3vGxeFrszZt_c%aj2g%>Or2OR3u723m^Cg#vC1W{3Z-w|
      z+`s8@G^GLB77Pv0NFbr(X$uL&_4VYkEEK^maYa|!EChAwh$UAadEZ|UPUtNdtYzO9
      za?#^qC`g^&V~!bvv}Y@Qx-nX$6!gz%+Jv^rq`sXLwb1H-Mg6D9o1s`|%-rZMI&*K3
      z+=+V5&@)awz(<^=rxp1ox^a#y!+G>j*M(?DhKtdxSLAC9tEs-xJ@mi8a_%+K@6n?T
      zt<JI3)jedW^b)ZhN=!6r6OG#Bp;{v|MVVb(`;DldI02uC$!DbT1;hA?yZD9$e8&oY
      iL`Vl47@A16H`8RYitFTQzO&K98<>kYG5Tk56Zi!QDNyVH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformerFactory.class b/libjava/classpath/lib/gnu/xml/libxmlj/transform/GnomeTransformerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33872e17d2af54bbfc1d7cf3617947c283ddd9b8
      GIT binary patch
      literal 7295
      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
      N7#Udtd%3y<_&<9zX7~UA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/transform/URIResolverEntityResolver.class b/libjava/classpath/lib/gnu/xml/libxmlj/transform/URIResolverEntityResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..799f455143a74fae94bc213dd51d05ae91d4eacd
      GIT binary patch
      literal 1383
      zcwU`UZBNrs6n^ej=r#sJ5ExTI6m%OeRS;385G5l{CyQ(@`mq~zbm`iq?Qr}Q|Ai(h
      zqKVV5{wU+QZCPe0!T8~}=iGD7bDs0k{`&p(JAm6*7ZG4ssp&1L-OwaWt<bA3*`};p
      zZw#{`z1+?1Dwd%gC}vi-Rr~Nn6Cp4R*X09Q(qz3R6)JV5YK!P+NEl|#fwSbc^mi0P
      z$n1(Uc^=+&TzxZU82TTmx@vDQ%qGwEPL&yiEn`oKAc(;z!Wd!*CR61wh-wrfLJYCI
      zsw+FKMny48az#@ZM)F2g*2=P}a^1TW?0wZ@Sk3=OYl!xsSEXxU*mT*utt#54s@F27
      zZ&LZ*&gJxG%Ptx%v#JncB-^ekO<Of|OT;8Yyw|n(=vCJ&;u6ECgRL4;uFy3M;0mTi
      zOfgKK)5$2VVunHViePyBkM#X;y$T|@jyVytG<H8PuL{>WiW|5|MOcnjGI~0}u;#xA
      zUYfI87(oj2BGL>=zxdLLMAJO!SQHCbq?N5H_LkhTDEUM()l+wA-!$IxeIf8TB))OC
      zXfnOc>S8(D8EUpFnp(~6@vS@6KeAhgmaR0nol&;5Z>4@rDYmcbQXKOoNDJilVO!<v
      zJ$2^tF7arZKYclL`sf7sheLmh0G%)*bTdHGHtGB(l0HH-J^u-@501|TdJa)6kb!`Q
      z6tRI3(#BnHjN&5TNF0^w#F%57pu2v0$B}UGj|roXqoh9~w!n^YIfyT~_I_vaGm`7V
      zr0^5*cL+}kKM?P5E#Ya2&NswgFCJm3L*SfDj3)0AOH*1POTgQdEK8Or7{*f~@C;LU
      yj#(6F<S(#{qC@(QOQB0TL%+;r2Q`Bgk^&SxPhP7;b{uoKi!~~m;hxiq`+orMKyID@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/util/EmptyNodeList.class b/libjava/classpath/lib/gnu/xml/libxmlj/util/EmptyNodeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbff97daa6504af5dd794217aa67ab776eaaece1
      GIT binary patch
      literal 521
      zcwU82%TB^j5IxiK5JXV~bZLwWFvhDfVS{mFG$Cnlp<&;an{r7Xrraw2lM7v$xbOq~
      zDC4wLqikH<IrBO*XYR-6+dF_0?37^;_Pj6=^S~Frau}u}(aIN>!JU2_Mq_EInJ%M1
      z*qGY)w(#xH6W7jEx|}T$no;bDhf`OKqd<K36G~?)RQjA?cDf@%;esnwm{_f$j1@xN
      zQlT6sfg|Hv+wmo#VMVU(kL*~bah@#biJB4it^YOlxm#%&5L%r<*IJgv<)RA5a!#ND
      zq2ftx$<Wi2Od@BhH&GJ1@=9f5{)|3KFUKypm0ywn&g92;a8zMWFcM?&;1$&ub_~?m
      zma^nA*4Wk-4OmB=kv|igIl0GZq#Sx)V)im-dr{4qsn@_(wy=p-KI1SKV3<!!Gy1=_
      L8$a9IS+xBHMqFSV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/util/NamedInputStream.class b/libjava/classpath/lib/gnu/xml/libxmlj/util/NamedInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0fa30cd37dea716472f00a15ea8d121bd0e1e20
      GIT binary patch
      literal 1272
      zcwUWDZBNrs6n^fyH)es!hB9y}DzG=HASyB(WH3w<1mnh{qLQwZQS7><>kRl?{OAwB
      zH#AC&pZ!tB)4MSior(R>(|gXj&v~Bb-v0dc^*ewmEc)PL7%Q6%X}@AfhF+quCpB!{
      zkk*unwk?~rhMl)9O{w_cW{B)5uM|nIN-MfyYgR{@VPH8|$SoDNvKuQaxkp=h`Du=U
      z$qa6jps2peHyessmS~S|meUOWdDYNO-Oexwv3QZ1m#W)Z4;Xqyc;IE|U)4=*tx+jy
      zRzWEl9H^=)Mp3bJXWdGA=UXtz*xz$jPiS`#PRsG44<Uw;lj6fheYd2jFFTq77{H*2
      zAkLBY*uP)`5HRF)MHq&<cg2g2rV$Z7_(`O_tJfJOR{zU+vdN{J41-;f39YWbCI@_F
      z&0gb9hhy<>UiVYOvSw?loo(#wXcp~^#W%AIf!w~T)oi_L)_s^@2({;|w<`|)xQL6m
      z<am-4k-~KXAPU<Ip4etKE;|KD#0^Z*aWu?k$wwubdvp`Ge3)Sfc2GO0+ge4$ZQNn#
      zQ7lV2P^+~AhD7Hfu9x<Rb6W0_lASBVY7Eh~H(gGVw0lb}$u38*U})s0U}-jq&sQ6k
      zs?mie=LY}ue$s)(D2W&7k8vU3TuS~$2T9RQ?;grBoS{{MqVsrz(;pzd<9&Vf4p0PU
      zY3~gBdDeM?INRE%QpHU%l=y~$C#mRXgg@haBKZl!ryzZtLI%B9Afp#KP@=gF7ZBx;
      zAx?|&FFGndD1^&IS)lAFuCxY96rC<l;v<F++atU@d7ndz&4v~<!&O|Pt}(8eVVuLf
      zrMidWG{MAv(2w~Z;<5ihGIfMRCi(^*c9={F(IZSokNtD*ln`+X(Jz>exKC$}lYc;-
      zXcuU`fiQ{~!eb2M84-R?^%q2Ui*uT3PHS=Ull)oSB{qG;Z4PNd43q46E_a+1+@qYs
      JHp8ba{02Dm2A==`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/util/StandaloneDocumentType.class b/libjava/classpath/lib/gnu/xml/libxmlj/util/StandaloneDocumentType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63c1435b662ee7d482a44a70cde6131460c66990
      GIT binary patch
      literal 5182
      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
      H{&weow_q?=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/util/StandaloneLocator.class b/libjava/classpath/lib/gnu/xml/libxmlj/util/StandaloneLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c02bd6d6a5382002895d8800480bfc989ff755cb
      GIT binary patch
      literal 993
      zcwUWC+iuf95IvhXNt-%NNqQkoxs*b&ErEr^8x^-mphy-M1?Am#jO)l3WUo<p<AZnr
      zi3o`YK7fxx%x+Qxi63~`nVmUj=FIH={Pq0@fP2szs4$%Rac<6{&<q2I%+$<z5Sk-y
      z#}hkDV$Vukn<r@l3d7FSes7zh9sA}>XX?4UfjUDsNqt!%vu9=j-(WZv@R>~U)Q+>a
      zNgA1>Bv0LostnCAh`kqi<al&pLk87N!aRyELL2XLCk))-grQ^oX+Pp=5c>}(pMA)<
      z7m0lREQkaCkU`gm!*%R>L?1IKgJj}0QAJlp8@miuO&@Q9VPC~2n!>xRVr$_Ys!-7q
      z-jRxJv>4h}A^(l-gq~1IqlIHT4a9vJRQP$2F=*EREt}@r@;&~l7=2gM%Z3-AQ89mu
      zZq{Ghq)BL>ZHf;5S!r|e1kVDYY=5o!UD1fX2NggCHPFkWBX&WbrXw~XE$u<tZE0(S
      zZexeeOLY4vdBCCZ4IQID$DVOC$ANKYj-Js|=IDQ+Yz0>Y26Z~msK+Df@tEp8K^ITa
      z!vI$)bAM3@*Ki$>o>0Q1C$v<gC)8A>C-f+kKgNxv8k4NR*Nm^|eJ&c;W$?LdqAmc-
      mCJZN~<o+tzDka~<trGIyrxo(+Qu1jj`CyeiE+yZVDD5{P7`JQy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.class b/libjava/classpath/lib/gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69baedb3e3288615ede0ca77a7e8aa8bb61fe176
      GIT binary patch
      literal 727
      zcwUWCT~8B16g^W)7uK!NA}D_HP1_hZJY#%mQq(LMDIvbjE<>3zJCn@Ls`#&bfrbZv
      zfIrH3cc~&66CdW@y?5?C_uMo4{m11u09)vIs4#Q}IuAdmDpWEiHw<$pRrp~ydb?Jb
      z{z>kR%qRWYm{Si`hS?$i$V0{TAbb}OMdCcv7@F7F{akAvE5T5EDYbO37$#cnLxyVC
      z90?y2xD&v`6vIp;wb;wkSlENBj%H*Mt`51CMLbSc-HFT?o=5-Bbem?{T>EI^o`<;`
      ztovt~6KR0?f<k4G__&Wn4-Xg`H<oZR6#*XN5raPvZk%D5Z?&Vp3bzZCCjp+8d(r5g
      z)Lh9g+(|<;mayVsnPKbp3eIw!9UGg5JKCh;;8!SYk0;L9vjD3FWaHQh5m8g7+>SCa
      zSH!Asa+`>rEJT_vBzRHqVhG-7Eo@iuEEAcB7Q^B{r6Xx>i$`opK01^1n^fq~V^K6s
      zUm<x$ezJ1`|7&?2kgb);9_nO+s{-7`40(e8-P|2F*GFiKuyBsYBRsnXX`)JYmnQE~
      b`FqOk{{dJZ16HtB+I4J@_e;o4v@!J)ijAiA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/util/XMLJ.class b/libjava/classpath/lib/gnu/xml/libxmlj/util/XMLJ.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00aceaed4aac14930908773b868ff6b295d3c760
      GIT binary patch
      literal 4753
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/CallFilter$Requestor.class b/libjava/classpath/lib/gnu/xml/pipeline/CallFilter$Requestor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6734da4eb58e3873804bf1b3c8f6c2adc28f7b84
      GIT binary patch
      literal 3236
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/CallFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/CallFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a0abca252742b4118ce088c1757ef9b636694bc
      GIT binary patch
      literal 2591
      zcwUuN+i%lW82_F0k_!&KKnp9SYqzE(DXmEv;}Qnz(lEMZEo)1l?CLs4sgY|3+d+Z7
      zZjamJq)B_)`$j9#A`NMK-yb#YJC2(;PMR`B_PO}`UC#HNbMnu>fBpp^12v2g!@06i
      zm1{e?T+u3A*9<P_6kWfg=?=HT=w%putUOg@T`|h?>egefI$`uPOtiuBPr2dbOvA43
      zaEqbG;!hYZ6uQt)ukj~UZab!xW#~0{&0&~q2ec4VWWS?WWlpgt3$8VTJM#Utg5Xe1
      z!(ceuGEYc@Tx+I55ixFAcNL?g3yWg~(<-}Kwo;SxmSrA(6Dl_~LvwC1TuBz18CZ8L
      z%_wJ&Gnp!qRKBM2iqN&g7-2Z&vS_BfyxRCemUCu_$Iyeb5{B>=<t>>iMnQFv5JfDE
      z^9+eM%3%!Scw3N6QWlfl@}8|LydxouNQ`>Z5)znUh}+x|VH;k8M>;HBEN!4bge%pZ
      zEpBZnTRLYLE|{vK7ZpnrV{fw8+16}^^Ig5rimR3;7}})5m}ijuwTxj7m&6)p!~zy1
      zoPb1j$hN<FB$+(Aw5g)V)cX=H<2{D(_8}%-Ze9H8WUAegFp!mS6W19cj#-~&7!p|1
      zaA*%SJWLSYZ=&^kwl27|vDDm-0YLK`1)recdzM+@mh+5Zrc+^jQ}u&N30$Jx<L6vo
      ze7IsdYg{$UhW4D78apw9I}Dj^$En<qMfAKt2}GqXs&QK`aaC6=MTF0JX^Y`5J_%#F
      z<(jA)lJF@CbdG3$D!LumOrF8iqX<?Q=DO?Zyr$9aYHH?ii6NwwsPyGv>Bj?EY^lB2
      zH5(EJFi7Q7RF&KIG*MkW=C~Ynp9s2#65=@7q|4B9{tsQY30+{g)*X735pgIFSuQi&
      zKF+|gcWi9ktXe830G;E3CU#yJphLM#(pFAaY@1VQqm4_5{#NKf)6+-4khovyuO=jJ
      zGPkAU>b8_Ix1~Z*D^dIqhG~3?M!hsTjZx}p)bFA8T>2Hxq%ZDcEd3hen>3o($5eXu
      z0PpU(G#BVSN`gR@AT^SEh7ml+7`{W2W+&@3NFfcly;)o&8POBgLL^TYV4HzF^+VLg
      zNq25@_7&uPWSWvO_v82E{|8rQv>x1$iF-0kTs8C-l#3K2qN3@Sn4%S23DW&YDf`Js
      z7j4i*ah1{~Qgsd2J-P*#9*7WK<^VT#8*KgV{Le0vRFCnPhVTJyd3f2w_X#^e@UK2_
      zUjuv_AHE6rw~pXNeB{e=&MR||yVAsPo)Yr$FYaQdc85Rnk6t4u3b6V&S_}R=rR5LW
      zO)qc;yL7Mb`BIl?q%MJbUco=dS_k**LH7sk?gt~dkD>=o_`nZ>V9f=GT*xLKb%11o
      zkZm923w-H8X1vYPpPt>vgFPHA^A*1CATt(}DIY@U`Nn;J3k729(Zxy676$(VEF?Xg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/DomConsumer$Handler.class b/libjava/classpath/lib/gnu/xml/pipeline/DomConsumer$Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9877fc80b6256994b918543ba646c127afbbb2b
      GIT binary patch
      literal 12458
      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
      TS7kQ6M&Hx(g=dz~_mTJi#ikNf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/DomConsumer.class b/libjava/classpath/lib/gnu/xml/pipeline/DomConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..024b879bc47b0e68f2b1059aeb31d44553374c8b
      GIT binary patch
      literal 4021
      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
      U_50X*eu7T{D~4V4`wW%;1Gf=T82|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/EventConsumer.class b/libjava/classpath/lib/gnu/xml/pipeline/EventConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6b45fca09c70f858a1032efda96832ff5c3efbe
      GIT binary patch
      literal 425
      zcwSvl!A`<J5PgeC6-0!iiQY8r#l~|_Mru4XYOFC{Yne1l%5Jk=Nb%D=_yK;Damt}k
      z<}j1p_ukCQ`~Ca=0dR|ngO0#urj~xS$o)bVluJc^xFTimwJMhjG7h=|XY*v0_<5o-
      z|M_!HsTCM!RC6p-9}_jp$?z)Ii?qo$+sdT!+jt-_WYP3(+6d0~1Y3;B117&1U68SB
      zfonI~nux8DDhs@5-xtgJVU<#0CHr?U6u8<w5Z`?~Y5Pj4&XoM3S;G|=m1IL>v}xR3
      zxGi(LVBo#;rC2XbN)Iw8fk`X1o7z}UK;Qs%bveXC^iYTC;Ak_C(Pw;6qdZUe=M*D;
      KaopTH82<y@_jcX@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ada998d556ea48525ac1b71f87d2307cef5b24c9
      GIT binary patch
      literal 11052
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/LinkFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/LinkFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fff322f472ece320735b2aa92d5e6d5c0c02d0e7
      GIT binary patch
      literal 3109
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/NSFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/NSFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..792319d9c130c0227cd1a3e0d267fb48e15dd78f
      GIT binary patch
      literal 6282
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory$Pipeline.class b/libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory$Pipeline.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27c6977ba8af7ac80bdf57a9c231760968e30142
      GIT binary patch
      literal 1433
      zcwUWDZBNrs6n<_Qbaa)$cvBG_h`1M_qWD@w*cb`A0LcsqAIrFzC8b^3j$mTq&+#iJ
      zG7?Gjn<V}y<GE`$bYRAo_MX@0JolW_U%$V72QY_%42dCKv1{7lzNJ;oDz{9VYn!34
      zYLtD){V>(kWkeYI_lyHWvkbeUZS3svvd_@%`9_5^q>3G(N+MEch`8LN%xve3rY@3f
      zen?5li%Eq8Zu@!1_G<gwrO2KI(>DD@DsW{^=`AXdcXqjgF2q&D(9h77N^kXoA)%rh
      zJq+<8<*nEDcewk`*s<u&iK0_BtS!Seg&rCs{(IA7VDv<Nr{ue)U11nXrHkjy3#__8
      zzo|k-R7kf}^g>Z^8%Y^=7^bgAUd1S`%a~*sZ7-0knbt0M6-*#5UiVZ?<34rBs8+eX
      z%P^BFwog>Q$TNh|qexR%k{^=-D=V-bv_XXT`aguoq}yo>ljk98mc=WEwd_`Cg0^2c
      zEc2>wI(8Jj3TE+0%;Pb`@MV=~aD8Q$8$NF~hoGs~9k)bjmGNXeXBcc?n~t`&(ej8{
      zyi}oMfgu)DDFxe}yJWTgt<aHzLL*;PF^?xirsUMzGG8^t0u8l|c~&rEP}gjmyLrp-
      zJWiDJ^euE+5Zb_|1xYH`MPI&nXq_Q`w0Mn^)-LqKpi<m5l5&vf4=9-v^kuTg82Cb(
      zgh62w9!W<;TEGzLBS9pFLp+5nJ%q!=YKC~92%phe$b7|(GbHF3J41|)fjY*Ig!LyT
      zPBF24g1dorDv_!qBRnM6F>`c^+3m!`6U_Z+Q5m7jKw3hdw2TochjA$nU0P|-QiFmm
      zTGVRFdP-7+JkJ`m?2y)cz$e>eCm66gUL0fWGlm;#K;%_m6yZm0EZ#tt-V&1{u~>&D
      ZZT`h#K4c-`b>qE+<wm1KlX6&r@(0zIT(bZG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory$Stage.class b/libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory$Stage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f2b6b85c54b30f5226fa5623a0134c392f59366
      GIT binary patch
      literal 5275
      zcwU89349dQ8UKGTyP3^o2(l7jfygQmHVGjdN^w!NT$K_68UzDX+-xSvz+TMGhQxXm
      z?^-Xc)u2?ct+Ac~H9=Ad9u-TiTD7gEsP(8vwOU*4ueJPazc;hH*&LYUxAWe-?|a{U
      z&B3qs?gKCrUnmfSDNV6dRcka-l`s-|#E9utE7O}Lp|BM<+e&M#P?N5}ML1?ds3lYt
      z3B{VKR@86M!xljp4Fqp>AE4GUjabt>f;$m1Ls3FS^{^Z=?|du&R3m0s^9jX)!9>ee
      z6I=`94Z4avjL=YkB0^rEY;^%xI1O&(6Gm1urJ7W<UN={T>La=oFCGp>R)<VOzNZge
      zR<n^L1csN+)}KXl#X?cO=&|CCIE2xGvcW=1S$rB4coa+^j2(!uAZ0`vbW=qMCMh_s
      zpH&?U4SpO?P+CHfl)j>oeUxhp$MW-r;H+XiCQGZR9-PRA@dy0!XsU()%Gk7_L_&|T
      zyDEn=?VzKyoHo@8Nn+Z7n@1HSbJK(A93cKONnwVDF&N86Yz!F@g1WdhtS2lZ9!n}X
      ziEyk<!-!WcU6F-&Fo*Gtn18AVb2%WU`jgTV{&=H5<Ev?`;A~80TSfI`l7WQ6u&IYE
      z-F6yb!4Upk+@i;<h0Hk>Wg*LkLr^gvXDB$G;2$njG<*{aI6^|<FpE<<gD@sgwr<@}
      zo+`m24U4ga-J)+wg(ArT5uY*cS`W_TT-t0JmhQo~dE44-MI#<m^94J@bW1n=M$&IG
      z9mCWcRF1zIjq_Vou@W;BoJA-bPV#IDdQi(EC9Q^d$|}G)SfgNd{}63UT6$E&xv1k1
      zV=R`VI^(^StewR=>Y*rmf1N`~H%&?DJPqgDclcew1q3Z~Yl#uzj9!n)@)6e109~4;
      z)ks=NJHOcooNdL8jOPzUn0iB--vI~x@{XZlgA6XENw;d)A__Rf#^sV<k+Kr0v}7ta
      zA|}%$P8b!a&PC%2qhJ%EWRSg9>8;t2P?11V5@6kZeFSoO*o0aL<A(ySk<K(dXk{(u
      z&OP~*^)pqZaG|95U9Oi$p*U1Il#*O5?_DB`QTCq0VBT5>;W7>1!xq*xsaq>e-Ll$j
      zH`x`;6<8}Jy@D`t2$l6djW5SllF!wIg~O)QaBwNswYW~f_qkg4X|*sCO0rphfa}?l
      zjd8QaF1IHRQ>^S;^Az03b$;Ct=Qne4$vsaemV#Rd$9=t^9^A?T#^RNBp7}ZaY`5LU
      z`4Erk{Z6Gq?Hab>4nh$}p(J6MDVbY@*@3}=<*H!njS-fqD(4bs&vwobe?6B{%in0m
      zqka$WVjpIuVWv?dmP&fClQr*?Cv&diC-|9ypK>sNEhi24po7b1Oy9he4@0pq8+~eE
      z2$Pi!WyPNl6*;yQm!u7IFGeVMfKwrEHrZ&&P^%QcVw^KWv4)6)^pJ*!(dk5Ke<)#6
      zp!(>S?Nr;%r8XC3(W*r`v>(;*7`g}}n06n8Frh!)K9Egw4+lstm@7b4HJ2TpCDLdf
      z?B$-=Y*~q5l|-8^(Islaj3;!{GW29s#JN$~+$YX2G(3TQY;!vyZOk@l^TB~WgcDe>
      z{Ve%F!4~P^KB=A}%=~((8W^3!MYh?DWF9=j*%p@3Dcea*H>_svESY5R$Ks|x%i&qB
      zul{gf6#1h@GRYGAD=RrrpW_ViJCtH^4&Qhx*5JWGF5ylGmxrvF5s{;qEaA`N1qHv!
      zi~+X3*)c%Fi?X(>oK?%6Ca>VP920%0HSyY1xOus5HOCvW*A%?M9eY69)x@nOQkX23
      zoa)$oj5%D<B9OtqrQF_SA97|v#Ymnj+c5*yas&=txcNpnO@+lC%qO?CNH#q174`2*
      z+ytXZuGa32QVGtHLFGga9cI(2wuGLPBT#PjnKVqL;U?tNFy7cDME2Zx{f7QyeLDOY
      zWJME<$$f;!Q_hg1*v-j)##d5_2A;=w>?A#RRLB|h=4H?Od!EnL+IY$g>(UC`;RXyX
      z)8!qml1pPT-L&l>wRhX2ACJ&1D}Uz*{_%GK<R8!E{B-e;XJm#K@@@fRNF24i8(MkA
      zV;H&1zBNjoNeG?CpFZcq%kN_xOdN~RHa!)^Oqn&4vu&DQh`AE4RppOj+yQua8QIx`
      z@pW>u2NSz-g158_QzW<x<=#r(ccH2?%d|*}P4!SH42>FW#+pMi%~;6cj-Rt^Ww^iC
      zj4xm{rFf-1m|Z6sdQWCvk}GrYeuEzs4y$gQ(mR0L28^bS@blWIW@%Q<QUq-^fq6J}
      zAm98M4AYq0za*>WdGk9Qrh9N&$*jCtU0B$TBKyTPYk3EXuE?Vje%-h8e}}!_n#SO5
      z(7a2h*?4=M%^Vj6-H!PR%Dv0FvD`7%iW=|Pl{RAGZmbHrJFwKdHhb_Lc`&yJ>+34J
      z5eh0kr3>}#m{4xpqLFPOPnt6}Sl)w;bv~sV(V)B7wGE?skf`&yyI}_NJ1|bZ^&rJ3
      z-p$=;b9LjQV7@Qk)rCtd4uE&;)6468`4!!`vXg42?ZGuc7wyLlK{o~S^X4eLzbWXU
      zU_r&RXmOPByPm+cLATGH=iOS%`@EpX=gF(6_5QG?1Jm7EU`egd?P3&n1|_Y2t<U3P
      z>>t(mTt0UfZkK{iSmT<bNDV8~v2~}TV2v;T0Cb1%m^_<wo=wjC<DlAsQdbT)*FZkr
      z9YM8{jqg)gu(3JReQJh!Mgm{H&(npwg9W~VC$Y616N{C0X-l?E!G3JD&13J_Uia2@
      z<G!GpH>Xe{-`|d7e5!=q--QQV&f%`?;jS(`l0NKi$4H;*ecV^jg`V_TuXFZf=B&7I
      zn+%qx*|AcBB3lC0VXt-uT|QUu8aooErS0@f)}%5U3>-QA!3T0cB|(=HM8A?I;1KwA
      z7D$~KMH?tdEqDn>#5i#WW(%J<&R!>p+wApru}!Wvd<R~#;c}I5xk~ts^!;AEY{TU$
      z;c}I5UTydxJa5D0D&caKa9*8^rrn6}a}(TTL8TNXuxyiQGp6wSOu7gQ=@KlXOHo5x
      za1LG0Uujn&Ojq$I)7AVza}6%0YjGuA#{>1vJnC-6!*nZ;Ik%&i+POvF!M*oR9H#Af
      zo%e6kUHE`@;A7f}Pw8%aN%!LjJw$>YCJ%K|A?>0f+D)VB5gJQfG=Uzc6KF35sE4N0
      z6Lb>oqf=-<olZ~DVtSgE(KB=wJxgoo0M*lT)I<l_x-U`-y+oVo6}pgKr5orF-9oR^
      zHhP10(3^A*y+sewJIvu-rv4uF())btLwbQeqL=AodW}Be=cn`q|9?gQ5&86`D5U=i
      zA01%}k_ZSPDuheS7H)Bx$QNe_k2q5lh_i(%&Jmh8PmB=jMUe=Jks{3dMsbWVgjZ}5
      z$BLvFEmERbZ07xiVvM+$eX~W37uSf1;(AfSp5aIkez9E~FLsE@Vy7q-y<&>kFQ$q^
      zqD&lS&Yz1ayXt<xErhFRrt0$URs4>ttXq6$w;93hs~o?_AGl(NaT{Lavpg*0sripM
      z#Pzra5Aa9%pSTMg<nzOLo#Ag|TzYpSD)0v0WEw~4-}tk<%U){7Ta4pkU)_Rt7{|>X
      zy9w{&FUV)VU61#evclfG8t>y~c-V(mu$&*FfbL@+e`P8vy@09CP6Uv|NBEd`75v%x
      oH@;gawlm%*_!KU2m}U6{e`iSrKC}DJKk!exiOL2#AD=`0KQrT+Pyhe`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory.class b/libjava/classpath/lib/gnu/xml/pipeline/PipelineFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f8ee98bee16b7804b5e5bdd2927aac9fc130678
      GIT binary patch
      literal 3857
      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
      T<(S~?8Z~|jdBqC6hxmU1+-=5B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/TeeConsumer.class b/libjava/classpath/lib/gnu/xml/pipeline/TeeConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e620356d3a8bdf8f725f72c421e295aa200295f
      GIT binary patch
      literal 7036
      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
      b>w`?bJ}AuB1I*Wh%-4aU`TC7o{oDTmglu|w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/TextConsumer.class b/libjava/classpath/lib/gnu/xml/pipeline/TextConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09a0ec47fa987bb336fd8d0e1c792331a9edd743
      GIT binary patch
      literal 1613
      zcwU86+foxj5IsYXjUh;gfPz50n+veUy9PnzQc^~-40m5#lBqD%W;bkRHToxffv@@^
      zRa&L*ew1a;Zdf9T_>kS1>2pq>p6=|g-`{=!$YNeY2g7LDa`k$})T^S(O<{3;h1cbr
      zZPnZgcQkY|3?4#UDNKFiMSk58QpLI$##-nL@3<B48M>x~CFC?ie=@&oyfbuR>pnlX
      zm0DwnEYyp<Dg_ZVbTgbi1T8HG5r)n=yTrpd!w_CAOw1PMmX;z2Ar^&(K89;8+Wy`&
      ztg>E^j<CwP)LH~2A4NX~NT$Z+#*VC*q@DDP^ybO^OSiJkofTu-<P7n=T{O%!!x3uV
      zIP8==qQ;QOpLlOM2KJsIcH9<&CTfkmY>Vu)824>nRE32ZhK}OPuB^I}is43uP#Uf<
      z47UsVLSbAZv#TqM4<fjX8%i(9kokvRyX#^I*{-Dax2G`lmANWdQoo-WR>@TD9!sY3
      zwo~?Qre@UjzvD#eA=3QHd_WjJMmUNQxSPPQ9J|UL`GMhjvW?BAqvh>gUX(cvw`d}o
      zH4C#FFKzjn7wxhoKJrp9SYg~@nAnlB`bbykNySo(s-INwnr`yCpfQ-(@m)o54-Yil
      zr{*3v6U9S3qKW5wu3^%Q3?y64rMAMDV#uDHv&4(0;TX!|QQj=3RTpQD2{-jC(vbMD
      zR8rI1f+0k~cAX+$6l#?FnkRNrp>c_3FGRmn^o8i6Hw_^=aGG|Vw2L50t2cxQ(R(1B
      z8QDiT-t&n*5(nr_k9<Y^3k5nbNY67K=s9|kr@!0_oTJ@EpNR7q0=(5QE|9QVjbN0R
      zD&<&9${FHy&|6DqLI+43C5d>)Yvgs^OEBoef&^M4fs(z{BKwT$RQOo>J1%c#;#UuF
      zy`BDBD#B>ej|KWMq>%RXGZ?3*QXTj9q>%m`=yZ7}+|!8q(S`=iA143H6m6M0ZZ_4F
      z^)!l&t4hRgXTIX@K2D`S$8*8*JF=UZ13dm2BpCFXZIetD-PogEIdoQQDmM|7o4^yy
      KdM2NG{JB4Q!(!q9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$AttributeInfo.class b/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$AttributeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60246a5676d6f04e26ea776f86f7683ec4d3993e
      GIT binary patch
      literal 609
      zcwU`RT}#6-6g}xas<m@-eoXi12W&oAhv17M$UqnjeVFt;-QtX->1flTKg%b<2Y-M+
      zO1!NF5q(e-a!-<TPtHy9`u6++pog{%i=j8wsdpbLZzg9#Ni95|D>>mtM!FyABn?Hp
      zdu~iDgVczDzKLv<85(zd&OOET)Vm7q#Mm&D&BIJEG>4zmh-7+tLR=V4h^x%GN(rl{
      zQcH8jQ0jDjV*A88D52(J5e`FrNQGRcVIbmb9;p1(Xv~$*W0|ds&9b?b3B%Fw&v&4b
      zjywO5b$tg6H3nxCrSVu?$gGamcilnu2n_B(YZ3PqPZE*X*ksuGg(*3FvBe>omgv*6
      zQ9%`1vkP3v(V|XIM|n%M@(5X$yZ;3DF{hU)R<q5@HtIBYKN8Tu3Mi1cS%~)ttwOx|
      Uv)IbVS{~Q2LFnX;Eo`Cv4(#-hjsO4v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$ChildrenRecognizer.class b/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$ChildrenRecognizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e0d5e56b9674230149631fd91a388b775db21b0
      GIT binary patch
      literal 5547
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$ElementInfo.class b/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$ElementInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e00c7ac40e863e039366df3967281cfb9644a74b
      GIT binary patch
      literal 1680
      zcwUuMTT|0O6#f<(QbN$u0u>Z*Tx^RFz`Ml@)+$wQ16ZvO&ZJ>Y!=x!DsZ;$YzWL^>
      z&ImX<<Eu0ND95uYQ;Yf#GL!7?xqja{XY=#d*Y5yku_mK~K{K7Y)~MRrj<v&W%i&s4
      zx2-MRw`xwV=6LlgcgONJuX4vPI4^55A`G!@{k5*yx?^gq<!x^G3=v1Ka)$WQAJvBM
      zT8^1zkgByUZZjylPoi?&=N`jA)3WYcwzjBy6<;sgoQxHh8#U9h-g1{=W+@E3^_B<u
      zcg<Ul<=>_RseiGgi-a^sXcTlJrb0y@LuV>ol#yUa{0EVOI0l5_AbF+=>0&n+PN;~Y
      zTkM8aNa$iXzC_qo>eVuLH-($1M9t9cqV8Jad?1YY6^ppfhN9J0b>hVwhF+8V>uu$E
      znhFyrn+{`jxQa@?VelQH_hgI_<C<#*5j?%2Z7e)%sYMYcR4C|)B1N@aSSblnMum(n
      z1s5?bW9rbvG+UuU!whwczpCrD_gA-?LzPWGS1^amGA=QUhM=J03a&Clb;IDEH%8&-
      zQb*<<#dVt4{PNmnNybfvOJV%;)gAxMpCAfuU|tN(Er!dXdUUAS>7ppy9Tj)6KqWFN
      zy1U>v$1f)%7ZTI5)!<w0nC>AjFg;)>9UW5`hpf0qiwsvo*pB5Ymc8Y2ryb!#<f(ne
      zfeFKSsH`-t8@0M?@CTN-W66I_rp0J6s0GL2ZqC*{PyB&;+W29HhPIRbixGP1MngRE
      z!Af_Xz8zx7gB4W8Ua~(%yAARXl4NEd$1~p$FU5NH(Z5TA$z2S63LH+-_m~JTMG=v@
      z&`0Yjk_|RpF@n=Uq9o2xN=Cc0I7hnk0U#RwAk{YlChX13XN>>Ai}(fFr1voS4!xN#
      znBB$r2Q0>~wWM*vbE8DSvVm$UHY!w+J=}he1nKUTGL!qbA1GsVei)n!bQT#twxCZ4
      z{!$#Wlt4o2$A~n5v^0q8QWAM-2v4MwC`%)4l*|?-6OZtiD0E;ch_{RtS{0Je?ZhgE
      Fe*<9hzXt#S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$EmptyRecognizer.class b/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$EmptyRecognizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81e1374e8a5930d73318383033c7ae1df05721f4
      GIT binary patch
      literal 850
      zcwUW>OHaZ;5Xb*pUWzD)4}9J90BWej$3cu2#Ds)+P{YB4$y!!e({7t>G2&<PpeGX#
      zegHp|akmf!ytJEiW_I@XpV`^3?~hLa6>Own5bSqE&wO%h)8ihqxnO3C+PqBz?uwc#
      z{GP+)R^9P}{w1^Aj^NKsrVuA6M*;sBg5(JoJUAsdC^n<8b(=X%1PyWTR!c2{c+G9I
      zG-8;}Ab})7wyDUAo^!|KHNCSLLB8o))NWD9bv)dR2VL$H97ZcTe$%SP`<_y%M8ijV
      zCdg6CVqQ?|Qc10VN!3NHSh^vY9VCXQ3C@bm2l_}&n~IKk6-X{R)l#H_<E;wngj4t@
      zMv%U8d(vX(T#uyiU#YAaf=ojQCTlkJededIMz9&74fPfigTo%wWud>A^3;2&e@aEi
      zFw_E)+dJ==dQ+Z(w2oCCi56y*zdSgB3}!=xB<7ISdE_uZ)Y(;5?-;R{35}ajBQwbU
      oYUHsnB#)HU`UZKOAa6&i|B(h3u@o}PVN}41vgxq?D%P>~13|3Tn*aa+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$MixedRecognizer.class b/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$MixedRecognizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f2250722a475c0bd1a6000389745a6589be0c40
      GIT binary patch
      literal 2369
      zcwUuNT~ixX7=8}PNgynOlr#+#8!VM16jBQP5K5I&YNLEups^IcmgEo?HoIYWLxUf6
      zbnwOtb*jCnchwoWtz!+2jEvX*5AU4uABgW+A|lY4^dh_Op7-NC@AE$A<oCaS*#gjm
      zRX?g2db36$QOxOyyp|WbW{5;e)wPW3Xr?i28g?NktoAXjC^C~GZDtMaJz@FbW$3OX
      z@xL5~n!K=bn&XHJ!;#t1MRi3@=&F%TOgWZjWCs|0mo!6jE;GzTM=Pm5qKlj`oTM>t
      z4pfpb5KA!xMv7^Xm&>*vwG78hE9)lOYB4c2bZghm;2kzIA^;DbQQ${CL*LWmilzK`
      zmLcr6TW~bJ-0rlwBwS)@a0Ed=nivvKSzEzTgcx{^Q0feg2Pq98j21td85;Kc6dXq@
      zL#?jbR4gNk6Z6z?G#N|Eq!S7vXrr0gg*n@eXE+*7CSwQpsK!YK_CWv*I3;O%fuSRM
      zFzn!pWG4DAGMAZ@NIRw#KnLQoQYV8a8cWH_T?)F9AUuXBIxck#P0>Tp$mAXcXVJ@0
      zoi+_e)eM^<xEImH+#+o>5WDTiIfl^w8dnOMo)K0xE>H=vLw6*AKD;PF_3taT+l-93
      zq+k%FU!R)K3xjmtby(<urSgtM<;x7GBAOksL|&+LQX-lW$;rbPk-bPD?y&n^JXaJ9
      zOH!&GbEi%KBY4G+YYZnVkdlJyNK&?%P7B*^?_ub#NZyBzQi|p^1)~y=Pa~+7AxAN;
      zU;?kxp;I%NvT~m=40p_v3Z^j4P`9AkW2PnCN!zXrZp(5h1#jRM>C~o^<1Qy_z;Igu
      zhffB)so*WVO*$#hZOGm3f3hua$WT8@{f!rLbHbWd=X4=YkeOEXlxk`6yS(Ui7Bqrz
      zt`chYUzD^9BLqDa<?g*TC~t+NP)VM=H=Qz1Eu&AoW+=?FBGS9p#GV63F7E7{DW=hn
      zL{TS2k#}}ScJ)vlSAcHMKY)81Ei16(+4PC!f~pf_uc79MWuGpLtg}E$nKBDjT3pj4
      z_o0IYyCn_=C21JK8m8OJ7F4BvAMrRtvhdK~97C1V23b{P`%z8r8v63mR{#nH+$68`
      ze;4oEK;0%9W;!3Ev7y?1#!5I=!gGz!Z=ijA6CE=fi1mBdG1OJU>3$yehIt8R9-!m&
      zCi-R?&u`$OTp4J5i5{{7y-FDR8CTa)w-fzp31gIf<D2cRc-ULQ&0i7z2{WGad>x_q
      zW6T7pY>)zHe?xd`jk6$^t6LAZ|M<ae;~jcVq6y%O;M_nBH_^iLXeGOiFC)%vba4m0
      zd<BF24n}zqH~1=M$yWLMSR%j0Kg3;r7i;_@+^6@q{8PM3b*~deL<LmL0j`xshNzO3
      zz&!2VhEI^i0+AcXDl{w-mA$x#C4`9RkIAniM;2hfq)eh1KT@8T-h*x<gPzOlXq0B_
      z+0O65<B!%nto8WA?Z2cWSay_<f3U~*CwsKpe4Hi+{uzAybJX%L5aeGXMD_`O5AFOb
      z^zg5#`Fj}P_uZ!YTsVWfO%1{(u%tO$fJ0!bNEIO$wuj(1m#r!k+#OeNhu#5-XLP+5
      G(fkkc#Cuo(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$Recognizer.class b/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer$Recognizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2581c1f0da40742100c8daff09a1816020b13f4
      GIT binary patch
      literal 1170
      zcwUu~!EX{l6vn?<78Y=^6|t>awc4scwQCcjhia1sF=<NLL<~`H!!pusc4x`%V9<Za
      ziw8|=Ogwls@sBdT-6cT417tIsH}mHG=6m1FpT9qU0ocVu0~*6lSN5%e=UP3dCtODg
      ztHoWX!<FO9nlHn?CxWe4!uGq;`6L1ZI>YiA|G+Jm%dU0OJ`=WL(ACGDVAyTUgR8s3
      z6H*<@_x>J3=9wcMwa@Ulyl{1;MMu~Cj>sd03nmPh45@OZl>@^?6KP}^mKsDl?t5(!
      zyyk6}WELB~&D|CcoM=8=)YYjIGCZ0~#Mlw)fRO>q+_pte)lPZ9Z6$&**71%ZUmrvX
      zDh>^-F|7GPH^zs2U^NfkjM5B+gfVQ8;YGPIcDktoM|Srri_6m`_u{5!U<^6i_j;~S
      zqQj6?ezML`DpzKAXK|aFIyiot!zS(;*kZ8e5i@aNChlRKA??wXx#UgL?+3Pc=|ujo
      z&X(>(8W_w&DMe6oc^C>ZahqXtj&lh=wgDUTAX4=1>87GrK~b89fh?`$DB6ccACRy9
      zpt1cOg>N*|utfh1?Lqn}RRSx?E?hzph@;C%9wl6%+zLfH%~xaU1B#-Yrhl2DJ&$Q-
      zk{!{m;@S-32}RMFTJ`G`qduW%%+PQh>oNDnLW++5qln=qZjBsDDofRK6n-OH-1tmR
      eQGAX&)5=aJSfwFL!~OVQMg@^?5v@vk^8WynUjiQh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer.class b/libjava/classpath/lib/gnu/xml/pipeline/ValidationConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfaa0fd5bd39516eb0f220f3694006df631a4c24
      GIT binary patch
      literal 18791
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/WellFormednessFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/WellFormednessFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fe9cae42abcdbb217101d07ed84ec247f02c234
      GIT binary patch
      literal 6832
      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
      Xd+5HG?)&IIO!u1#x|h$9BBlKg?au_H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/XIncludeFilter$Scrubber.class b/libjava/classpath/lib/gnu/xml/pipeline/XIncludeFilter$Scrubber.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0905ebdba076ea38fc291132f30764f09c72d876
      GIT binary patch
      literal 2383
      zcwUWFZExFD6n;*cH7|8(m#t0rp3%Y*XKhwsgS8v5Cfybmwn9Q_fdP(lNxeCCWII#)
      zvyh-cOyURd1qmeJ3qnYIK|<mmAkKBtG;eMAVEg!<bI<eK=RVi|{@-uE1F#GcLV%F0
      zT8+$Z&CJw|x-bn(WVZ5_ZZ<07u3>t@St#mGqg)nF2tmU6f$H^V!tz?BgmG`ja2Ku-
      zE*D0$UFG6ihGlqf64sI<s|O3Za92~Cgy{ONF6y3PTW$ywggM)(`ZHW@H&eW`)kzbA
      zS-T=4AiSX91jeHn!?c1BP7>yaQ1Own+_zElv1I)z1*b7XIOz(R^0?x@W>rin!lh)P
      z8@o5n^TUV}7I!?azLJquOR`#4)*ZVp9M2GL#uU4Tu9=HFtyvQCjDoW`N0?y9jaKCz
      z;YzabM0=)XOwFohik@Rw)zz+%N989%_u8Z{D7c7Agh}p@E9E+b&-D^MO!;Il6PAxB
      zTM@dcIhqvrfG}aIz}h`*)Yv&Ct!xTHtYGt!HZ{kP@9n{$bPPcq<$#V2**NqC;o|X*
      zU^KZ%TjxEqJPGXCOlq!orR{NFo-`IixXQaXf{218q}XoUzSEXW!pzXlQfyCiI!p*-
      zN$J)JVO0*t#vLKIiJJ`B&D3THuM;lx`FTTgT+uPL<bPAa3K%h3?V=V>riK!W;s$O@
      z)ARXLhk58|o!(Y(2Wy0|rt8A>k9+oioZw^m`$srb<91rrx5@w^#%n2A$`NiJ@A@N0
      zq?Y$tl>Wq8!!Rqt3F93$?g8;ig0WT-QQSj8Ds^2(4;4JZ25*^Guk#-AK_0ec14C_q
      zRoUWw1x1v2J)Yf45>6)vr*JJ{Q^9Mv&d0>DZT3gF-YA=fp07wX_FPZYWH>I(RLX_%
      z3EQoQy|mv`gPB&=Ezj`w!uX7E=Ab0e&LxDOTuCsFrPWyfXwhysy4*T`In}$9OOhx-
      z$y=6ivZm&`f)8-`;Cv#%w8!`dL(|jp>&j7>uMpn@h;S6-d=v^tPq|K3&a3IKF{xf{
      zVoFt;h^etze$1)V#CbKA;K$sTTo%BKd_OB&(yur{KOjm!Vv2skEd9)1#$Pbc`B|>x
      zmRP_`fFHe#D?G-3I;8k6fp7D>tcs{#VKTiB^|1Xomw<ljY8C0UiXek)oaYZBUTL>V
      z%azKjzs2u<3#FB8w;;Sadg32LCI+Mn2K0Nt`bvgzxs2zyv7MH|KHg~J);D;ozww`4
      zi;8y^6-O31e^KkWI{@*R;~+n0)aSUj9m_ZIU~wPs?&G~CKIjMd%Lh<f6FLAh_|ONC
      z(H2JmKicMKj7L9WLHa?L{q17UsIiZS!2I1MP^hEq;~@g&ISw4M|CHIMk7WN(mpt9<
      VKlj-Op!xM>==_ZOf~8SG;6IC|GZp{<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/XIncludeFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/XIncludeFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e76a74d40edc69f9113fb7e22b62ff107bf8fe5
      GIT binary patch
      literal 10814
      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
      ZYLkD>4C!ahzt4&Cb@l&+5Px5Q_W#UE)ZhRB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/pipeline/XsltFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/XsltFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6209a5b8f26d1f23ff62605737d7312d00c102c6
      GIT binary patch
      literal 2911
      zcwUuN+jA3D82_D;bi;O~kaCMa31T5BO%{=hG)06$<q}#XwY12^O>&ZK+3d#M4WxJh
      zyy5l52WRw!M`nEUB@sJ=;EOZ*<cu%!=pW+volV-NB(#{B?4CW}_xtXb-~avj0f3kA
      zwS*3aO?k7dR*HsN(o5XXO|DKlhC8AgF1IE47&f;s9KXiR1_wjukZ$Vks|@=h$!YDH
      zrW%@=S5vO7oB2etJ$BeKopO=eiRc7_e7ut3C0D0A2`d>kT6W&UI9f$b9hsabOXy<g
      z@pR~xdU9-@z~CFUvRuXrtWw}dH^YiZbV9}&^hgLY>=2-eC)Bky)5%$OQ5~N<aeG9|
      zxRyPmU@g`$bea76Nz-vPGs7ABBhlou!4m;&U>GX6ZfQ_eJxrW1@p(*~Jc^S?txz?`
      zHMeYYVRA^p^Vmdj$#Zw4e$BA1O>m<Z0@%W^dwGTDxKlRVIVAyXW!S$I%C)&xjHkR;
      z$|~C#K8KaCjbX!+rW`HnMwZ(FY-d<CnM#g_b9KMM5gB3hiKOg!iW8Kk2>K;N8CEY)
      z$I{b0<0{yN0fqoYV%X3ehtl83MxD#MOvs31w*-};`w5alRlbKoBK)XUq%f{s1aFui
      zOx&wrANEr<Yo!u5vkb9zwzga~9H-2`!mvIX&RX0Fo0c1P%B7NJyI~5x5I?9OAuI{F
      zRvjoqMxO*~n^?QzYLtF!p-6a*VP{*2mo2q9X)+F@PsSk(D>#PZlmM#iCYdKRGi!(*
      zJ{4(O;&myB_Vq7JY?Vckc%5p%v`ii*kZx#cg9`2>6-_jpvCN#FFWZ`E+Az0m%N_{J
      zIE^zBk~Bb;X|v&G_<Zv#7!{Ef-ExLIj+UnyJ<G6diLln&LB<$Xbs>c}C5$ulE<LIg
      zOyE4j8c~Xt=@Ml=dc9Os%`<B;Jt6c=DY$^Q$V!JV;I>AVf<-3+xJ2dA=u^?5f?IHw
      zY^%g=SLcpu@QR+%j98(L67F14@HR9WV`S>tI_C_Hz-8*W-f#&C8FHxEEM9TdWL-<c
      zG~p0ekVBs0K@KgZGHhS$SE~T>tqVG?N|>hk`s~G}z(A2<CF!iE(2HR^e4XqK7Y0i~
      zNd#Zmx;V&!N>Uw=q%Nm9Tszw>vzBN@CnQ{(+esdwX(x3jsfb3)#Wc6aMHesxlNJSG
      zLbG-8-MI9*1)T=lmey6du!j?(a@-k%I|a^NA*jVT5@b@O8N$o$T!s!e$Iw1-ZMK@=
      zFE9-JpD92K*bz$9r-Ir}H^MOr$${leYd;BuR;x@Q*uIq3Mrn{&MnObtnNp?5*T*1b
      zf=ugPNJ?BNp#?))A%0{#t+`HgK%y`44$zQSi0}{Hi@V4DH9W^gf5Pg~Sa5w68^6Q4
      zSa7p<P-4MeI(&~Evyi7|5uOUZP{WI{Dt1;u&zFM-=uySN8isy}J;b3wf5<<J!&AFz
      zI8w#YLEk+b9P}>+|As(t<R0WEDJSR=@>g+cLE0?FrfPUY2pqVNa|~5X4g@dW$K?(@
      zM0&6@<PUXLk-Z1s`H(N<zmGx(`a`}d%>Lj-@qXt=^0pI~Xz-lI4|sq_DAUb#^7#gO
      z>6wBL=RFP?m(hbO*i5{ANMjE&7($lzQyM40X_)7TlBcf%EE*CHrcuFF+@$k|)c<!-
      z#5Y9y7B=p}C2iMHBaTOy!LN7^e-P)NxP`xQn{GkUWD$9y-te;Y81E7n^G@&M1JCZi
      z2y=_Fc!~bENsEu9A8VXO5yVIMm@=5gUVMU2>2#Nt`5k;lry5EB9AA(OhA&BG2fq3b
      Dx%FHF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class b/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3ebe4577dc8661f7fc5d3bd8fea36709ce24459
      GIT binary patch
      literal 2098
      zcwT)}T~`}b6y1{#5{8i?O<D@H+SW=E2(enNk{0E&rcHpF5Zd_BPQo+{CX;k#0`x!l
      z3;YAV_+Zy6bS=A9ee=P8;~#Lj@14j;7<qtu=G=4c*=L`9^4CAVzXfm;dISLl<8`Z(
      z*=sg3j%yowGc)J9wps1CMy}azL=aLi))VolkYCy{EY}O@Q*d=#-_iGuhZy4CIeJS$
      z$kLlU#_~t8!sE2{nvr?9LNlu%yrVZdj2f0vnTBrFGetgO)p;3mU$lAG@3f7Y`OGvn
      z6(|)2eRoXDbY~UR6Zum(@~xWgnk_4PM%mM~&Iqm~%S5u!+B8%IF|1(_=M`Kzt8}v5
      z4+U`z5k!S`QA0meVO`QN;Q7WhXn04#xx8r^E1hQ5uuFQiA*tXyjk0c=;=Ah%xm%{g
      zviY-SN6Mm&E{K!F_aaoF)eTq9v?MtWCXzV?5jt1o)GjBIXU;9k$g(%OSU0q1cq$_n
      zON-v~1Ey0v8X}8vjPYIDbd5P@$*Pgu&2`HZr-JhywHdRO*$@$SR!l%$+N&9D0p5uq
      zqu~0f<|xvlv<@RxO8%1wJ|^$~+lz)<n4rdpcFi`PnR`)urT{8F$4mrYC>ZMPO+yxU
      zs6yj;M{jT@@x-zASF77b&CMn&DrWIj1Yar`JlTzgIm}b|viqLwE_una$X*nYOB{V7
      zCmc6%Ps7&&s~DZs$eM1uDz$W9!vo|6B+H|4!spS7&y-ZGU@d}GlKvma-0C5H8Xk&r
      zVvq&Har8PjU>ZfS0rSFI*HFd=xfAQSpm!Wro;qH+v}Lz;g?_V1UoR0$7HqQIJ9FN(
      z<vh6af~LF=Kn4X2PWQ%XrJojqkYusdv1`V%Dc9`8>P(9laFt{R`4>hAF|ob;)r^VV
      zmFGbBn|sTXKa?cm9HWQ$^%DZ<<2jz1e2sTgQ~QXe()+lOx)j>SNGcxQ$LLGm2Qbe6
      zqcV1$br$&cB41fT9LpHPJzVC^toIhK;5|TE?@MgL5~u>w61alW639Z*64=6wyoT#t
      zWNDrvGdQIFdI+FTx*o`4ns?nTrr-nI=%!}6so~Ts#D42ZUOSc?K1}`)6F$iodXv|E
      zlM}v`M|zVhzR5|Xe3D0ddw$}ZJc%hrrD=!wH7%d{o3<deCb~bsM}?_BadG(5sRP{p
      z8H1BN?@kWQ9AIJ63s{zpyTUPaO}a(rp#$XPg>e0Xk-{5HKW1*>HNII%(<p7E|9C0k
      z+(&`?=z*P~wtzb4x<zGdQ!zhM15E<8_)E~jZM3PI=ge@J(;+82c#2(A@j^Cui_H=G
      kp@M37gvYEBrP3<YO@LW3e2edBRp|X5KS<?2k#s%%7iJm9VE_OC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/BufferedReader.class b/libjava/classpath/lib/gnu/xml/stream/BufferedReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aba98124f502ce277630ab72212a69709acfd1cd
      GIT binary patch
      literal 2886
      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
      QEWA}BSrzYmSYnC%2e!ZmL;wH)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/CRLFReader.class b/libjava/classpath/lib/gnu/xml/stream/CRLFReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0d1f16f27444c371ecb2179cd250ec3173b3e8d
      GIT binary patch
      literal 2032
      zcwU86ZBJWe7`~qNw1sjQ6)4Im+ni2mtJEQ@ZUc0y!<ALoV8dCAq0rOqKwq#ghA)0{
      zUo<9u(qz6&j8URtAC@>sG+E+Te~v#uz3%6nl~Ew3Ij7IdeXjeuuKRwTzyA6C5rEUU
      z7Jx^g|5mw?ST7Y5wR+Xcl@h7h%;c<<%Ujg|422^rxsP%QyOMC$6g;U}1(jClOjXLY
      zdahib&lMY%myn&@%}mNDs1V3kX04i4XK<G5c3B~m*$Z}F!9Qk~?fQg5&rs`TbY8(o
      zRq|F4Ui6sgLa%~%C^|3mJ`+#l8ImaFs;hI2wY5sMZsqlUHh`lFeUH&DHVOr+YULf&
      zAo>vztWY}?j+yAh5rwXdUACqhr6sF+J-1Y}6uL8&<y>(-SG8sCE*kaQc1>X*bEsuh
      zWN^tLLXU!%)|aidx=p77c#$d}vr5l2cSKIq#B+FFMsX7_;bp>zF#Zjt9l;3`uZRJ@
      zs%z>pALj85Eu^C9AjO;!j3kZcN;)ms)e?<gNXh4CB;ve@F^TA~%Xw>krXak<h6xiL
      zFv+=6DDYjhSSwZJV-vq<mu%)UYOD5|@R^EE3E<l%-ohouNbD5jmW!2|E>*_FlrEK3
      z79XtAY5Fi%X;hc3Nn32}+VyK#{J;rvkghRU93T9g1vvAdjq~;==0QFrsv}u9=`)U4
      zOGZ4!*#|`N@c(FR2i@^)gujOQ2m0TO@33aE_(Kdn&^X8W?qeoklHXq@W*WUD-H$8e
      zB6}JI&*CJYN0N;?rAXX6r5Px^ptF9?6=6RT`wfHJ7#bT0b#CC4%#3Zs+|}_&D7b;P
      z$k--=&eHI}R+G(1Y6Y(HeT|vs$lyAT;RdtKBZ`|WeO5C&;bd}|wIRl1EdCrrH&^{c
      z6OOO$<2cT-Xljqez41re7~M@Rp970e2ybr+Z^vtR-4&kP2l}@z7O*0E28~5mY&=47
      zXOl+QxQCfoJQ6l`a4zZN*7#jaxZ1-$&-ac;4DcC?k-YxKHS67Y*cS@k*hJS}z+KiO
      zx(y0!fLmmJ8v|G&yH%c@66Ke17Hcf%hnPhb3urKET`Qb$7&jHJxC&+ThBi<}Z*t_-
      zMYzC`LF9}4`KedQwd1zih<1i$a9D?1J^ff`G@TeXqmt9T&&dm1amqua0s6Sxr$N2(
      z2?6dLQlgYjr{sFr2b|nXakv%tQ=Y8P4y4J$eLxp^b^mFa$G0(gzeVvEhfuuC113bK
      z{-5HNR*GMe;#UVy^vGS-il*8~P>xbI=6#6q$l#*1jge3KB1!)yCgNfLsGQD`us`hE
      zK(E_x$w16t_$E3SU@VR%1L1%i*ABfL_HW(sD}G`8@b90V-725cSI{@?if_sFJ6=Qg
      zsC|QbKa$N)NZ@C7*Dvg=UwP4N@p8G3X~x{d1Fh$MIzy&SpR&zf%r<*5>-J)hm%}@{
      g7ejP$TK8fPOC(+CXQnoN`~&>1%N;4qXr@>H1C|pOMF0Q*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/CharactersImpl.class b/libjava/classpath/lib/gnu/xml/stream/CharactersImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..915b3be491c64cc3c717802166b42d0dccd00e6c
      GIT binary patch
      literal 1830
      zcwT)}U31$+6g}(jxS|blOxmPrNolDqI}uRIS3<zGlVWg^hnR%AQ)X00*y`AFkmM%(
      z2mS!RATK=7nI>iE47~HB7|yO-k7H}{VDDY&o_o(ddshGc_t)P5KEzHE5rM^)(>IR0
      z9mDfo%j_EEw&|Kp-*UZb_pp;hOkiOw<%g}>#&gT@gM@^@t!L(Q^LRAHlJC8dVgj)P
      z(>DcXYBJgAm`=;s^<CR(tqP=%+O}_bhi20f5DkHNGsw=^EvM(2PdnEBNJe7Kc5HuL
      z;9jma(Yn@an!eq0Rwo-Z8jbuOnUs46RvJ;ft>G=q2;8`+Onz?)0<#*DNXh6O4O2+V
      z=&FWGK{T&HLt5ZU&33Hqe)p;6)+K2<F6(smOxKqC!NZu}wyDU?+J)LvmsDrKf`@Pc
      zMFFj4`RYvSzZ|kbG?%XmB>AwSWSq_A!(`WNPszF)$VwEYPugBNKxJ*OdQSd9UiQf4
      zrsQonO$vGNy<^LjhZV?Z*ga!kX1J?T?exZR(>jzqy(E?e-kX?%e%e*hFf#>1U}|mY
      zak)~emma6-)_X~OByjnB0}UVJKHZ`SkyvhW%KTmmpK`V*Pu9~ssn0ch0gj%qoPhM*
      z5KJRPtu(&GS4q%xnKvA&J43=6zQ%3NO2xM<&of)}R}l}SzwXPZqG1D@oJktDZ1z2N
      zE{=Atx82^66nZru`jm{-kgmY=xXQdTa`;*ZFTRUd)a}lsdnQ$v7jd`OcbnFxEp3`P
      z@5dEc0!tJz%3mBY%*s2#Z^^8@5o*0OST(is>p=l7Gy4j6zaoMJ*Xw%W6{hv#DKh%v
      zDYAMtc8WPY8$ZRh7knSV0{`b#Zi#&!uvVEBD#%jA1#IFv->e6<u!tLgif-avc9M}~
      z6;YAo6;+XB7E_Vr7H8%XZVi}KxJu-_{t|P)AvLX?kl;&XWt=!cEcyG8S3+fet2k%@
      zYQTZk#_d5xV^A^9Dw#jVz&j)0_z-*t?}vc1<DKiF;JcyVxpDBLP;f33d~F>3V<<Qe
      zommCOG46`0%%6;<)|Eid`NGV~89pdTE#x}$3I9)!E9mk`^bDV={nf44C_XBlVeJ)4
      z+sh2f`^*2lQ2h#6;r$EP=*n9^@s!(imrYkZBbP2SdK}<qtiq*lJbI?D80!I-p;Ib&
      Zh;LZcpiiqj$p{fCe21Fy^_H4?`+x6cdNBY1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/CommentImpl.class b/libjava/classpath/lib/gnu/xml/stream/CommentImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0122df27a2b239b16f0b84a18c534e140fbdcf2c
      GIT binary patch
      literal 1362
      zcwT)}TTc@~6#k|cdSL}DpxmJ#((Q$Xdbe0bf`+7kq@{>&OPQ24?Jn8fLj5zo`r?Bm
      z3W+BA?vFB_nU<!~N}Am{Gv}P|eCM09{r%_rPXNnU4Zy=NRyJ!|y;{*6*XDXvTeGTF
      zZn_)Q<4OQNhVd)@x0|{3lU6_v!}NRoM6b7paN&0@kr;d~uhSCAiAb%Yn`JHU+J;%q
      zF!Zb#rr~B8mSVXMpqy3GUBfanotbKpaM!Fu9)=e;6ok;nFm)Y<S`2|<KtTXOhW?yk
      z@~v9+fZGNApuz<`imViM+YtNaq0c=s9EOS9|5c(Uf|X_wlIt1<3`&{1QoX{5V?y`F
      z)D4CJ9TucQLov0RM#HDJ;qp~y-7HbVhr6aBR))bwyP9EXdm_S?s)X0;C4MXlIsr^G
      z%ykf=E6hu)6&Xa7dR>X8Qen(tK7cz6eg9%BxQhh_zvM!kV%_c}ObV+C;z-cVa<f5m
      zp-bqyE{z6}B1uxIY#17r16ZOCFF9;%x40@uV~pA))i$}~=w%v#Dclz$upq353LfDx
      zLr4tPnqG5=Lb9Dg;mEd5#r0;?uBSv@HfhteTosssiRN=%c#+S;(+u;S6VNF*1&8xi
      z%`Wj*hM2Q~wt-p{`G}H~UV8lW42hYgZ`Mb@5QNCRwA+D)B7oj_;sQ!M`3?PNwDsU7
      zz5AqVh0>o<LKYF)%{0O>NPv*mFm4f;utWh5*|#y$giq2ce4gOv7HW??c`4D9hPR2v
      zFp9Berq;~#$G@Wg%a!EUZOQ&t@;D|aYEt${-?4=GDEkG{iO9@3W)pD%=RHSEY$8c|
      zf5OP-4@~Woy?B9pTPZRg?4^F4N%T>|)S9(trGDGQ;SJT?Ay1yF?LtM7V)p3Ya9{F@
      fH!8LyO5+Kh651r~GbE>nGJ+&&R^H8X+1rc1m+CWC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/DTDImpl.class b/libjava/classpath/lib/gnu/xml/stream/DTDImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e2487a5d00673b3931fb49299ed77470a4a56721
      GIT binary patch
      literal 1811
      zcwT)}+fvh96#jM(6iO7V1q*mqv@Mi)_E!+awkR6F87j(+GilkDFloZ1sp32M0zSci
      z<Au(M&ghKZ`%sQ+?Zygi#*22ZWUcRzwN~=;*Vpd=E@L@?h`?ywY3aKSTW|WFG#h%U
      zQd(;4*a^f0Cc1LZmyPl(>G<t}J}THYUzxl6OC;x;%pwr0x|?qVQU+J)w&~RMHQ%$G
      z`Yh!v;y9RFt!~SjPq_id^-bS$ou<HWyP)M;wr*HWPWO|7<y(@neRGy$`SSwRtkGk|
      zaBGTXwpYJbwOgk9I=4=qi|(dOB8rrT!#FB%@?WaC^#KTsXh@)+qhlHdkmP7g!yq({
      zCNvy^CNN}Jj$COqs?w{NRa<gnh{s+xJ&Uh{n=yaOqNmOn;WOjj*nvE8|HGSrR+qk-
      zW#!EdF-NnxC4q6eS#oQwMsU9*YqseHeCcd1Y>-2QdE&V>*=)*9HTHvrovE_o%HP4J
      z{#5NB?I64AOn2n9XZdoWS$1mF_|2z|#izj0cH4E!)t_;Nr>2uE@7CmwVoyL9IM?&|
      zw7zR9>QwgQG6Cn#lvazCjVI;PNnFMC1g;4jKB%DK25t((l_PSN?QKPFy&ty(#C#I7
      zxRbyf8T~`DwAzu>Fpo(Rr6*mco|$#ps2SYjjk?LveGNrW7YBH=i)O1ya?|_eDqEiW
      zn)hKg7kZc83gy!4ygYyVME2Od5#oz-5qU*mvUhEI`$omdHMix}<f6rksRbK2!&sc5
      z&5qJ9ju_Is{`9#?^YW{cR$rZm)JfkNdh#Kv9;U0eh@g+o<N2vCIFg^<LpopB!)Sgi
      zwuel9EWU^FkCcz#IQ@^S+6B_NPuxXfDPaU<OkfcwC^O&Y!bzM0RCHQ-<A_~FRK&ib
      zDq?3b6|uKCRi4GUz*&J#Mn;DR-**i3saubfnAT1QVglze89?;_8qa@1`a>6Zbssq1
      z0bjty5b$U>xDpD^A{PSAbb~iS!TC_|csKY(D0m9fR8^ojMprY6<{kBfn_8GkUHXhG
      zQ``hTQ~%Nb|Hv$V!_3C?XWagRyDJ3>7M>M;d{o3~9HUpMEqhjN(MyuA)4ps`W*ZsU
      q)aC|xc1U<fS<1J?Ix{cOJ}eSjhS(n9A+en&rX?C0Z|Gz7SjKM|e|x(C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class b/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d017cf68b59c5257ac1dd7eda7a485d5a3f13eab
      GIT binary patch
      literal 722
      zcwT)`%TB^T6g>l#BBI~}e4s|-#z(Yq;YJL`XiZ3}8}P9$WrAb+AZ=0nCpWH4T=)Tg
      zl=03$kf0$=+k5Yvd+s@RzP>*`0UTmYM}lF!<#&v(=NeHQa@#XZzj+Zj9gq8Q)oZ&t
      zG=|a$=Kjhup9X*w!`7qyWOs)lT%Je6Yz(Or;fuIJGq<fj4OZaTu?YO~&Mkv>9yECd
      zNlay-Bh8SrgwL-#UW12qyWw(%IoaUe+M$qnzo^9zB4XIE#+xcLq}~2JayLc{L$<|Z
      zWw!p(rU}XIohn1&ITSHJi%j1kq0Jj#$Unn;&zK<s<4z(%<tAfx9p09Fk&dPRwnYoA
      zsc3+tZK)X{Lw=N#7;8Z%boix^rWZ!s9Y{DfL1O8hpu0{&lWU}GlClaC^Z=>dy?12Z
      zC`uqp-;AmrQ%4!o6cu|Y%peD-D34j<pxtA>&$X{|nvhSw4v12!bgD?Qz2iO!iA8}>
      hMT#}b78S{n>ZH?OEj<czNCz9}U|7bAnp;x%)gRHNp@;wg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/EndElementImpl.class b/libjava/classpath/lib/gnu/xml/stream/EndElementImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7278bba827f059bff81f086c662b90954c894da
      GIT binary patch
      literal 1844
      zcwT)}+j84f6kW%$BS%%8)JboY-f8P=1tCy~L)tXB#UMLQlP0|nile&f*s_u2Hv9@d
      zzzYv_hNc6|z#9*I0H4FKj;yGTUGiX`ea_i??X}n0TYvxi+aCZv!V?8CfzwT=r|+~|
      zy63x=+1AU>cDZG>Eyu64yDbHAfm1^+_o_zuMdUCpaN)W6!rU2jvE;os045N3%(g`^
      z<E^ti@w#Ti(pPIVO9E<i<Oxg#u6ob6Te@L;KJUjDY{&K&1u7Y1B&pG9n7-X{N(ZDE
      zhRkk|*>Y#wQZa@}4Tmr#aONQJ?8XEH(i#*br8T2r0;<5IVLMi>*WR++b#tr5QqwY~
      zwPCup+=qv8|C!C&&Kd{m&Qg=DFynsBhUo}sP0J77WBvOs6O3iD6#<2ZwLtLGne2g*
      z9}YeDR6iE__eHAsmTUSQw{!>>@PUGh0;&BHYPf`Rq-%$s0!LrE+$?!zr$J%2?>e?z
      z1*ZG5>UKxplpb!NzFOXCSY26*rywVAaimuE+ge~no=Fr0Vhg&8tN2iXzDFuT*4W>(
      z0*QbL8HJf!rqk4kWjjsgRxyW96?`Ia@_z-=a1EacOi-k{Ydy7h_~3g24WcD6F8~z_
      zSXA%@dw1AF!*$$X16$wq%$7GqX=UrV)nGF|kOke8<d@kgnM$8yS;H+!LOyiRQgzey
      zllV$NEUNe#hJtUX?w$gbl}INIRT-!<uxfdp*<_n%u_D`iR$8kX?qH4O$*Ed4dmgna
      z3=&&^=5}7n#w}&vdCGzUiQQ;g-##wyx}jw0QNc)FK8*1W*1U^Ze7#GfZ9m!y@}sfV
      z>A4N-mM!ONdjB9@l@K`3IUVCKff#1w;PL}FBgd9&0&&Wr@%Aux+w_QYoyz6kAeAe;
      z#*tj{HKt$jEQX`}PY3rm7`Mduo0!Bhj`1YdkHc}C00QeI-Xp5CWX4!v$()kODZC$M
      zEO3=xvBXbNj`85+c7Ut(Z$n(pGtPvOdKj6={emMu4+R?o!HFpNEY5|&b78Q`;OSp+
      zUSJqubpSz)5H8~iy)v}p++_o-e^`<%zMfC#cTtpdcJXnw@E4A!KQHW}^aE0PuEqS+
      z{4SRAeTOgQLHaiTf5eIE@5tV#OXUq}wIYrBX7SHgLGEjqXOs7t&5{prp9~)$g@=^!
      zF)MmPR^M`HOnNp@f<@_`vh|x-fgMyaM-9j?dYn4eahK>R%D;h4qL<hZ_lO*0Y?9~?
      LgJ*gaX!7_!fzhSO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/EntityDeclarationImpl.class b/libjava/classpath/lib/gnu/xml/stream/EntityDeclarationImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a04e1348a2e84ec9d4dec17f9c557a3bac5c681f
      GIT binary patch
      literal 2367
      zcwV(sS#KLv6#j0!#+f$3aYD8RryE|9ng%G)ghCdlxHwLT9jD;|G;ywyLH0PB8E2{3
      zd4LuKLShwSd!a9tNToWJpaKceJn*9s=iV_+Vvj0bc(Cue_nhyX?`-qe-@p6@;5=UT
      zp@re}nqEn4mx>9~GPqhwBy~%(cBXlus2ZxJmGx9<qv(U1p})cM>TEi>$#u&%@G?YS
      zQ#aM^!zNtl&1Rnr{*B5?Q7fcY8G>nnOB7XoEs?bhO<x-$y}4sryd?B)T`h42MK4<t
      zoRQadgKreo0xwa79N)GWd@HKS7Y&WUJFe-Pb&26dB;CX*T`ovBW6fdzzn5s9@|Y^G
      z@&H^2Dmac#hQSB1i{@Lw(51i!zmOhQ&}vJ)3Iev&ub|DAPAE`p=@A9T;HUbeHJxWF
      zr4?@E)RiI^btd1%ylQCTUVC&~>zc`MHvM15K=h?pBS_I7z@FN*#w|G>xt$G)<BCL6
      z3~lr{UvGRU5_M|5Fv`}u@1t9-<3c(z13`LOXdHt8Jx+>ASfGGiTZU%w2{Wk|sQ9ak
      zx+YGBPP_C8t(;gA7KZFlAh})O8^XWo!{ZF6ni8a$&q}Fo>Bo}{t>Z(<OfHpM4hQfQ
      zp7G&nhT}&AD7Xkp&LasCv53=<2=ueUl4jQ(Nk#L1JWn+b&o54<Q&V9-CdDngoXsU?
      z={8N}31_A!aual!VPKa6cmY>@pv*h}4WF8;b5-ynqIQL5xoN6vG>)T~72`N2q&Wri
      zc!|;x>ocWROd>jbm}qX@C~t|u8H+l;((1|l42F)z0uw!vciMp$>00<G!<puZYA!e#
      z2eRdgQQ$M0nBYFgQ9UO-VTcyOML!R`2#HOi4_`>^kvs#nv#oY2wey%fTj8d<v=h36
      zZg<ckUn8;jT|5*Ut|Am0siHg9>#m|F*6XRFFV^d=Vj$M*t77mr*|s1||0gAGnm8mW
      z;tYAbj4o<ZKT^c+3Ld4V43Wix?Vs#V0a7}RGZbA&f_aOS1b3H|1berX1b>f|L<U|d
      zi5z@{K1=@X3`Xb_-dr8+x9a4)@@Y;IP;7OL03#>S8Z=RZdSZ7F+HC;m4uL&&aLf_h
      z-3VTG1jil0J&oX39Kpkm;J!w1!4W*-2p(tzuRDUzIf4fp!6ip<0*{f^d6M098x?NY
      zb?Sy_@%?!4i9KA1iz0}#BfN)kQO<psq9yyd7!N)tH77|U>_P`OX?>vSu4``ML_9cg
      z1a_blHQPrb9-OL0?xXW22J6~^eYA=9fddD@q_pXo{S~9j!+W@V7wOCh37Msl-*3x=
      zZ{cT}eY+gjFi8IuD$6Eq+7@lzHf_Z<D#`0Kd~Z-a-^2yHg>k%%NxVb2cj^1|9u3X=
      zcoiRj<2n`d226ZJsE^6&6MTrz@F_mWSNH-y;7k03uPNd;*u}TFhwtzQzQ>>VQMMpv
      h7q`A~_h|>S#B!II<giFA@6i_Ju_V7CS7jTQ{{i3U?=S!W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/EntityReferenceImpl.class b/libjava/classpath/lib/gnu/xml/stream/EntityReferenceImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2c136a4038b617f5f03a8dc6b1667416700eb9b
      GIT binary patch
      literal 1586
      zcwUuM+fEZv6kVqmO6v#(idIqNQlPhC0Pljx#cG-qjDkfZMu+xT#<Wv1Gv)Fret|DO
      zNFtDEqVIl`ai7!L)V9I!(4KwH-fOLW%l!KN?FWEqEcxJK7%7+)?VwcDY{%kyNlTfI
      z;T*o;@43az98Z^ai#~W52Abkttz=Sr+;pk|9Sjp6^gaEcF@y`h-OR|~$@5&1A(1&7
      z@tC4?OLvU2IZGf@FA=s^g0!M;7PK|TGRy+`I_3=1aON4dqOF{na<0m84!Ks5Se8;)
      zF6VgwZgeZSfFQ%*S#q(gAC#{GA3B8<Qs75`p*v%ke6>>A=GMBtU6eHurkK?&L)>eR
      z9%sj}86uhg&xbnDS**#@pw7sNK`C%Y&Taj0msH%*Sel`W9vjMMP@}PPbc?}91gmmB
      zp&GJjLjC)e;qXN}W#*`d`In|4PKLf}2Q{OtZHNd<Had_x$njmlZTm3BFxrv}ZQq)-
      z>X89VAm&4qs`-~uK^zGNugrk@8coNtB3KoUNlGo+ZrTA%VaA7PO7SmU`dM8}!A%TN
      zo>cY<w{5*ZYZ1Y1u@;lUx~t$G?lbtsUM}kun}m~%I_o=Dd0z~AHrDo)c3S3ZF$9}C
      z#K4HIKhq{J^11j7!&vL|T02I;fwgkQ%JC<L*tl?;)tVGM7^d}g)6WYRLSmok`w<e`
      zOs5wfs#+oMMY`oF!b4{;o;XEUJb8?sxO$AfBYJb8pZ<HLe}Qm|gkM58mT`$*;#C|j
      zBMeCE3a%2Xu!N#ZT0&D~GJtC}MU_qw<qrBk*F`$y(^E;TRNXaVhU*xtLA4sx8~=))
      zFHPV~1K3*!-@s5Ca9=a{d0X%>Mks2OY!BTclIA02CJI**!SNG}Cj{FGl8N9f-990_
      z@*R=Q<O#G>+*(!1xU-@DJd(sABA%+rj>ws8lKg9QVT(L(Nc1g<yra(QNFvwJWwqXA
      b6%Q~=Y++)X!$V?=5Ys#!$u2L*vKIdUum^5^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/FilteredEventReader.class b/libjava/classpath/lib/gnu/xml/stream/FilteredEventReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1fbee1aa2f99135f028e413a825887a2ca06d596
      GIT binary patch
      literal 1631
      zcwU86T~pIg5Iwh)MoRb)u_7XrFKyaN1QpQ&I`T0(6HuX6<-sv6*Ah%qCQY$_#sA;~
      z&M1sJqwoG3|A4ypHd8xL$wQOfy}Re^p1bMK-(SB2n8tktA%?M{Q`KuFTd#O7H%t1e
      zWqaJ^+bjFr@iw@*&0Pgy25r~eH*3wARnM~ZrnF^l^P=f-hR7QU!Z2){sFDSBk_=_e
      zTaM)|GCW9}OntFtG{I+1$I@~P;id96kD?8oDio*;6Tzrjt^*9+D%ufY=rJsZuUAWX
      z?q<!rO|$eF<$`JFOxF^=9}IgtR)ye=VDZF|uCy3N1G`~RcFf8;uXzk@32jRZGoa!;
      zVhkM)g=MlBOgo9i#aX2RNnp{HT7mC*R@td2xXdu#ihomDjZ8r~qT(V3J28rJ1!D|D
      zr%A730+TeQSr7;elPyF)-kP>W^SPX|$AXhdZ$~Q9?@z7Urc=}(=XZI*%S7q=MiitO
      z2LGLHR2|PM@us0tm=a5&OI>rqpH?x08>FjP!6ma=p^Hr?nh3HxZuy<K@Ql_n%D|{(
      zvgM^76P0p9e1?QH{@<gRbC2`4;sWlfn8P4#gBUz(7Da49MMlJ;o8_uo;3Ph=542dh
      zDZzm_>C#3YIzzA6ZL-8q!5NBlko6QHdES{!9U+=be@53wazp5$XSY0>rNY~YQY*dW
      z#p~%fi#|YF=g?1J!V&}_vT0F$c%9zjtUY;z3m+Q55gA;NfNDL#2V`R9DC-j0Ve*C~
      zOqL=cdiN8|u#x<PuGAOALwNt^SL&dF+D8?@Dq%e&f0_J8k|9>F^%>gf><X^R#uCu{
      zMr~h*Sn?3b1LGS~FOP6-EuA{V_2=myvd1vh4*6U$vVkY`+@NW)B-Jxw$Tdk6^Z6na
      zyNO%k?}b#KB`JkOa{*J{37GOVG3UvDMSdY*%1i*)d;phCXb$<i<d*}u7G>?dzX1GS
      AAOHXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class b/libjava/classpath/lib/gnu/xml/stream/FilteredStreamReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52af9eb1d384d1719ee7ab6851a3071f3883cd88
      GIT binary patch
      literal 1128
      zcwUWC%W@Jy6g|x&6UZn8H8I8r=AkgeOu6w<rgULU8O1CTidflophLzQz#0aNU-2K@
      zSY;}u3qQb*@e|b3J&377g+))_zJ2aF_nw|_KfZhga2KwHn7~T2-E;db-|dEhk}Y@J
      z^FtM=#=bf3DcMkgg@nNB8~IN5&qI5m=erSNOZloPLnSa3n1sM`Wu)NstIB!WM?@bR
      zIf48rI)X<1Xy~Tb_QJ;kTgCCrW7tYHfyC2JL!}YN1sf?`6j+;pw^U0(AZsIuDIMi(
      zSeO>bRJ^v@?X`|nP?bkMeaKZhb?Mh+;OX-qnFvq3E|n@1n9h-{6WQHW{ZJrYEFB7@
      zpY`kNZRmB{T?>nRyMOmPMCu8bY|P^-<=el>c69otjT^|%U<GRyRt1*+YnqK)xXovf
      zb<I4XU2HlYD5Av<$I<dt+0@$WHXP(R(tf8G)D<OY&%)n)*w88{(Cj#W+ZeLidq!F9
      zJof}w3TfWYFghec<FZcq47O7~MaEe_#q38@dx_tiskld$`>c9^3?AY#Gli%QS1<>d
      zNb889Qj9TO<i2231+E!Imyt##oikkjFqDZ(pBQR80t~2yc725AfSDNgdD0X%olltM
      z%6!Ih4DWw_U;INH_5Yl7FBor=^raD*i^>NgN!}GvGQBxt<jUjaswAv2-Xs0N7`Z#9
      GcH<YbKJ7&S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class b/libjava/classpath/lib/gnu/xml/stream/NamespaceImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc1e8a4386194aab0451b330b415b99069c1b373
      GIT binary patch
      literal 1777
      zcwT)}*>V#{6g{oQl9e%*6@y8L0kZ_jk`PNE3Bm^BB@vNjDmEf<Qn<!)TOQYFq|A)K
      z`IY=YUU&#qK~yDG$r}&(iTnwb)2)dRlFAQK-@bj$UC!;Ef8PG_7l7+{6hlbhle*I`
      z95w8M=eyEu6e?yzdM&diOO2KtLqy=r0OGs#^6E3`_+7x5z}%tv%slFcNOkVLizP7D
      za^=2tB#<gAbip>AdSTOdEvH@-2)A8}n7fu^`HKP%(&eF$<z~(Ft)^2P<_~)^Re{KI
      zb5AA^#t8!nObVPmE^4Ma4uL5HF~pVip@DJ41t!auBP;F3u5`D|U0bRK$g!)YYpH$U
      zjQ9tZ#}wt`)MTS^J4i@bkEuq$s7qg~y!CU7@x$p%Nno7LM}dyh>C7l4Ckg2#ef%v+
      zvzE6a_szEb&c7mSw&@0SF!XjD7X+x%C43sgWr5^iWCK@_=7i)=ZPR9>C)0h&H+BzY
      z%`axQ>3{B8zFhKFof_5Od+b<hrJMoYY8IX-gsVrCSUsxAmMX)GAun)oND<z(O>Om%
      zaTEligg9P;m-uE3Hv~?+AKbuaxJ8sMW}w*K4N>gR74i#?FI`d&fjb6@xT_j<x`kgE
      z!QCFAd;*KOAHzMi`hP8@jb70PmN3hHIh=Lrd1jp#Glyk$F>fhr)xa9Q;(*lyST@@p
      zGw1p<ZymVJ=jy5zGb6pMSU2l(c7sX_2qi*!L|r@!N$Pib_%04BPjF(h*>-Dk&C(Cy
      zy~}-7MZg?24D%O72-E5<@k=wUUJ}<aMA+{KJT<u6BO<~zIiG!viTT_sTKQK<y`)cZ
      zfs{U9V5~**?qL%5agv_-E)S<L18D0sK4Mg5sf;0Qshp~kk8vi*nCGfc;pD`NUXn5G
      zTG4@x?r{*9pGM3E)Ivaw&i{_&Zv*5~A3541pB+g~4U#J($>(rBATJTE&Sq5RH<(Jz
      zDWijnzaScZ5gBY`voG9CFI<M2g^;Bk;V!2G|4UoxxRXs??ciEB{A^$NsciC22e-3b
      z$F*#7LG6+kv`@7X>EKI!pj^M=^!lI3eV^-K;WZvq@-$YS<o|xDOIf2xi$S5cF~R>I
      zSn!V=+f(+s!;g!}@$BLzY8>(&(ffFa15{xVbx4%mH~O94=y&inv4YrX{=Q*`D#u>N
      Lx*mN+i?i_`XuX9j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/NotationDeclarationImpl.class b/libjava/classpath/lib/gnu/xml/stream/NotationDeclarationImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5dfe9b63aee27c7ccf3f11cd419c630185dc7707
      GIT binary patch
      literal 1811
      zcwUWET~iZT5Ir{uB*a;WK>S$0f-Y=6h@-CVsvrx7sIex&+C<Q&-670|u_iOwnTbHH
      zPnQ0ceepr71go@aee=N|W!ZfbBPOHe19SV{?$dp``-Jx&UjGl^JZ?u35}0Y&ZFRe8
      zsh;l|dQ+`9zV4fjy=>Gi-IZpk*|MUD2psE+y;s(X4-MPz1Plx09_SDC?foGJ`@Nv7
      z0uftp8Uo`Qqf|?`8*0^eO}jBC5Noy9Ewf(QAk*9Ne51+c@Vsf8{(?X)tqqjYoVrXr
      zH<<5xUNWo1sNifEafC6Z-~bW=C%;uEvpNEzuONyTTayY#I@Tctal{11G}AUJ?dH1S
      z*7S8tHcM!0Rd-FkcON7Ers)Z!weQ;nkH_kgprw3+p@7mbe7U3APKzpq)0vV$lpZT`
      z_LJ#M(DV;bz@6R#_*U)hAi3q5zOm#L?K%x><F0M;DKOC)m1;Wb8b`QtqVeK(-Doix
      zFN&W9&J2(x5mlwti;N*dMdzm~E48IsX{C~iBZqtxvjU@EmQZjOs=$z>MAXtjYmMPN
      z4J>u%?sctHkhy+g+(nvuy2S2Z*<HO~trg4UzKp9;T%mqGl`5_Dm?@Y;ikhN<lnu|*
      z8zhz)Tw}4QZ2hia5laFiEYpJC_K4K%ep0nf*V*Ew&t(E%N#e2>S0K?pP65F^Y5}~+
      z7cwpgOb=>daJ&>8uR3kFZrm_geaF8dv$LEFQzYjw{SDD~l9f*XJ0@A@@{G%K7!jI)
      zLQy}^Z5ttq1`cI&uP~aO-NnIdeiswjqmf-CUyvt+!|az)i}YQhJl8RX0+Lw95qiDY
      z$$+Ey5s=m~9H;zjF^7<}m_=Ax%p*en6FAvrk*Aa6!->&ny^_Q7>6R>^bllw%0;iDb
      zLe(yGDEkrzpZ9^w`@lmz@Khjpq96Q6Aoz43IN1+g3k09RPZTvxHupcnX~Z<O6`_}>
      zx$*QKvN`U9PG<BDS99a%_%U&M4;R=q@%ffW$?qpmvgi2^CvxMLzJMk7!4_o5k@6eN
      z+@IaUZ?7<4$&<0LmVf&~61L#bFRRneDy<p#liK<VqtNMAr}b{o5DjGTH%*~|OW35}
      znn{v)01Y-x&cQvj2=Na^cyw#iZ3~Y`ZjZ5pC-_&6C);VfC!D7wtO7A;kyw{eBnFR2
      ODmQRbiu#ruap@xg!G{k3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/ProcessingInstructionImpl.class b/libjava/classpath/lib/gnu/xml/stream/ProcessingInstructionImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c22ae475079926adf6ff2d5eefc84c42d092afa5
      GIT binary patch
      literal 1536
      zcwUWDTTc^V5ItY%-4#j&MG@p8+AAw~MX*SrCN%|2s0E@iF6~;@v|F;f1^h+6_#lZu
      zf{DKQ;EyuSY}cl?mG}VP?97}qGiRnhf1P~;FoP8zTmq4@UY8H671^{5RjJA^j9O7O
      zO-(Onb#m2<mR8fV)xC-jZh_&p?5)*YW?$8<MuJx$`Ci#q4qH=Hj+@<i1-zDGlvPV0
      zoMWV1QS`FBVHuP+FW@dImO@Djnyy(XfpjF-!Jn%Y73P}nB<S=+3q-nHE2%;BpjSc=
      zeFCHBu|^942=q(v!Ozwu2?6*8`f{4CuGOnMs*zWADk@Jvm`Xu0H2!v+ZfjRF1!B4X
      zm6@jYSDfOc_c@&jNTi%CfBwTB)#`~vvjPEf<{eQ7BGGQL`Y5<!D?4~#XqLKUX7nP7
      zQhKRt{L+*SNo1`iZ*qoVD;LZh7S%m2Zu&4OFxk-@-NS}$H8cH~5^yan25}ovA0h(1
      ze=|#nAuiytJE4vu-L}T)Bxg>Oq>*g2;Kv=JT}%Zri+euYrI!EDX4jj=CEUjd^-c4x
      zlG;j{_CA4!y!SX;a}pkd1PSncEh}}C8c4J@kl!_G2fWGoXjd=Yrroz85NcOUK=3@d
      zE`3qVrOpaWb*{HlK}rs8)api2eWvkAjsEj?rkM@nbfrD?=Yb0Ye75v!AK;^<*8?}r
      zeu1JAeU&J~O>Za`KgGpZ;+U-DF~UdWV=NH1<0--|67DJbu!KSK#2PqU#udP}hH#Zw
      z+2V>W+v1ws$u$f+6%+JwmdpF8S;K34GB&T&h&sFi*D>NCWe4ereL?7R8~Aw(*wX}$
      zb_Ivq!RuYYH!wz7<7B((Yr>{EqiJ~VbUb|X1h?Yc3cXDF1O4&P*a;Hs40A9n)Blec
      zTK$TN?ZgRYPVrzZNyeki<o6@HT9ovdb$XemtpJ<U(-wNMO+CFL)m~!~Zz$_6lGwo<
      ninNCk?ciO@7Shcvq_Kb}#GE9?6lJ;y;is)F*;`24b1(k}I%HI+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/SAXParser.class b/libjava/classpath/lib/gnu/xml/stream/SAXParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10d7f073197569a2e7466a436b75fdd41d6701ae
      GIT binary patch
      literal 22005
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/SAXParserFactory.class b/libjava/classpath/lib/gnu/xml/stream/SAXParserFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5013c5be9f00fe387cb8e0662f22cdfcb231cef0
      GIT binary patch
      literal 2605
      zcwU87YgZFj6x|n+ObDZZiX}ek3oS1R_F-uNZNyN~fJy)*(%K;z!)Ta^GZT#V{eHKf
      z>mTq-KeV=$m9kdbPwiU$QEm5~1PCN*R@Tg!d(J&~pS{nV`RCu?eg|*@-zjJiIFL09
      zk>XM=;<&c1Ek%;CtCuv}(d{uU?OOI-1wMhpH??K0=!NAyr&ALrux%_Jo1U49U!ROk
      z#FGLo3Arm$aE)9fsk=i0!5g~f7Hr+w?3~c@(m9;Y8K&W$5@_t|o)z$oS{YrzHi5Q{
      z*mIh*$Ydd?Xi?FMkU(JA+tvhu9V+|?1hGrt*rMy^qY;U@-?Fn2hxpfykC@t$?&P(!
      z?lfaJIutxZ_?ytG2xAYCXqk*adsi84PBXKSiwigPv^&(D3Syr?-;<6ZrG}Y3ZkVoa
      zo3w&>_9?)YwVaXBT*ERYMTV(Q7M2!tds<t_=`1f{rM29wW*hR^TMVHQEeej*kVH~L
      zIE)ra%P|!Sf@IWPG|2s-#8Wh<8mg(^Szl(Cbaf}5&;#5MiWk#*ULtoC92e-X4KK%z
      zTILNSTd=(<*EcDM2y{q3JY3w#<m=uLi#Va;dAvYmhBI4X$;^7al9KM1RGgIVR>PTG
      zQ#W=;vvuhlRPl;*wiwRUaWkDOWXe7TMBec@HbRJEL^c^)GSHPurMhRE@hZ+Jh;3>Y
      zQmtYXXW7HL>DqVMK9r-v*hc@$RvT0C8qP7$U`uG^T4494!12mDqt7Fu-~v^z^{SY_
      zB=t1)B9Gd&mZ7>o6<iY7xd~)vT%v2nMNFwk$^?O|?q1OOj?a*|jTA|*Z)M;W6<1|o
      zkbz{qK*myQt>%TEv8<e~QJ^`@t9acLXra93#Y+yat9TO{Tg1`bv2v%&vJ+bm9P$W0
      zkF<)6Or$Jo&ZJjiXt_#pK?K{)O&U{<VzsVp3tNh?=dqnm-GxEw>QOJ?_jKfopQuCN
      zkR+bR%lEOS1nymyb(8x<4NDY-ppI_o@=42`($iMfH16q{suyBeptCkKS;*%t+pUU}
      zeN|L(SI(<o+A>|uFr5$zcuV%~+grw01!wnc6D50B#d}~6`lhF5;&R~w6(7n4|5z-M
      zjLUBSSj8v!l!WFB#6DPO64sfGwM*16Tcv(oNGW;Vmny!(*E}yP1w2-7^486sv<h}w
      zA2Z~fY~MQ2ykUexoCJ;h^fjPEekLG)oQu5rd2NE66wQ2^XN3IqtwNn!!S<ig_7H75
      zc9ziIfGg76yJ7Axn?HGZ5AeF1*??hYJB@Z0bPzH0Vvu)ud4>FHRZcoXJc9Suo)sMG
      zS;b)<*ZC`sZe-i;As&PeXVFs0qL%mIIdpmXy3xbvUfKcP`_M0Qi&o-j;+om>2m`~s
      zyg0(k%coWmo!h%_{|bhqzMfxjw1m?FCBy}y{s%Z2_Lnd&@Fy<v9}R>9C0v$|(@{m*
      zv(lc62E)Fv5)MAXwMTeEZdnkx|KDF>-;e9aJro!xiu0`Z0?{Y1mvgJ1V`T)F=(&s;
      zOhMz?Elhir&6g2ZD)YmDjvK5n#DS2d)xa#*u}G_txsvqXBs0Ba`4)1FA3-OUxIe(`
      z9k7t6zBA<OHf$;^<QS?j6=a4!IDAVa$|9d6&;3-iw}d+lxDRy|g}L4p-1|ea)VuF{
      zG(E&S4-j~W_e=Pwv0C#TL;<9D(lu&6kK>$#vYvzGtd)ACB{2!ly6x2?@EJa@i|Jkk
      z)4<~~mGDJ_lw+drZzzoqp!89YAGV-cAgVM`WpIRSZlD@iM>SAEbp+cyrX;Fwye!}T
      E51Vsq-2eap
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/StartDocumentImpl.class b/libjava/classpath/lib/gnu/xml/stream/StartDocumentImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46074a86be8635477ac88eb1d8ac2812df8727be
      GIT binary patch
      literal 2225
      zcwUWE+inwA6kW&nIFk@eOb96?go5pHf(uQrxj_>L3{IdpalkF92K&gF$R0;ClbhPA
      zYOAWERX-qKz)K&BgoD&d?R!6}>ON;Cj<H9y57yZ}XRW>0zRlnN{Qf6^>(~gx$1qkk
      zb~5|*TE?<XuGKRITQlv&MtP^s4Leugu7wd`80kPgTFz&8TYwP5l`U;o+i!<(@ov5D
      zk0D|mST?WcDh#o_;ACo=Q6-eA8`Wug=SI0vA)6se&WhZ$^oGIEM}NqbQPFA*gEO!a
      zIj~w6i@aRZOio@0jvbs_g=Ta^x91qvlld;0`9@i@Da3TQn*VcCDwR@2hQLCj!lUrx
      zjDk}bWVraIP^n@M7|tpPBO<JG3VIytyn?7>y``WRim)y!=yR+w1^rMMPUUrjuk6&H
      za&uLCTH~UY<hxeXOkMnUF9Y_bZZVAK|EtBK?lo5&_4*CU8I&rwW$RZDwkd``naVNr
      z(q*C5*uiAVtF`9|w6Lj}TG{4i*6mWEyvgh2r}wyR1#U~P)L%un+FRat(ryWglE2n`
      z#P>|y=C>^Amsi#dU7QSOoIYgqMrK_g%xTfCXm-EMw?#%)81FG$?#h@3ydbR>GJ+4N
      z@-y=U8ryZk&L*Px2-9JF%+UXO7zHz!We7@HBrn-rkyKHz=LPa6H7l7*6(jhB@*F!!
      zbT$#eBGu!7TM;ZV_>4vbcc@%r$Mq73yYw(W7eyW`VJuV9$69jtTk;j$hw2n<nOl}t
      zrE#6Yr(#@Zg;h|niZzBFu`3JOjzy{`+EuS^nvFd%Sko!bTiP?3tVuiAS##P~QG~pQ
      zE_(Cv8}tF`p1STH5I9<B?3iV~q>BkZ+cnD9gcn?*W%1K5h!6(FmeB`qQ0$mIqwY!j
      zCC@(h?3ZT`0#uU$VxOjeFX5Buq?&$(m^#r!T%BxUNF5F|F|5XeO^m4VP!ku_c({qt
      z7lidud|+JivZP^&BHkvScMwMoBe+ZN_mH4=jT7Rb;~$stHXyAlxJuE5C6xQ5CA9mc
      zCDaF`CG-cSB{B#}OXLtHc7kjtgGoAtH~&ER*Os`Dym}x7D9*DhfFT9drDj}eP<@H`
      zZyn^dHgd2<PJ5DvI>{wZ@`M!INgnN#{e>s_nkRXrlU(s6XFSOlI?1{x`5n)khdXmN
      zJjvH_gHZ319iV?x!VU9NH$;oAbnN{je3%yA#5s^S!ko}`h)e0%E%#~U5Rurza|C1A
      zcF^b{hSIUyE@-Irl#b=devWg?e_-nI#1Zbj!h@AbG9Io^{`JCb&l8$XNBok^Y?qSQ
      zqv_hGJvpEm{*vClBH3TlC+r*C#J7a|4lDScz9K&m`$ufx8Mg2fw(&De{34TAowQoB
      dZlQ>Einu{uAK@`Y+@k3&;WN3tpUVP1`4{&F#$Nyc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/StartElementImpl.class b/libjava/classpath/lib/gnu/xml/stream/StartElementImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05783549f5683131f5de7ba2ceb41def0e9b75ff
      GIT binary patch
      literal 3087
      zcwUWGTXR!Y7+pI}8k!tREWL2Q$Sqf56;UY`N-a`I!=)FXqHvlX(o=IO$q5vdi@@kG
      zf&=O}BQrcX!ix_uW6M-$)F&VO7e4qm)U|g`Ptzn6A7JmZ_qW%#zV%(wKmYmpR{)*3
      z<%LUNV>(xgPiHgnqE#^TY<$qt3szso$Qn7TKRcE2!Y#12%IMTUqVJ+(&?vBVQopEA
      zSDF~|zPJcZz@5{x2H_G5=JKRCrKgPe@g%oh0zTcc3g%eJGKvBLWg0J8W+t96i<Z21
      zp2&OWqc@+kjA=UAUKc%CWk;aKy=Km|x&^KU6E*x3`IK&%`CQi$T&ua&{eB^l&<KU;
      z&5s*CG@wO8Ggb<0Sc+0;qzM9T8oXF0cO4p<;FG)68vNzmS`8YO3#>?(IU`xhjv0j^
      zeJn%uTO>|qL@$`~+dgz#6DH-{oOnSwP_|_mo5$irR+ALa(uSqVWa#n~T{Hwk{Q_Pd
      zCRG)z4~CYkgXOgBsVIeZ+rBJtzhxA3D_`jHBZP<-VS(nw@@t4<2kDx&Wf{?tpNK7$
      z9u8bC)7l?gf>o$CV7t&A91`lpYhJuc{93vicHwo|2&z<D=R?Zqxpe&K*rbuNy1aOU
      ziFlzOKX&6S4O_9zhc3MB#a^cWxy&_mV;@W2xKPqF481K_>o_zjsrP6&fL<nQLN6v2
      zOD1kqK$zrPF9D23cC5gb{~?aR%E}}-O&fepG1O_>6_o(PCs<S4D}x!Nt6aJ(RD0yd
      z0FHW*Tr{qp?@GgA9HC@W1>?LqE&HYhkvd)~u)cbVeYq4nczif#%9T;tl+1kmq_ilg
      zHuv>Sr;I7t9z`$sy`@GlPS!!Sb1Z#0g;6g~&)2tusNp@F5%4GmOhT|fG$Kpk0}W?!
      zPN0c89kaPFE;O6{GK>kphjCdwL<m${NY`oUW}>QK<~3ISCN+F0{mFJ$qvaS!h8Ni-
      zirA6bj|}n}PGC@$bKZvn_>}dzaz57nqmB|9O45&yeg=$UQBQMX4&#!Xm=kh$S;I&8
      zn1Rc&-m902j44`4duXDNza;0~qUu;UWwMo+1?P8XA$@EB!nGyp@Zz1zV7qUtt^e9|
      z${(=7e5sH!4w`cCwpCBqoe~6_Il>$G&jUAF<(%hFcB`E7YW3SICp_0C+B9PYtpohJ
      z0~Z>(t_w$=;iYhN2Cd=P4BEr1-7{DfUhSE|ny0*XVIBWpqio-$pF_m#C(2>8;Rx0u
      zf%UxUE@NQ>HUet5NpX`q$;zd6l2?P;NoH=fliWPCd>LD8W>K#4rOW-J<G)dz98<ou
      z@~!Pl$kArMjN30g;h)g@r0Vf-#bb~2csq93k9XOReSF+LhoC?;!e|A8&q0XQMOalA
      z;cQ)mor<_bxJzp(OQ*wO;4#)k=kSWa@7SG;#OCm(z%2HB2T$w?FZK&O`1dcd;HaFb
      zajJSA9Y|B12?jY%7n90)xa`2mRHw=htBoqYgFd2kFuMntYgt!^nCn_?*Hp)qud6NR
      zqWyRutz`-L<>Sa460RC)ECtbCHgnkdne*eyGkc$RLp*cyYgodHbL1$ac@zokoyAF+
      z^;x_>5d8xkEqZhosRw9|a6KOh?BRW+Y+&-h$x!k!Rz(7vcpI}-&X8Zug_y1F-%cuO
      zO?T6Ds=_o9=;kfW27bZtX*#~}3>T9zZl+JhetW9oyo-CBUggM7us4BEsK6C==2dpn
      zb@t7t%-2o%hc~<GGv?%TMt%!ta2qDRpwxG0d7GzS66qf9<10MG*Z3aa;0JuGR6N9-
      wQWZzVNAz)p-kWhl>FMG)-mJ3Sz$%&F-6xx?xW?OutcdI6AuHg9%G1sN00WKKTmS$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/UnicodeReader.class b/libjava/classpath/lib/gnu/xml/stream/UnicodeReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75aa118207038e53addf151721fe13002eee71bf
      GIT binary patch
      literal 2897
      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
      L>hsjCvOM@NF{wKU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class b/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f659aa6cad5ad2f74ed8a8dce8f6dd3ee9e2ae8d
      GIT binary patch
      literal 17712
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a19a8f4a2aca761497b648bf61951a51d95730a
      GIT binary patch
      literal 5884
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6336683457a0a85e7e769a59bc060dd7a3271b3
      GIT binary patch
      literal 7643
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..187ee4f6e27a00ddbe20ba5d5be1e963f874795b
      GIT binary patch
      literal 3112
      zcwUWFTW=dh6#gb&+ljNeG)+R&G^IBZJ1I3SP@oBE(=?%`ZhFbB374|oOq?zD+U%}N
      z`ht+)0SO@i;-U(nwn8XE6hTGn3M#G-MdAmbzVgy1#4B%wGrL>Ib;d5Tc6ZLq_kDBD
      z%sI!u-}(MW0K1V3qmH3FZ5HCo*-YGaEUsnar;aAa&T`X9Wb>IY6o%F_+F320(ad!G
      zSn3SdoiIWSTg2>gIgtyNUE(v;XL7pc7&((RNv?q>{l!6s(2!vo&M?E~XboI!hCvz4
      zE$|2eXj0LDW`;mCHq!udQbic`3@u5+<P(K#id$1!D#IDtgg|CSvkYPTlZvxs*bF_%
      z8o`reYMMK)J#{Y6-OUmVjWn4oMb;CI)r_s#uqPeOa>g<|>z)dU%ty%MO)5IjNpglg
      z;y9L(DmdJ=CbTTK^O{bUYS?4uLW#Ogn2zC`JINQh#Z3Wuz_5>7Ii1_KVWtx%IZ)6&
      z&xky_q*<EoaEoHC<D|gI{}$h)Lpi<R={C9BtlG_5h0jr0kp6v_BL~CiXV~$7pyZ!+
      zPjJ08_E^Qy4!an(-5==cm&adAe-%gidur&H3pP<6OzKNKt9jXRZzh;`Z!vyCTqtEi
      z$E%j%@DU1HrzBpOHVyG*Snnl$+{nde1;TPOJu<ee^Sro8JB+6owy$xCa&^)jm5@|P
      z-1J2Id{MV-2}a2=I3HU(7s1omAI9)KW$vx1I3V&fl;LLDSrWj5Dn@aLrgS=n5jtWe
      znuv{tG0xCg$v#+Eq#PBj!zvPZmZ8Beq-=MM;L$`v>dhFEqOy<DaY-VG&D7%<ZQGl1
      zT<i%ICoxG5Y56=i7Z`TRNNc7%-v;Y3Ews`Ojb<5wy;?R;!#UFH)$%!;#?OiID}|i5
      z-3wy77pa>?N2`ho+)FAnq^JQpxk*3Z_NXLW(TDi5BYKo%Eo7LYF;LOYQ`ewdpm(aU
      z$grW>-UK!1(dikb44TXpES--VqT#J8?`*pSU)f4cC_qn;o_5ha=}(~z3Z1@aPmN@a
      zqmF(+r2jh9{();~xk6SQ*3r9}xS-oru%8$QhzWFhXsjnaxFey;=s$!y9of{au))`k
      z)0fdV*nbr*-;`uS?&P>Dr+NTij-d-1eezyHi#4^sh;HQ~g39H<<qC}>Wg2Qpqo<_t
      zgs;&gG+HBak>h0|O(l`dRYaQPBGXcl2j$TO<r?$SXtq>wq(LrnTI$GFxg#OD#)8z5
      zZ6%GQpEK=3W2ifP0gc_Q>IDP?mz7nmh>J1ka?g}yPP?xcL<_cK2SkQER3*f)+`XJM
      z#NH|*^>PtMD$<82Ds%T|#42<5oHTa_uv0>QxRU&ulpMz+67ud!@*7g}qj=0G@AS!a
      ztdjXw8MDq~Qqew63Bl;Z$e{0&^xlU-PmA569m4bt4HPjn%=RgPy}=dS9_R=bF|s$*
      z5o#T}i0xg<Z&-f=V{-!mvGB}w9NDLIDQy!)9G_jmRe}xIfK7R@cL>&712*Hq775mO
      z5q+D^SBIYRpo0Y6b|2`x2W{<AZlbYE=?E3^{Op@S))DNv^zTN&3J<KHzDp_M^y+z9
      z*hKGl>2%(s*7rWO$qy*GKcv3%F%`*q?7=70G(W{5T%do&OPIrFR8pVgWvn2NFYr3P
      z#M}4^AK`04ULosS6mbo|;5u&NJN$tg_!B?iHh#k2r2h|ob?@%5cN=$GFO784W$uV$
      nk-Q5shBOsbfc(0HB`Q9JZt^cGz#ZgmCvK4s88;uYZZzh9wi|I-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventReaderImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventReaderImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bcc1376e1723aeaf328d0c2f665e12e4da07a718
      GIT binary patch
      literal 2614
      zcwUWET~ixX7=BI&EF>$mK%th}0)+yB5{p$UlvYZ?rVUUb1zNT3LQX^K=EKbfVa6H9
      zk8$+E@k%dxqd$NPoRN00Gxp94f0W~Mc9%_Pf^d=S`FP*=d7k&<{PXXhe*w6N#~K0x
      zU8!s_x{)!X1>2HFCb~QmpIVn$dtMqzX~i;mQ$tYT*b`&jh?+(=6`fmoB3Eq<bpmJA
      z>BhnC0(F+R=#E#jU2s;e@t8n^VVb#B!_LuRpwgjer%fMWV$YO*^@YuXEi<vCKy$pr
      zl+n}Kl!}{|@>9pFDiNt}3Vvid)Lltu)Am(?NBxKMJ~GitY6FV`!O2`whERhR9ZhHz
      zsOcYAY=A(U4h{8cby7zILTYtNM;N+5Q#_rOv&GDcv=YXODV1=dn2Uy$R(tO-Xs@LU
      z0_Wm~R#{~!D>rN}OFjKn@?V*!(A37N%-iW)wxHo0feucVZyBPDULEJrNq(v@N>{&*
      z*U(7qmLz&mF%f9>NR;>8m~y|M<19KgM46D1!F(}mr!%q)Xc#T(Z$!sixI}@fsFOyq
      zz|0KwmxWHOS-H<u#>NJ!o(c%M^!`sP_@J~6$Pt0l@q>xcMq4uqvyMns`+gW#a8<*&
      zK<8oIrsF+~D*N|!L@?p_$HJJzl!hAueMjs?9n<)LgX0Yx)lDCv(~r~>jVWnQnKHv&
      zqDmRP&Q}s{>$r&+lcCC;Fj8U6;*N&7YH4@{N5_Xsysog+KCzjXD&&HWxVmVNd#9`&
      zA;L7gW99PFvNr|J_g50C(rOy+@x3S=$4pbE40FOt6_q-_o(lLQ9gA2}t!re6S-WcH
      z3J#-(IzCZT&6hBfTbCMEyehdd?`8|dd_HH{GC4<fhKg6#!3J75Wed5YwJN96YNXpM
      zXLneILl+05hQC?_(W+h!zVfZ=-Eh8qHTVsxDdRW9RTGZU`Z#wc0^HLo@*K^P!5y54
      z4DFyja$yIr|IYIOI{4ql$iO%)Cm8iQ<4mFjH*lJ#5!WAY;0)lb6u$5o1bhyPA!nB-
      zT@D{6*x_)KC(25XJVQ@BB6iR>xb0&%(hrD{!7WC+?O?XK_8w*}5eI0;a+A$qnKI?s
      z#;8Nv@fR4r_Z)A|3=KZR#igN_4#OaQyZ33F=YIlqENCN^$a~qr>vSV|cy-L)+jxf&
      z8maVMTxJBJX46Anc9<ySKhXC#YJ*!`oY(~iWNWEri+2rZX8!ggKcI?-yjkH*lE{x8
      zWZjMAAq(|%R^;ysC$qq)i&w8c+dkw|)CzBRO<*a)WxKn*9spDASo_&NLl!`W|5;+^
      za1wc(!e{7#Ma_jWPNP024sr#jOI{8_F4Qf75=NbKvso4^<j0Cv(f6a*ALFjRF7?^P
      zjKGzS;IF9fsQqnEvvBnga9&9*S6YJacE;mNO8ko9zh-j3;rX`&{tmtP9#Q;I)@0)z
      zwc{*F0(Tu*oc1!3%MQtF9?7sm9NfkIK!xI;%EE^Ic?siVCksNo6&2bq@6Y1{fznjE
      pv-LB3=9j9ue8hNeM~*lh3e>-V!6{gM`3keAW&ZWPf6}p%{{gm8CTIWv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventWriterImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventWriterImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9efa1e25116d8aebb47826a12a343b9e047a885b
      GIT binary patch
      literal 4785
      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
      Wu9;nw|EhBK`E1^T{C9);$NvEH#<Up#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLInputFactoryImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLInputFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e8c60a8014a4d05f01284abcd96f4665bc50caf
      GIT binary patch
      literal 9613
      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
      X=WqcRbK>hpRGYJNJs&50Mfv{&M?6~y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLOutputFactoryImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLOutputFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62f20e369e3cdc949b11ff7312c323af51943c4c
      GIT binary patch
      literal 4038
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df7b43baf038a06cec65b5fbf360e0afd3dde194
      GIT binary patch
      literal 594
      zcwT)`(MkeQ5Iv)-o4V=dmYJ3LV4y3hJr_X;fv`qUNUvAB)W&*+-8Jm9dXS)pKA?|^
      zW-TIw?cvVMJ#*&VJ2M}jZ|?w(QPYtiH15@`GoN^!AoQh}bZ!UEmGA@U*U!~+Z>mD6
      z!ol=TdO9@1VJ!PEm5>e}+@RhiRGheq6K0*d$_>v5`;B;7b4bv7ESmu#XCQ@i7D=od
      z(2*xp|0(S^hf$GfU;{-$a^fli^&@Q4z}7b==7fUdDtS4ZjHG`fMxG=To#|M3L*cv8
      z{Rh;dt_XJQi>ou^9<$fenLm~nZX}TZWwsy1lOPy<rKI2UL=eb8N0m^H)8=2UsH4V>
      zBzc!)n$cLIh>wmn_8E>G&L-HG?A8KVyQRItu#*cE?8E}r3uh82u`NOatS(a45pq@=
      drq#hV<Hl02gfe!P+{)7KVvl{6bG$el0ACh`jb;D<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3457c542702091559116e62155b95ee92e46eeb
      GIT binary patch
      literal 1789
      zcwUuM?N3`(82_F2wwHEC=;<uj&B??L+S_&ooKpc|6U9{vjKOfCA-gRHc9&A>?d^ge
      z{Ad>67W|+YX2Ex7v@uzvb@7AIFEjBE@y{?m=azsAE71?V=Xaj-y#Ai&>7Rf9@+*J=
      zyrILx(6dsiX4Y4WnTlgeb2W2mGI!pzE7FdgbsXEuR~@NCV+dU}ubG*mSz5_V=da3w
      z!=RPSRml*}?LEzsNoi%6-ki6}^cJX;Wx-mu<Prm0VDMcti&c{Q%eGv$)=8nbRxpcG
      zt|Py5#j3>m8II&yB}Jb7BUZ_BMj7Vft=0CYv|qBYUzC`q%*WT3WB?3@IUYiL5MD$$
      zI?&1BjVI>S%Oe~<_!T<Bp*PW^9Bl|F^cY7F{veK{N5|v$G1m;k@dRQFx>Z_|>(k2=
      zGM-Ijm1!@>A!Qnep(8<oS{2BVM2ex!EEHtL<?PJ=Vk5C%q~f3C;LX(gIZeo*YG5^A
      zaTORk<Js&343+vRrT!E{B>o@`hK`(7l2g^yytL=ce9@g6)%bbSw$yz`sHq8Hh_x(b
      zZz##Br(n@kWoabjn^m(|QQ`j;yg8=Bi3P>y7{?i$-D7Nk;n)F;DWl^U=NQ3r%KSx+
      z3A{vgtVl-<Yo%-!<i!gVyEp!y*i}xl953UQy&Q<%k%Mw*%|f<Rt~%7QNlfdQqLDjT
      zljA%Bw0xv7Fwlkz4Ag7insY_k_pk2`WyGpU%`mGr5$tup!P&K{U62!&YE%2J|C7p=
      zfoDr4X^$7pN<~r|0=r!z63GMo-RKCZogoxb8{?j|FYX!KxgXj&xjI83wS9E=(657}
      z41&;K<VB}*(MZ-2Hh#v#Myif3BV9+-h-h^jHKM*cj-^6F4RoLONBo}8Nr%;O!bqm>
      zqOXqhZS)ZKM*IzAT#0&$__fOoJlWK^<HkKr-$BX-;wF6JIs)Qdw2Sv}SiFy@_yFDF
      zL-dIoNQ(^&ijOcVKE|Z@1W%LQs9Vb-p24$#i&XU<7peNaE>a9=E>ax$&_}jI7$(fr
      z<TYz%{bc7Ot*zwmV4Jv^{0(f<*hcs+MmO<xY8z>~r5kwuQ~10!^+K`}4ZJX=u+hXr
      zT2%W3-RXNolxur#8@Wxihi8=KCVW~gs@+2>JQLMi!O_-g3f8<eiqb_&UCrArXA>%G
      zaSOWG0vDg5Q+$D#_!7P1E8^*EjEQe>PJD|+aT}M#caY+Hyd!?Vby33&@gp|G9o!N>
      zxjdd~R=&&Q7G^O=yl`ybBFQ||p+(HQjE-RjuM*Noddbb^H7w8>Bz;Ev_d4(o#L=Af
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ca9de327de93c9dcf3ae1df62abac257f671825
      GIT binary patch
      literal 897
      zcwTi=%Wl&^6g`tTapStF+ab`DM@vad;yw&(5E3dvjT9bIst9#A38Tc7;~;xnmH%MD
      z`xB5@SV%1R06q$FXHtQpDhvCbnS1V?bFRm~|NQ&~;64Hy1%{nroCW9OC`eTz#W;BN
      ztn*SNsZ1J=l}f^XrsNYjh-_F4-l;efK_uc~@S=Yz2a3T`Z{J9U)z1G^m&)Sd1BTL>
      zh%!o6OguJ3)@E3gaW<BTP~jwID4T4`z^6Sj6-L34NJm|%sL6snS2Br3M71ZxR--U&
      z++$ep%o9#U<%eM$sz(f?=6u>^$(MK9^GGu)Pg*^i#Np(%tbn2BVi}%;BCfeu!5Txc
      z+3M-cx{DIZ8r^VVPth$G3#e$c>B5=rZMj&4t5L(n5~>W#oiLWqvvFT0$D$vZiBAS1
      z>WL)O>x)fGPlsW?>DiA;lXAL~EE&kBp)Rlf;~i*|3~oD)WpWsaG?l51eTKDpof(#9
      zdSjF17wMwe@U&|}p7v}aIX2O`Sd&{5$twj<&yUuOo)xT8<b=MVKy|>LznkNV{{vV3
      zy&QFaKgV^yX63l)*GoAz{CYXZZNFycxbvO(1#HuMOV{$RDDiiw@b{?l58(VG>iiQn
      z_-AbMFW4d85ox3|a2HL$Ag#S%kXBzbNb9!@(hf=nX%A(Cv<v#T&@!j{*rn)@3r4vE
      F;4ghu!I1y}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95921cf64b5e8388cccb2cd1c0dadeaa6de30c72
      GIT binary patch
      literal 787
      zcwTi<+iuf95IvhXc9S}n)=-*KN`aInF4W~2goJ{TBH5u*qo_sVVG~xtm9s&%gTiO=
      z5Fzov2k=pd8B;-ch*p}NvvWCf*`L3@{{Zj|XBG+qM-x5w7Sq^EvqZ_McNqrfGD%g^
      z>dthgbQaD&sMvxb(72YLr58&*@!pQE)i@I<`QiECN<j1ksuYlBQfEUM&sC8)AW(eO
      zzhYGgSbpG#et*D_h)ZGb(tpjMNN&?evy=+~Bm446@ue2TupRtky~vVCPo4{GkVz$4
      z#>D(iz|1~IY3od2FId+N1(`1*9c3>C4%+M8dYvIrcd6$xRljdz2X`tc;=sl(?o)~F
      z&X6q+Y;3_~?U9Z8AMMCS1ExSdh_vd@rz4dN<S16$#B40%p-dviH;)EaEpWWHnEy6F
      z4OA{>^JJ{vL>yiF>vqZm60mz(tE3ytG*zjEQ-R%eiOG32wQ<OcqD54w#}Z6J7Viif
      zgv%?K?VBr@XHs3kHIg(7-aJntms>Y@8%}=T!fkqP@Lcl`0?N^(dylmDl!NPNx+hEA
      zb-&@ByT8PtYb^1QMeA!$^O)og6$+<;lCz1jQ$@|G!Ex$1&TR!wf;KuiWiv0LK*!DF
      PPw*sfmOc-j!ZYw2J2#dy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6189eb3a473f7b954cb27ba16c982c3b46a1983
      GIT binary patch
      literal 595
      zcwTi;T}uK%6g^irH@8jAwKDs%@IejQdM<hq1Yt{|kY2}au$6U$-8KAMJxI_)KcF8K
      z-7)DwaE7^GbLPyMJKsN_UjVLgZX!jf57pG2jYBt1A}Pl1^S##-Q7ofcYoZdV63&vq
      z52Xo%P#B3f;f6vD-R@u{{e+Mn2Z}%)9f=vi^#9Hgiry;vhLA~KgSd7@sCesc)~MS+
      z1<4)ZxV|3N=o5_A<V9w|%4}HJvXDm6h7E`1)Ej-hvuk4m86EB0Fp(kTy+Fx_>3ATc
      zCou@6mOAl8*cVZt^JUS{QVGqq3RYXh!mY>2H1cIT&;+@E<fZNe!R{y}qgE*5SjHx*
      zgz`FWR=L8CDnB93UuW>*7eNnm={J!D3I*K*&WM+dZT2~i+DP#PO3jNo^34zIG>tiD
      sZ1&!{o<f;zPIEgRvQ8H{r-y?Dhh{3Fg2M&wXkm|W!rtON!YR&xU%Q@#YybcN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..405545d96041a71b19b373a80a9cc71b19dcbec6
      GIT binary patch
      literal 5857
      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
      PAMi)8%3u<9<1OIdEhR!4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30d2626e86fa553ab52d3573d8e0a06fb41593cb
      GIT binary patch
      literal 964
      zcwUW@ZBNrs6vzK(57d=1=E??6LDZpZ2dloum`LNplA<P<fxhdyn_28y({_fhWg?Pj
      z;s@|U8PDwqqFIeiZg0=I|MTm4Xn*|t`W?Un^b`~b+v9L*olF8NNn_zotfPJBl^Z7_
      zZa)dcM1-jwg(+|Q(MSXeN`$T4h|5w!&6}BgnEGBI5<=5Cc0an-H1z|^@x%9G<oHRt
      zODIG!f!-3zu^5XJLVczT+;D6iq_H24S+$V9^ON>{Ld(g^L8>15p`Sh?tatKd#(+?=
      zInfFTS2Zj`Q&EJjVF@dQjemspje&wDVP#$|DjHamkZXiu#~4Wbbq!@K5SCdcUQ8!L
      z5x;hafsj>3o*N9@*q8RXvm~n|^l~$pHyN(G?v6(GpDics<QLNZOUyly+27I7#ujJK
      zI6|XyX%H`m$HGf@4W3iM`#>=NpG{B?qG{}jr@l<9dZFw|JVEP+p@{9kO%jnP*e0yy
      zu?hN|24IsrUE~kD#EaVvc`3M(?G>m%ttO|;R)N<Ns;pn;r#?qX&#KuyMa}G%&rmnN
      zq4DMntEXsv$^vfiy(;m#jk5k2i~1hc*{3mtL$QII*^4%D>m0ksQ4*_~pV8`m!R^D}
      lBvqd1&rs2yXO!klc|lQe7x$P`KqreaU}j$aMbO0#@Czb@>M#HR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcfaca7a49eda7cc8fa91e8314801575fa19c2cd
      GIT binary patch
      literal 600
      zcwT)`O-sW-5Pj36#-_1N8?Ck4k3$8Uiq*5?r6?3q5tQO}TNjNa8%a{BKg&ZAJop3r
      zQR1eG2qhkNX7<gSH_Xh(=i57gBeXPR2=<+r_GZ4<i{g+ozjrfqE?F4yuzlt~#?Spg
      z#9YL~;FfzDRKjj5|1XuW65qQ~`;bs`(khN6>%<jqd`hVArPDeig4&m|IS}#&vRKif
      zV9kJr0-^Cw>7X-8icA9~lnILO3IYuhY~8@dH^yd!qT>pFG4;nhyk=vM6Ut67Vcv*^
      zZu0*D)nqEderm_%t;s3%t6&;V__>=%6n?n}5A2B%jDZk5?0YPVc%-30sHUkCN=y1^
      z$zc?EQ8LYBHAy6&hE?fvGIC@#BYnm0&Y{~~<rRjl%u!5?^&&GFRHQ9K1*{gbRvme(
      f0n=(?Q{u)#uYxMJ7TnsxZevG!UFPKR&;-5!Pd1O?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1a134fdba4f8fa142a2100a47b4593e978f0ead
      GIT binary patch
      literal 556
      zcwTi;-AY115dK!ppW{i*{>&1(kT8QzL3c$rQXrTGhIG5?Vk_tDi9LJ59;=H8y66FV
      zlAa=(6)A7rVgB};nVp&a`uX?-aEe+635NPu#ojdVy~t?61MlIcbH{Zgbp2{-gjU>d
      zkD?4x45bNw=AO^h*t;D}#LzHgpW=ZphwTwVx$_VAjFxJAPI&YZ84+0ARiWWVhN{a0
      z!H_nOGOC|2R6ENWp#1cORMK2B)Edjf4*LwLRyYzlFce+n;5bNP%|#w%hGfGA6gyIh
      zZX67RzUKp9*oMO)_xoH+>(4J!wk?K(rLQe+g&K5vVXTMZTH55oU(~VP1<l-6O6Zo)
      zqe##WcNr?n>N4aPDr28UNzyN+h*yw?J(;=AT3ssHImu(hdAOuk$vQ)V2ymK5Zzwe1
      lQF<jWfpwB;8(aRy2HEZ`&%q|PX886@R<JX>Wkgl%0l$cAgAM=y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ddd6c4c2abfcf4cbf80ecf972375c41bc7c741dc
      GIT binary patch
      literal 6256
      zcwU`X33yc175-l`8^cSO<lP`K0S8e@CWMg1pe!m05Jv-{1QHXFFqyoBfyqpqnOIP%
      z8)`*dDz-MbATEtswHir+1OYc(aNlcPTWzatwOXy(1$xeXFEe2nzV>UrFLTa4+dcQ(
      zv)uRGft|Ynlqxnm(iBYS2z8gN?F^PgV-elgS#s8b+C{!dRF53z4Rv+L?64?st@fSk
      zD+&5S9VK<Gt93t7Z3=Rkx^|>)ZP@RN1;QZ(mS7;HD^R=&9G$+%np(NE`NP5PPGUQm
      zR&6e9;r8~Z9y6(R=EBj{-5Lz|y=@AzYZLp|$0C7H$4uf!*F|G`C-W^KUng6S=w0Cm
      zsVdD1MuozWPG2x^9x>7av`da*BoHo<=c<<;&y-reHa$Xzj0-H56yjxchXVd^o4(i-
      znNXV)tfeFQq%b-V3d90(Tk^}Lhloq=&edZSG$v&Pc=LHCU4fO1m6j?H_1>C=bCxV!
      zJg;SGb$v@kOKDko1$n;An}SzSUY1IwthAy$1-ZPUw2WeSD7ma9C6VopJ6y75VO>?-
      zf)uQ>(qYz^5v(QiTTW7-B~e<WoMV<h$U!<qL3%-916^J<1#lD;OjU6V+>A|AG10)v
      zR2*wy6)GkfSfz^N4D2Ko#~auT6(<<jEESUt>=YFR26mc?Lb%CC&ccP=ovnIgiLW)N
      zb7oP-1{-{l0IyA=ZI<a^q#$L^B<IQD+4=ubnwtw7oJhxf71bzW$4^&bhr@w0C{ZYe
      z#V0YbR>gRXVQis_Oaoh_!ewBKRb(015*69d7;8`=pxJSjf@2c9dV@i|!xyZN`C|IK
      zwSK*eE7t+4o#R@=u~qKYbur!T3$?lZt9%i+k?>J>v`hB~+5>u<6OCBTo}Nv$RdD!e
      z3LETbQIO9SBbgyRR#LsVcK(P^I<W#iw$Vztl{(mLhUzA7m{--^-mXXVwnMD=;p205
      zsK~)sI|9_3k_weKHm=KwRanD&1}Q}glJByxfenRJ9EEXqbeaAisp6doV+|`rRpjDm
      z#=2GHL8G*etqMdHxRX0ZQhTMIk=>!kswu=i>JX9P?nkxZWpn4NP~o7|Wg*!wjr?Wa
      zk5o9BmqENlW>XWQ^`dz56a|H;+9wOuCpsu+JT>5W9z^Z9oZ=I|k-9j?Njv{o#g!;h
      zkl7|1TcVv=xPucY@EU=<T15sNj9sf@l!5(3#b`J<bemOd#8poG6r1h%*~sk@mrJ1t
      z>O4@mO|#M#6+g#1R@%bWZc#CT<DDMiu-OZidA;63FAHvC!L2NK2V-|iZWVLw_{AYJ
      z%?OGUcj0bMjC&}3q-3h3X3M`+aUbp{6R|KiuSMZNC^jb&@vT!ZHdQ4oBY%E{hwOOp
      z&~0V-RrKLunpZwH;173^5zj~?#=xEFO+oT<|5T`U(rJRyuxKsgiBUx~$~?tS|5ORq
      zh)x;BZa=DG2t^!_NBI)>s(1{KQ@hj8>GlPqM(~z-3!5EylKM3FoAR=%c`Uk5#nW8p
      zF0$kuIl%Y^o>h?#&4K-KrP_IRyg+Sa_&S${qTO9Qn)S9}#SsnXCF)Au2?;k%mf{Md
      z`-CG@Wb$gB$8rZ=HFqejteWS*>+w}Bt=?2HDHN7!#Zt}9spxJGN2I|rw;qZGViep_
      z(LhJY7weAj!=Sa4Z~YyP#BY+?m>Faa$9ohcV<(pWK*fjnh^M=Zo412r8hW)asvn^b
      zHnY<2RD8@z&S=aRiA5U&u~l~bUcphx@>Sh|AbIb=9~Bg~h5g-~<hVN!b%(+PLhe8;
      z>Tc8hK_B%%_wf6|?ZhWo&Od)r@n`&n{PlHp=^?7@;#4jjMlyGu>A)8hl^N3Bmny!(
      z#T4XNc(_0me68Xeu6$Q}AS9nTiQ0Dzdt=9U3dSe(z2UxXG)_DIVZI-e%6+)6evf}~
      zDgHZA3@L|ja&3N#HSFbP3UqzAJL1>p2Y8}q#=GuRR#TvQLm@p<9rQ(`depAa6L;K^
      z`ZQIL+!t;#oKF8%N_X&F2LFvRq0@w;O{khMLqZo1Y6)E?%rYU3XbFXc-~lEf%^wMA
      ztVoz=^7BnNUh0FJAN?N9PbUc{n($Z?PBP(fCOqDRCzx=u2@6bED4~nI_MnJPI|WcQ
      zSma)J*mpUbY_3^#52KjTbcvQQYL#dyqZWylTUj6r2kM$ESvW|P6HUrNNjX52>BHh=
      z^i*1(JZzNA@p@)_ZJ{+0*Ro_Mac0{LTVF_9L&VF%9-^Q65V@I#IrQ5=p@e9GL#)7P
      z;e#etVyy6Ef@sA=p`%c=VT$O$Owo>0L;wrKDl8IfaJE>Dm7)`!B8V;##uXxjjp7_^
      z6<xSpy9-rv2mY(ZTr)t;6rfQ=xz00)c^*qYYI1E)!=CM(Ve{nL`f;YGxE~8Vxx}gS
      z<XZdj15b{<AN8IbM?aPp?ZdPw`;ak&#-{A1K`h&o<LH4pgcVIigIHNR1V1Bst*59T
      z?Y)@nVSeTiRy9o-#OhvHru3uJGlX!HXFECvaZW!Xp7egilA@vQfJM6pqqJSf)E-5)
      zwj1NLJs7X;#U$-96l#y7M0)}!YER;1Z69W9PoqYA7PZ=QSgP&E3hjBcYcJz`?G<d)
      zUc<H8>oOY4jkDui{7}Z_I+?_Z#5j%9B*q1hE-@|vi^RAHtP<mNwn>Z&!Y(l`2?yC(
      zi*-hvQ9_XITIrnU-4{QcjfvVj(izndFr86wK}zNI$;uz3RK75!a!s=G$0?OB!o?|+
      z7d)7x{Ao(%OHwM=B`bfPLK(P}DmM)q2(u99GHIrfC@hsrW@0_CJVda4AMBK|S8&FT
      z$d#k{CbX|%*S>*6`#Z*H-$K*Aqg?rZ#CEyy?dT16*mf5Zh3~!G!&lXhO$=-LaSg-u
      z{ZuL25!r`K26+Rxz89m}Awq9RI5L3~K|4TB9E3{%;{-hwL>fH8f-+&1&Wts-i91t{
      z8)edfUx|mg^(3Vr%LhG8<d$V+Kh858$zU*mo?bZFj{)2?i{R28Ow4m-Y{fWQ+}s0^
      zmxar=!kL%lF1QUgmvdI0%Xu4e*jf!+tKqU+-%I9*vYsjH^Ag$Op(z280jJ2sBr%50
      z;lezj;dC(;3&l8`C330t<YToMKjLgb^K6sg#jWwPZB0I#az9-g&zk+liLx0K<&Pi0
      zZIzZ@RFB`~n87*Jo@-4f;_a1|9820(6b<37CL-lnh<D~7dS}>jZ98!9412D9ccmrQ
      zo?eunW7&ZRq;xpF(%OqwB3V~Xt+W{-D$cQSjE**9bWDy-25B@wj?x&Hv(hFNa%^=Z
      z`QPHT!K&m~b1d5q-jZWUgsz##qL>W3D5Nf4j65+F1)>B~MJY}bWvCJ5s1+4x5Yw?-
      z%s{J{MPZzcbHpjQR?NX>QH7htT-+|^<33S??cxmVCb?(C0vYNq8r&4RcpB};cDQAz
      z_oJV}nkF$$t#s;2>GC2hG&Jupu{_Mg00yZDPa{uv$Zl3czmJd=`VK|_J4w!p)mTC_
      zhwODjDatfzmTBoBX}K$&mb<xrHgVb#yoLiv@Hz@xQq_oh3e^&1i3X~gM!3aU6s{&r
      z6U`$^xYRsu8h_0tyOP#G$E1d>tfDDg%e&jDIMZkM!c~-S)=1rkG$r4@?ckTDbA2c-
      z+JQYi(tQ?aJR;0~VgOHZ<9Vi6arB|&f7W|0u7{WVP|A8+kkN;7!vamw=bN%$9K_3e
      z`f#E_n|QdDR}xk>_F?)F<z7q3wf5oUk$b#h>@hP1ZMNanv_70_a8Ee$dA!3rByMm3
      z#dL$~U=im*73b3}UO)+dKJ|?C)H5zZg}4N>#HE-kHc--Eh9%;1G>a=J>90gkT!om}
      zgbT#g*dVUKCUGsU7uR8nxE^<k&3HiEfF0sSJT7|hoY;a_#Z7oy+>8&!t@upbhOfjn
      z{6pNXK-{4?#9d0ZxLe5=_bMld`;}?pL1l*6uFMq!O05`FmWUn7a`A}LDt0OzVwcP;
      zw~;euW?7Uryd?`MlO6>-Wg$8Fv(p@I0VBtd$9a|I$)8%3KXogt>GyGBd3J9*_{E4G
      zFqYp6VlS-Xab$`oXe8`Ku6Qc3Emh&$gh65ha@#a|f$TKvmp)++tG6Mt$-KrQZhr&#
      zHIK&ZcZ&w_eh*ws%YJtNzcmNuGd-Bh_dJA8nzH{eh))fr&$2(KAJX}30Dt8S;D_3o
      zo&o$Vai^8^B>=IXo}$mwoxXq^@ghA#U&68CWqOLff=clkW{cP1C47N+1B=C*)Xd%*
      zF$Wss&8ZPIlw}2flcI%mQ~fh<Iyu+5j~ySvx8(Bo{5ov+$S(iSK^#c&X0#08VA4B4
      ryi1MbJ$gmIPp*D|Qt=_V`q79cGJUv-@Pd97g`MTEFhxmMtZ@7XN)w{P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63bc30f3a03ac3f01fe3b68e2e52c2b9d02965fe
      GIT binary patch
      literal 965
      zcwT*yUvJYe6vdCbwpp^!wGHdWVB=p0O*$5M9`HaVM5T5h6&2VMZfiP^)RmGH?L+Z`
      z#FzvUAAk>qxXwbEsIpi}V*A|R@wv&b-`{@%cm&@-j=>wNnSU|~{3s3upZIUPomV`J
      zL|E_26ESK{RV-B8osL9cAkVOqslO;?C@4M=5rfk?=AXDfi)G-y;L%Y}#QO}z_((?e
      zhYXvYES^?9mP*D?8MYePGPlo=Z;`19hATD<EL&K@stprmhV4sA+iu@Lm7%h5L<<#M
      z)r2*MrH0$r>~$Lj6d6`KQi+4vWFW%Vd=LnRYG*p+L7#_G&(p=cj>xc^X}{QDifr)F
      z=zu!Mu+}*5T)@@X@5P~1W6G)zcGJc!+@^z(_CMXr!Lb;|`|ct6s{~VBq%hb+a^+G*
      zmslNYtNS(@+G_c40fW_>&cdO1E_KM#Jk6da5V@_C2wMS<A`uyQz_5{(pZdPg0SZRB
      z==aRgpl$=@vi_p9qE}5=w7)`cZJOukx$ZSjVSCNu8A{#{RNkGzIYsSDg4m#YNf$Z;
      z6rA^1aX7BgnoSTY#U`#pUpKIoVxJ|(faQHft@#bxZ~l=iz2kg<>5LOf?OZvhSh$0`
      r3Av7)l=md%nJMqy=Q*yZrOw9-D07Z7Q&bLaqW92D3>b}F>;ZoOJ|EQe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54792a1be55c0fab475c7b8fc31ef46c0f44766a
      GIT binary patch
      literal 67379
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLStreamWriterImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de4a722c113411bc318d51d380711ca4d40e0be9
      GIT binary patch
      literal 14899
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class b/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a14d1be698b8c013c314674a1ea28e691bb1f9a
      GIT binary patch
      literal 6009
      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
      TG~|8ovk|z3DunEUC8G4d-K?Hk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ApplyImportsNode.class b/libjava/classpath/lib/gnu/xml/transform/ApplyImportsNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..551bfc93d3a98cd94021f49e001690f6695590ef
      GIT binary patch
      literal 1500
      zcwUuMT~8B16g|`3cDJR77Ah1F5mDRHvLGlQMWa#BYDG;6iN=>@yOuTk(QFqjul^!U
      z6cSB*<iQ`{&oSPaEd_yqk}z}T&Yg45{n-Be{p|;UY1~l|VHm5sTUyJpwZPZi=3CEq
      zwEK;Qy<K)1o*y(<y_%^&W*9l{w`MvGTMta`!w_4tTr0TCAZ2sw4DtiACLkf6L=-WG
      zo{Hs~t6R>7>96S<HoZtyJVUqFb>HIWwowi?ttP{G<!oIghNxkCF1@;!J;A>kY};mY
      z(=>xp?u6^Z@=FOY#N)K2lITSrgKBJAcFi|khS9ShOSqWCIrPK{r8rF{i9t>yyJjok
      z)(k_U*%3tbJY6uA(dTYT%@b)e1ZSjJd8fbETjJi;9kbcc4O4r$O0ZP%{JQpG#?We>
      zqY1_3@^Ra73-4oMxn-D*!1COtf~ySKgD{7xv5!o@<DS4Z+)!|xVfZxNNo0{@=&GB+
      zeoYx(WdAFh*Z<I72@^>aFiJC{hXs`#F}FjfgrfQzo*PgL#k3xcOHFEcG_0&l$mXLG
      zYv?pG<lV*lUbQxC%dL|GS=7L*2EI7<Wpg5^X6tTU3#}y;iwxaDThR)KoT^{-wtT}}
      zvG}KvKKcPnauQ6@xJlrDGX2xHMrVbPMmyt{{4Uhb1R_Y#8WYB8bkUj&9cb?s1T?|z
      z#~+E3lTLjHd$o)6&+=bzVGlh8zEA8R{T2NL2im5A&@@!|)QK}lk$^d<m?zc+3}F#t
      zC}9#yBKBy=--$hiVO*l<Dh<R4`iKR%OkNRO5vkEnl~DGJJmR#^PZWys4#pSNjJk*3
      zj7sOUoQ`H<8D$6gP+VGQ`|IMM5_z#cB(`PBd<Fe@L@HM(`eT~iGAVk3S=#6DR49HE
      z#_cGcZ!6}gNO?sB(&(Ke&@^s}mds;@P*k8<x{V2Ri;zN$8g5gzD)G#bHLQNI-8w0?
      Va8S^&anBDmPHIbGR95b_^arG!R|^0D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class b/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb84b9ed7bb482a84666800e29b16c586546d324
      GIT binary patch
      literal 5369
      zcwVhnd30Q575{yinNITNO&Zcp>FY+TfXPfsfMS3NEzmTD(2y2VnkEJ0W%80tnT?rA
      zny{(t2vktERzS-Z!~zAIq$N@cYE?wh)}o>)C@Su_{^L>n-8W0p%ry0IJU!{V`M&$z
      z^>>%N@}KAT05}Q%bfZM!*q&Hl?LahAn@*asRChcXtvx%Dhzzc^qKSx^wo)zeF3Sz4
      z!h%B19Fy=UOiNi2E0k84*_>k?NSNu~+QxxIvR=U%wb|x2Z#4VO0sB5?My*uB3|X}o
      zw2&lIX)2yfud)VH3KceEZC^SZscjCY(!A9+h10!j%%mCReOWlQ!s<5rB2=k5sQ-*`
      zESz4Z&{|c@fGN~YRy6tdj_P$Zzk%j!aG+90Ic6w0s;bwOLBXfPg=s<^t;3B{p$r{m
      z(1e<+!;_)r>(Jp<nBE+YSuK6hPAj?A?2IrZmCf;x8Chp0!}5Ff(3$QH)63(V|CbCg
      zHm*=49^<>Ss*1d5O%Fz_RIg>F>#K`gPfTRJ2gl(fZXB;rerOzYRH2%NrNUQQw);(P
      z1QceBbDf<`nuEfs!H>lfrxVCu)l|Jsgr2Aqb|>>?kHwVvc$^7z#EkXSuI}7O@YK6;
      z3a<(+BqTH}L7k2d;Z%iFKY)`IVf%KvjvyE?huPI7W)vDx-QmVkrmj#%TMmC3&cK;s
      z%vlOcKY%fLLG>DzV}%<Hgh3%{MMI-PRWT!rfm|cb&XKrJ7sNH`I1j5>RH5E*q$_E~
      z6c!#S`-1TEMeT>nNHvL=H99U3G0vDZke1Umti)8_KemRc{b#5nqFXhwXmj;V9H_8@
      zXS|{X8A%c6?uy$8S4bZrvQyP`JlRvbX-TNID;}-2J!@(zJS#krQr8*>LRKOjj>l4N
      ze2n2AS2H1MIm$}r*(H~zj!uLabgSQt^f9b<`ifXn6#e9$IbKf<@rblkN_L~?kQ?@p
      z%dM_Vsdb}LaJ^B-<%m#mIBg}(bUdjrtEzfJFKf!4vkGEJxDhAh3U4LZS5Q|~5&H!7
      zDIIC_Q4Onj9X+JQ=KnWMMFX>m17Y%U8O<5gaV1IxoD?UqI9<HEM#r`IIHA;Qrdo(v
      zyIpmZ;gh)Djq4QVO=Yi+8*n2X><q`c!m%DU;dw>;Tb{jTP;SPpZrq|U=kQ!QK4tg9
      zL|>{`tla3v9c-N∈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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class b/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a73cf7ee874bebf20b13fe7fc94b5d084d97f775
      GIT binary patch
      literal 4870
      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
      JZA->G{|AWP!i4|;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/AttributeSet.class b/libjava/classpath/lib/gnu/xml/transform/AttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbdd9abb1b87029bcdfe7de32831cecc76a5a109
      GIT binary patch
      literal 923
      zcwU`SU279T6g`uq-DJBq+cdUXwXLlm%~o9n@dLFgg1&_MkP_(QWIHBXW@lx0R`eJ7
      zs$eWA_$v6L#5-e&kpv5}%-%CI_nvb<=Eu)3-vHdgRR<-8)xIjiw}}jO##R0*&64n`
      z)>+&uwCD)!pu*rE@;5w`T=m13y+aXchH5m3<v}JC!+Lv?VoxNmCD&p%JrEBVDvBq9
      zq0#<B)FBPkr@L~&bB5W6v5NH$!;7tx=q5=fPg-3PeMa6c%9!`yqE1R%t!@nr3m#@L
      zYtW(x2UUYkd#ItxP;bXd>=sE+WP7|PZPIDPWtV5M*&iQP^dQcsmp<M-DsLu|siKG{
      z)9UKzcT(g7L7uIXs9apYnuFD;BO7m!hZU^<pWt78cBw5Jrgd`+ZaxYm{eKgacPA~f
      zNIZ{Cs}{zqxM3!Ro5WnEH&}*mCPBzIbFj8%ZHX2Mlb=UO(!N5r864qMuswtyTpOYh
      zTpyzO(Rwe@e~Gw&+vItNSngsT_ppfjSf<n9cRbGEEMSq*WfmFbl0`<_<h6ox$I21;
      znY+!eVEe%*_}}5M_n0$q`!mjyZP02S;o^r;A`L6{2zBg`_+zXQUbYEZs!<Y~^j#t$
      JhRZhg$}b!K+A;tD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/Bindings.class b/libjava/classpath/lib/gnu/xml/transform/Bindings.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc75bd80e6951f65ced2679e9ea7a7fdc24c745c
      GIT binary patch
      literal 5257
      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
      UXI99e?203q6-0PK`|C&l0g%MPV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class b/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af045b2c671aaee45455f7c48770c3c5a77f75c7
      GIT binary patch
      literal 4096
      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
      F{0DPe7-9eb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class b/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa8495e5fd63addbca59fd738051feb1efcc2b0d
      GIT binary patch
      literal 1521
      zcwU86+fEZv6kP{;rwUYxl$&^OX<>k>T#Cv?&}t=O35FORrqe?iGo5LsQ!TH4ktSLa
      zNqqD{|H-(|nOcw{H0hkxefC~^?aTD%?{D7$Ok>rL4u;{9SySp|Lvd`?tnOKMSy|n;
      ztSaBIirfzm!)Uw57B5!})sa37zD3>Cokt9v@x(TRXO*lWbRrmr7e0pWoNn@sTDidO
      zEwx}!L?mZvs<Exwy7=8RdYpZ|O6hXvDatT-HN!H=e<^;3XWlt5cy*t1CzCki`lRqo
      z2n@j>JtARTK_5dv+t-bv%}s`}i-SASAI4>L2MI+4O)QK-LE|xb-4WIpL#WykbarVc
      z1XBZT;pQ(|%aw|8z~Ed^V(y*#UaiY}Q!VpqMb)^nxj`_Kv+R=cA+0GztE@=H*=)P5
      z-6AF!TB~ck;^>xH_2VW({5Z{tZu~{uZn=x5+z#Uo#%N5cTZ5-8mt^Q1tyHpRnGSVL
      zuEuFe)R&4yo58Y#3^5&FMWrc`cb8~&UN0EBS)%zlR^G8C?29L4Ld8(clHyu3exw=t
      zPn%b2dwbjt;6Cwca?wJV!K_%`IfiJwohPv^JQl*pV3C5TP;M5f#Q17^QkOj=0v?4i
      zg=wmxP}^e|_@68FKX27+jj!wCwdg)x{z(x*97F-}@z9svF#7E$q|nKPW&99<&jdOU
      zqNh(9r_n{vu<JnQB}qWr+YJ6ll!A2X2yEvNJuk<<p!Wy5Q{qfE5dDg)1P7X?0oOE?
      z`qauZNST0H1TaUe^BBScZcv9Nu_$wox%{o%Qy9hwWe*^ZQS=cDaE-h=a9x(hC|W4{
      zMIHe<)2^bZ6qK5XdZON#FXnIHma8i&W&Lw;+=NLf;RzA0QTla6@D%-oV|Yd>v$V0#
      zk;Dt?VU`A!lisi0v@OBureJ~YlIRYJ5*U|-r71ooCz8elA+JP}bnBByA>^lM+JI)u
      zcPUPAj2vNRCvxu)4|2(#w++m{N%ri@qk)IV{f$WSSA;jwOX3EQmoocZlBUcM{gXY$
      Ll3ayl8N2camQ_!w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/CommentNode.class b/libjava/classpath/lib/gnu/xml/transform/CommentNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..601e8fdbcb48054a5b326f5ebec9ac2cc75717f6
      GIT binary patch
      literal 2104
      zcwU87ZBrXn6n<_J^128{QrTiDDq^6(Qn8AJwzL#9Hl<W(Xth<B%{HuVb~Bqzo9Y+G
      zaYp`vzo1`rMqAMtN5AxgKg#jByCI-SX=bu}?z!jXIp;k0?%)6X_6LBoxSK#k;8fLV
      zYOR{B`JV1H?zvt~TXAbO)A85cikU!6V6@w0%dFLH-8ZF;Kzzw^EdPQ)G(TAuh^<hY
      zMieOpeTWMTlq|<wZ`O89Z%f~?>5(nDhHjU2&ywr5GUo4E4T008V<8m;`V8B3=&+pc
      zVY=x*w9Uq@Y5Il99@|He7t#<&rTEAycnL!SNn_WtE1u~Hj6L5uiW3T6z(9&pR)$d(
      zoRnc=j@k01RuxD$I)K>9;{mgSo-|8T+)MSk{ZPPvPKl*2^!s`%*mv}r*{JJ=sohwo
      zSSYz(ReLaRXcf1n1&E8qZe6!VjxfF2GR(SfxlSX2*9G#2X^wQ`Kr+3Kc@l33Ab~dp
      zhK@$Q;u=jk!3-vGCV?q|!T%>#FpU}NtEPYbfn$0HE&{{($x^Rig$yR3DVW1qffI&j
      zax@2fYo1;Wy~m#6eP9s`a$dpP7$dcG+4nTw!9oJ>k{AcwZ`E~wS6gk>Jq7P!Q6SUs
      zJ<F+<b-PI_PUL$uG8m3#>rRy;lg0tyB?aff!_prDZc|%eGT&|gU*v7mf^6clf=jq8
      zpjb}B^!&>v2SFSQJ#h3w)}@j$uP9i>8cSmnOsBFU&%(1x>r#>Rwcs`wIfj#@w&6NH
      zPe*VEbjOI+U0wmANXeF`FkaWapgS3Pq&BS`n{DBk?uTv9cDIb471tmidQ*mH{9cC|
      zqsJ2?K-->9uID5e&3D7ZBz(Td#FLQ6Y13_bhPh_RYi{t!Wi~7A$zOto{Kfd^mC1F2
      zlE$}?nyDv9{zM^yG@tQ6c@7yqmC%6i{vZHvqqg(63@L-o{SI;a2?noC{frl%VqjXn
      z&pbx%7rabyxUCuvRU^|scJiELCZK>MmKgOsMsNYI;UZ?S9ONDg<9Bk;;T4=>_9XHc
      z#So(ar)d?zt3hdk-b5zqw2=OL+404s8vhFuKOm#V|HQ;2q}BL7@&b#g5bn5|+Q%%{
      z=>YchOfHt|Q`6!x-cr-Q;v55{)Z{)25t^upr^u>tmBKzQMzQ?}{c^dFl?b-OVsk;Q
      z?Kp8Y!9a(dEhES02gF(={tsDkkriFVIMy+P4b0;P7Vr^!vcX<#@wAjF-NH@WMg^b1
      z!5uVl7hmI3e1p&M9p&%wc~I?F>=SG5bZf8OEh)XvoRL5(GHW!DuA&ssVGq|R^##&8
      zcjJL{of1FJ%&<XBNk;mTxHgd@&S4_E$$B=3wTx}ZuiPyn40$orCRH^1@!_aLN>z?f
      ND%u7rSeCT9^Dh@7^zHxv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/CopyNode.class b/libjava/classpath/lib/gnu/xml/transform/CopyNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c74f384beeb57ef88eefbea77ea4ddf7415449d5
      GIT binary patch
      literal 3782
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class b/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e15bc898a51f3733fd2c8de4e485a60a41e27ac4
      GIT binary patch
      literal 4070
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/CurrentFunction.class b/libjava/classpath/lib/gnu/xml/transform/CurrentFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8fb1b608d20480700213885c45e689e3b7b13a01
      GIT binary patch
      literal 1641
      zcwT)}TT|0e5dKaZ2)!s5xhM#tcu89zD1w*bwHAk&f;dG6cws_%C}Gm1lcZRGivPg}
      zb#!!e#?e=Ql;h^4rnP1I&}4Vd?zj7Wdz#;WzWo4j6L}dChRbEErq(N_>N%R_9@<Vt
      z&D9)-Ti$BT(mlhrWJnA{|I+GJ%{x-_^{OMImtpk(c(bODVe(iz(dsRyJDc?Um%<Qt
      zy*DOzk2v=jrV5>d6vOi@L+^@V8Qw#hSm~ac+Gdb)c8SLkMSl_r3@}8M)OHNSBZ(N|
      z4E+Ve;v2Qf0e7~v1C!H9!PYf%TXPKGZv-Xp$Z#2EPU+aD5>430Pc*Zpc~o~*Dfr~o
      znrE15!EkA+AYf`%S$%PE%ypkrJYUy&)h~BtOfX#Us#usD!z3=rm|_@dcFEbM$wi)<
      z#5685#PaK#Tf6(k{FcwRnOPKiN}5w9Y6I<qG9+E@J#osl3elsCbDdmBVMQs}PFa1u
      zsH-KrqHd7h*|oJ(SjM0rEhEKnvD?~`$Y7R1)&p6^KHBl)#Ctvo6$?bpHLSA9J^v!j
      zD4lIn9fW1wwme=Z=xEg@UTlpllT&?<ZrT<XoKC^%y!kW;!(IPoCH*;1Su7*`xWf-Q
      zanU(BQvr0aTT82Ox2ow}eYrtqHnm5SoM;ZiM3*eOV4hv{9OBI|th7oUM6-Q(O2RZ0
      zR7ml7(XKf<Up4%@Jlu9;=lyyt5S1t*=z&bufdB8HuY*iKVn>lPWUbP9gx>M=7o1IJ
      zK4b6$c@dnW=UJ)-9zen)s(p-M@<xMfjF1Ik`KY7{#&Dj_E>KJ&Z(N|?CCks3KH}p0
      z5Vx12!1ES7Da4a-1v3KgDy}tVToRQ4YmOE`6j~ry2*E;#F<fsz6zMI|JCXi`!B4pH
      z6?5(LYznY+kQRa^=xaJF&J(zWMbRpO+hj#4x`gFMgA)0^TH}6$^~^6QZ_$_e31$5|
      z*zW8X+-de35<OngUbbluI~c^C=sg`EguTb9_dUYzp~!twIYM?8D~*oJ4Q(UQcWq4e
      oTV#oZXc5}vLm|r}+GT(-Cww3}^rT&mk^o5t#|;pMoXC3i7itY#PXGV_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/DOMSourceLocator.class b/libjava/classpath/lib/gnu/xml/transform/DOMSourceLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a52c360866918a4b8ba0f22896b37dde2c5d1df6
      GIT binary patch
      literal 872
      zcwUW>-%1-n6vn^V#KgpC+SK%)+KTidNu^5>N{ekTR4l@pSW<F7*{th?-C3B-s(mLf
      z6j}<s=mYejq-SSWEo(p-W|{NN_d9dW*}s>+{{VQ4mt|NCYrc%_(=f2L;&O5rsnFi(
      z?f0Wtxt<fbTt}*mBEy3*KjwD8rEm9!W6#xPl!#8$(;PpFOpc6ZD9UK$F*KY=`S!_%
      zYYbh|HW^AEg%tWTL$h`Jx;-Fxn@&{}FkeFj3k-!;dr$!tR6`lF40T6HuN#L$PkrOV
      zAbrT?!GJ4~#F<#sM`FV8%DKB=Dy!jpx~GIMB-cXvUDLo~t39oSIr1LF!$7!uqttXW
      zs=ii)XQux5iT1+8G*8h@*`}vG>V(woD2PLOrB~Csc16-bGhgSM<Q=TiEDE$|l9?nU
      zp`Tl#T|t$UIXdmaq6JhtzfkME{)zepMHU{?cY#>o9g28Q#0NAedYroP2#bI@C0QA*
      zCf%huZ4(1Cogb*5U#BY>@smkYOAT2Xh9`KM!Rr}pu{^o;A8B2a&+b8fnMyv#Ql7NV
      Ta-=hrT)qeSbt<`Hq8I-F-JF>M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/DocumentFunction.class b/libjava/classpath/lib/gnu/xml/transform/DocumentFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4797a838c1bcd2b847a9c7bd3e255e590a97dcb
      GIT binary patch
      literal 5846
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ElementAvailableFunction.class b/libjava/classpath/lib/gnu/xml/transform/ElementAvailableFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98e0bb87bd31fa87ac10288d654a839c5b1172be
      GIT binary patch
      literal 4430
      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
      EA3Q-~Gynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ElementNode.class b/libjava/classpath/lib/gnu/xml/transform/ElementNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6f5f4ae90e5047b41228cd34dbb288a0113723e
      GIT binary patch
      literal 6372
      zcwW6%d3;pW75;7}nVHPIKo~;cA-jm#U|6h$iKu{3g9#uBfnX6{CNIh8WM-HJg1F#X
      zt(F!S5Ns{B)wC7s0!fUx*9Nt_wTnw#T3gpHF4byP`kgmRLNYAB{?R{X?s@l~d+s^s
      zerLH)fBwM30A{EY9LP}^+Y(B6+uMTPc+?2Rn#0jH@4}$jW`^QR!cC?FxeDV3v(%Yw
      zk)RPbg-0PbWVCUZP<>>^N`-vkj71DT*=-3Urr@bQ&)8sigGQ*uTN{rCLM>#o$HIxI
      z@OY}j(H8H<S$=O*xXqgqGR90QxUk(HOf;Fx%~&EBUlui+1MMay7AGYp;(?%dK{yyR
      z{qaCJBvMZagaYwX6<SJ;rs+}F2Pr*R(b9T)W&tS|Z189pg5fl}q_jRC3L`Y+!7kKD
      z4UQzGYj7f8sN*!a;C5py#yc=hp>UvZ4HGa?p`gW#&x=!m#zb69A5&6#s2=oolknFV
      zkxD0ySD4%yk4Jo7@5YTAr)``yO_*oQnKQ?`s<zr&m$uc36R4M&bnn!t<=?51l!M(k
      z5v2~4D2zJXQ5wont}uk!S<_W<vu#PO!t9bPej7AXI@pyCOjQ`xcdcg{vDR8M?m`7T
      z;;-o%G!!^6lTPg8O3JGXpKpc&7no6T=SdpAfRhz8QH_%8jbMT>E27^9>EXf*%$94L
      z!|TeTd1<|HRBAXyB<6?A_PBMH8>ixQ2Tr5dY(Ug75Az8Gqp4|t+@+1@k)^V9wa7g~
      z!$K_L6}K9(nsC&#M8_-ut<J}pSnNO*_h&mHrr|79Q>BG9%jz1|)-J457}_r==($Rn
      z353igiMB>FT4yu{lfmXUg7ro;Am6FU+<0q%$Bxeu5&iN6<>eU!A~{DN9)Xl5ObR)%
      zI6+>0*sBt8{$M!7^H0wftF`e>K{M8B(vZ@lg{nkfgNAynbP*}%$b}9S%&gIHF6;_U
      ze`_Gv6g5NnWLzUFhK5F2$(1XWSwq1U%N)sscx07$Nl{^QG==9yBEd}x@uL`Fd7|A~
      z&m>6i+2Xq_d8Mjq@Lcxn<6?$1BNikaIA5Wp@0fnhN>gSu!|p&E(c53<8DW1yE?a^q
      ztRaH+%t{QRr5i(LG`+}_FdzY?S1R2Ig1C$$!36D(n!KI#+M=k@lH5JvFuT(n)?IGY
      z(2iEYoA}m+3vi(Wn~C1Ehub4Yyw$s~JrdP$5iVA6$1HTEVtq<U7H4IP{w=u7flF!T
      zz%>n*;|i9Opc!h3w^|`tCD^)3!&h)M<BonwmLu!5ED3JVloMa2MbthNlY_6*@HI&i
      zc5{8g2wGEL*YFK&Bd7wQCbNBMGvQfMCFgFz4H|C5O*}W2XiS<aiKQy*F*^wO<D1N8
      zgDE{9J8_ExyI41lgia0L#JA{%3^L~h14c~BP5-1K@$JU9ahn6XnY9jC(C{66mwsxI
      zsF;#1<qe(^pxv(F4soa_7!IGGh%8Afuwr?Y6W^yms_euMvsSfLHPuqtX7>e@KyZ(S
      zyYM4wo`hgJgRwSM{tvY&wcP^uJsR%CeYE@#$qJ=e0gzqFSnSi#i7wWsKqzKL<MU14
      zg=rPeV+r}eQzG+z4Lx{(VZeYfLrn`L-5o9r22Ht$kq0$AgojyxS+X*BAghEx?J;SV
      zJtt)E(@N`|cvL}6kSh4Nr0X9moOo=vQ!ioo6AisMz&ob8ndYcgpm){(KMiM7lA+sX
      z_07i};Xp>ZKOBm)0ukqtFkP)!?`_OEObZbsYJtlw6{<GS7_?&E))e+j`<vC-jQi$H
      zq8)eSG@I(vQweiOMzz$0J(5apIsO2l8tvDAQ)@Gg{1I7EE(z;JNmzfRswGv~vXtbd
      zmo>bCSE+O(^BpIpxy^EU^HZzb^Jo0Uf!El79G*+VU-3HiZwZDQjUYX`T8?^C!&`Wp
      zk!$n=3(qU;htKLjOak<8_=f|3r%Mi9(eO{aOI-tTGit=cQL(JF-|ni^JSDu3e>w00
      zQ`+EF={i0f*o&sJp#%TU`VQ-l?|giOPvlvVFO)8SYvjPsH5`;q(!ox0iG?T4I3z3-
      zZ?Pzwy1Zd|qGfy6^*@+=F5bRLO!_4!j4L?;uBE%RDW|6L6k9CY27}&m#>2_0cPNd%
      z8wiN`iDn9S;yIUcV>bU(p{9l@4{tJ=(ill43kCxzxv$cxidb7kkGZn9SoV%os5qv|
      zoROh3+A1=}SdxwtNn-{`%2Lq=NaA}guYzx1OU49Ex#am^YfP}Dk2>5gdbrkl5-$o!
      zQ(oAw^`0hMFrA6d#%FyV3gux*s!*Pl*2qVtHS$SmjeII`bnwSknEMI=HJQ7eoQaop
      zV^~>vCyL4{I#FCUwG*St^xRI2)^mG6V|{sgo@bJ0au251;Ir%YUR0LtM@2(7rgg%*
      zA2S+sdk<zQbmNOYM+ZD*`{30bUGVi_ZVpxoxnS49cRJuIyANODo_l$24r=(n2*a%Z
      zTvSo##nkUC3`aF|u1>-dOu<r=aP(psPQr4WhFZ?lky-(RV-TwlLjyU$Im;fdF9R$}
      z{Gu#MJd<Nl;v1VqiFa~&%5t2|Umnj`Na=2JE@cs|;|bz1J|mJIW1Y5JJ8SntHPFVQ
      z@-D36SbP8u)d9DVsi{%?jqb+k8jfG?#n1{FWvvryNv=yxtxHb%EAGiSq>O3-Yanlx
      zkywlISjXr08kE!Anamfb!cR4usIqApJt3)5#^_qEnN+x(Zfi~%-GWw*0aCeKIZuqS
      zT|_qwAq@8F_Qw$13Ab*46hU5*+$AfH<mz)<z&Tc%b_9g#aCPtR9f*r4a%k4-+8
      z@>wSLVrGBV;w-Fg-Q9&tcCi=rxjV3}Om}tRN}uMrM%TJ<?M_0?Rp{%&){_f#*NB4L
      zbzQjL=juSKuF<ug?LMu1A8yvQ9^9IPN3q3MpcnLFtY^DkU~RW6Ux7GWFX+Mda=_y>
      z&-OcHTGQPJFwxVII>+VtfhbUDF>7gNcQ1zNPTj4$dT^%=9nkni`fjdjx}z5!-L8}9
      z!Co6ycA!8$d(cg2mnS9ZPJw(E_RH1xV!FhHke)}n@tCimgJG5Sil#(q8vBHd42w6C
      z5Gk?{l3}9jk~kS*!6Y?rmr&Y}i5_LgJko8v&=A4W#;A!9&rx1|3{#2l>7-|21AKfy
      z&BZ31feX3sVuIun#?2O-L;74?M!;Oo-B)ne)!2+{a3!wAR$Rwtz&6~5>v21)_g>t<
      z2)GFkU<aPS%{ah9`Ydk23*>qUx3U`VX0^NxAK-SSu!p+crHa^jk0m`GcQfDIqh_&R
      zo{PO|5%#IY9Ba_2>d>wHxL-A+M}^q6Zs53y-<RS+bu}JRTiJ--fJfAJ(mUBF?#5&4
      z4m_^zWS4k1>HDaS1i~K4Bx-Lu5J)8hL8vG3lmr5)ry1Wii~1>k#&8ho=cMv1>K9h@
      z3-wD<4(MtZeuZB%XG~Jt@C<&#pz%?=XF0ksm%9Fzl$$=g3cn+z(Q8BSd&(=Iud49}
      z&K1!58}S^ThekWcS$U;^H^zr!Dz7w9BMIV><yH{P9h0-$N+|i|wlQ6Jp)WVMtZ06c
      ziapgY_D5!7f26bm6zZT@Q9`)c7!Qnnwb@b?*uk)RiJAUS9N*}{I}*ViSg+^z;624a
      z`^e|gUHkB{?qu}rg1rMP<oiF2cq{7*orE}pYGheIluEo?7<XG3e_dEV?M1OQ9*Sl;
      z?K6d42d@=vY}BT&IxI&K|Hc2$pqO5tM1Onf>6tXoN1raHS8IsC6?l<2et{|Sd7AnX
      z*5hR&{uNw=S8*xnE4Y6v5xO0(S&q9PX@16WJJMJomBI?C6jn&3utF+@6;dgzkV;|&
      z^3tYbovdG*l~OsRC!tZ<R4y-WF%!Amyc<gTpw!Jrd6JwpO;T*Hm6upllw&9Ia`z;2
      zYhkjgr02@Jm19rFKgE_VZ@_~$>8ZC^E#GGBzhl{0oRplgahl4fW$gW={Yahv2<;QD
      zwfmL3VYn*jRzs@G3(x6NLsym$SHrv1h?Pk#iugH7J|*E5cd5}9Q6xk%<q5;sG((cJ
      zaE&FWOO5YC@J!3`@6rwLQR(+Fn(1O9K13;7*O~YjmG}hn@hRQ)8I#mOtfou*j9Hs9
      S#*I2PQBAUpIbLL|$^Qi<Vu2q3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ErrorListenerErrorHandler.class b/libjava/classpath/lib/gnu/xml/transform/ErrorListenerErrorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2cf13cb72edd9bef913f68776f5bfedfa1db5e8a
      GIT binary patch
      literal 1346
      zcwUuMT~8B16g^W4OP7UWMXjhUABz2euHch_m>5#jWK|+f0}sYbm!T}#?&|DT`j31j
      z(KJe;@BS#`oh@yUR9Ui_&D=Y4?m2Vr?Ed=w{Re<mJl2q4C^x;f*=f0ED7hCL__AeI
      zrSzrc1flSRjDi>3+joW3kYt!X;-9$ba<6H=X&ebV)G)@7^<^_E6Y!3C9>Xy1o|R%)
      zv=q4WKfZN_u?@#_!lw*Ng&6ybb%x}ozb|x*VA4PeQw$@8Vm$>CYe2&|L)vmY@w(k=
      z2wCF|S1@EO-{x+eOGm|L$z*uw1Pm+I6-*()+A)`&<24x;3f6fecAo8Sa~X(g#}*$#
      z$M+(&`XCH6+`ix)K?chj?l2UFSy1cGNK1dWj#=DO=g(2eo^!o6)efb9tPV)*6PUw-
      zhIxkhORY6<1B>Lw@GcCKKm<Cnc%W1)T~P722aMd#U*Z)*LaZ^A;?pyX3UvZ?$`u1;
      zC0{?_A$P0&^dke6D81vir7gA`)%V;#yIWD*1fwfOV^m!!b))D5O43L{r_2P+wveC)
      z&`VtyrSey#Pbf;@8oj3o3p^pjIw3ZYq3C9BH?Cs_h-RuP`9hwnwObJbSr}FSNOM&q
      zU;2XdDQ5S|UEKYKd;*^_`RWwez2z?M|2!c8h;oK*LXSEV$=sw&l?p#c4lg76xn8*e
      zeI5@{h{#hYqC{x=GsG9N98<_PW!@4=jfB)=3#r5xV#XBmjxz6wgp&|Ewvbh*mahE)
      Dpsy*<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class b/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ba63386b77d9d6802c403278a2519b520a9ef2b
      GIT binary patch
      literal 3796
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/FormatNumberFunction.class b/libjava/classpath/lib/gnu/xml/transform/FormatNumberFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02e8c1cd282aa3af30fc60f3b180fc190a72e5da
      GIT binary patch
      literal 3272
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/FunctionAvailableFunction.class b/libjava/classpath/lib/gnu/xml/transform/FunctionAvailableFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f73e2a5fbf6af394a07f06a5614792de38ea2b66
      GIT binary patch
      literal 4586
      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
      Qe8Zt??kFMT!5-m#6La5<b^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/GenerateIdFunction.class b/libjava/classpath/lib/gnu/xml/transform/GenerateIdFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d843772f0944d9a8765316cfd4a628177c9e58c2
      GIT binary patch
      literal 3112
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/IfNode.class b/libjava/classpath/lib/gnu/xml/transform/IfNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4abd1d272a0e9eec29f507c233dc0fced289d30f
      GIT binary patch
      literal 2314
      zcwU87T~kw66kP`b3Gs?Zjgt6<MQcL9*ix+}ejqBAHh?x51ZwproRF(G_hxQxX#5NP
      z2mXS-_|VSO(5W+>_Qi+(s7}{82@pxd$t2m?XMe1<_P!_o{`co!06s@Kh#rBFO{bQs
      zm+h4AnNGFndgau7anaq7K?DTObe=BDa>X`%sbT~IzO4EJ$1*#C^@{12Qupc=FD=l2
      z-Eu7drof4Kw}3>B1@5p;7`-@TAP7UCH=f81Kw!{7ANmE3WGqK6*2;P5Et`3pJ%=-H
      z!L)OxXQ|&UXTUF6Re@OMLwpFQuVA|lV`t)BqO$%=TUJX_`sqZM<96EVFpgs+h!e!p
      zNz1?|hzi8xndjz~nX*l1Gqsd|E(`62+f)dX>`6sFq-dWua0X`uLWPoLZ+OxX82vb$
      zUYt{Hj}6c|t;(D?a6y#`II`|5?|Ff6b(bP1d$0tYgQvoR8}98&#eON^e?&CRwyw_|
      zvn;C>vmjFs7ip$5uD6-`X{wOgaLXx;cz(Xq*XdFF5x!S1$ck^dPBn;2ly$F7n;JWo
      z^mfD5j4m78^Dii-+%oMN<<ev6f+o>9t02A<IJ)PabzNJUEIWm(2EM{I0VCh^<yc(m
      z&0SMnrwycWon4={&IK-Z>DpyI*3=|#8n}fdx7BP4A1Lc5?c@Ohb4~@<@i}V!bnNd$
      zXcd<ahnS~jtCi}nm|QJJA5!~~weq&*Y^vN2Oe|fk6$-Md^4B;IPZlL}>ERN^4*=B^
      zW63}U3yRkgn{SyOb@AP-@9Boe;_b>ey;S~@!14X=*;<i}Ls${$v5H|VV^uvggcON)
      z)=1=3#196Z;78J>l+xLti19m}4V#tIAv~k#>OQ-na`P&;ATZIb`iE+$M5z*s`x19A
      zfCCas2EIp@D&=cTANf!yXOMMkUO~=T>f$@pyxuOUXk6x_-^<%wU`XAbwEFnw)k4nz
      ztvU4Y1%$`9`A)vU;otbH2S@lhs57r2fN932Spl4%j>b_81KLtm1ub4St(reGLubB)
      zSRMZzhm#FNwh>#Ped-;KOsH@AM&IC5nqw{3Skv{{#IL&uVjA%+cAmir+{PGYF^)U9
      zin|)kXba&Enrpa-xaJy10%tYWaU}UYK`X$MNrg~cApbBurb0Iv2}JrDNKJ>Lp?@&-
      z3WL$m-<WFP$}bq0jE4Te*H;H31FvwZi9e#@Pw2F0e>B*@jV6nTCh^|Eo|tn432y!%
      z7AWE(&S8mQ7YOqKE^*9Pkfp@SB>ITtvbc{GMm<(r&DR<?=rNvQUDGZ$!SB*GTeOum
      zLz#NCHA|s-wRIQwNM2cUwEDDlpQruW`i54JxU$4DPhk?2@mqWc^{>GvwKddSYf)lK
      zvUeD2&2{k=`U0=VliPUk8t*U8Q=)sur7+tTC$@_@hKEGTD@3h$t4ED_Dr)jAmRE;!
      z+jyKw4y`w^zLFe%+JL!|R9zd`SV;~&(e4H|_iu|5XOnG87=cBZpHrF_Z4f3~5W?Ih
      Mi>C_03thwhAB4#em;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/Key.class b/libjava/classpath/lib/gnu/xml/transform/Key.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4c12046394e2d930669d8a6e3e9588ba92a1d05
      GIT binary patch
      literal 901
      zcwT){TTc@~7(LS#3hN5BH<W6NcwxImH$G`Bm>|)_*nkGpgeNmyN4jJ$&F<8cf29eP
      zL=)q)Kg#&c6q`kXhjz}+cjlZkXZP3dZ$AJ$LMx99L**bGI-|gMWX!|lV-yF@YjKoE
      zj-hbKKXJ$B;eoT;I~1;D$b~!*47H9Ljr2LSlMJ{koVPm!+YB=Smu{b7sq<HRG~lxD
      zyx~%cI3z}Pn2<{OpZSZ?Ag1B$h8KGB8N(~<5}OOO&y#F+Dfo8uK^Vwl(Zm%LD1z1O
      z&V!+7Vg|Dcl}+R^r%=_zJPd}#ju(oZVbBxtJKpmta<LP+-0$+(Q_rWHIobD;^mWfv
      zsS0uZC?w)z>m16SJn}`-7ecn17bqC0V<nG9>TR95wTT*TGgy<p(r+v!nJUD<9i?}d
      z?(_fDpaSlzl1v68nTBJiUml*=d(kj<#Y<0>GDpE5syJ97!7P1oSrk;&gbJ!?y;9Az
      zX6Q$L#Jft!r{^54W%~pRc594l_WBql`@tBMFPgnX|5efgo)GgXskE_x4V18n>$Gc6
      z&f^A_0gaR|(?~gIG*aFwR}D8$o!=8n%^Kgq_U&UbK1Qka6}Nt(POw67^#u1mPeT;7
      e(H2QQC-ZHR+R_246Pam%2G(Ga2}4t#wf_M13(GSA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/KeyFunction.class b/libjava/classpath/lib/gnu/xml/transform/KeyFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8057652c93a2f4a662d3b1d65642261aa8c35d2
      GIT binary patch
      literal 5017
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/LiteralNode.class b/libjava/classpath/lib/gnu/xml/transform/LiteralNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c7c1e8e712481b9ba530a13c99b7ad2a536bccf
      GIT binary patch
      literal 4966
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/MessageNode.class b/libjava/classpath/lib/gnu/xml/transform/MessageNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b07186678dbb834f9517c744ea40bb2cda920a1b
      GIT binary patch
      literal 2468
      zcwU87+g1}-82+||Ofrlb5hxK9dQcM*NUNw-v>s3@ZA57hib~tbWD>?sX41(-;|ug1
      z><jd^wiUFl)z#kgq7T*8Z|{W2B7k!-`=5XRhwnemzyJO5CxB1zOv3?z;}x%wYgXM{
      z7?@tY><87{9lKsPEB1n4vNc2mPIQYb+0~kBhDt^t>iU(69S9uDKQ^D3xkl)?ImvUp
      zN-nSNW(4A)9aJ5US_0yMK<u*RI-V1LCeV{gFAGFwX)T6>0!Qd^iXNvr9(5eX5e*4}
      z;k{fK=*LmIsn}t@jb|#=0_2*MDue-rXVQCPj6-11Krf;Khx3kSFEpw}J6JM{E;0A#
      zeam#0&A^f0ZD#axJA_E;L3&w74@L|OLzkwG8_*ErRk-fd1;+CGrkWY*wOrq$(QBz)
      zL<`|F*RHSIcE}L+ugHu}?;lDWNr~g6fm1lmgj?&5TMBGXVEo+{dXP3Sj`!oFPD(Rb
      z1C!EB#Iu{B<Yoo*dIuHzWPj8wb0EdEl7GEcbDs%>?}$@Xs;TZhvuf9Cre)_A7f8<J
      z{h*S2de+L7{Ax}io}cgLb#r8&>9?AeT?-xGt7|wfkb3K8TQ;^RJLrgO_*7tEyUm-v
      z)u`HD*oRBFtbs8mcDgih1?-Om+w$&H&knX!*vYAMem7$?eYk*Y2Cn0Vz>pQ#EXvm1
      zTwqpO+T(j@Z%L>U-ZXFvXW3b%%(#xvF|Xk^dwDDG&6*jm=WaD?9G@@nr9fX@jmfg<
      zHrR=$QoE$Ed#2=c-Z8L%yKE1~EBl<I-9~RYjzttSd?hftU*!!f$-&V(8>2+KRkdqI
      z_Gt?CmgRdP+fz;JPT*|7n$JNL^Q2rk2GN=ssATrZo-Q~=E~E-COTNX-?_M0vQMpru
      z6Z@BdfU2ztmw>wRK~tgMqS;reT@tH-H$ywwHyY)#9mG)7QO09A=XWLL8mK}>#bVnY
      zQ#O*C?Y7xco{2$|IzLDqZp!T5o3dM1DzZi;Fsz<pqs&&`OO!<{_>I7_=N!2%6WbQv
      zlvKgT+$=r(A01#6T)d<ba%=MJ<vR|!%KG><$x}Y@e&ZDm{f2=TN@<91ohNXS;^*+5
      z;>w51udO;qj^ybRn>aQx@)DzObq^`$R}jHfI=iOyhg#A&fiY!CSAe8@uEVy?AE_rb
      zr{6%VPW+D1O?+^N=STnGa8{m~4WwRTf@G%6%CuNh*<U)|kEwufLQd&X;vD0Ep2BUM
      z!Ms8;-ty5wGL4){n1K|3;HMSNGdRn0npA{0=Oj8YO}rB2lNO@IWb|)bc#ghg^e<fa
      z8G17M8W#mF#gehtxJn|fAZI5BBZIxkxY)pKGX4s4m-JsTkkmJjmmxk!EE9Q&d##v8
      zCF>^)s>s@!(WFMzx7j_9gM2SCe+9;~#5f9!=|0j}=E7XzhWnb4uHqgZkoyQ0*3iH=
      zD)w3{f==vD+ObROKJ^bMYK0bh6tzkl5k);D)vKsSyp1Yqjg&^;=V<*~W+#m-zJtk{
      zU&jE7^eh{V9o?>PomQoX%o~(f``0(&v{NvgNj%)Z_bZuxe*?9ZOkz!aZJ@rhtVNo%
      gaD*m@IWJ?Vu(Zy$2FtWV)7exFLgZq?Q)Q$1KU@+_-T(jq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/NamespaceProxy.class b/libjava/classpath/lib/gnu/xml/transform/NamespaceProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfde993d73dbd534c908bee98811089a94d7363d
      GIT binary patch
      literal 1109
      zcwUW?U2hUW6o%gcWD6{ytzEw>wzV#xUA3ARF`8J@qz$P=l>3EFaqBWemO=3sd8>(E
      z^}<^df0XeItP6-u&1N<;XU_Y~duGnhU*En1xP`k0Vhn}0=sSas@2J2Py?q&UoL#rW
      zdtJB1Yk?fRHIQI9dEmZw9p4pg=V|kRx0Hb-!>W!BhHCLgGgfa(q4+>CB!t}K4D(eP
      zw4FB_EoV>CArz}HBp-OfQx6#y?b+>OgT$LOOCye~i4<}Sal6<^fh?IYFvpOudV=rv
      zJ53%ucbop`pqA@5+`!Z8Fqlv;y&l7I^|*S;RKCqs6nyb)n_<naj&Go@0#CFn#o15>
      zXK~)ZIdb=RF(xj+B5%Hwuln6-da@hveQ%(h&mb96<fb-E(D;IhD;i{uK($b5iYa0y
      z(r_x;KH7a>dA_r)c;G4-RMK>>YbKUprD3CFphyoh&fAo}PjBx@(KAuTb@J9Dmd}+G
      z3@ekTjJjm%lsZ>*LF>3_z+uQvZJ5-Lw;ATV&<TTO|I;Bux-R=ci*I@QRTrk;Ze1%-
      zpeo`tPSBXwO+xLSppk;EFGI5}#OMRkr7ti`<xj|epj8Z~=$|7kaE}!CNl_sJV2!e|
      zfYZQmrm2j+McNxNcS5FB`iT4w80;OgdRjijnHb(j{3PWAk0!WQ#I<k{mxkP>|KVPq
      r<vuxryBu;?uo`k7humDL{25oj;@Tl@uo>RY1TPoyauIK1n1AOtsTuDv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/NodeNumberNode.class b/libjava/classpath/lib/gnu/xml/transform/NodeNumberNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eaf5e4a9cd38c13cdb27d495ca1ff519a172b8c2
      GIT binary patch
      literal 4740
      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
      O-f=>x@M}l+yZ-@c4w5hc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/NumberNode.class b/libjava/classpath/lib/gnu/xml/transform/NumberNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f2a9c79df542b9efe2e38302087c92bc792cd35
      GIT binary patch
      literal 1879
      zcwVhl-%}e^6#g#xRhFf+2-;|=s92MbcCA%FLVr*oHgyZy&?r{NS;88&v)RpTHZ}U>
      zzu{ltj1P{^Sa7V<sV_eGM>&3HlO}1&$cqn```xqWp8K8eoD=^3=l90|F5&YOMikE0
      zyq3|fyG9sTUh^wIs2iKD`mP;p`g?W?afP{~9;>@e9;#vAQz7xda$DS|%%}eCh86A`
      z8|_9=P)M#go)cbG_#!jR!94oNwq0+yR%lE3f_dM1U>UCE)r@i&I9{z#8e+;;6yj_2
      z*AT;)judo-Qs(~(J_?1CIub}KOqh;mck<u1c3mbuY5G;mtyqC0=dLjx?mJC|b3-Wf
      z#S?kNWQ7W|$B|`Bp(XDf;ixd?+F@u1l};^GN#S%Y@LLUjE!zz%utGmj(0exLTPa=D
      z^*!#_hbdJKzj5v6zHNtv>~Y*QoWpDiuaex+8tZrkuPJ0Q1H89(@7vYEzymEIYQLf5
      z1xyKgQ^z!36!eykmvBZ<R!6#Ho7eF&&S*pzr0OTcX6SeuQwk@l`;NO8*q(-W@NNp1
      zS&skCLztc&rMDq*7IiF1oVaJVL$NL@Xw9A~!;3qhnnElPw^Y@yH(DWeUN}Z)(+_IK
      z*O#ltp3gQBVN0d#J=Rj&Xjkn<==feUg;i=PO17WR<SDX)p1TxgO~*PmsD~|+Y6%h6
      zV%Sqh3zWhK3a9$!b-%^-mZ&8ix9}me`_ha0ne`bGbV$k9H574Ms<laNGwa!k7(UYR
      zG47D0<AvQOj%Bi?NIfrP0irp3K0KWoKF2KP+TOE+(S41hu=nhTP6qs-mHk#wwTq67
      z>qLJjFN!Zah*9}-$?RqBiR8o%qh*xnJK9p*Cv*7=)A4j-I(Y~!H~$dhztB2@3I079
      z-6=rF3Qpq+BLO!%w|JfeA|%mOgxK-CDTo~(-JO(<M?6C8c=`%r$489VtX(!gl9%|K
      zkDzvPzhZp;05jZQ=bGa>&z0fI9U_05`^CR7k(Zr*mmcCh!iBDBp<{YK|8p;o^U)it
      z%;N@MUc)T$9D8b>bz5XcSJ?@-U`F}Pc6jviGqFqs_|F6xs?f>r3U7?y8d02Iu1C>-
      zA{J$qgnfQyI(~o~%ZYU2PZYn$SUT|p#UF6$5sEwcbmBMMJcPNNjQ^qS#L~$FY;E<~
      zc2v59ag;HGZREJ;ad$xdr5?MbE;~VG`i?~CF0+h9s1m6^&P-SE3FGFe!Kc`XD)w3Q
      H;=O+Xp`pHW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/OtherwiseNode.class b/libjava/classpath/lib/gnu/xml/transform/OtherwiseNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6daf9e52ae52dfccd797464393949b11673edf3
      GIT binary patch
      literal 1331
      zcwU84TTc@~6#k~&cH2@#D@6(_;I)O)E!2C7(I{xO;-!Sd$7MUVYxb7iMarwcNE3xb
      z6CZuh|71KfTM7t)CY|~A%(;B$eCPMy?>_;|<F<+z!(_+V(0aC|g}&|t?_J;4UWHxm
      zZ<+yLaob#l!f@%Z(<-+;OAn<FLvqn{%<ut2yjWUeP#%*tgE-PzB#>knZki5X*|68S
      zzpAfW6p?GXhHkCtzA3)@MkVZ;0mF3j1X6W|gkiZ3g*+@C;oJ(hEFN?@59_5Pp7(RF
      zXTXq7(~-;K97Y&YM%T33K6e<VP7aP^G>g+1P7}(BG=(h2MH<E7y--*S44Gg+h=zGQ
      zVVa>Y+|;)F$n&f%hVX<In;-O#dQZMPy3GSmH@Nm@g<!qu`W<bvW@v5K)+FOb<FM_p
      zMTnSL>KWV%P1gxjTwy5gmDx9qUBvx?yBNx~EUsgUWYVJ^6kG1e#4%i{Wy5tsnws2>
      z|0&U2JeQV(H3(TkousFeO5{BxM%^;kEz{|cexch6eF;a3C0S6jbf=?5)_MvxQrz9$
      zCu+3iZukaYHsxL(ShR|WMwMiZL;Mu_(?Zj?N=T!d3Cqk5QeOzfkfAdvjq@0yGaEV3
      zeM%;vP3Z@JqLd<O^#|Cy9h`YN^A%@*VYn>r*=^*%;XJ{yzG*BnO_V<m>Wot*;0{u_
      zOIhz>0{3wlbyTn@YfnY_2eqrXfQwW;g(5Ctgt7pW<Q2oTY>iR0VD^VRQgqiMMtMo7
      zJeODUi9)iVZsTgiD=%psc-R|4MN)V|374q+GIDr|QNjg0qmm8Uj^~)g3z}gA3usF3
      zw^7*v;aZ=tKsShVOrjEIWMegoFH1#gm?M;ss6wwvi8MkgMOR6RXykK!z2dory(va&
      Qz22u*yib7Pru4e?58VbL761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class b/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7352637c78f16372f2215d7223fc1499bea43a16
      GIT binary patch
      literal 4111
      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
      F|1YaK^fdqg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class b/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ce2b35e6bd197d404e6b28ce3a96de8cf5c1ca3
      GIT binary patch
      literal 2568
      zcwUuOT~iZh6n<U^N!ToEQ=vpGV6`+5FjZ-_#BV;7HlhdxQL!$YO<23xT{oK=d(oTD
      zv`+a2{RQ5(GZjmn>9jXq^hb62yqgfIS+E@@*|X<8=e*B(&PVv`@85n0Z~_lwXcNek
      z>}s}Fwz9sb*_EQ>m9sZIM>i@J(=N^072m7szUkO=PQi#FBGBLJuxONBOY;qBBM`B*
      zG9StO1MMp<YiV{VyWo3_mJ^7cHEq*BFVLNCJsw`7^CV*^Xh%Xt45~nTdU&Z50{c{S
      zAS$pwZ`#IOwY+9{i`tqMT;%AQwWN8bd~YZt{<>Ka7|Z{U^oXxRw;Y@97t<k*3;tuv
      zsH_`?pBoN2-pN8vA><yJLR^CHRguCWfw;bIS_RLr1qR<7p&f@+yp4mMlzL^D0TqKX
      zOvE;7zSIr~D3vBE)@E<iWYd#ov4V5Sb*;w&{u}ZPic|~EWmPM#rW@J$If}Ww<CU_H
      zPU+c#Q_cp6XJ=b=tr}TnWxA#tuH?NE!>~a5)ipcV*p>{hX&ysH;NZ@fQ;uFO8@8Xo
      z7_u=O7dY_xl`1~O3F=FRfBlhdc-t<lOL{mT7A%**2u`UO$44xq?inn~_SuZ5mFnJu
      zyLfL~1SLGJ;tYn^S(;>A!3566z)B>yd9S&ezn-10xt@x1;AkW&!8j~wR+XJNln$Y=
      zb#^4+iz+VRvOr%QaA=<k%!W)}$SnTr*3eKnN%@qDY0L<yrd=^S|FXe?5%rl6)M0tF
      zsASBmDrWI1i6CW$U6_<Jvl|gDDo#f^SVMh#^e#t0cWj?i6s(Wd811gZ?IC6<S#nyV
      zuI2?bPsq_*FxM<{!K(_IuhFL9=<Jj5R^rqbn=RA7cf$y@xu(F;|3E&&`cA!AoQQNt
      zOT=)Gpk7yBt`>`i7sq{`xy{I9=Bv;OR?#EBbQJ}V$!NU}q%=L*dQUxIE)L@8kVK!8
      zzNYkjATS!X=XZ-C9W51iaF?8}Rf`<Z-AuVd7M!Z58#AU{_x-yr_2V)C7XTyjSC3mj
      z{)|wH@Wbs)O(&%pwDAv6MxOJNd4{f^`PPR0{N5LMo~6fm+FoD;pr>w)w~zz^Nk$cv
      zxUU;AzoVb@9Df0^GV%+$o}>F3pYOcH{!#hNY@+WO-lf>zQ1#bUM@D~Y-hL=RI|&t2
      zj6ID3VjaR2oW#`t$zc7CCX#WyhoeNGB8_A8mN?(1M;kr}vgWdt=tPCNC#cyF6Y*5^
      zPmKJCL@N3RMxH`RMYk|2Fwt2@do0ztg_C?&0@R~p-I4B&lp;3qaZ33WpD=*5>`KMA
      zaG{-Msn|;-Q_&QKEljp!`6&<ix`iukSgz;W9i-cc6-~t$>=orp=;rqgrZ&%{Z!(Q}
      z9L53@Tf!)AG5Hmo#%(UsTils<NzFZ;-shW!5_CLd^VMMB8x-*^HQ!VI0qX%_Uy~Z9
      z-6U+IL70?2Lp~sE1J^JY5W9iv#1RRkc}g9Dbd#siKw6*_qvaDUQWGai2cHvVCvo;-
      znTQnHoFU%ZkpB~~w;SzIrI);G>;+a=l3zTBmd_lxvx&9kOtQF%_2rD@G!PD~2I@_G
      m`FdYi3|eL?HZOB<1TL%la7TxZHPTd=VwqOlX|$6u+<yS=*M9B*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/SAXSerializer.class b/libjava/classpath/lib/gnu/xml/transform/SAXSerializer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46a63395c04b69958e82017ccfe4b7770a8a3250
      GIT binary patch
      literal 6506
      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
      N?kIs$B|=b@{tsvmski_D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/SAXTemplatesHandler.class b/libjava/classpath/lib/gnu/xml/transform/SAXTemplatesHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9264e76cf53aa12f4a642e3c90d263ca25fcf3e4
      GIT binary patch
      literal 1782
      zcwUWEX>-$76g|)Jk~m^ZfyONqK}wOGMP(}`hR_h=HdB+*I!&R=2O&Q@YPB$uOp<>^
      zXCRq@nevgD_CIwvPgWe0Xa+nZ>n-P=d)|5X>firg{sZ7LzAYgqaIx$6%q`C~<IwV>
      zP7r!#Yw_Wl^q#m@ETiu%zwOGfguK9~d(d{^nQo+T%TJ{rw;cbk5{d%GpVm`r>i}EC
      zm4kEwrH*CCLAWhYYaUjxwl|VtqmNr5L0w=p+KyuBt+WLunkt*=T7K7T#i8SOxnI2H
      z_)feaFl&4`ZFOBBzZA4(86!BRVI0Q=MvUtE7??&w38MnXnvO45d){Liu33*=sRRVJ
      z<*r+yqvq*iKHhL5flC?LGi;^e@ve+pgF~G(s)vuIWPGAw3}wQjVfZQIFj}2PBk3TQ
      z!1<K*;MEKu^)gfF8qVWFU(vn5?s>dgfl0;&Vb|QeYA5%;w^J|SbAfaF=~rA=b}hFR
      zlW=*<mQP|Q@JI0li62;DL}_}^(W7|VmC=TjvF`YG!2B|%?^7_8?`KM=QEryjB=-;Z
      zTR|_h8BoQH3YewU#yk2}d5`rhSIRJPxr8rSrXN}v8m{0f-Sp+=kej!SOf&n+>hE)U
      z6xRi={p_o9(c?h313!wxo*nD)9!Bqkfv2lN(xvJznifjSQ!d@m@HK7<jHxnTvU(9q
      zZf3X$);7XmQ*qa;nX4tR=B{T-+_zvU@H<Yo7h38H2Y1PyXa}~y>FjzC$hGOtROb2L
      zxjjM!b>GN#>U}a8J>o@Orju7#D?_KutU$uc{j?27HRxnU8_p>X=<I<JJ_Y1(Ts1w^
      zk6p+AJfCrB+&#ikgNPj8<=QTe)}~+J#NV9d@Dcxyk^{KIh(*TU#YxUi_t7}T5t5N&
      zrwjNPlPRZ}%z;AfIV#Tvbj4(`k<e&;KuW{!G0vpH3#p)@5>we1Q%+XDXH0WQNO2&f
      zm>f?fK8w#%uKy^#$oEoh2j`m8Z*b%lrXEdP+{LBWuTXt7tpx63`aa($W_B?5Y<1$=
      zd|rVnd4lE(mBQ=}zWSw7c&)xFFxaf~si0co<^u})k*R;;T8oHvA|7(@SIprz+{Ewr
      v27e@i7y43C!3EB5;da70#qk}o)=(jOk*?1Xb(j2kGL#u}k9dLQ#EiyUCF;mx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/SAXTransformerHandler.class b/libjava/classpath/lib/gnu/xml/transform/SAXTransformerHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a70ca1b6dbcc9f89fa591b2f50e8ab05a59e2ec
      GIT binary patch
      literal 2047
      zcwUWFYf}?R6g?ecB5@RDQCWO|qL7zH!By8ND<UYGpc0l{cE30#V;oIpteJ`8FWRqK
      zB~YbR`rRM3<+(i}L>R?XrPFgCr%#`I@8rw>A3g!Nh)NPMh4H%6Dy%jeg}^f%|EcRW
      z3zg}=mo^_P@2=_88kUztT;bSeaLsKN8oor%zOtO4VmmLANGN2Vo3G5(ZFoK{I{_7v
      zPt9uJdT*Fk+R36TV=j!FZ@z3474`*N9)(k-s3W_QnX%V@;|ErAzNXNx!wU`5sTV4N
      zXFGNJ6Q1R_8iB&`NU%limALD+V+T_T3+bOHyeq%VvO;{utywAb;1>gZ7*Oa*XO?@R
      zaKu0odu2Chpcg5HzLM=&3$5l8%Ud#^G%UH3TQwWYrf17@+ZYd?*}g(1f@oxYMcBF(
      zR60rxq%%9U5+Wl8_Q7Dd-yME9y)#;Fc7UK=rzwoKaerL0UV<;St1_JaQCUKr(gyb9
      z07+R+?Y3KOHQAL4soB-4^)j$s$4??p4PCFUQKTiMc{kl6{dof!45SEl!QgmIgo12=
      z4U)Lzzn-k>{@?Tzleok_jH0N+9+WF?%d4`ylejG9y~3$We*?9^>KCK*OW}7A{~ATu
      zMKc4}af7;boC?Kg-9k3eec918g+DNz#7!!@%fTHD4cx*>YEIG0mhYQ&-Z+Qba^uso
      zn=^0+cS%u(XvS>$?9zO9*DO8r+}F~*#Z07?Q&DrPoQdc%D8y>)_|eFVeNzdBDofrv
      zKYKO7w%8CurSCNmBT^ywoGs%w6ggz)<v@(E#d`SNgE$V#c=L69P=*`w;cV$&wlmiR
      zzkT#79O7;TF=o<|-9Udfw}!*n{2GqFqbY`8x%LwhnBh80z&S$P!4NGYVH%F%xCZaj
      z$11&(gJayEz{&P81^$X}Pxd{A-*&(g+IU|B8eu>iknNAt?c^y&$0S<#4R29PY3oDg
      zJkkh9!l(|Vgub~PJc=_BM2>DJ@@FKGvlxpaGQOS2Kg{{}J48f!Ihd~l`m(ge`IOVB
      zYut;LMV8=Pb{&P%M@+8dM5zt@Ru-apF5~OC`X2`A%&p|sF|~o2a-N&nzw)2o5iCx<
      z&T_^=N@FYn@R-&rcQsP7=&jRkV*<}{6)$iNO-=U_iSzh2-CnNqxF`P<EaiQah&V>t
      TWh~G(!6HAP=2G5AT7bo`GvDee
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/SortKey.class b/libjava/classpath/lib/gnu/xml/transform/SortKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbcaf406225e6cc44de30dca08322237a23a3b60
      GIT binary patch
      literal 3065
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc3e5b80d207a035fc929c9975d275175a0b7174
      GIT binary patch
      literal 17808
      zcwUuz31C$9@&C-c-F+{~OUS_j%OT;ABM0FUA)FyZi9$FMKtP2hS;%6Njk_Bz@2lST
      zi5F<qSnGi(0R$DR1<z`$R(n{jcU!eyty&NMpLy@)APK+rUzvULzTf%IcV@mb^PTVa
      zrO*HL*b_uF#<<cXVH&)qp{Zy?eO*y99&Sjij>YSXDwFX@xV|zHkA~}_n<8<Od`y{Z
      z!|TFDb>W6JMe|mzjZ`O@{FU=dO3RqIoGHCD){sbs8<LB|bxjci6XY`aW|mYOtN0+`
      zCG+Q1Dn48X&MB#!tuIAP#>|B!icSG~d|8#E)0m`efnrmcde5$!J7>krdGqF!l~k-K
      zsj6C7K66o3StV1CIgU(C$!J~C+;HP$rWA*E(ZX`{=5*+t9Zu9%Mv|bgA`R8CnrOos
      zrtCTGDnVtmq2H{o4aXA^XxG>6ZivQ;ytblJ_o-wKn@F5#&|%5SToO?G>VYt&HiYXV
      ziN<hsB*E0HgLreI4W~qE=0p?9+K9yJn0i*%gp=V)*f|<&D65OqM;elyMwQ0u>fC;e
      z3f4pu)!}%}tjOwcQ(Y3Pk;DkB%`&D8EbpvHbzL|fR%)iS+GKs5D_#vuGNrmM+7L~`
      z>c)tXiy>|)I!r2L$~x49FmfstP?1feDUT^I#Tk}DOk-^dQZJLncNqh-r_wkovgl}x
      zXo%IuBdfJxl1;^=>V|6|LvTcg#c=&=^2lYDuD>q~Z%m`<RASN$INBj=ZqrOE1(U`m
      z=sK|*Cf%^@+GG*D*dI;QhZ`+A7VM(+Yb=6Sn>CKvA{HGF;bRW9MRU>75KGjCYtS(d
      zzFHf%Xo31ptRAZi3b>!t)LFC$&lsLd@NB|!DR|dJLA_j^BGS-g(MgWaMXKQd7OlW)
      zU?Ib+>hvv)H|SmyYpC03QMHQL07Wf=FIn|i<!ECaB!DXi5|KJbv?zLFjmb6fSQAt^
      z1#fPTva44W8r1_VilHYN*^pG*T68LURy8G)+LLfrX?<Kx(FC!RwHB?{Cpc`xsD@ZP
      zl0a6l=rjnlIu4h%=nSAWk<}4sc9u$09gj99)i2JmsW<hp=sc$WwaH{-aZ%Cw_3KBi
      zA2%u%UsE(@(xgd68`K#!n4=Amil+Kik$9ErukjhH4%aOXBMsr*Ycvw-PfQo74_?eP
      zVnlh@Fz(voxOK8N3hjo@`R^HTawm^$<C01S6{XOXbhSxWfvCG^OxSb{U5jK?Hg|s2
      z(iN3uRfnc3O+;#&>unlBLlwKxrr|V9vCTFOq<}@YAX}7I&MTZa@u*3KV=TH223}Nk
      zOyR^-+Cq1jwDpjL?22d8o%C~9KZ?+gBg%V@7}-??o#bwtLew{vn&}rN-OJSHa2d>|
      z`{<YOPuQpe>&!H&JEI&vPwHe3*wl~u>tqkvw2dCtG#FW5)|x(tj5z%G)�-9<gZv
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/StrippingInstruction.class b/libjava/classpath/lib/gnu/xml/transform/StrippingInstruction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bf335d82005cfb908123cc7b1ae87f6b66395ab
      GIT binary patch
      literal 703
      zcwT)`(M}UV6g@-NE^HTCi&W5x6_7wl-0)z8XiN~(q)CG$kS6*zU50kZ?rbwVHTcGF
      z@Doi)KocJDosTl!*;aW$U+$iJ=bn4cy?guX`Ub!zR$WXmtajBPIE|ygXs*)ZM90B_
      z(X!u{s@qhl(Sy*)M7eMnN+<j)4<fF*!KcoN2n~ZPA`uHkXukDl(rKTYUa-ewaVS#r
      zmci?55sD+BLczeA4Ec9bN%Nkey7n(tbG^;r>?TLTLk`nErZB^hTU&2Wft>hwfV@Rz
      zA1)>tiY=+c-XQJ>eaJfz36)z($fGvb(&po$V|p@WxRd?=+GM`a6=q+{L`(B6Gtltx
      z1XUML87lXi_wfviw06u**c0iF8WF!ZKk4w6{ldqR?U=pm$jsUS&dnKUFYh23=ukAI
      zb-i$(w^#OWphmqp8asiKJqe+bJxEpo9nGWn0-?{8+rDD`2mJcR6@ls%9$sXPvlPp4
      zD88onhG<)u!8RUIr8c5r4iz9nR)%HB3R#)Qm><iu>1*Gr^-C1LW8ob6^7G*+so7+C
      jSQ!4*tk5iAhfIFJG<IpuN4icU)AdJl#<~nE8SCY5CNY!(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..595eccd76affed807ef1f04ee1f70283d5bb18e3
      GIT binary patch
      literal 38666
      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
      B#ozz{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/SystemPropertyFunction.class b/libjava/classpath/lib/gnu/xml/transform/SystemPropertyFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba2ba8cad7924423a61c341e3095f1b024710cd3
      GIT binary patch
      literal 3011
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/Template.class b/libjava/classpath/lib/gnu/xml/transform/Template.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..693eab11c7404fd717833f23ea615bed6904e254
      GIT binary patch
      literal 5603
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class b/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..507c38f0d28b001421cd7ba905aa7e12c9ce9192
      GIT binary patch
      literal 2764
      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
      BiLC$t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class b/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34e0f74af369cd539d84aa1b3164dc49dc17aa9a
      GIT binary patch
      literal 1466
      zcwVhkTTc@~6#j-5R<?^&?n1d)FYUIlqM~y30YQyLOdupYE_EnNw!3vZtMIQh5lAF4
      zJo}@JXNE#cvsNE`*g0p;oXdC4`LaKMeg6Sq21^>+7{*IpXdRYaO9Zx8-SdO8wZ+R7
      z*A~3`hNOl#L-N4>WLvK7m8^~316~vwIv7T!_3%%@4BDPu6n=2TU=|{(TxvX6yYQ3c
      z78vxZIC6P)pL4-577@95^-kVNKNOWvybt^e4}>G@4ipsJP&lqtx07$jqT@MYnc;2b
      z-vPA-klkj8ulOIhju>tk=t2)eER)^t1Vf(z4L77VV4xGah9QQjmX$Y}y3sL+VVQP>
      zVKNH!H7v5!sDT6whVFvn@poZ)mj_$+uFDyE3VzXcx9z}@_nI*-_8pqpWYj<!c|ha4
      z>G97EP#MyhY$1{Zbtk#c)x#pM2*>xT8tya9{v~9^_x7Ap7}zr8Dpp4ZriLs-s?`t-
      z<dA1*FS@=*-SyQFHgb1C!!$MAat*R$9aDHHM?b@0|2M)!b5pJ^gU1G*V3r{v>X~WE
      ztxMOI(_7-AnLG?bm;E;v)G;T=IZq>sdZ(>z`e9JyYmQ>hH7ZQY2uu*yV)V7snUp-I
      zpGs1)TuGuJ$rycIxJh2!q&bKy%ZPc3q?tQLubDqazj=nio%|_oA0zdZp4%`+=Kv)J
      z<|$;6k}gq_Wenp5#>qNyk%r_Xpfp*YDNO=sBmEB2B=3?fPPcmsz()lZNSoi#e}V_+
      z$P~^nwL{n59381sSnD~$^eF$O3CK(8XpPdZB868}_H_f0bPY%XL#jMclmO8t6_BTR
      jR_lM3qy(9erB3kt9CP(D9qMUar8O?xYH1l3l-J^KczuA9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/TextNode.class b/libjava/classpath/lib/gnu/xml/transform/TextNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dcea7b96ef5250f5d0fdf514fd5cf7168ab14642
      GIT binary patch
      literal 2653
      zcwU88U2_v<6n@?`P14O4YM{{Nqb-V<l9ceJA_0V!7OJ5IN*l|k+vIJ!HQ5cD4WxdI
      zGhR63j5FSNA!F~k)fp{TW*oiY!XM@MyqlzyCM}am_Uzg7^*-l0XY=oWfBpsF1ilI*
      zAh54sS5vi8G3B|YU0HD4QtFnhd6Q0Fh7lC#Z}+@ZE}EWHHUhnQt76U<<y6%xSG}=H
      z&MaGYK|tIV2%WQR%ex>DjNcxb<z<vE8afcw5r!_%5g(fEg1`<Pod^l+%viRZtd{1b
      zdrJish-I9dS)4UpOWik=L2uEj2pq_4U3^-gGgowMT3?K}v77dmi?XsPrI#LR8|LL1
      z(;6$>qbiQ5TKjYu*e4LlEn3CAD{X<n*GK5U0Uf)ryNgnv3NxT%P=yKFtXOFW1hmR}
      zRYZRKstKN}%))u+Qn_4Q7Vutk&diee$gKI#ZL=gRWiuyJHzp~jGmcwGJwBC7<(*Q>
      zuXtjjRoALfP1VL~Ia&5B$F77iBoKd@W&;{cNxJLi5hMhN>af7>jgc=qxoSz;UKA;u
      z2;;aw&*sEBPT~~x1?f#awx!#2VRzy~nRda_Q6%xMj`#3Bo0)SZThn|t?wW<V_uv-Z
      zO$)z~ALuxXBjlH<aMy4S7s5DCsy5NDl}&FkHC8LTIzGfjfoR2ZITW*Iu}VH3iMIjL
      zZ%(Rc+6A^u8T$o~=orOi&PToACb|6>Ee@}iu58m0j0@~-Oz5!VkLa*$%xDBxNup(0
      ziQ*$<!uWU-&?<tCYnW6Aklsv%IGdg+Fw-Xa2F=v`lFWIpvZd*K)wJ_P>ArH_hP`U{
      zbsaZwQ$V+DI(Q?Jl;LU5v_Y&LhAk=;^OlYokf%|$OWOHSHMLtcp+&{{Ect-%-)4F^
      zggM9d2$#RFT4QvS9j+@eL8++rMW}4LKHs8h_@}M;qQ5dbAJqvGYlWAdc_&BawkJ2Y
      z(ZV{3`?sgCTAyu7_4&d$o>NcBp^Ud-Wf-5aip}bg>cWC_BUsR|1Y502hi`^<9Gz7b
      z4|TX8BB6Rqh;DqeHCH`oS~*me!y|!YTiS2qSktixi|EZ)7q}d@GUXPVcB*bpj$7*e
      z(%l@iW6B=Kxvo3-&g6Wk*A%57)Z&Uz(?w|<0e%4O=rexz|Bmioc^AM={_gNS)ATq`
      z+Y5{U?5SJh4a5LnQc<}J)eE8#^IQ5U&(qH#=8pb`?q}$|#_Qe}*qKz<#44ESAjSTM
      zs=ux}l>B8q`#!(g5vVn?3zso~F&tsNCvnBEWU!uNy^_;-6K}Bs9dR6{x2p4PdIa!}
      ze`;=bRh{^rXOB{|5<7Y}Vub!d@(H3w=x-#SLNh{ZI3{qmt6uJ5qiYSPd9V3pCx?53
      zy`6?8R&mDA{y>@mx{SygE(Pi)-A~YCXtA-_mBbn*g2)=-7l;`lLo>o_nCd|GDZ16|
      z8m0rt)&c1C&)<k0GQtf0vIqCEm%mf2|2px#f&IK5#7&-X2E)kW6h6Tj%&|*ZcIXZ<
      zx<`xqynBE=OjwvljnX%e_znyB0R{X>Uj0P*XFgR(eooAY$2yWL4J4J6W&D6I&Ed9>
      z_zJV!^;xvSTzA=jCEe%KkS{%;#J^w6@G0|0Snb!WAxG?o(Z@<8IddHu<}X0~J0Zs#
      zys0q0%9VJIrMXz~8A_QtrhSQ?JF6&X6S1*Xc-chHJ^yYMk2lk$#E>=*Qf8`$q>M`f
      XcpHeDXdF_*AuRLY+-&&5kMZUIwhoL&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/TransformerFactoryImpl.class b/libjava/classpath/lib/gnu/xml/transform/TransformerFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7470cf85a8d95d86749754242e4a7387744e1dc
      GIT binary patch
      literal 11477
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class b/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55db4fe5ba1f783b61a497ad7a8bcaec2e1b9a67
      GIT binary patch
      literal 17191
      zcwVhq34B!5)j#LHH%n$-LP#=!2VqAHSwvJ)4V!G1$SMIsz-^ceWMq<wGZPl~UF%x3
      z)neVy+PJpj5=^Oxeid4)t=86ltymSc)-GzRezvxi?|<%lGns?|?DzZR=e+ywa?ZK;
      zZ2xm#p8w(pJBetby46RDY1G>G&Iuda;uF%zaC>S^BH1=!X{HrTHnerbePl9?I4it9
      zyz$@@nS5))k#r)tiK%M-A!(lE%oEa+nF6Wwrg${f8jYrzhUZz?m>tLLU}rM6B$`UZ
      z*9*&0^YclyY)M0A3RV<GlgUJKek_%aw#%9^dDqOzorG1ziOzIKXL@lm(Gg9iW6=~-
      zxn4M-GaZXh=<Ubcfej01&sn(ijHbB_OXoB$o-u0<Q;9P<9&TTY4J2djYeke<iS|@F
      z+@4+@j(0}=RLZ1Aj%4yqiM7Yl)0o1QU;g9{eNy>l9lspsJ!fMi+L4Yy6dw&{nsgY&
      zLgqEGwVlbZEXl5AGG`@Pq5(2!s6}N|!DLj9UtU1ap+z3@7SKo<?W0jlm0xyC7LB0*
      zlhv7uCNl~Yf=5_XKmj3mq(zlvxl=OQk||Xd1<8_DjYU54OY10$3aO}oj;3RLG?A&|
      zPzPqwv2+}he|4<A1<HcDEAkxhOm}p0fa>UYAAN;s$iZh>bOP1mpgKBJt$0*6$ng)D
      zA8U^;>}*>dO)d?ujz`5*5|MCxc{mx9cem3_x5iRptcUeZ*i}JxkZE#dUi)rLbS5Lw
      z$$7_c)}8S*jKfDWp{~Q&L)HXDA+s%-Lnq<fl3AY|ok!#qjq`JzGC*_bWFIv!jXd03
      zi{{aMoLVZHUY27POk?x!GndWy<-%y8MT=;0FNxkrFfKodzM;S&vc#fBS_<cJ_c?pf
      z0;cHUkGf9)IIw4YUIHzNwh3V1(h1OVTH&K6M7zUIwy2p_A`-8SrWe9HnaV21&rc-R
      zPS|j4M9-Ao$v!$2Be~tP6OqogXnQ(Hr_-4}Iz!@Lzf~56X*K#mdeH_POlAqw;C?(Z
      zBjD4*G$^BCXQ(YR8lVWRv1l#9HG)vh%+6R`yha>lrI_Mbhu*Mbv;m6I3i)ZXs9m;R
      zBwLSeOgF|>$3acFbXat@a483uS*_8?x~6D6u5G!cJ(^0%l%cY5#DGp(4{wUZ6L3*|
      zej&(m-~k2@T{c>@iOym2q@c<UrepJk?%aTU0G078eRLjE?IAsUQNJ`4pmXU0i!PLa
      z>j`&s#5V;H;4Zf461o)PN*-C7=$Ic}AI(OTlx!mp`{lCoa*M8@E1?3M+tMh)NjQyd
      zFV3~>_HbJ?)e(+FC!Den%{)878Rgl8OHI#^DEu{xuBK~XosrIDQd>?*zN5X4Zt&6d
      zNF#?PDQEC?ru5;C{Xf}9L&Jf6`3_F3<wlEcqHj0{C*4aobwqUzYz)#Wy4j*z=v%O*
      za7&`Y^~G`dlyG2|5Wm%;Z_{nabFp?rtn|z%wgn2u=b`YWY2IPcogz{YRugS+nbit^
      z^V3$KkG5#KHPI5Fd+1&teFvc-A9k?lyVT`u*X`Vtji7mATAwaI-4C~JO}E7Z^dLR#
      zqlXYk`p>fHd-Q!s6Fs{#9CvKCcgmvGXGJ4OQ7iqlO_C!#+)s}o??l@p2?-m1dIHYh
      zl8B_ChuV%#cz?uC+jII-n-J04{L}*rM0Q9agZXI(RJJLa^3zii5!+(vT3AYLOEeM>
      zJAlVePiu%8Zf^-oSn$&`ct_}ng=>YZpZ*JxCDIa3hig+15ld>L@u);NP<;;j0T^(@
      z-5!g6Oh19y;|w!laE>z<ak5_&bq5ece+mW%22o)yYJJh7pV7~I?NChHiTekrAwbX5
      z%L3MZ!L+2;Z~6u1FO|6RsC~I?@m4YZUs?1j{TjF!A_+p#8woq8aa8|gv1mcxDU*f5
      zo*?~}_WI~GreTMiZPDxWJDg}F8AV*kY{BuxC3%eV%k<>WW<pcTcB`EFTNdr3x1G!-
      zpkg-k&$R5&99<*sLq4;3E(|O#aO1%FK6<y0PXa)$i?#?r3D7$<)JK0{vU`UezDpD9
      zqV2JBqR9ZgM}HKh|EZr#<>>7_`in&$h!qvI!?W~S@zjqj`YZhn{vtNKanTwF#5Ty#
      zCl-B5|APgo&ebVR307L!(2&>c9;Cm^^nZv1`DRFV_@_nxlI-Ah3NJb2FD%+GF{dP+
      zNUZDZSeS|5z<54pchh-eJE{mauxUo&dcyzJ43-Dk%YGmG5JYlMKb5w)Kth!fZb8(1
      zkAoIlT!`|nHJn<2K&{U&rIW!*p)tVXVj1_vQghlm(#Y7%B^H-*8Pm{6q8-sFJxd};
      zqZ2?}*H39MpBGu>NdtW)bdnU8TRcdRLP0yyVmJ<a5Z<=MLwKkL?M`q))%2wqHHg8)
      zc$me*1#$RNPS}yYkrt1VzM@ng4Cdo8Oh@K}axk1|SkkpTGJuZx2#d$@k%%7~lCg9&
      zca-Urd@1lt(w^LqPs@HD4=A;4=}EQ62WSRYi`mo&s?C|av^AO7AXrLU#Zi2;k0%@i
      zp7yC8ES|{6fV#ed0MyH0Fyt$)z^H(a<2oNt>YFQd7PI&(d^`*cbm3Eups@t9b*w$@
      z?09m3>v@WgQ5}|Mh8q@T$y+>?r=ce5a8`sP>mWoV+Pm$3)Bwo&#DnZOg`UP4D_s5Y
      zbe?JPES`-tiTLlvHNZJH@XK0RF)PuIBg%|VmUSmt{8gUo<c;~!jWJZk+2y1AEr)qc
      z=sRb!k52}hLr?NCipddq5aWy$jZwhmxDJ^-kA~uh7g@ZRPmv&(89Rsp9%5sMlN#>C
      zjiM=3mxFWXLZqy^e7qbLZ$>f8+Ebk!9f@Q*+A_z5KRNd@1t8#5gK~$FPhoCh33%zm
      z+NI&-TDg47Kil;kMCO!BHUABoo1e49eGxf`ji74)g30w+-UtJ_9bu;&2)6eI4JOrc
      z(960$B_Jr6NzK92;ymqxLK~4vBLx(ujB2qUsY%S1RSXG69<GkTw5Z%~erY#`RJxqR
      zev&O>N&0v+L-+I-X!H%j4T#7NaBaY=-@&WWED>P3qAfnV7nXvO#-I+;DU0OI9%eF;
      zz@~gI0%jU=aAbqoG3*o0aTs`piE%_X1f~8d2V0c>p*j8iu!t;f*Z8y`E_YrIRy8`4
      zF|mSVbWLm{h(zSAMQcq+!V2<VljMu=SP<Qq8xnJ3o*q2rU^dk!ipkVSt9ZmAJR5W3
      ztzt8W@o=dhvav<(tPc}@CTA3tFA_*8$KSO0X1VMrlwwRfj~J&wrZySgV)3n+;ge#?
      zR9e@1GIE>6x9b`(8Es3fk7oPtwD>N8f0kQB==*6&#dlkL52GY3NxM31YDG%cNDDbV
      zADmouV4raKuEkvfL9J8{2f%5*-{J@O!7PNIHG9U=8LlNW9hJAf%r(&5`2x@RVT-@V
      z0B1!Gy`@k{w){Q}Et!ifvaR3kmvjf{XnxG%#~D>-FqT@3xDidRmoQRZc_59I<5!BM
      zYqm-v8zMa7fSk7U>!9dOyC|_V&xv6LoWS26-7w2p<aHDVD9z7U{4AsB^v0v@YtyY7
      zW(p+d=PcgMdoU1b4JT)$9k4zN<Cv)LslrJK#;E;4UIHG*0vmGlX(Xe_-=p~@i(h8c
      zhy&!VPsb?7$DFIajA!MJOqON8wD?#2DtsHungqGQ*h_L2IDI(a|IYd7Bxe>+xnsE`
      z1N>|Ltza?KfTflFiAdHQ&97VhyG-rd=!Q!lzX>bT)7zuz3Cotu5AYlGNBr>H7Qe%&
      zrHT?A(RMg<d&bO$WTbRg^p0U;@A3OSMu}CPe}=_>l*>i9IMPT%JLH!of42B9nVZeo
      z31?r@|B{bC!ZBucb5blG?Yrp@9Z^5F_!HTgPkVT})yJr{Dl*GvcCJ|yO-5V#F8!4M
      zF6V_R%dX6?B|&lj1eVHoV<r=FA<*aiZ=v=DQ)Oiy+?)?dql{BzDOL(c>Lj=PWlipv
      zv{{LGJbTukE7MXQ<z*Tqm$i8pXExV=wV1@`$`8n<3Ye-7Rwv{+lz<AVLZ7lSRd&A_
      zmMYS>t!v_)saBa=Y^i~|2bnz;m7-yaPob6@p0$t#VfTU=rqT=IR5`LmuNAegYfo%w
      z$C<B>MWQ(X&cM-Sq&aPJMSZx#1<3Y|)k!i)MCv*e#hj<F9un5hF{=DkbpYZ)5R
      z$PE{~ERyKhqytn^BFxk;T|?%(Q<a>ba*&vjO3H7Gpb0<PZVdFdxS7n!B1n9I5BenX
      zC8C_3%;g~rgp|~Gs^+k3vPK=CI(3w#Ca9xDFoDSv4|zF$09*al&$C|gUEj~b?zoe6
      zb9QsMOI3HB2v%pQuP7-5HGZG<pWWK`y{ySfGawR=hLc%&Qo?7lrKZTIOrs;w;nepz
      z-`SjxE`2)2ROW|leZS0?rZV{@_cMDR|L*hc+NY4QM)!)`0N-C5j?YN0b*@q~E)<}9
      z)ErBl<oYOfBRz91)u2umpxK$85syo5%3-u1+@X!omk>e2IL*?v`J~Hc!2aS13)GA4
      zYH|PD*X+p-?7!blvZ&EgOVu(tTXFm2^W1vpG3C7E`wP4YF#;^-^!@t>e>~fik9qw@
      zk2r|t`hFAzqEn|@>a@(Qmv&1rs#K7@>I_SrslwnSQ7N33n~(B7$JXHXPY$Yxiu#n)
      zI0uee`~$UEW~{YTtG+)2C%IShsk1WaILAkvq!>^!)b1*#5VqS@0_t`?cc3n*oOR&U
      zqqAtTEI3;hB=uF;A>HqQg=tH5O0M>&6OHaos5h}@jgA$CZQ<m)&JMS703MKvIQ!<0
      zWP_&>NpBRym;I7dmhZeUZ*}LIYz#k89t5}z@K{zCTj~;ZDeND%ES1dB|5<Dpzfx3u
      zxuveqpP`abl)#aw8+|=zJ4M{kLy#2Dlk_bi_ZmxGo2f4J-#Q?;$OW&u-cmR88F24z
      z)n-fGC<B5(bFY16(Plxk?GyDcsyP$Y<3#6yw}5l~Ah-%gm{XBU6?>G3OCt$OiO5UE
      z@^>m|70X|Yko;Fb0sRb;rJsdVgx|q50CV7AXe%nAGCa#DgmyVvCPoI4jn=o&W8!&q
      z)pi<ERs94FtEzsSMm#}d<vH#N8ediO1XWknK0&oLyD3=nI889SY0@@LcQSs*K?0&P
      zK_!aT8gN_-%B?h<Vl;-%q9dt|CQyQ=U{;mGi>A^vE$h*GH>_K-AEjHe0|UL&>BJm)
      zXNbJPG-eGY^6ag8oQ6G4vzqJ8XWb?qW4r0Ay>H{YX@UDz&D>3=EVRx4>LMS0pRVnu
      zW%Z_QK0~XvP|!Aa(W)*A*k%u%##HaIJ<m{N3t6^j7e%n&DA#+r-dFPs#kSDAnq3sD
      z_uKw%T37FtN4(x=dtFjqmz38bRbUrrQss65NYw}IfRM8TMmHslIzQyA-c6fr?;aYl
      zgCfn_DJe_zoC29+7u0*rI=^i~w3MQHQ&!mKleD1;t=e65Za1Cp^mWrk(qP-f!pnrr
      zZhFZXdV;R93*14|w7s^ko38DmM=>dPr-o+xbe36x90-iJxZqB@P-HwJBV*7GY8iuC
      z#$a=OK#SQ$6$d+r?BQam9k`c@?0{X+L*LYFe7mUxQlZg9TMTOIqCxW7L$@n=3Am>q
      zJ1)7ao9?bJD7nur=%xp@kk9O*l9ER<Z=NnPjk<uI`KZhc>gMCpv~;sunuWUgq%@04
      zexP4|h!@bP8{oe0bl;2h+b)?pP&c2IW{ErNNA9fBkbes`$>wpIi)8bW`ZBw$n|9ZS
      zY-<ns?ZVwuX@_>xm>u+dvt4F~dgui}2g@$pPA}D$qo>>sb<-<NcA3^g84ftnMdxQ%
      zr{pN1jR)WnG41){^`!k+-tB`OJ>=-2U!oC`21;3QD~BL<$S%(c(L=v6seTZ|7$m)K
      zKnr%!ZYs6CB~RK#Vmm$brb$hq0b6wE5A^|LI*Xmoow=R%Kxg?bdtgpy$!@xT2fYI;
      z`h9)b4tlTIF4<1+*N3|3G}->2MYj4uTtArWZM(d<zMDR*8xk6#?!@Vp8=)cH^sx+t
      zhL~q|(`WUAg!JR|xo!8*zhO&*?Xn$A&Guky!`{xShdnSMQ0Bm``?q5MT*P!MjXT&`
      zl~+LxUMP+ShDx{4`J&e0u3F2pYSp%1rfuKb!yzWej|;W8dBr&os*5U|u-EA3!Fec$
      z?2uM{NL23xo8dC;BOP(dWMwy3*k#<!Bf99fHP7(qEwr{~7muzl<N8pQ2p$U9!EPSg
      zMPr)W_foFZ9VPl`anJ=$LyYleiIcl&usn9qjAlEuovV7dR#6w7V}~B)W4rl;E)j;O
      zZ=qJOny$^7XNWO%^Bf_y2hJOMh8wnEo1tCYP+z`-=QVHV1u!S^W0+YtFYKc65b@yb
      zf-buy+mH)_biB?klaVR#WP@k%Ni@S#<{9Z3!^=ElJrh00alL+@isyNrM?Ft)qmz@=
      z2ebog*MrJNc*iE>pmS&v-lx-fG>6WoWpn|Zis$KcAu`q_$WE72CtZQjtMK+U{JWaI
      zPS?_1bR7h{mhPwPX&Y^(C+SAoNjK4t=w{l3-1#$D(kpa3?WH?tAKgiRz=}W9R{D^>
      zL;s+A*`NowkRIf6dWgr+!(2(<=ZW+PcJdg{rEXqK+qs#Z<Wp%Uuc4<oNzd{IdX6um
      z-FyY@;cMx~d=veIx6q5cm43$e17JLY_M`MN@1S4sv-AqT2+#fn{fghBU-JjFm;Xku
      z^QZJCQt4Z&i1w)pdRq-cdj!3ss_0!ciGHt6r1#W3dS5luAJi)P6Y%FB)jImKT2CLS
      z3+XTFV)_Uu=R>ub{;KYvPt?8isd|V$Q{D6rwF7SU41J+~O#9XIz&$VE{bgqL8k_1Z
      zINKlDr#|5Vql^oU3NA9n@&Kb6?OHB2>Uf|rolA__95NPgxv_``8K<DVoXd<AJlJUA
      z3M0nDj7>b;xPV6(*Yil@CLU$n!=sJ+c#QERk2Rj+amH>w(s-FGjbCz=@fuefZ*YyV
      zk86#0`6%N9o?v{!#~NSoab^KeGHw2fc@$Tgb$o((B2PBw@)UD1Pc@s+ZsuubglCwo
      zJj?9lIp%qMl6eV#)x3%u%p3S*^JboB-o^9H`*?x*2ro3Zqus-c%x8JA`Ey=kzRHc}
      zUS4YM;}z!nywd!DPc=W`)69SJ=^m5Ao*+j&1G&Xh#%p1<G0#|TgViQHb$m9gHtm_t
      z>pio0qh~Ik<5|S#dRq8=Pl7M<tmjKS=kev9OZf`V)qJJr7QV`J2Y=1e#aF}1uk~!_
      z>peU92G1+J+4CBIL$H-vDZie*8Eoa*%T2sOuoYU(yb_)<iM+fDwr0?D&+Tq&4rrf7
      z*8pLi?zw<Z=QDuFlAg2pO!RrF)3cVtX!+n3GkG;ffWGdhq1=Lb1@H!oqp;fm?eT<o
      zEw^HHFO_l(eFd=hF?<%ULu)RTah%)GT0=K*JLnbgX7Xd+85DpmPjOopk<AIr3BtCI
      z<qq@(6&ZWsPsLQAMnLmt!$Sh9%6OC>Ltju$GP*d0mZeTKZsRmsg=(I$nR?JFQmc%M
      zxf4<iQ0t7d;a#m%tkxTAcs)i3s*8<P@U>zpQJal<@VQnhg`LmQ(wD*7r}0Ke8d5Jq
      zvQ2yrl^eD66)kC*QAbDdxqKdljOlcQo>y+Hz-h?5LB?*nozLeBFz;o$kuSu)LdI*<
      z$QOfKx$y=q;!DsPWbC8)d?{Lkjd!VmFGI^VKA;o%a_n-5*$lqIt=v2hl&=t}0HDS@
      z5}2>LeIfG`D%6@O^9-cZ`AWVDtuk80U*oGO<f$W*uR*KaGaaqCZk<PGVBWQucPSmi
      z*YWk3cQv5l4g7VCc2N;;<{N2{XFH9>iknb1_~q|L`_~TY+pr(h9z3yH!;+~L{<~;-
      zbq{}oX(1lBAlsREeoFv#7frG~PM^10THlteZ0@FkwYEo)p@aG?yg8uH_6iE$v;PJ2
      zp$hMv<gf7EMYn<49Uxx&BySb)zSH~;tp~a_j_Kih6*;WyJ=GaLPR8|VTzZlaD6s+l
      zLw-!ZPcqJc?CV1sg?a^rdVoT`8F>oj)e-12KZgLrcW&MPWL5Ppe#GqNM}apD;7#)(
      zXPZcIqpNC>{p-wHM+Q&G1O}+Cb@%I8Si5Kco5n-g;_16I9tU_E`S^B{?^&e?^F#S=
      zxXwK^j_;)j{9QVpyJ#xkNAvgrTFMX73XGk`4?~IHrx@I)gCC>y{5YMD66Z?Z4i|fp
      zZs8uflYf8|^h2ber>KW_!o+`wl=3w2-Y$9#spDOYf5gwR;-7E<KhGAwz@_{m59Ocn
      zNd7rj@=IKe{t5hwF5VuJViM`gEj)Q5_+0~I@NpGy2Tw(%FlY%J21>NqI&hdM0jEHg
      zYY<i@z<7V4!%7Fz=r)+Ufs}kL?|@t;-9TZz)<d^YvtH{(LOn%?Bp=;P3;8Lyg&%2m
      zIQAkTqyQ%*lnpMW!7T1=@=z+)JUnood-yw$P7E~&T0ThZtLo-mQ;exY&6a6K9qNV?
      zs(`fkM|GZ%r+DO@RDnm}P72|Hf~N?N!aH3J*Lg$UEi~XV#g~~JGKX&6zo%l@U1XV0
      z(SyxKRpTSW{%`b*{g;{hLuSQ2pm!^k4ufd9R4eYFfzo$31-$4(@#?{&9u<y9hG4y(
      z%RESe6+p#}nYW5z0*yazbQYFmx^?eonDt23{E}3GW7$g{ejQQw4H^g(Ve>wy>}{IC
      z??8!f&;tGgE#dbOQT_xK{RJlX0hIP3JpLp42KsL2Pv|}%j&1xI{gD3-6Z;H^<sUG!
      z&*>%pC;g89MIZ3L=~MoKP2R6f=^VMMV4pSuBq*5RkD**KC4w;~AzhIE1=CByM2cv-
      zR=o*TR`XB!1t@n4vd4>1xEBa6GaAc|UYi~L38MJVw0XTill43g_>SWvdt({bi-{OE
      zMhY>u3|P{r^VW3p&vpDE8_icx-lIY-+QGkWwtd_AH_p&$7}{I!+re+>-naCX0PmB+
      z8~FbBQpNM1P?z!t68~zNcJPOK;$P);SX0hAJ%Y7=(}OUM9sFstjWqvRy=Mo1-aO1U
      z;bQ-)_c>)osjhi=KN$M3Oc}NhF|}Ly<R{QY3s7u(cGD~|v1!sbpo{8sAq?z&L>7Ao
      zd$IT6dds#1eX9}y;z0-Z+kvP5U+4&+KZcrUr7G3Wm<mBT&*2}zpI@clKneTk6Z#BB
      zH-LxpD6U6LnZna)hHI!h5j{u+$Pix!thLktr0{_>NR?0ps2&N5HEIwYqlVB_h3KP3
      z(aCBwEmmW|^$1#}js(~7be5{7PE|vfs-x%%bu?{O$IxwRBHf{mrF#L5zo+Wx33WU@
      zrB0yd)D+sIrqj!S%fC@G=`}SQaC$Ca@X3I|^8t4kv!#~s05zR$bs~>aGkJ`f%~fhH
      zPgf`N49uC2IZIWeHu`QV5d+HrG?<zbKcyvUTj|!>+URATKpYd%ZHXGB2FpbmFVY~(
      zi}YKpZ0uA{b*Y9uK2RN|h63#SX*QLsVQM%4S|>n|({~3Q$(vCE_~?7&QzMl^-)l5c
      z1A-u+n%hFr;s;!4LoS+;Y2n;Q;Usk=1r$^I`mwgg$?J%DBdR5R%QcRtH+h?G`nSzJ
      z`}g(U6%Lm$teVKLRsg-N1iD&9!_}!!-wLSjbbU<I90u7t!df*3DS&lrEDlWR))6|*
      z_~{5WPN$g=aNLnP@UyCfq8)J~c$a(AVUFJncJ2x$$OQpcZ&y_{X1A*C6;G}mNv*~S
      zMPOAeTAYy%fvh;gG>j8*hN+3L9tDQSs^eUSr-GpfIMQJ_q(4J8!Ew?f+#7-&o~_^+
      z!%>{2d6qjgvOGt+JQ-G5;c{9koaIOzPPWSl<m<D|+-uqrxq4Lz@Hrbtm4x(Z&C7DA
      zxV%_RrTH$0X;>+8c;#AnY%isN^s0^IQJZq4^=75@qQnkpX{W(^99k3P9ZwHr8{4~i
      zefO)*&k@9v734%Uqc=*!{e(=DE7G9qJ^HStwp-0coRL;_xB6=T-Cjzjx(q&W1w7))
      z99aitWgUbvxJb)7UoCKDo#e_IbQmn$MfdcV_?jGvgIS4BL15`G@dBvV$PlZp=~hdc
      z`k&-xlr%Ty*jg|vT`+5FLByzHZEMRBW&1Ok>K;pha}acQe|c}o*?d8kd_mT%nrLx8
      zrH}6~>TOW^?fI1s54JR|X884iN*~`}q^)_BPVzV2&SLcxdIcmTYI@WvrY+nG#0J=t
      zxjOW^5y;m?r^>CddoN1Ug^U)MsLp+#lJoy`w?Er91-N<5I*;6nySIftCww96@7aH^
      zK=?n^XbyG$kiWR#E;<?&f;wGp_vNCxphvA{+C`@$KUdqnVck4f`qnVry8qoS`u+|T
      zYu>Kb2`(rObgOuiQHLa5WEYf_bgPc0%K{t<0Gw^z{}I4~O4SE4)Pr4AWe0ny*Hqg9
      zU8`iS$u&E`Ixq~n41bY_TQHYfkVC;?TlfFX<&~xBMDAXVBW0lZAS&;Nk#4_-D*F30
      zSUo}`)ixTV9-}kWlN3=sv_|bjYJG-M>RCDuV;8F*A+<hF*Q=i*E4)Zs)z9f+^%BzR
      zi}bAe75!AbO0TG2Bc=W~y@ltW)o<uy^;_Dn_Ht0Y&K2r+JWl<Vk5+H;3F<AR(S7_?
      z^)@fUbA@_`&rt7jyLw+M@LM!MOeAYQ30*F*Zgo4kf)i@JPN^2JRvV;9paGz<5iJkO
      zhUID#Ds?YH>_T;pzUjE0-c;x6QsWL9#ZRg8;4wd?d(`>r0<>PGa*ZPc^f8^QE`<LC
      z=wEc4o)_fVRHjFR;9JUNjw$nI@I>CDZH^I{chLogRES!~fPy2CHnonWXsxmVKGj8A
      zs6ZQLp^Rz8zAkn+r>0LmE#$m+(I{O}qcYZYEnEYpjAfS@nKIffMs+>io4JQ0O>5sm
      zbV3rZ?dE}f68GD^#;}?Oqxn}vs*kBqeF8)H9~!GZqodS6XrlU@jzixx^>3P`_R~BB
      zv4w`BX2Yab!$T><OB)P7U4;J24U4Wb3hC>{0J_yErn`-S^dR0JF-o;U*J!`pmJKW0
      zG73e@RVZ3=xncmWZ&a6Pg@#aBiUK?|7RcyIbrlpkkLtBTJtP-EU(@yEb&&ZS4Hrnh
      zG`nGH7pRJQW+H`Ly%6E%I`;sm2rx%Jk95-m4`J}@^&X7gBwDf&E%f)MqFVXxhK9#{
      zD5tL1K*tzF9%C>SqPQqAhR`r$7>zN8Q?)Td?{%)jHM`fDT5{RzOn0w{i|QM?PA;TL
      d>YEx5j-e6iX8jqs8rka>v=C3#w}i9W^1pP`JW2on
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class b/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8a20b8adf43eaaa9b7b591316e298a56a0c9b8a
      GIT binary patch
      literal 3335
      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
      G|Kxu)@kXEk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/URIResolverEntityResolver.class b/libjava/classpath/lib/gnu/xml/transform/URIResolverEntityResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c69728c49a83ae8ba43cfc82ce55a073ca156fef
      GIT binary patch
      literal 1294
      zcwUuMZBNrs6n-unE9(kFP@EINDe7Jr^#%0<1fmAa;@lE87ya0cI!n5CX*)80iGKqV
      z4ZbA$(ZnBRJomO+X6QgaboabI=Q-z|yI;S*eg|+5k0eYm6xvo#?RQMob2Q6+YdanF
      z)m~{&cWv`fcXlk#@QwzWgeb%8fp(~=re?L(YV$yEc@km_Y1?TF7+347e`hgFIYTj1
      z=IQ<M6*m}Sn}%h0TMR4NbE9(&hUhbUUzZWVw1PNh7$VtRBMzdfK*AJ5vTRs-rPpcd
      zPF-u7I>TJqZfRyia}2Hr#;Etsa2bl_{}>6;oesM59Sqw(Ykx#F&oQj_#%W8gJUX$G
      z)$MsTyXUlYLX>y<Exqd*w&hB=!jKvbtvz`?bW6C(FfXtTTP;<Gjs&h@S;7*-@;MV!
      za2**2DQJS>=|9pB!wou+aTB*Btk89bMFm~>!3u8U4mIHlt!|G@g5h!a0t98ok5EPm
      zIlc^e8s2C>!vWFaNLXdahT+!-65aM7fws8YYnn!@w9nV))IiAZ9=V?0;r^H#G_ZIU
      ze+EV&`OuIs3VbvC)Lnz`>(bb*T;q^*vGf$^o8(V{zXW>r6ZFL)lO;jYF6rDN=TD&I
      z3!jkuAYv}i?+oPvn}}kIGPW^C+JYaAd0Yg9#8IgaToS&^WQ)<6LR#RzCyXeanfym2
      z+3FW8Mo=mK#3VZ|e#VXC$~UCm6i<--A%JHIpg@Hd#Oc#W6Cfw5;5qqA<b6TjmsFxE
      oD6La_RA5LcgCf?55SLVvCMYw3yYzn-p`1AG<AE5;x@h#_A7~F(lK=n!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class b/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..470c75c99fc279ce0a51d0d97fc652bf045d7e88
      GIT binary patch
      literal 2875
      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
      Yl^nb91-@j=5VkUluZSS<wTE=`KR862V*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class b/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d583dcfd35e92ed1dbfe63fc25d4df26dccef571
      GIT binary patch
      literal 3965
      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
      M62t!L%KF>?0WaS5?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/WhenNode.class b/libjava/classpath/lib/gnu/xml/transform/WhenNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fccfca9b54e957df5f9314dfa084098657ddafd6
      GIT binary patch
      literal 2325
      zcwU87Yg1EK6kP`bd3Z&nAP*m4wKX9?v{Y(|4?v~G2G9mW0be&a2MFHWo4L6`{0sdD
      z{sO=Fp`FptsWYASiy!)<I$h@^U?c%21MKXxA8W0>&*9(y{`?ET6%>MK5g6ET%88wV
      zo$x)=DXqI+A+fwEodq{1g9r$mYdl|)g`#cxQpE@ad|C1Zx>I|BJ4MsqOx)cmdP#xy
      z>v<>d-xTPLHVcSlSl~A6M9_+327)jITBET{7y=yz+R!d=B9(XKLb;HY-jbQM*|RI<
      zTBe;by}bHfa|Zm)d`aL;>TpH`)MnYP!|17Kleo11(w3!7Dg9)u$#FgLWCW+s7ep`7
      zG!irL1^NY|(bSf?Z6<8f*+?vAx1?2HxK4)%>7G{fLyGuW1LrU(5VAJ&cFvQIz|iO6
      zwBo#K+a0ELR+YJE;44)o;K&_cc`ph?O8XQ!+oL7mBs>)s%(>IWqWx09|BPsw?T$Wo
      z%z`WxO-m*oEYM7*TyG=sV%$pP+(JSlo||j*HG0&BMDFfbvgqesrxe5(W&PNuPK`ZF
      zdi&vOMwbol`Zp9)Zku+Qa_O-&K@)47RS@3_oc!pXaa~)QEIW<~1K;7AfRU~GGAu6j
      z?yjn?lLnHw&aO{u=K`0SbZxR8t7?)r4ctPU+iF&Y4;1uWJAH(}oRj4`K1Z$Z$H7j7
      zR&;qi#2hVKtyFu_<Z3bcnA(qYK5OTl4VBw~iKR<r%aSFPzsh-da$Pc)9xhSz2vAiq
      z77e5@uXru8`L^j%7vD|$o^IG3tyjM4rScC2P91d5l-Jofgk>u7f_FNCC9J4xLr^`@
      z#wxLlig;w;F`kex#gtBtGDdGVwyf4phVYECt2gb2%FU`=OJJl~^}}kYM5z+j4<znC
      z0Y@Zm8u%G$>Xa=rz3;G4P9g1<Jxk8!)#G=3?}-~z@wm+E-^y2Bpi{k}wA%Q?=Y^gy
      zty#4214M>*`4fMK<G=G;3r_HNht9l)045omWCd`BIvOX@1!zlE6}0%^)N20944wHN
      zVrBR(j>jwL*~P#-?K2;6VnqF=Z|EJqq<Nv{x=?j}J@VT=f&q>A7CTR&7t^?a84Tk#
      zCU8fi8LA=NLvsz65Y=3xh+$A;9Y&mgM`#6jGO7@YDEUX|$tiTBJ%OIK3KEl{{?I=d
      ze}#_z(BBxZ;Oc9HNBcv6;QNViPxuuEtN5>I_#-;4zr8<L!Hw5AQzg=)d3<vAQO{Z8
      z1TR1b=BeWX&SQ~y=ZW+_#yIP%NK@q{a(zgCY23pK9$*#ASi>WJp3%1OL^EHn;@@YU
      zt1(yB6qRbx)(o|3)z%%{C4Xhj(rVMz4?Jzx){nG;#FZhIIcgIlj(hkC>YoQMY;CTY
      z+O7;J)jpuJHrj<(XbZd<j_>0B8+^JuS)#MJ7rDCK8Q8}>Kz7rtE!3XZdX$-`qDJ3i
      zX{9T(i(gXl&b12Gmg8MdD=?Sis%r(g<#^{~?XF<s;KJl7&KBD|M;~m;T%a^g9fZ*u
      Qga{WZ&qxK~xvpXV56*NIYybcN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/WithParam.class b/libjava/classpath/lib/gnu/xml/transform/WithParam.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..788a08467bbe6ebe41001f064170f76a4d408cba
      GIT binary patch
      literal 2404
      zcwVhlZBrXn6n-vA*b-KtKw1!sC|Z*6vbFfu(qda)EHnZI42AkK%W?@}HoKY4Leue=
      z^cVQ0A8<y%>WrgbbjF|I4{?0%g`^bHwBz^z?&0h?=XsuU&b|Eg&(FUC_yFG;Xb|Yh
      zc{^6Q;96l|d!<c3C|E1`aBIO1?1F))K-;#xYg?}E<*fPjZRvypQO_<&re@Tqvd&hX
      zQqgv#b$^cLm_TDmx;nZuQ-LTK?QqMQDi;HOHyqy!rN@B2%vlc0vQTvGP|o=qy4a1p
      zmk-AUt|se%)&fdp$#;TP;)tNtL^Ik1BFR*?2?FgVVrW!WrwIe+ly$*G6XF7`nY<_G
      zb_(k<Shm+)>TS>Xj_qdcAg}&Dc1FXkd`aL^4Gq;kQo#6Y@qUSZrQuvohFRO)A*7wG
      zk+2j#c4cWx%5bb6k{{%(N289l;TJ4jduAq;IXz+WjZc*wSq$^OS2EBikbGYA1j&je
      zgKBsj@8UfJ{cP9SX_$B)m#IbWQVG?uZt^uL8Ax(UCu1jlXQ#jgYDOAE1_rsRr%Ra_
      z#t8lF-TWg@29*?nu4F1xtJqjG25`mX^|;DaZ~{q|m2cC5ojc0zdr5XBVl0ji@v(uA
      z1bXYw*2E|HR3K&-i|%8A@c$j{S>IVtDjUaj+%UkYCv@9)!n|uu_^!IXY5`2#1g~CG
      zDevW68Ty_;fAZ{vj)$hRm!w{zQk6LyQC}HvQh{_T??O4$_w6)UUfrV4>n3JsxspsG
      z8@|Iy)gC5SZL>PG-uffs5FFR{$l&HHhLEaz*VP4>GjR{|db?}1sm3c6=fiVfJx-?D
      zoF$dMEO6^T5P9L@P-U~KY!8PK$W0kY&ynn3Z@uRzwWc(znOMOCMQ4p&-n9dkSn_uQ
      zM^5L}!`D)kJfceB3b7*m#}YxCdQ@q(sV7yRd{BAD_(O$^dxO?G8gzVT`VcMY!F`-h
      z5ACBPE%uT4f&K<u<nIeQYaCJBVwKxy!5ws90$ud>9p$4NZvxs<xI$YBxk2Og)Wu6E
      zypGd&Q^fn6cz206L%i8n;wgm+?=4*7*-I<RFK=t)zsW`QVK)6EI{rYLI))R`MC<_X
      z><#~pfhUL$|Av9@(KP%FDS_*a-Hp#+(J&aB7#z~k-G(^8Xt(hbuI*L%j!+@6K)s7(
      zk>%W0kmQ-h1B_x7*RaO!J!I!rF^R9Vj>RK3RUNbVjNKL5x=lq5+PcFoN3=Dm`=P99
      zS~1q{V|VT{a+Dlq=r{QF9x}(B{*E!KhNZ~=iHpBLtkOKMbPpcji$g5zo$w{-TRg;<
      z&qej>g6sUffmTTRHaNyS`mv2co?UuS8loz~s*2#&9ux5xqoUF$8c(p*Cx}I#D&!-d
      oBJfcAB2V$+A{5b%fQ=1t8M|z3`2=>lik)U-)glOdt@FS67o{IW?EnA(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class b/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..554411177be1887bc2e40c55970f23ffe3885898
      GIT binary patch
      literal 2203
      zcwU86T~ixX7=BI&+3aQmEfmO7rLDFl0op+M&?YU_60j+0Xa$jCEiTCt7LpCkZd&k*
      z8~=mSaU5s7h@)KSSX-(yPQ9|@U4MczI^KC{XPmL)do~Lsgc&dP?0eq#yr0i=&acmY
      z_z6HC)&;m2j%18tcr}*|TLslH7xIN%cxEy&lFzNE1=Y$I1h^RvEUCBEa8@-k;feVr
      zEoBMtFdVYAMN7|ych56;&3wTc*Vat(OY9y==%y8A@SM{P-5O?S4(>IErWxEL`LrgX
      z4t^OT8W`$=p=l8mN`?S0Lt{cWv}7?iuN9`$`K-p!l*p&l?6g|Y`QA~wtwo&*IF|UI
      z_NXEuW$(zT(<!N<(P*tE6c-Sng7Sq-_)dQ+oX+RMNvhh1c04EGFhfIiV=|sc2hByd
      zG-pJu!B9o>aYrBZ;V51ZaEyAYwaR!A$Eh(xTeWER+Yu@&6L6A2sqJ{O42Xmi2+9bd
      zi^jUFtudSoCiZp_t&BTq6?7vL^`eJQloE>+;<St~da0kZYN=CeD>ei*J`&DgKtO*L
      zdCE2!gBT(vXt#=LmOyIRXY8R_p6X>8XL%|&H%W-%ynu7t5zF)C*lRL|ae+a~XjV*H
      zP>b2h300hn@))mjW?kHq)~Px)Eg^<60i)X(@UDs8*=!ku*Kmo!M|t9gX{knvnhyqR
      z^Ej!ioTEJSWf?6P-$OMg`99^u`4q0mNMeFPOsS?eQAlgVAZA;x$#@-;)OcDmQ<{+`
      zA2Q8)@dl08urG;(H*sCS4E3{3jMWv@S`3e_u24U-c#CepT=}eBRt+Kc0VgKmZOjR{
      zS%q#aU!3PyyaSb?UN@6!lAsI5LbLpMN=BL+B;AY~3;Yq#INuj!WUxpzEUISGrZ(O9
      zSq4|WubNj*Zf-e4i(#8<iscqEGo1*q-xZ@o&hx}@c%R3?xhg!)avxtPm?vw4x>HUi
      z&~yz_4!%1Xt5K(7()_;hf?3R#D5f--FBVeTm~O|ddXi4_AT${|N?$#H`}osGZ?=m*
      z5fW*9B#qIYYox9Rkh{9SN8`8lnS-=8kS~bqZk#8NVKmXMwR{@QI0V=dk4i-mBU{Tc
      zT_$-n0Bo@PXS8jwaF6{9c0WQ}vWJ$4yXzhrA3|Y>)R$PjQvVP~7#`t7#G`ml-A89c
      zP&|s83*M$~#d8m&?Aw6G#g~48xP?dwjXxrK-PSz7D-ls4?MOsYBt=lX_YoiRwfHvh
      zB|nh(%C5DYKITlIjqgjS<L0Xy@V59Y?y%W3wVN(`N)fg&eO6T5ikAz%0Oh!G7ruaR
      z3-cQgT|@p72Kdg_ie;^vYdZpB!1wWI5Zomk;PNM*LU5Jft{d_@NyQewRYHA>f0Ivu
      zAiVqRY2D_|_}@hbtruyOF&g(M6auRgm(Y(mfpVF&<G6+^n4^omO#d7vVBsp(N&68d
      z@i|@EFK`22<0ihL`}7@BG-C~qv4AI7#BW%_pUC1V4Ezg|1yE!mjIn;K*-&rtD%jvQ
      z)FkQT!E9-nBo~_5QS#3bO%&EnQE~+Qan^`DR)})__#3xSfQPF63nqGrDlz;)HTDu^
      za@0)`w~1I5F5nJUiAw7jpxhHgqQ_9F|M$rH1T%P_Bp-gKJlyKXKid-3e9+M`d|*%R
      G!~Xzmas%xE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class b/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fc53be4fd5b4066e6628ae0a54054a89391c803
      GIT binary patch
      literal 6144
      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
      Cz*YAE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class b/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb178d755fbdae883035d4e0c5a820fc5a31fccc
      GIT binary patch
      literal 1301
      zcwUWETT|0O6#llfq=Z<cLd6S~tG1v-u3m~DLJ?*v;?!Y$bO~z>lP1h2Mfh3zpdBB4
      zb;iHrlRD#gHgwt`9q}RAJtzBp=R23px8I+?0GP&xh8V+W#jTk~RmZFawqve&+g$o$
      z?AdWqN>6TZch3=0L!9B_K0oB9!`+Jce0N`1frd_o0Z&#!xX+KwD2AbP(RS@%iJ>Ex
      z-(iTadV4}g2f7VtNHX-4Y*%d6s=GqI<hzbwNS8c|J3Cz3%5FI0!CTvB7%%;Y&;mn3
      zD4Ss<SBgq2ue=HY#Uo1`1h(fElqS7t`WpHe2LB1sk->n5%M5+(v>3R8s|-nQS;F_n
      z?uLnPD$sQUgSgT9G)-CMHuF1O7{Z8#;ZwyeANzr*8W_bGF;F%P{iX1;?U~!sc7t*t
      z1+Ny8xJl`T>8l_)19?oeg3K@!bEODxK-fy*ysDf<=(vq34R;tWwUJ@K1f`ldP%e_%
      zCZwt~qfTbeiOrzB<I*Jvb><BZxYJB-!N9#}ac7nDfq{q7vd$^zqJc+PYB}c_hI9FI
      zA}ioy11sol0T+^3rA}{ot`wGcD5M(4q2kGO>1D4bEwOH^2{jr6Fr_jlbJKN&Ty?nb
      z3mV+i=@F%tQ(Ngt&?Su1LwA9!F4~#2GFlT8pP;{|O$-LTJ45GpT%fmcasVmx&`NWI
      zUOJTysi;38%?qNB(b``}fBbbF*FGSd9-pk^)<;aXXj60y_(9Qsq7T19`pgNiL9cex
      zm<d(Qwh1&Ja*>R`v@#YUV@)#FB%5nPW;Il2>zG%n@7GcI3XNnhEB#N-=+CGMGW91(
      jBE`CpW;zW+cO-PS89Lht9m86PFJhfmJrt9{QzZWYjG`8P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/DoParse.class b/libjava/classpath/lib/gnu/xml/util/DoParse.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f87a146613f4714faa88290fe04cfd48f1f6751
      GIT binary patch
      literal 5058
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/DomParser.class b/libjava/classpath/lib/gnu/xml/util/DomParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a42fea23717861b2ad3a8a24ecdbc4b80393fb4
      GIT binary patch
      literal 11909
      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
      A^#A|>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/Resolver.class b/libjava/classpath/lib/gnu/xml/util/Resolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67f586192041cccf2b60b6c356f85a8fdcf460c4
      GIT binary patch
      literal 3303
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$DomHandler.class b/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$DomHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d27b394094dfab238da2eb5cd9420f2bd59c746
      GIT binary patch
      literal 997
      zcwUuL+iuf95IvKmb?cbkpb#!i6B<${EksoxgOF%K1(Hbxts-7sXB!NTH(J{eJ_`w2
      zi3dJ_k3!5k2^An{dGPLd=FFVgGrQlufB6bv2lowR2s`~SX^aLzBZ>W>arpRECkcWh
      z<%ZFTR0E;*T`!jEL!~VTPu;K=2xTBgSevHx<e<@#VU#eovgdkldr~UGtP)WY#Dop!
      zjr-0WrPz2{HqB}uJb#&jnhbyFhkpEs(6*gv<)J?mfgg$nQ%@P1m#9|j63izfPYh$9
      z(+uPZ1*!UJQpCx8$e&?Ct|fcIL>3Dc3@j4L7qn38&V#UQVFt5=MTg^^WN<9hk$W5n
      z!ipn3H|V;`*Z&h|E`IGtgk9&q<z{urBNYGL6oXjxya;=3>9Hqd>9cmNs}FX^!cE*V
      zx#^;Xb(9#_7x6i+VAmY2&--0(EafE9G;tRd0~@T#g|b_?hbqB{MBHIP39I%mMYVH0
      znnRf=Pwe|zmf~L(c%T^x*0V4asuj3VBzTltgzDuKWTJBoQR2gA`PLIMdTeZE_%kra
      z`#f7Yj+n66dchuz%-6ThaHYQe8A~5i_zJHJIz;Q3p%P3g<0|_~V>qs16-ce?xWVPL
      zRbZ+N+bsVdM0;rjSgN1lcKs9Yr&v2h`FFM|KetW3mv+i#jdLb!8EmGjjT-NI!h|}u
      GG4}&MUiJ0>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$DomTerminus.class b/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$DomTerminus.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1c13cc6aa97fd0efcdfc70114673cd3145757ba
      GIT binary patch
      literal 874
      zcwUWC(QeZ~5S(?>xVWKdLud<>QfNSJkg$q)3qnE(6-cI_Hmcz9>Kx(F`7S!!D0~(#
      zR04?);G+<0H$l8m*^+&CdponUJO1_i`%eG|xbMRwJRX}ooF+QVGo{0m=kJbkt%pvS
      z^n-PYbcZ6&toza#*kmYOqD-Fps1dg2xQUubt&9vgqi;=`Gl)=ss*K8>5gzPCpTuV|
      zEpxLuZ#c3^IC%5=Sf;todi$q@;KekSlT0y%k1K>t>&7K0WiadddrheI?MV7)5H{v2
      zN<NzmY|Qmd7GMD@4J@KbXkRD@wJ_tbuSJ@2Js)d?gX+D%6lSEQ3$Ti71#g=$*o!Wk
      zL9bHZ0SN02Y+#cokjiXUhp>M+duNtdj;<N;?NOebNjDT{S`u23jfFlHP8H`_u$FyP
      zDd9;}z3sW>J$BTUnhCoV8slb8Z0=%tsEW$l|1I*U;370$86#b3j%53H`M;?qlCb=b
      zOziMD7f?LJ?;`5(;PbA==OqNZd&^Oe*LJtHe2%N#A6R|geRz)6H(dY9aSu26yHc=F
      o6Ln(0X$?0ywtj)bEo_w)+PIBv=Jjx=#O>fNuZ5w6d+1>44;{$#<p2Nx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$ListenerAdapter.class b/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$ListenerAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84517f3e8db21bbaf6699b07811689e124c53c8c
      GIT binary patch
      literal 2042
      zcwU{9-%k`*6vw}31;!nw;158Q3W%WlLmd2B+f^&2P)!##fe?ATEZ23+FhlOl>iXX2
      z{u_O*iPp3x^{q{P(Dt#$wCS6sYJ6+c_@n2}4$BHEquJcay=U(|=X1a3oO}Dl4?hCf
      zhf@Ypgu`X8VpkVjyAnFCJvDmnbj5Y2mGFY|zFLrKLX<*ZT^TGoK`1?`M(4$1D3yUG
      z!iJ0DlCWLjmF+Wg7iB3l&_d|;RXOq)h^jrVl&?+-Z{C%P&>Ai~CLAdyjJ?8KAhaBH
      zJSRL(C}iH(Np^<NH0IAs6YKDSg*4g->oVDyH27u~46G-#7adQYt}M(+H7({`N!V2M
      zOTwKI%F*lC*c4uHf_J#k3NiUY6mswdu}JtbQ*0EFotzaakmJ>oTnruGD`bmW_G+}F
      zuBY7)WqGTCt%OX{?IwD#-N1*0?QbQp(2G8TS(f3X3<6PR1v)Y{tXefph05{D9DWDk
      zP*P1;SDwU@nCQn&os>bsz?zE8nCQkXy?r-fGP9cGwUSNw6;+aP+(N^l=?lugtTP)G
      z3Gwy%)*v7>OI_)#O5GTwF$~+l-sDZT!fas#`?zb^^-{$UcE0v5QJ*bsDwtft2P|}9
      zODhiHBLjyCJJvjAA%`P`;Y{)Z)7>(RPb?I0l#r5DLN57fR_nY7g&R?5(oZcM(+I|8
      zp*+r;wtZ&dgtnQrbWJ$A;d<Yw;a(k`V4d>#Mq{oB0vQ<ig0L%D4x*lar8~J2xi@(<
      z^MHOA_}k1Q4Xtx4&nA%KA7JKgz{=&Xqx~wcQrO7fHa-jbncvG_kfz(%#I~;5Zfr&e
      z5Y0N-D+{Po7W<q<OSG%=Cc0<y-(lNL^v~vRV1UQaw{`bj8inq#`@8&L{fZ6r8#eNK
      zIZS6gOeZqPvU^Sv2Km1{+nRXQ69xQ=K^Yaf+%>dc!=9fo5YKWPa{u=@n8G(`o7BcV
      z*YR=w*40Rm9)1qGW14LY4f-7>-9s<k=V#&%ZplB9rN1Jg{#t}OQ7$IxV+pu~*b8w5
      ztY-T<W*e!qZF!aLxMu5!7PnRr4)Sk_u$L1EdccGanecCZUmjtI9%GoEz^11Slp}S@
      zk(hF*f%3%rC^(u_!GD<VU*`Ld6@11DK4%4ACR8wmG3e^}9OFP#qQnJy66^m5+UWof
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$LocatorAdapter.class b/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$LocatorAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ae3a25f3e50aa16c7d870984fdf6f8803bb2f40
      GIT binary patch
      literal 940
      zcwU{8ZBG+H5Xb-9)*hCnRRmN73J7>D%K3!6s4*dpB$qUVq@?lfwOz}Zy}M@j&XkYk
      zn^V#F0sK(L***js<3r44Z}xWn^V_+d+3!Ctz5#fG0}C03{a%<jgFre->`SM4_~tl~
      z@>F@DejBMks3WfvN9ug55p_J89Cp2aER=;DLpf5tVW{>7&Y6&Xp|msBxj|oA$TMub
      z^WKx&$l?jrX-0|ah_RF*|I!cr_!YyZ-MGr6Y)(9-#p^*w^kY8?Yn2v5t{!zo0a?s)
      zSl|p<yV5G4h#MA446A=6aNNW^!)#B)&2t@#!0j?D*p-G!(~(}-bDFX8!(Ocba&RnS
      ziRAjKe9`_@J<8w?$K473Bxy^(<8}?_9>>arbGcr`8b=xH40EJ!_@OvXg0@h@KXOgn
      zCdYkjkzY^ybGAF$aEIf80h9<(k7N>rBZ&#Fa8yljNl*J|<&t&kwWVN~H?@#0Px<D1
      zyqJs6e9dss_^%eJF))IZ|58zg!l)aLe6#1;Z}EHP%o(^FhC<b)r?t=)_8E5mEj@<f
      zbb?r?L(0;)M%RJSurNdRI?V!P=mEB?A5p08rkG1{%h=l~mW^Fav0?0X3i|^IGuWl~
      zGV(-9>27?YzWj^@c7YZ4g^KVM56QnYg5nYOfZ@!+W7;x9x6v@3;u%>}JBH_YftjC8
      CE%mto
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$NullHandler.class b/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$NullHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f46375356de73891e4d69b4883a964410a1b2a7
      GIT binary patch
      literal 3212
      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
      GpzMF#CucnX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$NullTransformer.class b/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory$NullTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f7845cd8368f5473e283625cefaebd92d88c443
      GIT binary patch
      literal 5136
      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
      GL+Jkzdo~0B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory.class b/libjava/classpath/lib/gnu/xml/util/SAXNullTransformerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e43b6c5e3734424b280a02232ee9fff9b1f69a4
      GIT binary patch
      literal 5459
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class b/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ffce36b35875129a1f3f408aad2ba872b1cdf73
      GIT binary patch
      literal 5817
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class b/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d8b904cbc51516cbdb3df96da1ab5bb6c3e27bd
      GIT binary patch
      literal 372
      zcwU80O-sW-5Pg%z#>Ut$J$NkQK|L5eD}tm7Lhw>4y>8<WSGK#7kCMOTN$}tg5Py@n
      z8+s8BF3h~Q^X3ij^ZWe+z&Z8<c!Wu=>$q8|xUQs%7m28jrbhFW73ZRoMhEZ-2d2o|
      ztx`1c?0Rw2Wc=b(LibW?SzQr2$0u`wpO{Au(Lpc57P^E%DmCBNt0fl?VyT!gPE97%
      zTols%H$%UAk|p6V{V&f2A)J}I$oN(|W6$lJJ&Uy<M0Z+qktk7?Tm~2uMt{x``o9li
      z0vjIgku4kAVqjTpv7Ma0Vf)n*525W&hWCXX%cG4Y!fvbg+djb1V%XY8*hBaOWvWzr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class b/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c55575b1a4340bc8a018ae09d67cc315b690e08
      GIT binary patch
      literal 10205
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/XCat.class b/libjava/classpath/lib/gnu/xml/util/XCat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e1af09ac3d545ddafc0a196e9d3e81f526ec755
      GIT binary patch
      literal 7607
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/XHTMLWriter.class b/libjava/classpath/lib/gnu/xml/util/XHTMLWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..717eb4f39d07aac7ba4cb5686c621f099b0e6202
      GIT binary patch
      literal 1019
      zcwTjqZEw<06vzJ;*xGe<FmTA`(;l3%vaRw$Gc%(x(@m1<jGb)y#uT_=HKoOJYv#w&
      z7m{e=2k=7~&xOKpu)etW+<X4#cOGv4{QdbGKpABP35G(`kIb`{XGX&H%#)W#udL(H
      z6+BdsV#xpR9rzfgAG^LQo-ibf8&wAF#aW%Vg&X)C1v3n}PtF&|bOW<;IP@^2_JRhV
      zfsQ!^R~Rxqk>~hL)Bf5Kyrm<J3?YL^Ff3RD#+%Ufg)Ktvw01QxWOYm-$FNu&N)98@
      zjs_Z8P}*{R{yJ*aczER0JWf$oP<Onl6T0#oU#7&V+hJI;E}O!xf<^LA%F`F9xK7j9
      z*?I8jV_8E1H)V0R7)qBEXN@#1sIexMt74f!eP?eyv-c_$+2X3CtTC*gQ{s9i#nU@Y
      zPDT$g29Wa1#Y+uItjfe2It-MknhqByr=sQ2jEWy*jLQ9b(4d5Jlw(EEFJK2zSm*n$
      zoNH!egxgX~{^z_M^135<11pp%3HhbSn!+>^P~wvcjjV@s!)RBH@0jgk{u|i|T%}c`
      z9oQ%R0T#&8`#R)tjdn@PjnOJ}E2HL(UnsmUWtY0Rk-go;%0+Ay865Yp`F=o*l~x*e
      z2q+V*(<-q~sR^l4j1rpwbEvP{2uvBm6oTE2VQVq$Ey3hWbfdJ{#XTeS1I2UVT+bH}
      fv5i@L?opTf`XN=1snXiS7DXno-6NQ|F9rVqkxI%t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/util/XMLWriter.class b/libjava/classpath/lib/gnu/xml/util/XMLWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65ac2d0eb621ac916c4673c4542d5a5c1bf651bb
      GIT binary patch
      literal 26506
      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
      G<NpI2*rSR7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Annotation.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Annotation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..155ce7dd9907f2ca3e88daa12aff35c1e9e39e47
      GIT binary patch
      literal 508
      zcwUWAO-lnY5PfO4-L`H&thJuK$hLw((Ss<02%d@_D!r%MP*b*vtl6UfN<k4k_yhb=
      z;%v6qgB~O#GjH<d%}YMN-ai2BW6MW@VP~pS{xFaELd0q!tTLKY5ccs-@^h_?bu}Lz
      zLu)1$g2zHn`So}vBg;^qm?)h~owFF)gB53J6Q!po4CPa$l|5tF41ZtuMhxDCnaCQ7
      zSPS4IU?_&YQ56i0040<enggZfRXQKb<VK8RnGG_Lh({t(8D17Wd#mml!omL@Mb;|T
      z<USZWVec>VwV_FqNM5RJKy%f+mvOO8CX4i)4C|Rw$_kYGsL)v@bV;~CvDSa1z59y#
      zv*R@BY`D$?csL~P5n6=0Ih)klfXgyfMr#9|r6zY6DD_`ZfBKOtyW+8v339?xhCbf0
      Fy5DWnYe4`2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/AnySimpleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/AnySimpleType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a2088e86019466d75c61e8b7a68af9a51cb1c0e
      GIT binary patch
      literal 753
      zcwUWCTT2^36#kAI&6;kEjoLQWTIoY;DrBNoTe?LE(t@xJmJOkSf{bxUrtHp!bz=0X
      zzp1_m7K+dQsM6U@K}Crjm^t_F+~)Gn`ELNLSju9IQ0}NcI}QVO!~=Q2wTu)qgzJ-@
      zU^R8(%di)ShLN(!5MGXQzw#wae2_}&ErPXNZW1!v(SbpjB$U4MBYvD>C?1N#9&Zcw
      zrEXXo4+u+Lt$Xho8w>`O!FnZ%J8Z35U1eWCdw#nsLT)2Z$n)!!<zS=WU>wtgSIb_K
      zfCXH2n6G20I__;vxjBg<X0w<v8Ar90z&n`3BZ6J4xAq#X-H(J9-hDA{4i=syHI)cI
      zhBe*Uw7WB`uCHale4&l}e<OBB`qh+*bgFZc@fSR)M7<yGi@3q}1GAr^7qxlN<grZT
      zf69#R%0t4+J<!)i?-Fu;)Q{WZlT2Z6SSv|usKWdLB!|o$$AqC-!+kSvqM3jF3wEoR
      zD>`SGvdB8c!wXn+hQ~jRbqw?7T}&g^;9wnjyulPUP{5|y%v+T34o{8M8KPkU&(d6r
      HY4r2IfY8tw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/AnyType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/AnyType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d8dea9993952491334770df59076e0f0a020b81
      GIT binary patch
      literal 628
      zcwUWB+e!m55It#YyVkX>_3ncR;`O2F#S6G1h#&}6kS$doV-0O&H(R#p?a6QQsi5Eo
      z_)%iA^-WO&$;_OYb26E{f4sZ_C}Aaq7{Pi|cIm+PXpec~fhiG4str@aHm9d@SkpFz
      z1i|KSg|6`19yhfF$zvgfIw6Q}@6-trXTgJ3m?T(!WIZ;BG$iwRr_CCiUSDa~!W6+;
      zOR4q|rTu=t(61DNuu03sVu{{fR^3L6`^>^LL5hugO2b0d#sqQ%TiaD5O+6-?)K#I7
      zP3JqZQ%@s~yy46eJdHU&w&Prk*<B?(>T;#y|2^LMweD2PKt-5i29vD{$*;QpJr8T_
      z-qVxISAz!g>MRr{{sI%KB{~Efe@I6|aR}0G&<z{>To|tXg%`|oP=x*ym__uSKvLV3
      z_HOiPkonzLSa<n!-X0+nCvieXn0eNT80Pf38Wopdql{@(kij0Z*hdZrI)8|Howdh8
      NSioX*%~Hf({sfJWr<wo&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/AnyURIType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/AnyURIType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46e6aef3c41af8273a93492f57b713ae235ad7e1
      GIT binary patch
      literal 1703
      zcwUWEVN=^i5PfH4%cv?4lh6=KL(-PW!B{|On_!@Ijh(tx>=e6BH2J_BLSxk0l1G+f
      z^NaGeNoVSrrqh1UkLq;qU<@<3G@g-fwYq)#_U+!i`{$3p0Ib7O5o1_x`aN^dZkaE6
      z%RAzc7x*SEJUZ#PX5K&fX}?@2Q-#8ixpHq5v^}ThwL2|WL@>-2s+C%OKVPntD~}IK
      z`9iT?V~D*dGbFd2mgjrXF2jV8ZZIf?;K-c>!v{LzNH9!Wp6^zA?L#-L^TQUwrL4f=
      ztp*Q0@qXq^Y)cpwGYs=T^Ot-e3HrS4c01g0%^xddCXr%TI*y{wmTC6;{cQh1HVB*M
      z#@gDt`TU7hbB^6MPvSZOa#^#6Y0T-E!bc4E3`-!JE$%nXS`>PIGk4jOZcJhx3o33=
      z#8pBGaV+mJ<l%{qkFiL#<}3C=t^DMvRXnKMPm2tObrr(7$T<xYxGi`tF_cbuj#VJ{
      zzJRhB(XrS4KN9D&kz=^gbfZGxccYL~Km2Bi5=R7~7-`XNjr4VXX$TaCopExCZiH@&
      z56Cx4(HNyA?8qHNlATr@IBrLHyDHK&!DD0h&WzD!q11|w&#|mxl|h#rd^a*>w=*z>
      zifdHL7<%c3h7D}0c)+l5F|c;xM|?2Kq2mjDNz+Ygl>H-jAg8-5Vjt>wge`_i`n2!z
      zZs0RqH`13=X)v%YsO&Jz8RhX@41BHQ8{`R3jDLamx^xyY7n#?O!=NwDNG?6r%Mhoo
      z_T;&`l!HNaP8AnZ@SeS4V1%}4U7-){iMbp9iFv7Kv|p<Qz0h$>o;dB(=R=njX|P5&
      z#suAF3^&EKL6(9fRC-7ndgJsies^XPe`@xGQni(M)s82sc0#S%YO-o4XA;%lpuMI|
      zG3fNaECU}B*du7zqE6(H!ZzlxgIn0eB7IxJCO(uA;x{!)S0oaQ*4g`SF>R-=rDlh?
      z@dh`C_~bmnlw@2WdyjyN5=cJ{!yVj})qIN2&LFe2if_srXupmy64F<`5UY%0X~JpO
      zJ?SH<CCV$Z<Fu~cU&#zX>@q7uWMAQS<t+?*^>?h(^VJZ!EoELIbNAW2^7m^BPf&^(
      zn%|4sRLQ$f-a4+KL3iFW(xgGjpCb*MPSOiWYx6YW87*ObOGPtj?NQk=ie5kok4cWZ
      Qr1W=Gjv)NKEb@nc0RY9FPyhe`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/AtomicSimpleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/AtomicSimpleType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acc196e01f4d8b609e289d3d5f8f33a035317665
      GIT binary patch
      literal 1385
      zcwW6zU2hUW6g>kAw0u~LR>WG{`cWy6ZhYRhNkxe$ZDMG6AC@Uy-4C)14Zi4aGBGys
      z!ABqbQN}w1+1A>uJh_{ld*^cQIrrWfe*XIQ9l$eeXOLj15B#w?@m%wayH1}=C-6-&
      zTz(h|^FRikV|N^H=!#<sWMD9C#bsPz8PdCs@5p_IkCpa2e#R#{%jcdL4Y@7Mw@2h!
      z`X_TN9oOs#X|>w((Oa>&1K$s%j#=AX2BQ)5MHWdc=8-~{;Zs~it^ZNdQrq#x(b(&W
      z@R;{p8dtF$*xc>%&{6wY(2%Fjh+!w5`pPj`l&6|vSdD3u4(Nn-a-@p+vtx$kld<0?
      zlrOp4oS|5YVWG!Iv*WGII~Im4kDC8i-lZ`yG-EH$obqbgS^HGj@4E`fus3BjUG5Le
      zjtm`tV6}sAV1~lw6N*JF-H5pn_)<*dl<eii7DE*sW$=Lh5ZC6um^l$x-M@`I?qPKi
      z3=i{I!5xMaRX^6J|5r^68G9<LhBjw`R9+_-hqh=s>i(=;y&F492Afnt66#5kmqMD>
      z4DCEx(_{<Pno(aX8|BnF7CuuTfgG(_vcN9#*rN~FpMvSVp~(tZ!cC%5-ZF|BUBE5e
      z)?x+KF%0dMaF=93UwI~dNUK8SNSY<<>>A<cWE)y|V+xIgbCGaPizLXWL6f~tF@tt%
      zT7*-c$}ClD^>eIOzhLtR^2*feU$K56Sk!gCqW)SW@|q~$ToNut!X-SyV=Y|56KrYW
      Ir<$em8yA*uOaK4?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65a8ec9943236a6f720f11c4fec17a434fd30158
      GIT binary patch
      literal 2173
      zcwUWEO>7fK6#gcxcQ?j_)L>dDA)yq=56$Msm_SItHcl`&c7lyzfi~T&H}=AM?b_?u
      zsj8}nO5A#CZ<Wd|he}nU5>ZQ4E<N?oN<Ftyd+((ZTzV*dvySX2L=-ETc|Y^M_vU+V
      z_NRZp`vJfxZb|51IFYw&N~35gE1G5IG{-F23T>LRS~ir3Ry9Jwh-qt;)eIRV2>%li
      zc1lH4Pn*TEW$*}w9g$Fw!JoLTt!Rp+*?A@HR7^WR$*?P0va60}J6X-D88SK<&W9t>
      z3$dBmi}6dB6LZPb{KA!V=4$rZb@hg}r00y~e8IeZ$12*T@_Uu4Q(LJwR^J~P9UBjx
      z44s-dJ*4o2qahhShVF1IKDTgH)$?~s)%r+qg8N2-GIlcv;e~viVNW!bOlPiy<H>k(
      zc5x;gjb+jd9XI0)@>$(7ZPS^isQ!U0g+xm^qZ17KeCWn247(GiZ6s^OC8LtjmMnwc
      zvZQNPR;!p?-!O`2T^I?kGwkOqG+g#<t!Pxsnr<iyNfKrBF!U81r+h|H>h=0?eSEl7
      z$tz<cBcsaoxkOqo7)4D+FN1GsQ(L?^fWtoQ#~TdC`=4j|dCNey6K~>}grgMkqF(a;
      zCCsG?W%1!S`sv2uq`H`n&&?-diy3u3#?YU55kh+oCcW5!L0;z&!%VZzZF!h{SwOcX
      zPQk1)48JgD>k!l61@eaD&R#{M-q`sWO79Sm&_BRi?<KDFJ6Vp!Ftr`2yfYQU(i&uI
      zCCavv6SiYC9JfYqtf3oaZmmk7mvC&`*b5s%>oDgl<iiL?y_mom38!hGw-(~VB+k-=
      zS%#f=3htoB`SEEV&fz>c^nz9iJN#ntfhhMxe2C%#gJjw{qmf!}y5cfs7`jZ$GV+?$
      z7YV0hp`aJzxX3$3jO^==Z#PK%$Yp*cL7Z;G(?C{2lHo|(5qHzpoYZopRI_u{)_oZ~
      zEBq@!rRh!f_;9@>&vbL5fPqn|%%lgb6VWWng>k-&@nw{HkuKFLx-nz&cNy3^7{k0w
      zVw}+E11aD&cp#D{k=6m3bnhm8C+WL3>0PALXTgn>;m02G>?KVjo&OGZi{E?I9YRVK
      zJSo*9rc_Z%sgj&h<!&+c4FdOFm{(~%hE7_i2z;7So+Ie<1Q^CXMCi3g(L=sI1Suhp
      z;J^K?bTKNL(Y|N!5e}&SgZ@M7=zD-8>lkP!=yGp(5kABT_>v3cYlh(j-lClz6_gFg
      zVcNM*c!0pyEez4MB{#(ityr2`IyL6n7|jTwuzyJI<j%pN6YDrR^bn_}dxTs_Si^5a
      z0pVle*+Wc)JONL4-#v6~vb04pAZ~GrZBYtHTbxo`lmqe>r%Z{a?qQZ7X*=le3P=wT
      z?)U;xKOJt06Ke?jcLv0!Hb{<*GrjFId)LrIny0CWYuNn=<7z<g$JR0XI3Rrf?C2W0
      zu5lwbU3z?<DA<X=@dR@lOn!)7S~J9GmOLu;;3f{?7LMX=V)7k&<BQbzcj>%_>sTU9
      z$8F?LgMkmQjJqh{6S8~;3-?gOm$2~_%J>!){D>-kfrDRB$M0z153J%Z%JGCEpHk*$
      z_{i<xt!8gFI>@C|v%~Z^j|F$$pW+JAG&$Y)ld4TqKM&z&T&1c#RO5YIBT1wRKc)XH
      Sy^0#;R7sKv<c2#pH~$02?fcjO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..321f8973df0b58c2737225b05c4f0916871ddc7f
      GIT binary patch
      literal 2029
      zcwVJdZC4vb6n+MhYzWIsmr|*w6}6=aAPa4+mC$M$l1g2|%Z9XDRGci+uyym|W>es&
      z*gxP`rRRu>Z=d~99`9_@1Pcdyj(o`6y>svL+<WJl;jh1c`5nL<$_jcIu9d4zeXru`
      z&$#PsbKj{|by~Q;Ul;nlTFn)_S|D3Nh++Dy;Iv<>IJW6j>aLI(3?rG9yjfUJFXfl=
      z_qTHCOtxS$^lUCM^cT~{Ms~|wB`3p>@svN~dee7Y-4uR`A-Z6@PSx@6GV~^rMTStO
      zwk`U=FrXrgh=L)8bKR_hCj@0GIL9y?xLsZ?>!$BH)p8Ug1mJs35ydD&_z8C#WWK?`
      z=AyVr%WMp9;gW**%j^I&?Rk8^q2e;$W{B{H;WT`PtBFmc%dk><Dr`TMJl25>ODTAV
      z;e6Mbsktr%(!^pI#Cs~P;3|PGw41z`Fiwk2C5y7>Ybq2(<(!<V$Tuq`;T3qvr4egJ
      z&E{^Adyf1LoC>B0PonJwXI14D(WrA<=xcd0qj;ZTe8>0e^SZvfyF0UcW2WYn_3N{<
      zbNZuY!?brqg-4+?D5ci<$1sUGS@Cr$C1Jce-qcBtEc+&IDfr+&6efjYI3<sJ`zk)f
      zZR#<dx3<is<y9lQRj^h`9SP$sgs$LHG4x_y)=2`&wdy=|1gX~r420+JI1Ps6nK{QU
      z3UQB?g`cTa8@|Wsc&p_cG5drON+hNBV>Ds=>!O5VxO3V(<#~9*<$L7oa1=Ydgzbwx
      zKPWGj-LpkqdK(HB875B6U2GejU^%LsicgU4$ESFpfa)6f*CkZ(84S9JHjz;qRQ_n<
      z6x~0LB2QaRH5kiyTQTGG)f6#guqw}E?Um$?O6W2Mky6Mfwn>0?t5d0g*PIDGEw(4P
      zFN!VP{QsHn$$n!PhNa@M98E-g)1;TA51->p1z)^;kAm>FAXIGOD?0eX`UVMk#5fU<
      zlG!B{whRmB(uPTKitG5o<1U@9S!;T>$T{+^4<A$6j6}jLy$!wenD<~zK8j?G$%lg0
      zF#Yx+M*IErRS))n+u>hhR<E*Rg@z+5FQ6V_&{BTGu+^(+rWMl8n^su6U|JDv%=`&&
      z{)zEJy!!$ZKLi{J`n^o}z&zon2!8=8*+V3woA{Wn?=2*QNcnfA!=9yRM(fDr5hg8d
      zTAMk<>;Y~Z;-fC`V9>}S0cN2g7XYcPG@`jfE5ltPX+h4=D)&MMP`~eBL;~M~W4WPD
      zE-9U&?gc(Zx|Aqo;*_kHCa0zkkv+h~)X%uzgXb7HLdMdT53%w`w?vInfmNbeBYPcj
      zm;u#z3#3gYt##UAfmOf;Wiu4<uw8nIzGZw|yD;@59zBPuY0~%>eFxb54v_=!ZcDAP
      c6zN<a(toJpF}`?*FOKatU%bO70)!|30M1hHw*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/ByteType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/ByteType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9d58a25a5b6d7d87710da2935eb84bdd18ce52e
      GIT binary patch
      literal 2336
      zcwVJdU2hXt5Ir|ud+m*r7=tNkNeP9Lm_VEa8XyUwiAjj5u?sdP4j*B&**FXSh&G!K
      zq^jxzFMa6)Z>>}b1QL}hwKS-tDphG;>3?c_?%Ft^L=jRgdGE~Zoij6M=H7kz_piSL
      z=*66h27!Zx@=|QIRE#a_MQc`ftV%h?MR)Ejn6c42j+v#PLJ>H!-OdrGQnHMURaz*z
      z9s)b#=~O0rX(W+Kq|Qx`kHp8a8G(kY34y?ck;&=YNb>TSKsb3zU)Ezqy<CW89NQ`v
      z1_hepmGYvamz|tmTr&M=6!7%+osgc1RMpduX4iO9z?U3Loy$%L2x9w(jG|SxoMFE0
      zjOGNCcxBcMKp+x?7d{Q|pjE{lfzW>g2k|c6BV5re7o2(5KOr64f@ncVpe1RQ&D2t9
      z#<a8gOwp9dR}8(F(``%YHKT9Hjj!SZfmRt~)n%=$m(0Zl-7sSpQxyF;D9}FdI12-@
      z*viUE_sX&Eid~5H_4M?{CNCs2#=Ke5{W!!5X4nP|`_UOhJE8&|oo|x%rX`vSpbJM;
      z9HGZ{y_5Y)S~Iq8-wC1{F#&I8B7G?<(3#xMZ=>6T8a(Kg+4TvGSF_u)>cO`KbUWwF
      zTZ;mRw)J^6qMVvY!F1fgv2}K!To`9qhX6`vR8E~nMvdF<L<yYUibBc1Z5H)a+Ufyv
      z^`OLd%vHzDO&eP^%mry(RKeJXw)8z)6Y85KPp5+z#>q|jShIe7%we+1Zh`Hx-R;XV
      zPYnYYm9)kMc6TPW>am>Xu^`5Aj+1B1>-LBvD^5h?8WQ+K#d#jZ4Zk>d=!Rq3K_qd3
      zou0J{7CpS3@kEp)d6%pFs7AF|IRkG=3l9uW4o{&)sWLa`f|M3?n{Z-^XSb$hE7T4C
      zS(KO+Xf$k7cg$L2Qvathn_SZ~w@kwsRB>IPdBZ&F9;IuTmaN|7%xn=Zno}_&uy5l<
      z_0W%3?2_)(d&&BW7MawG>}961WE<wVB`<)cS2Niy5zxac#KRj`!5(=5QQ89)ep&;R
      z8=z4SZql2m^S+_%rF93we6y3<S45D%;ZWc=E$<06rt?ZDn9h6Eblw;8rSqyko%e^R
      zg?u53AvL7&=??|cPq8bkJ;Uy&*!z<k<9$B+8A(2UIDtl-WW-b0#er+ZAlfj512~N+
      zM>U2s=;OYRaF&)n>~j(1uf3kz7;_a|cOHI@{rT{L@Q3T@Si|9U^lSudc4?Sku?ae!
      zcY%UcHyp!pu7W}OYmnVs<vV2!yPniBe6B6E$ycfSo?sCTEJE4@3n7YlL0O~aufttO
      z)-lvY5{BEpLGyDA<UQdt>lk_A=~q1cUQfR-tPQALo@Y4Q?~nLHUH1{VtBA+gLFMRu
      zXyK*-m4>#6GP{Pok6y#58Si6S>GwTGzAK`<!s&T{K`y5r;&{aOHKMI*#4FzgXw-he
      zL?qxYkI*9VB1#qTu9uNtw<sc_v_1Ie@dlyG>=TeBDVN#79H-_AKVg&XOP<}ELI<vr
      z#%m<?I(vEpqqxb7LMQzOGMJ^s#60G38wHeM5$_i6qKGf4-9rTrv49_8V-1V=8B6$+
      z`(9$jC4a6;YmIy<rQ8{oQW~E!!$$mpi<~MCv-|;<C@IYBdqxg%S`OelW`3Euci<6o
      z_w!72<6BlRN%<aq@|5J~cZyY1M`DUta)g4<aV_7qjvG&|h$n7LKX>Y{joD|ke9j!d
      ZaI<Z%`qi@yl7VWr!CJP0d`Mo+e*vx05EuXe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DateTimeType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DateTimeType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8537c0394a9f089d0996996deef281ccefe747be
      GIT binary patch
      literal 4310
      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
      IcFDf;e@KMjGynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DateType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DateType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e2aba55a59d93329fdfa1705e96db77fa12e2af
      GIT binary patch
      literal 3469
      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
      V>`&5i6K{|#cad*Frlp84{TI;9ASM6+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea1d9f4d280dc297884171ba3b2ae724772f2979
      GIT binary patch
      literal 2033
      zcwVJc-%}G;6#g!3vLP(64aBMyp|#b7Ko+p1LI90{NJ>c1q|wE8=(22+)y*bd7Qt8B
      z$Mz4<C!Id<O6`oylumu`AJz8UO&YK=)S2$i?w)(@`Oc5;oV|bi`RnfhCQua7!EmKw
      zZ!5bsOL?SO=BDPFbz7m2=00v1%7USrHO(rKEJ9!yJ<T}f)@!C-G;0mZ;0T8PbRl0X
      z-AQHh+5D~bOe(!tDl&B3&oTsNb<4C(cb=g$5-l?b>H4P81%_@3KKL2>a;9zMw`&`Q
      zQ_?mpau>?gb<HYkj>*?8rGM6QBSL04_dt83?Rp8?TFuyMXu6@?&XX8Gh+(+ux{Vn{
      z+1c5N?_7=7or*F!K0cw`Tgesms!`Jd7+?@Ln?(oFhcgm-@jj6h$#K_;rP&pw=sKod
      zNxrR#mb-8cABZ^rAGC6Ia^{AkIgce=z#tWy%B$<e?8<6xalNFjE;2-Nr+GMHIT=JJ
      zhIpRC44G!0CsL4nSBG9V+^V_75Iq%hY&wz*;fmp=>-LuGXw(tAlA*{h`4A#e-tZtX
      ztUoMsHw<$p@yYw)7?!q6x^|3mJ1+Tlja}DEFSxj?8x5}A5)oy%d?I$CCA5t>RWS*l
      z;BpXSP(;KT<bNk3VH^`QSC(N{+^RR8*#NFmfu`-TFx(oDVOnh)K}0ac=}(Zw31vmg
      zJk~V{)0iQzdR22$E@vehO>^ul$IdaFiDXX#Gx)qPeEQ$oreW2atnhhxNB*cHDvg0r
      zQ^YO9uovnCXKVDB^yu`Y=`YkBLvxLCGj{&}^y?V3u<^jq-K2;d!+@u*X>L`yX;v2g
      z`RSH1C8EGEbcAXi0-3r)#_e8G@|Niuj%Lv~6zkiLZe&b;AjrqYGR~b)KdELq@)*wY
      zqlF|N0ubq8=%UpV2;f&j?)ojLcFNraRgk5E>Jtm9U-lPNF;GwgGOc94Ork8xL3#(|
      zuEH+}{!GXYNc5ic-qRFe2Hi+P#w-RfM`yx325}via05}Kpx`FiPGgGh9uLj0-gZ8V
      zlpmvS|HvWw)X;mO{sV+x;_Lw~9tG?5O1eez5<<v&j-)0GAL1jg+)Mbl<uXoRz9+my
      zaKG)t@99>KVTCr9eiE{};^}C*xEGctStQMmBeBr~jKp4Hbbjy|dJYj$Lz4&i^mS)K
      z=uG(bP>F?oukcyIANI@RFVI7u>7U@=!!k+n=Qtl0o}!QA!aj~nz7`U~9>!=l_8i?|
      z-!pD}k(Oge%Qx)5_pz{V@Wo$Gk0>c4Oz$F<RU-bsp!2&-+~1`W_8t|rh7sJyHGD~(
      z`HDKQPUL+})*4xDK*c5ux~upGE-Ki8iSG#a10H(xEHw*n(Zi*A>L~N18`RSdiui=Q
      zrl~C#@GTaoivosFLxyxdimg(-C6DqfK5w;UjjVYar9&*Mu>-8^-(~xr*8uJ3-)MD%
      dG!BB49nWXDiEHO0VYQWy)XIn9w#Uq!zX5xJ(>?$I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..371fe6168773720aa5e9a3cafb54b0da404c53bc
      GIT binary patch
      literal 2285
      zcwVJe+g95~6x{>1WsC}r2`w~9LvCPm6Oc4*F(h$~ojMURi5!C<EtQ38M0{b%a)3|i
      z7xbkMK-Ma0>Fv26)zveSvAKn0t@5CmIdjfF``pI-^Y3qe0+_^xfHsD~Vx=x^mrK%X
      zy=1NFj#aHlwCK*xrYX%;>xGh;qpbiR!{|l238z}N4Am-cdKL^l$*iL0o+mO&MtQuN
      zP9#$~m7#4V!yu>&sbnT0Gjz)v`fFXPJ61_jO()I}oH0sP#d01nv`1rk24AweW_Ez#
      zBN2WC1avc8YFXuM(<Dm)ml(pXxTIH#lIqx2r5HpH!DN(l5WR#n=I%Zrk)kUh^y7+v
      zPmj!8w1jQzJ2eqkag8CM*JP{aFx-i*$Svq>VZ$_>c<dN;t`-+?o#Apzn5>pcq)2HB
      zp$j)e+{7&cooPhZAC=G3jmPpl*gGNw1bKq2imBAg1=G&yR1JoRTs8DkUbiiNc7+0B
      zgvZgg-2zqgvRT{I4O4oi&^Cw>hJkg**_@W7t*x!`t-Iq@yC_XfOiW5k^RjBJn`J$S
      zF=Dso);xqLBu;pOVJIq}PHX(EgtMN)Jpp&g;-W_3%^_O_Teo*ae2)7RVnWeY)y({Y
      zoLbFk3n_-Ed=Wyc$>Jfj<4ex-D~7bk^V|%?KNQeyIA`6ey^lm|HmGNNi>8yTR%(u|
      zQ*kTBG&yz%!WWJ4b`Md0jaPY&!Z3SYI(ap0v!rj6tmz`(bW7Ndx$U^@LaA-T+~m@l
      zfUjwS&$XRvY?{hEQ*$C7;9)1y_(s5E8mJSqCnAF<G=By;qcDhmZ}gn5Uk*WrB4GZ+
      zxOwRik;MW-=caDgOiy$Q<)~Zcf_P5DVpZJS4tQNRK!-Z@UIIB@(--fs&2x=K5lhe*
      zI`}jt^?HpwjULy|t=rWtJ{(7bdP*u_h2eVZ#+$Kp)h_E!GiwZfmlL15GeqbeGrYp^
      zX8FJpGB85BA-~5l>9v_t@5DV*UefP0Y*Tm4yvJAhKW%ol?7ZkX3b<rBrmdH#4b^Jh
      zHq5leOWfU>hH-9+33|cW>1U=5ef-U)T_1nWX!X;#10lNaq|=Y?9WWmjeh+EwLRRwy
      zvzk8~$ZCNworEwQgW*tC3kSj-**6dm(WM3cKv-*!L{!ZexvXmb$j9ni^!<&`4lwWr
      zxA$DfgY=z(NZ)C45+|24^a{_Shi0G;4{;5TaElsgknUqhQS;AHjQ26*TJyh~O`0j9
      z&1mfzK15WD3`a%}Fusq;1ANhP*5yW=A(u}O!BZDV^vuXboK{8@W*d;>wDLROKE&N7
      zM!=P2kJ<W~wlun=^~jYmBF<5MCZB#D=<o<pO77$K$gfDXQC@v}BX99^=_m9nhe&9V
      zX9rNHef_?%Uyxty_x-g;7(JATD_Cy$9;CVeFNi~)_%G7!GTpwUpTh5m&nhwgp8jnp
      zxZLh}UK`x_?j^o;`A(7cDj{A)FX`*VZ-~-ZfZ?)UgV~6GnQnN#sGzboa)2Lp7ul|h
      j!24tQL{5t&u?Xdr>wCbnYx)-H-t#Rsd^4=O8MXcclwLI%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DurationType$Duration.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DurationType$Duration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fceee195872f66b37b542452d72b56fc52b5027
      GIT binary patch
      literal 1355
      zcwUuMNpI6&5Pe^krU?exLd#N0TUtueE$nNB1Sx?+*sDtH{hAnJ<k*lnh)Nuw{{bWr
      z61~A87bF%5Bm`G}4`;+1+YJST1hL|IGah^1d*kHm_Ya={?7;p6A__ZhIrZ%Qik-cu
      zZL6d`%XP90+MB;)W+&@azcS5aa4AV3rqFg<-_u!JJGZiD=Wd%tFM$??wLhylw{k~U
      z^_*=g#OF<2ttqG}g_erzcx5KBlAdQsR4k|NnSyF&(RE7FmuKIE<yhWfg=ji6!|t40
      zGE<16!@w%6R#;uI9P>=QGG|t&gDD*ax2WwIU9}_+i!rZk@rk<%|1I;7LTg#q$}-qz
      zF_nbEMgs}73fg2K8KBJuQUU5SumY_KY$3m&R^)A0dvbZufPs}M^kYa=Y$LsNJ~JbQ
      zjDdAnuMjC0solI=*EVT)rVGFOd?<67hPqzatcv76E|YaBRG^S7`dcuk-M>7G3rSsc
      z>(!!}x5TdY<yMSKzk)I4IA%3x>srmMC9qc^{jX+{%u<Rz8W80-&I4j1<dY0zDvT?_
      zNS}C)@yl)Vt~R19qhgE?zeoFPf(X{|+~ODaVy%Ch-+)eZF)Hyiy!jCy7GXRv{018)
      zy4!lo1l_YssHcf~1N0I7mzWK_$JTd9v({)1+{lr@5so=ZZaHkgBnEH{`;hlZbOnP#
      z5^?OtFjWcn5sZd(Ua=?2cyi<m)Kg53e1<wbN@_xH5jzRHh2SE#5%vhfMQkGM6^e^!
      zCmaxdkDnnPYeac8`3=!k;1oSRO+(JmgtOR!a~Q*U?8gNhXYB;0eXe~0i;%0JF^rR=
      zfeHF8N))#9&mv&`jos3}5U_sm3+oqHDM8XwV~KxI?3UCo`bvUgkEDLl*Ca*3m*1kd
      zv0PoWAxJ7uo+A-?iCAp8+Jk&UfJ;<+g{-eq?KS?MuG8rod?{wRCrvNrFoPnq5^R`o
      ja1#$vUgp3;(}9Ji177Gr1Uvm{ySPbtQ)QETxb4;-6ZH)G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DurationType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DurationType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8103c76bee24d4a290383b9ccbacdd7a9696d938
      GIT binary patch
      literal 3020
      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
      Q@%wnLKySfwCNK&8zt`8qy8r+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26034eef8e154c7f332c266355d848a41e1f7455
      GIT binary patch
      literal 2090
      zcwUWE-*XyO6#g#kvSdq1LPA<nTd6-%NJy5Zn%a<7DS?O*Xal9)w6<L~8?qJ_29_py
      zaK;Cp>|dY{jz0Cp2dy(?w2poEk5bQFkYtiH)1BGf`{SJNob!F>-oO9(<1YZ0u_3|5
      z5UE-nWv5<Ko@zC7L$l3>rO;2acbkTiwrtZjjdqD95(I|WN!CfbQ8)FXS#Q=1?!hpY
      zD&&i$wPZG*&96MlBva{9k->F8%ivwoYo=w|HyGTJXqiDsH8zYPFr4y1goj}`XIe(S
      zQ?D4Ul2)k^Tp-ubwOUzgnS9<~^ej0r5=Iz8UusXa9VbCcs~hd6rW?xbJPo}FFod^k
      zySb<++uPf7+gIiqt*SB~k6%{qt>%jQmQmNd7^lqA`BJu&O&4VhW5NeN&M;hx<T$oc
      z)2ymev|FZCO&nc`mWL3+ISG^GaS~OWo}5`}X{}u!-okk*!-=YrAi0wq_t{OzaN}*B
      zUYH@%OYhjy6K@LWs9<lIZHDO+eGaxof+1Kn>{P>Q+bxZxu&NmfZ4-zPiE^c7qE>%W
      z<~R)3kK>UG(K2e<4y_G>lm~$c+ctJ=CqFs8qZ>`W+LjPym^#*Xxjz^fbFOB5cpp;|
      zW*H_9=Ww&LxoNay#Gr6Sy)vDTD-z}zMh=_$@Buy~y=sP4wYQw^&2sarK7530w4rZl
      zt)$J%&qh-mGU3A#u2W;#jUEKUcqDq1hg0|%NeQ34uBs!9_;3>`O3`fJv6@<|ZEQHo
      z?2;tM&>UU&B2BfMmZNF-|27ZPv}4GKV1?KIDVapF$MrU^<ue~XM~-2rZP>X!1H4dY
      zGw(wIw}=9**)%Lt`&=Y-w9X#a2_A5b2Q0oOT~b?gQsW2z$Towd_gLUZ=FRvbCwHZ@
      z$#C{{Ns$5R%D|{^nMtosFHtPojVF9PV7B{M%LXseuxzIT)~Pd#jZRB9GA6&2Mh_m5
      zIUWpgy4u`y@ltetztKp97ZSb1Ce1Vm;LpVo&!4jD77D5$7F5wwP(4yXmAnPjJK`z)
      z2KiSqa=}O6DaUbvz^+23?(^ds0$9WZ5}2f(J5PII%;U7<!5{x1T$;i&`j1V&#IPC|
      z4UFv}_yTA5aA7}y-^n-$-e>`&93WrM4Hxl_Q_Z`0uMas#f4(QYfc(n<!{e;29Pkwe
      zzH}bR>XNfYGIA7_rm>e+o=wlh_CVRi)IH4QXS#?l2<`>(IkGcBv5SQTPtY?G{t@xn
      zE*2N1kVF<gU@{hxe#Z?LzQ^!OMAV=dSl&bC)vUXV>~qMoK~EQ}cfS!?Pz(w`{o8fC
      z#SkIJzk@#(68qk#xi|N{{c4|(3`Xg@N=4;~oC3yii<n-ca*BxJ4iuD0i+e<uN*4EN
      z_7Go?O%;z(CyBpC1>Zt<$avt8_N-3^AC(A!IioV}Qba$#A}p0e7{@l&2~WToLVG|X
      vk-QRw{g84|h{8wYD^ZLK&WLOKnBw(>iS>nX2|pi_rFuXX*FctvGt>VA8Jgzy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/EntityType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/EntityType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f3dbf93422d1ddfc467049355c4ee28e2a4c44d
      GIT binary patch
      literal 1579
      zcwUWEYi}Ay6g`6%7H{yQIPW$saT*6~%GyqwhjG#pj3Xqxq=let`k@-HM|j(1LCZMC
      zKc)Q*{m`aTtu|Hry+5kzodH1<J5E-Dow;-GIcLtD*?<50^KSrasF;W`EVaV}d(a8&
      z7d-Iyxb(ZBO)oBwdcv-R(w9d~8k#T|@@M6iWVhpc4ZqV1gsNazDA%1v^P5uDsXC9p
      z+b)$W%?3m4+bTnH(+m92mk$}Hvbh$6QSR=EX)v5iA&vyYT+I)KbI{opQIqcm1edOL
      zJsz}p<g588nAp@XCgvHge9vF-ffg9@j_CKeC+x2s8YYou$m~nm+pz7!!^6Vi?Ls$d
      z+v}^VYxc99TEp8H9iGH_0<1XAYSXnahl?r9;u6EHY)v8C0T0`DLq>ksE}o3!TGP0K
      z4^3R9inEMT=G6S%h(|{$e1vPn>6D$)PK6;`JF9TwZPCIMK2h>A4BJC_r*6FXzJR(1
      za^LU2OT^?z6d5kGg)Dc&zKl4vA#86Gu_Op1n^Rr3$X4%%mO^28aGHy%36Ti+fMR2c
      z)|i&Cr5H%9&Z-PN(NodBi5wl=Q){<IgK@HQY9)o6ShDaLY!d~B`8S26u!=S6Lm<Mo
      z+}CHadJebog^ADK#&kku3U_dq!2SNyu*ajm*c*C9Hl4Ed-18*vGo1HB?Q&*#>@qYt
      z5Eim1s_t&SrIzf7>r8bkPAoH+-cXWi=KG1KqO{*1O}0c&gnJ^C+KK1neWQC2d1BjF
      zS8i@{1PY3qyrVq&q%d4ocb7(SBw^BzVVY(f2GnzXKJl03P8oIAh}YeCqV6Wlx@#uu
      zZgM_R{|(l!loUgX{+D#&9Rj-x3-`#1`$%I07g5AjY~mWNWw4GJU7?=YF<ph|8NC;l
      zUt!Koe~?}{#)X%-e2kAL1hZOkiN=ozxU7Lv!!lgQqTbC7d^&<G&|9q;FJb*M#z^Sc
      z<JW49aV?!U%DSav)CG+a5T{~YTwci^V|nFw<bT9We&r9W$M6$oULotI?;T^~pNY=2
      z_HKu`99%-3@SkYD%n)hBr$!I(P-|Gkm-vdR8SU=TNPm8$KW6;=hWh4f>SJT|Wj)*a
      EABKW-w*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/EnumerationFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/EnumerationFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64f07fd2f6154653f7728098d5793c0a4143f919
      GIT binary patch
      literal 876
      zcwUWCTWb?R6#h;w-89`^HSrcNwJ*7pE(+F%RA~_lg`i-ih;Ng0NTzINbvs-1r}RJc
      zMbH-dAojICs(5C0i5emFW#*hY=lkaS&dlZ2`A+~(u;L*{Snca1_%aNGBN3{7VN|38
      z-h}!3Nd~WVGL*49+!j4)JQN7alMt?rP~=)72}_*=aU_CJ=zg$kVx{|S!qkS+%Dg1J
      zsQ+K?Ok&^CIx_C8-Pj`(UPb$|j67z1c<|Xwedqf4X%Oao6fs4Z?<g(bB*U(Z--~YO
      zlt(=g?ul60JUc9yfjT6tO}u1$XzaKwMi&$6*Of>p4aDKVnk3}wjh!-X<F1E0goW|B
      z`KX}Eqm`c%5wgU}-=lroJ&--qZhW)^4}9E1jh`qo0~!DOL|G#X-i?yDC%2V#T^V<@
      zW)b{@SQY;y!lE4_M|qAtlz5%y>>cN}?l()TXDByYKQQ}^^Bm@RopZHkj9bSHo@0Tt
      zM`=IvEdegFyyT)AxXDPeHZ%UGyxUr-`5m*TxOFn(PBCrA>8CvzCt2?q{sVXCc(1iC
      uK*y-Ieu0=NWxIcjV&NqJhcnf?$^N#OW7Bb0Q~XG84G-CaRkiGJkADMGq{of`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Facet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Facet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3032a8003e36775dd48a31c4db787b0187f7dc41
      GIT binary patch
      literal 925
      zcwUW?&2G~`6ot<uZqhg|DdD#iXhZo)LZ~TQ5Rzq_)ZjW*;)b%SCaG0ixi(6j3Lc9^
      zg~Wmf;Gq!rx)GXgDmI?`9nGC{=Xieq`S}aL7G9N65NI4FGxO_7Y@W$DI+R(ICMGR1
      z`}QR?yK)j{WoQD+$MQ^?u}qH4{`feYWCA76@q59xfN%wt>@+#eWRi_!JPV6tAO!Rs
      z*FU(}#Y%w{YhO`{0_9yR2%Le>NIq4^-`jBpR^aw?X@Pn^Zo7dq+_h|nl@gipDXwpO
      zdqa1Wi{-iK>?`6Ti!{L{u`(Agwd(>#&<`x{;GNrZgCT2Gfm(N9**u9N8v+_<LvzU_
      zNwYjLfu?s=j@G}OuPL`TQ4(cu1v*Xlf4f>EvbEF0P)89@4Lrg#fnu{Ysz9J+U=1a%
      zo*P(4g9i7aB=lz|<8T_taZJP3y>ueuk(@@%b5YAaN2dZCS5A??0UBE$rnBiJ>_*(F
      z=jtXu3avrLoXj<>U;!nfGXHEW5?2(~iK_}5#7hcue@)?K;_C|6iEk);llYdxw~6m4
      ze3y7d;d?}@3g0JwpzuR-qa69^a*Fw?QPLZ<J|_A^d-$HU_76O1ub!jX?wq6jJ#X&N
      ow@%xE9(`T9_<Oq02fQF<{h|$<FoC>U%Wb)0qXN}0^Ha9|0`{Px&j0`b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39741ba75cc71d120492e2f21d3f28c1252baa70
      GIT binary patch
      literal 2278
      zcwVJeTUQfT6#fo`ObAnqL0YI<@dn{KfY!DI)HEbEIwa`C;D9YX3}YCaB&^9G@KgE=
      z`qBr`wTdmhJ@-d-b)S=vARu+E@-TB|U%vhA+X;XF^Xne~Ca|uch2dtgys2%MT<sNi
      zomK8Tm9j=J?(b~aTH38}KTjtG0fv#YOcQ>k<XDDN+Hh^*!O)e=WsUrkL?)ZbK3GmC
      zlBvAG(6W?aP>lIhGLz65>v?71uU>$JGqmk28d(E!QbK{#}OF*kFMnkgTlQ?O^yw
      zMH_+&&M};CdgVRaCQk+D86r~b@^Vo#e9tKtL+B!yOg0@tHzAG6(<da#@@yErxTxUM
      zLpO<*@I1a#RdETI8G^j3J5`^G6kF1p(7Ba$+w$XsN2m+4xPmJT7n;Ik#dXP$$`nQ?
      zuBy0(>jXMo&#pJ7pJp2$EQn-ps!$LT1#-%EcC)l%dwIU%QeC5Z#o}&(dye>)LIs0_
      zC(yQKgUY;QS2wt2Ymc*Z3}Kj|Z_W2NrZjD9Yin%l)>y?WYLnyR6WX&m-LTf|5)WaN
      zq3wlec^ENhg6}xPKukYg)%Zz?AU%oO3T~0dS#u(0Lw8m@?(L}f9Cs+gMAlq3GIR5K
      zYB_Jtrx;@TSqRM;i-*yQF9px97}7PKrxqaop@4GU{57XaS)A$9*bJK3?xO7{E9I*1
      zacXV3n5MWsAp~NBV%Wn}UF&5*fH2IQR!z|h&vyAX$r=#~ji`j}+uOb*7fx+k_J)vF
      z6@1Omf2!|n{m?KLg_>1y7xy}l#y1Kc&^o=dc`7n^NZV&oFiL~ycgIed`Nc4FWEIR&
      z-<n!k4HY@e6T=PeRc$FbhH*G5w1Q9QdT`3Juzhmk`sloAhmk;D^z-R^TnoZtLB%te
      z4DDi(l6<pDOEGfPI=|*sw!~f>?&vY8f+dD4O-*gR(iN}7{YJ@X7bGXKa3_e+6=v1C
      zBBu2N`^Uft?W+DCfyu7Lo_sIviQbZZhvnJaw+l7C+5a<RCwneBo~MLe$G1K1QiqMo
      zrf1n{N8Co8jZGL6o*1XQtCfCVTF@hIYdZCai;UiF^lV3%^d0o|gVX_Y5#_hA*{bBs
      zKqzOnMS?jq7@;pELZ6{XIA=zJk@nmhs0ZjYgTEtUwnn3d8Hipm%(m#q##{9Kh0pfU
      z_XaoiWZ-^!PC}*U6a|S>$Z5KNXV69S--CO&jQhAwbJS1zL8NH#XDP)y7?9rL?^=Uq
      zifA)>cMTmNW=4miBl{S8jfs7H(G1opGtN-Rhlt{l1X62m6e3P<Migf1kYn@~y1;9w
      zyA6z>l;w{21{%J!wq$i*$`}zBC_homHj(JiFi}dr#*N`$kZPg22KI*E;?cs7=*=D=
      zVMZVC!<Y*621b8IVWBth=N@5nQ6Vm3u^zjh`T{&94h7=BK-xvpKBphS?}*PbG5((Z
      zUs#dcZr7sLxrx(rd@K1*lJznnUP3q7bK*BZWn6(JS+Byb=f6lAQ7>w!ZVvC`#qI*z
      kl?Y-!7T>99kt7bGyp*x~YJQE_D(P#n)p~4(HCa*TUu42EPyhe`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/FractionDigitsFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/FractionDigitsFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..683ffd4ebd0a9335e1b82b407137235fb62036d3
      GIT binary patch
      literal 854
      zcwUWC&2G~`5dJ2ylO~v^Noi?lq4egs6ssqGf-0d@ks?KK0D9<c<7|_yTpOHqRUU;K
      z56}w|6%q#oR~`y6yNSYqD(Yotc4oex9qsQw-+utu$4(gqLO4qD@Zu~E&qb_;LaQ_h
      zISBpny$rjVh)m^Bjg+2rMI?0@4q;~@$czzO?&Xp|J<d<mg&cBzOenojiP8szJ->I{
      zUqtjWNm6ZV?bZ>&>7+whMG?0>RIp5V<o9lluYj=P!9~er4G(235o&#v$XEH<KxS{n
      zAZELbej17RNMy>~XGKSk)r7FWQ0|&#wFy-*cR}!P>X)!I7L&1gF`?+Uc!wqVAr~>b
      zSo8a*;#`EWNJio7!KsXNyTyxjQ$3cMdBJ~ew(%y-vq*N8dCtZ)Rv#M>{|c7l-%&u_
      ztctU`Sro@2cPgmzd5do+e0MlDf)#J?8@yoi3bkPC3iU4*y=r=P;tAuQ!oxFWdX76>
      z38qM_VI8oUQ6ifet%A+&V#8`Sac`y>ax_zJ@D;Voxy%%LV5z<7z>J!(iLDv<9ZwtL
      x=I$@hC#>%N1Tl@F`V7~(EdC>0wj1cMmqYf@vBc|B@Z56~_wm5`*|xZce*tvax>NuF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GDayType$GDay.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GDayType$GDay.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e64eded39c4300738b9a05d07401f03c63890f59
      GIT binary patch
      literal 873
      zcwUWA%Wl&^6g^`*aT44I&=e?80#vAJA}ls+in>Vw1-Y#dQIXh9l2PKyv5W0gWW#^3
      zLu}Y&gM@^{0>PG#LY%Qfi&~H>Yvvx`nR_1d^VipJ03P734MU(l2*>W5QQ#iQ!0*e{
      zk3yG4rjtYEKHZj+4#AoRHY|a~19>FfK!yW%uX~_+sg0t*(n+@!jSgijyMYog`*I>6
      z+5*K#e(0xLY^~S#1*}%oR~49;b5KS_V8Qc4wL2blRouyEFL_Z<2KzGh_5ZACr9(dv
      zXn5x~y(v%{%4DboGxc^E0#ye#O0=b3k7Yo{>biG2*k=8eKp{$pD%Nh!91E0tSyt7F
      z{zJgv#-J}yc@d4{o_gZz40C_{-PZ#GPCE=$+zMopsKmx?fwl9b<6~%u8snH;1up1R
      z+$}CXD?1m6TvmNn*!TkH6M=zw?!~P65DVO$`~ntnk(F_A`ONTVEKN@hZ~b$48CPb*
      zFL~Qwz25i%@eb9-cL>sGs`n^ZQ<L8@<ve2mEk@YJH9XF!m-F!%wMJKYrX8&i=OS-;
      zM^83$k$YNXr+Fe{PBqYt53r4ou&lpTR~Q9&MpchNc4&Q<3VYbV^UOgl=RS7OoH=l?
      WiW}_dfHyO?Ror5&WbSIXgVJwQlB81r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GDayType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GDayType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb39e466e70c083ba658b0a138873bb09bf2f926
      GIT binary patch
      literal 2407
      zcwVJc-EUK682`O%drnu%RyH~qI+=pdZfqT(RT!Y7Y_n2YptDd0jMMI<JJ6lh)3YyQ
      zV*I+$_!VO`m?#p(8N5M^%!rYD?@YY(!o<XD`3KbBds<qQxh(NCZ_jhy=j-?Up67jk
      z{PVjX0PKXWqDf$D!JLWAPZuMzTG5!)Y@=jG_|oi!vK|>dq%Dk5P~jHXv6AJGU79xX
      zX=A!v)TM_&dn}bqj~yS1C*#S{iIJh$@K{=)X*@3A-Ip&KrePltaD~Dd0e7r4sW(Gl
      zjUOH;0<8(d)RQyQIo%r5az%z~OO*0jF{4?A{H|>(`<yT;0s@`qwOMW60cdK|dZn!8
      z^~kX#MK9U}x~FWryf+e=o15#O+udKX3Xxp{13M!pk0jFhDScY=Vm*NrSg{YS=<uTj
      z8w9q85;AV2sF{UG+O`a{FnI4yIMa+y+^1p_JyxPgQj;)pmS!#ZaX-3P=}<B|k&YiZ
      zni!rK%N`vT2qjjE(4ctG2NyO=oZSK=Rh-M#Ke*a}PAlvwqav_vMV~u!F(?o$=yt4R
      zR%}aSFU-OS)7lK+4uxf_edIQOAtPf5>|c&d*$GQ8YV+KyC&<*3GPbSH+YUD0@O)k`
      z%iW5KFhMTsd#EPVjU`XLemsnAKJ+1?qF*5JZy<gQU?(T4sG9|Q${EbKG~eyVBY2dG
      z{FG)5*|M;BIOfG;97)4;$my1JbW@zseF$NXY{_1Mj!=BLNs%V|q{)7gw+tb&P>&N#
      z4*fl90X1KxL{7>o$zwUJOF*zAo(j$M>f2%vVQ}TSVmy9%OQ$kZ&7S-}?Yhe~l{>HJ
      z?Lid@f$(a^YU`+T3J)VGdGg9O9QETEjtewbW^xq=iexVyz89enW5}p@Mqph-7bmKM
      zZuxNnCwc#rHLId??>{;aZ)WaOevE^hxF)p)6=!&%H4N*c#cmW0Teq|#4K1AkdslUE
      zoC?_%U%E77<@FIm-ezm>X!~U*0e{>ybt_iXDivLxD5>U@G86A_fsOL2q~w7YDi_J&
      zmkBrI(-Tm?_hnsbD(m*9vYvpF$|?bVsR4d^1HM!?pahyzU&Hqmt()MNKJf8B!>A`H
      zoh0{JwBr;rjiU>vu?1(ajruTlVXfmOpO$*=VPX+{xA)vcYqo7&Tl*4%*RgR44>Xdr
      zIPi0n^Jv4Q6Ubk6!-IIpDQye3)<X94Ep_he@Lj9NP@KJ~yL{bsUmkN>ZFlx~L}V24
      z6J;-VZuj)=SVB+l4eU7Jin?7<k1MJy;!1B&xq)3#HK+y#E@LfUdp-pfuLa##Wr_2s
      zJ~C4W*D+f3eS)(=#Zfb3L%)G*(;|}Ys5_{*&qY0pICvAGY*1;7F5&T8Ro5*+CFq&F
      zh}OGRo`%am_Fqv%Q0cn-*LV#MYpjwlS9=!&c`jjt^pN(0w;ED|_E~mNPKSaL)}YKb
      zJd1U(2-n7D%<zcKa<=C16rMv0&y(C2Z~-sU<0V?WOwFtOf1STK@GjoO$9M~u@irFm
      z4zA)o++eI*cppFGB7VV#_#GeN4_tCubi7J_twmBgfF~TXZsSP|5#buzA4H6!(SqM_
      zh?1M=e&s~PI8*EKB}OPIMEU_niBY9@98cGVWPyHi>N{`ZaCQktl6}4GXX;y|zd^R|
      z+6i&ZNfu=9PS@z@U|8TY0=vTSpY!_*QgPLR+fxlzhuev>HMpHMxL(4Xz&WOEg62@1
      P<1~YZM)2kkoNDjif}Amc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthDayType$GMonthDay.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthDayType$GMonthDay.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b9cf6ee68bcb0a360e6518f3d9593950487d868
      GIT binary patch
      literal 1006
      zcwU`SU2D@&7=BKYHf>E^t*h1fu@CELH!+Az!HI$$TMOM(RwsJpX?tig(qty-us_AS
      zu^VrCBM5>QqPPAi@jYpXwIYZu$@_8M^L(6>?>|0&0dO0uIuwRGeRpWS9XRGOckCVy
      zZO=6+@Nje_%$;4&4XrIcYExB7Djga_;gBD5)8TI4e9}1--B3rGVg6UQ?hTH(&pVD_
      zNDbsx2G(Rydwj%@eqg(H_>jtK?SMh6dp(hZin9iCIKwd4vR$z^9CU==o?sMPUY9!u
      z+_z;NH?`2R1BQ*(f7sY$$XGnEBz2^tnFYfI13EG?yJ#Sb3`rGlhTI{RQnfW}db9S5
      z+<BoTe5vq{Wy0+bdJNfabQ+@V{RM^&Cb#bm{jS)yBe%baz9ly>7){p|e%;|gAOal~
      zhT1>-CJjlAC9<c|lY&Cu0{MmfWuvIkLsvkn24yBiMlrSa3Hc9{D43&nI%?iUf!@Ys
      z0OwGo$Z#I>@#cFpE!XmEA5khSS`^B!$1@<0ra<xu$R#YqAU;j26szmsz}{hH{VUk+
      zO#+mlCn!)_mcS=SX=9cC34Ss1vPJ&3326tbXhvL16TFy9W|wg#Vq3sf>PgYpuo&~7
      z#{7*5|Kl0{<tcu3EECx{g|57ZrpZQ04kwK%eJjy<?~%Tz#Pkeh>{G9e3Z7#FFG%&v
      eDZPzEZzIurKh~?zj6_|g{qpwYon6NbWPSo#pTxQV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthDayType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthDayType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80001ae83b214fa7126f1de9b224f7767b456a8d
      GIT binary patch
      literal 2527
      zcwVJe+jA3D82_DSvzsnU8&bkeD^)5@8rl?)C=}3|UW}v(kQxXmWwTwAEt^edv!$)$
      zWk#8Cgz?2I4~~eA)=^Y0BXz_PpM7)2M<1MV#%K8l)bDI!0#ZAjac9n+%Xj;IzwbMn
      z{P^d$-vii=QxaMj!Ubz4I#)8Ir&ZIKQXQjgMQKu<`HCJL8!uZ<aaf(7pq&JPVcT-*
      zLr%G5Xc?naF?DXi&=F6kG82b~5~)OLY;trcJ~EMEXgQu>@a@%1!!n%x44zOp%OJ$d
      zQ+g{HRw?j8WN1$smY$j^<#l^P&70&dkSuGenN@9r@9T%+Ue}ETKf}gp^|U(Y0<_eU
      zUahE_9zB$zr4IpyuA<{q_C%wzv$OrPJNwIaA-ZE=V0-lFcrv3E^^)qtT87rbKWWQo
      z$2tXVSkKTCN^<8>Q?&}wjAI*CVesygaJCg2agT&eWU(AqoS&qTw^e&y!M*6Dbca&8
      z$xLGWU~*(~B6o0vA(ULsLzCx086IrrIJ+1|YdDuAVQ{4m-Fi4hqskCj*5-~58Dt0+
      zbSGZ6s*bHvRjk4&#dgSx5DN36%fzyFD$5-)>|2UaUK3k4)j2wAM9DTHlW#|#b6kM(
      z$egBE_-R!_m|^RZw!`&BLz$BmQSczP%IHH>LO+B5-#`=$U_14esapl7=(cErtM63s
      z5O$G3E2{R8!xKw{<32phu+A_|y`Y+14NkgvTp1zk=C#>FDxt(uEyGpza+Q5V;1Z<p
      zWWB`xjC%#{5;I6zjTYWAD<qIoqTCo5RmEE+HN7_5<b)YCG#YWbjGC>JFk6eB`adPR
      z%`}~#)-`8PLXu(Uiu<d3ta&jHAjKK;@uD15a0rL#;#Oz!RTq>?bs~H>SQ!(@N_dK4
      zO;eU2fCb%Fa0Ex`!&Fi2s!nJBQH(?@1wW?XIEWr^i6i15p5Y))aGRy#a+{M1RBq#$
      zQs*TQza34rMt4#%O~cV`)g(n*ClI?<egT^VQGMl1dB)cCQN#Um-l5me12ZTI%hK(*
      zsaC5x-O<*D4mCeTr(X$%4g6b7D=&PIXpkE1EC}FFuV4C3&UvJCPVl93UcZ>miGJEi
      ze%ku{aysW1{jKS1kgt$-3lwexncgSJ>m;pCQV~^jAWxArbYcoypkph^!`Ok<t`&dU
      z8nH(R3!}NC_XgT?fi;1SMFg*6!y@i$25EEQPt*Do0x(@iO3e)S;{i9dE$FVh?5CN_
      zgsYG*H++chS>-lcp<zp357O#!&*;{1FYG5;`{?9WZ)DpddL!4dZNDcbcw$~pOkBVx
      zk)U`TJ7Q8$@(*0ZYMOR`1QMJL3ZL;5=TUojq;)h7kw)JKm<)=pm?Adi>uGFSKw5|i
      zK~Xpv^DZEM1EE|{48#`k$jzE*cTfy^r@R-?e!I-uw7KK_jL3pw=f%H{)$w$rMm`^b
      z&YGk3+<>bO-fXU#w4bI5^0$attil|XVIFJn9Kn4aoACl&lNYJCUcwW28EKqB5wB8#
      zUZZ|G3kT=O>UF$=H)!`3-o)FufOqgA-o>XlkI(TQ7RlEScppFGB7Pys@Aw#hV8JcX
      z;Trk%67ki3JnE8l3y)!l5UwKq#}TL2Xv1$9rj<bGex;6zQ%|kMC5+NaB&6ptMi?cs
      zPT<LUlbj=M-t|2<a3Hsc@l;>L>${HhH^_XATwlab)qUFCO!i$q!Y;d^d5`7m<ZN;;
      z(j|iV1%mjJV17l?E7VKZ+yr`S?i&g8&}FD4&{I#qNB<ObJWC0*px}~Tgh8`RS_f!M
      G!}m8<yja=*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthType$GMonth.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthType$GMonth.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12e7280be0e05616362a17dd9465e79a09fe2c13
      GIT binary patch
      literal 889
      zcwUuI%Wl&^6g?9=aS}{ZpeazGgomm=0u~!KMcsslf}B>UQIXh9(oyWnk77F&Z1@j$
      zhz*-;kdTmAAlULzh%<K7pcW*MHFNLWne+0GpI^QLxQAO7N&<IA(b#zv2F{TT{C%1E
      zapbVb?De5?p7i1<^ZIOW7p(<TVE#ZJNhgre$k`bjs9|QIBCs%<cH;0*CUOucfpVyE
      z0-`HWdEiHWwk2S!uI&k!op@i>Vc@Kd8tMWK*N@cpI2@>?U!c#s@lXbPGV%3!Iy5uS
      zPX!$JzpQTxR6Ut`S~PditwEq^!$OtT)XT99$l6?WPsZC^d%+xW=BY$GI(02j8|H~s
      zKmH2=!<R;(Kz%nJCqwnv*Et$9k9Rdh!0twoN;-i|Q<Yk{A+Yjq85y8Bpv6!ISD6bs
      z8+Vh7KbVs<>>O5oS6=@N`y-nY=D1h#;e9l?+r<OS;~XnP<H9NMCoD`(fVch#Uc|*I
      z_&HyfSg&k+hj@$T#y1GkXsUN8n-hcIG36X%03Aknh|74CQ!f_qDYfn{@lHEhVqb{7
      z;Tw%?7a}WKq}QIw7!%#-!FyPx4=~N&RhJkAcuG~5L3*^lO@$q-<5}*YRd63WXipv3
      XSjJV(biivl+cK`R)^m3)+(h*k3LdMh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GMonthType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9d0b89a94b59791a16a6bb598e4cd556839cf3a
      GIT binary patch
      literal 2343
      zcwVJd?{8C87=F%rf9+CO>DIx(=@f)^W4i;i2m`d1ZC>qKptDdAx7)jGd-3+R-rlh-
      z8lz;!7!x(dFKP@DO-PI%5aXsoM85h*sqeXMS|Ssdc$3rfo^#$G&-=XZIsN0$Uw;E|
      z5T=YShJ9ssQCqG$+7-jG7YyI7xf)G|zf!lf>6x1AS7u3+Aut?xm~P6iRc$kGSL=?&
      zEf{*!xom#+Y)a4S+3C5dRC;nY&(L*IXHbrtj_un1Nrq57QD6|#wFRpi3|qnwAu;r1
      zY}d*zR!f#QYm^*v7tPd6!zmb^&DX6>>3HBqMucJDvT?;&4gk7F)oRoY)6&jlNmLMJ
      z7^?Vw{g|dLEiH{L9UiNBW$n=T_(ARbOeSwutg4})j~teRoK^IoKa6eI!LUD`;hr_e
      zaLZcW_iVR3@!(FP(2W7?ma&U09!3-=Cu5g9!&?dC5e!nUscdmBug{#$OwP>~Pfs$$
      zGY|97A$dYY2#;}`Lkv?*oEtJQu~~;fG5m_%_%9Hh-k4yBl`TJAa~r;AP(9r86b1Il
      zg%D5ha;wCz`FeqSVK}i7oxB>J<rvGf*A7u=hb7;>wd@Dz)X8Pjs`K53j0AP?hPJ0#
      zLR(qI2u5WbV2J!Pd>CWUsPvBImi<c5k~&vE7{(zSrUSELcqyN!qbJe|o@VH?9mgsg
      z&QOzvA!2CJQW3`yUW{iL`s4aWJ;GIvaTQM521M`##lRVF_y>*|WV1;HFV7}Pql73k
      z21b<-8>D76XOEmPn}$gvO;^wKEIKSSqi6q5neH>ql`dPRKOy5qhSAM6)ZXdV9n_KG
      zTq(R5*)VcA&CuOgEHwf+oIySDAW9WyF)M@Kn(du4osg9+FN~K#6f1SZYgn}RFICXH
      zDfam=ibxSxRgOl+MS9XYs_n+2nmD#^d4@wodltFWHhFPcc~XJYd~MM)ttp$oX+0f{
      zF&>X0th=t|r5&Tuu;^AvO$Ch8dl{m)oM9(_G)WSnK&C-7(aMDY{tZXuJ8Cf`=Zb=o
      zD~b^*SCk^Ok|VTKB5JM}ks{r>AEEw0+Fb~98>sYKAg||0I!{$7q8Aq^(nSp773{$!
      z?4$DpU6HMU75}!iV^0zmMsx4*ZS)kQ+oQefh~2`@bv)V$vMqpLBH2U~3xT6>(+rQ}
      zi6FH-*xPbBMl(MXZb7}-_8|p(mHTXkw(XMyu?zcyJ-RU53ww`bg?8?ZtYP?MC@F-J
      zVkjxyz*{3RX$|8^IVMNOuVX7sN526b%*TZ9g6yaPJ6|82kA96KF{ydDueHw+?4Ysh
      z2KEa{Atnj)N%01D-$uL`lcG<pBYF3Jc~xRDY4G}AtF0(|TR!-R4#va<@fvn;1FnAb
      zZb$0Scme(3)fQ2s)auxRH?SQI`aAL|`9-Sb6+DL(Oyf<=<831Q9lVBj;ovG+tkUiW
      zc%N)O!H4)3AK`m^j5U0U-|<;M>)9q@En2yB947*R_iz%=5(*J_C_;+Lso)npPm(|=
      z){rJiq%vQ{DUu{Y<Wgr$QI9f0^FphzD`dwzb>KGi;yPZ+j*f_HnE4rJe!{uYo9Ecg
      zAXtpjywFOypWFhUQ@AhChc9XU6|sITfIHlD)`mMk?b?Jp(1NQFq)T{}!ggUUpm81s
      M%_?c>G)hqZ28Mbh;{X5v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GYearMonthType$GYearMonth.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GYearMonthType$GYearMonth.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea64e7c46643c2e0455fddf3ef203ca061cd2587
      GIT binary patch
      literal 1014
      zcwU`STWb?R6#iy+lTG5r#@HCGm)>GYQ*rU37OW^3X%k3WrLodJIZ21?mc7)?rkJ1N
      zTj`50c@YG`2hmr5lz3*dBrzh0yX>4ZXU=?=nf>we%U1vou%bg@Snqf}^PTIMXWX%m
      zd1(8dNr8v`Q(<l&3LfnEUT8IGS{hGvXbia%e#T9QdmVGHbt2lKjwHkExLWnyQy%b^
      zBN((k?PXwfhJ-627?O`|&kmn3sO8lI>Ztn1A_End4P<bMVWwewVz=kEM9>_9<QsmQ
      zI|n?l<vcEGp=Ea&HX8rsWRoFf@vbGwBPI1T7_J%6k&@YU18Jm4ta#hw4)GMqjcMPT
      zt4HL@4=oW$jejf?ZpZC2q}$Pfh^GG+7&@HHzTXSlV#}7+uKq6jzTClJ)ICoGRfl)G
      zqN}6CQ2BT3#4s*kfgGyzC7{qhL6#w(bQCrE=pJa*pv<JmC?+bOk^M-Cf*Bf<QSl*i
      zG#bMOTtS{9smE-*d4sy;TDI~Dh1|SFq4;Jn1@d$PBs&7Rfw>qYpl+37dF?ycdn~Pe
      z1KYVrfD-f^IZBHX_#6pspwc_S&qrRKlfNxO+Qtg%5!b>HFXocjP27su=5U*8QuH0n
      z$NU#De{IPBY>Izzf?plTL>4ZfD<7a~vQUuCqr!x~rRcnON#6@%dWj<Tsn$dZudt5S
      hr223|Z*8QvHq!ej)~isDL|vr)^7iDNE#odyzW{#b$Zr4u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GYearMonthType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GYearMonthType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc4606d9fe1a8ebce23c97b7f737f8dca95cd4d3
      GIT binary patch
      literal 2559
      zcwVJeZF3V<6n<{A*-f{hO&bCftyF=MG|-f{APp2tXlpbtKx!a@w43dcY}qE6&6c)~
      z4vuzod_iZ_866y75Va2D2gHFo!pIjtI6C8J`7`Rdo0t@-9UQl_d(S=hoadhNoO5sU
      z%O5}d2w*1+2~7;W`Ql7yZrTW)R}6hpvGh_gM1x|@m$lGnR#VJGsc03(XevQq*uI+m
      zkX4%2)wDicHZ<<R;Ekq|>9ONOv1BYcIzBQK9Ue<FG@XhuxDKd>Uev8Y28Tb8VGyFF
      zNv#<SEp9j=GPK3@qL!SQ&S~bDk~0XdBVJM!Bcqr)pVyS)0UJhwhoN&yIj_vw0Tz{M
      ztx{H0Ep#kNq6-}i-37}k4}?Oqv$K7(yZcIJKD4X9e`n}qBA!+Y+O*=rS_U~^&s#<t
      z*16G&^$gqmagH7`lwv-VwoJX4kKC^bWSY^5ha_wykJZTH1jY57shIO_Jd7^NcPN=1
      zPsb8R<HO@)*`vb@{`hJL4Wc759N5I;>}D9L#<?O3kp~5|3t|=Y3YC0SpL=^G!r;qm
      zR<u;CSf)aCDdtCLbBkaEe}I==CZ5%E8IHtoa3xB4RZPuL=15oHCR5*<uq|!QvLlp-
      z=TxoCwG{~ghMpCDkJN;^F=s32##Z#m*nyCQJ_gS}1977tJE^-2t(dn8c9X`q`EED%
      zU@tAG1;re)cw(_Yl&|b_<8ka~Xs*oUDmDhgI)5w{xIal55ge3ofT6vy7Nf-Sn(4+M
      z4$=82D`rI_9Z|XhO@WvTLv+A&!_e}I(QVhEn<_M;$?zk}o8gGP|4Kc|O-8uM=)a&7
      zxlS95AG-UN86>q@2Hv9&STLfHxMX0|1<neYY1Ppr5T?_s(i<f{=P47q1yoZbn@lx`
      z<p1fEWv;2*l%`q{2`3o#K6qbm8C`ZIWRT_5xtd8j<whC_Uj65I_0MoRS1LHSop3`z
      zf|8!*I1(sdZ^N+OokXsoTbijD)MTZzXDb>J<S_Yn-+wrY%R(mV<#cJrRJ9SE-<aNe
      zE&F&74DML5sF_hisZ=yNuX4kPP69<h|1}sk@T-|5CtQ%|rEaHL5d!$r>yd8DS%;L$
      z3a(Vv=@C;|(L*!ILsOSWPGvo!r#bZ<<ZsEk32yEKnZ9QTb)2LLB36MHIoe4@7bdY8
      z8hU6wfL&N)d-12WzV|T2!f5pN-a=cpqrJns1mAURSi&QXO<L{nr$|1B4j49&yXuBV
      z@tB?3W^AcJ_R+}KgzJ#6)iFd{S6=2T)P3nHA**e+j*bLJVM`=)w7b2*?Mvtl-o*An
      zM_6!#osO`$h>Jm=coVzAl27vN_zbN+@e-OBoNN(g()3@(8XERr0hx~bgsXPeNTTtq
      ztvZH-J|{;C54bvAw1;#VEuF6KF>ncOx8TqE#EvJHaQKc87JQ;G5q2)#t6vbAPwcw<
      zXXWorw%Qq0UvHPsIqCcq>$wNFAHLI&8uU(KBYn>kMYCwZ9ML_Gc07;ucmbR6B7(R;
      zq`pMII$p*hyn@46z)8GD6@MK%-XP02@haY;*+smAxA89heL~trypP-X06*bF{DzP4
      zJ3hAQKV2oZMn9LHM9dEOE}p{E6jck^$C042x8hf#EkVU-$InQS<iuLMhodBk6x{_J
      z!*S|mojNQ{D7>%6@Jy{0Zjhgo#)xY$=%8|O#>E8(yM;`42`2}HP9f;%BKC>!8+evx
      zUBbjooVKUqox-&f?3x|eKDr%pHM)9i=+9|(h2~$-Z;UUg-M=FJBKG2Ivb>7@_{L6k
      vPj&lxsu4O8)l?(3RGSc{Bf?YNfNq>co<eRy!7h$Yr2!o)M%NFc-go^4L4IE>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GYearType$GYear.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GYearType$GYear.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..586112b08a229eaf175a21c5a0c5ec62e4f13191
      GIT binary patch
      literal 881
      zcwUuI%Wl&^6g^`*aS}{gpeazGgs0jjV6kCS)J=FO$Zb^-6~S(jjuKanU2LZ!8~%eG
      zV#6jIBqSsj2)29_;*1@os09fW&D`sI=e+Xc=a;Vl?%{?FL!i+QNABxk;2z4r-;=2y
      zg)WOs#|O%N@<PeD!|rC**{}rW_vN8<0~z++?e4znr8bHJ3rEvdG(3>8>;_7}8WScU
      z+5*J~e(0wg0_Mu<E;p@cPgP*zw1YA#0&|`ps;$wmtKv=$KI=t28SKi~*Wc5jl@9zw
      z;EwknzSjjx1DOo8WTxLPL!josMv2DMtC0-ISzGarXIo!=DNu;gfr_=C6KjETFN>=>
      z(O(D{-RO@6D$k-(+*6NzouWE(cvm9?oOT$hxE07GQHhOf0=NDtAl+p>>P%$v6nLP6
      z@wRyQ-*R$_oy)3sg|*LcKC&@T<z38%_c6!Y$sb@IXIPmS=T3k>VPSF%yzxiyBF<02
      z&-vP5z0~*)@fNklHwe;bs&^<@6O+FgWtB0279%{wMLf!=7jyWOT6Y(?(~g$d=OS<T
      zMkAZK$ZajM**ualC%Vyt_ppr*u&m!zmly?jN>z_RHfeo}3fox2PUfJVbI%+!rw$w}
      W<1%MD;FXMR8CO{=nY%i!qx1`|NT>(^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/GYearType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/GYearType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17c153429126ed3406a9631295ea0e803d095236
      GIT binary patch
      literal 2299
      zcwVJdTW=dx5dKbL?>df~I7!_$l+ZwLcAUg%3n^`SA$5~raO}1YZnqc0db@JAY}RJI
      zZc;!<&<Y_WZsIL{q2i$uPo;<kQA8hj<3|DCSzC5RLllXX)@OFk%r`UN%sKw^uU~%$
      za0sS~4uSn;r=D6}wo^BC+q$lMR>eti(Y;$$Gc~7~y1PJ0ML=M5Gt+6WvTPXzYq@Hh
      z(nDY%ozE2(E=*@~ncUps>~wl&p&-z4B_j|zVc3>qd8Y(A<B6g`AYHj`c0r&!f*=%u
      z-mK-Ax%zU+bQkoJO}PGS#nA1d?ppG@sZ>t*Fe;(~gE#b>`l_Fxqc5Aas&1I6^Erwk
      z^a~6xd0zE+Dz&n*GQM(TyyBKqhbJZur7q293&xVUtcS2&AXt_qhtZ225%gfEz`=M{
      z0;g=<DW?jaYdPhqXEljp7Y4Cg#dGx7j3>!W)+)KWdn<zHF~m}*bJ}7dGk-2Sv$&w0
      zn-Pd-H$!N1JQYSK_Q*Vk1!fz0Zb-n?RssE9cuQ7|Rcz|hnv5xdSlRT_6{qI8I=kVN
      zXBpQcLLi=y%?^`Y<K3bJ5jeRKo3a<KY3r-hwIUQ-QHkxDtDc`+cxKfwt5RE2kq|hr
      zq3_wI&@z@pB_r6617VCIrD9wl`tL*{n7|><lx;d?Z^<9cj5I$I!OM7s8^)6EPJ6Pj
      zOd=h^QO>yK`0Nb(d<;{rn_<LpOg81Xz>aukqgj!tCn7ir9)PY|y;SozeDh4=S%)xQ
      z!x<IR0)6eh3`r@QZUkwZ<%z25Zq1~Q?bv`~Sx6kSGOM}&upqfXKYw}Dp4k>qjYb>f
      zcy6&_q>x++2u?w;Ml-Xqx&#pxUxRO&eBL5?Jo|=g(x%u*BKLnL<tf*E>4s@|Qz|YB
      zB)2ru`{o*VKoOcGEYwBmN(2SWtGLFVx3OFEMS5(@GhN+g&92G%#<q5R8nMV!xKOFP
      zhB<4=YptiXKQ4m_L^6(Jx@lXl)l8nOpuf*?Wi;O90=wj`NhydBRK6T5emMw0J|j`}
      zx3Jc!=Cwd5uLYw@UQ?p{QltC~MZ<Y5szkf;KOy`htve8rJ_z%-NYsmzE|CWf1Gvmc
      zS1^RD*o$j8!2JXcW1H_KpPp9i8RjCm4vaiTuh!q!Kd_G2L+o0|3+*61e)=WK2KsT`
      z2Z}V@@FHIFOWTWmO~`Ssaxd@@;Rh`Y#n&x8<r`@E^1RdPps(ZHN)&O8a)_F{BgxTq
      zj3ggn^i=0$pmQ?VIjP*o$z)7<gu|0+OpT6xhn|?ShORq7aUa9fOx(jZF2}wHO?w|B
      zuEmu8$#uN?<c=a@%Fw;P|A+;C@ToY8_A`)-1&1DC>bNpU@KN<1x(AhCaC!|pC5A+p
      zdD52J1m#GC?4yDTx=|%z@1YMacEZCR)RDvrX<6mJ`TIDH4{!z_(#K`bK7x&pY4Hg@
      z#ch1e-!**ZlXTT5^KO$QDZP%2PuyL+fj1esoAz1EvpGHZf_U?!tPh_fPbrA)ym8J^
      zQkX#s=W&4(SI2IikBr}p1-#X4Se;mM0%MO+)Yfq+H<o14KjZS)gNx#UAF_{qzuGKz
      z2f@LBA$*A_zT(a|EdN_S>5&FdE9n^CZYCXTCLQ9KF5(>~-2vSvu*9hXwSr?RI9;KC
      E02*}}?*IS*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ff9248e6ef884947ddeece664784404b00b28cf
      GIT binary patch
      literal 1627
      zcwUWEU31!25Ixrj1PZZT9PBu)TaxAjjDzq;oW$5pFou{GLlRLMO&>hhvI=U2U}V`Q
      z@BJa|Q(s$m#-3?1?R)=1{!7}ug5sv}c%m7hy?gJTJ$rU9f4%+v4*>J1${1ltHJt;s
      z*S6I|Zd-fYvpSASAMU;En(CI>+prw&zO2(qhQu&;(eb?3X<LS7wY#<{A{YW&#TN{*
      z%6I&bt2TF<s^+<t)66kkE_9rIk2_w2+XrSC5r*;X{KDeWz2*B49_BX+o5d2tM4?vI
      z>d*7#YPtGkr<5-g>l(wzH)V$Ks$pA><*ieiWU9d+6*_xn1cVcXf=diz70WTJ2kl+c
      zt@B;m6ihk>w;SBG#CqTit@<!B;tbP*Y0t0F;cauj%MDX~RwXlxDTYML^SUdldUSM@
      zIa<tg+@`va&CaVYwkw*^GTS_iX@*GaU)>a3!N*Zd;1h;B$@gV=-;-)Y@F@~9KBI_>
      z#1;ZqtX-F~L~$KAsN8&2-_gq3Pb<Zpy8g7tkgQyUaMq}tf&gv`p0^lEeV*rvko!<T
      zzaL)9+Gj{#81v4E(OATrrsq$F%c(0)vqZT)LXnaw(R77WHok8NAcnQ`6cs&jO`G?~
      zH_Xx)W+rUU?0G&xrPwpfuJG>5$S~YKH+FMi3=a#jvQf+;tzZF5G8Sp%{!b)|dswE~
      zvQ4Mywfqq+i{lTXc!(9+Fk0Nrd!n#%svve&qgVqCvurtgX0P^bf2$nEV}>cq@x@CF
      zCo6F%u8o4b*bsdyFia-P=ZzCX&_7DRM!$A37ayn+@umV87)j48dJTFhm!fqJT*E9`
      z{-t`ShZ(^ES-OS+`kNWSRRj^DmF%y=w5GdBwnTOmmuY8|R-D%2xjr6xt>^)%rc1$^
      z9t_p=kX+N{a7_=7hiboJ>{lP=Bl^9K2>q@Qc#a@f31$s3tYZ?7a1D<!LwgA<kxxX3
      zXJVMHNTitX%)Y`EJvJG;dWvhum^sDgX9-6A3W~(CL?BOmplCmglHZ{(DT&koGDBan
      zCmmz#mmx;T_kH=FSZNqb14O6hd>^Am3Y25AL!zwN^xP@b^a<wI1IyCSxRs7eC%C^H
      zjD_RD6XZsI#Mmp`)#Fm^(JAtO{vffqH1pHnZ_fDNAccWvg!h~j*U0x3rqRGnd`<n)
      wXbyFs*LpwWfS0f~2fSCP`VygCf=cyokshPOxlEQsNK^QNDicCh{G8kW0E?@54FCWD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/IDRefType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/IDRefType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d18c802d280d7163c85f840b286975515550114b
      GIT binary patch
      literal 1327
      zcwUWDZEw<06n-ug$||zS+}x&9rf!1`>0XR4W11j?g@n;K2$A@~bX{dtD5R9Z{*xbc
      zepsT$AK;HNo_itP;uf+daL+wG=Xsv<(m#KH{06X&r!ssDi*>uJ_L~j$SZ`Q|x@)y;
      zl@8rKX`5<cXW#r-AxnnDkQ^17aa&ExC|k{T!{iwZlUc1)uIy(Dr9x@<Lq3zuRmu#$
      z_XUQ~w$ZR`%YDt@k0+`OQnqzyj)CDu7y$$s#*3D1mb%RY)2ZkO4T6gnTZZ1K>W;<l
      zLuYVXz{r?jnEj+5>wO{6)|+OhtsAELwnSzKQHI!&>$bO4wb$#VdYh@1Q&%_E*4EW`
      zd&RPGWH$8>ZZia^<Xm3CIHtph;10ubyvTvohHlr@vg=rOJ$>1esE%P4cV)~`#;88=
      z-W06^M|V!bxQBVFp_DCU_HqpI;;6*))}|Hs@qo*VG2{pGuB<zKT|hAc_sHsy_>no@
      zLZlg{>ZY4**&Wx>X$W>bPrNQ6Nbv-pu|iEXK36#i!>g;B$VcFq4ZTl3kD=<Z61Hph
      zT_H}%^$oMly&V||hNUZWcZP-+%p0{D#v+zzvQ$r3?9nA946-pG<3qTnEQT>^K;dw(
      z?6k(b=5nj+7-rt$yBYDCmEw$8qxJUFm&Y)}cbu#MLXhc4P;}EFfj<iq!Cy+vFKIO?
      zpw$9FtrnEEnjF$<p^2dO9m+Qf@*zzBOCs?Zfjx(U7qk&C5ycj!k;WXhF;DMe*uYJZ
      z!Jmjnmm_*c=j6&yjMt*KqLXKsI>pQx?w=DxgyIa@ZwNRmfWm_`Ea0K2<`EtbAyahn
      zchV`8uO3EF_;xSkN?tBahN6~*k9sdq3dG4-<(1Xs8CK54D58cv0@MUpY!EgC<5m(+
      i1c6LaRElQQ^!1^*<WQV1@Z~>g<qOh$p0o{d+x!Q#i7cxC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/IDRefsType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/IDRefsType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84caeeda57188a96862d5890b375c97d26d34e49
      GIT binary patch
      literal 1330
      zcwUWDYi|-k6g|UZm#$bUwY9BQsgD*~Wcx5aN;N?W4GD$VB}C!}v)!(Aby>)=6#Ae1
      zp!Gu&HU0p9l=03$ps`KuCNOvI-h0lOGk1Ug`Th&Q8lK4TF)Y@dj@oP3>XB|+2fAl9
      z9hDZ{J8qe3VSCT~(5_G@BfyZntTy8{8<wG2jh1cl4u;8WxujM0GKEs1wDUfn$>u5=
      zgYR8|A+%-KmScIZ82s@>l_8LA9++cbxE4kb5<{eDIcBNT*f-sZzHbv;wAeIsyQ;eu
      z-w%?~mVl8l!7%$#Khk?bprbd;c1t%*^-YPw5TXpRL(gk%s%p2}O?5X?O}DPDudc4C
      zZ+DBDacDO55N;A6ojI4+6htr`#yD;<EX9i)S+#Yiu4<lZIra4UOrko5S=^Q}M;(_L
      z#my;N`>yUDhj9n<3_-!k5HDWVH?lUZz>j-eU5p{$S9jsL(^mx)SKu95?f;1wO+=bu
      zs&0DOrqlLZoo>OY=ZV-Oh(J8SFIgd1jZamM!tnAU6ZsvurmgoVH>9WzX$jjid!A6I
      z<a&nL;@P&01kLS*z1xFeSj?ST3F8qK$!0oGM-0+AB@D9BC*uZOQ5M4(8BjRrPdm*q
      zKeN{CxQ3ax_;5x>ZlyRSR%yWf^zkvw@F}M#h!AA@5f<%q1i+t#3F)U&^9RbcK(Jg3
      zO68g)muqsUTnkM|<!?~FQjrf~`d<`{PYLW96g;Pyc!4N3F^x3lu!VVg7sEQPiw^#b
      z59xA5&uE=o{((p>dLue{im4OKoZ{|?U|cB9Q2d&JvjQmGZ^Huai_<*7!vSQ9R{kz<
      z0_DpPLlU{2GrfUfFI^2)Er}eNFHj1^$yw#)mE<XwM`9FlhFt<I3$R$fYyifiBpwR_
      gnWU&x&B*k%fw<&AoKO1vk2LL!G~ZC#y4Y>}1ro<D6951J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/IDType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/IDType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc0b69b7479b5f14b90aa977d3a94dcae3abd977
      GIT binary patch
      literal 1315
      zcwUWDT~8W86g>kAiz`)&)vB#6TC1Rx^`q&B*d`RgkRY2DLQ4A3jOzxsg@vq(;D72v
      zYadM7raz!Rs_C79ps9wq3Czshd(J)g%-uhKfBXipfu|~b42w0Vt#=!B{e;);L+;s4
      zN2i5*r!7m*@0Mv%p)e$d<)yu5!!}EHqgA&Af?+aa6ielI>3lI?-20eIXR_rIgYQG0
      zA+%%GZO8UrGx%fi3WJhq9$F({7!4zUAj5dUcC2E%abUS+eo!a6NTF%+dWE~TIQN6W
      z9Z92Nf?@U(KjB>|(BTd1xW!FNe_Nz&2oZ+pk>|Cxb-mN+Bs*Klrd!iD*Vi}n_xpvC
      zd1N(s2zN+cepkadro$M+U51rdL9ps|?$q>>=h{v!bu|*Nj9?b`RLl`#m`TEzf_>m}
      z_cV<An5PDcnPPfB%MdFJ177%=(%{EKAur01>&d&e>C{aLrT^ZMeax^l6w@1p6vI@_
      z@-j{5*mF7A@6>Ws)FZeOi;LUU$WHTfMKCbDy3RpizH8Namtq6@%Ah21dsf$z%Cv0P
      zv|1v1tRl{^d@XjjzZoP8m)62~jAe!ZHPe<8bVUh+YW9kW8@Qn?h7mF#f7lyy8eq|L
      zso8c-D`$(T9PK%k6y>l^Q|+g(jbTQNHthlkL8Tw@(1}BVcorstzqG1fF{(<ys0M;Y
      zHK-a@HDpvn6G7uUv~QH;Lzw=TCGZ)MJ%@%DGz%{g!8WFm!W?!mPw%4G#4U*s&)A?`
      zmdZ0)Cs%)Byc)S3nLNkT8D`G$;G)2oRGg;$8zRm~qHqs}1uV*L9$~3ZnWR;`Q_i4$
      z9dHC?Z0{0Q8DQyJC~HN=$au+;r<$Uwy1JG)$LfU`P4=))goY%G_R{)fVwb=ZSwJNz
      eI%P95eWNcf(HG}azWgVxbV-_TAZ=5gw*CSCGbm~R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/IntType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/IntType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3a0fa55a916abe1d0846822286002607bd0a548
      GIT binary patch
      literal 2338
      zcwVJdU2hXd6g`92UVG!fVlX8wDWNGOCJ-kfH6aP1!Q{i#*o6dx10`&njkDBVN1M$D
      zQdL!IANo{@$5wrSf)uGzD?Tbxl?wV=epK5tYu5=SijZo_J9qBPJ@?GHcXnU?_1kj*
      z-I!CcL!h;2FU42OrTDT@vStm}s@QQ3hI@O#jHhgOlA{Vm;MjH>huuoqDoj}Ag_0>F
      z1okAenTg3u!>LRvGd4XsoE({)5ZG}oB@ntWe04fEoW49F5J}%MmW_DHu#52t*Rky4
      zfIwriVlTRe?dFWqk{LvUfY#I9d$PChM56bk1W0A7072~Byw)cWNRMR3CdUN?GX)0=
      zCCj$lApu`|EGM8OE3;+@0?{!12xxc<O)B;a=>Me=#@l#@a3#|&y7OLqN(MHEu?xDu
      zuC!&FnWgfK=}a0kB~u=yQZPz6!?EPN<_rva`Bl6p&?IxLdK%hB*<4&O3TFIbhGr1&
      z3$)C;?m~Y&zOu5?xpJbj;uPaOU0vPrs~6G}g?Y1V1aX8sEZfy^2<>6CASTe({<?y%
      zdt$i|I&fUYF-B}xNLjqJHRBl0?JznKr)24DW=x<xy<ONw<p(tQ&@IXJ2#i+AZF%N_
      zHwE<S=FVG-0*AMasdXzGC|WdKuZJ9i^4rBxW_1~_w8vxvYLv6^X-+~2oZd=6DZXQt
      zj8*#T__=ycV!P(5>rvB2Rtx5W^e(Dk?ju{qo~s%4%~Gb*VVp!?5N8B-Tef$k7M8bV
      zS+>1~ehf<;&kF2oPi<9G*}mt(7{MqTtuSvm!>&AIDwdSN<1(11jc##38T%0~s7Ujs
      zZmcGWVH8}`2_u87fPdC1TEz6XCsQ#(`8{R=YN0BCY>PLPik-`=#A|8Ms?5!KAms(a
      zA)J`vovzI$E1VbjPx8<5G!z`uaLrsbapwONYg1@;=9XD-2UJW``VBWb$Sj(Uh8q}H
      zF(YtrW377EM=MU*aO+j%DM}XgGD>WOiOP~wFh?zU@58lb?34iL;)}z_m#%{S^0h;2
      zKU4(i4bk2Kjq~uPc_Zh1%h2}IyBiU%?BVPiBFNv69{OF&`}BrvUeUwZykE`c19~8v
      zSA*GnQ0Gh!=rnaz*Z2(Tq3jdvjc8A??+Fe(@^ZY(XM&mJGr&G<Kp!)n!d|vc69&+X
      zLA2sDVi-akXVAlaAK)B4Jvitg$X`pH+X%S|j(d(i!=ZenHF9_zZI5wu9bFp<cX~36
      z^ROufp7(&l)i9huFGs;7i5g@lN4cgv#@>f@jDY9MY>HLtvAj;)b;|Pz9)u|3Ic<%e
      zmq$B}tz)o*A`CTuhn>&RpZ7(E*74yBUqbOE{JumWqV=mCzNbhgg3+MfaTlSl6tRZg
      zoE*OkEz;Pp($O4MW*_6g12jqu2{HDf=DUk&B@tLdz9Xvq3)6KE0~}7>M{hLnEn-b-
      z)GyaUbZWoid^F?@53ozZMU^V2ul!8>sz(t~rTO09Ya4nlvrNDwHMz_J=GZh>_}#k7
      zvgBF3DYW4lRlH73KVeC4;4E%p6b98VU;?xBnkZrpxA-i>!V;}7QNq`-aR(LrfCc;v
      z2am9bU%2`Q_x*_#Py4y5sx|GU^|9B&(z=LCWY~Zg%%ZdA&G?BdbylJUKa#7?W@*J5
      z8DAmyHryxYAg@Fxz9;i3+IJXpjh6i8UMJ6LM@$h*c2M{kZsa@Gar5C7@zBc|<WA$2
      gF8hq0&&lx%k8MjeuFf`01*&YrHMW9!NL|f;0M$_rIRF3v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/IntegerType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/IntegerType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2efe2068ed15883412dff51edf2d9a1ba5a7e86e
      GIT binary patch
      literal 1940
      zcwVJc-&5O05dIEi%LoNjgVQ7}iQBY^jREnafdms8$6%ty*iB5GIO#8;+}KKGnGqt8
      z*G~V6JT=pYywY?go++L7y?<2Oy|Zg*!_drBGt%wu-G00K?Vf)B<L6%i%-~ZMeGHfD
      z{*JlV^vox==RUGSx8<9(*x}PHZd!iG>pa*XS%tzdanj*j*lM~?#cghRTzD{y<jbYX
      z#@(D%vPx@T6>|C2jS55GLyIA{<an;{hRY27sdSY=$+sTy0Wb{eh#<-^Ty%Y2+G%c5
      ze0$R)xOlPU*k08RT%mW3(Ip9^!eBW2*nVQ~$pn47$+x#`hnsgwB*qYDNH)T7Ytb}!
      zcXy|D=cZag-JG4Co-yyQ7b{MKH|-ck8C17Zw1#1v)-i;)iKJ9fK%1WJ*Ud^8xPCqR
      zx+Ps5z*)Sb;@p4GD%dHyn}HoX)$uOIDCo*+-dfKU8B)cQJP+B;YUsxWkzbOb(8=%E
      z(z9<0D7z3g+--*Ri9ScBBFm7d^Dy7?x5L1uPWbf#MGgr=Nu@=jHDcEJrYc|<t{=yv
      z=tICgdyj0r7}Z`}!VdXfDAUtc_Z+?@tlKKm4401eUFizF!-A@ejt_B3!z4@<Qw+wx
      z6VWk^8JZ`L`}MFP$I^;njtX>r$wIO_7)jE0xP}z22>Rz4PN%Hnra=U|s^c0K3D#-Y
      zK`s=uSm``NM1qK!e$A1l!Rgd2rr{0Qp?oQE21b-KmtKcniZkd0+zxrQ6Rq@r_&?%W
      z-h9lRFsovXVN{x%cGxg)x^?UC%Ts_Q*!hI`J0@tls)C07!r?~erWaZPA@v$ZRCsR4
      z1KXqCS6VxP!wass^~RAIoDv|^JfeX9YYb<^|AV9mVo>R27$EIiC=k!QG4P94>o*3=
      zHO0`&wTN1-MU7~=rpC&(m_eEmHApm6L!)oZ7%2Y)?ML$LgHGRB`CXt0S20MvHL!?L
      zWa;8BVGP%C5z9#9W0<%>XBTh<b2ufv#WU2)XO;3}w2q7)V7L~4D?ZXj;w8?sasDva
      zkSuAH<O1SYlR$dM4e#N7S?)!A(1o0$RqQD*q3!oDqSAKzh_BM~r5iz~E=wB?n?PYS
      zqLRMmcxIxF@yshsERQ|I&;e4l{`hPgAN|%pue^YjNhq(dFds=ojOph%Ma#7x5PgA3
      zk}}_8FrhpX>UmNp57l9TlTbQ9-zhAij6MIeeOU4`{dR#nl)_!&w?f(m&fzm8agP$b
      zk9pLH^#?@CL)^mWwEG3^d<lonc=%eDx!ftBTc(h*)Ey?J>$KZP$eYxo8$|CI%E*zV
      z5PB9jk(Yg0A^Z-h59o|&f_{KPEz`!W{d;U*V#R3x_CFfM$x?>~S7wpy`1P{TvEI!>
      M?`A<4Qr2Dm3$6{n5C8xG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/LanguageType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/LanguageType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ba7112e55d9c4c44b365dd70e42fe55de5fccb7
      GIT binary patch
      literal 1692
      zcwUWEe{&L76g@8imf#vA(fF&TSX%`WvWc-Zk;F<7(kKB93?n*@^Rm8y)n&ouVX&Qk
      z5kG~EGp18J?f-r#r}sT5$xJch{;~Uh-E+=6_ul>Z>Ce9bEMd#Q7(=}7b**00wO(=8
      zdB&yF@+|sr`MNEv0{7}&UKbUb7zi-TA9Xq-TTRC<JI%JMBN(Q$rDD0Vo!KmI7B`;e
      zGud3F%rN$Nlfk&3sZ?^?MTT>Q=lm77y3%niU(`j<y3eH)zL#bQui38SIr0|6csx;M
      z2xME&!~__Qn+PHl#tDW?k9q2sOzP2-Uzg@rev79D)5X+ke<hKO;3TFEL>bO}hReh$
      zoF-LvtJ!v3lAen9Ww~U5RhGWv)zgX3DpiWkm@p7#I8kssQS3H%gkRx13M*P@+1#yi
      z-%<0yVrWfY%)nP<fx_)+V?Ev!oi?|H^`J<@FlHHI4Jq3<Eo*mocVTyVq2<@DYm19Z
      z*2Aqr*=~p?4<klixr1y)Z~@<#IFHK=S4Ui9#Ko!;_zqVMT%m}gQmoQiaCUs|zcvv^
      zf+1Kb-OEuH<AtN*4vHcj!8qoWx_O3tU){)?r@s_XmxXLN9fstQF^8*}YU^}e$ZX5&
      zNS{+Cyn3FfC4mIu300sGa@KxPRX7amqij@p@P*5Jv^FHE4v7g{ik{T^BDtO|+G@39
      z;CqHEBV+Fj2E)V3s~aZu>NQott0r!Ogd0sRNu1BHd{|bt!Tqv$*%h8GMwIGSKZyKa
      z$BzbXjp&8J5fitO8Parg>pco1%P`}3+Su5Cr52-UmkRDWaw?^Ha&=VSkOM(|QuV_B
      zwsqTSuT&X*p{wL+xz+V;k=N~d@^Eq&6a^NkC&%eeH-@w7S3#q*szK=+p!WnKw113d
      zFKMox#8l|7NNqe&ss)0jS};_qg^W_o2$yQ%sZi-1%;@AFn0kkq-v^+;f(E!j;41{T
      zib+aP6lu(0joetrMcRuYL%nsIx@8&XbfkLD59xCxj?s5I`2iPd(TmZq_i<?t-|i!M
      zKs2dul7opn5o~B6vmb^O$pDQledA+V7SnryJ(zEY7$LoO?@(-D7)upKr<U~^qiiaa
      z25~CZ+2q{(K7QE4%-nmdyvN!b9RGmpwdha#xbx3}#;Er30r6~;sxn=^qPb#ylmV9-
      TZQy6kKZ{M=rD#T~6iVS=??j@V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/LengthFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/LengthFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad35403df56c1294fd69ad017c6c7b427e3dc575
      GIT binary patch
      literal 829
      zcwUWCO-~a+7=GS%x21KZ9|&5(4^D0ual^@v8WK}O(qy9tl>@hFJ9dXGyHI8c{uFNf
      z04^jF6AwnO{wU)+)25P`G+buhnfLjcclY<7?>_)+VZDq3;mIh?!_$K#JQ0Z+3azp<
      z<W1-=hcb+0I@0lu7)V`)Ls*{&wlIRry<8Hg$Mt7*Du-O}5lXLBs`NHt)9>v?^Mu}{
      zX{PO6r@c#Xy4g@xQN(Qz6)X~-`n{X;D<IT8xG0&b>7k4TLM>9Me3u{e<@lrMCmgpK
      zWdo7yim@{1>7}D%bxdf_wYxT?4xuV$?gam)ISC7~IF8Lr2}Qrnvn$D?TqNwi>__|J
      zM1+Y*N8$Vaz8vUIn+NJ<I+kOT{J%EG_>kq}f!tB%8TD%spBXTJeYWAhpn!%M4Oa~_
      z7~YHAsi4a1Ej~#;JEj{ro8RCCt5>K6YgcGoTJjRFO$&I=A}^To5_P=79li-BL@Z+k
      zu$3{QnN`77cX7{Jws3!H8S-vWZtxYgi<!-Yx^1Ps31BKsSjF0u{E5*<xV7;MbcUsk
      ppCFboQs;1;i{d}QMLU2lXL-vRx>k5)LY`%A;Q=1nJdZ5z@n3f7uyX(a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/ListSimpleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/ListSimpleType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17366313e06c92183eb01d7b7f614000f3bbf521
      GIT binary patch
      literal 1633
      zcwV(s+fEZv6kP|V7is}%L9K`sROk&x5N|CYh$7X}XiA#k+fWW=WIEGyrlk5}{0%?A
      z_-djwkwoA97QaE==d>0GP36UxnSJ)Gz4mRL`SI)PHvltO@}P?$Ry3<>tz@YCnxSuN
      zj&7MMy)@@_nX4Jyc5-^DZ14>_dY~{&biyBD8N9l~OARxUIa^SQ!9A~=y0ggeA(DBe
      z?Q1m|W@;sFm$d>{Uu4Nl$xmw4(G4}nomBd){2g)2rfE6S*BN(=FPdjiR;+FALpRR(
      z;enswZKul9|GV^Pz6T6_ez@Rf=+EdT&sIxYyt1Kf8MKQ)#wut=UaRQh+;l3=u5L3V
      zIwm<O2HKS(nqwI5&@L@>hfa<yN;%m%!@y3}+$NOiXvS(2#nPmlEzNF<$fvbB`<IN4
      z&4A(xyS%WM7cho}#zIs>GmC1@spw`gm9Z*CwZaXpM!ptDzQwy@nGUZxa>KsIwE`~-
      zukAsYu0Y$^M@^#z7Md9M;|fMRxXutd*1oJ^!`kDf{)Sh)n4rePK3qdYXei1s*{<YM
      zo@idg#QjKMilKK`v)8Q(m%KE}?nv~d7b>k>H|4;>25m4*W|j0hiW!k>mSLz(t_Jg*
      zAGdLbp~s|ANLq%$Nc1$E!6j*hyxM&96dKbMD?H=e8M<ueueRDwO(b<1HTiN@wNl`#
      zy3lg)q)w*=0mkS~bkkptL?<o=SzTm%;H75|o!*h{p?5GAcO^zbO2}1*FBWotLGLFC
      z?x$y;q*#I<%Lw2h&eLhF5k|BDKw3cz5~;9;aDgI)brF|jY!D$zu1M=LhN%=`iGth|
      zLrNk1Rq`ox8kL28BwL`8v3R16u|r(jj0bMiF`1n@K<qt64l%kJn6BgIcXHfHDzVS#
      z4JnBOj7h-npGWnNQ@g+u%C$!Irm3c<<XcAsS<K=Y?&G=aX|9p6)l(98aZmP?ButXn
      W1`tIG^VCxWJ}l5zQSqY8^xzMzWV^Zm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/LongType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/LongType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef1b1bbe94927d6c783d9724b5c897de45f43efe
      GIT binary patch
      literal 2358
      zcwVJdTW=Fr5dIEcd+m)AjDsm@NeP9Lm_Qs7aIS;~<AABL3o$0<7B-uWv(%Spv$-Hu
      zRUha}ANs;m`%r;Og(_8Q3KFSG)!Sp+-_-UyYvXW<BBWZf&&=$ZZ)U!kS^xRZPrm>-
      z3RA^4fdj?LQf#$ciY@CUYgTuxY9+=)cWy73v2?Xk%u!IG2prz(=D1TWTgIeSUMQK;
      zL!dR0%}nMlj;AuI%$ezl@kBB=DX{HoN+584d}=yBp1zb62&Zr9%X+M&SBkMo$F?fP
      z5rO7JwX*2w6(_HkmP|jI2shN%*WW+T*V`W-Jbr9o;P_zgfJ91VYDj*xY<g)>z?V*D
      z&g9Mt2*&o08YQb@Ib#Bzu4rCBNmOUe00bgIc;VCV2HI5Y76`qZSP*aGEy9(|O3|5j
      z{ZrDhJ&5fH32aYW6*IF`o-ys5K2tJfaaBVv<#pSVdfn(7b>pjeN1#o{San&g=w)+p
      zK{w3Ug$zYM4hVG2JI=yzEVi<;(zDXvQ?-k+zTV!Wv8nUvNn_qD>wX+$1tqpg!#;Ec
      z(SfKyXV<HwzG{i)1L(#P6^H4uRc~cK)7Ffw+qZ-0K}<kRWpc?g$%_JA>8(6B=3zvG
      z2S;UoeF77;{5Gw7<aGhv-Z}HuqQJo|eVz?5=PFV(9e1>Bojs@&Cm7ZtfYKF}bE%P2
      z<HNkf5IC_JiLwK>S<+W&YXrzQf)d*?R~<JuExBr#3(~r%g0T;7>U+8_G%ib?P6RQ4
      zK|fA%f~<;LQ-|zv$Ff`p4Z|3hOr8?h)s@<;v2ut{2a&`C$IY16?QusInTjSfoW(g6
      zEVgySFToqS;h1(1?;|bXowbS<J-l6sRFqe}Zd|tAsMROi{+dj1OSmpvJ&RIxZq5ZM
      zFX%Sm#1$@ZUCULe8~i5tCHqZ=ZR(DhuLaKhpI$uYnw`028qSD{YXU7B=Cr#%S8+qK
      zI?XZJBwRGFLKoP(@u0Tp6IHvcJB{|SzLG^I^%5swvbtm&=7c4;zWLc0_DBTu^1b2V
      zYgoZ<`PQMd8!G&?1}JZXMm_kP-b|e@8OmN-cOc9st<*jzg8Yny0zYd7PpBzdP(s0M
      z!K-EqzK}0lQ2p70KSV9$3sDTIA&tNOP$2slJHy%&?0SqnKe#d8=5L&l<gbqt*n~kw
      z9KucxTpLEvj#2E#2}Ci57*3*(_m1N<Eq&PQBFIliBex`T6+BxHJ;lC4cz^iab#y+$
      zp>_0b1Z;6>ILl&FbUfz*1#52T$1$FQLE?4D9-i`<@(4TE8W=v;mU+%sY4~!Hcx%YD
      z2^K;W@f&50mcI{mA7003H%S<4{}L@vF<kJ3$JX)Qub#N#iF-Y9UsxMfyFE{ki2Eb{
      zQ1?9q?kM6Rc2GHT4_df+Sf!yoqRc+Ro(I@2F(OJ0q;9>3X(jG^h(dQnc?Q&bA0s@5
      zzQ(bL?+ZlR)QDF;3(%<jh%=FZd%OgA$IH+!S`-mc+VB7SaD&lhHVVj*l}l`4o?~;F
      ze_T^+Oo8pYf=*6)53Z5b>ul-`oWe~^KqvnOCNYa?n6NO15{jr&TEQ)RO6@aLaF><`
      zSil-=JjNoPU<rTl-e0^W*`KTNT4!HM=iMQeQU+OO*o5El0msV2EWgJEN(wXk4i_nT
      zncug}LFV3xZ<xQIOVNX`SjA<^cj+@lN&e{;SV?Urt`JMkQ1B_P7P{AQeeJSXb7T5>
      j^X3b4_7N=~GsjQdY&&XxjckLMsb?FkXDi5w<aPEx79JBT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/MaxExclusiveFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/MaxExclusiveFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0df8875f23e27017a23a502ad9ea379e375a986
      GIT binary patch
      literal 1798
      zcwUWETW=Fr5dMzi#EG-b4KPr`9T(f1WHE)5*1;hc(wgQ{APNw~<=8&4H(l>idmXut
      z?O&*nFyaqX%1fk@79LP|Mao}7%sIPu!446!<TF0!n{Q^mnen^#uipSjVkv|G!)U>-
      z8nu#TY;eoWbJuiigAVTg{zMoHymq~ov#J$yL(K7<a6<?(oZinx!5BK}ttuFX=GXZK
      zH!N-!jHT?l$hj$cTr+DT&%jn0x+YB9bkhv!SUYree!oytw(Yp;E)`#42+lZp5k?2T
      z($IrGhLKq2%l&)6Frc9mUD6uT5JERY|Ga67#cC-l%F8@!se+sww^n%Bl)wGUpj$L6
      z4933U+QcL!!n~OSL+nelW#}&QN>SF!&=HGg!WhPh5ROv`tr}`Limyp#@mrN!l;fd2
      zWR9;&f-@RU;uLkqaf_nN5GrvuR}_^HzG3K7PF2^mj9KoI%u&QN#E~HCtXOl(l*s{~
      zx``s<5Jngds%xSv8q;PWW4odt%3<gj(_r8NLr=~rJ>g}s>@XblSz6$!cqW94tz5Gr
      zXO_4Xrg6R`xh}W+`w->-UBh2hKcj-m4$AVs*YE?Rv<2bLSiDk^1;sxSOI@aVF^;P;
      zRQfYoQkZL>^uZgSFeWjrVFt4dy?LifQCGYbp$5*%5fT;Jo36aSI0LO((wphOMfO&x
      z?V(XRx!QZ|qnDVR!rM-@oD*}VoaIQ{oQ_EsQkYVuKaKzf<(7~&D0hU;AieY;Oy9lq
      zYmHDrI)@Si-J}0POXx4rpBR3L!7b%|K)xwNiu@;_;VLnuagc5jo+l0=0w_yHV#<=S
      z0?Im!BNT(l!S-Wbq*J206aS!p8^<=Akv#8d#jbf6pPk8R_x<k@T5=ETZ^7z_=sRG<
      z<guNuqcgbK@jqvu(&0zS=qDVbQ*uW<|7PaHIP1qg*NDRYpz5UOuH=1-XdTC;wS(va
      z#f?5kXU8T*j*e{O{HBM|>p1ISbcxX$7@aVqFTA`wWU`4&N@TKuOcL_jPmtqvB=l`u
      z@v6H*1vaqb^6C{P0{F;b2a}R;vH_ah#uRZ*J$un2%R_1mut0;bL{0jI+H;fSxkUmj
      zV+<>_H+QJjcWDpqVG;MqdVt5|Rlp;dWYv(xpUC4c2t1`R`Wr=T(aV2W$7}qmWKOHW
      r+il9ci|b0}A^OZwD*_bd2(=|c)?>2faD%KZYRAu*CyP;jGT+4y^*x?(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/MaxInclusiveFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/MaxInclusiveFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec68c3a66f5b3cebd87c018a3e16265d8ecd8136
      GIT binary patch
      literal 1841
      zcwUWE%W@M(6g_Rp9$Oy#0u&w&0TY3qOi&1h$QWZg#!4&$fjEgPm83OlOXG}Yj5Ko0
      zA7q_XL>0w?V&@H2!6~w!>>b5F@GGg@?inc{IW9KSSKa5Fd;8qmdi~GeF9BS{9SuDU
      znX=O`wyL(V$!)8|J<D|rTDbRMLl_0Vm3K_LQMWe50yl-HA<S^*Ac}%9^wL>FFpMp&
      z^G$Bp+$kHkitEDka&)+6ZHW>CTV?2*vK-5sW|)q5Lsyp$N_E3=Tu<%g5-SYhIkzMt
      z2;q>90Sqyu<N5dJ4}f7rM=$zhG^RsCKf~~n<%s1*wJ2)$c+plDa!qcp@R}um2b*E9
      zV$~Up1JiYxNlrv~y9S2%`&P@)U*YwNye~s2p2$Zqj#C;wq$_lKsN*<Jkj>(LgWFW&
      z(S2-AtV)3i9UtK|b;tE8qQ;<Axo1{HUBfwsAw_C<mTk;)k8F-%LVglDl1Pz$QLMQ&
      zD(7&Z--eR9h77|IwN088W7aC?9Z!@+ErK)*9iQML!+_~lH+W6la~X~YDjo1#BCp}o
      zPOW)iT2*dGki}<G>vA_gfGGZz7GGH~r;^GxN)JBQk;4@ETNd7&&Fgh}p~PE`sm<IV
      zCNV8jUH>0LDb0;{n&Hn-1T&b^F^?}821{;(vaa~=gt|B{=SbA)@${8~*E7=TC3UA1
      zV5|TW-QTIMgO&wEb@q9jet~i%@4AheDHbd_*wL<`y&x&{??ENgzeo>8<&&XkR6ZD5
      z!*nu$2z>|X*BYV1w2mc5w9H@7ld0zzPL4mv=rhGWEYB1oNBk-1xJF9TI6^x~pNXT0
      z0xFW3n2Kbs9u<9nW0Zr*DGzdHX_ct{<ewPc!O87*CZ9d4)O8;ds53eG0slKfOYQO0
      z9#|96)Gin)`D$mH=nZd&{?i;%KHQ{=7IBhRsU7wC?aIe-Hpu;PD+_x}x0CmKBX#!>
      zYa%0~UBn8MH}(*{p>4_>Th63+aQ-0<$u+LF!`nV5-Nad+la`!xi<2hgg-3p!J~G=z
      zW+gJ)LS_kh=^f-`6Uo#LuKKsVN*8WnC*{@)T<gJGgk8)?!I>6lW(TvRIs3<>4x5V9
      zCZIrraf_OEo7#1U?E0GQxQk2phFbnD7RdSnz9+;ge#8%`(02nr;aB{O2jKV(CVq#&
      z6B?_hDB}ez>|q_R@C#nUR@N_4BgoXY^>0X3T0e#fYR)26bDD5@ib8a93}50a+S{P$
      UCYC7Lqh=MbOcA3xWc9cI1)8X*<^TWy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/MaxLengthFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/MaxLengthFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb9969d6d393d832792547985117250e3f6922a7
      GIT binary patch
      literal 838
      zcwUWCO-~a+7=GS%x21KZv=y|1AKbQ!xbfsi4T-5CX|n1;<-l#)4&5QkE|ytRe+oB#
      z02dR9i3g)sf0Xf^X;VW?8ZI;M%=>)JoB93c`wsw5uvtcd5RB41oE#<LsYujNXqBZQ
      zZ$f`Qmf;&QiDWv`@vaz1U4}#0T!gnUg3G;J5~#=Zfttu6*ZYLhOO-0UL)i9v`_Uqy
      zS81AQd)I025u9!|lvNaQ(?bQzghzhw`uqwAD;`{wOx5sE#uA|xsZ_qrkNR@_LG%-j
      z+laD(NcO~7ne*(@(Xl#V!-aNN=hPuo#XJDPziw2*QY=nl^H@UBZ}a#{@>4Dn4zTJ+
      zhvHO(iAYD`yZ)gZ=uVqw>Sj8YV-x<rHph6M<>P_eRpuqlt0^BFJbwdr;_pyE-3*AU
      zx)~4eMebBk<@E-iB%dAA4NBYJ;05cKs0ACBsDH8KCa(<(c*-KrnDQJec!67d6HJL%
      z#TsBMV?=YSf~{`jj<syz?#wde-JsmyD{2>Wn<;h2N_$hlOq#HcjT!kPqm6KD>lf$@
      r&8?pxmN8Q2aGi_dKfz@?fG%fw%^A8@cx_6aXKvvh?%O;MEbrl8^0u?^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/MinExclusiveFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/MinExclusiveFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d5671496c2507a63afda098f4f38cc3729dcc19
      GIT binary patch
      literal 1797
      zcwUWETW=dx5dMzi#IdvF*4DH%g_dHly-5}q2nDAOxinzNg-aAl5YQ9*#NM#pE%rJJ
      zkMI`|Lgu0GNO_4w1MLG!Uy<^c5Hn}jrnN&<S@Id5^UXIi-^}>$e;)k>AcyrBA_7wt
      zw`uLy9BWTHc3Jwi=UQ|~|NDE&TD9HV`z5E@u=mumEGa*RsKB+eTr^CepWd2EV0>j)
      z?n%p$ZpB*P-c=<(PmeqHzA6idErEeq+qM0IKq1`=-C8*-)V%9@zP`(6HU*-KURfp3
      zhvy8$F)T2dE<U?|90H>T`Z2)PxPcf31x8kESFJT`+p4}Hw;f%OSCY=AtlRuMyo~x)
      zyCGnm8Lmf6QX(NcIS8bmHCutfs%%ubUV*-JrkKD4UX0-imC&uBflGLSWLDobr9(Mh
      zI7Q~n78AT|;3Zt8?s$Gx)dgZT>6fai5yPtj!`i9o+m5v)eUdqaw1Et=gqJ%$<Ijc6
      z9T4%xFez|eUlUu^TCgic*H;x)Pr$^q0Sm7S#7kc7o~)}4PvBC>(gn|FiZR^i=2}uE
      zyC$6kP4k<~^;WNc2+{s;xBYeTi#jMbkgI>kz`I~&E6QJVWTU|aWuDMVU*?A}gIgS`
      z@IO*gnD?G)LohuF%wfU6B9;V(%3hPAZU!4d{afM*QVm+0fpWMvqupB4n;pI-Pgkht
      zp<Oz;x~HsTkQfi)XI`^jQp+}va<XSkr`d%Rrc~*FBZ4tr60*j4Md*yuOB@OM9-?16
      zgo@HRo*j)({Q)CuKEOzJ;sM4Ewf8xG(}+Cz&%(ehVk+P~-DCq#TtE`g7Dp1=;#d)F
      zJ&%hNL-1UOF>lbxsKM;-7&*e_gHEKtdqJ}s0VZS@JnW(W9YQnrg!vevg`{~5K}-SL
      zwHErL2Yvr>4r?9Wr;I+pWjdKV8TfZHpTPAn_ABiu;s>gZJx`eTF;XpDVe1&FRf?PX
      z75#k&6gf3{gx3xNjM>8V0An)7Y-3EqOx+Li3Xr)DGRMeV8<`{I8&4r;TF9D5xEWM;
      zlL~BOXZY$NW+QmQ;TUsFIM)Wv9buk0=YP51CCk^;7+{qKVV#=vF}3FtlIK$rU<1?G
      zq`mo^T78H1;0vtbOR~PgUGl2n8`xy+V;euBjGv(JGmX)2sN#@b{=_aG;ae?pK@Z+Z
      qN9GgU)-sRNXPH_Np(q!rEk&~KlC_Kv$vUKVe1sLU1m(y1uKf#SVxAEI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/MinInclusiveFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/MinInclusiveFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb77abf65425fda3c478dafe39469f0679d53d92
      GIT binary patch
      literal 1840
      zcwUWEO>-MX5Pf6GmMw4ml|&@OK;oc8pIIUTCde_4Z5#_M=i7jb0>-Pcv}Uz3(#j<N
      zfHN0L$$<mK%@?YOsc@j|8<qc%ze3SHyAp|HT)FJDX5M?<^SVdR{`vDS0GDw)f<A$4
      z*=?E+s*brM9lInwyXKm-NbljcGK;oba4o0Vuy@pww3HV?Sm4}I6b%#Tr?aLKm{{48
      zJJNKdTQ+ZQY$?mj)8VH5K$Qf<y1>AU?b_a~z-*!yy1sH$s_U*>^YmUmxh4=^sFhR{
      zAsjO>gb{&EqVVecAqb2a=*Iv@69ys}6c}BxUA5Y*Zm9Y_x#8#w)hy|($-2$IgUzs4
      zu^R&Bk?DHOBqyS>Q-eU_RjU;ktjI=%?<){WBnweY;>`%&peuBHXy7znC!5uGP3cgL
      zCl9eXxy}Mp2HwJ1>Q2q8sJcL;Dm|;B8WCI&7}2DrXFKMi^vLEorudUIkV2YBa?@kd
      z@j$+VB=HEc0w?q~Nmk5xyIgQRRaW&VGB6FigUbR#R;{`%>*`)j;B=tU1<xl75xm>2
      zwWut+DxD~Dc#pN-@8t&&&Htdy*A6V`q})Ze;6np>%#gih<t;d}(clXuUocE>=7%wj
      zSx)uQ|M*F1uD{d^e}tl#!-9cDd@L|rsx>L=n*U6wiHkf&szGmOpcFiwv2HKP=Td;N
      z15E62r+N<B77*1v<Zb!|@<iUPHS3mIvU#p!Ju`cWDfH(-CDWfsAIAB`P&Cf(h1M{g
      z3?WM2VfwX6s4%S)sj+DG4;ZQR6O5)NpJ4nq%|6a&8j&ad3=CW&rCFSyos`eSNyGph
      zaVDW7&ef-**Kmq*2p;kvXO31z4W@p_=pN4Ob~5?wd97~vm_S|d<OlrE3C-G*=>v!s
      zV(EPdQu5W#wa_2l4gIG%qJ6kQ6)ocot*jmM`JKuqaX!fXb~}ssnQq7Td(OHCh_{gC
      zXdm$+<&8f=e`uF7$5*qNJzRW*W4tExc6it4WLh}yb27}yv^g0<UV7};=_7L;WR8)!
      zHZn)ZD=#6ZTS%q%aMi!<Rl0B+JIz~9ajg$85cV<0f^%)q+#cphbN;8tT{dk{n}8w>
      z#!YJ4Eo#?ovg;1naTix`pIZJImdN@dz97UpzQUKN(03bO<9mFAhmiOI7Jh`nFEm!a
      zqKv1oaeyuSjc@S`j<$Z88bPLZtbb0bZ2bhLs5#42%~`?~C<@WZDSU!YX>XgN8(5*}
      QfSOgrDn)|o;OcMv3-4m5cmMzZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/MinLengthFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/MinLengthFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49fdb410b23e53ef6b46443e8d77af7882ae7651
      GIT binary patch
      literal 838
      zcwUWCO-~a+7=GS%x21KZv<0++AKbPJxZ&hS4T-5CX|n1;<-l#)j@=>4u9R7VKZP4V
      zfQyO5#DmeRKg#&dw5cH`4VRgB=6$~A&HVoJ{Re;@Y?M(T1fw($&yJGtR3vIBw93+u
      zH=#d&lHqHWMlv1gcux$ZF2f;g%)?t4!R1~q3Do2IqdJpAt`7*M7b;bHm$2>k4x)KN
      zFVi&B_O8?3Cpg_~D61&qwucH930r>e=KKl>OCDU5Ox5sE#sZ-hsZ_qnkNR@_Ui1@=
      z+laD(NcP28ne+70(Xl#V!?||X=hPuo#Vi29ziCv$LM%>V^H@UBZ}a#{@;Da>2Uzi=
      zLvbp?M5LqeZU0aXbf?WTbu%5yu?hcQn`6Ao^6^0KDf5!%^^}hdp1%P*@pmYoZU)3v
      z-HeC#B6ljN@_LI;lFyFm2JZGZc){8gYQg#y>R&9m$!o&`p0LPMraZ$Eo@1GBf(a2T
      zSOsiljA&+6u+<&hwU#a1n_7mv8<ZP-MeTBCGokKUX>S6UN)y(wJ|%x(v=MG?{sNt&
      rx%m^sGDhkGu5(%ZC%9+_(B&+zI78P8uTIFb%q`r<1Dofe<vscf<s`G|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NCNameType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NCNameType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de7aa26409679a27131f086c56233fbd4b39daf2
      GIT binary patch
      literal 2021
      zcwUWEQBxaL6#g#RWJ3rf27(1!rB-PIBn#A1OMo^8QllZEBn<=|+sm>hTa!&@vlMu9
      z9G{$N-^)vJbcR=3XQWyO-u+SPxf={sQfy{6d-vRPzVn^$oO}QH^S46)6Ihke!7yAh
      zHkIvaMR~w0`Ubc3nxW8(TRU}4$s{tos^w`ZLt+>^%QtS-s=AuftM!T<!O)w?W^(!E
      zcq)_1+`5~LCl>NKhK|ot4DK1Vq8qw3$KVKs3k*`CwxM-`q00*=TnxUnZfKd!>bhp;
      z`Fe%m0_mE{D+O-q;``X>nz3PI_!$Q7^9Ov}CTI}tMxCpga$8j3Mu1_cY+3bbMcLZg
      zif&zr*36PJIX*t2tS+W=YFVptH~I*$S+fT|^n1~RHyJL6(gInjaHFK;EK@g1vD21t
      zp%VjmOU58YoF$YHC#|oW+}!cvJT6f2nfT%YLnwV#*om?+4;*+$kQ-u1Hp#UuJNCMO
      zb_cAo-uOQfCj${<2$nP}Q8OBr$*BoODM^Vff{;RC(PIyZs(w`vC=9dhG!!i`wF=)R
      zTPsDOm6otAZQHWhc^0-+tuCw$8DSdRwz2cai<YxcYSfGOG3-GEii{}3`F{!|;u^0i
      zcMM&n;ak@DhGu#(jtK_8RTBfbRMQPBZkl|Dp}$Q9RHqwP82WU>R%@uK&k%iV(g=lc
      zRdi{Jq-qyj@ZdvC%ec;P?mwJpCYQL`5PV{o5eXUsIA?LwN|d?DRZBA&oT1cOcugdl
      z6NzpJmZ?`|ihJ>q!16V*S}-Df-irk!89K#jO7P7F9j&pKIp@n}ZA%=vSh%fK#>aHv
      z?H#?Qq_V9J5J_7Naehw`W02Kmlf~e@<~Yz5qSlFOL(|As5h>UjJvu!!c8pR5(`}fD
      zKyC7siB8Q9`FnD;O;gp9y0~h5C&M2V@H8oOd(l-&?Gtwvtt7Z1(?jg&i_^FGUG%$t
      z_Y@scwkSEXMW-uUbjjJG?9LY5epmKqc%G6|2fXw@YzJN^uxWUx^*xwD0JG@F90qX%
      z7iez?SJ7=ph+j`D-2#zd^zI#b0beojMxgfq!Dl#kfVWQ)^w^B&A^IIa(gyN2!*CJr
      z+SOdbd&iJbdW${j89YC=FkH6nlb2$pRxF(~^15u>NNRz?%Cr{h{5Uc?c7T!5=NQXG
      z4tLT00-<7H@&F$kMI2H8^b>T`+wmONcF`mD9Ab0!$T1~JQ_g)PBS9y*?cq{T+J!gh
      zl<q|i_uvz*L1)ufnv(W0C>#mr=I*~Yzjd;pGjjO-U%&2SAk)e|Ee%MKUyxWCkdB@b
      zYZt!5L)<#9b{T#2zeLs?x{!w-cc>LB7{e;Ap-7Ed!%cjS6uuzqU8uMR9qX`Y^)>B1
      z#Fu!4G9Ht45BKo{Dz<XV)Hu@QSUIsuk*3UEeTp<?@4`1&q`VHwkwXSq(s7n7OSny~
      XeuN-l<Y@OXjY^(a3B?O`msb7;A(QRs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokenType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokenType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e741b06c3a706c35e6fdbcb4bc3e28ace99a7656
      GIT binary patch
      literal 1867
      zcwUWE-%}b_6#lNPEUrW;78}yok~THq4^~ZM8c|b%kdh!6A*ASZ((Aed+rTcfECJv9
      zSLCfvd2P~}nn^nP-ajM%MPJ&UyHes*YO^!D_w2dneCM3+oO^%&^YsycMHFQWF<h&f
      zZMEB|t512|*yoO6nJO*ZIcVx?ezRmf(ajRcG9-q%^Nf>@)iAW8(P-9n;lVJGD&&i$
      z?PNBe&EI{TNv6`JBE!&bmch5G)eX~d))_p}SeZdeS^N437)JdVhL>SHXPA1v-PqIZ
      z65p#6Trg*8yk6$EA^v+x@2U$UBft>;fj{M4H$js(^j4E=y80kbq7OlaNX>DYE2`S*
      zbmE=sam%i%OA8B&>bIM@qE^!z+=mYtWGcFFKb==Fj!8ep@DY&|%?W6=&dsV?bZo<{
      zCeCVN<q?GOv5ZUqL#tpXXYASBKJeo*rWl6ZkPOk>d4BJ>O(^i-Q;}VSA#;-5z`_&n
      z3+VR1sTnPX*ttHZW+K55s_IV4GFy(#sSjo~Ly;ZAkfJfsW`%gwo|FX)!`dJgMHg(n
      z&by@R$0+yX61Jmv9XCBC-PQD_(6(g67^VmMZuEq{v7l<!k1sH-U>>TBIK$<CDx}19
      z-cTQ!hDP(Zt@C}|_G1By3<1XyGr46MrjxX7e!ws}paQDXhwH?IVY+lhdh-*ZzqYO*
      ziW{O&%VaUgyR6_VtjM^<aPePB(OhnEyCo7zV3kgU(Go39)ws<yN4IHgqS>9;j)<`?
      zV%!!PW(Nm}BI(B+q!>oTfl2Xpi%!qn>6A(}+v<o@m52@0%1G0hc6SU*%@+C$QzCA$
      z;)tFJPA5t`X`&eK_iQ)a5?Ygi8T8T^F@g@|21FKy`qF;_pP2=+SBh5K*7S@aZjZpJ
      zX^sngYCYXZbU#u%#63ik1RrF2i8=b?^e>((0q<{0#Um9e(r}?N>@8Hha-kyo3Kd_#
      zTlfXa3o;slpT5(s<1GSPfkLeu!zzMU!z9*m3AZstdlB5g1=mA7WBqVxN`lckG4lrF
      zmEZ@#i9>{5;^HAbc^6>J&3J?4Gy!K^ApeOQuHZAbn$K~y2N|bT>`5=7{M^Uzy1IL(
      ze5JlG9UZc|=IV%R7v&F<hiToNnVmbt%<L=7<>!x{;ldk4E5W5he0l6ymY!p3J|x9G
      zuW<7j#>G}h5}RwsKT0el%^&^r*W2d^=lf18QdpY*6<<FJOUExLm={SZY@?UtvYXx(
      zX^R*|2?0DL2Ft`=1+&<}O_De89ntWZtiH!1YS#`l*XtW<BBk3aN=O;pbqn34y(~o-
      jr9RvvY!7whD()jkC8iO=Ci0})qTUtgD=2v2(zg9K95Kj&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0a0dffd7060e2bc60b9c599086621dbc143954e
      GIT binary patch
      literal 2500
      zcwUWGTXzyy7~Llf3?Z1r7*sTAqqYjU5o1l2Tx`TdQG^%}CAR8>j4%ldbQp4Z_gDDP
      z)js95+O-l_?b3(7^>6gOKcRM?3B{}gU9#3NGv|Dl{q6mo5B~c1_qPBpVoODvK&W8W
      zBb((?WL+y6E1GRo%m{Cqy;apC$-9}#nr_xId{LnY41dac)~=L|eA*~iOS<$BI2KDK
      z)0xHDcru>6`DA`JHkU~Yv^|Ooc&G9u!!+y}0aqxT6;NW86}=q-9e%js5$H-7rk<>q
      zmvt+nEteRsCsE03rL1Nd^1ZR>nR3FY=oSdBYU|pj1JKmUdabJE^~k*>AHC=i7%19y
      zH5!R*Y;25fTpF!dg~<5W*u}`hyNPtZsFyV_dWnoxr|!%p(>`?JxF4N3A#fp-kg+2r
      z%`8OHwq=-w$-^t*Y&(KDt>P3tK1G$JCt)mGnziLeANmE<Mpi14_>|`ddMABw;Y*2c
      zKwy3kU(4DjKR2KwgIzRg0)wCQ+20qF0)c{V$0}ycwlr#C7Ur4SW)LM5mQwr3ZGJ5)
      z;|NT*B2p@0=_PHGYt1CtW@5&+^-bHs=bPKi>s7g0QxO(8-_rL+<DqFRxf=50Yn=CC
      z1Q8XZ0^J9J_%Viy?5L7%7VM(am~j=C1dboHyk39yOt*X($7LyiR|fsok1M!J_k2;a
      zW^Gx1JRFlYlYUHLnw@1=_S^+}L*c_b_}Kl|{P+&D0)B_IWZ9NP6G02w;^C}}9`oY{
      z<^<Ynx}9hsm#Ll2n||B^HSlQFs&111)1lbm%zNcfNjKH5J16Z>HnwPfPY2nepQ#u*
      zEJ^r+5M0akX96cbo?IBb^1NaM;?(WK1LRaZ6zKcE9ob~MR*u{^jXdYYqOPszmLE%a
      zL_O__oFNMp!?b5DOWSHq8++1=AK0~q>GbwM<KzuEwfhjl6RGJ_TD0;et;<+ZL7*oO
      zfZ`lk(5#vSq=U6~88vzSV(bSkZ|fGz3dNVgOEO1M<}f6}c<Uq~toczwnZn8e7t`uB
      z3NySPQl@BCHslnX47XfWQQ-`Bc8p3So@$;3dCVOl+wxWNy~>NR1Bn)<)TK=y|ET1L
      z4jS!!=}O(o>+^;j&qw#qicy(>hm6g@pCA$_Cq19s@IvLqTKT3yf&855_Wa??xs+5+
      zai?-_Pb%k8Q#sX}%6Ypzso&sxNuxIS`F-ATyvkrv_%KOor_h6G9LEe!;Trn6H-O7H
      z;&{kUXEWU#(+l2@4ZcBFuIFgav0VgS;p8s9_>iE}L41SHa|}H11oH2>;SA0?)ttju
      zjgX_f%RS{4e7`nhc$~G{`+SwAF9#E?E;wr>TSgJ>%<1KdJ~%YIi@~8C49~p5cy1Tp
      zL>1SBdmGb30rw6jCOiR8_rT9M7gTl-jjBPFraz%$FsKIHyO;?ot{q(8Mn_Nycy=)V
      z;JI4_-2K12|8vms=%>wxQll&uSRmYc=)fX+ktT=t2{el^9#Xy>2i+3K)FZ_4m{w`N
      zJ;e%zlcg>0fo_y0pKjxhQ?8B#?lMaU?UP8cyk2@Q@KSIBF?yz`#aTocF~j_0{4u>x
      zU;a^%L-8O%_=nGK-ZMk5kxh=geSsry5X$v@zl+E3TocMR`bGlEsOvSf7wD8*eR8kx
      z?ztiY%E;Sa-v7OgV6y2GRf5XM4ptuom3J>4#8LK;+2Cc|`7Sb}!5&*B_BHZiQo0I}
      zuF=wBx7p;R&YIR)!=}T>E#fD}CLbA88+>G(irX0R3Vvk0F0ycrQBtgH1_9I<&Bb^=
      NMqGF5-f&df{0{+{ORfL_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NameType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NameType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c06c6f14972c08421668260fe9e08ee9dd1a1ef2
      GIT binary patch
      literal 1914
      zcwUWE-%}G;6#gz*vSAHB8VnUHZEP(jK(c_vRstvuL{npeBt(OqaW2bF*f!bCY!-p{
      z{uR9S$=7OUilZHP@1M~>q<YQ*(J7HJGn+ko?mgf6&Uene|NQs*5Wo~FD!K%&)$DD3
      zw^7%h$-1>EJ<G9mdP#4uY3c>pFw119Py{B<+qvjD4a+E5jb`1C5E#r93#IbvVy=)Y
      z+<lr|%q*8n0$opX0--shZrPT%AP|TrDgsKz*))3~a3PFt1O@u@mTeZc8yluumK$|~
      zi{u?c)+^Gr`1`~eobzE+3<wPWBA>}!pP)^&TTN-0`a`ZDgor?F%k!GEy1uisliInF
      za@?9eJvlk0KYoxe8CzyUhH#OH@O};b7z(2gp9@@%=NVV8OS`6*JlC>o>9d|hr3b_K
      zLd9i@I8P>)CU0%H(%lQ=3PuFF%f<W41%Y_}ytwzmrZoic6|;*8WRKZ(tUCRvfPMqK
      zEvqFkdTz|=G^7QhHPg#DcFS`mb-=D=DXm8UN<6_0)<{v~*9v0@%y*KI^>@v>+$CQ-
      zL8YCPusw6v^SNouyN20hZ%ajjNOp`}Ix*UtS*P(ZzQw49By<%ifh(uw5ph#C^flWu
      zX!2G~xoNs#Okzr4z;k#SR~*as7F}2F2@G|pfa(n42F;~q`&z|Vofw(hG(U07aEES^
      zP@O_68h*g6idzDg{>O;MaYec<W|PL8z(uRYz$H(*US><W((p`|rY4?SPposI1x|FE
      zIp#i=X)%l+8LR&os|~~9OJOV{E6~FSDI>RAbgCvk<XqlzogF@H=|o4bihFd{{T0j6
      zbH%p)MABD-kM0>_0;+M`VxIg@90s~QjHZCF=%FDK1Rc$H$jlqf>5l@RnH1Wum7HzY
      zFtZllD!r$Jo?>vC3c9A~#-wKP<wTZ(5L9|dHu{qE&A+Py!N0X?Kq*$0?qan&SgZ!s
      zVpR<ltD%8l@lR+kXj2!$^grqc-XgGBXw>LF%prn#3}FG6aT_DF7Q+mB{RsZ`wbLyV
      z2|@3{u{Y?iMm~!S9w7P>mk#jd`viSH<0Wu+Bgpzd;o~q|#n*l{-{9H_WQyLrro4pq
      zM;jyP`+oW$R%yr5siIxieIE(UC}N20Zt^t8#wQLiHvS3|h2-Hrdfy;kjZ7clyQ5?v
      z6?ld3_tD3`06XW8l$*+Pj3lE9uie>4Kd(iV<Hg?;5ml0hzrX$WIfe^uq*-NHN&bb*
      zqhaOf1u+Psf-3HwFkhex99SW52^Ubt0M<y>M^x`)=(KMJPjCl6BTse}Pq9utG_ip?
      z3^-(Q#rLSgRLe=lY~@G`;am49vWt)lctAM<m?q=`id6qPqLlX``All;D&=Q=%D$#+
      F?*K0d)G+`6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NegativeIntegerType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NegativeIntegerType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6f5fba4a3dc551be95e4bdc08f9c8bcf8cb52bd
      GIT binary patch
      literal 1988
      zcwVJcT~pgu5Iq;mmJtf52Is3KahsOdKoB1Z1Wag%V-q!w6|m#P$ux`*sx2zZj1V7r
      z?etgVshK|TO46AyQ#$QiANphZ6WZ>TT|*iVlbL!(x_ei5ch8=)zJL7n^RECVuq>jB
      zL9M#m>R#PZcMQi~H+;L{s<asXi%m-{SXJ`uSeolwRm&@pPlUiQdRow;->BPW(XMYg
      z7LQ=)&*+6>X=PC>XoaQK++rqMDl&9E(-@-jrenLdzrYYmrpgRLrm=2ygP})87!iiP
      zyzN?r?fM$kH`W|V7t1$H!zmk{&G#*5WIjkELSeYDVeA-t0YKNNTU(okX{pNvGNXtw
      zBx=6DIj5?-ySrn%Q)3OUs!ooNPpD5G<cns_svA)ZP+j-k<|Xvutc+fqW4M~k^Af6K
      zxK*|2d$wCmzwb$vyKw;@i?~P;r!mG^%G+z6;k}UY2?iMk3VLDnp<dKVS~<I_6-wEq
      z><U9Ne_EPj%F_};xXi&O7;;Up9r;LqXu?1mzh-YSOq?3iVPw(_@v7x#8t#_w86=Zi
      z%@G2hatX;4p8|<!H@__#&NeA|s}s3gB+qh;J@U0{mD}|xw{PwF0Zb{oXIh)wyCovU
      zFw`;jZp&yN=9G=d7{$;DJodVTF^r2)8I=E`lIc%0Nt5STZq=^^1FS`Ho#B%02Gk_}
      z9ifEXWFxV|Ta=K*G#6)v;cQatG&sEKtc*DjcM-E@c#A$KOG{-K!aGf#V($ksh-Q-s
      zJ}V!{83Csb7#In`Y<f(3s7{aRS%z=5R4M!)RZfKJYa5p7r$yYODG%Ir!>_4#>}vae
      zwuG-ZJNId9IuuQnMLb}*eEgw#Ipi81WopYwR5-S8d4@xB78~21Y2|EwQJn8Ep<_H5
      z#_84x(bY(2_|-#J7*UAyFm%)II|$&vX{GxYsS;9p^opR!dL=CCm5372D`HfyL>1a8
      z5rs@eR3v&wm2UkfNUtff3o^YYgZB(oxQQOjLLr?8kfyt09)q}rD_B4ZUqZ!gIy-|K
      zn8KMLn*Vy+c(R0#(b_+JguY7bqgekT;%{*N5SNaN^#(0v$<850)bd1fGYp^Nv!LB8
      z_`H>Jj8^_lcmwI6og)(X?w^Pi+Oc0?h)!J%d^B`HmOshn^gSOQ89l`C$Xi@n7<`G|
      zBP1)K*wi6z{1%!P_AxgS7vAFLbT}SXuKj?XxbPC^_K~3N_$!>DW%frz_R+@!<3cm?
      zdx6D;!B>C(e%#|6bqOp}%@rcFNEdYp7x4%QJSId>h{&h7j%P&W*Tlqg+`}rJctkrR
      z=xL#ew$&52=1B$?SPLXXSCI8K7KzJ2TJMl0Q07r&a5oSkOYAlod`f3H<MI)fDkF!`
      p4j!|EAXk*W=igD~8}ig3VIx41XvVcs$SAZ>$So8MdeHO3e*js>)eZmv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NonNegativeIntegerType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NonNegativeIntegerType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d262b84ae1b6bb22710031ea8e470bd810cb7c9c
      GIT binary patch
      literal 2080
      zcwVJc-%}b_6#lL(EZ|nRC^m_;AxWEnsOyge6H%)npfm)kP#Vm%>AG%V4J^#M{>WR~
      z=~Md`G?NE2eel($GjS$n+V}oZZO>gO+R8YYDa`IY_uTuPbME(@y?^}q`ZoX*SQXL5
      zFj+RYmAzV3*-@*;hH4viQ=vh%pEh(QTQ{?MnVdU%+O+kuZWYKaLSPs<54UL7YlfCL
      zYK^MS5e$8aTsB`=T})@w*`>#+#YD1@XXtvAX7J8xRl_vwc?MTFQe+Sk^$pzzhHeRN
      zco=#!hN)+_YwMI>U9VEOK&Gy#)uL({eBN?;W}Pr1WQL2I>W;eS6lkh7eXF5ry0Vfb
      z(~AH@sAAiV8AaLM-5uMV8mn7nWpaFcLV5Tglh-PGP4%LmvY2Pi??*2NB=q1th8y7w
      z&!SXSv#jK8%P`CFvz|!Nhl>~#afuM;k;aM280(g5J(ci2h8V<jwvb#(t}=u(=OIss
      zj{D)lWnN#1A=Rv}BMb4j4d@7BSBx!&o9ALW_ez{0Sk~=C-Q2P*mGm*oDJsIIa6&l3
      z<@Xcc+LI!W$S~K5Qm&4rSJgf8wbK>bB~WZz-?N=c{mDH|Z*cFHhzP^=j@WxGqrI84
      z7M1W3uKO_xMZ_3`{NF+(jAMejtg4%3yW%u!+KVZMtA^<i5~6k)HCr5nj3x;oTH4nA
      z2;&x)CB`riPIu}Op82+fJD8yyT1B-MZO&0Tl3;K<L3rDr0aBM}O#*nAyd_msJe`7p
      z@z3v{ifOt=k3o+{52fwaEM2wrVl#R6|7ddxnp@x0H9IbXlJ`6Anrc^+yGFVFjV<Fo
      zCo4nE(;;c3C?d;n`DCGaH>BzoMQV#m%v23qx6~^2MZUgmX?n`w_rzf5RvqK<NMj<0
      z?nj0T{PH2o4KGA`7<@GQ4g&ZuCi~v_OD?%PR}y3?S8|KFl1KLBN}@Mc^2#)mJu;cH
      zDEsN{m3_Hi;s1q@U6ANK>Aa^Y!)<hv>M~}~k2qZwvlzl0u3;V#d<+E(w09b}Foky<
      zH2?Lq>q%05jK;p<WAv5+?*{sg5PXRXNBH0*S&wt1B-tqhu;c`inlN0!Rp+?Z@L?<D
      z7>#^QcnSYuJBG*c-9LpD+F1H<Xx9zLM{UTXuq4?cd43#@jvQe)`U)fSL(kB2jBv>n
      zm^{MG-(4}m6>}e8BN}wS!gS0N^vL7;@EjmV*2D`8(s1Wz^aq8XFw22KcN0ne=svoG
      z?q_`W6`GFjqlZs@LQFV7@9E9oyIIgZ^y07QCxonFfZi)~s8wP=PnUWDm+%=eUnC+P
      zB8n2RzDBG+LIPh<Lw<=Y9^+FQ3s}cj(CEK`I=+U5GPYshTf+W;Ck{c&&7-#n;#Qn=
      zWsWsR%63uKZ%Ew*5@rY{7IBy83SpD7Es&y7igk|!<D{oZu%<9;w3`bl9b>r^J;Eo4
      opR+?Js+ZOu{7dWxc`W#0JN1N`xOP1fa;<u#Ry~Z)#@Si<8|u90p#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NonPositiveIntegerType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NonPositiveIntegerType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3b9b762722783928e1bc9b7c834bb96393f403e
      GIT binary patch
      literal 2080
      zcwVJc-%}e^6#g#xu}N5A4FuaFHf^;{2(bKULrVamX#%lnQb>#q9j(i<CQCP)%(DFG
      zn>s$}Utq@vIzI4<b*9Wnr@s3~spoEDK*=zjF`3<a?z#6n=iKi*d;j?Jw>JPLuqvR7
      zVX|Uw%X>9L-cbyFL$UR`Dbt|X&l;MXtD6t&Te_|9Xc^PiDw<U!w*WW8$a%O$yI#}P
      zf?jJF8b>hnCG)vLadk11%jA}xq!*K^Vu7LSafZP+s~Wng+w%;rNVLS@PS!UxKNz}2
      zc;IE|&FZF>+peuser4UDaKUU{Rg98i>3rUDdS{(50wjiuo63%|=M-ovHEpY*sG7Wz
      zBh!Z<L%3?&jTu?q-Q6AAof@lK6?t-ed_sQoAX`wYT21kxpR$-|&L2Q821NAWJ%$^R
      zEYBhvidm5hwxyeu#92?Y<i|w}3b;gw^GM@FW%YGSv7U)|A43d6CRa=?rB)dt+4GPm
      zL?;4p;WDo;%#d!@*O7(9+Xi$5v8(zP!_9LsoqHw05UOZ)vTknKmO}cNl{6J$Q#f}d
      z%H<Cb-|Ev6kH|3BiBhhPr5VZ|`P%79?Gh-qt?k)PrGeC*sx`QGOF)$2dPnTNmeJnK
      zS&NDI2-gD`g)Cr<LHchYBE~U6U1n%z#jZNdn(<+Z;i_&rgoLSGMjI^-!g`a0FfDCs
      z0Yq?%%Mxc8h-5l-3D106#2w5~4z;RSi#F#d6HPLBoFKgI&j6`Q)FuJEOWu+yDxOZk
      z!1(9)PsKD{qerJlrH9gXtCptNTB(^l_kXlG1<kK-YO0+OK*{?ZcTKUY@?E{s{>GMZ
      zpOclP=IM|$S`v_BxO}qEyc^PWiz2l}C1woW)-1)Kz9`hUEmceF{GJ%>+^S<d9%)SE
      z(EZ48fnPpkdEkRU4}+g(-@*<4i%b63fwD{L&X?Vim@j*TeAz2`^JT%8FZ(2#NnVLe
      zNst2c_DTNyuL%4?$S#QVo^;;Rl;JkINp%S`=tqLCidhU{4%aY`C_aXa1=>4}TbRN-
      z4x0aZ+V!NUK1O5T@G*MJ!FPjwM+m*dg(G}$lB~x$Qi|*}f>?3_iA@-;;Hq=nYxuAg
      za*Rg4=6;F5VLOJ`@!da#b+@tf;n1!dj*r@qM`0<l1@inb92+^paO@RE=7*l6=NOT)
      zD>!+Co4>o`ZdcrMfQ?wl^9s{(Z^$c+@56h5JXsSjFi69lpV1$3|A<)*40)PJ^2hek
      z9r8TqyRXo6bRRu@>UYK62k1S$`8y8_d4^v6_0tI<YZ##S3LR>d*e}qfUc@DQO3ast
      zh)0N_OsuaF>yMGd=hTp2AcrS-NMjM}_!27pH&Dk{uu#D^bbLeD@A1?jXt{ax7D3!f
      zkgm+J=1AEt%K9~_yFkJW!Nel&5?x_zQnm$BG)A%RkzkzkGzr!eW{q}pA;n`Xmt#lx
      q<nS|g=tT9=`h$Oo-5`&J0Bon8a1+<AM?}6=kJze*(b+gVD}Mw05$It6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NormalizedStringType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NormalizedStringType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cf49a602401c46743fe682c3037ae49865bd7ef
      GIT binary patch
      literal 1577
      zcwUWET~8B16g>mmZdogoVo_A2qGAi!1ymG@Xf4z<soiL?vGKtS%cfo3Zkz2Q)o1^Q
      z`sAx0i6m<D-8cV`dS^<Ck%qX*?A*CC_sqHH-rXO+K7Ru+kDQ7=hPkS{t+(rr{){{J
      z7WeIjtJB2&=S@p5HoQ8yUsziu-?QE7202wI46}ztW&B3nHcNKB=~yCyVI*r5OB?qy
      z`C`6!=W#BRUEe4%^gYTmgjP()c5Q!^p+Au<Gbq`{mNfu|BVhy(WEd*gu2tNwZ(804
      z-*gBrT4<QuDRa*j>pf?1MZ&0vFpNFn&v;uBba~xsHMwc&_ljhO5M_whe80J@>pMF;
      zsh!KIhF8@W=H}-0hj$Alvu4$K2*(&A?myXU7{X{6gE-D`F;NhA=ni+QdS^R*(330=
      zU<{{JoTP}uBoi_f>`jk*&%-#4aY~2uBC!|}g~I~(RZeT@$Aq94XUKKv^^_p}zksqD
      ze$8$%EF2ost4-1jv8v@~8*a<@IF-h&=7@q%U`iq>DzA~$=F_skW4O^vPf-}pa(J73
      z-OI{d0)*{bZC~=#*4w7l6yBDKB*RqC*tI>Qdst{T6UGHhX}APkMT+YFFOe|jFi#b6
      zEVt^{WS{26@ylUc!ByHYYuwBDBC&ij8^Se)3EP!I#rJ#YQcHrx$-ixBNMK3SYMEg)
      zk?++x3;}smwEKZ=2G#6jFB;@Obt2}J0s|xQnN7o_ktOX)jcw1ga<=%4#(EVqB?yoT
      zgh0Ozh7;n;BuhaEDh-AKT5(#7=WHbSRjc$XMnwr2l|ay_1XZJ=hKx!m5;Q(Sdryb@
      z5T^H(3|u6zYtV3=1X)59%NRu(C$WNY+KXcWM`eU~2D{g-6A4E1$n+NsRieYukzK?-
      z;KVM@>|Zb_8E448O~6?R6z+uKEGA_(=Wu=xGDWl4Q$9d@*To1*-<`i=m2NC`4xPFv
      zeN+mG@|A3%&f4_M>@KEfK4EsXe^Gf0eI}-S!op%87KmuCFig|YSI}r0c#WYiNK|4<
      zba5BgzrR#iOc{Uk`{#Zplax4cmynA%0t3UiNB@@l#JNO*8I;=t$#AuE_Z~xGrAbI8
      itsAu4N6|~TiCd)1Ag+=&w}|f;oxe>OLee#P=lUOsHFV7Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bea3e1e02187bef806a04b6e88fd643cefccc418
      GIT binary patch
      literal 1538
      zcwUWE+fv$46kP`c!AR9&Yws<+DJUgs??vq}h#h7yvBEG-`{2ZQ2Gc@dLag*x`VD>P
      z<-zG?+V_4`r~4cbooXF31KDTi?6uZj`y{{reESJt7Ee`#7?L$_TkkaL`dhp1ZrXv{
      z^mMw}!MhgMjb<P-6<VlJ7}Ce>&IQee>y+I_tIkCQ!&u%l%9XWT(I^_v)|YenLZ!?Q
      zdR1hI&O3G2bAv^Ofn=)6pyZpId=LynF@zCe7%90PH?|ua+^^Uhb%KkRnvPws+P*8+
      zy<}uw!l)Q!xbWJ3Yj>nT&u;K`%XYZ_+@LUuI74D92wG2ceP?GUvvW7o^lSRu%*?F*
      zVx?4ews^yi;tVM>%u23OGz|?S7>{8X=NKlFC4sHiZLg-61K;&(*~6Jsbr2VDNySB~
      zIL<0zPs!czZU0>imvM!<%^B8uxwx`gDy&zm)dEeXbR5FI%~=ftxF&Qa7?!&_kMtmW
      zQb0M5V9RYYOdVTu@O)$$&enL4Z+h*(w`nF`ZJDS80#TAFF>;MOcHUG44#UDxhKh;!
      zyl!_W*C(m=i3vO4oj~f-3LS^HM7FIW#V~PX?NTr3Zx&un$8Z}HL%0K7Mdp8{hiGG%
      z!7LHG?Y*|C<0HCAy^P{6!?^27%MyFXDM8C^t|5v0VptFUQ%${v<xX+l4?Sj3ovs{l
      zKu#u{isEj&w^-sW?rm}}kni0~>Zjb?_8q?LikIp1!HH%BJ2g!^>4U*=Uc8qSg%O2H
      zKZZeC*-#*^>!Xn$nl+%9mJ&9taKyACs%fcF(~6Ep%rDSB(WVe$^gkgB9}(DNXm~<q
      zWD&<a#<75lSi}{2mcTunk`>|_?$Z^Bp3!}5>N`fP`04oAF3x_&`CVMyCm5EB^As-;
      za6tmax@EYI8?u|5xYdKq&|N%JK12K1$B4*W@j$K8uchNdyC!9h<{(ixaSGN;Q`6~P
      zOr@v4A|1keocfNW6`$M1y<htR<I*&fNLDe5=hXF@BuaE4dPE|6NM0}*Jtn6@6lck)
      YuJCkEcu4v1kL>CJ*`dDd1-V-M3mJ)QO8@`>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/PatternFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/PatternFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ac44071b2d2a26fad5db4f2a32406b715cb04e6
      GIT binary patch
      literal 878
      zcwUWCT~8B16g{^eY$?l!d{oeipfCL(Z16=%g#<7pB#jy{4e@PSChd@A7nWIqKZXCm
      zi-}6&gV9%il;O_oQkxhXUS{r{d(N4A?#%B$-+usD!*d52LZutT-sOq!T?k(t39Z7w
      z<4x#Kr_y^bw3bn@D>_m;$Pt!@p)HJ%=UOZY3(aG3A-q^C--~2dUf#(y2qUjmp!6o;
      zP36C+=CHfAf*{oPtWj+day#LXEFz0B7Y<y)N@ef<{811lT;wrAm~5&*zKu`XGWsCe
      zKKqz%h8^LzM5Iif9_DmUofB$9FBu#kn=Xp}r9Aihwnr%R#CgvcBxEbqy&~rE$iV_(
      z%8t$#LDzfNK9(KrVh$yqt~`r{&+W~n(;a{`svnKOqKn5U^J9g&CnIC>A0Rh;5XMnQ
      z?keN>!JwN}gXTZP9r0h{q8T1XS&khPcpc?zpL0`pYtG6IinaPzjDO}lgGpW|Z0#lU
      zUSSODnBr_H!L!~pU?ZbTHk!dKGs##?^<VIAYK7VtjDN$!>%Mlv*|3^!f=M;W_)htU
      zjLz_0uKxmEp;Z3~Vx>gw$rbXs>+E06q~C4!x5FCSR=bq&`~8;jls%ZPmM!nuEm=~?
      A8~^|S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/PositiveIntegerType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/PositiveIntegerType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d4f2a83e282c96371771ed76d512a3f0ab2fe7e
      GIT binary patch
      literal 1975
      zcwVJc-)|E~5dJnk`<%;>T%DL-ZNM!p*m0W64@e+R0>;?E#n=!VgFz*_99R2N`)pk<
      ziFvL1SMXHShr9+V5vi%#w?6cb>7USccI`S)tO%(m?d|OB&NnmP%<dn5{roF{8QhaG
      zz@S&1ZN1&7>pMo>er9-f)6r=%yyq=Tzt`NdJ$uK>I-XUv+!E<zNDPz586~}D!#0a{
      zqgA)K1;c2nkS~_jlG%JVzq+1DrqZP%!@!d)LvYEg+m7w6F!-XeGJ}+AKC=eFFr>nd
      z0K-VmcC7q%V}tw~8+C#U<(j5ZFB`7S*Ii{`Nx;a^7|v`OJ4Ras=ok%at7Vv$em_rQ
      z5Fv(0>A|y1u)+JGDDE)pV=+?DX`E{^)M5Xx6NT5yTkzZM~bkf)SilF^p3Tm!diD
      zLa!T6RWEw3?Nk%*YhvX=oWaL3&XUD(jB%E7_J(V?&sBVaafY#cA-|qauO>^`a(X?R
      zFQr%0YYfrcaWF@eClvT_o(CIY$aI43%SYlv0Yz!Nn!Uv^bF59DmPs&#tCp8)I$NG=
      zP??-+h9d9?ONz#L7brx#`E8lQF)a5Zmlw&k>PDM%JzwRXf5P^xwkN_=(rwdfaqX6j
      z7{kTBwzs-M?=Yt<uHp+^RPZHq8B+|}e*;l5jTvgTy5&^8n&{bV5OWOYY)7yW`L}B#
      zc87onskbc!QC#8mm}fW{&GzdR?)9pQYgi<Fvu3zSkMom_r5OAIgm?aXh77XVNuIaI
      z2hv1=Qw9u-xMwyElLq-2GF{8?ta8U&{{Ix>Ez`orre%5w8LQOTLftUDnts!+_O4b2
      zS<cQ^)G2+O#>z5s4CjwFI`2WI=@L?}f<#5#_AJ+^Qxg=M+pcM4Z2mT!?$eZ09E_?-
      zRM2ZkXZUMFk{?0HG#CbH^&KSeZ(bYxMXC6-p+ZH{)I!BC7b*cQP^iekLM5otN(*Qt
      zYO<!#Kd22BeuDCfEC-;{e^&e#$ir0(QH?b$Vhjm-9+ohUWn91tVz>?+H|XpFu3!!)
      zgf;($d-0?xK1TEC#34p1p^rkN2ME8$=>wcQayBedN|T&H2&)1}?U><Hd?wPpfX};-
      zQ#A8E={1!79!5au?!09y^=#>i(5Xv8M@=VC{v?^x_jDpYd4P%d8%(Z@zrgSzq7`3g
      z_5hcE^UX_pSd53IH&~eWhy7ao2MmR!7dW+t2rZ{y;sj0CenemoBit}7bu7P^SXdf=
      z`S<TfIWAI`z<u($MuZmWZ7$&~9w35;6wxCh@-Z&s2~qhqG4T|)u}&u*(8>@wt#qR8
      z=ES80m4XRrnRW*R>UAoIj|y}HNg5I%PvRz0q6oJLx5MCLI>Q-P50R<F4{&?`A=?*N
      kLE69bPF21kO$`b*MHG>aT`vk1ce_!j-6-f5iku7o043njQUCw|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/QNameType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/QNameType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d6e5832a0d6796df908573495aca257fc26c6e1
      GIT binary patch
      literal 2399
      zcwUWF-*XaI6#g#kvWQ4hBB`iRZ2bWy&1$T+k{C@%VzC5J5GC5i&1QwQu*)o)ANIN9
      zduN<J_@X{Jov}03PL0-%zI4W!KGgrH?YTF&T7wyxfxUa~Ip6utch0^1_0R9m031eL
      zfsbKd&017fnhkYHYnTg~Yuc7d56!*aGSstqt!b2Lr9fgB+Q@anwVS41GMlZ2h+yc;
      z6!N9=xruB(n?F4_J&~Czml%APvJAm7y<u9WJI>%wrYa0l#$GTsfnjqPG6D=eIny%o
      zi_Lk%DQoi$f{W&CU29Y{$K>xFV_;0cDClK~U(=Sf6+zG<+U=I6cPa=X%8;nLZY!;-
      z%gf8d%SVQ7r>2e^I&@gQIFl>sb)%^Tv6Vp<0U`9DKa2=IWH^w_abUHfSv9rfI;K?{
      zU2jQMHX)833bs?kMmlkAa^}3FIoHG3i2*8gB43>=WoL@Hskw5sIK`06ZG`Yz<IxcO
      z*v)w+7^c^Fb`@aseE~%;+`8GODmIMqCS#N#Rx{j;ZM9uTqi$HWY0B#of|N}0W`{^!
      z{o4u$VK~uEP2LN~XlN^B^D<Pttc2|vE3P0Hnp)9~7Pqz)q!{*hjh*Z)JZCP{U>N(b
      zKZH-9Di~(i`Kmr5ZfH&Qyk+V%h35=y!EnMjgu@KIuFWU2Xq%Qh;W*lLhW;)UP@O>>
      zVc2R~LaanS!}Uqf%OVX^5=VKHj*(Q|f-50>j<kZ~4BOt~M8jFsoHpk(iZPy`&4Ej<
      z=D3-<=4iTWI5f4%>}+b5CmQF8PI8vncV(Ig;|q?}vxeot@bJknrZCO0i65(sw%DdK
      zHuNUva^10)`Pmyyb+v}@CC(_Iw)eiBK8&xBBk1<xd|Ma<%WP^r&&|lAsG#t!_O2U^
      zFwWu}!8u0TZY&x3SJPi~jH~7f!E}>-y(x$?wcu3`y)%?(2^a-5e|;jzwAF0E8!pmc
      zG@9R0>o6G<eT^hP*Y8&j1^IN7fo1ukMGO8y__17<^xWGRc_;e1vq1iVR!5kq+3w_=
      zG+KtWU|6oWl4t3pmFz`FH>OQ~&qloSKFk@=;UG8q7a_U$eN8JFK`8X42Gg4c3H-CC
      zH}FTO>X!;tNiJ07K%p8?3RNXos0Mojg<lbRKu$h{>36>fJWgO~glO6$7()~%(2sF!
      z$4Ly(UIIt4MMUsV#7j3t=@~uy4n9RsHTprcZxykJ*tUvYuM<QB<4N!lk78N?h1bHc
      z2Oo)QKE~b-<S;$?p7ao*Up$O}u$_4$R`O!$av`q+!baWTDC}oib9G)G92{E3LEre`
      zV+^IGxb*B6wme0$8XZ~1r_bY(f4Db&8xg+nKgMUb5aGLizJ21kbWFa7Y+Q=T<aGyo
      z2Yh$1B_>N(2<HxZxMxgWbB)R4_pn2_63(ex|KI&yW-*z9?*985d8H+fL0XQJ{Sh)3
      z;_~wW-)$rY{R5A1IxP*wr6-v2;YEjUiSvCx1qSg0ZsL4Ln0Xomph(4@rJXW~eI8p;
      z!7g0H2&&Y_S!8e-Gx&yn=TOHLSQPagbljl5o4AS}$$A$ie!?}}M*|PY;|Xm1i5C8b
      zBSgO}n)9+FI$vF&3{0%5gyW;^FK~(c{KVk~z9vQzP7y1fSEd~Ol>G|X?qV~I={(t<
      iAVw@MincAl=nTM6X8?TC{kPh`^hW!AUi+_#x7vSmZco1e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/ShortType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/ShortType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..000e6e84613ed9090eaf26fbf13ac2a1ee870594
      GIT binary patch
      literal 2332
      zcwVJdO>Yxd6g>}*J@&)|<6uf!QbH*tCSZp^4J08nm>5irU9d4RUtuztI79srO(q{m
      zRn-OEbisyIyQn~=LX|2t1&LIp>esUEZ)$tq*f;^A2&tCrci)|N&%O8D^TvPv^V2T?
      z4#8BhNnmfeHXmQAR^khK#hTI`t6qz9(Vg3~W;{Prx19nl6^g)tjgF2w^{Qp$t?F#W
      zlo0|Q$y_#HxHy{5rn6@zQlrVSLSA6g)wDq1{OI^ZaWr#jOdy=Or7!65ie4+n^NwxR
      z%0mL1ll9u1qt~3GUYR%jXcO=r9yppfDr3{xMywz0P4_VYUuG<Orf^n35Z^y+RIHli
      zj0kvoqeTHFS)Vck5Qqffg-^p9=v1*oAoOzbAl}4VgsYgfvNPkxr)6MQ5L*xu*pjho
      zW_G?hY1##SvSP{x>V{q^>b52KO{Z_z&9CAeflirY$z`slSIxOu-7w=9vNZj8SD<^w
      zab^eO@x{f(*y7<>-7d!m`uh*X$IoZ-#*A6j{n*Do=j1Fj>_%@8-G~bG^uEg6tDa~v
      zfIb{laexsU4Nwj(V@=w+eLIL4;%q&gEeP~xHdIJ!;6oZbI3#Nu5J)v@Tes<<*9CM3
      z=ge4htbF5`=Q5>oB4yKY#bfK7K&_l&UWW)uZ&WHzBcsMgMF}EsVm$^W|F&7tm*{I{
      zD7LZ^+cB3Mw>WKV$uMW7cTNR!?^`$abkk@ZmPDNh;wX;!agz7Ms<};dyA$qSkc!tZ
      zh*8PqDS_?1>Gj4cHGDdVF{G$AV@9_}9oc0%n$&O>=TxxUj@7s%Pw0kY+ChAP4D~c+
      zl`Teidz0xXk9ys_0;<tyP!9ezsi0DLTX^#<TJ`B^7o<9?+k_KWcw?KpLY;eq-z2}J
      zzs;~s-7$-e#M%Edj5VRT$y=u345_%r%en@!aec1hhNN|ZLRlwYw5UQC*tPngann<E
      zyQ({_0kXl0MJn|QHIT2*+lHC4<gIUSDKRD?(9ai#hc8<NJLGGJ)()uf(;J|@2^#mo
      zHT%un^DRT$OYc^M`J{upyF`$mkx<}gt>g){<w{B@m@9eJT*(*m<w~kQSMrCr3;9Ac
      zLuyFluRj#XJ;AoH_7vNnVCN5Rj<@-nU?%zNqX^q@j2Vw(8zt9?A#`CFdvF3#j3ADa
      z7~r}0aGIV0>~az0r@K|#7;6<=JN7@r?oxP9c<%~&9%KIs`d1USyEL3-vuOsNbAf`5
      zFdW7au7XJtO~@Em`Am6?ZObhTpX<x6iB(#$yh}WF-1P}ILKN{EZH=D4_xBxG!Ehf*
      z80q>F?awe+@`OiL@cyr!gyKnfJqce}8&vx|PmxUcBmPj|eFW|(;t{rTbMQX2@a934
      zj;@F@^%y%JVvEFxC=HON_dX_+gzphbeG%n3Q2zrAaXJ1qjzoN4Alj)$yz*IqPVGmW
      zi3Hr`CBQpgrhd_*h=|hl;NM59j4p6cK!L1W;s}eB&1L>`jdL(1j_(S3DD@bwk=5%Q
      z>J6O2O{Acce*<|;VFD&BOrwG_>a-Sd3!icKIcm5^&qK^&88)6^4o@+UKX~pho|5cO
      zH+XHbFRk;gh^3W9jup1ycYH`$d06H5xIjx`W#8c<Eidc)mNm%Qd+-hG_w!Q3@D;nb
      zO#2>V#%ala-4Z)#XyOX7q=tgeaJAI8g6qqd#j=~z&yzP_(AmfIe8L((b*t@e#I>po
      RVzOCnuvx7jCz98x{{XRo4=?}#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7151477bf5e3750a94a9ec127b027c0c4ce1337d
      GIT binary patch
      literal 5599
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35cf941235711cb668037ada108f7240f3cb70d5
      GIT binary patch
      literal 941
      zcwUWCZBNrs7(JJjw$#aR2m*?NFEET*LH(d?k}Pv0OG=A&AvS&>m(rA)zAU9M_*aS_
      zNYwZP{87f|mSvb|(3`aPxi9D3bI-Xyet!85U=7O(Mi`d-_((sALj9PB!9LG|B-W|p
      z*=f(y?JNyqze}Y8iQ&mrdmC921+E=Lz0eZ~hRLR7+TFK}j@dCcciW9-t7|iiyzelm
      zbvF#+AlqOlR91Evq-L`3je+4>5u=b9N=6WS=25igrCq)k5?$FyTpsT5G!Wy#q+HKw
      z6ihJ8e&EOaBo`R-$UE$D*VEsaRH`U5EF5H6Z(Y~>{eHFoteT|0{&aP9O@Fs#*zSQB
      zaTPa-@G!r#h7zWW7{@J!<%%Jg^^nK@z>?aZGb=k|n8j@cbA-6cC}EBf?4>+CE#eO5
      z>8=ga*|j@c+eT}*>uk3eD#n$u3{9?SDBzyZxxmoA(D_#fYX3`^hmjowhyN5Yd>b`}
      zDc{SQNle~x$|LsMbZ|x#Qe{QNt=Y*@>U!-!L{_>)R)t=yQtSnKk_<B<d#Vahq0q-L
      zMk5XhqAgCy-!!KnS&lSnIis@W$cp7Cs^zE?vh^9-C)zZEBK?<g;0q#q2@UJyPYq?%
      zF^yN4!v^MQZ2`}5Jx7Q(K0K~PA{h0PkH4bily8(L&oOm|nRDE|JYYOm+@$(75w~)p
      m;sp$gxS!wV0Ui!0tJI4%=?vP(A%~pLb$-K2L+qn`*U~SOecbi{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TimeType$Time.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TimeType$Time.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..008e0729a63abb38bd16322f266f8c94a3bdb276
      GIT binary patch
      literal 1036
      zcwUWCU2oD*7=BJ$R>0yIZZbD@xS>**YrHUC%#WBF3<=JUAx5t}z{%)R+DXfzKSUFa
      zM(@1g#>BWp6Qj5ODC2udWjJFpNYDG6_Z*&&xBUF|<r{#DSks{}m|Nb!de(ETUG6#^
      z9y-2fQQ_h99bq+`o@fv#N}xky$ZqppZn@msvhK9DMLX0n#W1_ywf)`>@AH-`81$aw
      z4MGtxuo~?G(e}NL+*KK-t~j0(USm*8W|Kj){f<aO#k7GVFc_xmjwdz-y_V=VMr^sd
      z-{x+U_Z_*9n_Ad)h_O;Xbc}U|WS0kBDHy5OQeem%(2>+}f|U2eR9&Bk@_5le3h6ZF
      zaZ36-O~R$B*_4fffmzH^An|m-UGg$lsvjKEy7`zP;fGz(mpT49mO028L#iE(Pc;1h
      z@X#F7oBp8R7F9>)&-}@@ChsyBHO~`$+vPzZ0v)Ri#luX73`mFqWmV}(K%xH#O$72o
      z(P`D_p;tqv8A29SMm161!_kif6l7_gikg=(L#r{mfE<odWpYgMk8co}Jj<6q;dpkb
      z`xWz#2rlg5<Yz2B86Kd!K0%is)1AR`Oc&5?m8x0!0rm<jmG5A;SBYBEzsC&01xf$n
      zH4@rTrSDiE7sa|sQL7|y3+GXb#0n$ASWKc76iLp&BF<7zA$*Q*j|{wx4cH?CSN}5b
      z4jEbGwlkcxq7EgJotJN*D<7a~lh&4_>2Hv=yCi#$lHaGyo49}mP5%K6@!^D3du-Jn
      WTfG!pRZxmpO_Zsoqc>L}p5$-FUB=J=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TimeType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TimeType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..522aa1acefe0007fb766768be108276b9c761445
      GIT binary patch
      literal 3776
      zcwVJfeQ;b=75|-N_r13tO*Uy>+oeqtY1-za&9<qmB}r>yNZKviP1>YsH+&>7o0rX|
      z`w@0unovYQf>azuP)AT`lR?akpp-(AN*$``Ak!J0aX<u}5g0p4XB<KPa6|<?_r2{V
      z(52HEcjmr(-?``f?)mtg`;v1XKKDF;tvDv5fKU}pj{7DPao-Uw9vjk(SSsn`Ni%L8
      z(|tX$gx<po88*VE%W1Y6sYEQ&9ZQVGO$);Ew$4y@&;HgxC=lA!-_hFE-qTGexFJAL
      znj`U8GG^=~6js;t5^Qa$A>9Fj%MCjuLUAyb)I;NmK|S504aOO+G?<EL@m?(*6Yp7}
      z)NI1Y@DRMC+7WHibTFwU^vswR(S7?uyi`z1s2nkju|}V7Vq&6xVq1MG9rZPA*|ODl
      zXm7APGNLCm1!e4r!4W%Aj1_JaVI^T>bx`2?;#xB5>o(G{WVGp0NlmW<UaXdJ6<b_3
      zq5KHO2Gd&lRyWq5oFi=wh5Ne$d%J?|{XOBXc0zUVatMnlZgQd!6~fO-LWkvN-uRoY
      z6woY%F%ruVHeA-`A}^W<YE(DcQpt>w*0>hQXa^r_Fo3PPMwHsgxs4p|6&Qpa`I0Fr
      zk=EndB+GIK^yUs_Y(t+kOy8XClM#JPNHa2O*vY)M*JT$uWs#>kH`Zf=6Pw|aQBUxE
      z+z~gnU@J2!t|z0$h)K+VP~Yapr*RE$L`Jl9t04jl)U+x13{x_eG?P;)NK?tnai&f+
      zt`#L|B&?_o<YNlKZmJ4OU$RY*BUZqI2UnOHc9y*+5a-*TVKv>F(+ol}9uXdG++2~g
      z&YQi~>7oCp7)wk$2S@dY(IkUUuelP^RP~rWwj0-rL@6T4d))}3li<jV4`xhP%=86n
      zE_Km~edw04pHQ;67ht!ddfJU19N_C^OiO2UmN7f?1X&Ys@ZksDID{6?cOsS?H}s4X
      zeYjD^4cw8779H`FX1H+^Zf5eCsHWr-a61I<fEyYH88@SIC5N~Zs6&J}Btq1MW&Wr(
      zgDE%yE|(lj4(XGf!xq&73Jx<ypU_CSkwl8QsNXWK#WNpsBU^}?J_WZhB@XnoIg!D*
      z4EDFwR2w&9akC74sif}45lk>CxPLE-m~;8!3SMg5B%t{UJ1Tm{%@F&wiO%8SjBd#I
      zJfUI{#Ja>gQt5<d<T{d2cSZM$NfqX|B0B7->0yC!lu(w>C63uRI$}N(oTHTK4%e+a
      zHJ*;>9Wn92SauP)UI4J`fn-uox5c$gMi-Zs*yf9XLHH9%SS7wjys|@q%!3)qZ%No7
      zezhL?C(dx8+!?khongC2>I_RBev>`?s(758VUOf-bUp*;)2v+px3GbepEok<O}x69
      z8=xP{F~BEjD90eyA%YFOUxRH}W?G3~QSR(^_Jw#}UV8?`;nI@Q<qJ?xVbucGE*?^3
      zx<A6}7)mi}0=X?Sd<s{ap{+wz7P6jav1dC4=gAy~WXh6DY;8GPzDZeYqbXy~2$aGu
      zUMswLzP4`D0&45#v1zB|w-x&Bg??$4l69&yj|RW2%AU>BC{k_Tfn&-}v$T&TTV}9~
      zr)wVrtG1}NADB^-j~^lunMW0mAP<Abi#&eM`i;{htCDITvY$Zl8B~W=snoxK?Pq1b
      zO_gi|e)}xmGxhLBUOi<|?;PvZPh)*vJ&&}gIKzsS)A(9`#U&?CT8jEo*^p{irD;_2
      zR^18oTFH=R5#&|hG&~;1qV9If^H1<-iR&NPn3719%4a@&Fq_2?1btyvT2$|vtZX}v
      z>&q?V1_4lR+0UXXD_!#uY0;9m9Mh-(EoMz5jKjqjN)aYdf=R68o1p@?p$@k*zrMhK
      zZQhB`;x2p+Uu0h1gB0#%tz($Nmw9y`zKXBl>$o4^#siqfgLo3(z*G1p=I||?#=|&^
      z@8Tsqf>-b;Uc+(x5hw5#X7Dy1!{6~ee1OM^@O_doOHMpNCHNt!_z|tfQ?wS((0a_#
      zHq4VB3$z12rdB*hyKsi~;Cb4IpHd%wM#Ff4M)7kR!!Ia<m*@^m(lMN)C-EzK7Qd#m
      z_zk^)m+2f{q2J<n^cr5LKj9B%hwQhwpY0H_YC^N<8eZ+dPR^E#Ugr$7FrSO)RkZTT
      zh7x+2Gt$EKDI)`Iypm8s1GtXcTxRPI?6P{a;9b@c`5s-;S7)$0ynsE8QlVd-#S?X^
      zEE-Hv6|0>TtDSKF#df+c+f9NEt9i8Yh_M=T?66m=V`efy@HDzS%_DQ@6|9vlf(0$D
      zcCQqE7QIU}2Ut&8)T?4WW_<ZlwD27IJvpo?nN+!a=D!C7$ByG6)#j0>@j#t;okyfm
      z_A=+^F)YF;n8w!9Q7^;9ABJ2yCN@ta-RST-ehE9Bw7l^;<}oS!n8hBiT&OC1Dyzt<
      zVjB>MPOrlX$?sBKkHDk4yiOJj`CYS|B<p3s@3O#Dmq7ALClAs|u2~s5D2m(2MZ;pw
      z-i$9Yo52jU;|;F*o6P&SP=@ok3V-J6|AjvvZ}a7S0bTej4&rYJ;~hkK9>u#zFk3Tt
      zk2~cb+!_DG-FTnb{x4?vznS6x!EvU{<J?uVRESeN&ykJUYG?kRXGXg5Diz~R^56n9
      z{2f}3_o)mYkV-aM!M?6!PghYnt)Y$lY@oH&Ocm5hl@y|@=@6}>A=*Gus-_XDHF^6G
      z|Et5S%JFtI$J@~?Z|$UKd8^Q1mbWhI&+)dGW51nwyAn^E43-(`QIo+UH&fjE%`CgX
      z*%P}8$K%Bvd>c4uBcE^=?>eXf4SX*&!%5BjHMyJhTzvABdCS~`FY)YTpLX-O7s~$t
      DB=>6o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TokenType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TokenType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03c3846295dfbf545f22c114a56f9b7fffb9e58d
      GIT binary patch
      literal 1662
      zcwUWEQE%H+6#j1G#Hp7hX-djA2xP#zq$zRRLAo_vS(YXxQW~=+3iBp3xvrI%IZoub
      zYbIWikl+<wc<FfJ6*g&=7=m|x6mafMmBLn4v*dfvJ@<a!Irlrq{_F4G{s6FyEg4e`
      zS32&#I_f#<Bg3)x4Bzg%Douv}cwnim{zJ=cktIW7SUl@!$?x}UvuXDRj>QoSvt_N(
      zZ0(e4jap;tLA6w_w3-Z4_iGH{b<?q3+uvXaWU_4rsodYQronJ7f*?W+vAXSAjs4!P
      z<+Y4mhv*XZzG*mZ!?XGN*cn<EG&1507r!(f86%OPYxJz)z%VWKPJ_%a5)A3C?+?~g
      z_2A$je{e0|_d4pz($cbece~y+yH?K#;|+$O&#$Z?hPeo$c$493rp}2~$8bAp)Aww*
      zQ+(BvZBOGO-jZ>N5NAqCL*3r>4DWFSZzIJp)6jOdOZD2l%H{*oi^O8c)X(BLQMsrf
      zfOmPOX@=@J(^DlVzAmAthTpY^bdNJJlinyYBs-R0?z=<ZGpHVJr%G{sVvsUfUT%f-
      zH6OM)3B%3P^yJm>EXNp;ZxW$BiAvnQHS$GrN@ZkP1MVHl$TG~IirqXmCWpCDxd^Uc
      zUcrY@W#k#+FDDYg5|*i}9Lw$aUD2GiFs@NA+pf?cE!rbZ_P(VcgO9oN1%|my?X;fY
      zp{_@818YQTb`7uOb5Uy9GIg3D;eGuIkU=)bH|Cx2n%Ypdlr{q+!6nBS5|&XIX47ku
      zY|Z|@XIfR8e>Txc@$x)4-I~z!Q((BjKR>c0gdx+*Fik6i*8I5~5B;v_0ZG%Ppr!{y
      znjVrhT@Gt{I3CiTLHU&qO(8<#yZ{!6Y!wQwlT0^|z#8UI#3igFMSE$i;JiTaCprmN
      zp(Gg1vkNZ}(-Sj^*&`&M;=&Q$ISCLI8JEbuO~hqE6dA*C8SjbPypIo#Df2Y*J?SZw
      zUnU$O;oJHTR+?a`Q|Q!H;iEEe7Pd;ZOr9SWa*Ib;$UVp6M(RgIUm&9g5-Uge=+9i>
      zIacH8L&S0^X;0Ws{&yfykOGC^&)Ci-gS1@;B|~xL5HmELKZHWl^b^E5AQ>DZ$VD7;
      zNr_J{?G&W1gDe?L{q)bX6KQTEPUALRuYq&W=x6pBX?};wyhG|Yv4Ivg(MBDgQ)%y_
      z2OVGG9=^eSd`ElV;|n3lr{l{WOTw)pRgMYkCb3Kr`?vT6x2O~w#8slm5{*qN$1SR1
      Po%S}#$7QaF?5h6)AQydK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TotalDigitsFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TotalDigitsFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..569d3583938a73af28fc0865924aab30cc491503
      GIT binary patch
      literal 845
      zcwUWC&rcIU6#ibj+tRX9S}a)kq1?8Mu<@i)Lt;uunly3%IdGe{Lpx;I)pnNPpW@9w
      zfQyO5#Dl@Bf0W_Pw5bUu4VQi2%zNLDdD%aIfBpjS5}SEs2rv3^8eUyQ;iZUFPiU3I
      zAs3-Pf0W^IqD8c?`bv)uL|5uO9Kz--h8-ig+)E{aT8z)smFzJ-CFI_!Sm`~&w%<B!
      z&k}kU$82uy8ub%`(@c7@h%6p?C}4qe`>lub3m`0daFH{p;vtVYLaD7{`98hq$l<Z*
      zL>#x$PP!sG5kqCplS@Yr)QGS%)9(JJ8ib;lMj-eP4NI6Ch|$12myq@Ayuh6Nl!}NW
      zRQ>k3xD;U|;(mD8IhS4CsPk6cL=WW9#Q(3&F^-aS*p&y$yrp_S=Z<0U&%j>%Q)Ey!
      zOJY<uE8?2vP60*!&hzPv&kom0usFZ{175ItgHo_|gYq}aUNSv9@rwDc;o%J{?cy=t
      z1Y;(uSOzRIPGphs%2>35C)TrurxVYRtC@0x?<ieQZN}6+EA5R3CenmetWC%tc-jcp
      wwtj=YU}@_X#4<+eD_rL~`%iGeZlK9o_Blh-3NMez)66xjW5ecoW_i!=0Ca1%v;Y7A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..637eb4f250001e951ee20a1177a2cee03074657d
      GIT binary patch
      literal 551
      zcwU82+e!jK82&~#UDwT1Wd|cV+^9i|(48ho<kezDB6t<!y4c9NE4oTPRzwH|JwOi?
      z{WA&O*$&Li|IK$|zrNo;0aS1pM}*;c;Loh*k!Q`hC;B`Tfp5{l!^POO+O)-?F=U2(
      z&MlAo1M9Xobe)hvZ?w9P?e5(T!>RqBNtHqK`N(A`*wX4*u_ZDcbH}yrTXZFoUUNL*
      zi?GfREtWc@x(@nOVUyu(T}H!S$QT1A(k3!67-BVLlmJ7{#0FvvX<PViYc}e+lQ!>p
      z)Fx*K4);2IBILXRkBVzLmO2KaNK4y26LIL&F?<qJ2IC=^O&qr=q(?&5xsW#62~nf;
      z$0OL6HRzU=I)&&+z@YaeO%~1aOMbxYE|Gdg_C=AlXgAd3C7l&)D-<NlU}q(65+X69
      lyhOfy{)XK@ZA!&gq2Y?+>PnygWmBb?3N=(EM(aT73O|J}a)$r_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c9ee2a353eadd9858fdc8665d5f725850ef2613
      GIT binary patch
      literal 7085
      zcwW6&Yj_mZ8GcW)aW=~&z)BD-(O?ylED*FBtATJ!BC8>QiGc*PPLfG7u-T2fvmt12
      zXuZ_lv=>^atqK*a_5unCn5y+sMX0S6MX9|#ZJ%DA{wlpby*+);?Ck7jb|G0ne`I&|
      zd~?3{eZTKJ-#I6T|M%2004~L^6yyoa?g_`M2Kz!)16s)F(o7=~uHu(wZtmBsTKKUv
      zZiKq@r~;3`qz&4DRu$61Jyk0^Ht3zEf^!5ejzoK^qIyUh<hV1p&VI1x3wY!&f%3*v
      zAvPO*{UKfA)(D)lzz7>=tw3PhlPX#Xv@Fu4`;d<!6@@4k$S<#GEd=SSP~cVI7dX#S
      z5;u)dRihE!sCO;bV!h3}>BD3c6`};^DVQoSYkaUOreQkyc59uw855Y;m~v02HFCrV
      z>rL^#4n5kUb%YoPe`BOm3$<!dL;ki0J!Y@L`4y*>o0b)NR<*9KRa#W*(@h!WmF118
      zBsH5+BivJyWh86LS{<-uk+7)`npQY{^@E*yzZ{JzxQH=1WxAc0y||bW3F+Y;v)6}N
      zC|59hR0SodsHi|CU(|1jYavQ6N#~y^vYLu^AG0?{#azszi+(K{(;F?v4Km;Y3$utm
      zbqv#{*G#~CT&Cbsfud1qQ}F>wEuR7Q;tGMnJ|o;{>k+t8#RqYfz_}Kk6-krLXmQSr
      zMti97qDCTWgDJ#?Dr&LFK}?!XA90iiA}$e7`Zbev6qb0)RMeqfV6ug`Dq*nEYI8<Q
      zpHHl71SaU=c%L4%-jjGi71!cAmVkv<pEBB*OLN9_`ylQL7WAfG!_=GmIU-?Ks#t~9
      z0#hv5HIB_jU6M1Z%LPH3xlEbLV7N0Bj~N3N><ubfu|{BOGMkRo2Hu!$C69OAj+OY)
      zV5HcVpvdK$qPR}Qdfb>s(XqZ46i0)R;)f(fBRq<trlJF#4#hO<yHC*#Mv8iZ;;2Nk
      z#r48Sqxc>s+6_jE8@cezh^d9@j2^>`NrrtY!iXdnUQ5b&+6&L^gSfW{6n96pPWfUA
      zI;O%zTwt07-7v~-qu1w*p2ZEDsVB@mQtrDM-UJHhCQhT$nTV@Ari?QKa&P;vijUx<
      zoNk1>^ud+g1S=0#1ikn;T{i^R*4N3mZdY*!KEbXYi+98<WVzi1D>4bmx9?JMH}2tf
      zm)IGDJ>f`HU#7)$*B+USNV^yJl6Fj|gsw6z+QZftHp}|rF|({gFSA&b8Qo?5Q9VY3
      z4>R#;c|Q8gN&K}+5}%Wl?_=$j2ea{1@cA)LkZBu?4`0Mq1z+NZl5!Me5PS5fiZA0U
      z0$!^MICc_FK_BkNcFFpy0&~lQ?WZh*CE+m3P>xyWn7kMlp$IY~-NvBa#piYf4+~U|
      ze^>V5A#7Lhjj<+;+E{(qDJSh_a>lzq`tVIWuHdmz=hP?zHJE%&#kcTnt6uy14S8~$
      zn{}0(WHt+I7rrawxJRI_{G_jqKfDT_;0Z04z1WAn*e5CM&whRzKeiXcvUFr!M+bBT
      z2YF%0VSo1F0JeMaJw`LC_lG#-#WQr+83~27{uqCKU!W>uK_&6#l-aZ9ltrRt$w>;H
      zXHIh3gnhhqyr|*_c!?dlGpcK*-kRu2O=q-0WE`h`cn*hT<X>@}<7|5lt4hI<v1N|l
      zC4D%ILkfO0);#y_>cgvY-cQD!=ML*@ION3}0vB3M-btWV)*p!(Cf~E0kb+}l)UbP7
      z^WjZw=M91HD)=d@B*$IJhvRa7aU$Dw_L~AT%PX?yH~9*;EMIdZ9%TtztAA3<X6H^g
      zPbQSzoxJ#0An(2M+RHotME(^*Zo3osbOY^q{4S{+hFTfekBNa1Ol}*-x%)9?FAaG(
      zpPzns_*uixg`B(yQ?MBC<H*#+WXwP*U_D6?c2!(}3u!Ckn1{b+O0YcXg?_{a|N8?&
      zxMUlqRqn&YeV9@?X9$6VsLI2d-J;2Vd8V~GX`S!CI@7u!Y4!UTXIhuqR{Yi9kZE0>
      zv>x*}W?Gw))&u_Q6V~aDb?y*alICsxwOP#VN%O7#o3fa1PMX*GyRw+Olja5f4VlbB
      zN$Umv{)Dw8%^FQuQyJ{WbbdB4d)F{G%P|{4EZ|kE9@n8Ajp)P*45A5Juo7E&7kUt@
      zu@BedX*A;~TJSTL$_ZXp{>|&kWULkE^Rh4>?cyq|6HQnz*6@yC;3lgoDic{wRt291
      zu!&V5p9cAqXFYAktt>vs`@FkSu!AKlE3P&$scZ<hEzGZ-k@p}j@qa8Z!*lZxwhZCU
      z?I;?-%r^fghw-UrJ+*=S8AJGN;|T6=3mm`~O2sg??Qzs!WR-p=tFwy{&{2#Ya_eOj
      z3{+qP@BX0_b6&8M^;~Q5<)(lu@c_O?Z-ux5UuSeAb6)+=Ci90J<~!WXqht^xwn^p#
      z<hF^-2g!UhncsFA%xk%Z&m!}k4)aIc%(sxi?Zm!=%<m+(yU6@*GQWq+?>!CXb*xx7
      z^Cf(ieTd|CNhXhy$ahji&XJ{u`_dX#kpos_gF*h+A;WR4?btVhy=?({ebVi9YnoS|
      z<JISQUBzYO_Ikn&^gynG_75c%dhrMjwB^fiKefj{k~ZeC$DU3bD@cr4?w*zI90gZ1
      zC18jZ2Dy*{F6P0u6b~~&JD8xIOwc1N@Lde~ZZ?NUv6cr?4UciDJf4=g0Y~+KlembJ
      zxIQOwtyq&0iG7Sj0lym(k*LkD_LMRdvlxof?4hXk1oBH0MfY5r>~{e+yBA74)cCTy
      z^qwG-Cz%Vrg&{V*VU+Wf7r;SWh7n7_<q330L4%XG2CF^g(ZeE3OFsQ9u(U|c>v7}R
      z)pFRS<%e!9&y&du<nSW3yhJT8Q_CT0d4*bzoRO9ew#Bom<yDuKAG@`@P9{gm;SFjz
      zMlEkq%iGj)oLb&FBQ3pb=Vw*RYc4IXyS4n9OnyTSzonMnQOobC<qy>IM{4=g8EFY~
      z6}hz>v9+wuwR6b!T<t0GJYZXoO6v&TY%8%^##<>_^DLl0lhg?=-@mXa{Efu_&Zh7W
      zHidt(Df|o7JO$L?KkUT+O_R9Vk+|Av1lKx^V7c80syX9rj!B6o;_te|<F>?iToOe-
      z6yZUkC_u4LP%6BbEecT~e3&m(REr|ih+@=>iDw{D@YwWo`=niE9gBeiSy8TSL`<<j
      P)Wi!mh`=wbw|@D5on<`&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeLibrary.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeLibrary.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37f6f8383c268eecc698d54f625c9c6226ec66c2
      GIT binary patch
      literal 7275
      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
      am!mmqizYW6O)lM`q8X5m=FXItyZ#F%L!Ora
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeLibraryFactory.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeLibraryFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90fc6357d779daae1665780faaab26ddfdd8b22f
      GIT binary patch
      literal 753
      zcwUuKT~8B16g{_;E^b%QVnOi>o}`j=T76Kd@kK*ovPxossBgE+q#d%|t;3YkpW?s3
      z7fCen2l%6mcef3Syx_y!GjnIooqNvA&tKnu0BB;(LxE85CPQ`HkJS;!W}lr&6D7cI
      zJkV-KLTEac?RbkLm)fz1BH`KrAF+x#>8kC{fsUMq5@92?U1fF5$C5uQ@oG9bUxrY6
      zZW7~O5N6hEdxYZ4bYJ_JK{<ejIl@9{68(1A?`XTjomdkpVH$C~$JS))X|m{g=8(_`
      z|4&AXP>rl+r~m1Xu(=-ok=J(CB;8gmyo|Qi92N<yJ?93SN{vRN`si^zBR*<0n(F<V
      zupRYupM6xZ>|yDgkCTf6+{7*MMt>S|EV8P9_cF1%Rr~1SHsQe~1^ZY*nGhu0*M|d+
      z^zOUYnU@zd68v^Lw2|I2nX$_kO{-@dtU=yP#;kmzf}p&X#4EB=f+RTm@D%=+d^?a>
      z%9Bl8l^9G8U>*yC;sCBs$=h<eAh=kmY<$Iy&nSP#%7;_jIiZuYQuA^%@I(kth4?Hl
      Uxiq0oOJ=jXxR-ZwKj*Ff21X*kqyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/UnionSimpleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/UnionSimpleType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..958b266ea3e610ec64d57f01a840133993b6ef52
      GIT binary patch
      literal 1702
      zcwV(sTTc^F5dIEby3j5cxk*8=pki;Zf_P&K$~83B5`#98x6`t~;&w~gEvZk&Kj6Fm
      z0DUG=37V+S{tkbKI_I=jZmB%z%kIqVT)z2cX21RT_!+=BmQ*w_L^qw1Ue4M2F1M|9
      z?pk?Arx$mh?U?#whtyRow_}@+NLQgSjMNMG<ICXBnYoNv5K57uJ-N+yxn6QDTTfa=
      z*I@9*Eyr?a7+!|t$FfZ8@SIuP;aO9Em?F_Q6t`-+Mk0B(`bJ&9S;xt{(q<gT6;3lK
      z^Z9kt2M_!jRA>y(>mf}1Z;0V^GZ<PmG{Vc!mb4r*Rg&EDj7>~;B=cErr+L8=dex}7
      zTNd#?TDQot0n<<v(H%p7oqlO@8>G2Kf#qoH4CgjV&N_KHF1MGeUM#`Tl;OqdVua4h
      z4}*`_SomAqA-*UsyJcpdriB~BbY*zD&7Dns)h$@grjg7SHuZvO^D^0LInuSf^LfWL
      z%av{LEta$9j<6P04ABLg8oN*xYR+PRE@>FRpdVLoRmBL+@aVE>2q8?|Sgu*%Zoa_K
      z6AB-qG*Pu1enc^<B1W@5`BlRhbTK&s%+U2agKT#tvu$QwLtq)#FoEj~s#W|K#H<NS
      zH#FSDEy}sYiz!*&6AG_2;SNKu<;XDwOJc`@B2ADCCAzC13~^U+hVD}k2+A9!r`YTh
      zpQ%{3f<bJ=8PU=XT13rh)QU@yYw26fmkL>P$r9Job?h?6L?njj3_bMoq%{|}NKymI
      zDw^ooOxg>QReE<uqTbj*KnXPN!xss7-=k$uI=9iYRi>DQhB<U#9_^$pSHdW52Oy<R
      zbWu_vb)$zOg>)XhGPV-|^g)qQKQ0gyAqhZUilK!g|BGZ(NDE3}ZzxW9#Us(!K87Rj
      z&~kvw45_yWj2<Au@D-jZC7?uOA8_pzls&ReGQ9rz{S$&uI&SY{>PxMIL5X&mswJrI
      zebSS($PW-EeF7`8qsdCWT1RnAV@7rq$6ef`OzjvZ7Ul@qApFEbpTxT$t1SKkjUdhn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedByteType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedByteType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d839b1e684c0ef60c06a23bd51de11877df8d06c
      GIT binary patch
      literal 2212
      zcwVJc-*XdH6#g#xv1z)rAsD1!Ac{glAt}X%A1%cYk`fJxG-+r6t=sKRx{z!#+wBiV
      zAAE4e86SMWCmo%Ukr`hRW~d{MzWYb1-`&KtLI;^KncaKtx%YhM-0wSg|M>Hl-vFG#
      zM+$ZcoM>39sf|`MwWc-ACCxG0R*Hk>-0c{tIcvpiSjN(&yN*$%LxJ}{A~H_9W$G2P
      z)oHpB0(-ONQl&bZDU=GOnT32No2ym?cHJxp3|!63FVr%{xtu__cw1Z3QccZjq$-YW
      zT8&A8-PyLa;%Jsr)0(SB0D}Ua@relme=%2@sa_Efgb7UPP17=+X|Bc-H34t7y<`l4
      zpelUu2k{E_DToM!p3R}+RqQ8R)36%OvKwEJfd^Em*ex(zG%cgF+FCU1s<zlPWSwnY
      zYt}T|l=Gg`Kjr3Ea9ChO=Gbrvvb2`5($RDyb*)4*fY$|L%Z}4IpGvK-uP4_}C);)-
      zH9j_WDm8z#Skae_mKMMf0d;j7^FbWKTPmVBDsU|RJWtPi614%uaa=)y5igQUN>nr#
      zZOy)`ViYF?hUQ9@!b~Z5d7*NpJX;lr7heRhrSxPF9wcR%DS>>q%pGZ%d|5zON@v+z
      z5lFr;=Giu7=R_KY<2H}2Q5vg}XL^S~-grWGUXWDlcWM$#;KELvN?~lHscq2LPgLtC
      zC$?j3IBt!>+=gy+q<2NZS%ITF#$N6j{mqiE^D5rPL;zC)2TjX8TkId{V~adaY)y84
      z5N9wgsl6z$FJ9P5aM|P;6_=1@JL=1topI!83yEwHIm{@?^D1t|Ww}Gs9m7^}1ti3`
      zWHwAj_~O|@LeAa10*c-}sO*E6q=dJK*U1fSbu^nG;szg+kIskn36egj+lJ;CwQicy
      z|B+x@XnFCrp*xcbuCtT3+}&GLLtS#nVj?@FOVkwH5;(lI(7pHhw%yX4zG^&I(<E<N
      zlfqZptF~_BP5BLoJllmyiG(qJO+5VGdaz%9i)ihKf&je(w09xMIX^YDee@1tm@6U9
      zzJwR@Hys-IHCXqA2FrDCNG;cWO1bV2`O9@BP_73;oQ3=$njs|=<U0@=C_l!YaPSHC
      zKE}vTZjOU|r`;TBR&WM`ILjR8*fHlZf=O~Rg(J9t1g4R~MT~Rb1hVvu<24sS{-XWb
      za;#Nw+<W{f4%Nf4@Ee<W^AV11;^bDsA@|rbkPQ|_!39#gVI<`gM?v`0J;)?Sx#oR@
      zJrDaBe%E((TdcPq%X`CJY1b!sD58it+5vjLJ3e}16X!-r!gTZ-3_Zn}x+grji3`7b
      z(q2#6_aoM#5#Q1yj6A@wT#fj;%RTS+@O#tV(TMK}-bwo-{?OQcOmH~&1CkN%*O&+g
      zyK4%a!JlzCqPW8Y9Ndn!-TurcBEIPTzrNU_s6;A&3XfT(CUfMsh6A`xrst{04V=VH
      zs&tD=e1JSY<o*TDH2!tm#u7e;fzM&$EAIamcU+ogy9D%TlGeL!w@K?g6q$Jt_ekk(
      z$`i$>#4MAv7(T)K^!Yf?;Tlo=%n)U5v+P#E`sR8<-C&#)R(*<EeRLD^53h@dE`ER=
      iee+-9cj&R%;f`BbtQ*&_Oy#M%m8reT1kWhBS@;_SW&T_M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedIntType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedIntType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12b0317169c8f92c45468cb795020183f52ed20b
      GIT binary patch
      literal 2216
      zcwVJc-*XdH6#g#xvFUb!5C~GR5Je%O(3C<`N=q?@q(nm^qzw(Ab-Ue37m`h8yZyoF
      zgAdL)<AV?Qq@y!3GUF@440XiOcmF8$yPKF)=yaGdncaKtx%YhM-0wSg|NQIM-vOM(
      z#|m}{4Atz_<VK^OT+{2;lI~hfJIO(J@3+k4oV{YzY;!4ZyR)1t@C%&YDIo1O8<tVF
      z8m+o1BLwzmO2zW*jdZ@4FU~CF(wXdRSzy=gyg=Wz^!!34U6{)XL<)EHH9c9^?OL+z
      zI+k6V6xf|<+AFSZyA{2@YKG7+pq?L{I6sjZADtKz2o|!%nc1rXf@q;Bqi)%jJ1yXg
      zCn^H|OmoTX1F<y(5L9sh2NgsG!Y`)M@EQ&gu5Q{jciD^2%fQ1LH0&1GTd-`ixY}4W
      zomqXcZpw0-hF-7ejwR<EXK>2Pui%)#fXuPs@nq`_bETylX7YNGW(aQx#FkyRbupP-
      zUtb?yKR4WTYRS=&k+aG9YlX70Y&P@|jtlg!_V`zE6mM%7#0i0u@t4_p*^{XBA&yfD
      z5{%eMG$~ZUT6A>hzJ?*3Ch>E{a(<?my|Pd!6=wwEg`MJia!;!8VOUm~6v(x!+?IsN
      zR|WKhbeF9afipYCywIxbo@mW<y#{i0>SEV&%<dA$A5X~cQ^~V&uOguYE^WuCRK+pt
      z`UZX7Je6*4V!P&s>y@ZxHw?2Sy(<bX2%Ok9_DaX-ZkBXi)NmeSAxyE~EZaL;>|fnu
      zmhHyYWb>;S$FwB&vcSQ3emk{ggQqpTiws-QSk|4iD-WAbWK?7^qaerI*o(_>hi<s0
      zqv0yZM_|dSS&Rt8Gx>y^dwB&EqkT@<1+T~mZxFAN7usm)4nf2%J{BK?59<@;yx(w4
      z-8C!iG{yg;z?RU`;$72lCl%Zj*w=HjEzFwfsHmVSX=FXoZ89b*3hoFT>n*geeXi*=
      zbhoP;k5;!xonEK(<>snmm^n*+0uH>;hQksFBm9>5_|5g<ko*$SIs^qFdi!Yag338R
      zG_(Ws?!jKJggN^Pe#qZ+xbHW$>I?Ums{XK6ss@x&H5d+-s!FI-4TU)i2g5YON?7GP
      z6z(fM#lDF84EvvA;Abz#5x!Gijua~xM?Wqw#{_%kA_g!?N~Ulemyp0TlDLdf?i)jf
      zo>9E+A;{lgx3(;66&&}UdXA&jNG$T^Cf<62lbblxOSs27_6%f;MUeM^w00OtIm=NH
      z{#*xgn4?_tKf%7oU5udTyS63P-;L$P;jWbD6Fd}A#2oDqJ>Q=iI=zXBA(AjX_$~H4
      z$9UBjncT#sKYS^_FBSL+YlG3i(i03k!d|%=4YZd#-X9S3r~E_Fz%#s)3PywBk%t)L
      zF!3XXqyBF&7E#-43Z3dNxDr*o;Sr8(McZnB9uU#M;KRSa>`_!C6+oHCoTVmn<hO#u
      zxJjnxsmCpx!ELH^he~{i96sXy1<rK-4cx^NK7olZVBu@-{|@&&nr^fS=+Gps_q=YC
      z*83<hb3Y!C(%qD25T6mVMABmT6d%wR;5>`#L<us(AZxq9ZWXL=t|Qbf#z|qd=crVN
      tHZlMBrg-e(huG1#|08~j9)}(7dX>f6aox%^o~m7$)~QVJjFOv$e*j9E{;B`~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedLongType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedLongType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4264205e69969d4982be44736b12237c42366074
      GIT binary patch
      literal 2235
      zcwVJc-EZ4e6#w1j!>Q|bUb>8SBU@mwCG8fsU6Zcs#|T-{1+s)Ssn=|S;<{Gq&2b{v
      z{g~i^2P7mOcz`DmNK8!Pb!^g#D1vwXDBxTtq@}CIBy8FD+;i{wopXNY-22C$zx)PZ
      z3?B+O!f>H(Zz$UhOWD*cb5(QArmfJRxer=~vS_cHb=z1iHtl+q6axJJVUcm04O6d}
      zjh1C_3x<Jgxm2kxWD2E1X?{7M$>ypRh9h?h3_Uk8OUr7exR_%I7w>7Cnqp~oU8%T^
      zY1gM2`m#-X-PLSY)vOI8gkFZ@W0xl;(vuStqm!2=N2gM$vGiDqAy~|n=Bw8k7~zIy
      zbj!3&caFgqPpAz3Y;)D<0eO)SKv2YSoDdLUkPkYQ@CpVA&NA$}yXM&!xZz0&68ad9
      z7ERkIZ8TO4r>d=31`oWcYnG}xCZBhd!5PoLfHMq3+{d=Zn5{L8^_Hd^%FPmqA-u*A
      zTXWsk6-C+F+DdL+N;aLkGCn#wrYzkkR`fNap@ndkLE6|?3K6IAri3WYF`SP-Pu%mG
      zgxZ5Rh6N<Z;zjl2H7lAcj^;d&FoFw2c&S`kF6HJk)q<K^E|jXd`P>3Sy!axRy#|;T
      z;X{%Kt1#r-!5&J+^veQz1$EcVb%x{%Z4P!XHB_W-xL!{=8WqT{=gGZGK>m1wH>5~}
      z>-SZT#V~sqv%EZxVQJf>>pD`q&I#K!wp}kqF}JN7Ev{V`aGBxUp|;mLLU%Lg>xzU4
      zq(YcsIAz*iZn1wFAZAfIu}yv;L`-6iQ+t)+M7(fV*?FsHB)p9*HKo3$IT@E{TS#O@
      z<S;KFPbYNGE=xN!-8CEu*Fl5?R?WIe7J+!Skl=IAFN2`B6XkvIl9bR{qC@4GHd>lP
      zAnZ1MCVe`66dxnfdv(XqTtjWUDgB=k>@zK|+%t4{TEH!a{yla3EUBn*4k?((A?^~Y
      zfV&K5_7>WwKi_m3n%k`!<z<<~n`TkrE6oi@H}WRG2_gr(Fv*cHN_UEnu3;Yr`He)<
      zAOwU++e7jZh%~1QhvWch`*D<3WSV^eKln2z_xvi>d~$EO=9i^%Eg+O@K{;5i388W=
      zB-2a|$|TByEYd$D_mrRFSXg|9fu|Vy$@6iF{%Oxgnj)A)FD{dhDe9Oj7{WAhGJ~_2
      zMFMkBa24aUFNG{=#__6$z@KP0wj9OEXdD>c#pzl&7JhvPZ#=>I9bDXV*zcu158hy5
      z6g(iQZAPSw(Z~q?QU@|gBVY4B!Li3(jG(8xvCr1uwWV`IyV9PHQBs7$7D*0~=DXpM
      z3p<z^Arj`I-=KdNlQmy>dIz(=`_g`2I`AVlqmjVs6AV4VQN9`pw3j>D?-BH;{UedU
      zGrW}!MuPI_L!@Y!`T@y^|7)beVtY*>rT8<hMFekngj4&`_RF6JSR@dA_}Axq6qSey
      zph9U@sV0lWuZoknMNBVIJ#OP7?ogHPQYGF;9v{&DWtwU9>bQqhd;|lZ!Ngaz|6APm
      zXj*6!(4mP-?|9wDrFT&z&%OAPDD9*2MDYn>mWi|&KE`{b3(!1=n}iZ14^fJ3fx4AZ
      ze2bkz-6lI;SZNn(ZDa>ak8iQZ9)5^A`p&<K-y)4e9qxLO#oBh=$Rx_D9huaLj8Tr9
      Ho8`X&!KMSF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedShortType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/UnsignedShortType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6bf3ddade011c6c76300a3250de7902bfd22060
      GIT binary patch
      literal 2226
      zcwVJc-*4Mg6#niK$EoYBUPeZ{En8r)CGA%C2T8ZJ>j+uW1+s)Ksn_fW#dS^U;yA@|
      ze@yTIViFP$JirqOBqk>DIyPxV6u~=x6mYH+(n70h5{c}4@45cIbIy0py?^}q%WnWi
      z@vevi4Cm|4s=Cpz)ivF=7In{RIw}picYnoHXPuT+cg)4gQq%RSWDyZ$IJX}p<24(W
      zQL!2;w#g9;N3!KorFt_{C>2UG^Z86RSFJD{xKm*0xt^Ju*D}S~97CkItgq>+tvhwK
      z;<=VnpJX_gZ8|MacRWqESIsbb8H98yHJ)M!6?3JT>NN&NMBypJwj9fwW(Xvb8bdJK
      zTr_(?v@!&QB)ov5BBBh+f4#_f5&cAGn@-(Z^6>=@JSIcNL59Af<(Q?_#)9cq^#$AH
      zkv0w8)^yk6>y9xr<@*<LieZ5J*zhHC^oH45(G63*QKD%WFEPZIJa6Tas;;lE53i38
      zH{H5AHZn4*&Rs87j3u+7hjE%xU)?Fbgp+txMhs^d&L(zCwcC=^dXT`Nh$JEQs~E3R
      z(OPhI_r8oFoMVt@OO?V*DR*_gP^vN{iu=L0OFbzefMFh_%8+jdxu*(~&r9f6(p$1x
      z4C=m^U5!e;6Rn$`-#)HRrE%(c^6wE-Fp=cFCy~^~`x+->xV)F7yfCh5>l<Y2deXYy
      ziQ6+bJU>V&w_%to+}aXxf#J-a*sGmM_hT;DB^j?F6~+|93Cr=5i~m#lc#G!~U*pX$
      zVFJ@!+$#)66NSAB&bvG#;|*k~AB`p5&3HWBLNY5MhZzxhI*r@7EPbIHp6SZC22w;=
      zwCWZighaNG<ZItAgJ`rf<(=@Hn$R(#^W;MtE4oW0>^40XJqA4#A0yR!4cF8?Q){~^
      z{hu1_fR-1QO~acMaf=S`4#xH|(oo|fQZ&&${3SIJcNtD?Z?sQ-zUek}uUj`t%(h54
      z-KNr4nyap1<}H2;9NpE3!<-5ubfE<3)(xPaUq>|Shlns)duV<D60PaBp}9cTL+GO&
      zg;rl62>zQ^dVZB^0j0NG3o3HCCWz%)NC}l|Vz^ujE3{HV3QZMJk?0*(ddg36I3hj6
      zk*65=$@g)b-f7=Qnj)A$FD{Uei_|lhFn~!CWeTTp8A(h-#TAUvcPV7aGKLdA1OLUk
      zvE?XMM&pseEu5@H;*pm(@yZjN-NgBAhll*MXTV!5f`U&Zw_zm8D2<Hh$2*k6H1fUR
      z6C8fr<p}w<>pQT)E|!iCeU<iYjFKW2c8}&^vV1o<bZ!$Dhe(9!*f%(|g^5}qGP#M%
      zzX#I6Kw9__Yq6-X_yhxw(8qV9LVLSo{T`uUIye*+p5gU$C>l~m9wJ4<#UC&n4StPO
      zL~8GeWR!l!)u`wXk8pe^+s^p|fklPb!@oY?mPkXC-W5u-N;R1!eKj1zEmC@p>Tw(A
      zafhmOmnv}&dAx%X=4qwV-@q~!@gYong7@$#jh~U_E5dyX+n4KRTZoQaeD<c_b$s>~
      ziWEUFz9eZ6Qki1-n7GR%UK}6cZL$fp&fx~JgormrG2W!EWfbRZr(m}U#|tcPL8}dI
      tV(#%R_SokSQ)l1#R}*|dmKJsTsvlXrjq64xQ+Dmh<W6Laa^)J${|zbk0|o#9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/WhiteSpaceFacet.class b/libjava/classpath/lib/gnu/xml/validation/datatype/WhiteSpaceFacet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8e452ff8e3178ee0dec2cfbc1d14e8fae4869c3
      GIT binary patch
      literal 953
      zcwUWCU2hUW6g^WGXc1cag~is7`niC0<EvB?LbirvV+klGeH&ofoo2gRVV2aN;+sF9
      zFD5o7J{W!VM;Y%71e=<WK1}XCGxwZ(=Fa^7^Zf^a=djb5W2hX3v2%73I3pg&K36gd
      z9SU51JQdD+Un<c)<vp=SOQm5kY|kQ?GKTqP%Wb=@j?2Ir47qv~4iyhohX=7pP<Jq-
      zTW-^<)m;r4QR@4iS8KKnCSS>suBCV=&qSYe4j59qGL-5S!;alJ@Mig_g<+)3UbWO=
      zu<B7?WRSpG7I~~QJhdCw=P!`kn_1+L(pfQ!MJzEac`_7l;*+izyye}1tgd)bj|Uw-
      zkQz@mE#=E0IiA_>%ABhV89sHuU|-iOjnU^rU*DD?VV7w3De)oZ0XbN=y<<M&PQb$>
      zXTN(ada7EYp(Z2ci-C6k-!a)}NAZAMNqv>ID>k2L0(~TEMQ@fwkyc8-tbRev6JEH4
      zGlXwk!dWcqky5^_2TCzPXL&;8h0q~ki{eT-pW69`)$-;A3gxW}Y<w~NTl&mYydcFY
      z>FpBtB{pfNJZ54GxAkYEEN43FO!t~I*&W<9J?~+A($k@+tCHofD4b8*jHxvvogEiU
      zq#5qx!G!#ds<m*j@(b(}Rx3ZjNJdM2M$$S@{1aR>6Wb%-udzW<3m3-Zspldd;*s(5
      I*zlhG1*c}ikpKVy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/AnyNameNameClass.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/AnyNameNameClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64cd6ac1b9c64bcf52b031c5ca3d1356913705e5
      GIT binary patch
      literal 642
      zcwUWBO-lkn7=A`KH+9o8?OX5=<wv%3sEZMV&`G=)9=eU|pcA`mtgF~h=@)qE5=23V
      zu0cO4dS?|01!-a4dH0$3`Iz1BpN~%fXV}*fVkmXofjM$)bI5Jk=DzH?rYCGZay#a=
      z`&j3WP^)V5eqV>iaJYmpn`B6ektH7dKgdz-Kg<e4<WjoQzhVgI3rz;C+G~p#!iXEt
      zu}ac4>5BTmX$kL^w`{?Xs`V^xH@PR(`xMmtt|Z&?GTZqZl6&0YzSR|dg)toGYxjJ}
      zO`Fqn!}p}ysVpLeyC@ho4Xhxdl4cC7V}mX*@T5w&Kwya4D)Pi6*60m9OWa5mJ2Ri@
      zRI!mGgE0L!MvGjihG^0EAS6niNqcZsd`IjhI5wz80<erVs>YO@KoaVqh*Ppf(n>sA
      zd`0RDx;92ywWX6cq@SRN$I!IrnP?&yK1UoEIG|mL=OzL(@hrBm9T;Y@LtTja-9TaQ
      E7xev-LI3~&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/AttributePattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/AttributePattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e83bd124a7ce7890d2294a3f87f8793e0acc48b
      GIT binary patch
      literal 463
      zcwT*w&q~8U5XQf4)5OMTYt_4mh<~WTb48GXr%(i?_es0dmCZ)Bo6^_vBzW)vd?;}e
      z(@PIon3>(-`|UT(&+peafLj~|XbD^|OcAd$9j{2MIXRV^*h)=nvxpy@vnnl|d?M$h
      zH32+<(*~f{33Lr*a;#~&6gW>Bh{;Ab5(wTm_*oNDn=s(tDWlxIK>OlyD&URtxeU?9
      zUW6_}fnK7FoD^9q?F*$^3Jj8bMtVwCmG8RgxmU$=4x3E3SHbS#b6(h)d{pHh$J>IN
      zH(C)+z{ByjTO1wuC{KVL&Vqx7<hskZm}}YTTzw+?sDORWe$^bJ$2s~JppSzJA5^Nt
      EKa8Gv)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/ChoiceNameClass.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/ChoiceNameClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81ec7af80dbed93c3a80290c2dac67ce7aeaebdd
      GIT binary patch
      literal 654
      zcwUWB%TB^T6g|VE2viWn7ouTd6cBB2p$m)~5?6!`hK0MKOkhkONofh+;y17{F`BsW
      z1N<oCokCbZLTu8xw`a~h=S=74_v;%#1E&c@7-~Z&Fs8O;Ot>Wn+?TFnc*5dSXK1uW
      zt~5o5+oEOh@i>7P!`TM@lF1NvsBbWwxBtU$E(UHGw0r4D|A8S|srDFREq5SNh(gz~
      zg(O3^EgjJb?7r}xc;6BX`L=6vtH(X5z87H3A4!T)-(<gXJPMJvxo?idSYZqomG%pt
      zaKqw6?)si|hRt=P`kVwqK}Q^#3c9Z&hrGfLbtItCNdix*m}{d9NlRs)+oig0;F;o4
      zs{DnOaMx-WWm1jO<wfWvJE$iSR)x_2q5Twf234jwwNIqq!tHHZwGg~QhE{z}Ko&cp
      z3}s#n_sK$;lxpwTy{vy=?-e=f4;FnqI*ZMgnwgM$OL})WrmD2d^ZBKA2}dY~ekI}*
      LX_8T=6i)sCjx>*d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/ChoicePattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/ChoicePattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91b170ff262f54e32ebd7caa1658721c112bc1c5
      GIT binary patch
      literal 413
      zcwU82!Ab)$5Pj2bck8;^T7N*qLoH~iSH(-g(;|Y>d%6v6B+W|9mj0F}p$9*}j}m9o
      zg7i`YGjB5UUh<OfpY<1jAx;xC2>qF@#A;#0QW`y#UYAxlW#r1v#AsgXLOn_Em9q&V
      z!ucNdmPcs6ZK@&RBL81-`=_`e#CO_ie@|%kFUN#vR8CcjCbA4|91uFWw(7B3Oq6?(
      z6Qc;dyey;{OQ-Aowi)@kekTm}-M{lZc9A}pl`GVP4yW!+uV3X-;tXty|E|H&LX3JP
      n0f~d{F{WGz#=6rQeB$sU2#z?%p?QU4&e?{54!S{p5?H-opWtS+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/DataPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/DataPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1fda20dc74834481f43386d8d745ed2949eee1c7
      GIT binary patch
      literal 605
      zcwU83O-sW-5PjRm#>Vv1`mHD;Qau>#Nl-kfcnTsY1&`ZyX;;&vY&WI-SstXI;1BRe
      ziL<emo@!urc4yvu`)2d?{r(By6gxIj42SJ7_J-ZS8}LB3xRz1qDG~5t*!FI?=J#A{
      zp+XxL!~PuX1jk_MQBN@J`jKi+y9DN@o=BR_IYZ&E=*x!UYD8Y<b0#>VW_n!lZl9s(
      zKl1_iVl4yDmwipWoESDmPfz_E`2V{$k{2?R`jR1CJ*v|b*HKG2NTcK;hrEqthRW<+
      z;frXQ8y%EU%7S6lMHUW?MLlsBcN;=I@<u>UQTC%I59(Y=bDk6}-H|jvb)LJK_a}$W
      zLlmo~xRr)poavnyU)UoLY5K7i#R4)gpN+*Nld&W(!KIZ^&`gvIw7VjfsT7aL6dx!*
      ljZt~S$}81USfe$c=+;R2j2Jbn)5-niU;~?p;#Pv*{sA}cn<)SQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/Define.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/Define.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41fee5eff5a0c97399fd60e36a44a44232e6e59a
      GIT binary patch
      literal 397
      zcwT)_%TB{E5FEE@0%@S7@Btt$JOmbJ5EmY&2#|_;chV)eavaGxRey^U5(hqjk3wt`
      zByP2|yY}piX4l_8pI-njuos~xa8TG<u1X`9%ILZBy0X%dQ7c=>TYAx!A_M~Cg<2|U
      z6r+#Xf^shqSXGk1B>itqz0<b16o|-BNtRis=^BH(j`gIxCudm~UTLfSwLt&qc*Yht
      z)tqAVv6WyGvA`(hfgb8IBloN_)7n?LGBf3L^Zo+^|Ek{v4%c~i%duxXt!kIky>67l
      z4nA*o!ajHq{;M9x03n(aVS}^a;DNXf`6jtG$l&Ay$$Kl<<{Y-*8AhCwj({<CTKS}9
      G?fwEDu3lCE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/ElementPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/ElementPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d351d4c0d601e41afa76d7eaa8ff040a9a68296b
      GIT binary patch
      literal 457
      zcwT)_!AiqG5PjRGiH*@}>j#L4SVb4likG6NPz0s-X}i>w%|^DH(%<qVc<=-KC~*?g
      zLoZpFncX+<?HlIj_v;(L4UQtT1cnP+$aQAqij1C<*SVEW8Cu(gd@w3g)<2Q=%Gn5k
      zz)1tW<_UByWol$-xfD1{8x-RW?^Yms-^fp!B((_(!aHrXzZYnq4<`b_D4(ksZR{oJ
      zA{OYS+NyDpO_h70sZj#`G@p@~kkjS61_S@9dCtow)9ppDcl?|eZl)e}`NLqlef>r&
      z!ZCO--gAqigAnD3u)|q!@PJ%*`6juRNax}c$wwvF=Nwkx6?&YLe*zA0SjqbpYw!nD
      CEq4+C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/EmptyPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/EmptyPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53ced659dcffeff0f8c9b0bad8f044cf5f2de383
      GIT binary patch
      literal 439
      zcwUWA(MrQG6g_v{+ODn6O$8st7oDJG&kjMx1fdjRW8h=fg&9dxsqL7bB|Z!k`~W{n
      zOf$hfi8tgX_uO;N4f*_f`vB0xzJnU!c&^HDnaXg%q?oZnWGc+LWJ@&<hv{SSe9MZ0
      z=gL8yaP$ZHhevR4;?ejj9t;WH=%4NvTGmgbP@=dbSSQ^Hp+3lF+ylW65WpqaebaAh
      zXgfdyHlY;>#p5!a@_fvuk`p>nmM}SCxu|Lbda&SYzv5mz5xh}W<_W(R6}!Fpi1P=w
      zU^vwFmi{2ZK{Z3)YH;D`O=#*W)O8j9JLql&?-g4whSbv8GtHhp&#+_ADuN9$=>;@S
      WS7`srYy++(!J2@MnN8R=ti5jpW?PE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..879ead3a456e7df2a5cd6130c0b7ea1446120fe2
      GIT binary patch
      literal 32653
      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
      Y7RWv7#3%{I$i0*h2|&4zA<O#z2Xv<<jsO4v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/Grammar.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/Grammar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26630a9710f41100a459aa7c57bc62e77f698f26
      GIT binary patch
      literal 805
      zcwUWCT}$IY6g|_{#>Uvz@6X*;5o}cq;)|g8py2L95J4&UIBjNiG?~D3s{L8+!y+j7
      z1N>3qof<+Bu?8|Xcg{VBGbi)%`uGfB8!HZS3@ewa<9Fl8zvYn(xsi$TwTO6EUHZQ@
      zk7KSK6c`q+`7Q5$oIGn?iI_7CwGG#XVKw+d?vxuNwAy2ELh)BB(PpRyR@d(s8To;1
      z8v={_Qb}{bkgwGn427d46fW`@^-zNApu#ZOPf|A`v{V;mjF!MK?!mz@LxnJL(utcw
      zpYvuU2nmuFj~ZM{+oziab0ymYtfxtkJ5Pzb#`{2`DZW}g_%xYpX3xPq!^U9ojNxJq
      zi}tWT7}jdvv1N0b=r{I<t1uGeuRhRUI!Z@#&ytRAiDPL~@lx$A%f=GLnx|Wnqjv~J
      z*oQKv)$Y=7A$)|s4yk8UtLqQ&)}K(mctG_(#{TuV6SS6lj2#rPiwf0A>b!RjrZ7#F
      yVFt6Q-cG7ldcxcVX)fGnLd71i-zQMY1b*UIDzHh_VmbDadDzFyWz3~sxBLcVt-N3W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/GrammarException.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/GrammarException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ee2e47e2d5d60f0ce8507524162410e8a7cbc08
      GIT binary patch
      literal 394
      zcwUuGu};G<6ucKg0-;bSDl;QcLBvp&qAmy!QUpU$_t(@4MvjBrq{?qGAu;d)d=%m(
      zAO@JQ<>&KzcjtTmczpwKie3nhFvx5b*SU$8Z1kK<UD((u!?n%gYsY!c?y^qRQ!@zR
      z6LueY$+0fto4cO@Avo7omt#WzAZZDP#b8o8ZL`tgl;B?!a}{9)>m95jAaoOL)oqo}
      zl)LAdQG{Mnq->__bo2gh`sIUO5RQ|7<Qx&gTrC!ywXT2i5TZ#@xl~>0=8OJs{Yj(1
      zK1kv=i{waVxkEu?c(Q@uXz+ryXF(n!sZrY<3iAvbg7&^x=wP#T39yB(co4Q*&CVx%
      CKVZH9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/GrammarValidator.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/GrammarValidator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7ba34f578dd8a7d0725cffb8848b4118d1334b8
      GIT binary patch
      literal 1483
      zcwUWE+iuf96r9b)Zi8t8rO=jM0=+p2t*Lknv><4q$SP7(Meu~&!~`S9Mr$YJvp@nN
      z@xTZ0QHZl^%LyhaiIsSF&&-_h>^i@G|M&@DANwjY47HBeGX`DP=v%JSwnE4E3~syD
      z!0Q;#xz+7jyctz|t|G^<_QC2~gES?<FsPk~#;|GrU%bws*_`|Qh2^zfn^?=H&pVP8
      zP@kib8evP^4*VW(*=KZj`vSiq@t+>FjJDr3+`up!XDJX7m4}Y!ga-^e`ZTU8O@`c4
      zzik(gMNz{Qlo+ylr8x_R>l*S<7>cIj*{8kkh0V{c3)iNK>9;JmX>mu)<HcO~-U%3X
      zr|6r+NREpgJ3RU;nH9Y<IU8YYS%Zohq6TT|sy>-1o^_s@rBh?riW^=YuIOCWFpC1|
      z1mkqJ^(kb8jXZ6y9Wu<s5m9<|-5j2{kXv5x&gWgDA<6ZzHInSPp%g3}4O;d`5p|$K
      zXILCfq4DH(QdUtV_d?BZeB<O*QlO&~8KwL$b3!;S`%c2euE<lwICjM0SV-^up5UTP
      znP%xV&7vgE8pMaTR^BOSIRl+ajc`|Kbc_sLK%x2_bJf~6T>C<^4Cd)~PAWY@4u`~j
      zj2kq&8KJR2Bgm2H!sxn%#aPpjb0A;+ilxtqoFW&WNf|8y#4-%Gu@aLHVnd2BvothQ
      zkgF%ec{yT4NsK7+F-7B5tc@|Uo;Gqi*2o>)9cN@cZKOe*^9e>o&Z6-K?LnkfliKth
      z%0wpKjF@1FiA`(~YFnZ**g-{#90GDf{t<aAMaoez@j-vlxEBlWVviV%0ujvne*hGZ
      BL~Q^7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/GroupPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/GroupPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4593becd0670c11fb7ea8d83ff03f275a59ef954
      GIT binary patch
      literal 410
      zcwU82!Ab)$6r9&?ck8-ZTYo@A&<YybtI~_0mqi4n_p}W)k|rf)OMj~;!Gj;*M~QE@
      z1$(N2_vU3XLnitD`TPRV!*PNd;e2Wfv78yPkVa2r(9R04j9l8Oc<`>6Kgkf3w+SM`
      z=??KmM`+I1Q;%?#|8KbYbMy)Et+qN02=$BZkPzLuiAqsNmZ6C~LMzu+Jr=W(@-K2^
      z6rq#5u{1;Jb-CY=QFztwgzm2Uw_nF0(q~urvAWl#zrB5U{U#R@C*V;0aW$?6Vw5YX
      nkhnM;W6G0YESbjT2liK$;edNwkykk6o~;FF;i$5=D^=$gL~dpG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/InterleavePattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/InterleavePattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee085010dc9364fb20810601625cdf0b6eb8d744
      GIT binary patch
      literal 425
      zcwU82!Ab)$6r9&?ck8;^TEVl32Ni9oSBn=x5Ec=X-qSYJNSc+HUHV&|1P^|IA0@s`
      z3mytJ@ZL;@ndBwkKc8O!2G~!~Ae_%^DHd}hDrxjodR<uIl#vTN6L;1tXOyhegY-;o
      zf{1XmA+hoi+OJDCAROoa2d@4SmxOqzt@hW1=E>=Z5Zx40m7<9(LmOL!POh!GFXv<B
      zp5)jlLN6~S(u}0j^?oHr{#m~f`kU@wdm>MgJ{F~$s9Rkha<Jy;zsO4B5Ii3LV}q-O
      q81+g55*Lrjm@*TLwbDBK!1j9x>~N2Rc!6E++0uXxx*@(7T)kf;>1+%D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/ListPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/ListPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..563ea50583edbc8113b37198d1f99d1851337dfb
      GIT binary patch
      literal 387
      zcwU82O-sW-5Pj3eq{e7#e?ciCRnWz=#f#8W5JBmE+b(rvyOHgt^ly0*JoE?nqr_=Q
      zp{IJ7nKv`<F&{s_-x~mT=q6|oF6XXP>xES-ZF!~x7fyL&_1eu<&dczuLonVYhzR`y
      z+?q#7K6dCL|DS(Ph==SrJP?|Lt1%&ZEM_J}6DJuGv<U5-op~x36XRd?#2P|3FQ(d#
      zwdZYK7o+gTOTysL(7l6XaQae|eriU%m3Q`fx9@tT(SxicpCYj%#5IzYBpwS=606?z
      b7t&7w4P@fus(6D_@mVcCL%Wi9D%SZQyJ%q=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/NSNameNameClass.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/NSNameNameClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44526e8f873e42d06701522e468f467a242631c4
      GIT binary patch
      literal 748
      zcwUWC%SyvQ6g|_##<tP=XzTkeYU3lg@qyw-a8>G};=<iD4s~RjYMMxYMSsAJ8$l|#
      za4Yyx;+?jN4-f-$=gz%n&bepE>)X>afOX7Uh%q=7KXMyY<z8_mPkAV7z8eU|8-B$t
      zmWsS8^x9XvUbkQ}%>RY|Kr+O93Im06e#KqIsaFaE=~s3b(xTysi|`9}q3|D0x*Fe=
      zz6|#mjHUcBgSlTj6-gNAv5`QMs0-2;#i&{q!4WSjp(m($Tpja3>T{=PhG&vwSN@d!
      zZk@zaRUUe0qONNUi%Y+~{jTIs5@5*M=t4Y+A&giUX6XBgvoVS>vL`Mhu4uCCSMtO1
      zx$wdc)r1WT-P-e%jR6eOQ$&GeNGR>IJzBC<ivmv^NbNQA!^oN@#xzkG^b^Er(P+>g
      z@pdZomefyC=F-kI#(9K&-)i?#jJJxbNK>@i0Q8~1MMFb%E;mR*i#W~$GRsZmZqQ}i
      z(P8`rmU)YePM24jn7oE%+`=^PJ{5Ar2y76~CVH@iVQeE$yH=cTvwkW%RB2D-V1}|7
      J<+ClOxp&9nrw0H4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/NameClass.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/NameClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f68a9f83becebf9e0cdf24b5516232226059df6
      GIT binary patch
      literal 370
      zcwUWAu};G<5PjE%1k%z%zkmTjiv$*PE0#)3Q5lLluw7Csb>%ox;#B=DCL{(vfR94h
      z0l~n6CEwk9_jLE{_m9^%0Jj)L=n&3x(};bc#g4UFvsI-LmDId9xma)^=bGy}LO?j#
      z@{WaO*LX;`GP8tmri`+8gzk8<A_VhtEn{?X)W-or!Z1-rE}9~h)gz}`5=Kdxv0ibd
      zJpLvFyHPdaBKeP(DWO-e%{H?39N}`D{5o6ON|}86mzg{f;$_)XnY>qi>ELJLjTZ-J
      xaL<509e165ha*=Bm&r3%FF1T|+p&vbOJ1YrV*g9v@-Ywq0}LH@Kh~;GKLG&jSSJ7g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/NameNameClass.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/NameNameClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8508269730eda3ea32c21109fd9fc29b31f5c434
      GIT binary patch
      literal 652
      zcwUWB$xZ@65Pi)y0;3=b?uv<tfXl>-nrOV3cp`YfcracX=s=TZh{FuwTl@wtCPotv
      zet;iktZoQVIp`!^UCXOiuckjf-`)WnVcSB8q0n>#XV6hjpDWqmzU;b=ClnvJO{c;;
      zLZ3^;dp!#ghMhmq2FVa|$z;lH-sg_uRIB=)bem@k5tmR5v2*E4|AHZ0DBe=`vfB^|
      zgkjs5L7X8~maeD-otp4&cufh-)~$1O%RQ;%aWdk!Buy%n|GNY!NOrhiZ;4*T2-z)6
      ztDMdh@8V!sv=K!tfgF}CEHR{i<7}*8m6j6^0av6e`<?u{))sYtOto&qLX6fAJjoDO
      zdbg3FM70}ub#W!l(m%u>YBJ=hJxmW6qC;|^Kg--YLw}Fz3Gy7enZ}e}k$f`cS+X&c
      zJir`TdjvoVX+txQ%((fU(0WL&^o)hQ7i1q14G$?;+oxbSVVg6kV<d4x@u^|Wk2)u;
      SIc$ul=CDa#i2N<XkpBW>VT@V;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/NotAllowedPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/NotAllowedPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de7c1fdde9407914c26f1a083e53e278068bb660
      GIT binary patch
      literal 454
      zcwUuI-AcnS7(L&*wOw1C&L6xKuT*qp*A8I}1)&sSW8h`hh8f9P=+e2@5-$b{K7bD;
      zrkS812!0_y=X~enguH*eyaDK9&q0lFHqFX#Ig{anNs%%o@+>U4WXo(C#<}WCnLqOM
      zmMO)H%t4)S^oQe1M{sZA;iw-Et_YpzKM@z&+e@U#gt{bH$0uV#eUPWz1Hlgvz$Mr{
      z({E~OGe842p%saY$K`CoixHbhPH0DY!sM70qQZvsV8Pe-se3Uec*DFb5`HZz_5QDy
      zbRO7(;ZSE-`o9PVRggZ_;KI?9(9|f@xGMh@bhm={jEyHFYU$N8&92_hv1Qn*f*)qm
      Z18AJCu>Ebb4Y{@iYXRCOo3LY4yPtA7VORhF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/OneOrMorePattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/OneOrMorePattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a551b439860a2e5a162a0cf4b8fcb3bc04ef23f4
      GIT binary patch
      literal 402
      zcwU82Jx>EM41I2oJ2(ysmDmwt;6o*1E@DAqIw%sTyW2)3C{0kvRsCB`NDTY{eiXtz
      z9ZQEY*nYO(vz>hZe0~AAL^nf=a6WaFTFk7Pvo#Zr#yb_X<%OH7fzyL<=YxLW7<F(N
      z62j3MLBk_tuYc&c{GZ<^q*un7cui=ZoDK=eji2ZoZEP3Fuu15Y#_9WNHqzmVM^+QM
      zr602$axlxhDJJpRyb*fqmae`^w&#z&3S)h1mNO1k2^TLsXB<L~laC{@4Wtc{<0Nhg
      gQWERl*$47>0WB2b)4JHhj`*Sx@1j%7_iEPuFTR3iw*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/Param.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/Param.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..339ab0963ad32dabd21585178bc437ee257b4a7e
      GIT binary patch
      literal 346
      zcwU81O-lnY5PfO)L)X>T`Ui?96*PEOya=8a6)L^YZo`_A%|gtU{w+^}2Y-M+N}NQ&
      zqk)+>c{6YF^7-}t0pJoxIYt8W)(&#p8Mz^&SLAhXrBjBswv~_MsLPQEOxLs_X^6>(
      zdaW8SkXY)Jz^wXfExgmVy%I=y*}%>0T3hXJ1jZ+)OP1XBD^*~OvcwK{1tyiY>VD{I
      z<({ZEab4e#S(4M?{!1qQS-%JzSO0nCr;9~DxJKRSAS@z#5gcL;w!t4Caiqu)P99Nk
      lupP#NE6Es`^z03LuTikiIg8{u4mg)T1DIeM<%e-<_6<@iOPBxv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/Pattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/Pattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c4fa5331b8e61d5171da96578b6af03f726bb9a
      GIT binary patch
      literal 300
      zcwU8$!AiqG5QhJ0W1=y(rB5K@K?PkrE4>Jwf)<qCC&?1GY&WoON?*&9&_f@<hY}|t
      zcL!$vnUDG5|M}e?0Ni7iU_`j6U8{B*tF~-S#lbXAd2M;;YPIALw08+2!fef3R+a_7
      z7HeGwLi}i)2@Asb>Uu?po|;Oh7~>?v5n{qLH%`B_n?n0{F03ZZ^QL6GVsE;8fKm7`
      zpM=Z&|0EBD^sQ-qsh>?}%?5tgg^SK1QP34hO9atGHYM7Vn{OO{$udGJGw$InPGx3;
      MCBs>7pY&hTKVkVpsQ>@~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9baf00beac748dcd0d315e4f631b08bea197bccd
      GIT binary patch
      literal 4226
      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
      F{{ZOeXbb=V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/RefPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/RefPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc1088a01fafdd390d323518d96c7b401ee0a269
      GIT binary patch
      literal 363
      zcwUWAO-lnY6r8l{Ze3Tm_7{|b_yHO`Tf7LKmLj(F{@TVhlFdTQmi{eIf(L(qKT3QX
      z7QBgvyf=9>^D^Y?`{NV9HAV?~0w<+y<gPMuOGa<V>)J}E4DD<wAJx+Xd9R#J5D85F
      zkajwO$Wo;QM#T$lNg85q?wz*fjX*rrR{L9l{@MAGrFZp4rRd`zLxO=oUTCXkO|?>P
      zK`Rs1)N3+Ja=N{D!^l7DSAo;wU(xy9bY3@Zt?qT}&VQ+^HY3L1K>Q<u&mQ6qaUkyd
      gj3oEKUA!ZGW6(p!H4ei|9CFP%^AYl39|qO&5BXhI@Bjb+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/TextPattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/TextPattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cf2b89a3b88c0a064ef5ad6f528975d105d787c
      GIT binary patch
      literal 436
      zcwUWA(MrQG6g_v{+ODl`P6Z#u2bqGFJv#&$3PLHu%D~603p0|XP}|Yp8a@mZ`~W{n
      zOf$hfi8tgX_uO;N4f*_f`v5S&p@RnDbgs&<TF7w8q?oZnWGc+LWR;qS39pI=Runu}
      z4w{6MKe#_Uf_op2lbd*SOXx@cGr!WRVJd|Z#Wlg|pG^qOQ8wcq2!4P7F2Np}ep^Gk
      z0a~yLok%Dimy0RS6E>Bc(2KH^$qCCvT^rDY1z-CWPvV8(jk7XO`JJfQ-K{rVKC>mm
      zv39rg?+}ja5&G7E3rBB4TUVj3>+s(}k860Z*jX7;M`zD82l~7~*PwL-TVm1+Xq~UI
      V_bamvxRC@K0(xdPVc)P0z5x;BT1o%_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/ValuePattern.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/ValuePattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f27bc0dddcecdce3c7025dad46d0f4765ec60705
      GIT binary patch
      literal 499
      zcwUW>&q@O^5XQf>+g59}w*EUR9@Kg;dRDwBo)!@*y-(Y)M$)Xr?9x7#C&7ac;6sU%
      zP(?4rK=LIsznOd_AD?gU0M4+}Kt<p%vxS^aj4a9MF?pR^>6D?V&E$Ygq3+0g<!l3q
      z!2SYw&Iz<RL4Nk6QayC!W&#Ik?y?{7J1wvOa_0g`I1218<{7NmXMt||NF_-_4E4R!
      zHsegK45kI@7usrnDNsG?4Y>1FK2}XsvED)ptL!q>R^1kpp>p>$G%B>qM`Q-%bU4q0
      ziGR?1RWJSLGqHnaKQG)!-RMx?`JFroez6BO#Xpentf7uD8d!?DjAqo8sDdY(WnJT)
      gWDSwp@hjRdys4nWYdr=}(T#8fuz}53z7?tMFXa+`XaE2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/AnyAttribute.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/AnyAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b05d7e2c2b0a5be6a057665a26ef4a675463788
      GIT binary patch
      literal 642
      zcwTK$%T5A85UdddK@{-)ew}zEuAU_*Au%BmHA09Uhjju&mRYhpYxJ``7!wbEfFEV-
      z88wo~rKf7Px2n45<MZtuz%dSzm|`gQROCDkJ?DXY@}6tyD?>xKFNWNysi&IOf$T<F
      zBoSxG4fq3hJg$1qRd*m<&5&rdZyNPB18XqM)qNFeu5^cck%*BI7-G%Zt$~ao-nwX9
      z8%)+I#fKssaaS-bH2;KKWT<*44B1iOyCMupQwya-hBQ~o*ES_Xp*bNt9b7++1V#Vt
      zB&9?}DygdsD~10?jbev_)%|;sMhq(%EMS#F7mA$}g<sEL4)X?WW{^dKVl|}_m(j2*
      zf;R7ZHofn1ufqdr_|Iir_a#LxPf9s?!xS{#@}s~N=h7(T$3GsL+&D7pr1d4RhH0t{
      zNwZAM5KoQqH1XLno<YuxK{#iIFz-SrZ=VM=@FJZ{gzl)<=x0l>ST2=cuvXf7!N#){
      o*|M#1suikLGCU>8Gi=k%-uG|V!LAk0T03TuF`Od2XI1vU0A$dI+5i9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/AttributeDeclaration.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/AttributeDeclaration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55d207a08925818c5f868e591d84382152b60cbe
      GIT binary patch
      literal 1008
      zcwUWDTW=CU6#k~{Lcy)YdPS<O)hevEYvZHFgtQPz2u%Z`!RxS{&~27k0t>0H{u*C>
      z*qHd>5Aa7B&zX8@BB_1Z^PM@j@0&UM{m0jD0JiWjgE@h%zMgnTgV3AGFxZ!I5NUSD
      z{(%}uuM)?jpf`!tj`Bk}GT{s?f&8JIN-vbU@9p*ul^+XO&D~~IK-2{mwj(``rH(r?
      zoTwCygFt4dTB|&7wAmE`cCG%hy2B2!u*ZHhR8-uhKJf>J_LOS{mKuLYwTO-GKc*Zl
      z2NWxs*pcDSC*z^?mABU<NJ;Y~M;<pTHD<{C9rjwmU>K@4L8{70t)tjv{I9O^CzI;Z
      zPXZmpPX#`fy7hlKpThL4+|J6S+@TBFj`md!DJ(m<h8qH@Qn{0*S6Fedfb)!QIaoxR
      z(QOBLTwt{BU<nr)-E(jWml>5ET)|a=#YUi2b28|uQCs#x^E8n!!;TyU?EgBn;)7r;
      z@Msp>(-(^`zZFeJzN!V>sW2;PlkX9$#EVxaOX6&#dAoR#Fi(E=gr6h-+zFqBl6=B>
      z7H=#`H<pAOOR|k6(PnQ!Jql#66Z%9wxYJ$t3yN+r!A*BL!K%BFV9hO93GTQBJE3qP
      zouKsD%yj9yM$CX0u+SxbuZY2Gn)ZhJzQqdOVIA*rpE8~ucgF*4@J~aC*$RW0@0>x*
      VIAsuXwhUs{wn5CB6>pm9-cRbw;}`${
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/AttributeUse.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/AttributeUse.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5df4ffda546d8c5ba639c3250d567a5950654d7a
      GIT binary patch
      literal 672
      zcwU{6%SyvQ6o&t4qOEPzUcA+7-Pwo+(VZfQ7pw+dRJ(9DO^0?QO*Nf}?tCQ|MR4H*
      z_)y}RQBZIrF2eaHXXZcOFmLZKuK+f%oJNYF+Kv+Mz8iXXJd`c2WG~Xoe$WwJ?(HcR
      z%Vwg)WnZLWGvu%N9rr>WwY~G^wFneLCKk7ej75uqT`}0|;YJYF7=|b_Aujsgr|J|K
      zwYM2^EfIt~HWL{({l9q}d>^8W;T;)Cwaaj_a#j01<R6*U2Hjx4*AiJ+C^#5Jk-=K2
      zHb%fO;a~{Enx-72k<m2cU<6rBvkr1_7{+}WiL<2J6!8UbhUWggfQJnpOTGU3X{(Ox
      zGpznmk{*CAoUQkgI1ootClr1**Y)jDArFgQ*G68e66Lk1sibKtNm6C>jbe=IIME|g
      zv>%vtpOJUx1}M4n15CPW15CSRdw}v2byJwrdra;j%{Zpa8fBcIgj1B^W1c!&pGjE2
      ZB49|HFhklUWk}mthP01O{UtM@@&Pe1n5qB(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/ComplexType.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/ComplexType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1249a43af095fdc1a8943c2ab1fc7931f69faabc
      GIT binary patch
      literal 937
      zcwT){+invv5Is)PCQY_9Z7GFb6Ryb?x<cX&gcMamL`sWLN)UYjyt}4x*?6N}Z`6JP
      z-@`*x2_!y%k3x){0DVAN$(|W|=A1LL{`u?M4*-wh6_I0ToT|(_A4J}WM>6DE#>#|g
      z&=&*l9mIoSB+id7hN6f9L+wA=WVogT&tx%_e4dJlyV*J8BYtiR6d#Cm$OGZMJ|g!i
      zLp2nM99fJ*q5E;jz}i&*Nh$)@7Yt>Yw)|8lJkWG^!m!A-PNbh{@g@~1!;&TNGA$#o
      zD>Q*F|IK(SqcGqJq3(5N_SjMvtv^MCPzhqCh0>E2oN06zhazHFnGi-?oqDhQGZ7fh
      z^<fhCr7yJzyBX<~Ix`fcufmmzHJ?WF&!m$2IYYfMV=yP}cC*J&I3UI{^0?(-4I2zQ
      zvx=I%1u$$mD5GM$9S5r@8L#GG0i_~tlg@v`>PYojgfDs8r?Hh$$6dp6k0IZfKs|8a
      zV9`uiDshwze32Y;KN4mHaloS<Po#;bhXvi2)S)|j(pO#+jjdpspr720vm_8Nq`|3P
      zN!d4YQ6n*Vdaq?#bC`$uiYU=uHH}$IP1|!)Z0$8HSzERDz%o{Bv^tHi+dM{V4L8WH
      zllO&K=E&CFy-VD5x5n6Xx5wCa*9v3oy5CWMcZoY=-2X~RIW%bBuyWp0*$0yFkw`fK
      o`Xo6(lWv|&0O4ZK($?{iDwy?*<ec@4sJ!(|I|aIbWEu8<1BLnCzyJUM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/ElementDeclaration.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/ElementDeclaration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d56b4b83a93673756644f550f29a8a25d61eb549
      GIT binary patch
      literal 1233
      zcwUuM+fEZv6kVtHmV=Z^g^CEGXc>?ZZ)m(Ego|m?U<`x@-cF|z7&4uybAiJ5_yayn
      zOnmSI{3zqzXYi6hYMf-wUi)(PUVBa2??1kN1F(vhMPvlbLoYT5J=Z)@uG3YK<9qCe
      z){)&)=9X*sY%kihEms9PSwv2tdaO>A=_>EgeBU{?tw<o}sh%w`-R9IlcjQReSC(yl
      z*dh2zphN>ybk?WB`Sulqf2GYmI;cJ$T0R$xmO!De0-_?YdezNgl&MiJ9h#>bG1*%C
      z&jPzq;CP2j&U0K>bzGizATS=roiK8um|MIH{J2lsU5afDEH@6x3k4>-PN-bhKefBN
      zf7MZ@;)LrI2ox(-QJ&{Vnwdazs0{1BD~Vs>wc|O_TY*o_AtL`<*4BUP*Saj%!4L|q
      z*1_UFX};li?FzEEB{78=foyYezYKv{i98C7?no3-Vsuxcj0&R#i4jOf4<ts@*rLQW
      zj4@i0sA8PaLy212#gw?7)~!lRr09u69peIHZO5~B;$FuN_R?=#Yx|aR_f_Dqe-X?@
      zM-G3dT|W*id)wjI<YgsRcxlX0|1AB4m<lZderOFktGtA^w1T#y7e3L~mdI;c)Ay=O
      zT-%8YTi1Eu1}5ng^iH8c_9i(J8Qpc$_=0I;DZy=HIl-JUlVILx<PzL7>iGosjYc6s
      z)2J5{7)GO%VA-gb6Ra5ZN`gm5eI&u-&(tS_r*u9ij)09Ed}7}xrXPt_KvP4^BEkY<
      zEa8OyFix?C0p8#Y8#u=^x^<rNp&nAR-qd;sjaZS4MyyFzBUUA+5$lrIh?Oa5#M%@!
      ZVs%Oyu|8#uSfPqWtkDQfS<^eb_zB+<6&U~k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/Particle.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/Particle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd48e71059ed79e11adb8b83e0f9f9ae899fe565
      GIT binary patch
      literal 558
      zcwUWB%SyvQ6g|_#*2c7rZGF3NBewAoT!@c~8$l3)6_oC$>CjHe1Jb1Qw_Fs#g&*KY
      ziFeW#K}1~4+%sqHoO5R8<MZtuz$tbM$T95q!_=7szBA^&?D0fKp<0f-fe5(s$m2wM
      zz9>Lvu!elh9iNANr`;V2FJUMKGHiQZ8jl!i?)UzEn25fJTdIRk79Dyb;((#*{uH9V
      z{Iv{aa>LMS{G#(WH5X}i$l^BY2?H9+CJa;<v_`X21jDL{CFB*VnJCQAnu%o;87i&}
      z#X}l&Mf}XWzEBY(kNX`SOSPVpdNPo7iv#yxPeyk#o}x7N#GO>9ON)&Y6&!oyuhBnf
      zuv9QYmWq{C3PqLCFt9?^B;+Fpood~FMae##!m^L1sM^O<)L)3tVV&l6(gMz?^PDs;
      jP{t){xWWdp_Ut@1u?1vE`LYZt=Uj%Aw?^!Crn&P4lMQ)c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/ValidationException.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/ValidationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f09a79ca3067632d05c1993570bb4be83eaa01a0
      GIT binary patch
      literal 483
      zcwUuHO-lnY6r5LUqieN(f)}Ajtzy)J9x8%}g0P5CDPGfU*hcoFWOvK{El+|6e}F$q
      zeA!A7?8QLxCX;zDGoN4Y9{^6VEl?wzgh?UGIFb_;nW4%}nz(BgjC8DIe@5PxfgU>`
      zP$%rAHmtfbRm$G=^P{qvo=FIeOOu%ViqP5jU(`g&NF|}{<<=x&*Z<w@r-8~-+db$L
      z>Nn|7dsx776N_jNTE0p2LlF<OeNux+6E>Yb>MLv9{fDgQBa;!%{QqX@5=5-COoi3x
      zKTi2Mn))N`%(YGMdTC(;eP^7L-8r8eyRm44IG9_+o6~U>jP99ryyzSry<zE<VGSOi
      i9#`O;g%?<1)Sk-F#A-E0U=6Kmn7}$VSj`ct?yYa_TzzK%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchema.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchema.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..393f3f2c3df925a6f773a2eda4df02af1606ab17
      GIT binary patch
      literal 1892
      zcwUWF+j84f6kR92HLjYZN!=Do3lu1}lEwwfHKoNDIT4lRG?G0@UOFfCi6bh@L6$=q
      z-uNPT@N@=d_yFGd9fo}*;Rv-eWipe!);?=r&(ZkLzkmA!z(?p7u)uI<=uNB7M{f0u
      zyUu_I&e)T5(mxR+UfpjSR)`A7GTiu%pYi8ubtGUYwsf;*JT*I}#=vxjOO3HN3Ah*Z
      zxH}aYDhh_>NTu!DnrZ1BQ@R<$<;cCKS@xdZu;YV;c~(QWZ0VscE=HcN8H+A3EJm)H
      zVMxa^Mb(W?<8j=}azy4OsaoVoRAX3;d{(z^*}C10oQsh&PF!HfZyTL@&0xsUfwcKr
      z-O@~(sx&$#rK{<t9oJn=c$!+P)-_1Bl5n>4eXS|?)G?_w`>EF6wGSAU{^ge5-Ziv@
      zpdAHVnFknJTiT9k9LNSU)JDMlp$JSq5|dNj7u1F!udV8GZ&<Yg-|>c9423h{Pw4g-
      zlw-%^Zc`ldsT&YIa>xB=b9$8r6mm2TL~HDio=oZ5j~y|f3qGVigeykE3sOgGvAZey
      zF89MnGNHzzHl~5&R@?lPdMM3v|5up{emoUq^A8-)2_7=6mtP*?Wsj~O9#(n`*~WMv
      zipb!;f_wOsAycmO7U}7IuHb!qAkmi!?nG!y!H398^tFO=gdQoVK$WPbU>#}!4Tfvy
      z-5ZYgObmAT<b>uZqK^Ag+fuNByAtgv*o@G(3aYp(XLmedPDe+=xA~D9Udp)7-5&QH
      z$zx|WIB{t1vhn}ENm`-ei645AXzVlGE?10Kexq{@#jGV`cDOfi1%*~#8yZU~L(v*f
      z{k~{9vgxIHKbtb1R!$qIw|EQJkwczXL4L`&KzuR5i^MM`xI+9=f-ezYPVg1tmlJ%I
      z_*yFel~n#xD*x3~{%Z+-o&MfP<$E)g??x)$TPgj`l>Syq|8`3MPD=l7N`E`S-=huC
      z^Ci3@A8%;s>4vr(TY9#kU5_n2$k1-awi;S_JNM`ZfZ=08e-W1zw$&H-L|vcZGj(Hz
      zFVveee5IDMGdxgBxfvd+rTh%vsK29r@B+;lv~#$94)tHdW*^i4O}buSh%8*X_z^AK
      zqYE3;l22(7-_r;_wK2gK0<<uNLF%2T6|`XjA(A7r5XqqzLL|q|gh&pa4Urr@7a}>l
      qTw4db@rWB_WsU{*%e=dM==mwEszj%8RfZ?ndu`;;uZ*-pX8!{V_+8fk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3294ea9b698e24f0eeaead9e8ee2c5357b7a3f7
      GIT binary patch
      literal 1700
      zcwU`UTTc@~6#k~SZOa1XQdAJ}g4iyV6;Tn&#Y%xRDFi7J(g(@XE@e%-+ibT4-~2be
      z@PG-$#0OtV{87d;Ln&yjsWxfnoSAdJ^PO+b^!tym-vCTvRf3CQx?on-qf${l)QU!4
      za}3MmZY6i1mo#-}Eu9fo!f|Y4uj=SqAIf^l+_xln7$(|FzRY3pT^un)((R?j89aGC
      zS7ey_dq#s`lA<+R9P?y{YPTpyi^h-Dj8Q5VMQ4=ZGV%;8%MhrP^_;P9=;Zt64AXEH
      z7<Stx{vUL+(QRV9WaafB+~}3jg+2y%B)S~{Ls*6vK5pHRA;HhBTQWK!2QY+T3AY(0
      z|GB7)I|wrPFU8=fcVz_lW_Q{!_4R6LPq(+Uy&~z@o3?UVaa*$u?$<Xx&Vf;3m}yg)
      zrcol%I|{nP-F2-*fc=qZ`n`6jsYT5!s2K`33voXp4Bn+=Vk;4Vf|!JHhOzdpRmNjX
      z5K&XW4+-!ik;iu`Wi6+xZ+Pu^5Kr(_!X!!CGDyZ0#u#McEaceGY=<FqtpyS6#|s8<
      zz?U*+ct$scG>+eHrWiVnN>aCtLp{G@TP2#)NOR-OJE>?kNY^wkV*!ga4wXiusbAqX
      z+MfG1%MxSfdXIb}n&N1hoW@;-@|=(;yrw$`7JppScrasC?VP@1@BtcWJsT4oog}1Z
      zKz~|Zg!mgEE5u)bSZPwhKOK;T-zioPeY?<2c_Fes!X<V_l`rT~#%t(TVl@mX!!_Jg
      zV&{<9CrGhV4AwC6nc`fyN56xj(kx}pQ<Vk6TSOmT;Q<o3PbbO+Ci$a+!KmQIgvHsp
      zgvI%|Y4;(<>TFhN<xyef6eH*G^*%b`)+wTAP){1=yF|;&1hq;nrbJ2kBC%eQ;aO|Y
      z=U1T9zk{w5=mvpq{t<K*@j7UUI`UkBdfmqgx5i_`XP7%~fDTX?utT6(66zhL?xKg*
      cE0Mwtk-{WkqF(SdSuSBMAt^*!7MLqP0p69OEC2ui
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04a824ba9c0569bb674440ef80e3035476d1a073
      GIT binary patch
      literal 14866
      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
      De(Hs3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5c892cbf50f91ec58156676e8049888211dcc9e
      GIT binary patch
      literal 1657
      zcwUuMT~8B16g|^c3T2TBl~19FitX~Tpdd;SOsphL3Iat!cpKWWtl1B;T?oGT=8y0{
      z@Sq7`;)Bswf0Xggv{Zx^Y9Bgx?%aFMxp(gDuixLk1DL{M7y*WvqO)%t+Lm#^EwjLV
      z({<#wl;0ILH@23uIc2@Fge@F@<Ncn<IB(rBLJSj)rJm(5G?kAS64}O5Qw*Vk$Xg6k
      zS7%h@r74zs>QJWo#LO^UE0q>5j}57gVuOxJENq)Z&YO<uFED&)Sml3fyIxUplk~rI
      z3nGFbZfR&k2Z>B1H(S6E({KY#((2L>MzgefG_)YX(4I9Nv9fRP2ycV$SX6&U*3ENk
      zlY6GzSDYb#*DNv2Hdx|?>!*gb7KPfbaGT&_iDdR2Kj4PNouZNRJ<}<sS}=s+Fzzx8
      zU01J$d$>=k9EH}euntv*^py5^UKneVDiy&95@9@K=&c*1A&Ef-jU=ktSGngiM9(Q!
      z!4hgr!?=uXr^D*OoAnGsn^{T=&pZ%?CC{~KW)qhyyzI#&x5JoX7`dwAoN4dTO^_L(
      zn|rKb8Z!*trK&sgFZF88Nvr`^Lr_hLRGojm6LLr{#W6IW1yS<~Qjj8E7XGeVpvOW@
      ziu~1F=T+BINqISU-^+_7Q_kW*y)m1RnlMQ{3ep!Vgs2>QvZ8Y6)k-4|`D=xyB0vx2
      zCdIdtWg(zEG5sr|`sfKd^|2G&*2hoK{e}Di^wNJ9VFGg$`JB)eD0>l|c!56h>g9a&
      z<Bnp9DSoCbsUV;%sUb+-0Ss1{XK0mCt@<&#j}bq`gU?mMGC*1pXyvd90VBft5Th3%
      zGBqJ4U{oMJl3H0?TtfWB<R^4V>jx(1LV9m#bZp=hkB)*zRoFh&+}Bjj8ns{@J;;%N
      qoeJAhRMTa+YCGb1f>}i$$5XNb%6dl43{rjsDa=y?88uciEc^l2f1yDD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60ac110b7c28f38c09948f445b3ccff4fb307582
      GIT binary patch
      literal 4437
      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
      Rs;-moVmVa;H+0Sa^MAK9r+5GW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edcc61495754a27ff22fbc9cac450af48c58a0d1
      GIT binary patch
      literal 1095
      zcwUuMTTc@~6#j;8yRa^TSip)GykT1|gYu*WG)gc{OGS&s@HTD7c1d>^cefRPiod|b
      z@M1zR@xfOT|A7BSJu{RNEhd=B%(=|Dd}q$t{r>aoHvsprV4{y<uI{z?uG{2o(R6Ae
      za(qvTVYMM$!C$Wx%bMGGza#VB8{dS%FuX0=f;WX%=g%wKvKpC4FeLq;&fhImdChnE
      zu{}d#(ea#UnIV?WY%&;6{hG88!#Nu!`Wc3bjweekw<3cLQE5tsk)mG}%}o(FO719)
      zsNsYR^Tq$en`0Oc9e0P~C{4H`1E(!(tAXz_tfx<lMnptp%*$QBT=AshauhgT{S-|;
      zvo(N=7&Vb(m^xcv8)Fz}=&y)S%M53Rq;jQfT*d@Fjwf95ozS3mwYSoQJEAK2ixROp
      z3s-U7#5IQ0KaFfm;s$l3E~C=%&8wGrYHd2xTd##%xMSk>AM<c@XJZO?srB-0OEjr#
      zqv_(`Ba_Q)DM%R`S(VeKoVxAnB8V8Qlb$gQs?xiF)O_?{p(i{xA~-eGWc_k$GHUoW
      z21Z3#Wxo|v<*K8`X{={b=2TE)5;Ul^<MfI2(WVh4X@EFRlo5?*zrgyeuWdRLS~-tF
      zI_)C^oW~GR1H-t`aXuvL1ku8%@rekY(Po`JGQE$Hhw+cdrsDg!bbu=}2e|nG$&Q$w
      z)neS(Qwp+7#See|i0ySDOz9L4ki;U5!xFvfBh272a(F`03ausNX(@=yM=&}N6*rA>
      g4WmFlv%2O2=7@`Fj#Fs{MdfNxsWe7E4wd)*Z`NWCLI3~&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7a457b6669c41aa0623ebb7c4460f6283a566655
      GIT binary patch
      literal 1088
      zcwU{7ZEMp|6vzLkPg%Nj(>ir?Iv?gVonU+b8P*3x9R}hMI*Rx%P43z&X)@BZ*6-vC
      z1)bmvKY$-fJU5M10(C{g4d<MD&hMQ2zxT(_Z{GpjhN+=IxYrGb*0>*7BR7z~o5(0s
      z?!fDbzH7aH>9kU7|NWt`!-MEm9F3$eVhtt2)?0Vvj`P*|RD#xXLqAZ~jx%4o_GCAT
      zUrZ{SgvtXM%H$EDY5p&y(I%9hM!u+`h(!Y$3_{Utv~>`c43tqJEITq3d&7Q5#QSb1
      z5QMrDd2Y~lW2yWsSW0?wF#mz_qVR$0U6DKwL|=r-?_I*G*>Iw`YrVVcS$@=?irK8<
      z3|2Lqo%_b}r#Em4D})v9`XotW*%>C{Pv14u{zv2U2G($nP?n)D#ssnnH94^TDTxJP
      z!W)%*#lS^eA}q>5>ri;|Knh>Qw+w8mc(oM`V^8c#CF90Sg>I_Hg<E_xMSiY?6Y6@{
      zD)Z8?z!9CTT@?5Os@q?A-S~pqC-w?h=KoS!xq}k!b8eFf;4#u{oJ1W+Ek)%MDRnaD
      zozw>wwm+kGgwr3V#7Y`}oRW-5PDUanP*(pin@Lyo>ql761D^dgias4h#|3Ppty#Vq
      ZsLLO6DEk=H=1kPpJZkS4)U`DK`Y*&}=-B`O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaValidator.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaValidator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..823a554e09c544ae444359c6f981e5fafe435c6e
      GIT binary patch
      literal 1500
      zcwUWDZEw<06n-u*Wy89msME>jE3<&EBYwo7i(%2&xnxW-zi2wBtfsW)w%~r2CK?kz
      z_yhb=#&d6*g0(EPX?yQI=Xts3p8o#x^A~_7ngwJS^r1V}&qj_uF&%qg2Daylsoy`f
      zMy7teZ*=9T7e+l^K#pPaqd76plCU_3K?(5;nz0yvi$S$G_xKCb9XJ+ItQ#I5N~BLx
      zotYTrmbm46W8Sw8>FZ2H{ymxh`Eg$#cq85Mb)$QjNFt!}#CGkV&CpobS*^#Ad+rUa
      zBC=RjaRDWUtXAtSgW<A@JQRji!*;FL<I#!5kIWOtqKM)3O{ZsaTg;=yTySdp49x|#
      z<BF2=JZ;$u7?vUkv9&Z~dJq9OUH^l}M|xLox|JHEQjDEI?y1;0>sz0Mv|m7l;reX7
      zySvA6xPVQDvS8C~Pk(t32gEr`Er!Z@PAHE{-FbPDD=OpA3OfI^K}D<0Zv=4yTPg}z
      zBB-B)ZfNt7q5x$QOST9@H4;3(lZ5g^70W0RkDtb~r7b`s&mpYRo-G<=?f<ji78Sz|
      z31;cP&7vea4&tJH%P+Z*Gf;1;ly{Lvd&tlY6ze~*Qg3|6rLQ#0piJ)-$<#&;&j`DV
      zD>S<nX5%W2AV)%l(Y;2BA!magCY~vkA{RQ6LJflv1vM0IP}aK4%HSq8B*{~`i4>Ao
      zlH_(6jD0ZNqP39t4(<|yes$cB9O=>_kgtD3^-F^AV8&HGcJ%;S1a3zqQbc*GQ#(bu
      xdPJBvGo?{tONuPK5U!z~Vx*BY@;24TBW$M`X(WxjBh33bM#RYrVO?T&{sMU(N%#N&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da9085fab5285f003c38971b16cfc58a91a598bb
      GIT binary patch
      literal 10302
      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
      E0|9PeFaQ7m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/AndExpr.class b/libjava/classpath/lib/gnu/xml/xpath/AndExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42a921f32ced74ac6b26d3911d197a9c8a95e956
      GIT binary patch
      literal 1548
      zcwT)}TTc@~7(D}93U$Sb%1uPPAiap|U8G(B1w~hgf+YB2mUb*lmfdFEV*iRhoA}~`
      z5-mm(e}F&AcxHD4+7{Df_M7i=zB6aO>9614e*(CKCrPvk94ot3qqgZ7wTcz28`ExS
      zwpQ_z&;)w^4Jp4syR-gU;HcRgD=_G*V8<=nwSzkX`An;{R=(_tfOgL-$rRe5>*&Nm
      zqGhrxT@W~=BY_TO9oCUV2R)|k%7yCYn)H{gHAj-G=@l(!#qw>nkDXeuZj(=++479!
      z+bOp!r)mYv&16i^FB@;J6pfO%X)KUSVSYYqZdhBE;aG0jSX|qX#h{=V4(RAbUy6*5
      z>lnfbBE4MmJV#otz*q~UW|-`YE}X=vBu03wz35DYqT@8q2qfmF&81m^BW6=ZL6wi{
      zIH&To<!8^CmMnU1AZtM=M<WI5S@Ecbm{*r5NmO&>t1!2T96S4Vd7Z&T(ed0!p5`O8
      zx=AI^WgP}CDtWG|tLzd;`SO+YrCXF_FdSjk!cy1Tl&>pRQ5sJdXi^u2Frnibu9N7N
      z#hE+)pL|LmcuRqAyJe1L=I;xOyoDq<ihYglnX2uSq@TiV=xUkPF@t*?UaL}(Zb@Lg
      z<%#!!DRhGRCq^u{G@{TRD71$SATgi)K~&`<9R=K?VoP4tFUmPv4YD4O>;+ZHr%Pe@
      zgxio-4}(@(Jqvylj8Jc`DehL8q4Eypc5on<|BCM1`L9TS4oiEu_CVu$gX>KeO`@Bv
      zkI*v`mEkCk0imVZh|p4v+GunB<2LVEubNNfzMwllbfS*_Ni9F1eZ$~8B)2jAiGg$+
      zNaP0+47^3xHqL%PhYIiV>17|_E_6(>^9%-XAETHJIo*kR>~fmG7&0NJ31pEYg0k|o
      z_y>aX{Ed^>C~Gg!Qo?W~W5y=;D!=~+#A?X8j!Pj)es^$Xk5P2$M<IjWsAiWzKN*ZO
      zF4U;T$P3I-S%Wd^jdw`Lz%&!>AGMDS*o%K*5AI?Q@<t{@Yz{+={V>!W82*9Vt2?->
      fTGTPsbH9!`)q{2&^Nrk>Lwr4|jPV5?hgs$yMc+J_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class b/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de7f2fcb68477d515a268acc3c941820eb378dac
      GIT binary patch
      literal 2522
      zcwUWF>u-})9DdGvrIb;|z;3Jz@Io&@K}5l-(5(ZDWgF|(IqvV;cWp=ezNLFRW@5w-
      zB*rgZ63r0Q7%w3qm|&F7utYwZ_}xFj4}LJ=gC-`%%X8khY-Jn7E$2PI=bYbpe%EvQ
      z(?5590I&xaTxb#K%4@agOt}=DsVGJv8m|_OLRmG6*}j=d)djmi+k+Z%UBDJkBm_iK
      zU`?;CO&N-2WRy}(wUHVE?(|5{@KC&WSYknZY$P?D988T#OsmdBGLua7Nn|5BHjo%e
      z4M;?Lwo+kApgpzRY>b;#x!Iyuc<P0sRy1A`*b!VwccrytC?jC+)pM!`HgtHg0iEOw
      zhBB+@be9+F&?cqLUaYsIEnc+4>B2UFZIjBh5-llOKAJ3*)VxxPSM#;9su_JVS+!ym
      zb<KmV=nz<&Dr#zftvs$)hn4Y?${eQjtWwG-)uP0WMY~ZbGMLS&N0opvyVYr?Rxx-a
      z7)<HaeDvbpY&55rqy3B|mQ03Hi>?ifPpVlXCgY2E5k$ztD0X_W3sC{rS<UoHVEYP0
      z%UMDR7xoDF7B>=ljlO%Z8+&E;o?#ThL@48Y6V{*e(w`0C-+T907KFx@3x@={mt`|;
      zFvO-*9+atcWp&L^XACoiOC4tED*BY{7*(SqC3V8oTNZ|Zqgu=txY<&oqG0E?R4F*J
      zC0(<!x;*ri`bTDUz>5@)$*dli8Q3V`sj3rdRn@Yptfs{^V;<F%vN}~!vTF2rKgC$+
      zgk%`;VhCxvJ*}`3n;xOh+8cV>s1~(6Z$z-U&em$og_8msmoE3zCg_m|C(t23XS_Iz
      zbG$K1rJ`y%^Tw<Y@X9PP$uKS%vUE1s`%pbMm`Yo&I4uw4<$=NyOAVhN!7xdNvYwL+
      zB`;pZ81Z;*Lcss9GfaP4uT`_^;i9}#>mR&5yW}Z0D{0txZusGVlgK5XArr4^!XDz)
      zP1sAkrU|zauWiCU{`1A4?33?>IrFvP?BHN;Q1dZLUs2c2IUb&aKODJ@P2nB45eVGi
      zTFAN+=Kj{DBOJJm?(0}RkF8^Kc>L}+rr9U>-A3numw4<DLx|J09)_93J{-k<Hs~Sr
      z<4J0SEyH*U+f6fZ(_vvs(&ZLYl1|&W%ICszS^UNo59dJmJ8X({1?mVtZ>Jn+$c{*d
      z{d?><;EZ%Q<m~2N_YEtQUz<XbzV0zS1zzE}Hjmw7ey87^ox{_&?t^?YI4^<U-8%ab
      zync5(_RU_!vwo+AofdAD%I$b=@m%YbkFly92d;xEv1UGfk<TNihqAr+f7qrhaFF$g
      z-(4uj1UmQ~V#lP}BO};?43jyEK{oPfoWdl|;3Cf9EsSFpIed-+zD5z>a;HxD4$Alu
      zI)26l{DLXmqxN5z;V<WF!j6l=jn~BnykVAfNS0m%?w6EO4|-)uDJ5987E|goOX?Nt
      za2Q8e3cqmRWl9eE_BR{lDEEW-gGD(?J|W+<Mz;=9N47=RJj9q;{yO^2(pz))90qSK
      zMD8@3>9XnBM(f-{vvtw4BitAAy=$=dQ%7obHkgO6!q*_D=&;?i-(14|b`y8!0(U1f
      zJZf_Dm1uDP-r&AGj}xrVsZ>N7spIr$#J8mmWwfbD)7G@mq`NrwbM$beBEE=Jzm8zU
      zx6_g~M|@#RYLB$#>X@M9iL@1^)L@s^0;aV(&M#)Dhpz(g4zv6&FW-CYkN0^!KVW7)
      zWbS8i99J-mt2l{k?2=EQ;!}3SXY7VAFpV#9iSNf^1}--;z>Z+gXl4d<(^lm_bf^f_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class b/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..960604c8314084e1ab3a0cea6bb089c054dfafb8
      GIT binary patch
      literal 1655
      zcwT)}+fvg|6kUfF+QtaA-~|QiowQXW-lce<NTC{0Zgp^+aYA}5anhs{Qthw!1-|&8
      zj24v{$7esvai266Yzq%<cFtLQ?X}n0C%^yv_z7Sf#Rz&BM$2|htye6yUe&#IHRm`M
      z*X?}GHayd@BM37j{)f!et1d%GcgqYzTIXJtp>NW(P46DVprXCe-|A}3Gc8p!H@s}B
      z$Pk`(O8fv0;9vwYL;wE}8T}Zb0%h(o999acCWWQjW%cRW8*X@62@Hp1M37)Os&vyJ
      z$_!|x&F5>CHSR9!YZj+YG{?}bqVAgFJy;BT>*fYSQrp)F>MBev6ENQ1l7tYB3pFQ5
      zwUR2vNZqK6Ui2|U`CHwp=^oWl6wPtV>bq-(T5>AtJb92Ubnh;N(=tvXDf&Ds;~dTt
      z)2p?nB8IUpOr12T7cq<>6@fx#?d%49$w(tZJuNS;%+NV$9e}LJz9i$afc565v?ant
      z49E6(-Se$%mq6WD9Wsa&D6%*S4N>y~+M$gY4a>2cu5>EzcA~<SJ2GzK7K7yS*WBf{
      z!KvKICPUp%u=NVxsOkn+7v?D>6GYx!8579*dT4Y{?1LwtJ!i>tO<PR2vio$JtJw&q
      zY3SOQb2ZZ{aW@JwDH<G<A|Z!aF&J}VkUObTMS*xE<1sY4G<vnl?GnSKu9oakF&o7^
      zS)LM1&jiy#8^OO?dlHDuB^eJeMaC{UHP_&IQ(TOpwkvR1FyIQ!WQaZ>bP>deQzU*7
      zL}?{P(Jbxu&~qT234MpugI@@3A^w?`dN4@;lE0m!TRx2;ijFklI7|`z=qQd6nIKIB
      zq<O*!l$74Wa60o9BRhQkzML6^sdNl;yEvs5r{qf|pTw;SIBS&AOV4Eb3q~>{qYa#z
      z2xo@F-*DzVVw<?|0ezde_^C~}1{qKMBG;Sgts+UNzB?is$5kJl#5IaSlru>98&r~s
      z5e_6gq<4XeZ-cG+G8(u|X6@AM^Z6EcH5G5wi&MQDep58u0ps1ks93-@`LT`a`7Wwh
      ziz<eDxbIWZ7z9+)BwJ(*ZzH#wc({eU;B26fc+$Yr1{T{@zVxZ(W>P@Su<WB&{sO+`
      BS6%=B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class b/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..361d12464db6d907057dab9a11838f5b3e28a430
      GIT binary patch
      literal 1681
      zcwT)}U31$+6g?X|k*%tUaUI&wq{V!+l1-~Zfzmn+ZR5BE)Rd57NM9I5SzL7#$)m`{
      ze}I3(1I&O^$PB|XKZ@b3tR|`L_QBHi?!D)pbM~(O{qL{80epzZ8m0u6I$_W5?*(?h
      z>n2a^Rp|$Q*lG1bFY%*LLtdc#a>`o28w=#zxFb+;#`hWmGs}MHCo2MHOy{Zl%(Z)o
      zAJ~q+pERttKz=pam8WnDr!^P?voEI@n8h3$bYvnhZ?0QIh`<dy_QRd0(n}gT1l};9
      zp)7FLoWw!3nREP5ZuItcWc<k82_%&`k>>_&H}=*4Y%!la@%IHTI<Iwts`8Y~#L}oF
      z9XY(E*qkS8(`pyVZppwjW&{fInH%)ngndlYiQ<m^({<0@jrQyfdeB&(tS*PDfeW~(
      zbiQlgJ-jcV{Sc;71TIei8b`638ZMLV@kTT1QLqjRbq%!_zNcFcsMx><xI&d4h4W=L
      zt)`Aku$8iF!v&hEc~O|iev+Cw%7Xg45iJtyi~<?*N%<;uj2@G?Et&$;UJ!*tf5t^j
      zI$Pz>Z3DMJ5IvSZ%2<Y;WZMfvgnn8Ox_ffJ>w41O++f(S9;>>$23GKS%8O2(e@#Bm
      zE{V31m@~jRH&33^aJ8Y~KF4o#`CiWtc4b@uJt%m?Au@He@Rc&sQ6oJLWwlkthJlCp
      zn%Bqec4fFLaAl$;ujtq);2Sz>DWpdV>Dv*27rkBypenyJ(8L;z-HLj#CtJR{B9)QL
      za8)7T8mBYIPYH)i4Lc+C(@@|_k<oqbPVqfgtLOfNK81gfJ3#3-E=}PKpL)98;C)|4
      zh0&YCbj&kC8lA;Cf+^5)2HIkd%F=5GSg6(iz~V99Y)WSZdE8;{-4mGl5vHC}rBCX9
      zWtcy+LgTwy`yGq*#iaq>zLl>p<e%f6o70E5w0&;+Im`oG{dJ_(8VnMuP-!J?tn^op
      zT2=Xx{V1hh#dUm~5~<=7Mmg5a<5S#V;|fmWGu$LCp+-8R)Z~uJFC9W`r?duGrg_H<
      zW>RG5gvioS=Mp>LNJVnkGsN4Oam5Vn&MzZSn<t=(M^HuF!)gk}vB;oSDL_>$9HO;d
      h{^9^%D$D^Mls5<18lXMOvYkR3!=emY;QKUd`+xeaSTg_s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class b/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c706a233c03eb3f9927d3be1f2815ab243219ca
      GIT binary patch
      literal 2181
      zcwT)~-%}e^7(F*x2n|b%{Ay_lpp?2vps`SECA5~`Mnn388U(d<*(_mc*kqPXMW6dm
      z=z}vpG2?VbozWmN<M`~GPd@wRUtv9WH-th$CzI^md%y3y=bZ1{n?L{i?RNmzV22P8
      z=*!#X#LiYBu~X9Bjl@jRHgtEsY#XjsWP~EnaXeyfr{oAIx|81)XisnIPxVCEwF-%}
      zwe2PankOyWa&HTCY9|+?StiaDb7mMpw5kX}6$on4>=_80RndfIfpclgHZ$d|HPd;h
      zuN6!JNEZ#gkkuVazE>v|cf%rp{`9Nx6HbfyR4<fumnoW-E;{+d7vn}ESKLZu2qc+G
      zMSYY7-OeZOu5Frzn+%~xpyz0M$#pC{KV4p5H=QuL(b|e$TngbLQ6HzMq7M;nYPqJP
      zyG07sqeWkmAyu7EwqgLUhcHNX^{Xo0zz`|g=8h}Sr8R&k6&zO4iLNlUdsBsms6goP
      zwg*+<W&^JERbDRalT1o}aTOyNWh?bk$+U9<BU*i6eXcK%M=hb^EnFj@4ShS~v0$55
      zW$kel*YP$ba*In<tj7sf%QM#~+OC(|QO|`1OGWlyq&O;=Hh<U3>jD=}L&Z>wTQ%wh
      zbLnQeSnqVXNCQa>b?ON;8HJ+lJF9`V4XR1w%&S<y`)u#F^_A%flM3Mjo|hwNQ;ws5
      zDg6{i3Tb&z78$RlqFGtsu8MoO&&<3@ak{le7MA{4QZa*BnemZ|ES4qDTux>*K)Wh^
      zv?8}^AuoBl#{|NTN$pJAFy&G6({?;gw!UR<mvqBS+|O|6<p=Rd#V7dGlZ@8C^osZv
      ztoa@0Y1O1Ja&l|)1h_-1Wo1NOx^jbMwV6}BC*w9{+>;ZgJ=O3vdxV#YWydh*EqS|i
      z9=}Jf$}BpX%y@P3+LKomM@{@vFwUIeXdVH6fN*S&-}o<R`-yJ>oa66VFY{d}NHTVk
      z6@VT;8n2-P@J6yKjVh0IwdP;UXyG$;fbNw&oS#r)Kcj6Q7X&7nb}`)Bw2yv)KM<T~
      z?ro0uMJl*F5$aXqy`f)mrGnV9jJPWB&5OT#l?ujwtU>B0bl?uRnZkKGWeBqv#T-FS
      z@om9__`u)11~G*jc!$vB=q4ir-e`iOAnV*Axk&=<LISsNn{<Xq@;%Nsv$D#%)7(=?
      zS61nL&pavOtj}sr;MM_BD}8(TFcZ9?>|$V4u5>H=$OI(Icm)sk@i2hpXNu@n`o4Sd
      z&jG~B=pH^kVs_DMPMU%)QpyYuz&(udnIs>{>bk#Yjnyn!O%qX=OeQ>5o&0}XWtAZD
      z50i^*oRHqG;@)A5Y-p_3jm2Gbj~w=bC_noeP0I6;s`mc|pV!d!c)Ks74J(MS<^abU
      z9(l+H{i-!&F+9fS9<qK<(E!K1KC38xV6?*Lf;2~mz6T?Hq+{^*E(RmtA{=iYsbGCM
      zE|(&njulwT&w?T%)r+@Bz13sZxZ;&JxNVNjG$~-7P%T`>6O8jci7g6ddyr#3gev4P
      WVM-J5Hf5wQ=Anc^&KA5qw*Cj&h0`+t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Constant.class b/libjava/classpath/lib/gnu/xml/xpath/Constant.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3e58753adba255298415b7f18fdc8aaa9ec7ac7
      GIT binary patch
      literal 1572
      zcwT)|YflqV5IwgKTI%u;c`1mB3fop#5J9jA$kXalL==UXn5DgxCGBpr-D3X=-~0i7
      zz(k9Y#Kic`A7z}oU29va*|a<N&Y3f3W@mo>`uYvPIJN@tFm$Jlf>O+8lwwY^50oX-
      z$lID>2jFAqsP(NBa~6aDNXryBIn_h$NK-PJkybYL4tdg!F*MEUhHlR>bjj!4;cW)r
      zl9}QmcyU2O01|^&4sSPup;dw(O$=?SZtz4QyT`2;+Fr&<WG1!Dwr1(#>|Xlp13k~s
      zt2UNTQi5Cv)ocRGvT9ms<=sS5NtszCK@wu|c(_pkfuw2Jyl6XV>tjf5&ZMj?PF98+
      z)Qn`tG|Cyym#dy{Uo1qWUKOPW8A2A{=N31ToHz%{3`Hlv(6T(A(~?}-OpqB1?^41e
      zjk@3W9~9MWn_IS}8)=44xw^jcEoHxr;Q)ph+Uw;?7{tv0!ZogPSO_wr67FDx`lA~u
      zUfkHHFCfRm@c<Ntp89~rf}TlnOT>*!xQhvjbEZbbb;(N&m5pLj^ku4Uc3gjWTOg(-
      z%-{iynU>3OBgHV%2zu_y)#D_Y6%-E{`Wwlp22!6EYMQZZ7HIT>SY+^wj)~%yC9Ggo
      zjGB?kztZi4e`wzo;Kvf;ctYA~aMA)wlOGojRl+(F49)q%Uf%tB-E!@Gx=a*gal3Z+
      zDz4C$S+J6PRTulw@@Er91(LR%LTT%%AhBj-`N^g!r2l3*t-?bO5Q?1AFZvlRAL-;l
      z8~wLBkyG$tny@p(0CbnpxQGtGu>>n^1}>q~<y@z?Ph^UGLd!{oPQZYN4o##CsL=S)
      zMbyl(deG}6@#8XCUb?-4K9_od&cY|1f$a$TQ}owoSgaB%RWeAFp)7O&*Ic$KdJB}t
      z`=O3wt%}1_;qc%(Za5sYGA_ptszjhnp{9ges(62ge2n>M`)~;n&wKQrVRWZ`_zT8P
      zaW7iJec_0eFn8iO2CE!{uA|H{e~jK}$D<OKj?otN5@OAtD&eUb{af^qBSWPxx=u1T
      k(2q?_;w2JzP0ubgyg?Rks|qsRf`UjB{+UzIro;FAHyCtFI{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class b/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fb6023a045e244bb0b3185fbf44d96e9ebfff52
      GIT binary patch
      literal 1971
      zcwT)}*>>Ah6y4X899JZ6hSpA-Gz<aRPAk$flsHLALQGwRP2$wxG89F=b=9RvUa}ng
      zExho^OCO+%I<#G|c;=&6oGYnL>bQB3?zZkZ`|LCM-~XQf4PY5uLWE(yWp~xyfu;7^
      zy7y4sa%@jG?M|s{8=mRd5@HOKui9+)+Ac#(cU#L0)7t6FVsLw%A+c)Ornk;8rD%`z
      zLtX89rlo3T$1CRQWVPiq`8miKm+%I|_^T!|CXi-`wz$VIqm*+2g{9jqwYvX^8(uL5
      zQYRycDTabFO3J8jBJ_l2+Pu;|*yrw^zHf2j(Huj!>bh%+-{HrY_t5MxENEw!Da@EG
      z)5CeD5XB`S@iL{N<mzK2d0s{w34s=5NJuaw`Jrxgb&o<Sisra2^`{$#+H?-o3YDl>
      z9-Vv?@5p!)Z;3LzE8{&V4AT9M=bCnl;pPaU(<~>6YrZED=dmQAK-mo6$+(JZ6vVWf
      zyjOi7`f}PoS02OrxGsU_<NWdMrsG&#w`JVG2UM@U-MiZ~7}_a=qVWDm#>c`eUfR%V
      zWG5L^a^Ca&J`HC@m2Epzd{!o8ahuqwoXf)YRKCF-&1R%CWDu$sH*_60EXNMoF`{N8
      zrb@J<Bx4JoF{E7nfV<o_IH{Ts7<#^gtsn4CTQ|76Qz2N)-4lLyWPFa>B>qsR)w*<s
      zJ&lUz)WQx=D<irm;VXuV!=E?1rq$$b61xmzMmWAo3RUch;k^5rPS%CR*D}6AgSJ_3
      zx4GS9xH_^XuL)U9;#+FXl3@B?F#Rw@@G{mJ1V0i%P7v(N_!1Q=aLwtu1}~XnNoR)F
      z@tR<wA)<oPUtI)gv2KLYV%g{vPZDDPQiOI8BO4%_FGQc=Tm=6hT8O<wM>zkxPclvK
      zly6u>2CJAMbRlr0^CIA*3_Z-Jp9<+4WFuru<c~0$FFeIue(5Q$9FtB`d|;j4pOU5x
      zjAPR$UkKa=<P&}t%ts=R2w__OFw9@%pQLjw{|Dv@m*@I;dnHErN{HiyZ0t`gt|SWC
      zxHzS3A}jTgi~NGICs2Py;t4+dZ6N9b1p`VDgPFl?5>tkPJHD{pAkaYA8gAkfU)UN}
      zs5%iJtrCio|1x2bTn3A{MJP^ObCl`^rJxYsCLxKuX>r0-G_nyKnHOLUKb=0d{Z#0r
      zejKX|%27Shi_Ab(hE%Q7Jrk=HGFQk(Sj~p4<)4ubi3!G|k7JLAxc5$Q&knd}@dc?A
      z+%%0Lca^dg9*ZwfZA|VQp(cX#QJ=im$9E!%!1oFFp%16f@WaRfK^TU?@U5Ev1BhLp
      AumAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class b/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fad78cae443d5f88db9cacbc208fb251076420eb
      GIT binary patch
      literal 1592
      zcwT)}+fvg|6kVq+goX&U-~|CuL`{nt5xfyVuw1NEP(fz!Erer@6Ov9yu;UN-Gd}2y
      zmO*A5p8Y7teNH2nf;=?Y*=O&y*Irra?>|3(0T{xvf&@c%*^7+ohHF$SR`}j1_>mXR
      zMxGryzNa9?kUd&3Q>_FHNh>Hbbe4{vnGDTij^~6E3>|vugSBNDQRuiv$=M9e+zLag
      z;IH#mwBn2cjiK#miH0_`(||G$8P4g&Tphx-yt1*l_JP}>se<9G1_fD$3;IbM#F+My
      z<MD-PV~q#P)|$&{lag;+?ur#S;yF&H!uQT5LvQI69cZT%Elg#Z#)VWQaY=CLCeC_p
      zB~9FVH8i1_p@nZ*Ze)ctMb}GyP&Pge+s3-TVJwgWX7S|RlDMkjGWrx;qj?7f(|$yR
      z6<jCX4@eYz*X5FAD+X{=gN_`r-E=;2NvNozAA^G6ElTUtLK(&Oy^vQ!sYoL$>Z<s(
      zDJxRsa*wXGg(yA7m7&RYeXqXWvD4g1FGj5QP{RoBGpGT7#{=%!oW@<QBUELBXKnD!
      zie+=-)dGcP?ycxEH9W#&$%h=+eM&t^ANosS;CRBM`eB*tSyRCjd8aY`G;-W^9<-o9
      zCboqGbQP1B5%SFnHy#Jdt%!<e8j5&MO;)ACy>*7$CkpbPd1ebrBzR6BEeNE=27rIF
      z{tF;FUul@Y6Owhwj{=*|I@0n-e0)dr<1Se=N&f)kF5y#(#7{vBWzrPQ(P@J2?fJpv
      z4%7tpklaS*8>JHHpsOm6P5MyB&`HtxdO6Nf1Q}hxMFJC`*%)+|YDATq-$qw{@CSMh
      z@Y*Du38ZL?G^P$=s{5F#q)IA@Pb0>RsH2JQefjU`8SLq;;mT-g7yYYUsXYwr;0D9z
      zZREc;5TAiYbi|O6di(y6KHSC~NxTmR>6DPs5JgGq>A*b<(?}-l8&jC3XHk{e1zVLg
      zYIs0m9n5T&c=Lyr%Iwd}(7a)}6d5~49FK)c$7rKp8lYYtf=cg0rRiOaODHly3{@c7
      nqN8gUldIXM+n5%ZHOyt_Yj{z^%SM)OB(zp<ilG@^%c`ZnKV?JP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class b/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b375856f4d3796a58f13b1da54339af20c64387
      GIT binary patch
      literal 694
      zcwUWBT~8B16g{(Dy3$swZE39{pwYCY)d3_1XyZ!>iOHsrV0fQyH|>z!9kT2Kzrg?C
      zf9MNO1Ro5(`lAeYrv(!l6Cd{8JNMjk?#KTA^W!Igb*xx07~Tzom|yrFzc>-mi0>*V
      z_T3=b4+n18RsM+xMWjLtCd1QXaVEGYf+64UAG=OuA<a<I**KCO|69+H?#Mt!pBYm1
      z#u0<rRRcGJ6tX#3c*KymW#IN=zwd@$Mc;E73bt~DcO*iYyr)Ss8p%_Jn*Cp6wizr(
      zzld6^+YbkB&t@85EEH)s6%P6NM~4rT&wDg$76mNiP)3EJGS$56dZ12aBvrt$P`4iv
      z+l@m8L#-zZ&2&qU4Kjg-XQ&B6aOP0Oq2un!<N}NT*!4pqj@O_I(>F)I)F4l{B|A?q
      zPM(pUTfIW&Qo}j2X`NidW3stP0iGaFo{oTLQ}Q>eP9)zpf1&UlOD*jx%^MVYEiyai
      z`>J`3l7Vq*e6L;BoKK{;g(9|5#SY$}qkC;m^rpR%=sDp`M=vNch>^!jEYdnvn&A~i
      KCgDq3efbu7=9sep
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class b/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb3075b1939a92cd0474a31b91f1fee4cd50eb00
      GIT binary patch
      literal 4075
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class b/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebf27e41d19e0202c2f0f1b401a1a4919562d1a1
      GIT binary patch
      literal 939
      zcwT)|%Wl&^6g`uqaUO2n(g&25wzLKEfEvm&2nnJhMY5VjP*4Q|InLlXa_q<t2>c0O
      zz=lPUpp`&EWy?n)?o6!^g^I;^X6~GG?wxbTzkYxF0pK3?6{Hw8Y%kVF16Lmn&8Vjz
      zjE2Fk_#FCO-r|vh48wfid}Hda>DhX-)8`gNvkXgqVC!%1TYA?Y=mKsyVZ@Me<+N-_
      zQXDz1{wN5{cjC0hkbU5IPV|srwKRdK`>sp6j_=jVZPKWdTmfm!s>oxGAzdoB70fd%
      zUZ9!>!zC38as_Bu5|jdiW;h-{j0YVaJT*HmCye1+rrS0HN9>beCh9pM!<O-XAE@$z
      zH7=52<>KNQ@-~kQ?%7dKR^1RKZK&A9I^_zT_adbe@c}thYLty>4{HLyqhc2~h)-Gx
      zZn^_C1-Ga%({u%8hSFcK^r+!=`KTF3&DW3p*z1M|Ba08uuQB6@GX~b6`?dTyu=o>4
      z*pe4_-xER%YQyt*P<PER<e`GQ<mA6*F%&24!WQ);O=E^eO0<TaT$%>8h9X5;*~rid
      zuv0mOTKx&_1Li8#GiYD2@DW<&JG7(fDHdt_nP4d_(|3ggfg_?mCy^Jle~E3pqFJ0t
      zIb6mSK(1DCm69>6VLeH@FZV#M@&yYgxb|tRoRx7)Dyip~M2Q{;t|$B!p+y!=@YhbT
      yeTJLI&)Bgf6p2_$<mTjU`xJ383vZ%8ZCs#+3aZkd+p>&1*rT~1OVsHH&HVvF7{xpQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Expr.class b/libjava/classpath/lib/gnu/xml/xpath/Expr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc1e8c7c22aa4a5190b6dd5928a05a8cd4225e5f
      GIT binary patch
      literal 8763
      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
      bv%+@r%3u!R2Dy)U#QqWQM&5}Zfam`JYSMJq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/FalseFunction.class b/libjava/classpath/lib/gnu/xml/xpath/FalseFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c950ab1cc657860a3623ede39bb91cb9e08c155
      GIT binary patch
      literal 955
      zcwT)`+iuf95Iq|^i4y{)X(^Y`atFH-xCp5)t`HX`QY0&=3aSKe8+V(!a&{xf4*4h^
      zfR{=j@d11kV!XCOnn<<eo!OZ)XU@+2`TO%XfR}KpC^58#GIeL8$eoROa_V+?G!dOt
      z21%%76(&RTBA`7R#|)K&P=?8C2E%ra7|i$TSkz&l)<78*hBZHwqL+>aBL2t+ksumh
      z1w1<9ahTnUpqZS86NYX75)mGQC8j(|c|sMo?W=g`et8wR$7<yEsIS-UI{q1-ayQ~~
      z=zbWSi6HT6SjR>cO@{UVxpzuMg3AUraf6}UdF%Jv3>*Fmf|^zXB@;1AwDjec^zgAF
      z<*Z9yBqWgqk&?N<6)ldxIzz7xhFV6x0%xel;zYzk27-F*<cu>-Ao)m4#yk-2VUJwT
      z`Ah<)oL17h1VtlER6mJBIb_(h7sr)HJqu6i$tT(1ZHEN(RT>AP6YAAn*vE^k7JH=L
      zK=zgOU!i-IJeMrXBD?3XzLQfzoz995?%@iZjT}JsDp`hWSSyNsvL;#c2d;lxs@>PM
      zyLrB-&Act#)Oi!PaGNSJ?+$qeMO(OAFdtAR%UQp`KAmHGncdUuTRCRVZc$`MKj<Fr
      x7fkzPGgQg=y2SBjful6%DB%GfYK}*ETyQ)uhGaCKEDLEbjL4Xe=$S^@{{Y>(x9b1^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class b/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e630680de5c351cfa04ca47d48973a5f66319f3b
      GIT binary patch
      literal 1674
      zcwT)}Yg5xe6g^7|p)o?OMMWN3pGhmk_p68xN)?SLqE-Cjgs|2)A?buv`v?3te$W{$
      zDl?9s{ZWp0w~<F%`OxHc_ug~QIeRz1|NQs~;2d5m=wTSC`gOCh>Y0t29lbHjUJ!)k
      zy6;48;44TnWOgRZHfkY5!VaqpS*vre$j~?C`ffDMuwS>{+V5<$9=V=rxoc6;s4ygF
      zf)&08d$3o5#xSrmMZ*9FsX>)T3`6>y(Sq=7ziK{Oe#@PxsDfdi1_c?0gL*d(qRpV?
      z`h32=y3E6;_Oi!Gi4{1uSFuA^{Erut(HnP-Va(da2hx-z!IYM67o;MA!-C5Qan_AW
      zinxtw=tUnxKYwR?bvvRix^4ww)qH=!F;{|BbDkV1&UM$8Ku*IrjtG^<HJrdn2IZA6
      zg)p4%0@R6OloXsMwp$yepiXjC7$_*n|8re#JtVyv&R~L}_qC8sYW0#)QgI5Vkao7U
      zK%Od2;77a>NiW-JkO8%TJYsVcdEBQb=@+RT{3waGS&2G2Uf{P3>QvF~XoW#HG+YOP
      zs3CvNL+(4A+K#sn8nVE*SNU4acDT7PPhrt`De7)(n8r=Xi$sp>l23;h1&dMW`eMxW
      z?FZFbEh@N6)7QRyr|x<yJnRQ~&?n8*Rh02S*l3A)?gTO_B4b{|BRr-eyH?}=3d2NK
      zL;lmR*pDaVry-D@3Z!Rk0RMXZ7eG`#*HFSN*}53iLx-1Ld1-dsgh^44vox9s`i9Vi
      ziAkqO{1o)lN{XVpwA(}P!F(a{9cmALA+e71XIkpPetN2MyGU1k3R#K{w9+v|5oB}_
      zhX_o7W@6AX<%ldbzmDO2;VVYB@CGEEX(Vxra&K?LR5vkINtIj@mn+8nKottTbNMeA
      zEsTyearAn!Fr55`W7m2&aBAsL?>Fe{nEce%Y8Dz1%97HoY%KKWHe2QB>v~?&&*1_t
      zN+LO2q9{RiL%579)HsX1xQc5;i-~cLDV1nP<fk{lmL#nvrpUZ427MCQ+9oo+**Q&}
      zuSk(J=rQ7r*tk@TcI#ss)WSBX)FxC4cQ7NNXeeT+84@5WhBr`N%G_JWeSz7;!^}bx
      Vi%nG8Sym*p)+&mj8D7Y&rN3RiRm}hZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Function.class b/libjava/classpath/lib/gnu/xml/xpath/Function.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb4c96e1c393d5cdd1996531344e027ff293ca30
      GIT binary patch
      literal 156
      zcwRg8Z`VEs1_nb0PId++Mh3C;yi)y&+#LOig2a*xeYeuQ<dV$%Jaz^aMh1bb#Ii*F
      zoW#6zegCAa)Z`LI2A<;7633$S(%jU%l43>%VGSR!n$nWY9DSe6;u34kFh&Nh;QZ2}
      p<W#rJoK!{zUYL=3AeC&442%rS3?RS=w1Jg@4a8z#2a-$-8~_hPCp-WE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class b/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e78249cf237601e6abdf6cce12d3b03fd9431207
      GIT binary patch
      literal 3750
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class b/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..701fe7e5d19fb43d55e8a8c510eaa1425978401f
      GIT binary patch
      literal 1789
      zcwT)}U31e$6g?X&v8||y>+qETDU_D_15o*DDGs#Y#Nbvj(4=m|blOqmts_R3Jn|ac
      zpTaNTr4KLz4uP2t&-|!P@2-TMI1UfCu6FM|=j^$A_5Qy%{{py(jU*-*jy3(R*=u=b
      zuWgGhv)ZV1eMh)~pM=J6c<=6gTL>Qd3<*1IG90q@Zm;y(VToaC$@N`vlVL7rJ+dF$
      zW>>hLX}KLy%GVjRa?s$@n8qhb7z{IeQw+>tmI#_$5Phzik03nTZ<_ZuA8|*NlK7M%
      zyPsMIQ5s0%5W~^jIBk-C)^dGb>$Wy|xNdKHoS>}0vAwz-y7E0<)WnwCVOX#Z@`nzp
      zkqeZQ89k+r1WrgHC+Q%$d_7IVJ~J?hDTZXr7S0y$$irDd*fgJ9cFac5GHc{YDgRI&
      z;*5bW@FhcvKeoNDEl5soOmcO+IbTs@hJwn0=W!)?8fTF=P(YDXxSf?&Tl}r`J*0Oh
      z@CEM)WyUBEC52pV?PJrC!5Jy}l7Y*(LYaTM4ThyLYWElCt#L9XT{|FuSd}7=%iBga
      zFibjL;73-Bfg00oDQ?NYceu`=hx{)da^I28FGdJGRp8q#-f7zoHy_j}R4vHh2Lm^7
      zQ&EQu$3K!!Z4$wn2wh)JL~eIWqE%{1g)Zdi^6jqcHF%i9U1D(?IUOtbQC^y#)YaIB
      zlCR5*RRcBLqZzZ?ZSIrR=f}En09h%82V`tsBCScJ^$~y%Tn7Tk%DRCvmdVq#pc^{8
      z;>vlM9ZtptSxg@oIv0ItXg=i4rzoj@DOyQWbcc2)=s8;`CU&4t;2kpC$iASZ2^^+>
      zU2T`?d$5cn6dj4uaTLb@70qLTz?hu)7_>q;GD|OP<9MO?3X4O$86~Fz4R<NGx(ibu
      zVCqV$#5{%5G3M`7AuAUOMNRAD^VM_jaCQedhNnm-o<Y<88PU8-hpZ|5Q&Hsre*x!k
      zo^Vsh;sQ*{W^&YHCYP8d={Z+;iN)fHlYM-BT`SIOuW|AD2*nx<tSgEuQOST}E~b#t
      zReYne=kP5>3CQbpjc7I6r?H4>m+4(*W!{2qDC#~+)QTbJl)~HCWm#sxmmxk=Sw;gB
      zBi@MHkdD#5A3794{jm!wJ%CE%7H%sjx?eF=nPkg~`L|fv$llpTRbuvGW$*X#b05Eq
      Ss&o{z5f#PI48N+Z-~I=CRcY=3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class b/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..454957c448773301a176567a325746c6f4da1646
      GIT binary patch
      literal 2382
      zcwT)~U3U{z6y3K;Gf6toHc%l@5K(GA3IP$s2GF)NQXEQYOAA<mX*#r1lbJY~(Bjvl
      z|G_uk`r-q!G!<FP#gnY%Z}2Dh=(D=-&Crh|^&vAS_ny1Y+54Px=Z}AW{SCkwe50X5
      z;Lws&%dM45xwVSvFXs%?St`_=qHnv7hOj_l=l<AQ#S;jb-jcw6qjfJY5V>eOwtrb*
      zU&>f9ADOwDZ<lh0UG?+nS%L7VyJ&Tx3wt!^0(*D5=-7*H23WFufxgsux&cvQTDcnw
      zD^}6Z$05+GLqkH~K&o91GEBE&JJv+4ykL1V=0eFL6T>Z<rCHOn<^NzY>@V9@fqr9m
      z8AvHizVzy8<`YK<hh!>;nQ|&U8)IrmbaWyj5VanerJCt8NGfHx-coM$Y%#a!mU9yn
      zAV1!oS_p6GIEvRL$v1Vpg%bkW{i^TT4i&%92B;NfJMgqRsWf|AM+#}eQCrDRV4w|L
      zo5Nkm;-rQ_3efDX;}miNdk8scdY0qMMRrCi-HIG%&z;rq4q=)@=y(_B1iF0Ja91sF
      z)T{;|ZHSz~dpa)QeSvt@H$A^PXZy>tS6ZFZcVo!ol7@@yn62Fr*DYD5qvJ9@U~Oln
      zZjG^7jTVQzJUy&qM7nhrhK*_ZX+_uZtu<fuQ!_<&LB(aGh;dpa%i)tvAYEIE#K0w0
      zghXrJj8<%HhCDe3;;t;gq>h`IqDmB7Mw@wDu~gelYnUN{?b(c#tTL++1t%fOwjPpj
      zU6{sg9d~e7Kqtts&u|Mh*`WjN)N7Ym*ii*$ey-E#>^AM!W+XM-7dW_cV|?+|h{?V;
      zb<E?_IPRgBrS+_b7W=7aQO%=`AZzNVW0tLI#VlI6n-eryV|n<Yjv^M7+`OI+|BpZQ
      z@ZAO-4WID_X(l;RvrCJX7e$#g<$5ZP6}WQBE4#GWtn~17RKa3J%u2;_n9Iqw+Uyc8
      zAH^dUIxUgbB+}z1fL)973P7IxQim-EDL(DiyrNaG<rUYv{W3cxkK;72gAhLg97TCq
      z(bCi}%9R+ckGR{xcXuWmdWLuhULdrAo*%i?fqi_&)%F-K>jL)EdadD(K3Y)L0URWl
      z1Wg2>1^P&@cxD61O!jB=Z{h7#>0Ct^*XaB4Hq7`YW?ZF8k>vdtVE)Y$QNHIhKcPR{
      zf259ML*Z;P{0oi`b!M`43=Boq(VKmSjDQg=BqJ}OWncdLmoh@@=t)NEIGya|qmJ|E
      zwLa}T#GYbk9g(N_@X2PDr})(ZZa~K*GrWnzm|`w7IDuOjq<s!^yi;y7|2bUeoJkf_
      zjr=xQ%wrT+lrr<wub?>2Q}6;6khoVdPEPyzzDAr*#u$b{D?-F>{w7qZc##JRd`kqW
      z-QYR~Nb?3q^n3JWUtl_M>lx-caDDK1bPhfVBp~fS#TKLED!Y3`cz``vK$2s01dG)7
      zAqKdf!Lnj;tPx|A#UMUWERxJi=Gj4;(;MV;g$yLGp69rCM^&bd2OC(}iW^Z1l(*Hn
      zXA`@J3XQ8ebEE^rOF{3%0yOJ~CMa(kRBRI}h9we^P#lW@YLryuiR5#v+)0!+;7H6m
      bK2Ox@SgqrW<}6ngwB9%rKnr}OyuSVq$z28C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/LastFunction.class b/libjava/classpath/lib/gnu/xml/xpath/LastFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37765a7324a24ee8d8273ce9e836ebc1fface3c3
      GIT binary patch
      literal 933
      zcwT*xU2oGc6oy|n{aP5TD`UXEfQ^rI5`+l}E>a;OMx{zo(HNRE?%d3DnNqt-ozj26
      zpWy<oDlv&4z>h*4Cs8S_AW`g-<KySNe*N>;_a6Wb;8ajx*yzc`9rq)5JmC7=_4!b@
      z5*g@F$qI@L^}pBOj0Z78xf#k(zhtnS#tB35wK@|vEG#Xfgfhd5A4<_l`dtyf=iNvU
      z##aH4PIw%e|2$dL=i!iH%m23qkD)3?JW9Bx4UXfhxaWR)7Px1s?{=uI*KRlb3qIm*
      z#AVNY+r1Eh_9|FqsQpPFs)Rb)sNuSixJJF5LnFNsD5=F*rwZrMbiRQifvinYBqT#A
      zh?LBPEc9&ni&l9y7?uotp`5{v#YYhf83^jJlM%-$K=QsA4tOBkqYi~$;{yp8adLk1
      zKUHLvR>wLHWshOanYAU$dR082%Ztcgr$POXRT2lH6`H$Popt?**@>s5-GX^a=~t%z
      z3Pmo>%w+Z_sD7iM0Gq~gnmoW28ke&Iny=E#a1AT@=65L43)q*aoo;`gp#F7^@FFGb
      zXH_}DL^rUWuG_eYTeQPOw<)qHyMfJ|-=r0@R=or}onUL8-c0H1S<RGQCHi)HtR39R
      vNzZ9ERR!zI9OKmtqcCL@a2NMd#xC}9#^c;7tA2l8NNdI@YiiWPwCd4s8z``Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class b/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e5d22afd6ceb5c09fd071d591e2e6873196cfd9
      GIT binary patch
      literal 1830
      zcwU86TXWM!6#h1LB1aKPYTN)d*J4`9ZV;EYP@DoK#NePN4G9hbW*9|Tj2K1o$TE2P
      z$PeK)FMTL8)ZsGI;jJ_MQJtP$3ERY`eUQDYJ^S5ukN*DW?VkY7;=Y0rhGTWVWwy6H
      zv)!<x$EFoHwzp(&^GeHiA~*0Aq#3dw7cI0KAw$Xz>kK(-aIMTRHs|_obeUnlZauM|
      z+GZ<qJ=1cVQQ4?5r00VzK7k4BQ=l<Seq5qq5>r&vbbsZ<qZ?IG`k96-_S3x1BZklQ
      zsu3f5wqG}wH=l4PDyyIs4GLx$4(P+A3HB+=_4!h3dy|K2_NGT1S?RlGhpw0>FVoRu
      zx5;qA`k#o%Zkn>7(&@ckRitoK=s6~R)W%8Q2@RtdW61EQw%4*FV$yXh2<zsv^NzU{
      zY@16IPPsbV-zj{p;45<3W10^<k4q&@4LS^l@uut7Jst%<!%2M*#^}?z%43-&4PWA<
      zf>}D#Vb~&CQ^OgYWte#Ai4Y$8lmf%t5cSqDh;qN9)hHy9l%3)Pe#G06JcYeD6k8*p
      zWLcF)9w$F3N==jwm|_@pyugp+9AbIMWe~pSH2i=|3~I<9@sRrtC%U6CLR)SSE}IS8
      z;pU1s_OfwL?7OPrM_iVAs2TGAQBOx51+iVqRv!{V1{DTPW;!c&>xP1xbc6R6UTeAD
      z77sI6q%-I%S8)TDxMn|##u&smYNBFU!!KB&-n1JH?r$;7e)?(*l9I?(ItN1_-4RH&
      zJpdoLJ_#Up-qkRV>y-9t&<Y)1aYdue47Ai~fkAhT;-zmDHI`@@8i_|ihTe?RXpL4!
      z=>KrB^ad)!3rv?%Z!kTA_ekx~hiezPm$W{D1N5uP+N;RpCmf{FOuQF|@C6`8d3u;+
      zm`NBaR3oa?;x3L9OMl>a4{uUxn@1W8R9or8RJ)j})J?I8-byf^(~eR4FBD(l_+L;<
      zuTj{+J~1mDKGH$)Qo3{~{T|=E#_8X?Y+2d`EE4N2Vp=48OEP{NV|5t|IEVAnMS<47
      zlX?pHo<=FEP;mhl35kh2pXgbqxv0v&1KWr-DQpK5QcwqF3b7|6Hobx=+@|?TpXq#8
      zLY^dCl%}ac5|W!qkhz2))g!p_TNiyy3SaL-&2>?8bZploDqWxib(z$N9j9W{Om<;M
      m*toHgt?uHMc-g^H_I3wr9jy0E#54~ijTQqWGz=TE>fXN!@rtMb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae556d205b74ed8e25cad1f1f3c91bff224646ae
      GIT binary patch
      literal 1797
      zcwT)}TXWM!6#h1LB1aKPFm5O~+=?lZT~H~#08S|-5aJ>nh*Q&~4~!yjjTlAp$TIcx
      zu|I^@y!4^WPzTzX4sV^|M=_jT3ERX@A8hYx&-rfJ<2P^r{ujU{{H$Pt;ds;UnB5)E
      z?6&Oav01fu_)5ojA~*0Aq#3dwp5N}aLWYzbHW_l(=vkRzYRUE8=sLp@-Fjj_warfC
      zdZy*Jqq0$FNG}HsK7$z?QlK%+epsSm7IRe8c7Nl<qZ<`bdRRjiM`+*V5yMA%#fXtT
      z+i#j{+fTR?l~vG*1_cWYNA+>i1pA!j`n=lN+2-Mfz3mZ4)(RZktJ|R~_Q}I^^w@1P
      zELsPrLr&8a169rMx2Yn9lS0ZVX`wz%(#~j@#1un@KefG%9TADHTS3?~f4%IOjbO*D
      zQZD7ncx&fyUcskiaKN-2cpjHZ+8T5i4AX7bZ+bime1^07D2y?rv&LhYB@Lh8tbz;l
      zI>%v)R80+^;}XN<BcJ>;ERE4^jcYCsd#Obs$)nU1C-5WQjb!xuaVW4>K$)@%tvpUn
      zQk0h{9kD}#953+WAjg;;a|49qB@I_`jX@3hFFfSF!-?)>jL?-0!ezT<JKTIAUU=Eq
      z5`8x`e2eQ+4^2S+f9mNaM?q|tQq{+VkiiPgiRjY}1*>#n_m|x4xL$*Y8T>#tWub~Y
      zu*9XhCnjJN)2NGzH4XRifWYlmi~9|R3kP3>Q92S<qwEcV^rJwk?*n+xbs&J~{7J(y
      zZc)Oupc6WL#T65EczAX$igvnGlqUTZ(FBRvpq2P2$k3B%T5Ztj1pO`+ORu0ZJi~k`
      z^$PP7c#YI9{W<L+_ngiraFo7PS-XlnD)^XI3vn-w;W!{ydHOKPu#hmUP>rZki+eax
      zEd7Pk1H4(O?Jm-|N43=<Otp`xO5K#07@`F8cj}m=-$L;PPX7nB^b&<#91^?I;)x!L
      z*V3h9>DTz|B`*HiXUkF-uuiNsVp=Es4axXrjMZl>;0s)qE(&z^mDE$f*R)Deg^F)*
      zg^-xI;)$Mzv=>$Rf50|lO$yt^j1<&EnL-@Mh)r)|4qLR}95S8nOURRiE7CO0Lqf8e
      z1er?+QUikT{^+AmN#T!%P;-6M9KOd*iAr}TL0uy?qT^hQn#tbY6*lf{W-EKRD<1Yx
      b&93*b(Zj=miI}D#X|xz1p<!f6RBgQju7G}A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NameTest.class b/libjava/classpath/lib/gnu/xml/xpath/NameTest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7786e0bd9b7dfb9b0049fbd747e1de757ec68614
      GIT binary patch
      literal 2393
      zcwT)}TT@e46#jND1i}GhL^KsqTg6;j4qj?&P+Kph#s)+|tEpBG;Si$9Nk~ov+Zo4~
      zKJ+r<BO@<;>`cc8J5x~GnLgT?{-{pBwNHeIsW0d3z4qE`ee3(y+W-9f$6o*rp%#Kq
      zp}*iX%%yV4T&h~`yg6Z&?P<I2h7eGQzJ4Zlh2VntDD2AKvF=$*`rM(VUbXVJc}WgO
      z6%5O{pRMGrlIN^)3VxatI!+XwqI*hVZ~QF*a=FA+g}~X$tR03Qy#~VA!VvMq)h;M(
      zH4s9lthO2G@>bgo1ks_eC0lgtiAH(Gu1#ArB_@w*AXlwgQT9z^z@0DF6?SIZ*Uu8d
      zWy{Ua+x61|o0(a{whdEDaiOMFVMjb$sTIt{BYAVSQZ^?De>9Ux<hrpJ?}o5XA+q`0
      zz<b!Q&|R=y*-qcD+B(~m+!-=(5OLNdr>`iwayg^W7f)#V%#!64%qh24bPA)LNGj}}
      zcin2*G#3{ahZm0wOTNP+BO_9yQ#ZqSAHyMhKqQ;58!$0Kf$W8bRbnyQ<1HC3&fKx{
      z?r0*{iNovx9ZV1&HSnPz>>|R+nmt!s66;3>J{Ie%sswu&X$*xxVq^cSdzd<&G;j)^
      zFo(vWa4`O6p>J9eIf;MTz!}MFFs~M9(yF-<^qhguFxGP5DL2$cuQt50TO1zgPTK5F
      zv8olar6`KOWIOyeYDIBv6DA~KuE=p$X#+)%Sl3Yrf0qSrT(p`ta0MKNP|=ySmoCl`
      zN<5Ru$k8<e*TJUjsyAlpI)iAIX^Y>NFUpmh2EN8EYD}O7cV0Idar^3r<Ril7OBIKZ
      z;_bB0zWE%C3c0pSXE!nCD~@X~xvv-Byv=!Hd)PJG$;+e+zHRzt)cp6XnnI^r@oMNq
      znH(oY<cfj2B64`D(x~O_v7(G~&#S>5mau%?7=f>x9}#&KxQfV&q5oa_FHZ(h^J{Qd
      zf)4@y`;yPllN?w@B)NMP(PU~BeZSG}LqEU$j0GI0=P2)=Krc>W8@qJ}tx4}bb|MDo
      zmE=`=C7FGCCAs~yzJp!O%qIWh6-@q)=#%wS-qkZYwBb24Ln{oly&Tzm`SZ4ycVp1I
      ztgh2rm{?A|z#fHP1$9RIK%*U#ig|WGAsvV&Vu3ZJR<I{}h_)jNdbd^Yj_KWFg#Ax`
      zLD2t1N_mW6Ko)&#IGzqP!vtf2SnxSctTeqMEnc6dJ5tYaHXVv}#6k?WQO*QO2C}Ss
      z68mup!?;ZHr*MIzk>w0r#8<T5#5Fc|4!4lUZFY!-24=9x-2=?xA#8k)IXpr^({h7S
      zu=I7gmPyxnUHURfxS$DG#ur@qnKRBj;}kfLqs`S_PSXTeK}PK*f^m}mh;&YJC35q%
      zX=?O<5u_F4$rre!kWKxK!KCIan~J2@Fm-ak_cOXv1A*IX_%fS%x?cAnBS~w9P-df6
      z5Ji<}7ih0x2(GSUuNPaR2R-*`EPP|pLsl+miTRv1vCMHVl?^3dBAi^qjTQ8!USem8
      z%g5MCYj-lGg{3}$4F#gQx$hIjH{5@V16)h?elHsN9@i`mk@a!ilQZPX%Xyw0>E{2F
      zEhkco?$RO8FuPH!*Rl^=qPC9G995I3^C&i>9^+rUeE!XC|6NNA-+Bxm?&xzRZ$~r6
      ox#sjly?*V8mY#a8=xpHX)%^ZIW`E>!@l(r4Mb}5Fs=XKf1NIuk`v3p{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NamespaceTest.class b/libjava/classpath/lib/gnu/xml/xpath/NamespaceTest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc83c9834d3be8de175215fb7c3c43be238c1730
      GIT binary patch
      literal 2047
      zcwT)}TT@e46#jN@2f`84fY?;AwzZgqmV;t#O{lG6QEUpxtu+Pp5KbXZIDzCuVqg2@
      zBaiwAoay*rXNtGZ^au1ub^5J+0)&t<3}>&s_FCV%d~4;Of8YHL-~tK;0t%;A-I`Tj
      zFIn{s+gr0H?RBTRVHcb^r|KC9DZ~#Nh+ZMQDTegUJ+vR$b^Y${x>|SSF{@zO?&Dm!
      zV3&Mjl~)K-r4Sh{x<&7*!r9~z0Qr1sK_N6&UU8xbqT56i#|e>4Ep$TRJrf2xMCvio
      z=}RX}gb`6Vo-4Y}WNm%fsm$5SB?gb{L>BByQSJ?8$XhE`75Z~WG=X(Q*KMz`=2Wjq
      z?hMa5diGUK6&ek#!pUT=Tv@fYMhezSdEJ_14cUo_RK5#m@v(uA6k@IKCO*MAg|1b{
      zlk42$4M#_t6`uhU=aFP#^17Se{LF+xZ!)EOXq9Yt)tdDxMRzsZfi%ln^Sq6WWo>P3
      z4Q-7KNxX~0!^2XjTeYJ23_}J!XC|%gCM*n-C1<l{msre+WK)Ex<%dqe%ck-jxX3}!
      zV3Oe_6JJP%oy>5$;`~yqi}p(sUx{|ND#<;H3<eCav5EgBKZ>vMjRB5G-(hZq78Bp%
      z8sqC670xFQH{q}*m6zCKCT>VhCUer{P1_Yu0*;%wiCaw%KC1(5xNOsNj+4tLJ!-Ay
      zByyw7PAU=>EIBT}wMtP;+rStCGcV7brTr|9iMA=LaG_Loc_!PDlRLb$*(mp8L3XH%
      zAqr*JbL!r~3>w}Xc=G2|9Je5&eCDVfm0buvvMUN5UfHjp1NT^HS~~r}#G-UMI$N$)
      z3eI>@Z{mUV8WL>&8WD!SN<qYAfhomgx%JtpPlFaronMo;5&{VE>`lMMvGnO3#M1pc
      zh^Gg4(EA7V0rc_PM=an9Ewe-!MK?L_!Bw23HtqZ4eIx)aNnE8Ri5$?9#12yX0Zug{
      zTRg=ooc<H>7ki<6*XtVE^bH!&3a8sT$6B3lwsr2u8Q)n=(ONpOJ@^(MD*P^4k7*45
      zKTiFp3Ykzml?c7U;4_?yU!ZP8LErlH?Xtc-MdUfc!531*Q-nhz^uEHCOsD}8PJ|NS
      zHyC}^u!=QVUC%@Y-{8B9k%%M=g6$V_8*zSfOn#cXe}_$;;rh>F9CMh!Pxu~rYJTQz
      z5lj4Ya1UkN$0i=24jaE>8NZ=`Cs@(VSR?@~c#ouQqTJRE+9p;`m%WW2C<PfWg-J}2
      z)+JnONDhDFrYVJq+Rc2X*y<;2;tVAjs99#>GjoeJn)1J(?n;?bvvlV*=3llDRn)ol
      zHAZBAfPQ3!!tY&H>7!oesp$!}lI=EO1okij>`g>taBUhGHySe&_qmG1mtOib+~3cu
      XTQ5(QHF;c;TGJrK_Xf$<*316^S-Y25
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d143bfd8dd0b0b9d32a9eb6c31fd8095cc33a89f
      GIT binary patch
      literal 1848
      zcwU86TXWk)6#h1LB1ch^;F^@+-e}z-*`%VBOQ}OC4RPyKBu$e#q%hM_l*Ls?kvy_o
      zJUsG4c+CqBFau6YXPCY*!;k9p>`JwrScM1KyV`TU%h_}E@5{gb25=eQDHvlo*YrDP
      zch57sEjxN-uG)LN-Lf5iKXhvy--+D7SCD1MAC6n@wnB!C9X1&X*63N4VPets-RL^Q
      zaou`sKe5eD<a(y%wxg=iV8|{7yL<{$IHo{jm_8h$VHz_O)OLU3#G@N^5&D*fJdV@8
      z$s>lh^|}!wd$!*+*LEIrC#tHT6AcRH7*6PE(ggdA<@$WJv$w;;O?$^9j=U8(w%4#j
      zSL~CQ+31nmW+++zUnO#!rE*a8>`}WaGB_<Hosm`=lO*vy4da+#$nht(*Rdla({(Ed
      zo92&K9CJ6=GgqlT)q1+c3wU3_MKU^IS_(XmOC@a$It+%%w(B=N9tA$bd3_Yd7}B}H
      zW0@5V=Wt%Z0$pnwwy3VD;X_=eD|_g_uEWDl=rSy(7_ib%s>7x>qL6e_`4lJcBi@bV
      zT^z-s%C!P2F00eZ<76pAg%hD8z8J<GFYx1vrnpXN31NLv!{@lhpoaVh9&+E|M0Ywy
      z=*on?U2|P@K-G94@@{DO0@tM;8j0e6#M5m@L2Q@GtEUtphZ^-}KW~A`sv8P!Q!5{h
      zz1eZST^{DJLN{?ZL&YsvqTjv|Lo&)@G(^OjhPzm&Ikj6Y?(Z@zytzk4c}eO9-G(8M
      z?hB;G5rEfRZv+sT-)dOG*HrV3pc6X0=8B=4PaCgG0*3mI>P%lR8Zt3Hv=Wbk9KD&O
      z)h3;e(f`SE<r!3lUoczAJj3i5ULdni-?0M}ey8&>oS<J-#@;{?U*R2E&BeKx$Gd=B
      z73pD;VJ=~)QH+RE%Lh1BuKbC!1H5UeZ3$T{Q*3PrQ|)7_Qa4pj%vpl@Gi8j^f2sTj
      z&i(_n@)V_g922|B$x}U)uVpLq*%$cWDK7oiXUkI-utKbNh-roJEy?(CjMZl>;Uip;
      zE=qLviPTfVr?kpYgo@8_m5`Wd{zT6f?L}1aIoNirNn!h#l7f1uQV|C-V$<uG!9Ciq
      z51B6ZB@{`*RcV?gB_X+;6ta*IWCjFZ{@O>MkixfyPz!z30$tlpiAp_`pstY`k#QkL
      r&E=Q(g^gR=`T7Cwh?hOA=I`~e*~8YrL`?I&q|su4goa^TMm=~1jn|T(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NegativeExpr.class b/libjava/classpath/lib/gnu/xml/xpath/NegativeExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..486a7ecbb1e5aa02caff87a65cb8417612e78948
      GIT binary patch
      literal 1357
      zcwT)|ZBN=z6n?IN6|55-zQ3?nEi$dn%{LS`MH3Rjvbd1AFH0?VSW{Y3i}HPcXCJm?
      z!(}G>0sB$Q&b<(2fJ@W%^qzB`^E~IA{{Hjx7l0KUD(GRDEIC!ZR<`w8#qdw{JTDo(
      zb-@p66;DBsVfbIaIA;iQ`HJN_ohgRiZOgIzG{czIEg(@KfPJ^fBM6{hg#wi!pd|`n
      zFx*oSLNCK$&T@FZT0Y_4JLAOWL?q{$hFvf`OMEvEgZ`;?&M=+3TLls7;}?cqHGE3Y
      zw4Cde^vhLKFS=ztPc%~5Y$A7NTo}4-I3@kf$r(5Olpr^%;yz*#qBX8!0+S5N2S;*Z
      znC}AAiIT`Dm}ZFHIx=pRm`5;$Ss^`68nldPiDJ5r&uhL^+Kx;Os<<SSWy!L+Lr;<<
      zLOV)Q5V=`~A!ORF)6m>WtlMOS=4UDrSP+_*1iwCph{r#2k2@wO0<#UQnoM<!GC!{v
      zCfDEQ$xJ2Q3xww?bSz7T)TgQc#M5Ma_sI7wr$o!7wN9aNno_VqYt(+cSGDXS_xi9!
      zLKh=g$F|_Q!!V+CVk8P8Vpqj0yr$(eDi!V&85X;C<&IJ*0kN;*CDy1RM{d<K`Jp8?
      zaHw_HmP9(1sd)kV#c1wgnaK*#O}(U(Fj<G_p$mvCT+yBUj)AZA)q_EL-jkVY2x5a`
      zHwgh4ZA4=T!+^8|DoGdH*~I)r84A7Q3*Ru1oSvy;WGk4Q2>!s>X6PDI$K#>PE6jXp
      zE3^X@X#&}mh0>C2{H9PG5Acu*2<s6ZOB!)JAu9m!Ydpmqm5rev^U#PC6RXoClp&9Z
      zk6wcvOHy?tudsN_pjRSiS|mnqDo3gEoRp}`c7`R_M%%(ow3W|oP}vr!@C{TLt9T)y
      pXn0MiGzkzHv1_a!4{u%}B{1tq*Rj`5FfUQnMtl>M5p5B5@E6R_4%q+z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NodeTypeTest.class b/libjava/classpath/lib/gnu/xml/xpath/NodeTypeTest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19dd1e7824f191d509301f303321b3e5d12257c6
      GIT binary patch
      literal 2035
      zcwT)}>r)$56#v~kNC*+q2oy`{%PL7IjkdK_!lNw@n;HW(lr}hyE}LsuX0sbN8^n%J
      zI*#MN;0OKg@F6-DrZS^`@`Hbr<2iRjNCP#Qz4zR+=lss^JnsJU@9%#Acpa-D_ykUs
      zt$KQ^Vy3sMn!BFP+a<aDSye8}nj1nuApY!o)(Zq&G7%635=)w^ky&m-+tkvgW|h+g
      z*D<VeMxblbunc#aj1q<93T?B59)Z9MQFNnMU@%cQ>c^ISIm43qdSy*I%i5YLIe@Ke
      z=8EPRd~PZO?z&MEIGuZb5}646=;wF?0{%pDrJLfPj3S6GmR^b?gs?zQS-J;q%8pVC
      zk#0_9*PlopmtUx&x%#>!1}76a+bO3%y{e~6c101$WV6ZD9-PO^AzToMb-s_{6ox~1
      zMc{n<t0l+QWvxa5vR2J?>bh&#Ru3*>G>Qa91iFdUvgXhlK?;{b7$fjba#4)qGBrSc
      zQrAr4H;`!Kzqqy`bvKh-r2<;SL>0G_Jr$v9lc&g%WJ*gQY_;kW)J@x>J#idt?&!pD
      zt#sRR<(B*Gs5E^9B98o6I?~d)nrA%NErnuf6<Molx=i28lc;F>H#J9K_<yX3u4{X>
      z2xEpS!Q>OkFm92|JXoHkYU*~SA}u<GFi(B#EadIFVV0y5#@hlz)mCrDjl<?7MkAO*
      zmPhPvN2Oa6%@(;R-bJ3mYt^c>N&@4@nI2I!8Dzp(67Y>C8S1?#rZ5u5^7BbiK6H=H
      z9-?JUQ<gQe;A*a%-_m83%_6vueyV=Kt~<J1F!)lPXum#}8Gt?(RCD@h_z>fZLsE>d
      z4eeoi(+$4UJ#?BOD<AEl)Uen?^cUsQM{7i>C&)EJuE3yYh7*VbN@7@{z<QftMY7?b
      zeW^XXm>Pb9!PKQE7&-)vBS7mEtuy3ylN@g;@N=G93%suh&JwfskxX~5878g50>RX8
      z7~E-rdk*soFzOjJ0qJ{#kz<^P8XeAek99tSv!1hHCPC6|k3GdXf$M>Rz|YKgQ`v!X
      z0<LsCo6Tq8K*y|qMDIX=g`W`g?*w){U8+sT^!~;WZ)1Pq;#0gTu#4mmp1uDt?Fp(P
      zut-%}!XzGI7OTkNedO^0X+FdQX!r<g^w(jagwG-ICCd038!FptUPi6jZ&Qh0Q`v0O
      z6kSnm-^Nvv{1oF6*>_R@1m3{)W=ZGh%vP~|h$1Jzq-mHst6Oawq*yCn3^(wmYRX%b
      zi-*X_Y~}NJwzuAf;cH>|Xh<g&##F1(zY<^eFqx6+5~vQ|kMF^?=9!-xZ8ASo^i0I3
      z8}XZs`0a+*iqrd;E5;Z0aEH&kcqhI{%P#IU;)TXO?ics);7=T|y`W+|qRhS^ZeL*<
      c-_Wc-#vOc1{rHah@O|5?nXOrSs1S<(0hj!TU;qFB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8077365c42eb4adb32e9a55cdee049040b45a60c
      GIT binary patch
      literal 2184
      zcwUWFZBr9h6n<{rHY^LI5zz=LZ521+C0a|hiMA+8p^ZTdhN4!xge5F)b~Bre&GetN
      ze}FIj(9YPTl^LhsI@4d$U(xp5yDNlbb^0OXaPGO!d7g95J^AaOSFZtFK}|x4;X>7F
      zW?MBg+p25sZnkJUHO(}>*GqM+qAxYAifh=Gga||Oc;wwy-C+o8PL*M_(0`U^h}|$O
      z!~Klmgj(3sUTE2-Yna)B(QxzWGDBq1-qr^(h#?6I!|?GC1;ZGj1XbN-IH|6rJqS~?
      zs@c`8J-y=QWiY&_Ktht?lp4f=rx__2mR@YuwsdD*+cI@hQm`wUS=Jnb|L;2^?yk{b
      zm@53Af{?ffDW~{EuQC~7oZ+O#iM*OF4-m<-3ZjTH#Pt`N+0<N0r>X_psb;^sTFGwP
      zHA=Is=U0M7hVj0Fb2!iCeyHFAE;2~Z8m?nlRQu}zK>aA)z$I}rFX0kH>WIDPUbmm?
      z7RhzuNR!CPfgxGO6sEbN8HP)0KTy9XU6wG%FxGo;yScNYJ2GZ*hJ#*F@DZ*u4DD)-
      zd$yyC+znB-NBn$V!6&%JFktB|R~*u)sR2?r;-?C7;6ta?>$<hgFcUzv|E@<#Al&2#
      zG_B+6;ydFO6x`yp;;votn;=ze%O#RxwtBlkg6cNOVk=~sTtt}0fQR<AiGmu(4}9Vb
      zp$4IkcTHPQzj&Ih<_^Q@w{d5PR!rOShA&`30^ScFz6T0cai2kUbVAXsicS>Ic?d0W
      z!P07agFlb#T9M2=?_L;X1tqKtvCbRj!SQiCqK9m~d1<raOifF8Lhrg?jA3r`@q9{;
      zulJ6O$M}|ys>XLl&|vb23U4$`$ZTL4-ja}5QgK<D1MG4DqX*y}Bjy3{n+sIOlHGJ@
      zl^A^Mj0f+RIgWwL^x(s^t4S!|A7t^5ggAKy$ohg#L-ak8nGXLBIfOqD?jZ3Cxk5NW
      ze`RsJK%4XyM#&oU!f}!;2<sG16Bq|g`k+e`!=vO(2dT{Tub4Q(8y0jH5y4%GUFyP=
      z4>4syl`6$omWRnAbR$k@X67X({)EK#F~rU3iL-4?<|5On$Zz-{7d^n#W-6LgJILf>
      z2bkULAe)m?u{JLMfSHuAK5pas#y-YUQev`=8yj6-5%}Z3f2X82KL7cU^&I`g0AG^U
      zuZU3rGq{I&6mb*xv5YnHmiVONDcL*N5UL({d=FKbxJ|m5u<nrhkg%4>3KQ-_YQ-{X
      zJWt3glqpI%76`XMm6*ph@)oJWjK3ql%6BN5V<Zm1Hbp7gSfkz@v5tvsPr7QHIAoI`
      zHp`;MoVSO#?DuWduW@)EgFf)XpL$TWF4WOO)KSv@wLqoy=A*8XK7Qk(hZ;|A?qmD_
      jk2jOwbnuKj+t^C#ZB*OX>m|P<(kLE)pN8SNh%)~J4tndD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a62c05e96466e5ea958cc85ab1fd13490feadd38
      GIT binary patch
      literal 1639
      zcwTi>+fvg|6kUggUP6RgL`6ZoleR)s#0vpME>$!Z73>VYI3YdOI3ekT6#FZFfiFI&
      zqs7aN<Fg;-xKA3Pw&kJC&N*wZz4ki$<oBQNKLK1pDS;k_;fh<+>RXOhubROtt>^`X
      znrj8N=O!RAWd7e?u2+4AnCVv-ju@SLIzxQccJ1Ic!=P%sHg`;|7TAtv*xP}gEip)o
      zUYYly4~G&^82bN*DCoxk6{zrlVMtxcHYps_t!S&8uelZIG8hgkNFc*-OzoyYlo>E=
      zmltbWo7`VFHyuu$7@lQ1CDXUXd$cG8uk3Axlg5EAP)8EAOQ3XnJ2GN8A(WgX#cH;c
      zB4wirdJ$(x@*UHunE};MRm1Zu+M6j$D|=hSUFP~q_s(KCqu><AM33hboW})Xda>zw
      z4mVwf@h(iAG}-4Vj3b+XN=EJPE;Lyb<dA3RE!;KMmg$g;4ume!ClpKyoV5P*8Nm{k
      z=LWnUgf_NIpzf<48N^m7aySW%QS$=Yp^XY#j^{RA=~UkBG=(d-6kNv*2HEE?xzAmT
      zQ@K-3hI*Lbnp=FkYFb=-QlyYf5P5S7W}t_9d~wPL<H_g1TMK;K6_c&Do=$UBPhgP-
      zu6=o-W;<o>CqX7jt{12>7I04t#eFfroiy2!Ks-?J5C&Zqvs&eDnPH-<9S2m?lPHqi
      zS;6#JFg<A__*d&d0+G3<U><kL)HSc>TfAV43z2Ra{YjCH%QTBI`e4wW7;TEgFM%Yj
      zq$s*ayFK(A$mL_-Aot)GV!KFxq@^AV(!U&T&(O`*afG6yO*n=qLKq#xaUv6>nTWJN
      z7=e;=yBN;pzhGpauRoMC2MKowJKw@7?{UhZRPspNriimf8NKuz%YDX3eq^+P(=$?j
      zSo(^yZ;|?hi|-Ksgi9aVgfBtCa#-YAGkvef7_`tG5naL65Iu$|iei*ANcd?g$;9YJ
      z5|-#)pwd6UHbNN<+$6L1YsN#q2Q5vd_v)po-gMX$4Rypg7a5g`*k<3iQLVO6rS_;&
      zxJ~W}DjI=^YLR4%jNu<x*vKsHq98aMSjjwUV6}m#?JCzpYNeSJQ8QW<sAqox{X$T}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49843d274dd2115f13207b7e4ce10ca9a7034c6c
      GIT binary patch
      literal 1651
      zcwT)}+fvg|6kUfFLSuwl5Jm7Vn6^T^-|7`AT8%{oJA)58AskDbkaR+-9sL(yeepqO
      zw5ZHDzB%JZIqq{3xwO@XB>SAR_F8+d?Bv()Z{Go&LPbFr!)Vp38;up$Xw<B5*(ldn
      z7I`pJ_w3N|Jq1aI%yz`BMlE1SSV5Ix&}=^|F!Wq;JSV)yFrb?+te2Ki4;|Mqoz<|A
      ztuQ2~{UyEwJFruM#?ZGNqM;A{1X^`obJEeXB>~-~A%g*0S9!>=TQ6lJX4mqn#_Zw?
      zZifXGbfQ7Q5W^n5Q)xoI-*h}4wK;Dsx}=dYecN&?R^W(ryqOG_omGYd=KuVmUXx@5
      z;nJ;*sz~5~DCVGSqLQNG4r}N}4?{11X}NVPBpF>d{h(^RI%6A4{)$m1X9}gx%_T6V
      z;Ruc@I8J(-fTCZgibeBT4LRf)lxLnSli_#=`gZPYQN=hWM75LDkzN!&DYoy0yb(%&
      zS~;kvnon)B5=Ace=uRyOXd5|0x9$2~)N8wRr`IHUy`<qhE-<J8f6fE$*<8Ghh@l}9
      zJZpuo)-0PF56cu5vQI?bRSlO>ko8diBmcqEdkFoxFmOCE$@*5$quqjnX_}<g?Wwxs
      zF7cojx5%W(XkEn=ZVUhJh~aE!%2ov8u7-Os>HDy1HSR4jOmuYQAA*Hml*#d|V0s{!
      z9<~tt)%qua$ehz~12@UnIlms*e8v&OKCpePCj|jc(nKZbPeH>b#+D*+Dd?r06h-rN
      z+C|UNT>dLmhPO!P6JL?;!Ve_g(Vt@tgCFU<3w!9UN^A)uxQo3M4Mn*a#y&tsBXlvT
      zFcd4y5JsTX+#2@h@}F^Nldn(KW+I6)VQ05+svDfDteZR&pH0m9hBCV8IhOl`LqDOg
      zci1Vy{OJBBj$KZ!V|*b$ocscP4JSUdls`xDyp%c{k!(nf!H|ZD=oC&%^cc=il%SkG
      z!k;5yCT2P=q)2OlO0R=0$O@XcNS1AC_DH^kEv=<D^wOkvPPRtV9y4Bz?MlULSKhZ!
      zJ>5c;+Mr6|8m>z!8jP4~n#vX#!|Rw@$Q0KwBRHEVW$rgI+r*>RDs4%vMM*I=Bd-MN
      F@gIvBQ?dX6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/OrExpr.class b/libjava/classpath/lib/gnu/xml/xpath/OrExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f693efc63d487034b4be8ca963769de9f6d196aa
      GIT binary patch
      literal 1544
      zcwT)}ZBNrs7(IoK!K^qDkv9=v(7k|FQ9-7FC<s^~3X<R#Q^s}Fly)f{?yu-)6Tk2Q
      zi4G%)KfoVlJhyECw_%ptKKFS!&$;J5cfbGq`~~1PUc}L$puOOf^zx>ymy4#qp)Y#V
      z<)Rmds-W%Pi1aIHv^Ta`WYorT40<xy^w4rFe_TN}RWGfcFTJ8bed4Z*1R9}fXvS%x
      zrP3=cP;f>=3{BEHt09gidJM}E3#H99;VqkMwjfu-&71a$=~;3gIaPndBA*VU-VsT+
      zS!|nj$@H0;N*S(K&_4|4^>uesUm%s-++5mtZ*H5qZ8`;gaqYdx`#DLlOG5`PBuJ=7
      zLoY58>Ft{9+QM`c+^B<83zL4+f=jp@M?X(>6rBoDG+e<|@?U=SdRoCbqb4CIs|Pe(
      zmuaz?$Ho%#;(6EcMcEJ3sHQ+Ui!Q}b=Hwj;5>;*SF37DRM@Y{qY%mzh+pZJJQ+tGZ
      z7b)erqd~_lDbHPblPwAoo_Hrb;p7Dw^o3aEpwuxp#a7YG3;pE+P3j^MMm5~SeG=U^
      zIdVP!$*1(byX1S8Q{Yslj$c^l&Beh<yio0)Dp~fr@Dg|gO)if$OyLP<*DMx=v#wyM
      z?uk!;$u)!etNpImFTtKku-Ph%h|b9vvT|NS4i72Vl3VifV#bnVd@3B+o3fD4ma_2q
      zHXtcq1+Aof6a2;)q1s#%+^sT0=AFsx<5VX59j%$c??`?PO53=$LFGEa^#O~<(8|u|
      z=;;s3(2ny!V97R0V97=ev^o7zo6oG5%||oe(3<VNSV8BQn(b15p!*}@d+6I`AQ=T>
      z*{)a+Xkp+Bn)YyQ_mEEq`v4QrFv-qS=)zMBU^?J59`-ooG>RKY1)N5aMurH|%F^P$
      z2L|~YBCi3~-lQdk;Xp==4en)r=K++}fOQ481CspiWB7<sc<T9pK}T3~$e@!9h8S1m
      zphn0G%#m5$5$eb%BqLy&vBn*BrwV)V7<Ts|b~kTiEWqY0MA)-|?m*uG9<A<ULbj-2
      dvh8UFGqMNm3g)W0F9-NqSQ+6fcphXKe*xa@J4*ln
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class b/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3204f7ab7ac12ad1f432808dc8289cd7817f813e
      GIT binary patch
      literal 1627
      zcwU8+-E-4M6vfXbb{rc4AwYtGK%sm{Nr@Uh+7b~$;v{WABtV!j>Dxx$CSqjCBg?_<
      zf5Id0eW0Dz>5v(QzV?sma8@=U*rpwi<kjll-#vTouKxM=&07FdSj(YL;QUrtw;Pqf
      zZd7HmZ9kH+3X^SB^M6t0#YQ#GAtNySX^@^5$f)%1gxmen5g54RhkkNbVASjtV678S
      zipr{hejGB8gCWpwTI+cT95Il^fWT4L57kP&vZ>;yax+jA;zphf)@AJL=k{bK+4gG!
      z7u^3@3RMlN9U0VR!YtEtqj<}Hal^CAQN>=N7H4_ca-Yi`X$LagvR5~sD=%@h!Vv?<
      zaUzFPTyGjsPyE0xMM1y_KMHd=EpYtfo4GiaKf8V{DWHh6dU<04Mbqt->$Dbq-oO{Q
      zK)=e7SFcd{YFt)vDXLUuER%>%k9?B;VV?TF#N`|=37qVOuNk<4t8}Rr#fgA*P=r?K
      z^rq?t<-90NR3k}!@AQi8sz$V3EOQj7koQ=np<NELc)&^mL!Gq+vR)8{t#)+fS-p0S
      zZpTf7`}cZ*u6?7u9TX_U>L<m1dy10IwOEZbHIx-qt4dGVk5@Q!tRFRD+Q7H?j+%EQ
      zojvm(@!T{?w3ftvxW(q12RBG-*2&=>+txWfU-ttxa1itK$ShzM3tH<U+hle#taTmn
      zy@4M<KL=#Bs=~6swVtkgrj#>?2drgj(nC#J=>UAF^;v+<d}Lq-Jhz3ls2+Q2$=640
      zr0XzEY6iY$3;OvrVQck~<tWRG9pOx#qb2n52NcG4c}@I@!@u#V4@Y@Fl4edLgFB3!
      zApsa^MdKKTfpny)T$Db3ZRRUx=t@)Lf8g-M*|8>0PG^dlzcKm}V|yrW6f^HIx{EW@
      z*<$v0ocjwGi&-7<dcXAP6fg$^^TaOTA{H@Dv6D1S%edPrurFf@CM=fMqj5~6BB$^b
      zNBv}6#x-VUNHJj3k}M;+J=<~@_(sPM?Llm$lAE}(i(4Pn45Z|T2Mie6uRO%clc@pR
      zu5IE>+thrUcKg>3)RP0K{5~oVhfZr0``bp9xB#6|+{5g~@Z2s+n%TtC@cky-CRRID
      RK1<O?E2)hZc$`K(c@N@<WH<l-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Path.class b/libjava/classpath/lib/gnu/xml/xpath/Path.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dfbb9f355735ebfc0f52cf0c69863972fd849dc
      GIT binary patch
      literal 356
      zcwTLfK}!QM6olus>u$SNTZ`U3wjPY)af=9ro|Ymgy{FsIMzR};+1kJ5N$}tg@JER+
      ztG61+yv$_aOTNB8J^@@~n4m=%uB%$?N+Wj9(r?5)OM-}SwwHV5DndNbmG-xU_Gr8y
      zL{qy`Dcb1vaDbT5&vm8db-7gTQ7(;QLT(Fb7Sie9|H8;`^b6rM-^XW!j@n97OV7o-
      zQEuH@yxtUIWlJ$<T$Vq{trWG_Mog_Ss_@!Y+4%pMkUrSj6>6pfxEm0cp&6Zne}S-C
      ry!rL)6Fv!^6q1W~bl#fllr?U`D;%=+ehWO0fCxB7pFLsFv`>Bj6@yZ2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Pattern.class b/libjava/classpath/lib/gnu/xml/xpath/Pattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4e620f6ac07d4f1928b7bca0c70e09c8014bb19
      GIT binary patch
      literal 318
      zcwTK#!A`<J5Pbus)mi~bh-Yu$!Hw|<@nYoE5EBgtZ%f(GHEoxyTj_6kGV$OC_)&&w
      z;X>jZ-rG0xc4jiaf8Rd<ZZQbZA`I6>DXKgZ)keBhJW1!2EdqFi!Ex!a+E{`=)rEHV
      zg!X8>Ab1aEr9!lE8leN9(2I4U=4HNA_C+o;#cg7f$ZR34uJs}5xm3RsF5`d4PY6LS
      zU6LyH3`eoCYq7mc#LDDi&I2doS3>w~N}H&euKPuYpEqyvLwZ->{ZL1XU%VG%z)CO^
      ibLaXCC!b9@Wb~V)z!_t-H!z>0K0+5g)`WiJzSsc@n?ynY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/PositionFunction.class b/libjava/classpath/lib/gnu/xml/xpath/PositionFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3332267dea00350dc3fb454f583821adc823a62
      GIT binary patch
      literal 949
      zcwT*x+iuf95QhJabE+vcgti=7LODB?z*I<Z;Rp#)B1N)7p{P>1+qg^W%GtFXJLC;`
      z87|-|5|wxW9ttsQTOl}79oaKG`|mfie}4b@`3t}vtQtxTt)Wcp=_s(LA&*b(12y(z
      zU&(GFJsoQ(Gc^C#yq$&-L$%{eKYqnvSnVT*@*8y`Oc+>MMFmxcHP@G-pNs|~`p5@?
      zAdIU#9vtz=*Xz7kj!*qD!;X9L91cTWOn8v+m=0N%tD>R(<+*2{sFB^L)=sb2cF*{P
      z+X0tD``zG7c(GH%RffjD^1e!_tBD4#=`q)-zqPN&uX#$wVj8DY7SVLaP|=XAM_C{w
      zL&Xb}%m!KN*>;!ha!fF+X!w$x!HmRb5eexD>e0%G(-a{2NQ^`73HyDYQm6fi2AFVi
      zf9nDjSrx0pIP&F?VclA^C967hJfyZ^?y=RT#i2?fPjr3#pKKJ}f2s+1Mt3lvpGx{x
      zX<ehtrpR<<cZT{8N=h*4TTP35xJ2L8OhEB6MTRR_%MX7*nSOwIj>hr!*BP4M3xt;`
      zVK-Cd1f6YQGu=0F9XIHN&Tdj>Q1uqJa(;()^j`fO?0AOlBE6H+H#5zgUMKqP^ja<4
      w$w@CLYE{YjR$#ndV3g*J5_WJmW!%I4obe>L%4j|)4$@sP%9tDVC{;cF3m=}hjsO4v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Predicate.class b/libjava/classpath/lib/gnu/xml/xpath/Predicate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dd2338f206cf1e2fecbfb0b69f82103c46ed7a6
      GIT binary patch
      literal 1545
      zcwUW^ZBNrs6vzLU6~<<PIY69%qM~d}s5nGnfbuBQ@t}|;V2ml<6-v5xDIM->_|kWN
      z0A6UK!$@NEtslyGZdV6v!<ePZ?Y-yx&i_2z{`&pxJAe_a`O(18wPO~PV$M*CdDYof
      z)@+{DHPzvMNDSe#hZ}s~VUTz+Z!>hH&mJz&ZjzyCQa5#Hn!wR|2C)nQ=Bz9a!iNho
      z{E!)Z(O4z`hE^GkXkutf>n2|*<hHrJp>7+TgrqG^H8QHLi+68Ra(4B7hDiFH6iAIf
      zr#jj$-*@F$_Kxy4p($A_r>u~KWGWTg3gQwj`_WaCtdJ`sf-4No{6IAdL}ZB8$E5ev
      z1646pb4OX--s75+^rMF%bh15f6-aat-MA{_8v2N;n@)zf+$})QBSCi>~<^|oah
      zTs0X6>IAHf7Tcn7m~`frs@k3c<SnWJOVP^UMD^L+5vDaDhDOb>%yOo+VbZk&krcue
      z8Fz5^|D4=82vWQ6iS{>BlQhe8c##AJZT^Pa+|)$Ju9jIv*VR;Wd_S*hTzS4i%VfE6
      z4`htuKBaS@(nNOu!=7sDSnH0hn>#eR(bEkp?^462XiBQLXA8QK<#sb3QTbj5F^L(W
      zdX}LxTFZ!KgvGp!1uW84Q1f|iW*LU+R^^;f$!083tXG2cRFIxk0sh817a%;BWlVsw
      z4z61TTjPtmxG=4it1&Em(ML`2(YJsGRa`t;HPS;pp`8G&7STXIAUJqLPy7p7KG9nP
      z+UUR4^&EqQhh#fW1W-d<Yg|Maa94s#$)Ft_9`haTi71J|&uEGF^p?;$Aw{I0=zfp(
      zi1Y*9CG_@uK%;c%JB*(geZ}>|O7Jj+1*RZln!q#Y$DAu*w2ZC@NZ=N3Q(&<gK-86&
      zK#W#C@*Th+;zVLJyF;G5d3qOCp<}R3H+l)fM;Q57iQVM#mQE!cs>BNsJ?<t<W9bp6
      zydnlX+So}NWz_O1RG@+iP+iAe6!p<V&5>;35jn=>W_bDtj|H=Yx$u(`QYECTRlac1
      Oa@om4Gpx8)tA7A*?@B!Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/RelationalExpr.class b/libjava/classpath/lib/gnu/xml/xpath/RelationalExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1534ca8840db3811f945686fe6721df4c143b38
      GIT binary patch
      literal 1897
      zcwT)}TUQ%Z7~LlqGNfa<q?8~~ski3RHobT&0cs&oW7A-PqC{;S!U2Xg%*0`WJo+z`
      zx_s_SA8MCCSG$%!z#rvupED6CAP>y>@?G}X-~P_W-~YV&3&3^A1R??hD{ix}weA$Q
      z8dk7cn30YZ*q&=SlUofxftWz|n;FV45Or2J1kP2C$BGR4Dj0DB0a2qNe-vmNv0XbD
      z6S$H&spuqMt(Kh^h)sA)GKnZUOq@X{(KFfkc955eINFqT&O{=#&YLjMuB^0)B-#Z!
      zDz+=D&Gkj;&smF(WL?FpTh6@Y+v<1A84Ffza=uVGO%AqZ$W6;>S^-NknTqGH6n?r{
      zFD!ZMg(_(l%jIlk&DyjIj^(ZtrWe;_Jt!*jLna1sAxUEIns^WI3nU)9nw7w%6M&AR
      zWJ~S%5Saun33MGq$34%HmTMx59NU<ic{nMMsvJuoi_5s0z!ibcgJ8*PvV9W;ToXvz
      z8)bJ{jY$cTDP?Qw#v3MXD(Lvsoysh+6LrrG<W``CJW89>X?WC8l+_cFE^!>WtaFbw
      zL`dIWSq;=nVWKF}@M*;Bj^~E@9v9)HccSziH*p)ED}77qnV9Uxm&?+ZZe6OmhFDv=
      z)V0>-M#HMh!h<T!Vz#CbzA!O~Dbn7wIFtTU^7#q^Z#M94cZF{+b9myRx0paxp!cYI
      zylFd2(of<(I@ITZi5bjtHLONMx=VUBPU!f5V2TDFQnew4^tD3z<_JKG%V_{yPBCKO
      zJ04>O9`P78@Phyp=%R^xs8GmRuj$w2l&$t8_2x!gRoJ*j*`xfQ5<{n2Nm`w1A@#|1
      z)MrwkasF{S%zum4&xmNx+qpfQ&E<E{mAkxyRBmtwJ-MFP4toD!G=e^rqw#L>jv|pp
      za2BITVT`fci~%2oNa)7^pe@BjXiIU4XiKq)YD@8nG0v?F*@z^6CmC~df1)ctFu03%
      zhGVo-Ejym?i@n6fTW$HixH=8SdbiP$Zc7`#JVD|GK6p-7&o+9M>(}3KCT+Y#ejEKN
      zq|<(<uTA@O`U_ltzTe>u>H<vgTSA&|aR^h$;4VHznLXdbIA=10Y0P5|%lxikL3cjG
      zuE=`7bC+6ttUGt{39BR8`ixeT*o)L~n4PAHP^1;-Jyq&CN{uqSag3J1YHm|&N^>ps
      zhF(J~Xl-_JN9z)vJxYf?OdNC)>i$TxJ0I5Wvl}A2VaA2pw$=?*=IHsf(C<D$XX^r*
      z@#wSIvm@B`L)eFBUdERin-8~z?J-AHOuokbg*{BGD|Yc!_uMY#!)Y1a3r`X6{x)><
      hD#!QA@tBVP(o!thg>|&WRZYVTFKE#aB&V{L{soHLfNB5$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Root.class b/libjava/classpath/lib/gnu/xml/xpath/Root.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f72433e704e429d75018a9a799ef9d2c29cfd404
      GIT binary patch
      literal 1538
      zcwT)}O;Zy=5Pg#bHXEW~B#2`01C@LTE21a{5e=~lD+Vwrs_<eh%NUm0?8eOo;!pAB
      z%?k(hAbwO?c=bnF_H5P=lhquidwY7`>weRdpTE9-2QY)YgaAXVVm6d!)lix>)!9*=
      zS(YOq)DvH$g`s~zH+5%`A(%{UFobf}Hjf|(If_2?GYl4VlNTG+EpC_9ErSzG!O~P?
      zL$!7B?FB>5j$UUNF7$F|8KkP}Xgiz|;>m(#SCsu(P1&}pN|D&IspkVYh0_vZ3`5<!
      zQ4Ax_Fi_!+_$<G!akthIaheox>*+>h2=hJFXs8bDCw(YaR#Jssbx&0c)vPG1Tf1Cy
      zvNFbykZ_)=boUyLZYVj+FlbY^%z6~#xWFLipRScRUzGA?q0Vt;i96W{7%oLIipva3
      zKD-4#;B3l2OuA{7>F}mQ9oH;UkFAhra8p8(wC+S-wzNi-n~qR29YqG$NlVgfb>HOn
      zpG}6*WUAnIj0zvabQB71P=j^dtQg#}OooYMuTH71rX}2@YW!MY2$)p%$iMmvZd;nz
      z_AQB_PctmDb%Q=d{5@&;X3cixm&HW%q%%Zp{*v3=)WjH$w-B2yfT>n_y{2khSuc`H
      z^GKELsW!vdf3j%C9INEmq!o3a?3|}oG#kbvx-x~ROIE|y_+wqX6j{89X^~71mWUvJ
      z5_$C8XqD(oA<M}2r4JGQKu!P=TKnDLECy(ewi3vmAj@zPgWlmBWe3O(X1-vEhCqIc
      zzR*GNpbKW+g&Aq3dN9Hp!5No*6lXoab*eE$R!(O=;@l@(eBTAN=t8AiNo^<@6E2kS
      zuHdRmB;y)+qGfs^9{ek^;$$N81CwtM$sA$w9b~FL#Za93jHx5c98<>J<Qz4;O#ciy
      z#F6iyPqgV1ZTbXBc8gBO5yoxI5k12l-1X=eJh{T(z%~yt-`(7k4xPen^e~~{b9KrR
      wLJMh*tjG%VXuaBj5olusaG#_T7!R=IVN7{9AB;WhE~MOX@4@!H=iIF2-<%yX6aWAK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class b/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69af4c9bc7ec8b827aa4bf6bd8a33d7ba81c31e1
      GIT binary patch
      literal 1759
      zcwT)}?Q+{h6g?Z;QLKo>xM`D+q<j<Erd2=qYTXK&xG65OOPgYvLMe)}b=6TMk1Q2G
      z18)E?zzo9=m;ooynNEN6Pz-lhs*~7mf7rU(z4zR6&hFK}|NZk6z**P|CK#65er)u1
      zJ)_sLqld<=Aoh1QV&93}z*mrEC>~9?+UtZ289Qt<%vqy*Rffq+uJ1-B!!g}@WIwiz
      zIC4G1a=THr)MCi42RnQk(|ARJ#xQd<MZ*kcsX?1Z49E3)DS_~8zir&ue#D)qs)FHF
      z4GM}3^ZGarqRp)3`n(zMZu9WAz3p*QVg-)vwd~Lp@9APTdgyi;R;-u!K$@~7n9>Tv
      zf>dPin&7fTob^&GPux~C<S@xF#UI;VY)8~Z*R3FI8$X<PjGbWDXp#ff`gm;_ys6<N
      zUKc9g*6<GAWl-+>QV7H97@$#<QccAwN(ywMe6U*!V$!Ukj0!`}?KbTuDbs7EyCVIR
      zhSOq0b-Q){fjB}gmd^-vXOp~^iu3qT!3WQeO~N+FFbyB!V*(9@Z%OiX;_U=}#CwtS
      zewa2H)(OZ{R;S40KK+wlB6UO$CDAskQ3J;d{KU{v)#I*$Ftn!O3f4$j$RF^K`wpkJ
      zCliF8Eb#4J-tE{9H*Pj5tO`dm_*}zPY)D>Y{nAVF>9C_<GYVZ_jD>#qV3XCV0`hu(
      zczG>$y&WD-;Y%7D>7A~kfm_1!O>zH6fy5y+@Rf!ZzNR9()8WGLQ)3NzLBHx0w#d(t
      zK>9`?eLDp3yw?i>MCErHzJNuxZU%Aa@C{cE*^$XPE$VTGu5yOHIdmDtWKbl23Z`f!
      zPti5nouKDzxsv%C>I9x4vxmYTv^0TZ^smb8EA(kt!yH8?l5`xW2r`<-0)Yw8VhXxJ
      zIU-9f?_sfA`3uVjcr%ht4Oz;{Q~Lu<b%3c#s^pRw#uW2cs!-@@mjA?ZWqGBKH!fx?
      zi`jj=bs@Kq+sAu9V_H1l{|U2Cu)4L7+k^273Q4?=b3fAi?*kqus0YYI4Hj`|(6Bdg
      znVy1=DNQm5d`x_T3sR$ri>OMrCN5Ewq55-FXA-+P8tzZ=8R0T<=TqK7smLcDY)f+Q
      zW1Sp6U@|F@HxD^c7<4XBXHz;s(~u%wPTkF?XxDxlg1U1EDnEeAqmJtmif&E{wN3&=
      n#o`k*wu(3Qa8qFRal3e@kGp-`8)kV=LTgD;3e9j|W_|xZj{IpX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Selector.class b/libjava/classpath/lib/gnu/xml/xpath/Selector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d31e58ca0ee5f313c357b859f251f87da939a6be
      GIT binary patch
      literal 8831
      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
      XnO8dHbQV;R<&2qxpVg~`a>joHZta{4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class b/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e44af9f17ba3891b25c95adc6be3cc0b319b7701
      GIT binary patch
      literal 1982
      zcwU86ZFkdT7`~pqr7LkO+hFb3U?OPRZiIm^xYpr@s}y7F)=@0JV3t01;dDt)nvVVz
      z{R4jCgL0%(;c)!ykMejwN$5sf@I&)l&2!z?{hojR{p$sQRd5L*hNY&}ReJ|5wb$0&
      zeYNW9j@!9sy8FehWw@qoNr*5^zslO`wH=0t?le~!X0_4FynlO*AyzOg(_LqnQM8Bp
      zp{{mav!!Zg$IWMI#JXiS_$kPkl<*eA<f{}JQ%Ev|o7`nMqm(kfL`%1tYGv;sH{5&z
      z6rGGXW*BnHxKPHu6RxK;)8ggs!5(*Z^}QA+9nCiMR!w(I@jrMOarey*!$s}?3Kir`
      z+~jbk350P@1i3)TD4E&>1$|yd6fuF8WJriH#QCA#>gp~zRTRy3n(CwLhT5<X)G`$*
      zUmBl&7?)(cjf<iX@5*=&3WM~Z<2t6*WVkU#XjJ8-aMiOU;VhOV<S3irI~gmu!jR|;
      zN+6muDv`NAfvdPCfrjMt@$IH<x43S}xQ_R!WV<_ew`e-F5kg*Ae<<T4L5mhQv?}o=
      z!?s-BbG>E_Cq~6>+f;v6BGlp*sZ&K)1$QK6|BePU)EOcK(Tf|pjv6i7@;fr7Y-2`C
      zbfhTb7CxgAIs8ZNaLeEn)p=i`=NVY~0q?YRgR9$Rf>bMEcSpwOxJ|(y>a<_y-oU46
      zaqVi*<XL4*10{ULFgN^qvum~*+=*j{LG~NC@`yU9Bv8Sw7}2}0X=Y6@?#cKXb=qpZ
      z-R4$<VP$MtUgI?%$2ZiSWuf$)Q2KsI;H9rO2>d_-86mJI<4csO##OuP7`$kTWt|&c
      z%PT^QCW)#_pS=*0V(kbe#nRC!esPFBOc2^egg8Jtn+yMmQz86~a4zx^9pUtEp2#dc
      z6CN>-6bd*)=&Wx@=N#an6#bYdKNHB;i6g?8${t}pn|q4I?DA7wI2N5I|G+vuKc$#9
      zFo{i1e91Q(h);Q0Fb|15LWJof5V(0x_HjB3+2664TUhMlowW$z3jvPi(vd%Kc`cSp
      zN5v_nV`-_6%ukqj0`(Wfp5TLD2Qi%`UqBIJI8(Syv6P_Tju+RC?`IHK0XOim7gqsm
      zRGg593WUOBe-)p2xutLkHwi^aYk@M|pbQl9wMj@KYg(Ql6OA}RBlQfd?q$=*mX`^g
      z)Q;mQ{c2QBv?4W#Dn(JP(>)XG6)2a9BUtl+YUyVr17U*E@Z-qiA?@80+VcbLd3-@p
      z3T+z4K)XWO3X99nP^nLEAE7Fo^ii9>-^aJYi@*;E_n{A`Q1{%(zChrH!SGm({{RW~
      Br0@U$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Steps.class b/libjava/classpath/lib/gnu/xml/xpath/Steps.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e2feed64d0482f86d951e6d32e591ff86ffdd7ac
      GIT binary patch
      literal 4349
      zcwUWHZE#f88Gdf|?ryTV5l|9c2#8oE+0C+ix7~<*!~l`71d;~954zdCNftJ{%kB+?
      zXjKZOwY9Y$SQ~0lv36C!qQzj!OogFe<2ZKw(Ux}n<2bfXXZkr#?eL@adC$Gs4awp(
      z%-ubE&U>EozR&x-@43A3-=F>rz+$}WMTLgz`qG2pp@CF*C>yi-!=09y&3mD1xc170
      z4t{9Rv+Ap^eOGL6EIeo>Q{nbxdbgQqPv)&=4W8SQ>7;eL23JF4H_clz3Db*e4KvGa
      z@WF=~171}6pkbPfrfcvwlt&l9Y5Z+Q2M2o0Tvx0oWzx;|OgxtAj^&c_+nLm@{$yT5
      zZF`yEntgDgriuq%Z@>+Y2Jb-3iuaqcp`ksK>kIE&8V@Hj1K}vWZ*JTnZq7DPk2yrn
      zCx=ZHUYq!Qqk$VRkA#%j*w(m%*zru-GKVbX=wu54{*-}Ra4Qk}OiLVSYqX<J#nOG@
      z%{{x!xYg`M1DB@c!!mPe9~K}WPWZ*0CIcZX)G$4p$>)=#qQyR)p{;3XFALCICgKVF
      zw`5W&x{%DIo2#)1OT1WoMKVk429{!(hRP&SV^$_7q)bF=bLNS&0-y2X)1+kTs)5fU
      zLYmWxvzZNL*|?1nPWD<*Z#S?Ct4Vr)EFV<>%oCH~A{`pEHVy7vvag@>*I$JUo}4m!
      zX`t=m>E*oFP!*4*6Uju(qO$K~l#?`O3LlxA7wtS|vXD2#^8KAAg}+fG*oMspI<S_f
      z#)gu4A1AgN=tP%>nph&y(w|HvBsMzVR7POs)3l?pTQb#cU>ojY>;zK6p2DLDyA3-G
      z+&z9^M=WQiEy0$Rdkx$tD>JyVj`*2<$#kD`M^-;?AU3|*ku&3FVtln4&4?RFfOS$$
      zRm)`8{;XX!onG`!%HA5w%2lHmNdvpEn>EfooA;&7Tx-f4pg*LMGMKo-S!k}p05V>r
      z8DBXn@&>Zl!-TbN>gd|Ov$M5J8c4~KiC{XtSv&X4IeETea?5biNkd;T@A)e`-~{ri
      ze{*jvHAo{34dt3bx%!qqz{<LRO4Dr}%I16+#up6i!;mzthh+4yhSmSK9<EZ&%tp$T
      zpp!D{&x_or9xi5#N4nP(uep>fw@+>g)huRL<7@c37mre1SFmp28+eSD1*Nklm73J?
      zC%Vqstw`rZ#PPT^1x6{SN~d(kQ<=0)@>FG)i$r*Q!oU$cE_CxQam(5g<~3*bniPIq
      z@;cXs8&bQ|u>mumjm6FImMDj+VutYp14r?FMGTwV>`$<#8mvsGm1AX0?q&8Yd)c$p
      z(&Xv2gT3^~hvTU6;zv_du{D#iWbt_eFW^PtF`G5h3DqRZa8Vw;SrASN!YKyP(DI3P
      zKQ{0*o?*y6gS}ECS21OZOj1osJ2Qj1xVbJVm$6S>y9;Fx-#Q4ww-2@exqCU1Yl|-c
      z{H)@y2v;?J8-a81Z9fa+EUtN(zbi09*;ep#6{@is*NT;Gi|a5G^2gT)2WK5E#nu-%
      zi`qc&Rn(PGu2CMWg^oLD+p3W2Z0jPDPkG1ckek)PY~c>EnidEK&Y*4-v-HF$=AJA9
      zdz3qOP5_)%1e}JOFkh|neZdCQ+ywM;X1BoAkK*R@SP%^bN6~l`Zr92BW7w)z<QQ3t
      z=mA*`jv=fe;x1r;-#v!q8qT9R;_>T#54VnBM!@e;d*+V7t)CQ|l^TwI{9D&az2t0!
      zJOG;^7tl;>rNdpAg>E$R+E{_Rcn$9$H+R$G9)8}3dpXyK9wgb=CBO}~>%{<f7X#dl
      zHDtGf$UDi|9b~(a`D*1zC-PF}W<A+$B@r9ALo~p57Kf5cv~ly>7rcPB5v?M49&OQc
      z*hndCis+#;h`y*!`wQ$pgHM#tc0L#R4DcD^bCAz#e2zQwEqqS#d4kWop(elX8pW0Z
      zo|2)ihDZE*(-=Nifo-L^haJo91q?c~9PXNI$+>RF@}2@VI>Vg>tac1IyWAOaHo)CI
      zY(Gz99+A$YcMN=`wh;?3is*j*^eaf6#(2iQNa09?USuFQTP^l5Hx~0T$jt2H>=1J7
      zPxtfRK|FxNc#wVeA$$u5Fv8tW;t-z0m&n6moW@tk&m%a;4t)`i;+M313y<M#TK@sx
      z#yfZ%e<E8Sapz?=I~R^=9`*pq{4zU3<C*6u$J}aaBpQ&+Uq+sux#;6R>D^vtRg)Xc
      zsib%KyOQ4>b{*}H=ziT1@^HlMcL(d|jN*Zar-1t6f-B<ndxL(@c`O>mgOt1H0v3&+
      zMhuj^FZn$suI4NJ0#AFMKD>Y%ae{NFsI!;&c5(un@Un_!tL;Zo#T`WzcQ`7R(E*NJ
      z#9B`l*VFe}VjLu!ZsIN`qlc;Dg{Z-o$*NQZZ)iu)2Wed`o;Z<4L&Z25^98tAu6~`-
      z1)CVvrULeki`}iS@K6YkXjtKGvMau_fMx#5V#Qan;;U*shdf%XSLpKjeTtIlez)I8
      zn#S-|QBkGC&#(P%;@5?Wd<xO()R1HG=cW>Yb{9KKdR`+rW0*~;G~#tE;ntP7z|y_Q
      zhVgTX?-xknSJ=<FgLs2fyh&NT#cTFA6x^E>+}jFiSe0s_NOYk{bOGO_Kq`3BQ;J>}
      zZH_2<b)MEmLGB^Z%dtfz#KY6uR6@LLA-Ah$Qc0^@DBAg?Ji+9AhhF%IQK=H*<|(}N
      z9qBzwe99Lqoff{*xo4uT6?y@)Lo!{ftA0DoUi;lqd~e$!U8~jWpZWOxbI`Vjcq5f)
      znx*>J?|9VjdG}mm7yToG{9Z<l7i)zskB7aIVIQU|l?>>B(${o$zY(HH*f)`YwW?P5
      zg5fwU)X06+;3$YWtZf<>5j}iTHTfndg&(*|9llPT{Vw(Q9@F<e=5Tx~K2UzmvoVW)
      zHQ*TO7r*AJBvf$B8{hHab^g}*z4;uDldK=MkNZ+|BpSMa=Z@m$U}zKtcClHdmEiR7
      zC{Ap%SH}H(kDk9&qH&=rlE3o!zmbr?lh%KbjDPX}wjUyZf0M?KSaScN0zRZNFRKs&
      hwo6V3m2~<vi&|bRRyiTeBFV2%NAgPX6Lr>^{{gkH)ieMA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class b/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de96161567bde4966410c0e6ded631d9687b3bb0
      GIT binary patch
      literal 1678
      zcwT)}ZBNrs7(JH_I!gr{6JLh&UAs-K3Mw*RQ4w^4Ix~YYn$lfoNokj^)5Ra-SHAc`
      z6CJ)J#&0J6DC2W)>jq=`q3zS&bI&=?>C^uD{q;M5GbkzOV;HZx4Wqg07|og)yfjLI
      zZ@bmmhHC}3=PHOZBsU{&HETXY%=D`asp8hP0>i*1+qHu$45NB+#e8KNjlgz{qFoOP
      z*)l`?hF9T(7{qo38pF_Lh=w5y6R2*#;iRKy=LK|!h9pMmzRClJo%(z>WOhuqYAi0V
      za4RUNpcM@Y#u#?#y{rlK;iB#Gg~sYK_aB+d4rwHdo@F{^)3?Qa^e`U0wCfC+;{WoY
      zUgH!5;YPX}RS`o*nAtCzC~qTk2Q~C#fFZ$OnNGtDNJiI-o?kUyPgq99TQwFanZkVU
      z=3+Ri;SdgsHjiu2k!4Vx*QFtbsUAdISvC@ftxyY!<+%ZG1~Q3m4su`fs6jSQmBU>+
      zlX(H%Le9`{Ii4GK)kC_+3lUvSYBY>z8C0LY;68UPE^-eUnsS3{uJU@#w7BtLfyzSm
      ziP$%#;T+COKQxf(|KKU{z$-;TrSu*lBtX-e2(#3)3a-%vb%SOawo~DL0y7j@1XXbr
      zH^p1NC5Cb<Z?-HDw>8Xx@*6N~HSSgzPWH^_AA)4=F6EyUO!oxSLKnebt$z}To%b~q
      zaEVebc@5v<v$h!W(aqz0N)X^Q%~y>65H!?cT&WU=f&@L;M%5!)?W5~>F8>88!&{8x
      zV_z`RhaZTo(H~<SsSmW?hh215C3XpEJi%_N#=^bWgS~*P(sVGXFcvAy5=NlZ+&cE<
      z@}F>^!#5<oJw+VP2>W~kr`qOJrEkhid@d1ZKs);Bn#p~{fuB&=8n%lvKfbSpBh&Hx
      zp7>`Rd*9{TqPikACd1urjSO<gOWzrsz)6YD;1pFc+M~dr9OJZ3qa8VTO!oqn{sy+x
      zaWN=ev@k)jb>zb~Z46_D?(Ge2rrQ?MWZ|@IlfHvUWG;#>6$!*T0vF!3*$1R?Zv$(p
      z&6>hROiNapmxy(d+=v}VL)Jv{@|tMl>QeIhI&O%EEzBnGv`}nevC~8-6G#~?B#2}f
      I9!S)~KSiTlsQ>@~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class b/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef7032bd1d9e2fbc30fb55761b44eb46d10300d5
      GIT binary patch
      literal 1853
      zcwU86U31$+6g?Z;k*lala7;>Y+oYid*~S&6e3Uq(G+%8%aR?4+6F!QfERH&|<dNlK
      zegV%s@(cRH1I&O!+nEk;%=AYw++7Jfc3gOne6@S-x#ynU>*s$zc?RGbzELp3Fkkap
      zM!W7B?S>T|8Pzawyqd|qT6nbH^6b#@Jq1aIOh0a|-3S;GR#0Qeny2^545N#V=Y&fP
      zQ@Z)UdT1G~&~XjZX@=$eE<<v~KjdQ=!&wCy!+1YL!#E}w6sNgXZ-n1dDLub0&@XAo
      zV2ZwLJY;xT-^fSguI1H?t%C>L4$CTNM}vZChI9Hbbwa>|>3F=-svq!R$2xF1^=SIG
      z<?dR6BfjIsWO(E>87`auZxl71Bu5B6IoPp^1TG3mv$B=lGbHhnh7?8_()^+2wycnf
      z>AL9$HRHSMwsGj!jS5**-Wc9u0#`K5<2BLj8ya-v$*%iNDU0F85Tes8CyAqm$_k1k
      zzqh>Vx5x$+B^U~>_H9KO8s5S+I&D{4A-mg9QNVT4?K|X%zAD^SY~KrcJCrUDDx<81
      zPqwiQiin8bWQl;Dl1!jx|3)mFA!WP17nwMu(;>G&n0QOW5^gf60soc<+_O2+UyK;q
      zGQqRzyxFj9ZfsX5Ea&${-kOGGtVp3W2)X~j(*cKmH9nWDKE(4hKB4Ov9bGB%QO_&b
      zq}w})U2Zw<ArI2nqLJy(P+?+QnEsiVi_=x|y8^MJ;d9V=j9QHb_YN6KL*05oU6Oi_
      zP9QIs_65@y0|fupdLe<x{7S<e&{3;ZzZKYg-4Sy(Gi;)+3L3g#<TL$e(d`oxLy>qC
      zq-o_0MLV=RLciw=#m7(?euBat;cPMS7?UIT6NzJFf2I8qoTIlYv5UyzL%c%Kbd-x3
      zyb8!DM-P(~rsE3hgb^sUaEuFu;_sO2@r_GuH<83G!Y-fSRJ)w2)J@KbiH$jbqzutV
      zsqh=-{)!}vuz3DL2bUL;#hK(Eczq%D6otK+R0nVVaE!Nq87R9>@omhKpQ7wiMA$7`
      z!n=4+wo=0TxFJQA@Bu{$%A3Xl$|PczxE9Hb6d`FAVtIFIN8oc$!S;F*$E3s#J|a&C
      z#cW~%75d&h;X$q|CP!k*(gPZtxX7K@*KAxM(JQd}bC-QowopC6n(eY?$%5OGm9A9G
      zx<zV4#+8UQo%#5YXv5sgRF3hfSnQyhx!b{B2VeG@h|1iPWweMOF2nG(MBV=f+pLP;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df689d64aad803aef205214074e4d8a52c90e162
      GIT binary patch
      literal 2036
      zcwUWFZBrXn6n<`Amvn^~z$Q>ytZmH;bPLs52^QN5nlvV2(kNJ^o6RL`Cu}mC4d%D_
      z$!~t?2c5A&?Tq8+{(}A*$8+y4fhK9kVZuGxd+zf*=Q;OmUi|yl-vCz72*by4rD1io
      z-eFVgwRPt}D|c%h$2P6T-F=7KTV2a=%$5~KfFbs3=4P*LGX!+IvBEG@7~RaeyQ>VL
      zb<;API}Fpw!V~>S*Se0`)Cy+D$)>85b-z{T=b&OTjJFsjUrkXlg(!o+!5xO#WG>}G
      zG<B<?m1<A8;bbEqbt)80Gh~wEq>OtesHY01#f#m;8n-KYt;q?e&@%L9Rkuy?-Fp~t
      z4$Kb2wZi`~%d4C6qr=rk;K#fWdVvZ`rm7Pp{Gy5=LLypJ5k`nX;YWJ2t2;!TOcq*p
      zL;LZjq19W5T9J&(=Ehs##}yUt;<7N~nu_<4WC-uM`WSAH0UAX)3tW~b2{?_VFfvrl
      z@ScigTqhFKs`FlHUvy{md@85l1_K1ns*0QVfbK(+TMg$xdXN(vw^V$D+YA$(6Gul{
      z?ZFY9(Xt%gb7ZTAOCrd2i=1aUiim|;L0+zi+>v74J-VL0&QQXD%h#dppsbHpquH|D
      zo{TYW%mouY`9j4ewiqHd-{&^B3{L7Ux(Gdaz|s$Sr>z@Y+b&X=P3?+v1r<5usfZ(;
      zrfmKV`E*~LR@pOcCOO8lFurCuKm7P!*KF3gt)N1!9r(Vii>sWBU>j9&QNMXjSF0jp
      zN5w9_qkih`Hn-{w%VVv14Rcn(_tdE+fwU)(9uEPWaJ>PbMgS=RP*+jHSLAcK)wK=2
      zWs0$#A3vbi1s-nDocQTQ=tEQtAVpCzezb~@0x^*hinbA;93YX-`2WN?AO3+q6F7;E
      z@%C>LWCr4ni^L7Y@hN60ddEFT>v=#%ar!U`KkdQqP>zr>l|IH?I`a$*>7{45bP5_H
      ze&8Pc|BN(kViH>te9=8N0H2aoFd2zDd=%5`z@vFd=O<{*r+>#n=E6cB@2v$WzU0Nh
      zOd{|HuC9eLiJ(}+iBKZkN9vX`tN4C~64QP`G!dFr#M70>eSG-qK;fKpEKe`+2UK8z
      zlzoXLiu4mxl1d-B%mbx)e2g`zG><ISrAc{wLXn>^?$F-`sf}ZmY}}x#7U>OfmmCNY
      z>Sf%gC`{N1@?)KhWMaU)Dl3#N(BjX*c4Vb}d@ie`m0ESGc~ZJpA-;$7y>g~q@qx}b
      z>D(Y>CPvX?C{m8dn)A>f{Di1SKw;4TH1Kr5;dW#94EEdrdyYIRN^H8e9(IW|i4#|!
      qV|yo7KE^{q(#N;4M}7PtSVXK-+=p>mic7O6X;c@$qha7OYyUq>pRXkV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccbe7c5fd9322ddb2659c9c9b0c672742eb5fc1b
      GIT binary patch
      literal 2011
      zcwUWEU31$+6g}%t#Sw|?B(0q$ZTSe5?WC$(C~aH<Bz3^8>ku3aE~Q1bH?BI4<dNmz
      z-@+4byz~KPr~`C{;h9(d55wJ+;v|mK;X$)k+I!DA_v~K%{qG-t0?45eMSx+cW%cy_
      zUR&>X4ELE{>D9ZgV_L0szH2*tvu8D2)3%}rF(gi=7Wy5BA!InM9K&qs^k&}My}=N<
      zYg(qe#xSFmo*Vmy-gC{iUNXCGK3%1(4ZF!Fp<*hEHyEZ)rl^=koFUlaF2kHwOnVS*
      z!)obU_2<0d=3^jrDiq8xWVLZp#(fji(<Rg5<=$SMJ3B_b%?YPuH;i`Ga7^*;e+;?L
      z%r3*#(*JVHZ=4F^qwU5J#6_WWfjZLC)d^C5NkteD5nWLcMT9}&`$oHGxWue!CEID~
      z-`{NLO?yu-lT-QPcn^YjN5z|XOSti_imT8VqE9`647bMsoklqhT#=OooWXJwS?XqV
      zPsIwZ5s7Ivd4FqH9M9?cbWy=|1_+!RDsJLEhKcT>a}4LTll}N*1lzDJm-k(HCZp2H
      zzK%@}vm!-pZjt5WSx)4hYRcQAdl=}BBn-I%UD^)IK4@*UZOik1j6q{=lJNeXichf4
      z5Oer0cevHyr0$Z3(3b_4vB$d|qrvs<GKKl{BT@I6iUKyNiG72{>Edhh>0Y>Y#dmF1
      z8{=6NWrho*pVxb4yU85|pEH~r8oyGPcUFtxA-)hdvU0}pRYk^^DysO3CfVq8xYcA>
      z8SBj%)OiIpI;v%X^o>AzJOXgY^%{UD1dtX0->G<j5*b~wdrpIInqoi~&KSjO0ua|}
      zB7*eO3m`5=jiR_1G+M=@K+Il@qHTmI2S{bI!QU|%z+VVvLx<4;&ix`mW+85~NL)h_
      zA7PH7^IjpX7XTS0>0uIn#)q#_j*u~(Ilz1-`x1+p<(Ig81ezdz&@~ESgEZa46kQDg
      ze#I*rf=|mXn2bap0g7qxeVTu$euCCQ=2t9c7ZwM2do@JyWj_vQQ=#9mv>M5#!eWi4
      zBB|&A>08R268I5HLjMVqsYq~686fxbP~5yUt4P1;`_$V55><jm=aEBMihS&m4n-F5
      zK5j{o1$=<p(w_qEP!uGLJ6J`YgeK`1a+jho;Vt1qax_Ayi{$DWwU#61kEuc-9GWh_
      z!5zvLXvtS#HQD3<8?r%K>6DH%Pf6n{#J5B5m18HB9O_Jx&O9MAF^4`wnQ}zdypR6r
      z4~Y8&6o!K@LNA6K-a*ukVb2e-=gF`85}U59kG(~jM8(o8Jgg<Q4zMjq2G~h_J-{Qu
      bBI0i;9^mOwD;~`gNuzoIJ`IB*v+Dl=HDanJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53746375c65b4cfa07865bd26a7d4bf3a6a2e65a
      GIT binary patch
      literal 2340
      zcwUWEZBrXn6n<_JvPoD013|E_)JpS0n^H7ZQd<jxrABC*HcH><k}P3yv&keIWc(L?
      zb@Yql3}5=8&PZtOjN>Pr@kcp6cXtU8B08DuJ$v_@=Q-y&=ia~m{`EHilc*~237jcg
      z&Gc5qOmEdRdp(_Rt~TttVU_2bR?#-9mV$sl^sv+1R;?}&(CXz$fuY>dk6HKY6?d5u
      z2wpQR!@e#s7|(5Jn_9YQ8)iCZH0*4mK(E<qN$<rQ=vUAu(0ABH#Q@$E@RxO4AQoRp
      zxDcjhmD5YB8+y^s%Gf~_Lx>TqVSJ<0J)T&IK;SJEVT=geh<8i$|L(~w`*Vh+FE%Ty
      zdi}n(YLX+Gs}?o0pw$ie?rjF_b)z9LmirH7J(1`-(5XoTew>wgk2!S|!mQ&R6+H+_
      z>s=L!Yh6$gLQo*2Z)#>!v&kNh=c@H``s=A;x>T*C7b$FZp_^oqBc&pagjDIGic3ff
      zC@XG~0#~~L9Yr|^oOdD};7Ju%z`lnJ%PufAT{f;uG&}S@K2VUM2%SJGuF7@>P2DQn
      z>mf`FK)PR3@ew#m;l`e#0>kmcHF~MAo?_Lq^)1`!RcARAw^pV8Vu2QE*bwSCDSeNm
      z>VD%yi^k#aZ7NaY-*o+0x^I(@o}yW`+^%$yuFITB@$RVj9E$>xy1u5@b*re8^0bSv
      z<pfw-MQ_x!qMp9HNHd#wDC6#{xQlx%WmDtvJaLRa8)H}Vo_0g=F3Kr*$fMJ_J<~MI
      zl3owtF|%vSACF)ePvy9-bhOz6OBAGsreYOEHdL$CbgRUf>nh5>aArfGj$%S0l_k=8
      z2f!ZJF#sC`NJs!v#TWRJHRP+!dQqP@<hdO_azZajC|u_8@bkv>^BUp_q%|PVpR<OX
      zRsO?}$EcT9g<d{+!zNSyS5STU9sX3HZM{O2bMX@fQayWn+q`3UG5j-wd>G}k&mp{t
      z7-mR6i?{hU?1JJ1P6Cc~3a3dasYg6&lRg2iL&;s7Nv3viE;+G-^T~@l7~e-9W`e*R
      zJwIjaEwU|O5Vswcq#NI68FES%jwOrsIhHKj&s|;~F0;roPG-<d{(^I<lc!opP6ue8
      z_w1h3Xy7F#rh}tBFL60g$|y1Adj$O%Wi;5rdoiVy3B^J`AQ=7d1;fVwz?fXT=<sNm
      zQJF|A5)1tZB^JqqMuRaz#6r(n$i8Tob{+kEE<(i;MY)5sJP`@p<K330U=NT*0UxvX
      zvmAokc*M8Ic*0)^Pq7Zok)Y-l(w3l!8;lW-b(0P8Io2#KKY0v%;z&6{lzCb`<a|J3
      zZ&9KIa+G$4!euc{z8MNvKop<RFHHYlexGsXhUeXDVc8Qo^%`Q?5wnFQM@V-a{}YPX
      zMz5m|w>UTZ<-2pU#txNnf$RR<q}t`ASk4^DguE;~(lz=>ucSwq{|+&alV-%D_3zW>
      zpLcMY<f*V=^8jbE&6%Vm1&5Qz&g1;nnIK@rMNhuQ@^bXiE}qC7T6h*MwXi0WkhVd)
      kg|D_Tb*!6bj~@u>6sOKvXt3LLCsEZ+!An%I1nF)41LddfuK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4fbcbea6c6118295185be6e7c2dcdaf8786b056
      GIT binary patch
      literal 2040
      zcwTi??N%FA6y293OcF+jDQ$_RwWUfEVmqz%iv+Mj3Psb@mKuSgbr_~$a59rMnN(gy
      zU%)^9(6tnbtmSI|`U<{<51{Tl86hO$$4t)Ld(J+4pL6cbpa1;+2Y_2}6$}VuYEDbr
      zt=rmeL-)6}l~#SR<ru!@Itro!>66=ccN?BSME7a}qvhVcqQKyc<yiilz?p1$M}Mws
      zE#I=Wveop9xvD^P!QC>4Fof3>r~<<$T~rKXgb8Y<FK{-yoNGhax>M60Z0?wbUra*a
      zbrlNI0_U^+ILI_3Wy>)ut@@_vJ=QmElS<02q1#p6v*dTU81=WUroe^rsa2q&DCN>A
      z)h#E92;PuPE|76HS51)FMHMj&3dGIly4})!=E!Etu2<8(yKQJ&Ze6QTe{s3LvIwrI
      zxP&(qTxETa(=E8RZ3c9PFoCyKOyU}ISib4$zRQlB%jP=REr;vHA>@!(Fh%vfyDHwn
      zb*gjBT^4&Z+lP??jk>$p%MRR9@h)x)3^jeva%xqIrPRqjQafQ+0_UKG@2mI#9||Z>
      zouEqs*ZKtaQp%O2sA&}iur<oI-mC=t*?@Hgv!r_*QgU1DauPH6Shnd7#b!%#Iuyfo
      z{2(mdo0C`#m;DyYv~1Jio4u5-J!H7mY}M&n;$z7p(WeQr#KfgX^CU=E4S|?pyH0yj
      zdiD03a5*WDR6M}v0!hz&W_qS$n1sL7M%WDk9KCKf8@gd?4=Xf_xpf&=Rk4D{fhbQ-
      z{^|alFyC#H?4FO1x`GWJ!tUkymSu05UL0RjI_r~7;t9Ty9nj^W?uE%!rH7$n3#`JR
      z-e{Q4mcaGC<v1l<F%Gg6If-ORq@6B+|8t!RAR}!RYglJdSKO9on2VOYBvKvM!3`OW
      zn;hT>FH!Ev<4#LH3gTQz&|2c|0DniO@{t212k;V+eWZTj(g4ozoeZ{TdE3oll-9Yn
      zJI>NVV4cSp!6axp1YM+$^h!?cBQur%4dcgn!vUQ;h+>|;3murrBg|w#l{Jz#Oo;h6
      zBa-}Go%$8y`SFW;xLk-1PscLRSD5%7g-rA%CJykHKtcHtS2D^0vVv-E6yllq3*0Ou
      z#$x$Q;sxF_7{uL=1b+DUuS3kNjm7pc_wy0M$*?dg?or(`^?k;*`@BUenC2vx_+7!H
      zfcZw?yL!ZY6`xR-2&@Hq4g}U+S`p%vS(zp3kf`_g#BddPd`dip=xOfHvoX{B%el`C
      z@{;Dc3H6s4C(%-e5NkmV_VAFMI_5nX<o&XvqNyWZDe_thD#{ZTBF=_gN`z=%{L}@t
      z(E*h>f=V#OY5>Lg3!xS$Pex=8@nkLi)jpm|%sp(TpY36L58rmP)B|X>9TY+f)B`W)
      EKP8~G+5i9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/Test.class b/libjava/classpath/lib/gnu/xml/xpath/Test.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40eaeafb152737720f4850fdac541083be4aba74
      GIT binary patch
      literal 422
      zcwTK#O;5r=5Pb`UN<~5Zx|w(@9^4R*HC{|iNE(chaPYP)BQ0sSq%Fwb@?_${AK;HN
      z&K6JV9_G!=zIpTU`Stz*V1N@BHG$sTtmGz5<YuYLNRFu}T{r^Wg<30_C^MJ$(*@~L
      zpm`mexV#al`~8W4bDPb`LmjO)8fXf1!r0Jgl};%it7$?k9%fo46P3p{{z*Dz6c++V
      z;or`IfSamPN5q6vKg{yEe7VwcmZfsU-Gbq;|0K}RNoH8d_ru>)2L1nKy_}vYC!?+M
      z*|u&|(Tqx|SSn5OVZ?4=8+eb|D%W%u+j(17;?fp4=iudGpTiz6&DP~eG784V#T#~B
      l*{Q)}+pLlU?6Pfd35<KN_uWUQ!Y&Rf?BS6A`7BlS@i!>NU-$q3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class b/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..afbe0b2d2a553761b750eefc47d17ed21a3b28e8
      GIT binary patch
      literal 2543
      zcwUWEU2{`a6kR7bZPN5MO-oY<6exviJ_@0L5gX(yQZ2?Jv=&poyiIS@)Z3eIdsFI&
      zJ~;KwCr4ixXB5X7e83r<fmH2`(`SExzrx=ju5)jiLKD!3o3nDxK6~xG_CEX1e}4Z1
      zz%V}Y!6UH0U{;bVi$-##tl9I)NlP=A49(U@D`ws<mP{YK0^QFVU05kw0$$B33=8yR
      z8xPa&=`nXXF3@_aXcq0$0z0DF1#MYNR_vmY%odmIbZm-NnbNG@jt+GC5EKYLYoa2A
      zE&-*W+XCU}Sj=@{Xl5aKX=Xvs+vx!4T16Xr1kOa8Mf897WH_DKqN$Hp7H4#8QkyY!
      z3Xm=3HDgM%it>ML(`(Ncmjn)E|3ku>8Z-@UPd)$zeKPL7%r6?7YGWSzRkWa0q5~>?
      zE;^{fk5&P{zN{G)`WA>rvn8vLymLICoGmRT$Ejd?thqJ{URH4kgHolKiZ~JizFSMS
      zRWu6%C!08G^zyXh3Fl_ohr<HB+qchG=H_%OfFbk+a1_UUV3UNlTd6pX6YL8^Hw*T>
      zll+)8PpNnnCwY*c*Q|4_x0m(KNN*!5(m2Hvtz6d4S%E##Ok+?kds@0WEp<I3?Ve{P
      zYwgRIOj}>Eof>bKfpL{fteY4kVyFy<`VULn27%nOW9}kbepBD>M&;zGu332|?z8l=
      zq2*anWu`JGu<Loj3V0;5M^bnsfhh9J^UJU=YF;RdnC7=2(2_SwrrRe?irJ*|WuIJA
      z@jh|_0ZS*RZsv7nzt8os;#@GbMSZDEs^sNy!gOp}-n*sZI&LtBWsQ?z&kO7st6iF?
      zNz)T;+E$EuXQK*5V^+8P;I)9g`NX0D%%Ug@y&y+JqqEqQv@m4vED9WMs>O4t(teaE
      z<&bo6TRO0|IoPClfdjUch)D;_DrUf91tv-rE3c0h<pAkz7!^mPEA}px<cwB0_&5rP
      zLUIr|tKV7W*9Q5X+lj8x%ER?wJfZvs)q@Qv32z;>Y@#)E|3Whl!u$<5SKh<`-a;=?
      zuj>Lku?uie1iMKfiF#^825r1td*W-@6Hh$GzWC5%^v4fB#=w^6UWNl)q-B<O-$4-L
      z*nvw9OWeI*XX$Yg6b_OpdK@H^RJhBT<uZ%Ed9Ryi8}Ucjm+0GD#Y-bz;{F<LAs(pV
      z)<nenE21O5M5INo{zRlzu5IfW%B|tZNFd^?BAIHB_~oKT+T_xqq=FA{CE^PQt9T{V
      zsiZ<ms_Ow_;m(LZ+{L}`ushrp?)V;|NFdVYY*q2vRc|V^+9i0R-hc8}ICKx~kwCap
      zo~#B%I2dlf|Kz829L+@nYk2+Vx=J^x0Wbj-lhoop<~qeGcNHi20#6}_3z(*U*JyE_
      z=mtK(Efo1{K!b%mK823YQNWkn{hE8<^5h4Ycu3nSZaZpMUCruhZ{RG>Icjg<JTi{j
      z8+e0AVH}UhIZB;(;YaqxC@XUa->^GIS&bolg)!FD$N0X$+eCgwxylGHvc?ziG3z|e
      zp31^zr8BJA1Qziwk;>@jaG9usk>zlOD9D&Iw3tLEqdv>*r`XyhHvU!acQHavp<2&f
      zuXRQLIz-N?eihSB<=u5auI%hBWrNP+S!N&IK_Azx?(VNE(NES<G6*@hYD^k!q}5=J
      z<>oy$xl2SCs&NsvC=b04x6$1t#U~W(?o)Jwb-F<oPIKru1?sO>aY`|~j@exI+#2R3
      nZxtVQn^lx0@l$v};w9oLDqESlFXuCdQgxlxC<SwuRxAGkT=gJy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/TrueFunction.class b/libjava/classpath/lib/gnu/xml/xpath/TrueFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00b08371877c95c52754151d1b13c365ff06fdb2
      GIT binary patch
      literal 950
      zcwT)`+iuf95It)<i4y`PX(`Z_atFH-xCp5)t`GvHQY0$~8Y;ot#$8fZ&TizcLq3WJ
      z;H45sd;lMX7+(}ZBCzD0*_ktE&d&V&_3a0MCva;p7&eA7^`@iPn~u3Y@%l+B4pJHF
      zNXZ&3hW6k2&UBnGRQDqp>1Pb4;~p_sFV(SVz(l=?3aSh%K_o>l9Sua%=Yv=fO`t*^
      zAMqs0?q$%@C(#+hR`72PK7%bLJWjc$0>=qdGW0$^4ZUME@_N+P?{?kblux)9b2;>0
      z4NgU<{W@A$t)b1(`jdO1R4lk`VhvZQdH>DZ4#R4&1fZU^P)RMOIv2j!k)AzPq?>ig
      zi-lyUgt3x^z9lJcuslJ(0fu@;z657zB;tcegbW4s*e)2SIf3LOaW>|m@Lu=G_1*U*
      zV8Ur3oBu)41hqQUNhF61YtH<%il}en0qs=N*d3SpAF4D7#X*#<s5QTg$5|zINxO;c
      ztK@%`?ltl}vMh`2oWuS?j)4Z9)jYV13v@OM0NIOV87^U^EDp$8WUa5b{CS~vFR$Gx
      z@?~x2t>bE*w{Q*DsUq_>$TKOriLH`(pE6m_{tou;95)u({hWQhz|7cfifrc(x`|sQ
      v(;nFjWtg89IG)dO7&8t7w{a)uxQlxw$D?vcX8Zo4kj~tQ%-M(@<|yYkxx2QH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class b/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d0f4c3be0f58b8ed1107290cbbd749e44c196cb
      GIT binary patch
      literal 2105
      zcwT)~ZBr9h6n>VxEQA#)2qvgV(Y8qtBgJA%@C5-28s6khXe(WkOR~;pH?!GL+UXzB
      z-@pg!D70m!qhI@v`lZw7ZngnJa5A&^+<VV?&U2r0?#<u-{`nVxA>>swDY%%oDyiL~
      znc6MsZXvZ|8MZaGTXIwc6?C24T+m%tIF^EdStu*GkU6<6!_wSz<YsuxunhN}f`ND=
      zw?=D;RRzHbJ0~ItK-18Sb3}_LR$HLpyoM0M()vV$iZE9)h9%}I#Vz41>szK!(2=pT
      zy1A-5hMfD0LAPL#Pb_oBLCIJx>Tb3m=+za^*iJt6({MJGvx})Yl1V2vB%hduZd{~q
      z*0x-+>w4MhT@^Ho9o?+xE)&NaV9m@VGB5NUJ!R@vJ~hAfLS)@^1XuB?iatV~Rz<^Q
      zTv2h2a(jUl*DzBPwrMhwCs6Sj6*=0O*2{$@;YM&BS}Wp6sz@j}cjUlL4FkBr3hBAr
      zxM@<Fc%~6F53b^-g3hDOamUer&KPCl58{@r(9lQ1y}Au+xQ(yaXE{4tDGJM-cXGm+
      zu!|+#(Ouh7(0wBO|8=Tz2j8gpnnh^@U)C@R3LY%m4vUdEPC_zFH%67D?%=M5d$_Nl
      zWomX|d3|$fYFW0^36W$Ymu$9#G9&w4u<L`S*!Jpvs)7naj*%~LGf)<;^dtiX?e(1K
      zmo;sx+8n1)5{)i}Y>teE89a_q%{i%gi-L$FwuK|CtZdreD%P$SYUxE$F6mj3TAZWl
      zb?;R?)i93*(%aFg_@$5dvxQxI$#o1X&z6fHZ`bN-TE#P#vwrzu#V}de2-cv<&vzQW
      z#}Bg0N+n_C6bv>z@fk4bW^9se->-cVOP5$%br3$Avms<;PQwcLtVEXVijx(O4EZ9o
      z)$aaH8Ox`TsrV!|p<TW)wA$qh!!gVq>dkM2vvqn%zw^lhv?d4Mp)Gmi9om2MLOb~F
      zK#<?N{N88K1GHfrom}awhT#Ib0M80}(9)8LnrQQJ@zeamc@xKx<Xg0TK;R_?X|;RS
      zHM#a4fq{KQU!ha3*Jh!>UT`n4S7X!7EWi}Aev5ugW0>P@JoXrMS2NTYji3jYm|u~v
      zjnCsBo}-zgkU0k~U)e|RXi#SK?NBWE0sSvA84G#i*dea3AK>%Ra4Z}PzDNHb_@W7G
      zoP=tVLkzCR!Usr=sxkEqzWf~{G4=HujJ>YWPI}4bp<w}0Eb<LoVuhA@VOQ`3tNg9u
      zIi5kshIf>wRg$%%2>&S3dcXoSdDcT({8M2KCosu_MKMchCMnSnZs8FN7AA5lC7NbQ
      z6nWo#88Y;d7|}y0>z)+*c;d;x@c^?&%&R5cJSK3o#wtoylb*o5hd%P0U+5kmb@3J2
      zec(mEoORf_W7s`4>>et#>|wLlee7wkses-?tg$E_@qKJ`Jm1HUG6(H_Wb3&b9==wM
      M^zjv{C%v}+11_P+ga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class b/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43e13e0153da9081a10a27504b98f8ae387fa3a3
      GIT binary patch
      literal 2043
      zcwUWFT~`xV6y28q3FA~kD%AK9LMt_2I<;7B3D`=+77ZT?1);5V2$vAoFq2LuH2<Sd
      z_BZr_u2sWoS*z6-AN)~W-FNZ<5~aM{d*<GA&faI=bML(V_piSJT!R@zm%wn*t{Sy%
      z%czx2Z_8LV-IBR($%k@Ny3#JlAi4!2Z#qra%C11jl@-U@ku)#opPD;n?U2i(1&#;F
      z8je|kZrj|J0_P6}sFh0DEJ)+Q98Eg)PL%ADcS~S8al*vMq)RRnHRo(d4FSBTqYtMA
      z0*T~u9|XcWdeEz^h>jpa0{!`tE$6D+>(X6P5ZuW-1=DIlHW$0Stx`o`B>zA1v6_(F
      zF|DfUF)ESBJ8seVd8}Y;INQb?S!HKtl0JLGGVP)<zy4GfylfEX1kSZ`d#-6$HXV1{
      zm@3&DCA(PB5XA)@7ZGDEMd=CT631w8Lex`;<HI0E1V&FJyN-`=iIO!Np|vew97pD@
      z<$lagJXoHwELk+IMUSdY*9x-il^i>SguofwiSIOV;;jbMFp88q*|fl5;!yfU&!t*^
      z3j_;}?a7+wpXX6EC}P>+af%sQmb3+W3YKFxPOO7%GT(U}vKo8ny5gWIgpL^I<~`Be
      zR$mY-cC1Ki8pbgZ1S6yGbki{jUXxz=Q`NL8M~ZK;U1Lp@jE(3y4M8YlBH1ZZ5IKRN
      zqsvp(O>z!lnk8J)Fol$2_Kl7i+!p9#^DVHdQZ0o00?;t4SkLil9ZjTS7j!(pLoznY
      zWod5+WZrgM9ZL-kS(RZ)W%!maNFsNP-#AuuJW>R867(<dg6VoH!J3Y*)J9;vx+!q>
      zT{+0H?AP_?aW*OPC>NcoTab54s^5n??)_C2f)O@FfRAk#!s?x&6;`hd=N|5`S2&*H
      z*D5`fUw>*3dMf>#M&>yNe)mJ)=NLgZ$Lkz#FzhBy<8z$hO1u$<K@0)DrC@|_DWERe
      zAK+{g<`?d&JlWJA=zoPPYI=$2GYl&01)`h=(ibk)aeh~=sLww!+=bnJjIKs5?;-h5
      zo6-=I0TYC|g#p~=Q;_3NW!k5eYQVH<Ws$)ZpH>!EVK9TTKA{!h>NR}YB)G*mRZvW!
      z&!%4@{tTh?3&dylAyzYr&mP8hkH~V5OzuNx=M7-~kSwt_evJ5^5u=CC<_!v@WVuNR
      z8>o}~R*d@m^6U8Gw>CgS%OyYQP{XO6v=3iWVcrVWPi=(*KJ?^1rdA_&_HZ|^lGgF{
      zY~~fBk$ags^1mXS<~+ZW4v*KdxRP$TEc;7!tRB=Cqq?d)G_0}K?=XxX_|!dSHBZRi
      cJXGssla_`t`hBl{Xh_rhv0v+te#R&N0R&^+F#rGn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathFactoryImpl.class b/libjava/classpath/lib/gnu/xml/xpath/XPathFactoryImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09d426b7341e0ffde8a44aa2a4331fefef4995c6
      GIT binary patch
      literal 1666
      zcwUWEYg5xe6g>;2k5J{I6i`IK2Yp~8AU-JiLB^^x1s&?3@GXR;gh`W_N2&kG4?3eV
      zBQyHlALV#=TS_OiNN2K1Hus!+?zwmS=kL#70Oqk0Ll47b#R}AV)l}<_=I^T?-qKps
      zbl-MAy{<ZD3=xKj1FfdjyF@Vz)->19c1*s(J=?5tmtnTl5waNyED(4vuyo(Bt^b0H
      zp+EvhR}9PWpE2~NGn)*NReP5!=*6WZ5>OZhN`}SPgX#`<--)~o!zEkS%o82W&4|Bm
      zcnnje^Sz*iDZ_iSbHH_fjWU_#z;SHX=erCeX(?JYHLIeQeb=xmh0JywBMdY9zV9rn
      zs`#Gw0xPfEReGsA%{04qRlz96V;Cbl!YoN#!*!~Ze+)F!3ngl3p+pS*_NgvW<{32%
      zipTvT*Zjbxno}JFZwnKZ7j>OG!e}ps8HR=Pn!jpWdqyR2H4)zeDwxJ?(Skc&j1j%E
      zv?|Hyt7&FHcSa>Bl{S52B(~$sFl5sgoUY7f0u1+(=tGnt?zR|O<l&j>PJU+k8srN}
      z#1JQPiyz83hVgW!GeseWhYX_~hD=PCf+ai_rafUeY!@Mn@*GX)>iWqO+3xeYU$~$T
      z7p{nUP__eC=S4%Di;?gN$O|HBE*&`f3+bVYoQ3$2336rP;L+MoZz|oHh{+xy`Befg
      z(;AhVix{9a*$BWOhUiXniz`iVfuco%*zncd52QYa;42cIYJ@c5;%NdmWY$UCq;FHS
      z7ooRlN%@jg3*CuhOmF3maO-!7^tmLRY6P`N6Syl$#nUX(gkZ>!&M^H`!u6a-|Ef*%
      zS$Y~h<eJ4lYZf2P=DuU@)H+4(u90EuZCue7R}^`fi;?&DJ8{j2xi*Na+?6XXxfb!D
      k)s#M2$<Q&DwpjKX=IEL~!lN&tQs1|Acc|6fWf@iY2REU4tN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathImpl.class b/libjava/classpath/lib/gnu/xml/xpath/XPathImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7da93cc9a7e25a261a5c06efc8b6dfc7518cbaca
      GIT binary patch
      literal 3800
      zcwViR-%}G;6vw{{fh94G0)qS!f1r>AFtyccjaDdv(1srhjX+!N64$Vp?54XL3{Iyn
      zeW-8kOJ~}*_CK&Q1jaH```kaO({pa(5|Ukr(=x;6X74%Q^Ev09dvE^!=Z`-DTt;3-
      zgM?FQJs&G%GqFNWvDahE3-p}H<}xyT5>9L=n@TLB=;_$}+J>64Wi(6Z;J1ZpCkf3t
      z#k5pYLT|!FbU{qUNmN&|s+Chx>V%=&YQdH;nAn$eW@B?zcI>;Un3}SdQSYmkk=f*6
      zLkU-$WR)R1KgsJUTQl?{ou{e{$+`Karfc>`5}t+YgRK**PJl>Kf^WijtOn4C_8^Yq
      zq=d$BBq^g)LbqqV1L#1zA7m1Qj20gC2H{75N2h~0h9Hm51n~|+0UDhP;yi0NnX0AI
      z(i~4{x;mH7uBqk{gG*>j7%3(5CXw<>pS`YG6vb`jxt-#E0_o+)X?~oM&_(jDC6N#f
      z*I7KSN{i|Eb)`KeBjHG$niXW#tKd!Mx?T=Wt&S&-OXsx{PIY&&LVaz>Ab#C){MyrQ
      zYT*Mshi*YRWn^<2uldyyLg{>1v`tM<$34=TEaYgJEJ}<N0+WT5n&T`j88<2T5iX9o
      z4BCHvE*-XHJXLk=Ik)>QjPdRmr(?<uFUcEXB8WSfq*S)H#E~W8TG;!@y0Eo1qv!H=
      zIk(E=FfQXRZHR-e3?4unGtBV`wLvAv(z<Cp<9-t;ag52Br9}}2nh~3suSj-Y!o|a=
      z98)T(>Qsw2XieVK1NNI5N$7V=)~O*GOH`7MgbNhSwWym)Ca>6JvglIb+8Vhw);;bl
      zw~F!^v=YR1e0U6><4YM|(CKtUg9MSpLkZ*I{~DamG0j%92TSP81x(e>oBGmLPUSn!
      zTbX2dJ?Jp4V>eu{tB8?WBd$-HQ>UwU&?R*j7YVCw(F`*!5G_I#t-fgF&6N6<#bchQ
      z%#)EY9sZw0>EgA7AKxurk`iveO<Eqc{F>Qm(MG-5T}v7$O-_k3G34BMm)I2NsGS?>
      zzX?A2(M2~f_>b;i@kzI@_@uj6JV7VM39@db(Rbv>J_FHRv_<#Ov9gO(MRY}ni|C1t
      z6wwzQEuufVgR{SrSpx>>*-s&WF><^^Qj<7|DRkp5y`QFQeFhh3Hd>O!MGT7I0|G}9
      zBL->^BSvCy`Y})jTBaGcIv?F8if!~1F;pJ*6%j5E`-_O|^R$Urv!pwRPRvs|76e1E
      zq*P|0dlkdwDC6YG1b)_|RKxpX0Wq;eHT+D7be0UAMEn>L!nB0ARF->Bd<R-sZX4m3
      zj#{&LzfytI;^4&at_Mz}8s{OoJ@Ui}iSU;Nh6_%l8Ykt7^FFS4;0#sctdpDOfpb+X
      zvxE<D%^hc`8Yk<DLuWHt-Jr3LzQu*oPvvfn?BUkR@Gfr8vgF7PKK=_+FX#3UUm4xS
      z^y>#aqWMo>lZ2mos{;w~d4@Wq6uO6k0~WpAq}c)`@|<SB!C8D;(Z3NVu?Y3lJp%EQ
      z#eFQ2N+*q%s7bhglXy@Ao2Hp2`fQC3?_l|cuiG~=`U<O!*w4RI&F^VDy%0gKlpLI(
      zt>vIRdW5fpbt@FCk+e+SDLfVdlTd5IuhJV%Atb`jjgGv+lZKkuKTsKdtVlTI#11*J
      zL*>}bv^pHIl(1H3!W*>-|4i_|9GP$y`XLD$^(36DP54(z<F_LdF2$})*b+MSzXO<t
      AqyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8be1bbc8d92ed98078f3b813e6e65e54a4f0fb98
      GIT binary patch
      literal 7787
      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
      L7;aAxNh0+>)Bf!5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1fe427dbd355e3cbea99c621eba85ef3c7fcd1aa
      GIT binary patch
      literal 863
      zcwUXt+fEZv6b9gb!=@)&`cn?2P|oLrPVmAT5Di5IL1=(9660Z7MktnI+M>m%Z{eLU
      zVYo0cM(=$ApTU<f{!>WQ3llHqTeJ6Gd(Esp^X=!SF97C{3ZltiV!wRi)Q?I|{kdB^
      zaPDVi)~!^%%INOtviEe$+sl;PYBdOJz(e<i>y+H`zO$J>^a?eD(CI~%LDPe6jTZ`~
      zV!2pbG-#fj${E<q@tzlk!KEl#5HN_Z7t7wp$x+^`?6~=oXOLJwF1V$fTPgbEi^;%3
      zqf7+NU=*zgsZ{NtST&eh|Ic@xH;8N>pHvFo?V?|je`H?qTQP{PmdjqHk?pC+q(SPR
      z#SLPAmDd@nNu8xO`K{@$2_Xb^8H6?c9v1%cGT(j<?^=%Lb{Xb|jIve6*d|+<ka4z4
      zvO~79QzqCY+nJOd?3SHO$u9QDBzt8y(=x?A*~4v_=8o)RP7d<291e&P2IV;8a)SMG
      zigR+B!*YgWa+c%L;f%b-B{|QSyw0q=!8>w^_hg1^a+Q>89F$pJl@EDWKH`>q%uV@(
      zBQnncxyO+77?uZ|kk2?PUos=>T$ZQ2C0}t!zUHKS!|B`^A|D#38<mTQ12%<#?Lor!
      zV#TIWw|#hL`*CIm@YN3DyB)$0J7QvX)C|}$Gh@fiO`9?qn?$TpNhSQB>ikQ=Q8bDz
      j(;pH4{iuLHd9fvWo`5za8td&1JJ6{ZX>9L8H`2cV_z$iQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb13d8206b4ebfa8e6c0199deaebd6525cb11bd5
      GIT binary patch
      literal 669
      zcwUW>Uu)A)7{;H|rb(J+>$~o6=Rl`(c6Dnu|6Vw}sR)DO1{=ZPRa!%rk|mO+vR(OY
      zgn1`k2qJy}KZGAee3BL1jbI?Z_q^vk??axGpTEET0I-Lqfs(@JFrGN)XOVOM&d*Mr
      z*GJ@$pN@lc!@GDfOtPdK`QxzxO+iNfd*6xtc<3DVN5LRdFfOh{3Z*y43g-SG3ga+)
      zu261mxe8i0c^g!rP_t2iu2AoVaqwz#)(_GXzaIq(jb1YFBiB#Eyq|9B`-P2#GQ`F#
      zOj>29;aH*7`@b)KreGZ>lXMWg40A`hChX)v6zqdI4$?v$FyXR7^Pk>SUw7yIF(U7g
      zGkGwsN-$yYRj9K21r7Q0N!Gqsy|RR^r^!v%tH>?a(`DWD47u%krrdEo(Pe`)<SuE-
      zCRvpO(vo{*O<JTaTjY$i$yvEi)@7R%*&*j-L^h;D&Wl4X$S%1kd*qTlAeZGKxgw9q
      zraUHB<q3I1p1NOPeJ(QC<Z7Nr+eS^>L09YGgXZ8P`%A5jnL@?m{HIK_I;@Jd(*BD2
      eUmHE&oQ~L60?eUNoX;0rz#^+vj4xpYYkvUa@rQ%}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae12af85ade68e3bb068f654cd7492d3f45a5048
      GIT binary patch
      literal 589
      zcwUW=%SyvQ6o&sv(==(L9dEU*Zp4BY)aY7qBPc>qu^J3sV44nXB&L$IQeVNh5f_4p
      z576gv<3jNy7Sx4cAm5oY^Phj_oc_nt3xGA0GEf-innBm<UHMk;T69|0$pP^|gpmv@
      z&h3sDG-Pkf7g3af%D^whjj((XG_C#mrF1(C`t3l)pq$ny-*9~|@H(3esrdz)LEUOM
      zqydJUi8M5ZeANr&UiYdl!y{4mCBta7?F!!(p%>?aO>HBw$sz@AVi-DEby{A;uu%Qy
      zo7Wk#wRSgj<+c}F@*m2TxD^I-Hwa{ys3r9{$x!;!oMGsfJ<X7sq*+o?+#0PE=*ZB|
      zU{H1k74c{D>1V@9@r><gT(=!vvmLJSccQ^pi6i`#IL2p*6MTtS;1%MeLMZY+v6Lp1
      z`5SSHf7lPm-Y55&#BzMMdWxKSh8gu7%jyLVDL+;n3?(W$jz>6nmqn3LOfNnn|81ki
      an}ZVbOMnrKCg)=b$1y=Mo0Jz&#Pla(Uwp*?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..563f40d74a6629cc43689efa7659a2adc485be4f
      GIT binary patch
      literal 952
      zcwUW?*>2N76o&svCXVAcjgxc>ls%NTKuyC|XedjdPzY@x#Sn4jq*m+5bx;=6z6e*m
      zL<I;5As&DW9tknOTdCY2aWUU~=bV{i&)7eIfBOMo0mUR@0;R2RXz%U>_U=1(ux-Do
      zE7sj!-|Ll{do?et25!HfgcPtk?t9k`+;GcYZ*{!(Kp?TlB?7Ux4FSE<4*bv`EDOYE
      zW*q@p?QVK02&7FUpb2Dae(0?YcUoR=!)*ngK)%*(yMg2Oe8z`KtrE2{5Qk-A1iET9
      z*!KGZ)3yJ3+a&>`(H-{M-iptD)?dr!c?bb>H4MF8wAxdrn-D1ev$N`U)LY$~I-a^e
      zwS$LJ7K4tY8UiWsMkQGOV!i&JYQ_^zQ%a|qP(xEAsfMm{mPRnLbWI^e7!1=am<%%v
      zM~Ez8v5=$Xi2^Z7j1l9+1TjeziDSfZVv0CHoFq=M{b}|)Lp#gdIa-N!o|q;sFgKG_
      zm}NM}@FMLJ?J{kiuo+$<78sV<`6}%ibJuA%Xg6t#v|Ge&hD)>xafetY?y_)?cAt2_
      zuu6MKJR(+@d&~ztp{>%Mvha*nW9~U^jkeB0o%Vuw$*@7&AYKuUbUwk@k3OfVSSF<b
      zL#DAPO>|@iALR&s$*lUqmMF`d*pzwkK^DZmG{k4ABNOdb+xX8O{0^|yEYzHs`-<#Q
      ddyUD%E#|=j<dBc*g@~gVQ?n6mAIBu7{s3*Fxn%$V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61bb72ccb69797fb08bc9f3b91a6a20ee0be9bfa
      GIT binary patch
      literal 1018
      zcwUXt-A)rh6bJA#-R;-1ZBNTr3#h0S0hJZRPY~29idLwC)#}w!H+0F;ntm8~5ud?Z
      z<AsSaK7f}#gKuD>F(`WGF9vT+yqMqY%$##}&t^XCzI{(blaz~6NKt;h-f^}z183`*
      z+pal}N@B@vw!CJ(vR$mT3W3{dMafje8}4)03EcX+v%I$9RojZf+d4#1=*fzr*lacM
      z>wbGqkuf?}R%8|$PrW!P>ar<J5k;w@U-y<en`>Tk)m;lbMVVrw>IP-E>Ff30W@Hv+
      zEHa2~N>WTpwQIh-XQcQ)Upu47T4{8eRd2!9_4u!_3EhMud$C^knuzwKyM9Hve^!=i
      z`?cl2Nqh4DBtthPPa%p?REDCsEDB_jKK{xN-^D9Ns9Xt$%aw?XXtZ33$>4}48WCce
      zxW<YJT^d`H&?Ge}*2fIftTQvP8}`6n*a!Pz7Utjp9E3yg06fUL{vkLF4|7~R!nSx6
      z=HW3o0*`Y_9ED??7RTWU&WI=BDee|0paW0CN$wG+;2Bex)|};D@f<wQec}ap5nkec
      zaR$!9%Ww|Pb5^_pufl7b6ASP<ya5+@K)eZWaZ+4_x8WUFWESsoLR?}?T!tlhj|av3
      zaD}_XRrmmw#n)uL!iBKKDXp<XmhqjYjUN;kyY$ldNuNwo!=_S?&5(Lw8tS8Is?Wxb
      z`eJ;e1hPr4Q1Z`(B1dK=b9np>rS{85^yXfQ{X2ltl)-s7?4e$nEu{BRmWF--?RCjG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..345c33c482f5e26474a0d3c1642ef9c19ad1a5c7
      GIT binary patch
      literal 1520
      zcwUW@TT|Oc6vxj3vKQk7d`L)0$Q{Bh;E>)MnpT#DQ7cP|BokcPxWWh!HF9E`6ngm<
      zo#ZpLN!oP!(3#G(AE2-OE`99u9L0&#ht71y)^E@4zq@C5|M>gY-vM9=zDYx$fT^AM
      zAb+^u$RFMdI=lIGhrUkGYKN`K>X8-fhgu_Ox6?2nU}P_N5ab&{ypy*#_riKdK<X&T
      z5iq)8_M%>=6~#L@1<2)kBZ{NWEdl*AvugqdwB}ZrhM|9nJx`Z#Ou$eWZ!I*p7q+8D
      zC}CJY+BAIKRZR&wnyqM*4BwM5N=lYm)+L-2&}TXlP7z(=INJpYXW1s66QF2zxvWaK
      zKt+z>P|+oFdZy~FO1L5*TeK?$Q?GSBQ&g$nmM~4UD0!Ax@+Hi(GI4?SQt~N~r-8|X
      zB^EX-w651kxNKNFe1p<eN`H%jp0BzR-r)_{rpe=*$+Aq_lJH({1zpekBwVzqRuz!x
      zh7wz&j;fZXd%jH?IyLcyRimG$n=2AZ0tQvzca1`Y*JkiUtA<&W@DZ!&o~Bzx)graB
      z0PNX41)CIBXr1;Q!zxL*Eg<*Ota(PkOxzx2@ez2As?j_Z+MJ`hIt$;SkmKr_UQ9Bp
      zB=FMg32bm<k_kWM{Tgc$YBVU@wA6r_$6KtEL$%03H!RJ^nCR~a7;{{kcJ8sFVR^n=
      z(R_n@7m=#3uT$3Nd`Ijet!<xrP_b0EItT)qSx_J)VAzb}&^p-P3|oG%*`Nu~Y}SLu
      zTF{Ev?mAP;$^FehKXkIt0!gZ!-KZ^K+WcQHhfX@<H4j?#a3x~Fkyr8-`3=zV8*v=A
      zlI)OP+E)U`|5KWt$SdOXim5~NnyG}hMWa5DkfuMK0l6Q;0C2dL6HC8ArrM8LubLAA
      zk2Cskgwc=47{C(@1;-dEJk3bs8HU6O#vq<&Wbh(m2ro0TILSDMR~g4~hB1tDj1j!X
      z$l)Rb@j7D^Z!k{a>x`55CSwfWW}L!z8K-fXF^;zwXYd2YSu8Lnu*f)vD~$8F%D8|Z
      zGA^RYxP%ttGCGVa=rShJXH4N5<0`H*rtxFO41U6x#k-6-{ERV=n~ZC?#aO^?#v<-A
      z^0>#ijt%c;h<{2Ne~-R5APb;81gSiNVdXoRSH6e)%42w@Jb^!zr|_5ZgFxj+p()SA
      zhVoF{RlbG$Nj1<>wO$+?<cWf)%>4rGo_va(-IDC{1UP^PN&JiCdk9CwOj7<Od<_%-
      E03OOK2><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1d94e2553759b6bb5d4b21961631813e9d519ac
      GIT binary patch
      literal 774
      zcwUXs-)qxQ6bJC{xx4M!u5&q?n+_Ef3R?vi>(8NOI10nL+Ksh@6(1yRLzj`JGi^r)
      zqWB-|MZ|X>d=kWm;Sm1-{SSQbKM+CRohMmAeGm-fd~$EjIl1@d<IjT+0CJcfh9b-~
      z{hrxxd1imx?rxeJYZBM&pyLFY>h8MhH=KUKvpbz(Xo9h2@7Shi`%QDTw&m2jgv9P3
      zi=gh8Wt^{juJ3ji2t%`3i=YebhLZ$gB#jv2gt4OQJEdN$<^&bH<~fA%V!Lj8mL0g^
      zcrY2yM{QCVf|15CB&1b$)9nzl#s6IMEkdf??ge#c$qic?e`L;uTOp*EecuV9Y)AHZ
      zf-wEh=7iC|+RGWrCgm)pDBPMnDI_o~Hz6t01!#oV599IsWHn~ow5oA!RTE4vt*SA?
      zcq*LY!w14yV^-pM##bT3cqPm+eG)D)O$s?y7lq5L&Iwmo?Fm;|<%DZYpM@L7gv5Dc
      zMPi<5Mp$4f3AY*h!lDsKth0J8G#Ot6mk%3)#}uxk#q><@S!IPbs~5sHt9QafR*OQw
      zYD4I-a)mCdCqj=E2|KI|>n&1mqQgi_ypB;o-$7h2V@lt}8NGsxE@EEaLq(VHNUvf~
      zuj9Ec<3LyNO>)2MrLammNNM=*j}8>3NMh{5KE{53A|6f-O43IOV2nraC!%;9lVU0=
      JpTbF;{sqg`s9gX6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ac22ce48589054456bf4dc838bc50e6814c67df
      GIT binary patch
      literal 1024
      zcwUW?O-~d-5QeLv*)JBELPQBBMnwe^7!grEmX!||)U1Fm4h)Nj*=2+w!z|415{QXE
      z!arc*KQJCljPc^lyB8A^z3ah)*DY(hNz{Xhhk2jrn(C^4Yx+au%{u@Xg6=pp3AnTw
      z)Xjq(-#plLYFp;&66=x^R^71IJ}h{_hI=sUJJo6&qyS^v*>_Ce2{z5e(zaW!2}m3s
      zWeI317I>X0`(EJHvI3g>`Yi!+wzA<SK|pI7S|BE%J?{nXLVc&?hRaULcLj9hD`m&G
      zoY0HbN5NP|l}SM}7-={L2`*LJ@~Q&*^Z$9~2?41>r5={uIWH<{{E;~rSrL%F69jIk
      zvR(FgQb6}ViwkJ`t31z;P4X;xQ)G?bnjisjegq_WF$of)&tHwFZ<BVj@!Yaou<^sP
      zW7zm<+3_flKtjtlVj3!BaBPf`Lh59+BAsLOAYEjf!3HtTBDFJmk%k!;kj^vukg|*c
      zq#4E_(mdk|QU_xQX@GGRsf#g;BpBC_OvVT{zB5LVRv2SQF~&I3DkGyCWi_UBziFf#
      z;}(+5$f-lmX$SKfw^i(}Hj+p3825~itP46}QRBYKd!V$SbXn;`rIykarK?J9rE5xy
      zO4pS-Nb8KUcKH}-jj^du>md~x+enWXzIL*s5$JhT^gMPo_VidnjjBdXqpoMQuknPN
      zzk<|D_3P8DGhhJ75ondyAuDe{PL4uejzL9^!!tPn?_~zQ$w|>8vtmWw6nk<?ypYr4
      zlbjKs<%swqhoMbX<1*2$*H;NlreL;Qehuxv+r^^b(U!DM0E7<p{kYOjIKfP*?OkvR
      GPX7Yxa}F5*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66abc5a9871628e6520b643bb31e31e4e5178edb
      GIT binary patch
      literal 5389
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11453366a5cfa38d61a6184beef7ed74d41f52fb
      GIT binary patch
      literal 453
      zcwUW9O-sW-5PcKV#3s?!))qVpiXR1o=SnX{K?qW)6tCO3q$|m$?55KGEKh<5e}F$q
      z+(glW2=2gR-t3z<GjH!NuK>=`bzu<>6S)YNSsE_qteAy&BZDKRG*<_!)#Wng^Frj(
      zg-vKbutyfAOeW#?2f?`zQWOJ1=Q#Qij0+`X(m$CH>|uV-J#3&JpazG~h=k-fi)_l(
      zEt{sC(2DYyr4yz^$-jzrF%z0_6#Z+%KEchn)-0*~er-bV#`!|U{7RJO%{7~|QcMW0
      zrQ~XuGOf9Gu}j$db27nSn~i;txvzX=!W?PPHEaOO1mK+Zp0W94G7FwTudI@f8U^qT
      e?|!NfV5@R*u#JZCu+Xe}cF?N2O7}K8sDA*f<ZTTA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyInput.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b672736d1260c63ed38c501b1c0448488369eb6
      GIT binary patch
      literal 330
      zcwTi+O-sW-5Pj2+tc_Kp?Zu<up}n|x_9ztsLJMBR+ZdOcx^6<U3F%++;1BReiIX5w
      zgwA1xH#2YEysz(%PXO1LD)a~!Ygg&!-RdT1|EeEXl2=@mrnua0W0zN6VL*sBT(h?9
      z)_VE8F^MNAeyQ0dhR~nQp9tZiNlfn3%#{iw!la|5nU0r#6T;AEZ^m_;SWwNjk_*$>
      z{QkefjhuYQsv<FWsg<2*=eMhNnJ|u>GsUgtvNR%kMmXPVM;`t)6c9uoZS=+35P@JN
      fXdv}KIw20xnjYgwx;-3s`2>;F5H0%@lVJ1%ITcP1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b93bf0af60cb92076b26fd7a25d8df075dac3f2f
      GIT binary patch
      literal 15434
      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
      C7+WR)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..008542333198f43bebc1c84c1339b71ac0d9a3da
      GIT binary patch
      literal 796
      zcwUWBU2oGs5S&fYI0+^$Nt+hJM`@9WEriwQBKlB?5)@jbL{WLXgj4F^*pcm2fnU{1
      ztt$0_AHa`7?47Md6&0$b+uK{u%+B8Z{&VvSz%F(S<Or`v!OWdce0M$-$*Fttg<~)L
      zE(7nUj9x8|1`34Lu{aa1FM^SKJQ&MiLMS9ZrjkHyLjFwngj#0_>L!sFjP?k{cV6Hn
      z?-|}|+kM^+!f&zy!b1~fR0)k%`(K_yS{*NtN3+R5Mm;g`rD_lkh2IyEr_Ncikeqrk
      z!S391oV^P2SX0f{*?7zDm)XpQi4_!8_Sl4h62TbBq$lS*=UU6YYp_xhra7U~4QJ6%
      ze(;o^`t8nd6_sGNgFr?HzKCNP8+b{0`ai#{xh!CdedYP(a=h3k)W;?{7I>ARuJZwB
      z`;1Z;!)ekr%nMDiI97D|kf|TB%2^|Y;Sp+?n35$eR?Wn|GDbDEoNLsb<`o*wn=5QC
      zMQghICyt+)cErSEExwh~7UI@I+|sUdoIgP`Yvb~+{;fEd*gRi|r-ZH+G*dt($TxRC
      W^2r_K9G>a;94`QUZ^VALQThv!FpN|H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f6743cbbe8aa7520531007e719aac06d4951a82
      GIT binary patch
      literal 7206
      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
      HBk=zZAS#+K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/applet/Applet$AccessibleApplet.class b/libjava/classpath/lib/java/applet/Applet$AccessibleApplet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..941060f307d11eb948915ab48b735ff52dfebdf3
      GIT binary patch
      literal 1235
      zcwUWD+fEZv6kU5dWqKKGDVGY~C=~2PTkwu0CQXH;rW!-BC~t>yqGQHs)0v`vihrR*
      zA@RWv;L$Je4~&n-#JFeLauJgDWzOug*IIjZ&+5V7uipSHVp)Sin0+mFL|!zTrgZW}
      z??@Kwb!pqimMJ?I8dO4}1AOb`p9)Kw$3YwG-W4Hg%a$R`nrzud!+KVJNT5fA;Zno0
      z9bq{&VYa2ed9Ymh{`~h3!jSXIu#*dfvC3&11@12!mf<`g#8YPh(lvrwYHZ6Oc(#rZ
      z!Xfw&)1hOOFxn&aJbQ#l#jxa)_M0u)S{Lk|5UVumY+A5&uDh42YmG2>#@ti;VW%T6
      zrE_$>)^H`}Q)!R=E-$(r!!(@t`IERp5EpPs!$rbOf3%LvxI*x+t`#4z5R!uoAdH`I
      zS9OFVtI{E4`a0}k3+`fPbxb1>!W^z@nCHcv-i?kF(u9Cv7we9(!&~sB(wjkKab3f;
      zZru8e(~(1-KYp>aUaqb5zCj-n8(hRq4L5l21Hh}U)mymD{>1h+A(a|vNP3eK&9N8=
      zUG<U?sy5oKx?DBfNQ66E%DHTUUbZaRDw)EzC5uM?&lM7!Yajnv6->d8A+9v93PhuB
      z*!kTDmBT*FopW3*aZlkhoXLJcB$M68$S035#?O%3qF?aSPmFV|Gl`*?K%7s)c}#X?
      za(ucybr(|~5BctR(4S*m^^iO5S#`NDx)vrg`<SU@J|nV+<OhVayU6TeVIzAa7-In_
      p8vIHC5haMY67s|+Is#pBKV$FUF3T&p=W&;C-}^bP$vG6D{sRKdHj@AV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/applet/Applet$URLAudioClip.class b/libjava/classpath/lib/java/applet/Applet$URLAudioClip.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e402a4a14bd9eac20535fc8a48cc06e8df38b392
      GIT binary patch
      literal 1500
      zcwUWD+fvg|6kX@g5@;i&AfSlKwf2HU6fX!~pupI%11JIyK85xS#z~V*k~;D&et@q!
      zqoerXqt5tIj{BU3S`kL4)9jP8*IsMw-Q6EQzkCHSi&YJr;qpuCm1SDK?}*4;QekrY
      zX=SNVv%QjI`x+7qh5|X3yKipny%g0*Lnp()AEieH3>}TYVd$x-v`abSTVP03Rd!h2
      zzcxd!;nvL1s#AH*l$C_(T(n&~y3dfw{aK#hA%c=u6Df3{S4SEK3FY!T-C*d`p`nYR
      zw_>|uy;0v2!82>m5tONTRm<720$aYvmx<_w9Wsnn{?R)5(e_2uY-%KzKi#-AF|4B-
      zsT4+VNyEi>u*cDgd+Q*KL|w-a&Pn*Fjxmfg^plp#mtDURZAF2w>I}Dz58^}@$Lki-
      zm_$~?6vMgGT<f@k98JUXh0Bo7{U33DM?-;O`XsO%|F%mB+mVxAeO(oPWP7fLX=+ck
      zVS8qIqb)JRFnbc!wi`Bl-wPs9Qx?|jHa;@#c%Gl4sb7+fUe{sb2Hob$a!)$z2hCMW
      z_>OfT0k?JBkqeUyBP)m~5k{Ub6AL=#VaU@x9rq=N5sGLnu<Byd3+<*@YRhW`RUs`f
      zq??N}BTX~tW!Du!$+5yvgc?e;aeprr!P?gfqvX4TzDaQU(B{(Lk;~<wn56qObb6kl
      zw>5<TQiV_GDHJ~<^Il>5>DfaZ;KNAp5p?s5I7@efO*97R1a*?^4C8XwV$L^&VHD>J
      zACUQuE(+)06+Yv_N1T^udHore4>7^<7W(d6bkR4lTVN!wz$C0=0$Jo$ETE|346er3
      zveXRt7&JZ(oll{kXOZPO6!<h|_%)b(4s-mbvaC1F#FiQTkVb6uN!)yfn!i>lenYCr
      z4>8N}dj@?-(D5#ke1T@L2!r2in?oihO_InQ<hC%}Y|(F0lqlnfzPoscTkJ3PC1PJD
      z_7ZyeN*lY;Vo$f&=UeR0WAj5t>;|#lWhizWVzIr2K_UQuL?UGpc}yY|4D$6hp`n&g
      VUo6D&K-E9QlKPRQ^fFeE`UTU!GC}|V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/applet/Applet.class b/libjava/classpath/lib/java/applet/Applet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f698f1747832e4469ee906aa7338925b85eb4265
      GIT binary patch
      literal 4351
      zcwUWG`*Yk@75=XLP_irAYddk1*iB8J`!HSFw9w+V;MhsK!Fe=poTe!$@~+}lx+}So
      zHg?kT=o=`d<xPM>d2~9{VLItd9=MsI12Z%XKf#Ys{sCtA6PUtxC0Q%)YGZy_UFqI)
      zzH`oZ&bep*^6~q>2XF`8QlSV8ozhS1MSW?hW_ZOZe^Jpb&>!qCd&NV#Wz+;RuHl$^
      zZQgKP)3%P3W(34Ofxc<may{Mh=Ji^`=y~_Q$M665t#7Rgbh}<-L15c#yMZ~LObYZY
      zn-#B0n36zm)i4*Up1`19E*q|EF4PPnd&Ua)Zu2o#ifcz^&GgO`r&<LG*?XU9ncf2e
      zUD@0`eVDc@Mhacns$mdADO`u`Dz*uXMbSOz=u1_z?C!Bnn~rVO4a?K81ET^d(|yR$
      zD>WMN@g7rgy}*u0bM0`?O4(TQ$Vm!g*eWnEYg)#EMt#9>9?|I?Ii9u4WKJi4{0=v}
      zy{bvzEeZTE5Y-K65*W>PVlX$q83MOzNFgoXvKln>$+x_Qe)Od=f!kGlQeY$*K|>Lr
      z63~K!!-i{~rDHwWQc04x$#kd6o_X4kIJ-1f3`rSSG`tzR+>ku&)?JEcvbn%Pi`YjF
      z&rVA5&uF*{cMGH`E^{D7<^E?i+#~lj?jO<}y>57h!x+LCYr3^qobw#hTAa+aZ%Kp)
      zG)&??(q~awQrjj)mxvxj8I{oWYhJD+VXbf^@Qj8j>}Cl$ArIHB5zk!Dm<(9fy-)f>
      z$f_tsy%Rr|hxrs!FsosYB)6+#)|**g2gMR|tM>Aor+W=n!qy}b<|Wol8gn?J;t_%E
      z9fQzt5QkVeb(W;QNdGsHg;L#r9nY>$QLgEZFEJ?%Jf`6&9;L?(hwa|KUPIu{7L1M=
      zYoe-nf~k&crEmhe>_ry#O&bIH(X;Ou!p=x`zg|0OJ9VQ%rKtC4$1;|u8Wq!?u9-``
      zGdhGEGPfp3A5DQ9+F8AsN|96wRXi!(CNYDp!1F;lN5YazTSFa-0{3nlV+X%v<TkI@
      zsFX|ANq%q1CiI2CW{UZjj1d!QcxJ5_>`ux{a9M+gM$jHn^98UY+1&BtNx<DpHT_H)
      z&)_R6zRVg;bXLPz45|2<z;F{HmKsGbvz@LH=nIlACaqiE-n@Z0P#n)6AvSl_is5>W
      zeTJb)HrnSyE{u5N2_Y}XZ)q4nM#Z;Tf(dzVDg_%Uyo%Rl?!Obe64u?;vI0^Lr@_I6
      zQ%0Ho><q<ByBKVhtfdBTT*}k~>4+Rx#Sht^P1>ewy6YaWy}fqBszhQce!NC5K}!c?
      zGv_DxnTnsT-3&=4HN1f#7H-8jsW)o8=bN4i-aDh$aF(vl*$t;`>@{U+rGtoXmkO-<
      zl4Ti=@329fOe=Ggh&K^FLGru!*Q1B?wFkZYQu(D|6P}YJjPK9M0p_p${;J4Kaos^#
      z&Tl@4`Bmb+;5wYYj4i*z$T_61VC>js?EK(8U+D%uhtSQZ$>);<ukpK%aqeh=DxJBJ
      z>mY8z%^~apom05pm@iz!E%^($?Hsmo$(_SsL4L~jRTR3=YGsAtoF&H7M197$G7=z#
      zR^*!ukbKK28rr+d{{~XTy=4`53j8+0?e$Myj(MC4v4k9~$q1hoINyTsy+nk2Iw9QK
      zj_^hz0!MI&@HtA$Skn@ru!{SYHi&m(l%yj{(p3GtZ=Pc}*`4WjcP=El!$}(=SWKd<
      zv2lrT6`B0#MJ8_SB64q|U+#^LwWM%_$pb!ME&hSHf5aC2iTfY=cE$s&$memtK861#
      zD^&4q?+tD52@9w%U$}q=`P+91UuYUi`G<cc#NT3s^hMx(*pCA~0UYEZ<aEUDB|J=a
      z4=ZQ|{D|v6J1{&SGR(Q&maYKsSbMtu)dB1{9uL937=k@P>Lfvf`71batT1sIU%G_y
      z`J>{z57bAFDj{^gFZds>A7elu#_nKbVlXrz-(+nl*p8D}42|ugv^?8<1=VBh{8KG{
      zi%hIEHv3SrH0lvRYv@*6=wjyvp>s%GEA*#2hc50wzu3jl@BTkS7jWQ)#wHN7g(6xV
      z-W`isiQ0ivKGZCRnmr`!bgS~gm~u~~yn-_unteRc>{(v3fo7Sz0Xqe<vVUR~PYb+_
      z?xXKfpcirge-*JCRG8=$HL_zNBc8e@L%mGLvm6kLZ*U<rcp_~3OujI23D2*yCllBo
      z*$cAqEVJ=E?Y$JUm5FR+qHJWMY`hqapMoDOf6Yz|SczY@B4XvGjTPTaRD5}3#di}G
      zzrL~Jl|;pF;G3c1K4wLp$@%xnRSdAoUzJVw+C{t~x0(eJ@cAKBaTUYj&oSI>A+Cb&
      zat<l@zHeQ@5AY-3#$4Es!|O*lE9P9wfE9mddHjPZ`-uNz;&<I}l(J#`9KWDh1#kMg
      Vzr?S6ZH52d1b$7FD%am2^*>bMJcs}Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/applet/AppletContext.class b/libjava/classpath/lib/java/applet/AppletContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e3e677c1c85aa319b5e251932db7d3c5d59a36f
      GIT binary patch
      literal 833
      zcwTjq%TB^T6o&snrBFcxuXs;f2rg_~V@!;fgh*l{(S5~99a5%EI~9C27e0UwWjr%r
      z6R>o1X3qKkbL)Kne0~8q$B~5`L%r|5yN(-%K3C3_G1q}qe55QaGOU`g?@G^kc<J+=
      zVkmiBT_vv~xb{WJaMI`)Mw0&NvD0dHrZWD4ErtRK+XL6*3`cWBL**EP=%OxTk}xzT
      zxap&-A|bumI>wO9PGvC-*O*X=625aQlL3!hB?77QcZDZil|<BzGmpE-DsoBcQv4PS
      zZ-O3?k{Ybe&hyN0Jmbq4fhb!i>MCl4`rXKylb~YE6<xVIU^vZS#vTzkZ5bvLa-98k
      z)Z?L^B(|{4u$F=kX=J?Wzx2)dtDecvP)>FC{Da!xoLXaB=_LkHOZS`=xcFa5uh#Ac
      zNz~(a!lyq|n|hLGT99X8Sb+X)dZA0mL%&oD1!Ie_ja^2GxH3^WtkAuJRpYOqYHST_
      e#;#+7xJ}{~$!?LSjvW)(#a^0WpH2tnbodKe-{w33
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/applet/AppletStub.class b/libjava/classpath/lib/java/applet/AppletStub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95622ca5ebfb8c2da81b93f5f4ba8f0de10b436f
      GIT binary patch
      literal 359
      zcwS{tO;5r=5Pb{MB2<eWxOp}0#l|xygqV;t(a^xb+fpaZlCmZ3mKcAU2Y-M+$~fI(
      zh;a}5GH>R+`S|+&_yll|YZo1X@m3yWB=`HAOf<ESn0n*lOkiYlxzt(owAoT>1p2C)
      zrbZn|pc{lQ0)9qjUZnMow0V#f^P?b)tx&V$Y8g)ihFml&Ua2kcIC_?)+>xPD;5LX)
      zeG*eDolV036dSXyop4rYLvK9J&2O(i3mnrd@mhXKm3rsSy<o8j*8+p2sLPZdRnDY;
      q+WM~Xas+reG|%B9^x&X5hKs(%^CJ#0wCLf&;w5}m@Ra;_aP<RAyIPn4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/applet/AudioClip.class b/libjava/classpath/lib/java/applet/AudioClip.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a337f100beaaeb5ddf9c56e138fe63500879c4e
      GIT binary patch
      literal 162
      zcwRg8Z`VEs1_nb0ZgvJHMh4NW#Ii*F#DapH)DnHi(v-}6=bX#}b_Nzk1_7{CPGVlV
      zzJF3yYH|r914}_pVkIL3vxa6EkW*ZeUjU?X@<9|=aDHh~a;jTqPAVe<AKWB8kRfc0
      g3_wi`AixYXn3aKz0b~I?l;!}@Koy)ol8J!}0BIc|PXGV_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTError.class b/libjava/classpath/lib/java/awt/AWTError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c2c2d683604262af34590564b7d9f0ab99163ca
      GIT binary patch
      literal 394
      zcwS{r%SyvQ6g@YljmE~lYz24je1O4qB_dTp32s{BdRm7%l1^Zf=*RdKt^^nT0DnX9
      zGsK%wana4a=N``EzJI+f032b<gF|RPh({5Mry@MP9iJPM84oU@Y3WqxS!hW@E0;!z
      zG?6A(nZCI^BhVEg7-l*zgf0@1ma_J_c%H1e9~@jiR$3Jip|>0Vhm8uO^lY$~5ZqyQ
      zCw;77qX8f5+!-q^ugm#Fnz5LqlF*5>DOU<E=KGg)i+hz5y7AKI1A;e~c`jzwyVOeX
      zM_Fm6@<LTX!JqH2Qep?h&w%GPYN+$}_;Rqyh^h~HHkgT+b9mSH4_*<xSWT0sZ`p{w
      WCulM1|ESPL2e7D%O`FxTp8hvG7glQk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTEvent.class b/libjava/classpath/lib/java/awt/AWTEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c48dbf1ad4350ea58b9fffe3448a34b59e8dd852
      GIT binary patch
      literal 3487
      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
      OUbPEU@S1&wi~k3<%z#q>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTEventMulticaster.class b/libjava/classpath/lib/java/awt/AWTEventMulticaster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e543de29418d6a6afc8ee04ad503b752c288410
      GIT binary patch
      literal 14395
      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
      JVKydb{ud)#Yfk_G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTException.class b/libjava/classpath/lib/java/awt/AWTException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65a5c73c2448244c2281f513010c8ba42e718a7f
      GIT binary patch
      literal 410
      zcwTK!%Syvg5IqyqMq+DUwnbOE^8p6em5NjaCAev=;6`rarCv#IB)L^T$6s(IxbOqq
      z`w9MrIJt@nx|zqBIp@s0ygxky*h1TbLug)!8xe?G6YQQ2_U|HjZB(K?xP*os#X^sR
      z?*XBj$yAAWDASDllfyj%9TCdCL}x~5GZgVu7T)g9`)A9qi-h8~(#mw%X*K*2?3+~S
      zac6BvaC^yx^f80^5`4@NDxuQycsd!$bRb5tB-FzsVoSls+<$?txl|dU9sc`4hu}?Q
      zmWi?D|8XYx{bZU(@<8Qcwcp&$d>bnuJ_;O{P(YEh$DM;&t|-5hV~LS2V-Dxy`o<&5
      g4|b=*(YI)qxjU$G)%x5*4Ryd)4J=r#rscFg0G+>G8vp<R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke$1.class b/libjava/classpath/lib/java/awt/AWTKeyStroke$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b82323aeaf12bb0bafb89d2fa0ea67fcfd08b390
      GIT binary patch
      literal 1001
      zcwVhiO>Y`85PgOX5JE^v8}ilkbK3%k5_%<ygjS0{g<e3U;u1Mvg>4o)+V!TQzo*As
      zdTFH|@&odtstzV;gG4S>wURx4^E~f)cCLT@yaG@`DTx@v<|lr^%lxx0*N(dH#iXMH
      zbtdde64q@p(w<*#dGbsQ8$2Af`8h+jUHf?K)SQNU+-de*2G(R)b(9P>m%7LONW_5@
      z7!n7b^z<PGg=W29>@ir58j3XHSj}J=X@)f_E<Qx#6A^Uzi7yz|TWY}l9uK_f`3AJ~
      z$O{>^TlZM5GOXBKDmfXeDBPbrRmfp|4tYmNpCK2BvAPhhKNO*Mr4A+xTZPu&htqRy
      zgI9}0U+#FPlItiSKaGX7gT?l$_rQl#Hcf4MoWUNR&?7_d3)PMniqz1AFt!*r78+v6
      z&-ZC^e%mYezgS~PcT^M%MBSSf&D~AEonB(dG^G@Q<MS{S^mCebbmvCqAGFt8Iq+5J
      z$<wybBQ;E-NS#>7$3C@?29DMpEFnRAl1?$2z!>c`WrVCy)P+SKO=fA=-ur>fH^a)(
      znl{Wn-6Lg+N;4iFAP1Oe-PD~%5An#bQ`kVBbS-RRi;!(oZRbWQW;of>ckJd;_=+X#
      zGJZ)&-000}4UATP#{8p|#Zx?^{Bw#khBrlCP-Nky(XjE#cxEOG@;1|cjW@JgC;-0!
      DInC%m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke$2.class b/libjava/classpath/lib/java/awt/AWTKeyStroke$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a23cf24f820c431afd0646f91feee0e03d077a22
      GIT binary patch
      literal 1451
      zcwUWEOHUI~6#gz9Ixvg^<t11V5wYb}0UtmCMJ!S&1qC7M!VKj?2Zk9kGX+_=&}e)l
      z#<(<b&sJTOL=$xF4{+g+5zkDk6j~A&_c7<3`<?H+=Ev_Zy8yazS40s*-HNiIgp^G?
      zG%`Os!MA2?(^%y#Jt72#3RkHq`f_M$VTC7b5nhHyS8DM@%2e&G(6p&;s2X49iz5kJ
      zHFO5=psK6(FoP!$oMRA1jYTfOgEAQ+N*Kyxs?Ou7wFPd@DhnEC@WqUTqRlC$>U?K~
      zf}K<?hWgkM6vO1eOp(9pKrnWgX;?&6ZghNu>vo7<N1Tg<8q|rXB`*69M>WN=WSl@f
      zL+LWN$5gH@5&?f8_#g-0<VzYk2)XL8gp)WW!vEJ-zKM)RoMsRSF|Mrf!*nScRbLL5
      z;0%Q`H}O!yS)3Emav=K|BN?qY&mdX0V%pZcY9|?L0{K|M`=tn?T|^t{3nouS2Rez<
      z#;TpkbyWr>Wvg0fT(Odq%6iyg5|VKN-INb2wP3mEj>~9)0Gveh%D9M26bHr1&>G0E
      zN`XR2xPpEWeGHX(9Apf@Df4=Y@cIhi{g($3LkG$e)opI-iWV_V!;~<HGH1IcV+7YJ
      zRHu1Im6Szk>Bx0Cn>3A0CtU}8>`O)5IM7cnyofQ%ZjSI#g0E-CWGUNV4M(>Z15;^5
      zX)XO5g@Sg1?lzY%zcTce6g9B|BuFRC7%4Ns$5f{cDs!8p%Xz>cM|GW>?r?A-TOQF9
      znqd*}B)5~sBJ~Fqh*mNERf=fQh|^ao-FoR{bQZVmK>FmWW!fdz>@fsV9;2I_F~V__
      z(@A}g$}GSyvT<PJK3^KuvG(1eZ3Nr>J@L*o8U}=V!Pk^V^Lx~MMxb8srqR{O(&$O!
      z^8B-+J^zQjpWCR4f5qUv9SqZ(tKTvDjeT^{`>EuSETb-z(f$NpJSEL@lD!}nFHwtE
      zXu@mskZcfdFod^=;hoERn5>CembDk-xJk=Fjv$I#gj|7UOpv{YaQv7gTY(VDF@<T8
      Yd2rj!$Q{hMImx67@L`sAfd&|V0Nqhz<^TWy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class b/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6e66864b193e357132f8a2dfc403fff96ac9f9d
      GIT binary patch
      literal 1214
      zcwU85TTc@~6#j;;EL~P^LJ<`~MCnB-h<6AHK}?7%nv_7IPupQEgX=Dtoh|aOG*L`^
      zFh2X6jPcC2(sK1-CNtmp&i$NUf4=_!FpC8n9Sp-ee%&wod%C=|x&A`zSG0=Wi^(|~
      z7DHbu4E(TGepTHOT-)emm`c%D@I*<yUw*A*T?V2iwpKoJv8!biE^%`+xOG36jFT!4
      z{5WRl_geOr4K&ZtxgbNS7a0cgC!~c925ULm5?L@@bYY{*K?c1pvgl*T<PD+Mlc88k
      zK2(KT_p5<m81N$Q2OGYU=HCP@y)7w(5$}wADU^&#LK8>9JDxTPox|i}8zT&3EzVk0
      zN%;0lp|_(}32a<t7;lkQ!&v*Fmc9|Tu||)w0xF~*EO9R4xQ#W&P-?N1co$GqWV240
      z8pgV>YC<0>IJkkEHYTV#$7<?g61Ny~#C|5IElO-HQ%YJTTt|vwF8}sq8@!XQ+mz-V
      zOrc;S&oFu}(M1s@YGf>QBSG2dO#V$_!`Qg%Vj5+J?ojMC%Ed`MbtIx@KTc_pjai1F
      zQ@hK+ICbnlX;4*;4$l7Wzu}oUUv;6lXeOi*C5nsZ(rEOz`=2)2v<<6aC{$WgL8I8a
      z67nF5Wms#Bj*EFXv~x<-WUPg%H1`HGH2oPm7r^=k%o5Q0cF@VfA+(!bkLhm^r&#(5
      zxA+Y`pHoi1!BUCQ{*3{8x%4*ZB@Cwc5OTyAPB9CYaRt|KJ+&G&t&SAGz-0#*_e$0Q
      zZkOnJ=O<=1OP@%XNuA`#JXi)@tOHqQp@-QRW?iYnT*FAyA#E=1VU8T%ZwAvq9;8V=
      WOv8Re2_a3+gbK3qgl>xp@$@f8H!@iO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke.class b/libjava/classpath/lib/java/awt/AWTKeyStroke.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5695cda2d171508fae42c9df3e996340b5b27bda
      GIT binary patch
      literal 7354
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AWTPermission.class b/libjava/classpath/lib/java/awt/AWTPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40d3e029d8fd539058c3c52fcf860376a371a2ee
      GIT binary patch
      literal 558
      zcwTi-&r1S96#hn6H#SYPGz)^DLs`($*$~QziX{Tg&f_-N$T|zVvsrZNPwEtO=w5$R
      z^mY^?w8Ol4@6Gq)z4`in{{V1^bsHIm+K@kRmyfl3eA~Si(MZOz43!OwVbi?D!cQWp
      zpWG83OaB+bP>w|;dC(J4THjopGO$aAVmnl^=1TW?kciwfw?5Uj_rj1rl1l0pLv`0P
      z(g9Zkx1%Ge2F*r~!D@$h!a){G1vpq_D0xzet7Oy{QJ41v!BFu+pDZ~UQ$1~3`d-Ei
      zb#MMMO+qL>GVB>&hMhUn%%9KZz9v1gaynrW`Ql8Pnf|yPq*VG}Mtgwb26D*LZBv!O
      z0v(nvN3lSi7S$QL^LzVmD83p@iK1h=lDI>ZDXUFTSVjdf*$P%kBh{)-way8X{a0&D
      WT8~C+Yl525O0ybe>4a;BUH<`QaCUV7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ActiveEvent.class b/libjava/classpath/lib/java/awt/ActiveEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..759557aa29208f8f46416e1a402fad64c38fe788
      GIT binary patch
      literal 137
      zcwRg8Z`VEs1_nb0PId++Mh20r#Ii*F#PSk-$K;aCvQ*cy)VvaQ1{OvJ0kBL?VqUtw
      ze^ORzatR{?M@nXKL1IaA1|tKrhGrNe16Oc<X;E^jTV_rwPy><)dLYegj0`}93?RS=
      RG?0~n4a8z#2a-$-8~{0!AH@Iw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Adjustable.class b/libjava/classpath/lib/java/awt/Adjustable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64d46c13b49b5b5e361c3670f7393faf36616aea
      GIT binary patch
      literal 666
      zcwTLhO;5r=5Qb+30jqq8DERHgz(wNOQzaOiRGJ`i@M4y-X%^dU(r(e;=D{D}k222I
      z6&vw1`@A#z?(EFR=i55~T*6rq)(AA_bU}OcMfS|uJc%Wp`m6|f0<|>ZQ{nZT>72Qe
      zfN|@LtVd@!Hf;jLB2ey!0<Q=;p?<=0XbS{Nlfh_g^-WtbAy64QPk3*D*T$AJR4Tq(
      z@tAZX&V;0rhk`(^(?v%kX7Y{;9wY&Qe8=ieQ1dccT0mblcp0c+=0R|22{&Q^8l&W`
      zNOi2b_CxnMt9h%Ma+~m&<2cM9On%({NF`OJ{*Fg)d2G_z?0cHZ%jU6Uf<*+*JN9zg
      zY=NoXYSoqcaSOW$7wkU|<33Cxm)&q5AFBTD>_Ryga4nz)oP##3LjkF%#tkLpjSL&e
      zn;G7MDz3Z?6;P|MLM@GT&D)wAns+oeHScQP)7;YB*1WIzK=UCSrSVur?BOKs;q(iy
      CH<kqe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AlphaComposite$1.class b/libjava/classpath/lib/java/awt/AlphaComposite$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4587a1736f75ffc9c5e957e42ef06bf660947926
      GIT binary patch
      literal 715
      zcwTi;U2hUW6g>l5z%8ZH+Apzwt_koU#YbyQ=w?Ytz?U|}@X}0SBBRR;*_o}WzsJYE
      z_@apq{s4cJ@$OJ-h?+@e?#H?Jo-_By&u`xWwDGiv9K+r_e!*M(gKc%<`ILuxHrGa4
      z5wwf&7<ODbwK8t?rFt(W$J|T@e9llAbl#kWo$xq1JL!!g2G(O(3$-$qD?8+ID)K-H
      z4273cN&AY7dapZb3>myoPlS&=*2=gApJAPvi`VJwTqLLbJQfTaeLd#!kS8+puY;bQ
      zO2bg=|CjV3!)m~lR+lrKnu8^;O&q&Rk>?Z{F;o*V(-$I&C&JiB+2oR8x8DCFodgFi
      ze%KiKr08xLHQXaUMt&q(`Fex27lf;4*!pKBgMXsaWGuQeld`$Y{8?7QQ0^%uk}&4R
      z2oky;sc}qs^>!faR8NWsey`+j@i-u6^yL{pte`+|k-Qx3AV)9#GeuU(I)z7vcGIi{
      z`(IK1>`)cDeTRHObu^o-<^qS?r~=N~aD6jt6L%cCge`2-Tn{_gy`FGHnJiane!*U~
      tgil!UuJTtma~3_0+>Gr7@@7T_`?&9vJaG7jc;uKdR|8`3m~IbGfM50>kn#Wk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AlphaComposite.class b/libjava/classpath/lib/java/awt/AlphaComposite.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..78eba385519002ca62dc567d80a21ea087c2ad01
      GIT binary patch
      literal 3106
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/AttributeValue.class b/libjava/classpath/lib/java/awt/AttributeValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43d074d0558fce72df1b71fb855787f0807835c7
      GIT binary patch
      literal 609
      zcwTi-%SyvQ6g|_XuNeE*s#WN+En-mIDS`-MHRz%e5I0V1Xj9Sz(xm>B3k8ed!VmDH
      z#5<EvAJomvnS1Yf-1+!?dk3(Ktqc+jwGp3koj(NnaS-@+FAOY`JE4_<!cde=hr0v)
      zsyDLw0Yhpkx(uvC*yUqu!ce(2z6ZOc;tmcN(ucNd2S;Sl>?{~)nGDK_cW<dkVp&5D
      zd4^=OW#&M}8d69LRMwC|mZ4zSu5}rXdzOFAdk!Ti8(yC~CiiXej*Ch#v?<ZL@y}Y6
      zD?8+qp)i(qv_>}YqD&0cW^2(ZYS#<>zIAE~i^^}s9WjpvMNQJTCQuZ~36(`|x<xey
      zmHJDBZfHVO3hh^D?fQ(s_6((GNv%klLgyKs=R~_e9tNsZX+$)vU=@%^*f5ENQG##{
      zYq5<^x9FwXFDN|D#Up|#1+{1(7Njr3Moiw9Vt`8Ik`UN?`lE37LqVM@)aBIX7wJ)J
      ASpWb4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/BasicStroke.class b/libjava/classpath/lib/java/awt/BasicStroke.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..560647171aa58c9564bd8db0067461cd127d903f
      GIT binary patch
      literal 11709
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/BorderLayout.class b/libjava/classpath/lib/java/awt/BorderLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a076d342ee68d8661b85978e5382314be853845
      GIT binary patch
      literal 8006
      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
      FKLN$s0`UL<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/BufferCapabilities$FlipContents.class b/libjava/classpath/lib/java/awt/BufferCapabilities$FlipContents.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80d0199048daf10952f0ec79718473cbca597d92
      GIT binary patch
      literal 873
      zcwUWC+iuf95Ivi#;~H9AXqpDft&}7{!}W;>DNUPV5t0%^P=t7Jl1<oR?8uk$$}d45
      zDuLhw_$b8eCISQqVaYpZcW36zoY}A6K7Ijk3-_`}Fq96QL#OJzjjG%6c+7)_Gj#^S
      z6_McKM$;A3hVMn(i^42Y4EZ14^(YF&AdYy?abwPqZr300+6>DtTFS?Dyh+t2A8&G>
      zA@{7kv)i=VyE_b(*8fscpuSyiJlgAaD4sa>yH=;mkZE-GEtyKI4PD`h=mA5rRPHgP
      z8vcl9vBa?Sdlec?sw4JBd@MXZ(r}ux51iraN#N6|h7}^12Eq?CtP;o2p9((8fnm)+
      z8X29?Sp(;=PM5VgYpP_Gd(!8Efh;tME*Z$p(1rnhhBgf>Kx0^J5p_F$GvL8fXW)`-
      zX3HNsZqEsX+^a(!NmL}!HPX9e{Y6jJY4l2jRPo_Ver8cOwjT#W-V`!%{!eYUWFiK`
      z@;th5oiOAy)jJHue+-2De;o<E8`7HIPa11d6+#8sxw5&r)#r9W*#xZyPEg!Q+Py;x
      z@_U&5jKzM^JZ1M&=Ca*Sn`i8P#?0GCD0~9zCy!A)!g&c(3SN{jt>9$|GYVdLuNbb<
      zx=wWfU992>ig=DqyrgPJsNn#6XrZJ$<xex5S5v26<XNs#{D8tS%0JWT>LR4#BNe(b
      dbHsJklteeMMQIYKs+gNZCZlK;xQ)9gd<Vs{vzh<^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/BufferCapabilities.class b/libjava/classpath/lib/java/awt/BufferCapabilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0a4b670c6857257d451309b5b3e941e4e7113c7
      GIT binary patch
      literal 1772
      zcwUWEO-~b16g{sL2FeJvd|B`dL~To<qT&~dLPHahibf0x?xy8YpAIv1Is^Uy|9}fW
      zw{9`PL?qEfTw&tUy??+TV2lgnebcc_+6Gw6dw1@8=bYPf@ATW>kDmdIVp2hXq3?mV
      zqNTJ|J2mAjEpaQY6}6nug)MkVL69NrUeGn8kh+z7!1K0(CWelkY+5%BuH|&j(70ro
      zhRtv|TVb79)(YHDI?fQxY59k=E$O1jkjU;*!eEB(q=}RpwuCla6^5`U7<g<qjs2bN
      zB^RHkBGcv~51|2J6)FxgG{oZb3OX1Db}X3Dbzac)Nvq&26LR`-o)>Ll8X-gwZUIBL
      z3I)wFI;5hd9QCRQp_QRMD-1sCEa$j&w`^l1Yvwh5UbBRJ_mV;Tz9=yq*{ysssKspo
      zCFyRn^tl}N7Py^}C$%7kqp|qz4T}<bin!{5+eGO$A*69dVH8}0?$NK3f<7}Dl75xF
      ztY_#HrHrHNb9sw%;|_o12#YV0lcIFf(QQ#Cm|W3>?#*6a&LQFc%lJliTsCl6MFK+#
      zQVc!5){&rPX!^8enN|oR2+QTHigP$mZpvv(Yfg#F`hC22?_1`o6dsS)%__J+9_*aB
      z^a?I93|4(Pv!*@g6pN;1^To>GFfdX)mEF%>@+vfEI#!-%gfyb3*4q)u!=TO>1|8^H
      zsU$z{>kP5|HiW?bSM<{WH_+2aYeddA{iQ_YWV<`fHSNuGuHpc#ZS?j80R(9uOl+ck
      zXd6oMD_TDxvapHHt;Em<x)R9^^dyEi5Pe7Y0_dalC~*T%3Hgk;o}&{l5XDQ%zrqQ;
      z#$h^5lzDN4vT&nguC|PhQxtF`S(B`|9|K-RDca?&#>9Jctyd(Q+~gaVS}kAjs2NGt
      z1NT&e-_`{W;-m*2^T4eHj&7qdxYn>%MX~9lXsuA3!s$Bt(Q5tgb@gKv{iFvD1gm9#
      z_>h4LGG2?UDfnkyBz<una)Gk46J6B*<a+iKMyT^=hCX2Q3&yrwSdfan=#jQjvw&Ze
      l`Aq_UT=MQRfk)nic3j34LIyDIieAMv+C!9?pyvjn{{WKdi4gz*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Button$AccessibleAWTButton.class b/libjava/classpath/lib/java/awt/Button$AccessibleAWTButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bba52b1be95abb01821f4311176a32e7df5215ac
      GIT binary patch
      literal 2322
      zcwUWG-*XdH6#nieX_|C}Hnl*h0)bMJ6dNguVi0N5BEixkO~b&8v)$f_TQ|F%-3{W4
      z`sj}rXB;2o$r)eE3_3t(Wc0yD{}TNt7|-3kvurlYqz~P_x#xV}`ObIt-swNj|M&~Q
      zIo!@dVK}v|-P5Yt=U#QO>v^^{y`bydb&XAvFWhbhds(Cz%3)&N?(EnWx4homa65}3
      zhG~(0zpBX$!!*1vs*!x%GX(LlRPgf5mS%Q2!>G$0Lo-|4aS6E5SYlw;8D6Q|mg{Mj
      z=ci>J?*91ibN<Ub!;tr>;ZDEFFt!rwutvd4hGlq{8D1^*MawOQblu+KIZ#~10UXRD
      zg+nSvahTz71QB-ZgAT437GLdlHo4Q(NH{}b#nwr(M#Aa0+)N8$45#CTlZ+>+N7~$r
      z+g7)`mdB7Pl^YDl5)ziUt2@SySTanM8s(svsafsny5|^HyEcp>Lq<0Z{WEgXpg-a&
      zY}s)t5={8JS)5@w8cOE(sOxHwu`Jd(lrft{g=~oRrQ$5!ph0O;dZ(jVTf&<@NqNkm
      zDr}~yl}eHL+U7Rby;`FmQf}p`@Vtuic#Al999yW5=wdh?8Caiee{f?x4z6k)E<TI|
      z&qR~&s<<fn$(Y(EHyOqg>=*I__@Dzo11|Is$glm(K)jzw@JWK#yN*N6^s)3d5qz4p
      zEEcHc7uyZX<8AKbaRqf@{!%b;@@3L}IrT)TpSgUOPL}1bd*>_Tf!G^#^g7*6AEO`B
      z?kC22Cv?je=V)f2MIw)8wu+lstTCJ%oUP(x++rBHxv_rjlf{i@b8VGwvi+1{$gkU7
      zN9R`!A#No2_U8nWL2XzTcj~6*x}1*wc*03Xk#3t56l6fxGL9mLJnf9oO|3v39TnFQ
      ztyQFHL}L^w(65UWQ|LWXnSFxs%IqE{e)9oG=$ZFJ+eFyLqz`2xm8hra&F~stmo#VT
      zEn-S~H$)HlJ5B_tgvet!E|JUh7FBXn4=_|X@rXSN2@X&<z?Y==E9&TLpXgAKEQ!SG
      zBu@For*T?RYE)We6{mhiCbe66jPYlfxl<WS{U_FsQQE`YQ=E%vEl?5Q8+v|A;O|J?
      z_mOhNuv{@L_ckuba`UqH;eh;|7Yzgs{19<qICS7W)Z*S%;>e#8y}N|>2O=LNA}`|u
      zi9Ao%idgO$uG~rOVKGkdYlI*d5-j7YB)A~QrljHne;6@N35`?mA+Gsy8~YdWBvHim
      q{S*9|NbnI>B*C0CF#S7j#Ib)zuxW`^u<k#b*Z};~MgP>Gh4lZ06#RSu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Button.class b/libjava/classpath/lib/java/awt/Button.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1acfc276f0134fd7ee9d1744c23b858d8c39f67a
      GIT binary patch
      literal 4645
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Canvas$AccessibleAWTCanvas.class b/libjava/classpath/lib/java/awt/Canvas$AccessibleAWTCanvas.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a1b1b59c2d80dbe12e1b6dc021b74d0eace2c79
      GIT binary patch
      literal 783
      zcwUWCTT5F(5dJ0}lbRfB;$5rt7R4x-`k+u0Asi_v!3Qr9d|T6{-E!Ph&Yr0KEyd^h
      zsDcPS_yhVU{2_ukXN|Wgv@bh5^UXK&?acnYy}SZ2i-{Bxgs~rDUlhebRP==27bah-
      zR;4j&*O#U3&HGpi4x#Xr80`HFwA4{U?n9W6H8NDfugK7-KyR%q6KIvt>IK?FLPr(h
      z*JShY{LRjgxSk^<qwmV(KM``}20051E-I~}B|_)qE3{A{I9~8owt&03NF$R*6WU$4
      z=pghwXFSNWq_(osa;>(vE5l8}`U&mjpvsa33unI`bYfwI@y5n)O^K!EzRBnbSr6h8
      z6O#qYJ}inlqI?zoD!$BHXu$^zrZ7Ml{dcyDj~L>~c%`*UX@ijepALldMo<f@@{5Xf
      zW$sna#7u&_qO}Y?Ul=2K-+7);!;=XeZ#)_!JoqO5PYLv+8A<k1)_a%D#@n!Whquwn
      z$b0rav!7s_nVLRF+tl<0a;G+_lh3q;j=0cobn(q)5~rdYJ!}cR=&P5RVH;!48TwBi
      a`AHl5^Nj1%xd{y0a|ENdPs|>}IGj5USHEch
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Canvas$CanvasBltBufferStrategy.class b/libjava/classpath/lib/java/awt/Canvas$CanvasBltBufferStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b25360022661743b32314f245524256be33bd9b1
      GIT binary patch
      literal 947
      zcwUWCT~8B16g{`CEL~P8D4<YKVTFF6=z~vdd|;JilSWA}P2g=>1{|{8ZFZ*^6aSPZ
      zrimmz1Nxhccc@^~2IOJp-kp2qoI88Z+3)W^06fPN3mL-dp*Rxj;-g;oMRX)mw-+`-
      zz0uj<m&vwHgq8=NEaV98KXBY?$B~S*JA@>R=npD&pAjZ&1MD6bU#dvySA?0;P&L>s
      z*9kd4-jjI{#vI(jh=tpP`AcX|%olCZP@&RFrWPg$bC-aiB@SeN-Nra39axxR?h;Gn
      zaThZdrU|8MXx+_Fwf#8K{L0k9Ebejh{=2Q<&1*uXcGH`l4F_{Zex4xv-aOQ&ceC36
      z^vZP`Su7aEMZ$~zzkD$?FSw4*GeelDsYt%<v>GybFB+jFOx5D12<swI=KJqq&WxH+
      z9vtOWHev(VQK!{A<ck#Wm_@TGLumkee6q`s?YNUP<)$(cV?C;;MuFf2QN-<rB2CTY
      ztK8{;G-37%aXe&GW!d~xC>Up%jF*K`j(N^L^Pc0lQmKA}U8xq2;p`k^d}pDH!bSXw
      zJ6+uGqWFc889d;9kvV{0%z47u3G<z@#m-Q~Pp+S`E_fN`6+FTcaGov0<@+Xk%qz?J
      S>N#TxWsWxY#6H6sGJgOTF8+G}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Canvas$CanvasFlipBufferStrategy.class b/libjava/classpath/lib/java/awt/Canvas$CanvasFlipBufferStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..122ed3ab179cfb91203902dca56a460b78e9baaf
      GIT binary patch
      literal 972
      zcwUWD-A)rx5dNmDtX)>yA|OHq)Pns{&<n5DnCJ@0CXJdvYVhu~9`Km$*=Bc(`dFHn
      zCX)C7z6AcfhjC6TwbCeD?9Sge-^|X;e);+7Gl08Tw~--~UyB2=A>O1LzR(9EDGkI{
      zs5+0jdwVk8PGgbE{dYDj!s;J%)b2!D>a;WtB}}HTR8qP_DAZ5zdmOy4v`QZkX3JyI
      zpwb{Xn{QjPld4E3Hl`RiL_K`IGmH@|KYA&%AY62D4wE+WgvB9t(33AZqNzfaD#>Ki
      zgoPm>Xp4P08h22@j0+pH%w2v_X=HI3S8U9Wj%l2>KLJ0|DNiGDv4BPXM*r!vVDmAd
      zT0d*1=OBlxru-5?j*MokPw#B8)9O_k4koZ-DqbVp8(qfna=qYxbe>sOuCBCv(rq_o
      zyd#>SBuv+%mIxanR>uDAw9G~PHI7s6jSt1q-S)uAnG~>NJL<+Qxup!_)F5-+5E9%#
      zYwj)-Nn#d#iyJ#pi7@}KT3F#Dn&7{J@_BPfM&rlEd1R1f&0^bu%UaB~L9SJ6A90~t
      zD;^@Zdx*lW)x)J@`2ll16nj{H&&Uj}^LvTefFI0$#M%)vf5i;Gp@{ETX8i_7=NQY(
      cC}9=oYiqd4z6{EJo(ifg9qxrt!);`K0bjufqW}N^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Canvas.class b/libjava/classpath/lib/java/awt/Canvas.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e10c2e82e41119d73d43d106aba533223af4e725
      GIT binary patch
      literal 3756
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/CardLayout.class b/libjava/classpath/lib/java/awt/CardLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15b2e95e5e7d7625163c0648fffa336dce62d57d
      GIT binary patch
      literal 6645
      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
      T48Ku&IbVeM^*T~)RMGzdKeTmA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Checkbox$AccessibleAWTCheckbox.class b/libjava/classpath/lib/java/awt/Checkbox$AccessibleAWTCheckbox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eaff0a1d38d31c6e7c6fa3470a3d8426bd492299
      GIT binary patch
      literal 2701
      zcwUWFTXz#x6#h;wohD5s4WuPS6nf1Cn-&zsAX?HQfk2Uz7U~72$*~<wX1Zo3wY=%O
      z=(7(#^TGqNxU8jX@dI4TU!cFhpWp+_eNHBqCQ~P?tC=(V?C)~++2_n3uYY?5U;+0O
      z_!wsItGjAe{npOrw|V)SO=E9rv0UbsrEOOE;`(Ycsvy9SY9|}D9Yg23-Id)8D;Qun
      z)=KBQ6w4NDUMp&r&2?@n7-X0d342-9q0p+D{UF;xShh7oR}f~H{Qt}~wOZ#4QHz_J
      zT3zF&MZjByB?fkdVK{H-maXcxObgcTy?*%jla=2Y2JCIknwn=gT<j@Bj;7CRx@KQs
      z7)`p&r`8w(d85KZpo|Ej7zx9VqY=cAU>NJfG|M7Ehl-lcuh(mv++0=3JVUH#l*zVA
      z=IPxD2821Pd9Sql4w2!gMinmEs?GD;s=mc5497ccw0B{7w_#=wC&^EnPGUot#I%Ab
      zhLIlW2xc(L5VS-hRd*wV6fz3Zo?9fTBRGY37?k|w<^0uU+MelRAE;cIDx8gA9t%{f
      zuQik3FpV8<+7BAbWH{%nvP!Snl5J}GR<0wmvU#7EZI_7Hj-V_H!}!64q6XRGc6Vbk
      zB$Fu*|BXx{i0vbA`gPV5FB1uV)I~pU)P-+<GF4!B%OzonTV+$*X?Tq%3#r~B(H3g-
      zPXw`w(YwF^fi@TtM4qpkCe@;64M&olw2ihV+Jtp5B%bU=2$=z0j>UO!V<Z#T=s?!$
      zwH`(}r|!AVjqIz;O+%cm8PCFtyj%!ZaZN#yVZu8*g6mje2+7{QdvWD9-EaMfP(AiJ
      zlr3N4w6keXm(ARqxOqwu+`wmH+`_s7YV4W*uo2wG9cm-BQV|{9kD}Zyza>2Ol`kAJ
      zgiA)<Eb~j6*n#2ZjWQ?j43UCPUxj>CwJc7zUc93h+gBV;(na8>zaSKZ;KMkE5TV#G
      zebIb)BN`RAFpY;P7Q<osJwk8iXwFB^p>*as;_1vwjQuJB<MbPrQ{NNicQ{5PK}V^0
      z6UXUE2McdIG&KZdZYmu+k$#5wGfeypg+0Q+QzTn~5WPI2kL3%@wM9mW9{7QrKP0Lj
      zF-_wnev*Qt4N^x?j85YWNiw{P_Z;a{@}1byPg<M<GV)7@X<y6qS-kIweC&$+fU4Dn
      z^gr%GzH&u=h@68wOHZ*TAM4iqvtz}+){1>NkB_9<1$^Ai(WCyC2gfH^>|Q~SkAGZO
      za1nV=^?wggU&69fyX39T23^%Z?E^XLioA@1gPe1afv33Ajh*Pg23lCUF&yk2G)_q(
      z{Sr5et$rTLP(#1K>UyS47$X9(c?8)44zbf1V`n<bl5og_M7x2{WhuXq*e~%F#EBCo
      JCvg{n{{TL?XLSGo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Checkbox.class b/libjava/classpath/lib/java/awt/Checkbox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1dad185e3c3aacb6641e79e96cc427c3c1ab353
      GIT binary patch
      literal 5130
      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
      G0{;c@zf^eu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/CheckboxGroup.class b/libjava/classpath/lib/java/awt/CheckboxGroup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3318dc49469ba0ebbfe9e69f292051f3783433c
      GIT binary patch
      literal 1568
      zcwTi>TTc@~6#j;mZfO>Q77C&$Al6=lf_N{WQUt+D(P|SlCT`mi7Rzq4-J;=5e}d7N
      zczN`}H%X)zO?>cy2mgTo!5?8fvn{nZH`$$;Gv|Ego9~?2pMSo72QYzzgcb(xy0WQ+
      zl_zF6y2jIwQ~J{dLoehc*cm#ly{w|GhU2Mqo;D>o7`iR1s)rNYP?fB@rKGZ)ob%Q)
      z$&I|KYj+ms7}yd+dsNr*rlOfiC0pRFlRth%9`5|^wfwUL$us+T89cEDG7$#Hl&Y!b
      z41>)dNHW-?dWO4TgImS{bTD+pRE;keHd5TUU83TS>1kr35Fc8XjdpWQ%`@~h=CBS-
      zi9D;^Of-<{@dujFa)F^=#v$}ExF{}KFbuAlw3y>LgQpe3Xd|B^GGw$9cD@<5*WUy>
      zkQCs<GLB)8@bVRK7mnkE1Rq0JLzE0Z0wk)SQhh99*^Gbb$O14V<0M8IoPwZ9v`H!d
      zJt4Hy)DxzmYO7T8eGID?O4f*k35MQ!^K3!QX1E~=G%4dW&Jd6wl~wYjzNZGrG7^h(
      zxFF#?RkChN#zlk~B#K{FHmK-Rn2|7D)0m~KGA`jVd2Wg(i$7xU`K$7jnm5wq3@(gg
      zR`gL+6uNOgkaXfIHPrq3W}Oz13o@=@kvde#<+zq%7;Og8U@A*wCBH5pVs(-K<+~s0
      z#4_Ek2LfP4#+VSvmCy@Dn$N4&1*oa>n1I0$HI<FtR<xiW5}Y(|qaQ&FT=Y_t(%eBd
      zx>NM+q}3#ijK<dBF1ofYR}X!KI}nE*E9j<~TyjDWyfjivpsx%Nt^gEq@KXiAVHs0R
      zgXuz%*I|gK7UDAo>LKz?A&z3OoPUPA1y@HfRK!sI37%2Ra|^*+@+u>UnUF&yrYl%O
      zXRC}D6m<5`D~2LQf*)Yt7IRyXwn94?2<^ccveW8c)?tzyctO&?gd4BO_L`3ShBCax
      z2;L!p_f>3y6*j>Nn=wlc!DGcLCE)vp@w=q%sUpsPL1Y(K+;c_DmuM}yZ_vDmc)e~P
      Ot90{Kbh~MJ-TDh8lubwg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.class b/libjava/classpath/lib/java/awt/CheckboxMenuItem$AccessibleAWTCheckboxMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9249c1f48a1960d48aa62fe19b93ff51d126316
      GIT binary patch
      literal 734
      zcwT){OG*Pl5PdbqMB}LOlW2^Izkok5W+5Vq5F$b(ijWxBow32zaR#O*8t>p`T!`Sp
      z19%Z{;7Zh*ApS7fbX9e|S5>dNpWYrG0pu|ofk9Y56PF?<uKZl_R9feCx4AE!M#+~K
      z*@9(BtySHYh2!eqYy=^~{1^Fu(l<Cv$OhnMPJ9BCt^DiU54hzk*NLEqFxMGb6Lv!q
      zVp@7i*fr^CCLWb`2((A&FS?HQh2yti-S4l)%i(kWh7k5omCmjbQsuUqHyO629OZ8l
      zG7BAWi#0;1=$^=45JpW5U@(d<BuvCGMo9eN{^AUll_L)t7j@}X1#2M;mtBih2-d>!
      z=Vd6Em9Wu%g3hnQI-(V~;aPH51@+>80V_daf?0AL=@o6EwbT(z6OwH^64D)eVun}I
      z1q0pSpM?qZBFZ;?{Mihcu~@Jp_E{Y7Xo&4FM{Arj*!C?g-(h5F`5y7x7Ga#vFoQr9
      bB-u9upNmZ()yhw{&NMP?gEoXI9w77qj0wmQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/CheckboxMenuItem.class b/libjava/classpath/lib/java/awt/CheckboxMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4428250812361b66da457982c9bc1b92aa44657
      GIT binary patch
      literal 4664
      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
      A82|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Choice$AccessibleAWTChoice.class b/libjava/classpath/lib/java/awt/Choice$AccessibleAWTChoice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa4121af6c825d217932642d4a7f346b44e7de58
      GIT binary patch
      literal 1502
      zcwUWDO-~b16g{sUI<^eZ@~zb>P@pYHK}E&l2NX?es!ar|aiJN87kH$dX*yHC;tw#c
      z*|{<<Wg&=|xG=8$5B>|+#yiuY)V2vMI`8A&bMCq4-TwOf{Re;<+?L^C7}->xt4Z~R
      zl}v9KLgUc|P2;91RttRL(Mt7BhQts*Of-rmL+85Hkb7_~!^aS{(_bc4H$xPJ^(tAH
      zuUW#-8G<G+3$>8vWs}YiGfNEYE<;D!&`nF#t-M;O@HTDhcj?QgKkpcP)`l>n(+r_(
      zgYXmu=Y=k;8w|a%rf59RAf=5p?gvA+0tFobc+sn%6MYN=^@xK;98gzQ==^@AxXQ~b
      zDk&#)*3d|@O2X;vUP`twhSA2tt^6dZJ?q?Rb|V&xXOH6>5rqCDcwpEX#*T#Bc_}~6
      zVo1h0hT)^L6%1p9!Jp3ETg*LM%sr;3Jx&pZ!4@s1jf!qDcw_O5ALEG2h>^n$mMKVJ
      zf?l(fv3Sw6{dN*6mMA3iT(gXFDuDAy%9x@7YK$qE#wfjqDPEH$krpDBxT%#zscLy&
      zEK@ZtSy1)$<g!&3`ntn^Nx>{GlUSl?%FC^8Qni$fs|OP5;55U6ei@R!W;DODL{v`#
      z)cy?xH*t$PHF<&9su3Ewz_L*(Yy6I|AGN(|%9LG%LCNSkFQ*HtX>zirr^R$(h$h@i
      zzczSq3NlX6-cNsd4+6oUJ@~Zu(OoCH=o_Td9K}4ewkIaOB9xf;hMpY<&`;lh6Vi#U
      zhymIu1fo<7;v}t%N`zgSNm}igC-J$4_Bl6i>X4oq@-)u4$SD^o?IO~MeOrf>YS<`7
      zUF@ujZBOhWw1=^MOl~(&Y_$|Vg9|Q2+U>u~r3mli;!j*@RPxcG>93}`H1=)|*BlKg
      z%)5k7UBXECJwo9_VIR=u-L{WZ;ktAvvzs~tc4*y2FZRfp{kmF_TCIp%%Yy|6yGYXQ
      L7qY95V+qnfszgue
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Choice.class b/libjava/classpath/lib/java/awt/Choice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a790c17c7f7820cfc93da830e2a6f27e82065e45
      GIT binary patch
      literal 6422
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Color.class b/libjava/classpath/lib/java/awt/Color.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68857ce01aa4eb3a24852b2ef95246be1a94638a
      GIT binary patch
      literal 9697
      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
      ROTFa*qHJXEgN#F5|9|ny(T4y4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ColorPaintContext$ColorRaster.class b/libjava/classpath/lib/java/awt/ColorPaintContext$ColorRaster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..677693124da2065a20be563c8c02e8bada181649
      GIT binary patch
      literal 2055
      zcwT)}-BTM?6#w0Pu*r5Q6dOuPX|YlWAtkL<v`|3_VAF<zO^c=Ywb@*f#bh_LSp?pE
      z^09utI696WRjLn;9cyq(2kVnF{vZAYzN_cnRZI!6GrRZf{hhD-JLlZr|GK{g;4E?q
      zd<?xy`dfNZUvZNuyJS1Fx@oy7+j9A;+aq_b>Q$FJ3IYs~ZC$gh7kJWx7@FLoS?xK)
      za4fU8w-M62U|Oa-$}kq&PcgG2jMSL6^Sm^Y7Ek{iLm)-}VK5xf5JZ!TX0#|c$PnGr
      zSVJogF?1RZ*Ik~n%N5-<b0wbD%aszBDh%B*^1m~II*kzpk1-tFR+zOZaTRTdXi(73
      z5EKsPRQS;$cA^Z)*na*pkGdKWw$13&a131xEd}mQ=&n9l;$?2RRffJ;+A}HXRv|f)
      zTjB;8HEsznCp2{9afW8{BF<}Do{wm(QGbEbUP!CN=o1=xaEd`IFPB`iQd$!UFr44T
      zsBtH~ODYQb7<``dehqO95QCJ`Bg7w%?Mu5T^=S=*NHVB-N@#p}aZ&VM=T57MZIC!P
      zi*pK|WH`FFYYk7~X@+o>yR+shFA+aIG0|oV>3v*_9&E{&7QeDw&T;3OPL0ISmaz@J
      zG^abJ`2Tk^Af|(1zm~6`G@28iQQqZXbz{K5R_RUCyGAXyV&>f<jaQMIg`&$4atb+l
      z7Q!mt+SXVWB2t2)GblfnSMZ{!)3}1PShET)(@6hsmn!MiYKoGaTs3&bHEk<|X@-vL
      z)|-~SVs(qMbmt^L-R@e2tGI+2F$A-8b<}rH)^$v)AY1(^t|`bewAP_(L_=A_br8p4
      z-Es6a!>-Ud<GXa=F2mqm5dNxT5chdrB|@4Ob;GqCQDw)-aH}Bb3L5sZMWC9smmPyo
      znW9+j4Ye5*0caZ1mc<=O0k0}}qrRsaZ0K65t0)a2<wJKaYi$*m6-hpN6@+L%Owyku
      zAD}fGANUDsJP`>-nrhHC(Kg=|32fl-296{m3ajDha3~QCF@Fumhr{t`m<iS522MUi
      z@30!LA?Ejst*9EmheQo$?#f_8^gT)8fR8AFTj<2QG~@5lIK7WCe1OaN5HqwsLmG=v
      zMJjj}=K(1VV?-vL#RWVk50b?wNdYO1krb5D^CUG%=>?J$ijc%OQWSR(r!av&I_ww@
      zW0EA5Jkl-W5x{Pcov^&)9|{coim8v$G4K#mTSI}wZ<rwtiVs55>zE|$qK94duyYa%
      z6V^{yuZQ(|*b#}Tgf(yC(tKNH16O_-@F)C{z|VLoFce%zG~pLy2a57TyOCh9I207$
      zt}p)nqbm};jmUpG^q2Rv5<hISdK2yR{e)Qgl+N@S4&ig0z?bO7ZJfr}#N0Y@@Ga8#
      z4lm<-=(vj|{D?B{p@JIT#s=OY`4;X|Z8piv1AIm6H`tQZ81;DBuErhmk|NfGbb}<H
      kl;&k!{1oq|tV@~VF37t0@QTd!RlG*4xPcj7r!0K`0PjZwWB>pF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ColorPaintContext.class b/libjava/classpath/lib/java/awt/ColorPaintContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0637671bf300313b607a260ee1f9b641a264f17
      GIT binary patch
      literal 1437
      zcwUWDTTc^F5dKcL7rHFAqODw7D1z87LPb$j5QG})CRG$n4dH3o9@`~LYue@F&(SyE
      zG!ZbG_~?T_$~fojrX>;@o18P#xqS1@%-P?6zW)R;i>DC;7>0Ju12b<Py7@xGX*6G&
      zcHJ#B>MlQWBM36YrQb2@)%^O-F1N@UW=OQN&L%K~ECIs63<g!|&l?r)FbtR48TOu8
      z<z6-ETwu^F)2i{xhS_pCWoJtllbVngFOo9Di+0_1ml%RsBUdI-AV?LLaV3I&hQSM~
      zYPgC7LtmA<8^zTMe{1eL)Id6$>%vq8!!-?k7+@I9b_tYRVkNuIU+nMg@aAiC$Kee9
      zrG{lXWwU9E|GqKk*6bETs!P+<XpfvGQB|Q}RB*^JDA`;&N}R51h@eMk6B?pW83NWG
      zL!@H2-Zfg>YqLX-Au8JTr=89k^gGwKKVktorJ)y^ifQB{m|>Xwzx8Oijagz&wcgkj
      zw<h@-0_LuUIpGpCo^iWcbA|Q3=xUx}x!e91x=md+QWjVbH9P{1t=DRD)8&Pl?Nk`X
      zWUGd;ePO%wbdTt~r>A`AaSqocL3+=djs2#@*KD!0<T+w90+61vQLpo6!7*DcPFw9g
      zGY@2FmI|E^-Epxo`VQk_UnB!!#3Vy>`f!P&Vx+B5WPoH;|AzSRDUx4g=pfyybgU6b
      z5ksUUy+8~j1xPJTJ|^J?e7G%&QAo!0Q;g`TV~puj#~AN`_9IC5I^C}bV1syUO7M)A
      z)&`H^22=?ilVt*=Ps;v8nJGHL$2!1aY1o!vn&<Sv7;YlrC+0~CUr7Io@z4JxSI#7d
      z+R0hu{Nzu>NKCIt$@(u032}m3=?~PdRPQ8$ACc03V0udz1r#Nn2$C{(ihIWpCS95o
      zg`MC*r+iYvHfdok8jy<-9AF+tlFpo0vOSn07X7Ig@mLN<XiKCiQd=f1NY*D3eFdw4
      L9ON{e0s?;lqEIGD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..938f39d68a42c935b067026c11609812a013d0d0
      GIT binary patch
      literal 1391
      zcwUv0-EY!R7{;HMm36}o5EZRD$2O*XD9DA0X2xWasU$d!Ec3d9<2Vazm$qZhI}>l!
      z+v&B}CK^8yFZ=`iqm1uiq>zb#X`1#t=e)nu=k0TT{r>S2KnW!sA;SG_t8EpneZN?C
      zc6J?G*nWDYUKgGxH(O%m>G~-7fn_&Z!quS>;vHDavbTzlHn&CH*D*;*1zU(V7xXr&
      zO3xRza0!!sQ+nwVAzvN)dzQKEwzQ>xhfv7;M_qP<pp~75m<D0SfR3pMCJ-|)jW}T<
      zqZY)f(iUrbJDb8?x0pakRGqrj+OS-y#$8cUA5N%@zy0twvZ+`-&}5?_Y{EjHyJIa}
      zZ67(B!a1(&p=-Y7v%mAWsN(`*QPn>$THSfslKw&Q*lGi_xJ1x5Dz(bp>MCKWI!4uU
      z1Su@&m?vb%?ty_tq`9Ndq$?h~&aQC%gL0E&!yUcVHQPy1&3C1}wcMv1<!XSUej0K8
      z+=yNgqCtaeO=sWk7alro(cl~h!V}@i7fOoMoISTL?n(96qXDy^HX|4nn{!-lS)M06
      z9R>FGcQXjd!R;W-4h;q7Ij9qShe7eU$}1n>Ff`6<gw+!~x`_~9KqQy{3M2O&(N8=I
      z;iS^kjQI*-^Cc2IHn>Kqr*N8|gfmEXDQnDBlxXe?jKtZ`FzFlSdZYx;!+Z_Re1ix-
      zXUw-9V)Ce}OH^-5xXet#m4C5`;RD!*%znr0LuS7p!OjHi8yyOJ>ER}oN%KP=f&v5u
      gi0o*@$DxQ2a-H>gT<v%W@oBh*qNed&3fH0i0Ww@opa1{>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..530ca77bf01a9fa327723681f60fa9144d846d08
      GIT binary patch
      literal 1188
      zcwUv0ZBNrs6vzK(E0mQo=G18g5oG8dbPew`GbUtiYSMto5MOuO1xiXw+HT6n()f^=
      zXnZTaML&-5+-`wIH!{;Sx96Pu|J`%WJw5sT`73~Rm?{#4+JW7(P5X6Z*8IaG-xFSx
      z-)Of*7&<LiY`oeY<8JuvZurdhI<5#*D1=N5a&2$V+-e<&cBEpOuy}?SJ!Y7(%yPm=
      zcp@N7NBd5gUni8UiSwwk?2+R+(PKiT@E^M34ne8;9gzZIPKSya4N1)FNFhT=7UYI`
      z%kji!_pl{`ZJP;%tmU_DcgGGKX%C!=Oq@`k{P^+h<AP>)rTx_Avpa;Pp{j=3R`2zz
      zn89_<^BmWV?1*c+fkhPygjK11W7>nb<2uo?`PXh8H?c%e8(X!P&H59<nl*u{s$m(o
      zRjd$-6W6U{6?yLBt`mqCfqx`|=(x7eW5Qj0I4Crpnr0L@-d=Uc)1RXe9(hs3`h^Sn
      zL`cO=wfrz5XidKxv_->_mzO?Et|IjW{kg~ESaa<#6rqZHobJE%5pts|Bp74w7Arh!
      zNq(n5nT#Ac{`Znlc;qzp&a(9Y34Q>rRQ>?H^a<&=Y$b3>`eelThAHC<vTW<Dk>1O=
      z!Ykn_as$dHGbJTmdJjE&jo!idh+F5REXQGdhhm&S<8{vX5fgKL)qp6!)^LZJguCO|
      mjHVInQ)d5U_9?S}UC2(L5NnGl#p(o)RT=jcg=5R8K=}i;xi7&0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96ce9797bf4cd9aa80818c136fc9c55744243e7d
      GIT binary patch
      literal 7344
      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
      AKL7v#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2701fffcf9fbd217ca3260fd6b4eb7ba91274c61
      GIT binary patch
      literal 3260
      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
      O_{h1Xg4~Fk(Eb4!Q29^*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0fefc2186dc6628c053f26cf1d1117314aa0105d
      GIT binary patch
      literal 3406
      zcwUWGU2_vv7=BKZH0gHxK}!o{+Y;J>Y1$?NMU+6X6bdN;kz#?O!Zz6^3&|#KHZ2G$
      zD){|<r!&qlqceEHh0f3*I-~dg3}@8Q86AIt<9jxn&9;fHH#uj|dEe)K-p`Yt{`u|)
      z06X!C7Yz*CFUyN^L|!r?leug@rzx5-IF(WJhl&deiaulLvZ17|dEsX0wMEseoKhky
      zMHmFFm@S_b7+8$Kosjdi?Ty=t<?Bf~FVCwP)lii}l=PCiyi~qnXs-
~o@=J&G|
      zfxh@E8nd~KY^WKfBEDf!&ZtS^l$^|I2KmF;%rSVD)TEJSXiO_=Ds9llNUMdxM;SK8
      zYlA>Qjr&ziHO3kC1nUXJ)^uxVmK-~BHKF7UHK!H4*u>CfD@>d{W8YDnCUZ%p2@HM_
      z8_*%Zg&q-|=w)yPhi3WBRuNwK1Z=~A7yS$!wS+_rVmpH`r5I<+o|1BmD?cKl4UJrR
      zNJNMWHIdLUGYtHGL_|BkX9$akfFjb8&=rcHoy~2*^}KB&^j#u$V~qUCD?C$<yz_%9
      z(^K>nZN_7G+>5;o(i&nSp1?ka&N81Bsb=U8#$rQjmjicizldgtd^awl2?9e~T-B75
      z#q7MIpONP?1l1AGCFIPktgHOnI&|{_q43qoew`kPdU2RInX(yKOGRRtjFOTw6MCwc
      zB^5j2K1?x8)dGZ91btti+D?INv0wz|l|agr&;v$V)&fK%EMOAHc&$*oby;O<8YfUy
      zOHpD39LEVS;?6kNW>CaQJjKwe7EV#vIJZ2hn<X^o!_y4Y>+@Z(v~0F=ppaJ*>Vm2y
      z1Br^UYhj-GFx42<;2}A2rPA0PK}Rmj+2fM4B4%)glEL8_MuTe=qM4RT+mrJgU{1tY
      zoTF~!027IF%Z2_w3PmNU6bwCg&GM9kUKH^h@6R@J!l_D~>U5*-yyH5DX`~(1<$PLA
      z6nN$wI+f$700k*878rWgs&Nr%Bxp(!Y86q?mC6_ta0OW}GESI^;1O+6)pJ_b93L8T
      zR3rpr_Cg&IhCn@{4v8o?_JRl<#G#w}sVvCFj4?x{qG*SeMKwWvCDlVIUlKqOOI|E8
      zZ2Auo5m!O4&88|krD{P<6{#xC-1gUlUm;_L_PU50c!>sPB~T0l!Sxi&1N9XVEoh}@
      zh2kDqPlZ8DShW<-6%20rmWbDQyR}y?PE	bR|iTj;<8QC29{d)zu4kA)Q;|&HRpt
      zcky1ijGTo^bA0X6TUpk8+|#Ql%;buCLYY$ez-zVVTbSbz^O&X)NJcIccx`vo4gnhb
      zG$rT{g%56c&`3Ksf2z!thON2M_%&Aw8m$fdH8R(BzP7jXM~}XnNum=Q>AcI7rV7Gl
      z+I>ZPH?7m5;bm+IJ%AJ%T}EGMxP-tmcJMX0jNu;lmk>ieqa}>qMIbbMA3H<$>H0o~
      zA7YOS%ZP^PBf5+O-<Z}9((ex92>;*k_<u%|{};6Se?_<dH}v^`$AJG2jQIb=g#Rx*
      zNwNXc&uL8H5Mb`OzYXS&d+Z{X^m^9tf0b^yW<+v-ftK$vdA{Sw104Nvq=f0utb<eh
      zfY@yz*3!sBoOYo~($B*rdEk*6(IyG#mYNZe+7Oo79mFCwv4}~GnLAFbfymGdr4vqP
      zFRlEp#WMF0&oF##8#5K9Ehey77PNrfe2!WmQzXqjZ?!-u#OE6vlm&h(^`k`^Fp;{;
      z(l*6bT)?x0<>q75!i?4sd!E%mh9FAAb;vPXf@}drEFcd7^{w`7%%SYDmFJPLly_Om
      zK3*#&Bv<Pnbm;r+$f&j#H|dM}I`%Ctmyj>Ph;t+=(ic5<h`;4rO=-H9@p9GKK1v*<
      zV{l0^G)YGxNXIGdaZ33K?3PYCVmfAV5a^%XO{z7{o`#FX<}}H0rkl&&y#6VKkc%w2
      z@0kW&_iT&Z6b(q{$kH4Y*#&HnE|SGd4sSQx(YkHpe{L2RFk0*F0oQns`wo2W@w*Uu
      z$ajycY_zv(G)zqoDNAl@<YtD9=g}$Y=#mWhr6RUUix`xautU0zVd;iRCR8?PyFFmJ
      z-AR4&hS`u^MD0x~F&CY_WhZ8z6$+83ps$3tOL%{Eb=^X<blc&wXjy5%2j=gG_{fyy
      KLEeUs;r<uRx*6*L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class b/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..633d9af77bfc390370d3d70dd9d2ea08460824e3
      GIT binary patch
      literal 1500
      zcwUWDTT|0e5dKbS8(WU0A`%rZ$VE$w6e;yq1f+s3)XP}p!3Q-oXK0v`FimL1f8x(@
      z266DgM<4uAj(gIQR?5Z9BzyMueY<-$zyJLB3E&=96!;iYn_5jvYIP@>wYIh`Q<%<3
      zPH45=x-d4%PTnj?(NGG8?Fds;75EvVZem3<H<GW`H$}-&5M&ti;6#m}TA+uy3_+)C
      z*dvn+eT7c$4Ebja({N@P60zd~+HIzz8HAY`TVwENEnS4baGpcKxiGrW!x2K1p({4F
      z7Dg}n6kKHJ?F8VsgnlYW)AeHt9&M}Rgs$8QdJ2T~a%XE@R9Ch2iXf_jRnjVJTGfzx
      z)99D|Go+7c?##){@oZ~V3OzEu!%5J+ln&9}2;2B9bcUgm8(5U8TYbRwFx)&NmLcLX
      zys&CQ4`CRi3P%2&Y%_x6HttZ*+d@wAdJ9_`T4AqA%SfOxjyMtw>=V6tX}QZW;aYa3
      zHpyvoNek2s-6=~;iep+@f@OD7-MEj33LY>FoWjNN2#*;;ws01#9aE?KP-1y{<Rn`C
      z70XuL3=_!{j#<o6f?-RWVQ#ov^-i)q<yeqg=C{d1Ti|8q3|$wd3|Zt@azo07P8$#|
      zT07N}STf`~M7+W#WWfwPZ_-U>E1GQ!s%!A9oxmV1eHXm}uxM27KK<Twrri(Ix0|#T
      z_$UJCi6_2+$G;;o9^c1>uVnH;rEf&K)ieU?6hi7WE|aaFe3XJKxC*$Z0bC;+T_bKZ
      zfzvJmz*<m2azUMIgJ2#6ZI@du!z~ZOqFQBCD!vE4hoN6cG*1l?Yl!iNNH)aO0nz~+
      ztv`pbn#Yv7+(w@A$WtD9#v?D1lu@dL-N(!q8c~D%0Q0PaphyI(=vUvi5vU%4>JeoB
      fi{M!&!FwY3Km;F8CGg?7o0mhLWZ0z~#xn31t7uAW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Component.class b/libjava/classpath/lib/java/awt/Component.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0533b9c697df640b592bcb90499b7a27ac292c85
      GIT binary patch
      literal 57337
      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
      HsbKvNECxXB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ComponentOrientation.class b/libjava/classpath/lib/java/awt/ComponentOrientation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37defe8d013a38f6d4ca322dd1682da964310ab6
      GIT binary patch
      literal 1996
      zcwUWEZBrXn6n-v*B&^GeDbUgiloo3eY9m&y8hmL3l+bOW5Wr#;m$0PUS+bbjSf}IE
      z@BRU&j$iyDt<xE?D(&cu<EX=oj-!q<{t17C<8yDeAr(+R?A~+EJ?FX4ea_ka>94Q8
      z0WgA61Wf{cm(91#lzGKZW!%*@w``UDe8uM5^li5sK}euer8s7}l*%t%wu*iPVSz3c
      zwcXT=Rk2OSzG^Nx7Lz^Y&RG?Y^|RSA0Wl@emT}9TZ<hTz)2Ui5TYs*PfAnGTX8~<C
      zcP^Ko&n>FVY%{3|rcdUlvkUoL;k3aG86?$CV|=2pSjaC<XU|R+f;joL-4_=aF#h#U
      zX;#z_SRzXWA^{132i)yMf#_(_vCFpqyg+k2F((kpxXYFXfroVTp<f_88tjMS*~DBc
      zcMj{=hc0Oy(a~MAhII6xOQ6HB%T}(sx@1)fHMwGjTclbhHKVVB8k!N8@V&A$sbfFd
      zi0@yrJptYJCQ0$COOB3WwZQAxo?)%{1$WvmUGfFmOIG8B1y06ml2m=$NvRX9bmBi$
      z((pK*h~VVC{x{U>coI)hD;{HTDyn9QH|dH8h-y$~{EA&JrK5OSpvkOgcow4(r0*N1
      zT8@tAK>fnjn^n`{4ZGvUKj$r-Scu|90<D-)oZ)I;iGt(ORIRYkQJkcdJMPF1I(34v
      zo%96Kjmk`0o?ERHtuxi~^8ZkX!#ifJRji`vTgy=xRHR{BLk=%RkQX?x*9kga#<W1I
      zY?r#Iz_IvFmWiE$NbrJ=S<KbSjX;BX6B<>J^ZJU86dsd3UC{BWEYnyvX04c2hu`yS
      zoYw8S^S0;l;Cp1p-!58fwZFk4Cx4qv#xXrFV|so=hAFUbJEOkAQC(W*z#iONZhro3
      zr#7Qv6Sllg?{2!EkO=&L5t2^}qBw{M-&8{WC!o>S(N_1{>31~vo%A1U@MGweUo7oj
      z`Ms*ON3AjW>2VDc{Q#q+Pwyh+e+L-)8sb7{_zn(zjsa=6D05JSBg#JdnL6QNzWd1$
      zSmc?nlidpOEuydDFdQ7k6ppD(`S8CIoHRjC#<b)eJd!;0B@)|s?TW=a2;mwr-&OTJ
      zwQLM4_R`v~?kR8_j|P~hm?OBhCBHzT<=S<$gl;w8s>6oW=6ecGuO$X>0w;C{iR=OL
      z{w^S`atZ^GYH+)e<R(Up*s0-7Jo5qiV=vT<?%3&?p~o`PxQ@te3~t=Uz()O`9=0F&
      znD2E8c>@XDB*#x0#2CRiWdt*h<18js(^JTDZ%RodiF_Im8BWH|ZQ}g55XSHpwBe2U
      zb%f^0ZssoLWhl(hU0k5Iq15l-EL~J<7rWYxBkbfG0ktI62fpL`d-m!FW^OU-M`r!P
      r4*!Zl{Ko9xF@!%9-6T6n3RprBvU6c9Ghc90n**z_9uu4$DZ$F$hnA|@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Composite.class b/libjava/classpath/lib/java/awt/Composite.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76e23ac13706781ad1ef84f7c3a78498f156f336
      GIT binary patch
      literal 243
      zcwRg8Z`VEs1_nb0PId++Mh2m*#Ii*F#PSk-=ltA){Nl`#RCWdyMg{?}curzoy1su>
      zR%&tyBLi=8QEFmIs&jr`Nooa<pQGUe*PNM~n4StWA}7DdH$Npc$C@aqpwzsS)S}G1
      zbdSuul45I3A56zUZL?-%;0n$!ElN&x%gjk-WZ;7<&;#jVV`N}tU}gXTMxf(a8Q4H9
      L26iCH#J~Xneg{Zc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/CompositeContext.class b/libjava/classpath/lib/java/awt/CompositeContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6c4c26e2b4acea44b7db95bf790c386fb579252
      GIT binary patch
      literal 247
      zcwRg8Z`VEs1_nb0ZgvJHMh3~O#Ii*F#PSk-=ltA){Nl`#ROkG>lGKV4b_Nzk1_7{i
      zPGVlVzJF3yYH|r91A9tlF;HPDBLlOBW*Cs44Auzb2Wa@fP0P$pOi$GhN-Qo(EwUz3
      zIJ_vcBrz!`6)FufoGUoLv?w{%Ei(sbz9_mA^*{!&F){$1!T<tHKo_$zurYvK&d$IA
      N6k%lG1c@_n0Ra0LM3w*m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a07e427861d9fe6efe6a64a2fc299b6342ce2393
      GIT binary patch
      literal 1195
      zcwUv1Z*S626vm$e-AcO(h#Ts34iJ?;3fVgi#)P1YCd3)H%-5y8!d*(cv>nEeWui0j
      zg&)8VWjwbdNR%OlkjpvT=XcL}?rDGg{PrEd9@;umgy$#r#BSRk;&w0aV_W(ntacqo
      zM3EeLqWkV>QF@kpY5T4xLLC|*pO8G;AGQw$C&Gz!tP@HzzL*Gq?v%caV!<n6Js!!Z
      zx<_dCS1zW*vZvCQ@iRiJ_8+?XF+uAEt}sBjVnIj7L>f5@2J(b-O>M~adGG79@j!$}
      zHWLVie&E>Nu^mbkPm`J|oUp(8@k>19j<QZLJ`H@fsq4DJB~<1*`@_B$D&%f5xWV<#
      zVMo$)O>E<~j$4GCrFsiHxI@ScMV#me#aey7n`t>66D3r1lnM2fd$n*ERd(*Z48@x;
      zI2B?1u{YxJVCSAp8%w6;Fb<_Z?962@=4U}hT@JB+_aDCSG|s$yE5^Y@xoI8-XQ3nZ
      zrMkQ9Owm#(g7wPhpy%09BqALTx$?hTWrG$sOW3~rYEkA{OY?UPl+UY?;|DMejYrPp
      z>;^}Vk>U?vHkw~xHNGPIiK7&*s+{`AFtKLnC~$1CMrE&IlUKqPic`t~GZiJ*_zbIX
      zoto#kd5+!Rr~+?*u?fxC!UnHdqnIFz7qTf*{kn(y3?)3c46fL;0A6Bvnc*ddSC+z4
      Xs3qDu8i_i^L)OG2rtoV6Eoi?0d`K$I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e8cf52b6702f3ebb2a0801cbf975179ada99588
      GIT binary patch
      literal 1986
      zcwUuN&r@4f6#j00kV|-_0U<>w6bq&KB@t}3N=v1|*woN=MxevAn@94deKmdQB##Pv
      z{sk9~-MDbrxWE~pGwq047CKei>DsaWcHv&#IO2C7j|2itbu!7l=iGC@^L^)>3lILe
      zy9!_c7X$DJM6c_&^rZfdolF%iTQ@DE)H{;P8RfD$T`)#2jaS?O__l}NxLLFe%dQP~
      z-2$PqQ8M+yq){rHMQb86Dj?1Y>?2~?)-8KdFU%PJ^!(i4v+q8BEYPl3fGSDP>Q=sB
      zlmrfEE18X3gs;-gnq}MIIwVkMUo*?SF9@_`cgj-dCr!(=hXoEqb_<A33iwjRyipH<
      zW(^wl1>r@DhDNm3UUFsfQUC`8M*njix43I%1`)=yDqFii|85lbfFub;`Jjd%8iMFT
      zcL0YdVJCow=Wv+y(ewEo1r#_Ed3u#qk@jclIzMw`+9-|d<ib?hVveoW*>Kvf)2G@Y
      z5dR-SI0aV?drO6`nT34Guu{btHB#P4G^6yzG{lh*XkhSo$uOAxZK{eyH&PXJ>uU1C
      z^mQX=57jfgUqccci~3x3I$JOA*3AG01-jJ1Y;toP&4OvqC99kS{J9M}BEzpq^*cEW
      z^h7cnboNG~T)%1Mjaim-8^j2~2e&liV$oEi_B6P9oWyVdrvw_eU)69L$H;Y7MT}@T
      z<5+X5l%pD6N18WCpi&2wzb%q+1=Q4tH*fNF*RrEKSM&0!H-c{!XG%FEZL0D$R{Gtq
      zf(5jUMI%+v%VmQD6W)C|I2(IE9nLk!gMZk(Xonwlv;wp|knpKj0fa*8LDT2srxE)Z
      z5u!Ck%ft0hEWV7USo{v2iQPkZDs~5L%jk&5me8?+&W|0i9{z?254j4zyoaD%MuS{I
      zSbl<Do@oRn6po;etH4o2+%!wP?c<szUegMqQ`!68Q)<72=f6O}yMPAQS{+_MtGn+U
      z{2T-Cp>EzI=Dq8kx7U9^7+?D+zV<26g6v|7h$;3jRbkhMdb0bH%pO3KU!g~SjXwDe
      zj?0HQ!To9Z2q~T`w%ty_(k@#KFXKfVb8xzGoI5YMzeMkbg5O*PS2h)l-LLXbtcgX>
      zZp6iU$NOlW_lnL<c^|Al>9~#NO5kT0NUSX?fCP1^W`)@lpbg{BI)O{hI)%&5x}kHB
      zd?CN3&hOA7pP)^Ck9PS3I^~Z@$e)np{*3$?Y55B#<gb`wY*q6WSF_qFr5r83kQ1)v
      zSMaK<xkOvVM-<!m5{CGFZ3U^ZgmQd{ri3Fin4pLS{(oGo@M~7Jl7Ap1|789D!cnf(
      n{E<rj2;RV1CtDjbILF%_yy>81G3MZSc-n>Y#0ztG0lt3$+Vu3n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d36436ecd85b82103f2f7e857d06cdb9a6ea9bd
      GIT binary patch
      literal 801
      zcwT){*-FDu5Ixh{B&KoS*ScF5EIwBRDQ-}TpcH((#;8|fQj)lQh4`Q!B7%Z~AK*uc
      zb7OF=UPv-??m07OhP=E!J_A_9l#Uc(@>raSf;f)~CEtsL^qgQ~{orDYqiDr-t1^_4
      zALwWx4ArM56oRo?+1^>HlvWA3^1s|7lb38)dNNujr1LXXLPN>lcT5nn7AzP9Z7IHQ
      zWT@Ff1{$HI%!MkaCwoq?BlcW}&|da!;Z{W;RUU&T(#UeX=tzcy=|7zO7?2%h&QwU4
      z&3~1g)O^qJqT(mE9*EkJw8P>|)kF{abo8>1-x3S`7~nx`Nhd;gzHSu)*@Vt|U3oc&
      z2N#5nIzocE?Vkp=vnJIhnm@){P+Wqw>2XqWMHo7vj*0Ik6E1_lmw^%9d76I`LZ4bZ
      zM`;+)`5`oNRzM2sWS>C04>0f0bjxW9E&MjsrEvw*xI}A=s$+c-^T7Pg%s!y)Q>G~}
      zky!5pw4)<-(TT1^yuobcOq-j(NB7UB*T@(*afOk0R#HJlgBXgdY8Xb2*(v5I^(e+-
      Ky)re9Nf>Xjd9VKf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1098464e2d31d44e7af25cc454fd32a28bad36eb
      GIT binary patch
      literal 789
      zcwT){*-FDu5Ixh{B&KoS_pM4@u=rdNq_{yTf>QAD8l%0^CMAgr;)8yY2nq^*fFC8!
      zjX|qcFC>|nd(N3NLtfvWUI46MPDg?;eJajHPF#e!g6D=px{jaOI=<ZHC@jlBhMupZ
      zg)r6}7efffPHAs{y;RsBOcejc<{7+dSEVb%H9|5wUnaB^yd%d1A#K5eLC{vC`&KTs
      zTS!48bQD>rbXGfb{C#m)bqL)>&lc6P@TJP5qKPEZtQS^fK*;>zq;Wd7lR8%+VIkXy
      zuhl)*al`yqZOa$+inN3LeA&bRhI9<FiQg0p!x&-Nx@tq{&o-4HkWJ`q){@t9a(qeX
      zX+k8Jd)}FEJDXDNp#5{OWrZbJJ1!@Mst5un(2@D>FvjvWf2;wMyy_(X7=$6UZ;p~M
      zpz}j$<t&E;)JZ>s4jy6NqwS8<1UmR_s!QV<rg4SNsH%?DK;~)rn_758*B4Dw#h7A!
      z0MLz|$VD&uV)8bll{0N|=>h#eo8BO0+(rtMAE;PCMWYytR5grag3$@aDE1VlBfc^<
      HgIO5w&}^$K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..504e985c722fe5e2008af64928687720235d60f2
      GIT binary patch
      literal 801
      zcwT){*-FDu5Ixh{B&KoS*ScF5EIwBRDQ-}TpcH((#;8|fQj)lQiuj=4AcBH|AK*uc
      zb7OF=UPv-??m07OhP=E!J_A_9l#Uc(@>raSf;f)~CEtsL^qgQ~{orCNkY2Rnx>Xs<
      z$PaWh5Qgeg6AHoDtZeVBR7$IaT=`#ak;zN8D?J%46VmyaDxsm|?>i<4Sql~ng0>Xj
      zH!{?0Ap?!jQszRH(~~_X*b#fKLufDiws5N=kSdQs6KQ0*UUVcw!t@_behkQtGG{6z
      z%;vvJPHMjAcv0~aTMtC-NZMg>rfQ-GeL8yC$8U*+ehl!SwWJfFJ72d7fowu&y{^2R
      z!-ES#M;#%--1bic+gX!p6U`svEhsL*+VnUnxgrdmP{+h~lL?o>-^;)V?>x;v387Cd
      zo})Aj===~GIV&Iqb+S*O-3OR=Xu9Pzg%*CB>e9G^X<VW;M%A&th<RZCW@aDI_9@d8
      zm`JR50@~3LyXZt$BHm!Oa;DAA-=q6y(`#gmo4CTrJ1eQ6qCpJBRW%GF$LthylzJ3n
      Lv0j-P$0Uq5PVlgG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d054e5e9a94d8326634b97fbfe4622a0b808e5dc
      GIT binary patch
      literal 789
      zcwT){*-FDu5Ixh{B&KoS_pM4@u=rdNq_{yTf>QAD8l%0^CMAi>2Z#^)H6kb|_yK;D
      zI5!5ZTD_2DX6`v>&J1~ddwKz|f;k-t!t|*)7ddee<_ex03h6q2X6yKJ*OzWsmVpdC
      zUq=gJtT`@*5R9GD-u`;2utAt8{)^2sc-5{-SB7hZWOlwxXeoF{jtN5Af(3)1tw#5)
      zTxz$Ff=1{lvQX))cIf!~;;`xvx{IDIs%7Czl}AMrNu*gXtjK_n`NK)$bZjSeu0p~>
      zwh>>ed#>Y#`LEiRFX|O(2l@H3i2)4h7-SQ_DHet?!m@SMhR~mFDnTHd(A%sfujS<U
      zlF-wHNHF)jGv9VLrP@LJ=U~eUOR#oaP6|~K1WuqM^W9;L<!%00115RZN&YbiLu%g~
      zC1F74htSGd4hg7}eg+*p!n{Y@9j6I&@Y__E#x+di3Y}3^9jk%N)ABd9@QAK2nx={|
      z#rgoC8$FSWUi8J}ZAL3++Tzj!`hPaPLCUy|6ed4Vv4V<5F&3$67{>&o6O2*pDNILv
      KWoibqFx~-c<*T6p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container$GfxVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9f85ae5215725a0eef598f52c2705b1c6225465
      GIT binary patch
      literal 421
      zcwT)_%SyvQ6g|_XO^mUv^|2FOxTswiTu0mlEJDzQlKmu(c1k)alS%7uxe{FX0e+Nt
      zCyEsW2j-spIGj0m-alU70GwgpMT_BJ#+N+gD-*`0GF&R5k0%dLsjQ?awF`$~&`=7l
      z9>be#CUV2jJ(o(F3x@XSBxP{o@?Q98V<SKZU50)_Lf7>?6Z(#4g<u#aWzLI~YiaB6
      zremhEVmM6xH4!m%mNsP=kA73<i&6<?qIGYg`C=;bDzdKp+p^ZVxRmy(-jDLBWitd<
      zii)`4RV6AHyJYdN3ldrTaE?F=!=4shT9j&+vXGG3&iDo1b2IiS+A+Kuo0JD%1i~%Y
      VKkcF4@CHrX#*ol&WOlIUc%SroVu=6%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Container.class b/libjava/classpath/lib/java/awt/Container.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12cc33e95c6fafcef94c7037e144f9737608c335
      GIT binary patch
      literal 25778
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ContainerOrderFocusTraversalPolicy.class b/libjava/classpath/lib/java/awt/ContainerOrderFocusTraversalPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5b42caa5e963f07ac29339ee9b3b07637279bb5
      GIT binary patch
      literal 5181
      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
      VIqXk_8+O7CTY{v*J7CR!=D)~!rH=pr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Cursor.class b/libjava/classpath/lib/java/awt/Cursor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72aff9a81ca2b7b08664211ad8b7267c02b74586
      GIT binary patch
      literal 3144
      zcwTi@S#%Rs82*MXNz-&;%G#n96fI$iRx4^LTGBv+ZHk$+B_OTSblOf$laiTqL&Oc-
      zcac>QMerPbP>>esQ64>Vj?X^(;tTrhoBG|!HncJ4<j(#6eY<z&=0Dee0`LGXIj}@R
      z)u=k5deuqO>q{k#MACs`3Dp)crpAZ8T?3<9)O4U!!ZM4hC%lT5)YX_iqYlJ03L6&e
      z(UOLqh<69tBuKj@RQM8c!&KvDj~Yv9C5chT<lnONnS{zV|IXI#j&Q%PJEU}lC><zb
      zK%gaGs7q1WTLYmCPtYX^<zfHcu#Lp9%X?b`c2W_wmEQi4UkU8<+vp-0#lM(dLVB=(
      ze5s%pkaw_B!Np`J$;x7K8Oa5VyGSlzyPWB?w+7p6BsWQ&T|IWG3JE2_)=s}7p=N(a
      zzCnta)Z@d=qTt<1xT`a(@-Kf(W>3h^dIy4jn(yikhJ~q039j*^HmD8hacxk7oUxam
      z0-7t1t7Gi0T*y_iIXzCEb6Yf~$8~eNgrbHGJ*4{*gPH@6+%`dJEhiomt=ERsRLrbT
      zdvRi$XnHbX7$d5l%u%<CmTOaau_r{sRXtDGAz`JGNSPy(nqk(5G((@!a?G|YQ&Sf+
      zcaj-QBnxY{XPJdGIny;3b0MRH49nj_Mv&#}E#PJk>HY#9LShiq_+X9@7Gsc@$V!y)
      zjP$s%0Uoj2>xLKibEG=h#b9b|Kud<xCsOW6M0p@p9!ug3v2<IeRmBZ~4LvRtq0f!|
      zXma2g3G4Fh3dCaCuo`Pk4yVSnxapsYYU3skwgUsK&ce3tNa?XbjiGXks`U5-uZ6+-
      zs1<F!3o3?$k6{VR8y3%zh(d+##wea;eCqhP7N?mtjBk-}#!s`*7;__z1jo-zq?x>$
      z8WyWiwjV>HQb{)+M1|OyZeDziVt_|<L&DMmb6+#8nR{}FBTW_#vO(E|U9>nO5`3Bo
      zQcamQOl{1UGR(wSR&jly#0$7}<qB;$aD?`9BCWmQ9M6Rp@v;Liu}V4quB19XqDKvX
      zd_qqq;-YD8yn>^&sT=K@IvCRo!#bh+9C%eiZB8@Gw3$DKJ|0Qtk~yi_G-?_Or~j54
      zlbDj=pi0=f6zC_A#z9^nqF;St*gkOMLwv-hk>QJ}BBGkxnr0EL{(dYb;)I0F_R^)_
      zL(Ts`8BUzy5bYN?Q;V>2Mp!w!z{>3nC^%mdK6T@5yyFDlRi&H6E!ZNcpS$rc5>8y;
      z3+n)D%M+iBYCCmtw#w5L*&?iBErpBtFTrxGf&)(O%fwp?F06(d6**i<TxG-6#7k{h
      zCa$sJWyH&Ecm?rF8(u}c+J<Y1>TGxo@f|jNC-Gf2Tu;2#hSw3_ZNv8vueafQiSM)F
      z24=|1iTl;qXrpgpB%5t`3#_Y4yq?8zg!u7*iWeuV^$?mU`7qJf<cnW_b>)xP8Yz+=
      zRU*Z5vl1zhTa-wt{J0Wv$gN7mDf^U2b*b#<>X3JFb;<#*W%83;U2-Saa=DAETYidb
      zg{&x7&@HS=SJ3;N6;y<4BLf2mdMTz@xM>z-hDjb`0?(0m7~AnYcH;;X%JkqU`k2-}
      zOIv)t@E*tnewfV{v?k9S4%D4NSzUGIdDP9LKQa$BB1h+-)y-mL7O^>u-|*C3#X-+y
      zbk{Xrg^>@Z7NuN|vkE6TD<>JsY1Z{DD|F6syCUrbDNI;(YO<=x+fCfLnNYeYBc!TC
      zD4vb9?^!}`c_*?}<O^Icviz6m=qsD?s+{pEt5u?fJn$Lglgv}%v!#|f)-KMmHlO2V
      z^wu{1jB4?mhZL!u!?a=%zs-fRg64oZPSG{a-VdCl>)48UD;#&)QEpBSu_a4bXfZ<)
      z+aki*L5h&7zJ?c0p?n_4B6E1{hLrbE3Gw~&3+sB5`(JIAt22{WhS%{%CcX6*haZbY
      z*YIZENU25s&DMEd7a0{VpMqQB`5p(qS)lT}&0k5Tu#&h{3Md;3{ryo;Ii6G2GRb>I
      z_2=-OXBO|z;<$Wr7N@!YgsqUzrT6FgkiX!<-sIh+2jLd$@+T+nFHYJmn@exb<(HPm
      G#s2`7dZl^*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/DefaultFocusTraversalPolicy.class b/libjava/classpath/lib/java/awt/DefaultFocusTraversalPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f366cbe3510349911ef3da87b4d1bd4bc652b837
      GIT binary patch
      literal 1060
      zcwUWCT~8B16g>kit7ZAH<wFsbDq?AoTJal14Txf@B~ojGpVQre4lcW7cUwaICEXw3
      z6E7x4qYoy$n)sKDceYKfffyfl&dj;@?z#8O{P^|lJAfSSXy{-V-{du(<vV_MQLOW-
      z<u5r#)hoKZCR~qOD~=_NT@4Y2Oe=H2v3)LW;TBv|xQ7)m^n1dU+$s?%9sAkxA_IHG
      z&_lJJ&uzcNt*VH=&pnMM?|%5o&^0G*>CZECrY1`akp;&TF?6C=M-1HzeR&dmQr#*G
      zx5&$uV2I}(g9JFq(78!Q{EGA#Ci4F?)-1_#!w}m(!*D9!Hs98^V+-4#om@MLAsp8*
      zOnL|7I!<7OL90nmhVpDJM){*UPT@2SE4@YOZCiY|(HxBy{%=f2GOQD}3YdyJr(+!F
      z8Ahe|SF02+(8iUfDQps0Rst7vq?ADXV6qCQb!1eyyBSuzhKpq4pAooS<DP~rLvM>*
      z;kK|e<l4DBFDq__A<^Pi4cD<Om961wyD^PGnY$XUx2rvuw(0Ds)^6&!)wCurH!A*)
      zP%GV=L7p-U9Cir|u~nz)8e&N*7svi_qtmLK%q6esjWdiOiY`KpP8~QxA5+hXR-Kp`
      zLPi)(e?ia3Fr|;y7$I;U5j;RY?es<xjv-DMK>`EKAN(X#xjgd;gLS;fe8$N-igY?t
      z$76!CbtH(K2oNKftRouP%j{z+K$c)SK#Jf}fF!}?03!rf0xH?ZwE#Mm+z3=j=U%J1
      z`EY$n6TLz&USkk%F$#_}%9w&lGYN8d9rv(-hp3<ci4ry``yJk3D;#L3(R6blwVTCU
      K=*8_&XZ|-~8vNJ*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.class b/libjava/classpath/lib/java/awt/DefaultKeyboardFocusManager$EventDelayRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45f07b9d4650a525a8b39b69a75031e1107a7d18
      GIT binary patch
      literal 2221
      zcwUW_-BTM?7{;HI1Oj0xAMzm|VyuXe5TIDG0;N?53Jp|&g0%HxlN?}a*u~9;N=L`B
      zQ>Pd9(i>4PywMwOoDrCj8C!33#y`YALw(L>Nn$A-E_U~vm-D{Q@BKL8uYZ314Zt}h
      zgYXFqt?OHQzkb{4pO7nhF5_I0+eu5e)00*zmz~i~eO20>@hxdO6EdT3&&iK-GV25p
      z5U6#1GrGCje>J%-Q?!-~G!(7l*2bo8>&c81sFNl=b23c<H(XYrDdC>YIYy>GVVJjM
      zI$>m;5rIm_*r1BOu_+*?1*%pQjZCY6R7ez{mBBI@jZWpxnvv}s5a>#rCMo4HYM6#I
      zCNS20I+y7uDfcW21jenjtc1Wb8me(71V0)z)SyYg-`%qq#Ir|*c`Vrwn$f5n+cX4G
      zp;pgns6<Gup4U(XO`wM7<!o*vDeZ-PHR}^rO3y6nwxRZ(F`x<{aN$(B9Pg>Bd&=#Y
      zT(AThy_%Htccf=3h?fQ0OIn=Kv)OSy>%>1v$xX+w%n-WJ$hKLE@>m3cpq-av`MJ<D
      z*%PF$3uxZVxTusZ>5^2Y{-ar94^$z~X&A&SlvtHcLRS(E-95)c2l1*v^9i9sIFHvf
      zT)^x3I7@5NbelLG1nFCg(dKfd8q-4J6}ZTj6~;S!H1J_7=ftd)m}RG>9l|g!smZwf
      zSlaWBZJ4V}qyldW^gba>Qm$CG4D(vp4v&TlcSNN=p&^bKLG^T+#pg7%oLDSQO2)0u
      znY5AJ)Sc8?UP{Heq9K79p2!+^q?`AYGGEp34&G(UY`I}=NyR?(gvy36k843J2y~ui
      z1~n{ViN7O97)OLpZ#4%)Oz|-Us_B_x&?5g$4ezU4SC-01-4+PVTRA%=Ck=H$!cSr8
      zQ+gb^Dbtj;JJphtS$FJ~Ak2&D=Tn9NeCp2f*How*>wbA(f!bR2Bfxz*Ej6g+yN)}P
      zer5cIBhfw7M-I>sIYjgF0b2IZ8VT>AJ<<}`L&wiN<D(AH<ep#Rd!7oH(SU1cVbNYt
      zQ5a3V&*DYET`2~iyHXSZs&?WfPx}G)>il5zcZeNS9iofE-4COWAZB`hp){YbzeAaC
      zx3JqmnSVF1TcA1X=6ZuU-(*%Fkme)Wb=s5YLka_sC1isIvO)A9LXHM>AWEB$>t4h>
      zvd=xTm?HZI!RVh#_WxWvsO7qY>y95$7TEO{p;}pFV4W%7V$nBH4~sIJ6tGHQVg;C(
      z2UCx>0!$zJJ(zDjm^h_c_c8DY=VyBVKudHVL%n=hq3S~nFV~MAVC<o?x_sYz);E+@
      zx$-aLOT|8Rux3DxkXw|!&8}?oKkyxl;8RTCvl7sF0W^+DyyZ^RFy7`$flhHE@}T#*
      z5AYk!gHDh7FaCr!wejy`me{jg*T?oTw{*`Z+S`8k_wOQ3zGh#rop)KYdmO1RDSMZ7
      zx$mMx@}WJH3ceF~kHR5(FLULiN2QCWF2eN!)DXWydE}vP6czJ>`4!9Xz*W%l=R5@;
      She^FZ<UpyjD#|<u%l9A1Q}-JH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/DefaultKeyboardFocusManager.class b/libjava/classpath/lib/java/awt/DefaultKeyboardFocusManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4ca603f3448844ceead6855e5e7c31377230812
      GIT binary patch
      literal 8339
      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
      O+kkZ!+RtOQ!SVk$IY0sc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class b/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd490883058fc6ede6f09db9b857810f6bfbe7d2
      GIT binary patch
      literal 1304
      zcwUWDT~8B16g{)uvb0?+-za`jD77C-LB+2kT3R&KMUoaF!KbC2;F!9bbQe+oi9f+N
      zB?yTR{s7<nD?Y37&TbJ}N!pj4nS1ZK=gir;-~W9524D_L8We`9SLPctYwo()qA=_B
      zc06CLa>o%{b)Mf?^J5y+lZ6|?s@c1(g?@~o-{B3ytn-E=Z0mWc$iSX3^c8H&aZSrz
      zH|sk*ScpA+@p1px4~8E1rEuc23<E}+kQ^l!geBZXhT-IY+0;6NTCi(81Y*?@MkI^?
      z26gBdYDM_kJVewG7Js($dW$#KOj6D;XxLTKYm#a@H-oBF#W3B@dYU<;b6}gh$C<J%
      zTO^Vx5B)Z4HZ!6w+;`d5x?Bk7aZ$qshRM#=IxgWd*-|X!jn&5t@opFxMq1=mT+`(h
      z?lPo1N<6B~No%KcOduA<G_Gh!ke6-d=tv^P5D`w9JL0|XWFVQ^3?YMS8m>0qPzO34
      zGsrT8%FC6~W`4<7KKc(GaHMe#H#A%)@4G0cTj{uod6H<>Y7EI_S0t%TX~1nAcjR3)
      z;jGv-vo3FVPe)D)53Z~h^9KDTM*`>-b=6p!%n+{FJB=!TB&2l_-_{w4X3$HP#T$jX
      z={U0K&?zqwF&c#c&9;JZ1kpn$%{%q>_sjX9eE=%WM;~R*&}p7>3aycJ<_n_f%pnFo
      zdw^m3N;ue0jL=?}dulL>F<KeU;#{-E46QP!?qU2>8}|1Jtojc-;mMR(r%9hlA7au-
      z?<0DE_y<HXdq^K(cEgX{@*{U;By&tLP9#uz5L7fom0pY~A;gq0QcA?59rar`X@f{$
      W0r!bm!J^mW0UpvC_T*0^5A`oTVM4+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Dialog.class b/libjava/classpath/lib/java/awt/Dialog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd13eb4bab97b9599d1d2b1ced90b4d6831d8f01
      GIT binary patch
      literal 5452
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Dimension.class b/libjava/classpath/lib/java/awt/Dimension.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea55474ec13a103a5555dfc251e8154552717136
      GIT binary patch
      literal 2137
      zcwT)~U2{`a6kVtJY??G_Xp3zqf?`S1La^W$1r-v3U_ZprU;(wa%{93-O)$A>XL$0>
      z86Wznj!!)J*cnhEbz}zd)$!xear^=JD;(E3_x3hTf)BZ8-+lI8Ywxx9ZGZXq$43BO
      z#7!T11fr|jx|Y&5%v8o$(<^nOTJgaxFyi=&dUb90aw_A4S71<G8`V@!uNhj|xUDUh
      zb%97-z2^0rj9tiP1jJ>5P`X;Fn_9)pYvqRSIk)-OpIaYh1_eADM!_sGC@bJC=|-_+
      z(l}#O4D)pXS3HpyaHp#UJpdQ>1rbI>AUtDK^tr~`vR=Dt(MD&gD`eHk&3D`BHcLjG
      zmCkf_I4!V0-p!xL_d;Mah#*4JIuJxZLaeXATI1QQtVe9{$C~{`-MnU%&qCR0FCCZc
      z9(;A(%o(?JnU=|@G)DM}JKo`Vq8opJoJrZ{LCT<i($LE6V8|}DtW}Ds`Q=r8#hgxD
      zCu?<iRrcO-$*Y2~#tKVXy(HCB6;fiqS<RU>qf(?SI|Zmj%RBAEOH`)aeZFCo3wkYp
      zSMZt-uX4)mj6s~nw53S8tkqfbzCG~D$>z@D4IenzaNAW7Z{nmS&z!c#VV?)rEWL-x
      zswIfGaDkEQa*^gg5*Y6$PG@HUoWdn3Y_?5L`#zEP<89*JPz!lhhR+5uhk4FHyLC&i
      zZ~=~W%j<C2YAMDm65?I1Q9S$fKtHZhx=CyM6?0yuU6X0)|HoepVoC}Z$W<G)75#!C
      z_rBj*r{gjghq+TO{ycn+!UsR?Uj7B>f!sDOI&C4>oM(_0zcD@s_;!+~;OR+jBl@jM
      z8RRp-6SxUCKERNj#2^e~zk&+m85>}Mkur8j0wgEyW8?uw<QaQ_*e+m{P(YDSgJ7%l
      zeXM|otz;WmT4S_?qBv+%EHcK$Gps0L68}IK@H(Fjw!O|qHx&3GE6o89<5@}|ly!(!
      z5ADNv&Zaq`-T`ltO?-COLH8=}r!6{o9UY$UnjP!N{=94U5xih$=UAzSXDE4eQ}&nG
      z+|yvcYUB&1eo2t8TAB+v&4t+9xFQJgZd~odQN(S6(-cSEMIJ&d$_8bb+eqANEA*R|
      zLL)7O?u>iZ9{0f0M{O1R9hdNXLfmf|^MF(AfHUSJ&X}**WA5uVVhi*UMf!=$`M5=a
      zJ_oeV8E>C6-U&?F@HHDgKJhce*YLQuCLTk~N*yNoyMu_7h33c|c-&jAE$m&dU-@1A
      z#`XH0wfxb-A9wiUIELep-`OZq^hy2`{4Z?rUsMwT#&*<Sat!xU$y1hZOS`1jIR0)K
      z$CxvYDfQV((1Hy*^$@2PlTEzb#F-y(ZW|Y)mz$W8m`%JB%~^JgcI5pg7Mgf(ckq_9
      UPl)#q%YV|sIOQ;2SJ5~A1JpEkq5uE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/DisplayMode.class b/libjava/classpath/lib/java/awt/DisplayMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17358a5917f62be5df6bacd89c2bd9efa2100cf2
      GIT binary patch
      literal 1147
      zcwTK%U2hUW6g>kAv}M~OrLC0KZ!2t#)WkPU6I*E7NU5Qe#!ouH*xiOgg~i4P6CeEp
      zRUe7ZeKC=k_}~xlN2&Mj60Br5*_m@^?m73|yZh_+kDmbU;&uo=f!LvZBh&K4PG_w4
      zab3RMYSvT;nn1+4smsPedb@I{s<y!7>SnQ=$v!S_l(%+s#Z3W0@Az7?(Y9s7F3EaF
      z`Tx*Ex`pg|A-l6tE<7w|%e(nU`R%>Dp9(`DaAMVLQy^$6>%b)4k&0z!)G?ohTk2Iy
      zwatRG6=giI8kW5x5K3;+lPU>lYh-W?eoX0@L`=Y+OqE7Sbw)=RK}HvK=q{SmG47&y
      z9TNyr3puNy@|~lKY87RrPBo&rW>wZpvSo4HKh$i~YLjNpYdrS_Mh}#|(RWV<XbK~A
      zvgh^{Cb&B2Xo8}`e@&^^9a$&!c+y)w^;E!DJ0eX}woUF=U~H$^X;sy_#qJ{KvhT12
      zeNOU0!wn*i0If7JihLNMc=TL6hA2;oaFl1{?Bo4?!r4QVJBbLb7btp9oB-`}#&<-G
      zL=V%(d=In6LJx6cTI(V4)zMwx9Ebk|8lF+j=cM-nQ+P=Z%D6-~_gp1h#ufe#2!$PI
      zjM$6MLF~rwAoiot{Z(A+yGhf|`2ph_X3qwNT@lkMqPq$GA_CVv$<xE+mM8g!CpkV$
      ze&<QP=}ArulRtQp7jdgkwkew@v&^=a=<Q;W+b1~NMS}ehjCT=Xb%Kd50@|7XU!56e
      z?x!^EkAy$bJU^4AQ>X5Xt3CK8%SaMpyQzWw70O|EF?PVE_qix9iT&YjzMShOHt5E1
      HvX=e=-PNw|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Event.class b/libjava/classpath/lib/java/awt/Event.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6dd1c9985fd0f85ba59bb5143e242f2d380e637
      GIT binary patch
      literal 4355
      zcwUW`33wY<5yxjG**c;eb*!o(0aBpGQS7?u9o!UTY3*#XmV{Pz;wG)Su{VhlSqif3
      zBn4XTmL6%`q<2dxl!QPE4b*aIX}FJG9Hrd%O)uI4g_fi6pSPR!v*Pqa{;d7~X5X7P
      zGjH~-9(wt{BSf@}p7E1Mp*dU3F|)(mUhPoFtWwoaK85B9ThT0S>PT<cVhzIDs8F-8
      z7RnulRVkRo!X@U0qJ_aD0{gAXNTFQn(~=4)s}!1@D3?a6W~th57DufHy>0xt$H#VF
      zrclUOsdeY_y>VkTMrvNfq9_zh<g&UjvH@`gd(~XrH6W-!T+g{2P$(Qv<g|1uulB2{
      z9Bkev;JYiHSe-XA@r24Q;~68brxQHG`?5lfNmW;KD$hq8zGQk$itjw5kXKD1>;^be
      zvwS;*!K#7zV(>zRJl)H9=yMp_z3eoWF9|8E{}l3cmjB|RLOsvw3|4<(btbF7vO0^^
      z-&mc^>IGKku=+czb6Nd^)pAxZB8{GOF5jI_^cie;8iB7&_i|j`KOssjWvE$B--jZG
      zR;vSfyDYFMdlYJ#vgEVKK5p<#WiQ<FolI6W*sU_I&@47cW3IzWy4o#D`)BN@t{J&}
      zQZ+Cl!A8#!%n`;Z(*y9Ur{l?dx2B5_pF~i4+Hev8^rrg^HSd&Od11<ujrXtxwVY*J
      zj&6qXqB}@ktMM|*ORl9i-7kVg#R9gaFT;#l22y>!?(Y8=yPJvkiOhV2%rZSmvH4F4
      z-IqZ>WwKfd$t1F>DsKH7bFx~`N>PDlk(m+iS4CzD&Bd^^uIJ-jMq2L^J>|I&J{)tG
      z+M}@#&qdttwhb-DmOP#q$D(T~w-lZW@F>c5k%wmh<v40}Qu)u6gG{_<%E9_62f}VU
      zScl%s#k(LWh_2#9=dICFn1sF566uuIJ-{~~!ED!V<g#gDeGvQZSk<+ev?w1vG&NLm
      z@G!D>th_0lD?N(E&B`XUp<aKYbfPeW#lqm$M0vDS#cmDaxELL_hHxgJ6kcl##(Dbm
      z!wHi-1&r`+wRU1ZhRZ{RjRl-Lcn+#q$HElf_RUraK6c<AV;avZlnT}J6>4ogHU#Zh
      z(~^F;NR)@H5P9k5FkMf#V7b;M{XsO%ZDHC)vsry8OyhI~s}G0ia=HQyp%+S4YIJym
      zRms`sVv}AT#Ib1Na0EL>Uv+Z<;VzsZnpGNq?3MO~={gFq`goZ3*lT_wOnYs0Fih9l
      z>QiCbO|unhKd!%-QVe0{A<peCbQkJgt(1$&^7fL*6vYn=TUFCG%-UvF%weNiDU`5{
      z&8<r$f3~&LPlpwX)|<OV3&kO;5}^CwwJ@|IM3eM+UK2+|r1e-Y9MvR!AxvMSFJarv
      zZQHC8c6w2(cI=Xl@6G^y1<u=c2<Knpsb8-v#Zl+4;NqL?V&{qgw{@V+ZX@CF5q9|K
      z%(Z<bhu_Ar(FQld$#=u_7}empT0UCD;K=5}#wwSWd+hsR`T_kA1F&qOXpW#c=1;4#
      zFm{IM$MjP_{RE9xcPmUk;|2VfpE8Hhx4)oY`RSL_UgGxBVfr=w1|!G#g`D1~P|N?7
      z8B+Qk9;S8NHGc@x1l0nBH;;njE?BLYrIDgpMQ1m(a`W<WS01elTHOV1_mFsOPi2>M
      zGUj{n-#|K@M1BfD2l-u3AzDCTn(gu&@LY-KflrXQ2|QooW^hE}6T#8C`zJ}f0DrHN
      zcp-R^#IFXwrq17MC0-0ZS>o4$UoY_+z^6#u0)C^!t>7gR$G}S^ZUeVVd@8s@;?uy(
      zBt9K{hQw!r&yx6T@HrBn3tleqo4}nCp9fwc@%i94OZ*maT;eWpLgFM?mAD(+Bk@YG
      zCh;opYKe7luf!>ETH*}&t#$jAmDm91B<=(EOS}fWR^kEh1ro0Vub22j@I?~m!52$x
      zf;UJ!2p+17*OGW6c$37N!G*f{TO{5JE=oKME=gPlZ<F|K;EKc};Ht!<;4z7}gLg>0
      z6MTupZwJ3aV(yQ3N_;8!GKt>>ez(N$0l!z`_krIp@du#r5`|XigRt}GO1et$)pU)x
      z?h<x|Uwq=a+qsTA^YFS9*FBDXuekC%@_M=f-#3DaSj&fNb8M1siY=O;TVqQn==NCq
      z1l@5+L~<v-Ps9mD$iauWgNS<$;+>CpKLTsao=+bYQL*Cn6`?pnk5HV8SFC)Ov+@IA
      z&b3{vEEZinK_81nd>lliVS@I@B8?MtAQtgY&?jS&zy#er6;g|sd^r}s66z|1bTyW_
      z28Y-#97fmT{%#x^<08bYC`7v(V!In+yC{-JC=S*q6c?;PC@xu}P+VlcP+aDKNafQ`
      zDmNp75U$bK(!~*9q#@E6@kauabWdzSa9SPb5dQ?c0jKwksOe22xb-5Ds2g0=4KC^i
      z7j=V+y1_-=;G%ADQ71T7Tyfs(&(LR`Fqgv@`<)xRm+o%3^cM1a_mj_e&<(Fq+`dhO
      z6}E>uVJUR)%x?V0b#vzoZhZWzbli-IejrNTPm=>ppPQun;qTTO9clV<jlK%KpY=Cv
      zeSr0Yw!Xba4>x_w)^|YH=sWk&^a}68`(!`P<b6^MNjH`6&76wwxTzeRu_BMTsbri~
      zS~!(hjUKPjj}Ft%ky6udInEmW9+##+;%i#4w)aDl_ZHXt6ZE9xeI2}WQjypIin8!x
      qelVa8EP^^v-&-}}pIFUwSU6p5Pjq`LBDzNrYOi=U6?#f|c=~^+!2-_!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/EventDispatchThread.class b/libjava/classpath/lib/java/awt/EventDispatchThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b891f269354721c558932ea5c8088517bb434fb
      GIT binary patch
      literal 1751
      zcwTi>TXz~&6#h=245ia1A@>>^yrnP**m|iAO_heEVv(i^0i)IS1dcEYGdP?{lmFvd
      zc}}gg>RLYf;6LzR_zSH23=m3!YaY&-ef{>{-`Rit``aG?uEEqW#<2K3-{&d*M5fmF
      zg(b6QyTxUtUaUKUS2g$<COnG<w`!@bltkI}jm%EI_-J!0cYiBa++|=nhKp;q)t20n
      zCEjp_kFo?9CaXgs3vQF)+>fqs1;b2!IQs)7PBR2<nU*PUGt5UvTEt2W{x!QQLhxZi
      zhmJ`GUo=+IFvT!80K6?7)2iKZ%|=x?LCi3WXUfIIAXFlRFy>T*d4ki+_KGW|IuC}+
      zI?f}YY!`LBjw=L_w_3uYUMxm)u`_PHjA`W&(eVb}WC%*Tt7Mpto^>HxhPQRRqmXEA
      zAq%`IRPL)fLbwn_jA5x}xk>6pvfoqb^)%UXOxrQ#VF+;~G`u@BwC%&T6ippTq!=#L
      zgxqxOmT=@D!}6$tM<Kh0_cdInVGeXTONyFsbbNphskjz*+Ja>N)5V;s?uL$!ag#u_
      z6^Jfm8YDH421jFG8u$@S_Jp%xJ54Uv4=SQ1P1~aB<xNX;bw$3{APR-^c7-=e+%eUE
      zPw1C*v(0ej6nTcpomQw%P+aO?`!fokt%5k_xK;@3xT|4<VQK_7b$kYT3Oe<<AP%Ib
      zP(6taun+@1aau*Xrz4Lq=<W1J+Vhx=j&M+9jN`tJO*|kl!f{UCkZGr=rIsY9f;ZDa
      zY%@eoIv1(Bs)C46VIuuhD<SNltfAB|WjKhAFFh`{l&C><e}#t{zU~|MH-h~{HC@Ly
      z_?8CL>iYA_4@HMp#NY{^0;op*n9!eIE?L24UBeztZ<uS2<F=%zzCs3{*r!HKjp!4t
      zql1&q4C5qSXxnz3ir6p}Rpv)9BdPolA;zj5=EG&2LxBD?`Wr)#o+B*-?@kZXJ3$NN
      zB3WFb+pqA`2V{)r7&m@LcsD%#9J5cc;D5aPGZs2{t%Icw-ZJ99V0j|28jikzQAqp=
      zJ@EqXtscQ&HWoYh=$HaVaRV##jo}uBOnT{VQuq~um!@5@N){O;@G0r;;5xFTxl5XR
      zB*~K&FuGuH8=nB)O@UUC7sw_+k&^^IL*71;u3@rQ#!sYCg&D>(EO(I2t25rg=SMI9
      zDIb@Q^G{I-Z*@?N)1`ymqnCes?V7+89(m^sxOdJGak}^o$_*5$g*#+b#x!YW@DQ`)
      oF-O+(s8C&1TqS}l>=7@b(Ze1j+!fN&&@c{x@94%*^9E4=4?3W(!~g&Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/EventQueue$Queue.class b/libjava/classpath/lib/java/awt/EventQueue$Queue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..580abceaf96911ad87a1d2cb5c5ddd5bad213394
      GIT binary patch
      literal 610
      zcwT)`%Sr<=6g{_(sU1f<wpLr~Yf+>Ru!`;!K}1m)6tUEeo3sr&Wt`%4rhb<TDY)<h
      z{3!7zw7MD0B{#Xrx#t{`ukVjf0Q=a=AVDY(#8|Y%YuGv;OFz7gWF)IPXOJS;`q~rz
      zW9z0nkiC$QeNnfUQuGN0=ePazzO5OKW{9?MJ%SNFxufbHq3FaYG1xeEeK$NIlxnev
      zdWVoY8}?-ughdN;$eKvPwqRn3kgO>{&T)Nt9X)qt&=y@!67tTlC%ldbTvbmGQ_2jX
      z5+_uh89Ipf@lQ{^W3soBax_mc?}ky(lNYX1%>99P6#>Dz@_iYcd15q@qYO6q5o4GM
      zX}w~bnUnlqYNla8jf`4tTRjC=2@V!!oW<3lt^u>re8)m#g4~<N<T)FR0Ul7`Z0Ws;
      kWfYl9?N+7?JB(IpMx!~wYJ7J>&$7;IsAwkQSjQ$3Kj5;2$p8QV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/EventQueue.class b/libjava/classpath/lib/java/awt/EventQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51a92c34e5af41176c93f8787cb4d02dd09a2f76
      GIT binary patch
      literal 7265
      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
      Zmt`h6fo{lb{d=8cIyylU3C`~7{{ev~si^<}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/FileDialog.class b/libjava/classpath/lib/java/awt/FileDialog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1587d0c5804292e5240ee89d8ebb13eaa51adf37
      GIT binary patch
      literal 3706
      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
      QLAWXrc!LT$vAK8iKip-^rvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/FlowLayout.class b/libjava/classpath/lib/java/awt/FlowLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ce2004612d455386c0691e8af2c2fd7b1161101
      GIT binary patch
      literal 4816
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/FocusTraversalPolicy.class b/libjava/classpath/lib/java/awt/FocusTraversalPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57fdf4b72f68c51c4a35d81bf811ca8cfd27be89
      GIT binary patch
      literal 734
      zcwT){T}uK%6g`ux)@EsDmVFRCWd=#qQ-)B65J&}yJ&)^X6WdOVYtp}}mx3Pp0sW}x
      z?zp6twGVUdoIUrP%gnrgyuJb0#abK_3~M+1o)>xFFIJV)>(({D7rM*c3*}1ZAr6Zn
      zWh5^5I>qzmjc|O1*rD{KUuKBpw;BvqMYV*D2&NK<BF2!cNl%>hZks~adD9gP>6&u5
      z+u<`;fH!YuRO3ul+kjiD9lI{EE80Q=ahrqqZ+JLpeWet0>Rs6sb$2T&OQ?jU#EK
      zQPX45R$2^_s#14{e;5j5lm2i`kwJ}r>z^m;M6`L&{mGuvDN62+u$v=USJG>#{`epp
      z3`+@Qkfz({8zBw<tCzvPR6Xs8stgW1H|~6Qf+lN&3?m4>I8}6uw8m+-N5}}Hg%?ad
      zQ859VR+}(*MHcokO;utbBAh|+Xl9W#m<n+YX@m12W&)(11!TjZ19A*JV}<Q!EIxiE
      X#f-BsDcONykYcJFmd$`GM!)(ArzW#p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Font.class b/libjava/classpath/lib/java/awt/Font.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1f8b52e2f9a2b07ae6e15f03c4277b2c0c05840
      GIT binary patch
      literal 14714
      zcwVhr349dQ8UMcBo!!l5auXyWK@`Mf69}N95{c%7mCa!iz<`QFG6@Tt-LShsuwM15
      z)@tiftG3=&)Ouj62^!B@Z`x{awH~$gKC9K%deHBCGdnvwnN6VT@0Xo-{=f5m?|bjb
      zQ(xWt001m-<a)q?kh4MAtkftcBx+isk%R|a2>GHZtV9NC+ShGRd#TlpFh#V6qBUJ=
      zETn`(Co1d0DuUDztPivyV1Te1qmg(*i6mAk;bGNDQ~<%%&>n2!G9tJG-SxphBiD#@
      zZfARIecRfG`mW|+psg7pud%tUySdZUlE19JZE2uwsi`TayK_ZzcTY$2+LrdVZUi5f
      z7wDBK!TO%|72Rut%`M$)yW7`x29_=}HH#{@b3ejfdUIR*+OF>U&hE911k!wTdQULW
      z8Zdg8bJCD2q70Jkg~61jx)QNaWT2M%;-M3%FKZ|oiX^&38CytC@x)fvSAJZmZ>1WG
      zhoX@cfhOucQhM~-gI?eH(#kkZA5zsA!hXSl$Z(Be8*Z#=3@h>Ykdj!>mg=AuqUP>X
      zd!v1XJF8+mGnK(K<1%xNG}sH3r0XW)B04Zvm~ZZag&wFvC=ug_6QQsU(H-5WMo5O3
      z7v>^3=FaqiA8KTn4-1I)VWCJUQHQX<4Q(54R`TQnWH=BGBK<_vEeQcn=BcP0Kimfg
      z!=WBHB+VbSJ{cA>M0O&&VrWQ>H7aqEDVrxOk)aL_C)U(W!%CRcS!`xa^XA&h)n3T)
      zLIe2@`=;iTK4^j#50HZuq$UI+33Wh?$*>fbA$W(BSX`wx3v5!p0Lyoz49g)%Zn|EH
      zw?<>C5Rn*hR#dL`KwA=C=y;hDU*D<>`Jfd#Sf@vcVWg%mSm6P3!&$rG1Tw6IRivce
      z=+M?K_Ob40eIgMfl0_APV2T(Ks@1T2WLOPr$OXg{vaV@Hi_Hv#V`VrF){?^ys0pUq
      z5{nLYN2B45A=1UdjMh(~SRBy<3c}v0S#86E>(p3FG&ZOtnz!_-LkU_N#9%NKQMJBq
      zE!q?YqrJ3v6k0-5*Bib4gc%=Fd&xuN#L#pTb&DI*5|9#_(|N^rvl6BzMHk;RQMV0E
      za3nS&>_aY^W(>m)x*o`1BQWHFXwqMKklrW5CZIK4K-z0k`<3Bv!cd;!`ljKe9_lHd
      zkQ`fOvkV&{?1MOLkzp&_$D`YaN-R=nU7VGeZVSzd>^W&xT(&z_+zofEWqwYT;WRjz
      zq$5h>Moi=}hKE=^#s_D>SspkuJsNC{C)7b1&W7($G+?P>QHlqNtq5~6hr{$BgK(}4
      z`@tMu-ZWba>=ae|g=gfAi=ZAJMSVQ;`>ghF({5oyED+$O<Ae?#c(Dv8!O2-v`k@T7
      zU^bV2B*S#@a_Mpz%AlM}KbD~cN_mZ5DZ^E8wPw*a!BaB8TUBJ)eG=<KWc0#{aqE~u
      zZdYg^q9lf6gtpW&;IJyKo}j2)Q!jjHIHC46u2*78Z$ga)=ub&RW3!FET7R7$9e&EO
      z>qdmxyWv8_#?<sRymctKj+?#-mRNbW$nZ0`Ra2g}0~d}{UW<sel(b~&gBCW47Hao|
      z;vHcn6k({J%dj1OVF$39+$0olh=%)k+=vW!@i=cN9!OAj)XR<c$S}%{Ork{@428FH
      z>wPlZ%ck`*VGh{b_@E5;!$Wp-h(%wo5@`y>hr$YZwyUDCay3u+l?)HVqa3s?QyQ5!
      zq-cnZlw_smt{Cc$df+JvW+}aDW*VncA3O;=*{r|Lu-C2R-S)RKJOj6p9>Qv5AhDjA
      z`kf3<!0!<jSeY`}avU{YEF>n9<9aIAG;)pM|I7^hg~BtnvE#USHpSyLjUt^=VpNgB
      zp+OE``&R4@fe?k&3CFRnW2%x+wJ5rOatEcfHxL;bCVNrupiN@sGq$a`2mXOjmNvk$
      zvw7fkGMfS1Zgg<$d{c&3;BSQ3Z%ibac~KYJ@`5na#AQn;tlDh1?<34e8L@3R9PZ%s
      zRE-&=z3?G<ANS1cCybd&Y+!g$jnGE(9_;kM#}wtvG)x@$;3N2iP4y{laTOL$*ldhP
      zj+ov<V>L}L4R0M<zmoE@DD4a#Cbwbv1^=CDq>r*ZDv{Cb5=+Y*6QT$QU&!zoe2K8Z
      z-X|xemBCjgB1@s9H?f6Q+N30CWIREVui0J6|1WNim>iwf*n|*LFVT$e9#miwlc1YS
      zf*yqSJvPb2*tBd0xXQ<zIEM<3o-{kOSzpnV6Ss`dExIsAMjz&;;)u~XemDndTZ{t6
      zDCAtx(rF73u!AUOh^aOZ<3@9c4W!xz)aYPMeSbeC%-u0167Q$LF+L7p2}zh*KY?&q
      z9Z<sc`chBD0-R2PQbU`WNWv-HH8T{S8KEHI!)dUSIiA5B@15=z8pnIc9EE2-6ihM;
      zVSdFP0yCGhnalkU4$tgwyM@KUR%^<5wn13&&E!@#VpOsieuNr(F(%;2rzEjyS>#aW
      zQE#djBo85`L&5@U+hLYv*G<w`GcTMkV>K>FY02PVJb|gq#AYQF=H$=J&4Cq_YxY=S
      zO#C1j7vds>#&N{=9FO)Z;;%u8t6_487T%jU@oHc?i)B0*Yi$#+hSbSJh$>QDV?$0q
      zd30eNWrBD(!a)<5Gcy8(w{Wj<31uFv9flZ*j}A<!NyY}anoBKIVwx<TmZ{c921E{u
      z0U4Ka+RR;i@@`d$P%l}e(<TE9nAUfOP;Cv=CQKoItBglt8$x&wbH%Skm^QL?>Od$$
      z+KZ9)8brSNH4%@UEcyJJ_>NvmT=U5)t;!aLZ-@>@`p7PIlW)Z)U=iRtX`fWs;0v3C
      z4OYq6jYlK2?(s%E5i+d}<~9_MldCLEZpch;jf_2f&XM_CJ3J`*;@okZjK^>XpOreg
      zl76emxQ@?Ce09<hjVHQ#W1%7aK%6JePwb3IeRSCP>DQ8jP9fMY;{dJ~w~eg(`dCam
      zg;lO;q{A<6km;ng@&9oo8?8C}*(bmLa<dgAD&r7tA`Qof*Tn@Y1>uT7GPAH;i(s4u
      z>*Mrvc-=Sb;^WxM#uIR>2Pt8mJ^>XOPvp}k?_LeOgaZV>g{Ph*<H_8^QLj1DXSAOx
      z<7xP9I%&r#)^Q`-El}CWeP_scCZ0tH&feizOy$&&4*#O(J2IZbJ+6p2Zb~7Z$qGD=
      z4mtQe<BYn}gBKu7OP8B>#h|h^I-Ky~`S=5#aUnwUgpRqJ>y7ALoV+!))8g!wa8waw
      ze<<UnaEG>*>f^n9ilf%cWW1bPecal&S&8(j-27u1f0Ar&QjO79$#`|LIjAaq#Ig@B
      z!fRQg>sSXZ^dBGZ++iUuLTNCQDr&X$ZlqP(b!xgG*364n|4lOf6mL#X`Gm42n@nfr
      z^-6q2B*ZmSEM?GJWxRziWpYAsV}i<eICzJQw{cH_CQ;hKv~luK%T6)r!RHq;ZpXV)
      zYkc?ZKPf!9YJXT6h->#=+D&VzS<m9amVx!RBVUs`6jOWY3{K13OA6DYG~$?y_wfsh
      zHxbpmmEHdV8SjDHxcec#oIHq2zvR0tQTi2U7^3tTTkS?4J^@QS_#_=9CbSjLc$)9)
      z1oE%>8jM!5GrDd=`um#xc0;FxelPwG0lfGJl6Z(O>b&?TTCVG&;XW_^g|FpAUgO2*
      zNfpD9jgjaH5fA<~d4pkEgbl-?FsaxFPJBtmm+=+tR!&@5bAD$IjiRyEhp*y89{f9P
      zKb9_5(Q7ikj&Bgv&HMn`-fy{wPQE|c1YCRpc6#w`qQ9nJ+!QXMCVW@M_wap^NEsR;
      zXF!;16G+Cx>0;G-@k5$h&3D>My!a9ERV`j2sq!!G;Fn54=ToNhZ-lZ6o82IV_8Dpa
      zSROw{u~r~;>HEmn-Fe3)J?so$aela*{4_@KN7Eg`44qOas;e{YUT&qw;h@up#WZbE
      zN`@&#NZqqJTn@L#Athft?Z9M*hacn$`m`6DPJ@RmKu4AgGspwUPx)eQ`UETy`(4rD
      zSg+b5Zo#rx4fA+7>;p8P{v;@b67YbR%31s}4nC@9o9g^3kYlRnQa#TyKHoCFz%stj
      zGQP+%eu|~P*wR1Mg148cJ`G&_ZozNk{H7tkWl%1@Geo@<_J*0p_<i7Xeg&a&9kuKS
      zbEs#306dSzd#Lql|Ks2;tXPgg=aPK6ZVdcA{=(`}n77!q4UR8yjljaiQq|*-RU!qq
      zL3@cb0*eZ3N8qr_!RuPG4VGvvM`$e)wNz;>^;(OYT1uRY+$GWuXk6sp2Ch}b?#sbl
      z?5<<*z!kf$8iUrJQD|Q*mGPj?^0WDKbQS*|vz^!-fCy}Y<4Krx#PEqECcx{&{u?B~
      zn<Ug*WWcvcQSXxI?~y7#AaOs03it@B;A5BvpF%DC2bRERa0Gk~t?(tZ!&lHracwO+
      zKtU(;p&JG;3pQak#4sODzyhN49-NL-;5;mb3vnu3hSQ*zD0d1aUk!c22w8BcFb6GC
      zxI`F$O?II$jg#8X0u}m+*V(X=<R~Qv93XdCPrYt9j~pQc8>r38kBgdN=nwgS<^azQ
      z7<>rg+l3Wba5s10-hv4S{dxJFSf8|nh;dui4jA@Vjlc=kY5R$3Q?)_5199m@_!jkh
      z`N=E;)G1b|stiye0hPtibUM^(vFZTw{X5|F*6PQ=TfGC$*<O`GEF{$cE(Qr}Aqx+K
      zTwEg1XKM4{yE=M4DeHS;{bs}Y)aDR$bYF(~RA;5R{kQ`zu=0DPK$Nu+IwIvc@B@AJ
      zFNu~!-(~($xG?F9uCfxB=8N<>+F!+=i|&R?{N;DUrT+4>?}p2&9)oOu)!lH#Hpuh)
      z@1njD_z6|-H0aMGZUI+-3s*r79t}lw9xKJwFdNrEB^|+P@K`tikAqq~9+sja_&iYK
      z1+F1^L6kK2;*#cGT+-Ytha8(7$R*^tmin#}w67O(9i<!6<HxE|xPjSn3buUQj4HUX
      z-(*UULDHj}a+{$xZn;U6=EIG;+HNB>HqvrdTlM3Rt*frpUsbK^N>|Fw=dsR`mEF>u
      zpO^#;ljepf^lyTEj6n&;VGbr>Ar8YL+zfTN1&+k6CVyFOh_Kwy+HxTb`v;{_I_n4M
      z{*slXZFQM*OfHk9gCgfmIzSD5xlba1OK-JIzSuNbGA7>+ci2q6>~_oKD{UulhhPTQ
      z@3d0C*_QRYG6LLf1-Q!=U^FAZ4lBTewgC5L)c%-N`_I|}+;3>#3h;oHgI8<;9;TJ9
      z0o3U$!zTcykH8~Vg!fGg!)JJv4<3WZh4r4GHK<{A(+nOpO<;||lRdQ9o_12;{Ee$`
      z1fESH=dzFDF36$bQ|OzbFwLMa4gMhfmMQ#Erx2m#M^O?=4GLp$FjM&x5h^QBqaos{
      zV=73Fy<m!C8cd}!)A4Hv2AxuP4xShKDTNpGs8R}l6;Xw0zi3D&iJ7vXU1gyrbmf?5
      zq97X-WOxZ)78GQIf~-@>;#XH{c~xLI;P3F-xUHv@H28+aGaP}mt>-PV6LaZpcn46x
      zzH0-!nuOpPGboM88H4wF3O^Wye?G`W#^58?<iFBr2}3!0!R6?KT!(6+Im4hi1O81p
      z1sm!!_^+<44x-9os8CZDTZ$5?r$^v(s~qN_RcNTJkg}3pLS=;rVv{3uL>)aq3g+?I
      z8hW)2>;)#+Yy&pifXx;*(O?}q>{?+FfRYr`>|WKHd!-T4^l}}z9oIuKeN)6r3}Ph)
      zu@cIwp4W-FGRc6FRfc;flL5Vys1YpsC|R?Eoj!X6Wh?Ac8DM9K)S64vDRb0d^S~}l
      z%o@RbE9!F@!USWXz$&uEnm&S4tXOYmz|uHmti5!s<8^UMY1hpi!)ZN5SUQSj4{Fe)
      z)N-rMz93)z67n3oOj<ApgQONpaVGAgYhhoV+6tZXk}4Z&RU<gdLd;nJE@vU+Ij5Ke
      zGC7DKp$Rkx^o#}f*B6jkNrYX&*v^!aoU`neL^)}C!on>#2`be%*Pt@bZu`I*izS>3
      z?6wbFhzEe}{(}cv0S>nXI2aGf<P3*eVyd%elKtmi%9ZV~NM}o|+ze&V*%4R|B3~b8
      zhX!3hH~Pg9EZqjDne%C(c`#|-Ei}*aHe}lIvC+!nMYalS$Sh>D72(DSg+yFxq+eEM
      zmRV9Tr)>hnw<9`0l*UQ)El%6<%gX6Ei$UvRcmi^qPeK8G8B|N|iw*vYX&ctk)M9Mc
      zH_2jsljODz3VJR<{3xCHiIfa5MwxvwVBtZe1I`yga=rvpoG-&PDyR4;Gx#VIu^L4w
      z$w!&NN12I_PDsWeO$oWl#K1yXQ{~4dYPklrT<p?QgIt4Ju0bu=pw>-CrwsOAX`$r8
      z4EFC3+Xm9XD?|2(t1WBKm1k@JV=@99YXz8L3$QlhayZ^9%sg9wUhLBW*63MT9%({t
      z^Urn8eSo5VC<P-<c&-MJT#csWEYHwO9)j+7d34CyMWZFs75jiw5E|48ZKArHz6G55
      zVPvu7FOk^LF)Jy`B3#D{Qgzw{gH(Y*s=zRIfnn?dLEc5REIQfo^$3$6*2%vju108I
      zsJaI?BP^2W`z?f3<;7CpebQogRk3srp5lO2&PASWFs;O0?4c2-Bdnm$*);G>4;Fh$
      z+z(v4>veyL+eszn-lV8Gd`sp!iMT%*@?59DUanJNrt37A<2oG{xXyq>sNCo}OGu_&
      z{B#(Sbr^2kVMx|tNY-IUwoK%|66^(s3KhFy7R<zRsm&v#-Ka}@C)GXltraV}th}sm
      z6u-Mz8pHE@N=WgpQT+a5_ZVK(lU?E-!Amyt?~nNB3jVor-6&p@5^O53IoGw2>$(og
      zT-QUj>jpTOzAVTxjf^2kt+D!R4MA!RL27kDa`|7S2osgT-grIUz|P9A4;j3Ao7JoD
      zu=VO&G94`OXV!J~kS)M%83As$0_?N}*p7GV0AW%LdvCs;o|YH8ilq_!xmA+)O`e`_
      zs4-tC3PnjveYy7qU5)udp)S#Tx9|tV5gesGcZZnG^vyQ|msp8@ZerfJ8Q@nUo%x0O
      zWG_j6?+D&+5nghe=6jR#`Cstp^Pi#7%xFL5d6M(is)qru5QT>TTPeIeNVpG*JKbig
      zJxsNSMeSg!JwmldM6Hr)k5cW?5q$h|;AHeEsy%fL<Wq4c6?a}kQR!A^io1ox6G$cC
      zl1jlXl|hbF4tdhvFh$x2_LcU9`O++?lV(Fu+7DJqb3mnbmPE^9`wjK?<8Sb{B+C@&
      z#Am3Dv)KELnEQ#ogPdE0&jy)|Tf`(-pnX8w@qm^lMav@meQ+BT7vUf2lUsy;rjMrx
      zp9_xR3q3UX#S#454*bU`zFCBCjo>>%7x+#QexOwz5tV<^Z<Q#0tTjJ1f}a%Of2cBo
      z|4o^<jsi1C^GN{<VYYM-R7i`UN;(8;q(fn$R7+v+FgR4IgC$Zuv`G!HMrwrhQWM0a
      zW;l!5QXAj7x-wjF7JjbXBhZ%pg|31ixsBLh{Z;z)1exSZi<?Qunv`qavXfCfSKlxk
      zxXZyaUj^;3{hC9gauR6Qg0xFJoW_;lT@Jqb?Igdx^z3TBP^Hop`ZZzd)~}RTlr%t^
      p2!SkZAQ#vO<x&_brHF|uzrmH?;dAgAkROQn9+XV(kQvR9^FJW!Io1FG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/FontFormatException.class b/libjava/classpath/lib/java/awt/FontFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19946fd68715e66645f6a10c27c66b9665b606f5
      GIT binary patch
      literal 431
      zcwT)^Jxc>Y5PcJqTsRXG6B9*5u=4{vtRqp39w>)RG=<$JE^+0uD|dTp;h(Y+ECgE{
      z|50$ViWZ8^o0+%oy_tQRJih?g!J>y8VdYxfia^}iAT-*BCK(HRbU&0gRvGOfPiQzr
      zEc7V&ejwCRnJ5wWWs>rIetbxv6GEkHbZUjReGzA}@cMpm@z9x+2*q8cmF*Ck>(NhO
      z&n8Nb+8cdBzH2U}j~UFB;bWFijg*$B*?1t6GckxIp&pqbuN1tP=PxpEuT)A{jsE*c
      zo8XOQnu?K&`E>xn@0lza%1})+m;Q*@o|>=*;uFERi~@>WJ)UwXaYxg;8OzLcn9Ff3
      kZf-rH^5`^GM&Ge}?A=F=yVj=)^QZ%^Yhb};HJzvR0V#iGy8r+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/FontMetrics.class b/libjava/classpath/lib/java/awt/FontMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b1e6dba9b7312748bc7b12e1d30f9b0b776bc7a
      GIT binary patch
      literal 6101
      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
      b{m2opyXiY6H+XTYs51tf&iF^Q>rej!OR)Zj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Frame$AccessibleAWTFrame.class b/libjava/classpath/lib/java/awt/Frame$AccessibleAWTFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9401dc3c1892f2cd7227a222d81858ac33e7790d
      GIT binary patch
      literal 1302
      zcwUWDOHUI~6#njX%Gh?Gyit7dXt58WpyI2DmP(T`6_b`n!ft49^qMl0bf%&#T)FkR
      zb7$htl@f%+g$tMd0Dpo%!+7qr0>wqUnS1X!=R4nb&Ybh}&$sUYW{}mOFpNGnpO`6g
      z%T48~<|dD1N+s?%Vxz({Ys;QVgUT>|5Vj_)vc1(DSGO^AJG?5)$||oq!nRh7yA13e
      zLub~u9M`nmRkKp#{!c4&zdwHX@r$9ueI%U7Gy(I?GScLm6P9r28Tw+!o$*x$HEWl7
      z00h+$L?{R!dUfdNW9UBus4Mdj;k>Z;Qf+gCSC>uF&Cr{-OQhB$&Gc><RjG*z&bMp~
      ziR^jE-9tygmI)?eaS!`6Wi~vbBHU-G=D2hKr*T%p8HTae(K^oIJcB=1$lPCKh_pk%
      zFwmr~=$bAsa+e{|QsKYYwCwA+juDIo5yb@!6AWF=ozW3PoFOEf0(ZoAy^FqBd_909
      zCN*4aOiv3o9aBg#1PY5qV?DEwr!u4Ms3eIqxUAt4b-s;oDoV!{%#uX2TxN*H+9HwF
      zL~%{Wb=;u;;7B74w;^jx>zMPT8`%d-M$TBIvG4FAXpY)SFFVZ;EZVhdiRXlDV9@LB
      zlms*AhGp?;wqiPt%-Q?@EMk;a!AE<oU>JUM&`a}PC%U`ke$d?qmG+~PJYDpfC7(iP
      zD3Sb%a3Z;no-ZDtpS}_fWg7!@*X5lO3}T2*hLbqeNHImH^r<@-{(KDk;s{nfz>at_
      zCAQX}pG@pyET7m#cn^{H2qkxr*u(UiwCv)l`n+ztDQ(F^l3}8O@)CaK6~fAE3@L9g
      muDnH3dFK%i){{4g{WPJsFi+G9ZhJZIAVX)+D<FymsDA;UCPPpF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Frame.class b/libjava/classpath/lib/java/awt/Frame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c01f91ee7f419dc27214489da7c09fda8e6e445a
      GIT binary patch
      literal 7975
      zcwUWJ349dib^pK7v8&a9V39ybfVm9P3R#H_7+VG-Bw-dyE36BHNz`RE5@Sod%I=EG
      ziS4*fQ|IXEw1FP6n<k{L-Pp!RU>bwtMrqw7P23z#;-qPlG)>(!Z4Ns)4etN@W;8q6
      zUFzz`?##S--~0aWe&6!K<!7D+@KzZJz!1#8Gk!SU5<ik{*_n=yTLF{`syy0WJ2{*>
      z5<t0Nu}AE-l9TPJWHxRmtu!Tcbna{$=;|M8AL#At=@m#+FpmtGY&@AAjE_xPCEO5#
      zP=_^<wi5BIH7r=r-rLjHx2rAM>n>DGBB<=|yuIH?BF4(SZBaj|gsc1Z4)u2SMfZ35
      z=%tF@Sx7G<JywLjT+xg02WWy=Avs8LUm>}I<RU^UNiMQyi0bTWi*@)&CQ02rgMO}g
      zf{JK+Pb|7K+Sx%9cemXh?WUlPp&dQ_yC^wF*wxb;-9LwAu(P*cP#){)?QZL$iWw_y
      z$HxY(bjD642cncGyUVVw3x1}m>-3nQZbUi0Pczxat>KP%HtsSDO6`QYEa>vQA03a6
      zTCD<e{9t!H$@_6DnWac#2=I1tN1QPc?wS)Vq^T9DBS~x638{?7Gnuu=S_Z8|Hl=tf
      z(pJVk9zQr{3Cb8iS#{0YS@rBL7>g%ITl%tTJ2}b)Rpara_PD~mBQ=>Errhe>-n|q{
      z?lFb8l5ed<D(yty!lZRHJES!qN=}X+RDm2iV#V*$SwJZ@K6GvAbo^MCoyk&6@TSC=
      zowT#t1SJiPgS1e4YM5!WQ?RJWiV!-n%S06I^vF$mVFfecRukLNM)Y0Gp_tyk-%&c;
      zl}gZAae9N#nixcnFmSl+HYJG}R?|>uipD|3(Qje^L{*VYWi71>aW&*DqDie9clMB-
      znd4dKT?i%E6~G;QmG7Sr_G6cV|8^6balN|xH4|HKow_?{;zqQpyI~XC9NLJ9QC!Es
      zIBaKZt=<|RmRr*Ci9>cG!%{I~k51Av3^}bw3GP&y9ugR%3Bk%YTO-(1#3FCD%CT6=
      z#DubGFk@x=oj?nYdbiaLjfH}hYFQJLI7~B6SSogw=QdM>miE;6L@LS5*u$sR0FDZl
      z%;nJ5R&OhD1Sw_*H;ppcbbc`oW;f2|oZ9wXCf>r@4Kp)`+wWqBxp7d*eYc5wa4$of
      z!n<dav)V6uHa(T__n6p-P2|q_xN8~;nH|eLXySc%KjS)Wji(M1MSUKtX9T_AgZS+L
      zerq<YeBw;}4t|#*ON@KsX<bd~@*#TtrnM4fcu+}u$i#>62V9rQtt&(@yUaoGVG}1*
      zDptgYhhwR%J#tLx{YNJLScPfXVOGFlrP`mG_=w^Q*-1@f(NN}m#Kdplz0`QZ-LLja
      z+p!={2$tqWh39iskL*luuGX=Z?03BCBbGMocii}wCO(0`U{|Gy+9%VQRJ#AzgtIED
      z;C|A?6L``wq4QpagwKQyk-2>uX99TI-{PHDCZ_N>6IDgN7Okv0E2^|1s?2v9�_C
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GradientPaint.class b/libjava/classpath/lib/java/awt/GradientPaint.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eba1d116fcabbd3ea3ff6a197a2ab090a43133a2
      GIT binary patch
      literal 2918
      zcwVhlOH&+G6#g#rXc(HOfyqc1B%pzYVE_>k7!tx{AdwJ4kN`fLrWu+v-PjBXY@>VG
      zrrfx3mnyX?1683)H<nhp@Ud{M<quKMz1=j!I3!uPn0wE?_dLGyopXAA`upj(0Qz7_
      zC}U{cQ17cr^+7H<>8PuQZslfG!^%krGSrGUQ?;_mTPqv7Mz>*xYTrU=GL-H1F|Z5?
      zdnA-;wA4=fN)xteJ0o1HpKI_%qb02EX{Mo(;W8aY4a>-lF<k1%WQtAyd(*kV5S*}A
      z^#~XmWYnRNq2q;2m$_}tv|;HpJDV%IGq0|gIz#=mt*PdM>KOd&T?TXO#x}$G>CzNY
      zPPaQw-m<#AnVhxhp+7xR9QFm(Iu{~nMvH_v<yF!|#w%zgXjwhC$Pno0OmmAi8STf{
      zOGNM%l^}XXO#a*-K>(ecI7K*FkkHK#KPmUjj%f-5-MO}_>03F&wj$_4X9Y2ylp&#<
      zOMNmbT<LWg5ma*N4H>d~_oj?0S9(iEwfj0EqXxAMbN@4QqOKK`zEGg_V;!Amm`b?9
      z&{XoRJ!9HxE`rOr%E_5v2vJuZyB3kib$y}h<M#Gr_ZKLWTyAVnc%4o}Q?FNPj;`kP
      z37g2>rRn*+fC*z$&FZepo7CQBL7H<kepDG#FJ{DlIK_&18edzZMxS?7YkSRhHcxr8
      zR&~d)vQvb3d!!&A(b^uk5k6lxWu!0`!7bdDFw4;V%osA}aEBPk9bYg^KEKqbuFt9)
      z2lI}M48|nfWoXS>JIT_M>A{a+0S)|fLm---K{A89s^2#>{i?lVt<uDwD@8j)WM^A<
      zj&+)fP!^Vf+Gf|yz2!L-A<cDO0qWN?i$jgG%LkfP>Zcm&En&Z<I=ZFpiMF~P!8$f1
      z7=>SFk)e!xSfef^t8sH{U8OAU*gKA<XAJS(JH=ZMw?!-Q9H3u_ro5g{I{jPJ^Enqg
      zO}W@*?_A~W)!sc#H|>>VUq>f~m*})dIuh+QN?Us(8jOZw;lLrzeM47eh|(IN9k@YG
      z-o|;7rd)Nz@G>AI4uc7a11S>{hY}DH2NM($hZ7PK2NV`CnmiZ}ytihh>i`$_X}P%H
      zo#0}Ei?QHoP}RcuU2?vN3s@4s23!X|ux7l9*95R;0jEqzm*_4aBn~1dKs0(FekUEy
      zSV}oWN8$&R$HG6N@(5i^he&*<wB^yGwCB;QB=YE2qQN`{lxQfAK_wQ>V@PR`@)$k=
      z*&}GrQjiVG{T>=%60}XUz@ond8w$42i;pn~2cy^)NzAzb{3KF7yD6XDl+SL;XE)`u
      zoATJ@5-+$UQXKVCd`MdSEq)fy4WSZ5KcqOH5M`eVjAO0`A7k7nI_?u4_lb^sM01Jb
      z36Um!v^+e+q69$g5iTz&Pl(_r=sm>v*FJ)<c>hd9mR(&hGD8~IJU>a=`CEwW`-_bq
      z6&Qzn<II^L2Ix0f0>qakK}?neF;r~)RY?$2xL(3|_;Hc((~`zFXe3?Z@4at8Iu=w8
      zFwG7yGaMH3ypW|MEG)&syv}^RxX)>dN#ZPd=OG^W5Q`_k8%0C?OmTmq_`jkXzu^k)
      zCyko+n;=b7xGeCc@h;vIO_0X>_&_v48Xw{#(FAFzSRubMhM-Z4gvnbsR!QQGs$<Q|
      vXqG&Pmf}bckgdZ%U!b1DJU)bikHaTCxsCb<q4|@(2!9pu75Divh4$vZt)D}p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Graphics.class b/libjava/classpath/lib/java/awt/Graphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31b6c9071b7514a3e5fd5df3752fdde60abebbc1
      GIT binary patch
      literal 5028
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Graphics2D.class b/libjava/classpath/lib/java/awt/Graphics2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dc56205be6bab6565190ffbe3ac6455884df103
      GIT binary patch
      literal 2479
      zcwVhmYf~FH6upAA0oRn+1k#qI4N2Or-83%Hw<!(SHE{!hV(O&iF(Z5BT_x*Xk1Rv@
      zS^bome&`SAkLvVFtKjvTG<=9>)<@DkI=WXn`}pVIzy1b*6?irU69nd;(_>nqC$h9H
      zXwT#A{%Um!ECRW)0D<&654hYQFliT>1guKvunbJXOcqj*CNQ_d1NLChZ8333TRtO@
      z-wE5)Z&JZk-wayP<EXZ<bI#gj0vSipleOvrYfA#tb{&65g{E33mxcFXjsSUyR~@fY
      z0;v=3NDp)K7<WCKkrtHqnS;?I)ar2GkF=D)QWic`0+w0=i?@d<G(6g4WmVRU3f8;S
      z#Z>oW3_VmH_FWcsOPiez)_f>v(C>tz8w+zqk0$N4`b-=%Q7&Lg6+6k<8gx2LFekad
      zInljdxn5UE=2VggEO5?31n!P0j}YFLx{{qA%Br(6!n<R_;*3&CurIQTKH-KGJa7qI
      zG2%WA+)^}XYCJDetEtFs6OrttENw~*wFZ(o6^{zqmQ2*~qB0al=)&|!-BPAOlY1QP
      zWXEb(Ho{!|c#)BBj?~F6x=dEtF>kX<7<9NhKv5nB1a8=caj%bX(DvCrla;XB3;SHM
      zVex9p*|6TdX(aAb9>`Gx>!HZNNWkq1U!ct8xW)CDrd&cwba1$-_q5jPNTIP%|JHqW
      zT8<sXUh6q-M5N=6>8$*}PGMXK-JDDZ9}jt>GmzXb?b2RUT7$a*l>>pLEhY%-#o~r0
      z<*4H%)pE&1acn7mETcipX+|o~`cxf8%8rbbva3~vX%R{tu<WRh<GPXR<Ks?E=zENc
      z*CNXJ$^{p=HIxeuhjX&-NOw7&@wpmk5BJO-`8YlDM<f~Z*<zeCG#Y_f%w&tUU$`P1
      z1kR|}Dxr^ei^_M_9cAT5<rEEf!5tcMK29)>#C>f0yoYW@Vl52JN#Px$?pOjh<8wMV
      zS{fsv#+-VpZ2PA@uZgY-ardv=iD|K@xz{s|a3I>O#?`6K4c|j|)I@6;@G$`DXM?5Q
      zaoC^2-Wno7Och_j^q<(6fDHa;5CQg)dI0ZXD;tpzXAy~dc^Ls8rP7K~T)KK~!CFYY
      zf=fxAhp6#L>uf|^qoZ1RnAh4_xQwj{-CDrbq;4%@%hIhY@Byw*)LZY(D}R(+`6;gY
      z>|Lyk-w{{g8mRAykKq%8*EKG~4UIS9mc~!vGlQQSv<((C7LCpqa9iV-a7SYazS6h?
      zs~XqfYmMK)w;I2L?=}7aKVsfxUFkaZe@gT>;AhRd3!4VFG*+N$@E46WGrn!`9@I7d
      tYVbbnXxxPd8u!o-3V%aSC~Ux?#^0f-@u8{f5&WU?2p(&%Jkgmw{SQYdWEubf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GraphicsConfigTemplate.class b/libjava/classpath/lib/java/awt/GraphicsConfigTemplate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..372b3b5decb258d2887394a4dd5f2bfe05b2f361
      GIT binary patch
      literal 684
      zcwU84O;6iE5Pj1)gruZUJ_~6}5-v#(M2HgtA+^R-K~Y+45-IIzlPqD8V@LKHBz^^d
      zg$qa=_yPST{S}C@K^2uiIe5qK?VFi5qy2M#dk0_x<qX~sR!_y5sEKo3`yPnViRy)>
      z?;WebksOX(p=AaJVI~o|!W-0nbWdeZXD~sSPgv#G92qF#steI|C5yuZwq+11-)q(P
      z2y{TmbKOu2Pq&2|$@FE>?EJkhZxJSK>#$X~tyou2u{9!Of7;f*WiuHQZ1Zia*|bc{
      zalYD}m`V{Qc9f^|E+JK^wh4ym_hk+#EKOk!^MvV!@?<j_c4ct%=xny(_t=<VdyJn*
      zL!YRSP-=`>#5NB+koubp_2Wep2+ac$%*yZAlAko&)o}vCvI_sda-z}5547wP)+*!j
      ztG@_2$B%-Z+*k2fg_oyTkLwsE@YeWC!@vqMnB@O#ylCXGj49;*;dhLupWzwC@1Nn>
      zqz><!&jn^SITFY8mm4fzC6W((<~Ra}+|J<w;1-F9n->s2u#fnZ#Lrlb9{`F;X6XSw
      C`lD3<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GraphicsConfiguration.class b/libjava/classpath/lib/java/awt/GraphicsConfiguration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2887c1bb55120031975788295f1cfe5023cef04c
      GIT binary patch
      literal 1797
      zcwUWEYi|=r6g?B0I9Z$o!Xv54ljp_+%%c=&AT%)#r7|Fq5EQ<Rov|}$y=!gOQ1u7!
      zds?XwsYva|Nc;~FkMGb=h%@7r<HW&KtKEBd?>*<ty>n+@fBE|#0OxTlg)V`yC-SMx
      z$!AgSPAF?@y0o4T{IagpLmBD7Pa!F=&*pg2ujK9*pQutKuwPeYMdf8p7PY4%t=0ub
      z3QewsozWSA!D78!R^fKc=oV(aElg1NHSOzYRv_U{Eej;`!K!kQKwlcYa0CVl+E@4L
      z)uIZQWYJTUDFh|yEz3}w_xNKnTGLdUD0Hrtg1r?L-BeF?iKrv)R6C#%Wagn#sAQz_
      zLA6FOWo*#`N8N>m7MyKVT%209IRuaH1TP03oz5iNa!4}Eq)t8mE`f9Fx00%v%GXmk
      z!jhW#bB~squ^x=F(S8t3=xWVVRpm!&)j<a1W)mg|a|>G&vKWQhugsX;63=)q@LuB%
      zlw^%NaEwd-eqp<3?d)M6w<;faL3o!#;jyP~8)PfY{4uwkb6dgzyZ2>T_oAgx`s?K&
      ztO`uF(pFSZ&CQj|oVsQTkwZk@qboiAJF9O&n|YcK>i#N=Kitanfai$)^6V&?q+L$O
      zcq?F+^U(`|3u){@w?ps8G%n#MfrDgg8wOK;3t9WH7_KX6q|lSX&z$`Zx(=@5n%Vp7
      z0?O?~`u}3>3de7Iy2hg!an?A;%PHIt$b6g3!7S#?ism_K?qf52&SFpxOX{{Z=RdRS
      zaX)Jalankw!9QXbFLu&;>;i2+lIAbN_+GwUq!qM#vKvVMY18`obZCJ^rar^~y>uf9
      z`>-G8=Q)T2)*i$mYY$_Habt&x{DFRwZy77`fD1_)&R58+432DI?BAwNx8;3qHL{JY
      zhKBVfan!~g9HZA|z2n3rtm27y1t+aN1vj=+)@E_q+UeMy!CAY)9L~k1`?30T_Ai{@
      zL{Ii5E<U1vc@sm~SGc-jzMETYVCDrbo6sN4m5;HVz#Bf_vODkCkM|hC2d?iu*YL5W
      zYtwN>!VGe({j2Q{Fx=1{px*3CVgtXtXh?49^xJLxM4ivn_^*X`xXGKh**CueIpM^!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GraphicsDevice.class b/libjava/classpath/lib/java/awt/GraphicsDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43b711e27ba2c53bdec4d28a839e77f684335793
      GIT binary patch
      literal 2719
      zcwU87TXz#x6#h<=HZ&c|rO<#{p@5R6g(3(lg=(87ZL}9mLJ?5wG&xNNrjsx;De}$_
      z@KqP@yzqc72rjP67hKD={0II8MZCU=-<gEm8fey<oZG&9``i2M^V5HK9|Cv_s{ynL
      zgf8f-`mlc49iFuH!m^QZCgiG-kpcJxHhYJrZsmsO7B9$*E3h?v_Ec;kIhIPtk_)M5
      zG8UT^5D9^e(Y)ojy5-L6W>Na+0s@*ReJYulrMTJ?0$aSj#LU=aY+?L#JYGH^l&+<s
      zX)ZV!TS|*!(^X_=3@e+zJR;DeBvPKhoS7ZZ7p<%#u&pMUBu1h&C58Pf`K%P^t({I7
      zPQlc#%y6IQ9VZOSa7P7v;emOIN4Xt@4<QXb*e0-P+OXtoab;23X?@Y8sjbubjBd{B
      zwxQOQO~1Qr5X8>u7Z6ELft+;HR|?W|MXI{EPE0tiZCE+N4-ZV&cusk{RN6uzQo3a1
      zini_=Bv)W>c;Nh6KMhjU3{i7JF6l+H(SX37=dNC+zK!bR(rMO>hF_$bmMf&yl_TpK
      z53(foYuJtcAO<iPKty2II#xC8!;o^nZshB_7ueudtP1q68;-zs!--cbE>$cP^0q6p
      zUK-D_8Xf7@j>|==(z&K^2j)8&_}dybqFc?5Y1o9#LA;CO0lddbYf{iKf)fIrwEw)u
      zLv>bbMLsaEjErh{A0JRYSCj9p&vZ>eC16}b6cYm7s!VD(LSRR|PW@d8B95s5CK+6-
      za}5dfkz3k3V`SZBCH|3yX|<^^O-UoS>?)+QDzZ6Vh;V|xGWw4-B-M4(Y<a23vWw?4
      zMMoW^HJk=7=62GcE}lwZQZh5fs!Zn_DT(G+3VBOf?ufd|f@x^amV@fawMtS?eW=y;
      zvcqsHVMUk8m#oWpx6?${&Twn4R8Rs78oq$e%r<hY`b5JOZe&>?qv1Rb1waS;Ydzt#
      z<vd3+SCHjmj(wSt1vLpGi;$vxS%ZNK>}%vvH=UP2JQsk;W>9mGFin}$%`rPyTp@{d
      zwl5;2DmJfS3$~I~-L~~B<o*RQkb6U*k5P}U>V~O0<X9#nO$AzJXXHxWrgkuuFWMOy
      zH&p-ZX>6AVm0f>7eX3WX13S^qf0m4TBd~$%&boDw>#n-B#*dfGoAZi!BY|`5hF`UH
      zN^a-s2uH!OJ#q)V-+E#@_#fm5R-GSbXc#o-3E>sI3iTeohCXk69lN}djm#VOV6XSw
      z?ZX=t2PbJs+3FmOl<;N=;hR+_9iGvvo`c@9P}zYuJAi{8wqYEqm>Q~JZS&t~vhh_N
      z$hL}&e!lF7E1I_mU9mVDxrHN-(X9r4M@x7oB5vcz;A0$(43=>6wi>xXtYb4u%I6y@
      zA;#~+61<HPPN_kZkgCyjklX_|$^Cca_%=fLo*3?ujC%;<K4W=+Q9MKpk1&HDJhZ#Z
      zh^i6KlIm{aJ;0MsXr+zwvp83YV7QtmI&Y@%=e0TF{QO$te9grD(t<dFPw`nr^FDX|
      z9H&Ug=QI3U{03e3kUe_`OOJ+rM8J0)?L!YouVeF2-(fPC`x+hB5xnYq)_3jMlfG+8
      z`XZ%Q9w}a}8fAy+75J5Sf8*>43-Wi?(o<H@AH@471AdBQ_zTDJH^%V~Ch@O_HB!b?
      zrESV9YhFn9@&Yc=`YyhxHskYgm;Jp3fmRcN!q<{OHm+u6-vh*(l{d9ic6dY9VPEWN
      K$-e8YivI)ou4AzP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GraphicsEnvironment.class b/libjava/classpath/lib/java/awt/GraphicsEnvironment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27aa4c06fad45b6ea7b6b155a4baeff605c0135f
      GIT binary patch
      literal 2586
      zcwT*0YgZFT7=8u<8^RVP3et**SRkM!)?2lqwh%z0Q7Ir6sFfj^B%_;M+zXdhYw!Kk
      zf6@>3a*)%W)AGp=J^c&qkLVBR={uVZ2`1%mHna22^Io3!GRq(T{_-1uH}S2828Qkj
      ze2vHXx*NZ0^VNdPIFsg@v@NqJOjkpQ;h>K&xS5aNUU?ugE<=}LWw=pCfuSe8pTPt}
      z^QbhXdxfDfHZ;!=N?KVFK_gmqXb3YLNJ~@P@`@|Mp5rTqV2Gxbw|Q<$wGV_Lw;&yc
      zqj}+`|2LT4*wFsrw1CX(XhL%shZznl@CboN@&Q<wYY}v!OT!W3mN&h4#^8>#%H2YI
      zcGGc1aoV<4h3!h==y(;cF|<-hfpC-IQY>A`->hp(GoPrH4AqJv=thr*W0aA~SyDOI
      zaU8u2TF$a>@gn7-zmAV;i@ug`uusQHyiPHiVm)O#E;loze>hf+E)_YUVSwRCMVvBS
      zVVm5Tv~9}{BgQa%$5gfGb**0M+j1p$MQ{Ba_G4HT_!L7&y=dnZ;td@mh%>aP4oPy)
      zq1aAWqvr~?wXS^bp;wVcsIAXwI9qO7RrWc{G9F4-$9Y^}Xs6;#h#dC}H#n%GUj--n
      zZ!sKG1>ZeNmMb4%BDjdlIu78V25Rg>m53%cGGf)0mZ`d-k_FYuHPji{1|=n3N1M(X
      z+=mRu)BDCju!wZ737$2C<M@NM7{(-#-7Q5SI1J;e8XeoCkxSu*hU<IgyA+a+G;Wey
      zJo32Vr1GX^izHXYs9U;4hHzomd9)HqxxpedWbf-3N0N+E{%13`5axtflNmu8-Lavi
      z+9@p^6SdAt#i|u)^y>}xu38&msT<33h6}L@S{8X;#K*l{PS_%wQoBSQV`nE4rEwlJ
      zj48`>6}>&dDq*5@35~6BX{aVtvMFAa#-<uhM<uPSvbXGmK|r1>jkte@Q4n>JZDc<w
      z)cj3bQr&COYU;i$p_06;gJY$XvYUKE7QNzKX=bhUamzEa6iR2c-V9ASxgoC_vgBm1
      z!4~9D(2yr*wHi9EKvLtT6zZW4L+zT@W!5byiK)Z#&o|ZXkq%q!nhQea3p6zuxaunK
      zNF|m^sgD4&X$tE_rdVz2n8Te2KEV?WkIQ#bZP9gnil=m3>6fHs=49Tpd1(~;>NU(B
      z4Eg&UUuyV*?)v?aI=)hwZXsvo<VI#K&(4S`sXk9#b-p$u%4FySQEH?QFe#|-4!!9J
      zsZSqCT4;BURz_>n@N-0dpqB;$fWQs(J4VnXUh$QD5ZZhbE$S8u4E#yv754g%Xnz5X
      zexF4Tv2AqR7=D3);cXn<!igQQpU|$((!ZjAAv*XRL#MWIdI$Z#Z{y4kE~aUFDZr5B
      z4!WNQ@OBW*IC%qZlkaJYY=&gB6x9scsZ<?Uqz}{r`mjVA_b`ZMoT0`%kNdcUJl;hC
      zQ;<H3UW&CHmobWWXg5gjSLmG4(~9?qtzty?M!;;8yermi(FvbVbZU4D*S>!#M~^9)
      zPj+*p(cdlKI-_{YmPUdkhqf_Y(Qo!;-&N%|RLU>?7c@f*)k>}Cuk*O;uOARowJs9d
      z()ywA>mEJ|d@Yd$71v1$_C94hvvBHX2znkg8OyX3=~<=M=Ww3AMCC6k@ZWwooh1`N
      sxtq{~HLUw2XyOA$7XnhP<Y;3HA8+Baiop`Mf2z2(2F4h^_EF#b2i6FS3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GridBagConstraints.class b/libjava/classpath/lib/java/awt/GridBagConstraints.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e042d74ce8e541e6ead8c5a053ceac78a5df43e
      GIT binary patch
      literal 2167
      zcwT*!+ix316vofQb{#t#J2&UjG%cm2Bn~u`OS!a7<Jg;Ii(@yo<Ir*m8)s{8aP44k
      zn$Z7-|DZ^iN+6*M5E8spi2L;k@xYw|ufTU^H_4D7{IGL=XU@)ibM_m*|JUnp645Ez
      z3R0V(;WhJ`Ibm)(6SEC_b=oW^>$RrSFzuSt43b|^mn^87wem!EWz8x%K{_C)cQ>1?
      z)@zozQniBAE~rmV*!79L)v(Q~eVu2pN>gIdYBcS7ZP7>x5*Gw@%H7PGQ#7j^R^ZN&
      zP~`S^CvFS!XR;X`HHHsb2|S%G%yBFPh3B$4<8n4rNTfM~L$nw5T){}X>=Se#sb>m$
      zjwviCkjduUmpcT7B<P8JffE{5-i|vlna?inPDb#mOfW>ZXP0z$whOOr$KBiOZYO%6
      zDW|6s1*53@{>BdlIek81WKwz#C%BlH)tB>yL{3)sqFQG3Op3V=6=@@*RK!prGhRhM
      zIyz(I@`dGp*9{1YD0#1XP*60T*jGG+{_m!}+JoqxSu0iQ4V>?aU9Cb(8P2F!cDdr<
      z7z~^Cs#8ICINtKcm++!pYg$fIP<MLARfbHRL6N;~%3>Z-9Nd&EA|p~egnXdHeu9xk
      z$I^SPhh_Z9`l=NsAI)oI(1j4Zk=1CLl3`k)`5>XY(LI|7sUYb19>ZqpPJUy3z20!F
      zReh^utvm1~_sPcG#?=+8QE;8xldhLwTod*Mdr7}jv2o6k^#9x*h!tft<*Z$^ok>By
      z(Xk>6e^#T*^fU`!*61unIWjdm=SC%srrgNVDB(tBjn2D~t<j_#y`WLbjjn2>Q<RTi
      z=atvd%uxfsu_DhlG@7AVjvS5VXjaf+Ih#ru#=ft_FX4OV>l=-dHDmKh2lgNAB)>*S
      zv80dMC_q6vMuQZhFftu{AxWblicoZiyTIKF_kep9?gPgZ?gtMjJP00A_#kLl;X~jN
      zg%5*|D0~<AsKR%Hk12c{e2>B>!1pRV3LaB94j$igzWWruAAC~b3Gf37p8`Lq@I&B-
      z6@CPKTH!~*k16~(_z8v2AcB*K|0&OT<D@s9_r@u2On4)%j2u%Q>)r^r$Z<}NK18@?
      zcs>a#W3M)h!||JxzC|KE9)FcGuhGR@w9ul=_>CoT1Eu&M!Y9k4bP;hsEJE}awbR>(
      z-@(kgkpCVP<(yoOmgp&r?P%mBM7TJ7MZ8U4hQWBvS#0`Dyer(I=i<H=Js)pt(F#9S
      z<Ng+1;YWoh*7#A4zd;L^eE8j@8l=S|Eqak3%~xc{SlDUm#Pb94(}(cxM>zk-aN;Kr
      z_bD9o865ICzWf*XnqQ*3U!ikfqdVV7;hHPS6V7rsT)9F+&mzdBq}*7D<;KFScbN4a
      zV!b1*HzozgG*%qzWXVGvtaLEIQU`<oq4is6{T^C>K%;)djrj>T;b%Dg7r6IVIPy0*
      z>ki!VJ6!MwzVDw>>vgDw9#1PrQ_?#eu^ZZC#6I!Kh@In?5qlvZBX&bjM(neYjM!;m
      X8L^i-WW;WAcVj<wVwY?344eM|Bl>KS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GridBagLayout.class b/libjava/classpath/lib/java/awt/GridBagLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c406eb99786b7192388156ec0e271c1273ee513
      GIT binary patch
      literal 16068
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GridBagLayoutInfo.class b/libjava/classpath/lib/java/awt/GridBagLayoutInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d24218988d877f91a55a44a6fee2a5f7ff03bc6
      GIT binary patch
      literal 737
      zcwTjp%Wl&^6o&t?lbTp=6M9J@2{aTaiGi9zyDAiD!o?^mi$Yj*fhLJbrZOI6JCyPw
      zJO*N6A)$&T3toVS;2jXhW5Whv$@72b%$akU`Tpz6R{$HhWk6%79rCx_;YYFaC={bz
      zKJM{jIgQ=ml{8RbsHlCP2V>{y;Lsb!24)x*l~+h--wOrz#d|*RJqnJL+4sUo$l$r#
      zWnfPjW;-&7VjjeO?oYkq3H$c(XL<7nL-CD_UcRFsH|Jx9!ch7VNhps<N@Tqdqj*BB
      z9Z;A_{>PpePh#?z>FysxJLqQHe?2p|MIhoG%H49^cAt`V<j6Cjqi$gt4F<i{?w7!D
      z-hzeMl$sXiGFr7z&ghbbN=9oIPGdf$mW73kYzvE6O6i(~DwY_^JrQ_&)7Jwpe3o6z
      zd`}MPUO3$j*}1b2PXu+@=>7i*wrQe$ISq&2Ly;b-{u8mD9!8U@>+}~<LJbB^5trzd
      zHJG&0Xh^@gT+6vua;1@!F62t%D6J}G^e^KK=~<!=lv5|&vOl9{>j}=K%Zgo3aKUaQ
      zxM<f;%mkP1Mk-gxG7_}OBDwlWwRD|UTQ#<g0`5?wJJi};Du0j4+{X%bv4#%Cb+L&D
      bSf|KlRum3ysMfaB5KK`zhDN-hvfum-`BsVx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/GridLayout.class b/libjava/classpath/lib/java/awt/GridLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66b4ff692ed84ab46b8f00b11976e4882b30a52d
      GIT binary patch
      literal 5050
      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
      W{%yNm)8Q^$swq-FIRBtMefxjO!z9N5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/HeadlessException.class b/libjava/classpath/lib/java/awt/HeadlessException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e51c1cccaa7b38b463d4da49a79403f917fb76ea
      GIT binary patch
      literal 526
      zcwTi-%TB^T6g?LTH5CL=P>CB?0wxmU5@mzpBaOx&-48Iqnlf$LqW%vnm##=$_yK-{
      zpW)hgTZkqS7js{89&_jY>-7!50m?cOgz~+35Owhw*3YFFI5G%MpZd}ZZCB~g2)psU
      zBh;|oRl(TvTtAe9Yft(j!u)^<`9S)%a4hKu+;=Zd2y{uvwp<m2LWP!a#xj+-`J6mg
      zKPH6qk*(~oNk~?z7C~#d18E?Ml?)6l6LO}l<kfi8lm4yfIg(H?-98%#w&8w0)WSPE
      zAZ(leFVY|sE9UPaozS<{uu-)lyJBRwM$ku05yRMK0ZK4B?%40kwjFtv7A*E73U<KT
      z@aOWkB84<(ox22<_)xSJ#|%#nITPnpZHnwm49RgcI0Fr6I7XhU%nXE86k<_+=Ukx4
      h$OxOR?M<=%SE0?Evsj@tL(LVUs)UW$d^6^3eFH-7aOwa6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/IllegalComponentStateException.class b/libjava/classpath/lib/java/awt/IllegalComponentStateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e54323b445c160bbf6bed248d6acca794c466f83
      GIT binary patch
      literal 557
      zcwUW=u}%U(5QhJOgEJ=xqM*_kV<BK7F?K>|5E9JA2Bmhv4W2pn$lanohc97mMPgxV
      zV(lyV8pgQ;W7Nc0?99&OoB!Y0m-ojf0Q)GKh!J+K#I>l38(r<Vt{e)t>5ayol1g{A
      z(6V(qkYnw5%7j7Kj9^!&;V1naB4h*UJHqWrKj8YTb3~wHLb~axKntaN!kx&(+w=7P
      z^}KjTNY)+Y=msHPD)$IR)4Pxs;#f+-!XhDKJ4&8RMt$j@ioPoeIolhsfnXc1=S@Rj
      zIsu_<|8tufAz!k;w&`l$QNvof7kcMI?-hbMl0hJbk>@XzV0FETKag!Fe8BeKetY3O
      zw!nMx-xG>RAj#R}Dux9<6z<D0#hnAr#5qx!BK;5{8IBfb;1CAt$nq^UgRqQTB+8GT
      j3pAJv*<@vRiq)SAEuLvd3WXUpR|szftVQPQ(agpNkH~%G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Image.class b/libjava/classpath/lib/java/awt/Image.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e5376f34f8c8bcaac456cd050ae2469416cacf1
      GIT binary patch
      literal 2109
      zcwU87-BTM?6#w0lkgx;_u|O$MX`?nlg;x3{q0}uTuo?)Gkcvg|vblt<OA<F5s(*;S
      zIOD4i&Nw=)#gQ5HL0>wf|AG&GJo^_oo_lwJkVbjQJ?GqWe&=^S_U6ey-+d3@3N}MH
      z#n649@A3)$z@0F5cu9m1VCYdco0m%y+0FaHbQyYA%SEwel|^ycsZ@pIe#8*XH2WnP
      zx^lC6Cbcn_O6#kcJOeYxHd`szTwZny+^&l@%FY-x&oQm%^3p<7BAz9;n9b%Fq>ZSY
      z_G~Mu<%}__=Tp)gW;o-S^_7&qp%+ps`n<6;FYkKjj+>^ig~MH|QeJkfiepK(EX@#}
      zHf^hHxibuH@kD_kFk2~7&4b5k&bf|NE`>2fCDsqh9<BOyYdDLM2+reKhW2S6tuLNw
      zj!z~E9bmW+K@ja!NQO|B>N}gl$@5KH$o5rCZWp*?NnIH=wBdP)-A~lqZL3DSGRFr*
      zEe@B2d)F$u+k_rJy0+xC=ak*731?S0$pm%3gWMN{RoZqvIajGWCgmTECt3#6fQxmL
      zf*Cr=ecs{KZOg35A{zn@%)ZyrR?M|%#R()^?NP5}O8pT<L+y@a+!r?tBhlQD5Uw&@
      zYRaHHg6jm%OO#*Xq%GSOj)qBGmmR*r5G1%nA%s^MVol*IqH0?vcg3;Lo46jrG{eOv
      zZ||O%O3iDpMx&pJ;6=QoA&J*yMxEhS>v0`+yydNjPV1y$7O4>C4whB=<tr8Yeanp?
      zjd`zWb7G6vZP&k`&!KT@zBMVKj0j%G8#F$XdgTh0i{bJK6rXB8_3?qXjP2Y0mIb$L
      zUZRC*-%`{WhX1cHTIi~e&T#&ul_czXjgk%2gsZpw&;#+boa)_!IjOxeY+IDLtvjXq
      zjwrjS4^2^(VPUKhmQmj2wk5xD4`g&#K2+lx3K)?e@p=T$;EW=AkY%9sU-{`}Nz3O=
      z?E%$DP1RHt<C0F`0^!M*ie4T0GLSS#a+s_g@)?9idS`<kA-$_X?<W0pgWf}WZ-X91
      zK$0a{qV%DkZU#uZrm_NE`#8H6J-3J9hZy}@g<PcHZgqW|KxQcA4aC$9z0~qG@*yVa
      zWON3{_VC<MsHPl0pu9B|7V(_$0xqdHJdT7q$NZB%3U$7Wadl4MvPyIXulR|6BP`h&
      zG4h4ttSdYyT-_%o&wwID{|LU`BlUeut_=<E;o4N-b9C?HrqZUS0{cj=jXlP#!N4AF
      zPX)ilox$K^EPQoX$T^ktM_k2E)QO*Q2T!nwU$Bl}RbdM>C?e$*rlgE&yp$G6I;Er~
      zlG-S~4OuJ`#YOtV@T7I>?weRakc!SxS7kwYtolW-Q-nkqj&*+WDLP`2k3W;cDy&7{
      z+QZvFjK#jey`!c_Rq?-5v;QEZKQV;A6vuuK<B;Pp-l1iXb9)yXex`}TIX=R@FApKx
      PmGSSVXGrpU%8UOCgJ{`%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ImageCapabilities.class b/libjava/classpath/lib/java/awt/ImageCapabilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a44063289eef5fb9d6c1c66cdf837985b656042e
      GIT binary patch
      literal 900
      zcwUWCO>fgc5Ph3EF>##)+NMAozDu#wiimUgRMbipRyj0^Xm1;5X|{5`(b}f`C=MV2
      zl|TZ{{3yiOv62u#Le{Q5v-94}d+Q%RKYs=A09z&s3~ML+HE;2=xV3l6k41-%cwYuG
      zmLf7?FkH;e10Ei?Ui43dADbvKEKjqYK!t+$1HrJ!eP0AZ^H>ZR*bzhNp$ujGn89$4
      z+#bC;Y9K5upkkwpD#L=~_R63(HcVV#sChCJ`^jlv=<b+w$x}WLdR)si&XYzwlo3P2
      z`}g#1hKh`y%}zwkXr`)+x;ha(74TT5WJN!fz_8-D-n`m&I_$cQE4XUn8pGvj!Cn{(
      z9r9pDYo#qTP)WC&Hg4fILpc@R;Ymcq+s+Jccc|4_s-o@wHEUvnY?z*8^d>eLHs(y<
      zSMfnI8YxZUcHa166iXG7@6>VA`=45}$U0Do_Qh^y#Ofa=-cM;r5P3(dNNXv*C;ER3
      z`YywweUYMF6zBo0<~i)<`bX5>Q&hku+N*>G9ueXRA)XQgusW{BGFE`>D`lnGQKz#p
      zXDf?=V)FxPZzpu6Ecra6vBw2D4c*QJyq$v!#ys-n46-mm(*5Sh!(2+8q^!O3zMye<
      qj_X^WaN|4fe9K@4wY>YAx&dWgQG?-(x_VAtLJjxeWCOWb)8;SLW3`F^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Insets.class b/libjava/classpath/lib/java/awt/Insets.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82d22f105c1c30b9d56dbb07ececc2d90f079e2b
      GIT binary patch
      literal 1998
      zcwUWE?N3`(9DWXMxrJQ^<E01;*>qxCx^;8&Z4A^^&|(KFtjchc+x9{)DfiafTecWK
      znE3Y9#BU}V62BQ@W-^L#iO#S76(;^4#^;=SEws!RlHT*2-}#;A_nhAgzy0~s&j2o9
      zQ$vS9&!(|$q>bBNI&0TVucjd^(5s9U!`?_Q7B<bIr=e4z|G=85IJRjNDyD|0z<@fi
      zob;0ET1LhCK%S7LrnY(0tyzwJJ^PA)m=|~?<JdLNu)Vxdshg4Cw=Z4}{qb!`Amlk!
      zx?}~y6?5Ga=qxy%=WGc?Tx+8&4OcAN@@53Ic$R;OJY6$R$?Qf5Lpu8LC|Tl(d=~^p
      zbR0*IL??Ch`sgtoCwz2DM<06l{G4T*3-zsn=`Q=K`*Kc^q76#tJ}`#8vQ-l}k!#D=
      z6ytHFGV}eqQK8FVJlCGQsl*MsIfYG0e&moZwgjSOqgIwrQ4e4WqMozlxt6`b^u`m1
      zuKCs}4d(@h+Raz%R;6URG9ORtxQI(6+AzIL#i&tRe+!W^PIcp1Jg?!ozdPaJNXH8}
      z$5iwFg0aOMPhncam6q=Cqw1K!i}c)<1zlVhn0Qzcj=rHAX}m1UcC{^U!FeJd1)C<a
      z%Ep+M&T~3m#cRyAQLUPGN#N|mZXGcNSyA!kCB^G(ig@;)9izC$ASu~}(@`uki7CGo
      zxqFijO{soVl9nXjvgFJBd*Hl|vofENqMV)fss>4tg}b5SZM>u5-In@hZO?RVqcZEd
      z4(q#$A^CYv#~KWQE;$z&qh2F%>Tph$%dT@<_HavD4y+oAEtOaF8c1`dZQ2(cZ>e6b
      zI<9AyX73cus>h*b^U`%9_kVoZ>D^0C-7T7PmYk_${s^6ucX66C8A1ml(D)lc7rJRV
      z#(z{D(1|$8#6k|TT2BOPpISSK`Z2)oAa@@r9$+N7k63ba55vimdl*fQ?O`lA7~aG9
      z4~qA+^x<9L7Q)P97YxQJkg14al<+uDF8NG&0%rh)q!OW!)Y74lR1;E2>Iw7w$)=h+
      zftvqP5>s9-zcs$yBTt?8w-2d^HC4o#Dq>9)v8IYxQ^f?H3RHYSA9*%2`76X%h=g`0
      zA3$77-otQ;za2~vjuDRSP~Sa_5{~YmmvEeLd<T*6ZfLhHZy&Q-pD=HqQqO19_Bp1x
      zO2w!AXidd4h$ErucpgdGI*2Ec3e?T0Juo2kNFi%dg8YoH9mMQZK3^(+-S-dpg&eJb
      z>qADCXY==wUP(4^p@C<9#N~aw)R$>sRz_$b+n4k4sKg6C9+UVDACD9F-fZBl2Cm<2
      zDmboQ^)+Ae4d%EWD4B06;p_%VR(MNRW{`cjayNG$t1J7sIoZIi2Ppiau7z3HQVaQa
      bwCwV!-z)N%PY{rIvaIXa;7x(D5@r1bn{k__
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ItemSelectable.class b/libjava/classpath/lib/java/awt/ItemSelectable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c353f733830bc8517518edca1e25fbf634a5a73
      GIT binary patch
      literal 261
      zcwSvkO$&lh5S-1*vY;rUYe&5#oxKNv&>`s3>8Xn-et^F0zjf#b^rNEpl!DsBF6_+C
      z%syZD2Y?->CVGT*DjMO6n{*G7^Al$rN)cpiqEDE&U?z&#JqD>l2#c6y$Kt5l)r6Jp
      zT>O8oN0^By(z1S1OD?z~Y;6B)$PE{r?FaXqvvR07FB|^7vrgr;3VEMoOj!O#-D<@l
      afnY$Fp^^_Ug#N(9sGVay6~j`!hshfV6-E;P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class b/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f8e4779fa2096e37632caaecb8beee813513822
      GIT binary patch
      literal 812
      zcwUuK+iuf96r64B#5RT&w-`d9&<l{Xv;oAWK&fPffQ;NA;V4qX(<Us%$k@o2B0dZH
      zPzeMdz(*m@ZbA_#FIcj7c6ZLq+427P`Q<x+o48TK48z7-e!yG&L(zJc4!xqtqG4Hx
      zeC@G#&C9q5MJz@|lqS88??nw7!`b74V|Jg%rC`vz-d-nUn12~4PRx`2R!E#={~<%g
      z3j&7C;6MDRN`K*XpLQ6`uoHCJJ^y)^!PptaQ4$rqB-&{98MJo#ikh2cnETh*z-eOf
      zI5sd(Y8mYa17}Du|LtUg4rN0})gn~4aUP2d)t!lj*6^Es$+>8w21BAtHq0?vwqe0w
      zm<^&tbjx=`k@fg6rZAi!9r3u&vq;X>qJ;{sNcpQ|*zl*Mqz+TOiE?W7U>qv*8LTiZ
      zvypfbDdE3z+mad#wx1*-YsWm#MP9=egF8KEhJ|TK({-Sj=vrvh9wkAjE>EjQb23_L
      zoT2Xt*u+0cvw|w*vt9j$Q-g{#7Y;PX2?x5f5FWz)3O1-5;oKoENT?~eB%!Y0<xfg+
      zg}y6F{We_O#S-pd8QW;$9<Jj7t==be3#*DPU;0Or4m|2xu9@qLpWz;1?T@6THXf1i
      ft}1oML|ju=5;e$z(dxRY*&s7nMX6&GE!2Mj<jSU9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class b/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..944d5ec8af5f21543c72ee74dd280d3c78e380ff
      GIT binary patch
      literal 726
      zcwUWBT~FIE6g_TIl4jX}bOQ?PgN?D2Nvn7sLaIv9GG*07s!A14Zs#$hkf6k6;%6})
      zkcP$&;73inHi&76hee8g?R)OI=N@1E{&@*t18*Hv7}gH>F>mqjs`W7+wUsL5Xre^9
      zx-Cj2Gp=Nw^-qq31Dj#~7JCaE@N^;=s=fB7Zo*LCiw!2_*?ub_Ot$}?!QP4DE<+gq
      zUoWa~KJP}oes`C_-5jSflWL2>3Y!BW>*QZZ&Lf7IyRBTzQ2wh-g^Pelj_6W}q6UV?
      zKB}1VD4O#zj|GOQ%^O-fjG6<DS@hw+)zPw#8eE3ySZ1O(IUI?i&qpZ@8pQdSrvqL{
      zeKwaKEWFU9E96iZ-Q$3ft-i^Uj5@wHj71Dyl23}U*pY_#A4}e84hBEUGEsC=UY4SC
      z&?NQuTS!vxm`D#yj?qI~Sk$9a)X?LZy=L|btsWi_&Zko!HuM)(f8pWK3Z|2x9n2<Y
      zs9%5$t#dp%LqmtQ371X{!&6!VQ`x~Rwy}&Z-k^<VCaZrk`=&#iwCKCq`qB^7&++^(
      mg=Z2UNKj--=dOWxX@u(N6;_F+g4d>Ijhg5xG7=%y(f9)|_?9jJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class b/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0657d71262bc74258029e7f40d436c9f3be4ef32
      GIT binary patch
      literal 768
      zcwU83(QeZ~5S&Y##4&~z7Yw052`!KmXy6GXDx@eB$;fd)4wfRGF5#3KIcH=$L3|eU
      zp%Mr_fR94#U7}W?N?7vk+}-T#?%c26-+lskj7K$;7@8mWf_M0*qVp;pcZ(v6$MZtu
      zJ1=6Mq|@Q&kD>;H;mQf^gcI>(E*L67w|@{aY`pU|C*gA135g@8&lsw`LBBr;7`FZY
      z7E<(}JM^Lh1|t{*6wLie63e)F&QNZ(BRcP;@2R6ThV_4|nYc&-lXNyqrHKu~k{9tp
      zn7B-NGL@nZ8pK8gRf|x=#x-mbZGTn4XnE~Oac<bC!Bl9=MtzBzHY}J7Ykn+6FrSS@
      zHss@k3~>B(!jp(+vD)iH3uW9<@^`6V%R9pvJxg&I=VahwX(aO)tT3Ht6Y(<E!hadH
      zr!*LBPfC&X5}xNGuVIhDJ=<6kJGGXcn;fKPH>fF^pHM^1sAGK<Egeg=o`X&N^Rzpp
      z4D~&&{=kJ%*;x-qhU0{zigPJEg8Ln8R6fSlBV1R|(D0^$6%B8F(TcZeb*U~8P#mC%
      z*LZ+8cmf~WnxTGrjaAhy^{US5yPIF(9%JWJ#?lu<YVxg4b(cik)6FZ?LYrht*ws1r
      OsgTMdfAJ6<H2wfgRG8xc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class b/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ede25d6102d994655ff7d5ca983b514a1ed5511d
      GIT binary patch
      literal 903
      zcwU`ST~8B16g@+?v|U#|S_KOz3Kd%nHpciQF=^Tw*K7-MOJf5Dr`t)pX4!4_1LMz9
      z9!NC$1N>3OJ41sJ8z0<cch20s=iD>*&X1p8z5{rShZ)Q;JbBMgd6j>NtFMB7EsjIC
      zpTr_6wGuCO$DU{ePI4mr_$BuTp6d@gAIBmCjbZtcc**K=FA)sscCFR4848D%%JH~A
      ztlE_051%n?*v<Xg>sqII+}Nuhw3_XXeO%wOEQ&M;?3<GM)cOxwBwm^#e$f6)KD+A>
      z$&H^gq{@{pgH{g)bgVgsg{zjcSRm7p81s<FVrMWZ9PK!P=TT%pVC;%0i#*kzl9%{b
      zGIL<KVIYlJozRkjW!z$z-JLkn%4Vf2b5;ywkd<i7Kn_`kdCT=hJ2~l#u*3Tv^*V0_
      z4)?k|bmd+Jb);}tir%9kmCY$bP$!N@ZbY*>y_gv@8FV{HLPxxCmGB>Ze<U>+4Ab{T
      zSoe4oi70~#xt~5Kviz?}(e0zo(=AM4MfQPEQJz(;IknEvSI0HVGiW!02KkiJ-*CN`
      z%Fo+9Ex%}=q3{)~mpaGIGZZD%6kPqJ6mHXZi}Zj)s&PbWZ!t%B5uED0!x{!C!NCK(
      z!5zhrFHK`owMPDAEVsS-8HIDK|CZI&k0F^HDeBTiA~uwHi8e`^QS`pzY*7)(qE4fX
      HZ4`e2NF>rs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class b/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23984c1520c8c6f911c433dfcf7b4a6277f6a8f1
      GIT binary patch
      literal 833
      zcwU84ZEw<07(EvXlv>?ZCd%f^HmAarp`SEyF(IQ)OohY}4A}=#;D%MZcJ^h9KTG#v
      ziAH~bKg#&rTLRH6u}SYe_qpeJJJ0>~``b?dPw}LH48z6;=hSI9XK~|AFlxqe=#G+@
      zN87eL;Zg7N2`@llxG`tVDSgLFI76<}d~4bar9(?{Jjb6lY~uLS7YxO2#~j-2mf2$1
      zvi_Hf97?_S-PB=dbvp+`vvpuHtS+qf>+ZYW%&hK>J=b^Rmkilzt<RwB2NNoIiDCKQ
      zVpOb9If2jX5v7}`C{eQbEJ%-aFYu>zKACbA*D2rPB037fSl$#tI_StDuMw)~Si?F)
      zes5NRQf=4zf^%C(0jfZEbre&ysY8Rxuw=PD?<B_~9`>A(NBS97Fm}AY6T0FojT*AJ
      zFTy{dgw^&X!pdIbBR3-bPt!TDHiKpdNjT=OTp9Q;k#|K52EFb3Jlyx3DB@88yA0*a
      zheBG-$3ky~1g1BmP)*c6p^9ix?#0=z$vs2s73jpjN+*vz#P>Y^1J?#wW7!@khG7qK
      z#;Sde@^`R7_5wH0aZ5l&!aD-yB;5ESBW}^UCbRk|;TUBE*u)7Q;}f3YBkoC-_-P=s
      z%uT9S*or&rUs1lm_9B!fFJdY*k*?*Gh=;NPfvTucm<)EL&m&4Cyhviy(Lm)7WiPJk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/JobAttributes.class b/libjava/classpath/lib/java/awt/JobAttributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7aec91609898c243ccb9f22d0718ea26bc59060c
      GIT binary patch
      literal 9010
      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
      B1wjA+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/KeyEventDispatcher.class b/libjava/classpath/lib/java/awt/KeyEventDispatcher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad98fb896bf9fc738021858ae21aac558b05e4e6
      GIT binary patch
      literal 184
      zcwRg8Z`VEs1_nb0PId++Mh5Au#Ii*F#PSk-@6<}yvedj1m(1dV#FFHU)FO5U7DfgE
      zu!5Y#ymWp4q^#8B5};5DR0&KABZG{F58R+skPzHBYt1M|2Cm@z(xT*4x6GVWMh0<A
      foAf}M*%%oZ8JHPBfDvdhD+3#d#lQ|EnHV?#e33F5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/KeyEventPostProcessor.class b/libjava/classpath/lib/java/awt/KeyEventPostProcessor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acf6c6ded8ddce6b087355d7ee2e482681b9c597
      GIT binary patch
      literal 193
      zcwRg8Z`VEs1_nb0PId++Mh3a8#Ii*F#PSk-@6<}yvedkifc)Z;fTH~5)Z*g&B6bEA
      zMg{?}nw-SEbbbG%tkmQZMh4*mgesUuMg|!TAGmR;AR)M+)|yd_3|ztarA5i9Zkai$
      kj0{p(?b8G4XJcewWMF0h0Y;$ptPE@*76UtwWMbd|02x>|HUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/KeyboardFocusManager.class b/libjava/classpath/lib/java/awt/KeyboardFocusManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..721cf56f63725f7c3cd5bea14b155ac128602fb6
      GIT binary patch
      literal 14539
      zcwU`a33yc1_5YnW^D>jkOUS}D1VRLaFp~g+QUwG<*a9I5Nk|OJGMPM*kzr<-nIz(_
      zSZfz+H`{`1ZIRYmD_a23vbl88E>^p0ZL4kVrgpKdUG#tMdvD&nd3gzZf4(ns&)j?N
      zxo5j)xx=^Ld;A*!E};K<AQ2{A73vSo4h^JduTgh)#Y4&N74dLiYHcVM>QR#(xCzA?
      zN;DMfncdWNl^RZakVh!DZd~54#?s3osYECp?iJg-go+^u&GA&aIT;VDsZ=~k7`vjW
      zrK7fG+2*#E+V<rwt+frC*DUXBB~U$~ur3};r9-iFdnnqcx|m}S#x1R_TjQ`rEE6xU
      zZ{A$jS=X@KVVOnsFKg;(92UVv7`<%yirV!JZJRTU>FkVZ&?M<gN20S^)$~Hbm<*!H
      zkB&Jp+?PzUpiZhx<q}#ON-&{PV}pj+G!WC!%8kipHMu<$v#*Y^Zc)2CBC+oH0MCy$
      z=4-?0NWW@MkF}!L?F>iNmUukP3x(b4)=*!RjS`K7cM>KynD)|e+mfMvJ}?y35t!Lx
      zV~4iPA~KQUD~9SOk&GwQWO`>^FMEvI+LuVglWD>f9kWXf#Zt4Iop8kFel;Brbw$;Y
      zHn%(B@aD2@LmW})%fex8G8x+05J?H_vD=)yQYdDtkgrAE(Wj<_qRK1;R)tc%y5+o!
      z!qG@9l3q-3Rn2TCxa;EGst2<OCAs*l79VObN5KUM67m*l+kBXZi#)iH88r1?+tJ2q
      zZA~ZR+f)Vf@d0+39yM*9X78w~ub<iAxMyJjF2O<%7O)UGW>K&RmolTF?ruJ>s=<Dt
      z7tY+^!xGeba9M^QZEIaT8s+5(UquB=QOErB#kR-0BU>ZF08E)sS!Hv9nYQowd~ug6
      zD8pz0tyC}uqdlk}q9@j?534XoU^OThi*W*KR4`tLnicqUs71j99coihu0!n#ChE}T
      z3aT(u+_p$eZS33Lr6$`1w|v_g;^9!VJ(SeAHzq0NgG-#c1e+9W#%MzR^0m!vots;i
      zw+VV71(Q+fL6~Jdn+yBU1yvY&>o9t57ZiIHoQEkMT$M}F(XV}oKoy&|E0~ID9>m!r
      z9X#5Hn6A2{g7Yz5Ky3CIn9iP=?v12!F1S;CVxO*HXR8}Nf)UQEnt2u?K3s$AJh(O|
      zYqa$y)lj#B>v02nrV)_zNse0?nif=z%uNbz#w~;*=1QMlnT+=(IF38)(3aT$Z^dmM
      zd@#rV*{>9Q2)DEU_Xvlb?qrvtQ$E(<M-+S%A7jO&&Z3wpRcFzQh!Bb)xgo~5VTADE
      z6Zn(|pUhEV>&{eKWf%A~KEr;@a<r;UEt1}8vM?z}E4F103ZLbWXN?*nyF^kczS~}W
      zp2JE~O+-Us)ror_?!q47)py&xn!`>c*2BX2a4+un;666auskSu0AJv1$#FTnEql7)
      zTql__@MmWinY0IABuq0oU#90EXEq<i9N_{FDcFZEv%M32Z10O5?0rriz_DRFK}zvQ
      z`3R~dc(!MZP{@|aW^2~C^}^J}w<qEvpKHGLn1cN{z`=&M=m!#}T4SlmGY(vNaELu%
      zC{YdzOlf5_-W7^wSr8{3QE(K;^jxB^XU>~uKW~Gh8p={b3A6uJIf*7B+(A64;2Su>
      z!fCnG2(%l#I7RSn&0+40f~W8_GncY6H{Z_Oh-Nfhks!x)21h&bCkm*j8cI4T>e~tq
      z<52-Ur{H-!$_1UNGKXSJAbwB5<2Wv$A1HVM$9YR?#4Ru4M;^SCx!Z!bws<_cEyBV2
      z$M^{+MLyB+abv*}A}#0(1*xAY_&HwIEw4uit)f}ir}nABK$dOU1@@p{WbUb0QN@a0
      z^Jz#vyn<hf+x{yNYMpdgzd_vi*YFz;Ue9Es+%pvX7QbWjC%CrKX2n&=lH%~A&1&W<
      zOAOT$d&>^9bhEL~q*z=B<$Cc3>os!&Go>*fVAX>@$vSwOea<$kQ?__Umd4oBFbkur
      zhR_yQ;4M7q#XmB|WEMSdzyL~yY%_{IOZm<kF!`~~r<~@!_#bDPP!48A)}NfpdRtC+
      zto*r_AW|?16&`Xq#A2sSK9Vp;Pn;v3ZcUtyhjRiTZYHN>Z+bn~q&+NnvZrr5+kg4h
      zVKpI2R3CXT$4dnqt-D8HjD;ywsE9^!6x|w0s=0L>;Sz@gcTNd}T{$mdh&6FIx%IZG
      ztg7A;+q9yYcjvc8dSan;Uy`|~v12R>=3Jj_&A*uUdTA_|l3U}+0Zxg-p6jLYZ0@d5
      zc-vXfCNQzSgw`yMfHje=!Y&pY8IM~Ms!(V$RdOMkid>^={ZhS{o}$oHn#QeEB&{Yx
      z>9{ptYGT(L^9u`TI#qdSMkev)tSU5<0!%!nUY)j=lZI`?Y1InVh$hGzj>poWNGz3)
      zc{E$0Iq-1?=Vnm!Z``QST#kJ-FB|)8osecKDZ-Vjk2j?>Bcw!`5E36<;v+0-?wtv(
      z;~3&g9NHqhE@U=SRIap)5zpOfX5z8A9SomgbTKo}*<19aHiC1OR@K|6@t)w2$weca
      zFh1KzXeXHO4nry;%@m?OrB%6Ajj^ByFg?@_L$M-t7KGeFC3B*<HEV6pDV9z7;VeAb
      zX+Jv%x6`@NLo{Nl#&xF2aOxE^SX$lOMXd@o(>gYKlncOf*u@4+s@voJs`I)adAUOE
      zg5(5|C>^m<g2kCvoWpT~-jxb<(gs^8of8|+LC(!W&W+-thPJC>qDyeO(V6Nwv!)8x
      z!U8H}6~=U{<aW}-S;ZMk<2FLu6zUZhb?Q0nFfHP|F380d?j<6+MVzr5EHcb-f?i6Y
      zgeZ~DW|0wP>=!bM7Y4douxIa;98EC-PuB{bb{c6l7mtIbnWs}8y3zS5MeNC@bEbH+
      zLf45zJ%(*M^p!dL_GGl(wslR)7}z|%Zp)@gBktkgrQ34o8WW=rEA$bOMe=kcy<!}S
      zs)bQ&z%(8mFBmepXhd!nFBFH~sn91xij%`pF2FtXDMC>$73SKaBHKIrR0l2PplB(r
      zFp;~f@@$*5Hv_AtY{&X7nz6sJUU)8g$URQvmBNf2N9-v$P>o8eHq?M)C*!oeJ)iEU
      zFL>yI%nPM;S)m6-Ut1PQSzjKEzUd%+NufQW@ySbvlG<YvspbQ6&MD$G-C!^yE=Lgy
      zk9t>@S<{3nvsfs*X;i{KGv_R#+DWtVi`Cc;(OhLF*+k>3Ry&c=u)9?|wvZ;wRi$OB
      zRBL@2xhk`~QH<3lo0DpPB+mIZyP)(XvMHGTTU3_W2~o8VDzsl~wdtrr2XyFhg$^=A
      zE9nV^o}_OuBZg%xshsQ04FdV3LWgLLcyZCHg|(rCht6bv$jW)zF@unoo+cz~)7)7n
      z(rR~QI$oJnIV`dYD?_o$xK@`{ZcWCwSB5IL8E;aRnv9jkqflkKH<Yf7q+&DDl_B=z
      za3mxs4Mfttyrfnd^#{Y^39zz9yaCSg(P``{z^(L6g}z1KW{2t*KZ9vzvECd@Sz18P
      z(G(9o&*h5Kx+tN)r_lF>jy$~~%`Suj?J+L%6g$pfc||-~7m7wX_-9rMdn`{g;#VbS
      z9@valL?OVB75WMNlm%ezXulVfRN1Rb5B)sztAqV9RG95%wpdIZ$UF;qGruqKbUfOf
      znO4%-UCdw+FXcQMm$KcoJDGjxAXGWV4~ID)UZLM8^jq;Jq=@1+<G4PoqBj)!y~qg#
      zna+YQf%qlkwtU|8CxtGAPwanFp|^zg3nHmDcBgnUloV+67m-qK=e|Mh=Z~$b`P!Jh
      zt682|#RbtwPj7la6`x#CaNKXmPH33MZ&#vfA2||OueIR#A*SA|hWdAAsQX&ueaW!8
      zA|mdje~rVV>nuUceIEFlL4phq%HT&n#FJQo_}vxaXPZLH_agp2%JRLKzn56PmtunW
      zv54Ub;-?}Wed5O;Z5(fmeq)?qjOE5SQ5z-kR-uiPQORSe__;+Jr(&8mo{#C;I71tK
      z;s+xhYvDxzLFS|ypouII@$7xaQPX(@v)2TQ^Ib<V_ZTjg(7|6ya8vf{Q7k@)Wfs)p
      z%W`o~+HhAK$128MeGqF*Xsrn~nb0~DYBiztCe*QCle3dQH?Wp~&#?@jXT9xaUF~5l
      z>}HAYW|{86Jlu=<xDN|?ti}CUh6k{k$7Vc;4(vw=XRr<5L?52Vjd%ec#*gu7`2ohh
      znrVaW$d?aIxI(iDiC;5yP2me{ccH1)z!6*-@H~l2I$Z~_thLj904rKM<pbE*+L<Rl
      z4`WN<IJ!C+vHLK37>)>d+hIf*j<HOM!`P7pQ(5r>Y$o76xbbT~?lpFn*V)*=Ve$Tm
      zId~h3@D5huU9=EPc9|s>r=Q1s46qnFyBnCISetefI|p&&ngdu9IEGyko`r{w;=|_m
      zlc2}U^Go?;PywS9qKt|#j*885JnV3H;N#jkAH~OvbH2(ucn>Z)iaQ&E&!9MX9Cvk=
      ze(nf%58@vE@U?+wQFI&+vbbMr+y^<($fsA=9K&9h)wa`_FsK}E_DU~J!Wf#2i8KY3
      zG!;QQA2l=s7gLqS(1olXJ``Wk1b5>iJj|?cbzv|mvA4VM2(P+O!|dx2;cIx*VEiIO
      zK?Q*WSbGFtKZ%1`J>-ccnrG2*fuUo!cs(~r%r`ENB1pK8V9<d^orQ*C(s&%l4H_-{
      zP2zDZ>&_QEgeP{RP>>6jo;-rnS>+V*S)eu)(0W!(yGC`azSE#8pl8^;T#vDXXD)aN
      z^C46<z%)A>P6r0@t+o8|oyGtS;=AJG`_<3jqNDiXAbz^QU0t&m<NWU9c%`$t#Pw$u
      z>eWH~dLKq-=Un=nz?_)brmxmySA%EvAuo95#C~Qm4+*50g%mTIG6h=9@e#BIdDO*1
      zg;7i@3$_&#=qglD0@G;+TRn*-ltwcRU_I@`M!JSOg)Qi(>n&a|U?`vfVVq(Gh-kYB
      zZ!qLyp9<jj_ya3>BgbDIBEC#cUeM(11-CnT!Sjw@&@_w}eAdwmUNF62gR>Vj1xx>w
      z;{{`d!1QHS*jHF#52KXFG4$18yy2AL4S&X)4&tuU#C^-o>Y$^ze=$i|#a*Y1JA}ql
      zj^h3me;dZ>|E`O>E?D}GgVX<z#eI>*d}$al|A~KTV!rDrW~;N9zjPGy-;QFo4kPB9
      zj$;1D6tm6{Q)44o`rjPcd}4|I2Oqs>k*mOztH6}&J-lxatT&h%7dS+0+oHg6k~)u&
      z`!KhDJd@>5Q=F6!kK{wCRAAwAoN)k=OnC;`E`!gC;Ik+=P97$ie<DyuK0!1%NJ=2c
      zC)m7Dnh3Wv35ryK@zP{Wk}54?RG4B^a0aOmVo(W{LZUK3g+_~WT{HPy&Ue&Qz8e$D
      z-S=ZmxqLs0%k%EfvQceesr+G$B&T`(pZFhbmHfAa|2Fa8^?^g!;-1?m26^rRw;1#0
      zE|AM;%!0gq=oQ~xPRrxOa=m5QowMv0%K?XFSz9g_%UOnx(Imor50B>&7I^nzwcmS;
      z&SyB^pMMJTcH@E?fBrEFN?f~4_q$Daf?qb_B7go#%sWK0_GBsF>Un>R=brZuiTbPh
      z2wlJx*4ltSPcTwGw_2D<K-I1LHPr}1J<QP$(p)ywJmgCkqDZ<3Wzu|<OBZ9ZbO~li
      zOR!2>iYBQJ9nvyvmX@PiT7e#E6=G67`lZ#lL0ZFQLIZA-8gYlzguA3>+$*iagHj9j
      zN^N*VT8~3gJD!j_a7wxyPe~i_oOC5#ls4jJX%k+Rw%`pZgtw(GDwD!gA$8MqX%o$o
      zw$cKrhgM3x)F?%S^RPos5blt19%>S8g?81N=pwGjB(BWH(|m?ph?&qGCiI92J%?Qe
      z)WL!B0}Q#DW(K;;gbtaI*r7w4x%#-6AsIKA(7h(~gb9fqI@AppT|x^uEbKC&2Tkad
      z35gv#^dhdMg)Ex~FC#^Z=u)ma-@sy8OiPeYmu0T2keg~nG^3?lN@T9jGVR*7@w~Wf
      z<IC@cw><Almb<IDggqQw!#;2=N~G&77j?XOQO6s)CR$D_9OCGD5l3mIEe1-C*^%l^
      z64p4nUW=ncX*gv^qSds<ps~z|Pa2J288r+Iq|#m#NDo;AQ%u1WYGjuZf;H1RGmz@4
      zE93-Jz}o8JDA!`kJJLzMH>WtjowkrIG|3iH8<%2&Z2O30JM3hiXR_aAvfn!k*-qME
      zke#cg0l+Ir4$>8N{r$|MKd-63X4+`%Z{u@CtSsV6Ptn-oXtBx8*T0yrcTp()TccK~
      z?=bl)qAl#Wq(Op1NfUg;6GFBVTwb_c`6zVx&iRB+E)4Y(E;Uq}Z>Y7~rUch`i#qd7
      zqWK0<xA-yKAk|^CEV_lNYX)hn&6`});d9N<2nKZ2Y+5$CEYL2imb9sdA@+0eYsxUL
      z5M`dPvMXdED`XKA*QLX{LR52w?IV(n*~zYAvh_@M^;yU!xWpdnVbMWK+Lhbx=wZEF
      znmgM+D(v59=PSm1#o7LebFhC@v;X#yPZ+SDa08!kBcE{7IiHZ=wqmG<3AJ8hSHhiV
      z@v!UI!zAuZL=i}I!w_GKYQA=p-PaytU)%rx@U>fLm%;gJgY%-GuA3dq{jK)6<2u8-
      zd5U%Ov_%Z7Zazr2X<qRmlkQT3uFs%(dxxF(7m@F>mgPQ^p3k7?rjOFc%*1tvkydnX
      z6H3`JNFP5*pS0`xb%(S<^lAFcFe0ZMMgA{~{67}?y<tSYiyJc`^5;ytR*_RqBD)Kb
      z?=BifWSyRyK5r3u_Yjd&jv~7!4Hel<w1@8I?<I5(-HS}GC~1COT+Ma=ec~E?vD(E@
      zmQn2$$K4Fsy$(Ki3r4wHE%%|=WVo32Y8|409-@7a_`EN3M=8#I*ciV`kMQWGuhFC0
      z_;q7^jC)tHzTX%R7~?@>JjB^s@V(!BK)VonF_9ObK{{+#>zmB&TNVxE8C;eyWk(7}
      z>=fRIEW?q)L1zlbY!u`orZCEp!XcAF*l>`^;w7aac#2l;#+V=%HG_0~H=9=nPuQ9z
      zxtvK)gd$JESh)ff@??t#O*W2^x%$;xc1irNS>wQUhPg)>Z)w45?b$BtJv#4m;gRQA
      ztUSuJ@+dmRU7vWr^BPZMlK8K(I(eGI*dE4;PTY-|`Vr!Ft|s#~$c>KQy%$Bt>2zlq
      zJ#~bhIT7q^JRLkn&vHlO_PdYKcNmcO!S9!~Hs>S`F39ueJp->lujb5SV)na)J@3C(
      zBi@8+&YWQ1abXsR#vVTRaxR|5*n@~R>M|{5FNM4sZn*&kawEpcYvGrhF<D-RfV>{F
      z<POZ2FUJ!33M`d3qEX(2R(Ufn=kHy-ewEy<>7s>YX4y<#L=9aC=m$8#rxmdJg;reR
      zfu3GqJU7>@)$~Jpk)b7+N(;F-m(j@A`z1C`9`AVyPaE1>&p7!^ZC9{!f%|kI=;8u*
      zfy~PJ5$l1T6ME3~<JpH9evhsn`q=_+kb6R*Vew$<_mch;x(|f{N7L3zx-AxX12ukG
      zYwq;%Wk#>gpu0Q#ZdR&?KiT74+{mXfz?nzJwcNXa|8CYsU8yTj!b-h{J@I-J$~R%W
      zd^66IZ^1PAR?Lw<h=uZpuw4EKR`Fbm{BdlM?__0uik0~p49K6w)x7r>d5@;pD|N9=
      z#qKf{yNg~iQq?Z{1*b0;mmb^bRi2Z%+t@<CWX0y;JalM^^<WNn9=~D(c$sd6W(qHN
      zSih#%4FBKD`$Sr-4V=O&yRk5E60bCHWPW|^0d%lJezzMlbm$N4d5zjTWbhFEkx~A9
      z1h1~q*WT_3WN*wA;T7`N_{MylujFGWk@urqK8We^A$&kS%wBcWl8<ZYuN)giOqfT1
      zqrWp-C77i}P6^ZDr+2i6Mlbz?{%Ix=m!2B<>;UueFMAS^pGLm?j5UeSyG#Wd^p5^&
      LNB<Uk=s*7l^mT(G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Label$AccessibleAWTLabel.class b/libjava/classpath/lib/java/awt/Label$AccessibleAWTLabel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a85795de2accaaa775a45ee23eb85b12f5646d3
      GIT binary patch
      literal 900
      zcwUW?OK;Oa6ot<uPMo@Klct5zmRH(P@{np^hk}qo0IA68q77j^38OH`86$fFfnNoP
      zhlB)sSnxMc*RTezjb)OsD4QAId+v99JmW7vKYRjk6-^TvhRS39lso*Hc3j>UUbQ_K
      zh%l6WPqZI&<CY17p`MO){LvF%38iO8(>6mX6oKSkPXwX#)&2e34D24mQpZ=J=1TXt
      zHx{|ClNZOIKYk}6uOG><dWArDHcX4O8&XMqlVP<sFV=euM#q0B7C@*C3yT)ADBG~H
      z%CJ5Kq~T(y=t?CH#-qLnx}4H8lwE&7fjPydI%yhFEQTHT#1o>ND?_3G3I}{d25YtY
      zAJ*e)=p5-ls$t8*7S5SC%dkA_YvVjN7)&ziiiw`LJoKYXyNTt*;fW$Wsh>NubFBqz
      zqiSM@Vf*B18<()lkaOF&?zjxq|9Js}b>xqOfw(K9SXTT6dlATB?<*yOj>p4L(D{}B
      zJug(~#<KJiX0VAI@>H2|RVbCBYozBa^=vHBx=ht|(lWF!HkxlyY&73v<y8!<(Q3ug
      zF&TZsDSEOAqEVd2I_(T+u#wnYqdn3JjW;O1!{*D>BOmvFO!0-3zkrJgznAdFYgFdh
      WUsJ4+uo+yA*Ba_^&WPSZ1IBL&)YA+A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Label.class b/libjava/classpath/lib/java/awt/Label.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c6f5a5a051dc34a61dfa65c5ce0ac14b6b1df9d
      GIT binary patch
      literal 2964
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/LayoutManager.class b/libjava/classpath/lib/java/awt/LayoutManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34b079f154274200381919c2ce6d347908ff8279
      GIT binary patch
      literal 402
      zcwTi-%TB{E5S%Tvf%0f60)C<4K*Tvm5T_sxk+_?7iCo3&$~Z;vX&m?fJ__N4D5W6w
      zup_N!#-sW8e0v9QiE)G;;dG%^DpAiq$<&Lj{H+pIu#2!w7&mXFk|Mc#Sn$jfCTc$a
      zCSF;yw89dO@ibdAbMLeiY1a96#5BGqoH#ai#eY1`rvE99myRFVIc`7B^(zz3H~8X}
      z7Ita8K3;3X@}#Y#gd?Lxo67t&7?o{=R{J|bXBi?4b6dF?-{>+3CmTgw)RF;#u!Va1
      dp|?H;sQZhs)8H<K4eqtLkAuJ@9ERP)=nFL4a(Vy&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/LayoutManager2.class b/libjava/classpath/lib/java/awt/LayoutManager2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc4ad498ce64f58d69832c7d9b580125ddc9988a
      GIT binary patch
      literal 433
      zcwTi-%}T>S5dOAWqxH8f=qnfx2EFD~l%66z6r>)<W(ixevl2H|`)D3~03WJ2O{Ap~
      z54!{3A2Z+g^79M84SE4u3Kuh)Q$%k*O6bFt{(+b>UEBuPRXD52oH&a{&oe#s0rnKm
      zn=J}GO4Ay;bN0otX0H%lCTsl~j+4L1armgvwe)UmY3q=&S!ji;EkAoQtcy6@fcM5~
      zel?C`g?^@eZ64$%V<G%RZfuSiHtL_`Y{PTPO-f$Z<i8QJb7$<zVycHGmu36gC0?&Q
      m(wM@IytdTdmR1AoW7X~fI@LVHQ8kZ$=Lt?lDQn2zLiY#r(t4Z#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/LightweightDispatcher.class b/libjava/classpath/lib/java/awt/LightweightDispatcher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8377f8d87774b92e12171d68c92e46bd200e754
      GIT binary patch
      literal 4928
      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
      JpK70f{ST;Ph8X|=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.class b/libjava/classpath/lib/java/awt/List$AccessibleAWTList$AccessibleAWTListChild.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8079ba4474f342191a089cfae63818db46f325c
      GIT binary patch
      literal 1888
      zcwUWE+fEZv6kVsBc4!@>l$)aETA(vUiin^hD%PTd1uw0bm>4s*Co-l^NoP>_6u-b1
      zW7LQmAAB{@pYThJ`wU~DRntDq%${@BUVH7!Ip2SM`3m4P?kET_%s(}sn`!ffo6cE|
      zn^-Ouh2vO{%VPO{;omEnO{-i|z!|ifZ>I8Wt6~eg0bW~H5MmgV@SU{jBdoIJ?xqj$
      z3{gi^Ewj8Ks*Y8$?-|z^*eXLureZs;X}cR{d0PaRF1*@(^W$fnA+%*yiJYM`SC_>i
      z`B-*I>=^cKAHfWQyPKAiIL$DUYmzh(gf3dP<z8Z#OEyI}L^rez2A-*uL>LTxDx&C$
      z;1~uJ9A_A6!lvQ`PBOIbmnkvBFxy;#)*vB*HVmqWVThsskbA8mi`s@1H=;sChqT62
      z97U%rrDcot?PrfgwP1Q(iRCIqYKlp%p?`mo%UUv=Yo_c!<3k1Rc_Q3{O=__#cBoNW
      zazB^<&xsEuimp0}yA>&HqN%^cErxLlX$8{^qs`GOW<X;T&Kdc_BcqUAV@R|TgrT=i
      zVcs=ekr$Mu-c;outk=r3DrRvef(4vcaE_+CuIef-fMRu8jv<FWFUq3miV`&`X=o3^
      zSi)rmG|6KvL{xDF%QSuYY%ZHAWa$Ksw<45OW{_1t_=y(al$VMXTxV!AOC&UzY$=HL
      zfX<~OO&YzHTx0<m2I{(C)ZYwkNsaD?NWQXNEs7OO&QMrZbz0IhsD^EeYNl*Dj*Qy%
      z*F4h+|M!ezgpO4kJwb2`KtVg%VY+$)h|ojl&a>&%0nw<uB<Md#m>9b0-9vv4?Q{B$
      z=&3#Q>Z#A@|Ae?cwTEFnzK7ANZ)n#8WW4jJ67(KG2;hAP@+dlZ3^Cq~e%^x<ycgrN
      zKTMK{5EGaLJWC1*c$SnR1t+2T0;cH8B)9&y79k{8c-&)C_ji3Znrozd&uQP2zsFRg
      z@8}_4Uh}01_kAA{S}Ka`pD>rxKTx(GF!~YmFL5OG9v462>iyIKX-w9LPg2TBbaRbT
      z)x7|H`y_sVAl<+>V0f}tanlc#_GJcTgx3u^(}#2heVPDr-g^z}Ug!YPF5nhPU}W6}
      F{|(6Q(>?$I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/List$AccessibleAWTList.class b/libjava/classpath/lib/java/awt/List$AccessibleAWTList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35fda74954b8c2aa22f143b7eaf8266a120ae7f1
      GIT binary patch
      literal 3495
      zcwUWGTXz#x6#h;+X)X+HTBTgl+7{Z9q_yP^+Jc5qG>}4}rIm}9Avv^DCKJp|3n=JX
      zE__4ZM16AkqAxxmOUqii7C*pW;2&@;U;F{Si2KZ(OeU9-uB^;V_SyUUzP-=hXY$8?
      zzdZx6AD@O0VCY}b*0c%jwmp&4Eqf@P&vVPtuNyqQI4>+AC=5x@DN`!mDw*7@^YqLi
      zv@`4#?sq0M>7g6CeRrbjKgSK8xAl@4LYN`$Ve>Ttn8@0^D2Tbq%OOM=`sy6gPHe@6
      zA!hNit{DrwY?1v^_7np<!>~0|GA&y(?FG$P<-y{=e|`4+&%gT^+U;fC8rsLunXAct
      zl9r})Q@2krbSLW8k_!w<rc~e&F!ZR1p(~0u>`>8-oebN3{$4F8D2h1xLg*zqHFzps
      zK|d+b3I%_@3<Ex(#(GG^K^42PhoOtY>#MQ50if2y$)q!<oBZ5r@j5ThYqTSjaITc6
      z8fsKY`Ynx$s1(CsZ7mvmgeupy#O<p6Vo8LLB$BxocY^Snj9?V6hA>9jTYIY*#{?<M
      zW#{G@hBkxGu&qYioUPf^gEm8|rND~sq}c3(D)wQ21cz}ngd+@lHW91h7+zzD&Q0g0
      zGxO<_xoL*s&5#n~B#wtLMRnYSJ84vL0&g(1QByD^5}P7PUJ?D2R&f#;h7R4DSv73^
      zmceJJ)d?$+ydv_QR&iRS(K&M|H=p(A(ryVHYLZRyiApl;s@aarvThX0+{~0#P1~W&
      z3Qai`GoUe6$ytnmT<&g+rHx2rTW#cI2p1TRv}oi;i^CAbEat?dQ_CGnw48>zqa!OO
      zj_LHx(rH)Qij|Yl$xftwS;ZAxb@Oyrc_C{S_#IJWC6T;J7(LA~7)D$7bH$mqA*fSX
      z2{j-vcj{JMSu5;<HtY6DUPS>KwSjIqnyM~6&Pminl8ANAtYsBCZit3)7KyRUi={Q*
      zBucm&DvH8AT;P>}9eIOm<)$puG*shW*E4MxO`T#QU#AT-%bK|)WcM{aZKv1V!<$Ov
      z7^!17b`yuVLomzBH%jHAfbHMl46XwAzQ}>HcK1)bqz<(1w`9Y6EIL<OE$8`ZT^z#^
      zVH_7OG)-BP-T@gyvn<h2T@7HgmCa`WgY@ESqfZbaL=eC(Y=KI)t@LLifR0#9yc6j;
      zMz(IeMAw(;*I8N%(0yBK^jC3titVGRb?g$CfuEhwA-Z-$0hD71Du)nNj-XRHiea(~
      z0t&_m_R^hB86+j}INimX@&u{J9!|TkDO0{!#fzo0TgGxJYB2Q_2XdoNaA+N`FQ$IM
      zwspMuEw+&5l(39efqN)#C}|RS5?hrFwkxO5uS`2cJua9e3ZfTp;cZ7=7H1^o0Vy}^
      zvYh>?PVyO_<gh3C9L~%5MZy&<@wf!|9zpi_cg$W+2}ArTE>^{M&^AFik1fh9iM`+x
      z8JE!F=@J$kQH!3)gHmL~<#^{=y~@izl@U+nHM}bU#w0+XVM{b$WWX0$$!~@HNHhi{
      z^-O&1S#64A@$s4@-Imc2R#woV+(b+<9F74O$4hiTCK|>LyodKGn&AUzlJ~f51t;bB
      zI<D8JZ2PJg@jxS9^*C-wsB|6FQnkIKVnMk_TJN`jTiFoqW<A^kg8RG$oQaZzyC&g!
      z+opa*M+Nf%V_ri&|EGQ)A5y!2K^^oEapg-NQ?FzSV5i4)%VS!ROe5Yvz2fIw+KAH~
      zv9D<UAJP1OO(XUQ!^$^4-Vw>G`glJ?S@Irskf^PyknR?K=YwEgkr*u44#X<fT0#7<
      wA;fL4SQvM3S3(TK9f6=ov3?2y4otxLe&k#~#yyB~i>{30K9zlzo<4!{KVqpAi2wiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/List.class b/libjava/classpath/lib/java/awt/List.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38022bf56d92be3fed985683d3b9cb89a9353962
      GIT binary patch
      literal 11505
      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
      B^M3#U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MediaTracker$MediaEntry.class b/libjava/classpath/lib/java/awt/MediaTracker$MediaEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2195d3b7fc825ce10b24d61aed60caa86befc048
      GIT binary patch
      literal 970
      zcwU84O-~b16g{ugc1k<I6s-lUQW2pHN;Pq%#Aq6clN4BpB-+($`)D5yQ!_JsbVE%1
      zj4>|U=^tRj#zZu6p^5JNM{bPwJsLCy<0S9hk2&|Ad+yBlpPxPhxP(~~F^1wA-{fV!
      z6_po6Q}X42H|~pILI*efDCnAqGuRsCalchws;`MgWFpB>IINZHyd}!6x|iyq2sTB)
      z5R**?<}xJoYwA)xEYQ%a3~^s<M-1cD|BXS|WEk;iBcy&?vKh50(H64Rrt)Oemf^%j
      zhWyceRPmhjWps^UwDb?m^a_nr=`=+j7*1HQkxj$Eu!SLvFc>8T7_3TPEN-mVMX=24
      z9*G*Nb{gDU;ek|fFBw+@F=VvxI}e&XqU3PtZ~d-%rtc}jqJ@5>6ydmqvx>0K??iI7
      zd&BdHT&}lB_o~NR)Rt}2=`y5mcQ%5Cn3sw&`=^*$MZ{pazAu7`$HP#BCeAbDj?_-A
      zes3B@8poiMfJr}!i4@e+hqSgCSlagY@&i3PsH|<PwNVtKGlXN*<v4klDOQ=ZGqaDJ
      z^AY)X8Z%0Fk}yCGC+W7dpGHA*Fr32aUWXrqRy?&r77uscAmb$VF}91Tf_+_wrVfV-
      zc9BBMu~RxuIR;thJ#u%im|vCsfHNcJw_TWYf1$*fJ+Si@iTIweM-+3Ihf6drs@fim
      zI7^~|M>N1=lJ^98JjEEEVG_?##tV}7k}6-JLUsYKwUk?Wd9|Jt<xP;V1F7ezQ%rl4
      i<QdwVA}_8zwa|q2)Jl_tEa^$6;ppYix5o@F0KWkK+rtw8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MediaTracker.class b/libjava/classpath/lib/java/awt/MediaTracker.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b85cda41340f7fb1d02465b3be779fc80e94dc02
      GIT binary patch
      literal 5777
      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
      HcnJ6pnWHUp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Menu$AccessibleAWTMenu.class b/libjava/classpath/lib/java/awt/Menu$AccessibleAWTMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a337003eccfa00fd4e2a7153d71265af00193d94
      GIT binary patch
      literal 760
      zcwUWCO-~b16g{_0JG2b6d=;rkEfgq_P+Ss>NmDe|v|VVa>qmKkM~0bX-W2pturn^$
      z@e9zzn7H5v@GD&TGYt1l8no>KHt){4_ndpreQ$36{<;D10;@J+g#3v(6J>E8mK)OR
      z7Au{O)LI?5vhuNIGBzy2S|6zv%F|(@$r3VJ21>YX8EEBu`?Wm+y(5fQeNTtN3){l&
      z%J|!h(pBSk_75Qu9xGkkCZy|qGj_T3Qh6$TMVKlL)YjVstLh)hBzU5O6vk2*!IT3B
      z(}e5*-#Cjj>ALb{vwM0VgO*_D+`8^}*sWmCjC)DTcp?<)4_pm<oIH}@zx;dO$X842
      zk@8bn^eW0#;pcKcZ#RjjcxGdPu=Ft7!6NePtns?JPbfa7KOyzO?*<+DMj2O0<9N&H
      z2u{uOWKea5)>7Lj^856y%6knhivr*E2>&=S<Pb-KksYDYOvXGw^lkA2jB{mz(GKGn
      z$FYsgA4qR({>0?Bh&01z%9Q9U;`9Zxj2#v+6<N%2Bs{@<ugw-mQ?tG!cYUun<3X4I
      VX|0|%hUd{)z*02FsF$$<>kcl_whRCO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Menu.class b/libjava/classpath/lib/java/awt/Menu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d228702a916cf2f42968393cac999a60eacf7dd4
      GIT binary patch
      literal 5501
      zcwUWH3wRt=75;B_lTA0%gr-fJH0it0WH%w@A<(8Nlr(MACTXQ<Fae>H&7_^O*-dvh
      zeM#k2)S{yDPzn_R!2*Kv>V{IJMKJ{w-wG;fMG?dz55dQ$AN4;ov$LDc=F|4uox6AL
      z{m*~S`OmpG&wud5QvgoG`#$6;Ox&z*)f@C}iH3F~GUS6-VbZ9n)`T(OLxDp1sOjct
      zB%zxTBj!V)!W8SB8Esf+#7sSG?$mq3hQdh^V|(J#0WQBZGBnU@#1zyjPRFfPT}CW!
      zMkDK6myrhX;t4&H=+eVOM*g)=O*(e`l^xp^@=e;0E0nfbCWaDbxS`7kC8DuL1z*C@
      zV{7{R3EQLKH{&af@Sw0$s1&OyHb&nvJ)t}HxVTlJIBpE;F`YPVdan_74TSZ`#)fr?
      zm>JpFScpn4u2(2nY(~t)5(Q69ZI^<#IofCV;lT_I(@^EZEc%p9&ySgyF#!s5HI(2a
      z8J(<Q3d$5p+8DSFD<GYApi0}KAqGSzUH*0^y@^d`Tvm??Jl!s<8Oyb{%TEh+LWqRR
      zbFAnQ>iJ>uR=6*ar2(OJx`s(8EyS5LDFO83ES%%R*(s+oKr}4GBF4kmGNgy&SxnaS
      zZl>prwLJp5Si@wL`mqG(`Eag6wd=%+m_E4448>a_Tg_NB!aOB3EXDaw0`<PI5szD;
      z?(u=rnC9+Gy=>VYG6oY&r60|hp)kRWccz4(Z8Q=h+2-g_Bw?YnN?=xLSdEo55t8{<
      zTT}jJ#$e0{=?SAxveltsjjZv;sThjOL6T^;){ahs%s0xObs9Rco)nC*A)YKvNKjJC
      zGs7ZMj`SInv`6pjQ>dxQ0h!y32R#}t!o@U0PHXj;A+AlU$y)7}WMdKXafyaYv4OdY
      z83WO+^rxyOd-=d%G(sp#J2TO%Ap{chlU|GM%{U3}5=#9VHewSg#nY6=nn*FK?GjOJ
      z)^HhEYu-Uadco}UYMB_#YAt6h-y<5LsG=eA>WC)H{vAGS$!tgNUfEKFLBusAz#ib^
      zj#LJ71zSqlwBAq7@tUC<bo{Cq&n<<#fx%JlN0Dh1>Fv^RAwEJhGs3<{w5hqswAOa{
      zaFxQGbhul?VPm5nUK-mtB*}19Ux;f6(kfz_WyWVoMa)WU(j&8W8nLJ!S7L#f{e*@U
      zSSgA9l!iUHj*Y}7(2`bad5-M1+MVPx8a|8b?J8JnWovGx-p0w7ME~;|zJMFJv(E_I
      z(f6_-r1ymEnp9@)2IW}(l7^4t3RW_+w=UJBUH0ybcy^m;e7%U|%NlMMk!ZHsZJo%H
      zJ2c#hyU4~WzBT>hNZM)=cMIGNIntdf6pGNsUm6a}hI=*Khx=JF3{qz_8otb=ds8yw
      z<jhhC58xX<JecaK8SgZF6AwveiW%%g_UTodC6UHlp?4Mbh=xb;7=4VVay75!f2PVV
      z`lN<oJg!ja^e=YB$`pU=Fl*t#Z7|@}9kcrcp7h}mW0-S+hHv31g(5li-45c0BQxHD
      zbVS3`()CL=>GAex%xG~LD0Zu<<8Y9Qqkf7+1p~HlvTZnW^5I#+WKW+zWQO~USRtNg
      zGV7fCLz5pzrD~4i1r0yI4_U1G;Ghv<H>|Gd8H??J@PhDTO0F(_@34S=Di}XgsLypw
      zkBcQL{)L9`Vni@r((p@+FfWOy>m)_CG!$aBo4g)K4`P@_DmLc!2HkmShRwu|hA~SU
      zr33#)!*B6B-tqLYNb~<s93OtKFmseX=cQLIy|7be{5Xa`$Q9#{yxojZbC-2cM<l66
      zhdy8w;x)F30c)SapEbOJzwlB>kJm@cEkj0IR3gB`e3b;}O$qQ{B{!?akEeM1wuTAt
      zv$obnhhiaPxhdDG2}0pi*+vqr5t3*Q>+!fj;Y}Lj24)k+gFGInKK{Q>@OXQkh9U@4
      zjpIB_<cC*0Ys{OJ^_=WHdEw*p7L;SEyS{?Il-wNoUCo)*w4nGb3k+j=;1FhZ4`cQL
      z%n5i8VBW*lmQ(m$3NODe;rB9{>m>9B%;$_|Z$=Gj`4r%Q1AMMU9q<K$o?!&jP=0GV
      zi~<Z;5asqV2SP@tT6_hp-T}LrU>-it4g`nMkWDjCeE_EgOV3E+LwivuQ;m<KX)lTn
      zp_%Ji4yTQu!XN@4V@Q`VXq{xfi)OCCTpnFDxSFP~;SF@RMQoOB(j|7bLrg}?8Ie4W
      zm*aegVuM8)$PYY*(;jdQ7Fd(lX9O$X4HnPHF`JWU&E9-V&dt11a#fqfOdw8oAPQ-J
      zP7>|eD0gR|6uKyD@nMI;d0Z`t&}4sA5*HkS=b<c&M=}zoxpC3Z#W;#}-ZdPwd$>jv
      zvoM%McYECk{B^;D_-GykopXASo*MjNj-Z^s2V{5zgB|r;7Ry60Z8~77{xDrX!sI>8
      zw0(yveg@Mqf_ZqBG@io(JkO-OV9^WMhFy9Ku@&1$D<5ZKJ9ZFt0X4RhBJfz0Q-WR2
      zed1U#<>l!Xoh5Pkh1t4&krnq+Mi`1+JH@VUd4;es)dt$|@!h`aeVBL%S9X_PJ&fIl
      z>HD=ys;A${U<bv>e(aJsE%H`+M^IGh%?MR>5}&kVmBgnRphfwW`A6Y>c)GXmtb+Y0
      zsmw1cIEc^XVRylavV!WnPP`-0tjxE=Snb^)t12r+m2=7p?6g|1b{D9!g6VgkcrEQ=
      z4}Ah&V;o+mH*c_y9A~88WFLB)9>0S+yvrEAhbFvF+5dwQ{3iwUFG}d&=*EB0%jaeI
      zfLG=d*rq(ZNO^gs@!&S)vm$l@g~wR95!>fvMn)nb>0EnoBS#*tPgvRV(#l$*O3BKa
      zoA@cf<-9)FBZ>CSP6pR<wP#cY8NDxNWl)u2qAJfQ@Ua<`k<CZ3_)?v+iRkjK#6mBv
      z$Sn{x9mQ%!My-{&wYC>GI8ZAbsbxS_<zN~hR4_wpB`(tvr{reKrO^T1<CI*jQ^2<}
      z)9sFGI_gJITwi4gr7nqmb&85go0}mbRcAp{=U|Fjhziw+nQAfSswJpV=Vp{utxKWS
      zp`fu4C5`rRlPW9z`RC9I@r{JJ%&GjZG*#!_K>-Jto3ExRlrz6jt(c%z(d*SHQSGGC
      zk&&k|*K`>T-b45aPV32I9KPn}soybJAyu~6)3hH&0S|5M&QsM@cb@orw$1g(S6w`*
      zyJ@ovQ`JQoHY*&P`BdhOmb*UopPL+QL|vOtI<a5r#Jeqc6q7jK&(GJ}q{tt(+wy_-
      z{ivurh=YpV%+pcNS`F4)^~lM?3b&qkl?U-an&atmZmV7tsu0s-piK2+nldp*ZN|we
      zj0QD;GgJhN_`6wc!3q`2NY_e-e<9nu)DZv1BkH%=LGyU#6tRnLv(k0D>&Y%C%k%jT
      z-?sgj6io4L7wrTcqQ^;eU$%yJkmybnsmn=p7b-cPqprXy>dK6u&UZ=8w5ae(PqNQg
      z8d7ozb*OYZSCjdNaJ0MhxnX=yj@Bf;U;3jYe!_7h$0YG{{z~G-^oda{X4D>3tLrG?
      zJsHI~-z~;p;n$9tRZd-35b@=sR!tu3ChRK*@Ul#0<K7FOx(}1p{Ta9wt~OtF={Gs_
      zCtLLYMEZ~8^(2muqH3M1>ah%{$qrON?x7A;fa~O+{}H@(v0r}_Z#|fWaL_`?vp(-w
      R-|ymYvV(7r@$(+M{{`k}w4wk2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuBar$AccessibleAWTMenuBar.class b/libjava/classpath/lib/java/awt/MenuBar$AccessibleAWTMenuBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b9fbbcc453b19a057a2c4060330d11981baa969
      GIT binary patch
      literal 806
      zcwUWCT~8B16g{_W*-{oL$Ty0DrM5I_;Sn&9QYFCv4+!<q40WPomRYm26@2u~AL9d<
      z7!n@*0sbH#33oP|0xgNW%$+mmp1J4FoxfL?e*i3_;37p>_$<DPsyK<NyHd9{MVPNO
      zo6;C{<jdN-gXGYKLs-6(S`UuD1X}8-ThOKmIU_?Q{DusT3iRRjD+0YC4AcW{BB7&(
      z@LMwd<KJqj_;X{5&>MYHCci`&+37U4#_UU_RkThRD|XYR2EnNZA7mf6u7@o8v*^Ky
      z2M>=3GaZt)$yhkFqqN*>9UsZ?KyWA4K+t64g6%U-4jpTc@S>~wy|2cOhd;{bhT0G8
      zC52)s)}K~I!YE%w->P@>*7`7mCoUcn=Kr7VVHQsbncdfWhwnFQ`-J>MY7nw-gI3s-
      zTgp1~65|ysWw@=i4C}ryMj97+e%8*u38VLQjyaw|4}Y^1rjbT3BR58wT+R+A-a9;)
      z0cHjntuRh;>|ZSZ#?WH<0>kHV(kQQ4OVKIPbb>L)9*Z~?<Cx$`n8Z|aO@*W7oL`te
      cYwK-!(Dz$fC()+xEMDg@AJ?(!=U9Mq4fEl~ga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuBar.class b/libjava/classpath/lib/java/awt/MenuBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46df50581c81101d2019a993623ac585c372f790
      GIT binary patch
      literal 4947
      zcwUWHd303O9scfQl1V0yB`ew3p(Ha2k;PaNK(;7JvtR?!09IZmkL2NO%)G%srPl7X
      z)e34Yw6$t&Q>|K12p|Qa3!!#zZENXj&*?wi&Z$RxPEUKZ-+k}Sn&h0q$-H^@{+93e
      z{g!*@mA7BI2w(;N=z&XM_CEc9-mKqcHFq1~#3nuFfm@(5YjtxZ6pe(9u;oF)<h`(^
      zn_+``g#zXFo*8NGGh(J5G!N;6LBj*Dz&yD#+N=ixMm%l~nnBY#*t}7_1q}j;+baD=
      zEN(`^J36)qh)#hSbP%`nu+^^z6Gr~|hu(a>=83~g1j@q3sC7q(5C-+w9pOZ1(1-~X
      zju^qH#3eARD+_3wK)#fY3zRxL3Cj#N_ZtB#660pUS~F}~>jm=a8~O#@n<GPp7kQ}G
      zP=QJhYLi@LsCiL?>LM^Y4P_|zVgVL;uuz~b<@)BB9vv|Q@%HcmGZqOGfu&(F7=YJ|
      zZ#DFxAQ`Zo?)2bY0yQbk<YxP5z=&Gp#EYe<mT{5p9y{Lcx=meaS0q5@bn?e{wdl4+
      z%yg_731+Ot!-lmrMN~<BLk?9kq-G5zD5Y#XQ?|4|N3@~eOW{=-R^xgB4-IcKWFi)4
      z8jW%(yON|(n+G=tR8N*7NV)ID8c?Q{MUdrF!&+1dXfY!cIbifeEOYNcDZ5_7jo2Vi
      zM8w<l7`+J8=HN}0s||b&Hfh)lmRiwpTBjzLkF-)T@^O=fo3WJz<M^M-hYC{p=+y8Y
      z3Ajif8gkGUqXpd>da#20ay8AbJ7hl!LI)ihYo{Pl(Iaa%svuWQ2bh&b`vMCl<t^u3
      zmh!C{Zo>d8lPc{&BV?PdP?|wKJlxznxQ~U;xMT#oH0+iUcqp#W*LTQ}YjB6;XpdCx
      zXqc=nl?OEha66TUjG&{OZ-$4AQFeU?|3U(;P*j>SHSEKk6tuT{_fCVTLzZDky1ji0
      zI+6)t)iBY{T0%z0zOyxB8sdmD^nhINcIJe4ixG_(0o^i&B$5Lf?vgU@xOvEsN(VJG
      zqRFZHWP5Z>MeJb>ACPnu84jx(Evf!N4fo<hbVK#+kx1}PlYq)Ii%+f6#z*im4?dbX
      zuGOA~kK+^UkU-2JPE{W4-kf~PzMrZgleHxA+^6AF_%y?bC!2Ul{S+$MJ?!NB0S%wQ
      zgB-sqK$2IT48)$7?HtfXOqXMf=|75xJ$Q(joKir;Bls*ELk{><8K!v2E~KOQoQ7j^
      zoX#52<K2;%(Vjx!j@m&8w&<K`pvWpS<&<xeV`C%|vjPdJTGVF_hjl9vqwdP-0$H0)
      zai3CeTi+(T{>vJk!dIMGo7~D^Ws(+8v<ykP)nOTIgU0%46mkqnX*zxyU-#gdB(=Fp
      z8lJ^-oEygegdU8`Q8%6OolIst1$)l4pareWWDgsbk&beDv#gd=828{bkDW>IHJn7H
      zti-b#zKSs>M|MQn6mha1NLKp#AO{|+MW8|PJN->ViP~q}MGY_G5~1jmEiL;$?RfAl
      zfu*_4wj?dM@z(8X(TmIYj=WBMH$B9%8noY@PhnYKMvopca?8HYikabIy8IqflDoVq
      zVFrhcSRua87G?{`dyyAc@k8nHM>%6tS#nPApJ@0ge#Rj}PIrXO{RyKh5+1gPW2dz6
      zs)k?Smn<7S8a2W^P3r19C&N<y+oZ;88h(ulmXH;3HYMA?(J&ht=UrbU5epbMnev*V
      zso<AObA0UxGyKg#Jsvk$S>;pFh=nwk$N%~8pa^cxpJHfSo56dn3o~(_^kaYL4aR=*
      za>i!~Wq6n4=N!J>Mhk+^dA>8K@|{P`z!}t?#@w@*e+<Rvv6S!2UOs8-*YmTI{(ye^
      z>%}Z;S6~2hu@enk)f`Lk!Oy3V$Aa?G%%|MT_npG>6DeZ__F^DIIbSI+#C5!!JIYrn
      z?dG$~H;$E;(9$i9TtQ{y6?o;>alBhT#5mUZ{HL+pKaPz(P26nqpF_I~e(J5G@Jw!W
      zG;*!Wg>*ozqzVY35D^BnpCrXdWgLr;z%m|njTj}CgSY{Qc;mVo8+eFq!9Bdp+-u|Z
      zIoK3#`K_09GwGDthFj>Rkr(3kqK`x`#CGgZQ9Y@mYDq?w3!5>`<y!wF_&XU=nnNGF
      z{Ct4^9%Sl|Fug}ng@@_$5#E#^CB|b+!*SkBzmS2qC55*og?G8aJA-mbyu3&#yhjw?
      zCW)(d9Phh?HQfrkgzaf$9vWp5>=<g#LC>Ul5gmZ@Ov4zf@M%JP26ddn3-LT*euE^P
      z$bi?Bg4cv07=)lvaxa0ps9lX=0+n^kE2x4O;7%T&6^gczb#<=C;XdiB8%Hp=e9y6A
      zUSi(QGvgO%@S^Q{fny-$x`NDvX}*ZgB?uS4M-ZJ<(&O0wEV4^_Vv3R$@@_>b%Qh}e
      z+-RFrn8%TzrO^p^^2XqH@5wd!YKF;*l*vPQzrwSD(k>~X@^d%yliO*3vTam4a;Z2q
      zMX`_<bY<-|mF?Xs!(ILfl<@mK{QGd1j|6|x0eye>7^)i2;fMeo_B63Z{Y`d_a`91t
      z<L~_0Y1eY6RXhChIb{$2g(dP=qWL@H`v-gQpDda;SR8MX>$k89|DxO*{Gsx1bmBiO
      zfd66_-p(kR-72C&cG+?63+lJx^Q?OpEfnL6EFW1kYg17khOl$KOvTbQh7x}=mTp<l
      zeig*uI36EM1D?m33z5$s`voW#g{Tlk{83tfMWUELU$u;KT9yJe--aS*uiJ*=Vnu(6
      zP3ywrw%sReNRKJvTh%D;O4D4IMe~zaQ0$jaj))}HuQM<Ar;~2?oTwnmO3W5jC=)f9
      zD{6U9tV1K;uNU((=xa?OT}fQ!L^_)*4t;akD7}h4-boaFPjN@KQ%f4-;%tnq?rJwD
      zSGAkKzIF`xO(&92uZdiojl{W}Y+gq;SD;p`M1xobKi5`^78~bk$6LnedY+TR8C?!e
      zd9FD)Yl;2@cir4Si5C>&y=qF7j@k3-MOnya2D&HSc`KdUQptwcggmhs9zILNmJF6k
      zQ{GFJ_dKqj<2aFLZt|PpX!)k{*=b_{PuEkpFo9V-WG@e}oW6Y;7vxf!hnW(a=%v?f
      z%+)O!4PTY=dWEyavAa&4+-2u+b)fW>Gx)(-{CFHcAIGn9`d;kHFjb~Z`Q&X!netIi
      n{`0<oYrDPri@5e&j)gt81(*HzTl@2O_`THN?q&Y{0q*|+tl4B+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuComponent$AccessibleAWTMenuComponent.class b/libjava/classpath/lib/java/awt/MenuComponent$AccessibleAWTMenuComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c94d68691b615b11991038c38050d8b4d0e65aa
      GIT binary patch
      literal 6273
      zcwUWHYj7J^75=Wgwk&1SCbHu?b|{oOjbfK5kG2#X+B$OFy0x7UxeiGKWh39%+sM1g
      z?#g)-D9}<UuQn~O@+cHq%A-J15+|f2<xwc)Co{}2!w>ii48srp0Rx=7yIQTTuCks?
      zM$*0K`_8%FJ?Ea|EC0QC8Ne1?Nh8Iu<soCyC>Y1Q!X&q<MSJ0hZE?#R7%7*z>zW5E
      zd}Qx*!&Vv^!+HTbUNAx{vtoKD3Uy4;wmg2EOgk95eGjHxC~?O$D&|Rp4ASUi*pNgL
      zdCVpnmw1JjJ=3-rR=K{T8Sc3B`~LA!26ivQN(##L49lA_DplV8`fI2D_3WPP3`2)E
      zZ@L4U8G0wwVhoebcGEJwI~e-&t&BDjl~%N8c?JwUI#ywI7H#O&k;7Vsw!AR7cEYsy
      zRCVDXccz6747mxrOu-ryGW`x0H4zfSwidpwayt}jk1;!|6h_OBix}EXYnC4;QN~Ft
      zvK_O_Rd>R4J#KM_;fB}=`65vk8Vu;18LY>KG;ShS>iBfzv5^!%)X04O)rqqh!rRig
      znPFXIN5|VKOed=q&nz2c>FC&m0_jPSGaN_=HsL5&-)88nM8Wr#E8K9Dx^|W+-3`;C
      z8|#Y2v)eXBTI|nKKHRF~HoTo7GsnFhcGa3C+n#*P{~jVUthov&8Qy{6G~P+6(Y&i;
      zE4I-U9ueGheX=*oF!B&f4>H=?9Mi<ri-~A*4K&4hvqEa$NC}h-?Q4cQ+$z$kJ--Yn
      z?RpwbYI(yjluvRH&-C5~no;hS9rH+VC*3u1E2LYY<T<7_N7AmxxQ=^qH$$4RQ^o?9
      z;~f{pF>dWP96zAd4VwX=t6{BX`PRhHhh@4wwkY<S5`n^QID<WyPNPJglC5>z4=VMQ
      zR6h?EcTMizHMMhUnqgo$j^yi!WqR`UM8-tZuciqzVNK(%XLw{n>x0QYLR+em_mX_e
      zGtS}wdPxycfJXW7oFl4`@;qLIMZ01<B=kYdrcti7F0oTOLGQqVzpsPi5Iv>~^x~0J
      z6DphGpwf#~$F&{tD#V@mi<FBGp_0a7s#s}D#{%Z5wuxYrA2R6WtMQ1O9kczkj5CTQ
      zKevzSuwXM>6WUF3%KI`sH5>AhwS*20eUhq<MI2+u63Mh}R}PzAtegZQTqWxhcsPxd
      z6sx?a!vXo#4*AhuD|rvDVa#@Ta1BE759|1d(6v+OI!(hvAfewKc`SgcXI2WqDh2Q{
      zd_0ZEYXQXebbJDj28RemWLOdM1-aaC^TE3)p59OEcmkgcio9mL%PN%}&aL1EO6Ex}
      zz22iHMJ=WcpW>8`&*DjjwWce*gFy}O*`OEirz4u~PD}LsS^sIIm7MANU1-`d7HNVB
      z<^eJ*&D+Q54fDUxm_8+WaQK3~$d$F)73?*%G|^(es^e>-fp!G@47$UQR=Ml>mehP*
      zpJSv_QP7HB_Pmbk@n-SuTRL{2NRxy?H|jPPR=g7iHQ~=5W%0G4aYY5=)?4FsF>t*z
      z3WAJN`$;*WG75-l71JG$A}Bn;(oqigS2t}_&JaGj6fM7B0Mfj+!03+BZmkY;O@%ch
      zYUqNFb65&Qsi!$*pc~IX#jr3V^5>F{i+D9~6C_()k9w{J)<4&A8Lv^Ku5a3{vJ4It
      zrA>Cxti6=<qhwc|G9NSjX|!RE+a#zcLB=i0onpmsT~3$NSI-N1`qXZqtZ1Wu?MNeo
      z6#B3NI<2jwKRHskX4NV&7Ss1l&}b~~qMdH~bvx~)=rcPwbPj6<&*Qo?zI~rq6Fck@
      z+Sx_)({I5hR@dQ8^vOgjhAg-G7+R}?JA^U&oe%5@HbbEJ_7;e6sh{G;km5cHU08Ju
      zo~1bG|5*$SUBKWu49F4v2|4!X7;#rb+=b29=o4?j+K_n2cc_T%AF)HR=ukA|g}`@(
      z(qsmgaLdpVZhyIvAk`6zArr-r!FGa*81BHGA=Pd4DXdcLw8XJ4#*vCRQW3{p7)j(P
      zwBV?TOb<oKakKxM_S)pL+!+%i6^Sv5oicJz_CBFRj^XYQxiv&~ic4L>Ju?1a4Br{y
      z?`w`ZCC6+jJx?s#^W#d-lbDh{H!1#%((^9t4w0Ker1lElEn{DZVYLXm7w?h1HYt5Z
      z>2>ciGUSbf4B5Ag4Ecl7`+hutn%b#A$yae;-+8=Gj^Xc0wI9U$n>8~eY+FjH8U0x&
      zM=hVctxp;C9Oh-O7huZR%}TE{=0zuN$gd+Ze!KF-G@XU`yAV7udVu%njX5rJOvi3c
      zk8V!K2k=4P`-fEeJtDK1%9DH)k2b6Dn2dc`iKRiUNd<Z)m+&bWe@dysXCi#-yL(Z2
      zcQoIrJwGMmFDN}fjb|X$i=69iR}$*wbNIX*eG|tYmC=7;8OXmWkzY(kYD|gz(lU@e
      zO60SN9bU`Fq*8VGFDG^QuQYdfZ5wjhEiqzMhkq`y!)rTYhpKn@uSdX{umF47w!efG
      zgZ)eR#$$~2Q#yU~`Tza1&X%LZhqf2(+CF6IbB*>uEV!PKIYq&}5T5!)d^<_Fqb-Dc
      z3E%N4zKicAQ9RLt;`?~nr}zPWm_+eh3yL4%v`=vcuOv~NZb9*5ob@Sa91kf*P@Aae
      z_UW}dFW>tmbZVDlbn&UG_Tv2{S=!$xNJ}GrQ$)dx_ft8dzfeSfZ4pszMx(z0TG0JW
      sru#S1{ig-pFYrsB?)5~;+jA`r_$y!X6n^d7zk%QQjs@v@{8rQc4@qdbm;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuComponent.class b/libjava/classpath/lib/java/awt/MenuComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0d98fca07d15ac6dcd3d4dfd4cb93e8a0973171
      GIT binary patch
      literal 4426
      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
      L_>iuf@%aA$`$(g#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuContainer.class b/libjava/classpath/lib/java/awt/MenuContainer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fce0285dd701587bb8678cf4cb33a26a1a9ba51f
      GIT binary patch
      literal 262
      zcwSvj%MQUn6g{_S)hix}jUUjB#@Z5H5etch-KZO>Fw@kif3xrbK1$4VA-IcsbI&X1
      z`MN&<jM4Jo5c)@vi%{HjxMX>qDyc;xIrC5^v<vPe<RM(`jvQ-(cVHbE5uq~-79X#L
      zCImO*v&xw;7%u*DaZM8SsOr|P2TIop`tm$HB+!In^)ahh=~H1Ex`R@W@%C^?zr
      j?oZ8;^|}N?33f`Rbp<YLdk@v(`luPcUhss5*$$d-J9$Av
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuItem$AccessibleAWTMenuItem.class b/libjava/classpath/lib/java/awt/MenuItem$AccessibleAWTMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9014fe6448c3a0d537a29e700f3ef24f62a0da3
      GIT binary patch
      literal 2507
      zcwUWF-EZ4e6#w1Ct((;8+Vq2UE#0z}HAzRa4;YMYgD&k@O4GsGX0&_^C%r1361%dU
      zG2n?8UJ$(S)PZ=ULz)nv(Mn931QIWM<iFrwKnOV3c3mgV$R1)lKIivw&bjyc(LcXD
      z1aJx!84-qwo9Zn!r+#4Pid?T3Y+f6msZ_XSY2_-PxxT#jR))lIsv$XV)HV&B>vkC7
      zhh%gzj0@Q9oa$w1Rn7h|7r<0(&Cq3ZF&z8<%#vEIbB11vo0?iJanmB;N@13P%`+tO
      zhHlxaZaZlmfB&U?-uL?#|1xyi?`zihNrwJ~P_@$(KCkJTeUV`(-6EbTF-Uo1oyWj1
      zpr8i_;)r5MK`)+S7-_=zl{>%#3!2Us>$NgBmsKi&A-P~w$ht}e(0}ixBn&cS!t$+$
      zL8kjQxV;}+RBJ>tkoFj=s=kq1vQ16jn2zBvQZkMZB*d=ZD2_37RMj%C3U47a^{he2
      zofSjclWI5Bkkf01DEN3=xX2^#8BEH^G8}E6t>6TnWr!8$7FTW*mgkDJ@Sa43;b4mr
      z^G02_8KUV-fnlsg!YsEcrnc#}V=!H4(Rx~z8vTeMxo(7eC=qB)#tRIG{K@cJv~+TA
      z#+-N-<2$F|B{8Rj>RGGRRDC^;vp6qS;RP{{fcn+)O<u953t>Z<Qk>{sR`3dD$ke83
      z2u}euhQopN95Umq>10DQye&D=cA!oowPcv!`MPNmU5KS|0lWLgS-`I<xB}{<%yqG2
      z)~T!1x!3mAw3A-YZN9<HIOb6lZCP|XOpb@G$4d^T!-|=;IIdw?#uA-1%~1s_$T4(j
      z-Z>MeW8u1jH?hhPC!x7Lhf;b?h<EA^tZ{dFLKHQ*Rj=A^TZ(iJ)#|m7M<=G<ZW)U&
      z8FjP5FKc33CH6M<l#pUj3cAkCd{wn9PUp*D%fkdIsvwF8IzV3p96}7Drf&L3M4<Hc
      ziW85X6-d<7K8hsi-#Lm!=-!>3{2Be($z2To=l~AVHSUByCc=*}>_C}FCF&8nGmPSC
      zkLEPpMXW1(AN}_+_JhyS>Ae3Wfba70<9NoypYZUJY%}uH05akuk7L3^PI*Y_C#0LP
      zp9QdzkDWrUSyj5%g#5Cl>Ph<Ay2yFDi{A8%+@aQaHM4#F9vTGj6{&trEZ;b6LoUK&
      z6Hljc#&Pf*p7(fF(id5&ku7vY?+NAyIJ=tdi~i}Vyts?$9b60;PLc@lEnT+>e3v%a
      zcLBMSFPHM=E+OBx?ccX-z%1rG<P|DV#Kv4(m$%UK0Q0NTE*7@YEgqxv*vz^UU>);W
      zui|x&b&aw`;|3;o@WvKoX&X}XLUwcqrP2M0-R3?-0>2XKH;40xi}R};Ag;HFH9>pf
      uZ4?N}@Q&~PjORY~IHQjOMq|Fwcb}Z#j}`<G+;Fb%(U{@vO**DghV&mt(JX!d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuItem.class b/libjava/classpath/lib/java/awt/MenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe5895291c148a07f1436e2cbc074167b719af1f
      GIT binary patch
      literal 5918
      zcwUuPYjj*y75>i6W75e@lT4;5q-kkOEy<)MAgI{%Nog@P4TYp(l@`lQa+}^VnF%vD
      zeW^S|Q1JmueYB#02q;o)p-CSo6dzPk5fl_3-~*J0x|Yj7F8yKs_PuBB+?h;TowepZ
      z&e`YN-`;1Rz4v|QKgXT`a6bMPfuT^p&Dw6YTRYtLwRUQ>)3t{qC|77K7+#qk9!aO{
      zlp8^%Lfo5k((OHV#<7ylZmU0OM^L3OOJ;VqTLS}jHtX~|NypvQzCynxZ7xmOJKfF0
      zgmkEBb82+B-_9tgH41fE53SG6WSw+sedi?#H7nDptZSv*J}WtDSDbwGvFG<WFW$-t
      zYrv%tX$@PcL4{bCM=5EghT41FjFTGbP>9$mA;xKSmBJKzJNd7*vezn9B&~issZf>O
      zn$EZbqprgAt^$L5^aNq*d|jK9PS&+kWT$XeUf4sWi6YXaCAg?^v6FJ#r3z&&t$hmR
      zE7OB^6lIuc;!HG60WnO}BUXhu3Xu1+O~g^BP}}9C>~7C5y_V;*SXX+0ezE8szU#qq
      zcdJ7t4P6tqkJ_iTO!SA)SWseo61!XbgjAb}X=tRQhHSUX_gTE9wUo1~vRXoxoo6z<
      z-cFJuw(Rblybc*CjHq=S>4@M$g{Fy8Vvh(^;{v?X#JOluFos7InoB_Dgvn-#lU<eD
      zeC`0ZKT3YVP<hK$t$k4vU20+(7IVA&P@&i*_DIGauv~jk<}a4{CV9HV#40o~s0N*^
      zhzg@iO?1fWYI>(9h@>-f4k{5#)!DFQQ_G~zSC~3zCvDfxOV?4$ig4JAr!O;6D^bJ4
      zQ#h$$`ZleS0L_ZcYy3U!HPL{m*sN!2v`M~X#Yz367p=j;?zHP{*(Dy>Xkrttri;j<
      zH=Ryi>$st45F7MpM--c3MQ{yi70;RI#{i8R$k_C8Zr2pfFLH$!$gQW|<a*L8Ja`Io
      zLpUXmrtgCx6Vq`<6b`P9U>n0JShV8GUe6C}N0Y8IU~yH(L=vP}Ms*6CPp9B?`cE@o
      z0snWSxcoX3m*WZ^u4G_fJYx^1x7&rQ#E?-F+l6MOFTkY7!x{@>CMTK|AGK~g4T}ig
      zuQ2nJGNSW?Ca%W~3^hp)c?GMrk49Z5+3tC>$U9!@Sedl4*^V5Q60#B8q%iw*R23Gs
      z{6DA+>mFw)Wx1mnI%(13-bIThm0dakd2w%V$5O)cCL46CiJjo-_$Y3R;A5;JdGU<B
      zC20?kZYE>xGVyVIg2z8)@96X@+5mOWpUAs2oLevJ-$nqs;ZsZ%r!vUQg-7qM5#rWQ
      zfMq!^tRa-sb)>Phg+yUi7_r=et)8~d;Sq*YV<`A@2gN&4pTid-_<XpT$W5Eri+xPm
      zj+Eg}@!4G_zJxtwJ(5XFW8jHJ330cHd$5QJ#>q<EA075{@K;RShp%$m7-Z|L4230g
      z7Uftja4pA=ng^KD3MQktA9qo`T~IFr10wiFxcG#lOmkD%Z{iVrlLtzZ4o$O^Pm&XI
      z{$aym`#=xjQ4^2h5Ur6)kRHuQAQY5qz3Z)g)!2=36Ng1@t>1&Jvol-LnPDkm&8Jey
      zNE@*-*05ilBY3<ZGX2quN1f!LovFgNnKQh8Xh{^u@T4>-E%Nk~iSOXMoU}$pY$+%O
      z=PcJ%Oc>I*9aZ=~tz4jcFc15LApU^dS$<Ek?it#<prFB9QiUIL{}xCG^{k1bSSWDM
      znRp%xnH}A<55er{<-1(FDM7(@Q=wId%jBJ@7VVJY@S=%d;FnTgCL*2lKjK92D+(7x
      zp;WGUc}a#}ZZwLQ@Eh^_ZwrrDz7Y0#IhNtgqS<W?+g11-?asB)5}<!D@khMM$fpO^
      zr=06X?XI+Vgx${?an_&2_kR}OubJHUV*MK?+flX$Q9n9YJCY@8a#YThr6kjtA{j4V
      z*i87-N}7c^ge!xA3h?6qw+SvQTNA1wj7>fpsNt0zj92s64}13pPY%)#dopZ6dH;}<
      zY~E*bEqiEQXYg$`=h;D{E^!#miSjYbO2lT5VeUb1<vd<vDChN6UN@1!5VgIAw{gVu
      z*I_=+;axCWH0FA)G<cs@gqdh70sQw6@IO4@Mt`vemM1Ypc`919imj9><Grbrio}93
      zB=UM1Ax*)_ydK3sSB9r+wvQ6%YSOyoX`07`T|X9Tt?eEQpdxVya}NXxDrHbLguGIr
      z0q01|tru_8l$(8yhtU2sVsbl<3)U`ZJBoK0C?c(9qe9Jrsm><hd6=Q*he$UEq?<MA
      zIOF79xX2^@ZY(N6de*~5q%SB*nq9eGyi{*xWn#uSmgMP0WmK&oy^BM8RvA#L^ny_o
      z^ZS5v%e_%ST*onyt(&nI(Zo1bJctNyD~sYnUCyuQD^RU^xnJu;I_d%)bs-&11v;+L
      zK`maMwHM_F{Rr_~UZ-7NeiW<24sRl7C<_tQ&oA*o)F_)y-@@<9p^%T}2I0QyR66&G
      z&aw$Q%S!6ZQm0Fu+o^L0b?&6jT_ttC2c0E0HBlUix0Kjag*ABZgiUQLI4J(6-pNhf
      zGs&jPkr2gQLH@W<n_ZbuC9v)$);%FMl>wWz!J%5IO{u3T-6v4xoh^CJn>AGeUhSu!
      z9^qj)5CW_Z0M`Wvt-!qQVoFbt(vy>zSF4W^KN<pZ72aX1PHZ@Yp0jQmLr*c_v&{C-
      zg#fDqz-nf~s0Y{=0A9*7DuA^<U>sN8d_xJ)moZhn5(2FaKx;Lq!iG>1FY~++mpD5?
      zY#ykq_<!FR+VjZ17vG>4-$a9YE9Av^aPkLXYs__C=@CqVZfQG$tz+1dh$A(Qkz&k$
      za##LE%zuX%#{<T3WLS6<(X#>iDve%~LwAW@?1YmrdCNoA1duh@p&|MC5Nwqni8X>4
      z+kFHdIF1|hG2~?xqXOkdB`SG0jq;EOYJxbro`urD&EC2Xd%*oVp5kq>-48H6$8pPn
      zwz4Dm$Z>p9@XPX^FzSe1k7^?}i6?Hy9n|q@<UM~oKI1*zi9OnoJIGYlEpI!7&(@c{
      zc^~HMr+ZmEXxs@eq4aPsZkV!XFB!Fs<BR-%c^{^d-Mz<gKi?kAyK^qv2N+F=8Z!_#
      znlZzei56oP78-MLp>Z~r8S_GXmj`^8<7@ajS(VEdhi2EMy;0Zp6du~kgVA;z4~^sD
      zqL?t+5i!m~t#SS&x%+@d=4XLMzEUGk7aLg{+i1%{FFcN7ESxs|tz1F{%ealp(P)H=
      z(DXpbbSgRG9hIX&w%MkS%0-Xk*oN4*4&w>QH{&=S`yMZnyT|c#?1%nyw~YTto)6<E
      zyp7|hMM=r%Mze7lo!A`;ri+4L`Wb$%^{ydjnLC59FUS#n94~Dk?61f0f(#YoZlraa
      z&|q90!aXCf?B&3oCEA__&z@Ik&k_879Iq8n^~!<~u44@vDj{93hDt~^;xGCrUf&e8
      e9>eSVix83?g5mw&^saB=FS3HOFY*6Zl>ZkXul-H{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MenuShortcut.class b/libjava/classpath/lib/java/awt/MenuShortcut.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44cbb58936cd2ce937c3043ef63940da318a91e3
      GIT binary patch
      literal 5566
      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
      AFaQ7m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/MouseInfo.class b/libjava/classpath/lib/java/awt/MouseInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd9eb3a962e7bb9271004bcc1baef886f92d6b99
      GIT binary patch
      literal 1744
      zcwT)}Yg5}s6g>+L3bH~7<`o`I(x+{bxTI~`;)FbG9xmq5nnHm*D#T(du_ccrljf)N
      zKlDQ%GeFBs(ogM7zw{q<dL$cR#}Io)yL<QEbI-kdcK`YBk5>RDv8|v(pzoQ!r>FE6
      zUTV><xiV+%+6p29y@9=~TgBA!_A_aC0+Fhej=*?64Dk&oaVuP<1-kB-mg!9kbjA~F
      zjLO(MQbi}C8WfxtxR^IBxm2rcOJ`NzE=zLA+lF3V(;d@aH;fUlWV!<V`F4U#(o>Y)
      zifvk+bbO1za6ED1*|bAnb>;^{Rz1_UTm}6CBcb2C)OX6#bwdXggBVsY)KY)prR&Lx
      zhRYZsS0*k<qvn|2%SGMNi$P0{lh^%Qx6=y71O~&T57t*#q*F0nmkH0~9f3<Pbk8US
      z<u#bA7{yh;U)KZ%;?3BeV_L;@Vok++_&~w?0+-Lstl>j^#D*IsX*@s4>GQ2ax()x-
      z$z}kZz=VRNz*tCn&e5wS({N|3J=3wRinKfp*Kvd0HQnPj21mZBB8F%;1U}Yq4qYm4
      z;Zp^l9Jka*Tea=-bCU?4;Wo=>OS5uUua&*V29Le@I2+cq5A}tHFEK?h2DK<p;7W7M
      zDbiGMhr($UiHbC$QQX4=1@{F;-x9CkAu<B7U9(&cV%JTtl(B7RhlR)DZ>TSw$oYMo
      z(J+fS0+Vi_@>3cqaJ8BFDIRGbDyQKqEYvG67><-yR_>XGWcIOmVyhjXzRj{1+0WDN
      zhKf9veU+^UT#ug#&{i35b%$GFQEw5wfT)t|o3VTz+<-gxbJR=GZ{En+<m(r%{#q>W
      zKCF2jZ*icroPtMGa?z@#!r)9<cipP)l^Tjsv4tlZo?=sA=vXjqU~0jxIfk4y{b#2q
      zJoB4AEUr<=oqR9p=Bt^rPR{v|@!QQ+ilg9oE_nd;7fw2$@!J&`Cvkyat?qyxT;$k|
      zUR<JAALkM7!~&RqIgfB$Kg7U7@-Orzk1)E?H-3OC`*`;d@gEUALTuvzH(&pX)Zfq!
      zF}aV=e?#gBX`1imX`c8U(;c{bi0nS*myVF%xG{EX;s8rOhs16Nl%|>N9&5Od0jhcw
      z8NMbn)YvR<*gU3?Llz5|qdq7({+EKNWI(cjukj66QyAxbl_g|Z#J5;uh6UzW$9L>e
      zH#V@@R^~h{{%^RoBG&RJw)XM(r;z6$8wMhD@d$hH2>p1BA&wUU5C1&A4`%xRnMApc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PageAttributes$ColorType.class b/libjava/classpath/lib/java/awt/PageAttributes$ColorType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7dfcd5fd973c4bb747731770ff1aa5382d2d9eb
      GIT binary patch
      literal 720
      zcwU83e{0iF6g{s=*Ca-_rMlT|{+OFCov<Q^3M)bh6ANiGmQpDG^%@^tBuz$=Zuqfu
      ze+(4;0DdU(zPC}G2nO=reea%o?s@0_`1$2KfM<AGLxo}U13%?0epa>)`9yTeGLOfz
      zQWV=>mSp+h<B6z2XIP!X=8z#zW`d#G@AM8rhWa~SVG^EBS|MT5$v$Phzz>cXw*3G0
      zA+*&C`hoZMDCiw980{#D)3|)ipt;Q<gYISTNzE;WrN28FSfXB$q%z<T(KJi5=s3@&
      z!UV%@8&xb=6s_1;#a)Jl_7%16cAG<qS+h}tA)^f&CJcr}KTbt|HXVz6z{d%_)$y~4
      zCqtgc@~kc`Xm}_|H_0To`wtV8^zt|^Na5+FXRJ#S!)%sE;!P}x>(@=$lOzmwH%&$E
      zCA=s^QA6|3F<dWTFy}tfXvr}ev4%DIY>FE4X=*psUZK^(4Z_)U8bF8q-0C;n9BIyC
      zIMSWv@ErB8U?c4Uch1p}p{~O9Pm19lt&XaEfn~hJ23}zY&v9R6<xfUmb?A^5d1vmf
      se@6WR4}McvDzQ(3+NyNr5{O4isEoF-O*9oeRy9wkiL4?M;bIq!Uw6Qgy#N3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PageAttributes$MediaType.class b/libjava/classpath/lib/java/awt/PageAttributes$MediaType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30f35d971d9da82d8c9d299b90bc64ff41e3f12a
      GIT binary patch
      literal 8335
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PageAttributes$OrientationRequestedType.class b/libjava/classpath/lib/java/awt/PageAttributes$OrientationRequestedType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a79bceccccf371bd4ab23c1d6939c8393331a25e
      GIT binary patch
      literal 777
      zcwUuKU2oGc6g^(jH4TAnEo^Hyz6Yd3qQEN?QdEW%DRfm+RjS~{ZLJa%l9D(>{4ChR
      zBoO=nehT7Cf@j3FHw}j1fk?5hug^L6`q=M(ynYAZ7Os~u$8hrr-{md-T(-J=Dm*E(
      zXjDj%Z|r1|NF<k0n)Jl8LgZ3R`Y&dp43lByh;_sm@VF2RrH=PtJ7lOm3^XR@$+Q&`
      zCYj!0u(~_Fe$Vs!47Y>-txWt%;C1eWZLhmcT3h2dN+Nle!El=c2D6<`sJ&ARi+`53
      zut<bin#qhu(n6J_XnT^6`Ak&6aN0o$^EO4x4py+rFu!#uZn}PRpfC*wWmqa&cTj=F
      zun<Iv=oC*!BJ1-}OvkSV>6pg@o<(Y{lQs-oP@)&fH`o7*FS>d8ILgVs-2)q$&tQjX
      zk&VUuND0@Dn{-2oFgSjah^!s+JQsNx&EIe4IDujHU%t{?APebD7-%RLD5|TI>baul
      zIT~%8Ae=+1M=+s2xAYb#hemZF9Gcaoa1XUNU_)acXZBE6p{c{Qms;U0jSa2-5li??
      z+MlqFuh_sBT*C*P(<t?m|A&=4>Ph7)n`^I7+sFA|QnudsMvZ;f)a3&pF6o9<beW_X
      SWv^(?RVt!b<SkrmqW%-KSFLpb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PageAttributes$OriginType.class b/libjava/classpath/lib/java/awt/PageAttributes$OriginType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f98e92249d5fb07347d7d55407510d652ee5277b
      GIT binary patch
      literal 727
      zcwU83VNcUg6g_Y4SX+xgr{DkuacYN&i=QDTb-~!A%*8HC7C*hsm+?&PmbSz2vy=}c
      z5cvWAAfqM{?|TpsV`7uOci+3`oO|E7U(b$D0X)N#3Q7zc@A*D&@{dKc!$%@0icAis
      zg~;o#GdYrJ_h2F_Fd3FEahI4LPo{#Q+zxhkVutG5NMjP7j+!xH($N-!)p^yA!&VS6
      z)T95`B8J_06Slj-i)e?~+rvbrvUtv5_>CTe*&4s2hHf&<|6R<&JP{^)2e};b#DYgs
      z6G{|(kO&(Lw_KDl<50BdVhMK`X0|WHO+Re(6lU2)1(u3dUD&V~<|3Jj_VmL*WL>4i
      z;6-C9(Bqj@XMO3wz`7E>Pfq#aKb+9b7ke@%!}iaOV<CeRkEhvCyp&3~dfk?%N`%1;
      z(^O=wgy*@)D`@;Vi|YiEyK<5yOs3JK4J@m7Q&dxL)4Q$r60Hty5YDAj7beu_m%m`P
      zZ+LTY-}DyZLsU<|`o<A%AEKs0Q->>`w8C9lJ<a@%1^mD&e&R8{;hxT_pPas^5Ku4b
      v&fZ-4jOr2At|T0t_(ct!Y3kxR5F5Ht6+J+mWJ-9bIghA_Vv&pRv5DGm2e_Hr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PageAttributes$PrintQualityType.class b/libjava/classpath/lib/java/awt/PageAttributes$PrintQualityType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..338ca80a825cbd0f753d6aaab43890d1ff02f151
      GIT binary patch
      literal 788
      zcwUWCU2oGc6g_T|HVJ`^6ar;@4F;rTtndU96H+u7tCW?oRFx{8+%B|6S&H&8w4Vig
      zm;{0!z>h*)yVYP54@8RZv3>5j*T??(>+25yPw=>g3WNWFAMiH+RJ3>aI1Y*;6T`BI
      z^Oc=Uq{Z8kC!#p)9e#{!&>60ruuqtMo|G|z(G9j=MGW<Kq2eSw9k(Omq~qrd`c~)l
      z7DFri-)fXo?Y`OF4nmTCxf^Wu7|iuiB2rPjV9@+#pHw%dd(_tg!{XVRCN9$cM2sgU
      z>ZFxUvwfbJxJ+_;8Gm0`pwl=oP_+p)99+W^@z&=BbidQ=OU?}kHJB3Ja$wESvI83?
      z!$K(1xLfWI<E+Pr3Ax~g(-BYlJQH%R7Hw#_C*|)`LBI14d(=^iiO8w9gPEJG!(d0#
      zG8@I4LJHSU`?V%T7@SU;#@R-~^E}RLSo`~ePA8B>XDy~DKt|G2(5X4{flx!9RYhwa
      zZ51mto`XaD^E8`KhWwsYzvIF{a~Gq5?z+*ya4$ti@V<c!v}0U7!gUFC1#e1dD0us`
      zQoKW>M|Hs}@R){Wrel>Ec*=mgiXnfxm3h^GdX;NdYv~KTW32p<vE>Fc=}Ih>>dlCF
      ZpqiJ+N0VeKXsMisSXEi%GajLh#&5FEpLhTO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PageAttributes.class b/libjava/classpath/lib/java/awt/PageAttributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71691df5c67f79fedcefc6962600f2d0c17cbd31
      GIT binary patch
      literal 6150
      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
      YA0zoG$+aXuBk3XeImrzqzd*_V0SjkNBme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Paint.class b/libjava/classpath/lib/java/awt/Paint.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..500bf4c6de136cdd4d518600d470dafceb05b690
      GIT binary patch
      literal 311
      zcwSvlL2kl84D>=vC{+;`{!lKg=ryMbRB;F@f_}g(PPAyVTP+Kex9}4VeLx?D>O?3h
      zJ=n5mMz+U4m-9COjNmbXhJfw{_bBlY<Q%mP5!?yrm6$=B$@kTU6r(Kx{Yv@a(QZG{
      zlT}9nPs$Sp8ao^4D+o9}CzVp?n2{Vi<NVC6$;36a;JLiP&>t)#m)FG0<UjSArrJ`u
      zK6O67nP%7Iwaun%VjB;VTU*!TVga3{+j&KA+7LG-IV`knP(YL8o}VN52@$l53LZE&
      Gpz{lJbzZ6f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PaintContext.class b/libjava/classpath/lib/java/awt/PaintContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e282250a341f2b8e6ef4f3e5ea1738e9eb5698f4
      GIT binary patch
      literal 246
      zcwS|W%?g505QWcVX<9-pTDI3s(z<031VvHM{-zgE%o}?9dA1fkKo1p-1{HJ`GmGz>
      zne%ww?f}McEi?#&RGdX1E;?9?B-c}wYkAccnuK1BGLgr@YM;tb6RapHkE)ae!}E6p
      zH<ld9RIyZ%%m_ozUwjTG2NBEQizft|{ToqgSybLR>(Bqj>~*&4RD^PtWc;rG+ip}v
      bOaiw+C4<YhV4^B*p<Qnq4iiF$X9L|Ah^9Uh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Panel$AccessibleAWTPanel.class b/libjava/classpath/lib/java/awt/Panel$AccessibleAWTPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5003c7c91e621517d4e9c8522f946ae98577006
      GIT binary patch
      literal 773
      zcwUWC%T60X5Ue(9FJ2aG9tnx_!e9_K5{5$#h$xcfB$A^QLJ2tMu`_}}%dWJu=J5yI
      zqMRenToWWf;=l*+Q7FA5%dwM#bD5s*s_Lofnfr&^I{@ogvXLSb55$qEisQJtEduG6
      zYVEevTD5#x`?6z7HY`H9N2`ZHEL0$)L29o|$ZHuX;WuTZRT%6x-Vx{{VVo&C7D3z;
      zen+M++{@Qz=kl76iT9N*t+CJ>G_%Rr8x^SdEn#~3Z?N1XSoQF$%z~vZ9E>>_!ITRZ
      z(}dYRLC>5K<viYQbq-rH+7axYFy)19HZ0gS=iQ=}*di==Lnp*OC--Fh2lx~w4VIS6
      zMtf2fT}1gRKCKS&HnVt!7dD;~=7+Ogyu>R)db_su-XoO$=KzB9IqXDj`9USN9OHR4
      z5fa=+z+<WVLTjmQln4`p*X7~-dtnrL<RkoxQYave3}?2<M)UdP9n9Y1cNk}6g0l_I
      zQyj-CD_6)>R&Fr)%aCSxbqw^K8-2qg-nlGdDjs8&BjE|2cH69SOfc&bg`Yir#?*fF
      VX|1j{g*mepF>lUE)C*XI^&4;my9NLN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Panel.class b/libjava/classpath/lib/java/awt/Panel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1351688437accbcd8c89ebe3da77e06584073a31
      GIT binary patch
      literal 1695
      zcwU8+-*XdH6vw}}O}p)~v?ZZ5Qb4N3CR-%d->`tTDb>aht4#uB81Rx@<I3i4+`SP3
      zZ#?>k_`)!Q3aw*je07FD!3Q7xGZ@d^tW8P$F`3=Fd+s@(?>Xn5&9mpf{0d+R*9;6X
      zOnlA1<vD&w<u<q!o`D2Ia?h6crQ)s>fq_wm6WV?^$7?kahVCubb5$p|9KU&jVJZ}X
      z%e|@yLf4m-^;HH|U^qyaP;sfM+-r-G-{<Y6sXtSHFc>xBi@S<pq4?kIeAm%om~o}6
      zNMy4UD$%U8>RgFcUy?ez#xNc4cI{fX-4u0(Lz1FzwseU%WxIJx1Pr6+wev-W;Y_y5
      zkjVRWVc-ZuYOnq^&%aaT9lxziOe1X}iIfS3qxxx<VK!6T^X>Xw=8`u=;ArAxky=-Z
      z)XF?+P_pRPs6U*#MDMXNp}ulMYF_chqi{?NBdyh5vGA%^8xMu*s!&h8{c;THe@leI
      zc)ecomHTC9oM0IXS=gl75<2d9FHRfi#G5VZrc@jB=4kcP7GB302D2el+4sHMF3BIx
      zWP5?JmAv1;n+BGsmi|2pZ{cl*1GPZVxkU9bEN1#k&h}*!S>sHG@veo}kRox)WMDKH
      zvT;uTKSjC^=PXz_Xy81<+>2Sv_X3u$lp~V~2N(63e?ZeQm^GcX)e!WVP;DjN6#M$)
      zaoNais=$>E$3ULux8J<dcD=d?#&C&Yq}5eh!ADx{V;bnpASYYZ=Tfln35qlc)QyUC
      zziEr2FB{P`7c`+{;ZtnTnDbUkNcskjWeS5y#p;fZ_}s!KmKnyB-`&)Gs#rLLF*^QD
      zza7-XnyW|Fj0!)aVO09Mq|);q4?{t7oE&T)<_I)Q*9iTN!oV0kkJG=<5KKJK=RnU7
      zFoDTvor>1)v@Wfq<V&9&-4D~-xrhT;_AaKkb}+Mpmwt#y$LMa-3Y2jG6&%-IU0<BQ
      z%d~3FY|L3BPwi{kJ2+`CZey-TnIH||1`_y!vg8rzNY^_i>8E*|A{Nsl88b_9ZfW}o
      z7JkE|ZEs_duG~{Bkjy(hg(R_o+tdk<qMMk3+?Q{9FW>j@e#|aV#NX_*n!O8Wi=Y>t
      z;;c43?#sSI?0dw%{|{W?LoCPK3vte=U94;+S9h@XGuF3pc^jYgkfV{y_xn((7-j1j
      nj8QiEMXmV}<?AN@3FSw9gohDfD7vcA{R*z?2-<b%+Ct(lp}cw7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Point.class b/libjava/classpath/lib/java/awt/Point.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68f6f964fe273d23335900cd2dd7643473f53f95
      GIT binary patch
      literal 2317
      zcwUuM%Trrb9R3a=34{v?l(e=%q&{d8(n4u{mA;A9D34Z3Y=9~kxP;4uTug3|y3nPg
      z3zs_6rFO|o+Zh`=cC0$%!m0iN>dLi`y(`D>oZQ~thSbr_<ec9*=lA=*-}B!4`^&ok
      z4r3*VCV`GseM2AA-?0bJTV~M?qFEs7-sKHzt@bdS4k94Xt)5J4aLOo|dck~GUnm#?
      zk+M2wjZ)dPiqo02fOu7)ebg$JZM|q`^+Lt)SHJtHbo9ON`}w%Ze}?}n0)gXZ(X>wr
      z_~MDIK=Y`zWQ5?uE)8Ks1j1ux(U_>LEf}SXHMXuXYmsC+DS37-o9z{|Oi#uh4roMR
      zSG@i%k!^**J`Eb$rPQOL1MPHYUBDmDWRxFy!@i`PO4klKfi`ZE+h&k-Bc7-S4iW4b
      z>31)c%U)%FJe^Kt1E+q4`h_rngF&S37oeaQ^Mm8My`td|2C2SWu&fe^<7vq+qz`M>
      z2IFkCOM0<f&~3_1OPg|$Ni^QB=mo|fb%IrZlMAcHBEy}L`Fugc6X=uDF%A3C$Jnfe
      zRhi8l1_FD=8ukERT5M~|E}6wVo8f)}lx^*HB#1LKufIN9F$+sZDTGnH6a=G*)RSsB
      zhnES@6pt44a#_~R3$HGj;0#_1g1r^4d(tq5QvyNSPv~pxpb4B0V)7xTnlBnI;B{(l
      z$flfJ7U*x3vz?KJa2gk7ai{Cj?7SzkEqH@jo!vYkRdX6<Fw4^D>+42wN#I~3n;ln9
      zrWD&{3GpWTGoE?0VhiR;n!2J$7o^3av>5$&XhXwEnXk~4RVghR=S(?6Aywu>(vBTM
      zRQ~;3_aTTD%B}3&Cdek|;7}HFY`C{m;;eG*<mm`^!QG$SM%PVc(ydy)iR%oSF^4E6
      zt)_(C*rTArc+3Hqrl!=5N`U0R7ub6Xd*vRxh1dhYE<ynY*F3>icxNi$-8EweSW1sm
      z5{jbNp~z9k$33hlViLcn0eFe4&9EyBbVGsn)y!P*uu6qcl1xSuWsaFcGo;QyAju#;
      zxbC6{)b0D8JOtc4>~Clt+hP4-L+dB;lw*C2zRS1B9f+LdmnhqK`bHhjCmx)Li_`B`
      zW8A4m=c6mpp_1|$d*pLMT=P_+(@j*TTZMkN3KyIzv^A<g4fHxY<OX}^rYHMtE@+#Z
      z{WdrI{W##j>$LTAk0lRuBffYW$&V#X;=y4D-B$#;%YOgbLl<-DVx${VbTR4=srfkk
      zf1<fZe|}&zKmO-vhF$nsYD@iSGRHc^<|PNESkHU|qMu0eGta+xh`bYV#372}s6+HD
      zo^yyc*f>%@HSjHbSK;?<4SWONxN6~470-Wql_MiNl7|<0@HcPywp{+&;QYof#_t@Q
      zKj_b&9v@P!4=Ie`IOG?kmz{A!`M@ud<HMZFEiilsr*p|F&Q|ftZH#YYsw-Q?CFx5Q
      fb6s!M<QV11<tp?lmg?L4FHd_9yY0QKwDSJ|;&+M3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PointerInfo.class b/libjava/classpath/lib/java/awt/PointerInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b044a3985d54d99eb54b8464b209444fac3e6b26
      GIT binary patch
      literal 656
      zcwT){+fKqj5ItK8Sg3Ll@q#A$21smtM)5)8C27>CA@Q-46_#L2O2OaKL}KEDAK*tB
      zXImsl&}=e$dS=d?nRGwD-ai2BV=E4YA=j~nmSH{l#<eRPpL-Y1gByp+kPb3k%V`-`
      zjSjbc2Bp<xST`q<GtcU^h21~lLt*nO1M88_{N0l1*nx0_Ut_2g{}j)vN_7VH*lqFz
      zB3RU+VTmD9EY&rThmI&>5@mJ7vA~crg~Klgj}7kKS&c5IjOp4|w{Ceteve7jZ;L)d
      z-ki5KO{%rH9}dJ&D3<<NHA$7y!56MWX4ADlYbS2qfoJnmA)V7xMtiapJ2ZZTeuYAZ
      zwh0jJLbqf!Bq*OGbWglwQsp=3<=qj1$_Sa4K(I_P3zcG(;vvauSi%u<#B7H$tRN2r
      zNZPOfNh5{uD%Qp}2Hi3jEx#i5JZT;Z&Vz<}STJr#PXQZq#F<&~&0KLIsM`DnHgtUT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Polygon$1.class b/libjava/classpath/lib/java/awt/Polygon$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06849f1c3675411d6f48d3610a3d97b7c55fcf39
      GIT binary patch
      literal 1484
      zcwUuMOHUI~6#nka(4l3ZwIV9YL#@&W(xNCL55-oJCa4Gmqih`7OBvG6nCTSZ56FKo
      zZcI$vurUEmT)1@Me{ko<jV^p|&~vAy7Kjj&&YXK*-}%nDXZmjQ^&0@aNU4w*f{Xf+
      z9@if_@d+!xlC#WEuL^}B;M()LnTy|=TjUu>g@>WF8lB@-AwHoy3u%Yjx?|Z4o+WNO
      ze3^lzNpTj8Vkkic#&=d2WN2K{^C8F9&EmXe7Z^Imw*!yP&l@J6-U^@$&yZmn&Im(a
      zcsJla*^wCrC23{37Yqk9c;OSLgBlv3`5@zvhDNk7$YBxcAE)e_rNSJyr}eo!7d==R
      zJwKz{hR`cUMRdr}yo*k#m-sg2xO2xavxb?QEQxT!7Gp7rDa$OY_XLSf4JzurIEj#o
      zQ(JSdLDO&=^$e={z%opS3MwXFcBnw6WZT?yrg*MEf}t)vI~GX`q^O1%x+!OQD@U4j
      z9X%T2u4AR_@X;EaS8<M^ZO;j6=)(mDZ_SPQs9KtSX)!TR#<J|JTW8EAl8U4S_GOVc
      z=mw|K^mBuy*%Vo(tdgDKV}=-wR%x|IkRUZ}n%qw2^<t3|rvJK`$y-Gl<PGjDSXm9%
      zkR&q=c>Dehhxglq9sb(%K_uulWP0l8Es0A30s*lrB!gm8=&SM2(}*UD^3!RU;$)Kk
      zXlw(4X!iz!(N}1GK_&@@>Fpy43ih%0I6^0l&J>QLXm#z!aJ&N5O;Y$Id99l55f=8L
      zCR3_rwxPX}IYd_B3r5$`K~G>EC!V2BS=)v5u?8tvMLL6)3etevKF|=oOHj)F4Rq{i
      zg?*w{KG(oBRAIUhuE0E@a-!{t8bVJ|r>@21vKA4Jo=3N1N?AW!(Mbf~(lANH<e03y
      zL_&BTLzSOHQU12mPPYU01x@TL0_+<)*>@z^5A?I2v>Cr#el2AV6@KD$5&iCvyKw3M
      zn66H4XSzDMo9Vz_OgD+?Zv?1RC;j6lBnkbJjHIOelj)GVi^DF?2(GyEFE5C=x~ue7
      I=yM+Z15_<0d;kCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Polygon.class b/libjava/classpath/lib/java/awt/Polygon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6425ac79e3516e60583117323f08021025a256ed
      GIT binary patch
      literal 5355
      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
      JJ*N7#>_0@3=ga^A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PopupMenu$AccessibleAWTPopupMenu.class b/libjava/classpath/lib/java/awt/PopupMenu$AccessibleAWTPopupMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64f469e6f4fd20298fb35fde35f3c5c98ac0fe7d
      GIT binary patch
      literal 799
      zcwUWC%TC)+5Iqx248cHnKT3HuAVMSp3l<d!DM~>C1sVZKm(?Y`f?K&Z^0j$<2NGhz
      zN6<=Dr7l>p;$PVG1FDX#$OR<`Hh1pKIcMg0uJ8Z;z6G#^SrZ9D_NzD%d2#CJ%kFV-
      zye*v|Q>fLX*6P5Pg-`o&*@Quui0O^YutG>{=_z4XrKgqaR5m{lXp7KUbRF#r$FB-I
      zkgazY<A12I{6I+hM@nZF3H_x;D=UnzDo6QigrT`+glv^y6x}bf9X#7Y3LPo5px1(h
      zK0@y!QOxfyDM#)E-wvd=FW5WNN^Xrk3wF+Vy=a8a2)QO>pIH&x?KzbGe{k0g8_mvT
      zqaJ5@QAd=m{PX-%-by>(;H`-<!t~2*3*(p|q{<)5mGbB9^_>bK^O`BF*>eN0CO1^*
      ztt&Ra5Q+)brsGJjXbY{SHj&}wG=4u}u=xfs#m~^f|5pN|Xho7UGs@c1>F{l$yTNbM
      z$w(Jx?>SF!?3mB}ME88|7ka)&q<%hA5p>0kE-}D2i$zSuAci;+hA~oav%oRLj2{@i
      ciS@~-cKt|e)U^prM&}f!qdB4a9cEzs1DPGhF8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PopupMenu.class b/libjava/classpath/lib/java/awt/PopupMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25d87dda163649a8679ffa2f97fdc8b5040ce1f8
      GIT binary patch
      literal 2008
      zcwUWEOLH4V5dOxJys^A~JGSN6gkV7=86pygmz4w@$8lsUiWA!k4goWkCi22+chRmK
      z`@)GwDhG;degGF9RlH&cTtzsMDvlgEapGrC^o%x=kyI%TvoqV%{q^_tOwaHC{QL`m
      zli1YI#?b#B-{MJr+e<FlPQ|$_tcr#pLs!i%O$>dO*!I>P>9cNCN*kigz!n&KT~Ri;
      znG<E#u&vef1qz+DE!X3gm*ZwdgdYC&=igua@!>}d?Pm<j@Xj#=V(}b9aMmt}Faqe&
      z(FvWQCu3M5tH4+IhAD_$#?BKsrxf(>8-w1a;W7+nnyIH44#%o?lUv2)vR5{&Vk(}K
      zX@+E)!7xTJsv*KKR*Ro6b7#}YyK~l-QMRp;usj_{Fvbuz+)IKNOyRnU_6-eBF^twC
      zA8*cW=Y``@1;Q9d4@1c08^V+Vn#eG8@IoPLd&aGu4lqP@Jd5W@mLp_QkJV*KgDU^5
      zU2<%TSS^ty6{et=jyMv;uPD3~+cw`fJgP`6UJv%I<o!HOXn28+s&P+85-(EO^JT$3
      zQ7a<DRIF8P;|<JeJ3gxbPU(0?9%Rtnv~M#+4#3nTq|#}591Jh(cm=OAXe41tNuP){
      zrf4nxlm@EekteX}#5B(8n8InQcK$KIf9_135MAVL8fh9kbjVK0VHkg+Rstf@Gx<E7
      zyg_%8F1$zW!4UTqY$v(DX_$t$lWcNL$&<gNBMs`IKHiLU{D0zT$WYqm(~8zzXRfc*
      z%wa4dEBoLI!*J_Urq0xh!V+b=6Ioso2kzCuYph|JAR5i*D~4GR<wIDd9#F4E7}qc)
      zPwh<|Yq&wr1C?&oGCrt?jBOQFS1m}Vn>yacJM>C$#}QV6`ZKoBoYzl~k`eFf;JC_g
      z$g``PvZ#3-A+%FxEZdcGUR*TflhIw%cR~V^!n8#SXHD+9f;xMsb+vGe00Z<|w&AWs
      zrPU}jnklEUcF-S_j~9Kr$TCGUqdAn=L-%*erI)^8nt>|_VhMe;(yLDB#{kU|V9*Cx
      zB2Vc%n3&wd;RhJLht7SBukGRJ!#ZBKBE<<IPq77sIaH1FG3DxMMW4x*^wF~vCo_*E
      ze#FEh^du6yI8I~oJ|>9q$$Ex<;tIGV&m+7FhOu>k`ACg9b(oKRmm)$mM+xtxN6=_`
      zO)h`M^mH&1{0&`^;N;l&PdF1qJ<q5r>c^Dl6H@XivA%-{KEnh)SNTp?F>9)#IEU92
      zhbZ2_jM5y%d0GW1wimOwKs*@caM9<rp#H0x=cVR-EUuB*%l9!aP2V<D^-JRN6=nOn
      zg<g3+SAE>Gek}*~ac!-CWe>RrxW0?GcClWEY*#M32cQOgsDx|=A1a}WK-c7ZY}^d<
      bAF%OF1H!&SXj7x0z5=&o1nn-;C?fbT{prK@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PrintGraphics.class b/libjava/classpath/lib/java/awt/PrintGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92853709dedd1049ba811ed92c16c107c7186573
      GIT binary patch
      literal 162
      zcwRg8Z`VEs1_nb0PId++Mh3C0#Ii*F#PSmTfTGO268ECSf{e`MVs-`=Mg{?}Tux$M
      zy1su>R%&tyBLjDOY6)1OSAG&BgQ$k452}8kur(tCS8#r5QF5wVW=<+2gAj_rdLZ>|
      aj0}tn%nTsF2(*WlfeplBU<Z;+3>*M0gDG18
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/PrintJob.class b/libjava/classpath/lib/java/awt/PrintJob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f8b88f2908b0d2a692361ef57d059bdc1684239
      GIT binary patch
      literal 533
      zcwTLg%}xR_6opS=U~mBWQ~cey0~ZqG#;9?l(P)SgH7wk9hBA~49Wzrj@vYow;=%{;
      zp^SGbs1duk=l1kV&b@vAczpw~jddF-hRTrN^A>;5txhDBJ`Y_R7DL(C0at$O(j5v<
      zGh`2>lKPM#-Dq|htfR0e9HcQ<Kn7WcQd=r<F&?=hy5Vjh7^>~i<3X24GPzGoOAlns
      zP;1Ww?=$3mp-&@zH;^7Ni;d<FHMNN<6V>6qIF=)!Vi_ui`fv2xC$=(SuS6UMV{Kqs
      z;EbUd@Yp<^$SBsvy`?Htk0IBWiU;zM7Gzi{pq?z~T!-VxBRpB7IGuVciM2L}OCvcp
      zb@U%pZMyA{GSbZE3vy4?q~K6>NP%5g*h8MW!WTqZMDqRfC>brIVzi2y(FH6TrFn>F
      WSo$aE8Owiz`V{2P22sCi$hA**EoU_V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Rectangle.class b/libjava/classpath/lib/java/awt/Rectangle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d981106510888548f5712ea7503b12e08def0534
      GIT binary patch
      literal 6927
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/RenderingHints$Key.class b/libjava/classpath/lib/java/awt/RenderingHints$Key.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f813f3c81aa14ce3e05cd11ded4d14ff9a3d34d5
      GIT binary patch
      literal 818
      zcwT){O>fgc6r4?*xDM_|XiI@mJ_{tN)QEF|OQb3x5l9r}zyWEKJk?vAb+I=^`9nSR
      zQmGY)13!QtRrRf7RW!87vUlIp%<Rlt|2hBl8^9}6UE~BR`|?mW<ag8fNP0-I(t9nX
      zO|sFUi3>+yDFuX5?=?R3_i11R@?U8pAld@O*Gen%R=}yYYdv0?(U3~W<CYH>K0~Xu
      zo(F*i9|aTz7Q0H*`|+qx@h902N#J%j8pyCGV`b~C>6kzz0_)xXxZ4&e9mMKT8tPa-
      zWtB9e(SbCIC3-R(v(9R@J8OTt_L+UNNJ?UV9Ahq!Niem39}iqquEgG*B!)&l*71=0
      zYDn5BGiha%8xFC<p>Jaua*RS`0*Y<ae{h^(HyXzS+EF(5^3|AI7BAqpwWhck$|Rx0
      z#S4M88|K1+IF|E-C!Xg^<|FOcc~^kL7c$2kkE<Qz_yJ1wAN*F%Fn_{T4vYL<NSQ6h
      zzhi6%OI+QVqETi&q`PHS75sOsV3q3?MyzGp4PJ#kv3`pA<4f6M+WeBr`BOk9SH|6I
      z$Ukv!mK<D5e#8!@<TqI=ufBPNf^(do6)=B=@h-!7cnmwR9G<55XV^$1S|`u(((x_;
      D=B1bL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/RenderingHints$KeyImpl.class b/libjava/classpath/lib/java/awt/RenderingHints$KeyImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84e5bdb90ab287a6cbdd5235835598fdb2ec40ab
      GIT binary patch
      literal 956
      zcwUWCO>fgc5Pj>|`EXp45YmvQP)Z9V<|7o2pk5*&A|gN(<-l!|tlF&{JF=Z1u6$m&
      zapss?4<HdCao`8=qY$$j3shP@E<0~_-oAM=_P6g}z5>{Sn}NZww$G=$#h=ElN5UV9
      zQ2M)fr5{I|_r$Z#XzXQRGSvS<V#p6gGzjH5mVwW3va87+_jg-6v7+8$Fs56FD-Zhn
      zVi4=f4RzdPNZ*#ejJFxOjm}Yxqi_G`rrBdK+rd!SNTJ{$k0M<(I?Y}VWXOSqv_hvG
      zWRO*8*+FiBPCKxXWhiu|FYZr9eGxw9eNU)Cf&uq>Jd`R=F3osPMhxrSe=L+{w#T8I
      z@>uBYu?|B?M(toU=CLHH9``1sS7{tG&JzY}x~OO4V6hr<-)J7UbbBY5gadI$DtqO_
      zZmualgVXVS5w<-ZMIy?e!BG8!eTGaj0It(=QuGU%D60JtDyr@2m`kFqqhjUZ5Pyl#
      zTNs+X>efHwgnMO<l6!TIvRgCfsJJz2j_OCM8>rE_qPfqh!wXV-i2`1sg4d|y4b_0{
      zg%;(jfJSF<mO3e<Tp1cEUnz~0GgBkw%_8O+&Lz$s5?k{xyPr^=p`v1Ch9woNGgzqu
      z^WdkmwC?gwyI4;8{Bp5Q>hx7{9vg{zOXq+^Vx<qi$-LJx&VrE07}(V31ze<P>*try
      G#L5pnGr%MO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/RenderingHints.class b/libjava/classpath/lib/java/awt/RenderingHints.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7afce724d42f9f89989bd9a8e74bab8a9a61c8ed
      GIT binary patch
      literal 7812
      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
      StLqwY53l=phRvVd{yzivz=?eT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Robot$1.class b/libjava/classpath/lib/java/awt/Robot$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90fe05b0d66d5934a63b1351aca29a954b74e6b6
      GIT binary patch
      literal 526
      zcwSvl%TB^T6g@*Ll~SRC@7Ib2LL#s;(YPU!kf0`L*iXv@hSX`&hx~@W;=-7?@B{oP
      z<DH5ju(-{==Qa2C`{(luKnG_Qat!W_zwj2HC#_-Vg-NYr!Td)9t|qMqZzlZ2LY|?r
      zM2D$T+zSLlKAFn6)+WzjHR_7EYpG;%!%(fSljkD_vm1^@0SsFXENt2^P<Bv&%V5;C
      zpgfRD+^5f;h@Spls|-S)2O}OyJug60ub{d0TWAF%N)?0s7^aagdQ!{njJ?oe2B)u-
      zh`IrfV?i0^Tjd8~EY;*rB-3zg;h3Scn(N?HuUMROne@V_KMn-ibcI2+0p_~;82ZII
      zsse06i_~4xtP#7>e23HcK<O>hY-=oI$jx3+q0XURqgCu=_%7T<N;8|Omgc+$R*Y<6
      WG_aSc_HmHKv5W;N59w>-2q(V=W@JJD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Robot.class b/libjava/classpath/lib/java/awt/Robot.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d237b3a28a568ec2282b1b0b3ed82d6ca8953a3b
      GIT binary patch
      literal 5749
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ScrollPane$AccessibleAWTScrollPane.class b/libjava/classpath/lib/java/awt/ScrollPane$AccessibleAWTScrollPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8028ed5667ab7f66419cac9a132b85646b834e5c
      GIT binary patch
      literal 820
      zcwUWCO;6iE5Pjnq42fwHAkfke2n`V-g3tpes!CDXN+63O64GO}xGPv>Y{~2Japcrn
      ze+dU#sY2qwq3WqWs_NK^5~zacW#{X?nYXk1`_J_afLAD6FbLH{aV%=$B&s#tFz~!>
      z;mcCpb*0v7&y)3!t$yBuNvQM)jlhqD@@04z-%As6T82t^Z5e76_`4f#3A9NVV~CD~
      zAGL+okwYk4eEs<=zf2g84wNpf5(>@$S?dgVt$Y=|Av|6jh^Vv)W+V74N5Ru=q>)J@
      zg>f4;CJ58FSUs5uDeJJi)j8UeVN38m2;)xRvUI^0;JBMKV}XR_LBsFc8q3b_%cx)7
      z3F21e#Y)oUv?jV0<*Debb{Drkil=yP;Td86VYH1Gm?dPIjhzpU^J%-j^^Q>bpD~1V
      zGw6h_e6M10*}nXhm`$)ZeBM>V6Ix4cp+uM%umfK4JzGGLUnIpJ&%g|ZFwBvaL?gLe
      z{7i{&@-vNb<q=0~92;yiOVuC9E>*9P|CWFz`Hbl>&QW0Bj(u)0g=x0@HSna{Vufv7
      eGrwcz@*nP(TU@itH87W)Ma;8JC+wG4fcY12u+6dn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ScrollPane.class b/libjava/classpath/lib/java/awt/ScrollPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec4e3637b92fe1a332eb080d83dfef8c398f6273
      GIT binary patch
      literal 8617
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/ScrollPaneAdjustable.class b/libjava/classpath/lib/java/awt/ScrollPaneAdjustable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61ee1732547c1834d3b71b3ec6ff2c6fc3e4bdf2
      GIT binary patch
      literal 4436
      zcwUuOTX!2*75>JSB}Eyhi5xjeb5l$(w&L2PX<9%{QpZgi2Pbyx#A$9VV|fyfJsKI!
      z$V~#J5H6)qE-myzX}Od_xulTL$T4&+VDS=K-~m{?@XQ-)!9QT}?K5LZmd1(E!<>CC
      z``h0>XJ7Q*e}DZO06X!k7@9O}o-$^QKH~|mZ!}jd*!GCwnEew|CD${?Z8L_5hSlnb
      zZ8+!qhR3JOoEJk>Lt90$_IO;wTD4&n`bN#7W!Tmw*&&LnrekK&wF=Jh!3Q;Hhc&bg
      z6dWo$-k4#R%$C1A{_gs{BiUy(G`TYxQbQs1vKm$vik9hkhDRvk3~FeZ6@3k{yyaN=
      zQeGtEf-kksTCPPB{rN)4@i;FzmN)3+ie}!F`KocdkejYqNE*r|nG9L3XF6t4!~3dS
      z%vtUPe%Br%v(<{npzCj1&Uw;1r6GDhX?c4!Z0HJgX|Q`tLu8;ZVJ6Uww2n>KrlGm3
      zdu#=0T1Pw9i1dCP>wM`0I_|_qk-BxP!W|;*(6Jh8G~6*{Ip)z)e%ve`^KU;nRLJr2
      z4L$+q!D7Ulv|J5a!x&W`l}>G4g0%nhIo_=!=`*`WN1HF*t7EM%eMm=2n5B$~iN<@=
      z(Al+&+w~3IuVXznB(N6`#IR4prfMLbICemEkCbfB${Exu>gdOQUL?(Gm|l*NWgO{V
      z#u*K9yW-t?23BF#Y&<4j9MtiUaE$tgG_;>Ly~d-iTvGSxWtfiPqZ+o|_MF&0qT?ur
      zHRv>1W9VRTQ6<l^`_z@zU5_dT1GeG1*#$}=XJdF+!}jG+*06>Q_SdB$!=IU*;LeeS
      zR92IP3}3~`aBU%2&4uHOb34wZF~2m(?%3i=u*Pk)8tGEWm~d;&9=MP*XT*pb!{gLj
      z6m!L5p%{n3Vme?r>2Whn)%5tqw5w8OhN+S+IQGQ^9z#wto1vKMs=3HfugF4?tyo>~
      zk0rCg9k=R^+u+X18KY?AeK;24uI@%7G1wZ`)i3WaS@wj4ga$`P0aJ9b2J4V%&&ck_
      zLHCP`I)Z;dhldhNt}1@R=c@T!(>1aoY!aA8E{+Q<_dTa&a!JQ0@JS|vF*9R2yr{dv
      zE~;TE;GY!-KBeP0Mg{EC0`?hJ2)^i&Dsg<4)_Z$J_47K8VKk1XN#JY`o!KL+&**qm
      zR=><H)5BJx7Qdq7q%3}oM|-57sMY6moRHOT@Gg2(S5eC^=y*hyUt;g+v8ugckFflf
      zuzW>Wp1PG|(|A?KYw|L2ui$SA^mlcP3H0|FJCp2+mkP`VJB}al+^kuYI%rEv`Js*<
      z;Y~juRN}IOFNzO8n-lm6eip+|*+c5KbX*bRG3p;R@@5=AXJ<Pt6t3#9Fcrryxp0=S
      z3mLbl2{M=22HV`Qy$C&**dHyFiaGP3CB11wSS#ukPS{49&1gakVpz#0xB|jrCI8ek
      zLFbpv5b|RyRAVw2+k$azFs6dBJs8&oBfAT~m!-X`RWM~Y)4~=?9&I#p+>*J0t(iy}
      z9rD?pX)dEPv!jfz%%(Cj*A$l?IY*AbgNU%$uE0KW+fN<`Y2zVc9>QJRP5X%GMW3?2
      zMR}kpNqlHh3_chz_!s9ZIQHL?L1uFqJ2NTn?8>BC%GjMrMa#G^lZuH#Do%|m$$Qbt
      z@8LR<M@e#+BuCJJhtb6d?!_qXVTOE!3HAWPPRO6}$yCVqSIGBQ$oH!!XjYOuLPSaO
      z3@u8Mhlnako+73sd5k!5K1^%A<BzCE=X373iO97~<~p)F=CP-YY}J#b!al|CX=0xt
      z##zO(-Pf$JOk#kK%y{L~+#3Ht2)@DZIPr7DpSTVFAq)oiS)P%5X%*z;;du=G4kK49
      z&<O=$@ggP_r0yRMAT=o<0Z^X;23iQT{YnKOsurCZ<(7)_u~6mR^~!Fj^6^mRUG>Tr
      zLY2otl{59qPlhU=2vzQ=SH2vo{Aj51&U)piLzPd4D&JSH{A{T5DMp{KyqBltS)-Ya
      zi!#oC?B}TSd`<jBEAbOm@h^tY5UYt%491+sKM+2uAE}9V@Yu=Z$8KQ!w{^T;twBvx
      zP!lTW1l6ozcsr~&m%wTZu+D{h+fncB6?*&D65h54Sm!HPlL1y*uy$^gfO{Qrne39u
      z?l=6&?y8kLRSmgDD{nJxt}_ScxW*!h`5LR~iq*8LN@8{L|G16cFL4{G0E?Y4z`8;#
      z(Kz=Grcbh1=jSnV1GC8|=5R4HhbQOoRPwSfe@^5t`0^J;{*o_0EAm%;`RgJ-@5|p5
      z`9+bhqjL@~&*9tELejyy3EX5I{sTJkF7C#A^y`nT?|))8{+X5QW=+(d3w&sje|-V-
      zeegrRm8QP)3ZlvHT}{4THLyyR^1rfB|Ba6SJ+xZARskCcuAx(1!yMk2!;gcTc+2<Z
      z7aWq;_*vwJf8GD6LGP@fzs=`u%+AjG?EGhFc9t0zA@SN-AFuzW&VQDOSNUrohHogH
      G`Tqg9c6Xux
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Scrollbar$AccessibleAWTScrollBar.class b/libjava/classpath/lib/java/awt/Scrollbar$AccessibleAWTScrollBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9816ac27a5f5cef8ee2644cbef6d2d1e58ca6560
      GIT binary patch
      literal 2221
      zcwUWF-F6dI6#mY1+DX%C(n4D-3Q8$7KeYh`1cN_mD0E<GG)YrifABOJ!?4mBotY@y
      z`WE^ET<C?eq+RG*-ujD=;2Zb^u7&P1nI>tHwz){=%-P@m_P6&rd(ZFBe*780dE8YX
      zF~slj&v}Y};iU>?$F9{jxigz7mkrl7H)}>_t=QOJ<c<Ql9iFwfKD8~w^7g`;+X{vl
      zP7C<`6b}$)&Ga6mTKE#L)eVL**KkZ;D;bV!+SaOeje*@{7|q(2>v7BTVT1o({$^rk
      z=fP(TL*8A}oju1ep?9lKll`h`nckZW$6~zz@e+fawJXLj7>=k=F&f4ICR9W)x!0+g
      zjqeoIP0LuRZ*3Y*k&}G#*6lJ0=OmxrgH2h;V@URhy-#UL^LW+pTE@IBh|b31`oRSh
      zxb!ei;6()|8D<Vgt9S{g7{Y~YKBwz<7BhK<*?yuhOzx3b@VI9b438mksLWk#TGaWB
      ziW!^^V-9fzF{)vAnN%c@WQb6}oMTe?xknd+VIUUQhVe2|3KkB%Tz*g$=Ww3VUC!mT
      zjoeBxqcfc8M=eQx6&Dp;pkwF*PRXgbgx5$TuT&UfvA%-DH$*yDRJ<-!hDuBMqL$6*
      zqBvJoyaBqyN2v&Y188oha<A@srd9PT;k&-AA|qVo#nr+(-F#Qj(&g(byf_i6|DIzF
      zT5|5tGxdSwK27e~y5rC(b+JqYEU6l|s;Nfjq!nm%-CNt5<r!7O5jo#dp^JkL?dBZD
      zGFC)i<|xIOCYo^C-9O%BtUFwMBa8x86%=XEbXrxE{CK9d8*dKpsaO~BLT(^}%4+#&
      z(eGXSjSAeRiL+JT>QE%;K2mW<#0a-gfeXLCkISZta?_=O5*=&Tow9M=6q6y+Y?TEe
      zh(XmX%W$$a?z-amr+UvBoT7<0K)*pqI1U9NS`X9LKtgzIObkL=hagkIqhuMQw~J(x
      z=sA)|KE`+=xr3wM`wmm|KSUr%4{?mvs#s$L&taOLjOd>aC>H1`Z1N+#@Lh-RlQv(u
      z=}Yq=@cl9fe<`s;V=D0j#<y|yYebTdFu#pg)*fPnmY2n{VN8GJ@4O{;lC5YbDOpIr
      zU{LxMQRz1vm;S(v^e5(}r??>f<*S%#L<&?4(kF5eSzr4#ECqVzgIuIUXC{BQWg;~*
      zxsDrw=M}&3K=dapuQ#;b+`;Wmnt$48qD`82@NPh}6cl7sP$ajJ-^QB!ZIdJ{jM6iV
      zNdL9vG#U_z)dt@8bNJvOWgm7c8;JB&_VGb9ya&yR9yAgv{=b1w{2YY7IaDG44-+{O
      A!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Scrollbar.class b/libjava/classpath/lib/java/awt/Scrollbar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6ad5bd8d08ca897f3b6b1ab1982235fdd30fec7
      GIT binary patch
      literal 7765
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Shape.class b/libjava/classpath/lib/java/awt/Shape.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..347e1609b73f03bf4920fd55e48c71f83d73b558
      GIT binary patch
      literal 514
      zcwU8(O-sW-5Qg8WwrNxQ;RhZBJ*O9gy%q%}2!dd-p1iGblcuD*l5FdL^WYEgM~Sm(
      zs3Di`Vc(sZ_n94be}2Ed0bJq4L4(j=h_&#=r}1ZV@gW`T6NW`D6)N_h-WD=6gib8Y
      zonEQ;oN(%m9=Fspm)V%g38A|+jRV4Y)fP*={P&IncDF;Vj7SuBY<fX3dL^8BHDan0
      zW!P<tE+1u<a}OpQCN|7PovGep4FjHPD$M+WX<>9mxUM6&QIsh8k_nYZI$KWagI95$
      z{AL#)>}cT5^ePMGeUeHW*oVKgK#M@wgIzBFLlZ67|8USQv;())ZlMS0mD(@!y;3*v
      Q0K-xbxg+6-_Xdvt09c8G=>Px#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Stroke.class b/libjava/classpath/lib/java/awt/Stroke.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27e2461f929a4b8b2a122850cd1be5d8e9d9ca8c
      GIT binary patch
      literal 168
      zcwRg8Z`VEs1_nb0PId++Mh5<@#Ii*F#PSmT;F6;J>{NCJ7DfgEuwYJNUb?=2QdVkm
      z2_u70a#3nxNh(B9N^nMEK`JAIl7<gLJ4nb{6J3Cjfh#z_v?w{%Ei(tGgBxOi9!M1%
      aBLgD?GXn@P0xe}_U<0uj*nuPy0|x+J$SXSl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/SystemColor.class b/libjava/classpath/lib/java/awt/SystemColor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dedf23c1ba97f150e5f58cee18de9b7ed70b2ae7
      GIT binary patch
      literal 4272
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/TextArea$AccessibleAWTTextArea.class b/libjava/classpath/lib/java/awt/TextArea$AccessibleAWTTextArea.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73aee8f1685b56c489d21f0933fcad41a4e8c98d
      GIT binary patch
      literal 734
      zcwTK%%We}v5Uk$p#^9`plaK%j&k%{kk=Xbc1tD2RNI@1C8*^oBnlNZHi+09&9Qh*P
      zfFg0=1M&rY2}eZF;+V(!GCeib)m`11^PgY80cc{qf`IVgojOv9I(A8qPh2Z!wb2?5
      z*;+kFx%IMl@mfJhX#SJj&JN#ahK(yLCKRD=IoB%fb8dBJUhF?1&@)1<of+$taebAJ
      zINE9c_;C91`+dT!d#mln4q>TNvbHDmBW<*MOjy~R!f*8nVLN-xmm!^FR54e@3>IU=
      zSR$<br<vF+g!3J3`1$B?z<E!}EQG~QHWceh1`s@c481|ZR=NH3&57yd19pG7u2YV?
      zEW2rJ{;qP8s4=Tk?M{<&?w%iGEyi`+AXK~AC?E1u?d{Yq`aJZN2=Tr#oVQbDE!zt2
      z5*A8E#nDu&xF>6yk>3$u6%l3yRSI;eUiZ5!?xF0mCd?H<yMhCWbB*mUm~U*KVc~O;
      zbXCr(r-A{Z;1!ky$0Cwctl*kN^0SP~BoaLrHO{d5X;Q%VNATt^aWobOxLKUHaJy*a
      J<#)t=_zM$0u!R5s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/TextArea.class b/libjava/classpath/lib/java/awt/TextArea.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0729f1517dff374758bce8cd09ffaab9ef72706a
      GIT binary patch
      literal 6781
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/TextComponent$AccessibleAWTTextComponent.class b/libjava/classpath/lib/java/awt/TextComponent$AccessibleAWTTextComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..717c63720bc1bb15f13f640f8742f43363f2507f
      GIT binary patch
      literal 4191
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/TextComponent.class b/libjava/classpath/lib/java/awt/TextComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66928c35edeb179a1fa60712409f7cc5276b2963
      GIT binary patch
      literal 5979
      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
      U|8M&Gcl-m;=jEgP|0fFm3uhemVE_OC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/TextField$AccessibleAWTTextField.class b/libjava/classpath/lib/java/awt/TextField$AccessibleAWTTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b73147dd7f3aa2a3b68340d86c088fa5838a1b75
      GIT binary patch
      literal 743
      zcwTi<O-~d-5Ph}GFt`k`A|DEVVK}h6i6ckAn2<Fjm<^X**K@N}w8_w8rh66tl^zU<
      z2jiJL;lMB84{$VAPd4Mnu9vQU{pwY{s`UBKZ{GoI;z@)Gp?<7Bs6>5qNtaLEp62vu
      zeYf9dYxQBuyKlPXbA*7f`B!=?J9(cOHf~f>QiPi2T&uLlxz(9@z5kLxuLv`(%vh(4
      z>#20WVejC2>PNJFLzr~$v|WEjSZI%$+Y$b`Hrl-)EN_fUsP_m#D?8#_klrz>n66?1
      z^D$!FA*}u*DvcJxxwbZZFgQ8nysKmy!hAdHi+Lp@2p&EL-XftnrvHDoC%zZovinVT
      zoO0Y@*-vAmUeq~F)R5JwcAt{b+#Ns2YK*(MN2qqPLEh&*?G4SAjh^~agm~W=&ReOn
      zmTiQ`GRUY`!qRxRSd-mN$Tz8A1tBH{MFpCw)%-$>dmsy)5oT7<mf(uS=|=M_<{Hg2
      z-2PG|Ey!8*6kQ^u3oHtbMI@<M!m>p2;|$9r5<M3-&am>iEa3ZtuKo~*LvaQ7i}L{<
      M7LC08k+=_j0ag9AJ^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/TextField.class b/libjava/classpath/lib/java/awt/TextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f99e266949f0cec4c84ae056b65ac333b0a0d247
      GIT binary patch
      literal 6258
      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
      CYCFOJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/TexturePaint.class b/libjava/classpath/lib/java/awt/TexturePaint.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83ff9e1b6d9226d6dd2b363a2e829fc3588067b5
      GIT binary patch
      literal 1491
      zcwVhk*>2N76g`u@sof=QDTS_VP140Qz*DQDHV9EEEP^UhA020sI7)0Zu}k?Det`#&
      zD3w6s1NbP!ory6?8qyaYGIM?BoV%R4lb^r7{Q$6oM@d8&=9=cIX_)Uk<Cvd$zTmG+
      z+wqc!F-)nWmg&@umz5^B$eUo82nh<wko3AlhUHRtX1C2cHxB(;jSF5ql3%+F3DdC}
      zu3)(N7g^_S+jvdUDNl<Ro=Di9?bzNv!(MiD#1T<)WrkSMt@1RYnA9+iDTZh^R~`dH
      zMne)QY0YXFLz-c-WIOzY->z_RY*t#-Os3>oW~*!pTYd-5nAfm74D+R-s!{2wI`>p<
      z46E7PReI=zK2Va#(ixU|DMN(OEx}EX7hOkc&hX)qK1H|Xis#gJt4EwL$SA=Ejt*)y
      zQsh{ePN(LIc3(87%7yLJpHa)5-JXh-2tjeXNvtxg*B##o&!thQ_DL3?(^$bRc}ce!
      z8a++*sr!E$k^>U4+I_QlNkay$%1>>JAG*F%rJJ7}Rs=)Z?{M)46F-v)7*?*RfRGI-
      zA;ZEy)uqX#8Bv_Krr?hCUQO{)8uw91VuxXI)QoA^!Zwxn#`T58pW1SUr+Y=+mTaui
      zONi1hjtDaHY0w`;Mm`MM<K!QQMypO=CxnR7KAFG3M1JEO)A`MF%zP$S1apcOqxCVZ
      z2Nd8C6DZ;uc~-kL%;P$sESZKWOD2kty?`4*8iRIu7SDgd^rtX*LODw+pw<Nh0qGjC
      zID|YiNG=a0FJU<#+k{Kdu7AhMNq%!{A$Eba!5~c)WWNgxTheg{ch$L$dsruiw6aL6
      p)^+5NSK{c{z^2lbE+<G^2x?BrhQGr2IFQlnDLWOG{Xn4}{sxo6V%-1$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Toolkit$1.class b/libjava/classpath/lib/java/awt/Toolkit$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74fdda086e5cc0ee46606288598130985fcd86d8
      GIT binary patch
      literal 616
      zcwS{uO-sW-5PjRGjmBuT*6(ldpdPFu9;6~jRS@C_w0Pg9Yr7h=kZdabS9(%B_yhb=
      z;v`0mdf3d)y!U3_Y~J2qUIA=l#YB#we8YRZ%I|fxsg!ps_3E|>gJCqOd))6-FIqRk
      z)h3Dzi%B&UZWKt}uU-bSCq2;-?L${f<uerbr7!gXLw;@jiovL>wy==LkPQ<93?)bU
      z;yk)*iJ-|_o*)B`a=CZK0~zOO(a>EPGE|)Z?rPLKh-g%0ZQc26vSwi%6DBGQ6F*qp
      z<6-D1-WGw4NlcNpBXpx5YH^pr7-oL8%s@2MYN#l1#fgml*{Pk)m`&-a?~5Se3$k50
      z_FYef((jxJ-BoQ93ttbKS;fW@mKny#%8|I{k*8B2vs#8;!xm_DItBWDIXd*9lnv5t
      zha#g`*m#2Vn7}rDt(cbEg+bsj<@P5DBPdZMOBhQVY^Dv2XOthl^~JcB+skN;RGY_i
      T!kWQsGUrnblrfjE=CSwzrJjcJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Toolkit$2.class b/libjava/classpath/lib/java/awt/Toolkit$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6fd5018360c42bec9f0bfe4a44a7ed3a2c53ca7
      GIT binary patch
      literal 3538
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Toolkit.class b/libjava/classpath/lib/java/awt/Toolkit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1156a7835b6065e9d669a787e48188b429827776
      GIT binary patch
      literal 14310
      zcwVhq34B!5x&OYIJDFs-Ko$ao5DANt4Fbrb1kfaa1QUoPfPhtRW^R&!$=q=kAXqDP
      zucB3{ZLt-*(^}giN`gjNTB~jCzG|!0YWKxfYuD#{y#G1(&YgQ_Cc^9Q@%u67&UenY
      zo^QRAZ~V^_$BAe@|HDrnrsD0|POVYfm2B)bjL42~(oaen8quPCjq7{1>%k<`gpl5=
      zr6S3zlIFRqqS}DYRN9_7+LerlqkT<Ge(Q|A?VyisUo39K5=;}#%~UcRY3u|@k0--=
      z0tZS$dSXY?h-H9G;~j@Pv=~kmb%pz)S~3-f7>nGy%W|b^&sM2v1!$BxI3>DLv6vBu
      z)HBS(J-QZ6q$L|{?FX)Ioe@GpsZ~4mXtF(=Na|5N4k2f6%jm0%y~gIv-L6BRwtEoR
      z<0Ij|{^TxQe0J)3oM~2jUo_QdqsIVjyrkWI3W$Zvf{}1EoLs@=t*PC_q_i3#y@)EP
      z(oa*EDg~8bL`x)MTC%^f)rj_n`%-Z&88)ISO{D^+$?2;EpQ{9)^qm$F(>W^nsK8Iv
      zxbl406QF4{L#3HCk*Q#rltiGNt5OjK#5IMZ`nuFWj~?&VdLq(8jGz|Tq{YMHy95Tv
      zOEdgb2m5DOtkDwvNprWBW(b;dR2oC7pBkB}&vYRHnoIMASPPiSYjQ8Uc9WpEP^Ixy
      z?5D*r_t{*Oz_~!B5-NqAll@^_u^No)T2gOGC6h)JGS*~n+=MmNw!1IU1Y6fP-bC-#
      zcPCee^+<^6d<O*^oI}LkvFMC3>9lJ-dW5OoK|_La@Fmp34OqC)l&RK<3P>&{fEMC7
      z6S1{l5ANtOb~DX)Ag7@@1kxLB3v>nJMkLas#oZRL!8v5?9g9w}lTN1=6<HvMkbsXu
      zNo=|G5;ktelUuJeH1Cy&4U34HHjWVv>Tbs{VR;NA!0roO9hYg<d7%=NgDjz0thMM)
      zEs@1q!g5(lu$#3oNR}^2P!6($x>;`yM?=OgH)|7?gKdJ{=qtlo#OQOQo3I>o6KtW6
      zHPJitXsShcQlkUk0_G5~;O<xuKzA$%NM2mG8+RJ9RLsP7y0Hz;HC}qh?Rx^!medE_
      zzL$pP6+~>LW1&w^b{MII-WKgO1dM4~O%9IpK$D-~=d<MrnI|_!6J{pWL+g=VWxZIn
      zJE+IRLm>r`tJfLT1A<0%7(}WC&A9=(nskwNd$ZE6Rdq#yvI2E=IAY(kGf*?|Tpzc$
      zEIlW>6Hvxz&3O{hsK(1a;J(pTV<2WkQ3>2)+Tc71(p{rP(Lkv!qX~YBp_w>ySr3pw
      zGf+;GS{xUN!kdpR;uM>!ji}Wx%*kW!wj2vu$Azb_)MIfy2n|tmiX(;=>Ka6;8)!8m
      zhUi^<HQU;1H+fIf6<6Sc_IgjBJbBW4dhg!7;wy=dyS=AhdF2)H0TtDR3*ED=4P+B~
      za^)a8!*H-&8#GeTMXA{;oWLJ4!A!grJwZ6(I@Tq$MmvM8@~o}qU^2WD8F4I>N8;A?
      zXjga-zE5=e_sZ~q9!<beMN4NN+@L3nNJ{vxBo6t;+k0(Mh?;N*?Im$7)*lWgTs@QX
      zx=kd6&OIQN1r5;Mv|mKR2cT?C8~zEkJ$=x)`b;cL?W83;(99tTS2?u{4`_XQV`kgo
      z3T6#2uc_UZ>kP;()~OC1kf7*KopEQlec5pks7him3eihIVWrtEcBgy#2~OG4UA=Jn
      zkE`UT!b18a<ip-vtE&vqr|FQNK7-!U-J6>JmuW3k`Ye6U)GgiPq5aC^=6Ui=F33-x
      zhofZ+I%|G_9-<im`XU|n)0ZHVJdx0YsdzX!*w`El>Irc@Nzo(dag`pSBXIVR(HRf#
      zL_X>h;j_>Z%0|m<3V+Rbjk5*y(_^@*47gPoq8)K462K50^V4wJtup&6Jx))+qk4__
      zI@uX4&ts3R?RlxXgplwi!RSeqo}%Nhb5!32-%V;!(XZII>K6GVe89G$=#k@bBkrd!
      zGfm1Cqa_uNNL`+$XZ-Y4*A!`<Q0ZCv8kE_oMN;~Dl#KK8b?UkL1?Uv%h4dVvzB-(!
      zjvC2otvZqFk*-v2^j3=l-%{z@^c`eTEf&+Gq5KIlm$)T$Qz3oNl6bE0-R`vSo}wS9
      z^h5d)Ca<JnqGTJ(mhuE)cwu^8r5D6_R3fG$)1ksW;RyUBKtH3G{PZHz)SQ&CD!MZq
      zH=;;nNtJ$1w;^MP6KixW6al`UUSX=stt9={eq;KeE%(bbqmW)>sz9qJ3?>qOH7>B)
      zipr(cLf&7g^lSPJW@#a6tA^sv)ZnyRcYoa2C8jc$=`v71{m$jo*nuP~QAqp!^oR6-
      z=SD&}xnCl9f=GFjMsZ@~?qCGDt0c#nv19aXcfW(MoCxJCBxG=tbqI$OEHY<arLYI7
      z$}(9l?fBR!M0RQu2^k~g=nf|9f;a_?YU@~3Pd0Ac(4Oyz)qz`dRn+O27Egb5mM9aU
      ztu4DaNcj4mgdX21;(n`WY(<yzpOZkfoL7_g403ZQ71ZPT6q!)7ttAJHm|#Vvx7jDk
      z_O_O`wmg_hNK0y>jc7?%fN(Uq*63mC$eD$5&2B=n-y}KMq{)F(|5?)$CxFwO1h6NS
      z1Vslyi0#<O$11=okMr|bcP5lYPv!Ak49^w)h*d*6v?xf%9kt&)@7@N{Ql8-FGDP;M
      zhg2>X`KL^}Kw2C#5g{;o%@MOW+X~o9hLa*Z{o75YnI?~B2n0gRvH&C*)hxKs1lse;
      zcTfmd-=pg>%NS-)841UF3@wf%KGWH32p37lwP>PObn)p!O-|G<J)#HAmT#gMiqPVB
      z^<%0DrjnQH;F;KAo^CgSJ8;o}b%CZX`qZ}Ct$v=3hCL%|8(M%qEz%tCONqQ}&qDz|
      zPxKI1i>}?jLmw2c;E*&BGo^_<w0$*gvI+JGu>|*ZnrLc8m!XBD;?C>NG-=pp;Q$MG
      zp`XupHa9kk%8Ph0(zysAWDqgLxEkdQ89!g(reJLd@=H~2;$=`xkQrr~v{{<dB(H$u
      zx=*xczu_zjW=5-0YuHL9lEy%5DxNTKU{y|<ayXU&Hy*w7lR8K;kfoJriVaOy#>_Cw
      zt1#MOm<>wiSOgk|+G;IYoi3==eO6hn)-!c^Zh%_|_gN6M1TM~&7dGoRl3g()>Dn}f
      zhm)E0PIT2RdLn5GY|b;2Yg}nDGtm_CdUU}Mw+9$$VH3bPD~bJlne&=$vH|YoE{rSO
      zE!|TNE8|di5Lt0Ov^g9SwR5};SR=2|iYaY(cpzn6TB|kwVQiCGM0$Kz`b`38Cj>ye
      zG(LoKjZnd7Nbj}AG#Rq;wd-XmJq0UFa{5_jLuS3JRn|mWn=I2>v-S2}?wh$y)R~~l
      zA-)oX@{n&Eh@sD@v|c&IwZ1MR6%WcV)OTAxy4K->p=hX49J>UDPsMdf$mwrl-+U*P
      zk5-e5l|^HN9yI!*xID1B)!9Cn9ZfE8ldNMSlO5Vdl{EbhJ6qVif<Vsw%et4I&B+xx
      z5-;oSZd&pGFE*&6gNZwg<q0KRbta1uLQ5nUgr6p}KMr%m{vqd`c!{5(Tt83@#&qkK
      zi;4NQHB<OX*H2V~S+h)@al`6N$M8<x?dM&X`Q={vCo7c)c@Kg^z5qJYTx55-YRuwq
      z4u_)p<Onu9k6?MoZxZ2iy~+tr3K`$4@(p|=1d55bI2Ys*=&VEx&|JP*<y-hxNY@*V
      z>+WA~m@Ygk>GH{o76cRQCNWFm(TIes$BKxyCmb0R<3o-uD#e@=)*^7KmASt$R%oG+
      zTfVfLywiJ#e7{O%TzQkQ!24C+$9D>22H}-6&jJq<Vq70EcIx@}1<?<ve6Jun#qqwx
      zeJUY5DgA2b9oY$bA6EH3{$PGh&zi_b1d#(s?=WTdPijo(I<jm2pWT|))^76ig9twR
      zAdYnE@qut6A&d9NF=a&L>29Mr5=j$C1o$AvZ`6rTsr+gFjCh|b+g}@1bk-*O%xfEa
      zQ(n{}{;bNM<A=-%BqMfZx+=+Fb;~QT9#;7a{6$0~u;i}UXL@UD*NW}KqRu`dv|oEh
      z^&tkPhDTL?jE|yY(&BM#FlfXEGcBSs2-@<1WGOF<*uqagBTw+rGg9+f{FifrkrJ;_
      zIBfo6zgy(EGto-_ye%TL)5H;v%|Z>_sp-<WelhFJej&8-g`**TH|`&H&OVS3RMKwx
      z4s`tdEZW&KoRZ~47=6Z>3CeptE5_e+{oXBYB6b7(9DiH5$al;sWRn1VPv!6P58y+H
      zqfvg*-YU-hNaY{Xo#K5hQknofuks80Q~5U-mep%&w&lUj1M~COL1;jFL3w)~Nt;C5
      z7BPCX$jY#Ig&XXbDvB8+qkdX(>B_(0*Zlly_B%wet@1C0+&=L-Wu-XyYn6Y)zeQP;
      z_G=4u8>T-BlgKdoy~=;!ml4<UKw1LPWP0?SIj?J^2<QU`v{+jdHLOEV_8Xx!Xk#O0
      zE9-nG5*}#Gcc{r3_U0d*bp7A4mSr${(H@$=8>dI)rn(id`<waRR4)kd8)Co=m_3g8
      zF$^ij+MO$o<7-<Kz9pLzJ)uk|I1CZ_DIorc15W|*MqaK(_)j!J{6z&$jm5Kv#^L*T
      zDkkx-gi0l>3^1bgz$&MSI5`R5mIE%&9HGgNQq>4e+cHekAEjB3NR;#NSxO2%<6wUc
      z7+(vbQJO7x2}EYvq<V3VvCgU+rkc7Dss*L`qtt-Mxmy66ca+Yr^FBq3j?$70^>d&G
      z(LKPu4vM`8Lhl8K_fjS87r(ejPO3?lE))tY3N583xh{kFVqHNO$@OAtmTL>O%5^2J
      zlIv=^M6PS7O|EO{Qn|KMhg{deC}QoT%jCL&y5!nT8|Au*Hp}&L+9KDjv`wy8(7Pa)
      zLRZpNmJJrdN<!Aa2wlCUv}c$?Cu~g%#17`1j79-lqdw}FYnZl6iaRJ`QS1UmVd+VA
      zkI}%hG!E7@VAyMp(tv;*w#knZ{=v7BpKqg5exGDB(L^=b$fr0Zh`}gHDKOY6p$hGy
      z-6lJ3wAk&h_m&Q>uUAU<tgrWZ*4G!5Uc0{DU;6I#^@ZZ8Sbi_|W2d;V^g4VN$<KfU
      zkCD%+d>$*G$CbVZpX0^xVnL+1L~fSK%`yR=P<lN+%jM=o37#Y&lS}vFvjUKe&qU!J
      z#GfS}e~tqD5RK!{QyD)@llco&#a~3e{SwviVe~AI&_X^!OZic{m>;9ne3aUGh&J#r
      zZRTV2E`FSX`~-!0grfW;CHX1Z!^deapP*a#B<<r<bT5C|VaolsDfh!iZ-CL5Zls&6
      zyIMq6RAfXoFa0?O3ARZv-AuROQ=wbwHj6}qBnfQq!&x+b=x`j5MT6;mXMy?iTug=O
      zcDh5Z`{+(d=`MP|Md@PT2}#uvx_gTk|Ay(_!&x-{?a)ZIHB#w5`XKy^=|l8kN&Nub
      zpY}6+`v`s1@$CWN6V=i|deHK|6jFdlHXk`cAA5%U_&i+ti6c~Xj6QYg2t5S9fA|=E
      z;UqoUUZ>O_qoW-SLo~8(&MD&iY32x>*fK(=w$vS?uME@IOTRHh-z@zuK8EP~!}Q}5
      zb50Wc;A6+=CxUK!{fYKt^wR@WGD0td@Gr0>;AtwQuYyLMjor~uKSaMgNheOoM5<8_
      z{Z_6z{oXRncA5ekHBf<P4h1}oq<ZGjc&uffMKr~;kfwW<QH^Ig&GD?Dg`SIOjpt(O
      z#M<p?rfr^9y3(_fdOWKs=vhO$XD#)5Iw;~<Pdh!Gw8zs;w|X|xU0Cn+Y?8)bgUnfm
      z>;I!H2h)-J{zR|CkTuAUf2O}csyXn;H|R}-bP(VEN^fDe7qGw4-|=)W3dcX_pX9++
      z{EPlAujF6!Uvhoh`u?`{{lDpd<a(OTt9zSSI?dbcp>!cpq%#!N)qCrY53x7PV?3X7
      zcubM)F-2U!e(5o9vrmxbLM{@du?8&CgII-%CC7NoQeTDd87i#s4RHx)SjZaX`33nr
      zufq1P!S273>{ghFHoFp@$dhCsl<;KB%}cm~r^w=3!j(J~lzgOe6`w;sh%-$%Db{M9
      zF2$O`)3XDPvsCpK<_lGxi9pN3^ks#rcVb@5S$wXA*$=3Yc~)idga@gjvV`t_kV>)K
      z^B|2G;q$f(bIl1+dxp6-Q+XyrBl4b01>W;$tamm|@Yc{&Z=K^pX4w{+#dTaS<l_dO
      zV{wh+jQ2m}dI7jz2(C-PwFz98ORm)>y&SIMX)cnY2RG2j^DO??TlSh?H^lQVt$P-U
      z|8U(YUUEN;k&r{DU&ngkDPDfShP+sJl9yyIrcU%o-b=~nT}MUU^)$xYNu}NmG|AgV
      zQ@k5#mUlDNdM~F2?^eeZ%;$?xFU1vH%*~cCL5MDLRGG{k<3_k;OBt^m=G7-Ss~CI3
      z(0x0Vcq5Wzorz}aT*jC18p)=N+jy<Khcdnto`4>L+quJHr~yw{tJ2AEonSb^oygC_
      zydj(ME->B=#(NybuCy6f@<z+pmAna02w~ow>zvtj#CvmI=e*o@&c#?gc`@&CxSGe7
      z!^2yo97W=fLnxg_%>JY32>QtSA>NuDTMszX2yc_|EuOBB`z8D?zS1IfnI(=$8}0Qd
      zCm?qfyrU;8ZFrv~1#M}e_c*EElMeFfw4u;gnGVo5i8s(P9q8OEweMpQlCtOKuw)w}
      zGh3Ny!RrwHRYyv4T46hqwV6nEaKy9`55Vud@+k@%De}qS7(D+PvhRSmb6hH&;H0JW
      zMOK0sgXXZI{&7xuDBFU+ai}=P7Gn%wEB7bxyZJhc*fn4*SXYUgc+WaXvf**w>!r<j
      zKEHlW!w}z;H7Iydj=X<DY`u<P|FgsKt87+P(#csq-G=hy!M921SVf^y_;y<t+n;h0
      z>|3MwlSx<MJM5vPo=9@aZppm=b~rQJ&b*J)VbBg?#03PTrcm^*426JT>^)6I&?^&Q
      z0b7uOtzdxf=6hs--8(wv{aKV1A1D``HRb#GgBIllWQJ~`pghDM$}*cW)}eEut@C|+
      zfHK3NS;K{7LwtWWf$~vmxG5C#NBIGh6yE}fsN)Ak%~mRuXQ;G78R3IST^}3fPYm%V
      zy^DR`#RZ4x0x(-rUa(-PzrsJnhw48=GnK`@5n8lGeE)p)d+Ue!OG^vQQx%0>hp70b
      z0xmBQfa4!O{dBqSep)JySIdJYT)7%^=2E|S_Ez}45_XJ_RDj2EB~($+RafD6jiIu6
      zQ<k9QUqAunLaI=f(^O>z%}_3;dZn2bDy_6cSxqg<CDe*_wX%xVC~N34rH#6APE*!V
      zuW}g~N+(^TbkViS2D(n^rkj<GbUW5Nl}+>^WivgXY>_tXl{5Q6+lB{u2tx_Wr(+mP
      zJSd(A_z7ekg{IOC7*K8jWE!>blgI}J@atNB3Zsf2ZJ^30@KlI!ZIG}6jMCK@UrMpd
      zd<p}Mc_%H{5xHj{?xdsP87gUTU5ICecd>Ga&XJZ@7Kl#EypN)CWreW1!sUu(^`BRH
      z9;DT#sYAllO4UIcZ<<^2R>9O&*5)UuLOfL|S63(|tSY30aG<V2aoxZsD#s1%#1y=X
      z3YFb7QF%8_R<5ISl<R4>vX|y5H_-XYjkFlBR^>KW{|?%q+z#vSqsx^$DWu#5>%X4{
      zmAmN%tT!w7&>hNtyH$qXwzc<J)>h~?X=4vf#_;zQSk{X=StD(%0CT*wr;oa6iL|Ez
      zdp^xywZi2F?1=E3XBC)|dY3(=vQP0d9nvffwi7mFqH2n`59Kg)egrxnfzC&1nleOl
      zm0?Ht&$H`LgOrxx2POP9{<;kRr}-O}JkR5VxZhsLvu+OLnd6dYgrD0YWf<mfEmaVH
      zhfre0UHcXw&Zb>o^nn9ZT%p*Y?{2=y$K^ij#-Fc16c6zaq0kWj<Rt$rqs4h5(v_b;
      zi|3)m3((?4nx(u%b;`@sq`ZQgdWkkFuSty-ilz|WpT3D+ei7a-ZlXu(=0#K3f=c(2
      zwEtXr6FxD+^2?T%cUVQK(YyQ*%@op2U9fHrG(f_7<rx1;>QOic-+p(Kho@TN|1{%h
      zrqSO-sJ}(3@;9nd{*Ewz6Gs21qg*xGA~y0L`A@PGHAr#Lo6<z-7+y32uk)YDdg;c0
      zK~TS7m!5?(O^Pv^-#};lS4^&(Gg8P#%~wQzUm=b0-6%Pm#qKTn`8WPMiIVD}ha{C!
      Ie#2b<7i-;eIRF3v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Transparency.class b/libjava/classpath/lib/java/awt/Transparency.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa13410ccffb875b9c82836b1a45beadf913ea15
      GIT binary patch
      literal 262
      zcwSA9OAdlS5Jam*!9TKa;SF>n@d!vXG5!VIk7QyrWH2~ryqXIS;Gv8&tXRJ4&a3Y4
      z@BINVfn%XU=wI1`x$G(3Fk|9=V;L9m%R-gVD@F+uXLozL@>mkg?atdrGXgCL9X}O!
      z$%H(zB<F^b62Y1-!nGGHH7b28Jb0U675TGGs3U`5pSdh|5scwT>6$^BXEC2&5>9Z+
      o8)JQlsY+2OFhC8aB1?CmuDDU+rs7tK+aUE!2VH$2>>}&^0dtBmvj6}9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Window$AccessibleAWTWindow.class b/libjava/classpath/lib/java/awt/Window$AccessibleAWTWindow.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0bc97fd1d21a1eef9ddb8b75006426be958d7741
      GIT binary patch
      literal 1243
      zcwUWD+int36kP{~PJyXhdb9P`3se{sTD4wEV?wAV7*Z2K(7v6*sK<;mkvX*b;$Il!
      zPZ({qO?>bJ{1`vMxM!fWU=w&b=j^lhT6>)}dw&1@`3t}rHdXi-mS6Kdp5yy6R~J^(
      z-cJ-74a0H7u4xqN)y|y?g(2N5EZUaj!ZKR@wY_VGsAIGQH)}@A5w`WTw8g+4F-%a2
      zBe^AO+-w_xjSqi5J^S)8!7wIY2`9125GxPJ$y0JuSVG=sm`eSZP1hKdqTMutpspH1
      z2#4TDT!V&5hS^hyo;(i}DbsPg{btu_RXOQrh?ngKN#-P+;_jv53S&qPHa^QGk{Wwy
      z$dk+y+of1Zr9Je!9Peg?DdhWHe_cL^3%I1>BE!<~Y7Lihg`BCEwznSF84{y(V3_Wc
      zSCL#A6+<%ULnR*9=3RG}H7sB;ge0!2SRpS5%+ZiSnqgcxg@zP+<bgkx-U%Xu>ng5w
      zM{Y<j4O!&qg@t0ZRC{pz1%`k~-5PGHxIwOuP)_gBa0~0Ck2jkPsnkeK(mSNfagQ_^
      zBSBo_7(x}h-D(&Qg*z4Dj#XI~&7hSm8qA`}9mge|JY%}BNE7a-AJ>O@1TaRC>P6$x
      zs5|y__CukupP<Y+iq<LTqdlx=ejuV}ju89i0j6km;lK+_)2eyrFlI1IJHvU*bt$s6
      zyE)|m^Ir$B<|(Yw!!CF-UF`F2`#JpxOJ)5#B8NzPMmTc-{Sd45%n4zf2!OZrsum(}
      ih)R0oGaZ61d4Otf;||gLaM#1$!v^gkPh=8#DE|OlzdA<%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Window$WindowBltBufferStrategy.class b/libjava/classpath/lib/java/awt/Window$WindowBltBufferStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03433e90fdf227c57c64df34cc90bcf7c0ff7d24
      GIT binary patch
      literal 947
      zcwUWCT~8BH5Ixf^EL~P8h@eoQ>I(f((FdQ__`oX3CXJF{YT)g*z2G(5-DY<yG4b86
      zU!#d>B8fl1A7z}|YSXj<d6+wM@0>YjZf1V{{_zvQL)<fwA#A@9Z^e!{O?O_Yuoay;
      z1GgKbyWQhs86TvvNae{p6Ip^Y1bb1t6NNHNoe3miI(@AY=K*1%HpcF9^05k4`h>7t
      zn#lS`<vJnjMJ<^FVb;bJrcGQStPP<9F;8?vLj@{TGBGhvSRDfVwm6Zac?)w`uwi16
      zxl1gO!xENFTqBe&pmp{F)$yV*<zFT?R&br0_g?J#&z=%0waZqz7Hq6)`89$Z`SV1d
      z?&Wg-(<|347+BYe8-zzAio>C~{zY`I9>RQ0h4Oi~-H`E1(Fi1Au@*H&P#3Y%_rH%>
      zJ!(REe3a*{5ifuhcH4tTE+n7FESgOjNDXN5%Mn8kqHf%jdrC{p4yf*H1%mB|A-5Zd
      zB+-+va;Ia`gq3r|QRJmEc=;)x*PEpyHWM@Ka~!?rGs}LfQvD9AQZ1apK0L$R;d&4G
      zfBqY;_Hd(z!dFISu*v5JbHMn5DdPi7wi)9imW)p*7@x7pagi~_zVa4s;ug@4Zo}bv
      X9o=CwINt6vmQZGIaZkKwxQommp+fz|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Window$WindowFlipBufferStrategy.class b/libjava/classpath/lib/java/awt/Window$WindowFlipBufferStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f24d47d12031a2fff39667de4a83c53b35fcd14
      GIT binary patch
      literal 972
      zcwUWD-A)rh6#iy+Vd=8k76B0|pcd?pf?jyF#za?0Hfh8JQi6BWGT@l)Y_q!+eHs7W
      zKoiqM5+A^aGM;I5Q)v_~X3yVuzH|1>nIAvDeFtzK8#WAv$}9ewZ}O9Lb6={%=%hRp
      z+o9|}=^Y)3csGrCDvsaUuo%`dv>$c4krFB`k3$(I)0Z+S-(x5?&hUE_d?=MnA2G~T
      z#-c&B$>40gX^U<uBbC^gCR~PkyuX*l7%V?J6ge<lb}@lT8wG}?3_I+}=Uv{Cp-iP9
      zvKfZO3=nkqu^5dzC}P%yjXC13yr?#FxQc5w7DmT3PCJ-@AE}h4k+@jI68)pU^E}vk
      z%1~=uG}CjC$8}wPnL&(<W~@)|VzKk;Rhte>tm=w47#@sN%r4gp{zvEO%gQ&T63=>_
      zmWcOwD-;Yfji}ATCXc1Ie>*L`5r2*2oPDE3aa6A}bW$b@$gvys;<nh9nsIuVxuFRe
      z+(0SnF62p~FZvEOcBT@;!oO-^m6ph)SHTJey-8Z5V`B;ia->;gJ8(&h$=1mATKy|7
      z)#{~F<PT0!Jh1w>@<)Ebd>^GgRz4Hbz)kut6C2D=m@wbLrZZ)}$E^7QCG#UzNWVpx
      fdBPGi%2)#i+B$BN&p>6sQ$>xWL%lH6aTmrf11tvZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/Window.class b/libjava/classpath/lib/java/awt/Window.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc4ba0d76984ba13b446ecbb310dd96d3b7f853a
      GIT binary patch
      literal 17825
      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
      NeG4;FaebTA{{tSXx`Y4#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/color/CMMException.class b/libjava/classpath/lib/java/awt/color/CMMException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03ce7757263d6aea16642cbc743357bc5a823b6d
      GIT binary patch
      literal 429
      zcwT)^%Sr=55Uh^LuB?f9Xd*;Bco84q;yId2R8Te|MsuI6Lmb(i3A?lEZ+Q|t_yPJ8
      z-uw%(vx*9Wm+J1C>Z+dS_s1syJ6Lj2AS_>t8{vyv>xU*XiQnt@5AH%avC3!{MM66l
      zL_&}KvrJnR%kOtWEtQE9(NHES&lgAg1Ue>EdPb*KXgd^9CQGMlZ<E&-r%7;jl~%S(
      zXs!o8z5|;mJ??A_3B{hdlpba<UxtS{LN!oYo@DVzCg)-lNkStqAx8=h=J|^(+AEb3
      zR)T-N(;>LAOj9w=UH;?~yn)G*P#&tOW&QW=_Ee2k5T6FdHcD`~x;zyy%N<ScWh^t(
      pWv;;0+1z?S<v!O`8NHm{<J~T5+_gScsG|Yo-2xVKuV%i}`T!RgWOD!j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/color/ColorSpace.class b/libjava/classpath/lib/java/awt/color/ColorSpace.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e6542bbbd8bb56af6a551558076e2dba653e49e
      GIT binary patch
      literal 3046
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/color/ICC_ColorSpace.class b/libjava/classpath/lib/java/awt/color/ICC_ColorSpace.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4dd5cf3ad7a552d6d6f520e849f697b81b8fb755
      GIT binary patch
      literal 3606
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/color/ICC_Profile.class b/libjava/classpath/lib/java/awt/color/ICC_Profile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e698a6a88937323ba578f82db04c15b0376f9eb
      GIT binary patch
      literal 18802
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/color/ICC_ProfileGray.class b/libjava/classpath/lib/java/awt/color/ICC_ProfileGray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9cb948845b9fb3e8be94cccf98320338a7e390fe
      GIT binary patch
      literal 1361
      zcwT*!-E$LF7{;HIY?2yNT4GzJK-nPLd_Y5?DDowc(oQfsXiBtpMm$Z9VRf^c*_^a^
      z!{-GvTye{lGkW2jqcciplz~fT_-oWZKzz=2X*)PIGub_7_q@;Zd!KV=pZ)XuV*t~*
      zkU~sg;%m7g%W_qho4)G@<!YsJ<x=2(<+y4-kl&_Y35;*QMqs$70!O+H74#h6yIh?W
      z5ElgoE56s$($fv;_EqA~R{5{LAAJ9#KzjA6qtzwf@w7l}X-*({%JCe1M!?Ef3k}{X
      zeoLhh$8ZK248~V=SEnKHS_UH+r9xZj&lW$Qm0AiUShF<u3SYmTK^m_L4AmS@ebnzP
      zt6)Jc8^mnQZ<0`wlk@1IrLQ_Y0lW790h}aXv)7ePmWZnHTRLB87&_a~O;D&6g2a~2
      z(}`#ws+J=^-O{9$FPJuCt6hNsE|`~{4h!P>!d(2Dg-<G`w_*k*99(~2=?5z+>a3o^
      zl)(Ow(Uo4iTy<U5mhQQr-R~$*U%1v(UCrPJa9ChZ#qYZ<Z&KTVk}cct+cdBZ;Zz!j
      zaKtbl6&TIeHYMviaJ=@(LL-G^0&l*QN0fz0dyCn-gfhxb&z80}i5|2)Uvttn-PtQ<
      z*J(L}BXQvQ^W@ns!k-DM&gR<dAqXCqBzvaTdQkNNFvq>~n<_7aja}%(K+<);A2iim
      zcmhXW+OjFr0dlmWHDVY?0!hwN;cNi6%{k#X!9ULz-|XP1#?>+2hl{({FjOpNcRob+
      zH;nxfR=vUNj!^F+>ps8`*YDzNY`umayTkT|u?KspXp|@Zqg-0UzU`G4sC=2qjct^3
      z*iS|75DrAj3Rbu(mwc40mEy%;F&01kamg|Ri-Uw2Bslna!)h#S`wJFcVe4OVF0l{G
      zTP$;trNu_xVo=8NZA?a%_xRl6eWsYrKSZHcdWyk6aA+}GUc>a0(qrp8GoM+^zO#no
      zPfGD)+4rvB9l;5|n!o?k2E|0U87{9KI(Qg`PtPv>di*l!kj4%}nTcppJiR%bBE>YH
      zpT-#~3A~T95tko@Jh>g$4-wb7kZUuLah?s}It^|R<t9;X(eO4=?raHVas$JTFa#>0
      G#_Ye}9|!&b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/color/ICC_ProfileRGB.class b/libjava/classpath/lib/java/awt/color/ICC_ProfileRGB.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb93875d71335a34baa4146379a34099b3d6d5c2
      GIT binary patch
      literal 2417
      zcwV(tTW?fV6#mYfGZ*S`>9mEGwsZ;>+v(LRAh!aYPD^n*Eo~{3ig;$`FbtWQ)0{bN
      z5fT!iz$-D)c#BFfsq$bn5h_9;Muq6358j9x-i`4Wh~M6G7>bJe;w0znwfA0of9w0!
      zT4%oc{gdke9!JUxmx9_O`n2Az&)Dq=Gh<rq{o(MzA<I0J&KSde-Ck%4RzBQC!Lqzz
      zrS;61Vdc|iZcl%Y0%ezi#bGm-xAmMore~%M_q4C{%4@ggJPQ27k)H72z|deU5*wv&
      zzsg{sU`gL_BoZs`h*gExbVv6@9#~|^o~&+L>7xqNiHTkX?v$R*>Iz(9QZjQmZ5u;o
      zI%m^yOFEafyA)`R{Y_&W!e-Jafr^!WEXRrx!q)gvi&YFOVHvt@3^+Ht8=H9dB02>9
      zC`CY>u_tZezs8S8(LkJ(VecE?-=o{Q@a}Iact7Sx1<DmHjiz%(Y$_W!tWiBKbP7bx
      z1ZC1G7U#~QW*<)H71TxlF$tT=B$1!g6NZ4A=x!Pl9NGnkR^E}6F}NnW3BsrbjAUBh
      zyFdkvT&Rp|W>Uc-;UGDB5ukunk~v88IikSF&Ax(`La<)d8XXP`(p`RR!}fwhc*>eK
      z9LghViXLj5FE5z*)sjX=&!yV?GZ`bLXLeYrsjQK+BS#a)q|E~HfuU5yOgpFtr}a!a
      z8BCbjNi#>E5`?i+km{#LWAy%ABaAnf+T1ke!_x{%BbH@aL8dFo)u6;4U}F9xp(CG2
      z&;sy51<MQIc^=Lft+IB4l4le<SzveJ***yrigHmgI3e%|Wn%QcLzbQp*KtbH9*V;A
      zK1{Hgq<n(dl+hB*Ng(b8ZISLaR!uRKylSz0)RcI|`SO9P*E~o~5@8GRcq(5{G>cD)
      zPn<W6m{V55=#@QK_F%oV2`Ny|_(j8bu@Y{0IP;43fe%$E!6U`FpYz2F=1VwVx?sKx
      zCq)O)K8Z4v%dtX^VxMh9&q`YRi00y08LFN~RVXx%>Px5#g#z`LvHB9$ekgBi<U0V3
      z?>M7M5IM;k3^d8R<avb9EcLHMi;P3;wEhL9c^+;5j*=xxjwmKkCLe;*!H*$TMJJwc
      zPz;_GUiF@9o@lcg`Uq>)j@`|gFf<x&VYq30P=s4fAYg_Ej}q>A&X1uE#}`1>JCGW`
      zI8RbQ0l5yV9LRHA7Xf#8JYQhFE2?gtLs0FSLs@f8XD#vSICSiuRh3%L`MbZ)x|AA@
      zcNRpjN+#qK-?L2WX(sIq*G^+C=WRGEBMB8SoJhP}+d!dM=xD%G6kDXf5*ul$T-}7t
      zh3J%ap7V&?t1n8?HlpwoysG&$@M#YPwp_;6fjQKN0y_%Uicp}tU@g9i@OU6HkG>l%
      zx18B7IlHdCCFarbKx`gEH(Jznf!!yT`Hr3GrCEx*C(f2**xaZ!RBGqqy$$ad33szL
      zffrGOm#_veljtj~lUGUab<%o+;lGI<yp5eWk6~P3?YzUPn`2G9%f!5g7jRLEGR&S3
      z!riNgQy7(Xw}v8gU=Pt+i`Iss)x&RM!OAkhWf<emao)6-I2uonW4n{u-?$?>G5NoU
      zcfk>FzZCC&Ijm<H0+*=H$7FJa>Rcs{YmE6iS=^vHpOV98ROfRlaFbErqB>tnMY?3N
      zlSM_6|51^kW4XkiD&NllQj4(E;TNZfl1_<-0teW%1EIjP9AcrsK@OX=mYeXm-h{78
      zyT|l7!Bk!Eo<l=(g}YO2sSvG4OKZJnxvMl`&bpNfH{0U&g0|>nGXP(+*uP<Mf6H&z
      zcZ}|Pa{Ga8c$+%>$jE;}3_mkxx2eIMztO;p15T?fVW#73Ul(s0<QJ@*{A<xi&vNqH
      PKyT4VZh9IrhC_b<vD3r>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/color/ProfileDataException.class b/libjava/classpath/lib/java/awt/color/ProfileDataException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81a5896d9e69139ba29d0322691c7e1451cb036e
      GIT binary patch
      literal 453
      zcwUW9Jxc>Y5Pg%clQS_fnuq}l5y21eu#UtcQBV#Mqv<#28dvUi<!;aT6RiCwR)U3v
      zcK#@Fa*7sO*u0r}``(+`xA&)K0NYq_kRz;Ii5uaGvGoEIn%Fyz&4mhOPgt>c8^~*`
      zjCN2Uv@&5R^vF9&wN;V)ekart87mPEWSsDPcF-fxA)(SWI<Z3Afe2GsluP$_ulex{
      zp|qp4vK>NW&Hu^m+gRyQdwoDCbj`VRk;hCKE~W`pUuk)iMnf5&ieV@Tb>9TMQt)D)
      zzsQ2UR0(0#|Hrr51SgV7B1T!-uR92C-=uLM_thkN@vn@ni3`ghJ{62D6j9>p@RY+8
      wcQm=5vCK?|xg6Kh#^xg`51FRQ=w@t(y}PJ!*Zfpr7Ih%&<}jaSH8M~01GJEC-v9sr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/Clipboard.class b/libjava/classpath/lib/java/awt/datatransfer/Clipboard.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f72038f74d629eb77a5bf8336e3c268979c52ce8
      GIT binary patch
      literal 3685
      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
      JM^tLO_#e1Kb2R_}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/ClipboardOwner.class b/libjava/classpath/lib/java/awt/datatransfer/ClipboardOwner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdbac55887edaf5a4544184bec8b64b5d9ba294a
      GIT binary patch
      literal 230
      zcwRg8Z`VEs1_nb0PId++Mh2Cv#Ii*F#PSmTl*E$6lA^@C;<VHvednCaf~5S!q7?t~
      zywoCg1{OvJ0kF!P#JqHU|D>$c<Pt^(-kkj660nNmjLZT?1`iD%0>)Y6P!IxTBqrsg
      zT5E<eGH?awmlh?bx@G31GBOCGI!6y=1{)&-BLg!72rvR&$I8G4Vll7-NhSsk03F^$
      AW&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/DataFlavor.class b/libjava/classpath/lib/java/awt/datatransfer/DataFlavor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d324b362ff7fa49993c9407d1b482f65e95df671
      GIT binary patch
      literal 12089
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/FlavorEvent.class b/libjava/classpath/lib/java/awt/datatransfer/FlavorEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6104199288b4aa6ad2cf41520aa0fed518f18132
      GIT binary patch
      literal 423
      zcwU81yH3ME5S%rBfC(f7K_5ZEL&Bm0DJV@uDhmow`n7$)MTd<pXY*ZDNECbkAB8wy
      zQltQ}E3I}%Gqby2-yfd<&aoT8BMfHTaKf)9DcG>lT+SbaP9}<*N?$jkG!cBlo}<-9
      zs>Fe}*-Yey5MIerni1jfDE-}OtmI2pu`Y(kQ-VLP3K3%s8yy6Qt?^Q)xO_|&u8!DE
      zWhrjz=S=8(&XgeZ(<)~*Wi8uz3Hs(q&It#9EMIwJNC?~=_UC_3CB%1Ct#dJv?Uvq(
      z&snR*0A!zNgKP!}ZH??Sf@c#5Pfp*l{$@K5o3_Rdy|BznbZoc3U||c}&Lu<_J?FLK
      GH2ojt(`o<!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/FlavorListener.class b/libjava/classpath/lib/java/awt/datatransfer/FlavorListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a6d4f70a8b9c7252a9369bc6db1954f348fcf62
      GIT binary patch
      literal 228
      zcwRg8Z`VEs1_nb0ZgvJHMh2Cv#Ii*F#PSmTl*E$6lA^@C;<VHveYc#%viu^S%;J*N
      zywoCg1{OvJ0kF!P#JqHU|D>$c<PvrUHbw?<uxM#XW{$pVS!!MhOba6eUmDnqV&@E?
      zmedqR1~m;Ie3pT=TWf|fGH?awmlh?bx@G31GBOCGIz<m;1khea24)~;1^R>$=r(o+
      O4iJlh6G$>KZ~*{S>Oj%}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/FlavorMap.class b/libjava/classpath/lib/java/awt/datatransfer/FlavorMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..283e1cd06607a4ea1c9acf64f1e89ed61f896e39
      GIT binary patch
      literal 507
      zcwRg8Z`VEs1_nb0K6VBsMh5w;#Ii*F#PSmTl*E$6lA^@C;<VHveYc#%viu_7!~%8(
      z7DfgEu%evAymWp4q^#8B5=I7*^wbi+#FEUi)MB^%B8c*0Mg|j&Xdmn*x&S#4W!9Py
      zC8Z^qIr=~=tQi?NgEQ0f5=%;pQW+Vt$S}f&unr%DAA(DYGV{`{?W`f*fI1%N4XB40
      z8B}0yKvs|G>?k6X*<h+5>{yV~xPtRbi;`2_GIM}|!UvBKJ&<NLMg~R(W(E*o0>%$3
      a0~?Uf4&pIz0QsB@TyQ=&ki`RL@d5x(eVicx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/FlavorTable.class b/libjava/classpath/lib/java/awt/datatransfer/FlavorTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec8e95df54bb7528d95599ec0aa475f4e16c87df
      GIT binary patch
      literal 496
      zcwRg8Z`VEs1_nb00d@u^Mh3;K#Ii*F#PSmTl*E$6lA^@C;<VHveYc#%vizcu#H5^5
      zb_Nzk1_7|LoW#6zegCAa)Z`L&1~x_pd3>6E6AKs_gws<?{1Qtt%TkNo@{1r6j0`3k
      zKG=1-067pv)|wC{r6rj;`aYS(CDx1#oWYstd5I;ZMX8Jo9%L9{<Ad-;a7j^SUb?lN
      zHN=e&9UwPCT+7IyqJgOzi<>-%P-a8esUUZ71?QI*C8xS&<^Zi1K#Bo9kal2jGcqs(
      iF)J|kn1E5j&cFfWae{aZTtGfI0}q_f3uN(uS^NNh<CX6K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/MimeType.class b/libjava/classpath/lib/java/awt/datatransfer/MimeType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28d191278a39523e2dce1661f3646787be122029
      GIT binary patch
      literal 4293
      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
      ONVk=~@EhmIe)~TUs@2p0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/MimeTypeParseException.class b/libjava/classpath/lib/java/awt/datatransfer/MimeTypeParseException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69f24fa8b24e241fffce0a4ead2b179df0e204ee
      GIT binary patch
      literal 547
      zcwUuIOG^S#6#h=W!Zc0O${+|@sD(qc62pxe6jKD+?5}#W8#*I1*B(EsHbRSjKyBOf
      zXQDHs6jYlQ_dM?X9_QSbkEdq<`zXY)K-jw$H^LCN+UN@{v@2}yQo6>e8p+Q6Se^^l
      zldZd+9Bbv+F@y=(fH4&I!1#I~q&?{>F|?%Xaer~#B+v;V*>G%63tL-aIFXUZ>dxEy
      zmhno69x7YuIw4dnS%h%I>B~4mSWY00B|^$nwmh4Ry3*~4?objkrqg2s!8Y8_FT?su
      zd4!7jpEYWPT+#eqqpe+K4{9aLA0X!skR`-M((}Y1F#ZK4#M{oq?a3qMPqF#8PsQh9
      z8@wd{IH7<DqMT#gEntxk`O9)l@XY~d;v6YYk$easDUNZ@Kow!skmf2e17QW3K$M4_
      j3)C6uW25EWDOP_fG?~*16!J6FT*0sMSPRV81J1@LpmcbK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/StringSelection.class b/libjava/classpath/lib/java/awt/datatransfer/StringSelection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..278553e654ef6bd28e98c820049bac01d7c8d410
      GIT binary patch
      literal 1799
      zcwUWEOHUI~6#i~oS{R3SK~dE5l0K9IDk=q0fhq}s#3D&`VTN{q!C|IOhsRdK%J>J=
      zl^fl#Kzxu$#JxYoAEBOmXF4Safl20Z?>XnY-}%lt^Xt#|Jpg^UAA*meYe`vElFFK$
      z%qzBHTZ&PfSFL2mwlrfQqv~qT)=VRW07IQ{)fHnQIX$;Th7f`b?S})*xF5=#u7*&_
      z(0RDusIC>}OvTDiuNkVvP+wdr6imxj^H1k>W!1Eb3>{A<4-X!rMOt{J7y{hH&@fr1
      z>108+%AuUD8Jc~Y!5@vylJlsUCtmdok>jANP=`htVKgzwMS<uTDEH%e@#xbs&hY5k
      zg05)BjJj@@kQvU(sDebcNzG8FR+i^fYldsa6ESm&KC4(7U%Q*ZAvcYt=>K`fW+nI$
      zk#Qb19J^h{Dae$py{M6l-AAxJP-~K_c|o;H1uW-65M9yOiE7cL70c^PsiHjo_~_VU
      zi8PDLNFYiHtIt;yosJI9yP`9V?g>)t07-^{lc4XD&FNyID~+$`)B;bw7{XPC-os%Y
      z8D4WbXkJ(d*BKf`lx8L;ragm1Ww;@u8&L`UxW!8|ctROwLl|NRmq48=JyeyvYDq}p
      zHpjZaP_3IqTMSQeQ7bS!I11aFwA2v}`$sm#homZ33SnqF7L}$fXBxI@*i@~~lbk`q
      zXUr8Vr=~UD+u;L^*ux>vMhg1jLj~x6MRP>cLccE`?`(PpQHg5QkWVeG?jQhug)4rb
      zF6-Y$Lna&8MswyfT0V)WbM$NwUMY$nqDC7;BmE3pg%yNDqPl2l+TnXrd<PffiLYoY
      zW7H5QV3Lrgh|#o&Z+5)Vflk3f5*(>n(S=JcW{+3{#HwY>Lko(%tU!?+yNkkj>$tH7
      zdGk{v{^5@Z6F_T!;u~UbP!ZVN@Ud3f*?a%@w|~>aZ6?(Kjh;)W$1}=QqwJQ&IS~iT
      zV;jL`G|@>uvR)ycKKf3gm)?DXp^y6an&7c4>H);!bo{_u$h+vzCU$W1CrO?7fZAQ8
      zvhgoy+rjV_f0q+=2)&@9y(B^#RL)m){Of)4#XLeWmk`4U71ohpgl<lol`G+B_ikTK
      V%!6RKi+jS(Fp4pe)3}IC{{yVpt)2h?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/SystemFlavorMap.class b/libjava/classpath/lib/java/awt/datatransfer/SystemFlavorMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfd7e14397ced2c24c3518eca4f7c87f97e30eb7
      GIT binary patch
      literal 5169
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/Transferable.class b/libjava/classpath/lib/java/awt/datatransfer/Transferable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0197554a1062a8444f25f4e455ddd54403e19cf
      GIT binary patch
      literal 459
      zcwUWA%}xR_7@Tj>t)jxB(FZUwk&D#}7p_WTLc#&P=;>prWXWc`X$$&n9C!d9%Gh1`
      zF@ywqX(#iO>3sjp<^UdWE)Wo|$2?`ppH2?hu``_64`t-b;=zMd2^<ijQkQZzlD)xL
      z#g1?_Qf{ex^yW^=Q*A8a=C=9X-JZMFwF#GrUE}^F&$V%CSon9ln{R~rMgc-=A7^*-
      zE51tg=_^*bOLS%h&ItG0V_q}6tofI=vI*1)7o{uF^0~Jne0E<?OsqOdstAq$%ib0G
      kkU*%QI2AwiAwm>`3mldAF{++F@ob0yr>J=pc@&`W3zGSWS^xk5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/datatransfer/UnsupportedFlavorException.class b/libjava/classpath/lib/java/awt/datatransfer/UnsupportedFlavorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5eddd5f15f23c5d77411bc21f416c671fd3d2c07
      GIT binary patch
      literal 641
      zcwU82OD{uF5dNlGSFV<-cfBQ|B~ffENIarV(@4;j&1rkomD_WhbI--U@H4D!NGv2)
      z#E%lwOIXm@%;TGxZ|0k~_s1syYnZkWA*^1AOOX>-CRZ0m7%h~4CUx#a`9Z7YX(Q|V
      zuDJB{-gQm3jN>T_QNmz2<qFlveHRExUus9V6{&sBPYSyPDiRVqp7M=QrXt)x#)=P%
      zORqPl&xGy`M>%Gbu#hSJea0>)pZoLK3L(1V)uoL-BrWt4X8#+CV*n|_XhWKVpefX$
      zmcCR*R9#sXO-UHaWJ^C%j*NCxBX6S%Lvh#`CJbkO*V~u$mmDR_L9;6Lahr~iDtR^5
      zF8BkSe}PeR?)ZfD4)QvGInUoY3n9Y%|IZ=VM_!<7a^GpMo#{-x(&oY(h(&^J8ZmUU
      zw>XQSha=`fFWWdH1;!%m2bPv!V9_nC<$EL^FnAZXkFd4FhAkwqjZuz9J_j&{aUhJ+
      Lm<VYn!<nfMi?psZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/Autoscroll.class b/libjava/classpath/lib/java/awt/dnd/Autoscroll.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4a7f7bb2095bb105119f27f2ce6d4259eede6b6
      GIT binary patch
      literal 209
      zcwRg8Z`VEs1_nb0ZgvJHMh5Y$#Ii*F#PSmTl)Myu$I_Dg;^d<IoE&xr7DfgEuw+hR
      zUb?=2QdVkm2_u7WdTI$mm1kaYYDqCrR72ATZV*J!nvsDk5v~xV1fe1zKQphyS~Co&
      zBsjmcC^^+FGbfdifgfS89!M=4BLgD?GXn@P0bRq&z{UV_6*~h5P=t|z6C}>S1pwFX
      BHevt(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DnDConstants.class b/libjava/classpath/lib/java/awt/dnd/DnDConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d62c7e410ae8512d18c26a8835af934e7e57c4ce
      GIT binary patch
      literal 529
      zcwTjo%}&Bl5QWd!0$M=+{6loFE^LfTjnR~nG}hK2Y2u1ppuv)Qn?TX$a%JMe2k@bc
      z(~43TZf5Rx=FHrC=i~G39l#0p3s@mEC*n!y;yKnwa-_Fq+lb^W7BZd{pc1NSITUiN
      zyMu{8j0wdnqi4BJ-*Fw2Ko+6=)8mP7?khYUOPk@|-X{_*r5o2X6N#^HWL$l>`&&|$
      zZrgIMmCJNybs=@lj@dOGgYVCu2Qr8+2+F~sM^KGu<ZDo{RYDyNLd6cG@5~<u{<J3s
      zp--sW(NKh*m<9<iL^Xa0W`vgg?>f#1+FdlC4*gD$bkwrN<D`vu%Fp13=FvosBcYJ|
      z606K>8P=GK87?uGGrZ1R$#9jq_J@fhe~<G9E2o@^bMELBn=h$lo1?}Vu%N=m4xdWj
      OCLXq%ZnKp-_r3t4V_t^<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DnDEventMulticaster.class b/libjava/classpath/lib/java/awt/dnd/DnDEventMulticaster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5189734567309e1c08468c021fc00c198e5e0a4
      GIT binary patch
      literal 1262
      zcwU{9OHbQC6ot=CLfn|}Y)c8RgqO-oO<A-XXeFKk$zcP6^&}p_ATySX6aE%m6|q39
      z`=bzd9F$6yjS*hhbMKt_=FFWd|9iTB0I-e)3pqmVQglRJ+=O*kyY*eYyVsFAY_z>l
      zwZwHO0}BPhR8O^ab`n<*iknKS@HgSdk`pQ0q4MgH&QUDUGT2C+SUx2bc6?Xb$fHz7
      zABuz_M`?M~zG}+gL^M4~7<K%X@J>abO#G58gcs_XFy~~QVuL_}P)T*c^G!ltxGq61
      z#dv`@Kla-}OU6#~ieNcYVT16gjL#S&^z*)lntf{F5gPBQV(N^AaY8l24PiFZFySV(
      zFbzLczRoO9OqN=tn9jl!Vew5`!q+!Kxorb^<#(jHh*}x5<{}2WssDFjch~MK({AGl
      zo%PM^h8i>SFi#%}riD4SI6CC4$y+O{Yk%?K4-a#&`EBzT_|C$0^z*3Jm7$D*2xDOo
      zLkuyaVIJjB!U#rRu)jDq>q{%Eclh{-FSk8#F<SI9f{t}XjH*P?5~C_SZ%`8{sL42L
      kGlrV(p{66$OtPzLf~)NeS2M}3stK+RUUkL4gh)UC4AQAES^xk5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragGestureEvent.class b/libjava/classpath/lib/java/awt/dnd/DragGestureEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76158679c1b9e8250669bf54a0a13307bf257fc2
      GIT binary patch
      literal 3417
      zcwWU;T~ixX7=8{(2rNrUX`!Vb0u?cA2(c6`3Q{o8HZ=vxM-;2oC0WwNu#1~b6=(F;
      zYwx`9+AA;GnTAevtX@?|`v>$V_zS#pe9ze>37bu<jx%16^X@tC`#kU0c@IDT`OPB$
      z=V6D@!f<w5y`v`75A8(G$R*}2HGf4b+9gX{xT6`Q5@hHRDkWPlB*f;@=C+o#86ri^
      z($zvnvx>TDtf%G~*foaEq-hjw)vz;ap`?XA4b1+Yd-8|EAms>s)ht<AjiE1HN9-I;
      zF|=pRon6x)Du&}#z2w0zskEAwp4Sa>qI$k;>du*(waFp!CPg0_cez+m6k(+GB3Eo*
      z)$@kRgJp<&j;E`*0wIwyc1yO1e`<zo1G&7#FjOCfo4yq-Yvv98W6k0oP3wkk&oEq#
      zK8-=j8<W@dkqpDue*!ffYZ@mf3MS2*CLw^cGEU+d>Iav(pc?sv(+s2-#sI^)>Orbd
      z(DG_w&dQf|2yEe_thUR`BB3AWIMTC}#OO$-9SqOOID#%NJuf4Iqg)!1(T!tVipl83
      z2?=o|!WcUsX&SeT7jT|I&TDqE+DpCB5x;KY92aEB=;RzP%6JJEsg22YzNTSM*BX0T
      zmLt3@LqZ2bS6Vl;#nR5EX05541+wf;n_0RhDqR-(b~l6eZJoNZzhM!b5|Gn}t@m~h
      z5XSylDH#SRBFEvmqHoq1hW&!9?<$GnP0E<Z0$rjCDqYqC^V-&^rgF)>v)#2U2e-CO
      zw>3+(O{=C(BDR#fPdXQT51L=q4y3Ud#&w1xhw~-lDri82ZFA1D)IHwUBRA{a=k_Zy
      zmaxnajru4wGFs<Gs|+F4fj{P>SIy0wJG1CYkW*c>yGGf{YnF(E=5%e&>cZrW`;Lsa
      zaFYr`!`Bj+43jlOB3ZJEl*O9*s<vuds!`n1ti+lt@ZO@^%qy(QxP?uIy=EY(9W}4j
      zeAiBy<|K`76R(YCP?z!HBi;;$l;LQdACz4Ies~f$q-5CmcL{kaUs-`+@NYFGypNqQ
      zNcThoRi1Y0gfAKoc&F(9Usc+9RRqVO2iRd{=+L>aw6#^#sB<L;;Iht#R*yG|F>Z}P
      zYPSIWR}#i4gwRS~Vft!88~xE#6*A3dTD$p6Ay#@P#6G<eq<>t<J@iL!1<9SXcM^T{
      z?VOy#X<C0GDMah65_^C%@yC$+f{zi7{fLfl(ZBHkgWoIhGKQ2hWeh8Q!7`#stPDko
      z?PIizalTHJF?o+L0(gaf74i>s+e5fco-7j2GCgoNFoYF4TSWqExQKOJLIzW$IpOeQ
      z8m|IE;{Gxr@rYW4#A6HyiANX249T*q)lFDIl4mhTzdWjOTKQR<vX9q(K>V(Vn0wbM
      z_TLrEj(wZU%=ioG+9zE5ka8d6USqw+I8-sFC(_4w(raAwHNK21KE^{{<4=5zX=qo9
      zdQE^#xF8aNL?7aH1~1ZQHAqqgiAK8Xh6mwBJ;LV=5LR7;OQg+9*TE5D53$x#2l1tV
      z=ylX8_3xm*ctg;?i4C8u41eu``N}sdH2L9ehWns?c-!m7UEgN7MNQ(^r%8{uo}|PW
      z8)f@=?_LE#63%~zc03X&1CC}T7ztVA+#G4xB5jVGcabxM9IPP6eUN`4<R=1IaWtDC
      zbLlp9XFzalx*WSSI9h3q@NQIMqw&6AUuYlOUZ!8^g8e3#W*q$rQ>4Nafk}8RLi)hH
      SkP*Qi6cT3-k)|cEi+=$+`y2}Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragGestureListener.class b/libjava/classpath/lib/java/awt/dnd/DragGestureListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1bf00b6d45ace9163c665b7f93a6ff92c0e48e6
      GIT binary patch
      literal 232
      zcwRg8Z`VEs1_nb0ZgvJHMh1nf#Ii*F#PSmTl)Myum!iaU_tfH&(xOzK%;J*NywoCg
      z1{OvJ0kEo^#JqHU|D>$c<PvrUHbw?<uxM#XW{$pVS!!MhOba7}XbQrhpw#62^t{Zf
      z)D%VrB@G{3_JK{X)(m50;0n$!ElN&x%gjk-WRSq(Bt4KBK>HaPn1PrT=o?0$8`&8+
      NKr9AMAj!nQ1pqY9LHz&#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragGestureRecognizer.class b/libjava/classpath/lib/java/awt/dnd/DragGestureRecognizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54c013e5b4f70e4159faf2396d5151eafa011687
      GIT binary patch
      literal 4026
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSource.class b/libjava/classpath/lib/java/awt/dnd/DragSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7feb64583bfbbce218eb6b8d7f89d602bc89613e
      GIT binary patch
      literal 7238
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSourceAdapter.class b/libjava/classpath/lib/java/awt/dnd/DragSourceAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7fbf90b4bc1283922ff92aedfb6e505b7dbd6f5
      GIT binary patch
      literal 1104
      zcwU8)O-~y!5Qg6gOE!c+_-I4RM<7T@z=5c$dZH~t5G14k2M{MNPSymY;0+rm<-(8R
      zgw#WS06z+K?1XZtHokbqv+q3Pnc0`u-+usnK_x_nP`(v?Q5C;THPTV_FcGcuxR*5L
      zek3|ZCLsdCjMKD*ZdK13x3XzMWC^P&nRV4QQrpxVVIxI!5*rokHz^_eU1?>062>;S
      zE(yUw9LYS!Fjc?=@`PetX?fbaYsln6G}@9dSC5;beJK)U@55kVZd8}BRv+EfE@2|#
      zU`-oad}A|BZ@pSyYO`x!MO<OsFD2wG{H$-;)7CwSdtGk1FC)Til*FC=rfvV=hDT~+
      zPG5UahEPd;%lkXZqa}n%%RA&cH64v^k0t-GBU*ct5%Po3k+S11{WsYiiwG*<MIwW7
      zg#4?8eB&kZImx%LY>Dmo_A?4k>|`*_XPzza0|E9>WUnv~VFt5odEJ;F0=~H%j=d*m
      zo%q-#mIfb(iPrmokFI9Pk2v=r7W{}S58{&_aqU5T#-a~#pNd#=h-Iw!5Ra*dvO}yo
      G{n}r|?b6Kv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSourceContext.class b/libjava/classpath/lib/java/awt/dnd/DragSourceContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54642267290aeddf06dc3ee34a11c7173cfe7476
      GIT binary patch
      literal 5805
      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
      Gul^7Hw>W|T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSourceDragEvent.class b/libjava/classpath/lib/java/awt/dnd/DragSourceDragEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3015a774e56551293ebb6ad7e3bc1704ccbdd8a9
      GIT binary patch
      literal 1593
      zcwUWDT~8B16g@+~plk&Ti-5Eu2)2t-LHsPA^0}nK1JL-Q$+jKqlCm}1En-Y~^#}Mj
      zjEP2s_+WhYm-s7;cV^3iO%WbCb7y+bx#ylc`|Hp59{|SiB!ni0{%vE|NEvUORKY5w
      z7Hp%qQLfr~E~3R<ZaE?N8T!u1k{Jx`6>ghGDa-AOS+=(H1qQat5ScGq700lgtWm1+
      zK=70L`$gu<dxmhqF2A13JCsbBI%PVBUF42?RUyJ6uQ*kkKP?x`mnP9N1Sd_)bfy`G
      z6PYvAP&tS1IcZ(jlUWA;e7V5G@FA+;5;_<L&qXG)EnrX;gwZOZD+&~}hS7toA@nlz
      z7OiT^<B;7SOH|N@7|A3WZWX9{LQm>~<C=m9S{d3hrp4E)J2`G|8o3f@h-S)pa?K#`
      z=v=$>JFiS?ci=3k-eA%Up}eb`#&}+5lx!Tk+p=?FYvNo_bY1!>jMRjYBMd_q0Er2(
      zJ^H<s<8(Ivov<&Fq`7y{)pFgah1=r_?n*apzRPXuPi>I6NbC{1-=f!d{Fuaf!Fyc7
      z{)Y-4;W1HFq(I@i)Lt^IVro6N&GSw=gh__@|62+pjcEllNV)yEe|r6d-Sd(uX4u_e
      zT%&>>*GZ9&K0iNt5kQbmAv!go8By`(D2|F3C-;clLzHs~ZM3%2=^f<;Xz$TR4sluQ
      zJ3yxvJ3yDF`j60kfcR%g*H3GgOq`;1ny6=pViw()BMHESOM(Fm0y4URAu1svA)`q~
      z!xZ^sbdw^#6q2Y3`9NnOJ*JJQ0X2At<ORemp#{rCvVsoi^u4S~F)J>SCnn~JiFsmT
      zo|srojEHVg6p+zviiDe^NYw<2U2p`nuju;d2?@%}HCb436KaJS?s(ww8n~Ij@gt1Y
      z<2O#>n?3wQ!{YIJ@Uw=+?==K>)`Oon1mE|->y$12Qw3PGzE8`8pGbeh)cy&XJC7Xs
      Wn5PDEG?xO+BzKBj^~h%>YVI$s*EZ|`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSourceDropEvent.class b/libjava/classpath/lib/java/awt/dnd/DragSourceDropEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7bc78a908658b3642be9fbe86d596a359172011
      GIT binary patch
      literal 1240
      zcwUWC+fEZf82*NCTPX|F(jqD#2NAj`6}_`aVkji56^&?3xLdXpTvE5D-6AH&ckn%o
      zQG=3rVZ1gzg0G_So7v4ulnNI+`_IgG_z&~#*XJ()7I8g|9)XD+XV)n?&x2Ckua_z<
      zXM3aBX}Pk}YCc=tm41+hAu!qnr4a(zwrqJ$qb6HzujxOsD+1!SK>te9ZwHPa)SN~~
      zCO^D=_hb6|>z@LdI@NEv0l`Gt0)6UWqvN`=-R8-rKx)bJy<k~jdal~Voa%wx3(Ccs
      zfU(l7%M238nHa!eF9h-?GU!v$un80W0)ti0m+PIUTe9`g*=k6ET(#*kZ-?1)9~~OO
      z6OUO;b@Po|Qx-_OVG?ZQacK(799xRLsfw9B0nWCIHC69~s(124+P2abd;DH-Hrq0&
      z9GXI6u4t=X&6=1)k^OILvTBjmZ8-jR>E70kbc1pl^8(}lx68o76%z}X;q#zZcp18}
      zxdV}XJahVU>X{I>=BYW19MSRx<%&rrn&2Z&;2e@jahK+<2d9uzGiRJr6X!q4JH7|5
      zS?=x=)5Cw(nm@p4EAbISYAL+e>@%8Ya4nO!M5UW#E@Olz!yyl6=?ER2$0${m`dFl1
      zC&u`rKC0Bmj!<8rdWGt%RA1BTR>=EDT}7&%&|6iM(2nDg<4f{V{O7Itf>B5w;6iuT
      zJLpA~+`AaUx^`U-xv^_LcFo7G`N&m8Q#><tG|fnL_9AAYOl}aZ^R@QrzmH2_VSU2o
      qS8w7hQu_XZb~dBhLT7;zu0}c~-BZqu8il{fj}MWPF?ms=uKfmH4D%oW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSourceEvent.class b/libjava/classpath/lib/java/awt/dnd/DragSourceEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac3c1f68d60421c121e580b6532401b8dcf4bd7f
      GIT binary patch
      literal 1259
      zcwU86U2hUW6g^WGsC0oAp_M|vtpcrG>(@(bH5RHE;zz1P^l5>SZnNDru+;kG@9-D+
      z;)5odCYl(ZO-%eVz8de$ZV-XW!`!(ubI&>V%xw1i@6TTWtm9e`BMj+%{ZQBRmyTAq
      z>RP_3H+JoIv&IXD+;W0Y7!tCg?HHyeH}6;XdCg%MZ}Fy~n`Pc?8MgJfm}g*j8N%DP
      z)pB&pDeGpN`+x1-GJe*7yk?j%?V9dT>Fx_&GoBl~PJpL0j%XBVykZD!8kXT~F)U?D
      zCp1R%4nJ}>vSkKk+phBvd^oKlia7P^!A#w1Xl|oacnS=YDnb|&*%=io!Xlei5kZ(C
      zS~4ttuYFME%}09G<P5PA^=g)NGDvH0Q*ri;7Q^gGoyptTU<lUS78&M;nP6BRYP47s
      zR^tus^qny*X0pTZ!s)V#b2v};+mc7ZVBb9jktK8gCu10+K1$w05>2=K1KY3!%>{<Y
      zzndYfLK9DPk-?vF4JkzQgu$1|7TraKA>@kf7~;C)JvX~1II%!(eDwV)n1&w#S_Nq}
      zf>Ff815+Lo&nxGMoJCC(;}j=oRiWAuniIK|W5ja4Pn1!Z5+V6PQl%(P5;?F*@jB6N
      z5y1__aT95ICJ8WuSwLoUm?wH6v*5`bP>u3eMiDY;Au}^TCQq?IGCM?Yn`G`tnVd_|
      zCnGZ9&}~9^^wI7jmOSZ8vK3%7_Yr5mA@jbY7LfZT$*#IJ9y=qo6%St^U2&EoeBuof
      zU$9!Cbc#mu7;A6opU_MBu!}O)p<I`(2ujUs$uD@`^?=J=V1EaEc_2913w|~bd_`7W
      F{R32O@Uj2^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSourceListener.class b/libjava/classpath/lib/java/awt/dnd/DragSourceListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..209520b8121abd082d40d18d1083718b17131154
      GIT binary patch
      literal 385
      zcwT)_yN<#z5FB$rct5Hu5d{)7XHj2;AXG>xkmyZpfl=h3oC)`B6np?5g;<AhS0E_t
      zS*>Sgy>q#q&H%>fdMGgTb|MvA94(hd@>wD_%lMFlYN3CuGAi*<Wawn1NSF-|);kqi
      z4`qhWtb4FJ;(n@(eMlIpl6-t)T|F2sUW{;6Cj1_)7%EN^q)yV6NxYwgR>x+#rJ+jZ
      z&;GBr4E>jm|88|hpOKAk<oiDm<xf?+H|IK1wBB<VU(SU#XZWB~q8Lk*j)w|dO4S@|
      SIo8q0u!$Bi8QOFg(76FA>S*8q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DragSourceMotionListener.class b/libjava/classpath/lib/java/awt/dnd/DragSourceMotionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d606b48c6cc76b77b72d0dab72ba6190c052b38
      GIT binary patch
      literal 238
      zcwTi+y9&ZU5S)#V(+FZ`WhrRmVQs5c2^NC=nL9#4xP#;p|INY=@T0^{#4^P$!?5$%
      z_viTnu*XawAgpuMD5)M^YOCe3RO!{#WnyCIGiRf$^2VA{U`SYWr-ibqyxen>c!4ot
      z*|D|H3VCXb^?wOruGuYib;V|l(VVr3deU0dsSn#5A^ef&tT2RCU#DH`#RUiho)P~<
      NTvA}tB20M)2)`!7L_Poj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTarget$DropTargetAutoScroller.class b/libjava/classpath/lib/java/awt/dnd/DropTarget$DropTargetAutoScroller.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae9b26129bc4387f97dffb6f0464531def90390f
      GIT binary patch
      literal 2504
      zcwUWF`%_e97=8}y?pfAP!OMCj)VwW-VizgHEJVz;MTsQ@x*m3qaBw+i-E$VuE|_Iy
      zWu|2%HKQ}t^lQ!FmNirT*fh=bTmCmq&wI|wqL35J;d?LN_k7QL`Ck6`=ciu)Jb-B(
      zRT_4V8skQbG2yjj?QF||f|Ktx3d5$ixgxd~Jtv(hIJulz&=Jy5=by<L_HfJ5p;0sA
      z>4<2!Zx+cMH*K$_J>yx9ow8idw9SHs*r9=RZ)Z<uI+@m>B{eMWaBSBzY_HGA70qgr
      zifITR=uEW_h?3P%lX1rKj!iTTD^j!g9k;D*+@E(Wao1Jc-C_}!XN}3l%YD~mi#uVF
      zajzJ~>l8il&cW?rC=4oRircb%){(uIZF&1NY)dRe;O<)+`!s|)oU9o`HP$Mu#5xVt
      ziN?MfFhdH9u|%Zx3bm-yu~Ea)dE{c)fK76AvxZHHWa^%IZ402cDlEk^IhjysM3aU^
      zuIY6+M$U9ICOIVr8~eoFtgu5kg_-#R^H!U(Z1YHQY{)G18bdj5U6yh(My}5&SfZDW
      zA#cQTHSDU8`CskAL~0p+c@0a7`K;lY0xtYnmc;zz)!-5A(eWs^-|16$3{e72#;_Or
      zbUc20hu?)=hBu<{1fFEBjUiXUO*SS4Y`;Q>fAEw9->GmAPqD8ox2I^^%(!2iLGdLO
      z4ohM}uIG@hZkrS2N}kbt!5p`oB4KL{Klj~c;kZ*6Guff*6APE8Q)C9Dqg%tOJCY{(
      zasB)(!cp`nq|wW4lrtB2k~XX7N{$*U_<^x4hCcM`IL1oNZ%Bm!43aa^j#*i6#E&m2
      zN1j)BL0mO-9Wt%q5l{N&C57c!Q3C@R9Yb>=XCH$?Rx%i#5Ios=Twz!&kr5vzMw6v5
      ziW3AU!~IUt&XT*HNb)CW&oPB~aLt|?<iRm=lG(f~G6h#)Lpk%fCtLT+)^UXiu~xGx
      za?>e=(|9Fl?@BL)6TwY+yr%HFPqz?+n8z7~H+;H7j^{aJ0`jK9TLPjJByF8G#rC$s
      zJ9w9=%Q&`YShl-hhYm{3-cxuVyE)N}*@Cgd_)6;U)ePnR>GJ+HssHE-c{3L0!o0$h
      zuVt638nx`8h(t|0#X`nBXvsURt-M2jvTIOD8Dt$f!*xwp$LDvqW95K`l?%UOY-9<m
      z`GuilEx#z`8jk2H#HcTtqbq)#alXt6=dT=0{>n!4*SNoi_`4FTcycwhv&5F6-`w;A
      z)--Luf%>NA8)#_y85;)bvNYa*16!JAuq9N&Hd#y9{=JX3lYbk?2^b;bD0!UV{W;WQ
      z44YwNI~=soyCJ~GF8=F-FFnY8nlC*>rd2%sFm{*ul&H)8e%{s4C4?G8nn7zbzwD1_
      ztBZYwRe`OYw)VjGwQnQ416TbMln#B16=mBrV)M9f^)u%(evjEKGL~^No8*`~#bNat
      zy4laiaAr;n{j)Lj<7qONx}=dR$G{<0j-i#S#21}+XN)WO1azG9aaFLdjH{swM*<9O
      zir7)wZV{vYHyrJ1zKLfv91*pIXIn#o@LX#+F5-(bc=<YN<KaLyuc1z)>gsqX9xh>o
      zN^S=Bju|-Du{6*;YQ<|<CYm@zEnzYq5+%z&uVz~#@vxXho65H8@knsgze^8f-nB%e
      zcqFcua8|CB>XdNqD%OdktW9Havxqlwz6zC;>|?tE=Naq=lrAv%583t?u?HWq43{v3
      z%Q%UTF@;a)y@GG>DZaxr{=^sf8(;cq><LmeTb^6Qy1+z6@fXo9`cL9_;$31HSL0Wi
      pt1Q??HXG+D6FtR(UZxb`sl&W0$^upKKH+$U_etTTq@Up`)V~7YKScll
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTarget.class b/libjava/classpath/lib/java/awt/dnd/DropTarget.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b25c5b56c972d1553eaee4797c82a76c5a0bedb
      GIT binary patch
      literal 6159
      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
      Y$1?0-4t}M6{u;kgnG)>N1>T1CfAKy>WdHyG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTargetAdapter.class b/libjava/classpath/lib/java/awt/dnd/DropTargetAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4436ebcb67e54d81d0d2f59ce8170ea62cfa3754
      GIT binary patch
      literal 817
      zcwU8(-%0{O6vn^N)m5`hEBgnQL1109L<Er$h}xCtMIzmfyMvC{uB@Z=T3rQQ^Z-3n
      zbY@-fB6Kfy&Y3gc_dBy^ety5c0bJwQM2w*{;&X2CH)T1lV>Ntl(&hd@sG7qkO86!W
      zhV4Kz=I+4i^hd&0CXx&%E1WGkRl*fML-IkoQav)nD;GTmqwYB(gE%&_Fp*-&wWKTB
      zv)8`xySzUZ4270w^Kp;+Qt!i}p@wqGaN1gb)ha{U@%f<XD&73NvP$33qPcKYRo{wH
      zhqGuYLrTLtbIr~>q^Q|SdTxD4V-Zex+<cdcp}ey7vTbR-gdy|n&3s!tNj-w%zrVfG
      zcB2d$E`14l(F8>rE3IkT-B4t@dijaW2PH9NY0Xds?qJ{^o0Mf2B5WZ?k)9g)5O5oK
      vsJ1jG192lT78i%1QD+701U+}75$y=XUNqt*0#U?%6vAGKI0z7jf&S<Z)O?#f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTargetContext$TransferableProxy.class b/libjava/classpath/lib/java/awt/dnd/DropTargetContext$TransferableProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..921235ed4012dac25162aafd72ae90dee2499e59
      GIT binary patch
      literal 1371
      zcwUWDT~8B16g{)FU1?XTeAG{{V9|acTTsyiqsCSONfnbK515z??SM<_ZnHbZ`k#Ez
      z#Kz!*KfoVlyfZB=v`TsC?(Dtio^$Wq)8Bu7{sORs$0iJh`~g4YHvc5;s#~>-zE|Jk
      z{=Sd}&y}JnQ(HcFgFWH%-I{pgd(F=#LJV<TRpaiyy}5fJD$+!RVXnu;C6}E_`y>T}
      z=>#RO!fOm{hryDklBv>gidBY){NMzsJVUZ{cKZtZ#Bm+@lwmzR416B(oy;~vsNhw_
      zC>SnVh{1|t1QQl6Vv=Dbo!M5IgoRN=)#<7Q6Bii9N{%aDH$LtPf2%$1xW0&O?mOzc
      z6AY=@7?y`LJGdB{l}Uzht$n)*!X9IaG|pO$A9_A9&!;o*{xfM0w;Dqja~5tP$uQ*v
      zy-c}LuY0}}RmC)%C$poN?pU~u6fI*<N69L~E9u7iMqpSuk7B9coJ19U*{q1VbUZgO
      zaqpDvPtv?~gX8hqY~3;wHp7Ijay)xuvzt)kEm_DQODbir;a9|(qZXMM*x8~gC(m!V
      zuJ8*r9t48ASz(wtd)MT%fo)@!tTjTvFg-)cVf3dCDbE4%xN@cb2D$PQp~mR+9)^xg
      zW^*mXvp+DNU1(t{JKe&SZxlChjh^EgQzYK!#P))!3%E{^B<WBsZr~=MPt&Aj=+g|T
      zt6s=09jyoSX7r9`zhmkMvkYIm3K5-I*Q{0>)nR4IB^`!mgjVb^#gIF~yn!!$6t6Tz
      vq7Cad7Q<bnwLI;FaygARuz<yX66cM9-pXeZ8(7x(`!uEMT}eH}BZU3}kPk;l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTargetContext.class b/libjava/classpath/lib/java/awt/dnd/DropTargetContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..048bf4eab1f3337a2d908dabb4978917f3b6fdd6
      GIT binary patch
      literal 3312
      zcwUWGTXz#x6#h<|CT%iY8fZa_SddH70zp7jipAQr5-A03DN+!eCZ}aEoryD(QdmB#
      z59)*ZpgyP%>We<qwFImeUR+Dp^8dJe^75U@WSHD&A0{(%X76u*-#&ZqlRy9c={|rb
      zaXW@Kft@$>B|W3xbTb9BkjdIsX<D}zq&sSvu3UCwhzM-<Y>K+MkU2MZL*}^}71-*n
      z8dhdX+J;^<ZtHVJNn^)*osqU<SmuRXRzSQYuz`S%tDEkOUM$OwzmK;6(f!{)e+k43
      zK}>;1CR)%LB7*BZjpSY8Iz-J0L<(-cB#^FkD@kcLN;%I}!bDFRrr{0?>`1i?mYyN>
      zs8x`0w4+x;659mYQ|Xy5kfR0-8w55@7^a*oFV0DOx*|O}Vdbe@r+&WsixKy_LAL#^
      zg8A%}K)z)|$>>X^ACeBu^Ia@irZj2X8#WHshvIkwdt=xmu&o7@hJNf4=+X;?Ny|0n
      zZwVYotvjEUl%zFmMmIUxa?x6nRUDRrJ6*eJkyNhYa!A8QY!Zm+)lZuj8myUeZnCB-
      zL`f=2S0ywxo1RJFDLfs+ae@8oq^jWvjxwH8&gZ40>Svb4r}L%6tm_L3@uY?mIKZ7K
      zaN%4@+PWe_Gh3>%ubMrtVOUi};BA%E@~DOp-`grR^RAe^s9{Wb_b7g4+vYZ9bypuR
      z>PwbQUVBsN%c1=9lWXgyGp~dNc0&s3jD`s?LA@$-zD*5OU(*mH&V=ExWRlgADZ557
      zqt;kfT~o$_sk>#HnLgfNaB^*8!>l=hS2UbPE{<u;#BiZHLOh%i+tzP68ZP2hcBAf-
      z*_-l3hsMlM6Mj90^B~w%xm2=jR~D52+SJmsirN(oXEB+;RlFX<HGz$_F*N9y6X?vd
      zbaX>iVNa?FGZs&D-h&m`y>@7hi_j)jCd0m({ti2a?dTdGTUK?ZdLjmc?N(FrIdh5A
      zw~#fnLCppBs!HC_ATiGYkhi7o$}skM+gfIyo@tf48XmLjVjF`caQNY~ZchV;I83~$
      z<}9;$y5(H1j>`4$m{l`eu(0;5$6BDHsAe~FJ!O^cyc{>w4)r#~KBT}nl5(ag?a`v{
      zIFc38-5?0NSZVFNIuOBj#L&s-E}pw>i1XqB;yrT&dUsAw-qn@F7FurQ(>T}Lc#jX<
      zL(jnA9c=&Jvwf7m8;K2EA@)_GUPB+>dMno0fyV&vNkw52uoI8_m>KUK=ot6`+gAd(
      zsJEE+V6=*X4<pp+;5#4jojaBDUF@#+zaH}M4E*<DzwbZn3yLZ+sRv@>-s&P_njs<4
      zKuFX}kBU8jZ9dj9+6WIzG{Lfo<%HN&u_746fd)2xcW|&C;U*E5Td>J+(|8QwF#kj~
      zruE==s7=dTP1DN5$akLfi6rTq`W+k8t#1{_+EBmWZ?lfxVJhAY5laTdl6VHsdc;ly
      zB3ob&HDbR<?DvWNK@05Xe9^<f7L59$yDQk5x~<}rXn_8Z&>wLRKMp0LJJ^wtwaC8E
      zNcIyVeoBnbT9D29WXIMZJKjk4b3%VXvR^hO%QMXf9P<IUgvhRfe{?U3l{(0;2>CTZ
      zz6n8Y2_VmUy3ct&=j;0HE?)i-Q}uoJZIeEW;1XtiYNz}>Cg^{8a22n$p}r<pLWxTR
      ziA!(<6uiXoz~Hw94_L6VTPwaHu+pIT7b^ahitjg7Tx73TnC93J%0BTk%u54<JMN)W
      mFZMSNqQ7DmV(P&4z9&#-)hoeEp65-rt!iSyVIpt~k^cc-#=3|A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTargetDragEvent.class b/libjava/classpath/lib/java/awt/dnd/DropTargetDragEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..220357182b7e12811e20eaf740be393789772f19
      GIT binary patch
      literal 2244
      zcwU87TW=dx5dKbli=A!ly0{HVoZ^HA+X-=7sJSE!F>ylOx=E>1LxZ@S*jsng?b@7O
      zhe}8YRpN!dBlRhNfCrFBDuG0KL*jSvI}mfunzdtW<-y12^369h-^|#5{qyVZ04`%E
      zgb{{U_V_-}@vod*-Kyt`qS@N!qM<uQ!5i!Qy5)r6XP6p-QV52atqX&jRbALd)4E$K
      zGO!yAr`DR5?QqMfa<i=mo=#6h{$^s4AyOxXLd_vCAxm^&i<*138Ai=!jk|BLvgi1A
      z)3BT+hTyVc8O{pB)pU7CROHstA3IC^#-&oG%HUsX*7XQ{IIAIwml$SGB+67nIL9!p
      zU?#U3xy`m|DpFmnKd$L58Eym#j7!d!8GLDJGs!U1wJDjV-r#0IG}@0ywjR3)jQdup
      zD01<IK~>QZ!I<35Xwcl<s~S$>G()s(So&uB(XKAG`L3xm#LFa@S>;p%I(IJp&I5zQ
      zoEeszS76dKRC5z0$0td_aJpNoTikv~#p5-Zi6kVqX%bn6o70d%HbRZ|MhI8_6K^Q7
      zh6TJ%EmJ3!t(Go24UmwCwh$C&kvn|D<oiuQX<bZbKIsXSo*cm~`@Sx6UEGrN{<emz
      z$TLh1WGdKY!=}9B>5NO)b__Eo?<mu7#b{XEX$z7w|3AR;$^KVV1S=Ze!Ml{3QoY;w
      z)FUOS)cYFNKqC{hn{823_3Spy*6yBOa}>{ph7YhxLqR;QcHYR0(V^^3jh9UC+(@g6
      za^P7d47(d_rQK>Zg`?M{xF@HU*^wb_YPg9q!$|%9@m3pRMa?2~nUHK2Nl?-7p`4ef
      z%&BAG_U~M8636&@aY~qvG;HH8al83#7}9=xK&vlGLZnD@A5EK|<}QFBokDaP!6@Q#
      z>S!OAGpD|3;^;d<m?&bjo&i{tutB<gn4N!)_`;tU`wfYE&vE|6yxLFDe(FW?8RnAy
      z1Ei9H1571@2RNUMCl7E&tsX2soew1ZiNKSQC(pXK+2kQEWE1{Fq_PW#nEhD=c#+mk
      zoTYVx0>6$hN)*sd`q?QXNiQjEVGg%3PnurB9pq8LGD%ZJmC&Ek&1cxb7x)|;I(D&#
      z8sUKzHyyl&G@y1gxs<HjNdZRGPD<lbJ1LHz7-z}T7)8S5?7HHhKxl~%XMe%s<Pk1)
      zLyxG32I>4jxjp9sJ-1=JNp$pwAP2TXcSW6nQAu}%w|?^2g6iH>Oqz@7Fflo9gj!PA
      z<v~2x`gy(_$nzdnJ8?)p`4%Jl3-l@cfy+l&|K`U&p8X!4n8$OS3gz<TI&lPuW41qt
      zuX~IGp79MYh+gAVzvpiU8q;)kjIZ?;X8s7b`U$=pQj{&~DCw8xv_q9YF6N#75`Rwv
      Y^>m=1G^Q9>*lNEPKMb`0SfTFy3yPW3^8f$<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTargetDropEvent.class b/libjava/classpath/lib/java/awt/dnd/DropTargetDropEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..210fba75833ae60c7b377379b8be6bdbc9f1ef1b
      GIT binary patch
      literal 2590
      zcwU`UT~ixX7=8}<g0Kk0hSow5ieNsF&}#7mij91<sVUZyrjoX{OR~kK%O=^~AT!=L
      zo$;n#^u`;!Fc*5^g%>&_Frzc}PG|fR-s+!le9ze>gzaXS@gh0zIp_U&-e;fp{Q2)M
      zzX3Q8IfM>|kxhA9PRpNK>9Sr<FB+9<UN$xqi(5<Eif)DAXBcYZB|I4VOvO-Tt)LjD
      zTG4N17a7<!hMt9rZd$T#6=bch1pYqz<e$HWzx<scT&4_}l10wsnPmvcVq-FNYL${~
      zU-adgRc};O-I`_SQq3IQYxy0DD>4M<R9&^^87{_iZ6Fc`OWCnz-N~}qM1jG-P$?^6
      zFhnKvV}N1ie<UjMOuac(S61p<>xz+=*ENM9BA^yzqK5X)q2KyMr8dvCtJ371y7iT<
      z5`CeQ0EOYhFo*v#!`O-N6NL~)8HR<MChHsNmAa;hRup4tr=(Ol`(cb=jOToXV8nUM
      z1c5$^$!eOiA!`|9qrOF8TjIts=DSP+<A1&`Vm2iqjBakdCPA{Tw1ghKz^(HVdeO(w
      z?I_^7Y(AnL0nRmr5Q!(AmqL{HR5uK&z9?JrvL<g=3}SXXp19M(0bN;!teX!NBYosI
      z%S*o{;cX0&_)0c4Va(!E2y=(zwB=C3Ma(b^dLqb}In}gUK-Vo*OY<|X-&J)(m#w;?
      zaHY8&=1#^vKg&@rNSMdF#DQua-L2NE)rw&$WzNCLnG!{w>57C!EYTo66sO09*(Q=E
      zlR96m)QysoIh<P(3C(ejqu|5Y?xlU+Nnz`MqV-!ItI+Bvy1XIbI#%elkV{-$JTJ{p
      zoaUC_<|TZHn{;a^n@UOC^5feQZgJ5{{E1npY*jVI;$s&t+F^Gje1tXn=w_X=nuNUf
      z@J(^*i(cq$3ELems~q+jj|rXPePEQ7<RiTYaF%{S+J$J>flfrY?#YgD)r*xhFIG}K
      ztv%%1PdkPeX(v-`fY$D0YBCn}`wnpGCz0qh{fB7<uF!fFXUKZPcEw9n6v7(B5GCRk
      zFVZ0_Ufw4x4!|$U4cO(_82NCZwPfl5vB^Ks{VPV+4sh;SO4#FMzxph;i;0-Ofzeo?
      zfuUHifzz=_yn%l4-*k&4W`a?FH2ApV@$S)SGPZ|gGV0&MWO8y3Q^{yx57S3Y-NY&S
      z&r>S}bm2CETSF8@#Bi5by@v^Wj1=x;8V@i-{LEpU#9Af_9#O1Do;uxDprDFP)ac(3
      z<Xp8IYm!rIl2dDvQ)`k_bI9Qq|1JTFPv8Qb@o)J$QEh*pG_5>GAo(+<erz@o6o=cQ
      zuw*+pg&BV(oZt&ia3=-7xsP|;@t?KCcQ)f`#>wll@XdJTdC#5abI&|9;SP>V<jvdf
      z;_<0{EdSt2@P$Y)U^_J#>>^IGqVzSq@4?5UJIxbMK60MHNq6v5&tQ5Ayvh8)O~O~6
      zB+z5w#AjMb7~IFId(L(#?CUl}aM|$k^vF2rW{$%txU+pja%^})qKBvrq@p{?w-okW
      c8%TFawH(4dnwRJ4op#gvy(hi*h1Y}s02P?}>Hq)$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTargetEvent.class b/libjava/classpath/lib/java/awt/dnd/DropTargetEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d7027c7b4719f9202bc2760a7a8cd909a0987cf
      GIT binary patch
      literal 629
      zcwU83%T5A85UhrURX{`p-!VQ8yb?EF)I{S2AJGs!h};L5=#q8TECc#kl4wjk_yHz<
      zh5upf9f${w@iN`jsjjY`e*1iR1+a-F8xg`%NA!gw?zGcZZRa5HZ|fqslKQYOm9}9K
      z@`lmVuIHHId9x#1nvm(rz!hFY23^-zmnR1VIwee0ebv=M>4xxnGFB*9A3FIyAlNNm
      zX?f3`E44p{R)>sTLVV9vuHGlC7yl!d8U(BAw`BrRWKu|BicOE&JfW_fp<^bFgD{;!
      z0!hMT%~kTOchi(XT{JyO$kzN8?<06C#-pO8uiY+T`7amdOW1IZ^IzTwYsJ!k{t1Z-
      zzZbORksA)o{m|YB+p)^dqkOgq77#<6k!{cztZ*HZ6R$qOZ<^6D;|RxOx$=z3a^(rx
      zfg$DiO&h5#7TV_K9po9!4Cx$a0h5KYd{WF|ekAG`48+Qh$Uc0_#Z7U~$fSmZkqoih
      HkhS;)*7=ZA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/DropTargetListener.class b/libjava/classpath/lib/java/awt/dnd/DropTargetListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97c74ba50c148be06304f70765b1350e566cb702
      GIT binary patch
      literal 378
      zcwT)_yKcfT6g}n@-j9i~VnBigi<t?PFd;Ft>h8u?Fp3;xOz5|D-~;%mit8wXp@P9a
      zSN3`6p6lQ51;8AG040XEy~qR?XUC<Hd}Y(ar?9bd8+~-jC>x-{(9cPUFfreL?^Wai
      z)EI{O>&fYahnX^W2}46#5r@Y4c|6%XiCB4(7cQn>40W&BW?nLo#92m8r{;Y}p-L9t
      z;g5C<qo<A!w~DuT9iAQ@^yWu;vXNTrMA2UVTbOwlTA86tr%L@*sg?kB_<9-zHVbT_
      Ponr@GVlwpTE}?$|&f{i<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/InvalidDnDOperationException.class b/libjava/classpath/lib/java/awt/dnd/InvalidDnDOperationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3cbfa7c6291de630a8045a081213b765e5bdbb0c
      GIT binary patch
      literal 553
      zcwUWAO)mpc6g{_}Qbm;(-H2VQiHTT}N+>bXuqd;CIxqEP`bK76@t>@$nsmY5Kd|su
      z#C_9-ghVXf{mQxL-1A;P#?Jt@QOhGmXxxZ9;fQ<V_}X_|eJ29tw{`pcRz||8P#-<?
      z<gG38$Pm^Ocp!A&af3kiMbI_E$S)9~6w647z>`tT{iWL`&?#Z=Fx0UT+IS)u%IxF&
      z;O+J0U`)vEDXmP4kghj8Lgp~^WdUi-7g4}0VWFe6JR1(KWON~}0!b)$!X66<mf?On
      z%$REx6PlfW``IN_>YZ;tT@xwY-)(qSy<*ju`1IK7{Q?mR-EbK7<gv2i8-M9+*==lq
      z9rC{uYRDqTInP}RGyKRp<yhp&4rk(=-5g==DS<3-EN})|$Y38Ou8I>77Ew+}`PeBz
      ii;)(a+iZ@o{FC8?cie=bIzdetY*ocdBEFjJtbGFZKYOkK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/MouseDragGestureRecognizer.class b/libjava/classpath/lib/java/awt/dnd/MouseDragGestureRecognizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0cde8b7ed718b1a89223ccea32ccec929ddec1d2
      GIT binary patch
      literal 2199
      zcwUv1YflqF6o%hvm$sBe?r6D#7id8W3f_vS6f|ft21wNpUY72puC}{oyRF2;Fa9GF
      zV-r941N>3OGrQaE-IXt$IWzBh-g9PV`}@z&UjWvz7e;_#@x4+}lFBD5sp@L-z$lma
      zuBqf7@sd?G`6164d0qR=%`hZ}g(h(qU5H`I)A0(|EeD&?N*33JBGO1|P#hSRX6Q8?
      zLugCWHEWyUXera?d}Nf(98c9Z(nj&4p%W~%->!D+tg%z^EQ6FbR31eT{W5wHWf;h4
      zI)7R&o^bP6IVo_4;f#?}3R%U}MC>j~);q1l5YPPQ(WMvyDka3aHo?Gh45OWTVF)TY
      ziv;^LQ}YEnI{)q%*3Woi@vJzADRB@J3~Oi0c9LgB@-$t3_hd)7AcS)aLnhCQip^Tx
      zbVk9Yc(xY|S7a<=jG;GIbBQ93<uDR-DeWc5Six0>K}A)Y-WtPvLp2>9qg_%QNf~Qc
      zXBe*mTA$)#XH2uqepMr7y{#`{u_0qq)Hq`DqEX>ZRfzqYGH!_yVh#JPRmerLnl5O$
      z4_sxK>0H!a#kmxEH1t|0|DmZ7pP9T=62yKxJmdwg*s-&{r&BW`>~q3X&8lyT>&=TW
      zT69XT*nxB74>j?@%y$1aRz-2rJl%K@0rVhDe@*?6#P>*ReH6W=)gBt7iRG2)m{f)Q
      zjiLa~i8UI5JETrwfMy$x5`!25?Ab6zh$CjB7_-$;jN?4HiP;6j$V<3QxNgUG3`B%m
      z6_c%AJ5*uX_DVQ9&nx12MLe&F>m?kfU59;&g?pGBs+egtc#II9*amZs%rgjk24UAg
      zVCP)yHpL=8lvu7}zLk1N2Xkao#~qbN4Y^ba7jemDrAZ@vh7#X#Iq?Ha?zmdVp0kU4
      zP944=)Jq#JJ4r5D!nLlz>+X1?75IvPuL<y`1CZf1U9|(;wDV}K4hY#|wV_GoHOc6G
      uY|$^nU4Mk;gV^>*=st*h{)mzf;=VuP)CcjvAMwQpvEz^U>Vrtz`rW@gccD4}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/peer/DragSourceContextPeer.class b/libjava/classpath/lib/java/awt/dnd/peer/DragSourceContextPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..441d7d064f0bc47be6a099e8590ab54ba24b4bc9
      GIT binary patch
      literal 457
      zcwTK$%TB{E5FD4%(DHtq-~&i5M4WqUs8k85l|bCxWC^K)9ocT^xAnjW@KK0$E76wV
      zgRR+}o!uROeJ?)&+~XoZOW<}UYZ=QA7iTJqD<TsoM&?g?Zc-X(<!Iq191YMGI9riR
      zsq%O{ol)upy4FeKe2Ktw__(9i5bAI8gSoNVYz0Q|GN&y((S>sT=tZFSut=$Lg;q8|
      zS0LJHGE%iHi!4#exFRDx?U&Ev<>c0_1TMp<(cdqyVO)g`f*;_<8L8|mt4~X^!&27T
      z*ufjyK$*Z^xEgZ3=&&eB;QC(+@4R+LfJ@*{n;qRphjHK$zXu%Y;Sk>IBOL$9oZyrZ
      K{{r7Foc{ojxqq|(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/peer/DropTargetContextPeer.class b/libjava/classpath/lib/java/awt/dnd/peer/DropTargetContextPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef6b334e32eba51d92069845ab0440e48fe75cfb
      GIT binary patch
      literal 631
      zcwTK$OHaZ;5S~S(%0uvlih5Mri;ZVbhDw6LV4~rGr=?w+lDgY$SLC;O@CW##jI&E4
      zOSFfb%zTfT&U}4;d;-7~oH|e<a51Gb>eF}SM?CT~#-txekv&lvGu0JbvAKG{ssm*L
      zEkjNzkNx3f%0h*uoT&x*CRB;wIf1g<_eO}se~>lT>l0{TY1xCovFi<1rdWd41lrn0
      zQl7ss8Bj%gDV+(4W@oPVZ0QhE1<hab(4c7<&`HV&oUb&rg*FeR)!TW<GBdmb+XTFo
      zG5dT*(<BObFw9V*X}^4&JIQUgyV3nXgfulv7^5`}H8qel#zZo`%|(Lv$ihWt;X0{D
      z7`oy$OPOMN+hfCj6mK$Qy+r?D=id`v>gg*4um$L^h8JCj3h2u^uwmjRR86cw-NXiL
      lA-{?2GR78Gc3{^adxdfz+9n<p`C*YCK?hZMU3^P$@&kHQrak}w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/dnd/peer/DropTargetPeer.class b/libjava/classpath/lib/java/awt/dnd/peer/DropTargetPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..895750c983306411874323255b9c7da567929ef0
      GIT binary patch
      literal 209
      zcwRg8Z`VEs1_nb0E_MbcMh1nf#Ii*F#PSmTl)M!Eg4EO^eV3yAf{?_b^wg37AeWti
      zg^@u3tSTolFJ0e1DJwO(gpq+aF(n0|l9541!w1DEgq*cz7|?{G)ZF~CRAe1o!TF^{
      u$*FFcIjM{c!l<_Dfy`oKWME`qW&i;upd(lr*cd>LVF%Gb84i#*11A6`V>dtm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/AWTEventListener.class b/libjava/classpath/lib/java/awt/event/AWTEventListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..221d7748763d6328993e503097a96a9839802c54
      GIT binary patch
      literal 210
      zcwRg8Z`VEs1_nb0ZgvJHMh5w;#Ii*F#PSmT)UwpP5`D+;5LXbxC$qRDH7~V@oq>gs
      zK>(~MCowNw-#;lUHMxYHfsK(t94uN|l9{8AqJ@!xA8eLOW^qAcNpePN3L}G<h7a5#
      zm=)HVVT=r1!TF^{$*FFcIjM{cqUg5kfiwZFVq{<jVpgEL8G+7WXW#&_7&w6>69X3j
      DTU|J_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/AWTEventListenerProxy.class b/libjava/classpath/lib/java/awt/event/AWTEventListenerProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6bfb77b0844275de8e9142e0bd3af250ee662f9
      GIT binary patch
      literal 859
      zcwU8*O-~w86o%ge3|})qtCqHiQrcn$jGefqY0|XP#*9WIv8yfyxGA?Hm|;NuQ7%mU
      zh+Q;Y`=d<Hy;A4`!eVCbx#zskIq#jB`-fk@0c>I|h7jTHPjBcs-f7^7q38zA$8Ys5
      zwQyxW5MAN#`MtCA7$Stct{eoi<4miF5(;xzgvhbiKO)dJA^Ki+W$=MevbWti!fN@D
      zwV!$|kwh3N3kjroAlscW64xg{cw!-jI3eT8uGk$MH-umJ8XZAcaC=R!bLja}#iPwg
      z(3X9|+PrDB;VL1a(>vNxyfgM#oTq1LMrS_D{)rbf+oDCt+7sD70ozEjjb#gYtPso}
      z;=iL@w#zf^n=nwY@B%LhhHgbzoWdtq%-ovT2-{_THOYhCz;BA0RHu@gYX6;rp~%yP
      z`7-!gP-o2_mWmTlbDJFPa~$EPS=qRSRViE}bID-{Px+qaBv51d7Z!YF1n^4lnOMXU
      zpjXcrOL~>XbB$+TBYcfXAw{a(AomBx`W;q7m~=?$>;Y1!YkKyvdQ4AqKV^dO8gE8S
      dhig<nqjH7J#TXUUo8L9YdMp@W_$Sg;rN7R4zuN!+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ActionEvent.class b/libjava/classpath/lib/java/awt/event/ActionEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2fa8ea42b65b7aa9ad0b6a8af440e04a70503384
      GIT binary patch
      literal 2338
      zcwUWFTXR!Y6#h0znnQXbZJ;$k)gp>%(ozu+q?8(B3n?juCbZzKoTjJEf#jqnCscfJ
      zd~imGHy?QLI*u=lGwSGQTSsT~-5I=J@%qZ2aQyZ@>7gyb;U#B%YwxwcwZ66X&R73_
      z_62}laDrGTu;rX_!RR&SonG^TX*<2iyknK^L1_o!7ijg?lM^}R7HFxO70W1&o0Tf}
      zo=QI^Ach6Psj^*l4BHtuiZwHE`O>xLPPg_Z1VY)P>7m@@NHTkjJJUYW3xV~i+*n3A
      zrGu%g9~sOgJqNk9WG3ffO+Zhka_Q0IlSApTY>qzPb%Ex(FO$sXm{}d27#tfK9UB>B
      zW?@5Blq#1>hCMA1$*78ohCSPxbt;xU+ehkBdD@z>Sdf5!zF^t{O$RO8at;Z^Vk;s>
      zr_Pyqr!Rf;AzkAPO_it35bnXYAUXv$dfF-BPS(ttspDR37iga~osn|Y88h=-QOh~2
      zWD59VUBe*=+^=IRb_m38k9{~T`8Q-N+dN(?O_`OPF;z5WwdFiJWw2kwb*JAcSS++7
      zbL-wylcs99R>_;I6{}|;u+E~E!ThqSUALDevkbw9U9z}`s6wNtuJQG(e~*qk5tY`%
      zI<}xmTKjcuMl-ui@sg{%x+&JxsINipoKWr5mEc~JDRY{`GiOwclDj*IN14#tGY;2g
      zX3UBtKdhq%%^EmTZEL5jJ71da*D%EEQnSz7<$1f)xj1JkcL)PGD(fX*TkPf}r6L13
      zrXzz9if+u!nX;hnMq6)kx#{(37-eX;99+eBQl2&@ur)UPKQX*7p>A*RW!$)q3H0-*
      zqG``M1?f7Y<8eH}8&Wl$jPi1RVr-Izrvw6t5z{d=OiDB5REio5t|yX3M?;<mC9(x;
      zhBn72B)y$SD#lzv!z^!i;&9Dz%JwcvW9c}D^Da%QU{sQPW&*Kv%2lVN!^Q!IIAym6
      zJ|k>m^j5X8zeU;fP*#obkR_+SWyN^!l!4gBw#uianFAI;6H!pUM9?^9A$pgw9J}xe
      zd<XG{6}W}Cbp?(PZ(M;l5x1?u?W=G^4m)ib*{r@Cd47Z3vlSiuy^H8Hv7cW(p6KZL
      z6nFcUaNkGjga`N=;un}_{IiJBio1K!MGMMGpqnR2i<7K&>)1(NpJM5)v*gJV;5S@n
      zY4bOrd5NJfE1Es-W{)Q9(S$vkaGge4vOvEg+)*cdkt<S&C<&MFV7zAmyW{Qt1?-Kt
      zH7#J@4eoZu^%|vlou|A((ch$SZ>c;EDZ!#%9#JoksFz37%Ok1;_A5(fB%A*T4%9P}
      zQpm_a{1fc{(4%is&MS&ecQ@4O1p2Vu3ts01?|pww@W%~<52C*T^S<}i1b^8u_|S6N
      z;vfr>#eMKO2F~z+WUKG`+t4DZD+ojemvAJLkOeJbIC7jnGQUNfh-7I`Bo=Y1Khfbo
      zyNJ`0JNW#oys?od<(k9+7eBp>TQt{kcG=-~@szir({)UHjuzK3qv$$X`WI0kYw?D@
      z<GdxnRo<_!d4Ikky2|E!i{1DR`|&*=f*)`cKVlR=@h<#~N&Er}zhVx*;Ucc#1^kXn
      s_ye!tPY%dmcn5#uUHqd|>vWZ=tF{@JQDz+fQ*Z&#sPPb}s7$K=0YdK2tpET3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ActionListener.class b/libjava/classpath/lib/java/awt/event/ActionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0471d3f3bb091ce20f633322f8215c7604387b3c
      GIT binary patch
      literal 215
      zcwRg8Z`VEs1_nb0ZgvJHMh4le#Ii*F#PSmT)UwpP5`D+ylFa-(pUmQt)V$Opb_Nzk
      z1_7{=oW#6zegCAa)Z`L&1~x_paj<A<NoJ0|D@Z3y3nK%6BG`<8)S|TfqTJLJMh1Be
      zAFS4ZHCk(iF*0xk=a&{Gr@Ce4q%txHqdGzlq!(x-BLg!KvjQE@2y_)Y0|$u3zzHOo
      G7`OlnMmu5v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/AdjustmentEvent.class b/libjava/classpath/lib/java/awt/event/AdjustmentEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70ce2f7fa378b4f8413746a979d74bd1356b792d
      GIT binary patch
      literal 2301
      zcwT)}-%}e^6#g#BCNWtGq=Z%=1#GQJppDp~R$AH+Lc1kRl!R1JiwoJ(rD4M)8(QCd
      z(kK4_tvbHt#Rr)YaCG$1aeVi;|AXT{;CSv$vRT5?hwMGy`T5;*&&kjKeftA|Nf=&q
      zF`U^{chtE0$c$?{nqkHh#m!pP+#)f>u@`QJKFcR@H!su-y;ZHEtEGZgsp@58Ntt6{
      zw;8&VWut1UhFMTcHBHJ6y?^$fe~Y{1pP0M7l*`{qW%8@@%3>~0{)!9eT4w06+0qGa
      zI&ISw66vMXYVuYhb2CL%PAp}V{Hl^kE~dDdQh>Fzb19paF4r@g&L$TQt6i4*P!77L
      zlwV9F7dVg@{Hkb#x>nK{Lg{t~EcG;1RjqF2-`gffX@_5%A)r?qj=Hfy7hPfST-6QT
      zoM9M>I3`mRC0bx`C(A|64~DZcMsSW{_*nN9?%$Kv4J}jKTGJ}|2G?M^yiV_;((4dz
      zD&6J-y~;3}e)?<El|0pQt+GxbU3!tn(Y5?=;R2^~kzt@or=%Ji@$A~Bwr)-n@n?wf
      zi!z1~;L=Mnh8xml8P8&nOE1d^;|vYRhGr>vwZq9@AVOc@`S&bVZ^HjiD9VZurTT
      zlVWc;`BTdS+iFGK%9$0R>u(hj)EnAqFA_wdQ$1VLOGT~1X(wgG5bz<zFm~KbPS6x^
      zHrIT(NwZQj9vbCG#wc%{W%5J8f)}(Qy`9x$q;ZGAD@G@KpW(bij~%%CaRXWYEU#11
      z$WeQ=;KL%B4)4o^C__~9Et9n!mWk$SpkqZW+nbi{XdLxi7CU5V-li8i)Q^UNQ@<x;
      z74Oo(soUF{L9=$j=?+I!&9@P^U*jp(`Hm>ZJNiIl(mi2YNKt-+$3Eb(D^D-7DdQoo
      z(>R*t)+qUNVn^n6KEVAQJ9LpJ!x+sD|0n6jAS8GQdHG)we6$aK1T4(=qq_s2=)gTT
      z+)KF6hJ%Dp+HgPNkPQzIK4rtFMZ_S<LB6fx9B!VppLBZ3cLbyK9V4U?cZtqGY<xHz
      za=Q-j+^$IUJbnFi0w2)%A<mO@x#5Zz5CMb~rBX~tv_--@fN}b{gv1NGMY(g$avzb!
      zLuZ)E9bh6B-a|YVa_?a>Hok{Tv5>TfsWyQ@;ruauKcQ4ls576^jX$Hrp9?}Wjbs*~
      zutg|r5ei#`!c9V4;=Pc_^A)_>q!y=>M@q4;ap^0If=4LpqMY1tXqIERg4Y~^C%^0n
      z-gOL~b_|Yp27m7ud==Lmf~Puze{u|-!S!bFkK%cN$KT<`G9{Sp>stN-zTjLPQgHqo
      z+&VyplX7$A8+BaaK;j@*r`IFk<zT6f5e_^Y+^r+Xfscb_p6IQ8yu<sl4>ee9$W!~c
      yzYo3L<`@kb@C)t6uQa#65!2r>g+DNhKas^>xJNn_f5Rl7_MIMEcPfcYTmJ(j{n1PS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/AdjustmentListener.class b/libjava/classpath/lib/java/awt/event/AdjustmentListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b42359470126e8a9ad14baa046839e29bab4ff09
      GIT binary patch
      literal 234
      zcwRg8Z`VEs1_nb0ZgvJHMh3;K#Ii*F#PSmT)UwpP5`D*%tkU9=Tp-gYv$!NRFSUrB
      zfrXJl0IV!0F)v-;KPf9UxrCj8jgdhdELvKUnWOJohNOj&K`aq&PFP}2X{vJuP-|)m
      zBZIPr4^A7wW>{;6F*0xk=a&{Gr@Ce4qylZhbdw&)44?xT8JK~X73d#Epd;BCI6y20
      KP9Vv|zy$z6)kAy$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ComponentAdapter.class b/libjava/classpath/lib/java/awt/event/ComponentAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72763f746f9b3aed16488744ab357002a8693749
      GIT binary patch
      literal 765
      zcwU83!A`<J5Pb`UYDG{K)RW=~J=hrIMTm(Z7!MT_F?e-pH?jm;(iTYkD^DgK`~W}7
      zI9m`B6S9Zy%)EW?&Fu91=kp7|ISx#u7!Lb<!fif{Z7~skY&U}8DDWw}@%Shfp$UUw
      zD<KWI|7t&U`@)S)WEqZDNgWx*!WSV!wk~}cUo)huCmjZ(5qQEv8XGy7SYs$S(ig4q
      zuq(nR-W>>rq7%4$(BYv}^&B+fo{ShOj%L^zjq3hkk0O$9!ecnDuGBSESyQ8Bk{jBG
      zhRcv&bhr;D%6|#8d%@JFS1o`$>3M<>s~wC(SKLbVn$rKV&s0mJ0$LM&8TvaJinJg)
      z*QvUo$P{||0qdQT6moQ06oD%ksAH3|+>C@g3KVG-*q$3)CK|$);%q{0Cc^UUaxPR^
      d5j#oGUA;w1V^PvuJZmh<dW#p0#a_bS{{=m$jXeMW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ComponentEvent.class b/libjava/classpath/lib/java/awt/event/ComponentEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08c2ede9db852cb90fcaf41be2bd5528d237a61f
      GIT binary patch
      literal 1641
      zcwT)}+fy5596cXUvJFdtlp^#ZQLE&F#CoerrKL%bts$u-O-i+`3oK!4*v%xH)_Nbu
      z%jmn~=!?E}e5*4~I-@g=zWOKlr}*G_zHh@qn%bA-JLh*hzf1DhzrX$t;1o7O=o2_`
      z!@Oyx%v)Z{x@kFHD(&vnU5Br%gdq$Fj0G->m6D<bMw?c{Hfv?8(X?IXl93S*7X*gW
      zuG92P$19t)mUW=M^UpVhpZ?AYjHC-I7Yq4pzI1)bSS^<5ZuC>erof>+Q*N<Xl5Djr
      zV5LybGXK~fvzjd$SF#!DYIV65mkX7=q_-$>k6t!1nQUHQ@Qm%)-h#knEEhBtbUbgw
      z%K`&wchd@^A5%Jx;Hbbv$G2uW)l^~qhPBc09Ld>^m2d5=TaA*rUZavo&fVZpOpb=Q
      zLk@V`c2i(F_s~htQ(e<-H8vPA{vdGzeKx11S1m6frMUQmoDV|aNgdO8N{Z@{A3}_L
      zZ=AqT-E5dUMXzByT*CNnb`|Wi44!4(`|0zotu3n&MiO&!ZYhEOSiCHCoYL_ahBQ3a
      zwGy?|sPun9$BQ`4_RV_Ta@gW*thZ>d4!_{MhL_n&&uK(8%y-pOmqGT`u0!$<gY;QW
      zw&lFzxVN0Bce`$BSmcSu!qlJE@i?9cV+L6rOL&bN<qj^Z1`XMOAsgWFAB!0ek(pz@
      zS(zoTqp+K0O~V`HqmnP`C`n!;U$Hm6Z4Ep!@vgL8*0CmS2WeZj?CQ3s;Y}Ljvi?;a
      z*N|YK=k6{}@Zcu@Pm4gfs4i{EmiKwM`w-`36gS5H_&W;WC=OtdC`8l;4O0kXD8M@L
      z@IHKqc;r6&=sr9~9NC8t6OVVr_w#)O6a0LHj6tk)B$CJPVe)6?bc~;2egju2?HZ2r
      z74679fky%LnkFaIi|0pgA=lVRdye1IHj(%RC;!CEcNmthKQMEL|9E$UDuc?)RuyzV
      zqEkU2j)b30$m~+h55FO~b`MYInCqF*%^xwGj6B=M^OZX|t0+rRFZtB0qP7(Eicd``
      zs;a0nJ~bFwxSNceBS^GyzKu*9%aPXuxFX@j0Io`SDS#CTugFBnHs0E6Yk@lgTHNMs
      zZsa|3@8cvsz#KlrX?%o5e2feDg!lL<D)<aFd`^!q@HM`~_xMVUW5RE_GY$>k;yT_|
      KV>MNs_5T1E{a%g$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ComponentListener.class b/libjava/classpath/lib/java/awt/event/ComponentListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10c71883082634b0f38b819d4960dac184d1488c
      GIT binary patch
      literal 301
      zcwTi+%MJlS5UlZ9Z%$mriHnJ|qYwuoA#q>39Y)rSFjnHz9DIO}61^L*L>#)SQ>p6i
      zy4^2V09}+FBm^28H*}?YvXVm5R`$(yXEaY^b+Dvq?;s^mja7lGS8}@CkY^oa1nMz+
      zv?`E;@XNw_@3m$|2X!W2pxGM#I~ALI?S(-3?VFe|a(#&T+MKjN<xPx~?-MimxjF7V
      o8mfQ<YCr#XqO1I@K$0uX(Ni4AK^9T4+!OOpEJVn<BKHJJ4;flgKmY&$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ContainerAdapter.class b/libjava/classpath/lib/java/awt/event/ContainerAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e17c40299b2dbf68d65f466332c0d1c9497be5c
      GIT binary patch
      literal 596
      zcwU82!A`<J6r6?9YDG{KJSv{hgN-p>gqRS5rv?)>+?RHvOQ1{2QoqZSi3dNxk21bp
      z8cj?{58Zih-^}dveSLp?0=UGHhZ4i_lxIBPuR0K!NOUkziRLm9X+P!*Em98-!=5G0
      zc=8<FPo^T$9$bc#P0~;<wIF10doq#wmZ97^8#6cq6$>9_>{Q`li=iG8f3%uUMEb-h
      zGr`aZRm5jwo=Vf_myUjsONMq>5Vp%ui`0Cf5}NkoSi}scosFuYX}cy^#ZG7&1zcLi
      zum6LXtIWLMKdMz4i92bcHveb3Fpf?ev;+Dow0eW|_jGPkcSXnuE9dX<->4{|N~cc<
      z+`vH(yHr)zB-BtRq#W4K4X&+*?*7ECB@eBzwI1d|Q#Ej4-#jd~7!_DFEx+{xwQ78x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ContainerEvent.class b/libjava/classpath/lib/java/awt/event/ContainerEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff0719210538794c0a3c4d195a1d609809ed1898
      GIT binary patch
      literal 1507
      zcwT)|+fEZv6kP{eI+o$qau)==U|U)$DBb|2v_*@hHMBM{G2&207%Vf*bPCZ|^&5Qk
      zjaN++j3&k>jlTK|eur_N=`e-1@#W0k>+H)qYw!8>_w!c(Q%Jke#4x-q?Mh*3&j`!A
      zvTB5*nrcXjD(i9Xy5MLOvQyMlvdj>M&XTMvQXwbnB}G#oBw`F~nW2qJl?+KWa#Eoz
      zJHP+=`Fke&W{;sGnoeaSiBx=bZ7H#u$x?Wt8DK$%_UctKlF4#3WG1ZKPp9Ik>{=ui
      zi&OosDzX}1N#{7`%x@`$4TkQd&DUl+%g{2XsETomA?RxqkZ1(@a}18CwjsOGj6M-w
      z^fUA~&iCg|fniWY7d%8cNgAfgJL|HZmDUR~gD0uwNhFD+BHscX#+FiI7)kzj3Y>jO
      zE9-g6Xj15j;-+laAq>4f|8YtdKFj%>7cqhhyt^4tkkrj^dVO2Y8?!E4B)mS4LEz;p
      zV%C(d%Gp|!bZIAJ=!&{YnjeLk4Js%#pxO1+!i!}pEbE+HSi~q=1x!(&nh^)hVa^M<
      zOoG=9+rFJ)@RrqQs<x+&8qbTeb>YS}+;HJK?PhIz5jR2fUAufK(@z=3ef82bc#IoC
      z%<~PP4eIgL-}`d{78u~hB4RE?PfBa)CL)drYEJs5q#c>pyd&Z+5;S0`Sd>*#Jk+Ro
      z9b~C!(z+)i$;%3cb~F!n#$1;rg)f=+<Tg$6S{Nh!>Gwhl2H~WWSdrHR0R!}gR@)cJ
      zZ#(9<liyKu-+AKR!~X!X9fWz&O=k~zkEol2zG7fv=n%bu&_@isH#1Jt*=}-qOgz@8
      z))Neo7pTNz7-s;}8lk$(v}kQ8lUux3GofQRYjv8YFOL!eA8_s)#^2dpT1<S~tS(k!
      ztm+It_^te~mG7kdf!gHqv1F&69KeK?{K9-T5c`7QLn<)Y#e#1kcrNXuyW)npJG~F5
      y=gKEsJ;WSu^MkP4`*3sn0FeVM9bmcI+ha=clH`0v&wPyqva38|HjfoEBlQn(<w|b=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ContainerListener.class b/libjava/classpath/lib/java/awt/event/ContainerListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8ccf49cf694e3386b0689abadd8b8f236ebe00f
      GIT binary patch
      literal 250
      zcwRg8Z`VEs1_nb09(D#MMh1nf#Ii*F#PSmT)UwpP5`E|VypqJsywoC}%;J(%AkEIe
      z!pI;1R+W>Om#*)hl$DxX!p^|P$RG|DEiK8+(RT%DhG}7B;7iWWEy&LUiaDmFq^2-3
      zC~5fMvIwlzS~Co23tU%FYHofRNFP^lerZv1s#|7GDkFm!hU4@=h5}u}$iNK5tU!M;
      W0bR?^z`+1=H7AG$igSU)8Mpy`I7N&A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/FocusAdapter.class b/libjava/classpath/lib/java/awt/event/FocusAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3db720ef74a4a21bd97f1cd5d273657639dd5f92
      GIT binary patch
      literal 562
      zcwU82O;5r=5PbuMN<k4+Jou4#Lk~8_coAY^40vhqpy9rhRhM9E+AaPrPbMDx0sbiC
      z?9xOJ1P;4zX7;@|GyDDX`32w%yDkcZy@{9!U%Y8w&Sa$hejH}$^;o=WnYeHWo0c#Y
      z(UX5Sn#fSQC=>P<$pV#X8OelD?y5-XD?+h-JR~?b@mP8&qFRHCH9|d5ksM?%Bbhvi
      z(Nq$eK^%(dP$bIadC}3&DkU5QONQ(as*fhW73?`C9JUwIdnW9dX-c-rt1saZD%LcJ
      zQ)YViah8O#ugp-5|J_fGg>wYnluwC2)*$c5cZIWaMq(_Te879>pnw|R9wTrG2VJal
      uRGX8qfjT39IvTmbh1GEFPh7U-o)xy{kGar9O>Eho+p8@GD=c;_zx4|&b#96P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/FocusEvent.class b/libjava/classpath/lib/java/awt/event/FocusEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..031122b758d9595111d932cc6e11fc33b3ad2b31
      GIT binary patch
      literal 1702
      zcwT)|O-~b16g`i&^n*d5@(oq|!nS-=6h#G8XekydO)NB#jTvCXfp%sxokEB%-0H@S
      z8+Rry*th@{Fq-Jz_*39781I`7Qz*qv=iU46Ip@A}Z-4*&{u96eQf^c+w5^D1Vnkdw
      zBGQ_q7?HTTSjbQCqZ>|!K-qOv&1tGaC$og1J}>FAn9WFfURIU4M2vw=G1Nv?C2xp|
      zkrA^6$>omynjU()@Q0x$o{G+;pT-l9)3a2XZ~%^d2469q981sg%mIT?%uJ3YW+q~#
      zf)s~&4T-wYMSX)P<{3Pyrm1<^kQf@1cEfh7!wl6UvLYMz82W;h3KH{`vY`xvGpa60
      zJ~+@Opb6~^t(6Hv87~+*1vJ3VPv-=jMI%F9QdXpyLT*9QXT^mqb?8s3i)5Hcwoz;)
      zoyK!H&(M)PbsGE;d9|P~QgxNQM1wo!C83Ou^sn-Eo5^oEKU*@(5e$)CjmwgevK+IK
      z49&q%W%Ft@Q5SP*Lzk6hLLZi8MP)fs%nrK|VQ48&j~C?ZlB9D#1_WG2jR$oe)O&D~
      z=37u!6?I+dGBz|acnEjgxJ~<1&LQ9~s0a5NU!>GChVI}I`P9OSv`CXW*^v+Z8099=
      z(3^rM??V|69?)xg?Op0U+@etr#`%pV={b>mP`cr)F#!{Z(>O#;la!^>P938^k+RG%
      z8+*tp5@pC!-*OZ=Eg*?LT6se~9EdM%u0>qti&R(In10TK3uHe1rQk+8T&SkVO;Hs*
      zXoC+mb}Ud_dn7(Xab4Mc{jqyL-*r0s`KHsCbJNbzZwo~lsk-=WxTkXut>M59I>K$v
      z9R#*b{CN}Uq~8@nt`c*W_;To?%wQ2oy<Y^((<M@1=83k5(6H1Uw!YI;zhbG+5d-J;
      zl6rvcp}QpNGvP1DfS0CNxL9b5d2KPTE#|evxJ0`pF-;N<OTtk};x$RUF(tZ+h5wOY
      z2qI(=N9fD%T;Z?i_+*n-o5^=3p-?Qa2pPShrvf;zRR;c85!{PD3;fD-5s3dl{}Up(
      z*5KIx0FVFrCK`+30S|9%!sQ?QhFg0W;XS^m+<l%K+eMV??qYHmQzi9gbDmo?r)_HW
      UGlua6;}n;=iQC;gGEp=C05o+}od5s;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/FocusListener.class b/libjava/classpath/lib/java/awt/event/FocusListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db8ff09d83573b19c826508001cfc4cb88517fec
      GIT binary patch
      literal 228
      zcwTK!y9&ZE6g{^-Vp|7saS>--49?EhrQjgA$9k2Nl0uu-e{=8y{3tOgI0z1x3y1T3
      zy&q2i8;k`4!aP^4lIm_Hw`{CT%B-nVU0XI>3G@k*j!`IclZSK8nH3lkW*ypCUC5mm
      zekFwX>Miz48@>=0%k*DDr`fJfgs`KhWo-%3v23c06J0Q2`cq}?U0g1q=WgH@1g@LF
      O2)<+Jzr!PsBmMvdAv|pW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/HierarchyBoundsAdapter.class b/libjava/classpath/lib/java/awt/event/HierarchyBoundsAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79aa2f9383637db0560e2d15a71e0a1f35d4d15f
      GIT binary patch
      literal 618
      zcwUWB&o2W(7=5GLE~{0FIyeXk%E3m&K`IhI<FF+`dY|ro(P?T|W~UYYD<_GAKfoU)
      zzS&k>P=}fKeKYU9?`7uw<Mj=|HWplr39NQxU;6UF_|&J^_~(kW)M5MaDCxyfdKk%j
      zL)wKSFr87mGQRaMTOA6Gi-N$~-v)t74aKAd3i~Qn=0G4<+h__n$4NvUa+oZ_#kfE@
      zP%&Nf?pma8WUEU8l^_Xaw<)!<{qWE+ZIueF2mcCQ7bwX%q|_w3k@P7NSgHLgJ+*D!
      zrpsqH0!t&f9Q(`uic<At2YA;>Plt4-Y~014b8T5$XBqq&yz=}Z7Wo}`pWtqXQ84B=
      zU*J7+F@_@V9wV>^2X&OVDh^1PLYa}j2s1;2-Au!0-{L|>KFNgD!R1hBs|sebnRBBp
      L8Y3*`Gk*0GgF1zY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/HierarchyBoundsListener.class b/libjava/classpath/lib/java/awt/event/HierarchyBoundsListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2642d35d4bde5c7988eb6f168e61262f6daef1e2
      GIT binary patch
      literal 260
      zcwTjnJqyAx5Qg9Q6+h9<#mPZ*F*v&kibF+EaF6Ywk&;51R`jPi_yhb=Vp4GIa2&kc
      zbNAfm`+5UdpvzHVnA~J8g}hrqIcY1lii|Yj^|4Aa9i@RvEom|wHHJYk8%uo=`}2)L
      z%h6yM7HMWxEY^O-A7SW89a3r&vrBS{7{=3}>{>xCXD5dKA39K~o*ru-lgxy)Q86)$
      eN(ASAv$J8Sx~jVmE6$js32)x=-Q{hcqw@nbGD)QX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/HierarchyEvent.class b/libjava/classpath/lib/java/awt/event/HierarchyEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b1efe7988eacac2c220f55f70af4ae2ce1b8d13a
      GIT binary patch
      literal 2402
      zcwVJd`%hbS6#smoFWSpv1-rsF#@y6CU=^QJ=A@KDi(MgYS7bierCi{$a!YP6OiYX>
      z^B-{f%a-_yFOnrD(+DJLjQ*(qfPaA|KBh*aF`5|9_j}vhQaXRJ3BBi>dp_s!Ip@%?
      z{`vSb0K>TKL<_^QRe4j6$XASrvZ-iBB%vz0tQS_c;#_sY#&F1TiO%MPnW3w!=&D@I
      zD|%TiX%~{?3~Y*_Jyz1nhO8NRxwxU&cW(DPuD*WbCPQZ;8P7yBvBcc`L^6}jk$bWg
      zu)jdzYp-I7XnHbEu{xsZSUj7X&di^m&d0~O=N2WkteJQ=dC|1LNZz#wsVI-#F%!+i
      z)46Iqasy-VjVH4+spwpEESXB?=IY-P5uMq@^lUOcS#PH1orM)yTUHhsdQuh-vC`Ul
      zNh2agsO5^ojI0Z0_PJ?>tZIr*ZXVNZq9`wy860O-O*PIjj0T!TO*S(&iyO={*kYwc
      z#SMnLCG_JYL-hZ}oZ>+{QzWN1))o{!CodEg25+iVpn=OYcG4?Go3Wx&JI8Brnr#ua
      z?<kix^a3GT)I~R15$3fH(o8C~7Kxn5^unrAph|=JHfrazgkJP<>3#`EaFk0ANH_)u
      zgS4y|Ru?=<uvvE;@rZ-~9_8g9$m7IgWIu>waP#ohxp&o+>Wmxm)u!BG`Bnzq8VJ%^
      zc-CcIUdtM~sx8xoRMDas(@MpRQQSuJ*v8V5qPr2rI43MF0t$8}B?RGdA<58v;D81K
      z9P*Te6wVX(^7^`>Q740egLw~@V&)uiVVc%p{~-<9VSZX%$TA#meo&T|&4pRwui>x;
      zU6`xCWpUvH0T-U3X*6Cqw?9Yo-q0><r7PNiv9+%7-sX94ml|5C%=L~fao_?678s5M
      zV*lx<NLa!sgUcvY=f-pf|D7<jG+D9Y6DmK9?)?{Vnxk-n=Enc6Na%wd4$_>QOSov!
      z-SAjCU;Oq4y`xU=B)zLnKSa8>LGP~9dq}^lPWO?1xK8&Inof;mFF!Q#q%)(ZlYIJd
      zoW2K0lS${Z^@PGlhk9*odpPld2ylwN-Sh-rqvti;L()U0EAGX8Vi`PihkX=?OSHMd
      z+auDp3W+DSiF79`>0YHbyg)yt+e0Wcw1c5guWbjBkk7t@;aYB=$n`dr{0>EWmk4-|
      z8r&9joD+@stvdWx9e%40zg367QU{kf1$Od$ka{sI8l@*k`a&P!;V*FJI@-DPInHd;
      zZ^bRE9*6MyP~?|PL?u7N<5sjtC7PXL3^js3tpnRF@CeQ}0Y@6aUp56lL0nY9Ef#qA
      z{RZ&YO~Fr!<_XMvL=PwJtxpi0+e0ixK_+fOd<_1R&VQ6i=6iIB{#L`@#4e_0c`o<M
      zZEswMJM2wYEj^g2+A=j;PS{R`y?JiiMqk+bv?+Cky%$Z%;eGa2m{Yfl=eq`XA#*0U
      z93*)*yo<#eEfcg7z&CVh-_rQMBLcpsLHs~>{v*=3jSKh*3-}o-enAnxqKx0LiQn-O
      h{=h5v6IbyU-o)R68K2pGg&7xaU>Pf78mh>*`Y(L9?Xds=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/HierarchyListener.class b/libjava/classpath/lib/java/awt/event/HierarchyListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6789af71e5afcae363972bc38aa901b5035ddac
      GIT binary patch
      literal 225
      zcwRg8Z`VEs1_nb0ZgvJHMh1nf#Ii*F#PSmT)UwpP5`B-%)S|?q<cvz6%;J*NywoCg
      z1{OvJ0kEo^#JqHU|D>$c<PvrUHbw?<uxM#XW{$oqNHa_eP<;l>80QS2rqmQh1|<z2
      zTvmZKTWf|fGH?awmlh?bx@G31GBSu^xJ3_S0?=Yc24)~;1$u)K=s0!;4iJlh6G$>K
      GZ~*`(qCa*3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/InputEvent.class b/libjava/classpath/lib/java/awt/event/InputEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4fa20c5b3959e40446379aed38a17cb3f8140a4
      GIT binary patch
      literal 2833
      zcwTi@Yg1EK6kUhBLx6yS5VgeC2M`r`)Y@Vd2&j<&76Me;N&{TTwc&;)H-NTUt+h{o
      zK<jU?Gj^uxOgq!DANr;J4gCXseYKxDUFYO_bBTeOaQE8#?6ud~XP=w=`ri*f0qDUs
      zA8G{JuB6w~-RTXpTU*x*vpZp|70pp;`rsDWTM>@uR@ZU{Eww}-T+s4*Iy<Z73wq9&
      zNsI`H^8$78oKY~-hB=$g7B$cBcgKGDt>@=uf#CGH#F^Cm_|WtiS0-FkA_M~Q)KpSA
      zrGu&h<D;n|+d&=vp=8R&et~+4&rS_pIA?pK0-@oVRBCdf$M%J7U$0fuf_)ZjDCrrQ
      zoSU$d21&03ZSmfuSE+J(xd+rqDNbh%osG|wI0No-pm$5aUk>zb34|HgQQoRE6lEwB
      zpPZN-ow7S~=!t-PBcmDY;A(D3U)Fgp0=2e1x+&m2sT;a^N+8mav`^PQ*MY?OMCUAN
      z;<+U)2p4)oIEp@j*6OP}X9E=SatJYarS(b(hfyo7S3@|0TDCZ;8`?y1bwSIg(hFHl
      zpedPK<jkZwImDLJZDw?8-JRTaAP1<ukSpdFxq4?cF#<LE61S@trZf7oIg;C8BU~Mw
      zmv~5efg@?=bJ>zNs29dHGhG4!y)cxume(u$Y(Bk~DLH&AnmMOhN+ynWh<Lo*TRIcW
      zayn&`eT%#R#Z^r$P%WAa;R4>^BwG;*6_=Edxb0}#N|VwydBvJL5}l>pX4A$>_q3VU
      zjg<jEcu4T!O@Wrm;BawyS<448hfDJC#{GC(z$5n?lg`T_%;Q})GrhK^87zCa<9Yt)
      zOO{w!c!6YbGoOw5!DKhvMT>XatGZ4*!)?(URb3>$!d(v+O*3co5M^!DOJvxnPl;O#
      z;eD{p-mGS<m>KCRgkYk`V=5FE3Q7w1+>xl(750>8(z=~?`TkJ@bVipW*HE6VqcX$2
      zkLM)sdNU&Mz)R$l?<3yNHUv>?;}CJ31J@HbIB=M_(Se(YcR27);${bKA>LK7zO{m{
      z&4D9CyB&BB@m>dhfw<j)qs03h_(kHE9C$zR0S7)ve8_=2sHW3_yQq-&9rBO2T|JMe
      zXNaGp=;q2}v~IDRa#ed*Y|mr#bnSbH{;p<E`1Fm3I8LMS^b=YqzEh;H@qY{34*bES
      zKS}o&8}&Cg^A85-?N_mOoW$#@U^`CXGz&><kgIEyC1tskC53qyAHuLDC!t==z^<<E
      zaom059vWzz2oKWoxbC~}+cN4E#Zv_EFC{%y<wK=ZtGqzmraf=bwn|zL$-<Jh5jU&z
      z3Ks&xja__}d0TDXk?OoYn^#~P-g@#jkhi`n@2Jf?X7RR3-mu>$uGx;5!!IIe<+DuO
      zW)q*;hB#^yN4FzBK;nZWK2VkTEY4ZP-4?Njbp7AjB=Ukn9CIXl?BoR7_bgf1$;a<k
      zBo9_i9;=#sqB41=YH||eR&u{3+uP-Sh>7x)2j#4a%kYSK2ZPsUn6f+SEI(0MK2xQ9
      z0Mkg7lEohW;E<Q%>xjH(1Ce|1HqAWv5px$G<6<%*2k9FGV@+>8!aH*jIj;()OR&a@
      zE-J`NqL5Y!My=pV3A!z)m!RK*@0DQKf~yk7T(L*UxtAUx|G?hQEZ>F@oA8ROoQP|v
      z6Ca>ie2Bf`I`)ejI4nNmPmr4!5VtTaK1M>^#s%>Szx?iCUVMrb@fp8JKF7NF0@uZt
      exFf#8U2#|Sr=`>b>pj(s+gQhjYU`$|fAxRW2J52$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/InputMethodEvent.class b/libjava/classpath/lib/java/awt/event/InputMethodEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1889bbb9259ddc2c8dea1e3c9d6a135783dc4a8
      GIT binary patch
      literal 3854
      zcwV(vTXS1i75=t$wR{{~O5{Yb6BIW|ZOM+CHZ5)4q&SM*DEL-ev6~d?9!tme3Gz8c
      zI<noS*AQCDy*DU<2N*7%DeVlM!49D_<pE|o!wmcYW_W@ZnCSyA3{RAA?;{^4s%*jo
      z57u7$vex?6w=O67{l9<x0f6K9ZU_wmpSq+k>wWr)(`PIjmeZHDmMYGO;VjsNL3t2@
      zUm)r|8ko+hV}aJPQ8M-7lu;_1wsk&xMnIesXwKMH+0iX$N-tK7z`(V~cWG~1KNW~&
      zN5{|SW<~~cXUERW3}q)KbJWQC0RON+;+EUo;A6R&%-Mm_M+RxOEi*7Nn41|No6P32
      zW22iFQgejZZqXbbkY@cW3x>tTF;<E6&S3>#Zu$lsr)17n9HWp~&`WyWF-lqf>5g6M
      z7ucJ(7Z*+E=G%;2k<kY7ddcA0KI~C3XOpfRjh;1~tTks-zh&7ho3lk@+%B6ASrG_6
      zWLl<kN?@gHOEY6HF4-1Y?9ZONO>Eg6{O)koJw+BWcEO0ihYk(<aDaSPp%is%zHe;y
      zl94Bn?x{ww8Z<-^l+qy$G3=Jo9UAtaNlHgF#L*_DJ2mV@TNApG4k5*x+loR%4|)Zf
      z<_%}iDrBvKu`1x}>ds0-eH!kPx6QmgZOogNx)0%QfzB<s*<#U{*NX$C`N|>*99+#C
      zOOojb3;KkN?_On*VYdvMmN8mcoHa^0ojG9z4%>Matj@CKzIy0)7R)lk-6FAmA27SY
      zvRx_Vsk5hEDg_$Mg1~b9JpaGb9KpjF2;nmVyS--$_oEe~VrV#x3=>akN9?jQVdN!u
      z@;YZO8j7)V5vFxeGMEq;-6@Fw9h^Xjo^z@hySut?lM8|U)XHqvkzsl1Hsyg$o7=Qy
      zj8CU(J2RB$pkfipavsw#jz?*;dd578ivkg|obe9G(M30qX*FD$mWXF@lK8E8mc%9m
      zRi*A}e+Z9}^xEUomAN^i6u~quO1d9s4R%%A@ADcSLQ@zs95mYw#GYgry1>5rQ?Vy0
      zE$1~9z{Cdir6t26`kt;&!uup*7g~Q9jHt`9lQKs=$-9#IP43G{Z$kDY)ku6$`7@=z
      zOGMq3+19FT@}h=Cki2l&aH{<;gU^Jq#2MR}OeZ_TD3R<=Hx5VItw_7s9nh`_9NZaW
      z7*EkDBT{>5`LeY9Obs#BVYq{<=h)^l0WYx8Xs$Z%lS|dIl9sP%_!3z2VaMLA4#5et
      zZ#$#BHu*>PA|*pFxEL5w6_{yPVX28kO+#N)Jr(hWUpa)YZ#F)kXUDvo5WXpp+;W^L
      z>gDpN?F_Mp3O5bUZ{xKPUgc+aTbCMMm$NlmFy{11kt1XaY5NX933F0S%^_1x+j#9*
      zJtkFgh_%npIU?AP0D|0wxNATd37$21dyV_%n*FYu_AT7E-m-6y-!sau$*-AO`7Ki`
      zzhr9Nt5%IV9DV%V4~Q_)H1c#ImF~EX_SB(u984tw>qw^J!F6<|5}|b*P9?(YINA~Q
      z5B~`Fa~b(Dj?3kT2qyv`;z&IBeI(;SDTjP(h$R9y&_#~991|$~1WoVb_=W4Z=Qr;u
      zwD<A%KE?+u6Y~mjt`hxIMEEog;4<#OGyKXui<5Yc^Za?7!3&tdi<rk1e41Jl<cpYb
      zKOO*-^dR~fk(4-A=s`-751*1GBLO8zPJ&93tb~*#c?m04PP(knW23r@l9gZKRBzm$
      z2qc2nab^qtE@k>HKKmXMaZSNG>neG$q8_ZM2P>+;_>?5U_?0BV1e7Gf1QnQ}Dj1Vs
      z<XwvkM)-OY{yI>8&S&pXepf*`;i`C0T0AH%9+Vd4)~6)t*3bJ#7=-J#kE?tiNc|GY
      zUwF=f>hOkgqPY*MP6V>(t)txePL1+!>nfkaXX_{*uJ!!Ky2`_Km5<gc|EaF>2=1*a
      zpWthG7fkurF}lTYMDg_(>iqR43qjAq1SadaAFU1iqq^>M$au;Pp7OzWYn1<0SNS}q
      zTxIbyp2}kS=lhtx&^j)&=5}M76jeXEg6zmAuj9gSn)}bOr`g4^C)N;%J-LC|X;-m1
      z9h;N8HLRptJ2$W}?J1v>IX$(8xYSQ}Tx}3H@P!7*H&=ZhANaw?e^1BkO-sseN8!Ib
      z|017Ds~afCmZhqEd-y}*T3tg(${Tn(_N@Ers62n(JwM9x>GTF(+{(0tcCrybR0MH^
      zYnSk&TZHfcXI($nheacXL<Hla8Pj4H|AEnhInfGJL~)tx6%oTLVmICtd+?Ts<87|*
      zi8g#7_TqOUfj^7=_?u|QM_m6QI#gCtF7wr_bmI@WiZ3%SI`Vi)b=w@Cz{`|;l)r*k
      z`1@6r*#>+K-%!avPaCqz;tc0ovH%+2xQ0lI9nX=xRf;j`N~HOJ)gCm9UhEOa6ofWc
      S*=zVXA-tiA@lB=so&Nyx;Zs8Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/InputMethodListener.class b/libjava/classpath/lib/java/awt/event/InputMethodListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d94869152c00dfd48a15bfe5538bb4cc3876416
      GIT binary patch
      literal 268
      zcwTjn%?<%U5QJ;|t-phV;4BVYOq?BsL_$c2``GO;vYD0Di)VB203J%rY=R4iPA8TA
      zs;eH)+a16FRSy|~_CcMMR2P<XCc|=SjtS3+_fas@CniI&hnzqyy$hAu$;I|SK6@w#
      zG*dNU9m=u8--tj%e~s33<<Z`v6bN*>v;QwslVNWoQ1?|#yo^qob!0wtc@-tGPZJ%I
      gK<h`?zB9MU1hRJWwrR$u_fUjuQF7brWv8R^0u?4qtN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/InvocationEvent.class b/libjava/classpath/lib/java/awt/event/InvocationEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11a75ffcbb6c9a191b1fff9e0bdaac54580d3899
      GIT binary patch
      literal 2700
      zcwUWF&398p9KF*dO&VS-O(_UgS`?v8(uT^HT8f5}Vq%&~8&atsn5GZ<Abp9+OAF!$
      zJKecPH}1OfSkxB$I3l7R4|+T<-1!H%^c<Hi&^wdQrh&uB>6_oo+<WK#W_~lhbN8!n
      z0Sw`a6D<Ne&!-ks!PJr!)E9Nr3P#MuY&vBbSu-sAPS^!Hs+iDpqCDIxu%$Mfwv0tx
      z%?NBR=y@ZRN$U9mRZc~Y3y7$IXEbXTtdwabQ<<XfX!Q*KZOsP%B|Z{QPK<^Uk%{=3
      zvB>09g7}CHu&)Ss>*kJ!$3mxKoNccgjD;lLl`ooRYBr<OR7|<bq|9@{$@1th5oXph
      z&Ki22nstbY+4FkZ;(R-EPS1xgruCf6y+98$0&RL_K%lFRR>hIoX3gibOQpr@F^S4B
      zG4`c-of54_4AZcV3iS7F^w7+Af0EqM?40g~K(B^w>=GDhLXI?JZ-mWA!S<M8>ha>j
      zte#JlY<puo@=P+tV`INOXt(AKZbNVE{sqG9S_|1?K26Gz2TZG}F*j`Jmnr%Lwl+&q
      zLIN0cVnCp?YD$?nS=5WVh9LHldrr5;vjuBXPjg01CyWKUv-R~y+qjQUYIp=L86D8j
      z0k4b>Y3Rfj89k+;3tI(Rj5$`#oKeWh!cgqwCXC=&CwPF~jag}U4%`eIOHt|^)36;o
      zoH$-FyS{KFWK6?0JnY8vh&mDBMQF@f!wXWfP1WwDP$uKV_&T{nt@H$Mp2!MlOg~(!
      z+HHOP_o!P5tmCf-))%jnz-d*#n{ugqYGKOC8|FFQv~`Tq=&%znQLAzISkcJL>3Ny-
      zjE1M-ap4t#?v0l_P`St>F1*IGESeY0?2_4QUCQaTIX7O%tP`nqTUJ_0LmE6d=c0UM
      zCe8}%X;Ml}e7iA?v$Fb_SXbZ1d0BkZFf^RU1y+12m(xwIGw?v_<@ASLSP*arDo@df
      zl*~%WT!T_&(fcUzA?pY<JX%W7l7dC<Zr{xP_)E+pAfF{gx+F<&N>cRRBnf;=!`t8^
      z;<B=pI&e>^>py0w=eOZ`7?fhz#e=u;&jB}fzzG-QHvSW8VShU`c&hz}*l%y>Z(i58
      z%R9^1E^n-Ad0*8WFOzC{@7Q|fEoUp&>c*q|?qn~HRyqMRpTEPt5)iiQ=((m?kMZkf
      z3%rL-cpr~5>Mdch8&3c#+QT)4ilmDcrM<VTou;;ft*4|t&}DBT{voL!De(g(a8=w>
      z759|IWh9fdsYs@2=dW9Br(Ey@&a|@a@%g*2qtAB({#6Y523E1(x81&qgT5}uDh}5y
      z>`?Ge`MpfR6)tj(d-fT{K3A5GmgK6Ida9Os<gHbfdXzbviljNailjLQk<VbbZ0--D
      zB`WUw0*9|+FPr^e;)uX9cE@})8uH)5=v8d<`M<;HD#FV=lnREy!I=Libox(^fA3$z
      ziNNh;*6Zz?*Qn`aMRX#D5KbV<6{3uz)f^AeC-4nXH;KAMhqqY~KkzJngdab1+wU-!
      zU-*>&N`>DLW;>4G>&`n~&VLJkaqgKQz6%p-Cj?%^$#RB4)dw7O8(ygzXjOxMDnYFT
      zC<_WqVyX!_)JXoTDLH|CRdP#}JoHHe`JblbQ%IJ{S9oM{F8Vd5PgCGDi}ho;ye}`q
      z;eGW6&RmBs4`L1T-pm?Ic@{E$qZA)rL&3XPiig&4aSfMi_Pwec?sDV*!yp$KV_b6+
      Lt-5(fG2Z<jhP+Jk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ItemEvent.class b/libjava/classpath/lib/java/awt/event/ItemEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a913e69c776d3fd0173e6c46680083e29bc25fc
      GIT binary patch
      literal 1688
      zcwUWDOHUI~6#g!>bST5C@&*wVu`Q4C@>x(zJ3z63(o*A!3~+^kGHu!^#FblP;#PF$
      zj*SaV1bhUeTmOnbz@72jX(^?&#x&{NbME=R^PR{2`RB_w07Hn{P{z=*p>C@lb;t1V
      zZLS-hpux8kak9a}P@lW?J&KrahPo6_YHBRXlPN8(F9rh)Y=)uQAJ<ccsvA)?mgd&q
      zFXR26cYpk1um>Z`?9ya#AsnH|U^!5B#87E^Lq6ejnCEcB7g3h{)4sVWg*c_K5>osT
      zB|rc$q6sMZ9+Ga+NGqX3rpTD8uX*N|H~5O-WvC)42KTR%lQUF|X}V_IVHk9Vautb6
      z!#qau>T-;GgJ)@it|(>k$5*)><!F=9gm#7|XVJ(?Fr1fh4h`aTK}I907-~bB&garw
      z%RCtoX@uPP3UyDV9+I7PT8woq#n2WiH4Q4MA{9?3S17o(WDN{u+A2+LjT@(L7}}k#
      zk}x6IEu$L^HuNzxmxyDqWr-OYj_FRfy@mq9`JFF!x`H%~gql>h!bVcl*9x&2uh)jr
      z<IH*PiL@45<w+s%x{MxFNw`Tndv;&?#4e0WxJ?aC>zjIfNAEJ8CV0kg#~AL|Fiy)`
      zm_f!}+@s32#n#S0VdyC`-XePK7{P?t2tPxk^X$DVDk2malbE8}sfh&FX*B)+#hxwO
      zD}kC<-Iuq^<AU|RU=0<J9q0WAS*?V62@e?L{1yqu1sP!s)1x!u$5XP0&2^j9#Ncak
      zi#Q<YaghchUZI3GSW!WiO}t66TVY34&X&opF0g9~?AkoLj_mq8+d)5iQFL~Q_e5VS
      z-8G?^{#(dOkP54~b@z50qSf8Mj}CXEWgnd%OnjG#w9x-Lsnm#JgZMW|KQNj>;u0<c
      z=BXQ3h*z9w(+G`h_VQeQ3*BFZGn;*wz9L?7e}wBhdf(@AR+#>@nMcmVWb@F}Fp$N2
      zvUn@uI|{+i^1#*{*n`0$;Ldji;1@-~L#AQ@er{F*%zVYjV<Na#Uv~5slH<l6td3is
      z;5~#-h&n*PF@1m;k;5VaX7{MqWLSkUC!*)+`T!44<hPLq;1zXlmwNS@`uqld`c9JX
      NMAb}ARm4Ot{sm}FW1;{6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/ItemListener.class b/libjava/classpath/lib/java/awt/event/ItemListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bd6bb6da913c359a2017a94956bc6c30e8ecc84
      GIT binary patch
      literal 210
      zcwRg8Z`VEs1_nb0ZgvJHMh5Au#Ii*F#PSmT)UwpP5`E8-)Lfs;;*!+7)FO5U7DfgE
      zu!5Y#ymWp4q^#8B5_SeQMh0=PXlY4ij=n2MA505SeJ0R^;F83WRObw!rqmQh23ZXs
      zEVh94S!;$dGH?awmlh?bx@G31GBOAvyFd@54`>}D12Yh_0^Q9BbP_uQ2Z+VM2_%^q
      FxBz+iIVb=C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/KeyAdapter.class b/libjava/classpath/lib/java/awt/event/KeyAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c5a32fbb873769ff17a1b69eaf20d27e67646d1
      GIT binary patch
      literal 629
      zcwU82O;5r=5Pb`UVnI<<{JeNW4>rbl5n^HtUTn}P!SezWU92r>3x=QN$;5*{z#nCt
      zT}U`6>0#&1%)a+_X1{+vzW|(I+eSuUXCTMYm2ZhlV+s=Yh9;MNIZP<BVF|37YhMOW
      z?rnEKy~IXdVE3=cQ*lB8MFRPT3RH3-kgXkd1gxvDPY$vumSCeGQ1(<nt<h_jqPFb%
      zBvA3fp7c91Qo5cst>jt70(;)V0qX*V7n-yuL+T6c*ZyHPbyC-3<V=tEUC0t}*zGQ&
      zIM#keF7C-EX)5O-97R34R(iDZe1>D~W*vaH<&)!&wHSF%j!RsfG784r(FdG&PBJKQ
      zbQpniCO5FmS!qhb3d)T9?O2-`oEZ)G=Hk2|H;u45y_^YkR>8V?b0giNm141(Zt<96
      IQ8oOnUlEdTBme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/KeyEvent.class b/libjava/classpath/lib/java/awt/event/KeyEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b2198393409312290eecd5e5951e68d85bac925
      GIT binary patch
      literal 15180
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/KeyListener.class b/libjava/classpath/lib/java/awt/event/KeyListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef02711401ed02e03ec1842a58f41883eb16cbaf
      GIT binary patch
      literal 242
      zcwRg8Z`VEs1_nb0UUmj1Mh2;@#Ii*F#PSmT)UwpP5`FK~N}tT)lGMD^B6bEAMg{?}
      zd`@Csy1su>R%&tyI|CadgE&~Uv?Mb}-xZ_{riGD#BRjP+q_QA2g^@u<!w1uFuySk7
      zFh&M0pvr)v)Z${0T5cdGC^aWF5zONX&Mz%WPIb%7Nd>w9$w_)31A+E4GB5)%E6^Xz
      aKsT~8a4>+}$_b^pKr~RE8%Q!S@Bjc%)IGTX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/MouseAdapter.class b/libjava/classpath/lib/java/awt/event/MouseAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..321a7bc916b3185edbc72c2b642a4580b1733b73
      GIT binary patch
      literal 812
      zcwU8(%}xR_6opS=m{ER2Q1Rcy9lCI0j2j^)hTsa(sKKpeXtX#CW@bQN%aw@>AHat)
      z-gYp$Aav2*d)jlq-nL)gAD;jYvEd-au-WHh?(&z|6=M;^?!|BviL)Mmjz#FeVp!A$
      zp9c@_Ww$T9*n!QkHLa{AqgVtYWU%Wpknt%)y1Lh4uo}aj$Rdqg9uDRhiY*z4_Gr)*
      z;Vtj_f}z|Rdfe~uP%1rHwBkn@F>JSHG+ATF50q~B(t8p;hMnqEe^aG3)lNpQ(%onH
      zeyLZXh$2NTXn8Gs!L?4dn*p_;WG<1fGFB>kGaQAUIG5@crT^_7s3Wai(9_V!&`;PD
      z=}~B&Cv`-TQOxYWBl|{43VE8d6oC_1sG~qxJ~3edMT+!GC`|yzx`x*NifwIf>cUF0
      lIVn_G8B6-iWiz5}K&+S%cLqeojJP)-R?P@$K&)y1`VTIng<Jpt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/MouseEvent.class b/libjava/classpath/lib/java/awt/event/MouseEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9bd3051178ef0dfb0c67ccc2a6b31f9012fd0ceb
      GIT binary patch
      literal 3968
      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
      UB7<S;862hz-jw}rR`l)v0|E*p`~Uy|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/MouseListener.class b/libjava/classpath/lib/java/awt/event/MouseListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..381fa93f2ae5d313126ff1b47354ac3bba40c168
      GIT binary patch
      literal 301
      zcwTK!%MJlS5UlZ9)-x_H;>^Xw*-_Ss5EA#XIx>uv?9Srb9DIO}5;J2RBn~~5ny%{Z
      zdcN)t03$R#<QTdKaS>cxHKz+jn$OQ^LNl3YiYWF_U}!mo649P7wg(EehY~}_{ia$f
      z9$4eo!caTe5fdfDBkdS^{n@`2&NLouzWQZMNn-VNM^~gsIR0q|k*3(v>WAK>w#;9j
      t(>SE5RK(E!xqWE2nnM}#rivzV(S-3(h7DE8(9f`%Va=k^*Ug(l;|(L|O@06X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/MouseMotionAdapter.class b/libjava/classpath/lib/java/awt/event/MouseMotionAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8317b653ff6e2d09d7d8da4920b065931bb0496
      GIT binary patch
      literal 588
      zcwU83O-}+b5Pbu?tgfplDjZBq&<lESV~iIeCPwkJ;6cN^K!YW)YnHP9E>9*N`~m(b
      z<FrfS!4D3dH=VxsI@5l9zP$rDMa@HjP#=p-gyLC;GLx|mJIQ<|JBe0Fd^HqLTBaTx
      z!ltE7L_7-b`eQlJ9!i9Rzr~T7X&K9uP->}I=}SVfanvI?*U3=&C}J&uhZRCOQnBpL
      zr+t||i2g(pDp4{Jlb%SG*)NKYepEBUVYIa2CLx%b>P;#}BRM4OH-1&MP1-a~xwcB!
      z`-eyHr}<r(@$~PLc{-4{$~0H|*~N)*a_Zo@dAa=L26<wRtGqj7Bu4l675)n+1q2*@
      zM&JStT3F{S$Vu2hnUOyNTML78tKr(WxMay~E3D>+3!%v>*tU1>EVt+`vDmfz>KD3y
      Bd4m7|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/MouseMotionListener.class b/libjava/classpath/lib/java/awt/event/MouseMotionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c862ac4ccba3db790dab4e1f5725c81ed6c4c2b0
      GIT binary patch
      literal 242
      zcwTK!y9&ZE6g}}3tsUHSa&Xec;OweSEe?Wvte29~CeWt!-yHk^KT1q0ZXGTc4(Iv)
      zJYN8I2swHTt4uah$cGiwkhUT=bw#nU%IHW{mNb<d1BO}4%cV}m`Ib>)IYtcg7Okzy
      z#nH?E5{9twMu$?SDcu>C>!>TJ740`yhM@QbH=Z3_OkE~)QaLd!Ix20wnagMByBoSa
      SJ=c+A4BvI)zrzEMWBLWr)k0GM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/MouseWheelEvent.class b/libjava/classpath/lib/java/awt/event/MouseWheelEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdb4470a10784fc71d60ec0303d5eb39645fae5e
      GIT binary patch
      literal 1770
      zcwT)|ZF3V<6n<{oB-_mf+NDcr45d}XBov~6uK|>XA}QNOn=~Ex!few^x^%Of*=$<z
      zA2@#S^^>0*Kfo8q!5Q27GUE?${OB(b^<U_C?%fbV$TTzA`<!#`Ip?|0J@>c&e*P7}
      zE2zdW#4vr=+O~4mPLSi<+zoO|Uc1HDHaT||gdM{O!_=TXGR!d6;=XM;RqnTJ&s{BE
      zWnha8iGt_00?Q4mmeb~uoA;9wTOWP=FT?oS^@RoV_Udx6a=TnuDVZiE6o-is81yhW
      zZ<Y!-I#Cf}3~H<9dyZ4N*W?UZXk2M{Z9yTiBj~PpffW!1hUi7xwS&tHvuU%-yx=vO
      zo=cST#l<51ZqYweWf&=V8(hUOj%v^`NrD`dl&Ovq%_$9s5f|t=4PzlXu3;Q;hQp@q
      z^5u48o%<DQ-66KR>D5Rei)13Z;~WV#?H0p~d9eI>I!()K`!!0L7{rTV$ljoGBmtd#
      zwBc>ocWk-~67>W6-y`K}j$PX-gi>iuui0)^e7j!fKE-d5dUYO@d&C`1XNq);uJ^IZ
      zW8_(TT4>=~C8=8#FWk!zZ(6?9C<ngn)`@aD6Owi;x1I~V`4}!RO!m9y+qSd8eQ^`7
      zX*8YZRJ?(=VtA9<^zYS>$3=$NwwSHb9fniso;IcRySx_U2Xt0(9+$;6zs+EzpN(g#
      z3a*eyb5DltlE^7&xQYe33ai=VF3EjnQ1Uab&XMv8R0RnIB<qp3yXAU2?o8NWCZHAy
      zZZI60>z!%YbxCwxW=N%r2i1O$E^F?o7a+4&G?a0UK?%Iax1pBhBwe$`08aEx+F8*7
      zvoy)##YK@sguWy)Swm1T1r_nGt&yGRu@8}`^dt!D;z7uDT&|*qjwAG)AnSLklA!fu
      z_H=62h!{~LW+=w!K8&oP?&4V1i0>kqHMCu%zL%A!>3fv80H0FD&oGJ4aU5UZ1$>DU
      z<o%GiP(92LcS!U+#h64ViNTOWFA|SoiB6F(BGF5Pq7tPE#U#oQQY6aaG)5&7=TapS
      zCyPrY&Zbe9Ih^U7EJv&88p-~EW8ZeEN2T){NmUCsbf_|%9hjW#PyTLTa&BO9sz3Rs
      zfypm-lP}P25mQC7=)T!s;g6mQYPSMC&`yO<NLUeD`UU52X7};xk9d6_m-Kh`FfX+D
      z3W|R10d#>!z9!?{2Z-p`DXK4qTatS)^-_pag!l0N!!C(wc{6{~1U(`mf05#UlW>oS
      Sz&|LG{|ULJF1d=#Ui}}Dcxwd!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/MouseWheelListener.class b/libjava/classpath/lib/java/awt/event/MouseWheelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27d4cb3709bfc2704ff9e7e90c687c43773d53a9
      GIT binary patch
      literal 227
      zcwRg8Z`VEs1_nb0ZgvJHMh3;K#Ii*F#PSmT)UwpP5`EwN(&E(cjMUT|pUmQt)V$Op
      zb_Nzk1_7|LoW#6zegCAa)Z`L&1~x_paj<A<NoJ0|D@Zp?3nK%6F5Dd7{Ib*(Mh0aK
      zADmW!HCt<jF*0xk=a&{Gr@Ce4qymk{bc`Oz44}=749q~x3iJpg&~@w#93U10Cy-=f
      G-~s^6xj;n#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/PaintEvent.class b/libjava/classpath/lib/java/awt/event/PaintEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..138f249b43083aa1b6aa1648cea6b0600b210c7e
      GIT binary patch
      literal 1383
      zcwUWESx*yD6#gz<X@{j{EsGWxXv<PTaVwyuK&)wi&{AWfl7U{!V3}#AQ-}%v4qtua
      zRTBlHi9f(!q%X#EXG%9q;>(?TzWbf+J16t=&$k}{X0hTz8$;kgK9ZyIu@U7*Ts5Mb
      zvZ5NR;_8B(VYKNvp&b@Al~*VX-6gIoav{t0lA@{G$rT3nl%XS`sU<^JjjUWKbBFJJ
      z`;%vLzkV}#H{;3m%+6YJE1e-~(gxUq3?2(k#nTyqj4?P&gu%JJxf0K;5~W<s$p+uz
      zdz7{}Rjo?^vYIdO7?BqgRWX(rrb0DBwd7c`l~*{+U{7c{?tu*h5_&MmFxc8ZoNWig
      zkOUw63|%Qj<?H3cU9M;3-2!Lur?fp1LncYcu7Gx9UnwyRr!G}mR9@1``W|oStd^Le
      zP05j}d2Vdisn8z^x7MMf)JPl%UDmm`DC_cJ+Rzm>PsuL=7KjnG(3lHhiqH%%mz6?}
      z>q3u731jfOG0osJr#4j^)uJ0w(#0BLBR)$qm(@3_cB}@Cw?$t6>cMTyyKsjVtU0lS
      zyST^TIue_;@tR>gR9ExH?g9D7TD0Lo2oJ<~A2RfX{(TQ;1!F<NB4~k}a<Rx&(tP^A
      zqF2-~lRTCX#{`4h&@OcKq|NEBDPkYGYJ;B<aY#Hys|PqS1P7he99eB}BLEM)Ra+vv
      zqt5OmyQ}HFyWzb}EGpgYg!Q18&OWkUP&PY#rO4#SIr<~hUl90YdJNOqY1Z<R>Uc%5
      zb}&L##NuNVR{-;N6+wz7ZZvxG6gQE}M(8zMuVjkSSFjwB&j@_1rf{0zz8PAw2$j$b
      zH*mA!yhLmf*cq8@D9~e~I{B2$2>lkTTAb4?L?j-^L?u?<lmM9jj?i-|CgQUNKfvvu
      wIz_K#jtO(-6b}Ebub4Z>eNplmVrO_%E8NoNgi^huALvP41M}4emQ8lzFIN61jQ{`u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/TextEvent.class b/libjava/classpath/lib/java/awt/event/TextEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e7677909be18881b1637e332b8042d5a78d5d7e
      GIT binary patch
      literal 672
      zcwTjoO-~b17=_Q<=@-+X&=C+3v3x9`CN{21OqyDB%mgDHiU|vHTW)Zm+#xf!AbXbn
      z2zPEZF)?xB5Adh>7fg)r+%}CLadYRKGiRRno%`+Qm#+XGVWWTyVewR4in_Scb$Kb3
      zt_SjsZl|h%ETJ-a+dK$NOqfk%9Ew3##z`2deeVf@o)e~9kxH~sx+?}lnLDs*-&fAw
      z{vg;v`&DqX<Lz|<Zh97A-4Lcs>NnHSHM-mM_uEIUXU*NGZD!`TLlx@BgoRDtY%vh(
      zr2e9JD*L+OZFLFRR&*?FSh(e22D5}2KU8vec;1t7AbJDIWIyWjs)840KMu3{b(j#A
      z{Qv!WgQq9aFzy?|Kf?)`@R(4#5V1J#=r~j-gt^VF-<qSeF$KbkgC&%TC>OCxaE9tk
      zMOUh-uP>Nxcg&cbFx{&>S>Rzx!YY5ww}mVNa>%nQu*;x`JFrojc!&M;U%vc@&#>kj
      z;<Lhu$JCTts6ANz4ELic&GBjT6L`s^_At+?I;vp-w*jLT8BIp<KN;*@ERV6<#shBc
      i6Yf>4n|CO>_unJuRzFN8<W1wy(4A3xOed_F*7`3_fP(}8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/TextListener.class b/libjava/classpath/lib/java/awt/event/TextListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..023e38d78443ce73a4cb249145a52b97e011282b
      GIT binary patch
      literal 210
      zcwRg8Z`VEs1_nb0ZgvJHMh5Au#Ii*F#PSmT)UwpP68(_WiV~m9;*!+7)FO5U7DfgE
      zu!5Y#ymWp4q^#8B5_SeQMh0=PXlY4ij=n2MA505SeF@Nnu*96wRObw!rqmQh23ZXs
      zEVh94S!;$dGH?awmlh?bx@G31GBOAvyFd@54`>}D12Yh_0^Q9BbP_uQ2Z+VM2_%^q
      FxB#1bIeY*B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/WindowAdapter.class b/libjava/classpath/lib/java/awt/event/WindowAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17f1d762d050336db369f7093bdd268da21129a0
      GIT binary patch
      literal 1343
      zcwU8)O;6iE5Qg6cCuu`yAT6|fgpc$>duW6zP9P+d7F5XsB&t+BZtR6DO>Go!k`w2i
      zIrA$xA@$H7&>vNGcI{%2Qbv|`W?sMZtasMG|NQ&~U=y!Pm=IV#mqXc<Bhyqv6`AH2
      z9fk2|FO(NX^-J&sW}KrZqqF8w=UfG*grY!wY@e?aqaxe*M4&O&a$=-Wxv%^`-+mkn
      zl7Bvd;*O5A*%g@Fc+(c}T5+h#m_)ULDO3cizK+!4;Cn~)Kg&)}3Do>JkiE9-Yg=cc
      zXSzBOSn(e__O?J}<b<OO+C3Cl-5B5S(dOIsg9=Wjc|K+om`=H^UYzLY>~0@h+kL8O
      z`6-AaeX6Z8n<^ia&b7?77Z^RHVcvJiT&s=pdAGWBefNw9lBN~95#QnbI5C-0K8XkY
      zK<#Tc#|N`{XOHKtgD!%e0!nyFf72AzbPcplQ}v#rpjdc&i)S~KOkjrAGDTnq9(FNH
      zStT{0hUXLoUSKW*Y`GrN^5&v5AGpT(^kvp)vw6I9d%ofk#|&bDM|@=vi#(#kAeMN<
      kHwLlHBMgJ6^N33ZvBD#MFo;ziam66kc*He>Sa<%$UxA0!KL7v#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/WindowEvent.class b/libjava/classpath/lib/java/awt/event/WindowEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38aa1d6401737e029bf33ba400b6b4aafd3e49ee
      GIT binary patch
      literal 2974
      zcwUWG+jA3D82=s8v>^#l7Fr6FQm{apZ5!^Q1td)`ti%LKNC7Wp+b)pO?#5)>iVlts
      z&gl52<BOx?bsQMS8O4z@qce`^3xXEWC;tTf2Yhq<&N-XSHVGYJPWStL_sjWCd-vaO
      zzXz}fFE?QY!=@>HPLJvHcFdSFOglE3Hz%$6Ax<};fniIPJYmfgER!gq!q8kYig|rH
      zXB10$%RH?OGO#BZRwXR6Wb3A#)2C+*|KCThURj*D9%l%TYN^5W=-9A!Dw8E$%}2@H
      zAp?h>J~@;cA}6aIoJgiKT55!A{an%F+@V3vyh|xKOf8X4X~UZ2-(yf5{@~CO$uAX)
      zcp|Ii;#tZ6)oZatvdFN`k&MJON^fj9oj9H0qWcVM9TBCJtq6W&SnmijS#mU%I37=p
      zNPiC)LS>^k??S*T6s%I-HppAjZMYmoKNn9=W^A2{1Ew+Wkd24)X5K!^5Q)^-Xtf-z
      zJIBzFuqKTleCQ5i2cisZ9$R;`{iM4R3_W3N!*)*fh4BbNoZ1~m7eWkcl6lie&CZM)
      z#jHL)P5CHEYl1F<PS=63!)&lG<x33h$%kJvDzLF+%@!v}eMNqfVdwv;r#ly<Y#!rf
      z>}1$b$3#}#Qb)r1D=!+h#5CMUca0LS^@%VJ;25t=NT+r4Vk|vAWlY%pO&FjaR2k9q
      z$ZOh}WtkV^Ja>S;NVg_=DR+{gf?m{TGIlX<UZiVN&PK$OT#83a)mqISn7wepC<dV+
      z$s6&Ma4$xe4&xv~0X$8;S+ZF@<*Rmtn`Oet;xr9FFBA-udfyYNja{3LjN2c;DBYl?
      zi(2s?z}ZT0xv*a0GxYXUFRoYq9Nn7Q1@>x;RXn)s>XqwW4|O#r=zXiR*j^PH&*qv1
      z_bSlDI_fRDS0_)in>8<+*1XwiUnv+%hj5t>VY;gK&OKYE_a;NIr~EPqM+NTa1xh%g
      zEn`>WcI9V8*v*D9hvW3P*jD)xGSX^$m=AK05eqw<=R4l)S>`@&LazqhM0)6&u?c=O
      z5^5r}0s(A95Fr<b39qWct37xP;bsqBOIY#Xb%fV@a0}s958gny&4V}6|4kmenQ*%Y
      zZz0^_!CMJ;F2M?a5s6m#dnmqL;>&lAULyLri_mLSeItF_qH6msM54Vnp+;L8ZlX8Z
      z;=hU54dHDM{cNTF03VX}N95;Ys_+xa`cv#B?osIj`>-Dn)B%dk1VzhD9yrDG@d=7&
      z)F3FHlV4=?sFP8Sd~sQjGV1mDZsAZRhoJCugKGF%#EnW#H*V048+79aowz*4<4z2n
      zV(@B06oYMPX{ZzAHhq5-LH0{kH%Q105^{rtL`gnDb&2A5xPB*GlEV3%l33l67OABB
      zB3h@^T&5(3!#Lu2K1N?IYmI(`qqh-%7ppk+1LD`{Pol5fD2+nvPZ1$3Eu07p3D;Z9
      z@#ZHVYPIoS9%H|2Jcyw>#=T!u8UIt)c(|@{tjd`A>l%;XxHM*$Nt-wEkME$Jy@eA=
      za+3NS;@|sp?$CKa=MbF%@Nw{42AroeMaQP|3Y|CTysauH7jSCy8YWdGC#iF)az;`o
      zRpp$dhE?TRNgY;|=OwjQRnAK)qAKH(>QI$QNv&6v3z7<|$|X*zyv+-kQf3J8t}Vb)
      zijs~Iy#Tv1geiIsz}6zb6b!N!oM5d;u{QdZxDjXAX8IM=j&asO5BOGkp|{c7xgB$?
      z3s>0=yvlarbr!*!EQ+_7ig#Eq-eZ0EfbGU-Y!9xpefW|cz)$QTey1;QcdKlv)9wK7
      OVID7vDP0jcz4RYc#8ONE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/WindowFocusListener.class b/libjava/classpath/lib/java/awt/event/WindowFocusListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6b51f9a4f20689bdc58390e9c2ea20269509b10
      GIT binary patch
      literal 253
      zcwRg8Z`VEs1_nb09(D#MMh2y<#Ii*F#PSmT)UwpP68-SZyp;TMxBTSNVxP?7lGMD^
      zB6bEAMg{?}x}3zkbbbG%tkmQZb_O;^263=xX-Q^|zAH#OOba7}U^&<z_r%P+)D*CB
      zj12M`K3Hu7Yqi!4V`Sim=<>-gE`jRd3eGPrN=|jl%t>Wrkig<PJ&=(=r!X=w12HSm
      YYfM1rvNLcnfSk<<qJiREAaMq60IKjt-T(jq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/WindowListener.class b/libjava/classpath/lib/java/awt/event/WindowListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81a4d4f9770d0dfd54349c3372fa9bb670a80a15
      GIT binary patch
      literal 367
      zcwRg8Z`VEs1_nb0L3RcvMh4le#Ii*F#PSmT)UwpP68-SZyp;TMpUmQt)V$Opb_Nzk
      z1_7{=oW#6zegCAa)Z`L&1~x_paj<A<NoJ0|D@Z3y3nK$hIoJ&U0w6bqkwIR=2df=m
      zUDldmj10UG4bD0F#hH2Oa05VmkOBM<u4i(7US?V*NJJ1K;*y$)5QD06OfJbRODsWA
      zm531I3eGPrN=|jl%t>Wr5JvT^9>|$MpD{8p12HQwkl2B~XJ_DG0EGf4l;(oc+)$ba
      SO7lW#J`fGm&krP-7z6<J7hn+p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/event/WindowStateListener.class b/libjava/classpath/lib/java/awt/event/WindowStateListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbb7cd2140cd114a918e8671b0af64a7878fedb9
      GIT binary patch
      literal 228
      zcwRg8Z`VEs1_nb0ZgvJHMh2y<#Ii*F#PSmT)UwpP68-SZyp;U%;F83WRG-Y^lGMD^
      zB6bEAMg{?}x}3zkbbbG%tkmQZb_O;^263=xX-Q^|zAH#OOba7}P&vXN=M12>)D%Vr
      zc?}<|)`9g}Ylbm0a0Ta=7A2>;W#*(ZGDu)?j2_4Upv{a7%s|Wv^a&%-b?girAQl5B
      JkYr-u0sucfK;QrX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/FontRenderContext.class b/libjava/classpath/lib/java/awt/font/FontRenderContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a70ec44ce5a94868f31f72395c0eb2e77d09d58
      GIT binary patch
      literal 1637
      zcwU85T~8BH5IwiMrKK)k6;P=Ki-`SD>o+POK_U^uM^sWm4eC-BSW>!icM;V1!h`+>
      zdE&+RLZT)ji6%y0An`{TXKpv80@{Rh=H8uq=A1Lbuisz41Gs>`0DJ;%3;HuXtuMRj
      zS*zft2kGa&QJ6980m_UOHvm<jUKZu`!d!Z6dcnxK0(JWAtXVL|ZN1>kTJ|C#4VR$i
      z3~Mpn|93&RK#l427hJPHZ|aUQBOtN@O-qj94BC3mHLZf4A2D3p%sB#8J!ZjlZwe^!
      zL`Fazux5-96x3=6;Slv7Ch*av#c9JH*QfJ_KzP{7>G_Oqn|$^zRd?PbwAgS3nZ&Lm
      zUO_-Mo5+OFgd+ho3q=20tl=n*34}~%XvQGT?sKUm%kLvB;kZD1rG|-2H3V8U_)*2#
      z2@L@RIcwKYji7+fT_LNCr%QUCR5p2lWrOPGmI9|WbRhn>#(x-*prI(%^a2~Y4~?<T
      zXgG^=0@|G6mW@9aPgIb@+RrnQQw(#F#T?`8GK(Rz6noy`np%P2yzb2N$favTe0xJf
      z7p~DnbMjgYk-HD9B|B#fnmp;|eNxUb9mJ@ELJP0J$39Z#V;5ztmN5vGcZ%vXI$feD
      zDEgCIsQDzz>gYE_5yU{n4b)Sn6^qb-Fh$~m!ydqEs!=I+GC*n@&8aVFTti**8=59l
      zTWHxtG<kdzZOP~+V!It$i5AdDZ*LK$0lK@52=3qnhHwgZW!Gd8+3U*LNs=UF#-e;O
      zV_6E_lG7fiQToE)!l|DSYw#-@$<z;sFX-GT^{<sSjS|inA>5Pwnv1VW{lZ8P2O+WJ
      z9`*+hdm^<Xfj=X<gHTF_20m>=E1tZse0W#<MApz>`Yj@KYNPbRI_fEnQF>_|esx3H
      zC72|WfecwNL82$oh%DOikf=-{jYsIkW3uZBRZNwUpD2-^z!l1vJngSXenc7t*`F95
      z;u&q>>PL=zMdSLo$Duqqv`A;GY!4!(J)j-+pqD*gx>(v<1l0FX71l<%pYta@MR$&H
      zkULTnDW=y~dm_8K!*b{=Xu%7l@RC%#D%02HwQfNa-RP0}=pV}?kuGgBk=TVS?#$|e
      Un_PY1<JjKEZw`FiE30n)0sOWlLjV8(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/GlyphJustificationInfo.class b/libjava/classpath/lib/java/awt/font/GlyphJustificationInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce4951e58aeeadf10459d35cdbfda1ff0e1492d2
      GIT binary patch
      literal 1006
      zcwUWD+fo`q5IrLZViv^<qEVxXm&lq(%uTCusiF{Ml>!SXQt>6VkVVGeZfaRV`B{0`
      zN>v{60r`%6M=IU3NO;IY9(LxO?w;;GJ+nW5fByksABRzl32a`OU(Afz_cATV_A<wv
      zo6qf&Ue}W?*)%=r*oNJ5q6iBlRAk4rFEf?KmDTjfbXGMgRipO)!)f-sXdGn)gdq^m
      zId<1GZLe;2dRB<4L11ne`>trz^5<vST%KJ*V0P#-%C&qoSIkz~L*2!Po^qwE!b1X)
      zz9lc)R9+MWv`g3NpSjX;rFSDR$u!&OI&Opf7nFewC9CC?<h7(TQ_QP;{?^cKyVCyj
      zH-#1$Zj($0bR<P0u#6^&yq31~-qPWn!i7;#U%D<3&N&~gNrZ4u!(FTigm%*P7)|58
      zhG`@iZD^Rq9HT7_Gl(#Hs9`?vrZpr3w5uT%#68xq5X5CPEC$|v4NFK+w<T#?<=%C}
      za%*OzW6^L+PSfnvO;<7>7{gv$b_KRe|8x7VXsqW>&uv--$%mK!9k$20=v|RWx~Dkx
      zGmZ$cC|@Neh{s0wB=I{VocoWD@F|)FO^EOePetuCC$-NH?8(8tFz}}a{>6cPN$vCw
      zX!gsrt`PgBY6FM*H>~O#KGyXW9}o0ZADenA>|<L`jr-WqlMx@fo{ai<q^Bl)?CGhP
      zk0)PMcTZ{EqyB+62qQ<zj;P~2)h|%hW2~WwEg0Cv2~Fe_2PokgMYn?5c#aqRR}f;2
      pLLpW+rV#55Da1;{3bEF4g;-@oA=VvLh!syL#G3g*yi|Q2`~mIFv#bCB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/GlyphMetrics.class b/libjava/classpath/lib/java/awt/font/GlyphMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..689b1c0860d5cdc90b89a49613f05108df6f298a
      GIT binary patch
      literal 2130
      zcwU85OLN;)6h1eW?L<-2X8<QnlhzG!)Q4#x<<T^)A8}%EoM0R0G2O_vkd<+yj4hW5
      z3pQ-nFw+GaSg~W%>6Dq8&amJI@S~W1_exPzS1k+so^$Rw-}l{fj{g1c?|+Es4prhb
      z!f5J1d#t6k@0|3vw&kSPJI6=uP2K65&0d@&M(4zRN3)FdR^vc#I*i70TbtQpxmaFj
      z#IlUe<ZP?wXqHpgI(<C?@DVp@d#k)wuJJ&G(P*i-o~eCPS>rx~U#(@z`Aj9xePSf<
      zY!qv2)$L49WPn<3+g<Z}sM0zh+DD1jdaPMZeHU)w)ZJqgYuJ6O)nhbW^50|V_F=jL
      z#n9f-m-6=@%HYqd9Uti^SurisS!HxBwO=T_qb$2vXC&q9mM&9-W)w=$6-JTNVtov<
      z=M*|m7r1pzp^J2hTh|qubgd5+dXL`cR!X4{D8}e)$+Yxx|FEHVYg(fNAs0$^Q|r{V
      zuE~8bC^>Bt&$(QB`*`r4xzzs%m%*Ioil-RGy>_9ohVEoe96SWQ96t^1zUJ+@URLyX
      zDbHvowfN2+$B<pBW@Y-E?#1Z~Mv1p(E3`uQ@m5sq3L$x3^+2JAC*eI8uj1n66w33P
      zQG|BPmec0Jf<o&&IELVcZW?WDXdJdXWq=m(0<)L14;vV`Wr*1RN$kkBbPE--*(;fb
      z=JdO|aH`PQ(z-21irL#~n~vT)(nRm7cE8)y3nrh^`QSWm^LOIA0s;0{M$@AdgBRx?
      z1dYNU3;6tgJmB*ooeB68@XrSPbNFG=gpD;5=cIRH#l(pP!#RN(3>^Q{@P0v@N9WX+
      zbXlDq(5!lWKv&iI0VUOhG@yBPGCH7zKLx@f{;vqe6_V%y6h8!B28>x?=4ciJP;tBJ
      zV$uz|$-iD$TpJS>S2rRot}h}iu22#d*BBKFZ+Qyqi10gEm6FMuGcW1(sTNrvZ9qp+
      z@TzX6&nweM;9$by93#Tw91%qC(2~b-A1BYcsJ@`tUqSVPuKq!B9LZ-sSxlsC3L?c#
      z_lOvM>_eqJs3^x6F0KTMqki!xp~Y`7?}QdF)7_Bb`R7B$k3x$-^_jmyHor@_9Z)#N
      zU-a3NXRfjO<W$Xs7@CGPXkhJ{0pNrWobiDTPr$MZJjL7cvxn{;*`^_Al3sY#J=S=5
      zh_nq-6B~FCAYJxJH?Re7wqoJwP%G@vR(y#TxW#w9R`4DyM1QBK^fWSz;RG-gAEOkG
      z5evsS4#n6E$B@D?eh9@V`xwh!BgQ$#Z=n!B1|Y_Lh^=rL@o*VGh053#Szo^b*04U|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/GlyphVector.class b/libjava/classpath/lib/java/awt/font/GlyphVector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37dffe624d9eb63f9d6822b6154f0058ac53f177
      GIT binary patch
      literal 3366
      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
      WAH##wHM%3{2lS!H_#+X|$NvH_&;aQG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/GraphicAttribute.class b/libjava/classpath/lib/java/awt/font/GraphicAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..579a766da43127e8dcb20399ec3551e24ce62fc6
      GIT binary patch
      literal 1382
      zcwUWET~8B16g^{G3Z)=aJ`@m;qHgO)1;4E#OX=1%r8Uqr!I+Tgb}4I?UD9rgAJ5|N
      zF!9j`O;i#|^xYo?-q~*2qS5%UbLY;SJ?Gpzv-|V#+jjtS$OLhMVe&a|@C4s=5}UT=
      zBr;XLvt?+q<5Z1O-O+>aGYq&GlUtQUzVuwz99mk+7Yg~64LPf3ax3Xvfq|(EeJR_j
      zIoxuJ+^p-qqobokhLb7UPp@t)$!qDXnoIjgo)N_(IhRp$nPcnZsDCxTBIk~+f|v{W
      zCv7#se8kYhO`~FM>lQicx^Gy9v%uh&)L4;1$}a06_%ISi1fvW-DOL>P48u&j9Mv@S
      z3OD6yr7l>~FEo9}F>I?F;|znU)gXcLbW0_K(>N>WCK-mMY@26|+GSOev0@KdoepCV
      zT~v40u=HGgyQEhOykzPOk*uw8v&gH4$h}3svt`uit?a)~B1y<{mG3f)No}Zys?9Ga
      z6-AUCs_2efZg5M}-I5jRl31!~ZkNRNvhF2evC-}zq17gO$*x;v@^n^;wWTV$y`5O4
      z)2D(>odiQv>$Naqkb;<JnEESnRxxev2>6XKE<zHsTVce-Yz}usL+>&KB}Hl0;Nvxo
      z?h{!bA~TQcHOJUAG%gNCwKi=Asnb`pTjtB1tv`^-ARaQz{twi@xCn%>fF)rkMa_|v
      zr>f#UO;6<pwQtR?S2bNR#K8^!eneM=kpCQ2CoXLl&LBV|RVFSrx+(AJ$U~I(cI08o
      z`#SP|%1?IW1N6|nqIoy`<na{k3{j?$+6jtN@qG-B4;;Qj_juqv`VMe<Ju<eBi68Ot
      zFPQq|lANP)glqvak)%jqnPk$Kgn}7&&!s{Xv*Np>nUG}k6F83x5I+MtKR3p_7#ERH
      zmvGrLl%U8c2I8MF^`Rx(<u2N;Ot=Z~WEigCs`v6LRVyrv#lIr4e1N(2-e`m7*P}Gt
      zEbZg=#};GAMZO}Q*B$1^Jk|h)aSut?%zZrY_@7bF1!_WY692+_)E9_G7A^7k{Jp*V
      iklP9oY7+2<xb}$cEq(rb9ZC}|rBP~QQz`AftNa4;dlwG?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/ImageGraphicAttribute.class b/libjava/classpath/lib/java/awt/font/ImageGraphicAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97af1d64bed576673ae41fb68ec3e44637f2f229
      GIT binary patch
      literal 2224
      zcwUWETT@$A7+o7e1L0UIl+YB?S__(sHVTMVN-c#3V!0?#DAuYc;gB3Amzo?xo$*>7
      zUOMAjXQWSkXx|twGXh>_9DVi0f8@BnokO^feK_ZQ`|R&qYkil!|Ni&4KLEUnMK5X;
      z&M%o|GiI(hvBg5(i6wGo+8QaEcQSTr&~b`(a@n!G@F<+w>$u-Xq0W|Ag%e{{PmR{E
      z;4KvGw4J}HpyJilyuz_dcHVX_E1V4N4@!h*6+A<Q1<MD8;|6?aQt%)2i^s*YY0S=B
      z6U(`zRh%)CS;}Z0E2PZqtXZ^W?f&#Q8M~y=HTD!)Q+I=zwbS{Wm3OE-;X^IjM93)u
      zg($Fr%1#@o!!fZs40us5))@m0sHf9H(OjX+F3~PYse8Czg!}M3I=wir&~k{2fiAp2
      z6#|o}6u0MK0TMfZbO$Q`CzB<sShkA&;rFOLt<ZX?2=3kG^9g%leY|XDS)5jvB5UT;
      zvB~6;m2wCoUASN%ikLzu^i=f|=GsDXNqTVrQSf>U^x`!pn6{k3Qc9P(HWZG_-s=Y5
      zkUgL5EtJiCN)N)D2KsSH!I0lO&0$nRwl5oa3s)+LR}0Je1?CeBg?HqptwJs~MFEtO
      zwO9Zju434WA%(z^PLlRZ0v|UpvMp-Z(u(DG!ob@isy<_uGL?}X6VP!UhW&|CYcW&u
      z;T=qQ@h&HOZ#xZ4V}?j1n6nq0jKaCl|MZuM&*G*RbK78=ZQOJ+2Ie6>$eHYMU5Eo0
      z_u_qpvqxsy8P66>N7Q{_;6qU&l^nI~bcTO#!Ibe&@(2^GGQVR;upZNe<zmW;+j7QE
      zA36;egp;=p<?!~YMU5OAS~YTL^tVBOrJg=C@@;T+onGSK5Q%m)Hg4gWpS0@<?O4P2
      z5QB#CEUo7%j%Y>;pe-R#+B%6=dJAxq3w&1#0Q`}TExw`~2t>Lz&>m^?Y#_M9;@4hN
      zd`~lahVeIuHLDqWD+pCaf0fbiGKwYX)oM!;^l<+ywN_MEjPURqh(>-!pp&om#rs|S
      z1Q+kCO`MzCpKcPTkkaIlN??^dfEN+c<N<_9RHLnkCRZ}QF69JwWUo2;7t}-4)viaP
      ze}ZH$uUEN_Yr#26&r|dr&F8N~Rr#9niteUh$6V}xT<n!d^a)ClO>{^3Ja`C;b|39N
      z+Viw8(!Tfz6Ep{C4s2p@4Oh6j#?>`C_0k@tJ^Bb?DNU5mCa$lsL97v1?R09ALeUOB
      zSd%<FI|)QsF5puN{|rHV&cb|wK77fe{uRb?kAwU*()b2t?X#WSN;SC^mZ?Q2$2-VP
      zZa^0jXlWEdEZF3#?$<B4@qLxJ(*AEXs8MluL6ux}E>w>mMh>Px1rGuEZWlm96@WLJ
      z3oy&p$X@5~xHT^-$^um0EliBtt6TW!N9=9uW3=H3C-Ctuj?OB_$kF-UUe$wnh}<6z
      f&6iiA3)QVl3Die)8&m81;(y&0Utf)1&|cPmsXC-w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class b/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5219b788e3892a56084e36ab867bb67c2566d3a0
      GIT binary patch
      literal 2685
      zcwUuMU2_vv7=BK=P10l`d>90pQfj45wuOiyBE=Sn6e6K5P+BRVZj#e>A>A#T4Ik>L
      zqd249;Dt9bdf~_n&XfzCks><d5Ac^b<9`s}_w05HEv0y|d){;2_dL)0dH(wM_dfyb
      zMlFVjK>J1WikUaBdihDm_VOjmmWN$wUOFModc&1&44S|?WmGfmsr+#HqO5oVnkTQ(
      z(p^$2-sBH?o@<pGo~#z8P1me=(k;?wdXC#C5TAAGmS;J(fG7$?ycvN^>2dZ^f>|Ku
      zD|Tasq3QzB1D0)h{Q}kOGcrD6rUF``2ssDocS_n-=@v*L^S;~|g;#K@G64!*hmQ3E
      z$NwMiD)1@J^H5`^EZtGFT$2JDN>0VBjhU{+``}RXrY#D-V+rQ6B2lhd$_qgXY*{gO
      zfu>2fvK(=_mkBhXm1ED)oosHbg>tb?M>C=<ZPyV)Jc$?ZVho)EJDw>wI(DE-AUP$y
      zBX+e&bk`Jkks-4>l8DD(2y9)sD-y_I9h>je(Sn3PqAF|BlguU1^Q=WG=EfLlw~k%N
      z3+T4IIzl#6t~onRx%4qd9Ljydvg^|I7=mx?)v<?fwD`xqiA{7R^SaZZfoRJP=AO{i
      zzPgV)s!zv09H7a|4i+b#Vk@xbD)}>O*;C_I)g!;eAm2Zz;}8x9w8N8=bxE{Q1y*Di
      z-_&sggXAKmdBLk~*<$gjR7pnxm8=<y%u}ws+^}3ZL?+{oTP5lV>PB0Qe8j6!iJk_g
      zQ4W+V!#YNAQeZv1ve2|a-J7#Tvf>sxtz#5tXxzzxK&fSmxdQ9Pb-azU0<lWNb*1g8
      zekmky4i{oLFR*d(WeTgT;~l(9MYZbV)0QXevu1^7DO<=*Fr=xY%#iU}S6;E4Mx76<
      zI^N>L<Wxh}>kC;;(tjj;w%93}-6S_lc*xDXxJ#UN8g4}nT0Fg*md)ud_LiPrih`bC
      z4H2Fvk|I1!YNei5Yf|mG+&b3Ke=Y4!(=CnGn9;NIK2pCZ!wt$TLjQdP^*T0^WcX%y
      z4rxG1Oe2)E3C}C*7&c=I0W!h*fZ!V0v147veQY&)?xD?Sx`%e7=K(qd?xEZG1G%$3
      zz4t-7-bMbcDu_N}?WX_+2<srBAEIeLto+&TqlW%;h5mFYFCrw<90p#TA#1iz8NZ^p
      zCo_+iloyM1YnA#aQ5_?>_y|QRq)6fAfFgxgD3?sJXJv|4pGYx86vHHstV;1(K(UW1
      z;8P5!@&ZYtlSsOo=CS|h5Z=Ews$e(yW+7}6Z%`VA0y_|ZeMw-P;tr!T(>9NRy&5}C
      zUwc}cM`3@nk=DrnEzOG*8&nTWPz2{F$LFyP7ZhE;4;0dM1avGNRZ*~XjMCafcQ?~i
      z#0hCL$;VNmx(TZ5i4|iUxVt3A@+vXXOXh=#lSJ4|y19kWI_EL8SIaQ+ZNzzbBduj_
      zV;zZYnFlx(!Fc8_Z_=8-WBCDSM1RA?w}_^-yKT47eFxDS+CyLWp3>1_nlsq`<HNu2
      zp!J3(d~GGrwh+$`5C2((jo`yzCn!W<ngX#%x`<ZPD2q0F;ZSG0*pCKf^a^G0I(5_g
      zG|C@hj8=&ca2cP#!$<fGA5)<}#ZBD6Eqspe@CAOtS1N&f{M3XAoC~Wq7glX9sM=b5
      zPq<t)fk{jSwdyAuwu&09k9E5LcHAWVuOBH@G-QfWRB=@*i>B4b%Bwxl%sE_I@oyB2
      O?i&O!f>Od(m;M7J<sG8{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/LineMetrics.class b/libjava/classpath/lib/java/awt/font/LineMetrics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..750960e9e174e925e6ee9d4cbba55a7008222ad7
      GIT binary patch
      literal 595
      zcwTi;O;5r=5S@hrQcw^DMbyL_7-QpEW1<)$NtFZ0#nV!TcA>UOyQqK5lZgj^fIrGO
      zT{f{Xv4?&8=FP|3>DTwiCjgwmVF5A>nsfflE&d{{Sr|ym76IO&jD!;xz+g~Svd;t8
      z8cgQsNCx=}5eRw7AlvSY85rGgiY8>CScV+r8B~%U_sgdVMk7A)kwMK49qx~LBoeNJ
      zhV(?tpk@DS;G99xMR^rF7)Uj)M}{bJ&13W_uOCeDRSA6>k`e~9S&Wjp8|}^`6`7>n
      zpzf3OyhY)9awXWvry_6}l!%b;uE!%PZ4euhj|ECE3YV_8YDydXD~vqhECP(<m5B#(
      z75%zkP)`R_$>uOzMh^BwvW{x%;it(;j3c0@LGqR9MysW>K+Ga!gt_B)SbL*O2248h
      yDtH1VT|fzh>yZ4#4X7xr!luF+Y$@E<@w&!_#vPrvt9eu7p2k*!G-F>)KllL`UWW((
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/MultipleMaster.class b/libjava/classpath/lib/java/awt/font/MultipleMaster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e64ad0c2398044ab932b1aa62fbd1275d6c06f10
      GIT binary patch
      literal 357
      zcwS{s%}&BV5dH?SRYWZk;>8DOFE*Y%k&q@N6cRadT5)KWlw#T~@@yV_03V7tyAes_
      z9QMn8f4lR2`1}I!gr1KU;bE<IDpnsRUTq5#r*&@hd(Nq<43|FIgupp+Rb=t(b<Imd
      z=)Q5Ocbuk)WC;CmkwlZfB1=9K?uE7UUm0X<MqKHv818j7;+2wDD?&Sr775|5Ay3tY
      zMH`4VIsIgAN?l~q)o++zM6>Qd*lE2v3YIzxqcNc~-`3@l6P>eUo7+CxdXFGp*zsif
      db9jJ5-{A!=9d>Z#u={(z#*HKhw{o@+`~XQgT5tdW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/NumericShaper.class b/libjava/classpath/lib/java/awt/font/NumericShaper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01bbc22fac61c49507ee2d40532f4fb0beb41933
      GIT binary patch
      literal 4638
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/OpenType.class b/libjava/classpath/lib/java/awt/font/OpenType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a751f1d9780ab9a71bc52e60a176b9757206136a
      GIT binary patch
      literal 1965
      zcwTMQ>2}*h6bJBeZ(Enr&_HQu*;;m&r6wtR*<>w_8_7~Vig74VWLsVmTNbjCCOjG+
      zcmN)X!+%tbeGjJ}e8<08@64RB|M~Z?zl9Ln;<PHxRm9d|bQ0C0CwYCeNb<U$#z}aV
      z##M2?A~uV*S(J?He*Z8Y<P~u#G@6eMvmI7MrBx9d<|0|<QIdC~*>OzKAX)Y48Xdy$
      ztaQVWHmRU(86owDk?!AceUtjL#XwuSZR#&)NkvqZO~)a8ZkNrbX9P5uN2#`2Zcr@u
      zw0k!MbKTvNttP2Z+HP1Osj#wZk_szJWvT60@MyTy**P|{AH}Qe9WU(BXr7;H2ThMg
      z>3FWK(i^Q$qiM*1#?exz-?VIpRM2)092(EgM%sZdNd;}W-yjvV)%@f2{JWOdqseft
      z^Vzixizab2)J6qOP@%2zpRDtLAVY^#(B79J9Ud?Be)sH7n~vfvDeanAe>PaHkIOU&
      zm#OD>L%B;Tl=h5XK=bHS@89#B9;vXhv`7VQzZ24Yk?Hl@hG$a}&EwL3(6Gvz_vH@x
      zvc6Nc1g0C33few)k}g&|2|9K_X%?p|`^pRLuw(2|o<&F62f;SwXX$q7t~zNIwAIO;
      ztWUP9PWGfY*(>8Xcksx<s6RvE7iz6Lk8pw2TC4T++g8n8zc`s^(`0<VXt?o=hH}g%
      zpHxo&#Kh+@G2Z6&XU&HC%NWs(v*mPw+oM`hB^SrpAa<rIuMPbha90h#h=(o+KN$DK
      zO>se7gsRXvaS48o`7-=G^A&i5`33kY^CtWv^GonG=9l5?%v<m)%s1eh%&$VPF~1JK
      z!TctCi}^PE7W3QiJIwFG?=im*f52RW?=XJ|f5iMT{0Z}2xX%13yv@7=-(&s^{+#&>
      z_)F%m;IEm#f$uYa3xCJ_J^TankFdeqfK6r#wwWEc$-E1<m><A<%r5LPw_%?-fFCk<
      zV96Z9`^;VVr~kG0m=EBenIFNwF#ihw#{3xmojHR0%maAH9K$2#F+5?O!iUU9qKd!J
      hnV1Vvlu21G$}%m=KSWlR%c9K1F-BL!NioNh{{V)OIr{(r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/ShapeGraphicAttribute.class b/libjava/classpath/lib/java/awt/font/ShapeGraphicAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9442a7479e077d21c36bd86a6e9858110cf4cd3e
      GIT binary patch
      literal 2387
      zcwUWF-BS}+6#rfM2!th4tf=^1!6sReN^R9*RTN`^2vuw}U_UltNj8R!CYylv`=Jkg
      zaK@KD=u3U5<FsQt?To~J%sB09|ENxX=VlF2!SP{t&pqef-}#-7d-mV|{(KDJ0KN`j
      zox+}+Rj~%GMQ?Dv;Ch48S?j8Orf6NwI_VM5D>|vNX9v)%u;b~C&+buZj*Z3R3Tj57
      z^Hjktd6w%XtbEySqB|(GPG2}bHE~*2N};7Bo)o&`bzJRxm>Wx8v2ca9)>NVF&Xp9l
      zu58NKg@wWMcADs!ygf83`;R)V;~i7j7=9LPY$lQ*vr~mRJBTK{YM=`nsR)ln67A%)
      z$v_7Tk+vA<L~94OVtWAF6hcoU8Q6iH3LP2SJE=(xjVf#pM_xcoP<I;$VZFloxZ~QB
      z<%N`8ykMpBjIBFfNL%@YRdi(SE1SKn!*KiKFHsZ*-frccjJsgF9@9R?<8wu8QK7dX
      z4gM+89gf8!i6Bf21h7wG!zx=0?8hKsy`tro@|F~}B|JJ>J9fZ87(+bxT#{?{g9hFb
      zd-J@L&nvWLd{~xcRXU`+#3#n*I%{ZOD_i-}N)7W&<KR>($Ak_?W`fM+F$2Rmt`H8t
      zRC*%p!=^$iC#il8F^E$*9RO?C^{h?292I|O47>+s)nLs>RubJ5j*N+U!ay8n6@p@(
      zt5|N@*2b6^rwqI=#&$85(mW{I^9H7+i`wg56vPL@gFU)s%|?=wmkcDII2*O=fU^cJ
      z3&pmqRmw_}lR+`7Q9m~D2`q&GPn@-uE@^JWN`u#V?n!^^xX)T%*1$Y6+_PXUNzvIW
      zF+p(*<mxDnn-pE%z(NCZGJt}@&Nb=x#qtG<Y+YQF+gH>?60&Bh%cu~jWP5UeGba3k
      z`y@Bk#gc*RI6{t#&YYJO&8G%F6HRN@b~0I_>|PtBMn;!^mf4&xl#6LQ=E&XaUA2w&
      z3lxVXS#xf+U<;pCt^!=GLmSua4eKBu&J!(jn&>a@Kff{zy6_6$-CPx^Z|1i*y6q7*
      zM9pRNM7J+vbJY9;y$Z|N^_xEX8s9zi2zFu%#)v;ov<Z5RV-K~_8VdT*FEf^scvo85
      zi`R)Dk}zqaHjIex|68KT$pN$PX8+A9qS1%gd>bK?-<~SoxQ`BBeADc!-0ZK&o)t>H
      zI<$)n{}SmWxt^u|GWOxa23iAkS_60+hcvAL9L5n%YXI+15?Z`&KCMYw#MW*819b;2
      zO%I~x-%wS&`=IVSqzf_6glCvkNBirkovQom#tDoNQ?QTw*pGeeT-3aWc?r(c0iL{#
      zM6`;S$>%O6BoQ=hzKavoj#E4S-5ngHJV|+ya+vZt%IB)MaGMpZ;v!cUX$euDp*-`w
      zP;Xx0yq8RY5;nl&Z=}pJR5&Xa$#Dr&Z0A|rU?io6SaS7Pa?EMJj)l|4kL8fg8_?N7
      zy1T0Q=+^H@{Ze<=s*T@hxLP-K`fy67k`Hp&2MPHg*;|!WP;ND#gz6~CHK|-#jmn)>
      zsc;nfAZ3E+p7;xH@)54a%^Fy#)|Q*h<U=ePsbwsRbVH;Y=C63V9e-du-s2s+k4^Xy
      xyYUnMNk2EF^hrCm@g2hFI;9+*K7}E@rnT1gU#t|b7Q&;35ZdY?e5rSR^*<)q*h2sS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/TextAttribute.class b/libjava/classpath/lib/java/awt/font/TextAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec4a9d2873ed680c9b6f8223b22e73008b29dcd3
      GIT binary patch
      literal 4769
      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
      VVQuULSw~#eg{~vUj+IZb=)b$0MdSbg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/TextHitInfo.class b/libjava/classpath/lib/java/awt/font/TextHitInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb1f3139ce32bade2727b1ec673dc4ede0273e63
      GIT binary patch
      literal 2065
      zcwUv1TW=Fb6vzJ)+wmn!E-nd$#9&%3z7$L$rIc_fNl7r67)l6DDkRp~vAvPI3+oL<
      z>g9Xz##>(U&`QNYAR+oxsUHgUoY`gVnk9gu>>SU|`JMl{%>MiO`AYy_;`=xT1op1$
      z5A~A%vs<d$mRnkqkK8M!Tej+U98rN$^}3~7jZ(F?F4tUv<XTgA%9bG?35c@5P)q8D
      zX*Dhz4M{tz0)yvF%XBXY#B$};{IWoF&NgHU5$w{C#IQglmtRhT@ET$mWGk&9j)cHS
      z#kAz&#!ofrEa|lt5z`fWO>Zshj>*6M&8XWn+X9o7cgmj;&>GU6>x!kIBzKqDuJj6~
      zU6MRTN6S`QI<9G3{`o{xZ#P*vWh5VL=q(C3o~!g%WG26wq6D%UGB_x(KevM>4i&L$
      z>zvhF9Ht!Bum_*AbyUM%>=TGLJzui?LUW9AeupUR{smV$MM=1hZnl({R+Dwxk=1&=
      zEvb)#wr>pSbyqrXwuh(^RktY}q6uVj?+Y}o;TQ^Roz{>?!7IB*Q;39X-*O$LVD}rE
      zO559=iGy0Tr+<5P!)zJSN#HyIdt&~W!dYD8<i73ehL6iH^NCpvbNG&u)bHPymLV_|
      zl<e&wGYQPo<W>^6Ldz2SUuFMm0>{E4?7+EBfV&K+YB+;$1X8!`4QEZxn>@9nJ&7D=
      z2wg)O2)d2~^hY;AS#%F*9j1TkAiW<VYlZgt+(=;?T4C}j8B<R&_NQ|Agq~?c>3M>l
      zC&}#;xldy^?PNVSjAH^&7Kaha;y?pr)5Q5<O0@F3Sm7^>Yz1)7;fw-m-T@ydct}H>
      z$NHVmhdNINkuNGGz&JZUMv4V&BFRhiUO#NM2R0tSraml<g-|6K?Dw4)RWqof#lImQ
      zQ?-k)AUZg(73q?ORaGlg!Rr`BRS_pVub|Rte1^}J5c)3oY{O?~i~k@N*<yLc4h}uR
      zD5p*4ktc{ndm~MdMqr8hdYkm$!5DtP0b08evq8ixa%9mLn(v_>ahg0i)6@%ym3`4|
      z6#wX}$K9TKr2HXF@|_MPL_!F)P{Q$maM~wmo(3a~(dc1l)Ig7M;v@2C{ZEBQ5Ol##
      z`h*34!ZO~3ji}Kwp5fFc^;nJBGknz#eb58V1jF)mAZwmvskXB$rcB;re2Bb<?--Jj
      zdN25E5e!L0c@$pY>`MCFHZCx@gG-+9MEde3V(Enr%IOL{I#}$+^2X&CD&4O%n7`5B
      S{f;B_yPHKJ$l`|by7?c$E=&Xf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class b/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b4117e5c89bc631b5af35240accf5a3cd40a9f4
      GIT binary patch
      literal 1005
      zcwUuK%We}f6g^JI37Jkw`l3zK@(d+OTcVc7f>cFHRFp^~Kx)+mJ123|sire%;yxk}
      z3lQQPV1?MQg-wxI@Bw@cUx2uFqQHVw;KjY?+UNQn-|O!`zkUO-ij@Rn47q)ABue5~
      zm3G5GmA2)Haz!^hRJp2%q<S3sUbCBk#gH~kUj*&aqsG2$Du(#F7kFxeVI*JJVX&%U
      zOWGJg(g8=DA?133e0X@!kkPhi_>y754V%K>5s|0k{-&k&ybi;n`!8C`4CmWYZK)^>
      z+Gd~OApe)tny2c)Zdm@mqh7&s;fyRB<Csiff*~`M<X{TZ3=S!+?un=#wB(6tQ{Bc4
      zG6~Ew%nqyWU=CS^@qV&sDjB)*Ncz;Oe7#W70u~%x#3hC?uj5M5@`Cnet1V55Cq&!x
      z)G9;vj92tXYcxdP6lItj-VTPCPxrBk20Eu>+RtEbg@;j7KJfG$Q@=BA>Z|De^&pT@
      z)fb(PqzRAyF-KehsfAuKLiAtACMdc^o{{IpFF5zv9NT1V^56k1{uHAWJ3SKlG4k{&
      zkm_IXgP7XaR+dhYKE;K**2;1p@o8(CzsCZ_^KX$R!u&fVm+!?tBD19Jq$Yeo(gblj
      z$izPlG!(VvN3i)Zrg#@w{tN~F93}n&clb-J^H-?w*VyE5jK*D)RqJci=(2gXMpp^N
      y47!FKHNwUQu454v{hZslL5O3S_VdJxV{L%$576cS#ZWLBi&!$9(hZ!U?Bp*Mk>LOU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/TextLayout$Run.class b/libjava/classpath/lib/java/awt/font/TextLayout$Run.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09bb71dc8b9eb650b638085c13e29b99f85ea196
      GIT binary patch
      literal 946
      zcwT){%Wl&^6g^`*aqGBEXbGfgX#)gE+(%j{EC8{o2#OSe)J9pbn<Nv*m9ddMDRje<
      zkKh}+K_Vcr-~;$5#GPqG1X5Vc%(?g6$GO-3`Rn@+00($v!(iAr<!8LX-^s=>j%1@F
      z-pe*WkH@llJdSKw3<Vt#^2l$z>Ya+dWXSp9`P)&KaGWr#xBss3Vn#k;u#}G>KMQJ-
      zgNTJ>9Gys>5Xo8$Su&qT1M-J)pUWVQ$loNt90h50pP}5ICzXn2p9WDNpE0y*^TYn5
      z^B;AsR=rEokK%z?1jAJq%g8%0am_^m*BQ)Oy{nit7a3#~T6bY%L7^Ki7U3wg<st`1
      z4If0}<@ilcBpu!h1;a|4h77wr36wo`T542=&AAh(Z$iTw{u%9N$dE}d_h$;VxTPR%
      zi=phq$ALeRTH|X6+t{_SLrUik?_v)PhGkz&+cZP&r#hd$i*pi>lfGyMN@0GcWlz;(
      za9dF%lB1BPsYq=cGL+`2r;4N>6<Ul*e_)nQM&D4I(=Y8!zq#q_VhJb|)b`0T=oD~;
      z@>d9bBwJ-yyzL2Ay>BRbI}?<=-3iKG(VAexD`qCx{H!x8beDC!PhB~6>QmJLRw1y4
      zA#M_LNDS4(E!@`KE2vV2q0t>uXlitqv{@S6Bcw8Fs82OLrf8;AdS6ib3eW!V2^s6c
      gy!fLbtNBFtb1!43{S55u`vCXpb%<klfQK-C0~1)r0{{R3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/TextLayout.class b/libjava/classpath/lib/java/awt/font/TextLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bea832a12be879512200434b8bec2f5d5d444fea
      GIT binary patch
      literal 23555
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/TextMeasurer.class b/libjava/classpath/lib/java/awt/font/TextMeasurer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbbb2a3ad7fd57df4828f540147b15f0c12b2552
      GIT binary patch
      literal 2843
      zcwU`V>rWI{96cA<2g{0zZdDd!eN=Z>1+^6)SX)4m)fK5&EY@0w-ODmEJ40t@1(SZV
      zHh!s1KeVyF+S-tsCe~`Appw?4Uz+eo)t)=EEQmGQhV0z;@0{N`zk8Ya`^g^wwqZPg
      z3W55w+BvO78*^HQEYoQ@F2|iCQY#c~X$Mdxu*6+AG&9$7bnvXqI05(tmd(v}8kQ-w
      zK|=~uIXo?}G3~CZK});i*!p16k=f2+&DJuGv{U?Pj%BwAR1Vo0fi>ypIdt)JOqy9~
      zce2MQ+*#vTj%K8_^Hz}v_30N`du!YpG>dr!RuB*=0smgz)SZ0-hvTow>y>m8{miw~
      z%E}Nbu`G<mSk7GHiT-K`yb(qKLDgFsMm0hK)U*3Cz9FnagNm?3omd@44Z><J7RDN^
      z6<C^+PMKk+RWuzJDW!I=4`UH(1s11uQ}z_|gVH|k8Bv$EGMdq^*}57ZpLJ(grzQ>m
      zqTQ_HRL_@DehMs)C(;Y8ZwnE%K_HZshIFLjC9vsrWlbge188BAb76amhS6*3RMkE(
      zo{^)DZkYjW6Id~~r;icMTt`ti=s*x}F}sv`PBZju%%jn3750R%6+4uStpbsFdf{n0
      zrgrQKV>kA&B(%{{8p>Sasl*GLOHgg<#NII80c$7dSl;47VM_5sXvPkKuqnrSnRm|C
      zMu!Ee%LJ*JZWg5NdKtw2c}aNlDhVDa4?O4Fv*$E3BRixsCZ$Pp;;B@kOVvjzj6*og
      z!s4#9mD6c=x1Jj|_;dP(wNcl>)NFRjY<IS;21jr-fF6O`=U2k$#rwQxjMu?3%NDki
      zWMh0@fSk1QEyq{}%-fLL_cQ4}d=S8KfmJWv6h=QzP(Ow}p=X_8w|W`bS8z0&wd^zW
      zyv|lI<0T8pQV^A1>C&%$KA(jbKY&jJ*3LPTG7Op1jCMO$%uCZL*H;jlKvSQBkBwRd
      zUCqVv#ex$Xl(D@rmrrvDr?ErnoK;0dF`MEqM<%U)&o6ZmJ8Y?qr1)HnyMA>gQbFh}
      zwGtw$BhQ+!%aHqGTbtFr8VREd2U#e2ZM@_=W$EJewq;)98)oLx(#$Cd#eQW}Q5FhE
      zhlUE$nH|lp*W|Sk*_YR-057OGNzrwa4{h~`l%oeNw~Rx5R?*JLE?qqhOXoiV%_>p;
      zf8Z(pe5gW&deQhlqe8uBZp&B7ZTbGN4R9Y{Fn*VEbe?A_*=|fup)R@UAtK4m53wRS
      zja37iHcuh?5RJ*?12j&e=^@tLcLTl2Z$13{zDK|g0(CO<enfEq8z{^MuEe~s{EGu_
      zPtg)?PZ6u&$pn%m8hbcWYfGjf1_&47Z^aZg-7Dky-Ss1G?69}D6kA|3wv^&rE2Y!z
      zCE!I-IW$~HZ9^%K2}GySJTQ%|19jV{@OHx_c21&g3hzFhm#Qnq!hAm@>HwN>5<Bq`
      zGe3oc_;_Bv-Q|3{sg0L!H`=LA1^XTUpJ(TP<C!DRVe-_;^DJ>k$kTWw&jTf%EbS6c
      zjk~MZDnA;dB+%Wn<uTF%lQ{PE-7=`M6BuJV?t&z}LuHT%g{yTzB9u>ogjkg)DWR&`
      zQ<Tty%amjx)GaKU#_55&GgBCRszmY_Od&H@6SeN<&w1z~OZtm>`8AfI8_Up*C1`;m
      z>f-{6dsM52YctUsCA?vUmy8l^-6YOlKD7RF!cv1v(M!3JuUdT(U-XRns<{bNtESbL
      zj7EHF_iq16|N6^UzDJ<yHmWLHgOT7>1S;6CYOStn4MlvBYWH+>0^xFu%GS_rY?+Ip
      z4%Mna-`#|ti;>_pZ+zvtHx6BU_DD_oFZ!O%MhU9sPQ-Votd5Nae!rm=-!ktjd>^k;
      zgKJ#7%A0o`Ex3VQxQTuEf!_a!6SzeKexf=*Bahqo48Pz4e#Mu#%M-tG_dU+s#~nQ2
      z%mjN=EQ3dQj3@XL)A$R&yAGV<{idR22WH9+%&-RYWVecEO;~g)LCjIE`pDn{KINRB
      cJPPDqU{z-5lf%_&a>}B}Ira9Qb2A+K2VB~RWB>pF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/font/TransformAttribute.class b/libjava/classpath/lib/java/awt/font/TransformAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d52f7a2503f50e96af2f6d73cbfb71078f6b849a
      GIT binary patch
      literal 989
      zcwU8)TW=CU6vzL=rCV^Z6=<u)7FsXdlx<CXs+y42Mk=WfAW8eSz<|>%yUj9q`x?g2
      zU`%|_L?y9_`qt=2^1*m^pcHE&4>OrF=bYa;^Pltc_m{5#)^SUNk0EtnJ~a*VnKW9C
      zEsd&c+TE7pc8XHEqTZ8SLx5pcMOmiZHXhXvctdKKVu-6-;TRR}3eyrV&AP=YxU0+>
      zce}!|AD6Zm*bYNv)3LkKv}Mh-dOTQo^<(Yz+h6+(GiIwLY(6T@kSve7YICP!6#ov`
      zV3@iiY$5M4tY#*}W@`+AO{dAj@FS|@JYo#~Otz+Bj?zybR<bPKHm#!D?sd2=?>}$w
      zLrD*q#sYP;+q0}xTApCjDcg~$L+*Bjl)PC8BaTZRe34;p*pi}FNJhK8;g!40u=L+v
      z!$@G+gUp0LKchoOgybnx%x<q!=WcZ%aJ1|+NMDmwCVO}pkWWOH9#o$6p`>0&o@%YP
      zxg3*zC6k>XsMlpyM-F+0V8e23Djq+{8XFO+6BgZ4le84_h0=WA%QbY|z)f;ioSxg@
      z+rsO9;om+B9+2jgGHC_j!y+_H(>X-*>qD3p2}EblPomL2OI8B`@&L(P9~bh+h#Vol
      z7oG3p;<wxp5_|bRmOdf*K|xk%pC>r5MQPiFe}E`<u#AUTRX&Bn6<h_>=^B-!fyQ;D
      zhXrpd8#tHyh~#Hvz9aE|1fNo_s)Ff*upx|jG7J%ShlrSmIELnbgYbY>cy|U>A4A1P
      Js5KR}{s*J;<+K0*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/AffineTransform.class b/libjava/classpath/lib/java/awt/geom/AffineTransform.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2da59944d375afdc081c7e0a389380a46c375605
      GIT binary patch
      literal 12490
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Arc2D$ArcIterator.class b/libjava/classpath/lib/java/awt/geom/Arc2D$ArcIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1e4a4f5cd3dd216c1ae1e40855b712249ea856d
      GIT binary patch
      literal 3696
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Arc2D$Double.class b/libjava/classpath/lib/java/awt/geom/Arc2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3777bf1765923a71c0a0d90e85e834b9e1410bbd
      GIT binary patch
      literal 2281
      zcwV(s&u<%55dNO`tv6n;H)%qQL(&!}X|mox-MFFrNC{2jga$$@wN)XU*gC7k5Zjf#
      zA<c>3T;T{D5Vu|`(Mq_LK;jSJpMf(-6*F%)CS9%D6PDKVz1cV4n{VdL{_*J7-vP|y
      zih-2Cb02yidu4AwC~y0%MtQkit5m0}t-YJOz5yvPlJH(Y+@^=^fq=eW-wJjF(mQ^A
      zdnX`AC-B;2)Bf$iZ!$PvZ`Ok)0nI7h5RfaaE#HKOAqy6ck;7SM|KLWw>0jP!-1OVm
      zJvv`tc%xPGc5is?I<F(A40h@rfr*X&nJ@CLgIly&tP7Y<RsHCY3`nsB9ce}r7K{*`
      zurLs!=PhJHG-<&M(X@pu(nPjT4=F7=v9quGwZLm`@A{SMqB_S!33CQqfw8_jExdpi
      zDbZ~|cu$q4%28ztXAa$)?5J2c%Z>qZyvvnl=SvpOu`@%?OHtWHTVVVNi3#Lr_cE`p
      zg$=R~*Q-&ZjCyCaaVt1b>AX*k>(GXF&7>N<Vc`Pz$_!oCRdsWn#|foV<wn|_7_Zsz
      zKJqWN_L^HAt{yj|^n^?eyh)Ad`#x&2i8ZYA4SI_b4>{><^IB`KUGvxKd{s<!DNZw!
      zfVJLi`t6lnuha1<jdaL@B8k&zAkt*%UJw#|E0i6GY$md1WV6Z+60(q^f16edND(3)
      zS9^%T`-D;$rhk(xv_GM1e_@2yR=5k#U{rC@1Vju=v@@j`#uFI+CWe0$Lq6OUF)+&G
      zS>j->Ld4Z2O>9f<XpYF-*)GQ1QWxWHLGR+YTQIsf=@v3w6x~9$i>d#Pn<Uwg7Sb|@
      zth6yC2a%UUn2^UXDTm?65tYVO-bZ)wFpZKbpHPSks3~-ckgm`SAwwZ9V@4q^WL6=T
      zkW&(7BMCnd1Mjc6qiL2f_W%y7AbXmHkez2KWEWVBqqN8bEk)8Y30qE)j%l2br!XUD
      zFehg*FCC?2LFHKKX{q34yrQ&JRJJLFI9sU@XUke?f}?E9QTuiG7mWSfOF$Jw&L8Q#
      z-s}9C#NhFG@M2={*~H-E@!-|O;B$$=C*#3a5`$k&3@*llHxq+jOAMZh2iFpV7jZrc
      zzCeB8cX`%qfA=G7&Yyv<-IaG^Y>gvq`5xQr3B&T#F`;pKfTj2a`vkiD6sG))hUIg*
      zWM9y*d`ZLd6%EVR|KqSM<01~f9a{JmV+qCBw?lqI`F-2x+hM9a1Xhx{rs7=R6W0%Y
      zxUz~%qKegs>jR47?CsyMwmDlW=mp~;F5Sc94Z3q=2<;x9-K&w^tC8KSksZ}2g|`*k
      O2HsIQvK9@Ok@**#izTlB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Arc2D$Float.class b/libjava/classpath/lib/java/awt/geom/Arc2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74359a783b07d8eb251999bf653661eb73448b21
      GIT binary patch
      literal 2314
      zcwT)}T~ixn6n-{&H%m4P)F2Rwm8O7%t+JFt{h-nU0YR~9+o`sGZea(~LefbVDYxD`
      zlPfR1@wPM8nWmkwGyZ^jt$#sVKYoE$&pEqY(_}F-oAbP9-}AiZIp@6l;PLlA062m7
      z3?wuRTysBn9e2-nHoeM@GhbbwDvm5~S6ttK($Ew0T7!0zo@ILWHRyY#4S!2RYRfBa
      zZu#V>`EHeL%Dd@%Wd^59<&r<AAz2u|q(LoKHarta9I{~H8FCa>+26fZDtqU4cdmNX
      zi|*BJPeXRCvhHqQa;qg?hfd{hm1-IW*A7g4mN)I+puO6v2D7j%KRP1~4Tml0NHKcO
      zf)SwSEp!CvsD*TZj#)4RG-4rx6p`)GLqhX~mZQ&m>%Lpw-1er5vvQ7!aU3^bw^g@k
      zr-c{s5+%Cn`5#DSiX7!wn0(^C%#JAwC)v?Kj`z9H?3}T1ik)e4u7p+Bs_ivtPE125
      z?Vjh=g`huOPu5FepNvv%Y3GK&FX>#NzSU?$b)8FCl%Gh`aMr>+_stC6Ukpl3W6@cA
      z`UF)da$~z{EeDx9?sadWvRmG$aXFcK{C`q6Ky4g4@O{v96DxR&2WpLkNXz+X^Fn2}
      zy6!EPcydgckqIW!V6B$RUUhNXt<^lrLKhO`NnVm}M~W<s2_cP#L~KWB)1fs(n-SYh
      z$U-OmchPDZ2|~nUC-0&AJ3<L$>E9#^^#Hp15k0iFf?aqPy~0KJA!L}Noe5zWjA8hR
      z7=9LpzF=3#z^D)X#KBy-kn0ZZ=^$IMdkrG9hZ`8MM;aKkM;ka|_p1hm?0&t0yxpH_
      zVEDh&j&Yp&1u69_GU_1?sYmElzhO}Qj=cH<W9m=I;(Wj#Wl@moX@a<Z2|=TTl7e0!
      zqy%vlbwOOmlpt1Mh=Q?D!8a7gyJqZO#R`t!MWN0r2u##j34s%JRzqOA&Voi*&uEOC
      zzevvC=vI%BQ~w}Oytb~v(G!@~lOkt2I4qJggO~A&$eEFZ6M{0KoEb@2(R;emVZxKq
      z0NlaAm)}MiNKtevw)vB>(SvQ#eX-FeW229>MIVigJ{221)D~^WM!y;xoo|btj*WgT
      zHhQ=%dM-A47N^7Lvte`}>&|@jHM&>=13h_5-D+W5X=3Y(*j}fL7qH!@-m-P<F`2Y+
      z8MB-&LzXjS#B%964_PilX4vlSyo)m}!=_(BO8*d+{t<fgk8xQ4ga+<Y6!gz9p}S3Y
      z$BBl`q2XJQv>dtx3o>F3-JJy)N{8;w0{I!4gwldCgffD76!|N(h+-(@3^6c=Awu#k
      zpA!8VC3wB*Q({Dk7;*rAN|p{F8*U}@iEQ@(vW$=^EaQ!kY=gX<fA&6BE|1m6>r`E;
      t>^;1B8&5aui>7OtjX1MWrLs|_vQee7VWkpyTiDLw9m$ggCGjrO{{rviJu3hJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Arc2D.class b/libjava/classpath/lib/java/awt/geom/Arc2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff01a0961fcd045b49fcffb6ae576bbe87d785d4
      GIT binary patch
      literal 8744
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area$AreaIterator$IteratorSegment.class b/libjava/classpath/lib/java/awt/geom/Area$AreaIterator$IteratorSegment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc1e1f6c58bfa2ea902cec513f3cc5ebebbb1223
      GIT binary patch
      literal 630
      zcwU83O-sW-5Ph4bjcKFC_^s7i$)T-a=vfh@MJN<KRC@8WZI_yoCbCHtf0l<Li1-8i
      zQQ~Y+kb1~2JG(Rc_RX8w&#$)+08Jbl&=|Z4f8-v2O1!a%rrxC#+*PKN2+5O3y1$2>
      z7*9o*7|<E)^ijaWv3E0=h+)E@C(jRpfpr)P!zhxYm_fU1lb784vD;**b~93)5%}B>
      z{p5ndt!1L?eahO3M#2Qcss$6pB63)>P=dpdtJVAJX2XJkB|>!lP+ZTZ10iquARw(y
      zHyZMw&!w;YpP;VfGBmT&FZPAR7kkl64#kzPcuWO8RU`~nCk%yb1w4*LY~X;QlEH4E
      zLi+xLi0dzms#=hNBPuyZ|EpFW1*k#w1GcR?L>{A6f<^l>o!Zc70#4&(j+MqM?1o)<
      yH|AJ>p{RyUvMY*Bw~*IOn0g6Y6thwu2iw?5al5JA!+sjoP{tu?(Fj#W75E0D{gXxj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area$AreaIterator.class b/libjava/classpath/lib/java/awt/geom/Area$AreaIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0510c73e3518304b91ad80e0d3f7b9fd618674b
      GIT binary patch
      literal 2481
      zcwU86-BTM?6#w1iCQH&4kP_%ZfqqcT2O*GJT1ZPp(nu;$3N4>jyO1SpU3Tkc>4!dA
      z$47ni$(fFh_|O^08AxZW<MgQyJ~_Vo7dX!7KVUs~6VebEnMwAZd(X%Ho!>d<{`&7v
      zzW^A(0|_36t~=^IHKE>j5_!$qNQ~N=+ATg=N3&JOvL$eaM%Tzt&3xk8${lUhk>F=&
      z+v_^5I_tY$40Q!9zoD5<fuU)_HQaP`BQZzLmYrho>1IxQz`(K$9@QZr6E#TI)^t<5
      zVXJ0g&9XPh#qX@^h3<Za=2}z2EA$t2Q+Gxf2Ezv#91=e=$H2#|oE8AXQ5mnHJ_s*D
      zG8)jr;0;ISgyxuxBansECL@5LgyXyXR3#WhJ3_*!ONNBH08Zkxgj2-Deqb`XQAg+t
      zmZ9eg!m~%l8wk^pn#+wE27?l=qHxSI47x<O%v5AaM2^aci3q-R%h22aaT$F`Fa$J1
      z6Ga#$ena7GWTLi?DG3An3hDO1Y^i(_&N3tp>5=YTq3jey66XYOgACmV)nbo#N)VgG
      z1sOvKQVpDkcQtX4l5r82h=o<lvUAi&p5=4^{kSaSEsWB3nxMDVM4z^F(@CaNL5$&w
      zgf!)Spn;4G-l5C#nzP^*H!VD}GOq3(FA5?jWK3d;45$)<!u<qBmV$(7TE=zEP<iiG
      z4MB$5N_4g_yqu0?1@s#-ZbI~#sXZXY@q?%-bC?p>FUVNL64@8@k2M!2O-sWB_3hN=
      z#)@X&P*)6144Ad58gr_xi+%Z!i)mpvc_{rftEyoL;AGBp`rjkW1xK|BqDRCSI4nkO
      z15nKR)lJ(bvC<NG=n~c$I{tSIW!%As)VR*>0Yi}J%hE3^CX^LiJ~M&{&vJ$is4n$X
      zu6cS-bTdD*DRTGgg|uas7$f?Ev(~1)s%3Pc3kcwS0tADcHBHSPGt@#sqrh@?PDFG~
      zRyaWe?WMmD93C;(^p1MOBjB#|EC7v-;^CmZpX?gYNZ;21_6>Om>p!Bg9W+IsqB+{T
      zgVv~b2TJrA+83XqV+WmOX(}Gu#)%@%%nKnR1n(f<!dLMSFQWH3`iFgrZ`l6~$wi9w
      z=CGtl6zRMoZDZK0__r}q#M?9OmY28VGtq5yDpC>e&R6>>KG&>>YZTy>iQ?PFthhz-
      zfA{kDY6oeL-6PIIJYK~7<CofxE)C1{U4sJfbMWzI1b7STc`J_cW9Z}xdUzWWyd4*K
      z2S#`ovit-l`6<lv)40XEVem8fg!kYx9>o_thOc=qzUOiLz!NC)0X*kPyx?c?8~MLS
      zca2jah*;dh`+zHnLU_=Fr}%(K_acSIxJ^ak$l`OTn4<zt;!~`U<i|W7Vih@x!k}TM
      zR4{x?8cu6kq)LCq<vlq`V(SZp#L_Fsj(Pn>tZkvqJF<m_Scf?57?^qFWgU(F$1ne(
      z{rM*qUOEL<K7<B7j250km|sGik6@72%lxvNPqcJzC7-l-1>I&k2ZL~W$RgzC<8={l
      zlo9_)h<&u?YY;d3f0m|7u=^^o<1TEssTyKbzz`q!^153~f%@+)bh)}F(h2*$>c93T
      z)klPbrzxo`XyzHT^KnFZ7XADxhG@<3Nlfr5EYP~buenK%5Lkj*Nit7Knr@N{<s_Ri
      z3yTu>B94|y`INH6a2HGE#CvIF0*&_-CNX{BbM9SoNn5^);Um~(&x>>_bWMUTL7V7f
      zYT76JA}v=%YN|xKNyti(hTLKRN1}@qir=QOel-n2TEPi8SF6GtDTnc(;C>x!y1@mc
      MlekA~lBD~<e@);IA^-pY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area$CubicSegment.class b/libjava/classpath/lib/java/awt/geom/Area$CubicSegment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8425f445b11dd18e0957d04863d8e840be36f65c
      GIT binary patch
      literal 8297
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area$Intersection.class b/libjava/classpath/lib/java/awt/geom/Area$Intersection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c94083920972b980e2ef17c44b6002d5a893bdd8
      GIT binary patch
      literal 672
      zcwTi;+e#xr5IsHV$vD|jv+F&&tJ#f<8O5ltE`k^YA-D@JdGEv~J0a<jnNdGOy!?m{
      zLGZy3@T0`4Mo`(<&|Otsr>f5Betf!r0I-Rl9vp$it~ygSb)MBaI_}qY6Rj!-Ceul(
      z+gTJF4^p6LK|N(Uwco8SB?QEYz)a(P@t-&{*;aj9z{wOr>g==xa;feJEHs9UI?|oK
      zHW`)Vvwu-q*$|i<g5&(J$VAzWz{bijzz0<7^=eZ<?#0L2hrpKr0Y(eRVKTrNrij~0
      zwaJ;8050<E%?0o<!rpuUA0q<ejmYT3(|$`Qe^slesZS$rt6ozj5yvl=k`)M)hv|I#
      zq$H+r6rUz-y&rL%&xmy{5(o~A(aBy<rKwImRA|)y-7M_2AC`z~j{elOI}ctY!CL>t
      z7Vrru7Fj+;^f@GdoX#Re2~~S!OX2DOpTj#$glhv#ht&aQ!&!HL(k*2jEYLa4Q{)X?
      yc>!NuVoY9PLSEx5<w8jAf^S%~GfS3@V?E}RvmP^Y>2}HXEaSUn$Bcep8O}2f1&bd5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area$LineSegment.class b/libjava/classpath/lib/java/awt/geom/Area$LineSegment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c770e64f49d8c0f3616bd70867768a036755cb75
      GIT binary patch
      literal 5193
      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
      PB|v=;82pv>1C;$A=^SsM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area$QuadSegment.class b/libjava/classpath/lib/java/awt/geom/Area$QuadSegment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2f61d1eab74a7e2ea3654e31acc4386882daa73
      GIT binary patch
      literal 6012
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area$Segment.class b/libjava/classpath/lib/java/awt/geom/Area$Segment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3a1e8b3226d278bbae8abe29ca90aaa8c8e4b0e
      GIT binary patch
      literal 6120
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Area.class b/libjava/classpath/lib/java/awt/geom/Area.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c8c40b48a16f2a5a9dd4979aba44c5cf8887fa36
      GIT binary patch
      literal 23638
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/CubicCurve2D$1.class b/libjava/classpath/lib/java/awt/geom/CubicCurve2D$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3aedc6bc736feca7dbef5ddfdf7f7be961bfdecc
      GIT binary patch
      literal 2038
      zcwU8+`)}J+6vw~LNs~5pUx998bX$P3wn<r<tlJn}SGJ@Xfwo(d(zR4bxUQReN^NlL
      zGMI$+8~cq)s6S2ofRI3%CLyGClZMz3kMR=l6A};cMhN&L5a&9sm$ssdV&8Mm>)!LZ
      z=lb)1uipTW!b}(e2_0vYB_*jmZzoHdxtPp2v$~pbtR*d-?M#Icl+fyWlog|tJUM$t
      zQ|&N95_YbSJEhnQd0Vp-+q5KvRmZY4!<HcBC4}q+z0%poYmNN>Vgu~Aq?9`q4%)N9
      z@7VmjZfFyhVpQf$Yf-o!(GA@`D&c7NRypsGr)N?^Fk{YX4Uo_#qX7{i-6f+Das-5S
      z8BN$Gfx3Gpg=L3~FzO|=jBuVYXK_}uCY0H-CLuavs!DlMv2-!_ltEFrgxy<gu`|Wh
      zG?z5{v~JAlMycS4KweL9(<@ois7{~aY=(B0;WT?}i&|;XMO@cClk3Sx@F2Rv*t_Xu
      zYFCrdjUJBR^`=s8-mHjA$mm_uPp5=tpNyo?G_WRPTjeQNo05^P)mDA`WgJ-Nn-<zb
      zG9F&%>uMj7G2rjO)eOow>aU#+<53AQw*bf1%gHgb=%@?BWlfYid{)(-wRO{|$8l~Z
      zRTLJ}y{3zqjvX`SW3#4X%vB;7LRK8!u!MH6McfW9+7?shlaJs8@?ktCVb_*TBI9v9
      z!DZNM3JDPgp67pF^iN1NO>2%%IWUvsnWa^na`jNM;!sXtTx2M?QQ18I-KfA!mNiAw
      zu~aRmiz9EVJ*RzQOA_R~VQ5yStW+u*uh24VsAaRl`ybWp1#?cuG`KHXnB4m7H@NXq
      zY-;=s_S*0P^l_&XKXv>Lh=vDRTgBzzF)FSGe?CI|G@+TjT3E`lAMtp1Jh6(_c<(Br
      z@oPMzRcwEU^#R<&?`GGB>!vr*OmAW*&t#r+9PUMjYukn0Ud~<~g)I=g>}LoG4PB~<
      z4ET|I5c47rvR2sS_!VrgdmVMb%d|1a+ci04KgWI8=H)o-5&#<G)0`yu%(_A%Jc6!p
      zA*(fM8vQi)<AG`#Dap%;qF)nRxdiw3Vs&t1cJQ-5L2PZkiq7TnM6fExm&a-FEljML
      z9=dJnW3jF(?q@Mn6%Vo)u8N0Qtgnhkmd8V!rs-V_O-GMiL*^#yqqoo^h6E)jbQQUd
      z+iY@Z<HD|^gWf|I-9VadqMzQ!A^HHv=|hatN0_3Iq0%iF^a);|PjQYu!%Or9F3^{F
      zg}%Z?`r3uk&;7%Ndr*Wlf>AEIpMi{VPX%z!moA{)lLWkz9=t9O-bxKTYXiKL53k^}
      zD+qLBK04pfSMb3Vd~O9FTfwJRxFfVvo1lHe(7wf9`VM{cJ%jrJ2k1u((ND<J&nVI_
      zc$$7iiGIU#^gAl_2bSnhoTtC=GX0HL>7N>CD?YRphF0Wa(>|(-FP-<H5hmQ-Jc&t&
      R?yO!MAd1uc4)Rxa>OZL<st^DG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/CubicCurve2D$Double.class b/libjava/classpath/lib/java/awt/geom/CubicCurve2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..503543bc8f8dbbf672466c0be4e5c650e06491a2
      GIT binary patch
      literal 2454
      zcwU`UTW=dh6#h2e@y7P%N(ruUi<5@L-j*zJ&81B!P@9srX=B<F5{Z|!vp9~Nwd6~i
      zKz|S74Un*csKh&!xRlEyJo3mZZ-{edH*3qC2noyD^X<%hXU_M{oPGSyH{SwS#+HE*
      z4YPaBeaChlbnKej+_#I}O1)a_w(h(6(tN4etu$N%x`x!r%QTD}ENjph91@6DJFUjS
      zG3bxvk4N&%;0L4VYTc`Mu4ss4bDJ9UVspohBZ6rY<CxGev0nGw+ui+&+q&maH5#VZ
      zn^mW=>9p$n9t`T8-FjQYx%K~)v!Wr9Ed{^aW(*omn-GXHdftTLqcbK(ee{Bfn2%;n
      z#C>$mM8ZcenlOE|XkrXe5>jRHk?Ns*vQWbG6g9WAwJe2}{I~68Kb9$;&gO<{FE{I6
      zCtq4IK;*P?E|3(b(=4!GuTZ`$tI`moyhU=GcRa@11GqeZxAFsP25|Yf>L6|hk;g~d
      zw1$l(J89@@v+M1&`7)e&O2{3z+Ht&EgU(<jjw0SMK<mckq6SUax17$diEDV5%-OGd
      zfrt{Xy>8-$KkghDSl5s_F?VRjP26TPHZ&Mn|B#9A$wTqvp?LC8JU*28-DbB{b+6U=
      z5={+WmnGgvgL&Qa+*YySwA(ISu&BQYX6e8q)JCHe>FyBH_~yts8pK!-<3UUW(G234
      zjFW`urqgqh-Y!zqC<^NcQ(qDo!87!XQ-uC0bp11&qIc6@gl91$Q;p-fAi)zVYl;(b
      z0&B5{q?PL-WhF%qX)9^;aMnu3ddOJGL=SUTa;%4WD>>1_LVr7pHiZ6|w)-A2{RfQe
      zKjM`B6H@vUWb~i0p#Opk`mf0AzsYhwB&}S#Uk)SoM3abJiAa<sBqYiaG9<DH`P}n_
      z5)!dLV-m4L?92tc6v(rwLf@aSko-I>SZ=2OuJmR}Nlp!u|5TD~yd01(2Z|;iVR@T(
      z=OjnC_{C73zXtM5hIw997Lgt<;%{XUuPMoAhsb2Div0SC3eue9X$4|bso;{bh|F*i
      zQ_3PPE6H=i<dl-Ua-xC^Cs8PvQz}?h7BN3u#Cc^AZz#zN!{maJeC0$1^PEJXU{$H$
      z&9KeC3)<ZNzb(GNZ6_QEQ9)c(F)4O1BV44#N0<{eWW_F)M17#W?XbP=u)XcDz3s5Q
      z?XbP=u)XcDz3s5Q?XbPy!rOtYKVZuB4}%6ve~qibInNWM{~EU)UtE7?j{WmzZuB{8
      zea;&FFNr>Btxu9u#v|O^Ud$!MVl8RpYDc)$KZ+UFBOV|n4p0z>*bpCMPkbUhDM+mk
      t15Z+@pe#KpU=8m{Pd4br+>xH_VH$U(CnLBgv%il`@K>Eb_7Qx5*uP=ESO@?B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/CubicCurve2D$Float.class b/libjava/classpath/lib/java/awt/geom/CubicCurve2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b185581c60400850a867e66e5c6a883e52343440
      GIT binary patch
      literal 2694
      zcwU`VTW=dx5dJpy9>@0PPHV?a+gzN)*|clyhPpIuA$4kKNJ3~!h!GDsuA3S;YbmzV
      zr2GaX{{!yu2uPTOR^l1)1n-r&!y~UeA!g35*KWNL5>d4C?VdAp=9@F$_`81|d;=hX
      z*L~<xF#1+*Hy6*{tH!qq<?VR7wpq-lYdgDz<YF{aD(9*`cojsB-ld>xFQGum5ZEUm
      z^3|QvUK6ywB%5E7?7<I4;!@EpR<9`V#AenNc+=(Eg#bJl)X<AQ1%1m!v#?s*-Yo3g
      z%59bk3I><U`CMr|w^QVI`=hsdw^&gyzWiTo<`o2E8T)T$-46xB8dL~ICp7phbW%gN
      zg-&bmTWCx}z(Nxmf)<+8pjl{ILk|S;$TN3OeqTPBCt-T3TZQUILh@X+-m(eHu8|#%
      z%{-C%TDfRelZ*2{kn;)GHH%Szu5ym6^$dlJF)0Op3Y(@{^MOsAZNqDAcq7@irwy+)
      zleTTvw*0-jLVLKZT+K!Mj}KOeTaY$gE!WK36>g4`9n5YN^3|NVRiZnY58xVJ@PT@#
      zS8giNLVP7xy{q9xT&HSn7fqX1hWEatVcGhg+w)<SuII?u&FZXRjjQvD0$<F!baFT4
      zC7JS)OnFHrUsB*^xwexpWQyEV1MS^o@Hq;!>!w-QNtbe!N`d-Km1kg#?%zY2>LyFA
      zL`dOAlD6Bne%l6Y8?>!v+a75L2vOhDv!CA1kyXg5`T+*MAkc*&dIrcsJ%m?%fT!qP
      zvo_%vj>}NJ2-yL?r=5PXNe-Y-G!WLK4Mg<G21fLdw}Df7NNr$L4~YiG^^mWDs2=KW
      zV5)VRPUk^=M5p}-zxoq;)t@n>{(@okSDaRV!=(B<X4OBCQ2&(KykVVaXTyj~qDaI=
      z>5?c$$Rp7VA+JO_AyuMTLP8=gk53{l5Eu9i&f4srrdS+T=wBlI&Sy@>@-+3Yw%Q1%
      zHioNrq{I7fSMNA^S>6{ZXI|@nh(wmp=O_m__xa;-h(s$+zZ2)YYZfC<W<i6+EsK<^
      z_o)u=L09h!M{*e9C@vf#t{k3q&0@48iwV~(F1mV;cX*$1^`1YH!zf2_;V|dQ;gV|>
      z(T*%GyJm6O)qASLJLBqo<wy=uj^e^$)s@3@c;1fl11V~NY)YT5v(#tmto5*3XSIiY
      zb(VYBUuV6CgLM{sxTnsF5BJp{ll&A*SX3ZH6`H7FNbDja?qN*qAtv?_7x!^qyxk`E
      zlq2^PNq9k~m?GgWNRg*V?h8`dDU$nw6m*K@zF_;#5(-MB5$chshftrS*BoZw+QZEF
      zpM%U|^)6KL9s=Th^ob8}OnitF;v-`AF{Z^QI4eGFV`Vt33}=WL&JZ)4A!ay3%y5R7
      z;S4du8DfSr#I7Q3vwB1;y#KyEL`Dv=X!miHApP@egr#Y%jB|HbE7w{+OD&%z`p>j{
      zmRdf%a>4r$E7^(Y<iwqjH+ts)FSpw4IA=lyjEJu=Cl0VG4p9_e%ZkidS=tqe;7#0+
      o6`4Z@H)TauX*A!G6)931zA7uyg>@PIHEe)?xcK+XgDm|20v(ZikN^Mx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/CubicCurve2D.class b/libjava/classpath/lib/java/awt/geom/CubicCurve2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1557091b997a999456ae04f8fcb79a1727cc608d
      GIT binary patch
      literal 9086
      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
      A)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Dimension2D.class b/libjava/classpath/lib/java/awt/geom/Dimension2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35af578c46b4e8e3c0a17e332721f2f251bd000d
      GIT binary patch
      literal 893
      zcwUWCT~8B16g@+?U04<<g`$XpRm5#U){h5cYJ6#HG}+)oNewTMZ98d)v^#ZoD#l->
      zFOX=WKKrALcXl^v)2Q)b=H9t;=A8R6KYxAs2H+7MnwVqQJon%Gu79E29+yM6E`~ga
      zgbW_nO&ARM_<G<6J@-xfoOhIo9K+fqS{ulK`|SZ|$UPT<P%juVPPxTk)MS@i$Y9Zi
      ziFt+<PXzpEJZ$suIC)X<WXB)0{7~p~8Z=a2L=0QrUo)#R%=fr@E4r#5tJN76DDaAl
      zUSBbo5m!y|k+`x>y{>cFcK*RuZdqWsW+RVP?QPm9B;J;dHLNqRE>U%Kr3~v%*_&-j
      zRhN0&#w~1{xI<hM!0SNqFz^SBFqEN%5*GD#&&D3^Q`Wj;HGdot@qshNd)yD@h3-eS
      z{Ku$?GBtE^6Vsd6XV{&Y&5=~i@n|GN#k-9U9X?W2HI+n)d*1(GsoPdlj>8UrDfE2u
      zQ@uOX1V)Kkm7$fTf0cuwr%k5?Iz1uF$Yv{7us)MB2b*?_Ebx?|&#*+Eoq({66~w;|
      ztFbMlmWDw0+7?sd2B9^_Qf2=V8?>%p;>N7NDfwryz(xX21Y++dc{(>5SxR|A7>z1Y
      zt~;N+uPB{d;Vx0{{($p6&d?y$N-D8TB?FQo@2Kc#N~V~~<Y+&@gIMM;PR;!d*Q2*?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Ellipse2D$Double.class b/libjava/classpath/lib/java/awt/geom/Ellipse2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b2e12a5700e1de5626911b18cae2c220ba2c1b18
      GIT binary patch
      literal 1308
      zcwU85OHb5b6g?mF=(N-U5vO$!1Vx#t%J|x0jNuhYhzm6+?g}(BHS-|Tj>yt~;mTh?
      zf+S2xB%&^L>DIMt_b!a*Ynw_YMJH+RX?xGP=icwm*Wd4t0Nlh41$_czFYK3g#oqEO
      zRj1XcEY$1nrsv$6pPX-X*6NOew19C!jzG5NxYe33Ao!5kayR@M@he{2{CL-Gy8b<Z
      zRH?ioke+L8I2uyO>(J0IFtF@4orj&qn$vz_vzEZna%<hLuh?x@K1VOpe$Dj+#+U!?
      zbVfia>1YQ6X?vM-Ewu3>|8S&gsa6XhesCENyP_qUHXo<IlD_%?(d>HCih76no^X
      z`*yQhXSo>#6LfRp_sEWhaa@v(o)J)~{va9@XTb_NzIhr>D^2(;46AIx^%feN{&tY~
      zoQa;}FShLl=b$}qb=vFBqAQ1zkK3P?P6YI&X47fU)ossnIIV2x0uyXD#p6yhvUegO
      zI}c(mifRz$Sa>YF>wLP+C>S%=0Z#1^^kIN^jS<+T+#Uvr^e_phF%(F#-ALdy%c_hc
      zQox$(V%REoQLs#<3)3<)T@?Sy76S)|l>I=`5%TzmVSM8I&q0|xEJ3NLj6~AA2#|E2
      z3eb6?FmIGd;rB6Ii0sVLn#?y3F}`Z;)6G83?4!ubJix_wv6oQy%dz&%xV=eSj`S+b
      z4(CJuZV≤%u%Yl8e3M?}_B8MDlPi`9~tTlt?c0l7A+W%djHy{a}j_%+1Wdd5gUC
      zFF_`?liul3`*lpM5UX8{7i2qH5aWN#QILl!6l6pWnouz)G!#VtvBfar#W3Q<Fyh59
      Y;>9qc#puJeK>a$VfnYJ@pQHly4@q{klmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Ellipse2D$Float.class b/libjava/classpath/lib/java/awt/geom/Ellipse2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6ce49b473053f450d8032ddd697fd3711033e22
      GIT binary patch
      literal 1459
      zcwU86T~E_s6n@UOZfw+n2xV+eKtQ(gF+pz(h=z};$zqHe6z|Gtwwi7uTM@W0@y4$U
      zlU@0l_zOtXWDAKV{s4cJ@w{zQ7bx1KJx}|d=XsxVdfH#VzyAa<hxrHsg!E(WiI&rL
      ztz1d3RdQ>lX>2$2`PK2fS<|ctLWIE+QV8L)Zj{Ovf${`t*VwYkjQ9B5=fy>%YFJBz
      zU?#gx2(8q%^caGO%ZQ<y&{Hs~`t6;{re43VZJIivuTU#$=DJol#J&44WR;BuVYu*5
      zqYH#cCeKH9Jqp5rj4p%)8k7-r(2xwtK`9v#gxTdTpX|81q+83io$6LY6qU|okL-0<
      zFIrl)Wb$qc5sb2#6W1L#F^phLlzD~_W$~MCo46CaK^H%H;PfiQ@SzhnxB{cGR@t`p
      z?Zii%*wC$fU90G#xK%zxABh!W_i8)!qMkQIgW_H*W`!++e5+d3>no<#Xz1KI$+m=1
      zE<DIDKE#pxz=%W_?AYbTs2yXB_zm$@=DSNAiKC<*;?y?=0rc2O0cK3|e9WSk?`0<m
      zr_pCiaqX_aGtQJaCWU}H)<(ZN-iD$MhT2G|6Ky2_swRa2y27dph|(hBbQS%ygdw_S
      z?{e8ua(59(SSK3^^8p*3WfZhgnvp2@9EM#t%Wi(+2Szs37Mp3YmlnHgA#sTFUp+5&
      z9^L4uF5y)-jtN)qB4>-Wu;9P>a)f=SgB|wR7kt^tW9$uI_M|Vn{}{XI%g*?+m1FFR
      zFFOm>WnXvMqIZezx1SLgB?uq|4?+h=)b={m6i;o+n~^<tMwI`|ha$4*IV5_47`;R<
      zy}|&!?wAe5n+?UA4aJ)c#hVSqn~f<<yDpycN|a+tooosl*{1N3h%|+fgw*u0@{a!_
      z?;+C%{?tDrNuN5bq&zDrwlZT|N%00Vwt*B|nQ`;djQDSiSzA5Fug3Wb#TPq==pVQp
      Bz(@c9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Ellipse2D.class b/libjava/classpath/lib/java/awt/geom/Ellipse2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a782332a321a58b6c96a32888267090e5573898
      GIT binary patch
      literal 1989
      zcwU85T~i!I6g|Bk3^O|k1h>d+h=fGUvKtM7XaZ~!iA*pgh!GGaYOKj-fHBJsH9Hun
      zQp=CTkBXJ&NcrFoKucesDpdL8lP{LV|FJyXyNt^UX1AvM^zGC4p1$|?AAdjj4L~1e
      zG{giBf9QPV^g8##-g(zw?7dPdc}o?y-`0>2=-j<I=@vt$JilCWf~f^($rWh2;FZ1b
      zl0dvCHzSZ3@$a|>;?PYb(In6^?v>q%<;B}>Fzwtf@kHCWUvx?{PT<LP&6o%myox|(
      zd>=6df##xL4jr#dTC&Hsb2kkL95T^{XSg}<hHra!!UZM7ZW>1QCpm{rSdycYbJg|c
      z7eZ-0VxmJ@6STe~4bPhB+%e1wh!uV|zg2-)up$SELWx2mjT&}T^q4q^7IN?LqlDN>
      zKZjKgEp&Fn2^YpfH*i8f5V+XWaL3DYb4<~6;FK$Key~``HSE_PFK9R;aIC>WQ0%w6
      zIqt9w^rBzp|ExfvG2Fi?eVPuIGv<U0_Y|Ul;guP>!se)G7!c^%vujEW+HL#GEVzO5
      z7?KJLQ6gsyT*NCH*h-mwkDEA$lNv4ybnNEHF01oCj3EOyMm1a!Nbg0Jo?c^rH>Rg9
      zSRr?l<z&e^{)fXHmHGtQ$M*`NcG(5Sl)oGl-BC}r`oX9Ir{x&|bF5r;gOQR`skqGF
      zoBw%r(Sh3i`0A=a!!-MLKk{hFm*q>UIdPnQ8dq;3iG+NcTx(pN<t(H%zlr8w31WOS
      z^5MidULtiEDI&8<;(UO!ko{hB@Pw|U&CYM2HI1}Cm?UafNXrsttYmTCO8SF(j;o`V
      z#+Bv|rYzmk?^-D<b+_2^_y;5t>+$s{emi3U*NCqpjd7g7>o|i6rRA!MYuB_$bPQce
      zpN->0ah@9Di7xs`^VD-h8rLV#O{CM3#`8oeb&r#^d;Cnc^f!>DUTUSz!Bjq*+d%ev
      zbmy~HN}(fpORw5miE75Zw7<u^yibj{ki!S;_gi(^2O{kQk@kU_c8PLIyF_`Vy$Ss|
      zrL>!Pf&Z%Z7je3#UDip~%h*EiZ2r_H`hJPjG%4@Cir!vjMbQnsgqKwVoZHER_>ws>
      zxwpNA^RwBUm9(@?3=ZiTUDi@oP!?L2cmo&Kkc_WaleC6B0kfuXXI`eUYHzFJ>Xu5@
      z7KUf*ys2g>)(ox1UDi#!I%L%GTX(oe_cF9Aekx;R^bL%x;Xo#(P-BTkafsu`Y~oLl
      z#iva8XKc35F^ezoF79Iq53q`__`i>b_!>Xr8~lWCu|d2=%b)lTf8miz>Li+Fx}v0R
      zM<v~kO1d4Dbh}p47W~d;7-LBva=ykkH|W`7t6!(r7~5THoxmHM+lX$^<0RQroZo`}
      E4|v6pUH||9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/FlatteningPathIterator.class b/libjava/classpath/lib/java/awt/geom/FlatteningPathIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41ea2bcf9723811abaea888c91b6431315b97daf
      GIT binary patch
      literal 4030
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/GeneralPath$GeneralPathIterator.class b/libjava/classpath/lib/java/awt/geom/GeneralPath$GeneralPathIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f71ffe500c4d1abb01d71717ddd9ed52cb2a825d
      GIT binary patch
      literal 1905
      zcwU85?@wD*7=F&_ZA<F~N|ECDA?T*kcC-@^Hz>@F%B*A56~uIPgG;$|cPaOh+l#V9
      zjV69mvS{L_F){9o7=zLMKoev9=m%r`PmKS8`kr&|O5I@I+}rb>_q@;ZzR&xf{`U7z
      zzW{g^vq5l%!7JJuT3UP4Nmq1hEqz8ebz7^xqB)n3G}t+ZEXT5gP#7W-Qq{~#I=_5H
      zFFQd57`pyT)QDmT&%SzYaVnoLWak)oDaW9!QvgHv%z^pG8A6V&nYC5RUSsIHFY?st
      zs$uH$_W~%|w{F!K7?C$+%2mTOoJn#H#1|;rl(nLVz|gKDh$e>C83NC4tS#&IytZ7`
      z8KN^*S*tE+wjuVOGm!CUCI%i-=>Jp}UkJm8Ln>m3h#I<8gb)^1uZl;YQhCm0gGx^y
      zoMXRXkmQz%?!0E0D~4GqY>0wMZZ3qwcq)h^42KTnQ}HxfD6uV30i%|+Oc#DZ6qZoY
      zj21z3RK=i(^ivjnlMtr9>4<}4D&3(WI&iM8>oqae(}b_-6{@PdVcWXt%;}XiS}10q
      zH0{>)yo%#E!4TYBw+z#fxM^`Pt|B83uDS<dOyY$gPEwN|+FjAXQ*^;7Lyq2@n0BCS
      zS@sHXhs=$&DbHqxtRoxG3F<Qf_maeAbM#6aFJ;LyXKmPJecBL>i8Qn<CF)>Mb0)c_
      zs#>ikWVi1#81z#Mef0UEpi5jh`ol%U&}of|k<-dWhiMh3t#r!JM!P&A#M9aIbGYbJ
      z@<oL{zdv6L1oC$fy(NK<((mI01RsZ=XAt5OXy%h><0sKhz8D`xhl~_Y44oc%kvu+H
      zTN6Lxu|#qgU5TT+=-DHUitM}ug<mAnOK9PXlBnN>QPMt1*($X#X$du)?0!7qr5U1C
      zoHZrxqU$c6+^O>igrBcUPSuU^I2oS7fQQdWKB|WBahD@`6MkjKcR!QWz!a@BrRv?Z
      zNsnkk%4JCl!r@GJ@JmDzMY5HpUBtK1CO5Yc?M?~DUO!?qLGZVzxo;!N-$5UL7lZsg
      znKkAzds&-F{V>f_C?COdUj9F+PGUf%G5-W5>Pb!Zeu4A8QDqxL$qq%?bR$MZM2E6;
      z?7Va;ORjsY?tWik9ZK)bfBqm(&#yE|T9Uq`ulEN`^z5}~Ok6Gg0Tuos-H0u8@@wej
      zA7O}pj2zho{t1fwIxg}XxWqrj68{X#wAcCPQrw7Jc75O#oW=<f)r<>LCPzEwF-4Y-
      zF8Fa|$x@{B7d`2JdD4yjrO!#}Bl}6;D(tU)t8h>J?+=Qfen9+JBz~L3e@)`QA@MsH
      z=HKEh+4KB6l=$~p<hMxpZ4!P5E3~ih-3IYSUA#f!b5i{4b@2;z@nfENj+bQxXE8%-
      LSl)!gIEV1R0^Ms(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/GeneralPath.class b/libjava/classpath/lib/java/awt/geom/GeneralPath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..995e5535784e594410aac04dee98e6952fdac57b
      GIT binary patch
      literal 10364
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/IllegalPathStateException.class b/libjava/classpath/lib/java/awt/geom/IllegalPathStateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffac54a35da197a97be8ff431fd01acd334aa564
      GIT binary patch
      literal 543
      zcwUWAO-lk%6g^KzjY-oity~1HQiFzQm*U1Wj3FXx_D_3EPv#?L-c<CjS{W|<0YQH$
      zx-$ww5wv*s>z#Yfz4zm5HV1HmS`I0O!wG-l27gwDEqvD)IF7KnbIsMmP;n)CFJtkj
      zr0?aRG1L;U!#&%$i999U)jvZi6oKT9C4!LhyTLgFyJRSIeJ@npQx<n3k$Ind&R;L4
      zGlpzidQx>5()EVLpmqIwp(BlrJanux6iw-gtH>RR;FgaZ!B95+F$r*zp?q1?)PoEe
      z8s<M2X)#pl=4z3l3Z!SZ8dj`biM6+ABsa8Uy<ac}edtHQSoCEqzW=Apaoman5EosW
      zPKOM#<a3mzuttx?Ym&`V<&-=lpJ`4}cuOEfvO0O-3>w-fQIubRu!(X)O0zBrI)sd|
      e+2+v{+dmn4)YDHGsteSTA&#opNyK-Pp1p6m-*=J#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Line2D$1.class b/libjava/classpath/lib/java/awt/geom/Line2D$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..876a78dc9f0f2b95fd8781bf0a66a78a5b514021
      GIT binary patch
      literal 1797
      zcwU86+fEx-6kTV|U<Wf8#|@WqDNf=NUkJY75C|b@f^q8xOfeCK5~&^R!Av@yX~*L<
      zpTRHmsZy1fN+pq6seS81ekKojj1+aB@h~wCN-U4hIs3BqUhC}f%eR0110aXZAS8y7
      z$LbR`qyFM#8k*J2tm~$hFUE60$P5wJXQ*Z)vw84Xt2sdg7{<?Le4{!?Wk<7B$FdoM
      zwYF_*ro+I>3<2jzZ^g4zW&OM|%M|fMHR39TPxnOJJ3OSAhqh|A4lTPWLT~G)?%ZKm
      zOq`GQ5rpIpgS=|hwSF*MRM3x**nOg407?iP!wLp5!oU;B9pM>M5X1$BA%S0MHxD%X
      zp?Y9w4AFI~rW!k{t&6i~lm%JJI=8uaju?a+n)9u0)^)Q{ZHpADBvjH{Ma%3Qzatz|
      zdrE?YJteobM$;9vFR@=rmP7a)*MgW~xO83}1qmc6mMZP$T*RWtNGq5<weRJGWlllH
      zkIV~8PC?#}$p=wjh`A-&j&5Ws)^@vgv}S0cnYE`i?I%aK%nMjxm@uexO!sCWX0@G|
      zbr?Ia+Gf2K!aNp*u1gHV-o3d4we8p>16@i8%UB8GHpA2h?@z%U+-2x@P7MqpQlw1Z
      zvbfqn&9dw|U4XP-qLZz)+D1pUqEKxaYXYI<W);iyb+e@XB3ZVrwq4Uoy10{pj*xSr
      z83v_nnwq_8sI8Vp*h6b(&9GY3`G)2kS#<>)sF0Z?JNq82^v>ve)7azhPG3fr#*fp}
      zN57JoLLd?m6H9AU%qzXY0eS`zrl=v>l_-wWdMTAYK_oSMf@tamo%jhx{~)`BPw6-8
      z#t>ua4Z_k}jMGV>Gv#3dldf+HpLv+Gv<jajKl2d+!osDlOv%rjM$F4xAgk~xsXsB=
      z_bdA3XS^39*oC3^7?&~PVJx`{00XH#0+D|>LnK5ixPlNL?1CBaVXok+2lJZB3DQ4{
      zR(^;3sdN@MXN;ctG$(K5IpW7#X}Pma9dGfK-;g+UU4Q4w9&gFy8vGmcd(j&&aPwcX
      zNB_f+SkgSr<>$CH`Ht@b-4l2elYAK0_z3cR6a_wpn|vJi`2;rjBsTdJs(c!c_+`}i
      z6<GYLORPXMK+Su^#O@2+qs9wF>ORedgiU|<2*ch^2(ao2@X8aQ*(Jc&Jp$x>0jfU#
      zs-QpP)At?O>PN{J-y@$S^0S!X*OBFOBtQl?cn)`Y9%Vj{2fTm^U%)P3#P@s&Kk{2$
      p<eNVECXxS=n$G)_ANadnpFGD`ZuPQDGvp015T$59roX!N{{fxLQ%L{-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Line2D$Double.class b/libjava/classpath/lib/java/awt/geom/Line2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1fdb8f2e3cb82202e2c31830e855c8a24391d9f
      GIT binary patch
      literal 1886
      zcwU86OK%fN5dPY2XYgbQ0YW@^K_D;NK#Y^{43EVzSsnpJfFgXHgi&JT*eG^LBE*3c
      zVi&H61&(kAB(h-_X)k+2+VlPac9$!!E265WGeq7oSemKo?y9f8s{Y2WKmYy*fHck-
      z2nn=ZajrQjXQ7gsc1yFVv3$`T$aZH-^OFVFKv<wDC_o^zm=+N1ETwrhz#hHo4(E&c
      z%25FsPfQ4eM@pAn6A}#;Ow<c(V1RS;vy<-JMTcq#Y#J*~IfV&lF3)Sd8LrIa%K{x^
      z-=H@vV8pZZOH4!|u*E_Ib?n6~7@pT+VV&o-S%{)eARVuQ953aIm4WPVjqSvQiLK}~
      zu#GANhFI8+9mIIrtz1%VXE~$WLeJ`Uj%IU}rWC7DgO6!+5k^RRHmB`4*_L>sMxud!
      zf%d>NJtGslv4=;`cyS(;uA}Sav>hjFl-&vsSfHMEGNt+A<uYG&$N%b|cc&^&ak@Zv
      zF>K->h{z#<1{GAGgVb54GGpN|j?h46^F>`d%dy8S{D9-M?@ZDKhvT$uU__v^W(mKQ
      z3{G$>n@M<!^eoY{K+lYTd7(5vH|37zSv&QfO8Oa4z&cedx^p81r(AZaV4Vj>cSaQG
      zI|!2{*^nn#G|H~iHmYnrd8T?>v>GHU$VQSYSpS@y5H`@;Bnx>RVR-|Mw6?q;Y{Vu7
      zMXWWzO)48D+r|LNzGXBe6U%5$+L2}0N!wUP>sQ!TW*~17>}^ElPiT-oqe<RDtGuhq
      z3{eS!(q-7=UWD?v8>u|*$BW~R3`M71(^;Sxj_Of#cK(VEW<<7&N$pZ=n{8JBv3o@9
      zJ}mhQk$Ql3`4HXmks{XVf%?RH(2G7rtOs%OLgXi~Lz76UH4pU#nx6VaR44LD;6Rgs
      z$<5WtPXm*8VwX-nq{r3x3cGV$ok3QRdRB$=+ZvokA7>ztgk4SI&p;A`fyu4a$$teV
      z57q3zW{`jm{toP5udmA`t;^W=G}+8rl5Y@^|G<?0qEY^bX8CrF9%KHs$9z4;d_Bf|
      zJ;r=J?!$gf<1uNIX=L<e*e`M5Bwq@*MgHm4{ppuDdN8tjqE^N$WO988J7OCv$bKDw
      z$M_uy^*wC)0lo4ghUBL;j5C_CMNCE&W1AHAqhj1k-^xkFcnA$Rr5J~BTA`o882IDo
      K{{)G%h<*XvQyj|x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Line2D$Float.class b/libjava/classpath/lib/java/awt/geom/Line2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a022ae480e4a60153c4a95bb48e5bf85f4409b64
      GIT binary patch
      literal 2038
      zcwU86ZEqVz5PsHK`)cR%(k8uJ?1rRCOnq(|$4()oE+sUMp^&x_pa_4wq(@@p*eJfx
      zlv2cJps3$?`^FytBtoiI>JQ*YA!hd0S5u$GNp~|lyYtL5vorViKTn?nC}Pt<Od$QK
      z`?*_i@A-vYueD#;s5iY*Wxm>IxxN7@Fdnrp5IZUgh$<=fi@YkaMxVsBdb93d7Z}Jn
      zTLN;eb=ON_0K+Cy7!(*`fZK=r+up%P?smfyIJ42(aT{CiL7msyDE+;9Tj1PAe|BX7
      zBUh!z*-Ap-tcf@htWB6O0&UX7sX)t^NFpIn%)NxT*{V1FQl;F->};j*3T6yUQ-sJP
      zCeCA)2=99S$13Xzd(4~2cFZ*@&1Y1ki9RuSn<^J)gkm6TT5gh@%sG7=4J=Y-k$XXj
      zQn-XAE<D5KxKcWd4p-B1lcdr1d@e6nwL%Y{6?D;qw11;@*u2~3YoF>N^MSYHyUpDO
      z-Ag%zGTt<BO<-6ZYS2dEmh11CxQ@4|I{WpeW>V#|Z=1M*HL|<gblEaTW&`U2(|tp9
      z@~Yq+&TEV~9?^TB-h1@!38X%39Ukm>)jGG)V9+p&j3;2;Y&N}vwT9bndlWCOu;}`T
      z01bpBNgYI*;Qmqal$J>)P12}|>1)zznWP{Y&!1rE4^m<np>K*L<Y`DbhEeTAhj1Ea
      z6cmxx0AJI|ILR~v<mZkto}WL4mCqi-&QHi=q+g(>nSh)k)M+H;42I=-jLBI{$~hI~
      za)6|xu*RtfrExMbrExj~O5=p2VslQjc|be7=O{K8|H9N`W<<)|V`jAwSZr3<(nD^6
      z$Sq<>7GTLGOv@s2vZTn(1i&FV2e0CSBIh7ST8wlDvzo|~S_6svpBR7iTNp*9Bg<Vy
      zO@u|wM|xX5-s_Rx7qOtdud1Q|qt9@u#_<{D1cl#U!nxChGaBNQB3alyENYP~mLt8>
      zJ>EN!-k1C4U^7ZY4*QWgyoT2`&O^GjB*{$vg6afEwSgU1O<)`UZ2^n>Pkw=fd;n8^
      zNxk_HY57%GZ)U>l&(L~Bh0RcJuBhh7P;aj2b4k(+MWr(-M|x7M|Cy42#W#q{Z;_JU
      zVMIQ{S^0ez3oB${g%e_h6JmuEVucfO1#f5;zmkP9R&`_8PjI!u4Z;N`eZ6D<<Ox=*
      zoef@Gk<U=6&CO>g<O!-TE+XLj16Axt*zzZ2<<D4_zjX0k)qG7_zpMD#G%`08-z?SY
      cJ;iq!LwH~DjbTHf-@<M1zleWP1Gt0azYjYj4gdfE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Line2D.class b/libjava/classpath/lib/java/awt/geom/Line2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5845bb5123b78e9b78f9eff6b75f607a84ccb81f
      GIT binary patch
      literal 7219
      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
      R&v47nay-ZJMeShCe*xm?vxxuz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/NoninvertibleTransformException.class b/libjava/classpath/lib/java/awt/geom/NoninvertibleTransformException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4a8580c38b3d60a1163835242c46915c030e04c
      GIT binary patch
      literal 471
      zcwUuHJxc>Y5PcK#A!lM@Vj|cH7HTkuoe+saR8WpI`RF%sjVqU3+1o__mX%;(VJW2b
      z=LF|2poN9l%*UH~Z{B<?Uf%#5VJn9e;qYF}gfAYQKbB_VcZ^ngCaqJ$Q1-0Q(XFwQ
      zi>Hx%aLVW$(u7Jv356c}-vdG^l2(auAZ^5b|LUAT*Mvgb=*S7}1|powOus(=T+EN(
      z3E2~+m1_~Id%=%j*IA{<&HVu(-8MJU!wS~(@UTWG21?7$bTX8-C)ggL9GDTG6nr?g
      zy9CqjPDKPi_}6Dmwj0HYzq}B<u9@1Ayi~FL?jJ&pSO7a9b`Fl)$RNu($6X4mTv7ZE
      s$2=n~#!{TK2lW>eo|By-M=wE7nR|v3SGDC9Hc$qVs)Ef#tD10XU+4UIYybcN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/PathIterator.class b/libjava/classpath/lib/java/awt/geom/PathIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1abdb31e697322109c7c2c9c4d1d1b19a8ee725e
      GIT binary patch
      literal 497
      zcwSwQ+fKqj5Qb;vPys>k3?8oW#>Pj`wwNZ^RSG4+i)O`5ErD%Pw(7Ha;RE<k#@Pj9
      z!_}YfpPik5=KJUK3jnU+!hkITof&&$CVQ7=#FK^jz~rkddCFvx8c-zA)b%+Nkx8Ft
      zd@2dl$F66GPT+VUwQT~#MbApaQZgX}HqUqg2f*J$k9y(68Bk>s0#)C+3-4**4CxyB
      zuJ;d*qZ@mu-(t9$a;(v<YptvTfr_^J)OVDD0UHsQ<5;}JA{u0KPN2}e#6abEX(wWZ
      z69PrSKct2LTc%l>av^;lEl>!Qx=%gTgla3T`bm~fc`sJ~wemN)Qs*e+&Y;E{(1sF}
      zkqi|Wwvj72t|Heq>N^|tdX5{&yE$$mw{pA(CER!)4)o@SaHRDZPPDe6v({66{xjWk
      F{tJ=$Qx*UK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Point2D$Double.class b/libjava/classpath/lib/java/awt/geom/Point2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e6019cdef9fe66710077ee2ef56964bddd0691d
      GIT binary patch
      literal 1125
      zcwT)}+iuf95IvK`xi}^%CZz>JNohjk(AH4kDToJRAt6NtR1^^*9^7UXj8eOD94=o4
      zNHmo|;sf|0#0z59Hla#QAG|ZO+H>Zdot1z5{`wujZQRQtMX0{9-`b}AE-;6}J20Pm
      zjvH)Sb<3OVjYJL^!eZhH0=?%?#t($-eaCfz2ZVIf=n*m<Zy;2pp=rpYKqz+|SL{p<
      z_Jsf3W@3Wg_4e&i&-NWz$D5hpwKFEHbk7piCMZqIGI|9NE@)7YmD!?(9J0(Y6v2y7
      zh!qumLUAkt*)MQBmyi#<-N1L;A)(SVqFy809h%W@JBO=;rTOiL6K6CKejeA@PONAv
      zQuI<q6|2(fb=J{5&1m%GiMoacZt!K<hlj!)@ZC49)9vFv?L3-<)J9DrTM~Jbu$jdD
      zUj~WXl*ldFs&n?iTN*Co3PIiVCjP#7<j8qwe|<_Mmycan_??kG9t$2*Hgb<uzWp>m
      zsT4;Z24^Hk!7<Aj&!1P7t2-QtqtZG?@pA|`$E(T__=yaDp~RUM9YPrkAyppdV}d@n
      zQ8<<*L2La8ddoOM<sX&KBp@C;rTNumP$DIytcCi@F{R9uP@Bx8(lqB6u@tv4Lnl(_
      z7w8{n<RO4ci5iy^!IgRNaw7QB%;2-wV4}H_G(l@ns1B7HCyW(m#)>mz#hEc4YfS$n
      ztbxWiRQvkMF>2D`6l?nW6owSc`NFFyHl{E?&1pAJXm7*~Q~Vo|>o(6;4wAx`a2JI?
      DY(TkP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Point2D$Float.class b/libjava/classpath/lib/java/awt/geom/Point2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbf7abc206a04f189d79334904a5f89e0edaf7bf
      GIT binary patch
      literal 1232
      zcwT){TTc^V5Ixg7?Y7_wqH+<Wm2CwIczeM3AhpD#5wWJRQ6Cmq>zcBQ+pU)e_1Om#
      z{)w7MNi^{X_@j(7yGyN5dDw4ezMXUC%zX3f_xGOwmT)7E5Mk_v{z@<Euiaw9uy>00
      zZPRj>OWAVM*4;QFgps}p1bV|?nZLJ$*iF+i-CKmPmah>atM;~$L>P*K1O^C$71J{A
      zwRbiR=b^sYGze<N-qM>j-7zH&E+g)9vqhMwoS<oi5Y@`%d~E=P(+Z-9i8rDkju=xk
      z4EK?zqvQv5LaJrBQqDDPOVFi~h$K!(xOUZbOshc{*7APYrfxNg{_RQ}7YL(AuWz@_
      z=C<J^Fipq=;ubt{kCT|hj5M8PN!oG3d`&VgDVT-EW7Btc4Qrb)u9c5h56Y}0P#}cn
      zrUW@B$a%tiKkolB2(l>1MJcs<a^kXraZC`BRlDtM8D&#mMmcO#kR0B%EW=rC>aCW+
      z4;J;B$27k~m{%*rmY;<^l1E`1XO9<w&m>1z*b>`l;Q*<x9w5zUk}c>C@7x+P94mej
      z1~KGOC2%SrsB@+i8We)U%s$jYb|1rksZ>N5vCdQ*ynYXmp{hqY<--C>@kA$io+uUN
      zXD}L+S@dEcR`>?>)8{U`hoC1tB4b^VXZxaukD;ISMW4g@09|FJQMT#A?4I<O-}|S*
      zj5I<odE*@@)aq$2-EA(-1Y=%-G&eWKf2F|T3^#%q_MM+k{|-@lk0gEQp-*+`Q{CC6
      zy0hcO3Fz0oazO3}ChO|d0WQiAJIJZ|4lc_`*dKb@!9oX1UycmtW6yAMLBSBOjht6;
      N4YDh;LSbCTz#q8}!)X8j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Point2D.class b/libjava/classpath/lib/java/awt/geom/Point2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7cc6b35b655f23a84ea4bca29d59cdceff2760f2
      GIT binary patch
      literal 2115
      zcwUW^UsD@Z7{;Fin_UQ-6lkbxt%NGlBw!J$R-_`9fCW=pg`%L&xP+Y~ZMqAajiuv^
      zH@$KE06NplUNio=X*+hb_0~J}1Ni5II6mj>lB9r@%$$ASbI!ZZ?>*;zH^2Pz!%qOl
      z@Uek5fxfHur}n6QBN#0?-u2PTUd0W@^9D45Znagl-O}i#^{Y-XFrW(@ZLZE#J=d|<
      ztB!zvuHsgLDS`G(c11v&@iv?|+R<ggK!?DQLdA6!>(|#Ee>r@kx8N1+>Wb}G<UCr`
      zf^wxM@KoWztR@*ya)J*OB_B>!1-fcZAjN`;=L*C!`MgZwc;-JuvMX^AVWJy7(tFxO
      zZ|FT^;wVxAVpAZ#QK<#CTXdGT1Pp3YmB_a3G44y}=9rv~OOKC^-EgThWa3%$$B{wK
      zKvp2xyt0dSP&P4)5oTZ8@&lTT5>{!`ifxXYPf9;85#uHX(a+b4vIYXFOt!GMT$8c@
      zubMc6mkqqeBR2!)-N5l(yE^Opo*&0qbjio0iF0^Epi|az#;(^WJd$bAT`v3H4Oywl
      z?18HW-ejqpJ4)WbTLOc7x@OS}mg<|Eo*y_Hv)e^yGc2AUaj0;ZSoT6k*{+pkqp5zF
      zkK=938@TXT<L13O6Em@ZceuWxX3Ji|b4%wdK`p%fg&4wLnh8`n7TC|uR^6^Lpf9uk
      zUbAZq@?;C|+hXG^d3C?&%vEGRn^DzH%Ro-&UDxqvs&=jB)C{nZPaIg}!7y#65jqAw
      zWOp7MI#=~<woy!3?Ie4nokJce2~B={oON<`hE~wVa`zDbo=zJ~KI61t*)>cdLC*|>
      z`0^2`KLPY8+Z$PaAl#R>FA|<*wA4uChVSAShjkan_X0klZ!5sDFgOG#?*u(5#cw8(
      zEJJ7BfMsbzr3uZ_Go=aL(k$(orCa*7;<pX;Bu@*tjQ2R-RD>K4!*`L!fFf8pNv}<L
      z&(RBapQopjHrSwEAyZNlLm9I4`*`6#PBl@wx|z>g5QzpN(Lf{`h(v@CJlKm7qCkKu
      zO^#Q^VV%knvzPIuVhpIGB^wu&#A&Vx<&COcsr*u;e1Xc6pW0R4Eye-*U$qn>)zD8x
      zh2Y2f<b22W>fJeXzJrI!cc1<@|C2BO;3Cyk#>l8XHu)>x6&~R1>OD+Q_Vq`YdZ@%S
      z9%%Zp?s>qKABlR{g6WGeI-ln;qcC~4dWc!0ihQ#_rxKo<PNz_)$dhn#YdYOM@LBrS
      z7dwq(gq&Y_<lm_Odkd#O;&gDnh)ard8Sh4%AmZePe}=e?So_ZKBZ!L<G{W)qZS=?t
      z=v(w-+D?0u*{hoH5B>xENv*%g`Mae|xyCi-@E(@POY%D9g~|(DRw`GpqIBBuKKECt
      KvPSz6I{yX2>tIg+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/QuadCurve2D$1.class b/libjava/classpath/lib/java/awt/geom/QuadCurve2D$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93ba86abba4783f1235e53ab3a8c8c47a7988e29
      GIT binary patch
      literal 1927
      zcwU8+-%}e^6vw}tlOGTkNTc*8wNbH!1RD}46(}GjpsD;!C<U?BCAlP9m)*MA#rov%
      z;P}eF&?je{zBnW8jGd`(KKMsDp1WDL0fsh{-Fxmi_k8a?pL>#j|NHATfE@0}5K?gE
      zv9_mWwI7{qO<23xRadLdy7r#P7y5EBgcT&b1%_tUvdi0#Ma79Bs^IeRv=z;%7ad`1
      zj%6!|Rb1N^rlUY9Du_CDz0o(sTP>Wq*90%y(~LfibFQ6OHnX#%n_|t@%*Kvo@5-fj
      zbW?Yx6ioKNMe-do1M3RHvsP8KL%}%}?TAb3Jrx~L;~?~?=)`#i)IYE;BNtV~(59e!
      zfpwPL-ECp7Y1@WSkX*1Tnz63gx}5vYuq<1_)w567m*ZNxYQlM-n^oPcm0X#}+ev78
      zqhOiM>DMe~il>aG%LiK)wOx;Iq<?FEpcuy|xDms31((j;OhrEiIDxm@$a%5_nU+y8
      zc;w&ANzY9cS?OtG&#Yq`8`7Cmk#BWwO6Q1*TY+X?dTy)uEKtkGFs>lwoyc``BfDgk
      z-AaAV5c2GEPb=byqg!Sh?r>}Tz$Z=Veg~y2*GXABscp+OtBp9uFeUF|T0xJ0;a)qI
      z9h<4~MaD6M*%<CJ?YG{!iUQ^ov^z%*1#t#g<Zn^7L$qR9c9kzJv^CE&TQppw3ArF4
      z&)_Smu;67Civ0DmLR$s)lr7h;h<ROJVWNfmO?e^(YSA=>J!@!<hTsjl=gf*>HTd|8
      z!l_$T6=kfko4FnTDV^%@Q*C@A-kLsvA?{n^C&KTLY+oRekgd*RQZ_pO6GZvxL>I5>
      zW^10;5s&YuGlxi|2M>`<zvLMm;=&*758)EOySz1AHVvbTMsb;ED$h9&SJ3OluHpk<
      zbC5?F3x%Ht3Q_5y@s`X`ka-O$KXa75GNz{g#D&N+M8ePMq{eiMh8k#mi1WV2m`4EU
      zNN=)8_`73;#CZf2xRALPnT|l_BYfPHQO@ypvglvsQGSQ_sWt~M=ORDD8RBT-1^NzF
      zGvTJ0K3Jv6-!OF)`t(g`h|NgT9A-1xG)E6sBb?Cr3S*neiI<rCoBhdu&@G1yWhn9j
      zpZC6@FeQ&i_s~m=xIs(E(=tYA1-Ge$yHv&^tzm=iqeANt^Z<3*giTxciN3)v^w2AN
      zggb;w^UIdjJig$vM!4iJxobiYfn}q|w<MmTkEg@Ov)_W}+Y@+l0iIGorzGKw2XKPG
      zP$@uD3doe+3Fh7@Fck)~gX>ho5Y-uuj$8CSrpZ8&c2Oo156QwKdV+1TVUU9cx%ip(
      rTEOfFVD=fzA{Ueoa6AeuBLG8K@=mdg704cIwm*=>D!;@0Pg(jO#;tpz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/QuadCurve2D$Double.class b/libjava/classpath/lib/java/awt/geom/QuadCurve2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0c92f7b436378acb5fbfa830fe0f45f91585e16
      GIT binary patch
      literal 2038
      zcwUuMU2hXd6g?BqdSiPNTtb868rNiL{6WFBfzsG<2-u~8CQ)cngx}aWD`V=cC3_8t
      z#A_e>Bl=eQU8z=3X`$+4e^k{wv!iunHmd4}xo3Coy>rgo<Nf=e-(CSIVN=HxL*}vd
      z#41`(-D2DB?HBJ2t-boN|HLjgE;M?>-L9>JGc25##V~bHVqgLs63|+1zk8tKq1Y{p
      z9a_RG9jD{2GK6yZ9R^<S?b%U;5I108hT+sk$FaAD`@44kzC{N!oZjfQtnQB0?}%sh
      zlDm&O1BS(o{~}&xh~ygbm*0ti;j94-VSyG5=pK5<z_f?X8Hjl3T?0`Moi`9enE1C2
      z#6ohkw(UMBNevC}saf*kHpPWpeuCC^uj9DoMpZ|FAr-i%=thyp`{F7tQNNtv%rH%T
      z>vWF~#;{4M6x?<dpR!`2;x@(U0p*D6V2IJHTfL#PHxSc0_Xfq!?3Qae?JnJ1HHwc=
      z(Xq@hE0emkQQWlLM+T}`A=&#KN6~AD+*JcNy!Y0Dj+<}T=~!=H<{IikCUMbo-f*bi
      z5he;bhjJB`AxvxZ^WL!EvTt|9<m1O?d|8~sVBB#WyI=2GgMm$^2zzJXJk2gdCJ$4j
      zkrQHK;4)6D7*R2*Vob&vLWW#t>FEkZMo}vq;nXh#rtlW6QHtOxaGu6#dN#Zy%;Ah|
      zW#Dbq;5pHlp_mm73fU3n3;7Weg@iUjvXIb6NEH&15z>W3Y=q4Ch(+QFew~h}Ai}Gd
      z<tsSDYe@1{WcUp%@ilq$I_aYJ>S%#9sahbRI3&>`Ax$EakXIpeM<f!;V^nhi?<v|v
      zV&Uoj74tv&q-0~h9;kUKusAVUd@ry#i<~O1DE9G}$T!95qRA01{yfpAd8|*|?{hhj
      zL~@eEZXk(bU~y`)_=~{e4^C8&6iosY3<4FD0!gGNNjwWAQ4TE5Ocs9`SbXI~1!>VF
      zK*3jm3a<L*|5};f{6EG|3w!c!pz-I3@^2C6-(jAAj}-p_i~Pr9rZ;`lo4)By-}I($
      zdeb+(>6_m4O@9p^D!PBckb4i6?UFBWU8tw9E?g+)=)KBNxI50Od0Dk(ZJbu~(rU~4
      zORP1s`Gl5jC-i*#2)D-9I4}6|-!aGkpg;60RQPLb@js=;tCIUerEw0M_*iOOqVe38
      g8Y_f9ks7zCVqI#S!X4TDE<T0$PKnP~2pfp}3+<~MmH+?%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/QuadCurve2D$Float.class b/libjava/classpath/lib/java/awt/geom/QuadCurve2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6b42b06da572021b5ed706be6d39c3c3f545578
      GIT binary patch
      literal 2232
      zcwUuMU2hvz5It+}wPSnhxJeT`ZtEl)C-EAnYqx}?DTKzZX&@<~pr{cN($?9gMvg7{
      zqa;s!KO*@jlyBakQr%QkLOk<#5U+@tyW6#?H$v>gowIvq=ALtBX8-v6*WUo-@pceC
      z1=Amz_syL7Q9HM9H4bv`bj-bCr+MEhl+xu|!)ynkDwsOaNrCS$uRtjiI3ge_?Pl%J
      zu}8dH;2l~5SF81E`!xmrjIpCYEjIS7F#L#V&~Qq@=w`KU-RvCPv6}ChcWRb`vCT%s
      ztnHZ1D!)4))%Lw=OTp~sfAC&a5XzM0W9)>WAg)0mz-UTC&_-u9jM(VBhLDY>HH2+6
      zt095_(XSlxLTbdm)xMpV5=!>lZr--rWT!I5bF8)-)q1;7S`8vghk5SVY{M|{B45Ny
      zlrF=R6^u~YBHiNcKHMcy4%}`#bP5g;$8M7yX^{_K2H!zRKAcb?&Jl81Z*=N=Ew0`9
      zA;!0?O53dO*XSNs!?=R0LC{S`rBjVIa$9Emo`zS!g*>R%9lB-qeO<#f`@4A<L~*FM
      z268`By^iawnz|>Lu}ekab?zvC{Yb9dKZI!wzuV|ED^|J6Z4etM_ys;jfwobvTg_t4
      zY_%-v5FwAiEEUpE{T?7o^(Ulo^`#wgY{;=;$3~=$5~9weHA-)n$SPz-_86lN3HWfD
      z)-YM9e?nFN!Wg}4wiCv2MyAp*;UxHpJcDExI6-!<hskWZheUS1hh#Rc_HZs67d@o1
      z@jwqV{S$Pe2@!=VVhD-Th>9_ci*ZbeGnf_=m=}}s<QsN&=VV4gie|)ueG=(}{1VL(
      zQYB*9LLwH<F=@;@tS?d==LlpUVe+e=T~;!)NDXKXxSAI{qZ32Xi=NSo$T-ngh#&98
      zp2FDW^Et~gUijs?Jh_29F*nZzPZr4`7R#P2a-PxWhN7=|MqfNpLz1(2XxQ-7koRPf
      z8e(zFlSRQZdS)p4eb4AiCu&G>77q;-PYsvxvXkdW>bz5AjqGBV+u!JN|0hJ3Cm<2*
      z@(3hCU7mqNr2DTSNO5zEj}Z``Kog(R0DOj|_#Ct13uMHX0|Q{V17J{7FG(^6?JUW*
      zH)sHsWV0JI0836pm{3Tf2%(51{cLO>IAg2-kCC<6K7bHkBP_nbsQ4BW;yaub-xK2>
      z2H5H@TiqR3-5pom9ar5QSKS>~-5u9gu<Wq?onm?K17}>4Pq4xjBU9q(;qJ3P&5*g?
      z_gb^P*2;aaHQQ@#S$&H2-MRGq+}*gEzI%*PzwncMns`L@=wU%T#)>$`mUto+UbdMy
      s3divl-jHk;i0uujaD^IlLn_>&Y;Q`1KJw%2oAix;ul(2b<0eA?04Jj|>Hq)$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/QuadCurve2D.class b/libjava/classpath/lib/java/awt/geom/QuadCurve2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8324a377fc63d709da8dfaf1ee967ccc8d972d27
      GIT binary patch
      literal 7376
      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
      TTKB)y_ZOUh#rc3f!Q*}lF&~<O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Rectangle2D$1.class b/libjava/classpath/lib/java/awt/geom/Rectangle2D$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b38908f6a8b2d79273cd2639a7a154ff3026bdc
      GIT binary patch
      literal 1986
      zcwU86-)|IE6#mZcba%TQx@-BhrPQuv#qDfmDF|9yz|w7Dp%mF-4b()Z+i5#wcZST)
      z)?$3qHxlJdLduJhG{MH7tW}AkFC=2rsEHV3)W5`d?#!^A*0fCK&N=tod%kn-cg~%A
      z|9<&3fF6v75g@c(Q0LUF`l_9s(adtTpcQS^m?>%da;cs$BtqQTP-0{D^yCFz4kJX^
      zvD)o<)t=4Unx)#NMF<zGmZcdsf%1fqJ*!tzdpXp|y0Q8QkvX-LDy#GJ?3H^k)s0Il
      zE0<QRyeTA9m1A_QfgPBh)(!2fr5crK(<(D`s9!g9`!Hc3y+H~&ejWnVHBOKQ%_*%B
      zgl#e!5fxfOMiXSA?T`_3wVg7WUF}gBn_Mj^BaTO+2%=L)3w9BL>8^3H^0<sJB81oo
      z#~ZDdCpGJ=I$6>PEhA=8Esd*|F6N$55|k3!*FR0FhtJ(SquDR&#*}W%6sp3H!-<0E
      zm7Hm~)AI~wX!A^Cvsbh+ZKmwht|2`!+?5YwA1Cg_soHueJ8F(qi?c%|O>7#PFKQQU
      z-83S2itB4}{G{%+LDH<+Npm_mX;zJ?N|YP!pg8o?gsol`oSqu9El!V_jiMKQVLZ#n
      z+OP;R`f-TRXg@FzqMT`--@K?#sA!tj6tfeU7<LYk>&gr4qr!2}*__Ms>ue58aH~bf
      z%&Jw?hIK(v+(+UbkqAM~8-`{Lmefi`W8Bz~Q7oAi&ia&Q&ze(VoFKHWTL~E>IK^IE
      zi`BQ}(AsAFU$?DU_q+FDFSkvQM+0|GKy(ifkBg3E*&_PUk()f(?8%rXxexg#5aQ8-
      z&5W{zHH)#DSU#s@YS^lzYuK(Nq#9b4M5u-~B@wBiU1^Qh(4j2jF(sXlu3kqx5lTc@
      zM&hAGNWmIXA2UV(yZPJ98G_L}=`wcHTX=$JGS4{%(&%#56lA>k-7LjgKw7FJgoK5z
      z`aA=5&u%>Fc^+h|Sd*1oNJVa-L0Sr~#klUnkn0$Gu*<{fb=U-&lyeLsy|U^cQI?>0
      z5vBKhFimxstWyq#p`9F#_u_^~<tChG&J|2Apz=ub=;JZ!&FxH(cW=LPCL^(Izj9^~
      z$5)x!gz11|YW15sSD75gSa|6+dd{`%U&etuZ0xv;m=Kv@CMbP|XGB`p5Ds#!d^Dfn
      zHUKT6n{M(=ejoj`gd_9;j?srWO&_5^pWr-wib=W!jh0cS&rzi>Fi*Gf8hwQ~=?*T_
      zH+YA>b@<ula^UeJw8J>!lsC(zcbVGaF}2`h%J4BY;W5?g<mb*yE-eN3yoE&^^&8sQ
      z(Bo3FVo3T8!sQ_h4Q#~FU1sPz?5BJDpZcDELq8x#KjI|)gi-n#FVHV|iGIb)^c$w>
      zKC|>YF47;c=uf;(f8h=K8*kG;K86<R3@tE2Ip<0bIWdQE45IJcD<Q7wasEok<K%zH
      CX`9*r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Rectangle2D$Double.class b/libjava/classpath/lib/java/awt/geom/Rectangle2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab68a5c690f7b8dc1b756471b2867f1fe75f20b9
      GIT binary patch
      literal 2839
      zcwU`U+jA3D82_D<Y&Qu@h^0+JxwXh8355y@hy}zp6pE!NmvB|trc1k+Zfdfjt>Xhe
      zd3#oHMtOBcQ9x<R$czs@`l9{;>K~wwK0AKj*=1WoXdT<he!p|hclmvnbAI~g`yT-8
      zKuw1f=)7WHHG9k{w`a^MPxPFyimvI5m8_lljrnqIq-5y`3#@vgmVlV1AIlj5ZOR^X
      z#|2u(EqiR-C9uzSZ1;dbD3dJ+g!{{*RtzD;4aBfaV8xK_Si`l65vy{_q-X-IL*=4b
      zDwq|U*ZyYM9k;6j8-|u*+bf`F^7NN2L?O^_Ktl_olmXpCs|-XuwAw%vEyR3^e#AOF
      zX1Qk-)x5VjClDcV#!D(n@Q9z6ZdVUYOu92l`#i0ymdk7e)@7bdvNv1c<TD1=VLhXq
      zfld!~8|d=Tb^{x*o)}e#;Uc~$Xu0MVsi0JM$~iko<*r!OT8UT)S}Y^JedU@nTIDva
      z&14sG7Nc@J&pla59Vk{T)3pX2*Q!)W$1Xc`xM*5Sc#iXDzkvgIk;-U4bS!XcF|Ysc
      zh{r5MWuW}MJWe~502AmpkY@r~%~2^u-114cVmo63Z4Zl6A~!wWZm*6bG&hageKor@
      zYE@!5iXj~@3nb<>j*na+CI*gS*qfaGl367tD<5&MHmNSJ;DnA>=?*j;890dn>Mq$2
      zn-g?hPUDP@!XuG9E(XqmW>mjwmTK1V%L1D-Lyc^Dn`9QlVO-#DU!*INdHg(Eh~RZ9
      z<Av${ta{0Si4mGEb8^yhMg_Jtvw3XGuat^5$}VV7*JScfR*ZmJ5$c}VAA!waiolx;
      z#ubeT_TjLP{>6h$8aTuijGZjkDn)C+<|ibvU`V#JwSY0`I95f~oad#*dqU_QQcQXx
      z!zAhTASC$hP%`4nsFHC)^o-Hhpw+V^1xYP8hvjz(NUWf5j3ne9gymi&Xl-~(cnYn`
      z72P@C!MhYTN^&(j$ZeTLTP{0`WG=1EBArX?v*?(2+rbQEKe;`Gs2o6C9!8ryf(|*T
      z!aPSI$dw<45$7Tl;%q_+ts&&;ttF(>IlW9iogRwh<#P{hw}ZgSi9FFXm(Hff$wuRg
      zO^v&n8mAkLFE=&b(A2o2(Ri|{@zdDo8y{3%2Nj(n$8X$3oV_s6Lbt-V8oa%|z*{o#
      zwkc@njNj1IQq4?q6Xbi)<ok%p50H=_A}K#w(8yHK$W+kCRM5y&(8yHK$W7Sn)38W~
      zW)NMut#v3SBo!HwTbT~YZA}P$jEMY%$XrKS-ax1PR1r#g&H_SRRPtxQv%dp7{g8hX
      z3BDoIq1~ES%Fki6YmsZawJ(s}!V`7lGu{cSos`;P#p3mwh_-9`HD%YqcFWtfL`<pW
      zvOG<mp{91yYKJx1Fh-gjqFtNs)C+V=A-_aOeg#9`Lc9DL>*P1sB5z}tyn|kO7kT+D
      zhUIrSBk$pooP{InsL45%ZH^{_@(8k>4$436mp_CW-F<G8z%K0eE6|6S(n>#oIOk`l
      zri#hVVb2{rI!iw;n5A?uOM8jG=dYk50SWduhu&kkt=;#ruY2B4oX_RY)U#jcHTYHe
      z>-1~__6fgN5&Az!dwf-1S|Uc@V=;cC7{61DKmKzJdXN1W?~pd<c=Q1dpUc%TSjX}E
      zI5mg!t*_Pb23M+%V(VoOCmD}>IL-KqhdT%-NWWA^xslzU)Yrc-KytpKM}2k@Z>etu
      NRX}x!-+C9(e*ww4`kDX$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Rectangle2D$Float.class b/libjava/classpath/lib/java/awt/geom/Rectangle2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dc000fcd30d7f33371f07217a141c13025b6c7e
      GIT binary patch
      literal 3146
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/Rectangle2D.class b/libjava/classpath/lib/java/awt/geom/Rectangle2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..628b608ec109798ea4e3ff2e310494d0a1d33225
      GIT binary patch
      literal 5149
      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
      C@1zm{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/RectangularShape.class b/libjava/classpath/lib/java/awt/geom/RectangularShape.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69458e3d7509befd24b0435bf5f2f527076e8e80
      GIT binary patch
      literal 3979
      zcwUWHZF3t}6@IR4c`I3VQrAw^#IfBFDy<XhI!)Rdw;_oY*AC80W9P-;rL5(Zv_aZ6
      z(z<q9-l4S6)=(%dP$+NTn9fkX*cm(nd<MS5A7FrCfPo)Sc+S;&y^&=*((K-|XU~0}
      zbDw+ez0&XB|MhPG4CChpVhVjXt>>&EYsnuf+FoVovYq!Wx42lgs?#NF!8XvUuvf>F
      z=^wf{casqY+7vp&o<Zb23ioYBj+H&vw&u#VLfey$>-Z-XTC(O<h1M}|-cF(g9VsM`
      zRM<1+xb}s`%A8%DsrTrb^72;ss#SI5IdHc6C8wq^Ftu~aql_%t{&h{4t3S*t+{5OY
      zGw+ua5;P}lr&#h84BF=%_j(cv52VnA`$FHW_<B?54t>_Lj_XgMC*sp_hf>%lz9fBP
      zw(Hx~>usk{|3tk(CgWAB!XX{Zn$1U3wvXjT4GeO)+rB@X^A;&g5+;s{k{@D5*&IJ2
      zvf<RuRu=qQT7?@Vt%al~vJIS<JjeCP*Wk`M72B;jp37I})g&Ip0|t&O^fc`)?|YMY
      z9Q_8KpqATWNz5UUY&3;OBx$vvaQ`+b@$J0AfgLhq2{(=>s-Yx)MiL*}l2as1VtVD)
      zFSkQvt!`zF!YXuc2s&Q%Dmlk0dahMgh%FDZH_I+|YgnF+iN%{@tqtF$@EdN)UEy*H
      zlOj`WK>!zs)fJ_#msJwiFl*rY#<J8)@Vw=hQn-PSu?Va=E}hnFPF94GuNP=&&5Gq!
      z-N2_U`r;+4Tv!U)lH`(4;fmzaR_`Z<4rYDjJ=eD!mn{3Y8>V?fFq{+$xJgvjs#Ipu
      z5vUr)t?f3Ky1$#kr{RUQu6>^oOs~GO&v=XOJfZeQ*H#EKDoQP;@SLd9nzx;@IF?hm
      zC60KZ?0HoKFHq#IeUo?|pOcmLd10UAM^>6z=EZf^TCtXw>kXgwFq2Evf0ARfe2)s9
      zY#iF@LV^3<Ox1F01+Q8e%{A@?(f-^FzNT>a&Vcc<<@>hlxW#Cw2=a0YU%}TEp4yFc
      zN6sW(#49r3SGf;unbl~d-g9CWi@bjqLY7K_X}flfa}>|ZDZ$0GF;|g8W>k)d@1*c8
      zyl&vT+#)suCZ%Gy+|E|3GTb-NA-C_P@O}J%MIfimn6+3V@X>4pccxVJmgFoMHJf@3
      z{E!p3`9{MVcxOZR&2#O7=T9##EO=Glo<F;sw-<bFMl1s|J~VYVv6LY>?JZXG_P8Tw
      zTTkOD_OPI|KFFzTK@4#iJV*AURSr!0+WGV-Tg5g$xQ5iPXvEOTdy*~i5r&?|9$Kk-
      z5cc9;$YIVCPPg4b+Y_|=q-E^=Z0iI=M5+_4BK^ydpiMhVTfu4XZ`%1lV`sl<=YwJA
      z<IG;(C54$+U%nCHixGrmh%nF;;Q+4(w;;UQ6yXCQ!V^JU=SB|QIP7gfc{7628KOMY
      z6h-IJ6y+yPQ8LH|C};Gf1L<{`vq3(B)+dN-IPzWt-n$XJbU5=5b5f+`p{wy9;g7&N
      z{xz0W3)`N-Bda*Z>%`GjJjQEe6(4Ratv|4I{-_BC>Yajw#d;D?Y0@5?WC_MJ$*F+k
      zJV|03B&T`hc%9`n-h|{&B>A%@*;nrrA$b}TkkaR=7(lP{F70q89e?W`bfn`WiOfhm
      zotQAwhISYu33J3qC(aFK%yc|cOdDqL4%$Hy1ApN<`zxXTM&I8__z%kWPxRtn=*Pct
      z2>;=D{;SiP&?|B{OluhD@KHVXVNB6#(bjodacy0oWe~Xy7ilGkxnapbF6}fC$9SDs
      z#WRf>y-$t)x6MRMhZ8YFOD5t<sMg!Ocd*q$+{V?Bgs34#`(P%WD4OZ^Vmgsd<kRix
      z_WT_xb#Ylibs(WS(WUkvtM*3JFvA2)d^}LY#3uqZOnfp>!^E>%jRX__l-8h&+m1!6
      zT_?Js#<M%9G1r(>FOxcmd)aoYzHL;Q4^^=PRSGBuWT%;$sM-;dt)lcU?pRoAFjA5o
      zA#g`f_liGE$^qQu4%J?1gnfLMN-x|M>_Q`KZWq`pY60vo2%BJgN;a1X*<H?M^uBu=
      z{z%-^8>pB@<~EilOy16|<N4Xlin$_1v?2wxvWCxYZbW@j5$Yo1>JtCrJ%b)~83Sq>
      zA5=5^S93*Yc3fA(sUWjBM)3t*HAy_i4PL6I2S@NFT{Q#zepy$I;xC)826<2M4JRL+
      z>v(ZiBzY;jhHo@%hw5ge96CcCI`JA-P~URDNn|Mp{?-VPXZc(gdJW%xZ)zQH%&y^0
      sGQ9OWy!~6<t(D|I3Wz!dTrF|9xA@=qg(kwc(f4ES^dkIEb%H<pKe)y2uK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/RoundRectangle2D$1.class b/libjava/classpath/lib/java/awt/geom/RoundRectangle2D$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de604f003e826ca09f715403875f6c0b02cd4d19
      GIT binary patch
      literal 3069
      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
      K>7Y-mgZ~4Es-`Re
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/RoundRectangle2D$Double.class b/libjava/classpath/lib/java/awt/geom/RoundRectangle2D$Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b3a3f46c2b04b49e2c388808c7251f6a62b2548
      GIT binary patch
      literal 1665
      zcwUuLOHUI~6#fo<w?jdMI@W@P0cnd;0pA#-fCdxd0u740p-kE_r8VtTWM$l&_)c^~
      zV%%tg@evymH7<O|A7wmuW*Eq1G}`3O`Oe(?o%@|LUw{63_YuGd#zSZ!3|vvKsd;tT
      z$QQNhQhv7Ds4UKE1w*YA%i8Ev|5UZHP}V~56MFuBln_yCg_5QhO9p{B4|Be(FB&CI
      zuk%_V1nfMxaV~gVujs}Jf-jSuBlst)i&_*uv`diCN@$zWE84ln(t=jIpt2G|$4s@L
      zmgm%(E^_;&-ze#I!r;t5wKL9IGgIa-I~M_AhlDVK0_~I#vCu9FQ44iTh*@a2gph@L
      zB?J)Urj~h?tX?l#y@@eQ+wDn3%{aB0a+5rlnDx>=F0u)svo2=Xoyod;*p$zoY%d}G
      z$9=oKD26aB=9edgGFF#7BEIL673NtlhYh_9Hw1?C`st;s#)>KRGV8BvhBHJ$^nA5Z
      zD`;nQG4n3>bccm7=A5lmwAy4@t=BdFCP7OSdU<L-c3zMpkB$+EVVW^)$A}%Hc8r-Z
      z#)!?p&p2me9EoEfw~n^g3|g>_pHYsW8*J2@=-^zk4q-bw%~BG&>;lhOMk~ibQ6M+i
      zL?V}MLe9y7CXzWh)I=&LN1Eu#$+0HVn^*L)PS7pB;x;052XVTKPP&IA-A9@pU=KYs
      zub$?<xV(L}Kw-0MfkcNs6ZJ6)m`Gt{G5Q%rOf<kq^u33%B|Fb5tiInO{n8O-7N*CZ
      zJ!d@0J#O-<Cpn9pO`hQ4iaq%~hUU3If|txI$t$&veXm^go^GipJN5Q^ib=S|Jo6MY
      z;z^d><QJagQBQKxO@8A^9`hup+~jpn@&O#Q$tU4A_r&ay@kgtOiz)&Hd~5zSSG5mY
      zswJFiha3w(u`R6pk9~WD$><XT^chk5f_D0f1bst_zN3$RY_YE5SXXhZt2owG9P28M
      abrr|Dif!E%95!!0f}?<GAo2G<hRAO(&+j|{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/RoundRectangle2D$Float.class b/libjava/classpath/lib/java/awt/geom/RoundRectangle2D$Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c8ab25a649e5504977f8f2d7b0070fe417e1b8c3
      GIT binary patch
      literal 1862
      zcwUv1T~8B16o%i~cDJ-$K;>(xSYRpGT~t&Qi>N`sMib(N8vM9hVMEuH*0hVrk1*+#
      zm&QB2Fi{g56HWX9{t)B6iQh4vnH?5FSEHLu&pX?B&phY!r0;*dc?aMa&L*HR<nB24
      zoC#;cpICLPYZF(h>y?!&?y~PxR?F`3g<P>*b^HY44B5Y*WJo%-<&x{ImV5?QWN4%P
      zhPUFEXnUX5CW9*X+SWPkj92mea}2S(wZssgudcW$#IQ$)j&_F5MX%ysUSGTI)~-3X
      z%Pzyd#p<$CUUF(4-^-VAzvR^!#uopjni)dP7sX>OCBe|AqYWBY{W_9?+OH!Or~^9E
      zfg0422-L6+6&lsFL8}y$dOawOcj2O}PG5EX^V?ghk=m3FUdrQqH^(vSyoCqy*6tFv
      z>1Pr+L=b=cKBz8*aU9{@n_x)fgCeOxbj^(*+$3BITeu{*_!3_I!rEPbQ;^;w{JQIh
      zE#ysG5D(AC2sU-Kx?Wp$iyr?4dUp5v2<N06mns#vHeYt?b(el2RWM?hdKjZA)F@IT
      zNip795!+-;%9xTdEuv0}CWAgZXg5ibQB>{M=zK{+!Cv}IQ3U%yQ~MG7q=^op3*91>
      zjvkrdDV<DE9ODV>ktTZWToZ;p+C;|gi#IV~_o+=}?LMuEq3s(?!UX$7H+)8teL)BN
      ziZ1pI{p>pi*$<4epW^0=L3VjFS8bwbu6TipP$sFEP$Q(`Lgh%QLXDE*o-rJh)JMt3
      zb7=M}3_W-rQi;rza=T_NtT`X)&bGMKNVf%By5}Un@fPDZDMK$UgI0#tz-t_Su`6F{
      zM?NFWcQlfww}qxNlIB>X+h}ojN4k$kx-%{A{z&&^q<f&nosD##z)9(zm2Td@O#0y?
      zbnrA>sIh19XS=eE?8w#|W}6D<__3U0^FL-d%N@!|sLB*l$|-az1@tJ>*sq+%urjk_
      ze$8-x&2WCraDL5je$8-x&2WCraDJz7O42@|)9n;3`(T6PS`E%?s0~hRBpMvqNH#dL
      zk#0ml&q7nqLs#a|rOYFvED-Po<dxzMXe)%a2)ZDkErKoxRExk00?;Dpf^_6aC50L#
      Wm8LtV#m%QN1OB(d|7~J8gXC{20s%Gv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/geom/RoundRectangle2D.class b/libjava/classpath/lib/java/awt/geom/RoundRectangle2D.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff0e1fa28ee645a0fff0c83468e438d035a4f399
      GIT binary patch
      literal 2622
      zcwVJe?{8CO6n@^V?OnUu)vgTg<kyhF+76tIiI%|xR>r0Sag4!Gl)Lt>yR7Y<x1B&t
      z{6b=aiNr(=a|lsm{In0~hp|ZFAK)Kle9pb4869&UY;x~8_nh;dU(Y#j`u9J7{srI&
      z${Ly!_S`f-GyBY2)xLt|l=>!|#d3ba%2myBp=kAIH3T-=`0B-?>0X*M7c2$6U{z1M
      zxlzk5%vBYdlc}sit1rA_=c{uxsaVyzbA@m+>-|zw3ZWBr*{%+G=lB^IcJfvP&1lmR
      zL90S++%8)e7E3dhJ88}o8LxfZ$(h9|)3xQhCJa>P?21Cy_<vV4sL+yg%2m@Y(>lmJ
      zQr99-*sfy-LUhBluZo~k$EzY}p};Fbgu8U?er`1_g1tJrL=dLHuRns<(5+#=LYtRK
      zk%9Zpo7FiT2XK&8nllU>NM=)6F-_`7Ax&|~F4ywOisM5%G=xH@;QvJQhK``bQn&fA
      z!|IMgQ|Y$6Zpq90WUrg@!sSI_io&E!^BV4#I;10kZ9Gq<qAteVFEYWgs^ywh$5l9)
      zZ0O?Y*;#@x>6+!rtmBpjQw{p{#|JeqxvrNEjUdpSbry+O1j85+h|krtn~Goz?`e3K
      z-QV=Mj?*}!;rxcVJX<W<3zhW&#xWAXMe+E7!j4U>HC)=5ZNt!XABkWBmnB<H=$Xdu
      zY?!gFx;G`La1HiuVaPc#xk5e}C0fL0XJhaeW?OL+I>$FDmHLQXCQKEc;SjcPDMwth
      zWXV*_=x9M$VgHuZdFi`MC34AGbaU2-E&JEeX!p9f;pUH(%a%J_G%FRWqQO=;utl?d
      z_;@k+jE15@_ZDYHijFii=+VGF*3<0o4eu{54dfovYLsPC6Oh}5b~^c^q>40{ev0Vt
      zWSS83mad8K%QU@$SIFtU5#nekRkB6C1N9|ccTl#LUPVVH$hVQvdW_)GLqtgoE%)Fd
      zg3T*b?97Du-jiuf8DUYA7_Bw65l$7>u+Nit+!}f^Q6t#nNySaib7_oDdbi=QlZlh-
      z^SFc&GvW^(q1A{Qi3g7n46GOlBU&&L4!y*USiy)pnHa5N^E8Rh=VD8b#Hx9vUh@d6
      z18%S$la<Zzy31iN^1Qn&^kNn#P{0swViNOwJE&p-U*J>Rhl_7;8_T$ZU-7xuuLU-k
      zJ*o9exFhKIdbq}x_Y<NJ{=fjaAY-lIO>!C|eT!q{!i@Jd-Xhn^XnDL%F3Ok}kRcai
      z<SdSpi!=Ul43bNDn4GAAdY`@o=z(-kY85Acz#%ehp~rWn2}`d28TUUu{>6T@d4qHh
      z-S~<*-}CAkV7~HxUe`dqu7O%z!oB0wCEO{mE+rRNZC+xWEseUnf}%_dAsrJOWi$ld
      zK(cM=F(O8wjR@_3hT&<MEEylM7OST?dpy(`>RrX?lcWeaLWhljsL1ii_)Csls2zF#
      z$umq$r+c4b@=3kaV{9+*9TWT>omj#_f_V%N+1zCo^CL&&F{beoZ2XK8sf%9-_HSNG
      zhGe&Jx89PwT$!t0vA1}ppAk9<-8FIn`qJ<rKH>?N+;x0RPT`ZyfLmS%-13XSEw2M^
      zSr#bJ0Gt{{w;IDy(*Fb84V<gxX0u0<TS8LeLe}u>TZP$hZ>TA>t1IimChB1m^{|P0
      z*hD>Sq8_$|yXS|!&aiS9?M@TC4n8~i7<~5d>FsSypq*WYx`DVd(Mh^X&3K7y_np)e
      j+0C_TXNV>)x162ja)W<+nlVS|O;$QjS|XkB?A!kZe(45R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/im/InputContext.class b/libjava/classpath/lib/java/awt/im/InputContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84acbd2666ff37c82f5816679949bfe9c0249f30
      GIT binary patch
      literal 5168
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/im/InputMethodHighlight.class b/libjava/classpath/lib/java/awt/im/InputMethodHighlight.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..603a3a0e87a80b3749343c6784b2ee8d3c2f9767
      GIT binary patch
      literal 1841
      zcwUWET~8ZF6g`92U^^Qi<kQ78K++Vin=B;c6H4nkPH;m&!j9AAC0fkXY_zOhGtP&U
      z{D4UL>|51`KIN&E+9*XxMQY#sqpIFJyER~}&<A_Y+`0GMbMB1&_dkF9319-(d(b5?
      zeBXKC*v>;`yQ_A=uQ%0Asa9&svu<_8qmSx=A<(b0Jjbuv3rqK9MG3?fv$yY+^52vM
      zL_uJGuI8^P$5&;?Ysv_9fIx3<VZNMSEak82OpXeHp<DCC{9HcA;r~eP%@(fD&e4bH
      zM(6g@G$k<jL5dUGTI|%YJ!|BD<iysbM}Flp*}N+dC67u9#2+{f*HLcG*RjVQ#rgu>
      zP33y_O{Y#G<3+dXJF3~BQ+wy>^p?qQYre8e@{!6a)o_=ZN={ibR2`eHc&_iN8G*=H
      zx-4MiYRfV~b4{5T!p8#L)8Tn^>~0}lj?>YwiG45`jhfgWppzzg19ZwnA550&`f|Rx
      zx+EJVXNkoR%+)H6S7ukV*Fo-Nai@&HVQNrl^QR@L6?ct<@G<Yt@6OxPX}X+11moN(
      z*@LsBeCxFpJWo~~FWaa#SEaA=k1DdxQ%}$X9%o1AP4wdcql+d6(9P(wiGu-}GI0op
      z1&-`=_qZ-Y+X;8A*t%evGF@@3DpfJKWeU*KHYrfvy6)gy-}r&C^sYOfXpimbpHviU
      z%|=CDbD1>R>BXO64vdf`{t+dRL=@e$>!Dp2VziHM+w(cS0>Vjt1A6TZ*FL=t@YM85
      zGt=wAaHV+>&k@aYl$c{UMpXhIQRF)q{KLk?Cd8dcWCMfmah$Oc;1L}+G(Mr@0siEj
      zru&q>PmxgI27P}`LKdjmJT)kiwMCr7ZJb6K<H%x6SMZ+*z4WmC4KmI4<JMp*A~ulT
      zqD|=J8mX=8(%~QxpJ}&@*ssut9d~Ks(;@LKA~r(ep-#k4i1?`{wt~bD5HsRoMs$k|
      zMS@|T(XD<a6s0v|ZNN_bfc}*66ZUOl;?4%n{bdcVW70~k<AOD`j!Rb3SjQC>6VYNu
      zNe1wYBs`~keL=%}Nu;lE9It73Z%EwtTI6KVq9roZ5}9d<%!DEt@tqr(CTxaThv@DN
      z!k=R%oRLi{pGB?TG5JetKHWO_qi!1%N5i%PU*O9Q#TVL(-*zm{b}YWsUi@pv;;)cv
      V&Hd^wk}JQpk!*G($?L3Z{{ov4Leu~N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/im/InputMethodRequests.class b/libjava/classpath/lib/java/awt/im/InputMethodRequests.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e602d630ea73d8746bbd09a9b3eaa5304006f2a
      GIT binary patch
      literal 623
      zcwV)VO;5r=5Qb+_sp1Eqi618}9?HdrGbcl0+@uBr-iU{#Okqjc)pn}>HV^&)f0S{y
      zS~SGy$tLZj`|kVfo0)xmdwv0c4jgz;5zv~e2NkGC3iKk7<}Rlzq?w%z@IJ?kG7r`T
      zG>T1$GSi?xo?}D;>Qkf}e4@}sinKKXI)1oh#nw>Z<V#J`#J1c1(gy5jQi5FpO{SED
      zejI1W<d!dG`xlgeBX&uXVM^CF)8D;oep_-})_Zob&_p<KRspvR9eqHF7lL!5RF8Ak
      zdoz`)h%lA>DzfS6QY%yc<={w%t4D@trZf|95-Ag55-Q?uu7n!-{~5_mXov}SyF9Np
      zw0Rogg-%ew@ejj3bL^@BZX~$J<JoUO72F;0V6&)OP%G*->=bqP^M4QOMQymsgeHG0
      Gu>TIBSHKPc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/im/InputSubset.class b/libjava/classpath/lib/java/awt/im/InputSubset.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad26f37192a52de55941bdd08183482a1ef2e008
      GIT binary patch
      literal 915
      zcwTjqTW`}q5QWdS&CS`QY3MEGS_qI7+B95?8U>k#G;WOx!~}taf|FXUQ7*`J$|L+G
      z!~+sYyu*(|%uZbe3GrZ`^UcoA?(FWb-`{=!DC0p469NnGoMWftd<aTjzhn&FkAmi?
      zbL0jwObIOUV9yyGl(r5X-{}UfpFbHFh?u%<SOPioKP5H=B<Hki#<pQM1!nB$dd;wn
      zJxe#+4c&Te2xOYZlc%OpHy+ncLy=wG+EGfpqYGpkx><i|)a*ukSGRQ<rQme^g=wAy
      z!;NIdk<$g^m2S@)ctKTQvQTUZOl=MK-8do|1ZE}XFfS0Tgeh|cbKGz<@V&voX0er^
      z)J2I1qH)9&oRx?vh%2}t5m%5<uq=^Kpee{pXbO@Fu1h2pNChhrQb9_=szgdbTEV(R
      z8c}M_^aidq>UUh<b~-(m&cGaYonFiFJ;fZ<Fo{`eDLC|wNCr-y^Zsc;Kx+<1e%Gyg
      zs#4~!D_T>@^cLuN=uIS$Q*DyVsSa7=p(aArLQRG$LrsO6W}TpU)5uWW8KR$D9q50D
      zc$Lk5#hEWyV4q{Z#Qq%n^XxCOzr_AB`z!3PvcJZ@z`n@-2K$@r*Vvan^ES%#e?%Jr
      zHfXC4>B6g6#5R^uM;?1vg@tvrP{A8Cu#acx!bYE{hqpL}hY`6lZgDmB(US?=suHPK
      kbcL3`Jzh`a=tnxrPdsn_Bnx-=Xq3B)dsIW<KF`_s1D%GUasU7T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/im/spi/InputMethod.class b/libjava/classpath/lib/java/awt/im/spi/InputMethod.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f74de82a61d60f641db28efc511c202b23de802
      GIT binary patch
      literal 735
      zcwT){%TB^T6upDUOT;QK-;cz^vaxZ^$`DLUP!lnd;A&_`7*l3QI~4sj7k+>rWxO*~
      zXri%;p4@ZKeb49D`v(AAz)2QT1omENL>)R)4j((=gge(_GF3NBjii@_Gy%&9d@6>{
      z-Qb0}ia<4FDj{o0q1Y?(XLjeGY_Y7_cqEX=3?1oGpJBE*YO1*J%*ke>kDB39Q?VPr
      zMFh&2rZu7gbrlP`(*c?xfn)orvut|dKb;FqeLX=-jwdqYic8TJbl@|OK-%tWcZG+4
      zc~@-HSHN5;A{HpapnToq;e;x8)Q*@ywwBn#W$(eTrtG$mia)=#e2z?y3s26lJu$=y
      z>xr0q+%mFy4;Ylg?s-HNiV7ZE8fzo&v3U|4x)`vrjM%LyK%m5gml%OSR`)1FjI)M%
      zcA*04{~UC&-o%-4y@jrv1}?ke`UF<ul;>KUA%F`2{aN@<Rv`oWy<{P0Fb@TTYfv<}
      u4kd#dU>V$mErVsK7_36gU_IuyWBpES@5Z<n<9>_>aEKicIKqDlj=urjp1zU*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/im/spi/InputMethodContext.class b/libjava/classpath/lib/java/awt/im/spi/InputMethodContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9c622c58caf4ef975e4496340c0af533425e197
      GIT binary patch
      literal 538
      zcwT)`OHTqZ5S}86;tNlB(&)j!#m4iV%tqoG)I^LX-nzR3lq@ZDXMx}5!5`p{GR`h0
      zY<wNsNju-8)9?M`^$h?n;GhN-0jDE1Q&P=I>ak2GS_Wp4(Jj)@#=bR#3#vg?K%>AV
      z$_(UvIKqf;Hv}A)*(K%!PBTm?6>u2qbfPF4mbzCnG$bHw1>J(5o5)Kdr^Ade_J_);
      zh|mSR6j|qe;c}lozezqa;aXE*`qulW)qWDtj2tS$lKZnZv7HMzYjsyM_1N4DyqES$
      zZi(}Llep<PHAVsLza<tjo%2yHp{#O*MuiFbiRR&#+IN<8Uq_0xH3Cjr-STgK%Yt=z
      zntIP>F2asZ*uD8Ps`Ffda}lt{Yn^kha&|S?ggnD7s26n`c8a<SdyEjU&wB+LpXq6*
      AI{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/im/spi/InputMethodDescriptor.class b/libjava/classpath/lib/java/awt/im/spi/InputMethodDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d3ef9ca9fedc5b4d65068b0ae4ff00709e81ee4
      GIT binary patch
      literal 540
      zcwTK$O-lnY5Phj_SL;_l1-*Dt*j`+`2|X36P+0X)LC{kg!!{-R!6vQtuX*qX_@l(x
      zt+Xp`AWUZR-pres@1M^v0M|HiP-3{8@;UeTyY*D)nM8TRD4E%NX(#d9KpK&%#Kx(E
      zGDAIwY90mN<9I5CWoQM`_UBw_KGxEY1=rFrblmQ%pMz&sX>S?tG1P89giNf8BjaF?
      zaI4z==cm;lLwmx_U=i_9i6z%phKlXD-4}*aDp}O1OrrVXfrpae#@#Ht8R`1#Mn*PO
      zQ9#<7|I-ddCgfsEzCU)RdKmH`>#HGB$*nBV8P44TaC5Xh2Q3=kT1cV&+9;l-Lf$D&
      zEuC%M$5lqGGSE<voeHg|f-3nAd1bP@6sch!+2RgxnA;;9=eCYU0okP6rgsUQUvQh3
      Ar~m)}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/AffineTransformOp.class b/libjava/classpath/lib/java/awt/image/AffineTransformOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc2eefe929344c9a108554db8e15be7054e29592
      GIT binary patch
      literal 9727
      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
      O0)s*!eU;o6Z~Z$5xKQ>0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/AreaAveragingScaleFilter.class b/libjava/classpath/lib/java/awt/image/AreaAveragingScaleFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fa585e6c09ad962379b7530a08b0d1cf7530e5b
      GIT binary patch
      literal 3621
      zcwW7gUu;`f9ml`NcH-E+vC||c@xPRgZEaFUQg7qZe;YK-x_G3?NV;rUH}H*fW8coP
      zi{t!h$z!ApG$IN-z+<1nkU*`NS_)%yppDTXjfXuj9`>}M0i8gDYJ!cH?>X1GT|2dk
      zv<gf2-tYaLbAIQX@9%SuFI@il3ji`W9)wR|+YxKt>a!MVea?(ku>1B^ZEN4WU9}2M
      zxiFTuO7;P#RI{r=1O#rsuJfpUwB+Qin*EWE0*!l}vQxWXprJdP?HLyc?5|AOVfYa;
      z(11pP*pO4Uhv#M{?dl<GvSbUi4po?9+^Rb2y&eqIiq5P+&(H?fxQA0NI8(KvfXH$k
      zMcXM9YXVKPc5Top*O)8N%@u_p&~8AYgKhard3J6_t$XwJ^JLY1f4zNA1aTyTNC>2F
      z*3ZBuv~nTSC9A**L!A3zXVETEZ>1mE?Dezkuaqj)gLJ60=Wu_vzPwKv*n*f^dNu#3
      z+L8)>+Q9897@D$YYhLtD16y^JT?h4!RkYhckBWv>UpE}aXYkn|?h=UVC6ugkq3@to
      zD;nrUAD3LM%$28<M*}?%g_$E`;BMR_&}?b5?e%?Z-^e}&2C_Ye`_-JEGhpKL+LB78
      z>gFF%4Z95NRt<r??Ua<gdkv(~#p*5cI>u{(7pvJYqtXhbZZaq9eYCzl-{F3~Ri>xu
      zy|OTGm1mvf1j<)ci3gNmc0*Y+<~3@kHeRZ%DwT3+Sh+N^5m&NxSF&oaUsih^Qj5)o
      zaR}o<JR*>|;b;So;xX>3VAn?NDHmit@Nol&RZA0F9<17SSp}ao@D&vdGT2|5vsEl-
      zz*_IPuXMC%sbJo~6u9{)g9BF0dZ1*_*k!ub*v;kk@GA-st3~&5%zZ4lkD`m*x?@U@
      z)Gd!tUp2Nt<63_Xa>uia>Za;T8bpEDBrl7X!|RBE-<e{U@K|N8npfX8lXTtaqwiIg
      z;Wie+5A|!LYS8x}-?EIVcyN0veHKlpDSZg@9_ACcpB=w|2-Oz18w@n-G(kiWV-lrW
      zsC?A?u<L1u`L4#dZhsDKFQZvKQs>a=!_^t0I^!t&k8$K7Jxhl>%A2JXDLso&+`GBO
      zu$~!MV$#hkyxq1^*%jjR4)wB)FA>?a5)V~=hV4(A&D>a*3?v#7jWQ^k;-Pp%HlM|g
      z-BEXGJN44s?)R>ySK<*Zy4=XlRT*$YJ6D+^>X*&uuqX79U6^{M1>TED;s}qL67Iqb
      z?nRj&Z;9?5#Q}T`PoRnlW-(9wb=353m-W~sZ?{XhukPs*osVfRmY5-?om#>dsRCN<
      zLqChC)P4-GMoK-v)}U4gsG69wf(J2(5Z5)yLJxAztr*8cY;9)N`|u@>jcRX)Zl$*e
      zKY_Oof85&@-k;_kzRA@;LvO!DZ&&H<Gu*?sxz`i)_B-6`cj@g3di%Xw=<Vny@OG45
      z`qUqU>#grkyl<w*cYFIcqgNd;V=^jZ#pj!Lx5Ps_&=!yAXS?5&Yq;b$JJ#^FlpOrj
      zs<}yaa3n>mf5J>on28B9Zg%?3)EcJ!W_k_dDY+>pQ@ONk&B=65HWhPbm+aKF>bmC)
      z#&Tw-jC-#WIWsO3-s=-NGa-}S>sNDTayczzTDG6O^6YX-$dqh5dF2PPQ?|+WVo9Z{
      zD`u%HCa9}qqD4yCEIW$1L__fT@PuD>j!Xn(d}N|QCPpS2Wpc!S29qZaEq4gnA!8@6
      zB$uV&nCQtX;Y7<RkBE7m0>BUH_Os~3k9aEm7~S{@cHk6gIgP#eDQoo{&!4k+9Osb3
      zFEEW?;y7NwH}ETbALp@#7jcI1^K8F>m+(4X#+&#p-oYz)53k}felL=ERitoQ+=)}7
      z53ebr7)z__trJBx?Gi;*aEYQSx<pYqE>To<qNt9zUn|v9E>Tn^O_WkDQA)W)DdiFs
      z5!-mC#7I;p*Hxy9VT)+hUvLX|{04c9@f01#A9&uxcy4x!u%^2WJA_Zu-A)oe)L((b
      zE?m@KK?hxWktb4&Za#+J@QjM_ulEr;GE0>p!@uKM6(i+Oa{f806!O&bRB5`p7YkHf
      zn)8u5=Wo<G&)k&r@C`Wsm*)JfTf=$pwVd}}%X#m$ocI3UI3MvaPkER}K92cYMBr@}
      z=Fi0ZFU0(>#QY*Lf0wrZokjl#%l%Il@Dee9pD_NL1^Ev#|A3f(NX-9B%-<*GmvBJ{
      zyiN?>6n?xT0(eg};<5;eglHtz?}|HcQS=g+tC(jz%rhS584vS}hk3@sJmX=WA?Etv
      zq*}*3<6)lhFwc0HXFSZedYC6Y%s1)7RAK%{5A)YN%tIdL!o&On5A(lyn4kAB|Fwtt
      ROCIL0YzT9KMO~v~{{uEbw^INB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/BandCombineOp.class b/libjava/classpath/lib/java/awt/image/BandCombineOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e56e395ca40dde60083744dd7d4537fb94884344
      GIT binary patch
      literal 3170
      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
      VG&%A^=dM=g@2=r2NF!;r^grE!0_p$&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/BandedSampleModel.class b/libjava/classpath/lib/java/awt/image/BandedSampleModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..534e15f266fdf02eca18db1cc6f63d8db4f2af82
      GIT binary patch
      literal 10990
      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
      QAo=*U{u{)n$PQfbPeHj@V*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/BufferStrategy.class b/libjava/classpath/lib/java/awt/image/BufferStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..117080e705837b6114247ce8a19da94f7794416a
      GIT binary patch
      literal 482
      zcwT*xu}%U(5QhJS1N1~e5VbMJ4lKABOO1sXEj%?5Lt(dfEXR`Lmh3GOAIr+b!Uyo7
      zjB^V_Y}{hMnaTgp&Sby7KRyARV84VM!@-EZaF5T7C&xSz-sN;K5V~tLHzIm1!C|Oc
      zNz9YTdk97%Gz`UanMiZNkZ-nn3{FS&g^N7a%P648Q1N9V?x*8G=qDb;f}!TCkjFi)
      zWtK0Bjv307;n4qgh%@RJ3De;d9>`c4DKby9_3N7JR|N~tmFBY>%_l<{lBcoiS(Zsz
      z4pm}AVp3nF#_se?TQ7@`A~i~jK8>3W)r`UIs;Lgewaiwi|DCm+^>>ayU67q3MFo48
      zC_5!GV&V85Yi|_f;L`09fm=AZ!v;m=xrn%l>;tw?v8-a-vWB|l&Vmhk0OZ-V9ru0!
      D7qD>C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75e331ef8184c4be360f575395fe2a4d3b9989ef
      GIT binary patch
      literal 2235
      zcwUuOZBG<e6n^H;vdhj6i0EQb@ugB_vAWV1+OmowAZ|qk#6>_`huzEW;O-30%&Im0
      z&=36qO-$3IiAnpZY19u*D#n^L{oEf_``p=KMYJT{<j$OX&pFR|&dZ(b-~asaCx8KX
      z2?!1QR;)W#*18*H?V44V*|YWKW$DRMUhR4Z5{PN&2yLpCQ_fyqT9L&dfw+dfn><60
      zDbFp{i_+7OEV_<guSw6>&^Z~})&skmEzsZfavI`6#rAtokiz6v9F*lr+p&XT4F~(S
      zHq8_?#75ncOhUsp6G<2bbZj?~LZ=43FH=Zh=XydL=or|6?aFDFi3D2dJZU@fQoXh$
      zy;*CiDpd|{(W(|K&sO{BFs5?Qa9~SXy#vf4WtB>!QAOUCNNBlkz(f?I{U#3JpoUhK
      zGO%oik<yXlhGyh43(EMAiC$%_Gmr*h7vECY*Mn#<Z2y07TF}t$$(nnod8XnXHSxZR
      z8*ivsIzO<ypfL!6?K%ds;2fQJb7Eerl8F!SA#*LuV9qWDm9SlT<@~XUL8VGkbza)#
      zN}x_ZHSrmS7?-Cr6K6G;eR=*CxiX9S1Wsz$zbW3B?Xg~?Zq@ZJa!9H=UV`Jnr%nL|
      zau`vgLa^2lEZ^wEn2B+mBLP{JHR%K+foeoP^JXg&IR76PW4&Z4OyF}97cj{nJ`=K?
      zfPIY-uAp?6OkBp4hBoTPY)120LK?L6<s*w36IU=xHnf<s@5w5)heNuX`}Zo-Tv(RS
      zy<lQa1#hz(v}&tW8Az4pyom)>=a_HbXCJkDTzRgq82xUeCGkpFe+qu!*(F-V-Q{Hx
      zp|Bcp5sP$csj09U_H4n4&^8wbwa1gU>(UQq-PJMot}`i@gBcZPM*7kz8N8P(CXS(p
      z6MMz2dqsK94zJ{E19V(P;uz!|M|z`G%l9SOY#VoqRoAzj@<ka`+>(h^+-}TL1B$n|
      zFZ0&PU;mcnaDohUt`-Q+2|o}(M~C{la2MxF!KAj0(gf|4O}hW+Q?&O#Lr4D$?3jOs
      z^iy>GMuosTe738xQ-I<$l41ni+$jh;VmJ1Ly1nR$K&R=|0R0_ZN7u0LN0^cL?%XC&
      zF^-fthn->~1np`#MxaW14~Ge>;RyO7_)`&lavlD06Edzii3=N`l1->&6DreWdNzVG
      zBB=fi^bDmDQ_OdI1D?^uGn#nE*73B5jAByvL_ehu6SI8{#|L8#;iJKpbZjuL4<^)p
      zZ%;awZqd?-bbJk;47I*MZocC{=c&%&?ReRF`Wem)C7U(V2aR8FS#8tC8b<%Z#89d`
      z)zSJKd4cX!6etSw92a#SHUe}fyIWO^=a^3NkngJk-x^vv%y<pget!ArRmxvr7saa(
      zqJWr~Lz}pUE-{bYVgWs35eK;riR(BbZXio}K-|QzuyBU&aZ$u2Au%h;SP~W75;ndO
      zEBIdA!b6@v7PYX9_ZtOjmhnkcMuA6I#C5)7_!T!O=`86_<aC`UUHAcCQfi^!1Kgw(
      zXVJfdMJd5Q2VY|eMb7y+Dkwp+4bwzhrq-Y)hcaWN7^Tu|{czO!ct1;QZ*Kc-j=Hy@
      e?eQkxc*Ix7t<a~6TIi*P*8%8+!)J_NeD`1a5z^WK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage.class b/libjava/classpath/lib/java/awt/image/BufferedImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1156b6a6f3a29e81004ee0cbed58f7e9b95cf2a
      GIT binary patch
      literal 14436
      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
      Bee?hT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/BufferedImageFilter.class b/libjava/classpath/lib/java/awt/image/BufferedImageFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb8d712f4c16dbd1cc15ebc2e788d6bd75fec6d2
      GIT binary patch
      literal 2898
      zcwW6#ZBrXn6n<`A$O{`#+5jni32m(**v3|injqRhX}3~J2_+3w?UHPgh0Si<Yzov*
      zjx+KX{24l<$y8?4Z_fCm9M8QQAtVsgam>ukp1tSXbD#5^m;L>ZpMC~#6JPq^Vz|7i
      zyigL#ww=%_N=Z$m>&2pKsRfz8&1<@?T0VFf&UM%w(f2W&5qe!QN{LzBG*o3nR~cMp
      zl_9#&>yAg&6hq&%W@z>d!<E=+#uKXyo>{Y?2H{3XLI48{?%2et53ey?JcO}W*Yzb+
      zGYH|`oxEDLHPi58h#`JVj8TKEqh>X#8PU9H)NHGsw@oXEL7e4xgc-suXu^5Mwlt$e
      zU;<zmk>G=$VQ@h+)Wv#bL$y|%_=gtEyrQovmd4*(n;yHY)fle!jMRZe)C`qWyMqJD
      zT5RGpo)`i()n3weRGlun7L)1Md1ltsP3s|Xsi)S{vdlRgXSmQ|HK*8$<2}7=6YWu4
      z;gnou@Wq^CL0m)3hc_7_C*B}o0&#}1yrn9(I%`&{imeeJ8KqLyRbfJ<LNL1`YqLoC
      z@K!g#tfkqU+GV9C%JBxnz=4S<fgrBqZ4UY-gE!_tp2RzR=Us*eT}9V^WvA|tjy9FJ
      zCB+GxVmRL`HJq#WC47J+!&$9%N3WKZB}=W;bz7_InpzOmycWc5Omlo6GGw~&wI!}o
      zb(D<Mnxn7Vnx43?)XG9fK>P6#?)dQWUoCTDAxTJMmJ-{Uw>h<D3loN1@22g7*oMA$
      z8K*ePyAtMck7h(sv;@Pme|X(d?I|~M-en07@Ch{#wVp#G!+3Ycbui5<>Y;>1JYopZ
      z$-_FKitRq#Rz|#~9!pq8hFYq1lEy@AVm-}=+!F~GafyNL(2{BG(%Pm~redx*jWgDR
      zW1_Cw8UwENG?kZGEHe0OdBvz{FZq-%Y%p9p86a<a^5UvhsJ45x3fXL1$GGZXip(^F
      z3a@u2IMBLHAr>~ovn#|l2LH~0lbr!)bob|>Bbkqi3aY&Ez7X?Gc7{a-HJ%{bNsG+W
      z@`9&D=bXyN#B#(Z;R|NWx|Qc+od_R2X4K!{4lqui6E`g{Ef@c)(5Ko%asWa4@29tC
      zq<7JCG~R?X`5Qv}7|ad5-o%+-;*&pO_<Pd1FiQW!<ON95`4st?#t>#OLJbuWI^hH7
      zFa`*T-$gZr^SIEuDIwkgZ~O-ge|O-vPi)Q$H<Dw}a>IC?I)|A?kOygRZy(WIq%Z6b
      zd&*(o^RTap%gI2*%QqT$BN^PsWG)hn1om+~=XN)dXyR6~e;>DV5pSeF;%(qP)<h~P
      zaTF0L;(dh~H<F>&Yv>i`+{i{k4cu>FAvq9tyDx-2bavoZL>pLghy6{g9I|qYKm$t%
      z<1w|}GN!PCd&oe>6FkK#ipZi$(pSjgYkGczH4*B!PB;gQ?U8L(guh2tS;6NXoyk&u
      zxU@!+M@Z|GGp~?7#b-nxmp&)0Pe{*6@)H^h3O0zeC`!nqK>3~`geu|bCu}pcTPEaB
      zDJvRDA;LI<O>AL6(5`pWUg@CS{NHG=G++tZ>z%acDbNCis8VnxqP<9=l_@BVq)iHG
      bi)h!0_AR2l@*mQ^-IMm6e@XkUi0<W|x)sEJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/BufferedImageOp.class b/libjava/classpath/lib/java/awt/image/BufferedImageOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e33b1a0a5fb6cb718b00d0b22e329c58adc003a0
      GIT binary patch
      literal 603
      zcwUuKO-sW-5Pe&1qOBh-coD&Kycp~?w>J0zN~N9zFWY1iwrsLxv$g-tgFnC@CGG}=
      z8ZgB@>@f3Y-oD4|$LHHSfGZ4rbQsPT{FR4%Z9-A-oWk)c%Scmt=d$V2$1cO5?vcFA
      z!|8lMiDB?EAq{DUm*BpQA!<i2+F^!%PG+oDWm=75hG@%U8+19TBAi*RR<)#2Y`IPo
      zP2A8#6-#c!TvAMxsRtRJ|7l~Qq|y&6CAr;0&w6-NqBPFJP0-NzjYNNxo0fj+3`0vh
      zqcSBe%KX+=D~7XRqyIPPggmL0PUu=l>-eOx=}R}~F)-}FovvMc7arUP@Ud6Nee~+s
      R$3Yzrab!Cgj_uvS;0s(+x10a~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ByteLookupTable.class b/libjava/classpath/lib/java/awt/image/ByteLookupTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8fa3faabc00eec58dddc5a21b3df3f5c42077618
      GIT binary patch
      literal 1414
      zcwU8)TTc^F6ouF6w6v5Wv;rc~+JZt`Mk=5&5ko?aCZpw&fHb7>GPFY-9A?OLs_>{m
      zgYi#zi4cqrnrKM8)JGE&|A(*s0d=3D3<Lxp+Oy9&d)8jxn)&|wV+BAz`n_;5MCRpt
      za!S5$rPKwvsHD=%mXa}yyXD0xc~(=ra5J>+>DhJ9;4a9P%pl})X@;7Ms;*kY4Bogz
      z2Z?D0|K+8;vS_J>Uh<-jq0<)AWWAV@G)*bW+K5>!FDSa@G?M5gqoDX9;79;oG%$GL
      zl9ZVCBFNy%rE9@(Gyo537#cFFu8frzW)-vQD3mesvNkQ7D&KG0wC<=ShG^z+-XUTz
      z=H^O@#lR%`sdPXrX+Au>9hdEXtgLAhhN@eN={Wb{1Vb~wiT3bZdZKa_uFsDS#5heS
      zb;L6}I+K>E>ct_Rm9MB+RllBi!cMeKv&~JYONvGf@tl;C5;@6>I756#WW+S(Wl1k6
      zOXFp0d@gO2^+L(9#q&xA(2C>qqDp3-he&Wjp=8;bY2xF<{F6r6%qv$^?x1N;G<|#;
      zVk9Nd_d^mqf2urGd*P#fE$!U2^CLjj3e|2}<H>fhvWfbnSowm+4+sgv>u5;6M<^_Y
      z2PRhp78Wbd|NMGKy)HD-f19m)nN+W$5!cX+3?j7lV3cYgxuuI190Tl%$Y?IFxF;7v
      z)YnF5g6*w+pEra0I7KYk?j~#EH`ISZ$4n@)iRjm)n|#g);v{+9G1Wqk05?efCW+jl
      zv)hP5whcwM#2iC0$54!(3X(z)T{uZ6e0Yjhe&^vCymbcD*oX7BU|_4ED#&mO-Mbii
      zY?&W)&vVF<dtYzmvwxK9Rou_e%@b}F!+b9c^oIMWNE8OgdDOiW_0M&5?P>}Ct3})~
      zmLy)_0S$Xd7FH<SM`Y_U611MfDlXs&y`WWG$5Y$<Sv#q$lSUT35N)6=PE*BIBh}Y)
      z-l;fb-+v)}2SN^R5lkHdxvym(<O>@1k}SL;$ThORPLOK^xj~Sx337uV-y8@TbRdHV
      KLZ<AAXZ`|MvI-Ue
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ColorConvertOp.class b/libjava/classpath/lib/java/awt/image/ColorConvertOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc3fa08e914641975e756ce7b949529ff60e9387
      GIT binary patch
      literal 7929
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ColorModel$SRGBColorModel.class b/libjava/classpath/lib/java/awt/image/ColorModel$SRGBColorModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9a971b2d5f1430eaec4491c25b478d6fac58579
      GIT binary patch
      literal 1142
      zcwUW?!EX{l7{%Z0EM2-FP;7yUTGVQ3B_*CQHA0n;w34(<6XR*16S~c^G|QsKga3{f
      z4|*~&#&|RFuhD}S58^kwo26Dr-OcX4nR)a3-puT`-yc5%xQ8_Z8bkR+JQr2*!mC<+
      z(UaB2z#h1}gCl9L?(a40lcoWkVdb2A+j3>so0u5p?pu!KZ87lj`XPhfpl*&az(H?L
      z0w(EX5;0t2h?iUHQr7g2<;W+aen+|oqGL;j?9QMo>_g#NsvUOf-mx`g*x32s;5Dk!
      zliox7^jI(~m4k`4aC+5t=Y-<d)>{Ua7_?_C%5OQ_!V{|aKRyP7Ky`a017y>c(xE9N
      z_vBG1nsr(V2}OBi%f56xin~^BO{qJr1b2HK21Ze0r`AigrRM%%<aXs_OD#V=S=gqU
      z&5&$4j&vKg7!Kvoz-@-*nOnn<`g?Ow0#iprmqAYqbJSL9%U3{VBU8%8v-1lWXUz{t
      zyr(`5DgPKXlHZZmejrWlWZ<WJfxfhXxE!+T<RmXrcfVkfZ)OUwi1zwzMDi<XKYdCr
      zaE276a>&y-Lm}cl2ziNsHx2gd3@j1B5)o{9X1Ms&aN`TYU75+tOyhC=0$wrV)k2;T
      z@Xmwg&wz{wWJI8=xE6vs(EXDxRK6mme=?u)Vte-u%!=X`+m&|_IZICP6m*_JnlB>9
      l^L~|5Fh8nNz;&$nr(U43ydU(2Pq~R(P=AO@u!=h{{{Rr;!!`f_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ColorModel.class b/libjava/classpath/lib/java/awt/image/ColorModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5806aabe368374463e495e9c561716c8ca8a5bbe
      GIT binary patch
      literal 9110
      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
      M)&gE6#2)hfKN!35%>V!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ComponentColorModel.class b/libjava/classpath/lib/java/awt/image/ComponentColorModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9be93f657ef081686c1b4448251180a9d5b3f04
      GIT binary patch
      literal 7615
      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
      A(*OVf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ComponentSampleModel.class b/libjava/classpath/lib/java/awt/image/ComponentSampleModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74ba60a0881dfe6b4cc5f2c023e1e2a1fc981fe3
      GIT binary patch
      literal 10746
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ConvolveOp.class b/libjava/classpath/lib/java/awt/image/ConvolveOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9b2ca14d7ae32f5e0ff3494594e7299ca65b064
      GIT binary patch
      literal 5812
      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μovNE
      z5Ng~uaYKz~y6OqJL#{)(xyEZVzgpu{-KuYh>nGstgScaUj;kgxfGH(8YG4AsE{Ccs
      z4&fWuxI@i-0igy;a*p&Lf3{*jzD-Eg8>$JAzL!9%KU8DIMhs&Ad}X@o4&U#cpXaK{
      zAHW`0O~C-Jb=4FO;L_ZAMHOnkT0jZ4uq1B~hgw}V#RHf&si-8cB=3k?OrvI(C~EQS
      zO&#-!`ig~GOm_eArzw!57FO-L`F7;n)V!hr<V`Bdy=6DN#I02G9hWz#1&*H^)WS(c
      zgSfx1P^g76Z2iY~_7w=VK+Wwx9`DN+v?b7gd_#FfrORdc<&)`g5Jx4)a?T&J`2IA$
      z>Qg;x?l8j=@P^3trr2rKdmpMGJBSCzSiLW@a$iCPUS?9g!peOWi|`t&@O4(-Tl_|P
      zo89Rhru@6C_4lv~|Hh4YAG`4Z>-sp$=L0+_#^F)n!c)SHX9Q7&53h+FydxC6FY=kG
      z1)`9D6Gf4z<am~tBo>RwVudIX7m6ujt(Ydd#dL8oM^h+br^pdk37@!0oF?{))5Q@{
      zCLZI;=R}p2(~qztGH-{9lvE3TEc2YyPw)`ETraM~!;t^S6c#)2Q&MhREVkfhq}a2>
      zW?}?bC%Z%keoo4V8^wkA1t~vvizYmZU$Q;yp@zrE3(&i%_?1OHB?|Csj=7enzrk-=
      zVaFJc$4TWehI{b@XY=tUucl9uDqy^J;di78X`qSU<0%x0@jO8!axrb?#n7%u;(4hR
      zXj476!F{jlwSIlK;uM)Fswb>^WfuD@WwLryZ;5{pe;7dJ$k~dt*}t@okR3jLs^oDh
      z>fjOe@QMcHiX~9QQkr%?W{PE~7R^{7R$`gB0Bc2y750tRaod*ajcr3=CuN6SQcqZ6
      zm(-J1*d_I}6?REIV})H(&st%h$qxJvhR%-#n2P5tO31G(r_Y_uQQ~^&<3BSxoLHB3
      zT6$7uc^tEf@I3zIz?|d2`0c~ug-oQ5G$elt$?r6OiS+U)2ECFAvuO;2US(m~Fm05P
      zQ5w%anoFqHkK&DeawFeLtJ8cbBDQj4wsB*&ryWq^Q{dwX{+_i7<9UL<$CZK^ClUVh
      EAyCYNG5`Po
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/CropImageFilter.class b/libjava/classpath/lib/java/awt/image/CropImageFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0be58d674f74e0e5f52ff8a5c384c5bd06055128
      GIT binary patch
      literal 2690
      zcwV(tTT@$A6#jND<iZJ|K%l2UZBbiDk=Tn^NyQf0S}cW1k=o)VhvYyGhJ;B@q}A~<
      z4vx3!n=gGU9mlrgv<|hjqK*$fDC3jQ{ut}G_X#ONWI9s~v-e(mueI0u*80{y{QlPu
      zKLgl{NgrGS+oz4UjhHcK$E+D+%8d2rbF%|dI&NibGw*{(VB0#IHF^PYfn$K<qJVeK
      zO4(_Fs<dfMrELm_tgL1C3i#Rw`0E%G@bu?WW)N=FXb2)K;BN023qW9t1~00lRIkD3
      zND&QwM{3d#K$Spv(8`)a#hD2+KWa>5Oo6(=T++yl8F@?YONSmiZ50G|3~ruYTp(01
      z?W5L=nJrkkEU$RmB~BUgF%3JgQ^233qBtXy-M-$R^3`9`$E)!;p7h}fftJneG_;`A
      ziF}%P%)D)xjJ&no@m{p8OzebFNZT@(xGY-Wj5U=t>|&m&wNx}a6pi-M)Q>$Z_M}R#
      z;Kx%e*t(R1h+(e}PqWMw+-TT`{p4h}NcIkvB4v#1RBU)++DzK<jVB!&k7OO5(Xb1<
      zS<hL<XLgZ_$(8i`1RDQI<HgxkD)oO&S0G+d_b{mC?SLe}x?pAqZ<lJ&4egT4<npK3
      zu$lOHpX>`CUSP+Stw!jIPBU!iUL27PT`i@44M%ZIAZTSJ4>V$gruM;&_u?Jr<%JhD
      zoB$t@R=&Vy6o^*7Qt2>2FA+I4$*EpWTO<v`8V=!kKF>K0K27h8%toMjlT`U`XG>*q
      zjrVbvo1A2+_!0_9gYV=WvZ6UX)|V@0Q?zTSgh`-U`B^opnkWgrBsrfoQ-ov@Qo%Oz
      z^e(0!h6eQ+k(o`%%n}kJ3l}_-E9R53#fhz9UCVb#ci71%?dF%y!@&;?<j+@H{iQXa
      zRxd5dBxjAg58>houq}EIp=k3GYNIVnsEf8Pp&=UaETM6cS{JrT8+HFMV;rHcKGdKe
      z_3Q;5$2fokjwk*#t9aWK5}_oC#ib;P#;qiY$3s287bP@rQX_SG^bWTFN(5Xu<l4B5
      zHa8xCsZoX_bbN;UQ3YU!bGZyaSHXmm0t$eT&z5Vu^3$P$eo_kBy6049U9_(AF1pS-
      z@k4UyT*d*H3hY*a8&#GGUN>093DhCU3{q<Vw3Y$1q8raLsEhl9lw5dDd2p3<J!M^7
      zfnzf}l@Nara4oG?enjs%!l>n_TP?*s9PSB7MRQAQ#3Oe>J)j5gqVF;;JJRu<YQ6dn
      zUXs(v^iTdC&D|ZkhLdtXs0TTvBB4aYpN{wv-8Js+@HMpQS|p?{r6b{lUKOd4n^OsH
      z_K(hoMI@}03-|w=4++Qe<ih<$r&Minal0SH)V;dqY?m<<SVP<pdj^<emKV^#RmVkA
      z@-F{pzsGuffC2X8Fg}8bdAx;>NzXjK<k<o~#dUm!TlgH`;|u&k`8Qlrb-(J=s$BP#
      za_6m-J8uQ2OP#lZmsRIUX@u?LRnjP4QT@GwF|Ix(ou%Ywgm3XG&XJMbL~)){kVr3K
      zoKiLMzK_><SHmFZ*LfpE>@mDSsRn6uva72QR_rGJA9jO}#%|Z}Be832WcLcQTp+tw
      zSi7sN+E--vYu4;Kt966ye!~jgB)hlB?oG0LgVu}G-sZ`7WcLo)y-jxS{)g-)AA#NE
      LL$I4tH8B4MjRi8Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DataBuffer.class b/libjava/classpath/lib/java/awt/image/DataBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39af177d9298ea16ed882bd001ce2de026945e0e
      GIT binary patch
      literal 3033
      zcwUuN?QfG+6hC);y1uO2DpFu{#epE}18lsEin2|%wS~f5k(KG33eUD@v)HwyF9;<1
      z$v^@LpYbIkAJoJwzC^Y~AdvXQ#1AGWCdT*|_|f>;m*2V1-CZf2;*#~=bMHC7^E<zD
      zdi(ufx9<_r9-8)0gP^uE);X)&db8Y}owH``?zmO91}if&cF{wIprE|YS^3%S^yC?P
      zsw~Kt89$ylH8`G02ofnl%|nHJschxTV^*$WyMRrCnxxao(Ie>-89ow%{PIYjAh%bZ
      zq(-FeTJ}f|rw8PTu?!PWpBx-c@R3_ki-SB8Pb5<#i8!Bj0BRb%GZ)U<g4~l<{*98L
      z#=^`@$p&Ggl)Z>^k7MJeVFI)pd$aj$xgY+WsZ?|fZbOA>+Yjzf1Srgyjku6Et;5;8
      zJyMyQw2K*QG6$?R!-Xj;H)a*HY^y_~{CXDX;o(&!J;?A+G5mJ$VR(t}%~$3InY5o=
      zWb*Y6L9Wi|m=Er|0<?}AdDk7Fkh9wppbgG$Ux3y-yZr%bqm5`u7Jv*r0c;OFBdBww
      zhXci;bs?3Xw$G<4<@C&8p^~32CC*RTXUo|_-cJX}M7gteIj-a!mC_lVsc6bW5Npc{
      zRw|dXXRX{oakesN=gU<neT>png(9ng<{q3mh(7Gnsy}|cFLA0UcZZ`#lqybKB4^LB
      ze5n8(rlYEDj9FT_dp<zNxO1*^R!&erMJ00utLzk!WUmv9(5n!VxZr_-d+7mp+$N)A
      z?Eey@wnN#ZGZRVfS+fF<7b;HkfgV?wSer`^UgJE@VIuBeNW(u`s1&E{WR^WzSH`4^
      zMK(4gHBUG9)lH4CJp8pGFKl0x?T6h|WwU>CmE8inwaN~{eyqw~1N-qRdo39}XZ!`^
      z$&>4PwQf)=CJpO4?84NJ$Ox>Xu$Zsc47VFgwCO8}wi%y(tV9*ypQA1OeRcfkN!rS<
      z1$H5spLd+0LE?5O+>@x@!0H2T#I;1*YJo2y?6L$l9Y+o9)4)Cj%)3tPTr$OWmEv32
      zTv)%kL{ZaNpq*xfKf(*tWwtNSZZm|#y=LUDe}Q^jG54p`YTlxrkUM0g-*JnOJ96{y
      z-&c5bp&>-qk>ge5dlxNu4-&r*4j<4a`jEEK4cb8;Q4iKWx+%H$I}9}Ue$BmKbMIH&
      zdB-g=V23D%om<xPw5n$wK5ncrT~DOVxOan^?$CkpC3^OLRb{f!Hu&`5)76DCSL!gK
      zFwuglV-cgX1TNno$8B)F1O4vOF1kni>AtL?$H}T|i0K+)x`vppAtuMj0P;cVRm?BK
      zhy8muekKw2k@Ls6+a)9Cf0z2-9rVrzgY&_T`QV}XJJg5jp1ZI4Z<Lz;fQ&yv@1M|@
      zpYg-@3wZu2`39U^YTN}Kq5;LD8!O+r(dMps4d@i}TUD@I6)R}4Zt(8f;6LgH57iCc
      zTO0gm-QYMSRPZQ-<+}(^=XbQ$G~~px<zl=v@4nQaYxw&jyyOv0)FSYsB3h~vM0A2=
      zU3NQb*opOZ*&Wu+JqUI@0v^*9UZf+n;ag?+I>$xNkVnq9Fc|2l1Uy#f$#I3-7iqZW
      zWe~lntZ$VkC#IjA5uQwgaXTb_nvQG24T>=MzHsUD8p4@>BP@YN6;KlCm)}NI{t(jS
      zDkL+SWK4d21YW~2UA)HJdUcUrtS!EP;?F)p@#6~jWm<l34gKD3yIM!px5z8rUgf=A
      zChSv$dB-VuEGOudy1HKeqDGA?|Do#yo};?DK7@4rk#&8IPE`$+;b3-NtE213(Djo?
      j(Dk&!wY08o`HZoy(Q9>d{TjO7`d_-9mby+#oT+~RLE(VW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DataBufferByte.class b/libjava/classpath/lib/java/awt/image/DataBufferByte.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b411008cd2ef3b2d1759bda550e09945599e5fd
      GIT binary patch
      literal 1893
      zcwUW^O>Yxd7=_Q+6OR*&<CwJA*lrBv!*QCp355com1@FAq^LqonvEsIgp8Ac*pY09
      z5?Zkbx?v4;+f5g3RTK$Pc3r?P;185P0PE88-nqG%gb+xixp(fo_dMskbH~sBd;Ao@
      zD86zKu~4|`UUw_*51oqNa2LGFgxhheEA_h9s;+iC2eyUmJ4-Cs^SrSTsZ}k+=iKJC
      z33VT>$wKV3-}F0Qv#K;XILqP8^1RoBD0U~%jid#qG|9igSqHIhSm;Z@L0o2g66iwA
      zLhqE{^uAqb%z3RDcW%kEke*t;;x5g)Enn{SqTN~a+ZG0<b__Gl!nS{t_12_?u9A?&
      zO<vp-Xt$)z#F?eJ(x@^{Tb658Wxrdpe$#5XtKyuCYBjc8ueZI9T3RnuvznGaBJw3l
      zihNBKIKiH_G>%rB1+NqI%`Oc}<LFI|wsh3OE<UfC-gdD@9?Gt>OI{;r@1(Ttiv&JJ
      zmic_0PpzIvU=U?)Xs>UGUU!!)^h__Ww61vPd}-mH&Al3tPV$hjmWL(6f4&bjV|zI6
      z=96yp@Vbk4bv})7JW!72?C2U2W&3aRK0>OTdlG+ybono&qP(Q1|4<tJynf6*zy#IK
      zB879<i}Toz3;0MqQ)(Rd0&12)mMmfJGfZ1~%afU3L#~|9{ew>;0#&#%ayMvcRs+*?
      zKZ8Dej~r$dsTgP&QeKl}Ho#d#F^ihnq-UuwmZSO2Ifr&kInR_HQ`X5`pzdObT{P?>
      z^T!mss9Xf>1Dbt<O7=Rt@ZszmWUrEalguB<{z<XRfz}Renei~uqqsPzUCimOXXs++
      zskD7)$By47{SHsdU2=X7rOp^~hUB;+XF{nDX<kF8&MMyU8V<h)c%PdeAc=<*`y~`L
      zYk*k;%$lfK`9f6GA$+FM6?Nc%E@|uU1`~AYS0$YY3beFr9@d-3)i(n;Vl+3lb^D*8
      zW9}Gd4o37bui*1-T%@+jJlWR8D8}^W2}Tk`N+RTVIePhMAKu*hZHvycke!sVlfp4=
      zXB5Y^;&=M}_XoN19KOtrY_Iwv^uGIzYQGLCvt#;wpEO_fMOI6Fa>H@{-ps~J?ol59
      z<%xP3QcoK7r1mVcQ%1d@)i2S#9ES8}_l36!ulOtRI&^%}hLAS?)7rnxPU$aYT<M(t
      EANz>yUH||9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DataBufferDouble.class b/libjava/classpath/lib/java/awt/image/DataBufferDouble.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb2bd40914f29d563115e07f629a4fd586c7289e
      GIT binary patch
      literal 2771
      zcwUuM*=}1!82-lFah&7CHZ8Slr*TUQwnJkQC`(dG;<~18qk<?3iv{AOJ#J6yMe<S>
      zvE6ai(l=na1+hq!NC+x!xIy9xcma3;xIjYu|D4I>*iN00NN48E%>QlkAOHIA4|f49
      z;Jg8!!0a{ahE=rQ>=m7+b;T~0t)5lt*Xwqt-0p8QYy$y-)IARg1TNEyfUi~-2ya-e
      z>t*@wukk|Yq|<VGr|49!nqQ~kbo;U$fge#56POY(a#i}vuNw$WKp<|yK$vIunFt~z
      zFumrq><j(ohTVD5B0U0$we}^ev2Jx7epicu-c_e7aCmJOJIi#m>%2o1qAC!~F*obU
      zu$~zboKteb<fhecmdH?-muqEdV1nJQb~@JEteqC+YN%bWckP~B+Bzs_H3k0=!{-Q+
      z;cN1M;ns9HI+9{sv3qWEfn1)WBW-dFaHay2v|rNc2I&lMa@CoJ-E;%4a&V8CcmOH#
      z=O}-2^+^+X6sVxPRp7s2H3UorP-(QSo{LgZbu^mYfn8dzuyj#zgOV>%h2ZAvLX;H*
      zjnVGlHm#Q>M%l%XFOiGwe&>>1arngk;X9k>JEevt&D6L)`lrs2GrA@k_tVY<BJ`Z3
      zw>s_mXgpE~rvv^?n1#Skn7)HpA^oFq2Z_RWi23P}xcIHa*hkO%sRlSpXjQ~;4hL`^
      zhp|S;yeH9UJOId95-H+h&V!mWAhl(PGqZ_wA(Q?EhkQ&b=@yB1n=L`7ftN`A%ZTF@
      zr17d`%DNbuDWjNpHcK;~<jgA07HQ`5*+Muo=yPtY%d6zlA(z*P^E%-+Jlt8$ohAPv
      z$(@xdT<#-^`z=BWY;n)*o%>zlevi1{C(aLu`$NfHaIwa4^NgCBG_s1LO2vjsJxMC&
      z?sDvNV-vqg?6(lb$Ha5n<2tFClf)dB%t?>yV~Ve-T&E=8@l8Cq3*jeJ{3)jJ8G(K7
      zv6|9^DNUHtR#W_?N~?2tSWy>c!vR5#^&3s&ru2n`Hr)dXnv0LC;$`{G00s+9FAkS~
      z?`d;GD>E>!+PsKIc2E%;hWU9%6$@BY#j9kADWYs4O^-+4Sh)4&5Xf&HEm5r{iW5r9
      z0v=az&#B9gyQVTUJdvK?0rGdxO~*B4T-oE<33by?>F@b@1wOT{HS^I6+t(YB0{<Xk
      ze|pfTH2Rbh%(EqpKBLfICv<Lu#Gv$<QHH-r-QS+ZNoa<I)}K)NdA6j!k!745lltwi
      zFc{H4yQIF1r*}zx7*b%*sh`3#_fGxj&EZT$5K$4@L+UFEeRX{5$3__<h>OYpmHLWI
      zy@b<>Yel7QdQ$&-D4}Uj=%!{cb?7CO71{-rOKd3gVZ?o&RAL%2rZvZO=4VjxTqt|=
      z^ha(akQ7XD&;vf&BRpHevkLsI0)LI5`DcHqTk<0WhY%C9p2Wv>49}Q~6R%2~bN>Of
      C_CgT=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DataBufferFloat.class b/libjava/classpath/lib/java/awt/image/DataBufferFloat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..842678d17b2acbbd475f329790c8bf578856e191
      GIT binary patch
      literal 2778
      zcwUWGU2hvj6g?9=UOQc<jw!^(PBEng$Dv6R2p>r)Bz4`ogtR3zAVnZHt)03gv1B_1
      z%Eu!wrHDUJ;1vn+A+?EwAaA_DFW?WrAAkp5D$bpqOxDf^B+|~^*}3POd*;rrf4%?X
      zCV)}QIp|V2eBHa@jd<_2MrteGQe~v*wY=%IYPHfRE!Vx4gRnw+&ov6+tGrR@S|}+*
      z7roVYiuyjZAQO?3wbfed6j$ZTgYz6t*RNK35JKEV4800YzRbVDc?Xdg6#85^h)VQ;
      zi*7^|4$jn8E3<1Wi<QP}-r{maAvsgO;w{g6jhft>$#Cmht*MZk*}s}eu58wBGC`FU
      zy7NLUa<U?4fO_*rO_ar~uB}Y7o~BGMl(hbs6g$;uc<+mJPU_i6y;^NnT6$`0p^g>|
      z{1XD7C#1kH=mn0S(-h|@#aXJfeB;9TL2-`S^cWUP6%O$Ev^BSzYviG1omsA|`2Lo~
      zx2Ih^hBWJ|nfmnXb1nu^U_x^%A#}rAR&Wh~HpfRPnLLhev+XITOCnvBe53SD+#nR|
      zYyL(MqS!;qGcG1^(tzoib29S+Q=085Tu~IC6lPqU!i!`m`V40JqD)UI^vu=Q8doZ%
      znq(d7*xF&)d3H5RV|RD)pZ%jF?k2|v`6LE`JHWdtpLTIPQgAZi&<5N>_-7ovheRRs
      zQ{*0!g}X?EcuCIvpfL{d`Vez~64A~gfph3b8IR&Tk>#02<Jb@AD1|h+g!5s`8P?je
      z<jig$Q^;n1!Qn0;)pTRz-DXR2HE@~g=h27Pk-;09Dd%HYrmSI-=n+O;nlooOSE*Un
      z=L$}?z0RS1tE{rhC02QjoHgQJ4{+x!caHT(G<Qy`@VSo|?)Qik-r^qk|J*mp{Q<c@
      zB<Dxu{#bJte5`%AC1USWqo_D)R4f|TQ&cguDYg&o>-a6Qe~LJ6ljpNQ)hWxIB6CzT
      zrvg<UGkhzi>a^xNzJbU8gYXWMzd$d(B-mGhQqz_&Z3)x1)U+IEUFr~?G}I%y;ec+j
      z^?OU>yY#h&cKrngT9S{O<Vk&I07ryo#yZpQ2HM=Q${Y-vHXp%>T~s7GVK#SFF^Vyh
      zJjIfPA}%FlczNpW6SuzU0QoJTC2qCEF>bVs;u!;X!EAn?UsRUEvzg&tAb$_+bf1On
      zGv!G%Zg%>4d!8?HwXE;m)|&m~()RZDXn}uF*q;IPUW?vq1WPnw(FY9rTa+$skZhMe
      zu#@30s{1?8I7!QpwEB}qzeE$}jPUhrxLz`@y8+j~MY}`)1Wb1=gKJIatKFc@8q*UU
      zrgtLV54e)BhzYAXVLj(Z!EUJUd7wXzb{e8Wa8)<}zOzRpnqb*J_>=*E(^%foEys2c
      zM3GRjfaCjhj6@UKVTEa&M(1hEtfP4QyLM|-e2>$%W%e{bLq1T+7!oaHvg<gz11TBs
      zA!?DLR%X<iT;`|D$2@O*AZGsab-dhJem@+Q+5>mo;!fZdgF9<*FZ0OD3qD4zg9N_N
      d37qBcu7QBBF$)~Cf@9X#n5Gb4FKL`t{{^m~J(mCg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DataBufferInt.class b/libjava/classpath/lib/java/awt/image/DataBufferInt.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7aacea6dc56efa4c8a7d90f11eed5392bc940bf2
      GIT binary patch
      literal 1875
      zcwUW@%We}%7==&U9d}~dV27KHJ7DgP0|^9%%LI)ego~vJ7J+OmBs!!W8e&JX9qunM
      zGrR$pEgKfhXi%gPutP$;051S90Q=FLzq(TC1PIttS9SGY=R4=`>i7Ts`v$;4oN$n^
      z;N9?V`9uEg&QRF!XM&+IzvGY2*Xu#6+Uz*6Efl_6VZol}jfF(5YN30|Z{8eJ_sN<p
      zq)vp*u=5+M%GLf!4yWg)gEW%Jxah%J3r@MpU;m_oR1YlVTsY{K*?JdUNLg4n9yWsu
      z^Np#Xb;+Na4J`DI&t3CpC;e6^_j=LpTo2n8wvMlsWrTI@@E*%8dh03+Sj>20rjKsR
      z+DkX1H0K+mOw*R-T2;C4k*KFyE&r|<uT`Vf)LgyZ4mxUSu~5xwT7Iv{mnkXoHC5n5
      zdnoSA1f8g3cDcV6*;1n|y|l1~&qqyHyI3O+W!IV6pb<5;Dh)g2VkZiW7V2nf^{9(}
      zX`|C#+>pHG&ss=N%+0s11!qIm(Pdp4los-Eu#|@+!9QPwnz1n)Gkns6G_PxTSLf3N
      z#~qba(M~SFt=O-z?j^F7;;Zya^j7{sHpxrx#9vBd1FxI72N<K;8Dw!5n{f`?aUL7h
      zGo{9HGoWU96vz_h7Q?iaH;+tj0mX_}e2c9KfhycExl6QORs$1se+fBUMiG;WREjhV
      z$<rj6ZR0GVm?h0@(zDc;Dk*Py&Vf}^PBUe|lyx#^sCzxeE*W--`BRErQZ6F)4$Zzp
      zC3}(G_w(#KWZxzG9+~&aexTTuNNW|g%y^dQQC#fOE~a$X^K>!rM%q5GYR7*k{STg&
      zKgoF*OPx35JjvaPoR6j6t$7Wdx}bRb7qI6Cz(?Ht7;Eu_VozgH3kFy)z=DZdkPk#f
      ztzbZ-htz=sx}>cy3?}N*GbQat1zK7*@6(${)Hee-VzfBCa{J%0W9}Gd4)*I~KB(v`
      zU1V3vy!xh#1M0h#%_kX25UxZh@-lpN@c9ajcQGrjvEt&ewsHW!XtfLa-Djgr9)}~v
      z!LJoR#NKn(C}wpynH|>e`Iz~dFS1(dGfPgri%ah|t?YfItxqxWj1kXhyD~d&#QU`P
      m6&jZ_kXvrN?<>G(dixSPG&uvv8TUEuUS`Mj_wlRJ8TlV~a^~Ft
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DataBufferShort.class b/libjava/classpath/lib/java/awt/image/DataBufferShort.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b126b07722c0cd0fb5cc6aaaebdb58c9c0b2dba
      GIT binary patch
      literal 1888
      zcwUW^U2hXd6o%im*WNfR#<+agwF4&5)^Q+iQqocaRh#l<DT<H`?uDg_4Xl%e*p_UE
      zmajhm<*K(W+;YK1D~cka!W}pKg8qT>2ij}IduAt-CD4>a+L@g>=Y8IDX4WrWJ$VLT
      z62~3HEbO`LUG=Ko4})sZ_7?r>32)%duC!WyufEjn4IJ1O^8XoQ!M?;73$bS1!q9@(
      zxpG3i$D6W{JQj3<!B>nb*TxzgzU^M}hY`nC7b&DIIOQ7u#u^TiDOlL<!oiTtK5&sh
      z(!#d6pySW4v={u|Id5Uvw~(FdUi6k5UN4Y$y=V`Xg1&{)+~(EHFtQ(9XM$C;kSGgU
      z>=eb$2>q6|n;{m{S!vI*p1v$M>&kyhiv6b7^R9_?E~?dJx7F(V1GTgksAf$q|B1+#
      zDJk+z72t$9ed!#nIE(%uY@A&llg`nb8f|H*g)Q8lHO);hMm8nu<g(um`&*N~9d@xF
      zdDa)``qb(X7h|X}p}&?8zv?Yp7_N6$dKdjuf%I_4hGtDjFL_TG%=;4KKTkx>*dLBt
      zxs$>$pIi9W;%<!NXeCjw<EwBh_ET(oj7+8QXX-Jsl|PV)^O3Fpt~7S=xr;f#NvfSf
      z2B)zbXRr@7>{NS7jpJ@W&2q?-CCm>E(^lS!WENLZs1ys&u_q=_g_|OGot9-ZaE|WJ
      zV>=os;5$Vsg&Kxb)Fheh<t(O{CC%*6v&5GwiQ=1ej&E9}&njE2a*@m>>IM;Z$*@bT
      zKdIOy<sxK{YW9y*ve(!n@6WzQ_I0vvka?5rTZ&x?wKiePjJJs%#l->bVnKI3M;GJI
      zr0wIIcKkN!cX(TVBIj<T>YO3xNFGw;T%_ucG_S3z&MV%bRebzEz+agBE7G_}vHOuy
      z^9GnVz`Q9nFQ14ibsPsZx~eW5kdU_iW-wuw9w=!y4A9b&d`KtHsBZ>v#Asn^WBQ}W
      zHFu0N2NU|5SMljPTx2%NJbkB&NlfYFuUV2HTq&Wz$7dI&A8yci5wYSLD=wzBl}UWA
      z)#mltXTq9_9KI+_ysh|G<eW1`F{6u<*|a|AFU{9{meCTQUUypjxv_q@!^+>^yh$%3
      z>S?2%)_!Gn)TobW_3!CiE<yH9=Ob?u{^75~zmaQ`HH573pVj_lc2s{MGfL;!YsA9r
      AW&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DataBufferUShort.class b/libjava/classpath/lib/java/awt/image/DataBufferUShort.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..addb229f8cc171ca47beeb1c447f90df381a32af
      GIT binary patch
      literal 1994
      zcwU{9OK%%h6vzK#PcpIN+NndSjh(b<3pjQfL!jl6Qre^`wG>rFZjF#7#3UIf1AZVs
      z`r@%*31!8W$CgDGAgChI2P=fsZ@?FTF92KG|G9H}GlaC2NTiuF_nve9zjMyLzWdM5
      zcK|$(MF$ZJ``&Xex@GrLzwEc%b+3HN?Yj$uM#Jk~sBUz+eFwIM>_eR_*lYZ-5UE!!
      zjI6lr_fM(sXk8YDkNIuCf1F;0%5;sd#m<@+M-;mfh#_ggDOC73U2`xTgN5A*I2aLY
      zJb@t$TSzVYZSU-$wc>TpyDLr4LVCHg>Naa`*Oza-X!ke#o`tF9$CNWq*Pefs5mv>*
      zP(ieXCoen`1TJWt5mwV4v=&%UPnPRdwS2(Bq>^a5?e+56L9=<T<G1@>cj@w~_d(z9
      zwBwk<A<6bMn^2IVW746M-L88@>SZF;is4S9(ewIhNhPPFvg#UXMv@#Rh9K3IgA>H`
      zq}{}K*1dkvZM!fn?PfjdZOa@ijB<a$Ok{{YvMEtZO|KOUr6SFKC4mC6QQ+P^HpbVD
      zQCr6om_?aUy$4azi*D0GyxJLbSH07|bbrtGHqT0rc*f|>vlih$hp8-fmhWBMi6PGC
      zD8CxqjqrV-Xy@$cCK5&aHc~e*R?OXs-9Wnd6UL%^q^m!u98d81Bx8UjW;=~Byn($q
      z!^T&zNA0O>eD4L6l|hzTqWP53v=v*Pn)yxSiuv5Hn2d<1lAELMmRg$Lz<JVNz;4u#
      z!&^#ee~`l{<+YMn`)Ea!=6<dDDVfE8rfBC?ou%I}dJ|J`Z{pxDrsmQ^DxRb|u*!<p
      zkbuXv236Ks^#)4tLp(EvX9mx(@0PMMhUZz$bB#Rq1D=Wh$8(81m&tR5YgfthA$dL`
      z&&P_V803Ehk61i=<QB4NO}3(^lOb8@j*O@D$jN+0iqCnfu2JWUP$x1*IYZ?UrJM<M
      zqNw#+x)WKYcX$(}#|VDK;IEOyH%#_zsMM?x%o@S0DK#s1NtODXx*Q^1RtFOplJ<UY
      zWP&bzr&1>Z2c24i=XCJAx?6xFpt-s2;Xj71gJZ}Xyr8eci#W0a#n|>Vw|AsCikEco
      zB1;m9l$4O;<K=gcq+k8y`nEK8Lo_KvlVTA8%~2fF3E$M?9}mjP^YvP8cE_Z@ho(Jl
      zl8);V#hTaCe%;*tbMzMf<Q8xK%i7k6;|lQ)o~J)U*^?%FQX`9X!epP&+20|&9EJ41
      g;V1s9@E3ne{tg|Uv{6VK{<P*7>x8~1Csm$>`^;Vm-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/DirectColorModel.class b/libjava/classpath/lib/java/awt/image/DirectColorModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a149ac6313549bd86f597e5d49f965953d6f1b32
      GIT binary patch
      literal 6947
      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
      G_x}%~VN!1Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/FilteredImageSource.class b/libjava/classpath/lib/java/awt/image/FilteredImageSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c9705655d5b1c746b5a63c7a5f0b1e2bc0e116b
      GIT binary patch
      literal 1902
      zcwUu~*-sNu6vn?>3Y9WY_F`+1O`t=y?x27RAUiHVFdCN(?WGKs8JJEnF8_!=`r->O
      zB%)Ch<C72mQO0wpmtlfqjcs~+mvhhWJKsG&e|`A|;2h>c2rzVQXggY3dv2%oO)baM
      zlX~9f7SGOz)sk7XGCYJJL%kE1*Nj~H&gurw*dbIgoH%mZxpmhvv&9Uz7y|khL;HNW
      zpkaopHHS&rd?QPWD6TqV8inE}w+aj`rO=|S=hM?#VcphN^IYT_(GA_c#xUAn9$OBT
      zTww@~n^_)41sW98qLHDZKe-Y@GeeUPIgBPWRD&U^pazPV9aj*-F)@oPs79C}GOru_
      zc5!o+Tg&1SL*u-e(ef*rrHi%P4BG2DRoHV>q0h@u!8KYoJ1%`;==87pAb=_pO1l;G
      z;1t~@Lv2kr3UmAgSt{>(-gr3qFpNGVL+EFS{oOGIDh3!Da@;O$%oqh*Gcr`o$iEbo
      zdk7)+w1P88lmA;qn_<XDq>t=Bw`x#{a|$}pDcUmgx3+Y3F|aj;uwM8Na~}%5Lkh0o
      zD(NLN7<&Co^;b8d;1Vt~)LDGf+;P*2oYxiH5IL(#M<RMm!KkPuLPlG5sjY3@G{o60
      z1>@o@Ve#!EFWAfG)`a=onCENuqMlo~7kPmjSrIv{U{XYeOZ`N))04INblMpq8J*P4
      z74)m55u&{zKGfXKKQ%s$Rdim9IvOLiTBk@68&f}_Uj2%u2cOWgk5+YHA8l%CAF(|;
      z4d4Wgt&|tIiXbl1-C;Ci1jnh$1nqW|vY;I&9ahYtGiN6F0n*mt=o8e}lB%j7&^quD
      zU2hQFqj`+xy$jA}>LXJ3Y1WqdjI#k8s)$hqzywuui|Uy|3#N%VgCu4>N>o>giu1TY
      z+!p#?luGCwrIH-2MSMak8T^jEh13t!N%U|4yA``Gypf6r?h$wq^;kk2%N}ULg(f6a
      zL4yk&b<5`x8kf*(5?U*vH@)?ikdG+UV?sWm`k#7`aTghPkr9bxqRS-mopgNc!11@}
      zE^GLEM7);Bg9)#)c6wt#r<d5EUU)|9JO*H35L>v3ZAYc*s2_7xj!Bixh)R`%bpJr_
      nq^tL_v?%H$V#+I`&Ix-#Wxu2bedVzx>O!NgHHWAfC&TP-9(<2Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ImageConsumer.class b/libjava/classpath/lib/java/awt/image/ImageConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ee56a733d6861d77667d56200574acf807802fc
      GIT binary patch
      literal 816
      zcwU84+fLg+5S`_gglnKT?iAXhl!sb<rmAG@O|p_>N45o(cv@hUF51}0S-1VRKJ)|n
      zQB`L*K^TPKWmo6SnKQF9`}g1PKLGF<4r?$)VEdZ?;12((9XaF!;V^T0c{VDCqNu?P
      zfu>a`o(-Jn;#yp4q+&Ppqh6nVqd^q=G$ue8fhCitd8SXfD#bKbA*fBGz8{^10d1!-
      z>vU7YW8qZ~4Fa0d#B;-dg)}h%tT&&quoKX}n^>k!U}4O(W4A{Q)kG2NxgAR5IKtX1
      zmAD^;)G(==GS7+(W3r|RELy@niQ<&{*zZVaUk*h!lGr$b*%o6TPse<}$ZtfUr9ghY
      z71$Y+S}Lc@N8dHSP~zA~8;KlbT$hEwQ9dgBa&+|d_}10SRbKS+E1?MNPULs9zl++0
      zIwo{wrm=&WmTjzI8k4_-Lh2BkW$X!y^ONywo)@yov*mdA!y6^EFpJ2`;!?DwLa=u4
      zV|+4hbGUUdlWo8T%)%U^n%OPX5jQG$9`Qm2FCt#5;AO-s72HI;`oM4Pf!~V?eu?<i
      tJ^vd1qu21p{-<?}64<nnEyUZfWBFa!v-exrpWFxberI^hcyBX4{09+Hr_2BV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ImageFilter.class b/libjava/classpath/lib/java/awt/image/ImageFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9f4a2d15ef1fd1e8d6d81d558ca665eaae20bc1
      GIT binary patch
      literal 3039
      zcwVhl+fy556#somAR%mlUMQu|+M6{5D7M~e!CFZ#ga+C|OYiCuHeuV%?sl^&w6@-7
      zypBHk;EX=|pbvFMsn{8%PddKqv;HHFzi)R5mn5_gGQ)mnzde`VIlpsG{`mLjUjXdK
      z`%#1hwq8?js(tE=+ou=Qyw;bN&*Qq`YEBdpffnz(p_=)=Q<K-UtQ$qWKxZ|plw}r6
      z1!)%(*tleuGAvV5Ck;&?mJM_SwrAGz(JxRxpqsjTSRkC}nh=PjtSK#yFq#!KLTP}&
      zdIb%L3p8hRQyVQ6CN<}*A7?|x%BseM>ge)4xQw{ddXd<x2KG~C*v*bs)Xb@~mVMNk
      zF*91u9n<sEuE5SjRm0PcHC4*ev}>Xf?dXVNYmNFWYAWc&Hi2!9cB7;f-PMuCy!bWa
      zl`ABR64LEjl`P{DsLM(Q1U4nQGOOwAmnGe;U<Y<a@uWc8l0w>KMNHK=<~WuU#~w6C
      zkr3FkirG=i9WU9o<+$3^vDvI<ySinPoV@1xMNOMUS2eQ)Fz~39)}kg(#&^q<vjQR~
      zu&$`NNA-ec78#Gc)+N$u$w3|VE7*rV-puGz?liU2?51hWr%{@*Hn!%tx<<1t0j83x
      z8+}7+aoUyL;#Id{T+f@TTXG1!v#Q!aGI^M)aU8<#DEb%Mex*_jF9}3*UKT~E`m%x}
      zc!iD45((^0RFYDIr<8)DIL0w@t#Q}U&HQRk{o8&S<b;ADF!8WmVvvJXf;?8(C{C_e
      z0)B)jMpm?ne>+&xjVX<-GK^CSPU8&IzNs1|?Nsj3X_ld9FfJ$jtUzm`^1Cc{1``U-
      z;{sV#ZQC1`-fF59R{=mTNJ@6fWd+aSd3K7;j$kviR_z6@j;v+hVk22{wN#|RrLl6~
      z+_D#UPJ7L+@jEeP8J07`&1P_pE2d-VYro&wIR#lT-MWHr(y@jG+k^pzbkk*Gkwh>X
      zh5{Ye=pkpQd46b+<Dk!KMp06f=HD7FFApw`*bN0HSPe1De_5Fs{&Upo?Z8*)@*v-=
      zT&^g4JXXxAoYULd;{-`B2Du}H+?KxB$Ln-|RTOMPb2a(-Z3S=2RO-22+!ABP$E}i+
      zmHUEmT9)mOeKHz$a)E>qqGgm)ME-X0hp>?{e^2;a$F~7~7d+$1`)EpvAJOtX-$K~H
      zXA`Y~1GGFy+XL9hH^tY+CbaToBcLttbc9wRp0V!aJhp_e<R|XkpCpQm=VP<47x<9U
      zc055ZLN4XN+fab3iMV#%JO2QCF5bu9U%k5sGkR(T#tXc;gnGQX3}aInV;7Qv*K@Rz
      z`pwBXbT2@R^mH@ho_niOzD`I64GNyS9ll8!ZZmoycXNyh_3};v<@yamj8a?bE6E?w
      z($P7Or^6McxI+T&F7vIFeJd>UGah^e&r*`UIj}rm@O&KfV*Ji@BRt2t=kVeJ4vq9|
      z7?{K1(ca&%o+6VQoWt?+-=M4aA%?%iE?z!B=3?&xhJV87eT?}k=jL!xDoUt5^SI=b
      z7WR<tVt&8}e16D`KO)+XNzNxo;8UEyXE=k;y$q5*l5z%PxPq%*b%sgDRbp;N3a{aH
      z`c<(=j?|j;DCc+wl}iN;)F|O}&qJ&1p|5y;y{v~C%V8Ul$F%2=(_YPC$2_iAI{cRB
      zcQqUqJSK#k`@rEB9D@d)Z9cc#S|jas?e(qE*4RAkh6?8kbo$V9e#JK{J8y#%(A<Wi
      zN3)b%N?}hbQHpqy%&N|lZeoTVE~Qz1je628N-+=O?Z<%lMkT~Q3GuK05#rsN5Z|mx
      W%UhMS{LS;98nnC<(DJTl^WJ|Z%6T3D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ImageObserver.class b/libjava/classpath/lib/java/awt/image/ImageObserver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22427c22106d21669ebcaf754a6af720f69f7921
      GIT binary patch
      literal 438
      zcwSY|J5R$f5CGsiph+JT(()>gfsrmm%q&eIC6<C*IRPX#w^&uHkfJm#E5D0@AHa`7
      zoGk&ygQf3m-@~6@?;ikg0mm+^A)L(QO8WA(^rz2qqI{-zK3b?^r3x1|5Il1ulljEw
      zqnR3)2$ctRokj@A5Smx>d{N50yqDQhty5}5aH5diM5z|ls1F4nh9YHQq9c^En(*7O
      z&r;(mLTw;|zkr9}266nuQz{q=!G%VT5cIh)x!({PrtQ0zCs`_l&RP6BkD26>>D7It
      zCX)HG7^}fFqkHXtW1j0b4vhn*9XNyvI3!oMZ(OrnCpRo_lAD&d$lI1Za?5g?ykmKn
      Uyk~hIkbdX@I{GW=OvjGC0ofEq%m4rY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ImageProducer.class b/libjava/classpath/lib/java/awt/image/ImageProducer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7582dfa237856a37b5cb87f66042ff3d6289817
      GIT binary patch
      literal 328
      zcwUuH%T5A85Ul34xCk20aNs5vHk>^|NK8m1XgF{icH4C}?2OLL!oPX&1N<oB4v!EM
      zFZQ7-om6#oeeXZN0F2NHP$6_Pu@#Znxk%<B<>=Al+~}l;*#xK&ZV!r$P-*nE&Nz02
      zmPnGZR<_955c>DCzmA**4}&Ekl=dHn6`^A|*IT}rZmbi=9Y1qYD?-okN5R&;==X`<
      zsTsezg-qYvf-S40%zV~`iFqnFOt|}1Z0PeF1VR;l>SfP58t{DsG!J}r+QSpKJeQ8^
      I5-Vu`0Q#R;(EtDd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ImagingOpException.class b/libjava/classpath/lib/java/awt/image/ImagingOpException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a45bd1cbdfa7d8991e7ebc4bff1335a70ae92de2
      GIT binary patch
      literal 447
      zcwU81%Syvg5IqyyL}F`ewJmg4-1q>4ZY#x76)Hi&YWKJCQm-U8CAm?5OE-cGKfpim
      zXT(VqU3B5*%*>fNXJ+0%U*7=iqwT;VbnnEy@Wg}hR3v878!;+9yO^Im26ApxtR0jH
      zonkB$dgfhb+NenW_6hY=CQ5`8nWS7_kB$j+MyL*Bof@IdM1+|v$3f>q44w}N_My_s
      z^a;%^|Ic@95?<Wfo)AjI_(r-|!fFLBRtPm;X?dPSQ<+?eX($N|KMr`M;Kf}3kR@}g
      zQo^SH?^8X36Uj8?Ztk^k1;HK1SrW)ol^eGg9rkh!x*$Fij2)C=b9A_}u*@0dw=-6l
      q=`&|>w0Cx2P<<+9YK(5d9<g?SI%lo#DXgIZ6xlj93a@6NX?+1P25aR2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/IndexColorModel.class b/libjava/classpath/lib/java/awt/image/IndexColorModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c8f917f7d596877802239f04cc6f75cfef0fcb5f
      GIT binary patch
      literal 7385
      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
      A0RR91
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/Kernel.class b/libjava/classpath/lib/java/awt/image/Kernel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5d70f5df004f655ca3f5d3a98d72102cb04a2e9
      GIT binary patch
      literal 1509
      zcwUWDOHUI~7(KVIq3uW&C@3H*D)s?X!8hOwB~~k_5R?!XLwnN>na(uBRK)lvG#X8G
      zqcO&X3rs|enCi~NA7%XRomwh%;bLaK=Q-bNe*OMh0dNeL6nGe-i`soHr7b%ty{P4R
      z>N>YgZYc0E?36A;GxMpbg+-oq6a*MrH?8A_WpZu7;0*p{J?9h{SehYF;CjB`F!*ws
      zqcM2qC&)Oeo4Rw3L5Zc)^Aqt|hR~G<SzdB<%Un{hlc9GLIc*p`uNfEZe7VR?rxr+<
      z<5rG`;6<wn6>SXOSbR1JhISPSnuN4lMG#FPM9?bKE)^k!L)eRb3VQx&YkFnL;YAhu
      zaeyJH*|xTlwMr`tiCAW9^CRg7rnKlIlF>~*SuQScd&ZqcOUBA-#;j)RLa!QqPC;K{
      z=*Tpj_z2A-&z-wdww~8b*;d*$&HXhsk#ff!bCATV)hX{F*~Pdl#~p~#c;_cV7(_}z
      zSjABsqXlKfvKZQ8@$G$xc~b0gs;+JarbDQjamBVRJA`4hiq|O>r*VcV5bGS*%1eaV
      zUq7vxf^98}jz{7RtqQ2s$fifaD;Q%qwB@oUEoZu1Dp|I}b9EQMh_Ns8Ke1w_(^lEe
      z@(EpRAncB5P~_qOoraelKfPPT>CjKnA`VA>>0;=skYB|Pc+gCmkF*GOk@Ok?(txqV
      zI$9E4YltSg*U&Lg>FO@LM!4%Gl<rpuZy++ajy>NKWd0UdL+5}u@d=$?Qoo@4BLR5O
      zOYdGudW|4&Pyv%fHiaJCL?3P;h1(d#G!9Zk!X?Ea90sH$%4Sj$g?pqVO7~KkeK<ls
      zQSLB#L{yO2qrRNq_)wz`NXI=1uew21_+5xK1n6i4P-qAcuK}d!D|~)Y!PaEEF4<p8
      zPBcvJ*qZ#PVR91v+m`l_{9-~w$)9Kzd-#lj9~fLsR)kV{Q@1a%q@>(cg%*`ut#Nh|
      zEAW_5pAhO(?7=fSr04XDy^wXZy9~7r4aseY^64k6wlhaDA}UJ9Gqjr7z%Y@XNPfo2
      pA2|D6HsYgFN2`?0v`pYFS>6%(`#PFvl_o%?oWprZb3vAR@ehwb9C82v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/LookupOp.class b/libjava/classpath/lib/java/awt/image/LookupOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..657be12c04a8eb7eba9e33fbbadba8165989a142
      GIT binary patch
      literal 4856
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/LookupTable.class b/libjava/classpath/lib/java/awt/image/LookupTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af0e68f0a75583461e171be6bdface4ed16602e5
      GIT binary patch
      literal 688
      zcwTi<O>fgc5Ph3CapJfngnp3(nsQ2Vz~W3*2~|b7SS<(?gmT)1t=VFGBgcmR7j8ZG
      zQmIuXD#4u}g*v;5%C{}=&d$txZ{Et^e|-50;1M=$6c}1Z{3G}Hr_7Tv4}}*f^&y|W
      z=Hp1%uoxPq9`Pjf4#r1fk};Ik;o(eBz<h?KB#(DgJXMKEvKbY(WFoU|hEmV>`$Gn2
      z_jn?vnN-QlhRg8aC!rrjBIMDNG|Xc{-!w8<JL;WqP(<BD1r3H`uRnB9L%j-yJ1$Bn
      z>uAM=jWR<$kcrsO<FQE1=nTz3O?Wiqsnq91(#qaTnz0l7-}Ga$9ExoJcUL4&UaM3%
      zSa`2R2J=E5i-@7p8~G!@KcXh*mCDnJcq+AE;}_<KTGZO4sf%>~1^UPY^kbXdqPK!7
      zRUC674J=WVQbr@XgG=0Me@3NaouGDw+S^Oq{x)b|pgHJVVEN3juF~2ve7nT)j2L{Z
      zV2^Uov4H?<nrY65b=)=jT{8(Yk)EYMaSLr)wZ2EYu9XJoSU$ZGnFC%LLU-P<AfyZa
      WC%E}1_|4y7`s425z9HE#-Q8<I9efG^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/MemoryImageSource.class b/libjava/classpath/lib/java/awt/image/MemoryImageSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25ab31a45ef0ab1f09924a7e9a8986a3a5240bc0
      GIT binary patch
      literal 6116
      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
      J2Wq8P{tH{(qTv7l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class b/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fae4aba8559e298bee5866462bf05e358fa8a28
      GIT binary patch
      literal 7107
      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
      Jc!wtR{{m0m@oxYC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/PackedColorModel.class b/libjava/classpath/lib/java/awt/image/PackedColorModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d90ac3c4278e13d6bfd27582276a16fff3173dc
      GIT binary patch
      literal 4057
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/PixelGrabber$1.class b/libjava/classpath/lib/java/awt/image/PixelGrabber$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f12bf8d2c5c4d9ec3653190339a8343e75fd9a94
      GIT binary patch
      literal 826
      zcwT){%Wl&^6g?B0nz)n3P0O=M9}pl(5ovZvAU07!kpikjl`dFKoKZ5!8ApCV|A=*^
      z0)hn}z@8OCh#x`RnM9%jDGOiUIrp5oulf4>^A`Xe-1ksmsJ#|%L|eSg+G;AsvVEjZ
      zW%Mi&!=X&-9S<%;U@4K%<M#0+kz&NKl1)@vKOlL3iT)80A1kf0Ck(rdrOf7l!R^K)
      zSp>r>$0e-za8Tm#u*Tpt458dtTE57qBsdnsNHSFVaVVmJNR&A*K-Uz<u(K>-y+g%0
      zNv?~yf@>bGGHflOb6m#_hJu<gZ2x<2&)B0R9_1l*vWhL#JX9H~%Xl2y*rArvOeEPH
      z%v7uy_Wm1`)pcW?=2JT<pGw~2xP{vcB{dIDXOYZI?~Pt_;NcF##^0?So`!NZzukWs
      z=Se7^Dl@3{i!DAdd<NdrS|;5{q^YDKmJf9p#i`Qc=Q5kbBaVHukCH9hDk+2mTAD+T
      ziUon$9C-!$JX|KcNZvy_8^mwzzbEq%{LFI72D1@Hx^D=`<K!E39TkgjU~O^BD`J{h
      zt#uCn9Gm9%2{#LP2YzA>-UsZSSxP{%`XWIEF4^yd{J<uDqKaP^64e%o9Ne`f-9y8s
      OXEtioO|mYHy!8jFSiJ-Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/PixelGrabber.class b/libjava/classpath/lib/java/awt/image/PixelGrabber.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4797bd79fa28fbd5df562ab967ee29695e0cbb4
      GIT binary patch
      literal 6014
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class b/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f456ec8235839b4a1927768493aa5fe4085be37
      GIT binary patch
      literal 1024
      zcwUW@-%b-j6vn^lA1GyQ1;t8Bv4Ve~ZA!esXbm?crZpfYB_vv-PP+pgv)wlB7BunF
      z_b^_0tBDDTnm&Lp;~S{o>_P)vD4WdeH>YRL_d93PpTEBi0o*}x93g@HYq>91<bk)M
      z+j38>Jkf8IQ*}MnbCldyc1^asj@s<l${9yQVDU`;dZ*p(xXSfTBnpf@(608@1ma6o
      z^VF-$I|7k){u)OZ6BeQv6G(1oS3MrI8>+W08;%l~-sm)?vm<-joR5MLuci9}#f|f`
      zmIY$A^yK#2E(?gNK=eS{UW;fgrT1E%z+~54uX#OfGbPb)O4lLIabU6`U3+VHx34^U
      zhw3bmY4()#lxbOdnrNqb&au_yvxp~=CLl0tA%Ub(84J^a%38P-sB0E3V<t{DA&?5(
      zYJ&z5&N$Wo?{ve$#h~gf3sXpP0;VJO67LThqsD}0pw=1mn(Co8!_NI<swLxz>#P}u
      zdBRlukle?4ddJ<o6Zy<sb|x|togF(w><c3y#7*44bq_Jz#|4xz$x|h`0gDm%isNBD
      zqlnL&MiJk?n=m6o#8(^{y^Z3?e1<DX9g*1dF!|~45Kr@8aWyl?J<Vm_^M}ZN9#KvE
      z^(xd=>PM_n@yT*Qg%MfW=Mlb|^2r1zv2f)0fsUq5xiI_@-wdyP!c;M9yb9S;Y3qGh
      zWDCQOe|{bFa4mA(Jf<q1LRw%k;2GPi^ZcCc)iIA3DB&em@d|gT4Prj993hr*o4Mwb
      UtYV2OM6?u^{o(PS?$<B;1vnSX5dZ)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/RGBImageFilter.class b/libjava/classpath/lib/java/awt/image/RGBImageFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0573de77c7725b43feb9c3bd672d37e6ac4d05f
      GIT binary patch
      literal 3344
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/Raster.class b/libjava/classpath/lib/java/awt/image/Raster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..054d9b364a6e519afbc0045cfee28084204aec82
      GIT binary patch
      literal 11880
      zcwV(y33yc3b^h<{8a*K)G=|Y=kN|<D5t0CdYy<`aT984A&43I}G?E5s%xLjwWF*H4
      zwnItM#HpR#al8=Y(k9f26C_c~v707w5~u0n?py3SX`8n0V$)`^+c@Xkd*{vQ=?O_V
      z<@=uQz3<&~&VSZ>uEdMKc;-0(YsDci90GycqjyGYqbF0f@xEwJtag8NC>2Y3;Swm2
      zpAymjp4zs~+hbiRf!v{J-(VuvI?x?U2$bx$5Ff~V-6Y`ej;5m9hmRkRB?Us(y$$9^
      z+Un|y_a6}uEo#~>;654ePW1|SdSmgPUJ@P15`8ck?H@`+Q?Vm6ye9^}{^7pu(f;ls
      zfqa^>xW+`RFV>%;H=e<0l4b&nt+15-1j(~G-XBkG5vZ-WlA4)sdk5nEsZEuKNQE8r
      z$&V!{_97@yJTtk05K73>UC9`sZpgA%xT5k37V|@3sevMt3fw$LeAAfNLC@bE?~m;n
      z?(2*t4@Nr^F@eI}16|R?p=dJBYyHxd>W#A*2a@rgct0s%<>kdHA~j#`r|6+LO2l$d
      zfruBC0t=>67^s4uB4C7fR2!&~t5LS%8Ut&wjy&2EOC45G;jE}^;ZN%gY~W8h^l7II
      z6hBttdbZ3B0^W)i`d4{~tyRzO$gRWg+*+nG(=0ecFfjrrZe#>oB=$o&gy<#%Zg_aM
      z-GCRq96}!9Wut){_<32)%bf;t)$(Qo2G7Xnylgd)r<Se!W3Pb)YPsJ)KKyK-g9dJ4
      z`{a^+_UL@z9fu7Rs2%MFZsi??YDadO@Wx{X7AmIiGEj&`WYp;XSWkR_oL*#S5_)Zy
      zkd$dE##{QyB8gb^&RDmyj=%=#rfJb=HRj=DJjKzcjml1q8R*1ufg2=;mZS4#LP5nv
      z>fq=gArvR+q2O|Ns<PorP~@kis=55C?fCJb7*`L+QL0m-lVW(NE83r+j5&}>#=B!)
      z+##^SB5}t+-{3$$*)uE7{20U#hXYk0e;T`r(>o2E#0XhYnQJOu^7I_TcdqK^4#r1f
      z2?d`N8|tG-P?9-T(mwLyy#i$xUTVV>t?tJ40vjuoKJ)hmGq{({avuRRxo}xx`=4m(
      z?~ZrHhD?Neqg^L5QB+rPRT1FD2L!6DHjQ&E?`6{{Ayc$GgAXytU#AGE(4M0T#1YaO
      z9Xc_jp<G==f7HNl-~pAe9F^PS9B{6RmdX|{J|?hSvXEzTOCk~Li6*usdxkk(8%Mfg
      zgB-1XJct{;_@qF@BCmBgk&4fx)hF0@xt%0$Z!F2a<)fJNp`lZP5OJz3)50&SLS9`8
      z`tb-J^Wsr~;Eb#dJf5y%4LV)fSfA%yc|xFfj!7~52{>!M9GJxbR}=OE`)1`jU!EML
      z=Q&D$i$b#^U0?*-W|1^sIRb_b85vi!RJobX%8vgx*O&kt-JM>1i8`h$BK6}bJk16P
      z@NB7S8TRTfFgU&0GTASoeFtn#v?DWrqV994G6NTXIzkAAwU95HF4CqPJY!%I&(c9N
      zRTA-^PM&R8KQ&R$v9{0CaaPeHUB80IImrBd0~7d$z)ICU%^Cn3vRs_$17@dlC22Fa
      zAm29d9ekIr2v(a-(YVYG{?rRcKrt}=(7mHKo}fAwvLiKd<aF__R(Sz2=j1|Xs%u34
      z9Hq*mp(%dLRDI`^nt`hqe=1OJ`>kmp*%!@JYajlcs=8!cmXsUHVk4;-H6Uf3vC)D4
      z?lN^%@#7`@C42O*NKb8Xc?|H`-QOd7%q9361AmLZGn=gg!<|Exz$vS+K|R%sUM2B}
      zIpf<DA8)(kLn)Ow+Xseai*!wP7-lztUfQHgs%OL_pU*V*4du5g;Y;vO27bh)Jx`bR
      z^z|oSuQOM+ii&h~%DR!J!z}w1v;8*%KgMeUJ8X%rP<CwikqQID5)5C4Y(7V_`qw#N
      zd!4bpL2dpFWb;MG*CJhfxgR0-9+h{apBT7|pQ^miK0u~(<#yH+-<C{9M>UV8%A-xp
      z<1Oa#znVwW6?rrfkK>w$gIAJKL*>y1Vk87H5)RF%;fjnJh*7u6s6kh1R&XfYEvI!9
      zK0~-gPP$gjuB9f|>Is9%^Gxzt71ZQur3#pQp-DcgS~+GFCl#4SUSdVS5QX9zT~@Bd
      zqb2(wXi5x3Q)xa@n_@#O7NI%tX;S&6_%sX*cV+-dy-E#HBFg5#h;;IsjE2%pd&WKG
      zhFB(63am=MpUppM25ARXFoVhrgIPV4W{`H#YGzQKVKA$Ye5nCdQRxa+k)3b4&U(dK
      zDtp$~ii2OQ!Hsm)7wZkNLDZ?#+>wY5k!co9VJ2U0@{1cpy;p1`cUV3dVw0#<wR2Cj
      zFGh^TjfU7FwvwNsgM%^d&R5%=0@Ge;-F#vjXHx}p+QFO}<gs{#{bWqB+9!6>5m>pp
      z%qMQ9N!dslGuX`xS}h1{ik^jI8*#ji>Gv6;hSl>VV?%T$p+;&ZB8smA1H;L#SW}#1
      zG*=y=HM|?ks8?|U$c2l4kwP;U{~AS(Iq=IdSC57s^YpktkNJ8m(Bncq7Ge>N*U^j`
      zMv`+4ty*a%<wdHh#<6(y1j0|#(t$Gi>8BC6mByn44D?PxTP_*#j3Ej+TY+-g&8$l`
      z>p=qSVyZ~h>Pf6@ufB+D=~+#3YU#Od0(I450vj{(7D)a*q(ComiA$Lg#lw_YX38v+
      zhH=OlOLt1?o3!-T=nI?gSY!g5BUNMA8d*JtZ4pASV+;*EHjSZ~$Cfed;&JyF_5@uo
      zAP@<<2<sTy<b=rfMF{YLF&yIY$QX`Bg6=WgmO)-m*nt!wI7wQM&}x)W+=Zoh4_4uB
      z)ZiX6{C(Jr_oI<+F|GIjZovo1t{;+GZc$iGEsvR69y7H(hIgYwTId*}q_0cP*r{%k
      z*@-T#`7=b}rLiXbtiRsvtn-{lUeF!z1Uzl0JtE)<pMCpsIMiF`DGrs;D(DWnE}{F&
      zrY_56xIIK%A11$kjwC#c5FVv(kC85qlSdwtnD@(lHRLb9#9TvO^GnP%<U18RHMkvq
      ziMa+RBxW}%kw71fK0@A4Up>Tm0S4rZ^*FBe_$2LM3BgGWwlh{2VVyv--W&7=J(n<?
      zfm|q!F;3(YlojI?@t3k722F@T6JpSW7?h%&ayCjcmz*hxJY(1%;^-rHddRRj<kGaM
      zhv^MFE-;C^8De+>@2ht!i)O)7g1$?M`eK&1117A12`ga23YeA)Xv^hk2yO}C)O0H;
      z2tgNH>7E&_^aI-dGFj;dq|+-`Wu^C%ZDzO9Y5bao_}+|_&M?I434GATN($cVMEnM^
      zd7bpVJP&Jqn4rvLt<(63f+E`J4RbjaeiRGB0atJFCER}wxs!OXeF7hUKJ0oNMU(i1
      zinj@Ts-Ci^l@rP9s`CY0bvfse8}PYCT=&%ZPUpNG$ocHsm!15!DCiC31bl4)+BL%8
      zL?DMU?KQ1)(924Df}Wsziqc!C*g?3FFFaT*{3sE*s1^(8_K=Saq5zx4LNw60TNGly
      zC_=jkpo8Xdu>>bYu{6+K<V{k^G|(y2K&MOtoifAe6h5t^{FF46n-bb7P358D<<qlu
      zRHoRZUTna2e1<4|*hmTc5Y2MXhGKkH&NyKo)_#6Shhmr$HZqRSQ8WfzX3j=99M4+(
      zP0fW*tR?l=ph&FC3dgWM_IQ?7Cv2({Hp4M&CT-XZ$FL5^B7&Dm+H=!k-kpY-l{EG+
      zn+fJlg4s+kTdoRbI%}>B^E95+Fz?r8Jj4-X!koZwauh{4jHZD+Mj&rP9*u?KT@vI@
      z#li#`GC_t+kRcOfNV?o5XDT!bH8hWe_S+iTy*i<ToGBU_=L+R?gp+z2umJ)#h+G;A
      z#2r~l9W;U2*PJhyHAf|Nfri6L{Y6~Ra9U_B8<R<hc4{`Lhsgktr>MARO8;_~6wb5X
      zA@M@aPRRZxhyPBY*=`|$48uQ(r-<zYzHH_CQOWfhwaet{m%N1J^~7|DPbr9Bu`+vP
      zjt~XDii?_UEsgxm9l40xtPIafhKAapJBx)Fqtu>G+;+i2{Io6cxGnKMEAgZav7n>*
      zk|u5>x62rm))>d{PNJfn7&Xw-Jb|y-nEG2;EJIl=e-G(CRv9=ylI9aC8OPVHY+lMT
      za=zJZ<(t8muY-?Se^ayGN37);6RD!!k)9@cTIkt5MSyHx#mmSMuV5jKna~KBf&%y!
      zwQxeR|AuCNn*7VYE@wkfy&T62^=>u{9guEn$=Noc5^0sJn2{MGUWXyx$jYa3Q&Ktq
      z<yop!&VO~5ILf7(PC1LqqG@1>&L=^w$@es(FVZ)zPmLTHY|idb#}@W8o3*>7qs}E0
      z?IN|*7qN|7`%nqZcG0tkntBEt=EL)A)Ov5sKrUv8;wJ?8rwEFlW2JZ#b>b~-qdBXv
      zUI{f-Xv80A6&mq<se(aA&>u<_f>@0|k}3%NG5$mW7whGb1e^&m>a&Q1!W}vsc6B@f
      ziL&`D7SYkp@0%HL$2sIp;-&V&Kbyc`JRkIa8-CX8JPaO!-f{eOy^r+``qJ74sF{`u
      z*6Fxy3%EN%-E5(Nr=z5Mn&$F$;Ba8E!--ml3mY9CY;kze=<s0=&G$N%;a10T^g32x
      z*inx6(Ri<8CGMm5Y?)(9E7LM(@b}s>XQ+)+&OIZqgHAci(<kB?X+gJ~u?0PH_Od+I
      z_o7a^o{P&X_y_I!?J7^Og!N2kQkHKm`Q)h0O3Ni?nRwN<Of*=^gkz&^jrpN1akG_p
      zhb{41TjE_-;#OPY4YtI4ti*?HiEptbK4c}1+7jPtOMKKyeB74!M<($)P0W$HbsYa_
      zrN1MK-e(rke@2Oo@NHICzsI(yPvTh{;;mNVGq%J(#=mIdIK7ou3MS_4ZR_S_-Pc{s
      zP{#4EmOAVBF#L{>AV4ECj_CVHIzfVF^$VKSFNlA~e-JH;{ZFJD8Lv!=uvM(=Tb1bl
      zvWk9?M1KrH8d<a|ykS#x*c2T$MTgD88`g!FXAFl6?`8b=9Ify_Rw(BP%9CV;bMvsm
      z&*Vjk#r}MbV&AlioglH7NbJNs#Qq<Cp~b#EH?aa%u`iO??~&LS=Pp(_1^<3a2)FRe
      z-RHt<75yrS{vrAN)pzLgpUKvr;rQnPC)Wz+O@i|l!Flr?!eOT<I1A<hC*K0cSqQ&#
      z5rQ<nBRJAo45v^mnk`1c3QAF?#3?At3CaotXq<D5$X`Nnj4Y-*_1we;pR$Oh&cnHZ
      z#IC;zu_YorN3l!4WD(m$Vw*{9(^ZIFCYEcl_tRm(*ThmAp9kD@*_6UpSiSyk65fFj
      zjVxT<G)qn4rKa#wQ+TQA^-|O8r4o=^&Nw?f656VHLA%xp?Ib}PA!sLmWzaZN6tu{^
      zpjBC+JwVVNBxn!(s-VfNVQ4j?Rzv$f(J|%dq*&8FA=d4#ij0fv#>MsHV)NmuMdBto
      z62OLWv3-$fq$Mqy<)S(LZI@iOsBe4Bjq=;paj`3FNqX*LzI)`0aj`d}^eS#$oe#t3
      zd;~?#M^WN@3^zC*$3f>=bU8ndg!2icoKI%mmPWNPe7HmG7Y9fsKmYGBty&7I%cv{<
      zf;8B5Q2*Ez*Mf6EJ=OYIQ{cN$P;jB3>_Wj!7o3@DAul6N>ffEuq00Gn)HuJ1wayo?
      U-ua!ZR;5n=PECk|Oet>pC0*Vc9RL6T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/RasterFormatException.class b/libjava/classpath/lib/java/awt/image/RasterFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f76b3e50f2da2ccca88b4f82062845b006527cb
      GIT binary patch
      literal 456
      zcwUW9O)mpc6g{`59T}}wX(ioBM3ls^u9T!SArp(1TEEsyJ(+pKn>YAdRuT(8z``H!
      zU&NguELhmwk8{sC_uiNHr)K~=Sawk$tX_#*;fp)#t4K_xKM;wPrXQO~*u(pYytXRV
      zE*wHDXNE#g{Xwd&isbj4P)npyA{<GRaDR4mK%iqnr5EeO3T;OsOl6VIxBEBk*Ed3G
      zS7~LtgvNUC<2$rQ>1n4uA~?PHLVB3Nd>J0*2-QGod6GtBX->sBl!ST^Pk5!^#oT{^
      zj=fX~VJ-O2Umb!Q$s}PyX7}q5f;Ws)Gm(9jdAI&F*~(;C0r9cm*g_E{&MtQa%yLE9
      u2OP_cbQvpfE^TZ+qVkY)svNx>-DB-OYFsrxSy(_F$g4#x<z9_k)BFG*$ZyX8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/RasterOp.class b/libjava/classpath/lib/java/awt/image/RasterOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..201a7803b055408f2da669eb18888503090daa9a
      GIT binary patch
      literal 545
      zcwUW>%}T>i5QWcFn`mpbT?zUEabvK!5W3S)T?m!9==wGt!!7wKH@Et3E_?tVN}QxE
      z)L_uNxC7_RocUlrzurFpTw&m%ML1okSLLfW>+4j-?1!qbY$i(=`-FaFCMt{l$!x)q
      zB{(lSkp{xld;E2DRF|hlTQy5~V_*E?6S^_m+kBPHi(x>xZrZaG6my>Xq3{W5!oxs9
      z&LYFg@?D-TmDLg-aADVzgqwe4Ho$cR?kU%qE!pn98pFmJHOO`3txgz7Y{=Q1jn3i+
      zQ47Mkx6}XAEJ2?0m5F$)6DIVwXS*y190Fkv<!j3o+i*}`)5Sqm57DV=7e`g?;aEBe
      JC-S$@{|129qX7T_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/RenderedImage.class b/libjava/classpath/lib/java/awt/image/RenderedImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de5e3efd00c39d187408aa0221acc4ff8ce3456f
      GIT binary patch
      literal 981
      zcwT*z*-jfV6o!x4CJ+K4B^1iivQI9`2#LE?2#KmCQdpE!B@tI9V+NziOyoEqUX2SL
      zfQLdHJ0}D(EpzkvxBuThUgqif;Sm6KVcUTr21_^mmV5k8d$P#`;Z;QB3nl!LQ4WkS
      z$XZ9pqrf}8yb%q}U?LE@8h2Dfv>D90g|fADv<$t!Xoyvj!FW{$5!W3h80`JS@}vCG
      z%Ef)0B8|(OskkMSzGtxImiv`dwUSX#ER+X}!&vrB?1VQ>jd{0lkxVnlp!F~gV|5(+
      zB4n`KE3{u$e;EB!X5+ls3IzpLl7Tnlm`GvbT>AQ&!LVB>;kjVPk&wYPo}+{9V;R+6
      zTXhDL*gEMnYky>DDkoVdneO_Gs=ZT`G)-DAL$bG6j`VLO{o3i(Ra*>n)_a`}buw6V
      zOQpmHE4;0Rxnkq{$u(!NkUWN0*LSx+RKXj<3kXH=|Nc}XZryjMJ#YtI=SpgR847YI
      zW*HdAr`mm|zwCB$@7~ys$&N9=n*sCX@v)D>7-|RA5TsC#!vvV0APtk28JM!1hOFfb
      u<SaiCXNh^@9Pu-8p145#LR=&+5toT8@YV7gtP<BO*I@%|WUy%~-Fg9kj{zV6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ReplicateScaleFilter.class b/libjava/classpath/lib/java/awt/image/ReplicateScaleFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6aa9917a25c5bc37a5277ff42c87600ea612977
      GIT binary patch
      literal 3101
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/RescaleOp.class b/libjava/classpath/lib/java/awt/image/RescaleOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e96dfbbbbda32857cd77f232a286be9639ea7dd
      GIT binary patch
      literal 5920
      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
      QSWM`9&yM2zwwAyA7oyI{dH?_b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/SampleModel.class b/libjava/classpath/lib/java/awt/image/SampleModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdb7ab3dcfc250749766e0fa4778669b5122adfd
      GIT binary patch
      literal 9352
      zcwVhodvH|M8ULNVyL<PQ5F!hNB)UP7ur%ROTroi`kN^P;Bmt~al}&P!tR|bVyWt`D
      zz@pWnw)L$Dh_9&7R$BpEZEb6P)IRLkcKVujrZcwFYMt5{|LIJp^mop^IlF|-CI~Re
      z{qEWG_<g_ccfRl2yz{^BejmU*ykWv6Fzved*7%(Gw#=MFU%cCz(-!X==(R5I@3eYN
      zxCKho=e_Y{_nfuu*I6AI0nfHXXQoF$GzoZntVDMY2Yt!GzNPVGXPRbbJQH8PW5D9a
      zixSC1X0d=--Nb*hHVU|xaqj>O6o(MN1OcOZ)<zQ(1*T_@YU=H^y5qe|Qr&}nRx;DL
      zy~7&FB>Iy+oFh=RA(^r|`n!{fwAC4zIegm8NZgrT8$b!da{I{w;p#QnecLjrM6$bH
      z9ynEC%E%9v4kmg#t&|Vb1pE=@=AujI`cNSdvR@;Kbfo|K0M13k#Ca#tV{Z{c6{geQ
      zt?}MLYi*ang}LY36xPo=6;c3G5cXk)Kp<jss!pCMP~^N1A3X)LLWp8E*^LhjSjkR-
      zntVQ<GURxtj;aZv7IPS@Ouzl1z@+LtusoCsZa#71gb$w;h-`~QBRvs|;jlW>k)~wE
      z>b6p~moNGJwHueL+0a<)!$ks<TdggFiIkO&3~M5?I5M}^4}ptA@WU&uOG5D2R(%Mj
      zZCx6I4_<)@YZ6JTd9bhDO0AE#_fkitYx+Cly&L1HgnV}f-I<;Q<yNs~bP3l}rQ7&J
      zwYuXeD^7D2o$j_WSJ)b+_^4t(2Ua>l4$^McS}wKU8mO_xUQ3EAZBJ>?8lS+o^{IF=
      z-9@-+MDD*XvEAwwIG?)T)HD*IT)cF!iwo*!ZE6b8^>rb%pw&iV<EPH$ohh`G$i;U4
      z?4T49OH!#g4c8`)y5*e^C@-*>%i3-1C;PUndicy-!4^Vs>TH2Vb=}W&A4$wLA*{j*
      zX>AT+4OW;S?27EvWxerqdRaW3%@F~_Q7ji&AzXz`0dyl_qUYqhx+9&j`a-x4*OT+O
      zq^_fXfb>Q4+}1pP*s09uZ@*4zGY<jobm9i7jpRt}sN~qDKJ*VrjWnoG`TGYmYrDGA
      z78U5)A>+86k)4np8J_v49UkIb@F}9PQ8KtAgh6a2=tOcDoD%f%f`VQym);n{O}JU0
      zSPOc2Z+|>94plFwn!B``mpex`6g;v)9=Ruk+i<%rYWv8B{=xQf-J}Md*{RQLu<xO|
      z!sL90qHnBQY(i0XcL<lGnMHEIP5{p0F&HzkTQ0s=F5amZjp4J2JLIAV<)T|zH?-Sn
      zS#_Gm13Ei#41n2*V}PPq(mMN1A2a(Y&JKid5Ra4ebT;`-&(Z9t!k#{+7}fqy%Ke{m
      z_AETz*|VUNYR@6L=d;e9g{Rw&4Xf#bai~e1a3q9%cuX%C+s$vv1&8#4v3>ZKT<|n2
      z0bvP-STK5lbdHK<j7LQqv-8H{c6i=ce3f^wR%fhb{e1)ROoCT9r=+tB;V!dA?r?I^
      zpJH#&HrTG+(Tg{YwYbDyoW&$iS$)cy9LVg^^xd;lySrLlE_Zd4EYg9t{=rm-wLBq(
      zU6ONHt=!XH#ZVY*v)ug8o=91y^Yl4Szj{`4W&lC{4gq35XPX?oH+mdJ<t34Wm|VUO
      zzH;AFD0&4YSC*C@$E4RP4#2G3k9l(B6->FZVn2MPWkc|kmcNY3<2b)k4qPAyE<A?n
      zWB80(bz9|aiHkjxJ(Do^{sYc_^W`UD_kQPffqadYA4M!$aTE)ql}Aw*4ZDwG(Thao
      z!eahjg;M@*qX!#^d?U`m6{y6On8DJ#7@M$`&o*4m-`Ai6*P@TbJB4=aLML{^!tLn7
      zURLn0p$C_7r^Skgd+|9ek)0_m$&66eQd%x$Eu&>9OY-OD?hDa?M)EZg%dx`d4|DjG
      zD?QPdu<(e6Y;TuQ$A#<(&T$j5GVkKLk&AcdUEGv+@uHE7_nx|#-^17hsZCbr-6S@0
      zlZW#l5VC(7&*B4l7qhH6i}yS7tf_em0qMf4fo3D-8N#HRuqRqx5%!e1k74cFJsuHO
      zE*?7ZkD3?sA=A|2Z!<10QOif^)G?gL=WHC$iE)jNaSat>1FOM$C&o3@(?%8J8Y=4Z
      z+^bmW$_o$4V%w)6UxhC?cjYBIQp~X<m0@>J%#0qx)iGb#7dCrh{xZ*7SjCZRpI67B
      z-hQavBm9}=jLi@GU-i||%}N@6X-uLKkVfzo#IHP#j@Lw8z=#DaVxb`{ERPipVP-U3
      z6b_XI%Dl(WSr;e^7-gPtFzkC7UGlLx7Ti-L!bRnkn-87%?VgYbhbqEu+HaJ3vW&H3
      zDu4fi-n~n2e#u+(9!GwSMffdM|2r!C4;0298K6Irp+A$6zwj=-&vk$09r_!t$KSC9
      zAK+$u$Q$)f+`;Ewe8l_lcLwuscn%*c=I^mN(##*x%pcLrA5r(rP}VYayQJ02o9j`Q
      zjE0y0pFxtpP2znV{j~Vi9gkpumY=v*5l<g8f<;B9I2PpnUV=2O5ZBG&_4A^Lk!1U+
      zA~}d{P9%TMbEF6ls~DO(Zf#D~B#H|m6>k45<d5`bRoG<od_#!R@JpkLMnD=<X?UeE
      zfrcp!uc-4GREF<OG*-j{Lx`2ff<u_W*m2MZn+#u+@e7psWMH?4{b6%+%)cin!a)_v
      z-|q>CaKH}bTiJAY4ZnH=|DkjL#ax^~jND!#3|uDMSSq|&DNL*uezb@H)(d`r5k<IK
      zlwh+s2OVM(zr{>OQcOigOv5dr9CwKd+{gC=9DiO!R1lBwLXjRF#KSs>hjkDS>mVN1
      zK|HL3cvuJVX%#vXG0v3%^YMgXYo)eYv~`uXHdBzc)xnuJsIXtp)iT5Zeo~`C98`H_
      z=cswbn<uaAYAKXg!~$l^ix3nSW1_eO=kYmP)SpIPxrNy~Z(dPQZygn?nFs0@TMI&6
      zOQ`DzwS`dI2(^V!H=G94FYzLe2K7#S*|{(gz6Uw0%ZQoc2iRNZlL@axCPE3UM`o~!
      zn12Y1%B9k0N5cUra;fXPIM*i=mMLe-l%<T#F;mG~Dg9S_{37hPmHxxrq%~iiz6FLz
      z!7tJ%78#U_K~#xtm??JPB5?zjiJe%(_bWKwA#PH>57=n6?_JvWF711l)^C^AZ<i_w
      z9%b43HK@Im(yyN_#y$MhhjW=M(@KpO;Im4D0mar=9JVS>X6vh`u;m?<t*@O4Teb33
      z@hI8aN46d#Q~Sx(K{9oSOg%xSo+MKT$<%%_^~@PEB}HC{soe#bx-Y-3?mvYob5y1t
      zI1{F9UHynmy-ucnOkKS}w%#OLZ<DQe$ktEE*3Zb++hpravi0s6vL)|XA-3+w&lby9
      z3tAz|*G(+FcH+32JITF*OcIr<O}hOX+BF47e4^kku%~IbK@B&k;Re-pH<V?k03rVb
      zGTKqQ?*8V<N4flGbksv^Gi@ydRG|l&RePmMr}r)R!#*Y#uPUIkRRNt=<_-H9SXDcj
      zBTdyN>Z<vEPSt#`%$tpQl-h&q0(f0B;CEe!V%JPea#drRD~gEgGg!dqWqe=lnxj0r
      z!A7G!YStb#Ymb_BtebVLo1OeAEtyTc%98%dbiY!yG(N_-QN`cSYQDg!XqA|*E80VB
      zbjISvI~Ff2bK~V@6?s`rUe=J8%gIYKd09tZTFJ{g^3qIRHk>tHWbXL1ygWK4FXmXh
      zu%?ce7dD%&E#xIdUee?xLteI$m+j<bD|yL~mz`&g7nvnK9WVRvm~&<CgjelRW%m-Q
      zkzhknD{t@q++HHvQkF^}uDj^!-E{FTx_3`b3sI$As?si1X_u<>x2P)TQX4rf#6BD<
      z3~R20^+X|92MFsRVI3f>$4>*+a1)jv*3%l6nGe=H3G10cuwEdn7YXYH!ur-}z#4A2
      z^1*rz&pYCFJB6{8h0*?YT<24Tuuc`iS+ef2{5hpBrz{@MQwD#NQwCqp`e6(FZ5Xbf
      zAn1Ar6J0;U6xS~>!}TuaxqgW{zBh8b#r3P4;@7JEYt{a>YX4fbz+1JzTXj>_s*B%R
      z)y|vTafQ=V6?48_{3c<ZZWW%x*GFT-J5ENvak`BBgN%GYMm{7XACZxNk&%zd$iK<R
      zM`YwfGV;k8GBVsejmF6C0*t&c8YAX78F}$E88HGdj39zW2osHBOfgC@!<dM9Mk(s}
      z-pKJ5BYcL83^z!lF>*(KM%W-7#N&_+(m_1sT<Sj9xu!^VEmPck%REedS*HRLhH)`M
      z#=@M7Tckl3Y0yO)bdl~|ituf`q(B!bs2+9nvpGkb!$(hbe^v7R#K@yp@#xi`^5~;E
      zN6VSVaNIfiFYqe%>y4PLgV{<4(^TYH_`G4?9-pX{1#o{h@bBjY{=F>FbEOwXoPlqL
      z-{`;uqZ8-zS<Cl2!^#PEy#`;e!Pjf>^*Y$~I@tBP;??U8sotr01{SKY%Rjm<aDp9j
      z>Rdp%`|@eIJ6F2<#5mpENq2YA-5crdO?3B0y1R?+-g4I59d3Na@9uZByXH9DohRLW
      zW}NOmKzARcyARRbhw1J^boW8J`^Z^ycetM!m%F^m-^DBHFV(N&d+Papyr!N%zz?10
      Nk07u5>&lZK{~sqbq=Nte
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/ShortLookupTable.class b/libjava/classpath/lib/java/awt/image/ShortLookupTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6011a335556e03d1c12d000fb85915f58cef7f57
      GIT binary patch
      literal 1417
      zcwU8)TTc^F6ouDeS_-8It%3*?T2Ojnq(USnVo1<nGFmRlXdBXa8R$?(h8Z%QD!wXe
      zF#ZTlG+;1B6Ag)%`e<U}|M1m6pzbr&DFKm(_Uv=c?%L~Hr{8{kC<7S8pbs?+-M5t6
      zN=mt7r?e%dpr+&n)3Vd1xma4hqRi^54<3g0T}?ag89aH#Rv3g_PG+b*rx}_(%HWGj
      zbdbm}_{Ue~)MZ;UjiL_?3_XsRt{8=sr0Z%y(Z{SpX-PF~w~<6In0eI?0fz$cp^3p8
      zm!w3-haf{uPOb;T;Q+j-WoSxkhB{eVnpLfeqfpwMQ}m2tX?*|JroEsQ8KUU}fJX?z
      zoS!eMHUpFBqtOAu$b5R3p{r_tvZU+Nre@fx<yx;pH$w}*iNts?v4~Qk8}OqOQI69?
      z9r1KkN471^D2(v1>I$k|G3<>eoJbpV$K15GqUzKT&q+Bck&}FgGsLSRW0s}dm5jW)
      zGF7st=FgiYBVTlF@xYP+wBZ=NRMDE_DH5EJFWQc#OniKpUp7nDoO)5?4qA3+Gr-3o
      zN?HQ_g-C<H099V9eW;^-J?%WS^CLjjD%BoZ<H-)OyoJW3SpJOW_Xr82>u5^8LnthU
      zhvZd(g~jr--#_0{Zw-#nce|rIPO6vCjLT?28eO!;FhMnt+}1@ajsi|aXf&5s+*1ug
      z)YndDg5#}Yk2jP0I7Kws;UR0{S2TV^=S-+;3z08L5BZ!CM47x+O|{ZbfNLawokVWX
      z*-b>CIEEtIVy>a6YbZ*;3X(z)y*N%Me0Yjhe&^*Gym1HAI){snU|_qUBFJz8eLEOp
      zj?8zu=Q(7_eO-U~lYfHil|4_<#}jT7!+b9c^@j(jNaTm7c+~wA^^bM*?q~`Bt3|9D
      zOA;?|kA~eR3lAvVhh*y!60{Cu4QKI~9%v0$@x(EI+DR(wrjbQIL<cB~lT>lluFCVA
      zaVriva3Ey;zL3M)1eyOp?rGTr`J9HmAPegRxk2_{666L!ZW81xg4`s?*ZV>SUC7|R
      JkSS;4sXrIK3`GC{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class b/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52564fc4bf395136f921e383bdd65d80c753c38b
      GIT binary patch
      literal 7808
      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
      CwMm-*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/TileObserver.class b/libjava/classpath/lib/java/awt/image/TileObserver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9aa292ab8afe214ccaf6a21b4717f5fb36bc84b3
      GIT binary patch
      literal 188
      zcwRg8Z`VEs1_nb0PId++Mh5Au#Ii*F#PSmT%-qEERQ-_5oK*j$;?$zD)FO5U7DfgE
      zu!5Y#ymWp4q^#8B5=I8D5}=~cf|SIPR7M6J4IeZk!izFX5|eULgHrQSQj1bkJVBz?
      zo}N*fVL-jX`K3k4sct|M7#ReSZPNo8!^X(K$iU110*pY*SsB<sECzNU$;7|`08VZ*
      A5&!@I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/VolatileImage.class b/libjava/classpath/lib/java/awt/image/VolatileImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5cf77025e958fc5b269a62c1992c3fa6bd6dcdba
      GIT binary patch
      literal 1206
      zcwT)|TTc@~6#m8*TFL^7B3_V-cqyP%z*|yd0;OVOxdfV;_+p0bv>mhTHoLPJ|BR15
      z`Jl#N;)6fHzhq)OGh52i5+7#HWzYAW+wAYZKYsyO!qXJaF-*MUhdjsMtDHRG4UwyQ
      z4p-6<C2ggUWEk#5w0->yV;x_`=WfvAzHsdi4C&J5>PGSH_A3TfVi+oTZlJiUs@w@h
      zg3^NcqL|&{US)f?xURj7VKnlVwhG&uJFAt_TDhpdP=%H{m7@QdbftREkjTze8IlFB
      zCNfCil7;iQz%WvluGk6>_Jv>J`;H*$vS)Lr%6+Nrwlk@kGGLf2|F8c%!(c<GJ(stF
      zrl%ODvvb{mwXj|nzNj4o(gb)dYpQ7~q#+ED<E4;|ri%1EFZ6A3CYRyZ@x5AT3qPNs
      zVa-^$ifb9n;&uwRde?O-yM;+iG4$1)Fla`lZ}_~`ls0ub7EgEVHaX@kEZ`n3#`XnQ
      z;si2&7G!x{H+je%S)*Wv*=%nNt-UTAp-+?a+`JxwWqYm?t_sRtpv+|6(5k4w0&nqs
      z=}0AoUPnBm=_&p_A3@?zZh-24WMKqphD<cs7t$>K)FKx(X>x{w6Lk8Jq^YKmCVfCZ
      zGGxdejM;kXLos`p5R`*-i+uFX=pH3&g(M@{H~#|{znai7x-%q!0|I%t+y+q)#&HGu
      zm!g##c^wl*-q4a_Xnk$s<u-A8{s_}YxcQ~S-EaIKW4!5zm-IWG!WN88=cK3z_$dZt
      z9pGJL+rV6>qa)09XZ?0&H}rUnypKgAb9i9n5_O@;SE##g^6z-~xr_WyFFEOtP1KWr
      DtQ78S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/WritableRaster.class b/libjava/classpath/lib/java/awt/image/WritableRaster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d80cfee662c58f3e3a514f0988b213a683289919
      GIT binary patch
      literal 7103
      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
      Syl3AsJgGRr`@8n`kN*P2C9!P)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/WritableRenderedImage.class b/libjava/classpath/lib/java/awt/image/WritableRenderedImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a28e08dbdb83e925083c75105e951b3c84932146
      GIT binary patch
      literal 532
      zcwTK$O-sW-5Pe&%sa2EO`bF^|=pnfnJbM)(AXHQo^t5S)nv$ll*~b6o!5`p{5@(mR
      zn&@Ho!OXso+4=l>{{V1-BL^*kv#Bg)DBpCL&g6u`CzWa$XLLt-LW+{eR2{4f^z6$_
      z=96#~Pid?jYzQ1T_%)t@CzIqM&1e)Cq)Ji(C;m-?^1FW-JPPy`&E_T5dESKdGMwoM
      zocd7|G{si=WuaM4V4x@?Sx}wZHe9xH)4~*%&8qP%aL}-e@+2Ko!Fqo1@?&~CPjk&K
      z?yFo0k>Y1-zEN=s(pOSTf#ILAtAr*+_kO-mW4gA{hX1bM+_3q-S(#6pH`w8wIOxFa
      hX0yUBwk&RA$D#|*Vh_6(`xsc<!#*qUlzg{v_zlcwkDvem
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/renderable/ContextualRenderedImageFactory.class b/libjava/classpath/lib/java/awt/image/renderable/ContextualRenderedImageFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acdf0cfec06fc30770ea65f2f1318fe0dad56a33
      GIT binary patch
      literal 834
      zcwUuK%}xR_5T2s40{*N&Jb{<x;zmv;+>l^Mh!VKzX(*G;;_jAoi^?nc2p)U@AIdmX
      zPz<u*p`E7vekRlJ{p0lw04|{HKu*Br5FgRUC*y}P2IOl>2Bfhck$<HUL(gW6QP*D5
      zpf!awQ5vNu4r~i>Ejz*_@NfG=lE#6&fb-Rwe<`s{jH9oYnWumkuhm{BGXvK$fF0Br
      zlObJ?lzhlScE69dw_0T_c5W{qFEybd0jak!YxAa;I{7t3wl4)_>S~+}(rQD%byg3n
      zr2|qiD@((l8Bw({)9q+AB5nASI{(mZ|Ky@)beIHlr-i7nfxBRE!~9f0*{j?yvjr5w
      zv@uCA4yAxCuW~1#*i&OIsToE*__OS=+C*|PnagX3^PlJRI<O1V6c?aqYYFyj-G>8P
      S55cwd2#%Q{;Dq-aoPGic)eIg0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/renderable/ParameterBlock.class b/libjava/classpath/lib/java/awt/image/renderable/ParameterBlock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b3573b9d50c1f0ff7be1248d0b06e00e2ec5406
      GIT binary patch
      literal 7441
      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
      O0IzD5`!7w?zyA*&1F$*(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/renderable/RenderContext.class b/libjava/classpath/lib/java/awt/image/renderable/RenderContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a42f2330813a83bfcba0c76b787d5f4ca13c772
      GIT binary patch
      literal 2746
      zcwUWET~`}b6x}yKLejAmQo!0`OVu_XlxQh!6~xj2r6ocw7{6W|!X-=%Gg*^Ki@y1}
      zT>cQB>skV9=~~K@5B?~Z``!#m7&6d@+_|~;oW1us_nh<Ze}DW1;2nG#Lqy>EQ}dab
      zGoO1oYuhZ#oGa}O>6+^mnR}wQdB^tTju%6>z&UMPG3|10W&Nov@iZ!sY@OySjxCk5
      zK+n#m<8BLFE;Jd+(%H_<Zf;t(TysskrVOS8x=hC+cFS&c%dARX^lVwSR};9<x@u^$
      z?DC?zqD^$#vMp~$U@3J9Q4l{AG+h+v&N~}2fiCnLcm)F#nMxPq5IAojhF-NBG7v{X
      z?Oru-28KXifrQKT?RDv{HIgt;a7t#SXu6jA?;m!1TNa~Aw*;J=dPaHmwBXXk1ch8y
      zV$TXpoo0Sw>^EQDyOBxd)L)j~Q7nOrsdOk2J!;22E~QRXX3(W6Ltwb-O6I6!deY{v
      zd81O1Hju$c%SHxl_@cZKNX$uo6~smY<9IuUoWRJ5@f&O&BA-3V&eAA_Xt`xzQh8{D
      z<3hTtPR&!~cMZI&?9P<hVU6;Uphw%28q!fJwX?1?S2iEAf?Qei*rlnkXA4>mv@<k&
      zv7}m?F&tjDO@S%ZD0u_-Fss7IC$NBg3=f$7kk^di;o+sm(d4#SnRi{sO<)oIYAG1_
      z5X%B_)#7=xUL*fls*Qea%XOZshM7utJdNQoyRvno;bV9r@Md6UEj!+7y;^l#*1`Nv
      zNmf0}vH3J5r~0*kAn~=r%eXL8iB+fWmgIt^2f&d|9#;?;Wl41L*TXfUrU}P!M9mWY
      z<s{*^kN0e4u6_Jh;dwW|=QH~_m&xuTnHk%~VCKdyhJVvu7q|`)5tyLmB++iu`wo)0
      zi`RIXY53zJE&+O{c!l06=7`=Y?k>$d;xpf)pStVKWQEwr>n*m1&opt~*9=1qyCy@g
      z&!Et*_-K!a*5#v(bwHb?&wY({rD1mrP3@G*h{hc~jyu*#<pRAQoQm7X1BWf%@Nsim
      zKhTr;9m6l0pizCeqydeFfe*;S!dt%c46PM;R6W>mP|{=ieAJe>Xj4*D2dIdzHJ{-K
      zRx*h7F|mpvSci{ry%W|RQbDZGiS<PYR@TSjVCCJIK2?abK4P3{N)q%&5cEqrnr)!*
      zCTP3~db6{@i6EAwz|9bWw|%V1Qv}`#f__EEN{GNi(DyLap)8WYvZ!_}i)nUAho>A2
      z3aQiQSx9uMJ{9o{KIkB1Fev1kjzT!2edk|&A#)rm_YWWnDw==LpH<&I%pG7{4H{Oy
      ze>l8{`2#Gln6obme`4{oeLP|^mkzM<w`Q5ZE!K2H!&N=jzUBHI*}mt4{J`G$k<a`S
      ht$yYc{nFNubH2V_KH4gG>IwU>#>!R!7IkEw{132-3qJq=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/renderable/RenderableImage.class b/libjava/classpath/lib/java/awt/image/renderable/RenderableImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13e554c7a4a0184f158828212b6f12c2fe414263
      GIT binary patch
      literal 827
      zcwUWC+fLg+5IqZp+zJE;wDbl~$bPBCb5Nz0fMO{Hgsb%SP%X~XEOItzvo7#!edq`9
      zQB}w5G>Iru`gCSz=A50|-S3~j0PJC>ggF8KQvQ&EytaYr%Y*_$x<^Kyrxcux%`gv@
      z@JOKU(o?CE;N<+0Vk@xR4v#-X-%j2|hiBcxmcUwPk`!5^bkY=9IvD7omD+Y?no$`G
      z0@Z|UG{{U$LxG0p7qrZ(H0ZMOz%Z>6sYFYg84`H=K+1mSzw2+lVZ9pvd1?k%WbCcL
      zuJ>=Le&>FROsh}Pj%7bDc*FC*KGbMM4O_Qb_Ejt}@A+Q@%1r*KdiKIOjyQ!KZBoev
      zPp`!Gd!;{(t<NkS8<LiySf<n~x?pXArWb~je#e2f(suZ_?#U#IIQ5F=1vU%S7JZjl
      zYNup(yqVmUf;&YDy_u8eja$00vn#6>S8$|K-g4vK+Fs}6MFAcjpRK?a7O==z;@2F?
      zsPR=+P-Rcec^>n73CqZ@bp>^Yt5|cmj)udH5pIs~$q1jadXCTV+~Etnbbr2b%G-Yc
      DwD{z*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/renderable/RenderableImageOp.class b/libjava/classpath/lib/java/awt/image/renderable/RenderableImageOp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a7aedb5af2f2593a459987d67c6d482ac736900
      GIT binary patch
      literal 4519
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/renderable/RenderableImageProducer.class b/libjava/classpath/lib/java/awt/image/renderable/RenderableImageProducer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..339f8a429eaac7a28afb4eb7c3be1f6c51672101
      GIT binary patch
      literal 4012
      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
      B(<cA`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/image/renderable/RenderedImageFactory.class b/libjava/classpath/lib/java/awt/image/renderable/RenderedImageFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b6801ab411ea8a098090a6b8fe8632aa00b6417
      GIT binary patch
      literal 266
      zcwTjn!4APd5QhIPTAW<H0T&zR-W(bd3E>IGcG7HZx5-+>t2uZ84<*_<2w@JBKbe{T
      z|K|R<-T+L|ix3D*aypTuvzNM{jHP3nvZI}0xoIS)i+Yfd@};{(XbTLQ8$&jet6k2@
      z3xvusc@|Kk<$uRDIV#w*o0(GW<M-w(O51F%tv|%$Z;ua@SfIZxk4|x-O%*x(1={=-
      T3JA1Nm#DZq2y2C?>H)e>^F>hc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/ButtonPeer.class b/libjava/classpath/lib/java/awt/peer/ButtonPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0581ea3602cc966552d088e2f33746eec056cff
      GIT binary patch
      literal 193
      zcwRg8Z`VEs1_nb0ZgvJHMh1zj#Ii*F#PSmTg4EO^eW%irlKi{?Ad{Veg^@u3ESr;<
      zm#*)hl$DxX!p^|P$RLfX$2mW@AU`iPuLPuxk%6N)wZtbeDK&?YK~%#BVL)(6QD$Dc
      zwPqM216Oc<X;E^jTV_rwBLhFePCbxnpaqN!%s|WvbS5Lv5$p^cAQl5BkYr-u0syC1
      BG9&;1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/CanvasPeer.class b/libjava/classpath/lib/java/awt/peer/CanvasPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0785476928c1f2bbd7a408fab3243344b9a07c11
      GIT binary patch
      literal 150
      zcwRg8Z`VEs1_nb0PId++Mh1zj#Ii*F#PSmTg4EO^edolyvc%#5Ad{Veg^@u3ESr;<
      zm#*)hl$DxX!p^|P$RLfTCqK6!KQA?}1f-3Tfh#z_v?w{%Ei)&Tk%1p!pdLsUP&Xq3
      SGZ3>ffB+){JCI~z-~a#zr6)H4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/CheckboxMenuItemPeer.class b/libjava/classpath/lib/java/awt/peer/CheckboxMenuItemPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..880dfbd17c2a99bef80e98137ab43dbd5c04ca58
      GIT binary patch
      literal 195
      zcwRg8Z`VEs1_nb0ZgvJHMh2y<#Ii*F#PSmTg4EO^edmnS<m{yU3g6VcQqPjq+yI~;
      zI|B<Ng8*1vPGVlVzJF3yYH|rX0~;fQ6sm4yU5pGI#i=F1C5a`ej0`LqQJP_l3|zta
      srA5i9ZkahiF-dH8>46Lc8qCPR48*KJhcW^!XJ_C5u^2dkBohM{09<l25C8xG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/CheckboxPeer.class b/libjava/classpath/lib/java/awt/peer/CheckboxPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..843fe79980f31bca529875648f4b2abc263f9bbf
      GIT binary patch
      literal 280
      zcwSwPIS#@=3`PGCAR+7p4O}2JMAVc>&>(>niGpqtSz!s8C=AQlC^!IzLO2m1pzv7s
      z_w)GQAJ-dzA(|!%0^O}VNmrh=n-Hb$cum31SC<7BCW->BT#sZNx^sU^fi_VV=>1V@
      zpQxB(ong!zNWT|NQ*}%jaAqImM;i5)0u}=^=~E=oc@5@2dOF?2;b+9tQj<W@S!EsD
      rQ^z!*$tL1n`}^=gwt=q{FgQx=)?g<lEM$%<u=89+jTM19zXdd&B8y0O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/ChoicePeer.class b/libjava/classpath/lib/java/awt/peer/ChoicePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d496c1f2c69e731b2036d4f90e58c52f6218a0cb
      GIT binary patch
      literal 274
      zcwSvk%ZdUq5Ulnw@v*MsMFf9fyf}E?(;_Sg3krhwI5s+xnaCLR-#qLG_)%hKTo62T
      zD&19;uH5d|KL8W-6e@(lUY~WWFD^bX7x8pw(}WjtRj3idk~KQt#`E=_6Q>XmhHoC5
      z9c<3I^EN_NZ#IN}^!xHIU6JP7ui0otP(sffXM~{O%$}K0i%O>X?7xkXM<PE7j%;Kp
      yp|!N9BH^FZh`jp>Ircjwkr<@v@~^t2R%pPdZ~kKo?GiuGDe=?yqVLLCLHGcfBt5eL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/ComponentPeer.class b/libjava/classpath/lib/java/awt/peer/ComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37cd47ca2c1e26e4707aa478d4a7e2110d316e9f
      GIT binary patch
      literal 2110
      zcwU`VU0V}J6h5nwKp;p#)M~X#tu9)PmVT$Ll|bxLB9Tz2xf^zeWMs3mo!Q0GpVo{1
      zfc~gHJ#%J4HhFlwXfE>ZoO#d3p7ZX^KmY#qHvl|?H)Xis!Ogeqgw@!)td?@FY7IF^
      zWx|uJjjJ-0JXjz?%#vPh=kP5LGY=|ZpNGf6fc3ZsYyS3G2r|`!U}O=-V(mMJnyVA8
      z>Z^eVv!UWF<1WTi|6Gr@l2INSkI57sT=9e89CJAmnjOX%^P<1HZ`Y~RxSryP-Kh3>
      z){wDOEgA9HgIoUUWcJZEhMY%!Qzlu9XG(<Hg9n9b%|@}j0ufzj(e<TbX`lR-i;0G2
      zWGx|UTZSwXGTBKw*cqO9uvlcbrNBJ4mX=7wARlzZpZGFYi>wVX;EBd4$Xq~XTk#{V
      z6pt*of~Gww<71JT{uLaZ)l}SPNfh(V6O@37KH|JM*duG*w6)Y15k_1Tx+%k4?<t0Z
      z9W}m-f!vn0%?^r1SJUyrE~QLNraSA8NjHZMDN{qa{13@>O%_F2$|e>)P5WB`{wRau
      zzvo<MRI>*+3K`BmiF&uYWddOU-DfElQuc@bRn4<?79RJM%##RbIu-!cMDH<UScahO
      zb0b$;Dl?1%n`}g{AZ3$OixEqHmjtb?8jV0EW$5Z?O2vnDm=OCy3z|Yn_vJeet`}6<
      zkjatg<%-1T!OD3O9pj)z=1f^e3N5COO<`M9tkBr*FjuD7<&Y&CJmU)I&aGKwr&x0+
      zS<H3F+hzhzWw#42!i}jm+NGDemZuRO7Pd3NV8A1R%NXM=Te<3kKIbuhIWmq#(!=)K
      z<7HpQSadwp&C2+hVTCfr!MCeg*Y*4eC5m&p>ld_Ttqqp4LlKKiaI4SC<{u$XO?z}1
      zwy><RuV%Psj~=5E8)o7g9~MwLibd+dWB+|=?=_KxgUPT*wubo#<*VfBS>ZFik=VwL
      ziCsLz@i>o7vT6HanK9fcBy@K{lHnk@GIs&xm?piG;FpBnb*`N}O{L1r+^1r8Dsyv1
      zbY!kV-V{c6i(|LS6O(1i13W3f{MPW2xdc;SE}Jq;JDee`z%1dM!>Yr1xJ<YJ9}q6W
      z65$nCCcFyQ2(LT*5N;6OgpUYsxj47sW5PQQ?>hd9!%yHI;iqt)@PS+VuuAyQ#d!#i
      z2tR|zgioMG_|&bR!RLf)@CD(Q@D<_Lj`xkTf9v9X2X(^l;RnJWU473T{sb=w*B!s%
      z>>IF2*o2qZ-=DF&CBy(NzrZ%_wBQxtj`M88Yr<XVxQh1(e{~V}4G&`+;Qs~q?LQkq
      BD5C%X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/ContainerPeer.class b/libjava/classpath/lib/java/awt/peer/ContainerPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97e8f9875842f26bfd9429bb8f1e3f704cdfe1d1
      GIT binary patch
      literal 426
      zcwTK#OHRWu6dV_*X+ld$`7F3Vx*=lC5(z0%B`PX)!Ol&dBA4Jqi38$lEI0s%LcACQ
      zLc)?g_IooPd)_}@-vC_VOkyB#zEw{uQO`E1iJIiPGFE9r&5}<Ny8=^3D3vLa+s&3T
      zD>3{>_E=YjjO}FtLv32Jt-vgvFMgP*D_#kV3bLtZj5kzhvsR_fl_i0lc)k`0$>hJa
      z&~X;(rRprJx%a)F=yu7^Wm}VLQ#kp(K&0C{YOTs1R$X0JjisE6nKBubp6X-*GERB)
      zma_R$2n4IDYcjggC3{DI61nI<!{28ko_m~Qz!6F8qmOFjF+k|>z~k8C#N#2R4v#!W
      Qm^nP|`+V;SuLGQZ0-K^_zW@LL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/DialogPeer.class b/libjava/classpath/lib/java/awt/peer/DialogPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39d9887e8f4c58c5b44e72591092609ae281be4b
      GIT binary patch
      literal 220
      zcwRg8Z`VEs1_nb0UUmj1Mh1zj#Ii*F#PSmTg4EO^eV5F{oc#0vAd{Veg^@u3ESr;<
      zm#*)hl$DxX!p^{kp(i{uFD1Vmq=%7#r#Q7FD784VDlsW1m63r(BT6%jk%0p!8j@K8
      z5)sw#L6{j_Qk0pOZVghx6`WsMl$`382~xz5aE2a8HPB8*24)~;1-hIG=q`2!4hE3>
      QI2pKrB8&{&AaMpB0CLne&j0`b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/FileDialogPeer.class b/libjava/classpath/lib/java/awt/peer/FileDialogPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..502ef7da03443ac9ef9f8d6ea2c0f5e59e434b2d
      GIT binary patch
      literal 278
      zcwSYHO$x#=5QSe_HClgAL=f}<x-qzRTU-eW1^2Opl2TiVQSoXnJb;H1r?pVJm>I&%
      z_wwH7`+5UdW5D4s%wu_%LO!gxC}qS}C(73{$)W>2IT{SZ;v$i0B=)CRg_fhmFs*YH
      z!@#e~<~j_M#jb(_YjhfImPdvjUHICNR%V_IqY_BvS<$q)$gD(lChDs~zzedQ3Dy6X
      haozMP=g1+0OVy;TE~VgTBTv&Qr-v?W$O?4_{U2;+NaO$j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/FontPeer.class b/libjava/classpath/lib/java/awt/peer/FontPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74f5d9ae7b730796cd9e9c7e15617ef359f81b35
      GIT binary patch
      literal 111
      zcwRg8Z`VEs1_nb0c6J6PMh3C0#Ii*F#PSmTg4EO^eYgC)k^mrsoq>gsK>#e5lbDyT
      w@1K;Fnq0!jz!jWdT9lmXmYI{v$iNFztp`%b#>l|Pz{~&vj0~(ml8J#00Pa2;4gdfE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/FramePeer.class b/libjava/classpath/lib/java/awt/peer/FramePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8bc7585d5f7f6da6618760ef2ebd1b90c9e3de9
      GIT binary patch
      literal 486
      zcwSXe!A`<J6r4r0fQSeps6S9HHlDq4AZenJP@@UArQI}((2{lwhEMb02l!FOw+|%P
      zq&v;qnc3Ot_s{1SfP36JC<%0DawR>vHr`UH%o}EMp+@xOpe)ej&ACis?|C{?p>c2`
      z(EBfW(@B)Btwx}pE8~Z0;xA;Z1lsQ7p39?${;NQZNKYy$29gw=1Ilj5B<nO*x!%a>
      zoSe$;#7-+TebL5F{)C(^Fquwb7FJ?q0wWDkj@-V#)$9gk*SD0G4In@CLT^+wNQ)%O
      zsfdFhW4bEY&bN76I;SK?hVMbKT&9^(5qnRlAadFoj559AGaT2ahwmArMHZ@|ws9N#
      zX7B7VR3mxNdrbeLN>w|kz*b&Gjqwz9#xpb+&(UPOK#Q@BOU4ea7`y0^lfX5tCEWZ1
      DsSI{7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/LabelPeer.class b/libjava/classpath/lib/java/awt/peer/LabelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dab684df9220692e8fe2dc2c11e9c1865739b410
      GIT binary patch
      literal 220
      zcwSYG%L>9k3`KA1V|?RAT=)ZZV{z?D1VJb$DDKA+N=rMHIzGP5g&*KYi5VA)i$FNJ
      zNzU_ie*l=GtKboaslMnyUu|$?E`v}XINM04P$l#~!%UkvSRYc3tU{eI`d?WT`LQr;
      ztXm^=PHg8{5}RBQq3W;3dx8?W<C}niAO5axZJC&O<`S)KaV{fXCK(fYUyq3k%Tq!{
      VswU>1h$%GS1e<6HA+#Mw=M8WJHo5=+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/LightweightPeer.class b/libjava/classpath/lib/java/awt/peer/LightweightPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37a38244d9ca147956a153609575da03dc6881ba
      GIT binary patch
      literal 160
      zcwRg8Z`VEs1_nb0PId++Mh4le#Ii*F#PSmTg4EO^eV@$qjFR$H5E%gEvoo+TG6;Z`
      z<Rs>$>-#5Vr6!lKGq5o-NTX_W&d)8#&r8h%Yhz^K3eGPrN=|jl%t>Wr5J59l52O`n
      V1S1185VJCX03!oCkYr-u002mTD~SLA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/ListPeer.class b/libjava/classpath/lib/java/awt/peer/ListPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..817a2c2e8a8f1162e5c200894a0de12cfa38b5e9
      GIT binary patch
      literal 562
      zcwSXeO;5r=5S>M!e8`6=pyJ21TqK@38I4I3h$Kxo=&8_=EN-_=yP)x>dGH7Lql~l5
      zqH<{8&U^c2US_|(KRyBA8ZI5kG3YFVbub8C)gVDk2P2-T2^}2BGiVx31adKWm@RRx
      z94IpA?K*DbD2XLXV`H!vgdufxM}J;lrCctCUVqBKA=y(HF(}Lh2HN0iz7(R+d`5!n
      zd6vph&{PI_*D$RGD&J5TdNRZ}%(T{j@)%U3;032V<1>M};*v+J$mj1=b;&;ZO?}5B
      zlo^lZkU=d;@fp(;!_Ccdic!4A8zC4Jx6>OLs_{xFo(LSrA?lfrI#2tbu*pSTDN>Vi
      zPIepDi5maURPp0gI>&pi<JPuoztSmb$Fvsu3iM75dItwepx>ixu>w_t`%p7jhlar>
      k92jib`Vfu`wk>w7uWR*VI5Bu?v1jj{X{7n*^v}V?4~ry#-v9sr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/MenuBarPeer.class b/libjava/classpath/lib/java/awt/peer/MenuBarPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1563ab3ee35e3b170fe544e4bb66ee9a792f17b
      GIT binary patch
      literal 242
      zcwRg8Z`VEs1_nb0K6VBsMh3~O#Ii*F#PSmTg4EO^ec#l)Qm4eC03e&4frXJl04$x8
      zn3t~apOlrFT*A)4#>gO#smVD%w;(?+HLnDum63rxF(m~g%*Y_5;R9C<60z0{V`Sh4
      zN_(W{6hM@)r=;dUSS%WzAZf1P{L-T2RJY8WRG<@(+@uFG3g`ev24)~;1^R;-=ty=3
      Y4hE28IiWNc12<5Hk%0$DGBNN103K>O#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/MenuComponentPeer.class b/libjava/classpath/lib/java/awt/peer/MenuComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07de124cadfd5e0af643f2117d64892eb80fd25f
      GIT binary patch
      literal 192
      zcwRg8Z`VEs1_nb0ZgvJHMh5w;#Ii*F#PSmTg4EO^ec#l)Qs?~Kg8aPHypjN*2s;A{
      zBZB}~QBGoBy1su>R%&tyBLjO%W^qA&aVjGNvxa6EkYAiy;+CHWlo8VKftv{uu?9(V
      y1?QI*C8xS&<^XkwVc4Pv(!s{a05pvO1ek!9vNEtSfGlTc-~fs+GH`;#8MpxcOD}Bz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/MenuItemPeer.class b/libjava/classpath/lib/java/awt/peer/MenuItemPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..682201777adf79487b2df72c5e30ad525ef7a423
      GIT binary patch
      literal 270
      zcwS{sJ&VFX5PhT3^`f3y*w|bf8-ul_cyJI=5G?FAI!GjLB(D13Ec^lfD7o1v+=0b>
      zzc=&d{<z)%4AE975qdj))}g-G@W7mhQ#Pj`%lo+$3Lc?d%u{W);Vj<q+A35DU+=7O
      zwm)QsjdfIl+9XFEr%WgZ{UxEw=2`kjwv!^?5WHaJhBfI$I_8wn4Whq`3!5iqJ8}?z
      tk)852e<yB7=fBK>!;2=lBvz5%JkhOCgVX=<iazQ^Y@jI!!l(EWTECgpKyCm4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/MenuPeer.class b/libjava/classpath/lib/java/awt/peer/MenuPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ac26847645bbbcfbf8c745c34f3f7dca0d33b25
      GIT binary patch
      literal 242
      zcwRg8Z`VEs1_nb0es%^XMh3C0#Ii*F#PSmTg4EO^ec#l)(f}ZXoq>gsK>#e5lbDyT
      z@1K;Fnq0!pz{bcRg{i}{BsCYLi;;mnF(n1W0~)O116K%BW33s+$iM?s5}aC)Sd>_j
      z57fb|0TN_SNzH-iW6|&g32+7Hmlh?bx@G31GBWVOoTUdc66gk?HXvpN`hywhPId+k
      Y29SF>8MweSHv<n)2B-~4GBNN00Aw^dIsgCw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/MouseInfoPeer.class b/libjava/classpath/lib/java/awt/peer/MouseInfoPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a02bdce47e37321deffcd221898e9a5ad77c2bce
      GIT binary patch
      literal 225
      zcwSYG%?g4*6ot?2N6R*0?RtUSB&}Trflwqw2<=SA8j+dsC*Q3_570wJGX_z2chC7a
      ze9zbY0bq%di4I|wMYqU}n##R0R=8VPm&_Nb4Af_$M;Nz29*MKNJ7p}c2$PiOc_6u{
      zLS9`~QWi<6()s4Q)s~*)6Kr0FTqLqNh=djGJYo8Sep=5t60E(fi<qr>t{D4IWubY4
      WK<GkWN163uKpUDEsDv=oIjlEmGCUOk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/PanelPeer.class b/libjava/classpath/lib/java/awt/peer/PanelPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f24f5edf90fad6ba6748978a51890daad78c3850
      GIT binary patch
      literal 148
      zcwRg8Z`VEs1_nb0PId++Mh5Y$#Ii*F#PSmTg4EO^{eZ;0)SLhyi=BamkwE|~nUk28
      zuJ50em6}|_&cMdVAdRZUIX|x?F*7f<2&9dXfh#z_v?w{%Ei)&Tk%13xo*qaOP%|R~
      SGZ3>ffB+){JCI~z-~a%Y`X)^P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/PopupMenuPeer.class b/libjava/classpath/lib/java/awt/peer/PopupMenuPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d71742ec1e0158e819d0f05ce0a9cd5f3f625d00
      GIT binary patch
      literal 224
      zcwRg8Z`VEs1_nb09(D#MMh5Au#Ii*F#PSmTg4EO^{eb*}(gNSqywU(5kDY;qkwE~g
      zASW>|UEe<`D>b=<oq>&!K@3$JOa~(aOL0biIU|Flh7VkYbAE0?eqL%`iM6MvW*8%b
      zFp`{W8Au!?$`zbnT9lmXmYI{v$RLE`4n2@^prwoq%s|WvbUhQ$VeAYX3=CkJ6DR^S
      J03^=94FL6hITru`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/RobotPeer.class b/libjava/classpath/lib/java/awt/peer/RobotPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..983c6d5114f361724f709d49f7be36788f2d59d1
      GIT binary patch
      literal 333
      zcwSA9%}&BV6ot=4pr!l>xX?!^8yeT{Txgm|Xi5SLRs*>~V027dKwr&;58y)?Zzn^;
      zEatm8bLQmS-@or40Qb1@P$S&#)KNw1R74-lS(KWUDH54H)Cqn2sMY%>nyz-dE(onR
      zbI5sOj!bBTaXgw60;?q%=Q*JsTCHQXlr^iI&z8k2vnKd^{&Ma>#>&**aFISgCfm=_
      zWz%Cxx=`iEUHDQ}PNkBR)BG@6iZhs*L$>Cpt(LG}waU2kHwlC*l*gCN8fc>2(1UN;
      Xats{XjvdD?dY0GdO9EjacMZdTiMvW6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/ScrollPanePeer.class b/libjava/classpath/lib/java/awt/peer/ScrollPanePeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2870529851d9e22691c6dcd8771f2fca9706ad0e
      GIT binary patch
      literal 356
      zcwSXdO-sW-5Pe&1Q)|_JoJ4;>dNFwRB!V;`SS-f#W-}xk){Sg73jQ<?{s4cJIEkUq
      z!|r34_ujmjpWm-<0M}Rq7zkXJ@?A#q!$)sKF4`(r8MBd=He3cc6qt1kBW)f%rX?vK
      zU?gy{ue+<Pm)eqRWdh5b{QBQ3m2OQsFTB7(xQYc9+)H-77oGV+U|y5&XIHiMy0QYp
      zFpgJ=z*H65WKUG<Ps%tCQ=hH&u~m*<$+Gcz_^^v}o0U!NWoqcAQ;(URNYjwOWLq^(
      w(Y-cYEcaKvY7KZVPRVb`7aH;I0mf)=aMa@j#~n_4Ji%#)XDzaB#{U5GKa!(byZ`_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/ScrollbarPeer.class b/libjava/classpath/lib/java/awt/peer/ScrollbarPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19c5d229258853f6634b778855f250e7dfa30ab8
      GIT binary patch
      literal 247
      zcwS{sOA5k341HtOvHlRZUZ8F)o<R@_f`Z_FI)u_PotClc-CTG84<%;Qg<>EH$$O8y
      z+#lB)fF;HfErD5~&MH=yCa#HGyw|QWCRJ|7lSEr!@*)^zvv`{pq#KFupKMi?b!Evm
      zUdEauHJjX0Vzr}^*8=S*nIGQBPG#Rn$g6`gCprqqDB<wL{=PanP3zo{!1Tw~!rx{O
      b0s&`-p9$EfL=WC?`00HN7!eq9ZDI5TJV8CW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/TextAreaPeer.class b/libjava/classpath/lib/java/awt/peer/TextAreaPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..485b54ac88c81be10955667d5d4023b5afd0a829
      GIT binary patch
      literal 417
      zcwTLg%}T>S6ot=JZEDh=R7J&&+je7c-IXXppkguNevH>JC7Fcjw2F_`g%99Ei8nuJ
      zMHe$4cjla#!}<7JzXLeOfrFO7$y}~vAYW`y5SiefUhRb;Ipe{>wt!#Vr&1@u?c<zc
      z>!2-g`qy=tXGN|_+tMn~R(e6k3LK86KTkx~D4k5g@q>U{D@w0`mnp5XWfrM75;z`(
      z;duJ}$Cb)RFI2840{w*S&8D_j7<wjS=&7E47R-Jhbqy7%jOmUe@OboJqAHTt2<uF4
      zlrK$8*D7VxaI=}S($6&rZ1LLRIy+pIgAU5db{o3zDs~(88ul9w;8z@$<ahRXZ(;un
      D%DrkM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/TextComponentPeer.class b/libjava/classpath/lib/java/awt/peer/TextComponentPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d854876cc17358c547c583eb6d1ae5e5bd84f3cd
      GIT binary patch
      literal 612
      zcwTK$%T5A85UfFP6;K}XP*FK}SuSoods2c41S0|C!P~%&uw<FV-2wSF4}O3jW$c-N
      zLhvwCNp*Gg>+AdD6Tmg97Gez5F`sjXzbj`dMCd$;g{lXWX&{AE9bzoR8L~#?b2)S#
      z`(rUs7Iqmbo2eUV44I)&J>iqs3uHsO3_EtM$&g#;dy0pO!6HsqW+>RT_Fu7{3OzZz
      zAwjef6z%PJ?U`XWGM)?xyV=x4ic%V`r+D8N3~~EKlUXWM=b=!YAo6qrL`7Rv+%^t+
      zf~IuE;+A5bTzS(Bd2KV|As;9a-UT!1Mhs=jYX7dJOU+P=zM$^YubxlB#+;TDY5P{K
      z#ZWT#)0uh@Y81F#@ir5Yj$hhqKHkLnM?|K{UN8#>;@;EamA3A7r5)%<w03$4x_Fun
      zX<-lgp!-WqB4sd*1A~Xi7|bGPFu&9tp<u9xlEE^L4W8iCU<GGXf#IC~7%qMQKlPi5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/TextFieldPeer.class b/libjava/classpath/lib/java/awt/peer/TextFieldPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec17b2acddf0843884c88736c6bfe05b8a598f0c
      GIT binary patch
      literal 340
      zcwS|YK~DlP5QSe6SYZWMFCI8}g^L@{99Kw8G?HMv*JXr~ZM!K23_s0-KfoVloZ`kn
      zJj}dw^1jTxetmy@0=UIRgqlEaDK|2eTc4IhE`6qVKUP%CCj5#}7fAMoLYjH{^tz<n
      zM`#LM|Hm?`OKZsZfC|J~8Ku{Hs&*uB)xRG+{4sY*lUXTih60_^(Hl8OvtMU-PX6%_
      zO?WUl_QWglqkLhrh2%~3el~bv-@#DkKHSir+O^ARtO|xMkFwo_V>pPw30H%Eq{(3;
      ZoFas7RobpJuJjC@y>^2#ch0?r<OfwgRw)1g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/peer/WindowPeer.class b/libjava/classpath/lib/java/awt/peer/WindowPeer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09f9d3415e5723b1c99faee4d1e67c4af8ee82fc
      GIT binary patch
      literal 254
      zcwSYHO=<!`5QSg)*Zvz_30@#>96W*%W~-2pfV*}qWX#Y#_Vi@P)w1va9!jiHL9(bH
      zsP}kZoiBeU0CNl!DunSt|L8y$K1i8e@D-b#E!MIs)Ce!PYog6QSZxm+d4&dH^53(x
      z#_QOyD{X{^w{JT7CRAUip9JM?=tMyn=IKs*UL=M7%~s~ari78>W6qhs=Y}@Qvzu{4
      tXusRsMI6Qn69!MPS(z>rqLZr2FEt@mXrd%;J!bncJLrmn(34(4{|ZzfJp}*&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/Book.class b/libjava/classpath/lib/java/awt/print/Book.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10d8748d0512de168b80240fd04d7a9c4c930675
      GIT binary patch
      literal 1689
      zcwU`TT~8B16g|@}Y+IHVTUtH}So~~Dp`wUj5eo=OwGoY`iSdCf?Sc!XZQ8}JN8<z0
      z_z%>?CtrNfL`$NH@!6l^k5KQ-Zd+1YNuXio&dj~%o_p@ypTEC;2QZ0c88!yrmikbQ
      ztB;I$sjL@__+qiREkk1H5f6E_uo+)n-_o*%j82BWCih$FrlzjvH3pZs;C6+<n-+e%
      zhMtdSD7IKmFeoK*UfU>^cT|IXI_LC)Zp<^-!;uVwv{cM#F4*B#;6j&-o*IV(C@y&5
      zc7kXtkm2B#Ux5=222WZqXg7Cv*0u6olaV)F%&Pf}TGsj5x|ECuIwkj~ThvV)dp0%0
      z1X<nSwN(VY6wf=XU<5%zsOV1#sGB^w$BL+jVI-W2G=nzY6CB}$f|EGK;MDTkj#e-h
      zD9m3EJ0NvJ#u<izwrC7pLd$|+%D_^jF6UEg0mE=BI<;rQk1_POd#2u~rIJ?2G0cS9
      zgZ!u3NXA92Ij3M8lMJ&*14;3*aF!aZ2HV5b6xp!!2_DjlOA2N%OH-@na?55ncrX6#
      zgy29rua(ScU^;_bF<Z|oOC6~+u8#*-6(q4hts}hU#z+KO&=6WUYE38JcZ$2^thS<a
      zU7UP)CwL4-Np?H^cfdv;IejAFe@?N>bWdLvtqPrP3qK$j-A8xy8$9>+aqJ7c4YT(X
      zJ=+kV)eDK%B(2lLJApwgqK|GA69WAhpq)BIwh4cpcK+sweulS-p$~PePH}(ZK)j<K
      ze;gqzK1trZ1cl;zgH??F!0C@o821H6!1S{)xOEm`kv)QF3pB5ZHr9-`eF)k(CM>k;
      zq=Q}5HWrhrh&Oa{iRi~9^%H>>GX3gk4$|d<Rr3@sk~hblv~Zu%xr0a9r=|A@aIRxj
      zOmhWdv_F@aUmAY*=T{?NK=|)b1ux*nOFHk7hOb2KDHE%nJ5<jdvT}3lGF4}%-w<^*
      zOm#8L;flp4OZU9*KF%aYvdwcU<J@RaaElUO(~P~LF?lOeN6oN$Y9EbDSfus|5;kFR
      L5_|@i1lF~`cWzpo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/NoPrinterJob.class b/libjava/classpath/lib/java/awt/print/NoPrinterJob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc2123bc36f9a68dafff76c96e0cee520d0cc5e0
      GIT binary patch
      literal 1976
      zcwUWFTTc@~6#iyg+OkxE3TU}Vy|>(oiinix14zV>hKOP`CS=+!b;;6QcNaANCLi>P
      zL=%1YM;Xt|F3V=SZ6TpE=bY~{bIvsV`|sy(0Qa$$hQcs$$WM5ge|F23t+(8A)!Y%Q
      zX1_FRX(So)5x{wwA+@HrboVJkqFCBvNUoa=O+^CzS@a>rFu1L^wCeFuO|xI~nxQe|
      zw#_;>_PDK!*iR<ikGjJ!wcX_`6^8z%=B}HTt~t_hi!#o6CRyAPXGqokm{DCN263zW
      zh+IaBCC|X%t!8=GCFy1*gR2bLuo1DG5Nov9P7*$uL$kKul8{_Gf?<HH-#D5rR5G|u
      z2dkPQ7ANGbx@HhWch=?B&>Hea?<v>N4*0R*?(illuN0##5&2EiKH_er)TKs37Df99
      zGNdVY#i|0kp>xA*GW1CRC7*w(YnH2<Ehmi`hUxfs5TG)cBU05YSYAOz2@B#K<i%k`
      z?#y9;`YZgs;ZMfiQPjLXTLCiP5lABxnj+~zr`ko&ic+=TI>(N8hQ>}HsCJtTd1Ozx
      zp*Ogzd9ze^&11W+ZR)~vIQ-%kgboUzHvsWBME~^lp*T&uGObKxW=@g$K^p}seWqk`
      z5d-v@^#HV9qLtw?27U6JPgWA&BFv=_Qwf+u81|WuWS(+S%T-An^NK!E>~gpw%|<Zl
      zOU(P`iQL%th{)5Bdm?bZhI}vgjSlYPn2>IhG44}Q_ZPA5(?QE;WgO#P4G~#DEZ_zr
      z?M_D9{VKNIH*w2nF4HRRq|8PS`!;lACAhJI+qfg$?p{FSLl2F6gi}zYT#}-aR9m9f
      z2(J1IrFXg6Q_TN~sPfRA)Zk9#_HML2zJu6qEYgoskMSEF#{U2hrP&fudq{lhAhC?c
      nzQl?z@eGjP$To=+DN*o>Z4zQ98mrLy<O0L_+G9AYGOGLsay&mG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/PageFormat.class b/libjava/classpath/lib/java/awt/print/PageFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce914954afca43b2392b104964f675ce43a53e3e
      GIT binary patch
      literal 2188
      zcwTi?T~ixn6n@?kNC*p*w1q;jt`*x5Xk)R}T52`n!^WmS6AX=2aY^0@i^*;#*%U6l
      z_ud(=I$qnE;*5nEnXz7I9eeK&a2)@J<2jq{W?hoW?B+cm&vQQBbCMVT{`50|EBGRa
      z69VHq+Cwd&?OKUiT{o=6npT#}X1%IeK?DR&+UAO8loP94JF-aHK7mth?Lx&gq_$O&
      z0{xlf%3^LIxwa%A(gK4ErqQr8!^&%wrtG1h5D2ZUX4kXH^g7EzU?jVgU&`i|HeE0q
      zD6s*vu1mwxEZsB&dTUxu)&)j0$MPlpyg=Vg-O#OD0zI+myg*>VEXgo>FsdMeQ$d^+
      zINb>v#u!HXDY2-6lNjOCD+-1Y5*W_thFob@w`6_2RbeD!7PU%VtLrQ~%7C@4Hwb?`
      zvzMKu^g?B6ZRjOy+fHziqrRcwJYJ`^k?FS7%i9)fV+t;?c968`Dp7Ed`)rv}Fn!EY
      zV9R9%vuqjhTI^_Sy`mt&)`-{I4tQ0;9Gf}AwN{hQ#-=;Bnf<RTco#S5Mv8p%)YX^H
      zo+06a8!p{=tTP+m(-1{n^<Fe}hel_p;Zp}<X?71U?G<H>RgEAP1kSf3rz;g%)+)(*
      zxmhKg>lg%$<5=4-XHg2}R8y~%WIcor1twEkNv%<1RL{t%4|!;Bs9`K3%`^0oz?oRa
      z&qGD9M@GS2tk4u{wVE_a#7X%cb9RExGh$7_J!Gj*mf14;JL&L;kwUsPBzHAZ?Qt)r
      zA1ns3Au!Q)&o&K9uS&P<5DEg9R!mFPtF?;cmdKLY(2b&0(`v~yE?VlBhPkWmZfllm
      znWPFMk2LSh^&mbInDQ+-apjt|npr0zHw;}#&TQ6;a#`nH7;X>!WrpK5+NU0Rdg(Kc
      zAVPHR=LJWY<N=SYkUZ#-hv=a-w9mAd^gT#6+GTp5Ch3mN3!I4`(sP8d!Xd_=Vj>=R
      zipd{r*g1Mf5TN%xdgq94ouD7%RnjOeFjPvBf0t+#9pX7cvMm(<5fcZPdg5~R+4@Zn
      zKIGyrbi-ft<99mZr@P_fetfedezqI_k{|z7M|`3i{!Ksr>yG%jZuqzS_-{Jmui<S6
      ze~rG`HqgSq^9#oIeH7n$C<a`LdE9g;Zjtv1_KwfcM6`z?Y-_)#S$u3WjJCWS20rnm
      zarpO$qs5hQ(&?piCLj9}Iq)RX>n8F(J|M3oodYDLY??i?bFkTH;1Q;x-$IS{K0@>e
      zslpK!3z6kR+>RdL&H+{rk$V=8{%?xU(dq!d(rWxhi}4&${7w`5oTly%%;1Hmm|3@&
      zS$lmr`E{E4Rxwwdr3oJ)Ux?g4#3#>u75(X{DC|~5zxWPA%4tW4*6zXnhS;~I09E&?
      X!!rc_2mgySe-r0F9dG+{JL=|tPkM=h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/Pageable.class b/libjava/classpath/lib/java/awt/print/Pageable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40beda57f41cc962f183a0ca869842ba83d448a7
      GIT binary patch
      literal 398
      zcwTK#%TB{E5F9t9fzt4n5C^z$X)i>aIZ>3L2#71H!ZC7EH%gT{RpLOujRPORM*-`i
      z0*6|%Ebq+D?9RvM+dF_u9NB0v98blIaK)>3=Vhj}I}oW9aV~8%8TOW7E>!CBcq$W3
      z{84xp^5-xLM-P4PG2(tSxW4s<3@l)9ZVFXtq4bl;YiWJaA(d3>u%5-T<P#%bF<9N6
      zVH02qeo@W@X`gk2-u;?+e()=Xwzo*+TxVorW0&FlZ@xf{<$~9mPx?iz#?>#Ap<`@}
      znAwZrbe+ozHYUTOE)(fzhU~2JxG)_p+7cF}$8drTwCJ_z*T5z$ifapPnAo<_A;cl1
      RN$-vc68rxvbPtw&hu=KhWw-zU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/Paper.class b/libjava/classpath/lib/java/awt/print/Paper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e52514093c999762bf3efa78c37fc2df2a443653
      GIT binary patch
      literal 1511
      zcwTK&TTjzq7=Auj+p(3?I1Dt%5Rk1Z6Ga6<qJji;;sFDC*^Oo^8S7Gth&Ntv<BdN+
      z{SN}h#l*zZtv|~6eqT!|O-bnUo}Tx6Py74t`%eH9m{ZWi(7ma@()0SRlds!m&B;H}
      z>xQi$#?T==RlQcuKQ3+>B}akG&~;*+uUa)jFIEi(xnh{*io?Jb7^Gcu!>KSN%q_hv
      z0$v1_mke#bvhIeq`-UYikvwbGOlOXvIh$K!h|OCYMgq-9sc1vHd}luc{?`JAUX>s&
      z-+A}jH=R+TaMLsRrgJJ1h;u2UBFUY_6X%Eu)pcG_(TX@#R4{AC%Fb5Nu%Ej<rV3U`
      zudeB~$#u^db1LRGl~9Np;|xPf*>H|qqE2W!ak6+_x01LVn9(Vn#?%?qJx(fUJI<_Z
      z8_ufvhU$^B3k!T+9ovDhySAZI5V>5ZRN|YX-Dh)!@RDcvkf&ALz)c0zz({D{E0(jm
      zQ?FaLV{F`iT{7y9Y1L@GtJaQPG8Rofl!WMhoHH>*Gi|1S2{M}aQfT5$d|v_+9wt3h
      zJ!}=2ARaB7z8$2!r5ucKTKk4hts7kp^bn*Q=qEVaz<>*bn)Vev-54r2FwEtCR~|hQ
      zsmJJhUZh_{3`_L%GE#Veemq151zf@-Oko9CicsALk%LCaaFM)jF?q_weG<=q;3t-a
      zaXmnmeDdW;a!;77N0P@Q$pc~XRwOweNgfQ7_aezxBFV#H@_r<FB9c5BCclp)U&S?#
      z{FF{eB1~#yeCat_`N=Zd$O(L)fRA)BpG2yRuqC}zT;dnUgv4)<U*sgNd+GN`Zy`+c
      z^aDKopw=hx>*-TY-A%8k;xl~@=&3^@ACc{gcydzs(*BcaaokKuN%16?_<_4|{KOUV
      s(+|xn;~pW8kJEuq9j>!Op~Wcv)~Qy1kmVOm?oVK9aer#FqT1X40R*JpTmS$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/Printable.class b/libjava/classpath/lib/java/awt/print/Printable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9b56af9d979432aacadbba5daa29a9a1436362f
      GIT binary patch
      literal 334
      zcwTK#O;5r=5Pic}k#9Ze$*W#$^vcPQ0!;{zRE@W0Xf{|<+h$qR-^Rfoz>gx#_Rtu^
      zVRrJ~%-i>N56As4fJa<8s1U9<{KYPR8#mW+YTTtgd6g&!HNv2nCY-L_#cHD>LufCb
      zCtm2i`@u^<AfM13W$D&%YTh{6sj6HKLTA1RgV)hCwCk25LcOpcJl)Mo*NNu*BaXJi
      z+5aHCR^v>6vKjjK;?nYdB9)t1yd3lix95T@U2cgY$aXqX<2X@-Uiq*GD{M$~*jN?Z
      gppJ$hr$9}?7k_XIB>&JxN0_cKHR(O6K{35N0fw?qC;$Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/PrinterAbortException.class b/libjava/classpath/lib/java/awt/print/PrinterAbortException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06d7d59cf1a16e915e649c21cb05197b861d6679
      GIT binary patch
      literal 542
      zcwUW=&q@MO6vn@!qZ5;+Sz5V?AVMt~q+N<2W>823*6go#u^T!gGuP@RTJ<EYgcfbu
      z^+c_rGo!R97cK7jbNQX`yXSs<y}kjcqG%#U*u4|?!WIwO9{bAG_GK8Q-|Tt5Za?<r
      zSS!ypVGy<#lRpq48%SS?p(Fi(`|Gn40-Y1mEzb?KaJ3_b6Pai}A5`DXr%yt%u3V)X
      zgm|g!5R8_0BQ3<Sl7fY0LZ+i!c`+IFq<<xPLrKVWygnNUw&8w$Y3N%O5cWF%S*1qE
      zmuBQpxC6VZnHto}PH3DDjn@d~NCtrzM23G*g4OjVeqWxd(7m|O<}e(?4tO{IY^IPv
      zlC#NO3`=|{+>v97Z;m(<=R{?S^h<<fI9i;6V;HC-%T;OyVHLSZl;1iRXfPSF$;$o|
      a>%SG+JaZZ;6lT<1A*>46h|D*mnXPXU5q6va
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/PrinterException.class b/libjava/classpath/lib/java/awt/print/PrinterException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..909c44b148699303c0b51ed591745828391acf86
      GIT binary patch
      literal 515
      zcwU82u}%U(5Pbs&XHHNAL7_1eCV+_-V<&_LA<<ln33`pyf*U+@+>yIQt^6VzD-sJo
      zKs!r6#yEEnO|Y=oc{96j-kaICua{Q<2dL;s5O!|GoiN3{GADuKDf2vvGUz@G<wQBY
      zr$ZwYVv;Mok@@pL$b~X+glo$n<ofdDm_Vn5Y{&OPB|K#dcPdlwpI0B{$ERIFy5)F|
      zY7>&Rx=qkJ{<Soa#99UhRtf8t<H@t>cp!rdF>oazZ}~$u5NyNs;!;yLPDrR)|4iN_
      z6l>P+<bB12QL}DGp2f(sK+wlB48<t+`a>lceSaDZWzUI>i^~rCQ3tBvjrd0i6{L`6
      z)VWGvg%3rWam?_|AtN!S8Z%^{W6C;5gAq7_h8A+1W#%MoARmkJm<xe6Gb3)gu{Xo!
      ZvO<@8da*)j&RQr$SqWRQ`F7k>{ss?RY-s=h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/PrinterGraphics.class b/libjava/classpath/lib/java/awt/print/PrinterGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86b6950f5358c7c9c081d8c4035e6d24c21b9453
      GIT binary patch
      literal 182
      zcwRg8Z`VEs1_nb0PId++Mh3a8#Ii*F#PSmTf}+g468!)WnOfvtlvt3FnOw}yz{1EN
      z09KQen3t~apOlrFT*An}o1R(%RqB<W#K<74q3MI&B%ri4BLi1(erZv1s#|7GDkFmk
      gnk9N5ootK@j10^SAixN;la+xD#A09vl1vO7037Bqg8%>k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/PrinterIOException.class b/libjava/classpath/lib/java/awt/print/PrinterIOException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27b6f35ab3aaa48f8e3fe95f3930b96de136e397
      GIT binary patch
      literal 873
      zcwUWCT~8B16g{_JTh;|?ffl8J71V8O*x+l8FI8f(;UhqOF(E^plrd$O>`tx!$X88J
      z6CZptCjJ3_1AoGJcUwr4ZlW)D=AL`*xgRsX|9t-eU=y~11fl#+ycdobXy@Elu6Fi9
      zEB)r~iw_-nu9fE+ND)@!X*VQ7E|9(wy|(lN_K%v+3A9a^Zg_5>g{#}5*O%%2Cxfd?
      z{M;azXJg3=tw>*a&RF3(A@fwZN<Skk+OdpEn~-XFZ>5PG@&;}b=3;mj<}gplYVSaE
      z<6XkMT^S1Ygxht7Xx&5-1q&96+>t#Que41N?pU~sCBjtLT0`^$Nq9WYK0NikfjH^O
      zdL<T}Vv%JFCT<aCTgsI?{j(G4ABI6fzU6gzje?iS{s>IzQxy=_TK{}4UfN7o>M?{+
      zydHL9zgeb^Mkw0x-SSHvczwSkw^Z0kakAt_n1(V>mE@0=;O(T5Vb6%XEb`%~d`~iF
      zVVdm>dv7?F;ImY%{enRsVbs22_8S(ed@jDO*1n+hIZ{|*n@5W6OMc}h3fRUHUSXAy
      z!cYVExIUs=Sc|_N?qh9K$%%X*UA;i*(~V>%0*@jYYe*Q$5Z3YFf0B=5lOIN`M}Gkc
      C+s07<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/awt/print/PrinterJob.class b/libjava/classpath/lib/java/awt/print/PrinterJob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f31fd57da91f7c1875978e9fd65a14d5040b939
      GIT binary patch
      literal 2499
      zcwU`VTUQfT6#fn*nJ^4OL9t%IqE$m|5(~W`P^yAdFd{Wd#Xg-(j_J@Llg><1{y_gp
      zAN$a&xawN{0sf>e>*_vdGLs=B>9Tpqnc4f>``fp(=hd4({{rwKb~OwzoY~_|Uf|#R
      zg}Q6i{KB^U7w)E0){tNrQ)-*ns)YyTJz@F`T0MX;oGnW2LEN$=+@@uUC5Dlz@Y~K9
      zrZTg|o?L`atU48;VVGg2T5A+KpqupChU?HVV&DWu8B)tu&GJ_m1~aoe45LM>Cbk;;
      zW#K;JWm_<e7afz^JKVM8yAtXc#K;gBP8vueMdbcBmd9|eZ-hgX(W+Cogr~?hNaD36
      ziOh!N*9k=MExu3GC&Qdo0ZTr4tCAz#i(yV>jzgrQVRH1?6K;S?nY?BSo5Ys4svd1o
      zQDHnKSw%eK4cp)5RnfiBq*!;{eeN%5xYDKRkzU7Tj4&)@`nc%lo|3E6+nU8~r%Eq(
      z4op$^EvM#b_<$xRvb-yJ#TK3y0T}LQj?5GHsTk#kFM=*S6yG(3=idsYCDA_;o!VP4
      zFpCU@5&5D<U4L5^hNQx3_=w>`_X&xmG5_{y?8sn0H83X!dRW<o75pFGo=R^^1{QFU
      zywR-5sswl8eAm88otinrYu(uZJ#`!%DiyrTltlV|^COv>+_oy*7s1R<*pBmUqaI%&
      zo|@#Zd#@M`cj)%S)oYHqZu6$&rtt;C6<)8~mdRyT3I{m}%<VPzbGBRuIY(_XS3FCD
      zF7j!q%~P~_<tZOlMaLTM$wgCSxZ35ScDuSdwy>??0mF2!*o!J#1Gn)d!;_;Oj*?jF
      z(fFgy?o%LIhT#rwiR1vx_BHT24W=@^@v@Pc7b5kN({N3(ZpqOZZQTo6b9rf>n4y^*
      zr0)*HfLyus^e%>=Ax)AYddrYp{?ad@?;gVVnVttQM*k^70IPUMNu&qb`z@<wl1Qzd
      zJ;ZpH{eg*JBD)icZvzP|684_5Hv%+HVG{E5cABD)=NX(;=Q*5L=M<*Zd7<_G9x=*u
      z1{YNXm+*cog1J@%6!&F{`)X(0Kg4*`5$`3+SDv(;NRuU9g3fD@k{sE$C6Z&2Br@|<
      zmOV$lli^3jFc}~M2K98EzVVDW=2W#pkMod{k7FG3isLiY86cT`j!)V})Rpj80{#}G
      zNk%luh=#UJM=A@raV(V^F`C7nIx>0n9~8?JrL5WtK5v~j)p<)+lic5?DG9oAlPKkH
      z>?PKA$JfX29%7Td!2NdZCdn`GnwbBgzP!dT-cXnRj!oG^lv>^jbTSq6@0jQ)Kbwv<
      lI1HNM5gs2a@k-RjYexoE)tKdwWcePg+)-Q%Un!d>{{piqM8p69
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/AppletInitializer.class b/libjava/classpath/lib/java/beans/AppletInitializer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0b3ba422992a3e6876879f248ea011ada104016
      GIT binary patch
      literal 254
      zcwRg8Z`VEs1_nb0ZgvJHMh2Oz#Ii*Fq}0T`VtvPgf}GS6&%Df%%*33`s?;KO1{OvJ
      z0kDdk#JqHU|D>$c<Pt^(j>P1W%(BFiR7M7I4Ii+4B3Lif2y4wSMh31-xIv5z)>xJK
      zAXyF~lk@XRQY%XIoq%j-2peKlaDHh~a;jTq4$vqu3}@<rjA3JBU}Rus00AbTt63S?
      T7(lLPXW#&eFfwq0#2L5%zYIr{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/BeanDescriptor.class b/libjava/classpath/lib/java/beans/BeanDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b95fda619ff0c96cd8c46a023e3ec419acdcfe1b
      GIT binary patch
      literal 1332
      zcwT)|+j7!S6kP{G18Hn26lx1qtF}TYg=(!Am_C%+5k(xWQ(p}<VjKvaBsl8N_zOB?
      z>5LEk06)rcpA#<Sq7OM|pM6<-t$j{@|M_(RU>ijlK8EFw`X@bCGjz+z?bCW-ICa}R
      zb=$TKi6MC@d}!!y$2Nu;3?UvVHFd{fSg45HrfxNI!d0O7k=d|B6~p3qyr}I_%6z@!
      zxb2qt)v$X&Gey%f-94&EO+coP8I~s89EnGyQv1YEK%goVgc;T+5vD@US4_*Oc3L&V
      zexui##5PiC*Y)PHZkznvb4u<9lL#g%{~Q_#ijP))Iqg?xrt+SyMS&kzxrk*3e=2<(
      zB2fty0nBh~RYeFh3a(>K#touBhN0pnZZXIW!>#HqKKoSqQlBH&HmycM!8-29*kA~c
      z$5f<{W|$=~w``plpI^Qw^{H~Y%!@KAHj$;<bviXi<TJ!5IIRUkPDLKu#K!5fiKQkp
      z#r0Vt9GQ$#b&m=ID>JC1Y=8Llq9gM9k1syy^`2aWs!QXqPC06K?7DGi@~euD-s%>I
      z!5WG2)34*Bk1m2vvN#244UL>7vK7pd?RivOq5TzA^IBQUuyf4)Ak&WpS{30g5JV9X
      zvf^GEqF4lk<+Y2Et<vs!f@JYF;X#|YXmdfR0owE0IhM4{8CJB-GbA%zT&rfoTV34V
      zm12_b8`Nw}lHPTpRkdsvTSGn@BnK#wj03WsU=B}-OBo3~qai$ph8M`8D!A@=y#`$K
      zJ+9p1L-A2$6?buuuoI+U2loj#Hc*-GDe>}y<YU;ygMp@pLQ_s?rLk*2vGQF6I8m?B
      aYeB>tOrS@E;n9CVlH(w6r-D2dS%ts6Sq2FJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/BeanInfo.class b/libjava/classpath/lib/java/beans/BeanInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53408ca1fc8505610bc788928ec18268a7027354
      GIT binary patch
      literal 722
      zcwT){O-}+b6nqs0L=luvKTzTcE^dH?izh`*HUZX1;>80gP!O`VWGRS$&4WL{A7y;)
      zva&$pWnX6I&9v$4_s{1S0F)pff-M4x5uH(^!ziB^xA--AUxZ+rKwJwp<paa&j96D9
      zW!9`_yJpp`r*^42FI5Q;lR&g4_(W1JpQ$}%0SqUryOr|1QdT^k7t?&hYFciDq5~`R
      z-!@+2aKNOx)g7C3o#9vthd{1Stgl^qDPI#vqvw9cxNI@G6ea{N3&j_|b8`vZ$$=vJ
      zbZWaHChxI1fk2^Xy3vo07&AwH{2RTwgwdI0w5Ko9)u9b0Uqx>vHNTd+zJi%4bl&uO
      zLpc<j+FpSKvTIgPK}!fNW>;|RzF;n%lD<pBe4_(~dZZ<$PM19lZHC=?#w)cK#KJ*W
      z1IMrfK|~={D})j6`fvpCo)7OMj{5Kcgt6Ti#NC$RNY4Z$^-Mup&&&d6(XHkQoa%W7
      MIrWplxz4)y1zY{HF8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Beans.class b/libjava/classpath/lib/java/beans/Beans.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76fe24c89f80ea1b09049c6d803bb3e2864207d1
      GIT binary patch
      literal 4626
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Customizer.class b/libjava/classpath/lib/java/beans/Customizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c550c7a349e3bb9d1c4266fb6fa493a05572994
      GIT binary patch
      literal 272
      zcwRg8Z`VEs1_nb09(D#MMh4NW#Ii*Fq}0T`Vtwb*;*$K_%&OEPb_Nzk1_7{CPGVlV
      zzJF3yYH|r917~q+35+eO;e)QgS~HB1K{7EVC7>w3AhoEZ(m4Ytnd*~ST#}lXTExhp
      z2Gs+x54$R`Au>g&x%p+OxXj@S&Mz%WPIb%7No8c<N4Q%LWI7uo10w@70|+n!y}`=B
      X#sKmTI|B!p<^<6|6<k1)iGdpcYEDaP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class b/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c13217644ffe7da56a7b0d04a44f01cc852fec7
      GIT binary patch
      literal 3915
      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
      USts9?dYrWXu4;<!DV*Q`9}sN+Q2+n{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/DesignMode.class b/libjava/classpath/lib/java/beans/DesignMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70c1d8367c3483f12ccea7b761257cc068e81978
      GIT binary patch
      literal 256
      zcwS9U%MQUn6g^Y4UPUAp{y;YxYb()ODS}AY4V^S2HBHR$aTY$nM~SPOc6D<e_uP9v
      z-`5+!1U&~9!{ExF+&>Ghv>ym96BT8#a8PCF<x<L3;;+wFaWM?-&33&BxBKI27KIG`
      zWntNwyHv@P!JTJH8?MZOrw>s_gP|Gc$$NPdq-$Y<60VL;-hrZ}F0+-9ccR5z_PAff
      qLZ(D@i~q*|yEX&)s0+goHP|#ALKf<<==~;I_}6H|%{`r5>;3@3MLVAW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Encoder$1.class b/libjava/classpath/lib/java/beans/Encoder$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bb7946d625fba0a76adb3379aea84270209e23e
      GIT binary patch
      literal 623
      zcwTK#$w~u35PhADiN?{m#JD0JJQxqg;4z{?q9DWt6z`p}j2*@vneK>x;K85Kli<M*
      z@T0_<o<S7T&|S-`_o})+zurFpG_X=cPN34453=4RsZIS*2hlaf>y08jfz@BgImJd9
      zOFE!7h18Rl1PZ%KE4wF<->6*)cr7NEkjI#h5flW<9i{1XaMz{yQg%aT%ygnahF3CH
      zNt`7;d#j8<wKHszrogz;#!79KYr4OY)`e2{>Sx_P1-3ba*{uCZKHkS<jEXeti6|N5
      zp9ljiUm2z)P`Zc)aX?2Z8Q9PATS+O0$68a|3Z*f`|0pvWMn>u03EA7|x`;*Y_g~e=
      za<Zf~Lw0cArW-j3?T|GaY=bw9<mCABW;rghx5HK>nawwhzB;(XZ^@NC!DDcoJwGjC
      zJHgh&B+8k<K_;9NFF)*ptA2LOwG_>mi8qC5hvzVZS$^}VxM&Vl*Et;sjLy4W3t0LF
      D6jO=`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Encoder.class b/libjava/classpath/lib/java/beans/Encoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69a258f6dca688c2de2142322f5f129e045c71f4
      GIT binary patch
      literal 5974
      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
      Ip8R?L54O6xDgXcg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/EventHandler.class b/libjava/classpath/lib/java/beans/EventHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e0c30b914a9a37659fd6a837b7876fec1a7b4eb
      GIT binary patch
      literal 6940
      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
      Q=;;$pemWW@4{#{;AIGl&T>t<8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/EventSetDescriptor.class b/libjava/classpath/lib/java/beans/EventSetDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0241e5531415627a71b7c16ab7d5ee94f762ce69
      GIT binary patch
      literal 10501
      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
      LarMcUQ~mz}<CM&^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/ExceptionListener.class b/libjava/classpath/lib/java/beans/ExceptionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..897171e5a5f45ee7015c752aa04494e0f3b2320e
      GIT binary patch
      literal 179
      zcwRg8Z`VEs1_nb0PId++Mh2Oz#Ii*Fq}0T`Vtv<&<kW(a%=|o`%;J*NywoCg1{OvJ
      z0kDdk#JqHU|D>$c<Pt^({#2OCkc^`I@;pWc2@M~FGPpU`nqiC#T*3LJMaijdnK`M9
      j3}P5|=z;XHF)}bRFf)JvBhX4#1~w3jfgMOPF>n9?caku(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/ExplicitInfo.class b/libjava/classpath/lib/java/beans/ExplicitInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..857e0c33ebc6f19ee9c87c0576bb95c87cf7927a
      GIT binary patch
      literal 4484
      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
      Xq_P%&B;O#ZKaodtb>Yu4Du4M8C?=lR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Expression.class b/libjava/classpath/lib/java/beans/Expression.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7082903c9aea90e93a0b3461baf4d38f6f91afd
      GIT binary patch
      literal 1633
      zcwT*z+foxj5QhIrLKec3U^oOkgNS592q35&L<NJQ5wyTmQC{dK8DXg<iJJ|@jox{9
      z5xvG!Vo8+`;6qvV%x-ZATO^h2Oiy=z-T(Cd{rCG1fH6E#;A808(s%S!j_burD!p5_
      zc%@>LiV6Y@okxyVZQbVEyl68tJzri;uQ5b3^4!#m8>yAt7SG!=bhx9NRnE{nn>UT3
      zVb3x6hvHd=z(T3O6{rmDjbS0QBCH~U7KY%gjA{YH85K<kGDI>)kuO)bbKF|fb0!z$
      zQeHQ+x@CyHYs?IttmjnAs%;s?jhPoGo#NRL{OA@X#TcefPkdS$(MGQdMYIvHH;oEI
      zEaNFSNf)$rYlD-(p>1w&mI}-IHb1Vii(+UY&#Jf$O4#8+CjBW>*13w#p}3bvD7~BK
      zWt-R)1y?E0q0hldi0Z$lVhH`jER@o_JYTiN?N$!5cX_BI?z`D8IpsDM;5H!?9#N6N
      zu!2#NrO{!&YM2FXiP;!eaUBy*PYb4A5ltUUDUFoz25u?1NfXm>q+$xg3<|{yQA3!)
      zZ3VN(M$w_Fn8O|NlvBL&nqknZJ+E$3xF_aizCjW9Jf3aFeFk=0I4-JqfQNM9db!Mt
      z1%{+o#0itDh-8gWG)+#`6yvg5s#<xzXo$BUayU{WA_4m73jOrH`*2pgPI9HlXAsTw
      z6(bs=U5f1D)4Gq=^*Y+Vqy4LNj?#Zf9!}A75*^YC3X7oA4c<h6k^^CFIN2Mhqf1Nt
      zM9*P-SeCFtxTk2tGnr$;iJ-F1NpM(}#pLQdt$cEI0T*R#7?*IFD1sVusV`|Cpl3u&
      z3?~Kj8`?dvuPCuj>zu@DPRIc^B4JFf1k5K_0_G=cANt91g=_*nAhAni5&kjl2YLwk
      z1+AJ^!yuuBWv>BWrl2>pw<KP5LR~yVoC<QfnWHEH4>oA$X#bYfdM7h<J6;D31YO;j
      zc$eH<7LkS5xK>9p<JS2Z1N%s=i(L(4HBA1(bRBo23pJz@^s8ZMFL79XR0{Q;xF1N6
      Yj~K<LBm8lf--IL{k!*thSjJ}l0}+-_hyVZp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/FeatureDescriptor.class b/libjava/classpath/lib/java/beans/FeatureDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b3480160e51ab5049bbac886f8ac33384821b5c
      GIT binary patch
      literal 2393
      zcwUW^%WqRh6vn?v{PxA92}zssN=h3X2XI4MN=Zn0Bq30fq;+LPR$RwJa>2Q_?jtJ8
      zuG@9@uwm0mAdw)b#D+?hy6V1N^Jk!*GaftX^|-2{c;?Q0=R3bU=gj@%?aNmHrcq9!
      zPvFQsd)qEnrS1B~MQI12C+DTV?m5k%;Uy6h7*LA3?QRrTs`uo2AP{ryEh#Wq+S@7z
      zp5t!J2xM!H->lmYmX&0{-)wk6+tF#b0txwDQ+nhg*63l=snsN{rkkF;D?LxvXufUN
      zL%C%8n*zhF9AV(pi@Xxp)w-lK>9VuoDqMjXlV-LXt`vQfnK^Pw%sQ?U%n9`8CoA-B
      zR~t2%K|h8qyo13c-W3=!_-8PJ;WPx^w{QSCfrBN-mCNB)ReImDfX}C~Zr3Ze=kT*$
      zj0KyHFL12%Uk6WE$qgB_&hSuvvin^)^9L5<NRZTTONaB_N`9#vna%Ijg@aF8NOEw_
      z|JN41ENRP;s&T-Sg%lDQnw_@r5ynXAcPj-_j=!KQOeea=p=T|mk)fhdKzlEiUt=;-
      zFR2z_-RBmvZQYV?jI86Ywp)WWGZrk?Sfp9q>zNc$SGa8iCQOIWU3)IzB@35vg+M7f
      z5~x*%KuYF!lASapGq_YZ+oFYQSfXsrkg}aOWc#1_<J+y|gQm@#9S}w}3?$c+T5Yu5
      zKdONj+;B^JHrI;8r+e)guFsr0vK0%fC{g|H%LinhDK|oIT`oG@+aq0#e1=^xPIc?2
      zk4}>Qsbc{(Z;dHEQiG^5t4B+Zbhjw_AkF$PK!1X7CH)T3$`x`IG!7J=<51yOjNE>X
      z_jWM)RH+ZsZ%*YcA%<o0SiuqHtYUB!$7mEdjxp_5q>=aHg=ZLl(lJS>#mc_mcqjM-
      zKGeZ;r0!#NVQL5Cdk7h|dWT|c<uKAxX$PLgRR+PAN_$<@AVUN)@jEii^B75fiela0
      zhc(o}%A2t!qF5m%-|m5x)L4^7tO8^0;#3Q(5XJi5h;_z{RfuB!Kv+Naz)ESXB0e^h
      zZTja3$WO+yeS%NBKo0L<ItucTVjlGX;g03RpBX{UML~Wsf}A&loQs0IpqQ6EK(ZR-
      z3nR#dD99@#$gCOULKNgR#r)O-#L^%a$)nvdEw40zj85(1%V?kcxz8%yu}XLD#8u2|
      ztDAI{`7&pf)u~-9+={aOMdRPfaI7Wm7-qF0&#vPJsRh2G??RvcvfNZD&gx@Jaf)3m
      SM`7RWJGoTn<i1v_Z~g&f@0tYw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/IndexedPropertyChangeEvent.class b/libjava/classpath/lib/java/beans/IndexedPropertyChangeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25748f37c9bd0d22b21875075aa8c15cef0ee114
      GIT binary patch
      literal 811
      zcwVhi!A=uV6g`*Dv`|}G3W%VBm>6gk8`d>!3Yfu(7{Tse+n4g1;f<MjMfeH7gbj&?
      z#04L~-e2G+NC<ac2SQYg3m5a|+&kx<bKl9FU;Q`(u!`q7j1XS*#et}|rO<KR(_MKe
      zyC0(Pvy9A9b5H1=+&GZh<lqqI?@<51A(UeoDG{_}6su5w^41BoMJP5y9UGxdO9TVy
      zUVi=fvp9LtC%7sxWRge7zEN74HG;qFTc3c1>)Y+V?3l)#&W?$c?lu0(NjqM(MR1y7
      zSLTsHxqt#D2=D%zezi3Q!ejw?JRp>OrRDp<ep^Pnq8&&=#Sc52hTu%NPMeO|Q!!!5
      z|EJs=984SzqK=jOZ3C9mV*i(K=?w^@VbHaaGt~0S4eUwd4Rg;dS2_9ojy2d+$$AU-
      z@A5jaz#?Bc!~f3+=HMdBRnAtU{BRBy6DM8dbDS$<SwOk=^3}?$bBa=J+Wn5oiDgdl
      zId1hfFosQ(@D|fttqo`J5Ho;9k1)%M37W%Wo=nga?qw``%E+-O*}-MzJQmUo>ikY7
      Z-P$))j&E(Vwz+NX3PVC_M|fsgi`U6OzyJUM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/IndexedPropertyDescriptor.class b/libjava/classpath/lib/java/beans/IndexedPropertyDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b15f18c07034e58d35f0ce40bf6f94735a2fddfd
      GIT binary patch
      literal 5909
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/IntrospectionException.class b/libjava/classpath/lib/java/beans/IntrospectionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ce546d321e4c68ea00d5770af4390e702843ff1
      GIT binary patch
      literal 440
      zcwU82%Sr=55UkEq*2KibM9@<Rf)8-<90{0cAhLLg?tOM0;>cz;>`cVp@+5fh1H`kx
      zA@~7e?<#sw@X}pf(^cI)Pwx+p01mKTMvl<A7B|8Tq|nA4Yn#MoE<>wgeR3Phc?!xX
      z5Sm$AB=pq%ejwD1Oq7UxnHa7w#>WIYB~*v8Hdbisi)bN>&x5y@?(1laP&!mv**>AQ
      z?fn=|Y@+nEx8oBE!}wA<$YZ4f2g`(-r?fm<%mSI5iy)GOh8KrCQt)7|zsQ2UQijm=
      z{=KG0$j{6)_4%~{!I{L1B$OkSnr{B>u%GJC0UPl@5;jmoiF28&9F`bSx;w`TGkxZA
      moJ+fV_o&`wJvEL_#vZYDfI6f0XBSq{05a6XTISWtH0=-Xf@@v?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Introspector.class b/libjava/classpath/lib/java/beans/Introspector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6f290801ef6eb187b719ef7f47c790791bba607
      GIT binary patch
      literal 7027
      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
      F{U3Ga5yAif
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/MethodDescriptor.class b/libjava/classpath/lib/java/beans/MethodDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e19b45f677e69da805a6ffae55b1acfc67e5c847
      GIT binary patch
      literal 1028
      zcwU84TXWJt6#fp-MljkI3-pG9^^&BHjL%eFRMeT+=~(5(r-g2597sA#@OSBqtusFO
      z1N>2rXE(86q3vWQIlK98=j{Ie^Ya&gXK*ZJ2%De97t!cS5sn(~WPBVQzLcY$3Qpok
      zS;!H#rT}dz;<1tw1c8Qx4c}k}BJ4MmJQ~PeoN6@*t0zK<p^T-P&_;y%Cx1$Ke-^{k
      z#oZtb;ufLmT<+j@2)P&0p)4SaTQ>5zO~^WKr+{S?EvyjME+gBxgH?jnm+>C^b6Cfn
      zayp1r5cZn|5Xv?xSYznuAGGAmBHd1&u^ToPut-?)gHY~`hh3>Yi0*(nML+6^K}V=S
      zuhY$3d>rsVs{R!x!NX`>F@tMonFOobuyBJ=;eO|!IK;N&UaLjOGe2?W>+#>jW=_9w
      z5RFw&wgcU1>0(<?H4}A?mgOs%;fDujD$dE@9RJBf&;KT`-Wvo^^nSqhcFwSLhLX2)
      ziuG@Xv#I|v2Wawp7dD<_1ubmxPB~$sio1ZRv=bTqd#S!;jLuP+(f6L5qBb!pGZ}cr
      zCT%u(%_eVn@2xSaB@*XGmDEUAx~UA;_pzN?HcSLy!TXNd*K>n}ux|wI1ds|69^l~|
      P^7=*c$GPN32KD$ar8VCo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/ParameterDescriptor.class b/libjava/classpath/lib/java/beans/ParameterDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..061e648e6156de2c1ebc3b863f4d9caab72bbddb
      GIT binary patch
      literal 316
      zcwT*uK~KU!5QX1BX|*62PacTTn{c4ftAvY&Q)5gd+^2OCmq1IlTmF|P5)b|Wf0SWb
      zN#tPIP2S9#d^369Kc8O!?r<KULAYA*hNDC{E20;+yb>q&Ns82(waaY)kI+A0royhY
      z@<$N-vB`{^5Sq7xIl+6(-y}p6ryaE56MC`9<hfiWVrQHzg>Vt)DKF=2P38AP&%K+1
      za2+2{^gsw-^U|g=HPzbXKg_5)fg5NfRFCv)6xBdoRC}N`+~VXzn+8HvzaHMBt=jno
      Mw4T-L-J0s{0C=uSi2wiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PersistenceDelegate.class b/libjava/classpath/lib/java/beans/PersistenceDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7612ea187f517a42ba5c8fb83aa0a1483161587c
      GIT binary patch
      literal 1665
      zcwVJcOK%cU7(JI6prup$pw@yGTOTcNtgWwtv`X8kA+4shMt1|;;50ChnW0sGg8#t8
      zt-9&P4JIyJy6{ICzk5MQ3#f@K?rXm9ob#RgU4H!h`VGJmHob5$gbwsWJyqbkX{R1@
      z%QkF>n?=6CE4-{b+zXXqT*g#%vz*!~9PpyU;K>-K;ba+<aAcoB&DBcW2L;0#-0(1r
      z<qeZ>H>w40?dgRIXPC^_ih5;Vw+yjwAF9qv!)BPv|5-(v!6*0(y<)tfw0t<<m6WUK
      zww=zO);RE_#j<G@NwSp|>W6oYvZ*@_i=cOUpfl0zf1vx|$5}6?$dXgI8m4iMVYJMh
      z-A0{TMRCaB4@Y{6^C5uqUIfX-UJ?x#Fv~DaIDM>RSnf3|@;ASIV7RE^493JAy{;3?
      zL=OtXNUc(OXxffWx#EU<JfRSiA9X{NT7#Nrs-IO1u6l{eIN2sd-ENhse)mH7N0#C6
      z-)$KQ_i7k)F99SpB#|OjWF5mopWI0Ak+5b-!*wiE<5U|C*=6t57#0Uop8$LzUdas&
      zH^to#5wWaAsJX4-j!@&Vc(r!O1y5Q-26w4QLpn(PFD`WLUyD3(_^NJk+cs*Z?4~sh
      z>$pcvDedciWC(@_q=}a@W;+(wt2x~)86_#kw_9siMZRT-JDTa!OG$yI&QmoC#LrDD
      z`ir2^OS=@!Oq@o)VCXX~T=3E8k%uc7p;2oE&^$`BDw>j_#%1h;1bHt3flzEx`G8=o
      zNv#-AX_{Ge2i&oEBA_-A66lIVpQd<Vm2xt~kfj&8j#=E7Y}po4n@z0dFfSE^a0!=*
      zQ>?DgN|CFpSRhS)!d;{cH^LpoA~Pb(iz3!8_bo-JG$-SvF1{U&C7QVQ4iiz@uEY{?
      zlKBaK@$uHPcr-@))h4oCUxHHI7L5<cg-4`%o0RMzfhSUZw1wVLpOl)JTnVKv$_!Jb
      zLcJ<_xUK6seG&Ee<KHnZv=H;kN4V8v<+wwBMut44#C=TCEC}aXX&pj;htMxga;d6l
      LVcIj~B+|w&m<oYZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyChangeEvent.class b/libjava/classpath/lib/java/beans/PropertyChangeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..405ba52f7a16b19eb6f753105cdefd0a706fc18f
      GIT binary patch
      literal 1375
      zcwT){O-~b16g{uBQ!G=c$VWj%s9&@NDvB!&8`K1CfCO#g^0mB_!C{8XOhMzuwQCoy
      zb>T)6O>9sw{s4cJ@!mIMkutJq-+lMpbI!fz&adAGKLO0+b{YwRi7mM+D|ICuzq01J
      zJIV`QENx1ssqXJ8CrBeHFsy4@fn`^8a<#st8i7F0SDq#9n(}<hb)GEW6A%vtvP-Vx
      z2hs^@(r&4g{PFSahr-ZH0dpr3SdrUGV6durZ4#@j2cG3L?+EldYER>izlW0i?%EsC
      zdzR^BQwAiyydhxRwHzy06nHd!5_wYV)S4($tO+ES+zpjM4~9(SFidvD&=+fGATVko
      zgFcSNO!Onm(RmXlvH}BD%TX(>?Yi<F%et-Sa~tHIBoFBxC6mFX<qJ$!Pu~kUVfb##
      zYY@Z;EukRvj<lL8SUcwR&~!1*?LI18=@@>zsAD-7t#(|erEBhv@jPV7!~hSOYj!=-
      z!aUcu>$34opzxRf|6?&(#l$4C8H(oF@v}6Tr~H;pUtDHg&-}n*tMV}fbIgw^!uHTd
      zp29f&47#Q1mOwAj(Sj(>@ly2Jug?VcPiLBHNs|5t>GquRDLO|=<$ath&9o_+Z6jYA
      zOSUooMdL2;yRP!-KOp`VaqVIld$>s1g^&RgxCH2kh9iECxR->ErYP5=qXI=qdcTY-
      zQ5O|Dxjt3;ijmJ9Q9~zRX%RClh(rXg;#v%Nyc_&F7JNMxobLv|i3Ly7;30UCs(Co0
      zRBoeqWL8FJ-x21$W*7;pItCef6)aqiZKT-U$fuY_fEmn2;5yZ@MBxzPDG|)Ek8B4|
      swT~OsGP6>T<s;@n+5zw#qxgnA4rphG|1?{ORPr>;O^Ud=TN=CY2ZzrGW&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyChangeListener.class b/libjava/classpath/lib/java/beans/PropertyChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..336de4a3a732d57a49c99d889823ce0a7dbcea40
      GIT binary patch
      literal 230
      zcwRg8Z`VEs1_nb0ZgvJHMh3;K#Ii*Fq}0T`V*P-k{DRb?l1k@{#Ju!WpUmQt)V$Op
      zb_Nzk1_7|L9H6+qe^ORzatS*F8zX}_ShTbxGe_UGEH$qLriGD#uK>j?Mh0aKADlLU
      z^;&C&F*0xk=a&{Gr@Ce40JTVCcaI*(9H8Zl49q~x3iJyj(1Gj>93U10Cy-=f-~s^N
      C)j`<+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyChangeListenerProxy.class b/libjava/classpath/lib/java/beans/PropertyChangeListenerProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e9a0527abe8a614bf715497e22a24df9fed92a9
      GIT binary patch
      literal 1124
      zcwU85O>fgc5Ph4*apO2io3?zlgoM&Gu|o|a2c#k{6-YoRMMYIxPENW?UAazhoQhuf
      zAN+z|L4qJSAa0TPQHa^CNk4+(gYBK2nKy6djer07@e{y(+*1)_C>_{Gw$<Ra*R?kM
      zc8B}H@!G!awRqj>2HfL5-M&9o5ocJCvAw`?ttUs^3ob<@7>bc-40<PYtlNj2Ay=0<
      zE(KYef$w;&RffbP$8&<m3=hkr?s{aA)yft_e6795HB2C_BZ&;r53xoYp!g&hrgW&7
      zWXRSXkFWO*8{B_mH(W`w-L%~;+joQ=UdDrcr^`@|<|7A0ZB4qvDJ({3Q9`D3!9!_d
      zs>zn96%9AApkkgOKR#B+P2{QF77sQqXfj)_jE-GH0k>5YX-=1YIu>z<RO9b@wo4<K
      zJFnWS#sO~<uU(BsT+*?OGDC`Lo~^|Ezk2_XCItnCj;pxFpm5=0C`1i`#PMV&+Ge}w
      zH~CXX2v!)Q&Wb=pktj~kqlj$~%RqmMu#*tvQ)InHjBbFGQT+zpFux-Enamib>79|T
      zXO#Y&5?&xjR^c=pGnfVBNx(9Bn!^>!WTLqc{zC{~GY3%F2~@L>>o2PVq>V4g4v;@V
      zrYeqo-1>+qqmQLuP|WYB#BjzVhd8~rk;V>6*u?|9J;$Xs<Whr)DpgLCD0hjK;6f`A
      da<S+ucq*dary+PkUhYXi{WKs1WLS|=)?csI5+?uv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyChangeSupport.class b/libjava/classpath/lib/java/beans/PropertyChangeSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..030b81a208bc5e3bd7514352cfc515de100c42df
      GIT binary patch
      literal 7022
      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
      WC|Z%Z)Q1a|hgM7|C4pe5;{O3#i=FHM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyDescriptor.class b/libjava/classpath/lib/java/beans/PropertyDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4197ca89fc56d51811717220cc4f0ef612b81c8
      GIT binary patch
      literal 7963
      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
      NXMQLpZ&yRj_#-~DgfRdB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyEditor.class b/libjava/classpath/lib/java/beans/PropertyEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d37a5823d917c58dd947a35dfd672d1c4472fe23
      GIT binary patch
      literal 727
      zcwTi<O-}+b5S{w9;uolhBB+T610LLX=0pe@jfq5z2R)UgSxT06({}OWr+M%P_@j)|
      zx=I#x5Bt)Y*Eesb^ZxPr1^}mU;K2-m@{o?H-(ys0zoTT#lzDFVxsl3)IRXWjj;ILz
      z>)wzBhQOj`=8i@QBd}Gwn$9=scSs3;D8*X+H-|tDMVk7SJ(($$u2EcsPGzb66tLKE
      zDYOTx1P&*xizs3tjhZS<MogF=A_|8S;cV?xnSh6sTN-Lxx&H7MW0~s?<-*Wjge}b0
      z>i6g-wvn`}<J2;JH2%4w@qh=qF$vvZlPDN5*GEw&aV(Y5twb9+`kF3*Jle=cO5c91
      zMoW%jDX=;8Q>Oj?_v5q%sLZaoHcT+Qbd*}jK4F&SY*ZB+$uav+r-F7aQRqT&!)e4{
      zs2%9nNU-~^OjN+mxE;u5c2Q1j{RILzDX`xP?#(<bfZZPt79Hkb3G>UCokO&YHORY6
      k0oEOEz^20@Y&k5Y=WW<=ScYAPl@zP?K5FgZe+KqH0j@p9V*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyEditorManager.class b/libjava/classpath/lib/java/beans/PropertyEditorManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f0aef15be706e69976df1decb6e52f3d2f08c7f
      GIT binary patch
      literal 3761
      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
      S@Y{-0(Ndfjf~AlipZ*`wnD=4;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyEditorSupport.class b/libjava/classpath/lib/java/beans/PropertyEditorSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0c495dd022452daf9b8193db4ddb17ba0be15ff
      GIT binary patch
      literal 2744
      zcwUWF-%}e^6#g!O{9H;10ZLjiEm$CFiN6)86a-pnQ;G$n&`RBeHEd_Io9=FC?W>Re
      z1^ok@zWAUs7REATXME5ZefCu!^-W)WaXfeTW|M4}X_?90-FwgXopZi(?%|jJ9{&K~
      z6;vYVV#wZ>_vAuZk#(!EW*T+Hv_D_oQEkIqZ`A9CX-Ck_kaVmxS+5qZm2WE*+6^;|
      z9EoK}D0_--uNw`sqA;Y2eu7zso;_J>&|$PLTrr$322d{U5=;>`gbSZnb=96@2u)6v
      z7`hjY9VLzsk`g5J#z5{QL=cT29h_eWVH^V(;>cl!!O5rNoGNj~5eac582XB;uB<j{
      zWyRc(%bJs#QIWNhY^wZQY<Anbs&zy<9qP_T@FK%#%j;@G)7A`Cw-s~wUPY<fs-Z`5
      zifop-pjpdNG+S#}c2+m+Y+1?b1euOw6k|M%abFtiwyEmXS*}#r66J_mie2L3^VB9K
      z#1Q2&<Rs*AmQwmmHI+`W7-j-UpH?eKKk}z5cT1w!RpFW;JvkNB775i_lSu$qNviP{
      zL%hy+1TH5ck?-1tOQu}kRV&tPYwJ4E5TT|xu342~Ai$nZs7up9FoqKp<YhWop*~Y(
      zO}#JkGPp_m;}%jxLAdVu@v&`&7{M2;4dtHA+j36A1<X+9w&B`Fu|TH0YGi6PO({vQ
      z;8q07)IBXHE1ITMWo^N%Hfq!bo?#r9uoA)h9XHhVBH=QwP|cM)4Oz2}=<TgIHNaH~
      zXD}Sc5|X5f)p=V*dJGXtYD2C%Oj9?4Ec(b|k^0i8HHW}ZQz<U+qEV|GIz>;WY0GVY
      ztJ8i&-r4EwyP|5@imuSvnaQJPL(_^Xⅈ%LJ1#HE+p{SbD$Vbno7;sQ-aSq<+g;I
      zoRXKeIn;RVn(uM<<)X@aHWPT&r+FYaMS_Ru*F!7#lmh>Yi6_k%TKnmoCK;{A=&Ois
      zdIN@X2k6V?9-%*Xh=EP|8hnJ~-_l7JGPI`14p^b}3h@;&h^sh3JCcjWNxVQ$&O9ub
      z4YKW`=LBcY|BT*4jBci~2RQvCm-qa9hkn1S48pW-5qz5hzeTQPA}v!JRUDT?F0F9M
      z-(Dg+DhO}1wzRlalDnE9FUJ{U`<QBZIp#>DkyLlk2eXYi=`km9PB2fSAealzH_$_*
      z6W@4rVQ2Gxn<hP;CNI<fLl=BjfV)Cp`;cF>A-g=}t9VTyFVK$%%vu?^z%LzO);;th
      zXLucNIOhy+;w?fjyp0(_c20y5O1<OH;6Ym)Auo>e9&}DX(>(p3(90kDc=sWCQuBVU
      zuiCiM9@l#qC#ywz=bg9Yux`-~mp+qE&F|yl10-@(t>Qx@4zaX(fYm4dPTZ$1JfL3w
      z9wT_%R=kWSK?c{b=0y7euKV?8{#btu)PEft&qV$ji2U$5YW`awl7@>wE(ld(ynpli
      z__!rP+&TE2y7P~=<YQj)F_QF#<M`&0bf5U?{v^7;o<W!QCdZ7J9EqUY<r4l)&wtvI
      uOn6D&3cOGKer^8^yicEc*L+T-6m}+x&pnHvheg}+348g3y^$e1nDYNMGYKC6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/PropertyVetoException.class b/libjava/classpath/lib/java/beans/PropertyVetoException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30a4aaaba16b87eebfc1c0ce91396a2d0d5cab6e
      GIT binary patch
      literal 708
      zcwU83O)o=16g{_}v{jV)sIRgREzww55t||^jga#8)0)(in%BHHZTJQL4hfN1_yOXt
      z*jbDFMxzlgv6z{A=AJqCo;$Cf&o2Nrun<RxkiQgNQL0O!ywb7jw56+WEUBHn>xOJ=
      z+fi{u2xErT5~^AHNf1Un>Dr=YN!Me1R@o)cAz`TOC{GKeEz#=8D7{_2-!8v>5W=#n
      zxneb-Wch-%<z81Ry+w#^+sf8Egw2&|zj95xwrXzu_q<>cB4y`XCJ@F*3Mq^dvH?N`
      zYY=QLg#?m>;i|3VQRk{I-BVF-NkXRTG}xVBkBobl5q)8Mgr%S^e$9<-gs;4&FY~7|
      zA=&76Oqgg&9bkpatQ7vUOGwn5j@yv?w%=bau$gsV1dD7p%zqz34pGDy#SI!j#-D+S
      ziRU%Mdz#S+W1pWau0CP7xb}$5y&;YBo;Ili7OL>$Lu47{zv-C3Bw(T`OtY9D<#_q>
      hGnnnkm-zH^(c%L#cR#{0b6GQjsc%A0kT7Rh^Iu*vt5*O3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/SimpleBeanInfo.class b/libjava/classpath/lib/java/beans/SimpleBeanInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..496ecd600e354bec6b8fb336d93bf1822733ff23
      GIT binary patch
      literal 1664
      zcwUW@TTc@~6vzKl3JYZgx!<f7MBPGVz2c>4qNuS+Q9>&|n3!zap)4-D&31~C_zApz
      z5g+iS8XtT$@k1HUUZCxEu|Dk1%sJ=xKQm{}{QmRfCxFYiBO$^twWIB6YJqEJRn6(U
      z6@%ZWdB)tbBt#ibx^6==%j(m@4lfD`Jq#mF&|x@3&x&s9;x0p%lH6p7u39A?Ll^pG
      zNa$r4%<3k8Qrj(XJFgWC&M=&{ikh*h*}Aj#jZv|!R~crq$L=i6FjVHkSw7&^qODhi
      zWi!N;WHzv|hMSmiVjk{sQ{=d4I4ISel6=ujwg(YCT6PRuTFvl8GG>XtanG9Zq}Oe$
      z!fmntPwDm`lAdTtANqZDC+Qj&+g7PXH4#t^hLGkMk@rd^UFepn8I4Pt44_Rll?cfc
      zEtBq7$@rzzUJEs|tCczVdv$W=_bYTqjLzI=SX#;TG0ZF3Mx*3}t()a^n}X8|^D@ri
      zJZVv`RYR**on*--*fmn9f&~dlYMOvc#v)P-{lstZs#UX#+^O=h=}j)wXB$~kT*4&@
      z>S0Se+sa#(@k$pmJ%%e@OZm6pJE;Cj(<ywbD|JoAbu4@5@N1AzS~G@K(4c;IZp3N*
      zwjEP5)og=dpjC$<mUGYfNOzvcNb6fza$+$Hg6Zp~mmQ;#-W&b<Xr<D~XzX72hS*n{
      zL?F|@$2G3v1pQ?%00S7LkqU$%A5QsjgdGIP$4zA9h#ba9M{+%s9K~3WjC=`@&qK*^
      zOmxioGL)SBkDNS|oWgX+oJJ@)gHs(z5lY5!+9#K3jD(VJU2@#>`lK^EgM^!H7IVIa
      zMb<7F<BPx0%?=joIJ;QKg|(Es{EmyMI<7Y4rzrvO4pF?P*#{E-NLT%d3i#PgnefDp
      WQpRxuH!0O1S#IGrsW7BnwUxiz8A}2H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Statement.class b/libjava/classpath/lib/java/beans/Statement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9eddc2cb449eeaef2ccf6c20351cae1258c2a6b
      GIT binary patch
      literal 6040
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/VetoableChangeListener.class b/libjava/classpath/lib/java/beans/VetoableChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbca45eea90a1aa4e760b198c79b7049eeb0f5ca
      GIT binary patch
      literal 291
      zcwTK!JqyB647_Od`Hh={i{he-#o1AG5)=gY*Ald)yh{5l`qv!%0sbg4Rulz?kmQoP
      z<Zk!N6~F{7g#w`;>P)*HYm>TLwz2jip6#{S@iIs)8%`7)LOWlJ1b0_n$i7u56FND1
      zv_a&~GdA{3A+)j|Ey7^9{JOMG;sYo4{F>(6>1a!+%}+ibY!I7Np-$-i;XJ?mtO;ck
      o9}}M!K_pkY|1FH4GV(8>C{YsoB%Ty1(p9B%B-bPwQWwyC0A;{ZeE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/VetoableChangeListenerProxy.class b/libjava/classpath/lib/java/beans/VetoableChangeListenerProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63ed47f3b5a1545ef1f88ef8663c3266679a8d37
      GIT binary patch
      literal 1185
      zcwU86O>YuW6g`guQ-%R5wtltZV6}xAENWSp)VOKtM}ieoL)y9;=nI`@I)lSN+KvCi
      zU(l^4iqVB}N8*n%-uFOSN>diYy!&<Tx%a%`&)=WF06fB~f)K;ffz`2!HEy}BVwDG;
      zRde|IzU4M}*=_~g<$lHYj*b<C85U%2JFuPNMu)q>xr``7b|M;s*7Ut5_k-h2>yR^~
      z%d*Cyq~ccK+iqixA^OyI?cf>1liYZ?Jh91IzRD0@_x8AoDI_$+kR<v8tnmRTKL&;w
      z4GN|iQf1rao9)9I_umO{LDH*RPSx^lVGo?)VBc;r<R<fx3!<^6o#7T1Cs$EHvNIB)
      zvXO3;!6y4rIg%V*-8icAW?*}6OTj#YenE}sIZRV=8+R0B7&4c`YtWIU4K;XB8If@|
      zmmgP3#Uk!2xJRo!AJedeWfGcyXj=|#aqg_pZ)yj;PNVFqq)J|c0h1w4Jx_1Z{QrIz
      zs2N8D4>VlI4TcC8AzHzty^)@-oJ8I7+J2osw}r;~C4#O9L}ZEL6g?4ffyDixk4xAw
      z2=Z~V-XcUEAZ`@CLo>{8NPQtQge&x$l%W??{*nq_Ax)OvPsdfv0`eqanLN$m8dWke
      z9KCOnFHF`g+34e-QOWE<VJA?`E*4%FdPo>wk?J9Hf@DD)ySV!aGe#G=--wt$Pzd3a
      zQJN5eZ6vTm8tq~g@6WI*4Ox}2f+F=!U>OgIpJ1iSbqFpZA{a+Rzt2PPsC4d0K&_uJ
      M0A%!+B(fg=12e`VZU6uP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/VetoableChangeSupport.class b/libjava/classpath/lib/java/beans/VetoableChangeSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb27ac11e459c11180d372ba8de4cd77e37c23ac
      GIT binary patch
      literal 6761
      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
      Q1wYe@!l&Dz|NqMW0RM`P2><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/Visibility.class b/libjava/classpath/lib/java/beans/Visibility.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..291bfc4b337399093f076c441b84594c25bd8e59
      GIT binary patch
      literal 207
      zcwRg8Z`VEs1_nb0UUmj1Mh4NW#Ii*Fq}0T`V*Rkp;>@JXoXnC+b_Nzk1_7{CPGVlV
      zzJF3yYH|r914mwJYD%$tX(l5Bvxa6ABLjD0S$<|pW?nj2j4LHSuOzfM6{a8zD3qTa
      zk`EK&3eGPrN=|jl%t>Wr;73@e2eOHckpZZQ0R&ipwzD#@F@Rjb4y8F5IKea*hz6?U
      J29it+JOI}VErtL9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/XMLDecoder.class b/libjava/classpath/lib/java/beans/XMLDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..813af311c12f6e64d308576314cc80acbf11f7d0
      GIT binary patch
      literal 2926
      zcwVhm&36-36#u<6&7|qHK*2(*)&UXHDJ6U(Qb7o<6hn%%v=mXCCa>+(bOvW8eC%|u
      ze}LcaT(|)bZACn?@xVFiapBgze}b<3xc6n4Ow)pRj*Ira+;{Kq{_bb;!(ZQg2Vgg@
      zXh;Y=F=t(|a#PZB{M`A|g%h&mmZhg5DX>;ORV-&FH!?LROMyVMd)1MiKu4kR?XbW)
      zd95Tb2e#`JY(J1nv8NEjA8dRlqgLCwTn$D8Pg?WDrlxMYx#7B)wAyXIcF$K_UzP>L
      z1u`vFEZ;A<R+&9*j8V$hAILau2hy_wmy|Ztl&XPU$qk26(nt;1jvX8k*pywBK<~If
      zGEa%gfH>+{hfV==b={SjVe2&o+mXfU{FL;@tf`9R6uKp=GH!V`e-4GoVAl4dSQ@KB
      zOcS=l9G+$lJpv~mm&2pW&^w-ifh`&~FRS|4ETNTkJd3RYZKbN`NhhcYDV5pYLZj+o
      zhS{cLJF=9g85!hVCy>{Ie7sOy%M9bC;>b*ntWV(5{}b6mJaNEH=x1L$1)8$G<1OTS
      zmyQ->n8h9)d$Es#^kuLDRA6)V-}1?D2XwTdoo~<UXhw=Uu@XTfN);NX61OvJyr`oU
      zdIm>vOv6h8>sJY0$6@T$kdMEPM9zuq%&KIK2l;*&TlW954h?ByNEjov8DC!DXv#BO
      z=m+~C6QTJUP77q~2FE<lx<2fb<+YJ&Ffx7ItvY2tQr9p-%<98fbVsYD*};mOrxuH}
      z(s-4Um$w|p4Gi{cSk86BRnC2*->8p<an<q-tHL_h4VBgM&J2ne<r0rkGiGD4P&#dA
      zCalu9jx|`T;XJXQajLmks>(I&+!^WlDp@6Y#`1jWWiWvYjQpBF`B9DfAKUUFW6#|>
      zf!CSn8v>mV>au)`wc<@oX|QOstbEl`0?n*8YxzZ*N7eEd(wG*Y%p3ErC!?&AtzF@5
      zWK4VRyuk}8mS;+80i*28)-i`+T3HSOwx9y4DQ)oW4LLj^r>$ybWnb!WahdvUxHvj?
      zte77Z=q)^^DX(-tYSU$vjcwetBd>-knNhdumE@4kD|SsR7&gRaYJw*EMob~WQ%bi4
      z&w@H>9jKFLQ=K%=>ZFdLlQ+dWbkP6x^yw&}B<R%4KCy%iH<jW>rN-iS2>M-YqFZN8
      z4PEF4)a^+H#bBKw*eN6xskGU*gV3I8M0<~{-dAWwO)o-AhiH6jRzWdtPl!85vLv1D
      zgxmi$o>|0mOX#hmcdG<^MA{#d<P*aFl=MHNz&}^s%$jxNtv&MA9(v;&r>{x*?F;?B
      zqmoPb<`Q<8eGAB${fpRbb|n|E-`uf)gN+=%Bu}@f0E>io8yj$ke15Aq?5iO~9J(V8
      z-4Taw98w(k_5vX!>7BM`$mWvD3eaWV!oUYe-lQ|Ph$AMk8TbOpiJSDCCZ`*5d>N_l
      zDYSd^@*{P?PbB}D2>qf+={3NRl)woLhR$-Tv_LaC8M+ZgnNq@EW5&&q@ktD?VtlaC
      z__tM!Pmyr~uh5-?E-09L#GAD)a-jFoEN;{yZ@YuyWXG8$oV`nebNA6>-oeBqYcX5;
      z+fN0XT*So%oMVmKxFql)+Z84|<Pv7?)}*rnb#_Bkc;I*P`3Dv7Pnwm#(Jhkn>mr3M
      zLc=zZhACR;t2cu^q7{2dc0lMjMDGJ)El!FKoE4q1=q^Ul(bsaAnj(2q?bdf6+E;k1
      zz-={DZ=()wRk4MB$!?`@wryw=+hgMwZ((i~PV?LFLhK_Uc8W0%HVmKGMG4#;!%9V1
      NDfp^30)eur{sRUwh%NvC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/XMLEncoder.class b/libjava/classpath/lib/java/beans/XMLEncoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3abe27c826a19c4a82b4a4effcc9f6c07c9e0baa
      GIT binary patch
      literal 3443
      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
      B20;J-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContext.class b/libjava/classpath/lib/java/beans/beancontext/BeanContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3d5710a14dea5194b019eeeb696e41f56e0c2b9
      GIT binary patch
      literal 983
      zcwVhjO>Yx15PeQUHr)i8egWk(w6skwtT>`nND!z%Y+EUXNF2Sp*2cxLqqS4D|A;H%
      zfK()Y06z+0yU+%x)E?Nwj_1vrH#7eD{^R%?fXC<rC=sme(*qhMj7shQsgi~rn&`P*
      z_fFOUDg;f>6IABWZnDo(i&hC1JvuR5L_H;hg}IUeY6Ke>>-L6RWC22gr77}&Yo2hy
      z%~62HpP?5_^IUGLj1es4LM2qZ;;f)WIy{P1`hj3R{=3aCL2WY?Typc2pxo{Z2r4}*
      z5u%KR1{TpIsBZfB3<$0_a23}GW@9ed&SaFZ;w?=CbJ{AUVn7S-{9j;`OKqq$oEqlm
      zAy{uuHL+(3F7s~ZyuQMhhbbGo9n%5s+L1hmtLXLaX(YgXg4S7bPf)FQl-W`fnVqr-
      z>Nzugrq!fKZC7v3X(7Jkf&A`OG84V)$6dG8XWGxSm1A^7(EkrL+^ljuF(;a~REuWW
      z6nUGu{ntZ2j=45WvV!1A`w~_DP3*dZUoF^39k2^3gnNF}E$$C^iu}kGwzuBiBUEq&
      z0cKFQ-m<$g_Dxk$!z`K>nX_Jm65Ln+it_s}nE#BWPu4BrhW&>=cx>%Q-1Mk>WXrf^
      glW%*e67Jxh#aejaV=Gwo_9521U3b>9H+**cCqX+HX8-^I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextChild.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextChild.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0b3ed8f92ab5eb7478d9bbb9e985ad4f9ff372f
      GIT binary patch
      literal 598
      zcwUuJO-sW-5Pe%~qEXxWbr3vw()METR_M*3r+`AC_f0aSDRH-K*3$kp5B>mul(@TA
      ziKRu|!@QYg=Dm5$+xyEafE%3nXfRw&_>6}MaZ$OLN}*}4!&{R_pLsMc%FIWTq2roM
      zF7ogpnNX@3S{3P9uOaNlzf%r+BZlB^p3+noQdB;687^vbk4jES>BWe&{BAR9`HI?Q
      zxAzx0hBKaJU!>94IH0(wGzn4+{pHHe*ifrN<b!z4GC${>hjT?waz>k&t*W)alal_c
      zx_+*%x`{a$%4e0*eNhs_>FOn~t%k?Ium$@(bJ%ToruI$MG`M4a0_?$_d>;o6TT5)C
      O<M7a;={+*Bf#VMt_Ovnp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextChildComponentProxy.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextChildComponentProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4089781fef6a38392a0b50f831c87f9858eb7875
      GIT binary patch
      literal 212
      zcwRg8Z`VEs1_nb0PId++Mh4TY#Ii*Fq}0T`VlbJUpI4GvQKIhzWIIFH&Ka3GDbD%1
      z1^IcYc_jfw`4yGy3@nTc0${B<iFxVz{z+M>$t8>oJn5+=aFvV<Vj7x0U`2`LCHio2
      yYeojH;QZ2}<W#rJoK!{zW&C#OflOdyWME`qW&i<3pw+AlY#<f`JCI~z-~a&1jXl-?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextChildSupport.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextChildSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6698f860830199a3ccdd1bf2dc035fcc9bd8e44
      GIT binary patch
      literal 4168
      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
      bA~de%w9gz3pSnvfr1(J*MS)MX)Mx(zf#uIZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextContainerProxy.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextContainerProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e3750bc4bc8434f4ba4626f2a60f29dd225b37d
      GIT binary patch
      literal 202
      zcwRg8Z`VEs1_nb0PId++Mh1hd#Ii*Fq}0T`VlbJUpI4GvQKIhzWIIFHASy94FSRJ3
      zD8HhToq>gsK>(~PCowNw-#;lUHMxY5fhRo`p^}k7OheNLtSGU(L?140&B(wNoL^d$
      poa&aDlgh{-htnE8kY+YU21W*E1`uEb+RDnn24XR=14$+Z4gk(IIm7?}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextEvent.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..390216ddf6d98509cdc01f6526bb3efeebe98cd3
      GIT binary patch
      literal 1031
      zcwUW?%Wl(95QhIr?4)(v^qK;NLR)%Cf`kPUt5#i58VM8yBp{3KPMo9Q$gwN?q~aZT
      zl`cTyA|ZiTvEUte6~y@14Iu(Go8y@|^Zj!<{_*ScR{-}=Eh0zQ>x(ntbfgGkeY#<w
      z<ZI<TWcw(!kI!VFiZBQjojg>Y@95yuPG7o;un^106MkDpu@?p}A3q|{6T%z|#7YFJ
      zE&QQ0yFb^zylM3h2<6i#JQY2mWVaE81HyLm@;3Gfg#$0})FF3Wod&423C2;_l@{_?
      zuwi47XUI@r1U)AmKqt;Oy+F2xgN}?|h>kA_OU=;bp#+b{eik&;D=#M0rl_x1lyn`3
      z!^mZ}+>>hTp0Hb;MrYpwVa>*M+#t-d#`8>X<pLj{rHGq^t;<yji!Al*uZNiBLYp=$
      zlnAyL|G6aOtF;qG;z@*HT|8zOv6J@J@RD6sCYNzHY0KE;DtZ0|b6A6k0((X6&A>=X
      zvu(0vV~%gi>>cu5j=zQaolls5r*oJ1v~={Cvm01uYc<Wn3MzoMR#}aIMO?wvOzXb(
      zftmV8T>FOgw<EQJj<>Xuo#tdpgj*xt$#}E=9vhSJ$rx;o;4R$F;0GC8O5pD>jr08Z
      hgoHaLQ5s2X|7#Z?urav{pUV#Zvx}W<7rUC-`whA{-F5%~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextMembershipEvent.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextMembershipEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..631c0dac898d21f89d4b8a331f8edc1a5f05efa7
      GIT binary patch
      literal 1426
      zcwUW@T~8B16o%g^rNwrEwn9}z0R`y?P%8Kl>qoFaQd2>rmP8ZHv`pxbb(idJiF)C0
      z@P~MziAM3lc<rC@AE;-ho7%t{dNVs8?|I%i=gj{6{p~w|BCbafVkqwNeO{;wZn=7F
      z*p??=d4;<)FSqCS#ml;I+@{=H+ZUD>MVMjs_%JPINVvk0+^i8n+SZfGDg(R6Fi0xb
      z<Ca(BW=r%hzMCI^{`Su=hJi*?n%j=B7}8bk((<HPDBGqf8Xh4^43V4ClHP5GTbb(d
      z7byi}vNeWq+1?g0^dVuuK$7z637D;&0K-WGF~k{$tI`r1Emfq)ylx7HRMl=!%A69X
      zwZ9qmn$l%h>cQYp#VO;cuVR?)A)W$m^pwc6w#ekxPGPgYOO>JAVi?EyD9%yu{uOS;
      zarkT3zyv0#{@krfmo77t2_kgWTgggMTwoXpY62B806?{J<r^wlUnX0LV+ykdrZGcr
      zLwdsDp6$@v$aLFO{QZ(r=M7|#rJ8xRzBR*WCL3U*v;_lmm{+fkD#E4ZDsezcPnCGd
      zz#@ta{rZWjHV0fi_Q-BI4Y4j&&nN!h)CCnwP|A{i#}LNQj|i=zdNqKsdR#PDdj<w+
      z9HP}jI#c?1F8>9?xw+3sebfOXG!E&bRRXP1@H$3mHQAOUjZ=W0oyHl0shKheY5bUv
      z-}3QEAO96+e_$%WWP?mLk-&p4lVryv*)d6y$wh5K4fIWx>8s9Sxlc$P;1a|84n3kz
      zwlvjft9&X`O${dG7(N^#ya*&vtAhy(M+rND1nR#}xI^j?R40g#KfvYCku>%+BHfmC
      Obzm7+wEb1BzxEgXfHyAy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextMembershipListener.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextMembershipListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6fa4fcec9f422e8a39617836d5ef0119e5cea68
      GIT binary patch
      literal 300
      zcwUuIxeCHS5Pj<vjf!^mR@xW@v9VIoDk3P@=NQa}WFyHY_-z(`fFC99M$!rvbMW9D
      zGq3mK31E(%ff~aibPC6E$q`xEy+la5OKYR{?RP&=>{6Nq{ATk^lAzQ;gJD=QBS&1V
      zqZ^VZ4YU|WC7MefS-XOStSAh9FW`}%l34pb`3%d6{f~F4wwhiT29?l>;-t`0<~hkz
      kkM=wwhVjqnGwrEzGSpQy)hBA|76WbQn>u<b+|)R_A3RW5VgLXD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextProxy.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82deaafa8e3502f2d88fa52f121290e0b8b03bec
      GIT binary patch
      literal 212
      zcwRg8Z`VEs1_nb0PId++Mh5k)#Ii*Fq}0T`VlbJUpI4GvQKIhzWIIFH0Y&*0mFx^G
      zj0^%`#W{(2>H7XjS*gh-j10o*sU_%Y85y)SG<^sg?3|IAlVZ)tz!jWdT9lmXmYI{v
      j$RLVtnjXj?Hbw?U24)5jU<5jZm4OY!Vqgc7Obi?VlAk?=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceAvailableEvent.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceAvailableEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9df6d17730ac5edf1e758038cbdfb38397681bc3
      GIT binary patch
      literal 1228
      zcwUWC+iuf95IvhZmnQBlEd>IUmRl1y)S@qdf)J3lQmd#41@ekEVO3liTe8;{pTJM>
      z4<JzxJRqL=3VwqZ#O&G)X^9lS?9S}WIWuQwfByOQ9l#yjE+WTp_lU>b?hEdP`W*P4
      z6mO;dgzR==cSR681MxWKj?4S5*olQFi!d10Cxdk|!+a<Lhr2xygpTjM*xP1c`wTOb
      z6-w^O9(N;=KmPq|>;2Tbn86H_qHULlA;UsPS8};`XzQmIL*aqrIr1UHqk3m@AE}72
      z^&eBC$6&PmSE7t5%$qQ=K+3Xk5_B32izdpbFwAuvPaH&V`XYF)=EP9#_yZEnNjmxI
      zqaj~AB<X&J0%Ipn(o5-dh^CpHMh&fYC}cYd0^&(uyTTO%=?BEMTyG?7k#t;pPl|w3
      zpj9S~S4^znD#HrlyM7c<Q{k8j44Wq$**dCV4cCjf#$aVfnW*8$za5S4a$Ntk8P)Zv
      z54CvG<_K8ntea@SVwfK4WLP?t`?P;V^CHr665n;yQg2S$+NNS4v5Y<$kRt_o6v!)T
      zuLMK=A+im6GciNwEP2l;rt&M+#uv<4&0|zQYQPemvpTd*L^}lD#X0g;lXNWOJfN)$
      zxJYEmQU!8k*KjGNzo&g-vOeRo^$FFlSk2+XutGsc4>YrxWTwod7`IXun{E}$D~7Y+
      h-Uv891k+zi!CNV~L@liUz}i{-%MpBOh~Lmz&A;{2H7o!C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b71ff331485b0c8c587b7c009d60eb87017ee7a
      GIT binary patch
      literal 531
      zcwVhh!AiqG5Pj3yMq`zpy?C{khMv7OP$(1>0^YalP*RozW;ela>%kB3qokA6h*Slk
      z?qPPAnfKm2=Iwp=3Sfq-2tC4VYig6M*%ZEwwk!g_gk-LHddM@DI=B2NWt~5>L^vai
      zTbMJ&CV5zI*#<(q;ck>r-L3vi?C)2{Y+oy>GybQM$@dcBTG+Ai{JBW>e~WawPlOxw
      znpPrQbl6OFZ79W`AbD{5;j0R{OO}DfD62Y)v$7J)i`=QJ+uzSKZO}skp^xVE^;!cA
      T(OfOUdHY`=)(+uPV-KS}fw-(6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceProviderBeanInfo.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceProviderBeanInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df17989c2bfa21319bf034eae7de5447a7a20066
      GIT binary patch
      literal 256
      zcwRg8Z`VEs1_nb0ZgvJHMh45Q#Ii*Fq}0T`VlbJUpI4GvQKIhzWIIFH!Kp=MnaQaE
      zMfqi!DXB#u8PB}5e0ByFMg{?}_MF7LbbbG%tkmQZb_O;^24N&aVakD`>8UWYiV>m`
      z8k*5QSkzlHGH?awmlh?bx@G31GBT(Wc99;)7@+lx49q~x3iKr-(248}93U10Cy-=f
      G-~s@faZ2X^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceRevokedEvent.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceRevokedEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..261e673437e2b26d9366e0e3580cfbb69f346990
      GIT binary patch
      literal 1387
      zcwUWDTTc@~6#l07)}=rxRZ;MQLc2vODEd$}!3v6LAo0?~CO%BJV_jT#<L<WlqkPar
      zF!90o?2qv$7|+Zu728JovUBFlIp1Z@?9bodz5`gptt2808~eP+D=oooPkjx?_QeOk
      za-ZT_5I+@e&osmn(R1F2_Et~WeiAW;<&#@gF~gK6T$5W3;d-WHKi_%4z#cP9P?hI%
      z+i!5IE8@T6yDvL-WQjrZ0?L}jJ&$3!u9z%tcPc7XWyqR#k6UJ&`y}iY6|p8m;*M#X
      z{ym1xV*O-sp)apG1m7$*7-BW2Ei#BAry+|O@;eS_wbV$1VOB#1r(|?mgN6x)$+~Ha
      z-R|3#aG&v(B^Yvb$Dm8$bTzaOlQI9bNp5bBK{aA7bTO&$?g(UMd=Po1X;&fbI`2ts
      zM;sl6LzpR+MvlSzw=7>Aswy=zxPql5uF^~Rd$`xy7lyB48AY0$c-Q3?_0Jyf4@wAt
      z#%nMvNKsDLHN>Vj!UDtUk;d^XXJ|avG_0aR=KI*vLupt<5^D_l_~;CCrdR8_E{!G3
      z?F3I&U2wE0U1b8wZBveZ@&B`3mE5>QnxpjpMlpvt60}RwE`k(d^2Mo`-W#oPI?G~`
      zzEiYoQ$9xPlwSUdX?^7Yd42u>h0m(v41IIze2e<F3F#qqKEheb=s_RxodZ;K9`l4M
      zBgq(1(E@QsDSH7IL&gfNvMR2BLH<*pCZUph3R(*aLTE<jE{Dx`sagW3WpnuuiysF7
      zUMPS<P}J9!Mu`+jULEBSYCY7E(hsrn1J?(ow2nzh^`)%i#t0vUK^gW)A2(Ii#vkan
      BNNNB8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceRevokedListener.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServiceRevokedListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..417c562f778c743070aeeed916a962e5fb1d80ab
      GIT binary patch
      literal 287
      zcwRg8Z`VEs1_nb0ZgvJHMh1(l#Ii*Fq}0T`VlbJUpI4GvQKIhzWIIFH!Kp=MnaQa^
      zsb%@usVP30#U-hEsYUDzEQ|~SVBI;1dFlH8Nm;4MCF~4rj11yn(bAI49DUca)Vvay
      z7DfiXVidC&8LTvXNOb_%NNde7Mh33n{L-T2RJY8WR7M6hf-cqr*#vYRBLg!KvjPKw
      T5$FYW1`ZI5ffGnFF>nC@5~f&>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServices.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServices.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98a05f3e94ce166580ac34e4a407533e5db55470
      GIT binary patch
      literal 1130
      zcwVhkxlRKy5Pc5ELb$>mZUF@e1ran9>4><bAP_+mbY^!18<sV)ofZ5OUqHbJ@KK0~
      zApwy9DQNsG`^}s29DaFydIqqGB@Zcq^{Px{;gV!*-0G{?(!DM0@V@lEuaHhcpNxlY
      zfsErvGQKJtUslPt9(n~<{#NnOC$RN5ui>p68cQ*0fwT;Qk5hsDT=_GCQY4KjmOB<b
      z(JBc8(#8CRz>uay-B45c;9rz4^5+7>nj(_sQ~M;>fmG=_jDlkMdxG1X)P1C{$TsyK
      z|4IMrvs)>hB;wR1HE2|?m~R#1*mv)Jy0f8*xv9nlRvo8i!>Dkk)RBxI8uq5i6v*<6
      zOEs-2Za8z{k`b87efV)2hnBRoO0%cg7Mlu}#^+16T5GNN4>IX%X`0ENXk*6xw8(Ax
      zYaefSQl#%@uGY(%ZdF3RPf119v`>3s#35$eP&ew%c~%9wkU|eU{ssDZqWh6XeX<8I
      r=x_+b4o8q-?kKam8OQi!0+a4$3eyg=m~l9ZIfwIgWbOj5DJ;GL$?j?V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesListener.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca4a9a41a92d43213c521ea36c03c5cc2367eea2
      GIT binary patch
      literal 312
      zcwRg8Z`VEs1_nb0ZgvJHMh2s-#Ii*Fq}0T`VlbJUpI4GvQKIhzWIIFH!Kp=MnaQce
      zKAFWOsd=eI><lc73<6+%If;4c`u<5-smUem3~Y=H7DSsClv<XbotgqO6KG&DM8dHw
      zF*7GIDJPYY!A8S}X!GFOT+34PN~|@*7#X;N^Gl18Q{6H_W+~wDkRHeupz9eKn1PrT
      V7&?qVAF?xWfLIKiK$3}p3jpAoVqX9N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5f12c848fb8da82ec57bcdf9103b7f12e7605e3
      GIT binary patch
      literal 892
      zcwU`S%T5$Q6g_un7#X@{7@yz+NLcXF5nZA#XhVXTIL5|VxT|Syph#0asj4CT0pDYy
      zF>&Dsxa5P3cM1X_NHUm8SDjnc=blsd*6%+*e*sv-d=(YK`o20;%`PkB!km}J^O0|E
      z2u@FN#`aL>?6Q8ZS6aWYk!D%Cr;D8`BErid5?l}ik5G4PwJJJnoi5Git#<@^Pe_E|
      zyfVI{iaw8?d^<WmSUou=jQKt77G4luwT6(p>~~%0ueH(sE#b@JfACK!g)+O%c6Xoi
      zf9))F2vJ(@@HpglF>08oVFZmBG42pP4W)ZSy~&m~{Gor)WxK7q1rr*rGMB0<sjb9k
      zo6(?lgg3)DxUSPu!wIkKF8i|vHm+I{r5>{-)UvW~bKcYg_1WvwKOdwZ#9PL&O$+55
      zyDDZ0Yd3aE7(e%ld1=9jJn;%<Fp4pWsv){nuMhennB<F*$a-5)8<7kkSzh^$$>o*R
      zXFo9YHBj!#T$2^}D5=`GCulAtPjDX(fPfxiI{cG};Iy1p@F=h!<4NGl<Hl3rMSlTE
      CiT@}7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53724e026a232c8b53b3207f17ad631d8c4fee53
      GIT binary patch
      literal 2093
      zcwU`V>rN9v6#k|c7RvSlDwKKw1(jZ)ASy`lM%4st)L3j{j3(PM!G*e8ceV}qCccFx
      z5>tN|{p&mU0w%tK@$7V4z=qiN$L^k)GvD`}bLPzKk3V0&0+`2L1s;a=ZLOxIi(E5=
      ze3wka=DT)!mF#T8&U34#m$=ARD;3kSr&hE1{1eOE-E$pe*Yr(pDey5wBwtxGw$hJ_
      z+q`5e=wq1gSml7MpJAzE*i&9Jclc&b7dAJzMR5pj=~}tKEuovnv$cB+Y@H!UFkx$k
      zUC_!^?k_I?oczUpZ!`2)Tw#WVT*tD_Xfq6b_G?{C&2<HDmehf-=!S0JV$i31z;_O5
      zMI0|M__F3E9{|IMiU@`R@FJ>W7-J0H>3G5MoK_J+m?50g4gRS5rpT=gtyty^!#T4=
      z1=gs{G<GL_P8Aq(od@*awxZ&&3PWs*+u5pRaifXM^D_09X^~#Oo1(eZl0BL&YeHn=
      zjhU*gm(y!Dw=`nS48o5o73Xn*s!=SFN~#+X230g{slhPRCd&|@q+A3;wbvvX2dzD=
      z_9gN5DJRX8iZ~Js0~UW<<$|(zwzq95b%8iqdWMiirY3kRi=MZlJ&R`01t-P@6?2$p
      zP()KHB#xYYhUG4#UC{j+^^;Uku%zM|t~2;)vn}FZ?2(POHE&j}5`UmOM`HZ=o}YCD
      zs8QAoy0he-aiQRLH}_?eiXnR30iqVB4u*${sL(ft0R(7fkp2Q5sPxbQ2O<&Y3ZOYZ
      z%?#rNtvE@ehcxoiH=IcB<5c1^MiZ%h#6C*!8G47L`xU`n5b;Z#rO^oa2!eAM2c$JY
      zkB2DfG`Ym<gmaK;;uB)YR2`FEd}y)u(JG)M*(Mt6T5KvV;*#{MxQuDZOYQ6O>J*7z
      z1}u4J#(Z@o{fDR<0q;;P$`tU9l(^b}916H85ylK=-E<r=Sqr3T&PRUgNLThbjeYbD
      zy0Ud#@!_CK0ZAb!Vp|F(8jD+k!IogKB^aczW=W7aZRyHvkjL>w9hvV?-Xr2z-=HMx
      pSoGlEec2`DJ&fYrp?!(ARHL|oWn%UqBXKLZDPyG@7q@T+zP~r?DD?mU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4881c940616d6e951c33cf6e8fcabcf607666c6e
      GIT binary patch
      literal 1471
      zcwVhk-D(p-6#gcEo5rn4(^_l&sXwVrHnC|DuM{sDwN!!%TLXGG*$(ZLxEppiL41IM
      z3JT(bShNJZ@Bw@Z-@$wF>|~SLqzzGo?3puX=ljlg&Y8{kUthlgSjCEl2*dqd-sa`H
      z;I^l%<=DP>>6h2YuXKG=xNT_(&ulfDj_c>vDyA96p14k1ZV6XIj3J|_8r<G4Kd$cz
      z%h!-#m{C#blnEkvL%!nmhM>cq+SY{YNymP=agTvLWSFF!p3iN+#v3gWKlSqm`@FNc
      z%#ikuW@NZo9b0-2belmBc`6O=c??t4L(wWkM-q3WE&aO;>-nL#|B$m#V~ACpEs;VL
      zGdeOj!w}6EY7<~MtK&4%fp<=aj!7!CDsAzo^`b7^&2Fo*RmY-Eaq1WC!(hzck)(fp
      zd_kk;M^z`A{my2$#b6Z-xAKMYbN#`aJ|qi!KHXzF()A>_NTZiqVR)V&KhwynhV!JT
      z)7N!e!BvKL|7E=6Lq<!j1=0$^^_XHvnNG{K!~+?Odf{ZM<sdm->J8f#t|~!z8t8Lb
      z{cBY;mt%BMr|7cM6DK<l4N3AR=>H>v6k@@RRX*KeTI1xAd^(Y(-80%nX-yj)OdG`m
      z%o?Qw%<U_{JlQM}0DEL#6XhEsd5iNDx!i@}0xkl|3+S2hE>Xe=Ar|OVH%*z=;9cDK
      zg1Jw9@`MV$SA=@^Ku8z~rhg20b`bn=7@SGs8ge0cu@CNGaS;4Lfg=P7eoG-_iAoEK
      d){J7QgZ%ygXs-vN$56J260Iqf=?2Nwe*>5(d#?Zh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fef7beb1a7d2a24fdcf071317003cc6b9695be9
      GIT binary patch
      literal 837
      zcwU`SOK;Oa5dOw?V`8=sLi!*)nidX8gBtaSih3YYC8PjSgL2@uc2}(<V;9@0_$$3v
      z^guyHqDA6>;L49e%&x5<QS|^?c|5Z_^F7x7`RnU902{dP!Xi8x$wS%om5ehJgCx$?
      z+r0aP^Ink;RC*W&DjSRs4w5u~u%q6LRhGMO2y<pUlJQ>mg+Ee3PN=5Ed6E)p{lCvQ
      z36;lT9Oheu`PSv*_K@K8l3nG&#&rP~f?&7W!zu_f0#m3EX8U2Ro{wMqDt#&aNNJ)Z
      zkkL@4p{~nKC*Kb<!e;-!J!-X_$tb%*?JJLEEeI@Pi6Hh=zVpX?z16-vp=~t;Zlcb%
      z5`V;z?~C9Kl5rZS?NAF}zFOJ3Mr5j|ajeo_B(qFqE>;K||7?=rmTH|QyRiAMAXxf_
      zIkP!;agAe@t8L!5`0cHI;iq$s=}%l)nB_QQCXeCZ9rvDKj;n>D8#hn`Or}wZ7aK1z
      zcezJTHab5*N2qtcgPuLS!2H^0Okd#EseL-(s4+V5o)vw7z(*|M%<wb|gb7arw+)Zr
      tb%*yX&iT`nj9sGun9>Yq6Yz@JJU4)%Xea?K+%@qYmW>HL-o&co{RSUUw^{%I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9daefd69259129b3701f2b7280ed60ec441c5201
      GIT binary patch
      literal 996
      zcwUuKO>fgc5Pf4OHF4b!`az+5G?bP)Nk!Bn0#%4eNJs$$K{;@<&8j#ucJVqD;-BO{
      zZ~zI4!~wyT-vS&EATA(g*CvVxJw%pf-^}d1c{A&ezu&$Cu!AiN24T179e7P&c(K$r
      zNa9R9&6?L4w{qMO=|LC>+3D}^Cuz1(_-)}yVWC90JUPcb@uV+gMzCa_AuO~tP2|OU
      z%{zWi1lbkB)YUK!vt7cLJDwho)VhRHD|skvn3#58!67XFr?l3sfH3Qzj48rgJB-Ec
      z{$pRH_dP$-Vv@j%x?UP8zX+DHN1-HKYfnD!=+1boN}A7~q&y-+FOo;-e4r*-aj=AC
      zn-!mOu!_?Jdr$oBL0EEY<CQkfV#UHa!u-EEf|>X|f*~Vj>LmR%5H~_K;o8w7Tv99q
      z=Vly>v=w<$3Ta`Juru*Cm}PVysPbSY|C6jpy$2(cv4vx7E9~9nxXMr08*gCOw_juC
      zCA$XZ*v{(ICocR98(%QbUNygt<5&PRT4Y+%NHs7R^Fj;yX9d06_y8JUz40D&OSL*N
      zz~c5HPS#&x<`8EFD3_j_{0)1rYO!Bg>Nhy}&YVB6$>&A<9MRzpb+}m5I@BXpIi_^*
      na~3+9d@7A))$hfyNiO`CCUo)(1)+iS+OFdQpSCXF;O6!p5}fNo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a186951f74bc7cc2a7f74fd0c5c76fae025af46
      GIT binary patch
      literal 1145
      zcwU`TO>fgc5Pf4OapSljv=mDDXen)Rl8UHDXoXNCAt4zm8k7S!+g%k0V;9?r5dS3q
      zfdfcTBn}9Ulmi09g&%{MwM_(tNGY<k`(}3My|**+;g2_O0j$H+pb&0!?4I3lgdN1`
      z>V`ogo+OPe#?1`3MAY+K5x2Vg`(czU=kbns+!b-6p+LBLe3rbNFy?!4A_5T+u301V
      z?1*0YQ0!WH?FON==>=YLov>|YG`=0|HMX6OaFdPyC$6>$g=V-bbf~Bp&|nZ|{~=Lr
      zmqC~?P(+C^X?cOT(|zQK=$`HPf-r4`uI;z&$dhrNEF=%Sn6NdvzaeAb29%==hLIHe
      z%O7`$&uu>*V*kE;;GBV3oYMIr^9Ii19HFu&5^FG_O|v?>)uXM{aRGB076?;E<q2x&
      zbO=h!B6=(AMy|N&$qp?HZ^0GGLNIOx%-;0vI2N&nRl@qn7JpIk;Qs6<7P$v1|0wK9
      zPLz?#Si=~vWsdH0UY=KK_1DmAYp*c=f<pz9yiTM?AGq)kIzD2Gqs8nxPGA~H(F{&9
      znM6`RVa&bH>7VBGX8k>=kEQxM&}}Jox{sN)1DvV7#P|Wu_faf7Q~4Wc&!=WTvDMEo
      z@P#$LVuklreEZFZIq+d}M*1+g@*?M?51xGPqrtoMSd@Ct2O_03`8_2xvI{w(f~9o5
      Ogk|3Kw0s4Zq5lLsktKWp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d0f1b8760260212f0273b74f63f80abe2d150ce
      GIT binary patch
      literal 12765
      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
      XW0)nQhhxO0evB50!Yh>=WAOezt99-T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextSupport$BCSChild.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextSupport$BCSChild.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85298ff70a4b31ed7f779ef8251bfd1c52207091
      GIT binary patch
      literal 1055
      zcwUuLO>fgc5Ph3CacZ2@4S|yK4JpJ<ive*1ai{@N8i7PgE=WilchzoX?8tTy;)(zv
      zeheTHRpP)8;Ky*{42(A+pr(iPusd(Z`{vEOmB0V``VGJ}tm?=yT;Js{xZ4vvOw{g2
      zVJcpx?iyilggb+NKZ?`Fn%D7mWU!?}W3Uu2;NiCWsJAQpR7a7arm`|}J0g}mkgs?z
      z5Og_F$F7JI8HG>Q?=Y|j3}q5XQXZyV9t=d`<HpbWkGsF0G8{>Hye(3t#!zkV*Sg7|
      z^@WHTis_C_8dn)w?U@H5cJY=BWqO<8aq|$o={}}2c9(kdqAf88hGQn?VHwC{(Zm8y
      zFyxzdH~X?=!bCYkr%Y5(W|(iwP&^zw?}>PG<XW{I`D7X=>*zdAYT3XHH)d~p@@_PD
      zg<ReI-`iT#KFHk?_kEElWA7irp?^{bR5fVWOD4|a0)x?s2C*;h$!w&>=|WdBHiNky
      zh9dR?o+KjC(PFS??uCZ<+YM=w^Rx=kuml|?!gKT!<Y3UEhfuhZMa#;bjLvyl3#ih~
      zqlBK(ca37rX$@)H!*OS2h`O^n#L3T!eVX>Fy7P{7UQ_)yRPim&Q0APfR>N6BP$<*P
      zDU_+^36n2lEtevrSa80e{%KOYsFEL4L34CrRM0BnA{t}z@`SvH<^AOMikwsHvf7)l
      LDH@98U<KMAUN`*$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextSupport$BCSIterator.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextSupport$BCSIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e976f8831741fb4fd3318001a82738ac05f20609
      GIT binary patch
      literal 829
      zcwU`SO;6iE5Pf5km?SO%8VKd9EpSLcB0>Uj0C6A^5|RanR5@_lm{ntBY-Dc`Kcs38
      zTsU#!01^nb2Yx_*RK@H%Z4u;vkTv7^dT-y3{rk_a2LLNruwfC_j>M^`x1|UZ<Gm<U
      z@=VpYIc}tJvwLz9#cE-@(cD!s7AlHuWC+6s8i?>~eZPGqJ!K<D7&X<d@`L){X+qZP
      z_`xBe?7r-75OSM-=&LP4rP^<x)*@sY(V;A00Ph^+F+>=s)>?V63I{d@2_@GL<zDx=
      zE#ohu9Y|K<MxF>-BKCFOD`r&3PYCPoo9@k8?T$$HxN8&~6p_V*gE5RVb!f`vYR!GV
      znGHQR?cf6@`L?k<j!s!ip&4~!Pwx0ySmou(%bJGZ?1rI?8-Yj?nb?>k)Lt!~P<$ev
      zzdFli%d%N|Z~P}@*zzcFrO43^*DZb*7VqIKF5RJY!<mH<_Ct&XzA@rEBYt3%v+;Bq
      z?@<O!q*;j{-bs&h)#RG<7Nwu45U&1l=1k|@a5?EzkBjuS`ZG)suAebn^ktY~%_+l@
      d$=Uv2Ck0+U0a6cWVb=JM_+;qx;h!;&=|}cgr#t`v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextSupport.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b745035bd6a2c7f65dd540326e6d9fc08aebf00
      GIT binary patch
      literal 15564
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/BufferedInputStream.class b/libjava/classpath/lib/java/io/BufferedInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee9850be49e5db6daa6adc20980b19b2391b6b62
      GIT binary patch
      literal 2997
      zcwT*0U2_xH8GeqwEw2TZkz-=XA0de?2@C{6(i#+FV+T13CN?;+f#9{Zwii|_M_L6;
      zW-{$0>GW%+?Mx>ZVMq%%p2?7e%*2>+m~ff4_x%a&^rnBI^f_lYk`mlrXwNx&-jC;f
      z-shav-~O}xEr7#t!te=nU(w&y51QqJqqXH_qhb{E_FB!EaVmyh3L_w}_j`j0({hYT
      z)3!jzsqu-E=L_d9kDi~H7@xj8lb;_K5P5;Nv9eutblaKLt(xHnA`tK|)|Lf)7e)nw
      zOXZsF@YPzmDiAK|m8)vjB4?IaGPxIBRFG!O8-_sWxM`bCPM~YB@I9g?EW_zpfxuX~
      zXhfN4kA~ey5c|%yd1<_>VA{r+T4~X!oYNOArid5HOS(0yS4_F~UIv_1lekia|HIQT
      zi!yD2#E#jb@FOJwwYLyjuZA{+!sr)xMp;|By>c*bS;mTPovf_XN`~!>UtcoT9J6dk
      z(T9D~_gPXkn4Xmpp4ZTVsGJRI*oBasWi+(9v;7)0gowMUXlr2#({f8;0Cpx?4_*!9
      z1@^Fxd8)o610B`yG`gcWhL^*5soAbkn}#7Al+CotRYRH%Yxs%88jx+|Fqn5SzoH=~
      zQMJ&k=(V>^+RW6}*2)#fC@OgKbdeUahvOP1K&6B##<FQy6v^O)(R@Cg4}(?gYvRr>
      z8rP?4&eZZKHC3!Ok#`#VqA1`@7_SS&8ZNKv&Z>qfoMqOM>|AhAMvh_{=fao~*xj(5
      zS+6<<D?N`{NoS>^uP>F?*2%diE@d^fc*R(9hVwhTQfd>6OjTZ{{QZ`}gfXY==+@}E
      zV^pVEuqv~pD<~DCYB&+RO(U1(K1FYFD1rsDmbc&4Ewk7s*&B-T94|_JEKz;Uc<5=`
      zEAFYNUNzTbFDBEIvPUZ#iZCQErsUv?tbUSv1j+P*W3XH?SI&@eyH;}BaSUr3#_%d}
      z+Qv0?jH5H<T4l-Ltw3pY?QklFBpUR~bI<!GOf>}&;wsFQkM}`9%9!(jl&%^zZ*23%
      zm>T0!<Q!Y+%R|IxoU4<J>f_jw$+kzZg^sUO*iJs9YU2h|yoaYa>vRp#g}s29QP>P4
      z!zH|M9}t{`c_5SBLNepqL{IV-TE9Wx+!mgBlu15}Y~s00CX<}s!~lQkO=KG>dsJ1w
      zVvq%<|22{ShVOri6n=;O_`QPB=O(DbIN-sMvjeQqN3M9BI37~f3-(q*JI*)KDxUco
      zY5uZBK91bSiwk$_`9sR$w#uWq)?OYV59AXuXVo06RH(B2UPY>KH~dc<)pfEi;B!8|
      zU@yMJ9^51HubQ$Yy=?tNd%~l1lHQW|Sf+auxr{{4;Ekv;#m9Gy`WJTmuT8Cr)j5h`
      zMAatP?@=%Aezj(lz>n+ydlMpG9nshhoL*p7X{Gp-yxxYExsOwyAn3cx^>djyZp;T3
      z$jOm*Jbu5C%7y(8hWRIn_*YZPbW_S#f1FY*D)|H3$(z`fx{228x5;Aaj?~y`YHadR
      zipl+V{|6wq@u>%R?N~tJ<1(8}1RmfG1vR0d^2Nf5R3cE!ZQ#TYy@E|%!Maz_^$JR_
      zU@?~naC$6|`V@OSjeUx!g7Nt4L=)Z9tQ;bU-6Di85kXS4phvXgkkI%^iQ%N!#k+Mk
      zE{JyCS#cO*4^~Adu8F7c3(<u?h`sn&JdK;88+W+3C3+N(IhUb&`?v8XqKeyXyrqta
      zoXv6Ory$lb&shN1kYz(d<hLIecM$s}TFV#%tf|NMXYBn3hvy_6-yssew1Hs!@)q<*
      zQlULRIMs0mfjESSILz{n;CXShsoewhcJn%YBI&=qc9+~lZ8B&4lFZXPx`DHeHt+LL
      zwf9QOd+%e}7}>y!Zu3JMu9@oNN4*cQ`b&1Q(YoG5@FQcSx8;ww9^dQlH9oIH&+(u_
      zj3F#ep<PU%L!3sZnB?D%0@C6vj*2(<QJ+ChoMX4%#I$$|m&6>uBd1}Ci>l0wEFYzM
      zH%hn)iv@O&_Y!A*>YyFAVjl8i{e<RoUe6vrL4qp!Pw4Q9>ydX_?luzc1ysL}Ht@D|
      zEl3mo2JR?f);$Im9!3hDuzRxp`j*spcGEq@?i+?vw0Vnc#_wHpp0~6bxR3Jj?px{<
      zO2=+8oNiM6q^fC^oSNkHDtRnnNZ1$_6^w`~UK2H36xUD@*QxY%d?;>E>F-hL@8dJ^
      mGkhU_j(g$*Y>N+@J_rvzen)sIzoXRt8S~iQwO3KutN#UScP#n<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/BufferedOutputStream.class b/libjava/classpath/lib/java/io/BufferedOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d39a9d93d5702ed6b02ff10e276bae51ea30402c
      GIT binary patch
      literal 1318
      zcwT*yT~8B17=_QY+m_ZAC}4%sq9AD53KhRVYfLD%Ns~s@0*Mj>+p?9#vfFHTRlM*&
      zn3!nL3*(Kqq5=k$AK;Ht-<f_uq<YcLyYI}L^URs~`D<?<zyy*WI2a;p%3~#=8Hto#
      zDygQrGHY8E+sa#}s;qk;F@zf{GFsVE&BOBy-8a*j>G|B;QffYvN#9+{XYZ#OSe79$
      zW9U^&(X9ogY^zSd0S0HmE-^S3Qw*-6Ve1xy`?{uU)(wWfSgzr8*dsZ*z#z>SE2@tK
      zI{ok?NKpS+oaL)Ka+<E*veyf$Ij0oLDnnP!C@SRz#nkwBy(w9%T9siS_rC~|1Z~*F
      z8ES3lgA;umD&Qr&em}hMk#tpiMh>o0*{-gVLX2bi(oc(O#nLDj4+bf_hG2HKIm1Ox
      z`*93zUXAz>!U-SFV$_2eLr*INKV-zo>xrpZ<mrhmrm_?R-!<k(6a$146Agwjx|@Oz
      z7jVggi<G9&D=YfLM1G@csibuoR~WpCX(}5<qq4yu*OL~jW(#X-(Mo1pv_$f5qg1M@
      zl$Nus>U83~VVgyj9u9%^wTgF~3t^By4SJMLgyDjlzC7R$rVSF$lWK`aLZgf3C~Nv}
      zr>|++;h@ng$Ab>+qGL;J>!N?3n7B<6chF5$sJ0M2I1Y%4k|h}~7p%+WX${8+$njnD
      z%8~DF+Xx>>wu{LJ#IQu0mWAx8+J>fVpf1a+2oXEzY;*-Qo)o8Gw1Zm}MGcI|Uof-@
      zX^X~T`h}gmv4b<Ra~ngvxr1{D2w@Sz8pZR7PPUF-=p=7o7!`rzuZh-i2I*ytAF<Y{
      z=2^(xiCgZ!gGb&$g4ev)AH?tHFXrTXR7=Z*ao``K!vn9#=QTR9Ny=|9inoUnmYY$?
      zI4`b}Q^b!@yd))w#;K@4;Jz#GF%XY5D5766ArPV*;RAwo#Nl`(O8NYq$wyNCM3H|c
      ko;{4=8z%8XaLF~FCfAgBQcP5n;)-}RMU|7fSB37iKk!@fpa1{>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/BufferedReader.class b/libjava/classpath/lib/java/io/BufferedReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efe3c2caf90471271e06d60d3728302704324975
      GIT binary patch
      literal 5190
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/BufferedWriter.class b/libjava/classpath/lib/java/io/BufferedWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..167054da89291e8f8bf5a893f2b7a938a020b1ce
      GIT binary patch
      literal 2423
      zcwU`V?Qc_M6#qSIw{GP!VB=*Q9TX<m-43Rxh=5L3HmH`@vEg{XE4Qp$+q>M}iZc=8
      zXM-BPOH4H3i%~ISBWfU#7>q_g_>%Z97>&vYUlJ4J?>y~FxAuc^$?kLRdCqgr@Ao_B
      zx&7jwk8S~Y7-s^gQ&>G=J#Y1<o!<UJDrLL&`QvWdv)usv3eEF-MV~_J-hshA!-->O
      z`-cYy2acW{ik}!zP;rH&F(;SzteiJuWeT<r2t&c=6g-9HiG^u)DKw1fVhVL9V+!?2
      zr;uY{!|rr0?LEaZk;O;4M-==q=e!+c+7<)NXjNEQ6&9DcWr=joK3K?(+3qoGEMxOP
      z!bw`05z9@>d&%kd#?yI)wnS|Kb~V9=b^{$)%h-&QoRmB|He=;3^d1_Uu#?`dAfq}3
      z&pL%wk?Q^KktQMz8)!mMtc?biz!2*J1544s-1+p2wuq2%@?3op;Sd~nA!$!}X^I+v
      zNk!&C#t)TuBuTsIvBkhvJjg>Cp*ff-<i`cpLk2dByFMkJMm)kU4SB9@Wy8AG`5?OS
      zm|)+&2s@+FxeLTDX?7T#6{ZQ~?2DpoBiO*^46Utsd&+Vx&vAoz5`6)%b;~QVOy@m2
      zYv5_@QCM=p_71zwl<j)c3Y%+Ht9A*wn1Q_lu>PX7g>pr7lLJo9j*VL!p+MwhEFLdn
      zjZ5%8LG!GE1P&-PS*~kMC!Hx)HEZ-IUc;pe_&A~*Nhg)c+nh~b#?C3MseyaG_K?&*
      z62vf$2Qacw2_0$RIgBbaQVBuM*=vl%;{>nE<vn-dfR)m-twT=1P1=KLncCKcQ@T~+
      zu|e({@3f!OT8{?41^8BnM*ef|Ab*@Xy>jOGl-X&<GCr5{Z4Xb^iPwy-2xAT_uIu9~
      z`3&lf(@b>+t7xq*26A1a(>3V=N~dcrr5k6A!09lfGiaMb$c)~=dNcG%{S9m|eK*i`
      zKmTe11}2z)lF%~rWzmkDt`#n3Dc9;K)e>tHY1Gl?gmaB(@{02;^>g$H%CI?u=xE|o
      za}GT;*UzHYRD=+{a}5pAJGZYhD!^(X#)hy?uSHZHTBK?2zC__Jp#?7!!!*|86^+c$
      zD8eOVN-jthic2L?d*)HhV8dN3{TSV&E!*bs=<WNk9$$!Plg<=@sn;T+b-Jam@_Cs`
      zzlJuvPP}iRi@qqXRG{i9qk5tSsvTN2_SJ0Jc@w*5(Z9IYZ&Kx}75ReYe0woamG5o#
      zPr4M-EDzLRNryQ)gRT?)bL{-uE5r13iTBo92#5wfLcV97{BHCyT_0z%uMBJ>#{+nm
      zyYG?w`y~GX#kr2{_z*kk@5fBVaK_356T_gs4FY{%74%;TU50N`L*MDIiM^}yoW}YN
      zR?hb;8tR<I{%eRvLz<if-NZARWT$XkOt9Tgh5<e`#YQBNV%ZeZdM#4irmyE`+`Y?d
      z`8lWZOLp%o_V#P`>>CpK7Kia2PT_l;W84IO(3DLQB84*LNgOQoZ4!s{9TDp=EuWU*
      zNR<rtN-|{sj|@kzVM{a=D(*_$EROwmA#8ps<a05p*GeIN<nB)t;%5r+3x)WNLfoSe
      zzhgiCz)}3k&(U8PV_XJ*R|t_U3z5YMoYX>O%R*#JLe$CcWt9*^+6FoW_EoeANkQ)`
      h^4h=X%he(U86Qw}SfhLhsrrgr(^<YXr}T-_{{k6%#XJB2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ByteArrayInputStream.class b/libjava/classpath/lib/java/io/ByteArrayInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..637f2e2adf892ef915c7a91ddb6f7fa3ebbfc2b4
      GIT binary patch
      literal 1661
      zcwT)}O>Y}j6g@K@*ReB6)0VVJ7&o?o#u=A}(vae&l*Xl19T`}piqvGo#F-@1+B4R8
      z47K>!Rq795mr4kPgpk4lsa8TOg*__}&>sLlqObwZd!CN1P>^N6`}OWQ_uMD{@YlnA
      z0B3PE0abx<%X;6MalDyQJFpjg-)fiLMk`nfeA}ugpeZ=^w4yJeAhy=pP@t}sXg0j2
      z0;Q}#t6TnU1@Wraasvg2E;_CgTw)-<TAE&F{))G5r=Z}ljzNqlNH9?@i`3zY<J#}E
      z>T9-t!&<A^3XWF1s#ROId`I|UPz$ykf}O1VAMJTUlir5yrx3#lfi*^&`RU~ZCKTl4
      z-J0cY&Xj94d()~d_?xY|?FLuxRP9FKcy0>gIFTgLw2n9q32RbE3IoE*>PU307jz^s
      zKs0Y-qiKtYYqq-?Y$-?*!l`vR6If`ImvbgbaJ}Nx9aawsxt3auhUW+Nx-48_p{R(Y
      zDW@=lvkAPSV7SNoZ7bN)@hZ;oQr&Td!rj`}a6W-K1tY!MrFJv0>pEUXQScI4RlP=A
      zftj!Ls@`3@Wmkjw@-sq`_ki1~3#}=B+_&YhTJyHk5Q8mFFAA1#3PzU&mqkX%j92(B
      zXr-3CmS456IYN%{XRYjvfJK&?#`rijeki-ND78G3;hB=BP=63Qe~0KTFs_QIS%?+(
      zcQO1e9Ti9To05qYURuRbTF1MEIELo{X^j#{k?lspb{&$?c$Upw95=Qxl-@?tDC~cU
      z!ABUsxr^t&HwzsYrjdTHgOlb1`8Al=O=*ar(LqLdnGSM2IwlDL4Yv15r-=!)Fo_Rv
      z3U?@88}s-Om+=v<<6}wJ>=KFSmP5M2dXYn^(t3$jjOv}jR5-#cGomULlFO{`L>#*J
      z@5%mpw<_$Pr5yQ4Q#I7|Uqf^?-6rV$|Il=rIiabELfG!K^w~i>NaX82B5FkBbTrBh
      zJ_V7>2_9mcFEA!lHgD2j(YS%kxg+@dlO46!d00N9UG8)b8GP4=kn2NuIYju32yvdp
      zrwE@TuI@z2rT1`VPLq&y3&yCnhgpd}D$z&#Mw*bX_D2H$#MVE<z%P{GSIptDBr)3s
      ziliz=`z%KLEQb3ukj4dC8p+OMEF^nA+^pP7j_?Qf@*A)G-ZybFn)o8#2%FRiDu_%)
      zL*AWCetI8?<X6xp_i(8s=ewJ=?hzsT%>iMb@bB>tviwuRWMphAnrVt}r$nG}R$rhM
      KqkTnoc<UcK01!3+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ByteArrayOutputStream.class b/libjava/classpath/lib/java/io/ByteArrayOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f23a4b1262c94689691b6a720fc4fd340df2513
      GIT binary patch
      literal 2496
      zcwT)}TT>iG7(LBivup@#!a`Uuuwt?o0b^o}*(As&prb2jSkMF&W|x6XYMG&yS!43x
      zA5b5BPWfaWwaQyUN>h3ADdn|%R{w#w9}qp=GYkt^t*zSb>F)2G^L^jxzW?B>djO82
      z5<#25z!m*1eay7Siq{-tqF&dp%`}|#hBNEb4Sg+wpumBxBh5Pkfl6aVplzWj5USb@
      z%MlQoK<fPD)Wlq=yr@lUWo@FgSe%=hn!K<$t6iED*n7^lHXPk@=Ji^`2vEqNz<$#*
      z9aFC@5^=?-FK(FE4T0$CYE5pOB~>OnFAzLuFB?&G2^?Fs8lzIxsA-S36h7)f78T+w
      z0b|&Y?g$PDbg6u5y0to{S&p%4)Z<8^M<BLpINpjtCR5rzM^MvREoj-&L$L)3d@zna
      zq^Q~SGE<thJz#<3h$AYnuVh-rbYrbz)XRFM#uJH>UDa#zdfk-Y-l8CN__WG9#^^`m
      z7{V}f&uFRy&Si5$;85v*yGBU?WMpKARFI1!gs_}F9!ErK3Az;y)r}2<ZEJUIA4gJU
      z7m6`FiQ^F*6X<NJ!nF;@Sc~H+oDkTf%i~phogumATFq3h7*(gBwOCR)1nQDA>ey~k
      z>90)o;ZjFX*vYMyV>pE~GBKJWl36Iah=*IWss$t)Jo$FjSa(c%Far8^c&m(a)<$D}
      z-L5;v@}yO@mwDVjDml+fPTKdN;%vbt^D?ZeY-$VM?u^!2&v|3LZd7&BN|qNTONq5n
      zEGo6|WwXN8aKc`xrUmrnWqw-5)tX_s6Lk?oSL>!@NY9kxn3kT2*p^XrgWZe8iM_I-
      zS{_lS%eG9(H`5LeW#=PU;N9HX)MlD062KdAT##J|*bTxZTVpW8S-VlM8dIk9c3<nO
      zDnpq#vG^PW`J-Faj9%r~hdmq##d#ar`5jm5d-=Z?9o*T+FP(dWV^5;9bMOulx6xbZ
      z`w-#I!9w2`=>JRwKf?dRgo8-(?d##=mPCYOOmw4N^kSblh=l0lYoOr}&&CPa&i_G0
      zDCC9m=uUWa(cI_g-$Z&FKgJQ5r}$TW44%VdWOgxzJ&ad)Ql9O~ZQ@8SbvJqo*<9cj
      z^4nkuRsmS#zfK_)bfT(2lWw2~DrY0AMnf3&B_8)AhIe7Q0@qk&t4Uzk7dV2HhcL!b
      z?uBw+BLA@u5LS!tGzEve;30-Q;RVlfRTA~c;JeWhhio7pkY9IjH2<j&*P;6UE(`V^
      zy77Kfemx#+gn2)$Xa!E<8IPbq0!iNWHBMbr=n{Jqr?;V9r8k<CcKK<Z#5hkq3u!cg
      z2?aUD2uYmS0ZGhryD>j$l9}+^kRZZyp3LXDr>WJJ$SF_l3%ilO`48lmRD;{()%FVT
      z5ep#gF)oo(OA__oO&n8W=<*qNwf`n!?(9te-RQJRYGkVmxe;1!+ZkzP^ZV?`w-oRl
      zZT~%v;0NUKBdh)s&f;e!F6Ywv;>Izf#3hlz%bc|_Vn6L2W@m@^Ol%1*dzR?U1vfD(
      zrQ|MB$fe*C4VwC(ysgCb#4kMmD_!tgQ%QP#)?Uncp65g4F<kdbk{-Cht2scHe81u$
      z&45f;@(nEQxDQFj0KYTt4?YcllJ75K{@s*m+UHF3V!Lfh^Lj^>qO{6hX8IZ~Hd*SD
      m*Z811)sgr8bQ`blzKsv~lKs<^Wrxq$fj4>orKOfsjQ%ehG{_hL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/CharArrayReader.class b/libjava/classpath/lib/java/io/CharArrayReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4fe697a35fa5f2db69c2b6f0bbeea3c89911305
      GIT binary patch
      literal 2503
      zcwTi?{clrM7=BK7OV_UZDs*Gmu`&euu@9LD3J8n=qqA&t!|9k`ckSI)=vQuUkr^fN
      zhXwuJ-yj;)gkMG?iOUvAHf2VPe+AJ*qw(WE0H1T(-PMhyx%a&1yyv{{^StkKdVhZW
      z?J|Iac-sYsK=Wn&s@|Q-b@$EaX0K`Lvm=I{G)xyXfx0zkX-%MNvN$E+nCPRK&lLnj
      zOu(Jd%_~N7Sk9e^Trq12Y&)LHrmPcO2u<{b#{{&#T+;ABpx%obGzhrph{dF<KAy@N
      zgT>6GVP4cH(}sXAo=fQIG2Kkbd3jN@W>U=165j&xF=i#aDZ})j3e7UjPQna@$6VMY
      z(5{Z9_3U(aES)x{^>nW}UCbC+>+H3Jk+)L0tOqS<b`xW(7fx)GR+|?dR7-1*7p{`E
      z*9$kQnJqUpRWKykw2_^*W+eM`u3*SLAuqy+5Og}1xFQLyXCIopY$PnA)nwf`gj5wg
      zHjIJ`-2&U!XvT(YPc;q-)Q(!Fp=W|BSJHznJTJK(67YvA(r{NQJAF)suH*h>?+jn@
      zR3=5hwKDT)F`v(wmXTCNx<nvyo0`O2AimIgFjeMQHfdZNDq2HRr`hCWp`va_@v_9w
      zQ3X7CV)vF|dReZD!fzen6q-FagL5vNUDKU9azVFdyy(Yy0?VYbQcyCo2Lp(^@QOe~
      z1?Aa-Wn{d#fI+HKmzWc|{H#DEw7LGVr!1*Ph)JemYx!nh1*)^fjFg&Gx2({t8dc-9
      z!j)8Bc5om(Akn`ek&a7@16*M!9v2)vqq(A)FwUi<j(2R(ZI{G>JroVA2aP{!Pg&HP
      z8r|j5qegj&YT)I&ma|^2J2<){(W>b3BI@pO;y|O?C>@u0XaYW3O{I<4jvauq{7fWN
      zxQ24L1%l8x#v+So3fx3(>rJ==(dDmDb000^i+E-w5?w$b5@>yQ0lOpLs3$<bH=+!=
      z7+641&VmbQUxyPRAi!k!0^wNLg{x@8HSEVMdhkAu;RCARL!8HT1vgRxV#AG<;Y#aS
      zl5!|(AFV2`?#IqDg$a73&rbvg#^Vnnf_S5=cd#wGx^j;$7wQzCMuu**;rUd$IeKrf
      zxN}VUiGtx(Dg9*_0#S7EL?>iJ1TUXV`4J(==7m+t3lC%^9-{U>y2gFaEuv>-tr{H?
      zM#mbAcA^KL18OY6*rj@Zi{8%&^K-JgjUeYCd|A=Nuw9ifUSI`e6A$A^xdI((&WPH)
      z9k*1uuPZ1yY)UWUrA?F;s6v@(bghb;D3Q@E)ZfR^acM5%xLT5m_yR3*dt{vROB!_&
      zJmfoZJ-Rv{U3KtTVXb&|G0gCB461P$BWf&x-A`=-%iQ%Hi|{>*uu7@?z}o*vnh$yE
      zC+=RZATwG)=Hx~)!c)FdmLhXh+suYiucy>&DC@G=Pf_frZA!OM-J%hFS@6MR>k|47
      zI~7e%qXEBjiI+w)_B$nGzmxmt`AD|a#FU4;tT{F2c?I$|+a7WN9&y(%sK>AT2>r&k
      z{?1SIA2^ObdFn5+{TuJ#A6&-2Jo!j5KSWmKWJ|%qP`S+(_m?h+g;&)D8K#IvXgTR0
      zrBF7udqiC#D6*UTTxzOQo3C0IRGm`%WA^9?8ilCnMbPfWMRsmuruTSGNq9?PaiyIV
      z{Qs5R@~((lxI{hbL<2wfJ_I=ri5(Si!Zw`OFt!QKUB-~o=vQzCpQ`gx$LHGIpYmS1
      z??7u?!s|yg)$O?^P5+o^o3zf=yPfQ|1lz}N0p!<AjU}+Vxel?HVD}L$|E@#_dPFBq
      iiY}btx=&S3*0kU5Xg~kGCkVBN-Vs_7_M0l=TmJzV-^P6a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/CharArrayWriter.class b/libjava/classpath/lib/java/io/CharArrayWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5d557c6d8997de3ab9972c53290a5ee9da9e6fe
      GIT binary patch
      literal 3702
      zcwVJfTT@e47+srO2@wGWxdkIu2`4BjmsU{`BWPL#HK0Yb7~%n<A;DZk+h5SvK6H9{
      z>eQ*@v=2H{p<2ey=tDcUo&Eu*m+231I(=`u_RisOfB-Y~;biZ#_xG)}zRTI?<oQ33
      zp8(j8n=TXyY`Ye{8EuWHT0>LObWb`Ry?r4a&+2Ix>;k2WoB1_?x)Z&9J;VJ&W8s1D
      zP`Iam?D%kBU+=lGNcdu}fCvk03Z;^nY&4lYA5G+R8=3q9w(;DAK+$MOz!6L3l34-g
      z;dnBhJ<7d6^LYV#D0Nl$K%mSEFUq+P2+Q@&{qdwekeeRY(?ikmgf39gpNd5j=cDPk
      zyf+r@*{OI&pr(I~Xu3SGVVi{BR7{c@FN)!zTPFUlE;S`m897cQa+xWPX+5K7rQvoj
      z{MbRmL@IV&ax45qG&$KiIDSo!WxJ%+PA^K}RG}~fCE1k8F5_q(4S5iN=0Y>WTLOsO
      z&SdpzFM?<hD2__=SZanYT3|IzxWJN1P*E}_;LfHZ*>pTPDX=xrY%$HRcDb;BIkj5$
      zU?19KPTB=rfzePN&@n4BCQI?U7jMW?IGGNWCs!(|%h0&Qf=<YWaHb|Em@CGf(39+@
      zz-n>{E2+A@IEEgIoz$}uh4pd=!eR1CT3aTYUY=mXowQ2PP)cA+z$~y)SLy2My%p1E
      zvT-(^3#VwcXcHbZcVzwF^rAz?YD?uPxNId9gNe?}=*g=B^?^|HI;|vdMnW+)g2@-`
      z>NacK(jlVX$mz+L-nBN48^dgmWG;~?!3B)C@U}ozVH7X+qE+&aO5RHXl?C#wx*^7_
      zR<ET+pkqy)tkRlFrM{>a<6yKUncVoIlT4K9SBTERlOQddLuJ*O)Mr(f$cZ`;4s0w(
      zZS|<S$VXje|C$%4F(%NmvAear`!*_4A+Dt4imZ4j*Ql_`RAcr}A;`3Z9FW}{D&Xsh
      zq;lz)-WQkW+SV1N*elJkgCO!`wV@UcIC<ydT@l={%X5u$yF8FMR&kGK9)C-D*FhV>
      z(WRC7=dt;La;o63ha+%?E@!cYGjHAuTT#hTLX;a2r)Vi{z1lpgw7LbyLsT!}lqy-H
      zq`yP~mlal3-rm5HvsxvYFB4N(P_gh@f^w<_-6BVra_TpBOcZqVnU14I9F^MFXc*~#
      zs@Wc*G5G8*oWW<`J>Zs$X5};}Cs4TwUcu0S9Cv34o+I#W3sI#>REyUPqE;0u;2=@s
      zS1VM$Z*g{*&bzSNaGvF=%;?TVmBd(ZoaRt%Yq80@Z_v~de0HCrmFDeyU4d7l8uL_D
      z1OYze?neaunA!V;yB}JLv(un1rTre&3_>0_hKMoxODmrt;#=$+Q3@pgJPugsYZy3q
      z)vM9k6Zg3LC0FlRBKDaPcbNV4o)K}AB0K$5v(KYbvS}k^yJ)|{GSz)B+#)O0vRElU
      zBal(-QlmBMdG0<U-D5Oxz8edcsGH1|Y{EgKCHa0ZgxsOOL}*t+4%wgjK80KJQBAO3
      z>7g7Sv#)gdq^ue{MY;H^RJqZ@49fZ+P-9+IgL+bb;O=v(`jKJ(#G3t#X0Em27o|>9
      zJ=SijYsVpYRKnWPMV&=zc9=7pQhdZv{Dq;ovw-4y-<3ttb2z%T=Dqwbl;4K!YP4#8
      z!QEe}`8R6*ohQ&AeD+?D{ZEVLPE&Iyjw7Trcbb|zP0c6J%auOJb4uW(Qa{bPEWFPs
      ze9&yMIfR#&yNZ1VUUh1;KA11L`xiyLWC#9jDYefO=EGa)SEc3=Y$UGRI15}_-5dtB
      z`zC1qSo{|b2C@X^GQnItF3%ZY5d-Y90al|0zlXbG=q`$bkHA;+94_94{Q}`-TDB1E
      zr1c3A)u<A+*d`h*R5d154T0Y=sKyMcTZ~yo?Ki2)g7v;fxMD*A##+X{obeER;xHP-
      zF-r;kCZpeAl(VZw3H>~fWeJPqhoPb3b2gpy?3T5vQ*HL-GqkDEF?A%rT7L(g{Om~m
      zf@46{cF*DgrtMkw5@}?oLG+_k3@{~w{QqzUP2wzq;v5c&2#$(ji{NfkaJT9&enatN
      zdqN2g(r%Jfw3YQRZBwgyE?^|ktub$Nh%Z$>e>@At!@!mQ^;h&ytn%M&^ommp&S83e
      Z@6;=K&#dFkroXYicjo_kbCy-J+<!)dcBKFS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/CharConversionException.class b/libjava/classpath/lib/java/io/CharConversionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c9b2e3939737344c16fcb32cdcab28dad62ee33
      GIT binary patch
      literal 522
      zcwU82%TB^T6g?LTH5CLwP>IH{156~wC4>#WFhmz<S8j$nfgz<eZ6W@FiGSmY#DyQ=
      z-rq6aw&+4*T+DsUoX5TM_VMxx;1CrZ3Buk)%tceV&F)xuUDugQ&sVN<@?gpPfD0WO
      zq4)*rU41_g^1k$xu+5lp(>o^61tH5SejuE{6!uJ}9-pk;_uHZ(q}$3-L5Gm6)lGud
      zb?>BsB-S!8uu91Fl_M`_)1maP#n6_7Lf^I6K(Gz>%S$a7E1yv9|1)`uP^!fsTR5ZU
      zAn=qkYSqoqvlMz33Hns}z8FPbzn}zT;Lbcto~qDz=MSTUkccXHG5%OW1u3LC>)a)<
      z!iT~IIcE6gh%<3cH5SM|N01yxgEP>Eh7R&vWnvK4QHVr&+ND5;ks&tS*k54dr@|R?
      V&Lf3#j9My$RT-O+`Buc){sgfhZR!93
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/Closeable.class b/libjava/classpath/lib/java/io/Closeable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e47f5e4dbbb91ecf57b25003a0e66f1adb12e5e2
      GIT binary patch
      literal 177
      zcwRg8Z`VEs1_nb09(D#MMh3yG#Ii*F%zS<4oc!X{#H5^5b_Nzk1_7{ePGVlVzJF3y
      zYH|r918Xu!1tSBqhGrNe1D9(>a%w?IW`15VI|C;pgD}h-Pk*=!P*re#X;E^jTV@VW
      oBOlxfJ&<BHMh2i^3?RS=w2_s84ajE)@>qa02M}`s*-Q-F0Ebj3^#A|>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/DataInput.class b/libjava/classpath/lib/java/io/DataInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..384a9febd305a00408f7ae48dfa6f189eee5567f
      GIT binary patch
      literal 781
      zcwTLh$xg#C6h*H~+jL-Vna47w8!Fc9Iz$Sp)J1>=tW1eYO0cWMLG;&H@Bw@j!cLP?
      zWU_JId4Bi$+F#!vp8zgl8psf=4Cxzfc)Zc3g4%2p2?JSz<rw>v4H~`2q1zV(<-ny+
      zP0oFnGJ-j?eos*9y!YLa@Hh(%6bY)STBm1CTL#Jmm9%5`rVWBZtT`5LEZCI33f!{L
      z8!-2`VJACV&oqcZi=e20^UMPg6GujwolQE1Vm1?rK$o*Yy!|>6uzXG@0+vjpNSjBG
      z{=~MOPI*j%s#)*;-ijjvj}5L8hua&=z#+kYno<IFp%xEbsh9~oF^znGOpr4ln)N%W
      zAXnQ~f5q^{8>!SGLDsZY?vlf!pzm6qI@99xkuH=`o<N=x>RXa;mP20FhOF|)pn#HO
      z^H|W>B9=6^j1`ToqN1_tKeKE9uyt%`Y!h1=+s2N@cCnYRtXvh@pOS*iTfjj~YdF$o
      SYdF@}2~PhqS)Iu$gYzH9)`W8a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/DataInputStream.class b/libjava/classpath/lib/java/io/DataInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6730b4a924133eaa31103e7230e3573f516d93df
      GIT binary patch
      literal 5170
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/DataOutput.class b/libjava/classpath/lib/java/io/DataOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e4c74c1eb4c6cbddb673bc6b99a823e2e5ff25a
      GIT binary patch
      literal 623
      zcwS|Y%TB{E5Jj&`+Vn+RS_+icI^7VlW>-R_ph{T;Sis7SqBd0&SE<9}*I4iYd=$cV
      z6@p?**32Bw%pK47&*v9_Yh0SB5e(P#mD(}09m=Vn^G(i87z6{w6Phk<f3c22PSAbJ
      zVjj&HOCp*Q7}oRjiJ*P=9!47;vvg~sMKCHFdj8)FL2Fn0!6RAd$-*7FUC~T5QGT#u
      znb2vfz)N|NGiT{imfb5oh1`TuE}1J?M=^)xi$wKz%0wx-B^X=t@<Rd7;&gdaCdnbT
      zh4ABpOHfy?u-3~==9$8JYV3Bv@+^$pSW5NFtzF6f4FZBa$kP)`tfL`fQ$&WaO+nh|
      wR7h7N`x@zKq>n*`9AH=>BOF%97)KRytdSFqOf>ZgPBn7&pNM-d{2DHP0k4f`N&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/DataOutputStream.class b/libjava/classpath/lib/java/io/DataOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..228fbeb740198773ffabf65b7c25e4cbca4c4a7b
      GIT binary patch
      literal 3626
      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
      O$pv@O38z#P3;zYge_nS0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/DeleteFileHelper$1.class b/libjava/classpath/lib/java/io/DeleteFileHelper$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9ecae4ca5875af008b224109646028a3f23a8b1
      GIT binary patch
      literal 739
      zcwTi<T~8B16g@*1R+oiJ3tADu57gENEAg?!L;(Y)h_R%`$La1(J2=dc-C5LM<g31j
      z(ZnC%k22ofZUjkqn7K3e+&TBmnfd+a$1ebDX!@8CSUix&vaM`;lQcPcp)_riKB8oG
      z&4(v&rNFf`!}i|bfFkE(N?^IjrW9p~a-Z6-6Lri7hZH}HoU%q>YF!!So(fc&t-gS_
      zVPgtV!E^{8mjtR^W$0CQIG|)-4m1hWx;B!!FB6sT%cSQ<Div7jUaYdiJ(7%D&No}#
      z^I|&z>R9kGFEDqCy~&JIhZN!}t_cJ~a%Dzf;Xjfx-SKf<pmC9g01Zs%jg~^(#4=w_
      z#&K_yx!8U%+t$9%Y0t3kj}nq`r`7jyOJL;`*wO5v)IBF1ZGDXBXzXRsvsn@q4VmeD
      z_ec48fpEtdN;b4iQ)0)eTPD&rRc5$LZe-&S_wj(8Vr6Va^PitN4=cfAFvw$)zs3X)
      zek9&q=G7C9g5%`F69iuiIOI7f%GTjAIK!)OT!dLvIr6{3TuHE75Ciq^sQpCa-3b=I
      z;l^ipZ^f4anBn4;l6IDhf#;mrWP+DxsOu$l1-A<kcW}3mF;)lEu*$Q?Z*lK0#qp$Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/DeleteFileHelper.class b/libjava/classpath/lib/java/io/DeleteFileHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14570bd29eb528c09783675dec92eb874fb80efb
      GIT binary patch
      literal 1228
      zcwTi=+fEZv6kVqj2FeH&N(BVGAxuFjH*XZtS~U_IAfchkgJwE&q=$?%<jj=7ulNHz
      zqY0oS#y1mx#J^DY8A>ULFSF<D%UXM{ea_F{U%vsEL{3A5p=ZO~GSk9KKjRJ$_zU6i
      zm)zOpQbUxXBaAwxyPhtTB{yw`OYbSgFL=lK4Bh!KrxFM!ot4tu$qPToFtn_Qb=M3k
      zl5%cclrxt<p;n}sd8%nJZDNQUXCtXqhG@>Sc?*bMM<bdvv@>*F02)IZ;yOCf#n3b-
      zToKF@tdUyP(9O{IzhQ?aV@Mz#Ll62i^fC;FnLf8FQUp8ctYvZE&v|YjJ;&iv#})K5
      z=(e{k#TLP=b8391+IX$(G?=vl;klVq{#4MV(gwGJjOut$M+>f!md3yF)EYy3UbuX*
      z@}b0K!7MqXXlLHDOlQ@ULY=G5s9Fs}+gbS-TJ74nzM>n}F#?03Sp-~~fhQS~MyhT{
      z3srxn6{EPVVT=g>jq13Aabk7(cEFG@E*MV31gTWtP7G;G>6pe0Ey%9kAzILyqPnN!
      zz6xk%(_bW14G&M&9HKtow)mzJGKL1ki8?3?pVnF%`21egostzwXLzh*NZpFqidT_V
      zm_ve}FBn%y)bfJsa+z~X-{(FisJwyR3>B-(M^>X#1kH%Tpv@`xR`R?hA0s>T3HlH8
      z9HH&a0XjZIKSF~3l83llq|oR-28w$j!ZrFP2@`lgxU=ZM9NnxX+{7}jlUF~+!wvF)
      z1fmJ5T!L(b><9tw(*xT@a_kFI4BwG{MGTY0T||rIy36qK&#yg7PoNk5L{v{(An$AP
      zu3>=whw-jPo1nptX`!A|m3Eq}YN>Jb0JEnv#KK-mq=#MCcOx=1kJ9Z?4PYuf1JOgw
      bpRX^I%A&45TCI=ZN%+m;X_%{;3)}h&hwcci
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/EOFException.class b/libjava/classpath/lib/java/io/EOFException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48252ca0fbdeb32b493b95a3b4f0a85077f95647
      GIT binary patch
      literal 489
      zcwTK#Jx>Bb5Pc&DXHJlBR60ArL}Dy47=n<1L<;m0%LO;Mdfb`2!}yP^tw=2V0sa<y
      zJLBwu#;C>4=bQIt_VwfW1;7EyCe{dr8*wk{%By#V-Oj^A-i69@O&EmySEo1pZV)no
      z^p$XI=?9!&^iBxWC#2e*8-&6QZQ;yi{Id7>emi<=5fVqrRbi75t5j`*(e|#Sg%~!I
      zu&_Z$50op<=CiT%&&Al0gxtWJuz+A0&R0bvyjB6BH281b2BBD4b{yeO>!Z+D?zB<0
      zwNOzD<q76Y27#DH0)L<cYvj%SiR>z^mi@`TuhG~ApTPe{C?k#pdy}&@tn(v%3fm-C
      z4%rj?cx{2yQv^w~wb%p4FwjDVqvR5VEOHSkuec&;GE!p`wY>!jzZv>Ga~d&}mZ%kj
      Nj!M{y#J8iFolpNGU}OLQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/Externalizable.class b/libjava/classpath/lib/java/io/Externalizable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5de5c5ed66c4f083f907538cee25c92f1b686686
      GIT binary patch
      literal 345
      zcwSvl%}&BV5dNkDD^L{07`=If3yo)w1QHTL4<z1~vN21VU9#OG@zFf^06r9Ps&0uM
      zCX<=@erD$L`2GRl5!V6{;dU$cGSN1f9=vi!=K4*pb0yFq^uK4hG%rcI-m1(Cv<NqW
      zu~JS4JRx>UZh{EmZny}zAMV`jO8+!^CUmBUOzph3rV!{79!@rsTo%RB`k5`wriKah
      z2!kLuPwN4p_v*A)C)@k~wrS~W-<2(0re?ZYckuV#amC`}2xlBkeo({@5IE<m%~cB#
      UI*7S<fy>`sgLBN$uh6*q0zR5rcK`qY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/File.class b/libjava/classpath/lib/java/io/File.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06a7442a3a9017604352eb42caba5e794a319b08
      GIT binary patch
      literal 13330
      zcwVJi34B!5x&ME6?qnw65<)^)B!K{;WF{eqEV2Z|B*0)2FkuVeGRfS)z+@)QOxRpe
      z>|%Y^rB<O<z@lhHMbIRQ0xrd_+Ra+`YPEJ%tG4xNpS<ro_s)`GVtv2o?-%a5=YHqg
      z*E9b3^T&<=ID<ZRK_eLJ{TuyN!ARBoV90bqClsiikUzY(YH{m&vn}pI4q-?FuGx$R
      z{h{Dif2+W|6JHd3O{AmKAC)hRCZ+(Fo6%S>5?<!3CD0<mz?w)n7Waqa%l)A))2UbP
      zt;-+y_6dUCR5wpxd=BOg1m}t--_kmHAwo{wN?-HRW_e?tb8CG~bu~*DH?{B=U-Nul
      zeI3E=YhLK9t*vY1Wy9iH-+W&kqsytUYh18&A)kqv!dg5MB^1`DSZ<C-gW<KaSP_A)
      z&gK-%z$ARlIzPWt4exdO<LlC32KRZl;Bw*}oq-@P@;dyRm+<#`Gt4L3{4ulH499};
      z;6_#stzv=YG{Myt=?ce9KH;9-77B)g@i_#?g!1JKQ4<N6Zg>g#?QETiNtW_Zi7FQ+
      z_AyrTmRQ{EFffU2iverR_>yR((~QQq5KfzLvc%;lZ{@Pu&opofM!GPSFf0?`oUULf
      zU^4aTnBl@%eW@!512e(8bZr#lE^g1DY`If5%6XWAY6EjHmo+%sRzh($u9pkwJOk%|
      z4U*&U>@>pxLgkkd(B@xJt1~bk3s~v#i1m>jc|t!r@fj$=ND=#71NCTN!fkBqd2u$;
      z1YdcLz$`XUicxNy$Ho%Fri>+Dn+=S{NLej2P$qCI7*2>y3`QneE+b!C42%&<gw+Pt
      zU;-OblyPC$FMgAU3viJO7urWHJ{y>r0Y6%qtEfL5h;%6Tsm((G?Jk&otW+E6;@~u}
      z7VLQi0rj>tQXgU61miIgr?z~NFtXmjX~-iCst<<E#;%T5GrH7@>%#g-8;7-@gIf+;
      zo4P+9k6PN`7<XOhZ)-DSF>8Ze-FYF0d|Z6pA8s=J0mb1e5wpv{MiDc&ZJpV+LB7fE
      zW&;s)^6~h(AY;j|Pft?pUv9>;A{vaF0(_Z)%LPTALZP-LRLy96B-&9EHU09QSGT#%
      z?2L0Jin(wVp(ugTw>bGl!c>7bnwx}>Aiu`I6^Nzq)tVtw@Z|*5LIUyY2Cl_7STP)O
      z&1PE{Gq9z>ANH@6m@e(>Q++=x=lU-L<Hh9P#EmZ8Kp4?4xPhA_J_aZ`Yi;_3ZyETC
      zut@wj@(YMD)8@rp{!lC<vJz3bO1Rl+U>r^rSHIoBt+-8AcNo}(-Rv*cao^f-Bx=@h
      zLhC0)+2D>y>-xTV)~3R~5Q(o7&Ey9q>xKQHy3N6u_+E~w79!F<1AD<M2kw=mFhTb2
      zGq7JW+d!t?AqB`>qVlI6_IH@V=7R<f;30OhsM#6vw=s7^C)CtrO*YeU$iTyRgo%dC
      z@LEB`4(XE*JqCL5sML$D)|j0birI^^qd9EgaXi5^gW-U=SrT4WjriO+O3>D<kuy)q
      znWu!ilOcT;6VC_}KM)XKHp(tM%im7UZtd-ooR8y2qO>1d(YIVSek%F$XM~C`nI;9%
      zEIC*w|NLA||AL)sLKbb>!0dh;uWqiPKGB3!w~!P*SJ>QS)w$vQAJs$t7-t8EO68|#
      z;W1ksaN!lgsMLqXu25)6L^)M5qVw=F?v-r+x`^-wp(MKqiLx*qZ%PGwOU#(fb66fu
      z)VANnHUwGZaTEF`r|cz*@UGb8CH5;uz=05na#<d1pADPws%1?+hIHdE9N-+bWx-fk
      zm?aVks`Kz3K5*gvM7L(c8~D3auw2PIoD({@RrrYcYFCZiKL}$}toTA9bFDu#FS@p?
      z!wkoh3UcFLT=#-uuGhgpnb7TwM&gmS2owI;BK)a=&xDLiItrHDjsM{wX7XiYMYAVZ
      zvuymn6}aC*pHQ`%xQ#0wtE7y?%hm<Ws6X1aF36RI{ebyMCjEqNxD+u1^IBt(P*+@q
      zK5La+2Dv5o<ppDjPj2F}<?iC{b0Vu+R9`KS0}aX-F$x$<jXxX-3oRuN6)^v6B&A0;
      z)=KA=PDpIZhZ0#lVP(NsY>@LLj267;s*%%@n??}8enle<Dxp%gt+=``kt`%YeQZ@p
      zVa?{ncIde5SIe|Z{86@;o5nJiRm^2))NBtj)WGC7yH?R@29*gzIh|^owXn_~TPHoF
      zaNsd$0v>Uo@P!-YwbG!80z4qj<$seIweopUA}RY~wFy5J)MpsDSPJrhVBh^I233jv
      zbAmBTa(6JcFc=6(=o=zxLnIJv51LlRUnECn8t4Fj9$;70`k=&qQ{ONW4e*nBnbl{%
      z&z|zD8m1DPRlYh~snJ6UcV)l0`y5NAb)vHknnkl+#GYN01%%~oR|t|>?PS!FLb9P}
      zqY7679g_@@fJu0ki`XFsWo#14|Dy~k*ztW~`-K~l4UA(u9^rsXbNWOGie{D=G+8S1
      zd(^}UjhYEFzEr->n!#xq;gr;eCZ2<W9cC(f(^6U?R93Q{)2S?77maL^##15Tc4K5Z
      zpUqpsasTGDuFmCejafCw(Irk^TK@&$2?f-jq=0(1jXzOxWUIj+5(hQ|{4IIjMQwf4
      zbiJEQ%VEr!Re98kYBw<}PPM_Hb{I5lP*bC`V}q5oC}dDjg_hchrK&~3fK~(jslZ-r
      zPzQx&6*FkPY6dw&<c7`7)|j0~n`nzm_R<Ci>H2vHqOH<rEXvkrFu2taFEu+lt@u9Y
      z|6uJTqkUi9bUDGx8B;QUfScH82hSK~F*UxH@n2_zi@}z%Kq}E}6QylqJ2&?WR3_42
      zZO||*aMLwxys|*Vw5p5hD<`_?tBfE~aagQSXiJ$tg@6IR&MoT_m0ru@kw{r=T_hTx
      zS>`5g?sXZ`xIrdv*T-Uzo4(1GS*89H!Z#Y!g$1&@S?c^dvbx2<)rh(2R&G1mENLxm
      zrm^3yl$sOcPDpaPbQcoZyyC43RR={}Cy47IaV8_Kj)k_vG@Ef5mllUZ+(`_GrQU@0
      zod)d^Hz-I;vQ3eQwAm{CsI>szZP53K8UH5TBa_%%7kxhwPL@IKAtEiDoKXvrQ(ate
      z%I6l(#!VXtQ@)gkWT~eQ8FUF<Dx;vfMdG<Mi_c4YOph3J5KqXe$Dm&6zl)M*`khV^
      zJ&8|f9cB!4h!d@?pC*-2g`zuZFGVLuWwe|t2c9(Oabn^1fGH(qXvzrneX5*3VUf%~
      zgJOL@xQRRVl1A>qWR5TEP}^;OQD~XuyqWC2Q|L$1OZ`~7)J0#^r4s$rpr`2>nU90w
      zEQU3VE)Mf370;ue(=T1b{rd2P>a1B&6u8g~G3N&Tihj-6&>sk7QSow~RAL?MQ=4Rz
      zw$w%#odUDA7I(!vyW-57>F<ypmtLY*T=a4xqi2OP=vA523j=1mzbh19ks=_+UpMFt
      z8C!A{Ve2~05s9#0m3$Fx?*5|U`ZlAZG8y%S)A@AKJA|^7a#jD(7>UnkXAY#5o_Fa_
      zF8X6)9M6W#pg)T+gKc4&l03-azZdQZ8NKVXY8p}a-}3Z~}ttUPkmMnZv%YsI|g
      zNLRGYZbx(FF;OsJ43_{0G&tcx5l%raq$muKds4_vUOomT-wXJCaN2tzzZa#w58?OX
      z4EUiL@WV3ThiAZ#=mS4O?h<)@irk;^bA;THspn|>y-d9ims>A>x+S-&=Qy0IaEw>`
      zd2$)W&vW?8>6pM2%K7cvP*=rhD)jWC;t(bu#*~(WnB0qLJ($glZk*kX+Cx~#YezR0
      z9YSN_5(V0H5KY$3(!%9xXJs!|_2T?qv>ih5Aw_!w|Lak7*D&4lnMV^|ZeAxLgfkIG
      zH7CqEu1yPZ1J2{DA5y14h0@@vX9S(<d9ixt$&H@6+m0e;%WxK-Ad%41gSf}hgH8LB
      zwDSZT_CUv-3b$cFVhgq^ESF@(a;Znpg5?p$(tR=((&T!Jcdq0;ouAwIkE<4+N$m)Q
      z=^%A3S5fG}_DllLG4S(g1agxEzQX9h%KK`P-DP}2&J_3JYxUma7~u6hjO)5_JtMw3
      zg}9JW0&nrZZ?pd2VgGtp5g2M6w)LR1Pv646ApG5m+iVh-GmLmgh4)F&PB<O=y~jWe
      z2eD%Z1_`waMe#fPQ|s@hD4&8H{`WJEseiK|pCg|o8bX{m$e}nWvvAuS$Z8MUh}$Lh
      z=I`;Ih_^Q>?j+kfIUZ*p%jC!|8EHz(N!s?V<mq(H$NBH>49(LB=yb}-n&<T#%(am$
      zQb_{HX9V|nJl-CB{}Ei5a`Su<h{iFd@fb*_rKveTDP%tG=V0XGAop+<Ud_+yck#*9
      z2hmutW;d353#tm%bmM_~Z#ND)_oB`#VJ4qud39O&_h6v4+PW9Rtkt|dD799rzK0^O
      zQ&ux~BUkpi>%9lDup5t63&uITE<D0^+kt|ToiOAZ10Aa_(RO2cslFGJyrp`85imo$
      zG0tYIurz0Pg6zy)$oD!F(9;LJ2M*(SOKA^&I8%2_bMC`ABXn=EvxL8O<0mWjVeod1
      zN=liR5q$W$1Ktt~^{x|t9-;HI8_%yOndTHWik&teCyojqQ`7mFVDm9t_$adZV5Ftf
      za`qvg0p*#)Z;E<xj!oX8nKaT(k`t*CZl1XZ(-|1Yqu6vh6X((tETgGdO=qEvW?&u7
      z#wM!9l{6REPz`RSIy^x0(L+8wO7(b}8gQH%@grJ--%t}?qNRA1mf=lWj(7R}Lt2T?
      zs0E+%Xyv9x8b}w>XlkWtJlf3WVWyVnmj&FCE~5>~QP!}_u?r*|g;&2+j?#ut@GH*e
      z8rI<>{F+w|Jk1gM0)E48bDX30Mc#8V#}53KS2;8<xmv*0MXi(@zht=^4^K{&6P^<{
      zu6Py$4&&vP9=v*#lgJ_Qk2|o+E6;@LcOkEWUw5L+<B{s%wQ56!RT-=(*oSR>J}R@m
      zmH~2sZNZ6-Ic%xz4idDbdojGCG~p3{Q_F&?T_=7otL_F1D}U?7?@lIacsv!EVc5h{
      z^XSH5xRtGZ2@2>^&O4W5ByEG2uEJ!x8jI-~MCp2Lr5kW5-H0pb7F@;8Yw0H3LN{X<
      z-HN+t2cDtt;%9V+vXIBpS~8TM!|#=aWF<kZ;ZoM`+sZ<s?|1C9v6SB>(-nHW&%#Cf
      z;POhk?7<&WJX=X<KYQf;X}Pg5NvjZl<Q1uvMN26B$)@l$TU6j%#G*`Opjfo<&pr6-
      zQMTjX3P0pn-zmEvw-o-f2cO99e>bq{$H<oGxA5PrTi*S=h$x}qPmX3$?qtr7ATET|
      z!^-VNAw7msbeMa%Cs0X8a0VUa_WKxz(@|FPlUPYlr3uuM6sUz9B!#h()4nZ`Tm;%K
      zdN&Is3h{WlDQ5@VQeO_(&NI_0bL^#)WR=K_<3x-i%H=-9!Aaz4%MC49ktcEdQTsS&
      zmj`5-NF#fa$T+zcBwskcmL^{~#coZ$aF*?$`oo|WwIwurXh1g^_4_bpg>aMHw|FU{
      zK^80ZHVd5D%hN(eQvPf5$!ULA2~6=W88#tZdVHmc$C}&24N5P!8kVKzb4dq1&mQ-4
      z81xGcfnT!wzsQz(3C;8}Hqa}a*j{B<e+zr)9rV(>oY?-v$?SbjVjqx;KBQdwN2-dE
      z$F|-cPL6|>>k}1Hk?n-jl-qOtR4VDFA*_v5+Ery*)6y!eVfQv9SIX$qJke0bn%O*M
      z;y1G3A9FH(#x^YJSK@^d#P>L6+wO2#${nKV?o^QUjWxSa`{jJ&jC9{PHQl*}r7Z4t
      z&gKkIM8gk^yn{Ol-XF<nj<;mlP$71uQ|45Z>KE~LO1^0r$jeGrVHJwCGf|~Yflr%?
      zHf<U@wX<-EHUn2`v#?z|8@Fn6ahrAyc5Ah1iR&I)9~$naQEI@rjZ@=j6??n6HGI)Z
      zT&$ynwz~P8lb<@(JE}!rRl6}FDI>oaMKq>fuil5tY;AU>w7LHOtIhIsZI+~Kb5Js{
      z>YddkHpx42fvgg*{IRjpQsy+hSm(yZ={-=aSE{ncFT^i9xd!RPRj(v13M(DOdMfbj
      zw*!>2L^}^$(3Y?z&V#Nk#|UjDO0^b@)mCGwc0Lws7a*uzh^w`WaD�omv}i*Vbd7
      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
      OvyVzw@}Xd&kNy`cMVk}=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FileDescriptor.class b/libjava/classpath/lib/java/io/FileDescriptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a04a8a1998f2a85f69648b9715cc0aec3faed1d3
      GIT binary patch
      literal 1346
      zcwUWDSx*yD6#j0vDZ|Jrl(GmSl`cpHHxvZfsw9my!PLNuPKObO3^UDiN+2dan)nm=
      z1-|ft3q(l-UVQLJ8PB~_3Wi2aliqvI{mys3v&_$5-@XGFK}Ld)p?zK5RMUo?&KRaX
      zr<XLxD7v;IA;8ci-b~e6P3H>hy5=(Y42z*7TRUi+!Ecud<<}jDLDJS#%hFATUN69+
      zh>EY2p4oQwS<j%j@PuX>mf=oPa6FM`2+Z0mdL0_kETM@ZwrZ8r7fE>j3dzDo(Nqvb
      z3&UXcztH0{7%nSlLpwugqLRKp{tvN<d>zGg@LVA-uv3AA7VhijH{rXYAnf`2_$|cH
      zm^Cc@X?dfdJI~dEsWY@>ZA~@vs$+0lIA!=Tzy&Eh^tysN$kYmV%_z}P+O{+Xd45aN
      zi>_f?B?&2puG3j8(sM?o5?87S2{#ye{@Mr`Lr5#Qi4lh2YunLCSs=cg$ji8eI}&a)
      zw4P>I$W@sY+{HZ_n`<w+j$y4*Bjbte*}iyQ>TnYGc|i{t+Ts`A`J{dN7CmNbB%!?s
      zZmOoSB9>yg9*;01VY+5X=O(0J7Bt9^QOXr{T330|E>m5+Xe#E<l^y0x^f6Ed`X~a3
      z@~P4-$|ot#usECeDCi85T@Quum&kf0qJa1z*wRNd9H8|RBAyWyMwe&w2%~q8us&R+
      z|0~1~sz=5YF+D*9kI{)|7(fn#7(>56g7UOgvrUkP(J3bna4pHcAa=&rAe6kI3YJLe
      zvWQnaH1UOmO4{=ZQ--2^Ri;!8rkBK|5>r7iwR`9)lPtQy=ohCfJ|w_<$7tA`{T(rI
      z{AltsVka2dL6YB&F%;Ox@CS5fQzuC7Ae=fz^5_uBrPMw~4={GLM;tQg?4aE{-=`vZ
      zUGi?yJhsq>ZN%_~ruO!ny3vZdDB;GbS6tmgOjatM7B&#!N`9c3A73%Wu!CS=*S}jW
      SKO|u9&owYoA!e8psQKSasR+IR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FileFilter.class b/libjava/classpath/lib/java/io/FileFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f80d89c9c4250b17ce3b619906eaa6993fe93fd
      GIT binary patch
      literal 146
      zcwRg8Z`VEs1_nb0PId++Mh2m*#Ii*F%zS;f%$!spE=et7XJBDu5CDtkB<7{-`zK|k
      zCYLZWuq7rZrxpMif*L-^x~w&$7#X;N^Gl18K_;X!GVmh|(*vnwV`N}tU}gXTMxfcO
      P3~V4413QppV&DJ(o7p05
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FileInputStream.class b/libjava/classpath/lib/java/io/FileInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13b283e916dc36da7fd69d2a884af9e01730c4f9
      GIT binary patch
      literal 3029
      zcwUWGZF3V<6n<`-HpzCOw3GsE(>84>dBH{y5hy4$P)!XKDHLN>*e07~+s$rFHrRr1
      z2#h+8e)5y}#Tor3GvGkN*cotS5cMbcEBpnH=WaIJO;d#FG<)x!bD#5^=bUqszyAH@
      zK7if0?nV>C)&=RJ6jAiZq@v0(EnhNbjDjrX+;A~$t{EK$hNg6iVO!jJ@R(do7L>f9
      z7skn+%rfkZXS7np^wG#EnUyq6R*R;0w7QAq@+!Hv9#S;Lc$r~Kpo*zVS|&ol6fH9z
      zoMjM>FD2!?q3BxCjSUPwXXKN*F{zidl<mXdis~uZjZF-q(^Eh@Iz@OP2w>>qt1S#2
      zfx1M@fbDTblTVg%^K#*gG_T4GopC)Wsk2f+;d|?)%g8E4hVAhuNJzQ4G%05uZ%9l)
      zGklywKSOgMI4fWfLvHvPHaUEki-w#NF^mxc$;ifxoGcX-WBG)nNg267S_Fbl?0WM!
      zPkB_tP6Qa-bo`WLP-(jA&(!#Yu*;1w<?}>55zj$j@Fufza`Ch*r36H<+l}WLc05zH
      zMeM-~RPiLqV~{TU*N7hrK4aH-se&(xaKl3yrxjj}jrC9rjB3;SKjM(JKD?uec|Afn
      z#1lTqW4$b*1+88j!Gs$}8M@a$CnAbtB(=qxVIba^%fzx#%Y`_!q*K%L3k;#aGp5cP
      z)JtB9TJ1t=o|qd`&S9Olhk+L;F5*?ZMv;=LUX=NpX%Q!Q-+9uCCaKCLLTRDym?Y{w
      zwccpdM4;@?@QyvpFcf%7Vw|O`V717bB4$knfw_rbj8ESjfAcmeMQ>uUV2sk3FQw_~
      zm?M2JFa%c1cC=8CmSb8<UYaf$)9DF5>_ta{=i%cq=BTaobh;=TRC$i4%KR!QE-HC?
      z1g3&hZYV^26*#7<az;{*7BZ!rtQj_>8;iAT(J>$sB}Gli1rO)~?2Ss=PGgW`4{C&A
      zC>Q0ydCI<ca8SSkI{8Ol#CxC#ZI$wQS)&`Xk4QAkodrA2PZ%Ofd{RAzUNs8Ha;ylJ
      zL@eVHS@L>Osa|qa_9<@qfSW$#6{(>=se7o|JX$Hot3;E*rnq2g>Xc3!fvO*^^{hYe
      zbRc0yFBOvVq&azAYwo=<ej0u%b2EL>G|?Z;j=7?FrRN5+&@D{+HrlypCt@S5j?=n{
      z+e0g8PlPMzs9^JL^I$i93a0T4IiJN=T6I^Qu?^b+bJc@h0^{IY8o={JhSTW}RnT`2
      z11EO<j<#LlGIo>^4250yFm@MvSEKcql(U4eK%^H5MMW1h_@JB72dijy^nUEaOBBsR
      zr}yIkp>Q4t>61raqCNK?azyv==;NXAT^tUD@8FeR5vgO)PjUfQh{07ty+#bKqXVCj
      z?Q;_M3kQoKo5c``*lM!qu~>juOj;}^&0>&}oCOc;h_=y0`jVo3MJK*?C@k3Mf>}VW
      zFkL7Pg<~fA9@7GNLU*vYjMsm%v0KgeKbn|g)yKkQ{32>V+E<Tsa%~UXCLTYpgXY4i
      zb<o0Q9Qt2{sS>*9fM6Cx2j0Nx1_;gS%#lzc{u_}x{1~0oq(>5*U<EV0g!DH2@K*TY
      z1M+lHVf^Ipr*Ce*9krY00C+^!$Atd}mFQ2hK60=av1OTky1?hw3jFuF0?#7RfOOc(
      z#~TVahwqp1)>^249QF6w_4nc(ylax6%ew*eGOb<o9PYb;cHa%O_4zJ@@Be_d6`W60
      zAU)u;!+pLo=2yd+nlKOj*!0qOxj;YK+OUmnFvEwcaCZ1%D?DE%kuu2*L#9<T>6k{Q
      zfztPc&NYt?c)$4$y(`EjR<MxhR4dR1%FxRwR&enFS-(Y#_hwbs_b2$%KOmKH`JDC2
      zFW<B&kCF~xKD4raY-R)Kp=Uqy(@(S^jIt4ou^l+TMji7RwNr@VBYaHs#^{FngjSsR
      e6?}^7d`7GSxA3U9>Py0QJF44aSNE#vb?rYrq*ZJH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FileNotFoundException.class b/libjava/classpath/lib/java/io/FileNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ceefd617fba6388488d716193aab085e7c707332
      GIT binary patch
      literal 516
      zcwT*wzfJ-{5XQfOgEJ=xf}oNZL&u*)Vk{vvD2gFipw}<3!6nC?xj)8d@NKL}EPMbT
      zz}mt$us6;fXrabpcXoDv^L;b>{PFk%;1DGpF~Z(V+=_;B8eL_{f#Y|bz@D7kjpdE6
      z99xG*$bTWdi|+?Q)|0LhmMLA2^Q+!5fzAo(j$?biuzgclflR#L*I!=Cvo}JrrEKN5
      z3GqtRBxoIHA`Qf`k%EDBLZ+{5ISA$>>0XMFB?-B{GiC$9Hk_|6HUC<9g#G@%eK!e(
      z$`Y}JJ#7qqSJ~5M)eIdAp<|w)&!y*yY2@?^B^W~|aK|##CzSrQIS9*81`oww$`lev
      za@0ACVT~7s!||Ttn<I|IF;QC}{SYA;-VKgG3mV$U@+q~1u!&qG%Dt`x+DwLQvQ}SU
      a>!-pg*PKNP#U-^;2v0?9N9H?G&F&`@^=ys+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FileOutputStream.class b/libjava/classpath/lib/java/io/FileOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d01dbbec17c1ef08be5d0c25ac1f570ca9802316
      GIT binary patch
      literal 2903
      zcwUWGZF3V<6n<`-bdz*j+R|3&ix669ngCU*2o^!wQjLZd1&b|;Y?Dp9CEdhi1Jp0-
      zFL3<i2o8>pGk(PxXb`j@I56XkKY&sHfc^pf;`rRnCfy{hFr9So-gC}#p7We@Z}Q8(
      zw^ji>i;D{C1hy<{7qlTGJv3pY^r^g+$y+C_tgbC7@CdY*tZs`yT{6MQm^*Y_&&9Jw
      z#!6>LXpb)l48-Qm{E+Qq(kZ^6nWmn~+1_Ktm*`R^MfZk7hG|%b1v*1T%#>!%4>6fx
      z&X3FvP74H%U5e`&%Sf9!1x*6oE;l`%&l=Wp*+ao5fnGPa$+R_*&YOv{i-2b=ozNAu
      z38-$*09w(m!jBGtj&;ZkP6r_Hl=Rpl&=#tYph$I7%rN!I{L-ABJ*Ca1bh^dTaV<5i
      zWexf6Y<jE(BPY;Rf#6n|x_C00wIJhbcu+GflhIAKLCi`@J0zumKx-8x$;gv5WX9%7
      zO91s4kWnFl`j9LvjNJ+%0xhm|%Q;J5Qn3en$zxu(N@^e1Ol@AzQs~g2n_i`PMC$pB
      z%3<3lpfLP|T~K>vOtGW@p2L0x&kJnb5KqMmvNM7Bf*wDAng%xPAVw6tD6sR1rcK2m
      zyhQcll-Qyu2dean4nE=3`YHMm6$*T80UO!<KPu2#nZ|Wkr10aIP;iXnzrK%(SMaKU
      z_kxx(5_Yp@eRz%TQPbYqUg;iyigu~yaVgiRBs!(Siv~Xvy`kbwoMbbc!UVR(YKt9R
      zwo1j4yf>Mcnp+eIhn`RyIds0HVUpYjJY;VRY%Wz6opK#QFDGJRoQI$^54G}0ao&+r
      z`YvZY^cbo#ulJ%H3l4oKDy2OLO~qNf$0p736Qx7w%xLi#C#7YcT5u;CmBICM`6O?z
      zGouR53xw7>dNiBWmZN4uzr-Utl^m6~Nv>Q;0E-xqxftA#P9}4@MXZ!AON^(|IeSXk
      z#*92`0Tw-05<gg~d?P(6f8b;~pN;Di_95=5z9#m{a0FRSJ#Y0o{;|{cilfPA6D_<M
      z_}<9320m3ZqlN1e@YpfU;oE4Pi4?H8r-07y?AWdRFJpkWh%k*VuC^Dw(TyI!UiIQ>
      zqRZ7bTI=jg9qVK|!bpjwgd_C@1gldl()qldqO<5$PN6s{Byitjfor&bMCXq;0Pe?5
      z2Y8DE?BQDx_7lQ-_#6lqu<IrUC-*!+<DSS0hE^~fj`VyEUrWQc@OW?HzzrN;OS_A3
      zz-J7;O!2Rf=ND+lRZ{qp5`D!QuF~ggn^L%#qD*PPp(IyDIemP-jH4tYX^y&Rsy59}
      zX^|}%mNdz3>@u2eL!D`h7V!EV@;<)%0erh@iG?FKFd2?q$BDZ*xDMs(g#DiIx7fcQ
      zxc?)CU&RjGC7GYF5BFRXFkGfQj8jyY7dEYusMOfci4iuv340pZ3rSBBaAj?_k$z^@
      z2aI^=>QSJK9<V2vCz<mXaut8tMvw3##S&|v4fe*bHkev8I$*7s!E6nL$+b+`AD)Tb
      z3tz|NL$vWMjL&d=xPUWKGVVt1UyIzoLr)I{2+}{uJ_gHKJ9*%MN3{M%{NI`V4_Y6&
      zSoAwAguIAqSR8d^^2@B<D>zp@#eY(Tzg!CW%L@51hqyh(XOUP3*y8|4>LaTw(5r#}
      zCh$KS058CBfahy~Kjd1@ZePz8Z0fy&#-84Dk=1X|cpHl|1*GoCN+LbID_B}f*(Gl!
      z;p2}=Kff{qXc3M43DtxhqS<vE`pOjg913z}vdTJpmF7wwhs-(?vEL>P_+<JOykAwW
      n*a}5-x!U4$as`ot<;?7mgW;7J*HAH8qTdzlE%!8UdtLYs1Cc2f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FilePermission.class b/libjava/classpath/lib/java/io/FilePermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5356442f25891e0f12389782a3640ba39aac9e8
      GIT binary patch
      literal 3406
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FileReader.class b/libjava/classpath/lib/java/io/FileReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed97856c4ea4f3c14043d1468ba35336d7058fb2
      GIT binary patch
      literal 774
      zcwU8&+fKqj5QhJ)m1^bSSrqYn;USTDjWHU9#MpQt#zgNHSa3~gNokF*<&}vhK7bEp
      zoGn#KfY^)e%<RA4{4-zQ@1FpUuwy`Dn0?~Uydd2|S=!=8@Vf8}=nTuh^-HH6_!Zw1
      zyw$yCNE}N?`X>xCyH@;paqo`7EWOl3+n27>F)+!Hk1MWSzw8E1{ZGT7pSyKoAjz;4
      zSH{|!m_j;<aU@KPVOm8q4B1}qm^QSKv7{regH}~|x4dc#n$mJ>+`i+URC!d?{YTkh
      zn70O3P^8<2RHAhMgbca<nJ+}A=E=72demAuT~YqB3|ga3CP!%*79x(#oo0c|OQ#tT
      z))gU74jkSJy$|SU%M~~9YN8x^%=C;ODlIm_XjAGNqlgv<4F+X8WfL$dDp9P_KehjX
      zsr!RBq~4HurGkc8I?eF%6iJ+6j-th`81q;Nu_>x75lq3ebPh!>4?$iL(i(xxVKqYL
      X|M$B#1b$EOhY|3Na48I1;hXIrl2DrC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FileWriter.class b/libjava/classpath/lib/java/io/FileWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8cbdfc2dfe2a45bfbf2a49b76e56734fa54604b
      GIT binary patch
      literal 1099
      zcwUW>-%b-j6vn?P3yUjl<*%infC5qw8n0`-k&=)!U{a}(yJ0)vkal-7oh9%D_&QuQ
      z(ZmPvp^RsCm$KMx;$G~WnfcD|ob%1^KR<o}c!xb3Ifj`_e#NWOuO7&b_@bm1%7(>I
      zzCS+>br9;NR)TlqdxnYk(v$iF!}L}oonNc87@YdGD*`QjuV>>4!&0Q^aPOkp6mCd}
      zn}Nc{Q-;}l#NqMag2DRew}p)YLn&P%-HwAio=ssK6As2OW1?Ax#fP5K;;6S`Lwe#U
      z?4AkrnV)q8&EN1{-f3|q%|1D_^f%dKm}?B1Q={8+X+(v`qZ8^MGfpcl)8Vq|t4yZx
      zAP`=gft`{mkG1=v=PDU!U)AEIHIuZ$kUOV@(kLy%e8P$C)k=C731QO^)~Q>MccVFn
      zbPNj_*-6(sCcQ$h+4Mu@ii2q6;)4%+CJ}33<h=RDDWZo!4mRz~Itd3;6xU(V4#;o+
      zME>heAH_bV@8}?hIr=-%<vvO4n5SqV7SsAX0_Rb}BEb#5oZv0m#qdvbY8oiS@Z~<1
      zGUz8nX+`waSUsQ@61s_A;3cU|ot0Fb$?PFkGs?ImZI2k@6<#MptPc$_1mDPj_eiQo
      ez~5jifmi;+q3sO%Em6LYa44py9eNvO@BRhtK*PxZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FilenameFilter.class b/libjava/classpath/lib/java/io/FilenameFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4eaf5af08878af209dd0647e4b26fad217db8952
      GIT binary patch
      literal 172
      zcwRg8Z`VEs1_nb0PId++Mh3C0#Ii*F%zS;f%$(G`#N1RMU6NYF&cMRRAOM!jNz6;v
      z_fN`7O)g<%U`tF+PAvd3lr?;ibz1u%)CQLnW#*+@Yeq3La0Ta=7A1qsOl4#cMzul@
      dq=Su-fsuik0R$L<HnK9XfmjUeK$3}p0{|DlENK7$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FilterInputStream.class b/libjava/classpath/lib/java/io/FilterInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20e17edca82dcae3178888f676e2854029b91cdc
      GIT binary patch
      literal 1405
      zcwU8)+fEZv6o&uZnNp?<pdbhqL_GE&AfPC6NUV{hO`{hjHIW;KvKzOZcADu7(MzAe
      z2k;f-!bEFgBKPu8#<h3Hiqj#ana(=xZ~nE`KKcFQ7{D^N6NoWPzqJmnCE+aX2;1Xs
      zq1p1ivgdNEk$}!H{x^Lp!4MNohKW){Zi8W9Q#6IQ%`laYtjJUt^ry}NPeQ|xi3Cgr
      zEuE<tU>GqG#{k1<Ni_L$zp>BVU2EUw3}YpyYS|Ub719ray7xx38B(P)yC6Y&!*c8N
      zN*6K}`OQfa<G93NQ2xLc4dF4c0>iMZEBmdM<9hr+X?i8=XG~1v3ParGZBDhxXYZ=K
      z<q4<RPT<<<8NKLb<hko6W@T>%rG?!UOw5AJ-8OLpH%U~xE?QDsF;kTBtcg2FGYmHU
      zM*h9WsX11pyp$^QOC}cNxp;anFG&n5GP25$ph%&Rp+2;IzeYRS%gX~Rv=FCOQ^GZy
      z)867$+i9!eZ<tt@0+VIOcdMLcM+ztVMz|>Z!#sUUql-gg<ci2jl9j+9MGW$G5ThSO
      zv)}2-eZ%k<@?sdJ{}FX^m+C82`w|z(o9tHOBE|q^Nh-A~mlH6b1WY6Q6~n0xCjKFl
      zD)E{=Z=J#!J)D8dm{K^}U4UCrJ}@Y89i%?@Xag!<S0uAr6OfqPAyr)^TPJT$k=Fhv
      z&4+dQG?>Fk8g0Fg7SeSqtm{K0iS9`sX^RFeN38}n*Fokeg!*{KuyVMoL@b;yZ!s+I
      zQ>45F+>4N>2m8!vx#JF&!>FS(<lV=EK;CK}v`n^6?;$BKH#6J8S{VCNVYA(`9(E|e
      hO6wtAmYA|0k)=^|{rt5*4zK+et^Fi&8k?$e>klmSw~PP)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FilterOutputStream.class b/libjava/classpath/lib/java/io/FilterOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..958701f045a002b0e3c200d07084a72ee428d2ce
      GIT binary patch
      literal 1060
      zcwTjp%Wl(95QhH~J9Uz}7t$te(*(+`<N}Qls2flviYPLQ=%OW?Zt4U_HFDz0v7sy2
      z@Bl?T0V~!>5F{3T0G@^?0RH2+X_Tb0jx}>;=9_=!{Qmpv48VO<HN*sRZ_Kx5)pn~p
      zw&PpgZr~pW{+{nyW?O?Quy`IHjtD4j;0t7HlcJ9VrXJfJ+usscDNar))dke2?rSRr
      z1=Bh-=!6za^&|vlb;L0xFjuoX*2|#Xu)KY<;aCFcn%gv;y6M@{k1kdJ$nFZ{YnP8g
      zN%5xRcA1@ecG9$tecSDHHDm=A&Z~^wK_o>H%Q{x1sCdf>x<^vxs*VNd(pu*AJJ0rI
      z^P*9z%eyrl1zZ&n4IYCD#e;1b5x6ZQ>jD~Y3`0(?G=i2u>|k4l*SIdX)#_SYsNz^1
      zmfMuM=LTNW;wWsgG(ORWl#T1GSNNLLAy-CginfLX|4Di~i17nb<)1v2ADH<@FNQh(
      zXT!?ptTdSW0`v5;{cK!88VId;NEC8%#uj;}(#wSOtuO-U<sO#G-!aoeZj`^z{8yMp
      zJ>={C{D?2)hR3Lz5jD{#<}Zk;P~9QtGlyu20gd|~qdkc>kd(C59<Ghz+5~ilhEEQL
      zPjbCCLNNv0oB&oMa7C${^>Awx{GQ+smw@k}7=hQvz$f8b0y$+<{fhZ=C7)3bAM{ZA
      zsEUkQ`10@1MW-}#fm6QGCw4mJK0k*YANC1@j=89#w8|VR7Frcr3coDw(vk}9h2)L@
      DJ7k$u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FilterReader.class b/libjava/classpath/lib/java/io/FilterReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a2511e1d8e16d35da1d4c4a7429c361d0cf4652
      GIT binary patch
      literal 1350
      zcwU84+fEZv6kVqsDAP{4$i)jF;<YVG6%{XBln_nY5J@QMgFN7LdXOp8PBWbvee(<a
      z06)R#g9+5c2S31%GVXn*RG8L~d6<3HUT2+k_By}+{QL#r9@b)r2#i(CcV^ahvoCGO
      zm)@2%%hHQM6Bs=11eid?t_cipoQ9VK`j_pR?XL=qrozp1Q9xUF%Th-a2?GX_1URmB
      zAaE`qJ7(=|cC%EGmcJAy){uc1h6Tn`-Tib?2W>Rahkk*f4Z9{^HLE4*ZJQ-WvZQO7
      zPSNyiUbjKb-?tkA6C1s5O7^v?>5&~Rm1DQ@7w;`u_ieY<h+&fMbi6CK+3B#&X#?kR
      zK|uFN$FZxnFCcOPNmeT~>vh-jWmzDaO220QH3L^LE70f3hV&I)Wc-$a>$stCv;2XP
      zjDZw0wZ?&6XJ7erp7D7DbGS_>)|%B_Yv1(fQX)?T-l+t0OnYEZwhIEW)XsV?7hsPV
      zdq|v8bB}V|S*Ot4y}iJQBPrHC%W)f$xvK`2*-*UTHa$zyuxN%OCucU#Bhh9li6}iJ
      zGQe?ArBfBd03kZ9@`%s}3})sI5&yyeBaD0}B!W@K)$T3g7m&m@#%MJW?7%oxP!%iF
      zHF?(5yGWQut4r#Hwe|^m<`5&3Elm9rkE_NmiN84^tapTUT*izNrcm037t|UUV7V5q
      ze(k9BE4-qVjDXWt5*%KavBlF$H^aVs8dI~U8U^2_7V?!2`}){ZiJnTA(h7~7hpq-T
      z)54u^A*oOQ8CDi|l?i%SXW6?Sw)eTGJ$jB^N(HJl`X^XvZfd%P#jw~HC6)<j9fJux
      j#uL>~;3?%AQPmPvQ9_r`PG}{Z&=Don>S_F$Vm|*10+_WR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/FilterWriter.class b/libjava/classpath/lib/java/io/FilterWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..393312c942e226602bfb62c50c1e39ccc7171ec6
      GIT binary patch
      literal 1112
      zcwUW?*>2NN5QhJgq)DB)OXvo)1<L9qkWjXpAS4ulloIGgQG(Pf+c>R@u`AmF?%)mJ
      zRgg-MxZnYJD8zqG7Sf~@$coRLe`dZ}oL|3x`~<Lx`xztz77xsKX2lIEPhBr|!dB?=
      zok2=qcHrr00?D8g3(Pl;>s5jDL)UlXM*<7RxU<j{NY#SZj)o+1I&{oX@B;gdz?ojK
      zXZm}UZR^0X<7$>sb2>7Z7g#bT{e`9mChC|%T41i>`p%2aTgwSwnwIBCWMG?K(+pjC
      z?~AE;-;D&88z+s*_NQzwh!~eNWVhKTA8h9^b^|}kV3jisvg+GIk8E>Y#|q9eyX|$N
      zeW_g1aX~5XC7E@NdZ8&DS9NUQvVgGos|#d|-CDixD@flB7PmTWfy8c&>kQiM$l<D!
      zp5qIwjP7A44qbn*I>^2)v&)Q(;_&!F`+=NiC+LK>!<pGqesuJ*j81KEp-KKB*st6w
      ztu(C+rm1MWZ6U!2m@Sr$ko_*tZ^(b8lE8x0RrWK+H!y?eSmbTFmw_c(P?jWfc)2qA
      z&QVM8c3xF@pgh2I@d)`Y*8Z}yiqm2@uM}7B#r3&DuKQoKi{mtlH2XvvztIHkaesPE
      z(pI~;GL8!fI2;*T8xF1E8m_Bm_<<+DE!rubISDSUt#@IJqd)Teq|n7)=n$QwQc~UL
      kaFaz6%DP1>smhiAqg-XY+-II&PARvEJExYrt2p=m0D1wWhX4Qo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/Flushable.class b/libjava/classpath/lib/java/io/Flushable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6633563468612fe937fcefbc9b77c50e570f712d
      GIT binary patch
      literal 177
      zcwRg8Z`VEs1_nb09(D#MMh3yG#Ii*F%zS;foYLZq#H5^5b_Nzk1_7{ePGVlVzJF3y
      zYH|r918W*c1tSBqhGrNe1D9(>a%w?IW`15VI|C;pgD}h-Pk*=!P*re#X;E^jTV_rw
      pBLg4Y3O$fwHbw@ZVGJO^2(*!vfepxK2l7~eGzSoK0ohCp+yItTC>a0%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/IOException.class b/libjava/classpath/lib/java/io/IOException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ace2958ee63e144400fff1f19bca0699c671470
      GIT binary patch
      literal 486
      zcwTK#%TB^T6g?LTH5C*=P}#XK0Zb&uC5j8wh-q|zc0a%b$CRmQi*f1yxN=3}!VmCk
      z`~u^hf{&<+xzBUYxp!XQpI-p%qG}^WDBXxV(NsaRdvSa}khif4v<>UC;R`)#el-Y%
      zNQO%Io(v<-uewJBIwRyefsSIKV^8=KneiW@q1<|VBxLuMR&kq<uGKw))d_~uK^jXr
      zI9MbsyGqOR$+$1WOVRfwq38w!77#4M`MhYw*D4~E-G8=ialPh#Z`+GQrAMv0XLQO&
      zr$n&FGK$0~;r|0AIK5yJ4&;e4Vuc^%I|htR@B#d3geo$~vbQ-)VSyi+L)hlHvd5m-
      zXBt!FpAyJ2TZcVx01JmGaFm;Yu!3Sj${WrJ+Ke>VY-4+h)!z)KJkw1WDl^oa!9*3T
      KCF1MJ%*F>|X<vc>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/InputStream.class b/libjava/classpath/lib/java/io/InputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6839fb8fc091bf0a6efe16eef1cf29a405379b55
      GIT binary patch
      literal 1659
      zcwTi=O>Y}j6g|(L@%XECoYbKPyG{wEjtw<U(-fQ%B3CVPY8r`DkxV!EW0Fp5&sg>t
      zWyyj{Y>~R66bV>lQx<F*iK1i!3tB)(fCT@5UqLzV*|CiqMw<8TyZ63x&;59h|M_+g
      zz*(#q@CZ!Zs(et%Sx&BKx4Q1S+cqmr1De2uGBhgoR&K3&%dEKud;-w}_e%|@V^*pS
      zQ^0r8vMqO6z?+`i5YR3;bu$PrLSY#23q(qmZC>j(t7iLp@5W@wsZ|;qm9{0%eWm8!
      zv^oN@(jknN1On7rjh-t56$OHqw`*q0wH&)+;Miy?YXggbUXx4-->kH6b4wQ`$pBI7
      zC97$<0)kjaq;<X9YB_D!tg8s`(OG&CB7LJUR}4ZR6-ELx0tPk3q9h@z0-hTM11|~8
      z4og<F>*n@a*InBzI9<Em84wC$79k0BT0%t`$=TfG+AzsgSOlxx<YI3BrxL@2SP8vt
      zc1+ig*94AB+BtQeu^o4&bC5w0Q<#_aKS!K&X-JIqwCt@V)u_&Gt0gP4I=8AreSQ)X
      zlE^CCTJ3HsRzA1cqRhZf+uFLu?Cox|SDE0t({0zxE0*la#7M)=$cWlW!g={ibeXfE
      z0t9$ECj)WUGrI_WL&1Zva`JF}9UAgDLMhyH!cj!HGX$dan53-nG^L<k=|g$E4+c0s
      zr74bJcm^0Tk{HLxDhvN1l^#TS1VRiTrtw@qkMqj^kc*DGINdY$FG}e+;)?I{c%cvR
      z|NK9EmOmdRr-qs#f2m16lhK=$W$ZvE>&@;x#EEh6uSN(41_T2*i5C?i&iOc~(AiCc
      znsVYEBFTFQW%m;G<d+CN!fbgLr}n*z+78ZV9^&QlqW&2oG3`?ro*n2h?LjsX)83Ei
      zpIqO;MBXPYzPN9nhL1E6(~@62eL|TbPjEO^7;u3($h}8;UajAA0)Ai(f27w>NaJUE
      z{X(x_QNV9_8^2=}f8ZV3H}I!Q@LhIWw(%graz8;SrP&LQlIAFR*^y;rC}}uFIZH_=
      zmbWhz5Mr-hRpmQ#$P6v0QRfUl!c=)Ow~Mp;V<rE4q@TgTFfDM1#<8BLrvh9}9mC??
      z&k>0F!78RcUQT}J&ugg*`VLNK;+i*=yhF2*R7Q4r(TExM;oCtZ6*KObE2+TU`%nLx
      z)>G!!12P!~mmH#klPo-l3k?b3!@MwXLHLmu0jyAWMT8aMWzr{=K?$$&fxbb2C?9EF
      e6>gd-EU~N_PxH7)tIqu>8yIIIf(SD9TmJ%JgZ2vm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/InputStreamReader.class b/libjava/classpath/lib/java/io/InputStreamReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e752b9e606b0b9d329efad1e00571c1b2c11f22
      GIT binary patch
      literal 3729
      zcwUuO`%_!T75)~zKwOAzjN_MVj1wCq8xl$|!hmhCo#0Rt8_N#3jV+`rAuJ?S4-@)I
      z`f%z#lfLqBCYjXDlxBwMl!*bi?!;}GNoM*7WZG$e>Hm;vr=2G0cUG5cxd@nQMtAq_
      zp8fVa-#L5s{^^t7z6an@yzD`R!nTR<)o^Pf-8zuU6!OFQtQnp>Ylfp{)&r+P?ecVS
      zOrau?Qt%Bf5BC*fF*9pMOI9CNa89MOS7>{&U;3GJPC*SQxThlNLMpFN6-lSAn%TSn
      zHVnp7h1PgvqSYE~?VHY<xpV1IDiKLXO~Sdm6RAYLS7B?@U>UlHo6mEbe%gAm37b8r
      zQ`ogOsDXNHQP>za^T*9txR7Kc<K)xW)Vv-eFG$5eEw(9imZ!8HgiwB9Fp)A(7beHd
      z?78q*(p1<qn2v;#=fl~Ayjz3L{CI)_?kKlUF)Ea(zAOs`|0?wKU^1MFw{j$rifcmN
      z6VFD>Og@oL<veIqcxZWPD3vQ@GHC`ZdLl*sTwt4u<_{To82bpI^|XX+Zz{9Pdb%jo
      znAQ%LQsGIh$qE#Owzb?!aWpa>&gRT~Yk#q&dmaQ79$sa8%j{S*oXMxNUifiP;@iSh
      zZ(0jf!D9_7Y+v0_A^3k1wp8R6Lgq6<rkw#<oy@%j<P=?w!Jc*Py>OsY;DZW|CXtD3
      zcdT)|z34)ZEO?-b$KZ$o7u?c2W}pvp-jnIbmHWdsG&W&I@`uIhgaHFJRm6DQz!P9m
      zaEujVQY!i+k)AX#h|elilA+#{&NN-@8yFC`T#;ltXL|6ILY*z<P)Q<o;jDqv2+Bt1
      z40uo}z4HdD;g#Og2CCpysAifj=dr?O9{3e0CS*Qm;PV(I1Dc=Kx#*$*(P=HzXeGi-
      z)}kg2npxC~Aw)!)C=X=0>_0CYV+P_FXA$IdB3V4+1f&#Bf!7}Q)8hdtGf4xJm|zLa
      znz2MO=|vh}@F1hGp#*(8mp3O3WRVlpY&JX{NoS_-9sbfF43rtt>bldhn9gH&(oDtk
      z<5I3QLlIuewghe3z!yb92Wz^#f7!qkyyDeYh3F-b?Rf(UOjNP=bpziJYgZygd$GD^
      z;01h(o=%44f^aqsNXC6zVfS)CB|ZD~;mk3nCBeOpPC@vdf$vMMG8AMhBQF|w2|pxQ
      z?n)vfn5UXg@xEd9D+bRyoGxS|=E;P}yk$k{Y>|Djhe|tmDZ2FE4f!#9bjys<ZMD@h
      zef67?Bf#edz8&N03bFMEZe!yj9-QM#1-A3))e|{_<*|dkEk#4@gwKL^VHaTpZa3!|
      zIOgQr9t}K5U?Jx92M*lE-ZIG7i130&ZYWyX$X*Lsdi&8tYuTgOqWlzR#lF@bxC8&l
      zfkhlBgZ?6&eW?V!)<&<j(QDC)M=bP5S4D3tgZ?VfUt1UbF?7(nLatj2{S_)C_Cfz5
      z4*3IrK-X*V27ZsO8C2gv*GOOy-Sg=62j+3qe_$TR{kQbL_ZCh%91A#gkH|jC2fR+e
      zn~dzwQHQrl=q5M+1@>Zwvi%aBc&CJ9&?XtQNd`%>MoYlzQxe1>P4_zc;%*x$932__
      zqcC}&A!W0GGkzsh`55;59i#II&ErB~X$J1V(%m_(<GqCzu5O{oEjI5)ot^J;cAmm4
      z@N;I7<F}bYzhQ{qWgzZo&W7gKW^q;+!Kfu-k4`$Eu1KdwG+MyL8GiNs+TO;kP2Mko
      zs<WY<!KD?hzHA+Y?h;o&K+PQtjcmHSh_SmIxWIqtCOm;9=WI~}^G$f1+}IIVnx)so
      z@bG&gNSyr?Kd1#htlJ{1U7QC#<nzyT{x8^yzcN^VqxIiu^<fFyZksJj(*LqmHP&H|
      zYqnj^m2`bKP`S;y<Pf4E;U4X9)w|x1yx!?s#1+oX`s!V8!(H#{<@~VNaOyTv{t<S4
      zml;i;Sn+?CTUU}oM8~gNw>=osZ3Hph79H%OTfj%O{s(K!KbiRdq8tC_s{i01K1LgT
      z>roC~w@#c?E}T<tJfl2B_((h7t}9vG&eS-s+Da`*oMotZ_~Ix)F8_l(URQOo5Rt}L
      zh{RIMH(+XwkQSxs+4%-D*-m1S;{#OtH$;Eu(%H>-hdkb+aJ{~Yw<HBBW<{rv=oHfW
      ziE5)xk*&QX8$zTFTwooQHc!I&`^8e5;Za*qs~*HwwT&OI+xb1}!y{@J4yoNZq8e~o
      z?ZL2W#09mNSNA^Tx#r%np0dPh#91vz1&?x_Ty8p}C(C3{5BrimbH&Q?Y_a*$&#<wW
      z)nB;*kAqq5>~PjQZ@^VCTT+JZU&E3lb4;8CJSQ1;1CmY0Z{cf};afN;J=^}9_8zQw
      z*GCrdox8=6@6LRhwJb}PN3Sj52T#|#-uyIF@0zux>yW!lwNtLguwQkcSslU&)rm87
      zF0PKCppN1>b&NN5A8*)`ct<^sU#TawY`sP2?Hrr4b8ODeu{kTp8hMfY2tTG^XK-1I
      MD%tiE&Eu#41&A&lasU7T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/InterruptedIOException.class b/libjava/classpath/lib/java/io/InterruptedIOException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0025ea890ecca761e065c11c55ecd79f78fe09fc
      GIT binary patch
      literal 680
      zcwT*x-)<5?6vn^9Ukgi%rGN^>dIy+Dj2FGAsTaj2Ye=gB_onq?fRRo^XUXnh>|6LM
      zUT709d;m=!rLWNR>@1;)HockiotbZb-<jP%*S~%Pc!{T3BnXXD@kMl$-*L5(K`@^g
      zId%`<ejUk~QNGS1MJO#jw+Dn`C<7&?o(w|nKe}B4y(1L%d>tC0jVGpancn_;_4C{1
      zn=1Q<=SGHuK<Mx@C&@AUT|(xy(#q@-lFgP!NbUJ!nL`pq2M!8^wVu-QV171~!9WbB
      zlCa+MN1Q7-o%_XR%ABZ>u+_W&Jv)SQGxkh{o^<*qP<pb{@}kIU6j>%@&tw>iiH-Wt
      zN~qica9iFA2z3WJ<O#XHKMzK7Uqz$U?jGeu1i>@DmE`}Cz!RjA;Vx^t2do&yI?0N^
      z1h1>yz2Zt-)9nkaeYe(!yymz9U8Jy&byiMnLJ1pOBS3ip*kxzr&9t9ipz<%_kng;=
      zgi7pM5F+&mk1f^VQDfEz_C&+yEvsGsf!Zx_)gB!&@R;GBEOaZjFQNG*G;d#<V7+Mx
      FjT;Dnf|CFM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/InvalidClassException.class b/libjava/classpath/lib/java/io/InvalidClassException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df3aa4d98b9b387d245441b22c0edad6778d480e
      GIT binary patch
      literal 1027
      zcwT*z&2JJx7{;IBYx&r=h;6Ybmip1c(iXpNXb+$!HE3<BBqnMyz!VpkUBWKJvsdr_
      z3tlnNVl?sM!RX)M|KZK}&Mrk#h?n7gW}f-YGw-lJ|9t)m;3{q?@G+!Yyw3}|RoFHA
      z+|V0kgWL9<S9Q^Gbjwr_n6T{CTB7b8I9<WpV+%vv7G0eiRnfIcKi<8~!0s{3l`YeD
      zxam~6(G$UMzkdIC`{r=K5UI;EOx_j@iHZw1xY;ZaST~zRhR{vj)SVrMrR?-_uF4Q7
      zTMZF~A8{2b<`@<#x+xy?+BMOA#A}8Nw(69LQ!>({$$;}hw;5I||GhLNP};(_d6Twm
      z%!n{6R0IrXR74SDh&F|D{}`~C%}x7d_H!y$kWz4-A$ihJ>gh&9bi>Fn5c2{qDY!_T
      zKIv0&8S50cFI&8K$gn;c*L$zx%=6QThmm9O6*E%gRcvC5TF*NjVKx}HX0?85YLwIE
      z6;xb7iXrS+-Xep)ZPOS%uzKCPxU0)2NX=~dwgh91dg!PBrVl9u5hA6yDohnMmTEs$
      z^x!nkliHy*AN_{3{16N8UGFK#hRNB7#MnoIs%6iG(^v%DYKdsfWi5|b`{a>l$Fxmi
      zY59*x{sYdtOHT>-jNs2*XvVXTp)ofib1RAWQBChV!oQ}yGDJxm;%p`V9bxSQl7lZu
      zKamCL#Ogb&9P3Y58)74oJ%V<GZBOMrF&L*xAV8x|<Q5`$N#__7*DZ~b1#yc$cJI2^
      I+`ZTT0!|O&2><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/InvalidObjectException.class b/libjava/classpath/lib/java/io/InvalidObjectException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dca02dfb54023ce3c13d0f5a3cf277501640a8a8
      GIT binary patch
      literal 448
      zcwT)^u}%U(5PgHdnG*z2Fu`cFQ#4+zF+_u!U@lsq^vkiqCC8q*TZrFa>7Q7cSoi_9
      z_FDTB#$iz#jm?{xw{PCOeg1fS0<ec=2PwkZK#YZ_BCn;#B2>Ne?m!0S_$H9oMn&2|
      zny~t<nLf5nEXD9gLMSFORwC@kIN|xSbwr?3LcSU4#0YIVA{@!g&g<>_UG?RSklj~W
      znFgV}>09ei=)T9cO84tq9YVSp^`wg#%;(@@j!^KGmS>}3SH>5j8%jdSj{-g^_%P33
      zWZGP*gs|@a|EW5`8OkIPeQWe90>N!Zqd1T!YT~-`x6AHi4;vuP3C1ci$Z~afN@12e
      unuKS}G1Fi!#Wh>oen9@-Y6^_5We<4w5Jm1PQxz6a0&KU4CF@nTJC#rHtZpa(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/LineNumberInputStream.class b/libjava/classpath/lib/java/io/LineNumberInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f422337ca4b73b10801f7b2a78fa6baf47e3c1c6
      GIT binary patch
      literal 1926
      zcwT)}-)~c87=FICr`^uFwOv;oYipS>XwPK77(>{sV*|8Mw=k9^6HGW;&$a_yyR@eU
      zZ@l6kF!4qPaTg{_2wa%pP%&WC#OSS8{sEZijYN$%CeG(O?M}-^y!pQOdw)Og`<(OR
      zzh6EAFo-vOa0$e(>hJ3PX0bnO7L2LN>Vi?q6xJ%%MXO}!t3G%H_U*WwHS^XpW&t(t
      zgb9d@K-;Qbx|VHFwqLE3tr<hl%@|gtRG3`RrRUoM-Z8UaT4{mKWOk=QL+;VkoPcMt
      zm@`zk(dLJWmSzY9{ZQbQQoA3%s?^~}6Pg7A^}@6ILf)WHwz#P0=k$^(-!-MjS~1H4
      ziR}Mk9~E$!1%b$OyAx=p*34Hkx|1nlSI=BuG}bJ$SSb6D5C}Vg(~d>9+wI3bbg4Li
      z9v==i`qc~g5k*X(b=j~Qr|FU7<(15&=41lRkHbi^8OG%D=BjDYC}nBv^Wznn#I?90
      z;7eYb$YfF(ABF^ycE!A2SnfYnD(UZK3OVEYbj6xpnkZHZxw6x)N}>$Q*&nk(vZg>E
      z_qV{TmnNtyE-mrQ8yu9cSTdKV<y$EkWy6v!r2QC^v90A@ILg<|HHqU~>KxNCTJTn6
      zhA9s6VzE+MG{`s3w(Ggu>5~ZPdD>Vj8H>7Q<j~FD+@!V}E=dteE=dskCOvq|;gd!@
      z{d~<+@8TWNdLN)wbAN__JVNpae`<$Cc)q}7z-6B289apmX3&9msFyZ70bWEWU`t#q
      z(+jyh+TzrC_<G4MI82S;t!nqNe+w@w`MXXPuWhmHtp2K3EvvvG=Bl>bZ|4RSW(e#K
      ze!n4Dae_&YTJT#nydhaWx`mV`vk-6{Ynwg5n;h3Vg1FUyG2~zjq1P@bB)Rrryl;;m
      zn5|+wG8PT08#v5Y_#=dOl=g@>F`&(}1J4yseiH|x!PX6Q2GudmLu;d{$@Y)d0T0==
      zw%F(A?D-4o9<q<G(1XXceT`S~4My=T#_=6tf6tBm(12yOhNTHvPIL#$z#c3=6N{wJ
      zh1fa*@pZJs;#YbfeS(&U7@U8AqmSb^p}6nHMm(G7(zY-%qC}Ki@NOd98@u5W5#@u~
      z_zm~=?d>PAh-U*n*Cu?Fa=U>%;jn*UOTTiUzp?o5<nmJ-#2?V`CtLiBet#3tQ%v9=
      z8%Vm^n6s1%I8M;QmQK*-vZa%h+{`t=STBKTT%H81(379#9>C{o1dUYp^qM3{sP<Vj
      zd=c#ofoOwI1P~BGbcj#`^&$@SUU#UMu2IjcMVYRiNtIgB1w}*~_TzP6dF>Bb?q?jQ
      z_OyG4vK&J?(fr|UD9!g06VGg+C!z$^kD>A+vs&wnN~p%=amH-_)SWQyIo)XN2SS5a
      z^rA@|fhq<O6hnxJqv#aFI3$i?Kpe+Oal-CalXD=poo>@y&!qi}8OCW!ZmxBIZQw4P
      LvFn`08`AYZONKx%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/LineNumberReader.class b/libjava/classpath/lib/java/io/LineNumberReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b1f52dc6421992945230c9e9ded565c1ff77c3d
      GIT binary patch
      literal 3594
      zcwTi^ZERE58GcTD?VGqaA$*vU+9u(n%(*rsO+!i(poFZHfJyiaO&BANeG@J?c4}Xz
      z&}vhqLM!dZzQj<+S1D!7x}{Q)nq~q<CXhA_Y3y73zd!p|?L*V1O&WX7@pa-P>_>dg
      zx#vCa`@GNlaZVoo_x3#i&*6-Y3V~Ip661*`JKGeuGgePwbjZpbv=S*Rr$ZB1S=!xM
      z7#_BAR;sus;7`wr3y5xkn$d)lJZYtRtk<O`ejE^3l243Vsd$;FZ>ycLo$Uh4Bk_{%
      zqRx)SJ^`&Oo3i}ypvHh7O9WOd66=<7OXhSQP7I}KZdp8=Or-k~Ia{vXkD7DR&I>#f
      z|9?()2vpb^f!c*ucs6gpK^4^_mQ(J4C(_tm1?n{5g^&CB`TJT#0n|nlxznWS<ugfZ
      z%(1hXyp9HXT{6?%JG-M}t-xBfkxpbrn!3|zYb25G%#9RAt&B4(SBdokA&GBe;v|0?
      z()OtBG}!ru4CNhroW!lc21(o(1OhH`O64IZXJ<yputeTyz(kY~)7j){N!*-V@6ahL
      z>2ye`jRrPJ|2$*ayj(XMOc}1d%BuYGya64Ra<<t(8(v^=hg6o3(_>xo`-=vu;Payc
      z+jMLt%Vmhp<{fL)z;?VOP?gB#5@(ayv9khZWHFxZCw%HII@4)jr-Y?TzV~Mt?5Z5O
      ziA#_KB=fK9Amfltr%sg6`K6^3c_)#hh&N|3f-0_kmDnQ?mYPWExRq<*PD3`=U}we?
      zX*-p0tdt-1*g)=v?Q~k&?=i3f0YCQRppFA9gZX)6;1CW|Tw)@~$gwU0XSH~f*+Rzg
      zQ^8RKuVS|>mDBdvK`T|rq!Jk?zDw>67>HvP=}ewvJ$32$vcT#&DtZd(^!}`!aje{I
      zlK62PgE9qn>lhMPSC&?ply#=J;Pejfr0rC`>_`HGB!KjgvFz}$;=@q<oG2}Ix4Z=^
      zi~PzGUlD0soMf_kPa8N1o5kUbj?F8cypx-saqb~mZuDQ4&z{CTm7vrr`61HSK<W$D
      z{45t>NCji1OPMi=%6}+Z$R({^wk-R=!ZP0^4YD|hfUVDi3R%0HRmcohW0hJPl<?yz
      z{u*3$DoLQqj4o}!G^%eY(OUlc)kZ%L4`3;0D~p0yhUI{oF)OG>s$1f!>!vzsUN@tm
      zCny^xf)S;xp(r-1Om~&Z*-A=PaQ-w_xoVq~8Nh3Pin_^Jr9Sm>Oer*q0<J=VAVTip
      z?Ua_reP(b9bqgWA!831``RAL3<WmGn!(r;Gz-oTexT=?0#j`HG?*^}+`VQ9gFIzW_
      zXJ-g7(!cLMhgfiszfCuBltasRp=%S+JlnZwZP$XuEyD~42k&~P&?*mvQ*B;TdN_qG
      zW<Lc2-qaMD>a>9LyVWDl{21+KcnUEo7n{P4*n<i9Vh?6+5nups;cY^C8|T$nbaSWr
      z{SKjDL=E1f)K#p-`{eXGHsb?q!wu}hhv>mg^x=Cfl<(s;Okf-z;j5H?2R~Buw9;X^
      zJ4?^I=u-4F;T3$5GY_?O;$^%*OFf8CrzB8tclSc_s9jTJA5e6~C0#odjrIM@x~H*s
      zM!L6!(URj1*WDf0@U-MXPPJ5PZS{4R(<!t>B@NLc4LbH<AC>PzuNsRqtW`yDo4a>O
      z!%vu6_n3q;1o~3~yv^ozzbuaqxNcU+=Cla@M|4cWKO&)A#tIo2iR|8WRGJlxitCSQ
      zdIlIkiT_jVbFmjC<s|hPdbb9z!do$^!W|r>aBwcYH?YKjM+EXKg7`I!{|1ftEqVVP
      zS^YhW?GJ3de=JMhBQESNjz`?&J@f<z{zM04{SBA+pGKcdD2eI=)Nt8<1$y)Wfl1H=
      z7aP!sF4nru49yWw=UOhIDpc#gj%8A+P72jUAJqCMO&OL@^uZ*fLd!ZWCuwmFj;e70
      zLuyRIQe)BMP3%j+=al{nXMbhk{f#I7ju!j_d+|^D^e>+LH%{O`JoR~*=fke&Exf^x
      z;Y+H2@LF0_wx7^*nFx=fKgUydaJ+vSCuTz7!RWmYp@*)>ZwY=&&V;XGX}E0dnN(c0
      zYxn1fT2dscvQ8sYp*C5iEp5ID>|e-Qn;y_5ZOi9K(xhNLKa;yaz;_9?b9>BXPn$0q
      zI#(eA`jPNC&*N(hO3Ccwn`Xc#$z^+><w^d{Fq-X5_lGKVf1$>Q_@x?)%$~wC^ghV<
      zZU}~0%^SC#Z?!diZmmN^tVc5&T8oIFU6_cAD6jdAywo>gKs4jHXhBvyk8!aXZ;3X%
      zBevk%;zhhKI&ed5!w)HQSM0!j(TRuDA)~UJF_gJm>K2cXVrLL)W~u%zXGc`uILux%
      zth&VjoB0Ui<3pAYDj7$<-{sq3Q3n5j=cKj)Ny{}=iR`gGC6aDnwOeknR>^R)iiQft
      z1lGy0U4?dQo=Ekah^dj@xr@T&RRQq|YD72c#9qEU<7gEJ&>;@;#dnAgs>9@}5B=iR
      zvKBHhdlm7Sun7Ox+>5fA_UpE)`kTh7eI@)iOK^Ar#9}{#-wdkEh<$>24Nc_W6?s$%
      zhv*7KH;#4U4I+FKo5WYjZrWxSjTcd*RcEN7hEZfxrDVzbLWFlXmls@Tebt5175AFF
      z;<&y9Z`H@zU2i)tv<a*->okw{8S-u3fcFZR*VX4dB7DC7!sW+*4xj%R^U7O%op0H1
      zpjLbnE5)~%h!+qR7y19edx(ikcurg<xfiirTr0bFI%gB9lS$(!kZVy;=@Z6!m0TKP
      Oq~w@;?Tjm{um2C~K)q)G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/NotActiveException.class b/libjava/classpath/lib/java/io/NotActiveException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55fd435de77ff86d845c0e3e52673ab8741b6881
      GIT binary patch
      literal 517
      zcwTi-yG{a85IrN0H7f|BfD$cCEC3UUu|!D-iqQ}((Cshl4PLVBn%xWWbNmG>5(_&E
      z{R;oW&N#cEg~Z~{>z+AhX5PP^UjQ7UWMGL<8j6XiDX-S`bko*qBF`Rdd9Rh{8i*5i
      ze*UleLuu=t_N5s8LI~MF`bs#K^aIXsE=~z_Nl3RmH_*b>mT<;0@%H(+_uBj*Lh@L-
      zN;e3xa>XLVTi&fS5yNT<CRPZUj&fypJnBpTTJ#-B$aOrM1q91*J}<`goeBuso&U$L
      z6Y}NRza!j1jYn7RpkA>;xqK+MPB2C?2*e<gS%4DEo;UVw*;b)uaZ%$S?7=R09lj}F
      z6A2{Q8=Ng+nIDB~u}yL1h&{1SRHsNkMUV_zlRZ#J94E+fl$wFChFnC-gU$&Wj0~~K
      d>i!fPe;L}`a~?4iW~ezs7!^>A#5bd!t#4iMZ1eyC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/NotSerializableException.class b/libjava/classpath/lib/java/io/NotSerializableException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f7bec05f427f5470f854a175da709d3c44b046f4
      GIT binary patch
      literal 535
      zcwU8&!A`<J5QhJOLQMrh6jTxt^#qtmjPV5Ff*LUd4`}a8-Qbeanzk6?1Nc6kNIdue
      zzKCyOoGs`<V?6B4&g7f_-`Tg1msbEsD4R$ScE{pDG?d@y`_VuKO1SD#3|)CPbL4%b
      ze9weIsC-dZ!?ARtK@><a`9=u&FdnsK5ORIfJtfd3A=~l2FcMy53wJ70ReOf_r_u=_
      z-BO;4+Jt1aW)qB#e=98{v6g{_RYI<(JlUU4hBCO;uOSqAzQYEBZMa@Gjp$B=g#F%s
      zOEd|^>Vk5GH)`+#${RInwl*zl(+z?-kzpuCvDq(_U=93f;K*~OohyGi9qLK!fmh>S
      zCX|svnzPAO0xNt-ugEdOony|#IaQw{`y3-VjuvO21p{s5`IcEgSVtii<>xL1+DvLT
      eT|by(^QXcE&vavj(t=tl=vxU}vH5m9v-1ga!*aj?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectInput.class b/libjava/classpath/lib/java/io/ObjectInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0d1a9ea8e483c4aae951f61957934f21ba01133
      GIT binary patch
      literal 447
      zcwTLgO;5ux42Iv7ZeioAW8>?_vAr;H=Eh)BCd3X%TsUQ2gfgP0T2jPs<G>H#N1?gh
      zfU0n?96z@6+W!1{{{V1_Gme0vzmTtTsO@k%Td35FEH6Aq$PiTtBeUmCilfcY`!2tc
      zURK2n9YWg3nNbW|aUvMHw{NM+y|$U-*r|z#=}(3sTq-$dXvI(0WfLbaMAcp<)}jo9
      zIJs+%a>a4TaQ=%&Mml$I{n!@Sye{EhbWSdwBok6fjdklGA4%oG7RywPbvbubTmPc`
      zmv*H>vKAeS(>*x0De6!ZlJ64P{fF%RA^Qz-fM`S72+*roAA?5K5svGG?1bI{PFILB
      BRUrTX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$1.class b/libjava/classpath/lib/java/io/ObjectInputStream$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43e3a0c23fc57d2c7f5b02c5303e7d672863de2f
      GIT binary patch
      literal 1152
      zcwU85>rN9v6#iygSXowD3Ra*ZidB0-O2s>BVgQpS1x+xRc*E^>C_|QAGP_IkhY#Xg
      zU?ONt^Z|S*<C$p@LIeJo+u83s=R24E{pZIo098CNVKC%2ogJqlg37bTCU>Knza2*_
      zk>t)+zG@=Lkk$at@mn2;iC%__+8S~<mLmFCc`n6{@OX<ipSY0-e1_g=LxlMm3Q#{W
      z!W@0walE`2xQ@5x27VaH*o^|Y=6X&TG7Q!agU>4yF?t^gUqp`?Duq)#cM*%L49WSR
      z$@{>NvSH$kx((XsgJmIsAshV|W=IqiG*uTqUyipLT)uD`9%snZmC98|3ia+7lPXJw
      z@spM0tE4$0V=BpTp;$j&%sCSmDB3Z#7IL^~V*-~LvMnAha4Lx8&H2L;G0YZTcV~IT
      zBKf*U5h_PWa~39%H*tj|p9-{b71tPSioFyx#k$}!)TOCeD4=Ab$S~IJ;Q(u+j46gb
      z5vsv(B2}qEt@z5sG{eLpZ#h_r-Hjz4Z3NB54=&$s&kl15^`A@_td$^^E`KUiBeGqE
      zpH_TIq2~Ks>gsSxA+_kcUJweu)sAZ74#Vh)-Lr8I_Zf!h-qb!8c<4&8ts5|Y(9eI&
      zHmThT%+PoxX!XEIr`5ax>5Q5-`uhx8{jlllS-L%<cY@ATsl11Q($pT(rEkc5(ZF-G
      zTbe*A8>`6DO%Vx>^BB?gQH*t5eIlg7j+ee7o%o5|J`HDiAD6%5`e*d8-SX~BwyPmo
      zBHbVdqxx(Inp7%{H%J<9(NCvsyhGMl!-(-7V@3lxgKGiVc94z$8w03x@~vvoH!-Va
      PGc6Rz;1=yk+{WF%F~}S%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$2.class b/libjava/classpath/lib/java/io/ObjectInputStream$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..053a354bde5fe5671b005a22fb3045507ac45b34
      GIT binary patch
      literal 6148
      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
      C(xO5D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class b/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da4ee3774702c21c2e305144ffac98bb087dea31
      GIT binary patch
      literal 1025
      zcwU84O>Yx15Pg$wyG;o6J5Zp|j}&4KMBI>qkZ4NKRuMe}_0XG>xLa3_x7v6Se}|vI
      z35f$gfFFgJ-6W+@Bla+3zxQTsznLFDzkLVr0#8Gf2)h^ZqipJ=dECEH0~guL%=KKV
      z<f#5mxsFz57$P7n7dj(tJXI1FUTLe{Yr<SZoDhO`GE^1Jp<Km076?mSZPoj1)K}>T
      z**A)?+D!)1oXAw?`zaW>b3G>1yZ^sQi?ALmHxW#@wvl75-fD=y>aWpURvxM|nHi^s
      zgpEe`_hVS5ZQK&4gv#4b19j<iV#guY32U<-M#oo7h}z7vqC7H2#nQY<<7}j?yV9{K
      zd{IKpbJl5on2%_Swx2i<2Y#X_dVV4jk)JpcM}DFsI)36%91>o7h-=8i@|L&>v8}x%
      zO9!f>^Jdp>H1~O4La0X8s<ddAV*B?AoBx~#!s2Wqf*r8c$iFJDc<wlcylZkM&hyW{
      zV(|+vN~mzmX#}5fYg)hp&bN_|_#G@2c^NCrtQP7L*090YUEK3vn;z`G2YcYb9(u4X
      d5BA7|J@#PRe_|YWidXMqk8`E4qmCy*`4_~J=c@n!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class b/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee951cfdb05f405edeee4d78f992d3d491347e66
      GIT binary patch
      literal 786
      zcwU84T~8B16g{_H7<O4HEgu4+p!9(j!^bm*gfuZ}QV;@Z;^VZP=#cGBGu<}fKlx%J
      zA@RZZD(Zv&AmZI&Q4@;pW@hi4x%ZwkXZGs)<0k++C=28Wn`d$;x3t-M)jCt{q#pMM
      z$w^|B?3SA{(jA!?yB~LstTt9B=K>yK+SNodev?%Rj1y-6pf%I&Nh@2CB24tMQUcWp
      z{_wUdVWlyGJY&@+-X)B`(6LVT2y5&A$*otK1g~Z~DnK5E5R;fD<ku@rAB0i}fr&Jl
      z4dEjo6dF2Khl6fQ+0z@LrG{zCs41;Z*BR&~Z*`xrJ&OGwHnDWS?MzUohA@|@|I4!7
      z3Y$SDrM<Jox`(ny2u{qvw$)3WDw)5-?5>Uw*5g>&S|s~@)fae1SiDy(pMR8GY_l_Y
      z9%IPyzrj`^eb^|TQ)Ch$?>^w@HLvshEmSWtRb9S7vAS`AnfESnj^`3Q?(hYk_zGWq
      z!<6`rdB#_7%J2{iu6e<=Cl{rJIgS^xl+hgD(rkPN9aKM{_?$=Q-EW#8)g^vlO#Hm3
      b{Ua>969st8SdQN(u6l)Y;iw5uv4*8zk#4fe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectInputStream.class b/libjava/classpath/lib/java/io/ObjectInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6ae861ea0c30cc3648a392c0775dad915b9647f
      GIT binary patch
      literal 29187
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectInputValidation.class b/libjava/classpath/lib/java/io/ObjectInputValidation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfc25151e859f32b91128224d4c55b301e0996e8
      GIT binary patch
      literal 221
      zcwRg8Z`VEs1_nb09(D#MMh4le#Ii*F%zS<Sq^#8B63@JX(vq;moXnKOlFa-(b_Nzk
      z1_7{=oW#6zs3JxNzA}iCRG0v>hGrNe1D9(>a%urcV=+4eCnJL#%y7><um*@~xFVp2
      z;QZ2}<W#rJoK!{zDXdP=1DV0b$N;p10R$L<E@EY11M=B{JQg6$0mNKDHWLFk0M17`
      A0ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectOutput.class b/libjava/classpath/lib/java/io/ObjectOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccc1902d67cfb306f45735521e7ae6bf91a021f5
      GIT binary patch
      literal 378
      zcwS{syH3ME5S$Hm4jd93KmNfqSk!b8L9&G80*Qv|unb&e<s$nGd>aKHz(*n0XM*4;
      zR=YDhvyYF@w|4;NNChT@WFwztu5@1BZ|cgFz1j6fz$1jV)5z`PcTZqSi1zwRY2>IT
      z_%E$8HNne@(_2EYey!@AQF_}6%n0$`Q<Og)Hf49KK`l5J);F_b#$|*wyLK<Q7*zg4
      z(|1pVgUq6;(H*Z2Zgk&P^_6NEEPp?9Hca8m*}>uS?^FIx;E>S~Bad@nnd5)V++h|t
      RahMQGhl&0&95L4uBwwWhM@awx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream$1.class b/libjava/classpath/lib/java/io/ObjectOutputStream$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56e2f75d35220968133891dcfe51f75e92d8d42f
      GIT binary patch
      literal 4699
      zcwUuPYgAlU75*;g3<JX@Od!AzCS*bh9R>&xBWa+e<&n`r5~_^U5H%f!J8+X>E}glP
      zrfKV=jWw;UmexmGwOC)V4>i#QQe%@JF59(qsr84;_w$EKt&bnR{n5J5nakxe%w*{g
      zxc8j1&)(nO``dfp`PQpny9}TQUvZ;Ef&Xaic&tk|y2huEYH@QsYc6EX2{Wz5=39E)
      z;0ms}ip0%XGpuXL83k1fX?^}kLM)EV#LSq2lEXs^xG{Y+qoC&SnADPtrDiQX{R&FW
      zIX%<TO(4dK+YoZs>nYtFP_R9CHNmz?vNvqZXyqV0D$3#UfMK(W3REj#!M4eAY(bqH
      zwF<TtSEQmIJ_WvbHl5Z|W=<e?G@OiO$eqSK7>>jKa%_d)jYb6xMTJysLz99^5i=RT
      z3H_v|K#2(C0TnKk3N_6tt`TxxLn@Gx!$vk`y0MdX^CK!QU#r56GID=RPiY6U^V3>7
      z8k<g%^6D`o9!pNf(z;k%n_Of-LDN;j+R{TAD4W$*6WtYbq>@DR)NFrS!Fb3E{T_0p
      zOGO7d-RM!!ymmQ~Olq^S<Y0O>J5O=me<H3en7Wa2<8=z^^NkE;_2i6}F2n07{wX7n
      z$;Rgb8I9aY>L-Oa0ZG1q2fMLXr2IMswS}-w3W+`y{kWc}6<b))Qsh==akn;t=ocym
      zRNRQ0C^n{%J5;bGxbX_fc4IGvIu)CjY1km3z?I0wwlJ@9aU=p$P88G?06Ha{qST0g
      zqblBnF$LxEIW2xHddGrRpl+OshsEWCxY>>IBAk_SD&CB@kXmBGcp{O}Oj%J80)IS~
      z%nJ5S6$UpX>QWghd^ju*he?-_NE8+s5%}JYce?S8b)+9LvXpfdM{q0c&&XBO7&9nK
      zx=Ezw!I8F6Qa+-<ojkG%a<s6KurQLqoEwzJs<q>A(ukQVbR1Q%DIpe7Ba$*#Erdk?
      zlrUM)S1lCM9uZy^Iv6c>Fd^eIK?PmlaAPmcrI7lHi7bJk9OV*UvyPCt2IWBuZdY+a
      zNQ%0ayB?gxU2fdD&Uvd>-Hmrqfc4B^CZo@$M5%?-#=Kzr2HkB_Wq1!&m0ZbEyhjw;
      zy?OPuin?fhmEnB^J`j(kQid6r*61x`223NczJTmW;<`Ppo8)gp;Q=8>gU4<#88<#a
      z>Q^Nr<MxS%=EFlOK8O#I$HeiWq!B+hLgVZJjTMpbskW&KEaFi&9-#mfvZdnv_%I;~
      z9wy=o*^jFD7#>qlAu;Ae^IDUgMNtQ`$P2qcsWp-_^Ad}qd+;Pa<;D_?=-E`ZYfW8R
      zOC;%1m*BvJNST>UQ=vSCPgD3P<NH%_V}_zVp0MWG&H|Y%)W|-I&%5!tbyb)<Q*j1g
      zpuETDV(CFs1S--tEE?ZtF=HeZJrhPY9oNFTm^<|w=gcmlQ-K;urL?rfpb@ev!kRQP
      zWa5Bk&KcB&&f*+(p#|&1BO@v#fBY2uMCm6q6khuDVJHz3mflLlumrqb@vT7XO8TpS
      zN^;^YPUj``+!<=WfK8zlcth>yQF9&*UoX3W?bc$)3uw83)^k!_kp6F#s)+&Y49eNl
      z@UUl4$DTz!dk$@MBGi*ogwQVU&}6g>o*-BPU?_ARn@D;4GIky4cnOV{(0%9<b|0$V
      zvw~jQ-M5SzRxo&_<E(A9j_!h;Lj^kvm3<Xnb{;{tEG-6dS}lv>Z3x3;Q$-U-u%9$2
      z2;&VFiY!TUdhQ6dui%XbL!I8K6+{Tq_ReJ-@IMYWKLgGdqiZf#iwo=$O4$pjWS0?O
      zSES)kPLXYRhh<p2O(06QOVKDHFbUzU7KEe)!DmAlazfZ(`5R>Un`HS#3i3-1%Rbw(
      z&$jF%%ahV_wZrl)mgPt29t9E|w&h{6EUfl&VZWB2;)>r}cGqGwxAZ&XAXCr2O=!MD
      zXugXY_B}MSm(k9?FH!Bu>9$dI*r+-P)!QVhRtr@P8gPgb#3jC|96qI;G!SF4B=Pm}
      zPy_dl5W)s7Ai9DVad>a3MCLl>QtC>*d+t7MLA5rz^EZO|8-e@{U;c(Sf1_+|qptL{
      zGbFtNHv0kG?1!jgKcY(bG5qW&=wv^|0Q(un+0St+`vq=ezr;Q4S9p~D8c(v{$Z!qF
      zN?NkRwPc5DiNY0=<@=Zn7bpJTFT>@6ANOLKinmk-ZpKRN%OoSTMeW3f?ZmcRgx2e_
      z(_8EE`t1DX*517JTK;QYPH$VOk%0Y{2=F^1!0(9we?S9!1#Rq)*vI~a2>UZ8*k2sp
      zMQ!h*ws%qT?wBOQL7NPN78x37oF=88!n=9PyNecWM{VySg=o9ZE&qD2ijuln5RUzo
      zeEJ*t^mp><A4KYZqKEwpH?e<{Pyca{d(`%4)b?kT{ArT@jM)C{b&xw{k-N%j%Zm<j
      zkFJs1CR`wo)qy-x2l6-_$fI;1kI{iVLI<3D4y>c|ZfcrfuM(YKLlw1{I{Ja!%1hA8
      z8N!@nlDm-Lr8v&rxR00NVP5VC&Y~ThMLRf)6r8xE@&h)N@3g2af@2izOcVcaXX2G8
      z<(p8+t5CzeXy%*I&a3~2&a`lq&UBlF?@OeCuTik$MO;VV(jCh<zKlDbK*%0q@1`M^
      z+kS8LDH>)%jNYx8M&Mh8R~-|16y$Y;-UknFfRArQ2X90_J#XZGMEEvG*DprF`_@rV
      zq3^WQv~xe53Qr!8UOZt<o<1>xX?#9-L%WFP^LV%fY~T#4#j<tV?&tB55}abnHnF_?
      z)N8K@c|XbDvWB{eathvpa=w$|-AbshMGHN<c@X<}n*(v5jkphw69)RgK@UDICuA*6
      z$WM?i@zp{<>>P-@CE^6_i1F^D?}GG2e3C$a#=nFL5$+W{ePs=g{6yfpP{F&P(zA+p
      qqn`ITJ`tSrQbZ{?FQ1W<iQ!qP={bCnp5m9LA|<OS^8(KneEGjnEB%cC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class b/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87df0f1cbecc3bb7a95f272adbde6a07b66f38ca
      GIT binary patch
      literal 818
      zcwUW?%T59@6o&u80E#Hy5xk2=bRlt#aUn>8A!34I;jRpg)(kUb=%|n3tGF_8;RE<k
      z#?!H05}Cv<`t|hx({pl8-`-zd0UTmGg&0Hemf!KR^vbR7t*})qP=i3Vl`nXI`yx<v
      zDV$yk7Q=LCbhvwMtPIH`=}L9X5HIa@7_6$-6KTXTo<RahhHO*1;ymbgg@4Jrj$oK=
      zdNy}D+?P5wmzKJbLx!E^KT4@kGP-40EH!@$B9nBlD_6RTQNl@-P>m95Q9?aRXhaET
      zQ9@e_yCZ~OH=nJjXlLTymx|hzFO6(e=t-YG*kYih=MGa?VVL`JHd@~bxoTqI3!5v^
      zqoC~tzAfrfk0STC^#}S1hD^hCg<o~}a46{QErvq$xERL124-!7Mh3km=tTd5_7p{B
      zA|odDpE34ChZxedYZ>uJG6R`U191}i3r-<xIBhs%IBPg(IB&RMxM-LQxr97rE702(
      YWmv{)SY8Zk;l7RyVmd5u6GdzM10g}h9RL6T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream.class b/libjava/classpath/lib/java/io/ObjectOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb3f40a9d747bca32ffd8d9abe61a5f58685b8b3
      GIT binary patch
      literal 17829
      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
      S0wE}^7k8`a_+Pmr`~Lx+<ZPz^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass$1.class b/libjava/classpath/lib/java/io/ObjectStreamClass$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6279a244cd8a9343858205e3261f31ebb24c53d8
      GIT binary patch
      literal 946
      zcwT){O>fgc6r6S48ar+i+O$n5Enk7!N!!#_4;4XNA}U1+>7iBc8)uuka%^Nf{3;G0
      zAV?e#XMPmo?be{65DxqH?d-hS*|+=S=htrlJRBL&7`ATsTiy)f=2`zn_}O`u2tI0u
      zJWXq!0iB_w2qBM#ImN&dLs_BYEC`$Jc=U!RJc|>CrR+LLYlkG;ovYg-+KV6xvX=}y
      z&VP9BC4=6M2f_ryvJC@wEG(dC!$gT;!I6YwH;6=UJnD<&g7-tgu-c7%9$xY!kn0@O
      zr7?!>`N!2fGG_SdGE}geJDa+AYZh@k1}Y5If2p1ZA{<!Q#625ZxKH9kk@fh9#LJF5
      zrA7208n!I#;GuyBf3^H}&&DG>W-xPi7cs-SGppcs7_``vEtqjCcaA7rdGj7e`IWpY
      z;#ueMIPt}4Ae*-_)2st2z+iWxNF)jo)ZOB%$PeR`th^T4bv!U|FsC=F#Ks}WjhTu}
      zot?_YOgaDk3y4OqO=A(PRFdC-{;x*Eghgn9vJ+ZM#Hu$w!>)h9$_K@{D>1c0)!KWk
      zQf5;w(KVD6zK)GtB_ZY_&6UP?Z1(mjJlFRps8)3f6Kucxqq#zUpnW9GPbg>;rF(o^
      uo9oK#32N%B3Z7CXwb$?ryHs1iG91cu%3Y;eM?<+{ssg0AM^VQ<n!f-PFxW8w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass$2.class b/libjava/classpath/lib/java/io/ObjectStreamClass$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c91ea650b2b83be212fbafe629758695889b4a3
      GIT binary patch
      literal 834
      zcwU84T~8B16g|^jy0BgBS`h^V1XpdVvB;B2#e_7NkW?|j@Zj5YI+h{JY%)7rKYo=a
      zqKOaw0DqM6&RXMFiVrh;=iYPAJ@;h4e*63dz<sm>R2WuH_?UN8);SoQNMR4Hk^Hom
      z@;pzr1NaPa2}rpfO&|fP3~OaJm!dGrzUe$OYOGQ@lEYnLRi+uL_E_b~77gf6ozP{N
      z8S^v|4D0=0V~l*660p<DbZ$){Y-R{qeW<juj~I5E=P>?<rgg;N_p+g!14BJRfLRw^
      zj4+2VgojHJYFJ?Knhsj;D=nWErvqu8^Fb;Z8vRW0^oSef-jk&7c4b(dt}EH54Lnnj
      zF$>LB|8GmXA+BL9z$%fPyFi3>TxXcirQH=m=DGSIp!ved4G*)z2>DpK+~PkX?m23P
      zXkTk-%8Vq{^*t@pELVE;MB3wQ7~mGe($q~NG|^(HY58iOWN|HM*7DDtsAKQ7l}7Va
      zy>;evu|@uRbY@VAV`n%JH=Nz{6ISTd5K(oWq8)mB^sTq=oZ&+I?iu3tCp6xdz{_-p
      zWdrT$SFuQuYa}?X;A)v)!t#Xb0U=#2Y=1!Pf5ZxV_a}=VV%D$y#u83gJZzN6P24E6
      PtgHeJBy{_@iQC@+M3}?G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class b/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c0ac37ee2f1bf4ea06af7f2da418662b572fa5e
      GIT binary patch
      literal 862
      zcwUuK%TC)s6g}4tF&MXi3C})wl!pxz1KS`rkt#)spi)rw6EmcP92+?fU&V$ENGuR*
      zKC0q+Vu_Z(g2l|a&vTEj=jreL1Au+_77W7A3vnd^l>{g43mIn3ER~{Li$t%tR*y58
      zo{Lb{lJ2EQMV6!%N`y(>5{bA|G+8JUDmvQFR200_6Uv7wR@o83^!yf~R7=jJ4HM%I
      zEQ}H+8Y-5@{cc;Pr=lH6g4;+!5w%3Ba=!?cvOlUv2pS)fTP0Yb_LySRYrGa-9gg^Q
      z3)3v?C861ExR`M;i#ew3$n02jnX=;f|1hu^6?dvO7VyQw;(v=8<Q#m(H^Nw<=`<nC
      zc*6{SonR#U`6`C=<(UJ*f%m~p_$?cRaf01U`e`VCseG-oL(RK6Ey1bBu}pPD_AG1?
      z7T%pln0{j-_IRGjXM|sy2_ygA?2WM(FcRa))*b8{HVim?m-Arh1fSS;1_k(x2}WKe
      zri$j@Tx~MC+mCQ>QP~;5E#|LZF*P;Q@}Rn4%B}BM((EqhmS9YRrL7d~>x@PrZS`$w
      ThCV;^y~YiIt-ogj9u}Vg18~M8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class b/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..233aa690ae438f7b826af41a761e732490783722
      GIT binary patch
      literal 1121
      zcwUuLOK;Oa5dPL#$J8;jq)BN5<<XYbNt2ic#DSn*Dv%<j=^<4Q96%dqYg{FE<v2+E
      z6@CKhg$u6(;>?di%sLi*q?O>XGqdyf=9_)|`u+U}fGs>RpfOaA#5>{mp|jUJl5X6M
      zBPoVE12Gz{?aE<KMmyo~SVSTYBLkdaF3BH=z)LF(WEl#HcO3fz=QN)o``i!wc$*<(
      zmk${DPS}?wGRRplaE)QM?FX_mR&Dl0Zy*`+?a&p20}=UZpE`N`)*mrc+yBnB$zZt2
      zj_Nn;_C?msX-~OjV4h*|G!V(d0Y#h%cn*0KEiB*`VS6&}h#_GY?D82XqT~l&)5H>P
      z8z`MSu1U<o9V|1<q~!KPhN3-<P;QyHhX)4kGpu^S*qLUv|NdBZeJ>F4IFc4tu*xt`
      zyj}!u*e8s=!wGMO`q>8OhiYEJo<R$@)KyF!k%}}(3@Kc?8dGIZ8doziuoi=3|Igi(
      z4@@xR7|d=sj$HZDSFd1Us<N&y8LU<iP`&cVkpb$wbY(NTk&Er{h?-?+>GUl!(A3kU
      z-3;v<(u}lT`2zD385%5-S>@!faGh*xl7JhSB~9?SnHGPf>@4ZV=1=51RT9s5?HdY2
      zk0<Ig7N6=x{R8G|UvYPdlOWegQ9t?HX@#hOzlP4=Ajbukxr-Iv$2ym&lXke5u-Kk-
      zN?9mt4G$A$4Xl%;5yKibV5`qZx=a?wGK#2R6Z#xz=xWMa)oJO_wabUrl2uQnL+1yW
      L$w_VDF-m^`ngj&8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass.class b/libjava/classpath/lib/java/io/ObjectStreamClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0d9e7f21b2e00a05772ee37a50099f56235328e
      GIT binary patch
      literal 17794
      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
      RWjBrDceUt;s(Y>S{{U9Vfvo@l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamConstants.class b/libjava/classpath/lib/java/io/ObjectStreamConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fa614618edcb239ba01ca7117ca058f62e6c6c7
      GIT binary patch
      literal 1529
      zcwT*z+j7%J7{|YDAa+uR94OFG0s#snJtPhE92bz~O`@QK(aI+2jYf7fj2Ky_mP}jP
      z@<iM)Trktl^a1(=<qjTzR{;JiImrSUZlwMF_uKEd``^pI|0SXo5+(Y8(cGQjUa%bX
      zmYw#Uu#<_b9|m2$m!w&cWNC>GF`CLv;vl&_G-5Q<a2?Ol9n)`dR~U}%uP|Z;qlw+4
      ztsowRBM8I}vc4>L5WONimur@9Y3qg#4`SritA{Tb9U1CFdue@`QOVPNyJ?y*tV!uE
      z96)mU8h5#^bE*AOXu7EhQRhOJTA$GvG^e)7bx#UuAs~ohuS)?Xl_6-Zt8Ggj6r6jJ
      ze6R3YGada#UGp@l{mN((8n^3j$iEdwT`qVY>vuFzJ!(2d$oqv$zNPbqH>~jwG!U9J
      z+0X4yM$-_{!>#Q%%KEG52)CP-#0Le|G{G5-Vr6Mt=wv%c!&^~5+z67L7!!Gbk<g^j
      z{adc#ao^(JhEp#T!CgZ$ji0re2^Z5sX6JF&-qmCj+=mG<EXUuixs1?aKa(j&Cq%O*
      zJi}|s()<Q@EknpjGMYDcZ=4AGQ4mM>gLWJ?!hSbO)2NrMGCGIDd8NK#HB4@C+tc3h
      zQ?7R6D2cMGj7Am~TZ|6ry`8W`HAbi3AE8XBcP31vDhBN|i?TrmeVjB}tI#@apnuh&
      z?_&$*{`JS}h?3i@i>)#AaI-?IR4o&(<EcGooj6ESqkA_FyJ3<A(yg?$EA$gp(PcAA
      zLVM6{hkZ|;KptkV6U40miGqjXxabY~op3FZaPq*Hxg@h1#Y-UB@j05M!!!yi$%jQ{
      z@R-8m;18*?#}nWq3QvNkXnK!lz(*DS2z*T8<KPnte+-^g_$25Pg-?O!6g~|;qwqZV
      ztitEO=N0}Gd_m!h;7bZGfEN}14E(vmUx2?<cnQ4xR=r=nwZEeD?=tv`vM>AlwZgK$
      z-zfYo_&bHa2mhe(k6>ILtY_uLAo(WCbd|2*e;s7xQ^oE-q;1dWPl!JzBVXUh*Vd!l
      gjf3xT44&vI#{EAA`W$0=hH+e>Ms6V;-^^F;YrEnReE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamException.class b/libjava/classpath/lib/java/io/ObjectStreamException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..376b171039725a14653b1e98734c2ee9fa8cc34c
      GIT binary patch
      literal 516
      zcwT*w!A`<J6h-fY0;Yl@2r7v&?f?^sab-|kphgUl1={^kCOBAH(-z}T_%W_XT)1)P
      zPq^_fOpI>|x=`bybLYJ|@7|fdd^|n@*g+|U7-4-VZbeObwN7s+?XVmAQjCu8Y<UwZ
      z&rQJ~<iC(s=lg(=4WzGxV@W^Y`m%LIpff_I>A68D+|UxvSSI?<Z`b#G@2`a9zH(LA
      zAjHcRi(oXpzBCcXLK-IK35#vz%JcE4C;bc2b0i_x_G}Ii9K-djX@plQAZ)b%y?32Z
      zC{GbbxPuxWD|b+@SURzw6Z3@BNCtrzL`lC;g4y-PzAaCbjxGHev#rOBP4J`mmokL}
      zlB_ANVwmI4(2wIznmfC!#G0s1ka>uZMP5x-;DFIXWO<jKLRdnMRU71I1`Q@Po2+h4
      bu>8~ElxJFzLvc#Y9Q3Y;l_-2Qnpyh<;vj7&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamField$1.class b/libjava/classpath/lib/java/io/ObjectStreamField$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bdc0407212afb210bf50216bab7451454982196f
      GIT binary patch
      literal 810
      zcwT){+iuf95IqySaqGCmgwj$<%gume5NV!3YC%L5m5@R~D(VAoj<Zd-Y;ELAB>oB{
      z3K9=|03U^zU4kee^RT<KXU?9PIofaEzkCJIN93SESUZlVaZhHw7o%g5l>22a;*(t|
      z)HvununE2)s5qU>C=Qy04TBaUsd8Dq>%Gk7R4OqM<3Uo&EG0C{BUuESTwqvRVT&*~
      zja6_+SRMW@lZ!*e#NIDXb6cjed`x%{{zt1;pnE{Dce1fq0HN){!Mu*ndsu+$!omd)
      zEi4hNP*dAOnToyYWF+!e@kj|mXP70iI*4<r?=#TW^AXnTI|};TyOmdL#!}cF{%zxy
      zi!0c0uufR1Y2CwBTq7(Nq8ucNC<^(rbog2~>h5P%o`_wkvE_ft-`Ao9?^&9Pd`HDa
      zA-Lc6(=<_8A=AloQ66Pu2e;Y$+8I2A=n`5g%idIP4Wy?zGmKGYkFm*~TD<1a@O^DE
      z;CHme{Mj13TJSi#$k8LdTYR>oyQer8-8+RJeMaYlAztL&H4k_~+Qu?R`XSS?f=dQp
      y#pRjQLuTrn8-0Xtf5IBQ|5JsYV4enNRNR@0h3kfS12+vyCJS^B@NVN4?)(6a;kfSr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/ObjectStreamField.class b/libjava/classpath/lib/java/io/ObjectStreamField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7877ba805257c1cd2663f7d7ef7575b0cea6b08e
      GIT binary patch
      literal 6794
      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
      b1M(s8t?M~C`#(bU3%ZE#e`V^@A;f<Hf=R)~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/OptionalDataException.class b/libjava/classpath/lib/java/io/OptionalDataException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1d6b6cf045f085c2f8d8f0c63207259b6179272
      GIT binary patch
      literal 498
      zcwT)_%T5A85UgPr5#%Mld5GSCgT$*EFQ5sA=mFg*w_zP+$g*R0XN{lXA9(QxOe7{A
      zyqb9QgN(haF&>PUo~lk&clEq|Jih?gL^XjJLuJITc~h$9(Uq3U<xZPxzIS7bh$dkE
      zmJCM1);;YBKK_v~<bB~u?pVU}iJx@Z4D5g*(^9UlxvMSi1R{R>{#v?w+`4Blgt{O}
      zpJB=o?xh|Q=@8kGuGG5>@mjxAw;0TpIu|JzD5R0a92skMD+z{$G*Xxe(NY>|WEgT?
      z>59W(JP_V7A2@=c&{Z~N;*^Z|chl5E=`&Qj{~o<f5o{H>njzIwfoF?-8M=#qsyD(}
      zSf?-seXD^Y;+P_qAQr<kA<9aag-N3qbWM)lJfSnvguYzk3A2sT1oMsZ1d9)md6{Yf
      kCRK~-DUu}5qK_5otbN&NT?vR#xQ0cjOp9WKE76qIPeMItu>b%7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/OutputStream.class b/libjava/classpath/lib/java/io/OutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48cb02fa4576af0d19cc7e580857059914d7bd62
      GIT binary patch
      literal 1018
      zcwUuKO>YuW6g>|Hh7MGq1=JR*Shaj;NvSb0H72F82?;4CH5k)P2YA@2!%Q>GXx+GS
      z=N~ZX%EZLAn>Nt|_x>7xfqLJAGQ`w{3+CQ;-?`_Udmlf3eH{W=!>Wn^L+Vg}rB@8Q
      z()8RT&)sz$uJ=_a3<-H->eh=&vwg@ru8J^2@*KZq+5@h)O|Bv`Ro*te!GS0<gdZA~
      z;XYyr7K$wfWy|hz4MEJtFawPt-Y_h_<MrFzc{=KtYuFv#Z0U|6&f}uu9vB0LOyeS_
      z8w{b>j^PSip)O>!$HyIh<Qld$P?2GnKX0oyCpXko*sB#=Dy}jt`E%}gruoD+ESEbI
      ztOka~80L^=P^qgfRal!Luvb%YonhH0s9RlrO#Yg^n(bNL!GuM{4Tgdb+;klM%|Fo^
      z@|YFEw}kLKZP4!ZNVHCw$;m!5XoQ|vHN}p22^xIY_M8siHpJ4B(@R<vx=Nn-f(Rf4
      zmEJ#0Cwc|?M(MOpkx>kl&Jg=TNdTAVt5F0VK*0v$l*L9MB#?yoi;y>}q^PD)OhZ&I
      zQ%_0?1gLUF(r?neV45kFgXQ5V7XFrKA%bU8A~OPxBxIJul5|HeFs6>s9D@3qB>zC<
      zA&S-P3F5gEM6<d5^6(R)-;jTPhUM?U`^sk|O66=?*<U}!&36h*E4h!qfBG&K$S&}b
      zR88XTlcI$J#WmQ{)xD9z#8q|dN@TaOB0X2BV}+b8(hNn)#7atXK7T>NZ<&6gllk&t
      YS$I3OV>Xsz1pg0;_ZL#!k*K?W0K7b`WdHyG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/OutputStreamWriter.class b/libjava/classpath/lib/java/io/OutputStreamWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..160137879724d39749e11a2ab38167c5e01b83fc
      GIT binary patch
      literal 3952
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PipedInputStream.class b/libjava/classpath/lib/java/io/PipedInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b2c32046a978697329bf09bb6bc3b8ab53d531d5
      GIT binary patch
      literal 2836
      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
      AT>t<8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PipedOutputStream.class b/libjava/classpath/lib/java/io/PipedOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..480b7aa4a55f7640389f9b5248935fdad6aba19d
      GIT binary patch
      literal 1518
      zcwUWESx*yD6#gzPv>gW7k+p0pr9(l*9bAA&Y|?-Uqy|Y$y4=FxFoW%sMSp=0F3~5S
      zeDuK>LV_jHL=s6b@kbfYy&c-J8Jo=9bI+XfecxHq-+#XS0B{Kt9+WY(EX7u1L%KEe
      zP+#H6>8!nywP)-!k1c!PW@tG0T>6E<ozcyw46Ttv*<rH~GQv=iFsuwuGO)*V8P!eQ
      zzQf=O^hYUw!b)-lE>x-TL1Czl=q8`aF2{L#HWoKHLtVs5#EfVxt&6+kblZ!1hM_HT
      zs%j$c2%IiUkSq7s6MV(iEi>amBSZZ`ba=Y(MZsCLc+kwyd>WRDR<tpA5|(N5gw5a&
      z{6kiM)CZELq8t@I0`FAOg<5J%#>%D>+>0KD+A)J-lN((QBu^@6z&X*P^9+p+yb&`O
      zh6q(R7i2l*YiZpUy$OW-qh9ngR83iS5kv55Dm?Id5n`wm+Pd<y5mgSUxQITgBh3?B
      zUnL+GrzcFF!2EcaFh$f=5j9M5<JnY-ry0uT$LVIJQW;LAy9{oUl9Z9nEYc~_72L*M
      z4`}8!Mcvc!B@(6Lo*25%v}`@KF=iMvlo{EFNnMP&=~({;1q8aO6c;UT89mfTh#%D@
      z-%KnLy({T9OeYgD!5yeuGT{up6`42*Hy)sxEHxj58r0G$0O}~Bo@_VW8YI*tc|?{X
      zptN8PO+~yjQp_wxM=AG_#B9n(JD9=}LWP{x6VRU!f{6DAx6%F!ina~^KB~T>VXm%w
      z2fe#T80#n(NRrLbj1)SsP{Qgju=)$E7tnW%HRG^qdDc8#K+usR_`z`uIF9zV90rRL
      zT4mp})bUj!TO%3k=)rRY@uEbER*<66U(IDl%J4BMFUb}qh5k>9*4~lBm7`)_k(k#+
      z_lCs0B{A<XfcH{NFb`f36T&rIms1bn2FWUu)=jcp<h>;~<gh>uknyZYS|J@DOIC;#
      zR%qk|h-c0U^@<AiY1Zzq2nu^H@>3i+jB0zIP@(PZZpq|!bW(UHt$XK@N<UMjUx;**
      VqPEDlN!4zb2<a^d8Izgge*s0|2d@AC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PipedReader.class b/libjava/classpath/lib/java/io/PipedReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d63d4dee52df0d47ba1071609c114312fe805ae1
      GIT binary patch
      literal 2980
      zcwT*0TWnNC82)B&XS<w2p=?XpZ7CM8J&RNXD=Mu*1z9Pj(9&8imhJ8-oU-gTyQgTQ
      z@mVAKYVZPhOA~BV45da4C`3gPV~i%=@YTzkFOt{?@tZlPyGu)aIP=f^GxJ}*|C^a}
      z?ca|t0$7WT29H4HaN<~^*~&I|StDj@x0y(pISoF6`7;xaP9Tuaj^>i4K)B<UJ$*UL
      zHggYhK{B1qn<)XYSD>sb-nC_*JHB@d$8mx3_G~6^Co*<#B0Xw)fgreJaCB%$+V<>g
      zXJcgqyxCD(Aef`m0nT#GMk{04ZJcRr>J{*{XH#YfUR3E=gvv5nS)!vH^JQ<Tjs*zG
      zUQ|bg)2q|55c35VbXXa)bM)w-nd?amrkTg0j%+fK?oH$@Id+vk`>>UtlcR$Hb6nDR
      z+vH_rp)F4(%@NyTo*Gt_ARFIVm<chUMjcIP5YUp@OvX&wGRT+?KLTaA3(XqV%&v;#
      zM91B@g8}BP%#k4O5m>k>Enym~cMX}T5LRNn#N}RQ;6|EGWDYfV+c_(9NQJ58%%o`@
      zW2#!?zV>*$saFPYzm5mM{Cw$b@`!|{xOeB^FpWPbSGDTU5DelWfq62rdZ*$cY(l$+
      z%>os(x9NBUm1ILEYg<EOo6>2ycB_s@rPlXk!m>4x9d!k)GR!nLI>Kabfo&VALg+xJ
      zh8;81R9<!@?87>CqKo`ED*5AYWJ>W6cB4l__bm~1kL7LisE$1#3}uO2E-{wOj*JNy
      zjdRnD-$q5OG(0{Nt(q!{w-7BuahRJO8p@kwvo~#K9I}sO^Q!P8V@l<d^;67_OJ*c=
      zJb}SNVTg;!1;I*{cV_Kkl_gDDnW>$%6KP6C0%e8g&Y#SVW^5^CX~@cMb!xX-lH3&~
      zWL_haz;e3fVPsh$83?F;knIwbK?XICeGhcDJY;H~M@-2IS1wd~d7gP7*)Hbj0QU&W
      zWyTc3#=;;z@lT@K@Jyn{@J=FP_@tuttTMig?Na4@2tF3G9DOvkAJrH@9S)<OGrD7r
      z0pCF>T{Up$3if>*tyE4&sPRy)_<yHH>^$x)dahH+=WpYAls=9r?^TXn*SqXVuvi~?
      zl;^~8h>*(l4aPYbUm_Gcht*%8`~p_?FIqc=b(dnsBvu=-Nf^a2s%R2;j#xfV>|a1F
      zj?>wTCGHyv?i*b9Knw1h?Ot5wtW4=T-EZiBz;~H);|bS)oAe)T@sHz-oIa0-9kFH3
      zA}VV5MNZxPX&idr1#Ih|!edJP8iEqgnwceUB3vt_9H&0Q_LjgnDy63SVo?<f`=v%I
      z!hw<2P`+wT1oRz`+*3(XX@zi#Dq-o_3wozJBvbH`E&6m2qfnFP$aC%Mj<4&`0Kd
      zj~|%t5BOP02hR*5Y)^6a4Knsk)ZlGIG0wU7unO<<44uV#e26x@ODmJufhpb$AG7!u
      zkiaFR@hP6gWxRyXaS~tPEqsYHxXP7Z;WJ#LW}NNU_?A9?!8fW-+Z@~rb-Ipz)>Ek7
      zUY-_@>g|JkzoN9XpFKaG=I8)>0s7kD_5^Q&fjPwLW?$Nf7zCu&>pPEw8zY`m(A9AL
      zIDDRo0sxM?-+6%lC?QeA4Q?KfZ&Dp_>1uGcD^JiR(R2xk$YqBgDVHC&5~lVQ)Uh_+
      z3AywfhE5>Jp=Y8<u$otI{#ME*Z;OA1HZFw}o#s-=Rk{3$#G;BpY!9|78cF^{6n`Q!
      zjB@N2XcU=obQ<Nw8=>|D=1HaJ^vyAsV_`poo{$`48P=hdp!Z=jx|9s^zv%{1S%-&}
      z+>F1Kyn%m|bdY~mwt{~#!ixpMhZ^BWy$HY%WqjO2SSJ?o0<YwQxtNb%1)r&E^oSbl
      z7f}p|1`LZ8ct)(kanXoZMH5a71Mi3!J`k%hCD!1IXvS5s7T<~W_)*-8U&a0SQ?%kQ
      z(S{rJTcqN2fr`@wDoz)uIPFq#059{-l2jZkQ1Lj13sgJ|YYr8^=Sul->{a~en0v<<
      z>YmVI4j<eaR}@Oz%JLSgE7hsi=t*cklGq!&G7%&GUgofzsLKnlSIItR(O1CPkPnd9
      z4o&RfA6_Sxh%PJ>yZCd}L!9^Uf2I%H1$S_b#H8Md*u`W6N5cw<?R;IFp1=`4VY71`
      za^IEcOs>93Y;@@o<Bb%E$qUKDXv4g^<<q%T$&!m*n2hoebYbzw$3#RNDS6eRg;y=D
      Hb{+i>*zH8j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PipedWriter.class b/libjava/classpath/lib/java/io/PipedWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d032a5e23641865b304b8b5c461354d0b09ec0c3
      GIT binary patch
      literal 1514
      zcwTK(Sx-|z7(LULwv-FjA_&T+xRjR7eL+zKOd1I;2n0+tU8ZpHdavFV6(4*zaf!b9
      zqQ3cJ3>v{ijV79C;*V0#++Is*A!+BEZ@xL_d}qG$`_HGZ0QO-t0FOZZLh^R9Pq+Fm
      z=r?6%+Sc>Z4!|c+_y3@f6Y%A9^SVI8*t#2+WHKY|0Rey7uyQgZAZ7)EHq+Nqi&+8B
      zm0=#9&`mu*DBz8DO%ZC?%E%DB*rcHbS~UbVYp6y@VAGgx%JIb;DQRC$rVJ?%8MD$!
      zV=8IuYVRg}`FTB8A*LXeVw$2Gs#M&e(YtARGp}1_E`a6|0}|(pCn0P{YXB|f_7q?=
      zw4q%fkhV-yrt_6-u8giJ)z}UVRq$66u~Wk?G|-HkwP>eh5PR76kfE$v>TtniCWIzL
      zl`UOt&jmJ;=3L)I-qy`Ir-!OLih(Xf6J1kY;O}3hxK~3T`YFtoX{q1lc_4aaIFV2{
      zM2eq85C;Wn$F2MtosxK1Ljb`bjtbPM20H#frJpaDRd4UNve}$ut6oEz<j)$5xp}Tm
      zVF;%%6u@bL@S585sRiO|I0H?f+O+a|c4^2k=>LS%{aIZ-W4OexUUeBesD~XnANmIM
      zM{&-|0daOh4Gq6*xf_Is5un9BqAuq9QniBcJMKM*@Vm~zNx(-PH8_WQRavOV7Bp~G
      zSdFaS%Gk$UlY@GZ84uUZC8+V(Dz>dbM_3L_yU;TTW7dIhEL?QqRixUW`<$9eqN^0B
      z>f2%;(D4hQ_y_F#iQ3O-nu+ZGh`rx7WSwJU^F+|miiHx^wjyg=ku`>R1?wbZRo_h3
      zuy=c;`~I^@CBWJGR?$=L;9a)3#LM?e$eN2}&HQh&-zDp>AbY@AiS8-1Sm^D5>Wzs*
      z&)vikH_;JqX<a8^n==Ft`RtGA<zs?A!A?9yH=a3SVg>M`m>wMCm<T62PFWr&8ersQ
      z_5>fkT;PavLT@Ydl-uxvDqd2>tCB&A6bI?#2H3aULF!bk{p2(IR&YqgGh^S?vWmg@
      ukJs?We~`>W*cP<2yq&*;_A(3Jko+wvmRa?lxn<h0QX-_YC}h~VIr0xWC;g)U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PrintStream.class b/libjava/classpath/lib/java/io/PrintStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5db701b9df1dad7891cb8b36aa479392309311e
      GIT binary patch
      literal 7581
      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
      E0ninkF#rGn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PrintWriter.class b/libjava/classpath/lib/java/io/PrintWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b4258ffb61334e5779915b3b6c95f9afaa8e2f3
      GIT binary patch
      literal 7841
      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
      W$85^eclSN}{r`71wLajM!2bX?C2Y?C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PushbackInputStream.class b/libjava/classpath/lib/java/io/PushbackInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d9c17e77e8a8b0f075b6998f519882a82aff516
      GIT binary patch
      literal 2552
      zcwT*$+jCP@6vn@uoHm!H6pF#pHY6zp+JsVpiehP@ffiERg7gAy(e^YsEeFz*OmgB_
      z9era4d2>eJltEs6sSjQ-j5zS_qvLp)@jCtwI{Kh~dnY{!w&QdrXJ=>a_5HrJ*WRaJ
      z{{8tw0Ec0C;1X!NroXKBn%Uk9#lqDkJ#{^4<%;&Coj3GV4>W<@8v!F`#y0XbKMU+U
      zGdwahJvOzFm>wA!zPK=%oEsJpNrA@GS*u{{mOZ0qiiVqlLcqOLTo!Q6CpgSy3j*~g
      zOv|(f1zNhsHe_l9`nzWYwA0zN;fKKX00P)Spsiz*GPr5Xw2X=3>XMP4(w8!ZK=W8O
      zrDtaJyeYp|CN=x2N%_#&|CsM5sc8uWw^Z}PjolKc(StUD4i%Hpt(D$nCS$DVnW6kj
      zan-Qw;a5^d&Nj1_AFT+<6?^Eut9!;rOOXJ4@XJw001c=oS;2gjfIg-(Gi6u?v!H$_
      zQNe>QmfoQ{UnAj0EPzhz^Wq@)pv)RcWwHe$?Z*KelKQ>$R4JhXW|V2Iu+|<N7T8n$
      zVWODHT*#UhcioW?s8i{rR9^r`q?^W7J%4?&n9F7JwvkrAbBxOy1;h5@IBkwIAYx_h
      zNMR!?Vp<Wo353%N+zO4PX_@py0MB8cfTwFdkxX_c{Wyss4^9betCEfD_SFCqI8Cut
      zxk+_h<=A1I^<ad(Qe$teU>mCeoI_I9HJ{hlQrX;^K&-Y1=a;S-DZ4+p#S|M$f;}(6
      z2H4$86wNNPk=+@C(q5~$npm?9+0I2v+Mt^*F7jehU|-TI6qlFHl*wL*6mojXkk)gR
      zev9x#EE{=gU_K#r1ZD!bfJ;sR<OwKTH*+%SX!ocr$Go(DMXniDGj6;Tz-7#mjXYwM
      zzhv{~$^>(etxV*f%og)0gJ+l>)v`sqACkrqC4fAvZZ>Nj>iNyXZ!UPD$xh{1lYPo(
      zfWNW(`MHhXPI85dPfskamC*E&TGY%>znY%nl4<PZXjeH5Pap`W(Jnm6Br@5KN-~=<
      z5~3p(FQKLVT{JvE>ud?_k7Dg#c<&(`i+zgl!+VHUby^jaPUt0qrkE>@78o?NtaKyg
      zjE-(cMOTjYa;=MFo*O>*E0cn!MY2qDos4QzlKhCKV<mJiu3vh91GCKp?0KXDny?*D
      zRbaL$u{F-TMv&JPK%kta0uYraXOq|og~6i5gmhWL(W=36&YLv&CJo-I$?31;6nGlP
      zDkVIqO3JnFbtgl;nt7*YrOR3Q%oa3#73+TG^jYQf@mzPdpoq%jyD8UYa?7awvVy9V
      zchMrBu~|;cX^Y&<qdV}=8|!r4Uu7=4{+Jq{F!Q|{z5O+M1Do`Iq+T7L3)O84-N)cD
      zEvVhb0VT}2czaO0k28uPs2D;)Ej`HD#evXm*?;Y!5=I9@t~+RwE4@MO18A=GpcYz`
      zxvHQ?hy{GbE&rNW->{dyMK8W%5x>WA{6NH?csc!yQT&1#{E931O_}K{V>*4gfHC-$
      z!3B(~zLcX0j@-<Bo`3bU8RZr6!Y0#cj%9qO^!6Sa)xKSn`{q<yOV80|+gnrB#%ks&
      z;CG(HKiI5)@-+Nab5c7UvQCo8ZI{|po3w{2+P+xa9e?;4rvGyVhz58?peC`;N$jgw
      zmWeNIN_>L_l7KzZROoK4t9bjyMuz0>miIA~e(YY@CF?6XD83iXq6;13AYY9=3M5ue
      z?11z*weN9i-&3i5R9>)~;NDl4Brp(8gne({MqjnvZiMe+?&h(&a&y(m<_ZVvZWyOj
      zU_&?-F5yMvR5WaS=)e+_unGQKc80(sXccGqDm;g{Nb=P@%2(-l4fucqKEM`PB$NyN
      UyaE^1?H%StSg%f9O65=g3y1)=djJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/PushbackReader.class b/libjava/classpath/lib/java/io/PushbackReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c890c21685ac3808cf8b5816acc7a7b52242e1df
      GIT binary patch
      literal 3232
      zcwT*0?{8bx8GcS;=i08*&=iNHwVUg<fMfRuh0rqS57IQ*oTg3IG=;R3<i@^9ZfjpV
      z_ea%C6CWm3+P7&FUq;7-(4>Cps#PluqNtU~2M`isnl@?E#Q%VphS-<EbB^sB6K8zz
      zJ?EbDp7(v8=Y7w6{ptTccnIJSTn%jkJy(ot#zCucaME{|=8eMDbEZ)=9StFY#~XX2
      zR>?D++K#~XQzN58)8pr7Pfm}Hj+~pF%3mB25P5;l;fn2ghV5N2O1|07FhZbx-d_-C
      zyEM#cwc-kN9JOrAJ5EQL@kWH2@0SKH2!w_!MKcD0$Kr@%8)3AV<)vNMxMiDX{qnr&
      zoHyo6ra<?2rC^jU7>*_1>x&_8$zssn@y&_8L}-@HU>jq^(2hQdpi{$6f!%7mWY~)b
      z^QDrxXq1MWMZav?-pKWWS@o=n9YIPUNwy27qr2A6Oug*8o<48tq-}ZDHL}`)e(6&e
      zNYq&=ms6f&*^8tfCGXvFL=ls-y>V<ohk!<>(xE`OP^!2b+cQ#vSP+}Z%u>(>hx|ma
      zBmL})V?Pd1i&CX<RqC`Jd1C&GS@0CwXX1DYPt&SwIJ637D02jZ0=it#?TV+nezjV0
      zJhP}<wl0O$3njyKV;Dd`;W(6Twq%tpkF_8VO*QNl;)}%Zn6BwXK-tr3`a^D&xlvq+
      zfW^}3dVDGCN`Ruo`*Ivd@dAOmSFNhVJ2o&T*`A7{2T#N>il1osvB1{vXEu%@oD_)K
      zetEXAWH<~X##l~jK3lZhg5eY;;?CNN^j?+kAqhqi$;<GQah$<f7Wuc|GDDe5!}<I`
      zUc-5T%(}coj$^Fk?V@>o!uKW?PF8%o=mxooVG0*yJv<%5tGK9Prh!%+K4W-Gaa_V{
      z3|f{&8qUZVF}#jB4YMrTrV3hdJ+mB#fq8N>WY|Kbx+0Lxv}QZM$r6(-SrsL#bG)Rr
      zI_9LZu)sWVQZnsDZ%H6R<xZ}6ro76&Ek%id_3}jHV(IlOz%(xSr4r?xm(VW_%LoFM
      zI4o2H$z&N%ReYylvdgftw}1bB9*{_p<~i9;+IfM(=-`{iw>Cuh<6Tj6-V~0V+>5K{
      zR=%C!i8hW}HWyk&*Ii}U&1Xz4pXZTjZ0D?}W`@U+0Mv{nL?_bOwz@Ni&Ljvun_ES1
      z@^|QbfE_d4$yMxnludpZeh=wv@;&TXkFrBSG6=aqm_<ff;MyYkv81BvHGe@=y&hH0
      zp5)m!&Uqy{X1EsO+kiq+;EKfCm%WGF%=kxHA!D!NU~cUeI&y1|?s8ir1nD+Gmx%yU
      z55WM-+;vIK!(*KH;+ldJSE2jra0I^*&$fg<URN~s00T4K&#mJ5M}hASb^aGkg2n=B
      zF&tL=0!Q#dUC@2%ou}JxZ}9P}COmBco*!)@#USyB0MCn?;CZXbS1j<w&e7uQ*L7}3
      z8nWI)`eT`8dOjvS%Y}!0>?yvD81+8!TWGnp(Cyq>JAaROT*CoE0-m9Cg9_eZHP!&_
      zQe}IG&p$EXT?+qaig1tC_i1&f3FwgkD4SIa&@Y)p>1j>@J^N9A^v$=S?O%)jaUJ1}
      z{x@%8dv=EN8~w&FS(p9$*P8YZhqCI08ytuG6QLXCeT*ClbJ7zwXuF?`LX6Xe%Z#;+
      zDCKwvuc`4eX4P0@c7WFp_>9({^YZ<L)_>)t{Tn|!f9HvR;28eNe*7=qxG#9>GsQGZ
      z@8l4a$Q<$*BgbQ`{?kleh}Kbzb1lqO_SzO5Zq*Z(|AB<<Q7qq4`I^YB-ByZ(=4!Ol
      z(jZhE?EdK++-jsSOQ=8&BWmPlM2$6~yV-MO0yKO@2>)gZ|AW2wn%3XodHk1_UpA#N
      zUniHAO?4xDu|@SVz*q2J47K7<-b7dGCblF~bGe6qz?KJ?npwqkQz53_$18`!iSX~&
      z`Q(y`@cX!|h$h04X(HSgBJ*4_wTgnA@+YZAVDkEdU8$<ZWj2K6fa<d(0nv+y*nuvw
      z6MZ6u0kI2*gpMJR#;DkXX|We`;z=xs43=ptsSm0a;|F>586~FV@ENH?Wz1(6>>z?6
      zR@D+`GQ-v;?dA^WvPX_7iOy`E;kW7wSJZ;aZ?P%AJDJ_zOz)GeabKe~4sVj$r&w(e
      zN1=)1*eXt-SG>%BHACb)jOWBDaz2W@7;S2AV*$r8lvKM(lSR3O#SrJxKAO$7=N{gN
      zz2QS7UZKdZHaU(4j-%@PR&!i!ar_B|lVVT)-wKifq~2{7D3@#qlakd_tCN%zj8$<9
      znyd{eQiS51rtj0dc&9grWD{?dMX}7HaF7-*a^gDw)cqVI+?x<@G+pq?fXif12$Mk}
      MOx6oQ)C<q~4qMJtJ^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/RandomAccessFile.class b/libjava/classpath/lib/java/io/RandomAccessFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61322e8a56c5547f97c7aac0ff71f4ca843af38c
      GIT binary patch
      literal 7493
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/Reader.class b/libjava/classpath/lib/java/io/Reader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e18637f8728b7786a901698dea187a03d67dbf6f
      GIT binary patch
      literal 1933
      zcwTi?OK%%h7(LfBlkqst%Z;6PoR9#qoisc`10e~}^nrubiY5e=NJwLQ(oW)dtg(%N
      zeWi$X7l2fdczHt?NVJto)JkQ?8i{|vUtkBEd+j)hlh~5y&Ueo}=X{SD|MBnRCjef?
      zdnN(`o!j;&_N?p8-f--^<D1Y0x>c-T7jMm8&u%-piitLXo&)4c!7Dp<w&0iu3PcXU
      zl0wD>^n#b$;a;Yd=}m#QMYrfymIbt_#0H@&Ufu~oLsuB>2wR|17#2bTT^YCNT&wP8
      z9e=&f8_9S%yRc#VuDovq^~!CxOxKy?sZc69b<%*+^obBKr#4s8=|ox}botYqQ>wUL
      zv20>U;M@UK`g(Imz#u-64$<Lg7=7qx3fbzGKwxu4WkVt(=T(ap0l{^DL%k?#cH8zZ
      zR=2ijOESEGDHAUq=o|-xk-)fs<vY7JD^<KD;i)jDF+-J7mFz=x<EPTIz*)6o`ey(%
      zQWNGo<!YfKJ<Em)bnM#x&RVrp^8AXER~dc8TFEFcQ|ZJ;5U;ZbGB8&3Dr4mXYzTu`
      zknL-&`C7$i0;=Ygta--Wb)_Puok|dIu>xv&oK6Ak{AW}x@3<u?zM5DypguawFIEZ3
      zmfg=)_r1KwUP@$1o(-*eRX^ukapi2Z*Jt6pw4{&osD=Oxm|W>{$VeFGii5{U2k#cS
      zFL(_lAE7gue1Ps>co#r~znwe{TqQouv#U6#PAfEe5mn~e5o<7A;i*8ADRm0d4dU0y
      z^nqfE)zJ+mxsv__pGS@wIR_fa4?;$Ui9U=-y(O+CgOyBasV5IH@^e$JO_|&~B4agW
      zEW|M;Yf94b6Qmz=Ev@$J`$mSuI(e6dzk!v~=4#LbhZ^;iz9jxD7UgTDHC8{{EKYAj
      zE6ne6m{6te!{iCoFSwTNo=iQ&^Gn0~#<k>(HcaUYdQ=a5i*Ra2i_%K+!>E4fV32tN
      z-|^)4%<2cmex&wK%&Ml`%+)!YnNQ+8W~ph=)l15ag(2lo<JkybkrU8a{#R6!kCy*c
      za@CtWttv+cT5GkR9T|^6LsQ^2TsV>KvKmS@{5K5VjLbj68&6xf{yJko7U@vxFHxtJ
      zb&jl}$+~<B>))pgu)y0q*~)cxmj9fZ<vY08${|90=qyII<JR4KFs%FWUaZ{ZB=zX*
      zj}hNn9@#e*^!U7y{1x3d7tCihq>=-=HgYFsNL<X=<HU`~DF{Y`_s~{DBxXc|cbs`6
      zW{~v1KL^a;YcToyG#)dY`}C0D1lv@#kyqEc_XSQXL<j%XI{6pYg#poxQPIQKZUhO@
      zi)j(VCDDhp=to8jV4bl|?m1#u<-4pVZM)ftZBFxLH6!oyv7cb&N0H%ljWPdmzAUbC
      S*T5xo<6Z6siA*amtN#N`cq7dK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/SequenceInputStream.class b/libjava/classpath/lib/java/io/SequenceInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69f28ff7251d9afd58620ea85062d583fe7ca716
      GIT binary patch
      literal 1812
      zcwTi?U2hvj6g{)v#KhS&#Q7?ALQ6lWKhiD<tqH^gNJyzA(>|n%NCOWWcam)6tW$f9
      zTEq{CKs@q*Duh5nedz;8q^Olz6;Y*9pAZ5ekov$6;4d_snYCR*HnKGL%$=Eg?mhRe
      z{OHM@djQ69E(${+x$b=E*lxw1msjf2E6IYlS@-Ats&qD@Fa`RX7upU44A&DFEQXv-
      z2}E3PLO@7?;owHycgyyiSKp9T$9F3p?{v+(tDfW6tGs20-^yo0<4^N-XWsQ(e_9}s
      z+J_;%ATY7d;l6>@BXhQLS;i1Sp9KqXR+CCEbU|Ri!ZYaV#t;rhG0f^iV_SF*34v};
      zUiIh7azlDPpQh3QW7+Xm?F-B6vgA*xm?IWC(5cY#7NY1B=q<XQJYU~fmeq^Sa+&JH
      zi<Od7UT~_e+Bcl0zvk8iMq7o1w2wLs{rBy)&F1@)sZa?*ok|s>Hm(-7wTn00au9{m
      z6a->(S4(nJ6<>=Y+deTDS|>`-lNL@OCD2hSS87_~mn@t@JjU`TEWC`<0zIqJKTqkJ
      zb2i*mZqJaJw3k(oS1g=SVU5xnhmQF~Q%f_2Lb{+1^Xl+5`j>fOX@)6RR#v!{rKdVM
      zV__C=Q}s2c_HLyr8y&0Z(k^k%R2vH%_1Ju+UM<P9t}6Rrh}fr8mUw}sMEG?@V5r6t
      z8LF+?a(H+e)3}>n!SU)L4m=0YOIsx}Xh$+X;@M1g8~vH=Z43(BM`RnxjM&EL_d5O|
      zu0!Mi-h+utjJ?GD`$*yg9M)$#4l_CeXcX`tCAMe-PdAau;}}=PzsOfA|K28lGBeho
      zG&E(LWWWm7HHLGU_PVA!96W2$_2M|o78<=sWDv9Yv}yWG?lPKiRwn@TWqv^NAvz*A
      z6}W}5n=Q%%I`lOv_7N#R)^tGyeGNLHrf5&-i<%Tj+(0}CYG+v1xGGAK?f&z$tU$>v
      zGJV2+e9CBB{Ek0s<4Ux+&V-b4rO~&vkq>9vp`_ZITg+eI{X6-zyo4T)FS+}QNqkMZ
      zZ!kc70^hbZGTopz=%2)^S~U*#o<u$;R;AcR&fG7Per2*Fqqi`%m@}{MJ{~mxpUzz>
      z@e|R{oX`gtBp$;<ozCeXe5=tmUdOan$i^E?%+Tmfq6mLuI$4ume%*~3+iGYvDT+*_
      ze+P$@xsA63zQC~n2NPesfdTGEchI9uQICK2yH>78IKjX#-2KYQ_>Fn~&awN0tbg+V
      Y?Jwl;xJ|;zmV`OX>ERSOtM~8x3rFf!L;wH)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/Serializable.class b/libjava/classpath/lib/java/io/Serializable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbf1442165e8e807a3835e9cf4a884174ff10cb4
      GIT binary patch
      literal 113
      zcwRg8Z`VEs1_nb0c6J6PMh20r#Ii*F%zXXe)S}G9oXo1kq?}ZC1{OvJ0kBL?VqUtw
      ve^ORzatR{?S8#r5QF5wVW=<+2gCMdFJ&<BHMg~R(W(EjgWMBo7Obl!QKldCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/SerializablePermission.class b/libjava/classpath/lib/java/io/SerializablePermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b687ead5f68b4ad9b75a554e6a24647f4423dbb
      GIT binary patch
      literal 1169
      zcwT)|%T7~K6kUfFZ@m<O@=~B!L8T9%isFM-j66(g8a1ibR0rnt_M{%Xy{-2_l(GL{
      z96EB0CNz<Vb3ed=zu>?>Q1`hsC83Q?+U)1rYp=8W{m+*J0GDw~Ll49B7T@M+Sx*;)
      zEx9Roc-a&Wg<X@5BkPuiAVbuzafIR7(tVR&<Bl|rN*D$mzqcrC<v-4CFtB?J{p)qh
      zak=Fdx#@}C?VZi#A3eW+GW40E%FX8%uL*}?_*ve^H@Q_!7hGFf)eJ)@YnalK?kYnd
      zo+vT|*XtFbVUWfhFApKYFeNNSz2KD%lRHkX)-Xj)ST1*oQwSprk#>dSO4n2IlVBJN
      zLq{LOKwetnzE>*?`;n@nhJ4+iwKy$Dek*t)+oClZ@8q2*>V!BI#u-Ez=DJjL>!Ib`
      z7m}oi<^TU0q)Sk#rl@t`=m=m+#{kZUaRC>Jsd(ja(>ccUL3v9UZYJ?mL!4peD3LS$
      zXSrinJ*C^`YeO_#{{)f@<HyIXdD5&1JA`>saE(`DjW)}eqPP-^=}2HvNim_UOJTaX
      zC1S-J4PjLn7P{%z5o*oJD2S_JEaMv8hFd>OGK|DKTc~ypiwqh!6n_$cN&4m(^g`XU
      z4RKehhn(!L@uGqws&sesH|fD?^x_10n(u`$p{|AO0NG*mQ|1(Ts|Z4UBE4TRPzpqb
      z3Z-CVxbPXHyMEue%K0@L)V)bP8yG^C&{Y<MLNc|mZWFeOX~`68V)6(;_rpb^^Tcl)
      zJ1oOA&icbO#Bh#46j-zc_KxVQv6*CQzKNN@>PHNJ!f13UwTIdF2=2ZOuqXu%KK%W)
      zkGax55~WD0i3Q51_i&|&>)+Z0CTKKJrC&)~Y*Fkb5s{ch%_o#R9MvY2X%SM^4YHJe
      Plemc$+K^F9;b#8<lm!t1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/StreamCorruptedException.class b/libjava/classpath/lib/java/io/StreamCorruptedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c064216cbabff264416d9b1d90e609d3bcfa122
      GIT binary patch
      literal 535
      zcwU8&Jx{_=6o%geg_;V2D5xYP>Li#*jFW+|;CF})X!lFG!AnX@+F~4>{R#dG7bg-2
      z2S@*oyYaL|2aR#K=i}x%?|aXE`*?l<u#2*e1YvzBZbV(V^={xvF>1S>HyH=Ae|T%j
      zaiCmBheoJ;Q5U_Tw1SxZMhJOddP>-)^nC8GP7erlM##2Z#}9-Pn8KdO)ZJs^;eP-9
      zm5^>KM+GfHa;s_*w6@!q29j9Fz`#5q*HMl<pNx9ayA(ZJ5(*vHVgtc8+|Mqx;9B{F
      z&CY*IGzi75n6ia42sz~p8dWniErzB`1brlZUkoC%Uns%ox)aZmM=Er#{N=P0PGSSR
      z8vin(j1<zGb?y?F<3r(!95Z~g$C)^%YExvNA|%Jr;0!dOp@lqGnHa(%3Xv#3cP7wc
      gGGx=W?J1UjDjf67Nu*GUshL7pm9P?-uSPR#pH4+|m;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/StreamTokenizer.class b/libjava/classpath/lib/java/io/StreamTokenizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9ee6f709651ecc8833f9c3095b8fa4ec136610c
      GIT binary patch
      literal 6870
      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
      SIDF+ee5E^l{mI1t^Zx-3{hmMo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/StringBufferInputStream.class b/libjava/classpath/lib/java/io/StringBufferInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e56f154b2fafb51face0458f923186bf584b6e3
      GIT binary patch
      literal 1413
      zcwU85U2hXd6g^{a{IOXa6Y8XZ(~y#YKUxAMP)dLj2ap^EA~h%iLZoc$v9rZlTkBmE
      zUiyaAry?q-+QJJGeS-%i@&T3TdtdoKz?q4$0~M+)@7$fa_uO;No&ERC%U1x7;6fB3
      zfx#c`oA#(vAD#6*$E_BEN=14_w-NZ<koHOxhQO}(N!tztB1<}1pm$oI*KD`if*BVG
      zH|k9RQ55JZ)dSaO{wc?G{4)Zn%zq2Aa{|U>y(~?Hk+5K*hZvdcTpR*BEkqGh(Jl*J
      zh?q#BKZ-tq<i|i3KF4nMs!6x%FKdXRD%@)!j+j8twByQ4!OD{KF562rso2*`c5Tk~
      z9QEGXH2h_U^oOSZ#~un5%!@P2skKVEUseo<EsWp*xs;Y|Z-NFGnPPTQAexyk6pPtn
      z6j^~xN5F*V*|&;rS+33m{!FDn*UHWFt0md+ow{oxgM^8%a43qe1rnXQi?+XPVHAg{
      zcExdNct*i13g1{biZOv$Rr-Znz9iKc57}S&EtUjA^97dGD-}NJ8QHnP$`4dP7*95(
      zqTRgVG!*-(?35yKMm76hwVC1$VOS-&ns&(#?Aol(HfQUBSCSVTWl8!I?j2Ghn0rn(
      zJXx}RS;i1&73Td6!%&lEWT@HeHLlkPGfZ^zY4L3yA^w2=+y-{!!fQz8@@weL<=64q
      z8umQnQ3z>1`v?bIA<Q&^t|7tFK3vCuKGP8R0)v2#_USgf0NCAXG{zjk)yzG|9{!W%
      zCvEJAKB;OfYb&dTCGce%VU7&c*|4fsD38z;dcvSLca=NWj773v$Nrso`%?!yq3sAL
      z_$GE>bz6_&Z9NXQdc0;2rE?+u06hZ_(48Jw%)fe!?!S?_x`Et3AM_q*YuQBpxREj*
      zqAR?`Xe%w5G8XgcbsW(QQ<`DQ=#a}%DDVrCxWn)6F81SB-uZhp>ps52Zy3k#n86>k
      z`%g`LY>Qmm=mi|ZaV=&6-*UPk9i3nlW^R@kF%C@NBzis?LqyNIGhS2IJ|_NO+boK-
      zEgHwE7DBUS(a2!@9`(kb4z^vmy@}HWE%o-0{WI~0p5nv%^PG@tB(=divProwbhCYW
      cMk8%mBRGo*w(IBg3XH<UnAAw;a9$<61Ar&{tpET3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/StringReader.class b/libjava/classpath/lib/java/io/StringReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a81a99b5f63e7a05926087a806ca22bd637e3115
      GIT binary patch
      literal 2210
      zcwTi?Yfl_y6n<uzy|4`TE|#(stVQ<%#a5*X6kI6aBDWTb0!EqL9bjNDWOue*{9vl4
      z-s0_p-`YfNO!|dthysmGN&*@aFMrAUyf4eTh4#bDd2i>O=RD7OXa4;6*9QR3V%7<p
      zf@912RlVIzwNF}UGr4%#&|^m02~|PG!Os4gf|5vfK|#%kT#xI?#k@}!w^mab1xi>!
      zX+lr07_kX4w?|Xiq@}>oZ6-~tM}fz8)Y(6+K<!V(3^z(psi6#2jOX)Dmx9SO*x_*F
      z80wtxD5yH@uHh*hXNI_uT(p*?V^}zz(BOtkjJz70`=gT@O5svaIbtS_v1}q@q^I;q
      z+z>UTqI!H<Pn%+%UsSCnlSR~xJdPpO>>wQrf){%<p2`>^!?PNmgO9H9RCMK0s>UPB
      zM%1F4DhQ(Sg+=A=fn3yBwaip9<3yW++Jj`_@xqP^?F!17-Ov-wGFQxvR-6@FY1E19
      zvCtA<BWA)R-Q^;~WOj8mm9~tS<Ybl!#WBI;c?~b)72=OB>FJQQ52e2Zc=%9((>K>2
      z4*SDSTu|WqAATsE*4M(xn2{ULTH_0S6gHMAAatV}m2SL>J|{v4og@85b!$mOKQ0nR
      z!c3AZp9n8-3~Cs{YYJS8hSg6f<l4ne<`={$5e2rne!8U=*mWfonEP=(BhPY}%qH?)
      zc2U`yv>8LxlUXrWMOnlCVF7AN0JtJj4|9c~8A+jaPo}czs4-{?wX2KOJtGRh(^QnS
      zK!r_oAxAdRO463*ty@~5J+<JwoU?i90eA!3s0ai%Q5^_wp>`AXfk4UZCK@);xFNlp
      z_^xAY;1Yc<GtLyMaRm*SMzh?Lafsv;AV<#-2hrm+s`A<9ct)J^1b#uw%*bv)VZz|v
      z9XNt}I~x*m1%rZ5t+e}TYnTw2<?dSqK1)5`mMKLM43<x+z>feuf|3S>T_;k$Pg(>q
      zewlJ~m!|p;l;20|OwE~XJiim*im0+xz-T>yaSAPTYT*@WDZn@(d5v&4MwkYUV~H>#
      z@L{=#0e^u3KhBYH!N3c6G0#A&oHL@jUWn_EE6JjgY=x3uVwS@t-J%L2Q{MrLM@nKv
      zeClsYQyrM$d{&*Onp^0o>3lD^w;tTH@!26YPIRJ|(YkO!+FpdD-N$y4`#^^8ENi|>
      zG&$<J#?$ZeRHg`XUlHc6!<ZE>F^fn!iMdlf3fg-Um5n!1=53r0KKKD;_t8DGjh;d=
      z-@{d}615nMwZ{2-=<Tq}0y*{AgWfF+c*H_OtiuuT*jcZ~L7#O#qEZ(TTf`6|ZecB4
      zlXkz-4$19xp85cl_z?B@hzfqppU<cKVthug&oO~7@D9GD?q5-_ujzeVGSDMCBUey9
      zhcJdED>=N*h&DMI;i!Z$PGgiKJELeA<4EW~&JH=O^8ina7_~>ZDr%kz+1=lg-0yf}
      zZWjqsTM%S|7w~ZKYxI-t`ot#UN+T(J^m;z|UaWKXN5c7uJ+eU<>%12~7s2rt;9TO@
      z<1n1Nj3J^7NjPJV?P)1{>_$`RH@Dy{y#uxB9wyJLvb}HAsrn~GTc@_|-EE`X0xUn}
      z40#cQ(iS)LF5kZq?C%8o7q98xY>j_-YF7eomYfb1<Q(EB?hQgc$1l+sM*{YnGUCjC
      D5Cnig
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/StringWriter.class b/libjava/classpath/lib/java/io/StringWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0206af0969a52928f5aa87d65d36b9cc21392c59
      GIT binary patch
      literal 2955
      zcwVJc-%}e!9RDmKTnJa1&_aQPO10K-!O~XiFKR2Kq^71t3xonHy@U%ndgf?yQO6m5
      z)>j|&SzmnB85^vQebRA8{hO@c-CK_1@}rJ@xVydG{rvd;*!}aLpC1A^4@*H0!|@&c
      zLw&}yXO^6rS>0Z(nT}CY(91Bmzv9j@9J{)Zom<H-Z_ck|vkSL2mvZY13@pcRBx6_W
      zj$U;Ny45g3L?2`5D>lkyjvLJjCQGkwOO<)CGRqJyS$5rE2&JY94AF&;OUABa5}AUd
      zB)IP&x9F`f^k(cWf*j48RpVykgQ8Je){7R+4CU>TZWZ*J$^YeKuTwGW3?un=adHP`
      zt5L5o^lux^yfi$Xn(Ab^9}HtE`Vpl7FPT--xg4dbq>6D&kXkA?Rfr;lr}%`b;1o%>
      zr;1_{NltfK#j`j=Sj#Tm<xw2$Uo7qzC5K%0*3C~Sn22M$6jZl19%ngcT15&|6xc^R
      zM5@K3M|^rl#W|cO)B5hNQQcxlq%s|&WKis?k*VmE3?;RZ$%&{Yagmd}#BkD`>sD97
      zQrdeqG9+o2%XPz{Dq9BCZ#dOz+@*h=(_dzoZnvYeSg7vQ4(Cl`7*4cda)ZfWLBUmq
      zSa4lM7T2gB>WyMu=6WR6E?A-;^Kuw$EZ!8?RZR1yU?qAe59j=5cygDFdkv#nGG;rF
      zM6gJuuQn`e0Pi5J;MSpT@>6iVWv)lAdP?=fhwhLT!-bAMyfA}Kxc-`ob!;#UP-gZK
      z)cJwj1hm3*E!24FMbG^QWwA6TdXyhvk;pr|FIEG6(b2efv>%)Ac3N9p>js1NIIv%7
      z?C@C%P*ynQn{=J|yT!vsm+VHZWMoZ#TgClZKg;*x6fy7{wTCX0F#70E5q}YS=o+H&
      zF`65IO8-abub2J?5u;I>9>$*^1RzfDJ~43(L-bbNMS>p}-(fM+6}Z?IID!)rI745)
      z7S?{m==TBex(^)oz~i3kMcU2R6fG9pL*hU?N?%}$Xbc~P;-i?56l)Yc-#e!5;iUEp
      zCf5>sc=|p@HE!rWo;e^LqOE{U?_Gl4!zgNke8eS?<b3p;@Xz?IDrGLnFe99`2`w1u
      zr#_nz&*rpeGfM^KDuW!K7<&G*FPk{K8VvYzD(4qIPlKMPL2}@Fn#K!~^EO4oBT_kM
      zIyuqAi!F>_QJZ`%7&UjV$Ef0EydwOnc$K(&#OO5|g@nqiRGFt0z7`cKO<Zcx_=cMD
      zTc7KwrxC>!ydhoBNxt`}6S$MO>pD4cr-}J?w0pGuC!h7WM;n*4e6(*p?pddUC#9}P
      z>x!0WBIm1_EAT5hdFb=4cmfLELSFc$i$RjzkYvMJ`VT~gZhnXU^aH%j(8N*;^>0M=
      zyN`O<qaMZz3X*zNQdeXllOA=9%J~4dL+GgR7oCB>ec4HR3Q4KJNAJq)Bq{Bbo!A_y
      zzK`Iok&^lmO?1&_u(_GgAs&I(pAcVc!Jm<-?bE2gO5M@M6QRpp(9|Q_-O=X%Mbl_U
      HjPCvmUaA7=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/SyncFailedException.class b/libjava/classpath/lib/java/io/SyncFailedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8f7c7da63fa25180069e9bfbe5f63177e44bc28
      GIT binary patch
      literal 429
      zcwT)^yH3ME5S$H(jf_J=LIMI&(D9J4sDlD15Glxl!Vv0<a|(x?Gx7t$XHg+h@B#GH
      z{0U-xJQ@(q?Cjj`%-+lU(=&iwEZHa#R<Fga@Ko#t_d4tg70L1OT_|rd6>A%1Li2lI
      zaQ5>+sHZYfA{xph<^E!DM4%HwwHNC&6FM7;D3_JD%YEN{t#k?2p3*8~(%SHiVI=g#
      z3$jG%NoR9NDEH#AbTET?7Y^nKHD76YnombEITxcy5*mISa-`s3?!UxxcBN9nn*Yx~
      zIs|(v(^O21%ddQb6U2EE%DyTrm;bQXDVDGf;tRpJf(k6IHg_e=GNa;bMwgW?YbCDM
      k*7hT+4`!yu=os~YcMnl#*8ZHr0vdo}O)MI(mf2~40OUzzKmY&$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/UTFDataFormatException.class b/libjava/classpath/lib/java/io/UTFDataFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b4df0dd8042d03860db57ab8cce0912895fe261
      GIT binary patch
      literal 519
      zcwT)_!A`<J5PbtJH5CLw5HT^DcmPZ!#v_Uckcc6A0D50=gKJ7_+G6}IPb40^ns_zw
      zJNyFUw4ety9(LZ$?wj{!_T}U83BUnL24aM*8*wLU%B>Ch?Uo2c+w~?QIK3aq+d#RF
      z0gaIR;&d**9|##=dP>-q^n9)dofd)438|**_<?W&OW0GX>u=BR#n<>QA#tP}6*LI(
      za>XKOP4`Ngh+`!Q6U&5jS2^-xIvGl@FNU@xWV`N&4Fub8y|~nZYvmKRyZ;YfC*;d>
      zjxC&VtrvL88P_XTXqgW!a|B}|eP4_tt6x-t*>k7fNVZkzyZN`ze%OZ{@LK$<gc5Wl
      z7!9ssSmHzBdK{B{bI3@HdUb}>Lqth)G#P<oXgEQJv*etFRb(Sk9(EznU}nfoRQG0B
      a`>AloJ)KCQFlQ|k!mNPx$h;W!Y<vQE-D}$b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/UnsupportedEncodingException.class b/libjava/classpath/lib/java/io/UnsupportedEncodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aaac133dca80ba2d2011c1fced04af52e309ebab
      GIT binary patch
      literal 537
      zcwUWAyG}wu5Iw`wASi;M(vcVgm`IEzga%PD1PkOAb_=Yy26oAP7{A94FtNf|SXuc|
      z#<>@?(8O5mJkOjnv+o}-uK*5Fh$BSUy%l$&s!X-79d9->wkt<1Jv1Yw$F2LJoVm*A
      zI3k4X7qWfv-5{hLX)7_Yr0sCtZyyuroRDf7?YKg_mY8@l`u6yI)x9n~5Mp(umD?bM
      zOJ$1?X_}EtAdIyn5?Cdyca)Z0Z#t0nr5H>kA=5EK77#4M`LY;sZ<IsW>-=Z^8X;F&
      zASXhPt3B7|cCBpr!Z}|!ONdXU<A`w}_zOx%^o(Z@<%#mui+`yd_|qtYPvn0l6c9y>
      zeVnrpR``*BD%&Jij@T3XXl0JnQvg|Kn_v&r5kUiKj*<%yHjoKOdF3TRgONTqR@t9p
      a^C!b8&zuDe`2}jp;756E1>)Pm%+4qLgLOdw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/VMObjectInputStream.class b/libjava/classpath/lib/java/io/VMObjectInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71147789f0be146e136b34c6984d3eb51b37389f
      GIT binary patch
      literal 472
      zcwT)_!AiqG5PjRmq{iCTsvwBqu@y9Wj(7<Qg{X&W?wh#kmTk6dHsWu25<K_;ev~*#
      z)q+SDW@hKjdpoo9@%i=+-~`(q8VtJ={=@^RgXHo$oruhi@>yxe)(AfJ;4t)Rg5vo@
      zFefm$r!trJjG;LgCJaub?}U#gR@+#C%g~KwF0RUHD$ET}m0;+{I^!zgMppSZ=-5YD
      zFzm%kMhF=?Tq#mp@zefx5HDtm6fcT!8DPY{B3%&ays)OstTy2={`)Ix<exuhVrC`r
      zJoFj%7n~7Ed2S`Is=qXnjCE-;aUrY!?EEwTQS}CnLAyeA8f3I1%00RT6j_BFyrT6|
      imwobX4IW~Re0xryxDK!uI_MJ8Bg~<=LAF`zw!Q%MUwE<r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/VMObjectStreamClass.class b/libjava/classpath/lib/java/io/VMObjectStreamClass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f73400c4c968b78ec35e3a7a1e1c5ce239a9e96f
      GIT binary patch
      literal 1042
      zcwU{8O;5r=5Qg6s1VmH>zrVi@po!Hp#uzaqn5qX12X70muw>~bZ6VQr<;lc@KfoVl
      zoLwXuH72%6`_4>epP5N#U*Dcz032c`i4lh74)1eEYNvj2)#!+3SPOl@yJf|LAc;6b
      z)+Q+KwVXi$L*ht!GCXF86^eC+cv;_yG-4RbU=#_4DOY;pve#`0|C%?HV92?;$yJ^E
      z()b_2c-WQ!!>ap73nhkpn+MjeQc=m3d=NgvOu_wZY>-;Kq0)f}&vcLYmpqhxs^WZ2
      z^u?W`0!~E=bz5@3k5)P}^Gp(>qBIX9Au0wjK?qlStw@A(L&y-J>P2gzI-H``)_ycZ
      zZ8$}_&HYG(@{n+PA4dBbr-qO<1g(|eUL?qkftalr_(R6Ye;7X_2AZzvp5GJ|X?A(x
      zm)+er$8Z3;Cos=Ay>vgwPm<-3G85T-Lh6x>5v1vxu)#f>oEapLP5>;0NlaPIV%lmB
      kd8;#+wK|7+s|#4Px`bt`D_FI<hIOkO*d#8)maV$|4tiH3Q2+n{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/WriteAbortedException.class b/libjava/classpath/lib/java/io/WriteAbortedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ca44710d727ad41ff48129782dd89f6a3c7778f
      GIT binary patch
      literal 1176
      zcwT)|O>fgc5Ph4ZbsF3@3H^XVNm`&JZrafDjS&(QkU(j3Xi3G#WfL!{i)&Z5Q}{2O
      zfom&4f<WSm#ElDA{t05%iGtM{F6)`yH}AcjS%3fi`73}W=n7&C)7yNHmrbX<>6*T{
      zQ+Hfn824W{#IA2Twt_?mQmt=`hQIE+g75Sp3~5ieCbw$B^(cS*@E!wu#4x<#*q+aA
      zzs9YW82ItC@aEuGbB|%r5I#38hVe?kY;n6;?(^vcxMkX=f15!ogb<`_+D$#OrdVT0
      ztT={9A&#^P6&a$Bs4mu0U^uQ~4C4$#QfGy?Ji$;3qc^r(=M}G8LN7+{4iU+uiWH79
      zj8;rrthILP!rhRE4B3j)pnh=b3gx}cgui8a47tjG8&0>6?|4ngal|`Asww<c;d#7C
      zgky!`QH;F*jEXbJDL6|W4+HMDOv?~%3g>Y_!5j_mFhWHEMFwS0PObWaVJ_U5?i0`>
      zm1mJoqQnr>^D<dfQN~4@Cg0r^w!yFvHIE}(J%<6`vZT0lsPdl{!j)H4Tt$u{={wy+
      z3aNR$Sx*+C$4VVucUo>kJTT?RrXokQC@V2TFCb3;Q4CWUz#wHxkR>UiXF+kCA{E25
      zj!^cD&Llpg&37=WmD<Q|YNd~uI0(v4(3(Yp)(X+B62ThMsNy8;<hz9=bP5Qf)0ie&
      z8A+)a#We7qkP!$2%i0G_Xm62{-)~529pv}FVD^a&KH*#kT6VsT1$o@YQX7}|`%Xpz
      z#itl0+hcehxKO*SJr@kuaJ{Ff2M*-bq~bd$>^&42|0Ns@053yCnLg2t0Cn>Z&E*zs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/io/Writer.class b/libjava/classpath/lib/java/io/Writer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dcccbe06e22fffa3fad9337011267c977b614fba
      GIT binary patch
      literal 2355
      zcwU86TXz~&6#fp73<1oACbTp}8!r_GY}y)cO|(W#T9jOB(!@4Z3v?2uB19OhF7+4a
      zlYgQ<>VtH}#=4e1xa^bup{{=C%w)I>X%}lad(JugyX<|=Jbd)~0|4hx)Zh~szFqjL
      zFk{wcw(6#3)HMVIM%7%UP~DwbE#5XtmWDxr@%HS(-kwptRVY>r4MBmiLyT;t)-dep
      zP{;IArP(OUX@NkcR{C5Zn(w8U6BwK~tETmifIpeq<koEMmJxy<V-Y-q;UNediy(}M
      zz)0S#8Y|5&ibj3I#*OA{r9x%1P&ehfGa0bTW`lO}-5yCbk@N~kZE83v@N9cwrCF)0
      z)yyh$7QZeTdzM+Nh7iY?z`&05BoJ~J8XBIX!b7Uus=LD7C0Q7bcccIcOXgCWAsTuy
      zf@!=Ype47nxtw$@ihOdcL9w|b;M>kJi;HrpOZ2)`H><mI66O`mXgJf=HhVRKvpC1P
      zR*dSdRaSM)N!C{->#V@>K7h6gf5WPGcgb0nY;Q*J7A^<`cMU6BF4S4#U^17Z1DQHl
      z+u3Ot7BNW6*Md4LtV}YS>TQG+^R5*0JWZGQ(5>DnO2V%jUp9?u$(Zw`2eHUnR@tR6
      zE+MDkvOuhVas(gXL+Z3@wh<oZWU8M%fn_Nu&Dxh}?8H%G1TseoWet0!N`W6mu#OFZ
      zaHCl~+$)esy4(A)3^c4lT~<>S@%+;{doHN5bS;9nu_kc#X|?T_d_yL)F>$wn{dRpO
      zck%9q)@#jr$yhSw1q|En&&aI6G<W&=8-NCRnFI1J^Gh_si1(W_BYc~Oj}Z{k?_pHe
      ze?#<FzWFfD|6yhWi`;*S2$wOzw}`zPF&yV8kxn>B*O}$x7?Vipe-OTp__ceO{8LYN
      zp~k2PxWe3Z1hIipY!Z1(p~q|l2VF)|v*0%}p%hOkPJT2vbE<oW56?C8+cQ$t4aU+%
      zG;lDmobgZobXCvzGY?vLp{*#&J-|2o|CT<#!x+9-YEIdiu9_%L<7HLJVI+}Km79j{
      z;ap%WeGKVof4ZA0q!xal@gF-354jXW3RoKEcgkZg?V-v#RAEWgLZ*fDy<~Se{@g(p
      zcFDqc4X+bQLeF}j@32p@Q}L;TfeV3jA~AI{9`LvDhR$KCPXYJ2{XW}yz$5X8BAm4W
      zT*A0RD5E)+(x;+%M)H`BEALVOPqs(SMdx^F`eX|i^<R2i{zZVlJ6vimsm6Z1r(E({
      zd0>|v*a@9SHW+>XE{4+kSQ2O<?;-gY$MCR&WWptxzzS9!k~I%WnX#-;!X+6^C#Lps
      z#g8Mo{=-T9uefwO*X2q$Tr#@qR58Iz#43(1kbld=pLF<xI%!+@xXm@FaD?I^j>^C8
      e$v^EBX;9}G+kSHPCr`*`=RQ3$o6$`b6&?eqPmMDG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/AbstractMethodError.class b/libjava/classpath/lib/java/lang/AbstractMethodError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..625357d5b7ebd9bc90eaf3b205cf563a12e0b8aa
      GIT binary patch
      literal 527
      zcwT*w(MkeA6o&t!tH!2jnr1>oH=zbebZJOo1&VcJ?fs~OPOQ5zJN7`nL03W-JwWf!
      z1N0Kn*;Obix|nn39KQ4abLREq`31l+Dk;PWyZ7QzG+g108|Q<-XfZU`(oFo(rPjVq
      z!6F=dAsuh%PalL)16Q_P5d`fCw`If<a)H!JxQ^6;^1Zvx1%bMROxyPYBRt~>cP10>
      zwp-}F&F6&Vsq&O*5#rUFL$KQZNZN>FBMlqtgltcF@@6(2NPR2Vk&y5CLpBg>!}Y3Z
      znTZMrd%b^GX%dRnZ%E&0<&B#)Cv+@^js<>h5PJNA2zK9}>7l$*p<($C`J-?M``~5x
      zcL^0FkmQ`=Duy*a6fVUv&7Bj@#5qx4AoCO<S&lYmpalzO$nh<`gs_QxB+74G3AC6D
      f*<}52fvukk9iHh%3Z*5rQV4G)Y)9thXlCaVbGL9j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Appendable.class b/libjava/classpath/lib/java/lang/Appendable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e4f77eb9ebbb38eabe8858cc5b5a1459ea75c7d
      GIT binary patch
      literal 344
      zcwRg8Z`VEs1_nb0K6VBsMh20r#Ii*FoW#6zeaC`=)V!3$q?}ZC1{OvJ0fdZyQdVkm
      z2_pkrB3KC{gQSMDrVloq){G2Xt`*6t1tppJdByAuoQw>@V0D@K`kwx98Ab*J4J7@}
      z8Hq)~sfDGfdC95PI1M(!sm0S1w`+p)ON)|I-7<4h85#HyQhFfuY>W(y49pB5zzp;;
      eD+3#l&kp3V0BH`e2p5J3H?jy2^8ndQ47>oA`&Hin
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ArithmeticException.class b/libjava/classpath/lib/java/lang/ArithmeticException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1be9eecd3284e81893a94d7562c161b489cbb645
      GIT binary patch
      literal 515
      zcwT)_O;5r=5Pb`UnhJs_h$M!1156~wBZjD`iP{(=+Iy)RSW~v9-5P(5|G^W92Y-OS
      z#;X_OY$0mYc-Z;cH}B2N%lp$afGyNaq!`w2+&j1JyK>mx3xyhuxf0&ty~l5r2&4&v
      zq4ov2h@}!^{`t>PjCd$q-{E0I`PK0O13O{J_W~IyS1QN#W1gv>KMYRZUQLGVj*voi
      z8PbiW!(jA+Yi=Qpg&Zu*GZbtg`B^+3@bJ<d_?)3+2ObHyBt!YEXsD5h80z-F<98U!
      zjc<^?3WXeYnvPa1YsDoRH_{rvKnzwth(nJb2`yOtgML#tVI8y#U6c-m46@`+%2Jr4
      z$MjNUb5z+T&&X$56XYKgNP(<H9@vF}eH1CmO+i>hDIuj9X9QhBYHYT(F~RarhEwXX
      U6NbtZHDl0G1uKboHR)OX0AiJE$N&HU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ArrayIndexOutOfBoundsException.class b/libjava/classpath/lib/java/lang/ArrayIndexOutOfBoundsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82bf0f0ee4d69fd76378d43197218ab55c0f8971
      GIT binary patch
      literal 827
      zcwUW?%Wl&^6o&uP<|gCPHpDHx01n~e7>Nq8BdCHDkOF}&N{zal#?vw=j3ZxA+3+;H
      z0GkGZ!~^g?Y=JY51yuux&78UX=ljo`nXlhJeF1O_eibtW@0EBXHikkUZrqP!@wTT!
      zd9<CS+Xvk!(_!-PXdp+aigXnvLhHBsuR_8?B4Z_nfs7Mg@Ae)L=rLh#E7D0SbQ*|Z
      zCd(gxd~3dV_nr?cca>J@CSlfV2ZYjA6iN%TIBUbg8Nz&DY56RBy)WbEVt*(J^?o#9
      z1Hm@DE;dW)OO+7({{LR7LvXwk>YX%J`moaujJadX&vE66v6~XHo!4szRjd-0PoH)(
      zH4J53!#ZI#ufbKO2sg@7H#%@*mdZP>g%vnvxMagclN%vMBdJ5eI<u!d3u?z?v}|0#
      zRYEO|CWnNEH=V*|mUCymM~`6bL|HtLkCbUw>)*|}X;^52UxmL5-veb-I97QzgBtIW
      zc^w{Y-nq?@IF|h}=04<-c^)l}z&(`E#RAXli3p3R=TPo&0oY`v(N_E$V>C_^o^Vb-
      zCoD}=1;Nagu$-G)IA5@yvY$~o{%5T0)z`+juy%}#$GH3l^e!3*PN1D%Xb0DDJx6<a
      GPWvZW(X(0r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ArrayStoreException.class b/libjava/classpath/lib/java/lang/ArrayStoreException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e20e87e3cf3d2a869ece1bf0f34e25f2dc1fb24
      GIT binary patch
      literal 515
      zcwT)_-AV#M6#hn6jZMoe&4h^V)F6p2Evc-aS|YOcezd_R*4da{qaLP*=t}6q=(d;W
      z6?%f`%qkcaUCjBL?|k1m=k4=(2w(%H6k-g^H~fy*Jg&O6U9I^;EA+KExbKMDQ2Htb
      zi=i}uocC2Idy{{LY#_Aco-1@f`Q_0*13PBOG<_9>T!k+8`XceV{qgv6HhgDDZb>D>
      z21C4DaT%<pe<f_hF_VUkX@*%xDskHHwS~UmZBH=d9KS;XoMb2;7p?GG1`I3CzvI^#
      z^5t)kR;Z=w)+?@2%p1jd8aFT+zd#Ij%kS%sIFv@P_y_&EX~HUK8M-JP3JE01rzneI
      ziXJmdkxf%&lRP7zs1A^MiXgLOZSuelEbJjmQF;Wz9C8sU%{V4#5Yk|i)wKZ@elna;
      Vj}tKzMyN4^i3(VZ#EVhS(ihMwZCn5V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/AssertionError.class b/libjava/classpath/lib/java/lang/AssertionError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e81c3c60d33d35b190cde794a1432df925752b8a
      GIT binary patch
      literal 1646
      zcwTjr%Tg0T6o&tXgh_?~AzTF!0hJ`&M7#qEBt#M;7lBx!n*oL}RG7iZ1UI_YwXS#q
      z7p~ku3ac#L`XIiAmgj`2B#=o>Rd-LH)8F~~@9y9KPJaLx$GU_XfzCbUP#Mc8dU|X&
      zn^jFqGxT}WG)xIDfu>TlFe%`t98JljR5MGN>+z_7NC-4U3_WWpx|LEgIn{l-Kl=6W
      z?DQXjx+zW9tVaU1!B9%T6*0C|8MSEiK}J1QNNT#enA_h}%{65+qY4C)#ugP&s0{tv
      zlP+sl%L;TQtI3@dXbYA_mp1p*Eo(BAlF%m5Q3|YDrlzOoa$06vHD$D-k(*8*E}@I$
      zDhCIuzAZ4~1WQ)IOfurK4?Vad;IWLepg?P|a>*p`{wnXj?}B7I&XNZNT1tVnUDJ5W
      zKFAQb?!yfX3V7Mqh?2{aJHzFeV)i+`rCB<P{cM_juGk>?9NY+{JQ!xj&7A7NsDOJ%
      z$#501!SP5aCF2%uOPHYBa8bPvcW_rgI^=7xw8J}$ICwy?2*ctGdx$9sG}T;6i|dw}
      zR!w$vTA)1`k2^!+3`sC#77+<^0*$4#q``W65M>n!M}R9B<Hb)9m#}c|y2mnxV)5z(
      zuZ}sFk1-+2gheb%SUP7&)X0(Dj96hr)EPnI<W(bQZmBViFM7-QYdy+q&`0N9OOKWw
      z0NkjfUZTGmc<2-Sj;Qs~%mnp<dUyB)4c`hWP1MTN12b@84t^T>&XUlKKmjVF#RhCq
      z8O|LDe@E-f6SNN<qvIIeC+Hpeh5jS>!b3mNe~fD{O85YQK@J44M2~10{a7iKX+J~R
      zWq1@ssGv|r*e<w0Ih^GWcOStM82SQtV1%k&6#t6Gugj?ZBGpgSF`IhRrq0?_Z@4>;
      zaR=NE8J8}@d5btN;qKYE`!+6OyHX$S_RD!ZZ~(rc-Yf&w7lHKzd}IS37xmQ^&eI$2
      z&11#^_m1?vud1)k#?4o3cOZ|L1MUOiK32s&wQ<P`b%S|4bHIHf+~=ye=LOtqVa?iq
      DP?|3l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Boolean.class b/libjava/classpath/lib/java/lang/Boolean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..820c590167e77cadc5e47efba370e4d5ad213323
      GIT binary patch
      literal 2395
      zcwU8+&2Jk;7{;H8*IC=$#<AU|bsEy})y57aG?dbiG&FS^aB-WoP7Dd3YiF8l<m{H+
      zb)<5E|A2F(9=Ju7a)7q96-cODI3NM1-hjUVaYh^v@61k|jpIP1*yDNM`OWh_^UnPE
      z&o|!zIE9*y4u;gKxo(csO?!Fdg5%V=Y3tA!x_72$s;j)_>*!=SBxfyWq|9B*tXrR$
      z)jHP^+m6Wmg0pthbVY<Po=mK8*RvdZzIc&=U1m5~aBR;vZNFmH8$9~cfcx2#+kgMb
      zpv_&Mzr>I!?NK$(5S^YXl`n~;g<1Mag^~(&)AJ}LUbdEP({H%6_lef{L>ua);I0c5
      zq->EPHc_ivw&hPUL<Vye+N|I#@dOx-8R)}P44o4yt_?2cDshS&H_(No7(H#E8_5Ko
      z#q&CzV>q(2VdaX{P;$&A?ix6OlT^Vn_h(&e&GM~vF2iKxU?I1sFu~3lNFmLTELk?c
      z+E}Y{cP=nFU2<yVu}MzTZ#kJj1TPA~N5#?+1BcN=iv1Ofwm3W(+Mw*amc2ZltHkiK
      z$Z#99_!YdW<IJuu2=WY^#Td==j~iy)D=yoP%L}H*_koh3%o76lgcyu!a0HdWd~%zz
      zb$JvsHyC=z-L_r8sthOFZPqqB<~u=LDBML<%VMBbir%1VxG=v>20>O#Z$<Qhlv$)6
      z2<mUCI=CpZ>WEWa-Cef|G9>8GmA)8e7$EGvW}t}636wFfV{W(cw>+P(8K~fGh6A!=
      zoSWSBZ&8Q;j}6TNG}~Mw@$s6xntaX?{<iT;)E0I874FjcP^QOKWS>fl;$nPgU;$Kf
      zqU<!>8lSdAPa10Buvo-U-n+Qe?kyP)w|?^-X@7C)2_vJ?fhctP??oI!&H;MdI$$6x
      zE+vh#;!4VIx;_-o$oL@|)19Dk7h*VqqZG-~ueXRO{*HeOwxB&k?>+R3VMGoGx)&ee
      znR^)gN<#AVnTAH6Q?zZ7aM#d}(-@Lb5RzUD1)ioEF_*|c#0&XjUt@TO(Iq#n5^0Hw
      z;BtLWkd2q5crg-knPi>{i4|E%$xM$9J;3QUV3)u?jT<3wvI$P&HH=H}1kNe&i2Myi
      z^Y<~l)x>qm$xkK52oe+~j!C?(7N1p%yLvYezl;7&bl%0lmo1dfLzFI@mq#HeQ;Kqq
      zvPCSD9?er(|Ao38LS<w%0(Aieg*u}I86+r{9^FJVeX*5sC&Vz697c?3#TZkJq;O<^
      z%>58%+hT?{@TS6yD@-cD#8cWYR8vZO(rWVK5Gd6I(Ho&aS5!M?hrS2fKt}L}9)r=>
      z7l>+GkyhZ(p~KHM4?jyiRHAsCfMeM1s=)bd{s$Q8tK|Od2BMKII*3QOPG_-$4*Kg?
      z9K>$~{5_;Oi+AKXF!44h@T}6@C&fyodSr9kQeE4G*3l~akC5!XrtChvOCursy{7Cj
      xB|Ev@FcP@Ohrf26(0L)Udx}K9uP`|!GM*Q9KEMa90M@+T9r#Fon(9rd{tFDL!F~V$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Byte.class b/libjava/classpath/lib/java/lang/Byte.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ace4ada996f86e0355a1dabd0d5d1369c232780
      GIT binary patch
      literal 3077
      zcwUWF-*XdH6#j0LW|NS%X$yrmRf-@sDYSsfua;txQjMggni6SIVUsNB)-;QoErKud
      zAo$!FUz~A9UsY5Tm5!*WJUHX{4>0P#;G3`3bMIa@+wC$#X0m(lIrsa{&wKXw|GxhT
      zz<wACS{T|F)l2F~O|4f)GFL23L69Ndlua)$l{8a9h+%V6nl+X#s-{}1X>_=unYvml
      zYGy+>>ZfxP4D3aQwyaTaSZduWs<maU^~34&@BTCMZ$Cq1DmQ(un9iR*K?gH|wY9aY
      zT$ny%3j^faI}E|uxfwdpnRgkjsg1@coh|6qx@s+(WPGPrKbBt~&*(TIf`!~Xx0d7N
      zVPYteCaabgh@tbW7s1eaiTlhD9xK=Mx^9g#1O}5uBFY*SEsE{fp<sYvYZF<V66W)U
      zTG7lHp1@9`u4>kdsW0i4en}H*O5$KPxgn+q7@mxw6J31uR1DkD%g~Y6>zbYaSv%ET
      zd8163Rw>`Km%`APbTK%XNfx6BU~dd5^mD3_82ZpgDr-R}<MEB5ZW(mR3YMwYtD~HS
      z;h7ko#X(9IRl1?^;|x7Mr*p{+rMAJn+n}QqT86#mrZUNmN1_<RxPoKry3W?ca2(Gu
      zD54stE^vmN4+B{*JtUA!6cd<Kz&oj_&DAZf%B%D|ULX%ed?cfK`h_>2%qgIT-tN5=
      zlZLsZS|=`-wTl*YeiS+ErQR{sihh}V(y6At>GBqVCwqpMY=~i(Ulbdw*1bNJQW~H{
      zQ9o3)GIgo!@}k|z)V@@uXk)=Jt){3z(d%`WAV;X0QLi>76nOMP%}`y3CK)zWjAd%R
      zrfh<Dwr_313u<E_D;x@GZ!W8~hNo7iN{d?A8cog<kx^P)-$znOZk5Hz(Pj-Ey*GC5
      zxG!mrC-;pQs#u^v3dXWo)+Tj+Z6X{v%n=MnT}ZpOqwYKE3_G9ULUWY-rhh9Gx@!u;
      zw2si2X+addh@s8dx6{7EwU5)Dt~~9##eOsGx1h(-ZzTpA1hnqrx0v2rh&_RRI`J6o
      zj?$a|y5gBtJbnwiIvIWhyM^6f3H%^E+rdZP4B_U<))6Fy285(`lRT3o;j(DzHuj_v
      z-(uK{Uqlc!@@h%od+gKLN3lb!`b1Qm^MK?$NjQG0LvRkoqpNt@hxjcbzC!D_UBn#@
      zaR(0Jut>)d5iBPj5r%-)zEzCgbm&4tcumm6>;p)PoJDAgWh8h%o#r|vB^<ipfxqv9
      zE5f!7KPcfP@|k<REtLqYB73ZVrT-&rx`W)@ZJfN@ztZIEqPT!hh~-mq;xj7T4Z%HN
      z<0Us=<we02D$bOMKSDEaTG~q!3(rW~9k97nf;_&BQ{I?=aHX!zA#RhzobDw_cbMon
      zqFvC54EXT<;YvcglZ4}VS+ZQA%yL^JUt{-N{#SbT#jjQl{DyA1<m`P!TzH@wx_5Kv
      z-dzHPsO9z$bPtBb+cw)ngus2${z+N*3p?;PY45w-7(qdna@Gmvylk)m3M5Fy7)z`q
      zT*cr{Bv#giCu+i4==&c)I}4(RwYpL_AVUpPO{PTZ7*3<;?Yh)A81}Rc>sZ%ycJng4
      zf-{c-?)3%F(RF<U@J?UwS-dL2`((d|IQZJ<9`s%pI^>{V!|M*3HPP3<@SqR*qR&xb
      zd~Cn>r3an%MIV7G(FdgMFh_5^>1@h{4?FnMqowVPZ`#VJNbr;#h`mF<fPH{&&N1{e
      z7`;A5Yw$+EOIUF=Qm-?<dZFQh@PocSl6o8uW-aHWf5ppXK4iwG`Ijc1CN5oaB_&rR
      Y#hv>Oi{5$0oN?bm<C{O1<fo?oKhIAL*#H0l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/CharSequence.class b/libjava/classpath/lib/java/lang/CharSequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8abd02a93318363dfa3aa232f422230b3f87752a
      GIT binary patch
      literal 257
      zcwTLe%L;-}5QhITQ`4>xt$G06B&}P85C}mFpWrA5FNl&Id$<-oKo1p-M%1EN%=Mdp
      z=JCAU0c<fdp%GSvxC*}%Rq6+sXd-!TWtB)1I${2uo#H|!ieMxR?K#oi&<nUOWtFOo
      zFmSz);9T1HBSBcZVdx$IAJ`ErRY$7HtCX;Gf4O&;2|KFWCXt7{WVOZb`lh1|0v|?a
      aI=?%Ff$nV+Rv$;O`{-cI1YyEn!}JBGlsser
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Character$Subset.class b/libjava/classpath/lib/java/lang/Character$Subset.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a928021d654142b8342a8d0bc8994fe48532204
      GIT binary patch
      literal 795
      zcwTjq%TC)s6o&tkI2ap~04bNIX(`txK_X%uU=yiQq=+t3WzpR@Oo@@Ph3$05nm1v^
      zf=XN@7JYy|6yl6+C6Itdnwc}l|2O|R<Nr^O{{Zaan~n^jbSnOcx+}bsdb2MA(TilT
      z*%{cOjC5#(xl#UyeJXnqLG#3!BrLQ?sZJC)-bsTnweNUNbVyjNOs1<{7B~H4X(Edm
      z3py-9wo>hy$YV}N;nj7C$ih4p2-A_D#Dou(>Ll6#CoJSJMJTi#PaX}<Y#IC%wi{dZ
      zd&2FCz)^8}s6~AzB$V6lcR&>+&j-Q{#|lbX(Ww3+kpH?BX^JiPMc7x>#x=H7&0j5i
      z#utLw@drUqes`3Q{P5OYMIl%%&yzvZ6=5ht9b1Ir8y4AGViIdydzPP+eW(WTPUE3t
      znokUlTFCGKW@`^HYdiOty+iRYA7rq|b3PW^ERnGA8%rE5B?2sC1&DVFO#BufQA)7~
      zDc0DjT_LAkXRn7y^(hd%Kp8`nflnyMC~ifHs`IK8Id-@@j=6|2R`NlLnOA?sg!mT4
      Yn=$d_8{!OiOwH@q;MI)fo7jf&4EjZo%m4rY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Character$UnicodeBlock.class b/libjava/classpath/lib/java/lang/Character$UnicodeBlock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fddba6abbb1250701ad9e54116591a59abedc7a3
      GIT binary patch
      literal 17734
      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
      Q0gC^z6w~|ZgDB<y09KorbpQYW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Character.class b/libjava/classpath/lib/java/lang/Character.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d41ebef22d3e1ca130b15a15ae1661939eaaf7a
      GIT binary patch
      literal 11431
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Class.class b/libjava/classpath/lib/java/lang/Class.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13b56116d94068cf6873523832537d2c03aa7973
      GIT binary patch
      literal 14910
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ClassCastException.class b/libjava/classpath/lib/java/lang/ClassCastException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7700242f358d2e1201be3f378c16a49c208132b
      GIT binary patch
      literal 512
      zcwT)_O;5r=5Pb_Rm<oa@pv0JX156~wBL-utCL-}5+LM<BH@K#3O}8~3{Y#!mJop1V
      z@Gtxu#@R~LNaA7VYu~&#GjAU+uK;#Y%Ob_FamOEc%jas;a(%9~%XM`8I28Ah3{(~t
      zL+uA~5vxd!#rHo$QHxM=-xHyx{Oa_Gfpr=3ZlH9;RpfC$7WNbD>2&md&5+rbN=6-q
      zbiLs*SZ;759Hg<7gM&qeLQg7j9*+kiyyOF4FqC@1kOVl%P(CYK(XG@Bo4x<0Z!?tZ
      zzYzT>lxoy&ct)^n1XpNUZ6xME3{F3Y!=X5lMz1>0zGHf@1zLs9NoRtM4EZc&DJ;-q
      zW+k#Ys_c<x<n87J`R4>uAnT9^4q)LBMT&A?AS|PlkkW`Vf({`KHq+dmVD&FUmwL_;
      ThRPRe#$cifs)_ho(zE^v+ze_)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ClassCircularityError.class b/libjava/classpath/lib/java/lang/ClassCircularityError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4651dab1e76ce0c0fc91d6d2cc75327d1f0a09bd
      GIT binary patch
      literal 517
      zcwU8&OHKko5QhJP0nErt6jU~bg$ZCHF)kr&#&?JtboLE)uyveCdS*=AdJ~r}U6Hu(
      z0N%h0cno9pK%!9-7hTnlul~QPUq7B-0PLWiLyE9*C2mE>6aJ**cp?lPrN^-+w2JQb
      zwGMO+7NPb94U~T^CNg;=ltZbN@LZ`w75L}JdjvWm6r8{hBjHD`@M4)MKD=$-zn32g
      z*`D%M)F-5yEtg<9!G*MuMllZ?i-Z!(%hUK~B=wmXd6G~W1Y<VfhRk_>X+@VRBs2#9
      zG~Xpuo8O>eq?JGEwp`;`HJ;1daA;h9K?Hjk#Cj|bl(DS;X|Qd|&;Sp_f65dx$a2o{
      zDTM`IWCr7y=bK&5#5vQRqVSX;C5|>{pa%<mlzEq*L0Cd15#=uD0(~Y8n{97RvGP;l
      XkZX<-h1!goE0|pktBLtqQnUUEirZ|5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ClassFormatError.class b/libjava/classpath/lib/java/lang/ClassFormatError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0a3352c4409caf3c270d5138b898695e8b8c29f
      GIT binary patch
      literal 502
      zcwTi-Jx>Bb5Pc&Dm=gpMP>BtN31A{ImM9I1(GVN-`UN+*dfX+ucm4ode~lH11wX+5
      zV{4o}NHiFWozFM#&Fsh5`y9YAYFVriYLDVsw0#jw+C5(w(+~AjL>F3zItzzT{pk->
      z@FXTO=@E)XY9)M6YNNv7?&_RC*Mxj83``_~$P<1n)2|2fdimuuCS*=kprS4z)o6MI
      zrx)H!7b$G!;9`SNV0w8IPe)SUijgk~r9n7m0l_kyFN;p}pbTMu@c-T&LZ$JmKa8{r
      zCY`2d<tkQgn|C!<;17u44#QZFWnWpf$}0Dfoj@IY27e-dAJWLM&vLegb$(>eVVmR1
      z343CnZq1N?OCSZdE_<K@2WKd9lv{wXg;GMw3oZ$|jI`KH>u`qhDnp-VE)$080<~nY
      NQ58Fh_--<@_YKVmWzPTr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ClassLoader$AnnotationsKey.class b/libjava/classpath/lib/java/lang/ClassLoader$AnnotationsKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f0b96d7acfdc3550c9addb23717ae75511c02fb
      GIT binary patch
      literal 1160
      zcwU86O-~b16g{uslo1M2`K&Dnl}?f32P=q)Au(yJxX`fB1(~)lbg;}wTa0Yk_#@n~
      zaz$c{R1zbIE=1Xw_=Ak+y-p|siA_59y!-CG=iGZIbNuJi0f3vB4Z|lezG}U+a#hP&
      z$t_f^dcELUWmy})=QwV|YS^w*e;_x*2nfX5k&lY2veXdhT$5`>SzB&wzK{YUFJO2c
      z+bPRe0+Htg%Qd+!&{dYDs#UX{70n~iQ#eCC$M}j>uPnG_R`W0B3j$-$PDNQKqH=A0
      zDr>$}wH>>0msyjUC4qn{5k{{-@;})f5a=^t;F3Uh!FJ^0hSLAUDpskXx8Rnn>Jn9}
      zv*!%WdtCjK=Q_ye^O>b6{1`IOk8V|c#6S=sg{~S1w@}JJq=m)|bReoS#tn30LU)i?
      zH`moU#9kT|o6}04<+^ZD97ag4Z&+1k#81m>ZEP;{lmu>ZRke2RQXuFyDzYXJee7=3
      zO7gy~`i-5Un^sBOa^7)dP5Wg%jN2r;P#w4auRhGMGe2Ly5MpX9L@_lKZ6luLK(y`D
      z=Rvg`+5qpn(9Qf9PgAt&7xC|-=L0UkC-x!EXOtHB&8qKkMSH>6ehhe-Z^$2{&6s-_
      zG)I~kHWN)G%y^)Qq?v7E)Er4{#RFT}kGQtgM7mu%O=-X$rF<sZr<?=y;R_`mB89J*
      zpq<1wO?#(B!gEFo&FHp-Myhe2MyhqcMymM$?@eSqp|2UE?q;)x5D(2=3{UaDjWl6`
      zFtJVPyGRlyw-F;8B^-T=U|`3;b0T_3Pw_iRk688xhVhe)98=(t7Mg02oCuxeY;RCP
      vkh_|u&qvG`(-W1WRZRp*mu{1UwDXrPXtV;nf<C6G=M29%&=U~2Me>2a5Den)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ClassLoader.class b/libjava/classpath/lib/java/lang/ClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5cbd090872a432f2507bdc43c236104514164fc3
      GIT binary patch
      literal 11539
      zcwWs~33OD~dH()+Bh8`*2yHMRu)qR_840o3fCShez$i#EtBAnF9!4WEW;7$ujId=V
      z&SE=u_I<Ild&7zCgvCg*l^7DIxN+JvZJM-=9cNFP#A%u)Y16bx`rSKEZ{CbX#673&
      zDaVI*=f3;?<@@)GpZmj8PXkybPkG=H)ZQ355ot+8k^?R6iAW~XnTqtq(jK@4mHAiK
      z9=$OZ%?f5D)ayQdGL{ikcj`04*?6L5XC!m1D>Bq3nAI2Sk0)b&yCc!#kpXqCd?=ER
      zB}rgTXGwnis3M+>XXBAX{MJ~XKn@9JXGSvF*r4MW8TQ4Z3DWA@l1!$uk!(DbB>A92
      zjA$wu9ZoB5E$#L)FPm>)d>|Rg4yR*+=*#?UV`-rq9Wv~SjkF!^EC#G?Gda#78j;~d
      zc6U0J<sMIOOASWiNkK#IgG`L<;@Odw;uHM1&iZ%@@lLBZ`^a#ZD%a=0u^^uEdX_`A
      zoZ@vu(;S`WfO*QxnrO*w@5X3C*=w`F2rlmtxZ6{GF+UdIG7lC~=R6WUT@J`hG++^_
      z4#cwirW!X8Tt1C^_#n94gbAM)ODv~dF^SuX!AO#drTtij<sJkD3kQ<JEn4!SNcLDu
      zjup`zQd-0^CPE0)<0yr-IU-mZbnxDnO~;c1ZOf-_`Ou6O4^~iG$2&`suACqyRx-Ze
      zvAjqyzjNBNZC<Pqz>h1i&VwrpqAthM#CmLC2*qw1jwFbEZE&ieEkEQ1ZS1kU#ZMtO
      znb?eZ{BEN*lpj}Ps|Q=?8buJBXva2w+n-8zM+O-dn@S*YXd1&zF<6^ow8O+T*hz$w
      zv70-RnQSB(CEc0=^IDR7@QMO==}2Z{>0~6aJ)KUaz360=97slvCSncQR6{f!i)3RB
      zMG*SYfo`SkwMF1eTCqo+*kfWZ_Avn{INBq_8A{aTJiY%|I(4(+RG?IT*MkFsxrGs{
      zynbJ5I31<$@5ezU#481>Ewag2w&lRy&dJ1Je-)+2wX`c=?2kvOke2WeuJhn9Q7Xy_
      zsYE<FV&Vv1McI|d>J3UViDuE!Hbv?N6A>I0%v2x5(u46#CYLF%4t7qbLE991_J{4M
      zL?V}%hyt_o!b|5ZKceVYSPTfZT!P`t;kUd;#eUqxY*eZIa@<565-bjr>f0$!olBai
      zL9IGBWMVE7YLDSK2elqB4y*Ha-F{0nHl#SHT*+e9Jv?|cmfo){EvV{DMI(uxNII^5
      zTbtz+l$l1oo#J8wS5yf#B^p@CZlPCpmSC(uQu%j!fS6aAodyMsF9#~-c$#}#sRFq?
      zI7PCKj*jIeDwaa*P7^aQ(}OpXamlbRs(gOjg?p5}-^5TZ&4~{F7QD@aw=&V@&337x
      zYvS#A2g?gpDoW0iIj>YQc^8dbQmec09ux1y`$)07gIQ&<^HjuErzNi$1L>XkfQb*P
      zOjZ_6q>^+3clKDEc+SkVAvC>Kk(q8Vru^sn?8p#LNr%9+cH+st7+t`7oQvzzv76{f
      z=~#wIT9xGC(&pM&62uaEm9n5h`T-LU;vwov4ubV1(0f^UQm=?pF2C)(84o_my5<N3
      z%Qfv2emc^l$|)YBi%-#KvV71l3~ch?GYp=*Usx{S$EUGLIpi4=WhhsxCro%yu2kHl
      zqI}FmHO6%la!9>?O8u_z<Fk0$gU=NfQ{4oZIFAbqVby>XRuRF1g8Eckr&Ue;f{ABT
      zO|6R_i$#yO>uTgsM@jH!CcN;e)w3q6dIf_#!vOZF#@X_fC4ZvR$Qj&&zhLbv+U-td
      zccg}seFZ3g#l)BJSEW0cLsJRUiIcj{SK2b|NT&wb7po@ZYbO2{U#F8MV#$H*F%4~p
      zdhvHA{vQ9p7tv#p^cH%RJJ_+jUGab3#9!k%wfdHc7x5f3D%=0Q&itsLO!XCY;JYTi
      zrw;hk0qd3E2PS@qA2DPY7^%dGn1xf#)F@D`rpG$PFpK)}WpvX^a|4I<-JIaztxP#3
      z5dAq_v1oTkDm@s<>TZMny)8DBj;WH|r{wx)6F<c-i?XK$Y-tumr7x0=(CCM^5~@^x
      ze@3M*gJ3Fx|E383R?smG!Qw1mJP%A|=*8~@>mpgY_E1)}NI4`Lbo1NLPrEh@CmoZO
      z^+JzvY@8lJx3bOem0W)i+%R37{!fX^=8$F<5l)^S#$c}DENl!d1}gX;AclR`u*9sH
      zJrQA%JyZg`+)gr{YS}uHjcpz7@3)2i?}#Tj^1nuWV`y`mUwl&G5&vW-Qb^MjQ$?OH
      z9a9v@SskCrIw-T$Y;<_*@{*F!y^ap|+f7E%TV>uKSP|(MxvXANPvw58ler$5!+c&i
      zH}!OJ-isbT7)cyg(goD$R?E-YBZ<Uh>FcySNo2k$^|FBGjc2y7-_K-I>1+EhmHQ8Q
      z<g$VqvUfO{jSt51&5c(U<$72rD_N+VwpkiYSt3iRnoh>~k5nQrwvPQ$XAnPwQe6YY
      z(!^oe)GSk~(Do?T4Vkh`I62k@OCF(5XL4kf^S&)NVeVzNQq3G&j_LFM<fK4r$tqJ;
      zNQ**rmHKO~DOX4fVO18)6PsE1A>TWAQLXUw%yfy}o*W*GrE`srM_MO6lFrj{t)sdu
      zkd3CSll4lHjUKs5aGCOvJe_T+VRpw3YU<<`Q?|-_!3?L&8NY0nZR`kSyI@st8d;{<
      zR^ZOcT_QP@oHNa7KO3-J9(jdz6W}<+EIHyhX-cPb<?NK7Qx`KGUHUV^J=?y*$lIi9
      z%AUF+bJ%4|hL(s$21}O|%RI^iN%n2Iqts=e9Pr3~TG(lEQ+nheT{$%rOHLA<6D&=F
      z8Dcoi%o&&>-=sjwXopSdR*p6!S3<0tCBY}AO^N@PJCly?%&V4&ZA$v<O}Rl>c>Ox9
      zS)wnS9_0c89*NTI`TY*gR0EO3mh=Ekp3K_u;E`CtWkrtU*5P=9iODM*cfA(L2EX(%
      zO-Y~JXv%RR_~nrynu^17^UJzuvWT{Mg$b>)A(Eh(`bMns-lqr;nR1h=quy*P_laMQ
      zqT3_c$yVB_qF*v{LdD+Af_MD?GAJY4ml=vh_s6qp%=W8w50O$0Sw-$gI+xdd@xh_Q
      z<T16jkL7+?$2h1*68aK($iAU2@|Oj2y><U*Us2Zu3x=uu*-y(|ro2&AW_N}yl-jt*
      zlsCzn$%zfgu=;pz!EHo)ekQMwx60c+^0vu)ouc=qyhGl}vXM<~Nv9(tf?&zYQgX^$
      zAn!Ki4RVL_{&#cak@uPMe)#}liYQvq)DY=~N{oITCAK=08N5R_8a1V`VAaW`;5=#-
      zYy}*@bl)F8nvSH&JCISg5v8xM-N8e;UdHs@USIC;beGw6B?lXIF(ePD>!4a?lZTXd
      zKg=ZTtSstYh^1Q|kxzN#lLdjXHI+)lBDBDx!U@%*EvfpIx?sV~WF4a+*^YXIbLxx&
      z^2`Srt3N4{TZwl@-9k~kE0inNL`f+<MZ5BZb^Yzn-TLf^EB~%^v^*;mN9O;IBzp_J
      zufU#JcnRZP!~w$qV4_k@%Uo5eS((o&HInKl2U0%gs*7~}dj@9mt65yTczUk7WP|!s
      zZJnz@t^Qr7pL5kkn*KdkKO0FmfO(`aACMJrlL~OpIO@-0aaH3umhK8&#O^a_dKRw;
      zRjnSy+WTOJs#>|Y7nKue?j6I%vuHYraL71=#pAfDGdzmz7tpMCYda^<(Ob1^3|-vb
      zeE}WkC$PU)WDGsK#?c!Z#q~TA?G1&;5Ic)w<GArG2FH;)i<?eUt}Cz;yO5z=!<1|<
      z^#L9rO7|0&-xGyDpiY3GxM(3S{l|x0Qh`pHi32hVy)pwwq#gsZ04cVew^7I2r5Uf6
      zt8k}m#@)CLCrEKE@iwssH{%xm+DueOa4WfY63^T4YOV&z`8BwmZ&N(^TD*>Xm3Teg
      zki!nAEK98nJ%KwWa93}*enG8!40n&>%@^>_*0Mm^8NB-;%np=Ygc&Fs#rwH^N=|9Z
      zDcwS}E$}=o@&ax9E&h6uHvBfZJWuO=lNS39mf*Ws!2$e)mQwS>z1kDh>OL*AT73u~
      z)|Om}k8ow^)knE<lgeCt4DX`8mH0S5VM+g}CH<OW=>uiY!bibRqD;wr|3S6kk&~#f
      zRj?IUOwoa#k;zM3{hSK?6M=k*jDEop=4V)hUpfR|V++2<7JQ8@_!?XAHJ0FN^{^J)
      zt^Qerr%rOu&F>!3DqP7OMZ+7S8;;>qr)|0XilXeL*!whpGk4D7uc$p{!SFaaDxU43
      zF+3icz^Ccmr_SMYetDM5w{Usx9PS8>WAq%J9LGdg(?xiiM)CPj_#D0%a-YM+Jp0vT
      z2#J!>9gNdAQS`^i>~V1PL6h`jr3_%L9K(8vW0Ty7t#Vw8*^m>(hN)fW0HGzT@#k2j
      z)%_Bla{%#WtwbBYQxJMWVPh13nYT~5(pzrT#OrcLY~mh#m9EdJUR?z7T%Kg3x|*88
      z<R@gJY_gA0{Wl*)onrNk%EKRLa$q2Tv->1gh4|`)?&fE)j865%XE7^WKaOvAH(x|$
      z^C`6zu2<q6ROi0aU4Jhv*F1{vH=iQ2Mw)XAS*^p>`k7OpmAMXbFJ{Yqm?s}agM18)
      z@*u+UFjmnguaHNuP9DP+`3zA!i=8scOfZH$GHypXMYfgRms47=e#}^NF*_RgM>?ZH
      z^w(G`x4Q6}0>CB<W#0t8+)I^za=r-XA3JdN*(`k)%NqQY5n<RwUt+ANKZ^7o?c+Qf
      z5{BU@eo<_~-)YjJ+#v_)f5ES`Ha`5?3L_tWqr*tC`=vvNmo%dzq^A(62!)#%?nLWf
      zi&(j;9l%xCtSW5aDl}7<Uj5pN*b2?m&98on-%eqAfs{RbwyI3xJ%eMdWpsv%_hH5a
      z9_g+6_c8p(`J6m~vT^)pYdPPZ4wR4LkNiuFgMsqAj7ya~uGJ`Wt%2XQ7PDPfV7_Y|
      z7P{8saz2Bu4Or)D)jI6VakX`5wRLE<b!fG9Xti|UO57}|WeB25%IFZ~3QQ?4u$?Zy
      z;?eq@ut2SE8Wrzny{+!1fO}MC(9HvGBjA3zxd7#viks^IysjS1avgM_U2jWTZ%bM)
      zl`>mPTCb%tm=bEV^lm<Xh#y&bY!jdAR9Sdjs)`b!s}F8h%;B76Hls4_@pMk9zLdv@
      ztwLYyE164r{A{VgB1^v4kgP&E%-q=-zKBKRQmb-kpeZye^X|j!@PsVvt(Jx{Sv)G2
      zt7MU9Hcyog*B#X2PQvy^n6A4q*L4q;y58)_n_)Y>FVoqQ%@@BM;hu~7Et8-n%1-`P
      z=gY&i*YaYlK0w#{po40;tyZ~(6<5;4vgD%KUeu{mQElgM1;Z@myx~!4zJROwUom12
      zIS`v=lb&TECh8W+BKSH>%*I?Ut)O97cAaFlRe5w&R(G*M^D&dkny#i|sGfqyH9_zC
      z9AP?-de;Rkc75KFLK<z(jTUE<ygnwXqN+wSx0<akk@8L<8?;=v(rJ`jOY?HIIpo^Z
      zH6fdOo0MQzk4bx8vMR;d^*kkefs(yQ$-eE7XsIpH(!4~nL$1*h&9qi-bwxErqV<;V
      zyT@f`G2Xv%;O(|~xGf%TbxmjCeWgXkB}Ft0uY-omrs1+^1k??TMPoIrj)dVtzg}HT
      zsivSC`KoR`eR6FHor)-JDyGy}f|AH?*<(p^!t$P)(4?=F$tn8#-ctwVl-9&g`)<&K
      zhk81^$5@YYV*~s~D@>yevyDxtGOlujM2(F>jfFuuD&&>gX9Ch|%W&L6v^q2{hdRSr
      zgs@WtA1cYZg6>~gBtkdJjBDXDcB8`BgGyr`#W>(FL$#%HnZ=j`wEDl4EXFq>H`Od>
      zvQg7a1CxzPI&;HBlMQ*OAlGoOD1M9+a2q$nYm5+qTQSGD4NHvMZT4<9<to7_`~y0{
      zC{Mahj^x-&z#7?(DC}Q#5sN3}Xzzsdk!Amw9OGuZS_b*|sHDaueSShRz2T<j0Lx#X
      zJm3j<$7HzG$9Ov1+v@*<dWHi&T?qZpoP>vepAYyHg4@}}^pH^xdi67>!V1OQxS!%b
      zfO*D)xSY>r#zR<XJdE{xZZb|{yYWfv=JSy8s8*|APa;Qb!yd5<&=I+XE0<o4aAoM#
      ztz5bF>Nc**^y<}ImFv}Oxbo=L?X-=Tb)-RFE3YGMx4Q7dWb5tHG&bZD$?F}7<W<UP
      z7itu`b0DasDw(ckf>7T4%=sn-!R55WTBr(orG7f*5`$ULU=}o(1r26F<MV{#8MN@Z
      z&ba8vJsWJbH#l;S5?JM)Mb^r#?rkg!d#!%$IxSw87H?GU{G4PubIZHKPs&?dIM}3Q
      zZF=T>PDTH?yo(xEs9&S<p01{+!%yG9kGh+TW~1rpad~gpXjYqC>8992O_q?)5|*?j
      zwst!>qQdwZwfj0F^BZX3I%qsk&0fHj#*5f&d<Rz>-^ErwuQ9%dUB>s(#piD02RLB-
      z5C{1@Wc<i6nO$cgP=#vwAlq$W@3YogtsxfoapmIKh1TjC)XImrVyi44X5sx)8T5CT
      z%%CD4VQZhGu^G8CS{|CuL93`ZyL~8g`yI3##hHUa1!*jjkIUqUd$ZMZED1d!_dlz`
      zo-^GU435cz=j491$@xT1J}HkIIGAUpQ-FIuJnnjU-3w5~XRUi78r_#UlHd}X^%6T)
      zmS`bd6ylUEMA{M}NPegDLfoW<IITA6*Jn$~p$n#aCFNK}{%f$zz1G1$X!8%+{DU_C
      zCnj%ru$QNGBN;LXs6EzFe|velnCDi)+>T23Hq3W#cNCh*2DMWCqoGCrh-I+alWcv$
      z5A(~%!gOz@`#=85c&rH2ZW!*}1a%Mm?!B1B-_`E@4tv(xO4Z6aomX8PQItoGaiCLP
      MAh?VE@+9W|7l>i<O#lD@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ClassNotFoundException.class b/libjava/classpath/lib/java/lang/ClassNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27239e4835913fcc3a2dba669d75b5eb32ab115d
      GIT binary patch
      literal 894
      zcwUW>%TC)s6o&tkD;RSNm(Zq{KsSj&M3uTr#U?-niddB3MR${A8eAD0`2s8|^$q$g
      zt<)+~7kvOEc72|TGZQO`gi*Wk%$fPmcm98T`}fyx0I%_?hzz0nNnDABE4)FY<%%#o
      z@uNdO_WB1mJ$V^9zE?z!urg7NF9=Ja3>@LwG6=aoJK87EF=4*tdtoHJ$QEua^ItyP
      zecby~{YuEl8^T(9!s?s{{<Y}3vPmesbv!59BV=oJn~-byeQAJ)m@u)-eYL5^(<pGf
      zK~o7A+m0ts;)|{fItoQ7wf!Eu66}rZ<S-YVJ0W4K{ja=D16eH1^5hK@2Ie?ZsF)9i
      z6RZ?Vsp;yrf<9MCDg<*Nqp4Rc*XoZv$qWlyA`aQUaq7oGPaZldOC{a;uA*R*ooD$6
      zXYdqx6u2ttY6c}0hxd6tGcnKK1+L!k9r0SQXo$t{T3h0;!7FgY>SL_%&K#+*iZxyp
      zVL2hZW2Ms0S=&RbTl5p<31&f?=`iMuk+w#ykK_qT?Vhk%($Go*eb0TW)3mmChInS}
      zq)@wTr^nrWO|6dfW2%`@)lLOhF<;<i!f)t#{20~`l)sI^1$}rql{i06T>Zc1&#BFu
      HTD5f#RH>s>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/CloneNotSupportedException.class b/libjava/classpath/lib/java/lang/CloneNotSupportedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b942f46479b418f2ccb0c8f21dff762a8aa8fe7
      GIT binary patch
      literal 529
      zcwUWAO-lk%6g^i*jY-oqt=vQq;TR;*(r{x%g%n}UqE=6R*u*qX=A-%#{hC%ni+(`A
      zr(F=;H%dhjw0QU9y>rhw_r1J7Jp<T6HG>3U?ONQ5hAX^bqwOkB9;>h$jYi53<zVl=
      zFGr!HybKIN=?nS!Kqv&#cZ6$8Kj8lSaF;+wgj`#BK`6Y?7H%X{2UY9!?!kH^q<0+8
      z30s6@&9VtbTMeX%B<8X(F-ypI95xZ%^rU|#dafiCJF3qDf@Qd$UK-(*6A;!r|FPdB
      zlxyFR-OzWuVbij;a9InN*ma<#et`&PS4Dnb?mJp{<!_ZuJ&RTFYW%;1DpE*u&TyB&
      z3?I@fa?JA0HfQ3Ts*jO-j3IfBCTHLT22N4nDmwvT9>tiHtxgGAjMUh4ePfJ;p9~i~
      Va~U&KCa5Wct}0lJ#h2ol<qwNKal`-s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Cloneable.class b/libjava/classpath/lib/java/lang/Cloneable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..313c52474853309266b175e6a6ca3ca86dbdee5e
      GIT binary patch
      literal 109
      zcwRg8Z`VEs1_nb0c6J6PMh4-m#Ii*FoW#6zednC~ywt>`oK$uO7DfgEgoJ-mR%&ty
      pBLi1(erZv1s#|7GDkB3QT)7@dB^x6HBLg!71TZqN0!bzYHUOGn8cP5G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Comparable.class b/libjava/classpath/lib/java/lang/Comparable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3051c4fd10f357308cea030ba2552d9bf5e72add
      GIT binary patch
      literal 235
      zcwRg8Z`VEs1_nb09(D#MMh20r#Ii*FoW#6zedqk#g2bZ4q?}ZC1{OvJ0fdZyQdVkm
      z2_pk%GFVA!NIoNjsD=-^0&7iApqk*!^t{B9(xOyG1~!e55U?OuaDHh~a;jTq4p5XI
      zVUZrl2u21Cn-D8Z)9f&X*ccfY8JHPBfD!0KRt7d8pB>0!V&DK`PB4oLD#8r_0OL8y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Compiler.class b/libjava/classpath/lib/java/lang/Compiler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02bbf9ce22c29ab70641fb5be08042e466024764
      GIT binary patch
      literal 993
      zcwTK%%Wm306g>kD4zBZ}Bx##R-xSj}sOpj^QiRkMNftybqHG2;qJxYb8B?i?_KUJ;
      zSB<*p2lS(=-Wg+JV`kxd=lYy;U-S3h?>_)O;K)RQp)%rMc+=zlu-OjAH_{WK34>wt
      zK7P?32{&RW9ZO$ECk(~9(_=8&!9Z9jqHJRYC5DZT^u_sf+!x^`?|Xv8JAuo+9uK9u
      z&w@tuSxy+LoqXmNgYCwC+v5|3s;6Np)^e^G%3V41c{B}4Z#M@yZk!Ox!b5DEsFKM2
      z|K3@W%f>o37*+#6$+eYB#jum@;OkA&MRi$HhV^v$f<(8|)pes#`omdm2R5EykHK;k
      z_MDFuypl&Vm?S#p{(zyDR*U!2a`GW1|I)@YJf~&xaG2GdfoP$^SIsDN-9}CA&>YA~
      z5_@aIQ8B9<OhZ?ElB(~uWPV3Vke(4`fI1}<)H9&FNw<$=8QGP_FRcC~rvQt-7FpmF
      z2HJQ)o*je8u8}RPl@MZ6<F~ZX>0Iazm0NO(TBxLh7a5Tq?2>(yi9FV_H0N1e&6M2!
      z?Yyp7?m8oPh^LxNQ(QuR@neBJ%8*~-wI<i*6R9IU#vR@)4kV(krkY>SEN2<3vB>&H
      NtnYIc!#nN0{|}{4w$K0o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Deprecated.class b/libjava/classpath/lib/java/lang/Deprecated.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..676228576f00c9b63fbf8ee71ed02835bb96e18f
      GIT binary patch
      literal 331
      zcwU7~%W48a5UkdiQS(s2izoHsF-y)l1x!Hj#rn99lO~LeGeKtsf6YTaz>f-Pb8s(0
      z8oI0KuBtx$9KQiPqoz<GG}n5s6Q})W(&w)&8y)#W;f7GpFO$`pO;orgwDYa@K13aD
      z@X70i5~{P1Z4JL$$AnrQ`gC>@T50B^-SE=x?8<TO+!4CNtLgn<vJHF5cp-GIYf_G)
      z5GIn+Ub{@5_x_PigR|x!29++x^TFt?M<5iXOE^~n>Ti}&5o`#n3f{^6p7DUkUouZ$
      A9smFU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Double.class b/libjava/classpath/lib/java/lang/Double.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6757549165c7e250253d146374d3eca99adefd3
      GIT binary patch
      literal 4562
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/EcosProcess.class b/libjava/classpath/lib/java/lang/EcosProcess.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f306e4c87afa5549f507ab8ff018b304899ef23e
      GIT binary patch
      literal 1047
      zcwUWBO>fgc6r4>=+?wLH2_+4blD2%r6>308a0ud3rBbAbBDIPHoVNBVEONZodR@wY
      z;=rvENO0#zA)cKmHN{f#;l172neqGh_50fo08ioBs4%R3<fptF@@U-c`zm>(l`oRS
      zhQ+XY@ic=O>_8+&tIrJ8jyGah6lc<mc$kVD88BG;Dxk~qP)6c)Iyn*gn4g4%)Q8IF
      z;fQOQ-DjX>K1i}{4ol1EF}P!4`dTY}WVGNDqISF~S*q?Jic>Rvm{AJ|)j+^uY6{4D
      zL0o(xwf%`pbD%VX(?9b?Y@~{44!0OKFKQb^MrfVJMg(&bL+z!Eq<O{gqVvAc2wBT$
      z+$(|RH5|xL^t_Rc+YF6)SBG<N2UTn=p^4f8HW@a=zDnBhbT}eur;(h*p_m9ND{#<4
      zJL7KARy+UxG+!5K$6RYp3v84WMhg+qX-vBeBu&EoyHFa<kxI2MvKzxnVN-h<5l=u$
      zWS`9#uAxRJnk*J5F4FliWk$JD{gOpE6l*!s#&wEI(^twja;1yq%S!h3lJb73a^*ji
      zUa4{w^(&QorOF2NS;0*@TXb8yqT^?!9!;zlJX*QOJDRCQ+1)+Io$qM9t=~Pzy`OVG
      mhcfV-IKA9+cgmi5W~XiJ<o|JLT01%0#REJfUxr7yPv;MZYQ{VO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Enum.class b/libjava/classpath/lib/java/lang/Enum.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e79612622411b4ec9ea58d99d58f4d302bb8f1d6
      GIT binary patch
      literal 2931
      zcwUWF-*XdH6#j0Tbdx3YN1&l#3jq<D1gNMe&|0l&tHsb(QVK;>wwv2@>1MZVHu&Sg
      zXa50Te8(A;2b_V{ks0eajylfxtTXDr;&|@e?QW87XZn!b-E+_V&iTG`&fVYt`~C+2
      z=kcL}4u<Z#+I?-r)U4{rl+~yyh%xkrwz=iITz3_8F&qr7MZ31HIoh(x6(qKI411)^
      z9YZsXPs9$v)aC0Ucj|_1U7wj`U{@IS7j3KVYL>gGnGGKQd0svA=i`9_L(I}@bSzy8
      z1C?FJu&SdBitSVkOEU>#hM{ZBunc#cAu}9xp2;l|R?)6-6`jbWkj5c~&f(l*5)6k^
      z=thrtdM1Tl^fC0542#b;YRlYN@Dfj#Y@PDfD0_PMjWKuCs1vDDt6-E{rq%u9_3b15
      zZN6g*3!~$L%zeRpZiV4ObN)qBtJg=PgmTf4$+A(kG`HbUl<BeZ<w&411sacld-fe7
      zkX^xPhNI!uY{N9?ZNqZ8Gxd?q*IlZiic`p_$m5IxDp*e&d<tiAjwGsbcarO-=J3k2
      z!OaT8*&XWCOv~XbCiU5fbRSjmJYG<6p5f3gE-Ac-m#BG-x}dw=P_oLm6uiuEB0M-_
      zn!Ku+6Hc{J<Cfb*<^nE??zlvi+9|(9k;iBXV|bO2i4?=BW<PH>T6p*-1+TTJGvzq8
      zlfVQu-E~X!M%J~nny&MDJu3)gbs?XMaa>d|*;)p>+|XAg=^%3j(+t@tLkSpoF~qq`
      z&B)LfX)+ok>Sab9czD+;h{oQre`x;ry@qDi+jQI3;}#*?t#j;eF(g*C`l^^sSt}al
      zgll_x(={@ji&lYpU6;2FUm(l_&GF<c2#l^_8m!!mN<+Pr!Y#Z@l!G255ShC;oQnvd
      z;5~-HHfvF<H@C@cWQdW-n8J{%x@lXyJ>7tz8l0>vAh(mv;B;`-cFT?Rb=z@ySkVNC
      z|Ddi}r`@cC&uUhd%g*q7TSWyI83v*pyjw-wb!#b@f_#F=7rl<k!%D#x#{FcZz}(S2
      zHQ3rN<&!$nEMEuRqiWf1I69v;#C?_&ik}lF7;cX(L~k9D$aoa8Ipg5V;dy&oZJ&<O
      z*l|js6CH>{q4fxo5J~N$?^XxIwM|zzJ@<+WoYsAa(HI{fkAw8KMn0Xi_T)FwpD#SY
      zKz{HEj(kg|P7Kn2n%sd|`kyD@cL?knhRBljj^QYd0rE+NVe&}?>L3qLc;<T@r!|Qa
      zc$Rif%G92d3H(Ml0%<b;3zWjI*!L8tmNqfGl`m`{clFE$M!rDmDK0D(Hu1{V8McAT
      zKY~5F5t!&{d@23<Cf?X0)Lxv!2#RvOgejjzo+JT2KmvDYr-BSPu~?xSx=P*#U0rMB
      zUBhK6f5>hUZ{jV<ZW1$+T?U771#h>o6J8}+`*4+X@?@POj}E~&U-%O7*u&0;fuLRT
      z(5Es?#&ZfpOwz%5+7H2#zI1&g{WTwaf>yB?&p*bIcHqw>uy;7_17}+-0*;}Kg&p7q
      z9<{-Jz9+ao(f>hVZ%EjNFTqfL12?IbHy?=F-lp2Vza<hc(616^-z^pYirVvQYR+$(
      z<QWR&8KMdv^W_Qmjt6^pBqI&Ww5O9TM(-7w%rv2kgw?00ETvaAvAWep^t&daYJ{j7
      z5bfTZZa?i&x8A)~^^ZNm(RCh_!H}?3zYP6UhPx%ILoLl7AR!(~g)nPx%>N>&zlq{M
      zRDyq-O3?3zj8nerG!o4n+V2JLouD4L=X1%0?N7710q3F2DCEN=c!&JC^1tC{egA*d
      C`&|D3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/EnumConstantNotPresentException.class b/libjava/classpath/lib/java/lang/EnumConstantNotPresentException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd66f1cead08a36d78905920388d57f4b1893f11
      GIT binary patch
      literal 1266
      zcwU85TTc@~6#j;`wBRC83JBhoiqIQWyqgjpL`=krMlOjjCfjyWhHPh>-C3jW{v01P
      z5lA%Q2ly}i5xyGFPFtYest>a}=bZ0+=bJNUe*FG+0$>FX;}~Gb9$4?JqHW1~aYOoz
      zbw_&2l4{FQuUzhNsW#qMc~c2T#t~(hJ%hjYr4kK(8fO^uxGOAskGme(yU(65uuX=M
      z4(Xm{`#kn3b@KC9DQz<(I91&F(Bur`<ul@S+w!~;!_c;<OH27K#piqDtNC)b^3ocm
      z7}bt`t3g@GbC_-A3Rx%2;Hr>9tuZWQLPf*)>>k6T5U^kM{<+b0r^e%$WSH)aKlX)P
      z<8A`e46&dU<}gy2F))T%hRIAn!T@o_z*StMgILWbmo<i^^U#--17207Y$&^3u9Seu
      zFk=eOYzWVzfT{Mm*=d~CkPa%`=ppWC_$zUcdDFlG7U^o0(+V=AGT{`$Mldr3hMa+6
      zTnKgr0~ayMFj^LpZ~2W1cXzCct*_Ck(pXtETx7SMQME5ThTe<##{kpa$LXj6iqfT?
      zkg0BJn#DH#M3?H$NG^oE{ReS)+wt8he<}j5`Tq!84hS$uJ&4fDj9?Zq43ZTmYXAva
      z)FQGCZI95RMrkCyIgFFtiX<^X|Br}jo=omLQg4z|$GDU~!sX=kBg_?O9bx{Mg84&a
      zbA?0Xzi6f<`X(t8*rdCEjx@?x#0xBw$87PTh+BZ(t!O>L?lvhIz#ZBfZO;lRq=!!$
      x7wH=)Dry^u<-Q{SSxXJd4Ql7EF40PkwM$U{aQF0B_d+DuUXr(cN$zXZgFk_kFq;4X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Error.class b/libjava/classpath/lib/java/lang/Error.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20eb8cb977c14779b20db79b02da75f708bd7176
      GIT binary patch
      literal 753
      zcwT*x&o2W(6vw|)yIonOew8YvoT`L~#HG?pm5_}DwKtMcn|7pjli6MFuKpUQCJz1p
      zf0TH$-5_hZ%zN|leV_N8H}4;>Zvb|%W+20mzvB;lyU*S3c1uc68qgSKzKiXi^d9+5
      z-(i^a9VvL<cBC&n_wx9Fft@gnH$B%6xEt8KA3A!gyk|c@P1p?Cec_6r!7x%?r>oZV
      zZXFXNn8?Az7>%}s>zs!7H;!x%Crn#jhX!yOL-)9-1wG+2Oj!x1b%sLqNAV(%!tK`A
      zZ8f8yX3UU5Ur~RF7-}i4R?4$uUP<wa40?x$KA9?{Y8i^ve;_LgQf4qOyij(WL!q8$
      zMvvK2U04Mzi#~^;1RYt52Hi3kg+@6ojm{iZb}2H7dToI5mq?PQ)1(NrNPL7z%5p;y
      zrZ62rX(KV9K}w~~);0#1O%l$i=R6|J4OKBgWpkL1hSN4;)-hRDrj6Rh<^T&x*cCNh
      mN3hCJ_60Lyn93HhL~4aCr&(N1QUzJO`@^DQDT|e;XY~`&M}Z#z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Exception.class b/libjava/classpath/lib/java/lang/Exception.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc0a6ce77eba1c3ebf747b51490ebc81f1574b75
      GIT binary patch
      literal 765
      zcwT*xJ5K^Z6ot>g!W!hI2qJ>06@rl%OALjtL_@FuDYP2a5!T?Y*@ybKtVk@ZtgQS)
      z8t*I{R79J(cV^E0?wLEUA5YH!wy~}vz>vD;cf2~_Mz4DKpov>YHw_iakBfHSGVghJ
      zAQ+Oiuyj7?2+Jnn+3^7bJ7I|Jn}+Rh!|CvWD?)GY#d@xme_;sk>W1#r8G@ya4ui69
      zUWy2Uh({5@EJLE98=~pnbcNL(b(n9M8a3e5hW7rU;`DW!A>EkbwnpcrZx=1c(v4ni
      zqa*vIWuFw8v?ckMh@m{Cv@zxBJ})PES%#3tU0eKg^rdCUmi~bhC8WR*X_>C2i6dP;
      zF+P6KmaN1YXlV3N3^{}lrl`^`fEg&1)9`4G(#Z}*Mln<#BKGJ>60}Ar0(&GrK$5cP
      zNQ61edr+E+52%w;YQyEq5DSxpCe@sJgv?0g6J(abqSu@z;<Jv)vNWxhE1N?sO~THp
      o=)!}oj$~t)>ceEVj6A6&wlK}&$|UuQEcX7eC|T0ts#ml23C5d;0ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ExceptionInInitializerError.class b/libjava/classpath/lib/java/lang/ExceptionInInitializerError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26ca8577673cb3e8a7bb63ef581f5290cb95917f
      GIT binary patch
      literal 963
      zcwUW?&2G~`6ot<;e~s(5aUe<gD=kn+9YloGT@afPP$5D>ZQb=G9i@g~qp`!^ig(}%
      zcmt4tN-TH)Ry+~njBAo08dO=DnLBgtch9}@k6+)u1GtUr1<VO-Je4nHb0~vBv-7&I
      zUc`PFZ1eMDUk?4ZN_Vslbpcs{>O|W0gJ*J}k~e`;q%_r@(h;-ww(kjuhXRZ3Fo<Fq
      z#GV|ERIakR^|Scl{X2o8`cp}u(w$Iu4|VuT_J*n@kiX;8!(D+)ebW=jw!;HufwgSd
      zaF|!0O5BOH9}HSXxJ+y6@#uL^>0N^oD0jm?%}H8hoL*+*Lq8I@(LGiBEejcxiY&ik
      z!@>gliwyW52Ncv#Y-rOn<}cY;#bpk_^wyT6h)!<KNSHAf5ewJ@6?Y~htkq|U=P69f
      zSUcfJ_tkyhbiekWUT+x`*6B9G-((Ie$RW?DkVNw+n*s2g<DHE~u1k!z_$IjLU2%lv
      zPl>k7)#463qPmMSJlV%8oJEDZAvh`F0hLC(;5Lp>b;TFdCYYtf%pNfwk^2d%dMr;-
      z=5!9{2{X_ODfCGSb&Rd5+xUu$`)=bebQxK$lIR{0eUxx8g?Gky2Wxyc_;p-K@y#UW
      fEZonieH<h6$z?FraBkf2)zc-vIWhTKqT2Wk8S}g=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Float.class b/libjava/classpath/lib/java/lang/Float.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42732a6f381e1fd2eb189950dbf13b2c0829584b
      GIT binary patch
      literal 4642
      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
      Oxmeo7?`8X$H~n90!dJBb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IllegalAccessError.class b/libjava/classpath/lib/java/lang/IllegalAccessError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef0dedacf7dca6eeed9ff5ac709f92f0de2406ce
      GIT binary patch
      literal 524
      zcwT*w!A`<J5QhJe0;Yl>3MerqUJPI&F&;4}shWVq3)-W}Qa7-sw5D4;c=b7a2u~y)
      zd;lLxofZy65)V7GGx_HKclPW1;}gI!Dru|`b|1yFXt=@~Hae~=hr(?;j@0@x2>c)o
      zgK)4wc#c1Q5}_Kn(sG5?)`;6OW(j#M10`Hr23q;vUFU*8T|(CKJsk=!w1qp7$=CCr
      z`xhheMo671PlYW)qFS>FhUGs<6A7$mU}BAs>nTs(OvVEl+zNIi6nehH27+z4o;Qtf
      zq%>i#_unQ>Lb19)^us`T!)DEn42zNBCcjok7E2Jp?E90zkyk46D=(`bMKjn3ufktT
      zs33_H=QLL<Smi^}N*puXIpIv4ll3XG?=h0&XmSS5V4#gW-!d}@8z{u0{KUCHi^+&h
      e)eooG`m508nd?}gG^6GU(XE7XY`z`O?EC`1jBWz}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IllegalAccessException.class b/libjava/classpath/lib/java/lang/IllegalAccessException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5dd5b449a785db8e29ccae7159b2090efb142d1
      GIT binary patch
      literal 517
      zcwU82K}!Nb6#kyB8k?qRTG^#KsX<a54I!++kS^8|bQ-t8CbrqyT_fmMbrL%C13LF-
      zx<qeQsi>gCyzjl4?|t8U^YZ@m3}6e@3=)LZD{&{9p3uW)*Yo61czdoZ!|>qVl{b;{
      zbp{rp^u_voAQVCwDB(FW2)RD(?i1*Ukn8w5jD(IH;f-YK{Iz!bR)5$gq<588QJavg
      z)g6M>@h_x}B<8ZPF-yqzl$OV%>wyeT#K4n;V$XNkK(Gzh(@QJ5R3Tx#_uuF(Lb>*h
      z)sF(DhpoC}Ov}c!#1n_c<`;=z_x(}e%0p#5SN?X`G<{eDuf%^!s3L_lV}`2)X84d<
      zjboN?b{L5<)fgl97*p~bZAQR>g)<a5%T7p`M==)VF{c7;W*Tm~u`$NNPX)m}gIJ+5
      RVNDfGR>5Lyz7+Q?e*lh6Y%%}<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IllegalArgumentException.class b/libjava/classpath/lib/java/lang/IllegalArgumentException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11a02e9e8145fd13cd25cadcf98fba0402d73208
      GIT binary patch
      literal 827
      zcwU8($xa(V5QhK4%S6Vki3wrf4z`IvC`Te9L_jiF99VpBOfxhZ_n_&SgiFGi6VH+Z
      zvV;&1z%}oKs2-0183UKD>h8b3`n&q>{`wZc5@sEA5oS)rFR|ze?Jib4PrAZe4cw?9
      zb+~?3m#3lfwSzQa<Vm*^=}<M~<2|9@$Uq6NCIiF!{mM@QZ4!Fcd~HIZ!<z6SnYp?!
      z|Nk6a-Vn0il~&;jAyq8Z2<bKdQ09<AZyq^x6Z)!3%k8LfAcH+|;7P(@)vt2{!EJb-
      z9Hzr#We9WC_usHgC={RRcEdnvcezxvZ40*TNA_%NqZcAVxkKr*lfC1>|7|TLyb;SA
      zCO8dgjBwd$rY<7GvCy%KFkE~CH)U}Xgxszl1$DWh?Aym*d+CA&VH!MK{$~C-WRT_P
      z@U9CVkmj6+%xj)czHuaunQ{|7|6)lWuQ`su4;HVYpR;^RgaHi3P##wTSYf5rX3O(U
      zd}=3ba?Msu7;32!g3X5TId0CQN>~-PY)w1m`L9iUX@?zhk&IzeE!iW?!DtM#*%-!I
      aZLt%bEKasl|FXsNS1ekVwKyHu%sc>J4WOO?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IllegalMonitorStateException.class b/libjava/classpath/lib/java/lang/IllegalMonitorStateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e7de1e0774c2bca8076b4030bc6351d57556431
      GIT binary patch
      literal 542
      zcwUW=(MkeA6o&uNRb$gMOEd4h3AISVOG5}NFxH5yy&r9`iFG!1XTwM6b-EI|=mC0{
      zULiWO3PwS6F>}tD`Op8&nfK4vHvmVdW{_amd*DyJ<#9D>^*v8axHs^X)P6A3T#K{W
      zSUhU!s|+lL>PmYZDJ`d~dxk<N0?9pB1R>S8{Zj^Z!I10uD%4zQmwS;&wV$tMm4lA~
      zL;6?}r^}G6H(Um*=idn%No-_cW1S)INF^?#=|}`OeB=p+qT`PVzzIY3^3c-vGGwSb
      z|C^)3Q2MSN>OiVVr{NlO$)LCB-JyZ~5;53AKMKa;TpDuiFV3OqMh!F`eKvg^Qb<$G
      zP?f+MEoR1~JxeETii~2aIY;g#mgH%-DFP?3&_jW;>_UW16k}6*?9!l1N~29T_vhID
      Y>EKY$Aa*D(R7(ewm9Z1UD{;^67q%{T3IG5A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IllegalStateException.class b/libjava/classpath/lib/java/lang/IllegalStateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08bcb4d3ab1e5492c1ecb2c899c16461daa4c06c
      GIT binary patch
      literal 818
      zcwU8(-7W)B5Xb*R+m)(s^--VYrb>voByP~CG>B5yN1fD>?XK*e#XV2qEnGEm;Q>5|
      z2k-!5&US-TadT$o?0<gqKeI3IPtO2WF>j%RFmoxc#fmMQ+Dg&3Wlh*+EwtRZt;#E{
      zT*pF;kogiF1&&trukVC@UwTT|73uk0pA@$Vv`6UKavfg_M^}U$$oT8&$?HSmZI_VP
      zP>#}@gwEVTg%I0v&t(#w=uIJsZbDy4IdVU!pGognoY|5vSaPd8K=2r@qsy4SP(C4B
      z`sV@bgmmtksH{EZ)Yca&W@g&V9Ad-1neszK$hT?zc5{5;xi`j7#LF1o7{RJb-xoEu
      z8Lx`K=a_EWMHtKdftxkBX+pB>23}PblzDij?K77R1zGS~`R}p{aU?ieTy>xeG0u6t
      ze5UwjjU#c4=NssG3?+ShCOHDzEH0p*vs6=r0Styv-c<zHWTnw2@{0`&w-OGx=P)FU
      zG*uD7WFr_2hx48yR*@|m(^h_Qse$oUnBu0(5H{PCeZnkEgfNp$Vv5xUJKfIWOe^({
      QE#CiP(XfogY}hmR0rEMV*8l(j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IllegalThreadStateException.class b/libjava/classpath/lib/java/lang/IllegalThreadStateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e75e16b1e478e35a2af6e48efe07f33f39ba139c
      GIT binary patch
      literal 547
      zcwUW=QA+|r5Xb+cr^cmemR3Gx5UD{@J%u5K6)4h+cJHe$=f-&#cWd-X`Wn%b&_l05
      zA1azVC88jD*qNQ-H~;_6zJI*D0ysn|g&1M?R@{raBV4=Qb{uI7r$6?k81=N!^73IQ
      z@3ivV6b!=7FZA5ErxWSwFOHB4q_2cyNk8EFrhP%64k6R>+&~LgTf&*j#AB^&y*-^A
      z5t66MRk}%tSE?4lXn7-PB94_bOe_<!UFFK_>0}`Nz8E-?kneg!HV|yX^`dF$u?h%#
      z-G8mqAQUR!(4O{{Yd5M^=v)Y$*ZA2%==BRCm_2Xm59O5#jko`>IS7YQ1~11yPADOP
      zB<B=YF)Z<+a7m77?i_O_&WYL#ndb<}ax^&uO&B;sj&JEXgjM7tQGV+}pvh#&CTsgM
      btp8MK^GqjFD9)*cLU=1;BQoENX0|>7V2XEx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IncompatibleClassChangeError.class b/libjava/classpath/lib/java/lang/IncompatibleClassChangeError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5f1c8216d2cb51da595457f2f242035f29655d6
      GIT binary patch
      literal 538
      zcwUWAO;5r=5Pbs$Oa(y{RBl`hU?MS|41`Pl!VoWL?+b2VwQNmWy!uo84W39e@oc#H
      zQ~U$QX=$R-#CX_!GqZ2ro7wrt(+hw-R5C~qwy(vVXgWfVnq56~C$}O{14mkp@O^8{
      zWqIUzu9ty9D1UK#O5ce1jZpBVr-Wlm&sVO#>>d*6jF7Wj?FT{!ws590^*q0Sdw+O6
      zAf($$tDr+j*6KFFu-q$YB8inOOe_=fEHBTelY#Uu1W!XK_S_*G2)5xoE*imD`Gi{U
      ze>=1YrSIH+;3++7)$P!_6k4zG+<s{Gi$pN{?$jH~V--4A|MJ-lyHN$N#~)3oAcZtz
      zhO-2g_)xee-&wBgGZJH}F+=V#qU8BD8G$wobWq?ZyC7i|#YmKgjRiW)47usX&J626
      Y6;8P4G*T!pSg}GFm9Y_-Z$>>^pA)oo>Hq)$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/IndexOutOfBoundsException.class b/libjava/classpath/lib/java/lang/IndexOutOfBoundsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b33f109955f41649087714a3a7bc59671cac1875
      GIT binary patch
      literal 533
      zcwUWAT}uK%6g{J>#-?eORz3s~kspvmkA_87ph!a2zK=TD#5x<hv*Ew#Hw1yuLvOwG
      z6Z$dH-Bl`zpoh6%bM86!-q-i1X8^k>BoJZPyy17eYI8NLHq}6kJHGB*9XY-lcqik&
      zxYg282^b88FW|Yav>b`ge};@FT*+-qxE|$~&0_}EVn{U{<!P?8#cf~2q6aVcZ;zF2
      zhWNfzQr8)x#gfHfG@OAj5ye6hCgvH^ZK=eWKk5nhg7<8}kZn7C65u35`K)N@Yw0m;
      zwg0h1jUiY32JC8As$s2U1-iLFcZr7f0;OLd2D9t<ZeN_rKz994k)5Cw8=%GL#&k5q
      z5GS9YEP^?DELf0ik}7-T8TnXwg49C@Ns~3n19ccUM24c|6of@&LsFV_Mo=eYfQ^?c
      c6D<E^Xi`rrWXMlZGln3_V<i+{4SUu;03o|_fdBvi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/InheritableThreadLocal.class b/libjava/classpath/lib/java/lang/InheritableThreadLocal.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3eea8f7bb470a0d0b3b514ec0e0764545d3cdb26
      GIT binary patch
      literal 1623
      zcwUWDTW=Fr5dMz6_QuYVkTeOHv<1S=b};6Cu|v27NL(C)8aJqYsJgKa_J(C`)@wqf
      zO6}ihU;0*FOVx&(gy01veiZF@b{%TtNU5bgb3B)CX1<y8{=<t`08Zexj*!5<Rr8^l
      zwN0m%EjV@QTAsOL%W~b7X0_O;n6?g0VEjL?E|WlX#&RrgRv?^AEemLKjjD_zjF^E4
      zq5{K3%aNt_{T1n!6|TUjAGvJ0mY*k3YF^!H2}~8YD<&^6(F?HN+yptYZS+jJoS!8`
      zyi&L9>auCK8Fo0?6?bc8RaU%ws$V4#Te517>9t)34I~Mb;wLcJG+pU<9kkJ{BE!Dp
      zkR#XTRN|l_lG>d)Q07z1aqPk8Iwl2nerh%F1-=y6QE9s><tENpGSv?hBg{Sn`!U5S
      z*{XXIe4to!+F9SX?OAsAjx_HTs)Vw<^#!w4Uo@NfI1b{ljza?bw{<pf1WDrGlj}>;
      z6Bya7#1Eh<KZrDr>X>HLJq80A93zjGCtcHPxSVTGY@wqkz;T?^ae~zLTMeATX|9hW
      zA9<hh&|zP-bJoB)jBpM$>BS&$!9Wh<%-&MnIMR+&Ib&caMwEL@9hVGT#udgi+k`&9
      z#ghE5wNd5I8Mub)0(#wSmHbNiTE64vRJylew10*IMzCC)J{pPU7{|6Eim0>-MC{;c
      z#+Mpxw<2#?>TOJJ{UDAh9D$QF<y?R1vwa11Jt8g^6GHvMyz#N~)cNl^rJ#(YpJL#N
      zZ;tbfBgFFtG%R3{HzRPO+(9|iqZy{u)G!z`%6kZ(`Osg}L!pGG|M-X-^`pM=F((3R
      z2UFd~Fi!hWk8Sv)ZGyG|?85G#bde^e%JcIxB#P62Veeb4DY1bA&yf;Xe2njpK1Wud
      zlz9X33vOp#L*z8&li9$TTqL0-B7fri@6g3#L=uq=<a5z9&F?Ujeu;zMKE=hqu~%s_
      ziRe4T=&T&08<@RA=&J(1{`1=tzdqI7SAPE$vQcG+cUfr-ldv#_Rit1ei~G0$2Xknk
      zKv_bQTs*)JaOu(F>Ea<{e!`m1&_d83=P>Vc{3A8<>|Ws(m@P!)GH#N!FtO)RB$FC5
      YT=bcY5I@PejFa^c7X2zqoeACg7ylJ>)Bpeg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/InstantiationError.class b/libjava/classpath/lib/java/lang/InstantiationError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dd5fc20042bbd34b7728ceadedfc4d78bc6b0fe
      GIT binary patch
      literal 524
      zcwT*w(MkeA6o&t!tH!2jmReFlH=zbeb!kYj6)4h;wfCb9I<oG@?Am*EB}DW9Jw)^*
      z(V5i?N$6tcoH_HI|DQ9TKW`rZ&QZ-EK{%L*7t!>DKWcXTFcN;GM5F@$R_j1#U=dDM
      ziD58(=KFys9Z!UzGv>04SwbO{S_#jUI%I*z&JBUOgq#yBgk9myWa|Cmu=4#i_Xz1L
      z<*TSoNY?5u!E%BpX(NfPENpBN@;&9t``L6L^@CtXLa`SN*+8%jpO-}|8mo|S)cbFe
      z7NJyIA^MS4{-{-VjbX_c?(l0vW3dJi?0zuQLwTo+Uu9kW%=F+GJPLm;p^6mJ95Z}M
      zV1pN#k$BH?<&q<DOf}}ny~aqMcbg;7hJ|YsILj^|Y@-;9@)MT=Z6*zyZk*1s`&XgE
      VJ>6KLyr7l}CM%;7oA1Rv`@cPyZ_fY#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/InstantiationException.class b/libjava/classpath/lib/java/lang/InstantiationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60311a8eb8f698961a06f3164f65d53ac834bc0e
      GIT binary patch
      literal 517
      zcwU82u}%U(5Pbs&m=gp+P_a=P0TYR_M6p1P7_>pJUvPtK&OLK?7=OTqzp)~*@B{2k
      z{2JrzLDZ;;#m<}Aee>STzPvv@1K376g&1M=THJ}cEA*h=)<GzAs6?ndeR$uOw<bx!
      zA{4$@pAUpwAbllVNBRNR7wrQAoe(lDZ=&P~cPJC1x8}y_>%)kU+*MkIO+vg<bqH3=
      zyOcKKm`lUPEFs%bTAmGWdeT1^Jy#O)9k0&@f^E2-URvRm3JB|+|3+^Rij{AyZs;pL
      zXjC0zS~R8wo;WZzzeohT>ka+BJW|GU<!^^A(}y+iO8lpUG7?BKrnrh>h7Xz5IHvh#
      zhmjZ)wJ|b}5hcsfW(4+NVIMip(i0Nqk&i@q%&9<=nTDIJZH}?<Q{k9<+L1zO!kQ|W
      Ntc1nLd@1T#{s3MPZ8`t|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Integer.class b/libjava/classpath/lib/java/lang/Integer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fc97252e294a4bc0a3f2599c8c88f2182289c9b
      GIT binary patch
      literal 6722
      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
      T-(+n>{QXJ${oMFZ!x#St;A8XP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/InternalError.class b/libjava/classpath/lib/java/lang/InternalError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e61654b539ddaa11f042f5ee055a7bc529268a7
      GIT binary patch
      literal 500
      zcwTi-O;5r=5Pbs$Oa(y{5E2jG027JfSmlCZFyIC4eZdW^soP}R`UCt&o=7|x<Ix{w
      zoE8$l;$i3W&3iNZ{_*?*;24b@QiR%_cn}>==y_+TLus_|&W-U+4i;hmtLZ8eM#3A5
      z*+OZVKnSHk8YMhenn3ybW_U)ROG2UV>mU?5bcGkm%%jsCzuIqULiR*y74`_}X3Hg5
      zeg9V4NMkDx8=HjUh`Fz#`>8b7V(LjkdF0PnK(Gww>!KAdR6wYY{@L9jRGQzKlh7zV
      zcUo?&Rf)BBc+ntc{{te}6F)LDIZ%oI58|U3jsx%k{Dp)DGRU&eahAdcKZ*}wo99ZG
      zJ+aTUmnb|XkRn@~J>bB?DM}pWS0HSooRIQ%Yl0plV{Ep4xWw*nh5^r9Bn;IRYRwQw
      MRn!vky=12T2@76ig#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/InterruptedException.class b/libjava/classpath/lib/java/lang/InterruptedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6504769956fec1a85c2c290fb8003789fe61c1d6
      GIT binary patch
      literal 511
      zcwT)_Jx>Bb5Pbs&m=gp+P$-OcfQiIdVkiVnFa!(qDw_p1xaPbg_hI}=wpJt-Hg^69
      z|A&Rf*@LK2W3lsQcHg`=v(N7jj{x>iNg+nqyb?E}VGC!{=sJP)yl@)G@zL!_P6OpS
      zDHw#p7w7YVkn^Rdgl$RB=lZ<cA<zjS({>#{5KdqTJCuowx4S2LnY|K{2g*@Fix98Y
      zEP~N?$I?U`D`}WmCS-fck^S&`D7`Z=v?U?mb4P3-*oN!Hr4d{zpRm>YfAA)uSpCKs
      z1fFsx&6=exi`ufl^ZMH47l~jF+|V1zW2GI-f9db)E^LF>;ol@wkU)|##Z?STd`Pdw
      zG0ivojKr9z&ycx~C|QmsBX9@<9ppGm&q-KCJ`&|27XmG2YHqT=GsD_Xg+BM3Mhc}l
      QYoVaC64oR0ji{&m0S#MhH~;_u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Iterable.class b/libjava/classpath/lib/java/lang/Iterable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..973203260c20c75e3781f82588b5b9c349f9d4ed
      GIT binary patch
      literal 252
      zcwRg8Z`VEs1_nb09(D#MMh2m*#Ii*FoW#6zeb18AqQs<}RCWdyMg{?dxPMYsYH|r9
      z14kxEK}miQBZHWRrVm&_X-Q@dL?ck#nvsDsI5Ryjv81#pm61Ujt0J2aS8F?<O0MAi
      z(xT*4x6B-%QeK$ddLRvq3>r4BRzB!1u(rb#Vq;`rWMF0h0Y;#!SsB=Xe0Cs@iGc%%
      LIl(M0s0cRzoW?+A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/LinkageError.class b/libjava/classpath/lib/java/lang/LinkageError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b297fe1b51b8857f245436634d97161f6b70137c
      GIT binary patch
      literal 483
      zcwTK#yG{Z@6g^iKFe}JIL8P+-Oe91*6bsY{5*uXu0Vg=R&L*>q-(+K9MMB{R_)*3?
      z3yDN6=Dz0KbI#1?*Wv>}3)M6>2<1odBAUL?)8;_wCoz?m#snq}hmiZZi-&}KD2)=n
      zCrzjVJ?dQ$s87gt106;}N1pI!GTC~&8J)cL7lhQQ(kki@61BQVaJs?0bdkVz1}?T(
      zfi>mr?0GEBof!L)P#gpk77#4M{c7k$4=N;72LGFF6H2wUyJ2LMp0?|rl`2`O9rhVo
      z@;@MgI}B!KBCnKHDy;J!Su_s7_W8#MRV0z(oaSx=n|#PVgJXs#$DE0CvN1>YJ%;2s
      zx}1SCI5<b1tIQIF0*Wyyn_Cfd7-_Mo#^D^hzZtH1rx!Dnm#7tkt;*Po#Vhg7{x{mF
      BUF-k=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Long.class b/libjava/classpath/lib/java/lang/Long.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df9dc0ce90f573e31f8dcadf103c2e2b2ab287b9
      GIT binary patch
      literal 6360
      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
      GKK>sI?|cLR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Math.class b/libjava/classpath/lib/java/lang/Math.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..612c3655535a24e0959f506c312854028db2e141
      GIT binary patch
      literal 3628
      zcwU88YjYIG6+N>(JNwXT5sNH9j|Em?v$BF^j6e`T$YCWc0g8iVUU`sNX(WwU?Z7@H
      zVS^=%<KWmBn=&s~!UtEXs3aieQDrN3Dx^|L#m?&&Bvnp+Kq?<oNmZQFGtFwXk;_ue
      z-0s`m=iGa4chCO*zwiGNz*bxfz^5TPVNRJHSu;1*ao8-52cT=HTk?H5Ghq!EHRyRW
      zH=-eS$Q>#b?QF*pdYsAK8nj+MX$`geom`=4=88wnY{@cu{13vf)*rJq_@3@JdP1B2
      zGnC%4PJ^+>&e_Fo4I<Tcl*s#?5i1OVH4&^rorYD1?3^`Nn#@@FAv2S;B&#!QW{;YA
      zTlSSxFOJ&<#(HRZ0*ptP84l>F{<eMwMt-edb_d!9*v#@7klntvJ~l`B^vQ0zjTvZ6
      zQB2x74gOTWx7_5Dk^KR8y+76GF7&6;?g}w!&hTB3Ys9caUO@#2Xu2-lbbY$%I{nf-
      z!70|v8NRd57>5dH^VC<Iai*zYe{XMZ-kLP++=!Lu;IL&gVE<^=ab!1d=Q!7&cS^Dt
      zGKYSBAB!1=hJ6w2Lc&XBz}WXO+&{{lckATJoet5_7l9u}08c$EbVW78IDj?sbufZM
      zV1D78HB(GGC0FuL(K%v{*k-O^^o-6a{J@Acmba{eJDh&l=6)HGW;i3W)2YHZ183fo
      zTWQD7opEF$RAB4l%2E-dV2|ZW4C1T!dH`Qrwh_G;BKQVQae-YJGzYz0Pa3oT@^UpE
      z{L^cMVPPx))^^nrKws7|i*o(Ar`$<>_E&)ZU`{5Xvs%*6`p}3{_KXa|iQtT+3)_YM
      z+^F2OmNBb13@Cx+#Hk3T(ZhI0+$e{fLr!k&OLno~_a+5Ck+YtU;5;sHR#uG;IS-YU
      zyECmOqm%s%hcyH#n3J<)(T%)SC}r8G$yw9AWw-1d=8>}t1yiQ|vJ81#pJi6M7oCOg
      zMDQy1@TiYU35J~hTv4*ip(_!*j;kE9J>QVy%H*9MZu9UnPANZZ_1SLu<@tI{D$3h~
      zDiL2$Yrm_-dIS)pH^jD&-t~x7^lPz&Zys-YR@1YMR-^Sl`W|9Gai`R~h4b;<&Cq-B
      z2wM?v5*o0UHiUJA^#HajfSShdBG_2G3%&7P8OCsjoC=5<G@?mCG%JWM(nz}6c<3#H
      z#7hK;->(9Bu>zzPEr=_S4GLr@XUnl@qUOf;5UNRx5+yNTg>tO|C5nyMq)-xN6fcx$
      zGJ1<B(c~CWk_%NR?<_-UrMwd5bJ(m<_Hnk))uibi1R4p^RISOp3(??BL(<hmwm#36
      z=7OaZSPw&zJ17$0NOb~nqHU}e=lu$_2+`s$T7+nE`XpMLLYq*bB@>D3x8YCBCu*+0
      zja9Ak9ZF2Kj!w-dT5pgiL7vtn`5GV(#fRkki0S^3zCW>&f3Dz7@_&=dn<VchmBpiF
      zUN4JeGI^7{$%SO}CV5lx9ZF88#-<mNsaxbtk~g&^xX1e!^8S^)AJg|Y^8USwH(2Hk
      zy7{)RREqC^N-6&F8Kr1nu@rYcr4;}Ej8e3hOJS?fHZLnh)Gb9Y(K<ECN?gCQawW7N
      z3@wD97D2sMi}hNxf_8Jc5}V7FXfId7R!MALR*9%viC{7{J;p-Zyt8s4v}V$_kai<!
      zH<30`MH?*BvJedL3p`n%-J<Mc%62IGxUyT7eS%?1yG`{wmEErF4mIAT>`vw1rR*1_
      zWxBhuN2QyFcQ3>|mBqb8Y;WeuBD!B++6Pg2h5FJke7y+z`YKL$Oi3vbd&-F39TD>c
      z4Bb!G<H=znUcFz1c#Me0iFl$4QL5C2{X|;Yr1Ed=Ptp53)P8^iC*DK<&(O>MyBJt1
      zf(JW6*wd)<WnEaG8{Xma71pW33p1?R)Abm1s;)2Ja~0u)@wB?WzOo|1AQ5W+58?7M
      zgd-Ax;y<H`Fr@6W${tn4I;Q%^Rgq4V8BN8wA-RZ?w-KnvH|4gx1OF;oc`ei<vrusl
      z$N7<iSciaEj~da4)uIV&L^IZl7PN?XMR*&O-jeR&x8juA6D^5FjNFD1v*p<%TZERE
      zpAnmwulRI$WZOvAiLls?I<W&W(S>zlCz`~r3bGb&yD-PoD%Y&ab@E}Z+FEKDrthqm
      zt2}^<$hk?M_0A$&1?en3xv{SELOo_?yYvP<^w!&mHRyGn=fW4ej0R&7&n-0Q^?1RO
      zy$~;?P^c?-7j@wVBW#r}pX&;S<Omlu1TV_j<%IfVAYzIMO(P^`n9w=Yi|5fO&Lb`^
      zpjBML7V$DV#bxXjuVBBpii6@!91+)WTwF&++<+x+xrsj|#lczi6>P;I=G>cZ3wQTL
      zwsh=e!Y{IA;2`C><hGvWMt+H{ATs<h;<cnmszREd>*U3M%BzsP92fB|S*mZ(C$315
      zjM!!Adu2~k-P-f3@yQE&oB2Iyu3I~!&vmyf;<b6UN4i@mi`b#xMXlbVj}&Ki=%TxY
      zlOECM<eVx=en3fn$OS*5B=@+X<|)YnH`I@j5bvU0{2U$P1MCpLz;5wt^oZXeEq;pu
      z@gb%82t(oz6_T7%KQ9s#V9x!NwDV+LWXs2E%uh+0C_)cYzT~zJxRNw6@gw|!<Fz!r
      J;YRr8{{SMc3Bv#Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NegativeArraySizeException.class b/libjava/classpath/lib/java/lang/NegativeArraySizeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9749e1bf370c77f1387e57a4c8867117410b1fed
      GIT binary patch
      literal 536
      zcwUWA&r1S96#hn6jZM=mExkk#p$18KG^EmkYVnY@_t6HM(An6Xm5Od1`$IZ+5;}D0
      z)*ltUT?L~EI?Veu-}}Dz-pA+b8-N`Y6NoTuT=NmH4!G)9+oI349Ep9`<#!!<FAi^e
      z;zmnHC15ZVXUH>OX*rzzGh{sBN<OfK>rsAj++tuS45_B0Jk6E1`M?*k$LCg|_Wtn1
      z5Z{$b>IOr!RJIw6rgJGwM6r;BiFt;!C6#FV!>(}8d3PWfvX;{$0ZuZMPm6}Wk{-jR
      z^`9;347t)bWJkMF_3LFj5Y7d{OEk3?Nc{pam>tJ=d*Vn2x@&){YzMtq2dzeDrn4c2
      zIQax+5zNtJ!HQ&)RH>0?<YSdFQZFGSP1Yn2?7_eRG882zAS@yqlG3PCf(9W2Y`n5H
      b#_~^wQ|hrohWrFIWeB1?RzmUBu&3|^#71-h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NoClassDefFoundError.class b/libjava/classpath/lib/java/lang/NoClassDefFoundError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58e72ba3058c3517da8a13a14ed83b0000b5f4d8
      GIT binary patch
      literal 514
      zcwT)_%T5A85Uhp;%nE`iC>)I5027JvCI(|b5|wa4_uy@S5f|6lWFH>=1OLFE@I>Ol
      z5Ab_D8e`8wqEX{vy1HkotGeg)<M{=^F3Ksy2pbb|C+dz+<9g3+Il}kb@~Y#8YIN**
      zu9t#AD1LFewz?5x8NCs5zVvM2Skm)tS6!U633N)xv|Qx}LIsv^LYcVVf4_Wqdz=uG
      z2ez_<CLvy_S_Grzj--h=meMe>NXW9h?1i@j>79##BMJGgJ7fdFHeAmyjo{k$37g&j
      zXKxS+m2aGW;Mr>2s9M^xpe<K;USFI1A`#5K8+t?8v9)9AFZ~_eg)Q(p{Go(05=b(p
      zxQbzc59zfyruk-%kr)%TDKbwHCCkxd1P)=~2szHuGZL1Ok3@OMxj>VdnwzX`PqF$_
      Y;goyMB8B3NHCNDC5o?k8del?;1Tr9N4gdfE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NoSuchFieldError.class b/libjava/classpath/lib/java/lang/NoSuchFieldError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28df34afcbddf0915ed8ad9868abef928a227d7a
      GIT binary patch
      literal 518
      zcwTi-Jx>Bb5Pb{BN6teK1(n#?7{EkgEKw{@i725#uU}vTYmPm$cjy1IBC*ik%3oxh
      zJxDYdi=D51^WMySe7(K_I7Kao6hrNiKl7H))wDGThVgjTmBOD~YaQquEQX_>|DGBL
      z^Cuq3kuO}IhoL*8vPiHDrBG<eeNX662I`@A#lUVE3T~jnh^xrsek?Md`8(&mi<lvM
      zE|rWr4C#8qW3b#{B5b6w>A=PYL$NQF7{v3D(D$4a8Or@&Oah!_C|?z=XeL93gZ}?}
      zv>7V(U;o2MOEqmbJR?^za@#a(XaxR%80=vX>#^ucqgGkxJ~16Q1g$|wrE?;KEcqN|
      zDdg!fvkqB@Dre*w`Al<x!b<`vlC{YL7qD=N5=G7uge{a4QW|hY&>^J3W}C+g?5s1~
      WP){#ms4h_}1`}1Wn~3ivJ^SB42Wr>=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NoSuchFieldException.class b/libjava/classpath/lib/java/lang/NoSuchFieldException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ead8e6eec11589a8b77eb726bd7cb89385074c2
      GIT binary patch
      literal 511
      zcwT)_%T5A85Uhp;41ypC3J0U{0%#=0BZLczj}R{C-iKuZW7b`>592p^^F(5zAK=gU
      z0Vc+tg{V>EVY<3!s;j!^<^Ay)zyYc$#0Z;L;#M?m;Y^wXcNkjJo|5+X_|B3yfpVP`
      z3_|gX^Z7u?`_fawHl^oteR+07pmRdD>pFfQoWK-zC=>TjJFnqeeUFfAD@O$#LcCTt
      z2}ai)%QWIx$smnoLawhIIS8*u(z_5NTM`O=*J1;~He4?*jbN&L!dCzP!CQn<?Hgwp
      zc*>cy>ZZ0VY0Dzd>uZx=Btm-VhMpyRN;_8m(%;uz*aok|ze%Vffh1#!s~DE}kY0;p
      zhHnlTi80ZbA^Q+faval)KpO@+$a9vNldy_HB+5fB1Uk&r++<^ShP9sxC){%yDU|1|
      Pg@Vq?SdYv%qMphJ=g?{6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NoSuchMethodError.class b/libjava/classpath/lib/java/lang/NoSuchMethodError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73d9471941582a90d9f11ebbb9dd359f6ca9e702
      GIT binary patch
      literal 521
      zcwT*wO-=$q5QSgyYY+rc5H&8`7{LUhE?l5!f*LW%24&wshiNlRo1Pi(;xSy2xZnVK
      z3NK=;8Avpexag{`%2)4o_50V`6u=?2l86wtAH}n%*}@ssI=br*tUKvhdU$1wHc7+?
      zdp|(S8R+qo@KoQHO<TBb)8e)aSwha0MhUwojjOct(7GhhEg{p?j_V1>>j~SJ@sDZs
      z==0*_g^)N^j`A9W=zh6Jh&A<4rVzzS8YwIjvTfzajz8{8b1&GDkZ<b&8wj@HdftqA
      zmU0O@?SB@j6AJskfUakhGpd(+fnOo;TjR&Nfx`ksNOiSu2J%`3cEttpYA}Lb@FM)L
      zgc9ONa87a+!4e+|7UG!Z&M{}=9Is4}c@2>)#}sGa3^AM|$G7wh!YcBiD8Fzn&|orP
      e6P1Gr*8eKp@JuUID9)(4LU1c$BQ!6CGn?O=6m5Y3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NoSuchMethodException.class b/libjava/classpath/lib/java/lang/NoSuchMethodException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..47cacd0af19e9c5b97c24fca5ede6437dce53aa0
      GIT binary patch
      literal 514
      zcwU8&&rZTX5XQfO7EA>}5L7OP8(<<a9#Jj`MuS|?9!-|AftuQy{xLp{@8F5VM2{YP
      z1>>t2XA4oICLVTYX7@MWH@h$I4^IGgQAr~~*t!%qqUi{C(j0ih$eNzYaO#b_x0bvP
      zZO=_ZBNV@&&kI66kiIP(Q~Ckd=f{TxIw52`o*RV14Nc)hQt!S!-d#NFuY}aT?b>0R
      zkgU~Bg4XfI(m)a`85me5<odQN2hr6?`e$O~NJ63SS!^KKhU>+l7EbMeQ0@OSd5ci0
      zeS?OfZ@ZIL-Bg|><yqu`1Lg7yA{aw2@-5l3m1X5mgB{g|D)>SCp-e$Xies9q1eSP_
      zdKm8+KH1|)9QDQw+4~sD@osPgTF`KSJZG6XgjEz`QJ!)k&}LGxsmAsUYd;lw+;bEw
      Sl;_k!L1ksE$L1Sx&*lfy7;BsW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NullPointerException.class b/libjava/classpath/lib/java/lang/NullPointerException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7845772613140c3d6fe51220dd53d37bc5e32dad
      GIT binary patch
      literal 518
      zcwT)_OHKko5Pb~;m=Od~P*@n<0VWdS62k_OXb3@3_6>Hh&Cp|JdW@&=4lX=^D~t;d
      z;4Qp}T0IaoYFu>v`qg_?_44-g44{T$0uhFdOMcC(4p-x9H*lPuE0q>r>t-abv~*Ph
      z7DMq1a}p>mC*t#;A>#{Aa%UhspYpTAeFk>KkZQWh*IelVcLEV>-{0N7*IpkP;(Jm_
      z-C&58$^!<g>7EN4Q7k24W04`<kxF!f$xwKweCP;<Y{wmu04EvB=S53jNS|S|^Z)#H
      zhFs|zrmsDz#`W^RNal>>3eD>qkzXJNyYB|xNE}F`Son*7$8=!}v<@AWPK6la<P(%d
      zut1NQwa6x^vP+(kk5#5fJ%o@nS(`l2f`v9R6eVXMEF&9|(vWk41|bbLUfG^v^(RA*
      WdX7Ve{0uc`Fi{?Bq4;{(Q}_U}_HJ+h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Number.class b/libjava/classpath/lib/java/lang/Number.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb609da71e90eb196b1ffdb03c1fa1294f59f9eb
      GIT binary patch
      literal 967
      zcwTLiOHb5b6o%h#E}bjRVYuI~DzFd`@1hGq6hqJiOVYUN%#@*6TAg-K*tv1z%BcT>
      zjWKFsj6c91V4^F3iScb`A|s(qpY!$fob#UVeEt6C%Qpb?m`Nd~AUo!sIqR5ib#}eJ
      zTe4~?B>wZ>FYQ?6AO%gKGxFNr?1ojdO~*bkOOC~0KYHD?YQF8c`s%WRx~I^#<hg!e
      zy1}OD)UD*p!*@fux4&O0XcfC^2fjk=(UL-XvFzBc9o$riPfc$sB$m92m4QMrk38BG
      z3Tw7&HJW?aP%N%_WeS><<$KeqEk<Rsh@&TuE)-ZQ*tY#J{P-rXQ`c^G7U`}kWE{_}
      z9(lNf?3Ux1EkP>^xr$e(+L4c&&6M_o7SF9Ldq15=KL%LB-}Y)PB{t~V@ana)wPJ@&
      z=NkQ-3mZ&~F)_|3i5Rm}NOPUxS;de=Z#WCC)4Wfiz%K%*A`%F%Uo!bMX~bntHxe?h
      z8%a5@8=5TWMoKQ|Mp`cFhG=q$Ovz<3Emz2lTqUz&k~t}nc`1`^QXx-?MHXa>6seN!
      zvP~AnCOc$@?3Bl3mpEj%?2<j=lD*=Qee#6tm#5@_)W|{c$sq~IVX2cNvPX`}GjdFx
      zljE{aPRN1&0qyUj{dbVVoCvTC4YzRvE7->!e8gS+pzkNHp)-o)P{Ols%m)j!iZ(g(
      z8Qn*vvQgkVhxZ^#%Qu2J<UWMIKaVc5gBXhJFh(Lfim^yw91~4}xu$?N^9hr$5C17>
      dk$119y4I-9^%<N!Df`Xw>=!3yPeoDFe*qK@t?~c>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/NumberFormatException.class b/libjava/classpath/lib/java/lang/NumberFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..447205f3e443355bdbe22b4877f457ec03498ea4
      GIT binary patch
      literal 529
      zcwU8&&q@MO6vn@!qlRgkrInkol^P_`QZd4^3~6J{{%V(LV!RXcM|y>zmuV%m=mC0y
      zo}pI=qH{;VsG!BY=bX#$eBU|u_4D}!z&^?;#0cBBVj>!jP*&q291o?}b-l3&PVPtY
      zF0fsdf<f3>Kt0EimT-<dD;!I;;0SqNdbV&(>G@n=^^OU2PRMp#<p)9qrf@=;c$+*N
      zemuSx2+5YM?4V7ES8FE0=(yK1jW|{^NMo6h>)T4sX1WwZM-mEscf<yQZMdF48o`b2
      z6Ds|G7HJZS)o;)s@N8u@Yo_)rYR@$u*w-$<AVPZJhTceaZEacp(_l}xp#olr|CcEw
      zkmQ)+DuyLKq!;5m!!HLMiDRNZMfNE|a(t&b0xcM5BhOi824NM2NR+3X3$&TkY_h&P
      b#rjW$Q|>v76iPE{uAs9LHX`%QsAua7cK~uH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Object.class b/libjava/classpath/lib/java/lang/Object.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40563bf154986ad9d85d4fe2e6d98c79e3b3ff8f
      GIT binary patch
      literal 1670
      zcwT)|TT|0O7(H7Gp(S#^sO74NEeLo+#d1fGaw%$&8GLa<yR>0KQqzQszeE3mPdw;L
      zVPr-}AN^5|-zJ5oEtr|?Zg#&t-#O>|^5^gO9{?WUtpp!K<F2x=jB1LW9$nww<w=X7
      zc1P6}P5sCjs=|>?hTy_sl4mW|&~p+bhL+-;jf`m=DBBvv`sa-lO%1E6&g1spHa9oi
      zgXUEusc4&usfzEyrr*k_IdN8=KS~7B+?v;v9G$m>Bc2FnQv_s`T*ggD3}Xy6x?!n1
      zM+^aXF{^2m;y_VJPIY)W7TJ{0&d^<iis=?NO*?Dx)P*|2;U8>8qr7e5N@9_Bl+M`R
      zrLYNASFI@`Vi^g`RP{7NYY9_#H!7i<p`(0z&Q`S)H-lj4m2nOALEJ*Wgxlm^nOGTj
      z(8(Z?BXMPq2XPk>3E`5uxu7xzF+`F3ie~fm9fpC+Bveuiq6@<^ZepZNb>Td+DI)I6
      z)G-f9xsuItJ;l%&p05Ne2#X43k7YEVF^DI4CgCYVQ>pi9Zps+PbA~$0SmKB0HnxRh
      zSCE_#6ebylFC+OMDqWbC5kjXRH7lb9t<)OfWzpD@rS5UVrY2#_)F?^K(0O?!3(iSc
      zV(9l)hhpP~m9Vo}!z}HhK<-FSz85XR&~Ax8ByJ?^WM++986&k|nuaN1l_6Aws|ct?
      zoVrcbdxd~kLi+16=~tGtD18OP^!FwV+f4FBRs42!?yV7V2Yuv-`_#jaDtdjWrY}G3
      z*PxbGL-dLm_KgM~0yNe*8wUu|D7%NKqZL?_Xl0t2D7^FCL{MUGF3jXTMW3f=qqhUs
      zX%wj@3ExL^U~uRQs{O}R$E7LRxRbKo4RTXDs~ZjtMjh-gKwZU}#VT3TOubRK7$+0N
      zS^pWjwg&U)$)oQS11GrGIFrXH?L0cgSRT<lroNV8s~+tB0=7`>HMPyjGUluSX)sWg
      z$4rrAP-tVHP{TfZz$6dYTm{&)Q#k?Fa~aq#0{iVTPP#Bo!aQD3vHV!TqNge^Su<jy
      tUi2(qSh_&xf=uWPD_g>y<~4G~wP>B(IKi8rrH1%?9u1)jvlC9##y{Q_Nf!VB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/OutOfMemoryError.class b/libjava/classpath/lib/java/lang/OutOfMemoryError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7bcaa02cb147c4f03b390a8e201b672cd906a4f
      GIT binary patch
      literal 509
      zcwTi-%TB^j5IrLWOa(!-s6-d;022vu31NfpfGp7NFL;G(N^5Rg6aRqUaYdquAK-8J
      zAI51R(O_KMdEGPT%*@Bv>pOrtN@=VRN)O^m)EwcCYP~S%-FM~0)6b_`dpZq+u>bRK
      zD;<Qw>5Ac4xiW?j^1jqcIJVTj^4#0Y69QckvTe`x1K|d?a6*~X^|#0A^wT1wn#xr{
      zi;yT+Y=Y7D?xcwX)-y1%M#y!T`#PKqq`naYM-mDhZ^#0IWjJ3HjbN;N!d~b9@f!rI
      z{Oi9TXyuL?6+4o%BDqbT)sF=JfCy&a3-wT*sYuOQ=01u#Z~$I|Z^>6g5-Ij+&Q`F>
      zkD_(hX1H?9p4ca=Gh|<4NRF+^9%#Zq3we$*a}YLAh)H?C1wo6E5jIsloMCI3;hcLe
      UVus=zwP1*%BDQ1kow#TB8|E%)7XSbN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Override.class b/libjava/classpath/lib/java/lang/Override.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15a0dd466639bd968cb91fb91658d169f92e9a6d
      GIT binary patch
      literal 378
      zcwU8!K~KU!5QX0$Pyx~E%@_jlz|qFDCj&JeG&QAg;k48VS+Z<N**4*?dGH7Lql~*I
      z0*59}GBYnT?|on2AD;m3ap|E(xLS!)1WM>-5S5(g@|``@3I5T2vEtNtXcGE|tI#?#
      z!pKYqk9$dIPqHFU`AI4!bpMcdE=RbI3vJ|@XL2hSiVwLhVenGPj@htw>VeQGg(@s|
      z_>c81Q!?GzKywmJ<55WHRVNaWFWFe*ZS_A?ytc?>w_!(n4U^|+JR}fKY&YPl2Jd&C
      XqGk7uRc-t0FwW4$xs!7c;{yH<v+Qf3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Package.class b/libjava/classpath/lib/java/lang/Package.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0b732347d5fe792061ab53264813f0b84b36ab8
      GIT binary patch
      literal 5278
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/PosixProcess$EOFInputStream.class b/libjava/classpath/lib/java/lang/PosixProcess$EOFInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9e9c72bafbb6c5dc5aff08739b99a2f788471e3
      GIT binary patch
      literal 567
      zcwUW>O-sW-5Qg7L+NMpTwN>la#e?DpV(@J7QY;jT7Aggg+jP;DG?63~f0P&TP*Cs(
      zhzR~6aW)35;=x_^V`lc*d1v?K<MA250oE)Sgv~2)BV1nu7j8F<)onKlJsHOv$EU4!
      za6L|XNhHO{LXI$>9#x?`6(AH<5GNw=Bw?%bugeY@YIwd1RB}Wxw|Dx4Tr(U>8-%h0
      z2Sq}mk;Y5xnstyzfl%qFK%R_80~wu(fzJtRozN40UqnjVsndpuGT)b6s+bqfH%xQ1
      z33e|WN1kjcjaH`x?rYryryT?`YWgCMWo%)EQ2)Ci*7UO^tg}v&pOs6~VtHrs&f-BR
      zvE{;mZsjM?`2_X@X71TEP~q9uL3)Etub4}{x;axYaR>6d6I8#kf_7$z^K}5VG&lbh
      g7BYA*gAL>E7x_L#8X0L|F`esJN`+~58LKFM0z{{6iU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/PosixProcess$ProcessManager.class b/libjava/classpath/lib/java/lang/PosixProcess$ProcessManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c4024141a7285496fdc0dff81e0e39a821f5d09
      GIT binary patch
      literal 2643
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/PosixProcess.class b/libjava/classpath/lib/java/lang/PosixProcess.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f7c52649fb9918c6e6ae6728ce39d9a12ac308f0
      GIT binary patch
      literal 4143
      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
      F{{S$UmG}Sv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Process.class b/libjava/classpath/lib/java/lang/Process.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6c01653af3bb77ba492473afb5a2bb501736b00
      GIT binary patch
      literal 520
      zcwS|Z%}&BV6ot<~p;A%)RPZMz?!bk_xYW2YkPuN!Fzkmi!6BtXrc=eoa%JMe2k@bc
      zx1~xGyO?w5+%Na`v|ryJp8(ErWFx~+nek`d_P9T7KWOEOAh2OEl-KrPJQJ>A$X`ic
      znrnt^vo&I{Zq!6L$f8h04ta)BU;5%coR5Wm<YP}TRQt;1-iT`%-4oL?PcmSr_5Urt
      zq#09T2BBGmW@xnFbB0E<wIZczr#l316WsGtY(2%M8VTCbTIpZZe&Nz|m5$T&7@W@1
      z6$>MkPx<Q%$LqK2`9^3RE{vG`K@0`4lxD=ekRsU=5g4srY0OZC+7(?HB`qeo&Z1e?
      z31}Ch$EJ$D7@aoVE=U<^?(`iSZ&YO9(CLr@x3F-BO{$73h;$3l586g4)-o!wRuipZ
      Yhsa%GEz&)58stQseOd|f4&oh$Ke`)rI{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ProcessBuilder.class b/libjava/classpath/lib/java/lang/ProcessBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10bbc8183bda047a8b09f3a098289afbb6a910c7
      GIT binary patch
      literal 2592
      zcwUWGT~`}b6x}x;3>n6j0;Ppmtx9P!AQ3HM1)(2Oiw0;LL;<x9$zADSGLzn!bTx1K
      ze|)Gev8Zdg`qT%1l*@BxlF1~Q#6C=N=bU@a-e=!)Zt~B+fBp?%5r%>o!^LCciIJ-q
      zRylW1*hTI*x9Vo4#D#(c!)V*Pb9Bs$E<>th3R>8r!Eh$;`As`_$E@%b2Bm0MtA<sg
      zNZ(a=%}OqBIxaa=1+#1!Ze4JOnJ)KgzKv9Hg=v*n)+l6zTTe`3TUBlm^x06*mQf@B
      zQl}*%OLX30!TmBA*a5@Ps%e?-8pC*|n|5}O;cB-vlC9jCxNVoXia5?|7{w$*Jd@p1
      zaFIa^D>aO1;!t<ESRfiIUdI~>E_KLVXgDsfYIqZuNrp0a>2zvbxTN}QrWZcjYf^Cm
      zZ%Z2QFr1GH*-L@piiRYHB!#OQGRTq`1V*wmoXcdp1eXDG8b+YW)w>$b;H+HbG$<IB
      z2V`1&yIwuwV%IpT&^eFg?V?fHGlVJMo5qCu$aEN{L!3H$k4|W^Gq6!>1y5!UqiRvH
      zjOz+MYKiD^zA1#!a5Q`j$~a^=^6aSOjtqWZuY^l&_Um{A5LJ|k*gD%|?9<Tmy$v=<
      zg&VKdd4p2qBJ~;+G1@AoJ=c1s(=srAxw~&(c`V0UW4R%OEy%%*sy9P4qn9!V15uNX
      zYY11idc-#Js~b;?yylv=<tWG#R;!@RoxqdAHts3dVVDZ><Hfo#-Nu$-8D%as+{XiX
      z)76FWZl!d-@7|RW?1JY1OS&pM&r!oy_?k+iS(B7E!<?HPso<dVM(}h}iQ+dJzLis*
      zDn8=HA2y!yB16m}rPP957ey|QhzjhKXhCM8Yo9>r`cEJx=blzEIl5#`d25v(8t>r!
      zHF{{sX+1)=QJkZ9-!q1B`u@?&1kCEsF`@s33;SbJr$|4?TPK*&PceG}U5}q&UY|R`
      z!Y{Nlj`!$u+QVL^=tWH68q!$8Wn9M<n$<<}O!`^zK0W}vmCy1TttC6(qSERoVzory
      zlFj2Lo9zFyImL%fLa`8`)h<G7bS18b2xS98S%P0BSn33P5{R<q(a3prAgTX`g=Yc8
      zkY~K@rSoe@Hq*%@>p_wmUXuH?l8}n0oc=73PW8-pDR?u)ObM7NJyI!wR0?i3rMlHj
      zuePMn+eCeYZOXC}LQn$)HK;vFd00=)Gu<`sM%J7pE&Sm1aIG^vO!jH(L7!Ta9t8bF
      z(uuSL{IrLW-p%M?B%=-7i703O=dR#VpWx4W%1O&!>n_KnpyNK}$XS!fcj<6r_#ARl
      z8NTq+9#R9y{pnw^m7jZwi8<L{@jp<A;RW`8$02J&jZq+A(`Sv&@iC_0h9J{T$OQdI
      O_zn*|$cJ9+_x}OKIv5B5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Readable.class b/libjava/classpath/lib/java/lang/Readable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c0e440b8392178a26a3e80f3462fbeb372a556f
      GIT binary patch
      literal 197
      zcwRg8Z`VEs1_nb09(D#MMh2m*#Ii*FoW#6z{h-vul*FW*RCWdyMg{?dxPMYsYH|r9
      z14|K50V9Kih7VXSFEd}?IU}*isWdGuwa8l2laYbTwIVsSpd>Rtub7>IlaWCftPrTq
      z(;qGaR27_GT9lmXmYI{v$iNG;RS%?=jgf(oftdjW7=eypWncsH*?~M3Ak6{9TtGGx
      G12+It*e?A5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Runnable.class b/libjava/classpath/lib/java/lang/Runnable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..417dd2ed2f743860f005c5cab534b8bf903a0afe
      GIT binary patch
      literal 127
      zcwRg8Z`VEs1_nb0PId++Mh2m*#Ii*FoW#6z{h-pkyu_rORCWdyMg{?dxPMYsYH|r9
      z19MSn9+1?~3}a;A3eGPrN=|jl%t>Wr;Dzbb18HJoWB{sS00BmzL97gHAQl5VkYr-u
      F0042?8^{0v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Runtime.class b/libjava/classpath/lib/java/lang/Runtime.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..620f1c8af9fec2a358fbf09aa4f6ef6c57bc51f0
      GIT binary patch
      literal 6772
      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
      M!#Sr^nU)v*AMkoE&Hw-a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/RuntimeException.class b/libjava/classpath/lib/java/lang/RuntimeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e7f3434dd08565e2f63a7688cbf7a7215365527
      GIT binary patch
      literal 786
      zcwT*x%`QVh6vzLEwpXsAN~!PGs!E8kBO>Y}q%5==Rx)iTI#Tz_{lMOPcn7N{79PNR
      zcnxvp_6Di4nR905e}3mbXWl+uUIDCP-arpw@><-9m8P(+R!)7(Q#W$&p(bxVWm^U!
      zgpu$2uM0xLm5vh4igaAwpB?TJ=!h^-ur1dUmRAu?Uq+uUV+ZE?<2xa?sVwDf5qfhA
      z6+)z7*QJSG48~!ipD<KZmOSxqs?sToYEu%DMZ3lg1h?URco^{-$|Xz}|2DlrNacRq
      zmpn&VR~riz-7clujj&f&H~1wY<hzvqI4L(A`(9fKd6Sx#CPZt(ciCU6tCo<?{R5fP
      zkQstmvVEr}_mzHWs`FjT8h|W#g#3H_Z-^qs(coPV`VirqN6BlPPu4gR$7sHVf#*On
      z#H+~>*k<t#5}d``A`BxLKzTSJV2hPn8_O@YFxp8da?No-7;CFSg3iV;9yI5{gselh
      ztW6vF#ibS|I$`HrbP>QZZP^#h2w^&#!ZfQjcBY%f*-mPmEy_PEYL>Q`32L&R*!qu4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/RuntimePermission.class b/libjava/classpath/lib/java/lang/RuntimePermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d30ce604e52c5eb8c405396d5a793ee67c72bab
      GIT binary patch
      literal 582
      zcwT)_%SyvQ6g|^dB=%*s^@ZTh7Z_Yuy09WDp^DY+r*W(!$wZQg;0O3U;!1QO=+cdX
      z8^1=pNsC=nUF6O^mvhfKH?LohPXIPBYaqoif5ES~<#N@tjv}R{Ck{p6$uN|@GLT_d
      zNC=^DqCo0vYm0}{8B!R^p$H^*J0ghj$=)^t+h-^=eHCi1bcef<$e!I=Hy;n52MoDQ
      zsibZ&RG00ccUuQi_3A4fhD_5x6(-Us=3!!-p=3)XT9MZk!7=Z;f}vvj4q0+CCOjBs
      z^tlWvul>(Ob%x^Q4{C8Q5gUoYu=Go~-{TtG(WFJrX4{VfN9@QrO>M+`Jzl5(&ge8y
      zokJEmdJRG;jM2y9d#UDW(jc6oH@CWWkHTHTDN!|(=`-!VpiEt@&%y*MK+;WOiZo)a
      g>OgCkIO#vN-bm{`(OT@YMzrFtMqQk6I@zB22ABJU9{>OV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/SecurityException.class b/libjava/classpath/lib/java/lang/SecurityException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f49f047647dd0d5f32d5003b7c2f7e826aa3103a
      GIT binary patch
      literal 806
      zcwT*x$xZ@65QhI!U<~4hg8P0!G#cZ<gNB&6BpBksg{x`C4zz(8Gt=X8(1UN}iNu2s
      z-~)K_S&Y@gL=B>suIlc;zWTfR_2c;kz&aK!bP*;m#kE+g3#YnvBJIFa`fmT$mRDN2
      zj)fRu;#+VWI9fI2*F9m-m!1;!vh;l3pB48AbV%sibsb*|N0&uCknwZ<{^-iLO+sQ@
      zIZ77@-MOVQA-3yY$RxVapF$G7gn^QB<WbP5Nbgis>XMKyxi&Wt+=lnjVNBPQPna(K
      zV}6T}$^8^)PdU}CrLyUlG5v<wtZzE}5)twpN`IW3);#ydc!_uuhBrpA8q)Vgl`Y0?
      z5%?T49jgdqxqonT1~)@Up16T$%L8Q|o&EL1RYSl$c%1yB{8fk}!O`Mf7kUumoX5&*
      zicdB;632MHiN2>$GQew+BT!)R4hA_(wL};~I)w6^B0zzaMw`elH!;#qD00nVNXWKS
      z5y50xjE2p5MiHyXmW^pEzr51KcstDIqKgnV*OGm~EKG(llTBfo)doA$$>MA~^`0$0
      O{9)0sjK%q|X5kaLaF_A`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/SecurityManager$1.class b/libjava/classpath/lib/java/lang/SecurityManager$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..176f5ed9ec620c09e7c734c7b1e005be2cd73672
      GIT binary patch
      literal 871
      zcwUWC-EPw`7(H%6)1`rCr3^;d1}uy;Alh<=21sZE38`b1hI;R&R_ZMz$Vn^htw3S|
      zalr%dP>9bVz!)v!!uIFmbG~1H{r33_fIb2X6^8Z^pYv|alc;+r!kLo!$v#hbB$U^;
      zU^2MB2?ygN5#|=E44Va-m5T0A$+?V0Bqq<oT&4*_HJ{4N>rsHg(g?c@jX94!C9+(}
      zQrJApCpd|SR(&iJnLlOd`TubDx3V*0F!$1lSOLXyV4<e1RR=4uZ5X)hppF)U;cIGR
      zAQSOw_GT>9Yd(&J&L$0cJmN~~dkLDlHinJmsd#-#+E6p9r{#AB=UcdI;|4Y@Y%r|-
      z*~p)M9BknxLp>7tP^E8$%1;<}`~?**YL|VO&QvH~NS$r#Ty77vfWdj0Btq@QJj(<X
      z(|DeQahj2SU*ywtVqu42eQALXe01n@gi{e74|#Y@;6P?M!=nXB{twa_p+}=JXk9?X
      zb@i+Ox2Y#Z|FuG^4u@VZlJ$h{2Az%I-YG5x_fO#lAJKeY5U<c~7Xs>p*~S`KT1a$U
      z#kB%o$Mw?HLpt?aE%*TU6WZ^7`KW5#+&ZJLm3jlW3f66G7qNbL0GjY<H*p7dzXRpi
      B)EfW*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/SecurityManager.class b/libjava/classpath/lib/java/lang/SecurityManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c8c93029712d9825061cf4686b26f064855ead8d
      GIT binary patch
      literal 9195
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Short.class b/libjava/classpath/lib/java/lang/Short.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c6abf13070c0fdb8c5dd13c3c513dcc5dbe160c
      GIT binary patch
      literal 3282
      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
      RH(B+w(twh9mgOhU_#ZJ{H?{x(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/StackOverflowError.class b/libjava/classpath/lib/java/lang/StackOverflowError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a661920e791bdd726c0a88d3e49721dbe9aa0058
      GIT binary patch
      literal 515
      zcwT*w!A`<J5QhJO0;Yl>3Mf$%;{`C07>_6y6r({spuI1+!fI`kZ3{6zfY0NJ#Dfpu
      z%lHPyX(2I6;$dfIC*S=4&VGEoy#v@sIfWQu<6ewJ-4@QE-t|TQ;c6uHo$ZcKw03n0
      z24VAuu$1-#VPA;;P&qO}2suw`C2UJ-Pr1&`*)f6637MAbc)oCaOW1)-jGsOWFV8z;
      zLh?{K%5M_lm8wNBTJEhh5yw&*CKd_V4r^Zqk3FfcMbDOme8=sxfnXcH&zgomR32fg
      z^WOpuLZR}D(8?J!s#a)N2n|>GwO(j32NBG!8|c1ltI)4Buf7+~U>m#&|0to11d^On
      ze2Za$4}~jnOmpXeGjUGTCdj--NS33?8EC-35prCmrx2Erk3{*2Gl3?PA)Bo2PO$n{
      Yq0KX=kwS4w%@o3_h*D&}7R{`G12S!Ee*gdg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/StackTraceElement.class b/libjava/classpath/lib/java/lang/StackTraceElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..623d8d9e2a9cff0a58382f7f7409e24362610ff7
      GIT binary patch
      literal 2637
      zcwUWEU2_v<6n@?&Y0|hUA+)uWwuGvXY*H$SpcJZ7Xf37%Z7EXlW1DW<h3#%lHpn>6
      z=pcIQjN=V(gBMP3dZCVO9dZ1)u$^&6M;*UL#XsN|{s0-zd3Q}}x-ecO?|ILA&U2pg
      zwV&O1|3d&fFcn6Pz^2pMS*^>|tf{VHN6ViXDQJ29kg3n;mJ>!$AYL&zGJaamleSi%
      zL23=VYgjKBnrS?zjhi|d7v*(SFBA>iIyP`nKpYl`_1ad^(JW_FGfR3%tNZlQ*4@`$
      z7Klt5raq+2kZU5hnn}U1rn&{9reWzrrI~TPKu7}u^%HvD)cCd6)QUy2n9-eSd&0$t
      z7{wvYG0u`G#sq5j8J6Mn2y~~`f)A`!t<{XBM+Jht_Jkfq0L=;-uu&k8N{`loYNtR!
      zjHNaO^;pN!W(9Fqw?)BvSGq$%0viO@<;vNNxb;fp>^zl=65_k33_8;WW!9FvMQf-w
      zb$PCUoA_Rz1pkj_AUzr-f*DS%F^o=u_KM9=$uy7JhUMsmL+A4PtV1o0po?-eth3bf
      ziKJGTDlwa+V<+?6;zB9!*o7#v*ujuH1sZ*raZzuZ(w)9?^BYoWzxKz-D7R_?sPHrc
      z3Tb;QxwFyWsv)TVcL-di^rB&iIJS!$#(sgO>SzZ_lao3z--l-Ydr-kcI6xz$&Cco;
      zfn@#iSfg@Lx*6dhBOIb3N%h{;E`olV)KmnNRm>%wbXiC62xW52I%C<-TFGI%RLJX$
      zI>@L)j5=`3=tmWFW0ycpaa^GJW|own{!B?Ti&cGc7ri?@#=|kHU>L^*w)t52`A|mo
      zf7jW2q6gm5X{|WzZj`_i3Qpq5n?xVroqL+2k5D4^4*uK8x(W8$O}p>bg~y0Gx@JeV
      zGbDZJXaeXLLM>VlMug-#`T*7-N?S?$OLBs@SDtb2zFwZM@!ry@(2o{`Jex>*oqTKQ
      zOsY$`UCk_@MQvR`tJ=AMc6DQLfgTz|3+Q-TM!A#z+bJ$EjUdiYY?GqR5Uz!du(27l
      zxQkwUTuf}mHb6?uO-PB^)krBtx`33JVNgoUF+`RPNP7%lp?D!WQ)*{pFq3Tz#&29f
      zI5>x3U<qnw8R6^-Vpowpk=VY3yFaQhO-RfaDcAF8!%M{Ff@HVL#VfN*NhU%{%%nz2
      zipMS`83*b89`bZKb<xT8A@yCfyj2cZE0wRxAc||?1rfLxyM3Hn=c}AA`#SIOjoe-x
      z`AuKv`+S{~)z0tuI^U1IKF%H0v_J55?k-2ZPS#x33s<r4#1eXPOn(_I89o>Bz;R}@
      zjA$mleG$FhP2txhzh)ABo>9v(*0H*U?{jEkx#J=tiHGM9N*wmAS}$XLCcc-T__B!H
      z@k~6;z?nrHsU+Sb7v*zWqc2GM63zIEM)+&u{|!3vEp_ZW?8o;wh#zniKO&Exa2h}3
      z9IoL7{33I1a`W<Xj^KGbipONBXw|*!-yj<vrT)w(5SI`N%x6A^800jv^m`A-E+WfJ
      z>DGD$Tev7Bw#$bNTm-r$<t-GP4^)cZK>>kZX+wUaUHqLU^$)b-Poi?22JSEP(Va;q
      z-SFj!@5kdfLFDSGzhk7UA^Bu^K##~f(56aqr<mD!Rq{E-XOhnfiFyhCH?8aqY@)L=
      z32k1$D1UT4@Wb9DG^s1p$rZWDN?;BVm3s43)m(|_sv0*zBhrx4xTGKD53Yy1#~aTW
      a;f4t>tS%y74cEAeTuj!0$5fYAlm7tbAP4^d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/StrictMath.class b/libjava/classpath/lib/java/lang/StrictMath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e56d06760df8731ac25a265f72cf1040cf7790db
      GIT binary patch
      literal 24574
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/String$CaseInsensitiveComparator.class b/libjava/classpath/lib/java/lang/String$CaseInsensitiveComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffb4541d2933c68f3624126be835b411c63d481f
      GIT binary patch
      literal 743
      zcwUWC%W4!s6g{`+(b{QE%tM{=m1xvS47PC_anmAn7*v=zt88k<Vyw`qlB%8vfvo(5
      z{6;oz6kLdF7ygC6A>OVYQ8NhARNY6NdrqCAzyA328Nep)ga`=hd*VPOxzMAeS6HP-
      ztEq4@(@tuq3Uwe;v;Rg|Q5YMdPMG_Re?Hig!y-hJu;{zvLgmSy_%pvwlu3HhDv_&0
      zF~}v;IA8Xqb;{_M*%Jb76V9bZyF%!qFY>W$yshmX?Y{W_jnI6gv??AGYMr${p`Myo
      zGC~dWG0tO_FxypHJ{#{3q}{0$=DTLd0)l0@o;2&lYvl+V-T!yJMF@w!;`zIs?rHy9
      z)19>}MEkF&szf5Ra5cs?Tqi6{ICo4o(#FbCpRm-Kx*4+(0<&2<no=rH9ulIS8QY<J
      zs!ESD)!h9OOo%hBrA>3;oMh*%fBM7&@arN#10iQ^oJGWOhX0iSF)x%a&7C>U5{|^N
      zvHlSk-h0Rb?@ix)heh7w3V<bC<Vd)L%ah@4M%PNjy)S5O@cMu&C#N`$J;!o|n{brb
      a4epW8RyYgzyXhxyVU=U#uhqhBw0{E8Laqz|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/String.class b/libjava/classpath/lib/java/lang/String.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..873c22c546dfa93f852769e72d891a37eb64f4f2
      GIT binary patch
      literal 9041
      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
      Dg;t6O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/StringBuffer.class b/libjava/classpath/lib/java/lang/StringBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fca27a3fad7d63339c786b130b379e0f7385106
      GIT binary patch
      literal 10367
      zcwUuS3w%`7ng5@A?_`q6Kwb=m+!-J|!z8=}QXmNk;S~%d8XkryWJo4tAen)g2@fBL
      zO6_*HtL<vLMRAo!H+@j6t&mtODzsbL-C7mhZMWUEt@W{V*V<j5wKe^|bI;t|OeV4G
      zPiOAjd(Qv+zW?_;H~#3O@0<rPPq^IB1jg<P?F-H63`KX&X-vi=(VZ*0+uOr&Hw=ON
      zfoJtQc7<D$Ze$6Jk#{4pIgR0XB-9zXDYT<A>_+w=teTEcyfM7DI~;8d6Hr1f-5ic5
      zBC+VE+LZ!goxrG?STvCgMU$IDo!w#A9Jl*tS1w(-EZ}O5bw`u5sFtqx@k0Tvxkex>
      zLAc>Ida{*JSFT#Ud{f=V?KR6Ame<s7Y|_cDd|Ff$iAIu31@zLHn+1%TSX<ZwfnqPl
      z!lWCewR}IXE)orI=<eDPj&EcW1Pbe7t)yj$bfw?wrjhK3Bm~CQWhSc9105xd{D~Zr
      zF~y5~6bNLuhW3P7BgumTzS1FED`#%b!3@lFqjV6<)>AJ=BagvmdT3F(7qc*%5O;=?
      z%qr=UU0Pe)TqBLp6UjI$K170m>6GjA2T9L`8}q$bfQ3X?XE?eu*&*qw_283O?8YL2
      z(F2>;hmsv$ECGS)U7-Wy6H;JiErV2hu@uV)q?H6LPg>-Xqp}mW^T!RR26-_;a>CI>
      zcRXC9_+m$`@?teRDlqub_U>rnV6?R(9*ah9;vmTDB1d<1ch%Tj=On_(I%$p@6ks#c
      zX{n92g%8wsC+pi+P=vK5Rvl;!?@3ZjdQgjE+8+(?uTym7%D_wgaz%J6-EF04YKTRm
      z$&|Ik*>%|HMx#K{U`s=-$#C3@dTbJKmy*Y5F==fhtO&Qq;*>hqQ``*f96`q|C}CmE
      zUTnrDR+)ZoLyH^R2ZzzYL^9mvMF=~{q)<E_I@lW9L-YilAz`I-Wo?FAGPH6M@z(nG
      zc4CzCF5bE-N|ftu3Hq5spQ%Sod5v;D#YGKo)mn)$!TB26vnR~^$}>owIb2F*BTCdp
      zyE{8Mx%POm7Zl{#$(Xf@N>J(0y_Fm}NiTMzJ55|F=Y|tUR>gMg8k|K+MS4WpA#l}D
      zJhgcQRByuZI}KxSJ`P`71a4)M4hbw6c00LicqLp^VB_Q(UAn<fQ8=QsJ6YNhfeBW)
      z4v%ZJg_0q1a7=}PS-N!ue}0DRXuLa|jlUt4+C!ZQuB<y^u}<DOyh@ZURs_|ga)#Fr
      zuNP;>=e_tlG*Do2Nvh#S!gufU;tTj9<zX_Ws;IkE7E#JbgENwW*Np&tKaRQaz@WNV
      z7vo~R7Y|bFD_xgCE9R*)+TF$2t4F{-j+1VjAY%tstnQ43k_>)|J4lAjjNLA=#cIZ1
      zIRgGy@pU)8HmF9djCE6cV*#gGK!)AY$(8`>*I8}h&Tul!Av9uKc&&9-Mc|0~win;T
      zqeOQ+yr(n74PiDR{J+xEMVK6HIf?Ea2~`4onW8|3@OQlE#W{9KCPfL(vm?AS60KGB
      zoG=Flm2~6M`c*bXqTH8_X9U1K`l1(wDB?!_eI5e-iMunW&Q`92UOBF8-=Qi%RwPP;
      z5QXqW8G0kp=pj3|r*dmnX@(*_VjBP0i%WPmedotBJ%7;pzr092&+=XnSUCLt5zP%S
      zAtOq7i6#6{dT97UBOi~1GXp>K;@{Cn;V8R%eLDqtL<TwS96tT!<KZ({J{~>+Nt&D<
      zSX#zuu$C?SwHGhr6^`4XD{8GJuX^zsUZ=r1P7xf7(p=Ws5l+ZZ&wxrJa!z|Z)}<od
      z)fwrEP&DOsh7w6@$Y^KK|MubvUg5#-O)q|D4SA8MOxS%iuv1nPXK1&!X@WYZXk}{O
      z;RJX$ZSWklnsdTKH@Y^)8fk<h{r1PYJKGvV`{+8GX0OfGtUuZwk!1a*x&Eg#2;k@a
      z^zjS6dbyw5M~Iaxw6bKyLAyl|A)Z#p4=qY#kf$-$9d8Y<j_^!h;M8h1D~ox=gbocZ
      z8fslArrc(3a_K~&!AqYsl7s)D>0W+Q($i-##?bxLIv*C%HJt?La~$1SNcX5rz#Yub
      z@5T7X<RU+PdgvS2k1QNOfUdmOGEBfk`eq1IL9C^fyw)4+#iXG5r0WbO58#YuE^s>x
      z+({}NkyvA`^$Lrxrb-nVb(%u$Bold6sYES%9MjJr7z{oRQnW?NDAV~D{Wn=Zi?RWU
      zV`(RFH%a_FxX+Hqz2y1(9Fj|I$)%Wsxk~apCHY?3$vRg{$$HrnxJsZ873uQz>K+ua
      zcz>Dy2~=s=bVL(=UU9ttw*%@-Aku(`3G@Vc<Rl3`Mdp5)#GOJF{!ywm$r5O*RgJ5$
      zoYW~Hl2;Hl8eP#rNGUi+Dh#+-)@fT%mc03Ghqqh`u!IDrHqTX?vsm-<>ARnH?9Q@x
      z*Vw*Zs(hUlG<&f!Jz9Q35}$MMoMju7g*DQ{B@`_wtOsc|o4w3D2Jbo4HWB1CPf4|^
      zCA{fB0e{dW-h05jP7XGa!CQ?Mx}$Gm<IUs!R|b@rP8k9Gl9>J#M&T8T{?|#+f006O
      zQdqr%3cO7QyyswinXTY5)JX-4P>%JAaXK|BRj-$M2l&kgkZVd8r>Sf%7@$&yyr7&E
      zI())#5aPGx`LRI}QjZ2DWx0|vN&>Q!K3tpTAyMRj8)d_dvf(z{aGMoeu~Inq9JVy|
      zqRG<N=)=}@m8T$EOhvw!=8#cr%P6*G&|zQ6xQn#nY%3*V@@4FwM7G~N!NO`u*bSDj
      zSw6#Ww)Nr00cRDGn;@2;KvZJ9sKN|UEu}87@EjT1Dy8yOn{*6cg{j2p@~WNg8Kl!r
      zbSRw?^n{;H%j_(^LBS>U@^4Bj8={uHwvN13hk#g*sbYg8TBg}bO;c3xRRp`hHFP(X
      zEK7maDoF~1Wj{c6VOI~_WoHpPi^QWC?93Y+L>JoVh1f@hmx-o>qD{1wEOQAmtFWt%
      z3u3jj#ot2Kl<8K2&~K`RGEe-RCcy!TvJQz37$O3<*hO~k##qrwHg;jQh&t??YilxB
      zl}9en2UJ$<#zCdiW26%~5jCWfCs^3U29`Cgzd*VLmrC6NQa7&9DeVFj1X8^Kt5<%p
      z2U+D8pCUCig0G~M;~I0d{B|U@xRumCgj{hO^2F^JBksTiaVO@8BUnuLmW#U_>etxn
      z*Wf0)qO&-;iPhJo`Zp`}8%TL3evG0tSf*<IS==%}o0S>&k^C<ZZC`XaY>X{uj9sqj
      z7_88LOyqDRH!F1i0~i~40EPa*NsJ0uf=)Sd(xS`XMuhn*j2=u#D|lr-Lp2#g_>92u
      z{$D$MYmwALN`8fu{3?<2HB1*@CmE-)NPL5iny1ku9&sdCv#oryQl77FQwi3L!;-Fr
      z<o6Xa!8pEeSEf}f;&Pa=^Jj5KdRTwg!BUPbC<mXSthHD=qM*K{La2)9$s>Al{blC^
      zZKoXNV<3$DnPbR7LovyRc#bOA^B5;yz+`b5bH$5TB3_aj1ua>&Mpa59zPd}9UM0sU
      zT^jsprR7SM(D_00C?)h?^}tp5*BR3J6^GsVwv>E)mfDJC_uneSCN<pzq<uz<Do750
      zo122^LHH&-;&(8`TMjV+TTDP!A{KKu?ond)sZv;K_Th7ma$%;Z?8CiVGFA(#8ur6Q
      zLh>{^JZKuGYq}%NoF)42Wi@nRid7{9lXnjwN&J%1WtkeQa)T4|J$*Pjls_%tFf7-G
      z&&5B;L6^ZEvO`c)AvmQE4`+ZX8zuz5OcR#{)nh|h9OVRO^x-QRpcW4U^$k2C>Ha1j
      zRZzXOgQ1$Z8=9&cn*LLc_9J`bDP;3kwWAjW{cT4vmfhmFyT89J73kDF+XnkbX1rF5
      z0&N|NwQDe0tHTU!1LkP;Sfn-J8tqza(XMm&tI1ZqN#?nbSBGWT3##S!*nFh2+cb@q
      zv-nmzAKQoFBQ+g7jx!4CBicb3i9^HlF^l?Gg+b$i#fyi(sE+yD%$5q5<j3dYi1oRS
      zqC_q_f$=s?etKv#HB0vylDkv~q=$n^3sM|GixX)HBCQ*fwEg&`b^t51n^3RajIeeq
      z_G*W4i*}o|ajB)fZQ~)ExI>CKzTy_C6Up0T@EdeUT|+G-kJ3R<MD!swIa|}1Cumw-
      z`iXR2?{@I&v1NMjq&gdY7v~k$DiyNspy|&5bll-}w+-Z0Kz#L->gBySrywt=L9T&9
      zZRxPXT;P7{WlujEa2;Tx&mV`II+dZb1F0|ujWf7#4l|mh7Xm(`7vD>d*vDXK--1u0
      zV~X}TO0+YWs`a8m>qDjX1g_T3IeJust$Ty5dxO&5pn2VD=@nG=e?SG6hrmntp|a;$
      zWlsy)5>TP%^BH6qbs2A<{JhT?(q?>i9hUXcq~Cm74zA?^bt{#UJ|iu-CL^0JpQYgX
      z2_|UIQMG&?^RySRM!Sqg?L}<UUUJyhV%ydtTaS=ebEq9@^6E#@HoiKb`tK$Dv$E}4
      z<^H0eS)Lj&%jJOiFX^H1sv{JNY>`E_$RasvYLdEV75qio%YAZ-JwH1Wwp@-g>&q!`
      z9W&klX#odkdSFmKrnhS=9p8pmdxs+8U5wY>qdxOKMa2gw)BZrw@FCT)KVp;iCrA6<
      zVw<tWHe-uSLN=qq9`r8Janv%XS<TKqr9084m#azdxwIy$kD_=U4Y!`>V9sZY^w}bP
      za%{4gd%+SU@`*V<>>pBsDAdMt%#ER3IEm3dqda}=qe-r9P@Qu`pKE~0Kt)y$J|S-(
      z5u)6erAEOl;mh(F$NS&NT<@;p*FyRfvS=z<Gz}&Cbj;LeV2)mjCHhP>=s|4O%dnHa
      z_v+=iMV}?DUTaz5sCy}^4=JltwNOW@78>M&dP%+ujkJ@;#w;1Omz5jVDmQo}|1>wg
      zm=>*iwS#kK1x!iz$azhZsQ;=^>s2xoP%U&0XX&Y+uXlhK*x&^=c!3<#EQkIZQm-hi
      zhQ20aDh!_8EU!6AM$kH8O4p<p3wapRx5BG8!>8YXiTaILpl?H^z8$Od7Kf^9Y*p9T
      zs;;pQotNy{W3A$W*!B0}rx^&?^RevyTnz)4@C${yPR-}upgBoRZ9{MmJ8+%v^isH9
      zIlo!B|1nhCsd9iDg8I3S)s{y&3-v#3R6}Y@sHJk28-n`q$D;C7$EYvkmkPBKR_Aup
      zapx?4mG(kLf5g$Yo!!<tIhXJYa|QHS0%G+_{m0<at2t2k7~i(EhoaYC){Ea9h0A}M
      z-y#N1^}nSJNRqupe~J?MX=LfoAYZ?LBK;!#`u8w_uBYqYcT~usuQ&PX4e8u`@EbAf
      zfOEw*u|~~&dBHMUtF!oRx~Z2Prsml~@@!MD*rx7R{+;Hx@%r#T)#--z`;Ybi-eIRa
      z!0EriX#G_b=&zwzf1PZ66;t##9FB9ohe_EtP1#q1xA1$V#6v0^mO1Ba<EAPrLrIxQ
      zGDR0GwbR$XV3Yg`@T=S-qTf8$|MHNmeH+>OI~cFOhe`VTDAzy0eEMCjf9P;Q>cwIn
      zX3I**@0Vxbf2E3(sLcEy<uAKnFXBqs`SLf-(Q<(5#oKA2Yvf3H>(y*(>@LB3_M7~p
      zsn@A&!Fjf^t;)<Fa{|U=W&tiy|1sSi^4TeHUk*O$TF*cAa`_&e3s(7{H}^8=3?Fih
      zaVRjxqtNhUsxbj&#zZVOCSj>D+2NFw#kn-#ye};-BRfBk^|}Oqpe(Y~e3w@90Mua*
      znJ26>fjx`qln<*d&+uSb_~CKPqpv@nB(M1&!Zb7Rkn)_-vY_x!$E}y}^2bLfkwp!X
      z|J8-*Ki+>XFc4fTDEMJqMYhbxcw-?<qXH9*MVM|Z#w=qA78sReR~6Y+jcbghxZYTW
      zW@8Pu8EX-uwe7|_#{k!12VsYOD(FzB0u$@iTZHLkcR%@>hEoBXgLA47tm(mW6@mda
      zb9R8OER~JsFR_vG=fVDG%mEW+!#B1<H*SE(xDolrHjFj4lbJ2#wh$H>9jG*Rk%_yp
      zoYt)}x*S34Y&9v9*3em=P2#`3^~<2u_<wvtYE-n^LnCQ-;eL2c6<@1T7kTpA)!}OC
      zk!Rk?=d1axzS~d72D8e1(zQW`;4C`?XHf_Sbvj23#NllI)0J^E8FQHYb~~mScTgH1
      zCWG!og>eK+j89>$aTnGbpT>2@XB-AK+6FbMzdw{w7A}znEx|aU@mpm2d=0PD8X-82
      HHDUZ2+_;zy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/StringBuilder.class b/libjava/classpath/lib/java/lang/StringBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8636b53aa5d7f5f01f192311c01d8765fae30fcb
      GIT binary patch
      literal 9663
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/StringIndexOutOfBoundsException.class b/libjava/classpath/lib/java/lang/StringIndexOutOfBoundsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0debd302b6ff7b855deecb45e645d5f1f3578e2d
      GIT binary patch
      literal 831
      zcwUW?T~E|N6o%ge`;}S**DVN(TI9oaNhHQQ*K7=+Ny#cCi%q;N+W~6o%%&fP-{U{<
      zhD|i_2blPGyfmKaHfmUn-prXf^PcCOIWu3rfBX#KAv$%;5ZpJxyI>~{<k`+3OCovZ
      z$xvJz=Go!tuF7SYKD!u-Q5Gp#M}@HdOa50OVIdVs6vVzrQeMCE_6c-AnA=k_%>tSE
      zL7a=~`^}@TYPkQ6P<s-|DC-es9oHvR_Eabg%;LHU1J?-i{YZ+J`P&nb90w<{AT;}G
      z$OZx1@VZP^vhye<Z1?~BPF;fKOv$^huiY)}ev^-$YQHHF`#GNL*Reuay1KiYM{y{U
      z2385}Ny?7&DQuNzwmP*F){4irfn`{FxNE}38n+@Cjf4yds|=qqEwNo)v2J1mn}kND
      zCYywoGhM>xtQO9E5szRDRGtjQ^GG*r;~(vLpkY`8KMa2v!V0RWajf%d1`W=VejpxA
      z&OG8s9IKr%<~|gXc^(apKo1o>#RAXFi3m5)ETG)u63}C%*48@PW3;XkJgzw?2#XU{
      zNzk)JEEVPkZk4PT?59;$=M$D+H``;}ZeQZgCGPzJJwOY`zoD(4XbW4oU!a|$#{B^W
      C@3fcz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/SuppressWarnings.class b/libjava/classpath/lib/java/lang/SuppressWarnings.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c41ba051e07d5a3a7c3e54553f804c44ee17fbd
      GIT binary patch
      literal 509
      zcwU83O-sW-6r8PXqpjBZQAI%%4@EB)!JDTTQ!GSNlC&Z{$hItHOS&n^rqI9U!5`p{
      z65o2TA_WgSJ8$2-nT7Z9`SuRr8iy7N4962b=dGBlaVyMcvs7f+Gf$ON<IF;lp}y?<
      z!-*Ja3uT7W<ttYz(Ok<!wd^0tP@3~N7YvPy%YpYRL#JeY%TNiEJROO)jE(4T^p%-l
      zI0|y5<y7=#CWo<D`ezJh-pW4&LJMUWWi<bhbdy+)79=c(elKubhLhD35l_cLlkj|X
      z-;KqTEThFtkf<2FbjhpK?zrAPnLoPGgHL3mYX>$JZop7={HHJqdQRk1Rr7qu_FnsT
      z(6R44x5>b;MyEuJVzdMc>%<D!_{IvVbl(u$B#kAog&MXE9iS{w$Buzr1A7Mc4KxfK
      Fd;tlkiN^o{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/System$EnvironmentCollection.class b/libjava/classpath/lib/java/lang/System$EnvironmentCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd6d4c0d4920f4097501351f4b1ce3c1e1254b67
      GIT binary patch
      literal 2428
      zcwV(sTW=dh6#iz`WD|RvCZP$mY2qzO-T0DAL%D>6LU0lYxNadKqIp}pt8~L=H`-lW
      z4L_yNh`#UuQcIK;QSpRSRe+%4oj(AG%PVkZ)^;|&NJyo!<e52h=A7?4=R5o0@4H_C
      zIFI*LaE8>jQ8lJ*!`Yf%+w%i+XMEYITAu6dm`;#)ZQCpdmg}g9F`SmZmB6y67fXKN
      z8Rduv11mEO6%Kt4@8%hL)~qeZ2r8b*kZJ3*P>4VYJj>adzeo?e7A(gKE;5{)XdgSh
      z!7$nWu5C!+AIrPf%s3SEYUsgn24y0>(F2Bl4Nswq;dsGv%wlDyWP0mH$tKVP1-ES2
      z8-{0zbIlkFu3J9CMB%?xk?6$AbP{zs5^Zm{9<jUZI)Pz16m>8f_Ht>PV$7#ERSYwX
      z9$pkHwtdC5oWS&!Z<Nhlk*6CYRFieWrk5MZ^=q!_>y8`fer0#p^#a|Yr+U?}E2cjc
      z$0;O5G4!UywYsG@R6NJf*L<O3ye<rB&D)0W=M6uIfJu?en!&h^y;ld~>tQT`VhqUy
      z(#WdFFq~-DR1MGKBz4R!ZHun7l!zfwui>I7bw}N767UYX$&gGo1&&z_&*K8M#iIHe
      zf$LH0Ceo2dt2O(40x#la6)zE{)>{p8c!iqpm^T8VRgVybE#5C^coigd^}68~r7P)D
      z;&@%d6sBp$Tq4vFGmTbTaGgfWGk4r7iB9>@+@lc<k5n{~@huH2A|qKvEoCWVzV(qQ
      zL9GgxOB&wBI}GtPx8jw}6-x*>5e~qV$jG3rI*#c{QJB7p_l_z^dXnDS4hzF<gi7lN
      zr!6VyG{g#h-w3RjWLi}^adgv<$RJMp(2{^g>j$*sw8k_0IF`xYLEq<eQZPXOy&@9-
      z7%~0{diX6oO}3%X8z(Rb$lZ|4@(k@YT0@J-#e`1jUu3CLB=Ihj{RYSG;ndZE)B6~`
      zpZywVZVJQL)q%77ICnpD8-3XWOmKWEF$xr;0x!QqDE1NOU!a#CV36O#Fu#i=|1yFq
      z(?FF$4wDiCsiwhrMq;^5SYos;QKIt<#al>E9^eIrOSvQ9a?Rk#i$rttpGP&6uZ1YX
      zTBWGA;1AKyza@0v6T0sR-496dN67IXF++EA{3nT4mmOMapk1ofupdb*5^f%;rnq}U
      zGNCzaFv&|M7o=VEjsQtApEar`;(`Ax^VRzj=3^A||Le;y)R*6=FTYY>ekbOC67xTZ
      z`ClFSvRv!S%9HEMn=O4&V(3@8FsO86SW%Hw;z%hPa!LX-bT_B;K1N?wpB$4`g()M%
      zBuPxp5EGr4j1iNw#AKY9j1ZG^kHLgKW;I<jDXYLDeV58oX4@!BK~Z{L#uaH5G2X=*
      J?ZWD;{|i9E{<Hu9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/System$EnvironmentMap.class b/libjava/classpath/lib/java/lang/System$EnvironmentMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b06eeb938cbe508e9c7e2e7617ab7eac14d31a18
      GIT binary patch
      literal 2592
      zcwVKH*;5=<6vn?x!!!)dk`XXSgiZoDO9V~gf)FAiNDNC9oJd@op&gnu-K4vRWL#c+
      ziv9&AQQuu2v`U;ZXwWCBqJNX+IX&Y{&lXZzQ#IZ9+<VXW{Z5~I@Be-G9)PEz$!HK5
      z*wl8kQB$+hqsv*>)3*j^tR2I#tu5X17PM^{jRHsfMH$a9N9QzmgTewb%{zwf3Uthu
      zrk8bZT%cvyNL!khadd(C^4W>Nkn)h4=VS}PybH=|rN^rylk^j4ysBqO^JLAe<;w*^
      zJDQnci#>tm)3#~qDbKJiS`n`~Q7_$uVHw_}fE0}-$;!07u7@EZqM#ieTnNL`7c*OH
      zy0fCKnFJr1w^N##)EtAyg<zw%VUVZeL6KUeC&kv3ZF!nuxfk`UKzB5-Wod1b%#O#d
      z$aqYkzcjI!G0jW1VR^bUb0ej1Gf*>*2@I}~uDYddtLwJzs+R4kZf1Mic0ARhJt|jr
      zB#d74GtWSUUZD=Lq>SSNos|<ZP6`|=MW;>8b*DAg3wRh3NEAKTmYG#G)3mR<>a~o{
      zt)ymL%B1EKvXv9)=lVt!Jc^@K_N!clNOche+Wsw6lD~K}o)j291UKIsBP=kgAi)An
      zeoUa5dpk>gMXeu=RkinGW$gbobqfTZQP6}CdwEWwvw50e(=0z+>yuZf;f>=8p2x)D
      zTZ%OcQ8|6ap*lR}M%m_z3R)17@zNm|2jyT(FDp2Q(_u_umRsr-`gqZbYVtt}Ir^5p
      z;~%A070fZj(K1VANA^^msk){Y6|_Q;afxd4Ak(E(?BsRcbuo-3tg!bt1bU;jEya>y
      zQn}3KALF-GW*8F)FWVU>rOz6C=v(u8Bb-4%xnNnk<DU`TmGN%*f$~=hw3lB80%HOF
      z!ae+uO$L>GNp$T?_>>!sMly{W&`jf&z&K1}DpqmaMiKDsMv+c>J3~)F&!%_|M}G8|
      zJVO6rdO}K~QM!yS8Y}rl=td7c1s~r+f@@@f)?z4efVMsKu15NDczi$c2h`gfII$WT
      z%wc#xp2*>e?~4Nc>_=KBfe#RtbhJxpbV~;Mqzw#6o4#mIK5;>m-(raSeiILnKUG(L
      zq*DGm$!AIa2FZU&@*k7@M<oAA9r>pU@^qeQE?>|yzKvOW;|g`ff5O=Vw8p8N&+g(Z
      z4}U1Cw(}>GZbFtmLx=Qvpt4=X%2Ll2(7Xa#^dTzy!tYQ^I(fP;i0(Gg-6Fa>ME4cZ
      zeMxj*2k4?jx@fVu=K^$-zLNzs`Y!tj=llU8@jXnf65(_XGrKs?(Mrf~2=ZI>NZ$n@
      z`-+fr{|WL!4ai>za*rVI66CK0d5<7}Bgp+jAn7V7Le5t~F61GX81l6omUpqh(Mrhs
      z1o<aH{#6axImMTE0dkmjv5`<b@iUU8EFph~@OL-(d**8Id9&^w@^Qs~dkb%a&n?5f
      LgZJny5BL5*-*7w0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/System$EnvironmentSet.class b/libjava/classpath/lib/java/lang/System$EnvironmentSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6510f9563e47f949795b1ac5ce717076c7c6dc05
      GIT binary patch
      literal 1021
      zcwUWCO>fgc5Pf5(aTB{u32mT!wWS~A0~#T5OH~dLNEH?!rRss36IRJa&bru6rT!-_
      zNJyw0_yPP9xN`<(Hvy8gDm{32X7<gSc~AcO^Ya$~kFo2(BCPd;lb{|3s#|ZJCaD-~
      zJyRz#j?_S?v?Wpp8N$wGpk@??qLa!<Imi+g40f2xu+Hs-?4DFI-6s^w{?t>Wazx0r
      zWLE|0Fcv&z2C(N(j7?*yx{ZC)lxaq9MIJU5JUCb+tWI|R+sA+lzEtAnaL^X<VbBhF
      zPSKA#L3k9zQs?7hChf_Du;Ks5j|Ra`w64O88bWEB_w@J=_vRIJu~FjPFbH{vmGT7O
      zRlCn(8kILW5N>(6jXMPD=xG;9c5x5u4%P_E7rlG9ftxHLYWKAf=jIURdqL9E1~aN$
      zInaDN9yYN>$hV?l+!4>E7UhoY+0_&T??5RLH^U%FMB<=ESeiAGusCfc;l-tHPpG<r
      zfmmmQZ2so>@7A}2d05DCW+4xk@7Ekzd}ph*Pw+k%T!GKLuG-%)XMe{M=cN$}*H8pZ
      zbREmgxWci=_o!0hh_s!2YWAmNcDMQwtF<%Swea2yFPH{yvwuv`yMO6jY~a2jW0%Kd
      nPfX6MX|gkH(>bnRhHJD=e#~X#fkBl~F;&e`#Y2upHaz+b(WUJn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/System.class b/libjava/classpath/lib/java/lang/System.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfc895a9f955c29944ea8da007ed7b13f3084fb6
      GIT binary patch
      literal 5896
      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
      D4*hMM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Thread$State.class b/libjava/classpath/lib/java/lang/Thread$State.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7d5a333f22395a74b272ab11d3ed6608424990a
      GIT binary patch
      literal 1242
      zcwT*z?@!Y}7{|Xyx3%jE%%PJ3iXzB15S$AB*hB_Y)3B9<j*-R}ri=<DqcdGcLi}Si
      z{slT-Kr|9x`$rk?jw-`2)3nd?xqE)!_2;jzrvP$T6467D+_Mg>*}CQK%vN?i+u9yC
      ze9N~*gb4c1_f)sFParOp)|OY*6@tOi<$ierL02~kr1cG5FD{i-0=c5Dmo>duVUE2O
      zt*oxR*(_=mO@Bp0{?%ftzEK{p7E2qdL6CagJ%d!J)g9OI7ih9{rb-Z6Zfx5U!ZHX3
      z6kNqMf=D4SNv1m@8NTPZJ9#ZrjZ)j|3c`p;5E%?95E)1eZYYo#L>b&t5M>}UxT8R3
      z5MyvxK@1V5r4=aXCFn0XuC2HBw`{LsZPjgpM5$4;>Q&2g81qFL0tRT={;t!cl^$62
      zmQ9u6bf#<9GVbGnh#Wz@qnpE~Z|^I3h(`ob%k!+mTI1azLAJB!wXHq7=I6CbmNYg!
      zk>_7~OE7)Os50Fv67WR99G())bviEBt!6X-|48gU(UX*oM$4<&FC8|h*je})W<{WA
      zu4{WdmfaMwaG~)tOM);jh4yYZJFexoJgR5^NmJ<7z(Rg8M^8?me}lM~VmASxQVgUN
      z$Y>ztK*pGi53%E>o*`=2hkhC-PU!>x0`I?pn29UGF%m~eau^J8NO2era~R=pGs0n%
      z!)=kn7>99*!$dstoubf2(lA49qzp6M#)x4?+88xVv5hgql-igujxhO!rtd+9eq|~V
      z`UE}n5m~;<Uixzc#pY=1y!q_Z$T6nQ9V65Lfs?{?I+JPEHJ!yh%mnW9bYjds*~X-~
      zDr8U10;{qt44+_j`t!wT^!-yplwO(nAV!w1uw6MpvL|@_1Ejm3fM;CGqrjUZ^m&dK
      K^h6f<dhs{>LH)u2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Thread$UncaughtExceptionHandler.class b/libjava/classpath/lib/java/lang/Thread$UncaughtExceptionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d4fa204a05a94c13406f34fdd330b0b9c3a88aa4
      GIT binary patch
      literal 281
      zcwTjmxeCHi5Jm5}BqmYN&JVCK76xleQ4|CVm;M=tEIeK$i~4OAet;h(CZ>=GPBC*C
      z&J5@Ix<3F+(9uyN*rB)xM+)URJ3nS|8tj!TGS5%vH<!<85UHh5C&{sn2BG`KH^-3O
      zl+eq54+x{-`uFd&x{0phD0ylh2<A4*VwV?zWP(-F;{qnMS4wd_lOjnt(P32tN|Mn3
      dXRHwjbreOpdlOooYS2Hu1tXs(3dTfRGv3}0O(y^V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Thread.class b/libjava/classpath/lib/java/lang/Thread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c33d004474f8821f4cd228f7c8fdf6aced0ca38
      GIT binary patch
      literal 9327
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ThreadDeath.class b/libjava/classpath/lib/java/lang/ThreadDeath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4205d7d640c1247154890ffa97ae8faeb57bc60f
      GIT binary patch
      literal 345
      zcwTK!u};H441I2s28EP{LWN*s0|qJt8wd%dAb}zlO7?4eB8S4Abh+?fhyjU#fwAAi
      z01LtiNHDP2e)hB9^ZfJq1;8E#0a}E?t+*G%Lg<^}IJZ*FMpC#ufJf;4j!vyLmJpZH
      zDp6$8mdfbs^AUkA2;Ic!(h2P{QB=}@eLVPBf1ke*I!8(?cT8w+ZD#~8F*6yWjim@7
      z7Fi)xT3%Ln6KTg{Qb<BSHB%N4EW`Mx>A75$gthcvuZM*2%2akL&s5Eh|IBvl4QzrP
      z@Xv$|_~>vB7`3p#71d5SM%>wNFyQYzq5IHKdK^Q}zzIAgh`EZsNmxd|Il9s?SHA$;
      CxJ(lO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ThreadGroup.class b/libjava/classpath/lib/java/lang/ThreadGroup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9e5a1e7b237ca82046746966b1ed7f4139b1d89
      GIT binary patch
      literal 8558
      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
      NIxhs@pwa}De+0cx6SM#T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ThreadLocal.class b/libjava/classpath/lib/java/lang/ThreadLocal.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35c7fb8e56c10ecbce18828e9302b6d2eb53f1c9
      GIT binary patch
      literal 1704
      zcwUWESx*yD6#njX=sJ`g%A(?i-J~F*NGmRYzO-nd!4O{@%2<Y!X;Y@4zM5z>{sR+z
      z)5IllNmMlP)x;lVJonCY+S10@q;uz<d(QWL=bJP0`_K2E04A~MfyB_arS7VUf@<Uw
      z+0C-1ZlsGjwcvrw&{;dWvA(6{Oa||cW|+F66&SkH2al5s{%m^XW>Ggxt<2Ds&Ks3P
      zKDU)vR`(WEQ>6rNDp$}A-JD}^g(IsB@_cba^TUO91wr^3+$nMH0|`*j1~)@Tnkbhl
      z+v{36tF9L`PR>=Xs%4$;MbJ+Ly$bp`Mn|q_?3m?B&RkMWeU}Pkb5q}87)ZBlmxT2<
      zBHk})Hq}V$l2kUEoTEC0tJQgBp+ecc;YcfAd@Fk1P|Zr2Qrf~1s-^z(8aWyeW*KVX
      zx@P)u6vsU{)?mHGso(@oQe#w8CxSZasuEUAy^zSLrDOo75b+?)(B5#M;4q>LW8r3j
      zEi`jG;|hi_%<;w*BrrjmOBK>Q(*okZKnY-5E%681D49&zwfviCJW2h_eESKwEH`(!
      zn|-aCqbYNTDT&`WcCYYscUjvm^6>~(!^<MTTfV4Zmiy(st5aNmKw199dpWIS>NH#)
      zTw&;G5Leu@2FAZqtdw)wHJxud>r{{PbcS#$JKL;st~o^0Kz-4>Dj~#Q1aaqqm(~DX
      zec;b1K)VFR`7iJTuC=dFKBMEKNbaJmUmV_{bq(Dj3Mvaa#Ti-|t-dH#(!Yn7x<qME
      zuxpT!C%#Qlu2{+F#{jLNhR7hTG9MWt84*;61jU?9A+Zk*wp&EZI!vhvQ?f7_qsbkn
      zNENdiN5r0Ezb8Dda{3!a)3NA2#w29ozc3vAf><UNrCZ-8bi9Tf-^XbeZpCT$3LeHI
      zH914V-iIXr5s^PeC!Wx!<SD{<CM1qpB(_AEKA)2~LlP83Fh#YJkX_3fbh6GmS<_?y
      z!#SLHTA3m23u4b(DcP-rsFh4S8grD#Eae9u%yVLRL3&=+DGb>P`Q4N-Sw^qWD%BYq
      za*Um&IRMosoq4!TnS4gttA?heX6iQt`<B4o3F>~Uz%j>Xn^Plfw+UsM1x|EH<S|@k
      Q68~ZgGp>s3ylu_GU)Qrj=Kufz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Throwable$StaticData.class b/libjava/classpath/lib/java/lang/Throwable$StaticData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..540bf1d49ade5ff76de47ac142721e1a7636b15d
      GIT binary patch
      literal 598
      zcwT)`T}uK%6g^kd)ooL=?=LHe&>)wdi(ZN#kO~yv$8FG!bysG`!v7KdkLaQ3p&!tX
      zitcQp4@CnrcjnxC&fGKe`Stz*;0U`GQiRH#xEF39!miuuspvs;0=d`JLi^si(89tD
      zp){?z?%YXF6H;M7C^x2wrdEE~JtpK%yuc5AeM(4IYi+{JS#&FNm?acAA?vXm2qko+
      zY|No(p}<Xa!=dX1B8~?__uS?v*0O)2qJdP}m$8Eq<_WW1smI`muwVUsd+j%r2VucM
      z23bO}!S`Pc`yHuT#;0)*c_L^F<(u;u%$_9u+el;8!7_5}LHGQau+#Yewb;JhjE2gS
      z7rs#{Op5A;NN_I0P^vTIRK^yzxwk(Qjmkt5JM19MKSo$JHh7mp4i-;Bo==Ay&B&MS
      zH#jdSKPM%NyxJT=Pwe0kO9^V`@`UPgG~~>|D^{kotO3Uq=cfQ`SWogB$-0THMBdOV
      H+@bvqQhA07
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Throwable.class b/libjava/classpath/lib/java/lang/Throwable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f3b5ffddfd4aa1b3a02c94d1a9c52068e57282d
      GIT binary patch
      literal 4594
      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
      OvYiM%R|PL9-~RzZRr$&Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/TypeNotPresentException.class b/libjava/classpath/lib/java/lang/TypeNotPresentException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de8756ef651f25c832c9176b82012b972f007a20
      GIT binary patch
      literal 828
      zcwTi<NpBM|6#ibDjp?*0p`j28oeW!+LWI;?5C;lKpb#M%f;hT~+YU-R(Ts=XUx5UT
      z3KBnn3s-&(;@OGXiiE>>-tsN>vw!~i_5;8@Y-O=PD8Ci&L}MV-L8J3=B-^2W5y@C8
      z{rE#qj&u;JEK-EhDePsUbTE`BeZp!iqd*M0GKx8W_4E;eo)MOJLKSPFbXN=#nLghB
      zJ(m72kC4;GNem^S&^i^~)lr}hnuN^#Kn3~%p;nn~pQ&^Xqwu}h8^~t0OGxd6eVN57
      zVf|my!z38=Wt2mK#f`b=JIG_rg^MDgILD^iHHdW=mvEU$Vl<MfPq;G=I#ZhZHFLN^
      zSn@p;YHvSGRNrV`b#V=wW(wg1O<1eUYBU`zqHK1!d=7-`E*vZo@~uG0b~4<PQO6wJ
      zj4<r+@C9E1=hI?J9|keA&Q5Fo_42&aJ(0vrD$boP!PyOys3)HUMtS2uI(H2hW!~x{
      zKd%LpkVb~Htj%)#@&0X0=1jb<aJG+>#e22y$iFF^ALBy(2p0<_UXHM_HRewJEBw!v
      zd4ty#i*K?1b8MoGn}$8nz%AScY-GI1Mio@8r^D!pXM_Kym#%$*|LH_HV~ek?pgRFf
      K1^FRbRQ)f33&Pz1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/UnknownError.class b/libjava/classpath/lib/java/lang/UnknownError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..434c66b3dd04a9eb4aa721259d69d1afc1d043ca
      GIT binary patch
      literal 497
      zcwTK#OHKko6s!jW2!ebRL=qRq4PYWsmna()qd{YW%)Y@1w2nPV&y1eS6^RQE-~l{^
      zXE44VNF?f_->>UcRrmYX>l=Ur)KZ8MD)-_^v|OPkt)Y5Q-m^N>+S4gmgzcX@Tk0Sb
      z?v)r%rE($&q2N1O3fFeDFFiH9I3>^}A=mYk9|#rL!VR6oZu%oQ{JcpMlE+fXphJk)
      z8#ck}dUs9+aja#L!73r&XYT9papdS*F>)P3sqc+hK(Gw=i=h=vrBA5#|F_;Il<P}(
      zgFs6)X*X;mRW?%V?9(^oe?WxHzzg-*=}DthT;|<3XzYOP^ZyZQNFd2M#a#?5e8@b5
      zW0ogJoQZRyIYaIxg5)`7I0J21I6;A{>>Pw5N)aiWTM%>@X|T!W-V7VR8G5{P9x+tr
      Qs0D+mD%gy~tI^KZH+yPhyZ`_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/UnsatisfiedLinkError.class b/libjava/classpath/lib/java/lang/UnsatisfiedLinkError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7381e8fb46efecb990ed72db97429bb91fb9b4b3
      GIT binary patch
      literal 514
      zcwT)_O-n*S6g^j;8ZS+=v~&@*Q-dVh1ePtV$dERs`%x#Gdd-7*&;Ct6qLmQQI{HsV
      zcb-B~(PHlBx#!$FZy!%D0CrJMAx7A^5%;3*2|cd&bRa?%Tq!x~D1CckjBiqK2*odq
      zZHTdqdW2jcjS^m8nn3xw*FGlDIU&>Xbr1?2_Juc*iPwGa;XRvsCL|A(R$-G6uT=X4
      zr{#~Ni#V3jaIr|pGQGT*+zq6;6a!BZ@*RK30)k~YpBJ6*S_Op7&i}hN2!+ZwOgA)2
      zj~ms#l`L4v72Y?nBELWcx9d;LP@XEQSo({9$4+4jd=7sop^OBQ>{Fb@u)vS(S!~l>
      z*<(-a6SXNaj}aux)@2VI!od-89HnO<EF&M0@{)6cCL=92S=*js^(Vs_&$J_k;tVxs
      Ouu&0fk@$KvQ~Cr-K5IV!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/UnsupportedClassVersionError.class b/libjava/classpath/lib/java/lang/UnsupportedClassVersionError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb59a0230262e28231e33017c4373b8aa41d9260
      GIT binary patch
      literal 542
      zcwUW=O-=$q5QSgEz?cyPQBc{jPyrK(af#vrC8ER)!oGnHwi%{L_l&pk3MQ^dTzCLa
      z;|Yv4!z3C_jEk=7pReAl>bH-VR{%#S+ek3%-SY?DaJe^a3_KIe=Surx(ssEqL!pgS
      z-i6jm+prkQUu*<)l%8=vdS}QRp(S_YqCxkZfn70V+sZRO_xvGu1Ce^%wXfgzpT-R7
      z6X{96#gMGlh749)O@xCa)-rIg%8=_xPuv8vk<hn%<O+sDPmRfdlMS8YOUu8LhN0T~
      z-yBVb;&-<1Yw1m!wP9#o46Qe)ZxfpRf*72>3iMcXWawP^%jYnxMg=q;eKvg^Qb<#_
      z>6E|<Ef$VRF+(@Ulo{nzeSz$AgybkXlz~%NI76OxnI(jE6e3Y-HWp|R8M5j6!2+8<
      Y6)vf!8!42QRICv0O4y3bx1*Y!PrBK5!T<mO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/UnsupportedOperationException.class b/libjava/classpath/lib/java/lang/UnsupportedOperationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27f93ab84e94ad02213c6ec1c14c3effabc8042b
      GIT binary patch
      literal 842
      zcwUW>K~EDw6vzJ$+Ab+Yu+UNvvB1H$5Qy<ut%stqrolvL@6%;chP1QI&MtV+c<|__
      z;nakK30J;|H$Q^$&302st;EZ`H#7hDd;fWJ`|J8UfM?ioFhh8HE-u7DPw4JJOPg>o
      z@cclYz8^?m1j^H|Ke}>Y69);x`XBL!PzS0n$M=LKBYh=$ZRs1{w;G28dPi8Od)fp-
      z2W`;{W%B2Z{E_|o?F%9GLTMG$2(zVfn~<n`r!tLMJjfu8dBS2-X?Ya(JJLT9ot`9Q
      zo1V)J1h?URe3%H%lp&Ox|M`$AAy>L1J`Q}PyVY{r_RiVf%WT}(Zhwggl_{lnPEO8z
      z@6!5;dFz%}AUJ(#jOeo6q$@(hF*mh}P$=DlD_YzpA${zHzAN7-JAmzbpSy2q*aDB4
      zf1SS&Nu)SByqm!s5}fn6dCl<2bB@F@Ss7yCDv~Vnn&t?+WbrF3ah4g0@DSMu$}@`r
      zHC9?}s<J!8$|T_}*EAwRex!;CHp^o*YR>bDSq-*qO*@s{y&={nVI3}VBUo`H8^att
      hieNU|z++Zh?B+C!PbR6K*y87ZShOr_aVx6X{tf8<r<?!)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/VMClassLoader.class b/libjava/classpath/lib/java/lang/VMClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1033291ffc358caeb61b16677a0ea0e95d4588a9
      GIT binary patch
      literal 5495
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/VMCompiler.class b/libjava/classpath/lib/java/lang/VMCompiler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b968fb48df5091e6be90da25c5830db77e02245
      GIT binary patch
      literal 6666
      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
      C*4ml?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/VMDouble.class b/libjava/classpath/lib/java/lang/VMDouble.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..690c19e80f32d68304adc2bfcd75b69cd0ddc5c6
      GIT binary patch
      literal 457
      zcwS{t%TB^T6g?Lzj{<_c)IVrlh$ikdF0^q$swP5MxEso(4yhedihh?X6BmAfA7#AL
      zLNH;HnRD*BXU?6>&+peafO8y|Q6RME;!O-95r>1xy{A{xNS0v{T3h{bI+sC8C|#*o
      zrPqX_<4y?Ht)596MO5q9Ly6GzRV*J?uTz<f1?O<MuLBWHM50W+7OnI}EeTzJck(6A
      zon>sSeI184DrKkTc<zwU*>s-7`?lGN)^x1%4C5cV9-)%zQJSbYB=jBc+5I;!*LhlP
      zA(ExsT<kf!9+PB`^ePGDoie7z=CP;7i!<<lz^oE){s*qh%m$2Pl#@?XKA03>XC@<F
      jpvGrCH!wB;s$w6_3|nhFKs&<@x*7J+XFuUEOFQ}lUYuln
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/VMFloat.class b/libjava/classpath/lib/java/lang/VMFloat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2c252ea8653f8e4e5ca4e39c2a13d6d48a5145b
      GIT binary patch
      literal 358
      zcwS{s%SyyR5Uk#f$r@w!q5i|hgHiCNcyJ*Qhzc5VpTtpTi5ZBq>vwq)Joo{Al-QFE
      zdT?O6s;jG~d%nIuJ^`HIz{7wrU5d4cYtcN$#Z^*kVLUj5$)9{vE@fp1?zw7|xgZSZ
      zQ9*DP`d<1NVmrVVT*5e0jl5nxm$J=8Sxdq!)0L<T(JGtwqGO)a3t=z&H~5SYK3J0L
      zv@w^;u+5n#QOaBP`mK2VErn{sa@}=XZyF^8|4y&kN+!xq3;MT@>@*yMw}(9rU*4K?
      tk6Fw}Rylmf=#9w$K1a6`PqD)>*ccdh0U9C1xWh@0Q_Q%||LVH;e*lm`Nt*xw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/VMThrowable.class b/libjava/classpath/lib/java/lang/VMThrowable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b561d559135464dd64d0a26e9f7ce1f0bf54adc2
      GIT binary patch
      literal 476
      zcwTi-%TB^j5IvWchghVdsGk5Xs4iR>jT;|{Nzp_I8&}izS}vB`q~6MRxiWF#2l!FO
      zDVorQZ02$1oHLX8`u_L?aE!e=DgxaZy^@!Zj=jlnJk8Pt1&OS~7I0Ui`(P$RBVb2l
      zNZ`Pab?(LC%zL246+=VP6wByLpmwgbG8Y0?uRmeIWg5vQENnWcqao1tm6mt;JdoMA
      z*d);L(~y!0Wvb}^K-)~!i@?7B?|Hn(eNstst4D^y=W#|MYX-d%d&TXq^=QS?lnqYS
      z7(ABX75_SsbEyscG)HNkh4Mxfm%F7MgF=TR@HhD70u@wI<I3WSzrn}`cOGZKxqA4H
      k<{K9kI2>zB@DweM&MyI5XtPfPF18Clbg;8D-d(D?KYvGc9RL6T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/VerifyError.class b/libjava/classpath/lib/java/lang/VerifyError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e7f7d0a346d95a24885a44bd221d9efc78cff0c
      GIT binary patch
      literal 487
      zcwTLg&rSj{5XQfO1<VSvqWqDYH^4+<Jfd7sjD~nY_g=7Kb?qkI#l#ozeT)YZ4?ciz
      z;Zt}sP8Sl1dgx52^XvCb`~LO%24D~M98!ext#}aaK<G)^mquMb9vc&y92`RBr!`Re
      zPE2IdBX|*$B49pJp}sslBG4J3&<k}G3my9+n97XU`Fwe*c^`!Afzm4O64H&PPjGtS
      zm2{EDS{^P|2}PEd=hOR<G#6qNNJ424j@dx44cCi9C%#b;p*r|?<PN{3vD6yIM(IhX
      z>076=b=u%DBdh%fBDlkFYR0m!tdX}QyK7-=gNNr|Bh-;WmUE7)6jpeVeFVompX_rc
      z&Y9K>h35n*a&$QZ9XL3I$GiL-!a7QcD9^SK=rU>9Y-?wR&EE=rzH^c&ROZw|!R{)k
      KCg!!|&ek{X!eBT6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/VirtualMachineError.class b/libjava/classpath/lib/java/lang/VirtualMachineError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d28aedfd4eda9bc1a9e9982c25505e3089e8fbaf
      GIT binary patch
      literal 504
      zcwT*wO;5r=5Qg7@LQUmM6hsm=-T)Jc@nj%e@H^-Q?0vxvtf_6XZ9V&!Jdt?t;L#st
      zoGm08H6C_mck<5r%<TKe%PW9G)NP~)+xOy8v_0WZ+pf}4EWB$mnJHhMY8_}B7NPhh
      zNs5G0D76xvD|M&>|Mv2PKv#r(Kk&my_>n8TSZ0pj+|g6JutUgpm9L^6A>C-Y1gjt1
      zNe5{Za&WN9gaHF@;)k)+BQf?Qp*#pC3=oXr_p)e3GZhkc2mj98AygXQB*RE6f7)rf
      zhFCGgbsje~j9(&xGYn!qk!Q*PYk$}um?movybOOMp^gl)oNa!ku)>GTQXF$!IpR#5
      zGp#xD&xxeS(cuhqVWEc--*O8P)=*ANdB&wdkCjH7ZSBvo@zdd)doB`(>O!@2Ft;i;
      K6L>A@+4=;3(`Cj0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Void.class b/libjava/classpath/lib/java/lang/Void.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28864579db1539c5901eb885a8fe708793ff7e0c
      GIT binary patch
      literal 516
      zcwS{tO;5r=5Pi#6X{}HY!OxQyFi~PmywH%CMo(2qAWb|ju)!szO-kW^84nr{{s4cJ
      zadtJLxXJ8f-n=*ScHci<-vFH9&_ITvH04X)4tX?b2eBL*$T2u8>~1&}qm&^xxbIyt
      zRQy%T3;BHBVKDo067h7A2!^BezU%*;-|3Q~=#D}e$+XLmZMFiM?!{waVH0HoC5FZ?
      z&5a)8$9yaj8xAUDVj|LBB4;v{OQG8gwWinl=gkDemW@0L3}s(N;&w3`ie$itA$hI(
      z@rZ{3Po%29!Gf!eS;%6?MjaNJOCKa{aMoYKVD;lgG7{HPDNO~QDh~ZEJ&gXCVOK4u
      zY*3X!QHKeOkPSjkD63;S!3*psR3A01Mz=*7aEX3_ZH=m^|47d%D{=n#8I5(>C35hz
      Q%>E*gk3H>YUo#Ir0RyRMwg3PC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/Win32Process.class b/libjava/classpath/lib/java/lang/Win32Process.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ee8415b9172ce6b03aaeecc2c7e7f83bab5f4a5
      GIT binary patch
      literal 1711
      zcwTK(-%}e^6#j15uw+?MnidN7S43+QD5OB8N?J-wL87rigQ@7#Ho1m%w!4|lrsBJQ
      zh5F)?FFxpu12cA}J~`v~N2%Xkw#!2Du=k#O&iT$g=R4=_KmY#m3cw=vbfg3(zqVdj
      zCC75xrKh&LytLzcP1)`0&;-t(*dn!n>Ggt6FQ^B;w4M`Q4Sj5{R7>c~0;9H@aGQwT
      zD()#S>HD7l+RNzhmTk*zIZ{AW1V-e69c*|l9`%;&2EO;Lz)+#s5XdM~!*Y5u)X-T|
      zjs^rSn7D`uy6jusO?t^z=<<b*O9D4eYN|MnY+KImK5uW;11pf52Tj=tY|kCRG;52B
      z&NEKl^@6+%gBh5_WfNC$Rbcp@?b^W_3oKMm0<#|5ZI_FU470gz!o;Y+xvK5TC%xy-
      zq`zxDQx)c_Uej_KmT#+bq|}0an>0^V2ls`XW!o~?Owx9#P#j3Fy8Wh!3`UMY37ay_
      zn$VT$98I-TO`S>vJk?eOTQHHvFdOoXWd~cH&$h+1acq_Zt|cgT19rIAA#Jgfz}>=^
      z{cH_T#Yt@0jwGEr-eq^=QfqNY14Fp0T9P&JKFT^)1;)>YGjR|1nYZn><U#E#QeCJN
      zD>@#K!Lz=PdbZP&{s<m&5N8am;j&sDo7lt_+irC_(&bpq4{Cd#DvDNCA+}9a@F7P#
      z@Q#fF7YqH6vKr*7iI1_&H`fg;KZu`ThR>vJ`M$-+aA5##tW3HuIvo0z&GuwZ)5wBs
      zeqA+x1E6}-k(S#d+NgUyzbO@nzk=itE+`ysGs7YNNzzEEiJ+8H0~PL>Xg4q#?q;|f
      zLSPJ8N}M{3b3IRan^6S!$=M_1zQ@>0Oz!2Tj_}5xv%lloFCjk9H5=Y`op<Dko57nr
      zna4<;-U_3>jT=$a5_e@wGsru?#zBTd<;?^*9fJ!4!Ns%STLZy!)c1qu&w>~G!6c;=
      zl5v|ljr$_MD_AD(wdPJ3`0t439TK%Nw4(it)wv06X*E5a9?u`*y&o|~DMRT8T&3kD
      z*7kDiM|d=yKEy_Doy#FUsDG!432pAxPyhWjJ9lgT2p|0x=QtC#ZH0H1*}D78>H#TT
      z=h&9nrVZ5aILv?TIFG1!B|V`{gwhVBR49FdPuVgZ4^e0PHAY*&E<QtAq|^_Zm8aBv
      RCn~=~O(PnRr(sr~{}26SXwLuu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/Annotation.class b/libjava/classpath/lib/java/lang/annotation/Annotation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffa644d1149c348bf61d580ce4ab7b9caf795888
      GIT binary patch
      literal 355
      zcwRg8Z`VEs1_nb0L3RcvMh5w;#Ii*FoW#6z{lvVy{F20y%=|okM>vz6frXJl0HMe~
      zDJwO(gpq*{p*p0pAeE6pSVPkXq0BiavAEcpk%2QfGd(Y{q_haA!W>hDjkXT~`>pMO
      zrm&?JmL}#DGct&3_@Fz*S~H4~fg>ZaIKw$V1!xPihNdS_pd>%Iq$o2losmHV#af6c
      z&`hr2{L-T2RJY6=peBBVg?b>hY>W&*lNdmN1?YcP1~wp{9mr#1-~jSD8Mqig;lj<p
      Q1EzTy_<(XiW56l|0BX`)uK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/AnnotationFormatError.class b/libjava/classpath/lib/java/lang/annotation/AnnotationFormatError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e033050ab0ac02167721da47d244fd84b2048c6
      GIT binary patch
      literal 744
      zcwUW=J5NGE5QWbma1B0C6h(Y@2t;D7L5+_DLu`0hFSy_}u$%0?XyLE2BC)Wt^1t{G
      zjB)l#)F2w0-Pw~f-<;X!w}(dnJ6LxRB4n?{jVN@4Y8Ql3+84g7RpIcnJk_Qv{1aoe
      zaS$fNzx;tnnDL}>MW-%}$NpOBm_TQQsUxjCUnsvWIz1VAddb|i4r;H2=$@-wzeq@C
      z%3rXGZ(P;h-KrD9NBUC6Fox+##4y1#%dV2=y>3IAs%Ug1AyL*%9w~S*zXxL2zj8f7
      zzWo1{b_q^bdY)(p&>wO5e@2A-rc|$tzO~~yxsAMNBPR)wrs#RhOpf#tQkg#>D;AO_
      z#45UHn)1}O+oeY?ux%;W1aTYqOe2CQ-wwY*7-yC2AM!cLN|Ch?-_dNYkE#2>6X!D)
      zs73DG#|&2sA1=%y0R+_?=9ytx$pNdxY&+A*=JI_k48!W&bP>QdK5U;bX8^NR3QO#^
      Y*z~A~%fr+bM{NHR(XwpB)u3nX9kC>wAOHXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/AnnotationTypeMismatchException.class b/libjava/classpath/lib/java/lang/annotation/AnnotationTypeMismatchException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a5969470c580689fd31c285482aa61314835f6d
      GIT binary patch
      literal 821
      zcwU`S$!-%t5Pjtpn@JpuG2m=A;$R!Z2nlfkA)&A+!O0<uC64WJ$8I#!W6ks+_zHdn
      zBrGHjaN@#0@GFR#j^#iWkT^`utL42~)Zc%8{sQ1GZWNIr+<PTn3)dHV<O;1rBa8~Q
      z`*;rb-%jMViUVQ1@zXb+oTR}ba)ib)b2rgO1#+GzEX6WX!tcu{X8&OG34yi<3mc)1
      zjnJkq{6yv_-|CA$zBb+wiqe;X)P`ky$GVX`^rdIqZE42g@ByK87$$m{&P1sGR=8&(
      zrAJ&)c&M~8j|gu2e4W$8PM?t52#2zaEUFF`ahZ^9clsp|t~e;;Vv4RhaIiqA^puu6
      zNidMnz8Ls+n9$>O1uxD1ESNK66%+3F{^!QL3<ar%U3R72`P*G;f28NvDDQ<y<jH3$
      zo#y608s13-(Bd_-{64a1AddojMfNhdz#m`1V!nZ`Aih(D?Gk%0IiB(=-A}mGy){Lx
      zdwYud2TQodwu&6v=WI7o!WL6s;5tW|M>KA?3|O?nZOEckZj@nM#@ein%l|Z&?|ww>
      f{an0Yg9ld7IVzY568r0Ckn1POgEPrZTh;mnRaUon
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/Documented.class b/libjava/classpath/lib/java/lang/annotation/Documented.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0c3baf46dff3fc66b4e950d2ba8c21da4e9c2da
      GIT binary patch
      literal 342
      zcwRg8Z`VEs1_nb0es%^XMh5w;#Ii*FoW#6z{lvVy{F20y%=|okm;B_?+|<01)D(6G
      z7DfgEgd+c>tkmQZb_O<FS{>m`Mh33n{L-T2RJY8WR7M7VgrRyMos0~UL8W;mnYpQ9
      znZ=n&IjIPp#f%J!J_H<Q&B&mDT}@DG2~Y))1ysUXmY7otv|NpV(t!M&%;ZX-2KJy(
      szYtGfS2ackMh0deW@P{YCI)se$-%%0qy>R2E+EYfl;=rh;AP+g034HJ!2kdN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/ElementType.class b/libjava/classpath/lib/java/lang/annotation/ElementType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09f77d0415c7ec5564a9d43a7cd84fe147cb72f5
      GIT binary patch
      literal 1451
      zcwUW^ZBNrs6vzLUJ+vzYDk=&-As}u8nLLOOn@X7l24f?1TheG^%B)y2I<s{od?4TJ
      zd?CSTd~JN|NAPPH&%HFd7!;PQ=l;$;=iGb#_qJbu9)1QejWr2f48uG2o}H@M-ge6N
      zyt;4uZrw{6HD}lH{L=nwM?#pP_fM4JwRRc$^g^Ln(o4Bw;d#m0Fc?PiCsj%_bZ3hN
      zv$R>xmWrDUk)@oGe?rys#jKuxUePym`eL4HMc0keN|9!y4L!T2FOw^_p>OKsHYhKA
      zw4&B@8m?WdIE^N)RL)U6TV?3U*1e{0dw#{PwVcTK_r=49z2BO&xKSvtk5%-1*)SPK
      zpPpvJa;92yJ=cH45Q--%w05@s!jTbCz%ZoZ5-!trGeO8eyrZV+H(YN!ol8_=6nj-g
      z1W_3hhwCaN4l;)^6*7kyhnp&5925>o6$*!L4!2Zvb5J?lR-tm};V`SB2T?w{qv9;i
      z(dpz}&ndKax12`F-l{na{rP&8q_RmcV&PN}!Vop&zj8^O=pI*#1~=k~Qz)b0As$Ph
      zp0$pS_nW@6t6~8<9hlu{*!$J`>wRjZQ<vh_j#Ks1xno>8uCOF_QhdoUe~g@o)9ft-
      zL&YMNNRiGG*_z#KrvG1)UvD~h#jLj)RcFcN;%Ob#r+6rJXS&;-?Y9~<J@;37=Hx9t
      zN-s>)d4=djR2ByL%>c+sft3Rr3#<~@?!c;n?co+f=tUn@(`ej<GujZp1T+p)o%0x=
      znF~Zei23i$M=-1ZV(0?~-{XpaYheMy0!AVNMg`o63K$m<mjomPOvnNz1x#s2aVbI5
      z+EL()CVwIhwQ<F?!fgzjR-}zl(~7n+Zdy_s3Dc6>m^3YoTq!c-n=#*G?wx35o}S|*
      z0&t63ouWolxQW}Cqpz2a85A&!XGA-gz+I8S|MW@*El-ocTw*CXarp!8{V5uy00c>@
      z7)!V>w2a{a(n0z>oeNJNXk*S=3nf2W8Q#x&=+Xf)lW+g3#(r-hMprKz)JT$t&no>a
      Ud4MNh!2X@rg=O(vK~C7!U+H=><^TWy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/IncompleteAnnotationException.class b/libjava/classpath/lib/java/lang/annotation/IncompleteAnnotationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b13d92081be4ccb21e8546fc0fd0920595e68df
      GIT binary patch
      literal 1006
      zcwUWDTTdE66#fPl5m>b%^@4XF8bBkl(ewc|Rb!JH;)598M>?U??#_~BF#4}F(U|n1
      zKfoW=cxE6_VPni>&Ys(M&bR06KL7jk7r+iSl87;U{>86(+2g8N=1K*cYZ<8Wchv~|
      zmM640>N`(w8lq*CBpinP0C&+*TKb|NXP6w6y1Z=(hUw}c{lw$#c7-8TlTF2SC#3k^
      zaD0EW8cA$Gr*cR&GQtzSQ2LzvR3-Z#rlv!wnv^oOFO}4X44(=kBu4X#b%wK%#CNfY
      zF6NvBKSUaFd~lJ$G()^ltf#;*<064EqkVLdLYiT!DwR0z_*Wvl<X4`3p`gLNIuE6>
      zdrn9Hlx>FHXi9Hxu42%3A&#;Wn|<AYLcJz4g<{0YzKnX`H5!K8D`bB;=~~bU8{(TZ
      zJvZLuzHQ)Gr+LNc^NrD=@sX9Z);L`nBI$ARW#E$CjZ9#Yp1(;mxT(?;-OWd2OIwe~
      z-CMvc$t)a_2PD5zp(6qvV~#v)T^Q!E09Y+=+Zt_=8pg0hy4&;Qi3p>Uz;d6!iX~9C
      oejrhLK=#fCOxtd$s%_ORlIXRf9|Wr;hrzjFa6J;dX0z5`0QSG`xc~qF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/Inherited.class b/libjava/classpath/lib/java/lang/annotation/Inherited.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5916ecf2b32ab1cfbd03a1210ae31b6380a88b8d
      GIT binary patch
      literal 441
      zcwU8$K}*9x5QX1VYqV-xy?M~8haL@{Jp~#eph=0VARc5Jhq@)*NV+NXuX*qX_@l&$
      zhxQV1VRs(9@4eaYpU*D<*EsgjBAm_iQv12KQ(s$KIPFYf{m8y^X&k?K*e3KhOfs2q
      z<~-~W293#JEeV~6qAD}KH8~Ty>&~k>NH|F=>&%>=%)(4^-UJtfi@V11QIS=1w$gD!
      zIB#ZBc0z~}q`lO6CA)|JpyMJp*-8Rl`WUO|J|vtrN0ct7?1a2*_QRa(531D%3)BnZ
      vI8lL$lK53UkHaB>uqC&R`n2Hvy}Q_xIS{8Kb6@-e#v!`s)$#?z=;P=Yt;K-d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/Retention.class b/libjava/classpath/lib/java/lang/annotation/Retention.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3badb946e25846464f607e9177b66b8956048d8b
      GIT binary patch
      literal 492
      zcwUWB!AiqG5Pegvt5w^oCl6ZnQ0m3t*;Bv>1x-p^1@R!;IFyv_M%tv%U-RGx_)+4-
      zLwgD8VRzmz@6CHKpI`4E04{N$P$L|V&D?m_xRGa^%W{*ane$@K*_B9PozPx!qT!g6
      zTw#OIsZ{z)NT|<^Ett^jo!|a$GstY3EUpNR`>dEIe3M$yHJ9^?QcgIG3u!0(n9kCn
      z<(1cra9V9~oh8LYmhh`=KlvkuP`dw3s^W)G_wNG2QME*y>4<Y-o>k8S%VjXVcw-^8
      z{4k8PulrH>qMrsqmq1vPSC?av96@1IPz_r@e*@c6JHptJx+^@zXrhI737<iXJ?wu2
      D*vpV*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/RetentionPolicy.class b/libjava/classpath/lib/java/lang/annotation/RetentionPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0bed52dacddd71cf69716374f49a4c0da0b4e17
      GIT binary patch
      literal 1186
      zcwUWDT~8B16g|UsyKPxMtblxps1@3R)S{rV4T02}R0}mMZPNHO)Df3#cg^k=)8F8q
      z(eeP%NPO_gU*fYrz<6hEq#<a!$?n`UbLZT1=FWcq_2~>i77sNHFeDE75zkoMKFDy}
      zc6{!ej-A;RzOZHV!m-RoTSJIp_&l>{x0(!Up}b`n3=8FcIC2cyZgpp`v|VHf8<pyA
      zfr3#_xF)x1!u2S#T6)63o-qs+9NY7`?bo=~66z1}?)2Nw+4l^C#hvPQqPA787OC>$
      z%YI8o@(s(hO@D(yNv3KHp@Q>DM4-mNFs@?)*GN^qn=+B?;Wd2Mv=4HnR4q!mQ#w?H
      zBhVz6)uBlck>G}o2*NVDsbd%;3?pUJ7CWuxzHs;Wz9ksqWv4-IIe8`=Ova#Kob>o_
      zOphcSNy8MRlBqt;#gM|1hBO^!kLb4Ni>8ic++~Pz*X8Yo^R~^9?zL9gKNJl=SGr`X
      zBo9do)Kp$GJig>aQvK>vkkzq*Rfe@*nu5hWFZX|5dDEzUF~e!O4e`{Jhd6ej!ir2M
      zmxg&@bHC+M%A*Su`TnGC<TkU^KZX7eb#qEK8lX|@juAOx8d1nwGf43O^wDYAY>Gp)
      zK8h=}5+~FoET65<VD<P_<pg8Lm<+&lC;&47xUL3ZF8qa%(!r!r4|OnO)YT5=jAP7y
      z49eW1Z#<w}#Sqp=L=KC{;C8SoU%J8F(pfSfEokYb*%Ktr3Br_s?j}8mHQWh2MX^A1
      zf3~laZ@GP<gZcV%C4E-UOKscA%qfz~A1<)5zY?O<;!Kw#O*3*e7H8>G-1`dl?|lQf
      MAABE>Ejh0L1|eJyy8r+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/annotation/Target.class b/libjava/classpath/lib/java/lang/annotation/Target.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e7bf4c98209cf99205e398cc36f6571472dbc4f
      GIT binary patch
      literal 483
      zcwUW>K}*9x5QX1VYqV8c^&}!y!J?N2&z=HCC}>jRDo78qjYCP<Zlv85`qw=81N>3q
      z)PlVP^sqaR<$G^tcR#=0KLA|ez(a*_G}1He8*PWawl;U#Wx4g0o($P}SSK`BKs*?6
      zDyJKSR;excm4xa{n}P}F7nl9JQaUs|X6w}ajjsu{hrF1ie480D)t3Ww7CypZQdpOb
      z`6-)b1H-E>Q^IL^_D!A^i*SCG=#z3LVJCzrLE3*Hz1(E!TtF{*j8ykNBpjDpmXiy4
      z_Mclff+&hrpt^DNqMmzUn?P8TRh2&?d43O@qAJ+>*=wjvZ3(e0bw@alv5N+p3)u%T
      H_OSmAt4xep
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/instrument/ClassDefinition.class b/libjava/classpath/lib/java/lang/instrument/ClassDefinition.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1d143fb6cf4b41dfd10d02ac7a68a086e937876
      GIT binary patch
      literal 875
      zcwUWCT~8B16g|^!Sy~oLVO>Q&L@1_Rh>gz>j4k-I0TM_P!_&47WtwG|Y-f!=`-e1<
      zkZ2-rn)suPcV@R~Z2Mp~**SCXx#!+FGr#|Q`vKr3woT+1s(t^x-w6D$*AU@A#>q7g
      zWuq1NgTW!c6rqqJ3QZUc3nS)9r_Z~RVOCyoO=YNfqqGj~F<8U&8xe4Z+(naNW?yL@
      zFgUe|ii>8w%}_iOz0j9QOeM<`q<!}w;~A~!9WNn|vV|fR81l7x+r%Qn`l#kO34+r|
      zgp$WcAG-WTou-5e%0)0dv{1l|LXRw%m}Mw?BIL)(b%)32en$<x=tW&WX#25H`z&b4
      zD?w*|?){H>WQ6mt$j6(ZkUi~q)U?OtNFZ}~saBuju`?M>HJnL}^csv>U0p=!EK1@o
      zPh<Aj%rBHAy%92%-b#)>GD;(|iPk)2iYU>3PDd@w)B1^!;y-oo@L=aB%-vs@`;N-n
      zJ1pJ1JGZdi-CH<cw7_HfKhdJEVBj@LG-0EKWgKE1N3;SPsT}cE0FBfbOd~Z&4y%N%
      zEK<N4A-aCT!@)N6U=1Ay3hr0fpLIgDPo+HFDitYYtr(tRlm6qy&Uo?p)Z#78s{RE4
      C*S63A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/instrument/ClassFileTransformer.class b/libjava/classpath/lib/java/lang/instrument/ClassFileTransformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d52c8a89d5dd01eaa082bf44ca0e092b234e5fe5
      GIT binary patch
      literal 460
      zcwU`Q%Sr=55UgHf*2D*1^9RO*tLGIDQ3FE2z<SHYb{&@qvoq2&EBb35`~W{noQ;o&
      z<RJE`x~MLy>-FvV1;7z@QY3`ooF6zdY^zLLAEc?34cVz-@5kDxD`D&JoYYEEbO^gk
      z`Q^=Am4VO;UmC*o-ef6Qm`ohsD#?G)MG$SP{I~Fv@TzP?ho@{RE<}Ir?3t@s+k7?}
      z&PIg(`D3Z>Ti&PW5e`>AaAAz9*nIpEqjC5?i-`+eSq_aTLizv1$NMLL4qdoLO4T+>
      l7_4gdpf&0e2y1AEV%h8HB0(CrPUJVxk0`-r#9Irr{SILFk2U}R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/instrument/IllegalClassFormatException.class b/libjava/classpath/lib/java/lang/instrument/IllegalClassFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a11446d756f512ca72066e4414e8366dbc9b52be
      GIT binary patch
      literal 554
      zcwUuIJ5K^Z5dH=Z&YU0!f=Z<wU?M&$gP{RQFvJGEe!&f_IrhvwjQ`45kysdODocNj
      zaqb{$G%>N*dF+0VnVr8sJp(vI#YBQ|a3k(S!x4JiP}&c?a4L1s=sAuY3#aV}-|xEK
      zR0L=DBY7JrSDP>h#V^+910nBAPYK7Cp3nVNuS1}7LbmO)ve1DooKU9b50lro7jsNV
      zpDL|_79m-!*#x8QUP}u}tYu(fm5}QzEic09P<oeQ=tx4L?~d3&unqUiOCy*lpK#Rw
      z?<!3~srrpI2t1|7&6*tzQHq8r@&<ln`wK*{25#t$WLHHq?EGP~ACa*O-jhF`P(cc5
      z&L(#Wtni^|Uyd2RIp$29Q}r3Lk1-_2(c%o8z(5mut}+V{)=`K>dDf*si;)pFUEiBw
      a<EKK0IcKp#d4XCgL{%A^vH4ca+5Q0BW_&sT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/instrument/Instrumentation.class b/libjava/classpath/lib/java/lang/instrument/Instrumentation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62d3e0bdc4393ac7851fd6294b1d62bc6528ad99
      GIT binary patch
      literal 690
      zcwVKF%}&BV6ot>AQbqX_@Q0NP7ex~q*Q|_6f+3oSy3p0Y3}i^#A=8!^AI*gi;6oW_
      zrb$6U+}Oq3>D=$0p1HkW-yfd<F3@z4BRHMXIrV%RPCOAtu}T6S#$GSm(pbpQ!6rdv
      zLEaCid=wLuC}WR`hS6B6fGdKw+h419<<ltY3ZF00oz^o!Rq;U1`9DNn2$~{#;Eaz&
      z$SuR8K{A_36>~<g;Toi@eggz&?&}|)xi+vccegeRH*X_8Gp~_@GQr8B(&BeA?#d)&
      z8Rno$;H}kv3IoZ+SkR%Ly2*+NY7-t``hH(h##v^y?zWb_+Vf5d_l!vzFTv;TDr(hq
      zr`Bl{wMP0k2jZO*G?uH=M5lGD8!(WG8gbKo?Pp~?+NLB=pqmZzIC@&PkcXKX2irF8
      kpkU)J_B2=2R315$P|;`msM%Z{4I2+|sPhCzdd=bZ2aR>j761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/instrument/UnmodifiableClassException.class b/libjava/classpath/lib/java/lang/instrument/UnmodifiableClassException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5c8e618ef565ec42ee2f575ac1e485740a9115b
      GIT binary patch
      literal 551
      zcwUuIJx>Bb6r3jq7z9BOP#R+gn0O&JDuxC$(GVMiet{L&9DC;OFed&Se}NT=g{6h1
      zf5hIx`1T-bG!_>7K6Yp3&D-bqherT4l;T(**q7p3*pAR6TWLS=CS$1syQ|0UP@OB$
      zcVyEMzJGW#kXM0nbsQEU_eJ`AAY^>$DdF^_=X2jZZV~8&kZQUtEOgKl&O}CwFHg6x
      zcYAMy*n!e2Xb>XhN{?VQ-Jwh%g5@L<SR$m`O3Ty9xG%jkV}y`xy8|8|ywKSE(h4q=
      zPpGy3xk;UnFMlI-0#E5tz0xxt^2S4s7x2y0Um!xF<4(MRJW|HO#@|!64Hui>E&108
      zB}5V99OrHUi+spz%Q49}JDiDgv^quVK7^z>CO8ATu&|E|SIHR&E69eTY;`WsV5Gsu
      ds#{a6{#0l(rxhv`W~jM>sR}5D!`DL2`Uf0Vdv5>$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/ClassLoadingMXBean.class b/libjava/classpath/lib/java/lang/management/ClassLoadingMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0682224ecdc1b8be5ba95083e8bb511fb00a0bf6
      GIT binary patch
      literal 301
      zcwTLfO^O0R4256$*Z$2Yi0BQ}jg41O5JnUi{vht6hNh*g0;}|Jv+w|OC^6m0xX>)}
      z;N?qr`Mdw#01QwMkWuIy=}Ms{6NM)-6!D3T4@a7un_4==CYo)AOeR21q5gvByCd(t
      zLL*|IfP6@IM)qRF&31b~3T>G!ttb5vm?$&_SQ-5`EyZrl=bd$&l3RtcWB+gEy4&7b
      xyoJ4-_dJfZc&+!y{UmKcL2e+aynK*H0m&x;im8^KT1F++D!znN_?DhQ?E$<$N_PMN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/CompilationMXBean.class b/libjava/classpath/lib/java/lang/management/CompilationMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..452295df969afcc16c4943c18a11abaf12c5d439
      GIT binary patch
      literal 270
      zcwS|WJ#NB45QX2EpA8O?QlR7lQ3MSZH64*CqL>tR5v7}uk+qh0*K!sPN09??sE9R<
      zQJ7*zn(xh<cl<m20$AWqAtF4Nyyv81TO@`p7h=Tv<i(j<SM0U3>BmagD)b5Wo%a2!
      zl&vSILi~n}5GK>vTgNlsXj?1^Px|M=EZ0U-XSH`N&USU}8ZY03-gNd!cnog2^IZKq
      vIrCRSoVi`Im9?(I>ftKny!}5U1UcI3h0FsC(Pme;InNQ|KnS;?M;M;~Ya2+f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/GarbageCollectorMXBean.class b/libjava/classpath/lib/java/lang/management/GarbageCollectorMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64c5b0a7f0264d260e0ea71d36b7e69e15f43e0c
      GIT binary patch
      literal 257
      zcwRg8Z`VEs1_nb09(D#MMh5My#Ii*FoW#6z{oKU7#PrnM)VvaX_r#(kAlo@VCnq(z
      zB)`Zv!YMT|kDY;qkwE~V!9OVrD9g^k#>k+7)fnH@-29?SU$6kw3`Pc_^wbil!I}Aa
      z&iSQzC5#Nr8k$~=41y?9A(^?Uj0{}C`K3k4scxA$K#nwahv|WA2f6}i4iK{fy~hM}
      VDLVrP1IWdkAQ~vn1rlfA1^~wcM=$^Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/ManagementFactory.class b/libjava/classpath/lib/java/lang/management/ManagementFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d022ca4273732513c5712d9f432ef03aee07671
      GIT binary patch
      literal 8693
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/ManagementPermission.class b/libjava/classpath/lib/java/lang/management/ManagementPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..194e9914c840e395e436df2accb456fd02ede58f
      GIT binary patch
      literal 864
      zcwUWCO>fgc5Pcic+A>Mnx-@M<0wD$3G$B#XK}Zll3JOrEG!oo4?&5B>UKf8<aN*-8
      zaD;!sg-Rg7jRQXlF?K_ON)B9R-;QS9n|ZrGe|`A|U>i3KWEdKU{FrwX*KWt-n!Cai
      zI_f-}z#S2IG7P1!4P+UrX?ZA|IFQk+&K({~XIjFr7>Yo0H55T|-|OFHU=JAbJzs|r
      z*U^xxSj?68dTZ}1AGR6hZ%QqrTMR3kgXtu@Q6RP3Z44Q*J%3+VIEO+G7S5YkWH3CR
      zn*6|mjSB{rN%m}S4l5`Uy?7CG6`rAgJUSFk)NMR7u|{l;ucN?M2FeWeX;oh-;c|65
      zaO1>?doLYv6wy*9Dh$hgeaw~IuN_U6Z(As#z_2ioT0DxqkqDmfkrE8{z<0<KPR`JM
      zoXkcCk_KxI{`&#C)TFtW68_^A!^R8;XL)LYp<rTz0VW#c-JeysldKoE$&xW-uy*}8
      zaKwF?j9i*ERXdTO@5JbhK(UND%+qPmEkg<!!t`(ybCelTRff*`R`Ue;roHePOCM2e
      z+N&wZe?{r3eend<@1N5COB8KnDGK6!j#aq0f&*NpO!1TnHOe4Gb*z(4qIY$y=aODB
      vS2fYQ*7|{B%f9}X)aERy*Ch3Z@LN>yE|sdCl1!wkW2ppf5lWV9rYx=BR+P)p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/MemoryMXBean.class b/libjava/classpath/lib/java/lang/management/MemoryMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..019e5899ec938b805c393698db0aff2952fd3253
      GIT binary patch
      literal 349
      zcwT*w&q~8U5XQfWHL>wuTkru29@2}!vp0oO!B#;m(%Uu;%a&wTlC7YR=D`Q>p~THr
      zR1n<5e(*8Bnfd1Z<Mj=|DFz85!f>UYR9-64d8I^Yu2@_?<;vF2)BAH)lAuHA{ghoV
      zS6nzkqzl4UHkuO#n%#ue;|9BHd>g`XHoE$!d8j%g9C>zT<qtme{$|t-%YzX;Hlj-N
      zqMWgEVb|iq^h-k5G;^+(w&CC`2x-Ia+v;SCcE|MAuIqxwru1I_cfgZ&%b4J4v@iB~
      ew-KYwonR+u_e)dk2HnGc&;uNL!r#aL5&EA~byukX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/MemoryManagerMXBean.class b/libjava/classpath/lib/java/lang/management/MemoryManagerMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ada025d0385e311cf7abd01e61e882506e3e8be
      GIT binary patch
      literal 258
      zcwTLe!3u&v5QhKJ(z1exf*wIHN#|}II%NeyM4dKU7DabKE$G!c^Z-3nwA#UobC`jd
      z?;pO;_w@#_#K?w0a1-`me#)fqGbWkf8JDFW@J!{;pkCy`Y0a6m(IJc*dVfuLR1zkF
      zmw)`ARJvmsF9<W&yKEaaEb~~36~WeUg%GB$*9yeNk)`pCV7lI!;DqX)M|=~fIx}z4
      fT2xOgf)1c6Q(Janp|Z8nt7jjMz7Phw8yNlontVd3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/MemoryNotificationInfo.class b/libjava/classpath/lib/java/lang/management/MemoryNotificationInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b64e3c9d9be162cb9541abb094c885812bc60dd
      GIT binary patch
      literal 2259
      zcwUuNZF3q`6n<_3Ss+UqG1k6m)0nidq+qq0Ds8j{k`NcDKrrzwvw;oSy6iHrIPHw%
      z%dhdZ8Z*YWI%ECj=vV)b<GFVkh$$iXVRz5DbDn$7dCtrJ_0KQA0l0!q2_p>AJKD!u
      z+|;aEyslYVO|R>g6VK{(yLm5XJI1zA(Hz6JGS;>&!NV}w1LU{v=oN?IbT*yM7dAFa
      zD}{7%C9kG7)9cA}I+ac_gw&pW(P<i1Ex`~>+E&ZaET^oQZQTbyLxh{fdLhK>B7~T;
      z)6`o#wpoqocPqMH)vFA%9e>HZs-}~rOg`7gwGT4G)gx}L*rrLLQ(k=?_!_ot=Cr!b
      z;BB`E%P^x3AZm@<P+s1O-L{Ajw#qPe-LMR2k>OhSNeYg?Y&BA5@FeZ39>6G0$_U|E
      zhS6}O><2L}BZx6Bos}_x6I^;u#w4C%IH4Mro@>{)^kzxhGId@9yP}z8t!Z$*bLeq)
      zj26S?L7^OO07}ub-L&fr8*Wl}4`S?wZjo2biYM)Q!)_Ulp3)pG5&2&(#xaLW5-u`?
      zhxH&Mj0kmRO?SHIrF#uZay}dxDo$>l@FD2OJYo_qGt3Qu6^(ks6c`zCyhyb!mI|5N
      zGQ*`o-g>Y^059RHgqIo4_vNNUO{rBmA2MFSs|*vB9li3=O^4cNtL;!`)!_;tydBYh
      zM_}_L30S1;!-OBNAtB*)n$Vinjt{70cKsH?GnAu@>$t(-7o+1ALK!|<A0~Mj-js2Z
      zbL&y_xn<rINf{}mX$Gjw3>W)M)xkz{cM}o4jEsa8hUw!*PR0yqZgayCdwgfRb1Xsq
      z&(3s1m5`&F_D)sXss)h6Z5eN)K-8IZAeN(;`PBf;cZu(Sr-_g%xgM5L5hfpYQ3aov
      z5V4}hNxa?Na#P{RlXSZFYwrG=4G)nlL!fB4n-zV@;49{A{}GSzdvJkL8l@kR7pLhN
      zBTXW01U}LO2lR1zXx9muHl6s=o)bvM8KL(SX(rv~rSFvT0M97VeVkI}_i;wKu#a;;
      z3e@xTJ}GQIfd`+$kI(4F&*_FQaGp*TIwd@&DK-cxDB|D}_dFsb?t7H5GkBrn`7v4X
      zOg5B1;AOkYBg`_W(U7u-=tEqIh8Fg4O$dv7c!LBbwD1VGM({i49%3o`E7*n-QaVR(
      z%`2hBj-34&`3ETOcEgVm9l)0q=vU<QYYOliO6gk)|2x`&_pyNQv4kI}>36Y4GEZyT
      z4UY6OeS=W(4sKBB3zUMJ7Q;FUon+!dCvugaaPEHBvCG3_aiQ!Qba<kF0p9I`Sr>e2
      a_YnBczTo%pejo6e!{ERBf<F*eAN~vBf=0Rk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/MemoryPoolMXBean.class b/libjava/classpath/lib/java/lang/management/MemoryPoolMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..748378a200da068b5d3f04e641bd2fa6b6a9928b
      GIT binary patch
      literal 835
      zcwT*y%T59@6oyX`8B|0-KoBo@ONNcawL6I}h$sn2jIJs)!{E%6Oa~*c=E4W?p^T@c
      zDwi;`nE$l>&aFLP-yfd<Z~;dKL<pP>=o_s%)U&EC^{B;M<^|OTbGbima_%%9uNd_V
      zh!RNsqxUZZ)(r?`EEd$b<KV*P-h)7Y0;gu>HYBQ|E(w$tecOGXi9UCF1Xj#Soj^H+
      zsqvAACFBs91a7EI{vCChz<smwJXJ<3@NLh+v<C7LA&{M^^AAWM&}8&gcO&`sc!<_X
      zcwZ7i_c-#}HT`Q&^_5@P(|sJ<Vp*rx?_I`vY;r44Sjcj;H5v}NA4s-fi)CSo^G8!|
      zhAleOvC&H6;mlQF_71+A2z$4vS(i{+EVjPh;v>JyZfpl*<>p81TwZOA0Hy)?WpLtF
      zAqH~t42UaT)4C2DN)xcDG^x2QNGVP0bw=~sTC<Q-n%BCcwV<`Abr(uX_h4V?fmE#Q
      J5dRS<{{YJf<3Rub
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/MemoryType.class b/libjava/classpath/lib/java/lang/management/MemoryType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74f016552f37bf70d7a3a55a5d4d54e0f4b2fbd4
      GIT binary patch
      literal 1030
      zcwUWDU2hUW6g|TN3){6IT53PEAEE-S5MuNN(zIzX68SK0OG11w1CF@O?$Rtv6aJOb
      zhc+4;pZ!tBJ1Y@Fs&tdxJ9p-sGw05o{rT(b6@UVADgq1}C;W`(E$(#lHg|Ye*uwGh
      zHDUMM;nDC^s0cDFPC#X6U^4_?l@H!9Y*pv5iwu!^qyGL6e4$)FuBDm>)#I|ku>I~P
      z>{7=v9n;%mP|}$u?R?n#AR-89V2J66<2FOMG=?P8Q<8?~nohS^$uy&cy`v+9a0IGM
      zk~&m`<>;P{2%;oaH62kO*lpn+@wO!x64hRZTTSkoGWRDnD2R~-?~~c5UC+2R5Hv`o
      zGxJN)u!(IITMY3ji^IMrY#k4gVu*6r<-<<zbjXmME~L>u5go5sxn`;&k3{v2G(Ivs
      zzo!1o4Xi0h>v)9BjKZPC`~BkoCFOmfK50g8;C94IQyyJxBA$~-s?9LF4)+Ewtv;J!
      zm*yJWEAAJlR|;KQWq(EX5um8b7+;kQq?I5=4GV<RDSJz~d~)BwT8UfA1s2bd@RPei
      zKUoTWr%V|kVYGrHEE(rm{z8lZR_Loylt0NT^7O*b0`j(v^$X-i`cbnx>lav?5W@t(
      zn56q-73<O{nY@n&WBLm!Lei5XEVo`O*{fDbx~VB^m)O|-Jfp_`T8L7Y9*;G$G$U8F
      W1j}CH$q%r9^8$pH-yQ7w@#$~g#N@L8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/MemoryUsage.class b/libjava/classpath/lib/java/lang/management/MemoryUsage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..401f08c6543f3a048d9057349fffe002eb6ae66b
      GIT binary patch
      literal 3061
      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
      YFbhgMoC~g$H{}X%g)Hqg+t&5}0q+m!EdT%j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/OperatingSystemMXBean.class b/libjava/classpath/lib/java/lang/management/OperatingSystemMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b63966b93f9ea5159a24b59d1a0d214165c5909f
      GIT binary patch
      literal 263
      zcwTKzy9&ZU5S;TBpI{*tet}vTtgW;V1YZyk+f7(vB)Q1lDfnv^et;h(-l<^Y7P~vl
      z?Cd<Aw>y9_S{@1l!y{eDPf5mpMv`LASQ>wGVnrsAad6d!v(<jaBt4V_+CTj!JaS|N
      zyqL{YMF)XSf3W=Vfl=0BBG7e$3neLqDQ{ICvDUfL0>%Dd@ws19#sYP_?O5p~mlg#1
      qSw%cgQp@!ICK|bC6#?r6S0x*;j0#*(57qaqeR17Qt8Ca_K=TC}VnY-F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/RuntimeMXBean.class b/libjava/classpath/lib/java/lang/management/RuntimeMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..292d8b8b077b1a64b74ab39ad2237e52c9127219
      GIT binary patch
      literal 731
      zcwTK%O-}+b5S`-33Ig(_;&<Y~=tbhmgT_QmOf;ax)s691u~}=_?xs6y!e8^?5Aa7B
      zr%MG9dU<^_Z)V=4{rdj+1b`#haUjEB_l>{vMvp7M5pczQ5eS8iyF{T3MEkKRxN=~Y
      zL20DBeSQ;Nq>wML8HRY#<8j>K_{yNRf6y8UUDQ(fCk*nW{G%!py;4zv=h{!qyqH1d
      zw=zN5YqVsHRF`$7uQ(=JFxZ<AoKB89qoN{pZ^>uPb$>9fPJ#AtH#ZVpPv}^Nih)C^
      z8y-;mMY@^PfE6tBgn9|}pyybj*~mq%@m?DJ%>KbOgQ^MkV-!J0hmp`I1#MOyGv4MA
      zc|86fo3hLF?XooEA;NU3xqHFLzZd-a&0A*O)@3~QP;L@Mp+@nNI)7r2bHhY;#ii^~
      ztIF8x9~v9;3`h#*l;|_e!918x;aFUNEah{Q&A=k@yp0zu7A-DWELkjDtUxuz8Y~a{
      ZtPo$d@w(NmSzNcc0h^>{u$5M9{{V9exYhsw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/ThreadInfo.class b/libjava/classpath/lib/java/lang/management/ThreadInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f878343ad66faec3458656b67de7f009cb2f999
      GIT binary patch
      literal 7798
      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
      N&OMp^4~PZo`X9_$olpP(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/ThreadMXBean.class b/libjava/classpath/lib/java/lang/management/ThreadMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af295c329df8073e09aed22fbbb309156c24963c
      GIT binary patch
      literal 1008
      zcwUW@+fKqj5Qb+J#j~IYh-VQkHxjSC@|cuJG(nA#s})u(mR-_reK;?C03XUYyIsm5
      zgwTtA$v^+hY-hT^f8Rd<a0Z1qOc6L}(JxwZDQ}kAl+z|_GcHSyA0DHP%F89AJPt7e
      ziJtBLt;On+!1lYt8x_GFDZFcRyQ2Qd8eyhSAZ8V7Wdf^BCNEq!lx-ErpmG&>9`*^<
      zt4{Ffv>AbEtB4ud;rNr!ywH%s&^2Xk!A+(JxYT(zfi(<1F#0(VT0wC@Nc4nm+n7~W
      zeV3z%&EExqBb4vPOh>uS2^?Fsa<Mjnv0#<$NeZ4|L3^T#$>_wr5#^L7Bz3Ejda}C@
      z^YMF*KWg&Tpwkh`tVj7uAn*9yJTB4g2yPbb@a7GtZ?5td#<}`xrXye2E-H{63iRcq
      zJm!yBCm!z^H{<t~I_7*a>s7fk{?NuF!$MUAUY*@KE)Fi)|IeSQ;m;Dlj-Z}2UV#~y
      z1$7nThI25lxnQ^mOPb4uD~79(&`iRb;kseUa6>a~d>K<O3!9ob!!5&Y!yUt2*wfsH
      P1I<H4Jb519Q*iVT@ZS@e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/management/VMManagementFactory.class b/libjava/classpath/lib/java/lang/management/VMManagementFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98185d22de3d711605bfe9a2b0c8c6af6ceaaa9a
      GIT binary patch
      literal 444
      zcwUW9u};G<6g;<~DWT9(sMJqLJCHJiSSpnzDM&?Gn4Dk*SBWhd7m3eeLSo<p_$b74
      z8WjcxEcxBL^ZESz`Stz*;2ftuS`6WuKl7;Ms)#DCcp)mGY?LO+jx2a?wR!R3F${j(
      zH`!X`mZ5Vgm9$q3?QoJZcys+A0<^K;!yY;e{a7lo+*Fw`cRVWv!!Xu4FH>%$<BjOq
      zNBP7sjsH8(1qBttCZZy8t97~Lm7s)CIJy57va&|1g3P0xc^hRK|Csb^ZZeYQx-5kY
      zZ;pbM-k4l0q#JPj#|&rg9n3(Vhg%+P`ZRH$x`>cDW%`EhD>W?yR6Dge!vWRa)<Ad&
      Tur7|!uW``eu|x6<>)R*ay-02G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ref/PhantomReference.class b/libjava/classpath/lib/java/lang/ref/PhantomReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30e6eb00fa05c52335db2ac04884c547e67ff3fb
      GIT binary patch
      literal 848
      zcwUWB%TB^T6g|VMfGCPQd=gAF0eldnE5U9|bkq2PurGCh5@@xyCjOPKOkDT@ew6Wc
      zz?zDnvzYrj_uO-5-alU70PG_#A;6IDsSj$UuNs|-#oLw3u4>rk;F`C&#SM*12r=aR
      z7_Z0>sp*Dp%M1ra<r{R->T%7kDihkS9PaRHsmTzl>m5V29gC>S#YSU#OKq1BvS<vQ
      zm^VC*AZ8K>Bf^kWbc3HegBG_MYO7CtDaF*(ep9t{Hy$NJc2~b=C@9mnt};ZeVPLyV
      zW2-T+J9@k68!}}58Xj-IbZq@0pe8nD2$E&k{LixxxWh?px>)*6Z@5?zT=BZ;SQ<ao
      zT^X65bNAd%hQnIpXq-fzBx9%+8z2pEPk=o77P69vqKJ_-sp{6H^7hUP;?Lv;k)S(H
      z5a5^^WXzIR7{V}zq@a^9j|HN1y%ZJ+o%W$J9xCghazexsmOT+GLWE3N7ZYGl-u#Hj
      XoQc_qVRbY+?aO3@T^0A*h;{uF%|*l~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ref/Reference.class b/libjava/classpath/lib/java/lang/ref/Reference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ae53b32d345804568521e5053329d03f346c567
      GIT binary patch
      literal 1726
      zcwUWE-%k`*7(I7?vpb4_yMP5;6?Jz2x2^R@VM}YRH6|OZN@(<L7%tnv=`4=3RTCeZ
      z`fOV5OW*rKOes>6nrKoRX!xUy=iVI#afNh~z4yCwzI(p&{g~N!{r3w1AK`o&F@fF%
      z>j$giT3)^4%lXPxIWK+b*)olUz`iZ;^6Y}N1A&a+@}SvOt9#8#-Cn3%weEan1=fT>
      z!fq_y6G+>xw0t=yAZ`dGZ#8983JleD2zEu`yxnolse4w?^yxgjt8;a1dU|4#S8|@b
      z8(j9Tv?BEHbV*5b8}?0s?%KOa5zAC<*YTWSQXpO`&(QgNV@_rfN5McZdIVBcjdy@S
      z4D3UfKxfVI<W%$fS?Nz(v#wO!4cl^OEZ<S*@L|5x9#Mrzm6$?#Mll{VkU>Y5)*%Cj
      zF+kAvr4{gYBKXd^O;yZBps=0)-r{DA9V=T6%M|A>aPmD;cJGN2YAT`sryJ#&G)5?9
      z%XO;hy5BS$FOdF)yS7{moQ9W$iGs@dgn=w_9FbepSC^cq{iX8zx|1xGwfv->Ds}ag
      zfh1A_S?BfzPfypJ?%WLperjMZIyr>01!YmiWE!6d4D6PKfpL6JpVE#qROT#auQi&!
      zEx&eD+4n}+33W%HRGl7g&tS6sQQ{DV#`zwm_)qE;NQXOTLGP>%y$o70?BU9+G|K7I
      zdj{R;p~rrnD)dpm+;haQKSO>6eargd0ZpX9``j<#1N~I}dNDw&ML(!XZqia%r%47g
      zzKS7p<Qa;JD6WaRk>L6x*LiCEiHaU*!b0mBj%bC-8m2~pqua1!5q6xI5>Sc+l(m50
      zXsN0cBLSo9DkYOCjlMKTS26aEq9Ildco-`BnRWUFc|0Qa7zgpIR#$9sM(T>8I%QQ@
      z<CxaD<#jCbIv#oL;m0zj-p!~ZgF@g#en&UYAJaM+^`jY<vj0!?U9bIPidB4KCYaF3
      ztKX3tdG&IcaEb-Z(<#qV<fD`d90=eE(LX3|neBdpKCI|e3@xZXOy%gdCrY-!X`Bfq
      zT;#5>ocR=I*N{vs#h0QWDGfb;i!|3pnu|!sBT|>LbxlY*wuS?WdmTOMWd4PTZ&jjW
      m+ak5n`Iob@#x&Pi!T;E`jkh8f+ahmvA%-vXdM>Q-mu~=kctXGc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ref/ReferenceQueue.class b/libjava/classpath/lib/java/lang/ref/ReferenceQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21557e3280ccf476919542fc2d71b0f01d8b6b79
      GIT binary patch
      literal 1842
      zcwT)|TW=Fb6#mAyjh%%UQXEnT(!_0QdmRETEtfbUw4zcY18T9T;BDhf!h*A#Zq{j{
      zUf%nHK;jo5wRzzoNJ%QSQjsvCQh!v{Z^j$r#ByYL&z#GA=X~d!`S-s+{|0aY*9}Aj
      zMjqPh_Eg<=m#2KWH1(}qlD>3n@|%WiNCPo}^t*`L3lC*25Qr~1{u<?QrN`}Qf#e-$
      z*|md)F9k+>#g(mUb$XW3vAS1#Byh5FI2nD3vg10ztUxqhxXaKly+xTq6ayyuVJ0DP
      z!bB1&fq{zS%3F<<1?gAqg}PLLUd^uGwS7nFp)nRbaMlFQ_Nq#AXX4Dk%bTnF0J$S?
      zmiIZWdiA<MHeWcRO=G>iVRKR>IAY=qh6Rj8`MpZPlXSz=NWLe0;l99lPj`r4xSzy0
      zJ~WUM80ryf;v<~m+;vLT@sCZ!kx&;4CW=T1^t*B+xb5l=sOgkUOv2>!TrY5zHaR^a
      zQuXCpqaNtPinp%opFgTWsT&(Lxf(d0yJp}br}i%NYd4U--&hUgVmn9??v2-OX%v@C
      zT*ehn=?B|kIWgYiav6cMBE1F;VqP_V#>9DCU=??~hF_CkIcofa2j_iGB@@V(t5>_%
      zcedMvF#<>V1|$5ji_{FQ_2H!2W1f|byUp)0YE?!H%5?D$954Qb=sn6^q+ik&<sIO-
      z#+yeBH!y$-2C12?J9rPLC^H8vLzDuiG0d#3-0$m5*J)KTac0VHx8W1o_+1BVybCrS
      z!lrQ+qixs^H0)cRRDrX_9i;Ewd~NMutoR#@QZxF(qHW?I7}gdHb=*bX61((UyO>b%
      zd$3B)*o#v06)_B)z%-EtaYf5%%xKxFbAs&yY(~}ChDAm#)Aj%s9FFl3E}_n7Tl2`U
      zCRP;kP^WX6XXb!!sO{^cFQQ)Ip_aX2ZpCd*bE~}Gr_&VM>UguLzUse&{O>Tt7E+-`
      zekC%^m#pTt6|zf{56Gpg<qWQA*<v@&8h~|1ZE)b5wEf8Xe!@lk%x?U`$n_3pb0M=K
      zc3_IkA|1@;LS`*rA8kUdIrDr%YmC~bA;-@&$6x7*QRXzqTOr4OrH$_4^U3BG5|hnW
      zt))@zIgKpCvuszkU4Diu0z9Vo3Cn*<{V`YNSx3pa_Aqj|%0Y>a^~$xk_B=<>U1)0<
      iUxY6uQB3Zke0YJMcPwzCYk?DCh6u;4zSlzJx&HyHOIeoy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ref/SoftReference.class b/libjava/classpath/lib/java/lang/ref/SoftReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50bbf52fcff86ec5ed88c54a9f323efeedfea6d6
      GIT binary patch
      literal 1004
      zcwUWC%Wl&^6g@W&J4pkDJPW0z30>q-8db0&RwPuZY^+u^Q5Ni+FbS@L4X%yEU(r=0
      z7JNWIs_LC_aOEbA>cz~Rd(WJ6eC+F+zyAOnVP8jruzg|uvN|)%nRYxe>Ga)+e=a7%
      z6V6!ZND-=WKr|$1hV9sXk5F!ycc8P;g&6zY=8%x>+f&E#15bh*gMn(Mj@_>!ha@)g
      zNJArRnzkcOgYP5Z4Xn|Ou?5o|TeG3%+48(-ru=XAC1J;0W4KGmc;Ug9G)t}sl{okB
      zAOHF5>xd0D-{ad!-U;tkys!B{OrHZ02=(GEnZR0@@m9$+hcccm8Bdu&KMA|**$MlP
      z;br?%!MT(g%~i>y8%>5u>AgH&VTX|GyMZ?rC${=1u|N(b0pYzd_^`~?d&o@~BWhqP
      zkWZ2;{t1wP&Zh)2$nyS$s|4>_t35~VO5yUn=2W-KHw--CsuH5`6q|}o!!tZ*#zJgX
      zjAkXCNxgEUS5bN{^GiQ^t9>v>^}gT<U;d;7_d-}Cs4oO%^#U&$U5KHI5vmlSwi!h-
      p-^j$SGVxKF1JbQIUjK<KXsUUx<ntk5Azz4fii)bH*7}0@%`Hyg&K3Xw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/ref/WeakReference.class b/libjava/classpath/lib/java/lang/ref/WeakReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..634bd192a2e1ded4387ea3740b519044cf70ba67
      GIT binary patch
      literal 870
      zcwUWB%TB^T6g>mj0zOclKJgJ30xB`OQo=$LS5>1nn7AuAU=@qj*2K?pMdHE_@S}`(
      zrdU&z#xCaGnS1Uz_ny9gyuJb0!lH@@!`zMWWK_F`)v4ONUA^GO?HO-#n_DfeBF0b%
      z0{kL_QZp^nsWar(v~SQ!^M<#ay;6fAac*`j!*Oi^Uek5?7(3`)@g$-c9m5C|hLmPn
      z{Mfx~a$7f=UBafdUd!k<4BHg<!DGz1HXj)lw2*=K7~-~faRkk;sTlG>?&te2{*^G|
      z8Vz5k?kGiu?LYR_hS+rKa+k}+%ff+BSZzbflp4aGX<<)}fjux3!`T^D|HI3WJny-7
      ziyxZO<-mrUf`DPCrtkh<u0D+3^99QwYaqS|W%O4ms`3^`g5o7*5sFH=(ns=zvM9#r
      zOv=}N>NvnSWqA*U38W;Of=NsfV>(dF__Zw6gkH|q%S*i;@r!xXa%H`b!cV~?YCe{N
      iOCHP@R0o10o53uh(*ab*M`eA~oLp{R$}bGYD1HKnfWWE%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class b/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f4023f2910ccdf6a9b66d2979432def464d0d3f
      GIT binary patch
      literal 2646
      zcwU`V+fy4=9R5xc2&~I3l$18mM%vnBvBXx8N@yzus%_I22}J?5E}KJGNOm*3n~psA
      z;N{iJYiGRmL7j1!QD-XY$V{s*eemD$UHzTSk}FEbhdsOJ^80?@_nqH4`^R6uJ_2wS
      zn?d*(hBnl@Y9gl^*@VT{a$Iu~Q<}zYTVKubTdNy15JZ5XySi>~v~~Yz!!RAy;hEVS
      z&vV0J2(0DQECX9+Xr0sz-MPr%kHr^hX4=ef34V0QXou7ehAtUFw9z}I8~kQ5zsjuz
      zm8dX;Ql_Tn7FA0ZeQz+}tm`(z$<)Czk_@tLS4UkE#HqvPPVHzsw(>M+%kf2t_#TmQ
      z6cX{(*15Jh$F00h%S=Pe4agY8F@|27YekEv>+=L+%ff>e)w0wrhEq?Km2A}Mxhml#
      zo(tks-NvN1Y=`G%oJNf7%5o<y^6Jjk4b@Py++rAv#cQ%OOecd-7)~^^m@mJp;@a>$
      z!y&s^C|E?VOmbT2w<W|eA~rL@&=;%C<yg9rO$yV_;>94&k#+ydM0h$X*p>loZ#Ge7
      zkQCPW>^wu{KLwp9lx9KGreQl)QFBa7!Z;>mBr(a*Lzc~OEvE{q(>c|q%Id9i%pD|H
      zs^G4M(I8$SGR<6O-_v-(A<98qW;opF$mOD*%W$g=GYrS4RdINtd3BRVO?ShiYNY}u
      zq7tSsBAQoayoRfEoYX>r8ySW(wN`tj5^r+f%as%m*JY$|gQ3ka%agRBvE~q3dkG_S
      zNXQ!RWRnzz(O8o!wZUp-X`&iM#oM0Nvxe%>VPKe=T$q?RFy>-YqREAY<i%v1+8`Df
      z`m57Zw#_XOHEUTWSxO}`lrFAnA}X3M+D_EG%PmXK@Tj;pqIvGDn;8jdyeUd{si9=|
      zd?c8zDmkw%dYbezgzImpt-{_d72aP1LuZ|>;v$R1R}S<<+%2k%Roo%yO3m_29a1md
      zb(Q`com2NNKD5ui(H(fc+2!E_Y0xGt3o2O|w=l;r_P;O~q_kPIG=4=FR`oSrc_RV>
      z&r%*gJuUP={2{275D<S28hM6#lkmB7l2U@K_<up?&(!mwo7zr_1+LNh8Hz}uhk9~(
      zHA3j6H#vho4=F)!G1sCzK<9P^q}3g~T@&2m1-B!N!(MQfR*Pgu9-`lW;d^u_1Lq<o
      zL_YSh0p-#CzyGYV3KIa3qvd(hW1x%P{V?4G(J}~*(-+(?p;_qfB`=0ttzjJVlFm}!
      zCx}o|MPzG~{sFZg62M0;c(}aSV=unS;F9>2d5|eGOK1!~#EI+56Lc%Ph%bePOE|NG
      z7pnLnS_gbW?WctC8JYNb#i0Prj^QPD?O=uM`y@i-AB)_>i1Ite@8Pua8^(9=a_GW$
      zi0tCh(k`Z!LenM8Dm%EcgKH(+e5^$3_Vg%i2=E0Z`I2D2q7C?(cJ3RD;(m?Dv5Lqs
      zPb3q?N^`HfNb@eGIkHErmUfX|3f(T@jmOmU*KGT@HJDNbQ^GP<X#Oo!>uDKpyIJ1B
      zou+!)!Mi`9zMg*Ar=FNN+FtOeTlS6AY7u_ix12R(Dk8ayH18FOtPJm9?Fm`}+y3na
      XnGb4Y$`zS%lT0zP?#j~L3>*IdUdv$k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/AnnotatedElement.class b/libjava/classpath/lib/java/lang/reflect/AnnotatedElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23294b2ca8036e0445c43cb8162a43a1ca0a0c21
      GIT binary patch
      literal 515
      zcwRg8Z`VEs1_nb0L3RcvMh2y<#Ii*FoW#6z{i4*goYdqJeaF1K{F20y)D+j8)ZEm(
      z5_Sd_Mg{?dI{&0BpfW}V-t^QGsM^f@JVpi+4IhLe=bXgiVrxw#kwmyseS|J+Mh4E{
      z%=Em(lG377Mg~Wl5GyN!dh9SPvIz;XwzJj*l8g*|D9$QoWKhx2j3#I%BZC-FpG#_T
      zPGV7N3W|Q=%whyTpeVH%7$%GiB3OJI#mHcR={9YGmfL}~as}s?7A2>;W##}wLKHm~
      z^gxENF)}bRFf)Jv3ouex8Q6e)b|8<5fdk0rWZ+@|MHV-d=3(H4%ku$Q{9u*<03gqn
      Aw*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Array.class b/libjava/classpath/lib/java/lang/reflect/Array.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62952c3d14cede8f1d094a8e8f6bbcfc44c8b56e
      GIT binary patch
      literal 2431
      zcwUWG-%}e^6#g#1(kx3`s4Z5s+Nv!<DAuC2LTMo(C263PU=)hAn{Y`MmtEZ5P{1Em
      zYyDa6v-;+YljpvqJ9fq&PtNp3{vyY7?<OX|X2v|^%YJ+A`R<<c-LrZ8&#%7$ID`8k
      zG%<9qXzSXbp_%zXn=czY=MIk9wze5U3&X+M&8yiJy2sEqqMN!q%Fx^!$uP7;ttGCY
      z8DSNzXk$2#(oH^HT+MQOPRkmcp(|zOG$W(gy11^8Ep9<~7>=eI$PY8LoBUS7bX?8M
      z(Snn`b)iv1bDZHsB(-~gwCvR0!0W-0;XHR!+|0WLhQqykBO(cUN{ZQ)vvM~$r$X`L
      zmSu3wWH=JIY=I#pqBdRLC}i9Zi54`wQAm_wABCg~mhCo*NmIKhCSf*=Ncci2%gi?l
      zN%}%@!_pe2iTlNjSw-30;Gh`8ehQi}_$oKuxy`lRT@5O%-$3evBl>VYD10xqXT5N0
      z@BdpH$tYlWNyUpesbBzuA)F>x@5-p+Wt<_4>duU<uj;P8&gF?%5R1>MIECI2UZn@F
      ztrPuLFobg|UdMSVSeA&4W)%IE<6`BoiV<9(o;X#1bO-HvJdz3F;*MQOA1D~bn2K?b
      zITS}Qwft$3e?mnZm#Lx7f6fUMNDBe-MrZ97nTY4PtzZ&YRHQIPS#+~bARz><s+hqw
      zvYk`0U10izNT1$O9pOL)vv^ZQ25(Vy3?gdDlOp-NiUnNvtK&O1FndyDe`iN^q<IxA
      z;$0Otp;2{~1yjo(7x{B4mcae$RO}uo5ElaZ9n;ZwzJg`wDpv3wSz}33HHnyzSXE)d
      zqQ`S;rzKD$CN$n>I8<jmng&|V6+Ku3InYIs66J`kiA06SEfpKs^y}o0kU)v3koaIn
      zlPi-;!4^JJ@v*SDn)NxUA+mp>;!}Jk3|2Sk0tFU?z~>An>Re<PJg*sJcD^Wvz{Ez5
      zuerKKigyrZXw}5*7q5&x+32QjF7XWpM#gMi_aC{98~z~a444^8+A7*P9@j;c75Q2@
      zEu!e%N5z8pJc%ap+M??aU7aOlgspuKvF`!>Xo5oD3L(fmEx3Vp`lb3ogdG42V?Pd5
      z@Swy_bV)pfCnO%m5sBR-C-5kqlGuZ%B|d{=5}(C$5|87A#OLt>p&}-cL>elj8zzkS
      z8)gOCQwwq1eLWufrU%OC{}CO1J^ce7UMb;G|DPE80bNA=fuS;9^YBIqzYsfGWk<`n
      z<RMnVePSo8>|_~957Q-V5<6REXUmxL@OB9~Vi&9IVi`9)WJ{PLcDc$fmr?LwlyHvN
      zwJN(-hV5a!gyY0+RoSgFKJ;+Ag!V_cGyf2Gf3MX(L)8Ntp??+^(7{I0%`V~?yMzHY
      zh9M><T@*<c!#tb7O%|uKbs6hy5_eew_gE4?u`BqQrSO1F!DG|-i_PF~c1`xN&#xW6
      zz?aet+xQA!%ieC|8{(SC7?1HS?xC5wL8g~op#d$Cj+jIms1j-JNu&`akw%F`I`5Q`
      K;XC<E-~S7JYgm{7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Constructor.class b/libjava/classpath/lib/java/lang/reflect/Constructor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a54f69aeec07745626cf6c67fa335a800688dcec
      GIT binary patch
      literal 6252
      zcwVJgX?Rpu8GcVD!wi!P873tpG$~<8JISO(DN9R2+K>PpnvhCD0#u8WnVV$jWG2kQ
      zrUgn-yI2=mDxhFN1s7~V>p+X7RIS+7UF!mEAAQuPu7A`%>Z6bPo_p`ySrcOYF}dfS
      z`<?fDzvX=AJ9+8f&yE6kJ6^Y;NT7PNZ>z5{<O>frM%96k>W??JMZ&RoG~tg&qBax@
      z%*hvN_50OWEZ84XyZSeC!iGr#75Q?V>TthG6uZE@{I9Fjuo?~e+f{$a7xl%1k+8t@
      zwyrhZJ!{vs^>nS>)Y;YUUFlu1wp&1W1*T}seBpSnFO*O%w8ADZHJ~jIh6me1zF16P
      zT1Q%wHq|6BxjQ%*_QexXRiHfgdvi}uQwxPk)$M+DMAFz4-!Y;R%5_%(tkMyZ9aiIN
      zG$l4EGB6NR;~X>x!@+oqfW=+cD^T1P38)TOP^n-#%DJ>77*^LLq)&Q$bRIQyMEt%`
      zFZs)NW3o6t6eR4dj&WntBu&X$O*RI?yz!T&ES@%~#@ln;SLUuOV01<PtPV06)TUqx
      zrV7{yw}!3}xF$=yJ1+5?9B`xFhC2Eo2TDOLuIDPQ?~DY313@(!^M>i+urH)JlfhRq
      zKRT$jQGo{y0wuv%_l|IUNR0>mn(#)(I~b!^TBCz8-N-vrA?wj2Mt=FBm8L9KPzINT
      zzgfX8GG@{!xypeiG~3`(undf_)gOw4^DNbOgW=f~sdUnmO7vC*)8JyBs9O@g5P3{@
      z=P$0?C`DH&xCRc|6Y1Y9)1-h7L38axzSxkSW_O^|h7JK|uHzMWrJwBai2iQFolKov
      zspW}*0X6DC7b>Os-3o3*g9Gc(X9IJ2W`WIZL_@(EtQWY+?ahn14%(ET48{jL7%WjE
      zwZ2oqyKpys;~N=K!vTQ?cYX?u3FN@L(Qkuqj4Bi#iUbt+LD*6qUkkaOtOXPqsCg+;
      z*K5ZB8N2Nm;-kS121nFM{vqiGCb8%zhp_;;w}&GE23`c2BfdaDriPiEoL^RmOE47R
      z+RTJaStggKwttf>Im6BCmo6<Jm|tp}THd;<=AQN3`gOeyB(TkftpYQ~fRaJoE>Pue
      zD-=3in?%_u1>YlZW1$T(=1M#66)0+{kqEmb!k!$2aneRd;PMy)RymG<T~>L$l+3=G
      zW90D=j~LF@fh4yN$ol^PgYWiAr>(<7GFcuLSX6M&=$glKn7|_nK7<eJg(f$N=4My7
      zf<z_8M-^;ARE{21P=ncWbU?x5_!v`|xP~3M#q-*+;WgMp3J&K$WS2raK0&wE#D}7h
      zZ80r)tnyalFs&RDo25RiZu4p_fS>#J26v`tfn+f&rNh)8v*FVMHE9_gE*{kOgehjj
      ziEOD*NFDTr^tLBM>a$thQA#R0m>5>W@eH}o3wZLa@`kta{MOv!i)J1e0^X~Ku(`nZ
      zyfeN<i^vxhJSl6FJVVV+$cEDb*Nv~khA)x%U^vk@R#i3Om?bfJew@M6GTXl*u+Tj|
      z!_4xU+Niw};1M2svEX3#v1drIbdGS7cl-~WG#7kT!L3**(GSVj=M>zezaC&;Nw>6y
      z!;!ergJuyo3V+6o&lGJ;uOhM5=ANwDTUf3o4_uE_9sf#ZFDUpXF7bdidowkVUd|0N
      zFFQ2~Ybn8tc-e-R*hOANRKd3~n{9OZqf7v{P;$cP39WL>=bWo6mL~i_!4IVg*A+G)
      z-Puiws<A|fjq{Am9xcn-T3S0Xtv^-pGrU5B$G}Rdwc#>L<OD!jH@YK<s9#+fls&aG
      zBX#G?wE{aC@%(zzQXuVfFHB7ZWc15Yp)UnaZ(iWIOHc$WZ2Zl{WJo8J@KRI+g+F%W
      zd@t4Bo&2%!)W&7Tlieksl^pSELdh9?TfwK`(^`KP6=yiG5Ev9J;@|Zs#ztJrk)jKs
      z3e|jGmo+nsPazKzuF;jx(V$yR=%+FFv<W>)o9v$;EN=-0({=;SF5!~6Ar~=}foRV|
      zwCjkXNZuecWcIoya*=_27W199U8i!8_e=zt<F{!Ml8AR0h@}#7niIPY!CHLEk_-HB
      z25@N}aH$ErU<_dF83Xvh1c6x)4d9K2cgyMBMVDYB{t`J%V(CRRrF}gW@)G_8Gw>KQ
      z?|6ou@;p7|rk-01>bWhg=eELno}`|qsOR(q^(;r5p=Tc*B@x`7=OGTmYB}Y(2+=8X
      zr-8o{aB|qrVfzy~9&|D3feX|;${qF`nOxMg*XVeLb~##!Rn#_>t8V99Q3fNo$;fMF
      z*($^G5+i?;Se+ZTmov;P$uqOW1YMKb6vD>!lJ1s_u$@QOhO>A_M|~1&msK5tv&wT0
      zJ$)Y6h9vIl^GNmQu*u_6<*TLTB<9GuMb!&9TP;VU#ew5+cwB>0V4p?klgIvZ#p4QU
      z5J}vVj?{A28sIYhb%hjPWwm(?6?mOwf5AfVOVr_4Oy6JQX8eZt=r`zx-(oF(hYfsJ
      z@dxhPKWb*z>xLL+m*H*<BTO?ZC>hZT(o*i-5y=0pq@A+GaEe{_wPpc|X&ygFNg1=n
      zp3%c7K2z^(P9olCS#}bYRY&2dcQ(lPdQa7YBzE-eD-u;6TKPu3>%B?r>N}$$&D5C5
      zy7^~TrN1yxe`TG0lUedN=H1`P^&hNJZ(=_FiADHVMy4#reb@_Vqx+eUvNF%o_{%N)
      zJ~M<Xj1V3<kHiLU>9csh7CHv)L1&F*=;7-J&*3BTxnIkiT~4<~J&DIU8%B@fdQXEz
      zGoqN`Ec0lFHB{?nF@6m+>rWnMow4Siw#MUeeVj-WSeV3-bhuZ`!-SqM5p3L9PG<`X
      z7Kmaj5mq!aAKQf;UNITHd~OmYygMtnM@+$pDCO17iM?VPFELIW6lI#T7SgRW-UxdM
      z_G@kvSb_l@#V6^kl{~Wau<tfU=>#}p6n4R)bc{2{Ay2Pjd<vhzNqmkoyfm4K@dYh0
      z?&WtGqH1oJQyrd5uv;$Rsnh3iW<$N_EWX@HHzd<0mrIIbC9Gl<CX3rKRd`V$R%gVz
      z+MsV`ww}c~Eo-fK2G3?yg=+H*VrvfRMP8bW>X1)~fjXZ}=|V0gA1U>dlAn|Uq@=!8
      zN*q5vK9$jIDi?F9Y$cU#q_Uk<c96=>|AWf&_?j88uWOW!a3uFgEt!0yQ`W3<X6ZBd
      z7OyHNVB`37DqVjs($r>hyF%<HwLNf%`%o_SVkXCP#r+v2r`9a#wfK(KLRm@tyZ9cJ
      z+W0M<aphW9RBI5`<(-gao&CGvy?#EWl#|~3ek!+K?C_*nX$OpWfUF**!ycl;^gcjG
      zcbd*B!H>v6WVpy_y6DGv#n2bvD!I-@eLs=<92Uz9_<2#j#{JazC^bF?r#O(I(Pe6!
      hLXDTRG`h@`WqYqZ*>G#mTew;V=!*9DRU=%l{TFGpt(pJ;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Field.class b/libjava/classpath/lib/java/lang/reflect/Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24bfabdf7327ee2ca9fae49824e26b068b96b0ef
      GIT binary patch
      literal 8309
      zcwUWI33yc175>k>Brh2rAsF^R40~3>juJpfLTqACG&Bgd+DY<~3=T7KW<sS_ZNVyS
      zrLEd(!KK=T*ouPNM8ySbtu0!$F13n?R@BzIbYE<%J?Fm3o0&Hg-h6!I-FM!-|9{T8
      z_ndpq9QycyhXKr^Q*?L;<2U)X_-X^bU{7t>><*Zn(b^`z8R*iHLztHSaaCuh8HxBi
      z0_GVVn^>SDk1!#9-WqdrhZ!amcA1?4U)Ue)X$bft5yI%!#AGF^Bjf~qn@z$ANuS!H
      zvWCCqg}S>VW|Tn9JTbbpk0*|5YF^#ic;1>b8k>1^RvTetLns)D`hwARU!dRA*ubN_
      zbeTWskFFqS<rVF`xFOVKdZA&gfzddDVOsq`^YngEbe)ea5)DF~zCb(cEAMe(PPEt0
      zicf4E##OB3=pHlL=rFXnyds0C1#SMGpfB1VX5ew@GnQ4Zs4D>BL<2hV2|5FxuADO_
      zWwPy_F+5>SsLS8&H^Y(UVAKo;eF0@LyUR%a=w;Yh2Bu*;VT3=@wlx^-HKYDcHF+cN
      zls~dM*uQzmkrwwl<?lT6f_`6sZ5msiq=R(;>MAyh!gCCafWcVZfv(h@j8EeY>?Y**
      z`Xas7J`fffn1m897ULuxOL#vV&M;7hsa`C_G9A3W$Z5WT`Is(1Coym|WC?YwWY0RM
      z*7tXJn_(|b!B|<)U|@zUU5!(9G!Z6cIKXkg8CZc&5f+p;r@7w(txMmR_y?hDF>o4M
      z*@eEoJ~PO!DJgF_&H}>e1}eoVYjKv2Glz+-Xm6;?KpWPv(=1@+FzcjLmk)=Zb{;F*
      zMaOp0aec;x$2V?+IA<zHNTj2mH+RBtb9u(*P#2${QPI$;X3z}#JBK#wyp$9)w8|go
      zlHEENJ_*$hUSHlUx~@i-P_mJWGVX_3mr-Zyi$L~>wY`MNnKxo+B4Lw(^TDxH$Z-(Y
      z+6sqBDWN#DEAmYd1ce|(sL2#8$5rhDSs8Y$JkCZWR&F48A|0toDs>izW{;%NSuR@H
      z;p$y|VW-&_^>aSZ@dZLzVoq})VD|U|)?Hvv6Q6z2z!qFgSdz?QowY1!wNS?<CTCsi
      zL!p4_Q?Oq)a4EJqlphv$qm{erw?@rjQdYfyUT$DJuE-X&-U4mt^@WE4Z4l6}8`yy>
      zvjuJ7#KoX(y`gY)7}PdF{g#29xGGyzz7O*lwK+H(X0u>^$H3LNHe1YQ%ly_*uxA+1
      z76ILD;5uBNEoh5nep4Xi8&1_GLH(YA8*p>BsGQFW<US7dtLr->Y@@*b(7-MDQMRy+
      zItEfoqM;}V_w;WzgHbyU_zbIpWp)PQ47ly0%54U2#a_P2vQZ@yh!jd{Ovv3LH4w*8
      z#Ev1UHPTmYw7Bmwun%_=%Cq6#xKX%>Qw>R&MTWvG6Mnsgf4_kk9>@~E-omf9u&rpz
      zgxz3aKVslP9Ly5C!NTT>ha~VKcHm_qXtM}@Zs0LIktIQ!MZgywNeo8fF_;Oy*@FL-
      zfkSvYOZa9B-f#KF3dKy=Ef)6k2A;(WSz@<X*nHhli{+bmRAwS*vIt%=@DdJZNzh~w
      zNN`3H!I=rY(L#USz!AKWC3>TU&h-_k(0<Fn+ftcG1#DN`I(|>6><RYQCf27^^7hQN
      zzHmeekazH|6d-?e%Mn9&bh|8h-@pe_Hwd?awW@}KNTTwmKCZS}v)6?0#gUA*Di{n!
      zeO8WHn66Ored@EP)+Sal%&KMUmM(Rjw;~OE*}8RgE9xrvuekRg2L6eE@%Gt$kJ*)2
      z&gXwddBr)dEF<s{{;T6Z-0rwcHSj-_a3z-b8270N;{8^xjQKguotPC*ZS)u{-t3Lb
      zY&aWDIR@p5(WRM<PBdS6VKdSn;Mi%&=I9<*Vl7gMdNCCk<VCsa-qwcwoBdJ$7U`qN
      z;LC$_oeJ4QiKUX4y)=@F3>r<`?G|*fpxwF}xZ|tWX-rDXrE;N{ifNod<7tB2A0kPt
      zXwzvDx4MZHVsQ_L2~DKQ22GL1GT$F>!F4(@MH|UhUMi)j22CTLSP)=A0=q@0nJL<+
      z?Bk^wG~1wZs$gxpMUq(2q*GN&PiUnSFI7^FL35~<{nVvIi8YNn&Ev*A$-R8P_&TFv
      z!(3Wm&_Y_os&%q7v8X|(B`IbP)uptUPBv(%?1<4}$<!(@_FycZ0zO~?`3c0^7U~ao
      znoWK=UtSg7a|8|ZIFdB}pUeL|((eQOEPz)%xt&(ekxD)Rh5XJgQnDiMnIS)7u%wtr
      z3;0R=%&i>6m^;;!as1cIPoNVyFfpD-hBb-7Ci0V{`{o&w)%+<6sMZF$2c`RMpgbiE
      zrh^bkkIqkz{IH-vxv{pj@~F85tkulXIC{xm2jGq*zye#V*(i?#oE!%jr2vX>$u8vP
      z?A4qwS0%xWvSBKQfmt~m%=PIoY#uk`EE)0<p$gS;*f2}vm!|TnM?t%htL?2i2wEea
      ztLFcEP{hL;9@gCK;5&hL1YC6K*w1#~$y<Au;x4oB;wH$b7IT@ckaubx%fyWNwtJVy
      z%_^>pVL=RwVmO&c%lWa*Y1%_crWM;B;@&+DwLfl3%K@CSVGyfY8K{2w<XtG5Ty-BB
      z*H;yl#n8OIip6X0!x>4h3)JhJp;u=A^!ln8&Q6@2Iee1ARZc#h<g@$~pW3Hcn`cmp
      zUt<=YLk*tCBD{cQc#-@2-y}JrC9Y{c>ah{$u&yK7=+CenV)$om?RWBQIq0ho;M@&G
      zD+lp8r9W%lDT;P0&HOQJPP|$E>J!DghZOG<#UlyDC$aN@!yHAgvLZ)V+1IcHN3jyG
      zD<#KSq;Vy^s6!O}koehx&-1qnS(?LdTa}V^aV7Oisv5*aj@Y8YBuL#p06H#F2Y|T!
      zt#*O@l4H|prVHeDT;>A#6({5}7sws>ste@ToRDX_K<>mhTp+*cgzR;Jyc*ZIKz`c^
      zd8rHJb@;9e<gVKtkk`6E-hdljAaA<E0eQO%<SqEV3*-;>IUpZD9wcY|OR<gTU8v@J
      z_~P5jvK_cGO|~6Zq{()2=61@i#<gj(>o_$#WjEmFG#NMZX|gT2I90}Px8lcXZfN1L
      z<eYqVL-inj;<!XT#n3%tl5$hN?TdWeuG}l5J9s3yX`jldsSKy_ohd5|m|=2G40k#y
      zDv|H0N}?#RDGK5{D5HCDucC-y(3RpoC&enJsLz7pfTDPi?+rJKhn*B>GsOm1ibwHN
      zMe!JZ=1TFnlOn_veXbP0z%LcWA-;FqD4udsT+S3%xKcb5zlxsatIU&f$SjgPb<Yb)
      z8IwHcB)O4EZgM4gk?%wyc?rKgt{pR&;$<hrJxp=0E5$s%;e_G{-*D*^2`kE(;;572
      zNv3$pmEw1JQ&F6c0IXYkOFZJrxGFo=TJ;2n9#<Fp58#~*azS%4`oo&)7~V_Vl%<?^
      z;CUIjo>x%dIgCQjs~G1wg7N$;@w}F#Ls?vhTrS=|gmkPWJpL2@taSJb{)(Zp_isuU
      zxevt1nauq6HQI^+jH{k9|9<?N>%BeDdA$EJjiyvTe9I^Ak|?AlDg@7)tk5xdJ#Vox
      zZ(|aVr+eN}%2ZmQwnJv(V@?uM@R#8e5_+B0kW-|QxXCKecovD8Bt3TAS!?+zDY&R|
      zkTm5i?IC>BT9t5)swqA1u`chkb3S0_e3+EFi)@FCpghUz<dJ4p74C1V0v_@s9a7UL
      z<hQRh*�AoU&)RfOE=T;@Zh6JAyaTWDnwCnrt8LPLpwun=0eKw_<O4<k98)mdmnZ
      za-x>zOw5T<{%-bNRdvn89DW%wfG2AnrIEWZMq~$RWQ;~hz8t{aEHAd@#W5Ny8E634
      zvwWg0pBSSONgD&$&hk=QUK%46=>s^Q<uh#gj2O+5@EkxJ%PVbpWsIsNrUp>Q^0~Hr
      zZj9zjavi{QmM^yDi(_<>Tpa@#aR7TZ3{u@AiEwPkSU#8~$kQgHP@94htrXL=6R|)m
      z!%}T3PSd90ENwbEwHer?&BR68ENs(e;~K3TyR{13rd8rDtqPB6)i|Wp;ILMUH?_Iy
      o6fLy;X`kd{Tngr^(|Sx@e;zfG>rZ3fzowd2&LOm1w4)XO2gf<@oB#j-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/GenericArrayType.class b/libjava/classpath/lib/java/lang/reflect/GenericArrayType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7a60be409df974157b51957fb731528926b4429
      GIT binary patch
      literal 224
      zcwRg8Z`VEs1_nb0ZgvJHMh2y<#Ii*FoW#6z{i4*goYdqJefQM7)S}E}$D*Rd%8<%}
      zRCWdyMg{?dI{&0BpfYv_Hbw?9Ox++Ij11!GsU=Wzobz)F^7B&jN+2>)8k#=Xby+hq
      va0Ta=7A2>;W##}?ilRG252O!hD<cCl5VHb(!3cC2I|B!Z#lQ(9nHabLq;x)i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/GenericDeclaration.class b/libjava/classpath/lib/java/lang/reflect/GenericDeclaration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89b7c79e2eccfde5466e2bb4531e4d1c9f265c67
      GIT binary patch
      literal 262
      zcwU8$y$%6U6olva*=03U9)Ji68#Pf0jf8|~RM+O%T)B4Tx+Gpr;Q>69IIB@?VXB$r
      zo5{T1k0*d3YCZ~t_EFtbXjBr1mJfy_7tT3htD`ALMp@-_n)oOY>OXS1KMF`_#OyZr
      zGp~d@v15B7w7R|BB0rj8TV=J{8y*p=YaJ)bT`dzj{~P1}L`uOrz1oOp+DNOJzd6W8
      XJOZJJOeC+%@Fe?^3aE&yeqHbZz;a3X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/GenericSignatureFormatError.class b/libjava/classpath/lib/java/lang/reflect/GenericSignatureFormatError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2ffdbf0804eacb0d9a848f2b146c86c2a6afe15
      GIT binary patch
      literal 420
      zcwUuIyH3ME5S&fy7@35G01X9#4v@e?lmVJRcqpO?xTCn3BOF}rr1P2oqC%p8p6{UH
      z7bp-Lg9H^4&F;?b?Cj&^<M9c=78W8@2pc!zP9$2GQR3v4mYGiurIAi$12r<j7f$x9
      z8w-EnoOKZb!s1U$SBpIVRVTD^?iD(fE?3r^AMX?BgwW_(lY3!&Ds&;ki>2GQ*XN^m
      zLTyJG<@X5H)wPrmbnT^#QN>IhF{TO4zB2N(7!Rd86GJTt?Y_-;fZ#EVzmtK#RyiT*
      z|LdF%As*PmWwNIxD$9RxHz&$i0dLCh<1ZjYjeW$Zf+>z@vN78_XSPcWgzFDz+?SLl
      Z+n7DjL4aMfII4e<FpG96I#)91KLLGrY6t)T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/InvocationHandler.class b/libjava/classpath/lib/java/lang/reflect/InvocationHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df9fec651286e573a94b83c6ebe92fb0657b0487
      GIT binary patch
      literal 284
      zcwRg8Z`VEs1_nb09(D#MMh4}q#Ii*FoW#6z{i4*goYdqJeb2nI{N%)v%=|o$#JrT8
      z)FO5U7DfgEghKzMETB3@2DVI~%Is7|hF}dJbXjX3OoM$>OEU6PtfMg%Yhns9GH|(8
      zB&QaD+)>QVz{$uUj8GGjQIubvn3Mywn=3fKv?w{%Efd5M!*IJEND~_)10w@70|+nz
      Yy~4`C2IR8?c`QJh1BkhRY$gV70CW9No&W#<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/InvocationTargetException.class b/libjava/classpath/lib/java/lang/reflect/InvocationTargetException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa53a89a74abebfcd4c1dc906583a91724331252
      GIT binary patch
      literal 985
      zcwUu~&2G~`6ot>tZ!vC5Q~E;-g+hf=2Z&f8Ar-+QfK;$p&|uaRcSw!Q7{-$VFTt}=
      z2~>#%55NQPIEXtFD=8(BVB?uPbM80iT=~bZZ{Gpj##S9ALhH3S6zx=~ep|~|sf<l~
      zR~=@tFiEDmLieS4^dXjSZCOW!usCiQT@cRYQYRvfq|Uj1vHOrfPYAP}Oyx!>6Nz*n
      zt9OsCfBN}uD<jm5Llc(5F|T`|v-hHx${iNmOH^X+6Uxo)h*0Td`_cnH<ip1TA!tr)
      zJaM>ZbfWq@wtGHIlzcXL)04VuWrRk^5z|PpX|9XIiaAJf!p-nMX2MoiCtGn3n?Kba
      z%D7+?ter|wn4JPT!@)25@NkyrA+@&t|LWyKe(IDx!b)>{%7|xJ*b#%AlY4vFK*#cN
      zV#lyCHS8@5!X~>Z^Dk7w8mg#qRd>}48rCB3tEh0sS-zR$>JF=k*Lpy7jQJxcZt&OR
      z6?n>s5R1I?hccYU60gMda)Efjh>}CJCLtn5ymW}=p{zjI-3mJ*2U{p$&lzU@`@xOY
      zF;;`tSFDeTbMCIk#F#tx9remkKce~t)$T4~gF6YASvBOh-FrNR;0xA2kH9r|s7@rU
      Rj*@QvTl2?>%~zf3+HV7|$B_U4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/MalformedParameterizedTypeException.class b/libjava/classpath/lib/java/lang/reflect/MalformedParameterizedTypeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e94c2466aaf946cb139cd609644e0e4a86eb3251
      GIT binary patch
      literal 444
      zcwU`QK`#SQ5dNm!wz68S;^O934jK^=skjsgDG{nCm)Gr-C%bQ(w{NBVDozpy2S;~j
      zzri06(<N~gmznwIecya<=JoUG8NeDAO2`p5uGNidhRR$vEe}HuT=PhU!`MbVI8jzb
      z?AYo%9&~R<yf+Sb<aBIG@Cb{)($my99sRx&YKh2H*khXrK0nwc&>^AHj!oi}aXl5L
      zT)6*uc^|*^F9^kLZM54V<QvO9g4d1*>?4nvGJH%EsvT|kIF0&jyQ&{Dq27rDF;HS7
      z_^0W)E1eKFJO5g%Mext!)CRn-C({~#(5z0Jumt(JoK>!Z0*aDLf^wLWiY6OKEK6rS
      i!$4u>5tWCGQkCdS2Dad#g_>05ZxUuv&xX!r%=s^nJ#^Rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Member.class b/libjava/classpath/lib/java/lang/reflect/Member.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aca4f3daaac2ee61ab9c82d6e98143417055f8a0
      GIT binary patch
      literal 341
      zcwSXd!A`<Z5S#_1NI^j`(LaETjb~5NVnR~X*yzFAqb~K4N1L<{6MxNvAK*tBx6cE5
      z+RV=EWM;p<KRy9m;?zTfaJErzDljU~f|A#UQyVOKyW-MAi!j);cdLz%gibUM<Lifc
      zM4$zs9~OCKRc@b@*>O{xiO{}(oW+Z<Mj#9`wh^aBl{(KtqpFH9noQ%pw_9EjJW<}N
      zEfdE7_{7$yBIt==S-j}A=2Bdmlc_}Tb(Os5_LZ$p-R_ytO^RKa@{KlP=KnUjs14f^
      r8+EV-&T)XYAkU$W;KM(-i<UgVM-TNQ`Z#j)7y~zlIC0%ZPCNbq!xBf{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Method.class b/libjava/classpath/lib/java/lang/reflect/Method.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a0b45cd51449f2c0f1f3833a2c636f0809bf392
      GIT binary patch
      literal 6176
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Modifier.class b/libjava/classpath/lib/java/lang/reflect/Modifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4f5a31b0327c43e4a77b7afbf59a97201621d81
      GIT binary patch
      literal 3197
      zcwUv3OIQ<E6vzJ;0tsOdq>7N*7Hb~}R%+GyK!r(2aBK)^5~6^wNiu=KFiB@7SZ!<V
      z!@l2kV|U$k;lggv&+>KIMOR&S-F4Sp)t-AZ;Gi>pUpHa?=kdE|&OP@IzyEvhR{(qQ
      zeGp9ykwtY`9j>Ux{IIE&D_YSWo~)MivaXpy1Q@y=_@@es<Ys71Pe+qVjDaZ(9kHrm
      z*{WgZ)k<A!CNg6PrZY-j&c(T;HQLgdsa!mki;r^yL0hvqIj6+93Nf@Kl$4z0qKiSw
      z&ZJ@|GE*sKwh`XX5Xw&_DLyH9W5mm4<WyFPr*hnIjd&??=ee7TLYtDx#WM*x#tltm
      z2+7ebrNnr60Al%!B2<V}OLjUP&rq72OrB39<%ujgI`30hG^319#OZbNaz@TfWGRNK
      z%bkcfYVV@tKs+@)NzY@Ab@NJAiHbU}k)d4_lFr2G%?Wo@H+1_rL-W9{JY~kJB`u6*
      z3`-coZiddJZfL3cQb99wYN4VrbSJAtwUSp&oomM!uorZTVSCbl<3<?5x+NDZ+f@06
      z1qPH|v$XC~wL~wYTM6AzD^#9tDTb|?Wwl7$kZz?^TVJNfHr+~_`m$<kA}DQEZNh6M
      z5tObMDtb{oW^GDXdo*>v)FyhoY!nyFs-a)u8I+$hRm0LX!xm-bs};)PZxXVrJk6MA
      z*h&?;UZ`On34)s6^RPKuFPAkljByNysmUiKL_veNZ$Np3&<GuQ6zw=T<Tak3WY{v`
      zQ31mNPpn=k`EVPaFsAT&5NU>OJ|Pk^pn+;tYc<U%@$&yq^^H|%*iDAM$5g>^O2Sbb
      z2w{eHz9zP=pTG4SU;hll?njq>T)P;~Nf_b03$&TFwZZ7;o`QrU+{4GD))*gQFH6|Z
      z?F%$msxy<qu_)mfchD#XEip>MY)ClB%{A&ynNO;)Qp3i$l@F1<Hc-N|EJ5a;H;KRO
      z43}_Rkub^~Z__PhxrS0WuSz(~opgHy4Keq^{Jw<a-25TIEHTsNns9t1;ShIx!iRY6
      z)QDDoCgF2@LB&=yW8Pj6=Ud^9uOxhpZ#YP^la7xcMLPVwek~??wpurfT0$I=j<qAb
      zhsR?F6~eE)E$BlFT1f@@4NKQpAKF|xOuF5rCDI)(y@_<EOLvjp?9$z&pKxiu-d30H
      zA-&C|dr9}XbcEECF1?-fQ!f29WjwQCy<YUY^bXR`Zdkt;J2$M~i|1VWdD1Vq^oyhi
      zTzVJj!42{J?xtIpeqSQXKJf1b&@y-jdwv!nFVk<B{sM9OW=zoc64XW!gjXm5)NmSW
      z2k@%+&QL^Ta{yOwq9t&v`PMq8Rrr2$F(k@p6^w)Hi~|m%J<`?XgZRURXkSMh@+zar
      zuZ%xE%Q)=CV1A6hJQ+vU8T%bZIMU)n_}fJYuM<W*2tgmhKc0l69)y55fi-y&j(KfJ
      z$Oj>LZpd-3W`=y4$$C7SIqFqLzYn6{vy3sXGH}g@G3Z%_>{Z5?4`RP(8BxR>#9_L;
      zxUVzv3&v;eAaNHHD>!-kAxzYT>2xq5!c01tlXM{Y!R#K|z)77NdO#9Kmrc@tlqo^$
      zX=FGw{*=Qs@i<p$aM@`pk4LRW?jnB^;i2x+E0{e+>a0-b9i<9Ybd)C4yrXoXE;?#S
      zsH&sh5Xy2?U8qZrx-8UNj(SI^cOCVfP#-wzx=<erwYl>?ZAHh>&<Z{clvePis{;nz
      zz+f{7vRQ0mbJ)txU^_dDo$MS2*?H_`7jTHF7-a<{SP_$~gdEc_$I2+MdFX6`KEXOJ
      zu|-^E7jd0c=qtB`8_d8Dtco954L>mpx0#K5tnTXa>Ux(~smtGj->u(?x^Dajdtn(k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/ParameterizedType.class b/libjava/classpath/lib/java/lang/reflect/ParameterizedType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2edce1f8a03e39ae91e452f4d9d7c5ecd041c777
      GIT binary patch
      literal 299
      zcwRg8Z`VEs1_nb0K6VBsMh4}q#Ii*FoW#6z{i4*goYdqJ{eZ-x#N5=9)S}F))Rd6Q
      zf>d?}7DfgEghKzMETB4e1~x_pF-+|s9YBfn)Dp+!lG4N+5Z|#Vy)-v9ucVlfL0UsI
      z+6TKXYeohhpf>;VywoCyDN-7mxYcq2)dnS&LsW7F=a&{Gr@Ce4fGo%Gf*!~epnDk^
      jn1PrT7y!&bKe01#Fo68V$-o7sxj{5go(D)WG4KKa)k9J@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99141353b96408972976d8acbe0811bf87fd2cde
      GIT binary patch
      literal 11555
      zcwUVf33yXwawh-(@{;zogp?qqfPexev|M7*0@YHAL`sXju)tbEo3_D{V49-f0cyQ>
      zy;faM6j18{3M{lBQ1Ha{K3EStR^4^IR$X=1bJy<7|6bCRhSjemZ{|PdpL^zi;hCQw
      z=>mXBct{5u!m-QzEBzCi{h`JQkw8Oppe{OLek6R(s$+|q{VgrC{dLiBWR(sQ!PT>}
      zZ0Ryuh@j2(6_?CHz?leXMd46O)E|mg`<q(>f{s80`@G`HIc2jLqqCg8(#qoU*@Z>L
      zJRlGpMU`dcwH3Zo5Zom_<SU|)V5o7L16&B%*(H5B^o3T2>-^DRI5fu}s&5WNrj4ye
      zNb!|cm(49^dJf1ys7TyuvOFybv3Y@LQ@DQGqP~mA_8me<Ei5W4t*ERmttu%Y$%{w|
      zpE)v-<ell8UsW-O#UtMB6>+RTDa%(<R;X0rLC_UaJCV`BgckOo-Z(mm(Q!nlurRiD
      zGEWv(klK_ED-gu2s`(7o&^iKZPglDZBFKsbg=(gjk1H>(tST>MbQ7T^J?LgaXZN5F
      z5jv{}eVEVdLATH$J=j(<=_$pP6_tgRz9JsjM#`W8<rR!?C$}(-Qtd0RtST(w!H)P~
      z#r)zTpE=lx(9ay~<s-XDzS80a4DP1G3JESOFE6a&fxWDl$~om_YI+|{7tJXynp;HL
      z;eq|6ffeC!Gs2)gt~Il@p@E!+2(&~a0snHcDlaV#(QKfFSTT3BMuW{0=J{99LdRLH
      z{^nBu@&M^$xpEj<mbK`}?nJbw2SdSV0mA5HE^G#w`kv*F`jrFAqHuj61q3WGpaM=O
      z*|W!1>uk$`$t6gE8d%^2gx?r27fKkaHDDf;=-@}_-y_5ve@hbyk^)Q2_4NjnLYWg9
      zph<^Dgb}~UpaG{rId5%pz?ldck6-zC*JF=7*0p~v|BdG_=4QD8AqbQ3{uL_%p?ZXz
      z>^|D>6<56sl0x*)G9Ut^Tx~^bw2ItaX8TwPtq4c;-4$%E4@6juvkf>0(%Izxx-(N?
      zHJqozxxI3hxy69<;R3SZN={N`4Tl*gN!(j3r$7|evQ;ib@FWwd+5s1n*rvjG^(Cx{
      zOA&H^r2>>F(^!_v4Y&fXM6d-(f9PXkzhz>-Ll{EJIO1Mjc#Q$q!gb`Y(Xcs*Fd#dL
      zJZ#C|8!#WzQ{YDUgAO+#9Mc$TozT}2Dp#!tR0JDC{%C6?V8G3A3uWuZK(shi7p^B-
      zWeuuSAdE>O>B6MCM7Yg>+u;t1**f0q3pIp~pw}V?+}X?Yz5J8awcdaYu#wV#Fcb|$
      z8vJz}!S2M+RQ#!9@8M(bWu5ey=9BIteJ|&A4;b(uv*&1yHk`oRIiTDD6%MF!a1I<~
      zdcAx9TATXEe|GP<$2xiMHUs|1nNKH9O~LZBXZDrs*NiYvlrB>q+iIS%e=Q5V(|}#@
      z2n`3$sSB*&Do6rnEJ`l%9s~A57cX8OjGDQL(n+?j?`qCK{YrwNKxymprGZGLe`#}o
      z>oQf^=4yW=$hb8qqfJ3NbMz7OT4M7+sZiEa1|bLg6?u>>5KMss@FyLfCPg19zZ&oi
      zJWDB#{BXWMLV1}?&yL!n{5_c}o`)B8c!5MbY|4O_;AJWR!It@vAn7Q$GN2OgLMOZm
      zf7an3LVC}Zk}&6x*Wh&$s<LK&F|p9+EGN9l8xQqLKeNKEq&k-DZ3Etccc};x@8tms
      zst_|y7VH(LF;ed_srP&FP#q4|>+o0F(KA-r6bYZr#&N)hq{3{@#cMgVKjw)21YuMX
      zkMHYn4)~0Ak7YJLH{c7-Bs#Ilg^wv-!yfgO0bj=x^b{WXmjVBdk4$pFcSM8A#1C|8
      z5{vh3-k8Qu2K<L<IEaSoBpo1myxTxv{`IpXTvDjyA=(TSNFAw8YfHlZdQKg_B>qfw
      z0PU3VQRfv!$>c>R<ylJJm`d*XD|mHa8fEz)4WAicpZeT^)aYrd=XIc)h-Hs;;s7!l
      zdV2ZV?B=jP>cFEA#`is@DpVh!L>LLw$L&}gi){yHQXC{&FTRGW4rcW_rZ^G_6O%&`
      z2KNk>w}zs@<%uMZri4(OkUfz6Z}9(XW>Qvglts-5OJiHqhF1n6O##+^s+z2=3)4A-
      zQCSGoHU~nD(I%q2jMIg3a62^wwJYk##*sj@)*R~>&tb9ct|*JwQX7p)Ni?VfN@+3;
      zpa?iyV)clKH3mX~h(Ai8w~vprckt~XNj|8-$p#*WQ;4q^uN3t@_L)2br{W1DNi<y4
      z<c}0aBK}p}h>TrSl#2N{T}RSLnj#r%5e=Ndq-0BQHTl6wR>d06CyuY4m%s}-4Hg=7
      zVWNwJ-VlzMJ>{rhXcA1Ob)<abNh+d_bceDnn(0Iz``)Rs?oX}rQDJQ4HFRMariNPr
      zb*+(LbQP!HC>fgcKP$Z4A0*c(CAsSZ4O9mddFFS%fu~`)nQdoTjv6Z^Cnw=NNo_f@
      zZ#m%rRvK7^Ii$XZW`AP}`cO5%>g*bWtiOnI9cTK(m_-;F%b7<Mh%9{oe`8SCo`G;;
      zl4kGM-TRo8B?kI&DS2pu8fFIr&Go<B<i%uG%cnW99xHW@xg>p!T9QI58Vzj1AbDj=
      zAbMDH)%P+R<GfnOGkcL`+ebqFW-Bq!RmZ3b1<qMPs{{4<!>MP)Fg2IB;xHkO*b2wH
      zO<YD5hQhnWz$j9C?&RxEk-xPia9G!$kgt-C>X@bDIlanRJU4N4DhDT_ju70G0+y~K
      zn^V@IR8hxaK(VD+=_GCC@`S}SZsjoPk2I>bsjtkux!J#ZHBqArLgo?8NU>Owgk_am
      zE@z!yL080NWvA!*8E$AG>pJnb9JIgd6|^(yLK^T>K>p5&*Yfmry_$fTB(ejqbK(s=
      zcVn+2P|*~QP_4Pqi8u4)ExlCB8I2k<E@ihk@KgsJbfCuphq$obW#D?;Kzv2RRn+(%
      zb~`%a<z*Tt&B+eDhct%lQSB`KeSBR>Dt+v_g7|=es?T=v_1i~P@ErE{DA`H2Dh34Q
      zW~RP{5&~`|%VaMqQdi}W%9~n{_b{a$26iC7Mc|3TP(AllX7`=!T9QPnA}%Y@NNb&0
      zR_t{_lO3IErwQ3ZF(7IkTZ3H&?&G$_NoFju%80FwdR<$~Qmz$`8~6l1NpduD5dYF;
      z(;5;0-Q7A;|2r}vkeizWjsE7sNMq~rKq#6}%%7o#p37*UzGZmzyy4B<#j2jAB?S+_
      zT4v*U17E-wi4E$Q5Kj1Yxg<#zq}2Sffv<3>a|EqdeFU}y&T0*W>bQwb*kqL*?j9<_
      zt&zIG>>yY36xHmjE{KwmFGST_MQET!=c}HPcz1w_)B^I`oY62CG_Vt<^SeZF5bjLC
      zQwUE@zzxFFAU%%vBfNhC?k0QyczV$rn1J*CqZ05zgl8t;gXu3T0Utv6&;)!K;YTOn
      z!wDaefR7~nm<0S-!bc_GEbo{EJe%;b3AmT=aS3=1;kgO;c)}+n;1da-lz>kr{I~>s
      z3gO2m;CX~kO~6ke{KN!2pYUl3_;kW&B;W;vpOk=~On6}eK9lgG1bi0Z#R>Rq!cR%S
      z=Me5oz)vL$&V>?!-Tb~wJxifXJ?E31`FR?Y)6+$t3aF%=RkV?Pi2Mm>csrrmyBlh1
      zI$_ZcSlk1iLEsVsm+pW%@3`#{*a1QBc3A9Q)&b26ysk-|u!5FEYiMrePFU3mYup!g
      zKpUZ#b-+~}aP<zj-s`0;*NdHSLnqwI8@%py7DVgr>LNhQXomq_g$|kA33t;_n+=Dk
      z>Gj>8cqK1(rI?%BJK=s4+GIgOq1z$YC6_QL&FRhYh5anZns~@Ux5F9khm|B=&AraO
      znb&QNP3%w;ifBEt*Wb(RbTWIp+icxKZtwm|ox4?;U>|*7N=^+T1X5H%Kd}G?i-j;s
      ztbkmx5~hmPFhiUNXNdD5B-X$=;v%?Ew85p~61ah$cZsXu9&t51D6WMa;(FL8Zh$Am
      z&G4eQ4GxMs;9YSid@R<(=VBv#Cmuu;o6#k<;b5^HM~NLck)Bh<PMj`w!+zq$3z7{B
      zkHTYwG4wb*L1w?00`p0@5^Ok<97sX*w->rhmvFRF@b?3dZ?WK6lS^|u;Hi8m@-&%e
      zce(QPEXUp8&T_4}8=P&rtsU%bI%dkQb#Qr`E(qwENh6FF^8%6QXouQ1U1my;V{*RJ
      z<DiKQkE1skk6mA{fHpg3Iy>OGTOhkl*E5~l;FWtIm7j0i3x+*UqXq3?cr<MT*fm1A
      zX47fwyYKYqc@ARvt$Zgh|I58hp4JYq=n<x?!$_hOk(Vm+jCSzkc#O&J4`{8-OC`SB
      z4D=W|MD0^g>a9SKeMw$Qo9^`JvOdq?&~X2)6aJo`Ci2pmGzscSpS%-3Vt;8%M^C!q
      z<<rbG_op<J>9nT2uKvpVh`)ct95XYm1HQD79MYn$wSzp&NnM6VU*d9jQkuxO|LOJE
      z<z2vHI9$3%Q||7ut8bmBT@=gTc>BY4et0E$^|$WtEw7HvZ8PU$QR!~yKvFBRI^jpJ
      zi(LF0Wz<7ndhk$x*sJ!q|7!*=d4rPvA+M{3Cp_u2O6fuAc?50Ptu}boU?==+1-!M~
      zZVn^%>{&p2I@KO6zRA6rbBil`Cu)>gdi30ufe!kn^kVX@W|W(xTOfIgo!rFhsvweN
      z6oM_g%qPup9$-c6Qs>z-FeL*Gx7$*J&ZB~LVERxRt)z)>+F`flN4L?)eoH=Qk8u5=
      zBPIZkGVinj)6K+~f&EOLc{~IAvqYwEBnZOJZl1VVo#>+x%rHkDQX^BXK;V&w)yOD<
      zHYq48&KEOqx5?8M8emU8Ic}5;92hglLLP9{n(DCBPt)$r892yNM}OF-Y{uD_>0D^0
      zTaQD18_HQTaIi%&+1wCwPI=5RNmk@2YpbNs;lr`_cJE~_M}3?)e{rnjGwESgkZ3tw
      zO`3|2oUYhW?xd7Ik0)%~L+~Ia>;s^Sry))J30&eC$PmxMQQ~<RB3^`%;w8uyufRBQ
      z5GIM&V2XGhri(XVrg#&4;t-UGx1e0S16AT(SS<bmOU3&T6dyoX{0$=F@08>}f^)^k
      zaDn)Q68&dzh4=^DBEEpz#h0)_d<FN3uPNcb1s&pBctm^$`^ES0wD<vD5I@3e;wN}p
      z{1^TreufW3H+)F>{4<I0FDc+VDd9&6D5V{p(t-V?6WuZu2T22uk!d(qrsGt4&XoPI
      zTn@m~<v^^LgYYal7}v=0c!ivZH_OTRpqzqRWgd3Q6L7CQ5ucFx_^h0UFVXW=IUV1W
      zGw?lGfS<{e@N0VhTb_(R%0e5+nKrweWlNLAwgGasZJ0d8HbTy^jghC?a^+mxak9i#
      zAWLn<vdmU3=i3&`a$BRUutj8*ZI!IHT_zXUelJhA-A2!Kvc`5dJs+U)&2ph_r(9%v
      zTrRdfCC{)uM>OA&OKl&>I@>3*-u9&o*uJCZkFvqmEgOZDO~Q~tF;FfO!(_7<C6|li
      zWJu)8uqcu%#3Ff?Xd!r|jED<li@01y#kI0k+$vX!4f1TUNv;wd@_eyZULX$0HR1(%
      zp?FnZEDp&w@u9p#d?qgyU&+hF_wsV_le|LwEU%PydAW4TtE5X_BL~XsWR|=^4wpB{
      z(eh@QBX5;c<?V91TqkGByW||XK~~6(vPRx3&ye@Ydij7{CO65IG`3bgEH9B;iPCnW
      z&>?S;yJ*)Qn%O5Gl8?%r@^RTEpOjC?r{qiYJS3l1h5aCvZ7R>P!cGtuabyUG!$$IK
      zT^@w{a0GRBY4Qas^BbuZaLH%!7+R-6hI|^2CCCm($tQ3WK{|DcjX0Vh2P}p%90RY@
      zZQ>C*0<+cFewl@1)z}B(2lUcd3VbNO#c`NJw~UWrh}vu5An`cnD(Dz$M8;Dennp9`
      zY`X1O=rAE!4PFa+6f#YS8k7k*(dtUq5N~NTQpAmB2TtN<j2=t&IOeGl__70!FU{@B
      zlhg#{cx0|ePPwkKO?G?a?cHCi)jdmcy7H)`x^vpJZjY9$7SUplyrcU|T3NRXPo(Sf
      zl01736<E8=vHH5o9GBB$zpgR^3wGkk`MS%#7oM*X891w=M!Hv5)KGeyT~TA-hI1-v
      zboK4Xz_}Iqj!ZoR=VdxNu#CG8xdSVBuc#5@XeZZN+M7c=ccZUHbYeAaXOQw0!w$FT
      zz|$-8Q!<^HnbLua_rvq~shO$n_71GgH!=+(SeI!a_hlW}keRwApSCZnF^fqv7Zbe$
      zLtIJlECwU{apgWz>G?PekH)jD9`$OvXaPBhTfPQE<?Ap)z5&O|HzAjv$IC--GC9;N
      z`8Ldv@4#I7E-a*Ht$ZJv<p;1*{uR!bAHgN^WB4t7{vbbr`{k#wnc#=zXRup-0guXm
      z!qfEmKz;>Z$ge3~{S&^G-=L7+p&`GgH1#76k^jM?<<B@mL*>#}D+efw_o_v>3Re^7
      zZk&YY;wi-WP#lft;rZm!BgmoI;U!&yep1e(K{LFL7bus$1a8GO<f=M63@dOgxxNE-
      zL%j+ICwvQI@j|=^Qc#dvUQFv!(SQtW!%N6%N5DuNj+fG28~=b~IwM`nxIYF+WxvY0
      zz5_2?(9`gz@RVjiik7AX8E7tz2||z=n>PLt-y%4dgy2;fiXeF$(@aiyAh@-o5(sC+
      z31`F!e;p@WZxPNm2@f&}yIktI;QyVL&X+)KIC!)XFh(1haAJ1+#O(Nq|B0V?rFCL{
      zmTf&<3LG1$C$VQOQJqM3mTT>LIErox8|mica&ZTdrDoDqAFQy1yVFRr6lgi5%3K(r
      zjfdgdL>R42g7Mn%Fh$FQ6SWf(_{xv-l^^4ae+0AmdY-(4swJEz3UX9C<&XvKaBPlh
      zq#PQ-gK|_0<**lU3Za(nR?zf<EPVs@46ecY(55Ap7%s2NGjvIe`5t!j*=4nvbcHSg
      zr#1`HHM*~BbWhh#ff3pqV%-P1+Nm%>n@jAMK#^7kbG7*}Un}pqp3$8=CdO&8EDoos
      z{L4;PhF6*@=HL7*(O$6JapAaac-6f?8RzOP1YV=S>lysL0&imQ4+^}M!8r=NjX>51
      zfw%K$h63;4(Ki&hZVPUS%QzeQlZ=b$PVyT_)y^Pitc8Kv5*VuaNyep+t<^z}Ru9K%
      z0hp>aK!Mf>Gqoo0X+fB$ErUw!OgLRzo?y0xad{W2@MCv+5bm&KyT~%zWbe36ymMYo
      z2W~9zn(2)ixHUsf@4a_uf9Sq|fgG!G#``xxZ&zML*TU7r^SKGSo*X}WGHz1uzU+{L
      zn+dW}oQ}bVEO)*=&d>RjT6kwJ@dNkIu<y}ogiEigkwci1sv2#G;-spSm|R_x+ldb+
      zVdXMn<#O`oD-u}AjkA)A+bmYb;2){5^Q*BmE7LJ6_gbv@tVm1qj-%^@^(N);qizIE
      zyNSH<#srP0#g9shYy6L}-6H!ANl0M_r+IUTUY_R7&6J(EJ<sl7St(sCAu**#v*h(?
      zroc6JRVoS4J$7>_Usp=V)DPE!8Q1OPME8M9dw_!E0dk-RVWPGP3JEUKHY;|^O-6bG
      z0(Ytxm<(O4jKt73Q&bfs>7+{?PQ_iMHw|1+h>s9tr;MGhG|2y<vjaOVQTM7Brld(_
      z%mNnp{yeGVbQvV%P)o+4aS>%qL}`hrnIdY3i#Uwm!fB6?p?5=?wuj<m55>k_N?Chg
      zn%1SnD=-g_i|4Zp&(Ihp9x;x)NdW5FU^?z0NWwHr6pch#j~h%;@Jb~(z)R!{$Ir{@
      zDiGWWWl|?J<rd0p^x*d@cFJsR5<PP0`tFbD`!3MNZQ+*}<M`c$mZ^DU2kvc$3wc8x
      zS#%wE$gGsE(`nAm6`~#dWM92|BaF@@)9<Hg`|7o-crd<}@bCpD-VS*@^d1cvhb^(M
      zj;}g=SB$?knHsfhJ(*`Ac`s<skv~6A`TAwbuCKr_?N!P;FN0S*NY3+Tn5@xVOnZYI
      z=uMcdy#*!O+mvnIfjaG7I8%EM&eh(BtF;edo%VOws(l2H(z<7~Pn9+1nEH!b<0UI2
      zXz(oVCw=o9@TaYez%|@#IHto5_$YO?8hu*vJmqXQ?8#qyXf=m-B{!DicHv_-*pI$>
      zIS1gRgjTa)Xa+vD9@2N?0ZMFt>cnUFaThq0n!tH#W6myoP5>9|#pC$35#_;`uJ7@-
      z(bUL*_5<nUNAk4)l3sp>QCc@lBnLauj!<m3L8)CPq?^jPoR#>hk~5uh`;&MO_|5!8
      ZoMBa&Kl2&*8omzPfbg$ZZ{V9S_<z9-Kji=b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e595c2a1b1ebf43a9c3abc85319c53d16b213bea
      GIT binary patch
      literal 4102
      zcwUWHdw7#q8ULO0CHd0u4N7RBflk8cFl`q)adtCMCv-3(ZRspBT2%O&d~H9L=F5^V
      ztiY5x@iLt#?&9chLpO#xRA9YwDPwF5+09Ksc6ECmA1{A6^-=fu_{ZvdPSTdPDfqO_
      zIXUm;ytm)`o}T^i$RL1^;XM_cVcsTvvtAk36K$0#qcv_s?aGFf)w!iqe%_?px(WwF
      z;V9ecmQBRP;7IDx+ZepHqohVVWhUAdGkDB|ZKPWDsF5a)^%t?!#PxKVIMfcqZnt7Y
      zo^vsI*oHbu6`G9BsFAcyD?zL?*5^~@j9Qrl8N?zC+>9}}mY50C{uF}}EL%&4)>tva
      z0|iAI3NhV{nG7fZL$L-YTw*s{!xfk+b|o67VJgG4S~FqPXF6Jp)Ed1dZU{%Ms2*Rd
      zr%drZcj&O&O)_kL9v8-iQTWnk*bNjky^SQV4o+~TY+@)qD8&L5SCc{GxHWtfL5d^k
      ztk*k8VNo!zd^xUBQ86ZiS(=6r7BWmBWp*SHGdfqdl0U&nSwsk3t5Jz8Vkk&wTGEoA
      zVP-HA$#Vxqp6XzFp3FEB(lW)2buwte`{8IXtPEZ{W^1-2jWH3KEUpCzV~Gm7Zows)
      z8_l+aZf8=4hH6l8Oo>`4qi(ngXJl{6*k-(PrJioD(~}guPh**irR3ZMqJ|pWBx)~i
      zB_;$v3z5YtRxn&KDoSD=DzTyhM6gQ5XD)|65dsY=+@dg7iBhQ7uo?|yyP1v*BTSZg
      zvx?6$Ts5jL5|0~gdVFcBEz@Bn?B&BKQn7|%*7zJQ%b4+)k#d9J;!Rj~Ku-ilARG>O
      z(1>*cJWUL~;KT|jTPrx$Yxq3AK=9L(Nh3ix3<W2~WMci~?p`cZY|yY#RJGf-vP2JV
      z!8#GIsD>EGS6AH9iJN>FUvIUNAQ3~g-42t$(Q2i#;Hb`Hb@L<|%Eq5Bc7qChu8d2R
      zT3Xs9>{EOKQ9;cbB!X0m4h;!d*;=o&VrHvpq|!1$1ghJSRza4}&eQI4yc%p|$bB>2
      zkZFmV(JUaFMb+G)VIHm$(A=V7E4EQ6jN3DMJUuQY!*OnQ<4cr+gp~*-rLNJ0rUR`h
      zt0O>Hwi+oajzBWol+tc&CvCAzlGt_I7+V6R_=<+R@zrb}8v)Lh!Lmy<aAEn^G<+T3
      zpu#fKH3Ye=fmyl`pIlft9>zVQ@V<2!&b3pp9QSJY4t7$wlNlNZH{^-RrRy<wBrg4)
      zhF$nR*&J;*qPNvp9ZB6bTg<p=Z(*poOzRryG&#HO*YJR-3P;-9YN+@DO`gd-5lG*y
      z(RA|UV82Jh6lg-rBN`sXUP}9BJ)RMBwRpJa$mUXG#f2V%_~I$}F&<a(7`2*wbPfCP
      zgeWpfu5Mc?(bzB66v>^Fo}b`nDt<~~m`K&|q-cPSgwbh>7W{J!zrZiaypCLEXHT9k
      z!GB0Nc32GBQQeJ(O_z4#eic1qIwujtd7p-U3=pnuYiTN_Q!0YN^?7od=S;;>hQK&r
      z*IV`qdOO5Mx+6UxlJ;fCxg1RdgRG|;(uO_O4KX|98)!pvc-pgO3RO%FK1PknDUn6{
      zB>iooicOm|U;pp2A^|HN6NA+zB}Msi=fQ(m;Ko+5zM|pRc$KD@e1D{<ArhBxA}t5k
      z#5a`(zri^bza4%xNYygpY0-PmGnD0vd%jdq8@fQX)=pDXJj2}BI1;#QXZAE&nN-wR
      zVT$LJM>@JtsG%krNhFMvw8)^&`TH?*YfOCTnKJSoz_o-Lg<iNW`g6)ph#4wZ!j)VJ
      zQuOH&k3L!p#gmU#hulvmc`xni={r3XQC!}K8RcGI4`!7ghQG<N@hSLwFy|1_IIg5m
      zuaM-s;NY9!;rC(|zYiawb1f^6xd_PHsDI~luO|s%qp!S|imjq>VK2(6E0hw)#$Hq&
      z98o+~F!4v=<c~t*d!^DqRuCV@b<)8?e1e>$XpwVOB*Dqm>v2Q&BBho%$YplsFh1Ff
      z8=uDVTBZ6ZSW_Qvt`C)WV`UF&L*1wyta9vUA+hs07KNRDXD{lyP;wNvG#y1_llOCd
      zxK$iB_u`9v&`*f{e1#OW^rO}9+=r?W)=lGBZ=IAP_VIosyHHuO8v(zwADhE2GGdnB
      z)r-z96bn)Bor2d<9g=iPgU{iJRk`+~LYnJZ<aa)Ck)>ZAcgYUdkk7Se=)5?)E9~;S
      z2CLNl2>V?=bx}Wd>;`GN<|x8V@}v*n47)4*Zohi~-&XK6!r=mc!D)EtsGt|$-JuTo
      z)ICGb?r;qG9D6=|wPFDGF;qE1KF4u9*n@}UrmF`J6Xk~t1Nad`*ts7!`ke#V&!k4-
      z;zK@%-_?x+jkJF_yFVyD2JjTaag+|AmlJmv{WfNA8#)m>NO^6*Hu^b|tC91RfAB+8
      zc!#M*x>3Y?P{Ic=pC7>jehiiTIIib|Xy7N&!k>Y~PvH()xAEt2Cx0II@H5y&>jV5O
      z_VO3-IDZLG@|V%aU%^R!4yX8eyvQ%$9Dg0}@i*{3e-j_j`d@y5asC!7;BT|3{2ex(
      zzspMaAJ|;}M;79LVoUg+*;4)&wvuQK{0Lje|H?M<_nFE6#!~$6Y&-u4yPN-$?d1Pr
      zUHso{FaLlYp>>eXPxJrCTHh&P$<E*y#e)FE1~G^eqSo0lip)uhKoRT4GZGW?**=^i
      zeg`VqJUmP2aMFaDiRTC%F1$u<;WSZQtN=I5HsE4Yu}q$+EQC3D9%tZYO9)55qFn*o
      zPLIyBcmYnflVk<eMN;&T$wBxr($8sKMG$_mw!-@o73^*l(YKeW07{z_uhQ6$*A7&8
      ze<vx^1ZA)bPR9X-4qu;ms2mspez^dxLjRsB)S;AV@G6CvL+f0{i=a}3>y(+OR*Df(
      lX3Id$%$g!5uxtt|@P=#(9B)dUZ{cm(foR&`9lVR;{{dj~OzHpt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3df0e4873909a9904dfc4fd12eb04f8afcf80662
      GIT binary patch
      literal 3655
      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
      W8sfe0!*}sLuIdMj!1r+(EB*`Qkbq18
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d43a4836ef478cbc59dc2e1513825a82b88617ed
      GIT binary patch
      literal 997
      zcwU8)-%b-z5XQgh_77cGTZ#pxlnPX(r4hw&1(KL1CL~o%BqZvM+j6i=)?M5dBiHgC
      z1da9vG$x`6DspGygBYJeojEj=NQf7E_S=~`Gr#kl{qcKu55P4PVh9n2mhETuxNCcl
      z#{;$Gs#<gWZs0#(%j<Q1ZAHZpCL}v$bJb<8B1B!^UQ_|0uhL1DUAxh!=)@GkbiAet
      zmh75p5K<5St>cR5wBtF=8A56Fgf7Q-6&48LvcITI7&vVqjxz*fw6G8dgIb6nDk^0m
      zhAu*);&|%L>XWJp=IyGhI8*U!w!2^lj(oR+;bz@o%8|-{4PorAy4|P?f*w38ApI8l
      zaE|*(ia@jcIDA0$bk%mbar)>14?LVIJRn5;W?fuN9ZwTND{QoR&tDB{>XsvzrpCA;
      zwFGO{^HiW+QH>Zb^Ie=kPlzA#<0`vj@IMejQp{qN6s!0x(Kt-bpJH{ND<qOAeu7mT
      z+hI}KLHB#TwTIUf!T@dX53-3kz2tj%g|i&LaIg(&^a5JR7}81xg;=v$?J+O7TIwf@
      zACUNtn9+hM@*~bq8#h`=XOg)(2f7C)IP_?GJwyZYxwrY}S7z%Frk96+w$MY{d=GEg
      zjcr_~cSnFG+dw@SMg{{sK8-<SSqab}a&4d%SM$M89@_`q7L*b{Z;;eeOR{VrVr&^R
      zE%Zq&J5kc>Yl*HKlx^ev40rH`#bDY+ggzrnUy!4($kQGpe#0c|o3yV{iwC0*y(=^P
      g5Q9Z9!##Sr+Ym<t+F(7R`{!|y-*Rn)OBhA}Ux7HxmH+?%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy.class b/libjava/classpath/lib/java/lang/reflect/Proxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee410035fe5af4e49c74d1878ddd29e19ec48ee2
      GIT binary patch
      literal 4465
      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
      Iyp5*+0vkHZQ~&?~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/ReflectPermission.class b/libjava/classpath/lib/java/lang/reflect/ReflectPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28fac663c26a3804b7c9b29bee7b2a7fa1c58741
      GIT binary patch
      literal 599
      zcwUW>&q@MO6vn@6>V#>UrIir~5tT+mYr{oGU<?tNLhY{O)ozS;VEzO>j1SRDXwd`o
      z61_&N=-g2f(nX6o|M<@De3$w7etQRSiX8(nhP@~L%uR=@f$539BkaJuo#Y$g4W;i(
      zR~d*i>_$Rg*r6wb7xSF^(w<2ea=!2+cRIq;eY<(Vz^)iF4OjUAS3!q6p-A*U+vSn<
      zHDXAfNhO0iL*dYxd1wWmRD;@4haui@dm@D;tfrB|3PaYCN?eD-uJG=7*AWbP%eCnw
      zr^D1whw<Q1`V9NlKVDWNx#GhJHD`k1V1czoX0^*r?XtjNa62F}IY_nK(6hy*)UJwi
      zw@);P{sW_BP%I&VBxQrT7?$Z{`rQ=MG^tY`qnxZ%$H=@!nk>asG`*+Y2jr+KPE=S!
      w9*C-SY!E}U3R6~-F6x^`rFuL@@h_}LOCo}mC$e9dF@@=Biz;n#JK8S&04?BzZ~y=R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/Type.class b/libjava/classpath/lib/java/lang/reflect/Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fce84d93b806900a7a57a148c9671cdc6f574391
      GIT binary patch
      literal 107
      zcwRg8Z`VEs1_nb0c6J6PMh3C0#Ii*FoW#6z{i4*goYdqJ{gBFnRCWdyMg{?doPSal
      rP>PX(D>%QjC^^+FGbfdiffJ-s52T2Vk%5tcnE?VA8CZcN69XFnXZ9JF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/TypeVariable.class b/libjava/classpath/lib/java/lang/reflect/TypeVariable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49cb372e307792b000a2760a822ca52ba56e3aea
      GIT binary patch
      literal 443
      zcwUW>y-ve06ot=iDJJEwMZki@oGe7FZN-49vQ#i6urS>Q6S*=DG7b{2#=rycP>9<K
      ziN7E**s_nmd+dAs`u6++;21j!EyCfPA33$`%GB#ytBa84PxtzYz2TYF3M+)(Cv!2I
      z3!<<}*l(^RM5PX=Rqbvb2nTU;J#7Yuggqh8wA0=cV_jJG98Bd1ahx<1{U*gC%1r4v
      z)Lt&`#7Uluro{G~??l=CW|ReQTq!^|t7>29iLt`;zxI2ypb3|wd@%Um6HcZ-(;5EN
      nu!Kfv%jn1lv?W-DH7o*-&=qxE)D|{mzlp8odV4wdK2G}Yr009*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/UndeclaredThrowableException.class b/libjava/classpath/lib/java/lang/reflect/UndeclaredThrowableException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13c08d47221d7b50fa84fe67d74db63ded98b032
      GIT binary patch
      literal 939
      zcwUuK%Wl&^6g@X};u74JrZg?#(FQiHg9xmtU=ct9MJ(DR`-wA62RUP~$FwWHf)4=+
      zREY&2&@W)Yk07Cz>xq>hnj+YY?>%$Qx#y02a{A>ffCsqaqCmL!O1u@#Q0QSZmiwU$
      zOtY&8G6+R12c3gBIu!j-K0ONLYoj9V!XebAn%z_zHJaWNt|T&6BJ9aH;lBI)34vY^
      z7Fv-`jL@bh!c-QW_usxJKYpGOR?_q12&?Vsj0yaZP})&inMZ{6t(lDN9>Hlv16c+~
      z@!(;Z;Lqm%2JV?y>7i9GwUw4H(@|f>opF{*I|_Iq!E14!gN`{+3E_VG|K5*RC<Y=;
      zINu!BvwYY7$d^aCV7p7a)^!hMTqd|9nIvLp6Q0u(szYgJL?NtgZC~)Z^DJp)=?LY$
      zD2)U8Ol6At-&V4J5b7Lkj{mCyYAB+_ool;!RI;>OJB)c);B%3?$ILG9*Yz88jHQp3
      zT;a29;SO7LvBFh#Ov6>I0=BBM9a*#G+-#T4vf-Y8w{eU$zwsHhspF!(>$79P%7Jy=
      z9P=lxUhbMzH*k}cgj?9i{hM|kQ1m~c_F-aNvfvwQ=#2@vA@P8J62F@%u3OgaUpi~h
      Ae*gdg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/VMProxy.class b/libjava/classpath/lib/java/lang/reflect/VMProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69a3314d064fe77a24054251164648537812b1ac
      GIT binary patch
      literal 1005
      zcwU`S+iuf95Iqy;;<{TXrnI!>QlLmp9|-V(gc2cHNw`RES~XTgi%_(2x2Y>*ORihN
      zUxE67!~-9|N1={4>AeBOO5T}0bLPzKj(`3B@e{x^JT4(enBA2JvJ%RuUrE$<sQk3j
      zSy@Zs&tFQ&6DCi?tG!*066W7Joo2V?c<<P}X?oqY_0{(q-MZ_v+XUJq%w5fBIG#gT
      zI3H{^*B!5UUc;>UVGsrBD}u39?hx|zcuS3eFd<MtG4rkqlm^}n0TV?=+#ph|{ZBoW
      zc(NBNg6+n>3_CIjvhxru*0i(*1JeRiuvk9b3HJD6?#Q>Oa_PQGwO<eA9<yspXXqMp
      zW4Wc0>W7PXwR{QTHbTuN%#4sBSV5GkWLx@*%h{J@3F5e?hD;@)^?xlL-&HFup6Ic@
      z-B*!HWU9_yd}UOXe~`TDC9HP5pZMx^kWEJnAN)zi!&4rw!9T0P6Xv<IXJ%8^*3`DZ
      zb_^Et#`*M;ZMG(iLkRw^<qt9Wje#6&-fiT0f6jZA(;5&c<ED;gYwAR%!Zs5sEPuzX
      z)AXVS2PtAezzlBdZe}qzOn$*O6U@=q3z;8v=JX(ndEC)ubGVCp95-<v3xCx(_>%^i
      Ncz}m|COp#U;t`K>+ZO-;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/lang/reflect/WildcardType.class b/libjava/classpath/lib/java/lang/reflect/WildcardType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f05e27764df0c6ef764f19466727e8ca24271e0e
      GIT binary patch
      literal 233
      zcwRg8Z`VEs1_nb09(D#MMh3a8#Ii*FoW#6z{i4*goYdqJ{qW43l;p&sl#t4TRCWdy
      zMg{?d8vmp$pb~ZlHbw?9Or0Pdj0}9~sU<%7<*7wZ`K5U&#f%Kn8k*5Q*i~CYl!q1+
      zAe3_j=a&{Gr@Ce401XpFc8wm$5TMnJ49q~x3iJjO(0S|(91I|5a)M}}I2TBqfg1o@
      Ct3Bud
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/math/BigDecimal.class b/libjava/classpath/lib/java/math/BigDecimal.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ba16bad4c46e5996c72a309a64cc2181e164aa7
      GIT binary patch
      literal 18062
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/math/BigInteger.class b/libjava/classpath/lib/java/math/BigInteger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97bede685bcd238d64f4f064f46d7da6f805b2b1
      GIT binary patch
      literal 30692
      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
      D2Eyy*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/math/MathContext.class b/libjava/classpath/lib/java/math/MathContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9099e9eb1172f22ffc35ab49cb8b12d7ae2e5ff
      GIT binary patch
      literal 2676
      zcwT*0>vI!T6#w16l7=lU1qyxHSOlA-w7e-asHL<LObb%lT71AZS<=OHw`?}GR^B4x
      zsGn6BKRDwDzc8bqq>P>MG2;iv8UH2qcW<^y2q~S(?!D)p^E<!uxM%zKzrXwnU@z|a
      zP$jVSvc9PI&+G17{}>;`w&fa2t`9W=P3kDETdDrjvzLtorF8;Zl+?8QCk)5b)8?{1
      zn>GaMC&%NlvDmqh69U`f6+s87bz)>VHZ~OBzpuDHbU+~Bt@rL5px=x_o-&+_X<L&q
      zB8pQ24TQ<Ky5&yk>8w#ZX7Bu~Yf=11pasWBm{OODG435ZYbD3*Bx!9gp>kG=O)Di&
      z$i*K`q)p3oUlFM82~7#q4D+BKt!Ve5O`xT+rG^e{5%8THijQ8HJQIMx3mUo*6sU`O
      zcpW{l_56mW>S@uf!3V$e^^%6260ct2jZBS<%k!5t)XQ^$kcL2h716K(eu2igX&K|$
      z`B}p`m(P83+)glGI<v;TC#>m-si53BGb5m74EM}hngXcCKFPVo2PVI}Sm#(eZKU+{
      zkdw;J8<sn=lrR=tTKI8DU`GKUn9wcDc7wA<Fl}TqL3d8Kg3E?u_XV&Y0}}cOTdOBt
      zM4oURroan-P{SrP%hfRrn`QWo<X4&}KVBngr$iFKah&jB_^H0kqiPtzC`)2mNn`2s
      zC6=y&=U6BvAx>(Df!$P}$<AifiBylpLeE+R5XZO=V*;B>GQ?I+8IFe2IKv)V(4CAy
      z**eiGmuIER38_)pODiTdOktW4EXvlF5%g9<Td$}5m|@T5wSuxPCM#q+td<+RWIHtQ
      z<86W9^Xs>#&xdyfx{7}DO*X0!3a!A~LYA`Wo*~FYl~yb!%fVY=T*>O`Oj(BV6J;=T
      zUdEr)pktP|cj;+dPf4I^KEZZKmGrQ>w7l$%sizx9psi=!M6qD5J>gY-OHYMr_+WE>
      zm5YyO&2-Xm{J6qVRhTx%0<bV3AFhTh78$C(uwYn8H2|Ik_fS|ahPg3VnkoggEKxoZ
      z*u8%3E1*fsYtr(1ndMrBpKEzjLmKnU%bcE>8&=n>6(4K31(Tsp*jXoGjGA(uG?h&9
      zJ_*TB2#dg9EoWJ)oM-&3w92`q-U08uLA~3cp@F&^xvoMZe;fd6&Fjy%wAzXmYHZ`~
      zDrzAAqN@-y)sL`!1)V?PMY(J8J;DyP-KDloYug^R?Oxl4A1d@-K6eovI7lW3=s!v>
      zgXqLCLcE*3IE4XT&p}4BTUme{y3pq_8DfM|Rv&K9(<s6Q)WHQ3zo<-G@`~tJ0n61M
      zhA0$V(1WuHSIu{4cm;dgzd^$)_RlmQT*2Yr!tIZ7G~D|b(V~ks)bV+l*+>&~o^Tdn
      zY<__jl*?cqtl+ZKb17G^Ft1h0`4P|gKdhA0pO(%e&962Eau_-mjx+^2YLYp;{seDG
      z3XzVchKo78`2^=k=6keGE0S+Xk|oRV&p5gkz<DWnNOv`)-H&(F`zSvJ`7rvJdSIE-
      z>uiD>BzKcqw@LO6weB+cpK^kK#&P>O=inD5p-mS;o5p+0HUA4hH}l=BLgUQvLc7Mj
      z)Q?2|fVhv^>IaeEA;x;iQS$s2o4Jf~8O<Sa54AN9svneP`Ac^2S1j7s?2&uy+xrOf
      zU8E8zP>I06CDqHFNKq!K%)#`i^sABswbF6XNu3gYrvSCQf(IyA;P)#SM}I6c{-L5V
      zudio(O5H~CU4=E%ys!dCQph3G{6P*M=7YbQ!;Ny>)e_ub0ryrRqQfdepdp-3Ct+^i
      RE|2Wb5|D-h$Q`Bi$^WV0K|%lk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/math/RoundingMode.class b/libjava/classpath/lib/java/math/RoundingMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84dff2c38bf13c8eb5268596ab1ae132bd2e90c0
      GIT binary patch
      literal 1970
      zcwT)}-&5O05dIEhOEw~L+=K)Jt@5+jp*Rpq(%2<{G2misg0NFHZBt<jBSw}PS<aNl
      z{xN;&6LDrjrcBemw$neLZ~af&?j0&H1V=Ngy>IV!Z}+>s`{SRV-vXFGT|y7Tz>e|4
      zNHq*^JGI_yJ2lIxuQqF@gkFXVV$L?4dMf9%8w@?=HHK@2^Ig&my$hwMMFuIG%NO#+
      zC5GT)p;THY%ko@d@j3Sni_y`#qj9d1qj6ukSj=T}nl`ttGeldaYZ-RMbX!)_Dd!g$
      z*cS}_*{0L-49BY&cH0aF|NU#{@97_2l6S6HUcFVBE0l8@!{D>-Dax6uZ8?@V!w?uv
      zR4C^xO~?pFzz|n3gkgqI#$PfpS~%fA^IVFP&L=8iTKl1bAVM-E4z4SZIFLEGr9kE&
      z%)!SB!W=|6NGgbM(8s|i3i>!uIJl=k;h>*``wIFI;-gO$e1OXg7YmkS7Tb+Y)7>yO
      zZIdBZXjX|JgJ>cwj1dG7r-Hm~t3{N*;2f2<7=}jkiEe~Q_?+R!NsW2iHtU8x=hoW|
      z)A4fOSIu3IjzGd=hO1|}m~UHl&2(kVQ9_nOJ6bi>@O>Yt5zHXVDW&7Pat@P;3SY6P
      zU<u1ay0N=!IyHvj<9y%UDlLQh;QF|#{-2`S+HSV(n!0JKO^0Ml^|np1b%6(7C8E#U
      z`aK(z7;d{hNos>wYN<7Iiw>ZsT8=tz)fddF)iCUFzR42>>!6;Kz2;FIhRdVxMo&kO
      zL6&ZiOV^0ysakP7Eq*$QuI(DZSNK}OGrAC`0`9duv!UP{d`nlza9v}s+T7iv?mAs(
      zX>-S{dg=T*raW)^vF@atmq!4Gf=Ae-mOSm4wT)IQ{eF7+(?J(6qBYxY)m*fA_g*?3
      zew?qRQZ%dX7+%|@`Q#b@Ot;Kt(z6qEPXhF!MP>*2jRZ(bzLtF*_I1S9eZE$F-On}R
      zxPXfkElT4aT#Cl|<)d+s;#|Q1&0Hn)J9@#t9}mIw*tNg`247)BfRB0wPzAUV6yT-+
      zw?hKl5nxmjAR)kAS%5JC#-m5;QUXmxj}}fw<zEN~IvCOP-VRhv4|Z@<(?cEH(R8VU
      zgr>_KjA?q5Oes=io77%m>ZK@Un$ts?Kl?jK;eoJnq36yoYl2ARG)l?4!v}bH;uxX@
      z@SPMfmhhS2D@+}c_TB#^miU|-|4Fb@!qF#@q)8r#7{Gm!$0S*jC6W~?WS`0)QAtKf
      z5+q|JDU!+kLuB+r%;>S%1I))?BNxlR#!9S6zt>nhz{an~nNHI=(sAM*MV~?r4{3)C
      z@?=@T0#>n1SrzaEYuJE+GPY2G1MO60E?Fz0vZwgcuWXts<HQVfFr}{ql5h14KaJJE
      q&>QGu`)7D!$K-N$p8GM9WZ|=s7)!pvcfWyk_v=Ab{A)0U-ue%&_OW~b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/Authenticator.class b/libjava/classpath/lib/java/net/Authenticator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcd17233d15512819c914e94acc01f0ca6d25b59
      GIT binary patch
      literal 2399
      zcwW6!TW=dh6#m9pd!5bZ+Bl7ywxkq@?OY7K5Za_IY15JvHw|@(#0%19JtSLfui0G#
      zl>h<%q&)LbE^aH3cx*)xh!zmfsNx6k2Y@rP+pO2#08hx0&)J#z&iTG`X3qUTzxoEi
      zbJ$RkU>Lh*yloWg+$%0My=`9iEYt98M}@*LB=@RDeXDqR^BOljhS3Ut!)R8$$YF-@
      zQhb;N24&lJ2{=*;gOxqUs&9!sqf#OCScqPwza?7at}FH%wnJF9%8+h2wr87ml_5oL
      ztwHN4*WBhc&Y-#6TlR@DOyqVWli#3_=j;mCFp4o1nTW*lb=TuH9eXiObho%y=4R8e
      zyz7^Yy0OKH=Yd?lT}5<zLB+oIa;|Z2ojWzlbuGJ|#(svqA<GCa4Otx2@dPGG(xO$j
      zywePsTzA3p8ycR(Qz{NKWOpT^<7qs@Fi5pA-wY`T`hG|^IA07mDReIwaypVo5w>L2
      z`C7BK$(^glW|fQf*``t5FdR#K2a76Q2BCx@;nt|||4<yt?(nyo-1XKC*L}x!Ds3f@
      z>>9cFTd>+)hySvY52M9rBud)(cTL_9AFhfcB%quB&Iygmb4<q^jx&55)0_X9d>V72
      zVK3-Vkrv)b9lg+mx2U5Jy6{fx==XPD)G^?DXLSrBEz~UQIFAc-ljy4N)|A7!f2YFG
      zlM^?y2dm-|zeI1$+qPVWVG4Z3Z#s!8TOM7R@%Dhx#~wYtBB#b^^u;}%8_}cda!3#f
      z8WWl5&d$u()447ONOZOQc$$>$repF8mc00pr#dIdD2J$eJv2jAXyUz)mk@1`mYN_f
      zwLsebV0|F4gVOfVxgiWwoDuqZ9SZFL`|e;*Y5FdProTq^wULS2IB*Mx3SVIAGl|X9
      z{}^Qi-Xp~O6zKzG@F9(lk5G_%G76?8CxyOeFiSal>Dm@)?^(IZX!eV&oKA^YeXKAs
      zGn-ZJ;ONbrGy_uL4La}%NxLD#AM=j~5``y3GU*AK3F!%;J<=0W6`A~aSMuM<SIL%1
      z^2t;-br-|glvMq^uljRL-9wVyBwJ`<p3HO$C&=t?VS&tS3#Z6rl@`tjn`~i;>@A!N
      zMI4bm_?BqjC(7Sp9N*(0e!wJt#1tM7v4=$MCoJM;EaMlH@T(NM;!_KHDm)>XNl!>l
      zNUuK-T9%R(=?Te6`mM>zrwBt2BIxo_vLZ&Za2qROLp2%hHwy4bCig3v#6{V}QM^pF
      z`~bzB0AJ!ns4^uN|A+-&A|~D7`A+a(vEa*Cj{z@y8U-^g7W_(V=2IP+Stb^IB^G?9
      m6FeCUF2{nGI>Ch)up%a60G<iJ3D$|6Z$l;mB*Rtt_3GcH8TKat
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/BindException.class b/libjava/classpath/lib/java/net/BindException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b8391227b9ded5574ba3310995757af6fd3db69
      GIT binary patch
      literal 499
      zcwTK#Jx>Bb5PiefnG*z25b5jy6N#ZR5DHNvhS;FjFUJN~k3Dm@7(0KFg@qxpFxLJk
      z<J>_={3v!l-@G@opI>k901i>LkRX(A#e-;SX`07Mk53<6d2f`jEu;vQRd49Kchao7
      zghD6-B|Jw4A?Mfq69Qcjay?&%Mrh**Zzj{vPnD1GwRJ?ubd*-6OGwu04k6X^$I?a;
      z8(G*`C*%i8%gfnxB!eq4@+6@+@Ld)VEW`P-m@+pi<i!U6Z`~%8YKxvH^rSg7fzp$9
      z-HD`1k<=E!n#wQ~lUU*plwc42S>Vbu6)*9F{vd*54}1mxAfbvhGVCqR5?JF$(KT$d
      zTxqc<_UXnPxtAD{XKS+uI!K|50!P^e2%9Lzq`c#jpv%Yzn`!LNvHhFjoM-wmLwSK(
      PGDJ}sJF$2rp4t5d;PzzL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ConnectException.class b/libjava/classpath/lib/java/net/ConnectException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dea4cef308546f01662b6c82835ede798689cb0
      GIT binary patch
      literal 508
      zcwTi-%TB^T6g`($O$9*|1YEh}k=PjH3dIF#0wHeD?uR<TYMGjLFn*F-S0pZU?_cOo
      zxHH}sq6x;u+~>LH+&gby&o2P>P&1GqRByz+u$0tR*H=n9`t-q(ciQ!pffS+g(;oWH
      zt^Dm03ZV>K;n^|>Ilt_k5U5YcF;A$4(zfuXGJVi`|9JegUJ02)SGl@FNY)!RA=UM-
      zq=_WfvM{kq$PZj4&!>}-3@*gTlZ4{HcUVBM4CjktN?*GnVSDiJ;%!2yK5u(Mjjf>$
      zTs3Yt>`1K?scjI9i3~$Aj#d6Z3FgqB297*)BgxXT!frHy9q=vum4q77$gnp!OJIc`
      zMK`g{a%G=Au}?Q=$UVi7JX@1JaD)_&QQ#;$2Vot>n3UIC5Of$BVKdFv44cagJ)Y^u
      T4COg$!4O4dY{lZ0c&7RdUFd1#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ContentHandler.class b/libjava/classpath/lib/java/net/ContentHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3eea635f56d455ce1a4a033dde713c0df3416069
      GIT binary patch
      literal 811
      zcwTi<T~8B16g|UEySi3^)(XW>)S4EHjUV9!!%KtOWCIB*5BjuSCNRx9Yj(E;6CZu^
      z7x?ItulRzA5Bvari@!lVvn8NFH`#mdoSA#>nS1Bp_s@L*4{^`Mn7~v&*bdr8W$jLE
      zGG($Cf!T;u;z9~c<eO1oHruPcz6vve;!|yOwj|&*n(G3x6K^OF4$hZQKv7`a*G8=j
      z-t|=SD(FQ@pzOzC5UmG^w(CPsW?MQHsQDwxFA8{@Dmw%PT8-nAuh)FyhH`Xl7MuP_
      zkv4aECsgn4e(ItuP|45exZPbn+7Vb9N&5C5(oPhl=~-nw2vkeBgmDj3sJWQt^-tuL
      zFoUbqqtmWQv%rMBd$n<ztNDgK86;6CFg;3?fE!v)#m1FSE96MxUf=fnjD`r!ze^!6
      z<3SRtXW9;-@_)}C*gQGQTRE_w!-zAbb-8*>FX#(%KXC3lgE4rt9zC!OiRZY$s5Cr8
      ze-ZWxu{%U2h)McMSfs+7W5kkwCQ_iU&)wg{<rQZ^enX{Im5=84aODdM^Shs<sLIy<
      z*FV3+?osg>ssl3GZ5G_&6h5HF_zphiVxA01hhp;R8m{L8>$riNWGT|#!mNG3WV_8w
      KE9!1uq5c<z8M9{q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ContentHandlerFactory.class b/libjava/classpath/lib/java/net/ContentHandlerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7a4e85450444a6bef1f9b3c552aef9ca7a8e6852
      GIT binary patch
      literal 211
      zcwRg8Z`VEs1_nb0PId++Mh3a8#Ii*FywnnX=lr~q)Vvap#JrT8)FQXU<dXcNN_GYo
      zMg{?}nw-SEbbbG%tkmQZMh21OqSVBaR8&2T47wUV2(`f_MVWc&)|x&ztgvQe;0n$!
      rElN&x%gjk-WRSw@0zHs!Hbw?U24)5jU<5jdm4OY!Vqgc7Obi?V+)O;4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/DatagramPacket.class b/libjava/classpath/lib/java/net/DatagramPacket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffa036299e1aea3936ba9596dae14690f37b3d76
      GIT binary patch
      literal 3557
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/DatagramSocket.class b/libjava/classpath/lib/java/net/DatagramSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..033684ec72fb5064f26ced7842d6841dd47dea61
      GIT binary patch
      literal 9962
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/DatagramSocketImpl.class b/libjava/classpath/lib/java/net/DatagramSocketImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd8a144e49fef5b0f3cb73d4e45383f3b1f0dccf
      GIT binary patch
      literal 1571
      zcwT)|Yg5xu5Iwg|8(NFJ6nQH6z<^3c6dxcjQ729Yn4!b>+w@WcY0^mo`lFmtXPj~L
      zgFnC@<+%5zEp1x(kelS}IlE_flfVCd{{gUsZ5=6w$zy)Ti=K#zJ3QjmfY%Ou`$R-$
      zt?ug37zP!=<zBV8S3VYYq$A5P+LFcey?W&MUdWJheVe=ceh@J*lOc6fVHmR%-SLa>
      z99Qg!&<>n><Oiz^*)_*=qIHI}F@MOQz40p|k2D4fxPk)1faQ2%_q0|PL5Y`L!7yye
      z3Wq#!<a-0uqK^($pSCV(hpK61$0I)zhIvjj>Da1N0uhF*(n9|2XIsSW=olmOiB?--
      zhK%j{Ayv=Xf#8v}Q5WKbVcfVNy{Y3S!$@-)=3ZN}KB<+i8K#WxKK8jRPARBLC}bCx
      zv8WF{5Vmm6$dzvUo=2OLjrTTYDglq*XuG{xvOl%he8mY{IkTaNN+pYe#<rT@j;K><
      zng@BzRvSTD?>0lf<T^D`@-5{|GgRgNY9~x&+2*nDc$W;5gc(<GDac9c`@lb~Gpw}n
      z<Bc^H=lHIOKKa3k=|v(q;<ktvuaY&g43VYIk5x`@{-O^#2Zpr*a>z3jNNP3z0vXsS
      zKt~@HIPgycTSzIxjqVS0Q6|@BNs*>2gA_C=q`y^@ndyFwaQZFi?5DS7x-+_G7JlOD
      zcX~)+kj^~afe$3IFhoy<n1o@BP$rF%Tqk5yr6nJPj1xyjCKR_lGKr}+WSWp$m`NbB
      zxSc@mbRu-##XWM>%B<{f(3Pf(om<Z;t6!DvnK&5RR!?)dui^{_O+`*;zBP*n3h$BZ
      zSKAC&YX%D>NVPe9C@T>D2#Y=OA|5AtT*8wCvW%w*<XIQ8g69e3MJGb%OT20{RYY^a
      gKd}0(voSW+y<8H%R<@Gj^)CtWTn{nBrebaV2Rh~}4FCWD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/DatagramSocketImplFactory.class b/libjava/classpath/lib/java/net/DatagramSocketImplFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bbdd18598c329d0d73d922a67a6939fafc6f67b1
      GIT binary patch
      literal 209
      zcwRg8Z`VEs1_nb0PId++Mh2y<#Ii*FywnnXm&B69^rFPv;QZw5)Dq9!f*iNR<dXcN
      zN_GYoMg{?}x}3zkbbbG%tkmQZMh1!GqSVBaR7`!04DuS9K6nhaW@O+B&Mz%WPIb%7
      lNo8b^!)do3$P_k421W*E1`uEbI)#;i4a8z#2a-$-8~|g0JO}^)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/FileNameMap.class b/libjava/classpath/lib/java/net/FileNameMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae390177a24e5bdc055b54d287bc1396ae6dcec2
      GIT binary patch
      literal 181
      zcwRg8Z`VEs1_nb0PId++Mh20r#Ii*FywnnXx6GVWzr@^B-^2oT1{OvJ0kBL?VqUtw
      ze^ORzatR}YV0vnabADb)YF<f5WkIT2ei0*snuZTTVQ@)NW?s6rCZ-T016Oc<X;E@2
      l$Qq#GNVe&L6tgihFfuSRfB+-Va#jX55Q~8wNHQ^S002*XFYEvS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/HttpURLConnection.class b/libjava/classpath/lib/java/net/HttpURLConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6450b95a8521a27b8df4acff5a65c645528022ef
      GIT binary patch
      literal 5717
      zcwUWId3;pW75?sHl1YXKB*RV!hPow_Ku}Q&0ooyXNd{*!<1E2YG!Byo8JNt(nHPjM
      z-R){!>xw8?ZRw&dE+i-}U9Edpt*x!KRlB&f)+%Zj?RVdMGkGDwU-@I+{mwo6IrrQf
      z9)9QU`v9CI7P+AaEZCado@~zQMsufO3?`z%)?7BLr;Kzi>xN5UPHBJKp1`!ucs$bE
      z8t#e*x)Pdz2#`jGf|1M`-O0?5K80rb1l%TL_zVdj6i_X>sOFDrZIbp-QJ259Rg2if
      zhiTa)c7@};{zSYp91X<%@j$mGcOMa$VegtAXkBqhepJ9?lA~HoGbxW1?M3|2c)%Z&
      zw8sUiOj;-rjQ6&7h6Alqsc0%H4TZb4w%&*q4N3Bn@#MG`ib(QOf$1hWrfI$5c&8SX
      z)MkO|lG~whTcAB)#v_&$*%L9XHxdn>)g!4V6<t~DZ==&^CbXDzTU=UHljyQz-(ab^
      zOklPhPfv(Zn?ix8wRw5bMteBAHqh3lbxG=%i&W`SdpOZ$@?KGlN?HzSv|*C36qq@d
      zcC#M-wLvpIR~02p@6DP>^3_F&)?h$76c2>7aKen@8b_0~2Lr7p@mhgOlh_gNGWG5f
      zm}L@zT31KBb6iB%33zRr8kO|6`vXC1XLm6Xv>Ax^^v1*C-k?9)VXC~om_F*VcEVj9
      za^r@gRH7@Eh(yBCxU6VT#FW}ol!|H5ZY|oYMWbP}sIRlF+VsJ^o=O^eUoqYQ+b-JW
      z4_bW1AY|SGp-51Z)v;WC!&&4GcKv$4S^UFAI*Z)Rz>0}}v#87Fb*A*KVn5TtSRiZ`
      z_-z(ub1sv~ogdZv()7|O@HB2<^0y~5>Av0p-RRHtk>(AWXE~G1ZfTAg`E+(mO9i?G
      z>W4eD_;4f~iw}2d{<h(8Bu>?_;YcDr+@=M!xHcS*`dhVOfpSY3y~yi@K^}I!HP@%p
      zfg%j)g+g)*DRa~2BuMG)N4hp+OU{Ve?3@#%RIEy6(%H1JMqo;P13hv{t(6csSH+oN
      za%Tk7S-op$V3VGYCpTqu8B8vf%ycL7X^CxO`6^pYb$!q|w^|yyJ(z;cDpKgHKtJs;
      zWNBcliuEv885L)tT&}VzHb|o`qd!gW76y+#B3r0wD4*dG8*h&t)0Zx!EIxvv0<#^-
      z=XUHgLu7Hh1>KmC8dv=W>FG{<#ElQLJskDgSupeg6~p)_Ww+=?OivBv)5gwFGRu7D
      z1#0UXob?^Q-QvN=@kuv6Au#`_Oe#KwvzhBuzn<C_qkGAek;_Yu=_^}`4%WPf3Cphu
      zF)bi5aI{`nP<W5ca;vME2XaOA^M>?-5wiPlcKyU=mYw6#cBJ${S(<_y7dx*vX5YxA
      za+wl?EcK--E|aCMv`eM4J2)__{h7R;?AuvaB71NVu9WR_p$AvvS~sp4Umnu~6}!NZ
      zHPy%^1_$+gYqG$eoHf2KmaA@XM$J8vymly^>C^KS;3yKq9_+@I^5-imZo<vXN0M5z
      z41URE!A~IB+FGQFuc_E4U8^v1)~1Z&8!EnuZ}EaoXZ!RW;mt?MYM=tQvb_RXbDY%4
      z@l%(#s!?Z+gOznm#+C^+nqiWhV}h+8aN~B4P}590*Bl6stH+%xK7^=;s}U8WW;Z&N
      zSkuDmpxEO^ir%fF2XQHSkBWPxsN1fdq}{LLyZ9c@DTO;(T0P&M)-z@!1tzIa1%4n<
      zCPQtOnfj562k>Kd7dtg?6xOGW{-Y#ogJge5CiY=@oC6I3NqAHe_!cRv57?BSsQ9V$
      zr?N1#sZgrO&n5L2eELYfiP}AQ0>5(ONjB)%ULb4e=HY!x*0N$SnJ?(1x$zr;W5(F5
      z;n|+c4<wCJ%4uH?ZaWnfo74G%5gSY~by<Cfy-Kliw9o5=sf+0Ofpno@iY_cRcEKJ5
      z&11VQGUtC(@f@CK-%^l6kv&qBD2_=F{)E4{@n_yAPP&S}%4T)TTIC9c<a$ZP%h+$x
      zBDuUFv-LL>f5)q&ZI`c2*}o?^OA_9+mBpXrV6eKc@qn$A2jg{lw%(AzOp@^833B7j
      z;@p%T#&W4`&Qw(3UJnlAUvfPBTj0b=`eO27<?3g2{0uT6t2MQJK9?tlo*dwOD5guE
      zlkDJ-VQt9V3ZddV*zXooIFpM!k)cBWretcHgIBVasiGY3TKb(^LJ<{oSyT$ltDn>m
      z?;<iyRcVZ=cgc|`3DZ?ELsYS@Ls?0(`do&SG7q_HaFe_?YlH9M7cUEuwvMvnG`8`5
      zC7XX@w$?SQ;{`6}sbaR6!#T1|=e1O3)}5Nx@nptwLwVjIY55G8GvS_IDmA(mvnl0Y
      z08N;OGL#d!i4;^|J}Mp9Lp;@iRpMz5Je_!k16L7OJFu5{rUTC+p6$SMi03-+JmUEd
      zynv|2ffo|jI`AUmV;s1Sc(DV&kN8*zK92Z!2R?!LL<g=XZg5~9aiaq_5ifDzrNqq+
      zyo~rH2R@nj6bD{Te5wPVMtr&hzn^%81Fs}*ao|<Ns~va^@dq6EgT#IZUQ66ctk}2>
      z8sxwEXm@b65qCInCvm`m*AbuLz(L}W19uUJ9XP_i;bWES1&ASDq9@>zZ%nRT@`Y)B
      zdu+VH<X7aS$8QxoaU;&A<T*qQ{K|i2t~=0so5_~suZLfV#S~tPO(s<;;=9%s+enI}
      z&GR*mLic&M96;Kq9Kbf;?dUy#fiX>UcnBauC=*LDRh)t<u^Mwlm#KA*r2{z(noi8a
      zdB{V!1PXLe{>OlUA<`?c9p~GY6Z}f4>Vw!3Y<vLj#u0pM!8qqFlUpgj4HY5-Rb**4
      z=P+4~Pn)@L@x)z#&roG0K1)-UiR0{?xERYVC9Sds5Ialh5cph4qM2VQQ|7x914oKn
      zV2Y>~gB`2D=SvZ-v2$7Os~ML$s|FV{bC)<=FE3@Q9A97%((o5?A@{yy1|;}~lv;13
      zEy<stOP5@WX@_u8kN5IXTyZ}Wc2&@uIE39j-Wx`-m-t5S4g49wS4Z%5We=wM8d=YM
      zsF6Y@-z_#DS)__FCl|^76T9IS*P~kO!5py{%f*dYC2m4o-0W~XQF1(CcB*vz+qiC$
      z45s%Vk-=Lh%^<HPN7T2OYS!9ns;K6UU2ywGae&KhV>OvBhqJhc4&Tduyw9Pzs-*cK
      z-TFT@-?je;&5u&^W7PckB$^fZ+B{OT@N&(Dg&`{?HILws&vgKINXM1EIL9|-1oz2a
      zR~x<GAHffIVY+qJ!~xuOTVqw-2p(L`&qCL^BY0$uud!Ax9_MBwNwp*R*-DphzUv@<
      zNuhn1zTP2CFE&C)KYndTv5prD#1o9-Nk;J$56;t=C!WC~@hlp}b66&x$Eo54oF-nx
      zYVi^}#LN8K<`rxdukugc*N_%(AS(`|Al^1Ju-uBx&cGrT|7o-Mt2v;5YmUzjj{e_q
      zHHDtc#WUQMx%oYwolt{aT)X&P$rSw|$bNhw#Ge<})G|xuRgpEaRhtgt6*jB)AM93!
      z{!eyn=nxL~G<n||#oJ@mG8<PZLzz+zkK)D*r2?~*O3YQJqFI?{`tGx=*}j+YdNJn{
      zPv$cGhkh!&pd0aD(|3V)@UGp=Zxc(&uvO7AvEMf$uxcO5*DI@P=qxEURec%vUQCtW
      zianBYNGLtzbBzjjsA)ua%&<srsvQy2n)a_3`>D2)ZC1^6EaBY~<X7YEA-`5o?c9S>
      z1GlmemC9mNE62jC9M8ab`zj5nQ5w;xG+~Ld3@enAu|_!st;%v}%4t}qoQ|Nf0wJZv
      zQMj-jJeylsua8-1u~#cFQ+UNp$h&g7m}R9wzMbqeXm+{WzQ(#yG51!CJJre=rkOhP
      avE(id2e+7S_J>?85H*w#Vxg22wf_UBDbU{l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/Inet4Address.class b/libjava/classpath/lib/java/net/Inet4Address.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3a652bc637a8e6704312ca26772afc3e3b5c666
      GIT binary patch
      literal 2735
      zcwUWGU2GIp6#i~!w!7VK%Wmlwq%EMRY<K$uEkA01v@I<xE{oFATB?%S?NA1mow`4Y
      zFK8l(BpM%lB4|Q2CiS5PFr*}sH2C0)iO<HLh<}L>B#OcKX#MW&FuQG6(<VE2&bjA&
      z=R4<~bEjYa^VuSRojC4Bg+TC>_OjNI)^i<EK6dp_O=a|K)(usle%Y42BjC^K8AD5r
      z>6xryrjJJV35bINHG^h4o72*{F)fwXU2X4;U%C9to$mzP{lmwj@u5+gMHNP7P~R&V
      zBc~tHXHr^HXP{6^%!-xL($gJ>6Q}fKu3Nx6bT+Ba<QRl}0s_sJjbYjrBe{&OopEdg
      z)IoDfuLALW2%>=sjhqE4CI_T;qYn>YlYr->na#zuGYni;5|(gAdb-;S1x-FQW3xbI
      zkC8TVeRK^?4y-nfwu}j^iy3J>o<Eb&GoxA}Wr3PWmPcceDBDUkchX?(HpI%7o5^k{
      z8$w1<C11iC*+cnM&PZz6;#nx6mSX||BO5c#nS_=+?d(w3pMKS%V(Y4yS=fgNTA5jY
      zeByX?SfC+R?vPmpfp#A{u!FYxOL;9t$Y5yoDar6;#v+_9jb$lEc*e_>Ugj{kKV>Gg
      z6dOhgaUPjvW6KVZWU$wVNARe<<Djv9q<lCtZHwONlI~PPEt3OY^rFv=1|Ob8t$-_;
      zGSfVSS{fcOOUk#r@$8zrG03{CR1f4&oX|5~3}8rh$FPjV29SyaK19I@sMKa=^z@WK
      zBX?He767`XLrgjxl6HgtYj@a(XVA}%&6$Ng_Hs7CcKk0VHbhG2BnU&cxt2XCC&KEI
      zsO%#uWE0d=V<t{5Z+~a%Tyki3+G{7PJ7VTDNqyLmZ5$}=+IH#9i-d4;tg#U;R8n$V
      zk_VgMMYSXQ;ODajwS2ClM&*tlb$silpWqs}31uRD9qakq;JSgvtCr&yJ}WJQA#CN-
      zS1`tdcnI>Z8QZ9lKnDpbsd&PXR_TAu@%M5Cj*!ZTg|W3@=U{l`g<;`(@Gyy2@SUw^
      z<MvrHP%p_TT>;!Z7r>9RaH;dk{0ffGmvF4N@ddU!SiLsZ`ukW*=lrjghngyZTJJ!G
      z9H>qk$`k$+EemK{>7Op~_c;DL9sgFYa<5`l<g+E76^>`8<9X4JJXVr~*Gi(O2w;A;
      zP%+i2nBTw3;MOdH_YI`{@ya@EwtD9c_RD!5_?y^)3uN&Y5Atn{;++zfV-Cx%HRN}(
      zY<|1e;Q3)$&)tq^-mc8v@B;Q+f=gMJFneZ8G2u(7lY+|@mZ!dn0fBiI;1g8g3O`*}
      z8RQ!F@V!W3uS4OnHITnqmi*&u@cg2z=Mx;=g6D4Avsxy!fSz0ET{*m8l|WQG5Kp1s
      zhM40>s$9EoVqn4_x`BN$3AWg)^hM-LvsI=A>>od`h~}nQRL-F$;%{HT)8lhXw<8OP
      z7ej_Q@xa%7e#1-VTL$=nA#ZcGe?kj>W~RTgQNCw2f3s+X3!!aVUJl8#Y%+O4MR;RW
      z6Sa<hqkL1SJ<4_~kbc)D-Kq2x$Tqn@LRFJ{Y7VN>H;0Bszvpa`{p&pz_YaotG_Gv&
      zKPcVhnEuI|=pL`qzc}dk*zkXs@awesRZu@}U9BGO6!-;s58mg;&$i9)24xr5-pJ=r
      zoOV1Exdr7qo{P6Gwk=+k+SbKA>Ky#7LA9%mKTCIBT?(r2Fa53-skSqKJV3V)s1gdl
      ztt$V|szkGJV~eQbx0<CB)#&1Tx2UnG?<x>*uG(Hq;21$_Npq5yZUukad2Ke3>NX}W
      NlaSwr7p$l+{tLfx=d}O;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/Inet6Address.class b/libjava/classpath/lib/java/net/Inet6Address.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d43e8a77e4202cc8820bc29ea45f8a747924a154
      GIT binary patch
      literal 5032
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/InetAddress.class b/libjava/classpath/lib/java/net/InetAddress.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a419625e7605160241261b11d6f24ce54d4f476
      GIT binary patch
      literal 6300
      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
      T3_12V^0NtywDpe+*&qK8nB*-T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/InetSocketAddress.class b/libjava/classpath/lib/java/net/InetSocketAddress.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68caa5d5258014fac71970b85abd235ab4ffefe6
      GIT binary patch
      literal 2684
      zcwU88O>k3H7(F*hn>2lewm^$CNI)&g3lNJUKSfGgC<IISX&Xod;Wc?pQ_`1`yfC_R
      zbad2l;iwB4H!hrE#_2*FX&I`5E@Z|TXWZ$ycI{d>;<@*|Nz)|gqIvh-``z=M?|kQb
      z)1Usi_Z@&fSblf}w#*qfjJRdm@dSUy3+Zd7J($T9%~Ht^pFmgTe9f6ad&w;3jC|58
      zmU0DaGI2~moDygoE?6bou<WFfFPlvx*FQE2e}8dYATV1f*_JVH3UrPt(7a(~<KuQQ
      zXJz{Zd<K!3Z*&bIH=R6RC=_kxNC-3^&RIG82+2npM<=35f#C61)8>Lra;#*dz>d|V
      ziG1G78u`IuwmffIb|sKmh6@=p2rs%dv}3b?Hxf;Hfk%)0=n?3yB|cQn<uhh6fUN=@
      zLq;YnS%$6h{Ipp-6b@nwwn?C{z@|uj)zPGk*rDMmJk7F<g$2{f2!tYuXkD<IsbAjc
      z)vyy0YHAmpLxGKv`YVjxfNd>^VYeT<7}H2B4SUeW<bz|WD~XX72t2DnLz`Uf)vylh
      z1=f$|EOSg1HDOHWRSOGgHs7EH`0j4{?AaWh5n9`nHNKIJWOb}t;Gk5dgDr2Mj2m)T
      zhP+7K8-+|olK~8{tg&)FAC~qCOMiuLNasoVgBpTp4YK}W4aYzewq#9v=(REBLcLK#
      z8vDtQ69OAnqpJ+#XFwr;gLq<!Ly<0;hHXw-?k=0z*RZ<(mZ;ghUN-Wj8q=Jao-@;S
      ze{?E{GdSnRS>~&S)-a0Gvf^{JZee<E?XbBB0-ln=0m)X4^XAB7Y8Pl_+)1h{Ws}fT
      z8ZJur`MG~q4JC&pAt&4@%{ucF!xaseaY;bSm8#WX<di(_l{I8En3y4u>ev~sdK=YS
      zuU`PO)ccSeg*iDq*93MyzMBn(h{cZ=%Eh!fl9R^ms%yd?c@x`dA`U-%Ow@#CzWMp)
      zL4bdBmRfUE)RTk4r^XnXn(v+J9&Lk7Tz$m*66v76jIPk9XbE*b@i}@{upzaAEve4X
      zGM)@AVfzxESw{4J>>>PLK_As)cM#V@chGlRC3%j&JD46ABltNcJ&#^YK*uD<_yW%_
      z;s8>3o)KXuA@<<~K&>QIp;nTtM^W8hM|FVrJbe0f(X)&LtBHeZJ3}2zm7vQBt0eF%
      zSfOAK@mGSKBCw<p&|@LrGWu)Lio8{-q8q571(d=<tsJ@@`7Lm9f1#c}J}0D}RI5!Y
      z*?B~2_y6iDL8Y`ubwPc%-o$!6b{9ij--7SLZRR*Zd!EOL%XKfM172swH^}Bq3icL4
      zc$>W6p_uRD2;Rdm-si0kc<V!q;}cbr?r^NsG*PK(!mUZJP9nkDTd37bZgm5!PM)={
      zK&12@FNOQEB3!cqxK-7HR@aPj<+Pwfeg<5y2aJ)@&cwclxQVN=2N0+AuMvL;Z5JOu
      zqRG4Hyzktl9$~&6<?`qf#%`jWt3K}ZeTF9Aq7y3PmT<oQ(7TAWK3!si?^3>d9HAA8
      z_6<e(mO|a9k$$LZ{7glp8Ok?7?(!=$$vqFNNz&U+HF0Gyph?oG73F6Is5t>HV2Auz
      zxt9~l^gy>P@FCXex~d~3oxq({xOIxtujKw4oBewgY<C6rWn5~&sc%&PhtnSoIbE(?
      z-tTg1(;X$r=as9qAb(bYv{gW^!f-+MxeQvJKB`vKK>Sq&(dt47`EP^^kz&d6EG{R;
      nfeA`cZm9=ZP2WYDbJUq#LQZmZ=BcIy!dsOlUP+TzQS<)-)EgD|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/JarURLConnection.class b/libjava/classpath/lib/java/net/JarURLConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98b16c3d034beafa98e5751812d32baf1697aba3
      GIT binary patch
      literal 2636
      zcwU88Yf~Fl7=BI&EQBqElv^**VAY08iCQnUwAB`=h6bq6qO>Y(k_{{kyJ52_;I&dO
      z-~0hpXZo#Q>nLGHW^~4JbjFX4f57nv_zxVPv$>K>JDJJZJ@5NI&+}f+N&fin$DaT^
      zi!T*;1P-rix3!R|JE2L<zCIfnw@g!yIfi8_@CtMn&HHQuzE#b>Y$SDV3$#Vb-Npnu
      zOV;wB-bigYMzrXrV{c7sYr23x=a$sW<<OjC8|E?{n$8)f;am{t2<~SaoTr+J&6u8&
      zP-z7R1^SB~Q(7`%*=u^7u0<yS@3<A$eQ1DRMJrSvI?=75OF%8hR?&lAf!1Z+xoTUE
      z6|<7eEjU=MuNg-K8kn^Y$I!2!PoTZhNyTvln25ff(UNI_u3#C?OmvmC7#qBy;0b}A
      z%GgU8BN^9;K7c2s;-|<K9GsW$CshP7NL($I(#^QQsam*IlJkgEJ}hwPY+%}Q0@NQ!
      z<r5v1*rz1+Xa!_G<@%5^@)?yQ#@aPIR?g@{8%|5<&sSt#fSZ?1cu~bmGE8B~<p4F~
      zWdYAXNS1X>#W|d(%`oHo=1igvPPiGbaE4??fu(`a$$()7(kVSQDlsmqxP)<zTRIa>
      zy8)c>U^rZ(rBcr676@Ec(TFA){f3G#CRysFZZ113ZV$rJ5RtG`Qcx`<2{NOi1wMg;
      z5yRA{Giy=ZzNST!?zCGmEjh2*hJ4R&dYu)6BXYDf>XpZnN1`EPa~{1iIWAF6CL_WE
      z2Uxtxvg6ranAp+*Rp~NOI&rPJ2zN)|NWnkj7|9TaB2=)ADR__5;u;Mr6rL#_DIarO
      zQlTNr(^%r?1yc)5npogC5(?<kRntMmO)#U8`m<N9kJGVQVD72I%O+6ZxNbW}!iZ^(
      z&O)CE4&KbUr}bFIHk_?cj1HkPuQ8e8niTbp4;I!Hqzd<Al@1lFxFyi2=L*_eUv3Ab
      zOlgLB(P3uMj4S3?Rmn<LSH*^kO>E`bHl>+HLQgxj+E%bJ=mUJD;KM4x1rHStGCZwo
      zMYKxIMXcO>l@!ThY^%6~jBMxzCo$oc-#2Gv?3kYGMOWqcj!Jaz0F!CpuMzKIdB*tU
      zg@R_TetBHDws40RG(0%qTKQvxc0T<}Z!g!oL&Ll17|!C5|8N#Z@1cJWZ3}xCSlGo0
      zZa?iG%3>so&@P_)neQ)5jrh-GarQ!==YF;Cg_7^k9y%9B8v3$$br-MgU}A`t*ZUfm
      z?n4m|;2Ys%7FTvK{T*d^aFyRfu4IF$+(HME7=g)K(83v{a31S;n^iWjfo-<$P1oN|
      z0kfC`+^1_yOE6{@*NNp}<Q2^0Efz>HdV$|E`4CsZwQ=YNOgt>oH@TbJF0`6+$U_U<
      zKyQuU>B``*Y6f%U%Np>m3$w@_57*-o=65uThb;7BWcW9<4a==8Vh{KaqD0_#lfB3O
      ze$B3a!#;lNl6B``@?>o++zN{%_~(O{3F%6-LY}HBA(MQP2(r;h$?sz;&Hday*W-Jp
      zv{T0E&vP~s(MH;>3y;Ag8EzLC-mk^*3$cE!!|*XaaT)GBhM}0lr?nXVB-US#$$@vn
      cBN-M840mfW{7tNX>M(pJJHyZCZp;_|1J<BS9{>OV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/MalformedURLException.class b/libjava/classpath/lib/java/net/MalformedURLException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6cee07b4584d349b33b66525c68a48cac5903a16
      GIT binary patch
      literal 518
      zcwT*w!A`<J5QhJOLQMrh5L6CEZ-9x7@rdF9HDanJBHR~PaZPDWTZm8K%_s0FJdt?t
      z0lfJFzKO<ZAs*Ct*qxo-Z~lK~Uq7E;0BobABSu)e5o2LGGB8htedT&X*>7K1hj%@B
      z8z|S&p%L;Cqg=Cj{{2A6`qERv?nuw)yxlw?&<P>ka2-DoPS6qdNG3kUkCTV@w|hcz
      zS2-%E6XNAchoCjwzBCZWLJ9`v2^mW{@@zEhO7Bv1ZAr*kZjTKF+i*U+)Pif}6V|Q&
      z8?O-x<tbweXJEDhPdS5Hr4w2fLd!fsA4=aBgUIR^N-$dP$m_`?75bL`wAl*FumPTm
      zKb0vYkmRUy7Q-Ab3a8^e#Wy<~iDRNVLHa2|GQ1lcfjwy0N0v{iDTGDjB2n&jCQxTG
      gWRum+36_2;9CJ-GQYcQTnL>CfVmUHjiE38A09?Io!vFvP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/MimeTypeMapper.class b/libjava/classpath/lib/java/net/MimeTypeMapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb7f5b5a7a583edb6266989dcdc8f282507ea19c
      GIT binary patch
      literal 11230
      zcwUW}2Y6J~w#V1rGs&Dx1_(ruNXrGmP?9JhBGoH`pb0Gq21J}pCdnbwm^qUSSW)b~
      zUcm-7>>_Fq5UzR^3-;dI)%R|1-tK+!{%g(IlaK-5<NM6)^V@5ewf5R;t#f?khaJ0#
      z=qUZIkF=sgR|eaH)v>TsU28|fi&iJXwZTLpob-`bQHgX$g0bf6c?~PWA;(9BiVn#Q
      znPo@9bAwSHq9_o>1S?Wb(vCH!Ahm2+P3Q1B!IKsFMascCkm;M1NIQ0<dUi0?;shHa
      zVF+1MLJ>P=JJS?-Dn>3=<ed?34Ev~;qS6D*>Z9KK?KO)nDpjO|wncpv^@CCoI}~*6
      zc&s`RPdTYj(oQ%Q9f~D_c9TVA&>)y@wByy8N&t`nSQo93MT4>}upum-0{RJ5al#p=
      zIuQxlF^h)rT4{@hD=N-T(-2JA5IllMv|$$`74>Sf8^gRnG$k#IMk^|42qkPZE1_K1
      zU1loXj%v)%z-t_(sDD?9c*qGmm9Tg?7`12|i$xO_9j&Oyjs}~<)$(`@^EG2FIyQfS
      zHFg3Wu(&7G2<@ig*!GveDNE0ESRmArgu#BAC({~g33AU2=n{$qQz?sPvbb#iL`8k}
      z7tiuJye1#O$%+o^Di95ZDns#TA{cTKNeI@mV5-HUd5U^>n~CuP>BpLN@EbW1c{&BS
      zF_g4uNw>q#R5sd4xN;nQ^(<tgv5Xrl+bmkHsAtx8ZL!8GAROrmD3fgkSu7H<D8!8@
      zmI-qsj$>}_re`$O9#1w}WU~Mte{0_M1xL9*gDu3-2q!S*DsDI#i*P}Dh(ejlRG1qU
      zrMWK?wx}KM7G7h~>TWI(j5Q|1?Ui;6BP==-;?3;bXXji(9?ykF%}x-juFX51EWZHr
      zH)H+_^ZVg57F~>)Ti7u!%~MP8<=nptN?h4(gM7Sj=9X|~{E-%2&0-Fm_gZXFbj1_w
      zdp$OoZQTe7I|Pk?hFFCokH?zA$#5(b=JSuoBTg{VYSDU@3S-?{a*E31ZJ5Vy4#TQ<
      zaOgo0iBxBwH}QyOH16U?6w%@yZlvIGo6%UAz>@c4Om;FnLgGQpmTf&OB4|7cJFUbl
      zk9AWsQ_11T1ewPn-pXcu5;JC_L)31>>2Ko>8)|Ovb_;N;>_{YyyB!oy-N}LpG<M}J
      z1RPF<V@?>oKNm5q_$)V4IH+GB%65}aVL%YB`2x$dqw!*1U}()c@5>^A>GtAkM}jyY
      zi(bnUc01mHaHJ(@(OcYDgRA)t8qsmMH}4_znb;bI0n<sS`~mj{5!OD!$?iX+lZ-bt
      zRZ8b4FmM!S@mbzAc7@RQ1<oZJ=3wwu?v%67zvMM+X!0$Kh{^w35Paj;-4x*qFCD*S
      zi8zA6?{g7*RoV`<IyNu%N0<V=HkyBi@0*C8YPKs~{2h<yxcaxw(-yD!hjfgy=wH%+
      z==YGw&XAS(AKs?4_K8TdrIeuNprt%)ij<`a4rU7U`FI#KS4G^&q%BpP+oUMyT3_|R
      zWU-K?kWxMIW~|ej&!}s1VTcUsNi;+)g%o;d_9|p56Y-=ZYTRQd8cbM<b7-Qm!BWVf
      zJwq+wDCUT;AhQ9|*<`6f-4+nY`83gt1&~ks=Pl5j46c?HhKX3rQp59n1?#0!mD0(n
      zHi5*iM&_b`JdPHQMJf-ZMKG3KgVSsx0jZ-7B$co;A~jB=97`d~4$5;MY$V<uPA1}Z
      z3?j(98WCL~@#<B0MxND49OP7vneKJKRg6g6QpmBMBr>^@6zldUVqHaMhzO=cg6(7W
      z7>cGV0XYDu6Iq}cW=DQ4HUa`p=EX5N@~M~I#ZvR~ZnBf@;FOwVOVs5Bcfp)nlMV!z
      zn3O9|^@1~&T4oYg(hjvq;!?<~o)n++3KQt@1UE!R^=4a0shS-Z8MS2pHJLWE9Lfw!
      z*?Ac$%UfB(j=)HqQd2e-jpxO_l#_01;x10Isn$kIrShh0jU(=;v<P6s?b5)>ua*YJ
      za#l@6ZA+cqZL5G#gp+HwwUz~AScJ1FGK;#9K>|G&=Y{*Gw39|0M>WanUdn<=Tu<cD
      zvi$|ygLbMi6;CIT6xEe1=RgjLba;1fOr>L0nP{X6moZf3grf-#)Rwwd#$Z?1|Hzoe
      zWU#%<m>XpbR7MuAIM^6F%9$wDW!QQd)@~`J<s%L@tUYPNb-Rp0()Oj=#!H>3?#Mqw
      z(}fgX$Pa9%yYi}1)5B>!)eiUE-0i}$<HSR)?ZLKiWmDGd_p@vUgOKS5{+Kx}^{|M-
      zijV$?C|l7|kBKPa(BnU1aMudWk$6K84)Uaofx%HB4Ea9{ZmI1e4QJi?Bb$i^9jLfV
      zM6oNB3WI-qGnPUXq2TbSAv|0asu%L&f#4UpKZISsoZruQFZZKFP_O0pGe+g$MFZNt
      zm3P|AV@)`16cfJO!+Sg<>Qlu<goC85KFZZ<4!@|WPk2sgeZ~XhNfeDx<%_)X2}vy1
      zi}FD`P>9P0C)H*tlnrGPt&jvzgeQV1$HI-3ZNW$yMWo_d!r}0STA~2O8XM!cc~RBv
      zKsDiM3&CUlnCGjZM!fE}S_%b)w=K!h@Vi_glYK@h;en@G>L0oHOAZA9s3pAZ{GzA6
      z&*cO@%l2TRD$7w+6tp*Fc$$6P!bztfcWcF~a08`AiRhgZU|PUSMdAJ0*UgMw#L!!m
      zl}lL~#YeyH^SDK^?!nvQM@#oQfG_SR4Vm7&H&iZ~Ymy9V5{;Uqmq~FMw-(V{i)30b
      zeOY%`;`fQsq9#g`0(rFbAQtDH4mp5ENax{9C=9Wmuo%k^GZ{~whBHP+)JJsPid!n^
      zk=&bt7}p;e6xy0!@pEGBcC0bp-k8P_X|6potJhfisQoJ_VO(<XOP4;nTLlGJL`okM
      zARk%itFdF@x#?&_IJt;x7Pv!A9P=y=CT)IpVc`_{wBjd^o)XZLDB#o6u&)DriSg^H
      z`Z$Pa6eQk?IU^VIYBK^<M1Jm?8PKyd7aWPSqiAA9P4}-wlk>^Qd}L|VDubG1=_>hn
      zkU*HK;*UgC@{y>j$>xomtZRL`25thm>YQA4-D;FQ(fP@EBAj&Wa4MkZYLqp_&0)ud
      z$l4<+@;@1k%twAGw;-SwYE(S|tQwh>j7Rwkm!iWfx_qdr4JIZZV8X>deTp$7Zs(kN
      zGvPW3J|~VuEj9{`vYLZ@Y(rtlbqyD7-X=SHatHc$mYXu=)2G8>&0?JgzYuSB;iONW
      zfhkNc>yYJsy+Swefuh*zdmyVU_Uq+3%o0t|#g)Jm+2NvO3-stTMt0z$cxyOjui*uj
      z>y-iBsw223{Fcc(L%6FrkiB)YZs0%hfKKp$q8KigOl9dLtTD__CE5w-v~Gj$97LVe
      z65DAx$ljM0>x`c1(>U=S`<)hV>db&XOQT*Z;7xHQS21#_Poq>T?-ZRIuS<toW=6tM
      zB!e!eSKwqXPOolGfS#sUFv?ddDfU58m$O*+Bbm%~uQ8LN0W}A;Av*)+><u5D5yxwN
      z%wb2F6;E3FGIUk3Rjvr=EA>@yble1IPOLGUnb&j>v&>=nYXbUOeH}I$3CEh*g3w<&
      zZV2cb^-b7YD&3I%bj#DsIpA?k)i($9dc6UovA1sb>frYqp1?kxwN!!4o8=n;o%qc*
      zXv4z&Dh}{fmz@nIUhhsrElP&Na-JLY6ieTY6R8e6q3X_H!9Di|^k#h@RBa8fuH$X?
      zHqMtdcG#I*tRK)1`SgSPISM)g`eFSDw#&s2e|F)Gbsam$<(OcL-s;njnM<}`Z$Lk;
      zpMYxY&D~w!H3{$Y<|4gKZ};h^_WyJ(0WF|+X#V08=fK)G=Tq}x7pG1>_fGcdUFPF`
      z7o#1Ywj*#hOQX6gESG<N{j_ed^m8a}%F8YNJbuRr+!N3*>X#tLAt=_UsPg|6C*36w
      zwqL;x&nzEm=~toc&@tS49cXCz**yK50sWSQ0Vkdv=-2P)_k8-@E<v)3LIM3gM<ri^
      zQ6$C|{xG0F;ydeW38v<XF}=Yg|E~p4l>dK2X_u36J%eAcZ8rLW4vnv?olK!yEyWyg
      z4-l#35MAozg(@5EOZN}XRXi7!6UN}b0@5^)^DPlt$b|SUz*8{=(A$Hk=U(*UUtmaY
      z+O&&$)_V$eQAxe0PoKJaZ=XZz@Ye<X81x4yaKT{)6uMxb0X`QDW>5}bxnL-R!vRXn
      zm=R1Wn3zGMn2cd!MpZF6l1Y(E#xfbt#P5;`OeQiZcF80rQ<wx?GL6Y`OnSKF_}t7r
      zU2+1GSxkDlWHytNn3TArhRIwey<IY&$wDT5T(XGCVkV_7IW<QPami99r!nd4lGAgf
      zpG(fj?eI{SG~`HsmozeIVp8Uk7A7m19OjZpZuJ2!iJ1c~8R(J(lO&TtE^%^e4R%Qz
      zlMIs~E?L9mEGFeHIfu!4On%~$^O>w;GSnp(F}Z}vFqd4$<O(K-yW}b+*Dx9GlIwD0
      zgiCH<aubsyTyis$4NNLrax0VDnT&MF#vB>tk~?#nj&{l2IWop2_cFPUNu^63$dM|S
      zJd`8VE_sB>7A8l!WGj;=m>lJj4kk}A8S9cAOrB;k&Lz8ZWV}nBVe%Z4qh0bmlRZo(
      zxa6fAImRWgFnN{9M3=mt)AU%EyqP1DT=F)PcbQCf$@@$`WHQAiA2a!s$yAqo&g4rb
      z(_Hd(PWS09`6fq>bIE@(`4y9&y5u)Ze#hi^m;8arpP0;W$zPcKmB|S%`FoDcbjd%N
      z{F})vm;5J3PISo+IWjv-@CKKgXpTV|s8o5Gon%;HPTP|WvP8_!tj4eai%DRrHK?bE
      zl`xxYSRY|>LFXCPPZ)>TlKF-mCTt+H1%?e4#*w#Vp<zRXN${;RY=kfgzl#hTB}@YF
      zDTY-E6NgxA*jQl_gqIj5QCPNoszDQTM^|sqBpE3dSZdfbVG^8|8Fsv|6PTT5*eqeQ
      znJqW$q|ULY8&)Gsg7gZ*<_nWBeTHF+gh^lw8g{C%rOX-(J5AW>%tD5p(a9POYY^7R
      zENobluoh-bhONx`O0z)`5sNWvF)SfWVzO<R)5%sE*4D{d4a;=0h+%7lNwkg{c1|aY
      z8Fn6TPkbeAki>9tfrLTpWaLH6RvC7Qu*;Yw4ZA|vRm@U`T_fx|W{zPu2$N`@Htc3$
      z63^QVyH%LP?{>pB3cHh8#<07E-OFsXVfP7pfY}<u9uoElvoj6bB5W(OvkZGeSO>GS
      z4SP!14rb>V_O!6w%+59JnL6W;z3DsypA-1Jz_kYM5%`k8^9_7O;Hv^JFz|JOZwg#z
      z;M-l`g$BOMhqq4HMTWgEf*%UJ*uamwz)KALRN&_VFE#MXE(%>{;MW4b5qP<Q63@$p
      zU18X-MDRBPuQc#?0{<ZJDg*x{@Gk<dHt??k|1R(v1OF-T-vX~S@IL~75O|#nH3#%k
      ztp#3hpjTj_z#9yd0IvN4Z!|C<u&2PA3@qug&z~76L0lgq@MZ%gitGLY*Bf|P7r4Q|
      zfdU5$yv4wBfkOq}YT)4lM+m&lz=|%Cw;L$&U5^oXhk+8{^^pQM8YmH7Bf>wfCp^Y4
      z5PBm1Tt|1KeF9!0W>Oi=qEU1rO{UpYLvv_3okVdunbzXzda9*+XfAD|dGs>Pr%z}B
      z{hk)mKB`l_X^|R6r>LW8u{x2KsCqh8wNkx0o0h7pX_?wYr>Vzjxq5+4S0B&{^=mpq
      zeNRE%gBtV@3hAS$QO}^TK82ceGd1hg)S@pZTi-@2^`q3PpQVU?hobshis^q)+*3pe
      z&j4EGsidT5I;A`d$nk_I?MYLc=VEI2tf!3UL0awEMQc27(3zgE=q%57bhfvE&hZ{f
      z=XyuddEUvi)>}*Gdsol}-c_{DdjVbOy^${RZl;U9+vyVTUb@u#8C~Z6BOG7B(M#di
      zBjCo9;I*}I(ja`&feT&&kGmBPwgvw5Jly9)c+2nT=0c+Ng@@3F!V0>ja0=a8IFD{C
      zY@pi<+vtwM%V=Za?X;<IE8SVRhwdu;nC>q81Ks1(bg!=;ZT5|#`+U>re&0fRz}G|%
      z`c~6JzANcr-zIv*_ar^)dzrTQKBLEcf2OTg0X=T@rzfn@^rSVNI;=X{W;N4O)|s^3
      zx|()achOF38$E69rCrt+wA=cQeqQ9GXNm^UvqjbPT+s~rMbQ#^z9>R36s@H_MK{rl
      zMGw+TMbFU7MeoroMZc!KML*E1{!)6)UqP??r_vk#h4iMsiQe*`NpJhFp?CcE(7XN}
      z^q&6>df)#Iec=BWeOTO+J}MqY9~V!gPl{{l)8YpDthk*%FTR4lDBeV07I)BB#e3=N
      z;xFl!#ebu30)F~7Fo0$R2Gdl1ti0Y5DgHp5eX*t8<P|o5)HXeN)J{E>FY7iv{Yibi
      zXUb+8IO+*~{8l|-z*x^%`SFhJ&?hWer_=yE?%uTT>ry@YDScAS=snbnWk)}y=WizO
      zlE*OrMELkzy(oJls0y#sM1R71zokC(7dn)_qe}cvr0;1O{hOxKe`p5%5AMP~ny0kv
      zwj8hL*qdIgm*DphI$WQs>oN0m>ZO<JWoQ-gw_U7o8v4D^Y>{a7H@v>XRcQH6y}W*>
      zUQs`Kn+|T%jkTL;=1$#QKc++5+jMkpWrvPU@|NNLuIkXK4OAhZpsZjI4Js=zw9lxr
      zf->)R-R_|!oA-UO1f$n%*tdgK972m|kv_*&aT4`}buH?pd{m<RRH}N=U=^StxXQy-
      zDIKZ$(*%WZpbn!2sxPj0Ij*-K*Lb+7J1x6ueV$&+UmMUmUz9ANT77|Dhl3hI6ZD1p
      zBA8`3RjX&w>!k@aKwpej0o1=l&vOs<HpqDKd-Uj1eQAfjeCj}b2lX2`x<g;RkqY}9
      zxn=Y~?-?EX`WiX44*j!dsAO*Ci_%rO#l$fhK}Aq$99e2S^-vS2uR4bMt7EBLO`$Pr
      zDpZ<A<J57o{ZZKk-P7XMEwX)!D)p^6H%()3UblgH@OwM<)9u_;G1_c`b9d^E_1pBF
      zHQ4-J@F?u>p6&X6MYY~(n`!Bo?fOwg*zhFp=rV7Iev+F7TXn}y{d9e)-n~sfGiW^(
      zmFj0VQ(>w8MTdT&RKJYBER5z}ZWc)MHT><+Z*=IlJ<~Al2Z}cAyDJyQVO!qTY^Yy@
      zQ>~>kHJ1jcc{tStG*T_3@oEuH@)SzoH>DO+8hz)eQ@fnzx%y-3g<p%>^(XpMn4=8g
      l_%r=E%rO7~`V0Lf%rTN`^jC74<LRgRYxgvNDf{^5e*sl|Pd5Mn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/MulticastSocket.class b/libjava/classpath/lib/java/net/MulticastSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f218e52e56771c6c2d672d3bd25ab894b7a0540b
      GIT binary patch
      literal 6058
      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
      CtBObf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/NetPermission.class b/libjava/classpath/lib/java/net/NetPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c77f388cd801a02caa02e556e2cc17c0b9a3e0b
      GIT binary patch
      literal 556
      zcwTi-OG*Pl5Pg-e#KgpCVq6IB{DFhuE|P^2@iPP=8g$v2G_hsUBQrfhR$jo%xDs4=
      z0MFtX#F|b(ByrKzRn_lP)t}$*9{>)po=1vMe-KZ?(b6~_X|7~AQc<J=okxbSVc#O@
      z#i24|=U7C_`-KoHkqnjadooPwoAVO_T@Xs`Ku1Ps(-VFyvoD9^ui^8+Bjk>hR;ER$
      zZM#<57kcP)O{ny+xzi(L+QC2;kj7FG1uPQEuF|p-kNPsa7JXk5s&3%1rC?*Or_GGH
      zR}rD%&R?d<2rWjIJ>yH*nlsJ(`Ld6!$wq~45Qm;TRd%93Ui%4=f0uX*aBLup9N&4a
      zQdr<a$!Z*n+-Y&0;ybsy_lDA|#gsV~Z1<A6E-IYWCnzkV3fOD~tE`b|)uvi!j7k5i
      Yb<0|JR%>&Dn$b$KI%mm*YnI*k0sX6Xp8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/NetworkInterface.class b/libjava/classpath/lib/java/net/NetworkInterface.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5db00bd6123e758179cff15692d7800902f75e3
      GIT binary patch
      literal 5118
      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
      PW!p!n1ko$X;vfDCN9yH2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/NoRouteToHostException.class b/libjava/classpath/lib/java/net/NoRouteToHostException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc373e7800bf217f384547ad6be94fe4d79d1a23
      GIT binary patch
      literal 526
      zcwU82Jx>Bb5Pid^K@dbi#KO=4CK6)_xdt_02!-JF%eleR<JR0Q#@^C@VrNBSVQb<a
      zus88<80QY6iJDmKyqVoM@6GJX$Kw-#J(QD(5VkMGwP?6fH~Q*CO|=}Vj`H>4jU}(N
      zt=uGHgwhvjpsY*z{YuFB(zAtQO3&x|w0l6HV?w5_Twe=Uo5GpO`1}3c?enYgMo6@5
      z*VYChTCJIcSX-UR6rxy3BZXx`wr9JtKb?%EHxwgB67oG|v4LP4t{0aveQx`NO7EZX
      zn}kAjPI81hZVa?%yW?if3_J^g=Nch7k-jg+q1P`eAvI7_&yq)WV7&FW&u-9%3V1L6
      zTtXRfBp8!iMX<z&g8ewA`DUMy7~}OBG7ljo%Q3|Wv=D=V9B1h{39HD5qCD(Ez+h&;
      fP1JX0SpTWe;ht`&P@J<C3PD!HMrd9Ndp17-u_AHC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/PasswordAuthentication.class b/libjava/classpath/lib/java/net/PasswordAuthentication.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1a91a112e0820d4bd5158c1b672440bace01673
      GIT binary patch
      literal 641
      zcwU82T}whi6r9!T_f69*D~sw)ExPnv1R>drm|zLz)2fTE=)G}W>u(h#K@a_aepGaJ
      z6@wCD;q2_5nKL{4`Stz*-~_u71Q_-P{E<7ZP)?nX$4{Q$y_l%JaFy(EB|SF+i(%D}
      zhTQEr*X@DmD2C`{EPR)b1Vg6!({3nVy1i5CKg`E51X^W=@R@X_I%mig{?c3JVw1rt
      zdtDJn5GyufNHPQq#byj-ZzF`TMj0CsL>W?5>5AH9)E52?Zx78Qybd2Wxi9s3erc(`
      z95WnL{|QO&P4tAirARdsDO)Hm3#Cc*MJ}sQ)XCxvZ{l}EMQX?Va)V<%jQ*T5(ccGX
      zQ6PgT4(&ne#1N;Npwk`QYhJ4K2D@}PC2%xF`o##=sAgbMEmOTDSp`X4Axk&=Ga1&g
      z0T`rhm_gboKsblZxs5}+?uAOPNIfrx&jfWd(4G<I0~xlky+oY;ExunW&KuUwH?oj<
      AxBvhE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/PortUnreachableException.class b/libjava/classpath/lib/java/net/PortUnreachableException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..900285ad240dad0b8231583c5c4d7f941f609564
      GIT binary patch
      literal 532
      zcwU82!A`<J5PbuMk_v(-h!_vV3t%EK9#JkRMnjAV!hNY5sFp2h7vsP96`n{m@dNxP
      zjnhInXpD!QH?#ZZy_x;^dVL3QgtCbkp>i)CMMFv5xbb}5SH2YXSPWfx{$$Ikc06Um
      zAe2_Lo@YNuy?Q0&0_i)#9Y{amx_@~_pesVA?WsTur3b>D$;52>xtp3izY&rrj&gL1
      z5U<t-1f%WUNegkTr(t1@knK83Ue6{&>EDKf5b|BmW&^=CTrV#TJ$3@Ze)r!6nuJ1i
      zL34!~HG0~2)Tmh-gsz3qb(3IDWDtl^<o1h7uzKFiw`Io(t@r+NIt)8e0q@3NOeiCP
      zB%{ey3@JVo?#MCCH^+>`n5fT@d5I`ljus=(gn?7!I7=@`*g!rK<#Cq+EoO$?Wc^@{
      at)B`V?zxB*iVN0KA<T-{j?7C@&(1f{{c@=Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ProtocolException.class b/libjava/classpath/lib/java/net/ProtocolException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aad8b24aef2950ea6816e82ec8eac65fee286071
      GIT binary patch
      literal 506
      zcwTi-O;5r=5PbuMnhJs-s6-Fm023RcHw-aBO&~-~(B3>Ob%Se4*R;j>AH4WKJb5DV
      z;1BTkcs5Q8@u2ar^ZDkznf>^Bdk4@$%|wb&yAuz>_GM&W1Uk~L_D&vMc^@h5n=lCF
      zq_4EyJO61AilGdY@EjS0oL}{h3DhU#yV?&U;YW_}rZV$#{rR-rI(Q~z50$T?4k2A{
      zI0U1sZ={7ZR&ubgOehSLFVCivkqj=y$diQ9K)Wm;ScdaO(THwUNZ1<uzjT{Wsn7eK
      z@W=Kr3Y0%?H=J0m63dkd=0t{}7$-7+pag5Er-3U^RjgV4Be55cU<Z5+e<Xh)GRU$w
      zIZI)QAH`R(&2eR)J+aR;XUM-MkOEtaJ<x%HBNREx%|Td2DIw)O7X%$f#@K9gcZRj!
      Y3_YIdCk)j&YQYdkRjeoC8_CS(HwyP?B>(^b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/Proxy$Type.class b/libjava/classpath/lib/java/net/Proxy$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e0674a2d64906c027cfedd0c4853b7487554206
      GIT binary patch
      literal 1121
      zcwTi=T~8BH5IvXecH3nIEK>OrQBm50)GFXd8v-dcR?0`*(xmZesaIT5cFFFR*k}Kc
      zmIsJN;<Nq=|A=w!wL(MMCheUw_s+~YGt-}czMccfAgiH|Vfes0w$cs{(mS5}u{l$2
      z9&rsJh5>m|x19ZS!D$>agx8C23i&d_NU2LqmLc@2T;5?&&F%b#$uQ(|&$j9n?)kRs
      z>=xG<*lUJsdDrm+%Lyu0y}{Mr(OFbK9sOeHFKq2@&Q#V)y9J7lzwJ>alB?Bi#|~B)
      zlti*ZW%KSk9)YTZs2PakCUMQRpTrZTOC4t5+0K5pn5;zU?U(@-;RrMVCJkr;L<G2P
      zAcC;4?id)rAj4qEcKBA~aF2UsYp>23VkNgm;w+L#SUPnm7$H8v2iqqK$3h<&qlsj9
      zEjp5z(~zQ8b#QF@0Y5Y_kB1CV%k!*e%{^)|q&k&s?;Y@3kS%s`6-7@pS$z9FL$XT)
      zl0E1s$QW3_V}_;9sC?b>{cO)P7b`-;(M`AE)%Z(Wv`Cl97sMk5qv$x?lc~6`;pzVc
      zyC6Z06EsM)Y41B$(D2Bfy;36AmHA3`HABNvXsy-NF)>wuPOW`L#EEf4Ay%ZH>^>Mn
      z<6^R8hv<F?*Xbrkh|?SKS^EZ7jSVZOxN(9}3C2SbOh|A`m0&9TosiPPs96oQFkx2J
      z7N*P-On;GO?$WPLC$NlJEaIN@iZ88cyJUul3+h^GZt@f}mw{n=fOe1}Z4LLOmM9)j
      zx_{xzq*sK;TbQnHD5>*mPH@^(CeDzU|9mAIyPy!INvGR6Qsfc0dW@yc@aP9v?>Gfd
      Vq_v18DUSZt#NiqB`MLDJ_zOLO>MH;M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/Proxy.class b/libjava/classpath/lib/java/net/Proxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c7f6d87abdcf7d15c5fdba974e929fac1f7bd22
      GIT binary patch
      literal 1522
      zcwTi>+fEZv6kUgwUdE9Y5V;6~TA>$cQ52OT0tK{EE&<Y5U(B=}p*T$IbV}sG#Q5Sj
      z;5YE#4KR`zef6V^`<xjIl+tA8oU<=$uf5Km{`vdkCxBZ>xzWJTw5e<>F<mud%SQ3d
      zjvGz}zp!bFz8+i3ZmKzx!LzvZVtHlhS%$o+(<yNVr@2#78QN+*fi*Id+pXmDhFUH&
      zbR0*l7IUvubIS5ikY_xn74(8R!Qcpn(gd0)=2b6zXm-QT&{_vuMhiR)u9@V@Y+_9U
      z!zCGQxJ;&T8*4aNm(+PYLTN9dbjWCgi@}#F=;~r+E2|o7N>-y5TT;cGqNNq1z|X=c
      z!GUgGR_3W!Ww_ztyFM9SNL-wa0=3>144vP6`$^|1?Of{XilR||o88EXYl(-ROQg?$
      zi~w$O8Uv(VF}ulWo{1%wxm6;aH<a=QmsaSU<Nz@lgBaofG4h+mRnsWw>m=rXRszSe
      z#@)C>d~40qm4cR64URS{({SCEa35oCJUBH?R;-LT#%U_H6|JH!y=3UG*V@_25=Jn=
      zg??0{hV2ifJ(yx(V>~b+V+OONpHeERdY)mZUd9=d-A9~@G0Jg98Kl)>#mK311wH_h
      zxSc4^V~~@&t{MqVDVJ5cA}7ByT%)^p&==-FC!ZqPHSm!TD-8s#{B!{_#a*P+2%O+Q
      z-w{~m3!2y=TEC+Gvq<Qqw?r#2fhNSzC9I%S8gm;ULl$1p7e2(5aAY4n;lX|M9s{(9
      z3Q2m;6N3~1EeN1KD~%YtECzxZ6FaXc%V@oBmx<BJeU0I7=>1d$cL`%!0LoT?4M<mv
      z8+DR<YLl~dlAHNV+sW_j2BVSRU?0)w*o*uETi{TG^c<jn7p<HXoq7)t+(n~v&#_mn
      z(j^eLh>lMEl&F6L-6&&-)?*!_RUM)TAxyQK$P*!31F@kG#AY)lbOHQfQ9BwIMTg%X
      z*R#5Md!j3URTBC%Y@9`^%6)+&jASgVyWer|5D!}>4=`=P&e84wk82hCZ~{AEV>jT5
      Rcqj1`d}!$Ji=O$(&VQ|N8?XQX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ProxySelector.class b/libjava/classpath/lib/java/net/ProxySelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb713702c75a9a47fa4ec2526d8c225890decd76
      GIT binary patch
      literal 1266
      zcwU8+ZBNrs6vzK}jCGXp;FQTg6nxx<QUMjs7K}kj2;(76m+-=euDgy4U2ED~1K-Mr
      zM2sZ9^o1YFczQd=wum-q?>+aP^ZTE3dfQ*WzyAO*k4G9}44FOigK0Qi8rz<Ga9H6s
      zx1{T7h%=0;J==5|##U{Q))_|X{GA!t^2Co}y!>}Uks(>KY~cvG%+Qz1R~h0fZk=lw
      zWSD6<fzb|p8bQ0_b?6vMVHin<L`h)=Kslw*j|3%B77pJGnl<jdFl#nvNS9s9w5z5k
      zLR&5B=)(}n%3a|z=nXDgN(>XZ{8@?X7{`Q$Y*zy+hrZ;^6ee+rq=;1ER^SPFxM4bG
      zgHt1>PKc3z_jXak<<4era=FdDrtp2?I!R2E7BPDoFommO1FkWQ<vP*Q6HcR;uj;sg
      zTN-XMWX}{%A%{G*%i87E{;6b`ZiMt({>JHMF??4szsWH9kBX?Fen&$mb7%E4UroZG
      z0{xx>>45m{>5%0*4$W6hVe>k}atH3^^R?osRdKC-E}zuv9{2s$x^RuPt!D=oe=kq+
      zPeg2n=^j$+Ed^58Mp^ih3K^(~hGWXWqhqx2ANNvEnZ@O>6BRe`EWRq#LF}q>E_9F2
      z(9!Lq&yHNf^GmY?lF;ZTb+Qb^5MG1F(07iI`ht;9WX5ogp1RsxqHzIfwHktk+rf)8
      zG8+2}M>yXbRze()Rah!=!Ud&2fH7oRfGzR~_p;w`alP;pqlIHk?WC_9Vdg8Yf5yni
      zHZ)DHz&brQNPm+c+iiH9tO8~g{5I~i;IC;tOk{%K<ynHyD)?LkFLYI!q4a=P6!C`W
      rZ;4k!7M4=TL=@ar>Bq?qwHW=U=BY2?|7sEUNb|m;J)qf=nmzmjQyD7x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ResolverCache$Entry.class b/libjava/classpath/lib/java/net/ResolverCache$Entry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ef651145d30e5f57e5f1f972062ff53d6eeee14
      GIT binary patch
      literal 732
      zcwT)`O>fgc5PcIncH%B=U1<4=3zR?;H#GDH0`*dX6cngLtK2tcMO+*Q*-k`$Kz{}o
      zE<JOI8uh@D1HXh{ftX!5P>Q(heC*7dd2hb`IQs%%2W=N6LhVRSWII(w`?bnP$wXy)
      zG8(A*v$V*jE^NZGsYqn{w!Pm!Qc*#$-l-{JrTh2K6GC|+ld&SW>cjguQ#pZN5S*uR
      z8W+2S&Bn#1i<xGRVDF9IC=V7E1w1VA&_=UY1;H06!_nSl0T+&kRa|wkMp*kd7lCWI
      zPN>KzQh8o~XrMZ}?WREO&#xVgx-L*b)x&LUxVUqU|G_jb)KK6q>byrZ&N7u2hw)Io
      zjFTkJ4KTA^>c**hH6Hd=b}0La(o&5gne=29>-cxlE(W@1z5Bltu%uQ|BrIcx;2n&{
      zS)`uF2J>9?wgw@HPMUHik$JAQFB=S|!YF)n3%=HlJzpzlEOTYc_^k2*zk;KWTxGL;
      z9G>D*xHZFa*qULb^%d1QuAIP`<Hl}ae}V{u;~9bz_~9J40^j;RIF_9F%*`d-<9CAx
      zfS4><sFICEa!?~JYy}~Ccti`h&voIif!IU?FrHqNjHg#E@udPZxz1vL%iy>0fURei
      IU&S`OpAztuSpWb4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ResolverCache.class b/libjava/classpath/lib/java/net/ResolverCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e8eec89ffbd3e9e8cdc4852055997d3463d8191
      GIT binary patch
      literal 3355
      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
      Cqw|aa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/ServerSocket.class b/libjava/classpath/lib/java/net/ServerSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51e194828ddb6ee1a4a2c3ff681b4a2edd324c16
      GIT binary patch
      literal 6796
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/Socket.class b/libjava/classpath/lib/java/net/Socket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d833b437ef6563c96eacbfb0ab38d64ef7d2155b
      GIT binary patch
      literal 11073
      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
      B;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/SocketAddress.class b/libjava/classpath/lib/java/net/SocketAddress.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7372d9dc39e8ab3654db2a9bc9e58cf6b9eed68d
      GIT binary patch
      literal 378
      zcwTK#u};G<5PjDs4MZ(1rIfC0z(9mLQdL4l2v7t=AiI-V;1X;paT)j#CO(1*iGdH`
      zdk`by>arj)+`YSZ&wgire80T|IKWnb8lgWE4<gdiMv2Mqq&=EWOIcL`JVM9K3ZZYJ
      z%WNid8=yhxIaZk{k);xadK6h9SzNg`m1U)jzCJr9&^e(sF}kus+f)>D>7R<P?DOe)
      zMre$bR(4FN@9d@oZ(^o0L>-+bnrIQ)vC{HlexJ$mYU$98P0j{_ZMgp>J$tJv!XW<t
      z9fyQ4G4nE)C(7ONXS%;Q<ZXkO;P5#H2(ZGq%3oAN$Q3Qt;k?Go(Di`7_low5ldN+N
      X8G#WzjM3$)xfEdoJx0Q&Q}%xVcGOju
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/SocketException.class b/libjava/classpath/lib/java/net/SocketException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..574c0e6250b426dc2de65b7bcbd65d2aaf06e684
      GIT binary patch
      literal 500
      zcwTi-%TB^T6g?LTH5CMTiENBJz{JM5#1IW?0wKCUS(*%Wf`esh+G6|#zrrtY;flnC
      zJ2!rm@wN~b7#DM&=bm%#e0{%v060L+M1oMAh(}>-8QKHSxtHPDlOrEO<!KWJp%{0S
      zXLm1u8-#oyeI?wX^aIYXyQc)|5waam2cgj6P`ERhdVP8RJlVOK5Yk6VtFTQ-)*C~D
      z(eZAjg(NmIu&_?Z^_7+vv*}3sS7PK!LZR<DEFf5h^JUQp?^Hmj_5WMBMJU%7U03L_
      zJqUfJ$F0UN5-UeyMS?k%K_JGl$R8-d8hA6`k>@H>EUgIaM+4XeU&3F=t009mdy}&S
      z*7#9$5!(z`4%rj?RCA8(TMWsuwb%n~7&u0rqs#(?O%!5M-f~IMW@Lm-H}~c!tul0Z
      VrWZ3*7N{jd6jiVli&x{B?H`q(WsLv;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/SocketImpl.class b/libjava/classpath/lib/java/net/SocketImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc05b76b502cb7d8fc3680acadb01b7a649a3d19
      GIT binary patch
      literal 2159
      zcwU`UU31%15Ixs+EXP%vR-tJqfx1wr9n!dk@R_7Z+qB@;#Gz>eNk2f5FR6+mc_g{;
      zk9gq$W+0iNGw{d^e}m^f_l;rqN>LP9?L)`o`>}V=-rck3>YxAq_!GcIm>LQKV~@<o
      zX492nbIr59mtkwC=V&Mi98(95>25bWTaTm_YA6egXWToz(DvLwKr_2tUk0=qZzn!2
      z8ZJlnIf24=U4e<{)b^U!ZAUK4!1C>0==pR$?0A;x^gKTl5G{dHv@Fltt{q+yDApV6
      zWWDNjWfesjI*wv=7y_^8I09W@v~9a`rN6T!{oCf2BL$2$hg>&(oA<G?6h5>m&lByO
      z(kYFy<x4YUzxpO$SiSb6C8IJmyuQyE70~J=Cse=Xxh}Cp_1D`6)UAcS?QYMtIMAtj
      zJ~QfYvYt)n&~a(Yc8R^RV+WyhIX7i4n-*t4v<|>kHSBYAn>KE*A5t#T+z~igZzN4f
      z9Z>0`<l5<nDc^~dZ~BDWMP}QHD5cg=!-g!!3ut$o!W`}{7vFeZ=edO!bqu4rpKMZm
      zDuFC(jQT)_h6<5Ss8tdR+dkGY!eTIjevbtd-0`=i8!nrnsq);UO9JV3(`KFUN-3*K
      zah1@E`bN^)zdqef4NJsg)_kRJJ6-8laE1DEm!HEz6^mGAnO-Bg<;bG3UcqNX`-K_x
      zYsPaGE!@;_gRajjUB?10ap*5}tf0dx==CJa<9yy71Ex69xeC4{>@<_4GF{_vw^@p<
      z7lBApN2Zgfx=_K_^jz<AfSUp%!NY#o^?q=buqwDGaCXHDYc{D-?hxU!TeIC7zrb3c
      zbXv0<GYG1f#4>j#hDTbX$G7J7eM_=ph^GT(&v1UFGt}=Q{fAJZA4!2eY$X<wn(3RM
      z<`FfYAV2zE(0Gh?^C-{?s7~$S_*CI{jQvWx0(pVFiZtFM<SmNz0OPdNBX69<1cfZ&
      zRh%NrYbri5MwT~ldcaZ}u$;+Q-W>3G3uiNyxA9KKat`&3rGcr8<y}l?Eaz4AiG{`)
      zG-Ez^<_d?Ve#3=d5-Q5d_-~4Wp@;$kzlZm8z_VHK(_HX}D!VNBqn|V2XSv`{@M#R5
      zj=_au1}U@@vXHcG?l8GD&gUjFmJK(VlZfDV7=s@x9Rf>Fu()Ad-osVq;%`)p>pzjm
      zXuXTichNRhY2ZqCam%<9t;cx%6|Hx%aloEI$w8dMu&Cp-Xkeb!2RSSyWNcDb3#pPg
      lo7p&<>Jv<E7<cz@|F29vvxBN8{DYT@wU`r2;2Y)j?f(bZno0lw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/SocketImplFactory.class b/libjava/classpath/lib/java/net/SocketImplFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7ea6135b26dae181a6e0d3b45550132c4247724
      GIT binary patch
      literal 177
      zcwRg8Z`VEs1_nb0PId++Mh2;@#Ii*Fywno?;QZw5)Dq9!f*iNR<dXcNN_GYoMg{?}
      zd`@Csy1su>R%&tyP$;=5HL)ZWp`MXJTtm|bi$T_m3|ztarA5i9Zkai$j0|EJcIbh0
      cu`x0*GB7iM03*;!Rt7c@i-8?TGBI!f0K1YeWB>pF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/SocketOptions.class b/libjava/classpath/lib/java/net/SocketOptions.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69e4f1f0a9258cbd7602c8d77cd3a5f83d0af523
      GIT binary patch
      literal 785
      zcwS|aOHaZ;6ov1gf*{I6QSb%6L5)PWt_mH^#L5s_NL-Oh8lw_0T8vA7mkWP@KgxK9
      zijKHwn(y3m&z;<vkI%PvB08qS2!$9e-nq|ix##(1yWhF@eEHzt_Ipnenq-t5*1B%*
      zrYx`TypGQ(Zp-!s=XJvpEzXDuMzdA;eYfYg-0r}eK=w4FD14Tvo%4ngUKzz8IO3Aa
      zrUNAzW;6q(B5I~#nnP0}=(1~OrFo`2ED##i*0&G}<~MlL=A*93K&v#QVO9-Wg;OEW
      zq(nRp!By`B20GPxyCzL;8CS}N{Di2tFPoMlRBKzPDVR&iG5JL4c}A%}x+P^@71E5t
      zC^*tqghA1#(H^niqOiu-cv@;<A^fG|jh4N~C_8o$KV{_I{N`nfqVzvd?YBR8?09Fl
      zU5`=v&s`oVI~LAJoo|kEG(}-h1Qeoaa8%<Mct+zmcvfT8pU^l7PHCJ5&uhE@&S<;{
      yUeY)V&S|_1TG4nFyr%IwIInR5yrJ<Xh43b}XdB9odLa1kLMc*7SMco*{RdwL`hdUy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/SocketPermission.class b/libjava/classpath/lib/java/net/SocketPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..addeebec615ef402f257e3d9a3d6b9681ccf66ba
      GIT binary patch
      literal 6565
      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
      V0t&JM3S<WN8g>qDHmY~b`ahGm4Qv1a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/SocketTimeoutException.class b/libjava/classpath/lib/java/net/SocketTimeoutException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b83a276590f1206e0d9ed668796272f1bd9a997
      GIT binary patch
      literal 532
      zcwU8&%T5A85JhkCGzfwysF-Nj0VWdTP6!)(L5MCumL|>6!PcRN%=8$4zz=do;=&K`
      zqlh&FaiJzIx*nZV_jdK?;{5}_2}(&s2#1g2S=6;O^}b_0Ni$GW>G<a2#ga3l9Gygr
      za1cVusdu!IuItZ?9CvQN8A8sJt`hc8x*qp;opS<p37NK|JtMRk3fq_Q*R%WX!m|d1
      zL{n*HT7+n&IwZu}&RC`p#YP$_tP`?5rR9x39Z7c}Mz$p6dyd5hf^E28UB=9V@(AVL
      zKT9+Sg~}4Lg`U*=##MUKs15_qLg2YYNKU2aiAm`73nirbj_+FXQU%8QfBPH<b0~xN
      z;x8tY5J!S@lDi1j_)xGP$28xZawg94+8mj;5Xo{(aR!=*p@ke*=_Q0s<U>(@>`I`;
      hWWXkBM{{idRJh`q>rkP%q*e++Rm4tcz8lW$eE}p5a=icm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URI.class b/libjava/classpath/lib/java/net/URI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d328f3126ae334de09812f20bd809d370949624
      GIT binary patch
      literal 16370
      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
      HJ?H)}yAz|X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URISyntaxException.class b/libjava/classpath/lib/java/net/URISyntaxException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc96d6f138f5940c5e04e2c8dcca90b8a9d269a1
      GIT binary patch
      literal 1462
      zcwUWE*-jH-6#oA1lwq-e$WkmVLR*#!ZV0F>f(}73AWgW^Y5QA;OsCDv6!FUV0Qv%6
      z>5Uh9p@~o<iQfAHK7mhRVm$w}wx+Gdn>ovW&Ue1Ev|oRI`V3$ivKJ19fjwnkN$A{4
      z>}<)~k9A8qSUpJdf~DqlFI)^=c7Uen*+lh$q0{7ss%S}Wm}KwB*BRJ4L)%JTH!VfC
      zl8RR3?%<o3)3e{d{a|pbdZB1B1U71L+m@l~*?Idh!w(2SX7DVix@uiz7>hQBHhN-7
      z2G>eH!~Gy|3GL`&i2hfqEOI+GRGr^0=2G0atE4n880OQ|m_qH5U2(dshpNdC-1x_|
      zs1aw*%=*!fK`#bqM)f5n1Tn<mv+`w|p*tFDB<6<`A<@b(Lr;@dV#yY2HX^}~R-v7d
      zAfe5RF@|t0Sk^S2RkS4|Tg-9Ys?zjh6fuDwC%#cJ17DU~a(O*1q;7G=6k$$GNk|C7
      ze)8Vprm1B4?`V5pluk!<j-j`n<8o2eGTacexFF#oE-`rb#Yt>FU>N<gr_IzJPh0a%
      z$1sDC4|7yMq*x*QMnb~5AmIw=LOe>L!1WBnU{r3*uTZdI27Op!fKXRNGF|Irv%&rq
      z#D_Ho$6ScGZ0Czcny;ziEP5NSU`jw>nAYN?Uzw8z;D(1RFIf)w5D;4<Js@^QQoOaJ
      zgT9?)t;1#K`QqafjuKA1x3jt-xI5^(NjP`VLt3aDhm+_9Y)#-YTRTOX!^Z8Z;65SS
      zMKThfI6_|ur{m)!4-t+B4>1ySyh7_SMt4hyeyNr0Cvw0&0=!Qk3YATfFO4uVHidW@
      zvPvORr4Xr55SnPyN#1b`RmdbriYRyd1H$jB<vg}CXG2TnfC@CjM3dwaChL<QHBCNC
      ze|C+PN8Z*YKW&<vs8%+pUGcVfjG0|g{UgqoFe{*5piejhmn-%W=8tggHQa&4BP<72
      f=_7h2LGBvqc6*1<h~RT9kgU~Ttk%C_N8kJfIm{%Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URL$1.class b/libjava/classpath/lib/java/net/URL$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7520f56903de076053f8e5bb00b75fda4b1c0aa1
      GIT binary patch
      literal 629
      zcwSvm+fLg+5Iu`cOpQw*K)JNsBpwnTFo?$>qzZvRG8d7S_l-RYi=4Hz-XQS>NPG=_
      zD(XW&pdW=8o2WQEtj9CwoSCz;|6cz51+a?^4`TvTxAIPgnr!&<D%#xj;0jEawN&a}
      zc+tJ3*m|f5td`ZB;(<~2KD;#QPNmeN<a=yYrUh#IN-KLH;51v;0`6g!kPiow0X$3y
      z)FY+oe9-Tb`60V02{fWCmg%)Ls>p{$*WRd{O+=&4+T7O+c+6b06@4_=_A!fj4|4+Z
      z@7Q4~^E}FALMFf$EU>mmwsW6b>Q^v<rID5uh==-}Y+zzKR)x0-wz6F?1%gwp$&_4T
      zyY(X-r&+Fa?~LqCmUviUPW1`_*03%x%N986SVOXZB6X4$4#H-|0At*z-5S}zh@g!f
      z@ILsA^IMMb;SF>4iU0OE3XbDjzv2HX;efw>L31A9GWePE;EjYS)H(9LF*9tiJ#64U
      jqw(}#Un^?PV@2x@wGI|b))JP>Id5v9fv+X&8&+Qdcp!=m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URL.class b/libjava/classpath/lib/java/net/URL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0603d68c390673137ab74e396f21ea8b564cbeab
      GIT binary patch
      literal 10393
      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
      b&?_k(q?>eY+=9v9d$<J?8Hna9Zh8L;I5}rB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$1.class b/libjava/classpath/lib/java/net/URLClassLoader$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4481e7b35d58b806cf53866d244887505f8ca8ae
      GIT binary patch
      literal 1022
      zcwUuL+iuf95ItMFNn^Goq@^?|lv@gkdr9(KghUI7AX6#|eJL*+XGynmZOL{b@eMox
      ze*#h>5D)zTJ_<3rsi095Bpy6FJ2U6ZZT<7tk23&GG_sgsD4mGDsE0DGzj@{D1|mtk
      zNOWXeX=Y(F6pT9%VYmLWeIordiwwi6u_n^*#VUPY-;Y&a1+ptUkNi|cAwwoTR!OBn
      z^xhQyZHD>22r9ld?TJ&#Q1t#LJ4j;{cE^Gqi&QYo9PKbT+L%PW*e6)o8?R<J>c|7*
      zBY5V43RU`$;dymxC6j57cBXUI4jF8H&w*iqBa1n$UFFEZ(b_eROW;~7am?eg0}Cr0
      zd0c0(sv4g6R4Dg)r)?R(7VW^a9{D0T6tU9xbEB<?$gnc4@Jf>!wBjDkd$C%((8Xv|
      z+YTzYm&F>DG=+iVKB^3J!uMrj_VxDv#?)&4V^9|WhKH(kM!u&?_qQ;fU`vNH@KzYg
      z*w`g?pMMhiL6lIs7cxDLIviW5GvwZ>uw#N4)~b`GO(sW!He%5?3%gLzYXb^Jy)<*u
      z%FIa%qrYQ@zB~#PeTB4Vbf2ZO?5+<{bT@`rbT@}sa!d9Q%kDRnzZ%R9l8(XBd$2!X
      zl{8K|A#oG8jQuw5oU`sDGxE6uA{`Lt085q@XC#)t<L;L~tVP&>{Sn;$grfZ!CDJF^
      WEz}Ic#k#448LvifkhJMJZ2ksJ<@HAZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$2.class b/libjava/classpath/lib/java/net/URLClassLoader$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64c9e24573b0d59374d7712803576b5f5d59b436
      GIT binary patch
      literal 908
      zcwT){O>fgc5Pcgvb?cZq#D!7<g_ZzLs0eTkREnY^RWcs}S_yI5IIDCkvqrWP;J<Ky
      ze*jXeN+2Q5{3yiiDo{d|9(H$j=FOYgH~aI~*Y5!CqUoT-u(Hp`ysbph-gy@F5}xN#
      z$_FBA+;d<vR82VHYS@0#-xqP=V2)wccyketGFiNDKh5M=CSoWC-MEmcVsOViX}sZ?
      zPzA$sbWHM3g$_fYVSi|PsVc-f!q=kzixPD1zErZ<WY`F2(4EX`?lRcDbRZVM;CpZ|
      zudTBl7T~(D5O}CyiNOjr)Q_YRk4LZjB74F6iO`*-F;8}RCiQ*dw2M8NGt{G*%2B&k
      zHX<38!sf}Y99$wzW+XdUWmun<w;RVI&$T>RnoLx3QO8x?{TjpO>581nV>EJ~r=u(u
      z52b!yFx}8?&B5SpD<v}H7xZ|4OT|f=OEr8XioJB;;U+?ciV|<PRbFrv6H_;QHKkE!
      zMw`u9N_KFE#%0keqg1Ww`2lp&^ymkdXjR}*^bA=K=x)*Jw{9I`v9)oCYU>EKF9vvy
      zcGo1(W6K|Ko-Cb6a4h43@vq?GglY@6i3Q(Kf7v=9wgXgu;PMf!eEv(fsH>GfV!r$d
      dKAp#u!GzMnx<Ow<!<1(x3e<3&cAExx<2RE=-)R5<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$CoreResource.class b/libjava/classpath/lib/java/net/URLClassLoader$CoreResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f37294203816396a639c8c2f7fd6b5660afcaf1b
      GIT binary patch
      literal 1826
      zcwUWESyR(c6#i~lLSqCeDz2p}YFi4yeJSEnL94+9u*zd-uO&`Mm^4*?g}=lHok5t9
      z8GZM~<-r%<bR6|hIG%f()>bU~kh%AsbG~!Fv*pdtm#+XE!JG<(Veo<V&@x;e7<Z=4
      ztYekSre_toKbZA=KF!Ns#V>Fb?F{i&mNhGe_5y(zy3LYXF-nC8hH#Q0xoa(wJZef8
      zj^&n&nZUQ*66rd}Y}XFP8LlPFjku7g`pT^L(i|_Dr-)gv$ThTKvyKS584k7f{@Zgh
      z9|6M_9UbTtx2O&kT?{>@?eZIy#d+?}TJw%f#Vc4&-tukn4u$Q(f?cLi8|G1~mPp-^
      zVur*2nK_lV#Dko>R0$|^ZY?tOCz4gL?HLUUGSwy?7x+?Odv009UWUH9+0D8}#Q;M}
      zRIg58$@c=U;5mlqr7UQJTMaSn6BXUh(3@Ca_6X54xmyYr7}^raTm*-ZP;r<+Z?x5s
      zL`viznz9@{2uhh!`D+=4<;bWQA$+4q^k!5?KaMaQ_>aCua119@9B0_~Ph%Y?af(5m
      zx5`}d>278te4Wv87F6O*1>vFA#htB~WV+CyVH_7!oTrYpu+ni6m#9tEI#la@)pCoD
      z@NFd4PknQlngAIM!?-LOHNi06Jo<mzpVp3&c@<Y`q$MWj2HbZoXTtYAU&ADFBF;70
      z@Vt1NI;L=ghCwWL)~b|gHPVgzXBT|$kyx2p3V%pd++v8;IZav4ea~OyMIu+9TpAj3
      z8#gz$q8=$WueWABf3YVsavvvcvBG`LJsA-&8or$Ca$m|hEx6ve#~7tyY@<J_f~fd!
      z&@C$d8g#bP7lB6lO>`@gg^+AX4Xr{?4ZlE7D*Xbz&n31`;z+N&MThbZn(`h!$_H#E
      zd8&%THf#svtsgtctGJ0sioA)~g2ztmBFSzUpJ9)TeUdc7USC6OF13uFRm7jw<8}(2
      z@=?apt9D^5S}zQS{EyNpbX@|!jDt`Az<+AMch&JjNQd|*A-~Zz3=0m%GLF*GTfLr+
      zj;-L_DzeYaHB8Q};_6g-Xa(2rre8~sF$~~l7%xUyL-|bg`GVba4k%v{SH2;ke8-6L
      nL-L4MV}(58RG-_JCQk|CHiKF6q~MOsAdkCrYBIZV+{2DvJhH#+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$CoreURLLoader.class b/libjava/classpath/lib/java/net/URLClassLoader$CoreURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..050f529734c058f06e8ccac681ce9cf564474568
      GIT binary patch
      literal 1344
      zcwT)}Yf}<o6n@@?TwOO%yd;$s<^>iM?P3{bC1q1XIitno#|2(#nRRiN#ouK!g^o1M
      zbeTT%qnggU2*V272bQzvJm-C$_gwbR-?MK3R`61W#4uOUkMy*~o%H*iT-MZUwOmy%
      zaeFpfwK=(3Z!&@mF+XSr#t<kO^o-<OsHt1!^sZwYRyo5kux?m}v%#Rnb3P|!Jb_Fi
      z&k)R3OI$$!!zyG94uRpaiV(sKazU>Ni3}lco`O+~$%rth-F_A0n4q*WceV_ZGmOU*
      zy+Q@U6&05-z!1(E7JpkmC~*6oUJxmfT(zj1dEGX|`?)jdd^Bnd3x3z~){;swTogg`
      zyk=3~a!@_%wn=!Byu)kNx?Lo?)p)P!gfDkHFC$}yZgw$qvu>CKQ!tBp8FLIH7ZEBJ
      z5T~*o>1Lg8?=#GI^KTa_yy#^56jDJ9nrK>*VWOYpyg)3fSVEenLq9y^R*7NJ|8~8y
      zU6K_QcSK_cooXwn;2u_G+^7DRt$Mm#tfWN;R6M{#>ejv?cxL+YbmOUFj~HhE*VJ}#
      z6|7-h-1RZTYv1v{FbBQ-UV3-@E&V`DSdkoJ&OHDIW!I%|jq{k7ZAlzYC3t07+;;uE
      zCgVkW272YuW_bi+nN}e{-wFmv>;qX6{b&oxGep)0ii&tdOQuesXxe9}4UBxj<R=$9
      zMbD5xNM{(3ni!S7B1*nntt?!{HNds5W17ws)(wPRmYalXu{gvn@LChGJ))RA#qAR$
      zk`1I9SU$zwH>uwUHL<qm%E%nE;|_ZSK{CH1D*eE;^b>LESC;~<qd>z3-H%q0z8p{R
      Wl(Ho}b5Gesmi`rrF+9f>rv3px#8Pzt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$FileResource.class b/libjava/classpath/lib/java/net/URLClassLoader$FileResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7a12687ef3ace5bc33cd42ce722aca8e5189210
      GIT binary patch
      literal 1739
      zcwUWET~icC6g}O5;|_xxK3rThND|Q9WfjS%$r?3Tz+eWAfQ$I#xU?{-Wrmua&G%D2
      zs(ehPDyhT=->g&;9!OOJRa%w2=SQV-dUkeLqfkD~O!vLF?>YC}+w;%A5B~x%iDd&)
      zVDv-hBWJ=>;l%ZMyIgbXb=!AVR4_W@*3`VJ`;DNg40H;N>=oIH66n0cLjs5FDAe^Q
      zbdr+5fpf0shUW#&=Is6OXlm|Ck7vkNn7iz+C=(s%wqU>#II(xG-8}h93M6Eq3kL+!
      zw(F@YjrH3qSafb{s(rR!b!rtSaP>Ymc7|(iodElCZB?zyt3_sklh0Tk8Lg^t*4t==
      z3t^y~b%DWLKB>9Q!BBJhld9SXUEix4$O`l)VOJB6iKBSlz%c=<T{sKFI4;ob)~DP+
      zRYO1cRG=f5ziCpG7c9Jpm&l$}NKN3m7KNC9$;22=8aUC)8rv=8kRdOBLwQY>1`4d8
      z9l5Op6L}PM&rS*S=ALY9M<b{uGt+_=NRgJUywz|mqCBg~ykg;1yvAS+UG_bXHL-eu
      zq5o0e^|6RI@TP&Y0-2{rSa=JQte$u@hRTa!wWjARyp8j^!@Eo_v-D~k_L04jkK$bm
      zWi4`7=+kLnx}{Ui@mAUBPz9b-n+^g$FfoNoTBr9Sn2O$Cw(vgKnv}jjWv5Z+bQWU`
      zqYR5{f&a0d+EV_hRs&ZAh7*EwPVJ5#tg980Nrp#2FztxFe-v9HUB+eYJ^1TUU5Kv4
      zO!OD%fBXuZ*2g$Wv(zVu?27Ze)Y9Y0JHy!adxkTd*$)1>*eZRSx$5L&;2<q2uC75w
      z{_eu~4$MOFPxSoGtwfsdL)s-jLzny<ru>2_fRSc6deH|&t9}eHnO<oC$<<+G_#KSE
      z*y;%A7SCzlNZ}9kY-8vr^c1$K-}p90w;mzCtnE7(-%8N?G*$T}k-tV-euDvdH)4=!
      z=7|}kiFz6n#1SlZGA`?@xU8`R?Qje2<+<WEUf*1jn@wNo?j{eVNi)l*2|Y}OAipK_
      zcZB|)&_5t6f5ecyhhy@7n-F6Ojh>js00~{dMP?HER}mBPV?x;`=sR2XBTOytU}mmJ
      zPP0qJzatHGW9DKK876{!fP?a9q~tH?mA_(8{?-Pbjlom2UBw5?(984JFwYDU3z3qG
      OxX!N`=~KZC9QhCO{*d|r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$FileURLLoader.class b/libjava/classpath/lib/java/net/URLClassLoader$FileURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d750821a99e68f363b88448ffa4f5d12f5db51e5
      GIT binary patch
      literal 1278
      zcwT)|ZBNrs6n<_usdQyb-Uhy)2uQmPhNy@RUr`g1sR_soe$g_n<C4;nwlnzApP|13
      z6J?1c{s4cJ@!Y$WIAEmd?Y-yaInR0S>7T#9egn9Pr#du-$!+J8Q}lRLTw5tGxlS0C
      zeP@#g6EB3z$<#dQNHUCd3Ox#ANNfsP(`6MZ{GvoDF?1~oPeczH7OZjylv11H*vYOi
      zB$xb6ZXkh_2_5Hk^e~wJ*D=tG3pz5fxs`095B&^!jYl$yVZgGR=&s|{imOo|yjsbC
      zi9rcG#4u=`^xKtgFbtbGhc1TRvhet;`pyOq-Z&c)w6E+}9k=2HLY`a3WV9thhN(_H
      zw~I_VrK-~Dw!|Fis1*ra58NZ6W0?rR*$92N9`QBlPEpS*JoM{9mDtRm)>cPqah_6U
      zQYv$UVccrJ+0%5A@s<f2Ife`oSaLky6C_Sk{Y<QWj3MI-CZ;h%bHevT7?ETN%YG*v
      zvnEX{IZ`5gCIViK{NS^WTMQFtNg8uEFo!#m`utgwckCA0+1V8x3k?0SaryQ0y(-_0
      zgzwS)dd`lz`x7#d@1tthSXE4#z4x~lo{?!Zt;?Rr17+u-j>iny4on$(+PGqtW->v4
      zGozOVlU9vh`a8(dO}iSB^Z?mhzA)W@kvoLBK7D|60|P&i{jL&5XiZBP?LBnu1BNsQ
      z7s-}urs5JV18R2#qpDOES8+|1%3_RmlEQV2w~BtDJZZ_xV!0p4<{Owez|_ma0rFol
      zNT1?2qz^H-o+~tPd;cxlSFlsCaJNNhi28xHg^VUJs%^v4T-e&KBGxRJKO&aLJ=`aR
      a42Dr66*PJlRcjCMkiG`_7#`sXhW`N<7c_YQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$JarURLLoader.class b/libjava/classpath/lib/java/net/URLClassLoader$JarURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11c1e9dc61ad6a38e1a3b63e0f8b4aad06d836dd
      GIT binary patch
      literal 3418
      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
      Ck$rvu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$JarURLResource.class b/libjava/classpath/lib/java/net/URLClassLoader$JarURLResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74ebc39810169e5085ce183bcda9a30250221746
      GIT binary patch
      literal 2202
      zcwUWFTUQ%Z6#jMy3`s|5L)!!|6bRNNq@5z(gLsL-28UJ&q|$mDl0%rTFkww5YWoX(
      z_0`LRFFv_!U5kdLc<Hl0%H=*YlW78^<soa%*_Ur$zI}H7{qK*z0nA}rL5Ohiw(+H*
      zS;EoQSM_||Xg2kRQ5E*gvSG7iRWutdyCM{X36uS7J6422VLA34LPB?KTaH=RZX347
      zXa%Xs5yF<S!<I46qHb6<t>oCIRb$=If@zt~BB7MhAD@_a$sGmh7dTz!(D_DHL@|J;
      zR75bs)%OqcC`P&*0pYZYK@7=LOof7B!l-Uq;#zBGQ`l?9X5Fo+Q8DUe!#3sJ7lxf}
      zvq^YTL7g7TF4SEGr+2a@5JqakDO$TNhnpab9YQ>n_I%BT)}>(6XyNOM*mcZ?)l~2t
      zVJtAa9%y8h7gWSCNl2ccLkgw|GbhP4f+@_XcpeuC3iGpN$`-|slD5Q(Tofr}6r>5~
      zjx|s*j#+}1>hiy9?rJy9U7z$mO^9&6bYaz;ZNfk*U5rA*oPsNa^T&^miWf1@DYIY6
      zyenL<WgY>(=Y{Q<TV};@1k;>MrEhsbo1)UPP3MkQVFRtp$}Q_v6|doS!Z0Hgyf>3g
      z9i8TMzsh9BITbJAWu6zt;12VQc3AgWU}D}PsNEt-z&k45MV?1t(`X8h9Uh@x&j<>5
      zU%?V#>WTcTxQZg-R7EN~vpe2zZgRu;fcwYYjba7Y6<p&1=wqwmLwv+D>J{kGch#_}
      zbs0hH-!C7j$AMe6h?0ExYlOw#=h%0T91D~#D=2r8c72MLBW%m47i_!1Wv%058E3;C
      zld`<uQt=5s<-wEtEpN1%;t=0!+jiqCxiC5<9Fi*doG=mOv|`k^8upH;a&p15B@n|-
      z>W{bL@ei3IAn0iRa!HijU9{xB&aqxjE=xC_s-k5H+m*|?AL-p<xWX%Bfd6Mgh{?Ul
      zr<mND{2k<91X0$X;!~9^!u&m*ncat)x%2>|nd}3c`OWnmbNyIP-(irxN0ffRDE)}D
      zEYEm;IEV9qdx|5$sPZHuh1`>jE%O-1(=2(0Phqxs){VWu5@{dH>|x>|ruLBJ(`Xwn
      z+z+A;NelYPji`FoLBuRB`BlvOND<Hf@;AR60{FQLAQAxZ>-7PaeSkzyDreew<sq~-
      z-guPIh%ASG#aX(CxcmmVi2!#2Z~D03`sL3bU~wbBep_P8+aBJFEw`cXWA(m%fc1@i
      z+*rxZwsG@D_8%8?3e)(^4?V$s1+@{QeN6Contn%;4tNFsi8=bqO=Z#x=ckfn2EKs7
      bNVCkyCMt{+V$NkT0$co*b3nWYYDoMK2cskh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$RemoteResource.class b/libjava/classpath/lib/java/net/URLClassLoader$RemoteResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19b703190ee1b31646e64629a2529090fe437492
      GIT binary patch
      literal 1152
      zcwUWDO>fgc5Pf4i2}w<wCM0S3EKo}9(gw~!y;LAYvOr29cPCw?M$Wpj9mJi#!vQ2B
      zBo6!leiUMM9YRtP;9&3DnKv_UX6)}jzJ3Gn1V;rJg#9=ETfZ$u+J4>hPC`FPyvRQj
      z@m^1iqg3=n5>4WvD8M4@uIFYff;ovpLfKnnb_n?-jfFoZ)H6>IwY&0SlAda_B7{PY
      z(sKfJ`SLW7L3&IWw7kE|V`FyjWW>;yqc$fE<fyZ(VP)N}(<fLb(U~a0#HNi6RCpxo
      ztNyO%^ot-=ZRC(w=$efJt|-*7QACNb=><}}n2ZM^e&r8B9!}MZhJM)h<3QbKMk_rJ
      z62iYa{WW4eEA1dS|2-WpBmJ?K@W-5ZT_ce$jD^r_IcxS*diHK8F47>9Ndfl>wK?tO
      z+(RgGLT|QEv*oCjvW4XkDy?PJD(9*0?0KNZQCsfhNO1{vS4t6UyWql)SmK)2xtryI
      z;W6*T<S*VtRV|BARjo>&yeK{`el}n;?<%ABFf^;_9(+OBJ)C08-La;qx%J!>^-t_F
      z(ByZ6)2Ux5XBa3MCMt%7hLOWI`;M~|*uix`qZ_!%1r)l4+nhlmCCAiA39>X&k~lB!
      zV3%2UwLHQ-Ev?N+<;c08QTsR-l2=Bfs0-T}VOE&1hX=F17K7^_E(MoY2JhqHir}rw
      Wm1`@44Yc&zfy-w}hacb&+dlzJsr1JH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$RemoteURLLoader.class b/libjava/classpath/lib/java/net/URLClassLoader$RemoteURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d32ac11656c6789416c63a24f19fa03a89744ba9
      GIT binary patch
      literal 1724
      zcwU86Sx*yD6#fph9c@R7AhIZKAan{?Z~>(X$|lvah>BZ$7|IQd8D^U4VEijS`4=!z
      zNF*`(;)Bbx`k;w%Ni@dz3ykN^)P@4ZG@ZF~&bjA1-`QUNdGZuM7p4@H5nAu)clCrN
      z+{D$X^q{Hda%o$i6;AV%Sg>8eLjPMqfN-#salwqRE$i5>ov}?qRob&Rb!#qh*>wzS
      zE=dTTHY~&KBgA9r67G^kiljD82n^b@B8+lGR4CXM#tuXkR1nm)rYb72lMtB`?qnf~
      zT`_HA9NR&tRuM#q5KSAF7++kN5zZBT#uPGeJENP^x?{-iyfEO-8##hjD(dwaW3G{m
      zRGazC)R*K-C|`6q)QV!_K9ebtvlpEVN6;PHNMx&U{CghP{VEP%4?&sHb23CJJEWox
      z^<gxlMZsZ0Z3#~*S`p)PaV)H0T%j+F>ej3&NhSUpQ_+Q_tXy2yu#M1H+yTjrp0;qL
      zO-olDDvlt*nX|LP8ni7-WL(3x2o14ynJMTvgf1LYaFnona|;#6ae`3Egjwhc%S{Vw
      z&YkBn#k7>X-lO6qPBAQ-q^#_s>&M19{0D2;i8YF(0<LC50dCZFvqg|$^x}+)K8YLk
      zi=MTuoRDp=;4GnK>#qA(>@fN<Ak#ZYm?=468(Q^0nNM!YDWy#-80N+(C?|&RWkl95
      zK)})$xM#zeHASf_RT5qcW<JG~;*VTDoi&>R^OAA$`C)*|9`O-F&S-Tp&m;0S?}!uw
      zIi6hb1V`7gM<)+MIqyUse7O<$RK|Z^Gc4K8r>m@$`e?kZeFfoo`!dwWsCwub?&4>K
      zRMRV7Ca-xXy+IAj4)|BF8?}IU;$dTl^3;Gm9>iWW`VbUhIE5v*SFz(p{1NuG@#7%>
      ztCrEU0&R>j+s8YW(b*l~XLoO~<2icoqqgH2dY5s!J5&>@oHc_F5TvF0;0si(qW=cR
      zTOX_mtl-=dEnTA}4|D)GF~q-X-rFb8$3cPKp_bmFj^3k@KA?#{LZeUUq%Y{9&)n``
      zF+kriMBkC3AGl6Gag%=G7X9`JkNN}(gl}VnbIC<#M4xaY&fq-Tm7@tgNZ|qk(0H0I
      eBF%X}g$Tx27GleBFSQex<ad~T5HG1qsQU{X54`#S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$Resource.class b/libjava/classpath/lib/java/net/URLClassLoader$Resource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb4d13a6ba0a72e9ef51b3a99bc7dd0e3170d131
      GIT binary patch
      literal 1217
      zcwUWEZBNrs6n@Uw=(?461jH!}5ch&q@jWwsA(AX<BmpHce!45yQ8HT6c1HgdCMby}
      zel_to8T8!S4Ti}w)3o>8bDnda^S1pu|MmmGeLOReA}k(?55o3kY`@uYHd`W!oIvc$
      zaAikEK|6G%fiz)Uqgujm+S`po>BfZNmc|j5oqi$snn*Q<KlgkuenD6*{Rh6hM@Vl5
      z`!a_i<SiJm2t%dvo(aOJg$#xXV~*#`SM8&Q3}1^zOA;oXz!j}M5qj$0QKsVqFCr}U
      zrR`SAS&lSitY~+&f>0=x6SqjZ?a+%q*_YN@j&qr@FpD|PMLEha_TGE0h$Ztam&)({
      z@pTzs_n>Mf=20+kgHRmU6AL$Siznd+Dnf6P^Zipaut=EeXIAt}7M8I>Fd8C~OvdfK
      z(kQNS0jp{PcL*C-XIC3opqgVwX}KZAfoR?mZlg|OyxaIL6~SbiBmHK4pjV;JnX;zt
      zAGhP(IF#auFx&O=0=vh+&bgN#U3naPfgc&zAWU7rwl6G<O8T<pslA!HI*E1VL9pt+
      zFGH=D9O?;^_8A=^+uf}6BCpC2|LV9fwYw~-*FcsvCQDmL@dM;4XZ%*bVB|C3QW)d!
      zsP_DgG|n0Oha&(p2^tfa1hk~05=&E<?!*-Ap-{!jS6p+dKasDTV&oLpPrhT}Z6X(|
      zXSjWGK{d%PAOji7!Xy(Dl<%P{cIYxFpoFrf<K^$rt?{WeDY}fOQ=(}d!%D1445q1|
      is?Rmt)#o~FM%;tC5dS@;@Id1q;*l;;MSqN^>Fi(gfF1Av
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$SoResource.class b/libjava/classpath/lib/java/net/URLClassLoader$SoResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e7417a7d6328318c4fd85785fd9bfef2c8e0e64
      GIT binary patch
      literal 1097
      zcwUWCO>fgc5PiG(aN;^`X&^1-E3_%ZNomT3OQ0M=k%BBL8pz#ESFMq2N4A6bQ5=c{
      zMdH8@;71{5*B_)6MjUL<&b)bV=6Qeq`u+pJW9(|+3>)w54|dNJQSaTMHE``Pw0!$m
      z1g(*OC_;Z0OoWCaLo*MTq8JLZz-3sp=8=7d@>9oiqCJKuZ7W}l5^>zW+;5H<iUa>x
      z=qO;pfChu%K|a$T9&=m;jbosMGQ*PPc;fZ!>_`M}?IV}QU9tR$?T+ohk>?~?j82`9
      zq4keR(}m?~u1Yd&{nutR&54MH-gFj?qCnVZ46AK3Zgu?LT!Ena{>O=!Mvm`=8g4Sw
      zGuS~^(QylRG~8w|=JgHS#XS=9r@|Zfo+l;}%&?w{rE_MrzK;9Y)Ud(O_&dVD4K&D~
      z31t}8@^~1kw4x=vljxLgMB5yaOOzoL!}1k<x#dWC`O=Z**DrgwBeAsFkk|v27i7f_
      znU-U=qDy}dcIodI=%$mdyaE&z>CsT3OqHTH;HtjR>3)OW+5U>!XF75$(R)#r_%oFF
      z9(4YkD1c@R$2F_~Dyri;k;zC3aEizz`mQQ5vPlW;QzUD(&KJ}!ux@oP&^*tibXnvB
      zRQL-e(}=-|Oogah*dhwL_IQ}gzOByG#y@2|Wtrix6o(O46Ap$p%%roIbe7~W=U18!
      W=9)`MGe<|gyCf=ymF<s+X6-k#7ww?{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$SoURLLoader.class b/libjava/classpath/lib/java/net/URLClassLoader$SoURLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..403dfafd09cf61f3724c31cee279f35a00db67e4
      GIT binary patch
      literal 1625
      zcwUWE`%lwQ6#i}*bS>o}@8JW+a~p#qFVO)$NDP|E4@^n)x3XPF$>_A}Nc^ubQ81eL
      ztBHS<@!Z?86-P7EwD)n&`Mz_$b9;aP`Ti5YeLPd4Fif9VXO`)3&wO)`->q1+TE1$P
      zxI0s*(uO}*5o1V3IX2uFx{i6}gP0`qWv6bIizlXAcRc%)n}uV`<)yrRv?pD1<h*4&
      zwztEON#!H3bJq;H^dUoRw_4&l7`hFpFc>!fH@X$8FK;`1zkYhe-PhJpg)<D~t3|7F
      zXt}mn2b(eP*sd|mM)8EDqPn_^!c++)NknGH&{20Q487MA)6s!$9ivF77-KNPMg!xx
      z&7hXK_uLk#4W-h4bj5PYX2El9r<~JBox29^VS=IGsqS*u6QUKWb+<?{<9<Yq7wfL=
      zeKMOi;!a{(#T3ItoBkP?!7PLR-gZiRLDS2rP%f=~2&WjG!n<_aqa*5@H_(YL61#fF
      zUDqygQimZ<!boE3R;raX{cnD<;H-f~WEeD2OAxKe9`0MG@=UY<5ic<v@LC}0Ml{(C
      z$K@(cvacFg!#ed@us0E>+9KvuJRra5GkFE3V*?Mx&+@35Xq!WP!*AzEEp)$2{^1+E
      zj<6(xsE`+q!(F-0Ybu^Fj7CtBiXl=gQ(HUeW@7YGZ|NJOS4Et5G@8AnwXnxC3)$=?
      z^v^U`&_iFHMkq<B$`pEOJ?Z<Q5B-3g-NJyxjbji)!du)O0q#d)6HE!hUA)9F4Hp>6
      ze8HXAH%xxTT$5;oT%pVn(L8#T6ozRWQ__+&<AXFv6AjWtgEWB@%|vo(^7rYt$s%kT
      zG0rVqVBx$$*CoQ0MF~IRJ2l`nEWwoU%XF9fP{lx@L;$t&D*Fqa?ED8d-eyR$%_j7K
      q$W~c_rmRvWYv@zfL(+w-$VnQF)_xTVwj|0nb|9o@^gPB>jQs^XtAkDe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader$URLLoader.class b/libjava/classpath/lib/java/net/URLClassLoader$URLLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b272bdb36db93f3e4839605d8c5f2ffc5439748
      GIT binary patch
      literal 1354
      zcwUWDT~8BH5IwhDX(=mIKt8J$0d2R16*R=8#upM3O+f?N#Q1c(y_8GJZnC>2@n7i!
      zX`+d58iV@mU+~4hV4Qn*S*+0L%g*e~nR8}mW>0>-`v71K_cBN^EFAD7Zo4A1U+mO3
      zJ3I*L9&ZVMiC!Zw1A`&2VIA(a?WfHH;e-q$jzV`dhGDiofT+fhY4Si&lwq_FMX9{&
      zZ3;i!^jc!q>-vshn2RuhaJs$>U)yIn!Vf)=t_&YCSfzo2{Tk&4gP}NbU>Gwof;_|h
      z|E)gHHCC6d*zO)Sh5wv4JJj%a-E(-S!F{RT<De1l%Yb2Vkj~kBYdNGbr5c-NNSDfu
      zVQO^N#3c+VZ{9=(*$l2R%nTY#4h7s$3`K_Z{!gpD`fHpHjoVf;mwVFTp{PZIH%$y9
      zM_cudgzw8%w6APigt}>l<(OCBz;5VEw_Pj$5z;W)(6By>ZGNaHbFPFGh;v5-@wPVx
      z(_S#N)4G^ui@S191aypZrMRdY%8q@&efu;=Q1kRFp7C&>VX_a~pkwybmFA*ZK9XvE
      z6aB)g3Qt6jU03)zE`ki!8KwtxN^?jSY!qp}Y5M2V$g8cAmsdO0mWEDN#YSKf?lO5#
      zU}${Ss#L2zjJ_p5g)8*Tkp(_d^(TyzSB!9&z$BnO#m}^-6jGWuAM=KkHOLmM9<ExI
      zW6W69W6W9aQFyt+dboa!g)^-wLIa<v;)J^Vf>C_MJicjNE8<CX3yE$a(Jf$+Jk{S4
      zmg5dK$f{h5y-9SUy6>8ID#|9jDcr(sFcK@FtRogGF;|r=yO8UL<}#yf!d1n}KP!J;
      UP?^H2e%iPLwE<PThPy`gHz!dfUjP6A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLClassLoader.class b/libjava/classpath/lib/java/net/URLClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..118acceca43b35652bc8ee78a297d393d40a2a75
      GIT binary patch
      literal 14234
      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
      A7XSbN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLConnection.class b/libjava/classpath/lib/java/net/URLConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed9a6f9389de9cecdce1c5363ddc143c2086d816
      GIT binary patch
      literal 11321
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLDecoder.class b/libjava/classpath/lib/java/net/URLDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c27d421871838b8539dea1e509c56894f3dd17b
      GIT binary patch
      literal 1781
      zcwUWEOKcle6g@AV@l4D#ag$ES(7L~T>NsglDTLsZK=UgDZUXrdLLp=OC7H?{TjOz6
      zgb=@|NJV@qA)u%d5FuG0Ap#4hqNuO}sT(#(NQgyONJxl9SF8y4jV%(WE7g+UyYIgH
      z&OP@x*Z%(cDuBZ{si2Ob`IL3WiaXqkPfsL=c{-Qjt^$c6>|bOpXDL3OI>pl-L-45W
      z*xmp`Alfy<APtdm2m#b<kP&2POxg|~E1phqcgjj-IYU!2m$tGqmTQZ1RVjJPc7Z`p
      z)^OcVUNXMO&>2l`a+vg7+ga-Gx>>~#8s>SIr!9|XR5UTj(^I1d`$AyYp`igfLthQ3
      z+X7c`CquihwsY}mr%=r2b1pd=afl>YjGRsLyl3Ye238OO*W&lDQ6Yp~*sUP)pZrz~
      zHSED&2F2z1td*wtTcSflH7V_9sGA=YQ0*Ez&`CMVa%ag~_A6s5h|=T#zZ)zrE^;@7
      z1Bi)obyFRpX4i~BIjG?f;tchLVyfU93+JX;!?}2WSi?OyLQbuGo;w+ap4%!^g+RY>
      zc%Oz|+)oJUWy?M0Rj3Sw@Bk>f1jF{tx2EIqCGKiCiU%3gyyX@+=>)->otj;yfPY8?
      z_%MSJogXyK8r)_?7=t2=A%>mN8d=^#c0|J{j#FW5C&SN<FH(Pr-1weMk-0~ym!r2z
      zR#L+Wj1hA$H(5>Xj%dxQKF+XbQ(YOO(VTnQ^0xGt%By`xrKVC*)7kVliBrL|TuO_a
      zdd}n2h(VVZidj;$-YPb-^&=8U#T0evWUlC@`KT>sv~hDJ4~h5KN7EF5_ytI!ai>+G
      z(-GPk?Q(1#>X#(cAw+A4c3=b&j^hrJw2Be!+i0(+sca;Run#C;hUp|MLb0apm(jd7
      z8(Z_wLAq_JVm9~$o+QmvP;qh#ZV0U~s<=8?-$k-SH!T92{Y9&Ie<K#|4(}~v=ZQeC
      z#J<D6gxpg`TW|0R4$SGnb#x_^5=w^Bqf3!8=<e>>NUu~va3v6k$P0RK72A5~=H76}
      zhZ}zy^7m*o<f{=~$^^4?RS~{X6LO$eEuo!Yqy=3HE)Z6t-jH?Gs1JuPqwm7hipo}`
      z0J-^i<JS_TSwp#kU2}#U(ADmB3<%G<B>WjMUGg1%ga$(ica(8#c12=6;SQl6o*THd
      zF`-K$j8!5dn3wU0cy1_VJSK9O#k;tO@oEmwAVTZ&l&KdfcQ2s{FH`PbK^tC0C(cnh
      zU!&1HPm}mMP272m;Y~b?w_xJ}A-#hfp}m0j=;nRALAY;|?jkPX1FYh6l<+M+#Si!l
      z*9h-te1Yp&!yov{uT|b(Z&Yg~q$fzC&klaa1W9$o;1f(@it79mc2^}0zhRmriMU?J
      q4E9qOwc;20?oCm5wBbk0`aO}wGngZtO8lCsLkz-YnD;yK>3;w<agsCu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLEncoder.class b/libjava/classpath/lib/java/net/URLEncoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4beca0018fb1dbfc93d26abe66caac7c74310889
      GIT binary patch
      literal 1842
      zcwUWE-%nd*7=FI>cj?BVqk|Su<~D3Q#*Z-=;KqQ$Tot#u4iHFO4&?wP-Dy2NWq<~a
      z+lA3ZjX$F92DhNZWJbJUM9nTuG~Su0G2zZ@<6j^?-)Ut`Az7RDyx;e}@AJOj^Ss~r
      z@$YZ$18ByW3ws3iF%qpq2agO>*S^<-v3GhDC>D3&9w>Qjvu#%HvoDPWt{<^=o$
      z4?GFeNa<5g3G9t!^qi^c=8&4sYi@W5(A0dq<wR@S$@Y$(-dJD%SplbJ6%eQk{~si>
      z6Rx*U%NklzHMI!=dyL6$l(O7pDy=nGXpD2CjM(k%tsPgIz1WX{3*`?TATggawW~fH
      zK!rfblxAKuGFi<q=LOn#=;V=l^Fko#gBKMpR0$lm0#cdAK|PnxW-|sm?l1P&KbO?9
      zW-6l#ln$hH?R@^~xMo~d$J3gmGm}))L#mOI>*A)!@#tG=IWG?4kPA;dd?>3A9}eRP
      zPoLKGDRY_{g(Gnno)kFn-^kwl<fLYJQHO{RQ5<E`sg#~FyGU#}9vPBFj``4lMtYLd
      zs?lQ>JTZCHW*?5Dg`QL{p-yVj6N`+>oK_#&a8kgN%a7-*N-Q3Z$9Lqc4jn#pg33D8
      zY*y2$YW*Y4LZN#L;j|B3I3wUTGl^oo^6)OzdSta;fhu;pJLW<3`OptesGGylJ8x<^
      zd4?VO8Y7nb-?^hsaRCSC-XK*X#X}idE}!P2a<^iPOY#?EY+lb<OghF31@}mBF+&Y!
      z)wHD~HL+nxs&$!!o6{*q1qODwvGS%QGI=AZolVL4DShB-kl{Qb0eS5OLU6#zr;DpS
      zaKjD{hq#2c5Aw5@zc^zBpQTa%KEJXK|2isHhoh_3W(fmB46mlW&jKCd&I?Q&Lk(BH
      zLMk3(8Cc*IjDDQ9-73!lVuN-GcQ&GHs6B1#vbEX2McqjCJ%l?QD{$Vhi-5iQ4jTyA
      z*HFKXrdykT1|88FxjeCk_F=kj!xMC@;nZp&NU8l4WkH8>bPe6Z1X#f<0ejaruwWr>
      zq|K?+E}<mgB<v@fe-uGGT|pO9W1VhWn`Z^>L^>jog6@E)rOg|3_}u|-8U9*yEfB==
      zSX)ZzVsU-LBLbeF`~L0C?`7f5Zi`__la4C>XUY6a<lP`8CdzS*#LSV9YpBP|=)fY*
      z;8l*{Yq*HlN$7RFh&Q0(O-$e|O!0XgZ{sH3!3TI3x9}eB;C+0-)pz(1KXLC@e2m|b
      zw`5qb^xP=QAg!k@-5vOiuZ(l-%!Oa5^f^lC#m{(#mYrSwfM+qls0r>rhx5#trDO%`
      zCVdz9bg^cPT|UqG`3T*(#9R+MIfMi)FTZ?Ou$G*qSyqw*(H&A$Di%@}meCqgdMtZ%
      z8Ih3EWZ50ds0k^@mQWE=t}LM}q%=^akP=;j!*<txcZ*Fw`vjIziO=}v`JAjRZyUUB
      qt5+GzTT|>o_9A_b=sgU6y#?gu6Zn#FUu^?$V3_2~t1@Cmj{XDNc#2T~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLStreamHandler.class b/libjava/classpath/lib/java/net/URLStreamHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d21739bb28c91d4b639ef069a08ba95428bb393
      GIT binary patch
      literal 6389
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/URLStreamHandlerFactory.class b/libjava/classpath/lib/java/net/URLStreamHandlerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fd239f5cb7044b5ba34cfdbd8279d7d29e8c5ad
      GIT binary patch
      literal 219
      zcwRg8Z`VEs1_nb0PId++Mh1nf#Ii*Fywno?&>)}SlA_eaT#v-Ol$_Kex5VU<{Gv*B
      z1{OvJ0kEo^#JqHU|D>$c<Pt^(v1Fjyl2mkEj12l3J_yx7xy-zDYfT@V)>tz#a0Ta=
      r7A2>;W#*(ZGRWX?haSiTHbw?U24)5jU<5jgm4OY!Vqgc7Obi?V&K^Ft
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/UnknownHostException.class b/libjava/classpath/lib/java/net/UnknownHostException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..129af71ea4344c000720fea01f562199b0b5c80f
      GIT binary patch
      literal 515
      zcwT)_%T5A85Ul34W(7eI6cS^+Atr8&M-0ZGMwI9Q;XdF5M`6b7F6!Oy(0}lR@t}8q
      zz`rr}F2sWx57X5>Q(e_P@1HNP05(yw5FspIiW}i*={s$GrOmBAG@ieI*OS-2GTK6n
      zkP9iwIE~Zq2SUb^t`dWebUm)yjXeS#5mI%dJzr?QBL*WGe|x-F&kr9XLSkEK<<|(&
      z@>+)wtDAFaBZ|2sY|IkUO{L|@XxNqRndlBAA=@-PHV|yX_4G34Unq~T()@SsDj{E<
      zPzFNxotEz^-LI~70>^ydm?Kz2>3O0bI{l&&?3Nk1J$ax4+u~m?8$lOV!8`Gf5=w|8
      z!Dw+6!3-Y?cH@}jn=M9Sj911;J%yAsN1GAYK@7XdaF(2qFpq2~%A-yNYRn9{iOTvI
      a3qKW(xu+Q_6eg^xLXZ`(7@9AIJ;g7_Ic+%r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/UnknownServiceException.class b/libjava/classpath/lib/java/net/UnknownServiceException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70101d849f09e0f2992c0178de9c69cc99d26e36
      GIT binary patch
      literal 524
      zcwU82u}%U(5Pbs&7z9BORAQmV0x<DnEHM~@nt((L<Pyu}+~6wgnY#o18o$8Cip0Xw
      z!jCe}9mGOoEOy?^?wj{!_T%&Q4ZuE12}B5+w_+kpEq$}6@3ixvyV9K~Tb?}H^4?dD
      zPQW1KLzZ&P*2VV&A?rz3iJ>K3kLzCRm_Thpy6I@o7uvVPa4ci*J5N`QR{fa}KU7-z
      zbwadUu?R-fxt2*pv6Mm*i-b%^X?Z>#^`(0$`a?;`bsU=w1lw>uzcl<C<q@_!|BYTF
      z6v{K!Q0Rf#^<AY0wTcy(76Q{eAu*DkCkCO}FDfC~b;hnOPgUT&@rTh~(1<PYX8g5;
      z5@LumCb)`Vfe!^6a!m2f0V6TSs#Bz2LP~~Xk`Xw9fd;airDh~7BNvMDv~z(vGXrkC
      dx;w?nPlY!3oP`R-8EdW(WJRoo=4)Zk`WN=AZ$tn9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/VMInetAddress.class b/libjava/classpath/lib/java/net/VMInetAddress.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..419535677b0094d68feeae2fab3703fb708e9955
      GIT binary patch
      literal 610
      zcwTK$O-}+b5Pg+}RYXxlz;BO>iEcb=Ou%R~K|P>cIF+Tr!qS?h`1P+mnRxIA_@j)o
      z#b8tp?R4I}nR)y6<MZtuz&^HIOfeL?{GR(t7{76GPNC9nM`AE=;V>-NTF6z$ziM?w
      zU|gga@)niauZu|XP(JfkC>T<QQb}{fknqY42Ip9}MH&grX5eC)AzPD5Tn_s!5nYcu
      zay1?Bu)%2x<=>!VZsmZXRGX~pfK+vav7KjnU=;6DQ{F4rezew2Bvpr)*--1=@a|l3
      zYObg!n(mdGRfhD*V<7H~)QUc|z_2l1cB6VqKd5;0n8PqfD`Tko6w4sfyk>Rc#vkIP
      z6;|~Av&zj_g2PQbxiFCsORVc*6o^x4o%-d$Ufh9gkkxdO^fOa*$Yjc9=;c#n6q7rz
      zNWaiy3K>g^!ClPJof#1@k1W7uuz*Dyb6BEEo@x%oWkQN5{Xtf+`UhFVI%Q;|-L?4z
      DFaM1h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/VMNetworkInterface.class b/libjava/classpath/lib/java/net/VMNetworkInterface.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5aa6ec55b0bc53fc59dbeccb9cc597e01b5ad5d2
      GIT binary patch
      literal 397
      zcwT)^!AiqG5PjRm#KzXvT2T=1tp}qwLGdCALac{M?wfV2+s3SHH|lSB5<K_;ev~*#
      zB^SYknc4T|z1^9w?~hLaN7xF`5ZIl`XBp+>qU3r^?#0;oRqn{%OGN=ZfnFuZWIl~<
      z(itfy;GgPTyEB32aFhsm=jM(=G|_5f1-?Kx);W!f$CT`?OfwSb$41F4kye-Zm-O6&
      zUI^^P|BP@V(3z5}G3y7z(b7>koka;xWGu_Vi&sTYPMdrYpf9jfzdA8$POfgVbYcpt
      z=u($cZ2$fAptRx;ydcWc;NZm=2YidTijvuX$Ld?v4mtZ3d5ksA?WKTg2M{f+qsvT>
      NIgjfG$7bal`~Z}$T(JNE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/net/VMURLConnection.class b/libjava/classpath/lib/java/net/VMURLConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b925d88c62e3cc11f65d121b7222c9bc53cba1ff
      GIT binary patch
      literal 944
      zcwTi<*-{fh6g?fXISxYD#V8RKvtS}F_yGD4iX}Qgm0%v^X%d<^n9QUmJ(m1}pJ4eB
      z_!240@&o)R%hNMfuq>FV>f3$Jz2`37zkYxJ31A7&Qiuu69NQo4iYry6zWwI4wdT35
      zY%0fdQ-}+UhHTq*Tb13$F$saBwZ5~tza=1Q0>kw0Dce<byB)|OAP#}_YP0RQj(Q<5
      zlrPi;;%nZaG{_8_xCVoOrUgbU$CW!lry>1)yU~^cW0u#n+jZM_^!YECTn*I>3}M_v
      zCKOQboSwj}by@W*BwK;(^$02Hs{NC$-0;0lH8?twzQA<;pjs<f=k4t&-*H=)g^`tZ
      zN1%|8LL9GBbGw0x@RbXNjP;LA+117LQpgI74<dI5jDcIor7-s|d#-EZHs(3Cj_tqS
      z3%Xs;SMo3%>RTOn*Tg+6a2T4W$=3>Xjpt1iP$WPNx+mCbp{9vN6A$$C629z7r7xsn
      zVhYm&F+I)63wxt`<3vgFv4bjaox?NsyufeD4M*S3#D9}7YY{x8IG+R8>qsC;o8l>k
      zG*4+<flhvvNFLD_KZE%-^cdl4&;rX;C}T84^_Lk$RcHlmqWBGC=V8eZj6%%F0TY;H
      z6^4Fyp=G<o)0kmlG0Y-*vNuB6PegRli^V=}envu^7Bg}5afj=Vv{fwiasPStOGxxl
      zDrL`5J{@FVU|YaC8{Ob;lT~anTMb#fL=LYo4~stAVRgAE5684bJH`JI9<z=t*(dBH
      K#{JV!dHD}6y1L&0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/Buffer.class b/libjava/classpath/lib/java/nio/Buffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d9ef52ee855bc535eb1a4e1c38b8099a39d3ce2
      GIT binary patch
      literal 2875
      zcwU8--E$LF7{;G%lWd!;ZBmjDlcG>S)2IZcQKV4q2ZdlEr9e?HlqK1u3)@X+n^5rH
      z8~+2TI(%I+Dl<|>osoMS9lh3j9lckt9G|nh*)Czh%w+fM?m55rd7t+^yAS^T<~sl{
      z<82u|5(Y1*m(-%EH;Ys4dR?<*ge1i6n}%vOik0&hv}#L2Z&h89AeAMA4SiV`cUGFK
      z5<<(Wby0$>)@qiv${UHfhS@GQsuzk2>e`IjQpY7k4(g`fn&7m2nZMCRuA6Swv?zKJ
      zSD+w4Tz+)19}>1G2qPj!DFw1K+Nz+>89l9_9}yWj2_u^#%Z8yfRAbU=w3jurb@*~s
      zTWRS{Gm0$YQ7(H%pq`bG%$G;!x-uRY6Lu&V5fl2DlrEOinK|9mPPCWLYu0J?yrD@L
      znrl{7V^OtqaqZp=wU%@{?QSe#^h~Yltt)nR!n&%VsTOn0KdOSHx}no!Wl3FK(3VwN
      zW;X1V?+S%Q1$&W~&~I%%i|U-I)+(mK5Phb$Hs_Qk#^Jn|NSKAuS~6ahu+58FHZQ4$
      zUOUd}`Rpno&T3iOnr_yZQ*}wJUYu=OXUv*r)s5zw5HhadMZ6^A5MAp^!kgzq9u&w>
      z-Y$B?(9A|_i4E2vS1vgVWK2ug-i7Nt^wFjSEo!eWGuUMz=!ht8UIq=`>FWvcxYBM_
      z>Ql|OSzGl%jtWRv7ZX@!2UhPGDTpT&?hmFo@7L6s;Ar#VDgrlPV<s(2y>d$bfPE3k
      zyPY0W#m!FUk!HQlYA}gY&9+t5W_8g-F$cOw1Pkq;f?jUXu>Frf{ABms=broBa}+Ti
      zQ~WD<it7eA`V~F)+J(YB3>JFtVn`g4;*c)%+(jn$31Z(O`_4TK-!J6E^WhC_J6qVc
      zf$e8gp><?ap~6>4-||gMg}CqzsXf@q;{*nI97l*v*-x_u@CvqIA2K+EVLsi3H!+Gy
      z6j`wnW^e$rn8p#jg)&a^xQnaD9F^FO=j>b-@I14U?2*W~#~zJv)N7AK&LJc?EAM7n
      z<XOxQQ|-`gPn-ieZ3j`D32u-CMHSq|$2eO&OBTfHhYTuw>9K|w5_pfszfXhD@mlq9
      zlOFelU~c-!+>7KI<Sz5t4CHdFx!jVQY^<<>J)a>Qy4~BI@)aK<<{<bsXDiz%IncLc
      zH{_#0-}w4;7k|jvqBN!4I$}BDov%;Cb>;^8oOGFg?iMd{!hoExV$*;TrVd<XpmnDE
      zDZAz~?7%e^=sNb`CVT0YEhOy(^SY$OP7^{C?1zr!`(4YUuH}BCqxSmG8SM*SVo@)#
      zkw90{-L8Bc=*o!a%8KhszT--=+m)LgS8O*n1!nE7{DAE5X~YjS;zt_s6C?cWGa&C7
      zkf$|{0ed~^W1ayFEaca^_5Tu>{FrCqyi3RmsXf<(_7b(fc3)VUd04U2yT8%W-x0?j
      z-1L9?=vj}x-=j~sbR}>v4A>j|FZ%j7wf*B`DK0CH*U58OQ!XpceQ@Ba5PFb8C+^>Q
      zm?woHOA!o8vX2+{@!oKG$KA>$#J<YicswwLJ}J$2{Z?OD5?)yneB%kL<9zEqUg{Ld
      zGmnsWQtB>B-5n@(@<~#If%_<Rj8aSgBlWO{KI5WOPXBIT_PW3yCH|NXZ<k)0=4)jJ
      zigXxBY1S7a<%LM`9q)vg3v}c7$AVrV{p2I!=jp~ty0H-8Muy*kQ!cO0*`jeWlsquJ
      zj%ao`ckV`z>a_UMNHwa~XiS~#2DVB|Hh;Ur;OD~mqGo7?vt=^2O+xdcO*;D@Gz_<G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/BufferOverflowException.class b/libjava/classpath/lib/java/nio/BufferOverflowException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33d782572d9e64d2ce05e5a109573909ddfeff08
      GIT binary patch
      literal 390
      zcwU8&%Ps^_5QhJn>5H@;GX@*6zzPc;mmRS%NJxjorT1sXX^wQCBYhcOX_jIknS}@N
      z7M5N@R5!5`o2vTje04i-pW{~m8<=y^AS~XAp$N1x!G0OXGCLc}EKbbB;p0Hw7s_ZC
      z7Gb`o5}|K`^HLWomA~(VPA)Sgl1OGb>#O4f0-X?AJ)`qN=pqtHDedR?@hEjZMg(V9
      zX;thInk%aj!Rnc7>7j`!A08$N?NDiXTBd!OU5b7p3Ej{Pc!1zBtbdYLajSB|a`@i`
      zI|T2-l-WQYsj6_{4{p6`geCA|{6Ty)Y&h&)Rt-#WMAd?9ea>vv8nD-1(0ZzoHd~K9
      Vun7y>=y2qJLzqUlZaPzwvtI~-UfTcw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/BufferUnderflowException.class b/libjava/classpath/lib/java/nio/BufferUnderflowException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e60e5cba60a554b0cf0716b39e37955f8ff0160
      GIT binary patch
      literal 393
      zcwU8&J5Iwu5QhIr>=+q`nD8i&C?Xo5APUeR5Cs7wkd*?6`;D`PjhtQN2XHMaBnk>j
      z&cFdU1!8Ov9io|;fA*W#zI{Hw0O(=KL5<Lvh&$2M%5;y4IF{*9k7XJs=Kka%lDD}s
      z+JQw_sjx)o>+VINb2XK}?*u=SsS-&j(~R}-?3h63gl6C9EEhTtMN&xnV{dujzfWEX
      zjRU1sen_aVZ-fM^Z^qI^9djOB%o19G(sEEtM>4$<qeK$gfr)s4;4!R!l2(4BGQwK$
      z?+N<^_tF$;Bu`aYx%wBlRklJ0yc+)zpA8!g_71BWW;mj9MYbMib}9|nn@?yyR!EDj
      X%O2Q<g<bd@dEXG`(XN^<ROI3pG`C)*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ByteBuffer.class b/libjava/classpath/lib/java/nio/ByteBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..183f21fa87720aabbfe00834a45394a1824d60e0
      GIT binary patch
      literal 5629
      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
      ZS2yyxXk8pa0yyOFpYr)H{9CrK{0}^pi}?Tm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ByteBufferHelper.class b/libjava/classpath/lib/java/nio/ByteBufferHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..419c0e0b3221e72c13d8af0460bc38c6a48914cc
      GIT binary patch
      literal 6390
      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¨c<72hmVoXWGbK1iVY)-y`wA
      zr`vxZ@qc6v|A}vp_pug#X0iQ+@8G|(OmFfX^8t?HLp+7Q<2n3;ee0hj^<Q`e|7O<z
      z$5p~tZ4$3Cvs+b;Uv*`6o2K&$ZF9d6R_8kLu{+mbcEQQHoQ10Vg=qdloom5L_^jx?
      zudt?Zwp?hOD#Ïnl^$Jsf7|B{|Dgvr}%j#WaikB;F!;bTz7&>$u-BgfDxO4wk=
      z&?QQl`D6U}DP!i3;j{?ivm%5SIld&yagpOCVc;6a*TqD<&G8*E3BTj`u9%DuIDRO?
      z{0t8|L8MI`L`u3*QOfpVep2WlKEYR;{E)v{S)!tN*o;&SIbE|#XP`X|=T0kfr&YPr
      zXzsKwce+$hFJQoQO$%?1-qKJWj69IJE)3<p2%34}gt!9%QGqF<lJS~>S`oo&F%uia
      zo&4sXh5ceSj)^%qE9T<M;vQTO_u{gchwqChekQ8%o-pw@QR8}1+_a16rv0M0smjTx
      zBpHbkMxvbsYP}Ix!TQh&$`7q=BiMe)hNwPdM4hYAxxY8Ejczv^s->z$-zh@ooDp>J
      ztEfBg`$g0vC>FbFK4j|)5#(M4H)N+vJ1@zW=JmE_`LVUH0LtYaTC*fLT6eSQTUxj3
      z#$0Yj<`OVJxE{?1yaplmZ-?J<TXngux?Dl`DJk2o(rkPM_<d{yeJ|%BU-uFG9^sul
      z%ddquWX>DGQNlfu54V~8KIF;olP)GKkf#drd%6J1O&^=zBfN84TDR#UH_S+sfGbNz
      h@KiqHEhrc5E`kkPw_)ox6n3AItOORkw@W=|{|^U2GwT2V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ByteBufferImpl.class b/libjava/classpath/lib/java/nio/ByteBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91c35308136c5e63ac72a990d2212f365090af22
      GIT binary patch
      literal 7873
      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
      Jjn&fl{{viBE@1!w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ByteOrder.class b/libjava/classpath/lib/java/nio/ByteOrder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23f94c4943199832c9f7f6cae74c823c1a508910
      GIT binary patch
      literal 838
      zcwTLi+iuf95QhIv<3n6G4JJt`=QDPoiGT})QVuP&D8foWjVi$na*|cpDz%GaSIVRC
      z0`wM&L=i|l01t&2Z%mrf+LC8Ihi_;8-QRzH`~q+nRSg*iYs=g9YQ6|+tD}gw!X6Jb
      zWEl$5Kk)p1t<~A$-H5?hZM=B5)_mSrX)+Yu<ArsGIk(YnyK9p)eYrajzK9+(%-GH*
      zL-twF;|3T^6LZKhsLL{*BiFnM1!}T7WkQ2W9#{Ch8E<!Z*!DUDPW`$;*Bfklp-BEy
      z=dABVVt3pGL)mstYEH)jL%#3F)$UGQ<$h0izJW!Y({T34yc?ro#J5eH#|1+7dGsm_
      zc6b<#7;f6`R9+Mczh8HbyL4Qlc{`$S;0ms3xO$W?lT2L44H}<+h`qs(p)`#iOI~;0
      zl7dk%E+EbA6ZcYdXe4a(UJMP)z@(Gf2;#8I*F_>uej-6NDW;RB-slEoXm*mDR*Q+)
      zWV6ueP4qYD?-6ArPw6Mvn*+>#MSij>e31Z)zIh3|M<owX#1c-+2nbU|DMdX=Q43c2
      zJI+`azv1#n<o1!@gSwBx=l@_&>1M2;O!gm)l*g?U_K-Y`?0kg)pP*az9u&(tgs3w7
      rQWl%zR8-`EndHi)nEPatm{K{w?Za^lxnGO4cs&JBQUJppnYr{AG5MZX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/CharBuffer.class b/libjava/classpath/lib/java/nio/CharBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2da715f4a4be6b5d84c29d6b990fdb358e38798a
      GIT binary patch
      literal 5915
      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
      Pzu)QW@9_tH|KtAv@c~ok
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/CharBufferImpl.class b/libjava/classpath/lib/java/nio/CharBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1beb2eaf0215b52e535dac85c3008e605b787dd
      GIT binary patch
      literal 3360
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/CharViewBufferImpl.class b/libjava/classpath/lib/java/nio/CharViewBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25e84f01cd497e1d7bf46d2224ae44bb1c7689a3
      GIT binary patch
      literal 3286
      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
      BUIhRE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/DirectByteBufferImpl$ReadOnly.class b/libjava/classpath/lib/java/nio/DirectByteBufferImpl$ReadOnly.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5e3561b68283090c4ac86d742cf16fd83cb6df9
      GIT binary patch
      literal 938
      zcwU8(TW`}q5QWbq&V^v;1yT|q5K1WtR0N(=^&u%mmLe(&sswKvXB#$h?8uk4`A@v?
      zR0$+_=SLxCH%^Ku6kFb%ojLku_V~xoFW&&Xz~cfkgw2sS7A;=|tz8vLH||Vh*-4I$
      zWax}1-o}9xgMHtd7GM!-mud<5ZRM+YhtO>FjMNkUu(jVGv9{eC`blf(j#>xeWLLzZ
      z?Kn>JkYII#fh-}5D>ib-6P9|)m#>p?Uxx2Q-;;#ZUf>GvP=rdK)1(!DR1qQV^xq4#
      z3Ay0Jm!Za87>-a7gFz@GCazqVlu&fVM7S!R63Ahar^YJg^dyK>tOB2qog|#7G&;@m
      zfzC&17f>bC7nS)`v+B!JS57phgbMCx8}2f&q20+H3oqf@Qio7&IRButPWc0QN+_vl
      z&Nhe-oO&B1p)2>4cCGq1lb&fN!FGK1r|XF*lI%lq4#IOV3;MD6<DbOm0!JQ4dEV_O
      zPq%7itDHMS@iU(@DDhh29q8aHy8Hn<GcCW@49muKEHOz(%UCgL8>_fsdfB+ik!7MX
      zM>$rm;a1vto7Gxh{EEu^Gu-~Z=$bdgSEl3IOta`%L=E@2u1WV((jIHFmymjfRG(>n
      tBh`5(S}-#lKfrp*+%i3wV}1IA_QufcSv93)@X)Lqcm(Yl8Mil4`30YWx6uFq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/DirectByteBufferImpl$ReadWrite.class b/libjava/classpath/lib/java/nio/DirectByteBufferImpl$ReadWrite.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d415d019e4896871df485b09a56301d0dbbf820
      GIT binary patch
      literal 862
      zcwUW=&2G~`6ot<?j@<@Bf54@s4Szx+Nh=KNpe))7$x=k6f{N$@G;t<jB4-@g6RN%w
      z8&;86@Blm%;?CI0qCp5-o;kjA?|1H<U%!9+1n>$^eK-uyC;Tgql+2=2nTtdpUu$tZ
      zAB{vFPiN_~bHRrna;b$6m!bL3WCriGR8sdC+*aJapzS0ZiUw*}4^W54u+f)Fyq!-6
      zB7e^ZsbJXdX9-U)crML<6?F9%SunKw|JhuZVJ+b^o=APoz+#55)gP;QG)^YbIlnsP
      zns=!q)5^AKWs||@!(lE8ve{ZmCF@q{opLpf&IS`Q@2(Q#ih18KLxy^Gr9^IqS}CT(
      zR8FO)PG?ymwagSlLl$O+GnG=?wO0F*LhrJ9o`^Tn+{51A#(rVg3_+~O>m=nxA!vy8
      z<z?U{2nO@G^wGW3zfY<MhhD(z>@TqPos@$HtqmLfNST+oMQW$aLV(+r;^7W9h+$Zp
      z6)PqO<KcG>4;I+E3HwAvpDpZhnYM)axQlxh=3A^|v0;Txsm`N4=o}t3LpQ81uyd0w
      zh&!_EUYWaO2iV1)We3*9vC6pAta?DowQ8SKoiY#5telT%H<eE9+tSaok%{#R%G1ir
      S!9%+~qWMf;%wG8u?EV4Js+-jS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class b/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6b685d8798f34e452596d77ddca3e10aed589e0
      GIT binary patch
      literal 8554
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/DoubleBuffer.class b/libjava/classpath/lib/java/nio/DoubleBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed274620c770211c2562d425d83b7c3a80d6e882
      GIT binary patch
      literal 3594
      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%0DHhJ)vHQw@^U=QXdRZ2TW^
      z8U@ICKVF~|;y<YuIR@k(72lopmG6}9eb&8ySzlk_*pcgx*;jIX)xH0Tdwor=T{C3%
      gb(h(wo4bznq%~=%x3JP-dGz<X{(S>)>g$dF0w`#S;{X5v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/DoubleBufferImpl.class b/libjava/classpath/lib/java/nio/DoubleBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91f3dc2c7e1d51618ff354ad762220aff910c3ce
      GIT binary patch
      literal 2345
      zcwT)}Yf~Fl7=AVv0(46uHYjY6Qc%KzP+Ds*(2F!;BNUXYg|@J4Hgrppjhh7Jn~wSe
      z9KSk_j*c_VIHS%8?Wp4q@JBg5=j>)#5t^CZ^X@tC`#jHkIr;ma-~R$Ij_m{@3c8*c
      zyT(}AcE++!eXD3q)e8m7&6O&}1Y!zO#~v$ab}b`6UoP$`P}USQP1<F<c2hwtlN(y$
      za>vPAtx#}EMFJ|<%z8E_erw|R%&c9u=IW&_%Uv>vsvtS*m_~8MaBcDJZ^mkm?WzK8
      z_C$>nRAL$x!?bHcNv;)9oE4NQ1&NH{8(L|hj2BhBgf0bbTZXw~m$x^z{5&G-S#hqZ
      zNF%90HC)%&+i(hns#OyQFRO^7i3v6Wn!Gaw@uFR_xi(jvs$H|4GWC`WcSk|1U0n#O
      z6U_{<KJjYNHknaZX6X22CPcA@RGfz{V{+nqM8#|3yT!Fi1`Ax?7Q16A2Ji}Z^Ysc*
      zjhZa<MHL;;h4s3MKIlUH8!GxmR_#V0sL{WK>6BQunh3bAVgi%wiuu?wcXEaQh+k>N
      zP25i47Gb3FqEX%+TimPGtdfd1F-0M=Xr@zPgr1o_^qSv#Vwtsx+%a1@0jwY^GJZ?J
      zS&q$NVL~N&TO>mVrNW0LZnmpg+a(0WZHqQgVpcfLshAf@bjT#89e25$x7<R}`H($x
      zt!lkUXC=#kN}X1BCi}cjEUQ=%XzdNO`P~LseAg(}EpO5#^O}lvG_&nq`AGW_y=-sQ
      zGPx6p=;gS1(T&dVSWNBJta-6dB?im{ws<}Mf2tyn4PLCWQL}fwEoxYF>aJ-`+v579
      zj^370fr1Ov9OXX%hhNM#t<!uGXy#4}t!Y{ju5G&ZXCkU;(Ma?uT7TtEM0&Q$(~Gn(
      zp^a9j=Z!OH2c*@3B(Vgh>SKOIre>~by(bk*#ZygB@q#|Qk4`<kk8VAc*hkMHLnpm~
      zD>#L##Jq+Su0!LD3bq9gCtypX7hRGqjdSFUNJ}V)N~@1nOj_q@#ihkdA@fel{1c4k
      zh4Ph-aTREB{WtXd6i8~4o42F{)pPJAD0mfve(*iC$g}=Gpxh@wC!cQp0GUm`hQ$+&
      z@IA_U{&EC58-nf+pf3c_b3XLI5$JI~mjngBFQ0&&3t<lg*jEDV86UgvdDyXIfagNM
      zeF5;*0Qd)1NwncML9XeMeW@@rDPXnyjr7;(YOraW4J-W&H}v!Y?yTxU!U3jN^+VoK
      z4h68tmM)QDnfxmpk5!JqeU@zvBV5Pu0GIKQ|67lwzH^=iUtb$X_pTh!6oy$EF)|9?
      z2?k)qAAm^oX!p%fwviy)8O-{T>*Ntk8g<{3=`h*xyCRKDY*S=3_;Ud1O{K&42ZVK*
      zKs9umv_R}>yo>jwqy?t!5t)n<M7^@C2Uu#54K9SpLRIrF)W;0_gxBX&l7EICd>$g~
      z4K7qKtLYKW;C-JkOCRB->e>P1glOZ3sd#?~Uy$R=5TY6&s_aM7PvN1D_<&kO0g^I>
      z05!7^Qtg%K8@|6~%y&flKGe@-fS>g7g(b9$em=s6&ot`yGxiLdN9Xs)P)B1yM=j}9
      F_!pUbe8d0%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class b/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e50947b6d3ed6b29651d146ee8346342ddb88f7
      GIT binary patch
      literal 2973
      zcwT*0`)?Fw6g}U*cO9e;wo<m`DRy@X6ibUrOOdiXRtso>7AgwU-Dx{zA9Wusm}vY(
      z{ly0+hQyc{V`5B<iJH(tH1QA6|H*jnH`D1-wrsNV-JQAjo^$SFvj6<|=idNc#!3_c
      zh2BML*%~N2m4R%fF<Z2!9D8NFF*j#dbETzX6d{G=CKvayLZmV`SF`I1DyI;bou%i5
      z?>c_3?m3Pq#HzMcxLhvYqwfp@?Q+4f$_hK4^uJs!X!ppdQ+DcO3f<|J33Hh#h0vKw
      z!A>BEb_3hcp%6{y_{mJg!Ndllh$Ya4ol(4?(Agr5fo|*~x1~zWsXG<Y38phSiS98F
      zMns}_8`y)r3JIq+=}Vy7jJWML5Jy7XUNmqJFDZm8qClZ5ooS^^g3<<_gCRktfquyy
      zb81<qYUk^5-aKsJ2nHy|Dio@At)|dEF<)*B%;y&eCasmMRkubGY~Hab1{G31$katQ
      zN3*;k3@dE23X6?e{q%aegXyR8<uXs*5~hb0wof=^`%<GcYgeyY?7Tw9L?v$(r>v?Y
      zzrCBG`hvsMdnTSaOEL#}Ystzxbrx}Oi`L3#rd9Ez=i#DLayW3Il2yIKM$F6fu^rh2
      z`R+{M49-T8<=nJLeZej+Nmb6_yh5CjE=TIzf=Npf8Yw5E^9H9Zoonv%`n0Phjxej;
      zD9Ub-PKbUy!cMth-zDLt1|RH7XEU1%=A{rJR}5UmH8Q31I@2RtFwJgRuVt&)U|=ep
      z+Y*ekmaml9mb&cQ)|3?9F>n&QWOUy(@E&fFTy4RbBfS+aPb96kPaG`+BjTu#mk?Ge
      zoUb&>1PIrPPTrO$^9B}V{o+--WO3cg^Ky4lc6pR{3ymduT6J3rHS;W1Wdjwk;$c=?
      z#-TIaswY8ixp>zM+(A*H&GHv|{dJbOQfXB4_BlsN-Q8+}k4Rn|Wtt%0pdke0H9;#N
      zFB^UGeV|XSIM3(#-Nq{yiPi&pOWdg0(-RClLYvvYicYhC4arrc<m_F=J~<DpqK`-B
      zTXdNH4{^wRh}2^oUB&S~boN(x-LDak@j66|VI*-Jy?k;Iui_A1V*^gm0`|I?ymJE3
      zmT*<t8X@}tZI;~Q_%Auec@CSs$xt$!jQBKrgkv%)47+1KzwMe|Piu0ovka%vhH;WR
      zgA}sZhqFj?1BY;4le_7H`Q(Oua>Kf`0c{D*pterZ3TdmGR#;nOv?AJ);zzY5<(E9C
      z$iWp>Vg`vkV6NfxC=1$|irkgD-sYw6F~)OdDs+1d7pBv{`7%0m$RvTT5b!GLUu&xA
      z0grYVyYVI|aA-(i0vB~nPvMdWeSzL0WJe3s4XlWkZRz}7uD@TF9k{HYE4+obeL>+3
      zL1U7-*Gt{!=AJZrT|wsWn*_}<be?1vD9C9cNUSN!P`<RFhMxAIuY1s4&4SYFs2gYr
      zEu&2Ol_r!fAEnEaCDxQzw(Gdzq5Mb`iJugK-{S<288HjGdx9z7wwT;oxZM^@Ev(_D
      znbL}RkJ4wSe@0U5nI~>GF?8p&&Z${OJ65<jcQJ^2oT(2vp&wE6$4w2H^q9BfFbZBn
      zY@hEfB(#>yUr;wRMG}jA;C6crbMg%a_;a6B>JgmHZTSS9_>?>R8F%;-4Qsdw{etn$
      z<$--eFo_uwkdwTWrrkN{5ve`{DH2sn33_@{PvP#?>+(4Z{RQ)V$;@AIRqqq=Yrf^~
      zYYwK1<8v6&YbK*HfcN!^ZYSR{Z%FR=<v6C>3B*m2yoTxqtlRSkO%mf?dc|I>CphXQ
      zh?t=k(cd*iNBn61SM#C=ba%L%g8u8K;2)ZT!+vnTA3W#<$E1jS&uxzXsVP3@$MYXx
      R3-G?p%ztSK-q2pl{{vL+8=3$B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/FloatBuffer.class b/libjava/classpath/lib/java/nio/FloatBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5dde0edc370cf37f4d9ee26aee3ce00960850518
      GIT binary patch
      literal 3548
      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
      MmcQ@dcXGV+9jv*2&;S4c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/FloatBufferImpl.class b/libjava/classpath/lib/java/nio/FloatBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cacfea09ef3c6b302d56785e6b952f481d40375
      GIT binary patch
      literal 2338
      zcwT)}Yf~Fl7=AWapj!%&Adn!XpoRs3w$@&t7b!*~6y$E9Ei9W2-I8SECPDe8qy7NL
      zua2Xm<BT(oqccJ~>i7fvQI5|!yIEF*W@h)id(L~F=Xr1W`=8(c0&o#KafB3fJ<<2{
      zv9e{4WsA06o2nNIrjsjGig82~bewdmpvf`y{Cv5%uRvK>5Sz5hR_&I8NG3P5%H^(|
      zH(Q|KjEXo^u9=N&PW;xz@wr*6Y|hn7+orRuZx>AkiCNpwi>tb0iEnQ+QhRJw74*!W
      zrf`Bn485WoR!s=WwIGZR!I)GK&j`Aq)n=-AQAHQJ6|`>a#;#S~+1&QR2yJA=c}hhZ
      z2?eU|IQsskT_{w|nmBk#MHDf{*SHXK&lE(9R>|VpRI#g8&9cjsThg6f1ua%}(N9h|
      zGsN^nt3}ITKwX)k6JwbWsTxvo0h+v$6W=2$UK8KVj#<)~-tvyv9aAxgm${p-R|u-t
      zWSTFjXon`O*H!dG6WZTUF(86!(|tXS>ctJa#H`iCg&Qg+Fv*%2k4<AYSNM<i)fU{s
      zoj7h2MhY+L<(;vm{c6oDsdy7p6e4qG*cIN;GP6fs^V?5Mqc)K{VJjzq6-<kW-(ruk
      zX^!#|NXgqG7&<5wKFn~FRh_mRLQvd}r~)Nsh2xxxc@adr3?gegE9JcD6pHqTESY0g
      z>qR;%Szf5rX?16^&nd);id6yD)&QH|YhXq9^kUs~+guW_tJpvji|%HRtRK<Ka@U?r
      z?lc}c*-l>6qBGbNQ~Nb@UhGqd4kM0jj>i8_RphbBp(^V&YtP-HgeAM~7-rTIqtkJ0
      zQbq*`#;G{W(P!g}zNU4SPaI9$X{ME>72?{erT&bCQ>kz${1h#}awjA`Tjc2_+LzHv
      ztJC$yIkW-NYDa=t0#o%czamo;*R<A~j3lGU*i*cq4IiLWOCO*|OU4h-d&JO5Z{RA<
      z;2JTnBZ(VGu|WmfqKo6RrO}6O$(F`>@`j`(6ojSKPb(s=3$&ur;zY=}(=z@zZ*!VF
      zrDI$LT2%WDy+8SqVsi7gl%To}o&*K2;8pMPJv7U+fj^+!CqO5k9_<jBExv}u6Atk`
      z%6$HE40<{MJ>Wx+`_OY9^x!e*i+nB%3VvTX1v?kO9`v!V`q(obcK`FRBPRgQ1%Uf~
      z;A=kc56qG%!ySTL*FpzUVP;amrt&w_U!%LhmfC7q>1Vj9r4Mm;O%oChkzLb{ct_b3
      zz!FQkOokQmud+SX*aG*Nwsnkf9m4}$!9)IOJ(Bv)yBa)wt!&+QWP>I#%+!dMQSh$c
      z03%)lgu=(GZv>(Z`O(f`*1Neu9?^a&>b@t#VX))VB8*IAOGGsAvk&QZrOo#TgmoA|
      zH84#nU+h`DhXpBVkzu<;hDX#V(|U;I2HC(ufGm(Tcc4Bd*(V&IPf7k6dhvOHu+JZ;
      zK4#M;oWc7Z;WT}Om#U=>Av+{BeiVxPhwueCz6>C$KBCHcB)kwFdWa7gf~ZPDhTx+P
      zE(BD&Df))*Z+YiCqJ1BzXTrx%c=*B++C@DdVbfz8_39aUhOOiM`(vP@5x=6Q^eX%d
      DLhO0$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class b/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09fa18e1caa2d1f5c08282eeafaa7d9e404c99f7
      GIT binary patch
      literal 2961
      zcwT*0Yjaao6kR9Hqlp)xEvYR@D^QT+7AQiCNK27Y3eobgKnoRx+vK*rC6Ag%3(n~H
      zN&Vsj$I)@darBFR&~bEz7Di|M0s5aD*FN{=Hk6diBxm<z@4ePud+*!)^WUF;19%y$
      z5d;*HOV)}tP;^QI6Zw)=op$WivD*B+UCtDi^AQ9Uc0TFheyb2J&Cgfts)EWW1m@-x
      z;*-AT*!`;QIu0wemTfC{xtPCC-&qFQ#hhamnfOWn%jKMQ505xSr#h<8oobpelb%)x
      zo-O6<7+TO~U>n*MBB=~t>FFq#*gyoWF?6CUf)^Aznxrw%ja}rnT&g%#r$jm}sdPr7
      zlLkTvOLVV+7qMF*=2WKq66iK7ZhH+x5fit42KM76g-}T<Q0Pphn^h)3DFe^JkRa1Q
      zzvOOpD&tPs&Q_zmJY?W723U-h%a!d)MWJnSp;#MO$Sw^`S*zn#)f$emb;lw&s*vzO
      zrZ2iV8p|8Rkis@Aw^XZC&(zcHPd$|{lYZ(-m>yEtKIs(gOSQtBUA|_`<!y!b$x_zJ
      zPg`Y2{`M||)kTM?dncbYNiqgmYuU;=Rcd&2i_XexwwZR)@=)F>IGnd&!7ATn9~NZz
      z*o}!8>2}3%7Uv=u=h!q!eZkHzizpK~Pa=%e6j|jKM4EEYKp7dF*EwUUOk<bpv#ypo
      zz|^{ym(7?UTl(<`ImMiPk9?PFRhjIG^d`By3{u8b1J`g}X0ul3d3Xz+6I+V4V&!XW
      z&aPBuD=3axwp3tCn7=EvB_D;i44lF)8QQlEyo1{c(aNGTUmY*4a&5vXy?5eh85kBv
      zg{*{7rBJq1D>8qml6SJUe6wI+Q5G*+whI;)y|^H^OR~iyyv@~?>1kDM5oz`rq>2Vg
      zpx7abErZaJYSxYxuD5ts4BSOtVTa{!a{W0LyIQK1v-X4|v)t8WbPr2f9ATCgJ~x91
      z$m4-lKprys<a0ouTy37u^SzCqTp(Is(_7+3%w)19@CZB1{xx)%{p*OYAt7ha8urN9
      zw}t~e(%+)p?0<-Z=0hYN<H#D0|Dm(L!q2@L@fbe`i7|vYj-!X)?8gZl#H*D5BrRaK
      zi^-dlfVPCI($+B92WV4pkK@1O809%+_QZqnP(19@ObW+%L>P9r`uw(Qe#z$KUZV_W
      zumfWxcNPhZV-L<D#nl_cc}?z?3+9s>^2rTpX#?64nl0KoMJuSSZdxI2jnWEhOT>?8
      zOXQb4r^&%BtiTMCqt9H&nGp)wkqF%rUGMPYz+;S^GZVo(>$otp?>E1Ub`3T~psNJD
      zM*7zqH0|?fhtP{RNP%-o0+YC?H9d_>9`przOCdX(pl)D=b=j8A-|71Mvh2iV{k_5!
      zyy+Jd+$iXjq)vLN``p}9X3{Ol{C!hF^Q62$vWqOpX;P3_(=0>zr3Ezfj0b(ggYIlB
      zXkQ(511+Y@D3X4u0j1MN>GaAHYuc0T25x#NKM-BwuSkL4;{=acF>|_mf+_EaTrJ*-
      zBo^0k%S`BcdBwu#W`0Io?Aa$S8~C|XTII~Fpbe`qagWP=pUdz*=kx<M@WY07T=96f
      z@xOJ>YlrQ#y^WZzB>flEO-+!zLhre~UdOz=TLS!ZkLdIW&gQ0kgbsYn4gQ21{E>z=
      z+=RYdd~A7OUlB}V2HoDTqc9`ZsF{>feFh>Cs}>28J&C7qd-bw>N|`@nzR#KY3ohyd
      zB7R939%v4xi{o<`)JrCVF@SgVU~DJfQN5sw4C`_n)6E2;rj)#n@&>Hi@oySRjC$!6
      zdr?nt#7hu1gH58pYlsf}(fozxMGxria5V+}*G<7cHUx+K;C?^&s2AKSBJwG>IsT`H
      X_*Orjzx$eiAK1+Nm!{w~?X~hhRT~#(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/IntBuffer.class b/libjava/classpath/lib/java/nio/IntBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f604662e64aadca267b8e9964910457f715df3cb
      GIT binary patch
      literal 3421
      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
      JJIeU|{{mN<RRjP4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/IntBufferImpl.class b/libjava/classpath/lib/java/nio/IntBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95b0c4d267ca4fe4da4213baa9eedc88d716a098
      GIT binary patch
      literal 2314
      zcwT)}Yf~Fl7=AVv0_m0lHYs$2lomBC2)$T)fnKDDMkrCPa%o}NEObkfjhh7Jn~wSe
      z9KSk_j*c_V_(5lccGU3)_@f-3b9S>?5Y5c)dH0<6JkRsq^4H(L{R!X-tOOzo(oc;&
      zW3+5Lqq%ZzqQ1Rtxw%rMm_STH*T2scw7Qm2$d`-z3Y1j^E#r3CuH97-%jO1`xIAzQ
      zRuT$MsYpQOnqAAu->Nu1Gh>&n*?MWqau<xPqD7J!$25vdhHHy&e=}BlVpkP(&z!7o
      zj5184VwiSK$jBuT#aY3ZQjo|BvcaV`YB;B&8$Alzw+wUFF7Iq?`9Vb1a^hT5kwKRN
      z)o@*7f5X|{u39y5@S=)1S{Pm9LW_5%AYQafHrLjQQ?+ZhQ>NIG;qEF(+SR!rHPP%K
      zlM}BNZIj`ovx6r@GA7bAsNy1Yc_AmhhgG~PzS~@@WH7bm9kDyAVgN63w@|MT(x}N4
      zUscfwU0AQF=!Y(pzpmnv2&uye)HEuWFr5-}RudO)s~E#L>tQ~z%-!7f5#>us+{OI_
      z?h!`HE*j;X(fR#q%_^yQ0}~V?GiEv!-q5o%O|SgcQ_HN4<xbej319`2BH}j{oMpo_
      zvl2?lTOt@bC>1`;Z>wFMv|U0_+>RyXKU6U*<abK>Q;xe>E?Dk%(fN?2a;<8;D4Z*G
      zzRw+@Ihy==6$=8UqXCoOYoNsUjAGsL+FBOoeHANcWtqK<k?$jV+1}dCraO^^E{<Ce
      z*+0?)6Z<tQFZL;814aUy;b{v_RczrAN2qMn>^*Ob0_L5%Yg$vboSq|dF(M#vnQEgP
      zakjbWVp^y9B+$y8Hd<4(B3#>b?T=(s)1r~+GbDfEPDFYp<>^)0*U(NY?Rn!2Isj>P
      zqKjApQ}r>wB2z2ZjNY4yrQ)fUXLvy$IzU>_9N@g3N*tiK$&jWua091slbE-V!fj}5
      zNWnJe;RI|M^r1(xWpIJK5orkpQEBzlib?Att+=!}0W$84j6cEKoE~54C|7|N*MCLt
      zPl2Qsxp_}YP(24<f`XUvihubb+T_`#-=VA!AkF8zeu(TQUqj-FM))3KK7T$2JsE<&
      z6hL1Npl5yPfn(5D_*@ed{J#Dl*trn)K!ANCz@GN8`~MF+b^`Eh2)I80z8L`jz$}R}
      z+$YE_J#ruwX2%7rR=AV-8a)j*ZL?uzp5u<5ImClyT}U{@)Uw{>9br=d^DOBC85YUE
      z#P(Qb3#>40s~F}wigjGaBmPM}mijJu8hm~2Y~8nIgQhUV)QFZ*@J`SG!+rxqqQ|Rm
      zhN6uG(N076Z?2I?w4X-ZGcp_oJ2Ec9$i_BBL|PNl>q>|34+!frfNE%(v_R}><fT{z
      z@8Uh5$n=T&WLgg~*C5mKA+k``yn*_dWS?++J|*C1=*8zD!oFaj`j}OZaGJUG2q)<y
      zyi{E~#Ij)1Mw+2`e+XZY<I51D8X&5yOCy9eA90-_h^lnS5CYUpKBU@9(Kmd5%RAo@
      q?fXzYy8`?!A75CDem&P&e~)RzuV?Hz9v|=DA43(51r;@=SK%M0RdPH4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/IntViewBufferImpl.class b/libjava/classpath/lib/java/nio/IntViewBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..116807e8b22edc3c735a9efa065a2d044f87ef42
      GIT binary patch
      literal 2931
      zcwTi@YjYE26n@?`mnJSkFDbN1k&8&W1&Yuj(hIj*h?a|`v`|sHO}6cp+)OqUoYC<U
      z`o#;5qvMR@=okH<A9RKWMrZs1`kx%1^JcpZZJL?vp1ym|d7kH7w)yA3KmP{sDyk6#
      z6na*y`_@3gDGsCy?u=uvUZ^fE+U0b<l#3v!(BAmG{!AfUTwJW!u7XM{1Qr$);*-AL
      zg@>+PcN|t|E!$T1S|Rt4zH<z;3t7i1D0DvWf32L=?%@%q;J9N7-KnMt(|t1v!HdPL
      z9YYJ+4D3L=LL`;ur*9?-CN>a3YYbi36TxnUjwWdgbfbsdO2vxfIz`fHN%f^AI%yz;
      zute`Q@DlbZ#GJ~MFM)1z;&#A56ftpo*}x&Zq7W*I0)?(rUo&MAlrr!F3<)v~^h@qm
      zr!wx8?Tj1c;ZXy}FhDU@He0qU6@|9Rr9yRJDYG&#Wvz}|t~DHE+fGJsLLuRU%v`DG
      zXp}dIA%z`QcBNWz&#$LDl-iOn-M8gPm>yNwIq4MatJVC1U7ofUayAEHvY4@QGgjG=
      zzrDktyX-J^a&r4Ak|D@gB`f2&tl)`l`YNBfW|fnMhjLEd;j{(wR{0*guw=V2(%cin
      z1&l{<k>k=N>18`tl487p2@V!xNR8UIA<z^%Eijj5TsY^QsdQs+*C$++n4J}_=7b@A
      z=o)egS^EK*ma075{am2GM#Dn?Z39!d!3^}&{Elr`plyqD-^x|lialI{rZ60-Ofk;}
      zxSPhak%_`>1Ec7X@qEX?9lWa$tt>l>?s##P3ldK04HL(^28P8^!IBV>n<-X>d#I9g
      zGPXRi4J^uvMay>H;z}2m<aAl~b%dwcYKfkfYfEwFwxyIakO#p-EU&z6I#SIV(84tq
      z@AnNjSW(zz`5U|bzKY!_R?8WC!jYNn+A^ZYBq@$FM+@JKK?LL_Kr0}x5`E{k>pK^i
      z_ZRuy!7JB<);IK)xDhj%YzaKYF0+3P9cF(G@iipm-n)kVazD6+!@Tu<hjz37367Xg
      zka&jUYdH0X&i)#&2Q=bIUI&RWgg8#2mroAiG>+hPmi`PaU|$`RCuaa{30I}9VX_a<
      zX0bhv|B_>r_aU=49*l?LVV`DFIL0Hwu)Edgw^Q>=HYazEWjK#roZdJtB7t%2=aQu`
      zLCTjjxjS_*pWKj7Zb+9lpe>=<qODO{L2Y%@3TbPMR#;n7{D`)s{F3J^dOTryW{?~Q
      z%^J>)u%I1@&;zOKJTHfz;rytX2+r4VX*T(rFQZ+9O%dn@0jEj-W<yO6dbC5>i#JJu
      zZx<4H%d6>GOnT6l=`BJ!o1kuBg|%!;=kKcf`(^3G75!Y{Dz5p0f*XQHC3VtEov7!&
      zZYJx3%-=T&S|sHql3k`Cr->l3rZwQYw19@b=|SJ}pt~9cCD&0m&|+Fff%J<FC|y2E
      zmnTcCX%A%vvmVNiM3?yMBJc;C=Ixf4S=~Lsly5|imgggh<r?P9gx1TW_iC7*{RMHc
      zZ#{R|z^^`~E@$RG+OP@}54hY9xeOn2PCugJj~m)?-Q(TH|H%tpJ2F1oyNGEeeSbmS
      z)&$8b^g+GXHDu-665yZvrA|+=w7Dsd(1B05!Jl%2A8A;lp3pBBUs@j6*94Q8!Fum&
      zxHl`-n3)u*J_9KcRZ9tyy@@Tjd-bw>#xj4-d|xp0mt54xMEr_nc&s^?bsV3=pk6W=
      zi~%-PTDFsX$Mk|KGF&gmN!?5!YKr6<N*l2Cj(^)AG3upPDEkSHdkMm3uu1gy4bfpg
      zn!m%m=mFgwuBM=G-m#w=f<u0AzaM<U3vQJn@-4SH{^y4HRzIG<?wWuf-pu^hrr;Ir
      G<^B&N*$mzQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/InvalidMarkException.class b/libjava/classpath/lib/java/nio/InvalidMarkException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..78b04874d7cca9e1de0e689c8d08d06a35a87606
      GIT binary patch
      literal 386
      zcwT*w!7c<r5QhKSo!OBwYu6$|BI1UGiHH+%StKLNWtn^LY-csCM`n69Uc(D`0|yrp
      z2M^#Syn-hXHA9@lrK<kwudDv<x6hYX09%;zP$Mi|im?cdO2f#Eg;v88kzF0$Ci2Fr
      z)Oc_R%N3%98HJJ7awK%$3M+phLOYk45;~Sy&iXt$AkZ<P*-cGug|V^Fg>>id9^UUa
      zKAs4TJ!O>LC)8KhVuI66htfwKQvrNT5?VcF<Y{p|klC3SXi4bw(u5ZXUc>sQ>DUXE
      zv%lWIZ`dXH{j|sud8Eo)3x7eI<p`{RE%E0N7U817*<)411XomA;}~#fyV8KW{*2~h
      ag|s;OoXbN8J7{wid_$N<ry4p_k+WYJlUzjr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/LongBuffer.class b/libjava/classpath/lib/java/nio/LongBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..510b91eb0efcba5f7200081e8a676ad7132562fa
      GIT binary patch
      literal 3498
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/LongBufferImpl.class b/libjava/classpath/lib/java/nio/LongBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c85f50580d39ee7e0fc2e4a3f6f61ea03d552ea
      GIT binary patch
      literal 2331
      zcwT)}Yj4|B7=D~f(`H_`W=pp&DP7kBsau*|7`t>gwo*uzwPRaT)^2MZ$H}}Uad47C
      zzkz@sF!2>35C{ngB#>w~0pbVnqY%$Ic3iKtM6%E8bKdhj&wI<?|NQ<JfK#Z(5K?gD
      ziN3C98<w3d*p2G-PNiZxxq7n}Lqx%$T@DrWI;LJ;Xw)_oD9Z|ZE?Et$eMLbelba}V
      zxnY;hI27zt5rfJ#vy#t=-?BJ9P_P>2e5YPAoqKwzW-3S&Y(uXVb;lCl-e#oz*lH;l
      zD(s<ehB^$rsT)>X=*Yzp#$iF2R1nJuwuxdNMI2Fa6hjL7OS<vYYE)NCUKF8~yf{y(
      zNF$*@)g4FQShXvamf02uuc(Nkhv9WE^tfjVqBW~-aqVr|Evs$W4XUl{&Qk?(t98fE
      zO*k{b>_l5N%V0c5G84OnG9wZ-q2dHIc_Syjr&PQlzWW@rt~0rfs@Tn{7{{yJEq9v4
      z)Y~%2r&SC<6V{t5MxhDmZ>bm)F&)%>Io;aD47<*xwZ(;tDrRtr6)_&0#?xHoCF#XD
      zuHae>R|z9^*Yrj;dv~MNHtQ<h#&rsjDKqRQZ)lmqw%0=GiD|TFa=UEh1h9fx5%D_;
      z4zp#p(-KI@yCN7mC`~?0aIe*xwH!iFTvZf-67#}wUd4h4Vn7BlXFH3HvguT6_D8Ik
      zW41aqIxBfzXm)5F&E)s4!=j3!z&hB)T3GKwMc4IO$8>vK@-C}bK`%@0CXb{a)5~(#
      zp-gTM8v58ySyW;$*bvt@+UA1Trw$!P3?+`me@|7EvC4sJ=xuA=-J*iKcE>TyIZKSq
      zp_iv*T43NL^@cg~Y<khtwD$9fp_e;-wB~4qxb|zQKlg=Gsc<O#9PwYd6Ox{Bd3u`m
      z8T8W{biHu^2LWjfAVDmFsd|`Sk*Sw!S{qJAlF?+(a~#qpH!-NCH*ri$#x^m$%`ixB
      z;2iehJTWgIiHk_FI|bVv7sqEyV+2EzEsf*k4M|HV2uo{}RzzASXho&PagcGRW&APT
      z<|uhevs?vQRQnCXKlze+<mOc=L3JHG2?}1r>)z#C=#yt-e?YlUfI&XTv@K-T_?i??
      zIK=lf^ZCmT=-B}Dm=Ar@ho1MK$9F)V;&Vn&@cZl@*tr1qxQ~6#$G+)dkNzKaWEbH1
      z0Pv^}eBKBCfmsq|xJHl*T4+-$%v=(%sq*FY*BI)urPjJu`UNg)=`Gw?(u9O9%q?l#
      zywhw7;4Vvgj|_|CFS0$B*aG*Nwq;Cl&Ef&h;vxUB9!Y)2T@9YTezxv=vO$xWWNJjq
      zD9HN_Fy%EsD7>@!Mj+adAMH&PyqhcJ5lkuSz9qw9u-R)Oj7(%rL^SfV59xNL&G(0d
      zbr?V^Fik06?0($F`%=;!hV2p=yd{W6WLmdyuS+&^J3to5nmbUR@Y<&wpU+7CIfn5?
      zfN;bgs1at<CA^6bJi=M}2rpGjZ9#TOD!Uzu`-kw19A5?yRUc7hJrZ6B4?V;O)FKj)
      zkRkY}$8QHzyD9pH?{9hMJEDCbsAs~*Pk8vk652&QA7RyFn)d1$d4aW^{rh8}q7lEM
      Iru3@(3srV^D*ylh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/LongViewBufferImpl.class b/libjava/classpath/lib/java/nio/LongViewBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..381a3419b361dea00515c9833d3ec4763c6a6800
      GIT binary patch
      literal 2953
      zcwT*0>u(fw6g{)=T?hMO3uU)ZKxB6c6ibUrOR=RqwieI=EmRbyyVLEIebjxlV50F8
      z`o#yvXiSWWe$WqUq6sZT6aN7HpN!}JW;)%rTQ}MH-JQAjo^$SFvVZ^k$6o+m!b%uE
      z4T(i_+3YLX<-W;sDL-vnD`WNfd8?8sE)~KEXz1AF;5^h2D$mbXt(pccqro>fry)M+
      zIgUN7S&rk7hDgOSbJt3RhxDCgpjFD*W=X^D&HmRaIprQ2wo7(xL_=4qX~Il;T0`J`
      zIcLS-N1KjaXx9)<W%x-?N5RB8!idDsiM?U$X%w)LMn@O+k=s(aYS-*C>G)IWj6^4O
      z1QC+x{W=byM?=i6PI(gOHY;w2bVLyow-<CA!HXJ#Wl^A^GnH<pOoCE6o`WtyhK^pz
      z9kHw9cE!rpqP%%r#|iXNjG4<-tZG$5+ho2}@5^Tw`=-p5akFL)#n`x0Ve~gPZu*Lo
      zqfy=f1~u$5bBpzAZFD`|k<_+)ne?_>!t}U?mPxy0U9A`AtjY~@u3%|spDbt1!n9ej
      z<+pn?P+PE>x_k0}=18U>Yc82tyT%gs@6cHJ%r+~XbUawFi#EqCP&6y|*@nE#9-A={
      zBip?(oX3SQ#yK@jQeU<TOHz}IxWwWzQW#R>4m_GtP&gSGn+Z->D%05G^-0&3IKHfO
      zy&!u*zX1Js1npAJdO*5Mbw1denn-UhmYYCCT-R{}H_4K&4$Bieu$<VjQp;wcZpr>+
      zb^v1fY`MsGkj<XdPGmH^rQ<C2$+*6);~m`95UnoQ^R@Bv3Ku4nQX40Zrj8+T)R2`B
      zk(@2pOH3cE7VNAgPx3kzWaXk2t7vk?OL@7wDEm9iySe%jJ<XaW1)ANNQ%Oe|taFfc
      zmJ#SkHS2_*doA8o9rsbt&}w=sy#4}<T`$)wS?i)LL%e7E%$|^}ILRb_zAXdr$!md@
      zPhKwS<o>IZE6wwHes}T8#i8{Ty(MngNGAQhr)V{LSJ7egt|7jPgq+>0I4I}gRUGA!
      z{s!$v?-Lv|o*?lICs%R$ca{BRUJoh6Q@jokV-RtiMmL`v!7Dh1S6Tcsw16H5lXuPl
      z$`Y=cvWCdsN1Nq#IsQYAQJ#ZFcRUae#zP*>q;QOfg<)63<JY42C7Y9bjb#``E5=Cf
      zJQ5hkL0mwJJ2!w!irgIs%p*7GksDN{^(jke`jvH-RzO)@w1UbSp%qe=6hEviDZk`7
      zM-Gm#A~Q(jVPg%W!z^e=BJ@D&dXJZ*&oDM>Bm(!=aCxTZS5HQ}3Yj9%bpqZX{hJLn
      zJ?zpBVn1Fd1+EtfOyY{F={a0=p)b>0gzRpDx`7o^vQ3r0)A9GpvK!aba}96cO;1p8
      zL(qt%?siijaB@!>-HssRw=II^8JZ{A1q!m82oh_WGBi(`UqR2f(6?OZ&PG8!>!=%O
      zF(so!`sD_cP7kHil_l1+Tee%c?V|iZ6p5b_f#2Z_k6AHus(XSd-`0rSTe#O6Ni3}4
      zj*(D`d5_ZPW`06k?Ac8>8yGrsTI19#qYW!uoCoN~L(bIuoX`)b`NM{WOu5Y4a2z?e
      zA(qGYE@Dbc`cG)L6-5#Yz2|g$4fFE#`}p&qRO%`0t!;UP4t&HN{+K)bNWtn(La$(a
      zZ@FM!5=>$S1mr9)#TjP~k|Nb(AVs2TDM7M3u?=^>T9;2)=uesNGiLsrtNNITU+^vW
      zSaC2M9FN0*S~D4qKD?_|w1s>}+#$K|mE)9ZClED6@){}|uujjvZjcyt(`)R-dV-T~
      zf{+nt68&vMbjXY5e=|3_Pj!dODd@j!3I4tzIOqlUdcpl}a72p8_uSU_9~<H$UOfNt
      RH32`mmHE$2!RyLv`9B+66RrRN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/MappedByteBuffer.class b/libjava/classpath/lib/java/nio/MappedByteBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff12d90a2b947fbb92780591243ee81ab99ebca6
      GIT binary patch
      literal 1069
      zcwU83%Wl&^6g`vp5gS8kOIk`AAW$F)5)n{XP=ugJl_J7JY6*xH(_|tB{F37!m2YAJ
      z8<1G=0elqVj$<6l7_c;&Gxy#(kMWP6-@XI5j;@Ic!^T_wp7(qi^d9pt6yx2aSnSRw
      z6A_uv7*@0PqQPL?mA;JcF_`T>eVrkL_AnR=8&y~ibQlav1L=z=Gw)DD2mH_#3@d|R
      z#N8o}q&lZXEq)`X42{8Gee5vQMm*#r86PpQK7;N`PsUUZgQ<*V;1i9<qjwC}B#1_$
      z?}aWywXJ;VNrj==?)*c-2E%Cwt2o8r$mt;9V=>NXUa9t`gC^EU$)zS~|DIC4^A0v}
      zhKj1EuBqZh2Q9^C&3uoCbF$h*`rMTtgc`WwU`q|y`@xJn?n(6?^`f_H%C**_`6|?B
      z(V_>Yvq|VRVV!on+t_T@wXdjsrc(vBs?n}~w1pcuMreCJ2?xg$CL1TPL_7+eBveVz
      zGNEdMRtRZ?=v7j+tF+WSTZkA*;dUb6%$upeGU`}MFK*MWdPesP*1Mky7VnVEPL9FI
      zEYho{47XASlNcH=w2uXf`;_fLj>61LoXseDDTPiH=N1I>1bey5dZyp{fAmMC(VL~w
      tFZ>bxDMf!)8htC1zM1pAUi`h!iC|dbo#9eOkPm*j=>KKu<#saF`2}*`j4uEH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class b/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad5846f92944bcd84cef71381bb6d267fa7748cc
      GIT binary patch
      literal 8128
      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
      GSnvjVcxod6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ReadOnlyBufferException.class b/libjava/classpath/lib/java/nio/ReadOnlyBufferException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..358289b1fcb7ce21b9497f0357411f7281df8cbd
      GIT binary patch
      literal 403
      zcwU8&%`O8`6vzLkowhPstzsh<*!WnO2o^#t6bWfGLA$?gPq{Mgo!prb7GA@9SV=5A
      zfS2(E#F-&>Vsp;<pZhys_wDoL6~H=XDku=<uhp#zjJClUt6|54_xtH+#P0BJz)_;D
      zslX#F<y5H5WzaQo8b#J6JnTg5RL1<mghtFxtFXr|7TrBQAkYb+*0Lr}lu3FjOu6*F
      z`LX@r=#fy~)kY_KgyQl_kKncJkbM*}QH76jLcOgGpQbl`b{DE2GNIYF0~w%XjOd@F
      zmt5(Xu-N|ZoE?IHZc{hlBb^n_{lTqejj#Y&On!?nixSG>E20V*lZdhf#a1P=k!zr|
      f`i$CBj?~5a;<HB&TWCmB{f01!X5MrvC#Syvi0opa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ShortBuffer.class b/libjava/classpath/lib/java/nio/ShortBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40d4faf383979f1b36812b74d2cf95ac3df0a763
      GIT binary patch
      literal 3485
      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
      ZM#?%gw0c(Qusr(vef|3~FCiIU{VxyyZFm3x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ShortBufferImpl.class b/libjava/classpath/lib/java/nio/ShortBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb5b4f3f7218baefd0e7fd2a82203f02a94149a1
      GIT binary patch
      literal 2338
      zcwT)}Yf~Fl7=AVv0(47hBnWJf(xQe1p%<|i=*1S%2n8h&EVPAXvw<y1Hf|D>Z#wD^
      zaQx~xIy%lc;|HA)+EK?J;E!^A&e_efA~Z9*=iPJO^E}Uc%isU}{uh8t*h(Oxpy!FP
      zYm8THXFRv<xb?e@V$pK5<!UK`n1Zh3P8GDemQh%!l=c)Ts|s4C?228#r688c4(GYt
      za|%{F6r56#fXX$qmdlFYsyIF~XIHHGMtRe6myFGlr64)ym_{jYxVHHAH)Hi}yQZLT
      z?j(hi6k-}x!?f!{NVXkObP2|kf<#8p4d>ga;zbob=vC0MX_z~9Wov!Y4<oXc6X%+W
      zG?EHb!*z|lb*EUYS#@#nl8QK57+>>3i+83VUb4$J*Vd|2v+K4~q1>|J?kH%tYl}g0
      zqM2c)CtfSrCIjlp3?CcIq)64Uiu2Irm8|$4Rq>kmZgZ`&!Sq(P#O}C?A-v4pLZeDh
      zqb}2YS;blC!g^iBAatSq4HXweP@P7gr&+y(>6DqZy0~yd#U!R!6LZ@#ce2I*XwSFf
      z7Vac)n=n#%$*63N=k{uKtE}Qp+@%niGt;T^hMt)_^jg?_Vwv^H>@ize0jywJMEn+e
      zj7@WxmrzRH7QxU#sq$flTkYDk?Gl3GwnP;uF((}7RV;`g&dMNW9Cx`=u-szF`G_TR
      zty-f*XC=oA)dsEJOzt^_SXPl2V4Y2{h217reAg&7EU(Qa@v4e7w6f@4_Q?7%y=-so
      z%VbaDp_AhlL@m0*J#lxhZY_v?3Nc_Nu*uQ*|EY=s);Uxaqi*kdTa=J<8m?*0*kW|L
      zj!ep!0Kr8nj&k(b_@b|Ao#vB3D|gyx&CrT)?a;M9+oGBljYOZK{a5Zpq-VQ4y-fQG
      zI%su!-Z+C!Kw4*!B$mKbeax@P)XFuj_org1c&g<oUeHJO(XFTV(Wj>p`{+Mp=%zPt
      z6{m2GnAefQ4QOmo!M5n(1Z-&xpjWb`agMwZX$b{UX${hfN$WhVxU@JCGVZjDKf&9a
      zCSU0|SAiDSe?$Mzfut6>d0R?QJqKTcf>-dWfB8Pz<k^KkpgbTzH=jQJ0GSQGM#K}1
      z@IA(S{&EC*Is|<ofW8<&&->6rN1!k9xgsd|J#hkdHiSJCU|$WeXMOC!=V8Z=0iF*5
      z4+g;30^lE+B~gYu1i7w9_NBtilz`O=H`Cvsx5=h$G_CYA+|<(txVNGU2?v;2(GPjY
      z*c3pHC0!!JGWqjtj}^AS1Ey^iqg==F5EFRBKdr}7-#Jf%udjox`;KhT6h@dD(J~6&
      z4H{t7Z-7YjX!Xrdw2>g%S<Lx2*T^H<PowVpG8_gwF(tyt#5P1k+99OZl@8w@64qq^
      zwa_$af!Nb{5ARD!iwxT%GJT=}nbrd=HOaJmh%A&fZ=gOQ*{2+z&q)3``te1Ga3C0{
      z0cO)9oW%z|;WT}Om#S+AkR75;9ERfkA$&=WuR@4wfT*$_Nk4=~KH@`$AgYp-Aq1%D
      zd`PvIqHp>Bj(5H%+7F?6CIkGWk1s5tUDWe2)_tZizn-yY*f`q1KZPn93o2?!uj0SP
      CZ+h?m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class b/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5570a67d3e98d32a0905cf8474059ca01f0aa37d
      GIT binary patch
      literal 2961
      zcwT*0TXR!o6kT7MOA`-5TT)w+RxTpRDNuwKkzSBeF41zaffgzXr^#u1N-i~*7M#)X
      z34HN_<LEf!IQpUw`k*tkFgoK8(EsGP_IFNCLrKX@^6h@vd#|<E-upEF{P*YI0A9mN
      z1ObKQqP1-Gmz;8ccA;FUO*!_;Sbc8Ju4IZ!g$RNQJD>J&zf}mA=jN(*O+jT80<*IU
      z@d@8^>|V`w9fuTJE4G!tTq@k7?+gR&Qr@vjO#HO}<w{<=hlib#QyW$2PBl%KNlz&R
      z&y@3a3@vCgunp}BkyM7S^i&i~Y#@Tx7&_4v!AlAqP0|?X#x8PODp#GFQzo63R5~Nk
      zNdqB-CA!zZ%h;_DbE=bm33Qtgx4j0Uh>6=P2KM7sg-}^4Q0Pphn^h)3DFZLSkRa1Q
      zpX6?Js^d<@&efv4JY?W7`dN&X&sXefRiSNSzEtm@&n@;(S}WsL%^Hfab;lw&s*vzO
      zrY^cU8p|8Npu#pQzgVx<POqoipL!-=CjHEnFg>KOeZnc(m+Hk?yK>c<E!Ya}6Xl#$
      zn6fI4{Ow%^YYPrj_f9--l4J~W){>QTYSi%P7M+#XOf&7I<)MO8bU1IpqE)%WKFrJT
      zu^ZVK>2}3%24^D}=h!q!eZej)i74lAo<ta_DYD8fh&1J(fif~UZ*j&_nZ_=!&$?RT
      z08{IFK{g{xw)Eo>a!PsoF8MCiYcko{^d`By3{pncz*St6*{rYgJiG<Z?3Q9JTZKBC
      zvn!R^3W{TvD;L=k=I=^v$w%Q`10&caL;IeA_i;-hT3vAFYUAY<u1z?l_f8xw14H7d
      zkdqLq6v~zBCFT!R3r^0KZ{`gw$l^sScG2RZm*(YmQMP!PxB2=KJ*}E8BF#L9RLMXY
      z6gxz*We_@2&Dznz^%n1{fjcND?6CYzUVo0ovgLXuXP<Lqmb;pa?qNxbBh1pm=VlNA
      zc|6bx$U{b-d=BW7tIhL8zPIs{3q<Q1dQ04}nM}3>9%F~uw~7w4Zw>KPB;@Q_#U45L
      zt>OTW^mk}C`ySz-`3Q+8II@c4f9UM5^K-98JjTxfVhkdV<LKcx`*8vX@do8TNekHR
      zV)EuBpe^C5v^7Nb0ooMY<M=N*MtKgJJ@H^X6c76}lfp3`5r*BZKELgnU$Qy5Hz~tu
      z?7$ewok0TQ*n_i3arFjpUX#1&g8AeIeR6|Z+JLr%W{b8)Xa%*^O)I3WQCeYbiTDw1
      ziTsl16gjws6`4VD>@(MJdYFQCB!YKE*W3I!@C0KcW+Hfd4Hu@9zxidfYp_WIWeIqd
      z^shB&y3eB>LNDGX1<ol6OyHu{^b{_6&==?}h3ssCx`7qeWm`Ibr|a*_vJ;o}_X=0=
      zj$cr4qo5H<o%B*C+}x99(k;mReN#bmq&!cu3oOWKQjl0vEJOLF1vK=u2Yuax?rbb5
      zxsJMl7Sm;vNWa{G(&?jgdS!_<<;iv(H$0Rdi7xS1q`)6=g2#-QdEGt1ly^w37H)?U
      z3v0M(CUm{LV&SvXzaTF5%u|;Q{M;$6ab}j$h838&%jLeuW%!75`Y{{$NkcoXc)Z*A
      z-#YKL!}i(ULQGeZ{tN1cCP-ev58Ym`VNTvH0sgs1bb1VDb5ri40}r^tpK^omYgofg
      z=*z{&mIwAV!6atD?fn{x(_)R9Nh#H5AQG`^ks#TVcm}suFUx0?`E%y`f|<YMqCO<z
      zSCrwQ=3u%wK8FFlWHK22_&^WFcJdw73#!O)U5;bAnLyN(lGjk#fOR|mZ9|DsFTG+f
      z))O4@5`@iQlj!doqQibPf1!EN{kl6`O+nwhV?Q+nhy36^KlrE@+$tjSDYrTP=Z5%J
      VKc2t)nt&hJ%>37;;C1b_{68Y$7?=P6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/VMDirectByteBuffer.class b/libjava/classpath/lib/java/nio/VMDirectByteBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27021f4b646135456f10b92a02db1c3eab115309
      GIT binary patch
      literal 600
      zcwT){T~ER=6g`Cr13?h^5S2$0FvjV##>7cXmP}35@ZwWpWptUF8JonP<&%jI{s4cJ
      z@viX3Vw3jV-g8fTdefiZuWtZn=oOJ;*!TDwHv$<NquZg3#3VM~V__!Ksfdcu80xCP
      z=Yeb7k3HfU3Kuev@g+mPKNvA+*P$cI$fH!j1_}%{TL$7Tc^Ql7iI083(6GY^_eVUE
      z>3)^e;+dQ?^z45uoHOX$_emX-qS?0wwi_gdJMoMMz8LbDQ-wB-gksmY)Lz~d<hiv@
      zS_6}zn~{GuElVk16H>M_D$JCwa>q;N@s;C5Vonb^%(^1OZfQP~(|8yz0)|e8W_fw}
      zF-)R~xRGhAI_sS|NxOzqkWHjRr%BzXeUT!AkfoWUPv{>M<WQ!yppwVfq_wgvAglsR
      h#};Y|>)2M<z|IPr3R`F^>|j@67ki|qAEZt{_yZshj4A*C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/AlreadyConnectedException.class b/libjava/classpath/lib/java/nio/channels/AlreadyConnectedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0231c028cd2a51144825964769bcef641c0b485f
      GIT binary patch
      literal 419
      zcwUu|Jx;?w5QX0)PJ)a>LV$)Mh>jnD6;XmfD1a1X(FD?OoKdo9StEOm;40jL3PHgE
      zXt@9d=RiyhqNAXhnK%0O&Fs8>KED9yV5x=@Ve?YmsL<*pj3>%kHd%ORQdXn8ZXz;v
      zJUYIO`P%8k*5DCViU&s7ao974$IA4ba{LPsni;2BnE|Jn=!@PFfldi^G0dE@ZlFxg
      zmHUJD_DARGjZodwR=a&dd2M|_@Vd!}eUvd5z{f115oyb3`PGoqb2T(fXhlgZ1C)#r
      z{nPZ^L}!Gp=pR4YCHVa$Ph&pOQ;+ta<o47RtB@__dW2<EP?cO0Rl<x^G~HHWAf25;
      h1C@<O)E^3@A<>r%gz)72O{s!!2=izarV9nR_yxsXX)pi)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/AsynchronousCloseException.class b/libjava/classpath/lib/java/nio/channels/AsynchronousCloseException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8e55cf4621a32b686cfb6904ab73954eb61260a
      GIT binary patch
      literal 431
      zcwUu|!AiqG5QhJ0lSX1|Yt@Sv@m7m8NX3gHNK{aQ7d2PermI<ryOK>rU&lA_BzW)v
      zd?;~}iWl+VWoG{2+ka;E<MZtuz!p|KGzgow;z0yjnIK7p)-toffql|Rnj39O8)nAJ
      zqsK(v7s_Z44q@>7MNLh^nf##%Ju7o1vRLMp_2tPSfldjX&}dr-UBn_QrF-=}89F!D
      z%(wQGR>eM{IoOB^PH3jmM-vNe_?RbjBc<h8c{h>yg_vZL(2q>Q0|bv@{oQnmR9V6(
      z`p<2<1pnNWc_NQhWwQ1+I;woJ4&IZ0lCTOFEzTaR2Ijb;YG00R?u=^<xWiX;UTUPv
      Y(dP_o!@&-ET(xHq7SXRwmuhnP3nz4K7ytkO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ByteChannel.class b/libjava/classpath/lib/java/nio/channels/ByteChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b68871ff3a9989dfa55ca086e2bfd41aa1736bab
      GIT binary patch
      literal 211
      zcwRg8Z`VEs1_nb0ZgvJHMh4le#Ii*Fyv%(4<c!3;ywsdxeW%KjRA&f>oq>gsK>(~I
      zCowNw-#;lUHMxYHfsK(t6;oqSYGO)aQcfz00UTJBh8Ja)pebc!;0n$!ElN&x%gjjy
      g+KMEl2QmO?CnEzh0}}%)13Lo<FfwogNhSs^03F9W?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/CancelledKeyException.class b/libjava/classpath/lib/java/nio/channels/CancelledKeyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c5ca90e8df1e41d9ae5dd96911feba7047f6a57
      GIT binary patch
      literal 407
      zcwUW=y-or_5Xb)m2WL(Y#E-(pP$?E(jK)S|b83PT8<c)ICa`ARBX<i?AHlb=GO_Rh
      zd=MYQICmN=3!9nw&;I6X-#=g90PJDSM~Sd?tL7@SItk;6vX)I2M#{!)4394P;p{%<
      zsndz|;Sn|q*eE*=y8?`r={x247a}w>PPH-vPBYOr-BSWx5b9B4GpDQ@C^O^A)5rQ_
      zdp?!N>an)koe;{~odLm%k`V_eW2uG!i-bl`TfUmz4LQA5L&JntFNtM<k};xxlAfFB
      zjL_-*^O_?<&`)M*%;!3<-}sZ-&AXuu*-m~;C{$1t?~5v7K_bex6kC(bexZTN&I{_#
      b1=0{3hzAbf;Sf!UYTpo+(JGp*6y)j`Na|wl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/Channel.class b/libjava/classpath/lib/java/nio/channels/Channel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10201b69aee01bfb55e375afa81bf72963c951b6
      GIT binary patch
      literal 231
      zcwRkD%MOAt5S%JdMO2I@|3EJ`ego0O69*Fy-b&LbgtSD^_-!8i06)sO#m8Z@yEC)1
      z^L*VO09J@OIt;TyUZpU(73w67(Pb@?&%og^#4TM)a};S-Xw`5843ie6o20b0mRYG8
      zg1k;EZ5X=q#eu<Bj%v3(L%6;vT{XEiHOG))`ZL(3e}+^$dpRq;$(>*Hjj?o6`bkz)
      aK1J_PE{+~tzCJ=i2ZVamBdU>8VEhJDw=^OE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/Channels.class b/libjava/classpath/lib/java/nio/channels/Channels.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e5a6f2631cf9c10859b4db38538985125cd70e3
      GIT binary patch
      literal 2520
      zcwVhl+g8&+6x~w_wIN(YK|l}?kpkL^crSubKnevE5JaESGC)`*Wu>W?S3kgS(HCLK
      zT7G~Z<?>82Ep3`0y6i(|lG$gUea`I3{QUL(2Y^w$4k5tMxv#y`VuqfJW%e|~;MsgE
      zAtxaO8Jg|&tY+-SR?_=CV=>f?>xOPkFw{hbHW-45+%{KGgRqKP)G;)rbb~J!4$|CQ
      z*V0+e(2~k!wCsjv>f%|x3|f17o}nw{uOQCQXz=$*<FH_@Sti#G7$zbf0jpfw7Oc}B
      zEiQxOLk^B$W$|$Z7jY?s7D`-Av$0gntfCQ341vrZ!{9j+QspFerC^n*o%B+>Y3i20
      z+HwM0Zik9CT=CZ7Ma7_y4*7K2Fjpgn&RJCm*BE+sjY6!1FQbtt1>NWs+uz5~?vszK
      z63`8XR?p?rR=Hc?CDg0z5N<N`RtPQUDJdO5L?|6%=<v%(QfqPrvU;00fFVpB7Tw||
      z!`t&ZvI1u2xh0G)#u=WWGi1h-r!H{Fsi+v8(TbuZn*&e~#i%IfE<@@+>JS~+<{5^*
      zKY|(51KpS|?Cfwep&c@?B*Wt0X|caA)Lh-zjaT(R!DCP(o{+Wtw5S-zQ-;t^&Ro_G
      z=;IQN_!4`B+bJehJj0Z8cw}u1{Sp7DVgnQ~BvjnOZTdE5@{WL(>imvtgmryg<K=7L
      z{If=tYaDWFR?^2c4nV;?7KLk4KCbyk9l|x-IMX#nu#ZLj6MI`k7A*GfrHWOoIr}HG
      zoV|ZVDPsR#shGoa3SP?<%nYB?#SPUU738CWg04&|58@X_KwNe79HOT&8X1kX!$-LA
      zl_miw^smqevQ!WW)YD9LKr}Yk6m-Ezf>?>*7|mZw1a<byg^J+IXtjgsLhuM~cL%S!
      zf;;WttLQ38ud&y{C+OZH`8{reH)RB2Tt~koxKT|oAP5HC1nCNbVT{-#ofS!tBweDZ
      z^(TmK4Ucpk;f|XkYg6<(Fxdey8^b+&y&m`RfFcC#LrFVDXwm+L;gMrJ`i6<XF{a(b
      zA8g__2UsF*zzk+-JuDnit#aN`x!@-I<WkuwRW4!KrE(4{J}O_3%5^vKXP3&(3Y82S
      HHh%Lrvt@f`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ClosedByInterruptException.class b/libjava/classpath/lib/java/nio/channels/ClosedByInterruptException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd381b3f6c8f074d3e5af1ad55e3e76992e03e08
      GIT binary patch
      literal 435
      zcwUuIJxc>Y5Pg$eJ~%HXCfeADor)w##6}S`Dnt$&HT~wYkd<>c?Cy#A8~zg;g@A&s
      zKT4dOVx@)6%)H^fHy`gGvsVB+SgD{u*uD{WqNA1RBx9kqOkJm!8Yf4`)4ul7+HB%a
      z?-M!k%IFG$Ulm7gs*|xb+GH+Q|0oCzC#@3cKw8K6x_?5Tb3(0WwDUsyfk-o1dV6|#
      zXw9laLis>x<qrwPjm-fe=$VlWQN&_|5DSEQthBtyZimudiD4=U&DbP7K=2sG-_5{}
      zl_Rv{|J=7v2ro@$6M3fQCTo9F+jC#6gZJcb5>`<{nRA6v0adPOzAwj!JKY=urLAYw
      c9&<{aW5^lUMSwjtxQf0=SVA*5ZRO16Pc~$4+yDRo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ClosedChannelException.class b/libjava/classpath/lib/java/nio/channels/ClosedChannelException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7934e83faf1a6b5edb3b2cb4118b8512e9b9fba6
      GIT binary patch
      literal 398
      zcwUW=!AiqG5QhJ0lSb0i)>bci@>Yu&L=Zs{B`QRM9@N~o=|WfHZpkL%llUH<1P_8&
      zA4;62;>m-TnfYfw{+Zd&ueWyqyIAwkAPn!tqX@M!VKx<7%iM-hZmgU{3wi#O$yuq4
      z_TUf(HO+8*{rf=ZSy?ENr?RlD@8UB8T@pHx(Y6%2OhsNvH#j-nj-T5fgw~PLsyrq%
      zhg&JZiOfX$Xks~lk2ay3C@rt5hp{Yf#W<IQequ5nAb1SxpQckzl_iXl|DJG2@NZ02
      zWb#7I4L1J9cIJNA1n<WmMOcT67H5xD14~@dd{2%6clK%xxT9BeUTUPv(dP{8!@&W1
      QTm=gVE9lpzgPL6Z29%v%VgLXD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ClosedSelectorException.class b/libjava/classpath/lib/java/nio/channels/ClosedSelectorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..086e705d832c21793952d8238eeaa68b619dc513
      GIT binary patch
      literal 413
      zcwUW=ze)o^5XQerE{R+c6QedNh@DaJ5XDBZi3*Wm6Af5yE<>`i?#kVs_*zzihz}t6
      z5*EILjW{{QPOzDoZ}{=epO??aX8_w+te`+>U#VLaS?!{DqO4_;Mjhi)9`)I9>|Jtv
      z7xRtR&Q=f*R&(4aJC3@>@K~9?SDt?%LNnz=D>L9E6@Ae?BG4(J-f=ed%KCva8J8}f
      z-ao2uugiq;fwtNo5{m2X0U_wP5r-&ZwuTT@LZhcGpJmrWPR`ZPFrn3Ru?$c$M)XfJ
      z@DrU9HhcfRXP*%EU6#arqNffke{fq<N320Ml)n*{P(oR9MN|PZQqgo%i8bl$<Qgb#
      fJfMD`BMph6WMCHo_Ry57_6=bUt=x1zCl|f|#kyx#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ConnectionPendingException.class b/libjava/classpath/lib/java/nio/channels/ConnectionPendingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..332739cb8e32fe9b6241ecfa6cc2ef9f9c2ff38d
      GIT binary patch
      literal 422
      zcwUuIO)mpc6g{_{wlZ3+V#A{B5a~pSO@&2~R2q?#?q8=j?UUy{nRykz#MW=Hl34fw
      z{)B%b?hLWBu({`+n{&_oc>jET1F(yg3JQds8+ETDt6daNm9=crsOtn{ubsVQJJxn`
      z`VjM7#w!R2t-Ql1JBfP6@I;w`SDt@GghtAVR%XaaD*U>4LZEX(O^j2otRE^f<I>v4
      z@p|X+$q~wj+G>A9C~j^I2|?G5IYbc)RfL!))ce}<#q4&($(0%zCN%plmH|q}2>&St
      zeyUSKyZ@h)I)rfGW=YIvIx}hgEp2DM*nsRQ4<xLjgtA~oSOIgAQMRwds#NxJ4wSZE
      eP<zfLb%~)Mu#W%-Xh>H57GV+1+;k~dE`I@bF=>4O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/DatagramChannel.class b/libjava/classpath/lib/java/nio/channels/DatagramChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca3ecb35ec4dcb02432329051304dfed35e465ab
      GIT binary patch
      literal 1817
      zcwUuN+fvg|6kVr;21*sVgNPOp=>-X(;-!EVM5hc2BMuKb4yMTgj+Ug8go^L_AwKz{
      zGx~y#4}5?R{)xY!?vp~HZR%h<Y0lY~wb$DFr1|mt`#yjP%&7=548GKhx@HMmGq!Zg
      z;(1rQr+fOQqi@fb3@Q``tv1Xp2rZLyJx4dZRi5XDr|0s#oD^mls7;!C;~j-GF^trP
      ztQxxKaYtC26~PgP%eBD|bZ@IVmLWVXEaA;Eq~c4##7l&2XT`CL!sJdmvBsdx+a`~o
      z0j*KAAj;6XBrN`DXFJE8CsG_k`;u+w`8C}Ua(`e{ye;7}3<cDx>Sdatsc=w|;l$*q
      zgk9hk!*D!tq9T!nU4s`qVOy?>vkV=666Iu<%bp0%;k=50z`h32h@ul07?Ob;0(r|4
      zgHc>W4^fZ`s+f{4hwCOoU;Nn-rX1zm&c=qE%3=h>FNz_IF!aWQgR+EUx*m<7I~az6
      z<>*?ZOVCB}jjtWyaS1*i#h3(FT*n{;)v$?~;W5k{R^y(wY8$V(moZI;yKee~Gcbi)
      z25S-Sd}+-|ZbLlrl%c<l=xjDYOjU;)TombeX?0}RqbId+i^_}#C)SlkeF?k1Ns>E;
      ze<-dLFAs51&kJ+8;QCr9FS2UyI0nBj<nz#3)r>I-qzqEC8|d2z70vVy)CxsDWn?`?
      zyIF+j3xt!YuQ>gMRw10B--vHbQ`R)vXw_YcLOVJDf7OXD!e}N>5BYk@rqI66M;)P+
      z{HWj1zlYf8GHlp)EclQTu#HaGrJD3zD%(i+SaYUfO8J2HSTfb6OzvU$ot}BCur4LF
      z|NhUf*rzgXw;%tIcFSnO3XxmJc|7*(Bng?Y%G6_sBSE!76p=)V?u}G;6jvy&jSl61
      z@X`Lw=Q-`xiO&n-vrg4=b@)uw<3n$NNn9mgnGad6QNt@O*D(e8wixmof7~;K8&#H@
      zxK(AjO=GUKOk>8!8>_(^tHdKcv$%6`lt$?;ryFYeh{}2Y^mRu|-UHnXcl}-FFCnOr
      AApigX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/FileChannel$MapMode.class b/libjava/classpath/lib/java/nio/channels/FileChannel$MapMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d7fc068624edc1a8b3887eb6a2f2b3a8beb584b
      GIT binary patch
      literal 786
      zcwUWB+iuf95Iq~a@dZ<g2`Nynz0f2`L_8n?tw15PlEF=BS_Sn9ImT*Txi+$0K8fc5
      zLX|+`1NbP!*>yyDLRj+7nc10hW@dl>`t}3B1KcxE6IeM4J_Ow~&br}Ykfu>mbT{K9
      z>Q~P4R`7l+dlwnd1?E(05~K&+?eS3*mIC6Kzb9Y~H+nDLZV&u@fmQ#%DAxpRRrO}*
      z?QIAcuZP~KCy}`xCUF{<PX)AAdnBOunQuejf`d6+6sWIH@Aa0~9$CD(<iLO_(Pal#
      zh2|aDFj?itX*4)F9!L3JFis)?*U!Qr83lPPeHFB!VL{S6vh;?78Pv&N9>xVn4A@nf
      z?Us3*9tbpAZU1Z+RdmgSVZt(DbFSU&Bo8AwG`IHG?Du7rfaB50`$<p~QDLA>y??HZ
      z%b6|>ci5c9=hOMKL!MXV;L2K4Yb&eqJO_vQ=jjbp6|ndnVqZJO>=(Ea>Iya_oKdj(
      ziCHyV;pr-sM`U@7CZ16HA=%}v{P+-4?oCEy%<i1xT4&)auAgztD&1#f>aoA)s=ire
      z<EH9UqFbDVTgGiQpXA(Oj-Z|Ie1`iGb$4+>)R1Ut;x14A2sF6{z~d5LlIRti^3mY9
      XQpl+&rb0EWsPisXm8cYKp#$qT__T>G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/FileChannel.class b/libjava/classpath/lib/java/nio/channels/FileChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a96eda959342c6c88a866a4079d6f1da4fadeda6
      GIT binary patch
      literal 1821
      zcwUWET~pIQ6g_KGN@EZNtYAe13#2VtDfn4Hp(9Q+pfiFngHIt15^0mpCROpppW~A=
      z`hqh)@B{oK{tNYPT4|fM4DGbLdvfkQXYbw3uRlLe0L)=Ef(r~|@AUV2#<rY{aiH6_
      zS#mRLR>{oQ77<7c*>;Lsu`(-ruE%x5E7+dNd9~tMdrfgY9aFC!c@0W0!*o04x$Yg9
      z+_K-caAk&>cJ8L3dtQ*t(6eaSmbc6hQj^;ZQr;<=GD7HAa1jba|GH(HFRJA|lW*x{
      znqhF=G4#^5&MmR7gOYb(xeVj$XO<{OGG)EOu%@0(Ol;_t4RVsxv}A)xV8tv7`>WOc
      zeUno<`PoOqq;fj88^H*}kWVIV;pOQQa_3r~On-|SL-+%?JX(#aZyKqak|s473^x?S
      zG0qV0!YUL*F3IHvZ9CSP!!V+DmM94Mj*m3)OyZ_q6fUL}B!mm8=z63xV3jMSe93Ve
      z{R{6q+z<^=cm4jA9OIDOtH~|}rsf^y!k_=vK0@QJf;8qBCR9z^Ju{3U;_)Lf6>$p+
      zvLddx;<#3=&XcOvEkWZ1$aE8Im-f2lFwBx@hlm|&kvLdQM>Qwvt^AK&<4##bcZhvO
      zwF}15F{0>Rk5_HF22?J2)2UM3gfl8@lfgS8Aqf>|!Sf~Ebxk^1PZ_4pbzrGP^_et5
      zH44!;j0mFi7KuR;SBlU+TFukQXbh)*;L>-RT)+VR%QOP7iMoT!G*fCM3}Oi4{W6Rz
      zgv1DwXuL|uD6Tal6cxvH%F;lD+!D=2=4dJ%N}n8K?CYsyk1tX6<zh8bP0pX)1nq-l
      z;+PBw$8oC-84n<dR)jPX=P)-FH20;8xtY4TM4P!pz?=ltuVphQiB!N`8nbQY7U~}4
      zRCE}(L&wN`3%L8;)G7J2Q*@^S*|X=#J|D==`Z{LMwq_^fUh6sVk^2GU0UidBM|d1S
      Wa;;J1Wzl!Egk|3W!xQ?gAo>r2<#2}p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/FileLock.class b/libjava/classpath/lib/java/nio/channels/FileLock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..605380da8ae4a82f02bbe9dd30748a6c16b1c5e0
      GIT binary patch
      literal 1781
      zcwU86-%}f96g?kF*iE_!gc3|q6R6hwsHCm6Dzqr1KO{y_X@jlf=n_7{w#$aeCfM=C
      zM}JRs<i%;HufEh7oslqOXY|D<|0u`veF<R<Vfp}j@7;UPJ@?$3{pa65{seFqD+c-m
      zPTaP)?VRUSbL9=&^Q7zNt~#zPR?Bw`1O<lld)M|Vxuw<HvRoH1+L;20V(;pF%b5`{
      zx2nEVcdDL%C<p|7=QAnL?{C;OxyINnIu{+!sm}_$ka_}Kp>Qi*B1pcvCL;)7$byAo
      zfj}x<GB6@Ac|dl-b!EkN=W3P4ru6Dp?v~}2;t@d<LtzNSEQHXntfws)FqL(}Lbzo;
      zV<CcL0)s`zlZ%bbRav`kue#(Or8Kr%vTKg=+reOc!|_>l!~jZ7ieWf@$#$JJ&6txL
      zHR(#*XMLo@&o^*NU_|2(W?`xGMqnb9ezM?>zuXqrtZvJiYj2TQC{-w^j_k`VnDy#%
      zz2<lof#ds-TC`Sl#z2nxbcg2~>+7<nbU$n199||)Mb`7K?X$ti|8R70CW2S+s(}ks
      zvFnwE*YFbOXZ@nR$z4uiTJ4hjM^lISq)R3)@mM}oiEmhV6LUNpduvO29P@OqibJ6m
      z`x%9hR|uB{##4nO^GsZ2!)X(5k!G@Wt|q8mBq{Hf-G=XMleR$7!UQHwEUL6^wcL+P
      zyekk+I$q0F9pATbS`8dnZLIU&j%rHu<!Yl=mTIK}1N)~lrSgLlY!~1!H^>X-<<g3(
      zyVcKd`^lT-Gt3+d1I&Ml-a~o@pJy_A7)*wD?jsTlhIby|*keR*?&0`fnd~k`Gs#_y
      zWn#fy#51G)yBPnCHGO!N|0gy2G;uCr7_*2|zvnQAlbA;udE{`JK5(AA*arzD0c|Os
      zLR*SypSBd&ptcm-etu)9Ak??!B+&()*E8~SKre(B+f(HDR7j!B?->2HL#+k>fo^ZL
      z658#Dks|Ej;_*ja#h>&nP9xJU-ejJdE0JLJ82{q-&O?L(j}jBMicm>9!2{TsPTyd$
      zgCX3(I9$d(-6pA5nCM89(8369DPaO^Z6Mp>-Phqg_DdJ<PkZtX_biTg7k}Qfm`B<!
      z{+mqHy4D_J>Sm^iGfkY|!|TOt^kNgUD_KRTiTRam^vb>;SH2SXCk$kx*HrjtM6%HZ
      zWf9_S9e<}2U($t5ymzq8b7Ta3fkAvp6~7{{uW<_BaFlOx0pIcL?%^7~$0B~<&VR(m
      Y*wJ&uT3p+64B`fsab55HhQ==a2V06!+5i9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/FileLockInterruptionException.class b/libjava/classpath/lib/java/nio/channels/FileLockInterruptionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d7073eca2539e1d38abcfee661248f6b4d5a218
      GIT binary patch
      literal 419
      zcwUuIu}Z{15Pfr(TqNea^G+K(t<=JB2qGvpr$QuXp{C!&g<Fjq*=$7o5dT9F1PdEG
      zYkU7hoJ6q{Y-Zk@eKYfB-#(vT0E{s2p+yMK#kB~vD#C0cw3c}p?yFqJMRpNsD~+kH
      ztSa>0O(q-Q!66KrChm!jejf<^QW_=lM4FQMX|zkA144IP=+X*p6OmWaP48YG-yd#2
      z2%T-EmE9q<msb*kGcL}gk2Yok_?Ra2Vx{F_b(u<YBGOzE25gHL2wubdr|8&;DhZ?b
      zpO<VA{NtiBnXF}mr9ahc^>i$P-SY1d7T}`8*<;qi6eFr#a}2n$-f+NOeM0xXk@PtF
      XoPiBE*hHUE@GZhD2F=i6qn!H!cmZmB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/GatheringByteChannel.class b/libjava/classpath/lib/java/nio/channels/GatheringByteChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a74b873ea691d2b2d5d43c6faf9c782d47cbc7ac
      GIT binary patch
      literal 324
      zcwRg8Z`VEs1_nb0es%^XMh3O4#Ii*Fyv%(4<c!3;ywsdxefPwYjMSpcymY6^l2m7i
      zC_4iSBZB}~ZBAldy1su>R%&tyI|CadgDR#8;YFDxiAg!BNCq%6u$BWwQyCegHKKjs
      zT0knCO4HI(i>y68HN6-axLhleQwvHm^Ye<?8Mql4guzOIDn0$-GK>t8ILrW>5S(9H
      zl$`38nFF*;5}RlAKw5z=XJlXoVpd>iFadqX&cFfWaRPZPK$;6I!h<XV#JnK24153`
      CAyp6n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/IllegalBlockingModeException.class b/libjava/classpath/lib/java/nio/channels/IllegalBlockingModeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f65eb9869efefe24e4960f1187f4a0a668118cb2
      GIT binary patch
      literal 428
      zcwUu|&n`nj6vn^P-nMexY84wB=?)7eR{q37kyOg2+}KX9Njr=gxp%I32Mf<45fTdz
      zVCPlDTAU7IC$Tx_d?&v--<k9B@$?K}1v3>C2uo+;O0<l!tz;;SkveO2w3Y**x3x{q
      zl^Gn^Q@MMc$V;cJsURTC`8Qga!4KPW!u>*odL~mPbS%@1^>Js1K>LJh+nUS?<6@z6
      zS$e&HJGptkeIS%Kl~HbsP@G?g2|=4ZLliL)A;dVL)>TFx<`;dL9*Mq|ghtmUY#`W%
      z^>;IHLzNMhyZ`&t1|jU(JWb@D8jWfG1^a`c3Eq{@NSH+lWzH2=1&nb;qn$ZM+*$P+
      gC@nssdgqZE$B;9yh5+lRa}|9-m_)-5o$}=LCmVrnpa1{>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/IllegalSelectorException.class b/libjava/classpath/lib/java/nio/channels/IllegalSelectorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33234829f0bd51c5bdbd4070f169f66323011cb5
      GIT binary patch
      literal 419
      zcwUW=O-chn5QSeQlSIbE#Hbs=g|0M+K@>NNAW<P2+(c*J8H=Q)(=9VS;vKw&H*h5g
      zdH~O%*AOe?&rWbtRj>GX_4E4i^a5ZL3l$Uytt)k-+E%-EJW|%ON!wjxc&JRD4aeRk
      zN4GIwd+lrm0bwQQjk3cZ?jRXvW48X6BQ#P@v@#JVspyODA%RW^wT`o?SJp?$WL&z7
      zp8e_D{X3z&r>*w;gyQO2L<l<Wl0y_RQ$>hrLcOOgpJn3#C+BKln9%IGSOzE=Bl^1;
      z_>oQt>%ITqv`Yy4E=yuQ))R}Rzrc-&Czc^Q%J&G1D4{I5BC3EXsc5pR#Hw_*at)MP
      ekElK5NL^wm8Q4aE9W<n>enFT;GdG>f$@x!kOKH9U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/InterruptibleChannel.class b/libjava/classpath/lib/java/nio/channels/InterruptibleChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..309067b764d84a8d407f586b5c36b8f4d62836b1
      GIT binary patch
      literal 242
      zcwRg8Z`VEs1_nb0K6VBsMh3O4#Ii*Fyv%(4<c!3;ywsdxeb2m-)S{x&f|AUnoK$Cs
      zC_4iSBZB}~ZBAldy1su>R%&tyI|CadgCwR2P)&>stjRg~#i@)8%o>_uj0{|^70IbU
      zWApQh*%`PQ8HB+)ff_yi;W9u~!TF^{$*FFcIY5n)*c_t=(g(B|Xf6=50)4{>bR9bb
      U2av}J<goy0E+FOsvY8lo0eaOw<p2Nx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/NoConnectionPendingException.class b/libjava/classpath/lib/java/nio/channels/NoConnectionPendingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..727c3bdc1133345a89a97158b67ff76161eb5fd6
      GIT binary patch
      literal 428
      zcwUuIyGjF55IvJ@va%*7Mr~{)om#kxVxx!<6(S)B(eyW)A-QtBS9Wj2(hm^)5UW&z
      zg&*KI_$}gO6-&Wp=A7ZonaBI*>l=U_tb`~KwyxEkimi5WGFH~I$>OeSIYEin&R(z`
      zYCAf;PxyAmLj;7iyvHazirdEUNSU5jo_|Gzdd8_%rq5|6{HlFIpmRc1j5DvS?<+Im
      z(&NYU>EZZU6Uv9$YJWs1u5a`SLCXy}LJ<oUM3^VkI@)q~ax>ucQVk3f8XcF&03~CD
      z{}cm1))`^D^S`4G2vN^X(uB|S%%=I5IDZ(LkX_}CgjJMKmK+KzU``Otc9vL?%5Khq
      g(&h`Q(_B)M7)b{95MUp5L6vV27SYH}mvZIu7gD5b{r~^~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/NonReadableChannelException.class b/libjava/classpath/lib/java/nio/channels/NonReadableChannelException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68f3e2d09cbc09600d12c9e9aa59a9149de2b8e9
      GIT binary patch
      literal 425
      zcwUuI!7f8V6g{_nRe4&iV#5L(LBfj=8)8!=m8J`&`|0aVJ2GbEy{Y&R@dbXsN@C#y
      zSo$Av->X<kZ0^11<jlF}&imKv8-QIbmQf&VU#mM6S?!{Dq^xC=MjdA_SPfL)aC5?)
      z-p73FwX<aegq8e>QFa)$jNzd&U9UX<iU{?T6Rk{-lT`3k>x4k(glf~-)GO<I%8a@6
      z`A}b9e)@PMOdV;f{V}1qvDqU8O*h~WMa)(ZVuny_Ys;PSO`ns?EEb{BcCjo_vPSR^
      z8TgS-2~qoBHyskft{W#YpXtnH^$+b%=8QE+Qu#x|5=xkoUKUiqv`myGmRb>JFULS>
      f>jl;4TvC%7N(c54-~e@*Diaar(8x{abLGM}7s+a3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/NonWritableChannelException.class b/libjava/classpath/lib/java/nio/channels/NonWritableChannelException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..479e770f2f12f14c32f75301c183f8033b370fc1
      GIT binary patch
      literal 425
      zcwUuIK}rKb5Ufr%iL4tFqh7qIHx+aViXId%Q6aMA5);ppbx20W8QGl`KjRk!Pl5*@
      z;1|S4_yEP;jd&Eibaxds)z$O*_51>$jink&gsm%aD?+1e7*B*TQm0|hnu|m^G19U#
      z<xcKmdE=BdHF$)T;)xb!9Co#qW1;&_IQc6gG*g)<p@%X_84tS01Ue(sJJzI57&jC;
      zla>4TkHP2u!yBP`sEl$)g!1~vkl=OfrSwt8TmT=lghr%{>}A&@nVjdb2(8G*yg=|8
      z#y_OzCMqR_(Z6mwAozWoC9ynJxy$Mw+U?vKYv82(hlFKRP~~1@RKg5TlqcpIFtbx&
      hptAXd`ePw!aP_$ZyYR4wCQrdsgn6_I(}hC0_zikIY@h%D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/NotYetBoundException.class b/libjava/classpath/lib/java/nio/channels/NotYetBoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd3d9dc64d7c2b528db47a4dfcd046d9736703db
      GIT binary patch
      literal 404
      zcwUW=Jxc>Y5Qg6|mqgCQ#HfWfqKHHb4^eCs5#tAukR}?i++2oaW!;s#J+by5SqT>Q
      z`lH0jDOMIXGxHA5e13esz5&?5Vi{9}ja&7gBCA~#kCnA-(x~hF4f_+9+2Pq^%=cb9
      zTSh=w$yuZ9C~6zSBV~GCdH#h6^^_B>OrMif^mY4`K$nDS%h}W`>-)-NTs$7HU#z`n
      zPlVE;w%Q*N3eC+vA!xZFhbUmSf)F!=T1Q*%W_JTluGGLVq0w=%3{Wyg^iMMIW1SM3
      zo&OzkKnQy-OJY9Plk%m%pzTR7tU`8^cM+CRL`i&E)D)&AqREb8E0WpGHBj7oLG?LD
      aYGOn2z#anZqb^b98^RnKdDHovT=)WjMq#=D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/NotYetConnectedException.class b/libjava/classpath/lib/java/nio/channels/NotYetConnectedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2da53ee8f27e21fa892a661ce185574cae18425a
      GIT binary patch
      literal 416
      zcwUW=&q_j35XQgJtHw>!tRR92cO}s+iinCJtiTXAmeBHe9rVQMoVfQGJwPwiDrnII
      z^hB+q@fPiZHZ$`LKfd|%{`vX_U<XSj<Ot1M^`IiFT@;U%wQSO;>--J-mJ=0w9-cqO
      zeDAfhB?N@Ej5o@TqP8(SQl{sX=U<3WOF7ZX^f^gIU$@T)bV;a)Vd|CjePt$GINd&Y
      zI&3U|5Q@jzYJWn=uW$4TLCXy}L>_ZxgqS5%JKA!0ayQ`QN(~GX>Kzx$03~BY|1<+X
      z)+u4L^Z$d62w~4nl9(^_)ME87aBJ#`24qKh9bp9p6eX8L<uD@^O?Q=8md<XbfkN{I
      dmFEnpN(?0fdkC<PnpEX)2=l0CrVAOl_yr2mW;y@>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/OverlappingFileLockException.class b/libjava/classpath/lib/java/nio/channels/OverlappingFileLockException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9ef46c9ecd31419055405cea519170a3f76a426
      GIT binary patch
      literal 428
      zcwUu|zfJ-{5XQfO1I&5IAGI+ihE6R!jei=A4Qc`*TA){&EawDPmOXN}5MRs6#KH&g
      zZF~Xaa2iV!o0<7$f4lSTynnvF0XV>V1qH(1qnfMG>LiRu%33yAcr)kJsOePO;gvSr
      zOXBh6Q_NGR6I+2t*vju1WrtzM7#=FqcgpcEM5t$+YGoo$GtqaQ3j%cs)plYtr>u*V
      znQ>`z-0dEJ+&2j2Gi|jyClt4LB7)aW9@s|_D*=2g6KXwe`Fb`PaC)l-h6zovB?FX<
      z5&hHj+(>7H{oemRbxQF2$t;a|aYShS1?LMx3*uGQNZ3FLWyuv$1uRKL3(pb*=^W-7
      hDDA$W`kW&*iN0ju2p&#Qmn!&%&_FYPbTuc}z5q|2Yb*c&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/Pipe$SinkChannel.class b/libjava/classpath/lib/java/nio/channels/Pipe$SinkChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a960160ee72b8eeb545ccaba7e28a078dfe5128c
      GIT binary patch
      literal 676
      zcwUWB%TB^T6g{_83Kbvter+^pM2wAVh=~$4Bt%ItxE{(xMr+$lD~bQ)#+8W+KfsSN
      z&a^~{uy8Xo_sn@^=JV_Q1Hdu1EEt5Hdp2N>F9OHyGvDW4<g`S{OKssl)KkQQNpQw_
      zQ7D|#ZWK%A#%=C#H)dUr|A?}L-Eq;a6bbF@IsT>Q2z%qyOBVOJ6#m@^myoRqU&JSb
      z%6@Zlr?g8TTQV4k9+%Z}hhWx&9=DOfOaXb=gt?~h`PI{7m&+Snh_KKMT;_F{6nY+l
      zX51GMp)?`u?>kiqxp0_C_;)*{8Zb}vu0xfR*)KN;b~|{IF24}EL0;z^X){8hp^RkR
      zV^PE-3mb%$$-M~EBhAchC~Fv)f~Ef6fT`a=Vbf|lQL~};>_O!Xh1cYMR;_k|R+XlP
      zIdxh|S(rx=NKOk_R31evVR`6vsCLp0*2|AiHbKr4k3xDo^e~jCURSY}<Z10XHqHDu
      D^24Si
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/Pipe$SourceChannel.class b/libjava/classpath/lib/java/nio/channels/Pipe$SourceChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edeaf53b59355bb7b1809079ccfa1a980150a5a5
      GIT binary patch
      literal 683
      zcwUW?PfG$p7{;G>-TaqkTG`)AV5J!?oeiOcK#(#GFP+A9$cb%NW>=x_)TL9<p%2i9
      zie`2t3q5q1nfION`MnRre15%u064>50tTV<$R^Bkg=g7A=DOVRt+p8PQr8<xn>V6f
      z0w%$lSNbDiUG)7xGCSyUhuZ<`J2O+9a4>J`a5m7g%jaMwO%jggrCpl^0hhvk_$4O9
      z&xI?3I-y!_Ee;ih@nl<i6EWbjR_PJUhBx48#E{J(g)|}85-z_UKlQo1(}@U$mS;1k
      z$E48pv}p!I;S&xQ%$k3y8X-BFP9^+1pK?u@BL+7kH7QoEGzsa5dnI&+l%8~|VT4Rm
      zfn>vBzR_m7A$q3m$+01<?I1DTyp}v3tQ@?}iEvu@oYD4Yu<LVnSui^cQTGL_o
      zR(U$esZ%jhVHJ5GJQc8}7<sH?W6C;FJ86RX^23RTo%@iHiEgJ1LoxNbiLG#+_HJX>
      GOnn0bcBxMQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/Pipe.class b/libjava/classpath/lib/java/nio/channels/Pipe.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a056fe7feb0cb9b2bf0dd6bf283e582a1d74be9
      GIT binary patch
      literal 812
      zcwUWC+e*Vg5Iv)@F=@0~@Aq5P)(3<5sQ6M8grbFt?`gW&)wl^s6+cT~RDAFQ{3vm<
      zm8w`T3GA86nX@y?yu3a=1K2{zL=R#7+`IN%B}3P5dP<2PajP;CCJe%m&IO)2bC2ui
      z!fz2WyHd&49-+5bIwct8upw;p!gA1u3?WyMN*rBX)<t~c)dNAuS3=(lPQ6&B{(I19
      zHDyAWtaQJ9hZ$ic6k)np`k7<z-}oYG$xtOG@`Mr1Wa8m*Cu3t2<0i%kYu|N}NV+u<
      z@MK|Jjl*l%5V3;^OcMH|cb~A)wTEuCJLzrH4rY*Jg>-_nQywOf>ViA?ahO7l3FUT#
      z2g@YkRqS(N@s|os`KYnmfdiSoua#0Z(@KJK$c(rgcu6AooeG5IzndUrKY1qB35EYO
      zLKyhs8%y9_LHZf|^Nz4@vbW7hjC~sq=)Ys52R5HJBT#2*16j75Hi>b7(ZV2d%ox&g
      zgkdeUt~r4Dh>?3t-FCz>I&rCmSe7?>7IPZsv7lp%`dq>?W1g)Qu2?lJtT7f1>kSEC
      B#Nz+}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ReadableByteChannel.class b/libjava/classpath/lib/java/nio/channels/ReadableByteChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48e306ecf8396219f62232c8918881f1f35ffc40
      GIT binary patch
      literal 260
      zcwTLf%MQU%5QhJu9O@E@4G$n;qp`LlBoc{)CpbN(v}sPIN_aI358$E1xWtCVWNzR5
      z`R8`OTmcMFSI7}Mkv?kAhKXmk+FFkH-jelN`!SEs8IRvX1&7dhp|Q3bZ{bI5GKC_c
      z{VVV}A~>l?5nA2(7kY}04ne@_us0*Plat|H7AAJDP$4v5pm4LrcO%p)Ii!ZCVa%fT
      f$6x<>CT0kEiGut`VpyRhU0FIuvMW)QI)~Z=`tU@d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ScatteringByteChannel.class b/libjava/classpath/lib/java/nio/channels/ScatteringByteChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c5b95e5783afbe5268c008d58825c1cef17cd21
      GIT binary patch
      literal 325
      zcwRg8Z`VEs1_nb0es%^XMh5k)#Ii*Fyv%(4<c!3;ywsdx{ov%pl9JS-%)E4`%92!P
      zh%h??3nPO7SaD8bUb?=2QdVkm2|EKDBZDfY5kaYmDTzrrsYnJeGO!c@MHv~SHKKjs
      zIzS4XO4HI(i>y68HN6-axLhleQwvHm^Ye<?8Mql4guzOIDn0$-GK>t8ILrW>5S(9H
      zl$`38nUl)MAcfU4dLX?(moqXj12HQwIGBLGV`tz1@;HG!79h<97U4k_0b*W|S_VD<
      DYbsSv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/SelectableChannel.class b/libjava/classpath/lib/java/nio/channels/SelectableChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17aff976a2e917ad5436787e4976599dfc076e4a
      GIT binary patch
      literal 1112
      zcwUWDU2oGs5S&ZgB!oaoTgq1`Ev4Y35)mLFq@p5-h!jx~pr{XhbDSf+#`vPM6VZPK
      zFCg*258y{3<{URg3Qg+=@9pmF?s#tf`_Io`03Km8kBq?jp*QmCq0)8#zzaheMD<-6
      zNI&*EfozOJc{l=(r-9Kx)n9g^*m!>23S()^a1g7LI)U7C6{>h!AnR851e}KM$|AD3
      zP{JH?0`og6ly8ThJJNi#0|gd#wC@Fbo>A6MgHC*)B7u#abCBH<D0Kqu_f^<qufD*N
      zTOAh$Uf8R*JBKVFs_g6Vlj;qPe3illTz9{E&LPFuUwp~W)nSy!lE7k8#;R6(k|9b(
      zC*3K+KG~`0gY2n@ddV&&>dT|1HUiu3sgt$YI-M5hypcy_R2UdNQeDYjHTQpbdtb*5
      z-=$bvXHq%>FJ^LRok=2(I}~vm)ChDWyQz2+d5RENE1`nB0`F%}p1!~{xlr%O?qFqB
      zV}kU6t0h|0VdMp>+qN!mih<&;9vWXZmEFPRsU>)5`#Nj<h%D?=gk!gwexBYFT0uKk
      z`+>qY9x?=2P=@cPgg(PXo=Rg7?IqaX>@wyPdj(}?7MOEr7a6&V<s@@0wbyYYu{Uvx
      zs4``|&ECfqD+!4v&z4-FwpkJ1vHEqwBbUrI35V4&X3QZut>a#jFJJ@rk>M0x(m#Aw
      O7<mAfo<KF}S^Eni-x})x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/SelectionKey.class b/libjava/classpath/lib/java/nio/channels/SelectionKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9bddf6e3b20268ef230e5e21ab1eebad6e4db2e
      GIT binary patch
      literal 1347
      zcwT*!YfsZq7{{N($~sCnHpDw3h>kIkiI+&!n9Mp80x~j|k@&`(l@mEwTGDnVyzzVZ
      z9eAOMm&6x-06&!Rf7)6X*m$w?^tt_>OHcRv&(B{(v`UY38eueZz(4SsE4`Y%&s|qI
      zL2XAk!Vab9Zir)@G)BcJ#^LU}TC;lqAEUA6_S?E;HMZM~*gB)U<+(w~-LS)*p2(m;
      zk&%HQtGTt+u-eL!W2D2<YSdpUl`+ae-EFP68%jr^91lZo?~6S~lbffDK4p}BCS4gm
      zXOyWdb{J`vw<iqB&_$C<G|6aUQ@UcSci0tvn|B?dFrLkw4)>+f6QdUH%Yf1B=J~U$
      zf^kEP%9XSIES@!u5u+O>O{nQJUiUzq4yG|;&Y^IzyQ#{6Oh%>*>b5P8!njF{_{IS4
      zj!9)&z;1lO_l}!KLF7^^mjRaUA~{YlWY9uLs_gnQ@nmi8+QPy5lQ|hJ{Oe)B^eV}U
      zO=xRex}oqz5JsivE9=7()3xa`z&(%{JQqYB&&N$Wr=;g2%h>UHzAau!)pMyIxuWv4
      zIc!5+lu^2hUly7UZG>{r$NF>w`gosiLeKZ<1)O+8I18kyiv!OEXb&Kn;#Ysr)R!pq
      z5>5k>XbquH=rW$nIEbzQtG=UabUgvI5UCn8t6ypQb#>_*O)q~=IfckqN9GGKt%x-n
      z$0scHG=s(%VsyHRrxEaHX)fW{(gwl*56(u$jRDP-=oZZ<$!myKzC!go-7XeCexgzB
      zBy)0#(&?iVQc7hAB{zh^2T~SO%HxERR}^gs<b59`pF*mGA^H$V?<@rWGfQ~qN-opg
      cNUqRAB5RSnhayUr6Z<ONM?S+1QS^s@0m2IEwEzGB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/Selector.class b/libjava/classpath/lib/java/nio/channels/Selector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0469ab55c2d83a3571a86e2a0943d39d6f1bf7d4
      GIT binary patch
      literal 912
      zcwT){YflqF6g>mmUAivv@`;Eqgti(RLt;!yNQlt{X{bpJAN)4mPGDf&+3W-4U+EV$
      ze((qQql{;#v@zw;5505GJ?GpzcjwRFU%vso#B&c50*i<8ST<vAn&E+rV-;o1u8LHc
      zo796NFl+0PjQ5+J-XU=TcSFZI-xQdv)%OIPH>R(AOrjc~0#{(Btz)%YeD10AqwGaW
      zV7_fa8STkbm-!j!<OezvSZZHBL5nPts90dRR==9(zx@)bB-bX+Jj@F$ST@Pqol(Wd
      z4czi@Q(*PHSC;6J--py3>%K|@+{PV&spKpdXk0kQMcP)`Z85+-EC~eVEryJ%T(){y
      zp2{%)?`D-SG8y;f>a1gT!L@(lVvf`)*Ect`Dsmlhh@6UQSMSF%FH)-3$LkxH?vWeX
      zQKzj<I=GodY_Dzhs=Y5mFhEs*$F{Bx(p_^x!HGOlMZ)jUHANb#ce?z<)5B}LD0@1O
      zKtq(jYjDc9!rWuF&L|iwjUSl$#=``B{`-u;D^g!m00aXP<1}Lx*D*uJEYA)rbJl9j
      zasclq7QW-|*O8fP3tQHRwtU(5EjE%9S;hlfd5Ch-$CmkoIUj+=SMYR9v4YhxWNl1a
      PJEy60Z1CK$oM-<40zSt>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/ServerSocketChannel.class b/libjava/classpath/lib/java/nio/channels/ServerSocketChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ffe64fd27ccee535d03645cdfab51d8baaccad4
      GIT binary patch
      literal 931
      zcwUWC-%r#)5dP+_v{0)YpmO*d6}f|G<D+6o4AF$-A|_`DkL>j}VYPOfZMpbI`JgXq
      zeDDw8k0Q?QHJ6C{z&7db%zWQ`GqZbk{`(Jr=h%qQB5ZsV6Ok55r`d@p3Yk~wP@0J}
      zL!Et+_1@GOAt0pxL#tAyuSZpFL{<-FF0)#Ua@mjw;VV_BdY7=>8~Djnk~Z&+o~W@j
      zJN-jKu&2i|MjHzW<`5DV2da?oPCt*N`CtVI%LAQ>{7@KW?Zz3@C#oWBdbB(}?GWb6
      zMwW2t0=X-ZWwNXZk9vKd)CH0F%@+$-x~L*tC#*OMGxiT=5l&h;8ewggRM!8L&8Y%i
      zO2+p6x}Fwe+`^p*w+T-!*It5axJ%gbDtPB%CGID9fG%Ox*5|2%Cp{6l8XuH=J?&n9
      zpQkd^rzVqcmA$yGhx5$p2kT%0?3zPh9|PMFTf1oS2ZUSOKQaHEPc6j!kDd1gBVXbQ
      zpKeZ3NO09<3Aw*T5WnUQmN?fk`vTrq*mHx?zyem$W!5a>^fviqSM&>OKXC8cOfYnT
      kBPV91mavY8O_5J|x6yW|^YsGZ*b$OxxT%gGltVrK3x=KK&j0`b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/SocketChannel.class b/libjava/classpath/lib/java/nio/channels/SocketChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e53b0c337dc97c799ede8de5aa9bb8d04514b225
      GIT binary patch
      literal 1857
      zcwU`V*-{fh6g`~`3B*AJ1Xnb;5fU-(qQNELhDE7WSX!kII!qcf8fW56gZgN>Jo^hi
      z`Jz?&f|d_{fdAqzsHZ1!Fl1aaHR<l#=bn3R-`mOOuOB}F*oU)eBm}nJu@<eO>v%=G
      zYPqhg1;ts<zAM#KW0{5_P;3VUb*EUK3zTo!YF5^yt*p74jGR&eL+wtJkJK`xQ(z<}
      zxNRvVeaF4s0?r8RY6qXQRCOg*AT{B*jyfSw$j!tHZwU7M%f7ehRHR=Ty((Z#c@>#K
      z5<MnX!4&A3aa?(E;oh9|uju3i`er=as$I2wN3WYkLsgwXU^pgL%So05I_u4V0)H)y
      z0ld0&1-9o#{~|=@%tKq&mE*ZV8XE=rLl=5XUy61z*o-Y{48@*loCp(Zu~i@+s~}dj
      z4l!(E8`cT*YW*!b1xi2im#UdUxl-|E5S0F$WCj8|O$=h4o{gBuVN@V(d)&2^z@}ew
      zUuSpt@}8$yxAnh52_)<)kKLD6MPNhj#<C*aXOj!_^SWg&=;(V*jA0+ia`B*P@>BxF
      z{uqp>5fF2HFYtBv65sK_ca+rR$4rcC^3Fx8=2R}#$&$=z%I<k~cu<}Ckuj~zY?Tu<
      zEt0zXqZKQDS-KTo6MZ)EGNz|TDIpbv2SMkk($VSY-kS9md|RG%!n@E?lsy`43{!NH
      zPY2TI;*U%Z41JYo?dIwP5`2JEzVIHa-*J|}8h&R&>jb@yqnES61`2)X2g2D}43MKs
      zmz;a+X*0Oq5VDSNra$Qq*tCS~+lV$5Zk!J(HKBIj-sXP3Da!nS9W#ae5_VlHEOV@8
      zGQdsZZ&9Z8lROi76hfv>?50q*IXhub8~;P5)xj~_RZbo@UZF3WFANy_mr#6Wm7f}7
      zz$kor`Rz;gO%!u5#Cu%bC%4b!?_W&}j9az#gz#eN)MtOOAUafo9F;~vHl;(FOU
      z|DfmS@AW+9>IwBcrJg5@_WVEelvw0OD~xf})k&`DevQ_Gy$FfT#&(04|3JKCv_z@U
      o!b`uxa-1F3YB@=Z_CD1d$538@n8Z}LGv3BO-iqaWI#hb*I}4ME3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/UnresolvedAddressException.class b/libjava/classpath/lib/java/nio/channels/UnresolvedAddressException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a53bb06cac8b8434d19b4eced0a41c380079ae73
      GIT binary patch
      literal 425
      zcwUuIyGjF55ItiyiL8l<Q5zdkEHp?KQEU_;M1@GO(WDe^c8BE3&AqaZ;BQ$87Pf+4
      zAXxez;$#&&3!9m9hBId#ub)rP0QRt2#vEbyR!vo4wF|<rvX)H}^li+EGgFS*Q6w-q
      zyASy;)y|gT5jOJ<qwFZ?8p9)H+VLoxuuXq;gnGiUR%XC)BD~){CC~+-+Hp2Xl}!iA
      zWL)ew-(TKtKDG#@V{LVMLMUwS3<zGwMeL)1#R_~Z5NbVb`7)afIlfjy!-Pi9g)%_N
      z7~wxfFCFWI(CYo?sw0Ab<+3>Bb3HRz|6AIc`C<dIr~Htxh9XLm%fjX`FNkLQN~}m_
      jKj%QP`H1R6E~!cMB?AZWaEQ8~%C`thXym5LxpL(T{zhyt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/UnsupportedAddressTypeException.class b/libjava/classpath/lib/java/nio/channels/UnsupportedAddressTypeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ca872ec7a2a31cef814e554c30d717ab4795007
      GIT binary patch
      literal 440
      zcwUuIOG*Pl5PfYXiHwPfQ8(@s7k<DYM%*YuhzgP5#w7dBOp&y7x`*i*(X)63H?9O1
      z9>4>*@&q12tc>DT+*H*oUcFaUub<B^0Ge1WV@{xXEpKFClnug(G={Vb2F7J^Y?G9t
      zb`&M#T>mbnv)hp3R9RDoC$N!^X=%nmS8Eze-A=~YluY`|6R0~%l+;5?9OFUvR6tw^
      zR6EwVRGM@sbw<Uv_xs(4k9{XlI#x!dCjy17?V*6zu@U(wV6g%p3j(#CGIW_uN0jvC
      zNRvRLXG1oSY{U4c>7^6JYOUVCPdgIuuWXitbgpJfn}6{4W)4^fZ_F<hSVIvd&Sge(
      snCD8&Hs@I3PAkViapwuu$DC5*=yL`R;NcK;t}5RoETNH$F6YdZF9^GH00000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/VMChannels.class b/libjava/classpath/lib/java/nio/channels/VMChannels.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a265123265bebcf312209e215ecd5d7ed066538
      GIT binary patch
      literal 1129
      zcwU{8-%ry}6vw}38x+di1_(?=eh9;D4;11PfndTCb!NK2%#4qB<z_4C?nr4h{3-kw
      z@PyHX=&OH}@!T?`U?Gcr==sreKIg~1{q_6X1%P#w3?vA%2ja7^l+&~9j!;UvM^^J)
      zrLP)D5prRKD^%O6w+^K36Na}O<@no#WU<sFq$<6AX(EZyG=?xt$krSs-v`~6^gf7|
      zD+v>|o-N#_@EmRTohiTL91-Sf_w}$z$SC=xstyCc;d@ea2|LAFTLsp?X|Eht_7kh!
      zLwB=uiRKXfCBk58mZ|l?k6<hRhmAs*yIqW#XHSZKJ@n48e?^K=qKz4NNGJ@{hY7-T
      z8X05_<O%aPlCI*e(I#f_Sf9`nLV4gO`Fs<0hwyyB1j5TW_D9e0?_R)-73#4T(#T=l
      zz%y3k#)>AGSj4iPt8m9$v9+7=BgMrM%tkNpY^nFp7w7tNu4(|*xZx!9GlYcx1K2j$
      zdcl&kw|tI~GgcBX`E9ZUHju&=##l>V2C;kq(1<?IQ1SxUukDFG@GY0ovH9{(OrBt@
      z`~#C;F?ISKGoQG|qtm}NGGRlnIqMD6s*yT*%;IUt&0+3d?mTlBHFxPYcbBvFnA^C;
      MU17;<4Wo;H0Nbr4NdN!<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/WritableByteChannel.class b/libjava/classpath/lib/java/nio/channels/WritableByteChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94c77798954f01881ba570d0fd7c7b667ab2a340
      GIT binary patch
      literal 261
      zcwRg8Z`VEs1_nb0K6VBsMh4Za#Ii*Fyv%(4<c!3;ywsdx{qUm9lEkE(RHw?4RA-1F
      zI|B<Ng8*1*PGVlVzJF3yYH|rX0~;fQB&GpSO^ghz<v^oS85txreBi1;raG0TrKJ{G
      zYkD#=aJg0_rxuiC=I0f&GjKC92!j;@)p`2EWq_)J^Gl18Q{6IiK&D}FpdLsY&^3$<
      g%s|Wv^dKY9#q10mKprQM#{#6efS3o!W@6w40HHfYg#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/spi/AbstractInterruptibleChannel.class b/libjava/classpath/lib/java/nio/channels/spi/AbstractInterruptibleChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37005d8c83f09f4c88466d1cd21e4c2ed1356dc0
      GIT binary patch
      literal 980
      zcwUv0TWb?h5Xb+MoMg>*V=mQdyfyKfMlpB+AF4u$w?Z_c60mQZ&7nDEdp7KDL_dmt
      z0bhI()PjP(`=P`+n>7uM2(n~n&Yb`J=91*+udm+$Ttm}BhH!nyedV^b3fkVt)mr*d
      zI~uF@#vqDA*NZoGEW>azj@7`IovFftAe56l-__gg-e5<1v4uRLwn&>L9U@#@y#8AO
      zLf-R(NDc|K#fRHUtN1P<+g$4tL?;+Z8(EYbEWsg^x=PC@lih&~U${&mRJ(!a`h7Q4
      z=9~saJW>(iX7~RmUMJ)Ra$9M(NoNH6{%cRNDA19G<Amje%FxZ;?4|(12?qt(HhZTW
      zoHp&2)$Z8u7|LwitkgWKXl||bEi?#M7F*ni-e_+W20EBTN%E|UjXFw%f)_AX#%61I
      z74^naCmZ7h+RuYY=*b7ltfBF*L9d#^qQTu}kwFd?dl@qT|6=kGX5Sns^63U!Vw-F2
      z;qXUxGAQ%gW(%yd^bRWQIa3j;SY~^KpFe=h{4sa5pPWwu_vR8QO|0N3M>1GpUvTtT
      zf_TUgqpGw%q4o|=OMFJH^#v#QkyVxhk9m+D1D<m1*&Mzy>+1|w=kWCe|A-@InzF&a
      z#nLy_U+&@TkAu?=QG!gUD^q<+HQqVakPzmZXYPLc6`aR~bQ8DIRTigptn7OT@!`N$
      QCUb2U(*pd5N>rDA175|vnE(I)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/spi/AbstractSelectableChannel.class b/libjava/classpath/lib/java/nio/channels/spi/AbstractSelectableChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50292a1becbfef3d01e2da9d5a4fc8ff2db2eb8c
      GIT binary patch
      literal 3883
      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
      QTTgpeUC|yZO6mOS|MW+I7XSbN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/spi/AbstractSelectionKey.class b/libjava/classpath/lib/java/nio/channels/spi/AbstractSelectionKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a30204155e0995d3a69c3374d1f4c18e12926b32
      GIT binary patch
      literal 747
      zcwUu~%SyvQ6o&uP#Ky+dOTD$;FCc9YgNV3LL=oIr+*G=7H%$i|iHRhs;G_5iZrli7
      zz=gQ>p~RCIYC#ve$vHFUKi~XwChs3FuK?DuY#>Ll&&8E+d=)tEnect-MNV|7oc&f5
      zhr*2;(vxni0{=)}8_)@JKlQyDLctZjD?LxP33N)x?<ilzy9BLTYZCN>pe;>k7_eZV
      zpD<KczC7++v}AZ9TAn17>VYe~rU+HC&NlV<Ohts%`rrL-^Wk4+Ofc2LD8>keikiYx
      z?bOg|Qkk$Yi87%-N}Gd_Z&|JVa!@0yZyT5*to+4E5Spl9#=<P-y0b~=<W&E2m0GjF
      zP8TfnAx|(HK__(Op-LuG`K@6sVe5<Bqw!-Ca!Dg+8uVoByi?%S21nx9XFtQd=OhP<
      zza~dulcifIa%O#rFo>b_&l&Clj#-)1%JvgRZZOJW{0$Wj)3*MI`EO>4X}~TYzQ_4K
      rPyC>VUGB2^jWYIDX0B*IVEzV%b_-p<>jLv>vEBnIW)Q++s#^L4M}D8w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/spi/AbstractSelector.class b/libjava/classpath/lib/java/nio/channels/spi/AbstractSelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a8140211b6cd361825040369570029a4434a849
      GIT binary patch
      literal 2139
      zcwUuM-*4Mg7(KUf;?;AvrA@ka{M>-8Ny@S@#(;E%(XOmCqez9I@qpwcm)66zBRj1&
      z@jM~^1bBzN@IWQHNt?u`?TtSQaqhL7T1n7?s^;4F`_B2!_sf6(^XM-C7g0AcCUEw)
      zv+GoSH>kF@9N(8-RE;`r^;$FPhEA)yAwAjZ2B8T<;MAb+fn6Zi@`6aV1;jT3M>=7!
      z>$WBD=jy{F93a0)JZl0IEyr(3&y(#nc{dW6ilIAQ*Q?%eqOA?trPug|yXiaKolpu~
      z9`slk5-*PB20nRfi{!{HxW3z66sU|WuhbAQmV&mlkU`$Y1SSPCbEU>O1PV4x95FF1
      zkRMQFp@_Wlnzb<wOW=6j_2uU~+f5mM=`=m&F<B2<j@NKPSG^~fMt94N{=0zvEn-?(
      z-2(yZ`kj{SsDvXEr&&nNK!Vlvo<#|I!$uZ4i%)OaII9xMyW1UaNwK6l>qhGx>FaFS
      z+iX*Ay6R2(>~?vsG-?IOe&DRj6SwnH|J?`;REn!M&SB2PMS;>FK&Q|?kkCuo!Ug0x
      zLh+!Hj69>&H;G+psBXSz;|ktq37j@dP)ry+$KR~3H*eFsrV5q$Uh&WWA9`+1$m&L2
      zwK?C7rc4dXQf#iR4pH)=a&lbQog}J-k8sVz$878<v11AwpI}MAOdJKy4IPR>xhAf&
      z0iy&;p)4%pQyVw1%DoBYcCahcVmQ^q>ekmqCcP2tge|$^s#PoYFVlI&V4UWhW%#ko
      zU`#CvpT^Xl>yw*I>rwq|^ECKHIL4dfy!lEafMWR}PLwPAm?}R;@zz6}+{etGhMeN>
      zBtbxpzgJ1OhysiM5^ttsFkZ$hfPPXz1;5#^5;KO^cxUkabsenE8==_Bf8xx~F!st1
      z@MhWA$C<-O)07XE%)~00)+o4+JZ|b}c8pG<<<(XtX<Xr{Y!flFnYj<c_`OG()5b=M
      zWFjFcphUu$q{4q?6NhSI;I}ED=mE<w2FfA8JX5PAz-l5pOW9L@^nv{pINOUlj(K{;
      z&3s#vtRz(}u$t$8!O_RK!2Z4Sgq$;noX7Nd++py$ME#KBE+pJ1a0%}w!d#-1|Ewap
      zb@Q1zDi3h^>-p#Rk(+=1WKYl6Bpa@peo~+5QMpI!kEFbZ8T^zQmD%2?%;E!l2w@oN
      zbI!26QQ=Ju3tHIKo}gu-72c+b#iv;2v2s{#OWS^BS$<2!vU{=YI2Qjt)0nk?0U5d3
      AC;$Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/channels/spi/SelectorProvider.class b/libjava/classpath/lib/java/nio/channels/spi/SelectorProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb10488e150e3644410cf38148bea7d1e56695b4
      GIT binary patch
      literal 2066
      zcwUWF-%}e^6#gz?H!Ryi(^7<51^dG!*u+Y0mDE-Uts((pgF#xYUN)Dou-T2fHz*H|
      zj=ogKslNE&U*N0OnZU@5qc3&FKg#jkB_YX@cKWi(o^!tM{J7t_`|p2${0ZO^Yz<uu
      z7dH47PdS#GGS|7|2-{Ej6)Tk&wlJmZ<ve%GDhf|S55qtZYjdZRT3p>AKf|EE?MqRf
      z5o^3^%SJRqEc<l4X@(=$EXR`98M<Tf0z*&6Eeajo=rf=pqT?v~H5_Zpo)3~57{GCc
      zXi3PtFsq&=x97RTODg}FSUlSj-|kLpIKgnb>Azidq*WF<;gv1lw_GQJK}zU{iq#Rt
      zkgDogYCP7;FFngCrQ-!1BX~~3X@=p)W;bvK&olI!>%!b@rc^cWQ~LGzRMVMOlj+Y|
      zj##LcSB1C4S8YM9XI+!q1@2kuy>9H0>z2>Z<(H|)Ck%n%gj*5L441s*@p5MWm>AAC
      zM%Q+Dp)f-0H$OK;MN)OXh8VF0Ai~Tp9(WicDo4($P+=n-iItDo3>DW<2ScJ`tWwa_
      zsxLim%0?_<hxW1Fmhkefxhdp9FY%5v9YTrac)-$*Kie4}LPjbFx_^A#hm_w7hRX(?
      z!I22A)E6;Huw(<4Bv>*GQ~U6`fj2P8&_~KAdqsG1n+Q57@~|m_YYfnF9dBv4(Y{te
      zgn=nc(^`s8tK9ZOO5fl6bo`En8HTZvQ%xPT8!mOWT(Naz(5K^V%xZXtB-~`m*xdIG
      zyo)&oZO!!-cv&d%J-LYhl~#oF1{SbLLvX}rvyLyhV-o&k+uql!?WLK$XW%ySbjb*h
      zj%hI45NnQ7NJ=DlnXZNRNlfAV(^bo+ZX#Hw70tL+yEy8&a?}cPN{dS|YO1OxM|CV=
      zNImWtxQh>IhP*<WDl%Mrs<WwQN-K(c20q3oq%G<0JHx%zS#+$TsKIR6zm}E^2z6O$
      z6=kv=4W&k0z|pd&M=Nz96}Vjuu9icoXyx;6)icE{OWiYr;qy)^M9&z>x|=>Q6s@#P
      z|LEJHZgR5p(%U_H>!RP0#18ab7}@bh7#QC}bR~Ln2d8Qn{*Am{c!8d$hyl1kh$+HP
      z!yq*cV+NyvFJQq~kRw7@^NTnOMxUv3I8V7QkhO<?Um{B!iI8O+FNZ7_kqlW<c%{`s
      zESK<Vy^FsC8*uj_CjP-v^tD}Fol87|k%*>ic=Klr>>;zVgPXr&;ul;_?BZ4p*}uSo
      z_jAh+k=w)4O0=+p4-z%3)bLRayon*&UxVZmxPrC%I3{t7o?lSIU!f0Q(m1}RaePBj
      t-%^9$QMvai`g>f(0~*v1v|A4_j~}s&pMsGY#Asj+>#%|Y+6V@{`9EJADi8nw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CharacterCodingException.class b/libjava/classpath/lib/java/nio/charset/CharacterCodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28858ad1841e15a0f76de738c8a16d57208a362d
      GIT binary patch
      literal 402
      zcwUWA!AiqG5Pj1ojl|T}wq67e-fRVfC|;CaqC!j1gPQv`E_Nku%4Q?}mM6i3SHYj~
      zAN&Au62+U~W!}8m$9psT_WAq*U>9p18ie7kxEG;Td6>?HDWnY}Mv+=+qWoIvo0ErB
      zF09J62ZzwF<*c5Z|2`19g)~ZJi8KZCtI08eri6Bs>%t0c6OonDweQo9(O~>aXdNl7
      z?3mEp8YTpXlcbL(Rs#4~CUjz@<ym<*ljc&)GD+ygdCCETW0?O89XnSAVLSf!4Tl8(
      zA}>uUPgUix@t1I?vcx8MMgA<pI$X3EJ!TCoaYxmvTmzo$)f{j~PiQ~Zk`7m&5!i==
      S19Z6yzC~C?uQu)1%E1?5)nRr3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/Charset.class b/libjava/classpath/lib/java/nio/charset/Charset.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae2b11910658f6e0bc60cc83bb1e89f0da4aac47
      GIT binary patch
      literal 7400
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CharsetDecoder.class b/libjava/classpath/lib/java/nio/charset/CharsetDecoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62f768df0090fe379e5577381a549f9807db8d94
      GIT binary patch
      literal 5808
      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
      MoT2bHP4({o0KAq2JOBUy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CharsetEncoder.class b/libjava/classpath/lib/java/nio/charset/CharsetEncoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dec97fb17881fb6792d578a3c8f5e8ca206243cc
      GIT binary patch
      literal 7022
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CoderMalfunctionError.class b/libjava/classpath/lib/java/nio/charset/CoderMalfunctionError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c98095159007af855f9a64e49afadba18a59c7d
      GIT binary patch
      literal 480
      zcwU81OHKko6s!jWm=Od~kg#)O{3K3HbcJDqnqbh4$jVJKw$f(oHa#=yH9U$d6Bi!9
      zb9ewxV0_cEFowj<`&6px)qDSXeFLzARtY)6+KspufmS96C&I=u33}#I+7l67r8-QM
      z(TCO=TY^WZI&LKNb>KikEtXb^Xe4dS%=7*MfsP54p3!k4bTSfADhr>5i>D8-pC=Ue
      zl~zfY&{`k-GJ6c=U3RLoF(P<b03UfQl;NZLhdZ2D^B~5NblmDdX?dF7j-?%DAfY}m
      zAqNs1i}xw$B@-1Brau2Z+aVM}k;bfS%#2C!&rE7Vd89J?_Dq-UOo>$xzXGmp6j0<|
      z;w^_cp4bNST+57f8Ow1mZf?Dx^6WS@uD(NeS-Xcto|-=_)UgD(X&DXY)pVMbZ^Gwx
      A_y7O^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CoderResult$1.class b/libjava/classpath/lib/java/nio/charset/CoderResult$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..687298887bfe08fca22f57cf936579cef89535f3
      GIT binary patch
      literal 561
      zcwT*w%}T>S6ot>UX`->(SpThvii_5TwYaPlq*Mr07b*pp({yM?(+MQ0&!ww^f)C(B
      ziFc+&TqQ8MKl9x)XXg9o;|o9wH3tQT!)N}=n@YybAmm9ZvSv3PiR50S(<nP_Ij|T`
      za+xj<Lcw5PNhPxmL$Tf%FjyLKQN(f?CD;s=zEt9FIvI-Okq;x9sP^N4M+2TnT`!te
      z7Rr?2sGskvP2_~X(7<usZ{)&l2kQ(6d58-S8`|e4L#gij`T}+&)Hn+nn9txo#M2}Y
      zH&R>l{!N~1S%$K<{V}Pg6neD?JrNaVpjLR%Bs3!UgDEpuYkwdJn1{$}TA~-8q|K
      z>D_F*^mh$*4U0BcC@aq)imMbYtf8_H=uo9u_Y>Yzu{J~X?N7xvQ$3@wJ*O55I@_Y2
      VHnn5;UF@0e+zwF1zB$PQegS|vbY=hm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CoderResult$2.class b/libjava/classpath/lib/java/nio/charset/CoderResult$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84d8dae7af3fd1f6355dbd28764e9a6d3805f48c
      GIT binary patch
      literal 561
      zcwT*w%TB^T6o&tS(rQJico$>TxBwU8Wr<-!G^s%rYDioTWkN^GG-->^r7IFmd;lNH
      zcxE8RRhvxDWxn&zKlA<b@de-<H3tQT{b&Bln@YybAmm9ZvSue9isW9TlPEjBa9}YU
      z<uV-}go44ol1gT6hGM<ZXRtKlqKL&ZO0XF!U8zKGG9HNJkq;u8sCMIkM}3}1UC*0V
      z7Rr?2pquZjMdX;j(7<8cZ{)%)2dfNwd58-SYue{JL#gij`T}+&)F=xXn9txo#FHct
      zH&R>l{!N~0S%$K<?-ePg6neE7vNB;#8{9oyfv?h%?Z;Kz{{V^d3|@lwDF}x^ptc
      z!n@ga>F*ls78Y$TQC6No6qhMlSV3hj(56bW?kBt_yEaAj?N7xvQ$3@wIiuzZI@_S0
      VHnnB=ZS0ut%nne+t~tpAegTWKbbSB-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class b/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d885f09d59b16711a029454571c5b99a1eaea07
      GIT binary patch
      literal 1220
      zcwUWDTTc^F5dIF`Qdkzs9ZL}l*3uSAMNp991saV_N;P0g`narzc465z+b!|W_+s=$
      zqX7f0v5E48i9gCXXUi=@&}?!pb7sEzX6D;pzrTG4FomQCO$?)(>W&&W^<rErs8*TV
      z@nrE8w^n$$V%Wi?suj2g5<{osXQ*aA{(OCtYc_*h6R!+CY3HqC>qh*US}rWBr36Fs
      zf^O>eLk3qkl4XzttPB_06nN0$K|4d&g*X`s+FC*B6u8mM;7#i$&s4V8x%E<AHz-?o
      zx~Qo}R<(3-KQ>BsK`%1|)Bmo9sJZf-=#PX`kt_WZ9$Y(VkW+ZdFnC@y7Oi|`o16BN
      z*BUR`deLmbAax;AG-IV=S-15a9x%9>w+k``FeK`|&d?W5pCPT<mTu+~k*o(dPWsSD
      zVcI;;Eg8cY5rLyr8}ZDF#sn4g;TA*aJW^vAiO5Bh2V)HWGqc4v;%i*pTHzbq;-*H^
      z2q7XcqYS;_OA#g*hOTOnOrx4q5Jx}p+*Y?7%qc<q&R-Ru@N_DfQE(UcXb`0e4Px#R
      zzyGR`MAqmt14|JaT~5__zMJIOq*)BZSC5-eib7wP<dIj46-(n!bs@ISb3v2BnL$aJ
      zCbyD?S}t?aq1#cK6rk?7=wBmHp=LUX8>ycxt#n$VJEOfbT7w*|L&??9aRBcg*_zNr
      zYljo@782gUi}!>BYM&E>9`w>4p!xM5;~h~JH|;O{Z_r-HK(5<Yga1bz!#RHqfn}D7
      z?!!A##m(HjbOf(YIz*_7@FB)Cv7Z=>`m2aFeCi10Vl~{ZVtOsMd&(yYnbr@)=Oc0Z
      zMDqR&A9gW@Jxt>ZX0eY4I6wwp9j-GCKF3_eX%=(Db^!P3n<rEsSrS;FI)j*?*oTlL
      WNeIfx`N&xxW07{DHHL94N%9|~%OGI@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CoderResult.class b/libjava/classpath/lib/java/nio/charset/CoderResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f68fd67eedf004fbc92be3c19137c940c0b1f22a
      GIT binary patch
      literal 2826
      zcwU88-BTM?6#rfFu_0_BP3afKN-J#>s8A^VuuznbAgM`%q{OD!)+KDn)?_zsHqiRj
      zCubaWoIdDFXLNjX#_59=3yvA>yML79xi`yZEju(b;hb~tIlp_(@1A?YKmY#uH-Hg5
      zl+eb|drw(chIP#tE|e6rrdq=@#;R&As<nFAlHg~E2#>O&uMKBb?x_Wfq4P$5A#pc7
      zm72>erW3OaEXlBM#?Wh)qFXtoTvvT`253=uW^#$exm4yozQ}gMm#)vYRw<J%do?|^
      zurM{9O7LYLLue<M;dpAVWXBoW9ZZIRu2j?-!-3^gtAMO!YWf;^c2<;f(J(9O>Woq-
      zsSN#lV)qL#itDQD6{T8LR?4a!=(iqJNd(KPzGjsu--$w5(=}_7!553?$bsX8iHlcc
      z9LKBVI$`ezV##DY*G^j}WOO0Iwbx|qM?}J@{}JEJJA^Y-qeFWLT_NlbVUQu*qK$*R
      zE+dKq5{8MhJ<A#iV+bQWuO1$EUPd<#O1SW{xY01iFv3GF%Q%FCL`+K4)$8@jifZ2A
      z>@Y-AMnNg(6jS52SPaA0jJhi0FoIlrQ^pYlIgKTaZcEZ?3DY!8LEbHf4y~5nxhX1B
      zt7X<zvsgAZ#MY9&x?{=Q+PNALos>Xbd8S3;l3uG<tA=T*tC^~5DwbyGiTee$%9SwY
      zF+xc@eKBX4Df>!K#FFv7TQ7|3SdfrmIQjB6lJPE5l;WDopORHFjSVLas?pJF5|$X^
      zy8%fm1xqyvnYzO9mq2YF+vV=?m(;6u%T;g=d4BW6vY!gfNqC>3&k3Kd7mKR7L$@nz
      z86y(z5-TsbI+x+{y~BN1s3CV{)w(RF99NuzJiR2#X!borcPzg96-%I<!!IsR*R?Vw
      z5=K8X8TarZHPt$wNSPwT>6i<qInBmBki#gV!nvXQI2hZ#AJ1`*s*I07of@P<RGr$h
      zH#V~y%+5z(T0El89g}-IZpc^#A1-`|@u%c5!Va`Xk*in3S)*<i)H#j6f{3g4hBySh
      zlccUw=aiLNjZepb=t!KPm&oUB2YL`dkSvK0WrWCXciCaGJ6yI*_CA;0iKBdwk$#kq
      zF_Jxe5(!C@MaV-!M)?2`@`#W!opqFU8IF<l2!8(if%yhl-tXH+?<V@V9%$+(rN7Xh
      z_eD=<^ZsZon-4_e*?cfMkln=D28Qz6IJb$>2F6IcxQR=@iR|8>zeAKiNNdMsI&++I
      zxk4FC;vBBxJf_Hci?nN)MG|k*ujCaG$v-r^?d<Zj!rAH?*v9z4v1gbV=zWIC)*(@m
      zevba$q=WKA%Pj%a*9@a0A_B5Ykidk-X=o#T3e)y67fABGj)C7X`6B}UC%z}n5zVkW
      z0#<Ii*{}>Vo)8m{Js}F75VH=%MUfSGa0vfTo){$;hU{P@yfFga7!^;9Id6=hH-_nn
      zafB|ii7{tmbaO_3Kt}`f)F9WMbF+ojDQ;<lTKYcS%f~LvZX2^5?;vGkj@p=^rx@+o
      zLi*Pia(d{B582Jmut=@mhAioRvTg{ZujyRwmF5-x0`Zw|3XxGCeb3T&jJ^{M<nlc2
      zZQOj`z%rF_o8%pmACOe+y~6WWQ}&3Xzo5DJC3X8()c@a5Ip0ztk6bCH9olFB*(H|g
      zc>V^)p5iReZ8X*F$Wsjz^Mik&w2g9Pc?$+#-a;*MoAfQL{|x_Ni;l3s_>Rc?UYvKR
      xiRn-}NOV7-6WfV$4{|Sgk^9(#+%|k7{(g$jMAbg}ZD#n~&;QlopQs>^<bPIHIMM(B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/CodingErrorAction.class b/libjava/classpath/lib/java/nio/charset/CodingErrorAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8de598968d4d8a3c4fcf9e2e95b7ad4c75449b96
      GIT binary patch
      literal 745
      zcwU8(Ur!T36vfZbvR&2{u+l;W`BOo+<<G_!qmdX1DaNFsq>v^)_%K~3WyrEahK0`s
      zQA45$AHWY~ymQ;g114s(JNKTP`<pYfzkdI?1@ID$62=7TC-PFpnKp59EbY0<<6ZMb
      zXM>it#_lA!HdzTpfob-oG8@F5{)tL*0q^67{Z6+fu-g7V<gGxd+d63P?9zZoRi}F-
      zP|W115-7Lt=!dzbNwWLfNvboQzY{1#jUJf^s(eh*ydGr6ssI9yLX`2Cr0tQn65WS2
      zdJ|-=gcyhCW0s;=b(YFRIk^_1<m7pRkZf%3)TbeQcmh*xovHnc)4sAtvY&ETlgP9u
      zt#&<&0SZ`gK|(kBEW`u?%9|hSb2>+EhA{+YqQ<{Y8XTGno2WhQ@YQ=)x8+8#LgWJd
      zxFTxq7*y3<ZeD#}%Whj*3)DYANdAY^edZ}(?I*;i^5hMszhZ{#D%W#dKjC`env7#u
      zr0*iZfptPQ3AKp|HZX^nVr*d*5ti8LUb_C#R(sSrEok0gxw-xw^*i1q$9P5YUla2U
      s&sT?T;&~h~-~$MH*6@79jJXHKo8M5s`it{ee9xG0Xc%DxUa%|r1F~_3EC2ui
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/IllegalCharsetNameException.class b/libjava/classpath/lib/java/nio/charset/IllegalCharsetNameException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d31479f7208960c5870a1559eb1fbfd6ff8e1d1f
      GIT binary patch
      literal 623
      zcwUu}%}xR_6ot>_R{>EG{9mXmK!vzfBr*6C4RNEga977>tQk6HrWkz^Uqcg(i3=aV
      zhcaFYqKU@D#kBo8r{~_&zP-P^0$9U*5)s16rMMPVt^BHUA%akv>b~bmS9pyc9*VZy
      zxpCx`QNB(hMp&{ZJfYoB=~m!&+ESZ=jxZL=KnbrUgOK@Tf15xDgpr1?LnE|l39lpL
      z`Ss<y)0f*-LfZK%N60n5Y8;tBX?KH=s41;Xolq$L{9S4hVh#UXrVzzg1{sVKqQz2c
      z7=(!oQb-d<n@Y>WPWwy-$KuShg?xv*6x=Iwe=}w-R7j{a|8q6mVAhqU@jXVqSo$qU
      z>d5Z|j@(t<VhewGR=S6=$O)qSViC+Djs#QE(hz?f%dUw7kMNjf+GURLoGL$Kw7mR;
      z+=JERdCXd;8e-VQFzP5UP4?70PXTt-b>;WMG-mpqRm(uU{D|EBz%F4o_pD8(C+OP{
      JH``UseE|P+j%ok^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/MalformedInputException.class b/libjava/classpath/lib/java/nio/charset/MalformedInputException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d10b6da5992860a33b4484c0560f53fdb54b987
      GIT binary patch
      literal 834
      zcwUW?&2G~`6ot>^zp0y+kWwH4(v}}PAS`x3pbG+#f|70umRL@c!5QR^BYTW^2VQ`O
      zU;z@e5=cA%E0#PB;(B65RU;%8o;&yY%y-XR&CfsIegL?KJ7we;>^J-^ca;p?@svlg
      z(C&x_ufym_Oa^L}=x6W7Vy0!N$|x{6OX?m)KGq`Yg%hd#g`8m{7LnwEC!(10mxHGa
      z>^Z|)FI2JSN_#v=MDbVux97kAu+Ok6(|$vtd_5)UfT8qADyjDv3iiP9C{PbkMIIX#
      zESzJ=+m5#ahVvGxSY=orN+tG_qeBtB;D>==s1L(2dEn%P@~l|UQyDXKhW~r_E<?>1
      zdT`nx^(Ko|Dvv}QbDy{k+nFN+u6*}EM>LRb8CMv#&X%7fGMI>{f@|d3aNB_aw;#8w
      zXkk0O;SR&5y-akxRB_$H4cw$5@!3qM2}6s9v?R{@bkh^I1qV%riVo*L$^Jo@L}SsH
      z=~!C-xc%J}ifx*6o*qsPmr+ECva-o4^wIEXpQoCIHCk(w^{JktSnZr(z0>@P`e&nW
      z&{{L3`zYW6R`3v;lwFvsDQ*E~ms05=;36(%OxNT<vGWD>j|*JM6nh3^%>@~Tk=bT;
      kc+VIF8sE`+Rlj<Ic1k(M?lEqCI>Q>BVl@`5j#1tI3#$&b3jhEB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/UnmappableCharacterException.class b/libjava/classpath/lib/java/nio/charset/UnmappableCharacterException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5a7bc2d033a678230a39e74d24e7d7315820066
      GIT binary patch
      literal 849
      zcwUu~&2G~`6ot>^zpk5>kWy#@B$S^x{8(%XQlLl#ih=^0(nwuSosl!h9Y^*UA@MFe
      z0Sl0zl|bSFcplb>>xmUrjfBL)Gjp%cd~<v}zy5sx3E)2Nl#ye&`<B1su9BhaO?VUw
      z?e421KArNzK=i4@JuRZ=?>#ZqGE`+07@UPIb74OmOXbhy3~RB7Bo9U+imBcoJY!%l
      z8CLqCiZxey#Dhc>KYrN$y_t9k!?IM<L=T1X^@OAYhSDRcq~2jDbOz3dCOSh{$Yafh
      zjdKk7jx$;U!+9GPmKj!uQi<2e(V>Xmq+h{M8-^Zv;N*nrtXa?#88f)U{|cbTQ1yi#
      zoOVeD$frf^S0awNPw;xjnQ;TIe0NVrluECR%M2T5+fNf2j73zzRkCilt-yd=k6RX+
      zXs4ffjbXjBNOVT2;<}9+xJgNoYoW#rO-gD(oSoB4cXVtxXfRZCID1L<_rfId#I8)U
      zY5yyNdnp-hN<2^ZD2GiHQKG7BstP^y8)%)Uo{be6t5oe$KS#6GJ;7?X@eQ>vMqj6~
      zYDn8C-~pEK5bIQ3n5k*r0L&_-(v`qPT*{cPsexkmD{7zSxRPl;F&KL$$S{n|HnPn-
      i#voAtf#yN&$_ZL2<rrJXxb^uA>%}Qnea`9{)$PCWySiBb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/UnsupportedCharsetException.class b/libjava/classpath/lib/java/nio/charset/UnsupportedCharsetException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c8924b014e05230b5b5a2fde8070e09217fc96d
      GIT binary patch
      literal 623
      zcwUuJO)msN5Ph|uthLKp-wrtKE-`UMBr-_IMkLs{w$&Levpt)c9`TbLNr=S3(ZP>G
      zP45N?k+@XXtA72eUf1i}(=&io%;k|HEMJN%;b;{&?F$h`(l{qNio4w)H1gc-m3FS%
      zvTIbJ^T-eu?F(OM&)M^R=?Q-;^x}@xUp&G{Bts?qmJB1tCwtoj+9wRVfsTyOrX~DX
      zW~;aE>CMaGJ7K8b{Xldiq0;>7ab!ZJy>&uvLuq9;3FEb&*Yy@5;|AxlfHX#mC}Nb5
      zuGL$EAdD4Jz!0I_R9YUyoiiC8i!<Lg3ferS;8_{>iy3pFBEm}ZKVQQGmON?P?>4Hn
      z`fo-GM?oC6<*rJa&Htgfl03!&J4o}!QkX#&IYxPl1~{@Un-d!z=2&91%Q%(XH6BrJ
      zEIpudXE{}lC9AZC4AwD-4U99I=&|{n1Z<Y5^1d*I>At38F_3NCqjLKxm$OCJ$`pHq
      Lz6|lO32XKPOm~p_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/nio/charset/spi/CharsetProvider.class b/libjava/classpath/lib/java/nio/charset/spi/CharsetProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdf4cbb912a02df720d899139e2ab89488812856
      GIT binary patch
      literal 821
      zcwUWCO>fgc5Ph4N+8EQMX`7OU0)<lYA=Tm>#HFaB$PE=ikvMMLmAh?hqxHH{{|f(t
      z3q>FyapAy^Ld+&cX(%APve)Bz^Y+d2eE;$33xLPy+9)w>o$xd6Co=WJW3Dox{p_vu
      zcc<@%Dm{}&LfNnwsuSdxCz1bhbRt5{u<%4CQa@!Vx7tGnYd1X-F3Py>;TjfP+`vs6
      z-dyS6Jkuifu!ssnEfRVl!dyvxe!vqR3B|C{Y6q9_^XZ<AC4xjr?q3l;Q@hO2oKd{W
      z6D?zLC{!%7Os0v0RfbA9-=m8f){O3346Cin3bc|*)N2o2tmC$gCPU+|`aEpl&V*cq
      zr?V4HS5wNY!27dg&v;h}WFq=`JQC_PAB_c>6Qm&@54n;iE<RfNSY`~{!T<cW9s?tA
      z^B;CHI0XR#>%W}OwH*8VS}3klgIO#vd#UR4m}Kny$)Ky63O&T&4$@qOVo#bTR({jD
      zV+yTJ&>X>BWmsl@D7Gn*6qRV->|DV42sh|{!&>Jns_#(ken#z0ZRG;>4`{q6PziVG
      zxlYBvGb(%z2mA2w0?RnSJ@n}Y>Qh2m_i1;~zyoZ7(U3pHHq5X;LW?pC?Fnb+C$g{D
      ASO5S3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/AccessException.class b/libjava/classpath/lib/java/rmi/AccessException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0e3ccadf220d2710acde0cb8118540f9018ad9d
      GIT binary patch
      literal 633
      zcwU82%}&BV5dIc{Y6U?AMAWD^0VDB@ArjO?Z9E9pbEz9xQ(Ds&<$ZhtPb40^nHZnI
      zr!meJf&?)hc6MfVzMt8Tua{Q<2iQ~)V#wVY4@TMTigL{~x#ykqO@8kS$5s%Ye7)jb
      z$LHf$hNQ<`VOTnMJ*uzIjv3fFL%i<To^RN`Zdg4Yxp~@J=)ZlwGei%CE&M7&W>*VX
      zEyHe?8@?;-cBP;*gzL^NS22gB7*s4WBs5|3%U-v|-KNp9I73QvOp-K6nCek8?01C6
      zkk|g&q(aU-3H~L^P@G|AqVvO1(51CiX)X6Jtl4p$N9itDjFHLAOi~85;q+XSp9;B2
      zddm2|#9#-EltD3%2%>Z=RE024hsmF!7^6;=>JZ)0VrhW*b1;*js0Q65!q$+aEIXXS
      yGEzX0tsqStk}EUfIwM7?sT50l17xSkE(oLrWZT2BF_|(Vli3;>mKN6o^u{-O(~O(|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/AlreadyBoundException.class b/libjava/classpath/lib/java/rmi/AlreadyBoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66d4313c4a8061e477c4c6ccb02a27b216b4d98c
      GIT binary patch
      literal 512
      zcwT)_%TB^T6g?LTH5C*=P+1t=0VWdT62%8<#58Wu?gyCQn9`cI7+v`{?oCWcT=)V0
      zjDKLfQ-~&NT+DsUoO{l>^Y-!b3SbLm6A8lVwYU}aV5sT`ZXiYf{?H$J{o}iyyor?W
      znJ@^27~=|WQ2%-$<U$!J;W{!1xxZ{55$KGNZTVgp2`_SlJCdn~_kFYS_*^2Sca*21
      zCLvj=Is~KT_oam-<}$D_OPIHnC(lR2t_&_j*Oi34?e|zfunhOpOC!2cAz{t_-*|&i
      ztk~biJ5iv#L8Izu$)c7lu-{ON`~nfIjz0=|@<eIH@}B~mdJOB}efT>Wg%r}9P3{ty
      z;X`^ajv2n$=1iPZwK1|!F=U>j#TnRzfj#87%1l65Kt3jAms5f!BQ-W%+Zbc<C&MYv
      Vv}1<S1T|&QRS8S6_;Nh6@(H_SY1IG#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/ConnectException.class b/libjava/classpath/lib/java/rmi/ConnectException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e0019e62f38e0eb19e009d41b698a8398baa5a6
      GIT binary patch
      literal 636
      zcwU82%}&BV5dH>%8U#hO2%?GJ1dN0;$^|uI8WRP3@K$gGYoIl4QBS^;ClU`n0Es8x
      z$2eOE8pL?m*_qk-er89XuWta#*wzptWbdp8tK{}&spi<WX!|EmZE^2Q$JP)gWTwwo
      zqVM=(`btQ8!j)Ff6t2hhb^Vw?=Y$0Fc)n%(rqvsWNbUK(Jo>o2Aw&<QE&VD%-!lT%
      zo@IAR4d0b^r;;}b;hJ+RVpza(95E~rRt#y2i$T97+@{s)2|~(n+AL|YFxQi2*zZb@
      zkTd>VrNY)ch5n^WD9my5qw~#?H<h;y<t_6stl4#)M`bVAjM$|<my{4|I0LsWPNiB!
      zpLKqqK-dMbG&pV|f+*h_S0OC&A@x@r<J_ro9pXD$C=QW$31(I}#)9q<W2;DVmL5-G
      y6)7Od*09bTic6nx)mc$#YK7wd5b0U6GX~WIvYqkRluVnDsVvKemBn0u-ueQZd5!}B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/ConnectIOException.class b/libjava/classpath/lib/java/rmi/ConnectIOException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5ad7dc4775ec710cc1c46c27de95d7a317bb1f2
      GIT binary patch
      literal 642
      zcwU82%}&BV5dH>%nhJu*pCU$Y0!HE)<$@Y(h$e#E3vOTyw5BcUTlg%VFdmH2n-682
      zEd-4iJ?!kv?0i47?;lUk0Cthr5Fq5P%p0@p3}m@xTbAf}#@XRrM_hZ-wlo9@+3CQ!
      z7}%bez7pcDaHQF93CHF7!Z;w%2_ec%u4h_a%j^$D=>D~td|7{cB!u^*CA}&kwN>|7
      z`=-?`H#|pL-AbWF2-fUNp<@n<5$IST#Ol%#r^7*8I8C$N7lcIJ?y#iE!dy?9L9ZuW
      zLcadTG8H!GD*TKxq4<lRZ=ElWLQA>JD0kU^Va=Xn-ztOtZp1!QzmgL4hCOsT;z+7x
      zGPB-y6bzdn76->wgb?Oi<0^o8KBWGOV}v_Zt^<6Bi=`2w5B^MyqwaV28Cyl1v-Efh
      yOGp5Iwu~fmD6Z6m%V0&NsTE7xBcy+l9W%)A$u`DgQ!;Hrrm___tSshy^x7voG>_Z>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/MarshalException.class b/libjava/classpath/lib/java/rmi/MarshalException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ba852d8d53fe5655a2c7a0dbf118a623f813538
      GIT binary patch
      literal 636
      zcwU82&o2W(6#iaSS4x%YmMRGs(N;9hm68;RDhFzhl4(tJWV<W7TU=cHMVy*AxViYF
      z#G7qXQp922y!YmPKi<55yu1R~!m@z~A$u)uMak=^(y{RTwy^i_Tk<AQu45odSQtK^
      z%8nbz;VWUrm!1-~B|V?(^TRy?)d-2I>-d3i0!!FkIc{A%rq|vco(QpR<*1-SFxTrL
      zt1X<X(plgs=c=5y2+^v0DdQN!^c3QlBqZy~ktf|wQ+f^2v?U=`cUvqeSeWZUGa9s&
      zPsr8(T&2v`e2xC0ODO!}=3D2BBX4PM^V-|OzpzHzbMLgha5G|;=C7oL_?g@FTJk{Y
      zRm@T6n;L{w5KDvOBE}Kp+u$mK2|lF%isKY_DqKhSjunbMB%Z^WB*%Ez-C^u5W;o0A
      zr!b2Y5N2~oGl%9f2V94&s5Om3aifRKC|Qj`M<Llte{4u*49IkrWy9KHE<`VV0z?yy
      AU;qFB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/MarshalledObject.class b/libjava/classpath/lib/java/rmi/MarshalledObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f09c1a6156a18c351f022ce515c9d1ee410ec766
      GIT binary patch
      literal 1855
      zcwUuM-%}e^6#g#RBqc5_rG)as0E*Tm1R|nUON%xX+DHOzDU3A!=q7B*(vY;fo3?0Y
      zeCgOH9qmhJ`r`OvUwEi90y8o)`ch~7H=NNY{{u(;?#+@SOzp@F_ug~vcg{WMJ74yf
      zzrNoBFod}v8U#9)jO#|yUbd21!*+^Bsbnrp=a<Za8-ym%tgcH&c`>=|4G6R<uT@FT
      zn6_n<tdER*$t2iO=A3CeR;4_fJ|!UD5oj8#lpWV7yK_dVYWi>e(0%WZ!k?o8`zraR
      z)QW350u8wo?NX)S*;>(XiVRN+1ddx}%OyM<&FrpbBsM1y8oyaEueyBF2_h_TXuG=f
      zbp3`I$0`eE2tKsyIEW4bUo=Jvx&$KIc=`58+cs9FtM1jRJLB4>u^d7t+Jop8NGz7C
      z$vR!<v+3Q8{W~mzUis2<<k%~mPwa%Sc!}!M@d8=|p1EOLu35_@{YP}XB<u8FE>)eP
      zEF-2Pj(#HDO1)Gz7LDanjSv{np`%HLCUv~5fQzP^@i>);S9I)0lRUku;{cik4rHvd
      zIaOWGoA!m;5L+0)85*1<ZO^H>MT=AE$~;jmBP5jLl<|9pB+$sKTGIkOng8UQ=z!xv
      z2Q&YNaz+Y^(dM<PQF5N3my1#YV>(V@oPv`ole$o9pw=`)_246KRCzSEH$f0obnj#L
      zSjljlsfs&Msg@V&atk6O(EqgJ)8!p<nZ%To%d|i+noH$UQXG>wr{g@%P~!x7Q5^JB
      zY1xsPtb}GNRl8tLSaOu%-Pl2yh~ERY&3`{MDlLe8JU8+?(SQ(F>I(92zqeC6Ts2}2
      zqJ@}4p4EyrK=kqKr{_+51BW-!IlqBtvzv&_CpOSCHPF9~=LgpDVmz^q=o%7n8iQ*X
      ziu=|u>^rJGKu0|O9fq5Girf-mZTJ!|Zfhc}Nqg(-zklUE^a!y%;GtdMAqoCgwecF)
      z36=|FS>7~TI>&O)B20oiF@tVgz!A)15bt6b^LP^%k>Ng%_izdC<1#+L3inU(A&xT3
      zC<3xYypA^%C3hHcj1=hj7$Z2&7sIe|f;b=XeRzwMX(-fB0&n9aR}zNbiP5-U>Hi7h
      zKK#B_a+H#7eWi>aA+oadM+haj{friA$>TThYpcFh#f!AJRDf^v0S-%FWH_N#<-P3_
      z5s$#%wADH($2e7BnKLhQ;@3!u&7xd%p^6x;v%MP_$4#7O`x!Qu!!6RV0t=rgBI32u
      z>qK1fi0C4@6ZAD8jb7EX)Yoa8@$?el-pV^kK%O}oxOc}@dw%h76O;4OkVD)+HbX+r
      zKCIW=ru6k0YyO-ye~ET{fezeN^|aM8dG&M<d4l8Rw?Y2qJ;Ia92K<ua$5aHA^PWnh
      N*8pA`L3K#f>_18!p^g9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/Naming.class b/libjava/classpath/lib/java/rmi/Naming.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d866075b7841152a5a5ac3a78d25a3ddbf28c98
      GIT binary patch
      literal 3141
      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
      CMz=u#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/NoSuchObjectException.class b/libjava/classpath/lib/java/rmi/NoSuchObjectException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf68ca4dfff71b76a0f24351d3a1c247a0172320
      GIT binary patch
      literal 436
      zcwT)^u}%U(5PgFOm=gq1P$`UdiiyM;Lj#&<E@(t)td?^FOYU~f-JbCy{240~3qQcl
      z-fuC^orXqZGc)h)y!U3`K3`q|9AdqQ9ARrF?nOHaReNBDi9bCb&!lgUAAEUdmC;2w
      zgpK*mr3{Ug^H)MOmXQ*{NJcT^>(f4g&Isk6(XkcUjzo~i{LRPvBRLnFgu;>1%619$
      zT`zMDgr2mAHd1=h*&7j@p1GAS7O-4`izPzEQ(6v^a4e%MF%Bf5<{6(O1qU<!Assta
      zF=5;L|34kRFHS9fg%jMNNg`jKsMN3dr~Dw5VF$zqf@>3b6u1`|<*>*TrB`z;G1Fx(
      n$Gy<ne@6K!+o^DMGq%UtKB_!5zPGS~8jww^Sj)WXnWpgt99w5=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/NotBoundException.class b/libjava/classpath/lib/java/rmi/NotBoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef1cb98096eb6707607d0c5aa36c4c1d4c4500fb
      GIT binary patch
      literal 500
      zcwTi-O-lk%6g^i*jY-oqt)xvmHA<pIkYSV+WP=-P_D_A-i*Y7q#%R(1Y28X_(GTc{
      z^dBOK?i-~bY4PsYJNKM>@7veQD}Y^;Q-~4Dx8h#Z{gJA7yzs;uyMwcbzPt;S=cZr~
      z3emqK++qFagOCfPuY_YuKj8fO;*>ybLZ;=pK`7kN7S32E-uFMAwjU2Z3CTm{s<26j
      zSE@F_Xn6x^B95grOe_+zmU3lhJnBjRO7t8_$Xi~Y1q91*J}VmGjS2`G*8f8{2*rx^
      zJ9Ibnl{;)yZ7o;Sas{3>&;oNHg4y-PeqWv|tyY>N-_b4D1n<Eo<l`ZMB>NO+F)Z*S
      zy${<oSN7Nw`$TPm%yR_EvNhQQM=)@V97pLX2+PPvq&(q_pvg#$P1d$1SozD)=AO%l
      Tp)^I!7<5#^Y9ziE^{jsbJNag8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/RMISecurityException.class b/libjava/classpath/lib/java/rmi/RMISecurityException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff293e85385dacc0c430c6875a3f1cfb395d2f99
      GIT binary patch
      literal 599
      zcwT*vOHKko5QhKaF_;k)QBW{OUHM8x*BBB7jhKOjDEnsUU>ler^Due<Hy*%yxH56!
      z0o=MY@fa?RHG>NcXeZrO)%okIzg|9{o&oHlkU)g6bSbVx(dnz=X}#8zrtc{4=J48-
      z15epj0x`m3DCr5STO1J((ynxr=(VKda(!N_66l1Gs@Rt63CnAVo-gBfAGdEi@2~d+
      zZBJRsD-*Ko#t*RPD63oAXc6?P95~Vxp6n1}6}uyKL@}L&j!D9_p)A?(`)%o*iFQvC
      zGKOvPe8Dcb{{D=47s@3p8~?6XVy{*}7%@Uv8)I+0VG?Y*Y5R^Tk5n)`KW^4`(2G?N
      zF9UuHh(qI;;3|R%z7%Z8F^S-$_?EefaMU)p9x?S0D%1Sx;qN{Z4lu)6Zm2>Avth4>
      mIb@j^5OcqX$6Q7KB-WYO2#G60)d(@j<~a*|Eri|qA^i(bS%5wO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/RMISecurityManager.class b/libjava/classpath/lib/java/rmi/RMISecurityManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41c59e9caed1a53c3aebc061192b6f478c615dac
      GIT binary patch
      literal 310
      zcwT)@%Syvg5IvKp#%M}6QpANjEocyzikm{Akhm}<`<wI<Z^;9$iQs2-RdC@4_)(>k
      z=t{vEm@{YQ%y7PTAD;kjF>+xL&eq~hgt}7UbG%4o-f7jo$D$U6)GjQ-WDu01F2Y}H
      zg7cti)jkr;%d3=N&6<_;VB*k+4Tlg!s+Lb(l}Wu6St$wQsL4f{3axtnGql<l^-4I8
      z{_%28@RFv}xty#1=Jc=Rra#98*be$2PPW0-Wp+1kz@Bb#u;Ipl$JJv5u3;g>5qJK#
      Mi1B!MaWW`_J!2_FrT_o{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/Remote.class b/libjava/classpath/lib/java/rmi/Remote.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a187a4943f25f193504d9afc947fe4feaed19d61
      GIT binary patch
      literal 102
      zcwRg8Z`VEs1_nb0c6J6PMh5<@#Ii*FqTEdVpw!&_l2mpE7DfgEuwYJNUb?=2QdVkm
      q2_pknaDHh~a;jTqPAVe<H$<%-NEsU=10w@70|YQKumVXY1~vesWEZ#q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/RemoteException.class b/libjava/classpath/lib/java/rmi/RemoteException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5fcf1d403247e3d4ce71800875be9be0e886124
      GIT binary patch
      literal 1334
      zcwTi=T~8B16g^W4Th`^H<<t5>0mZTuDky$Xgv6=|q(UNyF(&HLj%7%@OLn(teDD|e
      z7kpG-G0~Q2;;V^2!Y6)*@y>QFO<7)c?wvXJoHO^%{{H*@CxBTjD+n<R?;86?+AfRq
      zBVM*#e*aCL@43P<6@(f3yi;MNSJoQ`480Dwg;Cn#wnO>jm3s_qm7yzZnT~6i?v_!i
      z@b<&^AJ+aHy&YrdC~(&hC5C~V$5%4UVtRAOwq6_CC7vO`qA-QK#L$+U++ql4tpZm;
      zLK-wg8T4dR;f8AqvzQ5_lGQyqVe+*~d7Imta+4vJv+`uuAk&oln_+iHI1KUJX$>G>
      z0|B~Hf;p1(#F2_N#HHmyY5u&13%JP8DesmwDh`RJlEJnEcRPtBp+UtNQlw(F$lZtB
      zaf~7*{mIE-1D7?7VO+r#hM`u#-HIp`xUFImQwnrya4SMX3eybAz8vBDD~5??$Lrg>
      zJnv=#l_wC7;3_?+Ov2=j%L@tqzmo~!EU29lGN<7huG7Gcy*+Lg7^Z_dd}7P@?Wx?5
      z6gOKcPc_zDd0WE*#u*~6RX?PVTI!ExC>cBj>idROvGe?akk6*S<(16H8jRAY+UTze
      zA&z!*P^NfUgd&<B#qAVn=%Q~oW%Gn)v?@AdHS~P(z%lx&v;r$cv5G#5v^os^7@$>B
      z4EhwyL=o~Rrh+Ioh+@;D7_7s53K<Pym`Eg9)F*pJ80kN%Pt|Z%PgQa5iJtm~kz?8z
      z!t{Mk7kNP!dWl{b9(|%-*r1R4^fDSHWQbyVkiJmCzxbT~6(jmbsB-;<h+e~`gCCf9
      zDuY8LYnX|ptC*F?Rm@j$>!9JJ+fyu~2PUanO?{ec^eKZyUoqo3kXMt6pP;bM)H8~Y
      S2|GN%yC$M&gXoTjTKWe@4jdl<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/ServerError.class b/libjava/classpath/lib/java/rmi/ServerError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c93ff61d7b8741bfa2bdad0dba9facdb5971978e
      GIT binary patch
      literal 503
      zcwT)`yG{Z@6g`8$nib?BqEcaF6ph5h*kG_gOfVY@L97Ryz?fym%+8{}Wo2Tay_MhK
      zhZyg!#*koa?(>{;@11%3e0~9NfQo|zL+O@JdEHE8y(`RAn6@$6I7l+A|8_3LL|f5*
      z7>YY9wPMHz!btA-g$XFX>YOsLbB1h7tH5$)``iyjD!e{?uO7XAFr<&AlD5gPwe7{K
      zK3Ai9*BYrtjhRY3ys^_~NVfEiaIt{p3|!<GYX38PW25i+z!xz)=Sd|l!pT6GUQ}c#
      zdU{9;b6T77pJLLEWx!DO{(6H3-4sN`xv|tBa$#<72Dht2GZbesQqRwb?MGN_g3(1F
      zTR{qG@(yJQEK)>dERoGnr9-F)=hSxho{)WvL3y$+d7w$u6BH<_e#2123J^yntdd9+
      Nm9a)>`o@^O@dap~c})NS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/ServerException.class b/libjava/classpath/lib/java/rmi/ServerException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..716281735644a1cf285aa827b36200b160960af8
      GIT binary patch
      literal 633
      zcwU82%}&BV5dIc{nhJ^th^UF46fhFcC>PX-X*>w_UT_0zN^7<SeGFg46UIankNQp;
      zXA41s7!Nx;GdthU?8n#hD}V!RY6vl8Z>+vml3h`%bJ^$e<i5pkec?J9!jrF;yzBaW
      z{K}B<xD=Lca_LchRXb*2=M3?x>v+E9_@-s|c;w~j{qt?-A<7Uv6prvK4C!4XV6`o$
      zU8?(1IPG%YWC&N?Yp!Dsi!ta}U|2GQ!!LT>CYKGXX>*38;kHQ9B4MgW&9L7Q9z)Lf
      zYm+iL^Az}(EJI<2nTgI1N8VJ{R+Y8vzpzF}x_8Q5uoxqg>6xSqdfn~G7C#kglhl;)
      zeTBg`7%78d4iQA@)~E_$o(@w#MKMO53e_RHqlMxC@yB3hiJ~5Kj|f{qg0jqT3d=|W
      vLAHVvaVW0zh^t15N>eKo_XfyJlbsQ$7LaWX$HrvZh)iW`WLQ~T56~Omsilp%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/ServerRuntimeException.class b/libjava/classpath/lib/java/rmi/ServerRuntimeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ea3675a6b71c55d35b41654f75216d48008dabb
      GIT binary patch
      literal 569
      zcwU8&%}xR_6opR_95aIaD2lL9c8W&g8e^iM35K{}kbM~%s2OHRr-Q6~0iVW|i3{V}
      z2k|kCcLswdlF+2>y|?Fn?diwY>l=Vmlnlfe_U`$FSJg;XEukhtwF6hnk+_=LVyva-
      z8i+F#=AyP3dHVO1A>#`rxziQOr~IzjU|=^4sk-O-n!CEooj@e`=i@Z{{$w$%o=I2g
      zbB4-6E228w9aJr?q&uknsm!ma9d;Sah8Qbhb1nJ|@w(R+CRUJ6!bD~%sxwsH1MfK^
      zLZw^M6}Q2tCsZdaGUQsGO%6Eup!}y8*F)(ulv_*wr$&DLkn!&YbU>W^LQmw#@&aXx
      zYZ+cvTFgEPTTuohub{Pv1XgJ`D2ri@BI013;v~Y6qS+*Es5UA`$1m7;j-**yP1=DA
      h0$d_T(f&+^O>9NY2J+Y@U>NP7K<XHFqweAi{|);zj;jCw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/StubNotFoundException.class b/libjava/classpath/lib/java/rmi/StubNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da6dd6441db8383da932ec0b1bc3d30e3cca716a
      GIT binary patch
      literal 651
      zcwU8&$xZ@65QhIkWXy;w;(|-`CTJvj)tI;@=*U5kdjlP5GfbOV)YtF<Jb3f!$;5*X
      z;B)vK#_ExvQKE;buBxf}{=fV6{rLsJI_51T2n!eDN)-LJDpta%Ue@8Ej=bi<O+#LW
      zN_!TPgz4_gsch>|cK;Ga1L-T_)}$YBeOB5h&=Fy1PkTWqys#$RNcP{|KWt>)ZjTA6
      zE#;|jn~+_0VyY{=bC&j%cfOgg5t4hlDQ)y&I1L+vgb_!1vK+PR(yxlTD+%L{Zm^_a
      zVXiyPWY|&xVbS^fKAY?>Fo<8`ghCHX-#TB6e9ah~G6tvrU8}ZyeQi9(*CV!??Fl8=
      z6&?8vd8o{Nay{*@nN2K#SRWj7=tqiAi>m|%_#^Xb9Mjy{<~qS=s<85ep~rY;grgmI
      zcX)Rfqnu5CPGJn=K%8YT!3@L7c334=G@4dnW%UV@KVc3poy4%k&#^Ad>cC7k!-kE;
      I*?4>I16jM22><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/UnexpectedException.class b/libjava/classpath/lib/java/rmi/UnexpectedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab4e7ca6df8082f4aea1bdba6746d0b1e7693ed2
      GIT binary patch
      literal 645
      zcwU8&%}&Bl5QWbmP*Xt>1*@Xboq&<JG#FgqPawpF{Ok+dz%|g4wkYr5WB35Z6^RQU
      zz-KbXxrLxnqKnR*na+IY-23+N@(SP>I~oFn)UA1E=A6FF)h#g^h?XbX7o(OKc+$2s
      z1PR7$;zsmsPt5)jVy<wc*=q>L<+@%vCs3IXE!vjrnU>cudqWX2-X9)Ml22EJ@Ts(<
      zS0E$~Dn7MmTAf_gbEMVDryGP|(QXSJ3s{ao#}Z+sA}w(}>^Fr|Gn+j@h*#_uOPVaq
      z^|TrEy3!@=R{pw8p53_$@JpJInPcc%=ZleUD0>^qp7HNmt?StL%AtQbVxx(<P=a2y
      zhfYgeN_87!j`<_ChkX#MgX0!L2=l3N6~H2Yq+X0;ggXVU1AK-v*)gKe{>%zT-R~B7
      z_Y5)4l9MT{A`bZ38rGSiScxgC#EME&%VZD7NdAPCc&Y5e_9kO9m^Ou}Y?BQui`)Ko
      F>JwWYk#PV3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/UnknownHostException.class b/libjava/classpath/lib/java/rmi/UnknownHostException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..699bf69344a72c07f16440d2f3325c60d71c0a5a
      GIT binary patch
      literal 648
      zcwU8&zfJ-{5XQej;0*pp!M{Z91dPPeV6Z@qkc))^{ec@?g<W%Zh)-Z?Y<&zX5(^Vs
      zU%_`V&YlE~5-o0aW^U&9eY>ykPtO3hk+KjXq%NFmC+D_huBtAT?y4j0`3E-*apg;`
      zEQARQgOL-_*1j10B}{w5l}@WBT#xH&X`eu4!bDLk&v%qxb6On{xqExrxxam|3DI4t
      zq+cK;Htc}fa#S;S>bp`k^XVEPT-0YGh7nATBZe`;lr5Dw?zHQ|tvL0TAjECmU`dCC
      zx$ZZ^{<-uBtM;GQ$+JDr5PoSBGD94F>wGcNHREsI_*?jQt#a<_uCW;0j@W5pD3lO8
      z)g8AX4yC!y;xPAHW)bTkmIucrL=ffE;wpqu{>Z!;$8qiyxDN3d&18F+cnoHyIL3l*
      zfp_;X%~|qu3NwfUK{ksyW*AnY&nmH^(X=wz%^s3JVI^KF2e7rzu>s8L!%ViwhK<GL
      HV0+~QK3|iz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/UnmarshalException.class b/libjava/classpath/lib/java/rmi/UnmarshalException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f95ac81653a2c8a2052d7e94e1724048a209b11
      GIT binary patch
      literal 642
      zcwU82y-or_5dH>%BM6EpKZ+*W2^fj37%Wf|^<p7<)(dW6&2eY$4mCcKofV0N_P&WP
      zVVpe(8Z}z%?9A+ZKeMmzPtO3huwo!WC|!vgQS<t$cJB0r=l6uYf7g-MfpQ%KQ9^Mt
      za4P$5ASbVcj4wSUY)g7R*XM_O1Ue$5o37&r!U-&44`eK{`>_4;mbfRxca)=o1|hd@
      zhOD-5y0uo|DW_X6TZCxSy_88zVJ3wnrU|pAa^%UN-<IB)XxoyIHQf$N3Kr&i+>8c2
      z<r7xSKbEPpIbY*{C=)8b`1#WL<S1L(T|v7m{tG+ndG4(?816>wGxsYgA=z>VUPm4%
      zy-eY!_e~AM8i>WgaS1WR`8K$UAi;<9e{oE4r@?iE?|7v;MEWtDndO)ayT^<*k>M;q
      zn!+5iK$y*AfjKl+Zp?MaidxgCR5ymme<!mTbP<xRj>aZr#+XcJi)>h1EQRRh4=N~-
      AG5`Po
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/Activatable.class b/libjava/classpath/lib/java/rmi/activation/Activatable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09eee6b76e9fcb3ab102bd2e0cc77659135b3bc4
      GIT binary patch
      literal 8556
      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
      SqkwPZXr&8WMCtO#+W!Dj1e%Kg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivateFailedException.class b/libjava/classpath/lib/java/rmi/activation/ActivateFailedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebac6ba5028ee965b83fbd913d1fe93a3932b802
      GIT binary patch
      literal 680
      zcwUu|!A`<J5QhInpaww@1yM24n}A9<V^D*VfW$;W4&D~nz?#yUwjd|p$rFhOAArP@
      z?_-=T1dU>hhwjcy=l|xP9lt-n0LWomgNGq=#|J!X^<<W}968{QG>z=(Borksb<sW_
      zw#2=vYw$88W`b+cGaWJe%Mh`JCAr=ZmQDFh`HX>87(zwUupMqV4X*cvulV?y8^2xM
      zGWd_AA)Nw4Y_IB4b#8RBHOG=hC!cCCc#CFR1h9bRAOcuo2v?;cF8jTvu<E?23x;Ub
      zY|%(ggDIaDy-ru!3<uSJESD#<w&MM8!jPWh?@Q&Ak!mQn>&k87Pg%WdnGedayQ@bG
      z=^^G)83Hx4Z?!~8s_l}$Y;dTw*aagCpmP&G`03Ut^I(xare2ZGAXN&Kd+7G3Gb4na
      z+@3I<0k?Wg+7m=5ich+*f+*ldt5_q3V#TJcGEG!7wRC2Gg!p$@g+v!FY-iFogK1Nk
      NiZ;lwvbg1{lOK@XpLGBL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class b/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1c90dcc2ddc269d9e436ad88a81d67e03959073
      GIT binary patch
      literal 2753
      zcwW6!OKcle6g@AtGf6y7LYgn7!H|BOaZ(e~G|-kpYqyPylR({=lHJ4^l8GF<v7IV(
      z*%j<rP(h&!1e*$hAZ>&Mf(@0rMtmi<>5?r7A<la<8Rs)Ckt(5ReD8g^_n!0a=iU3~
      zt8V}d;dKpl0#7fPSIk6t(N388s(r<*+NEORl&7YwN?t=ypjG)5%;H>Pa%REGS2ffN
      zw5wCQl*n3T+bq~u&6$El=ZZ3OR=L6)Q|Xj|I4=-MmWq|CS*+&F!m<^bTUokst>wVD
      zfHqeyEnl{01rB8%&gYzTOs9?uH0BFtrBXB(iPx5?vCCG=c5#jl4TVx(#Rvpv&8jJ|
      zx0Za|ELY~uLcyAKZbN^qY>`~KO0Lra^(XA2T|FsqI<_<UgHC)i_vZwf&aC9E%aTk*
      zLl3X{@LPJ`q@FCzT1|KYy&Coj^zEWNI-W#SpgF%>E?dQ_TQY(ESpP1o+XN1Vjt=w*
      zEW~yh^oV7emUU{$*hOn%d2z-nUvx&PEyFGrawg}AwtE<?&f67%{r|yC4zD*U6KYbD
      zkJ?Q|)Bc}oBC(v^NT-?*z@Y5OVSzxbKi9|}J)=WML~76KXhw_Fj_7E0w4*v6Lz~o|
      z)3FEb9K$)QHV!(CWUVso8`H6Mi^BBEc#EXbN~vAiw|SU+wyBw(7o3F}=L9Rxa;>bT
      zWwXHEb!=|L#&xIV;H7k&!C8SiYl(~E<K`F0{H2+NtuKMch2vs!tsCae%6xKzOj=@%
      z>zKeKJ><V0Kq@UO|EiAjc$rVbinK23IEB-+SO_u0x@Jqu<-B#)mczMc>i`~>8Ts52
      zlwSz-=!S*{>WzGc>(IoHO;kEtsAQ`v**+!NJjw`TI?zeGi&l_UHy)>Ui8+Imy0M16
      z@qxj>9X$29irdd$nIEta#v3?5&2W5i5QhMz#fT=9CUNVOCXoXQuYU(#o_Hb2$HnUi
      z`T)MkBv%#S5y#mBjCg<%4=~~aN=;risGtr0N<h;E3>!r23HsgdEy}ky!G%4zFyg9m
      zQj588VFesengn*>`dqko=u=M_HSS=*h_51H46I_v7+l4$(Gy(7h|v*R#b}K~FFOjn
      z%RKL~tM9XqH+YQ?(1Q>87T;97PC7X~UQv%%)Z-QPctu@aQj-M<(erug4#Nbcj0_oH
      zBJr6=qh1|;q~LVN!G#kzhT}fLL)(Kt^$kAZ8$7%{c+EHX1zvq;@W}SyuYH4G#7jQG
      zqqnvN-}4RTj=I5L&|8*uD*heBbxg*;g&3E`8{oHw<aHdA)u1(`tO0pFTEoifm3(Q9
      zD63Txpf!3Eq2R3m|2#4W)lUDwY50+3ej@bG?Cmc&ieHh!Z@9p-EPhvHqYfc&9;R>(
      zW2CE7rg>IJollN?foWwk%20$ehGLqzW+;wIj!0SK(y8`fo%3{``Z{;`KIe3OQ=v9y
      zv0J`@F3zZ1<%n??THq6C#%;W^z1n|lN)q9v##9nM+HR68z2!J}8Q(*T-{r#;|JbRO
      o5x<RWEnTy!!Jm8$|Khy=t<rWnp{&Q4s!JDgsxAVrsklr30<)kfzW@LL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationException.class b/libjava/classpath/lib/java/rmi/activation/ActivationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95f6167ba1afce5158387e458ba2e7841a282571
      GIT binary patch
      literal 1291
      zcwUW@T~8B16o%g^lr76bDNsOEEPg<{d{j{Uphlww6HSFgkOaLN+OZ5NyJUBZ{2}$q
      z1QVr36R$KTUibt2F~&37wXJ1MyxDnY<~`3jb7uDYuaBPr%p<2E!Z5YV4|vwulUZK$
      z<N^1jZDsE^<jP@D>?@(6lVQ*|SGZNqHZ~agUExSx*%XdT^Cu6M8Q4RH-n?zO9=E(r
      zUa5-cm!6+L+^=uC8M;cs<Fdk#EHrr=JC6N=Z&yT)47a2uz1s{O>C7fWXWlLe9hAs`
      zfdqq@ZV6oX9BGwvp(qs{FGx$QR`<4rv!NCl1`2kO%H>ov&4a~GZ%4WenZkeegUU>X
      zl%X;*SLHadrK1D=-E@r826Xf=M8qM3UKZXX;kvv`MGU1g;c+PgXECnfJi|!4;a*i%
      zO2W}`5tAA&QJdNw2Bwf^&<@l^tUYI#Y^{84dsh^_TxjMAn5yT)G0ZTG=2Dh$JyA-D
      zKV3*kcS-M7zBvO~T&BC@`}@KwG0cW_=fqM_yq{`8A+EGV{<FH)$VCI!FwPM3?D{52
      z>T8}?UFzz{UtMi|X!^Qcb&BG?R4-sO<d)}D93`NqNdHU(V~C=QW|}{Xk)oR<9VKO;
      zm%e>8TO>E5Q8O8<A^z4k571Yq5m+X~3I<6TbsL6|q){P;1H>IdM0~__7-E$WYd&JQ
      zZVM1fjbM}@3YG|9j|rygH_Yjo8cvxr?=jXS_W65TM0`qTdFE47b$^3u1XQKYkSju(
      z9%R5T1?OEb-(k#r30;lf5Ho8yck~GpTS|Pug&Hyg)5n-q+sBwc#?_;?D$0mshqB6+
      p_AE5oa~(H=j5)soAmL|x1&zI?R*`N3yL`i83n<Y5-Sk~czX1i96G{L8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class b/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26a0276563e29d51e1635cc48a96f9edc0d27248
      GIT binary patch
      literal 5542
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.class b/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc$CommandEnvironment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d74b3c343cd8fcac4450377bec91929888d383a6
      GIT binary patch
      literal 1613
      zcwU`TO>Yxd6g|(A*oixUapE-O15EkyI0i!sr6mTMIw=YY1T~NaR6;LiluTsLq%&hz
      z?W(Q1>#C|M1l<%tl})6EQlP3-)NZK6U*RWIDxCK`aYEw-s;!xK?|t{<+;i_d`}g-J
      z0FI%YKuqA&l5EJLUvrAG5;_eTI-Xk`Z;9u8uf9BC2bKM0uU3=pjY+rR_?}y{-7tX;
      zfs~G~N_U|+Grwe4XpIZ>YOCWFXKmk+Rp)a#U$yBRXm!r^1LnRmH6b9*3v4TUZV*a0
      zoRihM-Ff9(Yhvu5#*9GX;>`8&kIu~s^jw?XC^Q@Tj=M0%`$`j(K)UU<x2$>y1iDI<
      zs^dE0837|_%?Wgry&HA{nO7QU26jW>O%o=z3GA45T>E0ZHgEfvn=PcLy$U;!?1Oq_
      zjF+P1x!hJ9ZID}YNf;P5F@Urxx5vbG>`>BP6Dd`=BV2TdyEOg($3p_lh@VR`tSmCA
      z^cR?P`+^;oTNkwV=B#$~?cDI2Stl}+v)WD~ZhumjRqe3py15Z!*3~3>ao9v2BS{o-
      zEP<oz#MeWoS{(O%`B|XuM+L0hwXG@In5?TDrZ>Oz>hPmW&7cf9`9&Els$uKNPbnbp
      znRo{$xq56}O!099lCxgjuh<_tYMlLT2tJ}pkkKjEwf%Bc27w(UFfMTDH77)vTW5s5
      zoVmfL6CLPB0$r55`FX~W<Z^HaDW}wO=rg7DIK6fvP0t=`1)l2HW&DBO2k5)6qx<<z
      z@&rC+)=Su>t)TA!2BS!i7K7(-{xOE~BM-5=@Dy+43lEW9K{Edf`Y3Ir8(?8znLvF)
      z3<xDe1`Q11Q=LBBOoq3xPXijpe!>=7IzaCj<%2jB6)*Bscb)lPv3spmB(9BL>V#&~
      zAxg-P3s#%p?0<v5X&cPdi-PY)ZBLH;1#t^!NB)Gkpin$TvcThSq?D$_pO7(D*Of;o
      z+(xI?v(&S{;mE47+A4lf&+R+1{XL7{Bwe@J_780MN1VVNoWwnpv9gJ($re?UcpJwF
      z&!pE0+7wk>(FpJt^j7|(d5tb%sOe}x@0N_yD@YG2NJFF4zbbtl6GKXUa_7bK!3}hM
      zqyqSv`PQi4=V;b&6c09`8I92NU=L1VjI}e|loF*F|EG1PGdK&iSBm}j@d3JD0()mz
      AH2?qr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class b/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7800656e70a6dbf5db007431c466c7879db613d4
      GIT binary patch
      literal 3895
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationGroupID.class b/libjava/classpath/lib/java/rmi/activation/ActivationGroupID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1d0cc9c5bc71f33141140983693364c57d42d1e
      GIT binary patch
      literal 1152
      zcwUWCT~8BH5IwiwZ5FAet+l9t3iJb6L4B$*F%V6qz(b``pS*2v+FRRQ-QCuxKf?#(
      zf8aqAkwg=tul@<2{S(I7+ocd_l!u)=cXrO1nKSq2pD*74tl(A{K8E=YA8_63Nu4(w
      zIpB^o4gK!Oy>FTQ=jHV<0t|7L+T}(|->!E=!wDnAkW^7=>Q!M$-j%O;y(=i$R@a)a
      zY@*pIuQRX*3=?anVLRM#YP{PQ!QV6Q-oB}1eldjXSGFU13=5TicT`n*B?f<AHW^Zf
      z=~QtbES+l6-_UJoNaqeiK6g68e2pQnW;R6(ek3)-k)j&8d@Txwa~d>EgmIo>YD~Qt
      zGDy047c`u~B*SDy8e*&8s|)MlP>)2#Y>*tBM4`JE3^;9RGc5k6LvIN*RhU;jnW8P>
      z9Qe6h{&X`kMB3bLyHl#!%5LL}8m?lV6caD{yi4t*JjIS|x|Dz7rWQ5ikSC~F@3<qK
      zNK+$mhw3<H)v=_}q6c!&ok|==OD@~01|8QKVpX$mHN-vXN|HV?_Oc7c9I5N4FGx0n
      zFe2nf=^gtJqgByz$d9|?(;1|HahxTapxX{1d~~J?`<N;e_mD1pMdtB7vU`~Rs3<Oy
      zO&~yagX|^|Zy||oT%t&N2*wO%0p-n6F?!9oj4NIVUEQg0;S<syMwB5He57c!VS-1)
      zT**D~st1k`c=|IIc8}qo9>GUOc-n)9Z&J3O&TR1q*n1?4-@!Irt|i4+*!3SW4u_Pa
      t-!o$Dl9HxkpB*xchRk9K*NESJ_RAFWkx#oC-|@=viC>QG_=d{5`4^v$>rwy!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationGroup_Stub.class b/libjava/classpath/lib/java/rmi/activation/ActivationGroup_Stub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e56edd93b2b3bfa4614b73f34a529404b78e8191
      GIT binary patch
      literal 1895
      zcwUWE>rN9v6#k|yES7q!fPy!`TU*3NMMYN;ZAFU(l`2||A<K4z)$K0XZjtBl2{bVp
      zHC}$3_$a=D@!Q?9G+3xj+c|U2neRK7IrH<+=WhVc;(>yQK<cHos%4$3k=1n9Sk+v^
      zwz4-u@wQ{vR~AZceNjP7U?B9aNoQ3$**RIYT^ZOr1v1;C6|9=8S+1eEwxgg+V0Y*r
      z0150Nu%Vgr(y8&lqe5OlObhJH*}>U)&8*7~1RuuVdDXBCcS7Jus@OWXIr&0O&kMwI
      zc16Y!MKXb1*iG`HVaeHgbx}GGwMCQU$)c^3TVn*=H<U4V*{CtK;{R4k6^J_Wg}}jW
      zA`<Af<m;dyI$88o8~j3EZR3%bHC;__IL&BIZCNu-S-H3PQtB=_<G0pyx#Bt36dV>f
      zu&Mr`S;0|(Q`_@}&RytNFudMPQ?r(`Ia8~V;<&(IyR;OX6c}!wS{y@2C6Go&VDFN2
      z^HMi8M^<K}yKGkkCL0y>`Ae>2SWD`&;--++>*H(KB$IW?1_<g72%Jt}KMp83!<)F_
      z7}T%h!>{G;_rKpPbmJVx6r306-?G68T);(MPs3WZU$MWXrv3&_>ei7ohu!GiboyVN
      zg7M}MHuqb>6@f#c`H>~pR;ZShrp8?r=-Ds~%5_T|moeeZ$#vfR7KLrnglL>H1vl0o
      z3EwtX=d@RwuT@T9UyHK>5raJ(Za)MZ$O><R!14bX2X>&^xE}*s*PHBejkPLn9l06;
      zw3rqe(`}+@_U&z1Jx*uIt~<J%GQ4M}ztz)n#yiNjn=cF^=zv0L06P%p+U-4vNbo1T
      z_l^I1sF~nC!nHFq@)3LA`9AyjANRF4iIGDOrM|!my_DcfoC9Jo5Hdt?(APz92uD0z
      z(M#?ab%mrz4t9LSP&t}BRw~DmCrTf1YBuv8Bbia^N6XO>s!x}Cko|<So%n%EZ)Zop
      zH@;tRxtvr-KjPYVAMQNHFzK(CNad|pNa(HC7;F&wO+T@D?jAGECrDE6Lz(_hk-{^K
      zP#(i`4&VY&G>k(hiiC<Kq8Kd6D?jBqba@GcDHo8(Ehg+qQ@Bn1K62mTE=sHjrg4|j
      ZxGxncslGHrX@bR{#w;a)dwz-U{{^#S2MYiI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationID.class b/libjava/classpath/lib/java/rmi/activation/ActivationID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84e0e5cb494800528750e6fa859929265de72b38
      GIT binary patch
      literal 2732
      zcwU87TT>iG6#jY_7}!iMToRCkfYHdZ3t5BrkUI&H$R&o0g2rUnoxqS~hRn_axjf{>
      z$COt2<fB@pFHuQV0w%E(t1MIHvv2+v%ddNe*=4iY)YfeGbe}%oIp6tC&)@$&{tduk
      z+}02g=$JQ_jFh`zrHr&^Eg7EW*r`+DbnuLZDuG?fDr?xYsnMBvGwo@p5ol7YmXjJY
      zUCYQ?H;tLBN#mS)oiyDXJxmOq5fJAEw)Z=B&NFOp(#Yn`>W$cgffN7!^rJvsfb6&e
      z?L!sfaoj$EXx_>Q>@L_5ZOL>~#NlrBtn1_#1rAp7!|6F`M*EthmTh^*1rEetfZR1H
      zP}T2b%ow8BqoV=M3?|++SqFiabm-WwVXr`AnZROb#U5$5U&jvY6xcar+2%-oVa9aF
      zebO3+oHRKz$Q<8;#VT*k$}zSVB%?Cd4f}Etk+s2`UYg?5T?G#p%>~CZc_4OnC2cOs
      z^EnN1fzHYxp|ysDK%$)Sgni9+mTg}lMfTkSEhYHj?lv64>l#u5Z58>~@hT1roUB+T
      zpNrybhYdG3XJoTx#*eBmhBxq*hBsNW=NjpF8}G2Vv!*B63)~f{zfZ$^EMiGc8pvvM
      z!FJ4ZEqnHK-pXc7w-(3f(aLnha0Dl$d`?ou@u5<4>P%Xk*3l0(PK~j+XxbEfPyE>^
      zx}G^5fb~fi13J#(eJa6o{LRu_0>BtLab5=W0n1t@prV!WIoDa1(qxnxhBw8|8(?s>
      zsNSQS*NQsSpEYv15yu;F@^&V)Vyj+t+%)AWrump*OK){XMyrgpxgt<h)XMto3mc{a
      zJdJASjNF`TXw}ApvPY+Ne1wn5x_LcsWOF42+GKq?#!miB$7Ng*h?v*eI%Ukt9VC)7
      zGcTL{nN8K~2K5$mO(W1D?~8ayioY~yFXlZK#xxd`Qf6UknA;R{IWrv@Ddvbp%J)|A
      zCa`VUwLEhZy1f*7H1BQ2c5qz-@7mVq+v&){eGZM2l8ro(_EiFsx9yUSPw**KV(^)f
      zg&H7FV@{s>8L;F<Szmks9Fp$vGK&=DQ;jOLKtnC(b^P!}5W^jLTXTL#-o|R&g?f(C
      zrU8xoZ{pho&qp}!POS4uK156630kMtvF{<;?kiXA{BIxtaEbqy32=o+4Rmm2kAIkf
      z901hp6@oGY-ed>4_nHEXvirJ_RDl1eV1WyX2gKU@2t84(p?3rCt`0vz=hPD%nQAz?
      zj^o^KTf?a}ob6u6;7HH!FW6R*)HBi{H6F%D5c_@-1GwDrnD!D<Smy2x^x_t6ZmT?w
      zqejLQ=5c|)51B<HPhZ3sJ*D`JE4q5s+9cmc!Zjg#Dxmb3${%QyAwGo`{Q)sQ+NpaX
      zp*70na|N#Z<^i~nItW~4XdUI)n*0OeYcwS{Acm!{Za%-@(!FTGqhF%CO!f<U{E~Y3
      zN_p?_J%p*XvUD@_FTdt#u0{CEzzm92!*Pg-N%S$b2Q(*=Yq+|BR!Sn69->eR>e!(m
      zzQHzpOGSKFq>Sbewi)xdM%W0uWuXk%Z~#`H^trO-*ut?C=4T3Om0G@E1XCZv)Fa0-
      z^II%$u7Jft9)CegK82o0evj%Zk|(pt7bx@r9ueR%9sRl`k7bhP=dq&b6Y|3o0Q3eG
      Yuk}N}v5Ku_{<EmewPBfWDyv)n1AsPz8vp<R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class b/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3e9f4dc9cd0a2c8ac85371e2686605b24cd373c
      GIT binary patch
      literal 392
      zcwU8&O=<!`5QSfjKOO&F26BL?3kTP;5{w`yLUMvi+r*Z!M`l{h*|P8e9x9|%7(pa1
      z3hL2cz3O_$-=7130on=yp||24hw0jeti9c_w}}gfc{_2LXXh>ZBvmL9+Gjpy_Z7}R
      zS4Mk<GNF~byqk664WZ`D{xYmZ>CW`Qo>BCG7@15*-77TXG+S~Uo5kfH5uy6_t<B~H
      zX9_jK>;H~9t<WGm-<*)Yitk6VO|==@SWbDlA5Q-?E=dpyQYA^4BrSy}Q58{T1gN4e
      JswpZ!>krP9cM|{r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class b/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28e35559397849f724a61a04be919d9b4f02f92a
      GIT binary patch
      literal 557
      zcwUWBOHRWu6r7hr4I%yTtGGZV0umAHZb0HA5ET-L?oF`3CABLzEu4)72jEbMmqdg@
      zQDI@p^E@*id*0q(UIFZ*CEyX-eL0bl8|X;Jsh-GGTN53Y+paY_wN7Ax(9EfcH22Zv
      zZC}NyK$Xxa4X)I{riu{cPO9J#4z@4m-*I--`C@dX8$HM*QFn#D6ZQ!H@pG((8FwVG
      zLfHAu@WwnE`(z4PDG;a;wti$RPYHExzQ=9<BW{+d_9;Adc045P{-w)#EIto=0_%iu
      z&LeW}R7(Haj$N!ybi)7JnyF_mv*IoY6<&*6Z-x63SYouys0t500-n{;n3*-PIyGBE
      Kz-WV!hs_V4pP=CY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationSystem.class b/libjava/classpath/lib/java/rmi/activation/ActivationSystem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17eeee7cd33f9a5cdff95bf9cdc57991bdaf05d9
      GIT binary patch
      literal 1571
      zcwUuMO>fgc5Pj2zIyfXvT3X8YM_U@_K*TvGL<_W{DoWZ&oRBfA)FoM0_PT%&e~be^
      zfFFezuZ^38kTnO(-sd+nZ=T2V^Vjzu0G^^{VS%u9=3cn%aOAgLPx%+F@&nm^mOu8s
      zL`sY-ln8ar9J+GQK6-y9JY`{tu$;$t#VAmMQ0cwx9q%2!dvnx1CeS{i`aF=4a;56K
      z!&oc=r2|4O6a$}=hiNjxtLE$ZT6RU`bsPg}f44)h_da{#JUK=dmI*uaV{*2I2Emy{
      zK9L_~@JYT5gZO-mzDn4bG9Z7;j>U4i$!$}Utl#NdxIt*m(UGPbD^>kdNGl|CO?5P{
      zkfWNZZLR3{A}jH&Pzeq+b)3$I@2Vi|9GKJ`2GUQ6Jb9PyW{O%x6*+xEIXaEi2lkS%
      z*i3*%B-G@v5r(FW=JpDCtVx9R2?_ZpB78OJDCqTne)UXNWAL{##=kYOxnS3We{@}J
      zhzk@NZ^rHgap;K`{*ZUo+9fC5bWf5*yw-Rq_`1T^O;{-N{VFfb1=z586;^PKkt!o)
      z=G9Qg3ZvJtHi52dbb~Xb=n}`*G<FNO$C&jDy@R_mvfjh}3@!0JK_1{?hS-cHbyDUd
      WY|e<^!uAYRkFhh&<#SW_===r`sMMqY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/Activator.class b/libjava/classpath/lib/java/rmi/activation/Activator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1610b115818a78a8691ac1a18051c23708604406
      GIT binary patch
      literal 378
      zcwRg8Z`VEs1_nb0A$A5PMh4le#Ii*FqTEdV#N?99vc!_i{5*X}2s6Kkoq>gsK>(~I
      zCowNw-#;lUHMxYHfsK)YAFeSdH8;N`m63r1Y66hypy7kZTp-ia#X3q8p~g3{s5m1r
      zCnq%pVuLj!1D9(>a%urcZ819oHzR{OegomE*%^2l8MLq|4$aHX%P-G^*np&-pOHZV
      z%`<RWpgV%|ON)|I-7<54{^Em&j2=h_Fc=san1PrT7@~~8pkim>0P;A2JPx2Z7XuFi
      NACNBq<TEh{0sx%$ZfgJl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/UnknownGroupException.class b/libjava/classpath/lib/java/rmi/activation/UnknownGroupException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d6cbbc81adcb2fb757eac88e5f4d8737ebf1b4a
      GIT binary patch
      literal 473
      zcwUW9%T5A85UfTXW(7qQOo$gxiX?74V@M46%*G4CeOM+qy3CN>S@b9T4$q!UJoo{A
      zi{C)(T@4pGc<HXLR8@C>&fh-(9Al?|454u^X2K08$`!s<Ghvm{ZeKrW^QbRE6Hm{c
      zd^t_n0<whtW%APnT!;zfNQO!T0~tm<_piDHx+au5Mn_g?I}kxEbK>iA{xW*rCFD<(
      zR<=#39(d`JK<KgCv!T-CR%1ZOcFagRSiyP`4%P@8p3?Fro(yGpD~5q2R6OJJO2LbH
      z{w1^aPDO;K_wP?zd}@@W{kenS^h_N3@?0g+^`-Ws#D+Z(-wLjE<dElH;3<PuMwC3j
      swa84HxeWLGVe<{8*Hp8?)k)b7d%Gwzs{N?2i3*USEo`S*)znk_2E<Hwpa1{>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/activation/UnknownObjectException.class b/libjava/classpath/lib/java/rmi/activation/UnknownObjectException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25bbb15a163168186353c470a39e3f0bb796daa8
      GIT binary patch
      literal 476
      zcwUW9O;5s55S&FmOa(y{O!VYQMPuU`Lt=_1nnn&t6OXU;1s|4I(>~C@;2+VmCle3;
      z0RNN5Z8cov;AMAqGBdmT@%8o&;1KI2<Or>im<l@{D_aCcO@&dBwg>uFNB6qtk7Qs@
      z9s+rn(k0{x+w=6tGdL3yYKe@M2t64mJP*#g1Ue^FoJc1|Xyb`+A`AB8=T-07c_I{#
      zlvbugXzaMzl2GWO-8Zq)!}hL6$UD)sw6K8XGAt|+s;<)VVlwt+d@1};66$Ug@Jhjp
      zdHyBy=0+uiefR&bw)xg1jr(&5!RkkoIFP3*&EA~vKS+Jp0`axrx`6_U+)F&=u*itg
      t7r2(0=`fe$UTp2XqVkeys$8v%b=ccQjZyPQg%#9+46R}<%W7nv<~IZZc_#n>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/dgc/DGC.class b/libjava/classpath/lib/java/rmi/dgc/DGC.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3096baf027f4e54b7ebdd276165c0f530e13eff
      GIT binary patch
      literal 339
      zcwUW=y$%6U5QWe6cl}d(1R6`N^cS)sA=!fJx+b!+tlV9~t0_EyhZ3`e4Wdv?CUfRY
      zzMQ!~t~UT}R3#Du)vY=y%j{fhz0p>0*p*1VR8Q?U)^xQc9ZF;bDzSG)J3l0W^x8Gy
      zMW9<>+VL_Vb0QNRj(VN3{Q<B^1=MN$5(V=8v!+An`ujklAW-|_#cKv@j}-UTzhGy=
      y+M?kwW$qu1rh)5mfGj6&Mn;Y&kmO49a}xXli7Zb!o>JWNtQ1jtSGdZN7nLXdjaE1S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/dgc/Lease.class b/libjava/classpath/lib/java/rmi/dgc/Lease.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56b397803859190ef56cd67d1218df8ba68e3466
      GIT binary patch
      literal 1065
      zcwTK%TW=CU6#j++yWMO{ON-PyUaDN$uGM;_wptpKl2sqDn>5CU1xB0(cAI74!T)4Z
      z6QM>Ee}KQiCx3|X%z&tchdFcR%=y0aoip?O*OzYq*6~C`gdut8c3mrI39H_ySvGgu
      zTtk#$PQ{z9*RWnz4|y%r5NB9aQQ=z^9tgK7-n-Q%r{uOeIy`6#-`n5YWng87nUe3d
      zL)Qx(x7p#b<KEA=X8FekL$uoxb%q7|zv9mGz1<>1tShq_;+w(~;TA(WJ0Y)}bBL$p
      z*SUcyESN}Okzp#EbEd&?#)OF(=`ER<h0c($g~wlXT2&sr8i-EXevLG{q@2#fU^ILu
      z+SI2#J{FP|k*f82CvZdRlR<0nP^w`_Wpfjo(PhS<AJRrM(L=uy2EuDlkv|wU<w3Nl
      z;RbblI=s^n%{mWsWNEUm4J;!sJ1)q=;~Y81z$z>aYYg*as!UwNbxE;q;x_KkpxvV*
      z?onr}leor0LoG!ecWELk83Xt6P{RX;*}ti_?=@thM^a&VLZ3P|sg*ZUhs9u2{7z8g
      z&xCvfLydb)Lg<^);Aq9jE<uA%{xp5x2n<^E#>%G`raek`3Cxk5r_%u;qO>RSCrIWC
      zJ*4uP9?~Bb;4Imsy51)Hlqh$Iq=a)6$q<lWIFAc}@-9*tro2m3C_?^a${LihXqR`f
      z{3oQ2N91u8v=yN_NEi|_T*1{5I5GmKKb!(P6T$R$L-4*D3{d!r<%8tS6Xc|XK34j;
      emE0gBNk8MBJQm6H@%Xep_n#7lQHd>;wf!69T+j0W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/dgc/VMID.class b/libjava/classpath/lib/java/rmi/dgc/VMID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35a992d8d278cde97ef21b92f363bc43c5ffe8d9
      GIT binary patch
      literal 1907
      zcwTi>U2{`a6kVrDbJK8<lG0LXfr^Ovs14GBKnvPXkU$D*+tfCo+@`1LE#aoz+#vdb
      zgNzT3I=+^1baZt3APn-+53R%Kt3Seb|A9~HIwv1ErB0_g`|Pv#UTg2Qli&aT`7wZ(
      zQ83UTuyxM5W+mJ!c49i8OJs&qLk9c;&DveCoP6T^)SS$D1_A=xwAU^sMx<+71^WYQ
      zsvsF$($|c1OLoy2OAQH#GXk4W6rGZ1IbOyplx5>zA7}4<_x+V+flZbx$K{w~UoA6R
      zObRp=iaDz=I6dtOG-Q(keoNc_S*tY5kd%P0Y)=ccrt5qOdQG|s!u1OT2XY15vAyFA
      zj6^fcJW-sMAv}u?13PNW9qA=f{7^u$R5H<todRZFdTE7!x>)iA+9T2QM$!GM+HMnF
      zcupXcultD=iDr{c5P06iGuRTs3wY7MzS<Pao?S=`x~}y;5hI8S1mxASRbZwO$tJVO
      z=%h-Hn=rB2z)J!<>-b~NWvBR_qnMq%o|E$)2Q089Z9DQ@`O1`ZM=KJ9bpsiTI`Cd~
      zR;F6%DlnkO6M_%DCe?3KkOxgPV~c@T1X?zjYY2zXtKyEDXu&o%>do3@-SR|)+R`Wq
      z>{3lqN<dLVLvr4gIm?q2E~u1Ln&{V*s(Ql2R)iJENfWPOkUHB`IFeq!d;QT#6_rxc
      zd!6~ksX5j0Q(*#)MQ>JeZ-QQN#B*&YPvvWJ>d1<>-@qFJZR_31^305MgLsR=WK~y3
      zyFxgRQ8llzb<C=TqM0DZNxVk|PMDZPmb13z=cU7@yEn>s%2k2odR@f32HvTCCv`;1
      z@nl}QCWdiIF-UFDOb}CK(4|H+tpd*lF+;~iMTsPQQ)OP;{|}ZrjTFmnPM)&$&Zxe7
      zR4kijGXEP9KsyWsX*cnwqX8k>+*R5^weZ^4tj`aXr25W<;Td2=E83X3owpnC(*h0}
      zzXT_I%{N9T0{+pnt7u=wu7}tYdw@Nw*t-D3w+O%gA!3U#$76i)(Z0{r&D?-Ex>>%5
      zWp<GiaDm=Sgs}LM<D0~O%%Bg4k>IOY&DyW&3AOoEGQ+w#V0&x@2Nd)Y`eJK1G_iui
      zOE_|0ccEayWDPj{oW~|yWdXNdn(64r0M8~I!*OQ33TQ8|SHA=P2Z-INR|{zGO<kcu
      zQ{w7ZDSbo?<?D|<Lh?2a_y!iy8k^vSj=qlGOG`-J5~71-AAj@DpS71G%NV-3q|M|L
      zpdEw)KH-c$CDqT+!E+xz=azh-!P_cOb^1GTimh^S)VHik=sIJ3JbU85K`bB={}p0b
      zA$Duj(+g-(%y{e5!ZrHu`1rSObhpXjOLF*{>U^uQyDC+y*vdMCv&2-tu4(!jXmgRP
      zES4Cp;z!nSej@zl3P#etV~g0``4vL(aAp~AkH-~_&fZmAP`6tRqEk6Iq(9<es}?}U
      zIc<lfK9-UHu}(F{tp<MJ=UuMKJ?`&)j_?tOahJ=qLaM7A%TFY=_Ma9;sx5?&!Ypjv
      OLPQTzwJ@ivU;Y=8(22PK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/registry/LocateRegistry.class b/libjava/classpath/lib/java/rmi/registry/LocateRegistry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66d13c4585cd3ec0498e222bfae0ebb9f986f6ed
      GIT binary patch
      literal 2079
      zcwV(tX-^YT6g{skOqo_$DvN-Ch|rd0D2k$GQQ6W^(Xb``WTxYz47MFIof7$1`l&<`
      ze}F&Ac;9p^ZD*hw<D{9l%)RHHd+vR&KYo7u4j_ST2|k9gQ}tX`%!00%Jg1i|^Fm1*
      znriVqXDK1T&}CcY)nZP0mp$d0#n8U27j<iu!5@tsF$C6)k6eZy9bvSgouM<W7x`|v
      zkmcrqn$2^D9s!&`QcYc~oy~xCqL&!P)2(<U8A3U3{a!MRL}MOKb>{NsXN{j(x=}1i
      z=wTSBS?}?JVe#7MAnq}A<ORDEqh!fo=nLa6`WX_@^mXd{mZ=wW$yAHDqtR9tfiuG-
      z30aC^-XlOOZ$VPX>2j1YiiZ-$>dRW<<~cW&y|<}-L;J+7EmgA&^CFCKJfgyqqz(HF
      z6ZN{@;GGm2Jr){GGGx3o@`6~;>%7<)?)F?IM5)fXVp(ZMJ1pv&TB2?^mJny?ZT?PO
      zn%a;N!;EOhSrUzkawKC4irAQEIE=a|+D^%TN#;nx0>e}TV^><K!dd>qzE#f3bPAse
      zI*X#4-9hXwr4*Cmfcdr3F@uMdHx+U)IXMj70?Tk$GkM(^6IERf<0V!YjOZVy?b$B&
      z?5}FQM%O@V<z%elwGizM!@+;xD5NgkD7BXh-8B0~+0^)!E^f3)<GnQ}P^i!Z3-JWu
      z6Bi_{C0Z#oG8)_B6$HQ1#0Qz)?e^vpLi7$-4QRYWV+WnNPO|Evd4Rrj+b}WO5l=@?
      zq&u*4iQX?wP)Qrg=Ku`201~t#?4+K^pojZf9TN%nG3WpdxqucNpkUma$a)=85W{%j
      zAoaVDR!A_LaD3<zBbS(HhT68F`kbt)P+}(NF&lK!1$sih0UC#|FqOGNEaR_WIzBX0
      z!QAc@5}DZwo?OR~ZR{OHkhWvRtG=~Z!%i$Qdxqy^9ig~Ocp?4==@_|nUZgL=J~U|O
      zM89NnTJP%=3e~ixGwA|LQCEnj3SD6}GdN92ylMtJu))TvW)7H`3AWV$>)5bMwrP8A
      F{Q^xB<*EPx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/registry/Registry.class b/libjava/classpath/lib/java/rmi/registry/Registry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95dd4f7068c2ba0aaedf8ddf4cfb9b98eb288e85
      GIT binary patch
      literal 612
      zcwTLh%TB^T6o&tSLJ{TS1w~X`X=G#Lnw1(fL?WgT663;@G9ks%A=9amS99S5_)x|}
      zA?3Q5%*=nj^Us`fe*eCI0NmhQM~tB~us$tA4jn`CzT+!7Hq6;UhsKZ(<F4iPjb?Yi
      zZKWg0kc+ZRJ`{>GWX#%Qz122f-(Q+$n}O9yyBD6XEKhYTH{fwVdtyksLVN@xhKsAl
      z+`FZu<MpeR#)@&3Azk~j`A9kBr6b2sTtT9+j@`w2o`t#-f!AAz?=NQG+BWz7D9WI9
      z9k0i5x#3@H->P(U95IyVZm#53Z@l~>RU3Fy*TSZ1I|N8R1vHnMKH(~F>m+rdB?4*l
      z2gePYJsZ*Wgrs>e#AzjH9YaTo_AQ!m3~3~2hTGU7B|}PzxGeJ6BlQ4<CG{{=i{!A*
      VmLfJuuGvsK!RfL_x3loo@;@CSl0X0e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/registry/RegistryHandler.class b/libjava/classpath/lib/java/rmi/registry/RegistryHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91076eb3a4870f74cc3fca9bafa801930f5d1562
      GIT binary patch
      literal 392
      zcwU8&!A`<J5QhJ$$ReUZ;=zkC-tc0>nJXGdNJwaWfTc{D#df#ZE()*a!3Xf6j9b7;
      zNQ`sX*_rSECzJX7dj9~>M^_*q+%4s+3~i=D%ZVzS-GsCKXC(C^Wh+o4bhffo>Li@b
      zmmE7n>&Fne)tu1pO@1|zvq~p}@%`lQ@dHBhaUFB+l+lI28R5E8&p0!VD=ctMxT)x~
      ze$nPlk4)hziJvy)+;S`(FAlaFXL(Av?ftt;WL7rjCzUec>gWa!rL|5VoS=-rpX3yE
      f1Q5O|a|2DZO617}F88G79gSVzciP*xv#Y-W0eEQZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/ExportException.class b/libjava/classpath/lib/java/rmi/server/ExportException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd025685325942da02a01df8e491a1b4232b04a2
      GIT binary patch
      literal 647
      zcwU82y-or_5dH>{Gv^Pefd5fD0prD5L!zh&=Clx{KX8L<;FjziNa<Vn5;j&w3mZG%
      z#uqTo9t4e=SnTY~?0i47Zy(Pu0JgDWAx2oe_PU;<Tha-H?h5T3_S#B^hrPOJhf?_#
      z;)MC((3xndPz+xQDTYa}Srt0q`l5V5pku;hN%=wO`C-*-cEsrI`_|q4>r<DI*p<Ev
      zi-gRE8?iP$zu{CuE&aw$u1biP)TOX7f~g7E7$+oM>5J1&t0wfhS8EEwjH~J_>9H`^
      zgJwLuk^y1e{b!*aHW(O=U+RSXAD+H-zBqDK<8aP6oc|Ygex=ooF&XVg>^1WzDZ#F&
      zj;@O%X%<TVFur9lSO>8(I4)uo3BE0^Vi@B?=EFEnaHq(1jPFFg@QBHWXeP<gj=Fn{
      z-A9VEY<~*Vm;s_}7HQ@%T$uq^nH7zul`m{QBKwofWzb1Pw$>jTl34>XlP$1eV{s`$
      GFMk4Xf|H*B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/LoaderHandler.class b/libjava/classpath/lib/java/rmi/server/LoaderHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ebf6708ad4053cd6f22ba949131bd4f5442db4f
      GIT binary patch
      literal 685
      zcwUu~%}T>S6ot>U+O*Ybt^b1JMyLu6BDkrzsfvsGgGKjaavM_9NtsMaeKi+8fDa|!
      zBvPw_XciOZ&Ueo}%$e7>=NAA6*szcj*zC!nv~}ONBho|Cb~}_V=?kgcfV71vfoh5b
      zQhE0ELysIIP#H+)QF?Tvsq2pfYVA*^W3;clCPS@IMMf%fFN2thC<)9(v1;(JMm9{K
      z6!5rKAfrfNr~XrAccPSHtXn=CIW#ant6P{8*h&#a#=ew6H`IM{?{3>;$U;?M`<u*F
      zXwJh}xnqiDPidgZk%nCM)$u(gO{__v{uf`zdnat|@B>ZEu!rU!8oBG}|6SR*nn$KX
      zPON?N#FuSo#M$iEzr$IiUqrGXlgsRcv3BU(4=9OoGW<q@7X$?I{9pvuF^vNME#Bo&
      sM4sP988du3%asDxDwxLtlCPFBiz%`63$e_^3RYP)tLCtluIt(U9qv)LZ~y=R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/LogStream.class b/libjava/classpath/lib/java/rmi/server/LogStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca93a8779788db5c01801b561fa7f12ef8daa62c
      GIT binary patch
      literal 1851
      zcwUv1+ix316vn^tb-lPvaMMdjQ&QT1?LZ8)P}-D2lQ^(o5=bITrBCZ*Y_?kOrh5tE
      z5g{QYgv2ZVLms#`5=ijgKdR!Jv17chU5OX(oH^(G&Y5q{`0<lJ{|4{|w(>{`%s#LW
      z?OM=vYM~4cWl(GQot-F<b~lfVz!~j!{Mx61<3&A(KyJrs)Hinpge7ol&G*8{_M)ck
      z#xhMd1hT8!R((Smra-<~-(KC?sVj3vps+97C#18DF$Gpw;kM&B(H-_z9z<-#(LsC?
      zQfUfg*8F{GB8@XeOkrAJs^NHYGw!xzuxqzmDNt(od$!xO14r5Y%}n%#6AH{VCZ3%g
      z2u7S6Ut1vU`W=B<zc<(RIyL$nud`BlCe&P)2Z7wPBe|c)B{uwDemw~Mz`z1GH~nbA
      z=^nVUD?LV<n8!=%gjcB7xROc=&+h8uKIIjd?#O6ew(Zy*T;Ta~WvuW8UR|Y#Q#j4E
      z@Ts&5<*`|+fhiUl7D)wH#>=OQ)QWf=vlP;gBPNHV$=NRhCsJ2cwkl0^#cvhyCa!TX
      zT5-EA0}fUB{;Jh?-c-&T0;&6}jPToS^3)|sPr!)$o)Q8xCmkjAF%Rq@lnr?(-3bC)
      z1{64SNQ_LZV<V3`6&j5!;sbohefco9-O%cIejwNEP)@*pZr~#xwG}wBZJ@z3ab8-!
      ziZ^%sIM|aLj+)oggArO*5L~8!>Mdn3i!5@q^0ZPgXcvZTllF5%c9A>0TJ<Pt@x{>d
      zJgqylQvBwsOUEevqGM<JQNT^sxP`M^o$E#MdtSYAt}d_wA2eRT9DNt{t|DG%e?k%d
      z!u-9`i^sV9&w!fKp1Yb@>_y=!7WpmUWxSH$T-AP_^jDOB9wAtokkWZoEG6=;F+#;;
      ztG}T<dZ5oJ-1boUERUf?5qK4^B`~!C=65WQ*1wlP^fVFtU!6`MhP3?y%cHH>%xpbV
      zTcO5&0&(sb*GGvCi4P_a-`1Tg;*A7xmx5&YHL6P&=a2EuDDxrbC(z7lFK)mz$h@T$
      zFt9>;O0RBnrSAV--Ru9Eimwt=(W_Fxdw4&=>CjRUi`CNIM_Bs_+4NDhWa(vY+T{A<
      v{(9ypeKaU>Nk4<H3H*l7;#=;0#{%DD0YBghejF;jNbwhS-Y5EZvse6IDnmo1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/ObjID.class b/libjava/classpath/lib/java/rmi/server/ObjID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fcf58ed959fdc7ba13d3bab87e59f6e162af79e
      GIT binary patch
      literal 2488
      zcwT*0TXR!Y6#jP8CM7-G(krEus@OIcT2WM_6)kNksVUW_1dB*LNe}dtaFQk`rQn5&
      z<BX&7h8KMDNgQPy0ci`J@d7h4<8ScQKjDMpxA#fYGz}(`bM|Ge^?l#kYp?dtfA9YS
      zU=J>PP$5u1qtEHxnX_hh*2v5mneNf}OnAV9N`WnEE2&$j<)V?WJ#Y)usZ}%89W^qh
      zo-{A$@uWfHteVD*Ox8?UN5caGVpw2ff6B_*x@E`oWX`C%aq=JE)xZ8eAy8=<^EO|}
      zRN{<)FH(xtBTzFoI24YKk4;RfXkiy=LqO~69}ma+#z)7vF4u&Bdtj(PKcgmhDn4^0
      zcUGV(o7NK~S05==NrFVE?oA|3%d`&&xH|nY(&<l48C93yd^Qkmrv?qxa`c3Tjo2ix
      zIbvD{!^e%xxTD<{NhK&<X976SFS>hGWG`H3*RTuCGDfF{22^_x5U4Ff$qPT)rQL1~
      zjc6htd)mwjG_K>XPKgRCJH!5%bbD4}JSP{TQb>h4MfvA4rcEl_IwLEG<|KDCXQy*^
      zk2LfS&L@nt%`?k-@X`t`T82jpJ2mLR%O3Pn>B{baZtG4I4F~Xwzy^gCNm-{Qhhc|Q
      zpN8jgko;E(tU4-qS1QLUXeiH*k*3ssT{(B|W(=J&yGrGSEfxMTN%Jzl?KOA}BOXKq
      zwibt0o*Ir|l*J*VJAzmo!&1*18ip_?5Lm0{ad=LVRhU+x0!t_|@|4`IEfbCeruFQ!
      zEJ#HlED0Rfa13v<xQyAHo@8azcdoxV{^L^ONez>Dhw#R%Kt~y~a*pyq;xnr5bX%70
      zl!mv!>ne2q;^btfqISlVNvZ4f7lm+Edpw|bW9jn2oSB?5GF~KMd2n`3YjG?zq>vWy
      z%*i$}dP)i#E)(7h6B$|QrPA~J{#Z3~WV&A(p3^Xo^GueWP8${rWp_D`bxV1&3hP}N
      z;=K~jm2Ca5=LZ^2W19CXn#yGo#vxPo1h1;VF6qYx%w+Rdg=#dx!zVA1>|gNm%bvq=
      zv+Ov0Z^LG6DeQ0M+*dTO<-D$FUe9NP@`vmqs*zRGrkNJoIonGc`O)goatEzGaR+U;
      zl;@LtZi4Khhv4Q7slh%xrFLZF-BpNio_yt6FtCWHZ=-D@@*r><ttY%X<K0C^@Zk-(
      zgAacVEW<ysh~Qm>ZYg2g&_cHsw5qoQ*i0y329>N1FDz0{VkgoFU{--^1SJ%@(4D98
      zOrFLu`bZj$l15<rM?_YLu0`xokSh>A8Uh#jyiABI%+7}@bc5rb4=qP~RUQS~)(hNw
      zk!zKl?Ne}*%#6%UeQ+cc_!%Adu-^p^LZJn`S_<|FXP=V$XFQs#3arg>E`Zge9|H_7
      z4{(qPui!Ba;qW@xWFEFP5Lt#`I>RHO;63n<EA@tgOL(1HLq8Sp8(31nHO@Y#*e{6x
      zCA0li5r<YpF|O=ea1=2jd1<wmyec?mgURQ2NEIlsLyCNa8Y%kY8`vVJ3z$&TD>n<k
      zZe{#U(V^`q92%QQKIj~!NfM#p?-19~9{derB*aiM+_kS!%dt#vXbEp$M^)ub7r!OR
      z{f_nbJu!Y@k^ERBEL2Et2s$g7|13~!TnTHE?J&<F%DGcGf4~!b1T7H!)`1EH7m!$m
      zb1uUoug?;%-TgI1W2mbsN2e5&kQY7=a9EumGrbH`<!K3L7BTCy7cl2!@4^D!Up+G?
      Qbq|VC*IG#3MP+sAKRUAUssI20
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/Operation.class b/libjava/classpath/lib/java/rmi/server/Operation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3b96a52d96763c62fa7c986c02240f098a085e1
      GIT binary patch
      literal 595
      zcwUu|&rZTX5XQf43k9qd5mfZ#4QgWJ#b`7h)NpF#fZ@KB4K9I}EDO)2iN?f(58y)?
      zr!B%kJlIWl=bJyjo!QT?_YVN4IIv+b)Q5b|eKnT;RH(U7etRMm*D{W5SPbPfJmS&7
      zZ})~G)C|S=Cxf99tl}N5WHh*B$Y04w>T8Bt<9E2(WhmW=i4q~#qR(L6#(hzO3CDqr
      zO$M{k>=wbW<sgSVoq>$R{cPM5>Vfx0BDpmV`KZg4O!UHO=|?$bI1K(Ah*~q^34=2b
      zy1kmA+GwtuqM+l<rhYr|OogH)lY87{=}A(BBWl&82PJsYFIgtpHVUMRNWK#NEmB5e
      zdvDnAj$h$ElQK}I-A(JyVBwr9F0f5%H_Ju^I}1jY*o;;!jjhOj>IHJ%3*4tAG@m+e
      YQkat^EMN?K|3L(65C-<sy`Dk70o*5RiU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RMIClassLoader.class b/libjava/classpath/lib/java/rmi/server/RMIClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91061b9c45293029d9186414afd46e1e235e28bf
      GIT binary patch
      literal 3592
      zcwVhmTXz#x6#h;cI%zr-NDBo-EcY}ijR=BLM4=R|qyZWzHwC7X({^Ao6J{p00le#*
      zmuFqe%cGCz15{m05N~Voqg?KDW|HPIrIke<&P>kPdw<`)o_X}|FTVlUgHIGh7&c$i
      zX0?n{G%_xCX1S9Y9~&JuHP_ABT7f$Xq7190jHy}EnUj;(xb88uA2KY%JIv6Q?4MwW
      z4%-DDM;kg+tUx=%s;pu0T)8;Ooio~`$r%z^Ti479%`wFPU^D8?7%oF!_VFx+7&=UP
      zlUocslGz1DdCxJd>7o9*Eh$Di@sT;5mpsF^Tm^}$uNL<*W12Z-J4IeNJD#lxDd-_8
      zO=fbocib*pg_;zZJ;qB8*ENq9h*#d2wluHokT=QY@H&(_JQTwQ2E@VejEXL7VmJ_@
      zx(s9FWYp4%GQ2I)3<sags-P&yZBelm+Zej1xp&I3XAMflsO5T^rE`&m{w30uFB#I#
      z4i!6vosDGY7@yM0W{bHvl1M4&C(tErijbula?5hA*|(se!Xg>dsfZ^vmwan;O9sQX
      zW%$Q%`l<2|v1eFW@WbRwG4w8?&d??Lf}%NB37X?%2%Sq$&W9kzpRPr}x{}zh;sxvt
      z!hTeSJ#JVYccwI*lOx?B7z}#@GNOyAd6!epq_zM5Yxy)^!K(^r%&GP2Dqh18BJSC~
      zGDA<YKa6ZwBPwlB2h;_JA-$ZD5kyi1?YN3z9HVxx8aiTGwx{`nsbMbqu7}b}w#W%*
      zLqrAQ2^Fv74TgwrGOP)S?YhRnUMW?Fdrx?63+j2UmmR~a4BM3OIj<=Wi<OUm`3xz@
      z(*?7zJ>odF6T?~Bq-ot}6iX&Aaxz?qV;twijdY%2ZCIq~>S{M7P#l-=wt}}9c1~O6
      zj1*n8@ka?l#bq(mI?0>r5R2hzFuw*#b<kHGY?&ExOroGbrwd6y>Ef`Yc{7=O#r1fR
      znz_Us&)}{Kjwv4^*sKt}B`PM^ieZL93C2hq*I+8R-f)%sf+~uj(rM>6%9`mmg((Pl
      z|HU{;pl^X244axLlaGeZk88STI~5f!D4DBF+rC~dRcAa|J=|KEkI#46GtA5=4Fiqr
      z4s~J{a|+&};%PlqQNc~}bw+b@vX<zR<f72Ht>Rt0CvHf&-PognYjj$o&{BCDUaevq
      z!D%ez?Xp8o8ltMZ8}m6RG_Zwkxi*MjCnDkti2f_|FGEkd>9Hbp53wKVB|^78<S}Tr
      zbkeH&0`y!-&knlVRw0VjQYwNq=*C)Uc%9Vlm1g(Qo6u4c>r?aCc&EwmNS$E?&th|6
      zcoT7~H|(2yPMW+-pu&TmdGw79`~zhk+s6h{X?7R87VIZT3OGS)7BP$wMowb&`MMa8
      zSmI5fGU>=}43f6MPlw`XB>oJ^Mg#oZZXZ9lJCz;?!9Ppu1mT|}{PPk&<?FWKi?`=x
      zxT;L(6IEP0p-lEI#pK0iCRb>^N=!6jGTFf7K#j>uczIDKT{sxZWJog6f}Hd==HxC8
      zg{GxK>rEnai^$xrOG_`2IV#EY*3!~lOAB2m^b{1Lbh1VQkJC;>*d^d>+6T_233#L#
      z^D|mMC(JJh^Gk`j&esf55hWJ|5`8F(YlO~x2S+7NVKJOH1x{NX&NsAvOE}*V&i4&C
      zSt`SNoE)m9FV0Rvl>RB4CTYKq1nxevEhOT<V*Enl%soupuleP-&<}Mj6vqWhoUlV*
      zu|Z>RmnVcfkBiOi_mk9(NX@M^jZXt#_av^&Lpza}CO3_*u!7x5B-uRdZ2E7g>7P+%
      z_*(4J>n(-{NG_P)Nfdzl1oMD~#P5`>hm^=asInenJ^sWF{Dob3R0~f#b=><h4ePN1
      OAK*hdjXsk0KK>6_U{6;7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RMIClassLoaderSpi.class b/libjava/classpath/lib/java/rmi/server/RMIClassLoaderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a767f3430c4e1e9895baa684aa59bde46c73b14
      GIT binary patch
      literal 1029
      zcwVhj%St0b6g{PFT3g5WYhG%QfkeUfv5W|Vj3BgeCK=thsw8Emq*Eo;717UfCAjbd
      z{HS4Wb)qA7P!M}j_jT^Mr;A(ne{b&qY#{HWk0F1?FL-ELGE9WI5GJe~?C-`rNg~Y~
      z!c@<t507Cyg~ePo!^7H{s9T2Iwp7yYF!UFS#|+-CZioQ=7#hI<atvdURHEE&)r9%Y
      zYq4OMjC7sH$J|I4caxs|BNK+@=v5&lhM|~(G|NyfME^xqt&yr(dNK2atyFxTC-UIO
      zWnG+Gsa4`*l3^i*C}G0`9-nH{5{;uu^a%1X&9L;0rmXFrZmY&4iZoYcQ*qli^s~R-
      zRrB`B4#^&Mck<Kd%d76i9QGJ;^7bh-qVm3sUENJ#pTHPadrZmnb~$O89@@Vvr7iE=
      z^|wMseKAYQP{`n%rk>ECs@tY6_M}_Z+00U|xfU-EdIoUc0C}|jbovx+k!3Esa)ZHZ
      za{3U^8IT3m;b9ZQ<c)MdWIw>Ywo!}`Vw`e0vJ;rXOxin3wK>f9tbL@~CwwL*SM$hD
      SQ05E1lGi~jkhhq6OaB0SYaKQK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RMIClientSocketFactory.class b/libjava/classpath/lib/java/rmi/server/RMIClientSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8cf43dbb867b777e32a4c246b9453f100a632d1
      GIT binary patch
      literal 253
      zcwTLeO$q`r4255Gbo^TgF5Qc6EUsOO!hj+;C#WS1)v=XM6}_4Z58$E1>VR$xgybb(
      z!h1Y#cK{P~VpIr&ojgn74q6oK&g{fymCSO@#-~>8*)OE>)?H&ngzksUrOCv4yJO`E
      z9pzYhF4^#Hxco7xciLprWK_-!dr@*zLTi3eeDvCyB1V(Y`ykqiWc}R)Dzzu4c%gG9
      g^#3~>zc1?qLKW|zV6=vM&~Z>vsEv@V&{xoY0R*r`1ONa4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RMIFailureHandler.class b/libjava/classpath/lib/java/rmi/server/RMIFailureHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e067199edfce213c1419754177b76d13b0d6623
      GIT binary patch
      literal 176
      zcwRg8Z`VEs1_nb0PId++Mh3;K#Ii*FqTEdV;?$zD)FS;LUr)Eh%$(AqRFA~Gl$_Ke
      zb_Nzk1_7|LoW#6zegCAa)Z`LI2KF?FGDZdo4IhNGYejNuK}lwQp0#EaBLi1(erZv1
      ns#|6bP@Nct*?J&-Y>W(y49pB5zzDR8m4OY!Vqgc7Obi?VRYWdA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RMIServerSocketFactory.class b/libjava/classpath/lib/java/rmi/server/RMIServerSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a27ab7a4f7e270ce716db27f39b510f4efb2d728
      GIT binary patch
      literal 247
      zcwTLey$ZrW5QJxAOf*`EcG`<J9@f?h0VQCb;5-(IKRLOaL0`?n2k@c9GlisZVc8kx
      zTbS4T@dPkOH-twRA7m+oIcK6^Q?e1;O`KLL)#}K0C6(3Y9>OQ|D)uDvy-0QkR+i9L
      zhNb2D2Vppgr|XK%*@}9$AVkZX;)~66UW8~91{IiT5huUIQK`Nf#jEVZgwg*_v+rj>
      YAT;nDauu5hoDZGz-EFyzoc7T90AL40d;kCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RMISocketFactory.class b/libjava/classpath/lib/java/rmi/server/RMISocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e854a29b8d7419bfa2703b7b889a0c18e6b3338f
      GIT binary patch
      literal 1425
      zcwU86U2hUW6g>l!k9FmvEm-SUKcGTuyJ~%~Dd|g<NP;$zhUkM2%QDc#?XDS?M*o$T
      zhbEf%1N>3Oy8{6hHo^mU=FGY0p1pT=|NQ;=8^ANXh#|zV(bcbXO<bB<kBciVwD)hT
      zb;tP3-HL9wj`$Wsgdr_imTq^nvu2kYZVXX|oq*g^%jC8@qYw|~*5%5_Wk|MoTkl&F
      zV5_#s;xT0zeIcmuL}moM(e0MS1;cibOhq@XzThJg>BP&1W!k2D!VoT&8Vr$Br^RDf
      zX4vc4eJw!a)zGick%A0XRb-K3h?b>b0t|OlB%pY!yDDx$VMx_Xo4@N{Hn}+0n-*tS
      zt~rKoHFRNmdkHECW0kD97iNz^H3ZjPKCDNLE!HN(sk_3oJIB@15VN_f4SDov%ImKN
      z|KggC-HTz1VMS6*N2{KVPpJGzeQGoe>qVd9)EVifd)%FwVWGHqW?pl{ZQUS&&YVEL
      zSX!(={iMvG_A_L9-e!8ZlTQ8j3X~e&cn(ykxXlo1UyxR3UaJsnaPB@Sb*C>3UNODV
      zW@jJaz>|n<Qo%4nSVD}V;$0DXK^5<U$Vg5oCJ;vwDdMJScSL;em-&Uv#~Z8+kh?~1
      zfVCe4hOkcmNfHBIlE4wAXt*a&KmysZ%ppZaacTDk_a~`}B$g4uiA+<6Bs}mO(dXbH
      z9ucxZScKvxA=}7LBjmP#9a5Pf{&GI2!*X>Zp8Lu@mJLXth|<V!UY?NTHP*h5^P>{|
      zFn+=Wc7rl<vl*YJGWPIft|tTR&zj_9vh6deji&RIKB;ph_h(CXr^fJHt`7eJsC_y<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RemoteCall.class b/libjava/classpath/lib/java/rmi/server/RemoteCall.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d80635ef0e3d0067f28eefeb28cdffb9e6be734d
      GIT binary patch
      literal 611
      zcwTjoPfx-?5XIkOr3eZLDt}HM%f-gCN7RJGqzNP*ysc$IN=n;ow}j8e!4KevGENJv
      zCBhyynfHFXZ)U!KwqF1qF*H#T7%t^n+G^$5F{w2vdrGTN(^&ex2}7Wr`MwMmw)43p
      zR|~Wjq@6@ZiJoaiawX8WMsFGCg?nn}KMB-dHZDcl3xn9ig+MpwCQjin^-Pf>S8AFw
      zqR1y1(_zM$HF_6la`q%B$-RHkna#<a{Wk}A+WVB^#4nVA^>Lzk6J3G(+}iQuP^l#1
      zHcQPnXhUw2@9Zw0G22-QGv;AHJnAe=luNIk&qeER+YjlZssK-l^q9Q-b5v1*$(6x+
      s4fWJuy@AW4`W2c-_0|c#jqAOh=G4$BoSTCew}sw2_7f}p>>ljuUp9e-_W%F@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RemoteObject.class b/libjava/classpath/lib/java/rmi/server/RemoteObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87dba3d905095dcc76d0c99523a64f3808b8a714
      GIT binary patch
      literal 3766
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RemoteObjectInvocationHandler.class b/libjava/classpath/lib/java/rmi/server/RemoteObjectInvocationHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..107de960a5f38693ae2bac7346e7c282476ab62b
      GIT binary patch
      literal 3872
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RemoteRef.class b/libjava/classpath/lib/java/rmi/server/RemoteRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37fc8b9fa032ea9f30aab3e7d8466f965fff778f
      GIT binary patch
      literal 894
      zcwTi<O>fgc5PcicI)pYrTS~)6%eN8^vEb@sT12X#paybiPg`f2ZtL1+y$%sVNc<#@
      zaNq}U<Od<fc5qCa9#%8^=IQO5+4=S7$4>w+@XSI<pnf99($;6nj!2J5+k12t7}}#F
      z3uS>DY1xzh$nG7UkZUX~3aqE73hbSUA?-^~eUgVBF`Y$}^ai9O75MKv+X7-&V7VRm
      zk&(U`NH3;^m+JeM&%eKZ<3cFiQ#qoynvT>&V5K{IuWz*SM@|LT1!__3x7cJWGbymB
      z{Bdx~FK#uu^E+ru&vTjsf$Gl0rO>dS$ikYy>g<WU!mMoyHM!EzP@rEB&D5NNG4|^5
      zB<we2j)S3d&^<pRXSaC~6R>>xn79(yzs&TMdvKxL3rWkwsnhu<KEGoNcLX-hxi9ot
      z9tJ*-ZAoW^53%$jfz8Vd@g6wMeg1%q|5`@J?O@0PR~pTZz_k$>rnEg7vC8wQ3NJ?1
      zNG~>FY@FgWroWmiz6&x$V68EiSM3L}cIlN$_N$h=Y9&-&MRvkx0VUL7p~Cr9-tH2r
      zd|$$Hey^dDtTS$MzQRbEE33GLBu(&jzUMe2x3N)R)^q0F{}g8UJ={;@CbrV}01wmn
      N2#=W{@FaEd^e+xZ?PLG|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RemoteServer.class b/libjava/classpath/lib/java/rmi/server/RemoteServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e656db2bbcba75cec6138b28c903c7a48f5edf09
      GIT binary patch
      literal 1358
      zcwUWETTc@~6#fQE7uIqsH@OIlh`k_G0WZiUF@OQBU??;JpO$6XF0?z%b{73B{tJDv
      zMiMViCjK2CO^j!@g(4N=OV6CM-+bTs&dl`3?@ylr+{2=V28N+S^Vm$d1v^pV?lE^0
      zTf877Px*<4z@>=I{X=d^h7PLQW<Jf`k}aH_^%Vy8jG=W|I3;O1GHvEP-t@g+3+H~$
      z{bC3%*p4li7#gFoG(%un9B>_tXbVBdHHP-2?eGn+u+QCXb3e}+!bxF~fJrixSBn9e
      zvr7!a$*cOGCqVQP#1_xY$I?o<M=5tvLoUxS3|@gJTUjob^EP+nnkbR`?r5xn&znv*
      zk&>?MWC^CPzOi^w(m+ZYh8Ut3IV=5b2>Ha4_Ax($>llWiVT9&dqutKA+&l<j6gQ~@
      z%X3}QuM{tKP^r#qxWzD@b-YBKnHTHpjwK4zX9cTc47WqLj{asu8P;~3BS*Y;49j<E
      z<jAHmX;eiG>F+TdAr0F<UyB<eV?^p`BRU2VSCgG!=!w=3NgckfXitrV>uoT!*?+Mz
      zM3VpIinazzTqZ@9p}(qbi^QfUi=LzoxLKeMG|bS2tI4jqu5g=ipNbpGVWF7k1+vX)
      zO4Eqb6%igCdhfsaNHSZM>^nUa!n`EAHHe-Po@?=^wz|Zf=P&D&+7K88snGjm7(f$(
      z6gA2k&`eoCy%4H|s4_#5QEZBr(fZzpw9~In5m+GTB06Xls({dmFhxbsRV7#=q{0T{
      z6J>N?WLTj+t3E?-1yyBGt6uaGM~k{L^liZBrFY}A9#QiOKk^Ybp2xpo>@8a3Uon=P
      z_<-?uCm7rfN6LtOIg=aq{cRCNioETRWEwr#BkET~xp&q=fU-N7q^yHln?k~G;V%7;
      zRqV`?u(GP3V0t$^TgHQ$M$rF~IX4g;5Ald%3+C{+$`JSGeicK}XHfPS=Ka;e9}cWJ
      AL;wH)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/RemoteStub.class b/libjava/classpath/lib/java/rmi/server/RemoteStub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c560b3e73e5ee24a9b87ee1c75476f05cf0bbf4
      GIT binary patch
      literal 704
      zcwT*x&rZTX5XQfS0*W9AiU|I_0VWdTK_iBP5EBi71eAM$A(lXE+J%?!X*?Jb58m||
      zym<5_h_i*nNW@ELcjlYlH`9Heyu1Q9#(n@EfmBZ)>3Mr#<Q=j{WasNNup~9)uoZwN
      zu>E(v*6LAP3Pd?;==~<yj$xU1*JS~5BM>fGrXzJzHue6Hd|#7~x5rOP3HUDz(~w00
      zZzkIm&`MT^g79KBgdkP~A{E1=>Tu8^`&MuDNg!6S+H9b+4c});P2L+04_8?{eL-M1
      zv!Gt5ZXw%Lz8lIn&g0nB6-fW1=h+>SbtOAr#C3iD^%Mw}>A|M9E~&E&ULk}8HhCk5
      zd%4=MhIX5-47FwChkB%-+5tCs`SApj@WIb9z&8(;IIF22$e9plPB;pVzT6n$Csz{T
      zZ;&H!%F;7L`4pOpu!a~%1&Gf8MOG@UKX*9B`aI#1drB@LF;&e7>cq>qj3l<WmU6Rm
      W#Al@EiB%@nei3)(i2Ryv&)zrS_L0B<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/ServerCloneException.class b/libjava/classpath/lib/java/rmi/server/ServerCloneException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..393449a40167b943f2fe0837d6a7ad76a637e115
      GIT binary patch
      literal 1307
      zcwUWCT~8B16g^W5Th`^Hm2VU)0=7$`g5NA+Le+?=@=&NTJZ-yUS+eXlyIb_lU!%Ta
      zqOH-yR}<g;8U6wj<DKnN8e9`!X6~Ii_nb5L&iCJ+zXDjsx`Y_R?7n`e=iLJ{?{W8#
      zyZKVE6)eZ*4_;My-8UUuLi`wM>2@t2+&*>uQlnmXT%Q{qB*PH#n7UQwu1ERK=6weC
      zn4!Pm*q*Q3ep$B~yl3~v&(~8Mzcv|q4eslv#V}Gl5$Nz~1Xwd|(_be*rVCN>UDK{<
      z*)l`C;22y6Nh?s0WKbi3k>sL!uxQd-8V42bZtE3`Go*@6l^&qeGbj%a<NluMG0YeL
      zr(find4lLK8#2ydLfGsVhNl#q#|4Hy@xp@M@JJ}vZGL;tbzTYsS~l{uk4P>mka3n2
      zsaURY{|Wazy++A!CL3*FR>39ANSJ3BI}O-qn3lm^85yV&veeYm2n7qsF-V7EkXtXP
      zC*6*>D*L?ZYmv%xm`EVcFs`L-?$NhN^W%=CO>b516Od&EE4W5u*Xwm|8w`t4WB=<Y
      z^c|?&5EM60RsPdhcjavbcQC_{@SXN0h1Ak;G-H|QDNx@_PQ$J8ho<-{6H#AcNfc7s
      z8TB8CVG=#)rA!L41VuDNisKZ~@1S*nvU`M%(JrYAtcAh%0XRjg92`F)icOrOXtWK(
      zFh+nN8pRlq2(n~Iwo4cxo>UiF7*}&mOg>X{A2EGGn<9OnMBcW^%?^f84(QYE!VY~h
      zq!&?|kTHtsONBxPp~c;b`T^7G8^~h+hJ@O}<)bf{doF@cxYEL6YN?5<;<}0JP24)_
      zI2i~OD;PwTRE@xe(q;`^Fswog6}7;Dc$!dr3yHm>o>6>4*c$-6E}~?IXe~h9{R2zW
      BDk=Z~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/ServerNotActiveException.class b/libjava/classpath/lib/java/rmi/server/ServerNotActiveException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8c77d5c3c07347f73504ffe31683ff224288abf
      GIT binary patch
      literal 535
      zcwUWAO;5r=5Pbs$Oyx@uR1y!~023SI!2^mRC`Qw8L3>|tgKJ8wZ6W>_e}yL!5B>oE
      ziGRX4TZkqa6AwFYX7|l|GyC@O@(N%dwG0x3`kj~wE0`!Nl)+2})*yzyA9Y5Nn#r@r
      zk-U$T?`2>R$}!s&-q`wjAQZV(3D=Q9$o2KbDS<8txvuYpk?<l%xKo+x<lj#ol23<(
      z^pWyZ)FveB4ToTK{Tpc_iF_6&RtW`Ld9pv93}tX7hOQ)(Y=6WCf^E27UK-J@3JFd7
      zzbmu|mAd`C!XOHiH*Pf?ZC=slWu83LcE3mjbKp;dk?bk$z5SQRp6<jBcsc%MLJcXT
      z88ciZu)>G*k{q*qbHGT9spcHH=a^F9XfgsV7&u0ev+RO|HI!me9&{<tW~Sz*o4a$Y
      a|5WI4&v~p+U9gr4I;&zMHs6eUwmt!-Wpcg%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/ServerRef.class b/libjava/classpath/lib/java/rmi/server/ServerRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..455cf310afcbe4478f3a2979dcdbfb2064b8df47
      GIT binary patch
      literal 459
      zcwTK$OHKko5Pgkc>jV%LKimK|PF&B5phgYRgo*5jNjYgUbd#QD!U?#A@f2=csB4el
      zVT|RF5JFf~DtXoKlh@zB?;ijzaVAj`XpN&h^6f<V8QGky9~Nss&k|*UMsZFfo%oNV
      zF~v?|cMEAi6XS?U%wR}G>5y!ujDEVi5)k(SwVu(Li?ka?>5M90pD(YAx5ke^mF81p
      z-BMkk+wQN#m#RU3GegknZx0Z<*(eb3uIDjL9ouIT4T19w#nqW(CFFXkBJFNX#`ev2
      zXU#5jR_P>=XbQBq7xiFVH+Cvt7xh9jvoYPMlmzOlLNERmxIKX#o(fM35_`P&`9n(Z
      bP~yg`s4-G!q|Ez(kwYA<A;&x?#rxAg^o@Ur
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/Skeleton.class b/libjava/classpath/lib/java/rmi/server/Skeleton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c90847b39601b04da118728959fde0972f424d7
      GIT binary patch
      literal 321
      zcwS|X&uYRz5XQert<hL*p%+h{^<vO#j<$j&ASm?WX}b;@U6Zg`rO(!b5737aHwleU
      z_ptE&`OPrDm!C6$5uRN*gziq9gs%^gpRqo%_LqBBY?9bTjqp;WO2iv~{<ULi2#s}=
      zrNYQ9VcZWZdclXpa1j0<SNap7R51G(d=k9(Z^@~Nk~nkGB)r~MREcf9ajIDg!)ro&
      z!)Bhc76nD<^#`lFMO7iN^fEbW$<s)&rT;D(=184DctHLfd*CDLaNt^1vwj0!9$3GH
      OC#$`(hj#IIN__=R>rz$#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/SkeletonMismatchException.class b/libjava/classpath/lib/java/rmi/server/SkeletonMismatchException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04cf9194b824569220f07a284c14d5bb2d30f36e
      GIT binary patch
      literal 487
      zcwUW<%}N4M6vzK}(lI7Yvn**5w9ABsHf;=vw4j(;WVyeN2fZ~Pa_1^NM9W^JRnVdb
      z=w*6?=*$>yBIv?B-{*J#_v7pB9l#;#1y}-&dpVP?4wajbo{@HY4-}Azqbrq!()i=E
      zN1rA}#Zdt{f%;<nhQip;qAO5gfRaI<bi(=FMOQ#v3Y0o=lo%PAz6_?6f3{C1^6BVP
      zz&=)yGHrp{o|jPr8I9bY(JC6X8hrt$OA}4LG&B^*b>bm8SVFl72P*<)PepV+4F{xe
      z<scw|su%nGzGM}g{}gj(tP+8y_wRqUSa*`reu-j9y?Cm9I#(%r=TF2zx{6&0)(f`V
      z$irq|;LO4@M<V?M$3>*4#JA0v#opd;zGC$yo2;;Pvg#=lI#}aqb3TPC*0Wt38>lhQ
      L;!e7=HD`VU<}-H(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/SkeletonNotFoundException.class b/libjava/classpath/lib/java/rmi/server/SkeletonNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b433cd1e12dd50eb45326bdf556dd61ee714e70
      GIT binary patch
      literal 696
      zcwUW=y-r&}5QWb;#y2wm5c3y6(8V^wq9&rifCMrwV&Z<WN3h{~7wug`o+B+)`ZTGK
      zQt$vg3Pq&60AluH83aU7+})YEXTCYJ*SCMJ0IXp#LWWTMrp{Ewb#x_RcgC*LIN_MR
      zHFfKEY}d56zqk0*YilB82{V297w%Zk{lA1U0caIB*(H*H-Q6P49$~m@P2!dDO%-=}
      z;K$9y^v_>^{}FPZwb6cqQ210!sj)Igm4<iP9IY3dglyHeIgfW38A2X|gwdKdT<>-c
      z*&V3Em<ba#+mew=220*6X8o~F2<6(FS6dgWNuWLRK`6c8?os7|QEUdU)4}V^t8E9z
      z&YlOm>82#E3ok+m`G)Pf7Vqe=+Twp#SPk8x-r`foE#<k5Wsn$xoO2jJPVPvu4BpE}
      z;YH;flFEkU8M$+%@+F3Ur<zeY^J#TcdaD?dXzE^taZCVdG>H$w2&_VnwJQ_D%&1ge
      ixx~~{*uFH?Q`pkItPhKNun^6P;b7@w+C7hjAh-k8s-!Xi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/SocketSecurityException.class b/libjava/classpath/lib/java/rmi/server/SocketSecurityException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df031c60aad4a13c7368f3193aff6ff9d6473a70
      GIT binary patch
      literal 633
      zcwUW=u}%U(5QhIn;0%Hw3M!JQl>$a$Y)mj%ASMuEgVG=823O&Z>@5Ue!@@W40jx+Y
      zd;p)v#7g7rLC_#37CSpL`_DK3-RtM`3xETp4fq&#Zp^-!mmQIJx$JY9uRGQ)S9Nan
      zq)>O|fyKK@IJN;l!{)TOJm@-7O+*YadJty2!KF*}W#yECRT&~B$99!ztA^R`@xa5;
      z+sFOk`y)f}SlB`p84|lS58gKIR=%#Juv>*pgTY^Nu6PJ@SPUbC1%_x%*!;ZLX>xgC
      zHrt#bUUMv3Y0_e<$4$Sw7A`}k_RsGtkWp8&ez{=C&hYl5^UcUKw9{4XG(kMFk(jAt
      z2-TgQwD_6OUekYg+Sjw#1|ujarVv1oZi6Zx=IJo~Pbh||Q>5BQcQBh9BJ$*Eq7*}3
      zw@9-mh*6dtsj!4N;AP8LA%<op#;gi$)H{uAZf}U>G^|2HRS&i`l1*U77^br|ta}zy
      H-t@*73-OUm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/UID.class b/libjava/classpath/lib/java/rmi/server/UID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dcddb18e86e12de0c32a24f21b7afe0ce4e8a924
      GIT binary patch
      literal 2816
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/UnicastRemoteObject.class b/libjava/classpath/lib/java/rmi/server/UnicastRemoteObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0798f7264f864619854400ca4ed2992de92931ab
      GIT binary patch
      literal 3032
      zcwVJdOH&+G6#gzV&`jHb1Ob5w0Rtp69mo)aiDWQ7CSWFkK^YzapTkT8O@?mL(?iA5
      z^0A3-`~hy=xXD5n0V-4}uB>vWmX^A-%9Z6~W4W_D_x7Zxp&N@Ts~Gy;+vj}eJKs6y
      z_E-Ph{|vx6+>%hk(6gG`$R(^bJyFuE4b4i-7<xWevZu5))7B;zSGBw?A<S@mzoBE1
      z6&r@5bgJiyvzk@XO=Bi~g@IjTIFd4rlASZ`*<7)#)s9A*TK@X^t#b_Fb<?uRCe0Aa
      zmzEe}<GuhB=~PkI3_EM)Z))~fE^nLG>q&Ab9q8cD+3!#{q8qw>nLK0hSq6FZc3xYz
      ziDyYdGeesT<mBYOCYmX;pvho(M8Q$C(LpTDAsWYZL(7!c7By=+w^-B|n#RpM<)0%J
      zXkR%D+bepBq0dJ(K;@*26X=%E#n2s;nKvf|kK!bWzO3yPhoLtX57cFkB0Qm9o=_jd
      zbS!;X<qs=(d{#yXr+I*55egMoAmbqkXDI5jQBE8nh66RFElC()XxVQ?Dy6T;=*MXp
      zDh4?^^-;>-2Es5Im{l-a&hfm0Av{hUVrkS{QNOdO6p<6+T~zP{h8Yy?Ht%DnfK+D>
      z8OI@+j{A-n9?tvKrPGq19m9!$K6kk|N?+z$j4;&Zi>5(c*ZiOdiaBFBQRyxT&yxJr
      z;}o~en0B_j&Qs6|Zr4ko;ccv1j#`#!)nkkf$-Y}(TQ6#BL|-e&NZ~3EPE*_x^Tf>B
      zmToL3`J^QLngn#HbC=lVMdCTm&~dN<mB?INWjN-8<%M~k7v=?qiGWHRx*>e760!$g
      zfR4N}rZA&m7ISpl&{R(GF6s=LMNc28nCEmC_|*QFNS^#&Qt&cfVUTi#f}=)2&-t;a
      z4&jpM>{H{1nZP8s7x3jn3i-e8i+~YnC>wictHn=bA-*7iaysF@$e7u3e#LQd`<d&u
      zqCf|Aja<-*+Ji=F4p4oTm!+s6j{*(Ul4<2>pcs`%&YES~jOqMdZwt7;&vGofm#IPN
      z`x-_EYEef!iFP%prypH{Vy)nacs8Jso-*0eMM?W6;YSw%T4*&yCybtTYG@0sp9+t5
      zVP8Z4=Lr1<#Q>oRD@1Wz_|s>~hjo?K+)GiT+vudfE%a0o8wBGeLR=<>D+0CEv9F-=
      z6=%-`exDEjO^P3;XRo@2Q)=`cV(Jdm`5pAnZ{cioU<-+Rc#H?XFjtM+N)dq#@_Yjk
      zyp2x0gC4vq;;Rmx8^5;_pRX>Fel=p1Bn3l)(}<7Lbvofzjp~_Q5U(fI(BAM)+IOfl
      z@6q~wPuh)c*hc<UAV`L%@U$nyGnEpB1SNR~srjbSEj;(Ri(V(*eBddOTtSV{%wO}-
      zJzptzM9|#D^-uOeedK|PU;>#6)UXdKNwjzxk{V^(nA{I^-;=3S0pcr1;Cg<6`XE21
      zQt@I9vyA!$ranZ2x{IkzOp~;kfiKbQEq6baJ2Rke;>M-0+8*A<i|yemiIWrp_?mX#
      z5dUw{jPIypzegNDU=Tmz0)7$%hn#>e!C|)phDF_ZbuZ#oyhhm$5>k%r!a|WnAN@(u
      zB|?#b07ZWBw47fNzEUbJCyAjAQ5d=)JYh5u<`%u-J=NuC)UIx0xvJAdzZ%`d&AZ{d
      vZukx&0Q^d@zfq_^2;_Gv%%3y~e+x?84xCG=3u`baTq}9-%z4Y00&V?YB(1So
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/rmi/server/Unreferenced.class b/libjava/classpath/lib/java/rmi/server/Unreferenced.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20ae15692492dad4d0da3291ee660931bf01bc43
      GIT binary patch
      literal 150
      zcwRg8Z`VEs1_nb0PId++Mh2Oz#Ii*FqTEdV;?$zD)FS=RyrR^!)S}e9<kS>)1{OvJ
      z0kDdk#JqHU|D>$c<Pt^(o>C-5j10^gnqiC#T*3LJMaijdnK`M941&nU=z&aNV`KoT
      WWB>t1psB13Y#<f`JCI~z-~a&llqD(v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AccessControlContext.class b/libjava/classpath/lib/java/security/AccessControlContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8088ee91d04e8b12ab5eb9cd6b58ce879ae58186
      GIT binary patch
      literal 3506
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AccessControlException.class b/libjava/classpath/lib/java/security/AccessControlException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea2ade7e89af360a95a0631ad0f9bb8a0e613ffb
      GIT binary patch
      literal 772
      zcwUW>U2hUW6o%j7Qx^I~g;wZi(litrH(q1f7|^QOG#U!G&9a@)G0QI58EpMQ-fJQu
      z=|z7)e^ld{VM8@m<IU_jXWxC^ch273-`oOtft@T8411s4&#o=GH;#n*V!!e{E@dkW
      zR22HJuRT6eA`G%fF;tDxcY}f5iRE(v!?NU&aQz;SB=y~QZ3gz9VS!Lmxq<4r{+Opv
      zPQT{b-sFlQHR92bq2m1R|AD4LYDAME^HKyt9Wj(@&M)RF62YK(&?87Iyx<ndy?_E%
      z80<%ce|OM`B}WAObUf_y=*;c=oT2E19$mzx>rfvLQ|eMkhJELM)<w~iLpji>Khju8
      z;+amnkfYqy0xaZdO#`kTf-!8=4*s<ms}qhRkG~N*TJ`Y|&-M4%C6grm?gT1GBST%*
      zbWc#!&QvF9Mrr6=r0$sd1U<9$2Ag8(yAc=Zw9NQ~5O1+cRe2`EQ<MNxm9a(;4O@v}
      zA4#Ll^Yz9Q>-ED4Di6R#^QuFs&IsN$(4Col4$a3<UFoz5syDD1<85OHr0YLW`8Ee<
      R%<$X*3o}6sWY{vQ?VnT6rpf>S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AccessController.class b/libjava/classpath/lib/java/security/AccessController.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d2ff3379cb83eed66394834ec6542b52337ae21
      GIT binary patch
      literal 2821
      zcwVhmZBHCk6n-u&3@oFiysT|4loqz#7Yb@?6_(N>eX%;*5=)4FFzGNmfvL;xW_GqI
      z35oSrm^8*16YE#}V$mjI(wIh@wEhSGhw-_W*#Tx>Sfl%4?wxy{bI$Xed+we6<L{q;
      z0q`akG_(l}-!<=<lV#hgxQ@3zIcHgRxjbJicy2MDw_ObpfnJ5ln}wChTg!KC%M<9F
      zaSDz%E6|=uE(t{Di#a=rc696LK&QYV!ztJ|D{ITPyJ#-wZGk?cXqovX({<##zZmgW
      zowC4)(VRtw0j*Wr`fR~=*PL?MDHa5V5+Sc$V@7g{UcGPGC6BLV4SfP*O>zX#C<F#{
      z3?jw=E4C-?_I(OIok%t#>Ekj{9KkUSM+HtDjMnig4zUO&5*IkuSdM_6D=xUsJtuFk
      z*g1joHQEE?oaLzs7~xH0l<wQkO2PChE=zxTW^uX}GkZ|rnZ?D-Y$nNP6sItzVU*jq
      z-(@Kq-aj32oEGRQRm!VDMbCs&)h%dpsRs$9G$d<!HB3!M8sqFpx5DliNYtr-q&%Tx
      zQg&#xR4fHtI!zU!wi9dWDiGV>$m^wQGsjyhoxsNj)i~2qVd`yg?!RnmOIe8&(5!0V
      z##(U_xY(FMaP%5Cu7+v0OLGZ97=auAwg@2#yDi>>i?a1*n`969MlprU@(!F6IFi`I
      zBEYeuHO%w4@7g}96g+3m4j>w?3iQ|U6$oEKjq4~N*ptVN#%Tx{tjkbfqSZ9jo;F*q
      zZfk8;uesO$mwjz1y??z8@S3<?thkna&5<X3FnqC1$YA`I^45X;@sldQe|*>Yc8;Uq
      z*pYgSt{*sQLzK@bM<9a;yQ_yYeFwzx6^`BVqd-J2=Mh>Ct56rXB2isi=uiEK*TT^Z
      zqOyCUb>Vd!SJ8$rOvDL=A5pPfpKeTS;biJ3oDs-w;q3UP!Do7#)(9iX{Ou~ku=4tp
      zt9Q7bBfmSeT4a{P0PH<kV|atb0N&cSa?a;*KH%}TinyUN5t9yh+$4jun~F^%9_w7)
      z;Q9md*r4@u@_0ZVUnm|iRgEeSIlF*&7^yy^cNw`_=P93CMrC<Ii{v)y*J!57%}8$>
      zPcZdK`Y|qT`$Qu?(f8EYk1J{%qI)l&LxF$^Me$2oA9D7H0v;0a6$N}vuWu;gTcW?C
      z&__6l?-hDPZPh4AU*mX~1h3<L`6q<}uH(i&X%h8;FYUuR(hMc-87&<g<LN-!bc8~V
      zMmDqK+gT}YT#8eAcf{%FQ{v<wqbq8Z0sHto5fb++txsux$sT@6#BUV#j9$O9?$3#S
      zK|wD`^iPFOsT#+9adNh^Tm8PwHhS&IY}+F<9?0b1H2<iLDGTLpA-jp{+2~ZOf2mxu
      KFSv<ncIzK&MaaGY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class b/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7810eafc93a03f5aba0395d72af38e8f40c60a72
      GIT binary patch
      literal 4329
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AlgorithmParameterGeneratorSpi.class b/libjava/classpath/lib/java/security/AlgorithmParameterGeneratorSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c92e585cf42b6ad16e626affbf724661a9c2e912
      GIT binary patch
      literal 640
      zcwUuJT}uK%6g{J>TbrfXmybmRYlIfPL`D!%VMs+AzK`ogNA^QzSE--XQ_w>{pdS_8
      zRS~i%nuj^(-Z}ToojdOzuWtYjP%@Dc*z3umtVZMxw2GgqXI>{{()I78mOjO#uP7ib
      z<4`+&Wx^0Bj4C`CbgH+l9=WkV_Cy6LJ{3sY<)(mf9=6Fs8uK}1kQK-`R6sWazeV~%
      zwmcFjHbPf=O{rB9Pm)I5RgplY@t>Y*0u}`wzM#%M2yEK*nR+K7bT5N;=+~0|uI(8`
      z)F=0cYaCA3{xY*J9$o6kDhwhMD+2pp_4QyVJ=OkhJ}na{jr*Uxil!2t#g1M6a~e@H
      z0w)}3mo8N@$L-%IR!IzvE%0|CSq3xyCf-es4jBbwX7>ei&rDLVc()jVBNiWHfmv=W
      dVq9bg153zHu)rtF6WbzZR<XvB!1~B*;}h%@vZw$6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AlgorithmParameters.class b/libjava/classpath/lib/java/security/AlgorithmParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9d77c910bfb451bd7b2bdfa28a1f30b842c74d7
      GIT binary patch
      literal 4550
      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
      b^}R`68=V5HaO&rkNDsR>CGaaH_3QrwK(0@!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AlgorithmParametersSpi.class b/libjava/classpath/lib/java/security/AlgorithmParametersSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a094e3523c0ef54e44317602ccd66c9325ec5c53
      GIT binary patch
      literal 906
      zcwUuKO;6iE5Pbs<2AA?(Xd7Beg^<mGwCXL6A{9ids1a1Ml?$hhvoedEb!2Z)`?GpN
      z;?N(^A60eiRA~q~ls(MH+j%pyJM-)J-A@4T@z%y1;ow@_h*~bAVW!OY+Q%eL*|_R|
      z6`ANuBeOghC>s`Gt&B{Bj%yd)YZ)2BLPKd~nuK}R>kzEdv?m?RV`&)`ED%=PO3U+M
      zzbms)bQ4L~Xs3}#IwDhr{};5(mC6Z+?f>b;Cpc2aoVdlc3CHdfEg#5e1~*{XFS>Nj
      zzD06iRH}0u8-#Z==q-IC64kp$9@7XF_wvN+*my?REZHipwJs(Cb~vE@@4o_*DIJ&9
      zw@1BymgZh^LerffoF*dAeeV%3BP<0f*1`-k{?RXuuwH)z`(g1$82U}$W66^r_k5-!
      z9&wLH=6aVW{2F)0D~pSj5hYAVAYse(9)|KTf^?Wg@{=m|pgMcv#|6*Y2d^25v&a^&
      z7fYMH53GrG<>(fRKiHUq!_r|5)M254Cu}W`f>=KVEDI}GWn_&pi}iYmY)&9sC9*w*
      h?BF@)9kcMFtoM>{s@R>1t>V=b@)~>W5#E%n{Xg|Q=RN=c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AllPermission$AllPermissionCollection.class b/libjava/classpath/lib/java/security/AllPermission$AllPermissionCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49e969e5ca07e795cffb8eb0a2344f2fa42aac3b
      GIT binary patch
      literal 1510
      zcwU`UT~8B16g^W~7Rn+O5u`{(3fdNBMMS|OiUpIJMvPz+c`-{nsY|BYW_PRdGknBX
      zAN;~Z6SYJV5qUBG5&we^#=G0n7SgKmVLtBcnRCv)bKCE~K79r-hB*l?hVfPPp{kfX
      zRWLMbO_>$qHaD`GX=*urXkQe|3Bgkq?IgGv2KQgAhhy-W+|X2!<c9s_ZhVe`-DGHw
      z<#f|hbt|cg0{46iZ9n_58~Vx6rV4SNM(z<$6LguOd0NvoYlfjI6iza@W4Sc<q6t13
      zGTIqB5}M9$6|yVbSW;I6XXs4iQY5L8FvaCVxAj0X8730{k#3a4)in9(4<#BU9StYF
      zU^phD7k&n>X5QgydO;U!j`L*+#~J#Z+d|bd%3_&f{&9-uZ4oc};FEA-4^`iygp+%f
      zcWC0|F{6rEBU8w7-Kt?5fUlJd4axALjq=YE2ZO(H0t}Lt%?pj2e@T=crG*P_>k+g!
      z6fR*4mL`;WoqQOoQ#CIF@Og0-iiA;yqg7P3w5E)67-MKPH9aG^W%o?5Ebb(@u(C?X
      zXsyN~x1tip8M^8*+JX}@F5(h(6R+A~P(q1%7ov^*Pl1FkGXyevL8$>{^Yn04q>O1?
      zA+-#*;!azqsNn{wE`Pp86`wp<=YQ+RQm^@_%@%V7BgJoMPT%i?kJ`ixa$MKB5fiFu
      z+7H{)fRbK;`jq|_T=2t#W{M;yYN0_5M0*eI=od#{4pF4g%Iwof5gqRw=wX_hox>;S
      zq**Qja0FenQUjp7d|43MMe9)HBYM`+wuQcXMf7iv>>%*e4hJY4+>W?EAXw%06FcyN
      zjJ-q$UJ=`C>aYz2@y5~XE^(Ii?A<U<IW|utR92p%)#ccJkKo1u+r=6hPld))p$Q{W
      zrdcA4eIsDgtfPAi0dhRDi8EhteiIj-qj?jPZ!7$raMQd)*1u93yXdEVwM2oEmd}o7
      d$_m33qeWb;UtgCqt~v88uG8vuYz7d6|2I^WaQy%P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/AllPermission.class b/libjava/classpath/lib/java/security/AllPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..616e7a5e7bd9ed0bd03627d44007435f105dc3da
      GIT binary patch
      literal 1336
      zcwUW@%Wl&^6o&ufBz0<1T0(EMlxt~|^b()~fr1cK5D*jrQc5M*ph*}dt{l7A4u}m)
      z#4GR)EMQd$BqSDWSR?T^h~w!rw<Z;vnK?7(|IYD0<6nQjeg|*`8zv0G{Em1n@`0?i
      zd^>!b-*lWO(r?;9V0*5KIAOLop>s-@2&8WdXIuJF{IqnJKo1FHMb8aF;fCA7Y01Q&
      z_aA?6<?s9?jNGzaJG@PZWwP6Zc+q<)lQ_<*oP`)BQm}A>FqJ8*nvQVm`AX>9ZoLrY
      zkC$y%K58|q(%%wQM-tLyug3KScfqmVjE4<7AS{%R__6|Fc|euHb>psRs$z#u38tup
      z%;S2d-Q0C-8CA}dhj~`WK4;!8$Ar1zS!|Vj)e=t7XU5~|j;w_W67#A%y*=qeLb4%(
      zM&zwBx<s(*GTc1qb25`X{2@s!6F``8<(p0)MbB}h(h-&pWCQx`<P}V;5H^l*ez7O&
      zC@ti$7CnG<!i|0d|BImR%BpxRzb5b5>Us2Ju18Els^q%TFFGO!qRW~YLgOEV?L%bB
      z91<Ae+2qJTl4q`iV?3sK=Nj*^cQAA5u|14`QAueYEuMk<EPa5Jyh`n-VG>gcYhhX=
      zN}L%Rj;JtVOCiqfr)fmAn!&8bp5m3Ex}De9>pVw#BmSvP98uXX6m5F{v`sT`8Vh_*
      zID@mAaZ@uAD?dQ}7`qFTXk!xG=6Qv=fQuTls^USd1YO=3ZEqHFNh{a1GL~NY+$Vk4
      uC5^SE8DzC|gLk8|(Qn8-qdlzl13q*CMm4}dUX7Re0Yn!-{4NPsG4~HhY!*=f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/BasicPermission$BasicPermissionCollection.class b/libjava/classpath/lib/java/security/BasicPermission$BasicPermissionCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23065c3eb658639a87a1010a464da010d0aa84ad
      GIT binary patch
      literal 2446
      zcwU`VT~ixX7=GTcA!%4FO$jX@Z6o~(p#h66v_h*usRRSGrBI<NU6MmsTsG<Mrls{;
      zt6up7aJ=`X7dj)sks0e1&iEg^^4c3mZ>#S)NrUpy&N!Lu?m6%G^FHT2zdZioM*yes
      zSpYsl&!Tb1=yXN8;F#XM&H=+U(^rJEWV)`IvyW|A59TaOq&@x$KqIvN*LWvALY*rd
      z)3Bz5BPEl`O9UDr)DGrs*E4Ky%CHK;9~$^v`{MWCekRo9D{fpuB&A{$Jk#nNHrxfz
      zn6pGLYZ;a`%m3V6kzt23ggw%3&@x=M+E=o&3_IJYw%DS&&$LbNBB4IEP1-g^&<1lE
      z5keK}b<`n3sEV~s1#p0{e}@!8Xh8iQ5Sny^P$R!ubUcT>guN-#7Gs5_IpJKFs)TSV
      zmu3VE#(~%6P0d>{Io0#2|Jea9iPD^<kzoK1#ZtTVf{P1rcE@#`z)3>Lbgu~`Gj3b=
      zREaYIv=N#&5t%5v7+Ow?ybKgXJ0a+>QI3s5h#?^n>fq-58_5aJG3~61_5!*BIL%0G
      z!CA+PIHOWXs@|u?79Znti(Fi<Ose|{y_6uyRc8&W-^mu1gzZ&w3*a2#z}6%N3Z|72
      zP7p5<8itnh5->X(HOoPxx%p@aJxIvM1sxahGSkDz=Y`EsCU#0_Tb<<)z0yU$jsXlZ
      zMqaKYlpNb`!n$XX2;efe>#02tVF<%IlG0}&E4(pdNd)m4_d6cKD8>UA<72hey^bpq
      z+-h;VU|6ms<TV{SY9&*z>zD*{yeePt2<LXF@aZ*|x0tl@kTL0ZXB)vcmnR%~I<2KE
      zo6C}CV;fFfwYikHOyNF**fSE2TRIHPap9J*v)+Otby5m4It1pqE!<Z3hABlm5_U!+
      zw4lSpA{#T_gcHx;KzU0>v2-kf$6O5)+)LUSu{_Q({jp@Slto_0Z8$uh+`^n&W=DgR
      z?!=E#csdHW!wB4wV^O+#RxTCe9xO{P^RaG;4eriZK7X4NmIHaYB!kUXdfpN9=5neG
      zBPAttmXPO-8`1cL(P|D3*?bNiL(L%x-$y#$#|P|sB3E$I;<70xT>X}&cSw7VleBH&
      zsDU6m+_>w6<2k|&;mb-x6a1*=Re)DM1QC`)SA8?X`5l&{S80Mr(>~S=^VcL>`}iG+
      zuVH_D9SzfKIJk<&c>5}vzg6akl(97XgP*^$lRr_9zi^m$8cN1Ef+(QAo@Y5DgH{|Z
      zhuGl6r1ea^h+`|LT}Ny>%;8QwihqaZ_98mJ#Nl<EonA-Jbol%ldgXo*eMP*ohD(py
      zf5On{sUlt-ON2*?NUb0k*H&?rwHgz=KXGF-&o~ziVi3rOeN=@O($GVG^iehXDS#0Q
      zVx0D1nnEi7cqy|={xi6N*E#P#mQM4^hki8TCf;C}2yf!8QcYCHQ2SZ`{$>gOs)xL|
      zx&puUaC^!uO%yTPt*MRl3aTGyk5vUlWH+QuqOK#N74der7SX<v`Vx*rRYcQn6_NWM
      zE(24?5Z+~2#=ic0qf+yT%BUVS6hSTVol6JMKnKxGjfhec-(AgoJ+<&{bBL$?VO*eA
      z4AW7@;ux;eamL~VZqiBIrKrN>OsTR8CinR#F=@su-cguD`B}o`G>_nS@gAc{lHKKw
      rcPR#d`@{tn@!>a>TqQw4T`G=V(kaLB;bZmu1P}NfQXYozDVqKPn$A`W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/BasicPermission.class b/libjava/classpath/lib/java/security/BasicPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00b2d169aa3d793ea82a136a65f2e5b3e7209395
      GIT binary patch
      literal 1944
      zcwT)}TXz#x6#h<b6NV|2G`(siAeUSkB3N2Ah?dyOU<ha-wH0Me!ZDey$)wIqQ1}75
      zbm>AL@kw~#smrA=>001YA6>rq2mCEA_c@s+X$U;boZH^t{=U8UIe-86_;&!OaZ^En
      zVRqBFZRA{DZ8@fQCwIYc&FWR|G)&huo3?@w!_;1r{?iCUT%MZE+$wiW!!qw06^k>B
      zx^h|Oj<CG0zr(;TF^m+Nw(A+TS2nB`53e2H|L;GgM|T+_=S<u5&NGZBixSZ?>{@Qs
      zb4<IIPn8)$h2|};B8X898b+dsF+fEe6AH#D-k_6)NlXzg|Ey(L?f~wU$|kRR`P7Dj
      z8HS_11KqNC&9Ii7TC2frZ~2QV-||R66fZKU%Z)AXPQo@CL}VJH3<ry*%}cFDg*(?e
      zx?{y=m1G+vp4R?m$g7(~;c)S}$<C9Zz!o4+rGVk&ki-m2l?o=PDMnQgr?86I*s@Gc
      zv)SYTgTCOY4Haq3Dah<eW+zh`vN**Mt#Pkl87@JMB~yLD<z`;RD>$RzH05RBNW-h5
      z7^>;&viwz9$+H?3ut)?6wj_ne_n`WcgrKvc(r;+U;~dr0;&#oeGX#?<T^yX(@D|>t
      zgKFJymORR1Qco4c$psAsQ19(?TNPKrF-#<NeQ20CRy4eei$s)2I-a{`iYP-na)W|w
      zQT7;So}E*Q+w|((>4*zaCWsr;iFmWJxwp)IM^cXKhFkCSdK@2UxGEH@l%b{FdQRH>
      z^IniblUi0DF`U><-w-lAyS#!mhQ;Uh;<15s&s#+q>*5M-h;lvE1LCTxtId{E<twJ>
      z{rCXVDdEAO>9)-s=_5LG`kC=UN2vTk`oi?hKtYtoee{9_==Li#r^kT)2WV%V>;g1S
      zr!zY^n28-~W9&Xgo?v=C_QDQk|M*q9y+r>QLiE2$pqyMk#T05dOgj@D03>h(kh7zB
      znczj3V}6*6WD}$@BElT+VXD%%MVPlGR-$9o#ftb?Vs?UN0h*sg(ntM`7=>wENw<;8
      zw2}J};ovq+<}cIEYo+X*R1*$uXWMu^bZa4$9S^nf=4kpSjLl_(VzJc5vNQ>9cUh&0
      z7w{$a<10$k*QER#dKteZhTjpddr0AX%;N_v(<oTacUW{;uRzBo;uxco_ay5{<fM`y
      z`Ocz<%fy_C*Vb2ZgKR`561z(7V?s#C{0T<Gu8cm82V|xm5XXna;Xz*|5?vk%lyF5>
      zf^LK#>5N<h(X_;UzlRu+`#(!0tz+XOF|1<I_s{zN!Puc+23#Naxdywg*Kpl;U64IV
      l7Ee%K7eaUN;ULCeeHfaL5x__Ce*+&wv<#!`#PA7b{s;V{r7!>h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Certificate.class b/libjava/classpath/lib/java/security/Certificate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e9236053d1d1b3bc4069d441a920e9235b2b7c2
      GIT binary patch
      literal 534
      zcwTLh!A=4(5QhJv?gFBsfC9b%T-<o(sA7mFn2>nzR?0|9mhGl=jl7x%AHat)&h7$A
      zq=&XM^UeH|nXm7UPXO0w`zQ#sX7Wu23sQ;IZW-K=b^28+>Bz^vKs5`8GMWa%@r;xc
      zs7%S-C(_Eu87pwv={|1Pc(OWDI+kHChd1`hOva&B547BwyAE=$N0BlU;vPFWrA;tQ
      zT%5R(vn1!e?z2Go?p;yrw22lzjs@D=^|;ao@KF`0tt$<Nn*d8qD3@yfN)4iIr4skv
      zH+C+02K9C0*<={f(UdzbI+One8l9J&NO@!utEjI-R;&IQ_f-mW{FY)%sbk^^2<#y}
      xKCj{c9@3TgtG9?!_LgzTT!kqQ1svgoeWy74=c}Qf@eQ1_zkrMEZlaY6`~Y^Mh(iDX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/CodeSource.class b/libjava/classpath/lib/java/security/CodeSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..733d14d841cc1aa5af1030c72ad2529080376113
      GIT binary patch
      literal 5314
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/DigestException.class b/libjava/classpath/lib/java/security/DigestException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..263561441031061178e12a314a2f2a9224ccf4c4
      GIT binary patch
      literal 816
      zcwT*xTQ37q5Xb*R+m)(IQTKZjsS=Hd2dQ{bgfv1*A9y;}NgY|cvKN=cm-5s^#5*6y
      z2M}|%8==a}&dkYwe)FH%w~wb60L#c4Xd_HqiW^bzq#3x%zb}+jO?v*;ohh$<<=6&d
      zgt?!R9cfEfSe2;$(h_<-=_+AWrR#BhyjvpB9-(W~u{~edepOh3j32zducjZKvxLOD
      zvX#F<XwS`839(J*Tqe<u?i7;fB=nS(E%$?~GwB|QGfNWs%8tnc1dri5dW`uO$|Fpb
      z|6Qd>$mALlOW3tS#dnomE6!K-#EhQU&ql7inx67YM##5l{`PWo;X1e4PedHm#9=-F
      zJBynl@YrakrJgXH`v)|wL6d}J#R*(fZY#a=K+|$dx*s#(4fx*@MiEDXqrp`hIuPTW
      zPs-mEzpQX1j`4gQU5}xphrdaVz#5B-=;bWc5Fw4e5Xu*d02{2-+C+Y#j)7)EiF>v}
      z!eB!c5p*_)p>R0gCSvWfWo_EXFD%wE(hNJ`ro#|6-H?6342*>^osDCH)fzk5%HmWr
      S^@J^+{$WwGw8fdQXZ91cmzzWY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/DigestInputStream.class b/libjava/classpath/lib/java/security/DigestInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bcfefac217666513a8bc75edf75c263d1fe86827
      GIT binary patch
      literal 1681
      zcwU85+inwA6kW%ecoH)u7vdz~ggDSPz5piNT5t#?TumKPi7FC_5SrKrGsqcRo-u+C
      z;0d*YM?@u_c<V!vz(^qR0en=|b<PaNu>*OTIkV5+YpuQZp3nb%_yk}ct0p1>GY{;C
      zcFvQfX2bCx=Po-H>G=h>-t=$z4QX$gFa-ANB&U|U>QsH%=(rY$mUW51ba6Y>iu63Y
      zA_K&{K)>hPz7!DaELw0}$6pjUohp98?m*3d7b?9bU|gz|Wek1z!NMT+3QX<{lwKQz
      zz_0}q1L`ztp&wC!p`zo;o6W6F+4#fWtWwr!u~xFHYj(p?-(k@3?>nBrY;hNt*k05N
      z4T<k4gd!@^-_{7tPo;M;ZP@E6N~U&qhm>W3zErv(5WDiIB<sFYb3GHY0{hzXR@*nq
      zn!^@;#H2vPabx%yDHC&@$zOZ1FpYyTWN^epRv_^mH5QKI7`<uM%X;=kYFX>^<yM`W
      zKy_wnW4TaB7Zl}5g*>m2PpiT+?OT?JO)A@1W>d9$_xP+zmw}qAFxOSWfM26L$E^sA
      zeX+G_yOmrJ&6~I=Fwq@eZaUSnYz%<N;~RnKr0z8tG<zo*!v$PcTXu!BP4xn&*OcOG
      z7S3Z)<rXa5z;A5YuGgi@F&y2gs3#OE$t#F!oZ78gvr&@#;b_}<&%zy3<(TEz`uH<P
      zV5qg$CoVeQCT|82<8u$c))`lM!<p=RSQ+CThB8OqVdRaj*vIE65r7q<EU{`8L--wI
      zj3k3P#4!%&(*!1os!obA!t;I{2zhdRtGoWpTa5hM29N6CZ4GDz2_Yc22UB73BC{hZ
      zJCofeEvBO-)|55Ec#zeW6xBi$G1roJGmIJhN@~=*A?gez9ctmH1-^$~U?dTFMJFgT
      z@w|m};-4-jJi6E<-9v&t>Y$woX$R;-4#z{<`5xLQdLqD_qRmcCw{YT&5m1lC4RY^Q
      z+}WwP(ZZ>?(M|u9KK)5!|KczCOw*qV;M!f!;TQa>y_~~Y3W?~`IiC7ho6zEvoIDnK
      z{7rEF-TuBL{@>s5H_vueqg?P1Yl$q1d*UN5+#X$ek4vhZ7Ou8%y@g`;=wEk?exg14
      I6`ghSe~0u&od5s;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/DigestOutputStream.class b/libjava/classpath/lib/java/security/DigestOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44a74b6420c0cabc1cbd27a7bdd15ae80c86de7b
      GIT binary patch
      literal 1649
      zcwU85*-{fx5Ir~BKpYH&C4>YCxMcxiTu=<4ghkN+4_K5y`7lX_I95nvX2#`ROJCI|
      ztNaM9l2D~pet;ik+4s(n3JJ?YCOv(-&pCZ=&)<K){s2f}Rf2;d@<Mr~By}}!)->a7
      za#1U)y0LB=RnyooYO1m)!No8ns<cXSSt}W8t@)h6QxHuI!`Y)?tE#RmMb*MgGq`m_
      zF;oV&O-(aeSu^GsrlQ$H@MhTbsaUa12G>HRpnBm%myAxFX9%8v6x-|sL$?eG9X#^O
      zaKppk%W7qH&D_hWwI@ohM8f>pN?s{#Dm9J2+ew%4T+<oGvS&F(6MA&plY!%<kc^^g
      z9GQh-BpN%zxNg0zDH1)?AopuJ-~&Wg_^Ws6O<t`UTBWQ@7-i@^RJgL<IPu~lE=#z?
      z5IO~2#uZ$pVa;kmu?RAj$1xdk3^F(?rs2gnCM8TT^c`n~jA2}$RmjnAg+Yq$WL8Kf
      z7jT2)r+EJ@UX@~S>|{9T?k+t`YMBz1GN;|<b9ERMg4D`IVmfrPq?C(EE1Q-;TNY?d
      zXH2bBP-`8yPlr3!ToFrP#8UVy;>9d7e7P1F`lId0mfR&7Y0U822QnUlhVdxXs#-2E
      zOdQwLma?U!Im8m((?-Rt<yHF9$l5^rnoaV4jFR0>`i>oN@og3n?Kk~PbkYegJ<rkG
      zHsyI;cRX<bIquqrFFwAHo*$y4m!5t?09FZQp1RiH!#esX6S4Zxj{!hL0Spo<k2s@)
      z;vj}>o+SPAGk5$adcHTnJtFy30LoT@4M;17u-!aI)ec@APaKiv71<p1<ORZjRn?H>
      z5kfdIEfbxMP|ihf5rMj8qXtQm?<);Y%0i#&7^5H>sw2_r!AtV4M$;KIr`bdpY!C)%
      z&TBSds*SKpF~<p8gk7945gxANI%gEo%~sBL#Q7dQ_&|1i6r6Djqrn*_&M9GC7`KVt
      zA)-4JIVn4hyKN?h=#pDa{7hDTIl;tf+8aI-t+9<YFR+2YZ_IA_?;T*C&r-)?9m{n*
      SYQ5iYP4^pU-0x#imHiLWnMFAO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/DomainCombiner.class b/libjava/classpath/lib/java/security/DomainCombiner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6cf02d079cb8b1bf9cfe20f2d172b011086658a5
      GIT binary patch
      literal 245
      zcwRg8Z`VEs1_nb0PId++Mh2Oz#Ii*F;?(5QqRf&?eV6>)#LPVB{M@9>ywoCg1{OvJ
      z0kDdk#JqHU|D>$c<Pt^(_GE|xMut?4XdhG)0*dlWfQmBn^B`tf6I7r{Pz56cS8#r5
      qQF5wVW)9F&VN_S@fpoJmGB7eQGk^di(9x_6Y#<f`JCI~z-~a#t?@Dn1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/DummyKeyPairGenerator.class b/libjava/classpath/lib/java/security/DummyKeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4933178fa1879fab05d11fb55c05f0ea2a4e9273
      GIT binary patch
      literal 1628
      zcwUuMYflqV5IqCM(q$1usJz4?prx&}pz^Q?BA}@@NUR~zZ_D<kEVR4Lc1x_kN)v%Z
      z6XR!plyUBMX=%&LFL&qOIWu$S+`0Sb?~h*qX0h%^8)0H!JJjMOp_gsLsl+$Rg+k@6
      zsBCM7{aTp9)*Q?B!$%lv1U6#`Hx7!qOwr(!>C2%EN-})eFb!vguo%7uz6!}}W-gv_
      zY{SeYr*{axbt@|rw4+OfA1YxWd>$|W!c7$&xIySi8>ZMQ7j}jHLEFs>LSNd_wfv4|
      z8*=X*`kXzZM3_onLmqA>pyhKGBlZe1Uke37hn}}g&f6cJKI4A3yDxNy-OA=?T@)R|
      zGE0685hm-Hbs4y2Ihk^?XxWa))}RVTaMzDf!uXW}su(~}VIA(N2w|L{=7h6WC*8=)
      zqb>0hQrS*vO{sW*hlDPU+_tSlBP;mUhff1*)lYrN0AI|siU^{F&SEWM@FG0Vge^+t
      zyh8|GF%nWTIX;G#H@>i}p>V1xA|nm)UNf^+fk!}UHLGF<af1IqR7!3brDRPPLm0g*
      z1K~~cn3jq{kJlvJ)@-dH9Km7>J$X49KNbmzMo7v$<X*C^`5LbKnQUR6Nf)J?2Q>O0
      zq<HvqRRM*kCt;}N`aD-smV2S%Irxbx8LMpT;*}wv#_+k1U`A#^g6E{2|1N|!`P|s*
      zV4DYs*8uN6@wxQ(Mq(#WB6NiANR*dveAb2@Ui;wVHNkN)DEyb|!5n(|Bvg&VEk?k#
      zWPWn3+vw+Lk|WOFJACHj-Jn}B%XXWL{|WjS`Ht>m4FASR<QQWoxSx))F?ob=^lObl
      zkTV1G9Jj!==6Sz}F)X<(g4J9eiy$+M;Stv&IaywhX=W<9Dze&0>==o9cZwUo!noBl
      zT`9G$6z=x1+m(VRc<Oe=7k;Lzh1METuCdfyV}o&<7t}~%xv2)<vd4bT?FQ(qYPDL|
      TrK)zy&8b!~UQWWAi+cGF1DSqh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/DummyMessageDigest.class b/libjava/classpath/lib/java/security/DummyMessageDigest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f83915d994905e847aff39602d4e179b43c0546e
      GIT binary patch
      literal 1719
      zcwU85*-{fh6g>^mkYsQ{#05cA)GSH>0T&b{pb!jT8N`LBA!));$xLc8vE-k8&??0$
      zt+IUfqbyJNgoK3crRR3vbIv_|`_A8gKYs%l!Ez970s~v-M>AQGxvFb<+sWB#skFT)
      zD;2XKXRU&)ctHdNdYe&A0D%*we70;+D{};lh)IEyk1gBsrUb^L$ASHP(X<Q6tmj&G
      zVKTNV5SVfDGK_Xa3<O~aoR1y^3_;+OffG0>a5`hza;aKcm+p$WUX%h|87F5JS54Pa
      z``Tf^+q5bI*E7d;gx3g}#e&21W=V<dtIw9?ijGau?r3aJdU<_I<`h5t{8LVrJ<G8x
      zL0l3TY+z;-amn$r)pFT!J(;gV!{|j{5LX2Hk8YiT^XLh)16K_U;F^F@klu8|akHtK
      zXNA9^dfK6)n+9&-wm^i;SFZEX%1c+^@-DGndN(&2;*-P-#E}r_DAySm55sd5Tv@3W
      zIX-<yO#*?2v<rN}-DwL%V{0kZixC4uND2g_YpHZPmJVW!VlA(yNlh)BP_$8j_Vwz9
      zK-*f1R-BEEilnwk^Smf+j+I|@PI|sXhI?<5*=Q`SRGu1mj3;c6k9#dOpV?KFoiXqX
      z({<}_%6ZdMBNk2h`8fl#c+N4g>~dArP1UcV^BI+2;GATgs+*H9EH$7P_K)I_x-EwJ
      zVD0>;c^ftHj5-(x^%~;t1J70dO#IFdgyZ5nI^zj0UwPJs(_Fg{;5tNh9APARHjFbo
      z8Sr^HO9XVJ^o5Sjp_^=>W{uwqJPUAlQCG|}Zd3eU5bxvP(7A)lf6yD>LH`f_VF?C<
      z-w{oGsXOSQGB8HoIBSh@KY@PS*DiW|t(uD-I=q9stR>X@*X}r~_q@4ZZMdQA`<>EC
      zhL5Q!DgNjl@AtG)ma*zaL@6b%^zC5$bBoxl7K{6^dUGPQ`#|R-c!)>ZbOe)(+Ih-p
      zIoRq{t9trCtDL7Af1;V6YCL0D*IeS$FCVDEnX73`6REHvrO~^C7p)>$(pL6#KUBYF
      h2=lZkwA?~X?(M#wy=)bH$M5??`Zj+=-xjsb(tqalM8W_7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/DummySignature.class b/libjava/classpath/lib/java/security/DummySignature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..712cc0340da982367e86502263bf9320c5fdfa07
      GIT binary patch
      literal 2336
      zcwU86X>;3D6g@9d>R483NYix5(iBSTCB#YT0;CDVNn1=!5^$R?ffm_*an-Rck0NLA
      zf8qnoP<IAq7(Vl(I-Dmt@}j7GuzdCIx#ymD7ybM0&%Xhzpd7=9!0c=D$jlzfa?7#Y
      zc6O^(ueXa<wPCs~N5-HDoF7C4PJvU0R<+o)NK%Nv(7Q_9U8`Za>jEpu_W^xh&1_V&
      zMc1(!)z#FVfVOE@q>fP}48&jvoJ*brj6>i917kQPaHe22<aVoGlFlQuRHM?#f?YOi
      zd!}Ql_wJ$QzOoJl<_qsD0p-WdTGgiORb3H<atn-=Yj%T#Q^{1Hd#ChTmR-8_d%u)r
      z)3xlzVGI`quJ$mSDsbC&i>+qUc3fErpgLwS7sIT;rRb6wIEQJSH@|FP0apZ!s&qGc
      zY6k^%^(y?ws+Qx*`ozFBTo*_%a@VnstcrA)^Efa_d+b|{vlS@=X=DV(n?b~dC_LNm
      z$ir666}TAHeS#)rqsp%3IVgM5u@2gts^MwbZIx<P`JrsH-!ZHRTp9G|8%Ji%st_<x
      z#?K5aA<I5CkK@Bqdej`Fo)o1}U@j!Yv5rhv`bt!aFAUtq9k#j|cv!^fD0a$E^0-;y
      z5oa-(Q+N7GU?HML16SHGa2IO=qQqZLAeP+E<@3Il`^vW^FtSg_sC{riNS;<r@+!KY
      z*1wmQOzr1X$hLupC<LO88!$%J)N=*+!N3l7*>G-ruI);$&19E}V`DmIUAk%tuAi`*
      z;gwJ~eM0bw-3!<TF8s{EBRr<0rgHP2*p?jJ$6(>Q(jE**yLQrNBOI-g{cPYTykN14
      zcFQTt`<D7zoE`iwEU8E=bAv|tHD$Hcr-zo>DXtcualSq0x$;k>7vDlpi#Ir(&hYU&
      z&qi>D&q-)}E-^aI*euVMF~O4sKMo%f0nbwW!n4j|iqS$XKmX73Oyk=HFJp!Fh>HIU
      z;#v9+obKS#KbT2(F#i@G6*4rgzCkkcTcBW?%)m{?-D0kre7}u(-0@UQ`&?ZW(^R;K
      zPnk<o8`YP4*~`7b6NQhfyqOMe^scFUjx`o$y^lB^TrbYVw>)C*(f<;EK1{qx;;jhc
      zFR|(ob7A_3*Tcj!9eh1Z{0)io5yUyB^@+Da#7}6e#wI+)vvVEX8>Zgo|BgqU_MriF
      zg47SZUMDCZ@1Ya;mewed+|*FI8?+RD-0%2zz3%!mQ}pr}KBk*TQ!5=}S{o|$_rDHN
      zJ&mYF(UYvHHSHta^GFL6uEtsSNEbVJI$Vqw#J%hrd_7>+xkOW5W*z(Zk!VeAXDG+8
      S@R!3is6+_&=><#=U-}PR=g{>4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/GeneralSecurityException.class b/libjava/classpath/lib/java/security/GeneralSecurityException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77dca62f2d508618f08a5f3bb75a46b9e3f5e207
      GIT binary patch
      literal 824
      zcwUW>%T60X5Jhj{$3(^s#$X`40zpE?j<66*kQIr9$jHjZFx$|cv`nM%Of-)GAH*Km
      zSYp8k@IfpQ)$I|A92;fR)zx$B)UBGw=lcf$JJ_%=LD)POe?&c$P8_J{s{UPiG7xS%
      z$-iAX@^_?s&qA6oW3;aDy7ku&gkmTIC0ttuA?GK}uLL?G6b^hZjD#22!i{AnfBv+2
      zcT>J5WcQV)q6Q&V*|G`g1OJ!IA%*vO<S<E?YAH|th<hCw9E*-C38j|ra09_@I8Pqa
      z(U}SfmDc|autz8-S~Ea93Y6E~+p=}*vTi-Yj(TBNxBEv%sE#Q9>*e??@GrEngt(}Q
      z3%m)om~liLvg7hdJz=5p253!#RtdSb9|w*+RC@N6aZ_$<5Z1w?@INLjB7-bPi?a#5
      zLz?frWIpr!vdfV;W~zM@ZjEG$&m2df!Qw9{@-06QVHza^<y9qs1}n8TTdnmmJ4|SD
      z&5<F@4O9t1-{vrHn)8wpR+BAj(^j?ixsMOSuoEt_4Qy>7dxcq8GBABx#tN%7c6F4+
      UkHgfTZ1HrAMa|L{*G<i*7p~==tN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Guard.class b/libjava/classpath/lib/java/security/Guard.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a52f428e2b66a5c724f5f6b3aa43e5939f1ddd80
      GIT binary patch
      literal 150
      zcwRg8Z`VEs1_nb0PId++Mh4-m#Ii*F;?(5QqRf&?efQGDq7-%p7DfgEutZK`Ub?=2
      zQdVkm2_pknaz<)$HdqNGgQ$iNx(aK}FrcE~{L-T2RJY8WR3HbeSP!I-jgf(oftdjW
      T7=gyKGO&SI4D3LXiGc$Eqk|+#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/GuardedObject.class b/libjava/classpath/lib/java/security/GuardedObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b3b188850f7841cab9cb65724e2a6f6bc64849d
      GIT binary patch
      literal 1062
      zcwT)}OLG!I5dLO?tdLE>4ME7m#5XJn__~?$5=|;f$pIx5JuS-!i)1&oJDWs*kY}wj
      zru5*^gFni$XLyt*#KZJ-_jLEyU-#Dj`u+U}fO~kTLt|L%*@t#D<W3a0;(c{HvV%5n
      z*IPaA2pw^Tj0))6UZ*<pPBCPa*Y&Fn9=LYj{b0BHoPtATHhB=bzV~Y92?Kk^Fth1<
      zp|CyCwEGcHoNiS*>Gh8r42h1!W0<c^XyXyXl&>He%-Y#D<m-m(x#BT{RXqPZv0|yo
      z5a0CMJcSst1~Qmuh!soCBp9w3m_=G@1p@|V7}7P@<1eE977tzy2%0tDA$~ToBzx$L
      zi>@0oEKh<Q&63(pcDSey`DBZw^DR%~8gA&g&M-Hjl7XAJ#gKBk+<CV>oZAHAlH>Fd
      z<?#{N$}o!7HE`7<aS(}y2)Mnk;!{tL9eyBaXQ2*jgirB1_3=vzYpCd0XIQwnnt`eu
      zsoCal?Wiwy|89fPjF$e_3H8zNqrl-?uA22f1FXnI8W8P^PJ-kDbX+1mNuRTZ6im4^
      z(oMNWx@BAjmr0sr?NLmO?zDA^IjekvoV9j>{AZQCpwi+bcS-J1$=6im4Hn6>I!MD3
      zmI0;7@=R$GP$T^+R)#Rol?@cEFUbEyMqYGs->|AdDxb!Hv#M~HSh&cdr@)Ls@(@hJ
      yZQLPQBt1?qr7;ujB8c)=l+SXC2;z_+j*!Q(g2@dEj5!r>m;MN}BHUNG5B>mmIqKa2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Identity.class b/libjava/classpath/lib/java/security/Identity.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2de474e5b44a6184a26d1402155c08610255835
      GIT binary patch
      literal 4357
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/IdentityScope.class b/libjava/classpath/lib/java/security/IdentityScope.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b1480e4f7e4626e3ba3380f0352480597827233
      GIT binary patch
      literal 2238
      zcwU87%XZsT6y4WxqF7dv61Og)Elo-&j-AxdLU`Duw0RV_Zc^&jrMzYN)={u!FFmpd
      zBVfUtai{zMkF}fvYcXWN2QX#IkS}0y?v?D=j%6m&z0yAW>~rqc(I5Z*@*9Acu%{rx
      zaAr^6*Ru{cJlk{+vV|(QTw0WjW{WF`G9-rs7*06cHuZX$+m6|^?iV%~*iDA1^`_;x
      zy5*Mjy2r==`Zn>;-;Z0ADefFNE^kO?hI7RciE|7SdDAl8HHNX&QkfyT-mG#JV>qEf
      z!xY0z(X{xs*Qjv&o?fXF<7}~MkQ|*v(LQ(>b$3mN;Z({`SJ$mtw&dETRm&}v1z%F|
      zog|>8Hzdh19K+=y(Ie#x#p>o~25-648b`rdhQ<DXTm0a*Zs|4NpujFvD0)^XnqwGu
      z{7y~RxLfLN-TBng$m}sNJf}fLoPwQ!;Q7@5C|B_UmK3DufP0FT6dKaVP>+P5Al$FP
      zrt|EG^6~wzbCXz9aS1Of$TG}@;xw`)okhaf<;JI-ch?MqJ9LH-r$Kfdk%SJ>F+b<h
      zG6nJ*$vkrF@-PR4w1Swf47TYGMHpsFuZKs)@dok=DEf3rtcEv1mR3mFwzS*H{;v75
      zR64)6G_2xPhFGf;OMMHKG)%8oshbA5Y*dwTy;?nL(U~x7NIy^8ywTj}M{w2jmnNsf
      znd=ndxn@1PX?YE9>%!5LB~~(PmhO5s7dk_5`LNt;#4zbL{oW|J-RW*m$F6&3y~=Iz
      z@#Iz9!CeLK^xId$G?Z|Uy1y?5)6OG?i@l!MsqAsX%?&+|B9fDMK=W;0tRHH45AV~6
      z(pxQVRT);oy>(n=PRRUF!$(-4!o;T}K0I;ed2!J-yo^^w8bhQZ_Oq$ND6%3RX}Be9
      zrIwnWZSXBqPQ$+M`jUtz#0GEK+|XTKjV@5KG5Qfi@C?Q=K|4k6CTVcc=%Do!qGHz4
      zn`zozp*y4dc=`}CKS=0PbXDmNY!UPZW@)AQAS5IO6T>wiSR<ssPNXx3I5o&{mtsni
      zA?c$62C+Jgr)6>)i&8Eq8`)K|7N`hOhLX-KAL85~twG^cNjvYuy0l6_D^};}Sp+e{
      zECgZ~<r_-$BQAX3<(!aDZOJFtHNrg~L_7$}OFY5FV&-?mGPBEVtfYU!g(Fc(suK8u
      z^nXc>{)z&>CbDmO>P|>8qQV(m7EPyLFc|{kS4<NDqNl5PEl7GbNE%OPe#YwzZCo8x
      z`&|!tyjy)7*Kl2uuVP)2Z(x(~-R9Dhtz%Da;B8tJWQLoxBHMMVACuWuens&iIb{0@
      rb`EiWw%o?MwEdusk7?y^+xVo7N*jDo>YqIhS_z~^P?OhPm_qk|%|-|c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/IntersectingDomainCombiner.class b/libjava/classpath/lib/java/security/IntersectingDomainCombiner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fe8af79b82ef9fae95c8c9842af2f52052cfa70
      GIT binary patch
      literal 1156
      zcwUWDTTc@~6#k~W?Lt}ZR#0xDsBLK}RKY|D#sI>`O=(gBUY@q?1csE|xZP^-nLpv9
      zPrPbON+OZ?rtvrU<PTBLOtA@gshgacIcL6e&Uen7{qp_&34j^Q83-}Ncb(@>rpik-
      zUj+LZ%MG|sS|Hr*WpB?B?vl4x6fXA-=nOpyU2)v)%zAN`U<M)#!)Ifh^<!u+Sh-bu
      zWn(?ZkhK3d-#kOxLa8EL5iBxj@x&&BzT}m86bzjvx)5cEEU5c-GWD1+(8kbhlXtGR
      zSLFVNQ><`?KHDofl}*PNQdh<(G;~tDU`JFLj8Y>f1CKvFM=<Yufu!fT4SMq}0g09f
      z1A`2`3RDY3C9~#KcM3d+VgQ|z*^r50j8Jv_S<R^s!C2fr-}w2&6Nw))aYaHkr(Bl$
      zRTI}RL6ud-ORm~x8MwhP`fp0oHEtq-By}V3?)$#8PqXo>8)x$V!Db-EFy69mhAz7D
      zxf?VLR9UxEt%_}zmz$QT%U?8=e*3pBQ4}UfERtP<7rdHZ;tzy;>9N0$)07N^X&Mxb
      zBup|W=Y{?Rjn;O^sp=ptgAnA`aSZnO2<AI<za=$<URtB-a+dZC`jk~lSJU|x?Tq$t
      z@(BIs-R?rif^st(AY4%S>3MPSG{9G46QTXlF$O66rJOdWAL7nrOwWEo<Pb@1E_{d)
      zsi$J$Y#o<h!AwiFj?t}yFpGs#C$E2eJJ4B7pQO|0bh?i554c{(&5xLT)8sUz@+}jC
      z6)IqrIIK}eER5nIQn0B=3-{>GLLOUKSG*S++)jDRQ<|_$ou=p%B72@%Gfh==5PAk#
      Rs(A<#)R?U5`E8Yd_9rOj4B7wy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/InvalidAlgorithmParameterException.class b/libjava/classpath/lib/java/security/InvalidAlgorithmParameterException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cec2e2c1e0ccea76a564f5af771485299520f332
      GIT binary patch
      literal 873
      zcwUu~T~8B16o%geZP%3YAzDD>qi7<f7%O@SG$ANh(h!oC-k>JKGHJ(bXUXg?%AYdv
      zs)-jS-ug56A;dG=4Z%_{+{`&=@}B3sb25J}fBpinhUX532(Q10Gf@tt8yOXzm#g|r
      zc<N-!Yx!KaI|ssujtr%F|IL-Bq4KqZ6ye3cUAt0CBfNT2Uug*wfiy~ZO=$wI53BD8
      zv_}}-_H_^n9X5p*$@KE?k2@Df-%kmd4W(6BAq*E+nuOH0e<HIO##jznj1b0aO3VGI
      zb1Y3m9D9;5S@T^UAb1Sd$z>{RtAOyPcHh^n6Y|AgmnU?qTn~-Xt@V|rHIcU_9<jGh
      z(6WPX$OxqY&DU-kZR3Bn78ByECC>0p*lgMrQNZ5w1NDTN;vJxZ1uYP=bw4t$+);K5
      z%m07xD~rSu_)+{R2(w5d!_nbt2oI3roEOh$j&I&_B#!A)7o$I7$vB@`j=(01E12Lc
      z*Aw9(CSxcsEdf+mX|<WsY8Q|D3A^0$Atp@qR0+XmQ<#p2^STmNl`UJ-PHFXJ7f<?O
      sb#7|JutHCE1#|E;hS_Wm^Q^Ymg+Ue<`>CJU;^$i|T9&oA6!$#)3sO3=+yDRo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/InvalidKeyException.class b/libjava/classpath/lib/java/security/InvalidKeyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..520793c997481aec0043c305ea53075ebb7f6a24
      GIT binary patch
      literal 816
      zcwU8(%P#{_6vn?p+mWibQty^cm1x995St<?4H7hAca596GG=5R9)FUhRTB#fE3x(e
      zh;yeCp^D9%bMJiTcfND(>-*yqfJMw0Xd~n<#I-1T(hOYX-xbUDwXoFLj=bBvHRYAB
      z9NR#QF#28g^*^E4ldck0Rk|LZkIEYa+9q_B9NY7S?N@~r$oO8mZ|C{`?S+t7Q?~Ng
      z3GMmWDj`;K&SVnp=uRPtPC`#b*>X3yJeBUDIJG39zv7tOKyVvAN0%}GTzQ0<%D*G5
      z64LpG%o293c;LIruC2~ib=S1+I>2Twy_)XyLq;gHDE@MDc<wqk+EYXv)x-=hf!)PT
      z5qNAi-BM4;<o^I=HE5EMJa7Wnlv_%VooO-Pf@UBGo`T<&p9^s$I2wFvLkD7<^J@8<
      z;+rLo#4%o|qw67*^zb*y5m;vN3VJz9HALt`e+cC*MSyiyYHgx0SI1y8p~N*CAz`SY
      ziU>Lz!f@D}_Y<+oY+0K&3Ul*yj5NdcxM)9wWgD_jn1Qhnrn7NOuv%j$TUnfHrXI7!
      PlV2=qmbRD+Yo<Q{VS}3)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/InvalidParameterException.class b/libjava/classpath/lib/java/security/InvalidParameterException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff473f72e4de67282c4414d474dd59ae0af8b291
      GIT binary patch
      literal 551
      zcwUWA%Sr=55Uh@Q$eQ>zJ`RFjGztdsBoRT92$7(In)@Uf){)s+nVl5{KgM71BzW)x
      z{0uMtfM>CH4GN0jVY<4T>Z<N}et&!du!)5NGK7^2aV4se?8R2On`+Bk39b6a!iqpT
      zX`9zQdFfPW3dj<cQ?eGuueP+7zR-Ktj{|Ak7mqL=NvnkJNE>l|)@l&wfKaN3CUU~K
      zj?l5pz0JN<j&5J?2>Bgll-nf?tyVgOY(4Bt4?`F&!ovt*tgVbZjDxPUr=qJRVX__e
      z*g&ui*Mnx(ovVmYY5((}8ewL&{e94hvjN+<E2NxY|cr6BSXzh5+hcM`_7C-+ri
      zzWArjMly;euonM1VF5Yh84FxxFwBpVGdUKyv&Be^xwQwB?o-MbM~@NMMiw=Ub5{H$
      rVFHt>DDOHD*kxwI&9ALLVEU&*gJ+tlLiv+5P)M>eW>fRIbY}ho7qWXo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Key.class b/libjava/classpath/lib/java/security/Key.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8ce277d1a2af68458d8862798860abc984df594
      GIT binary patch
      literal 287
      zcwR+NOHKko5PikR0RoE3#v8!KiECGWAVExAOk~5V87gCwraS5BF~M_q0}>D6!UK2^
      zmmGmuGcj>dsj62mRqxgJ;qwc?70x5n2&ZfHs^Xl}!t1b&XS|KjAoMHPD4WGk%QdGV
      z!VzImq1wd>d##LqQ%l1_&Z~CLKG)7ZPwxrzK<M2$n+IjXT$zHKi{1X`eX#!^bTbY&
      zCUbJ}Wg}aMqsRYqN$}cc*MzpPCeCkEAatZ2+tjUiMQ991i(A1GSNN1Cx|Glo;g{tS
      mQAwyvG$k$&p(VL3hHL1cF3!5>p>%lsmru}_sXU_Moc#hm*hQ)U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyException.class b/libjava/classpath/lib/java/security/KeyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03912d819e63611eaab07fe2cf9114f8bb69f491
      GIT binary patch
      literal 807
      zcwT*xxlRKy5QhJOB#S~g0)+bpp%4%eqT&z@mw<?Zgj7(N#Y&8pU9<;B$y?C#1XPhI
      zcmN)Q2SJQCD+D3Xcs%w$-~400eZ0H^SjLQj7Q*nQxDk0znt`kQ`~0E2-?=m8wXYo8
      zK#VZ=^L|g-(iK)Q%D=RPZcn;OSY_#YoS*D(6X<}@vE|sFFKoXotU$&eXP@pK-dFnw
      zi4A2df0NLfoi7t&Th4_{q7|JfB+*XjDkxhX1y|?NEs1kW5_$@b$qfXz;XFEw`Bmi+
      zMhkz>u};Wj>-UzhEBT`DD!Z~iU)Jq1x?L~3xbiBx#V;8l*QEH{NvY~Ox7tiZ9M;4^
      zo}O*RO%ZtPGSgH~7|i|yn$)0iLbB)tt|@nwo;Uq{vL#)NDX@M1QvOWDk>F@>)`B*~
      zc+Zc?Yl=@+I1<Nru7-~1P}0R~k|VIj;th23E>#yHjh+z7&l3SQS*f*&+(Hd~jf7pU
      z*$WB%byY;ryM7FW&G}&>);?R-rj6XfVhux$uwyPNhOo)H><eaKB!ubRD8^W=vE$7w
      VPBc<a+2YwB7Bx#-oC<5EKLMUQmwx~N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyFactory.class b/libjava/classpath/lib/java/security/KeyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42a4c971625eaa5ec4ebd9c1e5c3db97d8520c78
      GIT binary patch
      literal 4252
      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
      acLSZDHKg;4Iyz!c6FQzjfnO>4U;iKEdMk$j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyFactorySpi.class b/libjava/classpath/lib/java/security/KeyFactorySpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8183aa11a17395881a8fa2f56118c6fc36c8fc1
      GIT binary patch
      literal 886
      zcwUuKO;6)65PbuIKwy{hwS4c2Tg!n8aRAY(hed!86(BX@?gp!C6r9R&D*CfHA#vab
      z@S_lurhGIY#76SW_|44oi#?A|_YVNJ@W;gvVdYA6L^+m0VwCNcPh|H{1U53=Mq9aX
      z2!&ojD0HiQ*1VE|C5%>;R<=eME|x9`&VF<$Jq%-f5+fKTOx2Z^r^$6w8ecR+Ntmfe
      zfe0^zQR%)9I`*H632XH)Bvc4<Qn#4zNNQ<>mFGz_Q~_b9nCpw%GDw>n>?@^QGV9_j
      z6M6?Xfoxk9>Da{#VdE2?W8D#<y6n@vHW21>YK-czBkca4oUAR=Q+T1Y{c^(JJX=~>
      ze|w4jP{i>E)`24l;|<l)!X}30omKt4y|2n^-#M}B`;}Uy#Fn2lQ|%j}<1qUdLh&<}
      zyv!7Hu}WAU#NY1x-F<tFC^3ONRJ}18n2pV}-B}0EA<}PzBc4CDF7LM4Q;KffVeFQJ
      zA$V*(_P_xg9ASc^$*hR|55RHo6H|;77<1T9Gct?095Rnz%<_t0p~t?+nI$a0t6kx>
      I*312V24jr$7ytkO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyManagementException.class b/libjava/classpath/lib/java/security/KeyManagementException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..173f42ca4e6c5dc41f386cbe145b446fe8d1f6a0
      GIT binary patch
      literal 825
      zcwUW>O;1x%5Qg7@w%3$azHG&U*aCrm7#rdaNH?`4g=!)n-RS0UIVp#<=bHPW_7Ayp
      z!K#FXKfskMe-2^J?F}JqC2sD_Irp7s-kJ0J_U0FWZLC|EB5YiWucGQnJ8+fXuO7<&
      zd!a=~_N4Y3-);HDSB|z2Bjm=E_x}lVo^+Mywx#Rw`Ly|tKnH|$-O-*ewBHupK*rOX
      ze|}#7{jo(z>?y7M8ezIvY7=60=UgT+ji)IjF+-SbDJ?$)y))^ah_kLFEVLY(8whU0
      z=jbx#Unq~T+4`R;b_to{P}vo_Q$6-wr8~Q&wrQL(jThNZ&+C|GV=_W{Lh*x}lMC1R
      zW^6^ooFOjp9@t>q7J<ipGZXcMrQ#!?yaBBelE+Tq+Hzl+$(JY3_{LyR01v{C%#VgR
      z5*#f)P2mY*ob!VDo8p_d9EoGRJV5#?l+5xs$r0FL@gC+lOASSs$3h6@MMZ!bD~&c$
      zt_<*Ol+fUs{g99ysv?5PvUnag=M_b)CR;Y9t#ak{053*iAGzo#gyn~_dzgjg5N5I!
      cykxb(u1>P}YLxnkEq?xoMZ+={3t`RL9scj182|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyPair.class b/libjava/classpath/lib/java/security/KeyPair.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b47427c0af7e98033072e996fd1663f33115647
      GIT binary patch
      literal 791
      zcwT){%Sszj82<iTO_-RNsx^t1s$C?pbm+!~mC%|ZSc3+v0hcG^!5*2;$Xo>b8eQ}?
      zEK~#+K7i0oAE@-7Gci<6x;X#!`~KU^-JhFV0B`Uziv(fjRGbUbmsaSh;KJOM7hR#e
      zEK-D$PT9gaG57nY(h9Q35T<ohx#ofNl(5xT(YGaoeeL$7=PTDa-1$JDkAy<ob^Jg$
      zK~LDBOn*-r8^3>*zY%h0Vc%93_ajs~4~OX9r`{6sXP!D2fz-h2W8g5y$jqj4RL~-<
      z*T>cy&u{byskVD8^GIUaKnXL1WWCYLf$-dbfkI?e3{0X(D0Y-1_rfoI>3xb1Q0}-E
      z?=ScY><@ye;Is0X-x+yj9y)g-gLphbt={<GAtGcvFJb;E^xsqD58TkR<hF`tFb3UT
      zM+E-vycWMS%PO*%U^~bELjrkzyrs5zN7fOpgejI~_KrB7WL<1t<5_d<3bV~uSD5>u
      z300P5q*%6CzT=YbxyTl39C;DbFpmX5TTvU*R@5lL_9B)BZA{itF5Ucz*~?+^j1KPV
      Zf<_D&6eMo2Jc2y;n0z>ryrNO7e*s2js5}4w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyPairGenerator.class b/libjava/classpath/lib/java/security/KeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad30b19d38b44fb1b8eed9021395a709a4c23235
      GIT binary patch
      literal 4574
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyPairGeneratorSpi.class b/libjava/classpath/lib/java/security/KeyPairGeneratorSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c136552de6ab1d9d5e1431a40eed2eb0ce56b5a5
      GIT binary patch
      literal 961
      zcwUuKTTc@~6#k~&cFS7jVpUMo7BCh~T#d$;8WTgrpbZeJBtA}eCuPWXW;44b;;+&t
      z5>52oA7wl<g;EQVxDRtK`<?GxfBpXU1Hcp9^HE@E?DGR2W+ECGnIDGl#NjrV=8aIo
      z@LZctDt&kiGY*z;)eE<}`y$F2$}gmn`Addkb9I-&Thp-!P{dRfC6pPa+fs?mLBA`^
      zd)`e1!(3ZOJlW+&TKm}P<$E$?SZ-ffNQ)t`DJ4(jXNs&hHztBQRuMZ~#k$|JMZIlK
      zAhJ|M;j5&l$=d60bHn>07sM{2)<tB&>ratLbE#G4<0`}BzwsODfC`Jxl8?fCTw}O@
      zI>`?z8>Fc=xrnz?+a_T~-~csD(Uen5Lj!vFADvK`adk5+{;MlmQg1k5aXfE^h34w{
      zs~~hKO0=TM*G@2F2hs9TXIMFPuUYJ-&O0YPj<r_AQWdvxhlbkG0~3jLX>VcvoUK2y
      zj9vqDXRu$1G`cT(eX^dCWY+uO2$ip-6cErGkOZE=!*g6BtvUpeybOEJS1?Vsl{18#
      zCEX)y&QY$D$EK=$NA2SguKygdmL1EEW2_G`Lq@0Fz`Xlk!2)igKv`~K(J@n_V_ELH
      VEa6z;jV}`^;<H7QzU)vde*kPz>}~)6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyStore.class b/libjava/classpath/lib/java/security/KeyStore.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73563ee6d7a42f97ea23ab086940577252e1a233
      GIT binary patch
      literal 6138
      zcwUWHYj_mp6@EW<lih44Kmq{*C?VyNY_bGUDI#LSCQ6zcbwg;Rt=%lcW?-|M?#=?y
      zDz;Ty>BU~O7pfv!OE1)7l|YRWtqS!*ul8!6K2Q6%Pyf}wZQt+P+1u<an;*%1^UXQ$
      zd%kntb7uCf|Gsz;z$U!s!90N_2g8TMohdz%P8#M^XP-V5G80MN1Gm6J^(+>SM>~hc
      z4(bt8pr)^9^v=-m(Cs|}4gLA&Av0;jqc;iE1rza<8IGGH;aFPtqDH`*1r?}0WGzFJ
      zhQNw`XL3Fyl6NwhIBe|KlLE_ZhP$mNv~rtMlLW5bZp009hrq7ZtALh+DLqKr2%&?C
      z{kjh>EYh$5iv?V*Z6h^c&NTQ?D_6@jXsDB`<r?OrT3|uH5!VOP6JvUEI6M~9WttL^
      zaBL);G~~Ut={CoWRO!L8!SZ0WQQhoSsf^IRqtzkC^3J}VqY-`5G*}A{J|M8l*)nJ4
      z!&<EOU|oqGLe@e<E7}A!29?bk!(Y+bwy#`HeN0NbhE?bg=yr&{oL|{f`Otz5vJ#yF
      zjZW!c$;6~UQ`wNH&R95Q=1wiJx(r#)gg$~w6}|jBDzKyMLFQB#4{j7#Tl{b^5lTnK
      zvoYp~Js@>U9=bOc)1%>7S2CKO(Bt_tcyTk2oNblnfjyz&=E0%i<}tlFo{q(Q*oF;0
      zd<Z)|=ql>yOspD$=$3L!8WRGGTiZ%cBfW3ca2s~9&0=~yYL2T`==I{m)V(9MJ~3%d
      zNm2D{7{Fjg&Dk@~P0a;D+A5Fm5rjOroh=iMr#p*Hd*V?xoz&W}!0tJfsDk<mW*&=1
      zVKtQ<DpKbkm9kvu!yWjT2m7e|JV;VM5F<)wZ~QRFfUMYXILTz>3aH`Z_yngN_k!Vc
      zioL$Hs0zd5$;1&kG*kn8QbQPHoWpY5S@uQQ%$qxdc(7k!os$H+V$lR|$0rIjctBuf
      z9wo@`Nd=2Ls49{PqS29!LP^O<-%y%X0sEvb7Y0oO1^yK?O8aa3uNE~8=F_2DKM+pG
      z%wfJjyx`!d<I5=}tGYqHQ>1#68d5NG>Ydb+<`lD6UcH4|UL5A}qlc(>mpMWF<*j8k
      zF5n@>aOPFU74;?1=D@Qr=rCMZ)O!Th7w_+hC-q3;u%48Kpi#lB--BZs?!(=j=ela0
      z+bqVaaLfp&<g1q{JCaCJD)aUQ1r|wh^6<t1gBjO@<6(oPzriUF_Td|$TW5jqO_Kie
      z8oq!B*i||DQuO)7oC4R+VQ4tAeM!TYah%i5iH&b;NtD!;lDgH-n(|C((};C;XOX|A
      z;p=#q;?E-&0oA5dVte9dlG*L6{1%kO+!w5v!?qF0{!I<v!XpCp8TL>im+O$M=OPDq
      z*|M1oudc`=u+>R}J1aV70(?RS_?XntPR5cd%DWY(lZNI7{<Mbg;Z#mTAt!XV^c85X
      zgvd(m*JHZnC((bX;YadA!^&-U{wZ5kb&1YCX=*K$MNgcs=49BKFf}0~8V{Rk`PmyN
      zXScod^gEQY&T4oLXE>8G{9Rebx=12!vU;hmOs6`22;CtO&S{v&^UQk&Az19^P8oOU
      z((LCNUX*WkpOr>#^TtSJr6g@$)^JfmEzH>Trt&&#FjDrkOOIDI{6cyx%X*a7#x_%|
      zxUx-tmFkxsSTbJHa2c<c87UTcRVwo<WQ9dyBsz!E=49F=jvk(n!*#@iw;5aZaqm#U
      z%kWCcjI{?>G-H3Q;Wv1b(y}s};jT_8E`De`$H3CW65;*wZILtRjTgr#(f_F7Pk1+1
      zw|?c*=;%VDP$Hd-=(ig3r$=4(<7I<1#%g}QxcGz6jpe99HSavUn+Grd_$x=P`5Q-F
      z`3r~FrL^Ve4lV0>7vsL0*Tw$xXz;h6L!-ar9G3b6=g{<=@>;?FONb2^v^<0w`pm}!
      z79oz6-1TStaSg5o)JpOSwUW&9)Jk%@=(`Hd+*z$6<`=Sx;aNVB_!}=^O}`j$?Kq7^
      z{`PA&Ux5GYHg}VI;C`35rv2in|NXn;5~@08XV5ara09bMs6_)KX|dw;lN-2)*!Pm}
      z7@vNYPwz(~9>g-<ujY$uEgr&p99OYlpW(GK<3<P9n}}LXq|LZa<*|uYH!#9R{%zr&
      zTb<&A)+wraZQ&=bJjV%I$XaY~zl^#WY#VLZejYn!+oy3$KmYZduy%XZ?gjJ>bX<lu
      zgRP_O=P@+v?~n)1<$N7^fXB)A1mio&b3Dl!pTZhEg*H5m00-z6JfqIhoZ+?3Ay=Bx
      zLL0p{sv5|cJM5VkUY=i8ue-tPXF$6LXCOucuV7C*^Sk%#U|`@hmJbG|F?tC;c{vTY
      z+^go3Y!wCr9n-jTFRLMAXrxvm>bjEO)AG6zx^<!rN{=rwr!UiLmP&k;R<BVxZ_w&8
      zGyf*@`!=J02Rm^^o$P?BXm{>p-AYp&6l9BHoXCOP>N=h&v+~m3z(GD)%DXL8t&1!R
      zxr%YMN$pK=wVjr-rY_>eiJj?*9$uw>7c?X;;8T76%cyQh_Z5_;K_%@k4Cy_F_csRg
      zcNMIrq*H?<D%g7db~<W7c3O~C{ui(`4^*u-|CMv5fz?O#n99Xd=-gy?e&5mgF5GPu
      z+snhXuq2;WP`fON`Uut7&cfYm!xO#&LHTk`?Zam*J|A1^bM&ZZTRl+H$~SXIHhhi3
      zpT>iB_!SC%NyaD#Ut_`7vp0`d1pT5NG*AKbD|omf=vVEaH&y`s1|BH^jj#lAqSR&5
      z8)$M*<I(&W^+_->2u%zXjGww3cwH{bb@(>Eqp0gtzFlf{0^cQ>q<*Y~dN0>fm9-Z2
      zG#<ATkHIG*1v9%gM_ijDt|jqFMO>@sTm*lTQ^!u%Zx_;2cD591gjrEc&*1w?OsA=G
      zJ4ctTL_e@o9D`TfSD{Ql#u?J*fq$Yfo>c^!t;X_7f@%EJE`f&%ddr*Zt)JofifVe{
      zj1B713SpjSYuZ6=;a#v}o^%XvW)9)KWQRIaA-vf+fWBe}ov8r&8eXpm`i8wGSIU4&
      zAxY3*@+Fc1^%1rOZ?P%gahB|_?0WhKCHv1ZlKm}yXGu0Y|9+2mk)N?w;rWA|=Rf3m
      Rzbwz6i+BXzGt&F7{|9D_dk+8r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyStoreException.class b/libjava/classpath/lib/java/security/KeyStoreException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a7c1bcd1ca3b1b496111778fb73318e50a93e7d
      GIT binary patch
      literal 822
      zcwU8(T~8BH5Qg8OA4_VHQf%c*XeA+SF*byR#ME%Xho;yVO=~ao>U2424_S7}*<FF3
      z#Z?n7ye3@wOZ)|fIol1vQuStM=H#7c-kH7qef<N#7S=6H5!Oz`cTxAH9cmR^)<4M0
      zcHn7wcwx)4KzXi(Bw^!E(R=AiEu3~--)jjuUuq?suGBu)Uz!I5IwH*Md#)b{H|Po{
      zl&N3mdpkGH<)4J~Tji=?myoDbyM*MvcPukV;As{aJR!`slq)}mr#-1VqUT6LzUA3G
      zK=2r@<Huw$P(GpD`p+^ALZLDeIl}GN+ksYYzftX)nFTX*o~@kveKY5gj8L1<{NSZC
      z(B8Rm6cd*Wae+_3-cq&*eYRSds3$B`{sAf(&?+I*_CjsTcgieXe6-$cLqHk41OH*d
      z5>iNWw78nWG?JY2S^1mgmu-&3F;yF4<|>lR@;Ac~c*Eiba-3yHBFrHlLHR~8V3(Cf
      zo33pR@ob!Mz&(c%p*T{-1d|o<JQ~i|iCImyY)o6V%~wM#j>A52)8`0Q8p-Zq7M3HJ
      e$yV@!)dssd$>Q2L^($Na_7{tWWh|DXo|ku^9i9CE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/KeyStoreSpi.class b/libjava/classpath/lib/java/security/KeyStoreSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12a36ebc2ec6900a908dbe0cb5edff759b71f078
      GIT binary patch
      literal 1668
      zcwUWF+foxj5IqBdKmZ|Jl#7ZeLW07ofTB>8kf4<!MIKgpkf&i8lc6@d)Ml0v|H>z;
      zeDDMOD9hg2CD)CRhwYi3?$bS|yC;AC{`w8zCEg{`!!UEsFS$_@mhVY*WgLntQ@Nfn
      zFJux4hB19?bEj;SPS1s<82WdlBh@ZLZzg-pkjS}bB86TI4x<nK45LNqh$FvxD!fnp
      z)D{fmMc3l?G52J!kCX{jku`?7V%G$=8HR;ZCbW-2k)9!&DK_#kl_#C@_DL?=2|=!@
      zgKw6&P||g3NsKcrwHh6{rf*gD?6OPSO0{mB#3aLVtL<mU6P9}^ydZNzuNxD6^#pUm
      zQ}U~{xDvSvmvpunlWq2-Em@1)j3!^od@>G`VIvOiX0)jWnkRUWbzZ|Qc8Bwow2ge|
      zo(|njU4a8fc~pkO7}uB@oaAo2Z1y;bhYa)aJ<!DSR$S%xZ-HMgk=a6Lbd$Ie-3Bva
      zB`<7I$C`>Glx#;r+dW(InxKxK$u!e^;P_Q)tl*Z!_Mj=t4p+WM1zPQ9x6>JCmwYF}
      zI62o*)P6M`uS-^6XgnfT<aePbxj?fXstUD6rKhh|oz%s4eiZb&RsTa`XI2bDQBFba
      z>1BvOq-&IXb>S<r6TBJ>Jax@FUHJOAP-+_A&5rSH58l*P5er3^pE1lf0v4Rscw}k1
      zzGsOKGI+bjnqH~3z$dW)ViCbFO)Gi_>6@h8I!Q*dZ{;Tje$b)^Df*^J0=r1yJ%(sC
      z92$`vLGbL}!6<3QNY_u6X-trA3U~F{JxpskgIO)-a6ht5kbIyu^KF_(SZLEc#*;S9
      zBA(J}N$0ps`wX%ge+AF9d>-vrBe@1c%NO)t5+V%{1+OUE4br~Gn|3Yjw>0|Oe=^3?
      A8vp<R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/MessageDigest.class b/libjava/classpath/lib/java/security/MessageDigest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b2c9e734ea741e367a8613766f7b70b0a9d43b11
      GIT binary patch
      literal 5360
      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
      T%1J9$;qP22<o>|0?Zf{Axc{$J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/MessageDigestSpi.class b/libjava/classpath/lib/java/security/MessageDigestSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f04ecf852b79b3b2eb6a7fd37d0c7ef2ff0ed17e
      GIT binary patch
      literal 1514
      zcwT)}T~iZD6g{1pFku)45me;E_?-kKDyS%mZcsEDP>EtGPebU0p^}+6)3MB7@J&mt
      z-F>vI^2LYU7qoUQeD`noKUQz|L=x7Nsmk2$+qcg>_uM=4<-dP60i433fe6FMy8XmX
      z2fR@89Z^ru^B}NG{Hjypfyh@K13E*GiYeP}DSdloofiZ{$3@3=#0-O$NG>txv)(E<
      zp`p`46derRImhJ-waN<j@7XJ5&d{6l3U+zP_8qxzICZh+1Pt-quUSkp^mDgFkk`2g
      zy*b*8HI+ZhV1=jmtE;w<u!)RhWh9m}*{odcON1F*$4h7Gf@f;QBKN10OD6iU*T5cz
      z-E9Ia>_az0r_U=k)$5i_?8lISL57`8P3CQ}W?>j3#HQl74ABH-%}VIFg@ZUm{t_qA
      z217n=shD6mVxb4U^4>8E$C04A*6d*MM{-r{BZ7C_YK`Ff+X7M4O0CEcS<WypV#AvH
      zgwjcUlJc~n51pIWo)&mjIG!6Am}D5<-jDF!R*d9&*1}G7$1ugv7iNw-L0ouVJgC^^
      z^0<i!T#&;cd)H83sg)N#)uN<lxMU%XlQCQ-{oA0J_zklLGTTNlUk?PYSh$L7)Ee9O
      z?Rvqh))`W*X~IFB&bD!>iRkc(#XvSiD{~S_6O}4MS18jWS0~Xz*>h={`Vz^XQ4Gve
      z!<z0{8N1+#e63pbe8E>+)Y5R<!cE*Fo%3GJFYq}>4uAju$9!DE=?6&{4f5AXD|(yg
      zY0z$hEF&9DeL(DQT0~&d(<BShNyjX@Xk~>#WOtC&WtSQNV-0|a_I~Sjhw|KQxfuy>
      z>N?Hhu7>SZNIlryKzc?yoos5Cj!&`qcNiMoK;PKrM-0r2j%mXiIPf5)>|r`M`scT=
      zO}--v!KKU|75JDieGDSNA=)QVQ%q7JdZPxpO46U2h9elIIwEwd8z(Rhjrh?7DSm1C
      zs6}vEtr^KB^SmJ?qGYF18#puk7CZjM#KYcmA8`INc`jbi2lUM?_l$H8=-TKIc|YO`
      zJ)25}yq_b67o^8a`ZB!20lX$=zhe@ADBhD{t}WhEiY-&CIbs`8tLu_C-H+o2o$6FU
      hmMR0q(TucIkW(4cEp1=;3)>s_zD>&+?x?7{-vO@NFU<e|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/NoSuchAlgorithmException.class b/libjava/classpath/lib/java/security/NoSuchAlgorithmException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..931fffd411fd59aa12cdd24eff3a827d540b1f05
      GIT binary patch
      literal 843
      zcwUW>$w~u35QhKKBqK3y(YWt|#3%;wBoRT}P=YAY9Q4!~o1|qjBeS@?iI1VDfCumT
      zP-69D5Q$N|OjR|1ef3w(`^U>GfHf=_=pZa!i(8TRq#3x%f5;y@rNFFhTUCe4T7B={
      zlsCR|Yy+_$+5>4zS6HQ}{?ZcqJ?Sc8m8I)(eSWx0pd&)hj$?biu>G>I0vUgNep}yo
      zI)5c3HkGaXEkb8@sZ5CNI9D=>PV}abL^q+YsBC#0)GN|G6BSDm(nZJQ0fNVH9X-bU
      zn(_$Q;{SFk5HgY05_UCT@?B+D3rl4^I-^GqvZK0J)#HB12)Q=R-(JpYu5+i2MZ|GU
      z9OX-}#keT~j~!>)>ItLSKR~k@G)+jBoWM2ZzS6r-{kG+*24N1o3jcP(IO0ffG`Q+O
      z7h;_Ak@=hAmvxTBF`jFn=Q))0@i)m4*kEx1{hXzmA`BoMLitn?V2hPno5(FUFw{!e
      z<(|EeFx*r{1f30IBpl91idctiS(`R;%PS3xwZcxg=`@7RHf3Kh0}~-kXOoy>wZ=}j
      WvpCaAy<m%%zgW~PZE-H_ng0amBc{0k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/NoSuchProviderException.class b/libjava/classpath/lib/java/security/NoSuchProviderException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f46364d3939cc63de2edb5a2b8c3ea21d2a79f9
      GIT binary patch
      literal 549
      zcwUW=O-lk%6o%iEUomN#rIoa4QK>-^twM357KKP)xxbDVy)n+jof)a$<f@g>q90(}
      zeou5}l%OJLaqs!yIq!SVoqxQ%0ysq>ffd5Ry_krKD@|W3@2S#py1qHO(auB-q;5T$
      z^1)M%oj{au_#M5Jw$#GvF6%Frka49}!s<!wa(#EzB+xY>)o^Ur6SmhAmM>%e+xv7@
      zo6ZUGnzEHwCq#;+9wFLr2GT$T>q!_`Bc$8PmK}fGm-<%pElJ3>9g__N+i<;XM!k`8
      z2}kXJtyCrCiVM^d_OR0Rw6cfQQZI1M1<srNps_m)+<svMqwDzElou+n-uuJkBpAd#
      zSc(6fP(TcEjtQ<-u*!#m75Pqb=Zqt9jFo3dJ%>n|Z-XOnjwq_gaF$#^*g!TE<(Do6
      i>P!Y~ynH;v)=z~d&$L2?{DN941X&*2q4`cYv-=5&vwMdC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Permission.class b/libjava/classpath/lib/java/security/Permission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9db3fae00966c3809b040d2e024ae5fca3c7527
      GIT binary patch
      literal 1670
      zcwU86+g8&+6x~w_sWrCTQ31s(ZAI%H6%@4yA_c^174#*Pu??mPCMhm_@FV;UUt}$<
      zRoC*-2mit!ad~DE=!K#Wnar6vXYYN^nVDaIzWo4j0m}*k3<uY=4K3;LT*=nm&E!LF
      z7j?(cEmJ{|p<V78nwd{7tgP{ztDudct3GDBq}i(qLJZw<L${I{ZtI$%ztvU@PAHBv
      zv)mTIPi7_=*aL<GDa&+R&2+PxQR1yzKYvfeo-V#)2%1`v!aCDc_Ka)mW`2yJZCp2X
      z_ZCA>Z1;9NOTj5?m50%SZWZn5VQ7iPv-`l%ry_zVLo}_Me7;m%;r3%sUuW9Nkvxq=
      zlI<@B-Gc5g98T|5AQBVK6?pEI%)dd9S1l40#!(zoFjQB|%%<b=qKe}<LF{?%W_<WL
      z&D8STW*CgcYtyUW9t-0Xh83J<IJBpeiWuUQt&~_*Eui;KNffZfT3M?vzMl+3z$r5H
      z|3esqq8HZ<ojd>GS*A|%*Cowx_9z@VgbJEd5Z#nLoFQzg)Vw?z-Sy?!J{)0kxRY~<
      zfnfVg{-#QqvJ8XEEr!$E(M_aP{Rl7QS{}9nvices@0N69mD^$5#Ds!d^(~ejDsJNr
      z3EvPWeBq_YHPu9U7&nj-$F)No+<PjfFiq@~P0G+5%B8C=U%5y@GniFC7b)7XrQ$NK
      z2+TPZ^H`u#YwPRWq%(T9*`?XF<mV-2EeeQ73<J%CR~;E<#qdPMRge0qitD&SEy-9V
      zJIAMVai^lyI-e6*!DAHDf&f}Uj}Z=I9|X#NdY=MN>7xrvb8&mAHZ*pUHAU+I`iB!=
      z(3Lpz8NFN5{~(PKLIai%#B+*zfkR~VdftTI56GE7r6&jj81ylpk&lRsRB&W&<R?NS
      zi84-BaXSeSFla0y1QQ2fN$epnY6m-l1kMm<kXS}=76E!g&mjr%mY%0KSNt#H5_xur
      z9{KD^sRn3Gd_wQX9nv<r_+ApJo`Xk3AXH_t8Afr<2O04}0<00?Lk&W}m&!zU{79XW
      z5PPHFabu}HR>Ale+@<^{%eY@gx_zjOhh%1I=8wfZPV+LdRXVTw6%6Am<yfhq9o?aQ
      ICcT&b0@4$G2LJ#7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/PermissionCollection.class b/libjava/classpath/lib/java/security/PermissionCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb61795ca6ceb29ba8c0d2de6dfbf0c5c87fef4e
      GIT binary patch
      literal 1550
      zcwU`UO-~b16g{skZK<OoDi%L0D7F->ir+>2D4<{w1B%gwaeya2GMynaQzNc*?cR+M
      zF)nnWiPorzKfoX0!o7b(J@X+^pqjXtdH3Bp@1A?ly>C8$|L_UG0gNON5onvy@8|_b
      zPF8K@&J`|6yP_ONS!T&H3_0o2N+2fC<l_w8oGy$^%<w}3ae)oKS6PKIX)E1O_w)%v
      z672ZfacO&zt_=1Gh#`U1CChYN-E_xwqbeKb7ruU(NjK&MlD5>RMoeRlxa$J(9%U-G
      zS0I|rjSIv|)|5;kie?RKuvTDgS()-;wK5^?%K>3?*_tGuPFC(iXUx5=9D!Zsf0tM!
      zmp(Nmuq|5`UG#EEsLHINr1K9Xi%3dCR;1|?+M3M;*s80HLcdw9NLvqS8^_eNsk>F1
      z2_LS9>#0xG%NVO1>5hg9HbP*h1`VqPQpy=!6qZ_gS-IAjYb$e_z5B)HH#P7U6WAlr
      zvebRHdh3?7y%yv&?85F8I*|98(Iv1kyF5y6Jc)gz%w$s@bic-NJIKE3v$N8q%3Uj+
      zS>_5@iz!xgNW&Iv^<o|IVjUIOk}cIeu?ok*N=`7j73I{>gOilaly}|!pi4{T2xh$K
      zF`n`mPcKP2{QlPz&T1&3o#T32cZMxnhEz@x{Q{AkFAax3;!Fsn>jmPC;ACv7J3lRd
      zPX65Nuj%jpuTe^kSyg*d4k#}~>q=K;pLagClTC^8X+Q*<kwB7mBY!Iqr1)_9Xea37
      zedW7}yKb(6YeVNdtb6T4*YoYcfg6b7CN|L00uVN$1>S#W6Vm?LN*ZtF7!a||Kfj&U
      zjzxk)^mu3Eow2vbEM>UQm=AtqhzAU`+t40HC@iM<2AP+O0ph;%;qvro^D=~oUr>)I
      z*V0FHTw{&dcjzqVoA=gGxY}7m_waM1^G%r=4tKrBF@YL-n^N3e<@SugqaWY$&3y#d
      zFz||DqCWL@iU>R=?Gx_jsl`(&uz>wskK>u2QYN4cQ_^r0=Ww1$rIE)VhFHXfF!8`s
      L_H`Qe%e(j!YJ+Q~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Permissions$1.class b/libjava/classpath/lib/java/security/Permissions$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c118bb9a1ce04ea7681259b4e34dba37f3124be4
      GIT binary patch
      literal 1225
      zcwT){ZBNrs7(I6{jCIA$@#cgf;MA>CwkaYy^b1ZU4kW>l=oizK8&=Y_r0op;6^vhu
      z8jUlG;Uz$#ek1Wm8J{}}EQZ;p_vN|gInQ}c@9#f*KL8YPHv}KUz>4}(%{g4F+q(NI
      zH_z>w?l`(-I;lbk0ftx;V5sJD?nz~ZYi<Y~486^0-PMg;$*kA7t-6%M5U#1Z`GQl3
      zp}%}8sL0Ui)GHpS!>#I0Do;YnZIw_)$CPgB?mdQ~^nY-fMTWq%wZy|9;W8vdB=`}R
      zA)}kYpUy0X(Tn~N`WO;zd1RbJf+4s{A%}Wx>En^=R9&@V@S=nPBtsZv=sx9G#t<%0
      zquk&%Zo0&hNN3vkA;gZz2%(c9TGmZISFcsL{Z#NU#LJeZ8jGr}i@g^N2-g^r?Y&49
      z$hBxyb!IJ_myT7C1<ysjjEpckBM2fZ<1(&@)ioJo$T37rzUF!<3_VA>TdqJcgaX58
      zyW-Q9VGxQ|67on&R4>cmTh$m+Z55v+5&JEM;S;mwtcAK(^%RxXG`@PsJ%Kobv|!b3
      zjX%(ZFR>N}#smR_JY$;No;Fm+;bcIxWNL=x=;rb)cdOPC2_#qO3(^Sj6Cj?jm}4<<
      zgJ>sCWONbg46Po*M=#K;WVaAic5qh7ZlY%!=eIDtK?gpJ(s-tsCWv1X-5XqNk}#2o
      z6fQN-$a#-+(<7Z%HjzHSI8DO`2>Kghu?vM^9g@PR!cpid!!P8^N_HF9w~!Wj9<EE^
      z(#ke&Gy;udJrmRb@RnM9M-|^Ah7TCTM~vVTX=@;d&t%3IOyVo<V*@kzjycjLboU)<
      z^K|FQoN?SF<xJcduY<>g5#1$3;dMmzG4X5%lRpoIk=k$nShGt~_7KH>i!}+agdew?
      U=sPIVEHz7sCypr^17u<HFD?`qe*gdg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Permissions$PermissionsHash.class b/libjava/classpath/lib/java/security/Permissions$PermissionsHash.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b011dc1af4b727023c7cc787a1760f222ca471ad
      GIT binary patch
      literal 1401
      zcwUWDOHUI~6#h;hw6=qkhr9$-q|gVnfG@OwXvK&rXrk6g;$kQ_GGsb!W~N4efr<Y>
      ze}HaSNP-YGF|J&=bgxSjW7N1dQO})DDghc@bk05Jp7WjWeE0O-ua~a@jNx1W9zuLo
      zy{o1zQK*=jeLsCwm_^O9w31;BY&&04t(5?Lg#LQz*^;h{g3TvF#1f{a>Um+xn;UZ%
      z2y~gym}MkeHSD~qSA_rJpxAgab$f>3FEflqIFNJDE4HSmWk*|G(nW^QFsT`uJx%b&
      z;(3BETUr(&co9*cpfP|JLhBxtAv7bh4~(lIgfO8grx{|QQd|<|b(uhD$(0IBRAsvC
      zyFs75qA{Cf?!TpBj$U<nna~@nTa=0CC81sgeK^GV<%&(1aPxK5xRbuJw8{!*c1Pm7
      zL(Ec&M(D2JkPy&{WnB~2KZq@cSfr?eK@1UsLKj70*j&^Vi*I|8S))=ErYfH}6Gj}#
      z01~Y2o(T$uF+vC%;+{QQ#Ur%E_8269G@-K|w-8boQ_zp2vg0uY$8mz+aYeP}OQx8u
      zG3CWrBy`ka%j;K`+D8eg`a0}>RrzAP&4kdkQpGHYi<(@I$hNeU1S2SOh9S(Xu3DC`
      z0yxXk)$PLccl5z1ck%Ln(t~dJ(ZF87@q%cPi_2#}d%Ws=v!A{5oK0*ai7hlGUZMHc
      z7FwU9ZQZGA=kI<8?=5_Ik0!Pq>?ze6bfSwbZw?N+cv;T&uni|R(3VVYqUYvcsE~8@
      zf$c{JroEc#!pPHM9AO}mujB$g;2a;@p~NNz=AWWt_yuBwH%KjvF#PBv_<d^}8z(&e
      z{mHvlYu4vX{+Z|f!qb1{`M)vG@91GaiXRSvL>0P5V8|ulX99yb$w*SQQyh~j@lLy>
      z#vPJCP)@mtiD$L04Nm;$HkE=^^oaCNyY*4Fa&$kderA0~aaCfE^UFBjNlZEF$)?ko
      GLH8e<)Ik3L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Permissions.class b/libjava/classpath/lib/java/security/Permissions.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17b6636d6d607ade462732d7812c47d90d752f91
      GIT binary patch
      literal 1988
      zcwUWET~ixX7=8``mh3DA0~AVajfiOyXd~8YZ4fOnwX{&6l(a$HnI)VF%WO88-Aya#
      zINtkp-RTeLO)qrD!i>!Labq1X{ViTQK4+6a#t_?!-SeLFem(E=zUTb;&rd%Cn8G~`
      z9Req|%=>1_lZC2l`P-=_>6R?dv&xRAp;KV2ojOytZCUUsY3LRh4D76OYDK!1X<Iwy
      zx-A9zy<nS@uJT!(`%pk!6X?w_zHd5y&a|ttD^t3@@Yf%GOH`P)eV9XFeE#|Q(*j);
      zo_hjAHS?-(*{Q3hx9KYs)OSx?j^)n?gyM;uKxd}BA$5c>XrLc2X*e!0aD=ChAq<8=
      zk_;R}pFrQd<;WY=(z<kS)e4NvmkX@VWR=|44?F!$i)c=^1@944$lTZvI2CVeluqPy
      z=6=<{7+w?5E$^l@Hx?axJE&t#!|Tiuc-y8^B=fZp*-s0yqKN6i8M+@uS=92PE`vqO
      zjHY882}MMb1lHly0{X7y6bVDaWFyl7&dbe>QXHK#V4zpW8+cR0l)y;4x(uAhTLQz5
      zd~g&tfml58B5hX<eA~cjyrSbGE@^m|^LB`Saea%12GW=o=qXA+W1AkkGSG+~SOte^
      z)#w=m@8bhfTdDd27n_Nwg-W-cBwCMDs96IUaMVN0s>*pGM-5j55^X1Dyh&CAsw0c5
      zs%vwkzWorj_@#pjpze#nX#3d{=%^F~G^<pxE$KaHP}fv1mJBT52Dz5DEJ??w(}@Px
      z!M(~l)sl40`kf80SVhP5t1d6hg?4t+?UT-sv0TeoHdj8SV-<H4M|pwM|HDzhiM~><
      zx&?W~3f`?I?K$NqV9Ys=bc1<OeDwW?S3an0IKM9bN1>sIa+nWo2XubC8kGChGs3l#
      zIzBx7N4T2}{HRUtVIaAWq5K|(pJL>Pz<ZScW3&Kr^joI?9h~IOsQKV!oZ>3fJ*da~
      zo7T#HC%KF0L-g)rJRgbeA^yw6Z<u(9v&kQE_8IObCw7r~TH8{*z;%S{J8Hj+_ijJN
      zrN+@NF8_+q!sIiIDJLZu`^e_S9zI%V7)>gtNfqf3`799vo8-e{y;~T8O`HzSpo|nM
      z)ZfPvs;uh)o3)KK?BE_gLlK|D#}_>LGN?9MtEgVBlCI%8>s>}1^W?UJGN-T3fX}_M
      zkEv3AM_1>Q)<U$<WArGri%$;F9%uJ}uZZ?*_U>B@;~OIWt_eZx070ydV1(UiAXvst
      zt}8*jTLF^u_1=c}v6^RpZ-0M~tUFLVYHDV<9=wAzsQ<_KglmLSmioK&S`AW1{sk36
      B@st1n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Policy.class b/libjava/classpath/lib/java/security/Policy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4bc47cf430670681339b1d00785a907291fc3239
      GIT binary patch
      literal 3648
      zcwUWH`EwLi5dL0vVUo=RNk{@o2nGm{Y&MBTE(snOh*7cu0wmx)*_|W<dpWa<;C%qz
      z2P)q8g+EY=h)WR5qWmFL`G06>X{lwET8f2!Z)UQa%_f9jcINf#?$`bG*FA5)J^$s`
      z04~SJ3JL_ucWHaHR!a}1Oe49kb#pvog!U=$3e2{5B3f*yb<@BuJ(LtEp_Zw~l8%-@
      zW%p#(?E*6r;kHCb;1Wk6l{6x)K`p_ZnQM)hk-S>K)6m!_;O&Tqbssz^QBee65on`A
      zL7}uYVtP+1I-r}|w1J2&P}Us}X^}q7H00V9dXvM3B~Ub^XTqA-&^UQuK2&0!g1I@#
      zZQW-j^{9#}RPzYB+3H#awU{=fn*z0C{v7?>?REw81?qCo8`IgWn^D8EjCiaNb9|`5
      zr83Prfr^Il9+RdK8)|Rt^I;L{6)YC0n({mqOR$vagogFd?yP?q<;0{jo3?9#1{IAc
      zXYx$4Be#+TR#c$o0$CDaD~oVd-dPU7jeUg($fGV($*^V;fkvr>EbA32W?&`>kZ>us
      zQebYD9W3^4J=~>P!{mt%D^TLYl_0ol2v%0DBOZy6ip<GUu@+Ym2y0&~G;GFW#@%|D
      zwyZ_N1lBc9SWCWLqvBeu6DX8eL^O*Onv+vzTS(OoY*4VC=S<jA(TVG6Bzb4XlTJ|U
      z<5A6EEf(c7aDom!-++w@ZWLH>VNDg?2(tHNplp_{@st@N@8{<ok=<>VCD^25GqwoK
      zk`ZR8z&tziiZ?N~yx=qDS^Qa=tz$f$MA7o07bObV<2AWD>mre?nh)D$rFY_H1ve45
      z>CaVhi{!sY3x|tw8}3kWJHg2*unG+WR7s>bvsRDqG-r^t=Sv#%MQn;hm~5I3EUCv)
      zSAQ{>6=Il7ayp<TVaE3uVcnEdX_t!KhzJxrbV}%El5MthvMG@-k|ZTAaghAVVBGA{
      zq9n+YX^gW3=S;CcsET9yT{pz6q!yC|D{q(t6a{-YM}}gl*4%8za%o+!4{E81J1Bfe
      zNe(cRIayB|_J;IC(jHj_iG-Z$d110G4XZn@h4rxgp&&D^ok-eoY`-YFO0qnt;vqat
      zmqd92x>NH&vU9(R131XA^oSni*tFyb96wez#8Oe+)ZCLE!xIV~&lz0f6jVIvqP;h{
      z!SScyX@0h*%0jl%&C=_0Dh}a3GH6({f^k!Ktu5K^FUWSkUrv?7^6e#=-$en#ksNl%
      z)=X2kSUdrrscVs5cTqE?7mLP%RGB*k5~QOMO+*ZxcwIH^)VaXt>n2%*cT~KIcc=N#
      zkt)8#xUXXM)VhqF+KQ<UGHv#y&!JPNA+Ht14ue~ywRa)$_3+YE0H6Gb*>Aj~@F|fm
      zvVV)YT1&Z*QvXS)e(?oneP-*<=I<=q!vMUvofct~a-}-jD6@SQVGhb&Pn)PG_o_xv
      zvC%(@+5Xe0*;!V55)0B;ID%!zGLFlr3Yh%07*Y}y*pqSY<;ssH+j#)ZuJb|43;0|>
      z=iN<o-efy(ah&@{(CYsjZQ0PP?eO-~>HtqTNS}}Kw)8k^@q~R+rQ;3DZ9Omb<(ULj
      z-T~Y*zhU|kfF1r5m~|GV%xA^UlUOx^)r85P#?@(D*WHvx*C=lW!Q*HfMKOOV=?MnT
      zqVhC)slP24IF0Rm=}$YZngXYAs|WqrXxo@M@C*y|EF(R{D4$0?Uc^!yCI&At%2%)&
      zukrK$IyT}h^y3{ni#jJhH;Y=dBg8VXjhKZ_%nF!$W2QilxTRjf7|)`mY-j|AEL1t+
      zi>7hs83<x{1m1pIq2x4DjQTFhxIRYH**u~Sd)=TH*=#z>qd#HzpHg<5yC<*^r?3oP
      zGK8-(MU^+eyKxU!g}4{@xdHj@aL6Vbx*6W1o}(E^X4-qBwg;AqmwS#1zRTwp$6j2|
      zof(uJZaRx%7wltBu@svU66{lWpa5sEGZ+{}i>uTVNaK+;-Xkb&uJWG3qk;-grSXhh
      zJS*_pe?K)J^UK1f@w}|$nDZcIFZMK#qP}^|L14Ut9a#r~EZcio0pL5b?0W+716$@t
      z%*9WH<Y!jr7XtMw*5EgE@!5;tu?>IVR{Y5u!Cx@&H)8mQy>gE5{YwU)!wWcX!_q~*
      zFnPBX<=e}4^_L()zR2odj>UMDyzyWaFY>SB4aN{-aU?f9EaaF>a7w-97Uc|gB&eNJ
      z0V(q@Y9@kjAN8#CN|<`2sL~cuAa$D^hF5sA1#PiQRtiOwp;(loN>rd$RPvw0JYJ5f
      z5D?Y4Ow7kBQHu^yXJ@$Fi6oO@r<<XCdk^o^a}~SQ$!00Z_X<9MmsI(XeJrW+k$w7+
      F{{cRJqUQhr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Principal.class b/libjava/classpath/lib/java/security/Principal.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b151339a4a2cd2f2cc1a178e6f54e2f5033038be
      GIT binary patch
      literal 239
      zcwSvj%L;-}6r5w`H7jXR^b5L4TDuH_AS!Uz?q(Msn3i6Heyv3x&__jAgNV-J40C4A
      zFwfWh0bmZBK_g64e&t>z!n#c4&D)hp9wuj=G3bO*D`q^8yzL<sp(GgMQuC}LOq}(<
      z>brY_DT_d=l!!2P+#k>9>MKXgt9Vfy1)<}(D*}sz-0+j)R#4PsD3(d4i2W@yYf=n?
      cdO$O}>ehvUrXz#dVh>h}{e~;&Ky3}fH?I&kmjD0&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/PrivateKey.class b/libjava/classpath/lib/java/security/PrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e24970535dbdeb0cd22098eeab1590f7c659694
      GIT binary patch
      literal 204
      zcwRg8Z`VEs1_nb0K6VBsMh1zj#Ii*F;?(5QqRf&?{eYs(vc!^9@6<|m1{OvJ0kCXN
      zVqUtwe^ORzatS*F8zX}tsve+XpvvOZqRhmcu+*aB%>2AiPZvf8MlVJNUg!M0;*!L?
      zlCZ>_(p1*qz1E?#gpOTfWZ(+UFD*(=b<502Wn|z-SgQvz8)ye312Yh_0<k0mI|B!h
      S<^;N$iGd49GBWUh*}MQnMl>b>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/PrivilegedAction.class b/libjava/classpath/lib/java/security/PrivilegedAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..027abc8b819b3c506e5ec7710c383bd9975f2446
      GIT binary patch
      literal 243
      zcwRg8Z`VEs1_nb09(D#MMh3a8#Ii*F;?(5QqRf&?{eYs(vdo;+^wbo`<dV$%Jaz^a
      zMg{?}nw-SEbbbG%tkmQZMh51h(mX~65e-crbUABA2F~Ej^t{B9(xOyG238HtkPx64
      zS8#r5QF5vq&~QcuQFLqcK&CJ<XxM~UVH#+MDa6Le0CWQb2rvR2$jZP5<g){LObi@A
      L%n4?3K}EO$Hq<?)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/PrivilegedActionException.class b/libjava/classpath/lib/java/security/PrivilegedActionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55ce31ebbf0cdff08217b49f0c4ff4a9f8c93cce
      GIT binary patch
      literal 830
      zcwUWC%TC)s6g@X@f&)n!3VrchkcULXI#nf<7Sz<Ls)lAim{AxoHnPVld<DNkrB;zx
      z^aJ`o?Xv3i1VNi7QWi6F&z*CQ&s_P(@7wPHcCnR3g0Oum2BH~CCkm9lYJLdRK)JFn
      zkM|s{eDBSrBQN42ixlCJA-lrsH}5Y9#ZU%HxIGz!j6c17O`r~;(DuDh3s3ii8_D$E
      zb@$iD($8DMoP5wO*%K^Vgv?9jDgBDDQk}@C^$4l9e=PGzqG-WFX^eY#68N9Rkt>-y
      z2hMIGk9oqPtvvZYIzN)ZVSG&}+rGo`1wVrET{ERmR7j}VGtP%I6U(f=)PId;xmug@
      zz#J3XA`0a==^;0hwBOZ%^7@3zKcrE&6+eF6!V9bt@?Ad)9J#OJ^s7^I?!+e8;DIFh
      zFG%1i(#SB%8kFP3Q{p<sJqrci7Z@FIKf&jGy)ndMz3~m@FGf(|eZg3D*ytULZ7eZ*
      zJfict447(#7taV!_>&{krolkE{uSk$d%KKj_Kb}+BHY;!p5gf{Vlh$7WBN}##M-#{
      LY@&F>ur~hyg6FNV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/PrivilegedExceptionAction.class b/libjava/classpath/lib/java/security/PrivilegedExceptionAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..473f9c6bd2ce5cc1586c876fd03bf1f3fd4d52d0
      GIT binary patch
      literal 309
      zcwTi+OA5k341KAswf;fZZmk=OTNS~Dt^|el0(Bh9l+w!dgI>*r2k=nhR762BkdVB*
      zBrmu7<qBYejtPx04E@4)QqFQIva_?3q7V@e_+fQo{FsR(Ua~Tp&<WiqIr8Jc+3rKm
      zGD1b>F`;jdHs8G&q5fWyny?7H59i$>Sgr_SKg%U281~5X%1JlLCF5(Qg)sQ5YFsWP
      o*mH0Cdw=l@RS8NmN+b1;fhshZs?rr+LtSMW8p@l`to1_L588`R;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/ProtectionDomain.class b/libjava/classpath/lib/java/security/ProtectionDomain.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfac87e6aea9d4b1f6beb89623e30e0d0a7904d6
      GIT binary patch
      literal 3502
      zcwW6$TWl0%6#o8p+g)~t7FG%^0^MqXc027_3aBhapoq7nREjOMB20IuW$JWynVkiT
      zASgHQikAnBA<>s6h6hRPf;YsNfbl`2@fM=S5N|OtUSf<dUe1}>?zX#aAu;h~{(sK@
      zpYMF<I`iJ&ublzVh-aNB5SZ7m>{J2?HJmgwb1=|m#7s48YO&~=*npx%op1<Dv+n3h
      zv@fu}r=N}mJmFYG-I|Ccjj$>(J2V!hg$~=Tv!FmxTr~y~0@XQ}+DNP=5@f0+rt7xR
      zAS3HaBB95Wh-wJT3T17#@IlBrpnLAPp+&=5T+s=8c6ToL$RXXFnlKep3$NCq5iQy$
      zAi4yKmupeYTp_TkW@7G_L%6m>z`;6h2wWkd6f*=8{}FTorzdu@i)oaGw5Zye9OzMv
      zjY^MBdGUr~VMXsy42|E@LWj9sqmcRXz{X~tL(EAY$+0J%VM^M@|LtLIhZ}{M%K@Gz
      zP*_vjF@*x|lTd_W-d!cZ36~qySm4BbdcQOY2@4s^lTghKsuEcr)dv}=R>Bmx-Kc}?
      zge0LJ4OGNoJr<=X%&4gyMcwX(pcB_nrB1+{As0#TK;qqE2~$x*HQA?{*^mj$8NnUD
      zhf4T*HckQ+V|a}1490F7)f|L9S$i;c+vwab$m23Wt2(uTxUQ+BGB>vzvKqnKF3!qI
      z3C&pH#%io_qJ;vPb3dkQ;Xw&EVlB-Z_BLr4YSgsl0_FLftdk%k-ptsy2sG!h$gSzg
      zSn^28yywrfQFjGgW~|*btZ6c~B5Y~Uh4mCzo%*pMp~e+MF=K`sx1-&O4K#E6qRD_Y
      z=HiOEJ<vXwFx3I#O6E-pr-Y5TgX+>sqa_^Vq~u!}$FLKf0yA^PtCPLGs^P+B8VR{E
      z@zuD|fo^WBI|a(dGt<F0?vk(-+h}qs@wgg|2*{Vk$Tm#@>7fCYt?6aaq^>h;gkjYj
      zv~*uhf<}R#Hmd3^I2SaETDJ0+xo|g4`)(HoXj$k%05J)1tfR`M*tRMIsteRh?uEWs
      zug@Het3IAFri3JRQjSM@j^=uPw^8BUgP0SPn$nyj7w#1(kbN%fCA(W(*hfP*O5=lT
      z^?nHt-~gd(HuZ=#%)0pKkc1!(3#`3l8DCa^y6_;GujL>=EFomM%@s)n$zO)N+!5yl
      zC8>O(pc7GwDvh2=W{IE-2<k+)o#nL}e{jlj`8O~Cs%RV*(w|5X3V4Xqu7F3lwbB5#
      zR+^gDN;8vI9-yU|M$hT=79t(icl+yPAsnaRJ!#!7V;QYLCuwZLOxpSEo0x@iz}i)i
      zwy<`y$!39td}SJ0p|c`dJ%n6e;V2vj+MqRIK`*wiW}rP8XiplNckEE1wPTkYB&8pP
      zw7IwGjookdpTZn}-7qTUb13!8!>IDVf~pj*_SX-i#$Vw$hms0M3jVXG8-la&O$3I~
      z=r1c8MpKqx1DODJlaW1Sb}z+lAH3L4v<_e%4x$o=&_wG}9L91Sv7A_86UaExoN=N#
      z<3w}DiRQEuyyMIiksC`0&vqw3D{B@J`O23wv~0MemO073kTy3R*W$WylxuR8pC4EG
      zdMryTFG(wVNV(AtQ!d2NC<spmB1nPAw_la3d~zK7f<J3%<!uxlj#M=%Hyy()#yC%T
      z8nPHw)unL5iPKo+r_D_#GT0?nOy8o~KT8$(j%8z}jg!eoHEzXi7B%W)+nTsQdQ^I%
      z+}nB@ZK2oEvDv%n6uJm~%Q}wzc}$hP3cYm>L6TXLLby}r^G*)0b>2Jbye4}td$*^r
      zHJ*dU%bDX)WN$x93zs^Eu#$ykjzz7qS0`cptDui2ZM-}9Ermo1yZCaM!_sy{UW8lr
      z?q<<Jhe%6b_~#ATyT_(Lr}tT=M+i1Ohw9VVe+*ukqn5%!<~M|L*=~#Q2=A&4Z|@O$
      z@Fs<avf0~-x%7OWviJct-G>zAk1!t}Q>T1N?fV&}|8x5BxPVrCL7(0)(T%UrkFT)<
      z7qJW9Q2%_3$MGGG<9ob>AE*v4;tYPoyZDI^f5s>Hg*1O9>2LJ>9e?2uQH(#c<3W_C
      pGg&OWcm$7924@Hd9wXEOLSKR>@FahED9cCj6m^!s(-!+@{so`KVsQWf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Provider.class b/libjava/classpath/lib/java/security/Provider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05a05bd6b219a3b5ffd3aa20ca6696840e99d16e
      GIT binary patch
      literal 2473
      zcwU87TXz#x6#h<<HtjGiC2a$3MGIn0CT$~Lkpfy;(LygsX@IK0G#%2R$xNM@RLg^Z
      zLG(#~fNv_emLx1)%jE@q@CjekU*qySC)3a-5g#(MXP>?Ix4(Tk`Td{oegJS3x8jHh
      zByXCVX4bdzWzP<_vgbW_(_Xc_IAQ{Q>Z}~tMXBGgyuh~nING;QY&W}TdA3=!Z<#Aa
      zOQ6SBpE=9(ZP!_vnHCUd1-hnO#}7;=$eG2m)%IZ7ox6SY&KCkP+qvNiBxY5(qUjW}
      zi-Bi5g$bTHW{Dx=o3&t!#Axj&Y{w2x38YfZKGV&rbdG_h+*M0M6#Y8(At?||rE{GS
      zIH02&T~Zp<u@^m3dP0YeE`hzXwqwngODmRlvBoVi>*h(#Btd?M%2=>w`;0W(x{9O`
      zFId66V$zpNx8kYMAh*qtsZG~>W>jUO8|6UY*iNzwD>totFwv|@H>)(Hk%_}#XLcZO
      z`GHl^F^Vy=BGh7-_MGXM1<MmSxI5F`#}jd61@<>GIbF7kWZZ$HWXi0!OArpu*0_do
      zydXR9qCkI(?xl0m;$<DL;20ZiZfsc2s=!z)(<W7jJ|ROK*D-;^0v&-{JJfIzuf@Ts
      z8Te0DI$oEF_2$>C{QCCUWIk{CzQ(aQtz!!8On2Z;nU3q&9EEe%mcU4h*0gLy6lZjd
      z;92%`T{<S3jRe{@<$?%A{F1=XV|u_SY@CcbuVYqb*6vv)chl;?+iXrvZqb4$7IiF0
      z`?h@1GTAOJ$N?obSaZ{r{bd~&k<_q^cjI_x*C5r>*6|*$vf9jNs%ZM$hTdJ{qm(Sb
      zb*#i;a<dwabR5EA4Xd~jhqZf9RrhohuqN*TS(=3#|6lTONIGznUdM;!HF8q+aHRvR
      zYUglxp`4Vn;>vN`;M%9AA2(Fj!2$8XRqV0-N#C~%j@<t<o?DW8-NZJ%ED3Gu_&^Tg
      zp1@t=G<#E~PlDQ_TlVtS8C%{TUE5V3mmy+@m}Zo}HpDQ9I65eI^0JOV<Bu1UlDoq<
      zuPnYb+U`Swmc9Hc(Z7xFexr&$BXbY?jnq917z43;82U!J9pp2qj27v-M1UMaUP2!(
      z<4I}_Y8e1eVHi-71Qbe=kP#)xWMb5^c_DO`Z)w$Le2e{e>rm}VX{ykA%^(ad@HCFp
      zog;PUfjbS(>n)w1X^A}4h+J;z%uNiPKOzlD*tn0>{Mc_89Qz*QR}#-v@w_Bb!Aljq
      zTEPj!$W$>oTE!cW5E9DsV?J-QSD!HYr#nh$)JtgKO}wQtFfc<Y!t)WF#W~e&?r)gO
      zDSpfHYBjJb<{H_2rs5}SR`vK=7+=WU4rBSmi1M8#uenk38dbc`x8_yFg+^Lm^7$2M
      zeNC7<3U;^_unwCJVPoutBqLkM%OXr*je42p5hgI3VFDSIz*18JRa|PE%%AA{GqHam
      z)&q{ouRCZT3GrimN>oXEqCN}PR7nBVMWcc%6<oWIJV6sSA*osCD^Zj(N38;fSv;cN
      zttdWZxIakm;f~oE3t=PjpCAOgz%Q9nGDD!mY6b6qjy;(lL8*K<(-`$nM*53u_V*4l
      P$$Bx9^&Wnx{I>oD5v2q>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/ProviderException.class b/libjava/classpath/lib/java/security/ProviderException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..040f714e73324cbef67a96b02125feb29059ca16
      GIT binary patch
      literal 810
      zcwU8(O;6iE5Qg7@B(6dzfi~fzZ9ZBdg-{V8PAC-@J_IPLXcK&Z(_&U(tHiF>Hne{M
      z@lQB$io}5{QvXfQl@POz1yu;`#WTBp=b3kAf8AZ*09eKc3nPT$H*qRzzH~yZf}gcL
      z?VYM)sW*Q(@_V2>*Fu6Y7l}H;ZP&hrZlJpI;XfhkORYr5mfGj@{>}!0b_wI_p6ds~
      z4Q$Z~WpexX{Kf6%pL0U$lX6wCMi{Lu*o4HocP!Hw#mfxR7$ZzHlq)}n-6N@6;;17D
      zQw`7I27=r0IlfE;C(0+38~+)gPRLanj{`IVt=x8f!8Sc}rspfR()HV>&l4G;I;8lo
      zo7Rc;&Wxj&IA@46yaM)?bVTU0)!a}$VW#pAP|1J_gmlvjwIjEb89M)Dyd^_G89W2O
      zDnAvHNO83IG=djMaL#MxZ-#GHI1<NXwTJPmNHW3SG)G{S#dTyk%k)K<#8d?39mRk(
      zRvK-py4b_(LBa;tY(|89UlkKfmdA9|oVOFRcG$8pZB-XP_AomL+vB1y5v<ggJ-{ry
      giC`vsi+8Lx*upT2#X;%;TReQmqG1_}<*4TUJpuWeEC2ui
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/PublicKey.class b/libjava/classpath/lib/java/security/PublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8220d30a3dd570529a64731cecd42539e01f1fd9
      GIT binary patch
      literal 202
      zcwRg8Z`VEs1_nb0K6VBsMh5Y$#Ii*F;?(5QqRf&?{eaS>oXlkJ)Jk>+7DfgEuw+hR
      zUb?=2QdVkm2|EKDBZDBS7NBCF%Hq_b%*33q)S}|d{Jc<47e)p~FGdDl=ls0llEl1{
      zu*96wRMzBu`{NxBNj_j?;0n$!ElN&x%gjk-WZ;9_ss}O}Xayq!GZ3=^u_OaK0|$`i
      R1iG1tfeT17GVp-eya2f*GkyR7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/SecureClassLoader.class b/libjava/classpath/lib/java/security/SecureClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62736c8b06679800f62b732634a5081ca87e22be
      GIT binary patch
      literal 2507
      zcwVJd+in|G6kW%i*u<SCPST`JO4}4@N$jMi(1KIDCfFe~U?+uypb!Z$nT+G9CNtJ}
      z3<`*gc;E}*8+dIcs1cO_QHe@?6k?q-mYdqn1$eN}ZSS@AUi+LqfBpT-uK=!LHHL`5
      z#k<BQM!Ig94c`v-(yMY}6&<5qFL}nc<;S22j4C6?aCg%Cj<{d*y}&X9+jAGZUBh;Z
      zhFP@)MoP+|5!g=pwo$K^japWqf7RY`jez(9E8P~k($k?7y=`mNYxt&>?Krv9!J5qz
      zJ({y!JID)6OqF_uo1I=4&?IUcCvZwfKjJYA3Ji6H62}0Bq`|PjiK*%Jeh8e_(TAwO
      zV99o^<;L!o<*ylA4s#hUd8Xm48@?^qtxYYc+I4|Tr6cr}k=G30asz=g2LvwT9TGUX
      zZB@vvP6Uek(_9UF+ug}-7M7L{R&lx$p4^N7A0?N}GeUt$9hdMNi@#$9ofQ(uO&tk&
      zaDAl!FX(s{mj#xN7jYLxuk1C~*i{AWLKF~N0+G!EFMwC6aJj^pV=<G6N%bcV&PHIZ
      zM~LB$YkTR!USJg(l?n@cq$K;Il^R@=8oVs<;eRAJmMEh=k>r!Oq2pD&MjcpTfh+ri
      zSlPNu;HU6fTQSTDTsS-qd3~}va=0ZhAg_<*@7nb`&nfl%zqvVW$D-#rAq7Lv;C1<$
      z=LP&jz>b4;zzf~%654i6yJk3SI#RiUjv^MQT&+RnGCh<#mX-pE&W_7>cT|ztVYXW`
      zFX5dS-exoFaPb`5+|yA)nG`HQvEj>>6z&V0o$3-=on$4V>R>IyvEF6^@lfMMTlU7W
      zt}b|0y0LvwA%2_qB4w}T7~?8}XE@hnyXMYG?z~H@2*;shstG;$5Ca=cB!0rkePuq%
      z|6w`+w+NG=^BfY$V~jgvp(D=VETCrNm>{f#A8x@f5?*jjB%3&Q2>Lw#Gh~><APNdy
      z5B*x`r}<dV(<4mcg2HyViYn~X%=u9*Io{XA#U`G=*T#-2jQ15@KD2E|o4^&k*y5PN
      zw8|xcBvMMY1ZFtX)NB@48JUbA-O6f>Yk8)VIXSCXU+QG7D%NCZ*Jjn*tU6g=QLMUR
      zkY!-c4;h3`ls<_f%BeqLCV#}p#_}I>NIk&y-;pWLKKcRC*+;+4JjTL9WHwSsp4?1|
      zCi3NO^PAeZ_Lxe^otX!C;{!U6YfnJ#G0sysM`gj^q#ASh7$!#(mKwwC3RDE}xT-Nm
      zpI!m$?lbmJaT%ZCI`(h_pVRwGyoE1#slUQ9zQ!iL!AIP$;M;x5RNKl_l?wbM(Be(r
      zn+QEeiLgjJO}4X^_9dRk3dMiM?eYxMTYjQ^T<Q58?Y~zXlc8msBi`cB82JkB&|2^T
      INbmRl0bBxaZU6uP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/SecureRandom.class b/libjava/classpath/lib/java/security/SecureRandom.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..78bdc63f9fec4b147680a41af651f00c018a2bac
      GIT binary patch
      literal 7756
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/SecureRandomSpi.class b/libjava/classpath/lib/java/security/SecureRandomSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0c6d5edf76720ee685319d1a226c3bc4fe8be1c
      GIT binary patch
      literal 489
      zcwT)_Jx>Bb5Pd6mpacXFzct1VEF{KGi3Ru(48g=x8ma{*xCHjh-C~5qA7y1?;SVsD
      z#{XhtoV&xu!eZymynQ=wX5YSFUIFZ5Gl3a_t-idMC7(JYPnmJa2@<-Jy6X;|JC%SX
      zkPRgRse7f%cAq*Xfw(|EWR=TLJS7KeBHIIEu^*OA@_gm$o7#zhxDZHJUF{pGO;Zj=
      zWPeWHAHPmN`U3H?(#jkQ#0tfxfK_$7ltc{K6jDeFWa>&&V>E1&cO5z8>TZV(B-?O3
      zB`tHSe1Yxyzv~?FAf$WT(IMjybp`A~s}dMzBECTnrZP6fy>bzAPMSPv=vQ7VwkiTi
      z#~pbcI#Ypp{*TRGFod-OUW$*+XB`R5GS2bO&maklb6$_*JTnK3g3;c6M&>D$EO1OR
      h0*5RvBga`P5@8W}z_PG}<q%h<xQaEt56prN8$aP}a-;wN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Security.class b/libjava/classpath/lib/java/security/Security.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33419eb80c5f6c475bae6c7a98bb4568c10f0169
      GIT binary patch
      literal 11241
      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
      KkIXgv<NpI}3W4tc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/SecurityPermission.class b/libjava/classpath/lib/java/security/SecurityPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7bdffc44265f8a75778f63f44f927da85dea0f8
      GIT binary patch
      literal 583
      zcwU8&%}T>i5QWe5FA`g=)wU`WiVJ_i;=0m>6{!+LsCIuFuk}iL1G$Od6Zj&!ab;J6
      z3m?FT5+`Xvq!kyLduBNE%}hSO-ah~wV9i2`P`?xRqG6;P1uA@KbSL6M218|x^0kEw
      zq4wK#B#d%@EQF$wff8O%2629MdQ6}*LZR(z6AB&ngcr$d=jEm~daP{{a)(N*utg|u
      zI|<qodeG>GfzpHKPLGgj``6M&8Vh;Ym?tbcO3U+T*q6bj=zEe-a(tIZ3Leb)q?ieB
      zl_6|6|DDxjuNK3EGqnL>YsOx)H?@QtGLMJaT|Ww3d7|P)s?#I)<9`0}#AkuyI<m;|
      zYjKvs9Dfww$}!KC7UwB`bGv(QD2x)%B1b!^K5_3eimWPQ7nV>0619vKX2h)Wgw<hB
      a`cKv?vqlN4K6Xv9VpU-kZ&*#bSHA)NW`i66
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Signature.class b/libjava/classpath/lib/java/security/Signature.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eed75c19d445e672a4c0ad70831d96fe528abc23
      GIT binary patch
      literal 7379
      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
      JFIS0%{{dBqw&?%>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/SignatureException.class b/libjava/classpath/lib/java/security/SignatureException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6d97ff886b2852d895ad91c310966821ebf54dc
      GIT binary patch
      literal 825
      zcwU8((M}Ul5QhJOwrfg(iWDkfX=`FiF*Jr7NewrE2GSTvp%<E%9M+TenB}ZFyQ^}?
      zD{<At3m$+6fVVNu*=`yw1#Wg`PX77kpV{j_zpnti!Al1dgz`7>Lo@>EMn;9_jkfA)
      z5k^Mt{c`2^Q2E+Hity@x)d#7i5nel~hgw2DkVXlwBTc~d$^I^Z4hYjbz79g6!;bJG
      zneM&4z4%gU+z>MFlvd$3VY0T?A*6QvuQH2C%;b>86k)cdwEP&Iol0{oPCZGOYxyn@
      z5IlzK<S`ZYR6wY<9^0l#DAWcjPv~x=9U7&(&9#mlTChW(v6r);YX{wt5$a=_|9Ls?
      z8ULrXln|FJvB)=Ib7@yZ0edZs)f0-f2S8;DDiN}6KQgX-uk6-~clX<{2vopJ@J}Wz
      zA&m@2hpP!ZL5g!eEPr$SvdNJ+rt5u7U&fMI{$@D>TP$uO&slCD!c)w}P(D%u*k+~G
      zX6oyG%#RXwxo0mXEDTf$!Db6sjED1i64pLjwx*r>`s+TPkHQYQ=_rPk2eKi|!Ey|<
      e*$Q5;+G0!NEUu1HKe5Hn_gJ(nYq1jdRR03JO`i_{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/SignatureSpi.class b/libjava/classpath/lib/java/security/SignatureSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..426f987a9f36f542b944668ee952ff92ab08306e
      GIT binary patch
      literal 2716
      zcwUv2TXPd-7{~wHY??G(pd5k}T4*_xB&~##2PhO<PDaW>LW_W>ZSp2vNOsrFhOytk
      z@kU1-FT8ff8!z<2!U$6wz4L20>bFq;@4M+{n*?UONb>IUK8N4?f1hXb`#(Rg0XT+c
      z0(}~G-!~tc`GzPpJ<DIo7p<yo`b|$1T`K`y!;spqnRYdQed)d^`5FdH*S%@lWv8xT
      zWWFO_E<~_9t)c&nWn2D?hFB)Ms6jvPltl_L3>ruvIRFit48+l|VavQ_i)+pLlJIVs
      zOEsZk+q_dUYm265$>)|)_m{0kkFpVLmK_pymFWtsy(m1ZvciZ=N63xlQq3w|5i8S@
      zEOqhYl5l;?u^S2O)G)r$xnMsuYgU=wp`V7$?JBaqhS9DXp7qf5#d?ubFW7&Pj@iW&
      zmD*$ACF~-q8%FW^o}ZEGd#zhC0@4My%sq;jnaeIFuwTR2b7YL1GLgAAS13sQT`hdu
      za`JO4zL;xPD#BBA6UZcRSi|-n4hFKwv1>e0H`xt#Rdqulg()0K;AQIAZn3MTzic3n
      zqx7j;tRBy>c0m?6Zr}t?(q0wp!94+0ParAQs|NPrfQ)<Hz$u)j2FqsS<_3hjOmEq4
      zlj+hu6VYp_S<%pUZ%%_&<EKFR11*Ca*E3nU*V3pUD_=A)i@78&^I)yE8JlN}znsE2
      z3bOIvV!@V{>eNNwBa;$x9@i4Mx?${!D-B=N4P3_!IeVUGu9O^?cb|*q2!?aI(8HuI
      zuit6<>M;FIrP7cR#%h8mi1~FlY>@R~iSs;Cp4PeU%5&W@umC1XHms`Dh*Q{KQ|IES
      zwlop`4bwC0!WW)~!#$4JO(z@i13LGdw=i3zA5#~E>xmK@xvb$x=R`GJQOeKOst%u)
      z>tTG6W>u=B;b_lN-7#U!1jIU^B44l@P1kii5?ptMXG)*YIfXI?DUB=BP@~EJ0m%6Y
      zguEOPk~t1#vK?8v6Evp7Yq-4O8YX&mTK7Hh(n~eR=1F&CdTb}aE;-mXpO?PZ9KX1(
      zL_~lXIP-PLyDB<OuOu#6^3}aH`jS2(Q|aUEs~G=`I7sqefU6;{`Om=b0Y05UA6Gys
      z_lO_uCm28SsSlg^y;((`W#l>fzJV=#G6HXA*$U`7wqZLhJ80ASo2G?t(5MB{GR%x^
      zi>&)LEi(IHZi+Q?ldIU>S=b`*eU^Hl3XcWuL1DET!Ki{6#9kh(kEQp~t6h3rSq?-k
      zkd}iHm~jR3Dc3rGb6bb-G<o$qjF9Kh)Y@ZA&P-0lMptp{c251i!j0Fy`S*`D>t2cp
      zd`5!Lnd=M6@g?@)E9~cU7GEp&T#!9v&taOvvxUiW7BkGWoqp#iag5A-w{<Yj;(QnL
      zCsZfS--+BRE}Yhf^|jG&vFQoM?`*sD2yZ@{92wSQv_8faet#eG?o?50to;m|@Cz^J
      zSF--5I8O!{L(U0a(~Q!10yjz5r&dMD$@nqc;;v3&zO_1t7jV0a*l7``N1rB7>xyrb
      zbh%-D74NhGgUkPuu77d;cLXdQf~9e{1(puM(zvI<;`CYvdl&CTFy6<9Dq7mjh<z!X
      z1equK1m!!AP<a*-^~*}yfFju$_=F@$RI#k4%VM(zGj+T*Q_st^J2FYhaFQON)`L}(
      gV;-?PszRPC86D@;e)K~}`V*1#@fN6thVt_N1BX#dF#rGn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/SignedObject.class b/libjava/classpath/lib/java/security/SignedObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f3cd5318ec2cdee96058e941f1b46598673c761
      GIT binary patch
      literal 2675
      zcwT)~TT>iG6#g3a!evMT0TL3DfJWS1AZwzDCLjs~lw<=jBq$+KhuvWrTxM`*hJ?gi
      zykE;(`Ruz@K4_I$N-1OB)Vy2%8{^kAv%9llNp0<PPxt9_zH`3s^xXgNx4Qri<BKS2
      z1okYct7_8H(oSBt*OJqE*3dFj^GjOVjv^$m!`;uRMmAYojR>^5tGbz-*7CZV)32%X
      zIgQ4a`#PiLE!{LOOq>)Drv#ctO~bNP!=6!djux(e@cUw7@Sg_)(X?sUnqdpn%#8@t
      zTa2#SPM)q5dr?z!S(B(1mjzl<WgOFXUN^D>0+B)8(Cs0CR4i2u&_Jp(xwCnFRkgL#
      z+S<cA)5X98@fm@Jv8!oq#bydt6m0@Ki_RyeN;^^P66mh<GGVMTbcX%|W*q`uTLddv
      z34}(?jMji!bSh}ZK7ra;e5L^h&>cmWz^*MkD0mEyvshWp9xfNFH5T7ou6hVOp<p|9
      zMDe7+zG6-zYqmC=&#P-wj=kd8wAR$+2K1maibPQ#wDZ`nG>W57!tEF6C^HZ=8IVcD
      zkyP*$4huA1AwtdbB+wQMp!61f`==E=Ba0AT$T`-cTsfxTS$8F!Gc8TRJFegaD1t`Y
      zETzCY#^Q4$GS%l5C}@%ud_lpB7#66LVv&_&^0BRz;gx+<!AXo!V$Mp28w?zq8}YVY
      zQt+}29Fl64p-w5-h9-gSDc#T}o#lBgf8OhdmXw)hJE)W--~Gjqy{KCPomC`Q>^!M$
      z)2~u{b!k(jGCr9lXwtNGLhL`^a?HpQA<5cO{cK6oa+wo2PzqdCBD57Nr8KGvgeLV=
      zW|8koS^AkqajDoK?(%3(wX8|g9yc8$6KJE?8EO-r2_qoJ%Xm|YaV&~?rdWxp!cav<
      z8nO_(%c>1nPy&s}LXToG(E9;L3YKt@1kl(gOxhol5RQ@Gc~$bee{=bQF?i*fI(r~h
      z#XmP|Nq^<7S5k&-_7Y<aaIhLhlY%P}l57vjaAcKQS)eYCZc@54pVQNiz5*{wnO|4%
      z4sI|@*)}u2yUwlMdChT4!ByP$+l7F(yFm1`Dp_=u`mp%Q9++>?x~SIuv1&C6+%GCV
      zQt+|79hx)Rg6ib#b0uOZQgX5P5gwS~wCUv2+PE&evpLv@hvYGSD#-``VT7;;QPgo>
      z&rfI#8u;fe<IcDFBQIEv5!y7Ph3`B0R>$+LXvc1z2ma+-gyU3V9eWe~1?<0rgB$3X
      zT}SLhXan)tj?g-KPlP+dy#*ZV2p4cfK8_|jLIpf`2ZQ~61q}5ke!*Y?Bhth89ZdY}
      zhCj{c5rP6t!nHVa(1ulXQ6N3!rWb3xi?8E2ZeR#EF^*f9#BHQ_V#tGqGhBf?o5EQp
      zB4@AQ9KFlgG|n@DHr~D$FvA#KNa9tz#_|Zv;-a5&gkvk_+=M@%eTZXh1D9td>UF%4
      z+JHLSyN>jkzF)B*Fv;O90VbU5|EZM89v9J<%;GCX{2HD3hF`pInaOu9;)LhdN33vv
      z83u8*5rc^pdg<iq+sL~FS{UF{B09=Z=G90v69w4!;FN<#+^z530E%bk2N3de>$^z$
      zF2Zzi@ZrNh1P+Hwhp)2s<?0mWaEbF;j_rL+{#u{UYM+Pf=8q-M+gz)=^!Ep)cF&E_
      z<((`s){b}ao*T6t?~|t*{+3w(&77$29?;F8A11t@vJ6yLqFj^;S+%&u{*%wYIRBf$
      X@4Fz{Jx3)F-S`Bby4Cs2J^T6psm_c5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/Signer.class b/libjava/classpath/lib/java/security/Signer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61d61658962439fecc0c38332be6dd1341fcf555
      GIT binary patch
      literal 2154
      zcwT)~T~8ZF6g^`M3ueQ2NFjuhHXp_&p@Fs}F{Mo)2_y#G7)a^&dOa~q&Dz>sQ0POe
      zN>!v*Z6Eq4^4dtPK}8~OdFUUh)aO1|J+oen4JNYKo!NWux#ymHXZY*CKlcG#!@7o$
      zK+n3dWsJJg+;l8&do*q3Z0TqS3-s1n=CacExDe=YrDGZS73sKE!Cs!55fJwUPE8kV
      z*E4Ky#mH~U#=oEbvmg59-(7)7(XqA+Pd<<g?oZajrYg3CK+~jUTi%pFLv(mWAUs{j
      z$_N_Jp+m>176^3dh@e%VJ!#o;VRIuRoh2iam$W1cCP^8j#(nTH?5$ZYOG(zNk_k^o
      z%a*)h=SI_>W7)aH@QO;=r&69Ff^BU0=*Rp7#_B{T>#LSF3q_ewMMdsBF=f%Ca;}Eg
      z1uoPEP>6ZMHga-<ffZN9=)7VyAkgS4EP->cOvQfWq?f8vejqx0vi1>N#;}GcyIWP#
      zw(H3a9WlhI0O8U>WSOBu4hNWJ|5|gR8CL|lRh+N)VY&!LaZSTp0(~b&>ljn|cbjX{
      z{OZ7V%QU6ShKAe?fwQkjO`TooF;&X2$g@A1JSMZUup=6-3tT=TrM+e3t!&D0*nCeq
      zl|E>=Nw8y36?-!#{qqr29At@L3Lj{ApYv9ig^pXeEzqJGwwcLWCTlz1EZ<V@mB5US
      zJGd*Ly9Y5rk57zJV?BY62yUpy6z=PIfQ!`Wa7;MuMPIHnC#WUR>=nv`&YPpQ_vP`|
      z@FByGe!jhF<+IXJ#M3&KuqdE0?E=+}U<Ds(cvL%hew2<?d`!<Rb)PIg7PwS>-WD_K
      z()1E_I7E;_Uo$@AnA{vvn=f>H34_;*Q7lS3D{!UWu|M`HVD00X3gT$wi4>|MAM039
      z1xM0_O~;gXEp;!omgnQD3Z!X979DA_1KIF-YSh5{IfQ;RqKP}r-!=1(Hy_tc2&>zW
      zmNxDt`CafGiS3|0CjLO@bKk$4&o&?FUHXrs1=rETonH3FY4q|f)Fl@n-D6aU@77p+
      z2d~wInkJ=j2G96Vy=C_RO0D{FmS75WfVOk|7Upiyhkr-}g`vmdBRd$Xi@(I;#)-4+
      z;}4bnEBJbVuU2p1O~3F9xERn+2lTslaVZ&piI#ZRNC{VCzoYZFN}4Vb0t`MgRMcdk
      ztSY5DNEJpqX}nF~PP{|?%B3{%J;BqXlI?S?$R(L<euT+Jx)MwlFX6qHXp5<L3DeKe
      zvxkY*9o&2IXb(5In0-OhT;MWC1)ibxz~#ALNR+?9fbAFy1)h-4Hrakn>o;WhErt1x
      zUf*LFPx*iR2X^*Hw&o|E=bx*DOICzS@;6WPFlPO_lyIEMK)6|YD^UmckXntE@NgH)
      lJNTsQ(-J;c>XncwK^|(@<a_^GHBEy-rVw)ea}AbC`#(=W_(cE!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/UnrecoverableKeyException.class b/libjava/classpath/lib/java/security/UnrecoverableKeyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3976d41690dd14b46b7ed9aae8b04241f4896496
      GIT binary patch
      literal 555
      zcwUW=!A`<J5QhJO0;Yl>3MvN@FAA7Qj0Y1TTo8;(ydd05+2ES8HEkjCSe{5c_y9hT
      zN8@a1Ow^co*qxopH~&AgZyztO08UU!Ax1cSu;y0X7xv7P!J<A;p0M4y@T`#|Zp5PV
      zWQ)f@x+(>OaPS?z6pBHoALU;xA?FKETFy{-KIen03j$peGHqA+fu(|><;+B4{C?Ii
      z7v@t!vMH4eT7-C|IwTlvcPvcAv5|&}bwai$mAIWvN5Z?)lM(Vg*JcBYZ8(pLMsP2E
      zLbdnLr5c1nWd%Eyn$-J&C)K1;9cu4__TJ)=rv60x{lW-l-<^53=t^x~{?q1Iw_+cx
      z#XnCdA%P^v6lXE4@gcn?-)XL#awLw4+7g-P5Xtgwas<v{potv6(klp?$cLglYb4NO
      gQnSh0(GuG~6*}D04Hb$jDpJs|B6dRa-LPlx6A^}c^#A|>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/UnresolvedPermission.class b/libjava/classpath/lib/java/security/UnresolvedPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8304a0c2ff6d601b735e66a7240de08b6ba86c34
      GIT binary patch
      literal 2332
      zcwUWE%U2s!82{Zom^2+|nx+_1s?gS&gwRN>)i(H`sVJ1vDi8(S4B-mH8D`?lgv!!|
      z|A4#J$KG>TR8Ij<d#ZKiIo-N(;o9TY$6EdF%rHrYQM#D9-|P3i?)Tltf8YNOzzE)#
      z5MemArfeu>i`Sc`YHyb3bdy_#w!xQga&uj^EY;8@#2B)jb}cPK%HpP~Xf<vMes1C_
      z1Dj;%t{S>!E4p1%v?h-~%>4Gx&$++8VUU!%O@<ajddl&tDf&uz#x_-brNR)ebJHf}
      z;NnzgOd&5<>8F06))kwRZOq<ma5{8losO<iRafm-85Z*U9Y2ZWz=(w!1*;m%Jc%eW
      zGEz9sa6BYhp>_xiPsuof!-DFQ(c@AlWF%ecqzoC|3`eF^oliH{m$*5rENNWy#i&z5
      z6>2N-o-k&ws??S<fgHnbj5;H!>kUoi1UQ)wAlmE-3*@&!JVWlkt*Ep7!=|EHfm&}Y
      zt?{}|PLe2KNJ5cjA=n8SXYpJT!zfEQx2JE~s#YE|O=Z&(`sW!6`NjQ?LqsCssIj!x
      zIXj+`A<}FxBvut`Ra_F8<_i-dxtC;Iz>5sY6>g91O<yKo2%EozZMd|AQM$sQ#g(S2
      zEpsygnlm}y^t(ThL<Je~8<TMbRce~jXmEX*VK{6+_K7^l72)Cy;bNSjKVSWS!?$Ey
      z#wAKq=eJrnRy8z@J7qGQ-K#R>W?Oa@2~!NEgGZ|cN#Yu&#R}YT`b?W~l)Br(%sQ*t
      zDVuioG}9sT?<3tIuDY+l>3re9txTeZcO`Vocn|a90nrSd2k+OPk>rfgH0yj^6-(6@
      zR^vH=q8F0tqL(s`9DQBHNyJ5vKw4}t(VvR_r86aVo6fY@b~+D}Z3;)}pC;~O!o=x3
      zQ7rA^Sh2K?-r~?Uvc=(T<cfW<ZS;TbIDVS`ISK^W1ZYx_4RUx38GJ<YO*})I3$7~+
      zU=VPq9w(fjMDU11iS(ilB@&F0{uEAo>0G2!SVf{+e$+0<!zWIJURUc!h~NyKB|Q_1
      z?D_bdq{9E?&<|jD5RYyRJp#L4x<{qaw}bp`l!?m`mvgv5;<ChL9qt%${lxWui_&ex
      zV_R*xxE;7d&HfCBC{ho;KoMVJf=-d&fE(G*Z;~$RJmuAcQM^F12+_3bUZ&@r%z=cP
      z*TrDXUpYQy*T(b7@G>rW__BwOi%RYW!1vm~aUXoy2QN~pLO1dNmHG55yLip*!0V}j
      z9b9!Y^68wQ3q<eW&0wJK+X9XFfhMT-y(%Ma1rKm-eizq+_{X7D-VCiW8wCFpTIJiJ
      z;NBqkmr(FKPuAaGL%}nc^}ypEI3q^sN5t7(LF{1e5o#@8J<h=VP6PD^4b-1)J~O`0
      I1;={vU!G>~pa1{>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/UnresolvedPermissionCollection$1.class b/libjava/classpath/lib/java/security/UnresolvedPermissionCollection$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cded8e7fb56e7cb03d7bde6cb6e48eb7204aa31f
      GIT binary patch
      literal 1297
      zcwUuL+fEZv6kVGZN{4~ga<eK5QneSPEhwPHTd*LZpr+77U(B?e&>_<qGBYLkD|`bF
      z8o5MG)Hf18%DB%kAR2t=T+TVOuWPOB`T6V1HvoA&3ZacKzNu|%Sx3~Gw(h>qu9>!Q
      zEMr@&zY=yscO2a^=PbhzHJ49`d<a28)XOn6b0hn*y2-8(Itcxqwdv|cwrDmR!q#L8
      zA>7b(^PON5VX$;zP=V0tG^>74hg;X3M2@kQS^>vJI%aiKcOMh-$<|U+6+&>%S{Gq3
      zJrxSN6a)}cp`w=%NTw=b^kXoD0m4`-rBz%;oY1v(=5tu8b27ZpoVu%34N*{V6+<Ch
      zBlKS2R&gCSSSMkKhA>^O5>KZ7Bd26Bq9TM&LZqadVx`%r3VT)7A;d~nO*1N*t;=uU
      z7?h$DaxLkW$g}8?y5=lfwkVzfW4Yc+2q_g|batT~85Os2N1pDg7)O=`F~yGSrx5y1
      zshk_CLJ0ZOS@RfH*l5`bau`y$dWJyTlFh#noH$Jw{$pOT%FSBcZ&uu?i7g3U!4zTy
      zrEE3rnwZz63h|5hdcO!kT{KN$&l#HI2qqaRnl;06baP`_xOHotVKH-l+j)i59`Xvy
      zJsOo0#b45+qMM_7__TmFzJdO9<^YlO5iX@O`{+Bwl>-caWJeor^4jC2abcQ5m}W5Q
      z6(O031a5ggR@X23$uC+??<0APY2Jp9(H_{7htEh8cA=z+JDi%v2tSbHr<BedV&VWv
      znd*mj%g|){5R-esy)#G?3;^^9A$o!ydWtAL<GG!~2tCIr&0~@lP@qLD&=N{i!fRUb
      zU=N%?^I=c2HurF!fs-5xpTH8wNOE!6bQfJ;G4<vMGv7}@G1w1(D???5v5E+-ol_?6
      Zw+P^Y7yS?g-W9KvykeN;HOLAM{RZV$FZuug
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/UnresolvedPermissionCollection.class b/libjava/classpath/lib/java/security/UnresolvedPermissionCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab046caca794d22a4df7ace2179cfe0456ba1d60
      GIT binary patch
      literal 1616
      zcwUuMT~8BH5Is}Cg=LY7h<u4k5!+HIsNhEx#R7s>G%6+VwzM~8&9ZHFw?y9k0lsSd
      z2|j34Oe7I}FeWDcB#m>g3skK^lXmad%$YN1=H4&g-+urwf{ca`A@R^$Gn1akm0inU
      zPtH58@QU`D$ln$2s^xiB(McC=TjYG6X{aUi{_0W9ju7^QYngUdxbkFvc9K9h2~Fvu
      z<N2oJXHB~->YiIeUl$+0enMz0?ZSA3BN-K=>|1tn#`IQvbJ-Rt!hy?{WBKERnrJLb
      zs7)91LPrh41`IT5XdxV~;;G{h!VO?t13DTB%^AxPbLG`#;XaTCgqBP($8=35&Ff&Z
      z)?cxh%~0llG-8@HW<F0i7R~%ksZ=bhGo51wdT^YeTi!ik=I=Q6x=L+H!%0Gy^0rN<
      zkh~v2Og+kpk_@8b1i~8n{-{PZZW{V`>=fE8Q!SYGgj*=D3dgSiJtbv|AZ8$r0h#}L
      zNoiBT#CI*HkdlfH8W=*72^WM<=#N%d-C2IfVx(e!ZfO|d=Gd!ImN$#8j$wo)<~akS
      z7-P&*nK3U^!ThHv67Pb6PF&=gS0lE>$;pl*bpE|agiyIe==+EAvn{RdDpipgA86KU
      z$+m>IPe(ANdSMG$5jO3J#wxI;9IljWs`k<_#Vxr%rM-^q8__X|8}g3K5Jr9{u}?e8
      zi>BW%mff6~w&bnosOF#u5sX>K5pLQxJx_Stqg+XTYeHO!Ivn7YrdIU`%X`T4TK@CR
      z<&%RvyUy0cV>tc}&GAhfT6~AYZ_)ZndA0HPpu+pc&rl<pc|5B8l@Hp{!6R1`T>;)F
      zww4j*;~VIHipEWxV8q_7fscqhlgm@QJiRrrjmYiz8?+|gAi9CXHir2(H~1Otn;2%3
      zGjltqgBv)zFqqiD`Gq}FLoyX=gGNWuOzmi+4)jnbBGiRZ>gFcw!2})09G%1i>Q$uU
      zKZymT<?IqtOgn-zxQr`|Jj(Ko<EoP68YY62#&`_L$Tcr^<4a*d35DDC^K=(C6yOqz
      pn+`C}1~NBnVseqCo__fo)L4bC4FOaLv+8>jw|JDV*Q5&2@&k$gjDi3F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/VMAccessControlState.class b/libjava/classpath/lib/java/security/VMAccessControlState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a960fa9461d89331f43f38060481e21736892755
      GIT binary patch
      literal 816
      zcwUWBT}vB56g}5$K3vyCO-%i0>nD=zLswt=q6j6>Qrv1m2_$cu%@9Y|UD%yS`=9#I
      zf+ASx59p7Q-kqeOu>qZhxp&T-d*|G<zaQ>@0ocP<9#e$P3-8)<65;n_slGbRPw#wR
      zBuOI*RU8GU%2Of_gD|Igffx3ilg@?k6`|lWNqkWWq3Y`EzLJ6C%J5QjU74tTf+fQb
      zLNx|N0<{Ub0~tznNXXRcO@h&gy23;Tvlgad=20S4CUrAW#OyQ(3l_4-rCG&79tA>)
      zS>m{V)e-TT*9io3+{pKWrWecfJOmAOE?Mlh`}E8#z1S1#>^v4;S0jX-TK$=oGWj?*
      zHc!ffmlC1Iaii8wEtu(zFqXIU_nH6QG*6>`?2Gp@oo0E`>u=IZtg|;6{>fAPu~j-_
      zqc~<cW0(1UhEGS#B94pp9W47Nimf}$-D2L(+@kzLmo4(X0E72^-gi;LTU0o&GGYyi
      z@d8T#6|jsIq-zx~hYvU$Q%=^tLHXOLVNQde|7nsPG~x9MuZP8lT0gVx)iF7yMq6Cd
      h)*Y$?)~G{H&zg2!(@s1VGXMRN5HUdrVMDVv{{X;qpd$bP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/VMAccessController.class b/libjava/classpath/lib/java/security/VMAccessController.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d05cd9c84563057d1913a73bbf76e0f79f1b626d
      GIT binary patch
      literal 4797
      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
      M^$UF9c>ACK2VQ$I)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class b/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..955a1f3db7268173fe4c069fccfbd5005a6e42e5
      GIT binary patch
      literal 808
      zcwUW>-%b-j6vn^VZo6e!p@5=LRD?>}y|9{ir!fQ)5|gS4)lKlq=`z73%a-gP)I>B!
      zU%*>mz-tqTi5EVAZ{rK7-%K~D-WV=s=A1Kge&07UKYo4t4&WBn99ROaeR(9inF@<E
      z%3pPZ2Ynr?ZJF#24_f`hC`nZ6z!qqjld(+px{n6?D$E_!1ZKz8?IKC!AXWm^BN-Q5
      z#fE^BvK%FQ%$^F=?nX(J-xILg8=Zj5=5SZJs9@T|BpL#hb|;tsxgH$U1*UsZq8=6p
      z1C>4=!DoBJP{x5wBb}E;JAWQ!0&BgqT;~p5X&aG@DM)`>aM8mAT#~YUcqmYpVW_gK
      zbyJ|zJ{z?Yxa3^*(9{=k`@<p))mEhK&HdYQL-Pc@`?_y4mRY7U2Q7i6{|V7`DTQSU
      zRXD1!u&y79Kf12{bG11p;c@pIqb;7WxVrvVO!>`I%zR;HVUF_@89>2~7wmnB^UUT)
      zr*VN1OmvZSejYBNQ8J$xZJ_Dfr&#z*?#>Bj>}MZI_fN3!>G#jE$UIE~uQ?wR^oF%#
      zEaI&Z^G29b%+e26O5A3q_iBEH5@VWc?7b)L!(W8jh|s8G371R4bz>T+^5R#<fSM`3
      UGtHJ6%VxfY6@%AJt8A|S0V5HZ&;S4c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/VMSecureRandom.class b/libjava/classpath/lib/java/security/VMSecureRandom.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08a44d63f8015b69c44e093cbc2f3416d895f721
      GIT binary patch
      literal 1429
      zcwUWEOK%fb6#lL~o^c!pOuz&j18xXl2PTHlrhq9Ahleao0&(gp4G6~ewKM7X8qFgL
      zThu?mvabbFB{o$hB!p?BhJ6>^@Dut2Dj|?q5zd`4;jxHn>(2S^ch8*j-E)rS?>B$0
      z0XT+>8bS=|C1cshJG}1Mrh7MEy;_lw&l;l9X=_jz626CJh*o~4w#4f$gL>K&rhA4V
      zoXu4kl&MaG#}Gze91*AtTg#^4(_XvA?Kz`nafZQir*2qP!#3r<M=I{3=`idqZ>FKZ
      z5N~n8ZNudi&KnF`cA;1*<w_d1F^s%dSF$YLGOY7<%WHGtUR<g3JFeLgQEX>OSzNT-
      z#Z23C+)RyUL`MkncFko{o<LG6-^q~7mfr`gxV9-;g<Ms`E{6RdWD*U&GUK^3&0@zB
      z4QC@&3`6MCFw8Kz*_}o!cT7re$B@DvnRzc2BU_Y-G9MLuZqepOBZhq#k#74LhCUQH
      z>j@!CNfM>cfjADz@<$xkuwBVy<H-5UU6WglK1z2ujw8^ih&H`Tw_{-6N<JUQQ5+-B
      zWyA8QH>@bd9gpL4e8CVk>UHioqemHX*-hK^?rH@&7;4RHHo46ZS}4-4(`-7N#)p+?
      z6ZC^ZJHZPy2!|H_UucRTXqmKJIa;6AiyUH=j%U~TB~#AX_K)L?OMjZGk_<Lw8IHp#
      zxz>wLWuUo+{Do-IJkwqylqbt1GuB1)k$)Vcr|OfZ(NE8K;6QeOY!q9tHF!Cs5KES&
      z(m!Kh6^Z%5!7g?@8~zFX!|B^&Yrmp@6+`n~?0%Mr{)N=EGO2_oBM)&zPexXenolbC
      zyGU17v2UK3i7q}nrS4XrU^J;HE0fCi5tfYTYY*0+KZN=ehxG8oV~qWX3%U}3f*uLL
      zgsui4r)vSo=+OWS>51OifS&LVe^`GqELB_{qv$f^xF2u)o*#{j8W=4w(ZD2nY$BlV
      z&ygTsVEV!OAO5Wd<Q<-3Vng<e^luv#UB(`IUV(x#Rq!f};WS2Y4Ov{rVa(E}YYu1e
      zHJw(8`G)?pFtC6IZlOi?9&X?l+{EvMAEAaWo%{oif6>HC!mr5dHEN7uiD~$bZ6Ui0
      zZNGyz&?mcuNqi|MfY1q?lwBosicpADyg-5a9VRXR;Va@4jN>@Y5Q>nde$sZ1rs6Rv
      a_c^9uNAEO*^ZqT1m?9gaxG7o}5Pb{bQALIT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/Acl.class b/libjava/classpath/lib/java/security/acl/Acl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..250e3f47f335efdccdc0eda6116083b90e7fbb29
      GIT binary patch
      literal 829
      zcwUuKO;5r=5S>M|1r$(0#E+8~dZE#aMvRFEJP{z0c<{C^o4VL;$##qK*F5+G{87ef
      z6;LV~4$XGo&U-U&X5QXkUIE}34h={VC=cj}+5u;w5_)V?=Gs@xH6Tr(7(cmGI(FxN
      zz?n8+jX)(y=sZcT2pA66ZR&9XrJB{6k$YMR=`=7Pm;}^ot)DVo3}IqO-A0mV-4e()
      zpBW!&;mg2)4FX5WD%!q|3z<d|FloQvlv<4moc)(^z6CL_VcikPDen0r{v~8^JOvL3
      zR3|P&EnK@PLys#OB}S{6o^T}9p+d8#i{dW+%6y3`1@^$%W0xyW1VQZRd?_0<W^5#n
      z1DZkT;AFAdVrw@`lYaC0t+dFgsr}Ds<EVRns2IN%F80pEe$*p2ZXSUZ{8n*!P25fc
      zOo+BL16f3Kh^FyeM<fr0Ii#3CHen0@wh>7|3GZdtiPb8wJH@Mb-;1&!vL7P{9~Ry0
      AZvX%Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/AclEntry.class b/libjava/classpath/lib/java/security/acl/AclEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..586a36e8165d52b11f74eedd68090f6e79155bf5
      GIT binary patch
      literal 639
      zcwT){O;5r=6r4q|P(V-+1@YhwE;b&G#>5yr86_d{;B8qpb+NQ$yCvbTdGH7Lql~W$
      z$VZ}w=A|>U^WMJMukVjf0GBv(kYQ+!_>_CG6p2=5=5Y~tcOvM9M$a7VGE^)d@X+_3
      z2O}wrgFS}o3cU}aQ1U?_8H&C%J*`5aCOlv`ZFe3w-G9kz62}|jR{KwF=ar#O>L=-Q
      zqo%Sa^;pHRio%#-r`>sBa8<lyEkq|ud^lVw8P2yGq*q-DY?q3b<7mABLs`5@@xG1}
      zChPqh%S$Fk1ztBy#!}N9WXO>3D?j8W(KOW6U%H$B$GRn-oQe8|*5NbMmNs_xbCeWW
      zk*2Us&jTac?MI0g@<F93m6rKlq)G~tHb!5T9)(MRJIEmoJ`dN{0*bbluy1P_6<ZG$
      d^>9(EsFBMNxnxkM|6`n3yn!ZR^cpPF`T@3ZtSkTk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/AclNotFoundException.class b/libjava/classpath/lib/java/security/acl/AclNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55cd695dc8f66399b004353bce43e464518f9520
      GIT binary patch
      literal 392
      zcwUW=Jx;?w5QX0)PK=C0LIMSJG$>GDAqs?oKqwFiWVr#{Z=4k@GP{wzMnK0sI06k7
      z5(Nj~7#svKHi(LXW@g^(H-G#7`T7Q66N@ftgw-o?BZ6EeMW*asAd)mVNYcpIkty`#
      z=r)m4tBiKx5PB7x3Vjj$J`g&&%#=uDndPj{j}HlSLTC+*&aKck7HJ_H(Z|#F!{hxv
      zp}DKHvU`Mje=R0BLo<;c>X`H4VV2Mim6lO)J(k&-7^jlZ4NbxW1dn0;lXUE*$_f4O
      ze+LW*-l-|FM2=KhzVsKgQTD<LcsKqc!ZI3YvUge4FvAg*JF@jTvsG!JvHpVAbA`0o
      YdhCH6I2fSAk^c>09^I;GuOb(|06lD7!vFvP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/Group.class b/libjava/classpath/lib/java/security/acl/Group.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0d5a2c55c86e2e170e89630e7e6e5111b065127
      GIT binary patch
      literal 355
      zcwTjo!A=4(5QhIET3AuxWJq`b2#JjcPZ)3LMS}@9Z>3B~Nw-V7Es3wjfd}xR48sa1
      zvxmw2Nx%80^Z)$r_5dEylV}Lsuk}`|l1vIVek*O9dJ9F`NHhhy)uYpXrDlsYnJ97f
      zZ{#yrZ|p`pfwo>QKPX>N5Eu;KYq-hiOP~`dFSc~1Tedt)nOC9|=nqGK9w}O<rat8q
      zbhL$^@T$38c^y+Afu}m|d0hL47xu{JMGA&qtz(m{I{V?s^Nj)*T$dbFlXH-0;h0DJ
      U)U#8+Mu({zrW&|qbyunG0b;CP6#xJL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/LastOwnerException.class b/libjava/classpath/lib/java/security/acl/LastOwnerException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3bbdeea7f08a8eaaa5569be7458c6341153ab21
      GIT binary patch
      literal 386
      zcwUW=!7c<r5QhKSo!!}tS-W<L#7!cC!%oC;aakl}!U1#d9UWRmk97B7pT`q85eE<8
      zam2+%)C_TPajB}m`m3rx{rdU*0$?3;K5B%eOK~G2E7QU#H;F`=MX|8%=vGU!dzZ><
      zr*iGXBlIgW6Z$;*eIRtLG)iQNG?w-0{tkf-2<=g>trOZMA}eI$>Hd8(cx!zSnwv^1
      zw@s+8tR@6+l%L4}bxel{Fh%IZO3TCIYAnr(7-y2ui}REZ2tLF5r|G#1WeLmif9wwl
      z!Es)gRPL#Ac>XUkDED9y?2A8#uz&`doPAa`w78<uAIFe88<hqcYmaC@R7i(oz!@0A
      T!xp++h2Icn(5sgAD{}S=bNF26
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/NotOwnerException.class b/libjava/classpath/lib/java/security/acl/NotOwnerException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f11740fa3451f99bc526a679e1c4f9f4638b0096
      GIT binary patch
      literal 383
      zcwUW=!7c<r5QhKSo!OBwYu7FgZioa26XCYFED|zV2h6>9bZ8kpo1UJ<LwE@B1Y9Hz
      z9>9Zm3{f-0#l@wn{_3x){`C9j>l=U#%zCI1mafEDgt<%#qwHNMk~AD-_V`9ivwxe&
      zkyV-Y;1IeMm<oLn{yq@exim_ou{1gBv%@_C9TA%SOy^c;8;i7%?(@g};&|)vfza4i
      zTG?GfePuN!IQ{Hg`lw?nfR9N+D^gkxitC{?r(&2&LMO@+J|OrE>z}4$FI7%hj{f1k
      zNAORw!X)xQm9ukyi1l&{7Qn9fX9)9f(ctW{s$qgFD&27mxU*Slz+HPm^Ql5w9DU9}
      U4-R(F<|_DxFpW;Nv|EugUn2=y2LJ#7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/Owner.class b/libjava/classpath/lib/java/security/acl/Owner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0144a74e96485f5ced2d0677d386f40470d603cb
      GIT binary patch
      literal 373
      zcwTjoy>7xV6ot=CAWoq_FtKzi11v-xI(2R*1W0Ub#<{8-SqVx^OJA)+AD|Ca^<p8U
      zD#C-UbM861pZxRt^$p+=LxqSiD)hU~8aDgd`p--omn}a^t`$0jK^Qt+zGcg8!NwC(
      zo#!Dyc$&=rmshndjooSYd~q<{5PB~M!#i)QvQfAqJhTxOl@CkKNkTto$DU7c*MxDq
      zHrGw7r)+cLy}!&Gu-4VSHvDQGiwK?BF`p0!F^(seKj|V7tweR?O~vV*odgk5^u@cu
      Lt!ToX+z|$U#A;;h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/acl/Permission.class b/libjava/classpath/lib/java/security/acl/Permission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f304848cb2f525511ea341cdfadcfeb8bc2fa04e
      GIT binary patch
      literal 202
      zcwSwOu?oU47=-Vy+SWSgpqmfSE(YiBPJ%)=w-`c6i47*H;Hx?K06vu1=%9GxcOTq6
      zp0_)IH6{rn!m{BP&YTpTRsPDj&}=X5NjaxXn_x(oy$#LVn(dB_6rK>vbH}wKEb{Gt
      zTNVdG>P_XXYHPwgFMga4EeTm=IxFNxX-SxVCs)CZ34{ScqW-}MF~XAsX-^2_z>&QG
      Dy(u$5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CRL.class b/libjava/classpath/lib/java/security/cert/CRL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bda9c3e7dc90cd3fcc4f1a5138718665fea4e555
      GIT binary patch
      literal 536
      zcwTK$O;5r=5Pee$1uP#TAbK-iT1;#_V~ml6Q=<tG4&F*xaS^F03km;96OD-ne}F&A
      zI9-SyB%AKco0<3a?e^>Y;}gIc4lNjj`XpEe-du!>SgMs5idcE=u5ZC4lyz?!%*Ni$
      za3VrQFxBcw5Gwv(tEXZ)8@C9Vb2*dhf>3k*x7`7g+tEnmk;0A*3pOF;xPu%BMH^{k
      z2qj<6#P#BFDB^xFoa%$3FqjU4SSEN=G}XPF6B_<@?`*{y3)R<7tB$+PYgR?;oRE|A
      zu2@D7VnjH0wrcVw?_?M#(Q<DI`Chb$L(!3mnJk}pnvl#RzDbIomS7~;;mqV^A<LB<
      zqYl>%j``+0e<yD!yf89Q;=QPumpp&Pvu%_a)z{P5MFr4VqDqYSP~B*H9EoGP`HI5x
      duUtkKeJx|J2i7wDS8Gg8VjcV1Y(ujSegL#JYWDyD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CRLException.class b/libjava/classpath/lib/java/security/cert/CRLException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab089611fd2eed00d6d6521fb18bccbd896f0f65
      GIT binary patch
      literal 817
      zcwU8(OKuZE5QhJX9}_vw!%qAlArFIu96Q27ENyvXASAL_#Ey3$wTG77XflI(W)j$N
      z0gk~5SXn}X1LO+a1yMa7MaDSErmL#;*H?d6U;p{>3&1lxwy;Fl{~#_!!<TlbRq(lC
      zOC2;iXWf^dZ22)zo@*gVc=E64Sh`XRrx({ZTEd1ewGz%iYM<-#lNSU!C9HNl*AIjn
      z41^QP)VI>tFTa1DN<zA&TotqliR$5iknDKxWd;eXWs$)OVZEzd`6j#=O5GPjhdc6J
      z&*lMw$8a5ACWEo^36<_Wk7*JL)v3r4?x@iVv~owy!-1JuFf%vV%7s5NbN-VNY73fY
      zZu(>GT^UC)aoZ5fyaM)?vPI~#)xttOp<KNKbYMVxgiOy1wJl#M^XS~{%buEMRKWK6
      za|zo>A<fa^Y6;6oa?Ts&Gs`#6ITFWIZGzSBkz}3E3`d~F;x;xo%T7heAs<0`Ju#ro
      zN~2BJ>Jx0u6OOs(bwnsmRWZS2MU<l9yqK7E!j_F`t5!dn;K4ks$4&hRb}*IQz%1-U
      gFq1vRE~^c8Z;{3QdForX`0f^qhGi^PqMk>80k}b$_y7O^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CRLSelector.class b/libjava/classpath/lib/java/security/cert/CRLSelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2fc15051ccf673ea9cf6c6d8a3c25d54da0fe6ce
      GIT binary patch
      literal 234
      zcwRg8Z`VEs1_nb0UUmj1Mh3a8#Ii*F;?(5QqRf&?{p8f55`E_&pWxJ-)Z~)<B6bEA
      zMg{?}nw-SEbbbG%ETA|$0~;fQFhbNhCqFMWF)1gNk%2WC#Aaj=(a`ik*Jcfr&P^;y
      z&R}Ga*6_h@v9)FtBLi1(erZv1s#_+=L;)n{=z%l=?Pg?P24YsAKbU~-V`t!C0J)Qs
      PfeR?Y$iNK}XW#(<bfr6I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class b/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58cd7b03bcc1e55e9a84932081fc59a58b592523
      GIT binary patch
      literal 1562
      zcwUWE>rN9v6#k|Z7V08cZeCCeBD4isQBa}Ypir$ARKO;LA7<E&u%zrZyHm8jhp%BY
      zQEDVnfBOc$i!q+rwouR-f9%YeGw1T1Z_e58zdnBfFo9(aK8BHPzRTmTFp7>TOL0Ru
      zGM=R6371<#HDOs4H24`hJ>xvLHsg;swuK=zv@mpgTGNiN2*>1k^EKbd3o>@SV^%n>
      zX<N_I^9<}ELwnM;T*)n&<@us$j{JDLnEGjTG5BSvKyJazVUiW;nAT>3?s8mm2H*M|
      zL(47GGUXkHzVM%>>vNGTnJ4X>2%rhwIy%wA&=ihj+dwWlbhIn!jE<A&VCcx0mRKt8
      zYzSwyf;*V84T8-HJe{jbzuYoihDhc==_1T09KmzT!nO0e6rejC$sA{oi~<X<3{j9o
      zkgH*k;e3tDiUn0A_|Ab%07DqoaGBw9103cH)8JC1xFKz)q+<kOLb54j+9TZ{B#FP!
      z*08Rl@e&%M4E;5Xb0sNe9fz0FR-stM8bAbNiuG}Z=CFDW1v;+d3MQy0Hiab|3Rt6x
      zVX_K`;?;#|j7WJAj%y5|n%|Nw>s#-DE)7%k<j0GhE1LP7a9VMrN_VW5B&L$YYDs27
      z0Zd|A)iT4-^EcMA%Ho!e+n{!A;e~>*atz~*3H}pCLWQ`eV;0oft<tVs9`BcGlmM<`
      zS}hAYQn=61rbZ#ji!QzESbf^nEysST$T*VuP^%%`c=oH0e!wFQuJ}jqA2(NRy<!&~
      zL!?YKJMA?_V=4fHp0=n7l6mgBg1Y_*!?}OFHMMWuTw#D_w~4-HTF*j5E6Hv2Kl34g
      zpc-zHgKD%rou3}>6j=o6v_|J9+B>3UbVWx$qBlDB5vSjKhG#uDKdsMc<rH#*f*3eQ
      znoz|J{WuSJl1jroNhMNgF5n{VA=3HjX247MhCupgpN@V&?<ZW^M`Vq}(`AhAA@(k_
      zkE?6@m|P29FXN`N*+XIvcgsl9{roo!eD#v_pcfCS5Qn{5ZK}IKdYf(>^r1)-wu>0;
      l6SPl3da!#d$*ZvYFo=hEL=k<+cqK1liS__#7#`y(^xsNdlMDa=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPath.class b/libjava/classpath/lib/java/security/cert/CertPath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b16f484e0594d2b6062815dd5bf8b14c329a9b37
      GIT binary patch
      literal 2633
      zcwUWF+jA3D9R5y{k`k6uVhfaOK*S~~4YeT96i@<4AY5CDr7CRG(`GSj!tREfB3_tr
      zd~o#5!SUS}9zZZ1?2O=y7sN;Z2FE|ZafES3{LW_6TiWWw?w<2Izw`aR-*q4T^Ub#a
      zI&eJ*pTLT<`UO2<%WTOqoXd%<w46kWucNw?3nC!U=qluOb0l$O@T|-_LCh0qa-~Kg
      z(IYKG&l^|t!Mvoh?QZ*|Wg7+aM0$^aI3TbvRWNNwH=RB`Uy^mbTR-~j>aV~3Ef8=n
      z7kMq5nK07hScW;06qwg-n1-`cpt-g7INHa{slt#9!H=+p20SC+Z;kfN2QO&Quux!8
      z#xUjK(z!ut^;Y<WGleYa=_JX$Ck!|_!xmVTnIjbB6C9CFuS>V7H98YvjS73sY+;C7
      z;w`Cal^i3VNITNfoq|QZ`8~#nsXHZ$P_Y@6x@+Ngs))$*B|UFXi%2Ca$>^yNp2c%P
      zte=vz%5@D9tPL?V&ueH!l%XM4<(n~VWOYXpGdzV!#;~2_0>l+yn?S?V6K1tAHESLT
      z0bjN#P@mK7oXU=yle8k%sbLd36k;dOokE3|+Hcjc4INB_ZCsH-bTM+%>F+KL4@)bA
      z?dVpiUQ`cN77^t@L}jNdl9%R)lZ)(#D5aM)yo}w9mtHJNb4Z|VrV6SNRjecx!XAaN
      zm)+5to>i|NuaI<mXdtA#NNYHNgY=hyRSBAM&x?*iKBSNjPoq>#;arrCs*A@IrPLgh
      zdYFOG>q`HGhAmjZOyyY*(=$tPnvcO4S<)`$NqO09paP+4VN1p`&>9_JY(sl5Wo6M}
      zm)k*{5lGC^JYIoS`(pf->W>+cqM*0bRAP60w%+vM-S*Hf@=P9=#k`)a=~6GmK@79g
      ztHY}zq;0968)p_oj(sx6ELdM%(3I+_vl?ClV?Khss?Ku)OJ{IxV0W}H2)0e6YW;A*
      znLIrw5janX+H4s4A!*ga_8e%hvTIlD+N-3x*aAg#tJeipG8Y9l{?GDv4J6gg6Cs!i
      z!^B$}-o{l9Ej5f&ddZg4YPUCM6)r0NQy?d#EHhr|_>TnE)Q2j&o<hmW%6*0!(hIBp
      zwJRVdJ8hcMO67IiR?}<2q?`oSGAVvOb?{+1f~e<uKL2?>gb-H02ChR0s7b<;M(+0U
      z%%`NWQ7n$dzedw-SAPlL4a5RIrv4{H`4mgJTT;=+GPD5hN}<wK+FRjaCfq$x7rTq5
      zTjOx^T;UBDMyn`PVEC_HiB*)Wc6HZq#i8wiy-$gvu_^u?#OJ8<-;6(iIHaK4_>{5k
      z2AX4KY-r<i4>2Dt)CF$(Z;sntPRqb8hT}Hf_=;}bp}o7LdB^1vso;;hv<Vy0PU{U=
      zN1Ya;2sObyKD*pK(A>Bt=GuQD7jrFd7C19uwBqdjNzOKV285bU9@s;guH&~)L1g0h
      z@S?yD|IRUN?^ocXNOlEU0^uEH>{?kyD!h-2lV4(4OCY}Lx?kMGejm!nG=|DJa`L+G
      z>B=vj{!ablR4b!*BJ>;FD)^qZejuA4>Do`^@DOeInJzxU9)1tv7nkkk3L}qg9gcB*
      zl6=*e--cI-*ns`$=gLovBu-%f0j7|XfLd?xPJrLju0)?E;U9QB&4ZL?F~n6>L%K2f
      z(5+sea||PH6c`(06mQ<jjKS<5L$N<>jl!t}zf{JhQCyCfapeKzeK*jH2y@zVd^NKU
      z{6Wc|Sd7QqKOu?7{B1p<<9|&m=}yn##mxFUxJD!&-gSw-#~M_HE;#1|K7jTw-9&K4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathBuilder.class b/libjava/classpath/lib/java/security/cert/CertPathBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fba37d76618a23a2e9184273a32646bf749f085c
      GIT binary patch
      literal 3671
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathBuilderException.class b/libjava/classpath/lib/java/security/cert/CertPathBuilderException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6b3c8c185ba33df4973bf3b6ac4b123bf428a16
      GIT binary patch
      literal 1632
      zcwUv0%Tv=(6vn>`ZG$xkmZu5|KCllUAihCnw2A{$9L8dCdkJ?+v`v^K6<xa2t&Tfg
      zxN)l+m|@|T8UGOf499bCV#PFFxXFF=`+n!#b54K!I`|G?7K<7>7z)q$3vPJAY`B*H
      z$}olN8%6r8aew<>!>Vlw_rXh3?D&>rYe+Cm{A+k9Y~k`+IXpMD485LkEnce#*Q4{3
      z<@*e5g`vCX*q+aAzrt$`kz79f`Qczm`^=D9ux!g;Wa!N1Dh!FDvnA5##0ec~9B1e$
      zS+;o8sBa2)op06zL#E`I6o6A0I)|4Df7|jHrb_?uuz7}oY+$HyyK0nu*Rregxr&TG
      zAmjH@T6M1~W46c`hL4)pw_Rsf=A!(kF{0rNLtl(Q$0*J+boov|V(8E2TKQ=(jL9U%
      z8S*h{wu#M<G<n0Lk_^NuB=(Yy30!74CQDxo)RS!<6MM^$t_puucpk5+Zsm1k)uZS-
      z1P*26y;44{qku`d8=(&G(0lx{&&}uSE;kkLijEoC{XZqP9Ahm|xq{cj7G0B~IT|5P
      z-8Nqw5w}t{Xf}i!Qf^Di%@%X0p_i7OhHHu?OODxSyIGo+W{gvDJLzx6XaJH((W=p@
      z16`11r+KEYPB(M3GFp@QeRO|Qk{<e|X$9^gfg*Zorw1aOL`FerAVa_+DWx`*FYKc~
      zN+^+MRS^aQRY;J#K@6$jX$*&~6-rsEGWo(GH1-8rVGpN>doIe|AkNbx+)R_3!FgN=
      zx#J=CF==Embd_U%at{|b{t{29-!>^zlghHCsAGY?N!7z_<xcWDXisAn@{J=!%zbTw
      zQ|huFTR<AR81q!ryc=sCjg4$X&97t4GqJs&jaK*#_5N)ez#L+Fe>F;YN1pd>dVd`^
      ZRB)R2IM%Hw>m#u~wPnpK)`Iff`3(&JDFFZg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathBuilderResult.class b/libjava/classpath/lib/java/security/cert/CertPathBuilderResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3abb577210a7bbea28011963a05227aaf4d41bf5
      GIT binary patch
      literal 264
      zcwRg8Z`VEs1_nb0UUmj1Mh1<n#Ii*F;?(5QqRf&?{p8f55`AYN5s+At;Z&NLlag8#
      zlv-SxQ^L-`!pI;1R-KcWm#*)hl$Dwc6lG&%5JreP=j7+5CMM;iGBU6xgV>A=A{v@L
      z=-R9q8MxC^OJEi;GRVUeVRs2oJy&pkX;E^jTPDbCDXdP^1DODH4<iFJ5VHb($pmyW
      VI|By;$nBgATtE?^#UOD89snNkNHG8a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathBuilderSpi.class b/libjava/classpath/lib/java/security/cert/CertPathBuilderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eea07821c457dbf2c8987f9ce918930cddc4e013
      GIT binary patch
      literal 557
      zcwUWBT}uK{5It8{w^mED51)I8w4g0|C@_MOf<Q_#e7~-PUfB=1dspgb^%V5b59mil
      zvs(xel=op~&bf1D=FWZpczpwKgu0EKz|KU@q#Ki$Xl0&UkF;^yY`W5nFB9btN%yA8
      zh9ywVQhgbY+`GYqJR?v%Q=u~F0{KR>FJQH!Avwrnxr_pe0+o&m={5-lq#xwKCxKcg
      z@}%FFTBZ1#w9Ht=0=u1shG_|uC>(L+j1%ZJ{t|YjmH`>kajUsNgL{e--*6A->d~XA
      zQBfG%s0r-<ubnGwYzQ3w6x@U}>8s&|KZ+QSgZW%@75D5#iT3DPrCX{0e)>UL(%J?u
      z9O=n%#EWKYGdgB3*cbL*u=Jc=J8T{HzzHmzqQp`8D~bII(tlk=g_$aIMb2EqI-|`@
      Gz4ZyQ{+JB_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathParameters.class b/libjava/classpath/lib/java/security/cert/CertPathParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfb72c44caaed2cf3d9f82b2473aa173e480d374
      GIT binary patch
      literal 202
      zcwRg8Z`VEs1_nb0ZgvJHMh4Za#Ii*F;?(5QqRf&?{p8f55`AYN5s+At5s+Avn44OX
      zT2#!=z{1EN09Klln3t~apOlrFT*A)4#>gOy5OvPU&r3~A%1LEpU`+<G85u-0G=0#u
      xSu-+l1?QI*C8xS&g4Bv*+NTH712mkGff<Ndf$n7lI)I&l1H@wB1d>b)TmV*ZHQ4|F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class b/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d058c21969beca3bdd8479bab45ebf06efd05b5
      GIT binary patch
      literal 718
      zcwUWCO-}+b5PgMZS8)|Z#qV!pz=LQ!VoVHbVuDJ7;a-*sCF?Hfc1ieGdeV6C2l%6m
      z!@3%ji-%69(|K>+O#A-v`Uc<#I~EcQdmY~6#XvZrlDc1Xgwn+_nJU-qI(KE0YhUdi
      zSuhx;qg<DJt>SH?BOGnPWLW>rP*t)gUC|QFGe=9`V=zyoC-o^qGGC}O7-hdH(nw;$
      zhJ`VPOhtO)CVXfJb;ld7V8~W{hr4yI<lr0!4c(RjL%#Aq#U-kzLMlI(FI4^tFO6ZA
      zAveHw3D*0D9q4|Sw9R9|LXHxCm#W2%jYTXmOtgfqD!)r4eHvtbs7g&M>9tCQ(GWwr
      z=7-7=mvYclZbbRP0K#Bjd7e;Zmj{8Mt}_>&<N5(HTnpXyn-(@0cK<U88(Y|Bm?E*~
      z;+}`DzM~%hjwM!yL(tf0rRa+!Xwd`FX`H-c+8OPs{b!_~qHCLMI!aS8=yH-g`zr}k
      w$k0xI1~W0iVN76VvoDx?{9!PoXm1E@#^@xLqpTIIMwPzsKo)Cc4Xk7H6IlhVr2qf`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathValidator.class b/libjava/classpath/lib/java/security/cert/CertPathValidator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb2b70d85fc1f5025e46496688c65d9c62dac612
      GIT binary patch
      literal 3933
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathValidatorException.class b/libjava/classpath/lib/java/security/cert/CertPathValidatorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..367c1cf0a80d00ed07441a5877031aca5dbb6436
      GIT binary patch
      literal 2433
      zcwUWEOLN;)7(LgP?Zi=<;Mi@`w4^kpIC5MA4ds!LwsBuh-6X|{(*gsi%B>@?rH&*+
      z%1_|^*up?Jbi<;|(0C{_bi=?5Q<lIM{s_Z&B~@{4Im1Tx^__FickcJ;w}0>c1mG#W
      znm~jh|EBu3TClm+v~=f2LF1NFDAH$HbvCMMU0+un(>k-M@#~Im8VN`YM;?Zp;|90X
      zdc|J{u?)jDw{*2$<(5tB)zWDOw!ko0G!5HP4Tt!fJod-&%lp5S78(pO-B{<F6jWm9
      z(|i#O2g*BWoMDL1>W1#jF+{VIRR*bOuJa@qQZja7gdvml2<oa)D^wgyH)=B?aHy;s
      ze6iWM%B>akYMm3JY-*%eCDpX{Hzj97w;2jMspxiUCW$Cg{Ul?bj3frcY`+W{gQT-z
      z*TiLAsu=dRYhBr}%y)zclAFY1m`LCd!$?SgjKg@GOmj?+i6Nbx?B*A)JRw}kGMo=_
      zCG_qc-7g6vW18Bu$*D{zo<aG)SBW&KBxM{$fuUbKYtf^g>fuZ1Zj!3|SOQNojP0OZ
      z#x$OxDyVTsZ0Xl@O?5cEbn1b1O-HX6%DU~$4B%NjpTKhryB<D~@d7AA$=2WHZUL4O
      zc#&aZTUJTb^itDVx;Ae%jdeSykR)btLOjM$0;d=bwL$82UQ_F*tXi|d4W|up5+@jv
      zr1&DYZMDWlk)4rI6pugPC*n2D_=6;RwoM<!m%N4(Q{U)4*<PMTQI=7{f|yN^Z`bJ^
      zor<GsZ>?CW=1N(Xv52AVD%Q=yvKM7>wc$Q*6crJ4iQ3k7cZ0I&2<~QCqcphXvs@M|
      z)h@6fLnc+srls+-x@h6?-hFyhz^S+B@#wD@#XiIkr&WSh5%eJ?nwRD&(YiDa(iuG&
      zeTQi^O)-qdxWZa^<U1FWrf-r)ph8?L$k0soqOco#XcP=1KEpCair8T#*TP;UatEUd
      zyMwW9t`sEtzD8WH6Ym>zx9W24_HaI@m>s~Q#46awefBb;L{wVI{fY#;g+y)(2Xida
      z!jVq3b<)&mV@?OmX-q=#nR7n#1!5MC^((olP`XVr?}kfv&<hOc`hB5dCWs?0an>ik
      zPth?NtDYfKTbNqQNRgY!<bT0vM#^vD$scf>;U)%t#O#$8=I-SwIq4RpC<T7)Prnk!
      zC+T?po{}d+m5fB*ZmU#CC-5HK^*%lD2c+~vOyDC*@MFy56D;6UEa5Y(;&V5PX-`#<
      zMK#Ex>SrNlqDZ3dOq7j8=hT~iW(C(mAf~i%`gR~B?rwh3RwuEbPR`<77x;UOb%MVM
      z1)s-E2zd0{4)E<zFg1FJ><gVY-wg#H4$b*uC-~=3@M6$i$J)S4o%MB}-2J@=!6lzy
      y&Tp=`sHK-W8U7^9Uu^{+58gITZM*7TPXCxNuC-3CzlrOgo?KU4u9scREB^ubtJt*w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathValidatorResult.class b/libjava/classpath/lib/java/security/cert/CertPathValidatorResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4aaf63c12c4a9e6c6f3db74f5cd46535a908345a
      GIT binary patch
      literal 212
      zcwRg8Z`VEs1_nb0ZgvJHMh2~{#Ii*F;?(5QqRf&?{p8f55`AYN5s+At5tf*fnUYwN
      zUlf#DT$)qD&cMRRAOKdMlbDyT@1K;FnhX?WV`LCUh&t!w=cOhl<)kt)uqK1pj0_?g
      znm*{-tQi@&g7Zs@l2hF>L26}iSgHro2(*Ebff<Ndfi7nRx`Lg71H@wB1d>b)TmVn~
      BIt2g#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertPathValidatorSpi.class b/libjava/classpath/lib/java/security/cert/CertPathValidatorSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..adba53b01009b989bb532374cfe6016c97af9d74
      GIT binary patch
      literal 599
      zcwUWBT}uK{5It8{w>DF=FM8}L4RVVfwIHM*SV}T{zpjH`S$E~`U8$edQ_w>{pdS^@
      zZXyIB-iJB!an9Uf=Ii_86Tk%yZR7+_CUP#_nEXU5^XmGfjoV?<m1f+Rff`B^>E2A)
      zumq|ZIgsJVeH={4Hv+}B3YEDQ$k!Wv0jm=Y$w3~QB@|E;sCX)*hh#b+{VWFo3DmsE
      zmqA}@mBx#tWyUHNXn1Rm(-J6CIO5)mEcej$RqEENVpnQ8B||!HtvA9G#Ytdz3g`C4
      zr<qYv7~7}`oUNl?YHaKYod1>Fhx3$o6O1B`$J6C(OBMgxixTbAol19i^xuM-X;bSM
      zd>EuJ#~vSqt<BLTqhKtYzGLGpD?4l*MxYG~SJ+~&^h;vgMtc7;Dx9fuuE@+C>~gf9
      HsSkbt`unKO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertSelector.class b/libjava/classpath/lib/java/security/cert/CertSelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84105e7efa57ac48762dd7faf82c082a916d21cb
      GIT binary patch
      literal 244
      zcwRg8Z`VEs1_nb0UUmj1Mh5w;#Ii*F;?(5QqRf&?{p8f55`AYN5uBQnnp~1!#LmFN
      z$RGe#l#`g3uJ50e1r%pzU}IzuMu<A+<maU(Cgr3uGO#9t*o+J!8k#=n+N^=nxrrso
      z8H^0d8a_B|&P>ZpPAo~a){J6g;0n$!ElN&x%LJJ$i0m#skZzzO7#Wy>m=)+FCZI#v
      V88{d~4(4Rw0*Wv)aD&7dcmN5mKurJu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertStore$1.class b/libjava/classpath/lib/java/security/cert/CertStore$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19e537aa332e303fe50528882f2cfdb57453e47c
      GIT binary patch
      literal 678
      zcwT){%TB^T6g>mARji<h_(H`;47lJCmlzX+nwa1t!MHDF#4)us(<upmr7MjKKfsSN
      z-j>FoBrN96ojd28dv2#+-yfd<>ew}qVAy=L`c~EFb|8fsRBbL*wMn6^JjwU!1~i8G
      z2;*38uX^2i<hC-Pk1=ng=nIGUc=yCs!gCq)BjE~l%#bXV?-;bE*X1cBF>AuWG()B(
      zTz(Zib-28>Iu2*ZwmjQ%?kp+7b6nKagYX%Ot;tRs)JF!?HdiXQ{u^#gW04^pa{Lfp
      zQG;jlvV>&=d4~L7>2{o$Sivg8Y>%rO={*y9z_4E$QEw|L++L$RUSdeKy+GRhT!cfU
      zf1OrBD1&+7x?DCL%lA1=mpOB7$McDK$<>3`HL%4{m^878ZS0URnLFk8R^X^xn(6=e
      zu^ZGtpNG~IJ$-@}Jpi3%C_AK`(LQzXhSY0xZBk4{FdrIS&QWF#K}aJ*JN*+_hy`k~
      mfS%31Blq&FphwkUgssQyB-SF-Ito#zAs@(MgQA8_6n_Bex}Bc@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertStore.class b/libjava/classpath/lib/java/security/cert/CertStore.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7901487477c21630c3cc953a800fa89d8a0c63bd
      GIT binary patch
      literal 4728
      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
      aJXRO{$5sKlZpr@yKZUHke4nlT!2bZ+Z`DEo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertStoreException.class b/libjava/classpath/lib/java/security/cert/CertStoreException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c779edd874790f4611fd90764572ba640b5506f2
      GIT binary patch
      literal 1614
      zcwUW@%TE(g6vn>`ePA6PmZu6xRiF=KKztWSNPR?7jImhUUWS`8+Rot2RCMW5x4PA>
      zTit+h;nu{&KS|@ccgBj-Y2s$?qu=*C=bm%={nwYT02Z;DL>I&KWB!cmt}vR8>Albm
      z;dpw9J{8Y)#I5Is*z-)=N+QNE^RM)du!O_wmEhdcG7PxFF?qcz9GA`y@7`o!>kPdm
      z+j2c_c~xF-ig;$_$K=z`13wuO%cf;|s|?-QT$LeKvUfxZ-RRSh!f}TFvT2EX&BnHH
      zHu-j4Fr>@2K>;|0p>uE<^L9;_VYd8VPbxADXMJg%TQ$AnIi^)B=BhICu#7xN2{qiB
      zjMgS&7&~g-+;!}InT7J7!gvy=83rQ+8YVEw(Bs)YiD4+4Yv-rHFeQ`7FytfB>=2tF
      zZt$i{#TbrMNbIzR8O$;qlSME2>bVY&iM(Y<)r7YpT$k5WpYj^A>QQtZ07tXYUMZi~
      zP{5qrjZ<&;=snaLZamp^xS@C#H7v-!|0%I)>-T+?BX}cd(Pb%GqTzAXZR^D$aXV#;
      zrb0LY<%XnOYcmHLdTGUOI)=Dy$^jc~pQ3qbLx#%QO@Aszt&bx?Ym!b~=z%Oa%`km6
      zx>=%?(HhSmqW6=M^wT#*E3k$bN*JJ>=8JFwX$7TG3;?U7l-fkTaEPHWp-i3)MHul_
      z0YUCYFsg#5Fcz@ZDP^fj=L_GEWFL?$9N;8z&xE;K#Cddtn{IK_IE!-uHxqClkVY0m
      zQ#t164sd?!FR@SkwoREDRF)k@o$~c9supA`caq;ldm6BSuOBI5?qds_P?wF!0@Aoe
      zm@kCQ`;q2}$jExw{4&zK5ZU|1aD`t{?_YNSEFq%zm%@ZM<ayhn_g8RL1*b`mVqFij
      Q-Vy74M^;g>mX&AaH+PyLWB>pF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertStoreParameters.class b/libjava/classpath/lib/java/security/cert/CertStoreParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ce983a70a004bae043e8fa0c3ec2bed146cc83d
      GIT binary patch
      literal 204
      zcwRg8Z`VEs1_nb0ZgvJHMh3O4#Ii*F;?(5QqRf&?{p8f55`AYN5nPgAlp2s&l$e`Z
      zl3G;E&cMRRAOKdIlbDyT@1K;Fnq0!pz{bcRj1YCs$<IqoOv*`RWMEAOu^AaeG&FtC
      ywOKPVa0Ta=7A2>;WrEa7V6jjSqzPy`BLg!KvjSbr2y_8E0|$u3zzHOo7`OobMK;?2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertStoreSpi.class b/libjava/classpath/lib/java/security/cert/CertStoreSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ddc8407e1a22760595d00eb08d7bc0bdc7575764
      GIT binary patch
      literal 935
      zcwU`T%SyvQ6g|_X#>RKGzO}dze1OrN5*4JVh(V<hS8k?ptRrbsrjw$d<w|hj2l!Fq
      zO%$zQtC+>)+&lN2d(TYr^7`})U;`x+8HUm=Z*jXR{8&kSZ~H=NyG)CxBPG0sG+{6d
      zr$qq|YxZgNR`{BsXIq9+?=q||x!okrxZ-u8g=#v>7Yx?^oi7?%Mq$%Lo?-nv_b6=f
      zKwj+ywTR-I`X~F7#$c4AD`6pv{(j^zz>r-^l!sgyij%lr73!Q<1Hn*mBcBHsT*)N<
      zNE-S^HW?PW4o$utve-zvQ}Lf2G89Evqd5+RPWI)s^tl!!vDH~a1azR0a+cpKVl4x^
      z90f_1{5mEk7#6z?&~`R?Pu4=NV?|Cc|J!nVwG;8fkF!fo2fmzETynVibGwTBn?VNe
      zpVSV6R@`(z%Zp;=ivyWl`$+rUt|csE0rcr0d9s9Z=s^Z1MFvH^un6rC%FsKv@`%0%
      z0vQa_YNg3zDs(YKX#Bkh!x%~BawuRFjQ*Q36x&3{F_~&i(atnxe%P5MJeQ*RH$iC&
      A3jhEB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/Certificate$CertificateRep.class b/libjava/classpath/lib/java/security/cert/Certificate$CertificateRep.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd1da5fae2ca29d94f10fdaa4636de7aa036155d
      GIT binary patch
      literal 1361
      zcwUuM>rN9v6#h<I*ix5^g+f6<P%3S?RPcgYM4^DG*=PdVgz#(F4s}V{ZFaY4eFGoD
      zS1_807)kWEK9uq7wm?O^{g|0^&Ya74zPWt+{^>J-89Y!BAWZFuJ&|#wUbPLkmeHl{
      zW^z0k+lDS&Io2ev$%=vyq00{`3$v7YytN~BS3xVG$F~|*W?kBbC>t-uR#~#M<EsT}
      zJBDRG%`X$^A)!5InT{(=w;;+@+45?9=k?b&^C}_a)+!tp)lQ16yS8DLvb<Lmt{?<9
      zmk6!%hH1D9gudjjuA57#0=ws|qKqJj9u-}P5rWB7p$#0OLPfhL^{ePWC!td_O!=s~
      zyCv->b=*<S(iyg3@T@nCA@`Z#5Hi|-k;cf+*-{kOq+^x$I89G7rJd%GogynQbXjqk
      zCP%>~!q5?;br0@Mirr(M2*z+lL4uI@Gn!SQyOv#3F^(i7DM>f)Q?E0U>>1>x{?c6|
      zUsgeyFnEM<spiT>+ZMIFS*bR#Mv%g!$NdzcCFvcC2RftTDrN}XC22~V6E@{0%ry{k
      z%BD<z1;uEt5r$7f_xK7H>%=utb^~(?ZgTCDu8((B+`?@_*tP0JoIa-pJrT?z>oqk`
      zh@C~Bck{NHBf|JUGRaSZJCA8+fby=zx>dDxxoY^&sVRKg^CzfzlX=XQh2u!RI4egq
      z{I)Ei<L3*CQGN<R9xXf%KtY)0HvS|6i16UI;>-L}{58bQpJ$IKYa6TwdF@OepgTRW
      zkKXj;KH~3u#{r(B><;SYe<OxA>O}|j;R4%7>R}kf5a3H*8S*8skXL3H7kM3FTZnf?
      z{esU~4)B^tzen#!T-GKIk=kG-et?M&n0~7rVs?Y2>j${=#ZTCWI3Ij7oD{;8Mw}+m
      nPt#3s5)C+E?(i-aybpq5-NSvB0$B8$T0)N32wMotScUon?ITo>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/Certificate.class b/libjava/classpath/lib/java/security/cert/Certificate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c97a9678c664cc18da4fcf78f5f3085fa49e9512
      GIT binary patch
      literal 2001
      zcwU87O>Y}j6g|(MsWnZSkhFx5l7u$3ohBwNl#;Zejhi%1T{qNe+K|<F@)}R&&V=#U
      zt&2bivE>J_Lae&+qDat4R0<%mV!;mq!~!9fz?o+|*s+_+n)h+vx%Zy?@t%MF=eu11
      z)3_6cPvH1Hy{spS(kMBmTS*wwaT7@n=3Ud!T^U9|;E2K$bZaYdBX>_4ZWtkfekC>S
      zL{>VcUN9f&xq>9PsJ3g;DVnx*D|JOcEDIb?+E&rkEq6^Xlw|Oii+}y}XIErMAmCQE
      zsn(bN-$~YWOlxaaAaudBOm|LTAliN$TcdK)-jose(WjvsFA4agv9&{>f(8wT1$xq^
      zB{QY_Iq9s{`1Pf2gY<Ng<i0KpxOuZEFp@qv8>AH8lJ2Tv+#ii~<SaiZ>4oAx&b7SF
      z#@>&R+-n*}Fe(tCtp&?q2%Dr3jcv?_@w!0bU=m7$z7`%Da@%E&1%kGlmriRE>mHf?
      zhXTIbG>46OZ*_(ulV3`pE3X&xUJ6y>QeGkx8ct)9-1f{flu(&9y;~7@HM%cDE2Uh)
      zG_J`C%Mr$#0;gU;zF{?ta{}Y7;EbIu8TreFEt}i?{U+>rfzeiM$||$xHtD$uHY0Gd
      zlgSmwE}NUuX@Xv0wOgTCbIa1*k|UcEJN5i{J2zyPYu9!H8mqep7Z_@^O9xv7KcGn7
      zl-mW}XzQ(dDZ}7h8gAUWnvl+<-khmLfyskQaH45Vhh9T2X?O)g5iDTYyGPdqj&-<j
      z8}nX`uQ%Qda;O)fMrDsg1Y@|NVa~Id#(SQ{9yXXE8QAm-ZdhA$GdGc}U2+V$XsYL>
      z2|VT5V(wCwC7onJFBT=6wYxRGz$gRs^9#bqD8uOD`Ve10A0qttN^l)Pz+=giBit=g
      z?(?Ma9rVU0zD57n3V)PiH*EoH#NVNnbsXdFXbp{*F$k!YXH}rr%WB<bg0tWpjDLgv
      zCwt~XN|;k-v>KpphL;V)b>+Y5G{iYG@gu|+Sep0&;(Gikj_;oKhA$EHSG{e<+s*|1
      z=Yo&XKRFOQI~d@gjz0^Ef#BrsSO5O@7@^z#YM|<`(rTE#uCiW3IIrdzTv2n4-3-G8
      zwuy4cu1Ks)WSOtm1B|1>m*NriJ|wO}t&gyTkFktTSoKd;L~}LPdx^>51Wqz04YSlA
      zq?Zw#;x9@j;}}JZs{qF##4*842=6UwOW+Qss{0c7d3yr+zr{zEk~b&|a2}&%8fWSf
      zjkvRT3vc5c%&L=%&pBZqD{JrKlCpFe^Yq=YnpEU;uDu=@eujm0R^qBxjUA+(q@N+Z
      zKJgTp9jtt>==D%xtfiTLrQ~-u%O6e6G+fVFFX`MwmYP1Ss-SPN`MeerysZMaq5TKP
      CbICXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertificateEncodingException.class b/libjava/classpath/lib/java/security/cert/CertificateEncodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1bb15a73e7c1b05d503b60ae8b9471a217b52367
      GIT binary patch
      literal 866
      zcwUu~O;6iE5Qg6YJFeVNAT*Rh3rTxuNUB;<Zv}Blg9M5yK7E19;w;Hl!LICeKYmtE
      zk$UJ4p!fb9#H{01RT@BCc4pS^JoE0zmsdZ20%+o;gDHadQG6C&B7-zm`kNQXSbHr#
      z)VT_TmhCWzx+?6ozXtM?R#E7{BD}hz>5rH&m&jO&fiL5P>*JmG1llFcw4yN4BGkSZ
      zq|)~H7JmIM*_VXErV5qbB23rTeS+1By3)lo9u?u@Az`+oLir)RIFs>_I2%YpsS^b}
      zK=2r@^Gi$jRYGWX?)kb6Lb*0-8i=sx9qO1rZ>;;qL)my(U~3mi&&>T#MyO9{{^#bX
      zA4gw|!<@Kmh)cW@_G$+rP1t&QqMoo+y9HD+pjCo<7^QI_x0P8!^|qJ3F)&oY&*8s;
      zunZdojt*B-cmRuY-Z-B{zIn@$INJ3gX1-^VSw3Bkz&jRiVve)oNQ8NmGAOSr2W+v@
      zXbbhm5Rb<RZSL952#X_CPB7Ubo@B#$Q8{aeEgRELz43a8r{l1FZaT<dm67Z(%)v?q
      fGubmdXSKnuPO`W*PCa3Zr#DzMEMu{n^}M(S#96Ly
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertificateException.class b/libjava/classpath/lib/java/security/cert/CertificateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a453eda0913249cbba2c2efcc842ca6323f1a841
      GIT binary patch
      literal 841
      zcwUW>O->s@5QSfX?Lm$SzjlBGut5UbSg}x~Z1~B-kl@H-W8)>L89Jt;VFvZ|Bw>+5
      zWo0Rg93ThDF%Z?`5emkM*mPC3UVZhd`}gh7UjVkT?qH0t`B{7s^-#KzR_3PeN^R;5
      zKGY}W3L_7{x$@emz;}=$Y&;ZykiOKyYbW)+mM|Skt%TQ=I^_DKc|f3#gvmzWher6O
      zE4)aiYsZy8&iBo?gv_q;mDwkZmn&UDsu5hsEXMIXhb*2ErdrCE$I;cf)E#l|Ny2O^
      zaCv~>F<d8?DRZepLZ$V@rFIDU@<8kfzgKS?t^D3jrE6#B?d&<WbQSjOyhk!Zbwu-D
      zH=Roze6`LJ;*upU@KdnIv@4>JE$2t-2@B=_fQlBhLddp*NW1dAvdb@y+VHi7pafon
      zKb^3IG%_3=uEsEd6zBZHeCGJ(4M*abuJ$qcBbH3@ndJ!VvG^UPIm-=1n89oe<!4F&
      z`>eFuOm(Y|`C-Bl_cUWdVW3I~HY?yoJe(gWVKv#ZHSJWlYJDsY!#dn_62poE**(m`
      h%NS;}S6F7X#jcF9xH?QdWs7J3uxMG<Vkz!fy8~wQqy7K@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertificateExpiredException.class b/libjava/classpath/lib/java/security/cert/CertificateExpiredException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d0007db4b1bd0d6179f5e5af80c8dfc28a8ed6e
      GIT binary patch
      literal 572
      zcwU83yG{Z@6g?LfFe?b6pi*fiU?LhjAv6eyhS;F=!!p8{WtZ#@1`7-S#>C2s#KI5I
      zzwkqhcNZEpkz(#+a_%|j&b)uUz5zH!A%O_t@K)T3iZ88+r}TZrlAf+KIH((C2`!t`
      zvGQcUIkn_iE7wWDAnY%jS%3){UwTT|UFrGUU!R{5=z@@HxQ?%dqr1YM$k@Z@^V8!n
      z_Cbi(l%sT=5G|Iv1f${hrHLrkk}$DKNVk<EFDIj(^sYqDmV|8EwOBx~4EKvmLl2ct
      zIBG95`g6G|Ay=Hw*uoi9I@(jtpjzq%7IJ}w4R$v22Z8J#7{Tng6VH+@6?oYFM<{%B
      z?19<%D+mR|5a*oWE`k+46zt0}$u}pQiF2$xL+T}jq&b?Lfm0Z$A;VR24#GOJAt}3E
      j5Y!nNVB_V388&}2G<l{KGUVr|1w&Bfu@#DMhci3hZZ(6I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertificateFactory.class b/libjava/classpath/lib/java/security/cert/CertificateFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b0973e2b732af4840a4bbf8b42a91493e11e0c0
      GIT binary patch
      literal 4794
      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
      AO#lD@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertificateFactorySpi.class b/libjava/classpath/lib/java/security/cert/CertificateFactorySpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..76ee2efbe64eb508e8ea5c2c613ac81f8eb7b670
      GIT binary patch
      literal 1972
      zcwVhkT~8B16g@)=g%t&=R6!B&i&BIYL47FUg-{@Agis~%aaqPPWV^fB&Kmhy`a+_K
      zCO-P;5AdfL@65J!`#}rDeVCcObMCq4-kG^S|9trdU>Pq{=wry9SRX92%Iz=^^3=3>
      zAk7UL#Cu^|k{2vndckSQ7bzqeMm5^8+_JfQc*1STFt8?EA=eoa+4%#8<c4>|4J0r$
      zjD8F-j1+~-Ux$@L9=x#*9nO$0dbZ^pSb<RgHDgj9iz-8|cu_rhh6(PLiF}K@JfOW8
      zjNw%_ViKOY<NBd2$$(px{Cp37Vl_5D+T54IbE_$&8RoisG|&u_=jx%%7P|@xrEts*
      z&vB@x#6>cON}}vqG7Ko0z03HnE%eH9o#@9}wC)!f%*)hlznD*9l3}{@W~?mfwop`#
      z?f;MxNl>X|+RMIY$zz7q%j8q@qNHZ(XRh!0Telkez86S-wCk$?q^FVGARf>ScRe{H
      zD!#)j+$ETSX*^Q5|1raOO@gMP_`)sc)iW6sZls1F9Yrz}I;-!%*EJuC#a-JwBBXkH
      zZQlQmT^GG5s<J2Jeyhht?p!a@VY}(QjJArRgKlmdr+&S8tXx4(?77Oiip^S~D10Ux
      zzlu9joxB&2SFYp6T6<wt2&3eMfz1m-shsTC$Ci|1au(D;p}rwnQRAdBMSm+aGn)Hz
      zXBhlMi#`}M8Z-k1B(a5Sv>J{;G+&46(>E|emQk`LX&xiXP23`%h6UrAD?>ZCaVLhI
      zAj{n*>_iQFkJeMT-^8LMu9I-3#`ucqcj?(PJpA6!IiPiY)*3SrD$=M|PcWy`n?kmY
      zb(>fdU0Hu<)|m*^#;R8H$dQNQUm#R#?oV}`y^iV=u{giZQNM^K+BZ?JzOp>i`7Gl(
      ap`$1(I?5_BvaZ?uj-6vY3Ux4zdhr+Cp!~uB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertificateNotYetValidException.class b/libjava/classpath/lib/java/security/cert/CertificateNotYetValidException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffc5571852893530e90723be4b713cd20a215793
      GIT binary patch
      literal 584
      zcwUuJO-lk%6g}5(Ov@~-+yy~u(9p*!#f>Qx;>H?i`5a&NLT6&;P1L`tmC&Le(2tVt
      z8>K}-(c;}N&OPT`-pBmy9l#MPX~YP}_u^4lfpkJ&>1WH4zP8#N)U9%amVHm(NNtOW
      z8g-r=`Jk2Orja1*|GxJHCKLkcD>1R9A8>ztaZaF1LcZ;}fflYI4`s3$*u@N9=7dyJ
      zxk|SP@oLQ`B--9cW)a6~4q2=a)_Tg7{ct*z{*@R`B%#>z92O8P!~JrY(03{zoc8{I
      zV1rPqF7_tE9a{tKD|g(e*~Ui6*w|oq(_n0*f4~UYffxFY>?-49?+>v<Lx5c{BYz8_
      zf+SL$)7-_7;Ya3fjyay3a3;>l`V9Hk2(rd8%NaOB0!<XS$}K=xM=>I0$4i11BMmlH
      dKbT?jJ41(ex)DQpfm$+{s*J5jd^_6N`2<_&hKT?G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CertificateParsingException.class b/libjava/classpath/lib/java/security/cert/CertificateParsingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0e078a1f221f1d917381b8a0e70e8a9103d60e5
      GIT binary patch
      literal 863
      zcwUu~-%b-j6vn?p|17D+LbV8}(82}%V=RU{L2e2pn8v6ry@8uy8QL-JE}5MbeFg7G
      zd=amjc;N$h%li<|Y&XQz+Ju`qXJ)?hJKvn$-?u-10eFQC2Q!41pTuWT52PDvWxm#3
      zsZG7Xi@H#*F!H_7f%3WsUtD=<l<zr65;mvT+=&VEfz(R$JCZ5BcYL%@ptpp%hVKPN
      zc%~!zp-f#DzkloMH#dazuJV-GBP7a|4k6j_&t(P)Jj^142ZUTxdGcL2IFq_9&iay&
      zZ~87b5Zs3M@nO>RR6y8j-tTccghF{#(-&U1-ZGl6cPbrgp<pdMVrPS(Yuo-KBUC38
      z|8>&tY5&R^jEO6jxWp4-t0`B60Xr{D)DxD<Q$R%vS|wy!eyCk}sO$`iQyv<9bd<oa
      z;a`EUf)vsm9p24g7D>)|-n?e{WSb*#OjU=N`w>ZUyk<B8uUWi{dCsyU5f+e-pggS@
      zu*XWPO;>9}JRT<;aLr*vSRAQhg3T83Bx=rcidjc&*_w8$wHHGykHbE2(Z>i@9Lerr
      i4xUCZn?1vGR$J`qB#Ud~)DyON`X7syWi6JXn)N^2g{|-a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/CollectionCertStoreParameters.class b/libjava/classpath/lib/java/security/cert/CollectionCertStoreParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9c59abda400d2b059e5bed9aeb63e21b32109d6
      GIT binary patch
      literal 1491
      zcwUuM>r)a@6#rd7ffXNtqU0m&VTcK8WhFjR#%9XRoWU$=nr2<^&^qfbv+Sn+SJjlv
      z#7uo`ra!9b+y#LEo#_L+=U&eFJ<d7s`_K0u0OqmbhlgSAQ2D5&OI&p<%|1=5+_KYI
      zQ`fm_Yo?K<W6m}$zN1*m5x2Qj^25h4;8y91QAoeoKcrkgx*4WAVYMSLNNSydAu79N
      zj;-lU%o&F6WzEp+RR(WjdXK@EH4k_Yz3BI&k71}&RVjo4Tp@zZ=R3Rk_wv)+E{Sa-
      zkhPMXk-!iMA&5bSSfVq%VC<JQgKs-W``p@9_I1t>mQ7XB_Y_ML=h~&u{-BYm1^Itl
      zNgjhatzam&V-e0+XDQ3cRZ=6ti!q^D@?(NwqA`GNN7r{u%^<|h6O|W5jf8QG1<B@Q
      z2z~@alm8KZT09pYyO5KiOVv$-at0IAa_hh|e%z)mHj39ROF0$ol`w?}LvMlG*`_g%
      zoP)Fvdh~*?swx7unX@g;D6|Tx-ja|s!*J{MhNI~R+zMcxVfNA~EXCi(8~eBvmyp6;
      z(dm1%WQle@F^d!yLwJCPw4_S0$c+OcNwoK<U2RQPCV(XdPyC&LS{6_%EePji7b1wt
      zwGi%LmexIII+n_xXkwz*FLj#|c$lQs@Y1J?K4GyT^p7B7S}%I`&}k7Kihw}!3qoat
      zKU3_%5IrS&1J9^x3sH(f)jSMigx&&UkTPO!{#6%Cr%2R9lVyy~{6bF!<M}eK{Y=h$
      zLtG$xUF0Zf0A9j}SA_SPe#&{ef8(-5s|Ym~5ee1gwyr?j+@OfzCT`VSthla#NChlk
      z!Bjr^74b3>Wav}fP`8_+G?|Ii%}gU%H#6fxrd<kZmw;*oIcfsws)NvsYI?TZt^=_O
      pQu**)84CjC4EMv2&X767Y6Gy3Qh{S?=LwyUn}B0=;Ky$E`d|BISwR2*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/LDAPCertStoreParameters.class b/libjava/classpath/lib/java/security/cert/LDAPCertStoreParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9c8d581684a3c4ddf8cbd99c1e0b1d4fd22ab12
      GIT binary patch
      literal 1450
      zcwUW@+fNfg6vn^lZQD|yR4!Ty78Gc=K*cKpqKG$=1{zChi1D&*C$PBeHrp-HC!cu0
      zzr_blfF_dYqltf%@yvG9)>4cQojsj7-|w4q&hD?@-@XHw!vhH}26<Q6SJD+;teUFz
      zAzkFAmCig`$*xk6vka4G6;s*c7B?#rJPctwUsLq$^hRNq7cB`shRF_;4g`jPV86+3
      zJl|wsYYg41hF-B0-O4LkmAe6Uz!0o(bDx{*q+*C<nvOZkRQ2se22a^AEe79`s;kyA
      zgFBJT)9$KK;(kQPMl*_vwqsPRAQ<{X=)nNPVB#!mO$d84s?OJ|dj)Q8Dh17U6@a{A
      zs^Y)1>9KZHs$n|w|2?C-4s>u$=7Vq}ChpZMVU%ICnX+Ehw5*}(B!B$A$jg>$=s}Di
      z7NAnbLg+$BL{~!ShM&P()C`?2*Plpc+Gj)V-P_#CwY2l^v_?ZEO3T_krB>2h{FYHa
      zlQ7LN)UJ3~Rkac~{g`E#I;Zr7_{(^6kPGo3Qn)56j*94d2sdz(MyQm_TrV-qbZXO?
      zEysA#kK1&~#khD6>gag^yvq<vto=(ywYuW3gy3EXGN$Nl%NbR($e*ZU#IbXVnH5Bg
      zQQzJ4^U@lH1V6<A`j}h@A|eJuaYT%To)VqWbZHIKzj<2+1m#FyA3Lbw!dF{2DE8<H
      zJSEaI3{e!SXW}9*(Nj>O4rPTXA~ztXIzw_~y=g-R>xm9TL|rym;07Gr9_7#{hhe#f
      z;nYubonmCGhRZ+X)G^|6>=@%sgD8BozJ>>H$wVPQfj~vtFWH9iI;vqf>==qjbi_sR
      zRZKY63&as;;Zv|J`H0+(Fir)1Y54i<^LH&B2{$@2i7AJZwo3xMg3&InwurqAaRSK>
      z;_=UI;*TB0a>MzBGtr4tq_!e6HKfHAPB0g_MT;Pw;7(+L;u9=2Z`NbC>5veg=yf`5
      NF_~zXEZf=l{{V)B8JGY7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class b/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6b14258956d8daa4f145b98cb17970c4b0e2312
      GIT binary patch
      literal 1961
      zcwUuMNmCO+6#hB{62c(J=7I~0OBP^2MA0A$2pS2B2BLTyk|r6MOsGkZB~|_amxKBj
      zJbTb8O{%0y@BS#u*OM3s8A`l#x?kS=miM~n*YEE?0F2?04<3f#Gwr#i7I@0Gbg`|b
      zxFyu(#n_WsTQ}0&TGlKr#|5_vK6n}W56Iq4V`$B3FP1ftjdL?2vJ5Q7&@`o+x|n8|
      z3dU<87WsBU<SibJyFky;lHdkUQARYBWC+Z^NbxP9=S|Yn!f@6dteWLRE5m4QQp|j=
      z8G3rg$mHpq%~iEms~Eg<`7{rp0qqKWILgp_pzcsI0ESKlUFc>wUf^Oyvoc&r?Q^74
      zSekAM>dU$P5N;Nm3G0}GMl><B#dVY4w{z><TG7@G&d?Fhr!*s}S-Lz|f?ko;2|nzG
      z?mEdRgMX867o>bre2_7QqoV9&uZ#YFnqU~OIJJdts0l6(H{0ffo-s9HOHr%)5T@J^
      zRxG<9X3SKU0HzPaAqRR+4)i>=a=%6?K@q!<1v!A)6o#JK0c>ym9m3du>t$%C-Y(U?
      zm4;x5UQ2tS?hkJ;7E1b{G7LD#hGu5em|^gYX3SU_JI75?y}tpBU`+bF<RFqUzsM(q
      zrJEUsu3#v>3sH_neYisA_J?QfjSX(eu1zW!$K?Pfa9!e(`0ijmitO+NZYY>Wgx<X2
      zX!qe3UFmvg=TiDHOQVSPk=s6Lx3BE?MgTW)T`uzq7I25aw5=^}rWsCABkGtdXi-@)
      zDK*?vu!uO7>1Kgi&oCT}x#)EPl8&PiVv>5dZf{f{NPQN4juLs>O7R6<UV)RYk8MO2
      zqo1C21ATQFJo0VRu95aW`03nCrzZLhK*15(Kc&6QZ4XCEXbTS&(Gm84L(dnAd2pQ8
      z4tQxz5XK5st)dM{oS;Zwxeh1M3pl$|I88iqcLryvT5`%P$?2t&LdqoSfWvI;Wge_$
      zZrH=D6Z11--Xvz@0Okw0Si>Boy;6x>K!|qq$wGuy$*ekO>Pq-4dOlT+HaWqU4n?`R
      zu|mNxgyBkYg0emI+u7^+h?X6Utd%hOGu-RavsVQ08m)Lk=eG`QPr0<JywjPFR6`fO
      zLa<3OnWgSvVl7<4)e^47BatGe8q+(txz;gL!kkoI#O)&P77=?)e=dElk{@x}^Nu{c
      XC(|GH5UUkp1%tSc2M+PFQ}^%>WDen@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class b/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..383ea72a9bd9ef7547c962aa654e70909cf6d9f1
      GIT binary patch
      literal 1549
      zcwVhkTTc@~6#fPZEoBA7S}w{(Md<}tQM@joKr|uLQiW8B@nO3i%Hq1)Y<CSL{wPhf
      zO>Cl%CjKbnnP~w7Tl(U|&Yn4!@B8M=$^8EF{Re<~tcKCSFte|J)YS?%eAo02RfD^p
      zn%h`^vqnZv_x4tO(<*ZJ6|eY~7e<I-u1!T=x6GpMImb2K42gi6Kn8}0(eyKnWzH$n
      z7`hit+w_(h4ie{P1_ifWzv8Xf#-8H_#&eEk8i!e@$WMoJet|+8{7_5g8A5B65=AF2
      zDCj{S!`nbD|A#J&0fuoIw{*LtW_`=bIi~G#_t}BL%bw}jQS@U_Xt~7DnMme)z;IbX
      z7!ij4jA`?%|DnL$ZM|S|hQW+u=vH2LO|fq}L*AZQp^FX_+G;lFK6<^AQ!-4p>jOiy
      zERVhIa$=om(-($;ieK30hIiZ&hLM)tA~_}Q9Z4nlM6%5|MLcKAb4|O%5IahiZEkqA
      zFm5u$PrFzB-CgdA37A%J9XFzwLQ?cUMSV}4MM>sG#*Bhl%+Uy2+%5@ubXDtN+-4X$
      zOCY-(!5uo1HhCm?DGC)yvD{N|9}fsiFPFJpWSISzc2l-YJA0lct|lO+g{H>}G%OO1
      zX;+9u;H(Ge4*(J!&;-OZ9i-szG7PuMqD$X$eAnR5O)+ZYE$2x-Gq^_6+eu#+eH~(m
      z>FE;t9z<#FrQIilC<=_GW@bl1H7My{=&hrFr-q9^Q|WJreW7Rv;<UzP<_ki}Lcu0t
      z$YBI8F+|>l1`3AB18E61CaqCiAp~Jv#TfAmYaA2AOk*xJ3MDH2MSfT6D`KCINxP-<
      zog`5j2~83v=A~Kup1guWtz&8@Rl}_s5}9<migZ`84s~a6zJ|L3xQc};9#-+_H3gSW
      fX!@kC0#O)9p(yF%4ag>)LS)N$B2_+>bt``X0lSy=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/PKIXCertPathChecker.class b/libjava/classpath/lib/java/security/cert/PKIXCertPathChecker.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eec2ae93c022b442ffb16593e7bd1810b869b05b
      GIT binary patch
      literal 1117
      zcwU`TTTc@~6#fRbU8$8zDJ|j^mAVC?5}!;7FAXHs1xcz^d7Ey>c5vNoW@o+pD}9kf
      z6Mgqb8P9A>A#ERs54-0w=klFz&iwiN;}?K!Y}=S(D4p<+yb=j7R#JbdctYvQ(ewJ7
      z8YxFycWYhYy%)-c#W0`5`aI}VUbIexr){Je7SFvkKMVwK`GO(6BLk^-8K#|blfkNm
      zZIQt=u4ZB53d5W$192FCXbJVQpOJGzkNZuoq_GE1OLt|&;JBBAS!GCh1_VRiDZ8V1
      zs|LYh7V}uJvBXe352y!PsDS%>N`)$eBCgw5W_U0%++nC2ajzFDE!umZJ<-!L46<0k
      z4Teld=mQZ&yffCmp_L3e)IN_}hJf1)OV0Rt!ju<8lwWc$)0yVA49_H-W0Rd39z{0R
      z7&a&HcE(wg`?Ae-sD?QVD>B*-)hDjn38MsR*fhDyV}=5ac>#$QL1fx7ES!xTYw1@S
      zLKC`~hU^4f$BIT;8$I6{XJ9wELDQPy>BL(%=;b@<aV@GB%GE;OryDk$7#<G(FLxrM
      zgx5wGD^Ki8vy{sdHgC%$TB{(I=u6QHOT#j&PSy-rPe?M7sr6H2zL7G8Ed4VifjWgg
      z!!^>f{UFR@jwCaiIw;Vj!X`FH1#(~ApUA)6_>RIUZvIYkEXpbls?Jg@&>+t%g7G@3
      zT<B*HDyJ##4(@`{vtGqLs&GH4K^sq=5+1@lcn4+jtS4wU$bN)P(uR?PlP%IKiT3y(
      D&Mq2I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/PKIXCertPathValidatorResult.class b/libjava/classpath/lib/java/security/cert/PKIXCertPathValidatorResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55b8c60d051b3c729012f8db44963810fe04f333
      GIT binary patch
      literal 1691
      zcwU87-%ry}6#niQ+ZYAL7|0KWqNrP84E(JF6;Kib;$(A?5Ffg(fs)!TT}$Lm6W{cY
      z(L`7xiN0y#A7wnZ8{6CpJgoQh-1B|s-0z&*{rUU-2Y`7z3Bt!PyC?6<sj{j#mS!KM
      z6xFg*nYCxHSIEf7_HJI*wW4gB)}~r^bUO$?L&U}CvayqTQP@)z@&*_r52jOC7`koC
      zDcehivTIrl;<^Vm*N8|ngiEHbDF-=ART(C{;xlf*hFMf8JW_Vt$}&!Yyld(K!$=FL
      zzD41I1<laxhYZ{C^GZ1<^{Gh`c?SOqg@n<8egQp*GIYcf`5<Bp;|)nS99_?tnqjNf
      z(|3wmvNh8PV*veKV7MS4h!D3%1au+HtuX=J5E%N_HACHS-WF6VCl_?mDY|YdvYwYM
      zjlb8NetTCdGt7A&<n+#yO1(R(oonvf<#^&exfpr~m1%0;q&Mil_6Z!*Xx&&Fq`7&W
      zif$T296O0>n#^>V1WItVdl^EunYAs=*lCTedecE9N#R!avZLum)e0d+5^sy{;l%3c
      z7Q>jqJZHbbFc@!VOyqgQEdjT2ho(#}l~kk1kc_t%+FnmBaXN&1q<vbfDkO3h-NX+#
      zZMuc+B=H$+i&Se`%vLXmSXELaDHlU{#NZR(aPlPq5~k_iWlhIY)K!g-j(Em=xE~Ts
      zlH48i>!fFtk1Bm?qI^)@mBy6T0PRyh=-EeaAK`<a)+woi$n-A+lfTh@jDf8R27gM^
      zhZvG(4lyhx4>9_c;(WMB&vD`go)hvVac&}pEJlzc|0`TU9+zlWs`8R=0&p!}4|6SE
      zk<YbwO}t{!t({ktqLoK=O5ZT_rJge2ItwnfPz|V2(?y`9?cm{7u<i+-!c`COXe)T%
      z6MPNVYv5J#^1awG*cLCHSHOuXh&Q-;>9D|i;`x9Gtqsmtos$}0<5XN}=-=WPGh5Nw
      u3g$TR5pG8B9^pPu!0m;qJ<9EeWFO&iYr;<$#AhUFZ6utpCtP-;SN;JK28cfZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/PKIXParameters.class b/libjava/classpath/lib/java/security/cert/PKIXParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07605e54d9212d7d372dcaaaf8d337b0a5062db8
      GIT binary patch
      literal 8202
      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®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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/PolicyNode.class b/libjava/classpath/lib/java/security/cert/PolicyNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82179432d0de83e72ab765bc8034b303589de2c9
      GIT binary patch
      literal 601
      zcwT)`$xZ@66s$&NSd>L@xp?qk0x@CY%>?2FH6bC2nZ$#)c6ba;CNrezG4g93`~W}7
      z_-Ml7#@wo=UcIV*AD?gU04{LsASG}zk}uMoke_H}rmj!gxV<=3{`4;HlY?!6l9hxq
      z3f%kW5&1?SACPGeRoK@Q2^`kyU8_lq3f+z&ElsSO0$EQ5ku-@Wfy+Ndt@G~20L?45
      z$?&#o8k?cOR;}I<s4#K!I_4<Uw^~ILf%3Nv9vL1z`^mMst2Um|Dhlk1EIaljx8ZW9
      zi<y5z%@fRtheU>Iph$Cq)~{_F>MaL5(IB=V3T*nw<h;{Vpt|r|k1LQ<lQz34UxxNY
      zo|y9DMEi8BLVoJvDr#dko)%yoW}n0N+(DYL!zhIe<1BKR-8qllCBMhGfTHC~YkZmU
      QJ}Q>4;($3mzx{Lc1ub`?)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class b/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5cbd3cabd84d29e1a6ebce1b2a0c764b7b9bcf33
      GIT binary patch
      literal 2039
      zcwU86-%}G;6#i}!*sv^MgBG+x7c80tF#e*p1hoW0jg15WqY?UJSuSC5vl}-Xr?k_D
      zw(tG{woiSquXd&+Go@4QlQaFJIz4w278+1r_MW}>obP<+obTR${{7=G02g6P2r!)8
      z(jIGx3fHTS;ch2%?zo8s+cfm;J5|jzHVp1$tPS!FF&y)JP0cDMa%)>$cNv1VvChz!
      zEn3yY|B-T;*(8I+E!|${<P%s)F?2lI17%Q;2wLY(Vm7^)*UT!X==LeYGTiG7ZPArf
      zEYBdPzt(x#HEgRQp@*T@3peaUCg-0pgk~tEj36QkI?+okqp^G#Cn(;knx?w8?edC@
      zZuE)seufj#?0#uWu47omWGpY^6yB2%R&W{v#6dT0i!&UL#<H!ANOpkXeFfw#VTjDv
      zmbS<>vLu{gIK4+cMSP|mN88R=<*G~hxmJ=fj1fUkk)h(8u%Zn8O`@XWeP55OinxMN
      zj8XZtM-3k)o^R=}jPtl4A;B>CW>1Cma*3hKsLW97U8kzMVy4vB2NJH(Ed6j|HoY`|
      zaY1t`)J1<NVSLCiP}0l|+bQvN^$3Z{xQsr*=wk(wqT%5pcfITqrf5b-N-PXg$C<~%
      zOBH3SmhGyVrRGw%(lg6yW;Q*)oSDm{7sY@+QP75Vks_sF2D7ASN|A0TG|R1`yXn=G
      z5iWBIJ{2w<<kC135E%s>kQsWihQ;Trr8Vv>YilOSB9gUr&CF|#A^w}2A$QZLFf^z3
      z)>}rB4;Uoiq1O+tp&xP#i>oAph%(hrx+J2lnCq=_ZHik)5_c8ku|z<w-Pon;vEL5j
      z9*v1B8#xRs+OwkI9_~x{oNj+Be5z`gL^6yo8ODw%Q~g#gw-Qw+C$Fh8R)qvsv8F%=
      zacI}dWp0r%9zA^L4%gL8oD5@wW;>?(uZ@qsDS(X@yuBO$2E2zf8TC7XaF^P&WLF)X
      z&lzIG{YMmdUI1Z;^b(|}Hi&@G9a#bKKzJ*Oh}Jgppc_vAUGx{Cziu1@SQnkN(aw+Y
      zI^G$5g|1z67b3^&c=ttow1$%}acT#HyHE?e7%s$r$6y^F)N%IqSPilH@fyaTikQoV
      z$V44iUx?kw(8*8@AN`Hw-qAI26!&&tBDsSb!kiYL^e^a)i=Z9c{LQ0#i@w*<Ltjob
      zi&VrWA}}z3EnL7uOu)nxN|=L%ENqfS85$nZj)QMd!4Gip8AV@dltn(b0nZW*VT7@S
      zdE_Y51g#4Yk9QVVafd9?mPI;eqBXcgE2A|`Ro|##`MJ-p-P`}(%cC@Wnt7OzYBPSK
      z8Q&?o)@Wrb#FGOMojydthe$UedI{p@D@egV!_S3T!-IXOZg2EYslJ~G<mUsBy*^~#
      zuj(Foi?fkktQI0))bUlLJT1a&C^o>g$QIc(n5{{k5yY>gwr2;DjQB}Pp11WMVCvx8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/TrustAnchor.class b/libjava/classpath/lib/java/security/cert/TrustAnchor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0139dcf5167da81572c9031d4a4faf8438e1dd9
      GIT binary patch
      literal 2116
      zcwUuM-%}e^6#i}qYzSLQ(twoyFlep$1xYJZX`q^<MUa?6p|ps7Se7*`vutp)TiaKC
      zS6|gX!0Hpulw?L`tS`chf0X07cb9Y%u<FabXYW1dJKuNCx%=l|zy1c`8XiapFkIeN
      z9xK_praG2xKh3I|WoK6`r*0Qab*pAc2r>)^A44&#*}EItnrbujs7giI(HO?dRny6~
      zgFKncO=TZW=5n|7x~-d4N3U;bo7_Lo(5)&9+Ea$}<@TUOXT#7{x+0%Gn={ZhOT>oZ
      zO8FFy1V6>E_0M!wu{rQrlM<9_X5F?F-L&frf%PIWoz_j=zQvGC{1=?{Vse!sSgLJm
      zVRRuP;|!t<U5VtXgxGPtL@g?gVJy}tm1f;}qH4RgUNgfuhe$6NUX#&_Ft^Uj=td8>
      zF36A&3gZ$kOOR!}jySJ}Q8THKu|%@mS?4^DdP7DZWYSmGO|9bWY-rYsvSCn2v|Lja
      zV^y(q{_PzG?Jb?O$4?XMYb+Hkm+&QAwk_&Z{vVsd>k>v1X$h&eiEsmDWH3g>HZ-$p
      zZ;5)%OUM%Ym!9*6p;Z;5U{#$R&9r?r8%IRKb%xCUnWZqz@C0wqB*Wk-Qg|PuCyyEW
      ztD3#yAF!*(rT@1P>!rw2!5#eeetF=W)3l5k+++yZHTTrbSSqxNNt19QqksIP<X-6<
      z=3pYZUX)Ox(dtZFbaZ1=vqHGTFuWf3w8cw>xQiMm*qJbjnBdEtjCp)Sy;62}HFJ|;
      z%wIfj@J?#;lH@}u(@balS?23?N3-IbvPe_m8SZufA9v*yz)SRG<BvGPbO<YyrA>>k
      z6*COs<(gxu+N{oJe!w@_;~XEO^l-Z9Hy1>dzdo{}{OyUI-lf>-Rnaby=Na_VdX~Pv
      zLqNp6n`&YpeT2RPoLg&R@I@-UkD(OX$1q<;GKYwyG7Vh(9hdeo`XfU8c=Q(v4d6{$
      zQzFSdBCtYf?_&U~7{mjN;32*HHS+m{X5~}dz$08C&$ycwZ{aE+EKZXNixUk9ns0kF
      z{~+8T?Ms5@A*76tYPx~M_xy95K65WPv7yufuC1k;c!vwfkbp5RVC)qFu8ZnyQyPP;
      z9mHVb0%~-(iv&K$1T0LUPP1-f0gthWFNBbkORObiiRynt2w4&x2ndTyqQ5JNd(V@U
      zrJZ|qr=DYIuSKIr9DXIBW!J%jj!^oWUU10^j!^LMA^P~%Kz@(C1nL(B{+c*^Lm}V#
      z03$8HTX_EzHY1&EemIrQ2Pk;KvtDqFf=7?g&GxwA*1D6>Ga~d8_4;QYX3WE6{72$p
      zeo5Z^ZjP7d2<Zb9*P^$ZnB@c;_%OQAz{j3!vZ9N$G;nWE_$|ABL)`E9qQzr~Gyu<u
      X$38Bifi&$|G<|<72${sMWs#R)yGR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/X509CRL.class b/libjava/classpath/lib/java/security/cert/X509CRL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51c1cb666170e5fd9686a7a82a8216dd9de0e7fd
      GIT binary patch
      literal 1939
      zcwU87-&0#f6#ka{qG_NlLX}dbsD%Uyp;T%ih?XC1)24xGTCDcza<fgghI`}9y-b*K
      z)KRPBkMX@vPM`Y1OJ8J0XHZ}LSA6$T{r2XPh5+Nk-LvQHx8I)g?aAiPe}35oa1kpp
      zbO@YzWNaGgnlwE}xm#&dI&S*@^yJLqom>oIfzyYq`)g5wb4To5uDjBzDccf=&M8Z|
      z^8%q{YE2-#XcuKCjtfNYPY@YL2we%p&@IrH%=vs3!z!f<uA{6{M(;V1Q<lto8|%`!
      zYphqKKu^v#jmnzgDD4Nquv=C&fwQ@z3(7Db`LSnIYHg>jtUr>bn@N2b2P;nCWxOH~
      zFG+XVGMR9Z?8(%Fg&58V3?44Xa@~|w*RMHZyJhL<G!L90AnF1g>lZmZSkSX6h7`Z7
      zKxf&gm9;>=TG=>;k&IzP;AA^b0&n0=X4pKG1w}WdqaJQifn=KmtKND=nYZK?<&0rm
      zV0iy}-Y$4%`D&$P(=Bf_Nn=P04DH8etxcn%iX>}+v6}OTQLZ}nrYcIO1$yZ~*A!IA
      zGF;D*EecK?UBcl#qVH-=I*pz?PA6NddD2<R3k)Pv?PT0$s;W`pb#xJXmyL6;S~OhU
      zT6<{ERh9G-V*w~H>+T+?kNzFGX@4Y(i@bjIP?>&wCP;h3aLefhRmxhfEJ-KRo<M6)
      zE?cg%#WPMH%E@~@wJ)QB)J=4(DVo4^`}*A2{~k9_j&5D~LO~yvQ#Ds0!9WXdSHopn
      z<c$sby?f`hYTw*N*h+SZKh~zZYB<J5tx;IxHkiU>Q+t8YfUy1|Q^TWhb;8p7u$dTc
      z3XHrs{hn3xs#V)@WpSk{9Yc3bvwh;oBB$S!PWDB?_8e1QQ~HHS1R6|eqVN!Z>LGp+
      zK88IAYdpPU^rq3l84w%oiSHosoYM}R;25U`EJR`BBxi{R45vr{&R;@rK=C)JqqO<4
      zKOmmq#@O!=w?}_Q-|huH{DeqoTf2Gf&W1ymBhSz~-WR#lALigMe-#mZk@4N9|Niw1
      z(f32!;qA~iS!3wOb$$c5;@ep)`L>baEV?;<Le!_s?lZ<eC-MuN!<T$b9^(SO=Du%;
      zd(2(m;s(CMP5giye)KDvZ)6=*q-O&-%bF6%;8n&t$TWi2Fvv`XF+^{W(xr$R!t0b$
      z=!YrLAWf_FiHz>x{B~2ss2_aNB4DI(9RF<i?lO{MEKJ+a$SB5wNP@V27BGQHO!+Hs
      z9kDXa6g1mqyzSd7nDOmwU^AHW?K>=2;9Wnn_vl|eaQXrx8o5Z3wOtPEH617BIt6SL
      eI~DXy=dZ|qu!CE_?XOpS-%@X9vte%gsQiCnB*dox
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/X509CRLEntry.class b/libjava/classpath/lib/java/security/cert/X509CRLEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06890e56c095552ff2f7766ad28b968f2ad0bcec
      GIT binary patch
      literal 1053
      zcwU85&rcIU7=6>-ZLt;+qzL|k`U6^itw=Nqh69L#si<JkKw{i3lkMWN#qE?py!uag
      zGM>2f;zbh=M6doU-aV>swuKPUc$j%J-@fnr-n^Op_Ve=|fHBx9Bm{cboh`?%O1BpI
      zYR7hEr0i$cuilzjEY5~1+DX9_I2n@yC-m%xrFH456p{jc|45zPRx+&ml~5pg+Yfy;
      zC1B(W%L3+1Wlg4G;CKcpv<S2n{ZKB{HcB#j;*<g@&{3?oPO$7mzTP*3rYieYfn4!F
      zVkg;AzN$F^$=Q7IPt}u!l{5rSWzdPNK-!aPHgqXzjV<zp)#(&Y|J@PYVB3|ODn6A}
      zQDqrvtw%ZtB(^CyQ5xg4I;~gN1cc8qFVIqUs%7m#Y{<NJ;!*~E$WhEeeQIx`vL#6i
      zf`&H&-T6YJ*@mOa_O$QKhe~=fV#9Wl7v&ah)7f_%rCr>o*OVXFI!0nEyC2+5HI}eK
      zO{%h_B0uy5I`^~U6E&jDOD|Pwkt^@|`YPHF`#q}JW{#d392TEd3o#YX$G96O3Zgam
      z3F!}9B#_~pCIXLO;xSse$}~tgfi@za8`_%%ez0(oxG?k;;w|QezCb(}{D_XdVLiQr
      zWz_X{L2oBa<A$}1&XKG&-eYo#Kfkd=)*9J+|LglMl247gSvTsennDlmp$lhmGsX$r
      ziLs$@f?9y*WWC_tA-6>48m~&CA0CELW}Z);$E=r_LxB4TQN(6^qN#@J=85#Gn>7S$
      zP2vn=304|l#dB2Bj~vc(Wum~y1@zJhp&v!l1N)GP7wZQmCgb4iqXzPS<@09bGGivO
      ai;*jAqrVIwA7cT7F%I!4+VYXO?&xn79MTd1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/X509CRLSelector.class b/libjava/classpath/lib/java/security/cert/X509CRLSelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e1f08ca9a2a0c02ade0bd34dca52e61bff22b69
      GIT binary patch
      literal 6627
      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
      AT>t<8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/X509CertSelector.class b/libjava/classpath/lib/java/security/cert/X509CertSelector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0cad7da01ab29ee1c1660239d6a99e71b910454c
      GIT binary patch
      literal 13958
      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
      W6=RH+hb3sC?;$A<Ka|z{=l=tlL%tON
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/X509Certificate.class b/libjava/classpath/lib/java/security/cert/X509Certificate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8ccb1279b092fe59de3e4014a51030248fda0fc
      GIT binary patch
      literal 2025
      zcwVJc%Tg0T6g>?g!3ctYFMPiPDuXD#K!gO;XbP=DC?Bh4(uCH@Oq}Vl;*aRcy<1mS
      zsik}W!C%m=E6dwG!z4fyt6U^^`p&uMo_o4`zW(~~8Nhkm$)Jtl*i-(3TY<1cU#gdu
      zEqrA?93Q<}pa;1kZLUNHDTYHWaO*H>h9iIAnyV|}2GVmGdIRB0?kovkuNRB64D1d=
      zcfoT5#a*?;oltaqtA2WW`Nx}|4CzVfN;SpMo*P<XNEN)Y=tM6=$HNg~&Y~TCUFbqT
      z!>(M(^mn*hu@;ms-O7Zn=_yH9%!k!w;XmNZj$r63c{XX_q=eRSGNo2!z;L3pwILHE
      z*j^R(Gg2$dgks3f)ooEzG*ghleuk01+cj6ONnezcq6`i)jQzc4-cyf+GA)xjhW>c!
      zP)Wy{)#CKb*$N>ekBxOjvVl?y#{9?&hP}C=sJ6=0s+E_OqN_wj_%z;j0vCfI6#ncy
      z!~Qj3qU}DpYs(sU2-~HJ!{w*KRvN6ABsDKqJYRdgR@)F5(GzB7MQI&7Y4sq#&@?LT
      zMsDayK7+Fi))r2>wpXUDZnDG(k`<S$P%G$;mNQOeo>yr-u%@W_pd?iUyQfcOPqMtv
      zeO?VBnUN=pu6!N}jnXn7(~u1d8t?Rwcg4%afLEw%KdtgSkhVGLK9{ZvqO7?cWl?Tm
      z*LzlyfttwR+Lnikga+%K*w$pjsZFGln{Ak)Ms(RuH(o5dL0GGKz7pkoHQ{qjoOH<I
      zI;QpY>t+~icrfG8zEWTLLTJl_rlV$>7d*!y7!i=~=l<|&a--VeDU!#qFWH98ZT2)Y
      z(3KrcPAS81+@;>IkB4;X>jbmbVX4LLq{Rl7?1C5iwzw(v2V-EvSHbK~>L}>K(XWGk
      zgUFzh;x_u;wjql>NNKMqvx73@lw%Y#!+kyPvGbh)4bXp<BJc`nyv8ni>WX04O$7Q=
      zyw_0dqg<MhgE(Mvhc@L7<A}i@#W53)<AjMP<9G_EP0Yn{2*WW)isBi{oTH3>GXl%R
      z(Kw!u^JBPR;>9?Q$MKTxOdOYSh0IuEyow1k<D?mXEFQn}Bd$Msj~ic-`O`YjzBkR@
      w8O=`5Gsw4KEc^>&+h9w^+5cc1Z^<}^oADNJRX^Rb{?<R&-)&ic+n|cS0qug}N&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/cert/X509Extension.class b/libjava/classpath/lib/java/security/cert/X509Extension.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb174624a0e2bca18f08d9b6525aa03c01d03ccd
      GIT binary patch
      literal 388
      zcwTi-Jxc>Y5PcJ4&cv^1A%cZA!d>HPkwOwI`~o4E;!s4ZbzRO4$6nam74z3D`~m(b
      zaqfzU2~IWh-n=)v@9X>H6Tk_&5gLSpv3!%F)G9dRr$TAx#Y6A-^y=MfTbjZ~XcD^h
      zRxWKOM$codJYoM;mUp%clS$#cez{<|Q8J(D2upGDNZ8G^Um!;}mnC5<PKLE{@Fo|j
      z_I*M-HJOz@I88X5=Lf^zcck7KoAu9Fv&ScH3;W*{W@pg7%mX{`#EVYJ(>bA&7Qrcf
      uZF1h){u9JerDzfOW2mahxh$iFDxU}|jJFwWpu_X(+`NW$?g<+;viSp6h-f_k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/DSAKey.class b/libjava/classpath/lib/java/security/interfaces/DSAKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e81b49ba71405a7403b2909641a65127ee3e967a
      GIT binary patch
      literal 179
      zcwRg8Z`VEs1_nb0PId++Mh5w;#Ii*F;?(5QqRf&?{mi_Q)S|S+<kVt)mtaTl)Jk>+
      z7DfgEu%evAymWp4q^#8B5=I8j^wg4o#G=I9Vnzlv4NV_>#z53rGcs@m=a&{Gr@Ce4
      lq%tyaLoCn(>11PMU}Rus00BmzeXI;@AQl5VkYr-u001gkFF*hQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/DSAKeyPairGenerator.class b/libjava/classpath/lib/java/security/interfaces/DSAKeyPairGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf5dfb4a8408ed05a9197db1f2476853ad23dff7
      GIT binary patch
      literal 357
      zcwRg8Z`VEs1_nb0UUmj1Mh2a%#Ii*F;?(5QqRf&?{mi_Q)S|S+<kVt)mtaTl)XIRw
      z%p&*Hywsw^lKdie1{OvJ0kDpo#JqHU|D>$c<Pt^(uFSm5lFY=M%&JsI24@W)d}anD
      z7A58uTcfE71~F2D67y2>bFDSQfJVAjB&QaXWaj4;vomlqGN_}f_slB;T9*PgEEQ-x
      zTs0$uqK0P_LDPftON)|I-7<544wk^;Q$3IYY>W(y49pB5zy$O-D+3#l&kp3V0BH`e
      P2p6&l5OagnGVlNZ%!_6F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/DSAParams.class b/libjava/classpath/lib/java/security/interfaces/DSAParams.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31c5d5c893a560b121e1e241b8d97d1b37c46778
      GIT binary patch
      literal 196
      zcwRg8Z`VEs1_nb0ZgvJHMh2y<#Ii*F;?(5QqRf&?{mi_Q)S|S+<kVt)mte<$#G=I9
      zVs-`=Mg{?}x}3zkbbbG%tkmQZMh2Gj)Dm|_1_=#KAFyO@Vo8R+Q)ap+(2VrdB5R0>
      z00<Sx$iNkxUs{x$>Xw<4%E-V6H(n2<nT?Twk%5^31ek%gu`;kRfNW)l(i|WfsDcwn
      IGBI!g0Eq7`X8-^I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/DSAPrivateKey.class b/libjava/classpath/lib/java/security/interfaces/DSAPrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb1ce05a860ca6f7f80e104bb45c46a9e94630d2
      GIT binary patch
      literal 309
      zcwT*wOHKko5QhI6!9jep!j&tHZtS>bB@hi_f(enhEhgpIIQAsnJtUmT8@TWQUd1~Y
      z%h?z<uIiEh|LXDi{r&;q5}gzY;dH@EHbJt=+qg2;Me$FZNif6d)xEb%jxv^2iU#4J
      z))wq?Gnp?Wizzk<$Nv#(Ym3lb7yW^i8pK;JX5xb_-NR@|pj*Q3pmZU!i!&}NX})~D
      z^?N7t8$u(O_^8CQ^Sc`Q%JJFsZ9dY$x%eKTJuNGr$+azn&{@0V;@6@}6E={biBz*A
      YY@w}jTi=pk2c)O&VP7j<uI?TF0JkVo(f|Me
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/DSAPublicKey.class b/libjava/classpath/lib/java/security/interfaces/DSAPublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be3e820de3ede7dffbe966533a73035c153394fd
      GIT binary patch
      literal 306
      zcwT)_yGjH>5UgJBTs>d6CTb)G!kRc38>z>^si1IpU^q9l>m1`O%*+b+P5yy_so<~p
      z3nI1~h$cq;psKp6-#(vT032a6M@HD6=|`<1n<m&aSJo#EciM1NgYn6AGj-Nn@H|I{
      z&~Kqm`$}C+XKYfAMZ)fX0xflku=N-8qbs73gVk=rA==vCj0OZcC#;>-J|^wcM7xH&
      z#ol}QRK9)?Iu)l|!ghIZ*=j!MbgxcrHIlm(hhsu-TsOh+&^jg*zf&B3GsH4s0U5f;
      arQ5+WdQw;9CmB{j5_BCKGKsf#S9}3`Yf<X}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/RSAKey.class b/libjava/classpath/lib/java/security/interfaces/RSAKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2951abe650bf69b90344589c0a57d0bc165e151e
      GIT binary patch
      literal 166
      zcwRg8Z`VEs1_nb0PId++Mh5w;#Ii*F;?(5QqRf&?{mi_Q)S|S+<kVvQpkPPu)Jk>+
      z7DfgEu%evAymWp4q^#8B5=I8D^wbjH{FKt1(qcvi2@Opju#()wk_>&P%ydtnG3lvA
      w)<AW^`K3k4scxA$sf-NV5Hs~aYS|bW7#WxuK!6cw1uFv^h{eDTB$*gE05MJ~R{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/RSAMultiPrimePrivateCrtKey.class b/libjava/classpath/lib/java/security/interfaces/RSAMultiPrimePrivateCrtKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..203f43c8818ebff5128e3e1ee9ecd9a5af0d3179
      GIT binary patch
      literal 519
      zcwT)`%}&BV5S~G?Kt#cRPu>hYXk$EjQq%;+P$hElv}~qjN!gO^mdJDX5<UY5&&CHb
      zo{ZaOO(andGv8$L%{PB<pR*SLID%~l3JAwTHep^uJXJzZJs~xzfN@H^yYA^t8foDx
      zF(Tt8OjA?oYnnQ+h)~N5BPK(y(;pJo4lE(;|0icfjDjgoNC_78NF^ec_pNgTyh5lp
      zW0`0sb&o|U6-!UA?+3GwXM}o4+E4qD;1`eMSd!ETI}Nv;_Zu-i@XkcoGVMZACkW+?
      zo)7*bzO^!0{H@~ulCwOsY%``H5M1Q#vRp?GNaf^~3}OVg;XbtIcTUE{vu)?8W~NFv
      zP8Fw15fQ@P-{(Ed^vo?07K{~*?Sca(gJtu$0#v{;_g{u8WPez(xN5Oxv2JnA;yP@Y
      KYJ|;PW9tk31CVV1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/RSAPrivateCrtKey.class b/libjava/classpath/lib/java/security/interfaces/RSAPrivateCrtKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..457c4cc6a26f64a0cde10f2e2dcb06fbef128afb
      GIT binary patch
      literal 427
      zcwUWA%SyvQ6g^XIV~f>RE$CjvZVaxa3r#Cj1*668r^8L0l1|EGQtW5B6BmAfJO9HE
      za3xN{2qG?AT+U@Uk2~k}^Z5n9F*+V94BaVTa6coFYiX9gREBiK1!ey2=rq)F!3_o4
      zT+-6RDnqNJCtSt;^<+xIc&ITP{KLdLSb0WT@?=aplc~BJ_8Hg(Lo-NKX1FqAp5#=0
      z+<)qQyuHsE+A*0hpCnQY9_FbcWf*o3yH{o2jGKG^OvXbS7n43=s26lCXB7U}Z=6lB
      zf4hW#yg8ozY>-kENg>O)#wg9TpmUiJL+5uXN5v(!0frSjRXcm|ux7DtORk`Snr&?z
      XO%&~IINWsDa@cmbRiM>wm)e~#IS6tn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/RSAPrivateKey.class b/libjava/classpath/lib/java/security/interfaces/RSAPrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1784672486900bfff79d45dddf98269e942767f
      GIT binary patch
      literal 323
      zcwT)_J1+!L6#mYzhV@!oQR#%njYgxgELjAxvHdYQ#@&oNn|tqU>_74kBnpMnZxV4#
      z6t+>FN6z;;A78I;0QS&Mkr1|qJZ2LltGta9V_g(~&zS^s(?7iScFa-EWs+i+(5i0>
      zcDcE_8%h>a%n{b78UAAC37h}%>yfes@s^8$_+U$S+dC%E8DaUTbRn{f11>6QoPLg8
      zp5ON`3GH0suSoZ4R621{O>FO6)Jl&WA56#QJr&Bu9}t@Tvhtan*g_OMm1_3~q7eu)
      dNYFs4-3AuW)ViooO0Wdd;44_wNv+nqwQq`)S?T})
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/interfaces/RSAPublicKey.class b/libjava/classpath/lib/java/security/interfaces/RSAPublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2339eaf8b4cc8905f34424d143ece955f06e3bc7
      GIT binary patch
      literal 319
      zcwT)_J5B>J5Ph={7Q!!~0V*maXt1cM_(cjJfrv=&Si|DTc#-Xm$OSkO1qBD-7PKf_
      z0WmC1XsG6+dB1u4dU*w~kF^{bVSA`YT17ThuxYHUPaJNw;i#^Ahga3WS#!?g9J7R0
      zed@F?)a78vCgqqTtp6pLg3J@P{$rOTA&nfYc6|=fmj0%DLZCCk@^R^7(mwUItGMy>
      zKKYz{JdX(Ng43_Y>ElD`*(bur&hAAmbg$E$I<iGqbP5g!gl4a-g5i#JEZFHtdp`*A
      gPnbc526E{(v4E!3MR`z$C6J_E!KzGRwBEJ90ee(g-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/AlgorithmParameterSpec.class b/libjava/classpath/lib/java/security/spec/AlgorithmParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db65a888ef957cfc9cb2b592e5456e59a7381f85
      GIT binary patch
      literal 144
      zcwRg8Z`VEs1_nb0c6J6PMh4BS#Ii*F;?(5QqRf&?{o;buWPQh+^n4&MBR3$iC^0v+
      zB(*3QD9p~l!pI;1R-TiXm#*)hl$DxX!pOiCoL^d$oa&aDlgh{-ja{!ENE;g?10w@7
      O0|YQKumVXY1~vczjVQVR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/DSAParameterSpec.class b/libjava/classpath/lib/java/security/spec/DSAParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6283440487d9e91e00184f1a8431076b6802af6
      GIT binary patch
      literal 884
      zcwUuK+e#Zz6kR)+Tudi58k5*dT1_Y<<7MbeTd)+;s6_~Bi3Iw1GCiFf$wem<!7uQ4
      zT4*Ww;0N@hr2Cu%p<x93F#EdJ+It`7&+YXMfY+#|5F=Di#f5Ok(whV-ymZHB(sOs)
      zjbjmrfedBP=0XY<A!mSnG4$P|?y2;`6q1B`1ijJsN1XKrb0TR%<zKiOa`T(;<oIsp
      zm_TQQV#^>0BJ8;zm4CoMUj{qeJm=3RB;Tu{3O^9`YSGaDsn$CLt2z2AGl*l!Mi$G2
      zc&*-90Aa<(0x~)(+ITdLR&ChG5Eff%C=Vxtt_)5@w=W6Ht&u1C9T6y<&x%&qQ+(K~
      z)&m}!Z?t?F9`le|{k~Vwh|g2^iI8cJCV?mSm7Z0Y7u?nwSm&+dh#`TL@q7~h1u=b)
      z@wV|6qq2C+c9F9yu3PM@&Tr%#`h~nU1#L>shE6wiy2a@aBl3i81!=YoCcfbzZ&~ae
      z@@QfeyC`Fi`}=sx2xlsdXLt^nNUuaD(o4lmq}PgbwTu_DrCjzJm2iF{|NU-k(iD%3
      fv^@pPqzNx0$%T3Hmq_wjB)K$C_9Dsa237eBs{5%h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/DSAPrivateKeySpec.class b/libjava/classpath/lib/java/security/spec/DSAPrivateKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80a9d7bc15b00c42f49dda56e75808869bdc76ac
      GIT binary patch
      literal 971
      zcwVJZT~8B16g{`ywoq1qg0<imAYi)+8xzzAjR}GfVuLj`jghDAGFgU{EpE3&{*OOE
      z5{!ut{s4cJ@!r{u4|PpUe3*OBoH^&-J2O9ie)|sKAy!Jr5tfg=GtV6;e;Dcb+#Q@M
      z-`#F+wjzDz#p;zhZ!=SZMVK<mo)-r0>+Z4g;}VL5`3!&RBG5-dwP_S5UVP-f(7|39
      zt3X9h`S6t22VMc8_)Ld7eoi>3XUqSeZFC6MR{v0yk;jw`8`Fe*z0ny5Va7%YV}h>P
      z7*Ei38|4Je*_gl>VX~=1wLd)Rs_3oP?I}W~+4sF($BVS=Q__l$^nkG1{FkTYhp++_
      zza!M@jlVsWC|XH+lcZfjx!oT|zS_~!v-(Hjb*Y6#9zV~k01G*}BY%BPZfJ5j%@ZaU
      zSZCu3$E&>i#C(DCy7Lv24t+sI!mNa<gqm|-xCg?m2{&gkd130!b9A^mu*rQlxZfkL
      z`4}^Jf*Q7P3)@)2OWeZ_*075ktlUVt;U=HLAeoj7l6i9m$;5esWM+%cZ{tonvCCQX
      z1?Li#&%XyL8nR`Y*oh!*LRiQ&&yJekXPOr?&DBx!VWxR0(_9-hhneQPMz#D4b~LCI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/DSAPublicKeySpec.class b/libjava/classpath/lib/java/security/spec/DSAPublicKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1dd26716dd79cc3975b56010a4e8b740d2e6e17d
      GIT binary patch
      literal 968
      zcwVJZT~8B16g{`ywoq2V0=0l&fW&qcHYBJI8WKK)7#gjqX`()Dm&r1uY;n6a>Hpye
      zK%z16!5`p{GTuA8;h|X*6CdW@GiT1Z_s-0(-#>l=*u+{1Il}6x_r-Gu${$8L9=U^a
      z<-7asoz}41)BcefwV5cvBFq?J&kF<hZTD39aS27jVun3+5okoHHjU!Ui%;BL9lQ=>
      z6{zS1AD;92%qt)iU+PfD+k{W`Z2AAQjSj)u>mRE!@|dw<;}#)bZ*(R>n6**DgrIpF
      zlL@+Qqnw}x8&jAdOgD9?-VD#WDthmAdx}tL_I<C{@ggnzl(ga#Js_+#|KVl%9jrjb
      z9|*O2<8Ln|idK@|CFzh*Zuf_guMV`doFA{dA*Ha)!{>PwU?C?r<bTh}{Y);WdCKGh
      z>ulWMc$0S*%ojLsINvet&^J^h%t@$9s5y^?dm`Mra0?cbSEk+~M~ABeJKT4R`#t5F
      z&oGPUs9_Ixv5ytJ!Xq4D9fw$A<yO)SclZ<r$+TpU%$qYvCe9lqGh2Lq5BJlFUCyE}
      yIA2k@ydI=z$d+khCxWyI;X$T(ZruDa)4ZH%u8y0JGtDcR=GwS9%rvhW)x$rmK&GDn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/EncodedKeySpec.class b/libjava/classpath/lib/java/security/spec/EncodedKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec198d11d06497b8118e02ea207a2d0e29003737
      GIT binary patch
      literal 530
      zcwU83%}&BV7@V&ZYHI}r{KFIRLNT%NjB>z;2OB+LxNs_EgKMBQrI_$mnrKWs_y9hX
      z@!OVQOiavXe`a=O_S@ahulElCCpa*m5$gB;qwmf{Fpp)jaAyx9a4*6j8i~=BSo9bg
      z&<UHVY~qJw_hxu6g2X_9Q2WEYbP+7EiXmu&4xw-=Lz%P*`Np8*^a=Vo3oPWYVZ%g`
      zkZU-76MUQv18anmCqr>PpAJQQ>klV_Q1+t0pY;7$D!e51<W9~Ahu*)JX>na+kt|7e
      zHXK!%$y_&zr+z}HHXQHgw!I{l;aJ&v(L4@BSE>Umzf+HuUaxcEIqrGxnyR0lSz!|v
      zkL!%O%xgSb%{SQ1qgRxk8EM$!vB+AW1s!MXXrs(%CsU(>Dv+*JDskK9y)4sBF_3S*
      cp!BqgE2QLQ8e?aIEQUXG7ki8e`>DG24UOn(WdHyG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/InvalidKeySpecException.class b/libjava/classpath/lib/java/security/spec/InvalidKeySpecException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b751f37fa22af6a8a244442e49c2d034eebfb071
      GIT binary patch
      literal 850
      zcwUW>OHLa>5QhH(+k+evo+gA4Vn9O1AS{H$hCmhuf{De(k0q!XTBgy^gXY2G0vsZ@
      z$jTB64!{v|0FHsE9*-<ACdy{2s`b}bf7LuZ-Q5FN#k_?+Lg7qYilQ&=&{M%p(Z7&(
      zv8*qJqfUOwn<|$(*S5R}l&dWy2n(<EKc$wQaH?_L(GrGz=_%nfq~~*8FK-iQpD<W*
      zwI2u_G=vk%<m&p_<H6tC--Oh6rB$#+=+7@U2#Jz=BGc%{#|+Z=Kp3hhEf2!;W9ikz
      zu_Fni71!ngg2!+jKPG}x<r9`G|G(D;A)9aO9if}WYTzl|+*oXw@mVu|j9s1kO*8V1
      zj8E93`Nd1^)N`+lxtKU*h?9H`wwbg==(Fo=Pd#BW{|`{kfMy8ksvCN?+*M}(>35b~
      zF&xZ-H{riem_iaMjuuya7(jw^zB7L_{IbT8I3^1%4E~8EL;Ov11U6ax1H+tU+9Hf#
      zG=lP_V!#$FjW$(SYGJ&au*W^+h%nJs#RQX0;8Qf5Zxpl2Y}uH$3QNl^eC~$TxTzk&
      na&1`$X5mW&Gubr0vf5y0dRhF|O+93bNAFlPEMsvt>X~~63Z1Cl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/InvalidParameterSpecException.class b/libjava/classpath/lib/java/security/spec/InvalidParameterSpecException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..155b3e971f149d6e00da2e8b248d25811b863731
      GIT binary patch
      literal 577
      zcwUuJO)mpM7=B*ewz7&UEqdc1RHEpSRHQzFMkGt`V@+ygJKN0eHv9vB$4SzIqXRcT
      z#SakgZW{>_iNnnMk>_hNFCYCU02?T0F+y0s5j{~2q#GF(-c^IHbgM_YCp>j^CXDFF
      zP#TAq`?s#_hRWAjScIkTtV5}#5uP)gzp#XSAdM1UOPYY^i=#aP9TUbIz79g6!<O(O
      znSQ^oz4o8mZ-mUY(kiSIQp+nXg4OV^q>U6Na<DN*m~1L7PovJIH0R>dlY~OkciBL&
      z4bQ`+6<(`=u-W|Y>$V8R<pIkRx?OcbqjY;~r4@%L#v!ITTPJA8#=l?$+wmjg$^#Xr
      zSp3s!Ev91utjGUBC?kyw*DOyX80ACpoB7W1rpA@HrYnyae@GyceA`@s9az{!p1a%t
      rgeepfQO-LQs53IgW-6<XnE9!2%$$=%p)^1Z72>Xh*~EM<;mm&m1s8^a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/KeySpec.class b/libjava/classpath/lib/java/security/spec/KeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef85d4b0819421a760dd8817722c8527af48b1a3
      GIT binary patch
      literal 114
      zcwRg8Z`VEs1_nb0c6J6PMh2;@#Ii*F;?(5QqRf&?{o;buWPR_{%3vVP&cMRRAOM!n
      zNz6;v_fN`7O)g<%;0n$!ElN&x%gjk-WZ;1+)&r?yV`N}tU}k^-Mg~?O$;7}00DuA<
      AUH||9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/PKCS8EncodedKeySpec.class b/libjava/classpath/lib/java/security/spec/PKCS8EncodedKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..238c8b9dcf989886bbb493d475d8ff4031cef481
      GIT binary patch
      literal 569
      zcwUW9O;5r=6r63LK&>K(_;Dj9reL)3M#OLc<pLolHC#BAvcWabno>;oS9&7x;1BRe
      z8Q+$TQNzLAWb@wa%)EIYpKtE~E^(ZJ#&G)RJ$ufa`-@1#OK1MXedn&*cI&r+ACCFB
      z%a<-;8Kf908@Rt|492wxMBHRZ+rw6Mz>sRwzX=^V3uzb(`JM=Pe=!^J=-wMmIYY4*
      z`rdTlMMCxpOvMjk&S3Zc7qG!#@^6Ge8@33U@L18v(5?<!GRU5VT@)B{^xFxenHMvZ
      z?CN^Z)C(q#8%H9TG_p9Lh2*f4I+?lQBJz1h$aIGrB3wuVRKRG4JUUghF})e;n$YM1
      zM(u2c>?>6oOnS`(y&`4<TU3?TELhl1Tny|WPaaH$R$flh1L@id#g}g@BLQy`8*5Ea
      bHU*Thuf*p{tQX6FrTrgLT}f%zgmv@<rMPTa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/PSSParameterSpec.class b/libjava/classpath/lib/java/security/spec/PSSParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04755ddfdd17486444a5f667b49c6f6669666ca8
      GIT binary patch
      literal 570
      zcwUW>-%0{O6vn^N)lJhh%l_F-MW9}^bX^1zR)&<YCDh%x4eQFfE4yRVyYvX%1cgvg
      z_dQf}c9f#%B8D?F-#KS~=giFe$MY+IZLI2uF>LhsH8(<G4FgBs8sR`#M$0r?Jm7sH
      zMPQOchsKasi7xkS<FwNgmei4CsQhuf=Gs1~ZvO{_K@Yhro5EvY4Tj{d<2iDVK`S>Z
      zZCdvIE0IPV*$h&cVThM2Z5?@r_3z3J*A+H*Yk@uN3s2T>EHRLd@1>DLHU);c40KE}
      z<eH8rPKN!C2+nxN6%2)@Z*jNH11HiGrzX2j$gtV`$1ChGWNjhM@g;28RV~s@(xyKQ
      zEOFpO#NzK`TM-&-)LWb^K^BWzq%VlkK7};R)1)p*$7o%sj*uzcVfqERixFnus--6s
      z9#sB(6ek8yhlWF<93hVeiZ~{VVv0ax5m39R61_K;uso?_C=Dd4k0{)KVUx;vt}vN#
      L!UV&xqOwY#7CCuM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class b/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..302add6f2c6d8a67b367d330345a5df3108a758e
      GIT binary patch
      literal 943
      zcwUW?+iuf95QhKF$*D0(8rqOF99l{t4y6W4L828XAPONCR0JaR3OQ!wY;l~(aS-8|
      zxBx*_2_znXheFJ50~M8#u;iWD*_m$+yFY$@{SM$dEDZ?;bI*C}SR?L^LlI4^(U7~=
      z^LC@fCy#ir<AhG1M?7qkSwo7Upxk{Y@T_OuJ?=&tGVzdx?+s|z>;DB|(BAOLNWA9^
      ztjUlYj=R2aAHEw70v<#RC0nujPSmsR3$GbO+~eUULt^`yTy8RCw_INYBD%|vteG8#
      z)Puomu3?s8E-pBWQ<Q97M*;H&N;u7s*_s08YxYq`?I;w1w`q1}z)&%80(urzhV-qC
      zjrH5oc-DXcogr_FfIl7gyF7g1bbV^3Xb)V+?>M25`>AoE){Jk*?C411f~+Pdxfcy+
      z$V%;!ff<=074^i3;fnp=_d_$%Js!1wkC$dc1D++*&aoMnYv#YEthWc_(B<1gmS2re
      zv?gP*M8ziQPa}ndtezfKLe@^QB1fmBp=63qPa;R&dD=B7PJWedDC`!C2blYeveFln
      ze&&-xouf6UT<;L(9?H0Z^XdcyDq(So+a-(i%GVFDRIl!1xxTuOl_N-z@&k`)eM0rM
      z2x=?P;$avrqo(S~t1g(*WFHCAP1L7pERympUH^jR4}ahpWqhfC#-YO$NSBAznBbL<
      O$AVwQ247WPYrg=o?6<)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.class b/libjava/classpath/lib/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5fb8c65243135a2bebb889db24e14ccd63e1245
      GIT binary patch
      literal 2190
      zcwWs^U2oh(6g`vduDy<v(vYNCXj+<-cGpSjh7d|gX`60S8d#E)MUg7R!>;RWTzS`v
      z*A5Ba->A^SdmrElfrNx8>Jo`U%2Sbe;+c=Xg19rb6L3vc-gucgXJ*d5bLaT_=Rd#O
      z1TcXoC3G-MT&%2C^p<J(uH~)kt)^+{&y;7L_HEBvbgjBc!)nDdi>~*Sxn8Di2`PsC
      z$+GZpc#@%~=~r#bm|bf+4YT1f43vbhUh!7+Q&w%R;h8nloo2{1MY0H-<5~_P>0*3=
      zpD<jn=$OmPmSKtLJ&w0xy5ib%jb(@7;B%$qi!S`*AkTlyYFOTJhF|l^SN#93-erx2
      zC5BYdxnL^jM6Ze-+{>W<r)mpJ68ahTh)uiFsOj^*Z7(_&?YpyUhS~Hiry*k(gH(4e
      z__p6t(1#pPb{|83m`o_ko@+H~6jDZ7#t_4fX7KSu2Fs9S$TG4r6d7F-_A?A`>*s9S
      ztX1q8x8~RB^j3BSBRIel9%Sgu7nT$hph@UfF^VyUv|&?phQ55^Z<kr9UNjAFItzwF
      zDpYiHbXY|i8IB%OAqD7R6>@+cQIQSMqbigDJ*J`y87ie@HOzUxUNzlkD^;7)^_Co?
      zVlP!(i}P?X<*isPhRJ{N?+!gkAMDPW=`F^(YcMM6_WsK9<6(<!;d5b_Sfkyx7M?4{
      z+KsO*#5%5!FWlw#$e@%R-!;rL7JrP9J6C*&$HYE*<WBl~(XWepL#Ts0BW5|Av*E0S
      zb5}T%t2E0Lp$9u?ya!-kQ8a~CH?`664eT8K3Eel)cfNOE1A{lmB6dG#;}P4<SuPdP
      zJ%Xkqx>wLlL>~}Tis(K;<%kXon!SagTz2y+x^7_P{01JpspYcYBL5=_ZH#MUZRlDq
      z)y9ODOSdtp<uYwdX*sElBU(;w<LEU}-!zRbcGLI*RotSwJnB6kgIL8dUc>>c;V{-Q
      zg_m#wFXJ>`!8~3?8L#1aypAf~fQ>gv{TA)MP3#@Khj;N2-p5s3!l(EEpW#D%iOaZ#
      zE7+i&AMi1bQO4!q74bNZ0|M=$J1~K`PaOgc5$Y6(dzKQ2yOtJ+`<4-iJ0}Umy^{sv
      z?(r5ofs=uE&}rrw(%N<CUvE7@koFUCEj2h0UW;KSQ9KbBe~~CYl_;K!i@!+}7Zb%(
      zaq;(w;?s%ZBXRMqMDc8*_-I`GOQQG;o(RRIP&`0lY6XdXj&2Tv?{qs_ukiIZ^6z(Y
      S?+^47-i|!575S`C%>4x||LuVQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/RSAOtherPrimeInfo.class b/libjava/classpath/lib/java/security/spec/RSAOtherPrimeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..537da042c0079bc24554029c9935deade84bf2bd
      GIT binary patch
      literal 967
      zcwUuKTWb?R7(J8gCfzhmv}tR#-eOI*mqmOL)PjZxh1kTVMEkf|Cz~nBZrDtug1<==
      z3<U*!6#P-*H<Q#tjG!;`UFMuK=lgbl{QUeCz&+eeBEnESao#xgkh`N$$hY=zz+L;W
      z`J^tpJZyxb&-eXKkVK4ONh5oX@7eYC33nw!e4r2vg_^$WJF;s(72dutxyQqY3>gim
      zo(=+^`$SlDLs<!Urz2dU8;M847jloGTAHu%KizVRAyx@q^E9H!m`GufAzCW8l2~Hc
      zxbS~4>h&6dAX->Gb@@Pwz&8+2Ba2Ilc9~&$>PO?7G8Dc?`Ua8)j1(AFO~jE<*%cGX
      zNp{tQfdoUgCVYM{>bH4#<g|OVpnNTGonFfcg{r5`nCyxn!)EPYJ^?M$@VIPD7QR|4
      z|83<9gt}OGj;hMc&eP3c6uSJGP$mk0ytJ!?ag*kW(ti>~L=8$=M2)GVp<|2?DWvIK
      zpz1v#V-)wSGniZ7k@<q`aXxp3{I~7%YFSk~=T$*f*47v+*7g`{*3KB~AGQ89I(N0|
      zbJDESdky6A0tFo62AU}1i0)gskC%9WS9pwLY!KR-IKXv6L1)T2)0y%f(V21|MUE!C
      yHT7;&RH(T12`e9dTbNM0TH2fdrqVgwo=aYvC5Lm##ku75S@OF%WQIE$wfPIVx5E$s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/RSAPrivateCrtKeySpec.class b/libjava/classpath/lib/java/security/spec/RSAPrivateCrtKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7553f6f54933d3ae60ff044c63f9d1e63016c1b3
      GIT binary patch
      literal 1458
      zcwWtuL2uJQ5QX11iJhdTA)%ykX(_aY#%_zn8H5B8NQelfO$i`zaolaXD2XG-j_8du
      zXMP9>EF=zyGd~KkyLO9Y76dmgp6AJYv-39NZ{I(E0dNz$I_3zrUb-{anNlwbSa{-0
      zC)9KHyLUSQo4Fxv1>qxl(&b4Vd4kP97N?a23zMinWZwN(6Msy{Awj(@!I2vtJNMY&
      z;W(rN8r&k#CIK7K&Z*cFtPrPYCz}uzUJ$l?dUV7*CcA65*_efQ2tG8`=ls7}t4EM;
      z`G>TO9L^gsP$h8w$%fS{f#8CH0yLp68qgE9WT2QR(?BUvmkg8>wQ67<8bPJa#`JMC
      z>eJxB?GGtIt?hg6u;&I$yr;>0c+92*R{Jmah5xzw$UlsR5vMAX<maCoQ612*li89+
      z)B4?>ltg*DDrb5xZIfA;Uvg<(E3-D`t{(*+eZYi0Q{~}?m<Ct*W##x6qhU_mF;{cq
      zhGi_Kv6RMg8s}xyIceY=e=hL1ue?i%N88@s{e+6W6QgFE`523~S%^`$O)W;lHuV_G
      zwpom^@?Q43%%AK0Bw(L+?eg9SsNxBh(8DU8Vgt`$;W^fL#f#(wT;Wqgs&&o~sS478
      zP#aw3q!K>zQVAyose~6zD&a<#O86=AKAX6fx^Z|EeGB$S)ZU#9njF@b!x%|HIt;;e
      uCA^r0he~)$3D>jmObIuYa3c%9R>GDNUe3aAl(4OYSF-S1CA=-Gc76aPnj-4}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/RSAPrivateKeySpec.class b/libjava/classpath/lib/java/security/spec/RSAPrivateKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1084e1713963d66d89bc95998b1f59551c20127
      GIT binary patch
      literal 712
      zcwUWCZA-#X7(G|b)mmz+>>Uas)S}VnLb51`?1e0$k8@u1hHf(NB>z=G5%i%S(2t6q
      zJFO44AjY2i+_UGLv$Nfg&$o8~yI9o_W7xR2d$!f(PT&jKx4IqfSl5-(l`nd><Y&BJ
      zAw)xhArnrvY`0-u*6z6@H6$69BKSiVgVy%yK`ZDoWXs`P+m=o1P&7_m$s63?V@P)f
      zPR9=&&*iRUNbU<)$RdN4izY>*`6@%=$g6W5aik3BNHfH9`RW81rVVHqSKW+(35=6(
      zS-AWnXxF%ZW7k@o!7O`@-KyHYQ2Qa6kWE3azghmzXQDWIgUj>p&<nZzU$IS^yBbZd
      zSG>S?_=!-?*<bQIN(<{0B2M=hVsud|`k676iB^T{n51gZ?vC&{t?9xmrV3jx$P~6;
      zU_OO}S*j)yREty(NT7ri4lzf_+JJ^E=7F$NHZ1IvQH=TpEDmifTGg|$!ZR|DKjO&{
      ZJPQSl!N5?E4oxK493|gIl9$7&l`rbkldk{(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/RSAPublicKeySpec.class b/libjava/classpath/lib/java/security/spec/RSAPublicKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d170ebecf62ca793a18dda92c54adfcafb5706ec
      GIT binary patch
      literal 707
      zcwUWCT}uK%6g{Kn=C-L>**6pss6|W9h4eu|XeC)fkLx<<$hs@*ZsflzD1sjP0sW}x
      z&SX8v2C?kDch25(?wp<Z_<VZ@u!l7bF^0{qb#IviZil`IhUTEpZS%T*R12Gquq%96
      zCqP4jA*&i4%Wa!i%`UeC4M~RO2>OV{p!K{~=!64?d{y=Jte|5ai}tx2@HY4N8Pa_<
      z==7oQx!esHk_W;SL7BlUM029iVuK-Z;<dPrIMN1mWEkRwVj~5H83P(7Wi@Lcg-M1?
      zRk-{z>@~T6V>KPlkgIyO<uoi`$n^+J1RX)U->UxOCy^Pw&4Y^{%Zr8LU#4fMuQuje
      zuX~|y^D`mm&X0@lN+oQNgE+kth|xoq=p19x5M_z$n4)OV>W=U@<xJ@n)1~bfWJ^0Q
      z$UP~-9K{?G6w4G3N#F=+9Alo4^=}&TSO8Qd$1qjNK{2Wqu{0WEQkLH)O3%nX{)#6R
      ZSW$w;cf&}KE=(jjH%`8dB(JEh)h{J&kv;$b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/security/spec/X509EncodedKeySpec.class b/libjava/classpath/lib/java/security/spec/X509EncodedKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b4a83261d9b006a7eb0f4b08673a288f69a514b
      GIT binary patch
      literal 565
      zcwUW9O;5r=6r9&Wfm%fnLA`M>0!FF_4+g>k0~d)NFoc9tDH~V=ttrKXf2Ai95B>mu
      zl<~DR#IJ+9$>zP;nR)ZxKVIJeT;M1Hg>d{}Jz3^l*b7hkOLP7xY_orPe${epcO*tP
      zV%cRVff%9q2lYFRpw*=#{RSak8Z^s2LhPFVb*M-gh(jZ!JJJ!ii`h_k_ttPK2-%Kn
      zThpH9$)JzGm_Lzo!b#^}`Dz4RY!HGnXfiSuenexxQhCq}a_kw{MTU^#-?r<`ET51o
      zmDh8omNPcHz9*e=Er|lJ(Xa9__UgI|&lYVNWGnm*Pz~fLf_Or3RIYekeiPg^pzsB>
      z%IONp7p@fO{OTcEV`d#&T;<m+7}yS7H0&VF9u!25yv(o%;*}M$&l@W(1Y4nvu_i<|
      b8RW1ZiO(Xjn$7=|-hGj(k(6){vJO81KKg2y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Array.class b/libjava/classpath/lib/java/sql/Array.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ebf014ee40cc4589f3b0667abdad20fc6e3cd7a
      GIT binary patch
      literal 1031
      zcwVKG%}&BV6ou~~QYZ+h1@UiXjKzhGYY2%NO;9S)`T`@FG$plQJ2moZE_?tV%6L1N
      zLZ)M4LN}c`=j+MI&F$Cs$0q=s!=VN_0@X2nqgM3lTNhzSXBy-Q)P?5Lz_o_YV>aRh
      zYA)lKG-6M)DZ8gHjDTUb2Mf;Op%=Iv0{Zp)h)uaS2_g+j1R80+^Dsy~0_CMZ0&8Zw
      zPoRjJXd$Q1TVVQ;Iag!u`Ib$m9VJzAJU5^`4l(&o`l6dHy`)_EG>W>Xy-rV^+%#|d
      zO5+%f|5URx+-ij?II>3;#Xff!Px}2*$-q-x^i#K!IeW!%$$72Cz+~&>&ymUGaOI)N
      ziMlh1!x6jjd|VM-?A%!b76{-nLh|VNBdkLK?;76n_%5QNLs?QPu#r)!kXtBF!&46G
      i!r9EQTMBj?9RnH?Yd}-M?g*!qVRsem9-jBb>EH*w-vm?u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/BatchUpdateException.class b/libjava/classpath/lib/java/sql/BatchUpdateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a011822402e4f7cdf0fba44080c09d2f787194c
      GIT binary patch
      literal 1224
      zcwUW?U2hUW6o%h{1=?i`73~Kqw)LyaLM2A;YP=9dF{DXF(4=~?g%Q@!-FA0qywV@g
      zKck6;#0#Uh{vNN5XJ+Xd(~aSRWzL!NKJT0}^Yi!DZvbv%D}w|>>8*Wi*Mg%_?SU<N
      z!_Hyf7W~n>9zPV0=VqWWEJY>l-Bz^4uo!UPu}59*2NZXj4;k1~hK0K42Eukl*B*^|
      z>e;X0`;U{{YX)Pi;B{~8ihv=p*JMcFb6iK<XRyqcvKiU#pw<??;|{jZW}17=a+g7?
      zdws4WiA4hj&M}y?smtAYFq}7_Bg>F)IWFHBAMA7gxxGK)42720qlRp1i{fcg6GMlN
      zyVm;eq_!C{2RsPuf#RI;W|*VtwFPMy^keS!JzsV~Govw-XF9)ZUUt1EyIyD5oJl1I
      zwh~i$O1ma$*Xf#LYNR%0o>p$kN|PaJ%6xvnMdzOz)y%TIQ@!nt{T^>Pa(czMVcn8O
      z*r2;e(o;-e6)B`C%BX0Lesn>!mN^3p^vzK;ghq8h&Z<;P6XdO;_63DcN^?Qx6|F&(
      z$E10JC5rBb3M^v<P^(oGi6>VVX_Zi`OSr7GIpwP<*V5GW742yBZ;<N*SFEiV&n}(x
      z1u0)DPb;jCJdMcHh&<I3B&~GXm^$s!j-+L+$^=)fYK#%5cHWS5pp4eT^2jI~8D$kd
      zq3}1R_y)z&TDK;+X;otAM|AK2^AL)@99BnkT``$rnp5T-6$2^B{EO3-^gZD|D3lQv
      cO;PmRX+|NS76Cq^@G%0URq`ZOTv1ikKe<HS2mk;8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Blob.class b/libjava/classpath/lib/java/sql/Blob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5d78cf11408f1740382615d434ddc3a3bc43ff5
      GIT binary patch
      literal 516
      zcwS|Y&rX9t5XQf)$e(JZT5GLO02hhp-bgfokTizG3nxl8NP~c|82f4-d;lNHI7^e-
      z(oHry^P8RT+nt}^uWtYkxYICT7_H-v*lFH#$IZ)?28ChVp*${9XSrJQL@=m1FH-T!
      zaAMg$!|?Gl;g!hBqS0V5Om`yTbFiy1=qVTOM(~CdEZ?&um%)@QE8=<+ikio73^U6P
      zI)SWoyrOEwwy>c7s%)~Ylxjt;FTE#LaPZ_sNA+gkDROO(m<&8mhGx?@om>9D>#`LG
      zwxVu}Bo>@Op=&Sn;jnD$gg<3DF+<wk%U+d%MgqAE8r&&V$~DRqI&~sLob|{#Mm=%?
      d^N5Ul<Puj$WYQzonD)pGX8VNpEyV-O{{UoSV7~wW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/CallableStatement.class b/libjava/classpath/lib/java/sql/CallableStatement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..107a156c4809cfc97b99c9dd0ecc19ff2e924392
      GIT binary patch
      literal 4652
      zcwVKKeP0_z5Xa|`Hh@qHlp@qxZILFRjn+PCC@o1EJxmKFZB?-961L&+a+ls++TyeJ
      zUHOMEz!&Am+1tB3%<kp<)Ia!;`_6B6XJ>A9_x}Fp&%XfRLwK2iAp;f;*)x{+pW68n
      zvu(C#^IE_H-sDb@fnftqhIX4djr```A+IAn-s`pH@fP#=e#gszQyy<ve!#uWcCf`f
      z*5vrxfMZ$H%snz-?9PiiZv~d?_!)TJfZ5JiwfohM&4A;m4;?bknSZZs+XlRr&FvU4
      z+TcMg@GPf+&RH{8?S?3E0VhFC(RFRkaHL@rp<hO@qkv0LG+;ywbl`e{BsH89iRnbo
      zrgW*gVj=-Hq)WwiStO~*Xv%II6DLvGfC({?)hP42)npj<f>^nXvdMyjeAgx-E%TPg
      z>zKWLIlKtb57U*~Ey@teOhi51S*u8vU<GM@U^Nx9U}zqX%znU{Ed%BhO=u{{Wyk_6
      zNtGBi^V#HOEM`q<Y6q5`zsp($?GU3itKqPq?P0)G>awa<vWJvx=KHJ5YlSua(4uzR
      z{D}cmeTzgCrKxDUdo)dgMdp&mT#{x{mUYi#M+VIF*+YnerM{(LCvj(=d4(QjRIYSk
      zRJfJ@B#f(vbv4!GiRL+-Re9J|b2>w4$?7cn(M8T5ZdZGA?(iUwNEF16j2AQm_KU+d
      zN4aeCF~6sIbqm;u^|GCHlA@4|_?-sVX=>pT{HW!{c(T`Z+KqU;sQY!AiqMSu-Tgo(
      zDhtts-@ikwBxZ<qT0BL(0bWe>q_rCHJ9~?+_PfP6sdBejOdPoLI>!!j{~7EMzShEF
      z-0$0wa;aYO9T%=A&~@FfTNdg#YYs}A<>pPN)efXmzVVY`(jDd<#r`6Z@urs?Nbfe2
      z+#wpRkfzipk_zQC22(n~^RkY|WgOwspcQU&w$D8|&yDnQ$w#uEq`HQMOLD!L>ME<3
      z<gZ(v_B@}}33n2BF@e_-xS7B=5_lznm-QVV9^<+_P(2<}RMFX>d;Jm)hO`8CPS53J
      zp?cU~O)UH1)Bka*-~YP;oFAMRc@;>>adaa{QAHO6-JYkp9$X*1?g96OSMZEplGRu9
      zj9;7qsqCKcV>P$!)p^AV4?E=p;*yZ#*8*PL@$VRZb!_4nMFvLjX%wG^@&8yz#tE5#
      z6NF5{NkXPznvfYdMaV3iCS(rYAY>jE2ss095^@&aBIF#r4MSZ5?|}G;d4mf?xd`tP
      zvIG|i$wH2hWmr*Wd{5E5-xtFr{51r5w0wZycm3MS@DU+b;3^^4;JOm~4JG!EmDoQa
      zBm)J7tSaQDLe>bm1-A)Vhaw>*W#ls4A*2GI67m_Cgls6|d=6DY?!rAnHerj9`>;(&
      z4IU8k5FQco1$;@!SFl6KE__YMWB7)UZx!+#Foo<Xq)x~_a3#VgN`wt1!UIA|N=+xh
      zB4i2<37LWK37G|(kU3})G7k<RXTT-oEVKwY4^IhM1dos<@CnI6K*%z*2{{MP6wPx@
      tzrGk2{dz>Sm*EFOuE39kT!WvK*nd`H|3!)YS3+*VZ@mQneh(x2<6jf1B@F-o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Clob.class b/libjava/classpath/lib/java/sql/Clob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..937207f9cc6220fda04f333567d6a6e1bdaa7acb
      GIT binary patch
      literal 704
      zcwTLhOHaZ;6ot<qQr;rS%h$SWY+SoCM3XioM4RY(sFPAsTWqJs-{!&};EyuiQXb7f
      zlSya3bMDMNxxatkKLBoVt)alsSnyA7#2>yf_QRQmB13D1d>**QbhZ$VWGML}aOIrg
      zNFP}Y)rT)fETtC)v4#pmcYBHbG}&qlbyr9`nb|V(0+*quTjpr8yFKG~3~lm_=RD$$
      z6cJIu-wEn#uNNB6g1?D~oK14x$ByT1T>YHO43>$^1hSTwVeDmn^z{8#tu#nyEo|~<
      zv=R%M>v_L+WHJm638tA!%~)x2s9U=(r-{tB*^Uon@8k<!BTufvmt~X$4wr(VNQM_0
      zgdHZ4BOX1USS3wxlU9`&XjDkQ8V&RqB|2+#D$>79q>7qC>S!pWi4%piaJom@3hCf%
      Zk8~B%Lth~S3>9*Yi#(xqN&5n>{s9WImJ|R0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Connection.class b/libjava/classpath/lib/java/sql/Connection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9adc68489ab819c8e64d9e4017872ddc2a391b2
      GIT binary patch
      literal 2469
      zcwU{ASyK~15XXDv2!u0S;qpSn1(k4kK@bg_AgehbiCBdX)Fe!$7Kh!qyP@Q(`QQie
      zLs|9&NG3B2sp26(|N7rO-P0ZB@4w%F0ALj|A-Jc(=qWiTG4Cgf8IEn!vTr$d2s$+w
      zt~(g9E3sVZ6dj0)`9!vmFp6d_dz{T>QyOTd1_K!B`NZ}Q39Hc#Ob!~%irRcCkv#sI
      zHFBAZSuCcKT%&0)t!P>lSlvvkVn3BACU(-Px|mC_&Ph>HNaf8$+C1VS?(flHsO(bW
      z(}Isb&Zv!TOz4a0M%N7<*C3qwRi;&b16~NmH5hNI4$=)D-b2-;RpN>{SM+rAz6!o;
      z*_F6(%Kl}*iFjJyRThIV);0kbkrJa~f?k{W);Y!6G+4MfTtql5kNSz4?-<V6nT3US
      z>PL%*h%2qQLti}7pu5~OQPkr)jFm|FhX!3`=6Dp5<r)016YK|5WT;P)#3vfu7cZHk
      z67lG@n|F_O<S9AH+3W&u-tq(kT?VR{Q^6SoHHNi>D}rcD59~FHiHa_<JyKt5({mWP
      zoM5MJ@+8s9O#*D#ylm+kacxZJp}J*n4$@a1eyL?fiQ808>ZW<aj;#gs(;^O9m9{}a
      z>%niRcu}PpQq>@GU3<;9SPT*0pMq7v6{@*7#|_!PrJg7dgAvc$TH20p$1msAIA}zd
      z&f)jGsoya<4<5wydk#AxC5u@;?#Ez70{y5ckaJpfEcN?+&9PAZ_V1V|jp{+1mow~A
      z9JWV=1E+A@H_dxJaCGek-aaa5;;TVXcUZ0O?ShP;pj+=YC`-8D)Z8-NwHPkoQ1kg&
      z=26}FwgCSZ-UU<m=|(HW-vsDEyH~KoX!i+rKiUI=J&5*@U=PDQz8Vo2K{Cpp5d1xc
      zWCEfRnZ(FeG7U2lnT7ijc>oV3@(3PFWKJPZ6f&>mc?t^>d8VAMD^ZKEB$4OvLLx6=
      zSt2o5k;p2nNn~BAIRdXFG6An8G6`=a@)q9VTp9#6>T}vePaL)aJnzx7tyKI$srVx#
      l6tW|cIWQ!WR7eC;N>{r|SDzHko<dB8d=?3QzSKKR{|Ak=F~9%-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/DataTruncation.class b/libjava/classpath/lib/java/sql/DataTruncation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79ba9faf3174d2a59debce26c9a80eef3a12d777
      GIT binary patch
      literal 1072
      zcwTi<!EO>!6g{snKw&BrL|Q3rk!oSo0>)iUHzg)xNMi+2iBTW$#4#}F%wW`wEB7u<
      z`~_oT;>5&-A7J7y8SlIyn9^}E@1A$xJ@=k_GQa-(_z9qnYf&sQ<eu|aylTH3RU6#l
      zZEI@wxnoSsD8dYx`D5$2d5>GBVGbEmwy+F7>IloG!n=Bdf!$(QIh>fb!%e5dM^m9Z
      zaDRV!cXa=lAvU1SE#s}AI-Nl=%z=2#u>68sd@LMcQNGI%wgewAsE)-=`>C*eM&yQJ
      z8qNWADeK*?u2(u#c{mw}7_tmWPxQ7kR~<u+2Gr`c+Vwa>SXZ%%^9;M?rrc!2&0)3W
      zShU9e=}e`w42BIADiR*rRI!3H9@<us^w9+sasPEkMG6U$&@@bOG#&SZ)#kksNlrH>
      zeX@s>Npznj!_G6qW>|0j$M1dGa3~zz_a;=XkW(rpZvQihl4Mhql6Rz22||szwMn|Q
      zPgoakO{P{~+%&xTnUmx8JQ*m`9wGV}B3Oe$Cv~UW5@Phxni8wCNLI+0oW+#Pdz@9I
      z>CDjWBXx^V+|kl!)91cpP0PE;Ya1>KTEWGZmJPcoYFWia>8tE=k<Lvy^&w4tL{lD9
      zw<pMfqktYt=;IQ-9{7E+i!vaQr;ADCDO-}r(-xA*Qy-Sd)2UEp1=>tym7>Q~v~S3N
      zp38{H<XDbV{esyzhRe7TKrSqj-vpAc29mcH$?pTndx5fxi{uZ1<Z2+fv`GFGNUq7M
      F`d_uttn>f?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/DatabaseMetaData.class b/libjava/classpath/lib/java/sql/DatabaseMetaData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fc91e8506d4c12750d30ab9a5c730148e6103a7
      GIT binary patch
      literal 9882
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Date.class b/libjava/classpath/lib/java/sql/Date.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d82204f6375519947925259b43107b7976c841a
      GIT binary patch
      literal 1914
      zcwU`TOK($07(Ej^w&OSi(f}cZ(h?rF^Ke5;TbeXH5>gx-0(I&ti!N^LiF48Qz3IJU
      zN;d4fM`Dj!RaG~%m13!pfL$ei5{s&5=32%W2c+1NJ>NIqIp6Ed%m4m)24Dtv<LD6>
      zxM$tBa>0*IZqZUQj;O#P<Ekq=^a≥FeJN&129x!>g%1;jF;3!WP&%T*=IsmtEs
      zS4&%0E^R&*hy;~Qfw6+&QSyPx746!#BQ@KS=hrMXE0CBgJGN`9dB&$RC4uOIS78B%
      z1xEJ=CNLzB+~H?xWo4>TNn#MgDICQyf!JJ=?`S$q?O1L#S5&_3R%bJ%J_wAYkVL=0
      zV8M3f?RsrP`fJvP!ybnUUYRXgY?OA>8B6E$d0ks_QEvOP%rclUf)91ZlPp<n*@0$z
      zV~A`nx+5*0Q_2hU);w2jvB`?H!;AECrlct@Xo_=mRLqDIRjF=zbw4oEAS`*~L0N7q
      z&O3->O5n`vj`EHptCn-kuhwhQRjt4zCXv&$1B8=r#dhmT2BA@uWzVh9NCd4+(X?qU
      z;mV)P3K<!+!-6(g{JxG@<zC0TO}AqLdM#h2FpD{X{%y+-<m$#fSylq)_eUF77&ohX
      z8P;>UlEPJ7V}ACqX4j;d&vKHxybuS4IPzL6cXXcCG_(wruNV7PJ}#z0RTtjWxz?oe
      z!VrPsbmncKZmW>O3T{&yn?{fVXVaZTU67n+kwY)bC0h%tPsdH`D16LTB7BfN7(p*$
      zwBp7}P^r`^&;2~7Fu<Eb=HcpSU|<h}>qAEx_~36G|I<KD@HfeS;7bB#FlxLYkZR>=
      z%m6jX8lwCHiR{U-Qw^Nz#4oXkZwx*g#^E$RGUx;gK0`)*8t19UoX+wTF?r54%bcgJ
      z3yoz@H*mg_|68_NH2lYm9c%H&kTydQ$S`*V6ZA!CO}15kkr-3K9wyftn10@3j~V|D
      zhB?)&GGrF`<iLDeUHN7X%olX!yNFNs;hQ76=N)_x+a}q*sn5)&1TGzz`RDgAe|})*
      zNAG0r!xz+WsHBJF)=|@c;dpizmtP=KnD`edO`L7u>*sqA>l3?}Z{YgV?^|AzWt_@f
      zXyzSdX5a~*(=U9+zw){L#@pYi*gx88nZ^yOUq8ANd;vF2mw7BVYiVsZtmW3zj;?mQ
      KZg$l~-T5D>?n2}M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Driver.class b/libjava/classpath/lib/java/sql/Driver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b7b6f2aa64b9980f9dcd9f3065758ab4ded1584
      GIT binary patch
      literal 490
      zcwUWB%TB{E5FD4%KuRgE{zG#i;+zAA0-{n7j|dKMN{xve1v@xy1;56D58$H^n}^b>
      z;(!nK?(BGH*8cwa`~q--k%JDyFpU?nU%X}hnUM=&9CR7>Dlm&x;$P2F!7YQswNh1d
      zIu4iR$Qr4Vpho6aX8w)QxiD6WBJjet`J}!rwF(&A^LH-tGASHvGmKhVbQ`uc;>Em-
      zi~GBfNPozBk2F9cY@_)xRWF+1^8W^(mJaLjS33oD^Q$=3=0TXE^0YDbrVTFD3O-1m
      zXMCbx^GwFdRy;E2MtW|zxR9A(=+_d*rDTtRI4D<-9()r$${otObZ!yiqQ8dhV6cYl
      TVu<RynsXlqRAo4%y@R7)7O8(=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/DriverManager.class b/libjava/classpath/lib/java/sql/DriverManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09bc56907b7b69a9de9025be9d8933be105a1652
      GIT binary patch
      literal 4441
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/DriverPropertyInfo.class b/libjava/classpath/lib/java/sql/DriverPropertyInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86e7830417ddf7e5e8cd2277c8c9eeee00cb37fa
      GIT binary patch
      literal 538
      zcwT)_O;5r=5Pe(9SE+)aq9Tc&1T+%Q8ZR0X6QU+)je1(j3QI~0OH1O<@<2>H_yhb=
      z#_3Ap0pn%n&BvR0GoN4Y9{`R}O~YWQ4EU5cCu6U9uH;mx8x@R%3STb$=O7J}p`aT)
      z?)RG4oq=#e2Gi$5!BA}dmfE3`e(#te*A)|2$x$c+pCO~fIFd?q8Q3F3a>~7km}$2k
      zNLNf4N>6_cNu5YvhNldBwZ-ycrtXlYv!E+1B(P#*2}OoPt?p#OuxcZTRE*YbSV%GC
      zThbR-(Xb=bE$?{xlECGj!<CHVdD0B~k`z{3|9ptFTJ0cGuDFmfr@Yv57}K#!`xEr`
      zBzclUh`uoQ8DzD$=5Y?T_KXf$CYz_|0fy%18*eBy_Gc(H4rW+;rIdj(*&<A`ZL)VX
      e&LQGGHYl_6L&GMv0FC1HOrv<ALAau)Y<~kJopV(H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/ParameterMetaData.class b/libjava/classpath/lib/java/sql/ParameterMetaData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d990a0e159ec22bdc7c8bb74da86cc71a6dd5fc
      GIT binary patch
      literal 824
      zcwS|Z$x^~V5QcjM4Is!OAmF|n@FL~eBWe{@ELu?y-i9zm1>*!W6PH)>-~;$jmOY^e
      z$>czV|LebJ{+|B*`~CrdOE@!NjX-Ng-)Tp@Ih{M|(N`v!H(-)pQ%Ma-6DS3Bhw^D>
      zG@da_BAPFqLwD#qjvzpK1PWc33rV?rqK?l}cn1(Due|7_V<#vO0*yrBk-u>FgR45`
      zs)qG}J6YBU6l1uDq@t0LAB(6UB6TWGQ=T#z&e?T+j^0%J9Mk7+J}owvHqKx`oj@&o
      z7xTU!*3f5*Wncp7c2D(YY+>3{&L#`;OdzlB@t9?cpecjWw5Vz+MH4)H%@I{~G{nD{
      z0FUagUf-0S&8Jt$V>38Zh=o6PvKkx1ny&9z?ABH{*AolAP^WL;_CP(40Zmwk4OE6&
      z0c22TBRYqAGotgT3z~mR^A|OLDWc1e#f?;88%b5I2fsBWJJ8Tb6IvSCO?dVaWIsU;
      S;7}t+3343o!rw`d_Vgd03aPmO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/PreparedStatement.class b/libjava/classpath/lib/java/sql/PreparedStatement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dda2c70e68c83e64dcbefaa39b57f7f02bb42f4d
      GIT binary patch
      literal 1974
      zcwTjtTUXOS5XUD7lsm|!ASzxEX%(sWTfNbiYOpA@;sZV{$=ZgKCUvv%z*qCZ58#LL
      zIJ;>|oRo*0CcpoGXJ=<;w}1Zr`V9aNU^fE;1}q=5pR5r4a0`2acbMRILo&(R+>;p?
      zG+;*SF7uj&&qv4HLON`~Y;RQ0ZNLOS;Z`X5e#phC0oh!>*0a@l5W2F#Wzm4K?GuZ4
      zq~m)*2F49oI19F4>uCl|cH<p%Y@EY@3%R^$KqlbwQ|P(|4CPES{}tmQDfzz3nWy2Q
      zg34ApRl|^!6d6I%X!$~F)KF*`k*QKw?wap4wX_qvtFF%?cU7TLL=`_ga-*OX#U|A>
      zPP4)-r_C^@<(wHUy3J&(aHbUF01YV|HBUA+>e5EE7*DJc4=}x)`K=T$rlM;w7Y|eA
      zQm7c~Uz|4871H`dR}Um>cMMpfCe5{T3Y}Yl<v5rTXYIs-9KT?Colr(XQCEHj-3Ojy
      z`8JRJV-?;J+``Ok1EzI#JSI+KdD_Bl5_?RrHkVukdRM!piTW#%UZU%Y(N-_^m6Ve0
      zr|8;ryGYM;i1lT*U1HK|VHe}1<rd~*VJdNk3yB5SIkUNlCQ!Xn=ihNuvU*5*J5X}{
      zBeDYu_4IODFUPvt^(`S7o}2lkK{M?bZ*sZICBsc;2CVcwT(ORaY(3Q|(Pt<foR+!V
      zvzgF=|8we=InTM#zi-a7<7S=H<EoYi^;)8q9+w3qTAjz0_B!O8C8u<CuQdEnSiI_}
      z1DZ`;XPas;-d)%T_zdA4xQ6#z21f8}6u$=XcMQn{OcF8$(}c{xMM7p_j*xj+AS9cL
      zvj|IsT!LjnF2fZ<uEGi-*WfxKH{d2At8j~uHMmX4I^+n+!yQ8IA{jU%umS4TfO{$D
      zCKL#{kN-QAJWP>Cggk~Pggi|}eg@A8c>ym8DZ(p4Uc(zg-oiUVwxC4FDwGLXg9;(*
      ZuuaGmR0(+x9|$pFCrR-6i0=bX`v+uzlN|s6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Ref.class b/libjava/classpath/lib/java/sql/Ref.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..870e337e5eaef6d61f0df73749d9de32e3a2343a
      GIT binary patch
      literal 456
      zcwTLgO-{ow5QX1_(ln*e^3xNrNm&rFPSphnHWUy9u{V*4T$wb)4uY$(-~b#7F-b)e
      zS}a-iym|g+#$Vqbp8!s<@4_MUX5v)@=0yj0^2tSuFsKwQ(j>TfoXOY{`iZos!pQsg
      zOkRs;NjUIF)7lr=T%}1!=$^mDGP7!)8W$d6xTHt7(`Am}G4L0D=r2fxRXVs5S=b~m
      zOicD7m88NJITycNc`;sZrJ<Z@Va)hw5>Ean{~e_+XzCV+{<>rIz~e^qB9G;T(%e;t
      xKk&G;wF!g`l&i)6xrsK%ZW-~}VWo>LIJJTv-yCdLnVl7HAA_dCd$)4${QyWaZ#Mt{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/ResultSet.class b/libjava/classpath/lib/java/sql/ResultSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f08c392dbbd5eada2f3ecfc2c81a0b1c98a6a94
      GIT binary patch
      literal 7255
      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
      F`G1RRB|!iH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/ResultSetMetaData.class b/libjava/classpath/lib/java/sql/ResultSetMetaData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f7e08050aac3c9aa22dd391bedfc7c67df31679
      GIT binary patch
      literal 1067
      zcwS|a+invv5QfJjG@+#FDJis^3xxzEBCfeY2}qGb3f&eY?k4VZ>(=q6Yi}Vu8W%hO
      z4~3ZB4LSK@wfevLJqM5f{QdPC0N%i>65J55cY)W~vRArwL^jbbAor0RcF<u7iUKyW
      zxJDDU4hI(`oq#nN>11g7Q9sez3J_gp?Z{Y%#(hDZP=O18fa=7^HXP`T3IX*+dSWh3
      z^xdREZl@ZOYiIFxlo&2nXf!$f>iZv(Mow{&5^QpgY1hH$-ZUm)UD<bui@HX}G^F%=
      zvC(aQ%K~k*6p*pXscRBYQ8plq<$2l!S71XD$7JL<6aU-GGjI!K_N&m)seszF$&Ruk
      zjpIQ5r1{=^I3Uek^2y%p{sI>(6Taokni~5!q+AE`oQ9a|3hPfXNoBL4%2^ooByya#
      zl^e5)yeS=pvrKvB<MD{~=7P>WJlqlC>7mj2q+es@@=0sTcIZqQ<w%cbcx$#3jn+=G
      z1W^)8`k+$Bj`wz6r(>`1+kkYj1=xj~u)?a8t{KX#Z_Vjd*0<+$1?v3t)}YE{ok@}Z
      z8%(xfdx_LMQuoM?NAAGgC9>;z_B_u$xW7amc;ul+9(j2ld*q3CYTqMIy;ILT&w)3^
      SbC106NMkV%f6Z(QFaH7e>&e&v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/SQLData.class b/libjava/classpath/lib/java/sql/SQLData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85a205f71d1376674463bcae6bc4c4032627ba45
      GIT binary patch
      literal 328
      zcwS|X%ZkD<6o&ufEn06~%-}23jb+wuRS=3YRA!&4p;T(^)YQwXx$pseDDhNutQrW(
      z`SSfq&gpzO0{DU{P#~BKxsmqzFSOlnXCSo{DBWo&Bj29>E|jMUEnjI?X8Tx8<Wdnn
      ztgiFWT%81w-zONuou^_QtfI9*jqsU&;Qx#u5+&!12$tpKopBVWy8nK4_lHp3CV^Jh
      zROdN0O?4K_B*R^$iKj+E$iHmd+UjL;g+M4G8%6H2j0)F+s}iqOCI;#+q=9Ch@NDtE
      Gfc6E$eoZ3)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/SQLException.class b/libjava/classpath/lib/java/sql/SQLException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94cb2761b6bb5c5d46eb3d869a889e388ddae388
      GIT binary patch
      literal 1367
      zcwUWCO-~b16g{sWw3b22M-i~dhaa@lO2LI24KYDXAO&Np-DqM4n3OSPDl=1p3-|8b
      zYrv=*7m|o1F5Hs%7xWMK3*4#ay$)?d$Hc|FdH241&bja0_wDzWuK?z7EryUl>WQ&q
      z6x{7<p>(gfxVvsX^{kp5LquRe9aRmxQfM9sBwf?7jB43*T*eQUZVQNIfu4n$?Rtjo
      zm5plMjE?R7oc%su{~-{u&0SC6Trp7ShCrNg$um4tpugCXEP0M)S9qS-G3||-vryY$
      zg;)~kx@p;#H!qOMbk=ufma=7bA>j#xF{mMl6z?5?&6dxAoodj~BX=Vj&Z1YKw`kes
      zYJF?XbnY8#Rn=&1ogNr;g0Y{Bc$=0h5Zf|c*QhWt{a^iM%L!^t$iDgn!Wr3acg6Ht
      zwhU&nLB?n-T6CNfYlx&dNhVk6c-zEAPT(Ep%S&c8B+#wqdKx&I`3J7i@>LC2FwL1z
      zJW;h=@3Con&NBw3THRSU?^x26zINn{<ijMvVZOl#h7m;<qZp$Q;{4c)+H(Zz&jIis
      zXASM)+Rtc%`3V0>J$HlwJ%5NHee4j!2MRIDwO^eV$-Y9yRdU?Ld1mwm4r!$#cVpBM
      zY9|##Y9}?rO7ViPxJ;bvIIidN;UkQ<loAT_kT-aw6eb#VO@(+<A?_<k-jvUKi@c!*
      zuL$C;katt@4mIjJcqQAU&vu<`N=X-iY};gW6r1LE)L;{s!bP8>pg4i3{s}`Ln*?1d
      z`MeDrZGtc1asYVv!zu8KKrmlW06246`DGwjN6rWDuv!|Q&K)Cips&0~JpUQ_6}cS$
      z`IXNdBGa;CidP3-(XQ8I+oLV}wCD}TzE7jyQtMsYFw;%b)0p8-KGzi6?N-B_RjhM=
      E0dlbBy8r+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/SQLInput.class b/libjava/classpath/lib/java/sql/SQLInput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f7d735b58519517146bd5ec949e75f6449bd01a
      GIT binary patch
      literal 1192
      zcwS|a*>ck`6o!A5&~zbf(k*4*Az`U0+fA;Tgv^A=z>vTVTq#B*?sy5Z0_4@W-~o6j
      z21&N4Iq{6g*7yH9I*We)`S}aLF<zFj!caTq-?*244ZYF3K|h|&RT(9Qs>LCXC*Irf
      zsqhuUh7|nsNXa0cFzhv&gELD;TiWyLhc9L-NaD1Nb%y<7^nV(|ris-~l2CBHI@f4^
      zWLUFop@ao(hIM=3G?B`Z5kuLKew?lQ`IbRq64KyxzNHr?JhSxjth>p49A<I53|sb~
      zVA2(S5b==V&=nJLHTBMvRvyqKl`@nX%}?$8&@MN5*4#!@p+T)&ejh|sHb~1AC#Q->
      zGlm1|v0NK>jj=Q3lKV<X-C@Bah8<@Q5^tytLTc-_v7V%U5I9@CV6#Kb1nsS6#m8JO
      zoY}U>P5J-9X0(-eeki`^0L6qgaV59IWK2pn$jO~$xs%DZ#V1noMWH;STV~Gw&eJ#Z
      zFwC>~FdP)Jh=uYrF?Vm2%%v}Sfths0-R2|XT4m6~hk5Gya-YYlUYGT%q`zyLY+#d+
      z3#bsXg>6Ers1dS*T|)M-Psjo4gdE}`A(wEOkSn-K$TeIi<OXgMatpT!xr4ie+*=~|
      k(IBLW2ZTJtBSIeIh!77?2svKr^HV%468%2c|0{U$7f&$bF#rGn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/SQLOutput.class b/libjava/classpath/lib/java/sql/SQLOutput.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..021bdf44989d6d8fc935d1f00b4d85d82f4f8bee
      GIT binary patch
      literal 1264
      zcwS|b*>Vy=6o&tfBxI8i0+P7z5|@l|z2GW<RAEt-64VR5YQ`2OH4D!4sJxmNK7bEp
      z+1&&5ctRBg{mpl_?w&t?fBgn<jMqi1FjUU?ckU$Ld}sKsf11i^DvKyElnwWJICf4)
      zXTp^XTR&n?ilL0XaLiC^^sSP?=HW+%%{M<?F_m5vCPi#0FJEB!jA7ekYekVSxLOt(
      zpLFy_MrTrJ)G`UPvXdy5nhiBuH>?*L(zAj6NVisKytRQ{KjKE~YL?B=iPDj8Ds(j5
      z$%=a8j&Qwz`wR#3;Q}rvj(yOyX?2SU!)oJm%a-qO-FIaktY_AwX@&P*Km<*UP+AI!
      z<iV7oPAr3sS~Y5W!ej1A5v$D?JYd+H2Y8V)5d4dXja)YJN#c6mLfp4vFH{Gfabxe!
      zw<6^6Y@ug+wzvhgTwCfy)quQdk7OXesw6o@f!zEpKN|f%za}}MeNJdEgyr>1bsN=u
      z8;0c$=Om8#%x;Kw49Ye7VbHgYhC(_DWEqB08oQ$F=?hX?z7$7VTw`Fk0R5?}cVrc7
      zYF$*Tg8E%oWD{G2Y~vy!CF~GV#x5Zh>=9B$jgU*I6S9v3LN4P9Ay;vYkn6ZX$W7cL
      x<TmaQau@dqxqps4K!cD&JS5~19ux8eM}#<dO2{#u5%L@_@<e@Ks{bo^^$$V_0Ga>*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/SQLPermission.class b/libjava/classpath/lib/java/sql/SQLPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d59957bddd72f86bb0feb31b75e85f8ce08033fc
      GIT binary patch
      literal 505
      zcwTLg%}T>S6ot>km}soFRvX+1?$ovz)P+K&3k5+4qC~o%#-Wbn2lFHNSgr~#d;lLx
      zyfX=knk**w&Yb(5GxPEJ_730>t__31edN#F%by}Ixb<&D7Rx-BX=1}<*sjh*SZ1<#
      z@y>ZJ!ygHQbtV&8j2U`+zLrKjnR!8x$z(R#pD>sg>Ai5UfaMkzVKKCQnTYE$o{H>_
      zPb0z5_0y0?6P`)c*PCYXAajN-zd7896bX;@^gmyQ-G($x`Bbp33f5t;c~}scOr0Pt
      zvrt@0o$i<Kfr8M>F&b2#K^0w#R-3vp^#=W|{$P%!SAFi#>ge4gQXXT4Dz{Rhg;h<l
      tu!c4<6suFSuE;@o*!{t9j`hE=6B;_zu$@Zw4YO;Qsy3)n5jXX8?+ZAKW>o+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/SQLWarning.class b/libjava/classpath/lib/java/sql/SQLWarning.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee6d7dc29e2eced8f3fdb92b61d13bd31e1ec245
      GIT binary patch
      literal 1151
      zcwUWC-A)rh6#k~P-KLfnL7;#j{<3X>`jdEr_69X6Zb(RRxiWDmle)U>>h8Ai0KSPY
      zpjS=2FkbrvK7h|*JTp64n`KE%lihP>&iA*cKmUCD4&VXq8^|%tz2hU^4nMl>-hp+*
      z1JCgW2J#H^lNZm=`{G07_#VSdC<2GOwg^J%Uv-}`usw$9UEd2M?nO3thobQK^;Y@w
      z?@zxNiccKRi8>6XX(>vVdxLf_3P@<@;z_q*Gvs&u6H&$#suh%Rg`s9Sp4cCr9*f|R
      zAG?BK*7E!0f|D2O^<h4G>x5+8$_TZ?V4R9D<O7AiAk0vr;a<cex-XA}cj5=q2F2?#
      zZ2Xt`hAmAmOVf3-k%5UPR^`MB!;~5K>#|>Cs18K5FU})vnPJgvWM+||I~Cl;Jz9tc
      zP3&kX1xv0dWi?D`)XhwZ*jclJ7B<z^(;~~}B^q*r?2JBQ&mRVT@xqa-sr{qgmN47|
      z<)=R)89)I=dK=W`P*OE*ot_msIYgd*K&jc<TpeTjtD36OvrKQ`Dd9Spp{g0r;VNbU
      zRn6fVvB+wks+_78ut>U6p{^CW)JrD@DU7j{7T6<0FO|T0JeCL;iGZO6B<+f(?NBfA
      z#b#@a>uFY-LLVvCg?K7qEoxTDwWhfqsU9da$GDNEdPBLnqN>D0nu^gkzNHBsYJw6G
      n-2MUfCE+Nl^Y;_@Qi9)rnH8pyb}%B%vrEEkQ6;sv6{h_c>Ri#>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Savepoint.class b/libjava/classpath/lib/java/sql/Savepoint.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3628fe120fdea4c8f9b85400e248fca8f94ac00f
      GIT binary patch
      literal 249
      zcwS9T(F%e<5S%mf%1R>YAM_>Zx#t2witr0AJ4CV5^pd`<hd!W>iq;;?g=Lx9nc01R
      zo-Y6!I2;DUA`^}9>s#(eqLF2hD$QXs%zu0?RN^1cnT$1qlSti(f(ygI^#TTa_lRYw
      z(?Zo8V}{i~@f3DDO6=PY;wl-It{49AM7l~<vZchRxL2{<r#Wey&a-Z%76TndTL!&3
      VghiMWGHH&8u`%g0)YDdr*%ycfI`IGi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Statement.class b/libjava/classpath/lib/java/sql/Statement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c383f68f6912b97dfd5a488bdd60cf57d5d28cc0
      GIT binary patch
      literal 2029
      zcwUWEX?M~<6nzm|Dg|1)QTMe9T8nj8+-MkDYzi%bs`LXV4RbI(X@Xg_^{4s4AK-t|
      z`a)P|;2b}2IQPE$wmXyg{rBfD09c0)Avh<%+>!E4N!wrbwCpGjJ*I{ef}jAiZC+Q5
      zX1a8EL{&$C1yL%=q%Ky=Wm2rv%S5h96#;~T08!C2Y)3JieMNU^0P70^%x@F2%gDVD
      zc8&X`vXa!{WiJpAU`DQrB9Y~Ku~aV<^QFMq+1XzKV&oGMs})kuXA2U^dF&qn7R#hk
      zEf?#Xq)5uy3dz;C$!8g>V=~J{=m}L_hwi!5Iu#(9l==(Gj-?sROiJo`QKq)5J2G`L
      z0))wlN?VSG8-^f(UHgvhNxc|)(CJWZHPA@ZjcS2jO{ltQV?2;d?c>5t>g*^dd5!7~
      zS^MGhsG6}^KA0?c31L5>Y<{;9*aKi50kKu3MRzSzrM8V7y|h}lPkZ-@c1%sz@jDDN
      zld58<R2N_x#UB;Rzyeq|ksNRackV>cny9K%#p)}gSW<K?+q8<x@i+@`m{7;6F^U=<
      z7f#SS1Ob+kV-6>VI^S^7bPdNRc1(-<BD-xT){En0dFrTNa+-ygxqV>qCeKB>I^Xk1
      za|k8|r@||*x|T%^74OsRV5D-|Lh+Q+Xly8$i^tUVsROz<u>*t2)PeT}HQN=9?jS>^
      z_X8RK9@PAfo7A8d?%vp@r?%%3Z)U-}Oo<VJgLY)pcW^NJ-j1$b8(Y2h|J7@ZwOgj%
      zP!2U+bI{tbY`T_8^O}yP#(J;Rnpb8LpC9m^ju2dc37A9_@?IF2LVSJzhY?Q?;0WUA
      z0FEJ^8NjoM<4nD|p?WL$NY29oGK<Ir@qY=KWz-Eb7vU1aT!t$Qa}};J%ymw4gVWrE
      zTMToX%Ua>G?r`(mg(SnIIL$q{&oHa-fMM1k%`gwSdDh_(!#w6De8Oct<uuPY&2x@<
      z!7(qnEnab(X5cl$yn(me7VjA5J-7QZWI1MoV?>5og&fBaj>$93=J2NY+XC;F7XAT}
      C8k1rG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Struct.class b/libjava/classpath/lib/java/sql/Struct.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89b43104c620839a938be2f1fba7adcb80681165
      GIT binary patch
      literal 414
      zcwTjoO-{ow5QU%9($JLtAi)h-q%4S7r>cYytPH3MJ63LFMXpR5;xU4&vFHIf6k^&+
      z1hwFeXFk98Jetq1j}?GR9ES)5h70wo68B=0jB1}#h_=9J1Fb5H<YB(hISC93P1#I7
      zzE}EQJ!^rJcq|(kn@w4y0@2M|t}8Oj(uL>>oHqG0`ST{w=e#Ro*W8nKtc%A_a`#)#
      zJBzo}ld;L2s?xt@-OLoFB46`la>p{+pYs>Fw#vE5`81vW6CGtsU+4PPSkCTkw{)@A
      nbp!-jSf3Uz?EoF_L+;vqA2Ny1+apH^8iGDo0R~(TH`VAH{ljTL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Time.class b/libjava/classpath/lib/java/sql/Time.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..888edfc806edbe0c7710268fb369885bd4a20a22
      GIT binary patch
      literal 2129
      zcwU`UTW=dx5dKc=+K#hsnvhFL)0AE)_6A~_a<xOC#0{}=nu1domy5KqPo1sSyYB9B
      zX@$fi67L9vD*i!LQjly!fcBvRssEsV1~KQXYbU8wB)@p)%$fP-`)1Dg(Z9d{1>g+6
      z2xEXDcFnk9B)#iaa^0-)FoFyRm8&64E159_XE@|>*EFmmcRkawFJ&_fEJvwJj_nD<
      z7DdBq@B`x8T<r1u!|MzIuX2@PI<Ig9zbTRhvsSmbL|b;;njz8*k%h8l+NM~f_;{ko
      z5L|L9MBos^)c%PPj8f{#N~%^%d0rI57}GG035L)@8*M!97q$$$nk)#{w5#bvaS#lL
      zHAFGQFq}7SexXs@;O@GyVUfboyi+ED2Favz+ZnEM;WvN?W*MUAZ<cvoPz$^;jxn6*
      zmdRQcuNu}lx7w(2TXX^`DZ}e7FB429iW!`cY-1!=Y?_{Ava9{nmXIoXi$s#K>eyn_
      zCsN{uOP2S9QZSyCO^ew4OVxfF2~muA-6XG*bVCNL(MV4AYRw)BvZrS>%;PM>P~C7n
      zzP53Vmj%P={j-(Jk4sCLV^IX~hK4usmQP<ot3KwUG>DY!LRyN*C5mCZL!;@A{GzP6
      zqk{oYxN<^I)h5XmdYt*)&sFv?p3PEsqR3!5jPn$;Blngkcum6xlG#YP;kq<0$!^uO
      zEYp*`Q<7p%!-q)t9bIu6t|y(V8ZJm@RJPf)8-gqMMGYT4aTj>mu`4v%;3j1emzs(r
      z!&5hOQBebo2*=mKFcwcdtxnFNq~QuarQECP@iUx??^W9)lZX_kc9}1m@)-|Gb#pQb
      z$BAr!mVW?;aR4DYh1DrSdqJB)wnnyw7~LFHe-bhph;3uIG&<74bH8Hpo=SP1exvjS
      zQj~BOQ_2fUJc4OTJ4$wtPBVBxK}fiHieU7OY-6U>!twhZq>%Dw6pH4@;3Q5dyche%
      zTkDB;x^KKIJ@H=Z8;|$IizBfQ-U4M0JOi(;@Fx72HlDO}%+fu>%Y7q%^*_k3^o{(@
      zGm!@|ha~*R_%&h6sJUM-sW<WJ0|fH3|3H(#dJC`J-v%qqHt~83Z*N`hcvTgNyU?yX
      zMU{c?=(&GSEA|7e!jE)&o8H+^JGjhY5%1D>h;rV;Ii+$O@6%mZn?ss|^qtgy!%_<?
      z`jIBG`g9X{{b&<w-9?$8Z3FJmw%w(1|BMlAk?)==r~42c>67?aNtafEtN~@MlNC@D
      z((QIE(phe2NIyoU_b%lhRPoOpazY*a5H6|KGZb;Tjn#RmerrG3!tNpc-SeS-rlLOo
      E5A26(lmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Timestamp.class b/libjava/classpath/lib/java/sql/Timestamp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfbac9d06170dc2b1e4c2a0cf44be0f6ba29ed04
      GIT binary patch
      literal 3826
      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
      Ir|hTx4YYO?w*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/sql/Types.class b/libjava/classpath/lib/java/sql/Types.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5974e9cbbce77c898c7cd221b1844cd3b8d43ed5
      GIT binary patch
      literal 1194
      zcwSZ0SyR(c6bJBgX-i5eP;tc_S3spA?jU;8rX_HjIB8m^qmC0Wqh)HVv^e9(^2r$=
      z`~W_=e-}6E|E6U)zVx2o$+_n)Nk4AC|3E}@<QOy{XmlfZ9c0_D8d?9%%dl-wTu>&;
      zHG<}|th=@mu6G2*OxqVEY(XQrR<qp+nw@IU*a~CaZuh4k!?&H9?f9C%1SQKQsgyQW
      zO5ia<t7v(e=s#%M#eVT`L5YHLWmGvRDDGKO>DWM7-mRF*(n_L-Qz==Vozuj=jl7k!
      zOTF3{=H-@U)L!6GReC#23mR6gQ`|{m$u6q%(vSK+MC{w8D1IbpNXKPgmhS7s<7lUj
      z^lEzAHXftPZsITQqThNq`3DW1ii);HIGgJ)N5_soz(!VNRX%ae6)UHYYka~*<?S-A
      zuIJBKuk3r3p1xqV^gLP9_=>isa!nn7)2Hpn-|=QVtDwUlx|{SRu6<RnUcg0|uB$BR
      zXlBrSvEHnAmM~>%x~iMBo`xxkQ87(9$_pA(^=9a7y;uu3{a~#T3L00f^`KD=HtX8`
      zWW4jd-o{6w{{M0o1f|NYt<CkYP}gOtC_Af*XcAYUH*uUMC_#geq2D4U;UVS}Jj|Si
      zN0>+9G3E@shj|>{%e)WX&wKzr$b1N%U_J~TVLl2UW7hjW!F&>)WIhF-W<CR-Wj+U=
      zXP$zmnP=b&%opKH%(HNo`7%7md<C9oz6xJsz7F4Dz6sxAz6~!hFT!`2m*Bh1_h89v
      vA{x*i6GjV}d5i*MV&)wc-bN+M_)TFX@+eL|*@)7;B3hwU(*GJ2RhIq%#r3B$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/Annotation.class b/libjava/classpath/lib/java/text/Annotation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7af7955e747409bd6c034ba17206d1a1f0fab7ef
      GIT binary patch
      literal 924
      zcwTK%+iuf95Iviuv1?pX(lp_IZyTqyrsXOHkZ2`d2<=0VC4^A5Nw&e2V^{8`;<G>k
      z7lFhF@KK1_wN<E-2d`(&nLTsc-+zAm0<eLn1_}(d1Afe1DLzT}Wf(@1OFs$?lo;kU
      z6Yy~8?)DBuUow=rl(FAqsCM#Xo7iW5=*t%ji_J;e@fb?m(Lh)z;+zcwHbb%Lc(Y(Q
      zZ({~!hDyf|#m;!t6Y*Q#3xrA(^?Bg&*jIiAmgGnOh@sw@Ry!494u$l1Fs9I2)0tMP
      zDWfiR5)ShbDcUx0k)e@?x5j=j5V7juvW+Xanx@(g_z{(}a7IXjZ41|N)4&aCEl1h7
      zg*t;l_jmY+rg8^M2JW62dz#h8GFB+^Sar0!&#*jgypugxXuwf}Zsj(T@s4NW9_hZ<
      z!p~Lsx(yfi)t(OzML1wsn|5yk%I4BmgW0sPh`Nb~4D5r_++?u2(KzmlSH4<a<=?8-
      zl@QH=9s<2chJtzpWEIIaVA45D-WK5n`dh6N`c}VT?hAPZR1~I}*C^o)=E<t3k+^^=
      zpe?0HrC<TIOwZLmFw^>qxzDFkWex6W89NQgWSHtGyWG{q0nSe}-n9~3N^tEvZl9o8
      fT}`m2Bol0qReeB5f=BrTqyG{(rwJbGs3(5`ku${p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/AttributedCharacterIterator$Attribute.class b/libjava/classpath/lib/java/text/AttributedCharacterIterator$Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ddbbd52df23e7f3fe0d4dc2085eac2c55c382d01
      GIT binary patch
      literal 1922
      zcwUuM-BTM?6#rca<in-3f$~w5rUGdaq!F!J3x1>_q^ThwAwj4bH_4SOhF#p;Fdg4~
      z(9y9|pM7-3)|Wm|KZqkU`tFSXlH<8|*8qWWG@0x@d+zUi{mwc0<F8+T12Bt<7hMeT
      zZGBIV3w}?;6GGTVxhZ%xS<`L3BDkHQpDrwWvVG@;hvB?3s_W)fe7U^ME5eIjhC!t@
      ztazT=hF&*5(aUvC;D&lFa=T$zW+Ah{!0s^gB`vcdbW;@ddXx8jIxfP0rib5U@MROZ
      zbRm&WG0bNFXLfT8-qloMA(Kl}KAGG~VXd^3TD!fxP|By$OR3x%gU8f&D6L@jsE9n7
      zn_Fb;o3GRj(-5ySbVs5^0w=91_hE>xB(kY*@c<Y`G>qaBL+`wcz8E>}E?V>x^l1$m
      z`g|Ct)NHO-=|-wU8qP`evy`V{?lwhfhl`q3Ej9So4mX9wOls&yA47lEFnO-IQ|9)X
      z!)Y*URftlZh^2R>44@kknbv?bjcGWK3zWa884ZfO#YIk)Js63eRrpgfwN>7*>U*a^
      zPKyZ?NZqUOT|r%Jc<}<m_&*KLn0wUkssn6;BvIEjJcpS8Ud9bCUO6#2PHYXY;wBNv
      zKW^&vMhB5@<mjds^9;kCwzrx_y~=GLr~#u%-MlJ7wo^i=JrOrU0nA}UJ`x&kAxW|H
      z-Cb^08D`FE+9{PAWlp+CX;{Pz4TG?p%K$CX2n~x>-aa`}ZPI)-y-|}>q(&+u+q9(N
      z4&IW|vW6ABO(5z|vaUCXfPoX-D<y@_<GL3#y!{<llG&n$b-Y7O-jkcO{2@d5ED}%G
      z>cb}OV#Ej9Iu@n==B=h(;fsbGvCzLP+%@TnLCcsXw^bgTCW16m|7l+t{Owy@p(*L6
      zUk`mR!3!VBe)@yzLV$*uR)^$Kxhv}IS7(<TZaO78hyk(~q_+b3k)NqUu#Mow7KVSs
      zn3A7S@?|AoQS!tS<z|YWLlhX)5RFJ4!Cgvd6O%M4VTAxZa@E}si=>gdK&*wUvFV=?
      zJ@Ru-g|88Qn+o_y*$+8rOslk|Bon8#lw0BYjMK^J?1}w^=ziN>uTl!-MsonJ8xO9L
      zQ5T+9GW|;`H{a5|M6JgT@Zt}+OwR+n^bNcu?>oA&W4bX{H*riiv44o!jYG_B1Yc|6
      zjhMQ6^8gDiq<?QG7FO-~j4Jt@0)IhVeTfLZ!VTQVJRTr}uZhVA#}Z$66TcvL-K{$1
      zGU=a=JwlJ?arfg6BEO@09#V(DKSrd#O{5>UDG(!<v`MFkY$1E(&LQ&28ALL<%&zf@
      z8bYd0mQR)E4zT(Q3PeM2gGg|>2;OxF>1@;CG4Em5dl%kQ&-YP+?7U3w1C-(a8&{{A
      AApigX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/AttributedCharacterIterator.class b/libjava/classpath/lib/java/text/AttributedCharacterIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2fb36a2bbddc5dfee8ca323b2734cc7a40f10980
      GIT binary patch
      literal 900
      zcwU`S+e*Vg5ItKjF}<j5t+)E%gM}2qAo$i&DAhtRA{g*}TbG&=Q`u}pf6WI!z>g9q
      zOO29(7$0VL&z#wFhGE`6Uf%$m;=n+Gp*7`C+*aaQ*?py?KZ=#O8{Bir$4W?tf~%P{
      zu*|TjO9LKG?Ca4~jFo{^hUT}x!Z(KcM5ulcq|%q-C1R*rZC8Jbl^@uiP#p%-^Cux!
      zu@nsFS-$K3sm-I5>-0#nl9+#G7HqHhBh}nybNQ{@>|C^Y`KLL<g_T>ky(r93BH5cb
      z^c0thVaaMc3^gk=%_KR@B)iAC8|Z1Fvww8%q>Z}%gHMeXy;&^BV(14ni^E@3P7*Jg
      zo)d;b4gwxUA~LYgVCQUtHY$D7n$oN&R%r80T4e)kgiJyO6bYA5PH~0sIyRtJ9@Y6>
      gOZmFSTRPvE^NkGONO*d0>vIRYbQh^&kD>|l6VR&#Bme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class b/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9419962f09fd19e00f680062e60f283d28bac27
      GIT binary patch
      literal 689
      zcwT)`-%A@o5dJ2)=92WPF&bOX-<pTyEG9lHLJ@?6v;~z^ANP_auACdW+lc>GAA;aR
      z|A78c;_M=Y2J~QezM1)M=9}5S&rg2<9H8l=Kxp5Hd(koS!F0YElc{84<nWw<9yR|3
      z&V(LGA0DCR=qdZ1pUI6J7=kYxEho(PTy|nq+W9W-4hhvnj+Bn|P(BbSCX}TfzPcrI
      zt@37<u-1E91J@`WDXq*gq1$?oIMX|h+kJv}G9JnbSa*ObK2}jgJwSj(Lb28E+e{<C
      z2b3)O9Kc7}qLly@l<h!D%O8{5L}nKvNhP7)8xKU<7n!pDYtXZk5cb}YH?vE-n)C4_
      z8^}{-D>P>L`?eGzh_#m4Nh<PO=00`^;oCh3bN_cimuD&RV|#pfNZ5}@bhct`t!CH4
      z9`OnAiR~Pt3<c%`VYD~JeDsKg=<5_q(fSn2QNx?!%WuvW5c0k3m{)vXaLqpd{|k$_
      p#41N4*Ez%*)?LrgsVF#Pbrc=4N<5BkxSE^TVq0Y;gl+7i_5!#Hnw9_n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/AttributedString.class b/libjava/classpath/lib/java/text/AttributedString.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10bf0d721ac12b6b56951cc5b4e1100c3df12928
      GIT binary patch
      literal 5877
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/AttributedStringIterator.class b/libjava/classpath/lib/java/text/AttributedStringIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d2a79733dd21c1162f1572ac1ebae541fa7bfbe
      GIT binary patch
      literal 5196
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/Bidi.class b/libjava/classpath/lib/java/text/Bidi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e61cb80f8f99ec2f935dbb831c072704078a58d
      GIT binary patch
      literal 10729
      zcwUWK34B!5)&HOS-mH0(41@=SNhBgm7}+E^MFLb30z?B*7*IeZLo$ScWF|}|ENU&b
      zaqXhGL$x7@Mk^{J1QbiHTb0%>?rU9Y)v8t7uT|?pzH{$;vn1yGe*N)#bI-l^+;h)8
      z`@P}lu?LR;IEhYnK@jrSMK(qzr=puvlPhD5F&A`#UyU_K;!Tt5R<DaTqzEJD)-0~B
      z3fI&vS~a(N-khbi;Z?QO^TMmbb*mQF%wG^DPz}LXm58^cBJtF+NOOBs>+S75HsDgV
      zM6Q)IBw8<FSQf1hWsR9dpXt7<<t#z34c9H^W^uT#Ru1vWba^O(SXo8zO1N&#nzks9
      zc%v<=qm7NRcvG94t|Sy>M$$OW=4iYrwU*#m(;Sg_zSWVoXmuKm$5UHcqiqUtW3-t8
      z|C&UyC6Y=-lQr?iSc9B1Yn33|Q?cgBbCSu(mfBcbs)9L7w#U`hEV8_0w5`24HP70`
      zIWrcIrDhX?Wwlww%t@t^vDNLVXk*pdNHWqO_uwy*N+c`BFJpRDiN>fG8pawJg>eL}
      zZ2U40#^Xd6f`ovg6xo!Tye1J(O%5~33`GMIFp*EUcqwZqEnz}Q?f<i;A`g>sk_%G^
      zWBw~94NOHj!DxzRi4dy)%Oj4?ZaluWzhzd)W1egvgzpdr^*P0=+Av#0Va}4uM4~ww
      ziSru5DF%w*l&dQY%p73#;&82;oo(Q|QbGlbmM*MbTvN4b$$~j&)GV6s!klkOc2Rpv
      zG#P7HvNqBhO-dnE8JLS|Rx+QwI^M{J5#6k`QzK{R8(1J`eLPzkZHmR!ykzb)1A|d0
      zp;`kbhDvCWfnkzi!WjmJ!zn2&Hn0Tjd#;A|WHK60DcV(%?PUhel5FQ!*37M0RlTsX
      zdhT4s^>RLFRw6a=RJ19Y^x|x+G;ogO#vQZW*Naneo`F@UXKQbhXX1^@R#w&2j9=zu
      zHdY&GkjCa>YnGvdWmFrBM_CA~qsee&bu;4+u1z#VnwLeAG1<2V_0-y!beJ6V%k|PR
      zVytt*xc|;Dc!9Pt(kyrRmRYbXDVCGpw&gxrVnm9`jTIq%wQ7h%LY_S7%E}sfS{GQd
      zqjIFy+#GF+G|x#kF{yZ}dUHdxH5E(5UD(KhDvP&-S&uhWw#S+qqe(Yd^&{Kk$!J5O
      zDIPmN+E_YH#g=iU5u4DAQZL$ZzI5UXIC_-T_9s;#CEt$k8Mp}F=Oad1TchztLUCEm
      z_-`TG`&P&m7aRBie#pvAC9Fxpkg{(tVca&HFKz5n14H2CEfRJ>%u^vU9Ug}cz?(9Q
      zAK@o1{J2jFv8E0D6jw2sR6^=eMMIW%+4z-Ja?v(v($#%6X_Mu+(U53qWeW()h%1@9
      z-ar6Dy|@wEUAT#TJi91kBnEciXKd^2TXSP9bE%(5b1bEHts2i7KF%h42CryJMq1Zq
      zqI<0j>1<q$F*YC5MyuZ3+8k?$rPQQiW2b>)%Qtr!7-9M5ZUZGa&V}34T=fn9UfhPU
      z(%bGd@C)3<&a+XvTHP8c(mp!0J+nftxZA)zxR)7<G&c6L3)|esuaJ268Q3SKsJF3s
      z$$|X_4xon@Hc6$KeRr^zdT|I3y6`|>oo#7LMOzFU#zO>8M6%zIXx);{OSu$k1{kW5
      zdC6~wrJS@`*qBvD-NtA#8EfQ-ke|uFOHz@B^_&{pTG{quZMCTc$8cJ~OvKujv_>0Z
      z(m#!ObW;vZXQDmD8saDwi>uZZ=g2XyMTSF8<7{-c3Kw(Ql}h@pfsrU>Z{WyPm1vi7
      z)3Ir7G|8M8&5^bg<1rse9`<u~PBd?fo)wL(SLP=J-=7RTlaA_(Z3=SyIRnq*h0M53
      zLT9Ph$my31yqq*7QFWv?1|Eq7enmluD=n=ZVOuFsTg7e-QR4ZMZ7`CKg#jwX&W
      zma{CoT9eU@u|#`Y+Hm<?GG<#0XevZFn(eu^1RJ$SN+^vTl_PFRLmrX0lpuRwBHm;T
      zxFxm)(mMWFL4~$p7Dd}r$w+h9DuxDU^qBEEF1NDel<L$1TR6<eru39srUiS$M8-5s
      zd!w3`{_gi51INn{H7ps8#oMCE)I6&I<K1OF)TZn~C0uVZ*0eT#Tu*a!P0AKBq1V8*
      z7{?Hiftyh+A<e+gtucpzr!2^2;13q$G4QDc<r(<gf_w(Pl&Nr#ED~#24Qo>2#A3Or
      z%E)ZK`3=cvBo&nj(#n-Xr0)7>KuN36pdr#6ylf7N%{kIaXsFBztS4RO46Bx^<jvBD
      zQpmDmmAC<eR5WFyjx}%%>x=be$rWo`7~33eR5NNUoRA1^I-XD}Im!8{DQ%9ekCtvp
      zv`;9lY;Rc4C<RG28BQ(BVr}h_=4K8Hfig~&D+i7PY|Avpps|+S#-u+gTTJH?J+XQn
      zE30sT<$N%nOd~oPEMN7g<y9&kd72ZOqHU=<85kXnoQBuR`l6+Ewbdk8QpxCscDBYg
      zOYU|B!z%GENwg;$qVr<1Ch^GGNs<Aa#AYF{5QDiubim0ym%LEG&3#W!-^=~HoW3k5
      zeL4Mn&Itwm`u?2$ApW?@Q!wXR)pD(;+F^EoxZM`n?FhRK*m%Wu%Q;829M)8Oyuu6c
      zUZZdV|BmKM((j@38Gv_!2QlWveJFbXlLQt{*oSGiBQK~O!1Qhm=k5&I)m7IM^dDn@
      z7BT)T8~@ihbvxV>9>%GQPJ95INcndjq46Qd3_Td!kD4P7xewrUNpNAXNI!A_by~>L
      zjXF7JIvD#*!cr!<G(+(0?U=*_&+fsBkkfSfAL)XZo7ubJ(L%0nxJ~D_kc-!!ZaPd?
      zxWhrFL+#Ynd-udA;GZZv8voSw;9Ndl<US>ZM*iK%vH`B*vtP#=xSl0^1CQLu61j=5
      zK0Ekk(urx<iP`8vHFn`N?8Zt?oojGA)}tFq+=0!Ut1rPGrgAs0zL!_r$Iw39kNuoH
      z58&5~^LsqVS>Z6=z%TI^96^+KJ%{au<;}F3<RzA&wTQ7c^6>)JF?GQ^??p3O*xpv+
      z3S|vCS8K}=XZ<;NpHWCK<YX)jt=PbpbBJkLkkoC`(k;GWY-v?1rEXbr$2u|5bc#-l
      zGo9Np%5>_TC_ap~<%iL}eDJ1&*kU?+aA6O&9z@5lf+rq8O|bX?E(uPQnlp8&I@7_L
      z3z|;We_xSSvKa$^WLBSL2Y8MR`FS?O7uXnI<eSG!>_9K#WX^Rn@Cx6ZUgay$Yb@5+
      zaRw)~Wq1=SIEP8`EU;M4h-ak|04eA)KD1DfbO}vCm-Cpepy5h95-L*Sk)pW57R9qX
      zBk`9@Q4~u_j4x(Ej4s}e(qa}vppO`ebEVLOE2SVbDG17#Fb`iXB~ko;2;y(d)Q21m
      zK4NeGJ0IX<X73Y>;VdzM+bQ@rrsFfr;#^UQFEAhfK^<p{Fuvw8@EawFQj6h?AeOTr
      zu2F(mt_~>pA7?51fNgw0DVoXB+3KXPU8l|L#t80R7m$v?-z9<iX@_t_xPy~{#OmsO
      zC(HIwDLZn&OHLG!3ny?piQI~np%!VI6`6D5O1?rSN1K61xF;E|Wy;gHbFAP--wC&D
      z_efSoDpty874LvU+arbUE@lLWz9-Ai8xq@pY$se=H*|eZhP&A;M$llmsF1lEf+19d
      zA_{Q5R*cb9g0XZQPNb2TLZz6>bF*j^ho2L08jZ&33}*#eYoB5$i_SVlDGT-%TcAHr
      z3sifD<&npGew`6$Cj(vEW{O$<*$=rFX(3$(Fq$s|&=aVT4Sx$wM}7HrOvvrd4BU*N
      zfz-B{0Y~c&`)ISe$t(EBp@p2fielH9j`Ck9O{0gue8^-2C0qH8v%d~q2E*+r2>6d(
      z<fz{ka(5#ypx5hL88qGg*}Kp#P1_UjZ{50W=0sEP&?yi$-81by`~|EPZB{oHr3VJ_
      z05gPH%n+uV`VKg|F=b+h-fQaRis<(*+BVa4-;6@jtzVQq0`lYvr>6MtG#$K+Ydgkp
      z=hojKKX@3oEkB6v1GrU=n2tlZqX&D=>V{u3m}hNYoC(}@UB`N?rTTp=S{97#^<Zzv
      zrO8vCYr0L>P8bq3<mtu`Mb+Jd`|Tv*F+HZUG2~UuI4zb;?;#viJ2|cW)PQX2Lk`oU
      z*N2=PZjzLD_wEWV->(vq+_aIsJL4TR0`vHH5_`vF_-QHz({v1@Q!s)m*ap9g5Y0su
      zRbxKQXM3yRWOf>s(&<=63$TI~;T)>NDq4)yv;<KK<7zq^*V1`>PmN$Vt-&6O;eKkt
      zA&TP&CGZ5b;wjpI=P8L-s15H@3Lnx&{GGPoQ@RNMri<|f{g4aP4sz2a<fF@I2whIY
      z=?W^MOR0o@L?h`ZG>WdGF?0=0q-$v^-9V?%jWm~TqA=~C<@7U(PzANnZc5Q@)K0h4
      z1=P(H@1QH`F4{(W80#K}_R>DOj~?aU=jeWVmG;wHjPoJ&&{uR&`Bsm#Rr=cYEkAw4
      z32y^?(qQ_4)7}PIywG3qD;2dz(A#)eMePzg!%k|e(aQ<*5r(520v~0_#i>`rW4zYQ
      zNp_9}5ns@4XfrzSxLivY;9@)>BR+L-Qr^dqi!NiWNy=`zk*WNKArIY!kPYqQSoS1C
      zUgqnmw8v8=W6A>QYE8OI*DP(e6+b&m%8NVUv!GcVtU5F*vEtP`+#G#^O`V$~?1Y_c
      zo!mU+J%FRyYz`3?AzA2@S@tMNNuozfn2M>_nGS^{XJ%y`q4)V5lx&P%%q1b{Q3!gB
      z&-geD`VEHCQ!K}$Y=w_=1pE_6zGpb{J&OhO99!b^ID=kbD|`tNdIin&Dq86^Z04~J
      zdIML{n>ji6YFm2(KgI9tlJpAJql}CmJLYSQy8urs=yZ<#zgK!(!r9%@qmUOOOP=}=
      z#^F>bW(0fi$BaltS+JxB&+@6cc`@XW%_|{ivFSX7*R%04<SGg1jh44}N$)p;C3?L?
      z<+9Io_r>*?u8^0%JW~%D-SmKIm=3wvZF;&Dh3ia1uP+bzEU?_~-iZPWHof5tO1TOh
      z5^(N>Y34b0a&A`xekWs1uqU^p$c8wF<=dcRXO>D{cFYF#u<2!*6HFifj<u&<ooOb@
      z{T$b(+6?)4tFfln&zK`kpKONbU>O-Kd(fRj#j_LZ)JD07J6oPTl+SUxBcIHC)3M8{
      z3e0?7+xxK%`aPY!Z(FnD>>;L8Y#O10Zu^i0&TvNonFVHkSMNWvyN}I+fefR4nX;Mo
      z`@&}44h+i*IenVEaEC!sYhB0Yna)|#!2(_1yqt}{L)q3q@3Xgmz%lqkt^xkemj5wZ
      z{wJLO|B1=;KPabvVH(3B;=+nPXD{HQioV23`if)k*QjTBH66nm>cu)PXf_CeD}@6$
      z2q$(4H|`R7=n+0VB=Yg3@Z%XV2(OF5cwZFaA7UuJ7Q;vvBRFpd$S+DLAdaJPVkDJ|
      z<7tK%MRUXnv`~zuWnw%<M37p<1Zoo#>HA_TT_VcqauK2*aeIxJMz@HQ=}z$-+AF5h
      zVNpSkh?#Vh+vh|Ty&>k(2cnuj6Z3=+^F^LGP58y>A|PtTXf9GFi8^r-eJD;5XDaXA
      z!?iYhneDv}akA~bUNMC)9nyOZF_Ets(r1T?0RC#lUNHpkDxV$AXMRsr%psQ4`|27|
      z#khZy@slO^whgVOKi~tN^{@ng%f;;mj-Tr|0)50#9^&+{iU9_$q#a!HZh((2;iC3q
      z9?Pd+amD@#Lj}yur|AeG-r!wi-l*vlA?P~;MhMfH8y&tCFWkBD!jls(xF#??eQ~{}
      zJCr9v28Rn@Hx7$XzUea^GG2JQVZ{Jnd8oiFu<Nn&tcEZ0GFAeM?6Gv)9}f5bH0ghZ
      zy8QK-hT!_v^zrujTn5eHzPy*^nfa1|yl(JiHsoi=8`Nz((IC?w?ifVe`nq~QHS-nk
      z9X^sw@9v$OahPLAv#H_;r#OfeY!2tJA)Jc>v5J*n&uWjb!W%JJL@`A)V5(^1x^FG!
      zh!`pvo-5YlbkU5kh~r$5KuolvMQlKv;a1Uxlt^KdXvalj6D}5;*?G3$O>rUqBEE-r
      z#l`rW_yIl=m*bz}3VbGh!cKD)39*el;u^{q*Rtbmqru`jDiYVzC~hZ+8)=HTiJhpO
      zW{I2WRB<jX5I<Lj{jhuo;bO`*Y%Z~E!{&m^Hf)-iHf#!}4V%k;+pzg^U>WvQ%Ev#H
      zVbA6A;(b+AoN1f52j?<13u@&H><7xQQ@qzdm0@q<65)T8VPC*yi8OH^7aaTWFP_ck
      zoBu6*m)pPrX)s3cjcx-MKSR09k!CO7az4+L7y0%LZI`?ZUCxT_43x`adbZRtgF7)u
      z4W3i3*KZ43FC#qecUrXvgB&nt*eDK#GQk?(Ze@u6xcNEcWM%t>p5Aox)&uw=d+XYm
      zne9?DSu0Z4F2N=#?u1|5g%M&8%Ea9$7x%E$+{>17KU>OvtP%&<QhL}r9>isge~tJh
      zy2O#3%j2$0adCC#^7v&&HXSS*`3ki+XxIOeF&Pj#kIV{M^|;>1<=7>%Q<AOt^<q<R
      z)El{y*JlMxN8?OW*Xz}?T`<*Y<&PYcw~vFxYAPEh_?n~2x?))zI0HNEVOO`x+bk;U
      zVpD9oRJ7R^?$CNmZtneFP|?Y~AYd5>IEW|V5>LS`j>0E?i$d`<O2r@8&z{G0@d7Hu
      zi#S!hf?Dw^&g0-06K^6Z-o}OE9c&eU#TDW`Y!mOJlh@rYKES==LnXmAY>zA(TY^5^
      zs>)qr@3=*k!1AT<3VfyfU<wkd$kj2Ov7c0akl^vJl^<M)6Kv>G9{Yw{7q+n#Tab`{
      zy0x$KTe&CS8YTq~;#e?vkZ=H9+z9@3{+#@|`SZ#*k?R;R<V02;ljP-D{0qAHH>aP^
      z*m^$45b*_ui~pcle93b88e_ya7|(a|i5jVM8rF{XIf?SAz~<&;ZsnX*OV<whW}s!?
      z2BavUd2&ePWk~pGkWJ!tHZb`*G%XnDp~16Da?*i*7_>Z?c_RthSNA}DaiG!E50bez
      zv)5Spc&82HJMVB9S`qx(2n=GlPz&IAtr#b2C78mn<Yk(*U*-X4nhH>)pm&wpoP5~#
      zl-de$JPlK7Bl${i^E}x;w!9Q{^*`{KoC7;D2QC_Lab5q#69-&81TWZ&!|F8z7#{c;
      z@~kiccd&;>?6DjpOD|u(s%SG<8Wk*wnK>>$Jah8l>g7(d^Gt@lDK>lZT7L9MfBvd-
      z_;aTDlYbGjSD(te$~~mR%6FNgfl1~4Y1HNLVq|zRI4M}Xyqux7)TUMxP|T>SgOZw}
      ztk+NKf83SG)6QY#pPREqQD%#x%ofjQwy3ZL>av*a&udc-Ay<ZwD@};+^J!NI*^Vhs
      z{)P2^_AOs%&5@pw(e7~r({K(<<NN_>j2xJTV_+IT9EgVeKL<9ANwy8>g;ct?-`XGN
      ztkvzc9vVgVA1*{S+igCRD>U_o+%x2Bk^j5)Ls5B=!*mA&rn|m8EWvUWy+cj~J6gA+
      zz;r425RDGGtmhxStM_-NQ?CA{Cd<dWJ3M51Onn!8jOr;j-Cez($bp^maqI^5a^#hF
      zDleJdG@6&ucJ+Rug}91aA^T<?XQ%Rzk%1*GGtc5n0;Un3P-1%P)#TI}zHEmf4@31+
      zm!zR0-;$0z;zH4DdKw+gUA;R^FLNPZy_ox@9qwNFjJ2z`G8=_|fKnDEv#i|;kG2~=
      z?KTco-8fFW13~RhOw)dWQ+ez(?H-(|?d3xCKAfc;zzS_Y)@waTY6sD-J%9_e2XT>h
      z7#DMUjdlb#X%Az!_G|QLkKkeLQ9P|ZhPSlG@e$8`r9DNY-A8Wi9vZCuPO0%G^?X}s
      z|7D6H8fU4Qp)wjT&7Ps43WX9nQH4S$`DlWAnD&qtZ>hZHBPUH%*~*U@))Nnx-jC5F
      z1%<I+1z8W*YL}`Y>&5kKJQ6PtyRm>KbA@K$X^f;PSkJlCLnqNx+Z<nJK4i#V65vwf
      zv|x#RED!0XzMYG7olC1}rp_1JNv6(M-7-^`)z<Oc@Yo1$@;bq`=r=mS_X@waQ@w0+
      zU0&SPdoaf{W=N~mUV=k=h1KyY25YZjxb`}$<j)wby}=peO-$9^!YSI@teU@IzV;4k
      q82?P|y_~GF#Qr0pgwk1MiJesh-@2@~8XsnIiLgOsm2$}eP5WO8CjM*y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/BreakIterator.class b/libjava/classpath/lib/java/text/BreakIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c49e8f40fc7c5198ebf257ccc2c8474bfc2b8480
      GIT binary patch
      literal 3564
      zcwUuPS#uOs6#i~9Nhd>xKp+7eS;9IqA&H866eIyOG6W%z$RgTII>|t1dhF?8bHN3~
      zjUAOmO4PD^;Q@RIDJd0wvC1lcflK-7FL0|8zk7Q!(=(GnO=bFa-+S)&edpYBPS1Sz
      z_vc>%xDyvOR0z!2W$ZE9U2~t?-szae?rzs~4A*uv1O%q2MaxJIwXff~%Z$4kss*Oy
      zXS*yrX&O5%Qy{Qvea~tE(JfHdWhc|Fk#zeED`QsP<exzGLy2U<T`o`=j`Y#I%N{U;
      zs6@SvNzeuAV~M2MlNs4*I-5MihL{~UtUkj@$mi^2z#UGc1!l#{=<X1xic3`j)5DQi
      zu>&2Fa)yrSXw)!EU}2FjJ+|AMNu_MZH3wGji<>DoVJ8K&c*b$eq^s1^!>YlAljc+H
      zplw<9-b8YU%EH}pY1)wKuH0iJEU8y{U{Y^mII_(XlW`MPyEosVVg7iKebcpQ#zGy7
      zuvnmCbFU0U$xa5^BG&|%0+XnqTOB~0QCJc71)<k<sI{YXSEOt_Yp_(Hc_^7_lNN23
      zvTyUYbteaHXT*>(3Ze~nXlSRa{*W5!bj&seOh;$N-NiGZw%+||*BtS!@i+^P%D2Sx
      zx*PXuxJO`SUi3yYZD*Xg*_lZWSf-Bqa6iw2(B6bV|9^723}qx%j!CI`P)7$I^7uSx
      zfyEQ>MM|fFSdK?DtYEemQR`TVPUaco*<*~*gGK*>sCFs9RXSFqk;k4i_l_UChDQbF
      z=iOMBNT-P~?oBSUH85l66``^Q*4XsdXSKG#%42a8>fn7=>k6$b%N#PSmGQWlPWx&p
      z;O<YExuo{{$LeBwF|u(bL&c%ek>zt+`6FQ^>=u|>5*jbpx`qwMh%=Y-1rZ9DPxc^7
      zZ;Ott*d`F<_EqMfk+ED~FY)J35CTu>=)(?y*6{x;s%NM<FD^ST0e9+%AgW=2&52dl
      zo`=Yp7hnYuM?KrCSD1_j%c-8yWjh^rTH@}~F^nBGVB65uTCUOaOy(9c$@L<V5lJF@
      zTQA$7NlZUBt2-sJ8K^0_^&I{lfdz&5<2FSc8OfoMV-t-is^FkXg4N;q*>5`oel5@I
      zI3TsWNI%tDPRC0ne#-SC4F{!$U?SZqE5LB}dwqSYL_VxzHs&xTQ#MmFz$~N4KvHR~
      zO*v-V9AFkp%eQnKK}g;m)o~0Vff}ywN!XdRoIIi9HaV%K$6allsM`B9oMG$rg-tC?
      zkTs|Au6&E0lHg}`oWwa+V)&N9lkZ@S9mC@f_NtOvlTh#7f{>`TA800WB|laC%z}m*
      zj<x(6QGp<4A|PMkoT=l?GLC{{RrDGrUsWbkcnxv{*3)zYrt(hrjL?8-9EE%#X8}61
      z05t??y3#MMsHXsJXJ)Y`Qwmt5RoISd?C{~$czFEk!T_uB_Uy=$<9Y;hF)z!rLOBG~
      z1-?M@+GyoxSkN22k`wHayh@To^zLwuq>3a<5LPa+P_tma&^o|zX+ulP7+S}$tfw_P
      ziU-zxifX#BbPNyow2q?d2849U`&T=rQ1BWwVLle%F*Pp6<7$i`mesNx^}HVA({Va{
      zjFCS|_7mKBih(;r>$7z891$*HAubZ(18V$`2p?17CrbNr?xa5S@DQNxo}e8ImdZD9
      zu7W5{*}EVaHlmj+A$q$Bn|W8uKG&c1c8LlcppD_lF>KEVty(QyRfO`q<)$6kO`AC*
      z=NcQHj*h{IwS0?7*Ad@x4Q8w*57D5a@)dLJ2IKxUef&njHF=vcNY!NK`3!MQX5nxd
      zU5R2{-}`h8PoQhJPuB=_*`>OEAoGvZ^%J>&{uf=TGP<5E*7d7TS84)XX`ikPb?q(H
      z^&6Rgr>;N9{pYQ8u@v@UzoI%&M&ENq`b3>i-+>AAz2MV#kosOO(I-OC#O;_QW@DO|
      zbIZ61yuzyUC^j(flvU_Fssfjzp}@c>4uvkshsw)23RS9NDa*W-zfal<;JyAL?_QHl
      zi|!xEc7)e+qwEX<Z*cTzw`DyGMMI>kxWra8iZ}atc{}vc&A&Jv&y#!pZAPu=!(`Eq
      zCb7jQAe0jj$_Y3oiAi;m)$0+iCWf@Gi(bd+EiKpZ&M4k1>YZXYe<fKy=(-$q9nQ0C
      OB{Vy~g1(^kzW)yllMjLb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/CharacterIterator.class b/libjava/classpath/lib/java/text/CharacterIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..862cfd47702435e36d8368a2226787a6bcceb71f
      GIT binary patch
      literal 488
      zcwS{t!A`<J5Pb{9B8Z|Oil_%qaFKZSq!p7UMh+(4monCpbxW2l;oCg;0e+M?Z8nhT
      zVe+zXX5X86-#?#U0B&&Uqa@Iq$)y}xTG?UnE{%*VnUG7`)cEiOn#F*UIv$QEGm5N_
      z9f8)C4OFU0P811v598;NfCvN{L8=#4YWpfxMrB~V7Vx9Y7}8dt+#m3er`cDaIybaT
      z(rh76c}vWKDNo59sxjG6Pia;B2$@)H2(KUJ8nw|XqPb1j&c}(s)poN`DT<}KGjaC8
      zuA4#Lj&<)TPPEgi^LwPH?p2BMlLXrR!PDRCZ`tuB%}hj(Nq%zYUuxI+7mkQm=BjXY
      z;iJm9%ej|OLycptV-I<}4Tt*<4;(ff9^$CL7TT<E%nBZ3hnZ8?={h_^kGlfrh0Db+
      D2zqRt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/ChoiceFormat.class b/libjava/classpath/lib/java/text/ChoiceFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68a81e5eb4b67ad65894d9595029e90c36dcb5d2
      GIT binary patch
      literal 5710
      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
      a5UIJg@m^fRN)qG!sJ7`;;V)X_`~L+wP4ImH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/CollationElementIterator.class b/libjava/classpath/lib/java/text/CollationElementIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c3176d8b22c05dd75733a174ea008cdae2b80a5
      GIT binary patch
      literal 5230
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/CollationKey.class b/libjava/classpath/lib/java/text/CollationKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da44773045ffcc664be4dbb31cf7c127ea39551d
      GIT binary patch
      literal 1695
      zcwTi=U2_vv7=BKYc1c(uE&V_swtz}@QwX(+U_WfriUx{av{r3z+@?Fpw%e?3Hx3;y
      zyns54j*gCZ3?q8MaA9<GhSrW3jNbYq{0aU9>vPVoNoZhp&N=US&-?Mb&-?CQ|Nj06
      zz%Z_9hzazqS|3~az`haWr#;uT0>`Ufvo|#)1k&owwW{U(+smtVDbUa<(9_gTd+Q%s
      zzP0Sy0tZUU-ScTNyFaMsj|%9X@06XY<<9d#pnJ9%XfE)bYMD0iHG5Mawp0-49CNBp
      zFd>l3J}F+i_fo-F5J*gWD|QNTbm=&RZidVn3rP@_4h;vS)Tbkfl$4I?I0#+f$gESf
      z->R)I+x~o5PWP-=vfKsBcjP@%CW4ByL9aGEA!)>)EGbItc~9U(JMPHND5fxo(;7|*
      z9B$Te-3lr?&fqzMUU#Yj9ob^hD3XuTnp9ag1O%_bAv^X*HOnQK-fRmKVVg#c#T1Jh
      z(s2&wSzOr;=DeC;vO}UsMb>DiFNF(uQN!?KeGlJs7%*kXmvp?0ivkA&udo@|Q@(Gp
      zU5Tu*R7l|xUe$2<fA?D8xOru;A>GN1mR%~aM~f`QTV8#903zTVql&drku6k>D@ssP
      zIwtTM%dT);eM-ee3Ga%I44xH8h2>sxWYfA@sXs40*`_(CT(yFl&-X%mv=&Ws#K)f2
      z&52Q*V)8gw2ltp9GyY*QIb`bOi1F084&gAZj!<%`Pw?z9e?!{LZR4mpw2fZ#+&21u
      zRbJ0<?_)&Z9a_H2Xz$VceH_Iij#F!f{y2e?fRbchp(L3(rX-nLA|o$R=I?ozo-^h{
      z^gqhUZ5IRM@regGBUPD^oZ9c9tM$54zZDmmlRxbJ-Sk_jH;^7jC-*WDIz+gJ)2#3U
      z<xB8d(9Sf_&fs}U9DiKI3pmRtX=M4GRcJYG5!!oviSr!K{Rwdg9r1eZ4~XkS4@nr;
      zeW@ARLC)mbLH<s3AK`su7q6&$q6yPfE!iSfpOK{7O#eCcUl7)pO!^ga_!^h-4My>;
      zf;|`}Z@?bM7?*^dR|Ui<^CyeI=6T8nbP!taFO8&~O8K1%sD}noKp`hPa{iQB$<eTM
      z-ofP7q#`=8!p8IrgssRVKB#QnoV*p^%iP`jXCOWJ$-vFq&FaE&`H_{?+4`T@ggUGG
      zxuuffC~=Zh7ckA#T{zaDo&WX|D(T-}$!>ck=_yXwOyq3PT25cml)c))>-BvBgbEN-
      N>kYNPiK05M{s)GxMCSki
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/Collator.class b/libjava/classpath/lib/java/text/Collator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a997460fbe936bed59ddfe7a05661e4d406c12ac
      GIT binary patch
      literal 3454
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/DateFormat$Field.class b/libjava/classpath/lib/java/text/DateFormat$Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c681874a3c6e02c765127cb8c503f9e3d1e68d1
      GIT binary patch
      literal 3570
      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
      R@8Ug(S1l_1EBpqf{|7nu7lHr)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/DateFormat.class b/libjava/classpath/lib/java/text/DateFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac98f50c4d19feeb1926a3e8cc71d16e606ee863
      GIT binary patch
      literal 8501
      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
      O?l!nYPVhSl?|%bv0tadU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/DateFormatSymbols.class b/libjava/classpath/lib/java/text/DateFormatSymbols.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72c3fdfa4da6f94814c4e610a1e8b522c352c692
      GIT binary patch
      literal 5265
      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
      WU&p=T-)P~O*LO`$-**-Id;bN^%xQ}N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/DecimalFormat.class b/libjava/classpath/lib/java/text/DecimalFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41efb165bfa64591f7d8588aab06b9e289f7dabb
      GIT binary patch
      literal 23996
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/DecimalFormatSymbols.class b/libjava/classpath/lib/java/text/DecimalFormatSymbols.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a88226feba5cd0841a30a7a9bd0971082f030e36
      GIT binary patch
      literal 6530
      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
      P$Ts57@{oU#Tz~y9AhQ)E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/FieldPosition.class b/libjava/classpath/lib/java/text/FieldPosition.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c8e962dae1b191af87699d475ebcce989415fbb
      GIT binary patch
      literal 2447
      zcwTi>-%}e^6#i~Pvgxw?XxdU}XlVf<KWMS7+Dd>5SQMntmWtAfuptX94GAWjPRD1T
      z97kX68>3Tw;X!9?=(HnNovAa9<EV9fufP5b$8+v3n-G$R-97i*bH4MP@1DCq{`X)T
      zz-g>0@CY1U)o<y&mT}wa9W{+q@^U6;T4pA#phlokZl?6~a_>}P)mXFy0!th<ZzcuA
      zn1C-~ESqTouaPECgT1L+R@O}9EkmGrq69yaUDK^jStc&v?>Ez?H7F1YR||^F2-J*Z
      zl7<Qb*HDW_f!3<wV;tWwVWy4A{93}uUegmP;t-t3Eb6HlJ!|sXan@KXW=^1GqDucn
      z&?mc5;l*Jt-ArAEBQyJm$`K9wpt9Af!3RIVg=O);vSCRW8B6-?-*F5TH8~QFR9B^r
      z5{6mRv2@b7%_TZDC|sg0SGprmOOY4TNjEO6A;599xuTy`Hr~nWDeCl)BU{O7#v|9c
      zyOSDDq1PrqlG1Y&d|-#7jF!&0N;7j-!5M+3%Iq~n5u?U4iB%STPc;G0(mIt{(Q_;I
      zp`ONz8qT4O^kXOOS($0lDZMOka2EyJ8&@#6GqNS_;k=nj8d()DVOYTs%|ID<4I}6m
      zP^iI4eT@oV#48F$cMZ4=rQuc3u_?FoRNk0c66mTV+g@TS2JjkB$wZmb&VFPjfJwr=
      zA!llU!!K*Nf~#~w`ue)OJtr&W?QuEH#`#KI({K!J3^v1HZ}8<9tDX|TER9Exdp!pj
      z<A#RgIKdcmjPZ6EkE$&fK^FwHo`gG@5;dWr9c=+nTWXKtOrzXc($K{_blPH$%dTpO
      z^XaJ5nS6H97&Yac-E|pHadDiWY%l$~YT)5ZN0x_ghWrMcFI`LeY7|*3-*vRQKv^F8
      zD$$r{3-w>h!2R@ArTYq{UPX|sCOZrVa1fBzAuweIYjnV7DTYZjM7Pisjom{_wDlfB
      zMbIGe1Lo*GPiz)Y4_$&Ex6@qk1_zui?#3g_9CgZ!(wfPrvP@`Kg?fo(QiYpTAyq<M
      zb<tIc$<%2;9L!$127J-45ZZL%{L-11Fq$3UzzCj<3dt>BlqJ7gF}b~B<&N^o?^R5G
      z#+72wk;2b1bd;aohm`YCi3EOE0>2y%F5Fd-NOw7rk1G<1R3_40PUI8H`Lqg=fJ21-
      zj}F#P&KM=4vCrVE*^E6#eXM|<C_Q)K^KQl-L0sa4>Y--?ah9FTmb++X^D!bjo&uh|
      zgAglAtBwsca&KgIZ!oa8*yS1O4cH={_eq)u#PcDV@iq0gjWE8!Sv*1?zNJ6lcbLZa
      zG`HI&lbdk+N#Hp=PkkJv-{=eE<H<eeO8mZ~QeU9Iu`RU1EiCL<9j?{wS}i|7@qSK&
      zE?YUj&|fl|?W7#=Gp&9h?!OY_--yi<bmDia`~>ImM~UKn4nq(5`y9pT&*Jd<fV$w5
      z9e;>{S(dqg3-|Hz7RG~@3Ya3#bOEmi-?Z)P1-uoUw{4yMi?(gBy-aoiX7LsrBRzqq
      gWdBL3{6#bKH!1WFhVU=l<fkQbHSW&UO_`ngA8csGb^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/Format$Field.class b/libjava/classpath/lib/java/text/Format$Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72c598b2fb9ef45ee71db1a879921bd16caac281
      GIT binary patch
      literal 492
      zcwTK!-AV#M7(KJDZmpVTX;xQ(7yUp>cYz_qhF~q-Sl*91=)^h;v$N5=^b}nMK|Me(
      z(8C1L=NJXm#e6^KJLfy|y?#8s064<72Zy0?!*6+D#GMJciJo!O>PiuhJ-7_P&+OC~
      zEr*#A<8aC~9~q&0^tefM>wCsfO@)>`9tfSvL|ymJ7}z;OIZRY)xH1DCXCj|_dw)J|
      zSMC`KCsIk%VW{s$)-2{~67*@GnzZ)@3~rc=g^wIoO7Kx+s6<kU%WO6j`ic)@@~lP4
      zh%7l7Q~w3JW-3#LX7vAgZDJ@sv+6&-41Pb!^hk8&d{uEFJe>0wN<F274r89CBK5FI
      zH~+R^$XgTafYHxEv57nils)PkEK%jo&!Jo*q(hiPxv+omi1LHwR4Douy&!FbDpidI
      a3#+IBwpznF?Ql@Hng%wkidn}kEPnzv-E%<z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/Format.class b/libjava/classpath/lib/java/text/Format.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dae54e1b905a7b91413d9a027bd7225bf9fcd60
      GIT binary patch
      literal 2009
      zcwTi??Q$Ab7=8{cfe<VyZ9b~erfFJ%B*mB-tJKy66T6krC@B$R)ddb@Gn-vzKb(v=
      zppGBo1^7oVz={3{Gveq^XS@P$!E12F@jYiL5JG;id-nZ$p7-nU*MGnM4qzEt7y*Xy
      z1MO2S<MJanvuW9fnj41lRBC8uBlD<oz^f!3VYn=%x|Jz%Th|QzGp%CqFd__>diFWP
      zGPzJt6i3>Xxb5hc`B;66fjwk+CTE$BtC?;|Gdv#p_wU~l|HP+r3?p}SQ+Mw%1e2)}
      zgOamqJc=L^F<d~LA)ePwUhobp+}`mK5_zji02;y2cSoqW`?@1^gQ;Z+qApJiH<S6n
      z9J8rDQPH(^vq2uwjiV}Wx|Dzu#&ZmFJsZ_9ctbPR?1p#9O}A?p#`6r5gR$1VdY#)*
      z%peiQEW=bEJ)Il1ZOhSxcNAAKCo;ZHsU+1@DGG)gF-+km!;>Mj&#?B9viWlWhUD4t
      z5ag0Eq>yHaxR$S@z9)xPCTLX-x@GPs#1L>Q4AbYqFpM=d+u^?XKrcGsQ)k15@iGPN
      zCABSL^cDT~shUb{ucj-Q6Lowwh79g7+#dp&KgW3(7ZLFF7_zua^W5O>hHYE6YS#FX
      zoL*Jv@5OLm=p&?;stDGoUVW+0)-~PWwJ2?4PIR0WWO4{GRcu4haqZL9?lq!m(Y#+d
      zmp_fY%^lC6QipV(BU8!2--R73x3Ae+)#bKIKh3oWCwu;SNPsn$z$>21YiFFPPmgF|
      z8>W{TT);E7q9yN&(VmW?fTF0u4#UEb8tkcizR+`ZBlAFW_P4ZVRum>w6*tb{ly>_R
      z#QQNkMk$OB80H7=se<Jey=K$0DUt3Z(askw&#v-KU0f$)KKEO~l_92@Cbx5j<~W=#
      zgpZ#tdS90Fa@&ZQd@I)|#~=a-Axx)fj6!5RMt5)kF)5?Vjh^EqS)n(hcPQP$#h<0g
      zC3;5b4eUTc376><^NlcpNqS!t^&^WbbXG|7tPEAb2*Cm~ZOoKgcwsBOu-L}ca<GMK
      zCz#(|Ji&{{U4#qLwuT5eMXO7cS>L~dB2Eifr1%liF5wme^hZIL5=nZ<jMnR=J}%3W
      z%MWx8iS*i75d>ZlWKOVJSo#yQba-u5nNYsRC>`HeRoYlCC*GV;T3G*MsYh{+fPv4c
      zeqT_~FNwrg1o$=Gmfzq8z9p#dB<<TiRG0P&Hn2%lMv=zbctFv{aUCk95+wgAJj6Rt
      z6hZtBSu^CZ)#*l#B8kGs+bERN3n$oStcCY_ltyG9ew472zG)XW-l-N7!`BJ8-f3@y
      s+Piza%Z}xjs7?7)AATaqF-8BSuiKGM<N)^M^FurV<S2bazfUmwKPS`Jng9R*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/MessageFormat$Field.class b/libjava/classpath/lib/java/text/MessageFormat$Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a020190401dcdfe3a5b32941fe9416336a64bb83
      GIT binary patch
      literal 1176
      zcwT)|TTc@~6#k|Zwv^>!<svFjE^1pYD=OX!C?Yi&z=TT^d>h)aEZOej?v{}FON?*&
      zq9z(I300fOyFbc!X1XG@#FxpOIp6ut`OZ1>>-UeJ046b~A;i$P!}qx1i+$f%7M{lo
      zBICG4?vG?lVdXW18M^;Lj{6uoJmH$$$_m#r9eZQ(Ap?8N&^qtfp3iMR%dL`VEWVx@
      zdyzSO&k&hgeYCN>u(HlDu=L-&X#!8@EYmjqS%!v0GRqL2ck&{F4svm~P$~-BkAfkl
      z<19KEnx+GESE9;oal2rw`L1af(#dQyLA!NC(ZbNaWZGh-RNNBoI^VJckt{hm62eIi
      z+3GQZ^9+P<K#X$x+onhAJPEC1XJ~N+&#wy4vG$0qGm$(7da|`6az25g3;Q{->r<;d
      z4Z{rm3S&CPqP@p0GhYQBfuy)gIxgc1gH{m!3NO}i2L(it#HfZ8jilD6V+`Ze9r3)x
      zEw83KL21dS8VrV>+Smsr)5;4sf=Py9+lhOn+;;rLwBpa?wBpn|OXTBGOduwY8#<<N
      zld|&NU18IvjGs1>x~CvtT2kEBaYrhT_)gUs#gLptbj>NbIgv5d*iIBPA^8~eMcWqc
      zyv03FP^0ht6;{7%42^2rFi5R#pidFPIW(e)EKOMv^vaE)dzkJzTFKL<K958Ltrf7%
      zSbG^~zM|{13h9Adnh>3DDBu+lLRlf&(!b$TWYKOxOT~K2xKJDTmMVCs0`)2k7lRsT
      z(F2NELP~5?YV;I_52WIwV(6}-0tR{OLqBnZF@QMv1{E)(-bz+ZaWbQkI>5*mbkTW$
      z#7k&&|5U-yW(5<Qv8!cVODWg&1KcX(?%`4THr1GK=)iX>wQ@{^5tI-@TAkCFQRUL7
      JA~E;T{0D3z0G$8;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class b/libjava/classpath/lib/java/text/MessageFormat$MessageFormatElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30579ea40bcaecfc5a62626ab993588ebf145e03
      GIT binary patch
      literal 2477
      zcwUuN+jA3D82_Cl&2GceLb%r=6^k|@v{VJLp&<4G!Gv2O&~n`-r|Fi>Cf(gYgK`l>
      z6m=LcqXYjypLOIiz^G3$<D)M=JHGe__~MM?_?@#!w{eOyJS6AK?|k3yyPhvU|MT#B
      z0KNE7L4YAKrJvJ#Tt4IWWVqw#1wLG|i@Mv{@N3BAMQ*tYLJUi!g{fPGp8exfJm)er
      z>vmyZr8v%Q29~1V4tG66hG^RN;9*II@I>u)ktYn8y5le`P5ayuBGr&vE%P}Vc{SqN
      zhE<@uCdaLsbg8(uZkWP*c)MX4?hb}vS1e1$1EoBVAc*A}mS8DEYud257wTbs+?2$n
      zoNi`y+YrBNV91>`D4y>0vs5SPB`*1hV?~!|U2zSw#{-kGY%>_zHE39@;(3bKlCeb4
      zf%OVrXsE82riK^MNs4^BqMMFSJFfxB*qDNs8f?83g|jXV5iAl?Ttf>MN030bf=vu7
      z{p37#FB=U#*i4-%a5rT+u5RThnZ!cLq!%Vg3TLlqXojldH3l_Tv2AYUs>1bF4X+FO
      zWkf$v!|QHTyg|Jzb2~@X6v{~r+l6wJln;2YuS-o<49n#OQN9G;)UZqFE+t(rn!2jE
      z9ndg{A%@k|po~6a6f4DHThF;h$r>~YhD(JFb){lip}Skd9?%rGlJ0K1R4G#zjyOCo
      zRK{Xi1#dH~@>3t=IiskXUhWa>MMlFu>}SyQa@njN&|R0?)_)pT8{t@1#X&J{Mv*ca
      zAt|rBT)`2B7QfzugsC_x=6$kcyDCO$9*R6~REjE&laX1n3Mx*LG*L0l2u?#+aE4*|
      zyeNsI-rsTLC_AdtVRGyDcw<-U|C{V{B!v&IVWQ3?uIfw*CK=j%vk{|MHo0#cK>-;R
      zXDNx?WXTW)MTYf$aZ;wq3%a?>E>y(38k))RvgnkG5<`c4^Bp$52gBz14q6}`9!<wY
      zjo!qxc<%cZI1N)iAl2$Y*qEj@VU}`p%VmDv3;}C`=H+QKPWO4bUo*cv^9O+xg6DLT
      z`Y7W~IdgNs#^}ls#_j2+7m4h9yPj?Ri0P%CGeky86?!bghTLxry4`}2Ml)qu+?Fer
      zI|@E%80ZEAB3#HBHj}F${f{X0X+ju~vMSH!+DUsyp0w=b*-|@O<rzdk>}2AJ(ytym
      znc#}w$Fgro2w(+$hb7pLm6Ap(U=>zNnl)(ii~}DdL^xPA{vDosg77Sx7E*NWJ*>Np
      z8}aCdyLg$9*b}tGH$K3|yXc)|8G%G!l{ymMBH^tP-sZ!75?&|aehIe`x-*jq-osns
      zYdD?|D)?Jy?<A2_dw;~<OhVY)LwXj!$#@Qs^&PZI`H*D#Ivzbtu{HGvcX;uIXOWVg
      zvhrRH_s?RR1de$?69F=p=$HqD2v{kB6CMyGpeeLt&f{(J*iMn1l0j-x&Xc_MHuidv
      z7WzVKLSC%KEVf9?DQOv-U%SPRV2(zu`zZeqe*}9}p!eYtmEW*$X@LSqsP{*yX`^Vz
      zary&0fo_~cA5LM27RN!HAw<U{awsBCFOlOs?UKuw!VR3oEqcLsP$I5rJb;6TaPb%w
      z{6t#6U<SXUir;Yof8ZVbiFffAF0v+EVi8<n8m_X{xW+nhoo&Jm){Bo=A8xW?e98{t
      z7CVN|*lB#hI6h|vzGO4_N)Fc^G0Ci2A1;zAI7j1EqyalmJ_8h$N`5bp^bntr=P*f+
      yag+RCM38(m;}T^MS^}EtE48WKKxd#f)$c7l)dBgrD!;GceTZixp2Br1MccpQrf*#U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/MessageFormat.class b/libjava/classpath/lib/java/text/MessageFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96041451fe5e78f51ae19af70bee3ad9de1deda5
      GIT binary patch
      literal 11574
      zcwVhqd3;p$wf~+wGr5_`og{<|VMqc2M6!Y`raC|{1kh*_kSzumm?V>Aa558TCTuoU
      z1hkZDTX&EuSZkh&iWVl+RMalfR;}%8pM6$qtyWvxx;(qQF0ZEN+<Rxs!qd;Ee`N0O
      z{+4sj?=0VQ&V?U*{KP2$^XOYD6hgrk?^f^JsBe38Zlf;}@pk%FhQi(6s0u3~H@Rrc
      z@>IkZ_Im>xeBp>c6kK1woIn>6oOPjKB<c-DH+TcRK3mK0?x@LolKz9B_IRUFUpPp}
      zYtX3$yur@7YolR*uyYY1BM@ry27HOt-l#t?w?Uud)l6T&*X;{NBZRq^HjE?b8EJ1T
      zj1xL(pSRr?CO9H(-k`yeFsF3181<v3mi2aY_`-|I>Iv4mP`l3o7YbBNimN1LtA@#N
      z>)e8!(Jq3ew5;BNLKLegB1{^avWBUcMzBYG(FXIJwY0u$gYcQIVFqS0#kMYQxHf96
      z)CtL18qUOQUh($y_=4?(!qU33@nk3DH28zQrrz#WUwECj)ljl%c7vBK$nWN)rAO>)
      z^9S2~+u4|W<&0LH1Yz>{#4X)k-kot(Zz$?xNoXVgweepaVS?y8%^GaJPowraUGMBQ
      z-Gr>xu(!>(somEjN^&Gg6V`khnknwJ!PgcIrOlWQS5~iruU7eK9L)g_mT0KKQr5;|
      zf6yPTA<QfNbj~V<uSK1TWpM{f5mdu+tl+DA+uIZBbfsQ>RqGbss1qTauVEq17H_H7
      za3L<@Ac}_K&Yxd8+Fceo(1=wkn%Hp3wfbPx*C~Fw8W%H(9&b3}s~^SLq)=9GXDzJN
      zunv{%)ZTEX;dLrD5N4zh4Fr6h-au`*vsbRMVtX4~l~Kfj^|(ZI*fI|N4YK1>4VU3^
      zrY}ma^Y%vAcPmqOuj>kjwuw(KDjRcFgxsWIGqS|HcJ%mUqE$niOxPmP9RXh^nCKae
      z{z!!Rmdx&(UE+<FaHy4pI!d|?%awHKrW0Lr>`y?RQ1NTnB2?69*y|7Y!r~PH4c!Qu
      zL2ja4{B~(xw?Rb@VOmmTLwlx+#FfM{`vQW5sYq$MvV>y?lb`eH+>Vb0J2;A`H~c@m
      zWvAaOs!7>7o;7*1#sC%AvD!d>J8SA{4Gv_9SN4gWKc~aw23fgQL$0jUqEB9TYtY~n
      z<?hvR4$hT@8#H`gAl4f3@AS#0FKEa{jx2pq!;QF!9keafvxEIJ#E4sZ=~%HLChzjI
      z`rPB`h~;(!ecM*Y^OYm&>+V@*BB8A<5DNN6MvzI}0Sj)|a0_mA;7;7GB8RcScU7-9
      z5E&;_Hww@n(r^F=9k?5ZRNRvm`Eh@-gj%<xXHJs>LFw+`%NWkME>y?4!rR7z*Yls3
      zeS)xPEXFC9uZ?nawe~W6k2<_a#r=edV<=Ju=k!^f!QQz^LWcTA5pkd&ePYRnG#tgl
      zglt1tftGO48(<TUWvbHyxWUlx3$(8eMf|$EHGCpz7M&(h3S#w|bw*BNyvZ95dv~yJ
      z`4cLg{Rw%o`8&)cb?z8=HkN~qh0BCXRK(J1w6v=`Z~`YKp171yBCY(>(Ub1r>6#*3
      z@o&-iX;rD0Cj2hJ{*)9fPmh4<IH-?DMEvI4a<E12_gxL&li<(n^hI?kWb#=J&*A%=
      zu;P;mUnWc`O?7e;{`5_p0G`K-DqbKIkB5``Mh!p2OU$x%&H3vaS2V3-a2^*}4a#!a
      z0+H-LHT*=(;bhQX=Iita>!qwx@n3N(rrp;c-~u%hKjXUTY6pIbOXTP0a`#sWMO^lc
      zp(FjwqD=gP5B16ZU&{VB2vwg@$p!&Asi*C?H2fNG8)+(DS>=t=pq@N`qv3J9Eu(ie
      z{0_h8>dbKSx_~#ru`?lsn?A){-opnf-siX)v83Tc9AuF7N9y&)p^bCzN6fi79OBGt
      zkS%GGohts6R(2a1%7MS&uPXjGUSjLArY0{9f5YEdLUxfjhomE><==*}2{6|EAA?qM
      z|8j4X8-b5G%VU@`LGqL=m`sU?o2ndUy3XJ2OERt~tv@~IBn@#Uva(UhHX?Gy#fn7a
      zoFG-BOmV<0Hs^|9yWxK1NK;c?SIFOHa^u`Z8rzkegv-ZZ_U{7+!81J{1o($0XxJeU
      zPBc-x>RTd*OT*W2pGpPsQdC#g1>Q(kqqoOFljL|mP0^@O5J4;(zoFEyCwT`=)o2=(
      zNK@0xetgd9FEoZe6B)gqW{3&64=YbC=1-S2rA+OoSsI;5+@v|VUQg`i;Fz51dgh%L
      z)l1JuWvExFJk7}sIfP!Nh*3o-9V5KQpeU72PN+A^_urIET;!M9l<Oa^)>w1BK|bdX
      z82#VuPk23s2qP?`QV?0VN90R(G22b?l*uK-7!pbQU^)l04(S)GHBzg!gI5>?I^)oz
      z*Gpxot$w05qmE=nlD=Z^OcvOQ`fS991d-Eh<Y}2k=fTZ&7cG;@txrZPH9DV`8lo)s
      zb$ELNQsEQ#P&M*-WA^ElpQz-yP}Ex`!g=GK(1l+uyOJ?8MpkxE6RlQhRa*K_JEqaa
      z@yuujfs58^w2szGqa5{yqmgF6bj_2-YLvMKWe&|6T@ue%E5hMW*rZfT8|CVk@`Xwb
      zC$-b%8hPl7R12lbtJ3BXC1bpf;iIh@wNbliDu1_M3~gmH%UK2q+$QSOs7nONj3jPD
      zv_+$fs6nMbT5K#2^|IqS=t>HTj3FVlT!PO+S7{U`rk$l*!H|rw^i$blEHrRYuSQ#G
      z8%L4;on%$Vcv`KO%{w&ONmolw?QM;iz4s*1;~3guRrhK1Ik~&acVEjrj?7)F(Js1<
      zTPZP&(XYw3pfskYc=h6U_DHBV+~#Ad0)C+pjZXR%nN!#o>D9YQ+gABt$E9OiN8)?W
      zs3ajLI^qGE5ikv?T)Ld!_=+9fQDdO<r7e0RwVm<D{G=2fJAlUWB0idEBqJ)_#xjk#
      zMPfOV?qFYR3-t!tgR`S0y2VQjZHq%4(CDCqhqE)yv*}hkBwq8?@eIhiRC;=JdyNJg
      zS<TvNem~=4f%VQUW4vr~L{e}p(TAp=&!n%jX_`XvSs~Qh*%dE!3|x#jsGlBC<-=)q
      zQnp5Kv`eE0=^^R!{XsJ(>y3Uj!O#-$1?4x?#!^K?i9XhyMAv0I;@x_^VH)#WO{09v
      zo1Bn-)HbI#{oNfIkEBFxOryt%`&q|Y-6dE0^-qs!W%C@l96NV?Fz5^G^`NB4{IR}L
      z@NM-11Jk*5umG@O3jbw5>M%e-CjU8*rH?f@^=CG6^k=R<U&!kdkjEz`0(2%*$>7=R
      z%45i{skFo}#ZqnUN3gswhLUQV%X$D)T(;cVhhf(j)>OJ|F`Uudj|+_HnT6KP#rLA9
      zoS%F|rgF_adx-im-8^lT)A{^z^<iZ6BQLq9u=vREErmyQ8B6)MNhIS&$A%%6^;y2f
      zb1eH0P{18a5qBdq@e<1LV=UmRy%8^C9e#$5cm-a(hEBYWAbyFf@GETRbJyZ+-V1IE
      z^;@D`*MW>GP{}%wQ5EJeXB+x3m**_ZuNP-w9<0pKi}}pQ#&Rsg*{03{yeE@S9ul2Z
      zTXm&bt8JEQzSeF-Z>lTf0CHWb+`L0y*lfI<!CG=zN2yCqsOubKAFGQGRqzX|%f83P
      zD^vNU?=Z6W*oIxUgUIPekxMPsl{qm<q0nVLGTfJ<%?`Nv_dUM<`+WBg*c(1%`+tOd
      z{E2<xFDSuZF`L_iDtwH^7{&!eSVaoflMR<q23kplpUdbF*|C+f@Hx`3i*j%S<>Cu8
      z5no|i2g#*td5xi$gq9B_w0y|avW%)(qvCb9>-x5`L^t6xJhHJ|`*qD{uw+|x&8w{W
      zb8xPy`NO>1&NPMw;c1}(EcV!{-0Vi@>6Xag>z5Z+=2o7>%EfM5WegXbM8gTJ>Bkh0
      zI*9cx<pXH;WV$omtgVgB?#!nOT^aXcg>JLl%EMSBR!Jjp0$1pJrYH6k7<>9s_jvU^
      zPGe8sJ#Y%MymsdHlp)hebR;%+xovK13|F#^2s2nK^AIv^bp?AIs2C2Kid-teB$~;n
      zeI{mbRXmR>uz;$tgyvuc&1E|+z$J7x+Nc@<Iv1a%MQoGB_%hYvFfGG_RELLYC63ei
      zc#`VzUAjoO(Pf4P6E+%3*k~wWqalu;u#PW7I*M4?3g1EmQMS<}9MkQV!Paqcq-<py
      zEn!;QINmau4mUD}weTYEw()aqdBq9r97JKu06yDTVG(WAlpD&pW)QVJz01SkkXun)
      z>9&?1$8{&Mr>3}qZF*$*{c=&(^-scc0{isUeKG8REaBdB<QlXdHfn~GT98j0QAC$v
      z7F~`~x&mkOa|vxmJ$bQ)T6GmHG{nM}@MT>EYuSmjSZF6!;$~e1`B<u}#e!M<F3Pa-
      z`YpKCyxKb6BZ`{L9(CK(poR)Vusfc{oh)a?v4nitqDJx~leVxquhjWZGR~U(Ga20G
      z^N4E$`2=cmxR&>b0p?UZ1J2zx%h3wv)5vUgR`OpAcOAe)(G|a47sFQ%z-B#aNrwFt
      z0X&L8r6}ywi)`A;dfA35eu@kw2K9sv=HM`nFz;+$xtHe@9&`U`N)u*{S@}7Yh4^~o
      zAo|&64>XlmnntCn0X*1TmArMH?5168mFw6ldzka}I@fZ8N`mWDJfd^8F-Sd%`}wq!
      zLEso3W9jyBC;SbQ|MjLTl@5X=ijOy%oSO!5qQx?R0gtt^qRMS$P<W6XYosJ!VIACz
      z33Lkz>DCk<C^eI%j2>bBTm)d6dH)F<jNfFvSQw0)cmjh=X@Yd;rc4)`I<c2mR8|S!
      zBvZ-9pd%?)wkNJ^HyO$3Ni*K;I(Z9^kK$p2yybbOqA|gxm2Bl}VmQ_8wsJJ;A;7QC
      zSgLLPikmzcmTI+P2zlawF5CR$SW|K8h~y8o9}_B)v-3R}<jEwDy=sV4iLEMz?;M7U
      zA48Ah2lpeZiUaaTG5px29zYoz_NOg*FAw0qlLTUTCGWKuUXS5dB27PTO{~3{%KuG|
      zy&u~XukQ>otj1q{JA`S;7k5Sse>iBO<^Kp;CQk{G1@4Sz@W%tlF)-oJGB-`;{=v!B
      zW=#H5CLNVbiY(1?HMy9}HpbN`!)+fz&~1N)><6&abRdtzZFgt59aS;PY8LMrplnZ;
      zJ4>j?D94@UcCbIiDA%3EW{y!FUwo=qB1g`}DBqLW52uVPbrR+c-1ZZAN4EI}X%f?%
      z%zUgda#u4w7HSZUElJG|P*IGEIUfz7&~0^R#%MY}9Ih<=NQ}<tXKq&ER?5;)g#m;5
      z*)H~k%G9@0&0H+FL^=CT9r@>5l}V?3htnwN0gi+R84Vsn0X>XjdK4ve3^VC5RMX>F
      zOviB{#n4D6v6`MhCk=Aqe-cqT#Yz4d^wYNyqwnB5^gaBDhVUjmi$Bo!@eg{QEc629
      z(2G<+KcqA0M^r&Sp=I<_x{zMx#{Cs)rdPQuevLcTUr>}@r#|{6-9T^9E%a-;lisHL
      z=r{BT{f?fX_vk75fS#id=_UGzDg2RFKcaW(FZ4eBmHteBqkquf8KC~AWY9mAJQ`M}
      zD~fU!J*+HIY<ke$#5l&G6AwBbnL)=RGw66^1Rak!r9Q@CIz^dDbM-=`M9HPI7@0CK
      zQ*qKfPSGms<SiVd`Ha`AS?UE`SlT(SETDx<&%r2b;6@fbhZZ`Uld^+e;*2AOO_tyW
      zIZfPH%bWxfvdRTab)Oo697=u)a%3ftBa6<_!BXbp$dSdFUoJu9;rwqf*v97s+{<()
      zcoLQdePC^0!ew_wk-QX1oUYxY3>O_5{xBt5O%ha8ieXo#B43%tdYFpYN=Zt_C^N;e
      zv)?SHCCqXH=QYt98-!|TsVT%<J)d!dB7rpWex*7=&DdZPB>4_y9`@+z2gsFl7o%Du
      z80$749YJSa3Y}b&jw1i0YSLMd5MqFqCu;_WZvTa_D%E2NBLDVo5~$TdS;zR3v|@lR
      z7)j(jWGb~ONj(+k9ePng^3lvB*J3919FeEI@&vbC6$~v&qI$Mc8d$O>w!tc7E2~p<
      zpOYY-V-lB<6lkLRi>Sd&9Xs`+8uUhGj2des2V7GeqcsN^C;7R7jujg@B!6>_lwXE-
      z3{Z>5DoKTI;-oSjv~#mjlnU)RDTvMaMP+mrblvUFc$(}|YRBlZr)iVNE+enUF&be9
      zsi~!SfP5a!Qtj+V2_vrE<(w~wtFg2ljJs|vMt+aF$4PGWS!B7KZpW!3!>_p2A@s>w
      zW6dC4*}{P7oHsz-9!`86?hH-^mHPRN3RXi8i^kiVbdB_5Wh!Lm-;IJ~qU_>B(P{>D
      zyA+_+nXXLba6)kv#V)?bc8}`HtPy&y^m8dHPNKVBzaBw;3Tm(6-j6=Zkgg`DVsuS$
      znpB%>Qjq-Ppiu@>nTNXv>3R0MZOO2DnVVB6SHPxh!UV;ONlGgwEA5z}bYPy+h0iEk
      z;8Cu``APsAly0;sL4=eZgq5qXQ|ZMnWh?e8+i<h89d{`^aG$ahk0^aOu3Upt%C-2e
      zvI{@t_t%x(cuU!fca`h$cV!=jmHlK@zDQ2xM#@ueqAAL4RIc1kHOif|Tsc4&DtFN;
      z<q%!0+)W#md+2iIUTRgoMp5PKv_rX{u2vqP8<hv?Zsj3*RC$=5Qo85`<ruxJJVw7z
      z9@l;UC?gE}a@_YBdv_bY&!auGmo;FcSIugD9zDvHrc~<-Ij0y{?xDRpT4x|kjdTM;
      zsES?KL7%66jOF_|zkPvm+|HGM7wxAna%A0wO?0DRIcJRq4u`!QV~=qM@g=6`WSF(k
      zmwA*)%egr-MlUnke}yxQO^?Hyp>U-M=^41%l)&#ZF@KhLyM?{Iv0S{;-&FN1@&@VF
      zmWgybzu!4PcRiI-MjLQEz))}!xym;glAqv&G?<bdW+fnDmZ=sy7u$F1YRQF57fP~2
      zm|Fn@gI4gnfQf2IFcO-dPQe>BL0paNoJWSv3BRU$Op=WztVu}kE1b``_U1^Od;t#S
      z#T3%1S?#dde`ayT{I(8d_tMu)(g%6B+|yHWN)Lp4kuBBYM7mGPMRW2b-M_@bQLO`2
      z@%)P7`7FU63l$d~8U7$C$yE79rm(4$pTVWP!pZIDn5DeR0rGR4tGt$?RZl`X4;|H$
      zTnVOdxg<$$1{Y4ocOsJi(qziH(^NsJ^t#uH9E?8}PPn;7x@9c6a*skqMl=t<my}9x
      z)Reb5bl-ud{FcM_T@><jw(|QFeU&C8Dy2str9?J6Up(zTii<Eh?d}|D+mFUfyT{^%
      z1F5E$?zJoy(Tn4i!kWVS;7q(MPPxY$g<M`Vitg(T-RlWsN@e_IO=5O!KW4^XIByh;
      z-tx{`F_}sDcuL_~E#EOMoQN$psFn=mTU6Gq4doU)=2{$BXwh(<#ffH1HrgyX*v50a
      zEfZ4OyuFFqU^f@K;%!!(X=-mSHZTAz;n6%U*G$XGH(OJqyLd&EQYN=7PDovN*icEa
      z?(Qj)zmYVp9=?`hZr-OM&r*US9+z5Xq&Qkx!mMTV4KobN%rH<)5k;KiiGc8$#a)3|
      zD7(C<qKH%F2{8$`eZwD(C?zasG4lm*@^g~q>=b`0NH8uiJzPP)sS$;nS*AiK>6<zo
      Rh2w#^8JL3S`8f#tzW^_4?j8UD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/NumberFormat$Field.class b/libjava/classpath/lib/java/text/NumberFormat$Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc2baf09a709a460ed269a2dca6414a3a385c9cc
      GIT binary patch
      literal 2098
      zcwU86ZBHCk6n=)cU6!G|6lk#sOG}j(DW!@n0<Ewe=(fu)-C2-rtuX9fmZ7sV+nHH}
      zCYqSEU-XN9(U{c4cjG7PHi1|oezi3<Ci)Nj34T}4y*rebHcG;t=broAbDn$7x%2Sv
      z`&$6|anpwq2`$Uoiq_|{Rktsi&n_@~+_JNp+cB;)Bke<(gr*(F?mY>$4zqR5m|?b~
      zTjq55yaef@gzAuGI<98AGn$cS<x3@>o@qY!*G&n&a5SMzC~*m`k^jm%B*8x(9}OkK
      zu_!@hb}ANCq6rCg=ao=+ax^lhDpRBJ(L{_wm8szgV%1N?W7AXN=)~^5n(d==YI1Tc
      z79j~!N<1WD`3X&iBN2sQXgVHOqM;;d-#H<|R%(VJG&vI5uKus;;gq49x_eeaX=m3A
      zi3?e2=0^)9)=igXm>mG!UPc>&5-Ns0a${#PvZ0xoKGn5#Gc(jRQ%TgLG6Jabql1Dk
      z+FHt`LUaFfGGy-WBtKitStc`G?(ddS&HXP>vC=H1XEh_}u$*RVu4Qw=2^j}C;UtN3
      z^o$60N=6O$y+mcq*j7GA`S+fBSw<~qoS~X-rwcl3*#*ns+pox|<J-e@&m6N;o|v;T
      z>bd(>5=ri?ZWxUF$7CGjewr75DsS7&Os#SMxQqtwzd(K1$>NE;D5DWo97SX_;Sec_
      z=q4-nA)zf8jMPW06wRYXQ%P&#^kYf_)vy$;bYpi(r$z=AdB5gNEi2AEQF;kgHq+8^
      z=2*rGQ5rhCc9CKW%Pi#*DWI&TSdMqZ@quQiRd95xFKn)8hMq1GACq|JugZ8G*QiPv
      z=0-*Oy|Fz30n9=3VV<7Y{yiBBNYUu98+pxe_Kl7wt?P;p6#CHqvtxPPNHg1y3=NiP
      z1)Y3qDY$!(gQ74&s-eNs!2r@|<v+_ZuEU_DS}w;-dicFho7X2?Ub-P3!jxh0i~C)x
      zxEa7K?}$WKkaYSFQ$1BHPqQ<w^H$dF)^&o1mLP{sli49da~wt`U)}R*+Rc|xE}kUX
      zsph5hv8%>ml%s-HK3bK)k7oX^2siV0By6>34|ul5v$dYB^K89m4|=x2vyH+&!)KFh
      z8Ra-kUWq)A=4s9U{@8?+tUt1WXYZk1;9~+G7x;OBy9DkLxL4plf%^r1QQ!fAPYXOK
      z@Q}bG0-qCjRN#=niog>Bhij{Tq*ZAF?P{{Dfa7Yiynrq>Sy4c*n)DUWuO|Hk45-Ok
      zat)Fp-v}9Uj*_V?Kp_(-AgtcQrSC;WC+XKl3;kY0B@MYuO>absYH*#pu#67eKreDQ
      zi8nEb6%6BTD0mAOa2uC#3kkeOC*Q?9K7fw*Vc;X=@gY|63EsgSVthf2FYztD!WO>9
      zZ}=R))2XP)&i~uCtBnC#(W8g2yFRvo%R2%Cg8Cf|!d-DtF47Pett;bSWiP~8VsdUp
      zch6HI{6NEWUqomsvb+c!sU(WNG?>N=?Y$=AN;K>|>K!`A$8oHC9akcyBj4aiPXU)&
      zPSJ85Z+whOvATP!L~0?l_1QmvZeljMiFC4laRW;|>(JMc-9YZA$BK^9paDNq<Oihg
      zAr;{ly2k@_;}K5dSGvg~p)^>`>?tkB2sI=j9>g(foFne*il}*N55FnBN@~^`D*pw|
      Ch0YiN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/NumberFormat.class b/libjava/classpath/lib/java/text/NumberFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..937e291e86768b49c93a13923bd287e1df35c213
      GIT binary patch
      literal 8151
      zcwVhod3;<&9skbTO?I<=&9O<Erm4v`DQ&Vz(+di1Bef@{q)pp24JjaOlb5i#c^mgA
      ztyi_)7v5qKwIW)Ts+A+DM5v;O_kDnhc!PMMASw#@oq2EHzTJH(f9NNlWaiDx@B03Z
      z`Axp|^c{BrSSg+tfF>~S>e#{9@{DmPvwUZE;((FbmP}2=G6DDns`Gof)pCJawVH^T
      z<I6WElBN+mkT3-1_U_!f^`fnNuGrSQwQq}n=;hkxq?yjd%*?)6B5U|46#|vp_H5j|
      zx3_<%byBVh0ew7`%udG5@xin)O6vUr^%Jo}@rmrjwp45+6Hl63;^Xm5TA+sO#cN`d
      zK%ITQ*UT8>Mk=>e&E=w{`iZ#d%{gusuhrRSOSs0(;-$%0Ds9+{{bu4Y1*MHtJeJsJ
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/ParseException.class b/libjava/classpath/lib/java/text/ParseException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01bfb0af89dd6b9d883c16925146b142c316985c
      GIT binary patch
      literal 585
      zcwTi;%T7Wu6r9TADsMp$5nl@vz(k^3j2pxRBt8PNFIeyzyw~&=!`_|W;>JW{;=+YX
      zKf#YNo?8fN)J5AfJ<~Ze>D$Ni3xF-G7?@&6U+`;QRAQ)#$6Pw1GVF*eW!jbjFGE6i
      z``qdkCk=*}Bc#duEg>Dkr`0_MR$~a4ZOc*IQZ3#e2;ch6>wEgv*k%X{DQ$Vw?K(mc
      zwaVb%F)dT=GNf|#uMrI;O{-U`=35NjvVA53@E{gK2(t{yKbZN}49H{%0R$PMb<+}u
      zgUhy%P2TPchIrlXkWWr-36C$m>fCe~GWGwGm&l{zKK?b2jN9WBk)BYM@3B0&JOv9h
      z?1Aivebb$k_^G?;>S2u>d*}nEkbw_=LWV}uh`TX#%_wr1_6VU9!Y)5p*my#;kbOk_
      zUX$i%kLXsFglhEo07*itBRW!;2XvLj0*Sd*hL$V8i0oLtNT=KL6&?`3n+W^$Wm5}=
      NMuf2-!;)q#e*&#nc`pC}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/ParsePosition.class b/libjava/classpath/lib/java/text/ParsePosition.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ab897dee9cc624111e169f365bbb8c00d7fcf3b
      GIT binary patch
      literal 1546
      zcwTi=+fEZv6kVscsbwg&+(b}O6x(vCAYKco+_YMO1VaMGm?=HdA*F-UDdE{fqpv=i
      zX!rmgG|^%-G5YF98TUCe3~ecCI<wEdthLVGd;b3W@e9BRG73Blog3P=mbCbem0Z-!
      z5??e*x}_UM1wMv|3>LKFdU7GV!PhJXzh2Do9R`+WXyT@6n9m(gU|cWi)+B>3mX0se
      zYud>15WG-T1kudkjm4KwfT2Z&9|2*VRG}b1o{V1P^X1JfH=k(P0%wS3j5V#WteLtv
      zJ5HaK*GmjtnPW7k7=r8EO51vfjx+{KuA`Y^vqJH~xm0@&@Rwz+Km_fvO#Q`E@l`@J
      zvKvC$ks!6ju=3m_y1Z7(i;I(K8B3O_7uOluV)3dX+nZ8w@u2-x?y0g~$Z=EjtzX4u
      z#Oymw7qk*7Ypns2&Qu5q3@R9)Hr9ny4B-NULiO|7Ce0#=5d~Lj=4!L57{yh}+|~+Z
      zzVL#fzflX0-XVlOTodEHUe`4z9$yaPCgDDnJ2D~CZ>vaQoVu-TZSi7`VW?5v5tq{!
      zVq}<9(Sc3@c2|JiW9XrkJGLZ<X$EzWyQ7{EAhRmE&>6&i+T~{gE3M+ZXjf>-D4T11
      zPM3RFvtYx5g0g58=o9kLj}}>4ihKtt5`@_75S<oe2GEk&M^mEv8^Q_CH$=Y3f+#(s
      z@X>RMo-<T5i!kQUN}dk83~gu!q$Oxbr?|EQo|I?6pZJRKo(ma}&IJjh+6fK}!zowU
      zq@ye#RUHZnN$(2PtX2sLxIzN1kgkS8BK1OY4TYR;EF@Adq)0W!F+vnaNH=;MER%A?
      zSYiWzz&^n5-5dA~_E_|1kp8=f2!&)ucH#H!c@MSPb9hadZ%El&n!`KE+H2#vtTCLy
      zSz-&*4bG9zLw2v*h%tF4?SfHIy{hlV`>Jk)+-}g)IS4u86S2{s=vzrtaH)d$cMR`i
      tEPA7YTjZIj;7)YPwr7MrM|K4dKD$g|sre%*{e)q9A2N=*j1Oh@qyI(%6?*^x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class b/libjava/classpath/lib/java/text/RuleBasedCollator$CollationElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a46c8d25deca3fb0165c68eb7c9b786e118cee3
      GIT binary patch
      literal 925
      zcwUu~U5nE|6o%jFSJLii<E~xXwd?w^YMa(}y;c+~3WcJukzVZ8PTQeoO_McArT!hk
      z@4Zkk2qOLff0TG;QWPu*US!TQGdbtH?@50A{Q4chP3#%SFtm@vbJ30EBJS?bJ$X+=
      za?%StPsBmEn}Qqo_dPk2erzDeVCf7`_|xvA(UBa-4B4mh1;hH_&y5p@u0OrSU>t|;
      zOoVjJ`V7TLjst&^?i~g*mSODbttp?)h3CeE1$XKPp`=$1C`B%gg&&a!y14E7ZhVJS
      zH&%P~9miQcJ!lRYa=l<8OUU9ZhlL6WZZwBQFr4GaqoAn9VZc;$o}-A8qHT_~ly*3H
      zN|!iJ;k2SF9Ay+3$^+Mz59hOy3?GY;C)FT=vG9f>bk%-&n2Vpd5kqJ2KLe)$no}7M
      zg*TU4HO;W(1oLn#AGoUO=1Pr@s?WgtzAwX`C!$D320G;HAC2j&{@ogT<S|Qsia`$z
      z3D9inNCVPwZ5jD8(r9!n>-RJCSU5v<)``B+US+rKFW9hK2{!F|f~vipV9T!L64dQV
      zKEVaMVkEd|*9r+Pf6`TUX}v~0ftSeP713+z^9CDuiyGcx2k&teAJD=HMPNVeLpj&A
      znzq)@G${ueP0B-7lX8*Mq<rKxDF+2j%9ENw1I?wAyOgJ@RqW5GTGoQXmSrvuDb^29
      eeoIbUe$<k9ny{3VfvwjTl?Sz?KOHyFMfDf(<g-cu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class b/libjava/classpath/lib/java/text/RuleBasedCollator$CollationSorter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f70f2a9b2340104f097abe23ba849ef2ad8e4f40
      GIT binary patch
      literal 778
      zcwUu}Yikoh6o%h1x0<H+TBG$^tF{%5epZCIt`Z1|?yiCMOPM6oWXonI%uJ;IEI$b%
      z{s4cJcxDV_Q4n0%Ip>*kdC$!J`1$oafM+<W;1a{5bN-Pxthlg^XqJgr+=yYIvW#1$
      z_kTO7lCjcO=n9Gq>%Ji4a@6Sd&&9wpEWM4wW)ep47+8y8B~a2>E^UuzGf^NhEOKJU
      zY{7|RnxhoH|IlnZC=f(p9Qp_eZnQc*stZr!Fz9w(H=|=0C^4)K)MUzaYLrYqO$EcU
      zJ4Tp^iI6naW_vMdY;`I}&q;R7%{ZYnhO#<4Gr~FPNGeVB?1a?B#gt1!XYT5ua8;D>
      zB9*Cq$xt{r>@gGrH5648aJz<G++bL1r&4rglfKXi?`Ohks{zk?G@Rr4X3>sQ!|=HM
      zA6HHzS7SBP1MwzxJ$C-8c;dP-)LK#s9c0`XVJbLa*!_nL&HRTDp3)<^i>;xK63Rps
      z_cB-_zMSJK@p6t`{z{HliPv(xPP~!hO<K2z-M5V^-tNr#>fF|G&D-lf&giFmCVP{-
      r23faLI{JcJpMA?aw3hwmH{A6{@Cn$%Js;oq>wP>RTlM7+aftda#P*+l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator.class b/libjava/classpath/lib/java/text/RuleBasedCollator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e15199eefb32facc36292773ef3cd5e726c707b5
      GIT binary patch
      literal 10427
      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
      Qo2<>n>?QSlk7LaL0u8Zp`Tzg`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..559c5ce9dfe5f337233cc65a4c06a54b8b738f54
      GIT binary patch
      literal 1491
      zcwT)|ZBr6a6n-wCAgy7jM5sk(1`A2{VlQZx7)6m*G&oJuhXt;<4sWw8P2<OYLGMkU
      z`U8EanZTKv=?C<qn$Eq8IwHuhd+#~-Jm);;xo7|W`}GIFES@-FV+d_(FSVG-UzxFt
      zUapn+vS#vR)hKJ`RH9n0=_OuB>bz8N!oe^kqf1()7+cM4^1R8=w=PZ@Sc<_>*S9#s
      zKz>6rw7kg;awi!2%?-Uib%9|#-Md<x;^y^=Zr)^=3>_AjN+rTsDwe1g_yCBM0ymDh
      zVTV_Nf?)=GD4Z21qYC=aFLuWjIIZ0Y1uhIQc+z@>uQbXzZamd;C8F(3SMypas~Nhm
      z+fIkz&Y&JbXunR>2V19yKrGMTDsnSvDMYMDBPTgBQYM9Vi9Mz0n6z@4)r@KAl_JAP
      zD4gEY+w#Vp2s8LP-Aj%2b#4d=A_}57Z`Dndv^vok-j_!@<8H(->jd42r{hS$MVzx}
      zu4rZMMhKUMtXD|R&_O=otP58u{J9*11rdH-!3~J()M_<ep~j=#a0gsg4{?!UL1dsg
      z7z?F(#<_5d%0`1?<Q805B0ZzQ-NBPYmPML7B2D6uG<WHuUWo9Nf@#@$uA!F-;!6Cz
      zPz>%&wPECWQWrxq+Bp(40!NHel?pecti0~TBZfflF=80pH%JK5wA$%Yb<jg&4DoZy
      z)h0$57#b3TFHfl!2I+m2EQ8MbXbq^5COqmkj;Z5KjHnY$_|#EH6aF7EM}Xcw8M#Ss
      zP8o}Y-@q_*jFDHBl>->ZgsdIFNvdv>yHm8Y%UzIg4yt?_lkNI3TA5&_{=~?)-BSJ1
      zX~@)y70^!2aHcER*9qS03ZBB*E?|Er_;pt>-FO@Pl^PPwJ@}2#GqnZ!&ursTI^vyc
      z;o4e6bkoB8TEx4!WBV-o_KxjuAwhOh+AZAszDr?R+!x-!gSVvlJJRnx`92WikC?+J
      kEaEeg_#!F#EE;W!9?auDS&Y1CneQQ1Xm!h8SMeCO|Dq%?ng9R*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat.class b/libjava/classpath/lib/java/text/SimpleDateFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ddd8faaafb8899a57db4b8371bb3f018b8b4591
      GIT binary patch
      literal 17953
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/text/StringCharacterIterator.class b/libjava/classpath/lib/java/text/StringCharacterIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..698696b285df68afcaddafd339332d9f61ad8a97
      GIT binary patch
      literal 2733
      zcwUWGYf~F#6n<WkkPsHirGXR@3KTWjKqFr8(n=dBXcXuLNQ>i$OR|Jz!UmJjVH`(C
      zM#tM9u=Y#aamFuv@KRvL&UpEvV}F7E1D*N<{A4}n-OVOI82zw$FMG~&p7WgZzMK31
      zeD^(oVO;g1PM~j9yROAc`erFUTPhf4c6>!EXz7w(NYbN~@&zy40xi-kr<vLK#idm}
      zUGkz{pu6IH$W6e_F9h1AD!x{TGXkC^J!_Z(A}Qd~%?#}rW=7u>s6T6%Mrl+a5IO7^
      zO%d#PKBN25igqvB_A#@J6dXr@aB{ktEv*oIB%1U?pi@B;f&#%BxXEOap^r@&rarT=
      zwxk#4w56QR<nw7Qm(mIbukB5DX~ifCoSOPi?I_cZTH&H8KU_G;jCv)*lo$O1{T0h(
      zE~jU;T%wTOSkukY#AaGwFBy5$hXG<Wre%7ig1zhcqQU!q^x;v)YxW^Rs;~v=>b&<s
      z73kt!me<g7y;5)IeFG^psK5&!&rU07fS+fND`>Q4Pbg5}C$=Q4KqT@%vbR)q71M@*
      zH@#6PP$n|najxHU3Z4fkRG%it1if%alF@M&@bDqcO#<e!ol`J^X9Rrf1^v2_-yq>V
      z%SNHd_Bo9QUsf+At>*C+?Wqrw0_|41oMv%dPaDgIPL0+?=3}g#?bAr>2{U7_Jn3BC
      zq#7TOM62p%^*nRc-`vo0#RJ`GzmC4jY0W5j1yht}era`o_d6)Q6|J~ZZsS=6m$_lR
      z#C=Yl82@a3qmb4o4Q{s35#pX^Tsp=Sh#n8zsN?F<(XQj#$+6KM6*;z&9rXwO9;4L-
      z@~NXyQDd&yE?QiB==fS%pP*mAe3v4GtLUOxhh>XygaA3?SVAI(ZNwQubX6gSY9KBX
      zVpbydTDFG}d8SBf#tz!p56HTn#zl1xJq$kL3Ef0PDB$@5P502Z&~|DMkNgl0-9|&W
      zviTTq2Hd<GaEHsgQQlQ!JBX>F9So`A9mLgudk4c6x+4@Ec#C9xo5;LFcgnly!Fz~e
      z3s2&GoWlo5;zLUMBh2DsT*D`L9iPh7MlGsNYKu;4i?TFza>m7R$r-2Xre~gz{UjnN
      z_EUD^*JNp>sCN+yg=>lW8DZU!kyXpKO4O%mW{Fyktk{tSpDR1cq?8*7sdq6<Py7yA
      zX^8Q17tekPPutmTCu+U4y(1$kmY*F_-~|VBR>lCrWz1WsClqyomhLx5Y;_l-70@<G
      z{Tm|pE%oRQRerZBK-dXz{>T7B)d4a`1o)W({6YbKr2zM921qyo&e*Cnsf>OI(30~v
      zD(&x8Kur$NSWTw!DyF<VlIb7B^iN{?fSCSOlj%4Dc7Qm9eCJ^)4i@U~Drb-5e1X!l
      zoHN9ZGa2Y+YPZqIW4wG=Cgfr1u1!+-(IOhrC7N(jG*{ge15OJL$o6J>FV>_xbbzkt
      zu1WW$n$Gcq&T38PBwn_i$81f4_aGMR4j;0sGE7J7s{?o=Rd_)MkM4IH?<QIEAx^}8
      zg7_RB*LLhjh-pS0ly#0W_@M0m9*#lN;ah0u&@`o+Z2AT~?rm2kk$%3!#WcKP1`Xm8
      zn#C2I5VQ2%pF>>C<2<b^7ihu}I)RJ0M6{ae7U5IRy?fbFEn)X^XF1_5X2U<k;mX!Q
      z9T%(e?sW2=bG{z0ku}#jXkDW&zDD_4=9|>D?;`Es3r*zU5o`4C!KA-zd31{Ps$K~?
      NDFmIb%DnVX{R`bN!07-0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractCollection.class b/libjava/classpath/lib/java/util/AbstractCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..439e2f88c2d8028a7aeb81b37e2d543399a53b8e
      GIT binary patch
      literal 4777
      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
      LsK!fXR=)6W8t!a?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractList$1.class b/libjava/classpath/lib/java/util/AbstractList$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3cc154b39fec99ffd3ecd3b0a652c28f25e0efc
      GIT binary patch
      literal 2205
      zcwU86-%}e^6#j1Zl8|I+Xe^=SmmrAA(vncD)q-e?sm7+X8VIHSVv}rPG3+wQhCv_w
      zHRHeFgX8$z2c3a-sx$iTpW~>Hj^}K)VIhfqxVv}HIrsa{`Odlf$G^Y)24D`GAp``@
      z@96t_y5X4B^z~BRsp(}WZ`Pfuxe%m4zw52))>isXX~!r#Ap`{y$7eV;=NL8Jv1<at
      zB*1)U?}9+MU~XBu)2JB&qg}!lSF;OC6x+LJ*G<Q?Ekex+1f6ZOJ~byWp6`-yp;6*D
      z9Sts;mgy`BOeLQcoJ$o2<g#5c!Vq{)MIX*YpkP2n3<&`xnJR{H9z!8q5E%P^G!?@b
      z5r~%b@~5V?#io;T_zx{G?3jw@p;E^7g9mlPiC_YgA-r%xVgDf&Q+QE8t)5VQIGIaz
      z6P?R?Nks^~yi2KwGG8ojTE<Faw`9~-^-`7E5zpIYy;{_3CVzWI$)XDkbyIPU#13ui
      z^%dj5akaY7Ma`+W%p|gIeoi1!3b<P{_D#D%SkiK1&n3N#eWOKSJ;@ZcKZIAQ&&QlA
      zcA-(;&Q^_G!*a3*Wn+)$B7&<Jh@uAzDqhAFo*0jXjY}#P*%)TNoK-On+yry%yP@I@
      zyeZK4^nmMUPgcb;dxAA%*WNeS^p1*~NJL1y8)0hCEfsk#u6Nh2EZYss;fik&HnmS+
      zAlY6OPgpQXWu=OY_r8i1+@YbiS@aGXBu;kXv%RO?PzZybdZofR8!FZrCsME*wX$*3
      z<dC!e_RKOk4NK0ljM{Qluh$J~K*$?bfpk0jGwx(8Yn7{XEv>EFhO=!~kRe$VT0QiP
      z^N`U#Oh1<ZBD84Kfc}2IQ)G+KilLt(&eHBaB%J}qwV5NtwZ}N8%^YHIgdU@tk1&3O
      zX>H^P$)8;`jh+c&0dpyTBCPy{i1Igvlz%WoR+a38g^Rf4#>^t^@hsA5_QkbBBx%JD
      zk@*ol@}csug&gDv`q>>L#al@8Eu<^-W?z(%zV8Up=Yxp0AZR!#swvAWF4U$g8ld@-
      z`T@~jadqP{Ui)3!AhX;&a(&ZJa82N+7E_#rgB->gIf8^7#kd^vv1%>W#WvOrk9Cq+
      zzdKD=Y0<sjPInO@c?mH&iwiRCqnm8e(S_=uIH6q^XjV8{IW5<<j*2gLLwc(_Qnn)!
      z-CGZ7$16S4M0&f4M0IDl?u@2ALateVyh$;5h<A^0`_%NwRfOdl$zH^mTt`~o^YLa{
      zymY@?(%*IY*Ju|&b9Sa@p5VOz7+P_m`KmzLh{!z`F3}A2;CNTSD#5Pdc(w{Cy5qRs
      zM)fVB^7(m>>R#Zu)=jR}KV0qAD!yvJpp?GEp!^CG@@rg{-}us-Z>2ZimfpOVo}^pO
      fiG6?%!F>tPuW|w(A>u}{rJ4B0_=Mh)yp#U{b&j2D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractList$2.class b/libjava/classpath/lib/java/util/AbstractList$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f7f650e714da9ac5d182d5c69d0cc299825f49d
      GIT binary patch
      literal 1499
      zcwTi>U2hXd6g}5=ypFSt^XZU;kbbzSy#^8tgpY(!a7^pgq?Lk#-~m{#2YX?&i+0B$
      z(Ere1P^pM#9zco{iAv3Te^kYt?Z!4G$Xd^xxijaSd*<%`^Y8n=0i46n8e)VKPs|;2
      zu`O+9@kTw6zG=yt9mrfsLxM08W*yUQF8)$~A}pyPNf_&$sY>CS((?)NXI?;{Dj^Zr
      zF9i>d8Aw9vsp~y=Z+i_wQnu_Mx5T8i<5^dD&#LX(a*Z&X|J<g+7K4|)h8P5E(V^pu
      zG~$@hF^owTk}qtj%#;odsWhfBt6_$aJswWSAWnv-s_N7!HBYJNOC4zyP2+1F-yp@M
      zY<rEe*LI~!f2(6iEoN%AD>mBOb>ZJJ>kbz_R`V>=*)n}w&7;MHs+}<NnWAzfu03V7
      zg!PoI(r}tk=<O_fuGRK^;Yv>0k8R78w&zxME%8hRX%sO*&{}4&A$Db0%zdVG!^uRx
      zQ2YNiGTGp!-E>Xa_F3FOzHq0qlIE%|>M$^=;S$&1<KOT$+g7XMh;5e8N4ty(<?mG;
      zD_CXPreMCweDzquq%XF;9iibmVZN8II*w?X&Zab_=!0JS5BjE#YYIBO>9u`J+_III
      zqy5gERZs-I>bk-&bI%2WeJ*~gpwIcEu3hD-*H~Jn;#!Uu*lzQ-kS(vFql%ySKJ0FH
      zXOB$$===(n*t0l41N@7re&bgwraCAb)6qDj#*q=#sXQOxXBZhiHNsJy^D!QCMzMoY
      z;{fAEyo0P!+{cLy=8RYe^G0zGUv-ds7osij{|u7+&%9K^AYH&PT|}0aF-w>59cOgT
      zF(&dTglG6tBfcunRBp=HW6nK{GW4Gq`U}N-2RL)sqZsDGKxKwrXXr{F>{J9xIE%#y
      z_DTesVaO~$bFVRwcoToqg-fb5{n`hU>B21W=O~6!xc7Vr=dep^Pl*k=a0K~E$y{cc
      zmk$lKrkvpdjC&m4PdsAR_HpHHmoclHrU(2Tdx#7@!W5a9r+S})QdhyXu0Owr_X(^=
      z%=3RJ)-`7R{xD?YrG4DE8?q)E>Z&-JQ&DtTk*Ocu*8=whC}1rTL)6AN?XZ^TD9|p>
      o(+gatmnhS3ecIL|Z3&b^lyy{iRPU(D0%MV1x9~%_YZ^a(0FX&61ONa4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractList$3.class b/libjava/classpath/lib/java/util/AbstractList$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..063c1462f3e06b709de53b19d12444c700ba1d88
      GIT binary patch
      literal 2389
      zcwT*#ZBrXn6vzK}v*dA0fI?`2n$kv^hn7IFtrbK8Y27x^2M`2xWV2bxwqcjqY$*B}
      z`UxCI9bfl_&XA&YM&7C8TR(uGz^5;up1UlYg``eq_wL<u@BjSHx#w(t`RDl$0LJk_
      z2m-^IhsutUuiJVxKU1pNmZI84y=JE-LJ%3c9BWlEHuHB&4>i>eA;^$u?%``?TeB3~
      zv>3vV4D+$EV3rw}Ow(<%rrWw{Fi2IUW<SvEx@Bl&6>It@8bi>o=(W@sQ54%_OwyVu
      z-O%l6hN1L}7Ri|vlAJTkS_BL|5+t08B7j~Ao#<l-q%$iK^y6#@XO7YPRU`}`Ow3zm
      zdCsgGHkTTb5JH$gy(A%W_;g-E6yYezU62sNMMqxdmY4aQB;rNg&=%`kCCyq^N>z%p
      zr)a85bw#msK6hV=Ja~qI7etkspy0!5MN=P9LPNOBkZG=*GYz$FS(;&!QU6F+6`tq$
      zT~*uW4^iaM%Mhw4wMA{$b{N+gVl=;JX*;@EC(okcn0nKh;>lws*O4WC(@^NZ2(=@f
      zS)QMaQjFImWYHJGtCWZ)&7!$fS1a>XZHs_>5ZBSm6E!Je3a=Byrbhny(sEme;cbsB
      z!pUT#tnD(KI(qHSgO;{s?r0&*F(jKZa<!^$D%B-hu{9sT>><HT2{R5s?U10=KQEzR
      znxf3C@C|n)+(MDzQd(}awjDk*`8l^SB#s~c$J<8*5Fl@KSITAXaY@2`EYtF~9*Hix
      zWY#TJyQ%ZN-TqP;<?E@(WW&&`IqI~UMoG-K%J@pn-?&o*GEFG)c|)yI%Nm;tnq4u=
      z65hl6ymyZ^`Ji`xEkctRqZ$d&)j>ajHxGSk1l~H%7<I=OAG^AEpVB-=S101MtBamW
      zWDn4o%H|sA&hF!MHn)dF1B2P22F_)L29nv_GYmJ7`o>Wkq5A-WbSJ;8fe712H~SU|
      z_8kV<b6g^eL^jey8X0E~6|w72rWv>OXZOg(9=gfd7l?h2+}b{_95h{YaxC^EI@wPo
      z{j*QD-<4$;Mc$RY;mXEI@*G{Muh1br4LtSag51o0^~uCNnK4i1DvjJ0<1(MOmH5pk
      z5%VO*QJ_^5&e~TTsVW@_UsIr*UOl4vl1F--BE4~t<?ncMDF@j#dR`YdDB;iW+Si`P
      z1ZjZ%PJa!5AkO|oKl=+w_P39q;1Nu>5L6&KYetU<KJ|O&F2(YCqY1HxWE=1QLKG-c
      z`tLd|2)G~weBMVr?{DCuo5H-C!Vd27MDm1A-{uZ)^PAr0arYQQS%>cA_Orh2A#eMP
      zS6ok=W&md0h?Af3h-WF{w+@;i&ad*|Q(~D)nx8__t8=#=srZ|9I700NAxBxbOj)=>
      zSr|o9$Ri_+VO$u;HKBkRVZui?>yh2U+uoVT4&h@Wq;z8Ve+a4DZm)8HK=T*`nE-AR
      zz#Rf8;=HinI7}Rhxeoc$0v5^fT@Qx8x#t|o{T7%f&R3&ZqW(H0hzEyh+Tdwwlb%5H
      zOCWqmbQ|aw6buU`j0h^FrtBjuc!Y%(!h%aE;vI)=1*<eh-7*4tT;_MNMx#jWzy2S4
      C(!{v{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractList$RandomAccessSubList.class b/libjava/classpath/lib/java/util/AbstractList$RandomAccessSubList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..138fade89eb2c3906232dcb4e7821c9acc48a4d8
      GIT binary patch
      literal 865
      zcwT){O;6iE5Pg%lIHcjb1lkh5)B^-W%7p`tA|XU2OHnH|i2K@E!cu3A>@}kQs+=nI
      z&>zqrRdwtH>PRtKdHrVeX6DVz{`vdsH-Ka8*eDU2x8h#35~G6FnHQT#_@=93^Wm$|
      z{cw2Z`!bGuiI@6pScJ_2{xfHWQ2)=#ry<O=l~$%hXzX>T=W$$j|B5i%Qv)qb5=p{t
      z5x0GL;dI6U)_K^MRg^JTgN+Jdp{um~oD4k~T?#MYJj>nC7r~W?RBDf%mbp<Z?69E3
      zv@tjY+Y|mbr3ZxdqCU8X>nI$$x-TCH<Z_S+$5wq($@jY_H7751dNf7LXaqdZ7e_>>
      z_QE9c<tLR^S;{kx(m+DZ)mld9frw)n+t{2~VxCV}nWBTxYhRp>L<B+)T3@_d=^Lk0
      zG}j6JIZ{5igO4CyDd81ASmKX2ixOrTl~BcN{@=mk15}y^8;zf+Ju)t1p6@DiVEuq?
      zJz|0F=7@(yECCr>#!8m8f;U)A*^KIp%2;DuAA1(D{>*=y>3Nsce~*o<3NIH8Y_WHw
      GYx^Im666v9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractList$SubList.class b/libjava/classpath/lib/java/util/AbstractList$SubList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..532527f99540d1798c23a8063cf8e9c190c252f1
      GIT binary patch
      literal 3945
      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
      M{%->H#RGclUpXb{TmS$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractList.class b/libjava/classpath/lib/java/util/AbstractList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5632eeb83f981f5e4520a5cf6835e0c6ba50096d
      GIT binary patch
      literal 4911
      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
      G`F{bXuFp>Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractMap$1.class b/libjava/classpath/lib/java/util/AbstractMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d851f1eae6568c1d59723c95065a1c6663cab454
      GIT binary patch
      literal 1129
      zcwT){Yikoh6g`ticeAcGjV85ee5aa+HjjQ05(`o)gr<t56cqe0*$(N}bys#Lg8n8y
      zC};%*e}F$qyfax#OcPml=kC4do;mmN>-YDc09x2GkYHFn;qQ23EM2ehco@l$J93}D
      zEw>D$81m<X10flf<gpu-o0Q$3o8BQv*Y#bw%}}f?z*G+zQaizs$bjL3jWm`lByrJ(
      zflCa@iUKV6U0*yMzZr_~fDb*vkn0By_YQgJs{h!TQi2%P=3iBAk)TxMeh`|rXQ6<r
      z23F@5NO&8UafQKj0$+01C*piugvb3+<Js^;II>fHsd!2@uAxW;`~~lc_jJo^_0646
      zB34(5kjo%sC{(Ibf_t%_Fqwfn^0^#`BzS!;sC%&2+3pzFSUAD9g);7`W>y$V3x+_Q
      zQC&8<<A_L4wEZ9C!eLv3U>rK)iK}Ljor-O$3<kUB`y$-&coYfhW@!!)?bW0vn)$Bp
      zctPa)qkSQdgCm=kwM`pEJ=NQ{@=r&|)j^Y1C`nt*vRSo9WTojfV3I#W)<Y!d0jyg6
      zD}BDf{!D)fEGwUmFr--*S+Z=hm3IX>?WbLcS=w}}m|6P*>lFEqXB<n)&vvKs&9nS9
      z6yy9yv5Jh!ub*Olmf*Q2C`>>xfwHdShQ9hHZc*&E&bp&1x2SA&UFHYMFQ~4&pJpgu
      zO=*fLvnHyj#hNzan$k+sZ1SWbN=*uNZQaKMI&)+(tu04OHaRD%Hqp@N0-ApS=(prm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractMap$2.class b/libjava/classpath/lib/java/util/AbstractMap$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f73e7ab586a59ffdc28c7addb8a54b68e19cb02
      GIT binary patch
      literal 1269
      zcwT)|ZBNrs6n@SalyyaBc@xC<DSJ`I1|qtNBEf_(&;+s%CdS;An^7`4(so4tfc_aj
      zXd>$TVEpWlGM-!J7*b5r-gD2(bDw*j(_g>8{{WE3vW5s@Y*!qJT+_GfxuvS-yTbC<
      z#eTA&AxcOD!Mbp2xfj)4Y55xZ2<A!2sxMvPH(Y|TC-&dio$YY>Y*LXB+q7$r@SCnA
      z%!Z_tx_pYpisQS7rLDE%R;9Se524TBvAtxTFkTL4o>xgF+p+yc!er{)taODCU2bg4
      z7zh^)#9`>@!H|Ig3=?`%>57g~T+%RhZkO@~#xX(Y7nUVGFF8Xf{O82*NKwZmu4=eK
      z7zs@<a1Gb_5UHB6DSf7!>c(PMF^-!^YPdxhI2AB(8+W+&M48c3wH<9#7g7c^^b-cl
      zwj(#1dsXRfiE5p-GRqB1)GNZZ)xPbFDk;tvqQF9EJHp$LZ~dU3uj1&%jDdTY=3*ys
      z5C3J;HDp}Zn@Y3jD*wL0qsr6xfG`v?8*$9zp@Byzu<AAGugOC;T)EdckgEK#fufRA
      z-)uBpOFp+1@kAHRX$8vTyXrX7U9JnylYFP_SyExs${f{94z4&>z2VtTZC(01jcv?u
      zGkf^$MFghmDcdpr=_1e*2{mbKNBJGV1&$1|^^#)|UMDiyBP23kVP>-5F!BYLTev|u
      z!qlgrKFwb<sAY6|jTlv-lZ6a>4E8YsvbY<>xzBC%IbKyv&wR#I3pv7v4qBgzkkf^r
      zcM!PqoOR56Hb5%1k<4SHIl@oOx3EC?_z&V?7oyogWHH*D7EW_25l(KXt6tDMzTNu}
      eUQsLtnNRREz>e^5iol}wddzqU&w}hxB>w<hS`4iK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractMap$3.class b/libjava/classpath/lib/java/util/AbstractMap$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2511aba3f2eaa860f2655cd0424674914cb5fb84
      GIT binary patch
      literal 1154
      zcwT){+iuf95Ivhq;~1BQK+-lX6lh9wfhJ9OKuTK)MIc2=;h|L|c-y$EbSq;c+vx+}
      z!~;lBB#`(3J_<3rHf=}~WZ65OIdk^R<=5};KLPBbok4<O`HY|Q#yFHt<M}WMeQt+`
      z{C$~%DTejy!LH{x!Vab9GAx9rGAK8Rq(76TLy$e`%J6`pRGEXR4j58h??hz5aKl0x
      z3nr3Sw2;9~hGaznmip2aug33&!awFiM=<33p3R*B_oe!eohc=VVRiOZ<u(aQ1@eQ?
      zv^^6=tYomvP?(9ga2t0R4BK-<E?pun#6>vV9W`DL&!`cd>RZLLZs9IU42yrk1MZCJ
      zp7eQi=C3CbvkZmLL(gX@R;m-Cd$FG|*&{h}c{uioWNjvB?|9HT=wz@pcbHF2l(DTE
      zTA`WF83c7lb=u&zEdo8&)_;(52W}pDW8W4prJ6@>BDSM47_6S_3cu^{AQ05i%^5^j
      zD;AYT<A34Wju%LGbST18@5G|@ZP9Y+<`T=wKaIJ{@1RLbm85lNxt!W8veNWsV30pc
      z)-xpN0nA$cD}BDf`b>WbEGeIk&<qpX$dP4{t-QC8*M8cLn59LhiW#*pFfUN}c*(J#
      z{E6L(eB&~I6{R?TKUR@d`SlB|O%v>Ef?@=U36ymY8~W<|ctEj-I%`u?wyA7&UG@jc
      zZ>X+EpQb2#6PjYmoPjE8v8JuKrnJ&Dog6hpsY#)(t;cvmXPzvkwdHB$qBBypgN8;I
      G(fk9C*6xr1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractMap$4.class b/libjava/classpath/lib/java/util/AbstractMap$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..973ec3ec0acf9091b98d461b657bb85c8a5232cb
      GIT binary patch
      literal 1271
      zcwT)|TT|0O7(E+GL(?EN+ywDnr5B|@E26D<VQ_}AfHN?C;KkX7of0M_OtNM4Klz|D
      zqT++&vp>r5+fYl9;AE2Be3z56=Y09~`}+?7b6D1)F^uo=Ltbi2$1S~RhBDx`T;m7X
      zijD+BCQ7>8Yn3*dd%~7Fk_^^q%c>Lsmwv!t?(>7UPWN@Be!i&6klJ)w9+&MvFqC6T
      zYCSPUW5tuf``Xs)>Q<w=L>EI+?mA(1j$xu6&%CUPYL4f~C5EZog;n_mLt@$A5h*ZS
      zHj##Dpbx_)1~J0Wm&-Q{jNyuo@e5Tdo0z~P!vME!5r)}WhWY<|F+Ni@Foo+nt}%?p
      z7MQq!oAeQ(#Ml&)=;nH{C{#`3HnKYIFbtkan7E63)O+g8*qPq0H%f(^2^|9rLv_a!
      z>+Suf2)20BC9kZyZ*#Z714q4gf(d2C#YR-f2z{4_>*Ae^^xRIPAG0PNV1}B#C_M6)
      zP0x@~Uw<x7j;s2ICXMR6jz<i`F|(1z0v?-qf_XY*OUMRy+e9rHh<*Q1D1fIXs>)Df
      z({Bg1c;zVSnI57u3YG?V)$>HK?D8-abgJTcT5<Cl%_S+e;@PerI$mo{$X$O2vm|F9
      z-TlyDDOG8oqTfz~k;$l8qkV$zL0qED5bfSjPNQ|QP&`7W@D)~}_zk09aP=6s7>+Rg
      zDeBMD(~5ctU0X#;TZf@-pg<9mVuXMq?nil2x`SS!RppGrXG|ZX#PFeumQ)#Sy9dGO
      zB9Qh}b;7(HA=Nra)(KLD;U^Z3vB>c8A4JiEXmt_Ej1H&8vz%%SrzbR&7Fs~33uAaC
      cuoP83!}ADRqaPK~j&;@(#xL+Psvbl351lRzAOHXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class b/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edabfd8433175ef6c0bf7cccf61a4b33cfc17b91
      GIT binary patch
      literal 2423
      zcwUWFU31$+6g?~1vE!(Y<Ho_|BTbsn+Hz`B+VT-Qfj0dhjne`ShGvG$D2XOfQDq~`
      zh48`*|DybcJ`_lk7G{|8+71H@@C?uV0-hM|t`u3Zl}R7Gx_kHT*>mqbyMFTD_dfzS
      zgXI_`hVfh49j(-M46}4$wdL5_nzN`iCu_#-rm0`H9D6H<2t!JQnVPjxy0LmoUvpyU
      zV>sH`%r|-AafV^BU^GfK-8MAS_(EGXbq4tpeTyMo?FK6|^w*3HOLN*b4_jIwPxOvv
      zw#BSYv%ZR98O|)jsa)^&UQfPGkU7Gk&D@U6HP-b6WDF}9M21jv`FcMXo>S0|1h<YU
      zID!PjVAZhn>+RdCy1nGmPFEXinpxK<6`Fg_h_h+57$&NR7Lc>I^v@P}?r}2eZeAn%
      zQMa0V$Y;YLD{eNk#Q^l4kB-RZsv+GF$)5;asuXB*LF~@g2N1=}3Qpn_k=@W8L3TKo
      z@2xD4%qviNWSk;JHVLZV6t8TG`lfSqhD<0QhU15jAp-iRZOx?OW<q+MUryjG&c|?$
      z)<X-W;1#^~%tBdaU=8|F;iI{{t33L0&BZsh)+QH@kjp$jcUD0eZymsFp0>2SiZGlE
      z3kj2cJjX@qs@#<a(Xq+zG-{4*SR37)aJ}Ui-XZ;VyDzp4b6vL+xQbyuEGVdAk)X9^
      zQ@7R`P9MT+A51xp8^mUYBfZCw-tPkNxEu_?cP=Toj4KR@TBB{R=~oOc^HiW^MZTLs
      znYS$6o-?&pOQ-e^1eDIus4PtPGOvgDW)Et7m*(~^Pc`hdDr1~PEkh!`(@RNDCcP8n
      z86Zo7LgSIZJc&5jq<^wq&k)k|{gN!1zJuy6j;e(R7*VGlAo~ruWIRt}8WD=VkBIaw
      z`lauXl(z8#`N!OCco8oF!WtFFaqBo)5=8`~#{DS8k4jP$Cw0OnH6cjpA}wG@Ej+>`
      z1C2R`T@*UB_yLd}A|*W%bVl3_KAj<)Mv=hB_N|TkYb9D^bPvza$dCNntHVm+Cq%zS
      zRK7<ByNg`mG1#KIjgcw(J;bYbsZ86*(kv@x(a1fDeT=9ZB>0Mjj0h9VJApp`B2QR)
      zf|&G_%K9_q@e4B2ub7a2!#Vn%mwv~z^arj<f8t~M@*Gv(3at1!uHbc1@(gA92KgjR
      zW0I_*SA4h7D_-71{PFY){iewJf~W!z<=pT4<odW%`b!+@f<(PT$M$(#STz7U-2<EL
      zhW+OmVaup^y{QVB04Y_pU`7?SpZTg&O&9s!0CK7aIprZUyiEl62wxN@eC~B$;n0ix
      z8f2$Bypw!QR!9_dqvT{j{)*oV1#_Yo{4QSVlE30Bk4Gi_sHC`s^ze9jE_->7{(!4D
      zcQMb?-NCi=^&Py+iIKg7T30>gV}Yzkd$Jz&&X)0k$hVFU0l}31$MF%p8EzeJ{tuu3
      B+Q9$-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class b/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92d54d7cbdb737c3779e67db43851d894b519799
      GIT binary patch
      literal 1736
      zcwUWFSx*yD6#i}(T83dOP;qMuB6LBj;tCZd1QSA)Xt6HwWm>K{IGt&xQzE|jmo$+O
      zHPLr}l=0j<?a*b6KJ?C+bH4MP^-h2N{`LdFHLOPvV8|Y5hg!br=th3M(r|38>O9iw
      zb0xi2H~3bq)^xOr!8c9EK8hg3FedSaX71;ADhIskL@>ZGampgRTkt5uq%`POzQk=^
      zGxQIFjUo7sA2Gy=y=1ElgC%|6)SRX*V7uF-2_I@kQ@)kyZJ?l=y0gZxknVTy*JR2>
      znI;}`7IJ9A+T#j>m{c)}DPm1$%7b7yqhb(>kj|<YhQcsf)J^`lS*vh+*G)TCw5pm>
      z)~FPEZz)60TfM=sSp5G^QW^1Xs-t?FuHes8a7$QQ^5bh8iFZ0(^qGY$eb(1h$dPkS
      zdS}W*2;-89Ib5bj?{jBcjA=5R>F=vRE~rQgWR#F)F(ZY#mlb^-qp5Mh&M@Vh4@2@F
      z$q++2<IbO+V)D^OD-6TD&+L7YB%idHJN+WKK`V2LcxE=5^}1y{d~c`DZOzdwbMt+b
      z*M$(pErv`xT*|bZl!s1PW=d~&KP8J)u#7vR?7LKMXJ#eG*3Es{e5GVH?J9q$iy4n~
      z40cJt8PqM)<o1T4H5$AT0qysc?;g-N{5F8WDr~RxccAQ}Tl?F+>6t})sfvDgcoj1=
      z>>vWP2lOGKFACir(hQLlfJ*0Z$NLDOnAi)FUClUR^!!Ltke;L26HH`t$B1Vak1_q3
      zR6(4hGlmeIJ9Ivw08fdig!80Hxo)_Ci-45e@In%S14wkCk{(L+P$PsANu|7`W@J)a
      zmIaJwb6+vbK<7Ne2{NZ?DH8CU>Ukm4iMtM7I^)P;k;oHWwxnmfLN+F@nHPFVhF+I?
      zAe{Yz_$M#ifK<Mgq1^n#tx$<BjR?TRo%Cq)eYDfPwAz2tUZwwxHtlsu`>NF_<vW&N
      u#%`YA_Rk*fHyzzkyzVHi-AHuVlAdiuZq|y7w2Fe%iURK8J`K>#;K3jMMP_vX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractMap.class b/libjava/classpath/lib/java/util/AbstractMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b81d99e3ceaa4c612407ba1ef4d1fc15d6c359c3
      GIT binary patch
      literal 5285
      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
      B3OWD)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractQueue.class b/libjava/classpath/lib/java/util/AbstractQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65a84617690586aa81e8f00e0476e03357a0f530
      GIT binary patch
      literal 1965
      zcwVJcT~ixX7=8{(*fd%Dkx-OE3u4uLv|!b0Z32iiSTu&#P#m~h!XYd!S!UT(`cqmz
      zs^g5_^g?f7Dl>A|&h*}2;a_m9&pAmqfu!7cv3t(h_v?9{_dWaU-#`8Ya0QD7dIVnG
      zu<lypb>DWzr&qRp&#L&h>#{Blgaw8=jWe#}$ck^fH3Pi@r&=C5OrSS!*KB`MAe2fk
      z3WR6eRT)DFaT5ljj40YQS*mZYNN>SfaTt*(x)sY=v^-m#n;*mey1gwhP<#o#oIwBK
      zxO-bKVlTWbD8Eq1O)@fMt*#23O*Q-+t5zMKU)dn7TzXmHMA@#^EWhq4HYtXrmt&w(
      zCSF5QAmXmANzcGJf#FvC9A&9mPT9A7S=gz_EhSMDLjo~fdStEcI57<1g3@95NcFPs
      z*|lm;2`0269l!{hNC?Q2o9<ou^rh0>ydtSI{S@A}O{8#<N^Y@b1~LL8Em=x#xn5Z>
      zIC4|g`~YtZX~YR(N5GH`o60n9;+;k&DZgfkiX$zLP^jXx<FHAoHo;p1qQxBUZp&wN
      zE7HpbK48OIL`szDmTT91>9xVSinxJ~1V%dqpZ2QtBOI<F9!DON1|}#|x9TRQ@UcMD
      zW);hK$)*2=n%Z-&`8^lMC%9o?hAru|nkZ;hYH~-*^r?vik}71*#Ao=NBCcE8C0g}m
      zpctZ}rnakAM6>Cx+H1DtWD5HBb;H9ed7PXA=ek4%##q^{dlflr>sxo|W{jyYf%$yl
      zdgoM4cDYY&wRQG3m$s`Gex166_(b^2=|x!m0(d&XQ-Q1C8p-S-_B%Hrn0&|3!*`ah
      zm+%UAX2S_5af<8dLtoBt6-sl)^l{&VvpTiITq;XnCcBIN`-p@e?PFjmF}R2G2SKHi
      zT!9$^y1}Zmx>|oDu31g(MxZF1K4d!+*hV#pH*hgP@TNxKa;LnLnO(e9%sxRR``bR!
      zOMA$+03=8fxI-$74EhRjEVY41HbE$&myUo)HbFFO4G@=)1u=F!h;^p28MHwV&i?>$
      zC1~%>W_zPbfv3;^IojcGI12aLIvnlja5U)fyLd04_P);k7k3KxRQ4(2`?yL@A0A{g
      zzo^4C9<CpRCbEygnJ@i{MCS5iObhH{R?Wf$Pd5b~JpX&>Q2=U;#DV)v`he$eS@=8t
      ztG~w}ejv4nRP;x}_=)8oVgf&F;F$)5U|6P5#217+$WD|nPl%&9&mp<R8j9A49=NGs
      WfRz7j`Zv73)I(d=Bo~@w@B9b15sa7s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractSequentialList.class b/libjava/classpath/lib/java/util/AbstractSequentialList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff16cbbbe5807477526444de145f4fd5930afada
      GIT binary patch
      literal 2769
      zcwUuNOII946#i=746P^u0)Zq19}I*E1`w1%aA3fUAz%bi@RebvLmHbIoaxCy*KXaZ
      zi3>gMqMj^tAsoy(>dI*1uh96&#-CvPs=Ddn(S#Gup{ly-*1g|%?^kzj{rCM308V2i
      z44**ja^`ZTyKEU|cXF|06*F0DMt`@g=Pe^+P8uaEjDSGHUMqPf5E?S_hBYkUk9Eum
      z1jY(EJqkanGz1Y6sF^hK`c!#kQ7_JB7EN8CcCwJom~)w;A-|o?fOW|z3A9ZfgeE~O
      zI~}~Yy5*$(z}rK!<B4Iq&`f@$Exnkr3PpkDSh{1|-N|i-G_IO4mhu^^Tx5vW{VlhA
      z`!l&5LB`Uyoteombx$uY>sc!yGZc=cY1lCrg+QZ*NAPGhj-Vxs<{eqy?pZ?}jtbPr
      zygdeud`@2z5NZAwWP<mY5fy{7TEvz#O@Sj@@Kms|f@#vsDC83z3yP%Y;m}D%v16ec
      z?dS+2CQ#>Pr=b%k1tNx<;D*@tthu?Be&QNVp_>XQ8Sm>#M(Jvbvp0+$QrUY+Lm!@|
      zd0t<m{OYzG?_?{oQYM}R1$<e97rpTCB99vPmx6z_K$W)KFFVYwhimun=t1gP(k)r)
      zv?s3+_h~4#6Axot;IWEPTB=~WY)xMrEtK=Q()e0dUzNbZctPNB#c;+d8u_KsvSH@*
      zVgyu8Slu0LjbZ|4<-?uar8fJDQtbq$G)&_qDW=s`Jx{H->_of6e<FgH8KA3mhUFcU
      z*JtJRS4hAsz`kze%~v(NhItChD%gj+>+g7pB89W^RrSiJ?WH_B+cJ%B$tU=>d=U5P
      z0HLD3Qn;*3mx~%M$i5b~x5(aKk`-(BeD7X0tg;&b|E0f68glY+`wJ$0MP~}-Vpg9p
      zWIJp2?qR2-Pl4W{@xi_Bhdo+grSSz$kg*@~FM@z<(EJYbYn-#-9PHdc<XbNMh;od=
      z$8nmb=TXg-W*c#Si1Wicc4{DhC)m!oQ_DRc4slh7dams61{G?VD+xjCY+lFVu1z%g
      zusdRr(Ml>}t8ME<l&fPnu3~CDJ3(uSqCwr#Y!uE}8~6A=@VFcQ2^Ie?S8`4;^pgTp
      zoVo=10}9Syus+Zqx`snd!T2Vg5>W6y2;Hj>eRl8P`oQN12Cn<ByKs*wS08cwn4v!*
      zkSjQftL%SQ(1TAEg)??ImqNm&kU&2M6r4UhgJ<cp23_oi$C>a3!X2bVkQ!;k5cfig
      zYA4TZZ#9m$emv*;7^V;V<_K>JJddPHe^lZ4koz)O1I?Z582bY4H;|gYfr<IrGaGo3
      zIXG8)ejPLNkn45KZD8R?m77hxF7S;@y@8H^YZTI#B=i+xoV)O~qHNb=z@<FkP_8Iu
      zz#$;yPlXHd4Fxgfh%rJCZ~lbSm6##5|J^n%M)qhi;(ETYhx~0~mg!4AF!^&`ioR3}
      z-(I`|sf_`FpE=$n$zPa;n@q#6to|)l^fv48n}TcCE$OBt>7=BGU}c?sw2mN4N&6KU
      zTlh(bjBPdITD9?1uyN=v!HbIE?<6S8l6qi*Q*lLbFc2rjB_EmsyE*>B@eWb{Nsf2O
      z@h_tKo2dRF%DakVpB>xfm~xe#avp0B(Mq;{j!_ug3v5$$%2jpBdBC>)h-=?QJ0Dw!
      KWc-f9-25NMem|uE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/AbstractSet.class b/libjava/classpath/lib/java/util/AbstractSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7730cf62bf9d3acdb7901d959a1bbd901c650ac6
      GIT binary patch
      literal 1708
      zcwTi=OK%fb7(LfBV-tHIX~+XNlaxRTj!omzQYi7G4QYV1Zo5bbQrUFuOr1f)47JCo
      zR6=c~h^|_73j%?Vs%)}h69|i{-S&TU&o5|t?##pw#g*l`-@W&HoO8bK{{8Q(KLDIX
      zC4rd0=uPvEnQ!^FlV7Md{f1fdS1dmPRlqoSwdgsHRr77nO&~6CxZ}Yffq2n&ZNDs_
      zWM<a{)J1RIN<u+OM*@cg1}nB}ebKsAwHm8t)v*MID_+fX*35=2_tBy1Z`e(N@k(E8
      z1%a{NsJplKBaQwc#nq)knQ?LJ+m`7t^=Kw^bWFFN|FU|MoC>pFrJ!L{#~8+mp=p0_
      z1w@vUU_b(I3XF8Jca)IVhK@;038ZSC>zlUQTyPwLbf(fTfRzM<C&?cGA#iBJY;J_Y
      z37ph1gSUBT`&PsBy#~2wX1lU3N9TnUPGdHK46`1*)saPxoLuWWc4=fkLw8|W?HwJ{
      znEM}fmMMnq6TnEn@=Pvqlb7_n?NQ@&AHV%Z3^c4;-W@AYX<)^!yQbf2$o}<Lte7na
      z?MY))e&%%)aFnX-t1Zcwbd=?c#lzIn@1!KPAkXP6YI1J+_Cp}yIqPA=wVKy*DUz^z
      z8T5kb9nLnp;3m1^wHh_+vMmR4sA~%6WQ4%y#ijX!`j-1lZdc7fw=S3VP^;7AsPM1x
      zQLFs%p>a3B-4a*9Rm;9W@;MC!I=@N8f=d-waF~`JI^hTgxeoQ5yup<dg`-i*dyJLQ
      zxm@;loX-6P?E$88e?r^Eh(LA+$DZOymIvt_Ogx09Y^&St!ow^HTw~%j7`V=vycPf$
      z3sXh_r1ch#vtS2Gt_@`x;}MjnjFS0gSoK6jDaqpHEesmDU7Qkli8Ei9HkG}}M|-c0
      z4u&b}1FRE+Me7@$)me1|6I@Tg4)A2dyb&IaX!3ZMRTF&UXYn5E>Ntk?X(<855dTbs
      zG4wwdX#WB0#c-adF<g+S#RM(csk($)BGeBB%Esg~<Ry)H)gXn*Tv`n{?BZe!50I4G
      zqJU)cc<-MrOf&8yfq8Wc!`aAp2OnP#9bOwU_Y-L9w$dR!hZMg*u=tPM|3s*pY{Gq<
      z!Ox_!i4uOnRs4!ot~c;oAVe8)3ANprIxb-`7_}-siG;YpNs>a0;}kAaCYAfK$Qo*k
      cS&zgCb6jDL(EnW9|0=B*mIJ9ijU@Z*Kh(5g;{X5v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ArrayDeque$DeqIterator.class b/libjava/classpath/lib/java/util/ArrayDeque$DeqIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c3a8a8a36c8f2d2fe355912f98ce9016daaa0ee
      GIT binary patch
      literal 1664
      zcwU85T~8B16g@L-StzTmfK^na0&2Te5d5})N&&4_jPhapjLUX_HOsDUw?<!l^GBGN
      z=nwEg6A45Ud^GV#8ShLBEmHJhcjnIAd+s^+-ud<W+d6<j6f|&#<TLZ7IZzI4XW**u
      zo3F>ki?ZmWe?Abt8F;>iFhg8<Ii|ZfaC`olumTND3~ja84R3}ftL&HLhUFO|3&OPo
      zgXWl};I0VhI#{wxeWw@_g+`gP<S}f!b}-7&nQH8ko?{5-yrO6U!yX;2(4z>UUB@nT
      zFoaU+xhN9YuVEiUM<WOwojAbIY+9BmmHGz%kt;8g9MYkoS%Mzc(On-pB(IO?XhE~w
      z_3DVCnITrNT`^T&o)`X%Iqy&f+6ta!I&-FPOS^g)mc?M`X_&jd2~-ws$t+EYSAi1v
      zfMQ)`bfnUSzneqeEz|a*YX)VXvP4qpnTf21fi2yh@}|qy(u5<Hg&Rz~vc&Vi_S`7?
      z(JqA!={SuuHKC^&GCS4i;dTZZ&M~BG?m5q;x$r5~Ew5-V*p?}?)ula)c51yZN@XXI
      z)oP$Av9*M+pKp{gMDkSdviDMGpwa2Bh36edESk=AU<RTt-$+H~RUKo<)nt<513Spf
      z%c^I0xcq+y<xnzA$|2p&5S{kQz9lAY$v;*L>6bVRdfs(~pQBe(5;P#KbwJdI?Zv4}
      zzu`AbMH$T^Nl8QWMGyv;Q%rB4%W+j}RIc&3d_rVL=!DpjcZ{rAvN)~XMrH+ZV-;;i
      zW(|8+a8RyYD@YoA1wCIBP#^u<C<XW^TKE|D@ayR0Q#eZJIsp<4j^Q}13@N0mDK1i^
      zyo(uM3H2+I9}o$D3VqsyY?9afP902a6UIP>yiO?JlM3#;(g@t&fcuEn@94k3ic>$x
      zjIUu(-V7BgMpwl}%lwpXXUXmS4?{YTDz%26R-@L##W$oo^O?Xyidc^<9G^uipF=yp
      zha`W1A^s4T_#=$*$GFFzDAI`vp(^PlDZW4-!=<XA%1M@X48!QC*5xe;kz#X{zvsPV
      zH$v<#D-rT&4OiZwx5BZwm7`JBw!J-vsr%sb(71&dFQSVJqP&0+zC@Jmx*F#ybmO3D
      q7_U+~MkpcK5hJsTi5hC9L!&C1tMXh^yX(l)8dbs)xUt!(n|}bbGi+o4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ArrayDeque$DescendingIterator.class b/libjava/classpath/lib/java/util/ArrayDeque$DescendingIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a21477b435557d73aff620704f576fc00f4418b5
      GIT binary patch
      literal 1692
      zcwUWETTc@~6#iz~vQSoA3szAPMATjs1jQTRg@RhGn22K37nkh_YnENz-Fk_46R*)f
      zU`+G}_@IdmL=$~9@kbfY>=s(37$0_L&dfRAIp25A?$2Lez5(b%K>=sjc2&Ef^_D!t
      z>^<T*+U-$sy(GFvg{upzXjs#EPdJ)qI|{-Kao^e0tm)p<Q&)xVDQI9wR3R3;85;DG
      z<H`-oGeoWkOBW1^skz=6;nB4>W4PTr8Ipy11q_nMkYO3#L58+eeV6nkLpWy_MH3iS
      zsc428MF=e_R-lz3luA!Vk;GaBYZzMVL8xfMI)+9~*M;kL_x~eTUMAU~LP4Vh-Ke6Y
      zHndM(Z&J~OM!DOpB8o<aSi!KwcxiS@IA^sflN3l4Y+W-aHOG*4<uEM8U`W@^U8fhM
      zjxwXU<KmX*^Snq9mT$DCDj+pIBJZXNW7^WZl0(TNsr1>gK?S`Goz;Bf_C!ga88gMK
      zu)MKby13>UwiQJWS|s0o6}zyz%6At-b~&joEv-Po9->!u&)F7@heN4O*+t`up=&Z*
      zP1*sp&;&TbEt#Gatq!N;pGw}owxDK+==s63_6?zcCa9wto;OV~t(g;^=82ko!vW1B
      zDn^j2(j>;~mZ6!Ks*fyl`QMF{Bg$}8j_gW?=!9KzbaB*>G-B1r9tp>w<}FJ&Ir@fN
      zLF1BGibq{pDpgG}3w}c+(ZNA<Qtl8v5ro0zXw!dz%Nh39s9fW5`CXA6p%W^SyklgY
      zBa748k;#@3&&(l_$<AYS8SCZRUPfnzm(lgf2kNGGf>MB+XyOi5aTjge!xlPM36Nm0
      z729ZKNFiNGv7aL4T`cpNP(P#d9U|cmp%06Y4f2}btbvIw!eo#oukF6?4j=BT&k?w=
      z0QVlvU(s`64m-bR<XN~#@Ay3WzJ-hT%f64a<W+wmFxrDSCHq6h4p8jgAeN|RKN5Jz
      zFRV)n$M2w--$e_*hZMh$0sa8T_(PoLk8qwp_KQvi1yzb3pxAxHn&Ci&P;fFxJBA^&
      zR&;qnL?qc9CGL7F3mK+D4t<v;%A<K4euK>crOSU&s?b>4o{iLf@TXAtGsO6FwDT9}
      z=PxnLUtxs5uF*Iblp6<4!)T?Xt%MSi9m!<pFjhqkI%N9M+?VH=zdMdRtx=y?5+@cr
      Gb@Df4PkS=}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ArrayDeque.class b/libjava/classpath/lib/java/util/ArrayDeque.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd164b570a79a32eda9690ba76134e3e9d835ddd
      GIT binary patch
      literal 10291
      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
      T8tc9glX*YRdtE7tMExHCmW58H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ArrayList.class b/libjava/classpath/lib/java/util/ArrayList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e61f4d4094efbfc6da579df41bac0c6849f617ba
      GIT binary patch
      literal 7908
      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
      ZBUY(@95MJe8+Wh9{lDt-XRa9k@0W>DNw5F_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Arrays$ArrayList.class b/libjava/classpath/lib/java/util/Arrays$ArrayList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98cdfd0e0705d639895434ee2fc61107a31559bb
      GIT binary patch
      literal 2662
      zcwT)~OLG)e6#ja8GM&tAU?dM9On|@$^8mubfRYe}5O8z|$b=~1t24R8raIkmx<`R3
      z9}Bgta%YtbOE)4Gn=G(O1LY&Iv&s^++*##65Y*DWc<$|{)0s4G=A6Fg^_}mYbLabi
      zznTZI6H^)z3cAl3uNZv|&$Rju)a%9tHz!5KbUh781zi#QgzMFfn&;b63Oc0Cbo#2i
      zZW@+((U`EfhSo(<Ck%VinLbdfao1Ilai!}xue+vWpDZ6zpgf^q*|1}~o?(0AhSlIL
      zzg`}kzx8hF7cv?O+Rs#EI?J%9`i@PU<27$UL0i?FvJJ0M=L(W%#zyEUHE7zVH$>(0
      zF(HL<1zKKs3N1P8O!72TtkSU(s}-pE!nlTR1?v_fM;n%P+%avB*GJCR_>4!G(^!L5
      zZBWpoV>wnRSWz);KH8X`;Po*<fP$43r$#**)G2)jhe_`xlL*LG?oT+i(6u=9!pyz!
      z-v5akq@IQ-Se@dYg3f%o5Jy;w&LvGPraj5e6SrkT<(e0{Y@R+;SHy40mt)9_y@GsM
      zuql&j+~U*R_C)tFuBu~A(yw%FtvR-5n6@jh#*{jpCU*OE?7?0I%racBEC3%ndmn#7
      zt~i9i^u0v%fQ~`zr=I!C4a0IpQ%eKmN>eJ6QhAOfR}?J7j8Ym0F|1*QjzbtBLTi>|
      z6N?@BSeo*&(-=F{8wSVrEj=HisU4#T`bndVCpFN@WSZS{RB)8or6Cw5(x~b7MR?>P
      zB{+tsG#sb7Z8GUNA>uP4-kF}Ej%-g1U>akf%{ZxG)j~v_pS7r_KZ-h@#xrzPHh;A&
      z*SJPxY|byK9XFS0oW`>n&Ma!EdcpPhw2tTSJWZJ)YSf$=x{hMZHO5S9xhz(^#qjSi
      zU3D7u8b54`J!1ayY!@*K^s;U9x<toa4U_j!MAnP|go~!Y7#xYapy+Z&UP*s3ePh!z
      zIS>hnK9K|1LG!C3ffmpMjc&9-Of;i6I|1=l(W67(8TtJHSwUy*r28iw=p<>8mLS<x
      zyoRpQcVJ&*&8cfxd!tzT64}qmqGFw}Qx&j_NV3<^%3eo?y@5{lCe}-v%zzE(1*GOz
      z-blJm(zk6QsUU|3Lj;>8f};Tft@s79Yj<4@OQu99doNN#3rlF&g8ZTqT3DihBK?Zg
      z2T2NBN~E5jZOZ(C%<M;}g3KEio%s1m*cw9KCiA{Sd6FbEKIBm;wpO<-U|&uW>=HEg
      zDVDR#vQp8H346!{JqT?(`Y5|bm$ZX4RpQtna!CJ8f&X^;Grs4wldKAMVRz8$iGW7E
      zSenB_AE6~Vt2TFhHNvGH;?VIh)r@kfhrK_7y+Qu>gPwDe%l+!m6?B$_-m~jE_I-$!
      zp4qolr6>Ez-P?(Uy4_S6>>H%mw_t1@tJw{7lfIGNjBt_*vE%|QDT*!-I|;N>jv><2
      z2)<m1Z%>HtZSoL&_4@d(V5LNt4bWw0-%8xgeth@N5^z5dxLasrKcb8ML;!DLJ^NXL
      z^Dm$`1lJpaTPq<YB9MARNRQ&N0Me0Q{FneThXXfpuz9+Fi_9QfGJ`CV^l&(XM`ZHP
      zXdwl>e!t(+eD)Gu$Q&M@!)W$8s#L6U1<UCCGPF`wsR}=}q>}AaX#vJ&@h-66iG$nF
      z*&VdAKhQyP9s3hG_80Q(Z|r9OMEK|r`RK<Ba?ex5N}-95{s6j)7bR!|6C~4;ks3I0
      I?>BSyKZ>IpU;qFB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Arrays.class b/libjava/classpath/lib/java/util/Arrays.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5dcf6af3f41a7aaab1dab9160cfb8614baa42880
      GIT binary patch
      literal 26603
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/BitSet.class b/libjava/classpath/lib/java/util/BitSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb3ddb45d24844ea6d405f6dea061b017acf0142
      GIT binary patch
      literal 6968
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Calendar.class b/libjava/classpath/lib/java/util/Calendar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6d96a901ed7a42ac693d4839bb934b4cc32aec3
      GIT binary patch
      literal 13449
      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%0D>_QFaVF%$X
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collection.class b/libjava/classpath/lib/java/util/Collection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ecadba56440fcda9cf2c719a18047604043a4aa
      GIT binary patch
      literal 841
      zcwTi<+fKqj5S>M!1ymFPMNsgXRuhS@(vT2>35kghG(PClQW_{(TJ41dKg|a}z>hLc
      zmvTv|58It{=FDZM^Yi=l4FLCWEkKMweoUvd?zsl5w=KqW%{44jfH;9Y?qSp%)}Q-h
      zbO?|nkXx}`SGQ@O=>)duU_hWCJ%vLW@+*N<&lsB2^=wooCAGuJB!;vYBTx#WLM?Dn
      zHQJ}#Vv;6TBs8W|8#|EX7XqSYnJzU<hd^dw@*<Ug65Y(RB=rxEGK>;O)ETv{fzC5_
      z2?&PMnY_C*j!`KZ{-a$BOBN-0EonF48wARc4u$uOwQPN2O|d{~Zt(ul_M7E)+%Z1U
      zEx1<8w&~2DtNgY(Spt$2K}Sn#iu$n0H>EdK#R&WmNcSwy*7Qfi|DoB{jPCp}0xhKz
      zm0^=wV-^cCe>yG?P7zN6*Ds3;CV+@2g(wDT#2MIL;vK}hkOjVosPpgrHGdBALBQvs
      p!0#d)^7{x%OWiTza-ge(;!i^OG{{qhT5z8&{pWZtxOEvYSAT?Z!gT-u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class b/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a89df2e9dbdea9d1427e49b45baabfe496da8f62
      GIT binary patch
      literal 2194
      zcwUuMT~iZR7=BIyhQt#H5E7w95c$YgLHeQ9P;5n1N@y>_WX9etVJBH#c5Sk8q?i3Y
      zUf3CJ$6mBE<*t9D)BXU*YscqomL(*Mq!+vA?ECdR=Xu|=f4}?v4*;v!i6A6Uc%(hm
      zR$7i>u58$*saGAtwwm*+^W{UUT5s5v@sqy4qdnQQoW@}U0|E&*!_=(W%J+MZm=M7Q
      zf$@_%jGlMH1%xgzQ3`Ms1)^o6W@%2V!I<fwn6=&Q;%=q5&e#i1-5@D}rBX28F19LV
      z&9Dq-UEp@6&zwM>*^0ny=7aQ9$iRlZuSX#;CUFrmhA@&6aZCt=Guevrq$MI45*R5N
      zmi}GqU{7!CYI`P6KUT7<npx2rhWhr51M0{E%V&@eZV=BcY=PA2f`?Czi(da<)jAuX
      z|Jc$@@|p0o=;(hj`$H6Sn2+G9z(QYIODtefVDO;j=+Be@JvA?45E+RX%o4n&JKH+P
      zDVfRkMzTyMOQtI06NxNx0z=HGXl6@qJ1eepRbtt7*0p9`^~>$emU4X|@hLu|tLf)0
      z1|2jAeJI2F#~8OHuHyz#pSG)nX=jLImz{=T)w+++wiea6d@b=6IIgj>-D*_zdxq*)
      zqC>-Fl_ns!EK6@}m|C-`HzU|&O9Cb5pmm8(@SrXWJY3tp)qAo^fNj0kbk5Bk*|e&r
      z-Q+2Ebf<3bOKhV=MRXNc)*XS-V@2E=G!-$+>k{TOh!7I$)^H!?Pb-92BBAaV_YppE
      z4Aa*3j4%?YaTn$~lFPrsXzn+R=L)Zo`h})2F7Z9A-10vR%6|}*|6-E16qA^ODSQOD
      zyN?MO!t^QMW#1R0O{mf2TY*0FK&NsqG5Qi$9`5|bT`K<?OCc1Fo)?b(RMc53&8Rdn
      z(_MVtASU1P5Amjh&y>$+ikOSUQhX%Wwoma9YTSJZ@-CYL?o|HdF`JUh<~0fe`J)$k
      zkIV#N6x1bm?I05eV(}1CTqk|NNsr9*DNCEeatDQ#4^z0-Cxu~BNRYyCpA>j`y<VIN
      z{kejEem?XJp|22nrcY>IcmMQXx)gpsa~y7}ad>g=IK*#|!%d{Q29HD0ABPj)W#6|(
      zpHM#&Pm;%;B<a(V{EFKhy%<N5AxRcYc9Gd6nfpj`JrN|`BS_k#Fo17dDeho{>lk-)
      VxQly4P*L}NsUBd<jh@4|?*X<#v(Eqk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$1.class b/libjava/classpath/lib/java/util/Collections$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05f7a9d776a4638ab47ab393a1cb6b40ed3e47bb
      GIT binary patch
      literal 1138
      zcwUW@Z%@-u6vm&sb?r7P8!$i+1#!y$D03>l86h#tOi1R4ZqDetGHzH&ce}KAgs<Xv
      z@P#H25=r#EAIf-cH?}GmP1El7p6B`9b575G{QUY2KpD>sL>Ly2tYfP*khW8*x{kv;
      z(sqTPEgR4n(m~L%#9?V~|A=A+bcWf9Wmj^~lCH;KbS=NZPb35Tz@W>nO%R4`{d#`W
      z7KaX(u4r;uA^o;3Y`Md*k^3J*zRjRj-2<KgL&`(~$t0qfF)@W%hG;I|R*{Se194K+
      zZNVFZ-ahwQ*1p53gu2_YoVMlJ>V34SsiYZ}{*pnt5|F7nO$3Eza{2n74I)jVX&(wp
      z4m?7}a`{%PlE5nN8dzgk|95dF)^U&e$sOL~LaJP^9Ae-;!`g(^aGQfpw>EUtPCC4=
      zxJhI&L%sEQ&pqY_^3>i5>aFkx{l4o-ez4b9Uy&RkYff2{O?TjR_)A;0CmqUoQ*ju~
      zT_Lzvbu8cKzJU_M{Ivy=GF&1<@oG(>u3t{oHuY|YI-079j^p}7c*SMcJuvYMTMTh~
      zJbeq7pW-)v1&?V8qIAa)p^JtANT=1f&_6(<dkQ8+Z_w&Rpa4>Z;u)q3=SUZ{Gt7OV
      ztqA7nIZYral)i<8UcmyrDKlBHh?_yoz|sg;qF)t@6;3htX$;ZTrd|t~V`K9&Zjovw
      z(B2LpZ)l}7D+=<FGKx}0w4Of2ozEA@zCXu<?_>6?sz`qgLvO;=Tgd3|Lg%cE&)Fd5
      yFv%w)e*6MCVihK=VV*qXkB|Hsih=4O9tCGcXtp=0&&z>I?F=g@6J4oS@$?t0`}R`+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$2.class b/libjava/classpath/lib/java/util/Collections$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..250ef65e9e93c1b6a9a2f2042b72911bcd84bf41
      GIT binary patch
      literal 1103
      zcwUWDT~8B16g@)=+m_XqA_YHCz!mxdwD4L&Vw##53Op2>_&D88$~N2C&F-wRf5kuG
      zvk!(u6Mgqb8SgB$lvpAUGjrzNGv~~`JNxVRw;uowP%|*cusYx$cr{XvTWxr*D{SR>
      zGPDj2BpEhulCQg=3b?IKxo@?dq3?>ORKbX0L0vkbb--Y?W=pjl*>{EVBpt02|HzS!
      zI%YU2-siwI$K|qLJ?{>PG9yyzFeDpZPo%-HXks1<86@z)gn@?)JH`8oWLu6DXVI`L
      zf(zbt1w+2&+1%~$z|s40FsVyscznnG52?yUi%U<AhF%obw8}qrw<y%T!fm6G|JN*W
      zaZ=ZFhvrl$REN6}g|}xERhng!ZaaO+RTR*nRFPy#Gz>hazTB|i$uRPLFHoX)?u&ry
      zLYg0K;cJk=IyQ7KH|ZWl-6!TTWZGU7*y4?&FPWRFe_zWom~W*NLBr)?C_)1}3|s&I
      z+y+VvD>HedIL&0JOtt@x*Lg&}qiT<-4cVr&T`wesQ=u-so{4=_sUt%3+Cnib6-!f!
      z6sn^}?<qk)3(Mv7qarj%!$6ASX+i_aCTTUxm9NN@clWMfexZE=S(-C3n_=GggdCxb
      zSj)r`@<5E1@hIk)SRs@^fpB3QS;p!lw?;X7Z+JqHr|~VG#r|i6G$-{P>+i4d;^)MB
      zf%q^!$G+E!sflk2Tja)KH&gTC$Qq#}UdHMcUeTH-w2dOl<jdld`LTNiyR;@LyY~m*
      CHwSqD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$3.class b/libjava/classpath/lib/java/util/Collections$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4b47469a4b55ad776c2761b30d28f617128ca6c
      GIT binary patch
      literal 1511
      zcwUWEYfsZq7=F&!=r%ej$i;c#W|3Wh4F=w}@Ie9zVW`O#5)z}9asnmgl(e03{who~
      zL`^i2Z~iFbd&(pmY_K%#c`wg<JLl>7^Y{Bt01GH72r-Nv8Xt^Y&A05_s$<*S^esnt
      zdO<;$VY<DuQWxfd>j>);->Yz+q1QjKJbi&-rhIe6mT_F9kdh@Ve}!Q))n&{%%r?Y+
      z?$z!gp^8m`)J8GA%@AI7_IL~oeJUd8jiUz%6$)-K=&7zU^p`EcU)GLxxmz`MZO$-Q
      zc1*+GHe5^U4P#i2%#iHRe1S&n(+%N>`jJ!f@-oYn>Mf83S-Q0yhLP6N_2d8L=Ubtr
      zCYAO|UlYDtFI6{-)$QU6Jq%IH=dR&9E+tK+o8TJ_J7HoKYhM_C&7}g%Z9zBHiP3(K
      zsTju)L*%ID^N$K9JCbZk9@Ik>I;I(zDaUOGEcRgrX$2{Up>}>1N!*QN0$F*|vkWgf
      zQL1n~i7vK6@*rxMCigr&e{H^W2hUZ)$16_FHTk+Fk56mD&dUr8>V^>9U9}C*<DP;-
      zSAQR+R<O)4+!jiVx&&re@1o(Z2-UwPOxy7+vA@Or17}agb4Z?Xi41Oqfffo$LL*NH
      z-b1$!(=_>ek|Z?+QL@KKdQW<oRyC9Tig;#r?iA|h0M$?5I6^WOk;H3gBuxa-Dh4nJ
      z1k!B`1sD~>7$NUyAhU+$4q2Ea3t{e&Erk0)RhxQ|QB#>Oc(7Cc{R0y_87b2{^$m|0
      zPLau;on+5`5l+Dv5ghbR25TtjZG>_l@dirbEwsctBxxNdUAyRD>by@aiaE?T=AEWh
      v`XW>*esYnlR~j2b%ErRT1yY`_ZBUXB7O{lKv>_}Qe6TUj6Fd#ji+J`A=)8gi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$4.class b/libjava/classpath/lib/java/util/Collections$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da444283677c737172de9fe1b5e2ad20622c5b93
      GIT binary patch
      literal 1543
      zcwUWEYfsZq7=F&!C@URIu7b+A4BZ9T#_-w+QGy9!=m*FWz8Fi_K(RX|ZD*Lj3KJEh
      zi5mIlk21cez_MXy)}?#j^PcCup6B%UpReBm6tE^C#4vuOz0-1a&$M#uwq+T*XWHCN
      zu1E+oWP&$$8eBhgY;L|cs+*qSXrApb^m>P;n_Om?C<nV0RRWbvZhET>&r=;y7aNww
      z4|1>ekI1gJK(F$t=?X)5-L4u@F!U>kpjSo@VhSV-Fr-u6hZ!uJ+;~~9?HkUnwr?2>
      zLuFgntcvECVtr{0iv~Nlw?ggpCpB*KM$N9fc@gEG651dIhLNC}7{=Q3H;%7rC<fq5
      zEw*j#IJv<+r%~G7Qg<urD*dQ(Zk%{@)~R$5lmO8k^MGq!-JukTU{o_;l%_nTAb}Bv
      zNUiP}ClY2D7J{czXk!aS^MlEl!@PuKNB$KR+{HbHK26sR*G=aC%b0YBoolI8L6Ee9
      z31n#US8cW)kAww=;ehUCOk+t<E61?bsgUdG0*9Th$VAwJsA7^q-m&YBZoDwX;l^8n
      zEeT%+Ws`HmS+_LTHCzb~80NdmE#VQvXdsmMehtj9)kR0$(`|5r>z3`B{9xPg4(+Of
      zr=Tm}XEwhTV{II35+8XQO%HvYSUfH+G-+Zbp^xlQ(%#TIOj5~YKS9ncES^F6;G+iV
      zUq(pyA`*LzIBC<qw}KlO0(@;4BR)pKD8^`a+}GKq<tAB}I2Xd)B3lTz{j62WDZFMg
      zA8}`|{OcR0_ehn$kmU@ipU9qJF?)WRJ^w*C2~%`AK<|t%Lw;=oqL$cONU<6cB;(D@
      zvlsQnp9x-G_Bl^d>_sx4kw0w)>Gh4wcNPVOvFvL_tdN|f6!-BEk0Gv?c!qqukQePd
      Kf$DqBq4XEGnTj0%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$5.class b/libjava/classpath/lib/java/util/Collections$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8555537723d28b603d75724c6a62add1f3dc4a08
      GIT binary patch
      literal 1611
      zcwVJdT~8B16g?LTTiR7>%ZH!{YSGdnMFc-+Lt+|C2t^(WBqqKrWrZQjEZN-}`B(U$
      zB$^nX{U^TbtMSgzHmz<`0%_8{bLQNyGk11>{Q2??z+)^M=pl?ATJNoVEf7w=<T{RB
      z4TLNG^pb%HAsfEAEsxwi@lIH~j=dJxo)x$rp+7hfetLmWEO&R?u#Vf-t1|FTDt1ud
      zI7J~vutKP0t`exlw^3tZW`__dxqJ2i2yqjA=#QZn*Gw3=&RS$TISrPDv|rbbc5QD<
      zWg#TXZq;&jEKg^xgApYGVXQ;lOWa*NZAn+29Jw`ro-h=akTB97{N%WiU@?SW%(Z|@
      z4lO}(YrU|wQ&{02*Cp)_f$DE2jLL+8irAM{Q1dv)WH_rCP$_oX#3&}X{sz~v<bHm0
      z_mEpH7?>oaLP8k0OW3^pnf^=CcnnjxuMRLx5Sh^at}sTSDfLJYOEug<&WSDp5@wWu
      zHwm$dTl1>+E1^y|(Nf)<ia;>eq_n+~WBI=A8<-<ZU#J-aJYB<~RG#Ml$WI8%7m6Dy
      z63;<6ynX@Yn`7K{iU(I^)p30x_c!d|z}++P94`n_(R>Asw2f}_LSdd2@8y>sB@*h+
      zv!zxBqKpr)wT&K)#Iw0ih-GKbV1Cr3LH>{NCcC09^%DuUM)W$48%P4$N@0kxVYW@?
      zog<1x>Wuk0##j%=b*i_BX#ZsP47a}HPWdaQ-sI>E_fFe0rhXxs`rVQ-S<e{d{b@Yl
      z=#7l$$U|=LrMi~&rl$F+s_DyqM&?wPpn~^nkaS=bHiE3Sa+u}kIG6AUdHy`au)x+L
      SBc$6**4tRZQ|+~YXMX{<q^~*v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$6.class b/libjava/classpath/lib/java/util/Collections$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..054c911275115526e7fd61ed1b683aa85f66119b
      GIT binary patch
      literal 1487
      zcwUuMZBNrs6n-vj6t*gZu_03dantSvHb93u!j}aTl1)EANc3CR-9WM2lD0GQuQbt+
      zXkz^Ak20Qn?Z$u&Bx!ojJulCB&P)6I&-b4IR#DS1!Z3Seel*LSz;?=Y*KxQN*sk!i
      zRSgk_++bt<kXs*kdne$Y8Mq$9Sa4|j*)@i>#<dYm^Q0?oi@-bG<w1?2H*H}DTMX}w
      z+lTi>boqoj#}o(Ux?}o&Ex*qYsk?1H0fxAaD8^zK#T^|Q?lKt0f1^w`Y{B1jj$7Q@
      zGg}U4m~Ob1>Fk@HE$^W+A{)XmH>92_RUOZo!WE~-ZpW`M%nV|1!D*FY>Ix->^u_e2
      zCtV720}wa&wrg7|=n_!Z5E1-SKx~YBpU2zQ5fLZr#IAiH%%I~DeALKOjO^lqjtuT=
      zc*KxAPbp`mhNR)~&@J1DVF@`og(nQF!=_*DA94>@je`-B)Icl4xM^A3_p{X9=5Xlz
      z?N^Q=w(E90i@&yIqZ55$D-w)B-w}d)s<YhJP-a-XDT@XgaB83z<?Hu*#!$Hl?J{Rt
      z+$);W^_5@VnaOQoIj(PugC-9S-L{UGctu^ddw+qn(cjG87NbHR-6;KXSRx_6Jd)&1
      z!#L?DNIIf>gigIs{DxSew0s8ri}ISJcMKyk7ST)+36d67w2moE14>F_M)~MSAx+j<
      zlGC9kiF-ZU9NC!MRnj~l-3T74{7uR(eNu%p%>Tk7J&hk&dRHi(A^TZ5_K0NW5zj0r
      zBL7mPLLzapKZQX>jw6pkSXz!wMrX9}6|r-uF{upeksuKil~lqqof+b}LS0)U$aRvQ
      SlZL5Ur$gRVY^bPpy!Z<kfqAn4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$7.class b/libjava/classpath/lib/java/util/Collections$7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9085dd5fd4d8865a13edeca9bd972a3967a3f742
      GIT binary patch
      literal 1809
      zcwUuM+fvg|6kVqjQcHwVMWmusthFuoi=d)-sYNR-UO;AGd<o%5gE7G-Mf?>1!3UiY
      zyv^vlALY1rn!!#lIzA*hXYaMwS^IMG^Viq!04A}fARy4UqwQ(q71uDwv$knU-8F2>
      zNz5q-3Pe1osaf0O4>xznr=UaN#GjC&wwuUVZuyNshg&k7#I!(vp*iL3yg>V&W+tRS
      zZ=neX`8%!~mf<c4Or~10G!0F!2?VqDmOKW5ZWRhbyy{VL4B;@^a6&~VP71W87}{Mh
      zEV*2Hxhc!5+NMd0q6J&m%r&iS@ZL8DIj7bc&9P$ns-l?$>h%@ZRBJxH(TR2psOU#b
      zK-hdt1Bf`brMo1lh9^_$Mn6*wsTf3DAVkPD&8$c^UQ}_xGnO=`#JPLf<=K^1k;El(
      zIX+$>*-T%fDU4B!D;R4z8M7)TFiF&!u1m*BOb8TPH!I!3lPyX8h1}u>`b)2mE0PsV
      z<FbMofr<Z(WofelxmJ4qa%ycUvZm%Zq~i*%DY#10Qs+`J&;1M=PTq1{&C<Pg+)$Ch
      zu!5Tc19bse&2e-4y4+<MA>0-iTrJ7?9(N{gIC1-V+@<~NvTbe0-8Z{(EQ|$Yd1UX_
      zP1cHAHmq%L-rM)8oejBm)mlG5K9<KnuVNARNb`zaDeH34;PH;s)Mkvs1k}7`$+9O}
      zItrEr;{Ph8f=8sWDT>bfgQGgu6`d?OOE+zYR2HRMvbR(`<%teja^Iz1(m>PGjzA>B
      zHyVgU`99O{OQEL|DtV97>IMRY1iCZB2k6R-93YbUgy;t{1<*_HFnvMbaBL8#XvKj9
      zM;}gmcDkQF)lEV&wlnh)k>M{m6TrJ8nhp+&Wju;gRhUn~tFt&qe!(}@C!6v1bUc%N
      z!FhrAbzCzwa>7S)F0^7uG%_qSWuV*NoFOF|@>y!iK(p*KY*KAG*Ca7?ea6UVObs7m
      z?k!ciTBGX$y#I!U_2{inxbx$Py^DJiTSrf90|T*VHC0O<RV|5}Uo{#}|GX(*afs;;
      walby}=QVmmK2sYWc&H^5=sScUig<{};GanmPpG}4-g!|kioYxL4w7~CHxp}u761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$8.class b/libjava/classpath/lib/java/util/Collections$8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb009cb9f7f87282b07e1a7de7abf22036296301
      GIT binary patch
      literal 889
      zcwTi<%We}f6g|!)8Il;1rY{Qg0R)&yp#h0SrBvNSL8>$@i$+~^=cHER%JE3^sQ4%r
      zAb}7p_y9f%aXpRNv>i0EY~OqCIp_M$pTEC;19*owE(#2*=i)+i(nRS_FVtF&5*3=b
      zwd<nD(8!Wnm~rRh@SJik$_&fbC4G}lWh873L+L{3mSR{6t^o&$O@~pJp}ePzO7=<8
      z%LDi)48>k}CM#gL&*9=;6%Ohg6*L$e&jRX!GV&;$4rMeDLoFGaK{yinL`2HoXTf4J
      zQ8B|>@So<$O?@Kb!!VM4EvM2Xai(xu!$UlBu|~XiEpj}@3WH0PNAgp`P&2g62&iq(
      z4{pB~3002O*oY*J$XChp2ZOE^dCKt&>*UmAOx5EsjYjf=vhEvmUUw`b13xfEMm;U!
      zSd!J9yFx+kQ1(b}-*($KBOS)dj1Ofp3C~>kH|98}$gz#r)SH|iZO6-f%C4U;+r?WN
      zqC=|$)@a&U(l6)Gs-Q~I8l84gpbx0Fx4(n8f8fDax)rcsV_Al(okcY1#OZ9Ki&&z4
      z0n1pKvAm}}%eB9O|HLZ8=PQ=7%{Uvm3{S95sErJ}na8xn@Z}bhpTktd^9<F(i!6G{
      P0YYAKzr?Ey<)Qr#ysf{R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$9.class b/libjava/classpath/lib/java/util/Collections$9.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1d9438dfb4284e5072017568c3382fd3bb23443
      GIT binary patch
      literal 902
      zcwTi<U2hUW6g`*SvO*U@Y^n9DexQ8RfWB#H`a(1zL7Q08_hFgPX|_Af?n2^!^2J1B
      z^uhSxlRwIMXP~BrCE1TV=bky|-nsMp&-WhyUZCwEN7y+NbJ3lpD(v=k7|I}3I!fxV
      zJh+5LcJjTP%Q%sJeSRTgk?NSRF&AMyAk>Cew_N6Xg#3YuRC-9*ZDvziCj_^zC$a#-
      zrjHHei*Qi#;o&;LX&OR#s3Q4pc0QKzNQ^^Cs19`?!V?iIvtEL3da4q(8m?)M>+u3>
      z&E&?ipio59?$P*+S-n-HH6Rp@)ie_6%<L*ON24A;t-&U4;kJie!d6yeK5k-*K*H3z
      zBFl-fIko?q_;7LAh{Fzq;<28^fqbJ3RJqbg$LJCKK@`cjABrTA+;(S8+bd%`VD&@R
      zFTak0P$w#yzLn{zo_Kgl*v=I3(L{?K<Av5yJdr&8&bpaq!+6dkcK8xfrE2EPQI1~^
      z*BCEw^pe*GDYo~&@aHT1PnJ_Qn9cBwbAO`3k<YO~Z=h;%K5b@fTYk-|P1(!1mD-<C
      z+<*2BI}Xy13^-OWZv@<5R_wuoxD+$d9o)4BCEVjEhx;7YYzZc}_b<1{n9KW(?L$1W
      TC6Ud7wHD<(MxFmIo}lp;!KluK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedCollection.class b/libjava/classpath/lib/java/util/Collections$CheckedCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..466d1fd354823900b52eebf5a8d11956f980d5a5
      GIT binary patch
      literal 3768
      zcwVJeOLG)e6#i~zl9|jjfdtZ!hcL<`lL;gsh?<E=90m-A0479};G;8Xk`6uHvAcr-
      zRD8d8u4G~Ps&eB(EFcxB605YNwA|p%wN+O62i*BM_x4QBWV#1pv6;So&bjA&=lf3I
      zJ3s&P&9?w{;r$3|7&>N^GfL0Aqv<^vQ`gm;qnU=iB{QSuPODQTQv_j#H6mD7jOm`E
      zle6TAppIc(P>KkmMUQ6o46Bx==-N4DQdcRBEnY`e%cjT^0|yw`VTM&1s_ZC+GpgwG
      zYHjnM`M)>(@ry~$9D_U<R3*(&Kdem~iZgFf;<mt`zL9KtA4P_pvvU;GI9Tc;qbs(Z
      z_Oh33#XWU>nxQ%S7*fe#0KR0MqYQh3gWaUTrTDgR#+*`P2%%L%GujwJ$<EPwFx(}f
      z0jv3HlY}O$jo@yEjio$8^SXY_)C@<pvI{wNju(p|fmVjqgPNfZ&F3doYs6*0Y0%6O
      z`3gxu?*(JnnbB;9&OqD&;~+R&mWQ}4<mz5&k|N0=Won9{Ia$VxJ6`F|agrcOVV&bK
      z>_ATh-PBSAff9Bi#Sqi%0Wm*0HI7=`E1?sq2=*|vS8T{Aw&U>>#a@Q3BQt73)z!Re
      zI0?;8n5PmBSu`VOS{4CG@X_gxVK*M&(mYs!cG$5rV_Im)OwO>c5o(gUpk}DmeqCp1
      zsWMNz<4sk@r^}s`ao%3Pgh!BJh-xId;+Pf*k}Q{RpkPnOk;S114iYZESHhzhAo&e-
      z!J+T9n4uhc6pu0N?N8)YK14-oavm(smti_3M;T+h_7Mp~ILZ*2QS2d6hQ?a-a9qMe
      zpl>V8lhK#Vw}|ne;DQ(=-mSP`sLkoBV)1NGN*LuIO*Cg3j-nYhH%>?x<HHdz8U^|7
      zRR~TM*?mUBNsg?gY8*k->}-C{Im_d75)|HJTc8B)oJVkq2JM!gMsY(7DrWegX$;9^
      zkf?#jPMxLZ%`;;9bqTY)?|RonU304`A<x?)D<`91r6HITGT7QVRj4z-&1WRoAORwd
      z*>73OSw8cf6aM+&vF9W_j|C1kARuTHL!xiE*KgmKoERCV9rVNVzQpsMr>{z3SR0ro
      z>X`1=S2?|fZ;~IUuS<9ZuhI!IY|dLb^`Is$p)&rv`8Eb=z%W!x@TuAnyh9xa%0+jG
      z?<`{&>&pf;<Tu^+Zm760({z%PET|zuBK&qhJz`{u(=}cL32XS}K<{hBdm}yRitygo
      zkq<OVGOb<9dTgNQ2eb;&vn{oVmQ>djw5PUT!N#r|h+jiuY!UZdzeMg3Hq&n_>Hzs8
      zgyoM>FMomt`BOB>pP^O$99zhra8qF`wgF=0LgFh9rUo6$qLN-zqZhS~q8LB3J)m6z
      z=z?gScBd{AysOy$AsT4e-nE2XHTd!xc8@jPw}|_%duSVY9r+UC^4E~%%L1Y7=I{_E
      z(2F$H>saPXdcHpLF@8LGXdV`5Zc^@AdS*F<Biom-pP@JW1va;Ymq34HzC&n;1KmMD
      zFJhHIcbKE&{y~O||Nh2z(#B&1zJlQIQ7iv|Hu*<vlW$-rt$XF41pE}jyr>61i^m1Q
      zwb+kgTGbGR%^0DULZYQoeA0_Q;l($4@qHA}__;~HyuHJsZ6L-$F5wA=(h$TrP4Z0|
      zfL{eB$&D;v>R4vsRT)2e3we*zUQTknpxk(Q^L2ci{Ck;Baj(&MnNDu{xR?H9nL1C2
      zG7}YLp7xjdt4bM{&yHojr0089@Iq&Np`U}xd75OEb=I>LazwYd*ThtTtFVY^z6N#7
      z%}+zdhiVbiUsaS@RaU0iSEku3Gh0=P(>{*YxBPD@^0$@3@R!+o2U5)4w%~LAg1hdZ
      zAl-$*+Ryv7Pp?pWx-)}w(q&sI^r02!Jns?nLZIL;*7%Z7RUzgAUalfIU8n`<2MW-m
      mJpEO?R+-x<10MAOj}|h9@P>f=Cf*Y5@SJbsU0S)Vy!RiKwbVoa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedIterator.class b/libjava/classpath/lib/java/util/Collections$CheckedIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7b49bccd06e10f472b5beca437589d33c12762b
      GIT binary patch
      literal 1272
      zcwUWD%Wl(95Ir|`V&b|<8X8Q2LV%V!X=rGdG>U|xRw|0hqE!~`ob;-3acyKf6|DFH
      z1g!Z27A#tc3c-R8;G+<8?KDq=vWV|^=FFLM&p5yT{QL!A6I%)r467&RnOW@xmR)VQ
      zw#_?%<vRXKqsu$5_|aa#Ju`4U1u{b}gxaQaTz%0#A*6y7Lw-nbg=SzD!(wx~vdxe_
      zu#O!w=y{xBDF#wI+}W-ZP7dC_Cdfi_IJIG$zE7nalew#&RLyd%pw3_zal@ymN-c)1
      zIA}x|KSngk4flwvkZ@f?28#@mQEH_@(ljWzCZd}f=AbcTo0h}(d#7#g9hz;Mu9R=O
      z9n)@^o+aM<Njd0RKEv9GnE&h}G+~T|%<3~$W}_JR?C>`MZObT)TsPV;Rg*@EaC1oF
      zp@w@XGALcs-w#{p&M!q}O~VRS$$gKXx@TOZ${Gw|i+bSpybj;Bgs|L*nhi0FLECd2
      z?uF)ZUqO|j5G$T+oRH7(thV!XT5^3l_0RpHNPCj#mqY@2u{es;^yf%GMNX`5@IDWj
      z&J3~?N0}TJ=zK?!L}#}A9r^P5B?{%rCG-nQNm!z1UNq|OA?qKI);}Vnf5I)w7o#@Z
      z#vLGxqVXaUgA-UDL){&q)B$RqP)uxPAnJZ7YL~JCqn5v+@B<GR&Ifu@qN0BeHE0p4
      zuVHyCBjz!&S9->9K4SPf!TDuIPWmwVoX^KOOAJHbRJslHbMowBCSD2ap#v2>4zq%J
      L15YT5oZ0*fssaF1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedList.class b/libjava/classpath/lib/java/util/Collections$CheckedList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2ffb7c7e718c63bca3ae2322c86ae85a1331969
      GIT binary patch
      literal 3851
      zcwUuOTXz#x6#h<<cG_gP^^&F+B$Xn)gcbx5+FHdJG+K+;QZ1r5O{eL=bOth$QWV7-
      zUhsx^SxeUPnHL|_rDA0*^}#0}eD%Q};9pQ5)P2rOrqjs;<RLR>&e>;w-~RSK`{b8@
      zzW)KhE_@;(!q9y}SyG0|wx$ndO<h+Dwq_buPj*2qoK)w=HOrO|W7vK}v(+gH^$hD*
      zjkyDcjh0%{6n$DPS!8o0{{RDfm|<O(eAtR%Pb+#^t-~L`E?xfl_&J7{?ra-h>u7|b
      zaZ)Q9id`<L46T9X(W%_X7}?a1YKCTyG4%8X9XQ{*Vibq6x?)))ebWqsK{Llu(AJsd
      z8)8{=PK_gqRv8<SWa#&MSQR4-t`Q6=88X%}Y#7%Jb)vjDtCpseS)D>^8aE51lR|3I
      zw>ufL7c`4uYbeH=R8jCu=NrzRqJ5jH;2Dx@0m#k;36Efn_lmyBaAg>x%G?|+_vU>D
      zhh|TZD<PZIn<qm@g6%SH!<IPuFd(6yqzJf_k--jzxMt-=i4=IgdqeylO`r}#GPa^e
      z!Y+ocfTOHp*}3I{dWwhBfZYt~sRcD{itTC5N}Ka(n<mbbOrx0Q!VSi;6L;~<?hRm0
      z+9k~>idgD2V@_Qrx%2chdE%<5kscH-l_RNgK&P~HRD=nZN#9XoRbz2<z$rV5^FG`!
      z;Q&KRn4OF)=vXyqwpvnbv&8ez=ku6%=SLDah=(LRNSv!zW#mBzGiIpEbpBc@9{gcR
      z7^jmNoNmAb!`=hwMU_``Mbv^vk1K7M_Ub~Z#Pt_?b4HKJIE=@sMivxnLV!nmo!m~z
      z7{xuri97R(FDM~(2JTCABJ!f@>Y{3pm#!O$%Fr3UTxlfg>9V3*oW;{Jp5g@=Evh!J
      zihPJNw1MVnFW)dL;~5;Mgit^WykCfj@_cDtMgeqCBvC_$=4({8ustE8hy{iO)v}#;
      z?D_nnjFWs`=AAO{<-B7}&c}Ug#BNK?MJHeh<e~4TZJ@G=)39Y2FylClC4OMeFl2(w
      z)FTkudpkWP!x*P)uR4@Dhvzv5I*Rorb<tc>`P7Rt&T;Xh7SGo9(1sM2zecA+xhZ^A
      z#(BI%d9up0&OO%Bo3A27+uB2>SNXju<277}<09UX@HQnoRACwK;yuc9VO3~`-T&hP
      ztESU9Uosc-PJfbY(;dYp&2p)r9@KcZ-{?ag<PNBk@`j<7gj1Dnn?%-6WM(usTrJqx
      zjqi-$feKX!X}S%f^s7Sz9gxsK<3{>}5<#3Qitb7JUN62k&=@qgiN?-M6PoG0O#7qs
      zmiq@X*U-{G@D19&r0*!&>A9Y-wf%|uw!e^Q`<pO8n8F^N=mNxOv%ujax|YaudW}`L
      zXSKnzx}B^Tzjiz}+XS17E}NeIuW?7_Tl9X4O*Cxl%&cHAimO<69Xn^5?!1OQKd!QD
      zLJUYrNTeFjo{D2@D&b?=<1y{Q-Pk8M^k6@RU8YHTJ67GU)qac!e$+ZWeq(~)@8q$b
      z-nq=gjuqU?FkE*P+uG|^kYo4>j||5+@%9)ozv6Ozlyl`4hZwH>`&%WN$tXVe0_fmQ
      zQ|*YPIw*iHY)fs%5RLbzwunIXP=X263nb?SlEV>96TJxCU{BD9`%B_U3N9vs>*vyl
      zo!#!vBbf2*k9zhaWXE`yrY8^du&@CVobSL2jzxTQ>p65PBd9s*B|K^gp)3>NvY?o7
      z!5Q!Ao}SNE!*s4diQtO>%)S~hjsjsYbU(OJ9Hcj2i*xrYptBncA}72%9^$U|^qLvR
      zC*318l+mh{nZ9LZPS$j<SGzCXvU|E_JmF8dFfn1%dL5@{9CfH~@#4LPaxev!Po&l=
      zky?E)%O1>G0dtICIL%}QhI0H|q!!KvUtmcuuw+%LlOE!^n^x2d)fIK=mMe;GG7siu
      z0W<HlP4_&%60O4dtVX-6oL#x93HjS)r3umX=V8AtunR7Bv%v0J!5dMb=y!N4NZ~6V
      qg=UXJGv0S8G~*JDBEF!TT?$crARsT}L-2#Z57I?^L?egF$NvF=n+jt9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class b/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef7b4901627ab5d7b4eaa53f063f282dc3bc76d0
      GIT binary patch
      literal 2065
      zcwU`U+fvg|6kVr<7TO?C0aI>9F4_w>Z>SWiSU{^4oq=ISU!2e$Ay^Y8NfDp?4!^(`
      zA9TjcpfmdJpQs<8qce{CBv48(Sba#&IeV|Y_Bwm-<n!<M9|4@kq8}cH=!Uwbju&h#
      zKb|u3d7ia3L$`)f>pc6A=Q5gQr)_Skwqg3wz%YC$d>`s#=-P*t(lB`P8iSmv?oKc?
      zFKKJKY8On-&{qRCy*!^t64p1Z>6)En7>U#(bnSUnUmH*5Rm)05R~RO1!Cm6=7}qKS
      z8&XD&2jE4Ugdo}(BBe}+C2a=7Q3-xDF|=khoi7$1t#Wf&UCq-)Lm4Bh=2uix6X#uH
      zgT1a<4Dpf-e`!)e1U=cL*!Btu)RKcq2)CPPqW%nfmG7!vBL=UU%Q19DO8mE1H;B=x
      zpD#i%w-_fR$Os28h+#j5s3>KG5>Db2LqN0Ax@D_+me-)Y7ephX68g~ZN1UOzj3}jA
      z_WX91Z;DGbVU$5xUgwJ8ge#h*7!MSi43AAiUsFW+#sY|8Ty%J%Ea#GKYWkXU6=sOG
      zRmh<V&=nbi>#B9f<Xf6ipdNZ7uFMM(&fz=_xz4xkw4USJjxQ~I2?-Z*iJ@t;7}gPq
      zR?E;BiBb*`b49{5W*A!bVjNE4NlBO$Y+j4o;=CYX4*gWmC8J<w`GO`I-&WG?F_DNt
      zO6xi|ox*X;kDFA0s>4CkTxC2M?oZE8RccNiK4H~9zZ%~rCTMoN^fb~F65kW8&Gbw2
      zAV4Qj(<IuvmKGeLb(`>BTBTTg<Q-aL@iz#)qO%tr^gbed@)!8zuL#QD&`CDM#iI+y
      z0B7gs5jz@MV(vbG>M5cEMN}`Lm>9~Un&Xa|rxfL(bujiCO8hMbo}rDlq4*9W9y~|O
      z2gL4%Na)z7eUTwFkjU>O@CRi1CkEtSj?gZbswi}j{_JNcZTA6RPtkXld`yfWy@i+s
      z=L`gdf*njUyeQ`M2~W7m$s@U_-8|g~EP|bh(XGxoRms^|Cnt?|v3SX9+?N?%mT@a}
      za?jS%d$m&UXq}vM|I+OF!<!wRLNJ_w9G<~IIQier_Tri&=Q`4kRB_cC$WV+c^VT05
      Cc%<k6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class b/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d402ad1063be56f909c40633059a2c7b526140b4
      GIT binary patch
      literal 1781
      zcwUWETTc^F5dKbEy1gv-n-o!$qHVdfprX=RADU_iRTJAZQJ<FO1QymU+1--xmwduR
      zLe#_`;Ey8CIW0?DR?5?vGxN=S-<g@+zZbv$09eCo1p$WKfp)BAo33GIOAXWHx@$Bn
      zCt2F(`XS$aryX6IWy`fss@zo&Vwk@%i%<;8AwQ{|9C3!xibR{5wU;fKn&addqE%zh
      z(%hy^@#)@pp;q0_7X|8AGn>3s#Sc}NsBpos47bQoPF1dSk%;^?;{J|wo#9JQokFcl
      zMA!NKy;A#s#ER;nQe&6L5X6XzI7S&3`pQn%qhJ_UF@UhJCRIccW*Dv*7JuLTy2I_7
      zwqsJ4#wrb6GwYgdh<n=^a`z2~VZDRqcC)7DGDpyK>k}2_Os2Zo$k%3k+n1_P+s@ah
      zC96G@qN}2Xm&2X#8--x@od!e1aJj9y4Vy5jbVu@5+fSHT-$1K^f<@XjfAt%p_m5Si
      zkfz4yo{An|K8_`<C|D--esL8K@KBV>s<?}A3`wksRaj^Eoa)=SYcukDqwiWrG+pP8
      zlg#yeDYxWF`+UZ+YNKiE{EZ=oKGIQWRbUy^Ez9DzL~}>M%YJ_j;#EL(Cw)=GcZH+1
      z>`}<DS150GsQj>VK$-dKwx6@^<1F6X6>tBLqv-|dFB-s@_$KM5$XkT&(T;meqT*1=
      zZg~bVMCUj1570T5Sz12FaAxI<%$d*`Cccw5h$#_62uQ>cPSA2B1~Hl#!Zi7xwlZ-C
      zGk~-bm?cJG(K-<a+Ny%m5_&?I>&m?6W#0EP=e^8`ml>l>Cf3!{zaaI0B$UXT`i<nL
      zOy&n3{X~X=jMa1GPQ5pXP9QNZb*rt6w(hwu59t|+;0Y;Yvi>5SA~rx3Cr%}?S8nD)
      emJ3LdXVTihb16807uZCBWHYi}(eqlOi~j)K>b)`m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedMap.class b/libjava/classpath/lib/java/util/Collections$CheckedMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a0dfd454dc727a565c376e76b7dedd837d9d13c
      GIT binary patch
      literal 4991
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..205831a072fff89bde92436f52f395b7dceeab51
      GIT binary patch
      literal 963
      zcwUuL-A)rh6#h<Iy3!OVD5Z)&pw;+GHSx-AnvfL}%tjM|-cPp^7#wEJ&aR2C;~RKI
      zLI@Awjo$ej`T&Hpy97#GNx0aZGn4P<d}nrl9v>V5c!fs}3WOKC;;U#SvC=Is)LI6y
      z3XN@gJ2Lnz`=5mAhkL6*Ag%S4jUAK-%a>AeSeZ~ihYiXQYF0){=&p<`6Svmi66if)
      z%43ySn7Au+A}8vH(_7#F{QFBNx0O+GhtPcNpKGQ*Zob#TY_~iutaYDs36mRY+lV-c
      zBw=Nk(%xKiJ0raOG$oh3urDhpVy=oRrU)~>GV(*R*OSqv=xNrR^TUAK7aW53r-!9@
      zM{%~6f2Dc499{E7hI6HQ-@dTy>_|c$>_vaZo%ZnhYUX)p!u;3~r9NY)M5t_pNfgL;
      zDmASQIIW}vLUr938D$h{9Xw!*v5gTH{?i(v+g^J!;Qz6=%OtmRdBWif9{KoOyae&(
      z5+?Y$1qau7o#g+afC^Vg@0{!D>|_QtUPHzgd3ByXd%lm^A6yo3o!=FPpz#ak#&6u<
      z{ZbCYJnBGJEufK!I=IPZ1uR}b-9AIzIYZrLR1x<w`z0)AF8qz)KANnMxApJ@bNvAq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSet.class b/libjava/classpath/lib/java/util/Collections$CheckedSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b30b3e602eb601dd9dd8dc06f1fb24bf9c719c1b
      GIT binary patch
      literal 1290
      zcwU85-EI;=7(G)cTVQKxZBYwVtSEnNvHm7PNDQ_KhG+~G8}9}>DO<O@x<4lRD&Bdk
      zHzp>gUibjMfiI(evrB+2oAzRNXTCY#Idjg;{{H*(7l3U%R4~JkJL2zo)pazz+B9`t
      z^c~GK?0j<|`ftQRM>q<i423gM<C20H!~7Ub{R}BvSQ^*6!m<hSvh{?4JtbI^C>(A$
      zU9P)g_Hq8x=Z}B>ePM{zHA8b63^$7H09DPO>fAW2Hg#^>wNjTM-q8*X?zom<*gVxy
      z-`lA*rrP|f?2R_f1Cc-kODa@cWGGJ(jD3YGFSIp7JadnG!rJ3Ko%EO5W}lpL@=Nn!
      zG3pF7n_)eac{1u61!GIvpliwS;Vls@PVIsr9aJRTP_=NboF4<ja#&`PIW#spAMwuR
      zI&E~NI01RyJ0gi%>2(}*aw_t;Np|`pp3{jYQ9wySk@UmXRpfA;2uvC3lnTS#fZGFk
      zdJK_bsU_K}DmJjmkm#7M)fc;(j3G7QeM|B%s4c?~mS;)W3ht4S(5Q%M92UcVedp2i
      zP8w&&JT6UM#bDIrluXbwOV274%+WVa|L6?l)dbzlc^Y5vDho)_*QB~!QOcE#A6WcG
      z!w8n?ogfG@uMo@ZV}<59ABHq80p92`t`NN(ts+C{Yyh=3LR}r9t`UmK<Dj<`e?fCn
      zL9+ZE>y;DSn!(r624b=;)APjBK5QhOL>U!Y&w8HNa7{`wd2&PgUHZzkgrq;g7Mo%}
      h_Sk)f#E?B3sH}M%w;>bT#vQLJS?}ULjr=4Z{0Cc6DenLP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class b/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abe198c261fdd45c518defd11097ce1b2b9d7327
      GIT binary patch
      literal 2347
      zcwUWETTc@~6#k|K3U#>^EJ_gzinawTh*w(iQbds=4`34?mom!2vWvT06MlhDKKnN`
      zQ3;xu_-gzmzWYi%GYdmY7i^mCoIRKCeCIOzYyaC10FzjXAjEKGLw~DhE1qFy3$|(U
      zvS-+qd%3XA%bR>{*>*g>wy1AM(8Q2D)mM78F!UUGsc?oampg`Tmbl|m(2Mz52KJ1h
      zy+8<_Zh0l$tnlXe)YymV{jkLla<>@H76Y(y3~kHCYfJYk4rjO!<da`n$gPxeGvwQn
      zH!Q=OVVF(@qWMZww_axprtZ4+igbyg7#OV59FGx(Ag%Bfa7_h!jYkp2Sq)u?Gu)`g
      zZ<JOW7|v<X(9Y0VG%WtSvbD;c6@AsD#>9$tnHsKB+v)v4+2pMoE<<&;)5cEyi)`|p
      zm7Q&h?XIIhlXxrU=G)`72}yU5bfUp*Ra1)xcQnx8M?}l^*0%2Gp6yUqQt6tUhZgc1
      zJi(M7ml@8W87U2yF~ZRL%5Yq7f$uQ%9!AN;ORF1H1A#TC(iA0P#x<mop?0lv-QW0h
      zsy?DRb#;@6Qv?%eR6P+%u4}l4tQh+Z4Hqydq+1#;VlYb59kEN@M9Q-z=U5QqFyRqP
      z>YOM{fX-;h3+63uWmOW-1rTq%lo3%%L)8>C+{XhV^UATeB;$yu8z#94>k|!+k)^pV
      z+ZCtG=M1q)T~+IIP2e+V^OnUOxeDBkph#bhz-<%3$M%ikO@3jzzO+(+ZsznIuKyUE
      zP&kq_sW3gw2%#Slw36ILALJ0Ch>5#Q?;Y~JldKRUCE3@+&_m~YG|>-e&y0?Z@1i#|
      z`UQQTND;<)`tP6<i7$vGzCugvQW7BJ2Oxm~KuUfhA<-TYw2)|zC^lK+KcxISmH)8v
      zza&ec%c3Y=krd}hE4-tb&*<C3Rfdm>UyHCLeo9`N?{&Z{S)&n|nYdI6do&1ptRDM!
      zgV=PJ6!wI~-jHJf`oDv{6!@cim<)lWDSB@1;`Z@ee`Kz>AEo-+kGq&Ad$Pthq-;4^
      zL;ioY-K($dZ-ceb%~IG8CH6b2jWz=bRomDe9)*L8lS?!ZN6$bX`snPJX=J!6GJ#oH
      zq>x0pAxY%OYe;$Jlvj?tn7G)-8t()&e(r?E``m6KHgF4ZI)eu=d&&TOMqxaa4Ce6+
      PqIIJ63s@w{XZHLb5s2u1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class b/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc233e2ac83311a0331acda8d2c5e9ce7c14b7bf
      GIT binary patch
      literal 2153
      zcwUWE+fvg|6kVsKt(0K7wu+S^Ahwi(2ny1QU;zageE@NMOv?d+Az_l#(ed)^2lyd6
      z>M-DpzWWuv`wxu!Bs8`(g+3(RIeYE3*S?(oK0f*hU>uJ_@G%VS%CF?HlBK9)d0ka`
      z(Nc8H9L(?V;!D1{rW+Q$xfMbaL*Ln0feJEo{ztjt3~eSi6j|NihDkxsmKPY<3PWq2
      z7%W+{He|KL1JTLgky-c~VepwIL-(o&SC*l9P1)9Dt7LG79xqI8eK9*rz+g_%6l<0t
      zmGq=?4pmv(9?Pq;X=YO!3=^JMhw^lQb1I^m^7<wZ!;fwWZHO`qRMB`RYX-w52@+Zv
      zBCCqVpOp3r+*p?jDwWo;su!tcGBu9APY#=`9fev`Nq*MgvLfQmJ_WYd<Y$OhXCT~3
      zmP~{6<wi%n8^aJT>U;aLAzQjZr6yBVyk!sJdh57y8JnmD0Srm##{ffMOEFAZsjhN}
      zo%Ly9mqZd%Aeo{N5s;Q}14)L^4ws!REU!UjL}lK}wk488<LS(~l5R>EK}JmRmV~S5
      z4U;t~=HE_BYUztA-{YDkCg~y6Pc$?g>Xs$AW+Y4twL!B~u*GIQ#5OL!U&uedg8LG(
      z$T75R8Ty{9H)P3*N;rYYOPEK7Cb_1Uj3QrB#D26@EXAluz#uJa8aM3Wb2EfTbbUQ{
      zNCcnSB8KO=#hKdLX3yEe>RahmBKl||etH7%p$8#cAiJ6V|9lA3Ll=*}FWTP`@<NP`
      zZ0Do{o%H*f;{Eh14W~yA&^4U?j@TFa_Tw_WFA87$9fI-qXo-KI9H5*w9#;?tY|F_b
      zELsv`PE?`#TvWtGT_Y3|`|he4wAC!pslbGXzae&r>kOY=EkWUlf3!774(dchqUuEC
      zW8!MK+$k^a;acub4RX_^aJffq?kzNt4Mcx{y%7BALyY-A*7yM?PUrb*=ZQKIZXct#
      zjXUH|RQdW`-;}L?`n<aC*4Fi_!Mf<GxZL+_?zgmAVvaGlu8~8``s)?;r(!{3ZecOZ
      z*@X#9lvueSF}Fm4nsQN7_JYhe)aVCw8+}}-(Q{`s+EL-hf}M4d+ACTlTKo{pWI1Y9
      F{sDt6w9Ehi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$CopiesList.class b/libjava/classpath/lib/java/util/Collections$CopiesList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..237af598d9c3575d724575dfa7b8aa376e31cdcf
      GIT binary patch
      literal 2693
      zcwUuN-%}e^6#j0qun^V)0U{w-5h^5rP=BH&MIoh{8cQvdN~yJ*<R)EQcGKOB(;wrT
      zFa8ORKSpPq=}RB%j0HzV`|cm(vrpD@cQ>0Qgz5M|?%i|GJ>U7hbI#?je}DfIz^gE1
      zL>R_))GyTex})jyIaAkp$<a*1K9w_T8n+9Y?Z}WA5>2n=qU~5}$??uQ83x@m&75E7
      zmZs|3J+-KF8C{2NT~>{<xw~8{aoc9-vt8FsZrOx(C4Y{AU0`@FN6?OHIGd_o=N*&L
      z?CPUh^dCAj=r7M8bDi&U!(oUQ+}OHmROi=<JCyb!L-)E?HB_f=afax|23b0@nxQ#M
      zlu9~(^hRcrLZ<WNDRxrMEb|zmNGce_2!%*zHf4-5j5lxQNusK%FI&~RNM!X+iPwZ;
      zF{F^}2E&UAPM}xpUQ*D9eumzHX7G#k-6FR(gft>~vqbDw(ty5wqvYJuNSg7&vkF4A
      zm`RKd2f15o1e$tgge);$qA-%J-QzA#(l%P<r0Y;RpJ^v;C)w$ijCqEMkQ_#t-&w0W
      zYn2tVZj|ki9&<=CbZEkXp{ryXj;a~9Kxk8lYcUe+O$BdZfw1`Px~h}wR2$cJm#K;_
      z&RXS|@I<diS8XTX@RIF%Q7A#(o6a{FyNdY=C)=1k*+i!AiVhhf0V|fd%Mfv>9<pOD
      zTb6oPq>$M@nuLs1YW!An4DTZ^<AcVLH)0}=t>6Ma6d0PWGo;gPVzzH-rZNn)@uo63
      z=DK5PMpf_**V(gDjvqIsHe_C@S1R1<!a9Y%AHyYF5%f1(wDv<}HigG03bsIX=~Qbq
      zZj>2j+m+?WZ4YU&3)e~1*)b96hKTf8OMnK}@c~Ez_NBOAQg9J#^kp#&ALmcU8bfT|
      ztXn01UK3N)7aE;8ag9OA8wR&>)JQhBWqeKow4F4H)SNX2HM?=<DEXyObA_K&ugSc_
      zmN#`VbS3<rF5)!xWE2r}K&EvB-4I>cL(hB!3gY5LqJ3PvM`Vw?_5t#OXk*%YmIR)s
      z^=sNiX-!S<V>tC4dJd4<+Q$n|rc;k`a(ebL#vaje6yx+ef=)o{gCxb#B@LiYqJYv6
      zMx+EL=zPozg;RJLaCagV=I$mbnFyw6pP<$AO8Z`ulwO4VGMJ`ck=8P;;$Fw}uQ>TI
      zNT5>~rIRk0;yL(WQ->@fFvARH1GcZYVXL$g;K|gt=t+s#KMBTj#Q5|R`W*WufI1<#
      zNEs;7GzO&^7t+f-8SqQe|5d@S37!nVU&HG@m+L-gLg4*?z8L}Z8{YT^9n!;SE4hUb
      zQX)V~xcY^W5&_cNc*jS&;Uf)uNbx3;9DM*O(u%bl!Ws^+hL2zk2UuqUtbkP$L=mu3
      zxgApBf3sRdHYna%7x6wMx4$Mt@kRyK&&}c;fNhPY$|9G2EVY(#i^_P7%D5eB(}^IB
      z3B2dG=>#=iuivJMZ)qg7f}BtNrcXUCa`*%13cdvAXIgPNjY);Zq#B|h_i?*uY76-2
      z5dC<7Mz5HU_9I0S`DPDrX)Att9~%Wv=d%yc?;`KvYJ7VSpI-ec@^tk3r+){=o5DD=
      zhhj4?Z-i@zNw-N43*)qABpVBo6VfK@=NO|lE`w7h{nP}N7HzVAwo#fZQKnna+&f})
      Mcc2rNSH9i<0ITF45dZ)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$EmptyList.class b/libjava/classpath/lib/java/util/Collections$EmptyList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a72df5e753c920db04082a406fd8f7d64f9cd61
      GIT binary patch
      literal 2671
      zcwVJdO>^5+6g^L}Eyp%VnznI)LR$KP9Yb6`0wp#Mj_XplrYW%rQ$iPtqdMv+Qjp|M
      z6V|L*XVVokY&rv-VWuq%1qRr#;UDl*7_OdVS(cS)GHiUG-n;jld(XS?`mcX~d<x(V
      ztVj?TX70#$<zmlPwPMZCG^Jy!hHjm$Z*AK<P1Uj`#2BUrPSthGHsy}(o+TKL@iWyZ
      zwiHv9HFZ~B*AxlKp{NyE-!QhSosMEz43idjT~$nr$UbRYVqjMpo~seFE$jBGto4-m
      z?&Ita<!|r*!;mPex@uP##9V%rAyzXsloUivWiXBjhKZ)CE7yBl>x$WS*cqmpMu!Mw
      zqM>hZGiGn9#D2Q@jFL-~`f&Wtb|2&Xvx3X*cBw)LF-zT5c*YI-?J73I@mwSChHJ9k
      zEiSL$p=fd)YpGpbwtFV|C&-5oB%ES6Gw^Nb8_K=qp1pi~$>`}DR{dT_*>;#yn86f7
      zTy-2sMj}gg4BeJh-EtU5`SPEUo8d?lkxIHBTh%m%=W~(Oa)^`BXXV)n9jEac<|Mq{
      z?~agD21Q(8kW`Dy##M5%>NvtjGEy%4(vfJ&7d=_CB)r2gK5%ocBaL~?ktUn6wdu5t
      z!^*Y1y^lI1U|N$cyV3Vbn97!MmjcJ!1y_dFj!b+l*+$hg<sAnwzcvafVToEkyv>ly
      zML0(RFq|sa7e@ChxwUqkBIt+2lNpXi1}AN!Wt*zrrQ65_8_?Y?B|&dbSi8lLY8gGV
      zqg+;<PM-|4_nZ^NkZI_;V%A6=OChzFsp81jK>GOafk7^}qmmEYXK<#t@243xR7!!6
      z;6N$i0;q=|AP$LEFJKHQvS}J~0y3B&OLKyDCTUeC%gDxOAK}PDT8KDGzbSGByGYY+
      z0mtY&<2vCurpac9c21C`jwB)%vf@Ds;sYNq;q0)b0G2R<CHPn`;v{{&#P?q2nAd4V
      z86o)-W^O*h>0d&~H#qXN>*FCit5<M_&IcSxpW`gfdHG%;D@5k|c>q=LQ3agGt3#-R
      z%yY>5na^_cPd#+0@B{^hFhw^&A^8*%{UN>SQ4G#b_-Ai%iQo21xaE;#3%_B04@U~W
      zV*Ux<W!OVJ_F$wgGeDa4NwXt$W&OG?j^1u8jQZsPZ}&Ycgq0V<SYI7l`O*PUzdkf-
      z`2bzAcWBi2N4jKXU-WPGK@T@bAKg838>Dgwp6~t#&munXRI0)oC*sejejlQEe85q%
      zh?<}FB@TO&&odxhczT~+lE_+x0r)ssu-_49e_)LL8K@)e*O8_{cX{YG(mvgX{B9kZ
      oMK61Csu9lp??CS2NbaHsCgK{;x`~efK6M$5t{e1t+-g4l4-(tB)c^nh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$EmptyMap.class b/libjava/classpath/lib/java/util/Collections$EmptyMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d727b7b764a8aa553e69047bdddf091540431c4
      GIT binary patch
      literal 2143
      zcwUv1OH<QO6vzL!PbftmLW>B9f>=N(_&}w#fTfNIsAFqqKp7^~2*HqGk}^~Feh9t;
      z3w7h@!qKfOKY)9`g5$#R+%yg811XF4CimR)JLiASx%vM0^A`Y<nD@iQ(6=q@3DLYE
      z$<d@L%VN%uR7D?5?d%$bWntG34@2kCnYj(!(1e^}ntTi$rb$wxX;G5|S=tviWRam&
      zH(#@&rW5Yj!aM_e$k3c5wjn4+R*>_ecV(*M?ds28KNx&*Ns){MgF7;uW$+}`mtp{J
      zv<4AGGegUgq==95I~$^wDMn~tQgakQpfL1qZF-C?NoVL^`oE|cL#W)nuv<bzPVkLq
      z7Gs%gEJ2J0Q8BbaS~M8iBEt?p+9GpfTG~_uBd-y4qS79Byb^UV#Zfjp5o<&b`uylE
      zE50M2ATFSvVx*RzWLDPGsSK}CWd=<-RWSrf(HF%6fh=jVpln7TZ)_7OHoQtDf6cA!
      z)kf-931Ie%!Mj&ned3$EAnSe%)0r|MO^9GLh^rW5@JqT`HM6S}h^h3n$;&lVE0tOa
      zgliq75>fHD1bvH-iAi6eoJfY*i%?aqsjR$TK26+F_xPCT(mq#Vs-b!5D)Tt1GWql#
      zV~Uq%z);hMCMlbA6(UXv#obr~XsBJ!*BAn6HLvBw`;vJ-9IYJZP7J{XMG>{6Ea*DV
      zsi8D*4D0d5>FP3MYwRT)xjJsDJy%P$Zfgt^pd!-GOTTXT(Lie>eIr~5(Dehqg0ypn
      zo>H_jTD>D5(ej=i+-Rf!038MUP2Y+?Xg3|qLpX~LT06^jLbOt2(M3Mz%plz+de%aF
      zKH&U2o9yFzE|-JqsiJyp>P1|#5`93ci__hQ6|6HRD^#>vEdDfrL9!oFT{iV{9n`L4
      zs6)q6uh`Tziy9vNhR6ZhM!zER2_p;#@OlobLJc@Vh3!ybj8}vT+o7V=;Zm_D%Z0GY
      zQjZ-Yq>_Fl<QlG9LK0RBtIIRxXkdw2i*>^>7B^2Ei<vsdV(Jw77f!AJRvr4E)~WwC
      z?%0`5pQ!&uo%&;lTN%z+G<W;mO4ut0%v}X@TQD~vcyhCt1Hbni*Moa>hl@!k{{g_*
      BWvT!G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$EmptySet.class b/libjava/classpath/lib/java/util/Collections$EmptySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c993f15156758c8955a21274e8e4df13c7867513
      GIT binary patch
      literal 2422
      zcwVJc&u<$=6#iz{&f2k)wrLa7U!jy1)-lu#KSOOCjO$W^`$O0Sm8e1+vr4Ag?3Uee
      zrSz{r+{%Gdk3F<iC6pp6IB)@pGk5OX5I5Af<Mn3k-9Rc1_RP+E@B7~S-kbU5pT|!C
      zEaIvLg<<}Namy(81-Hr#$Fj_x;EwH`YHr>XTOCtqNHNUr_|(@t;Tk<5O%n`<q=`G_
      zj_Gp4;<t@8%VgN^$<Gzj^$6~h)_Df@A;VOIu!UiZ6~pSA>Dj;B<B!x|b%u#5x4Eb>
      zsCsdQA=PlcFejm6e;#>EG3;w|+q~T0Tr=J7fMKTX^oYP98u|_nQ(}XA3@6(EUQ~r)
      zZZv%B<`Claf5cY1-AauBQXao;%6wZ487@rM5ROa0dNG2~3eG7Y+u`fBA^I*w9Zhr^
      zKxZ+J6B?c$kv)=09xvb|!({W))$X;=+pSKQ<c^@VxhE<)oWe^QPBTo8TJkuIBb0E@
      zv4z2H5^Gi;1Y3r^UcRz+gJ>$n&!}IHFLKPpkQ>I<EsNo>o+y}vIF@XyF4V}JLm7)2
      z&JJg2%qfr8@H&IWJ*m7@+Rv)z_b!o<a@m!RCd~Y@Z&;p&cW4ZE+^C~DEMbu(*)Y5f
      zf9}ZFH8-7Gw8;)OvQXOlRm;65oVx28TfTb5)woC+-lwLFA2aBBf^!l8&2Y7OE`DCq
      zSG!G$pg+>WU^ti<oDoh(xZGYRafhQOJqD+h4Cpc{tJi6aI!@p1nHRXcwUIG9;|DS1
      zTefYw4a@L6lZGWTyao&xtKFmoBQ1!$6@$@kCp{JwoCS54erft0frbpNS$d)rOk#>w
      zdI9KUns!ZE8LjDs@38LyZB!hf|4DKMzCsFLV@3u@Cmh5fT4zU2=4fRo;JE;@7C<WM
      zy%29go_rI*Qes$2h(#BQzK+VXV<Ty1AL95nUSzmG27NaIosB_fL+F>G2WeiURY^?q
      zzQmdvSOYA7SHuF@lM*iBl`!E~CHkiUx>nl88HRC+?;{jiNTJ~kyctmJ*ycjpTT+F$
      z!xF9sB!$vXSh|A)r5~}hjdKilkWSr;)%A0Pv=EXOVs#b5x+;5U>Ti2&YIP6F|NhL%
      zzZ+Bj<6Y7J*adxDbR`sB2}Q3x1J9rTgJ&7<1uE48#nb8!sE?2P-+R23%V>mYpO>)L
      z2*)SSm7aV{)2XsfX$O3oRxkx=rXtHykvei=9XYy;7e=~~3+X<Pz4d99gY4Cr)>!Ur
      gI+D8@%Uun?RD2|}ZsQXC_sEBv$7OmM2Gv}73cY=oJ^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$ReverseComparator.class b/libjava/classpath/lib/java/util/Collections$ReverseComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a043cf0d721d820f6415a24724087438c4384366
      GIT binary patch
      literal 1024
      zcwUW?$!-%t5QhI6k3D#SEF>W;AqGNhC&3n1Z24k9a%2Sw50*H#omS{*G9Aql2_AuG
      z;lc^Q0deNUn*eu&sA(@*Y@|rzsp{^({%@+>-~WF33g9uS4lF|HP@ITb94W8X(w-*=
      zk<xy+@lu}1Ae1eAbSwf9>A-<am^Wfi_y@HY{X^C|$Pkv!TAb>yj8BxVb!DK0r{0Oa
      zC)p-6%N`RL_Nx7qK)ZyiEhb08k9xw3WqRL!|Es&V`-6~aC|^ZQLaJQp5$u-UmpP=c
      zSim*R5#~C|mwWM1Uk2`wu-MT91_;LRdbDXrZ&XOAbS~L)ov?D==k4*>t9n_JhU?aw
      z?Bop07MGUFor`0vPw!OPgltzG_#%pvs%)8!_^GrV+#OHW6pUE>S$V9XSin8pXZ?uh
      zYQpjiV&YFCnbgz~AM|<F3?t;aIt~W%xibITnNF)o8KKbjeHpYo5r#5!u+6ZUgCQ(T
      zjfU{L;Xaw>H~%-E3s-D7+Rm&yR!0%s0xYEAaCQq><T&Q}=36N656RWxoq5ilaU_oE
      ztxs6^$Vm#<`JGE-_D|UMZ!Gb;Fce`KD;#f}+gasExXB<3w+-ZuvDTcWIOcc0VQu>}
      z)-8OP05VCr{l}OWhq94*l0CqNvCrcnXO;n;s#Yhe&53H$z)A*RM#Z#{bhd>Z&W4}$
      F=pTs_^&9{I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SingletonList.class b/libjava/classpath/lib/java/util/Collections$SingletonList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0ea2078b4ad5e6bec589b4949bdb81b4dd1f32e
      GIT binary patch
      literal 3063
      zcwUuNOLx;&5dN<1`1&D293H7jcm*i76G%y)5Mvs`%QPVro6wX}kZmOqRiq%vG|+AT
      zLl3kI7Cnazi<HwsX-><&o1S*rU(mAYvb)l`k}MS2IR`e<y?185Z)U#H)vy2k^b3GP
      z_<|$Cu;;pbQyyvBsx~rVXqr;DRYSM-R#bgnQ*1+@R4tn$#<2B;<9N-oO}TEnwm8FP
      z$EF%16~$C#O}#DGG=(FvChCH$H;l#cdR?(Bh91jtol#7S2rrgTFtD=>8zzX|mUVkZ
      z)|yIJ;h%g@@&4CeF>pmw78TuQ=$&*hHCdk@nXX-@jK>&~6?I;h?WU<PM5|Rgi5FE}
      zwMz_Ja_s^68FI*xpIF2ujE0gz6nzqU@frc-@-s;=Y?IK9jSL$nRb4sPT&yW(Ra7Q&
      zFzS@NOeN6XJB-;2Dpj^`@+DeI2{MD)vli#pQVXl_G9X1NphQS9OTDc)X_x6auh^pK
      za=ufa;&e_?9J!YCj=iiml;!EBJw12aXzC5?<Z@kE5{xPAM;}9%DjX<hB1qH?-Ii6|
      zTBo%ir>J!!65hZe;!|!kWsO|-cW~_#%#d#3k82u3HrKHej^{vUTd`0ga~kj9J&t!<
      z(;0G-a2Q9Z7}Zux*)~klB9{-qmA&&Zfm4()h&^eP@IJ>elE2+g!Z?nT6uPoZ?cbd1
      z*nL(Pl6S0!j4H)-%78RoGN^^wb*p9Q>k#N#5(~1m;7&Nhq=d7WT1Pn2mODC6&yfn6
      zY}w`3j$6%|m^e{cxg6}1H_X`%$L@G0QN;|$MI!Au(h@G=BZkz;sq@v@tCQtQl`e-c
      z0SC!F7?@WIpO>|9bG|7qg}}JZigAt2nZ_bR#HLS-+s3$Q%C|((`OEEPbI3#(KBm6e
      zM#VPia|^5Ko>Clra(&_B<4sj-C}si_#xAGOfGRGP>!Fr=82K6Dp-EVTPTz{Ww4~?_
      zh6A0{X^Zx##u8W}t}6n`6i8MGpvAQ=fQW2LsDY+4RWX`oT{)$SOQ<Ix(?Jo<AeD7p
      zF(+s^EQN?RthtXE<YM(md+w!xoWXyGJ0Pwx^z#@Cgam&aV|1<1_kakxK>sgnLlR=J
      z)AUP=K(v}}Y})rY`;2qmi%qn4Pc~x<y=%0J&^uLljID*CACUcyc2V@xvzy+C|Atun
      zcO>I~V1UlHy58819e}gi>9FitW83Z9GGt@o%Alv<D>-}Ok3H~t;^HL!r-LuKRu6yI
      zniGM_uowIM8eVrWuX;6P`tKr9_#WAnRqUUAjQrD3DSuHZe^V*X0;Od9QZguD$ScJq
      z&G@9lIN%j9?U5yi1k;Z=7_Q^r0C>^|PX_wrf+v0OQM~C_^p->NkXA8z4-Y-T+YD3m
      zqMN03A6tf>;3)kQUFy5&iaz)<`h5F0&z}YQxr62bJPOWZ=;mF>@HlpJjy<$4@Pw0J
      z!NvFU8^#1qP%fOhdlILJznd(lsUcA(=Ut+Kj{k1o|BUZnCVxivX-nnP&K^kj>~vH8
      z;996nd{aQ~ber61zd7eH<$+#m$=vGv9V+rZVv#WPj&<Y>EAT?z=~pMozcR^reCW%3
      z!6Ca#E78``{(*bw8MuSQK<pm)LsV91lv85URaogC_!j9^%+f?(e%dzKuGoi3=p*Rm
      zW9a8aZ0AQY$V(*lF(*q`yiq^PQGDV|x>#MIRV0w_sGskr^kKP8IYYxDY*OrJT$_!G
      z&Qw-H{U`_Yl-l%^d{nwyJ=BX7FKpRWG-i9}9%DfOKf-6d#v|N#1UpPo4Nzp;D6$?!
      Z6gMGS{5h5Z=SF1o-@Qfmqucu1{{vE`Ycc=;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SingletonMap.class b/libjava/classpath/lib/java/util/Collections$SingletonMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9cb211fd62fa0174699c98d5c47915778b8de339
      GIT binary patch
      literal 2981
      zcwUWGOKcle6g|&&GPXPUxlSBH8bb4PoNrUUjT>mww4`yHf>T3WXqh;JGs$$Ec*c=Z
      zgetm41$75(SR$b=Kq5)iN{AJaSh8mgtl1atdt*<=zcz~Ox$nL==bU@qeb4#*>EmAj
      zoPsIA!*Ft4*;XbBmZne4=5$@nSX$07`;(fH)m1BJTv0Y9_!!y`*PUB2t-O-4#8e|g
      zSWIcTiKLp>6kWTctmrC3t0{&lHE$B+_4x}7>@q{sEa6*<VWkwkpf-Hh7kIFBcjEy~
      zZZL!r0!vqn?8M^AI;ojv2qd+vp;(1HfqIt~D8sgSl%hyd4J)syCPPc&P+?N#?~Rvd
      z;;tb{@1LVLcjAOcKr{5m&=}VY&6;5tidO5W&J3qWThs>Nv2QlFss`ajmyCA2ND`yN
      zsQ?&G$dJ**qnBi~qKS*u4E1W^_KKQcvfT<Lav3s9A<Jl7O!}-fjY{ixDX+IlB;UKC
      z?l3fLb6*)c$^myaOQ54iKyz$i@N<WE$Ula*=x~+Ela;yW+01Pil@Y>m3F8cr+G3`H
      z7{es@@f5>C^azq`Y*4K&3*t0hmGDYgN4qd(yoT3lU(FIULtl+<s5YWO_(ZU^>Zkb=
      z&-8`iSSDv!ie{J#d>7kmai)Xh-HeR4@HRE8x>Zng^T^GbrlVJ)NZBpo&GKCxtY2RF
      zIgHd=C{Ce&O)=Ma_lusN=Q7`sF^Bm&g;2hcnpHGaM^yunCw7}$k#QBr=@`&jD%59c
      zcZi`;G&qer%icWPLvD7RskktkV=u|LhU@&8)P#`me(7SXn4)T}T#_ywBTFlyZl~-l
      zy?dk7*RJ&Wf~K#kc|Sg)`|Hyn(zwOj`{N3WiWt06(^!#_!77!kY;LLs1!K?It1_x-
      zKRzL@vm9xSBWV=?C9Y=x(4EXa;{dm1e1K(!U@}+8XVi<DxZ+(0XPkpD$n%Dw=4W-q
      zH2EIM?jy=@E52~1x`I@V+>C2qTt7I@fw8A6esrcWNn7isPXm1Df&@Rs0s6V~AV^mZ
      z-NH0(7ULEgx4On{xW_LgXB?(CKpWISv7L#alb&}e^3t;<wvQKLBfIF1jqal7CrWwI
      zOWz@)hV%t|(tQM^FVQT0g_kMcYrlq*=mSL5FX(wRK#>Q7WvhmqRV~h{Hd@6H#jqnP
      zCPaNs1$*c@5c?S;2k3r+vE>-W-Sp|%$3!AF@(5GA7~%6jR!IFClJqS)r615MJrq(q
      zY_Ou#PIB=Lyh+4^WphK$+!>l<m`0qwxtv8>!&e13U-u)Nedtg&@>-<FE}DSjNTBEl
      zr;$a?fg%mVx!T}8HNbzX13pj}{5)nILoW!Dbde-ns^A+0Io<d4ztEw7Hs2pEzOcg=
      zt|}(%@Xg_3v6zI|P@vVOxn!4g>0V_`e+mv8r?tp2SeCJoFS}Y}K``7XGDHYEae(HS
      z%|y+R;F-f>ntA6*e^E31jga(@i!f3}7;y*}ol<5*6A-blQvAOzEKe1d$HBUWcOCKX
      z3Cx>C@m(Y}d4RT<?a$P&NbMrYla>0PlK%hD?uU!BtBSMB;iOBgs9zBm2etMSq?bb<
      z?&BtRY7a_C-9wfW^LU-&J?IrZ;6LV~8>pfyofa<)QCtq2;HQrlcN$wHXABS-yZHS7
      D;kj|1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SingletonSet.class b/libjava/classpath/lib/java/util/Collections$SingletonSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4892de90c053ee8223eb529bf1ad2b5e5946908
      GIT binary patch
      literal 2438
      zcwUWF-FFj36#q?=?q<`ah1d@xP@uGuq=kZtAGAh83N~1%kThB<>LwlA?OAr~?#3fL
      z`GL>As>esq@r4KRXc0MnJo~5kM~HW3H(|R;k33{&=H5HM`<vgrGx_`9-~Iq_23son
      z7$&xikB!-uZ(6fu$Fg|SHyzuXteW<Q#eK)Fa$iM~VdQaKsp0vq(e$NDVHlP!)0wSu
      z*EB5iw$ZRS!+uXL>)iDSa;37sz%DWDD-*tN*nZuxTD*VeTIuWjU-$lGP`Sl#a@%Lf
      zEJ;Mmus3Fx8(YL_jzO!M8@A!MT!K#2YGhI7P22Q~#4XpoAz!C}9L0%Avh1w$G!hum
      zu^*!ZkjvLKFg&e8$3BLkCDZ0tS~nZqtp)5eOHPx>8*~I(hsLD8X?hHkOaCt#@na6d
      z=x&%>+ij@)6JX2}{UQM+J@Yn~q$><5)90??J1&9eq9~QnP8$yPbOdlJo@E&8o%~E1
      zQ^*O8@(d?(Pe4)1n`%0?Z<w~XM=7qSN$Qh2PGOdc!ar&mmiHJx8ro|!!$2FqWLXT^
      z-n?Ywq29jvLXq49cmXe}INR>nSdfkh92YS!>o|&I12~6y6{KdSTS^_Tf*LPr^G~Q>
      zhud=R?pW3o_3z1*oF?t-UA@G%L-H`Hb#~9wPzifgSb9>MhPN4XJVQmt8@RMbVJL;_
      zJ0;gOZi$HeT6c_!D|D6PW=i5aRo|sfh#x<&(!Oi$Hj9|gw@hoDyD8M@fNN=7MO}2;
      z+cAD2M!qg0R&`v*8a0lwz0K`)>ZD#r>DnEpnoHpZ<+>q|-WNz8!~oj4_5=_+8#<Qp
      z7DKw~wA?1YXvzmJaw$%U-3)rgwz*rj4A0}9ij7_GW+a><qqm4*alUr0`&7k9jU%sa
      zaFGLF?Ae{eX)1bxe*NgfGf<JDxke9uAJU{Wy>_%7l<Oh#foun89#}GXipB=b`e;lS
      z?qj$x{R_tK(JFx~eFtfTGJ&Kr2~C-z48Uj*je|G@$k}0;Wqg<KNXIusJ|?aheMP>a
      zTvPt!-A*1wSd^0zUk|(?{`fA7KxN|McFr&<F)v6B0PP{BR_PokevCn%jX-N%&{_w&
      zfa#Ftawv;7UHBPezhWlN){m&6b=1%zYQ(`$)8BBL_j5AIPc%!?I5YhK&of-6;U$LR
      z4;YzwfLDl4kosHnC+^-!JUaZ{qkkf*jZ?j$d<s?h41>z&IG}uiW6B*Ir+Gp7Qt~SV
      z_#J*Tcnz-;7nPp=63$CL<0xZ+Fa_tMqT(|CNGJY6C;lSEGkRg#wOj~mnF@$5#x?pX
      zB73S!_EbliH?b5VE)rki)04mB@@hihR^!F|CW5MWq3Rt}y2ByrO4uLShq$_$souwm
      v0N%knnRj>a-VTg-iti&SvRx^%VTuHr5XD>vr!gbN`4F45cM6b}pxEYrl*;~o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class b/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af78e3b1b29f92ecf2351fc0e8a252774ca36b30
      GIT binary patch
      literal 3969
      zcwVKJZEqA+6vzK}Te`dLNK3o4w53mqun(0|QBhh!ECq|@L0hT?5vSX+ow}VVyR!}D
      zjjxEGfcS*I^eKeYL?nm-V_%r~1&Ck37(am_#`wQ?W~bYBcDv|{-FxSpd(ZjJ|D3rq
      zzy9;XJpld4hY=F!ozoZfzPw{*`iAUG#z;G+ZRK{2Em`T=tZkWBjOkT-7}Wv|YDY%5
      zX8KM~&CwA?jX*3YP8gAb$F%##jI60=%q#j-#$cG7x|}ewIj%fAa#TQ^5O{2e=^fp2
      zCiG0+*pk%$IvKtG@hv*j0?ngASq226W9E#dJNYaFw+Aj793LMz#Fbm-^Nw*@pmB8l
      zZO~aWXj-OoNT4+yoGCFO&>8G=6UYVCL-w>$iz>8gh@nlODxR2#LSUzct*Do?P7RG{
      z3Zt9TRgP2nOy-PjT8@z&zMM7|WY}7Cp;e%M)U=FK`S~d$JMQY&IBKUUpH2~Z?HQ|`
      zSu-cFH;}MYRR^T7Yl1B;6awylq(}vkQ}K=JmKJnhrK^i1&M`lQ)u*Qgwg>D_oMScP
      zT%R~shb`#SkU}q;$mS+m>EzZUnM|2dGeTF1Qm0%H75X_1Ph&sBrfo*sS#ATnFP$;;
      ztlT!B;RV?nk+f|&x@qO4@sNf=iCI@LD#D#5D3S$)mo*%g2%&U8@2BKqfv}kyo?md5
      zR7<L@uV@&?F=Ci(I^D6e?1gxuD8z_o=kE4Ehg*~|P6{M9@0G$XnftVc5uB*SC|;8f
      z%IgA&@}1zb$QG!{8uRv|Ap@P&FeYV-x+aPyt#4|WkgCuswe+m#HB3rtb&fbnhY@MM
      zsNpSKphAv)B%9TjWLG85Z={iH(;D7^E)b6gEC|{p&^<VQaHIWD{JiW?`6uJf$hhoh
      z!PrfKVIqz_=44H4hNo(w7;1%U9gv64yoNcvCr~?P=d)?!n5hoiqI&F=+XS=`%QCV<
      z89kRXa$&IW+XKtTh6sMx1tx><>XDvi*R}5LFo13zl2r&%l`zLPL{Upi9ba4_XlRh<
      zD6bpT^)`+?O*xm>F>I&J^)#b}<NKV2IJPHmV@EP|i<9InbfkVk-CcA|-bT;;Z|SbW
      z<NR+!4G{SV)sasSjeLr&k?UxTe1^8j=XiqtW;Yae;YmQvT$J5we0zM~Hu@w~+=ogi
      zs61y?9P1TSuY@95$0|r8stNK1LB1l$*97@S0d%|De1Li+dGA8aBuc0VrQS!WS12K_
      z<2mS~Jmu>nW40u}L&xOFpE<Or?qF{Sy(>3*SMJjtW{Q})k7hNxh+E~h$UTH3KOx3(
      zRi73guLb)Q-tINNJ-)A>J|Ry~AL^NMP|sEf^?*>n5$Zt+r~~VYRt$9j&nqaN&-|A#
      zm%I*YRWPFp<_->0%#|-ulUiZ_NSsEt9{6ifV{sXOC(a*e;J735r$W+H$yz<6-D@lo
      zM94RRmp&h?#fuec@sP>?rWOx3Es%@Q;v*a`D$7gd%5tPKlxPFO(MH5L2BQp>Da#O!
      zs<QBX<>@l#m8E%2S&qxH+(>yW?!nN+iZrcb=^{%HnmDf3qj^I;ntd_&uJXlr)vHUj
      z%HQMVzl+gHIdwTs3Eak+)XH)Jr30N@+{q`na~(<_QToxzaTTR!14@sNGPYT3j8|BX
      zVJ1G#dJI2uYfMzy8gEpHa)BrpiE`mTJ+W?UOjZhYu0p6qLR}`*;{Sl+cSYHLeY?Vb
      zy-Jo3*soVB>{ouHl+8OO^Db|m_Zstl$h_Ao&O7ZF!6?_H@5&-9Z(f9(1XyMfZk8y*
      zEX)#3$`2t=f>}?3Sdj$ZBU2<m1K*F}uSt!?`F~{od)UTtRe;zA0b*X(Dp=~)Z7guC
      ORV{D{IYc~3oPPl!BF(A*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class b/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5ae321e57198fe6aa20fd4135d73ab96745455e
      GIT binary patch
      literal 1366
      zcwUuMO>YuW6g>|H#-UT7e6^@m)T(@0#HA%9hQy=^sf!X4-3|1m3>jv0W@uXfkQ)~^
      zu`#;P#P0kHM%^2KL1T>f4TFMU+AiQ;?mPFM^X{49)30~$0aS5MMu4H%*Y>o^(AAAf
      z!!iusb#=>h*0vAKZqK$%{W;&+bh)j$mMueKh<kWLGj}VGI(>r62s0%9P8p*aLW7~p
      z_vx_tZ_fq;(-~6D*)}>-w)I_8bB8u($j*V(TCI&b;lefD)ZIEmAwSD7Z*-x}uzoh|
      zh(k0;4Qq!-5JW=7B9aWje4(v?A+16|L}be<WL#i~HFcA34F?@=x3rGI#nr8@X0$b1
      z7r*_Y<o0xjp*%r*+Un`Hl0$Wd%=E;Ar{k&BbBr5rP%`<xOFrZa^DGMG3xr!h2scz*
      zMUFx4Y0j3{LQ8lePHwAM!%gzS<^yYwi&9ZVUhFBdZ4K=%f2a#}@d-)mf{Q`jG)-<d
      z49#)4BcnnaoqGe)H}4J%4{ELZv%2f&@E199FG!yd0*DI}>CH$8TdB4{c>pRTii?O+
      zKB~kB2@EL<Qj8VfV5wL>LaJCgLgtW4L9BRVs8RV0N%;ar`HHCW4Oyz^Ms2u=OMsVM
      zCR*lYf;fOx$}<#4s4G57At?dEkr98ST=S&#DHG^S@ij7!n;$8p-r_n#>G)OY_ye8E
      zq$Wv-B+_0SDU1pw%6G`h4<soHb*iT%<EvYpst6@a*iGO6=e;F(U!Kl;LcBkT_vDPc
      z^i27@&wSqO6mLQBzCf6m4}I!1fznv^;)E%YCCHH^;uKdR=?VJm41Lz8526II@G|aD
      Q6i)~Jli)68BO|K60r}$^(*OVf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedList.class b/libjava/classpath/lib/java/util/Collections$SynchronizedList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ce19d4cedf5be36f16d968c4f8085e480413f8e
      GIT binary patch
      literal 3835
      zcwUv3-*XdH6vw|eX&bs(Xl<LMG|-<=+N7l_;tyJ@SVV(?DlLVgpxb0=Q_}>J4Fmod
      zAADhabJX!qa2$Dn8674vqcir6@sD8i5AcQY(eZolZZ<#Lgootp-h1vjpL@=^=kBBb
      ze*F!=b13-W5g6YzZW=QME0vyE$fna~!b)W``9n*$Gl`8{Hk10qOvY1r%ZE0Bsph)n
      zaUVJa_LWyiD+1klGnX>bD`qZFoeQy30^*Fo-US-6jEuEnqzh*Iw~2rL{_<4!X98_$
      zds)2N(5yh`QffV8ScRM^5U81+TV9@>r%uOQDwDG21$rlH4NR^G^w*Bs>*Q41LN;k?
      z@FJk28$p5nmAd6!Qn?efq(jGEfv$KeW1cH)t(m!HV=Yazo_IFF{Tkdg-<`oWYa^8x
      zXl$}R_}qy|3k0i8-M(HjH{GJ0QdkZ<j?+eFeP(fOllrrb;uC4ESBjVn)tC&`A%W=b
      z%c_FMSma45<5agsz-uIv-1kJReo`*=O~mNl&OlVh6vhSGw+fbd%a3*()o}z997$!8
      z<}HRW#$T33xrU`d(<jr6>OjeQ9o%Js;T<ODqV~QoOGhv1IEEK!JRx(`(3Ze~-Ruy@
      zyiqXHtcgH_;Ms2Gb<ARp{OhJA^<tBaLe{}?+LQ|xbi9Vw1@>$h`3+gmTstutlT&Z$
      zIE6PEK^2?DYdiQ=y6@<C8;qSlZRD+(tuM#V>4?j5T^`YxW#$Yko0IXJtf`UG9O;I3
      zoU{wchb4idtyObrrDVCFV-fFaIFF062ruzWG_PHkOV(1@jb|h7;hkq~a0&5&gji(?
      za^_a{rYVO$)Nw_oz?+vjJJPU_8)dQ6u52ffNgW@-V7BswHM@=WO~mSeW@VGAA1?Ey
      zbeOoN@vwX>gEUMx*K*mdn0-8aR@Qmama>Ih!aSXly`{S%1u8L2cr24Ka|<koyqWib
      zIS(|<7#G*(OyKI=@`?H#&$rOQDo%~sQp0^>nA`L6*A5Q`;KLq1ck;gTK;xd-r1`#2
      zy>}_ujc535kMy9IGQlSgr9TpVfWAod7liKf)r<Z7-$x1UBHFb}(6m*$0D`tU!Z-k^
      zr-RDPVAb4^JJ-cI>3G<6Jfa+DXq(odN1{^?FdCU^;CT%lS^|D8sXPzc`mSdkhcT|K
      z>x#is!JxYgx?=E9kNweQm{bg3(_$NCIPx<htLOfp2!*GLnD%0N`v-JPZ~uOu%0BcV
      zM70pnLM~#DT&jHvpY}O=C<nAJDlo$?W*9SgR$+$u9Wq{p8Fn${-17>P-POfBt}wrH
      zF#BsTUzC`43F$Bfs1qPz0M%jqj*Q<UKw0MNclr8VzJ9!nSE~5>T|PN?Lh-RJ^Ivim
      z_%3aQ6xUhB6)oab52m*7PB~b;1OtCTB`dLhB-T&pqb%1|$i)h&VA*x0E4+{cBV?m@
      zLv(USlyDJmNR)fcQHn%)NR;9ZD0YMzq3~jHqOs|mq@Y5GD}*9W^RnK)8+8cmGuO)u
      z_0|wPBEg^Nr5td*1Ra9Gsu9~SFR9(LaHhp9Jf`Enxb??RorQQagtILoJR!orM0oPl
      z2)qW}LU_+XX;bS*oGd)V`BnL7XJc950al{h_eu#lsLT%XPz+W>`8(kA@4+BtIUyr;
      z2^pzCS#?n^E0jBI%Q7mXPE;yUSex&ABuhnk4k}ASv^nIm1Ze~QA+n61%Rh?!ltX+k
      z2Wr#})M#Cqj=FSLT0JpWTRSoSV?;WRKFX&(F}&Pel(k*^TSE4?drkYB|14P+5uj|=
      z-)j4BWq&L6Uw$>XeCvwu8+0hXF^BIVL^+WMirDZnlbaQ&LxhkZqe@n0a-FCtW^xk)
      tl*4>4BagYrV@Ny5W7y)8ry`JJ4ziaws6@=-I;H&15x9XoKLKoX>wk)U#YX@D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class b/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0e64a69837adeb3aa7735756bc49d1caf142461
      GIT binary patch
      literal 2030
      zcwU`U+fEZv6kVs&cA#^(w9rb6XhqcCpj-r%axoz>A*q)HLZWX2oxqSXLuRG~`~ZK&
      z7at_i7<`b#K6v>FWBdT)52*XhKq=ui`Y^N4IeVSG*1pVq{r&y}fDzo65nvcvSGUw+
      z&C#pHIkQ^TRvg_l?16<HV`a@U4gI-RDeJZ~?`W3ln3jwnL+;``NBA&9;t1ayiy=_e
      z8G6d6yGsnM3;L>|IyFmU=sN>8wYXTCA#8X`H*{x)VKCz%tE#bDe7w9)@=9k>WS1C5
      z{o_3@aVa=wR<sBtbaE(&GGxz>(!|&bhAs{nEesuH-OwJ@HkLJOQC+T5nz6FEqE?qw
      zOBeft!=SUK+YG}^0sS<KsuHxxC!(GZM{PMywX=ChH~x=2hb@rQN`)bQN+m?e!Wn{j
      z>8ClaA;}Qhs5#oUf)K8ATt*)QGbs$=7?d^Deqw1`x>=*trA+pjz-2jZ;ucMYp=~?!
      zMn&6pee=RM$dN;yp=Gmitvi!FE%Q(&OB~|PD8~?r3~h&Z+?c{M&M_vUNw(&Q{aua;
      zp)j&w)~prnfi5c5*;F3)OJd;jhM`$=Rn@jNTgEgM<kV`?;Gb1bhRW39<VoQ(KKgRJ
      zC+E&FhN%@2Jt2BxVj#)3(!U{q2<<?F&1vnOw4t4>L3oKQ&*cm6(2*;=MQoS$61wT#
      zE_})-gq6=wlrM<WS=z%RflGk9>Oqot#7Zy*kfL>htcU77K*^*bKscI;hK4Jyh8MIF
      zF;lrWxcc<rM>4Ve9{K|))L$Z8sPFF*LPi%w6Onsd>nV&OND99}R=y)jHmUq@ReJoX
      zhRPHMT$QO~zTSrK2KktnM0yKN>x2=ggsZ9SYT84FAzy!$ukX8hVx$Q4#9iB5v7e;p
      z7rMyC-Q1bW>S;+GI}r+)nDTRZ3qE=OK<4x>BI}QrzLZ8UhR@+25&W+&<mXZ1@1lQU
      z)F=Pg1$p20mp4xnZ$I&-eezEDoxwZ4XONdj!!)8~lYI8SXHddDSJfm+WFziWPGN@p
      Hp4!>JB>|30
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class b/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a50be837f6f5bf74b5daa8dcfe8424e2f132e223
      GIT binary patch
      literal 4720
      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
      S?G29Kq-F=?Uq}8JZ~X`Il#s~)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3e4e1e408f904095128d025112a07453a6bc87f
      GIT binary patch
      literal 1461
      zcwU`TTTc^F5dKbYE8XQHP~=j%6%@*)f_Q<FCZ@!srolvN6ZC1@9%0FL*X+fB@A9nA
      z{sE&tXktRtL=$=Q(H~@-vs>Cy8Zka>XU?3N`M&w)^ylv{-vBIOO+tWSc~5<&rd&tU
      zQ(05jdD+oS!=BnYFv`1@X=u-R<$-Ec%<7$TncH?=vmFT`hAZdS`MD8>fktj~FNPkQ
      zTbimDxn)!J!`ub~yT{O(rB;q=I7L-=c{r9)^uyxrFNVmvW@t`^p>HPN=qYg0vqgrE
      zEp5k89oOOvgRL3sg+e;xrG>I)g+~!YuL1>~4BdIn;G1r>#I1r_(y6*PZ<dLdO6=%d
      z3x=FsjYzNL&mX;2vNR2*)4Z*$Nt@G12TxDXR{sOWpOGQfc6Ns8nkc$z?4<6O_NZsN
      zosh}%^G@UxI*th)<0Ozx+=O^%iWwx^Er~jY{+V2E_N)*?ZNffC2k5yexQYpeaMgAA
      zzKF~!NMevcbxM>mk3|U!3|*%?D40YdO6g<tJf2u)HD^@#K5ZjMlpM2mif);%Rpxg!
      zA$(7h+KZwagOW20Ze?}Vwz)0g7Af3zISlc?t%u?9dSUIXI+=f1bwiG(<Ys_0uF;r5
      z`oi=LL&62J9rRZZKr9L3t&`v7MY_>L_7QmjvXSK65iWitFNi++jf$xJ0%7?O{d6Ai
      zvk)T>o_7g@)P3mG-EjSGgzf}hypDI-!{gLnFp-jT^G6tM1$>E!{K^9y_tWZt5=ADw
      zrjiF8Xo8mN(2@ropgdZ79eT=xeoe$eWE06xnBLy}@fB=axb)48#6M#$h$EyHjz26M
      zf2Se|V+1LPOnTO*IZAQJZy?EU(JjA2zx*CCvcq&9r+9;UqE0<Qds*_RC$LPOPhF`+
      ZeCk15_o%Mmh9?HSPu#?9y7Na^{R8$6QuY7<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class b/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd1dd495afa1c1299dc3b9328ea35385dad041a6
      GIT binary patch
      literal 1550
      zcwUWE+fEZv6kVscfjSf{y$E<g0i_qI_Y1AO)R<tZKD3fZ;=@o*=#XJXJ2OW70)5pl
      zFuw9aG$Ht)34QY?`~yG1xX<a(8x!GSy3g#h&suA*eWt(ue*XdBIvywpFwAXgZ?uBz
      z=tiMz83wOAx@Fq4)oruhXj-QJj;~j_qaehPKfbh^R}f(s>7F1EhB2Erb<J4eO`A%d
      zFF#~pkEyIoIF4pIE1Kc*aHMsx9r*LR#1JXzrtT~;#OEu0P{qs&!*EsKFg3?*a)$Ik
      zL8(?NF3GA;*;?mO1QA!EVw_>3x3nu*7LQhRlRtI0)_Aj~tr-LyuUK_btdVYd_mUx}
      zq1y~se1VRbSEMd&f!*H%L#iKp`_&<S{$#-ICK(cby)(>ujT)M{QFyktNhn1h8#Bk2
      z9hxazoE9!#WXS#h)PS!co0JPPkDQ?)^VhCskU>cw$js_6$Y>Swm|+NSxek9TGFcTl
      z<jL5&u+f+I6c%tzL4o}7+gCA*IRda4h8mjP5Z8nuIG<S-2XCvmftw7`s^vE8{E;rk
      zGS)MT1%b(+E}JHAmJQ9exvgN4y6_zxjelTx3@=Ny#iJcBonZFee0wy0<H9uA6r?9i
      z&m<HKQ5>c(KY%Dg6jhASIwmut7^ApKs{qAFHn)e<yR-@-LBCOvjlD-W_5n$HPqnKk
      zrUAJ+g9*vfyEoO@J4<_l?_7uPyyWAAAEc;cbNM}77$p3NNbHj&oNkwO2o+qyj09CA
      zb)bh@=};?@IzV+aY5EnEF1-t^boLuAzj$&$A(Pw3)d2FXoqX#jZ7Ud;A`%3Y=tzo*
      zW3kUrVqcJ;*!3aZk(H)@)fvwRRmw|yVwkv1o`g-$<&>0AkrMWCi$1B=PR>&hCk>z{
      sDPymKT~hEB;}nw}mXxPpvM)0wPu_v>`!4Q5*h=>u_fe#~(4Ir-9~Eg>_y7O^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e35d212bdec6b42d65f8d717030c5479dc4248e
      GIT binary patch
      literal 2611
      zcwUuNO;g)e6g|(M!6+7m;Iy>Z#)cMuL6Ro@K(5=wB&}mZ7EsS*DU1kWY>AQNOzC90
      z>!yFCTRM{tLp#&Xgk66~e?!_ur}sS>*&YN@7Un+b-gnM<=UzSj`tP?t0NlotI6@4i
      z1NFJO+IRHsYTfL1wT`2khP}9TWOVi|)6l=ycDGE+(RMe~!#E-gOK;vFN@EN&!%`1}
      zVanDlUG26t%ch;*Hr5%~V}|Q>f^k&CX{+777X9(>m)VmQX_X;l_ZVhdK3EFF#FqZd
      zP@TS|G0gkbRJWVTc3Y`YZLF#rx>I9#ci9)M&}PW`raTZ{5~-WJS^{CrN|-{5VS03r
      z3p4>@ks#qZgWS>$ZL{Co(X4HCr%OVoTV{t0P{{^*9=wb=`?}3gX}#IsQ3F!rSVxEF
      zc=z50XvC%B;51#;c((dv=YaMpm)dnFVDX57+_@ZgF3+%d_4ad?h)tTgZ5N6e5*@R5
      zs9LIHTD-A^u~VOCs4jg;s#+mwHH9~<D4~QUhG?(vXx~jDii(5}@e#wdJ>9aMrgp?|
      z;~ZyPMs&GAIDF3?2`iwnjqhu!JMaacQx^POBAnbZ!T2UU3pvTB5<bS=1d0BfTbUsN
      zjw$qosf@_Gs?f`8YZ9tlP|WV{2tCTBt_M-L#1#e-S(or7z9KPume~{H;*P3!sf=g8
      zmhcdFsexN&-|A?ObUw6GBa^zq@foCsVQ5yJ4rFU~94)#Fd<UD}`;Iol^J;VL;`!P>
      z?`i?QnbA{TX#s9gd&2aKB7`}_agEj!boGXiz%;)b=s78#Wy*p2_ztbzH`AD**r8R3
      z;$*ROf*ZxsuekXOJ%;ff{Y_Ft@-?E#e~?K2OB6uLEyw%#01zveW_~P}_Hr`iIB~`!
      z&I)3Kun8Sfu~a_6La}_2Sq>v6M=&Wz1#{M|_n0LtVo9KjYmktK8YEAHBs7Gmj=nQb
      z!?MtDFgSdw_!5PutydIoo}x_uvd)f6XMa*IKCo#9vm%bFn?hWsEX6s&!vwplZhq_y
      zSHk!=>+#>Zg8z0v{tWRi5Pv2hKYh*~|2={B6AcdcG$;5sUi}XClrOoC(kVU(;RK(R
      z&yLFjEotf^=(ix^sFpR-QbmU1a7J=or*c>mothuZrM;X&ImWM$K>mCY(4PirYLY*V
      zfd0@;;_=@XXg?!{2*teM-yHX+e2NEQZcydyxH1rvp&{jiniJ6#lOmHLcSwu|S>D4O
      z#VkD!M>_8rmB;#Er1Qcucch0^X|GE0suVHY58t-AkAgS%1!@0*n)~9C=B{7STvurr
      V-w0(5Jf@fs?QUX&@La{4{{udb3$y?L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8b69fcf7aac302ccc5871dea1f54b7985a2e959
      GIT binary patch
      literal 2577
      zcwUuNZEw?76n<{ryru@5rY&2yCM9XN=B=TOjhAHIOIo%<D3jV%LfRKM80yNgk?l;t
      zPvE~y6ltjHkO0w7gYVP+0NTHpcJ6iJG{OP%AwJjloO_<<Jm*~J)qj6J1F(!65@HPH
      zJ?%HG*7Xdt*0fDiZ+nJqx$~R%t@f^CTgC(Z)~4-v^wd2G35JCT2Y6_TAu|XKaxkc_
      z?iiZ6tvfEA{AGQWfn8-d(WEq<W_jD1+0~Qxet&%N+Rw{N3^CVbm}-UOsxypj8h0$s
      z>pD8aOjt}~YpcFOfvJXJ8Qu!R$BUt<irWmcp)NlI_a~b6Ej^7mrevs?W|$Z{AhL{s
      zAY{lm!JxDZOW){rc64V;+cAmaM9Xed=^6<@@4d~0w`)*|)m8*$kCi?>oa_GGe!g=b
      zlBlmwsaJ}rS$AqTcJ}B{eWXyeh{1j7xMq2-S%G2xJ!g9m376P%!QKjHNVo0IUCq%v
      z+u{8z4%OTDP+WF|t5Frac&kb>%2;4XcDkN^ZyZTfWqgh=Xy>-!xHPVl{UpO2l8Z%3
      z!VjF2v4k3fw5x0Wgcn0fEQaYrd2)-CCe-PR#}O{b_!8&SME4RGF-K$X*=wfW(JexY
      zQyl4KYOcqFS7bCeos`?%5p3!s1&_in&-uNdVpGPq_>N)xwqth!YLcfJCdKiHA7!lJ
      zJT-6A?mBJ#ior)!JvN_99DqSyw=CUhQaP^fN@&sD4;^RP4;^TRUmIJO-!5<^%B|>^
      zG`d)vr8dOrmqZLRknj<$$LNC^LmCtO-qZU@@ve{$)UQ*t_ID<bA={=^jO=)+e1OSP
      z`3X)xrq?(=q321mP@W;FJV#o2K@h;SAC6D)86Z|Z%<Paa8~7CRao}74JSTuH%1zlJ
      zm&%m`oGDd8kpDtTd4+N1wLqTp;{#+F^H>ns#V3w34>-sH2U&24Q5@Z*fWxBTu-7Yo
      zy7UK%H(M{soIXT_{)mqD%SX@2C-r2?U`p8I?EZ$N{DTbH8G*wDy3cNQXooXl{9*?9
      zXWxOp91;Hw;r~ncZzAH;wGHsU64@To;BZaz0{{BUr(ievlJh7Z;_Da=aItc<U+Hnl
      zQWrtLGr}I@q5_f{LyqiVM)E<Y^0+KIH9O?X2EID^82?g4(&w9K`lt$VI)x0`X!_7M
      zBf$S&WP5}Z5@ZVke`8pm${~J;bAhTy`_&$q91STS)V#1hnJn!?EfSeB6t#j$wTdaS
      zGxR=3`-9Og1cDW?+8gbHkj@|NK~y$~ss~YZG309>+T<(Io7|)t)~LzN5lvowN0WV~
      Xar`8ht>Y@$v}pS^T&H|K<Bk6T(USw7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6a9ec47feace5996152b96b4c198ad12d1dde00
      GIT binary patch
      literal 3096
      zcwVJd-E!Mh5dMzs#Ez{}yKR!@hqRQov7HiATK;MiNSy>++@!^hAqf-|TLg6!$s@@b
      z(qW*y08hXJaKQ!40GT#3^pY9io(JF!xZ#dr&ylStmRzTBVfpCnp6}cJcF*e9e;)n}
      z;4&IfgcvT}m3QP^%T~2q(a<!dZmWiFonO_rjfVQMDsO7a!G07GhNL*5$@*4qW%Di>
      zq8Ma26@(K-tYcA)TtzWeSyS(EOoFk*YfUjN@?0$~Ft8g8$BIO6%eq~YwU#n4b{+SB
      zyYu%H8S4xq<sg<k!%#)t(q+4467Xc8Q(>lB&CikRU_sSYdyZi&9gLQ#F`NmuwL!Q?
      zq-ZphIKmi}Z~~_p!s$$H2n^#Ap2G1cCK;v<lv-|S+ATxXZN*&tw5~KcS{xG?WjJ0|
      zb!EA=y{VX0N1795qfW}mrjWnA8L>Z6Er!{^z<L!d&ow&)w%hCgUU?#<LR-GD+-NWi
      zxApOKK|Zri;-<+hvmQm7Vfw&hRkvErreWGjW2LE>G6(d?FwJFP22b3FN{j?a$izFZ
      zX^$z}df&2<$3R_EWRoFQH*{N8bt{1ZT#@KHTwq9aHU-gS53npp;>TW=a22x*q55SC
      ztEV$VRJ9hjoA$0~5^?l33D-cDm}+x542ozZo$)}F+WX`)5omDg5yf?eZ2vlTPI2x9
      z33GToj(IHc)_s#<G#$juyL`}8wv8QXmLX>$grPN8NvtE5dQTB~l{ogYgtt+qjBR7y
      zH0531DVYs_Rk`mw5>{}FA)O9z2s*@Ywotj|-=9lwR4a6X9vrvEaVykNGQ-J0n3!!;
      zY*W>@XgGDm6&}uRo?q+tC9HuOCSEaGW?flQ#mw^PJIjwTNF`lY%%Ub+mSROgJHvtH
      zpaKV9EQYm0H7G0pR&a}nMkogj**wnDKnf#7s?e~<IEE0XodnJQ5F{k|q@wqvcu&z9
      z)DS0W?d+VwF#Ye)Dn$Py***Hr{D`rcUy#_x#M&O7e)K(A!kFTAVnOmVM3SFlDES4B
      zCGTT6`6bQ>n?Rs=o&m(lVLo@r_N;45k&WRzF1WE=6tTS5jwQB_X`;_Oa@hyTAIYyg
      zY%!NDhAd_dvBg|AZo4Gdp2MummOB#L*FD&}bMvxwa(f=9>B(6Z$cH_K<r~2wIX-Qc
      zbBA^~Hsd3#jd;5qcOv@(73%?B2;ti<(1)JT6K?1Uk5CSL!iB%;k>^E0v(ZKKlAq@H
      z9yG6XDb%5HY_AH1Xh62}SrYF+oD)4jf%$m;@MskGX%u&ppuy)R@rJ;@NjTgmwU7BV
      z2fxU$hsE!@DE{<Nq<j=9m*OqA49k7m=dZra+Fjz3uLgZuG{yc?i#i3k@x*M&|G`Gz
      zjo@<M^p!g`e#COq_azwfHbYl^Qx}hnS#edV241(-kPp1j;~u<Ak_KNl`uLzTADqx*
      g9R4S4bYm|aX+DJUfe85yJ{0M2%#W~1D<_ruzdK_mX8-^I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43eadbaf8eb3bb2ecf309eaa454f69adcee38742
      GIT binary patch
      literal 1182
      zcwUuK-*3`j6g?LT1y(n}{c<`t6&*k3$X*>GG3b&dWP2DRQKLzL&(Wo{q%CB=`uF&t
      ziDpp~efN(t-mi3QKp*DA*L!=<?K$7Mw}1Zr_yu4WJ1QcC;+a0w%LC6a%Qf3HMcXrM
      z%gvowJ-cJPH}sY%4m{!Lp6#em2x-6H)UDI<QR|G`Rm2I|E0)V{0vUwG`Yf_XNFE!f
      zmhKH4L0AiEsgxRxy(%}xD~4rwRl-U>jH%EhtcM{1fy9-X-4Q87k=8JW3?Z5?G?O6Q
      z)}SImSg0G8I2`m^!f8mqY^QFwb+f5EzW<=8cwNIKY}ao-F*dL~N%f(BNw@nSJe6P?
      ziY3lH9%{Z&pI!r_v3!C1<`Bbu4QsedP`kQ&=zqeVUrXenh7D};TpiJ~heE|;!qyen
      ziRBLZecSOw=cq5W`ARR(+oCU%6mm!tQpfhdX^VYBx=3HU`i|rwXa|-hoSLb-u5eY9
      z2uq<(*+-aH!t+Yw*{r|nY$<H-{-m(U>y7e>@yW_9b4>DIA3+KV$2n-6k1Dq?&#}c>
      zgk!3BfrVn}8?s;cEs8~c&T~ZO4V27VBs1@@#I@y7H^&vg&qgY%6WE<GmST+LR>r#b
      zeBFJ&E_J^m`yK0q&tu)VL^54pPaAawdaDx^sX}tE{0!lIK=?GpIlLj~BV+>37kp!h
      oC4M6J>H<%GPceSH#+aC4OazQkZ28{vDEK<^o<(ePHk!%Pe<;`XH~;_u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d76cd2ee035444f2bbdc56b336b2568c212f7d5
      GIT binary patch
      literal 3136
      zcwUuNT~`}b6x}xgCWI+Tra*1M7Aq|QS}A^85UnZbv=l6aD5z~G$pC}H49-kg^-uUq
      ze9*P*LhM?t&p!AM`~xnZeR8=x_f9fNW+sw8B)N0XnZ3{1=Oe%U`^z%`b1)?&7_RPX
      zN7`)7GtAk7ZJK(;Gi=M9*t8Dps<C5eWm8`<Tu(v|!?n|WoA(m>7zUefa1@5Dt2>5f
      zmUPD@pH1~P1G~d;ra(ZRW_cyetm(b~WUkCT`RltZLyzgdw$ctX&(ObN>{^;vb99E`
      zka?k4oL?lLz6HZFyhVny`7pp#iQ#<sc40=m$Zb6ZyQ-&=#ITGkMncZbG|9Oi3@^!$
      zafTtYVp#fW?VzkXMXm>fvSL>#Va*Zx)GvFyJ;P;)hm5LEsW6jaq#f$p!v@^-E^!*V
      zjKt^7kkqPGGUrv_!PKnX*|qXM;R#Wsyh@H!B?(s;CYvssmRmbKv>i{ct{v)*#@Ux1
      zSM)=ENMiz%T*N%#=Q&KTVO90Vl#@yyn@bd7BUfUg3Q|C~Ov?R2Bc_P{+YI9!jE#Dd
      z3#+uJ-Gaa{_J40v5c)SY&7^t_=VNr)9zZYNk?|(pqNsOukNc@paXIzTJz??}7G%7O
      z_ZU)pn!Cq)O^Bm%(}yzN2Q{rEWLn$lz$<)j%eaM)7zRwu^;F-V-+wG)iQmh7epHXw
      z#CEufQ=!r~Y!uz4jz+(4B&;yJ)?KGH-sG{Y%J>9o8h7z2Z-e^`qv62|qTuZ@8mJc+
      z<#=bSA10^V<do|qxT7D~M_gN%*JU!cvEwS$?{~WBLCLL^{p~fBS0m)}d^JR`o3T8Q
      zv5ha%c!aV9jfxqopo|J=^s=>(kPMfjyDMfJ?l|^=>W`J=+4WO;!>&0Mec9kkBHO|y
      zsz}|TT9)n<sCQhQ+B+MrBEy4);?1Z&i(TxSmN^nq#Oi}_+MP-I^df-^kdUHtKm9!=
      zkfv6ll}gWp;yFWS&|Qws{*8jO^jo1*f_?|4XO1y6J@W+Tex%1F&eQiG{UY}ay}9Q|
      z=YAy$V8nOFD8>MBdRfq1Y_nYoY&=AUS8zEXepL{c=|t#AJ;lV<F|IxjSo_Eyx!(ob
      zxbG9Nr7(qQZl}`>t`SC)Hx=-5+jY95dBbeLd!sAfKThSH!|NS+=kSK$rENyvobP@h
      z@J~25bAq=M_&!AWX9r<<g1)e_pl%4u`0fkRx*4SzJ;8heKZI!h?m**b7Dq#Sw4TMX
      zs3MT&@F)0yg_BT{0^LVQ*U>Mw-T0WaZ#yVch$y2By|6M%9pRUw@Dnc#Pn$Rp{*Iuz
      zCkBw@eTutVzB>09j<FV!U%AmDP%a`+u7zSfpx6);pQA^Fs5B_3zQsfwN1-JlB}hn#
      zlvoMaN|8=lt?SldK$P_sj_80iIZ^?~XOuyMW2>7XRLZ9gVK>81{~H1CmxA{pA#%)&
      zP;u-8UnTJ~9)@K+YN5{r^cm=N`V4mHlxRsdQ>Ra2SJ3Uj0PlJ}HIJ}QCqIm@{{von
      BP1*ne
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1795dcca995abe0359160797fb434d3e8fa5c7dc
      GIT binary patch
      literal 1745
      zcwU`TOHUI~6#h<2AC%$Y$V(ALMQMvtK=A>U4S}RdBPJB0?uO14h72>!%#`3iQsY7s
      zm8gksT)A@ZAMg*jHJ&>yLrYsJF7DjNch2|S`<*l2|9tuaU<MCj2oa`sv^_0T_6#$#
      zWSgcadWLPe<LlP0tsBn_ZPOHa!}W5Wa5T?$V(1{GPtG}tj}iut;%m7GA=4lX=bOU|
      zgw8c%%hJ5EBM74{!m@?J!Xn2;vxa4Oi-eJ6E5g(UVXPHe;gKO7OSUc&2%}Fy7tRod
      zYIADXIzc$AAci=hH*Z+tVR?5`I0b0{LCxDm&D_u&-;nBIhqrCGgz5ar79R6ru%7OD
      z>5y{nlw5~~g*9C#3{>A{YSva}b#sTaeG{Td4ohvsaFH-^6tQl(<x<IZJfW|aBp*vH
      z?-xZ$E)p2UnDp#2vnM4B+0usw0fw2K(6z0(j~uaQ*k#vGdD?{tk_xWjI#=Hk`(Dn{
      z#lDZ_Bz8kV3TZ;T6r}YhQ_U12$rNkIoEZf-F-7P;%<(xTa$CWyWDC2(BP7=BvQrc*
      zhIF;B#!CMmAt*V^63&vTxvp?ym}m2vI?pZL%6o#IEzCDwcd?Bc*4OW!U5sh&%rK7#
      z4^=iO&z=0&hmhbMxI_xCD<|FP;kn4GkVMjx2k1>tzK8mjw_)`2w})q_FAz~*BB8#*
      z0G|z3!g(G7{8dF}xDGoPU<t+u=P?opU+{$=SB2xBG5X{Hm%aw7QI3cDp++qpsKs#w
      zSL@W`fttj|eKl?){z{b<e-9+m@1TCf1mX2Doo~L5Qi-bS4A-4Vc9QMaoO7~~^GBPU
      z+@66enP%M6gg3{yf40dz+v>iz8t?n7P0qPfSMm3MS22t`zRq3T^Y0+va32fYNfrI<
      EUjX-6ga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58db3dbd71d90dad3773d65a8d6a1472976e4a2d
      GIT binary patch
      literal 2188
      zcwVhkOH&g;5dJ0s5|R~S0thII$|DKN!?y(EgNIT?DGEr5w*^L6YT1pO4JCiVQtzI<
      zc#tZULQB1K_V-x!%x;#DY+13&!|u#>_k3UX*S&N2`|A$?W0(ygz%ak1?x-UrThm7-
      zO<m_}wq_c|zGY+ET-Tm!>Z;BktA%6V(}r#BE^@m%NZLbaV2DXjT{SjF=2y1}GlV9F
      z#1WN%l;I4FGqmS?Tp5PuMQy`S?UF??J$^A0OLLi}d?rh=O%s}-*;$6pq%T@3&(Q1Z
      z@<2pL!=$;+BM2g<Ac~U=!DK4m49Z?X2w{fSoM!MRrR`O2Es4Sz;yH6o)$^()g>a1x
      z_NG>3SjhcneW}up<9xe?GN)D_S-IX}KT=<3nY>bN{-UJnRAIZTX+^g)sb^6%qDMhD
      zPE&_Xp;1i`VQg@Fj?)aZB~yO>#$<{J1yrAcUYutL(}}#Qm$>81OJ`C+zjSV@#ZA#Z
      z*|b^Vx}+e5G`Wi2xdFd?{n*1v!WSGNj4=!zMJyY|QlVg4Hea7Fa7z^;PrqE_1+j@>
      z6fw$f$6*W7d4jUdMcdMhjp|YzYevl5Ed|$cgPQ0+zV)^CALb~PkI+<S#FQ%xkwvp)
      zt??O6%u%d@VOa1oD6@vatw~)i7I`s*dkp<`B^1H~8WG=6`ju*ery0iU!u2hb)UCr@
      zR)Aq;Vs5;)^LZazw$}95n}mjddQVRyJ#ley(ArGbZU7P52ZZSKb}T2*LhCB+0<=cb
      z`)ExMeMWqbzJh3@cMGjZyhcOf4Vn{g(N4AwCz{q%fZRDOoyUA#o=<d}i64^Qf^Wg)
      zi>5yzK6HRH0etWXn<xm0cNIiYk0^?>IOh^6B2M}Q5feYDSJnkdGb3q5SwwSyiwqyD
      zSl&w(2dP|6=P`?e-Cuz{;D<d}i@jGTHeC{~ELE68tVWgZbz)w|u$S+M#D3~Z9{z^W
      zm3>_KS%rL9p?BERJB+KI-bcPJ&v#8`Om~M{!IWD;SXA%@H>)-IRgr(VCVv+@Cc1jt
      zMI0d3pg5l%+Q;~wtmp{umBb53mI=ALgDkDx^nDliF-e+C(Qbw;jCK!cbyRuu2gRq_
      Ag8%>k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b9f103aecf138e6fa9ce719d67bc217431a4f48
      GIT binary patch
      literal 2550
      zcwVhlU2hvj6g}5p>lmj=>`l@Jn}oIr8#}~Jg9F5_A$7l;I1R+9QR&kr-IlGKb+uk2
      zg=fSs;2rURc%(=`1Qk)Ac<A4N7ZAUp?VYi`vCUR>MP;pL=FXja&bjyQ?BgfD9RXOv
      zwgMkv^`8E@o@qK}EmN%5YQ~;p)~&|b8`ggPwt2_YcWcI`e!pjZ*>dcIis2{-5N2O|
      zUb=<|s&qB$nTlbXdd>VoY!XHra#=O(1|Pjqx<sIL!f=t}IJ)Ij^;**i?&HpP--Q49
      znGnjGmgy7-F|B+I&LFw@Dq*N%-nDe6X>;VIK8JkQQizg5@;e*3oocSYKXE=#tlu^w
      z@FNyQ6vKp(vS}IDoBO+lz0)EbE7$j!uWn0qZDYXs%xn<4Azn70ITqd!fW4{+6TN^3
      z_dB5F!O%Jq7rjtj{e;DrOBW$*I)<$~b(=YA^Ih(xww-;lo*OTUtzd>Q>8&n11j6Yk
      z&fqL(Y)|CJ%Q5#F=AbEftJ8UX`%xs2j9?lmQRy_Hq79Z#@8Wr>7Y(I2^)=hp4+tl<
      z`CDGHIY~3m*>W=?I`Ui;3s@qIyUsP;x|`YBy~jj3W6PWgZvX{Z!uGBIA+O)56Zc)h
      z)+>%0!3y3NC0Qkynx~#uE<_aS#D06VZ8VxShc6ntJt32y62BjscY2>&)`Ir|x2gja
      z{h}y(k)UZFHTUWRLQog|7U7rVia7i>AyTO~?LFg)Dev2^lr4(mglNgK47*s<8x5nO
      zU}K<bo%t%*<aYFQ<$J8pnO{S%g7ld?B_Vv3-&p;xysC$-FhD;HaG$ld`@T;(oa03L
      z`3dqf1qERqhxiNXLxgP*UkRR{kd_gQ^7tvwd_0Cy=|hbD$TL6U{2vk4_@4;I|ANZv
      ziIx|}c?LO~#7T~Rs%LM?-Fuz)NZeX3-Ww9{Is$A5Vh=HWGnM)YZ~lr|!Xf4#xY!}#
      z5&v7_MqA!(+*3UkfkvWhT#QAD@dHN)@R&^<BJ&96%k&8EY^MLfZ2IVTtZe!V-$PwU
      zKE%q+bn-kM;=Rh3eoCf~zJ2=d!ZD3Gk-GR3gyT;!tP;l5047vFCe<JkY6vMFm({SO
      znQ8&HX@;3n4$Dk#7#i|y_c8S;TtI<iAB)I#iTJ=3@u3v)HH+}`sENX?eZuUg{TG;b
      zIw5%{+Pr;~ki65!yiYSe)DeW#F+|iDM$|ZSSDAAhNnX#X<C61CE52J&4VNV6Xq&08
      zi>cOPI=UvVb+!nGv$DiMF!c*AKakYj>hYsWiy(DX&aR=v;}oygQRY4nFa0{U*s{X2
      Kk9cg!|M(fqXp+hR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6b60056ed0d82aa88763d73eeafbd08ef57d93c
      GIT binary patch
      literal 3698
      zcwUuOS##4?6#nEaa%{21P6C7_EdiW_CUj$o-4q%O4G967#APX^iX##wiew}?#py!J
      zTmL|x`_h>{bXq#ol%dR&M`rqO`p{RV=UgeWY}teRkVyBQbHB5E-#zl*FaP`tz?*m^
      zBPQYKs=A?$m0jH!o3so=E4sR6I)e-5y0xU=)73>oyP}q4v`g46Tn*J+9=p1@N}e)0
      zCG4mI2*<dDwAj+Eu{q7wRYTuo6guySWkItYim@<tL4tId046D*tD0^>HOgAYKR^ET
      z(*0NdfQ;)BcFoklXC-va>C2|-mTf}ptF`9lr?c~g>;!qqn(5lQ=F}q0X)f7DYj<+B
      zAcJ{2SqY#RtbI+Z5K_AC9J#QybA$6HdvC~I?In5iH#Fq@R6BFJsk;*rx-)gf4izLE
      zsN2kqP}mW1l+Epv){>S$8xAYjj{ym7nV~`#B)qO*Cw9pglyIoZ+ick|u35V2YIgoX
      zQ7dsC2^_&;?vrk6v*q<g&7Sx8>YlNRM3-s{75JO&?ut&e9&cDuL^oOPN)1Y-w2d^@
      z8bpZHeN9^-p`&PMsx4!Ta;w(6U^?Ye$+BH->1s){RgMrUe3T1M7A@0Nb<>&FDiV79
      zeure99lDi72i{TW(!50-USq%Rs2fRn8%ju-51mzTnh$jdkw}QME-R!S341a_5ow;R
      z-+Prfnd<iybR#9>yoB+VT3WNt`w4NjlM1rPC2$UTmea*LO>&Mbx=!tWSv4F!F{R)V
      z*C$!jm}M^OSfd6uYF1w(M=Fb9uPT_v3_+I41bL=`XNy6S8Lw9iOmMW||NI_bQJodO
      zJ>t$xanu_M7C`mMx|3foxfNj%+<&6rCT>yX#JwP|H$s${2296i3VN81#g>Mv-}xm4
      zcewK^@)U)tK5rQGVr%Qx2H!eI-xPXURj|S-#$9WU2AsJ}V<{7^+}q9aNH7(wfl&6=
      z<XSVC4mL4)vx%#*74%`R466CWtE;K*bFv$J)=I#^1C|r@b6=)$CakK&oK?1q+C^P_
      zD?$-Q`G^E%$}}~5(oh{ob7Xu?ceP<cG|KAqPCaU*cnNxLdOWI{LW8}DW(tgad%W$s
      zk6#u8)XO%+s4Fu4?MD|9w3DPSaSVKaX;{;Gw^;ANBfinWI!)`I(7Kn_L`tyUC!YJ!
      zPw(E&0UV^~2EE1T**p9MhlWSC@Y=`=B%k5P%_lhe{5P_+;TYQ~Bcx8FJ#`jcsd4N`
      zWzmz$;kd8~1Y|G-h&M0O;TqdWU^_uJ32%scIfo16BhfSd45JkG<nthEC-0{&i71Na
      z<3|~;*<oynN3V}~-LEP+{5uu&6mQ4ya~)_QlzK8qJ&AX5%1_;cPX_R(o5G)o!ml)e
      zA8!gzQ#Ih`JrQOJ?ZRh(!c4qC-|#b>yU8J+f`0lu!G$eMu<3CSdnY}SdH^|9L4Rs9
      z)VG01-v)xnmzoy#VWhD1V3WcwH!X~&bWqrphGAx7sMg?xIrYEkxh7z}FdvC92E9=~
      zn&~Q?7cmArpCCrukHK%uR!l^zdW{5LbAi{qP%wQM{61cUBy0(ft&gQh8?T4BNkq6w
      z1Xa-|r7`C1DCX@JG4F(w_Gv_EcRi)4zS4@UG;Ira*;J>rv<^AFivILki%Po}nLjst
      zDKz7#64F7KqxuOGW@dZBEJuVl`-*7aHHlU)?&{20X~wx8<>&hr`Jpc|wkM;98E4Et
      zuwH*lerRzr(kC|PL@C1feUEX+XS~def4+tLY^rDc7h?QZV*GJSjJIJ^#QXwZ(z9FK
      TlCSU({PR)5H}pO7a{Bf^RL8o{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0563ff3cdaaa16fee039e8bbd8d951466b35da9f
      GIT binary patch
      literal 883
      zcwU`S-A)rh6#h=>k2FO}u_%auVvO3vD)9!kX+mm<kPReIdZAa-?TACBvu0=4#J7+O
      z9)v3rE_eW*fqUPAaCVEfG(-p&yK{EtJKxWoJ-awL1@HljIiv_n`{JjlMxoNxhOf2s
      zLggF#a@TbIj{2rVTgz=>I(~Q6^Q5(|vSAKs!mHc+de|&ss*fGyA{4C*l+Z01Snl3k
      z|3sh-!dQc;LSe#|(2>lXAOAU=|Gc(E$kvomVVyAf+U;}3I?kIGVRT3B84*T-Buoz@
      zYL#ZwsVBH}!|%vEMo=oCfHA_jtBl-?x@{RWW9NjD>w9cW1WA&s&2;!(vFnfS?b(O#
      z%;9930}tEg%ek)f>&IWU<$K7~l8iCwjo}IT9X|>@xu#-;;sEWtxPeeuH%0~xEv%I`
      zhXq3UMi+$H|M?(%tu<GACbTen)vfkEcRKYuWa{S_01pZ{cn{*~5i<PDAcqIMj`B~P
      zLY^zcL*@EmvNMh%uV1)I@tS>GImW~hS0k9@cRt=N{YIvAfJgj2)kC4o6_V;Po-pV1
      dwX>OjXHOF+vx(9(%q5IGYRuy~qk0ZrTms6j?|}dS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..caf7d34c93788dac75955786504240de7ef82ebd
      GIT binary patch
      literal 1193
      zcwUWD%Wl&^6g`udo5ZD|B&81u1zMUH4Fy&t$|k5%P*sHTSX5#$Nr%RjYl9z1?D_{t
      zZ21K?NJywG_yBf%0j$}xMckQ~yd}D@=lag^Irp5gzy1006~HbYY6vlGo$%MZ<a>r$
      zs@bL~x}ITM?q<t6wU3M!2Je`nAv_HchT{LB!@h<X!~F0KB4J3m!ZEnn7LH4hR{b#p
      zdqS`p@p#<w+T8R-^lbgz_qXrQS`4v@VHsYPVKKWuMpe$W8R8A&*y5h=2!`beK&8-Z
      zma7UDso6&&fiM<z=(xhLGKw8etiTKVh9wUC(~fYO(hy1S+g%!&JIY|tjCei6W!Roc
      zG?iYNY`T(r+yleXIQN^E|M-g+Bd#cu44IkcDL?Vb=O#&K0?Q`1j!REFC&X9I9mc`1
      zq2nfQ(STh!&dgkr*u)(TTMX%0`#RQfod|51)szauT#vgwc?JyOY_2ZZiaK)0Gb9?e
      z?{vkUAw8!?jP6Jt2EA@s!l{|ub%m>8myFEJg|eMUhT(ao`Dl8a>IH%w_WSuxgsXbk
      zpzOkQMd@0FhB;c}^k0P_KQ+*oHc#~>)mcD_)<dd7w8rv<&$#@NsxZ=YPsnci2cqep
      z$k6jrA4Tg`Kvm0FQ7WT*YlFROw8!Kb&|T_03v`nCPq<My$L$b448&ptLi*Q;P;wxY
      z#5S^lkS=j*PYN-4Tmk)_lB2OD{W%J3iv71@?=vI<_SLb@ntJ0dWH>u0sjg(bhx=6Z
      HLwoQS0J{`z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75d4635b80a0ba6e7d84b23b8bc359f5104ff743
      GIT binary patch
      literal 2105
      zcwUuNO;giQ6g{sW6iN_GDfk5fg7$+_6;PqIeiU(#stcequAH<42$LpElH%|KT=+k9
      zuQNIfI^)`L>%xEIc;5?z)&{7HHZSkqd(OG%-Piv7^YuG`TX-5lfFZrD>?+y1qv_eA
      zsq1Rh(M-c0Uo&dvy0)Py6<u91Ek|8{uIxk*VwgC)K%{ms#Ew%v42C{iwKPR9tCmfb
      zYfB3Z>={E(kzgFfaLS5aSHo|ABon_r{EjjN>>5M7<b#!C=vvV>4aKQjD#MUpPJVSc
      zw_45>D7Pc88JbgIxRCHgOO_c%eM1~1El_w)sA#UMQ3Mf}(1!sAxv|Ja>H^V7kkG@>
      zTha{mMZH#0tyOLh6_m^>IiOg=uEWicv!&S#nbO$?H##uTjJ3COgg5&?Kn*qxpY8xd
      zv})FN6iabTi+h=D;yH?Npc6v*41pDL-3Vh`!U#qgIyW@Sc9zvWhW?`}T`@MZFDu)m
      zo4~?}BvtX6q=X4vXNYX6iaSxsL~BLTuM5H%OAw52(6fM(Oi4%~9i>ye$q)HF32;oI
      zPxez6q*_v>E20Swa7V%nSJ`3LD?((>M`Zi5C%Ejkl;<Se#XS<UVVO0dIN~UpPH8;)
      zK*D{b=?quQx>Z#dH9jeQ4dXGz@foBg!%(dvHDs%H1awE^zSBhezVpPen_r%9?XT>!
      zS7>8U8@oK!0-7f}4*G-<z$HY`N$W29!3!V?nO{hHKPTRMDGGkLw03u7#OPV2Re+w|
      zsq{YjQ|T`l{6w!oT%_-F^h7*^aC{2Uc$O%D0XH3&aRm@7mu9FbHtfZ&QjGDz_lU;?
      z@uJuVqN&dqJis-Ej~;IakHqH$pX6p8@(nfZa2Ccdh=+Z{4?EF{z0f8$-3t$UQeamQ
      z5?#vQz+Q3u^Z_yf>?8Xx$Lj{aWX~^|{*7)o`6YXP@z}J`K66%2v#mXCx7icj7!P|+
      zV85XOqLW6<>uK@;^FhC+-U*TsH{EM0hP-HsuXuX_L42Gw>}5@RS<{ro_yujl;DWEg
      f?@ur|e~Q7bf*>9W#z%MzZVk7#h$pmil`Q@RZN{wR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d4c72daa5a721abc046b737bc362c10ccb063fef
      GIT binary patch
      literal 2032
      zcwUuN+fEZv6kVrRDZ|B<7Dc&;puKQW@CL1TDUe_qeP|&u@nu>LFl0JIW~Lgy!dE{-
      z6AeKUKfq5=pMBB9#1Am;bA}F72B{CzIp^%X*WPRGeWss&fA|RCI+mjdFyyw?=jwFB
      z(e&w}sq4JvXr^J0tr~T6UE9#qs?N)%<?!_~ccKU}jJFXWTq6vLLst)jq1Wb?rs`|l
      zvMF+PWs!kBV(2OojH4RPnyNQ=c>nd-tM5O41{ngj&5$hlVC5M)%G#!(It`064EXsJ
      zDwX^KIYtVap*af-=hD7VnKgz%Uz3X<?4hE$&SMB7sh}4rhImVWMCkyfP@tfTp{Jx7
      z{BfgR<yJ-LLIEYSM$}bH>U3}za<(+0I9X~#*(20btynL2ns_t+1Ju+fRx|56s--%n
      zB{a&kU^Fe{H*|ujFe!mL5yoW&!x&)*Z)lcH4ex7)=&G?f{iM201rbs>ouLpBkXA5;
      zafav?SKS%Oq>o2r{F*~J!)b!?H5R;*CKY6mjZtr=MeEMe;5g=z&g<N8L|1&u3sNxk
      zMptb|Aly_iD{73`jjAj$?^9y?MURT2Pp^Ak!7bco=-jZ(x>s-1Q8k_XgvWw{0<zS<
      zve~d|d|49{(0ioqQz8L_vSJwADiR%=+ffwhO8HI+o%_xS!?QwV{y4#fc80A<>147P
      zq22`P2_t|3L~(}J9rT?FAVv>eC)#(*eGge7nn-K+B#s2VYqSc`yEB{HMPD}e9{q1=
      z8^n3~?WQ-9pAk-eK`i-|QUEE}9T#vBkSjOMV2f?Yv-OaTiP82FUy_NJ<v9?`zC-^W
      zMj76Cc_YG-{3i1$uGc}n!Il$|g^63>VPEmXzIq({SDV;0{~mTuVpkE8EaUrNPX&H%
      z4-*0GV(PCPsqQ0s#XY^^xJG{?NA-$(dI{T%tbO)0PB)HmN)5EhiSCAneMe%ypaG&z
      zBjItH*uz}VkJOw@GUB>>q!P$WQeq|O1!UqwuOZKC#`BsXFD9;G8v@_;6}WtY!1;d&
      Z>{bxOJ(=-79zaMVq<x4*TDg@h{Q-2)nh5{^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Collections.class b/libjava/classpath/lib/java/util/Collections.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9572ce591b0d3bdcbb0cc8b430e4139c80abedbc
      GIT binary patch
      literal 21075
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Comparator.class b/libjava/classpath/lib/java/util/Comparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..383c9ce24992bf20ebe49d746d71b75f904f4e3d
      GIT binary patch
      literal 295
      zcwRg8Z`VEs1_nb0K6VBsMh20r#Ii*F(vr*^edqk#g2bZ4lKdie1{OvJ0kBL?VqUtw
      ze^ORzatR{?doox_DkFosh7Y>5HKvHBCnE!AaAta5Vo51T7pF!@h&2#_#Mx2{OA~X7
      z85u;e7^NA-$iNkxUs{x$>Xw-U)X9%<oE}IuBZG!bh!v(rJ4_)qMg~R(W(E*o0(y&;
      ZfepxK2k{s<fP78{E-;%LO!7cwcmWaGO3(lR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ConcurrentModificationException.class b/libjava/classpath/lib/java/util/ConcurrentModificationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af324dcdc8f2c0c2cdc3e9c06ed5e38fcdd83a29
      GIT binary patch
      literal 556
      zcwUWA&r1S96#hn6jZMoet%MFi2Y)~k9Stv5P;5n69_lo%lTEC%u{&%1Tb+cUu0hbh
      z6unucpbmAI_iMiQeeb=ukEa&^TPSCcV5r{m5pP6VdX2WP+$acy(no$@UQ3s2>8rg5
      zSKOH(1B;;?!#%DBjk8E;ITT<24Eaz5l6zedgp^+#>@u)Jh8z)xnk(JqUL;cQYsKE^
      z_5PV5y(5*>Erw*J+GViXeqY!~VlE3Cvkdc&RN^=q_C#>bd!Aq@IKE2)oMb4U7A<`v
      zLx#HZ?^T)%#ftO2N=FA$4Vu-iQ7;<xMVhWJG?$(c{e@((JAM?nVqcmGHvZ7tGz3@&
      zZAz!7D<Xw7`3z+V%+O<IW3pMQY?Ei?Q?)U2k1=GPtW6#`frV4#DauYjSU@2rrJ<(;
      iEkYV>x>g@!=_kV_^<2dar3q@vV4@P1WAT-^XY~`=(0y9~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Currency.class b/libjava/classpath/lib/java/util/Currency.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..147415ca1e935202ee48666ef88591b81e745bc6
      GIT binary patch
      literal 3337
      zcwUWHS#T6p6g`h5^rX{a83JJ^AcSNl3lKmgfRY3-IN%aUj4Pc<lQi`73^P4paYsQ!
      z5O)Rr@r$z5s-P00RH0v5WoeaVmEV3?mZg5-zsq^AXUk+#1=P&zzVF_1xAX3seE08{
      zHvp`~`x>SR1P_@bW^3BBoz~8DGHJQd;~L5ZW+}O2x<jq^4ji(go`&fHHA-s7TYIde
      zZ94V|bHK5voKmm7Rx)MB-TmEN0%Es7b!Xg7d8X_2noioP_~(Z=cK6TzaGAh#CmuDW
      zVK9<+A5pS)fwH8P5?ENU^?;R%r;|~uBkc|<6(gF7wKG1Lhf&e?cuCtGqE1EBj1F^i
      zW&zM1Gr^s}mZ)R9wzrMG8X9{A$|a13`2w@^x_6tYVe0Fs#X<v%Fqd&}QD&78SYjZE
      zITGD=t-a~kfR)_m7bB<==`~pqzAK@QGAyJUZ`fvLHId0RXH;_=CKsczSNd9Iz(92X
      zs|A)1x#<?E*5a42#aHZh55|)*(_{5@G$O1aM8JGeIvq2Wip0%9D`}t!%?x75@_LS^
      zJS$ePC$ONQF;dd3T}La{YFHyMf2zh9Scf)&N<#Yrfxd>xt(lzW6fPU5rhqKV1_LuN
      zGl1J!bKCWtY%P0^#|Gk#jQ0)$o6+t^<U1FrFA-7WWRY~R)xa#w)^Ml5oV>!0V^J$1
      zD^2#W38VngJ16k5rlABP3rEE+>!6u-yq!riDlxk3A=^tS9(L>4iMuuI5}2oqJ?og)
      z>Qif{>aKxq@L0_$@Yk&lSd>1SO3^1$8mL{miWt~~E<dV0<}o{#jul50$R0ClO$8-T
      zMSy%94O7Q4k?~dN!F~<<I433?Py@Z_V?~Hs)GdDyP3Treq_bQ7@{rypQ6Dz&2p%Ow
      zB29=*B_M7Il$p8K(au~68m4B>#LRS<h-w(fPSJu=7#M`*w{ZK2X*+T{_&X^%0U95k
      zTs)cEkb(PfzkIR{Y)6NV!-#2cCd_F+Bm*wu997nlwCSYsV`W0J4{10eup+<F?Kswu
      z>1<C9rDK-s<v6Z^5VgfVI?}eo0~$b@sq7oJ>askki<19MbvlwbD%)|a$bYtKy;9?Z
      zfhX`JLp2i#%N-PGzNMp?ao!%l)AZg{XQ%4ixL21-Clc|bXAQPU>}L%;hYm8>i~CkO
      z5;!WLn~syK_nZ>d=FMgE)6F}^vr=BZ`)Y=$$r8X>ff?D9eOaEVC3s($kB;-Wpy3sc
      zjiRAv;8i)8XUNl?AA<7gh*9c~`|K1XHItS(C|{kCNdqUxUp?2yl!kYBX(=6E-@XPz
      zvdmacN7Cz}B--P&>`{Jp+H#0jXRDxY9{zOT(c-6q|K~$PfX|iuNihvNPRg5#&nM+*
      zRx(adu4m<K$+e2wHJD3_d3<Z-zWi5p9ku<}u;4Q+zM_nl@>^G%F4xUirlj(-C}-Tp
      zRdB5cT|-^5nTK+WC^N%X!g8$00Nj=VI7c0+yG8<p!dI~}6s!+@j+NtR7)Q%htPk;R
      zeQ@I#HeJP*%c$%N2|iq*{Q}hUp52!5S+DYco_MGDbecY2q=(bgdYM}15yA!L`kIPo
      zp6@dgk9@j|6_cs(T<7YNP3?1R8O^0OT?sFhNK2p-T^ZvYT&0U@Kb0Mk@EGp-xTroK
      zu@9dV#8aIC3J`KH?o}P-#K}M&X1}G@>QAva^aUQ6hOZ$a;croU9ipG*doUt*!e8K_
      zGW3P>5ziwW@IB#wAPs)RLi~hP__@IG>I`A3x%U`D@Et#%aXd!*a<03_aUfE*^)i-+
      z7q1(~!M)9682$#c<PsXgp^K<!9(`e&SRB6b!GFJ8N232alKnyN8b-K%Jops9#_-HF
      zoct;mTZp9qekJ~I^!Yo9`UijN{mB^q!b-}Tagz=Hn>Xc66>rFoBtz(O%AdyzjB`43
      zIK^g5s@JgbE7ajQlWXQK?ubl3)(2lAnMV7>s1j8&ge-?<&<vssx~M>v&<dJdoon(L
      z^2rCiLT&1!Em$88iZPrcVfQpi4`X=kBJ?KTQIjI?XkU)U%C$6H!ai)H<CSWyC*{`U
      zLTTYKg;>Ww584pmS|!%P5F1b{He#vRgjHfQ>cuwx7Q72<MTZKt&JQO?>o(O_PEj6$
      z*EtGg4W27Oa5k`r;9_sdbNdF~<o8>u^a5`ym~|PLfIKJTc()koKmk%9SH(+8>%IR0
      DudxRU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Date.class b/libjava/classpath/lib/java/util/Date.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ff812bb8b1264633e65376401fb6c7d4d86c4ab
      GIT binary patch
      literal 10943
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Deque.class b/libjava/classpath/lib/java/util/Deque.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f45e3eff305d952152dd961dff0a02ebec95a03b
      GIT binary patch
      literal 1056
      zcwT*z%TC)s6o!u};3V8>0+ev46dMW=TR>SAq)12zfmpCJ&LNl@JJ@3ueKZz401t)w
      zd+fO31a)D}eE*#PTqcvZ_m@{9I-q@%h76i|aGsq;qCCIxi=PrUY1p7?E&5K-X`J6a
      zu&YcO{SbPQaKZ+aoOb)vi(+L^%{r5&Bm3H*@}<`a9F;@}AGNMdv}nS2=A^btcz4Iq
      z|8m^)eAtwAbmkn3_%VFu+*-BlL9an0mJKV)WWkxU+zov{_m$FpCYL&_a@EAP7t8#+
      zh{ZmWYkkGfT{np$4qQxF{a2@7{(^bYjP4%eWI+ZEr^Qi?eSYLXr2;CXOA_D1)eXC-
      z>V|=GydZ`idw<ewmfeExDUKW!BH>(bc>UY7avfvWKRr0cl{9fW+veEipzQ^nR*|c6
      z877g7$$V6*=qItCrZA{^d~!H=$IU^hucUq_Sv@=;w2p5Cudj|rW>N`M1`SaKJSKRY
      zCJLSePYIr;nSy7*Uj<hM*96ZAo)^3z_?zHG^ppNs>iN1P`db#fBK)g@*95N%-Vpb*
      gDb82&KECJc7X8rcHd#fS4c_Tze7k!0GgtQh0;(*<(EtDd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Dictionary.class b/libjava/classpath/lib/java/util/Dictionary.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f57252efd2047efbf46491c86fc3e6631f56961
      GIT binary patch
      literal 836
      zcwUWC%TB^j5Iq+vMNsj9;9F5+z=gz}k%o;xVj#MJuyA+58@$>FDJ=>9l`9h$et;ik
      zoECfl)!4<%oO92dPN(<n{pA(FDGpVH7?StA&-1P$^?XUT9ch`|9;i?l7X1^Qo1Of1
      z>t3`ShKMFj=@c2l*<6!Bxv*|U3}MX9VFnR~L`|CF$~9WTZt#{a7?x{Ro9j((OAn7o
      z#krF`hEy%+-39MptZC5wY}^U#&>Gc3qgg0YXH@9I5T--!>)G57b=h<cVRNs8WV3bI
      zF}dT~p672mZR8p52>SG+Y;AHMh1@j7kPZ@(6@w~!Wuxm1{Po??8Xm-;_vZlB;Q(Ei
      z1~?1w{pU#W>~KTFF(S4wtiJafdh${D!(1}N>XvJ_MMZjhPJA!-#Peg&wCee^bu)k~
      zPE$$-^cr|ilq$L^6jefH%8c^N@iU@NRD=<u7(<9+2?{ERQ#CgfQJ$x~FvcX{-&HIT
      tvrJqFD}<9+{lY22X{`CW^&h$o!kgIo!rO#*Ci-@<=hqoO?vG9mJ^-~!#LNHy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/DuplicateFormatFlagsException.class b/libjava/classpath/lib/java/util/DuplicateFormatFlagsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9387ef70d4989dd54b08d61585d9e9152be3ea86
      GIT binary patch
      literal 876
      zcwU84?{5-85Pj1^K|G`){e=~;pq7G`__;<CTZvTKm{dvnaeJ(|W_w5O_8R{zO|&F7
      z(T^tnQO4N=X(C2H>}21}?0d5_^W*22uK*t6eg<=d&3EEVv|^)lYcC#Z<q0F(L3k=m
      zTZ=*T?7b(4Mg@KbDS~^M+|gPNgdV3(vj~fk43*G58Agm>clHRhPsr~Eeq@AidP2uC
      z%>{tmCpAL)jg=u3y9u`z{-AYaLgf#32n&ytugqh@QhheO)gz>KgTBmQk+AY-{AsLo
      zUxrx}32W1@xmL~{iYStOSNU!Z1(X~($lKepgB7f@t{4ub-zPlyo9>KjBDG^F$_{Q~
      zosc!bI7lefXP<EHJW3hdCR8qChq2Z#1LYeTPFtGA22aUGlG-Ep%y#hi7fj%KwzFaE
      znIPQGp@PyC5bik0;VPlfRlYooPfuj{N}OnE8y$E&AHh>%JaMMXTg5||)cOBy;Mrsc
      za_l7Jj)FM!WLsIP>OUWDTLElvh4Z`ub0{N?1xA?!W%+Q~$(`&_*j{5aM2bB?y>WrU
      zaq;>HH=5^II>*`wx0>IPzd+@<=#EhR)@Xi4?PJ1lmu;EZf#)cpgH^oX_UxmIE;ez1
      wdmLFF^D?g6on&kEd1tYO^@(~b!9cq43AGPX>V?GFOK6;N!i0v<NV1y00O9V_m;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EmptyStackException.class b/libjava/classpath/lib/java/util/EmptyStackException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4169a8be330882f2a58e6b2ef3b84b94bf550448
      GIT binary patch
      literal 380
      zcwT*w&q~8U5XQf0lSX1{YgG_I#G87sh)2bP{ewzSXl+hjwsFzbWVa+6(YNqbJP96r
      z03S-6MDZkEX6Bpy?aa6P@%i=+U=J%EYJ~MW@gTZ|RY`Y{&g|3Jiuiu;7|WSeMtg7w
      zYZa0RebXHk+NxCko)g-+%#=tXndPh}r+osQ5t==tb1SrsL{dn1_-sZeSCb1u<4|d3
      zj|lax?TFy?%(e7U$3g%f^MqEYv^+1;smw0LG?9c(XkuO<cn#~HrekkaPS^<lwSPeH
      z$EL_)IaKAX)jycsasoENj`&;nwQ$kk?6In0jw>piaSXV#UunSIc}4T3LRuVs&cHDo
      T^wH)j_=d2EPBnC?BA34ae&$%o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap$1.class b/libjava/classpath/lib/java/util/EnumMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c544880ffd7bba85e5c23e8eb35adaf93638c6f5
      GIT binary patch
      literal 1315
      zcwTi>T~8B16g@+~w(Dw3k&1%iM?qSI0xBXUCWc_r2>Jja(YNU`fx%_h>`qDWH}Rke
      zVxozU#u#7xA^PBpZ^k>@O<mhHo9^7XbMKjZ&b`|&zu$iZFpowK0}Mm^{E*k%N;>s5
      zw|%g|UsmRGNHYxoJ$Tp(l+SIoDHKCi?a81rN15w=sSP?_k*-t^7|K%#=hbb7^s2Wb
      z@?bb)A%m=m6wX@6;T%J1N(U6yr7NDa4_d<C;w?uol-50)JKNlsdLKE{x)7?f|C-7?
      z6_O6*D-l9A^C)8^hYJjYeX$lU;u6(jbALy=+>z>tfi)Qnsf5p!=W8m}*d@)#Pj}=u
      z<*v(B+oy|06N6T^9ycD4(pM9eUNA9^>ze!xhLHrph>2DtV>^QTCefI*P|->mw&yA?
      zT`fSA=Wuto{<O6(Y}KefH%Z`{g`1cnI-ZuWFNm7uiv#aaXyCeq8BkXzlhBfK4Q|^a
      z2q&TTpUM*l#N71SzAYX}-9sz#&+16pHeFZvs}2tWLCnTt0I?bDXi9Uk=Gu-INOyNb
      zs6B7T!hI|gsTblXoYcX8Izp}n=17$kO+PCZ_3V+A3x5Xr^JFbyfF8iCO~0krJ6LaM
      zH-Ling(uVud`6Khi)`&3L@D$S;e3R$K&w78Y9}yHFnrv_$cFx}v3#SOKZ-Gmx*Wz{
      z32|;ytvV+E0pri8m}{?lfWF0m@?9Vrkf@Nwcp;~l=q2-=sQ*YThUO;1SdJvg)}~KU
      z?WOWF%r18#qHJwV<5qb0Oc!T0!YSxl2x|5dGU?+~FW|2jV4(|G=l~WC`rlfJ04E}H
      n84cL0Os7Q}Buz4E>kjVHS|W>ukR|%`I%`MrMcfOc%UJpYqm1<k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap$2.class b/libjava/classpath/lib/java/util/EnumMap$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..048e6c3bc00d57dc866b9090f8bf72441a4834ae
      GIT binary patch
      literal 1460
      zcwTi>OH<QO6#i}>gqA={p%tH~6m5$Ft%{E#hzMFJxF|BCYz%3pglQ8dO&QquW1Ml^
      zun>o$<HB+6&e4S%9Tz_Sg?jEKmO^VgNzT3JobUV2IX8L#`^{SbNz6%bF?6je>&j5Y
      z){8?^Mx`{TtVL52JPbkMC@Mx_=>GDmrrHu(7()Bu8C$ay+q4+Gs#!5?29_aPH}cvB
      zLyNtlm!nCBaJG>lnWlhI-O%kZhMri{i1;FdXVT1TK9Cq0ezf`FMo5N?E(UijzQ{dc
      z84_B#bwq{_tqg&zZfNtB(z0ePD9c5SL}yJ^DK09O&ezVShYM^jFGcdC6{S3{ZP<e8
      zksrM{BjI$@ekEm`MIS?}qN-ZC935sz{HLbI-Lwz=I4|KGLuZ3iMvPa~rYcrmH<Y4o
      zZ<26B$O^?AG%+HcK&pK?y<jMI#i9bevG~HQfFG1G1XATK)40gfwN#h6H(U{yl5q)_
      z2}LWd*_*kd$!VI0j>x!*Ydn;QCyPp%TG?3_Dz?&o+`y;=5*9e*l5rC>`(Qz{x%5fX
      zDBFr*^MS<TP2@?qMFdNY6}MPg$y}$Rx)1cjN%PaWxFaKu1cN_kRxDMU*7@{hr^ACh
      zg_aq^&@7=$BMk$MNOhC@ckoB4y<@z#DMKxqW!)&uY4(blmobYh9S6Pkf<$8RCi!U$
      zlRP(FUb=&yWALAkKZ8Mj;%VijOGZ0Ib&xd!7yW_m#6T5+#4B_r+*Mk+s)%gUz6(8c
      z55Yrsj{AYoK2qi<92Gc>=i(TS3;zk6ba2Nhll#Jn9YWhd;5AO|Ao>(u&z5_u2HYZo
      zKG%VTYhcu5iW(5H7X;`NQ5=v>JS0@lV=k1e2)827(Z0W^F<vAql6r~cvp?T!n^$&m
      z{T;@I>qSjVhiKXtYSUMY;9H%hY)#Vyx|{+ZI9mD~RHBZ0@>N6+QWJA-`w+zs1o4wz
      z@n3ZmeR~wa2`c-xL(xx9?(-&gF}bgEuV+jo^U--QC9G-O1s|1*zAX?IbDn!WyoZd4
      H?#0YsM;J1I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap$3.class b/libjava/classpath/lib/java/util/EnumMap$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d4b4b6f8cc0d5a201b0d462059d2d5ab2eb910ae
      GIT binary patch
      literal 1053
      zcwTi<Yikoh6g`vIKDyd8wK3Xi)TTB`wP}rrkW!FPA&~l|CE&-&W@tyYyRti5(BI?-
      zg{q+75Aa8ccQ#8JlStUio%=X*?z#8(pC7*f>|@_RhGF#`zvQi0Nw0O}#}~)^eXVUE
      z$FOl7cr}bv$X(S9JWsev20lYUoy(}UM*#gfgbsxdq%YMWL%F^n-WV|Cy1__TU|4dH
      zN5MuGHyjwa$&jt<gyp{U#hdtID8f@d^aMkxAGq8b@KEY|>da{(3~Tex)Y?QO7s-zz
      zf$Ui*qhjDT!^&K)gFCoOTwETGq|ZI6J}|HzgDI5=xe7wvN@MDgUh1betP^?Wa}|g5
      z(E7rpgVRChuw&rCLcyQgsN#`sev_fHKrre=E0T9T!9$zcc<i92l`^^OiYS>w^FMV9
      z$77!aap;QIQY+}B{#~6(*Pic-u<P+C5+v;A6u|r<j2ok29r>;oMAAPy7V110IcR}M
      z6)w3KYm~}AvRv19utzJ9rG;e0qTU0t^7I)n$#0SM5*hjdc5~+|{e6e?g>D%vYhMx}
      zVOR!5vK+FtcLk-yzlvKa$}>83%xqr4zQWq42}VKtSz)T)oYb#lgR<@=x%U&CHgVNC
      z)=yO55}AjeXMmQbfUF4+4J#$`Vw%V|Y|S*owqdaPJei`2ZPZhYtrR1#F=h#jmC(B6
      b&`7K%cIYgTrHiyxP0w*>Pw+I!E@SsEIWEfz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap$4.class b/libjava/classpath/lib/java/util/EnumMap$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01952a957f5f0dd51cac4ef1e15f3f7c6c33aefe
      GIT binary patch
      literal 1233
      zcwTi=TT|0e5dKb^HnfDcw6q{z%B5;slyVa<MSNgj1_$t=*ctW3ke-1sX~HBa1AoUE
      z#}^*Np`+u2KfvGN?@;#~W2v;ZlVtbo?)QDW*?j-`^&5bBtf~kxWDfOXz0&ectFmsl
      zn%nwOVM&F;kdgsQxA!YA_71t>tB5kBFVi=D?&`kdGDHlgW%~?llWfy&@Dqlpe_(or
      zd4}v(FT-M$5>`yx^j8_iihVOmbp~b4Y48|GjD|P{;|L?IK|_WiTrAZ^B&$KifUrh2
      z#4x~++%j#x(`xQ<cURxDIEmhJ4Be{ht||QBP!R(A%UdFO>VfX<@DpD$y^bS~Nfi@)
      z=e4L|3eyY&x?yn7E6g#J|I<_NX*Gu1xU1q0!*EYfLs4`zXy|Ukv~|n$Pf55fWsMXA
      zw60e~x??qS-`4$>OD#r<rQNzDnAK1L>56#t!YGn?(_1U@7BnnkiBNd+$Um)FjxVOy
      zhbHRsrgKb4@tV_e4ZdNDnQDRVSy4gmrfqX~&C)%O)2L^9fx71Lcb!&9@+vVT*KNac
      zJk#Fa=Kg`x(6EB1G-R{0cDZ7yPkj}0v<zXoB6Nq?4v1e&JX0yLN8~AVX&9oc1X<4!
      zqCYTFo@pal{*2*rxJ_QDjodk%hcHI>w5%drHi#G-LV_i5P2w<7i*a0+@f)}q;69^D
      z5zCe@2<-yNFSvDq!aGEiv+!95I4Y7@x(h7Z0V|<QSu-;Co&-IS%>f(bSA?p(6++3%
      z2`l#jLzhm6@jh9(g-@7&|Lez<!;c*m2{A4<iZ~m?G8^wwv(ZuW0GXh*mw}4u0FOuu
      zN~4X!zxc#iJHJAaM~Y2gicNM=Oa~MSmSy%sJdzU+(T4|VvEcb<6p!&lX6I4;4QPP)
      AVE_OC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap$5.class b/libjava/classpath/lib/java/util/EnumMap$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..216c7a62c6aa6de0c2782dbf25991a635ac2f5e0
      GIT binary patch
      literal 1839
      zcwU8+TT|0e5Xb+g7t+?KfQUCPT2U#eAWB7x7ev$w^#;R?zMY0+35EpIlo@>Rd*B!F
      zg$JEcyv;cJ;)5T`aW@S$(5RDXvuDp<erI=2e*XIW6~H+>(hw8aw<K5PP|Y)~p((qz
      zT#_q&qZ$$d`~PfAl&hXA4R2O?0xjO6S?wDp&zUCI0&S0*w&`6J=<JW!&&>-YCY=S9
      zhQKZzNwj1T$8H@O_6WrL*<kOCX{&p+<+5_;WZ6;z?K6%ct$FF1ybhEJ1|iPoG<~B4
      zlBk+5lpnH~MkfwxI3Up0WUJ#44ik$Z-38N@mg%hth@wEs^pq<-$K|8sLP?5&o^qsT
      z&5A9(noEgBBaOyGIwqU4J$G$<Zn`ixU${z-hNF=^$Y;=tESKfDz`=-8(iyo{NyAdo
      z&Cmf)>geMdrVPjSq-k?$0zXUIm7)9PC1rSp+!GB0+fp{Lb|Ht;I?muMwXveSX+@>z
      z*g94?2<IEtX@>f_azQ>aXZ?8{7cfeNukf^-j6!Huaq5dY#yE9~9OtD~QyE;wxCW|o
      zSMw}RI+jJAreo{40-CoL^}Hr6I`yfDlu>n{Hak38O<Pn|$6HkH_StHbiS|3U&*R$4
      z)=YN)v)u&gs%2+Yah-1KnBqF6q+zJ4f1?Ke(&xyFmYH>GuAy$3oL3L@XW5dLMcY>H
      zq$R6WMHR`10)+1J|7MeJ;*@PzPSvz4CFLzT3pyU)At5Wa^uGpe+oqmW1q{>Gj?))L
      zw6^m7CQ0*uDblA&8bgd8ATu!dp8h^Se@m+v_Oj03p$3Q%w34Kg%-S}z`}%$82%?P8
      zoA*)!?~r+i{Tq!KEvy&$kbkP-e*|4*)$QB%_;Jn?E8C>Mp!YGs9DB1PP$3j3-3UZi
      zEda@fK{jz>$6<toCd!d8r_dk7cukgEvclkZ<X#~e-x&OcT!|x|{)9n+O$@E0C%hgZ
      zAusR|m)4O?Y{dEeaX)RAQb0VVv=yYqB7GA~^oS*LdxmrLzD#SzIa*H{;IMQJ*9mA3
      zeE}wLgODZz=(^@6X#~ye7WB&iI{SC%TR(QNwIe}nE5!Dk*j!?(hFG!<mTZHiqlu-X
      x&eEE~9TWqW6G0P_oPB2p>!ZYjmB3wJn#PO|6Z4%|>J8rY(J0}bZ{3OezX4=;c8dT2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap$6.class b/libjava/classpath/lib/java/util/EnumMap$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a57a5d4a45715344aff8f64f9a94145450737ccb
      GIT binary patch
      literal 1753
      zcwT)}+foxj5IvLIlDI$siFidJXjqV&f|rGO!H8%8HAofkpvz_p)(X4UW<tTo_+pji
      ziw|mXv9!wa+3)Z>)Se+EF<DJ2yFJt0r_c21$&X)Oz5y7;qJjWJ$4g_&7%p+UFr0Bp
      zn{&pi<b;9{LtHuvhO<7ru=dh2xq=8odo_HPTb{vPk0ETjC5JPxS+Z>>Z*4O~_=a6f
      zjxuy+8!L?K6fkK!HcvBjrF<j$ml#6RZr+N5$f$_nSPVh5t5DIw5KQ$i2~VdA1x>;_
      zp(2VVhSsd@So5XLHOpHx)(RGp&bp>iSTa0Ytjn7rLC~Mx1kqDAjN-ht&1I#P7`kym
      z!Fk_)jjQNEFGG`InpUxx9AVJ@ai+#yJ&HbDQgD%>t-+}xB~EnAG`zg+7zLZ}5OGJ+
      zI+3bH6Zjd2dpkrunzPp(gO@xyWw(FS<l-ZJaY;|h>O(4qL8QY)Qj>BzR<rfm%eXNW
      zS8$c^t<6__Cs%N}Xl+BNf(hR?T@x7BRouW$fkC^|1*1q3wAEn9Ej@-wq!mn&m~}1{
      zw{V;0Vcp^aciMG|+;F%MGS%<HTfto_Q0owBRA3zU#3W@HZu)68q1UH0Vv7llc-E%7
      zMNK<?)acrX7>(tuihgL->7Xky=wH!iI^<1><=m2ITK8=+wrbfkBw}ef>o}GtTVqiZ
      zGL0N+K#y+h<bOvZO(k11j#+SvwzEEG@eMbx;wf@;2D@_S6MqfX5weaEI&zSHVR}Mb
      zO^8oayyJ0kiD?y~pNeLRY9Z?(0`vurYXf^|)eg|61@~wb*hAtY?FZ0B&vu09Nw`c$
      zlue<9rEyZ?Fp-N>I4%8WaJGzli!z0;Q`;r9U9^72xm_gRARKxhd|v^Mh#+>i2CTCJ
      zM#53lfQ%iKpsx?(VQR~S8hRm!l9dov;vJf+i%P}IWF^KvVf5|qpI<S)tW`YM_Mv~r
      z9qF$NKfv^d3dIC<6Kn=C_JHnI7LVB+p3}QZ*{o2$kB;*BpGh5n-ZC^XONR1$Nd8@l
      zh~=tnZV|GvWyIMEde~}BiQdB!@jKL&nR1CfdJA7z+sA_{-@_I$nM}&Yn@HnF4JpK;
      jE`_8mr;ylLY0Y6CLi_;z0Yh4>{617=0gq*LH=g_f`)zuT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap$7.class b/libjava/classpath/lib/java/util/EnumMap$7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eaf8913e46696df3a5162afede6cf3159497f470
      GIT binary patch
      literal 1307
      zcwUWDTTc@~6#j-57M2kTND=A<w8FOKu5FbfN(d&#qESfSx61?;x3kS&(Eck;ybvFZ
      z&;BUmnQaA1*TjdJbLL#W^PM>}zkYxJ0bmW=8u}O}PRvttB@Aq5WmkrcJ+qlDYe+K8
      zT{yPue&Cr_pq%@5qv?oU8F(#*f#BHov+E3#)n1rVg#tEhX$M;j8%AtI+vu3`C^B9?
      zzpkGME2!jZ49Ok$Pz-@#n4=#9Iuf|Xp<#q!!RSqi2N|u}QoITqb>SVDbw@CaS6$0=
      zYNltabH|ueEyXufriO;IrgUYi;fDSyL+UF3u7EXFqK6AZy1Q<x`L}lB;AKVaHQEP#
      z5!6g4B=dYskGVMDp?&*EnnCDM(x5>wIa=!8?r_W^&Cq|U5Ov%|R>Qs6;g>k>W1jL&
      z%M!kyr6v~RXP1ky7Arao<Td1C!HXOPEM9=q73Sl>i*evlC(9fws*}V!(b7QVM!F}U
      z;{l2q9x{ye0C1F0rqpH_FqDj|v-{6W9+2Wa4TeGAcSFw-&uuk2-l?&yGU)h1O5yD|
      zrtb@SO@&L{{Npoi((GwkTU23mS6Yti+wy2n1jp_n$5T9`mnp>uB0gnYz8i%S<yWvu
      z*OQ>1%~C1#OGxXZrD2flL!_OMH%XG`3tyn;7ni<)f1+~&qqOT$G(8bkMT)f92#aG3
      z<3OZM;Cd9pF^M#Jr$|qCEEBkK?wckb!wfQHxf!vz71bAHS1}n?|91W}^fSzzVS%)z
      zpI9w?#rnr?I_wS6c^lDb7s{N|$>0&$SVV%8Y+I&DOX6`<bORNVGlXYE8RPWo+mdx;
      No7^UzkW7+y>kpF-FM|L8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumMap.class b/libjava/classpath/lib/java/util/EnumMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d345b6baaf3b2fe1cf5038c68f669b09e19665a3
      GIT binary patch
      literal 5826
      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
      R&lC<a>-)0(Z3X?qe*q@?wUqz>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumSet$1.class b/libjava/classpath/lib/java/util/EnumSet$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..750d7200ced5e2985b417c121b7329e03a604a8d
      GIT binary patch
      literal 1389
      zcwTK&T~iWa6n+*KR&WzRqi^g33-AN6?;uM_i$ZNi$0@zY72a@d*=?4^slU=?*Iv|&
      z&`cLi*ZrubbCypfo!x!k_nh-Q&w0+vpT9qU0m$IB0*{2T1MN^t*B#wRFPru1hH&B;
      z1+s)uH(+RHCB43PAWDt`zl2CHz2FF2b1YkeY>H2g1gRjwSF-9Rt^LlvUW?BWesO>x
      zOW~Yu>du0MXyQNd<Q8G(t+EJ!bf^eoI0!EyDpZU~@FtR59675(!4R*`sR&?5La3;l
      zVy#}?6ZWRIX9&_;v`U(>rP(^~+lMlXqxwPWc!tC&`&w<y?TDDR1DL=y1y?162hvqs
      zXWHSCW|wtSGj!)OQ6`ebo_Cx{n1KzwVrov^CVF2Yxw)BT+*>LVNYY7-e00_JD3)}G
      zy$E6oGYY0V1L=#Ym_=Gbklm*(9a3wFLbAZn85Q%mO~ir(<PEJx4Tt-5xkrS47xxw1
      zBkN9uR6M{#BCQCATgY2x&CyJUZA&C~`hZ%OBddVA4DSqf?zctNIuzW;f{G`2O12Vc
      zOX@ZsFR94m8Q&d4Xm%?=H(>mPk8PSDP5U{|{RTC@Vb$%DSkZZ=YI`KJTteG|X$srz
      zM3CmGL8LybJ2yE;V_6`{p=GmVST)_OtO{q}Dyvw-x`ZLUd*h=WZ71rpm?L>!dVKT-
      z-%jvffWM=oe2;18qesOV${L~7OL*uX7*9<#5K8?(IOS>3&f7rrJDq!Qp5772^k&>Q
      zgtkqUJGkKDNL-7Hxa7t!<4PMhN0l6lq>d4#Cv=S1SNP;3?@<@k?`FK~LyB~f$YIKg
      zySbAtVu>_xPA1iYyGfsMdAEra>wQZ!@@}KUHP^(Q-+06+^WVCJBd#rF5-bqI`#$1K
      zmpF&9b_*rfN?@jsuZhQB5Ib?O$UCBs$>j!Or#<_CFsk%>FfomfeS|YD!qG+Qbh%A9
      pNneinQcbM%RJUxB++rS;j2G^zK*Ixq?II>@+4TxVH){f`{{Rf@5(EGM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EnumSet.class b/libjava/classpath/lib/java/util/EnumSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3a728b81917359c8e3a7ca44bd230d5eb807a0a
      GIT binary patch
      literal 8349
      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
      De#pp^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Enumeration.class b/libjava/classpath/lib/java/util/Enumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5791585d193073adce5e47273bec648fed15bae0
      GIT binary patch
      literal 269
      zcwS|XyAFat5Jm6c0|6ft`VY`ZY}MFdrLn-uZY3Lpz>>hO@!Kr?06)sO7z(44Ofor>
      zxjFNE-5&rJ7@IH%vy5F?pk$f{p-=^{m`qDyqDyc;tDK1>IGi&cOTy&B>U~-9Fy{pq
      zvL<vq|3q*EzsVL7rk=n1y<HKkC`|;Ds^Wy6=O07O?5I>#%(rQ-q5EYpZvqJ3I$Zu|
      gZT?Z8pk>gMq1}7vqxr$aKy$01uys41Y1op{8|!dFCIA2c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EventListener.class b/libjava/classpath/lib/java/util/EventListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23dbfb8c861cce282e3f1aaedfe23d7f0643a9cc
      GIT binary patch
      literal 117
      zcwRg8Z`VEs1_nb0c6J6PMh5Y$#Ii*F(vr*^eb=(oyb_<x;*!+7)FO5U7DfgEuw+hR
      yUb?=2QdVkm2_pknaDHh~a;jTqPAVgV5Q-K(kZLwY21W*E1_)qeU<Hy)3~T`Q5FPaZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EventListenerProxy.class b/libjava/classpath/lib/java/util/EventListenerProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb3eaead1c11a40eaca8326471ff3ff916e19ac8
      GIT binary patch
      literal 546
      zcwT)_+e*Vg5IviwNt?z->!lV&@GXsC@YySf1tF-Q^gW47-I6AdCPn{BK@oiL1N<m)
      zvMEK7$TG7tvuDnn*{|=9PXGt#=};K9$NtQB^GrnU#f-<9C#D&Xd3uv3k54*OhGmI}
      z{CMPE2V)*)Iy8oEMIS>WT7*5X0(Hos9f??EC#1lxMD>RZ>Una{4b-q?qKP&`&F&AI
      zAYCSOG#D&T#QZ9s1U$X-gNQS9yd?Cap`VH(pBL5aK};ETs)oshNmpyce=W0R_y5_!
      zxJ~jj<O5L*=>DbKFIv@I5?dpylXVKs^!*COO&H``lnp3X=r){pn9klCtQUz{A>XE6
      z;20`SspE_ofQ=H3RjdIrDp(nvb$Tl~U6})Q=M~oTf=-jgOG#svfH@6qAW@q?h!A*p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/EventObject.class b/libjava/classpath/lib/java/util/EventObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e97ead8287a3e758875457b023beb837ab787b0
      GIT binary patch
      literal 1140
      zcwTi=TW=Ck5dIE@F5vd!7D~O_s>sC_>s{%^mR3_mYJy^_@nL}@ZnNw*%R-EaZ@&6J
      zeAGm#v57vK_@j(-4%^yp@nLu8%s2DRd}n5V|M~s{z${i21Q_C*dPmQ-UBk?+cDUuP
      zS2uahRS;wtm5`}hjohwxkRc|$hMg;O$IwmVtzI=b1-Im}!kw03TTj<k7}x`bp@MC-
      zT-|ajy4mKT;)h6SqWSJ4!(hv9J2gtwivBWrLgx(2a2Ke()L}SXVF(uNI*(!inu=kJ
      zF$|>A6$NpIsekcnrpX(+x#Tq3O_H|yrpC8i>Mn{Hv<Mg`RHztY7%3VSFSVOh?mX$q
      z(TaAB)aay%&Ym;qzBXD6iDKV7qqZXr?v_1Wu~fRBvaoBHUB|E*{)nD8uV9KQ_}$BG
      z!>n^h2tKdk0+K{TwF;)*qK3u}5J_h~iWD*m(j?9YsmS6igF^Wwy-Alijhup+1M}`x
      zRdE@!6xk88TYtrn>^F_W8lsrQRWX-qz5#l8x)R0>Qt+a;1M?#OmWtcBLzCCHwzySi
      znC_Q&$mLy(EIB7A=6#v}?Q%CWj73`2mx5qP#Tjum(cTR28FI1rjd(_oP#~=vJs|{e
      z916l@N9dOdAd2^5p~x2aFh=M-N~h<91?W4T*~ZcAFC5uHY-1baKQq~{NPL#L#{^EC
      zz<mVqkXVb9`v`HAsEWWO15V&1AT3deTE{7z_Uh#183<**An|FBc2GK>NgA~m;L$K4
      y*h_van+B3QnB2&8ajuJt-*9OgSG4P0+!T~u<h2E|ySVFTukB+`?y)b+sKQ^S_ygPk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/FormatFlagsConversionMismatchException.class b/libjava/classpath/lib/java/util/FormatFlagsConversionMismatchException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fac05d4ead844c4b082905f322719658a8c87b5a
      GIT binary patch
      literal 1111
      zcwUuL-%k@k5dMZ1TI*GyLh%RGLlD}YP((!&j1N{xFi1>*Dv!%`Th1JJ&D~z(AK{<k
      zgC+urBpRPg{G*Js*QO-2Ci<{@voqiK&Fs$Huisz40l0_9DGU)--ifxTM9Oh18-8#k
      z)P^gXVb%BAG6)^td*y`ev=3jrw`EJQBZVZvJZEjXu51doL++snW1$Qj;nq4bdz;S*
      z^pcQe=}-wz)r1?#VXg!;_oKkU1|hc<>$<{gR(4e2c+GVV*u1KQktdGlsHcQ{u^(0~
      z)d<O|UzaK52vZjU&mzaI%OH&jE@9Ja3)iWe4Zf<G!8q~;u3(BVIY7Bo(}?Q^Zr~;t
      zAzCfz)d@?3pna}x+VwPM_(jZyADDLUY2(zlw6IB-E>{0e*TCBb<}go4E58#YOceVm
      zj7=b)!Xlw?9@~yw_qFeMN(Q|arBNa*=t$=w+PWcTON61Uo66UPhAN0`<p;|dEFgag
      zgu4bZxU8*Z0|v5$(JjZ5+tJa140gqVD|Hurn;S2<{e12^lj_h339DQGJ8wJz*``$I
      z2tuM*;(183HzpG@JAM?{a>LP?tbfy8)`eh}Z<62{OmG*5F~X-5pN5d;#TSijzGjRd
      z9+FYs$N2OC$(XlRKEwEa?&>KftrJ|!P4mX9aDv%W+_8QldxnMmT=5j;?`7*4R(bju
      zOP^!i3h#wD-wtN5%eB<7h&@<%gB85RL+tYxFguy}mtEDr3tPG}iY;B+5Zm|hpj%mm
      ozdANt{(_~Cy+k9i(~bp=4xlSYoM?Uk+4^*Wd^C`}7NZ{h0homX9{>OV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Formattable.class b/libjava/classpath/lib/java/util/Formattable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad80eaf3b65bdafb9f3b1f20025d8f24366c8be9
      GIT binary patch
      literal 162
      zcwRg8Z`VEs1_nb0PId++Mh4NW#Ii*F(vr*^eYgCg+{BWS#H5^5b_Nzk1_7{CPGVlV
      zzJF3yYH|r914kNIO-Mc?gS3VZhSt;~Yfn#4%`ip=uHgLAqU2P!%$!u9K}aU+fi$r(
      aGB7eQGk^di&>~g_HV}(}9Y``UZ~y=;;weS|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/FormattableFlags.class b/libjava/classpath/lib/java/util/FormattableFlags.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a19cd5d6106c075be0b849eca083731d8baffea5
      GIT binary patch
      literal 562
      zcwTjp&rZTX5XQgduhb%lqJXI2Nj*r6M~$&*+5}Uep@l>*X2AwaN}E72#*?q)$;5*X
      z;6oW_tB1zK%g+4fo0;92{rr0W0C0+fED{X0DSzaxW$1b>J($mU81j+l=pLUevPdx$
      zBi-Zvq}3ZuopHz@8=7w4T@Ng~t=}-PHbY(w{6)z9aLB!-lcfHPAvZ8ht*<JUCIWO<
      zPBCn)-&O1=K+RL8F|dTc!jQI1MU8|a3Ab9mC;SEpYOm8#1Y8lAN?+>=cwxv~xV{@+
      zG9(X=hE${m_l|@lc4Ta$!cZ_=-{~%ABWG@lsTfK|Fy`Kn&t1X4!BqI*E*R>@|EoA>
      zkgQ-iA3M4$O3Hr|PDCx5ptp!|P(>OUqO6!a;#`a+;?)?-s30HXHR3{yi^S_OE)j3U
      zc$2ss<1O+MVh3ca6geZy$fl3qP<xG1>U2tEfhVN!j9v2NpCs&IU;H2%QD*ZSp-EeP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class b/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8cb5810412b643fd8fde3856fa286e2a9775289
      GIT binary patch
      literal 1177
      zcwUuLZEw<06n^ds6j;Y5Zp^*-K9!dVVxnIl%O-=QvA~CJB*YKqu2$?)T2tC3{12ml
      zL)nKd8W%tNqm1V^WFrepwkGYp=bq<0=Q-z|{{8p!3_uw#Wy~;S5BU)<1-@mM8m`yp
      zzHfRPZ>-*~X;^)3YkcSizVOJ1Fr-4X&7EGU?gV{?x!rnAZSH9A8(Mp3k0GyJm#@N*
      z)N5+JwWl`J8pCY8wcp(6>}dOSouTmVCPeY7VOx&nZ!t*OT!$f2b3d4IM3Z2cSFnIv
      z46*7MlF4cpW$3<VIlYRS>m&$!TR{}DIAmdD6v&8)-5mvSB#2709J3Yl4@_^5AJ`^C
      zT5}C<cerN>J3LH6!aPavKUo9Hdc^I(q|Nhe?glj_@c@rxJY-my&^jFWW?#W$Y%nCa
      z=kcN8ejZZSCo5_n9GZq-QKuZKqBnA=sQr;)Yf2+>H_<2|tKbQ846i1sYBnDXDpzu!
      zk54!PZr~Ya!xGI*ohK{`AcLYhj_HMT=0HY~E@+B6hQ(?6s71QfbGRRP#9h6VyL$aP
      zw<_CZ8Ul&_8fkk)3<yB0EY^ipF&X5E(3-?7;S{nuWQnKv3#^--lTMI2MmjVWBcZVr
      z{Y{oMLR#-eMp)91vHXJ~X0SrvRG956=I{-x_(HGnh?horoTE$_fs*ru^%JaJ1jh(~
      zagY-3WvmOaB=j!sjl*A4AtF38!gBYmlt1fMg`%dkc8dF(-!HMTa|sE$@TX&rJe>${
      gGR^X*c=iYE>NtteVpqVXh#(LB6DUz5Uxer7|3ilpP5=M^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Formatter.class b/libjava/classpath/lib/java/util/Formatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44bda981046ccc2109b5c86855df0873a635b508
      GIT binary patch
      literal 17740
      zcwUt|33yc1)#u#%-n^N~OEM%(AS7XlEMX?BLeLOE3`7HAQ4kE2%8(3UAeo7o34(Q@
      z3TnlbR{ugpf?DIg0ZAyf!Me5m+iI<KYxS>Pt$SN*TbJ^mbKjdcGs)oZ&-YF4dFS4H
      z?%D1+=ic}D$$!500|1yN78@WC3O9$ghNg5TBCS*EVjXRvL?YZ_fQH~x9j&2g%amms
      zHiw%M2DlK0C~PD)rM5K|4~I6ih7EA1q3c>Z<C_?bAY+{ggrbHNo%!wU;b=4W&PH&x
      z#+pJruAm{sLW9C_ZxhpRM!+=)Ig!}HZB60!L?jkP@HZqEt6%1zdCEq`ze7+hxgyaK
      ziMCL$9*H)Gw-LR1UOF6YNo+#!Y-~$3*lg%^4fD@hfsk7pi^db7Xkt~UwKMF75eV){
      zlTHbao?2N!y{(aGctyB9)DcR=I!JwEL-BaHgIS0#h{RboV%lBPMB^ffxuk`PiK`H_
      z+E{bg3uE9E1IiKdQw-L&5&;v&!Z^}Zb2uL92sh79l3bApB|77Z$QlnIOfaDo^4u^H
      zA&(iE98YrMg&<5apb}wZOSE%J6H{#uB{of2u|1v$w=M68wKK^uEj1aYkV;#^2^+Z`
      zVSL44l}#LsViu;EPyz)cLIbV8w6kqPxMQVd?*gUCRiTauKif!Gjnab`s^ByOW+mM!
      z&DbWK4%G-=VrW5lW2m#0EI71c;$Wxn(&{xP%z!xv!HVo|HF%cNeqvK3?l?}Suaj%|
      zE3!|M<e><~Cs|632(`C+LBc|2Yoq~ZAq*R+wKF>-t<7OFP#r8}1uind173z2OvnL~
      zHcy4)(RC4<ve)tKxB<%%%F;(HjV0=0ozZ4zi~;8&j7Sby)|qJUOwj7#P}}N`h}zIA
      z5r(IeNFU>c6|jmWSmK3q;CzM}Q*sX=NZhd@*7B$`NwpgzZ05X72@p;hAX66qT4lg`
      zgt5tC=SAb4?d`FSM7Vijv?<n1V;uQ-#SOe7*<<GaNjbYUjiybZj(9l1GHzsAEh#q|
      zC}TEmolrJ#Ff+HA32s4{^Q8%9XL5LI{&E_Y(s_E=OYcc}Zzi{F({^Tx0_KD)BeKsy
      zi1QrUfv10|IoXBKRqSRDzsQ7K$jbp8wwut&JLGH0jFTC@Y0^f{90pv5P@ZL*s&vzw
      z<`9>{!W=N*>n2<RBgwiHK9+{s!mN+_ETPK_yWnaAu1cmV)mI-)gj>QLCR_vGpovix
      z&6aIk*%69RbZuD^?ub#?(1>8Y7k0z-23(hs7cJT*+yFOHE{S(;h${qnN=1D(CX|$+
      z77pkeBBW$*)249KmO2aNqB*s^DQ-cSI#2^@3?-(m;f^?oza$bTWYeaM4f0<mTme^l
      z;ajkmjku557|cVh+6$r9*4Raysk}`NQOb?Alo+D1<sIRsh=pO<iKT-G6H_eJx3-2`
      zLai2O&fqj&y5LUc-~cJ5Jw<B>1<Tg$%1<H}hb*g)8qA>`FK5@+ubH@to#-ADioi7B
      zKFV!sa3Z`dF=YYKZA&t-Vtd<$SZmx1_rgN{^B^yO215^<@CZDLV3L2ZJr_h;So4%n
      zYdInxGQkgr)pI>R_n6QNeO!J}u$Z5)6re_a&xB*}IGZ_~sI@!w3d>?YNCsCcM<lcN
      z!j2A3%-?68>fi|zeh5zzC(Ys3a3Y+fQJT$NlR97to;KkbmY`52NG0@&RMxM9ADQrD
      z_zAHbiSoLXDwwM;B>7Vle#Rt+63MeVVx8^OpF#6E6P|}(5Y3Rvcg*D%kR*TFV1bl1
      zzF?GoQKXrxE^j2hlpH7#*~$e%^Tzo0HuC?`4PR_rBH+0=Wx?ELYs|8Z8_6Q%yAk?P
      zddO>Gfzm28kA;X_%!|eB(YY<*Xt*QNRA-lr!?Wy^dfLOQc;Eldgx|v-Xlo>5=aD`-
      zYD4jGT8)w!W_H7$c=(@FMO8+4%s%Ci0dFIWOAV(D9;Z%=z16HXXM4HfU5+D>ZEaLg
      z{sr1|-~;%p0Ur`aX+G%GDQwBVaW>B|U|Jo+^FQKI|Dd>&t_Jqd72yjz!_lTp#xu%z
      z8S0>bm(v>Fm{`;qPee9SIhng57HbWMqDk#$lu*`Tg0)*~rJPSq*aP1*;PZ^we5OT$
      zwR3`MBt-JEtz3~W+c=<JwFzcXts5n)D%2VeyHV#lu%nZdhG>}ZKk(bklY&i#oTMWh
      zS5;`<rcitn7w(oEZX`amXlH9Hm3)|IVm?O>cXAMA7#w0^0bHp(<?Qgb6?Qf-t+ZfK
      zG0;z`W>AJ>ZRX%m9A@HhEGDwnVP<6vp(NdpQgy5Co)Sw;EM@m}Ct}GJC7o-i6dgRz
      zHd;Q1w@?$2vGA;uF(%v&2MjzVnV}sgPy@YKj^j)m&vC=U)7A0FKspoUrCDuzBJ9Np
      z7%(x2bQtk$AcPvJV(gg)PR=;}tk^^apBE?LR1>G+bczje#-wJfV71OLai-FB#6FcV
      zGqX%Q4Ns?h9ElSy(#$qk9-|Rf&|YKU?2~6LXK*TOVKv-oAf4C(C!Leblxe9>;u$8+
      zN2-L~6in4&j`Wui8WeK27w6ytN=vwqOO)C{{bWlL>MRq_<`b%sh_UA5D#uJ*OBrZ4
      zF6P+{j9F_X@x&&TMQFcKP-+TC6UqI?r35*L8_%JQL+8reX!s&Nt|dKiWk#&Y5Hd5?
      zcyR^XNshE36pu8iYN;dCTANleOwYcvzbFA2*m&~gRh^Tz{Q1ys;8&8Nt&I<~XGU7=
      zy3LDg@vH3oR~ooJqcF41r3P-uaJIVE7)#%rF?2z!llFucFTjl^wjf^$w8o+>DGyxa
      z#m(4i;Fb(WZ=f+Iwjt>tHxXObl%T9^Z$5v;qHJNFsI*gfz$il<#5O^cYTL=69iisP
      zHu8O?X1g2|8zRn$V}RV8O1E14;Udz_rtr399g2l?(~LN&X*lZQr6#Vz)o#3;h)i|k
      z*J;J6+lV2&lIjWEi7>gMey|i@R9Dnt318KyD#YH1IaVlLZRLGFE4EUQw=;K&S>|WA
      z3EzdgDHC(vYYi_5CBiEsZQ*o@mY%#=OpA22lxHbBb<D0!FDQsyW;Mb4?MA%Wz?&!y
      z44!S`9zGMu7Ctc6;kP(JKIz3<@!JOe7scc+AZ_Aa+{cATI5EF%d7H&3Uq4h#T$?TZ
      z*WqnM9rq(l`cl_0Ntq?U+v_D%y}yI`I%wh@c&D}OnpiaKEL%j&W?Pq}|E`I5W4Cp9
      zVr7#iGA>?NG#Yp>-f!T2N%wbpc=9G4)Ia$a%kePF@d#IoS$2TqD8%ezCLUrPd1&D!
      zv1npboUunt>`7`)C5BX2pNU7gi?6L#hr?T%L)#Vpn2C=w-j|%>bdpQ`z{KnDdIOJV
      z#Psu`TcWXxqF)fxcjFJa;&@U8>a1J2pSP`~ijH<)HrFFxw~E@bFZ4k!NL!m5!ci`R
      zxvb^WW~i;bjhc(ehO{RyCe+Yu_M`Q;^7?ukD~X;+Y9hmtp6Tgy%1DIBpv_q}(n&%?
      zEr$jQP8-?euW+_`m2>GLYpeX)#NXiSmI>;kd_&q4R^F9O0X*S<cmfq!6(_HQ2T%H)
      ziN8lGW{h~!B@5H1E01J;ZlyyN{dthWFP*#7h0|DK@`!=6_|)6HmAR%vCBADyAq-{c
      zeLeyXHSoja#e>p{ot5Tyv~;$GGs=VyfHJtdo$rz;9<!f)Wa8T}l4*Tx!VoCnnze_s
      z`M*v41V5#PBXRrGqLD+b;gaTa6aRxJ*zVybsztJ2(xm%dTI?s?^Et0T@sQ-Op0Brw
      z8zD{n8y8Dn)vdA#F(h23FgT(a>K=UAMniaL(KH=(wzo!_92Xssh=rRy9w|w=$;0gA
      zXsuue_dNBGc6G2ci`fT@nC{t`h5UeWmqi<53WUQ96`De`AipVcEohi2@(99mQEZA4
      ztoNKq+&Qo@zSI<DVx%h18)6qF4{~giTDKU@uK?=LU$W2;<>a&}9x~2igB?PQfp%Vg
      zoC*Jee={_}M6U%+G_lZvf+mi#ph+fv!-A%mcrkvBp=l<*h`(a!R1=rtGKOZFcrGp@
      zuM)FN$Oj*Xh7Jzsg;{h)p(@hG28<*!9D?xe9pSB!SZ90yJ~x#4oEPhew50DNcX9y5
      zmhd(@S=VIo(EpeD&ZONT@~NCm#*9I)aE50T&Kc)S?}}I_6}ffRb+bcwG7qOCR(&+e
      zmxTN>CT@uO3<ElY$5IVtUoA9*w#PbE!A$Wr8ycq3(Nux}9Sq2!)&pKjbb_z!RhtWW
      zswLB?mNvd>DXgg0Z?{Ei{0JCE{Uo8n71MJGkM|Ad7dnKS1a2sUku+iyJ<X?<{}mTt
      z4~*UihSm+5JOtwlD*7OB2&O)&$V{iddBh~ZdBntxwB!wNs_FqEFvB4?i^ecPPXPO1
      zW-rW6P4}w7U9|c^HPy5R!d#eV6FI{sGEZp(zzAS43yBB81rI3_Mb<Ez1Vi%`StfR-
      zBcMgh69{JKsE;^0nnup!kn=z-cx`fXY;r9`j@3{W=!FG=;Ioi>4C)$t;cQY{@Ceig
      zDv!Y8)Di`t(cdTO@6%+KXUGK4s-;F-M4Y9{?4=lD8H8GN3AIZJr_s|gwR{7~&P)ys
      z9D{QjkHLyY($IOmu(}u43>55Ta*$Wj1RLtCHWa=B>ukZkYOld`m%#=0Dw^WY8wge^
      zrG*C4eutFvZki-shql+I%}_JRZ%NXWWtENe#M&v!kfpL0!jm%0r2G!4nn!YVlxo$0
      zHPczO$XT_>UX>x%q*UuS+U8qG^SCcptr^U!ILrkT^U@TT>nxK?VsEk)*OF$Olc+5+
      zka8J#aO6qUW>L;m+m=CVtfeTyqUT!z4Az#l&=knSscD+ZcNWTb7Rq-tm7k`mR$EhZ
      zsfYVqfnXLD%?2H7(p2Pf=(~u1o2{bgm-F9Pb~7x7LTosx{}$M5T=-@Dw__mf3&;@b
      zPwKw~gA9@Qvi=)8ng4c@|86D!z38O=TX0hU?R4U6hvEmIB5)YC?gi~pYU`f>eJ>O;
      zbR6`fKq;1j(dvM91hzg(qun%n3|wq;Gm@et;FVzDPH^MZP=MFK7`ztB@kW?{H>HK<
      z3MVvQ;;i3puOG11&p8H{Qt-RH-(tgX*f5U54vP)uARopNwIl~4NN<4OAr5YXd^`Zf
      z*aa1M2Ta87wABOl>VjW2*{h#p+cm$W4|dKeC@wA4*7v}*k3gnz50P^oPBU)0^WQ|y
      zL**BZyqO?&@jdWOn|vpcXR{QSl!_}Zt0~zFLyp0>8UrQ0aBEpFe7iqoQ%i>9;KC=s
      zi$5e!eG-OJI~<=%vv0ApaIw8GL*G#gGjtp5SJ~-yIAF7|*v?k@CE@^>$Dpf`7Qdr^
      zpfml9B>XvT@#oUEN4k`Esl^1}b6AAMZNv~&2iQRN>3$aSkHNiUxcjU1ZtyY8=w5iB
      zS})dn;Grs)s4{{*@R-(I<?e<hLBG2Pj#PR49^cf1P)g0|cY>d=jA-_|*6-<oquo$W
      zkCVHg<S`h(4~F;+l7T$r`?OGhzu#SD>~x>-yKg&jSoIVI{YDQQUri0K`BV=)ySmhO
      z#$|h94nO~QmD@!N8lnrl%t<%sexu6k_xe4}RXN>I81&~bSI@4dmQntk{U_cp^^GP1
      zBg=S(Vm&V?{VpD**4}^O?|yABRFn>Z9W>4#l)eh?4EiSaz|U8A!xX|yVoW!TE%mu+
      z3=!}JElfeF&qtUX!i;82$||>#g9E-!F8v0%!f#<T{+>3|A0U8#gqiqfn1gS@V*CrN
      zqvKmMzDry5J-CGWcG3arTKouZ#(%(m{5RZ%pThn489aoaLq8ey$8-vLf!a6d4Dv@h
      z8GR@`@Gs#e)0(J@Jj@k7^ot=lN({w-D8gxC7}kj4SSyNgu^6Ge;|{JGDUjOULC_2E
      zOLj$qZn9jFpce^}3i=iKm_~CXyhJ60PO?<m&;%Su1;u`H{Q#E3t2DzP>Cc7N2y#<}
      zG!K4Fy&kxq*8L4ZZYtBJ!t2!QfqwGBHwf}l5j0%Q$bt8$K(Xcuen|qUWN|V3EM7=F
      zP_Tldr8=p-#PZx6GRB(?-Czd!xd;B(;MZtJ5%w*=b{8ARuTe~BDAj0=Rn1oEehQEU
      zW#md!t^K93;GJH0uivllg8)w}y93JEVcu%4a*>fafcZurh4%%l-sw8wckMs%0po&4
      z;qQcEQeSpj%0ZTrs30bSO9UZTRDxejhLK_#REp^^L(G8rVkRsWRdAk|1slZa&?c&3
      zJGEaIHE^An1AE0hxJ#S?k5Jnu&QyjymlQ|Jakl+Y_}I=NN0Wvn$TloN927LlDcj(m
      zWMUmQQ$@<^cTqu}gan@~2O5HES6vxmW}wvN*L&fU;1lrKUdRs~htK-pKh-QhmBOAv
      z6y4w|M6KEtD0Y>W`L$kjrIaw9`~bwcAjArgVkPJVyTvNV7ptK}G(teEA!V#h6K<v>
      z+)Vfw-AcHbj&L&_;bz*xF~mVtCm)mOA$5?iLXHgyJ}eIsZXb=NU=HO;;R2Q@6k{mx
      zU~V7!21!!R+zG1AL@P<sMv`nHNun@9#K^2s7$e%16mu=gjuhpN6y=T-<&G5Pjuhp#
      z6oL=+gE;=3ZH@)OCvfOq7!xS<8J1a&<IrkXu`9p~AH^b_GVqweVo_wr5rbr!OL+st
      z4lu+O;1O3sj<||k^$PHbtD#6-1LMSXFhN`o72*c6)O9dP+z4~UO>hRawPKHw_iT$V
      zN8SaFybBz87dY}RaO7QJ%UeVRK^axZY^za&CC3gL!+x>H5sHNvO?oI-?ug|*IF`5L
      zT0%|O3qC?k=)sA57<U%oCRw;iJvc?-P9;y?MG1pEc~=jfTIKS)`mkyrlpMqAM!%~U
      zYx<AjoJPM+Dx24fwf)CncO#Ff>%~RYMxfXjq(^J3-$A}{C;7%*<QsR8Z+sW>#67g_
      z?<L>3k92rH%oGnmjd&31#Y3=MJOYj4Q3#30V2e0HTfYac7QJw@=u>*VSe@+mIC|aV
      z=yi{y*FBD2_c(gpW9xM!?S>_4gHLy$ItOZ`BG7`iQ!!>iSKGUWzuaAl%Le&it9=d`
      z9w^a#<Jb~qWQaf^E-xu9%g~290*j|f2hWf{JqyFckJ3t{;f_qhof2udl0+!zE+v!T
      z3#vgpTw(JtK2Rck(IgM0s&c{=jitSKUVq>*m^zRnRlJE`5l1f(M=wKxc!lE6tK{LY
      zrExai;cUFa*?5Pu@eXIJaJ5}yEv0!m<fW#ne@6RtpPQ;%YP<)afEr&~Ib=DmRbmXY
      z>I&a6JijqeO2uX`uIX3#Yhcduol@mydR>s`cMpMAc5sQ~@w*KI$h+54X%i^*yM68*
      zKHm<iadwaktFW-P+EeWD>pi%x+USO68hgQBSVm1~ADm51(>|EbGn3;l=)v$T4@*Gn
      z7kT<H!t*Lw2pbV&L<vI|GBiYO6IW`R)HN0xy%<l`=6hf)f$zd8;ysusK7^^_uP{se
      z4Hk%xV43&_`TxIRo%jzlixUu&8gxn*Tq50Yne@O8>4ht(y;A1DE^4omCVYe1Yh^B6
      zM`Lc3d2ox&hl6qm+#?I%VOa=0(hvQz2!14o!E<sryef;~w{ir$Elc4eISPdwqpbaH
      zj(cc2^^uv}TLdNRBh#sm%;ere6B7jK3U`~Tif*@ajzRTO68f_P{WS@ppd*8YTL%x*
      z!H_GUTfoGvbU5_DkDwB_;dX)qU)m1zdU2Y%B?K&0URG>**&z1{a$NH39KtTCHe{8%
      z*pO7h`zCdPXQ!J^T9Yl`D=aq1UxHSJOz5O9D)eX@U1|`jl2MjNP#U>RCHfsbc*W`@
      zRux<NdR~gEZ$2zgiBxM<<Zj<oD&T#itGvpuhx)y~(OpnxjU*o~l>9eWE#Xx~y=SKf
      z%MPCSkcQx{YOg8*M_DCcZZQpcv)W75eX-ZB0;?IQFZNnRT57M;!4^QyfKpinqvb3Z
      zD^G**1PA5mFj>~X>2f~IleJJM7s7H`2dm`Suud+57P%NU%Vp3m&w*>?xv*ERf-bol
      z?v{<@S!>{NxelI`UxlB^W_Vt1gkQ=Qc%9lm$<6Sd+yZ}>ZSaYVq9)rhU&gUSCQ^|c
      zOC4`3b-b<A@wQUO+e#g8D|NiB)b_R@c@$Uj226(c@has-U399r8o1u>fvI$`-%s`S
      zdoV?L8=Z~$b-<t~`Z7`AoI20)8K0LDEBTB|RvE>vq|f9k@c3%2%CIUs+S}I>M79}}
      z04KA1%AHhr?*g~H3cLj8%d4S4UIS%vH<^G633($-lQ+R!d2?F1H_r*V^PB`X&q;9e
      zoCG(|NpSP*1eZ?-4OWJW1f8UgFr2uq!|SckY#20#icf7J9}KH>QROPTkF~(%*?eUd
      z5R|s*NCu*oxUaMNWT!pmW9l<3IQhdF^jnqo`~uBAO6@{wU(OuMKPq$qZyk(x`h(Q}
      z8LfGjI<5ni2PxX0*<-d7Je+>x3BES1f1S-Q!^ciSe<SsE1}l9zJ$OS8esi@>1(3`m
      zgf|T#K2ICbEj~!=?iO#-lbJsFc|zo-Bl>+FZu%;H9zs_c!D6ikZ}A(`d+<9%psUiC
      zPxwN-y_Ndt{7>@?D!Po@#IBt>c8klC0}jvtp4(OJ4i>xphR<9-U9+jIsqDeKdhniE
      zMzF{jiVw8);6sG2O-Ea(sg-()jYl0eiqp}D9ki(Q87X{k5|3|Z;J@eKUkFyx^9{b{
      z)};K{Z=r0ty7A%UkalOtZKN}oJ;ud|-9g2Uw%!@CJy_{Z(<(+%&)xWy01-I5nD*TF
      zgT89MwqV2(h3Lk)U(lO|SYZ#(=ZE?)IXuV-!9uiK^WiyuXtR5#Bzv0&BDUMZyZE8e
      z?wyqEZ5xPawufKH521l;Zy1PZ9*9^u5V2+;qS0O<{}}c+mi6Hiz4%nW-*r2TR{_HC
      z(}7CeADKZ)Zc|l8a#JSsyC@|&p$^~Xz#$KSOHxvl2az@}=E(12p1d1}$a}C<-ixE;
      zeON9Zz)A8!oGKs2+42#bD<8vpc?cWiVO%DAaE<K6b+QlF%VXFqAIBEik1=^1FOfgQ
      z%jMI!TRww(<g<8-{4ws6Kf(R-r`RQ*#|Pvu@Q{1~e<)wXr{&A|bNLFsDqq9j$k*|Y
      z@(p}f{uV!wzsHZ|AB2>D5-$0+$d&Ji5%N7zCO;J8<X^>f`FAl>ek|t5e~Lx&-(rdU
      zRIHJoiFNXGv0k1Kn>7$^8j5yJic2+3?9g;^rDlj5G`F}}^N4S0IigE5#hqHNxLeB?
      zk7zz|NE;%0v_f%Q8!DdEip0;fVd6z?xOhV=7H?`L;vKD2{7owppJ^kd)JDl%ZM5`h
      z<#L2}iX5Yjl|gNsoUV<RHQEGOt5wJ)+C;fr3(7TGr3`74<Q8qR?9isjOSGx-a&5Z&
      zhIXpFNt+?}X*1<PtxDdn&5{pkr^`OATJ~$R<&U)*`MfqqzNXEUZ))@8JK7oYZ`yqM
      znRccowOTD#TcG*0I;~Wz*T!gzwFz2-Hd$MuP1BZY)zmJ~ma8;%oX>XJ!ep8v$i7R{
      z7UI+R45ul=S=YLZdlr90Y09O|!yl{c?a^xRCw#ub806xA6J+3SI(_|AK@UKY4IQF$
      z@Xzq);HF;=K1bD{L8-~Gp^s_q^E^)EI?y<RexaZ_Nl2RjWt5Z{noN{`sVW4)um1;~
      zt6xz!;sAZtu_SfPgE#J_EpQxf<QjhsJ>P3R-&;+4BS_Di_d?Mzytk2Xn|tu3UVNE*
      zhGZU^?VGzke2vMN{Md(YR2#)cF~zkvlULGsYhy3|k>~puR#(#ar)szThPB!gDE3f=
      z=qh&8-X%C&@v#w#Nw5v1^Coa>&7|=#<Pe;vZ34d*fstApjMJhpS&P9;tsTzRI$)_5
      zhjXc2r6pjU)(K(lB8Y0+pi{dPF3~Q7YqTA3i*^Ovu3ZWDX}h3TyDD|F3Vlw|(&rQ{
      zeNNHR=M*h{PSMh57cB(gpH(eaLT3Z^9|JZxP!tx~P>^tM;a|vl3ms?`jIyC!gkwMB
      zGsG!2bUTcon(vqD4Dq(}@@6GiFXu-F8V}<;+WI5-PT;Wmy?2m~4)_77|F8W6PVU-G
      z;MHy>-F*wnv|H0&(2PvJpy7{z>=mxEUtd%+-I{JN0=@Wmg8#wKJ^0T){MWt{@0ajX
      z7wF;v?ov-ZaBUxc)`O=$;H<7*RB1F!J4lwi159emv^&XqcfkbhyJ>Ges%=hmm?`+>
      zAcEkpcWj=H(-_wODpA8L%}Ha&SJMTitYId*VOA!edtrQ_SExD8@UdOswFY|wrKCMk
      zQ<CC$I#>4Eqad`$XvZCbVcHR(dI3gjeK1Y?9#m=M$J*ntL_1F2_5`fdo=SU1waR(j
      zwUR8yG8l9!2IWP9zd*93d5OG*J!iSJq$wy)W3Wf)bNR-=)lDmwZL88s{CwIfJ|^6a
      zJghXJ>`uz=72ba8++oRn;_);&s`)Ds?Rk>p7bM4vFkJf;>HQ^=<7LwQD^RJuN;~H@
      zm`m-M+OOd(?KiMkdx3V*8%mxT7JrUBOL3bmPrWVAa5z=us9iA*#tT#J3c=r2*)mQ6
      zR34_Y0aA>)RG|G!nhWa5Mfh_pd-7JW-dhLK4LA9K@-}uxwrL6J$np1*fiCwE__TjO
      zf%Y*JY5#;0?O!DNCs3h%n&xuJx05B#%eJrc7e^Kk<eUbF266R(x1?GXzl;b3k3e^z
      z@(8iVJodm_NASIXB!B7_XQXk>myy142dq~MewX!Xp<5Jkca>oa<EwJh--0R+{T*6G
      z-YJTza?**IezPjqpW7#f)2ZI?(Ra|noSsUma<MwkpUVq)sfl*cq1-JFz&TtI6^c=+
      zAae8dlV97Zp{j-a?tMUoQI%W0O#2Q^bWi%hK^T5aj8XpOH|)LKD^BU3<abZ!748TA
      zhbsZp=STdateV;owUkUL-~n7hzb5)UOuuH}EejB)eojezYRLuu@CJ~>?I!wNProQV
      zpG9qqe!rn#oPM{{FG2VsYPZqvlR$Bv-{bfCbNptn7~2gmXCTIR!!sF(if%ZPfe3WN
      zT>(<sWzyH&JAhneH(X=)#nStHZtk7j4VzOapN(4G4J*6hoNib;ATU<tr_uK3_ll|A
      z<iQrAS4{7QGUs82N{{`Ge$y^nvqbaHk99+idI@txR0SR(xAcpP#ihwt@OUoe0?>zm
      zp%*~D?uP=s2>kj87@?QID7_Q{dKpaDN5MROG}P(kaISs|oTrb6wfY3OK(B<bJ{h*?
      zQ{X~<DqN&bgPr<xxJEw}ZqjGMt$G#g*H4Eoy&4|UYv8ax5Bl{5@U*@Vp402#Mg1&z
      zMX!fn>x<ye`eOJ@Z$P0h!yWp$_zisp?xywzeI?$kufl!$YP^lw1N!-RhrR~y*Vp2M
      z)IOqr1rO<8#mDsv@CVdBp|8iM^bPo&-h{8{&G;I%uj^s_t=@v~=$r6kJ%azD_EUW`
      z{zq>W9=%QEP@AW>iy?Yk4Ar-aVfuD4LjRf=sb3<3`lVuqewjFp+S&T$Vy^ymakhSi
      zSgh|9=jpq|`TEr&te1&P_1)rf{d%!WzflE;2Ve+q`(#Bxko7?tL0D#e)*-GIr-{=k
      z_7#XuQLSR1Uv!Assy>`2#;bRzE?6tPDq0#4rg&DPYPT);iK;6+a3OxA>IyGhgzu{W
      zlmk2QO{)F&(|Xt7>#D-Yg)V$r%%z$nPXwV*)f)NYa&U=x6rNlvWSwD$&3dptt;pdo
      zI~E5kd&K<I)vb!WdRJPy%5jRG9Q8RON8=nN7=Is<FKP#c^24HPAi)Q+gmNT;)%N5%
      zus${!I{0Ig#VK0qiwLS#4ZV+i`Dhx=p$<)tSnz+-tRG18DWdr_(R?NwP5z&7j_xd)
      p!?Muq!4U(=zDQ($MPy$}BRkB=WDC{bI>E7xKV?0eev8g1{$Ep-S`YvL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/FormatterClosedException.class b/libjava/classpath/lib/java/util/FormatterClosedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1de6d1bbb221154ae11802e9b2ce93d33d907e4c
      GIT binary patch
      literal 400
      zcwU8%u}T9$5QhIr?h-jKCdSwZB8r7tc!-rmY@&fku!*Ly+ayC=+1$$Bp7>f;f`t#@
      z)A$79+$nZqGc*72?fn0~f4;r}IKp}z6~fNFdQ?g7wMqKcEtL1{dd6lvyLg)NgV#2#
      zBOq**oKfjK85qNJWkz0k{)GswjGb0y%q|msGdL&EC85!?Y35bx$I9d!iZ!Tn`$4Fk
      z>QwtPLUnI{ObB{*#u2Jmi4kF$&>ZTNukyu&-L;w+CbWlkDh5hyME@)Uf2T9T?(qMQ
      zbP3VO=5ES;T|C|V3p^}tVH=XIh>Hz`s7bGjs$fYbDl$rqWpi9=AUt?M<GDndQX}cW
      U2?BJ{k}3X%u!?qhbgd*iU-GYCJpcdz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/GregorianCalendar.class b/libjava/classpath/lib/java/util/GregorianCalendar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00022634a16c4a168261b0a4ca86eba6ac51892d
      GIT binary patch
      literal 14556
      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
      V+hDj2Jp`tr%*jUDr3`WP{{j_%7jXap
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/HashMap$1.class b/libjava/classpath/lib/java/util/HashMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb5fe463ad8f3cb6c9612b6cab20a0454cbb14df
      GIT binary patch
      literal 1222
      zcwTi=T~8BH5IuLhu-m$P6r_BrRSWh*DHTPM0*N6Q8;U+aF!AknxzfdD*X(Xd@Xz=M
      zc+dnf@xdS9f6_R2du=PNX|_9e=FFLyb7z14{{90%1?vVhhRG9t#>=h9amz1x*xchE
      zauowQ!&Eo$yb(qLx1)U#F$_mdC(Nx-X1y=9O5qL1bD}MVOnyMTaLAx<`$r-Ph8q@!
      zFq}dHBNhydG9>a6FjjXw@v3#&5WxX&xPoD#?%Uiw<bfm4%BjmnsL%c~xe7I+ht5Y4
      zQ`VBmV8*~SL%I)ZVG^?ptj1tEkqCI?2eSD>4{c5Pi8Z<J9D6)!1w=hR5VUcyTivRr
      zsN@|BbI3AG=WG9A8?s%&1BtzF;jUD`w0$q)jwc6G0=nEgF28P^2s^44-b(NT3wbP(
      zfPcZe;+#hCrBHn-bR~f}_0NRNd}N`7Wrn3e+=Frr-#uyzncDYTfh}G*QhQ6Ow=7fW
      zSo1s)Y`Z)R1$DmAGi}fAw3VUz-SKSK4;}A#Pee`s$if<)QJe3@dAwoie{>~R6)UtZ
      z3EEmVJ}!5LEcqBP$)6-^9UA?BRI&7x{=UKbLMIJl(icZaZ1xM|WLacOZyFP^e-bwp
      z%VT=Wm|46;>Jn2I9gbn?r>~`(Z+7zMFi)t37<((`StUzil9DHJh1;L65g9#1$qo@M
      zfNEr|w~;H{yEcqQpNlp!u$ded700HMByOT~g{AA$q+^0i8>9%NRX{N=U+Pf3BaBo(
      zt902^ln>u5D9<Mh=@*G^g;9yuW?^b`NNe+PrEHs{Qz@$|nV3Ntvy`dRJxhiP-Gm&q
      SEdmJNR(BOo=&e)FPyYaqzuXxB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/HashMap$2.class b/libjava/classpath/lib/java/util/HashMap$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..663a1352804b05f3e97dcf3fa4a449fcf4d914e9
      GIT binary patch
      literal 898
      zcwTjq-EPxB5QWb=ZX6p!(}t#{Ex!$rq=<%q5F%9pMO0WyxoMUAjk{_V85`N_Uhqs@
      zfK-aa1rNYOA!Z#bHBFFZdv@mR=QBJ0{paT|08jA9g27Pxz)$&3s${V9jwj;-{;AQm
      zU@~l86yA&y6?0$pqaYBzl2OP|R%4koIs_QZ5PDSJm7!F74E5%mdTYpF_M>BAgW-yc
      z1(Y3>aMgu{YYe5P7Ay{ADBh<ZM<PDrqd+h$4<erjLmo@L&XcA#!mu*?nMRk4n2G!>
      zGNfmtjx`Ib3`;Xw7d6~qU>-w7DiL!P#oBzUfc5e`QSC!{5^|Nsgx;7d+C3Wf_IeI|
      z^0te0++kR4djFv<_<`WD)^54Dt53i=jMCT_`%-u4<{lsG&9wBwP{jR!CyAiOw+hVJ
      zK}~GXVZIIhAWCF-av;<=I(E^<HjU|&2dSp4{nNz7{vJ9sq7wZutXkD`qR6D%LWS}+
      zMK55`1vu^P@AUWq_ZzJYEb3fVp$3f(suZ~t>+BMivwRKLb4r)qx>jkQ!8yaqmnoyH
      z^TxBn{>pU!IyOkPnQ3okoTn6NjjcK6Ic|Nu1bSHj*;5c5dT!)-(a1UOU24X71<QCn
      a$Bc<aro4{_nRY?})h6~HqM51cX#E9idaDWm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/HashMap$3.class b/libjava/classpath/lib/java/util/HashMap$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9129a0cd9d3bd1526645ba8eaea66262c8ce9682
      GIT binary patch
      literal 1494
      zcwU85-%k@k5dQYs(q27;f)oL(s0CYEDNw;5ttcTF8$ll+km%F4tmUBG;oX)56aOO~
      zG{Ktq;3E(IQO4QpQ41}YOS`kP-+c4!%<S(!KYsz3#Znj=!{9DI<hi;uYq{6l-C5%Y
      z$$S_=hM|84OJ!F&ydu|yWayDQrkk9h$kmR}0v#7k%an@@@l==d^d>`a+1?g97_J!z
      zp(ly}dJTkeogt7?fWB4J5^wAKW#Me_a!oJ{tlAY`+vJX^_P#Tygpkh8G|4;(3A*NI
      z;Zc@!#Bno>VTM=-*1#Y}7+8rRVoKp~X*)`Mx{bEv`-xRwH>(zxb%&_uyMl^sKBZ;F
      zlFm_a<4s{>v#>~Cl*HUIFp6=8;Z*68JfTWWa7SV98@Q`#6RFsi<ff&r?3cF2t!nOF
      zc~?|qA^l!~9~ej>P2j4KUSfvXZs0C8Q>zz3*_o|s-VsLKb;Q1XNZp&pOc*(au`7rS
      z8nO&^U{4$=ZFvJ(JYtx<T+sPsjB1?tkJ9-0$v8SVn~sUA0$c51h_2gpry^dND#-AW
      z(<+v>CCd`da*eyLpt3KtQMNsa|23Qjdc~^LY}d4^YeMeW+Xi0XB{fMXr1z*|=SGQK
      z1<cS33D84j{r&2hkfnZMM98m`^#mGyKy)heo&J8n_(nSoeah#Z&=hG~=qJk{TX|y`
      z@ce_g;j_%qs?H))Cy1V4=(xqvqx{;3w)jXZeiUPby5(UL9#5Vuh0zsHsDayGFA(uI
      zBE3aKlkE#xXcyAJy$hGoJ|e7DyNXF-!sl4_OVXz}G7U_gA{0ChT)fksM-y*CeHvv=
      zA>)b2wg|rvM)e?ZM!1$eMNDn7CwSPv+?G!t@aW^zC};=JwNL2PT#RTEW7?sYZoEm<
      tN|*4{>C}pOy1j<S{@t1$)!rbUdeWbv;MJj7ArM2e^hG?UHAs0E{{rIYFcts+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/HashMap$HashEntry.class b/libjava/classpath/lib/java/util/HashMap$HashEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4890b63dd5bb3c21949d068dfd2abf0f801b8c86
      GIT binary patch
      literal 1008
      zcwT){O>fgc6r8P-m;^(=%SS1+&{C&BBd#Pwswxnup&Sx?-?*!Gi@S;Jbw&Oah)PIE
      za7E%rA>P`q+u+cHz0b4rX5Os#_n+@S0X)a1jVXrZV}8mTv6eyO4UdlA@!`5zUnw1q
      zY?K(*E(kmQNQd0lhSZfO!$2f7hLRGWG{Z{g3b7_bwJQ%5*KsHqHm>5fdV9^D*KAWy
      zr6rZrZH7%Z?FhI!Y`pIu3tu;jNZlhFH*Gg{X?JiSYOrwAK@~NI>5f!lKR)S;u*drW
      zO)}RR_&o4<D9v{Umh_Q~7_5(CWEce>hVm&7Vqz|hw~vPB63>bW&vR{0N@`JQ-kwR#
      zeP2Xo0N13j{XlRP4;dER`ov+}I`vh-@W8<W<{4_;K^*$xwKStRng6zFrO&rYiEuaI
      zQ6wT8>kPAnQRx`-AsIfj_Ffcyy$M+RQtJQQmpn68X<&;kBcrE`3avI(Q@EC(^uMT1
      zk?U}19T0AI?5!tHzv0FgDlJUY+Yo`TByolrs#a4PW(h%3&0#*VvCZ)idvT1ll(TN-
      ztlNp^9o!|vn7_;hWf!)U1o)9yI_YL+xj2TT^2@lF=UGW4cW5`szIBHCpZ}5lbxF2d
      bkS%Aj7NszPYj_BA4o2`1Hs}abqsM;%XL-;-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/HashMap$HashIterator.class b/libjava/classpath/lib/java/util/HashMap$HashIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26b8b695958f19c922d7af6c97b0be2c515596c4
      GIT binary patch
      literal 1854
      zcwT)}TUQ%Z6#fopk|D`R0g<${V5LxVv81hNFNtYOplu|C+QcBO4-Uzc3?wsgGQ-6;
      ztINw@=yIuVzVrdtB6clZt9{e8{44$fU(|gjQxXjA!(^X*_P1}}-Y0+l^XpRp7qBX$
      zk6~g%-BJ^dt=AH_)n;``ZA=N7wKYq%O-qKvFz8}xs<EC}Ufa;hwhTYRaL4mGnnAL6
      z8yW-4GW2g6=C-k9Rv3I`(=luYu2*&lQ&XFyjOUI{y<phZZjxYzwnH$#UDcaY=NVq@
      z#S_Y((hc2CGlU~Y*t5|R1<IHeEdYks6dc1~5FB9zLpV+aMWUqu#&Al;Nrs`G01C#@
      zPp#C=N=CFGqP(skfPUfihJs09mYVu!Zh|QV!M5qFf;SOikk_2@re-&Z==(42SGdO%
      zgoHc8TMA?m`B+Xjw7gSa)2yPpRwHJIb7onsl~hX?x_2oFju=kAAj9+V5M85(-Dy}}
      zh;zNZsp4X?SW2d6x?`k@#blZS$yK$PcLziq-eVYvM05XN6M_W_`nsXojzuYaktjLK
      zxWW+aB+Hma*|99muxVBF2YOkxb<<ebDQgXJ2;wrrGE&rC$0u(VoN{%crq#)<3z|e&
      zuy;+t0A2~;2Cm7NV>tN|;st(Qfzrm`RB#KosnjjC=D2M4^dw;KD_9gTzNzifvJ=p6
      zX?1f;ld((-((%dGYTCM5E7+>7b=8?iI7mx!SHThr3}+*~X^vzwSTG%{tliYb#1yZW
      z8380UYZ#i9p|{o4nx3`uE^nlYS9>F-d#}3I;PA+Co|xkF`DitV#d^}eNS}BLt_*rI
      z<Vhmbl><T!4vL3Ix<ua)dDCmA(?hazl95=vg^}13jK<>oIMKp{kf&QXBjohc7NW6J
      zEyRB&EXO(e9fO~a1^D<K1b7-l{5nqXIZX1qm?8TpMW(n&P}OixqTW9G*8^3?JljQ*
      z3~yuBtLGL;VGG6faprsYq{sa6K}x?c@%wK0c8HJ{{=%V~cF+O5L+RdiDY)bY|C^c@
      zMQu~?3HnB;(;pD}4VPD+;OaAx@{v%Jq`vnowo1BG5ftnro%;#lw#&3IM5W3-;^bm3
      z{`<dw35u?_kQN+f2o#roL_ggv><Q(Od(Q5~_YNAF6O-T%Fu>O_%BvXXI;Qys5_}W0
      zypBuUz#_?I-oOg~6d!X772br-Z8W$8hi`RpyzP-Niwtr!Yt}`__5mGBIPP)$ox4N8
      z{0nKw{2|mlsdt1rBCe=~U+}?7jENqJfeGmo+LF#bOp2}JpHoi{si!Zfr!T3euc)7|
      nafN?_4F9%kaPvKboA)Z^D7qv25G9g9cOS;ELL1v2<wySk)<uy|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/HashMap.class b/libjava/classpath/lib/java/util/HashMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b0dd1c02dc0540a565be4a9298b2a9042fe5dd5
      GIT binary patch
      literal 8875
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/HashSet.class b/libjava/classpath/lib/java/util/HashSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc57e6058c3e4806804c51d0101b4b31f09aac6e
      GIT binary patch
      literal 3994
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$1.class b/libjava/classpath/lib/java/util/Hashtable$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba8608841260c2870916725c6c258841c6a3c947
      GIT binary patch
      literal 1217
      zcwT*y+fNfw5XQf=-CkXxfD{x2FBN-1O1)H)5)wlsHlRL~km%d#a?&m=yJq*41oXxK
      zhX+j%5>0&6#6QY7XS=NhH>PQKcFs4y&U|xz{r>tLKou)VXbh8k{E%0=(y}WrxZjby
      zWs7_@3H`#+vz9MCZpx;R3<=q>{QNQrwjzq_Bv`c^ORh0Y7a|qK9R_{f-4$stTrm(w
      zB7+#N8c1S<Ay!a=(Jjjnuet{<;ccrbhVd=e<n|8tEcG5Hb=3^RRMa2ktJI9{TgM`R
      zHqyvpI*BQUi3qiU30!Aj4Th8@g~z4qG2{xxA#@|m6F1$o+76dpkKi+rqSfuq`dU4S
      zd4~C@?l#3yUz))jZmaQA3~|#IoH9A&4ct+Nq)gY5+;V8n$<R@oJMGHr)}AnBz4%s%
      z3kHf<AV2$J!qYUa^6j4z+L0#?+(V%%mkcbT!mtp<j;hTx-L7Yf4NEOxWH8W@k}?<#
      z#}VGT&3#``$FoDu3|*t1Ike{Ij%mBT<+NW4*>QIb)bNzr+ZRW{WgEL-Ev4#Mrdt!E
      zE6lQ4b#*9GU-FLfX^K{$(Fe$s%3tW`9L8sQ(=e)X!3mkHwUMRBpjc(cFdpP5a4n=f
      zq^CMdl}?d4#pKC=kx+SUf2ck+sK0?3Qq2b1n*pary(*3I4Rdc4>m0W}U1Gf(Vi^M#
      z?LO?KHr&e@?p~Tl>msQgM)q?L3n61ObY-;s6Y<!IB9+f@|L<5M%2e$by7nFk?L&ae
      z^-4mVib^O4%`6VU>wR#DeDDKt{UmnTuaEx)>a<m*uafU-s@}XHRnN;ucuY^7>Yw}p
      DcR%A-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$2.class b/libjava/classpath/lib/java/util/Hashtable$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc131702c8ca4d2500c1219ebb4fc6eb363ece4a
      GIT binary patch
      literal 926
      zcwTK%QBTuQ6#i~k)~#M)G8rg{B2%}af_oq&BP3?gxMcbQS>oeexnbATHfe8p@Za#j
      zi!l)sltdGMfIrG`ZZ}7RP1E+=?|kR$ch2dbzdwHic!6gQEQW;-;#h1ZTKSuAL_E@B
      z=*xQBfz7aTm3ldhbtF994SipFT7>~aQIAwy-y(^Ajz)(FyDCt6k722i%V-W5>~44{
      z%V4;{F@vIu0&a3Rm}Mw53}LRX0{JfaIF!+WsbZM#ho0~UB2wl&0c~T3VKMJR^){KY
      zWA#a<qP;R|SaPt)P|aa;RB?xa^%zP@%Sh-jVyHEm8R^~xC*AVCItqkNA`)NDCG8#z
      zI(r=l_Zimm+zo`E$bV!Pt5`DwC^5`<z7&MiQ0I7PM&j;=N#x1b%CtN?m3VGs8F()U
      zWYqOV97~$TddAED`y0EW`MwG~Ka5py^j7Loc*wDVr?k6c<0>}0%l33t-@z7btw4Vg
      zt5nSDD6;7$=Y*Fj+JQwE;I=lt)8hjC8=Wl787$3Ei`EG$6mg0TdJFR@Ud8Q+N}Jv$
      zS8AQZJ;%bAsYcP@)@i1`G_AjjWn!(Q+<U3cHhDE1{tK(`jn)MooL$rUoYCS_Et>qq
      o%XZew53FD7$NCD#I?M56<59|dj3+5~tOCl79X8NRSv9mS0f%C^rvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$3.class b/libjava/classpath/lib/java/util/Hashtable$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8eaac5cecbd56bb3ed4964f3e9d271cab9c43a1
      GIT binary patch
      literal 1530
      zcwU8*&rcIk5XZl7Tj&p$-%>y<KeR#%g#wj|wxUQdHi8}?7`<(mm$F!P$@Y~56aOO)
      znjj>ac;w*SgBLG)@S@RpH_qEGO^YjJ)9%}O-}%hEnRy@nynPQ~8utQF7`nH#T`g4+
      zMk)0`D{l&|P~x$40RD!pg+f`_nl4tkU}zSbMmaV`f@KfqED3UkX^44--ngeCvCiOM
      zv^IDM3>Q>1p*aj6T2utk%HWGjLEExn@<)~J0=L(s7enW=rE8^i%{Jt>YxK)x7<#+{
      z#nP0FzihnV4m2M^1ib<DFm!pSRdk_`f#n&3hTyg)ESn(`Pt>9FuAR7{RikKXqGA(#
      z)>D+Lv#n@5u_aU3d%3lT*|qiTJUsynG7Nj=?I=$$VGLkcmL|y1q?foxmIz`huE=5q
      zb;}f*VNwmc-D;OKvzU5Z*y6g#CZ0)gTtxz7BrbB{uo==`V$UMVmE%N*W|nNjKaSLL
      zn{QjY)X)^B1EAT6o{3U1gCsTOIp34{T~{%IS%#7SC)F5^QPBs_%{J0FFnc>ELo<4|
      zYpq8N;Z>_*>-@eU-CAqfN$Jm^=1r5^izTgG=G1^p9k%YqoHqwF>r19yvdV^8T;XEV
      z+E8&93)C(ymCl{(XqYfEWidsU$457rwYSR~L@W8DF(G@1R&!A30m5VBZ|Ls`>TCK^
      z&?arp4$YJD5$&{6X)UcC=ydE|xad-5=q>kxV+RNypnJc@XqI;6Q=NaX=6?zOq`K^A
      zqYfuSxk`=t4g*gm>j*=yPO(1MvD6xi#@x*%Q=iKruAVxN@&y6qt7ksfFyb;6-Kw-n
      z#`qydkJ04c_nki0HwP1`N?nXxjU(wKF;N4)B#mrC^aQw)JVuB7NFHGF5a}l_-sj*W
      z)GH|85mJ7jMfr(7<rn&u-%hxpDySAN>V^wZH!`?Ef#%$^RV_Ek;>Rr~^(=Bu9jX-q
      P5vtX{jd^<eDej%W?F~f2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a725d7b00b1d897f8c3c089e39f6728cbce24e1
      GIT binary patch
      literal 1475
      zcwU85OHUI~6#g!~WoQ{_d4q^ldG&$iq2QxfLBK#P7y}^zSJQSv2g{U9rw05fCc1UQ
      z0uw5U8r+$vdlQ$s^$|5jcj~#rPzpBKWO~n>$9KN-ojb38Kivf|fC&j@3>_=VU8OH)
      zYU#cyC7Uvpcv|h8)J<b!QqQfbhGJ$637o-eC8ia9x$kCtMNOCz${89C%J=iNjLzUp
      zWOBO6z@`}-T5_F%>*_i=+GC{}3d?F5VQ|f9%erFb43(kh`0SDS8<F{iNR+C|&6Jky
      z>?cO0N<_klrfX)Dq1j(DBd|am$1_RQ1%`SV)$q9CK%)#VnrH}rV8MkJv`RR^P*(y$
      z#z|BVMpnCLVVsg7p+eO7WSqts1}UCP+)>RegYWi#WDo$IGF$@D6Vr5cHn$pAjd_vA
      zP#eo6l=OmPXyV;=a-jf2S4rd}8zntFDJ46TG1SSlx~l4e6pgsVP$~9gI~kh%fg-#a
      zWvz36P3@&4g_TI?qd5;UW;1iSM9K!9Tu-QL;-*w!fYdJV^c_%iBaCxG{PVO^du7(`
      zn==hfUyg`%FbvCZqtb<o7?yB}q3u{%={}NBjfd6SSld^yet)E*TOM&!m#B;odKuhv
      znVgYOuWKT^y3imjiWuZ+U003qw35xLB&X+y<_uH+q8CY6^!<z+t86p^ACYp<;{>N~
      znXVbc&t;#a2*qTw%24I?imObv$n>IyBDG}QqF5Q7t-(+pb-^7p1Vh_s&ZAA7?Ynt&
      zJhlM3=)YDJ^LKFaw{Y=SsNrwWO@5ic2m(Fu)5#D((1stPQ^YER+h}`8g`1Ae0$jNW
      z@%Kd#l?4dWnX>k{pS7T#Q**&|RzTfH)iZ<_Yx{RF_#(JS9-b7Ow=ooZ1RtFp58z~5
      zWYp0ZBBO&RmuQ;7Sm@=S4`R3rc?^ZN2+?7&2~&6QkC6B$8tgM#`4{;3SE~DlApeeD
      z{sW`*KEZz?#(!C?8}}I5tbK%W+0r~>PqgQ$0`rd1L?gB+UA8FB;1gWgIxGi0-Ihnt
      Ux@uXY7=u`*C~CpAf-K{I0js4|sQ>@~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class b/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc026b72ecbd95ef12ca946dbadcadc8414fb6c6
      GIT binary patch
      literal 1861
      zcwU86T~8ZF6g`8-HZ~hDUj~v8NHD}+Czzz9G?<X2#%X8_X=|4@sVZf$r?A27qV+n3
      z{)GO7N^Kwek_Rf`L~5nvEs^>!+NY}OAE+v|y?1TE6qi~W&)m5mbI&<5`_o@PyZ~?o
      zD?zjgoPTUQF;Z36ET`@om37xxEvs18a-E$;S2>1jJ3&Z+h!<8ithLnr)yJyn1`!bG
      zIZWP<7HHqF?9Z(wyCfhM1^h+3YPkYFv$QQB%SMHakzA`|dF36Q76|3dHOp|TjuN<d
      za`ar`Ub?W7o~JBnsckABaM#UBY)YWNRVKv+=1j|U=LH7iEh7>uR4ZebR0sl54H0yQ
      z;lrSY9t;tdcw!}lGZ+rytUzyz3L4I#ow(SvOBu$`bw)J=(aw1nG>oxZR?IKFBgQp^
      z>aL3#;z$StSF6Ph<yI)|lm8)$3nVp!xnft&wA6BSb5%J74kL|ncF`!W7>>zyV^cCg
      z0%I*JA5ovk3a%TKWsg_F{ZL>ao@mNjGPYv-qK&ln90(M|HG#xoM8>v?RmV}5OV`Ex
      z%q$wNX<OOtqT1p`7}FRG;w|FfFlX7$SBvY}vf8AyrqCG-G7)JFUC=_f0XmHY9zKyf
      z&bXza0~%dc;w5^NtevfW!UB%kw4bOTvV`*REi9JHYRxF;UBgvPy)1AqH*i<OBHkt1
      zHq;Ia@$Wa34wK+H4H+y6OvI1-6UVm%`r<9N!vy3#hJIBboVTk^QQa}Q@y-L(lbj@=
      zEn1dxGV~5Bimt$^BWep|kJoOJbU$wHM49K)7^QxEH2etA$A+#w_!nx-;l@n7Q_Lw^
      zwV{*#yPEAtgr6O){WN;eOP)SjeM-JIn#c5H4gLCa4Cu){oUUPn=kqnhc%FDsgZ{l&
      z=o0-$xrpyi_<esM<ogxfzTYt9`yH3b$462*Od>_Iz!ZHO>qlLqnSCAl9%A3XFQ59J
      z9+V8QOUkAa9S0>y28ycVc*868Go;t`8kHKM(N8UZi;f>L{opy?e8~rV#pVo|*I()n
      z$d)C>vWMB+cNnEv{~CU=ThE=~2wj#Q63VN&<g34bVbF6m%rYxCle=`3&uep*iIrXG
      zlo3Q_H-=>o#$_*3vJcZTiWxb8c{zw%@-zx$e=N`9ksOAS=R9c9dfN?X(*)<X2lwp;
      z?D|fp$5aMG4d%Y|#0M7s6YkB|Y%Y*_hs}Q8+QU1~aPK2s5CjG|A|H{ghbms+Ya<hc
      zMJFst!g7hQOcIV1uFEN8<dr5l7V14mZj&6#jlRYkiu(0uxW9W;OB$EG9j5MmZ}kE4
      P;M>YcXHYoM^uvDuLRgso
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$HashEntry.class b/libjava/classpath/lib/java/util/Hashtable$HashEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a189fc772ef9ae45e38742e1dfcaf78c00152499
      GIT binary patch
      literal 1054
      zcwT){U2oGs5S&ZWI!!|gDGdes388fo)W9o=BB81X)X*X&SmN;#PVEKPj_h-3{uMk$
      z0;zpOl>da-v#CoIQ(1R6UeE5%?D_Kdw{rl`Q8SQYSRL?FUJsPC>#w<gta#5BWsUY6
      z<&6wv7&fmdFMGc7cwfEc!*WNS3~dq87&4AHQw;0v8_P8q<~s7o;VSS1!}iVWW_Q2Q
      zwHhtTnr%u)surb~QI5@>qxxZQAo{8?9jRE<$c)l8&g{A$MGk2c@|Z)8VWBM@aS)vJ
      zgxA$g8H#PU&uxo)QosKVX4J9t8PcD`NHeDTFwC5CJ0NChGJQ0>Dp61Jc;##-$!nUR
      z-Ywd*zED=wVJpFTB}r1&)UIh6SY=qdW*h{z{mzw+65iffUksIWog7xMu7|QgEzOFh
      zhx90q`*=V@cf@CE&XDW4f!7zWq&8HDUF_)64EZ;XBfMRk`@ZlEm<)>vmgz!bvkdQ>
      z`!A-oTM4n&KlA&~-xtpg&p<Bd=Vr8KFiWRFD1|I7=$ofAip(QVr%P<jH>$O#W8C^m
      zFpUM;b78_cmAJrdLK_hccPN4o6|oq$F>seq3QH5LQp~y+vzCd)^kicZ4?__HLb_YA
      z_5<_ZvGQSzwTo(PjLk2xo<dmpCo;ICoL`})Qj`^ID&lddX=&nHDgL$`4yPP;euAyg
      OC8K8>719(bs{R4FW$vl~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06640f181cb9efc4cd35523bfa1a079f93302bdc
      GIT binary patch
      literal 1278
      zcwUWD+fEZv6kWURFuhEn+)AM$Ah%wi<>s}77lOgi>I0;Sz72Q+gTs`}OpUzyJw9jx
      zl4xRl^1+WX?sIyv$i$dtdiI>X*V=2Hv*+ipFW&&HVpB(mFmr0YHOo!kvdg=scjB9e
      zwwT)!7duY#Ot_}saCJloDOF~h&T;w0;i)+Cb@UNN|A0I7R>L90MHfw&uLiZ)aeTL@
      zNre#Gw~igtZ@Pl89E90C*sC1WD_f=8*gpTn^5#}pQ4mlTY+8=xZxJ%Nz>0jG5ZP|L
      z7BLV84J2U15yr5ABt{6~T)wU&O_==;FL8__BZ2*rY{Gz!C}E&#IpTTq>`=G|5=9uQ
      zHjYfYZn~CyZ*NAV6YdjuXgBVKT@9R=UajGZ9b23U$M=-bSF-;-15=nLBpmV1Z>I?(
      zxqS8Si)0!tm*=CEutfv2$Pvamg-SrpJa2id=qL~-gQUqw)x?m;l7VHESj`)8A$<n*
      z6tb8w6=<}}Ca=yFe%-VQ>6_<uao#zz#eZ{j=7zb#9P)VXH=6E|cxp*-e-}}bECl13
      z;|O=#Ha$;xIvx{-1Lz6K8@E9y-L~1ItLOWWdbTQ9;o%7LqanmUo)L~?{AGp^Po?Al
      zavbJ|=ZG@{9PJ{)Ss+~~ULjSu#!%raMqd`MF?NOVPYRpm|9*+nve2{)V%h}m@SedO
      zjKn1F@=9_#+N^85%3QQ?iSf^v`OxL*ll$624?fz(&ti_NT6*Ud&wJ$u$h3GCz9V0y
      zTJZ;>#Y+@xOCOb=tWu#d?+OyyDw5h72DNphwGGv0y2a7%lVJB{by7)=S5e|_Yl<P%
      d&aHQI8@w0BeWmCD9`YJj&K}_jhT2LizX2^tCEWl3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb6773b7ee920bcf8c7b204ffce2cd544fc9bf85
      GIT binary patch
      literal 1132
      zcwU85-%ry}6#nkkt?Q^`0^^5@fSbB*x`96sGqM+=0U7wfvZ!x&^M(~it8GW*fAT>S
      zkVF&XvwxKF+-@s%X+oOzp5A`ncg}at?VrCtegRm+a}_a$r6YdAt9{SxRkyj@^?17{
      z3cKQT#}f|sY)6H{ko7@5ZXH%%w~s`}Q;}qtx}=WK3@I}R^NlF&7nbJ)>NN)Kz&y0L
      z*LMU%If}8_+^scRwR&Zone@7*TUcetMbRW+)3i*l&M;q$L>MgwWy^jqG%#G(F#$b|
      zIHq-6!wf^bXtY$!GOS$bBaIy9B`qVRZs<^vVwh~0me}tfw}sP`9BNs^?(klVJEnXe
      zZYt6TWr=K8XcXi~?Q(ZteD?g}-pQ<YbSz<+L@a-Mrf4+Ahef<Z(V#9${CypH6dC45
      zKtJCe|2QyIQ&D1AjH*ONK1PFq2Ra_2LS=jqr_xqL&ZHxb?GquBuIZ@Cj;0UnzS9ve
      zO=&w5NLM7ALEo_~;cWG|>k3!JI>U5C9Sjqpo&;wmoI7M}gp-G;Uc)j?Cr)<)F}i3-
      z6l?T1#E{Nr<@_mD=%zu^mr07Y={-j4Y^i*XZ0Q11rJu;XEni^n91Guk?oE1TNEgZ;
      z63Q!RN&~lOPbUpxViC7#WpYqM)kn0-Z>iE57QSQUOQ4gK`^uXTKNaxvC=hB;?_FPK
      zW2loE=-m4a;|%4mV`?I#mI>5oBExFd|F35C(p6e|S3W^ioQR6z<U=AK<B5-zDo^n&
      HsBz;T^iuK!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..053860b29c90af03ed4f2b5409ad6764dc9292e7
      GIT binary patch
      literal 1286
      zcwT)|TTc@~6#k~|vb`)&Zl#C_3P>-|0^V)I3&CJ)^#QDxx1mm8$#%EyZi&45dwkFY
      zB+<n9<byxTcxHM5%VL`C%+5LAcfRk;+24P@{Q$6rvW^hL{2@Q$#g=bc#cl2#_<YY2
      z3pH-F#FpJ^2$%bgt0TgYREZY1_lqy~4n^J9F~Bf!4)5lhj?EAkJv75&C8)@j?Yqb4
      zMM?~@9dqC2e#;dMD?ym@?z7Tvt+Y|Nj2-X~OmAV86a@igLfN!Ue}f^N3CzgW7$Td_
      zI}roJh=Bx*IKmh+Fo<!6a3)*Rk-DN`eR|@UKw1KaB-u3sI-(5271I{aTa7*8?n)HH
      zXvL{>tHxbZzIP5I(#cg#>$@59HGIIms^f|+OEiS-drInCso<7@S<EpcZ1KVGgc-&&
      z*-HOa5{;J0QfDP>$-q1^43phNC85fjZI>k-Ifj`aadM|}V#s3IzzPaPd?Y1HuR&FX
      zOlO!4G~45o*XIhK%rm6^?b&g&+qb3vb985ixWcs3i0(Kow=SNT5<JvH6eJ6S@zl13
      zyJ>OH6P}Jo3}XTG)c(F3VJKWSdO_KRucWNxV3kHBOpk^T{b*8XAEPfcgm^M3$B_16
      zdT5#`GEBQ|L?{ZRa`{svb7vUMeaFO`{23-sG4(}Zr|Ex4;<VS$w3mo!uW+5t4B{Xp
      zW^jX6CMTrBx=yQ%MRO;Z`ih&MdOQR2T&rKeM|=2rEKpWk@1o-QsQduwHqY&!$W~Z2
      z{|nLl3G&tD&&toVQlSxV0}0K>pypsiYa*q+S9Rvv9GyA|a$i)P8l?Ri3RG=fF@!p?
      bJH6OlIt$~TQgj~=XpJjp5AhhI9i^qeywEFq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..234afd5b34938d3fe8cb978078a58addaf23d8f4
      GIT binary patch
      literal 1140
      zcwTi=+int36kP`f25?HTExoAKR!|vGXuZ@LNM9OF8?io=km%b1Ps%jY!OVr|HyC~Q
      z2Ym9uOKTHNjL&|Qai0OEK&F|@oIPjOT6^ui&;0%O^EZHXJW>&1SUu!DUh!PRtn6^7
      z<MNg%@=b1fV%HTmce}O<g(2g^Ol}=ip0^G~+f@-~m^mX4(F_SA2y^u?^~aWLza8SM
      z49R`tz~ZiF3x-k{qt<v@Z8WP}<w<7T?HEpejUgLGlYp9G8SWOtVj&cvHyM=e?kkZ5
      z!$l1jprsJStcEGfF+>Y`Q^ou_T^e(fLKcgXmX=bNG^j{0OxF!d?0H8mVK*d)T2}A2
      zx!L5lA>Rj^imc<jc8v{#YEnDg*%NPE-`-1^_qv8_SRon9-<~Vz^~rG&FILd0i4uQH
      zLk<Oog(1+-_>8~qmsC|zWLOUKA|oG@gpS)9?x0M<J?T)E7Lqk?i=%E&$h7MkDzdAo
      z{jO)X#S=r8o({yzlFgv)T9&Z4P3}0tQL(`=8{&jvYOF88$r;T)Qrr+%ljo?46`E0$
      z?ieC;(Wod+(q9olDwC0?fMSJi8Yg|3rf7%WBec#JODD(_Pcc*ch3t#cDHcw!^wsBH
      zre~UTp?pA0d55I(9#?2jBMo9=8CPj#a##b^yR^!0iQ+Mqeqi-;pc9w-%Eu9YBH-tc
      zCsg0>4PR$-pp)+F-24Om7^N>0YM(~b(t#SyWZ-6F+|AlqRVi7!@(rr;J;YIz>X68L
      PxbI`7$^$$MJZ}C6QOWl?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Hashtable.class b/libjava/classpath/lib/java/util/Hashtable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2bc8ff663453b24f6db2f619a36de63e5f529265
      GIT binary patch
      literal 10367
      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
      YxxI(at-Mp}E&23Y&(Y@7iu>Ds55rQv3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IdentityHashMap$1.class b/libjava/classpath/lib/java/util/IdentityHashMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce61a89703223bf6657e0624e05818dd5d4453dc
      GIT binary patch
      literal 1915
      zcwU86+j0{}5It?JtP5)}*mAJIb`k{W;=92ZO9+f&gYbm}E24lG*3w`vk$0)p$c6b7
      zK7c1bBvn{cLKQ{wn2$=)v%40;NTgKK%=Gk}K7G!N{{8Q-4*+KHFoYh$x#z~7G1ZV}
      zZK_xmmNe!5U8BCUZoEj$grE^(pA(k0>e4YPa#Kh`uiP=~iD^by>k5(Ow47;~GEW#y
      zej_hcCTIn_Dk319&=Ev$6an<<2;n3lkW>k$)=W!mG<LUyQ!=({f^cTdt{Anl;h1Xe
      z2Q@{EFw(tTVup!nb@P>Qp^Fg=;cN)s5r(^-(J_Ew0u>2iQwqnBwnG?7rrOK+aYm19
      zn%kBk8xEJa+A%5D7E_#-E$Qs%N~_sYIh*HC2xEkF_a2VcM|e?;;s>SIkA$&rX<bxW
      z1}imT@R=c8)Nw&+9In`wG)#-7i}}ZEhP6F)f9tuZ$ZYCy2r0rq2ht~yL`KIrCKzQ~
      z$g)vuaNC1NZMVayic>nKF~b~QKC_)&!lh2-z7DA}b2_f5GQC`8RqQL{=5<`d0;5UK
      z{(&c*t1jxuBFDb(unt{%WOK<@*XpY+-e9J&PM+~zaL;Qw@SE6Y4O9hnnN`_k9R&<B
      zV@K@TdqOe3tD~syQh3*{7VL&4Ro<$OHLMf*yu2k@w5sAI(@na55mSzC+6|{7R!r6A
      z;4xb#6*Gcfv@GEiYDT>-*va`e!fmhj|Lz{YwPmYPv+Jg{y)NXAUDfd`m_}HrO!xht
      z{^C}1D9f(01pMDZ{r&0%^DN|k!yJ$BYymy|0ix;5A^*IC{s*sma7xA89hQ=Y(9biS
      z=PG&{XWaMz27Q!S9@Snr{T9);h#j;rdR3g_ZRf+S^KqQxtn+T}h>LR#nw!)29;1&G
      zR`4CZ|NR))SQ}Vh3ydF(PiDTIOcRM?4N(Fiy4aD>C0zC~4wy)g$Cb?ANWMleaFF?k
      z<hnu}{}X9K6O$YMYSvvXY7<`bSJg1AHE~^gI{OAe?I7@3j<~XbQp_NY2xa(@kK;T|
      zAVZTbqbpujpOKo~K%P0BWTS54mMd2pOB@Rz!}8tcnUbu~*@`B9I&Q^W$Ie$;o&Uqg
      z8js~x=L$%5f7Gd`0{55q8y=Y*e}l_v@rb?Gs)vaAi#yuWL)=k|ktXhap+uV904=Z*
      z*I9{0#3_pll*2UTaf5E+9^JwNT0)5mF5|Svs-;ZXS0;{}t3nUofH`bn*yVrUt@AT}
      Vab5Qm0iX0P+XHO!sPPjoeF7&Df^`4@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IdentityHashMap$2.class b/libjava/classpath/lib/java/util/IdentityHashMap$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..602c07c705cc4fe776cb8da14c88a96157415c6e
      GIT binary patch
      literal 1786
      zcwT)}U2hvz5ItjW{Kc9&No`2%reA4eJ5AlXkfzv42_~g(oD^`VRCwvez9d`hU9?_T
      z4bS|HN<2Y@R3Q*aT7ii85JD=5g8JOQ(lU2<;}|!tto7bIcjnBQGjsRh(;s#KoW%!0
      z_z20H+AS^Dw)IA?To;C|+Z&g)*7}n6>3BW}g%IC!m|tz#mR7T?!X^alb-guyh7l@#
      zAqwnP)D7L9BaEeA;Fq~ZP)cT9gh6;o#Q*{k_z_hR#LEPKS~?u4=!RHsH&=zVqOCRr
      zVW?u(w8k~f(&gSWDv}uCQ2%t}c_yZ`^v{F?T@E9GSA%$kFw!?h#V|$)R3?OUTUeTH
      zT7*P8)1Ah%GkUnHuNj)%wm3y{U#H^AVqvZj#9>0VKhxd)Zd3$gI4V^+MmYQ;MaxpL
      zfm%ao9FxEa700ELp_*yfnr^T_aWA}~8Ed(#t2af>E@VEG&KVV1OmHK1ofpLhmu^bI
      zp9^8kb<XKFFM*tjGdRnsZMPf4A3Yx;bDUH08eS&^+s5sWO{+;bxgVeXg3seZ5Hp0>
      z-dS~{Ws9bYH^6*idY2ZGSD#wBm5QX!rRh8fpU5HumS~!{gk(6c;w{N=z~Lt?Z>uPx
      zAgjEj;vG2-p{7|cnQg<C$7K~)ut<oy81r`7sEga2B<(bVI8mf(wym1Dq)TZI_Vnzu
      zq)1T9h9Rs{Lu<7Jw<*=t<gN?ojt^go1*6t5Te`8fB<yvwuA+(+u7j&_uIb?ahL24J
      z?hjYXp8$%*<VE9E(0M{^5A$jUKK=ob?Bo{z-G}-e?|e8QZO#dcLSG`rE0x#MI*1|1
      zK8%ANN}k{HER@|uWE1gw9gKjq)7M?`p-%iLlI)dod=EJ|=b<=0(H}8(U1Is~<H)x?
      zVBd6sMLS?T@gAA!ZZg{#?<t7BN02u6C3F%K9>%OEOITt|ZX?}W(E|q{;W~K$ay5xl
      zPWq{iHg{Nmh2Jy&qN~p7oq_u7U7YZCsr>TP9|+vVU{YG9wvm5;=^Mq*eNR(&o;^wK
      zWj@AKK|k@Ad<QZ58Kd+I#^_fZrQeWa+cf>|u*$mmJXSsyq=*q_6Ges#8)3^R;+SKm
      zezsoh6#WJ7<*Y1tMZa0`7Nyw^*U7IiAvf2#%SwF<ac{Gr+}LshQ`@+#-1GO+euyyr
      zi6Q!nKZ1Yb6g|QP`Ums$FG}>-p?$<n-Vt-b6LSdXP;qE0SaML8an<Rj+h?$cJ4El|
      LJ$@_PmiPYy73XX0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IdentityHashMap$3.class b/libjava/classpath/lib/java/util/IdentityHashMap$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf9677531e11eecdba189031b24ffcc7a24e1fca
      GIT binary patch
      literal 1412
      zcwT)|OHUJF6g}T`=*vM6C=V$QrD7jS3n++%DmEHwipD@l(2dh}gdx)zGo2E2tBD&o
      zx-c5WxY7*^O?V`lu-6}j-fucUg_bn!eD}_|=brD}+dq3hcL5CJmIneu_lmqK$IF(g
      z#WMv(w^Zxdj9gltm7j)2JrEg!hk)r^$ui}<l{Pd@$y=(SGq|l~wG>JaQMN8ql3<gn
      zu39OE-tY;y$O40yHVTRl45uVC!0m?%jS@UK&EN`iKvP!Lm3!r4PBG`@oTf0eWR1M6
      zEy$+IV<#zcVGKR>+l59+m{?MuD>ik;hjw&&(817Ew?;xMx)@l7!K+$|DO-lg&>oId
      zw{h~s?weDWblEDK)S|m4XmWlbnM!)l#}KWrbU)s&@}n2$xGU!w`c85*!yRkLYl=)Y
      z?YJOefII0nm7=jqq5@8_ChJS_`?(bwYcleXLn9KRh*9y{6T>Vr4Aw#(PjM43OBh0&
      zO0CK$S|8QM4NDl|ZhDJGA#Id(i}$@E;VQ-$8Y>c~t&Cn!)@V>+`!3Aj^FBsLFH{Eq
      zoKZIO${m$=Z9C${5HDhoGP<sqX-zJb6xxr0D)Wx-cV#-XbGP-pW|UNYX;!h8je>-m
      zm?j%nWv$FvI{%yPVSN$_+GH2~-&k`qUuQZs(ANVm<$ZLz27x|+KN{PjpB+d)C=$@b
      zbM_nZQFwu7I!Scq*)wRd^Q~xeSVri{-+7~(@NXipalql`dEr%6z4xI0EV>C5w6Q%l
      z&p1RI)A$R$i=0c`LI3w7WUs5p8V|^5uN*OB)nc|0I&vZ54Lriznt}##(c$<(rg7Wm
      zI7e(7;cVq*mv+U%)Hh5xQE(*o6%igRZXzK*-a^6&0%Bnc0UiX!!Zt?5jhDh+aQ*LZ
      z*P%Cqyp`|{KH)t&gbxS_A2BR^LP}W2jPMzEDgQwDVoU9>$Z@3d(>TqJwhU94Ko>EJ
      axNb8iF==15Vgd+Xad-+TdWy8-H~s;f-Y+!(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IdentityHashMap$IdentityEntry.class b/libjava/classpath/lib/java/util/IdentityHashMap$IdentityEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55da9bb65bcddf7e655bc61d6189b07092ceaaff
      GIT binary patch
      literal 2554
      zcwUW_%YPG96vuzJlQfSGZAo8Z!9od;7i|GWC8a`})P^*GCPv#*V3H2)KspmA6QsIx
      z=VRqcQ9kTkXczkVv<2n!@v(K`pXA4LXQq>+nQ9lAd*_@p=X}rO-u(5?ufG8}hq4bH
      z3}^0352f+Cp;X2*E3#@R#>SjfTgyq+@a}tBHS`T1JPf_2aYa&B$8VJG%VoodPKLgQ
      z3;vmD&LC8@G6Tyn_#dd+M`})6Vdym0lv;R#VR(MuxJfdbR8+;7Vi<}1hg~LGWbn*r
      zD{=tDCL)NgAOwU&i0C7NNVFKh0ET=RWH_>~BM~pbPnhf4%8XW54esq_5drx5?x+YK
      zSNF^-s(ih^UXt~KRI11fp?R$=Rf>|X@ONA2;TbYS_vdb{D`h*_>Sv?6>npjxlgUCh
      zStur_##)?B7Sbe6lbjb({;)1ph-JVoVpHFe(M2Cl6J{g8jHZ_Bx=!AxQ_4N1EE$TX
      zrXQ8%D&GWg3L#$2sE8Qi3|_;6>|1L0-UTntiWtK<VXVqVR;GdIk3`!ogXHm?i1WBW
      z9v|J)^mT^QZoKY6UK4SV2k}#oqEx9957T&O+N?=I%7LbeI<rc;Kweo@C8MsBO=l#^
      z%gD*5M7+hxe09}kGnGa9!oNn1;In7WStf`SW_?JvoRR!S&5+kcyp1`MD@`4=K6Gsi
      zKQJ{Xn_z^8vtxQ6+9~QZXEuhR<qcg?SNGP}k|uq4hhb>1c)G4sR%AVhn+WkoLBxBY
      z!_+BNtFlVx^z8q%pv6tnj}HjyGWWE|JuU5VV6*J+fPc9x;yP|n#(Ax-m*rW74_E)5
      zu^;0e7{rXK%KA)2s?}r~@Ix(!fMIzuoxRkaK)UE6oN5=j%}CS9!UWw40{y)7?B$mO
      zU8lYLx}c?(UqbZmqo0UFWYtYO1s!Ay48`Kx=!reU;aGeN{o6PaJGzbGpGhU)7(GMq
      z&^8ONFo%F}6^Dguc!lJH<bXcM2#y2hj)(2Q2{R0{b)&R0oJ80T`!{*zVN0<sinN6u
      ziun{>FK}w%8P5D3{}bNF6lyd62fR5;AE9OVJl`jNL4sii6W`-xlg@K@SNp21^?Eji
      zO(%m<UIt+S-NGUUg(VylZec`NMp(FwE5aQ}wDOFOTVzf~CA^L|h&zlayopOKxs{yU
      z=tdz;lJ*^#G;>tVRsb>g9J!=9vmIRi$zkp048j9qtq|+F$z?^1*<2@DBo@QPCWb2}
      zLzTM5Z4w7!pbENBY!JoAMDa-zMWT%&;ZR(~wB6;eXb`z>_CV2j?B|$qWg_{fjZO}d
      zUkINO*XP9b1roxSNYUEhn{DHpb@(#4;8f|F$@!eB#Cx7P5T`|yYmxAmIL%x>(Wst9
      z`3+G%CdzM#@;gimPnu>d<;++LS#!n`^oKuBJ8Q-oR-=wp&aujo72`LPUG1;!Y8TwI
      zc!8U=zUxx-9pppr?_j|-Pg3sS*4~-;fwKCMvf6B_d7-W51)E&JZL`{UaF^B~>F6H@
      L65T0Q7fSyEWlteu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IdentityHashMap$IdentityIterator.class b/libjava/classpath/lib/java/util/IdentityHashMap$IdentityIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94ce525e31697a962b8ea71d848386183de80fdf
      GIT binary patch
      literal 1900
      zcwU86QBxaL6#i~*LP)Yepdkn;7Llf#1d<xH3W>3p0!<sJHViYU%ydb%ux;37Hk%5L
      zPrk}8=!5pnmp<rBQ${;O-}>M$amI0ca`dTs?q*2>DVm+lz4x4ZzH`3soaC36KOX^j
      z3nedH4Dox)10_|rv}&qQQFTkR_OC0o?PX<m>iAr+R8z4G(+f94(7s<)^sUsb&3kIu
      z@}h@fr~}2h&EU57cU1;fVCcQC8(-+lMuovsHtM>?z^g`?p~u?RYEzdPBE>Tc$<Vc|
      zrfXJ?;ez}h_X@E!%9=MSst;6?1POh9aD*iEW0+FPu{9q?FzUr?45McPNf<*f6}@9r
      z@}gLQc3y%Hy(0Q`2^WOhUDLj_6TKn9-*mkxVG0+Cqor(CiTb(Eil^nuh=@xP0wRJT
      zCc!Jf28x=luGDunRdcl&J5)5vN_9;!HF0)~ZXp-L^w}bGb&b>upM;{WIB>IP<78KF
      zW>(iSx#VfQ>}nyCBT(<QQd?2?EL+x3sWja_gydK^X9izM+tL-QZc<i{93u=b-Xr?$
      z{CPt!*G-d>(U@p=wX$MqhQ6>@R(Hk5k1GgyF~=~`j#)8E_44*YRo$Vmj;pf>`KcWr
      zNXX$sDz&cf-8IY|hN#?K+$-w!VxF4x{~9mombvf8RpiBl4UiP~)qT;rS18b9syoI5
      z)r;#i#ch9~T2;4{YROV8wS&P@lfg|1MJzM)HG}7^f?iSgNNm}jb$`jIn`L!T6U_{r
      zsxm2(Fh~VmSIvA?snt{(o#5$yGR$WSbKMo^x=o$aa$*`VL8Hv+_0SU(6Akh4Iji4U
      z17ZyZ#m|yXZhA>HiVD*1Yq$sjkmHF42IGe~7f(DvxPgdR#~YXs>*P@b(fIiW<R9rS
      zN1VRL&;z*shR5|Me6HUx==vR_u0Js8`U?s2hY6W*F^w6!3fZpDg(U4I%HH&)Xl1xe
      z|BKCfmS`2eK>P_NzJ<sAm_Kf%>=7=iHqn9zIPl36mL_N#Z&SK=Xz#+iHuy^-FN!)K
      z@Cdzw#PmA^p5e;+A>My3Qa%*NSvqE($JgoXt_TTe7xh$x26oUSEzxu_@#3FfX(vBK
      zzpy8sBKtkk!s33^#P7K7zLU27L(gz^-SI^a@zD=0c4=Y&9zZ{r5axXt=l!_I2aw_+
      z%<^F@@)6wNqxhVU;VT}&H?(gHec&juNY6Da5dXF&2Q5t&G3*HalRY@V#+h0ilRbJQ
      z%u8f02=gF`5q95cAnY8*g+}AYl%C>-kSii?MB395rKtqJMC4>57b9YE%<u%}_%xRI
      l3~uuz5leNncB8Ac8x9SQ6}zdo@G-=ci-{S*C#`1R{uh1AtC;`*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IdentityHashMap.class b/libjava/classpath/lib/java/util/IdentityHashMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbcbfd8395c752292c5579179d7cd8178fa07813
      GIT binary patch
      literal 6772
      zcwUWIYjjlA75>hdSD0Kd1`?7?0s$k086Xl6Brg&I=$HVOfk5z;Npc|*CNp8?4ki=@
      zF@5>yLtCwiRuGJ>Xi-Q&DGwht^;w@NUG1Oths&<jR_SAPt+u55oO^TUW+p*pW$wM_
      z+_U$$zy0lf&h^cUFP#Rk0Owuc4EdeG9l^4M77Ca7+tr8`(t588#yeIAyIrs|<Rqu-
      zTH{(Q*rv%TC&R?#lpM-nm?DQl(XxOV3kAcWox#?y>VlhLvYZJABU{Vr!_kN;CK$3-
      ztXx&Mp>h4K^>sJY)%({sGcZ3{u8&6IS}>wD1;Yu|Mrd;wG9rm^I3A8_4B3rIYinCO
      z)i$k?Y{jL|CN&lhMI#&hE6CRMj_n6jw(!E|dl>BT&`xsc&~(?6Zyd`=Mpv}GKAMP-
      z6Bm&Y3#oC2%NmoB22}Cdgg|I(B&a1~WN7~A*{a4-w3MtQE4@|g8!Fc~Ro2iyTC8=%
      z)ObfU+)n<g+QOkoNULG6mCk7*l=abeVr(YGlM2s`87NV3C8jettK_N)V3@7oGGqyq
      zp@_OB(bcNP*6Sf=H%8ltkRZ`Q&vMXB3w*-HTyj<Fmmal_5C!S6;7$<&Va^?Gs<&G;
      zd|Wa9GBap5Y$$PIA;ZjMO#X0K-5Lzn#kMB8XxYl1Hnm%$#JN$95)s#81-Y0i?ygZ#
      z1ceyt3ieP`rK1_H6hRcG3|9HbxlekZ)07DZsukowXW8#YEtb1b$1o|0XLV5PP_PvB
      zB#~0TU%bVzQo$-z5Z&Dgtu7oUMRkpqgU(L=xX#H~TUZUoL>P?%f+FtLD9D52#tm5K
      z!Z$`ztruA=7VM2H2w**>W=lvoEiD~GtLY<x2l7V6MTJ;8C;bJHhfNALpvjHR*yPgL
      zy-7hn3S78_p(Le9*F?2IqPsg9)6{k|K?JKU+TF{L*%pmx!B8aLpwd%L=@^JM3liHD
      zv_n*0&z5M6_?tD>n`5D6*s7odA@bNkk{ZVc^$XiJfneeY9@#a>-wyrC$UufD=3XjK
      zhRa8&vDEWbsbgPN#V*9CWX6?#$pSaFLlcFTV3=kVXKHPUtU1-~iC{P`^3$VW2Z97T
      zN?~mkc&CmPG{F%3+^*mbL9HthG00^^Q-)wm^bt4qqR)l9Mm3W_Z(LKm6nsk%n-#La
      z5lhHcD890*TkDmzvYEgUxstftG?Ivqno6OedlcM@0?HG;8+YORm*l40jr&0MY*bWK
      z++&3Iwe&#(EY%Yt*r3QMBR1Joo%AaeVWWBR+a#sGk|YvSyP`YPI?W$xS9?SscvQhY
      zJVq}CTjP35Bt5ZCGNQjKSl+MTVbL(1Qc(0--Y6#OqtwdUL}`$-qH(6Gq;LdRPboNn
      ze$i6LG~vR}FUj6QH=Y*kxnpXuU8f?cFxq+bA%BF(4QTXEmsFVBEMH2`FGsdxdfmU)
      zoN?iKhGJ_A2*%^o0#?y}*ly|1M={{Sv5}L*SS}R|icRYBc6CcI5!Tk3NX6n43SJbQ
      z*d+q+N95Q^1<#1C#BfT%5Ah>PL2^qPGbqYfBtd%5ye$^e)Da%0r}D5ip;?J=<2AhQ
      z!mk+$#(z)2kU*bppx>BuAeO(O;7uWh4Cz?ne+_Rdcp2}E)1bumbSYSroj^1ZYg1Q+
      z#Ev>8CFAqOQU=8ziKsD|6P0rKA%k~(k&Hb1H8mF0qEs1KsY5QDqqD<Tn~<H4DktUn
      zo~nk5^jMq57^|`9+;W68n`z44IeIwdC~55s<}tF8&P5~#`saWP6Oe%dWI~~_iF9)0
      zm_(Z`osj6h0GA`%9G@)CmGmC4N1Qa|HBUb86+0rm=aKIf(sPj<&nMf{Fr8+K>8Xt7
      z#DAG5F{Al7t~iQW&&vg+^y`+Bopik!bL1#!*_GzvYiWeh)#c5~IS#K_XtON5A5J_V
      z7b^N|n1}h&r*-5i!{}VY=zU~EtoC`2V}WO%Kvqu37M<}p4#454@_Ot&r!ZpxS9?8<
      zoz9K{EJ-?^Nx=b+!;UBDZa)$BB++w_h&e<AKLs!PC7@j0g#k$1EtQax(0mqX74)`F
      zW2J-`H6Tv)`d&m8b=;n;oD*0^6nK4uSdoM?3F6%U0%hzdxjbfZJ=JtQm1w-qaGjjH
      z%AE7l9K-b{>D$Pr065)y3=I#Xz}tKbtL-fVSWN?0vlCeBwGE&l2_lyy1)L<ZPZ5yQ
      zB!Dv{fR`<anVy!I>1OnF&@vqFC2#^>F(qc>S+GW*a5#wOv)D}8@Ua2h=sU8J9g!9a
      zNp3eA2nt9DppKJ)w+PMK#N|6Q`&&ZsfrXM{14Ra9>{hz7W~11|(}JLZr<JlS*5wJ(
      zTXi(zc1!tFaM%yq4r8<&|41nQWbv10rXY_ro;Au}p6PF!>F;h@CDJ)d_b1$)wzpUJ
      zBU{`SmiwgJK7O(AvEeT)-u39eq~8m~|KBP4e^B%nP=bF-G{w4A6U{7yC7MZuvy1R>
      z3$9rvt_Z1cM3vnV-%Z4a#7=N-9KvPZli1!&xr$R>#Ly9pk|oQ5i{)Z6TV+u~UYZh;
      zOzbe3Xf%}I^!kqDwq&GEv4S;OICh#*InkTKvD37?6RH`@H>HQ&6pLVGw!yVXYqd#p
      zwpZTTTgnHqtDnB`Q$y>dPy223wH3AyJllja+eo)UE_bI8Jlh1d2Q@~xrwFQ@uFGsy
      zGU*PH^fDdInt4NT_G6mIJCCrOz@1iT^tiXBN+@FA@Q0oxPhL_aST8u+iHU3%rm)+Q
      z$L@fK?Li^^m9RUpnC7b4T`~Z#?%oK1qnbV_1Y9>38VZ?0olgX1vxKtD4CUMS4n{gQ
      zlXID(c|4L*CVKkrwa6heO%9o+(eGLW_`Ng%-mMGpJ|Vy#4B&1tl$xc3B)~%?z;j<y
      zfOMuZJ>D-ovd`ph37j`%GM9c=OR?05G!zN36v>Pf=^3f88xL~>`Sv4%1o~TY5D76%
      zllk`3jt)nQvA>8uDp#L&?vfjgm~LO}=to7qJ;zaA;mmiwP8(Ie)AX3{3>Y578{{+~
      z`g4Qm&kcQ!i#d*c!$StZWZyR5kV}056Qf1gozzFbJ||)SnS}ipWV64LR=$9jeTjwa
      z0_o*nsAK=ewd_CG!2XNP?0?wGhOwP9^l*;bxgCAnfqS_Vk8&3d(cH6q5{~k0oZ^!)
      z#HZk0o`X+#u1v=|xs#qZi{`vhG~!P5Cr*cuAz3~)(x*ZjeHNwvTAKSYZCiHgPs^k>
      z9q1t&KcQKtOzI-J8=W_|IAQle)9yoLSGV>M+0a)$D22HyZ5Q5b?Lt3IIehRd;NT_W
      zbfVM^*J+}08XInw_*l|whLsUwfqAz`i-*bVc<e1K;HmCo7sUz1=nAqsc*-m6`Su~$
      zpU=08b|80&o!uw!h`p!AQ}iS<iVF7+zfn|p02zgz{ljMpJ#^<OIygKaJBMx~V000~
      zS9zd+xX%o59hE!y0=RfNviL$|^CigP*C3xS#SC77IlL0{c@@fdH5Tz2RMK@BU2EyO
      zoY$g}*P)3oM+>h<n6JPtUM7jsQ?uJ7YPU=veMC@-9+z!qIVIr%nesVwjOdgpPgd$~
      zvr>PS*3e&~H$@Yx9kZePQj4K|r1FeTy2e{Lh$rS9u@uBCIwgZ|f|EBx;hT}mZ$dG@
      z8D4%1mhf9q#amFrTP+Q=){Lyy+yNFDJHQg^BM+oB&{{K|9CI(IGa9Hv^p2F)$+uY=
      znIo-{IZSg0=u|pF&%w0Tc}Q=aPm9+1ivb)GLn*D3@1^A5g~|NMuhlxU#Q(c80@y@X
      zp?SA&2(A|}tI?Ng`!MYMS!D3%EY;&SsdK08<8IT-9j2FNqc$^r<buvcEZxm<3gHAM
      z@E0v^GEFy`X>Kx2HysEWZuY|__x7c})KVMK)*&eR-4GmwhxM)aGw;YQKKy$V)HJb?
      z@HeQK-ousreaz+`k(55BLOO@V{4L8tVyOvosUf3mIyR&pB$gU*IiA5``h6BcB^=M;
      zh=l%#0ll0m;RX6TUhOS3z9UAyZ~BoX>f|NyH;7+t?Bm0P{%^@nCo$Vj!EQT)3AVE+
      zu)TsJ+pF->b%E_Q3+8eYb2)thoFRl0X!dLh=5iDB%Xr1WEOhytM0|=AEXt^!@VqKc
      z+YN*GjY%c+a-{>&>nQZe)6gK^@>z?Rp7jKLnhZf!vF!s2;X^34k1*AC4%2L(V5aRn
      ze74`AlE#+X{$Q!%dNY)I3gumbH-(<{W6(4@Sf?I?>W!dm^uZxQdk^nRTMqj8VEBke
      ZKBns@l*H}QYBqg=>er`@t6r#|{vU2CPEh~=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IllegalFormatCodePointException.class b/libjava/classpath/lib/java/util/IllegalFormatCodePointException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da60018aff4be238a9d0dab62377840c65ffdaae
      GIT binary patch
      literal 625
      zcwUWB+e#xr5IvQv#_<*}>zxr5k_ZN$6+v{xksw0Wytk7kwzNHArbqoKUxZx+AN&A6
      zN~~#vJ}vst)pM%OoH|wg`u6++U>hrC<OuaEaU+_kRk|5yEqg*AMe((;2T@m^MatOU
      zccJWC6`3*$1phzuPZnV!k+BlGBjbeed2mRe6T;|0WD+Zk?FgO9B3l5hZ9H-@<P#7|
      zyUHlLM<~>SdWWyf!Vo41oBPIB=0<4M_0Nq8Iq$pB&kXvvBJq>7-`7fZw<^e^>cPVl
      zVW!q{cC|3QX4}Tf^mgi<VQ|Gm1tWy<mNN1*y}pp~A90~2q1uW<HZOPt#)D+RUaEwB
      zw0^v-9fH@BUj;(GR_7rr?I?{yd89Jg^>0MBvUXTyzj@wP4htxv#Hj4h5Jw)ueRDUA
      zavWoH%s9ul*Qky^VY0FK57Q5hHOq0#X&tjp!2h1$7o*t^KISl=Jqz4&SdF;j;y|_O
      bFi>p##q|BBT*)QdPR9En3}gsPj<x&_Lo14w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IllegalFormatConversionException.class b/libjava/classpath/lib/java/util/IllegalFormatConversionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..360e8833a623ee3b1a1d445b46aaba9d0c67e4aa
      GIT binary patch
      literal 1364
      zcwUWDT~8B16g@**T52m$zA55@f^8`+i1<}Rp-O^j(4<i1ak?GKl4ZBq57b}eiw~Me
      zNhHBX6MvNP&K3%^qCV`*ojd2AbN24tpTEAH0GLNUhz^F-9zWn&*U|Lsx~_{V*VjyI
      zpF4TeI1rYtnZ}Fvs;D^>1mR~;uD~}@3_Z56G_IE#<y-5|8Q4pPC{fxDH=GjJT@fG;
      zV7{Fbx>V`OGx)ewW#}z<3OYBc*}TqeJIByf)T#z|TuU(Yx85(MmI>0iq#2sC%rKD1
      zw=pD348!etSt+mld9xyd7+@GWM-&}PGpehurdNa&!Vp7vb5|(Nhnh$$Vf14pf*y=Y
      z!9r^lu}Z{P1UE2F-gvDhj0(f-Md+*Yo=}}!vaR}5GZ%uwFq2j^ThWXIu4@%#$FvlO
      zT&T^jqo}*w;;JL8hO0@bd8<Y0%+-}rvT{mRPBV-p@_+M`ppTW2_*4WlNHc^Svw@*+
      zlW4CbZXZU1$TEzd-)*?M{@T<G^4*-A5at=;vdOkvtLd7kc->asaa%D6PpTP=bb;Ys
      z1Yum0(ftS_h%$5+G(&8-`(<Hm^0H2I5-XT04I!sdr1NRg@9b(eL%Q()Q%|!sc$tbk
      zozg|C;z9{ca3V=_+(X$FtLp9x!|~>fq3=>-&c=GMJ=+-OaM5%vRjg@JWa?iIGm--n
      z)D0i~Q$CC$fKECE>C}M`t<)^}yUA8j{<@d%CM0=9FU5^a41KhJgx}-IrH;|R9UDBt
      zaJr6o>}DMk@j7nD?od!i@(8o(ABY|!vmKi|!rkww_#qZj=|e1j@oYSxb<&eBl2DPz
      zH|e~EX_PRBH(115JjOO25<+Q6;t^%wMba|!B5AsVc4_}C(@hzMB|M>3n$FTL?*gf>
      pSoq|<jg;^7l4Vb#Q5-mxU|7b}=9@ojBU$|1LZbhXWW__R{st>$K$HLg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IllegalFormatException.class b/libjava/classpath/lib/java/util/IllegalFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31d0c040f41fe99e681a57e1d35cfbf2a6fcef62
      GIT binary patch
      literal 534
      zcwU8&%T5A85Jhjp00u!2#Ro2YtN;^<afxCKN&=a<L1y1zXKd5cW9DJ}EmtHi`~W}2
      zk1$pbD2bZ5=+q;p?yc&#kC#^f$Ef9yV%WRqkGvH}QnmU@374y$A9y^vdYXubNcuVl
      zi{T)l6xZ$-brHC+C-j12D2F1DTsa~LsUGz&8Q6fK*!6W7aUD5a#UexAV7sGthU}@-
      zGU_m->kWs&>iV}Lk2F>a$YYtIWJ@isV{a^i8$MQop<??JGT>xG^}K0CcQT|E?f))m
      zGgRyL;*wz$NbR;8jxnto(>2<~3teOM3uDL+{WzG2o;0pIe|sF6IqZXk%$=wqgDk}y
      zRVggdgE@{m1<Fn+GK!hz6vgKRDJ6ix&S2pjWy%UO2&<@=-!qHO1v*3;HrqU$V*RH=
      XpJoP$!p4mHR>)FkGcn&vX0|^8Ch>6f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IllegalFormatFlagsException.class b/libjava/classpath/lib/java/util/IllegalFormatFlagsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e00e72df7ac88858e40554af86aa46229f5b42e6
      GIT binary patch
      literal 881
      zcwUWCZEq4m5Pr4=?!-e{q^;D7TNO)rjh`_lT1Ba(F)5Pt;}*7b&GruOMg3WtXi03M
      zA5HvG#<_)HB5J&3Cp*u~JkQ+DeE;$J3xIoQSXg2xy%KLkGYXY%cC?lwq1&E+Cc?HB
      zqu|NAfgFd*b1fto_+L`zSqv+I^p((k=?CP$>^x>*`wW>q&kaK1hJB$UnMC|Kt7V4d
      zNi4&V>l$t?+)?u|^p!hmF{JJ*SA`E4*2;_F-9AHN&l^e$D-0XI#~(#X52bG-$543a
      zay4z32QuW|2{*Deo<<gV2M#jvZQa2Ju92=7kEJ_gsQ*cK0h&p*Y-}=QYy7PUco2=p
      zTFGG}=G}5|14RZq^rjUI`SK!9D~)C3Eo?Isf5i?WtzUS`4W&PSXB)Q}wtA;>t~321
      zE_}&dDj->o{3S5lb&$qo>Z_|<c@Ui)OTQ<MwTz$K8_=W#&5QgQm<Uf5jbo?#Ut2*l
      zvPW_XGNcc^$REhIii!9?${H~_wyC>i+Jhx*B8e1vmho&l)Uvs=cr;|MkoOu1LV$YZ
      z0@<V7>I7G-=UB@X$eiQ)1UIYSkhuUq%H5ja&euxy6G|Tp%?{ah#B28y1w5l^bO_r=
      x4bM?FF++@9RLpADO#`&LsG>NNZyFy+Rz9NieomV*V9(Gv(}WofBl<Y2{u2Qb(d+;K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IllegalFormatPrecisionException.class b/libjava/classpath/lib/java/util/IllegalFormatPrecisionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..262d90434d84c45bc3f6d8cf0048fdabd0b27753
      GIT binary patch
      literal 821
      zcwUWC%Wl&^6g{`ii{LgTq%CdwFl_)kO%t&WVnLz8RfLdIA|Y1OWRwnaZOa}bw)_tp
      zBuFKY_yE3wFF{;SLXjvHEN13D&OK-D-1+w7^H%`((Jo?+;Jy}bL?_kC?|8m1$HG4h
      z<1?Y3$8x9=6$Ve<4rQd-C?ZF&uYg~m2uq2KmGB2L&dOhSj|p@{SU3oSM2kQVgrCYh
      zUjelF?mH(VULK+FKm|%aB;*{=9q@4wj${!_gjFNzi(uU8>sSTjN2&5hGA^M?s2rb4
      zJNk9omR&{#H47G&3Cm9J&(f|t$PlX*Zefi@MHI<kMA%@_OW>JKw}d)3(6Uuxt7+Hm
      zjASz-*&^)!P3B6ntkSk{8#{!O4yQ>%&AD8{*m=~hfpEt{8P~bno(kl%^z1~&$Ku47
      zglaDw@@orzbM|M!oIX_vVXyb!)9n(hvHYDN%sVbmrQ8qGcqk85M%(xYNjsC{&bXMz
      zJBM}TQDCoVyb>>N!q}{a1>P6gdxacFfbHfNR9;qZoa1JFf|cs}1RE1<pJTUK|AfW|
      zQ+Sv6MMM7-Yw)mzBiv(eWl8}DZuYg<%B1*bp^3ejP{;T{zWEW2_ZM^p6YLurYYLdr
      J5LyPc{}UBqz9;|y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/IllegalFormatWidthException.class b/libjava/classpath/lib/java/util/IllegalFormatWidthException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c5edc893eddd8acc40ee2e5b03fb56354165bab
      GIT binary patch
      literal 801
      zcwUWCT~8B16g?OEWmzbe0z#24in6VxjgO|r2T^oQ<AXqr@o8u$?T}@+*_{=Ckx#yu
      zXh}5j2l%6icV`<OM2wrv%$_^vo^xmJ{JQx56Tm~X@|YpqI}sm5JJ!l;yPhY9!rKqR
      zQ=#9gfgU~o*q39i0zZ!o!M=ui$s#O9GE~Cr$uMGk<US+NE5iI<;73~cx+lC?W|4ds
      zk3R9{84s6`d#rq=pAa&RTkr9*7Yt+`i-c8U>Ir|?KG31^hfibW4P;nAnJ{-alJ;3r
      zY11yEgo*_V%Y<d8`)69G-b)y(7H(mU4aImY{Q+Tv4X===9-RWJTzu13k*(4bw-S-t
      ziO42l_ir}WiY1x0g)Q766m*bo5-QHs6z0yNas%8R3q{NkN?qm4*YWAG3=hSzCkf?l
      z(C3>LeBX?x!HgcMh_KWBuda5ukfBV2gjuJ~ohTjzaoCspDv`7Qk=#lw_%xiz-JHQX
      zvdA&Y8&u%Ig`0okrp)ua!00_P906*LA1J*m-#o`sb%K@h`UD#j)Xs6YQT>MPFDCIm
      z&kIKW1=jEqn{ctiXeE_^gSvT2HDkpu2@O1$8nq1uvW>6U{(LEyGr>1T#!3lO8A8*r
      Gc7FqP7Pc7x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/InputMismatchException.class b/libjava/classpath/lib/java/util/InputMismatchException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..907991adeeee1d75ca7bc206f52d56d28dd770ff
      GIT binary patch
      literal 466
      zcwU8%y-ve06orr5G=WfBD3pZ-nA##WLX3qjh(9TG3F__!t2IiTDsd36#Z-xb2jHO)
      z*GYuLkA#PNuI<m~_`ZL<z5zHv*FlZp;E_LZFV`~iZq+i^cQT8)4i}ftp;&5}C<oRz
      zYLWywT}L7oN`Fxd_L)>tj~VK{{*=MGNFIcXI@X(Lz-DOsQi(|(&qR99XOUp&_({m4
      zDNm)@SBI8f$c*90|L<QThHkH<BCh6Mpi`;lqyE%{Zkf;)1ItXzFNnbnk~|H?l{A_A
      ze<uvhI~;;Wf>|}{XcVdr?M_J<X=AX$+DmcmQgumz5iFczgSuu3k#3S2gH~lQCepC>
      d;CO}hPlszFZwiOKlByg`w~bB_zEix}{R9igVVnQ}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/InvalidPropertiesFormatException.class b/libjava/classpath/lib/java/util/InvalidPropertiesFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54d6c7ee9d70ea7114f5453637d3536687a90501
      GIT binary patch
      literal 1142
      zcwU{8T~8B16o%jF2gPkESOifJ78Io|(s-j6MG{l3scFEZh%qK6({_Zx?M|~h3+lh}
      z#wL>Jz5Whw{0H6`&rZu)KS1Nn%$zf4p7Wk_c0Yc5_a49vlv0Q>6!!T6F9ljUrJ8%d
      z9oc^9sjl#}6n<5C9j@=aY>BRx%1t4`FlpkYD%G~43x)|_c#=Ci!t=>~RJ+T-9x#km
      zl<RBm>K*O`BKhLz%d^j4KRsm_S(mQV8w^t`bpv#`yIX2#PrAG1{0>8+qT0ej9N7#k
      zq#4HR(iNLQrzyN`-gE>*uC7{?l2c-`2hN1vlRm?0{ol(fGo(7g_xY}Y{w9ZEW?1C*
      zo~I7OWTZ0`cs>+3!w_EyZH9{(%wmq=Oju!s2R>0(PXPSU%aCmKpG}=`pFZ@Y7F*4I
      z(b5bH131m3@7fA<H_)VB@Q!Jw71ipeaGAkAj^9+eVFo8(hv+D56w3^GWoW*wp4(wp
      zZT+e%Z0-r$RoeE4-dR{emO7vUk~4Rj8qz|0`&jz?uhMJo&&p$xKCanQf(Y19f!7jM
      z8IFJXZ^K>-QCOro#px%YX(5Rb+EZl3Fp317>3gF!L!J%t#b_TX6nhwZV`9c>wT$;B
      zy}gAAI!*VZa27ehoF;LO7$IwFz`8$Rr3*bw7m9Cj;qeb(*2pPS`gMA8dkC72plMvf
      zJi%gEfKBTn`4Xm(zSOvhw~ny%BzL8Us~;kISRim`h-yVt3)iq>sCg9rgIYa-TEwbp
      Jz;zS9_8l3e2a^B*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Iterator.class b/libjava/classpath/lib/java/util/Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..968d125f413612a8c6d34a054ae42539359399f3
      GIT binary patch
      literal 271
      zcwRg8Z`VEs1_nb00d@u^Mh2m*#Ii*F(vr*^eb18AqQsK?B6bEAMg{?}curzoy1su>
      zR%&tyBLjOzVzFOp1(3z8p&7-<z>){%h-hf~pewd!WZ(?WOwUU!DJ@E6WMI|M3~>dD
      zu@$A}=9i^{4G3do;0n$!ElN&x%gg}^@xrXv0~yB1pkd=`g=wxGrVtw=1JFPQ5MTy6
      joRxu%0ptO81`eP&Cs34$feXmzX5ay{dBG$fRE8e_qg*`!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/LinkedHashMap$1.class b/libjava/classpath/lib/java/util/LinkedHashMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4236600ebf16bc28ad6e539a4c1778c551673eb0
      GIT binary patch
      literal 1521
      zcwUWDT~iZh6n+i~EF>$?hz3Q_DryKtpkS*7KSR{CfEQRCd&RPOB@4?gv)NGj3;hYb
      zX{R^dcwuLfI-{drIHNP2{(x4iKcMyV4>&z%S&}%InI^OQzURE>Jo}vUocH(lcOL*4
      z#bpgmggwi~x-nexEqi#{a#mFSl2I(o7;F8b8lr^G;Mg{trQyqq%gXdMv=9=tq@1rj
      z!*@M`W|llpIX+=vx)Es2$~wNcF+qshMv+rmR~+|yXU5GFC`V}V3s$jzgy}Vc;?&l4
      z!|wMt))dE2T8`zPCiJEnCgcX@`EwaJui8M^sYAyO+3nKNj(7|aBz1J4n-ED2%(r1L
      z_G#!LBpU$g=tV0ddammW&VC&lS|#sO9S0F-f~#&m<CdJ@xL-$1oE;3JW=pG!%DZAL
      z+Dtw%?V5%?Z+Mp2p))ESAoMhB<tTSRD;ULDb;A!Rf5%BqV05KI1?qI0&~S{Esi9?D
      zClrjkZe6!b!?#=~d&5*~vWZ~`Ne!cf1GSu4cdld>vbI{~w7Sp{B&Ec09c|KqFK|M`
      zmxQDLa}0Ex3_4jXnWkh<=$OPQLNg0o3L3Pn8VNh2<E(^5R@4TMfTvd7b)_N0Qq<ye
      zwyl;7d(Jm}Rmb=|k}+25f{t^zNH~(({)vzDkPw@5OP;ANSewGtS9MIn33|?Pl$YVL
      zE-DtVBkP#9TeO^|8RZw;yp9>n@@QDqdy`D%>MzXJg__{5a&7!H^B*!>kY8K4@-P9N
      zoifF|CS-=$8|9}1ot*Uv@4iJ7BLMr;gB2vw`zq*4-@)$mU>SQV=#%w81&4m+kR}}F
      zcOn4bGU+bb={|PTBOGCm&OV00QKW+N0i?rE9OqTe;^{K_9-}#WD{`v}*CI#sM;%1G
      z3NeV!LWo~DTFw?2;t)RxX7v-|_b_zr4u&5J@Dnjd*!=uqTI>qOg0+m}Qb!qG(Vww{
      z*Re9bx`}S_{J7;feG{7OZdZBraW_GKa*2O&iBHi>&v2Oj#t=Qn33^e-ccIGn9J)ik
      zKLn}(Qw{l!1$@u5IVENy<nbG_SJNciuW@E{;e*y66kX{b=JYRfddZw#F{jrUr#CoB
      hZ+WcW)$y7Nc|~w3K*-^1$V_aCAwqrwnTEZX{trSIR|Wt8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/LinkedHashMap$LinkedHashEntry.class b/libjava/classpath/lib/java/util/LinkedHashMap$LinkedHashEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2cc9b02751ff05b5120023a08edc82733cf2dec0
      GIT binary patch
      literal 1630
      zcwUWEOHUI~6#gzPEiI!I<RMQLs<cy};v3qa3BCwu7my~h(V-n+piG<T3`uwTGt}rp
      z4J;MYYJ!T13rLJnV|1bMFZdUX=gzdHwKQSTd(Y#$=brDoXZrE)<`#fqgq)~h=wFgn
      zrJ$iJiQtr?F3a)jQhM=*l=AL+S5#fgIALe#+yxh4MF4|6rO9yy|I|K9h8SGa%7QBC
      zh9)zNR67@*nGDTDLt{h#oiD_xjy-L}Vhj#_QAvAGGPGB#MOa5zQ5AiR;gYW^%1R_8
      zbs-p;Tash?9ua?(`uABqaN9nfjLR-CGzxH|-VGZL2@udsBK!7N(1lhUcA|};tx9JC
      z+TozPv}97}cXbM=g@aq&0$e=RKzRA4u`(xXGtyjwgl(Ei#-v14(iHCJgLW<zgKb&P
      za70Bj47ICL!XRX8`SDDuP{Kys`5NV-O0k%n<^_Eg4N*V<0}S<6BBI4*je*Vb+>n4E
      z=#}bLlJW7Rq3V>FU~t9~vZNX*hGw6C&yIY4x{Q-OE1(a(4DRWqp~d8@ip8^3sUco~
      zL6}fgSsPDC>9m}-)G3`IhDdmFwDPj(9<i~Kaj6*p;xOVU^=G3mjQ{9u$a9iagF0GW
      zrM}0*=Om95aDZY~<{%nqe?xIQ?IAIcgGU?~e2u0+7A-sQ1jHO#L|Qu5(IfI;79He?
      zv{AH+M|gI_EZ#$FuX+6%HS~b4e26AILK`0A2%bR1Q=GyxvO&%BW;h84U|PrMY>jD=
      z;*|B4q3VjL<3-d7GusazQRPJbkk4qpN9}pC@ZU#<tgdZnJa8+ELHnH?21P5~vPP81
      z;t<X<Pf297tmC5To2f3oiFx8YTPRSjMLt+A$2n3Pc#cMFkpB{XWN`*Lgz*ZOv55$&
      zKa01xjdxhV77V<{U3@Sl5-c)#iM(YIOO9cZv+$OuO$oNi;+Xkel6~bQNsenJgw`>_
      zy&WsSN_Z6V?NyW@A}@+OMVc_+6FvE7`tH7<8(-<O{6_tK$0&Ya5<d~eFG%=Z!fn2S
      b+kBpzjg;f8&f@~@ZpzXB14hWU*pB`K<1TCp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/LinkedHashMap.class b/libjava/classpath/lib/java/util/LinkedHashMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0fa4813702b128ab0cb539fd1d5df6a14551a70
      GIT binary patch
      literal 3388
      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
      OPiQ?aZ`Rmp{PaIG_jv~Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/LinkedHashSet.class b/libjava/classpath/lib/java/util/LinkedHashSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e1e3335d6e7bd773c13889cd1f5ce11b21e7e75
      GIT binary patch
      literal 1400
      zcwT)|T~8B16g>mmF07z@2||%CK}%5ze#bVvR2pmQN7C9vd>WPw3@*E5yCuO_{R5i#
      z=zq|sCYtyI`~&*pUoqa9UANl}HBDw_?>+aNduDEb{Q3GFz$WhN=wp~V<R?7e@`atR
      z3g@-8_lP$SYL>4<V;Jouqi~vGxD!^P0fuoEvbnRLFWIhR@m<@}VK7Xngm4Mz32uuw
      zGQ%*^RG$sYYYNwSQF+L~9usrPb(%hR{06sMR_d4ibLZpl+#Ex?C>-H$G4y9w8w^^>
      z-LnkzV`2y+7-hIX&09}fN4u6+4;03#u1Nx%Wav8#YW{&}GE7%{xGpeEcGsOA|Erzr
      zRaC6k3tLpFWh<)<+0<p(REC<8J(J54Kjx<JPswA2A(gF^1Kg6tEif3i%lFFM^j(i2
      zW$G^*(<-^PZJ9n@Q$boEtciVx`z?=Jnm-#?TvHtdBCAqlg?LTr?MzyR+5hp7Giiio
      zMRp!TO8-yzF#*=k&d8gob|$0dd&1c#Mje|yCXb2?Y+#9Dz>IE9llMc{RC8ONX_ZCr
      zyzwVkms|`-#rlJo-m~39GE&$|G!{KsES`vU4{{hx3~>RApn0TU3OWYqJcDx>qJ5bD
      zUwt@FaVDpe)-j4~)6Qs5<=PnkLWh1_q}3oOAfVw8lXMyiK$yZM+NZlBGqg*}Oi1~h
      zYGrjgmuX`*$=RZs6U8|hph8Z0n!`MCblB4|_JxrBl`;qDxy*7Ki%I&oRP;{KF9fiN
      zUJvQz=?az!-4W7bLMxQH3VB!8l;BQeXRVEFQtv(4`Ow2o4r`&EPHra3U02FCupa5<
      uLp@D(ZhXVWOX>0E=SVZHYCgsM8IhiWTcJM#w-f%1P`M9x)Ot5my!RJF-4z}H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/LinkedList$Entry.class b/libjava/classpath/lib/java/util/LinkedList$Entry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ba88eac5e1296d3452a59f49a9fe13b100d14dc
      GIT binary patch
      literal 719
      zcwT)`$xZ@65Pc29Hi94`D&m4M1~37=D&ayjF(G<@aBrZ4jpIOOA@W%sjEM(7z>hN4
      z^e6^FGwH77y{dXO{r>U#2H*^b5d;`=Lq6eE*O5lGDb0J)Z%W%ax-=bY8iB@;Qn<m*
      zLG`vf6g`JQ>vM-Qq?^B?3x-%r4ovR2mS70B+mz8v@kmAa=HG*eRrm+4QJ*?-qGL-;
      z<jA!d!Zm41r_QiZTvSo&5TQs#o})EJeW4?WbQ}q+ld58=69ZMo5ki<DN#n$g`_L6u
      zn|BT2EjH?Lqr)xf#a~Iyxsx<FJC9Ar-}v#;1(fv4+!lIk<XSy(CB3TT54GaeGsLe=
      zQ&<gy+qSSH*k{NrYs?T*T^WkC_W9yJs4u2)N?Ql%>Agd%QxqXDfGFKD=(Bi*?)Y5H
      z$R@B#zMn}VMYc;`fUI7A!CLv`8JQ>5JxlkhnqotPOT8!9q$umNu|)^U^HprmVYwL=
      VReE>S#5{IYmeIF|17i6~3ZGsOogx4L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/LinkedList$LinkedListItr.class b/libjava/classpath/lib/java/util/LinkedList$LinkedListItr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ae4fd4146d96cc81f373d4271b6c767d7a9991d
      GIT binary patch
      literal 3062
      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
      PrpPLsq`#Xy$Jze?rSDoK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/LinkedList.class b/libjava/classpath/lib/java/util/LinkedList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf4b687bcbcc29ab9926829e8c273d689f4fc29f
      GIT binary patch
      literal 9888
      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
      YKlN8rW-gQ}=ZaB2<^OfkUQ`u-0!XQBasU7T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/List.class b/libjava/classpath/lib/java/util/List.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7628961dacfab7941be91efb40e24c8ca1d3318
      GIT binary patch
      literal 1427
      zcwTi>TTc@~6h1?t+X5mgplwm=mD!?H6mPU4Ax%v-X~F}I5Arm$Ygsbv>RyQW(|qs;
      z_@j(xPIt%J&OU7CeBZgBIi25se*OZ0J!n}l$6)0`T#059d$QT{qS%6Y2CKwL;g6cf
      zXBX}O*&>6rf0ms<N~FEOXHXEsA%hL>^rpR9_9q7A6K~{;I0;<_7I*qxV%NFB`ZI$f
      zR|ZPJs7F#VsAhqu5|dRuN7>%NFo$GP;rZ@cX5EDM!a%wr#3s3_x-<y<Sa^QKU?~%+
      z$jzKUjd7Hs`z;X?y$T~YR?R#1Z2PKt$HvT<=UhbRonYuvVh0E3`9t^n@t2&zkww(K
      z{2E`A2c|4}u^Wmw2-Vft6V*8>k7;T~MVp$(4yA}<C(FAmaXB0vv-+QFZ$j5nW6e`$
      zv1@t)CjWZAHVaS;-OJz#=TjaFbPFh}D<QcMsY!1ex6(BG@_03A{PU6bLv3r6oT=Qn
      z`P`YQsHIkGmd*;a;@~I@#kIOI`_z<?a|3NQt+)FJv-}}H?f20Ge;6#D1W7n>KYCIP
      zMOCt^92j)kU6b!DW!_+F2mkyyQT!J0;i%vPVL=H|8POap5?<1H8SxER(fB6eRgG^U
      zz72OkJv3|Rr_S{W{RZN@DSr<tny(_R!6xzd;Q^gnP^a@DJkoZL5kE=wPvM#7w+VBN
      yZN!bK_>DC0&Qv|mr|=8d)wqfHWm?xBywdz@#QX4u_<eY*`FHreC+S1V9Q*~2@l6o`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ListIterator.class b/libjava/classpath/lib/java/util/ListIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b0be20e25f40722239bd88d1f7c61b764cef3d0
      GIT binary patch
      literal 506
      zcwS{t%TB^j5Iw`I6hr|5Uq8@pY}^VVae+ybMolm-++E=YOKNM{Tf(=w@B{oP<MgIQ
      zLKl;{=bV`{H|OW~>l?rgt_)NNqqW!wCslsncz&W>C1atY*g%cY)mk9JmGk(vmJ4N|
      zLFoT)6w?IbT_g{3s|Z!gekHUSKgDw6M`=Q+g<2X|ws&YbCYW=76$+Kcl2Eto=NWU&
      z&)u?_ExX}TZne2f=oDhXish0pw94l83!!1LqkhElBicyq!myf1{!?onrSU@E`vD8R
      z{RplzH^SXyc3U={mMO2C%Y-ja$DA2o<EnG+Cg*CPi7a0;?=7@hJz}+j4&&nke1fi?
      a>*c+V)15wGJj6)zXZt+Yxqe;b%;g`D0B=A5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ListResourceBundle.class b/libjava/classpath/lib/java/util/ListResourceBundle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbb833eb69dc74868d5224974a5cf4c1c7de22d3
      GIT binary patch
      literal 1614
      zcwUuMTW=Fr5dKcQ&c@EtT*%EpQc^<jEf~zDB~A?_O}NBvr3QsdB&4-{a27Ueu-8C@
      zdQnyNKeXz5UO_@h15(ttN`36Fs4Dd@G<;{*O=99ys;%9bGv}L`Z)VQf-~V~D1>h|5
      zI@$z|Jv5)1sk&>~shm}Fzm&B~y;_vhb*E%Y9h$(<E~0r?pnb}6EH^6<h{hHLw3$jt
      zh7mx>KoIQ$T{+8<pVwCkvU<xbD39J;rD)oVX4O*bhEa2ut(w3{?!UNX7;f2A+BNBZ
      zQFtheuE2QI_pwc<oLX?JmQ&8e_LzKJCJccd1HCvb&{>x5OvQ1f<1*(!G`6(V%Ap^F
      zItB!~-;Zx#2oaVppVUp85&EP1-DCIIl1Fk?)w_?MKu2*We_yNY0>a{RLqI3ldAUkp
      zBpTb(o>`~9BCDorRUD#23s%`N-FlV1oHz(KwVz2gqvIqyvx~oO)|MBf8^#zyorof?
      zBPMWY7r;#e3DtmrSt^Ct*9ilskzzw0n^o2%aAZ&Z_eQAB##sZ$G1`f9xS-=a``41K
      zfs6Q<!*b+vch;6GUgW-Li`lA3mkdn8KOnVyr79a9HSb{F3o+|N7+GA=ak(ksOvSbt
      zgZXL(u40-A<t_(-R5aHLoH=+DqNYxLQ@?0!FElQU;4^rj^FZ_ESbhBO1v$|ivE?WQ
      z68~fH0^tR3GIN&gaoTs^PAe~MloJj>{WNO4)O_n)oud?#!T1I`UQua7nC~zput@M7
      zbW$^X5al7t9(;hVMt~m}R-+t`ucJGk+{&(@Kam_x2h!{4`w=0kTKeVpf$ia+xBn6^
      zcQTB4-UY@iq5~ynkr>1S3{xLN*~=RDBR8@t?Ff!~^ha@w$ToV8@c$t>2z451`N+#~
      zLPZxtw6}A;thnXgV(jh)#`6iqu{W7e9DhasCQh~CwomZy_-iC5wKb$7+B(im2G`J+
      zj08847TAHR^(O*9ZT}h3USn!fi)g=X|B?I!pQ`EtUUgaa2XM)>PVP_9jb}KF=VbQ`
      zF{~nm7f9nPT*B9w!Z*lM-p04MPkRyHdDUlq?v3hIpH$7f#aO}&K4X>LoQ_|8ijijd
      j)+kS64%djkPOkx?eEbb+{@zUlHBEg(xi2v9^(*%dHj;hP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Locale.class b/libjava/classpath/lib/java/util/Locale.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a095ba8e2115638f9cabdb7e2935300defebd34e
      GIT binary patch
      literal 16086
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Map$Entry.class b/libjava/classpath/lib/java/util/Map$Entry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2abbac57e4dcced681e2ebcbe292fbaa7ff9e61
      GIT binary patch
      literal 480
      zcwTLhOH0E*6ot=i&C}LbTOWIoWMgov#Z6HtQCw8Aa5vT=O&L<nBtrk13x9w=O1uf7
      zsL5=G^W8azd+&UGe|!SCz=?$pVXzeMA}I1i1^43h^d`--wS_IhUR6*cjf02hrJUyk
      zGnRQM*My<x-~BIN5u8~Pry?&hNiaPBF=S@5ClactQB)$mL1$hwr#0I4*jn2cLN6w(
      z7q)jjf68siw?ZgQ7`3H65!~6T$ma4kQS7mK%=7XYp*KxanN5_?T51c2g#MpxaLd&`
      z2;*^h+02ew*mV<`1a1}OF?g{COx6~w4s6!WFYU74MsK70taq@B>O-*4tc!!HGQf~;
      O7iIPcN2XIdj(-5~`fbYq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Map.class b/libjava/classpath/lib/java/util/Map.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27285a3f2b8e0e1babb26cf7076dead08eef5631
      GIT binary patch
      literal 935
      zcwUWC+iuf96r3%sol9GKp%<X#T8cv@0&fUgl~7cqDnUG?$^&mpSfwsoJNObQd>RjY
      z03U^z-IzcUBVo%ro;kB~&Ys;LKfiqk@Dk5lED5Y#$&qa4S*V-u<j}>kz=ox?j0Vm3
      zAFotD6IkhMB@=-gUZW>a@5fOl!zgX5vA~YknP1>HKG6BMswZ`>1S%@Zl5tnjZqsXY
      z{?sMq3sk$|Ad*?0Q2Js%A9QBgJUTO0!A0A@==rC71swGympWyO15@F+tf@sxV6RL_
      zR~ij-8oesX|EG1`n>0AFt6a+TvK4<)c8cc$ZkV2353{kwoR{-iO{TNEuzUL0J+h-W
      zS_^D>v-9xHsT|Ca!3me0*a4Zelc?)>#Oljw_?5vKnPcI=_GikqVy)SJ7)LC4_>WXz
      zT?K00I8XZOZK%!pvgUK67Fa!xB9*kXOjDJ*cq*`6a(=v4MGS)W>%|H7O1RTS$`RlQ
      zVV-r~-W517x7bC+#%d93s8hE})e_c-*9-n8Hm3Y0@fNnH_!jXFcCBs?`!?SG%jXX9
      nT^vmDA@RLAzx&1d2Y5K;AF<!Z_U{N!7;DTN^Yff)p=kU9)hgU#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/MissingFormatArgumentException.class b/libjava/classpath/lib/java/util/MissingFormatArgumentException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94bf0670981d7022d4153bda413beef14c998d17
      GIT binary patch
      literal 917
      zcwUWCT~8B16g>m|vTiLd1*9r2Qnd6lKG&EiN<uBgq}a&gupP>n?QF9<Yw%xbqBN02
      zA5DDo4;k<7HYKsf_^^|?_uM__%)R%=uP<K#JVGOl1%~ol{*E^TEuH3p^nIy@d#*R)
      z`l&YzMndTq=e8JY>8dmm4AxckzT=1?cjD?<6~mG*JjtED@O+A2?>}c?ZHC;gt9;Fs
      z?sF#)Npb*I`e_sBGnk!-*Wqf|>}iiov=~y4rIPvy!%BG`-sv+WcHMzUV~JtyPyAUR
      zoq_N&Fd3GQ&V=QUg)L8|%|nwlD~mh|1`OoF+p2*z+#*Fj9t$;KsQ*oIE;SWtWl&@&
      z)hth((xWZyTHI2us*7{!Yigmzr@d^1Vs{MO#Rfx0yD<$zp*&CC%3=|PG&UJFuCQ+4
      zIImo(wD4vv&tQw8IQK|P`j(<{617mc28IU)vbfHW??@%O!RSPINBqPQVgFs5M#gDy
      z6i<^0eI{u(mCpZe2+hnK3LT@p*o*KOvOPEOY_TUp)~$bYG(s_KlG{bvkOdTxM2ezx
      z6lLh6Cq#D^PLIwT6un1+GC;j@iTts7bAsjS1y;;;IxcW~f_v5P$X&uZHt$bR`c|oa
      z#`edE<{_OM5q+D;+C=vf>*&yo4hZX_hC`GIU5y2>gG#u&bPJ8p`l3qz$2OW#3?wU`
      Yu>E01pNf)iA{rwun9?w!53B0G0Y*&VZ2$lO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/MissingFormatWidthException.class b/libjava/classpath/lib/java/util/MissingFormatWidthException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d292cfea81d2ca0d6dd77b80e4004059ca44c3a
      GIT binary patch
      literal 890
      zcwUWCU2hUW6g|`OB`#98w6&->Rk4)M_>A$vY7;7LOsJSXPGN*G%PyUrRezQyS`tb0
      z(Zv7aUohTX2u;KoH`&SDd+wfd_n!OX*O#vV9-^Ma3PbUYcq<x#QBLDX`Mz=o2c8}Y
      z^Gfy2@Y(yG92@1iNyHfVWogTC<UlyH(nS@+nlH5yPFHH5;+L(b4D660v+udS5w7V9
      zCy;T3&(G16K%c>GN4$=32aS%=)IpOW@kqJKJZ9J^EyH_VhS<K>mr1NKZ2gHp36#^9
      zIt80y{bVS)KbAf9TJ=QOWR<6pMb3hSOnBS0u!S3>D8^&y_8Dq_Q(Q{TMVcw(8S+&=
      zqTxxO3$EpPptS7sci{x<p~Ni<w^3k78E^J6L$0(;*-T><xg>TN3YXY%;5aWl<r=9M
      zgHGWdi7x#bS3Y;CoJ2WtSHSSVLK;^YvTfzc<6v|q^@%uhWH@!NM@9*<i{g1QW`>F!
      z*=_&VQjksdK$;oUnKdFcL%QPyx+f1*NXh>}P!DCWLw&B&LaZQ<I1&^kqbNl$H6Pts
      z=oX#VC^|=sGC-|7MfTLbKEZnB0vq-=9T&Jc!JW!?WTxP!_T35Ye=Ao$qxdnR*`;$6
      z;r_L-jYD$fIpx}@;s~V(i-@s@a<rqhr~z72R8W}9H=-Dbmp`HSVL_XSlHG{Lnib4x
      J7}1ASwcnp&*vJ3?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/MissingResourceException.class b/libjava/classpath/lib/java/util/MissingResourceException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8e0e27a91537a541da76e1912c94445e3fa27e1
      GIT binary patch
      literal 770
      zcwUWBOHWfl6#h=1P%Z*}fP%;)ENFQ&E{%ju)kLiXTJ4I>P$p&I_Fi&lE`hB-#b2O_
      zgoLO+!2iLTy$j=+p|J^+=w{}eGvDK!Ge3V{{s8b43t1!xi-+PwRAZz3>N};i3OWs`
      z!#HZom#1xcY*ZLzks?exoG*e-wGjtKb^GsxaV;Yy{FaO~=O13bAkZ7aXe|u15rJt5
      zKbGll&F@#gK7G6<47Yuu^_J*LLcZQtZkmW2cuq(j$umM`Lj}rg5}qyJ1^rK@+#;lE
      z;l9ivi3ty*$P-Ef#LBH<5Q-jh7_rf$2M;5JvAPQ6R@~i_(R;DyyLQ7iPbzp`&U?j_
      zIZ&FgRR8xfc{pOI*O8{yUqW%YJZKFWM!mJ0$TgkHD`nkg@6%ql5?J8=ll;R;Oe2j9
      zXIah?7((8T$8p{c=Melyc);fvXZwsv@jYHyx!_~<9EHl-IZ9s~d&=?b`!=iYuu_9r
      zO+4gE<%Wkx><Aalus*rSIwo9XJ+0$o%=R3sd|Ony@)d>8e{C|Zxa*|78$eH*@MIvl
      Nber56NS<@3`9FV)qe%b&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/NavigableMap.class b/libjava/classpath/lib/java/util/NavigableMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68c6a269e4f5a22b9c672a063cb2a0017a6cc8c3
      GIT binary patch
      literal 1538
      zcwUW^O;6)65QfLFkTy^#uzY`im6TnmxDtf8z@-HaMU~*@wk9>Q5|pN({c9Zf0sEs?
      zJ29<m+@x@@)MwtAc|A_;zyIFe0pJ8m7K{*Bc%m<~)QPw#-Ov~A(Yj#Q^x1+R1oBc7
      z)b~oa^(WSdEEp#+*RQAsVZ@r4PQVtyD+@3EDEvd9=v2&7w^-@dVa1+IbqQpv-1BMF
      z2^oPM=dPTbc!t7V%{|A0jC3k9^eLqK=pn3;jd9^dA4L%KHky$jdrdYN7u@%{irq!2
      zO|-bzQqyHWNGkRt58F{!Sai~c+)P%qsj`BqK2y(u5La5`TpXzM6LL+~ZZN-z`;&*i
      z@~OT49o_g)(?rdF+V912tSXCAd!jZlk1obN<A(YE7JD7X+nu`H?nT09dq@Zk8R{_p
      zpbzo-#&A}P(T{)WQIhizn}YLQi->X|E!+f);kQBEBJ8st8yc5D>6+hHH%#w2aI2CU
      z+SQ;FHrN#xcn@dvDUahq0{3U-(?QQ#LhL;408-5HO(8IfYYg9|d3<*)$RK5rM!-g%
      zfJwzU<S9d+HuSuq&lviwq0brmPncJ{fV^n%lEKRcufVF}HRN^JP`rt}W$-raDBeZh
      fgMGyX<O74Z!BJe4`G<;s$$X7*{g%Iux{>4m^<aOq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/NavigableSet.class b/libjava/classpath/lib/java/util/NavigableSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72a65c50a6028d8bbc2b7958fe8093afa09af384
      GIT binary patch
      literal 1179
      zcwUW@%}&BV5XWaxD4@uvD4?RCP!3AG3L(Y>5)z^ZJb7DSElW1kl!EW(!3Xf6jI#v_
      zlmZ?m>2E&%GrOJr`ThC^fO{w^;31G4&<QP%O)kpMbiy^-5v<Kj1@;L<teBuft^Cp%
      zur7Li1mcT|wr-fLhv@{oLjPn2fr8p{R#i&tE&_oz*M`&_8;pQoeXUnYXsGipbRBh+
      zF5`j^H3Ggq*ZNXA@SzLQ;Km5sB~({YuR2xn%hVQ?nSO3EgPKw^IWMw?Z_fOfo^cIS
      zQL2W~P>+qeY}mtTtfQt^vX^fSld~IxbGg_;u4#|v8;v`b_@m4Hy}7uyj8K%f`6g}G
      zC`zBv>F>LBYrCaKUj3K8Nx87}D=zvQ7iD#~P$wt5$rW*n&zqGtZ{C_<R^6o*Z0lpA
      z%NktZenyuMcPFa|JXPxt>kVt0j_K9~9}|H+G%r5LFg`d1{73;L4+N199DL~Dkb{pP
      zY;y!T>fji}ZB8H`L(=9G<WomH1!<cz$Y*eF^96F&!6~@3`O3=A*_^lXml*BZ`ns8U
      F3V&x-C5He2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/NoSuchElementException.class b/libjava/classpath/lib/java/util/NoSuchElementException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79dae1aadd8f98bccfc71f1a5c655324194be862
      GIT binary patch
      literal 529
      zcwU82Jx>Bb5Pb^=m=gq1P_a=fz(iu~#Lyrn>PaDbRu;>#fi=gTx!W`TBwH&I3x9yU
      zjeo=5ICl_D)Wl-vYu~&#GcO-c&j5B&$sob7al`L;Bh=DubiH2aj5@9u3#B{vj=0s*
      zQyCZxl^Er6HEf)RO3ShM`e!Hv!k65&g&$CUd3?ygP8f1+PX(GQZF4sisq6Rl>zmwv
      zU`QWGC3TA-S*_U&M%x<*6G<#&VPc*kZ%HM(;kYmS3*L7HL(%da65u35`K)N@kqj8N
      ztp7G>GL)*;_Xa)fOEqlP>`1f}i7wGl1EINeBduRZ2D9gdz9WugB)tB&%udvYP0(I+
      zU%DAmNR!V{mcSf67VSqiOO-wHjC`s-LGCez<jI=kfm0YbLxG~~6of?-V^W%RM$jT;
      ggiY7CCs_W;U{lXk%ut@9W(-kO#!4){8uzSy0_1jbP5=M^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Observable.class b/libjava/classpath/lib/java/util/Observable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7987b00421e3684e4327f8c4f7855dc63bf14db3
      GIT binary patch
      literal 2016
      zcwTi?-%}e^7(JJS1j3R~q_il7pjeXdOKYv#AS#qv6cXB0kgC-sxx!-Dt(y(g_PKw6
      zzB-P+bgb6;z)XR`&e)E9aK=Bx7yk$AxtnDZNEn8_yL-RyeCM3+yPLoN`~439uVN*P
      zCV{SXeN!JVJ4SIlyHb+&roK{?VFU#_+?}Fsu5xEx<{g1>evOZ^ARw*@v|4V0v`Yd#
      zb5)!<!~9AXF6pJUoOIFxp$Wq@oJoN|BDp9KoVE%wf&khzv?3BlOyI;3*%3t1-U@+E
      z4Pmqh#JDXp<&70-UsX)GGiT-X;-YRF>e+i4bk+>A>Yi()j+EN;LLuw1XZ1u~oV3%)
      z#W0>1=&Rb0DHn?imSH;5p1GNqHypz<ThL2@ylxITae~H8#>DrHiJ%94N@c&maj%Gr
      zlyhvuTxAI*a6rS0c!~Bf|4>}T_;iwPw^%;ku10hPw0u$O_H?C1%Cv-rW`qQyd8=$X
      z*=o1gh*?#6M8hajw5w#?rfboHEJ{aaefCkjqH$8lEo93LYm+gdO(X9Z8|=iv;F5}d
      zUBfv<1e#qY0+BVnG`&AEEJ_(M({hY2Z`Gs;q&2*Si6f*hs)$JqZ{ST;;$02zVahFG
      zndH-zNY*EXaY3NHY7!@@4bvD=m-jVX!YutX*hby4NV9t%!wsJG-lyB}A?CxF<BZks
      zYRD)WK~vsz!dN&EvoEd<SzOVO!&UlLzERK}5+1G}Hg_nGlD??nwDL4yt*onQuM6X0
      zEUANWK(2ag@Sj41O6b9%@g=fFCF%GrisY=aotGC4b%tV9a$_nL17s86r=y8~oGbT^
      zhmxz}+3H@~_%y{R!L=i`3oZ2s(dAuqY~$FLoADg4Q5R<lL0mu#Gw9-zR>{F}baNfR
      z37qusK4x?i*OSA4q5TnhmOEeA#i_@shd4I8gZNSvx08s#0<V`@;|eiyE_Qb%-@{gS
      zgLs+fgUVX3%2~!J2BB178$(shh@1Nv6<@F68S;51k@67Ea8-LPirEf^ANUv{_x);3
      zev6+!=Ifkton=K&+4$077GKk4yGBvOR}^7&rDy=J`HIdR<a72g+AVhPc0*1)YaYh9
      zhtW)op~Hgi)Fd~1$%03@-cqrH^M}iS!<=s$SgH^vJcNJP`ev?~)DGVM4#BO|a^}y9
      zoOhmJdVcijJ%mP|J|5Y_48IawE()9v-a}VUa1S2{JV7=!yobvH+zC88_5HJd3G~qx
      z>udZp_Y%1meePOec82ePA85>vwBs(He&P__ML&M#sQkia-RJl4SGMXtX7K>?_{~)?
      z=^lrS-;NBHIJW#@Ap2!pBYHortlXVO0-xYhDjP$bgLR$bI*893xE5?Mh!2Ul-O#l!
      H+(`X@X^nfl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Observer.class b/libjava/classpath/lib/java/util/Observer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ed0f59caaaf55155993b5c1637456d7779d766e
      GIT binary patch
      literal 170
      zcwRg8Z`VEs1_nb0PId++Mh2m*#Ii*F(vr*^egCB5)S|M~B6bEAMg{?}curzoI#4_-
      zHMxY5fvvP4C9x!xkwII-2VGZUQckM154s*}%`ip=uHgLAqU2P!%p9OrUYI3%Ahm3a
      Z42%rS3?RS=w3C&A4a8z#2a-$-901&}EGYm0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/PriorityQueue$1.class b/libjava/classpath/lib/java/util/PriorityQueue$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fe7f98518a5210b81efd4d467add21e23413ed3
      GIT binary patch
      literal 1094
      zcwTi>TW=CU6#fPlD7Y4+6s@hcDq1d53f>+{`qI=$gH_Xp#QI>jFrm}X-DEFK{V7Ht
      zjET{QdT9ch_~4@t{ulp(dS;+VtL$cWX7-%#GUsge$FHy702Fa21Rul1j<IJHJXf>|
      z4{c%D!hQD0;~q~HL(mvvD%>*6X5qos4zIf*1R3IgK^2$VhHKdj0bw@yJ_D=Jx^8)<
      z%Mf(8g_D{mnd%Uo1xhLlQ@D!^Q|X~unHqz(WHopgWJ*T_ry}qpu0zKdgFl_A$;h~l
      z5Ju$ctd1~77@}2S@>Oqli`(nQR*RGQs#P~yHNzHi-+QS^qYRV745W%=G_-9vt9;*8
      zdK+O(<5CDSq%{Pj<Fd4%c@A&TWGZMPovEHIDshL`MAI}}&n7d0bY^{dLGq_{WRN9g
      zhe~WTDK_@xf9Rmicdb1hAxK_F4s#@zuE?TA)-2Di^SeSF{g}NuNyMO6Oq1J7EyHm*
      zl_2*o|3FcW+Fd4tizFOfHtQ|R5oYr~cekyEj$63RFe3V&Me^vp$M6f7rzZJn1n3Fb
      zHOMP0=U7bkmv$Nr9j7U4lvXS7(G4WBxelV)FF2F+b!g}BAbCjdeK<$YxI#(Z=fw7c
      zkS{Tzc$mcEJSJ6q3Kx33WkSkWJljT+MzoEKuMyA={0Dv3pvrhPz!dK@T|tVnuBzN?
      zit#CVkU9A-+ido68wqW5gWQ(B|NberNo})pq&7=aqV%aRHmXYU21&fd4Bich=KG>K
      zjP>l_Q)NV#Ofr4O^{!xp^bSw3zNf-|z&Jh*uqJz~8VV|Vp8gJ?7BCf+N9`W2gc~Yr
      H8aMv{FLc~M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/PriorityQueue.class b/libjava/classpath/lib/java/util/PriorityQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ec78c17297984da3551708460ec2b8df6b2251f
      GIT binary patch
      literal 5551
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Properties.class b/libjava/classpath/lib/java/util/Properties.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..708973306ae9683447be8de150acf92e61cc898a
      GIT binary patch
      literal 12084
      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
      Q8ZF!i!|;D?G|KP)A6XO%IsgCw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/PropertyPermission.class b/libjava/classpath/lib/java/util/PropertyPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca564617da97504f1020341d6d73f97c3a2de7dc
      GIT binary patch
      literal 3334
      zcwUWG`BPI@6#gy*65_+<2~xoY6@@?)5w*5hE#lHxaEoG5Yx@XKco>qH_afrf)-HD6
      z-JPkm?Kqw358Z@L8LKmPndx89nRfaQ_<Mis^t(4NAq1t8;l12*&-uP{zI*Py`TgG?
      ze*(~it6mfc%;`6d8jUH(iZ<>@#uH}J8QNhc2Q1sR;xR8g0&|szZAMZ_%Nc6iVAxh<
      z%tc_9Z6+-vN|SBbju~?{TV}M!CiMPx6>7yBw|DoO5hv^<O=Cb!w+Kv6$92lMcx+E-
      zqkz~dP}&xc*^Uu&I*n+`EYd<Z?_KXWeOJJ<Yg4QA2^BJZAyBk;S7`SpIba!HBjON+
      ztflF1<g#MD9M5#Kh#Ilp#<Z2>zO|946|<am0)=&fPNKKPdrU7L5t#kJq<yFqC{E*h
      zF^47OBl}T-c^c-UnvQE-f+ckmGsv;DMGf0-33Qe~V4;R06#Gyk03VhxEs~SBj^z$g
      ze$$6~0lzc`)mR1vHRzZrFs<E+ncGqW-DYyP(H%7f^!9j!3LDg!W7k+ac{;8o(CJ4Z
      znq)021j_Fd6X^6}B~u=o2t}i2uMurc_NE5d2b+#X%!Jg+k7lfvNacQ}yGFxf64P&+
      zPHSe>JWij**Sz-0+L7z#i5UZ`unFn-QHAvyo<u99H;<%@sGXO0dOceL`=n@X8fKu>
      zhfPdGDH)WaN{}rYo<c}qiW6^-51Pp~!zN={U0@=o7f%aR<eN97tZ0v!^r3@mVx={y
      zPIpbUA6wBRA3HSc#4g!RiG&&J5m<UZi6@v`>=p^JTf-iisLzRKx~~~cY-rm_QmLqV
      zsa{D}PI>F{c4R1)NVy%}B6op5yJof*&vNr*+(X;5GhRF=P@UJm+v3jVcq-PDv*rdO
      zUUW~`PdSttdSJRKW)6)d8J+JJP_xBMpDryv%<!WR{a#p^7MwId!(l`zO|MBA)=a(w
      zGJP`9#M6f<R!t%z7xa)@NzKF5!8TLfmsz3t`75+N<>W4r9}bRskrJqUu%CuO91|#^
      zAtP(;1X*(fYIeAuEpme%*Kk7imA^N;LH#&|7rZzvu;?LBG`xtHC^l#Q_qfT3ttxw2
      z!z(DyXp+50CX+;9@k15HE5aH`L@kqmbKR7(cUsO76WAxuy*D+S#p_(|1ciREvp_*2
      zA^q30+IV;W_=73iG`>E=?vwY6x@<x+;A0IR;6olBF>`PXur1EhLMfiJ5$;1g=Eo!G
      zB7G-2HOHL&xPaAM*Kj<Qj8I;A8&pgTSSHc<1A*D{axF%syp#B?5?)?P>??WY!q2gW
      z((HID$J27g)7b<(VO1QjC%*lRE<-szW^rT@P5w1`ZlR*9aFh>ywq7-Yx#91yz<Uc-
      zU4{ChaF<749PTR8Yr|c|dVo_6-zfN{e9lu4yO>;<6gvss$Mf6bTrZX*gk{Q;KNfiP
      zG`h4VEwZeN`i2oK5B`QJqiF6L!K&N!!4W(<20n{b14DcsXGJGi%SqZ!DbVUP1Rh6=
      zs-XgF@dOFvw;B9azz^@ZG^LPty7WJ<FK!sdx=WZ+@41N$H*i+3%@~T5;iw*vhRe|O
      zjhUHZHFJQ&%^mvU;5dNIdTnqVz$!fu%m4((0aVE{N3pd_Zy&)nqHP~Wcm$od$0}aO
      z^#fa^1Q%JwC9d0LEW{P8#8uY!30iTDx6Y>&{5tmIGeqz?Quu<J+`u_}nWN14tTN}Z
      zS1Hqq-FU`TrVIP{+z;7X1vr3%YGL-lqhiaL+w&duLH&>zM(-U|ja!we%4e90j<BbG
      z$l)x@a+YBLF>)5Mo;VVU^9YhIr-w5K6yrh0Wf<)a64no6Xc#9sJTu0qGXl6vw4aIh
      z3t4}CAnU7H*4G#<<Qd|&-C>t&fo!`ssBOa?h>qa**ig^^f-|Qtqsa4BAwPM<e{j?M
      z$!+u(d-(4h;ssga1$YZ@lctmr@6aZR`76jJ-loduCX~eQUcyYtC&~G`mgdYd7ONJ%
      zr&wmCqp~cOcn|M$UdVIH#cot%ps0QXALYaRqhPeOg9{_%#o`7xt3-j4Z_yxgTJiOG
      m08x+wP?7~W$CgS1tZ)H*qqx8gd?`P^G$-DdjlZnCuKWjc2@^a3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/PropertyPermissionCollection.class b/libjava/classpath/lib/java/util/PropertyPermissionCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10123c26b524302ce5a9e6950d52bab8e7a2b190
      GIT binary patch
      literal 2452
      zcwUW_{Zmv`7{|W{?!K^I5f{-`L(@{(1tecU1)~5_mv~DQ0!zKH2e@>(yWV?Op^~g@
      z(wb_j>4m15nyDF^$scOcrHPrWU;Lqer2oSDp1TV)vZ+7pz2~0uyndeNIs4bW-+l+M
      z7jq$$2<)0NE*cG4&$Jr)opeSz-fX{grcKv1({@MNvgDY@RS25E4qw)lV_C=aW*dsh
      z2~@b!F%4@_I_l(f@~D955?I@jwq4J#y+Omu%7Ag^@JMfC*WUtbGRtOMfvWD6cupAZ
      zq-Ts;vV~HHWu4<MeMzQha6}+@#I#MXRiLycJ}97dq*F42Qbcu>V_gUv1S*Tzil7qF
      zG6-za5y2XPb={^dd$ZG{(mACB1ft#PF(zOz4Sp9kHE+^nd^O#V#)~1B8YzZaUC<~(
      zttCDfVIbRdJb~>35z{>>jZ~j)&H71=gz%)m7GK*k?1_eff{D(VF_}?L!q_PgcBqu5
      zQUp7&TP0sZj0LZGJ<l=i33>}5A@KNv5(uGgsm#7=lKD&+R+}@CotCz@>^Xv3L?ei!
      zLC4eBD-fEHUav7tP#bFEt9^&DpH)jl(1?Q}G_gzW7twJDhgns5A!}IfeHrwPP7!NM
      zd_)zlMTd^Hs*ca-XvMRHMd$3~Vj8Qr${2N<j&^h~YQrxU-HBuvoveX^S$Bz)rONKO
      z!g)eqcM+V$0IQ(7bUcr429?P&s6$19dZaKJ%gSH~Z2tc)5-7=J1hzh~GbyFnetn{=
      z181;li@h2$r!$r*-G_ATh$`cdju$b^f?3j@@Fx9^O{#-4I$pxd>`Q5<+#ypP741gf
      z$~hh9VQ{=H!}XGOO3w6+3j}JC$#^n^F;40IitSm`N=Zj4OC95w5GZrAqpp7_uu-Y5
      z_NK&59aDIPSzc5(kn;1ej#*Y7#cuVmb)-SmK_io4cATY}j@9yo2z@n2hpWaT?4<_^
      z5r({Ul9*?g?zE*2)H9A8H)pyFI78!UCqGbOX-PGFl!-0PmS5#gn?vas{&k}|?=>AW
      zpxwwoI_r$dW2U;dwm;~W+M|r|_F?t-mr#n$2q4I>5Wh+gMpRvq{+biVx5ghYS4vcH
      z)lLn;cST|W>l2Hp99}@xZEXD6*LcjARdySx*G8>I#Q3G>b?9pg-(-mDygjjraslpL
      zPvo$59%~n|V>tTM0(RZ0{S)!8ux1gpbWwk&_7B8+>T=lATOZw*!-08(6WVPwCvIV5
      zeGW%>+^og4yEs^P3(v(gKCbxBZ&4Q0dTwCb%D!5CgYrehhwGz97jUe{w?ga5p_N41
      z{e%Yy<`mZBH1`IHZ3sI#1PKgdKSp?eok1sizYAyiJjd#vXYofdhZL?s`pF;2Cs;^c
      zt$NVQ^mkIG5B>C(pymrWNpPJwN{{`7BIxyW0n&RckSb3u&m>TKGf#tQv@-JMd2Ck+
      zC@zWvx0|%;Dy`(Lxz=imYc~})MW;ZH24Y$cgH3__*2p}9R|EHy4YlvH490?YQCS@e
      z(%Oolm{zf;DxjruINKDc3Vf|hEn;*yrj>I0d=9B!F}VP%g5{jf;X<=^<DVawiB6FL
      zaFMxOLK*wE9J8v0xqF%aEpyn1H_(JDr1~~5`KvgAcS!bKvbjdi*U9)p+V}t#KEefj
      zOwCWI@hRTK=REm>t1s~x=J5;O_sO4RJCoWn`CNf~IeviWldr^g>R*B6YuW5st~7d{
      z@vEWnDH&}C>u2FOWA66{h4WSzhJAdi#ttiTIlTJQa;8Cl|NH+me|Wk1U-zXh{|iUM
      BP^AC>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/PropertyResourceBundle.class b/libjava/classpath/lib/java/util/PropertyResourceBundle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f47155d1ceb63709d10100a6438c9761eb941def
      GIT binary patch
      literal 1762
      zcwUuM%W@M(6g@2)50b`j{NNGZ4@pJ{2#^pNLofmxWEl|Hz;0|e_Bf*%)o7GL>l6!$
      zkVOau#SgGGRgMXvieg6<f50#B5y0uuAX~N!#iplk_qnI<Idi+;ef<A5fFro6AtbPK
      z-uT@}l|9o+U3Q(KbiK+|S#rwmv^-n3XDq3qS)hLzRlh3`DOS@=SrX{YuA$?4TA*dn
      zv`ue_OtC7&bW)>svFznNR~m(Me1c4wJJYi0nT}o35EbaI0mo}Q0?otDjEtZOZ8|ix
      z3pB;z6B;@NHZ?jsf)2EW!Cf62(4xX#9evnHCd)Bq1lqHvEpz3<lyt8dQ%X`-)|ob}
      z3Bxs294t0_b0!t;UaN4GVM=YuS0&KXP%O`!GZgfK^v0*=<+LZTKk&se?Aa7?rahaE
      zuUM+$(yIPlI(B1^Ky+4mUrP8kL9j%>ev=iYvB8!`#!Iq7nVVzr6+$z1xgcFb{Q#oE
      zd2`k_ys}GIlI!6H*YXdg)qfb!aS%y*R5V;^Q~8z^1go4>YEwE6<A6YG&}WsLQIKqq
      zqXM1Fi6cg7E-$?Z`?@WP<M>I#3EJPVG#x+VB<-{19WP_af?vg^SOd2;P;SR+AyJ&d
      zX$@@V)@6PkuHy`TrN71uyQ(L)mM(rvl{T#795Q|nl*Sxa1|^jIPQIl&`+|=BI1uJ+
      zAcBj?YPeLVW!SMS@~MlWV+=WJk<0P~Qn73!aC-e;DoW}e)TvRc{K0+e=Cn)&FF<eo
      zb*U7;T$w%fj160Y4e=cf#783UH^_NY9k8|W4LqbWv5U>t#FtJWq;5WEO`L1k$T-ZX
      znNb8fXE(SL;<rEX0<DQx=(za;UH_sxv54-0CG<S!UI_ghyO;&cbF|Qo0^boEo4L|k
      z&BqpO1^n4I{6Kzz?byLlopOp8g$f6>I~QuSErbA-6;$CGRTz7*&!=Kfa4+U(#TBK9
      za;6G$NSSzxsA68ip@mmCLJ2=+gLv#24?Or1#{}NsmzNj}VUpolfv2B7sMK6?3Fp6x
      zN-km~mwfx_{lI@1UGTkBg%8mM;19Zbm$Q5H<39EN$@l32j`EwvU%V85BZG$+!9R5R
      zAq+giZ9JxnPkh0Ns)RsrA2H*&Ou0KaUcpsLJcAVSNb<~Ufk9Q&^%`n|YXXzLH8(y3
      DGTFFW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Queue.class b/libjava/classpath/lib/java/util/Queue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37f4e93fc616542fa5a4d7ac00a9fe4372e049cc
      GIT binary patch
      literal 426
      zcwTLg!A`<J5QhIj=t@OEE$`4?Y`6;HLhwXF2%fyHFp%QXB~6!y^WX#UP{g4zXj%@F
      z?Dy@?%+4H7U*7=w=qc0)ovl9T*yV|d=Z+mK)Ct`}8l7(9*~gZbxq?Rs{+^DlF`^Tj
      z5^nTrMd*doa?&7rCo~tyCe^vinBawPlR`G^dd-=LjCb}RH$fOx)8$<lNd}?5mwp7r
      zhIgFiXTkhQ@E6u)OMXp^)bNY{KcCAG#>2@=wc@C%rq_lVO4rdqMwaO$8nQ1>)}nAL
      g)D)`07rrZT3-=dp3wKJ~E%C#DmUt{qProMk0kp$eg#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Random.class b/libjava/classpath/lib/java/util/Random.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9af54208312fce3778fd78ae081a61e43946da3a
      GIT binary patch
      literal 2327
      zcwS{yYjYE26n@@hleFnV(>BFGTGJw>?Y6cBN)c#lX-jEJfnrOQg32ac(rq`pnB8=^
      zC^91;<2S$PAmV_R!3&Dc$Ype<`q@#(3*+c``{pNy;RiU@^S)V<P&1R=vuEG;InVQ)
      zv%6pY``H43b(jml!w{NP=hgPCqZ{pysphnm4nVq>HB>Xzz9%uOC7l5L3}KPgt@d#(
      zqpOB~Tum4nrDxQ6ZMSyR;r|_K*0y!kWMET-WBxxq$ROF8HcjCOt*`~wq?WOD%iI^I
      zyUPYF({@zTnN*Fe=IdJjO6ShI!EpwEw{GfAFN3$Kd6G~DtZ6NXYCI6Yiu*W^AF~}T
      zEhB=J3>C?2CZn0ogr3%R>4u@(0$?NvhNz4R)DTqD2uCa*)lF@8Hl5Hi6FF^_qgImG
      zsl<`4-K6BqaFEK;rQU4~!i&`$vy!8)k<q}>1GeUjlVTtF?)&5KztR*eieD+MYLQU}
      znMV)H2%v=UxoezMygAPI@Lw5SCv=C(vN%I2U(tWe(dgRObfCX^lGocLqYdqpN#yQ$
      z4)l|089|LSr`4mhTc`glapDMZ(-B_81K7r}x?o`3Ftn6vY|EswX|itn(WG|7q5hO$
      zfOMO6>8$P4CA7LDmaRMbJawTD+qv!`hU%u#qE0v&-Arxe<}zx&cV0CZN_g#2%S<tp
      z2_cqcXnZz^%9JZ^$gtELxglxiDUiA#PY+sI(E`d3`Um=Q-Z02!(Ts5`_sJ+l(C;n)
      zcW1whJs9(UnNK~5rvrG3VR?b>F4dWlaR@3^Fsu~s!C><sUz(IL&C`<oOon)Q=GXDV
      zdXi=HhFKYMI5=))Gf8bo=M2koBhkjeQBU=~^!Gu6hc}rBcsN6GruNf$6_(MN=!jgo
      zh-r}MSVfsGu^%W=ZXtXVt3DB{YK0IF9ZwMIvv`mqIkyfm)Cq5Bz+H?X!tnAP%1zWO
      zu^V`(fU;cNIZgb|60a8p(h7kbbdh*eCeZ8oSi6{eNE6>#rNqKm`$8B^&tHe4c(0>%
      zDfoF3_!<eiPy}9;2d{F$*YFv3!5=4ZzAC0DpF$ygJ&X?ZUJXixI-=9hox8fki)#qu
      z<Dw$5e32N|V*`ORbYf$!2n&*C{*)Ol3!#5b_IkUdE9g{0bvMw}(^4(fygWfi=}=9m
      z<hTfZ6ozu4pTY=*rzNRcs=d7Ub#2SSn`m%1*K(wa90cFpb6R56Qp>{S#XALSda2XE
      zH}K<IlK&ks`W`Fs1KIE+*>D?MC_jLo5Xa9L!!MY`uQ-U`pi(@CKZVL+>OJw#t2FQk
      zHVbtM?cYF^#t?NQKMrFnMPBOi7Iaf2VVqu+JtAVn=TX=Eb+npKQXnU%V6tDN?-mVP
      zAU|xq`QBY3IEl{P(TiC2Ir{cj_TR+d7tyG5GI|M>(KAYjCa~*_9*UhfcQtp>QxiSX
      zTT?q7m8K6}SiDnPsJWUyGHeZfn;Nj3t)=&UBN|u>T3IVPSR1ymcELx<)y!MbjUA%l
      ztq6(Md(c6ghlK%*OkL@+?GfVn7z?pyLUqU7Nd54B;jFJncvW8b2zKV5)SPd!BGLZy
      z@JUy_OUz??i!kIo#wd2V7#m%TG9?rtkh7J$&5xEqB#I!)@(}cfb0PX&MG+;mN+^nw
      zqNq^xQW$%!YfJF#BD{!;S5KpH5AQauE2Z-kJ$J42D2qp&;)!cvOe#0<#9Vo5xDbvs
      zHqJFS&m}keBEIrhUtjz^jH!t477orueAX=_HV2gENMP<dCKQQ)8YwO?Y9mEp7Z6|<
      zA+tA7!QP_p=-X&y?@+g|U=w>6!|XkbvG=i$eIS^3iidd0WnM#*sEOBpBlY?)_=mZJ
      VrXxj>kNRJU8HxgQUl&zp{{t1vha><1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/RandomAccess.class b/libjava/classpath/lib/java/util/RandomAccess.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bba9b034d59f5395f90d51e5efa290932ffccfaf
      GIT binary patch
      literal 115
      zcwRg8Z`VEs1_nb0c6J6PMh3C0#Ii*F(vr*^{h-9Wl>A)B<mA-iVs-`=Mg{?}Tux$M
      xy1su>R%&tyBLi1(erZv1s#|7GDkFm+vJO3vVm3wwMh0dE2w-Gj1(Hk*Yygg69LWFx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ResourceBundle$1.class b/libjava/classpath/lib/java/util/ResourceBundle$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dda2d717f93c838b15864bb662f57c9062d05a5
      GIT binary patch
      literal 662
      zcwTi-%T59@6g`FE;RxdUjjyl(7AkHvCTbv(pbI4|*j1*H>d-OM854~QKgOjSH=4Nc
      z1N<oConllHZPVuV+;e-*z3(5dZvZM-OCiQEf5ET$Mi@wU<3wmL^gCidRE{eOl@u(7
      znV)<^s!QP<a@{@RR}9G=sbsKAL9t$Ims$+gf#(PtaSUaUK$0OxCE_^joe96m&s@PU
      z-taoyZE;^l?=R2_x>7SNHvadr%`jZx%2PKzFVve1tUiEL2&oMqTZFV3#(dH9u0_>#
      zgbu1I@NXDqi@%hpmx95!OKls}a0auOBU4)5lDBxVL`n(Kubld`kikARZfi1XXJXL&
      zdQ`%YsVgP?1D9(psM%aqbzDzNb$%p*uIHq%O2+;h05-{49MOu=q2bayMNtzLZ6IA<
      zDCA#|eliT3Zrd>Lh(%+esNClvgRJ={jS=K17e%8OGwd|RF+n;ElbHHa*rQC8%a)%p
      uJ?cClVLiqlzh#o<i+dw6-6wuaWHFBgV|>x@^H?&*n5hAYEz@mb1^5J>Vu+;x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class b/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db9c41cc3fd1645912b58112e03680d0f111f9eb
      GIT binary patch
      literal 1438
      zcwU85TT@a|6#f=hIUezXh-f7uC>&6-)Ficw%+xrMHF<gH?Eojijxcd)##jG^J@wX$
      zFHJ%-Jv8;&k7`<bbK){~fq}Ko+G~CL`@X%;kDp(@0$9ej8#Y4tSbwXh8ugNydSTQm
      zjcVT5Zj=kA5ow1f#;F?)!ielM_3}~bS?<`#*9k)f<CWep>)A?PHx0sAwu{xSZ4d@>
      zdd=9?PrB<8W3OH<m5+GcWm?mNc~h^|vK75xR0)Be-b{Bv02cLHF<&Y02<`CvW~p4N
      z-y_&#@k4?m!z&8x7*pZJFkv`bDjU0vlbliA*K=)}V#h<hS`yDz(NQm!YJ^Dk|8_8k
      z=dr6&uZsI;Pp_!>p#nls#S{W8q-L<Wwt~q5nG$id<xLNFgj6`;5?NS<8v`PXsPMFF
      z^C}b!Du_XIBmVoudbU@QK+-ZWBMoHFb`&g$fmGiSw-pE<H35A~g^D3I+j!H^O(x}!
      z^+;*ohmH74vG<ya+gK5xYhrwj1yuTv-fHLFUmK?cWly^Ns3eZT*Khigm?Ee<<+4$g
      zju|yK9uOw~c1#3M=b#W`>UO^CPWf{|eAqS_J=QZ@CL`;!I{Di0+z4kWjwGtuXN-R2
      z#0DS#yF`%&FfPYr1N@kfFkS?#;UZThoEX*;$;F_fg~=|8S5PB`-z{P7kVIRt2z1e=
      z+q-dgjfvZ2cAaZ>ncZOW4$h`JyMEvmfsxh{P0VP?CT6w8Cg!xDqlu`dU1Fw%1rD<<
      zES_<k<3|yrE!;e7V!2B&ES#cIIB5(D`S@iThoAh2(gapHu2Z0gbh<-2-65UskWP0<
      zr!CSXF5?xSFR^@qexIlR;4_IkW(|MhZUKCd_zrppr~M-F4fIq%CHeOrTS9bF3ST`(
      zN@!0?{ddmU9CjcnUEnpJ@F6L^SU-o;abfS0ndch=3c*dY@K6|DnnRExSfD7oF^>!_
      oV4rJ(Y^Y7B<H!N4zRPsIc#I9M+4#FDk+*OU;tmS^_wf+QFHo%o5C8xG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/ResourceBundle.class b/libjava/classpath/lib/java/util/ResourceBundle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e78dd748d3a97599f5f4d6037d25034a19fc1a11
      GIT binary patch
      literal 6232
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Set.class b/libjava/classpath/lib/java/util/Set.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a26c1fd40c1ce3c7e988f0ba21be94b94d454d5
      GIT binary patch
      literal 831
      zcwTi<+fKqj5S>M63y63D6hXmjT1_OrN<%^jCL|_4(D)!vYuP}_(rPIr_-Q`)0e+Nm
      zx>O{kK5S>snKPG8=Ii_8698`EQid3T%!tltZR%OP)@7ayaRS?d;?y409$!YxL{=h@
      z`xCYt&XKkpo4^L`_X*_Hhj3C|dnS<VS_7MUQ<o8tRHH3O2~(P!6DS5*p`t=miH_;l
      zSfn8o36nGG;smPpL_jee+oP5}A&~xcMU(PBg{~G=B=$C?9J7=moeWz}pNWbc0<tw}
      zk6*pHz^GI#kGa%yuw_BjR*H54zD}SN8PLVd*vn;OXNC=u3rEa{zCWz+;}h#0!?Ncz
      zU6;=Ny=uMn%@R=62s&C?)s4G#zM=LE12gbLAk}rIuF38#j?EQ3gBxE@pryB?QrD^I
      z4U50V%fSWWOW@IE@w#MC5G4`CAcZ&$n@gNQyaibhSBN^_?ySUj5$^?j4)VelU|-k+
      jC@yt}h)aR49Lhfm;p3oA1*(BPS;kNCoeA$eU@m?D@9Vy+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/SimpleTimeZone.class b/libjava/classpath/lib/java/util/SimpleTimeZone.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7009b48ce9b5e2d576359506ddec7d1618a4ab1b
      GIT binary patch
      literal 10254
      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
      PRanuY6_q@jxbS}fQDcC1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/SortedMap.class b/libjava/classpath/lib/java/util/SortedMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2421a067517409a0dae34db395ab3e24b7877c51
      GIT binary patch
      literal 669
      zcwUW?!A`<J7=&k0x`2WxsCe;UV$vS4@oF0`CSI!XP{MsFE0$DB%GShJ^WX#cP{yAM
      zOCu%Wut{g<`!mzs{r>s<0&t59juJy_BHo3asxY$sI8k!+BxW4@49(1l#B^*w4<|BE
      z90o&ujT6XF3*xt#NQ8<LhK^}HuKj!MI1E)k98ZNx6UlJ71#`Q7&*>3dc?pxb^5h3Y
      zd&TC85K%TQVj1|W6r-$&Wo~l$82xiJb!F0Uq3M#*A7mwXB$geFc{<E8oPvzqQ?D1P
      zy96r{Mt_Iv$7vGChcKd3YiRanG0)(;-rZ*UpkS}Jt@i33bvoTJ!yc_NJrRRm0Y`;Y
      nl~f5e(g!%yx=y-*BdwdHkN^26XldOheVXTKon>F=%bm_IF9)k&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/SortedSet.class b/libjava/classpath/lib/java/util/SortedSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6cb2646e0d1e73936975b561a5db04f0bf91c7b2
      GIT binary patch
      literal 634
      zcwUW>!A`<J6h-eKw1R>tsJPL@RlC5(t!>yCT$#A2KQNRLhm6z=Q$NmyAK*tBUki+l
      zKy)!l&)oaoeVzCD_5K0i8fPvl44o-|<3VPm3gT27F^+|CQDtZsg5tAD@GzQ+gl-*%
      zX2~uLLnBFFUb*Hb)eJq)zyHy1tr9ZSV>y{|lWD<lzQq>xABW+9%(W+}=hVErGM1*u
      zWzQ!ggZnJ_xR}EC)_vs+`)5>j;ZgBMF<Qn~70=V1c{VD#ha0;8KkqWn`zz8lT&l%`
      z#%ZP#aVHhMRLdH#@?wT48s4l&54O#>+S4M2*2l0zr$+mCXvHpeiRwfZG>G@GZ@Ed_
      c!hz*B@!>E12p!8^;^VTP&Pnlgy1eOq1I%rokN^Mx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Stack.class b/libjava/classpath/lib/java/util/Stack.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f5112344761c483b4158d101bc75071c2e25e0a
      GIT binary patch
      literal 1548
      zcwTi=+fEZv6kVsCQfP<!O=wXNfie{;sHogDfod=fK7b@ZB2L>A7-(l|J2mp6F)=2_
      zF97k`7alZ0F_LKFqhI1zfcwl0w6yhM&Sjsy*IN5Be~y3r1TcboUbq<QH`V8AByVb|
      z$bzXRw!DxS8VbfGo-mCpnQ}a<si`HN&1r`Icy5+~J!GhzG4!0N>gJM~%5zV{vGV(<
      z=4}^4)ug6t<}`ylG`Ped%@|4UgBx`+eDD)*Ow;*%J{{-TMKzw{3{5d3K?Ew%(A_ag
      z=7yGIXpEJ}oM31>@4uZnjcF@&o?Kj<n5GCRlh181^oMMRl&Y^s9>q5)!->Ii6GP2{
      zwyvvYK1-n0Ap#ks&j*H1836<td}=ZoP4P6>O@`J=up)KM<Y|#!1qL?((wZ?c3@xFG
      zB0M3%T0^W?Wb~n*LFP8)jFA_-Y|e`iLsuc`XgXtVTbV~+BzVT8hWRjnIsp=vaaDj+
      zr;VfqAdJH@BDlujcaUdQQ)Osgtti=uZ;DcKzD44=pt730LOsuMHJjM@Pbua^<!;Nk
      zgK=`@&+=-DIy+FowL&nVGlM>jioRgvvk87*6TS9XX%343hM~#D@$%T|qH(aN*`5dV
      zkRCVv3e-<{P({0!ZZ1??XPQ!4WwJzRXS92iL)3nugB$g<`p6ZCLBc#5=p@@tXhak3
      z&F3sF7ELSKD5l*axnM!B(n+9rmGC!ogg=*nKcV0?3%t#CbHK%^3l|Bp`P^H}+1n+0
      z>p?etr-YX+!d;RpyvLLS^zOocgn{Kl4E|D<51>d-ze1shA#v-Kk}F@)I~ubLbY}}i
      z`Z}pbz!q_(=&qv!1{7p*1Gyr-V~$>hxJOF#jyZbmH(T#$ncg+x6GaS^>UBg($<czS
      zI;)*8Nz^O4zb@)ZpsXtahrS2bNwnSQ2Tr5?Hkn7-ckiEpS6NT*i$MKlp#C$^o0Ojo
      z`i|m-tUduc^$G1^p*=YI9k+Ji6UJb2|BdS;xOei`RiLvAyh8)9O9T0VW@isUI``tE
      jC865}JsXHVOjrf>(90zHselDpeU2;_rmS_^De>KZ8YmjW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/StringTokenizer.class b/libjava/classpath/lib/java/util/StringTokenizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d68abe7072ed8d1505a7841f8226f38357e0bbef
      GIT binary patch
      literal 2332
      zcwUWF+fN*26#sp@v$tU=Erqo$rGl33?kt5?5icyOKo`4}LKP&I#H7PAWv5+caduXT
      zi4R7+zBU?b`=T#s(g#RbF!j>-YT_TD@zHpBF~&sWg8|R?&Fn>XH4T~h&N<(?{Lb&3
      zS-#%6{Uw0Ym<_<gaQKS$qSjxuja>h<Z5ig`O#Z5F8ZYZs020G~ah=o5#r~=JD|*Hb
      zz|YWL4N95CCEe0&BX2Tzm-7V%mL{oSTMVre)o>^K5MAYTa`i3fIb(?-Wa;)9F7m)R
      z27kgZ4LeCSqV>VCSq5n=zn}+kkWzGo<Yq+%`6_5Zm?7FArrt8g)3i(&raoC*n%Auv
      zZ9b=Su=$LZo7F6X>#k9<vj!pSnD|ecsH4bTm5t5H@S>ALJw_}<x!#5Q0_gr1&5pN%
      z`*EDuAg&hetZ+|<sM8Y)nh@ktR6z(bmsACcBlRk1#y&3fDF`6Qpb))9%Pce8oYe~F
      z^Oi2q7ev}Qj^aTD19*t)WwM$zVpHGIbZm^@JgndmJjxI-%msaA>auf16AqdBiY@XG
      zsz$SFG<!L<lF^s>vJ?WKA$L`2oy<=cGuc#5U(!vx;>M@@go4K~!q66NkdtE^Q*Z_;
      zf>bEZ7lfH198ISix(}n1R;OTV7PZ;p^5K>(@N(xAoWf~_Cf=ZXvA4MMEl@*EnS9Z-
      z%XIpL#;{K;w_)qnm}8J_?lDfv0+DPlEnnatiaeb!S{Z%Z;G5RAXRrErHR@^FSTr@7
      zA-N3KBdFQSnlCX?@0c7yH#O&_$47r2z8>^5(8`xcoJ~Ua@Kq8zEfSr4ms+r&-Umn<
      zfkYl;RpYI#-fgsPh>&~eEsKlGlw=WyND4cSIE*8Jka!^`(sj7$&QUrqok2C;+bEk&
      zAd4bfm*ZE-7Id?5NfF*WZ`jTID(MoP-Rd@us_`w{TSAW-FCn7#mJm}rONgu95>8eN
      z9-~sgYZUf6C47U@yh-WaBB*au@pl9W)k#_b(Om)2?SkM^Kk>#{rX6zOydrd9Ox;BM
      z1DskzvwCq8C#6dSfo%Ng`3Q&Th|v?_rY$_Mg~6M<-&XH^(k<_;3g9pe5x7RM-=)&;
      zp^eS~yf1(%PB|ASqpxR(q7o!aqzwyDqh#TLWzI`X-NNJRd)WV&DtuBiOS#gxEZSuv
      z^T^)J%vmpBqYC}``qpmXET`i-j+E^#Cvzq4GP+)){trLjSBoULn7Es;8zL;y;aEo3
      zKg00FZH(Wk5O9Jf3vANlw-CWLlK2!lZetmr(?WiMo47;Nd{slvhD%P7hVUdUB`4=>
      zWdr(!4)}=YbajS)Vf?0MX1>bIp29@k%xcrrjLS*$UBfizaooYc4$v0zm3hgV@D6*E
      zy!SzA4HIR0+ND*Am1oo1c^$!3#=OZ@4_iY-O0L0A_wABHYPcFzrt}Br?!(;;iuF^h
      zGu}|g(MxNPI;vey;vl_$B<&~a?Pr4j3&H-CzTe-_gWnOuALzxO=)+$`=HD2^4*v&4
      zT<jo)T|7s=8f}@*{K&G9XnVkE&28I5W0({}kWj!BNgk^50xpP8Q^8d{O*Z~h_KfhJ
      J#*8?h{RhZ^%~AjW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TimeZone$1.class b/libjava/classpath/lib/java/util/TimeZone$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdc1c6149b55a0046deba30d5cbbdc6ef7c6cb3d
      GIT binary patch
      literal 1134
      zcwTi=TT|0O7(Gi1DIr)}3o0riMNDa>a`9S35xg*yDl>HYz+2j`WtlXAWWxwQ!$*IG
      zzF@}($0wcfM>&2;sZs(D$?ksF^PN5W`_H%U0Oqi!ppPN5WA2+pUka;O5iP#u*nDbE
      zL7d@Y=&?+@S$tR9;dQBCfMGnedc5wtLLL-1T(K`K-sFvyx)hGhFt8+SA(t6qdalY4
      zUv(N>MGQk46eJjuhOqftzg6RI#jIJJA#FHy)2f=T2+qgGxZD;V!>Dl<z7kb;eQK7`
      zbH-_yr35Z94Er8;XC<W^Qi_TZTvjmJGu7sSCwWW56<lQ)YI3>ZI=kGJ2Mp8tiL#s0
      z6?U_fi<%O+#sC#Ja8to}Z}Bif!vt;-Cw$L0EgEM;kHXDusmS8Cf+?aRI<1Cj+#wI)
      zTjTFd-;!MqgML2Do*E?;Iph`0^xSu~{J%#5cgYv+vEHCN(9fxvMNz{&%rOjhi4JEx
      z8UDufw#()&QMEvq_PShAaUTyAJYYygqBK0hV+tc2r|zK3Rn$aMISk3joCPuv(xGSs
      zB8xD^pl&+8Tj#Gtpt#{~(rggPpsm|BcULXb^MbLGFYUVJc$8S?a@%QWSPeKEYIFz-
      z5{U}}PhUShus-@o@N^oa-2$y774*-1h599QYY3zhgmJ{lIZQjP6NC#$(n^9t>bSs1
      zij2{^$c%KljZC@l6RARa><HICAyH^!(#ZdU(uN+a$u?%w^G8_xfvl1L{IB11SWD2!
      zB4{mo6*k7OhjF-=giro`%;Q6dWunvX7)u}7pP)o&5+s%-JPq+Ihn{D69?sGk5lCZ&
      J{&CXBi@)k64VnM|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TimeZone.class b/libjava/classpath/lib/java/util/TimeZone.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b319aa7886148fdc8490d92e899de75641bd2e7f
      GIT binary patch
      literal 27535
      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
      UQ+~ks`zC+OFowW!#(bXt2fAkYi~s-t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Timer$Scheduler.class b/libjava/classpath/lib/java/util/Timer$Scheduler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a108b55ba47990ecca389bfabad97e94e0aed7f
      GIT binary patch
      literal 1292
      zcwT)|TTc^F5dMZ1)~+ikHw8u1R4v_Vy@5Bpa#66wXbDCWAC~qgtIHPm0+<+$8clpM
      zCK%%-F~*0!7!wje<AXk$_@l%*+XW&vZnAskoSARtJKxOy`u*)Yfc?lSs3Nr7GA50*
      z@0nJ5*c=y5JeMC61>X{mf+%5q;I<6=X8PjjEs^&W)DY@dPA~hmZH!uiP<_W2KChcI
      zt5Xge?(Iv`d7MzwZQ7=HlCU-LpSX?@LbRt?5Go>Ary+(~LL|{K5(9J6pkNK5E@Rqa
      z$R8gS&TyGReWsW<tP#U8<vu)&dSj+riPrK>nO4N{?HD$qMZqRQ!>Uk8OhYR+6Jl<N
      zDiCN;LfSNJm7Wcj;d*`3BG0&@EpgJjO~ZESt(g#xSu9j9hL6g=of?`@t711g6eKG2
      zVp$LkNvS~8^@<ZRYf8f&>}Abwn9~81Yby5PfP(#hwJdkn^~AV_gE++e^1kB;+morY
      zre#S{SkggRze~em93d#e4!gMNpY}*H+!z^tOv7<>b9q-dlN`J;(NQs40XMp7h0pMq
      zBaA|?FuXAZr<ZhIauug!!xWq)w68b@EKA%ptej_fqHj7cCZxKut6YGSSFFp-3bF_@
      z%T%n+5o)gJJ9*J>${A4u>|Pm5&<1Q<I6d4>SGWo;@T9FO!eg*JJghtG$Zs{jRdO=<
      z@2X-u29>{SdDqYTDqhv(7idX+9(A)p%m)6}G8W|Vzcz^&O`)F8n#<8>KqC-XGAnmk
      zj!QWwCAl6W@u&n}pF?wO<}D8C(wfH>UfN?b@1W|9*fEc0eF5<jnzG3`)Gc6F>c^GP
      zT0$ORLw}71{VE?ww85wn>SV(9uSm<Sgm9wH5~3me=+(^6#V51OBaQ@goCwxVoPvov
      z@Ng!);}G8jbPo}F0F54_k)EQBo*_=pq0<YbXa)!AB|7O9y66o~(0laL2W06Zu2Tsn
      zeS$}y;d73MG#6-;L{#2B)F=W6J?Ld^?(=!sN^uAJLha85dY{KYpr%xE5E-=o0kO+3
      AJ^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Timer$TaskQueue.class b/libjava/classpath/lib/java/util/Timer$TaskQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d1786b483a9373d72c4dd58ffa6e66243db657e
      GIT binary patch
      literal 2929
      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
      L4#9DZW6l2oG4V&T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Timer.class b/libjava/classpath/lib/java/util/Timer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00be67abe8e964892f4f09efb6002a0bfe90aab9
      GIT binary patch
      literal 4067
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TimerTask.class b/libjava/classpath/lib/java/util/TimerTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..879170e4ab997dda80a2ef91c0e4a3b72da83acf
      GIT binary patch
      literal 681
      zcwTK%&2G~`7@SS)xDF;iZZU=O(?Snz4n&-(xFA465l9gAzy)obrP<cCE61){cnB`s
      zcmOVNK%zq8zyt75!0g5tgjmb_X=mq~na}d~A78%#xQ$H@4T0r-c`S!zp_AcQAF6yT
      z=La4ffu6lcWV$zeGTB#g;h`lE{z0FXX(}g)67c8oOijx~O$Edwfqo+A#r+c%Q#MPD
      ztU&8X<vJt5eW_0@@j1aAo$BJQKyzz*SHQWKO;sCB^aGqn#|PsD@UZ0mtd@Z;2Jo>Y
      z&>iViJuVL?CbZ2Fj<Q%LyE512T!Bt8({q6fqyG$ghY@0##wxK9m}vPZSH~(X)bxe=
      zJpk|Wl6zE-`Oj=@<<#wGS((S`fi|w4+T)h-bv78h$=8L$kI#`{mS5F&RnH;d?(pIG
      zWOsRbX#0Tv;0t;K{|w<^1uJKWJ`rqSm3wGK756<#&d`I#B_hG15tp&XDsTl?E738z
      z4c67cXN3OSckrC|aGE;{>2U2st=*wLaLTS%i16C#MvLA`w@c4!#*07Ab@GkVIyNe&
      aA-N`nOQ+~#E!(o-o4;bZb<7)<b@LYr<9>hu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TooManyListenersException.class b/libjava/classpath/lib/java/util/TooManyListenersException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c09c5948d55114ed100ee50fd2315c82a8000714
      GIT binary patch
      literal 531
      zcwUWAT}uK%6g}6^*fdSk%7-8#P=h3TG=#8(V(mrS=yBA+Cbrqw9i#qLJqbPd1NsU5
      znCR{*1x3)q+>e=a&pCJAK3-=44p2!WM%cL(527(K%5C&LuPgMEtpX#p^n=sKp}aTB
      z(`h6K#R%vMJ#KtG5b}Zam2e$~bANeuLZEX(w(aS_2yGnUPGqv<&YrK|<5z^#k<!Yv
      z2=QvoAtc(~NLq+vB?Ak~gq*FkyqMe#q~8|<R}u=gH)H|9GTbjN6Xr$*gkAd|?wf>C
      z)&6$hGrrQ}X3Yt8OQCL&eT}3M$_?dyAqiH`oA^W7QK9zMpGy1TD7L}d@edO!NFv2K
      z&0P#jd??(KV}@@IITPn(eTwW$1j%u<I0MH>pp86NnK=lnC`6=ecR|o%WQa}G_oi6;
      Z$zbzLH)1HyQ45B!Dq}qo--u>5KLIf2a+Ux9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$1.class b/libjava/classpath/lib/java/util/TreeMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b987c3f13aba886528999744faf231ac71f7680
      GIT binary patch
      literal 2442
      zcwU`UT~`}b6y29hZbBF-A0<L7En-RuUxA8+l88m*BM_)1X-cV8C*c+bhDn`FP<-%z
      z=(}$`s0(S;wOsn@ukdI1<nr9fFec5!uI0*td+)h>&e><5bM7C1|NJX}DVQO&FmxYi
      z$6BId>qa7H39+F)i%o@~F!cO;u}~=6mR7X0!e-$1zFv+^F<i+sewwWmXh{+(rJK4v
      z&(J^I92U<rD2t_C(F%q(6+!R_0(ebD2<;4kVF|dD(M_>gIVuP%rxgsr(3L3_H6yQC
      zx;(o^MbaYHKGCL#k5bmZ6pqVu1X1*c@H#_pGiEBfahV~k+rrZ9lEn}mj@NijyLNKi
      zn$`DA&8}GFea07*s<FusOQvm|q;lEyWG<Ue&eKmax~Aef1}LUhEQ)eDHp!6qFX<Yu
      zlC9)sP{mt_k^V=zxh_tmSPsz8%)P|D!htB-6mAH^A>3r>Y;d9?juE;rN}r3ey<!QC
      zvdHagCd2q}qpKYs9<fcTs6%E<#dwvB_63m%A;EC15ii#Zu_Bnjl&t?Ph83Uulj&vw
      zo7rU#1)u6xnR>Uk8HhTAI1;dE2+fl9m{oCGHet9}GHp#aWpDWi5Z?(QRX0UmiQACG
      zyo&d5mlW6&wo{JF7cEj>kSN|)v4}Z_$e}n%n_F}%WSy2&EMtWsL=GfVhA}@D&8skk
      zw2C!MQ--E)NKP3Q8<JC)T;?^SLeqB-_e1!Qy4>H5iY-~j;ITx@3C*c^0MeC<&nlWh
      z(%keR<tG*cD>1YjiTX+PG?RrmlsYkLxM=;HpFF#m_3N*gC>nQpU>InkODaduDw12`
      zsC4XTT~JZPE|s8as>*%UZwS4{ieyU_t0<OrNlSIFC*%ioOq-^#77eXj79<g`PA<c2
      zjl-Ik_0`V=y@g9=(I}O5b8kb~`=wnK29BtbLSmiQxwGyGB2yBR^tcA-#b+HI@`a_H
      z{0kvW_Ey@>qJ@4yWMuS5`u7~__jGE(C24bRsPudi9kf$vFRh*Ea_sa>x?XP4D(}K0
      zXNa7m=hXATrJYaLd>{6{@52>BU3IW;IDWn&ykt8o{k%ZGT+Z;Oa*i9BI@4%?OdG#o
      z;*o0(j*dOY<ab`&cIk)TK{ubn5KlVs2dci^_}#dHw=qpThUokb?OJG0WAEm4yFRCx
      zmvrHG5#kHJdELRB>*G&C25HTV{*L4~2nJ3^e?xL(>?gd-uqhpnpJTzfaPy$^2XjiF
      z@&i`CMU;T+q?2-n%@@diji7QGklF?u9)lDUe2I80qm{3qov)&Yr!m0SFv!=D;2DSC
      zbd`h4PwpNfMhx3Ak8M06jy;&c4%q@opdXLv3k4s!id9ihJk-Y?>JvgSeClQUmz(YO
      z|I2pp<!n1$R3Ft}tIK=>ZIt<a%6yA5&r;?&%KQOko~O(oQs&!O<vYmn$H?<1H7aa-
      zDr|cyta&OddMd;lR9N#=SoBngyDBIUPIo-T9<5!pi&9tZ(~dc@y4)_;aX_m=w}<}#
      D>i`uB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$2.class b/libjava/classpath/lib/java/util/TreeMap$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33e2fe776abc5c9dc2b53f924c658ebb42e204ba
      GIT binary patch
      literal 1770
      zcwT)}U2hXd6g?9=vyNHF7lee5kWv$z*ol+y(SSoJq>#F?1H@J&ct9F2L$a{hMZ0TS
      z`oIGc0$$(&c;Q1-NWA3%PzY6#_yPPV)H~~~NopHe_S`vh=bSTl?)b~se?9{kM@d5q
      zL-#dtQ)DW>X=O^Tlm&4kF`*&Ku;bgpsj}z0!tjgIXW;&_=_SS)cIE507As{MvXnJt
      z+NM9vus7K}ZD^4pI^$fCZD81<qZK@k2)63bu#F*-R0-{Q)0Xp<m9lh8qHIZquDoLi
      zYf-qSnulOi*&^2s)F#MJ)HDB-0c9?Z9`tJ1$<W)(nT~F3XNZ};bcOG@3_Z!A4a~U^
      zC*roExnv8!;u8CwhDlSU;#_t*t7Q9i?85*N3&W6}ml$Kne6K$BOW8J}*{|bAB&f(M
      zradQbsfq-NmavyH=gQZl;gj4Tk{S*&bk>pR7{V|uSkCX#^JiTt$ZBa>*bF1dda6qe
      zd?e=S+5$6a9V1mU;tw*TA;ZvLpRdOMDiX&i#?>WHFw8bMe>T@luo<ozrS+=mdeor3
      z&64Q)$s;8imK3hKk4YUzRj0)a$M%J3s|IRNfT2q&c}m9#9A}7Mm$!2E0<B9`<dZsn
      z#wiAEN%~5LA>D|gc?kzGqvIDGCVRGNF))XU>B<%7X2AcejvRg?*(y|(*xjgWYL#Gg
      zk@2EaaSeIaRF6XsQ%2P$n&xa<x-*vWJV{69)pnz&cE&a=$20Avg7lZ2D>@cXq;)!Q
      z@bo)3^*2FTjM2-D(BBE`=upp>BK6e}BfO2GNwm-hh!3Ye(9cKc?`YP7c7+8ibRYaS
      zIw;a9R%j=>0-WAp$TC5rT8j;@A-;|st2GX;aDHdQ{#b2)A9hjJ?jUzhz;m1OmD@?h
      z^EdXYVGTb-*Kr`f2}(r>DtyA|#So69(jPJQwx+vH@$h@-=Jzqk9|ZaXRqjx~8wYR*
      zhsnnv&5uyjLNT>lc&4M9&-By(>cSsF<BuAi>lluQ9GAoD?pGYCb!4BRHL@C7rup=H
      zoPLAW=xXF!#j4I9V+((Rt^8@A&{Jgz6;yNviNN34n$}&)QRmAv(<-C`wT=)<uVZ$T
      za6h#L_%jlIPQowH$6sQAze0-tg%SRGLkTlABbm@hA6c9WN*F;tU@Tys#x9C_sKDna
      PV!@6soTuL?p%?xI>|J)X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$3.class b/libjava/classpath/lib/java/util/TreeMap$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb58f20661b6f6c59dcb583e87b083054055e673
      GIT binary patch
      literal 1318
      zcwT)|+fEZv6kVq+Gi@EYRVpGNYQb_X7e#asBt%JL!G|^^`gS@T;gDg*%uMm};1~Iz
      z34+nY5AY*=@I`&mKQQhyj9hGMn(5hR?KNw!bM~Ikzdw8eFoh)@F^0@G-{pl`AniiM
      z6JnJ=&CTdYF!UZLma2Z>aVuDMZChA@bR7mQ*phy3ilL`euTZX4X)%d4FC7^yF!be{
      z(}vd>63gy}NP*#uffi_K#BtVuj#h?vUJ=?#(h+O5ovQFEylM-E&XQ|!d!2hy?ISRu
      zY%z2-s5V1>625#XLdjwpS#;|-&(Ph>nSl(>F(hRmJRZ0nLpDErLb({>B%CVCO@{|H
      zkJNh`lIAPrb#uW~W%~_W!T<?#%M!kyn`9{b?|$l2W{PC47`TcYUGk1}9*7s}Mna;^
      zoz23->Nd5C$_*i};~GOporr;9j8MXMp9w!$@dPKUl`T%)9naTGJ#OG5w?=IX&5Ris
      zKQzOilNlWahW>iKTL0ci8WWgOO`c|0X>fkC*sNePTn$Rg6Y2Q@b+s9Z+D{&dXxV~$
      zsvmO(X4Ryn%WloH#C@qI$%tN>P%^YFI*#y`ZSMPm224Bb4b9~}$Ff~tI-9E^*m5@v
      zEaEQZce!0t#O_nWaQp?Cn51cs)0fEF+ttWZl%PjPlJFEobBNIoNRN!ZqrU?fZ)q1p
      zo5I2jok9D8c8Uy&721K$5U06~RHkWFx#Y+m();LoeWal&T>E<B{p8X67tlkjiy^l+
      z)OkgG<#tZ#yhoo}_Ha3|kHOL@Xf#gH>PJjGir~cP*a0Tr9Mx@AI@&j6wC@<weuVW0
      z4z;8D84O|u*U85a?Qc*NqnKJ0ooV*;nQs1bFWOJ&+OG!ZisM$uybY7qPKvTrVV)wz
      MQpg>sE@ZLr2emCFL;wH)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$4.class b/libjava/classpath/lib/java/util/TreeMap$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb51c9a5e241aa757b76e7053c16dbf0e7473185
      GIT binary patch
      literal 1913
      zcwU86+fy5L6#h=KVUu)ep_H^r!CKHJTuNzyRztyxR3n$FL>zrv(%;bSEW35HVZ<3<
      z^ugPUx3N>-eJT&tLE7q!m)HJL9naY;>xOLYWMF@LF5mgSbI$%AJ^uYq026pmM~cvM
      z)7&!08@^?aS3RYc&09m0Iy6G>e~v5bb>A~<{;Ki`9sUigK6H*Vm)cUx?4Ge4%bz6_
      ziV6PG8bO<Pud5sghYV!Ukw+Sx26P-Iq>B=8WXW>WN@H_fc~x`WR)nKVZq2mUOwW?{
      z(5ML!=Gk6mXp)I&b?ajlKvr@n;DnCjgzmOj13h?#KovsP@|9=$t|#P6G1y9IXVl!P
      zwc(h4!(-^F#Gsj&O}H#LzPCM7T`X7E%Cr2_@f=~GowGdmG4dF|^U{;kgyTtltVo|S
      zHCve+Tfhqj2Bm-5n(O$c<w#q?G~0AG#;>j4R5ia``anmiW#kdTLnvazz$nIegd56V
      zRNI7O`vT)2Qg7VAIZP0Aj$Gks5=N8CB}_)5%QBA(1|~7Z^KmSjaN<d!!t0`eOTsJ5
      z)z(bA!OQb9W_0j43dv~(E`wJvvnA28J_#z)c*VdKyvlmjhYi!_o}Eb$k<>+A7nhLQ
      zRIS?=HIs>v!{l1GcKg=;=Jx;ZiV#jcp&PM~4o_{mTS|tpWMCO9gnZM~oJU{6)-*dR
      zo0DI48(vLawS<iky3a}izg8SadGoeeuPg4!bPOkU4?Jzl`72&<YPMUqoQ-AW-*B%R
      zco$qct0XeGNxECUA2yYFt9T>$cA~B>xf}Q-e>$>k&++LJQv3t*!y~`(zxyzL;kOiy
      zh%NB&)X7H|pA0^WwHrqRdk>C<DChYpzU=TW^1JBWi7-0EP9Mecvr+!D=;Nr9L2Q43
      za}in))A<Jm-WROQeVn>?0PK?(SZ4&rpKC~FI!<N}Lk9%Wr_kxML_#m(Oo(xpBQ+s3
      z@(+qXA(P%2`5VP$K^%REVZt8Hu8jSP^FO1P4bz0NUA*)Fb9a!@cG99h9h59^*Fm3i
      z$uE$jFZoXS3Mc97p!{&NL|9%<^O$7<hf%_7SO|L4hpU)ktk(mqROovn@>SSJcrzmY
      zS4e#B>BRdF5bu<ru{|ud2sq9C0e!;)zGVU5v4HPczz?`UKk|KX8<*)$Ow3#)W-byl
      n5s4XW6EhKs84Sf}xE9RoExa8}tT{_CYI9NE!74vB&aeIp(0q~P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$5.class b/libjava/classpath/lib/java/util/TreeMap$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fb5ff26535ff0489f28b912987d60c79244f4f2
      GIT binary patch
      literal 1456
      zcwTi=O-~b16g`g)Oj`#jAO)c!Y848V0$M<eC?X^cA1-J}bT=(8Ww6YU>68TH?{URK
      z4ML)cKfs^i!i^hUxbcH{@61pOEor9jz5C8R_ug~w`+WT26M%6ns%R4E+|qaTRK+n$
      zshln4ioO$1t55{G{$I@H%Z{xVoHgkPv^bkaIX*_7%XO|9x}Gsi!<iL`4mG$>tP3df
      z)`kp0;DUx`w1g2rs|FPp1p-41Xj?W+xmwxIOFO6MOH!a?*(&Izb=@}j>>CwMgz~Hp
      z6HikjO4)cRUCL|-QS_+j7HF@-YUspe0g)958jiGe$Fe#3L=A1$w-ak<%_y3>Q?ZG<
      zuOVnAx0IR9sJJT7U!NJTC&)1Rag8g#F3{abtt_k2TqsGMuu<I9aD!C}7A(`z4U>!a
      z-AcMyOg+tS$%2zfJZEr1!!QO(<P-3c+@mrr7PHQU+GfjbYge*oO2Zh&1=ON+R;g72
      z$wpBc$j;~ti+xAKU8G5T(<lk_oCoD-QyQjmPay0i;05e!poZtdiUeM`rI^&F({r)6
      zb21wP=lFATa_iI|3b<xf?1Ef07_a%DQFfza)-<I(U((BENh-%`*lON_*J+y91+!4H
      z%7$57k<O;Iq2UP@NK#7EeKGB)=7dZc5}3-MS12M8egm}QPeqXIA=*u&iGDzMc;r3(
      z9YK3brzW(q&Ap+)5ML0Xokn}Mwxh$fcjA)IGC?cf1&0q1K0w!gm7|62;%kk6u<GB7
      zK0?J@>=l=13W|$q{fPc&%oRAoz?(B<-)hKOt7J5=elnA_$s8hnrXcYhs`$|`p<5XA
      zIUe}3gqUOG5JP7x`sorxJ&;epyAdSa@VBc}uL#2(i1}2bE6I15c#Y=3K3kH9m{gcO
      z;Ic=lOAx;h62B1<f6yWRqE{Td(FQ!8YP1;cyU{|_i44*dXT~qevv3g#X5Gvm;*l$W
      RCk=?f(|rz)X;moh{6A<3Bgy~(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$6.class b/libjava/classpath/lib/java/util/TreeMap$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40db18b2c16a9390b5a91be116efbdd094c2ba59
      GIT binary patch
      literal 938
      zcwTLiO>fgc5Qg7%+&FO^nl>~ow1kfaNK$A^4*@AvB@}^VDdo~A6330ZY8M$B`J)GZ
      z69<qAl|br&3lf6AgqU?qYU;?cJv;O6<9BBL^Uv1{08g-GKx3%A;ir5%j-<Oi41_q~
      z@0wi$I>Y*9;rTd>0`5e8-*tr(N#A2AMkg|C?hs&*BlM`eCp{VMGt^r%>g^GO-uI70
      z84U9l=1??IK*fTAYYc^!5-bd)Ctk&G$08W=u`3vs2EN1H5f7wVr%7EIVOY+8rr9MU
      zdMMwE1ZkI1$Etx9hQ*xLLJc<<n9Wd<kqCI?2g-aqgSFE<QOk$&*yB+g5PEH<Xm2>`
      z?e`4aW@zM{srNsni3aYf&hIg-%$k<1rZMNZf|It6`xZ9Tl*~gv4jl1Pswr5hcuQ@k
      zrR{kl=({`&1r28-L(L!N#3~K^h3B|_D81tY5uNx)79Qa-9px!^V?|m0uhGl>J?zji
      z7U-v9)v7v6igdaSlqg@O=ovJ+0JF3CnI7k`KG90Ug32WoYEZjCl_HB`m0iSAlCR-<
      zO4+5is+BrtFwe03Vah0~y!Jh_zck%{6KkYePqeoZ&Qo%yG?i~?yjCpz9Ctomf&Iw9
      tDpME@J~h+Ln)!m}m4>umFtpz@4C#1~C?BGgXeSg<ZDO&FPNJ$~^Dp&Ny4(N&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$Node.class b/libjava/classpath/lib/java/util/TreeMap$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac2641db35b9b0e7bdb5a9956b6170f9d5ecfa5c
      GIT binary patch
      literal 976
      zcwUWCT~8B16g|`3Qd$-f#EKx=3d(lD7GG`C#1KsyDm=9A`*a!0;Ii9HcS-ttd^JW*
      zh!GQifIrH3XBVnaNZe%aJ@?L;b3Zb_exLmW@EqGYWEhG^{DjxyNcy#|65<UXtnY;f
      zA_tS9{P*l-Zx|`=Mf$uWj|aYZ6+~*pko7`8R1B=eVEW=+#IV%9UbD`S@5p|@qgV-s
      z(hammcembk>rJ9(mFypq;?#gE5opkmfsC3Aww>PgdC;%z_l|@Y)h9Epipx;2Q^6!K
      zcc?-E1{N&L;ts>ce+gCGJnrIN4n>CfiMA~)VVc1Rq@M@FvV|O`HF{uSCPfb|SSc!5
      z$YP3Nt}O$x7a#Y8>hhjX3t4D~9`{|Yq>j&%W^^crr2SruG-IMOTG9#kV`3IBUmp!F
      zB<#sWU+lPgW#I-vZC$d3P8cgsyp~$SI=@)eQWUm=K&Ty`4~K%fGqnuE+s5vT$qwCX
      za?O8Qy5VV!yTUeY&7dc1(od^{{%FCJ%@fL?Kz8OzY+Z^O`B~f|oMz^5oBRh-)tY5z
      zbL$)Cov&Ct#r@Q+q;Az&J;kFhL^4n&yPTB&PWB@Se!?O?V+Cg@;RhbmiIWOqjmjfI
      x>v)osFXJhpOoH?f1~v$nlEF0J9`h?>zC(Nin@P)Cct&22!ssPdsgrb++8;)A)%*Ye
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$SubMap.class b/libjava/classpath/lib/java/util/TreeMap$SubMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a50e686d5e4434d91776894faed0a1a0a5264df0
      GIT binary patch
      literal 5456
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class b/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34a4d3998ddc918517bcc66879dfaa61efc85dd0
      GIT binary patch
      literal 1805
      zcwTi>-%}e^6#g#BWl6G@5Hz$<z(!h=#R9FOt<)A9X&Vc)3gXlkU6R|f?PizRY>>YA
      z;6v4C#~<U1ebE=GVom6b&dB&<tolbep0g}TW=J0Ho_p>+=X~co=iL4Gzn^~va0)9L
      zx&%gUn;Yh2)wk@)WlyOEbA60u!B?K?yPk%qKr*ngP3P9+wbk3I=xgW}NHsn8tp%d~
      z-E}1(3IaWM9QS=^!7b6LZB~4N!}ABh7TuDXAqz)sl0~F!ZVGh!YgT1!N}&Is1KD<;
      zvmDDmFEEg8b6?1<P`EsWjX~f^9f!~xM+9jdNemD~Hn$SP5e#V<6zDq;K*v$^Q1)fF
      zly|F+&rwEn#L&aLr*&xPiIaau$1@lch~2cjiqA9z2D7<N6xsQN4jl;w&+5n_LCH9l
      z%{SvZo?yLq-g4ApwY;jlWpmZ0kg0jMXxb~LXR#h0M!7(gOdGJ)=25LKw=GepBs-mR
      zNoBxOKwC2_i+jz==H8(S?{jXMj~NXw3gnv6@~%^?dY*E8ng{EqRWyCeb>=pUYMnQ6
      zOe3w~EKzFuEV@h8;@X_8%H-B!dIo7O**P6?B)AjjbzHzKb)r%&7FDIfb9lN9?~qI9
      z4qe1+8u9|^_7*zkaES`BVcON8GY4pMh$}h@Y!<nr?$WG!s_bqk4f6t{P5Xjvt6QeM
      z<eR=~p>`E%CUi~5b-W=E-*euZt)b40s5|i`x9SzuC5y*H53eWKfz*QIC@)WMu%asA
      z?f!^hib@%wCDDx(&o=!Vx_H_HNfi#H9>^3ADUeL^n<8D(N}`XvQ?zr)E<*BzF<wW%
      z@d!^D<24+vW7s%a$EY#BgJX3ZHy+~II*cEKxX;mdkdPrifs`L2CM)QZ_mGw!VMKn6
      zlXRaZJBo@4Oaj4<v+N46r$X!xNat)a9k5R_@R4X6+%F0D(-8MF!u=dW@{0i1K$Igk
      za5D|u4E;S50oP1Wktk(x8qbHhoFyAUve&2)Xbr|UkkPHkRs*=3ujTy!MBg(FL8v)+
      zAq=w<v;`<ph+$g&#OG@ye!=vOM|f#>KlrzNbcT*z-Zl8Fjv1Eyv}ShjN<FX|jowFs
      zPilB|oAs~u)yu5TY&UY7;0DX@a7b=ZF&^NU{2n>^15U|p%*uzjB7eelS;O11j(6ow
      z3x`sJ!|NCbIou05%reMh&h#o}y0F`kQkeFlA(+PvGK;=PO>8zT!-FY*gC>7RulxhU
      o@=qL>e_={K#<ct!7vw)JIn9PSb>Yq6yM$$uak>-q%-%xke=tjk`Tzg`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeMap.class b/libjava/classpath/lib/java/util/TreeMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b720015355687268b6e15c9247f3d31d16da676b
      GIT binary patch
      literal 13896
      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
      W^xQ$ug9>I59&?`WJ5O7yp??AXA_%bn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/TreeSet.class b/libjava/classpath/lib/java/util/TreeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ee139a625b516dcb86e6f58d3551cce46b8c6d5
      GIT binary patch
      literal 5980
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/UUID.class b/libjava/classpath/lib/java/util/UUID.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dd44c7a07b8c3291d4d57ba15adfafb13170682
      GIT binary patch
      literal 4915
      zcwT*2TXa;_8UA)McP3;EArL~y5CtZQkYGhL36KnznwWqZz(znknH-XXGjrn186;92
      zLqU;R>;-Qum$t5ot%CIip~Q-|Rz-VzaJ4Ue=!4ePhpyI_($&>=`t5yAW+owYvS$DL
      z`d`2Q-+S`$f6u=IU?qO%MTx-dz1lvlIb#{|=55=$HhAF@2&uWamK<u{GO$;VSzdSq
      zD%GrEHuvc%LyH^tYXfoJ3*Y35+P~gRjA$vjLN;l&al4*M8)lNs1w^+%*?KdXwzQ<R
      zU5jUQ_uJ2uUV1ulxLIIU!c1Fz#!%F-(gMM_t`!YMN}!^rpzQ5ha?nh)3HaJ$aU*G1
      zYXwRp4ci4=>&-#xRW)fx(e?o5Vtx?Sm?Pk6SEu|Cs0kv3s|3n>jHJFflNiubTWu36
      zddwIt&}aw8&ZIli-QBP~fKtqtrxyn?8v)t7I*4)vsDU+XP~}k1RNqqBvRK@V-P5Pv
      zo6(aoU1{7E;K_y{8nH~kyU%u(7uO0bE4X!AGMyP2F;kX4xMf67X%_cv+#l0NWXFdU
      z0#|J|t*{ohMo0AU%CHm{KoeS|u`31UMtTa&`mB_Z9BOOW?p~LJ`Uv=ADscK%Q(#VH
      zy5bF83;<U=R9uUvr}48f($;V%?J)=T=HpbnC=l3_G849Ffoo>cXS!4`7}M&)q`hye
      zd5@kn?$=WRbRg<Q=M=o!dxBVx4KfZXBSCmZ8ZMXS!zS9aJb*R0SvrXpE}KEAncODN
      z+!92O4A`ugnMqnor?eNF1?me2y5eztNQ-x-hB65~Y31YP#jOJKrZbLajQF6Q^5J%Y
      zC0)swnM%=dDw5%}+7V9aBPl&iRx19j0c=5wY_<il9d|H1+Q^8W928i7W%ph#u}!k*
      z58_VgGM{DIivjdX=4-Gkh`Z#9KdJAx4GrLK40xeU77xX;$CPf5fztg1Qd*Z20#!3;
      z($&x{F~3K;eG#LS)Drqs&^Q|fO41h7vj`Z|Fu*OPiSz*5czVE{<43~TEgLzIVp2h*
      zK`x#VZSZD&zf`HaYX(3_IPDAKKJ1riC`;3pJpxN-0{Z2L9f^);*>&ff+;ZEh<Z_Jp
      zkZ$!jRV``kF=8x&c6DPNU}dc0dapUdvTs;R56iMfkHneIqDywJW0P1Z8}_b}UX)<j
      z#59YJT6$Une@FDPtn%Sol-IjqRRE9UJ6?R74pv*zdMuMNtkLFPJ)PEu^bN+4p0<Mc
      zF1|;cQ?)Ktwq@B`d1ZXf%%x2Vdm@M@@f0I5sOH#_`t6AN@C<d>Y=)^+Sc?ytJU^TW
      zlbaEj6?cW>RODE&?2r2)XUc7l%X7}27I^U@!!}iy&1PRFHrzSMI-iO3-Hs>`DBUZO
      zG`LEj_W#-;;i}@`w~PcQw8V%bxjZKejv=A!m1Os@!J?N^_s%wT`Bg+N3x>Rq-VEX`
      z9AuDXg2}9L7<ND=+PNTpit`MBWfHxU^>c2dd&ZjfHnGtnk^D{&7i4|%#P#HmMdL)A
      zUm7gZ3f{cXl9u~Vju$z-&yo6fT%o$Fd+L)Qt_PhI=rc2^n7+x7_n}{!vO=C<Ut(9Y
      zGAYjAdN~(+X4)H~xX2dX5AD-^wYH6q7Dfpr%qhN8umFBYrDjp>5(N3>J*@iWiXN4>
      zI%x%b{LbOdN{*VjE<dv-Ft>jk^WMaQ*VUngYy)ahBi)QzH7lLNGUXiZr+De8^2Tx0
      zHP)R$xN-3r)E5|3P%mJZ?Otkk4>gJ_MqwW0F<gTsN_x4{Rj8iSwv_#)SmubijpyZB
      zUE^6qT+gFy0!{rD%g51tq46!$SK_*CsO7+sQ+cto75n>W=zgj&sze5D7LG_E1Lv?m
      zM)uOORx%4W@q7GPxJypuN6*3SlB0T#>ho*$g|*Ux<fSwdI7DfOsl~$#$|IaVf(Rbv
      zljbOHz&CLt9#a}s*;4aPXyxh>2|ldm9$Pol(XFZJJ%|%<m!4{R7lM+dcE?Yk(jL}J
      zg*cq5OqB}GaiZf1s`Vu1<0&ffWRdWuyznO6L<NXgw4vP*{#SVT2Rtx=HU0Gcx{8hC
      z_-aqnS#<keK+Obt`zNrazv8xW^l^FXS$u6AJ1%g2XDD<IyF=m8&TwHA8XYSdj&&AR
      zT1Hp9s$7Mo)vgJM{&1CR9Qtc{b5<y5|B!xtk?Nns)p&{KoaFqEsr1X}#w)z|Ph$|T
      zB8AtKnT-m74`7HOl(;Zq5Q>8PqlBZx_aN~cXHP<mcfMo#r*xXc%Ry;iqjYv964_Ar
      zKqbs<$TyCA&mlvzD>l+@XMHpq3LWrriBrY%2eQ*A3E2lEWUsK6&4z;ZEIm5i{`ZOD
      zUovbT5G5ZnR3Gu>b&)CZF)jQA3H%BVa?cokQH1(~dDM@wUr2np=9V%~=Y@FG<flc4
      z-TA}cnDKCU`r$v$c=%90olnr$5|}sI)|%NP?RHN&_{bXDYn)zN<o6>txM~(2texvR
      zcyKzvKV$Sh$2|NQi}3|j`-_r)y)DC$AE5URGavct;I2p5D<Pf7%zT)&qM5LNlsy;e
      zQD&&pQ{-rmmvm0WW9M+J)l=;u$d9+WU&8D=R0VokR-kHk=~oU{;zTxd<7l<p<@8%d
      z$Ew|KXAqGCk246%f!7(#mjj<O2+2Wca-UC)oQ-20?E8x3g#5*VLV;pQp;^VELcwBL
      zp|UB$W=|1T?g)!6uEeuh**-TGt*gZMvmI<-80(N(S+`gvrCqBln2vTRjxim9OLW*j
      zIr}f(FaKs3a=3vTqonIew~*c{1a^|{A~i_&iV_y;9G{sbL{|=ngbU9LH%^hBCOuC&
      zAw2kq^djl+N&g_c_>A;((!Y^@Dg3x30{D*zic(P~{GwbzV6CiPVh)r4BxF&3T&29g
      zm#9}MUrGx~Swv0}Dz*5B)AKUTe#DX@!TfR_@x9I+RCA>}D4Q+hfx3T04SZrDDnxBj
      zKGfv%;gvk=;}j*ax^_m^lL^pKSEw?hV;%P3R5n_-SYn`~t{{DpLTv-3H&S{Ne^gw{
      z-_OhWP+5U?(Oh%^uXVIp#PO@jHLI8bKT)pnvx2_vX!vz%DC=m;8(44_Z>+OP=OPJ{
      zb&DiS)`cZZI@z8X>r};i(UjV4>vR*mq7}16J1WH*ED-Au79ChBqWLSyiv|@M>BD-b
      zLYK&2ERH4*IWLY#-8qc6x?Vz+x`8HGimP3A!EANO-p^`(ko%(ARnS1y3egRZxCMUE
      zgN39^L~qe85y@YM5xna>M<RGnRR|BY`MG+?2v*j~N;c%&&UH2f-p_{C95~Wm<9$%w
      z)HQBN-KS~_1#5vq<W7`{U6>>8!d$T%HR5j63a#i?o_wT~F_S(}MN7#4hd4r4J4h_E
      zA@CtDi{iJBs=*>vgt;=CU8s{a@uI_|LHQN%H_8XZS$sT=0l$+Ez7k$3vi&uFqv&t{
      E2PWDf+W-In
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/UnknownFormatConversionException.class b/libjava/classpath/lib/java/util/UnknownFormatConversionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ed847ab2fb6e16b0b827114ae110fb899ecb09c
      GIT binary patch
      literal 875
      zcwUWD+fGwK6kQv7vz}V4<su*)ifCz(##b>uh@!=Ym{6MVIJ9FK9p*IWf_|1JN)t&m
      z@x{as@N<m&Oq)Wii9Vdk?7h~keLX*Zef|RAJ~q;rAXHw9Q&EdTrE3S~jq%=^9nU`z
      z;kIW^r5`BIJbl-ey^t?yBna*Wzpl0H3O(SDScIuS`by~5;Q2xQ34wMAIhG7UVZxTs
      zkxX(9pwiE83<iWk!|G~by0!h#SEjo~NIg_Wg^vi+<#BkuMM!LW9ht@yVfIh_ainxd
      z`WX}m3&YCXS2k6*J*w@2n?)W)2M%)aZN|YY<~XwG^`z+#?)@$Dm}?kpE0&mduz*EE
      zCiDg%p;#V&!rVy|(^w`fU0{2W)-OF}Lg|khn!yTln#b}|-fmz;Tot&6pKNBagyIzt
      zZac{0Dk0xcM(#x?N78SKBQ4_&du<+y;L)%>bSA=M#oga%{Qnm4TykA`2_a<ny~uCN
      z9TiKi{Yzjoj)fIYc9K_M0`o{B#a7x{8UDBed#89Td|qQqBf%b^TscSnuyDPP8`U#R
      zpW$X7x2oTfJIB&t!R@2;wNm|r)elx-jn5gxyY>u4JjWdBC}9_O@d9@&W;NL^$NR`<
      l9Gh1X>sTB{u2~yMRz70&{YW-tolPs_3<yIR{;4dh`Ww5T*L45@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/UnknownFormatFlagsException.class b/libjava/classpath/lib/java/util/UnknownFormatFlagsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03a94ece9e703f4e1720e244323105b8f692aee9
      GIT binary patch
      literal 872
      zcwUWCU2hUW6g{_vf(TNPeux#ftrZHk#OE3xtP-i%nADQ=aS9`jPG`yPZ1s2eOEl4v
      z*hC*q{87d`3(`c4@nI)>?m2VL%)RsD=a;Vl?qMs18N$YEaVi>-Rl0F#-WdO_Y5Kv5
      zuuU!c;p2B*Ik3t%DI^Hqg|wx$><c}TPE>^XPzFlqjtoM^hpk5h+9Tw4eG^(?Y)9xw
      zCOIBdd7mL9U%D7Vp&ff`Vfu{&8z|G?A<W%ZM%f31h3YiD*&!r${hmx=p0M;M|1eUz
      zCxbK!OpY(+xiD`a!cg`+WxNdXC}xpG&iyTBv4mw#6@!5^J;K)CQm0DepdDvX%HjrA
      z2x;q&NJ6nXy@j>2D5h|WP`=>yBdwqN%2*jp8k)u`q2ieM?4ft+`uF<^*7v%uuR+wc
      zez2WE8O2K=+|D9{%Y=Me8Mz;w9LwN^IM&j&+3)gn1kZ@^xR|i76px_N{;!w7b0Joz
      z`*K7OG6#MXbY)XHGw&Z;w_N~M`Gm9l0A^4^5_61FF-r5t$BzHW4TaY$j0Q+>1*q1}
      zkv}S29pYO33=3ztKE%!XcjV4dJ}P)atbME1KV$u4?6ARWiQR!GD58aBJmvQ6VGV6m
      z@C<jDSseK?uDTb=>n7*({ZPZoIK2^LAX)o_^$!#4xwzPgZL%Z5*oIJ#Rd;^@9G%g<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/VMTimeZone.class b/libjava/classpath/lib/java/util/VMTimeZone.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..351461d5ab7610f51867dd037a9e1265482bceff
      GIT binary patch
      literal 4238
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Vector$1.class b/libjava/classpath/lib/java/util/Vector$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28cbc58120f8dda2e473601f7608d5243d5569ff
      GIT binary patch
      literal 977
      zcwTK%-*3`T7(JJkbwC9MZaSU1Idsr%{FslBB?d8B!nOwp$)*n$b^~3?ttqY9zoXB4
      z&}7RJP4wMA%J|*VF$B}xw)dX%opbJY@9#g~e*&oBm4*mI=G^>bmVD2$OC8?x95+|d
      zpfaR`b=wsE(sB2k5Dg0q%XjRC@Q2(rJ<Aac%%X9?u;2}>QLap~%~{<lp*2fb-ag6X
      z=ix$!L9IJyJO+l8ju_%`C|J^wK!!od7djHTuS3HkF`Aa(NB*$O-L~1axwLe8rrj}J
      zOU}bZRR*G}Ilo+m0;LA#=+JR_!{$RSyis6t8p9f%YIt(ngsCbW&!oA|#|3rA7al`G
      z@Cz^0Ag_F(Iomw)inXl1Fg@R;RMC8)-L7hQ!LWX3apbi8-XPRzT=e)y+1xmCSdx+Q
      zItnnzEi`{)dL~2m-T%zuEys6z{H-N>kQiq#N*-lD5Q4jP+Z>HJZMZmJKGmzKL#|Qc
      zec7{y=-JN568%H&4V*KbuF@XEBA@hd^|k@C5>=Gx1Qi-lMChS|1k!1F)N~^i8VTrx
      z-lM<Q0Ru=G+t)}MH%J@GHL~AmDS~BsCxZf#VjGCDO{~yN7E=ix;9-ER;!!A9qbiAI
      zj4NbmB(L!J3!>_!aye04kPNmprIeW{tz&~&&japep!l9PAvwmB;%6j&Aa`<um%qj<
      yTgC~Yr|JiazW4Rt>}&@~wu=>3oN_cmM-|%vdk4GpjT0tOnP{A$h*H2>L-{W@bIlY0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/Vector.class b/libjava/classpath/lib/java/util/Vector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7fd06aeb7baf83988fffe331bed3d24eb6226471
      GIT binary patch
      literal 10887
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/WeakHashMap$1.class b/libjava/classpath/lib/java/util/WeakHashMap$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc3e25f418351aaa14ead39924b1de736ef24d07
      GIT binary patch
      literal 584
      zcwTi-J5Rz;6#i~oC{_?e5pi|^F(Prqm>8mwr0Af*#O+dUpjcb&LwEm+8;g^PgQJ5#
      z%6M*R2tn;|p5No#eto}x0BB-Mhr&=E^GDu@LfdIv3x0dXgHe~?Z#Q*l425{<aCg|a
      z=#PaJGNcb}*A9;u)M~BAptZe$FrZ>7ixkofdDC{qd34to{uS>#f}v=77I%8ww`HFU
      zwQyty3>EVq`xZlHM2(b>y*gwq9wP1#t5h`?4{OzK7?>yBeytdcOE2;*acWEJ!kp2b
      z1T$nit}Fbu!-GJOe*VO@951llVONABZ=j<>rhi_Feb9N3pN#YisMo1Fpv>fC=M9-x
      zDijzL4a$HAjh4$)Wv3v@Im!$x$R`53iGZR`X6$r4d75J?GiCv+3G<ky(j`~_gt1e9
      nK}wxyiz3gl$i@_yh{&plwfIHrF}_3ydGz!Y(6&rb!zS<pq^oJ=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/WeakHashMap$2.class b/libjava/classpath/lib/java/util/WeakHashMap$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8690612995f6a80cf1386637860ac19b1120a6da
      GIT binary patch
      literal 2719
      zcwUuOOH&kA6#gy@(=fD($Ri*s0?N$r5{!uo7z3iBFsK*|nukr#1sZy~$xIJwUT%_2
      z{zS5K<HA(QV8trkX(fLlyR5RvGBH`je7C0=hDd}^HQndldmi68=ewu*>F*z&0O-YC
      z4J88g3&yh1ll3gS=bAJY&l{Qfabu~iPeVwc%0ILXXRc>rW<i>shOj{Oy2+>~(}w4!
      z1uASK<Bd38`i?;7*yc`^Jd`yTrRR&jc0WxWd3(*Ye9>`lIpc0pK#U56y?HCs)+^BV
      z8kfH5r1a=2JYYGNcS@i=x*dbqlt5_MP09)|Egd>`L{N$v9XnAgP#TR*MR-!L;|(+r
      z+^pp!69g-8{dN9d$uahSlogh}Ix0{e!9E<&uwS5M>tu8^;~+5_rYSR-wj%<A+pEFm
      zN`%phLmJuyYByETaTt}1mvWQCZr1S>?5K{2+T1l}IWmz=&B*jsW5$*&?wD&D_LPyf
      z)H>J<sqP9i{0GcFHniNFm*yh*5Fwl%9Y<7OBBm`3=W<qNrG`F%*t-3&>zLVeS~?zW
      ztXa!6Jj-=PZkuvR2^!v9qrA`RNiS_Vb3<9nPReuyZ{fIxw>R)Uuc6}vP6}wthMkoY
      zv#d#UG$>q=R(}LXF`&pZs5D+Zk4=^19p>G9aIjhFzN=#h!=$aTv?LvJzH2k1SGEGY
      zez+0k;;cZ^W`K$n&+8b)1y<B^^M?X8(M@yc#Xtn(n9z_Ah;N^{IxgWduk)Pr@<+V3
      z(XFXZrcL5K4Oa!4x6;)yg=;LJ<6pv-?fIV8ab2-8l(Ah;(fR`&AL1jnbH-O91zT@y
      z?J7c7H+2}8VG)^QFtNI~k>ZAN7g6BX3REWZUbJ~5lb<XcI@kZ*n*8wXSF^~{(S=$K
      ziyNwya3{0o{D>`6^jBbe1PiE9_tMd!p`1KR%aps!OY@1qfpzzzwk_ujd(tyJS!BF~
      z8g=Vf^emPIc3KXny<^x{d?x~jww{6hgpEwP*|aIoTI$YM6)AQra{+zSab$X!ACQb>
      zFZAN^#91=pn6{fCHOHkl?<RG8fiKwstMKWm+t7ivPf|Z;1*^$l8AANvu>eqi6~UW>
      z3aF}5GoPz4e><^@+EtXU(yoN>{qc?!?2fNuPdqMGQMZD|c*i3&Jw(e2+P|kp31WO!
      z`w>*6AL;)Wu75?GJ39C11s&-0b=kQf!q?PQXXoM%v6~)q=%&;jtmyw+bU#M#^kW>I
      zRtJx8Y!&_0r*b&Gu9L%=9L}xc;?s2~jeaV>Grd2s7cbC<KRF;?;4J<sf^@C`i66E+
      zBoXGSjC;wBXQ=DQVeBEUB=Ya~2k#+Th<l^7FHy>!x~?2PJ{f8VJwv!5^q@=WcRhdk
      z+gBx`X<hlrcPJAN*4IsaiF+@9F5n&VW3xp<gD%QZFLZu$cHpq6MoiS8N7Qm=*K;a2
      zVt{+6#Xe5V{kS5UIWbybh$=s?^K3A&2YD$;HJlfTt>o=zw8J<RNIIV;uJNP|rvs^n
      zG)U4SL>r0OpiRg4R`seR{>Eo03*9fhUw|G~N20T+td&7{!7()#xLEKx2y~K0^UBS0
      zR6fSS^eXJ9akXASDz1c7Krl)VHnvk7XL(L=gq_45(T}}i0PSM1C~jvVu3KQ(H$mJp
      zLEMxdcZqS+PlIkulS84KD`*MUN{ju@Arlu070=t%c@fiF)a?-$i02~lj1kW`T1A2_
      sn!pKhiLJR@gzHRzs}#3<54Uj#>b8{dADdQuN=f+5s>Wx0hPeCrKXIRnMgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/WeakHashMap$WeakBucket$WeakEntry.class b/libjava/classpath/lib/java/util/WeakHashMap$WeakBucket$WeakEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d676465744e9e3984c14bda59facff467f71499
      GIT binary patch
      literal 2131
      zcwU87O>-MX5Pc(gy(?uCEB+#c0CHktNme3aV*<!F#KuV+$qryg!GS=n?J0ZXWo4vQ
      zs9d@58*-rF1RQc8l%sr5MZtkk#fdWosa*IQ6y3AywIt+HsdlHgXZrQ)*E6Hv|9$im
      zfHU|=M?@fV!@6nZYM$-nu1ag`qE+2ou(pTUo~f;ENl%$`u2;FGqe~#6);pHFk-NNl
      zL#}x`x&`|7P&isG7l>|2diNGvL-GQ#C40lQyjn%lvgHDKy1h-iI($apc(D^DUOj2M
      zwl^(sHr09g{|Tf^1d*b=Y;?_**JTXE)WiXpaYWH?;vfcyS}I-QnP*JsFa&yvwksEF
      zpRCHtvbE|+uCBahIVG!N^LOCv;#vf<9jWb!OEnEPL*3fmg^O)S&tESvoJw~@Wql~5
      z!0Pw!u5Z>~OQos$7*60N9m4_xZ81%p<f@IuE5+i+g}D_n3Abc9HR(f?2qJ^5j!}VR
      zCt4;>F`9PMk2k6z)X7wv7PX^oq$nk)r3zj78HJNkcGi^<ReocW5_3mY_vX2qXHC3<
      zi8vMeI$Lj0x$P3p6PEn6W;xY;7F>(dR+u*NB9aH7VVV)onaE>CV5ChzI|vSZ+r$Wx
      z0-{V0@f>LAXn1_M6tBGGRcv>owT-?vucJU)v(-IQvz>KWiQ^Lb`L$@`GTx!utnF>-
      zt_z&%pmq~X-oSgra*C0b8R<$3K)_{x0FJzB;vz`j_)@u6S(E2&-qwkRZE~8U1<ZNZ
      zm6ch?s#Ya+A-=bH=oEx!MIg7I*v%SF(jKQxF`Y+}Iv1r!Lxe6rI?H6o$ciAINbspA
      zn|%jyh<yG`4-zz9Co4*0PiFKU4rlJ8FO$88!Mo&&;t0JD@wE6Fn)nhi@fDsW-=Ip<
      zgQIv3P!^|*;27B^rSUy+@(4VS7wFBYay0Usmf6AK?-d75(9KTqodWiQwE$S~Rt)(L
      zDUc}z3Zl7#!5?t^8|dO&=={|RdA9+wFN7RvfJ`aKv4EGsympXo#d*|#V}v-Tsh(Y&
      zmlci|NZA|UEbvIGrn8LLsOGP9Q9MRM{HBnTepIMtFa3LQvkX#jEY#K4oae^Fxp5^1
      z9sWS!CUNR`H6Zc;uYG=}rKmsJij&7=0QE&s%*5y~&~76)`ZKhJOdV6%hj>%q0p7Ze
      zBLP0SW&@Yjbtg){FxgQ`2k|F0=`Wb#ZyXa(Fh=9Jc-m0=L|FR-=2Y!`g`CF)RSzAl
      zfK(x<Z|Fx{TDgxR^QmK@_uV>{0xtAfN2#@i|1?xP6eNq{eYI)@*Oagky6R8h1Mn@F
      L!H4AYn|u8~EWop+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/WeakHashMap$WeakBucket.class b/libjava/classpath/lib/java/util/WeakHashMap$WeakBucket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb4a59c3a896e99703eaf3d9823aae305fa67a73
      GIT binary patch
      literal 1472
      zcwUuMTTc^F5dMa4DJ@klQoNv05VaR*1r!t8^g$wlP&G<Z<Kwm-%F=ZU+g&36z{|V8
      z10Rq?6JJgIHD2D0b53uRHdG&a&UenteDj@|*?#}?`73}0Ec?($2=D0odeU_aGx=QT
      z<u$#!{Yc-PmH2^MEDOg6jWD6SOx-FaZLy_1pNTDD3#%vy-hJJ4c^}QT+@2J6MA1nR
      z{F_F}(jC`k2Tv}~H<~40JA|2Ruhi@t>*<uvZKRksBZ;eKg^6jM(4RIe!^sd<Bb}nM
      z?XPLR<f$uMk?QnckLC%H2q!u_l4U4YZKd*31mMAiAkJfqu=L*|qIo|E<3V`QFVUqS
      zf;dMQ${Ln<?7k`pJEs>+RrE?xH}kq}$aDQtbGD5t*SjnZxIKH4k}!F8N>0~Kb+Fr@
      zTkPJ2M(Gn>yWwF-7$^znq2<`DBN2)A?52XspJSK*A)rk|Eil0Kx*5bRL|6o;CyX_S
      zPBy@Y7|&NP{+6HsqL`BnohRIj^c2=*j^u0vHY=`O6sv};>+p%tgmfna*DXufE2dtp
      zimDHbgizN^%+$)oUs+QoA)DT~-<dq$<t}q-BHF%dS=meqVXmf!|1ji_hmlV{MtvCI
      z)sH~)Jjg4LsKUfm8sfcX8O8|jADF?*`)Djacg*Yj5kj$$c7%%`75imrg9gwW^wV1m
      z(mRaMdtBlBJGDqma6Tw>RVk6^8YVf1L{gncA*n;d6ytFHW`a>8a=ISr<u^#{46Zk|
      z&MK{Y94$FRu}`>>jemoe4!<D!A{IYJ{P2|AA8h>zKmB6Kzm?qaT5w&imkUsnJJn_j
      dH*M3Z#0e!JiQ9@<7I6VfkW)uo0MrHE{R=%NWGw&y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/WeakHashMap$WeakEntrySet.class b/libjava/classpath/lib/java/util/WeakHashMap$WeakEntrySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8cc0ada10dbcb3d9dff9ea6131c2bf21f4298986
      GIT binary patch
      literal 880
      zcwUWCZBG+H5Ps%*^j<vVtWpH)3s|8*0*GHs5EDZ*G^u{UVEni}Hesb+&E1v+eiI3h
      z6iqbI&-$Z`v*!h`q)oib?#<53^XxM-_v`o9?*JZS!GT4X`ydX*YEP@q>N_b8wne)C
      zT70S-`(><?qaCRo*o4V{c`w?jPDG?RL@4WhmDbk?Q>~#)8=Ue?#Y#UX%rr*iEbbEQ
      zt?r)mK)4oQ3}qiBj0bRVolt6+go&1l<(uBewoKlNc1IE_t!^YbyCPBMoI7nJh)^GX
      z)j(ma%}&*^%x-9UsN%MRsexJx&;U0vO`s;hRaz!OcN0Rju~@jNnfo^!+~t-Gm$2@m
      zhWn<r2ZV(YJsA{g>UTvH$u#Tr=Kq04PQ>5o_L4}xQl?>HA+}-=grFJ6GTG{gG?m=T
      zph$}~o>7VaAPPe>D7I`~4qWzoY(0g=FW@gNU-0$?!8xBSOc-Al`OLUJLbd|N81D^K
      z3?p~=R?f1{UlVhe`tbXhJh|j3XZ{}rynBhC!JQocgf*I&_YJl8EaKkT6@s4y0`D(D
      n=wcRgIl-e`z?czm6?~e3t!zEa_BsQ=Bo@c3m}jd7^Hlx-J>|LR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/WeakHashMap.class b/libjava/classpath/lib/java/util/WeakHashMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f7f75bda70dc8aa53a6f4059db175bc9e5b7204
      GIT binary patch
      literal 6368
      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
      Tikf$jzP}c^#{WEq1AqP>s-EjX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/AbstractExecutorService.class b/libjava/classpath/lib/java/util/concurrent/AbstractExecutorService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a69ed7f18021619050e3ef3a521d288971241654
      GIT binary patch
      literal 8804
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ArrayBlockingQueue$Itr.class b/libjava/classpath/lib/java/util/concurrent/ArrayBlockingQueue$Itr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34448ad781fac1499a5db81459e8b3c1dfa74c49
      GIT binary patch
      literal 2191
      zcwUuMOHUhD6#niVV;eIhCL}-_9&Uif4~P>;8VbZM5R*D3PI!bgp$`p{D{wI5XgrQc
      ze@fd0J2qJ~Qh=zH%BoG3s>@2<v{heHtG*wLR&Ar6GdAEt7LKg(y>sTA^L^hr=iUbo
      z-+mXsalGn-6o_3nZW{4|lgY--oMjelTUkzg$hM7J!`Ym<kg?{*3#y<xQjYC|M<D11
      zWDRRBeqr{yG94eh0{gbpq#R`%PR<snw$zf7vaYEm0g)2$yYG%#B>%CUX$HuDGBalx
      zPQg|J+EkJ(zO0dVCX^%Kb>=hqj$;Cmu?iVexOXsPWt@aSSGeM+$h3fGBzH|!Ltwv-
      zJ=hz7h6Wu$G!n0HWSYMm)KLq60Ef`xL$kn<3iIn|MH`jEFin+r1w9V86hl9$!&iiE
      z*U?d)?Km5s(s2agZDWr>;xQm*c6WwBqdKY)5ZF7Gu~fRSIIHX_V>YX}l{wSMP8)WH
      z-%Cahw@aYAQd}M{?)SWrPt%aNb-qdyVa_Xafi0}8SI3ERxxIvAx!(K3kw*<wRX9Rp
      z#G%jV=*Pfz=m~*Kk5QCId$LbHKA~uD8<s<LSRk;|c-9A+xp1X1I-cXn^6)1gh6O^~
      zk?GuI!JJQK)glEXmrQlT$>gj6hS0#Wk~&6lma3JpOv(^WMN$E3R!XPy-N;m4&@slz
      zy#<TYQy(jrLWh<PZo~iEd+Ww#i@mm5%-vKzObE1X7eAHFsyQP&=@^bGBRpOtd`ZVN
      zE>j<h!9z}wHJv$;5s(i31txO^+f<_&25H>gjiZbupr<TL*&}p8<P}YtMgv5*+3qPQ
      z)4O>y4bo5~1`wi3Y4lXV1Ib5<u0_dHPPQ6%uhUb@_F$0j0kT!m6GR<(?4w<Q;w7!U
      z(by{Lqw6>jm8)oq-NO^FqlWjP6*NWZ{V;8L?c{yWDk67WfEfL^5;WvTsFLrYTE34x
      z@;(m856~hXpi_Q`F7nX{kYLb_qqGXdajZn)B(40dCVCg4H&Erdt=-;A?d4DM<FXVr
      zr4*6}q?F<{w+cWXr=X|)9(tA$bm>P0aa}=Mv}o^S7p6~Z<Uaha&rT_yl7!DtFF(g2
      z`2}L~OZ3REa7unt#-ndb%1Jy;(Zzb7a`}8he7MeIMa;gj*ct{I_)XNjgP|+y7};Px
      zAu2WVIPa2U!y3*o=XE^a)$gIGa|b<drFre%AS4|LBq^`va_y&%LVgRs{0_SOp7{Pi
      ze1Al{{0U+CGx7Ze1M*iS<nI`!H7S3?DDBV5KU^Il%0nDWI{Y|8r}#XfgwcRB&5*=}
      zlG>t$XG!4VR@J{QseEaN%BIuJa+!sWlhDZxcc6+chZDRuuVE_M+_H??l63{1=920a
      z=$pDXc)8=MPSbC*LkXT@`6sFVi&X!OI{6P8<iBW@57AD7Vwym&rs1sSL0YTAMa_#T
      z&4<gh&S-vDd6doz@!nECRZ?C@_sxs+&PeUJLOYFqS6%EG@`rn}1l<BJZ*}~Y{{SVe
      B`tkq(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ArrayBlockingQueue.class b/libjava/classpath/lib/java/util/concurrent/ArrayBlockingQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e9a1fccaa5c9f3b566cb02c3414789c109e9ecf
      GIT binary patch
      literal 9946
      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
      BmDK<M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/BlockingDeque.class b/libjava/classpath/lib/java/util/concurrent/BlockingDeque.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3561968972217745501bd313d3a2a287afe887c3
      GIT binary patch
      literal 1518
      zcwUWET~pIQ6unyuX{rKZiysIoLP`7}qVOUN4~})FOlKGe^uf27E;TewYO-M*f0_^e
      z0DqL@*=#5wO{@={?Y;M$bMLv^?e9N7e-Y6(?P^qEw035n+g2=G&vF9aiNlcl!g}ik
      z&cOBi@A$WvYgA>lkl;Mq?^{P-&bT8qnw`e}5Oc|{F`B=`C6bJ4cCYu|4I{y*X>{}A
      zd*&xb`mx*hZ4rln&l)G~B&mVdwI!_{oSyRVUmBk;c=)0xXvM6JVv+Ld?e7jB2{-T~
      zjhc*BFI76e;9(e#1n-SO=nt+^*)3>!*ezVhi96&UeOHatk|X^OP#5-qr*k$8bFv$w
      z8N-Aa97(7eOCJTEm$G(@seOu6H>T56SJ_H+ZH9apoU3V%9EEpqZw-}~pltdYZV}Tb
      zcY+8z#Z@UNqpFm}Aw6N?+~Y$umwC<y=!$`a?fMZik^4ic8D<B07x!h00D?;w+e!>{
      z(mW<!E-dWB&B2~*5Jz9}n>Y^Q(18~Z+KX47!j>d6>hHJTOfK$VGF80BEAK-!&j6D~
      zDvK8ecT}Mn((q<i@D6pVBX=E9g>E3enTzLWejG0#zLkp?fv?bQ#8u=Q8Rk-HWsdF?
      zRPH9~WtDq$zo4>=%7fC%3au7Y9-{K7wDK7K<p0xJdOpedUC+fEr7qV?y|gef%gni%
      si;Yr8o27G`IgO{exRv^OmY&b)MRIPDHO9R}yq&#&d|oBrUZ<IzznWz>5&!@I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/BlockingQueue.class b/libjava/classpath/lib/java/util/concurrent/BlockingQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..338b6ea0692b7399d664b11acd059a308eb4b096
      GIT binary patch
      literal 982
      zcwUWD$xg#C5FJAyP?nZ`-xs9^sF2_SRS%#d6(J!+;lRzLrZNO4a-9l(jRPORM<HHJ
      zDNDn0u<V)l-fWpXzdSw>(H5;c)WK-^hBtUVGSbg`f$}1)g);elKk#m)s+~q65)P#p
      zWi8L=s+K>wx)GjnsGCvdLv5*yI(fCqXv{tS&fm*jGU`2(HN{P&!R&S`CF|@8uCIlL
      zG>ps-(hElE(!D1_BLh`;D9dR6gH={WXdQ({R9mF?_)zX7L_9i9?7JfG#JQ4h#jeKz
      z{zFU|ev5`i-CTPjwCCm!2dpsgeMZ~vpCOZ?to<#sS%$Q@<5J<<9q^EQ(mY_WZmx`Z
      z00|nXvj=JePMwic)p%3_MpN#m@CT?AX)(sVSh<jl6*iEuXc^N#sLL_9_^aGf(q}=W
      zJ#i>~)HnQP`!-`Oqhg`7+dh|KyX#Xft1s9r*j3B{rwhB^hkbUa2Uahv4obuB`)2pk
      z0A7QzQ}Ab+$dF|YCm<t0MrkYo83!^!lL^QakZGEs`2U(k{`j72-t)B3s%O#KOD%gD
      LXT`o&o1V2-0k`qi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/BrokenBarrierException.class b/libjava/classpath/lib/java/util/concurrent/BrokenBarrierException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..136818101df709bbee82e57514346847633e1d7d
      GIT binary patch
      literal 541
      zcwUuIJx>Bb5Pid^K~Mz24=NK)1fmyfkOI_1Lu^#~<=o)vv1j(~j6cV}pbd$IrG>x4
      z-(j3vh!omb?99&Wd-LY)$Jgr{fCFr1ksvg0#e;C7P<f8)Yd11R>d@&L|4!<zFh)sp
      z{OHR2Q29EG6rpShp3o!b=YdcRq*1~fNE2{<b$UdgGeV)~>mU?590)Ix>EV0v<*@zq
      zNyxO7R$+&b+^r7?sh)o=b4X$-j~o^W%YCKgc{CnMb18<NB$WET%L0OBxSlmr;f)Fi
      zd;Nd7Xb~#A{ke;a&?r4>)d#VDCDtz!vSS$pVq|rHK?%7FKQgX7QSlPBzjgLw9=5<9
      z`M(L9NF&2J%T)pkd?@zHG0z=`GjUEgCMY~x$TG)_ZPrlan4bc$f|4D`i_XX$Mkiu)
      fqdCFqoSn1XZRYIQ3DqfTHX*)Mv1WzWEob8!g0y#L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Callable.class b/libjava/classpath/lib/java/util/concurrent/Callable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26e4dc2b1d5c383e666117ff51a23e77c0119ce2
      GIT binary patch
      literal 283
      zcwS{ry9&ZU5S)#PF=|xM);=}{TNNA8O0ZDuFUJuQj*G;L_-z(`fFC7Z#0Qv#h1q$q
      zbAMcK04C_Vun5DHomp7uM20+5yvTE*bhu<vvPcRSHlg>jNT%X&8>ND4g3XPAFbGDQ
      ze{n`=t}a|0b&{!*3y;wMdA<t4+a<ALy2u5=2}b)vncQVX&c!;BhV(xz#$}!m%n#G*
      jyG50%69_ewL#DrjIxM*6vJKxr(;y2iv+Wo1-%RHTfapcL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CancellationException.class b/libjava/classpath/lib/java/util/concurrent/CancellationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93b8b04e07053447332558b92d5a00d12da02a74
      GIT binary patch
      literal 550
      zcwUW=Jx{|h5Qg9DCn^QXH|+x5+JcCfK`aHNLIg;K>?T;j$aPTSAV&TYQzZsw#E(Lp
      zLq!J|7<}hDJ@36fe|)~a0oX&UiUOf`FCK-LS*5)&Her?|(paxAOenP$R>kJ{DU=WH
      zQbmcdne$qh$Qx)aBcX>@Sos4H8mUZ_(1A=+uCE721Ue<m^<$G-VQe6DCd<!fm(lx0
      zr%9+BD5LBlq1fpLgi=4gl{FMGUq=nIgauz2d7h1KWO5~Lv?MI~amWUOZMdE^OZHBs
      zgdP9?3+)qDJN|T`p-q&D_Pc?zUv>7&gz8A9sfcphUnrqAjI$(^C(6B{^{36Qlc5dX
      zkUyR&lu_Ya<*I-gKIAs#Sm%z%nK+kwW6Zte$O6Yo-dsn6WBnVzB9`)j{LYE^km-V>
      gd)s5IOx3l#yTzJzK4I;fnoMxFHJ<H^H*!t$3zd|500000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CompletionService.class b/libjava/classpath/lib/java/util/concurrent/CompletionService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bcce3cc72300af7a030acbcfe27af32afe4c4f5c
      GIT binary patch
      literal 855
      zcwVJaO-}+b5S>9_1;6kMZ+bCiy}04(lJ%evH6$j2+{@aKV(D&5OZ;sf`~m(b<LrtU
      zWy6}-q{+OQmp5;weS3d-1%L(|I8Z=18L=tztP#=+BNbY$xia2mG>#=VB2rzhry}GI
      z6cK7ES28v9?gk?s8iex14#t9l!0lu!F)7(Va{n~D-nPbS?juyXVyIXG5Uz8?n!Uas
      zELZ%bAhc#usq1^IRBER4dy-sxex?pJ`IC#HVNW#Ik(<}1+IkLooGgCgz!t*cchehX
      zxYjl{{Bce~I9@I}HxNfsB3!t)+3cPe^9LpJ_i*(;g)cwVZe(@H+d|S>>I>iPERjHP
      zoBi{}rwSHRWdwv3NKT19Y6;4O9YO_IO>t$8tAy8JouUoGMapl^DmAKXQw4wEoebtK
      L-Muv0pJnPFsL%Rn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$EntryIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$EntryIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94d83ba4fda2565fab38cce5ee46df6995ecb638
      GIT binary patch
      literal 1504
      zcwUuMZEw<06n-ugDqVGKPUdtvU)bbDfxWs|LSl%<MRXrVFn%oc20Cj?O1sEMzv$nY
      z$&^GBe}F&Acy4(a1fw<Na!*gs^E~ICb8dhB`t}3BCiZ1S7<P{J6TRqrrd2c?+wfhN
      z+g`CcHlOL;_6xm}eqwuW@4(}(?m4auiD5e=QtaozIK$#OaO7u*du_9uE-_?k;dnK|
      zlug_8Dh&D1plpLdsyc6Y0t^>b$he>&ig^_YC=By8)8;SzcTMir^`^xs*_vbMRzr79
      z@jP@&B3XvLkgC(gqr@efzxNoHGua7-aUcaGj?9*=d%jCzYk!U^*Pm<khE~x;{wpf3
      z;X2_2aqyZtJB9maiw4p%ZZPbJguQZ2kJsC-<F^Lz1lDj{#w~_YNQ$wtiaWT=5Pi#g
      zqUZtK((P99uzAc4PZQMZDmFw=>_oSGu3!}z(YGwaVdw#vWuEnjAz@Vct&pS>^<zj)
      z4@|E!8k$G{%{Fc^!_ugklX)sM!zC3<xWb?uIlgP~r>2lf&5#xZm_a?TZSGbrz1!to
      z8M_P{;gX`uGBv~uosh>F9ilM#9ndDgBVYNiQ(n<fqT@zs#lVtDadYW27Ntcum%MXi
      z?IJ=yU@n*c0yUTK<I-n(j37z>aSDR;0SjcS!Y0TfF4N9L2`MTS#4ZO^2FVDjm0TZJ
      zYu~Z@I(G&&e}<d1(tX@J4b%m(A_Aq4h)JIU^3(u0B##k!4tWx}KNKE#9?&TslT{ez
      lzD~PHDwg|-;^}nOv=#!7klYNcEo=wU0<?oYiXCMC@Hc5-oL2w<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$EntrySet.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$EntrySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f664cb31a9822260fc831c72f09e56b5b6505037
      GIT binary patch
      literal 1751
      zcwUuMTTc^F5dIEbXuGUXxr%}!AeR;>D4^JiVg(^we1MSX+qRy-lCs6^mINRCANuZF
      zV??<KBt(4h!5?LuS++}o8ZnzTbLPx^^Uch+`|J0?5r9EV`%xwkUDY@AXwEj$(NxAv
      z<t$5@b~NFcQ+jq~PG9esFl}pdLE3&O0`;d!<H@XT=_#A81S;$mBik_`&^>!O*cj!+
      z4b!m41R|GC>RA#{5}DUB2!Tos<)~2M!xasFR0;UHIiPyhFy(x1Eh()<J(-pQHM5zN
      zo?g-|gU_y0Vafu7m#pp0ftUvjTUxrEu>=~rdx`+2T|dPH7mQ_7w{sSi8ZH?WFY<W>
      z;)^q}#iiI7J$_sh82TS}1!NVCxXv>P5LZgGb;G1q>)ko0b#poTBDpG4cC6=>A2$VR
      zOHipq3tBbYMjP#FS=uvlQ=qQUN->Cv4s`l)N1*d^bTxFLoA$NL+UYDs>!OS4gf&E%
      zPJj}Z^mI<D=tI<xeu2>W1PuddCg$=@PES+!BEv$s081CNq54w0;JXc4@mck3t``*4
      zRC0mg@E9ffXo*zZl53d_$@7V67)4y5t3<b@)<Oc!8gHc|>S+deqTvzfZ7ENsrEak&
      zp<$e5uP$VAR!UA9Ose6+u=^QZK$|vAX(iHnHY;fyfr6d|MvD3<daM7XPns{Wqc4gG
      zh4@V*i+`j#@(0NpLK!`P8jkGH-yXCrI+dZ?i4=g6M~G~VZK$}48b(7c>L{w-iEVI@
      zMyL+QXoqNg8QzAvho;Zxus#)GX&%-MG`nm*QnbR~zsNCKKA_x}k9<eV9HaH_<CefK
      z+UNUzqNb0IJ$&qak8&mN%TtoiDbzr1LfL{}`GTPG6;;YMnw1@=aQFn=EzH&+?o#P0
      zwBw#Lie_qQn0!8Jhq21syZheV1E<YVkMcV@^MKp_M!CTB;VH)&=AnEej{C&%fH)pH
      z{8~?tJbrB+zdD!Sh&#R$53>@iIF}2@@@NBGeHV}O=f;0jH2#1$e$uC#KXNwz>8TV{
      e7Kw69jDM8C@Zp&gIe|$hmQgzJoFY#IGW7@MoPXN@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$HashEntry.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$HashEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..008edb97cc071d6d183b7818ebe1716804a7043e
      GIT binary patch
      literal 1373
      zcwU`T%Wl&^6g?9=Ph46GgeH_%DJ5}fTo7W>MiCIGh#Kgkl^3v@gi+&SCY56s@>gXM
      zAt8ZyF5sgOckITZq>F?_GUvX|J$L5%*Y6LX0NjR^MuK5=j~{R=@EzA`cV#>9JRyCn
      z9>XWR*LlkK7uES#`d&W`ona=da=F~Kwpx3l?K5bvM4w@{`EO*MA-nDDO6~`qptPM$
      z^5`9+V_*%2<N<esFkq{I6mN;_PIFRORJ%5DQI*6{+Zq+8s*ZI08pHF_=m?F8nb${2
      z$~MEJ5_O!ME!IhYibk(@Uy2+woHsCoJY8O?Y-hnRXCR4`LPY~v<P@4WFon|!T{dtE
      zDTe8$BgM1ebxU|VyyXh@Y~40@ZSFbBK62`Q$LTTTkH`A^!}!B7=NPK5oOJIQDc(Hr
      zJWjiFuhb~N7?bnZ!*{BiYoqsVpWv(gSBt;oGKV3z-3`39*l^S(<VWf%ik`t}NGZI!
      z%X>Z1OXC*9(s+I8dx<+URL7rf)P+@gb&bAuoz{dFgRC@J31rBo^&os-twiis>qN^E
      z+tc&|`OeT8d1i5z&O<^;I*aCeoHLgPxM0o?P%u{pxM&vi0WQ6xsD>*lhxmcdq~Qzo
      z{7UTKh~qm7_<^ewxf?Oz8buJINU1_fV<JRKl@=nUSH}Wjlg_B}dR&<~s+=P2!+eAC
      z=CFtx@f1tp6c**G>}2sH*kKq@f}`d?LvcowfSciEX()wRWoixbsPbj35P3vf`2!eS
      BR7n5;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$HashIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$HashIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f839fe1e943eea5b55f9a6a73b217740586d3792
      GIT binary patch
      literal 2413
      zcwU`V&rcgi6#m8@dt-YOC{0LG2yqEX?1f-{gg~%Eo4ODjj7cydg|w9xGs3237p>O_
      z4(+MEwSPb*?z!YpOE{5QDY>;$|BXuhGfLmA7iS9>y9e*gyqWjC_rCYd_|JcSeG6a|
      zUn=l1jBo3EdZKEV%87z$6sndb3_Fo-PUrPXaZ%qLkYmOcmTsGt0?yFsIF@x|E3ve(
      zEebZ746$$L#nuk_WsFU+&%iPa7o>Sb-zW>$sJhsWjZ%1#Z6k?U!?q5R4555!%h2tr
      zMF`3E5mGA)$(7aQj6{<8IYx%Dwt)y>x@{*<bhWHk>}5fP7-EwlXctSBff0sSi=YG%
      zOqGn1J;N~AvQvDOfv3$)5duTEicWkGh96f{bm1z4KNepNp$FF#^fKIP4OB%Rt}~pg
      zG!#%_7;U*Pu4<AposU%n5R|hUDij36G`p$dmP}01H}`a-Kt1osmJE@r?raFl)lpa0
      zEa>G`-73koYvhtohKW`a@#>tY?I`M%Mbi?qW#QID)U3;lhE*gmL>bYE90^F~JE}s(
      z`4Gl2q2MmVNE<;NU8uN+^OUsV0#2zohfoO9NGYInhFb)5=~VFmL54uVtQxjN`9#I1
      z2$98Zu;Zs*QJSribJ8Wc*V`nU|MGpXd&2otn|Pkva5olj)!BOkQ~$%Q8C3y2QqlMB
      zIWu1^6y1)`?ia+aT{4X@=5a;#B&(uBHYsR{9dl18SYo*T{xQsy%VJ9}=WX2<9_O5N
      z9>=nZJXVPKZ^VIA?CD1|8Kzses$vn(>E6Z8?#IuX7{Yn8Y8Av>NwVL4re;Sq^wMMu
      zLs)5gZz_U>ta_!+qg0un{uhGu3piiMyXTA~LD~(|%!delN#o7+1^RY)*PWg6F>#T)
      z@FDG7q}dmQ?xV3!8?57!_6C==!6SV1mT%S()qHjIYp*d-b1-hxx0|v6k0HPZ5aKs+
      zk<<O>w-IyVGl_&aG#csI!;l*#L8IIY5ZIkpO|YOea?Rr$aGg8lv(j*8SLvLj;3w?}
      zBfn!vlj9M_*6VV4ttQu#+S(EN*JalI?gp=sz5np|ub0Tt>=IQa4@I3r(XlL*dH-jO
      z%W`Mx1VA8E^@Eq_bpU%^n26Tvpw_<k9rqp{|4n<*!{eG{#P1aG86^vT2i<%am-#3X
      zd<-Le1e1IM)BGNCd=k(26u#p3QRLIu<4JtWQ}~Y7KhT*U`9p_*XroA%fE*_Akgyp9
      z?WBnUA3k?!YV6HAoF<waPq-XM8Z-s?EB|Sx(;lWHZXmgyqf-r;JaVAcX(rD^CDb2?
      z{D%3pH+cNcVZM$9DG8b`{BlYbb5Qsrbntm1B7+|O*b^_>l*QsnXYsWg#{qNV<S5RQ
      zcd}j5bcCm`@$9+ADCTJi<|x(@#d?B1{uDR(vM1Jn8_P%Xmftn12nag__231^zn#TW
      A82|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$KeyIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$KeyIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..930b0c4803ebad08d90c79edeac155da4813319e
      GIT binary patch
      literal 1138
      zcwUuL+iuf95Iq~aagrKHOUwOM8cHsx2?d^9<s~YjY6=exk;>b~tXdamjn->K{t6^e
      zB_8;IepJP*dx-^=a3Ad1oipdm@o0Q>{OdP>=XmCzz_50}zwmaVgRt#K(od8UQn!2O
      z$2UCQ-{zldTVk@Qh2lC=4s3=OIe8{diA9F_DRG)FF)U8=8!{OiB#0zKQSS$Ft;107
      z=WFQ^XFZUC?lQD;lNv(?yBB>FWiVWGQAVW#3v(`J;Zmj_NbxoqkAxcVQ7Gs;`jOAW
      zAy<L9pC)Z%mf>a2uGy)QZCi@3nqi^dIN^s}?zP{I4ur1>E$;+-lIuiKpP71Nu;m$p
      zcU|1WeL@X)Luxgl_GbeBH(+AQ^2&IKB?pffI+x|Tc#LHR>ywz6xm@6VHgy+@G0_<+
      zJ5i#1@j5UgyYY|ksu5stH>DJ+7xFk3v4aM~N<L%ME;CmKm2(*DG}6J)>#k;Z*2|F3
      za;C7G1u_eJf}ulOWTAi=IAGPPStt7GEP8022)jb3SA-W#rrG+5tIgISs^95az&yQ+
      zR0R7yuG85N3~>RA6lr9*NmaMf+S{qr8f8sQsd<PyKk(q&Upl)Pozl5Z?b13QF3_>?
      TB&}M(Q;L;Tp^hf1r^>BAMfE2t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$KeySet.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$KeySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48d0d953fa80febeb8118c9431481fba9915a870
      GIT binary patch
      literal 1274
      zcwUW^Uu)A)7{;H|rcE28t<!eu=BBgG{&7p4V>g`xDTrlNFFFQ#cNz~{MwUpD4)iOC
      zAP9nfhFvJ=1`1w!;fE66lV(}$dQnQ6Hz&{YJMW*<{`vdk7l3<MRgq#?+T#b@7zCDW
      zn66_EJWn`*(T>B%+~0k|UsX26>z)WyC=8`j%fr4Oc-#!=6+<@Iwfstxq1v4c+9J=o
      z<ygT6Lt|o7ZJR-9yDvo^4Ci!YkkydJc^xV)Fr=$eQ0Q8Ycskhc3vY|}ZNV_rbxm$>
      zbI+2`(V`+#W-un)JL&@EowEYr@xb*M%GFxJ-ig*plkZtO4i5$%Z8S4hw7#|3+Gwe`
      z!mu)V1}AO})3_$9&QT%0^+trncQnl5hKhNH#mSgDW-v=7ktX1lL;Wa4!?3xtV?68c
      z2{UNbUPy37$89W7-%rGp4+C>$f6rKGyq?&14}^5qbyU%yq{gwwc{8RhxF@a4I_}ER
      zYCU)0nc|TpM^`>m$FhVl=pDxqUfbrrFQ}I6aApj%i2)?e?QjNY(qT%|?}8PJ@<dT2
      zFX}C==P6o6iavl=Z+xe(W9VP$DTP9)WPtJ(MT&J9L&HT(Ng6KUGO0?Twj7eyXdkK3
      ze`5N1{TsAnT>Ub_dY547F^k3&WwSze`7S5@N4S1C;(wp;=VJd&EJXeXQ8jt#Zye#)
      zDBwc~C=W#uKt_wW6K-9NQSAs-h)}iP$S8;DQQ*e}un+?aF^~ov0oVSoZRxbnnsh6l
      bpemoo)R%@4Dx37*Cbg0>N1ZB0-M{}2mTC%P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$Segment.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$Segment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72ce7d378ff732f634003b0470686eebcdcadfc4
      GIT binary patch
      literal 6776
      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
      I>%tuRAK6-}CIA2c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$ValueIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$ValueIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a1193be9c220a3d1aa60b8a890daf74572138a6
      GIT binary patch
      literal 1146
      zcwUuL%Wl&^6g`u;agw@_zIeY1q2z&@@Z31+CMu#Lz@kxhT}<3jJC!r8#^Vb93M5b^
      z7JL97g}CEB;zA|dg?(r4x#!H8>+4^?fBXdS3{PDY7+&u4L*7Y@3_C%jf<$YfOs9Xg
      ze9Pm#_xzwf;$b2-jnLdg+J(dLA}7<vDY3+`FeOg&WrpQxenTY_i^xbZl+2!t>s^M%
      zAm5Qbae7iov(C`YO=^x9oPM+;Dqy(kp@M1^Ma+Acg-4lzRN_N284Eq+<518&22sGn
      z5!cf0Pm+!`%kVnqsptDj#vLU-8HS}s^H?F|YPa)oye|SnXk|<8DsB=@C(SgP!;x<-
      z-u7?@cL}xJ4Q2Fa`mUz}|F>Xc%JM6?j};dW7`m6`dU%LOWa`k~$M)s|_p_<LP)taG
      zp}G|%IuLK9ZQHefq}QwfgSV-a(EX6dv4~wX8CLUIW0*VFTLzu8A-&-{pE|p~mYrNb
      zLq5&*Y*iM>jO{UoF3nOA1<b$&tJUmK(a%?;hlYx<Ia<9UykIk}_IF%qwU1EyO4|Y!
      z=v|^BINMmHwIx{M5|$}a({P=tZltw0Q>o{awKe6|5pI3My)S?1@QhCROs9Tno$&=a
      VMLbTcR`G;lHC1S!h1!X7`wtE3D!Tvx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$Values.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$Values.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8342fe8ac70f76f63a231fc069dbd95feb823f7d
      GIT binary patch
      literal 1151
      zcwUuK-)qxQ7(KU5n>J>yPS>fMQ@1+%!!1?DUOER-5DQfwHVXQ78!y`(F_D|Z2mcol
      z1VO<E1>HcwKfpgq{BD|cwcSG{B>8f4&bjA1-~IjP$1ebP(KL}^SU=>ixf4gybKJmp
      zW2J;2IqhNjh=&J{`KwBgd$9;j7z|6Nln4DVQrwN&f#(S~l7Y{Vj}By5X);v1(`mPe
      zvn_oY?JzW^Ce?ZjMmu;RieNZrBZs_&EM{z&IM0x+YQSt)`r=9avM<yg?|Xt_t{b@A
      z>v1LZce-e3%M8wxd#7QL?}Chk;!&U&%GKHky_2pJrnoEjeICV%Hd;Irw7u7B?X*l>
      zX4w262Pb?B3%IKLE>J6>d?S+fI~JC4!^CxlwdquCEMke8B22`kPl?Q@<M6n@?>y}v
      z(u`ZR=UTX8;}%vJW=_C~BL)`ej3-D8IoA_hX=>d@RgcKp4Pxbrhf<HAJmF?Ti!j(7
      z-xsRw@h}wRC_l)aVRa<P$zwQ(6iqrCSvu{kRMH28svO-E6s;Gj+C+vfz^XUC)8iQS
      zSNh6emY#XSz<7%i)wZr-;R5Eg8ZP1zq2?28IZ@i8eKf}YiG^qNZ?KMW<;$4XyAdsW
      zs70BlZtl@r|0`(z5w3k6<G&x_7l!<sSV{T!({75I-#EhRxWI=*pgaJj0=inm?PO~j
      nODeVXua(+qES6>)A7L7w&ajh3BSGH5dV<v|%h({~AS~xEzufzT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap$WriteThroughEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f173a6a1104c0cec526c04926c850f4f91e88e16
      GIT binary patch
      literal 1272
      zcwUWDTTc@~6#k~WWy`WkseoD)s8-mvK*395EFm!jqv2-Kro_kXI%&5qyUli%h?i&o
      zjwVVIP4v;kA7wnVg;LX+^kHVsoH>{8eCN#XKi_@;SjR&RF@{G?>)0xW!f}hX@7ZAx
      za8DGsdg3#y-Pp5Q*~7pQywV8#u-@4AL~x=(WyoB3KdH4vVA(<%mz|@Q%Of*}G0||^
      z*);}pceGq3^4V}aM{F`2jO^64b1ko4Jg7CfErw`vRfh4hQ}-+p2ApKGvQw&5BfYxi
      zzvAOyxMU!XF&zpf4QNO*ESaMQpWJmkz8@adcu=uwE~QBA`nKg(t-z7@Go>miVR$@Z
      zZG+?!MeMZ<K7fKAju~eE&3e*0&#X|va<9^!Xme4u+>q3ZLn_P-3!X3~U9>dJGt6CB
      z?1!%V!goBugY7pqZwbfubj%?mIlN6N&0JM-nl*3(H+AB9(ZCW+>UEuq9ZrKXZ4ODP
      zBadYb1+pKFECVZ8rF^YW&~%U1xnY&YkGs_9Wj_pT{?w85%?_knm97lNbI;?!mTR@!
      zoH{!-&@qNWU$_7BSvI=kxLLv)5v0&JWyz$RMv`K*G$iO8k8V09=xmaeN~e)8e5Gx9
      zrGv|#>8@akc3pa@9^&c|QgmO4Vj8%DX&{njFdIcSaFrwl*GN9s%;0+OElqDscCMHI
      zR+RrE>1E7J;TI;pWA0@K3qSLP4({ybzYw5P+%23Ucewni2P!22t8Zbb?~qd8V_yBx
      u2QJeCmqC%B(2!#?0vGE8C*RV&w>0S#qD;bC$Gxa<`Uf;Q_mMn<``|Am`Zoyx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentHashMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4bae5273d718251bb80da1d5b0f4b2f620a7e8cc
      GIT binary patch
      literal 10684
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue$Itr.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue$Itr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bac7bf4c3363b669e3deb97e98b1d0938b7b0e5
      GIT binary patch
      literal 1874
      zcwUuMOLG%P5dK;Zuf1ORL1dW#35F;}FIzZ(6OefrV?aSxNJKdWx3xU6m#kN=)yn1E
      zliZTZv+|&F$pIhY3Z@F1DyV`RROJWcpX8dPXI5G(F$Z**ot~b4eBJ%c{_*#tCjcf;
      z)(|3$-!|9Ge8aQse6{9O8?GxHFFzBACCm9(EWY0m4UsH*u7(I<K>66Fvy^{t;kKxH
      z8oCJkb|V!%;hJ8}C3HJt-7D7?1!1DpK`QA|AoNtMCCBs{F8fb*>OXa3ws5Y{#K4eN
      z7-Q-G(D^>hb_C5f>)r>#BXoJoRy}!~kn12LN9dZe9LqaL$fr7SOwSV{GmN(fgdqd{
      z7|;>Muz^ABXLPCbyv{cV3>?HE#%V6DnNF1(5>KUHR8Bt!7v;vvf^ct`3$~C|*Q%yH
      zZ@QK|H<b}tCE<7nP$dC4K{S=-j!Cp{7|_ryr8f=q`O+~1y)bm7k=2kPWL`eLfgHv-
      z{zsNu=Q*5c)%Q})K4o;|F`<Enm+#Qkz*{o8wj{hV^F;<aY2cJ<IqQ7>&^oVGZl0x%
      ziT^hClhsypwPmv|qp0!SVtYwJ4a|*^U0CH>rBPj;wZ#g<nO(1nRnMw9I?iI4$>fTa
      z+M3XCk#Kl-%0=52OQv1%Oi#4AOk-FAo;7e8S2%sW1$Zd6mm-pIWE1pCt>IS1WlJJH
      z@WRfhzXQQ2I*xE>_=VI3b0*9@AY}JOZW~wY7vMiaj4(68yrPI8BuT?^5C4Wj(0MUo
      zf^&>lU;F*QfP4}xM|llmAK$#f(lp<Nc<;|-w-L`gM1t3=AKq6^ukp8!6M{ZRls-id
      zeTLUrC)2PC4l^KW$1jS%exf5P>|ZQJc&}tK4{&rFN!~_FQhtsYZ}A<ZHlRzz4#wwl
      z&lv!1<EZ?MX18)XI8h#Z#>$*jj<uBIa~uEs$zj6^+8G81`U2hbC1UgyM(G=VD&Hbc
      z-{B;Ek4gFg1^N-^=_g#GpHZYcxJJL=I(@Cm$oLSOWyE;sld7~)jNxtWT?hpX;T_h6
      zahfegc=xShft4Ou#nfcZ@X7D&Dc)t9dS#K%5RGhxH-oNr$t(J`t((0~7=)=k-Mq+>
      zw2Au-?0t;0Hy`5sQ#q=wAf|)@x{H3=Xp0*U;$Fc1CN#G>^g|pkS<0%2(;RW;X_j_y
      zNe&@-KWKA8QigtG25e%Gen*1t;UI0P90@;8Ge;D|xT;8Zx|!eC=!&*Qh4fuqQ&?ql
      K(kKO$&ixA-IHouN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue$Node.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44fca278caea3e2b6cf20eb6c13c651c879de2bf
      GIT binary patch
      literal 3245
      zcwW6$ZC4vb6n=&P$u5hjv0w{I5vyzh60x-{O++bzqLkW(<|s!!XW5Lnm~3#f!TQC2
      z;y>_%Z*4t(=nwEmdAxTvOgABLSUw1cFmvbL`#krVJNM+DfB$|4U=fux1_X-x&Y@Fm
      zhhDwtHhs4p1kw+St9rTV`QORf{kCk&t6R;QOk+^sf(oiT{$BCk?!I(Gfk7{n4T0Qd
      z?@>v>sCaw66Se~>klJ1&%b+hGQPARMLUanfku;`Eh|3f>!k7;aYECEvfu;UwoUqyO
      z+~SJ*_dtFl$?D2=Pu6RlP|Ec4d1K2-xt9_Ls7m=RbfrK2-)!TT&vY_nx9<5~xJ<Wi
      z=c{!4tK^)4VPYJY(s)_m<~b=^xQqz_)0aQ!dYg8P#%kSZwMwTMDq-OHd!_t&RVo<}
      zc*TN+(F}%obHzdyqXJpdM{cznyE52zcI%Q~N7HrcRVVOx-!TrCJK~Jl$Ms{mhHdKL
      zeAPq>Z(5i^jzMe-Ll`D4!*9KofOsS@-ktr&gCm3_U8G*iLj2vV_o0;_VbmF1N15wL
      z8X2+3SGnf5Ef_GVSYIH$C&LXjaxU8WenV%-&Z|+AcAZw_ID29tU5f9}z+$E>`VP0~
      zl7-u#OrvhIao_}U#jjN)O|PXh<?D}-avKNqdFa%MVJj+yu|BY{f;)85VuUj?u10cf
      zshN7sKB1LQovOEzM;-MC3mid9J86!@?V!YKCdP@lo-c|K`HG?%uP4S<_p_8Z?5Oc+
      zx>cI(fQJsh<%zx#3!GfQ+VFiDs1YYyX?!M7I6ErM62_&`QeL~=XObT`VVWLgioQ$?
      z;to$E+NEhXfDG;FrRx0%CU`#T{R_0u#`YJ;JA)UIBg;!<xv#PUmve%CFaCwGKQKwF
      zRPI%^p88FNP1EO;O7W1uw<$@5V0I|Y7Z}6mxP-fSO?mRq3|^;I1b9`!?9htO%)(Q=
      zQJ8y-S<ahMdAS(iOBFvJc_B}KP^*GEpX)lC*Jl|OJA=10-h#qw(TWSpYP`byV-$Nq
      zzgD2rk*fyHc0hTxNVWk5|J-X{du6oOh$8n6u4y9I6_FM4V4tDFpP2o%2i{TeR^-ru
      zpX;(jQ19Y~PJ2_O^{Ek<j`=&L3Ul*MaO;<z+%i^LT+edn+{AmdikB8ww%jR=y)vq_
      z<zsjH6-Duhp*TFj`_I)i)qzK$`>|^^Gz~+6$FJ4U;D&-^@Kt=MA=i$nS?pD_aYi-Q
      z@sUpZaj%+_{nh;bL^VyVQ+K0ut2v^*qDI-kCz`{jy=qSORkKa19G<AAd5W40p2DUA
      SyNfNAk#)RBuixyDc<>)&rT$d_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentLinkedQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1333e0fa8915d488c33176d3cae6a0a14e7ce175
      GIT binary patch
      literal 6269
      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
      LQh}dn$G`f2&Eb1H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentMap.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5159f3ebc5e3f3227e4c9f6a515805deb50d089f
      GIT binary patch
      literal 534
      zcwUWB%T5A85Ud7dcq-x_co8mcys1k_jERXs;$aB~Z^L9HOV-`ZIK#(r@B{oPWA6(1
      zSWGx{(pBlIu5`bDtlj`z;6$KAI9<r4^qdVNPbIN(#^~63x7&6sQ-KPhlg~vmo_mk8
      zg;rLeN@#zpd63XdoxOj)nZ2@-aM^qKtMZFXzeo}4K{$`4bw;ykZ!+>HQ@_tes2cr}
      zESWyr&;5xYj7}q|SaY?PX17ag9V1J^un{EAD18@3?A!fyu=7k$2nM6;qSbT<H~cTd
      x=CXsY)kB|ePAGF7@DD5e7l9h1I-?RAjGJg7`&S!>TmC4=KjyePd3U^Kx}VYWkD34g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentNavigableMap.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentNavigableMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3df542cdf201b7a886a8cc474c78ea117f1fde17
      GIT binary patch
      literal 1363
      zcwVKH&rZTX5XNUwsh|k{Lj@J%sm8>{lL<wPns@>AP~_lkDVthsiYYCLZ{Ra|@Bw@%
      z<8%W{fuh-vbd&vNXMX$bww>>v&o2Ntha&|N1Wr4&Pqo0e9nI{zX5e|u^|f0ueV~2Y
      zqAiEr(>Dbc3FLTzLtRUIY;~CFE082`{11j#FB8a*@}gt{$zIUnlP9%4xr6>36FR9&
      zIM)fJ4BK+4A9#$wmD;H3&*6}wRIsAa)T>BSUKnk2zc+DyrLc(8)w#_0)ONTTBgV{h
      zL~0-8Uxx1Rk*bUMyN+=s#X?3|ox?z;&3Yzt+qP@*YtmFH5)v-tDk6Jl-C?}O-VNpx
      zD2%a08LnY^Y35?c41vkl0Vg*))exOFx`Ai1JKMppycqB8EW{J|sMN~Suca9itIqnS
      z{`}p=6~rAUx{lq0zyc&-2^4HhY3wm6NMmdTRRUH~XJAd}Y}kV)bPCpm-r)J0LT~Z>
      ealH+Bp?6U4!k*9t)Wr$CAJsSx`0Q{HDg6SpUY2D5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$ComparableUsingComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd1678b24c61b15f7ebd4bc7ff62746b54f148dc
      GIT binary patch
      literal 1303
      zcwU`TTW=CU7(KI#tkAU}7J9L^wpPofh1N$)c)>Iwpgw@aYK$4y4Q^R>$zDwQ<R9|I
      z#K!1@KfoVl{AQs`q0p!gv-8b&J7>;(`|J0Qp8yVVs6b+PddffYlJ6O2NwY1@cO2dF
      zO4ZP8_KZQpaJ^@Iuv4}B1McvSslRj$t2;V+wxb}zkPJGR-0GHIbWU~6QxIiX8hgj(
      z3^A^GJ~!+78AGZuU3o+aO`~gZ&vz(UZq>;nYyAO3rZFZwCP3l!nSt^?)mA7REgP2M
      zRTv7{t8lY>=GqL~S*pLTvq*|m?e}^dGVZ8Y#1c`>=Grk3SrrOy3Ts8h0#t@X!?5({
      ze!rtTt)UXBhOKe4%^gFWN6v`%!EhOlFCqW`>j>?7Lg>sS)Y;$yuK5o*Wx95&eN-vV
      z#Vd~_k7<ERZ`lm#8LH=M^ejT(Tx|h6c%<Or#k@>utzs8h24&QcVR!B$P6J52#|-hN
      z?K_%&Y>3OQ&Ae7oR5PeG%hH{y$z4}>6%-lre=iNg>ReG6s^$8Vs~juWUS!;EC@KzU
      zmSkEtAR#G+i|iQv&JyBurV$Izw`hUJF+uy#lf-S>KanNVp2&YgDqlE9I=^?0<uBxt
      zu}a?*B9#3K5$Oam=`|LmH&`S8{b3pIVjT#qdjY(#1h9mSiLA{qD;{PEQjBu8LQ>lS
      zsdrQ*1*E=WnO3^+9S>xD4oO8t3+Zh@Br{CCL?jmw*_eoJhOu~{Sw4U(V2^g;Vc16r
      JD<c{Qe*hL;K%M{q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$EntryIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..127267ceda4f3b3738f93d00ef10b33993fd23df
      GIT binary patch
      literal 1420
      zcwUuM>rN9v6#k|cwp|ve6#)SS6r?vPcm+yG2+^dm;E$3<e@>SPE^N2Wc9zIb-v|?w
      zL=zvt=P+Jg!gywYYJsSm&F-8zd(QWL=bYL7{PV*n01H?)5Mfx{<@>xCNXISOP0tQ|
      zUwE>(-Z86tPOIXy<pys}Kk=l0P?o~yvgsR$F%&~&t3-w#`O0Ze&odM%|DRi;ycNfD
      z<SJ2S!X##E46*g*wn&1Z*FqdUCZg!GU?9OTP;or588qs`-{N&wFr+I@o4YmcJ8FOG
      zj49C!%ORM%n?(i0Jn>pG3}>=`pmYK$AX#;GJT3#D2q!L&TG@J5+NzaSORAb-3u%ln
      zEQC?DNv+V?qZY<6POM5+jk|%aT_d^N+bKS;?+RO%ObWeeVFHs32H)Q2o=t(#Otxm=
      z7DMhg^;*3xeQs-(s?%t>qTFZ%QZ-O(PhuK(49tW(G)k|9S*0|(Ck{+ZA**JWW0=ic
      zlzY*m4gmA$-e(x<p6x;FY`#ljTi6){$)c5E@N8h`n|Du5=_-R+Z3ezAo;r$e^it$G
      z1;AjHJx}=SE^oI*+rZ<lF8@m%LtodyV|WpwwzIP4RQk$aPvB|^^Hg4xekClGQr{I>
      zYDeD{`IBTlM1(G&H<y10GnYSx^_I2~^wYD4f{^%v0kSP+qZcV$QE;kZ6g8-0uW6_^
      zh-vV#+!0NY9@jT=?{VWJre5ZcaJz7f%%SF2&}j-r;w$2bZ!i<z(VzICX(mq~PHEy8
      zLLMVTXVSiaaU#1*{vldV-pzI16%k3T5$^nHWizxY$#D{~aM)cF-2>XA<lNWR18N0e
      O>ZC_lBmpP2E&T$$=5fpb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$EntrySet.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$EntrySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ddd5e3908954d30206de9eb798bd4174ad62d607
      GIT binary patch
      literal 3244
      zcwUuNTW=dx5dMyxbaU)&652W~AtWidX=3M66G~}q3?ZZ?&83&PF0|a%&XR7s*>%_J
      zh*UgqlYk;2fk4nAZW8d+hgO1sd4TqX2YwV{&U(FG*IOl#EbrNwbH4e`d^5BE{`co!
      z08*$(2r*1vR@Rh>immArMbju&EK4=)iD_@SbVV!8Yh`;uDaB_D+ge{zZ3%4*vBtrv
      zLfN*IqD?Law#qOzzX|H1vZk#l1zjcBGy`AKRt&|iSSrJj?VQcz=2GcgK9$ZA%8ra?
      zXm*z2(C~IJ(j$3>W7|673o8z{O`FSV1YvZ_;OJrq50B(I7#@<*jvWkL^O~V9R#pqD
      zl@kyQyXMWJqURM$6Ys9E&Az0S84hnoB}fyxe|S|XG4wPeub1lRC$<4g7o_{8v*UI6
      zrbKsWwrVN1X;HM{5g+WVYo|R&0v#Ej&13Jw&ZZ?i%8=MP(+K)7AY%}{3_Dc;SC1v(
      zF^1IEk>X30f&;i819V5)ZY!EWdc@q?&=q54;#A?XTC~$67bF~H*d1`4D26a1BY`B9
      z<cey~sp|}T>gn)<L@|a53F8dOZ4{r3Lr9U@E27(mg17}m8p5QECk3YtI+$1V3RUb=
      zcv`{{hVJ_h$T*4vL|?sHQFKZHGeya^z><RsD;6ZG@U1ZnY$7-ny;x8vOI<bBRFRTt
      z8B=(H;b6esf|Ov8wDQbq$zFFl?}EU1QN|386M9*@raI<XVV;*Ui<1oPMO{@aVL2sZ
      z0bLT#Q28{dIzw)WWNVnFO<kvWnrTF+v(L%M<2*yOUM5qz&hW5*iZl+S1*fw(CxN*3
      zHEuAiE9LUEQnqK_Dyk*1Q^G3@{f!-q6<t4VY6g|Gw}%p26m1?Di8us0G6|7u$u_4f
      zOIa5+J#w)%m!g@9GL}Ip+hLocF&Ks)bSa-%?4%-FfhOS+Lua!`#v4!sP(a8a8VrM(
      z+_6@BcKBj0M<?h{#99@&mnj{Dy*m&lvSe1QqIz5t^RG9s>&L}026@&nRLc=WrF!qE
      z&pn3a%v>sfOFqb$^`*r3QQUm$QA<;i(r204OnfrvDbZU99f;7A(|^ddL?P3&K&ucv
      zBZ=R!Gm-oa-FN6MOs9cPfy8aJ@d`L!!)~(m)OKSJVt}*iaiZ*P^6m3{9ps~0La!J1
      z5hw1lV+RHkzoPpd`fi|8tnQ+31O2ya%l#X8{Pulp))C>?5aVw<Y~&h-%VuwrWuKFU
      zI1bRih<Jx$x6yMlc@IN3(H_2)yo;d)5o)xGVTLM3Ls%U92fN0|@C3sK4&Oj~+pX{|
      zk3<h875p7Y{9Q`Pd+6lvqo04^kV(|wz0^$N7}6BHlPF~H42AC}PnK+9hw7js)TB$b
      zw(D7M*K_1$G{5TfKc{!GKmH*4HO^H$A4Y?3FNp*GA@Ti)_<l@$uVWwogg9S!IM+DD
      zJ<f5DbC1ipA#B`Z+T${1Vm7+`j=O?J1fwcWFdqw1AmE?+B#X327V#vb!5WM?*NXYs
      z7BOiwyO<}NF&7yc1uvQd{0qv|ms`X=>gn@0ofWxEB@@4hq9K`1*JV1pkQm)S?gqL>
      z6IHwvf?HPSogW>HiLX3fcAn$7=+a4up5<SmoqtUNQit%H=;q&0^?!>b{|=-4dyMlR
      zFu{NHiJ9`mOu1slXd1tY*P6skxmT$9UU$T#;o6e;KTxRRO@>Av))N2I7868+)$9B#
      y4)z&$;zR{@vI;%a0{*ja)I`1OL}9=L^M#4JVZtam0j|Pwf(!C}D3h-i*!~}qm%<AG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$HeadIndex.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a7317f4f43660415732f088e3171fe28e9f6a10
      GIT binary patch
      literal 1570
      zcwViP&2H0B5QWd!PEA6ZLZJl;1zL(k12iqFkRVY2MXHDz$|8~Xj(wHhVy+|q6nK;J
      z7+oMF7CZnCg%~@HrJ^pl5vzML&Ua>xJ@&8PKYjw(!9yDcVfV;Ab{lCTgN7F>FO4Fh
      zl18VH{SR{7lX3FS9dEo9uHRL@_-w->Y-^A?MJNU0SOf&>66RV`$)rvA`lzSjbP)QY
      zsRQJ#XCS(p4x!waBjqM(BnYS4bG8Qi&4JTw>v#VTWIn&u;V~*OF<*s^8sS7cg#HLK
      z5SvaJgez5)Fh^MENhJ=_k3$g+++o1?ez6yNZs53)%zmF0t>jR~gy%Z#iWP1$uQ(oI
      zM~Bbv2%~=ZNfDmupwqUcNRAE@!t(h{U&hm1dm66O$GueqD;9w8Lc{3%!V+HUuzxqM
      z^usjr#GcIJtX#-!W%h(>S1A#70ymCDY-62J|M$N9eipF_erx}1=)hH@#{1!s@RFu;
      zL9IP|Hf-~rn*9CbZOxW7SKxQ+5)71C8K~egpC_>RI#8=We)9A?s`Vx78x~HvV&ZC6
      z&s>aGu#MN4H{M{8Yr7Ky*Ki%k)e@F-{~B)KCVOY<7ArGXS$_*Ftm}ME$lC>Zryy4g
      aa+OIFck?;#;Xa=g{uf~l57>1w|HdDs{oaEB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Index.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Index.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..131f1521ce1ff349e2d6d82762f0fda95d0b7568
      GIT binary patch
      literal 3030
      zcwVhmTXWk)6#iDe%S!5`ZPErXftJRRleiZ`N$dvFltLQUovBkl<V}$mSFIv@WVwNV
      z0t^FxpbuP<!tl^XnBgyVro-8lyVyzSR37XZYxnH=&iT%5<-cG4@f^Sv+)F`Yxcta^
      zVwHM<<Cg5UXZL)cdqHVKE$fe+PSxoKcdgFFO|QwnN+HgWlPK5nTBUotkGLH$#JzTt
      zGhC@gFjyl<nIThmTAmg3e8R6p#aFhs%G-_d8rg|A+xs5F)hH%pOoUyH3>t8p@SWB}
      z%7G!D4?0aN;QoKcVg>Cz$1bhQ$9?`KC#lVEJKSydp=9#MQL&ZCfs~^oM9}Gq?K++l
      ztTDt2^9@S>29+ZXL&sT6r!d8EeZ&|HoWpqr-Q)Wzne9UL-=^Det!}scIzc_~9j{fM
      zA2p5T3>e-rFoto4Q&q>~wcg$?_qVNGm)dl)+O{pXVfl{O_l3zyKOf%|qNG$#K@`BK
      zRTD+}DKa(H=TU&e6EZq-zM&(A_YLGRAu4jwKmtjzx?~^&U91WQ4CvH<!9%CZFg0A7
      zuRE{Gb29>sR|J-hj(Xa*y7$9rZ$(Pw$VJ;>*pKe%|H%E0nB>a_y(_LVjM?qIj^*=p
      zuUY35{mS4xhA)Bgn@B`FF?+8=zfUZeCdm;_dG{7~dBB@B`4*uIWhaA=v6{jPLn%TC
      z0&k#<3f;<Nzb9w)7zt_?y1O3h)IFaVSim9)x;@)wNYR~Bmn%lEl4Q>ldJN0aD<C7i
      z5gj*_e}>NuEaM}(4D0QlFYYMO$}=b8mxL>N3vGHH_vMYqyD3x|%s1yiX_G7%DwVC(
      z<C$xmAX_^w!Yomb(f^D%a$;g>m!h49H0^0_)jo?)#q<vB&xt!%?N1R_U?xa1Ns?u0
      z6&Raj^gaDM&ism*pQY;C^gAw&H3La43xmDDJMu()@_3h4q0w1s>U&zn>3PQd4ey!7
      zLtHQy4)KAxc!)V+F(xfe5q)Se#I-mwS_0!*5~sD4v}}fW%u@i6t1wit5<zNmCBlo5
      z?x22A>8F)`R_SL+KPTE!F<z34J;ICd^<OY!78jnO^i=Vbezi%-Yc|wUymVZXDHf{_
      zB`<SGtEjZHN=vZGiPq~U{ti9G*|>Rt3kSIV7ZUNOv7`QHq<<sS?E5!|B*Iq?H;%>j
      z1KAPT$qW0n1uDnfBDwjK9EwQSzCGeEtn?)$v^nTnVW1v)6?dMRD~vmjbs2X8=W&y`
      z4%Q>DG9dJ`N<XXg)3P2LxTQFMCONlAE^0PyKEv(rFku#p2bep7Y?z#DlH^nfQ6#7P
      eB+a3-qB_gUN%}&%-J~)=YBOx%E)fgq)cyf<GzeV)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Iter.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Iter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff829b70c029e33671df4f2f2931cfa416e6279d
      GIT binary patch
      literal 1873
      zcwUuMT~8BP7=8|InbUT5Er^Kt0aC<vTB!Jq)Vf;1C00yqQ=@l7Il|~LCDSRvU$8%6
      ze}OS7n(T&ZqEUAD0;49n*PD1_;@^;c&vbwyT-b}5^YNbdd7tyV&&>O8FW&$d#;*!m
      z7*coj1wB=D3^P?KTcxUP3(HAmH>UY}#(d7GIM?*~{s~9e3j7QaH_6nknbh^EyQ1VM
      zXk}>Mgpwz9r))E*re1Mw2&ZaWVwzz%*F?R^^0XLb2<D9$OD6=uFw$&(x^Q*0P#nz=
      zj^7fC4#CNxsGC)SYtMau6FTRk^9-%dtWoJd#*l2Hq|8ejmf>Vb*;q4)@gfn-65${i
      z_Ndr}NC-acRndkn;uMP)L+Hi<1^XGa9|u-(5Qpf}cMNNK+^{Poz=>GA31;;!NLIZn
      z!r(#lp<h9?IqOIe6-V$BLtsH_F9DCLQ0309oMDN{>fDsD3;LAl_N83X&7y7_a_w#U
      zWk;H{kTfDSg)K64ZpFMmzmA(}0&v|<LlQV$D7eN_X7$RX>n&>2ZCdNo3%XTu?|4Fm
      z0<Pc`>9<*CvYfA$X2(o1NAP2dB{A<9Wh;b}*emtzB^%jduDl==oMY(OH0gwCiW%L^
      zJGvtp@<!@;=T&5+puT(JzI4kkD$e2}!$54i&*M8;pP3Aye7S0u#JC}~>E2O=A(=|w
      z_Jm~#J4;`9MNnh>QWJ)Y>B70~*qQBH4YIHQFY1c=dr3GSJpuUXS4H~KJV>(^gy<dq
      zZcQHASpOV}$WMpnGP4cs6xmI)-zny!@syURp+kFtPA%~q`)cUXmeKPTtq*ZP&X#fb
      zT5@&mYf>&AtbNv!H4OYgi9W>W-AARt|3rX4M36s18-I*0{sjB^5~BPmQv4a>bgq-i
      zQ88#p&=@5mNg~;TL6<J`VnZ&)6pnc$uh1xCVOe|?0soS3X`^(j4Dp%^Uxx^L@Pk`+
      zBxr<w?_D0~Bg&U#vYJG_UBmIW2*1L~TQ6{WMXTTW%uYJw602)p5_KK^ld?7FFd*gT
      zFQM{R=-{u>!{1<luOQC<!Z80E=lMUl#8(@%$a-XlJuO%R?W{+ekz3bk|3+CdFG>WC
      z=MpaG5#l_$LK_{4Wu%|u!cC3QeKu)zlS<(4s6FqgJs+q&A90X>LLdLPflAb)62Ku`
      ia=kRTB{sAX3%NebLOSa*#%K(=E$YTN*{kljEB^zSfyMOz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$KeyIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a681f758c4025914acc42b79d3eda87d6fd6025
      GIT binary patch
      literal 1106
      zcwUv0%Wl&^6o&t4F18bshEhr?cL-oRrEV7>P^xSqAyo}!kti!R6L(bHnsH>0EAmz#
      z6_8l)06YT%o&<5mNl}rys26e09H0L?mpT6a=j%5BTX<q%f#KO9Kjwa>!pIL|8DvQ!
      zr1E?J%)wDO>4&L$#V4&@G2Kxj;VMoHlo|X2S}kO#s<&a<+GJSoUtHTE-F7HL)uoh9
      z5urO`DEH!hVS%A;qk?J;C0w#$z+_nLhf?fi@5Uk-@^K^>milqPqY+O+eV#kZx@d;y
      z1u~x<6_sC>;=N*6cH9{w;_|?MJw6nHqPNx{Jdj*v3FWFd?r^uG%e`h}39AfSMbhq3
      zubmpH*KFLtO$LMSA9EQHx#YMb3%7CCz@1`Or=d3P;XXl*#8gk|oGzGTSowc^)5+-w
      zUleU(o2D=vb-Dzu4dN^b#LG~F*3Ok|XgY(vBc(`s5l>T*8t@pri>IXpIdf?Y-2x?_
      zR=c6)`q1rQlWw6z9~x^m_1=-SKtI|$@>^s*rL*?bz4j;6y!IE^AM>CFJ*yN1^9L5m
      zwzZ8qnz*cSv=vt<YB`U+nxo#3SECx<30;Br8Q0q<xb=ZNrJUB#g_u84F@M1_f9KSd
      mnPN_@5a$6_iPM^AoOvGRO+3nTJ%&U7dbt=}v`IOuVf`;a{3eC~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$KeySet.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$KeySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45ec44cd57089e3617096f42dc43396d8d971043
      GIT binary patch
      literal 6690
      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
      Ou!MinuL#$sfBz3`PZ)>*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Node.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7932e012edd8e734bde9291aafbf5cd3bdb63126
      GIT binary patch
      literal 4161
      zcwWU;+jCPz82@e4lJxWtN=s`&6yzeg(WHuCNvxD|D}*AX1gL_Zo-FNw<Ro))g5vGf
      z+k=jyPmV8+;0rV2h0Dl{<CD(#q>kgOmsc-;g5$TF(@mNNZORP7Otbs#x8LvgUH5$Z
      z_ZMFR7{aU{Z4B{q#swo@ajksZEZSzpak%Zq$J8=&-YTW7vU}JlZJH?NxF78d-SSf2
      zuxH{&rq6NHW$>Nn7a4lejVDQl&Wtr<8*atnq&9hoBpnxwe1&%HHh+%p4y9WpK_-S<
      zy^|v3$!v0j?sf^-<E5P8a_6>|47XUY%=oDMImXX&lA3&<#q&AuDp`7esdrPY(oeR0
      zL3pamKr2^YzT0%`3qkM+q|Cf!TkZ%|LMWW23K%2h05lEvV6`6u3_F%cQO6qG%b?l(
      zS><mrR7YbhZ<Nc)e-mU}$FgUV;iX0?*$IaGbSy_OfKIVlucI45h81bc<`b2|G<PPA
      z={y&mQZ$Wx)^IGb_k_z*UT{u^7RK*(k`|I8B7QVPjd16-R6B*U8hqHIV<UQn%V8ZI
      zSSD6c9i7$HRvj9;DBJF=Rc7d)@B78lod2UOu$Ut-*wEbDLM<4ng(cPUwYmsUVVg!d
      zTODd!7L~j3lqmV_I(FbuhUI3lP%<1oYUeVXCgSj-Y&5e<jb#=}^p`rH!B4a%<c#Gl
      z``2<wNc2j}I4X`yz9?`5R{5~uoEKeBlZ6DjRo-os`2lX^xT9e=_V_Wz5LrBkj=k7N
      zmJQS7<?^OshE<_(vj<K$N+oXR=J1zNfm3%@fmBQkheQt!iPd2pNu(IqSsIA5JYU+w
      z^W5cksS2|HQx#-|>lq#Uae!Q(rmmXdE;Xf<^E$I56edkNyTA}M9ZoYlV;iONY>^sd
      zFjPPHN2klKW0(>pV--qyK3*tPTrsBh+OBhvtZZ-Tf}$x%KBeP0_W5yUUOoPo2@R+5
      zjL5OE=pmC8UtGdvEmN#G;<XZEc1_c04vOnk%;UDr9r-qLn$_(h##EfCLpvAR&o+^b
      zEEFL@KKtmSvx8nkdK_ryr(GKY*d?9_TJI7Mgp%tR5Ra(Zub_Q*-F_wM2GE0ElB^=h
      zxU>$e?qT%5?<V>`!&+MTdhVC&b)U#<576I!A^`Rlma#XXvv<+M-l4A!2OFe@__q<8
      zXjKK;EX}`7t9JTb6}f>2BhhOJMPk<wiEO=wn6T`tv-~`LAHRT3_98v|FQJ#cEG<W>
      z_c2JsAy?Hfh?NLHn_P(y_z<V{dg+kRPbmF>r>{|Xe3Ivo;`xx|>C&oA@nnK$MDUC@
      z;rR;je3f{<Mm%39o^ME={T`DV&uUuY^Uf0LOqZM<#x^ezQ{<=MrhSTak!b8X9=W1$
      zrN8VwiBt7YQ#cxiy?AKYDdQm!bx$&fNHa}&{FubEYj|s$<9%>jye@^;<>A$|5=u)~
      zTDtUq1dn^Z9-zHA(<7f#j4z|3{fe&<{bPw<wV`|H@p+Oe(k^B7pl3BGtlq?EbGtX{
      z>;@Ou4Jy0)CCh5W#-;r;l>IhoKY9!7RP+W8UPrpo{#SL?5L8hMVxplMYDnU&ihcx7
      zD9oc0^Fy*NBAbYjQ?bjUBIWOf*w^Tak)N?k6h+G3u@fI*c{D;I+N4i3*6eraX5V8i
      z`vIHTkBGCM>T;V<EEAaYa+{ER>vNk>e1(>-w5qwKnXH&+CG#1tqxwWP($UBzXwhm?
      z*wyG&MXyJ+H~X2SzhEW%mD=gIx&Zch)Wq~VAp=}XRi7es5~mdSl-JJf^8P^NI-X2N
      zzY(CfaQYN+2~pmjZp8nc6#k%={*ykn|Ej|uQ24!d__ecyI-7==)28H*1BWPldM@eX
      L=`3khxy}3ouxsx5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d822acfb7e5f59db40a04f8590fa602f51d93d21
      GIT binary patch
      literal 1564
      zcwU`UYflqF6g|@iYnPE$KtMnNDbNQ}DvIJ(5<<`r3w|hR;>YPS!G-O%+3phg=s&^)
      zCDFtm;Eyui+2tY9NS17N=g!QXbI(2Z&i?xS{U?AjUTcUkZ0w6eQSv>@E}1RI^j%jv
      zUTOWptQ}bGs@3tfL_1sa8<)d|<GDwho^*xRay29vDz}AFC=5N`N2`-9Gb~jj0~vI@
      zVmX$#%CMZf#rb@lA+g@tl_@avawO5CBaXWq8tyQptCl0T{bobDJECDrhW={H6n0&>
      zmYSa}CR7RxZ=)0FCMqSBaO5YCVK|rn3sSiUj^vQ4S$mG~e3zn6boZ+4yfb#{#;T!G
      z8|LW82tzpv#ck3hI6cZShH;9jXw`-72SNl$ws7`J?;HEl^bDO`A8|}zl0g%@hr%(*
      zF`moUH9Tf0T!vn2bUas>p%7NHZOhGO)Ay8`0rwQLnAI@DP>RTxV@@%RAIKveQ^>1A
      z78vGo*XdqgQQg2CdJh?ft`_>JeO~O9s1jZjf@smmFnC_Df5m&Msx-i$*IK@7$~TsZ
      zH`*0>K>;xEO~;Y$x-B{#+0pQVDjb1b*nApRt`z5{V|3@jgA4;*+Lu8_Q7A+>*J$DL
      z&rtbqQ?D9WB*o(NOJkXgy0>Jh8Qoi2Pm%Q;F?xXBLh&o~Lh%&*3r%C_qi+v6flnb#
      zHdi)!k-<F$r)of6gMsh;0O~Um0r*(qgc^fB54H;5@bCwwJ`_(dJ%5VaaS&fY_meaD
      zG?F|EozI|;&jw*8Lx{65NerQg5elc%d>-Qz><O(8(HQP6T<nz)%d8RZ;#p=hG%CtT
      lB2hlRniIY0U`5ec3an=&g`yS1GG5|U5Of&^5eajw`~fZVp6vht
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8029d104b0791f1a4cef9090fd5f375dd7808a8
      GIT binary patch
      literal 2947
      zcwU`WTT@$A6#h0L3CZ5IfRt9W1(k9+K`6A)7E(lzn*^#PQbDU8k_{XhPMG9`q5cH_
      zL49}n(&>ydrL8)n56;k;j*2?Y)X@jEqYvK42Oqo@*FHJq0yr8TlD+rZXMgKkYkg~<
      zbNk*~?*M4Wq8B9$!9{&VZ%bQ7ye*nAqv>Q)npWFDb{f85EQgGgHLfq$htspUVbqdI
      zFG?B8ZG^aP&bOVNU6fJF3lBqO4p%*?TZtrti0dh9Qd;SxDPs)np(315Bx16M!522>
      zO`Q-V!|7tr2P0!Wk*S_u!YMW7szq>Wn9}2Ef~yQ|kA$9c(en%*Yr#m>w=*0s#$_f^
      z>UhvF4Xc--t7#ACo2Q8G0MYk>;efz?l>6brL4gV!B8E-PQ-0LoAuk@JoED8Qa2Q7@
      z6M8f%Qxs(9UTMxK7Igv-<B>eLE{3^1!4-4H7Kd_QFL1QL{YjOyMgfj8ADR*HLStwv
      z5?Y`I`xx9SN+=4ZRiI5-To>d;<+fd*1IP2+o?;l;OVm3h*gT^m=oApj;r@_e%8B&S
      ztV~Aq*|@FRL{yJY=}AMa9b>7|D?@Mb4D!00gv(YLstX-lT;6gLE&_e4^I9|T+m^~(
      zFcPsF)4QOjChXoMVb9Q7kFDrt)E55}0$!APF~Crl^F5IWr=tslak)f32UnwV*)kHQ
      zAN@G!r$a*m!>UibF`0@=Gp1~#0#7NMN4HI?q>ZYM;{p=}bv&)CPYXPQ$(*(07=yl-
      z>K3DEl5+%8UOda7{r^(}=kOdu*_>g<CZtYx?oiWCO^p^qB-dOs0?+4Xr-Lp;Pf{)=
      zR-_j%GSucAjmG10UXO<@-I94FIj>3*fiCa@W*HiG;nuv{EzIH!{%|6ljLIQHX|HBi
      zs;%lMy=F#DQzi%KWs{QB1)fay6+%{Rq@`e_d#9`3ou<50ZN14dS}m<3CAsM5Mk&2f
      zNtrbF(X0f1`sdr$)W6yFedXoq8mGC3eif*so%?C_9__hkoYn$ssM2nrS_|C71DD{Z
      zq4qMoG(5V72JIReZozXI9cp$BP2(-=n|E5&;`PmqK*spkO&og-Tw`?LGRm};HJo^Z
      zz+LE~e@&6%pTW&<!^hu8E&l)w{6jSJ4Yc!*aE5=3G5!g{{8OBy=c|bt5yL5*wm%;l
      z(M<uBpvMl4IeS4noHOWk0ve`K?QunE9q!UAt}9sz9<{~4u;DWh+=1^Yuqe=SJdQ&S
      z=qq;CDFjWS&a9#D7WmufpT2=7-z8I3CS{bqK}s17Be}3^RL1$25d14t@vm`&-^Ee>
      z4Tb$}9uI8?56$6GqAm`H$5mRXq>N~pgpcJ{rqiiRD6qbHH;}2!=ZajmIH5~<#R(J?
      zr$On2e+SOLM<xFO2l$UT%zq-5Kck!ff`0xhhWT%Kg&A=eA10>Vw$gIkN3z_9v)tb#
      z&8l-@Et9abH1rWI_jQE-EsQ%(7#js)O#fFHzoVM}LG=Gb9sdhW{BNA#_b|ve>AGc@
      z6z;q*!cG`XyMz&T!eDfHY=!ZvQvyY}FBGtKaGrGVlB0vO0pfTaFP~Ek`?kqIl)){0
      z@CiRE1gB3I`gjog^4K&uY~1us6Sdp9r(iFb-SgX5LCj9F#2k&4G^?SzZr<ivg9W-H
      IGR<%N0~6Wj#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..167f856d393f6373dc014c34dcebdc78ef2e651f
      GIT binary patch
      literal 1250
      zcwU{8OK;Oa5Xb-9JdBeiO+zVt@(d6=5H~^~p+vbvAXQ1rAyH0THtwpp4eQ9UEAp*C
      zDj;#-1Mr~`vvx{_+5_&v_Uw4(H_!d``^QfJP3#(2V(1==Q{hCRH*s8Fxls^E6*}F&
      z;^4%a_PtrSFQ(N&G`{%s<a{rbfe8J;K$f9>U67_Q<iii%tlDIF(N7I(k$c-yUf5xH
      zRlA12HDbti{X=Pjp~#U#zJLsFau~S5u-x~QJcvGyWiS-uiDanseOF9IBJlKiq0H(M
      z7~Z5$;Brf;q^y#kLWb3vl>jF~9XapD$I=byuQ~9JlnA4M0_SShu-DSL-{GiWouQc~
      zhXX3SRUq$8jxB667~=3$D3{2Ynl&<U7xxX^V{lSJIUe94K~Cgcx9o~4m||G_x0mzj
      zc|TvLEuu|b7>-&U0v85;6u9!Or$L)nx->MMf$u3LgYHDkW^!i0rskyxn+(ptGY0$r
      z-DqDEM~0P4qi5))DLnB%FTHVbr?jfm!Y&OqLl>Tv%X+U#TB3*cn)D_~FX^l`MZ5kL
      z1-t$o{7Y<9qIaH*z&Ef=GS@PSC}TzAXwhzw)oN^eJ4U@HtwxpXGn%UX4IA|{?0hCo
      zCZ?5iB76%uz73P_#MHIKV?oUk=MmP4Q(Z(%G>_vVp2V@9qDJ2eNfzpO9$Q;z5FyFM
      F`2)fLR5Abn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f4fe850850fb46330d727d4fcc70221f834160d
      GIT binary patch
      literal 1090
      zcwU`TO>fgc5Pef8F-ev-P0~WkHx1x8QbUB`lBkymP}Km3M3Fdd+*RvhoXB2B@UKAP
      zL*l>>;71{5?LdXdf%IT|X7<gSd9&jmKfiqk&_T<_8sX`goXd8i{h;klLobOU73y~X
      zk2!qf&jx<1U&vWwm`u(;V;LmsP^(DlX=Ecu=v|b`un-FR)Q=k-!lS{;L|snr`Jt~5
      z2v3{~<TuBJTz`73iXfB)@+g#G;j(~@ON5PqAF7wh+lh)sauO&)bujg0FqV;T{6#Ql
      zBoLmj-oUb<vZ!3B-f2SJX=apx3{TpxCTGgid|Dj(C!y3y#HI62b2RRn?ym@3#SWjE
      z+?3FC`%ij_q1Obi;|9T&$8#Ba4740G37QkO{}%Xu_FJUIbqJ;5G>JU*%r~LkrPB6I
      zO@cTKLlyM{8OJKNagWehc|0~A5ZwPy<8{aq3AH7YB^<4OMZM8cm!%)<pD%6C_+32Y
      zQCj>@QKe!Qhpjb!cyTyhWa}~eCQ^1=pHXsKUm-rGpmly17zDA24Yq}`QAP!uh7MKK
      z7*$WPTPf9Rj%HM!_=ems*lm4a*Gj3@O&6kuyr`onwo=ON48EW=-QC0vliXUA%ObZ^
      b1$WXycd^IcDq9WQhr`Q6Y&Dr7YsCEplRF(}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$SubMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0df084c891e8605a812cb630a24c79803bfc54fe
      GIT binary patch
      literal 18179
      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
      Qo1VMq`5qJ*<@T}v1G~h2o&W#<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$ValueIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..090424a6d7fb177107d74888716577b6e9e499f3
      GIT binary patch
      literal 946
      zcwUuKOK;Oa5dNl4VkdFiP)ecY4FQ}4)#ZSMNR&$?q>2ECM3Fdd+*R3P){!3({40=n
      zNF4Y9oDuMA5VLkbir~;3Y|qSokC|D2{q^|^fP3(4tPviZh`I2yRE2&J=^%?^sZ)RO
      zHypiGv!P1TCt}u|h%l3fsf<M$#WqR=e+9N75-RBnl{60scZa9vcA3{xTBUuq^j0CZ
      zCWO);I+9fo>MqKt)L>!Vg$;+WIaFFc&0bAqJQmYX61Ij>Ai{}=mB|;yl4+Xoa0Tb(
      zW$^$dEnlaEZLd|RghC(t&!#6bNcprnQpZ}PS<G%_uQi@@O~dD1T)-}$8g4FV8vKV|
      zW9UT}mvEV2i=(;F0Rt`13{P{y&hkueW`E|g*oROXMOhrkN6M7;{yWXS@g%s1TFZD4
      ziX@SVja!8F={G`HU)l+wzrsFy<Hud@w!d%aJri|tz;j#tFH@soE|#M;e)wX!UghXM
      z=cZC`cRrxj?tFs#E(dM!yTTwi->}KCYhu*Vz!@WlEu3Z4c8)!lOFidmA@!cu+5U*V
      z&Rb5cTx!E~;e1Eg`GKnQGnd>c;0sC9-4*Pz$kl~iQMr~+a6LD=ft&m_cS&gCHZzL`
      G?)(OackjRe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Values.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap$Values.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c41c13643382b11e88685bc1019d37779a665596
      GIT binary patch
      literal 2209
      zcwUv2ZBNrs6vzK}14_Gs4+ttw#pi7(1M!hg1ScRmF@|M{5{-AW;?=HQx{d_DiQmB&
      zn)rk-jK1|l8P9FY*zAlfOWNCW@A;k6^FOEi_50g*08_ZHAjUBDif{02!xL7v;@Fjj
      z>zcNg%{P~;uSKmO>fU``J6+;d!>lXlVMy+{&6n$*%PU^qu`ILV3CCt&RfY?N|Dad+
      zhFIri%OtkJpstE_n|lq{WVqdpZ!S1&aeF=cp!|w*Fp3MtEFt@H!WP~v!(^%(pph;y
      zEOq7buN)+)C+|ErHN-KfL&YA3cq&~|!LUz9FZvkv6ohTAG^%COElM84{(@8CR*Abp
      zK8MC0@1>|SO#d&hsAN=%c$L=}M%uZXwQcrX7tmbso>43rvl9V47Z$r;c&5ue$E7f-
      zbPI1ew9}a*9XA4kf};$X-KU`;iQ_uPFv>8nAye7rDLC0(W3M*KKJWyNGbp0IP_22J
      zzD|!5IES=?6vKEI?V#f{&X8ht@y7Hy%aU_JM+W0mDf0KYuu06}RJ3t|pi??7B1^Bf
      zeb}!yjg}+ZBjUu+Td_>;O4qA8F3UbsJZIi@`KAn$UW@w33K}|cxIv@hIkFlIsn)*V
      znQ5a{IC;`Y;3no3%rOkM@94OO>k`x<WT!M3#&X4(sC_oIRxFYSU1Y2U$-PAd;0!|@
      zG1{ura4Y7bkR3hRQR)fl#-K0Tw&~_AUay;^LSN9y4A*lDof2tz_2}0w=w3|HK*#CB
      zO6tg|rn^E<G4#_9H1`^<14{xr-OIF!(Ot`Y!9ZsG6ZU?fr#N{7gOa2^LXY|ws=9_D
      zvW*0%aR9@BzZ&tQ9BkV=)ZFW*J%+;=ZN@#~$9?YGfw9a-?EQ)4TMWw84<tY1*!y64
      z;xkUY|0|m((A1|GR-gIV=m8_l=3txUkY5EF0J_SEi(y1f!nbgi;a!t0-vDZ*g{eiD
      zT9ZlB)0ufb%6zd)<^-}K^I@n+LNdp<Fd2(LMT-=PrW6TG<5DO^fKN2>G>9SoZhOjC
      z7<L4g%>mUSv8%gGn?@{Bim#a20{z?VNEc*n@0xk5*(~|LN<wTZ$?aGK?);-9i&*Md
      Xk~r@80hXyCGPq1WiF>pc1TOpm*lpUG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f97e2d1949416a45bd8cd7414022fcae5e16884
      GIT binary patch
      literal 29603
      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
      F{{g3rMf?B&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListSet.class b/libjava/classpath/lib/java/util/concurrent/ConcurrentSkipListSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d0436c2e3a9e6ddc58b5774817c004f72e60bb4
      GIT binary patch
      literal 9070
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..872141fd91e99f5febdacad6982a4ab9b53da523
      GIT binary patch
      literal 6845
      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
      NJFR|y<z)7m{{uFG(jfo<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArraySet.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArraySet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39a19098a5e6602907d3e7533de55bab1b5a7cdb
      GIT binary patch
      literal 3911
      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
      S+lN*(K73@Y|2S7opZo`gDZQou
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CountDownLatch$Sync.class b/libjava/classpath/lib/java/util/concurrent/CountDownLatch$Sync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3361dcf06e515201c3c4e04aabc117da99b25db2
      GIT binary patch
      literal 1003
      zcwUWCO>fgc5Ph52O-Y@mAAF`M6j~rP(3Arwpi-1lDJZH0DLHW4IxAvu*RWm#Mf?Lm
      zaNq#t>jsxxxCDs<KY+i&e*k9fC{V<q7thSwnfKm|{Qc+GZvf6?Ifo2G<u<?1tFiWj
      zsuxNxR!T@+t%tGHtKkFL<l5^lw6>*}gT-*+zuiIT-HEET%}6Wm>1(lwMaPVERVe*O
      zLNQE4Lis#s3l;gHywO-?U{@Im^-xBdOWo!{EbJ=_&v#yJbUreST=J!_R~W2HW3f%4
      z9(F_?S&Tc#qsWl0EVlDtm~=3OF^17d=$7VMFch1<6zlQUrcfJvGazKD8G0nn$pX~_
      z(9&H$VsM*#J-|f<+cPkEZ;;|Gq3dZ$W*Wv!*}*JI>C?c>gjU-%?_TUH(du#~I_XMg
      zo~Lk>HeDBi;L)z8n}&12!AYE=9lUVsF1^)cr!{1^D-CKRE|pFb7xM^~;-RLPZ-ue)
      z#F}sRo!-6Dl3AO<X-FwlJ>U^d=di>uzlVE}KXVZ*lff+gObjL17@?S>DuYp26!RD(
      z#G!1Bu#7?6FDSS(eN22#`ljhSo-jP2iKp0yXV_2G!L%C(C_|DR!eQb9j*wEyS*2(Y
      z+wEhfH>4X$z!wRPlQs-!7>?rDV7NxnNEFQQ4szBfSebuGUjF5!F!WNuT;he{I8F@c
      z9@7qH<2gfjxx52A+bdh06}LRw$NcMGKV}KCdf7h;CDH&0#T(lCEnVszig-`V9}-nJ
      m<r}Kb;dG*EV+Iw<GSoeZMar_2y9w_ZoK0?Jyq%-_lzs!u$jZ<F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CountDownLatch.class b/libjava/classpath/lib/java/util/concurrent/CountDownLatch.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c53b629526d1a4f28623d13208657a63afe6b51b
      GIT binary patch
      literal 1704
      zcwUWEZC4XV6n+K*o2*N;0n~y*RG>*(jMlc&245heO&WnVhz-c`OqOX_&$3H5yI6ie
      z|3!a7ZS6T4JmsABdq3zO@_4*6*@p0<@?mH0+`04I=f3TKZ~p!Vz-6px=wP_;h;Q<2
      z;9GXqbR9GBJmL7+yc;<FE%&ig;=Z}2A;NG%8QR>bW#_7ogy}Ox>RXP<kSQGjW28*B
      zIfm{@%d!0H^f*;WFVdEGSA~vF95bN7VCYPx7d6Bg&hI)b*tV!~d&;W?>jXXXizzmI
      z%XOkS!4Na0qvT}rl8zoEBup<uf2y?mzU+IJQ_D%<eumUh>FVgiDTx=2f#G8VUFc>w
      zUa}l98?0A_x4^5mU`Ui)liQ2jv*bBcM*KCa&M<nE<WOF^R1^%XKr(;KEt2(Cpmhxw
      z7>3$1;`qYzf(>7+wu~g*Q3GR$G7NC@=fLtrd5wEwwPkHp?JcT#s(3i71#4a0qw?g^
      zOFGi{R6~a0?0ZcOe1>rb&39+H<JM(ei|L}Ik~MG%m#GrIw>8zyCN%6y6^iL4`IMmC
      zK*nCA=Yb<bAN~Nr|I02@D4k6h_!{3Z^mxJ+ydHXLb{YAI)`XvLCYbt5(YtOSha2il
      zDUbSYvq>2GQt5-Oqan|5YQK6qu<TXg$@ZNwa1&EH?x3LI+dbpbv^7w~cNFa=w*xWv
      z6T?`0hc-tlcZg>l(?~=yOA#-t5R%uDQa5kld;CBH#WyyDL!piz*6{~aA!P--AR+EC
      zoS`JW(=dwrRGAfNKSM29b_358w=LP?y?eX(qJ&^D3XUVZyv^%%A^Sm263)>8b<%H#
      zhDA;hN!=vVWYHR<(?dkiLHlrK8~WgH=-EL}C2@QkAN`xzL0@HX8z-OR^j~DsfdN_*
      z^Z<B5>mMZli6K12AZboEVQ>a#0VNI5M-d<igYM3eE<&gC%I#IsFxq38XE+^cU}V>U
      zu7F+=!&eH}Xc~sV67G`&a3zXO(uym%@!<wi4P5-ah1snzUMsw$%169KG>*@4Mcv2o
      z1-_(PhOd-Yi98V!)kC6J@9$&Ebi~-PHl})uX%3Si%9ZwT8@TrClfBef|DmB$V}}6q
      ziWV@ogXs#D>edU~-bN{Lw}H73vw?DAk&X@g_;eq7vJHJKMDIXFtxH%|q-p->dw_wr
      Dy+?D>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CyclicBarrier$Generation.class b/libjava/classpath/lib/java/util/concurrent/CyclicBarrier$Generation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79eba5bda57a789288cfea19f8a4cb7b5f2323c7
      GIT binary patch
      literal 565
      zcwUuJO-sW-5Pg%x#-_2Y_1lw(LMv#{tHpx_MJReudhoW1i*Ah@*d&5K%Yz6W`~m(b
      zak4FlCn?L!@@C(AGwghQe|!Qs#HJ62us;^hA}R}&MoFfV(io|WXz-GxDmfL#C~0=i
      zrItn%D$_nZLfcAGq3@%scr25GP>W6WC^dm@8T6G_#R<Xf_C^G6klo1uE*c?x%-2C!
      z2r-8mp*2)mUY1X>G&dqnC80CS5|NICQ5BvRz2ZUTglIU^tjC0-?u?S&DB$rLgy1?W
      zO(M^f9qJGNpt2-{7n)^*ROGqLeXJ9<|L?`dzumCKy<FY}aqxd|cKGlgaiz|v&!~C}
      z_TD+%H-xX2)8yQ=${ZdF=H_TI3MXu|u?SA=)R{W%^6gYz*lFq4q-F&Zv14P|<`t}3
      LBi<+0uz}zQR@8uM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/CyclicBarrier.class b/libjava/classpath/lib/java/util/concurrent/CyclicBarrier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d696dac898b2cda073405eb4599484e0c2b8fb1
      GIT binary patch
      literal 3723
      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
      bNmr|%-w;I+-!IYiB%T8NvaRO-)6oA5)UPx&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/DelayQueue$Itr.class b/libjava/classpath/lib/java/util/concurrent/DelayQueue$Itr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69cc1be272014467a1d8d7091623c613b348cf2e
      GIT binary patch
      literal 1914
      zcwUuLTT>iW5dL~EOm-My6E+wO5@I0k4kWuFn%g3|5YW|S11zFMu^c8x7&6RQvok63
      zS5kS=2lJ8#Qx%Aps*s9WWm#Sxyi{4<%FFLi`^+x87$N9XojHB_bobX^pYG58{NOHt
      zBbZSTAskpVt{B<Cx9qIxI%eQ`!tt}`g>77&2t*)y3cjZxMo5N+w&BcYFU&0p(^t?$
      z*wt_^_`)-M*CWIY&oizP+FmI>=#(ckF-S$4QGuY?M#Y~LKCAr&tJ0Gr>@RMUl8iBE
      zIhH>}IG*0tdXpqF(}dWtdr2g~6f|gfL`4)S4K3JBh^8~s^5#(u%}}M(p+Uh8LTk}-
      zL@8LB6W)|DXAAZ&x~5@I8=fW4HDye4A@pvSn=CG~Q5K9!Ni6#z@<oZaUqb>a2XaDn
      zcRKTsP~sBDNR+L4$M6G>;p6Gd)JR^zlkC}WE4k&sTo|#%5_^s;o8nF1avc>1ky4-&
      zIv<9>CHKUVdqpTXMA+A;Xu-C{ykVDp!xtNZ_9LYthXDmg*3GvrgNCDcim<~lO;M@z
      zoFI&C|Eyb7#CFZgmF%Qo*)trUU*~dO#W9>vaGa3-uRa=1%1(&MD@i1;VGz$Way&^G
      z{C_!)dzR~2e(grZX`EGXhMQ~)6AkAu%z##XtlIz41?%IMZ$=y=8lJ!?A+>I@vD>A=
      za~k@vTNdJZ4KGM)O@SlH$;&YfUD(G1xh(s6laY;B+=Qvkz*TP6vIIXsP|I%MnPSwE
      zBhcC?!(r)1&<c(tykQ>ris0dha_<xR{tdSY%pkY(P#)b37UdO33`seVkRK09xHro^
      znUurKr#P<`w6b-Qr71+%6G-WOE7+;uL7N^~LA&0+f<3obAHie%-^Fo3pCC^6k)V&z
      zLLXx<>)ZLBebI@>L!?xQ9pTtqwi?2z@XQJ5x6#dO&)v5XkKK&ktVeH>_w;EPQLEb4
      zB9g2hTlIvty<xmJn1Qs()#JT|<_~dj<_^+px>U;iS+CEqd@=U=3c3gGA@lA7Y(9rZ
      zUm!(aqLaSbfSs#jb6-?BP=Y<#2LZ=zzb@hW8Sd~}2*av@Vzp|wvGYA-SMhXJI<<<S
      zu^Z^>e;?;L+&f6I^emxnSGdKBBH`L!zuZ8w)X*PV+hD`sX^di)6PV!tY@NutFuAXx
      z&^KtMZ_z>Dp^Lspnts4B`jLm|C+_{<Fit;Xf_1a>D_-OC0{xCf-hKKbB(7J<)rfcC
      zRg`dnsUJlf#u+ohD^Zn_XXQNAp0<~FS+cmkipfTO!}sL1H`IXpYbump#5C_}=#;}t
      I^>=;wZ+WJ{v;Y7A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/DelayQueue.class b/libjava/classpath/lib/java/util/concurrent/DelayQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1cde5a1ebd93a9e4005841b79721456e8a9fc7b3
      GIT binary patch
      literal 8027
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Delayed.class b/libjava/classpath/lib/java/util/concurrent/Delayed.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0d8f02946bb85111ff8a9178692ac198ac9f781
      GIT binary patch
      literal 295
      zcwRg8Z`VEs1_nb0UUmj1Mh2Oz#Ii*F(vr*^{p9?-<kF&|)VvaXm(-lZ%G4Bg1{OvJ
      z0kDdk#JqHU|D>$c<PvrUHbw>!gs5|VZb4#EVp2{jBLhczY6(~~BZHEL4_327GILWy
      z^D;}UHN6-axPtRbi;`2_GC`Vopw{Yv^f5AU24|+{C6<&H0i`^A&|P8egUtmt*zJTG
      kY;9)^bUGsgGZ3=^1A!6fJ$42TAd88C6HIb3aD!<c02fwMtN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Exchanger$Node.class b/libjava/classpath/lib/java/util/concurrent/Exchanger$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a09064198ded3d767df063e2c5c04d986c515d9
      GIT binary patch
      literal 624
      zcwUWBT}uK%6g{Knx|?ZP+IKG%_yKJ_D}qQuAO<PEkL#o(>n_ahR)4F92zuxT^rNCX
      zn*^am49vZA?mg#T&U}2ny#u(yv4I4`>5M;cI|`+1JHF>cN(nEtub-SL_a;J}_586g
      zkYcE<Y~-OomyX?v!=1PnggSyDB||Z1D0E|%OIr5rXeOMn&X9iOR8_yLgQ*gHtg8*_
      z$*{>#EH9HQLy~UON*0pX$ihU9Az7{rO)zX`v4%85zAHV^i{>Mt27KfSJ;-;sJLF30
      z_X13XQyDOvcmLr4?Pc}-NI9Y-H8=NDzR+xj?2YFM)pmIhh`_);!^z*WG+zrdn0-0%
      zco-?lTdQ|jZE|DTo@O1FWJHqwH-Rnf24yW6$WUZ-OjvZU)2l-r35r(r71?U-1^MR%
      s3&?2&mZ4uaVKNH^!b;!W*v1YJXIfp)D#pALc4Jge*~0;y!x%sM0y>SE^Z)<=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Exchanger$Slot.class b/libjava/classpath/lib/java/util/concurrent/Exchanger$Slot.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3cad8cba03aeaefa49cb6d36ffd2e6e6f88d84f9
      GIT binary patch
      literal 791
      zcwUW?U27Ua6o%iUMjLBlYnr6_ZmYK1Kvw%*3;~e@S|o*9ydTG@nXvAXbvNX1<tmVi
      z{(%0dl5@60ucTy_d7qgx=WCe#{pa=<fHoQhWC+!Bb*a20w!WvsKqpaTg4jF0(q}4|
      zn5Z`J!?=JPVSlcpio>bZUN^;e^V6_Z8$#xyMWC;;Xp6iNc`Ncx<h{rTk&hyuL_Uis
      zk&%cN8H;eb{GknOd_>4LnnOaa7miI4S!|TBiZw#HZv%6hOh+dAp+-JORQjP-{!m3$
      z_Rg4#&+Lp)@89Fn9YUjVFURJv2*L)TI0%zSn-eRwmj8JjND@NnOAwf-=d0Pw%nGOx
      zcK@H9`<48J#etm!Do!F!+nwLi{C7C~>+Ewn@7w6y=(uy#L5sW1@-I;4xqv)m6dWHo
      zE;<$+A3ByCmmHTJ%Z`s6A3IhYR~(<D%<#wW#(k{w&SMgD;q?ukUZ=;Kta&lgDz?(H
      qsROpLBQ-d9*9F&^85g`aKUj{lc$Ti7;|1haQnAXxn|PVpU)=#}HJ&d3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Exchanger.class b/libjava/classpath/lib/java/util/concurrent/Exchanger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b09da8fe292cece02bb03ec0344b01955bd7d044
      GIT binary patch
      literal 5987
      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
      A82|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ExecutionException.class b/libjava/classpath/lib/java/util/concurrent/ExecutionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e96d9e1f3ef3288720d608e836a0b957f29becc
      GIT binary patch
      literal 816
      zcwUW>-%1-n6vn?3ldPnPTGObFjnz^yiPEjt7AwRQBB3|h+>h%Jr>wKGf7EB{ogf5y
      zq4#}?K1u1B$zmi)r7X;uIs2X8`OeI*KR@pQ?Bbn+3}NfLxDsv>E8q13?ImF-b?mlp
      zq{q2Hw{JXoX*LeBgt8U;LigRrAB2TShD!K78Ag2m);T255uwxybQB96_k^Fwod4rC
      zdbs<o2>DM+t9YL<Q*ZPL*;a5S3z)%N5e2*;%y*TRUz3Yd8J>t!UlJC(fyWI5x8ZY|
      z%*N*`A~d@HIl&&GQtyr?IF3W5`+JR^>0L3s%LL~_Mv>^-o)c0+a|+-|=HxsKu8q5t
      zS~b)aLe3LO#LUW6En%hp4CJkW)Ch&+APGJBMVaB3C+GWM5ZD0UE59$HiX8GB9X@3+
      zi!6V9znm#@#^p#HbIk!tw^lOGYu+ZSSm3od6yPNmIhx{fTD;Hdj8QkY2Y5BAF4*jQ
      zuGzGNrJ*V%nB5YVZDYQcl+|Io#<0`e-WlNaIP4=A?ONFSQ1%FOQkdDT;ti_}wl>Y;
      U+Bo$yTRixOMZ+={*KN(lU&-U17ytkO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executor.class b/libjava/classpath/lib/java/util/concurrent/Executor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1825342ee4b83d0eaabe64bdbbfbc6dae46a60f5
      GIT binary patch
      literal 162
      zcwRg8Z`VEs1_nb0PId++Mh4le#Ii*F(vr*^{p9?-<kF&|)VvaX*NW8S(vtilb_Nzk
      z1_7{=oW#6zegCAa)Z`LI2KH32f>cHZaSb1YbWmwtUSd*Cs<mbqBLi1(erZv1s#|6b
      jP#G`GL_LsdHbw?U24)5jU<6vg%D@I<F|Y$kCI$`wfj23q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ExecutorCompletionService$QueueingFuture.class b/libjava/classpath/lib/java/util/concurrent/ExecutorCompletionService$QueueingFuture.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff161bcf09d46d7543e163248e389b9f916e1ad6
      GIT binary patch
      literal 1361
      zcwUuM?QRl56g>l5D0Bsi6+hc*r3#c5j6cDeNNi$4Y!tGZsxiwl!D+X%&9d9*V>Pky
      z<A)F6LmBT3v?&I#{MkGA&N=sc_V=HkzW_W!HI4|wlYRTxu7rVbD~>0f(D%6vD$hT2
      zCk#Bl;T;~iJP@92asOC2JpU@>As4c@69%Er<1iRj$GR8*+IIhd!3eZiZcahg7!obf
      zleSVA)}~?WZL79Tgjn!N^z&7Q>Ui|TG8DHiqzJYd-WFyhkH^0brL;RPAC^<J7&a%k
      z9)%97QFx=_b$J2|850R4lZYZ~VgXkfibGefEqmwu+6CKgXP-L(xl#OUCgu=hNH>M#
      zFT=wQ_uGoVkZpR7?OL`kls+^Xs*em$XKchj%Ro(Czf8S^%Z+C7<>)Mv(q$Z+jo;{c
      zk~q;q(MsYj*5bIwur*r^ChjB8FmF2!@9SN%X5NS5c)~N+a}KCGx=XbMJU}6ihqT)N
      zN1G_3M3vdyE)BCVX3TpG$(9%T4&M=~aVrzk(+y!TUr5RQhHLlxoMxRGogKsDX%9|4
      z<NAdxEKhW41k`j&lKv(UWYxlv7T4N*CZiTupFs<3k{sMzL5k!@VkzEYY2y^>Qki|D
      zWBC+ICuEEwN8gkNyeGGN<lr5yla|x&7I6bN0ezaoEwbIFvq`}RmOErIu#6S5s9<%{
      z)m^sq73uF-C9(7a>k+&;(J85DF^%}3qYOM{hf$)~(5NytNhaxzQQ2GP1y%k6QGb2|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ExecutorCompletionService.class b/libjava/classpath/lib/java/util/concurrent/ExecutorCompletionService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29a85f23714905f67fcd7de05a7d42a3f7176bee
      GIT binary patch
      literal 4452
      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
      YP(%cAUOYK)>CR6oC+Yv1bkX(y0NX-*`v3p{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ExecutorService.class b/libjava/classpath/lib/java/util/concurrent/ExecutorService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..715688e7c2ce2855685748ec72e2c639ae1fcc50
      GIT binary patch
      literal 1948
      zcwV(t+iuf95S=Y0PSOIUEq7WjZK;zYB80>Pwj!Y_6;u%w#2~~2lH;z*md(1dca!i5
      zd<wt710TRgA;ufWafutJLV1YRGiT<^oSn_??>|3(0l-suY``3W&11Lg)|6zt=J~=?
      zK|qD9HTu+3(hpiR=rWHQFi&7fM{-vj)ehRn)RP7j2&_%aCr}K(D0%4j1c3`?<pY6*
      zq2rC;Bd}~%nj?lL3#CP%)M7`%l`5bF%&`EwIcnsc62fhBYSl5V%)(Z>*e3#uEOcnl
      zVaP@gQG(lZnH+kUk8vC3elt^o!#ec6VA6_s%8kB9Poj*_fK>wPqZVEZNrOP0V1Xov
      zKp|A^4wD4xW;Xq<%en5nl8x`FNI$CjY&$PfiU(V7<<Z)XgL^WOdk{jPVP<XUc*(p*
      z-%f1wG&`1_s<&sE*?FBjKYx~8jmnjn==xvjOU|Q%mx|x@IY%`(S}Wtce$OA#h``>N
      zW^(nhI(GhkMG{_}(RS`BAD8uG7P8LU$CR>%lM~+vR3}d^EyjRN0^6At23Hv7rT*0)
      zXR#v{TnX&|-`q}%G6`&*ndU2*lGLAtq}-;p<Z{bbfk*ck$9sPDpC{)@#DMP$-sJeZ
      zh%eS6zCi{QA$p5SP)6?pdgrwN5?t2)EAhGnR}o)Ed>+>o^jw4MNyZIr-%RXV+P<CG
      ychJ5IYxtEg#K^iv?qwkN5qSU)W2AuV3T(vKmc|~%SP>OP*mjIokfo}>cK!n6K2oUw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$1.class b/libjava/classpath/lib/java/util/concurrent/Executors$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..160a59976c530bfb1c2188cc94414dc6818db568
      GIT binary patch
      literal 1313
      zcwVJcT~8BH5Ixf_EG;Y47K&dWVAZxLOF@AILSmX4jq683!~1r7Q!ZI|&3=&ji+t5Y
      zBl_SE&_s<t$T)YYG!cYYA8va0%$zf4CUg7w=f_U~YFO8iBFygD`?eWJ(ls65bK)Qn
      zUSu}9!igh42un2`8X=ctxwh9apSJdd6X_Tx%p_>Ysez1Mn$H5cFI~|Q?R!oneUC64
      z?Mjv)tXOB1>2vG0>)I_>Y%qOOdNSG~td<AhS9S<m-EWHw2<Hsw7|9}yaRV9T2<fs)
      z7`LP+p2W{vB4{cWA#eGP?e5rtRNp;NQ;iVj&$3Zt*XbbU)+fpp>(8NaFtaT?o*l&j
      ziw>15&E`fHmvBYLWkT(rdo(bO8N!I|I3f&7ON8b?lRBAm6d%Pb=5@>wrcX^Ya1BKs
      z7SGRBZCy8T12_Brco7~9;_vt%D?3WRVxWqJzWy@d(SPbUx{i3EmX}NDxJ@XW5F?~S
      zmoRxEkC5H=<G>O3rP`daqsogan_xWjJQ37gI}Amr<IeAA^jF8clE*z0){albI{iIv
      z^0sZUzww6WxPB<T&SMen`fV)n14;840_Ae*o$&udicbbvMo0O!&ff~jRu|sEsJ_S8
      zn<VGF!jcHH=?n6FGx)C10wxlC5=G9KO7brxYO<#`SAEN3d=7B&1FjMdP<jQ!QqaNy
      z%Je#sDzLz<Ua>qh*8IwA_6<|?ok>5EqQyhOUePITVG$;?HEvE7u3<T0r+95vaF>lJ
      QWrZ9XTg4jxY8;*a1?7idqW}N^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$2.class b/libjava/classpath/lib/java/util/concurrent/Executors$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ba9e058c66ad6f9bb5b1c60a010f44a3c9d1f61
      GIT binary patch
      literal 2030
      zcwV(tSx*yD6#h<I7$~DuWDyiMs<v!J#0?O|S~iCz0rACz4AYx-aGWtSQ-VLp_^OEu
      z`k-$<_-Bm9CGMU(1(Dr{nr71Pe)HXP&i(GaXWsmL@e;skOezQwjxOkndaB@?R?2W}
      zqu{#2_EVW9VHAAF_2S(MB7|6=vUEF_nw(z{hOeNUa5!K+mb#{YFE!<wi>4)VB0FgK
      zrehPz{k-YLPZP$pUDB-0P3xAW&s*Y#XWF@RQJA)L&(j<|E8ISg+HcyXKR_5ylrC&?
      zmJmrhSy2hX9u*2Iq6ni}MI~Z{a6$^IHPaRog*)@Yosq!^HJW4S)~xQDa=b!D<gy9J
      zcdM?O7ZY|1Y*cL`scp2FUsg_=Ia~J&E(a}3Bxh#&qG-Y)1qat{$xPlAdR9d<4s-1*
      zd5Yx5&_y-~b5zAK94FM}gr9b7Uo8D?2%&M^#J|0YB94;^P7p>)<-dwkNDwM?!w{Yq
      z?;;qb+}v#!(u7tOZD?m3ysd3$N^CPZIV*kWRFOj0TIGD$Z<oIEjiFYj^;Mx8Jqpec
      zns*ecIE#8dnS59+S@wAq7jSW{>~6wb3CrGmn2T=psp!Y0wX|IK{QpUtSu(_3*@ZZ>
      zg3E;cTf8GEp1vruhDB)DW}6A*%X_}*4iQ3fUPvtQ;n^}XAv*08Ttf_*vMucWv!qU`
      zCa9yfE!-fP@DyBM?Wo&YK}i0y8HDqjcR|~^WA}518Q`+3GqzzlGVZwW^G+6B+!Vw7
      zl!0O~*&F!_65^*4QD&<cUEr}~qOEODpte54-baCEpX7o!Je%I4hLOrxvingR@O7wX
      zMMI!JAfr(&qcR>ZkhYA*@%E=UGST`N>M~k7?jzQ|f}bMUp-EgEcRUAQzh#_zfaXBn
      zv5a2Ey^*%psAz9vd1K@i<Jtf}fcl50hn%q-=Wr1N{GZ|9YV{LbC+Ho2EZ_4-?*ppn
      zBVVOYI7Xk*LSOh6eMK*QLx#R%n11j!{=^jh!ZhQXjBhcXV{9<avk}sPp5p3O90(zg
      zD;Q)a%8|uYq?xHgC$2FUMlZXa!4RVeh6D8oMj_*b_(qLEW6z|Yk|}yP&NYM8arFEK
      D@X|nq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$3.class b/libjava/classpath/lib/java/util/concurrent/Executors$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac8839431742b6748c77e752c8910c9392d0d33b
      GIT binary patch
      literal 1437
      zcwU`UZBNrs6n<{^(org_V+x`o;?Qj%1BW1)Z-hW%GQlW8O^iwDZlI*zCb#W`f2D~8
      zqKQAiA7wnZ8;mG(%7^ycKIgg5dAaxW$Iq|d0nB1ShsH3rYd7sm6uMr;@r4sf$wgRM
      z+2c+W`Z6d~btD<AnC01GyRyEu%bie1njzOgUq(XMTOMafhdXXim}PiS?;-s{x=q*P
      z+q|){Be~sJwH?CuYYeHT?G+?LzW!$fa;G1<!VMoYtQXH4<1FFQCPQ-BZ}2`aWKHPE
      zsMSRieJ~6pFleG5d4@z$QL}Yd@U`f}7MB~X(sOm+vAs=Oy6U?PCRINe#(QO2rNR<2
      z5<0H-K9xBGBe<^88D&`P*@bGCdJT+WT*pm@`SbPB#4QvUGPdLJAU^f?J(KBnB&F8I
      zfOygk_bW@W=CUtB>3hoXy|8BBHi|m#FpU0%?Qv<MgffHK@H_Ds-V}ce(s3?1q3es<
      zza&vQ)y>v8)H*$wVR+ZG2i0SZ|8En6@yd^+!&hB(y#`KpOe;aE_?Zw~E_-$m@Ic4x
      zai_XQVi@WYi|+V}a6CV7#rAU^?)VK8_c71VC-}z}lc88V^KP92Tg)0}XqXc8q@Y=r
      znl8Y~soA36QG%X+nB=`ct4GjcBwL<5z(9HG09N@Bxz7Y?xI}M*EQoAq3%E=xwUOu;
      z!f=dVLB1`uhGgs;{)Uma<?<I;hqy*&;0QO4F!8#hnIk5&MVQ(X43Ztvo}SVkZfRQ?
      wOk%37JwaCaQcCaBiBMXB?ZmXWw!86a8kIPVMpHL~dsM&LtdJ_blZ4Lw0_S9idjJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$4.class b/libjava/classpath/lib/java/util/concurrent/Executors$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3710ff4a51db06a7b0980c7b6f17a06382ade04c
      GIT binary patch
      literal 1349
      zcwU`UT~8B16g{&oER>~PD~Nz1)~anmiWX69Au$akCW~JXo_txhlQLwTO=foq{3}gF
      z(FcEkKgxJ#seoWDag*7ZxpVHBd+(mRKYo7u4&Wh{O&AQ*yY8M_jU(Y#y+C@gQd~yW
      z)qU>8QJ})&f{8SPouGVIwyUqUcexjt=x3NptRX>_hz_c+mDm$LZ}Zl3FA{-d=#O?p
      zSbW4#aC%%*t26ZNxqeYGj5w#ay^W=Gw|!2>{S6^Sw8F4d>dp2yit-jix*4?iAQ*BM
      zObqDN6$^vNWRSvD3qu%TNR>1+=LpGP#_zYe+SL9Gc_;8(f6G-u?>ok{&hZi%E>H?7
      z6;oA4N@eGKJ?k0Vz?6xbf7E(&M{&1h;TEPDhC7_c#`84CR-!4OXyQ)q4_mWv7xx$j
      zT+icSSe$2gcZtH5dqGZBa2(Q_>yiC{A}gU{qRg=Pe+)X_8HP7KgX|W;*>W{~Hw>M?
      zZE=;9{(*%#R2fD?9yJ3Q@%`uwgkhr8#kssSM7>lqK`PH*6rF`}t*FdK5G#+b39Xpy
      zNvLz$fx&tqC07Y64^2G%-C12zWEks`B*Wl_XiGPW72ULUQD@G-d$w`WV}*p9Ta}(4
      zghIC0d9)L>Fi(w>qR|J#wsj`~c3$@p{aOqfL$K&{m{!ZQPtlyK%p4+HnLUJE`GWk%
      z1UO3XOyWQ_GL~?SR@#x^7{m3%K8}eF)jA>d+2j!>E1!@(!tEp6|BPAM*k3^kW*<&y
      zv-(z}4%=v8+*m$CJ=vj7V<AC5#v;uVgfHO<mME73^pj7}dVZGR>S!ch1=M~4I@M@r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$5.class b/libjava/classpath/lib/java/util/concurrent/Executors$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e68c05ebeb4179828acced8ab3ebe5bb5b91823
      GIT binary patch
      literal 867
      zcwU84U279T6g|_d*=D;oG1mIoTHB~;3a)~JkWwfig0O0#()Y<^NT*C^VRkm?ziOc(
      z`rr@nM~Qc*Z60iF9)`Vh?zv~qy?1~A`S}aLD?AS|$FO$9$2=*V(uv57D6EynCH*f_
      z6fU!Q>rIG&q2XDYn^E#<a3qBbQDs<}THE7V^MRHO(U|KN7fxk{9!fnsCt<7H*JRJC
      zvC?uRhr6E9WvFf|qudU|Mtc@{^ME1fWkXp5!_62W<|9;4k5NN|q0%l1^;8-8u{a(`
      z`}y2aGtC6o2i&UiegOvVP~{Bk>8w$Z#em8+!%}-Q{dXkY1>D1f5ce5YuXi8gA(qLc
      zEod&$epXl^->K5d;^eg#r36F#-WX|nn&-JBkF|X@GTarGxc#dRrgw0;knO7lJJeFW
      zZ-mZrWkw&QJIsb5HZD8(?<`_G#WRL^G1>L*?3G>bu8Wtn$_kwuV2x(EQTk2i=+qDq
      zx<Juex|c}Q+4_dK^Bs$)o^z|je1@u-Mw6nL;u5`$C6C|1@`cK4`ubew4Dk=#WjL9r
      fRLcxIo}v)ok!P)7)uZPcAm(F_ui=Sjt)ul9F_GEQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$6.class b/libjava/classpath/lib/java/util/concurrent/Executors$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..513629eaf2d68342e1521a64a11da45995224d91
      GIT binary patch
      literal 951
      zcwUuK?`so55Pj2}x#oH{F|GAyYpu~HQ9K0^p`{=pf)cAx>G#cLNw=(fvUe9M`bQ}!
      zq96PN{G-IVZ9RpCT0bnzym|9@Gdn+ie)|sKKDs_;2&?;IBBDG~I*Jn$=hjM-Mg0RA
      z=UHOY)<Yj2q2X9sm~r%CxG&?(N0qQVwYMj<7DFuw!9?hmh%=QKLTBLEDGOVby^UU4
      zHBnlQ<*0uU%Qpq-v7>Gfs+-EFY>RNGed?~xF2U<1BUuCCYzQB-0V=46sG&iqv<pIg
      zpp4wkUk{~yb?C7<NMfOPg;hm<1bW$?N(pO&e=Uc-dfcuFi|wNU|5_4PgVJW|;}T)v
      z52vim;R=?0TqUfZa@Y_nSmK#%&WjCplHA7fi7K4Wm*(ykT7>YaG1B(5NK?rp)ppd_
      zh%C3v?H@Nhec<0ex_P`|i)XC&O{|ktnelU(?Ij~0w+JgIuP#Iz9l~r}9?P@;`0A5w
      zZr~oDK!x8KP@`E~0w4SgzZwEY=Qw)Ad4UAo+n*73zhM5O<D4rnSK)4YhbBiM#|658
      zMTeiq5;HDv>~VI{={?}cvAUlSe#K?Nhf=RvROtN_Ef3cmYZccWdZ+<rt~vY$T8?!S
      G>%Rbv0QBqt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$DefaultThreadFactory.class b/libjava/classpath/lib/java/util/concurrent/Executors$DefaultThreadFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bdd1e9d620737086f45954ac4070a3b92520cb02
      GIT binary patch
      literal 2039
      zcwUWFTT|Oc6#jN`B3p<{h`EJ82qDxq29pqaGil2u5T_>4n9@S8LM%p9mZ&VH;ivSe
      zGo8-#wKojY%=EDj{ZXBsl?>QHVd@!s_w4TZ_B-c0d;HJ8fBpsF9()CyVR~PGuIGHu
      zv~q@H8@}rb+si$AAq?Mh-0J9}*wuZ@Ti<hqzO$qow0Ni>#?To!TDo1%t#0oN!&7jT
      zVI&f+$(unva2)HYU)dHe!+0^$MfaSFY2@aDp<sKWEZjW9m9p#j2MoQ%^Xo(OWw}8o
      zG%qku;Z<9&h&5O2nlBi-8oWxLYuaUUh|e09X`9}A3@xej219JY*%1o57}Ecnnu=>k
      zYUoA}!`0b3Tr5>cZzRCbr$IrSp`&QpB4oC%Z(Bk#atz(t&|Op7!J>*5+>}rq(sf8f
      zE8;4KF{0phQ`$?1RZmnj+`%XTm4#O#(OlCzT+wa4EQ23Rr5ht|-p;ESLrTFL4E?V?
      zq#=zALpz~2q?tULkQ)_Hk;SBfi6*My0S!4!F|^ea87?v;Bd`LPluW?1h6GdvGbH+}
      z>dpJ6wIkd(-lEEoMKz(~0p5|xdzYa*by4p0hE!@+!$Xij9Te7_y;HCaS5$~mPyq#r
      z@qvap%#)V-!GW-e<W17@0$lz6d>o5ZM-yS?1ss;7|1!fw6o=R1NY8?XC-{)yJSW_I
      zH9>V0nVS_28rrDPygjqZFcbZhE`QAQ0vP!YTv8|u30r)3Dp#s8q-VZu%c9LkO87B8
      zQLxcmv;lh!pJJ0id9GW&Slwk9YXlAZNkpE4s`yOG`#Hm0>cW*_1xC@k2=zpkLKa_Y
      z_zGWBy3OjME-H>4)WDY9+SXuz0!~zgce)o#ZH0cj8p^VSTB(HAT+@;HlIy01ec1$B
      ztLN*KVS0?oC|<PXHTR`@@~Cr_9N#s>k}3N{`<aN7@+h^rf^7?T!P2W$QB^<+4qYxj
      z5r~qX8Vf~C-z$irPqr!gbLf;$E*M+uHkBETEo8N$gHCsnHAS}kXfJVXGj@#YzoYk8
      zvN`(cSEUiW9j&|#H-c69=|1!RiSCnYk2A*@$ecnPVekaEikb1hp^n#Z_h%$dK$Ck%
      zxKD>3Y<9hQjJJP7Zw>hx-tStd;ZY5bk5D|nd6HOzUq_60qLU|)<lPwNJs6`g&3iG;
      z`!LJ<u}Je}ej{Ml6LP^*tkRgIcesX+h$+J}l<JIsr0mFu7hfW~nfU|v$0Z?}6i={D
      ztY|hE(jrEQV{ENtYxv@O#Ir3m=rkAcAION;u$TSijO`fZ8hj85K7>(z3wLRr=EIoc
      vw=u&<@Q~lZJRc2M4u|*GS<2Zru!vn61E|0zL=GoFKEStu1~LK{9^(H2ZPfhc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$DelegatedExecutorService.class b/libjava/classpath/lib/java/util/concurrent/Executors$DelegatedExecutorService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e1743058a9f671d781819250720803660e2ddfa
      GIT binary patch
      literal 3943
      zcwV(uZBr9h6n<_91jrg~Yf<|mw4x>fO|7j~6Jsea6&iVwh?c7DW?5lzv&-xY;7{mJ
      z=}bSgGj%%jLw`VjRHx_MY(ijnNf^s8Vej61&hwn-oOAEqfByaJZvZ#2nL<L~_NKb6
      z7JSbz3z}_dzT@bYSD4<_HQ%!xcXUcO^>x+L*P2tyy0dL)dJ0K_@kr;1n(H~L<{k17
      z5cIoJIg&82EeiCN49oD!0=aB=F1Zzf<fOf(526QY1t};3J=xsK00c4$deJ9vx?))R
      zykD>BPF1a$6wtdBTT{&y)iL-zm`r*bhAVLAXy*9rQ2hORFeQ*`3<>vKpv6?J^}-|H
      zvY3t{Pvaaeq;Otfv>UAo&f<N-)$Dp*wblgAM!`}H?uPHJ**g~FUsUiBrzG8+oVRyK
      zem2)8vSPR%`3)=^>z3;I4uzZz8I+>P%0=cFRWOVZfkDGv4p?LjR(Ub2;4-cVD27|r
      zow{Lh;&@?9L5>&Bs5`3RHP;NAd@p6^qH9n!>iT19kYa9?=%#lyeTzNZ6h0HUxF6uG
      z<>`*&Z^;@3M$GxSf^l4<9C`#~`yO@Y9M#<?NP*!FoYbAJU#qj}&FG3o1I+lGQ*ys`
      ze6Lczk>a9)+xUuGRCQkolw)?sq-vU-K`E3MrRv?bU>0hdy5<!-!Ir93D*4d?OA`+H
      zYYzEdY+75P3Je|GjIXzv8*;Rpa0I3!^BR`dDJe@wCgmVHQFob#Z#fTB)I5&v`liQc
      zPl$uI3)#~aG^}m=l|Esbyan6vCvDRtLu%t<#LoS>b2aw?N@Lw*wH)Fpb(Y%@yrAGa
      zR0MjtS6wb|qz-|5Zxx@wgP06;JUqe~{N*Gvc-%O;&hQFnczM5Ftk(khquZrjRtj`_
      zUXA2xd~(RIb!-YeJ&D}p=*d!^D|mvZ0&{Oy%Y*WM61W`eX8T^7xZRTw*D>foyvE{R
      z(3fo4_8m>1G5FBSv@ROg8HK)_vzDbhlcwsrI(_LjnqRu;+L52Y`M4_zM(A49LpMP>
      zhWKtoqYV90=%<+h8kLctKVUHbC;i6W;MDK*mcVKH-$yn`RB(pILk%muLpYG5_vE_Z
      zOG<!sKfp@o|G=rSJq#sq80=viSh@w4#s~ONg3;Y20Q*9|b6^CvhmS=FYhGe04XXf4
      z@Xds*K9RPcMj>4i`0WtVLL?GhW1?fZD)8$egvCgNTpU6^jIb1mK(`mNx=!OHy%i+Z
      z9F3D~%UHwL_HZK^LaR!&5m|brm1hMvWh6ZM61Qko@HL~AuRD=tyqgFm>`6=+OF<dw
      zBG3XYOVFi5p!XY~J#C<?v7i&Q{tcSh;hD*RW~xOqEoq(+qSP#D#`iGO6XJOulbc5H
      zJbHjxLfmKMnK_yf{GlVi{dzRGA4W=?4@*>IBrcNkL5YiaBqh?hA3<1^gd4P@d+C{x
      zgd-P{dwAR%;(RGN^Ri_!EzV59$s=xxgdA~GB-`T1wBn#cJBXu?Yzz24h~$Sz>CeK_
      qH;*lyj>>?tpPo$lV?e6L$*+aw+y8_71lA<4j+fxw$<eLDK>vSv4x5qy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$DelegatedScheduledExecutorService.class b/libjava/classpath/lib/java/util/concurrent/Executors$DelegatedScheduledExecutorService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df0646e8f91b4f7f8a7d821f7514987e29f13e13
      GIT binary patch
      literal 2190
      zcwV)Y>rN9<5Xb*#>4lcHRKO};xQR$xp@J8bHjN5mBt#R6^@~Qg+mm+5c1yOq1YSUl
      ziHV6XqKU@f2Oq$PGR`@@1Z_*(1k#*#cF+0GZ)SFO`uoq%UjP=c?1#eeU|ZYO60T#I
      z3B7FTu5EM6Nj%=;y6cqf%JeEXc|mh{KBE_T-Zgo?zL(+luAy^3JPb?SdTA2-80K1v
      z+wm9}t;9x8q9lVaWmtxjW>}o<Q5(%Ncvi}J9z-9`s0bj$5N+e7SsVaEScM<`41*hn
      z#h<yQ9JjZ$oJolcZIpG*%xbnFu4^|vPSL0^JUSlH#lxYz`+4manU&fxhF7)lP0cDK
      zHeJgS;N*I1;FeM1FQ|CQXot$JxsGcKXdq)0EKOW6yg5ZwDwa+Tz>7;NA~?_B*UP1n
      zX5|@1T0t4Sd2VX^)I;l3WtTt<;~gSlD71OjE1GGZU@}BHNM)Cg1pYj?&2=Z4?!ZrN
      zWs~U>3Zm*u)byID=@fO1Uc<C4Rih3Jk$>BHf2ZEk)7_-NFkElZht8U@$Mc)i-3+f=
      zx6sLCOw_lh>A&8i^D1J9GpJ$?8Jf9T?L^-Ww~aD&Y^0w0OT#J3<mCw=y`|E;CTTEJ
      zc5R)n8KR=0#vGUzVUXjemc{KAQ>#>X#gBUoW5>@AhRKc-1QRsA`e=D+4T&j6e;!_1
      z0R-vJ09j9<&<7ZZ#eYDJ#lK_lD_tr$OWz?9LwN_Ua)6-no?L+1N*>2BMgVD@Be(QY
      zikF!7E=cvLbe<)cz=dMpFc_a0^&H}&7hf9weWZf&LHdosBZ+mtAza24u}{_*#w9gG
      z2~E;D!J2BYu1Z$1nKfNy^&Me-Y{Qzt^){?ovenw&45BhqYJ~><hNS1HxPJN#SLqSY
      zsP7PS{-#_%N&amaX}G};H*yUlQR9bklPr(4L?lAL&>eTNnftj1?%01^g>=H(9o(hg
      Lpsc_W?xX)NgYi7b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.class b/libjava/classpath/lib/java/util/concurrent/Executors$FinalizableDelegatedExecutorService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25c94828b63536b260e52a9ba04cc543698dafda
      GIT binary patch
      literal 718
      zcwUW=O-lkn7{~v!uDiBvnO61&5fq^YNp$F7ct{fh>0)>v*C{8qS(x3`@>_KhI`jeh
      zP|?h~bqF#C=H+?&J^yDuKHuH}oMF#~L2&g*N3<44+^>0o@M0;Mh-%l*%!{KyhDU8K
      zsLv;~@3R*3*#nK(;5*u7a>PAm!z8%)hx1o4fpy6Rj~WD(a%V0it*BRe1ZFcBFb5ed
      zxyZsI$alD4xA9Y-$vZ8Upx6mK>i4MR+D@HjG~^*cYksGN#;z0OSn47;UQD~Hxu2nx
      zm`u6S(=)8Q*g!#r!eJZ@g0UcQx<M>G*5+FD>W{8d-Gsos5rWC4Ps5OfHg*X1=g&iM
      zxWGg>fD#4047Jt2D%)1ChO)KCs-8@ddrjhwIvwpbM#vgtEGxS-%YuuQgkoV8dBrfX
      ohC<3ZS2xl0>J-J_s27;VBtf~eq!eXfGdWAxN^&(~8@tGT0XLAlx&QzG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedCallable.class b/libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedCallable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4493b4361b268155fe9ebb3acd9369d5bbb24050
      GIT binary patch
      literal 2052
      zcwVJdYflqF6g{^sEz}h%PetDHXp2$`J`fPa3Sw;3ga-BFvP^Js+11^xfq#XGM52i%
      zKG5h_HU1jooo%<g%0v9HotZoLo_p>+Gt+N>-n;{l#+?WPg!Gd7LQUme-AHMcspV~3
      zm~LunMQC}~vYqY+w*Epl#G+WpsD`1=8zO=bA?Ae{s=1iDKffe2H-a#swJew)NC>K$
      zM(ECZZVsogb$2y2scFJ-GM4GumLUhR;*JqQuIfA`v}X?lWyh*nebH3iye&%D`+1M&
      za$^%561IhtH(Ww(c6TAX8)Pqr6)T!}=IWM7XxQd9<(nnWxNhq11feT_2+hPCq3;l<
      z0z2s$%2*2`iXfU4)Z#Q#iYMl(KxkG_g=iElXp5kg&~`v84Ph&2M+YIgDBNOW3BB>e
      zQ3R0Lx)elENvO%{rnr}1o)>nmpk!^<(o|zkwRO2J8bj_A-60H@ukxTX#jR}IiMaaA
      zM;-ZhIA7)vBN~Kyzv7)TM@vdN5nLeDmC=|`5l=8$1cQW*Lx`lKNMT4SHcYs@kJtyc
      zAu%VVy`<nWt`L+3Ys-i5D85U#t<6czJCH}wwM;9d)K?Y6a7xa`6r4mgp;Gn2ySeb(
      zv1&Q=;`$lVgqh=H*jtIbJ3i_V;qHH;Ze4W=9G$iDwkD=^c`B<*7z5Iu#kymf!p<0~
      z;|M-a)BfGuH#c9Rz1a!b@!aU%!Y1~bj`EgZkOd9$SAh^8OTNtf^w-KKgl#8y9)Q9h
      z>s?yc@W&^C=M|oB9j^;J^=RO6nP&kWPbFWYG1<S4Gsz8{T}S6jHU@Fd3km`Bng1s?
      zQAJ-6qp#>@dt)IGJ?I6zS%FC3j=gwkPvJd60!ha0XIqF@=Zj<pJTlL{;(*S#NIhmk
      z>EtVPZs6iW9!EA&DTnv`GrCqH*NiZe`_9kW4=6mw=qH-!7h34IM^Y&O7D@K)urRe)
      zCB|`$Ei!$NN02+kDbB2Uykv^7G|~qTF5rbs;CeBnx7fb0Y~AR~T`?cG#oWMTxtNjN
      fF`xVxF7T!|%itEI3IX1q!fl-9X9=FA(7Tzx0_zol
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.class b/libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9fb1beeae7d0d86f149d1474fee4e9b3574ae523
      GIT binary patch
      literal 2834
      zcwV(u>2lLn6#kCwSdJ=^)Y*VQSenH)El!|ooTd$KD2pK}F@|)bihS#cC^D5~COl7H
      z0A?Cs%1ryOKX{8y_hqJU(CN97_c+Ti>3HOO@7ccZo_o%fp8xypcL1hQQV=3sx~t#U
      z(-qIO(ni@fDvl#;FTJoSjEYxw+_5Fcyl+~fB#K$xvh-C;+;mO5lno5CmhQT_vR)L9
      zf(W6{k7nt1DZRLQR~VjxDB*ZVj9NTG*f1=@aIWFp6gR_q-7pAaf!<|ij_Ex}&l`qt
      z-E7(RoU$bcvFWjK#M9k%!in6jplsN^Y?f@@t2m+_dnfDJd_FVBE>TCg70V;UbL|_I
      zG}(&7icLe@^UShM7;G|IsEK8qS<^PXIl}409yF5$!sH%C0Xu0K$(D;kMHojk4B#kJ
      zN+b*2ARN>15;PT~IH}-7%Q@xO9HAFAoWg0sp=#_vNEk>YbM2-X8D>nwI3{?9CE-<b
      z-*je#BQ1{2$0_L~G$@FvNa0llX9%OaoUA1r4X@!WL2Y0WCTak?*Mmfx($Ec6!8yW6
      zgVT+Q?U@^5NjMv(>+-q8Fs^c2ydhKfChsiKw1H*M;iBgpt9TnT3f|$P+Z$a&2D5}-
      zV@(+A4IplaL>u>pk}+c7${2JzC$=|d+Twa;V^ui$pnKxEvY}fA-7)35DvWq*rc1ce
      zxpH2hy}4?KT7e$itAQ;Z7)q_tA`E1;mtVcn)Os(u3N91+J9HVLE0N@A3UY*#d+<A_
      z;wrAogI^?E+o9cFU^{-nr0|i38(1c2#d5=yaC=)7)Rpswe^czI!aHP07X3{ParDdC
      zEe*ZsBgAyyeQb(g9OM>vytZqA(}eYd2i)amuK{zz-#I|w?TMCmZVl`_VfFt3YrHum
      zp1NGFIEJ`r%FgSlhdwLqxx_Bpws8DFf}5jQyIXgpL`d$N6d^a8pV^*<x$UC;ys<FF
      z)fwiei+^$XM&R#~xV)?VkzZJ>JH+!4didcYuCHI_hs&GiQGNz6$m>8egkc`PMug`;
      zCiMh|Q)jj?l6s2ckMYVDCV7_JLOS&g($6rx5<mY0uRq3H_4T{K`VqT_@gDz=GBwbz
      z{C)Eqy6JcH(;xh9{Sztr3p4aL-e;Sk01orG0Qj?jezryTL0#9wI>G`jGRB82i}31F
      zbqiPgEqvvt1~~N$S66r&*CfHGSh~ey{s+Y5@IC((9@dE-mD!+w5DSH%@z@s%V>lGS
      zu~5_}sRaS6B(p6Nrq&n3ZLF|F!jJm|fi8xaeCYF%5K$?lAN_D4-{oU`(!ph<-Q}ky
      zmrwCo)n$SuGC5IsMukUhK0i14e2zPveDdu+ztns<Ctvt89jlP_6k@#rfx~>)!<Pi<
      G{_;OPI1T9l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedThreadFactory.class b/libjava/classpath/lib/java/util/concurrent/Executors$PrivilegedThreadFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b9d5843db264cc596eb6c07f1556aa115bb9002
      GIT binary patch
      literal 1674
      zcwVJcYflqF6g{&PwyaCR%1aTfSg<XR0_CMe6bh(GqbQ^aUyRFkEUU|Ivb#n2SDFYl
      zlK2DsQN}ylmX@Z_1V8NFnYnY$J@?L?`SbVJZveA+B|~CZ{Hz^m$)abNN!_;eqT_JO
      zOKu)>z3ADF8{Kw{Bg5ncp5HxixR&42bXq@=5nxEQz;5tQTG8|_0U6qK-DDWZ`e0MD
      z3dxMAxo+0h^4v+2U(<DlXxZ-)mt%M*$u(W)uA8wf&#_Hm__0TuJ5~(K@Ky;Gi{}^u
      z89UDvw4qByClm$UxGkfHp{EwDEJsBccNn@Vs>_QEy|H+<acf%8^r`5_07GAadzJ8Y
      zvKj7P0@i2L3G%9FM~8wT49mFBFmg?DCU;bf-~oeDi^VWr4RC!)M6`!0WCUeAVi>Av
      zdSA3W<B)H2=g@Fn!?uDLqkP<E`6w90V^P8w?TFPSw&OX5RY=Ek3KE!<F~Km}T9t|^
      zOfz)r2VDPB6TmPWYsjhQOpEjE&KeefQ#{<~&aSp^a)xl$)-^MyIfj^576aaa;W8{|
      zZ`RDzN1Yb`TJ3>YeZo{VO9V+b=?fW)43QQwQwkQaENc0L;ce`u5}QiOiB?amNMW9V
      zQ5W_$+r|*o{6mS(Fuc35f~)$wMnB8&;eY8{U3g{3E;>5jGQ_!uE@-C(m_dDQS={l}
      zaaYDx^`>1ZhaRFU1R+8<sf}JriCzl2yfg}nYehCdAH6Q*zeS^uG-qVT6D6pLp9r0y
      z_Y{LPx_635;s+w<7~Km;OBg>x{JYPXq<=rLLYhH9nng&OL!Xqwm^6<W@~LG;dZp*c
      zGI79_XzPTM$c7T<SlCNUl(1C7({C579RevW`7HhAofQ@_TER20o*-87yuvp|R>W#2
      rp@WSylRgcR5ab2cnm{6rkf|z!zIFef!G>QuiTs;*Nfli1)r9{6fuFz=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors$RunnableAdapter.class b/libjava/classpath/lib/java/util/concurrent/Executors$RunnableAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..107b0dede3a1d9707f9b61b990fd18922074d955
      GIT binary patch
      literal 1067
      zcwUuLQEw7K5dH>ePv{AVh+2zQt;*3V^}!b<B!*~Wa;b?Wyf4>Hy?QRq-ks5ZrLm~>
      z!5`p{GS2Q5ObapT!`{x#&V2LDH@m<8{QL#rF&;X|5gr|g52BMMVblr6DoC}KD(SrV
      zD1$T^>v-c$s+1T-^7)=POr&;DAXIHmB-DQA_2@tbiGyWAb0Jb+M3KoS6cQ1?Bh>wW
      z*;DXmgk>$`G)f3H|13J67I(vaC6ZJ#PJS>j@!e2`Nsr*Q76HzKctgVK!dS*LhlT!l
      zPnM8J&BaAr=0YuRSOnpU3kMgBb=5@?B|^mymE1|+kE9-C&DH#IAflnrq4^(7JANC+
      zgl+$P8gqAz({P^-r;tz1iPh!idJI@#xQNAXd5h#-YIz*Df;-r7aF@H8SINaatBFn(
      zp|m?rbs%4chEjP}+}<UE`${RP`;mxa89QhbZvLM%3wnk&!S4>9&QtBpyA}&Fy>?mu
      z*yiEoc`YG_s+lIgfU21#`&QV_!Q};>dztslQ{f08Wh>8nrTrb3+M5&9+glSfzOXBg
      zYy7RD0MJ){7e^@41ZDb$>+E08(y)pffVE6nvX&{F!y4NSTh>H1Poj#J3TuX2Gb-zr
      z$_{%?ez|>w`Y~=3*l2v7F)^5+AI##|GH|o#69#LiJWZQ*-=aT2%VryN51WjYRo(gv
      D{3!Zc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Executors.class b/libjava/classpath/lib/java/util/concurrent/Executors.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9fda7804ce7b46d4a50b27484de9296145b1093
      GIT binary patch
      literal 6410
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Future.class b/libjava/classpath/lib/java/util/concurrent/Future.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c274956b924f0e6a8b22f0b23250293e998ed91a
      GIT binary patch
      literal 573
      zcwU83O-}+b5PgHN3#=cg_?>to?q1xOcoO49A<>X{06B15OG8SQE?HW`Z}Z>}@JAWj
      zb%RDQHfd%$@6F8X%=^dd8-NQOyC@J&#?ea@Y9->3C6ehh<x+)ht#ry=6bZGA5Jz$p
      zK0c2*Qv`=alJS^O^asI!;ECC77K!<gu;$yCBW8Dr<mNfzCZ+BNo!^C;glcQf_*98R
      z&RlE~PQN+#Qt>p^Q^ki1l8YMQY^CDXoHK1X3o@b76(bqhpAbrZ(CeFym;OU%Wr3cU
      z@Fyu$bA?bBdxXZHX^B=px;FmrkSVEl6P+^N7O|1%eNFt_CKCMX{?)RIo8^#0FcXG7
      zC9|s%9N3+?C}*~k+bTR1ux?n6u^ZUJw($$t$*|oVE1OCdtLNyxxd)kdm`9F20fGCJ
      Aod5s;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/FutureTask$Sync.class b/libjava/classpath/lib/java/util/concurrent/FutureTask$Sync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..923c93cfc3768e461fbfba76c53a1735ca2ed1b5
      GIT binary patch
      literal 3705
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/FutureTask.class b/libjava/classpath/lib/java/util/concurrent/FutureTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17fe0cc7df2a2368ed2f0627de97c8b68c1a9bd7
      GIT binary patch
      literal 3262
      zcwUWGYf~Fl7=BKYW=UAeMZijJp%mH#%Eel54aL$FC={V4X%xKFC0StUvP<_uVMhI~
      z-~AVU&>02C&ge&H{85hYIlI|xLegZIy>Q<5eV*sMm$Uizzd!#1@D5HSL>Pwml_O=w
      zbu@jZWEv&cvQ)#FS#llMQVWXxTtbYYM>y$<u{*P|y|0!W32}z&4MTITVJO?W>OnBX
      z>=UEJaAU0n(O91RG7O2lwreO}>}0E;xk52BKkY}x=QKle<{3s)jpMS4u5)Rbbdlj^
      z3nu|BJY!k2tR@jfkBm<AGDK79qJ%dXu2%E1?&|szQ!^aZT0AbPhmK|%N%Wyd!XU#~
      zJDX2p0GBw$TMXGI>Z&1`mU~Qq;j#<~9Sq%TnxU?{2ivMu;AV!tHM6AXMa9zi|Ndgk
      z+0$%>Yc0tcI!Znh^-v2b41={~Cx;cnmTlpcfil=mwHVTV-b76*t(Xa|dHpNuI@HjY
      zfYQYzQkamCu9Uc*cJWv(xsGYsGDa}Tu-q<f%S?4xel$aWBTQ;@OSN6y;T1fGPrXU{
      z89FsPs~9C!*VVG<*Dc;$cVxVW+ceIaVW`$h*d?yn4^2bmULVT%h<kPVUVNP#O2V01
      zB(>$C-IFnoOvNwjn+Fb*lNCM%mV4-|>~P(hvCF`=NXM>9vino%M#7W9*w_*lYi29J
      zQ_F#qgk_rH*A$0*0%wK`sWc^q%U+f77!N4XLiRFObSJgixGn|lKz&MQN~VEg3F{2w
      zO~Xvr3DJ+YW)Si|MP5RV;mT{BWfbs~L2}G>#V~DNlhyPp-`r<>bDvWcXrWP(CC8IS
      z^;o4am%y5iZy=2v%c2LOHqX{T>O3+Zr+CUAodImiDB)Qp$9W#bju>Q$4<+SN7^tvk
      znJ@i=i$m<m(6GbMTY(4#GOnUwENP_q;qitHlb_X|1ZqQSR5C3X<(x_~xQivju8u>l
      zYNTe&o32$-moz?y-PO}*nv>E-Rz%C|ifyYr{dw_;%gq(<o=?sE`K8ABuKjR&2O6%?
      z86KtU0$qLlD5qzFKHm`}A=7&&-6Q@=7cSECd-9FY^XkMIx+niZ=PUGWo}vHmiB}ld
      zoR~bro4;e|SMrGBZMqMVKX3~%OcDAtdN6}4n5B!`1QPuX1LAE&C>pJ?T@P$yWaFB~
      z15G!Crenm3jbgYaU&pOKaI;>^Md3A1T0W-w+!q=~yvRVqAZeW<7XCI(S|cGfgMk`u
      zo24~IKXh)>ovU~#)Bzn6zhUSU@BSR{#>IM8@X4N!&o^4L!m%0NZ-)3mJ>qhkh<B0k
      z5jRLP-${ZaUOvTKJ>=t1VG==75|ps}eqlWDL;${k2ZWFn2oaLJ<d^1Aqb;obQpcBT
      za|;Vt^I1CR$yq+}c{T*kS5(v(J-ay1)bJ^uoT6AywiT*)SFpJ*Y?6hEw=eJ|S*rrN
      zd;u{c==F1WPY9x`+E^a^PG~Re++J7!^);Ra4g8I-K2(;;Qz%vFq%a)PwqG<UO_{nh
      zJTsNjc(z%x#h{WnPkp|QYPX*1TcY}|3DrKHH|YXBNYA6%iXYVD|3Jsgk8M>wM%!*O
      f3NPyW_NTTGqj12p?&3)3p>v+Dmvr=b)j0ki+`+S?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$AbstractItr.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$AbstractItr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58a725789e649b9742af6c9a362b5e94b1690124
      GIT binary patch
      literal 1533
      zcwUv0%TE(g6vn^HZ9C8oPq9TrsfgHzP(Z*3h!4c1NmCOc7}*WO4Gc_Ya5^Pu{3q0{
      z3!e*>1tbEACbHASKgxLSObZoR)W!6^&-XjuIsNtf>vsS{xT&CyVPr*H*D@v7Ff+Ps
      z=_SVzmYc~L)~Z;%W7_(vVJ+Pik4vKW_CnEhG~La*j)DL~i}%vhtfkETg%zQ@3PKER
      zhw-wma5UF;7y_2qa2YbWn#J<=q8Mjrm@$?t%`G{CNdNEk#O(C=B!#G#+JsUdw%k!<
      zI_GqcK{2(W`#=z6$Xzyyy@L#?n)T>?Xu_}zcaot$QTwyx99c6(tPNl|siGMzVQ|D$
      zw4#H^63MwRoph==E!T>+xUN|`S<y_<M7~s55YDW&U<#R<t!w6-<`{Ba-VDf87{+QQ
      zs;;p#Wmzlcy~+{Fyo5ZjLP0%4dm?$9m%&7m+*ELpA%3Wtw`WTF^0X-mBs;yKi#6A<
      ztuXo!lQB~&nouuimsCWcGO!JX=-&xFS*s)!azw#i7Yc?Lx(^w$rYV**bH>$NQKd16
      zSQsN1Q!vVqsMQA*S8$af>`TdRVi>NyuzvR@=P475qRiMOM;G@DN#AkI^#K`|LCsp0
      zaHgmci-M{asj3A-`d_=Na4P>azvlyS@{-dRM1cP3R4|%1(5wz&`X!4G){XQvRiC%C
      z$S$OLkiJ&5(a8y#-J-KP8k<t-9ki$R5KZmk)VBAgOYV~%_)7%&b2RW5I753<MV_2R
      zHzWx4Fs-RGaIPG6lty_clKO(49|#6E`Q|~$kUZkAszOElP&8N2OSgRF3tp&aWxyU8
      z>L()K(D!H$iT#vZ?;uG-IwzUaTXc(i3Z0|@{u&B@gJ%8~G5!u+{5|6QgQptxBbHUW
      z=ytzHGEgS+cN)DUGL)R3)YCFaoFtREw8t_?EW`UL=7Y4ScX9dQ_7RScWZow-?=xD-
      sg(%-bH{Y(}h?hBnWaKrkWEBp7C+rpdy64F_CTI+MWFxo{sCYH`2X-D^vH$=8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$DescendingItr.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$DescendingItr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6b87259a4358db7448fe4f36b9e89eedb95e201
      GIT binary patch
      literal 1589
      zcwVJcTTc@~6#k}*-L^~xK@qQ@RxB;BfPm;Cgli-zm<Z{MPt)xL7s^!kLi|U@M-ouu
      zgFYDy-u{vC%vvv)k}R=JcIKQt=R4o|X3iddfBO!=2xd$q7$!Ewj<CYOtyxZ8IicrC
      z6<8%#ZOQ6ft?q2OYGXk@3uSIW`i@jpvX=wTL<_@M?A+OkA9%tED3c)>JaPTpFhijf
      z7r>^hDOb6{G{ay%ep-K-p=G{am1!`va-2dk0|QwO6Dfu^%8{$#c13#YqEeF#9i_S>
      zYGvWM+HN>oG+~Cx*maL;MdVFU-4V(mEF<4v&fpx*o9JT5$3^7m#s!9ya2)AJ;+0P#
      zL-SA_<6Dm;?LDCaYJJPj;1aHwxO^P9COI5e(Mc-lS6b&@j%&D14ke!l3|4HOxm7wT
      zTdR}fxQV_${f;s`{{McDEty6h1rz;rxlWYGQH&aW>d76AF~~6liyUqsxAkR;&}u?$
      zSPv_k(g|#>&j`n;j!J2LmMKzeKE^SwRZNCTmpOJgnw=SgJb^f|BmcR@`ra~R88U12
      z&~xOHt7oITN#c;Mz`&Q4lHPnx_`am^$sU1YNUymYN(7-tDDg>6tuNZsLw|iwZ1fT>
      zgFb1jy<HDD?F=OJfRjH>);L)ST3ZXnePjy7*WkNkCUBabNeY7T0d2JBdXHAL;|%n#
      z1Dy?smlUl_tQ7W;d4sd1;wxM%kkNC1>`&i~7lciYJ>1$yPvf1*etQS@F-*n^W!@fm
      zub;aF&M`~>Uu61pG2;L!<0H6nh`jL$v&Lu48DFque8mG=OUAc|Y**CNN`q_)i!_B3
      pqyeb&I}O@>4cbZF^knm<6Omqbquo8&wCZDKG=x*+xgYtbe*j_(w0Qsk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$Itr.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$Itr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3436e4677855dda04692c75e9af98cbae5117307
      GIT binary patch
      literal 1537
      zcwVJcT~8B16g|_yZd(RHP{dDAE0z|zpy1b{2_Qt0f{Bp6__SRnxKO5XyG#5>#zzt=
      z1Qi}l{87ex*ZT2Lk|nmu&b@c<xpVHBx%>Uc(J_E2JhPAz7~gVtT{{Z>y6rWL7X^Vf
      zp<VIKw%(YpH@t1%Y`)O%BAs6j0}EXO(}@vtwPqN&UPwrRbokb9<|hS;m81n6Le2Wd
      z51$K66q3WnssddLjSZcJK)1p<q;rtyQLvB^=p~F^jdp4}Sa)l6Ezn<Scy7Jw20r`k
      zU>6e>C@0>R6(Y)(yRqvUk1EK*ST%=BxNKoippdkV!Vs<qWL(eF%~-PPS(@*h$~jH@
      zwI(}oO-K!IJ2_m#4GY&#<JJMAa1#Th4ZmV_M-*=1HU*4+9}3usdFEH?d>mFMuW%Qm
      zfBT&hc=P}Lp1Nfg1&ml2qbqeLAmd63<Cvgs{ZQ}lwTUa#U9)Mws%>d6bXXHxVUn{l
      ztjRKEvd;Gv9<Xxh$Z+XX$Dq?WolTI$nelz)8!FHvkXvg+fv1;zzWYNR(#u>|KrI`i
      zgN3@=Y-$=084q`M&EGU`7zKn)PGEL@(Rp6}=PTi0gvdzxJc+(O9$T^`QarX4&yqJo
      zUW(T4VyT5(v2*~nM{Ww|>6xY^$QF9ZR&1jieYgPr^<$u2;v;4A7AwVl<PLGMQu>6e
      zMRJC}q32iZ&IhVZfqmR-VYvOy5`Ut_7RuzT5OQk#gr9p<Tw#v>zsZd9X7T_Tc?czs
      zP>`Q7C%<4`e#MeJ#!Ff&@+2lZ827Z&CY!+`P1!VQ0P1|EO?$LWJIzf$?A&xJ*6UGh
      TJ;oDS`EUgd*;9%*aeVeCv9Y0l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$Node.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8cf1938902e6b43046007bf4c1a7dcf78f93718
      GIT binary patch
      literal 1107
      zcwU`T%Wl&^6g`uerb%4-f)L)17H|TsL1F_$0UBBfDJqLr**oqiOzVz=A65Ameu71W
      z#DWjtqY!7D5)s0pW-&A8UY~o<y?4exet!E7;3*m<6a+R7y%Wz(6BW3AsQomGq)yzf
      z(ns=OD+v7~r3Y{2$5gKGh6l0)OJFGr2|PV;-}eutp9okgk;ein-M>G*6e#bhf%cL#
      zk^;s3ZF;O>Bu@m~ZZ2&GKFb%;qFUSNX?e;b=UPguq%9CTvvuanoR{9{322Aq<ck|O
      z@INs|(CW~vpokS43s~j!okp(=fy*{7V9uZ`Hp-|Nbk&B9iohcC%H8z1FQa|0A4qel
      zq3;DfFH*)nb6Uv<6$^+{t|6Bes7>=e4S#c=pSyvq_RT-9uCf=VkuP_YNmTzw$fn6H
      zV87E^MxDTmV;Pt5K)^Y#D4Q{gjA(7Yn0*-SSr?vgU`75!W^t0VN<;<BbLTuKc9pw5
      zWec7QxJW$qEMkf0XCjN|rRG;GHy@1%9*<CKZj4a>lIdLIUZWQ9ip<wkdBZGQSVafd
      z>1~eVaf52e(9NtagKp7R$k1(==Wu6=e|N&4pYW>_ewF+p?q#*EVV$SxM&LdkqJGwc
      F^9yP76&?Tp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingDeque.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd8bb1c18d225be4b0dda790907a7180870afbe0
      GIT binary patch
      literal 15659
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue$Itr.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue$Itr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4870d6a3306e39ee3dd73dae68a9fa2b923de169
      GIT binary patch
      literal 3118
      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
      BExP~!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue$Node.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d591b479aeb1b71557b2cc2bde8691d61264630
      GIT binary patch
      literal 792
      zcwUuK%TB^T6g@*L1*|Vr#P=gE3Pu_eH!2}UgNX^z7!3<|rA~09OigKxewGVk;=&K`
      zql~u$8Wk6^=$&&PXU@I1^Y;Go3SbLs1`-ULH_n}7N1^a+*OzV-1YCx8O~@9%I`DkA
      zC1mp~;t^jz@vpc6onc&2JV!R|)5Z;VLk3-hyv>lU{Z8#Mq|ZfDI$;!W2JNCs5nb|o
      zBH6Wpw28Pq7^6&T6{01}LW;1$Fm3fWSg2EhMU^qo4~dq6h6xiUved9usHed&Wnu_P
      zhB4COCsDh>gA1qO@pxw6b-cP0h}iE1_3&DB7}z~S?q~kt_OoW^-@~XmO5Z2SocmGW
      z@*@#nl>dWLitlDHkEP_nq33iuyklUQ!TPT#4G}96qg>tXUt6U=gcVwpMsF*D{dimC
      z8OlqMO(XN=4-*3IcZ6^^GKw)eF9{{+%oLw7Ufg)X<Rf_+rpYE1r-~feT(=4{^g*G#
      e%Fq7D&3)xks;_yaw17nwrJsW(>NwTwVD$q?e!=ws
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue.class b/libjava/classpath/lib/java/util/concurrent/LinkedBlockingQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf0851c3e808c686b167956c4122da796f0876da
      GIT binary patch
      literal 11808
      zcwVhp3w%`7o&L_9R}wC-Kq7&Jmw-toF(BcU0E!r3VhBPYNTBF28N$e9CeA}ZMNw3&
      zN=s3<D+*d)*p@D!6128L+il%;+isuRZr|I-KDw>#w!7Uv)a>^^_s-2tGC}$6k{>ze
      z-t+pO@B5$c{Qoy!dgqg`1DK;4127aSZwlWMuFGa(@w!Md5y_@f(L|=MC6?G3?Yugk
      zjO>ghy4Gf+*=PV>g-iN-FWZ*Rq{5Mm-RM`Co_DH2lN2b7*ZpG2y0&O47LLbm4R4D_
      z6~?6XV|z4}jwKTtLf0s$W`&W<lZkXDoXE6?<JqY1so5=0UG<B*{-9703HO8}vCJO!
      z3n};_$!sE{5Nye7MmUq~jz#L0=^~WKM7yG?Mg{MVXt-0MF8`oBFwAI8c1Ag{ur1b=
      z2xqb>T3&x~qZhAlYFsL7$HQqFT#yOxjJB|oLUsO$WQKIzx+v=@0wH}lydaUxG<EmL
      z{%2ii9P#UnWe6$91bVU=YpDQ7ugJ#Z3gc#k(}Z4nq_2skg$yF1I=I5(NIaH^WtJ*<
      zDy!OQ@p779giA3qfEfy-^{Vl3qN{E>_mVa-3zsRBc1F{&RJ3zhZrZjCflBL1Itrms
      zWugL;Ii3hbTeIEUqN(+k4;0flx<HtYz-RmAsI)*GZ?(58GhA-s5=<z<Y+MnbD-Ywv
      zd2ll^7gGg#)@7o3Cdx2z1QuXX01FjnycZx%G{_`=%Pz5Ev56)6RW=dV@Om>lV(DQC
      z&Epv)r*z=v_w?idc<<hsbFGmMWWup*^coYBFhOc7Oq63HZH*;_ABB?2mVP4FY`ZBM
      z$utVv{z}eP)h=VMHBpLj0jyT2eXq7?UoS!n)|j{st2p0c?M#Jywa!Ev#u27ObT=(f
      zyM_88M$ltu0ezL7L~1A<l~wt=`6{c}Q4HN|q8Q_3iT9b<iVa*MmWg(=%l24GPFvx2
      z0<y<C10!^OgQm=LXJ21m5ohQWYYDoyGE~)G1P{98#nb>|blmqWEk)RYPBAEMVhqNL
      zk95heq=_EftY9XhyBvR_|K|4fZbvwPbWUhB1fh65+7*s3OLb+t*}rLbB-$e#i;zN>
      ztbdD%Q5daIR_R(`d6L5-dO{(3O8&ORLG4Xd?IUn2ZV%wLoOBQBXJRkzpjr^<6tPIr
      zlLu@kWWR45fql3;fV)Wc&{pw?>jSul7r|hLg_iqF9Kikbh;V1;FfQ96^FLtXK@p+A
      zj&Qowa;}IRt-PCOBbhG0(C+C7>DaANEnXpE^<fi_;6r@wigNO?sc3hYZk^~_?%YNm
      zimXDB!$mrP#}p>JNTZLWQrVtNwA1Mnz~ck@w9+-NOU9(9i_{~Q7acS4q{z)!aSvy<
      z*tYl{QL>Micv@P0;a%aF2JcxDE3rzff8NA#v3@kIUzX?$B_iAa9Y=b7)I^PpGh*EC
      z)Rqg|E2l2GeS4H_&&xwbbAESTAM1{8pa_sG-ddtB@7}Qpr|@C`rxhwL*ww^Kc$vg!
      zlC9xHGA$>#xvE(J={0dynu;_ac55KRaY<pyo8@Spf_Jfm8%|h5En(~smFLwh(48}}
      z5!VaApE2=S7r@s<T>$^BiL3SP)032ox4!aSH=j@JX1@C{t(xARXp|!7=laQ8w3UBv
      z;zmp@!hU?k#8>4s`J*>y!|}9$^feP-7vl=8t7BO_E<?U)A}nuJl89L|@%Z^D$1(0e
      z^=Q18rBdNNaww}d=QCJ^8D!*d*(uVOrz!tLQx~sq82Wx`<>vM4IfB1rYd<mZ&-f|j
      zhy>`Ugo_WjHT26yiDG_k;uq3&jC4(Q_aqa9QSRL${44%FfPc#cyn0+Jx?QB9PVd&l
      zFYzC|K`7%P9iB#_;?P5u3FV<MfbUDxmu$<Vs2hVXHS2Ao+&sTE@oT&(p=~@GP6hCL
      zg$ex~o$#tDl}hr$`JHIP4*bEy|KN}0(Q?2xQ7O607$OHcNn2ul@&dO(X!zTp*18Qs
      zavR)7?h?Z)XRWQA6Ngzv8#DES%Y?MpD#KJB*JhT9_K)Ze?{13gLq%>U<-KaGI4Gb3
      z3N?ApO1^j{lt~pSzbfQ?uZkGxxD9-l;7xAP5xY{n0WFUEQDmB9y;_sa@LnLh(Qr5W
      z2h=D!X0A(UO~1&iF{(JA#uC2aCot7GIhDno(e2@EJhQQXWf@*#su2=!skB2;elsYE
      zEIV^HPabS@C^69FNu+I%hf9db#H-U~e}$S7Pz>+OhMmk*Q}y*_o4?MnK{%gos!JsR
      z^Q5C0nQW%1Cg6H9eF5Wmp2CqxG@YI?TcQ18h|Aw~n2gI_V@`kd3Wl8j_vJ2-XXX}~
      z+h46$*m4nTzUQ9SlH$s_mF6jIyoi;C+1)UycW#mS7kSh|{X-Whth<<@7b4r8CKt6O
      zv#CgQMNG1<33;ZvTqa@^A4(*mDSZy25^xBBbX*FFLV9sizRSvG!hkO*mSW{MFi(o-
      zoCWtcltxVBmF<B69|9=CL=-|U@eu&uNoK@Ufc0WYNm$-3xf0vQ>-G{pmkxL?mLyyE
      zXO67PN%nKOJdc?mX*{22q5xAcl_RIgmnD|+Z)~yZ#q=Wxc#p&Dc?p%L^|aOe?blsu
      z5Y%tve~mNzLA?cFTJ_7QZ3*_Gj+OdXK{q*$qSbuSSaVK(pJvBGT3N!*9zE@J+5tql
      z`|WJm!Il_zbQ5jeNsDjd5^=p`sa|v%mf}j5KDNm|6|UlwsZEo%W!kW-^BT51XIRrk
      z7?$EvX|`n9atn>vMZ<P;@m*YE&oG8f8rCod^!#m6719RAI6}skRMW8L*U+*lcowZ4
      zXR!7Rnom2%6zNX;IP@;pq9yjCQd^G=_M-i5%bd1$wiy!cI?Hd;%O7M-@G0Z!9WP^T
      zOLg!JI)X1_%j%#ygDo|u91}`uDR4hgc|S(t0Xo!!q~IZK&Qxm>+nfSA>J8c{i|Nv0
      zn4t~p@3qY7RpRt&XD>ryU7NZ#mV(}Bq0S<%mPJ1%qx5tSbMPaqKdKF}03U4|a@Bx0
      z76swF3vlK}Yn{fy3p~yRo?!jxds;xrcL#fcm0V8R0@cOa<3H&F6Teo_9?e7&2+V
      zHEGnI^ozE`+)#ZM+pAy0j!mAkxakabvOas$S#+O4ZMC(d#2M80zg=E!ZIEx9CLP6y
      z*N|dE=3MopGssp~i|Z-N^*RQ)UNy}HPQr^8O3(&+_w|^C&6JF-Sj;qU6;5L{UgXnD
      zF4w%lam^dFfVt1Z4X$nNavXBE-rh0Ryt1l=S@2abNohTfaka1FPKEQ>zq-1n7x!-D
      z^ZON!^!>8mQp-cn6V}i0lzx^xd<IqcoXbP29jmJ8xd&;%ME3r`AP=o}j*j&Dpwp{e
      z^LYp#vZ=VncAx?RyR#REPdJuXTKQEMxdlVWEpSkH)R{44d(24An6+o^96arhUDJ*n
      zGVMrb+P@+-9(<T}FQ5L}EjwxxYXLs*4Zb0saD<-l#5rS$cu1?P+u)`D96b)xlFO$U
      z7<y@onDu1eo5wM>!RH8RneSXRMe7;q@!XPf?~T&yX-se_t=Zt06ISLwCq+5$7kcjt
      zr)fk5=3ya?t3VfjavSX+mteLgxzs4UNiF#eb>p|}^%gmLo2<UYQSYDueOS(2uTTcA
      zW!AA)d9hjf(53u{sQ|iF0eV<wR3Ub&BHYdxTfkdND7ksZ8}@1+P+TiX#z)hxalCp&
      z$30xPQ(wJau4dw6_&B{x;I{mHuj4CwwTFmDoWLjY0RJ}{csWNVpO3nMFY`|A#mNOe
      zV}3vwXwVMTP*_$#4$2B`+@HoQ3ueA}ZhoL7kOR8O1@xj)U*RK1Q6xhfJtw54)b}dR
      zc(A~Cysx*RsGqf>a}6VOx3UrEbXgLxdGVg0`B7edSsGu-gS{VeL+{t6MUdRjP-QUH
      zM2uIHaEU5Mg{r`%YBDO-G}No<Sj3dzDm8<|%*1*%3mX;ZQdc0Ns+cMSkySO=rE0NH
      zU5@=~4(?^!18Ob~vOKKn@nJO&kE{8bur0iT37SLLQJXNSy<+R>QM`&z65jE=pkCuU
      zAFrqTG@SuD&OS|N0WM`GEOZu9dMrANTy!3F=sfD8^L|I9KBY;V%bGY))=i>twz|e9
      z>nZp=Cyb?<O|Kk`x*CVZT1_LLpIcgy<FL%d;m8J`jA-P!(q)BBOU2{xc~5vw(4-(u
      zYj?<KrME&gk&G1>t5%|1t-@p#Vz$<dS?XE@)oRY%ibl1Dgj|PawHEEFjrrMnyiaYw
      zjVz<8ohN1^Pt5fi@OrJKSqJc}4ft65G#EUG8#K5c-Ue$lxLy~KSqI3h1LUW9a|}Hf
      zIuKDEwjd?62<;RRs<n`_Rj6L85ar|WV|~BR2~fQwKxgrK3meZ<f1cH7);nnWEj0ZW
      zn&lQfg6QXhr?_e{L*YtVQ;fCz$zj?qk)YZNL*0OYx)CE)7{#g+B`Qj6JL%-xQLVZ#
      zSMA_BJBe+a*mk2yC8$D4w5cBAdo$Ijhxn$LBBv2o8IA2KYo|80jYP}}-Zqm*t7b6h
      zwR9*zRTR8E6!x$VdA+pHtwYwGm9X))W@~q5vylHhzK{p`H#G83+lq8ZHF%BrzS=1w
      zMSiV71)7CIQJkY95r>aqx*$zr_;h~0uf#{Rn_OrwD)n3X!y%38l(dxkE&cHy?|WVA
      zPrXZj3T^$7vc%`2rp$Ya7Pm1TjL_c6j6H6KglsqK(k()};Zb|wSGSU*+b~Yujxx2E
      z9POj;--Q}=H#yo*F}ep=t9!}M0ko(Ok)!*`(E}8t2kH9{A)yZ9W_1W@w(VAjaU08h
      z>S4whk5G^vb&1d+=S&>Z(xY@uq{qXbgPK7v<>3L%ppU%m*K*`1AA2>I1-w&sX)X&X
      zt3yTTkj<qvTf64$^MgZo3a=$XTZAe}Z4MuSPn}Y$wd~l3r!J^js}$BG+c{6k8GJql
      zsf~*SM*oV^d8OX3TWcQUN=K+Sk7Ja20%O!so{eLepq}I<@Da?QPgSXBaJhPx*guCW
      z)p0CSFYuQBC_*e-)yJqmA4i8e;nJEdP6oA6qonw|#m*jz(QIqY1V&w#4APn{HeObL
      zD@yyjA*s%<`Bv7EIDcmjt!h`kD*4aqnm14w)V^E8B&fkFb^2nfl(pv|88&Y>PIDP*
      zb!oxUz|aBeG>X)Vgykj5@XM5nUczw})6}OhQ@w)A)F)BP`W%+^>NU(`eUbXKhM-yp
      zy^S^mWBF`lw-tOZsg%L>{B}(?ZXNnYd*fEG5~o**hTx05w{%#kBDSj>;C;n=$+Lvy
      zeo1!RYHz!N>Hg$knU`Dc#g`vLfp^Jq6qk8h<<(kor8oM1R{j{4mw6>CtktiXqjGq2
      znfG}{z_rX7EMU)D4rGUa|6qlGKCbu;OQ*k4E;pFTcz?G8-!}O~p}x#h{1p_auM)zq
      z5yG!yqWT6Q{3gBWTfD`-O^^Bx;rlKY^8FI^J$lvmu~Pj2*Qp<3lll?Eiyu>Ef5H>|
      zQ{1Y4hC9^HaTm*b)h}G0cECBo2k<Sew*|Np-=@kKguV;^NSHm;maX^>YhD-N2W-Ht
      zUL{Vi5`9L$i+{2JXSC|k8XvNO7Jpkj>C;SJJWE}Wm(*0;<53#+HW$*rs%h|Ry!@ve
      z;5e}ti?k^gWb-L3P=A0|{gH6}iE#ay;`bL!QE%~L`U?;D+w`tJ!t^#TrgtcQeOSTM
      z(hoz(hQXvKAJQq>SYCwR!}lTK?=1X4A2|7H)DMGo;6gSGR$FfKKXeY<kF?i~wn2!v
      zKv)udz5Hnu^ECaq7e6b11^;p$ziJr>N-#et!PhIEMIczA+JeKt)5g3Z2hR%mSY}kh
      zYw)%-f+#j>G0~{OG@}le8naPn%s~Uo6~+~4G3MerqaJO>d~9UdVa&r8)^9WxxZsL7
      zUK7zEi4U*Tz!?lGXWMYq41mi@$s$fl_G{)cmWQNZeV8iM;GD&8R?ALmPPIr8wDwb|
      zKm1wynJiEmjoi-?6dG4zB+JppQjB4Jym6H)B`h715|%pa|0i<aCPd1F%C?*o@LaEb
      z5tT<!VsWwM3liG?j-l;;os%yI9rgkD^y0s*6JF{%;YGIH^82(lekFf$#$PU9GmTX=
      zzL{iPiy1}>YK+xrG+MFJSc6r@btGXeT3N0$*10y*He@qx&Sw6EKRX`x7wvI}U}&n2
      zx#RL+_4BTe9rkWT>i-{h-75R7)w}jAtr72?VyWn>c+0>>OD%10w*C006(_W=@8HjX
      zbl2ESe6|pu_hGED6=lYas4%u+rV&A{(TOG_iq*z;I%XGk7&{O%V(2z*LXu_Lh$Cxs
      z<2ECK14a@DjUF80^AkqOmF^yM9Qc_1@na^I+jmM5b#^Vw<oa#x%DXYc<;vC}IOc@)
      zGRHg493{>iQnN-{y6`8a=r&6Vnx%(fh59Ei$kG5!$b+g4sRs88D5xm^NZ$`D9@A`f
      zlzA^eD@nizH@6j;UZpH@O^4iy`C4O2{3qNRQ-LS(yhEFgKaJZ-+g{Rk2Wh*LwCy8p
      zcVmjNAC<;E2pacdfpH&}7zc2TaX;Pt9;`JUzy{+%Y&9OjEyh98_5tiSK8S~nL!|65
      zo-`i8Gc2Ds9>xo-pD-SE>Cj1s#*;RUtSPV7p(#vrE%GWEVGh2%PCDeBw8^u2Sw!u{
      z9S%`Gtr1NeC9@a4ru>_#&#Hp{kHPv&l<|z~q!tc2sfG4(h8m$vPHm?jYNVe0v#>t&
      zEflhYy=rvsSRTiipu}FiYJ80qk@fv9sQ5JSyjdz!!=C{v<Ke6x9|}AL80RU(B$hKg
      zCTct*QR^9nIiAs&%W{EdjO(-DLI=`?s#IM92|dSa_zc&rx6lbQ$7|3iplX6Dvv=m_
      z(?|y8vbRr=D4BOI_f>AmhnhCz6Du2MNWAHn1Xq94Jl^+a|JTe}l5Kb<ay#WPJr$_%
      zOv7}~bj<QxiYm_x)On`j3ePOpHs(6pn9FU<;x?u;NZ9Ip-L$qb*WQNJ#%Os=fx1jp
      z+V{dtSl=`y7h5iTyZ`vJIrqmO4ynpJq;~L-4Xz>8Dwt<T$KWArTtjN|4rv}dWSwhB
      zt-9PEGRwZ>{PIVQ=D~l-a*wG~v-2#obMP`Pt|4>O6?ukaPYfCoat)cQ>hla~8obKZ
      g+z=+V^Q5Ncs|Aq1;2E?)sf7%Y*;6fYj%&mJ0-sylyZ`_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/PriorityBlockingQueue$Itr.class b/libjava/classpath/lib/java/util/concurrent/PriorityBlockingQueue$Itr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48da2c113c718d986300d87e39cf1a9f6e95a6c0
      GIT binary patch
      literal 1869
      zcwU`UT~pge6g|7P5f&<#pcqIA(1xb6fS8arZDX3GP)M9Q4q%39KIl}aJ0K#Yj=ai{
      zztZVT`_R1Pp_vK!XlKHE|3rUDliroVW)gP>>KR#g@7{aQJ-g@Xuh)OP0&pHH8aTtb
      zE$4w#jHTxn-7s+DC=!7zE=FD$dGg_`AG-IwU}Gs3u^21MNJE+-m*n_Puu;6Vz9n3#
      zp@ZQ>t5R8t$dO^hka42OdC1UrxAJyUiJ^n=>MD$t88qLi%Vi<SEjPXT*c8J=<>=k1
      zax-4w$;%A0)^QTsv{qPUNY8~oh%AVh0R!*pNWnDFjgt&1tFWqe`VDkJSJt2b4V?@<
      z6)zCgczaz$E6%zvD7zB6j=$<eo?7oa(~2R()G^vrr%xQUO{ZQJJ2GkFj)MNcKo&aH
      z3=+3#71|wjw&raFj*KHh&sc?(`I3f@8Ae+TRKr^AZqEB+n|hevamA0)3j-ZzVbak?
      zVmo{wG>kKhw91!#Uu-yjO*&E>O0i+;IEN_>MF#um91W7?G()H3x}u&a;M-%}WTAbq
      zim4Zu1=*1kNV<^wB^{sOqJ~cytfS@__)J}XT5TzMUl_QAQmftb4A=g5y9W`C9UWid
      ziUyK$|9^xSxQed`+iQ+m-a1_GU<6BD$Y9REhd86Gc>@KUROGK2xUT4Q#DQu`ZQd|2
      zj1ii~9VOc~BI2GBSUVI3y%xriD;7MZ?^A6FC*K+dqZ|Yxnxk>A3mSqH37cX3UA#6p
      zGo;(gC5)2nQ}kqzMotYL)Q_ehd3ULIE~kc;R%v>=(L>QWvR1$;6EN-ZUG&<|(P#5r
      z<n4)F3_Kw}$0_<hp|UuTVgDe@UZb16!TaRTD<@10;dFvzCfJ;6)4A;<TuRo|fc+Gs
      z^bEZE6`Azo)Z=FL4z<ryNkyX(yI+y1Yoe&JB=)1Eo=YrM%w)6PFX;LcXKz1;wP!1*
      z>Yx1fZL;sAzu(2^^zUy`(O~dSm^_Oit{(!PYyy)i8U$FDGS#8QR5bsy!m<f#VlTlU
      z*L0<EWKYri0+Y{hp<#Xg3^O+$VR+&tX6ZVAgGtucH2w#13s1;F-}#^3{QU^IYRf;l
      zcPNIyEi7P-8d#$LwI-2S)g14J#(U7ia~R~k80ID{p2tPrkE?tD3;Z+|`5>0ax5kI?
      z9j!O{Ft+F|`A9<CZjjq2K8Snx1{I=y0e!fMDxocrk{VVDw-WqC@_|%Eqd{}O+`OUM
      Ezoo3YF8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/PriorityBlockingQueue.class b/libjava/classpath/lib/java/util/concurrent/PriorityBlockingQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5184f2c139f06e3094abe4e647b854ba23010524
      GIT binary patch
      literal 8073
      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
      Gd;bN2Ky;e`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/RejectedExecutionException.class b/libjava/classpath/lib/java/util/concurrent/RejectedExecutionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57f1c1a401e7ef93c108d482f1f3aca1e8d40cec
      GIT binary patch
      literal 847
      zcwUu}%T60H6o&s3k_-yr+6DsU4vP?~4y?IsxJXn{7hGm<1}hj%Jk^Yc@+N(bN>wAV
      zV2%0^eUL6Hj-3%yG$3_jA0PkcJHL;A{<*yau!&_41%iJiu7#f&75QPT!z@XpHvX}^
      zlA)0o2RAb0yI3FGgz~cuJQN8tt|$_^?H^~_sE&NRCyb>sQ6dUtlJfcNXrDkI3B!A_
      zPL0qe5K$&ezwdv25AfqFp}eiMGP{I<##%rq?!_0ff&q+FQNa*lw57ECly%N!aw^Uv
      zNtkHGAvX}*hR=DjXf9Ps*lhjhgSH5@M(gQ8Cniz4y|ort4>jxI4Z-WkG!<>v`yVNx
      z*$41f=JYa&zgU+!b;eTbgi<K7l$o`@T0*_?3S_}T<_MLOI7>o#sO%6HUVi5Xi^39k
      z&iwuShbW=UyT_*j22tdg=gn)CGd}Ocd#TyQ@HZzJ<+bdRb&T;^?FlfB2?yjs<;A<K
      zE?9MQy^FU`)fJar;hI%PnCz)?f{i9I<r?#Na@G;swT8Xs`ui@XpTm4E+HkPNp6n6k
      g<uDt)!z`;UcCMer`RCMawz%_xMa!}l7hTQL1M-)ud;kCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/RejectedExecutionHandler.class b/libjava/classpath/lib/java/util/concurrent/RejectedExecutionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05e10edd111dc014e37c0ef83906b6e471bd097c
      GIT binary patch
      literal 245
      zcwTi*I|{-;6r2||Q7b)wy%xGyr?F8i0!kG7&E}yA%PuTg@oW|zz(a|N7J}#$kAXM8
      z`{Q~8Fh?&!K$w>DEQPNMEtECNJIAIHDVMA&&X*Tf_0O8MG`VIMp-mXPELxhQ*kp~4
      zFm&Gr!eX3!gsC@1W}4&VXW#zhSms-6^*g}2cyb{0ch)<_t3oqj^l#Lxi3|yZ78+2!
      Nv4gN-i0T`l`vh8SN{avh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/RunnableFuture.class b/libjava/classpath/lib/java/util/concurrent/RunnableFuture.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bde8429163fd24726c6feaf05d01f09e4c96567c
      GIT binary patch
      literal 328
      zcwRg8Z`VEs1_nb0es%^XMh4}q#Ii*F(vr*^{p9?-<kF&|)Vvb?pwhg&#H5^5x6+c*
      zqEvPU7DfgEu)>_gymWp4q^#8B5_SeQMg}2-C`=DK0|z66G*)9F#xXK57nSA#Ne#^~
      zMh33n{L-T2RJY6=poB20#d;u97#TQ&Gt=`DAzI^X!mNDIonmc=DddCcGN>4KSJ{Mw
      nS=(6yy##a^0}}%)13NI37=a$=WZ(j_m>9UhBo6~GnC1fju3=q@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/RunnableScheduledFuture.class b/libjava/classpath/lib/java/util/concurrent/RunnableScheduledFuture.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79895789f04162048b4c85ae474ec6b3c16e9ea5
      GIT binary patch
      literal 410
      zcwUWA%MJlS5Ug2`_2vWIIFN{qE8^%RAy)R_HfAS`OlFg@<L1X4e1MM<W5s1X;?mve
      zuCA`G>+O62FhJdfL(tpPBlS!yq{kw~jMiMm-qI*VH<J5o$3r7|I5n}++(nk4k!(n+
      zw%&ZR=PY)SCusfTd94=++8=?bLj)ypSa2<(P%wf_r@OW-KQfx}sgQQw{35acpeHE$
      zVyozr>NF09v$W{Z<h?cf<A?Do7)`z)Q&OH#>y3Q?4svj<@5DM-M9EeT%1NxCn&jFY
      D{5F0|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ScheduledExecutorService.class b/libjava/classpath/lib/java/util/concurrent/ScheduledExecutorService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0266970951ae3da362f94804400a590bcb534843
      GIT binary patch
      literal 960
      zcwV(r%SyvQ6unccY3tj9J9jRspuw#P0a3G%g3#2uQFJ=Fq*KNT#F<jRz<+Y#2l!Fq
      zB(bqb#7(*wxQCg0&V9`J_<VZ@fD>q2P$O_OrW0yw#f8mc$#jySRCd5d7;1sx<rJA#
      zaS~uM;S4RP6WGd91eK9}Jscxb7OW81FD3ewPoVMqO-<mg)BR!UX({PYpmWtNCF=7h
      zypdcv2j%xg#lBWLL5Dyy;E|*$An>q2DfiGbYEh^B@i`TuLNTNC>JColy2)4Ic>n0T
      z{ek0ER7B22pgr5=nezD*!yZ*;*7xPJu14CZJ}#0!U*_(tv0JW2S!)+4=nH{X5bK1Y
      z&(r_A_m@kKQzc^w0!!vB8@JVsZ7gUQ)HJ9DtqiXgc+KE-*eLL3YO{H4qU|i&`2z20
      BIivsp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ScheduledFuture.class b/libjava/classpath/lib/java/util/concurrent/ScheduledFuture.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31ef0bcb3dabbfcbc746f2b552d51966a0adaa15
      GIT binary patch
      literal 330
      zcwRg8Z`VEs1_nb0UUmj1Mh2Cv#Ii*F(vr*^{p9?-<kF&|)Vvb?;N*<dl+v8k6t~in
      z(xOy$1{OvJ0kF!P#JqHU|D>$c<PvrUHbw>+tomJ2a}q04Q`i|e7#XCos(={G$iNkx
      zUs{x$>Xw-U<cOfzs|V7`$iNw#nVy#jQJ-NGX61wK5^Fn5As>7W!yyZ?)g~m&+Rhs2
      bH%10#1||kp26hGzU}E3|lUxkkV44R2S}<fw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$1.class b/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6aef91f7047e746c895926760d98badd0c363ef9
      GIT binary patch
      literal 1597
      zcwViPTTc@~6vzLwv@Bh=P%G3s7cJTrr7hyM6+?g;l8ToSOnh6mBVAZ#lf4l9PCiH?
      zczG~B`=N|ywxvR;7$Rw=J2U4$zddKpIs5b1x9<Roc&b8SnBFk9jeOu+cHVS^8MrPN
      ze!gZlcs;OreWl@YqyExy?8O~!2EOB_iz*@viSV3li1qx7wGD3iDtZ}`e`rfScMZ}r
      zD3;GKR6TAgF~n-tx-k5}<qQj5B;{&X|6T_|7;83f`&kJjqcls%UcX^^=_12?_p>L(
      zw!m%UJ+HrU+|5@354gmYEn)ey43*3o@Up86k$I=iV_-O^qaV749-P+^#}GqLCcCO3
      zg^MaKFwFh;`*d8wWx8d<G`UBYQeb#@CSi1Egu13e!&Qu^xW+L052=n(j4||C?Se^V
      zvfZjhUfFdWD*6}(tCrx)!PXjgS7aej=~W%muvZP&lIzxHMAibs%;`feQtH));VttW
      zKg`S9engSeaSIvZig3H_XxIk_MOl){DIJr@Q{5ktG+U*lqIl3NM@~|;xqQpn=8`a@
      zV;Vym1$|$#ZZl{#CvZ((v7~bB1n;LLnn7O@g1hs!;d$IsK@k;Bdk@s;oylh?ACKto
      zt$XxpWP=Va3e$ExORPWVe#5DwKr!~vh(e(s<(K9$`bH_x5((KNG>_7VV}LA!G<y~*
      zf#KZb9um3FNaiNLV0a%__AtI19=$>T1B8VHD;tO@n@H12r!^hK1a5{l%4Z8YLr-bb
      za-T5%6<LN4ZBnnaDE1+O)+SJHT7(BJLcB@1!|(%zj~$S$Ly&kILaFZV#$ATp4uUxD
      zMq*BuTZ=H!B1CihxYzM|8tHHch>*W>_7IQgnWR|?k5Pse>f}x{2~RK^s#6&G4PF?J
      A2LJ#7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.class b/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..424908fa8993d0394efe1f326d05dd3b5d0f268b
      GIT binary patch
      literal 5234
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.class b/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1870955841ceff32003785b8a6329adfc316f111
      GIT binary patch
      literal 4323
      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
      a$F)=#+Ryat4K}c9XQi|qKMzl-U;Gz*t{;y8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor.class b/libjava/classpath/lib/java/util/concurrent/ScheduledThreadPoolExecutor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af4be7284dc6e47bbcf2b922251b03a3aa92f002
      GIT binary patch
      literal 9440
      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
      RY8LFKx1Z2;3tj&Q*Jpc%q2d4l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Semaphore$FairSync.class b/libjava/classpath/lib/java/util/concurrent/Semaphore$FairSync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a216087fe3f476279e77d22bc7abef104399e1d
      GIT binary patch
      literal 962
      zcwUWDO=}ZT6g{t*Nt!tQux+$${HXRTiEX1+x~UXOr7%(p679l;@R~fEk;zPbGb0rL
      zhalq8T|wQn;=-j1w+h8?e}rrGOeO|FP!}`rzWdI-=bSrlUVne_62LiJ$e>GL`nJ3)
      zD^cjUm74F>BCVAdR;sEgw;R4z6RXnE)g7;vfgv#d4{!_==ns^3q`RSX;P~Ek`;vgT
      zEYP#!dqF6@a6`J0G7H~s-rIk4|EWOwqT@N?l7LaPOB-BP{JP2^g<cCe91`eTb3C;k
      zH8+*MCO2IrFtFy=$RNqXeLHD{4JQyNt^KE^MS;w=(oH91m9Qy1)H}<yJCUPRwIQ{t
      zCz9+OhB2DK2obH;uJpDl*BV;Mx`hIc(Oa7(NeT=V+bVv8F6JO`!otb8U}#H)tBwxB
      ztC5OSJwe2PQx;BRT%enPYA8ecN)=-X0+SY|FirC{zqw6$%U-?O0hvYHF5O_AObpOc
      zrY$NS*B@e7aVzE*$nwZ>lM!Y$r^K(}Z3*P6exz$^)rk*!JL8*+TM1aU=PAA7${<id
      z2Ipz*?_;O5UxUY4x=Ha83XH-;nrnu;E_Cxj{LPuM7%g!hXVT@uK6;+DFnujVoPERE
      zx9DedBthXY27p#Hh#~eckmp&_>j@dtT<4$T=#}ywj<3(YLT+~EG0d)A?#C94yiuqx
      zn0fOdddqnuZ|-5@!H<Kyx!WP0LYD6XHh#zGJ?TD>=p$`>!Wced5?^TUYfIEpLe~*B
      tk78R?1tpZ(G0XQEJ}K6ZV1}m#y9{EMk;(J97H@?eW6Qjw{A=ei{1fT0+vflP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Semaphore$NonfairSync.class b/libjava/classpath/lib/java/util/concurrent/Semaphore$NonfairSync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60b43e7318ee762fb1d421c2587211b2061defa3
      GIT binary patch
      literal 657
      zcwUWB%Ps^#6g_v0X_*;s#`_f(h!{2&h(tytEfbqz_NAv}N_wiP?v~6S_y`+&8ygY}
      zD-!VuKEP*)+uedhJQkJvsB_Obb?fQ%_71=@rYxig^GD)T6vIHdMaR=lXpGcBu_7Dd
      zxb7J_v+L<Yp-iQz9Sdo~^dI;LNa*sVQNpcC<10_^+gk+MA+(n~?FT{!RpExR_4&NI
      za#1*YA!OE-R>1}#J!{WZIh4Gb%%TMyd1R3zbe5HtyJ6!%nmuvgN<vTBb67#J4%hF^
      zbWm45VWIs0SFI7OV`&;H;6bw4dtjQI&Pk|@tki{(wZxU31z|9cAruG$Iw9Em25l2b
      z&1Bh%7aB)ytH@c$hxlUTjgYssmZszi-<Q6H3BvgArU|((wz0%^TKFRg!)Qf@qs3JU
      zZF~?djXQbHHn@&DnfZ|$v|q)T&KMDO?|JqCU7QsX6uQv^#91%;m?MpTzDu}PKe?_k
      eaQVR%sRNHc@C?U1DU8JUQH;gvyljkP5`%BYpq9A+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Semaphore$Sync.class b/libjava/classpath/lib/java/util/concurrent/Semaphore$Sync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5d17a761e891a1f7050d470eecedb8e620eada9
      GIT binary patch
      literal 1293
      zcwUWCO-~b16g{sW6iR_wKBWawK%oj16*nRY!I;z#gBFQ#<uHB1Xql;RW{kLX>qbpX
      z2!5>8jh`DZE==6|UtAdX>X{D)G{(4@_wIf7+;i@^^X13KPXH!xGKHAH;C1bmR&pJq
      zR?;m~ca@T+Q>w^St-fL@IaFCQ^%N2UlYcF&S^5pTG_zzoO4FSSu5@M9gRCgaH10?x
      zkhP^UwA!Lnwqco<%4Y<`If0g0%d{QMbQZOmE0fuK?%mJYR;NJ2lwlgqv_N8{Ji5qZ
      z)~d=h;%LnvjW&V!$mn7k0(&yZp;@5OmQKad94XK?XPEN5ySgORg0@s+CO2p4B-bc`
      zahOavD~2sFJog{7pAtybrCK!{B1Bmry)2#i?F6-yJuQU{`p`=)%aN9D(=xAVhFVZ-
      zGx|-}P_nY3DOn8$^HKXVIDkQl)UDMz-)78eCBi31%H`23Y^eokvNchzQ43~hQj|%j
      z%w<~asI`l-CN=vv4iBt?w5PpJ)A{D=GLoP6V~2ZTkO~bT*p#<<WU7h`JH-{tRk}QD
      zc=WB2OXHr2EH0a-RI@eBCR++81p5E&E@?b}69Y6N&L2{s7fCemOfia~k#}(8&CFzY
      zJIh?m%M`cJQp|56``)i>=eO1Ga32XgKocIKgHcydjZWU+-@4JmURmrVQ_!=-Q}9d{
      zH<5o8wQKN`kNh^7pdf6MML+h1;5tbYJbOIw=|a9b-M4{EvCy}Pf%TtX`*!+u5f5ze
      z`<U{cpaoBvd*=5q20bE~Js9$3CW##8Ek;Be4)PXf{UMBm?3ao2hR*ry#X=!})#v@5
      z*x?OqdCp!hsQjhRHxQsAz8pqFz7}fn__8=0nZ6v(*dEQeJ>Rz-_j7*9Yqoepv2Pi_
      z+cjEyMAeQXAyq5J!qL(g_eaZe7u#EzXYB2+!y}!_uhZ0gJRr^gIou|@ZISWAuAO&;
      bj7b_d<}=1{)W=QW7`#8h+xl@#CK`VMWl;Hz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/Semaphore.class b/libjava/classpath/lib/java/util/concurrent/Semaphore.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8ede27ed36af10737f809a85c06ff21bb064ccf
      GIT binary patch
      literal 3504
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$EmptyIterator.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$EmptyIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30927f1d8a44c3aff581b6ef94b57dee4fcbc8c6
      GIT binary patch
      literal 1052
      zcwU{7&ubGw6vw}lO|t1WwN=|%wc4nyBpw<>yx0&ab%j8PNJ^pJChL%F+02I7+0y(^
      zUOW{P^zNS_g5Vz^zTKwD?&cCa%)TG{-e=zXGC%%)`3B%Qo|?!pyg1|MydG-Tt2@4Q
      zLZyV%_3l_Y1LaFU4Bm$#6ub6tq{l5S6xY5ok!M(o8$B-j^>@89;b;>@hFde-bu~k=
      z;YwFG8H{S}gdu<Ae-suBESF)T#IV|SrRapio>0fU=Ly2JeTRD|T)9y^N#^yy4H#aw
      z|6}9>hRrl{Ji6w-UJTecwhx;7DQcV|v^n5GM_lN5!w)p6jDz)Rt({egs+YQMUveEP
      zy1P)V5yQk?hRSS;j^7QPf$fPQ4Psw7Vx(PPTG+xesj0-!KNlt*Fzn3mEzc8u?sYZS
      zBGIxPwOCz0RE~J-M(b{57u$~@4CR)TLLGTL2t;7w3B%q(x-hJyL}55=*stanZ_cL@
      z!lxxg1*9dN0zK6{9eO7eEs=LfmXR$yyM*<b90O(g7Nex`6D#DGuL^Jjt7O+wnVV$k
      zec|>5*PP&T#-|MHSAvzBW96o-b!<?y8RzcA%s1pkHKniEI=#fb?-}y%1i3UvE=|ez
      jr%NY@+eCbrCH`56XkaIvvVuost$6dt*roqh)9?KQ_WS95
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$FifoWaitQueue.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$FifoWaitQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..017a009958e0cf496acaeca59c92f01b08e499c1
      GIT binary patch
      literal 600
      zcwUWB%Sr=55Ueqqtj3Lr(fEi69u(ArOHfZr4n_izAV@TxC+lcN))|=H5&Q?gz(4Tl
      zN%7zZ2>z1TyNVJ|dzq?kx~sZ--alX805q`VVvJ$?n%{EY#xnE+tpaO|P_f^;Q^C+^
      zrEPR#g%zu9d8yC2jMK=4!{BFY{B2^WM8ZfO_JxV0R%e|<26n_yYH1b4T*ZAJT9N;F
      zS-yYVX+AI%_N9_>lOeah(Pwa4`a%?u!<2_2CK<|Isl>6p83=RA2O&9ByE-5PPBs+(
      zB%OFDBZl2>wt+`B-D4>Bv^9Zf%S5a8zkDkZW$-#m3DXLB6p6^iJi}ThH`;#0k71%G
      zuN051A>PP1^53{v0iBD!m!Xb43WP32V;Cof<ZOf<F`qEW<TsyDdP+;m^d=2(4p1TP
      beHUOFRl*!*(yCe1QlX@M4htl_nC9zW3^=1t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$LifoWaitQueue.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$LifoWaitQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65229c5c4144b1242dc29d17266828848d07cd15
      GIT binary patch
      literal 600
      zcwUWBJxc>Y5PfSdiN=eG(fAP?3k9|C2x1{hEFwbW5F{Gw&AFPDa~F1R1^<Uw<X>0`
      z7XARiza-9`qQolAzBj|ndo#1|pRaEKnpi1ff??;D-}AsFG7ciGB4><HNzi>z(ZFb>
      zojr5HiM3E(>q{<^EGoid2*zvtZDOceVI+@x!dR)*MdyftoiLQ!TG@oFq{m|?@*j^+
      z!#&#?G87J^l1Ympx3Sq{@Y?!Hl#s)Wj}oRCDxp;3)ZO)kIp_VD9BQGC$bgd##Xm_e
      z8A!{p8;&>d$fo-YrLJ}+62~&ts{b$FPDL5~j#9$3V{WamMJzI`kL5<&kN7c6b>)rX
      zi8I8TV~+ecE>=P3qVHvBAddoJk)jDq5<_}6LZ4Vbm}c@@FDO4}B^7$p26%_468FCg
      ZFpC;t4s%)6JnETH+P;7#5?;>ojW2oPqmTdq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferQueue$QNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ad18e5da0cfc12842628c1e7aa1f03cdb00e61d
      GIT binary patch
      literal 2398
      zcwWU;-EI>{6#izN*lT-9z$J<KYtuFq+o3U(@{>AE38A!+q9E!th+I^ftS8B$^=`Dg
      z2Er5Y3cLVU+(1iPalr%hMS4YBsYr0qRy}9DY<_C0XnRpx+BtK6zVn?kXV(7ducyxd
      zoW@)ZhQQ=ac}vzik>l2F-?KYGpuDKw-1O}A!1w%4c&(#4YHTr(Ubw1)?(W)x-%>gB
      z3GCP5uJqRGS66N-I}+&g)E!zH^Qn;=1mZ-hEl`@@jZe1hZAsQ(r*&~XP_o5VC%h~p
      zDIk^wip=Hfjh58@lf5a)$ZtD#eMT=|DdM6$TU~LK+loU8Hs5sCJQ;NYCGaRM&QzM7
      zOmutlA3~>ze~}xSbmHFsSHbqPWMbx&?K++lO$%fy)g?OmS#mbfUqBg$b2ub$J|$TT
      zM{rc2;Hle5<$h%wjagTQVdLKv%_wlZwMI2<zZ!W6ylr7022A95^R9&h7!VkocRaPw
      zX|JeYQLea($Jw`~yCegL_pvfN6*p(N^3VP)SC<ON;Dm)S9AxmSg&a(l#w`?KQ8%M?
      zCltupGF;I2a<h`=2*=V7VH{drW?H8#^drkh`;mn+_*h_{?YB2%pk};QQxU((9(C?T
      zQ>E*kvD+K;yd_=g*UoNkZoKYjsv;&{znHj@bNbzMVoyYwRz3<gXC+Mr(HiOz#ZzB&
      z!mf*}TKXn%oD*JMU7dGAYD=N%cLJU*E@5al*$KuJu;x5Z1$u~8n8Rg(Gbw7#;flcV
      zJq6P7?Fbd<*Nws{I_nJm%w%zq51gcnJehjUqd@C^o=;lKd^gB@kYt0jWxgKCzNDkx
      z!a>puk!DV#0*6Y1zQaFa<XapgDN}k!%cGBU*n9LGro<30kQKkvMfejX@dwJ{XS}aH
      z_%nv%G3*V}Fz{gQ2YgT)e}YQw=o8eoz)I*Nu;=uX_Y3mkSGvHzX`s<=7*6UMSz^9I
      zOI#l(`VbRwn!AL;{^i<tsE<FufyX#j8$bCyPTxm=-^0v9vSoC>0rnFwVTxB6p>-=)
      zImuPVS(1d7&XHu`ye`{_Z5I;T1+AOJCozw2w(+QRd5rGnVQlfBV3YnTjL`Zf9%hou
      z)VUg%igV3UF4h!vjvD2-zSY(On+y{LBd?*m<ckS(F@gRR(=p&V@?nj|<ZBOh5!MYc
      qERAM${Svg#dScYyfHBkq!=Uly=L{}^hr*!pKF1eSxFG3El>Y`XFj|ZN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferQueue.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad5ce500523a69f6021bd50be82a15cbf63bdab0
      GIT binary patch
      literal 5213
      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
      H6RrQhyg}!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferStack$SNode.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferStack$SNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff35ef69fe73578ea2c9cb3a1ff727aef26973cc
      GIT binary patch
      literal 2334
      zcwVJd&u<$=6#gc5ypFwXTGJ#hw2-!L8?QrLFtiwlkPrx@Bq_xqNWD$gL$b|!*V-Qq
      z;XmQTt*2aCC{!Fcg6Op%fdq&4&QBq3RDCnMb(|<d)pjlIynQq8d*A!!&G^oPufGBC
      z0xoOlW2j%{*LXDyEW2vDjv0EMaDr-c%Q4qI*KtGtawtMkTK2f(e<ZwSz|D<PbIEN9
      z4QYl$D%|GITJ_TERbd7UX-9laLt`N^a)Y72%>#3tA+yP?KzIy=g`G^x>z?2(T9u}`
      z_U^feg`8^>5(ArO$V)~abXr^?)%PdH1GjCN)fqLsFNl$FOfhE(yA_8L=s?q2b9fMX
      zgnT0@&SVm0CL(2?AasiO>q^$H6xm7Bwj3*%Vn~gZS4gy3TA4+E4n;hz;V8p}ghlFj
      z2FDn3j@ay`bH{o%YS!ky-}paAGw>{Dtx-;@b7KGu&+0gc!7McSaY9D{gA9WUmLrzJ
      z_Nwrf`Km2s3%Mq@SGZ@%@7S4{jKvx1B_4NJc_oJw&gv-Ph{P`I$RSS>2J4p3pqboX
      zQU_scEXk&olJ9pMTD~G_P3Y)HM(*c1oeuqr3<pfN-Qk{?aav75{ObD@_c)&N73vzZ
      z-J$n2ZZiz;mT;@{NXA4(Ogy>?vVpg?7+nTaPoiWb$E!LtWTZ8zBa49?rZBDHb%rzh
      zLffvn;a91$jb_;CxL%-R25(Sngbr!Av8OfSi%Fg&Mm@kb>Bb=Xvz$7U6v|tEWZI&o
      zP8=ziYr3H)`&KG7w6~H8iA~3L-f@Jd4v6qIEHKm(2%%w#;q+q#QkU!sr3+c9h;yV|
      zivB({Ov}C^Yg!7bMv@cqp<|#%9S7)Ll;@A44w2o5!}ML)^_`)(r*MQkL*$uP=)lne
      zqu=mtjC_vc%6?ASqc>F8NqP?x0pMo>_=!^8C)j%g{yk2q74j+JbPPL39_h;&U*U{V
      zxrMPEoP#RmU8L~?74V~qAC6YTP^C#r7RAV_U_8eBgd${Qv0{9I=da`NO&m8W<6ols
      zDf-jfsco7|^<?;k3jGx$G|CL4QEWFu5jC=yvR)#q4=;Cl$hq^~x%0|*0k6b7K8tzO
      zh(`T8oVtlogH;rb5pp#a$G?Scuv=)1-^Od{ZMm#+eGkQxL=O0k_VRbyjXx;SpE!oU
      zZ~}jmi2vX${_UY%>(Z`aR?#lfp1w))MYMHAR?bDV-|Fsfoyba0Ua>TY<%c^vkyDlZ
      zN8<yPEP}~*lg;7n7)EL!=X6<&u~SThqjY4f2SblB`tXi=&*LJE1+w17A}$eqM%H^M
      FJ_L;bOmYAK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferStack.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$TransferStack.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..596ee4ed48b18e96224e31b0cec144b697c10225
      GIT binary patch
      literal 5011
      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
      V6!-m6CQb<#fN+7o_RHk`{{gC6yJ!Fa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$Transferer.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$Transferer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..683dbd0e2fd83ffcd9c3f6482c708f1a12899069
      GIT binary patch
      literal 486
      zcwUuI%SyvQ6g{_%O^ngjYF)cfNL`rfw&JEBC_#~yF5FGx)lP{Mm}CS$!Ow9exbOq~
      zC~*=CLfz=V+%xCQeH`w`=i57gBkZ_n5C(JcC?ZqJEJ|~g8m(EC(fCQFGo7p46xW6g
      z?@hE&#T{$bE*wIquF8bEkFJtArzN3vB9$yp3C*xSB{-w}mVGp_8ej!2LOYg<FU>>3
      zdLojH3EenPMK%>$R(v5k<xCcY<M_Y6h6Jx%FhUr{%NB<>7yaKN!5`;Fr+g->@xA2<
      zhgAh3I9H1GC=*4&g^O*%{+|rm_CFS#UD)-YIt_d6S}b?%E3!zHa_|c8rT+G9Y}Mj3
      e)@%&E6D+O+4zPiCo!6=3Cb|~=y3H1Pj`s!E2z|r=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$WaitQueue.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue$WaitQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4376857a6489329214bdc32c5b9caccdcf25b644
      GIT binary patch
      literal 449
      zcwUuI!AiqG5Pj38NgJcBwe{>lK|Q$itn^Y4grZ2Ko;Pu^TjDNkvV#7VC&7as;75s*
      zR6Kan!_2&WJMYcTetf>Y1DIepLW>|)@=*$3=|bez<lZ@DDv>^!eCe#QzP$FztNmN4
      zs|G~~2!lpcNOLc)vX#oK2q9tAu-b}LIV}tQEVDup!ZU4jH6^qUj~0YrX75ytHZ~GO
      z=o0#KZPcZI$dtQTD~5BM%VHtfh0ot)P%U*yn9TqA;8Q}JTJLgou4|w1@79yrkdRy$
      zqui{JWvR*tBf`O-CJ}l+v#<wVlcU2wOdPx**B&FmwPrfUuZUk5w2*KPYciN(lX0?c
      Vz!v(={h-O)7;=pp`3}bDegV_taw`A;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/SynchronousQueue.class b/libjava/classpath/lib/java/util/concurrent/SynchronousQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e588a6a6c34e97d8bb30c0b65be1d2b745555691
      GIT binary patch
      literal 6851
      zcwVJfYj_mZ8GdJH!X~>5Br1WBY={@)W*1D5c*}-pj6p(Uz$6d@*g9;6WMQ)tc4rlA
      ztF5)Rwf5dx(bl%sidITdB&exSdy%TWYuo4PpZ@iE`lG-4v$gLzGdnwb2`o?ZJlXTj
      zobSBf`(4g=&b;&A*UtdhfWP_SQ?Pcwey`q{vy!RKgqcp{G8rRnb&efQCuTBc+RSC|
      z%o#bu4^6?!f@=TXtd-FdmNU6T!4(y8ZcUkq1IhHXqgSioGO3p|JI9PnQcorC*Y~Cj
      z1@&3^xYNjFlV*Cy&}|BotqPV7nCYygr>&iODreNZH@GpqW>4Rf3Tj3Mw(l6D(h!wq
      z^+V&ySz~H!E}70MSkC7iY0L9wWtQV+Gb6OjoHag^F|speYN`hEPyIkafc~Vj`;3f{
      zQE=^WRZ+QW++7nVrGvs*1<}fj#bmZ~)S%2&)-WHrsQx}ZX)!?CGv-t-LGKl8sM7cZ
      zS4znPBf^!Nl`yrviBvM3wE7gNk&c}Tv;lL<2%rsD_;I;{25BXwr>8qdb23^XT#2g~
      ziD|=f-Y8fR=@>3kj0=?Z5Uxf<!KIu{rbHI$L&C^rO<|oThw8v!gs=?Dg|se&dRw|C
      zga#~Uo`#cYV<b1b*T{_9Rd5NT!XnUF3Ve26F6otS1h{fzh;`ddS0cNlN7hV|wyv%&
      zU<^}ZG5+DXyp46$LG+Ff#{1~KiXOov>_;z2RkhTu75NlE96f&Ae9^1NEIn}`fIjqy
      zNZuO43N$hh`}8EsR@ueC&*dzUHc!^J?cHxAthk6+VDM1Fn6tRWvVL&uv=+36(w33Q
      z<mN16%2iTOH<p}E>sBr!5)q;M9XtKFqiEqsE|uDDCdG1hVF1JE31B-${kT&>*Tp$$
      zWI`CjIBPh+DHTL2c(iM4NBPSDcH%BSCb%gIb7IHqQz1-(Aqpl7uF6W?6~GqsFn*>e
      z!7@bZ&~a{XbDyMgT?HyzD;JPxI6GLq@ebN;7xBBWVgL!SSCU%zys9DW!?XgwWsc}+
      zGb?t*){d>>h27=&B1bg^Yc61Nk#gCU&o~9e5W7u3z~Qn;g`hJykq#LoZO%-k6m&-}
      z=x8OBwHIC{t@xAK!Pz<MFzscN_mfpa#+cRFC)fh@IX#gSQ#FZ{p)+5##IbaF5G<jZ
      zc`x;Y`FH(-ZBxW!b$||#4XaqX-cot4H`>SPARfS{{CF^bu9YZ-V2OfL5~B4~v_RX7
      z!gKf8bR|d1g0PgeIm6&dQ=4QR>y}9$8}nI_I77~RLNr&Lup5~lU#z+T$#CbF2k@xa
      zFD$+OOh!K}kBQyo`SjzfMZ3^`E%tH+<w^hw+Iq)(%HQ`zc8`y91%DV_orh4x#r~-b
      zBQ|cHC&BE2YZgiHdKsgRAwQ1fuQzt1q{g(K>d#E`q)l6%p7#WLL_vHfgztjsQT3@Q
      zacX@pgo7Xnh5fYUe6|#<UWDh6Ali0bqEaQutIuG{5WHCJ!TU0-kbKnhe)8^RzuK0w
      zcvy^CY>l(BuRqT~=2eEaxsLhqW9F=4nN+yc1n>ejio@wAA*{qIKYm(ujcrcuGu>NF
      z0LSe^?&T1guv$p3gwTxD!T`_C(^bO`7sJkrlj(K*%#Q^IeDRQk@CL#>5T=ZMdM;&6
      zcw?z#-BeZ%Cy!cj;^g&POJhHjE)M-KnchN)4W#sJcEq$co4NFqr@(%VbAG(Va$XcH
      zgx?6#4G!s14~ORSP$1ngGnYvio0H-?w4yYI*NCMGLPP1ak&)~SMj$Zmxic><x}tcV
      zB><m`I*1>CR?t~p{@mQL33}wEMS11(=HlmU?_j0Y;n_n)Uomz|tbF<uea3hdOTJ^`
      zxSVCG!iO68QHRz17abtTj|?9|SS2pQlvjzXupAql@e+^TrTB%o)=8N=NRHeAa%`64
      zYSf|yVXkQ9(>A^re^<VWHS<_|5*;t2qvjd-)uX7XZ##+D%ZSz2&z!{imn29he=mW?
      z-=|3MS%SZaD{vjU<SYog!3E#UHwwokQS~&g73)>GJ|HyJ%TS}Pkn2LW7E!L}ctg>f
      z8y(DU2Qwu@1hhs^<ECiy5iDImeDX9l9YtUPeUxrFh5mxAWgMY~p{cD1t81jaMjOGg
      zC!_(~M*M>1R@d?%y-;yGWsOf;uvPl`5y|Bdrb-~S$Ic<RfMFURIU9Wi{V}y}9^1}g
      z`K#D5v4Aa{*nPIZsgdiTb|9oi(WJ)6YaQ0A*Lb+KyWHBb2X{N%3UfEQb06iLf{)>z
      z3M_TW@_EKle5`hrvDBKhwt4I&)wfWi9V6K%nUiCA!Y<#{M1UG6-(Iw;o6x5Ap<TTh
      z5%m_yIV$U+%jMkVa2C>xooz}<?5AGAk1p4bE{`7vIA^m@N%jYw7>CQ**X4<;$6Ts*
      zY287pBc5=EU20*>mV`6x(hzetjWo;(;hd9%vUx&+gd!6?93zd`32(Adoa;#h)m>Pw
      z?nZ;U2P@ROE07CvUlqvNbr^Q*@E|f3C}kz3$D9neOG?`MHFi>anBQ}#lWASjq@5_^
      zCik(rANA@1G^>oaI_t@&w+3fqixHB@qRJN3D7k7LuI(PKrkh1OXt$G}&<WZMMbJ*T
      zG?s`d^^m6(1j|}M&;{qM*l7iQGFLRB74mOmJ><dim0|f@tQ;bxSZXQOV^w0^TLsqR
      zRbt)ew$M%Tng50EVM9Ibfl|t#6c_3cca#mag`=+`t>-<}n5QMAJtfsxAb7Y6)RPyD
      zdOtqy*3Bm*`h<h-kG+OZDkwE^#$&?on(*V(cnID-?sxaNnEQ;(&%<TLMi+JE?L}NE
      zwc~T`_*^@my$Cz+{~vZ9Dcf{z9V(@J?H^Uv;pgyq7xN1e^ETK=dhG%pWixrK6#3sC
      z<k~XiS{M0C__9+#{SM0-^$mQb6z)GBxSBG!8V}spT%uo>u#?U`As9RJG|NX-#$p9<
      zc`4B9cy<I(rv*Jx54uqg;v4uTyoFlmLEpmTuDNeZbAP8Knr656n2JT86Aw@D;mNZq
      zZz#)R>tDlDK1@99Q=;>DdUE94hyQ9RR6&$&7TOAES|dW*N;GJz(4;k?S!+hC)`E5|
      zj1J1zYW78@TekgfmvgsMDb2i=eV?~OAGrl(qZarzj&uX^Exy~WBeC)aG9y8G3g-2N
      zB>a8G_4kL;-+#g<ZO0e)x9=#H$C@<9VO0sYJcFgu>mKdghaZGX-R_{<QMw(Y+w17|
      zdb-_7x4Uq)wgFMfH)$KC+kN6bg1GB;+;Lk-&q}wO(Ix|+l5EI1sjlZ!;mooF5O)I*
      zcLNZTZs+xd<in5f9Dnnt?@<|ocPX=sFd@#gHxb{|as-j+0$!NZPUFQ>I7az6Lvi91
      zUMh$ukK!t+bQ-5@oq39{+B%MSGB%Ib3Ju>5&vw*mcQQPqSf!2ON^Kk)v<dWTcj0zz
      z5~JE~?9}$i@U+>q-0)1`49=2vEpPh+at9Y`dcp~S4?oA7j*Ck;9_4q0aPk3X8%0Rz
      zS9J8HH*x$38lujnn^$dCb+ppOTV8y$dze%m%e1{{(WaP4!?V{SF2e{JzFoA}A`UMV
      z??`s<;<p@o*uS@P{&!lf>~6p37fzhxA2>eB@sITJPaNOlIM4BYj>kFvg`-`)fBhc;
      C^Q031
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ThreadFactory.class b/libjava/classpath/lib/java/util/concurrent/ThreadFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c7b03d82e996a6877a6170f7858ed9fa9acd9ce
      GIT binary patch
      literal 191
      zcwRg8Z`VEs1_nb0PId++Mh2y<#Ii*F(vr*^{p9?-<kF&|)Vvb?kc^_##1yy0<dXcN
      zN_GYoMg{?}x}3zkbbbG%tkmQZMh4Ej)N+VIMg|QHAB2LS(!9LHq?}Z1O(a2xN^3?2
      uuHgLAqU2P!%$!t41|bxi^gznl7#SEDm>EET5oj?h0~?6Nzz!st7&rh`)-+%M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.class b/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$AbortPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ac78c63b249cb4421c047205b7005dcb713a3a4
      GIT binary patch
      literal 792
      zcwU`S%Sr<=6g{`CojR>nYkj{#&<Z+;xT=UEib7FQDY#6hK_g=#>5S-Sxe^p~??;Ju
      zrUgY^6c@?4NzS>i-1m>?R{(36b&w*gUyD28MWG5j-)KLwR_f3@zp_#^PmBrn?xi1v
      z#xCqMj15mrp!^318Nxs!41~V)jvLp~4;^F)D}TB>l`%m!+s>5H2SPUkX$jd)rB%2^
      zNH10Dgv_pKN*8J53viGl6l+S$qv)m~?YU?Kl2ED{Uj%hwRebJTX2L7gB5c(DQB9RF
      zXn!V1*j}oARd^a{9Y?Bm8=zXLI~XE(-SuPd-j}zr;i7~*fw(p0zvA-~ms{yN4T5`S
      zBJ0b2758cMH)S<;MJOC<E$wa~S}oafFilwOG6o_4t(%w!e<rUU9<mf8e<Sa`eDWBH
      zv1j=S?ql*?;5{2(X7lJ{yU-?}A4NtUG7NUa`^-)==3Y>`ctZK@hrXQX=h~c(KDLH2
      alK9MF6l1JNVLVYzV3N^IQkudHdOrcf#?UhW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.class b/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36fca630afd8e1c9a32f4b9fa3794ccca7312953
      GIT binary patch
      literal 832
      zcwU`S%We}f6g@Y|WXN=yKA}AOphYyiM(hwl2q^-A6hYNSS+H|vtj3kGCC?0xU*Rv<
      zfMCG~@I7p)xSm9+)OHb7qw%qQ?>+bU*nf_H{RZ$DcS6(%PmaV#k(7nfNoq}6Iwwt$
      z48~51Y|mQ#^0Q3K!n&QF&|13v(&T$qtMp5V24S(P*1{Yn??y*5EkZO256|V?mp(ye
      z6GmmtYhf~`Bs8BXql)K*`fg`PX!L9*Bh)b$Bg7@bLSGsAw)`-XZXiZl5|;Zm6?!O~
      z^6TklqZq54@U(x?BXtQ&?zBq6i{1XoF*)1#cHLRKbUVWcE4UnDm2h{)q8L}OMu=2?
      zFfNPCelnFg@8@t0H$q%z2hK{0anrk1cO_>N`?`9bZVs_motfpciUV7^RK8N)<h8RY
      zk31D2eq)SuJuUKF@--};b{AV<ar_7T{A!GRw>-9Zl`s-xaPJ4AZ&f(vvFSI1znJHF
      zJV`(s3ye&UrD^e?q6OLyzGL|-TK9kAD&d5s?W4gzguyZ9o2b|}ClymRKf8tXszVza
      V9If%URWaPgHe*x?T)_@n{{fIg)iwYC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.class b/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a824a2cde1b93a370aa0e5f2fe239a0d73e774a3
      GIT binary patch
      literal 1002
      zcwVJb+fEZf82+X$yHHlK2dQTP5n3oTCf=<Fv}!bI1c8)<yXo$v9UN!O?5>Ab@h!Z;
      z=!Fm9LmB_w)?jpvBwoyXbNK%6Kh1pm{^cuxTiA3_VDOLl8{SD`sXBqtL1L}Yac6&I
      z1rK+OQIFq=Ac>7#ek7xS+i+WjB8qp6lEHfyC5CgEfZ}@C*&ZB;Aa>y}Y~;%Bij*M2
      zv8XiqDc7MAmch9rwT$mE6q~I+L#b;*QAQE79$ZW_%=M%e&y!aJVfXn!35IIV1YGsG
      zmFa$RSc*q7Vz}G;kF0!#iv2xMhOK7rB-7nQ>(rxvT1S4XUq%h*UDO#?Pif>~9u0=F
      zjP^!J9GbT}tIuJobkV~lTxOUaiugq$5=wrh*~$;+p)$cssfQWQpT$*NcX5qj>ECP*
      z3s|JOzBWoR)PH*TrQLoS%?%IBxXIv(EOZK{kz1~`w~X3d&%2~6GW<&pIVGja?3u&{
      z;)zUq-}sZVnMyHu&$Je{t9TR%dL6Z#rehIQTN+dJHwuLG>S&&!U5AhnPOW`H`D1qN
      z(d?v$&TX8bwKpc<EanL5PoOd}=EN=%HrmIien6Gr!e?AzIB2gQW9dY$iW14)hwE&i
      p;yl2-)6Jw8#^w|0bhU!j%v}Rbw8*-EwM=ClZNhREZ4Dck`2q6K1^EB~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.class b/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$DiscardPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2158069a62add0e2c15d68f73984e10a09b5269e
      GIT binary patch
      literal 733
      zcwU`SO-lnY5Pj3HwY9Z=*RO+uU@Pe2K|EAcsER^Ssp37|2Ai^GA-gO3vpfkN`~m(b
      zak4FlwTI#%dCAPYH#5n6e!YJH*u$EG6k)$7o`f4m%6Gj$d$BQ6NA6wMNYS|o0{`q;
      zdT|t(%~KV6!m!O(-iw0_VLGAuLO;0I?Vj`^2RXvdNWqr00kYGVQ-Qt^y5mbj$Q>%J
      zq9a1OTDvD?8bL=Ekj7*Y4kifYrqc2%er!u~C)&Ow%r*m0`1isndmk7xQCEe8gXX{b
      zsS{?*aEXMIYV)VZR;;znRUbD+-S$J=;`}HTc5&IYvBe05+aNZcJXf~g%HNP(D@7<?
      zYAsE}7hxzv2P=fFF>??~zg`6!;BVoT<$*~t@`v!A=bOt&jM?os6kZc|k@uW6=GIZ-
      zbFm+QDU=y`Tre{rAM;9E+c2@35ZC+80nwgjF_(z(Q(}P`DJ&+;3YHiPNiEA*MgAKb
      CpuIT&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$Worker.class b/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor$Worker.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b903f8aaf8287f49537f21eca945115f6319bbc8
      GIT binary patch
      literal 2276
      zcwUWFX;WKO7=F$nA#k}AitI}l1j!~)idB;qX=$t2KwCfxsMSk2z%AikytyghGUGQL
      zm+_O%)X{0(2ABGQ5rWIu=(u#o-{KGOll46(A%!8%z@6lryysn>=Y5}Z`Rm^w?*KT4
      zc^^1K=QZQH(Uo$|L|5Fl;wi@wmfJNp?+9b&l5Ho>t%!KawVk#rwzD7{A3O||DkfoA
      zb6ppwuZg(pLoq|ued|cdvW)43VDLF9D`v+R7=p2al@fHA>>3fYcMQvwzEOtKS<^|n
      zV@8q!t7Cf;lgoj)y||PRu9%T-Ne1>bL$RxX6PO)ASu#;|Y9`yd83Ki|>}4&3PMVhK
      z_A&JP_Z?LTabTRmGhok%QZUr$s6eHLBGl<Ph<b)1e_-5)Mh5?W+oYiZbuw9t4j)S7
      z?y!zhXbcrG(-Om}#cAP;W#>>u5k_L%a7_6-XY|N^Fm&&iS55=eloB&}I_{d+g#tb$
      zp>*i*qg@?Ibb^LZVOp+moYay#I6F9#5YjEABP`u~uCprrB<xNd<v5_B8$CW8+oi88
      z2pz{|k4p3TWTr=SoRHSyl$B5l)APr}_HtHwSq0Vk3lBtQiRw5hvv?8;OdtAvc!Hs0
      zpDodG8fS<!)f#mTm-@j5C6Ti_&PkeOc}!wPqwG)WcnX6I<<nx;c0@J}MFsqO1zQ+&
      z8N9flBc?<{Wo6c39T#zlI$+FFwS3ZWLEgIy*~_`Sau6dr%Aor&#?ZJc(lr+eYg{b3
      zrfo^#sJ<4F6p8Q@0~ad{&9VQFiE5PoSsjnzaS8Z&9ar%J&1g>KZh5UgPzbDaHgrrQ
      z&Y&$T`JJ^b;&y!Bw{csw@&an3cFKv1^QM%4-CkeyHl#idT9$AI5=Js9=z<hyGvEku
      zD58&-o+^3g=sn8ijia?+b`J87qzqJ6$_q}vis^HZycr&#-4w+a(b^acZK683h1%dx
      zXqenW(<YjO;Y}P`S2>T+cNILeeGOjz3QGArs`;xpO7>bhrwnMtgQ{MmLLhBzXwTK@
      zp_S2E65K#@8V}vhXDya?{<_MfXMOUS0;tc$zpR)7tuj6qN+Wm!^|XIDjjlClLuBa<
      zXXN)fdFq6zHeaDt_JzMexZi}%-$E^a8+H60H1T)QLhDif-VPqEx$0iDsE$fRkLGcl
      z*ug{AzTX|in7<Dn|DXUDE`^rO!9tW<PGMDY849Nnp-uG$PI+&l>3a;^K+U${7PMTU
      zqCRPpKZxY{&<~)0E*@nIu{4H)lN-3K8JoDghQkq0%ZDgeXAK@YZ17|vUaHgE;LU_p
      zi#Q^91``;iQ7zE3O=281wEc)$^)Ze37LE85H1bc;&Obw#e~wQ61tNS6{rpRu;a}kb
      z{~8ng8%*)rxXQo9JYUBG{|<|M126GSxU{bDv}#B%(I(RQ;jR(_O^Mf4jppdYDME0C
      z20cX*oxmgsj>#8GuK72~M~Way)DFdhjMPc94~Did#bTkm_x_QT(|B$&cK6=jYdA2Z
      zT9(F(;mr1KT}`Efo^8sVbWgy4Cdzl9@eIoOFR0?b67>u^_;2v@-_gzgKo6}E{^t&*
      YMDt2%%~9c)QF#Ssl_I28`Y;FnA8UsN6aWAK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor.class b/libjava/classpath/lib/java/util/concurrent/ThreadPoolExecutor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f76017d31160b1bd9efb19eee72637a803c4fbfe
      GIT binary patch
      literal 14974
      zcwWU?34B!5x&ME2@69BW%Mu`g5RkBEWnVPGKuA~uNq_``phAaafPu+OoSCqw#a2;V
      zil{|v0!0)wDyV>L5fN!$wYG2RqPA*nZPjX**VbqEjrV=$-np5C38t;T_sox+bI<af
      zZ{OlK{{Gwx04CDoZny|zH+VOB$2Uj)f${aBV108q><dQ6FI^w@c^ejoLV-D3eD%%I
      zP}mKfP>}F&>6%D1?5&T+j@J6ZoBZ`Y!hktdi<hogU9+sZx^#BsoYkc@HKi*E=~q`O
      zI00{P-T0d3V9>iJ;43DWk@d~dhS28VVqdtCFtqcjsK3!C8~#Yd9}4pEl+B^=#wE?Z
      zW`1c@WkSqm2SW85{lRtWlw7IxuM2vk&0)S$)PpNC5+Pc`fRY=%{$M4aB;+NABVZ!q
      zYkWKpdxKFq%lA^FLII<|BoM}2>S|di*x-*^q`HMvUpPYOA9rQGH?qFg7v=pq7q8Ap
      z4Etiij#{o@E3$fR^!b`f1O83ErOa&tEg)og1A)-yvQXG(-Ibk1%~9T5$s()gb%9pv
      zzh2H)5c)KFxA+^I8#`8$n>wc9=3s5q8|A56)S{w#9>2<@MxxB5I&Yxar?GN^Pu9*~
      zwzPcF@@n}ef?m6H(PEji&U%*4si~@{E?qjOTvjv&w%!|T2>8N;@rmiK@on(cM|}+z
      z)y&oT)&(Its_2@_8XO95?N*nT#-HMAeFEO_I$tE(L1(}EP-9cT$FD5)MmCm(SZ4{n
      z8+>cM&4K9r7=ryrc_R^DSa67x`y--K4NUHg`hY*^kCqU$oZLF5w=C4)^I#IDxG|Yu
      z>rlk900S^F71LNa4Zes!>}x2EffVL8M--5iDa^*pO%!6F8%2!X#kwpfW|%OL<OaW-
      zbqRw@#w-?hW2nKucB{n-53a;)6J;nTB+amqPtS=nnc8TWEvY!SPTrYo!i{7%<`X9O
      zR5eT2gu=|=fWLmL2lKE%UK=mKDoqq%EVHH3AM{l>H?Hx8mkL2lC0m*|Q0EQ%<=b9N
      z3M=sw2F9c3ShR&;jfpWBn~J5Vb7L8y@E=kn6U%WGAuZf>pD-)oqdm3HVx<ky^?sIW
      zZjUdqNw79HGH&dK6T90KZ$pE1laP~`FL8_3$zoyDXG{!1rW<Pr<9djX?PNUgqCte{
      z>)^^KUoP%mX6sDkAU73$Y;<D-VZ<k!u89CvG4(;;W@|l#kqVj!p@|hGYBQu?V$xa6
      zY3S!c6r0>=W^rHScTH@@7PdcTZWn7<v_>?e*s{y(O=KZcW;dG1Lnb4%)*p^U#dEM9
      z-AtI!Q})ChIA3E8cZt)<;MXhGE(<pJ!eyNtbT|61P`cGbFZA|c2kvm=cGiiW#x)an
      zVm#}pYzd$*m>7gi56|v4aV=H}$a_rOD~FPrgL2G+FXDbTb`$z`<+F(g<e<S3A<U#?
      zc92rlHL!F;O@$!QYGSa(;JqeN;7P?k?04g#?sTM6+&A$s9$|`_LV*C=PfqT|Vq{Vx
      zwy)KLzAcQYd!5e~Uq+`34q}4L<0djNP>^}j#3A)a)VonR;-^duKza(E!BIDkaQ>56
      z{_K^Pv9C3849{{xQC(WSsCG`-qU!Qm!mw_1#=cW5@179iP7<c%Eck@e38)qTr%kj=
      z>~Z@ea~hkXTSd@kOgt}A8{iLeh7)dXidL{wv=lSq#tVc&9k85WH76Vnu}?UQ1#X-t
      zT-I@<A_hhrX}zz>a-?nvNg<VcgvAEGX5uBh%)!&or@d?najaKVRoLr{_bd3O8{ddU
      z!A`p-4&o7UP5)uyKZS}u9aO9pI^_1ZOnh5Wz1|zCR`T{(Nm+R)$f`KG$KEVvu9gFP
      z%|yNk-HY#;_&(A(Vd#`aM1;;aO}r&eg~M25Xp>Tww@vgx-&FhvKX&6CPFgNutWG9r
      z;wM60N<^~YKxrT#qI=K8`?BhZrKXaOi1kU5R*_Rt@kwgZgFITru+^UqtZs7h+&T|_
      zj$gX*i<lyHg%T40=T85PU$L&*nOUdkz)5+|C8KOC0TkB#Mnc&~>|s6~$}X7_#NJJO
      zrrY#ZB@fMv0GmeV%xG&<EIVraKSW>fx#iP&uNy_^DHdBk9W4GCf!zJ+JpB(b;F1U(
      z`+q>_UsP)kG%S$JLjC%yiNE3RT%d4P=eRpbYrC=Kt|hj3*#&N*Sax6qp+La5j{RhK
      zU2`K}asrWuAcyr%5v#g65Lg^ifg|pq!toh$o0Lo`62L;$-e5>_hMWbtTwJ?-iZU+r
      zh)ffUuvlijP27xIIMz~MlhVZV8=<vpC4DC9Z{kaMkYiq~S>mA#8sw&dol>dVt&ym&
      z(WFco%ps2xlUjZz?2m4(@&>)@qzoO}DM#tDUF@MDbeWrma{krrA(MttHV4c4^}hOz
      z9fhKRwjf9B^W)>%HX^tvjWB5>jbbiDR3690YK6Qw#-y>7!%2+-Sz2H3i$uC4(RMDL
      zTj!>{P6cZWxwv#8IfeiqyacUG!de#I)}?Xr&lT}?Za`fGUYa>E5mbjbU+>pR*DC!H
      z$q{odTI|L~IQ^h0CQX${Y&z)&0~RfqZqns+g;Jl=aM-(5;KujRVwFXLH8+wxG=oaq
      zbY)CI6e<c%#H5+TWqp!2BB&8YCj@&jSss6+)~21%%O8ocjvaxZABksWU+-qGKe{x&
      z?=|w1Q_q$Bh{Nj$=Q%XrqzbVikAi2LkrA}U<h2Yuz{(^hQf1Nr;bY&3uWN80d&x8{
      zK0NeYchTi6hS!}(B24NA^d%i{*1Ai9oY<ZFx<ofCnIYOu(QY%Du5Hm7Jv!K}<`S(i
      zX&Kc?aqy-pXru@-nwrDwe6sd6H?5A@YS$O$HcK})l~$40q&1RYr}`sh-eA3too@pt
      z-qaw;?|3(@CFFL1D04tmNlVIKuT(3}_+66n42UDksRg)tsCSGzF+Rne+q$u<-L`|X
      zF9mEyo*e1J%G0?P*K;azg=aKEeqCo$SX^Qn=lEWKkeOcQZSvMD?`3ek5%x0POxN7*
      z@k*@J-Sv9=tm}$UzoxKHRoxxUUd|e0i(D>rth31tRDIz{g2u3(vog0XnQkPEm)&fu
      zrxM9-Y>q^;*LyelvV)=E^}cW@TiVUpUg<YyOKBI8$U2+p-6V}*Mu>TKQPD5a?4m_6
      z^@W{#*FA7Db)vi5P1-7Yr$^N_vHLENMs(*i96&0_-(k|7beC$p1vmMmchLhBI0s1O
      z7dt5F&0nSUQGUEk8pskCcA0dKV3_QWSUVOID!cZdO}hb6W_6x9sxtI+CFYC!(!JLB
      z*0OLc&EU(q38HKwbr-K?de^En$G%!{iT-8`Txhd%J3ZkJJNDX8bGY6&*Dp26z>Aev
      z^&0u{ieS(eR!wjpt6`F*(r$W)aCuM7pp13b7iLr=R&$xfe(_RjT=&^c2MAMp3clPQ
      zsrQB(Vt{&e`gYS}gyMe?)S^Ix614@ee}YvE=YmxJ8j^v*($MGGU}?DX*iZUjyqhY2
      zJ%P#Jz0g~&_d#DZrt!bnet*oCJ`~SqORGwagOI7l!S<M?##zz^=5Y{)^2ph+x<8D+
      zv*W&p^Y@6j?~(jHD(-tU!yALK3T_T^)mol{>yp-pqN70e`wo&nW$<?)Q#B6b8Nvkq
      zTBE22#`U9<nAi%p-UeNJ7Spw}xZ+t9pTU(Y`prCr(q}Q}4Cbvkg^Fjf@Th`crJysf
      zXcYQV4hGUVWK$tV(k|rD-KbWl<Uh{L?f1(0Jy|pJj$=uFUOQ?vbU^dS9^H>rdO+RI
      zu+CxyRw_6quEsSC$t8_Z8{#X_Sz`PKLtLG-9|j#c1MiBw{8Ol};<dE}?O5+Zb>T}W
      zEGRsIMqazF;3Oi;^Hv<kR{b+8PhjgbJzeMZ8xA5RFI_)@8w!s&NR1QG(tae<!|>1}
      z7(fRwj1DrHk0OU2!$fLB2|bQ^^aQHtkV1Tlg_48#B79aMJ^;nohMSb2C*X5vVs@0U
      zB7L4krt>NnE;d=G`AcA2PC~@?>cW$_jVD|A-(8O&UC7&6)dsUj=bc@d`Z*a2UWTC^
      zX5#MC4=a@%#y>GSrm^CJrR<_paMNjK@^i?bGfd0#7*1y~nqFXf&Z2<MVFJB~Npzn5
      z=2sLwd5j(7;?Q%sO^=JA3KcFkmWj$RM7&&LSyWK6+5xViDy>B5DAF_a4oX@c!4w|$
      zwByT!7jZ?Ak!ie))chhtFKL6}D#^<<EINA?CCSBInMvo=*g@$~p|lT5`6otcHJc&m
      zJ51?!q0_4@wb#&xzK6l|eWvgY6w;ea;aiwWZ(}<B5T*1E%IL?KPd~vz9v9QQSW54q
      zj^4*g`l;eTiE;|pI2^df;lN6p13Iq40hXi2YFwjup|eS5;2@t9Nj{3lY_7EMj_~uW
      zsO*yp9NMfwDf|%r7m*t=fgiv?9@<*b*W%U_id#qc<M6CuDZ9TcN-sOZj^XKc9M@%6
      z6y7L2(gDIFAX+ZmZ5@rVyfUAU<=acA2rX;@C-GeDko^)JIfm)27i!MnEW3bn=a#o!
      zn5(>F3EKI<Oe|1iCHoT@>(Q*n&A3C2ccN8|d-1p$5AkmqEpe@6CV@U;-|<^ky5C_Y
      z{Q>3lM=YQ}p_2ZLYw0f>$N!3Y`Wu?*@7U}zu-%n}+g)zl>GI$KS1MXvCic4e;tAIP
      z9CBr#-8G1b_;sA}p0!0+j>-56dq!d(G8kWF;b_>-e)OwKoRChuZGs{$5!?(>+{%1Q
      zZLd3tf2(doT46iBF1+zpu@e3}fBhGs^};WeMdn);DZ^2Qk-{!yoTHq1tR8TUVC^1>
      z6xV26<{E<$JdSgX#ROLlrnqu3oyTHVp29v`dFUB7_6DXa)e`@&+pYxo4!&!vR<j+w
      zo)Me{wcEtYy_$a<uX|76RUv@Udc*d84dVOuA-O;>6=f_DF{AHL_M@pWSr0WHLY|`^
      zt*nadKz52DzjWahF~<AaE}S3Qilnv+&+)MzwBv_d03@BjYGH;UurrNwGAQ8vm7jj7
      z13s(UyGNOf6b?;081+f~dxyiW4J;(MCNjGwF}tQ9!!;GdT+>kKs>4LrbWCy;GrMMB
      zfvW_IT;;ghH3w^4bFt1f4*}PFgj|(~xT>(pRfC&cwb<cWhCBG~PS<kW!{ct(3Owmr
      ziKksx$9e8&96NtTF<BJhNyT^<3t%yRs_c9XuZZpIykCY7c+W}#K2+*+J5waSuU}r)
      zkl~p|X3}Z=>=+iF!mlOZX^J}WmvDW6WY>pCbNwvN)AVyN=%*40QZq>*TxupshNfo!
      zgJ%`aR-%%Gk0F7Q>=lz&1iRll*!@mncQ5aW0jI^V%XBA1PUB;m2Yt0vh1`5aQksKY
      znuA=LgIt<}T$+PinvI;yBu{b2p_vwk=I<Re|Bx6>W@4s00h;-YW&xvF_^F{OX;pV<
      ze&nF}M`d>9tOF_hy)Ew){*-qHJ6N;-d;;6WZnmGqUryi$yc*@z3ny@0)*kd5vJbt7
      zWIc?O;VHZKvM~@=oFdn`%%qplE7ScFk~5QEmSv5XjdOWfCvaEZkP~Rh%Vf*i!*Ox=
      zN#fbzyiE5Atj)_zK7l12JXyf9hgQMS?+T85B^>$6Fj`xTTx|&owHi#)YH_)?6tlEt
      zSftfqxwahFXjj3jt-v~MC9c!1#%7IUoOZ3^XN?lVHiw_v9DZ(d__@vD=Qf9*+Z=vw
      zv&Akm;cRjoXSc;TOCBdte2HNSti}29Y+%<R0V@9_r5^3bhD^?es24|7S=*D}PJLWZ
      zU%cG!O6IhFbV%!kuUXd+^DL5gK?`xZ+XPb!qrVoxAT5eaZ4(N#&CI7QDAKl~Si2sj
      z+6|ba-H5r`XR$!r#yq<z&N(l3__EkeP)iy10mT=RZkp|!Pw=<!@%(8@m$>W6KZZFc
      zDNDODFD}Kq?j#N0ht0e{&W<-lMjHlY8nKAO0VY#Fj>eNTS{7B{c~4j)S!^qk^EiQB
      z9lM&;h5?yL&Q(sZI9$nsy7plk@`?<V@~&nltzW79w&TUcfxA_H=~nsWkQTUO?z*0%
      z`cBGa@gL%!7*ns8x<tE=nfgUG$ld6pJ%BXrOUTe3#9*xzqqKd<(H>&O+m8w!YqbMd
      zp&i63?NQWgkK+dI34D&no!XPwr5(ln+A%z+okXj43J+<gaY%a(PibdxRC^xBc|6T^
      z%JbR_cu_kSr>N&`f#^6(`BcE{Ps0(C`p3n&#vwaVoyBS=&RyrzGnGr%aRaNZtQpva
      z6dFh4c}6sWCdLe&CMi*V-4^AmJrL!Ve^QhjB$M-uOUsfb|EsbTlR1XscADnGi&S))
      zijOdD4Y&(;E9oBQpU%>KjiviKOZR&$-8WdeZ?bgXV(Grk()}Sz_eU(<cUZbVV(Gri
      z(tQuBwfE7WeSjOa5Ak^(@78{Xd$gb90qqxP(SD6R+HbI5`v`}%kMXqjTO8AVhZ8)u
      zYrn@??GHGw{V`6uuR7BGmLuJ-I?{b1fpllt(!J4<?mcnRE#)G{aynCa6o-^*IT}Mh
      ztaT7Co*&v@6(W}3O0^Lon(cs?CN>YNz+G+ZPXt5v#KABf7-flJBqfH?J0Xm6n!_qO
      zS20JFM4)}Zb75OW;V=#v)1}Vc&ec?srJ@4gBOkl;!x_5N64sY?STrX?Z>M=0rt57N
      zUN3U14OSoKuB0L}8R&3!>oSh#-!mN)i=;!M_lH{_fL?k!`ssr(Sm$C?&%|(jFmiZa
      zsAplkJ_IxLftaaZhEiUet7pe0VHJ*Bt*|q8nMr8TIFQVy1-z!Sv}Y)ZCvmV_=;ZE`
      zZAlt=C#kYagF(-MuII+_&v5uxO^a**HGEQKTAkugKF8V)X#J$H&?hsrDKPb^NYkgq
      zwJqW^IEj6X5G}^9Z203H1dn5FN3+2a?#zV9EuorELT*V{<Q6b;3mLgeMy{$G<Rlym
      za<#NH0dh;aB3G9Xxn)%6xX9%f0ol_P$eKhz@Rrm5m}yg(%JRF4Bl=1gx>~@dIC4@Q
      za#G2Pz(m(L%J3SGQUaC=uy(qZP}zo@eA|&;QB`oBR<&SY!Hcx2y0D!-qpDzjw4RV}
      zJJ;9RU@Sj+RN-5U67t!JmTC^^JK)i8XHCBY1NA#`nSK{W>R&*Cz7vypy+ps4HT*uz
      z(s#$zqop>=9!#Niw4NakM3$;TrOVfc{Ir4J_}C`VI<=8cS$hHABWk3eMIwC}R->go
      zD=wMLb80|Nld>90R2DgOuPSKwv{Q&MP3Mqe)pHz8Ucweh5AGYfU8B7Sr0d)D3;WO@
      ziB{Ib7v5^ailO_kOnn|iRV*qoh`yP6EGkKMp)01fAddktfRXl%EbG}O-n#H@2}el<
      zR!676E|k;lR6^^h{PY8?zz11@A7ur84C(sg7@|MHPUK09)(>HV{tPDTM^L06WfmVp
      zIe)LxPho?88WBcglYSPr@VHZd4!iX;*sDK}L;5*9rN4-y`gt7Z@wEPxxSFBe(WG`e
      z$4$fIcI7t&yC|Y6zX=#eQ58~(STs@t8i-)35~S{Aw$@6s_+r{bqY@a`U0s#>n+c6;
      zvlAL7*r6ebg+{%)-hMsqc9L^@i}Q3{%x`Ej+K{xJNI_}6@W-qUNEzaL^>^UXf6RgB
      zCrIY8ul{ZV-{C@E#RM_7tqz9q<h6B0@Z*GLpF!8#mshDSC~#R;i)witmVne-^tnIX
      zaEd;w3Zb?xPR?+nmywJ?h6h89)Hp;hb7XlLZDaEiL~n9Trhv~#WwIq}A5uj(xspg|
      zIxV*8w6OM9*t%RAr~UmqX+NvHV*puvW1zZm;KJKoyCI_SLs`o=Ag1xEZ)psMX=Gu5
      zF$9^$P^M@YMj6@2HHKrVF#;vVNR%35P;HFG5}sdejN&|FG&UG{2pIWjG71pkakEhv
      z7fQD{oY<o3HR6A(ZLJ=Kxwcl9Ah(MKTPv0Ze=ea0w{#J)F)g76f1Yl(FW+o8KPL?9
      zRQU2&E7I9P-_p`q;3{k3LbuD`9E^ELGUlVVQGqOD0mc{{`;E%DqHKag@&vlo&K@S%
      z*#psSw8O?{maTGTzUbRAJbjXGf2s>jSH&q+{9hvknkdy560&A%SJu=gWX(?J@+&-w
      z4-zG_8jh-*i0Rp&4n5-ngYIr&6LyiUY+N@CnU*9i$MmGbMMl1*XOQmW6-;9c5%os^
      zqY;J?M2gXbRO32~Fv6@}5ft!zn$e6ajLo=`$63ZE%;x!AV@q7zie+U6%I!{Ms_hJ2
      z7{Sg^@@wJny$)FsSm8IzA&VzBln9DL4_C=hU?JKY0~|z0NX}~9%!uB?h~CPA-hqBR
      z4lr&*I?pqW+v9|i<sg+|BSmx{ebGkXr?9#+YvK`j)iGf%$wtPPWZ6=Zz3wf|)D@H6
      z*&d$9s<St;o#1(^ce-1!&u~9gq&Ux^Owm!p*mO#Tjr*C72bhirnT{4#)>e!&_As;e
      zqKLoCjeV#w_M?u+6~;qs)BD+`AC6=C8i&4XZTfnnoSB}^uZ&@?S%nVKZinWVZJHN$
      zOY^{lG{@+CKf4>^iZR<EZW1dqjHj8nXPCI7Ox!Uh?pY@87%n%CqnNXanLN(sDz=>G
      z^Nmw+L@jiPn(Gi%=n$1`6Q$Gr^Z;U6A(U-XhcmD&>+5lbPmY0-ip->DR$`^om*~My
      z0`^Wfz+!(PV6fC8z~q1Zwt?lV^#s5^jI;R|Fc-C|-+MUA5@s0ivg|m8qkTN?XC}|%
      T@nJ4eAK~#JkB{=$hLryWTC)+(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit$1.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8218f2613d306e2fa580a2d0b11a94b69ef7ce0c
      GIT binary patch
      literal 1382
      zcwU8*&2G~`5XWa7$BEN~K&XO1t=!TANki+Td>jZu5iKpTl5j|=xVp}&UF6u3KPq?w
      zu1K6X@c?k(0*C_-&?n&$I3Z>?#;Rhgj^yn4KmYmd?(F*P@6TTV(1Gm&NCdRk=BcTN
      z0kd_>b*#|ys1xW1Y)W4`ELiUpKqjz!p^1R<nBn+@K)o>#R@-!r^>N@a=eXN%9ukmu
      z+zBl~4%9N_p+w+8nsadBJY5c|4wyqn;q-`l2j-DY3DgFzW!i_P$M}0B%E1Zq39MdB
      zT<>%V6asf-Ixf29hS4+#kO@9G76W(4EYJ1xAbz>uk!IU0(yC8;1k}JCQ>0I3V)x@2
      z2yw`qFrY%L{Mmm6VyfqE=y55x*Z%PdB_(io&9__`eR%%@xCv3G)Wf!}HH@r|7`&&A
      zGF0I*E;_{X%%~u+K;Kx@_oF@M8-~&BW9^hcX^e}r=pN%8to$$8;y?oBzT;4D$2NVR
      zVqNu_W7)2c$2O$Fi96}Fap^hHloCF9Q216bdI+-6iyN&a@*Rp_F_vIK_$2&qp$q94
      zm2pHLRNxZuM&O=eh9nr0_9d=Xg!`_jtP7G9Rr2Tx)G$xrYRq^PtwYfkVR1Uo**wQl
      zVvZ7X>ZzP-3C>mq=XxsVMuMYfaF$Xz%Lz_9gQKN#RuY^}2IpofXDz|m&fwgF+Yx6M
      zDKgJ(YTw|_Jm;R^tjuOgaCp>&4Uui(9hnjLQRN?_s;%PDG5YTF9Q6J<s2W4n7^>nm
      asbMyU$IL5rY%jmYL}Z~?!#2Te`~Lu44$6-J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit$2.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..405fe63c28b623737a68a08cce4b8e00ea3eaaef
      GIT binary patch
      literal 1414
      zcwU9n&rcIU6bJC{Y}+mLhebqG1ltCpEeJ&vREj_Zjje@Ck+aKo0%Nwj$?lfmU!Zr6
      zUiGF2FKRq^^5h?&e}EVN18>GR(`7^2hBn#E?3*{AnR(Op$G@-N0Nlb-92!IRg>h(<
      zTE4JKrem8e*X6cf+7V6u%ohICLL5<si8GTJ^c6wvD#K`@rcy1#-Y?aCSJ?aIN^zGV
      zy5Tf<0uc<R5JQ4tu~%m8%yr5V%G89-w_D9U?(P_S7H1f)Ii_Ll8m^G<K``nc2#+Cu
      zwm7v=W{CUFwqZMz9W7Lg)fm(#@+XGe_c!l;*Z(F!2TS1+E;FzrI&Gm^r9^sZ&_nHj
      z?`#Rvm4xbAmRx(#cj}xLZFp@m^Ke}Sw}jpDc{><6eg(CICr-<4hkhQvrI7ABo5o8O
      z8JYO?TqY59$X%-TWTD!xP*qv#n<-qy5N)wV*W70YLy{kv-1CA`#ORF03e9aYB<i#|
      zlRp-+u<4U2a}s1oRcxEP8<ydDoaSX7*{0=qbemh;KX4lB^R)GdI)8$m7<73Q>MbFv
      z;set&<LomAK2l#pQsrrCJWiP@>ZPcqJfv}sT3P}_fw4xKG?Lj7oFBo3FSz(2WOOy{
      zt|CSinG6WoyMi$qXR<)yhBSp~*-qo$DMJelEi}eMV>vjKE;rQdbnc&W^w7~mXQHQb
      zt;<>N<K%ie`7Wp2$C>QuOm#UceVpq(of}=wgFa3X(}A-|N>q-`W<O!3(^*wcuDw#1
      zBYU%$Q==u!2jWwT${$-=-kiu&*#&?7z5`x61*bze9l~k)R~@6#2o}`L+qeVyeP(JD
      L>%&;2MwQ?{W;4;L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit$3.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e94184b3c303da895dcb3f97027913c2a7b07f5
      GIT binary patch
      literal 1417
      zcwU8*O-~b16o%hB{iH2|i1>xJ2$EKWf(ROGw9<lfQrHw(7#9xH8yGX4N#=uK-1t9S
      zyVHdmH7;Daa^-(;V_dk@o$=h;VbZh>ZPT7}?|IL2&pCJI+rQ6W04(870t!R+xpt@(
      zea|q9x^3yc<8aF>?ielp*fPAC<piP(mroQi#P1no?=wu~>r!fJ)_$?!Ifk`gsugw_
      zq7}QzQ;1+FgBVf_EB%!96VE9L&`8~|__p8L<Iaw@XL5$Ix~*&GuI3nG9c)Iu1H)yQ
      zI+-}LTw+Lg_O@o(q>kp*f*OPPjI5Q(N$M}ZKlzgaHI~6SoM&K1)NNi>Nl1$({m3Rg
      zd&|%r+im9}@-v3q*Vk`;H2wxb(-hSVd3J+S8O^r8Wmvw)kCT2qlcj9hz7uS%{(eP=
      zd3IHM(cX#8KBZC;L^$LQjeR<=4w{%MX1<U?4x?17Pxn0_gCWh2bnd#rOk&h*p+>na
      zhE#)!)A@!WCOmwcvLJvAnVMyBr($ZZ%PDVU-O^3lrEA^d-htgLFH-3d*;h)mg1Bf!
      zbcv|kPhOv!WFL`yPrib*)G74;kW@q`FGH4e7{)2GbOc5N#si`WMmjr=)8jbv31{Dh
      zn7B+^lZXk4Oa}<zUBE?(GhFHmn;gfLKCsFFST2OEl19LkY&WCY!B9em5;CSj#@%2-
      zaZymKo3q}*iHDqc$hq2=Gu^}47{IyKmowYLc{G5N@5?Fla5e{U=5Qn6REZK5vH9!=
      z%y)BYl9Own)WZ>85sNaqgqs1eOjf*cO5|-9P3@rd-kR{1$&1kUmRzmS6Cj>sCZi~i
      J;WioB_kUNU(p~@n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit$4.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..079bfb010c2c1b462eba703be0e72339bae06eaf
      GIT binary patch
      literal 1440
      zcwU8+&rcIU6vw~QZhz1gidgX%+7dup6blOYqeL4)Bbye*0tau)b^>d*yUFgBV2p`>
      zhn~IZ!HXIXCMKRZ`9FB^FVLIu&9L2&c0;q-eQ)M{-)H8%ne4&8uipU7VJU$KL;kt8
      zr<L2DVU~5<(%X*1Ew8*`wD_iFc$4!9C=3^l6*0t@46=6_MvFBmH8pFe-0&R3+NrFT
      zwiuLUyUA0CVjzPUQVa`W%G$B(R0JqnGc3N=Zf$dCL)$hv!${56HFHaI3^Dd66>ryY
      z8ODz%PR>^t5}v)LSvIMaqFPd8)Erda96&gcsqe3p6sWKaPU8#%+ox)as!Bo{H0dRq
      z^z6E!JGLuxk-c9fC#k>u`RtD$G)=<~BKkXq!jHG_el`9w40v{f)5e;v^y`Mz_IO8$
      zCAqmrcH8Mp4Gq)sp1q>I@MqZiYZ4J*k2`b_6GgRO4^?pr*E5&`u~?gKK%WeTG~d^`
      z>-t@aQTe4+%55>E8nii`KQu(o2RkX(1dt)KYFXS_HZ|Afl$U*A>89<{LD#vrYd5R2
      z)Yqu2B1LZuaT+JcTZAI#lhaqm*k>d^ii1E}>LT>5k&5W#Wyq2agBTLMKo-M3;~voj
      zBc0FTL=Gpv;M9iz6PIaqi5Qj0w2u(pS)8Ld!}(CySPmCMU~7F~g;3ad4ih1;$9-T^
      z0c?>p0v5@4GoBn_L;^-6U|b3qcl>t8X+xJ=-JJC!oOr;A2b@wUXS#>;v=8TMC}*aJ
      z)9Aw~W7g-a5JeHOnfxcrb#pc(r*ODZ4@Y=6FfXGE)a65Bm8|?LMBjJOHjmJHyDhw%
      Y<VESZB}ccZN^zZ;jG{V%3K?1Vf1`fXq5uE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit$5.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50d5a6059fe28e83342f4880841c449e1a6a931e
      GIT binary patch
      literal 1445
      zcwU8*%Wl&^6o&tC5~od4T1qIlLRwN#(o)g_DVIc0spZlrsgP1ixz}|@t&w9(wo{cS
      zV8N0NJ9q$CumQw^2j~Kxf(>HFh85z>#I>r_YHZo(pE>7zGv|!G{qO5H0MjVPp)h2g
      zYnxi3<r!u{w=KQpINb6IOGcC5vkY&n7)O-h<i0@+YS|!rona_fm7%6)trzN^V_55@
      zh5Rx@bk1(@1S057A%+A)F)XsW?>Z#`>aQ9WUu-qkxU;0KnVey;YU`T0tT~1l`;$>`
      z!*Cf!_a}}OOAK+(Ueqj`qNBM=z7nJ6^!>fP0wK_wfBPo^DlCN~ILg4bsM=hmLV+}B
      z&_lMzvulR#*se^8ynZQjv)gaJ-}RlQX|$cduT>JSel&jm9$@J8>^i57HFmrx$CT6U
      zOL}XD)$+J2cX`KdIiyt2p4VRNB*fm4j|iLGp@YcgD&2Zm5vOn=g>lgOtVLfymkfp^
      z-_p73`dx}q`S}IPZ89Y4v?rb4GDOe&c2dp@AVX@wvbZy6YOX6P=)Y;{rtQ)}*SNP~
      zH)f}(uMt^9LKFg(#&J?Jh|2k%@rhyf89g6KD@e*Xh2Hlmis+<LWGN1PI6#(`z<|%V
      zK{UZgX3{vA#-T4b{2{=oGHpd7h9olSBZNAJ<K$;J5egel<5URjK^NFaC~P#1YzXXO
      z7ucCl*x594A+SeXVB-O7hGGOv$#gOv?_wwcLkSoY0ppr~cB<G=vy<~=7e@^^YQQ-c
      z%9-55dD?|jz?9FKCrVWKCNrNf-N|_-IV0_r_Hcx{h)dF2r0%qdvt-4;r$pX&&{lWR
      d_I63A%cLT7Uy-A$RHgW)ne<|I5G69Q?*H@S)};Ud
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit$6.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2232a58b68a609e2e763cf8d186968ea7d871d8
      GIT binary patch
      literal 1468
      zcwU8*%~I1)6vzKJZBuBAAXZRB3xZleER0e=TCp=ABb}BF$kLgRULly~&Lk;=J2yUo
      z8<#Fz>cWM}xX^_=AHc`Z86QAB_cmmhlA*~Y=iHoge)oLb{P_FjD}Z@alF%4(yT+bT
      zX!(|1Fok2bT$ek3VZ&<j$ByMs7L$lGTs+Z<K`&b*7a4}~HRWm>&URtlcP(eTv^urP
      z5ML4vo<a=086=QmScvkhow!d)g8FNg!`E8PE$(g@TQ+AHtO?VwHx1X4>)>PD-?2P~
      z@so*@#S%l(7i)$i$UB~|PE`{?Y-R4?4W%isYs3Fipu#d3#yJMIPu1qDRdS?7gC3GS
      zzNlNKD?AnQ^VQpS?CX!;t_Mcjw%SG%f4v|@+j#ls`)`I`U#xRVtPxmoY9N8$k(qM+
      ziBQ(M<+OZ$Xhk`pU2b10??<BLQr@~RmW}736Q!9X<{o!xG!yx1x2{&@T#6YKFhKRR
      z=uC8pU`X?QlY3s!w*)n0YL#M}45@X>$>b}RoI>AW$PEc($gDaJcb9C#^Ek!zKXgo6
      zcr^Mt_jg32GDn?`sTxxBB%sqeDVv74`rb1=Gs-@r=L6{)(#lVx_ZE2(owN)|@<Sg^
      zk)$m!5HKDPO)}ECEKX-}<^X5khZtRjnF=wakm&#+weuJuJHv%Y*k~4)B4CX!u(3$k
      zcoq{8Fx~}rB@%Wui+lv^X&2aZBy1*&*$CKn7g!;L70E}!v|J}+=Lka!8CuAg3mNx<
      zgP>DF^UY3<b%djb96jXR#I1m{Oq95^&E`H~p_8+#IAiUdj&Y=R8+VlTE@jjvR!GVp
      lP>a3mpglW6J6@gCN~Fc;F00jjEJ7Y^rmUz8(iqUL`#(|W*}eb(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit$7.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit$7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81d600f26c5a13b059f8703a29a0a213c102288f
      GIT binary patch
      literal 1482
      zcwU8*-A)rx5Xb*#+ijsOg17=ISP&!yf<?oJSOgR_(zG>(k1H-*wkNP=yQ}*_@JbV(
      zz{CgO0rbKfHC~u_>kF9p0w%tIcj}zer6IUs_iN^ynfaZWIcLB9`TPaIb=*xuVaPwx
      z_w{1nn^w_qY$I@8Zu`Xzv%xoQ(;t~jBgrsusuM$M!6doJ&{L>LS4+2di|f8?+PkH-
      zu`Pz=ic{wqB+#CNiVVX{lxOACbxH!%Sut&13mQAz-OzU|&d^<P4Bgt&T~mz1$)vw$
      zdJIFS6G!Gs3~Aq~>9#}O$wGOotOB(+uOEWa6c;=En*kM;LofOm*a1~rD3{5R26cK#
      zw)sxgG+f6MA=<$A$IaN(_Rrs;(XvcwggUw{jeS3U4ZL7z_nmc4iPgPuwMQ>W(R;7F
      znqQUHs%Zy453NuSRrGwd#3S>5-~{fG4SlM**}N!4-&xh4Q%Pxp?{k;-Xt+?0Yj0U>
      z(9ImC(M5#?bU0!n7_$7p;GP#YP^Hd{tx;@)A+t`&8T`H}wxi=H<eC67<koDPyDOIN
      zd7R=p@7adscytD;+~0HR%Tv_ygsdtf%0`ODY0_qql=E%l6aDNX+TN3{AS?Y8`Zmam
      z=%nRHk{>#7M)Vb(=n5H2L=%i`Uc*@p=RV>5yA~!T!)%G@k;rU_5ZVP?Bs;^UNLasy
      z%Mmaq1~wQ88`3Zw0ecz)yBY}_)li6lJ&S>jN5UpFOh&-m7+5h9Hl^W41k8(pO}AjP
      z<Rf58{v^Xc#!y-erNx+`*d}9@2uTq)ng4*flbk?u2IVTL7AF;Qgf@>`(pthoNL(f<
      n{!1nC_5^MJ814V8gm#;>1l@~rv_vd%x|y_Mxf^##$iLtpxpm#W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeUnit.class b/libjava/classpath/lib/java/util/concurrent/TimeUnit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd4b852a2d9c39dc05421c92edd44afeb0ef8eba
      GIT binary patch
      literal 3823
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/TimeoutException.class b/libjava/classpath/lib/java/util/concurrent/TimeoutException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7438a73743fceaa11b0c0a4192e768ee72ae3609
      GIT binary patch
      literal 523
      zcwUWA%T5A85Ul2D5ClO`@nj+qFmdA<!v!_b5HBG2VV&TRW!CJ@8h^_ZiHUxIzu?th
      z@M`QGh$MRPFx}HNRbAcl_VxS<-~{z75`@N7JP0Q;%5z*_yHOBGZJeQ+Nk1~@kFLBo
      z%GX(>2o+29gq}D*4}?-E10}qX3_`ANF3$*bMJV)q9U7s{NO+M<*G2I1{_!~_WKNY<
      zrb|dRTO&fM=ika4lGw;2hjl`+ue7|5W@8x)#n_XCa^H8^K(GzhOE6{bR7g1N|7-pZ
      zq1x=P<{y|q=}D(Gik+*mbA^zd$uJZX>-dLC$PN4`aOH)H?W?~Xj$;M(!F%!V66#1J
      z!#T@U0&9FI-j8FR5r;EzPPgYMJXuPSW5$AeC~?d$2-rl~HsleP;x4ljF}r;<$JR=n
      Zv*-b98n#1i!CH2RZ#8UN;~lHn{RX)madH3v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicBoolean.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicBoolean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15962486e10371423df722056bd1a4602b2e3dcc
      GIT binary patch
      literal 2174
      zcwVhkT~`xV6x|o{MHnDNK|a+MTa!?Yh+1s`1(Y_JLR%neYCnd_fP=#fYcc_Jt-kbE
      zlwaVB4}P@hYS(Jt`+xe@)pp;TAq3F1x>oy;%)N8Y-TRz<_MPAV`uSG?BQT<95=gJ<
      zn|ikDTXxoP9i!@brsHRI-(9zi?4){3xvp*MP81=5gi5z{XEi&&yk;7H6cK^r>aFEw
      z7fjF6ZR@eVY@1B3sBO{oDwgXk<!=gzS%J1`*Qxlr;}><iYKCw8@G3rk{m)T>NY$z6
      zD?Hd)s8pTox>Yf<OX^ilpmkGb&#$ahOkW_ZcErmI#KsKUax8yBpgEN;3WTQJvKdDg
      zPDIfy&~XS%Ll1fdT2@VeDIh$SN*|$Yfk3|o4Q(-W#Bma*qc}yheFdg%y;9Ne4&G(2
      zM7wDkw(gnb8OyZG0_ReN{oDoLvz*mjy5W^)uGmyCtI~6_-ZL8B!~5*tRobe+UdIEe
      zw;oN;%34zz+7XK)bD+jsp67aTr161<b2v|t#{#W-8UYs{c<z>*S}t9T;sO<EfY>(7
      z4WAPvaKUoSx$63|=`Ge~oGiEoN33(u+y^h4%x!_L!W$qs$WW@3F2>P}4`oG3S^6~%
      z9Y`?bKd>qS!-aosO5$m<A8E6|5hdDSRVqd^aNTCO>l>WPq*Go{&PkO@>5^1?TEk7;
      zqS_4^Tlz-c@ehepb9!zzpO=6Ub9;kZY1fUi?n_Gfs}g9-)E`bCq-$2gi#g_2P+!#6
      zA3tJ9Rxq#OGkne(H>&=;S2pP##eU+A?9$p|vu4~qcqt~E5h!Yyz;(I0tKkMFNfhWt
      zcHgbpk2f`yK5EK1zQQ+Ae9aE_V}ZaLO8Az;B+t=<0`Ud6>KW#YrMz%pH0NbHF9$W?
      zFN_fS5JimZ7Jh%45a*tki|amVTt26y3;2w4*NG%Ek8!uA&I4y&<M>PTy+B`5BnNge
      zxQn5eIQs-`w|_zUUgi~se|yf%2)faWEEz@=c7*>u{2wImN#YMOdJ037{~{wAPxLV|
      zic8$_(&BQ!J4b{jK9fYglIh<;H1q_a=AUr&xvF2Hx3f0za)pp##ls4*yLJj6AqS|{
      z7{-YyvG;l!ReK;TvG?KP>gWZ+jns={QUKK{CmaA=4ggv+KjP{R!l9?lPwOxd6}r{{
      z(OQR~H3Eq5m>1@AsNUMdz~1Ugh%#qh;Ot;mXctra(6xqVSn0<U@DoLGsRmPTc!=?F
      zMLWc-aW(2*<|cTyiwJqHLX6M;AEguteuuDk|3fLAxLu$6OfdEKw@kb?BAvcnZkTp^
      zov|GS#n_2Y>zMahm8`Y94mlq5L>tc?cGE+0*sN|{;h(OZtmAhF_;F753s&DmrUfhp
      zOhsnP{6uCKOXHb={$1SJ`TLK7!>VnuqHV4pHE<;A9EpG<OyAs7stJAtz6>}n2G)y7
      Xj@P*V3<rJpeS_~}0j8j0GHdxCO_7sr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicInteger.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicInteger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4130c91f22b005e251c49a0da256789ecfa69851
      GIT binary patch
      literal 3106
      zcwUv1OLP-e7{~w9=G8Ez4@!ZyXn80}c!ZaV_JO6Pm=Y;k8s#A}O>WyM)0v*hgjSX+
      za*oG^kCiJQ8#nUS$`Qpq;?|7|7cN}8aI60BWHL$9;0cRl?&JG@|NA}eeelos_W|sK
      z8AgMG_?&i0OBNj6NM<cFTd-|mI!Vp3=JjlH$o-^DN6ZL2jDUhx*WA#|ndFJW{FGb`
      zDd=!lbt^d`Y+W<-%i5G7Xq<Pa8DZyj%bZM&C{V@}G!I*5-qB1aqZtJe%p5-d@B^ds
      zeFdR{nb)T2*p|*0%;dbD&n73`r9K5~E=lY0>FK<16a?KFc_{^v{;Z*!x-+PtF&57#
      z2n<^}5yg6J2%}R$OBGDTMr=~hG$WizPjFo<zDlwQ3c6LOXpW#IiYL$;#*?I#Gcasu
      z`MioP*veQ*8xdJUvqf%H7e-FO?pV5PJK@;6Inx)fShB^mA+k==HSd$>-LB#(Jk9v6
      zsX6Yr8>NVQVvlr<kIA#fRIEiLjKqpF9<^=Djv|g-Dt2QJlics+YGWnv)U0hS%BuCn
      zGhysyMk)|XS+U@-f&`~^Qxpq-s#xRpw3TIvH5Qt4Z?QovDOjJbfnXs6u~a-0MI)Y*
      zCu)~Re_llkTDj%S>Ujk_({(o`d8&*@wpp<w8fRp-*a+;5MmKX2Q!IL$VMDw8)`W0m
      zvWHcS;3(U1q2P?$Il;mas$fH9UdG)*^o^xtU&)RcGIJ9WDx*k6dG?fw0SwB~aTRI2
      zOkmcUUtk}UOoOphDt?CIULaEZq>5MYDl1)KyQnR=2iREi04^dVmKHdbS7jlmIr6G3
      z3hm<XO2L-mIa6lV7V|<P1EyFiZ?I2G8(v65IreKXCk#iUm0oh>&M_C56IClsS}s=_
      zM;xoz-FygQ@zp&ag@$YxQ#@>W&#Rw`^Pu#4W^=V8(Yp6aP|>i=nNp2oalRwbX~WW-
      z^3o_DiJVnn2bS0P<U}W|f}Itky4$WRx@V7+<o%^7e?bJ$g)kx<H}Q#VK$LUde~!E4
      z-QxF%Y*c<bIBP>YE!S~2=lTQN@1o-lx^APZU1{%G#^z;gyMrBHq51ed#7`%_!_J>>
      z(K3WiY(kO>`&@R2|K0rWrS2B;d%3$6+pq!qxuepfi#rE!kTbq3c*fHmC82@eD9O(z
      zy1&JtTkg3fbuG^X>|#v2>AS}zbr!Ah0{Q@V)K4|VWtL(&;Ld@dWR`JJ*YyB#2mM3Q
      z$V0WsJKzD5KHwW1`q~GC+{ONy&WHVo2EB+vRnZjXkJ4wfB9f3FNeC~xk+fmRXN}NW
      zTB)o@;x=}4FXKoxaU5%KvVy4kMAavb;+RLwFsCxBt%+s4G?3^aaqQE7|L!SAS<Lzw
      zDxc-}oJ;O4`uOBlj~t}-362`5!H2`sIL=t4eRJv5?4$AOG|p9kn|*LICS0%_o$|nw
      zj|X0=8=UbAe%{MUhs;WUci_T6Lb92ezq-r(cD4@iHlu!r{rE2DS1PnRJgp$_*9ljv
      ziP?G0(|Y}pTDkwx`jE7b$oZJ_PwLh>?N@u2)`61NKu`CD!9>sIqE=6})@P)BPR<vc
      zf9Yx^ioSjhJJ=P)s<(JmFR3<C^=v)aT%~%AwCm*D;QVIY5uU3jo2#_$k@f>QKXQJ*
      zZml=!$>!#2tp}w2OwL2je|hX|Dvaw*Pjx?vk5NRb-o=HRSlREtR=h_MkFG$}c+BWu
      zeOZ31@t7%?#*F8@m)3GGB%QBZtMdN6!aL-9&qDXTm9qDH*Q>n$sOde2i?y_`-l+2a
      Lv!=J<TFw6lz!wzI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerArray.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerArray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd17939ab6ceed6a49f51d3af8bf941b31bf4407
      GIT binary patch
      literal 3528
      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
      bA7Js-{SPn8f4Tl&!$4jrT*FH$`sMEda#V2j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53e2016bd69bc0b28038fd955e8fa5100d918278
      GIT binary patch
      literal 4605
      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
      Zo^kc~r7-JP__c5s6KlVrk!$X6{|`~IVi5oU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d308e62cb89ab8fae6d196817fde288eecce7cb
      GIT binary patch
      literal 2744
      zcwViQ&u<$=6vw|~ukB{zB#le9HrS<wQf#NxP|_A^*Ch=Utz;D>JCQ&fy73NX!+ITU
      z)|4WIfCE>coH+60%%KITl|VxLxN+jgU%-zm;=mnvGrO5Owws_Rk+SpN%)IwL^S-m|
      zAO89BYXFa6DTNrrsWs~rtI`h~x6<x;?Y{4GFQ`~Suj{lci*hi%fOoim(c!MWylz_o
      z_fyaq_RCP$@;a4gR@ZntV9-5&CECL9La}js$C7JpY*Ys(nt|_loocDED}XA)MAPYb
      zR?zo3!|S!>vyEY#YJCKt)>^LC_l_b=$Dl3sY@Wg-LvvSoj^1&_?5?{ybWEi&jTwey
      z&GDR|&T#C1HFt$!rr~(}Qop;({g$=rQnNCRUfXh4EZ-4+G?@(AA_>FnNM367ivsDA
      z)s@jBWf+XDDX*??rZvVZzz{E%R&>O1w>VgqS{S_KQ1vsr6M_=fb{AP|wIt6}yVqT}
      ze7@+}O-?uY;9!5F`(&D>=Na}DDI_#!uW;+-rLBSS4e>O_g$p@SGFn=$_1e`iq$8el
      zV?s(MDI+3;F+tlltBlWYs{E!7hKJHPh6jaJN#hXirAockwXG6Hv2-kYbyqC6PogoA
      zCu$(YP(r#!VR6%I`@AdXHIKg<sD&rFT8KCoZJQxsb2qSPm$Mm2D^H6P%-DQrX2P=V
      zO<QmF`hJ^Vbi^e(bVv10h=VYsP0!=LykDFyQDNKHiJ@3)jr&@RPH9J|cX5cnX-pu2
      zBw|RB7sEdCfoGwS4d`D%f37@#3+e0R#j&5BNs0xIW0syqxC<E^klA$Hg*jR`$WF_B
      zV(lP}ns^;(Mr41AMzNMC-$L$&O03IdCu!@WGI^LFfqRgbr3PmT5MOH2o@PSu!{i?s
      z^6$g_%0Ei}14BODBIOs!Dxs_zF)vZyAR3LvOnLq$j@Qfch5SvN`0(Gq3!f?OY1zs*
      zsWESn|F&c=hfxu`upXwLCMK<ubiNqvPGf<rxI9_d$V_;$X#XkMrqje2Q;dS?oruYh
      zOy~02W#Y;gB-da0+gusB>s_k!9`*KplIGd~o1xf@h%HG`3zAJIwlhO)hGH`m+haSk
      z+1s&wL^VIAYM&6>r+duy_=uL*D0hO!Y^Y@+fBCdVg3f7@?$5$7-F2#Z1C#iivVI}y
      z7Q%Q%msP4}aW+yl6RA3hDaok~aAp-}R&iE$?%|-mBb47z&2OnI-%$_0-{T(Ec4o7;
      zWBZY6{zTP&CbnPpnC;w%z8^&T=Emzgrw!x%N@af|p?;^de+&qmQ+PQga83z)KnXlO
      cB5+QD<|5EI>Jsrho`CqoG5Nnp&k+5>e<p|&F#rGn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLong.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLong.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09ff7f24edc6aecf52205787ab267cb965a1e607
      GIT binary patch
      literal 3192
      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
      Cd?_>l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongArray.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongArray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9bd82218eaaedf54dd7a628bfe82fbd7a4a60df
      GIT binary patch
      literal 3538
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7a74744bd01c780e7f3f6bb7f3298955d9ba327
      GIT binary patch
      literal 4511
      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
      Y<LdD<Y1Ys23+XN)*M3Q(qPf5NFQT(JtN;K2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcb0248ba8710979109c51f9b06f17485156b192
      GIT binary patch
      literal 4539
      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
      EKiEVtc>n+a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicLongFieldUpdater.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..210ad225bc36a6156b5a10f90fe8a60223b09ff8
      GIT binary patch
      literal 2909
      zcwV)ZNpl-T6vzK9jU`*id!$H?AP$6J$s{7diAf}z2qiWaik(8Ts*;OqtZ9^Sq>*bp
      zBA6S?0gfz1RgNrIszS(8MXETkTsX3P0+s_+9QXpj>z?sgTVdleKB!-Jzvb8O-!tRy
      z{`%re04H(D4-dnsHT7jR*|79#vRpUH4b$X?l~k>IO)n=ia>&<>%AC%t+VZ-lTHN$Q
      zVHlEeRn@2@msZz!*<uJ7{D$MgaAhLD?UAjj8yl&ng@R@3MkN)`|M%)ChQ5McF;uHz
      za)!<H^0|CFOKP^Gdb+rrn%yS^I~RkJt!umw524?WAj7fUWeQ>dgA4~smsSePmoG29
      zSS+mMmlo$&vY7${yXwa<!_4k-HB%j>c*hK22%|w9K#0MY)(zd7CA?iJQu5;<!}&dw
      z&)3V>x#kjtG0HHQ*A2edsI79dsIFE?uMu)nt0mRc#oSr+S!Kb)Fx-JiYQH3^EUGmb
      z-9gL{ZcVwlzLhrI{Sq*EC*q|5ym(CX=m-gEUDK)h)E@2vWjnivuynB~N&3t6+PZ4;
      zjG+}cJwpeZMRG24E*HPb&^tjPwmE!*tJkxwf!+=A8}1e!FERLKw6v<~tDAO6Mf`@k
      zgv4{CiHHzJAGvK+>7GC5=FbJda3+W(o)XqGK|Fy8s#ITHYZcFlrDM@cqoh_FBo`BT
      zobFK!C8P^v7hf>SCa=kL#o(`4?#2b~ZaAD7O=IZMc-2zLOWz8loq2JBL5;Vq^r@P*
      zWd{oNhFRuwy0|`vx=VLLoPr^^U>Mw#*NW5K32Z-oq-x8vz%Y?6c6&*6E-6Q-YhH-I
      z0ra5<K6v1#nFqZz2d+UO8yLHdz)kc&z|fV%<b90XdVsLBBDZMQi>S;XGCfH-j??=f
      zi7}dm?PwfAOja4g!+3;h9ws|TqrEpyqaq#+S`k$*(kS+N68G`wXKsOjOm>=F&&cF<
      zf*u^j<1`*_Svdyr)u7uzEB1lnG*7h6Ckc0Jew^kf+U9hx-1$kePT^^{K~oa-H9D@3
      z#!zDN9!^gyiOH}seh<?(|Nb+qeA?EV*D3T3jNna)pP++Kpo1^0vp6RY5JC!RS!e(=
      zWGV7+b}vKr;T->2*{Np<)8k?athXGjh{Vc_2ULMJ9#$mUALH9(Ba-4B@_v`TEbmd3
      z_nYV<E?vZ-^HIc%q@(W;&bQG;T)K!$m)V()|2y4><oyxV`<SYHvd?tSbx8UFW$C3c
      z=159{s?$CpY}h9Oe{WXSCcI4<KBtOzXzi{foT6(;Ib6b+t8NTgN8OO4Za)SktFMVQ
      z=Ca0I)(ah-eB0?{w7bropkI;u*VLSEsLZ!bt&F;$QMZ+&ZYu{mS{ZfmqAuRWo$>e%
      zc;A!z4^;3+D)ZAm<IU|wX<s|x&y?X8QtVe+`|W>H+KYKf`8*b6T@Sra8FCQ+<uJTJ
      IqkW3}KO|N@R{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicMarkableReference$ReferenceBooleanPair.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edbf9a91a9b3180de5826a1b613e7310c7fd4495
      GIT binary patch
      literal 1189
      zcwVhjO>fgc5Ph4Zb&{Gkgi!hsAV3OEkZLM!G>Qb35TFzgwQ}eIX=9eM#a+YNM&dtl
      z0Er5T13!Qtg_zwmm1xW*>cQSOA8+2wdi?v(&tCwx&~Z>;cyh=;aX(9C<cF~eGp&V6
      zeV)cgGV~wXW0&jqd=!aS;;o=)DB7p!Q5;8ttCw7A2PKA@trl^0;J+9hiZErU=t(j|
      zeQ-9uO$mGQK=Cxwlu!%;@)Spsh-{x>z9*GT`wYw8G<Cl-WN<v9SXA1H--s%TsJU3c
      zMJnTUh7~YeaxsT_gD$(Mpvtf`kV-tyjz&TUW-`-R9P(($wKVpLvy{G*3B$9&dEF7s
      z#xy;W2Kra<^M{FOFpF9*7;g7B^CWw8J$=$G^Dq=i(!R&=+M7ipf1pm@7oBKrG3=hF
      z7A-_|FV1u*9!qmo&HvChjU<EnR4Ji%BAz57ad4aA{tUe^H1fJ(@Or_6>FN8^F0^R%
      ziuBJFP&b=MmSe3l*|d*@O>_Y+`Nok8SfukKAro2Z{-EdXG3wpsF&f`2VVT~GHoS%s
      z)(JOpg{;<?f)%U+7Oh!HgVsr`KzSf`;Uw$oX;vAmR>n14r)(p?L8sx(b-$zj)%ImX
      o$Hi8x7!@H(3pa8ojW1^?s}l-!c+;X=XwzA>qz&95G#=mk3yF6tp8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicMarkableReference.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicMarkableReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec9b2541af9fa8f7f948ef64a2141ee0ce365b31
      GIT binary patch
      literal 3193
      zcwWU;TT`1w7=D%{1d`A~I2ENT1tcd(ORQBAsT4)d)Pk95I#c~fR{YwKFi8-Q>aB-=
      zptaVkUiCs}6dXG`Ui+7vaeQ{a@Fg_qfDDe4ne4l}@8Nl#-F=fk|NixN0GE(-qd_2c
      z$N1QYZkEh!G@Z|-Hwy)sD@Bb`e%(w*C-ksj6z&?US$RW#D7l-KZa4*6bzs)Wtwons
      z@5ppXpxFwepTO|^(TVMZamFs2YdNE|S&#ys{hQdtF`R1{4A|DSd_F6U+;zh&Bvz8~
      zaef3E6K2jVjSF-I=AWh+PX&_#?f{*&<($lCqz4Y1@u3-K1ss7OrEL=k9}TQZ(sqIA
      zqXUk|!~;J%6&#NTt>{+PIf2ePWP-_N2t4P53ylJ2=gpj4++1Ikg%wprz(1c)8`-2$
      zFx9-g=q!C?76mS!M0u*~QR13LR^JnUEhYhP*+WGOh!hXvFpiy#11w`F0b!jqkBXy!
      zZ%vl$ErE_eupTB?AV_beXUK;zh8WE_rSz~5BZvw#8R@hv76&d0+zy-sR^79V*G1E0
      z7FD>+==+vZFk(Kug3A>cmjo706NWm4z^znWIBvC}#q_K*-E=;ikp+Q<TMQB#0<))w
      zLtyFDk{#TGwk>Jgoy@Oq7zH_z%PdPavtXUqQl}ZDlrCP?4OBx&siSDcgb#1vn!wPp
      za;OY#a(jce%v4=OUrugSPY+zISK;Pv*(xg_(2}m^ppeY^Fs+a{iq?F=hdI>?yhf=c
      z*EdR5hWc$TWw$w6p5^>zAuXp&_2_z^A@YdILZmafoGeUcjbc%<Pju9iULcT2j@6bO
      zuU$ePTa<&pS?m_7PjPf})_^8{gz9p%trahP9CtZW{ym|6w1l3Z_2v`!Z-#sK(Xo%N
      zpV9LpHywDM-)FRA08RvP4k7e%_L3Eh^LPQ!){9&d+Ummvmg%S6#nJK_u)PN9CGawa
      zY(N1GXjZSYTIeVA>>>CE{J$XbgN>q5?~dx~KFhOQz5me4fEM8*f4s%B^Nv1#DsTLl
      zdBb?s#(hQS-(eo5MRz6tLf8>ujg`nD0+x*LQ2%M3(M*+$-L{O~cnz<!j5?z+f~uCW
      zy9~nGOK?r_1&!Nqu4*`ckx(PYxeA;ySGdPTD35UEyfQ|=$4I2S($eYFOAmPw7|`QV
      zw;<B#<TcpCn_t7_eC()b72-7lZnMz)=)?yEZBXY`Dv>6j48f!^!TBur6}@o_icN10
      zljU17hqq`oXzOj>7l*c{XgQhvDrJiE8u#m(&T@_cJIA1%V~{y4{{;Q{_uxMjWTw6#
      zTP(CqL3T*<6AH3RLGBUIrv!74g6vX|?f*%Txtf>%i0djtq$0>-cvzG7_6}?6?P|;J
      z2YZ;WGy}hm{hYbJ;QUKIh_5s=3suBs7SVi!wx)DL@Uk%|77oqAy7>{CMMPs4Wv>Kx
      z1s1VnW52Gk|3>{(omegQzA|?G4u`A2*BsgfwnX3?mb#C2e9N^5>`ULV{6luQ2kbHT
      ut0={6N-_JeVm75f4W*b(DONrh%PXP##Jifz4J>o?Ks9TD6<QX__x=IV5w!UL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReference.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..882352683626bd5e65ac2c2fd8c20ac872ec30b4
      GIT binary patch
      literal 2739
      zcwVhl+jiST6y35DS#jmYag)%d0a_@D>|6{53dA8znhPX#8>nNKhFcYR>?kObE6YvV
      z#gFg>yzoF<2wkuiyz#&@-@qU63Y;0qif>)CEFLV4X3p%r&pCU>zy0;&&j4P78AC+E
      z)SiA<&o(^M${LPsG+dY2URL*<ebdM;iPsHQVKi&782Th6#Rf~atJ%$+J!W_@$P$Ld
      ztm$M6%r$k(ysz(AjDqXpv&7uG>Da~f6$#RYgv7FA*FD|#O1jlx{eRrN^Lz1d>sJYK
      z!>;QU+BlT2H|*@bSvRspF_n{W;x3QgtW@gElh7}|B&714f+%#LU{-D2Yq%5;-73+H
      zGH+O>ZF&ndp`}X_`j(wCi{m+*iQ%+_!45tZV>nAdRpu1~O{cVUm#P6scwU8ygo431
      z&f%pP&J)_Pre#a7*HyfX3seq5TVaN!yR5usGOH|MMr+Yu@Lbcb=F%-wE~{9SQ&xoM
      zxZVjBlhCL{j>uLlG>bB>J#lM#gKN#GI0+?&={Ak4uIspQOkq|<7Ozqt=7U<DZUx-h
      zb)5s=*j&04!$qn{3&f$pY92M2fb*u!t~d5~n7ifMAeDCva)C}>pzmNZ!VV>j<a<C+
      zyGFF`w(_pY8g(;WiX)0Su639vHLqe2NouLLYu2fx`DgGnaj864?o!`SqwQkv)tZ7Y
      zJ`3(V>0BW2XqES6SW9>3Lmt-B!kkgjJjG@Qfrgl+-@jL29`E<MiVa*P^VAyNrduZX
      zvJW6Z>rthR-i1pT&VG%2w`7+KoNThk)*d^z=?L(W^Qv!iH6N(>5H~2J7Q6$!)>Jh2
      zbc%X2$?UKuP~=9ftb6<#IAHo0%k9efk!+49dfB8`r4`{D`o+mF+bXVLnU6kEk;gT<
      zl*o#T=lJKZvt7Zdj6;VJ!%o{3=&z|LgLf^sp#EJ~04X6}a2l?`)=X}&;SLYY@(mIe
      z=1X(ka0^eWYR4s<!+A<HO22;e(WMrHLgNAY3y2_2-*k1+c#K~Q^uEGR60Hx3^%O-Y
      zIE7)F8KIdyfdgE4jL}CJe~9svlzQO^FCO8QM@WB-#MPfLbu04&W`21<kupYchW=_I
      zcwKPF^c<n*81bJao-tY-r>ilAH)utr9em|YT%s?DPWM~1(^vAg;NPK9gx+ytcqcRU
      zJ#r7|D=N@W(i@nd9484w6NsaJG~UGmAV!x(c8hImOW|6I);Mo7-&OGq^mD#rs<_xX
      zLsYY&a0&`&7Tabx_z<^Sn97QPUJ9YVL+;xUS{9R+o)UJot3umBh2)Ov_>wQv-o=*6
      z$YEt<taVgI4lBdgQo<AOb@AOML>{e@7cvi#o;t$&oviCPK{wbjs~WPZU94)zs)np|
      zLPOT;g7pq*;@wU(S*MS%`3>5OSQM1!{J@Yhfr6mqqb(Xm1o?5)QW%vAqf&yt_}^q0
      z|Fet|ZiX^G5;DG|U3_0MbA(&hGSk$9kH7l+&*@`V`DeqXUO6<bwJ1u4ijqMu`l(x=
      yb|^}QijqNB{3xzS!e{tAI4>)KsTHo|F>ZJI`d*8#l`dZ^0ZRlG@vH_}?*0Sf>KEn!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceArray.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceArray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01351e4713ee917833ba469e0c7108b6b34d55d2
      GIT binary patch
      literal 3528
      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
      WmQ1O?VoLp{?;3o>KW~{)-~Jm=xVKjT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b08736f736544edddd0d27c45db1bb07c796ef5
      GIT binary patch
      literal 5338
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52637d075c4e05b997b69ebad450eaa0bf9d8383
      GIT binary patch
      literal 1995
      zcwVJdTTc@~6#k|ylx~YaRqzfdLN7qY8<(zxN;Hx*nAlRHZ`*dLi`(70Y$5nB#3z4)
      zFZu$BCjJ2bj_>N3*|N2?K~kIU%sFSi^Ub&C%<lg9_4PY|IXnu&$1uOG?P{sIqZ_G`
      zWtQr;%}pnzIaXCKr807Q!M8X?OZ=(Mjq*mVtU25cBET>xlMT(Rq@EYIdC6f=OupBE
      zFj%o{6R~P&J3Hyq0y)Rl%}P3+?NU>kA(YcArsmXb&hSaySjwJMnBMFVTW-^-<~P#I
      zZDQ5@W^43+6^m^oCqrP>D)S)144Yk&O`Ni}R;?Kd6!b@M4g(Cms&4AeGWEZ^78Mu<
      zvbxFF>(wH+^IFlMf=9DfNizzXtqZ>q>~%_lgkh+Smlk&$i=izcc3rDVnzsEIhFiJ!
      zYsdV<om<y&!L77E7B499<C>_&6{@`RS|<sM-8PXZGu`H@`FuKGkh1zqR<)+tJY$w~
      zoSvk`zdO@7sAq}9Uok{tE-(FsJG95OH><7m{v9z+ooN%%?ofkL*g->kx9_r4#5mc3
      zCEgxl=o2JyVj(`tJl3*sHWi&1!^g7dQoxXkAcnZG<{}uwI7zgM+pUMHDTiKG1<k0_
      zF$y+%MtC9=qY$a&thy~aCQjPeDSez3>{RzP)8w{1ZJdtO=s%uF235^>cpnuyy`$Pg
      zfpNM`Kg6#OA@raZJ_O10NgsGiF|i*02IXZUIemo4XL9`*q%n#BjVlDnP~u}sT)_}U
      z#@rNIKQF1nxIh+@)<p~x`3Tu!c2So+)MY{i#4|;+*!~I4BCjWLgsWe?jTM>tjG$|B
      z!-xyQb=;tNq$M&6@tvVQQpCNpo8;d*;ZNYU=TDM9b;73;;rR)&l9=`?H6x`SkQz~r
      zXd-!t+4V$nX8I6!KK}kW(=6CIS(x`!tON2tNbLzXtD#+3cX3aukK#UAK0-(EfGoef
      hvnGDj!$0)!^B#Vl@O~^vg^O5{Rb%o>Q+ZwG>K_{a{B8gM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicStampedReference$ReferenceIntegerPair.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..748d36df8c70d069f6ca9bcf3db4d620e55b84f0
      GIT binary patch
      literal 1186
      zcwVhjO>fgc5Ph4Zb&{GkgizY1K!6mSAk~y(8%08uK$apv#LA7s#$CcziCxw<690(<
      zNK{B1_yPPV)Y)}YiN+VI9_)Sd@#f8}$AA9*`VC+Y9Sa49SI7J_chf{p-5?5sR4EZA
      zE>EJF4BQvy7$$snB97jP4}yY$XkQ>NOvFT}w_GX<C5D<QHs#^OeKS55LBdc`^JIql
      z;Bx$c5{7aT@+4K1Q1pHBSTZZiz&wWKo(yHuXIOU@>0W0<`3}(xDjh~gqKYDFHdb(x
      z3Ob!p1q`=rEMZxr+cqkwGOP_`C|;+tu~0rAPfd4Gz^5awq_)qUrR1ZG8N9(YT@#JR
      z^k9<a`B(4D$y{@I1+kt#I_U4_DfZ}c`XpQCK_KF|{fyzga|MO`aXNXQbS|~WFt|o3
      zT88Q{N>w0UN_|hweD<yuWU#$36zXuw<5<KN9y2`u|4tYhdA%?=J%4|3^!}m?En2!F
      z{cr`;^$wC{8LLb-Z6aYEU4c!$EOG;@bbcbFBWvBC^gKO9y}Nyi#&<(lr}wG}Z=r-H
      z;ceU@tCdl(fla`mEhDK>lf(*?2Vxh_v+iDGmBDId+{1m!*77@aYTi=!2kPHUUs^OP
      mwqeAm2vJ&ikV9#Fy+qlZQ>ep-20cQX&Z;5p;0d8@eCG_)C@UlY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/atomic/AtomicStampedReference.class b/libjava/classpath/lib/java/util/concurrent/atomic/AtomicStampedReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0976ccb8dc4fd81dabbf768ef1988c545a281a5b
      GIT binary patch
      literal 3208
      zcwWU--&0#f6#kYZ1j2<v%8z2HiiMJ2kd{<yAyN^g1X8F4Gt+h)y@V~MhJ;BjR;q2C
      z@lor$FWT0bKJ`Iov^aLg(O3T{_1nFdn?T}#433kT?AhJ3=X~FHcF+Ce&tHB8a0VGa
      z8U#jfnje|*4J((AXN!gGMyVtVR@}6TYq@NEQV)xkxwbA>uE-mbn_20HSD;;=%bSJO
      z_`>o{nY9F(?Njs<7*6jU*9|z%vx~Xaf@y7(q`;kjb2hmT=iLMbTq{+u<f<%PHgl!q
      zQf7RDKY_+%u8^}P1iC}%-7Lpb;f#PkL}zVzr-~~w01w&>G~<YXClscz9Rkt4aaAdL
      zRN&&?2lhoIfFQaQnm_>U=uy@&fv!4S!kK0WJZHd%Mu8*gTtUuntS!sZlDV8`A%f{*
      z*34(jQclgCMX&Wit}Jl&0J>A#fRZ+6=Jh2B)<P0691ne1K%`iQoj5kvx3Qc*00_Iz
      zEEGp(Ta}i(CD0iP*Tdush3T#2j2MVwh^Ki@2|a9J1aW~TGn<v=^1x|<cS8q2RkxDk
      zb-^?-wIdEMTS}ow7&wcUD=5wgqz@5=DnaOasxBJ8+R#$AlvT8uVtz%I1RAdMlpw~`
      zq2UmiKde~Wm!RX8G(VgwuC1FTIayd)lx$<+IxnS8A4r9-k+W(9suyskuE(T-*YJkG
      z(7s}*2p#g{b=p;cc_|C>R@Jn1+r_DR6Sp1H??^zWY&8poW!Auq!s030^GgQiR3|V@
      z%aUvB+jppble^|NIa-0m;zlVer*rDf9j`C*hzi2ssX{@Prt)UFEZHSG>xnNAN@m7t
      zvrg15p`Q)P!_O6)h3Zlq{hT$Ri9exw9Bq501qR2@IaB_<ku9`Fo}vBfGX$?j`?k=z
      zh3=ow`vW&UIL`lW1_VOzBFsP$ba6b!*WJg}7wsT8f#(5jy}&i0t$w`3bSHI$2FGi_
      z^%|s?z$py5z(N|>tX>D&B0r+{DZ;-Y_%mYPyJ#BqZbD}_Y)>cq$sH>LT8z{Dev5yO
      zJNjf-+~hvvM)8V^`<#xy$v8@jo=W^nQBRCH7GgUHv}v~))*;1O%~r|S<I32BS8<+c
      zRISD^zC*?y2ZX(s<eK1HnsDJ<&~W}Dp+=5#6*yzQXs?e@9^>2zWsE++NX%Jj?eglS
      zZ+Rhjpx38vL#)fo>+lq>e+{4aiKn8~2$KWvG12?H4JJV^vyNG6y+So4LERuAiAm09
      z>7yu4*l=8mbC_~&${gOL)u64ncxOD?nx^Gth6}hz0eo732v_VF18$5#H^v}i*#1fS
      z3rhT7ijt}?$|e)trYN6~=BE_p4n?_3QSK4cX9RSQqTHn@xBn+m=4v{@W3H<Rv5F}3
      z(P1q>OW&}je^hO`{oyInmF5uCXTM;qFFC)@hw+tWW}}L^%wn34(AKnW3@vOBiiJnB
      zuwOvTWf9ZZh2xdvF28D6aIs(3*ng*fDo>&od%uHSzsKP!@HK@y#jXZ?!&GF72V8qd
      zIFFeAJMKMVw|j_D?p0_dTv`dYU<sF2sD@U;rIm1sV|yia&v;uCx`IWH0jLHputduy
      G`p(~}Yqp~R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/AbstractOwnableSynchronizer.class b/libjava/classpath/lib/java/util/concurrent/locks/AbstractOwnableSynchronizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..571f6d143daf45910f9277d0dbfa421b098b0f54
      GIT binary patch
      literal 754
      zcwU{7-%1-n6vn?vHi-$b#x&6;_K)5rwsjGq3Kl_Z3zpDaq|N<gGMLeI24-jdcj?>o
      zqSQh~^r8>Ym+(!*vzvg>q`m0H&N*}T`_BC4Fu(6^egRm;Vh$;WH~ajE`;k+DFN_wE
      zwNg7jFybKew|k+pT)6hJ=Dk36PPG_Vqt%(TId}}E#2awE=eK+NQn(zl43(s+jNg$~
      z@j#u$UJ{4NwkvI@jQ+Cwj)8q-nBFlubX>bG4<eaayZwIs?a+LsHu6LSQK*h29WU+Y
      zft9?^P;NaOI;?FnWZx>S+!jN+(d;sKJEkuSNTXcDBg`<&w3L>gqQf5b8Pb$nMi2}q
      zB-)RPo*Sr;VWahbGa-=qP`dXMxvPzF@Mbp;hI$c2Ow%+R`S<?juQZyIZeHk^$O`#E
      z#r%u^fLn>p-V&XcrZ0mO>d0Y=@;tqU6bd+xF(^;Ni>F3^O0@GSGK!hyE6n~#q>pLM
      zCdKEd&{`Y{P{ka@3g+=-WZoimDpoJQyhQE6T}Z00$n!esFgH|<I>gxmq0puA6wk&$
      Sexi2q2gv#a5Jq^h>cu_k;;nW7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.class b/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4154702abd57efd4033ebfbc9408a03a609c8da7
      GIT binary patch
      literal 6818
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.class b/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9990a3177c092618d014727780d996960200ea55
      GIT binary patch
      literal 1553
      zcwVKF$xjqP6vn?|7GP)@1X)B>6jT_{!4(xG;4tbWok1NOms`_Qk;bN*^x}5$X#7V!
      zd2k~nn&{EQKf$XS6OBt;uIhU=lYvB{iFDFk^<Gu|zVE%Rmp`981F#okwWtvon=`H&
      z=`gVDwCOr#=y}o!(za_}@zWDCe&88qa3++YEa|Ruxp2cVXFb=kZc48=@0MgOq5@5d
      zVH?in^wi9pGy{S9%tStu)%EP8fXE4~%eamo7*0?$>`+F?fDnimawqc>dgK>9d}Jy=
      znVZf{<vH<_mrqTcWx%+;Hj^U+&tAyr=L)%ERv>ZBu!2Hh1feewUGU^p8XS3@Y{!FH
      zPZ}kGW_`J)X_X^Lf;XL~!_pI|8#Qgqv4SyyNMC=E5E+t6K%i5@CbSc5RIS%jYO{uQ
      zXyn;e4M{W#Bz4P?`EY(ldeg>?Em_hv4ZCP~7RQxjo#hv14NsPo$|WZ3(9p_+XfSJ0
      z0S#0@Nt)94U2=82uYc{$N@TB_av`wjm(^lGV9RnZ@}X^?b}ffmP~F6)c57IV#spI6
      zq#wSJK!hjf`u=R=TJ7~0S#Q6F7Hps<%u`OFZ55$hdFQZ(Cd8?zf*X3KJYjKLd;YGp
      zhhYL*&T*udu?^ps)QM4nBmZrltg?L!ktM$V33MQaI7PJ-)u4{z`V}#+H>`*?is=f`
      zyn`<gjpJOG8rN6i=E_K&0Y9xOjuX2L?L_LJXqZ_1B%eZDT*Agj=n{{x<$)6Erf;LN
      zcbg2{q4_OrQ!5~`?dYjM4pT<(-qd6CK1A1D#G>~i_o|GzT79L?YUQ2SsmwHC7y4*d
      zKh2}Gl2W_^Wmuzyc!T=D3p6}MirnpaK5)MZZKeajYwFq?>eO4R`kfMJD<7>0#ORx*
      zmqj;KtKLr|XJV-(3@z81P)FYr_`?dXu?mU-dn<s8w3GXiWI$?g5xuE_MeJKfmEC=$
      z?<aEinE+oDvb%h&icG4%Bh>5w<!Y47!Bu6t7IA1*nXmNyMl#<C@Z+B{d`-B&hZW@r
      Oj)E)ahK%4CI(`FAQ$-N~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.class b/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0bad6f58f3393f654e062577ffce1598a4976fc6
      GIT binary patch
      literal 14442
      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
      J<MCmr{{tJ@YaRdq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.class b/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d9ff37cd9843549f1065833a2daa51466aabdfa
      GIT binary patch
      literal 6683
      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
      PU3?GF*=jK7z7OL+#IzY(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.class b/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..caf62dd3855c3164acd2cba5b5c79585f3d5f2d1
      GIT binary patch
      literal 1529
      zcwVJcTTc^F5dIFm0LwzTD54;sqC!zCqJn}%QmQs-idwAV+je^*i|a1gi?<)-6Avm9
      z6N&mJhD75fUVe=_bJ`RVF(!JF?m07O=KH>xGwH^U7q0+}V5%N<0%sSEyGAMuEIVbo
      zjv0EMbb^%anz#Mbbjc4q!wjy3GL+@Q1IJwOT*rDSy@9-2mi34Vw5ojDaBih$ON-JB
      z1RB%R`E(|i%ghLftUz<xb^O3^f}&xEGD74+AYRB`%unYcKWTBwY<?y?mz~YC;|E_~
      zn!d^alevEvI6=Uf8|mD&LbjL@(C!&lPza15^aY|zp1ez&Bkz;sc(C9}qb$&#+pK3!
      z`3OYgpzD+@J%NTv)3zKdm=cH#4iyO^O;j2L_UP!wE&`iW_l@M*tD_k$eCpGYK#M>k
      zXE`z--YH3M&M4WEDP7aBi-u>hU3E5Ceqq7zWLdG?WQ2n{b}~XVSg@#oCMuvTP3ikC
      zshS!b`oBhLnfs<(3M_i6dJGHnZuTJ`+V*AFa;W@T5DPl0qYW(@lGsBJy`&++hbx1>
      zxA1?Y4HcPdR7VGPQ1N%jC(yYKNwyL>rlS>cDyZOwo+&R_+|Ir~vm9d}0X^$D(o5Th
      z?@Q{yq`;|v5=|0WHja}N9(4^}h#^i^Jy~^VAiHsk&G$`PY@KWx89I0Iz|el4>rs1K
      z)o!ou)DiI7sq8pmcVZVIb&)kjSiBNz5cAKmdj&mW1-(xcNk4sCSe{sfCTyCj685PZ
      z5ZQhlsDg}>M{sQN83vxB=MiGj<;ZdkgJna!RJnR35{HzSRvgA4MGet8N;gS`S0E2_
      zbP(Q=-0(V@){rE1$6gOVu7S2w0>m4{#5x+qTeOJ{MbKGEtrEoOo1!0+cGs#NrJX&o
      z<Z~R~tX1Pw@s9ql-fz(wt3olrNEKk7BKg@843Ipsih<<tDo$)dRn&bTsE?%X6SeNM
      zg6yxP)gTk<b%Z*dBwwAPIkhcK&nixDOY?<jz7owhqWS(;8Xgnw@3=xagR`n~ZpZ}A
      Gq3ajWv^k*w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer.class b/libjava/classpath/lib/java/util/concurrent/locks/AbstractQueuedSynchronizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f350fdaa9b5a896aa509917a9f344fcbe873a631
      GIT binary patch
      literal 14257
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/Condition.class b/libjava/classpath/lib/java/util/concurrent/locks/Condition.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94057fe7727738ba35fd2adbb4af19de6ad52a2f
      GIT binary patch
      literal 422
      zcwTK#Jx{|h5PdF5OaqicJF~!$EJVyqh!2Sf!2o4ob6u-)F?N+W1^yZXKY$;FxCB~I
      zga^O7cki9<?&I_A9l#NW936&(nOKOd^4et5Sy>f@vOY6TK9<?3vlH#Lvm60Kzfl@t
      zr`gSTrle;G#k0_aYe{;~5TCzDHLvw0N0(vm*KldQDvE0E)np}N7&i8i)yt|Ln^)@7
      z(AUDck|9X)G-udP@~eL*z0*&MI{4%CVd)%M(l88?KaMluRU?T?J+*?$-S6PUP#oX7
      zs*vhJ8^zFDt$kSgBL-R!_2YDf5E12^vVd@%n3$OQJ{#C<RYGjFm>#xUO#jEdQzLP^
      I^mj1$0zTPc9{>OV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/Lock.class b/libjava/classpath/lib/java/util/concurrent/locks/Lock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52097e97ecf24cd1259d74bb704385e9f62eaaec
      GIT binary patch
      literal 387
      zcwTK#yG{c!5S$Ii9eDr&dMIcv4Hk7uL?qBj6g&#Li(?@NV<X1~@@o`)03U@|=irb~
      zT<mIhXGY`s{CfWYaEgNh9m3JPeyK$a+6d{ajNU67gmLn5Au6r~GQw~LGPQjWSJSzY
      zfsiE#VWS+~5%$t>VT1BMJ_kKDOG5AbO)4IoT@>gM4*xV-q?)xLLJ|D3`W3w=9G92X
      zT5~u0N!?l<#tD^2+c+6m^?K&)OgCy}Ia<$dzSbhg?DX12FV#dFMd&6ACyAL8*b36i
      oIfG5)NLduz30u6)xOaKe$6$5oWBcD_=ZCY4A#XV+t{v=u0|7i=N&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/LockSupport.class b/libjava/classpath/lib/java/util/concurrent/locks/LockSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86b2ae0e38d55349aa7301f9ef0e62fa7bbf5c5c
      GIT binary patch
      literal 2227
      zcwU87ZBrX%6g>|Kgd|IWl#-Sf=nK*fNMqGnH56^3sA&Whi1tN0OY%Si+g)a}(T@5v
      z{HE5AezomPWOPPneCas;7T^AWj^}x@2^)yxm)-1r?mg$+bMJ0`{pXwS0G!9WF?0z`
      zZdvbJ*_vOmvnAIl)jUr+e%5wN+tqA=*Ol7Nj_dg`L<I(Pu5CG++2!>uS@H#XYEISK
      zkOG5+YR$>styD|dH66+^wqtqQR}_}?mNz!4k_93!&^ueQD^A6q6Ns3ZqCj-sEz1P@
      z&>zDgf&P6^1_m%F5Z{#kT0nQ$%p4$$gK-1h=!xM-o7&Yop0vunNDCxGni4pM<1vho
      zaW8k?wyISFCooC~GA_uHZF#c1Sdn&FV8$%$<*xW%#o5edLLpCX*mNeV({rk)aRVoD
      zif*{tGkwr><AnL2rJ20y=Zt|EdSiH^P2*M1bE$p;XAPLha1677pGU)hY}@_7TDN5`
      zQ;cDn?t~!jmE?|JaUB8|Dvn&L-CdX7s>&8faq^a3w7iOX4uW0sp1_ep2MD$q!FeSm
      z!CCruDpi3%$Nw%C*CatJf{6&6-PZu;mJ3B1d&hp1vlk6Kj~BQYJ2k(#kfwPsJKqU_
      ztLUpv53q45EpM~^D5%o=t`>+!bkNyQb=kliUSg`RqjaQ0MW~M<EE;$PuL|@9F0BTI
      zLuTe6NrGFEH}EVjD6)cqdAu&rZQjVMo?`1wBjbv7$#Pr{W4MzkD!tojB<SQdhr{CA
      zStbqNPmVmX8Jf≀ZQeDphYAcn8<H@~m%!i>_@EUG5ujOG_uOqo&rFSaEA!NiOQ@
      zfzaxlQ#Ck6KO+2~bzwxk`usJbUK!q#yvCvYO7dxoS%UY8T^Ns$dWckNC^cNi(K^N+
      z;q;g2yY?+6u1|f9$?qR9vj@ZcJWLVyNsXzHZ}VCvrsM~y%+n2=!A;EY#9+k;PtGB$
      zwU{m5Ebof9o5)W+(1!}JM+a}UikX0?@eJ<?HQS(gfzd9NLAg^8aeBIr=k_oX`fQt-
      zw#FH5<l;r-0R3wgmxvTs3mG8JF-Nf(Q;(5QsCB%&hj>U^`5~hCh}j>9)ET&<QRCdV
      zg#ha&^Auxx7gr0@Q@ePLfRT6|*QNy@_F#wE2Jk7<KO?~B7{q<Xz6gm<V~JA1jKf;K
      z61|K!0wS03DDR`=@lWpK80nT~nsno&n`x(O4C@D8f22o0p&vh!;4#1Hzi7&ny35gk
      zQvG_9tHMn~N|Q%O{#J`z2IT25ZL|Yzqs!lz{5t{uV3&U~_E(59-J(omMN>BWRg|k(
      z3n(uzu1rq`W3Qw571}rF@6c?L!Nk>Unrk<sH8a*6$-cD_Bj^>!HAt5(UB-=|^l~uP
      z{xRjY(hwPI1JGL{a_AAW{JXvsQqr%Tg!ZoqcQJrdN}^*Ol)OhJw?iOt?F|pOU@G(0
      EzZ9>(djJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReadWriteLock.class b/libjava/classpath/lib/java/util/concurrent/locks/ReadWriteLock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e216ab413c9767f8beebd413723e857959e180d5
      GIT binary patch
      literal 211
      zcwRg8Z`VEs1_nb0E_MbcMh1<n#Ii*F(vr*^{p9?-<kF&|)Vvb?oc!eMV*Q}h#FX%&
      z%#u_eAeWtig^@u3tU4z#FJ0e1DJwO(gpq-x2&f9AfRRC2L(>P3aUez3j0~LRFe4cm
      zxPtRbi;`2_GILTH8H7;m(*v2r#>l|Pz{~&wOhD^d8Q2&=&R_@8Kp75@I0GjDHM%%#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$FairSync.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$FairSync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..981d4c0593afac52e966eed22960f9ef9ad9356d
      GIT binary patch
      literal 1304
      zcwUWDOHUL*5dNB-eXtG>aS>!iP(YUzSYCnxuHy1=6f|*>L{1K~9T;6^v}Xq4r)WHT
      zk&B5zqfsv&)RRvVpYfL%tA_y;J#gvjuCA}Xud1ux{Ce^nKo_(qN*KDX>5F>CbIoGL
      zur0$Af?IB;XdBm^%q32Hp<C_*9h=8=Q{<N|BMOC~eaA2fVW@PtF!kaz7mjILm$eZF
      zc8;MeXIqX-q0@TN<KeZL`?<u!X9<SLkZGB2mLZgCon}ySc7ewcLb-}Kb}>{;m=?d_
      zEzEK;rOy^QLlv<Rflf4Z4xEZRZ#oP;6FZi>QRN_k<$W9s)hhO)h9RmOH$79xyeUn}
      zio0TY_)p(V97)tiv7ajTDT}%_mzkOuTra3NfCef#U|)AKBvP#t+d~H>>p>NV(8Lg%
      z<8I#7UG6tSlUFS&4&w+3GMzC~I4(&{{hLIpVQ5v6#!>2zVK3a!1s}Ew`OSpkl%}nR
      zwX5hrhM~sc?&y+H^c-`MU%X{ee*>ZarI?o3E*0Ifw3@m9W25M$7uy1l3So;F`WTXv
      z`jWZeEi}qjHyXBQxs80u;Jm;KarEH0eC`w5xbv<st+{}EP{ojZo0zj%R4jNVdU&Q$
      zlY)lJ5&5S83Zdx?TYSkS8_(OGF!-4157b|S(IKG>s%BAHxuWhk+=*hGA+^)dB4HcD
      zg-%i)qF=~RhcF^!qjV}k%=glSlSidphAbl+PCr7~13#pK)`;(XiAq}4^#JTf71>Jc
      z*#!4ew7iR?l~p9R&~dWBE5f|~BSR#}kU%Z=1sUFvoG{t*k5M<7UPWWJ{tlAqwpBFW
      zMt?e#Tt(_OI;5jbS!tt)&U<L6PhRa)s+GGady1YbRmUEo|3$i*Gz=&!p_NS;11P8U
      zEfk_D#e0<D1FG?ne#s{^VGS+#jCOpX(fW#he8VulV;n!A;ioUVcU@W_TkcLGOTrb3
      kI)&53Qi?N#%2E;CsG)t9?n;pJ6^vliZ-wmd7|x>hH{0qk00000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$NonfairSync.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$NonfairSync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de58e12e64be7c00b57c4fb8e4e2f906ade8cbfd
      GIT binary patch
      literal 960
      zcwUWC+fEZf82+ZGtz|2v7HGk<DBD$7K;wlN6H+x<(?DWtFSr}FqpU8ox(Af_0=|Mz
      z;EgfyrYMPe?~C{r#(%aOt#H$uIsEe-{_oHH{C)Htz$$KP$S~Y`&iA<$N3Lf%zI5Us
      z5Hhkn-+2*Qj|H6rE~7SG7dCzQl)FLaKsp+73`=7(6@{S^iooSwPXwXs%P01I2KI=d
      z-121@5wyp>SmedKwO^gLKPDIocU|d5_ZYH9v&WEY`F&AB7N>QTK<|@nSBlMeZ$|`O
      zzT*joD!GvXCmXt_#ay)Oh77mcW4AjJbe;GLQUb%Yjv367i{tOT<bl|b{f>w_5s%0v
      zZ`gKoyMzYjHOx`i#LeUKnbqA51n=uOi*uAVH69ijYDTkt9J;RDF6g+3OANE2h#tIg
      zyf}3C#nx*{VN>d~agy2WDee^=3%JUlapzU+25Ja~t!7w?f`g6G+O~o>b(mOWn3BWb
      z-4ReRm7obSn*=(395~{kn~eLvu`R1+7<5}wk1dafp$IjsG8p3yo?&8S^jM+Rvh-6K
      z=8#8$c8zWs6q71_0jlV9vS??t=gmWuKPQk$S_?_>6DqXoLja~wrM-ePf5}@UrrsK6
      zHa9@+J<8@6)CV~K0Y#H4m;VV?k)w5hQ#d4nuc+f_M7)uT*KiGssrVgYW>hQY`~b$s
      hW37El*fT>!%2ucAxIyn3EG775%BRw*j4N0}{SQ;%+<5>1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$Sync.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock$Sync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e2e8a063bd65950a7362749856f4dd1978bb2ee7
      GIT binary patch
      literal 2389
      zcwVhkO>-1g6g_XILx;{JB!Pf91cCxi2EvGZN+1|R0)q*WBt#Rx=yX3qL#G@10}=}r
      zEnT^ABa2YFu}ZM4EOZknsgji&f0X5UJxwPhNQq@l)x6j5-Fxo2_uO~?{Oh;h0qld+
      zkrU{;Y+g4japbra%lE7}2&5NPT;IA9Rz@WEf$2qq{M<1*=UF;5frHO*>75GcVMXU+
      z8B1HaTnc>8`B(-5&7lk&(;b&V==k3G>PZ1{Mxe3J_ri!##!WYtbq}`w@a@khCvOU@
      zIp%my)FY5Db&d;YeZDOX<k3`sfd+wfgN`T9#xqkg7&E6_DbPxy3}7-0ztcl4y5xic
      zmBHuAw409VPN2o}y^E$3j0JPO*0tCP6lST~IcZ=MHtTqSnI+J!=}lM0E(OxG3wRMl
      zrj|yj9SUqHbq=mH?KU9LUcgpt6R4k-(P(5wGD*6suC^EO5?*F*mOpdV3}mlok7h=7
      zrD{S%U}pil@QT2uP)7Z;mK%r8bvb;)V{OvlZKc(*JI9r8X8~nJchmIKeRb?%wU?ax
      zgTN2!u~(otWX?J>@l1y*RfpxrUeqCHEh%kj8`zCkl~nsy#2$?T$D2-L?=Rp04l?sF
      zOG*`&de@t^YEwH=70}aKDwS8|K@*GB@Z@a7)rf+*5$Q@ZWRJ6db}iXgT~|(<?ht!2
      z@`EHGGnQ8)cBFyhXky%;=E}I*#Xypfm}D0?;c4mGS$W*KL?Yf4Jb8mHY&!}=p!!(j
      z=Y1eMGLYe^%hHOvb(|LH|6i~SoWdEU#ajYLOaF~ucOnW~B<T$1&FyL5wfmInO3L8^
      z`oKqB?}X|ZN%owf)TvPr*qR1*{7UVp>RpW~I&EeWa3hl<)Nx*5{bTd$aCW2P9f6J|
      zLHk@Y4A1(}09n|}q@2KeI;hU(e+*f``)Z1`*z%$oyV1xprh?iRpFx&XNBuak<bacm
      zohQb}UggK~R6Uj{p(mLR+p_d;2M`-i6<+ILQS+SDg43i9Yq;wC%AuY@Ld`&)6u7H!
      z6<q7e_tE%kVzQ3^Ym&oBH1oeuGe8Sk0S#DBXYghN+ES1|7^;qI-vewMDlcM7Px~FL
      zFXxMk=$Oae@}5QP&=&UargRtE+KU$sX>HnfXncs>6RlnMQF&Bu(-!fXwvb=QC>%l~
      z{~boWjJ3GJFBcmzgCab%;~I7%;OGgNL4?;4;{>jw7qbcF12sA|%E|5!4wI}#t0T0|
      z5%DO0he^E5QQXa)#)OV#Dcz<Gb48a*r)VE%W{UogXn2U@6ZdiAQNCx(9T-|qSunfu
      z7SeBDBEO3PfSWA(CnWJHHsdoAzlCl19NX~)@4w`T`zj$@t_8}-cHxbLtWGOMF-Ol<
      zruHVuZcxu8rFeulN|`1_jQsAR?ui1{H2iv*hD~XVX7pnqMcGeOb+`5*PED{0s=urN
      z_+}Zv+6-Wjq-p?1(++A@mAV66+=H$dt;D-vB68DdFR<D8v`q2TU8Tb0oKQ*qwT
      z%5pHpX;1+3Pp!%K%ODz3h#bygg#V+7RSshqPv8c)&v7+&FXG*Do-!}JlBVQ|-KBo_
      iSel;_)QvUkOicqH;6p~r;iJUw0?g!8k(`39)&C971r`Ya
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantLock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99eb8178bab26ce1d96e04df8f02cceac3e66ed6
      GIT binary patch
      literal 4600
      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
      UI(;LakYBquQA2<G8Qwz8-wS>)J^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$FairSync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42bf02b2477daa036453b7643ce343cad9b999cb
      GIT binary patch
      literal 837
      zcwUuK%TC)s6g}5*FbW0&B|J(WAay~gsGAK7Ku9Gh5>?a%p{c}f;*6SU%~+bTTlEY2
      z4Tuk5(@i&2>Vgko!8i0vs@`$JhE|ob@ws#6o^$UR`R4b}YXA+b2k;0xAH*jS<(W#N
      zIMs1(jMQ0_r13`^9ZRl_(AlvR{dY!Xvd#RnmQbeiMaKbr!uI%jrzKRaG)g30X{<{1
      z+oMAQy(UaIQ*ATWbVZWO@~^Xt+gDp(YlMkCrB$|1C~efc1izW~Wd$Y7gs5POFxysI
      zzRAye(wvB1A_?<6jRy!G!{-s{X9Hykd+qV}zRSH!nEUKl(;1|B(m!x2LTzK{nF#$p
      zIvE(&?$%E$AS{Mh!U7>swxx{CxEc*~Oa3Kddx!VzE1fhqv1}=qV)frEzHnZI@JMTE
      znu)Mh+5k@pjj_`bChzj%C1)t{KSOwkGA0-UK6#idSblwGLari4Vk~d|!1VW`WtP8A
      z0I!ZJ*Ws`MbC_qW;sF*$;sfsX7-u%0U!iu6pmYh}|8~!1t8iHyc8*+JwTu<MukwQ9
      X`8EFQ=V7(ze}u<HP#5nB*0B5s&G5q)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ade70dcdd3af3c049bc8c9f027d1f4d26dd2b91
      GIT binary patch
      literal 856
      zcwUuKO>fgc5PcKJHA-EY76O4%C>4jc2TU)OQ2CGuR0@hJ(Uer;wsjV=u&k?HyU;%Y
      ze}oGckT`JR#(|%Nn02fw6fU{=&CbqyZ)Utde}DT9U=ynmYJ~f*#j!|=T<IjuOj=kg
      zO`hm1edCfn$*~nC-;-i^U{x-AoWHf3nU_M@{)tH=)CpVDOL#7!>7-Rc52SS}Gtaw^
      z3G|dO*U5~_nKKZ&kl}|P$*+&g0oTvmQ%2<v2*KL=fKcybL)k!p^D!EjCCvAfk-Np)
      zLuvQLp_YV2c4Gs<Hhiv<^?alp;bCw3z9&ZCCM>-37q&mj3O#(}iG<eLSXK-3D%l@d
      zrf;vmAVihE@9Cccmh$+QR0D)7F|J~Xup*9*glFrM9c5kqtdNBqcHNWrsV<y4mgP#=
      zrP0p{o5~&K=Un>#5VyTOA?_L@ZAS~|q>HdZ*qnMFgxQIW;10JO@Y^EpI>ZcP#HSk0
      zm0A8poQXL~7>P05_=>sDWyw5$Jpr{AnjFXD0xV#Wv55<~Sdq6FYn~H)I>T(2%uD0j
      vis_>k=lHSV@~Ot%N+aC(g7#UN)d`vKR3@xsYPeR`FXMVSlb_@UZle7M)sM|M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..902ae0f419da5af05faa9041b638812104895078
      GIT binary patch
      literal 2473
      zcwU`VT~`}b6y0|SOh~7+jeOXG1ueD{DveNWv7yxxT1^_k5(q-AI!vx)aF|K&%vA9~
      ze}I3${)ay3T5afR*V1=?fR8@wtM69NoqP~N#Fak4+>f*OIcJ}9Pkw#=^k)E5@Kh)a
      zSGJ7%Ml$d%J88O(83@50KWV$>mtJy-(^?pgzr>B=s<3>Xqw{gOlM59QhT|dLHk{4m
      z;>H#?eHA?nqld6op;3nZ(8zL=c`hu&w!SeoY)*_`xGiwuS+28^nP*^GhNEfM@q7xV
      zVAuige)!w>kA65=$}vQ|9miyt$#tGdo{%Yqo>|MW{A&!C^v+3Ai2}utc8ffQF7#_S
      zjsb=)JyD2Z2q#s%%rMn4tA<k;W{4W5$vtm;nqm8eV(T1J6{QypuW0DQF@|F~%i#;b
      z_68Tr)e^<YkSb(QooHV>jQAzXW0-vbm-UXKT12EF!^O^7QZc-ab1KeK9XkexS!>Xd
      zpiVQ)dx0f*zGMhqq>%KCtnmqn&p198A}IUThP}fOyYaQjX+y24Vv^zX-fL)B@?yhC
      zMwry_ru1@ZpO+S1)fYRtPzY+IbqRY*!`q-XI6^mdxfssq+4e#$TibkvnmQ%XGq|GS
      z9V+OdrW#V1m9E_d!*M;CcQ%ogzOQL`7w<6)kniiwQP&K+^-MOgE}=x_20lRpBBU|!
      zKf%${3mhq{^m0?f`}lz57u@ECw@-c|*Bt&8jew#hg=En6LwmbnnNmSB;@n<cRva%V
      zmt8@1SuAs5NTa3#-9kS-JKxRw!g4lgNY(v>;Oc4EX}2{jAy4CKll%38q}{;r!<uDO
      ztS}6<BIg3jE^;9!#j1t{EXJ^gJ1W-q4brNuhEH&pM7=NP-QpJvXZ5B?s>3$bHn?Sc
      zCdbg{R5AVFeWDP>21DN+8TD8w*VxrDi7IN~AV)n$xy&7sezG0>z)>x!&~ZspSPUan
      zwEr}Wf?Ai|mG-N&5cHR!x0H7SVe*@n945o<pXmijNxhJ994^wf;dz|;FIv|huhQ7+
      zf`V?)j~k89Uc~6+2>sqE&=8mNjMh;^NS+gP6Q^B<?iBhSo!G@o6X%~`@G(Yy3L&TI
      ze;*M-nL|WLLsRB4N@s&r0LI86!qsayLv)P312x*qWW(s&JMjo3kqXB5C}R??+(uMc
      z3hA_}VU3Pqf=Cpcr*(vOZ?vVm&`S3$(S6sJZVJ=2n5M%RNdQSw!NrFSjvjfgJZQp4
      zoA8$ogp(tQBT}6(oXOD&E?021mGAeEZ%iskI@Z<d!}YK%ay5rE-7?HKbepLq8mlFG
      zW3@HYKhUfE*%WE45ore5My6Gk=ri0}+r@{!v_$q-+f3;}*6^jUjR3u>)JL<=u)IbM
      zQh0)ockyZ5sK6YqU^Bi&iwf)?8~kypi}E*B<2eSEe=ttpy`Ir)zNF7>IOI)%8)D12
      N7v>@>Gz5X(e*rHPUBmzY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11ae1ecd371757f8b1e15a0c6f0502db1499ee6e
      GIT binary patch
      literal 846
      zcwVJa+iuf95IvJPb?Z7!8cHdIOQE4824VWbODiNug-8`qDXq%0W3O5lcP*{gNc|bU
      zfEOeRhzCA^pOMMBIv76QZzu+pw)&&-@TGwToE-n|E~hFdl&ga?Pgv%t@FocLiX
      z!(1sLwV$Nn)65?UwpAeYNCeRn6>BkMyt8vG!_K2LiTY_SwNN%JLbKpW0=e&Rj}Jwt
      z3ANDp2{a&7bsVv^MVQ)%WvuTp)a~sNtbQ5^2UXNv%)oKbz`Tv-FNC`XiUqi6;S8Z(
      zYMg+Cg>G;7d+55MIqPB(=UB$R(1WO`w>1O8c^5XO35{Va#pC>FEYxl=P6VOF?FGqR
      zpki|`K}#RR8DVqy|ASg5xLO@=icpCoVMfE621e6W7d1@rfI@<^ljbTE4`Wlk{b%ai
      zMhvqJq!g;31X(6B8#f4d|4pTh9%1dTb9p)@n=t!Rm$<_XRrwdI@aC@gY?_Ie2tP9W
      zXW6>XQN-Vd_Xe)_7IUw$aDt_mMc@TK=L(urSop~HDcXE<Cn>myOEBv)u9S2mjy45a
      z-YYC`w4cNA+E#Re<@Spoj4kE@KC!INEaVFd`&zIrPBKf@8tS;l!imw9BDaI<g};JT
      Obm3Xk>|4c6EPV$(ddK$w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..992969a47875f2f65e5d8db7cff61567d7b95f91
      GIT binary patch
      literal 1021
      zcwVhi-%A@o5dJ1fbIB#GG4)rPwzgnF`_NM#e2EA)5L!qp7)kNLhs|ZtwdWq}?G^m5
      z+82cu`Umun5@#=|gpik74{m4XoB3vDXZFv{&))#H@Y+L;@abH96G3WK6oj!3Q)8sI
      zK@^8yli*OYZiKdnQVhQsWo4J~wce!;*N)B%gKUfFLmUm;ajLB}9twoTEM+A0X)qB*
      zDDEn)>>eS%zR@QX+VN2O$fI1vBNPd9U8Uvc^kN{*kr+ghP|uisVU)ASV8NcLgmBP(
      z(9T<gs%uZVdQr-CI_n$vEiswb!#v^r|0nWMLz%Gfx2tTv2ZM7N+LjNVdKFJFNAP=b
      zYC_pjZdT3N$=|sQeBqB;OVf@-lE}ovGs4dO`t<Oeu=USe-lby`mS*pSQ0}QyEo^G|
      zE+^fY?`roUmbBNxCeJVr_qmfFB-<Wq0ZVeo+iR45u#$t%r*nhysIXog1+aX~lH4A~
      z<ZX_2zS1w$j;~SwKE*Fi@Jl0pZJ+s1$NV>U#jmh1MdrVfA+F=4Ok2hZ%Q|ZfH1VQP
      O;+O_rGP;`iU)=)8v=h_-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$Sync.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfec8fcec0a0d6c9b4140ebbaef9261b7e337ebc
      GIT binary patch
      literal 5082
      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
      AGynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09b514b71aa9e3694d809119f45113f61698ab3e
      GIT binary patch
      literal 2795
      zcwU`VZBrXn6n<{9uu0rfh`cD!f);54(g@WSo0bY`D~S;-FTsLTH_0t5F1vJJfS|38
      zf5tC<&>0P#I^$Po{Nhj0U*dS~?lwS(IO&(oeL2r_o^#GUCx86&{5JsO_*O=UA-$#U
      zswvme^i;_-O0H#b!%698=}SAcz-eu%hO@xc@`|N7JWuCCwUrEsq1_|URbwMHU)<s)
      zM@B2dz!|hYG{Vs78EIx}kz1OoYX@pk=fr4x+XA<2%`}#?cNkcX;atWvY=_hoRNdt*
      z&ktudZ$H`0Ge~yDC^1atn-67?kZFe2o0_3HQw-M<&6A{)1=5f)%RGiKIu*2|iy@py
      z7GmhZ>oQ(r7;l<YK`;6kB5J9`ZF^{fVf&@DHIMO=5(UEr1#LLba6YdYe9ql2a%;&i
      zQJf5^LMqjX_Q9d#Y-%>ct(S0lB$#M~CBxO`Y0@#gh08LAsgO;By|5J|kYte6(qmV%
      zL`;dSC~t>AW(|j1mb>F<MZLlhySrcFw4qliV~pYAQ6tnWdAVjJw51fhBltT5{yIk4
      zu_}2lczQjn0`RVa_dvB*=%%KW;Zh>kI6F()HeaTvoEGp&+>r4;mGMkd1!>$AzRfw+
      zFl`ZXE}0X~rxe`A2ULD?KJ5z*Oj;7zTyj-_h{SXq0=Yy*ZT~;AsMTCU<Wlh8Q}7{X
      ziN)eNSM4C%M5`ElkD9%#iM%l+5@){Rnx$9%yn-w~X2_lmnl9S(1WL|*m%F?yO228D
      zhIYWMp&Fk*&Pa2_F&7<6Gd8GlFKE3w`=_4Y`wAAYNVXf?ncp+GRd2hrY0+~_%UEXU
      zsi&B6HNDI&F+f%n%wax;2UwG_dSbr%whBJOI%REFjKTRw48w_IZUWH_RW9LkF`d3(
      z=t`WvPZlC5(z9M$_A127>k*Wx)z|XgZm?Jxbi5b_V|av385<|W`SB^xFi+wr3v=o=
      z7d~l}>DZ>qt2;Z~AjYvq&QBc$DM?3Q()?c+Oe?f7#qc?mRf<TnXSrUUsbu^*`xl}z
      zu7X|BLmj>aHKgv^+AbFzr;yHBQ!i&s*KoYH%L>SWg0HYo5W4o-?wCz%(R8g6zo&_j
      z*VlNKToD3^J!{ZI$mptVbLyIC?H+H?bPXef7SNwCP5LNebn*)QFNdHYF2*jcW00s^
      z9dr|?U6$@b^m}gP5U-AmK125}=>N%sT%>Os5hC0UDck`i9LE5ib^8Del0$f_H*tyR
      z82xqywAaao(QkC*XY@-|3>{I%1Ux*9Ncgfxr}%~e9m5EbgfL2LiFR){q`Oj2w@!2q
      z8`6zqBG5G9X#^sIq>8IQ)HqtjdHCrueB>DZ+9^4CO0gue<H;EtsN#ARx9a)+^!Nrv
      z1}Tp(vekxZuPkCUgACm=+^OYlG6*yl1bTO+KGMGs4gY;iX{@F+i(KPKKl<^cGO4X$
      zq%<G`{C5<csPUAK|0Mq_mLAXpDLlichj=*pJ0fxQd-RFpcuAa8!K>Jc8}zAS$NwIA
      z?WTM|>P1BAL$B120qFv6(E8{#O$90<l<mi`JpJ~6RnDo)v^3H%o;~b0##id`lMV18
      SeC>Uo;Hj5o!O(+m5d9ZbQJf?I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock.class b/libjava/classpath/lib/java/util/concurrent/locks/ReentrantReadWriteLock.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..221e7097e2b93737b6b9e2ae589d8b86897eb319
      GIT binary patch
      literal 5343
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/Attributes$Name.class b/libjava/classpath/lib/java/util/jar/Attributes$Name.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c91f94f3f5400b83e64b5a5d33071bc421e4e808
      GIT binary patch
      literal 2920
      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
      ZW>i%ZIIN;E<<FP!GRcTsehjam{vWH)h^_zt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/Attributes.class b/libjava/classpath/lib/java/util/jar/Attributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7e7569f52ff6b1dfdfcb089526366dad81d1080
      GIT binary patch
      literal 3812
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/JarEntry.class b/libjava/classpath/lib/java/util/jar/JarEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ae4b9728b7152e071d01a46ac174c3ee9b1a89f
      GIT binary patch
      literal 1895
      zcwU87TW=dh6#gc5vyHonb8m1j&=ykPT2t=eQgDMqQ=CiVG^I&J*f<+^qs?wuuPfSD
      z!~;J9RS0M$o&pL%MFJus<$))D5#pQi#<8(29D8PG&N<(AzH??afBp08?*Ojgo`x=g
      z(GBB)k*WHYo!KzF%uU0~JHGc&L%7NI$lA&*SzF2`5H@_@6NnX>gLB-qR;#{Q$qH!P
      zS+{Ic;AEkNW0D5?bYHa`%fBWt60iB#hEvWIiQ<&AiA8}({_~Q#<y)>((a<Y!_Q-3d
      zYTI+J<@lyochV3QIDh0bW!q-iuybCyx@kIo-H!?;+%+?T5C(PhAkqVYVI9ZNEuThp
      zXgDqqEm)2@Q{7xOy#-@cN*OG;CBt4cJWH;F&9HypstAm=%2ef|&ah)_s^}Jx0;l4I
      z_GM-PWP;Dj1kVT@Gi$XU>*W3)sHPMol)#HRUc$IQZ`t&ZdL?i=p6J|34RL`XWwzYR
      z)NH+o5hRh;kYY-mf^}TNWu{)TU5EOI4|!AtW>+`NlFziGOlQLMd~4k*87iR*@x*e?
      zvtpL2p5;Hxl<1IY@XGe!6}+b5RUV$U$4kfSc!MWMl}!c`cc?+;4Wn{@+Stm<!n~#9
      zZM?%X%S>ietC~{{niauST+{Hbz(5O*j`#4sK!^we<MCFVZKP|s&So4z6-{5N`anls
      zrhfc^=~1n@)`Jf*rQyaQufn+Qy0&RJI&R`4p0I`a+xfb{Mu+SP<S?yc2D5alSdXYK
      z6i*QE*5Q5XSY#Pm)Uklutc~yHJkQ_>jK`PT$ZNBw;f}z$|LvqaAhrHP3r)qKB~o;&
      zUdfzPFOuHF^L$yl;T$^`;;XESKi*u(5AUs733;n&Il)yoXB~a$=kpw&rGI}i^$P})
      z;%5xWVdO`JbCTmA!W?fAW1a{_L@9raJEOHYJcpQK>c=UZCXZw~!?6YZY-jWpqJK(s
      zgXpUr&|gscB>MRPeLX;r)zDMBxIluZ2;WJjb}*uNSWEQM`(nU1$~9nfbh-N(2H=yU
      z+Q1pBbH>OSQ=EKD1horuby2ZTDhn{2+`-TR`sB2W#2%8{V!N)dPj%!A_Tfuv{YvrZ
      zwYY#sAcL0!MSn9&`mYge<N%+@>2BdqIql%e0rJ69au;vzBD;qiztiahq-%zW!0;0$
      zpI|JVeujd;Z<u?A`7Z2XF}1&)+JB1f)czmLF~scdvi86d?x}f&9ayR7KF(SLUo-c|
      r^!$dof6MpRcl=lRJul=FMm=V?erTxOTA=9?|2`&m7j-QuyybrZjvTRj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/JarException.class b/libjava/classpath/lib/java/util/jar/JarException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c42b7b1a160f4df2e6ad9bb88909fda1426375e
      GIT binary patch
      literal 508
      zcwTi-yG{a85IrLcYgUklf=X=c024RH62$^F5s3}Dg|WG;H+adiOZH)mtug+HKVU^-
      z;RpCdR>s+d7$32?^E`9T%zgWKc?GbIs*X8AbtrCx8HLI*hr%~I!auyV<v3KHt3&(I
      zzf)uLLXE%rghC*FB^*oo0q5t(2L$R6a&6BILg9v%a3YzuFP|Rn-yiFQ%&u}(*dnBA
      zb&H_2y(?)Tg~cokED-Wt<;v4&)R+F5=sS{7>UuT{2$tb|R@B046%f|D|L@);lxx$z
      zBiw=63w`AdnsqCdE5~w61brlfKnxO@KTv|v^CI7tM=I7VerMl`(bxbV!e7asgfuej
      zb<XB6&yV7R*k-x1!=Biu8x!Q76G)z|!5-LyhJ6$`%1%KjqLh&GiZg;1BV%l)u{pu=
      ZZ-x_|=_U-7DQd<LM-{9j;;YHb+9xG}Xw3is
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/JarFile$EntryInputStream.class b/libjava/classpath/lib/java/util/jar/JarFile$EntryInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77805bda3563cdb96afee270025569530fd02481
      GIT binary patch
      literal 5747
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/JarFile$JarEnumeration.class b/libjava/classpath/lib/java/util/jar/JarFile$JarEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..871be67106746deb2453e6d1913be2fb25d455b8
      GIT binary patch
      literal 2148
      zcwT)}Yf~F#6n+l5YzZ5Jl!m4kODk<d2n1@q5kx5s6bu0yE<#be2`^!3*x+V^fL3R8
      z#_3<Ee}FH3s7^z@%&4O?e(*;*o_9CU1QI^%zUMvn^PKaZfB*aScL0OX6*LjLH?(an
      zR<iVbY(q0+Q<^!h=S4T438S<rOwG~@h5|RC&DP9oMlLp!*$`PvftPUZrG1qFK@o;!
      z>Y_;KOx9J26PnX{&d{uqDG0afYYq2S@%Qwt*s{KrV9&ep5q6+(%4?i%ZIG%uSjRi8
      z8@e?@7z{T^q=9MA0wLMJ=Crg<apxW@tO_4oXjkFKS%NFvv(OAiQH6ptlIm2^0+kR*
      z>V`;_HZ#JU(=xKe_GBTe<rg$lm-h<OZLRB!@s0XHkF}A}Ahw}3La^4^?$)8hz`9nP
      zE|?;b7n|I|qMhS%3p}`{;tIM5Er!^!Dq_NgaL>uu4iwVphKkp4lhARfRy99y1wEWe
      zeIOO|*2t<o`w&5&M6jQ5G2EyVJqtbz;Ff~HnklV<N5$*7%?0IzHLV%?nkd#S=uj4y
      zao<$&7T)I3W22O|DUO$x=BYPwtU82Y1@RL#96D3+E_f*Y>}J$rn@q`)kEK6+(%12P
      zUh2o2IivSgjN%TDg2sH#|1|9Z+*OglI6sSRVd`tUJPpf|eNV-tWVaR%pJegA&{ida
      zAE-#mS#33$ar9z~(ki85Mp}99Chp8nNaYVz+(()@t0Gg%G4SD&ZI_Li$D#s$5oc|w
      zUWiT3BzCf5OOC0Ek7T^S7FTbjEiL<K&eXC(*4oMA$W11kZ`5^G;HqmCYNnEKX7i}o
      z$F+`H&2IDpH}_n!PJ-NBLRL<8H^G-Kl+3Icx7UzbnXG<k#n(y05aw83D;8yQTWg;q
      zVeBM04fai=YDVJd;$&R>dC-J*xki|7<_+HjAK!VIFzx2gk5=Y6k^tKHe8iNC&p_k_
      zUWxRU(GiK35&V%^E}Z9oyELRUZ~u8T(*jy)5h3PxIcB(ki-1jCvcpR1G6!tJt4ymE
      z&Lv2^NNx}Q%fPqoJK&2vN5?O?O8CJ}OUCp{2|cjmI39eJI3xjgJkUMPz{|WRj)&`n
      zKM_v;hR9Oy3q+@x8$3WPwGZzirTYFsAler_z#9j6r;PWcbZN-_mpq?i>?sBvYT|p`
      zbS$U#ae2t|6Q-ZSAM*T+*^uV|b5iCmV<P1Kdmjq_|A<Of8B5V;j8u@TzRHt5i$yH+
      zIgHP-$2sodv3)xAO);vVhwzhzAPFu$hijzsDCH3*gBQ|g7^Wg-X&cM5gB99ChQ36O
      z9wSd*!(#bY^bNkFZ*7c592_bb`SAtEe!wUNVPXXz+r4n%6MV}5Zmd?Q70%@$G<e!Z
      p<$|vC<$9$rp2z_*&uUx3U&!Xj;aIgPfi=55(r5rVrkv?o{~v)^0+|2+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/JarFile.class b/libjava/classpath/lib/java/util/jar/JarFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ab0c3293be45e40d7cfd58c82ea3ea73e1a3ad3
      GIT binary patch
      literal 14110
      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
      Va5nn7RS@$SPDlUoEyMBn{vX~nE{y;H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/JarInputStream.class b/libjava/classpath/lib/java/util/jar/JarInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5646f3d67ccff93f137514c29f5789ce138b8c59
      GIT binary patch
      literal 2192
      zcwU87QBxaL6#g!RB!n$#LqRCC7DY@pKy0m6O|?RW8b|^aq!QG+2^+dh*wAFtshz&7
      z<M`-<zWCB<AJiG05i(<E9G`H;AEkcxCM+Qf<1oWL_ug~A^PTUUv-$g<-~Rw`2^#@)
      z2#jnQ_l-o&u}X<8qmr06Dk*!X<}5oE)7TEccf{kNwUfwMJ1rgp!EM8~ie}Xj7)&1p
      z%QSD20->T+sXDW^Q~BKM$Drzle*SBgZ8`7IC)#kb%88b6$=E8fW*-#H9mgu$)c{Tj
      z^tq0U?u~%&MtQ>wLEyB8Zk!PqIvz16A;W3QHnX+uyjfW>@+DIsk}emF(yCFh<i2_6
      zbM9JIfeT*#t%w30776qp8!m)S3`s^I$!%D}2+j*=yxYjQLi(bLmH)n3v5FK-<m9ta
      z4KLtDI&Ydz)_icF=DBDr?I}@1&j4N$7&u<+ZiatZLjb`L#t_q>BQ6k-*v2+<J$nFK
      zGVIL+*<1EzGKfjuWM)^UCsWzEL}oghnwwo-naa$Ckiew?UZLLYuQXi7tIWo{S2IeK
      zuRq!XyqMoI3r;eY3*a>m*8@dDxPl=`_zewR@CWghK)1_6hQ6lZZLn=ZRmZ3})!UYH
      zw=GaJgIG?Ww?Mfa^FStniQ^nk5>=LBM#FWyD}{Sc)^e7WjGp8lTb1;0YIq+hfm0NC
      z+F^)%%`qv))c=H*G93CRyBTspLmC-&iNSN$|736a*s7QjZxBxILsx*olgQI+tJyFD
      zJ>-7aq(}R%ZQi@g#*=WfSLa<2?=yG&<wT5<vm6GtVsw2bm5QaL-XCjN11r~=uN667
      z>oYXVMVf+=c9u+zTWGmls}#&ROAcz^(UF{z0WnJWPJa42_{T0%7Tcd|kT;x2?t8fN
      zai^h|)^+-Ka1H2jUmf9J)sqPSht%;BL2jXs)<DAzXVDKRYXHv?M#7%)z~17CB+{eD
      z>loBW>Ns}@-K(xXCBr)m^O=Ib*l>5@dz$dlx`5|ZM*NO=0{uW+5?j#qIxhZ+v0aQm
      zMNIz<<9mokCiXD(9m4uETv?;T>$|wx;wZiL5jk*va}UYy|NZNb=s0r&wi(i9uzL(&
      zMGQ6ex{V~txXE=Mk6QFua1&Tiv{`C7MqDM?M@-Vkbxf)<oq2|_wTU`zWJ%!aKEji7
      zjqhP@7xR<9xGV-J6z~Nr@g>6eiu<qmmHb9U)f;$j)G=hS$Y_2>Us6>F^X3DVzmuoS
      zSZOjzsLBCdGUQ<>zdHO@L2C_%CbW<rW{>)ostYjOQ1Y}~(z;MJ2uhvP@%B6(vvZ#C
      z`BMV_h#~ykQvTs)FpYdaBzyj%@omErSjBA*fy>Q2g8CjlVo}>uskfvObW`D=d61T9
      p`xH`q<a{0LKeZw4x9A;o^$y|_HgW^~4qLfHSq3escV1x>{sZ=_yx{-<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/JarOutputStream.class b/libjava/classpath/lib/java/util/jar/JarOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc5cd4efbe881e96aec86677ddfde70f4728fa50
      GIT binary patch
      literal 1201
      zcwT){TW=CU6#j<WQUp;-vDntOT9pE2#p^>&4H`%=TvSMt`s6}aoCbEuva8j9<x5F4
      z@zDo=l<~~4P%gHcu$-N9zRP?wfBydX1t5=S3Oo!OC)#ICb!^^MPc%z?tyy))?mKqF
      zwsfthz&A7UjrY~}ygxm{5O~fFZXYltQx!SNO?7%=fA^3fR6K3#eVd!cK*18j@_4db
      zpL7^}ugqgT1cq=Jenc4Z7f@DaZC5pef7A!Il!{ikq1T*VOShU@tE)4_DrQ^j9%>dB
      z-|nK%{=^3io0Urw*k|yXj?IwxzmX8USP^Ce!uE|YR*__ge6hH#k6kgWr7kn<?P;|4
      z)r&?HY>@nd%c5ahUxV0Wh*yiv!d|&nQmchpxm0X4bJbD^>(~~?ZZoX7@?Fj7sAQZQ
      z9TFCXcfz=fdz3frsHUIVl620md+4$yVJV~)>@Ij38xA9b0E1s<AVl`U$U&t$(C(T8
      z-IegB#MXnoNk)Es)R@m<yj2<X&TN0i8VNK^$7<^(F3vYTcak{)!#4TxLOedI=-A+a
      z;(i4YqUr_pJ@l`nGi-<}->LNAD!oH;xj>MYh*Fgpjo})uOF{)PEEA2OjV#a}(TWg`
      zrZYptv%e8cXNO3f)5mBSs1x`NmhhI=-btCQ5o{t8b!9|#6KjO_h)cI1*dd%iCVyi6
      zD0XXzt!g@ZhC7+`8Sc|BdoG<IQQ!l?G$L&wjy6#qPst}I@<}`(QOcUSc|0TrCa%ze
      g{DCwE1jK$H&8KLRVt*>dz=S_QtdC`iPbB8)Kgjs_XaE2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/jar/Manifest.class b/libjava/classpath/lib/java/util/jar/Manifest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f95a3a02ce7814e5e6ffc97c4956628ac1bd9a0
      GIT binary patch
      literal 2568
      zcwU`U-%}e^6#i~V2uU|735BM#)mEwviL%!E8%hO)Lgj~*76rAs3EQw3Hkj=C<H;G{
      zeN}nY*UngHY_ZmH>QmLn{y~o4-Q8?9OVUw?VRP@f=YHoq-#PdE_4hBo0XPREj)=g}
      zw)Tmp+LlpOx3#*uq?yJIy<x=>73g=)s+w6*S4!J@nbux`ftGcqS~GR6RMiFgb~MAB
      zvaGtm@M1frv>GMb(i`IfaoyxjZwMR?xGibBJWH$^6;re9I`J;FpH3{cqOKCatc-V$
      zGD)o73Bxq3Nr9gH=$b%urnadk(SwYF6w+}F2;{l}B#}iX0g9s_j=nf@&8!{gd9AT!
      z$*hw&>iQj5kU&zVWSIK0y;IWbS6x}Mi?y;=UDN7@+<V5TwPjF%TquL4_GF*SyJtpC
      zT`+fTiz(~c&bZ7ZIr~{z-?faI*@$DLNlZGf_$Ntn%E-@C3eMsbBl7yDK*TTw20KDC
      ziF`LcqiYiDX$8+<jKCG$TJnnR>LqX@Kia(<QqE_k?B@hdhJytB+%V@AJdYQcC&SD(
      zdnMC`FS|u*|B?iKnIh*yhf=4W9gWFe3}5`ujg%sfV5(#Jg9wjE{tzbdS{xS%)W$=>
      z6sF0N=qytZ(|u}9%%F)cM82NSm$e<IwGQwQh?T3lR+oxjQZS3O41Xz!%UF!#4L;3^
      zX{+sAFKhK{TsIUfVObz8J7sCES$l!0M^r2%d)J<geOfmxQa;vd>lNDy`bdgzDOkl-
      zz9Ppv$YJ__a0msU)HRz>L!BKQ<v7d)j^sNiFB@}1c3XjyMgQ2=s_cZpPF35G+Fw`j
      zF5Z*cUl$Oy_FDPH?AziXk#orzQVa5;uAqdnyhvkmwPx4L`kWzWMyjdCm_)*966)c9
      z3=v-Akm5+s${|GCA+94(_$TD7<M%KvR~&!fcwry?g?q@Z@8igA403st%VW1O{G)U6
      zgaZ}jcaGnAUS7a3%X5+z#f89Qc$~iy{uFPV<~qvV6HcHxS|a>SGSHbq@eZDB;igFf
      zc!%EWB)j2Y4!PbQrd;JQN;HXH@W_{WLwb$)<cV9{huTbl+voQ2VuvKQ_}#_;J|ewp
      zAmE4}a0IV#B?EH4c>z^t55x*TVepm@+3OhXfEF=d3r;P1x#GWi0Ax4}@<m6GaZGp&
      zrac+c1*TTKiwhClM>dS|RUo6ZpHUh!c-;v;>(_tABa@LC-NBsXbQkji;p%+NcKQbW
      z_%=W=;}bmFq2jZ=CkdoTwdm0O84E4gq;vQkp}r5WP5Eq7e!*Ap=Dz~J5(fW);J3Pf
      zU&ERM{x<v0mEyej6cYC!*4a_(VO4((q@M6o=acpTYF=&B;_nc97?qM1??X7szQ2c@
      z6xTIS;}0U(Lo9l;=cXUVZOsQ%`VZvrC)@5pfW7LoSMeb<hdsxF7kq*~l33O)<fdE5
      W8v<Xp@ZB^X2GYp-X;d7qt$zR%J`H&Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/ConsoleHandler.class b/libjava/classpath/lib/java/util/logging/ConsoleHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1016c61ddcb468f0a7d619e9db79ace5bc6562f
      GIT binary patch
      literal 938
      zcwT){U2oGc6g^%)vWBphj%^GWbmOb*q*jQ>AReexffQ|sZhKEtlNmX2<s_5%_*3kG
      zNj&fa_)&=KG?Z5B@PmEt^*QIBYx&pjA3p&+$AN_vhSo>_-0x+nkUgowP{d)cui`{W
      z{>G2Tl4}cPhKE;C!&GxWDnJa?mm(JFD~3{g|CFKJS7Tm74L2;<42_&GeZ%{dq&#xq
      z;3k2&ChmrpUklZHr$wAjmEBd;3wvGDxLY*tF50W%7S=5^8Mdx^^!PcK4sK(E9KAgp
      z95HNr*T7s0TMWBP1{Kjn@`2KkpQc>fC}G<{1$P;Ad*=KoODEZ1>)zbBDUB4m*LGcU
      zF>5ui)0cjdxaMi=o{0Hj7LB+*_D7O4G(8pg^3>PD<VCTZo{5BEZ%Kp27jzjafm8{%
      zLGwG<LzOBYWR{#USd(ldg^612WizPoJr9%~lQZ)$PaQnMWBLs`uQKfXm&9NXRi*<z
      z5XSQQqOq=_VwYT%U{;Bu3aYeQl)cU)pwYR&YIE%Z4c6Se#GP+cTfsfr*K*#FKH)Ly
      zIKh3&oGAx8ct9t8?3vyRI?Y|B^Bt{!A~v1C2xSCw0+pEnjavu|2x+i(=im}g7FDKJ
      aJ`?W?+4-6)ZBEgJl8K(7otxOtd7VFTap5%p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/ErrorManager.class b/libjava/classpath/lib/java/util/logging/ErrorManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a61eb2e4e600411f0d40ad1599246e3544b424da
      GIT binary patch
      literal 1654
      zcwT)}|8Lt=5dXZ!sT0rr=6&h9(Gn=zlC)bGi~&gpYqMkvOPi9U83hUCq>s$QwS(hy
      zgP$gW_7{NAgtSQ@Q85H4Wy{cpwh5&Dz#oOU=d{6HD=a<Vea`pp-F@z!|NiH}BLF9{
      zETfNM;)=eeCt9vyCQQ3tH>`Rh<2bf6uUmSZJ2E7OVb90Z>06<Ch1Xn$q4SxAOfi@K
      zC_9_WFBLNkEXOdAwymbCTW&=+TRcF=fQ*-lxpHR9Q5YE+v-zdc1;4RRY|j@;+dKmd
      zYGE<6;I~migV{oHezxql1{p$pjXO(CzCy{o&(J?(Scdx+Lm(QfFi2^8g)0bPOvQd2
      z2vcT<RqVw+Dkg7Oe4({k<xW|znw&w)+cn*+=#C-qrcrV)8%>5t{{JaUF$B553{%nk
      zf7F#+hg?%WOXgaQH(bNEQn^?qgkT8a5cY&H5W-LhBMM@ek`dq5fNm5O(>Tr`uL+(D
      zA2aNa=3+a~3L}A&GG5*u;j^a8S5>@%SBV?Sly-Nw8g^ol_PMm1>#HdluQ7~18+5K^
      zm@C`~;dO?6Ufq#a!?q%uR3sw`PT@_#aZ;qUGpSfbc+99c18Ppc-e_=(T6TOl*Bz$K
      z(^DeESrxOGqrSU#_ah|~-Gv1O=a7{_GrD(|GF6-xnaT}eGA%)RPQ^R8NV%EZs=JrH
      z3Cby$M?uEIR+Q}>RI!KyG)awaV7>N9+0kn>H1aBMHfb!xOzp^wp^snd(f`a$FoeA^
      z5_3y&Y9!{HRHIU|TTYE<4Kb4={>eKb!r%p(Y;hxGj3J1ALbAAC2oVnZutIo`537U+
      ze0Y%XkPi<N9`RufbK?4VIulol-lK$OJPauD`#2a6+{2-^=kpxB2ffT}NH8gvPccqN
      z?RsMZ&wKxih*tqcVo%5~NVbjmT^zazsU2TVN`H2NJSP3sj!P7slywh29=`+cDRzao
      zH%co(>ol!1w9e7GsJ)n!)-kP33UNexNr(yUh!CUNQ6Yx4V?u<-e@8SaZQ#U1oLbgS
      z-^UwcQU|FH-tHhh^%Nsh9bC8tg*-@0Pd|k`-9f%hbq-JslXTiasz}I59Q9<E2@8km
      z{RMIPC3WTod4EM*eofxr5Gyxu4Byg7-9j0+aS7ky1ALDU@dK(@2ge;4_=!0D1r7X)
      zCN^*tzu|Lqa2*dQ!b95e2Y$pO{EWwF<B7*~gZfQuZZa*jcZn<JX(c+T&(oHu#{ohC
      gROqWjCvR!ho@Vs4Mo+ui)2`FMrK>T@T~z$uzcu1sHvj+t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class b/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b89bb0edc3dab26288b4e28e080fb38dd7168249
      GIT binary patch
      literal 1249
      zcwU`S+fEcg5Ix;{8Fm<9<+8HC%EeWe8DznGf-w<-am_{&F(d|G256Qs!wi|7RUeJU
      zs1N$0euxQR;sYPxM;WUcST=%aeCY0~>Z)_<boGy)-**8_;f4VzF#6Pe=9U|==a>Dk
      zR`Y^d`L5@ydv37mtEd>(<H$f#pkL>CA>YO-ns3CLjd&rBl)E92j@P|<aZ+HYdLrC3
      zrQY%aFTO2sv-FqT>H%Xb*Ywz;Kyo%*RT&7hTSy^oB7svD40H(OOMfowta^cZ(AZd3
      z(Ia=+R{~wtaK-f(-N<8qKbT}O0>zWt(=S7M5@912$Q{orka`|@F@u&W+=4mxVnuDn
      zUKrF3<ORA9$}02C8x}TTp&LCW3K%kQR-orNcniJAWiWzs21W%6C-!Thi1Pvl_Y<o?
      zK-{ObOshg&mX>D57EL0y8PuUXid1yVa%qP9uxWJR+FD(a+O)5NTD&gs<o{;)FE6{-
      z&Sf5J8@<~?*oamXX9;9mk|!8Sz^Vj+ie`PcURN}`Btu}5021`oMK;Udgsc=K<54_A
      z-Yj{1-)=kGFzxYgu)dNj(Mh{WC**6S<SS&!&#{kooJJR*EgBHT1P_7EGZagb*QcQ$
      zYAUL-x6nVZgF!mY$6FXS-E9mXvUG3*@-5orJM_x;Eljy4Qw|q!k&v0GbcE>+*_@xT
      zorJTygR$Qwd?4_TEx?&3aE5@#_ko=wz#d6R(wS!o&R}5&mkvY}-W;dm6HNITee#PY
      zv-gUdWchtEwkAlA)K;0S1f?5#SWHX4t~6|i1~PR>lICLhQiDsquIT+Lu4%2TV+7aH
      F^$Ry3`icMm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/FileHandler.class b/libjava/classpath/lib/java/util/logging/FileHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7cb9151e1d53dd34fff41968c3116467bbb0114c
      GIT binary patch
      literal 6238
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/Filter.class b/libjava/classpath/lib/java/util/logging/Filter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f1182c5e5a8d2b6701e39331e4bf6b54a1452da
      GIT binary patch
      literal 167
      zcwRg8Z`VEs1_nb0PId++Mh1zj#Ii*F(vr*^{ha*t^vt|;eYeb<lGGx01{OvJ0kCXN
      zB2d&nDJwO(gpq+Ov)BiyFfl17m61U~!v|A8P&z0zIlm~yS~Ci$J~+R$C^;2qC{R5&
      g#B4o~CN@R}Mh0dE5MTsa#mc}2Vll7-NhSsk08;)d1ONa4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/Formatter.class b/libjava/classpath/lib/java/util/logging/Formatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2179df367d4aedcc7d7586e196ca0853d9305b9
      GIT binary patch
      literal 1482
      zcwUWE+fEZv6kUf79T<mOxt6P-U<-wUAjm~j5Q0ey1_+w?G;I%MaM~d=Q$ylMsEIxp
      z5)&`c_=YcNeBcoi<2M=inJGo$fOe9e%U*l!HS6p%KYo2X1TcaH8D$J@+uCC-UT}0H
      zZkXAup3lY?O)IB44!2}T47D!6&?vBy+U9A8AvmMwb!V0#5Q%OuNb_cfD+r)cMLB{D
      zH3>b>mkYTRx7M|k!5KmcGp!jLnx%_%aZ_@(beo|gagKy(s<!Da7)ByK$b^|)<!RH(
      zOh*$ZO4l5Vf|M+0xwFKz3`5*6dr8Y@465RjTY-885W|*-A*;?I@G7lqy1`K82~Kj`
      z*0N+w7;Q3IeXTC3SJ93R28Bq9c?=B^A6bH~OT|TWGt?1!mD^^)O7ppb5W>)YoaELy
      z9i`+;=#_Dqq2(-$iauOns3dByB12!~Zy9GOi>m0y09iok_cTk(aXLdf<Hktz;U5`Z
      zBay{}3}sJ-6~r+jWB63Fd8{g~VwB9)^BKOovMHE+#N1VI4HGiP8JgXw!*`u{(MYeC
      zR8-?S!=z8Tk20UvlQG56b7EUkw{6-#c5h)f&37E#%u~Z!?veU;_DR3e^~u>;aW{PW
      zHkc}&XY1LgNvIv+G5K5X^A6NaYc70I7ev*iJ2fPrQaAN>0OD5;N!(k}>$DoBk%`^@
      zFR1uTlQJmuuh0lg5p)I@Xr_7~8mk~a6V<4JxGuG*D-uo6C~^X!(0+*~=%zhzDVn^n
      zN8!#I(CAig`X7=<{~&25MIOmd!j#iEH*kQKWb8YFp-__Moy&tqs2YqNpeOke(tX;B
      zOi5ws2;s1F_!{-G5XFY}pv1z`SBxcN`^4CYHgsaLsAb%(`;_>fp%TwY#|skwl2ES*
      zwTCXeK`-9YwRneNyr;YmxP?!y_AyUYN&6h8$z4XfH|UwA3U&0IzDf81adhA|AtZ{=
      IyH4Es4L8qRaR2}S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/Handler.class b/libjava/classpath/lib/java/util/logging/Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..791448fd41f1b4ff2ada6d69401bfcceee93775c
      GIT binary patch
      literal 2968
      zcwU88Yf~Fl7=BJjvXCtIOSvSaEv<y4HpSL!Y84O!O(`vHpwOzzW(f;RmhNskRY%8P
      z;s-zTL7f7%IDTwr{1blC(O=*<$M>8pxp8QjNlx~h=Y8Jiytn1||DOE@U>uJW1Q-T3
      zwMSaI<e665vI_;XSV+%m#k^%W3W5wB;@Hw?`{vrFp?eH1>$bD4d7j}g#IwiEXO50D
      z4B>Ut62L(jP@EAeWEqbPi?m2US$;$q)o>i!xuF%c0_Qs;flk*T$fDUO>UN$E7`n36
      zYb<&W?Qw0_%%bUCXJ|@{<rsofcHW4f3Ee8%(b0lloKn!oaOwn6D*6#2>xpc(1$09d
      zE&RDXYZi_9()OC++|kx7gL}7i&B|$x$)EkrptoVV3`3H8`0*!+%1&v`GTjZjZ$cIu
      zyKvjkZ6}}M7YMCeB@PYgmhF;<$n;~~*zrue=qk8Cu4-an=q1PWzN{c9z6HaZsU~(f
      zG4|5b@*9t-2q8?SZk?%AYSnTq7s2aDE4aiElitZsp^D2GXJ{p1)lE(>Q&vS}IQ<nB
      zSJA-`)i(@%YeLrz*X6l=OU2uGhiZdJr!38-40IpyiO7geihPs+)0O(^sl)gc#6xgR
      zMJw6}?$*M46UWhGIRzgwoEHbCoxWRiOFKKZ;~DuQ!%8+3OxAT?nIeJ-e8g*Wnrbq!
      zIw|u(-O2OlH(gAg#B$ql`Ex21G?S5AHHu5qSGM5}+IeK^dhwjpO<gx~XE#+up(?n=
      zaQfx&2o}&yp4>)HBQkAuj<`Z)`v@O(3?5>EU`R>QQnOPDe`b!?=mPGkSiurClu@=<
      zwyBDUm?2<1rYuWssk14Ygkf{#GRu}{+mO6${pr^1R)8^SrwbgvT*P##)(hn!@~Ww@
      z5<vl`f{ml@mjhLN0WCrUZ%c)RZIWXay_{y13^5$%qOkE$!45<JNu{A84?>3>K`4JQ
      zRE5zs7VVOw8)QsYsz32Aahu>-s+A^sLxsdA4E{$|Dps1XVx>Y7D>WZ|cOb||HraL3
      z({%*s7oa8&(3SidJ$o4ViJk)(qVG1ry-XG>#IlMQN0#x3<23k7Zy0C9dX_l(dQNbU
      z5GF|LdHTGDQQupdR&E_iK0)Hgikq<5{Jw@hRHmojNu&r>rQ<ZWXeU5x=TltV#~Z1A
      zyt$N2?IBTB-bHX=kEoxL@@J&!P|)|44Sjn4D<s@Ayo>iFDl?5LUr1HHF9JCtPytf;
      zfgt*f!pGeW`Z}MZ^$-(Hzc!~1FvSIDs)GAO3jZMcKPhd0p$C6s0RPm89;}ES6shDQ
      zXYjE^^lYQ(f2E>7!KcSUJL`v5ElcJiXB+B)h3P$}Aj+C+#Hkf=VoC}zS={i&Es`Dg
      z9rszEVEzT#l80EhcYxb_nCClH(IR=Qm)ykA%Hrr}!!;L(S1z!KJHCUHDq_B&BG?5Y
      zO_25^z3@^eRK#83D2N=EeENs<#Oo<8SDv~U-^X&JtIJT>IJ(#s#Mo8gDp@9}xQbIt
      zwfT3tj|W0XoT}z?5iS}tlH3k7<d#iJbGrup6`>hu)VoZfS*6h2r_ek&AvAoXa4j^y
      zeEKb)ew2vU_p!+((((gBO}o4lpHsAGN&SLi0K36m)D=AY3Z3k0dVhU`LG~^E<MmyQ
      R<I#%aQ8;jgV^7$Z{s$mKY(@Y8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/Level.class b/libjava/classpath/lib/java/util/logging/Level.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63159fcfe517e49240df732a7d94372695775acc
      GIT binary patch
      literal 3397
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/LogManager$1.class b/libjava/classpath/lib/java/util/logging/LogManager$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39d0992a0abf00b44e7738d1c8acd818f4fb10db
      GIT binary patch
      literal 2265
      zcwUWGZC4vb7`?-6*bug)h5}8Y6evQV3AEU1C1`mmrD#a2R4l$P$+&FKvdh^ls6W6z
      z;9u}V)v5=N$G|DItzU|7NBu<}pV{3eP!f(Ga%Ohs+56o4%$;ZR`@i=e0=NKEMFT_k
      z9eq<D-SA9n)N%~Nw2jf6V=U;lZV0#kf(nJ<xF2Kbw0C3WjwpC48X3;id{d4Kx2J_}
      zGc-<^w&}gfz*9p@49bjC6ftl#Yfuqoi04dO<Tut<gnLV0u>?aR=M;2nNq0^894;!}
      zs##*_$sJ8K%g|y7PjV1$PHYN`VIY;Oa$odZdM7({cqxWfw5d43&~;P}4ejV)I2L3H
      z7l~ME=tycld{V<HbTTwmC^C%HXLqQqKFn#HQPItCvR;ga9`rIqWs;x*owdoy&1@8B
      z84$zs7*sL9&`~E)LkdF-Dxv1}H9C<KsTxJ3^R_}^iCVjS&7iIBqf5oWi1exYMIanY
      zY%(P4s@iV@NtdjXI8cO~S@QfdxujtXFA~;)?OA(cO}M&eIyOaJ#<+@?8QQ7=Gmd4^
      zC7}J1hAbw?p%y__&+`z>e)uWZ)j#tosGzISa*!88E0MpcyTaZlL7x1ShH1<M1`77c
      zt@WJu)GmXRp!Ce07_8yC8a`Z7ah;*Bx-n0x4c(e@4H9O1v!52kx>Tp)wWrqE2Qa;1
      zT1DYTk)!@$J3WCldTdft?1^C>dD#SRP+@Cbf+ZR8hK4t>NVd|~*M(hV$o#L{9A?f+
      zh_^H>N$W;EC)kW(4teSLWexA(U53cI?v})n*fl&RYx};25AY#jmnxU7D^>Rm*#IL}
      z5Eiw?C*d2hMQ6h;h-;>7bn)s%7?C&(+PrNGcgE67CF$e%tX;62l5DZUTXl*W46IUp
      zL%;89y=Ut>qY{+GdC+a5UxdB~@<&aXo|<U(0*y?r4sRp&15FyBLAHtpfPV>vHjmM>
      z76hRMaT<vTo(loKphyYXzk|d=`dk?&^O-$F*jA>Du5l%)?4dEyx0O`N=-;Z~_Ync`
      zyHNO7i1Dw{!oR_Beh=;ZTXgd8(9OU1^Ii<F!@P1fjB}J(q4t+XhR|ZvZAUOl^4clt
      zJbmsY=P_TH<TpnnX+fO$<%r(J9lZ1yuT-f7Qhy{WKlv%!gYYn=f@VLFtkRW==+7xe
      zp|Q7y=t()1l4*YRS;hA$%`Pc^K#G4R#ShWOA0f#fql^FIrymZ0D~fw7iceP*cZ7-=
      zW^pZ~^n@zaNaG|?%4Z~{p!l7;m|Nb({Bq*;Z7k6G%`$Fn<LyW3Jv6cL$Xzt0cW`?=
      zl2nqBGTy6tU_j#XC&YLU&HPtl`x{dH52X2@7~_B8GXEP__&+}D>trd)U12>LvX--t
      uXeP@w;q#|I1-Rt%S9}dRomhmLZ#0~7toRHHDEfyJ*b_)V_{Y(TkN*Q;A|ECI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/LogManager.class b/libjava/classpath/lib/java/util/logging/LogManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f93b8af931f706f1fad1414fc3a806ddb8ea86b
      GIT binary patch
      literal 13097
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/LogRecord.class b/libjava/classpath/lib/java/util/logging/LogRecord.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35fba9e9c256e00d7376ea89ef53ea656dd68569
      GIT binary patch
      literal 4865
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/Logger$1.class b/libjava/classpath/lib/java/util/logging/Logger$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75e2200420cc86d0f2bc22421a96d30824e1e356
      GIT binary patch
      literal 588
      zcwTi;%SyvQ6g^|pq)nsMShYS^E?O6T;Ibk}Q4rz-6kWJV(;=NQCNP;4{3~54F8lyL
      zO1w>j6rqcmJ9F;2=bk(B{qy++po;?wOAI?>f8w`OEo589VJM=o?NQ|Fuxr6!Sk3a%
      zC;VnG=7F|gG8|-R!h=)^{nEZwVj?6D`S2{zB90i$6A=l0%1~%D9~g{&JmfYCs5r1t
      zVyJo|;@9c(fUA3dAUT8U#epv$d?lv$95nPuBn*4rVwXMYp;BsDYc#$8W_u;9lbKM)
      z17F(Mz?OwghWa8o2X$;SltZp(07I)Wr+TLqk$cUBe#nh|7pE%V7h*a<Wd^sVd<N$-
      zin!`aKS?-^RXvXa87EYI#q}s2q5~R+R*^nvi55K--O6-2rpPE3kKSRwWod_YJEJ|q
      zpyV>0oEZr#s8Xcg!&)xT$puW;{Xp&YPr=O4r@3k~uP$IGW9?!u>olteT<p_s&|~5k
      D0}p>+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/Logger.class b/libjava/classpath/lib/java/util/logging/Logger.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab5acbc9ea3736f4a943569c9b6934b3fa9dc361
      GIT binary patch
      literal 12065
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/LoggingMXBean.class b/libjava/classpath/lib/java/util/logging/LoggingMXBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07e36eea48bebed6c9c92d5188d1fac136939470
      GIT binary patch
      literal 395
      zcwTK#%WlFj5FGOg1ZWX_KyQ>@8gVY-&_hq*Aw@#HnrLMixj}LqK8`~_fR93~15zpA
      z%gVDev!gj2_rCzf=mn?<ylmu7MupQRGFzo|rlR;fXWySBvj8=LUP&^Nmy7j=QYY}F
      z$ax~!n090YhNJk8l{m`|A8+^2wQ??hC>Q9DF1#{DtaHb#R-#oVU17;v-x4PG##0sz
      z*m@}~WmgCIV15(z^+D7J;a37-vMp>%U)r!w|6eihUeFK_sKUP*_f$s%zOMjH##@Y5
      R5c0o$!8_<O#)-<!^9iP+Y^wkO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/LoggingPermission.class b/libjava/classpath/lib/java/util/logging/LoggingPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6d4caf8eb5c3b495907a1520f1a5fce07c76437
      GIT binary patch
      literal 852
      zcwUWCO;1xn6g^W4ZE7p<q$nWzEF%4qN?g{D6s%g(s0rFcchl$i7&31jzBkXvzc6v7
      z3;%-~NHo!%3%C9P|A_HUX~0kyZ03H<opa8edw>4<@(sWm8X2S*mUj3X-bjp84Hf#n
      z)PAFTXrG8EkZ~+Sok5ymaZnfwFNvhtYpnBFddDRUQ?ZC7S3MEg_*v&31KVUMY=k;C
      zT$>(Oi5SQ4U;14;{=_hGOKNHEFszij18BvGd&@*b-5kwSdJO4}@TJJ&EJMZ%wTVKN
      z#S{Z_7=x21b0&uw%w|v|IVTbFIFAcND_$pD#SF!NX&?7@glC$S7a7bml#VYtN(rB<
      zR^%sv(5C&?6T61`%i<zKP4hsw;VXCK$J`)^joTM)X(+Um!yGPIjh9bQAN6OoU&*6{
      zB~qz`_RTiKSh>>4VwvG4_bhMxU%L2+PbW&bVdRQn*X%J&cBK}NlAtf5r@XHOgVPN?
      zni8j3Q9Mkh&9<a3S?-=<8JbjX`?gRcUC?BPIvH|XVG?=bzO)RpBRH$}F|8r>NbATj
      zk8w<p%}|s=mON%BN@t!j@2SextyP_ZGkJh%r%>C+xsND(#oTje;Q))@>pw74--r8Q
      zn7nF}p9gT)=&TYPaGRj-Vj3+Ju}&+|!UEcK|A6ivqE7Y(HnBpL?ja${r~m`6iW<qW
      OUY)!Y`PT>NtA7CuUfC`H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/MemoryHandler.class b/libjava/classpath/lib/java/util/logging/MemoryHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80e0099c73c44f323ac66ca15ad14cefc5a9e591
      GIT binary patch
      literal 2945
      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
      M)G=eZ<j7wB4?vH>3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/SimpleFormatter.class b/libjava/classpath/lib/java/util/logging/SimpleFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b484f73937dbe92f805313a34a29192da08a08dd
      GIT binary patch
      literal 1997
      zcwUWFU2_vv7=BKZcGG2{rLB;Hg;pviC2gpHXj2d<R$J3hY3v91wM|ZvZ8zDtd%}l0
      z!-co}0x!Js#ye3=7(3&o&iJDo-*-2OB@JjhbIzXk`+eT$oc#6oZ@&YWh0@R?FtKCa
      zGm|xC*-6_e7OhG#xn`BCwp?`FvZ<7GHG~CD9yDtk2<UlJH5~+wrF~l^AE@Nbwmc=E
      z*;Yla$*RCmU}Bq`O}P|})RFld8CdG7KqwYp7YHvnc^ScBfg|iW<H@S&n#yr?4B)7S
      zL4m=2aUOa~mJJMHSm01ms#VviN>@D;I2${dFMd$e4}n(<Xov_5q$y*jR^FCw*4(xw
      z*X-m>d);&`J~xGZ^M1uTLO5X{3Z1G}CCd{ylm1U&spq~z6SUb_7yGnRye)H%o9|Yw
      zhH=8WQ+%UVC`bb6G+yI+&QLwErT99x_PT*y^yzp5aSbtnk#1u$Fokmh!-O9TvsPIy
      zRXk-@a@1`!7Vkb=4bwEFe;Z(xjwEI^obSq=c4r3O#07zV%C}<KHX}#FU)GVpC2rs?
      zZeTgS&Sk%CU<~gFOzy{uQ+0!fAxIgR#}z`^tX5?uFOc|OL<lhSBfQHIu2BoIg_qbR
      zal^m@ZW2kTk2R;}=H!BHdS1pX6Ko@~uJt9cXyASJ8g6^7NL6z3?8f>f1Izf3ZU*Vo
      z@}9K0ka#zuu+lGhg$vGfbb4!hN9NRvJB?sfpl5DeCzjkcu!d6thXZD=NY68iel;H(
      zSjR>%t8B@2?pFkkKi8Ts<%>at*lH2Xa+=9DTuU)EH*rG4C)9OIy-Hfu(%!{qJonET
      zwsgxPP^RuM4@~4VY`5H>&ubtL0(_v#5!aNN+s(RWz}$3~Y$=YniK2lLk0GL*pi&01
      zNVIW%iVBRq^llPkw`&E;@gjH$GS#Y(UYM?c5zRfTvfF+=J5VFN9x!Cl;vgd(Pst2B
      zVS?rtqPM+={^_dISCn5f+C#MVgXepQPSdpWU;mKt3`c&!$P?e`7_B<(K$gre;kYja
      z8Asc$7ieea-l+ygJKa(U<BIQQ1V%WCSN#BEI28mC3shGx$$s3!>8+!9+Q7uh)Kg6U
      z34Q7r&i;zY1RwX1*g99oOam9|xLn8FMq+Thj;k99l3wpPzvrKS#)!X@;Db8S8;PM?
      z{&|W7AMLlGb2c;m2PfIwYT(XXczO?aw?@O^20pFhi^OQSj)Lz|hxJpt$qa^RmDEO&
      zeq~A+#SYG67nfn<8p?E+D_Dg?jQWyT>XL;=YYkuFJ|5u#zNN3n_!{5g8~i{L2I^t}
      lMiVIh+M$RH)%O&&Oqn0ii(H|oA@Yr)O0mPFcm1loe*l~w`a1vs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/SocketHandler.class b/libjava/classpath/lib/java/util/logging/SocketHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa90dee6f7e90ef5b3a7ffdda9d3a503b2b36399
      GIT binary patch
      literal 1932
      zcwUWE+j1L45ItkdUU{{4Vg)-Swi73WAjw7|+(CihI5rWiFT}=)!*wkU@+RwD)oK)=
      zc;@;8z$?#rNK%F5N~)kJs(8pB1pbAhd$hi4<3bOsnd$Cx`gHfq!+-Dp2H+e%HP9t+
      z@`iKEDKwPp6}+HYb^U5#DJb8R>ayckJQ*5D#5<`_IvbIbK<|0ich#E$-I?r)fI0I;
      zS=N*r_;mw)0!K7}8x%?l+ZKVubWo8dEDRXv7Z~kiv4iTI<2zLuS~!Hm0{vB~b`Ax`
      zGg<qfuwoKvfivuqXP12BlHVgTzaG>TC-Q`aAq)$oh-NViYBE$`3Y^WfIXtH=oZ^ew
      z&La~7Pg*#J<Lx{bgHX*kHr6;#Docs&qZWEFCNLZWS>nnavRz-cqn4dDPYR^%pzL@n
      zPU!MJI!vf_w=QrhM*JRSI;p2DoWauqR+)OHWZOYtA~pwmt5pjPRcokrpQ((`L}PG3
      z8T*jMgn^vE(U_jdThg;IiD#)AQ?@N|EUt6xRWwi#IMHdnHfPTU;fAA>3{7<799Q#s
      zfiM%Fb*H|^QpOmzsdnQ`drrMx<W41cXt+HcBxI{m?*&9DiC6!}__4Q%*Kyte1rP23
      zmV71k@V^1NTgjRe)+L<@48@IP$-r9zr+0;Wo~%0FR9J0nNMCJVJrfsjk!#m$;L_IZ
      z)Dhb*24-m(wZWGv8Y&Yr80AmN!aL}tF|V&TR3-S_FZon;w%8WtFwYjLmdmyI;F9zl
      zx<iS~_3R2eELwOER|uPK$nIv*-N`&=_~?15M>9KU?@Nh{My;{tx%G8^4dNezE3zDf
      zl_Dq5jcXR(#|qzz>lQv>6+NGM4G!-OwV%M)fiU#EEd`CREN5MPKlk>MBXNq*yTQL6
      zT2Y<R1%q}8+9hGq>LS?%{U6S4B9$I&;>aeBwlH#+&bn}dz5^QJ2KsQ5-aZc}X=k-#
      zFis56$YUMI6=LJabZ%mF6Q|Q>?;#`7`4*nr!9Gqtz}NKshN8Yj3f~d-_ZY+vnrFO?
      z5b^Np1-z)a(|8Fl6N<_29Gx)Z4DI<h#8O_-QeL}#^#LxdwlMX(4oeaI^d4b9(#cQg
      z$IqIO0Ze|SA~{^JBuy#9e?{UrBAfdQ$&th_NNqtsz|3lHq=mQVCY!iCnP}o&S}fez
      zr}I~;VUx6NVg&bz?hhjRbC=GnRtLReb%Oi`u!Lno5j-rB&RN>)L~|1@T+KDHy1!eG
      cs3U(9+dmq8IFhwhMH3(5Bf=8+SjT<xAJr$)I{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/StreamHandler.class b/libjava/classpath/lib/java/util/logging/StreamHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..daeda91edb34444dab778d99e21daced25228841
      GIT binary patch
      literal 5354
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/logging/XMLFormatter.class b/libjava/classpath/lib/java/util/logging/XMLFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd47a7d08c3255450c02e5abc8bc4dc9d7c8a4a2
      GIT binary patch
      literal 4482
      zcwUuPd0bT275**^%wu>ejDe`A8PFn(jA)yxMZ^WQKme%_6;0a=%mYSe!I_6*Of{QH
      z8`JD2wN0b8wj@p4xQ<4%bW5x@O>EkxX;L+5lXOd$bWQU|)9<`DfP}$c%8&Q%x%Zy+
      zJLlZ{=JbD$KM7zK-gP2PVe&fvMt^ya84Q(&qMe<=NN4%#hWcgESlDlxM$8F^LcwsJ
      z0R{zUC>SxCjcx^Zy~P;vlcCv+k#8QigYoFx*)wM;OtiO6qt`5N4u-o!#uC42*qX?w
      zRkl-8(5zBOFDYHA;HZuUj4X`87$-(66b|>o)-vFWjtpdGL17I4>*-ZvPq@v9wfNgY
      zhIkik_lH*cV?miG7c(m@lP;tqPsdoeoVZkB!pM$l7_X4GnSZ{9245gBtz}wGO+`3d
      z5s$l&j{;FLksKw%u_#?BzD?HQgvRL1u3%ijQ-ARU5ST1~cefD<wD>y}77o|DxTm9o
      ze6_<3rgFiBsVH{hLkjt+73r9U5&~lzW%5g^OGmP)!K<JuMQ54F`4q}h1wN9z3+0&Q
      z#7u>p_jBm@Fg`*z+PnO*MJC}YsV%M6@KJ?~Vt=@srsr_6IAoIgm{6TU5v{c1DdNw3
      z@uy1Muf3@Gg*p~tF%5-`NT=Cl)n2WJB~(;du3;JDlY(sP=};Iqk|K%+BLO2qKUFQc
      zO-YrrJsL6XwIH8%KGh24|4#zzBws7g;zYB;=)vv!r~q^&*d&@6wV9>n>V}8PAQe{Y
      zC`1t*sH3MHR%t2BDoIg#_0i51Mtd|CNRhO8g6k)xz&~Z@gU(%zHYfZkkB9+PI@-ZP
      z(mD;Z-q>h_Bq^n-Y|G|6(b=J+6U;>xMH+&kkTeSOQYU-sbgTz;jN)FCKjse`?2@=d
      zU%K`JmzTG#Gull{TSP|`Jf3nXvBHQ)dt&Xz;+{xA`hVgOPloQYo?>z=#jGf*G)Nf+
      zcoI0Vu|FM_n4AtS^q^O;*(}&tiOa_p9cyr{!qf|)7VcE&YS_x`gspHTY1c{8nl#)%
      zAL7P_9wX9jNH{m?*e>8mIL*m*`=HZsixe{9G-AT}IUToRhYeM|wc1Fy6fP-AncUCg
      z4kvC`xO9Zn=(rPi@nj9gn@xWt;Ex58>11lwXt;;18IlFjv{TA+hfw$H_<}T;7L1rH
      z{h=O1!xzcf9`ehHc{Lu;@nvz+E#X+`SId@os$sVvVwhdgfUxe>@fBemJHXmt?b*Eh
      z$ZK}R48O(ubsc?THk-UH)@tn%S$|l^H}DA2iw`e`NhKrKf+SSoTROgtwM5izq6Q-#
      z_jl6veztqqo`{iyIu7BmUB5IQ-4r3JLqNAy<qBfj6V&JNR2seQMz<M^MtB<?!%in2
      zW27l0G@M}dQJ{QKLc<fZR#~1bRcX|ngu|XPu#0xO!uS!pkxJT<=u8+H92<En%)FFA
      z5*|WP!z>J*fJ3a+_(f4Hbzhv~ty#ICHyrY8WUDjY`9-s4%q;S-@}mK=%rA1`NBFT5
      z&oYz|b?bOeibo1!X;M(b8OdcZWX$N-<-!a2nG-)9dL?a+n?_j2&+($IpeYvZHex1w
      zz4!y&cMRes7X6hi%Y1V+yv)m`x?66aU+FlDa|*7w>5rN5RYAFdQhqzEapKkf)*Nzo
      z1VaJo{9m)fHt`aQZi@R{IFABR|Avk?@mp3#yr(Tba7(1P5a)@=@8!z;gM#k^g_N{x
      zN$%9}Cl+gwCvF`Kp=iXIUlfTJEns2(MWLv&aLMxOme!`F9_GZ;+}hl-w82wkA5=2}
      zW}t|CZxf$NF7dWi1fk#}MZ!?~(`6S{i$56B@NfB?E4Nj+?DJt+P%1a~!Vjt$qL(Kt
      zk1c)%r(uG8G?H@5XBkI%XF-}ho3rU0<<EH#`XS^TutakCc5wviD0(?XVa=3$Kqdui
      z;IKs9-lMq0djk2b?r}#k;Rq%T>Tr_>sNj1AooMD-rKL-^C2<)%mL=ZZwpNv()8g!#
      zzLRhqNT2QK!zgc#CxI!eZgQwRM?pr{-uK@2x=Rz7zRFu>y>qH$+v2^=m*+@e#_Wu|
      zj7O}n7V!}niup|8Q_082r;5)UulsUQ(1#UX_iUT0@w(^QR8?L^j%P1i9JcO5E(h0c
      zYc^^RUCPT4n|&DPbyrwU$U-H3nK$67FM$Pn-`n7IS6|?(d#N=XM2?JuNL_=;e6J%?
      z>xopDSVV|V7?aS=qizGdi18QAwU~pgSb%K^;0AKuNUocCFW-V*UWD7QgR8gm61xNU
      z^Zg+1!b7+hk76ehxDQWI{uCa-8Qw=Pa`!BD;|=VwGE!xuj*m01u&7$*URl%?+)J~l
      zdQ#~upL1y7u7jRzMI)BeW65DtvNBe2p20EOTToVb44*iLRqrpWLmUrVhP_saWDgk5
      z9x$9eU^ttGTWMJFV`HstB(2b@VyJ=>nA)1F?mUXC8m1@k=|;YcIS#&qtN036WR|%%
      z2-amu%*!0^xc4w7oj^}(zT+r1C2$Qr<nm|o9mlYZ#Pt-s(I#&u`B`o=nYZmiE?4d*
      zc`sM`FeW*>Z@bOAi@aa5RXs>@k4=7+<ky5_I*a=uFK6GZaQ0zzg*JVBCRfI5PuT={
      zA06+c5LpgXXydhK;45<<8RB~eS+oR>ifZ@qAzSXphfEWAazCMZm^baQ0q}2Sp8<~%
      zz~jgPdlrwQfOS!b@1O+V#Z3HwiFlfse1<@uL<j37jMLbHXIW#<;ch(7+Brk5FY`0u
      z6>2_5P3I~7D!$M06kfv%%E7B3180>JuPY62sXV-+itwJAqMT})8m&rHzVcehzsgQw
      z@*EKADe7W^RgP5<X~<F8xQCvlBcD3AvJ4#b_Fa6B_A+sV>-#x6Ia{5iUP3jac$(#*
      z7{$rtxiX5JQfS+yTymPETFTr%6r_mu=|-M5S?=eL;U_|6x_{9q&6}|gg+BK$6L@78
      z#+|_VR`+X1@f#l-{q+QXm%twz%X~KUZw<}FpNCHWIy^D`30Wp@wGb|~2)U}7LDpe{
      zx&j{6im7T1rl~H>RY5eU_56ht#u^nto7#w=+Jp_N7rkmTu2Wks=%nraV3PV9{?71S
      zOrH&AK7S_s!)jrLfA&Mey>zR~##$l%iy>OBN`QloW=cz{>n%h1Hv52~u}MP;?^yi*
      F`5!JYZs`C3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f2ec9517e29e8d2af28dea143662da51c835e92
      GIT binary patch
      literal 1009
      zcwUWDU2oGc6g_UThIVe7g#qOowvKh#pxZMO5>!J%Dlh@syPJ8dr{GM9Q;DC2v<krk
      zKY(Ar1N;@lbygVKirNR;_g<fKd_R(JzrK70u!Ri|C5DwFF%+HLsJL^S%7d))w4a$&
      zL}r&fnMxhWthMFAW$+7VEc9XLb^l04#zUDQIE%i?wHEzYGL+3gWvxw;@6Dk9m|<=x
      z;#SNMUcjH>x&wMd_Ecu1mMM`cmL!K#8-~@X#2pJHR(V@#Wu7p6XwQ_~RN=oFO+}uj
      zu(rqGc9VTs0mA}^hfCJF%uzwrT30yc!K-j^jiZJpgVVO8Mo($^Du3UX>ATZD2fZW`
      z@t#PP^~XWiHh)q_CXSXm;-tBr$6eg_aF3xqt%^VOax7t)K8xdX_cX<eo&A3+s&A7#
      zjpTD>b8k+_@sZVH;4d^i+Kok)Nh+_gqoX*<ls<eZ%^=zLu*R@FL&+TLHf{Gnr4pOe
      zZim(!9N)K-0Q|ttp*U#@^sAI;)ler?gRE!dyL2vw>m&H##t1?9a76AWT>V&}uhU*F
      zSj2F@;|5urY~tW1ZWZy{XpZ%^32E=@;Rz|7VDU5VlyFYT{ehbM^B<-9Sjj=FK(63H
      Qfn~)l5MY&d7j1;U0Xtg-8~^|S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..596a22a88955708b7bebe3ad447ecd2071606b8c
      GIT binary patch
      literal 1104
      zcwUWD%Wl&^6g`tnVv-tS($c0SJlZ-macR>Ab|9oGDgr4jsI9UHE61KTuG}%Qo%{=5
      zz#54N!GaIqV_1M-iMZni1u2MRF>@cj=brl*fBE(4Gk{$@)R1DRoZADt-j6-M{yG$=
      zQGKr)#i8xQFUb<2kdBDVh6c`HB%!`7&+0F_=fa6KWEqNM?@?b$yXy;vY~1rAbBEHm
      zX2}1DAvdsn({^3qGO!LqM%g}tIe|Y6T+!?iooIPcETjnkz{Nnwm|^ulkbM<G@!7|o
      z^x`KBvN}_NomtA5%3EtQ@FqEPV3^mT;fm63=*S_jv?U#L(3Q5V<0`J@k;Y9O1(X@m
      zRRu4!JSh(Q7hMsaT#mZf3LM*S+o7lIk&~<WGi=P#oY|m(q{F_P!#XM&Oop}T-Rii9
      z4Tika^L%&ja&hM5FegW#SZX>fh1L`Fk+=v33ZFj?`k^D9da8xeKT6$J=?V5+QUy)l
      zjv_%_7WSp%2azYw4n*7wTn+T_)@SHkM*|ONSf^e{gq7*lcWQ0y(00;vGT?@xRtOkH
      zwZKHu`VvXYqn|8ArvQVZuaowS><q~jYjcRARUTr&+8ScfTINHPtPfaumtbzuolmgz
      zHuzWECQT=ukhp`piGLO4QPx)!slHXL_gHv?c@m3sN*}S7!dn<)yPCq7pa>4|Z_xO6
      hEb$*O`Om+IDkGvaHWS2sY$Zjp<f}q&)6G%G?r)n|6$=0W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class b/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8537d1745aa5969bed705161557c3e8a1838442
      GIT binary patch
      literal 15751
      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
      Y8mzooL#(0D@B5Z~YH(*+1HAVC0F|5P=>Px#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/BackingStoreException.class b/libjava/classpath/lib/java/util/prefs/BackingStoreException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70fc6df4e47b1916f3e6f1dbecdf51bdf8fb8fa3
      GIT binary patch
      literal 1046
      zcwU{7-%b-j6vn?(+b-Ec!D6uj<&TQ|G3mw&uP|JQ)?gaY6q|_NOqZbyZg-pASus9=
      zuVCU!ctxU#-up1#d22j7lohcM<IS0wv)}oh@67DCpP#+}xPui78N$MWcrBb*E6?eL
      zaxZf33-^`sJ53#g^5Gj-_OuFo3t7Urk$S@KIOzw%SR_Lwyp{|jK0n)dK%mEjk@dij
      zwD5IHc(KeCzJGZ6{@vXlg#10_E4@Z2FExGxn>ysCtII7yc0JgYHZGw!3>yW)XhZpO
      zGw!x!xGmbAB$OI~%Pj>r=5s%p)%z+UEH?gWqE&*`l~E)*hWD2fLglo-?foz~O!~0J
      z#M{-xTbYn^MI14qJWxw09EM8Et@eR*HDR`oRDpAx+KP2A*4$Ext{L7=4MrAb2y-X;
      z%|JKJMXR?7I+YD!uK$R&WaOF|xi)ZQ8&wqfbppclMLyUCue&FvXU>}5@c;BoiZFG7
      zhI!2(4qaJS$vaIBG*?UNF%RO)1;+|<$n$FPDT5(odCz|X$6?N_aW2Dae&zNNMm`$N
      zC`a35>s<Q?W4xO<R^c*AfZ2`X3NsQ`c@S&jEb9rgo}R<1;2JYBn8XyvY0f1stA<+V
      zITF478P(^d*(1z<P02+w;|{A|FlFZy-A?H?uH%NG-^9Xy&?T$)m@dzu-@>A~hb2?D
      F{0sbz<{$t7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/InvalidPreferencesFormatException.class b/libjava/classpath/lib/java/util/prefs/InvalidPreferencesFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ac6f87994202f15a4ca73d41b8841f669cbfcaf
      GIT binary patch
      literal 1236
      zcwU{7T~8B16o%hZN|!89uvkPuD1IQc*oJrs;RZ!(8bCo36TO(W(=w#pExWT|{0m<A
      zTfAzbi6&n9f4nuGnU;#kNAzZ9&e?aK^PV&N{pY7I0G9E<L5#3`AdW;K(yCEt1+o?v
      zir$fEsOmNcGLT+Hh8up+6#DVoifn1+dk*4+F?+2cyn3PcfiN1%K#9hl3_^}y79SDl
      z8DV(c_d+c^y(b!x?ElfXzB>Bh+j~M{Re4IU5z-5#-@qLmD6hV<xJQVu`&H?p56L08
      z7$l68lqWZ%W?2TiqTG;#RLQS!Nx_9V?k3}UUxkE+rGM^jh2S)07>c@O|K*A>aoX$d
      ze&8RQnrzqjykUH%3H=ojg-l4Ft0iR5Y4{TCw82gi29E=!<yQGXRy1L@3sHWdliG@O
      zE7FXUqG{*n_WBAP%n>pt`b}T&*tb&eOqrf+0C&3oMBYp-Z>N^Oa%wIzNb+O*gz3vX
      zu_NBACk@P;ZJ_A=>7Nu~>Jkm}cKj%)$PHzlef~<LdBegSh=&SZC(w@s?+!;X3~)r|
      zN8@#fGi#iS@t(-$+8F+5H6y&bHv5FtPch1;@s0}DkOJ&!4A+@qSn2av<7ZjVnf2lV
      z)&y>LS(9B>k=+~rPBypH#?)EZYrgcx!ZICM59V}@nUld9OSdq?>n!Ku{3T-xZ16op
      zaz7*UDs{V!yI*@Xl9pLxb)D<fPMLOlbzI!TJkw&hkA?rBAF?`N`r!riMP%(ra`xWR
      EFCc{teE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/NodeChangeEvent.class b/libjava/classpath/lib/java/util/prefs/NodeChangeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dff7ba5c7adc38ad4e31a448e5659572665c2138
      GIT binary patch
      literal 1309
      zcwU`UU2hUW6g>kh(1m`8ZPn5i@T)*;(fakE_62K#L7+j2J}xlAG_Xr|hid#8{tTZq
      z(KOLSefB5$V7xmlShtY}A9nW6+;h*~bI-t!U!T7MxPiM71Q=2W#*tANO3^C}Z2r<I
      zRID~Hb`7(`_l~$JBM31p{Q;@NYV&}%B*TKkZDI5p+;)UzJ}W(BV2>GQi<ap~!;}r9
      zH{_c2^WEX$lZ`b7t<@F1Hp5!k|J53;+~#JBJNFpE_k}6sF2jTDROHlTuE7v0k{TUB
      zEW{DV8B*dA_DEo1B!hr6U^p9xju^vyS(v;s>^Hgn)M)lNL!xZ8NTfkhY406|WLG#0
      znNuzJ=0|Gufk7=vH^DHYM&QLAE^8`BK4f!K)wnIL#j%bQjmNQuc1v}3N=yV9hU63`
      zhA4fuI5I-FxzQfGx$ezISRPr)91LY$5~i=FsqejR@qr|(od`B)WMg=#I>|(kV@Qt^
      z6-(CD6%lXTu}x4>Y`V9ACas2)7Eao<WZF4_)se+D*R^e*Yt)c1JF20e<$92u(l$fv
      zl`SM6YfSkyR)_L$kwMEM&edr!nnYbW@JP5<VbN##wp)q}85X1;S^z815T;#3?V@<=
      zUNnj|I*VhL);ZekQ_jW5@|(w)&u@J~;)5z!q;*cEs#H>=;(aX9E<J){8Rq~Mou`MX
      z=mI?fidT^I=y&Mt=A!wJSpAOl`w4egoj+Hc@e#)3WVkq~FL?DD)hGPL#))FhD-Pfi
      zF4KC2;t*x7Dw<ttIzVsz3$iZ~`D1K-^Ko?)*YXH85vNlF*C`*MKdznsVD0~d^(Jm9
      JVYe0j&Tk(WCxQR~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/NodeChangeListener.class b/libjava/classpath/lib/java/util/prefs/NodeChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..698f176aaea1b7cf046574f0817e290a32809364
      GIT binary patch
      literal 247
      zcwRg8Z`VEs1_nb09(D#MMh2y<#Ii*F(vr*^{eq&@v|@d~{FGGZjKsY3RG-Y^lGMD^
      zB6bEAMg{?}x*VXmzJF3yYH|rX0~;fQI6}8;S!!MhOba6eS8_&XPKsknN@@xtgNlX^
      zZfn3Atu@0K8F;{Yf>Lwy%Rsugg7Zs@l2hF>b5emeVY*8XWG2uNj10^`%nI}r6VRdT
      T3>*v~2XlgGpg0#uoPiqv0vJO^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/PreferenceChangeEvent.class b/libjava/classpath/lib/java/util/prefs/PreferenceChangeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f4bc424e47f6d9e0d513eec41697123365de87e
      GIT binary patch
      literal 1485
      zcwU`T+foxj5IvJk*tiLT;i7U4DiXpaf_J&R1gt_SunLUw<`Tv*7<Q@MS@7}^{)$#f
      zQKePtvyXm(Ut-xa*@O@v55Da5^z=F1r@Qyp->=^ROkvJMgkgBc-nVms6y@BW$6x!o
      zXY}PBcZxi}Z965txX&GFBFfNp9IBnGn>)NH8QOjB3A<e2o-bVI`O*Rdd&1C~cO75a
      zjx5;afX5QXpSktlBOe)zH~bw#YFX2jDMxNidcrBqFvJ~xpu-tjW`!f<Ji|g}`TQFF
      znbS0<J);GNXx`o877ScUq7^BUlc@`=XraIhVCYQ3LPA;HNhFbAXj>KzUkP?Mxwmd_
      zmboh5Es|!Nl+!(QM&-8f8Ah5ET-Q|68+E8ChW@4s8DjgDo|q*rS2SWUGujlRiXTei
      z8m?0(eK+um{A9~R!6t?odYdp2oRU6O6YH$zJUO$3DylX%%j5P|bu$LS77I7bx8&>v
      zl91fq)kCos-xm3vq_y!)OfYm*!<SZTFD7yf>FUFZE7$b8iTA4KwWv6zR3B+fy0>ZJ
      zryW<O{km8Slen#hf2U#ibz5S%YJj~>$|k`Fo{+q%aj;S2Y9LRFG+dWB`<jJOC)V_k
      z9t*WcJ!kIAq$0o&P1c|v*gy|rXrY@)w+P}$sjVeDrFNE1_121u^lhWt7R5yAY|oAz
      z(P#V+9odOPbbZ$7%NnQN3&i?@m|hZU16RnCt>AE#GD2Iu=p$BTsf-bA^^;|gcL0N7
      z#%VfLR6P3y>7Tgqsg|il`(J7HWF;nKXSj)x5T6V2F~WB=f=hMaSPh&x6WrAZcFzDu
      zFiJ`z7$ZAMFXNhKo-`?a);COUq;4Hy`bPs-pt-s$QMDdfxQl!A9>IM)_z%_(=deD+
      LBQ0!3$It!)WAa99
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/PreferenceChangeListener.class b/libjava/classpath/lib/java/util/prefs/PreferenceChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffcbb0207bc6e910393a390270bb42206807510a
      GIT binary patch
      literal 248
      zcwRg8Z`VEs1_nb0ZgvJHMh1<n#Ii*F(vr*^{eq&@v|{}LAemZ}nwOmFoROH9p6ZiX
      zT#}lXTEx!4!pI;1R-FSB*Y{7#N=+_dXJBJw5J#BdT9%qu0@DIiUw~#BBZHQP4<ReT
      zhFEKcF*0xk=a&{Gr@Ce40CmdZa+)5<K%hGq8JK~X73e!gpj+7)I6y20P9Vv|zy$!l
      Cv`AY3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/Preferences$1.class b/libjava/classpath/lib/java/util/prefs/Preferences$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00f0be17c239025646eb8a019c41e008f2db397b
      GIT binary patch
      literal 1282
      zcwUWEZBG+H5Pr5CTq&o8iX!qV7Hpxk0=`ltAp{bVQb{oI`M7S&k>jq}+oJtNeAO>X
      zG$QdeYV;===e8GZA)+64W_NbxnP+C_?(5H2#{g!qs3XEKv}Ycextg?{TvhP0pW7hG
      z1$Qm(CuekM4Bg7bG2Ke;(as*Xq>c`TVP*BXRTH+XQ<!~VJG{b6OO~`fm!V_9c5S)H
      z(3VPXF=)$PiO0}}E(1EE4Do{P@?vd&hl|JNj>8!e1<x{_EmPRRIW%f=*Y+7k3g;5d
      zQyNjDti7pp;WXcT6qgvr0&_M1$SQzr6TqrzNl(;cxQsp>S6XV`toxGh8@P&ohOP>i
      z8^Wt{A?pkisis_;QrK=KpFV4fVE{uq2C3#hcgv3H`v!(F!l0KuQ8f3d+VOuNswf3`
      z-M|=nh>^>mthv54sSX{<u+G0UDy&n-1jFbl)S@R>y_#EEd1~=$@Ps;2EnbZ*(l&$3
      zCa=j>FNdbUbe1ei=Qnv}7zR&eTsD3A+k+ueEi)v~d*_foJ$9$1D65_&&bExe$`(V<
      zna(jVuQehZ5r){NR}&UrwS%eaZpxYsoEeNY*X2UNa2m+?ifcKZPubSF-1SO2<{1Xg
      zA#Y#-4=D{zP*_JWK<WRf7q>w3O{<;0+z2iDfaugoyE)Q~bo=B>#Gb2bgJev(y@p1Y
      z7iecRoNy6w(o`RMLV)ifY>pKYi6iu`XFegBIl{H#^b3s6YyH{@ZWIpDy?qFSR+N^u
      zJ@t&B4Gduv<4PxSQ|T1aN@p+?Qkhlq4V~Un%rP-PA<H`=@E(2mKnNcx`ZGm-p{Q?|
      z#t%jLc7s+(IYRbnWQlB)GUccv5kiR5e{7aI(?_MuQG`bOJIebm?x{93x&tI|pQMHd
      G$o~SAutWv`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/Preferences.class b/libjava/classpath/lib/java/util/prefs/Preferences.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf687b05cc0e71c2dba84cc6329ccdba67c4870c
      GIT binary patch
      literal 5352
      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
      JbgN<s{U70+Wq|+y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/prefs/PreferencesFactory.class b/libjava/classpath/lib/java/util/prefs/PreferencesFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2243ca515972c9c51f11cfb9ad6bb1218ee0d9c5
      GIT binary patch
      literal 207
      zcwRg8Z`VEs1_nb0E_MbcMh2y<#Ii*F(vr*^{eq&@v|{}LAemZ}nwOkf?3S2Zl3!HG
      z&cMRRAOKdElbDyT@1K;Fnq0!jz*SsXT#}j_l%Ege$ZKf&;4#XYk%6PMIJF3(m@7EH
      wv?w{%Ei)&TkwF~OMm>;8Y>W(y49pB5zyx#vD+3z?$RX??8Ysg75@+B905n`TyZ`_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/regex/MatchResult.class b/libjava/classpath/lib/java/util/regex/MatchResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..064c64a293a364414b9d7b821f8f608dc917b07d
      GIT binary patch
      literal 270
      zcwTLeJqp4=5QX1rVl@61T6uw_F<4s)LO>DB3D&s8gpkN)S3H}A2k=nhWC?2F6!XE%
      zn>X+Ix<3FcF?P^mm}mUT1Fh0LkRlPcV8>N_K8Q-^%7Mi&F@l^INw7a=B32A-QJkoI
      ze#l^XVGTQxrM@ssJ%9T>h?Go=WW_Ke)xWuG&eo+a$kwhDmqa%zwT#6k%>}*x$+M^(
      iIt=t1bvYEzMh7r-47=zxbPfB>e()jb$YDsmh0z<(?Kt`X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/regex/Matcher.class b/libjava/classpath/lib/java/util/regex/Matcher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6cb429c6fb8c27d90d0b72f9a6b97e90d7fd055b
      GIT binary patch
      literal 5016
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/regex/Pattern.class b/libjava/classpath/lib/java/util/regex/Pattern.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..47e212b22268d649cad4743c7080c03460129ef1
      GIT binary patch
      literal 4266
      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
      O3x~zz3hqWJHTyqjh|~N4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class b/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39d83b676e34fdf6574f993a39e455c5a25fb65e
      GIT binary patch
      literal 1455
      zcwUWETTc^F5dKcDP!_1=4x-=%d$R>Eh=SZTsR2ZbC1^re+CyEk-8Q>hY>l@V|A+C(
      z7auecFq#;j`33$B|A0DYw*o>nyqq&LXXcxkZ)SJr=jX2g1~B1;gQ0I--jL%(Q&HnO
      z&+<}yUN%jxYss=^%B35nG%uJ+Uh~4maLV#kWi1;|s4CCO>V%#x=D23=`Z4$ot}C*d
      z;<`cly~H#FyTwpHmDdbY*36Ww7P)(8xvu})(0Gi&mElI3AuzKCo-}nu%MLSm3wALK
      zZbi%R5<w*xJR^#xn4=8A;NhUdmP9B;S*G$C?t>Fe5*pFW&{8Efl&S?os{|kFgw!rU
      zvZYQ5^=M#doKZABSIn()eL-GTxu`pzrfy~Gne>X$Wj<64s&D3K<Wi?~f(2cvaM+OL
      z=Jb9;b1+nmA0PS6|DmXcl!VQaGZ;$Pue01R<SehjIYL#b_?W>9vM!r>-G>k&UW936
      z`=HB)$#W8-I8Q|hcs*a>x>=@8sm9o0lNWK~@Su6JxVFYAWeiQ?xFF#oF3~9ELV;@;
      zhUk&NZIoewFenhNFmwf{{_A&D!Zq{~J7(T~qpcD=Bzb|sVXV@W{}oQ#rVxwCd{IyH
      zn~E50SM>qL1Oj?#QJnN?xzGtWJfwL^bD#zRu~8%k#6DR!Z4=#Y@@a&h&SRwI$k#=8
      zOE|KPKsd5VQgjn-;qFaze6XOp=xn7hV2;k)1UpXvchHQxI8N5E4S;T(04(VwC1jQ)
      zQadb3BzKav$0}K*j?*o?+~JRCdB2;=V;Pq$Xvub{K-15lYH-`ZV7Y4WX`HDN-0|)}
      z@OstYv%8tUQyZe;l|bJo`r5uAwj>(ZM*nOyvW0=gsK0g#mlva=GNFqkj@O9&_39jb
      zi~6X)N64?7tXnv}`Sl~}U$$bmFtpdyAdv?YslE-G;v=-9L==}1#AEd13B5nXbv(l)
      qo+Cl`0$$(&UhW&tN~I4E?qk>*PJo6vLQxKk(Qrm9!x^)3j{gS!i#4kN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/Adler32.class b/libjava/classpath/lib/java/util/zip/Adler32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..442ff469b1ec8e1931ec33e270ce01ca3f87bbff
      GIT binary patch
      literal 1181
      zcwTK%O-~b16g{t<nSNNHREE!v3i#0vqynZ3ktURAtRZTGsS6e|Z3kK$TGCF5F^DcO
      zk!W<QiSAU~pb`-h6WQoW|A2qMAK)Lb-uF6IFfQJ^_q})TIp?0dufIO-0vN(67aR=g
      zyuPHzs#d{_-6|}`#&f1o9vOB)V(^P6Q!mcNE@$SAtmT5j(7wN6B5!1GRH_RMQgVFi
      z90N-+G)<I>6-zH#Y2B<EPN4Ra!JTcCDrXDDf|X!!hQev;oG9fCFP!lE;6sxa3;`bw
      zqKQE+8x_N1XqhY&jZ4*qj8VR-XH0`CCQDh}OzY(WKiij*l`m8nIwt=+)u@M%yL>nR
      zH)*IY=5&kqgi_%&*I1)Gv!t60j>-_<hKWBkoeZbBqCOwG(a+$bn^cO+Rx;JuS))vq
      z(@7eIPPCV1`ED9Ta)Oq7&ZwIpX1yqr^F+j{yi=uWIcuCRaNRyz;UL$IUZQi-lHnju
      z7u=M4sL=s0EmBXpLU-g9?ag!=rN}6HB0Fe_Y@>Bkl(*5|Oi(}>5-e)0LZy?hUW|5h
      zP-NU{8|XB3@i!$ReL&}56iy5*lcd{w5R?W&H+pP@HR6*fo{VgvGZ0)E<I(S5P6T^e
      zQCpb_co)Zl8V`wx=J($W&g>)VCQ#r$NnL{<4+!=l`tS$?cr1t`b#R-QXPWTGjbk`O
      zyMwwk9Hz`EWF4_(jZ>dPI23h8cel~|?`%(~<*A@(uNO8bJUB|=Ou+Tm;TZp|E_%z`
      zQ^qBG%(%RcbFIza<BF<iFQ8~~MN^erVjW$o6b-IA*od$pE~&CA&BWzZrKT#+YClwo
      zEaA62$lCMTr-&+(KdN+hpFv3)5O_(dULk<jq<DjLy`e$hlDc;YVG~ij#~EzV(3?nM
      z8&|M{Yg9Xp&zQp(G3AB2{>GGf92Zma?1V6qXCYyv2iJwU5;3NQxiWE%Axs(nh!JA^
      h^M53P;pKMRYs0{ujfQeXynNg9f4q(VGbpNJzX99xxTgRB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/CRC32.class b/libjava/classpath/lib/java/util/zip/CRC32.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..648d071d88befb45c65f23d46fc856da56807040
      GIT binary patch
      literal 1280
      zcwTK(-A)rh7(KJQ{k0$z%U>6*qDWh96&hk<iwPuZ1;r@g1{1Tbs}`2ll$HxrOb{PJ
      z<BeCn()h12h6nJ{SMbIgU%`52wpJwUW_P}sIp25AcV@HSet+2pa2n%2XaYS;)|!>B
      z*Gf)$y>u@<eQkPt%m+iDOKmt-`A&MSuw)l&K6nLscfs%4#pTudihy3M76n9JAi(Hm
      z%_=yyfVRj5f41n9%B9*QQKRt%0b{yy%ML<de+XUZ7U*2DmhGE6@{G~=Vm?4bPY3}7
      ziJUE!?JM<_f?b_=A>r9d(Q+27YDvypi{7jv3PMMJ2)zi&8iOJD;Ahd=-O{Q+WOk31
      z&+5NEKaR11G9TH<GIigvYYUcBx0UWo9=e7mF9A>0UbSnatKYk2)s)`6YOJtkIRd`X
      z#i_hn&<pk3(uFC8mD>z;$0mb^fcS!R;8X}BhzkU-SL)TGeZC~S2r5Y_DHDeY()oCx
      z@n#<s5tN>A^z+__5O+H`OLCN#?=w2zA^e7+h64(&@jV4EvWTcv5Zc>L%yLDh1{0sq
      zm(V|8;9qVh$tA+TIg+~hAs3A(Of~WdTa{iBZE&3AnSKq<=-CENMsr>M$p-pNW8*10
      z!b7I<U^CZ%k7I62Zw@_g{!B#8xh)~0%zDxMo_O76Pq97V0+nB6bcq}@=)q+S;0lIu
      z6~{SG;Tp!cpT)dVm!JYK&a^Gc;2_^p-!U9wq*3od#286i593Hndxm+g3-2-T<N$^r
      zy=?37s+}8qbT3%-uaBo%K6-a~=w=soWP97$BkaM=UZNi9bxiVWo4L0Lo6*f~G&fRa
      zm!F;`Ol|YOx?$zD!;fMG{V21$isFd5by^%U8dVPX=$q?+<c+s@pRtPkv@<U6gwcRW
      z?ud~zw=^;CDu@_T!i3=-*pEcS*rjEVJpt>iexE1x07p3{@et$KP?|C>M_W^d=j48{
      z8Jtj>WOP!Uik~Y|r=fJFS~_!_OH?3{)RWsEk=||aV@1^Kg4#rZ7Lni|PvXb^07z`L
      Ah5!Hn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/CheckedInputStream.class b/libjava/classpath/lib/java/util/zip/CheckedInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ebc475078160c7bd3429823fddd781bbd87ff09f
      GIT binary patch
      literal 1443
      zcwTi>TTc@~6#izr%hC&|NDBza#ajzV@dgT56;M-x5~D$lF=1&JSSf97w}5z!iHSeJ
      zCljM@ylA3{_ZT01^!NCzelx&|Qk!(<%$#$+^PTTZ_WRGzUjZDzhzU)g^@g=z#Y?V}
      zi7z|(`0%WqnzPf%Y`)}PbPKjMZ$cMnP*F}Ue#XhTc432Cz*j7Btsg4`M9+Xg#h{aQ
      z+=M_+bZi}G1H!=nGGh}0`fx672jD|61QQ|FDUT7G@I#<F1OpWUTgIHMeZDk5Wfv}4
      zQyE*JW-OPoG80z8k>|Bb-JNxc0`27p{G|b#(44G5xNL2K;Ee6A(-znfjs0H?ohfOG
      z7L6qZ0;iW!cHVVz*`kR?f$bjrxaX05HHWYrwE?uC%|z?QxIZ*Ps6%}ayRgT^Zh=U7
      z1|jUlK8~c6Pg|~(AexjiizWU^$c$baN+x4TS*lASc1Xl-nHBfEjQ35Irm4xbA)2{q
      zn!b!peMEtX#W^Q0fk$Jb2GmbS0R0#=!TzfiuZ)$QiJ!CF*$|F{FT*!4<u#(COd^bg
      zk~@bJxR@&yQa0Zm+170yO}E5D8%6T55;@5iK+B+QqLQnhrwhE7{$NMv2Lw90-l6IZ
      zj~cdctyZpKri_s2X>8@Gbu}E@P@`H1$^j5eTC#vfJB-L0e4M-V869s?_1XijP?zTv
      zU}!a94N%BoF{(kS!zZI)uJT6X-awe9_t-hus69uO#BBV8b`6a$J?I*y0TXQSGOBQe
      za935C$SS~EnM&?a#1uQua#O(vwB?N2Wx>v-=J)9A)x$cgZk1I#o5K1h?AH<2|E-*2
      zLuuMJAIh|<e0UYfQ>-05{KyDp9V7=$S%+x(m>XeyOfflv-c7uI(5~b@+2Vil6o&s*
      zOD+07;@IOv^Owqg-QQ=dAR#$7=src-44c{uRIH%8C2T&jPeu%GR-fVJ$#xhVHdQ}_
      zefH~H#CYX(l~8M*BfH7UMRwtm;{tgtq6xRib(vGX%}(y%DDL7U?jec$RDTiI@lYv{
      qP!Dg?Q(zJ&7$<lh=PQ?eM=+{X(TRH&r|30!->tMT89Ai*4F3im4*+Wb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/CheckedOutputStream.class b/libjava/classpath/lib/java/util/zip/CheckedOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1cb1101af106f49c0cda39c8c1abca975e7c2b9
      GIT binary patch
      literal 1062
      zcwTi>+iuf95It)<F-_bSnvzS?LPNPYPH8BYry?F2iWDg&LWS^932>5aYjESpSr^1t
      zfdob6fe+xL5VM<$3Uyv~XJ>ZKIdj(X?>|3(0ocSN6B<M5y?f$TBjNeg&tAV;JK~)W
      zyxWXKKN5Q)<nFNvgJDTs^MdL#&lfyAUuVz<5v}<~3=~zi7?O{@o+q9#Y}$=6(0Pch
      zX|3fJgHa2*JOv$T3nnav!W58lYX%H+77|D@%s0Fqe;ysTdHB+8`<!8+5p-O?<%XU-
      zkCKKs@&*iRaSHzRf#%SINHApM=@}AAG(-B3i}46#on4;pOyXnc2`R&_%UM%9pE|rR
      zyr4HQvCNPeGu4}uiX8Hqg$x!`Sj7z!C5FW~MHccXq;V6sP23{c@ggkTL4lqq>UUkG
      zq<!N046M#z+WXse(j|G;C7L7AHe`oGX0)RN25o;^`f@;_?(-gvuopyOhtqdLVEGsy
      zH>3`fXbPRaLqd@6MUg?ViA%K3(CG!`Wj*awejw$nf5+@sI%=4wbxxIP)c6!B?BFt;
      zR)^Pd1q*<R$RPrg(N!YQD9$1`g0IppYYFEYX1`2;lPbBZ0IlJL5g?Oh(ygVD(xQTC
      zQbwaaLoh4FQ(TvD#WSpF_+RZS8m&c8uN8Q9*fvp{fsL}#L@r;TIi%R2Jtt`@%PXg-
      vNFs{PaM!p%^@dD&OBC-El{0LeP~~X&dup~E{RPTONDlWY(kc5uVLki{W#`V=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/Checksum.class b/libjava/classpath/lib/java/util/zip/Checksum.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f30eab3a1995bf1a391ff29c867e04520ff5fadc
      GIT binary patch
      literal 200
      zcwRg8Z`VEs1_nb0K6VBsMh3C0#Ii*F(vr*^{i@6YedmnS<m}?oTy_Q)Mg{?}Tux$M
      zy1su>R%&tyBLhczYDrjPPH8G51G9#v7b62}QEG8&378kg$iP-wkdjyelw{HH1o7E5
      zqMba!EUw`E(xT*4x6B-%EHBI&J&+A-j0`~i3?RS)w3U^CjR9mkI|B!p=49Z4(%e85
      Mj0`+Ll8J#A0L=X-%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/DataFormatException.class b/libjava/classpath/lib/java/util/zip/DataFormatException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2cc399771e3c476ff6ded4c4e088291d019a3b80
      GIT binary patch
      literal 518
      zcwU82%}N4M7(HK(8k44Jnz;z1jT$sWyA(J6Kp}0cSq4|T*o|>UX6{7vR;`Q{JwVW#
      z^bFBAqZCxo;(mYkeCM2dUq7B-034y3#u}k^EAE69YUNlDYHsy}76Z?p3EjV+$hlUY
      zn}$Is#xO^?Q|s%3kPoD<gkwuT;QsQoN1!u8w(Gfp7Ou916UyY?+mlW5>Yb2kD_7|b
      zAyIGG1f%O+OA`rfW?*82kQ*vjo`<us^e@ENk%Yp~o3Maj8SYm@L*J-?us{6Qdy7!2
      z55K*Sw6EN0t6@i~rAW2NW@f=OQu+lWm?JOrCvu=7*~%XRhtU#hU>5#VLKR7*IH$Q=
      z!#W>|p2ji5lVi@rIoVtw`xrxV98J!^2@JH6=PI)VVGD(rlwGa}I*g34spi1~+dmol
      WyfcUy%1hLWA*#yQiN!1N&h96t;B0CD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/Deflater.class b/libjava/classpath/lib/java/util/zip/Deflater.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7082243dd88fe741fd7d1aa1fc163067e410ce4c
      GIT binary patch
      literal 2397
      zcwUWG-%}e^6#j00CoF}Q5=uiY(3V1?O|jxH`olm%NgD`F0u`|0l3c<v%Z5pIQFzfu
      zXB@4sjt}_Yj4!@8)546-)Cb>u)BnJKLub@;?=DM-Fk@ym_nv#t{l0U)bM7X;{{7<%
      z0HfFl!ov{VP`A~jWomkISKCUa`I@epydH#)p;PYZs!>hmS2uXsq@{^Wv9vOopP4IU
      zip6YxmVsp%+9zv9!&D7(LDenpCHyc$MEVxzGMThkVGLdA%v5SVcMQP$4}BQU%;t}+
      zLYzS7;eleQkSb;FFEWItvbj>GkV!Kr)ALhPGpX5?{A_MfoS=L{bRtKtk}|~L*ZDTr
      zX}w|ADY5DfLvWYoT-{_io2wdDvRd9q7Ss>Zs;Q1Mv}ui%HO<f(>%2nAEm0n8y46@;
      zAz`Wvf!nla-evF(k1R0wCTkTQp-B4`^kIPbhO<jzqa&voeAe1r<@J)fs&j^OxmsD(
      z7u32YY-iDDu4@g33%QfaK=Js7vjWenZ|f0wF(P;_g^4ktAc}zCenr6z!R-^FiG`aA
      z)ptlF&CQ&Xzfqg!YK7M+1#7E9;1p|}lLKLMgHny8`Bt5mX@`tZm7A%GF5D?ms&IrB
      zN;Ol}vj#(N!7@y3lP_oujnYUN2JM&{^#C<g?x<^y5XVJWcNE;kJ*pdFP3)MwQJ{z<
      z!2{C$kRWf#93~V@3g?bP=f`!;G&!+{s648!?MmIJ6pY~#C1uyl-gSycz)M1@hYEUe
      zk#aCNuQam8mSx)7I8*=d^2Er3K$}xAgGbaNw33y&`!(Cgvpf;RJj38oc3EBLRaH;b
      ztJWqr%*;n+z9mG6po9^@`>uj+yFyC}Ziy({h_vW7qOW1feyrHlb^^(Y10N`O0@V$K
      z3J|DSri`SWFw$CCFsbz&;mj43Mby5EChn+T_A8}ZtXcIkpVCC5wI8<B4Uqr_=$N=6
      z?WBw!0kVSP{vbqlxXF%?-PU9aCEJ_qGh}zP*qtrs&o<fT$nI*g&(lL1$$8WndvHOH
      zR5Llo<a#fiq0Xo8m&h8U=oyW{xW{{d%RflRLHdr+2$*!l!WEh+wi~YEntY@5VaS2F
      zM-Uzf5jzRuV}kfZLPTvh2SUuQ%M1kAfCE-0FrjC6`~bso?{mcCvAzSm9FOfIc?2CL
      zv4PLv!{;RP7bM+NlHf~8({BT~G~Eu3n7v9;c$i0Ab4tP^nn}J;UvtJWDa`BQ7+G)N
      zO_}RkG<xk-yiJcl8>dkOe3K#)*n#*yZh!i{8==kktVz3o9TDNu<(0Va{7>A}e{g>}
      z5qDDJ`jB?ZdrQg-_z5M`TAAO-_4g(qzYBC<$UzcKBkKSqU7%-p&>GDjCxYbYu*h--
      zvkpj#2nBICp717K>?7YA(Vuj0{%Y!#uv^413Mdk)fO{lk8+9A7<}_d;=GjAc>}!N$
      zo#AiM_7h5r2Uz$y9`k&IP-oyf_+roTm^y2*rIT0}I@o#iux@(WM-gW|O+h5wAQDa|
      z4Pe<NUnd{o)gSwcxP5!*jQRJPxkU>fW4tJ?AseJ$_A5BUt|H2=A;yMqnO$#U?RQ!G
      z@t$){p5T3l^-hbDD=j5qqo=62>ZnLBMTp{*Pc2TRr8w*%{SC;S0=wqGmSu5(s@s7H
      VNkh*OoE@Rs)HKX}t*lEg?O&FjVpISC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/DeflaterOutputStream.class b/libjava/classpath/lib/java/util/zip/DeflaterOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7dc0cab62c41716d668767611fc7185da1f9ce93
      GIT binary patch
      literal 2157
      zcwUuNTT>fl7=AWMNmv&`IJKN4JxD`>q{U<9P|K-}2B?K%DQ%qv7FcK5Fq=(vI?i~!
      zR(okH>Ufyms53e?QQK)R)EjU8KkD;+yMz?NMK9RA`+e{CJn#Fw&$s;j@9z%)oW!*-
      z0t$}2sbAOA1=qCFH_XlSxUp*KuHnoS+|7bJ>pF(M5k^QsyUa6l=}FVtwXYz!R9ICI
      zSR7@zVlX_Etqwb=AiUzmOilF8D^MriUN$yeGiT?+s8i6iO_Z4_?<fe3<yMSZC}_|S
      zMnpu78V;aFMKfB%Xi?Bwol-+B4w5#pIGV}yX2i)h4ejV)0l9+9bJ=ai%BBWYbfG(p
      zClxeT+t(1sVFd@?a!k>S4?i!;IjZ3po?>UVVXWjc_NHKAvzNm-uHc|Vvvhkcov~S;
      zty>e0lXD{IrEX)oecX-v62*1Pikss6X%#(4Y3Re#3TlQ-+jK`1v?Q`SU@XhD*9L{8
      z(X443(}j&C!<o~UESA@p%`NNJyzZFd-Cqp3>t<fTv3+Lsh#G9bGB^h%L-`Wb74y1(
      zUR0^7l=(#wol-EcPyT)$$%r0KKIS2DCM0xI5yY@yem0EL+y3_Cwk%^!x6U|gg$=`Y
      z%kGNci~@}o&YL%k_|S0tgo+WQI8=X)V_vli`E}9Wq=s>?y>r4@s<6o<XR^wfco|s@
      zuZZ<#Olz1CMu>Qu#tMO!tz6y^$Ft((tcLSYS$RTwM?p8^rR%yyrI!T6f`-e&XOX<&
      zZaXQr${VK6<_gZT!Q064+N#a0Uv!Sc1P$`O2M`k1g;7XcApX`eVguZHLatH+)HC{=
      zae%+)?w~jM3!?ms1;yh*5lurKTd28%cD^5y8y!V-imW1zeD>czesl|U_t3M@m?$Cn
      z@F&UM&u0($fD5c=4lQ^cZMcL^ETETb&)^D%aTRBA4QXbzdNtq#zf@p$GX|JLS;S=d
      zte3l9r47l{Jv1+r@La3`CA_f1sLK5{M6q6h+Tf##h#vwU^(7xQOH`qlnoRXo$8*?6
      zUgE{Q%rc(p<B4dHDhDL;DIfVAW{1S7WU7Rrt}UU`$U@`GC5%2ycHNKMMJ(BO7ttNQ
      zb~&+kIl1@9`97NP0oOi6H$Ia5Ne{2gA20LAeSQ&*QMn*j$E!>`BfAHhywOc0i#RKW
      zTSR83j7CZGF^%&HkAKSdo04Ahj{5Y9@ckZwpZy`tdjzjOrmLpPu9|wpReNgem%O)F
      z<84;4MPq%z*1yD2e8u{1bG%<ufNwC3Z*dXdRoG$PufMaxWaq1NGU7|6QKQ#9{tG+&
      z_0kI8Gyeyk`>{eFt*lR+#@~&)=-Vw8x*wV93wGR`OZEjrMO@r1f054;UGOVi`&)(k
      zV&&<_*or7WggV}?8tFd%m)b-524jIJh7e74b`^0+jD2@6e^7%z8UIybwP=|vDnBQR
      Rj21~7kkNo|wJQ?q>i>#ziXH#}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/GZIPInputStream.class b/libjava/classpath/lib/java/util/zip/GZIPInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6509e756f8f45f3d97ce69427237b119af69b42
      GIT binary patch
      literal 4268
      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
      X@Gg?@kTrV;WxSG#kizFmMR)dp6f3(`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/GZIPOutputStream.class b/libjava/classpath/lib/java/util/zip/GZIPOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..debc1c134e98a68b89e449c76fbadc5613d96f7e
      GIT binary patch
      literal 1763
      zcwT)~ZBrX%6g^L}$%gH=EEJHJ1Pb^9i6siYV4>KOma>>aZPK&}b)3y+X}7b<GRZC~
      zAFLl7?M$m<XB_{BGnzQo@dx<T-{6eDLcMoGC=_r%?A~Xe`<#33Id^CO_~+N(0lbO3
      zGC~5Q4~!in?R&P9-nF;W*Gl@04d2`Ly_{FKjH(PtVB&Dj6>G~eJga^%Patg8O@aRG
      z;oQv4%-rmPKy=Zr+1`@C&{R9acGCyXFH9E%l&hbb*0yK6wT6sS0%tp!`o{i_fRu47
      zmI8q@Dr9sE44(k0GiG<zu377TwQSY%M%l3hdb6%+I0d6_^Lp>4<lVO$0_U>-F9&rJ
      zc70D^;P{d<UZTC@<x((!A*MVm5Sh|T(**@##Q9A^VD^M2vd4pQb27#{8XeYK!6?QV
      zcY^3nO&7XItd~_p5LNIhrewS(patg~qjoQy`>f$vRTa}n3iOzMy>8XKyj``f+m6Gk
      z5XM>r!4>{n!3^GzkrwDXj<8CTHA@YCQnx*e8{J%H8>EK4OG}{(#Hw!PV~^m;@O#90
      z)iNqpT_Ci%EFe?9uD7MRz*zI#%%X~mn5QZ7w<`w2hRgmITd~D=$D*l-n2y^B#v-HQ
      z3U?meqLFLd=jK;b^r4@bud29=2}aNG#s@00xK0=qi;xCS5}U2tP;mnvGH1)nyPo0b
      zwLlr23FcJfS-lu-77WL?BLD7P)RM>9Hf2ZY6WKAGy}nmm*W<pGoa@(3YsKa{?0<3M
      zW|$JjiEEhTCn4EJiXs%th#`b7T1m80pi*?1@<R0NN~U@=v~c=IT7;m{T?sZ;>5z^d
      ziU!(==*8K<+b$M~fEc*@2=HH2mWRMhrk-J-7?N5TjJGh7e1_3t3+H~u<S%%o52@;-
      zB~AG)Rt#%n`J$vf&KDzEEMJrpPxHlCLW}LvQ;Q}vEePa<HW&n5q5K6YH6%50{yF7$
      zaGLHpqLarkZebF)X-tb`WC?Tl2=g$pf(q{70lg{UE~+TQ4cdFFO?SUNbFV#)=4dxW
      zXqWIdMPWK8Q>}NY-Ep3|Bh8m7mgw1=OvMu|yqEk5lN2?v@SN+Jz#)&2e5$__a7eaK
      z?Q`hG5>*jF^nSpBqe}q?!IOEU@={<3peCDGrm|O?xb|Yr&nf>QPT`B7rrOTmt10+n
      zID+~oX~WFSWD7c>t~If~$W1kIvk$i(KDwyI*upqDBgNaEMdEGCqVcw4@(3F`(lK<T
      zW9Ue*z0O?EA2M@>C<0$n;jf6q*BHVRjNu!+j&HGu@34laWbI=z@_Q2ehXVq3OjODK
      Z+awnKMkxDEAYh4FE0U-zU@54z`5%eDTnPXG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/Inflater.class b/libjava/classpath/lib/java/util/zip/Inflater.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec1bc7f84bc6cdf3db939fca25904a64b727f666
      GIT binary patch
      literal 1441
      zcwU8+OH&g;5Xb+McQ(sYMHF9A&=8bW0TqEL4=GcXk}9Oof&(?#9m3*fliF;2aPfQi
      z8Ms(wL6rxN9=!P_^jlc=OqK;B>ScSTr~B9c?wRE4&(8+{?qEKN2t(gCf6a}iZ#%}0
      zT{nvEro(;VB@tujR%Z@(E5=fJTbMpWa;M>Yf>#-ON)@+hRLpH-nZH@!KA&R9*o}=%
      z+qD~8!eU@+<gski-*APnq$e>=hkk(}nj2nah|Sk5p@E@OhlVb4<kqCWt7N<4S+iOe
      z-U=@}f}yumGr6<MJzMSrXUyNS8w~xWlUtb55XBiu&d3^Pb@ZzmQUXKDtvwao5*{r{
      zGI#79CFO#Si^z~d;gVo&LDW5A63%MH1+9_(wKPRv)saMsjw-^RwH!&KqauS&j%88h
      zl;Kv0L)(>_&z+)6GdbKWHRVL@mR^Q<ZhcPXYERypqVC%@w~@q6hV1YC$yqPfyejv@
      zI4OKoM-B$@h*B&{PPE+IWQeTK(M079G#2PCD4Kikr1o(gX{lXPXGOQ(^d;xMjv)+^
      z8c#F?>Fc2HQDUHSRYp$hn8Zw2kuEMpu_5TOj)FYap4Xb5DHd&cXB~&PGb)=xmg1uH
      z8l#9Hjs&eDa-hnll|4lfbc6KOX*W)OMmCX;?xW+QitDDYMizKMjF;%4mEMX%FXclK
      zx&p!?Maoz$zmL=TfqnEHQ96|tju=d;ZYfe<D>@*_)j85d&j{y3Rbymjy?A~P1MQ+-
      zQK)lFRJ?^^OujSnTvFI9F5^moGeX=aWOqYcLOI``h`NSBWrqTLJ+L>VrPv&XiIS&v
      zjCLcc%nYriz;u2jI&!dwTkWNGj}0Il4j_%&^yk5tgi56$ltttZO!ad2#9qeQ3w-&r
      z7fPN8lP7}Y49)f42gGB$(RReQV~9*Rjt8`sZBOE1fSPS<cB=iFzSFJ#_)o+1+7-6&
      WSL~xUEXhhy;=i$l06VL4=Y9b{l+cF&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/InflaterInputStream.class b/libjava/classpath/lib/java/util/zip/InflaterInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0f6de8fcf79ef091ef8ac156f2921d64793f949
      GIT binary patch
      literal 3282
      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
      K=kr?X3;zSR>zTL!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipConstants.class b/libjava/classpath/lib/java/util/zip/ZipConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..485b7dac58f450ba0798136ad0023c5a96ade1d0
      GIT binary patch
      literal 1279
      zcwSx7T~pIQ6b9h4(5AHt7DR-K$RHwqwc_`;mNY4)ZQ``CFujXR$0^e(jI>_()4cEp
      z_@f-(-IF-Sy*p2K_w0F-{QmRv7ZL4JkfRwzrIYx3T$xUWqsourS*1Tbb5F<TlXyHi
      z&rwEE(X5Z+@z+ZD<z#R?QRK8jcfZzAq#BCm((S!?G#$*M^E&V7HtN`Mki`?q%r-yq
      z)1KGSdonD)Ro8Nop5dWZo)tCPS_PKdakb{t-hHh_R?7>tmRUj7oGY=sqeyEFLW!Bo
      zJo%iN2TzbguNPUkCEeKPBI$hza=jouKcmcfJW0-%Sv{|v79B2-FxeO$a)Df2@MWf}
      zNwdUCZd_p@4HuXtITo6H8?0KlskO<fMkei6sw1s!R_Oa$_jE2COOiNQeiK2>d{MLX
      zd5?=IjMB}0F3^Ju456sdJ)M3#9{9u2K+%HybISUsaflS@D|cv>vgANH{q86aU!cN2
      zUxeqx`aFDDxCk!@FTz)Zm*A_y%kVYf6?j#+1YH+igKr40!#Blz8}O!BzXfku^WL`R
      z+ZMh9?}&bP;rn9!0sPSFSGMw3tp1Oz{JYkDkF9y12tS3N2|tHlSovRC-|Lm|Yxs@u
      uTlk&ud-#L!N4P4y2fN~Z)L`HGK6NYazLmFO<vp<SHvh}3|HPK5+kXKANQ4Xk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipEntry.class b/libjava/classpath/lib/java/util/zip/ZipEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc9b197e8127c3f71d78c38bb283a00cd403c7e7
      GIT binary patch
      literal 5378
      zcwUWHYjBj+8GcT(w`>;Kgaip22x@A>hLAxds01)KBoGoMkq{!7P4;7VVY3@|HyEM@
      zYyq)%1#Qu`;z&y`P(e&$MM0&btsPsZo#{;VN89O4fA#jS{Z;zB=lk;Q=0a;2_Ppoz
      zp67ku%Q@eN|9SHYfK|BWMxMgLeW3%P+TlzrUOO5as@)YEYDr{L2i<Te`1M>ol!(-J
      z^zSnUGH$pO7SGzzluV>Ep+qL_hDTvRc2`q8nJ_~AaYMnowY{Ue{o&5mT`dZ#Rbk%L
      zt{tKHu#rzlN}<qP)g;SghyV+$q3umF;IK7ywQkc(Joc`Zon6}-WXP|OKM;y5l(c2B
      zHihCwA{<JsQ*b0ggM?JvmPOi`NyQQonM=n;Id{`Qa&RbRq|-*YQxB*uqBJ$2;0`C#
      znV2YW?oT8iO>nML!8K@PqRB7^jgd?$q>$I!$hA~6Xe2Tm-Wv}^(p;C^yEkocz}4B+
      zvAv~P@It}U+_I^yp{u2t6ZNq~EVDtOv}!iM<vR$mDH%4r$VZJ2%dwKUs+R9?Ubp@V
      zsO=6P79$|iojxo@g-CTiEHkCMe7FU-igb?;w_%YN_1NIX`e_a~&+}m;?j<Br7s*8R
      zNv%YD{kj`X3b$sLx5nc}BouE*MTW)RmXQHtC=*L2+@QN}o~gERI2I2ZDG%;bm@m#)
      zW*)FCmR{yXGg`&4ph#PNXu~!l2n`L<eG27Ot;=W8V(D8aJ34&09}kexOwycW7*x&P
      z!nKWP6%x99xEYHGq%D>(+J^`GjZ~Kzv&C&mhS82tDkgnv(2<G8=*LAlp_Q9B452{P
      zjpml`@bbW3vF;&-nj5a0+waN{xDWeK2CqmVAIeQ>z=tL9GBp@k%^jUxIyxO>io3j#
      zoH6HsWaLan%;a7tA+^tk2%=uZvCoZL-AGLHUTY#_q!OWcODdI2c`=9@Hy%-_oRRVE
      z$xP?)&`>g!F~W8vFd2xXU1y$~IHy2vF-bY#!=o5sE_2aTs<Jvw;hdhrUX0>#Hy)#l
      zX3zTY1ejm*tutB^+hXx}EG>Hu`EVFdGK?dVfkIHLI8-AMbS5SS`4)k6%!j8Wy}U!A
      zRN82fv=*|T_MsFDMctQu_zJ$t4LYF<s#^7**fWZ+`|u4MA&kg$7;Zc}RYEmk+lLc!
      zehy94#wwFP7!x^~VyxwdLkDF<W*rBOP)ZJX!G{;82y4}qbiiU(3YIPhQd%U;YfS6(
      zxQxl1LJ^lX&8TwD0kixSMP|>rWW5wXSHuzuII_(udj*lK?BRHeSp}U{y^W@W&-;)D
      zZ;)3Ns<P%cq*9@St%<NP(lMOr*xQ&KPK49BWDF&RfOL#$oKOE!dBj%ks9G*X)@vGK
      z)>&^Pr&Ab9H^)+p?PThp_UkUGb#MA`8E?^!foLezU<E>xTnpv_(NH>Sme_i{<HHrH
      zfZopJaB9HV6q6D#Zz@q&iXkkf)Qvni;l=_M-U5idg>rpC3h}(0{!Q%9&*}TwFUsi`
      zv%esxUqYGDre#(s-7@`k%M!2Ka;v|@YFY4gyUc1?>~(va-Vapjb-?FzTZY?n&ig$3
      zRWtA?DaQP*=EzTIrCeE?gOgYhEJ5u!Rt59Nu{xMHjx|9wj<xc0cl89;tuHTbID^1t
      zH1=FZb5HT6No+2kz?KQLPh$JkVD&gUFX~es<nKy-VlN!Latax=el*eYW}e?dJ9ZQG
      z9-?@dGkv%ZA?)DlWhNGMW2d%gv*w5eiT^gziad?I$HLyIy~LCVR#(4{&PnXbp6=B%
      zG5T(w*1XVMX>0Zp!A|Odlx|DkAE-~xH~tS7!4)(#$Rk(F9NRtP*dy&K*}%4M9DUOE
      zkE37OHL{)UTG7DvZYs$_6>7i&JvUJanx4c84B<{Z!T?TjCe1rEgDwmc`T>MlXtU%Q
      zwuy#qqM>P&;0#kXjcvEcD-H$(We=_Kdk&wVMOkDwX^oFDL>^~QKaoRZv3*Lh4pTlg
      zuow4Qx|_74fTEz*I`#sb`R6G2pPQljNpAfDbLxmz?K3x7s+C+^mckM4l4Gmrnb<o}
      zZB(}QeH2woJAwW0AWmwlFLYnVV9z9ySG6X|n<4AG#c=WWS$J@Q`FfI|pX2N|N!qC#
      zv#PAKJtQom$x|f!0SiT~?gLJq+Ihh?#ia*d$uYrco4^WbZT<`WE5$nc28P>fdhT(&
      zS5q;8gTWfd1jdToZ-xDb#{6X?HBNRNeg4vs!!;g?em@0&p-6=y`6zirm?!H-57T#L
      zj%#P(=I_<%Ud&_gcM%Erf0u4eymc&Kz&YYM&lRuI6&Fa=MJB>)xC56MW3Myv#u*_O
      zX!?1k@FdB2BPYh9w)dlSUw{@m7+F%*@+p6j?$kD`hgd*8T=hKNcGQjqH#6(JaM<s!
      z7>m}6;2HIA99yr43P(A*L5qG7>l|7x9re#2bA;>6ePyF$i=_3{xk%?F9DfbRd+u?+
      z$EMU(>MV6EDGyBGOYBbIYh~_h=lTC?w@J^x#)KZhK-5urKj=U_qT62fkK!51M|Ep5
      zwuwOryvz01$kxvo^Y61rf51ZfbAEUI0_*W1w&IuE{c9GokE!)H%*o$U%g5C6I~>FB
      z8G4^+1~-!vGGZ}U&Wrzq&Y#;EswZ{XTE!fF4)S<g&r<h1B?q-{Ww3e~LA_XqZ&7lw
      zc=CZ|Mb}+A?)ardlRrSg8#rZ>l8sU`;r_^de`1vWS!2o5G5T#gMx#7QR#jG%;5&y3
      zPM$)c6#GfMbTwFUT#B49=$KI@7V5bED>40z%>12|<{!M8{+W|jm3F*T@;VCWG&(&M
      zC9D<>jlN7G#4&aX^C|2(T7s7korOy~YI>^uJ15o3>{NTjHe-WT$6dh+7UUUs0yjDN
      zVVVW!vcb7<#sc>}8(ghb$|UYq%>beb=FIu;e`Y@WG@tId_*BJw|1UtXD&eP0DQ;5>
      zZ@_1{1^MjUe7Y?@`)<sqS~@46Kd`Tg-B$H23!Fkx!0&k}$BY26ubGKG$j|y};$K1h
      zHN?L%2YZ=~y^PhwtFiykzBzJB?3(OtVdAWtlkOkk$JXZk7S4)lrhvY#FIHcXCrcJ?
      zwG7&7mr5?GjYQjk0@X;w%_veWC{vrTRNa?@y23_Xp`Txhqx_aI4_2>|amngWb&d0r
      za>qrvnLdEutT}$u#rgGTaatw<N0eG!gzIC|I(`=R_5XW%LwQlxgQwB0Csx-vN*$6g
      zn|0UGm)+y+v$yEJ%j)~BzT4_A8aaG)tuwfgx6Zl1lD_(Y%wBo<`tGxEbWg)hQ!7~J
      zKH`hfB<}$4P~OBOZ5s+z2VMODN!yMJ)s0)!PE@L0SfzT=z_y83!ToAC`q=iXJ&36g
      zzcc&!xfA9$m4Op%PpZ9mh3y#?!6mknDvGz&e!NRvAE^X>rPBCBWwcW^=-d2L%PF_;
      zGP|HdsR?7e$RyAE`LcXX7tu%fSgO=TbdtN|x^i;mC0=r~LvHPiTU|XdXUL7)&*xq%
      z<O0?2qeR}wv%)Rsp;t@{P{%M&J%v(r9E;V{IUyFXLoA?Q_JV3+&bP<iGf_S>C(23Q
      z+2-bM>#bKI4;O;04}2FTA_pAd3H;Pwdm2v1x%_OtnU(Sdc+`t?B!Rq+-nLTr{?GI}
      hQfKBwc*V~9JFLwf6XDgFsee9azsKJHu3q)te*vuw|9b!c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipException.class b/libjava/classpath/lib/java/util/zip/ZipException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dcc54826f05c2470a02430cc972e863d80ed3abb
      GIT binary patch
      literal 497
      zcwTi-yG{a85IqCSVpfospb{H9z{HKQT%|!V7@`Hbh1~^j;F@KZ?86v8$3L(lu`t#)
      zHhzzBb|J=SEbctdoHKXcKA&Fz?4zDVicr55cfyQ9<(Lm@W?rk=$^A&qLgl$xXoO1A
      zSDx9s_-+u2f%KJdZ0QG_U-ga&bVkT`JU0l18`{E&WX97ckJjtQJ3&8Gt_s_Pbfak#
      zw2pTp4WzM_gMn2-p|4zd9!-bRzZ64963TsV!~%k4IA0dEaH0ajcK`pSEkd=i=sUt4
      zn}g6-?$~PDv0OEltMC@nU>r;Qff0;>7x^RERk2>_C-Yv6#twL#@5h%z20HsJXDO`k
      zqxdsyb6h!KPwX?TIr2{lq`=l-4_MG}gd#_|1qdaS6H;DpNzi6wjMZDabFBYn=<>{I
      U!cbeFmJD%J!$u;$napf`0Y=GWivR!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipFile$1.class b/libjava/classpath/lib/java/util/zip/ZipFile$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f37b498a13d9f24cb0007cba5ada59497d8ad927
      GIT binary patch
      literal 1024
      zcwUuKOK(y^7(E}*^5|_rTIj=Si$w+c0Cb6Q(_kb)yC~_x#KkR4+cB59<UShPf8x#`
      zz{bSd#Dz;2_3@L8-&_ch<aXg=X1@11bMoE%`T7k&9Z%zk5SHJW=VsOSq*c9?gX$YO
      zcp)uOtj7@}6sD6cbz+&Ga9V2MdxxGQ%sye(JCkm)#*^BiqZ(XtZdyh6l0YqXo=GLW
      z=Y*G~TN*}TX;=TjX|%(sG+N~<umei6jW~24*m;t+atS5-CJ+$3PNULap>)gZ12W
      zTPpF|?;i`NV;)<AkZs#t(>gL8sr_*<rX?V(hX1EnX9?ztrn1#V-}YUWDi_LRs;W*{
      zxs4hj$q8wV(4(a?%bIGw?}~vZZRN(XL0Ft1985A=je>!@Sl0?|87N|n`=vTb;Sox4
      zJSODBF%6Wl&IC_|*Reg*I`BQlJhXkMEA%G`#`wE?dH}mErG&F@nXW5Xn{-okE!&mq
      z^p)_=>|PvImLXIxgLm@@VS%Bh7OfhxFHPk+7maeLoT%|9qrB>oOh#`7kjd(u&=EdK
      zq&PpvR)?!*_{~<fuV7Siu`4W8c6P6k`4rSH@|_BLxSqaaiLK3Gauzw{fxueEN>G!<
      zD%LnlT4#>j<5-Nn`vKNlju5|FmCsm+d_<yhjm@FHJ|LrGd>(wk!`?7DoPg&wJ-R`H
      meqf${Vu^mCK)(Yb#%SD_NEDTzYa2TOX$rEM)NVjy54FFmP4hhf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipFile$PartialInputStream.class b/libjava/classpath/lib/java/util/zip/ZipFile$PartialInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc7dcd68600c835e26fe79bc9ab40e3921860354
      GIT binary patch
      literal 5138
      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
      S`JBWjQkE}IpVC!x$^QXAi8+b@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipFile$ZipEntryEnumeration.class b/libjava/classpath/lib/java/util/zip/ZipFile$ZipEntryEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85c08376104e541c2debf564c0fade21595bac64
      GIT binary patch
      literal 1173
      zcwT*zOK;Oa5Xb+Mmz%^iA&(Zq8=8^_Bm{a(sf3~+RZ7dDC_=qCVb!{F){)~N%4gyL
      z5){D!apwCVI3UEV?a+jzJ?zfxdgeE?|6PCo^W`gm1~xQ=2<0Q=l~EtNrd5Aq4(t2o
      z@TqBuHMVW(I>&7}9tg*9O<QV+5Yk?_Wypj2v)+;DyBcDI{3&EAfv_YjF%Z%n5ptc=
      zm~B@@*iMrW-!l)S;f@_as4WQD?9BD&_0`<s<k+SuO?Qj1T3SRecL|L}U(SK5oJh-l
      zDG~@Hts{wxgm9_cjf0TYp<#)T>X=gOjt4#AJU4n4x1Q<PeZ%S+j;YqcX2d--`Q+94
      zYG+BzXIhyh9S<k8)S)rju^rL=Cn>kJpTt#M*Kmznm_MhE8z>Mo&fFERT|!c_2>^sb
      zseG0Y3VTP#8j5@j>E-4o(NmY-)Nq$uUJOZK9c3LA#fbJTTe7Bvdpd6779p``kDb0y
      zN)YrwlbRy&a$8E_v@ByZ5+e<bnFlr{A>YUX5ecpNMyC!s6?)D?;4WEV9#I|{b?<EB
      z{Nsd>K!p7yboTw73s`3Rg1r#iMCB7wmFh=i-t#Jq9M8*aK|lBx`iVIGLZ0_l{AjkT
      zfam#DF0rq(^>>tLgv%)Ktg38yYgOd~GM{mU@Yd@=Rf(xD^xLCP2tJ*Z>H*<#K*;)p
      z+k|geKS7D-ceAKaWD1q_QRyd)Dh8-xfQnX5Q2j5NN8Z~}8r=818tPt8D(L|pvghmf
      F=r5)e3q$|_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipFile.class b/libjava/classpath/lib/java/util/zip/ZipFile.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c73ebec6e4a58cd9d3a1eafa7d6e5fb2465c9040
      GIT binary patch
      literal 7716
      zcwUuQ4SbaKegFQ*UG8#uNJ2t@BLq)SOme}9B5FWd2tfmRQ(i(uE63#_Ik?<qmkR>*
      zg|_PI-0a#h6;?~zRk7krK)qn2LB&beIk&ZYYwfmfT{k<|ZfZA2U!>pP|GB$dxWj%H
      zKKDHT=l}BieSh!2Ki~TB8xsJQ$aW8=395I7c88iql96cBzQ|D1O_8Csk*Mu~OHg5!
      zqM=xSQ`h#Lb~x!lv0!fAftGk|I2np1hXo~F-L0Ls-q^ZojX>H2(=%(EL(vhth<rs*
      zYBsHDZExM!s#9cD+}gRO^F|(W#X^I&pt60E_l9I566;?sC`yEOkiWAOi8tLCiuJ_@
      zSB1m&@UVjB7LOg{ZktH_?UOj$Be7j}-}Ry4fsW7+ca?02^v6QUkpwxlo^RiZd<gA%
      zqPLRW-sLMvvp5`$58Hhd`zC=mK4ixfl3+#M`RGsrgS!5s1oE}+3EM--2-WDpyh7T~
      zZt!5fpejSFtt-1gt+vGbXwwS?bI!-hi-p9V@F9SUEiA$%6lp~y7D=uYTykC+a%bu{
      z>*0Dm+#pz3H&x2Q`x|ko2a5%@xqCa~$+hv3SYK8E3r)C;y6Cr)9fTX|r(S2))#sD+
      zp$3;LfGg<O1wbpy8eC~%8LpxmsCX@*kztZ+%-y|lAQ8VUw0+Vx=gbPq=_+>T$l!K6
      zu~DbgW8>jabaN;X(eL!6D>)FMFV4<)oV0meJB*W*P1O|*K}Wx!{UepaUDNjQ?7RYA
      zncd?<5n5Cs46UNN`pqQ}thF!;vwa+0Z($DnI=9Y31!m}|-9j14b+yw%m!7l219o^<
      z8na-=Ifhl8-iVDJY~a@16$_ixY93mxJCq!tiq1LNR=?SUErJD;I&O<b?fy`7Rib}n
      zkfEFv#0y516^ZQ*MI(KIL3*<fJ-A#s-(ukt24<ffwUc&NtaVQ$NzFQ&0ti{yjxepA
      zutR-oN21Za0(afk)%Ba*(BxCJzFW8TTNqF>ZWG5|?4*lP=Ydeb;Yrm79Aml71ogRn
      zgjSlibv1{>k$&biqo@{>2R!&KS};$r4arc_&WTucj&r?q^++VzXD7TEA%wKr0|TMq
      zfRkaG13n~F^aS=;*o%D()X)&~4IwQq<nwt`X$H%c#O)UDP%C+pac9woAzV&bR9mf1
      zGWFn7g1Uk(d{K8Ok&J|*ZLy(|BnjA|K_B+xGwO183+7K+JTJGkIr-vV3%`xeQiiA<
      z>sK$Ko31mK;omH0Ab<}K;P*ZF9AjltoDRB`h0o&)JT(~Fqjp`lu6~^t2L#K)S_(qZ
      zKwl)m(iKna4a8{99U4Q8fuTfvJ44i&3uTR~y4{ZlEj)yW=|aP{y^F89bqaMq4q5mk
      zd@=1w?RHx%Y0$PAkj3ux-5J=$y8EjZ{up0VD!U>>4wZEtJVu*lRMOhDHtPyLJgPR`
      zkFQ&JLYb60Og0R}6Uhu+mj_R0945bD`S27*Rq@A^TbmQ?&swNNl_4-q)^~d`#?;)C
      zh{yT^EolX<$tq|#Qx=;88J1qfG;ZNVyu<{om>f6J{MuF^1AA~%Fe^VJX`S?8LS>x5
      zs}@cv%93GC=*fY2pJ8{Ff4Y3y!Z%g_#awPlgmvm$7XD19Je=AP*=OtApIdlS=Vs`(
      z_~1~2o@MuCR{zq%UnvhCSJ!lH*cchKRg{pf{k4U^(UjojTI(JvK_~yt!ryD%@Hyl(
      z{giO}dlue;mtf*Mc5p?N{0|oX5&uNn)8_?O=f<4VCoRvPsn4Gxfk=#=(NMTL6bLOn
      zG8AXdkaZj-<3pOR=+HzlJ?-vY1|@ey2zk)xmRjqJ4<{qqR~3a5VLdb)(bC~^ULNha
      z+HLj;UR$+chQ6?)1M}fl;>??K&es9y7ClN5J0daWM>T?gZsO0>X>+JG#=M>grR&$y
      z^R2B2p1;*ny8mY(jx`?qTu@(Fd6@$_MD^e=E&K`}I;})&rd6z&0%K~kNPDxihzMKd
      z;@#TB^1z%a2U_CH?O`KQsko%rBkoL)pR;a>N9ao4NKzri6O5E8l-kns<a$PY3}q>0
      zxYrfh!Hgu+rQ9QB%(DHlk)|9y4h|)A<+h|kW-y^p<TlfchiUT#Wc<;`XrJrOubBT=
      zcTCO8Obd5uef6d_zxSM;YihO1r=o_KV~Jnp(u@1m#TOL_yaHk76}HXN<dgXl@W=&I
      zt~Cx*OD>cJ>in_3;hu=rpn|>QO-kY-OD>j0j2Yt#T|0g=jBIO~kUG|Dsb|Yp*YZ(S
      zc|w9}`^L$7p0ADq_%_p>rZ%B_hcb<5nK6DgkqDa3OL_7-lAC!H)e=iC&vbO1Oc`ET
      zO6PNmiD4WVV12L?xphR(Ewkh*Q#boF>E0{Xu;<StZ8}@PNmYTt$nan&86KD{Kov^i
      zT1!@HlQ5${Kh^J-k6W@z3xSrCcGE@ZY>OppOkWu4>svE2IJkH9-lXl3wRz>KEw&@d
      zt}Nk`R=Hjk-=_8RCaw7svfh$*<*YI*KaX@ysld58XNgZbq+2Q6z}~umf^#lH=cu>6
      zFeGh~yu!x1W>aieEPh)o5YE?`de$cOtj+3K1&VUUv*_ac(pEOLXGeZQ&oX9XJG@V0
      z?q&=BsmAkdh>s+~wsQxt(!yM-r}^0yi`j{mXoyx}daNpteA)fy*E3wmlw8E08y@)i
      z^Kx9GtqS`+KT31H^`<g?%6FySQ#h{Fn~Rxaqr>%?W?ao5Z#f*7bHrN?pL4Y}<GTj6
      zxPap);DWl@(%|c;7)PKtSh-*f7ahTL{b<yWy3x*Y)buV+AvlI5%`U%-!=*ib*GX+k
      zNogLhu+wlg#|wxKNRs9V@$BZ>Fjx1G*FH4hlURb=agB0wc%m80je{>Wa)=qNz_p}S
      zOWZ5*F>0oPdiXe2k*4USwtx&a*QW7Z+c1XJ4MoqRwV@#>W4P{lv^4~u$9m3p95X6W
      zkaKw$Y`9(6Mn&F7h5Zhdb3cLpt^qg8A(jPKn+B)sy9=-%NV5;*u$N$leF`_62f=|f
      zf(MD<AyRvo)DGq#2xJiij8Yr~n+qWLGAZeQBCX6KnCCi-%6Z<yYQ~=4%HA<-Jvq;F
      z=RtS~=;q&qPgM>aP2+ot_?{-GXRr{XxCF;&#^c2KEHOQ2@CF?2S-dOLcy)9uU1A#l
      z@fw{*u7<2JxPQs9i|@Xo6`mKp9SzT+tucjdjYU_?z}Y(+UFKEc-Lt>Z?F=h8EOv%-
      z_UvC-d(TYt9XJG!>j>|#EBNTCIfOY%CxspQsg7G2q1&E3W>Bm}8zt%Ft$YjLj<jn{
      z=$zo!i`42%wDtr;=OhtMP_mb)jR^$t3a;e)D!fVxuVEd#^G>`$DsQ5fO?DXHF`8&_
      z<VkB{8gJdZ=*VoF(1IuiIdc_5G)A2iam@aWYpRJ&3<%ZNLSk<{i236f>K#X-w=y|~
      z-JDyW!fh#hatwE#oHSFJQTz9pGu~q4ecu4E95Pt|cV*R{<1j^?JX6g(<#XfM->d4H
      zQGqdhy4}$nwR)eusw6NI_uD7%dsn#vvs?$hsGw>bP=9a^s3j+Zft!8ysucc^{&bM%
      zA31R7>>I(EIGn;)_&jhB<>Po%S*;(#k(1o@__AWIA2sVo3#=bp=4lwmQ@z#2)y3}U
      zwlO^OJdOveJ@=4F(K7E5yq{+E+<}8R&{Fx(928p&&k{q~XP%|zX_@DAvsz}J<>pzz
      zb0^a04lbJ!tS(F88_kvDnCSIaj^X9zDt}dVNeZv<RZ1AI-Ic=Y98XV=|CD1ZJ${2@
      zUkZOwUH&D^sxE)g+dMPqpP9n9{Z;z<PIbkXQ0A`+R#%Wm3V+M(GoHtHDaUbtrN1hL
      z@Aus8m1=Kw@mJ1TllFfVm+|=%Ca0g$vj4^8@E#W9eTL`HX!ZATJ^lwb-~-%(GjzkB
      z<2L*PcQEMgXaD~YKExw*m1jhdk|Mk)ZhTXU@k8<A9Vx-P;=>10ieHH(MeMRm*kqUU
      zUo{))8n)64rIKA-l`P@R3YjG>GF!T2j%;Oj+Ry$p#$CfwD|^{5-o=jdUiO#w^VEZE
      z9Uo!y_;pf!R_ct;zRUzeUrhUKxjc#=;GZ=~$U*!Ien@E-$piRTj$F8dZPbq#KE*^o
      z8~?_U2QN^zf9J@HcNxZS^IbxzkK@N2`6%m?_z#XsDdl5$ha-#feVG;A3*H`Zh#K^w
      zOsbiXf67t0)ZhVX(~AnJ=WUrcU(ApttYTUQDrE)3_`k`iO7^lEzsIkc#5yn~y*X+5
      zKF(-_UaVo&9y|@#v0!h<s|_wK5u)zQEY*1G2#Om|nfz3S`D_Qk-$L_t%)Cg;y<7pe
      zEJcZ22_IEZCf5)^Gv>&0%;Wb(a&1oKxHzp!H}jV^2JGeN4*39AnVJGrY1TP}GR65i
      zJPj%QY|_hoN>W-W`P!TeQ<Y}Ho`zmFE!}bauOYkD^fOL9{$LzudinlE3TI!S%`qk=
      zqdh0Y8a1e9v+`#0aHZx>>4Hl(P_9kzOHU5N+H6YW<&_L3B{8g}(y)%1EU&egqV%@E
      zst7cUPE)EeQ8|wXPmKmoo#ZYLD}Jq^e1UoA)Mg38BQ{;8pJESSmh40==O)o)YO~P&
      zXQgxao9SxSZJ1Kzj>ce0X1|Py&c&xu7p#(+l++%={6@`G!4tBOxvHWmC6_Q$Wj4O9
      ziEyHKad1o;SioeoM;uMHqk|}mCfh8!pG)qbN8Cw_`w@^&VYz%79db81<=&iX)Sa!%
      z-RVxIgubASqPC06jWZX?;<RkenzoK2mrB#QJ~M3*^;1gj3$jvD$jdq#7dsMYdw80z
      zI-0F4F0CxhZok{_dJf;!^zC;$nY)jfdtN4USIHGr$KuJn?RPunVT<3Dk}LJh<A-y%
      zU!AvIn$32%DK5^-<9D-wc(&c+tSG4!DfyToxy)PbJ!<sQVyy4{)$pfH?0mm_lr&`Z
      zxU}}V#^kzY)(%<s*=4?Q>F8}Bt&(crm~@R!BD#@?s=X=Mn1)0uj=grO4&|$~*VkyT
      zM;X13(Zi3>ryj=z@&uaXD4OLdTqjRs8|@vD<Jc|F;&V(A53`XyEGO`oyny2}&P4qZ
      zPRRs*Ag?f4pTgVn8s3vX!5Mj7yz*^h_aVnZ8M||&Hl}UGpSF9M%rw4GL>xZG*}JrG
      z6LW+nUN;WoGbSk(GhyCtlA;Hv*vY+ZlI(kohb_`ePdUS6d6OpDN$)Wn9Pi;hIUN~I
      z={)1s$~=lps1@s^yp<DH?rc`!eJg#qBYn6$<8Ue2`eaYhlO`%kd2nj}_z|`IW2X3b
      nnB0GoL%KYZKjaqk{Dj;JjrJl+A+innAEP26%#{w~2bI4DW(O@{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipInputStream.class b/libjava/classpath/lib/java/util/zip/ZipInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3865420d226224d74734ae2c55a27409296ceeb9
      GIT binary patch
      literal 6130
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/java/util/zip/ZipOutputStream.class b/libjava/classpath/lib/java/util/zip/ZipOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..616b27120a99d2f37fc30f313bbf2bf300d69661
      GIT binary patch
      literal 6670
      zcwUWH3w)H-mH(g2OuotFBZLsZkN^WB4HH7-Az}b6kFW#+SOTemwPr{@!qCY~oChzJ
      zYOB&#MBQZ-Q3|4MtdCYInV?uG>-yZf+I6eD?b?^ymu~BBTX$EtEB&84-%LUhcbEK_
      zd+xpG{?EDRdB2xGdipegSu)!~fndV6@b++BIu(i5?T&QUZH#oUO{cokspeF|33plW
      z3Z|UTvdq~M4X2#M`Fw?f@k5}N#$(A;IF?EZEGL#qL>y9OP5pc=PJ1ezSRnAUC)x#L
      zn$Cw<x^C&5+1&NFrxOi4ze{jI(-0|Uhg?PETJ5B^#ybSkDDWmDyB$Gce9M-klM)1W
      zt43X2)I?CQX^CJ&hqEP|j;3;_$~HD$c}?^Bwd)#|UDMLAuDNmT8ZzZ>(GrfP9S?06
      z5R@zDvWDeNi`Vz_>RveoW)XA->Yn4$xu3fWBe6*8azRCP_9~Hh-9S?=nBGFwm&Q9B
      z3zG$7hc|uzL0o8K0;URl)r}jcw*=t9G+p_GVAjV#Hw_O)krt*4N(Vb8fNInz<_vnM
      zdU{I{?=#be1;2%h1*3=YRseOVQNB4giV#rh5*x*^mAceMDN2;O%*H5`DYd}HXp{&>
      zHbr92nsnD@C$T=fIqGPj#M{HsmT)4Xb9d33+8SXHO&S^o=iQY0#?y53*x?PqU|>k(
      zgJFzouV^^dSx1>dlnJqk+cVuzq>%`~dz8jTTnqY&3w;#!9TBn>(G<l3ghc@Ug?8
      zZCYYsHN&@mXK^y=BvO%htRaz5Q#WC)n)=E?>a5+ojlQ5djGuGoEHvj5((E=yqfTcy
      zx;W99)~ht^Y<Id9(~k{;QSJqUsdzjXjmJ7?2CxpFRw+v@v<jx?jI$w@Om}z36Dg;o
      zA=V!6pvrkD=5Bk=P-R1JCa~RY_xhf+LqAPx`u|{S*3uEV{PR{fs@XTw1lgrvES?JH
      zkI!WGbh)g49&2*8J5i0HEjBu_m7<x?LrX+H%r$AY+2}wU{TkK7RDMSyl5(1y=B*UL
      zu*j>Hv=GmQIB(IoHov11ueI?>EDj)vv<03kA1=&nY&W8e2#(vefKY}jvN4tl5NfxL
      zsIqyhS85guZm_Xa7i1;XBiI^eXUeU9mDL|t{xpR@KU@tS5E3^Fss<%Wa7Q>9+`@{K
      z-0E}$a1%Zqz+QaG!WV~>o}4HfU&d|pTW7!DSQ{Gk-0e2@;|>O1r%A5vgu@u`Xf|b-
      zJS&ywE*pQLJQjI$N7oM6_$yq;wPbe9k9!0mHw3cPbVhJ<Iu&fsg9f#@2PZEwqhj1^
      z<B(#EN)DFo$NelA!=M=m6JbtDA--bch^kho>L=R$ct9|5I4u(G{l^3k+IUDSWS~77
      zPddg%iuN@dJ-Lgnk91MVuj5e*kDOmab|q5|1LZMeHa4&X6G^#ON21Y4QgOav<C{6-
      z=uQ#Wj@$T_7EK=`yECaPmnv(ojcd@R@!4l%1WJ6`g1nwpSE`z)G_0;uwr|@wtu72u
      zvt?_Wv&!wocWj)+UuP9w6YiqV%B!ajO?W^4Mo^**1MA9OJa6L#yqK+o4Lehbu!c12
      zo+io5nhJlbt!mQ}4e~m?V&m`BXg>N$%^1Whs`vM7j5HT>vH|an8AW`K0{Za=+wq!s
      zFy8INf=<@Z9{i(?e^RKzY#b}r4{iLj-mqA0A5Vp&jCl(`5{w&soh9i=w8KgG@e?gY
      z8W5Th0lcM|@D|>-@h|u}vBTYz$xyFii5g-P7lfwyCB2vplE$F3vzwKhp{hW?R-ktT
      zwZk=sj|J3||Eec{qmozt?~L!+_&4>RKNZhz`tdvZaB$9K?^lOE*mz%~PW@$`HtNLx
      zwDDgWY=ucT1wPc*7vnv9>W}!y!vE0y{dzRTwFjPKxk7O&zQWm=m91TD7=0I*kn~#`
      zlGWn1#itD~5bo$`h&tIG<7>~p+bqUPqxJ(S(s&!_b;g@ViWyU4F}kFf*O3xiMv6tv
      z)7>3mEw{2+9|2p~5Ij*QrsB$N86#tPAtx&<sgJPf11f4mj9oMlHl3+hE|Bq-RPZ9h
      zGT2fnRlIXdt8-5G^ApBx-R8;#qF3H4L0cxPlLDRj_lHWl(3Yuk5nn-D!^ze0gwv4M
      zkacsTK`8VoLQ<yN5;B>yC7MpM=>@1$L+){1thUR~gk~7`G4~^KGL_)*=6E{M?ktb!
      z>#BTEdzh(bF`2&g@V^f>3iS1-_tDp#8Tqy|BkPSBN4jIFJMx`p#?fXz9_1WqRI@gg
      z^Kk>_7odWF{qymhRSuX}Q5wHlFp<BLxUvt0Tm=?}YEB{8THx)&ls;S(I)&=iK7@Kv
      zOR|pStX|9xNiXJxJiV9~@;u}3#r#kyf9sDM<c0j5Vs7>s%3DOamt!ifz;rCdOf=vU
      zEXM*?*G1$Qo0Un9E7UQh_!fX>z!Gw2H9Jg;c{$e9lr76(`RX1Pu2X1gt?k2_Gc!(?
      zed-~MIE8hsW$XLUawar`>Kx}$(7XX$<tj9hGw^i~K#Ujfrs)ziM-mqyg%Hw4nYqyD
      zsL3l+gN@ikB#R3CIZa={Q{!B!m`=Nz7gT4mQMjsZ<XkT_zVcp-t}OK*aWxAY%_`3`
      zQJJ~aP1NY~#Qg%zbn^g{jL&N^9__|$qOUDi&SLT?S5fE$oXQL${jdSEv7h$8V*p%H
      z9<B(VHE;#`RN`+J*Sws^4DeO%1*!<#T{#Np_GFMSbg6&0JMEWM0{s%Zn^AiYjd^f@
      zysEssD(rCO?HoqlN>^S<sIm{cLY1YZyEzV)aD<LI%B*-`fP|8~gpvUgt{WoZ3L+?m
      z6`J(LK3qT8P>(R|9~}T|<zX$t?lE@%9Bv#8>sds)kRPQl(Kxj)sGDzUE&D<rZaGtv
      z!L5rtmsb@Wg`b=Ci>eNxgNyr$4%~-Y5_c9IxF01ox|G3R_F%HE>FmJ07-MkmHaNPR
      z!NJ^#tcd$u5r=hYj#)aYOI4-*qqs09W=!_beXw(^{t2c28!x9mbDyUvGC0PKuj)pi
      z<|H1@;PILXy?COA4D)*NWKC5DCqh-d$b`yqvJX#(cnN=Lpa;Iva&^=M{i)I);ygpU
      z5`NDiOxEdPwX+iYa>SiV^q?%{(S`gEcg~oUuJ`s}WW7(5y27VfUE$58HShPVd*$cq
      zeHFeJ;Ah3D_l3x!;wyY+V1!n9GkD1mJ|$XtlhTRgY9mWqo0h5?Em|iqJA>~Ua|JYe
      zGI&)B*=sBrvOtzgW3FUK0c#QP6a(RDR^DeAAm3(HJ<XbVhV|_%rr}xk{^u|s&$Cv&
      zfVFrL&3FkLIJV-u2=iIC4X?7myoMX_Jw6Fu$L;t&^W_aZj5qN(et;ABAx`qaaTY(~
      zsh{8#{FEF&<IdaoF@BC;@b6vx62Ig4K7NG{@oSvp<Hy3gQo^UqIQ&+Ecu!{F_c9BA
      zka>7t7VxFfh(F3Id?fsIm8(UhQwpR@JdzNv>=2*qkwUqJJ$}FV<sJ#hBT^#YWY^C~
      zsXQa2<XI_`7iF|bjCESe<)vI=kotROJU?pWNmH8GYvi~-qWO|o&Rlz4OPg%qy|dIR
      zrka*YpLDT!{sY&1Jk59h;G`<JiaSg~IjV7*ORDdy`?-)&msz1cyqTMf$olUGJzPG4
      z*B0t2H(AP**2P;)iY;=t%nH-2R*_HPt=6(1_u;3yn!(S?ev!eiT*eIE&EU7L<hdrR
      z?#D=_D~Wip2ba3*l?oTi!~HwqD*q2GlaJ-Df(*vrXYe0ASmAEEYeb!wNBtnHq^_UD
      ze-n8C{Ne0MPJ)JgrHOXeNXwP&1fF1i-iymZ<szES?pc$d?o9^JCSS7|RO({YnjP_&
      z&fi}|zsyX4RKb!77{y2&&nMYLxe)W@A}o<<_>_DCVW~!1rt`&C%@2thevr<<gHnqp
      zWG2o^9bV`7CZqRlnav2E!^oT~LAiu)xOx1YE0@W9S<2jOl||AfmrGQxke%{Lxmgy=
      z9kNUgNrN0=<mHRF9Cc%Lo@|psw|Vk`JES+9C9O@kH5+dwYVgtG&jsA08tyaAU9<nD
      z^1r@o#)oRECiDr*p@v{LCmFHTL53QkmV0eNn<*+eLrr7jg{-Bau0)xv!^KRHOQi+%
      z(u!qrHP*;yaFt{qMWL)x`A*a-rA!(z)F_j1N|l-BDEh%Rq&r2pQ%reJg-mzy9uM^w
      ze$PUWrbBH;Mz86S6}3;vIKg+Yx8AE2^wxPk#>fPXkukpWYyRMQg_mKK-N;U}oxl*;
      z$Wm%wo-$FTgj@6rwdh->=v$`f7Y;7^%KTitRbjbR-{OKys`pp;pT~#_zk%sNp>7o^
      zSipb<3|P?su=U2H#5a0c*`de`o`FBtn>#(Jg!YlbTtl&PL=lObMXE|?60D6#ZG>rS
      zTSOyH5ghucm$sXxw(Ezj%>Pum2{z9i=jS??(yoMzRBMLS9;Zw1;>-6ayU`nX2fxWb
      zWItqBK(;cFBJj&LjFit}G%M>EiD8^{W0G8pDUw93q%l{vV}b0zV%dom99PLMX5?-L
      z+AeI8>(C+BW1HN-FQGlSK|aR}y%BfGEjTKBaZJ91$K*DgkbO8Ux8ph4kC){RyefC%
      z4LQKxb2t0WL43gc6S+@{<uH53SNN58gxPzP+53Qm<e1dSgUsKrGFQJQE2T%8<zZ=&
      zud^dvE8X%KyV2uvy?jG%V*j~So{-z*xZEk<l7sRj5l)b!msCbhvTkW|?ALD}dCE<W
      zG4c>Aie~sY%9>%4V-hv0WlizW2KA;_d1;9`rdRpQ*M#<^LOh03E_KZ9P!_xSG1H+e
      jTKz88rcKQEcX(nW*NX4~(<@88=bi}g)o`&Uxy<?#@)TKO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/Accessible.class b/libjava/classpath/lib/javax/accessibility/Accessible.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe2199fd14acd53662c0a7bafabf5f0b02b138c8
      GIT binary patch
      literal 196
      zcwRg8Z`VEs1_nb0PId++Mh3a8#InQ+{lw(t)Z*gIq|BVml1hC?C@&|Koq>gsK>(yi
      zKPNFSUEe<`D>b=<kwGLqwFIHcIX|x?wE`%tsiEnE-$1BRYeojH;QZ2}<W#rJoK!{z
      heuN4=kO6Fr42%rS3?RS=bO9>^8;Hfg4kVcvH~<7<H(LMz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleAction.class b/libjava/classpath/lib/javax/accessibility/AccessibleAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..149eef171018b3306f7c98749d08958f56760bb6
      GIT binary patch
      literal 449
      zcwTLg%}&BV6ot<KLP6^fisHt&Z~+?|*RBXu(geW>F~*G<rZ>%yIwkF3@YP)S06vs)
      zh7ctUtC{bfb8b%V_s{1SfEzR`C@@^j_&Z;ETnNfCIhC>0A6{ooF?EENiK?K)aA=)g
      z%vI!#rZW<nq1yAikN&+soG{b}|N2;`Qbo56ZZ}bx=1M>DctH-TCKHlK>5Y`l2g7yV
      z!Ja{>{v>xY>h}l!tN;Aa8TK3;n2}DRD5gtV&bbO1ni1)I({8e`>0+xLFkEag^e7Xl
      zoZBx$qZPEb)vkw0KF3fp<`;(AI9a5E?qp16LEd(4x0M-81#{#g&as2Cp^Bjb9K*E@
      d-ZkuQ@IH$6&^UrUcpb;9_XG{2GMuhFXTLG*ZPx$*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class b/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2bd35220370c4b92e667b97ffb4951df19d0b2e6
      GIT binary patch
      literal 449
      zcwUu|K}*9x5QX0~X;Wjgwdz^DsRu*xs0c+V6oMWqy>F61x5NaKjmDqlN$}tg@JET0
      zG=e9=%e;BZw~x2``Stz*V2oV{9fH49Ppa}&6me1LP$$~F_><NpJTWHMVQF~Ik0qxO
      zJFp4E`jVfh^v=HtmmC>_tA5CWuotXSi)Sr};mY{Gg3OuVg;BYgr7>3oni2Y(#;xt0
      z>r|Tyf^~SbAlR2#%q}c!dT_B$7z8@y>+&Jw{8mXv!YIfhl`K@QYu_H)=3Yyeaq!O<
      z*6rq5nMXX;b<X}D>`9%C14vi-Q%kgqo@@jM{YKYXrMkOJPuywaf$s4eHeO}vU?9^K
      W1+HLYilJ=Y3c?mfO~iIX?tB9c$#19t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleBundle.class b/libjava/classpath/lib/javax/accessibility/AccessibleBundle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a99befe6fe37920751011646d72df422905fb332
      GIT binary patch
      literal 919
      zcwUW?T~E|N6o%ik+x?(c77_4UL5W%R!bZK(U`&LKR~t>laLsHP*MYG$?UcCxN)w~T
      z3x9w=%6MivU;~)!&73o5&ikB?_V=HkzW_YMdIt@{`hhqSpJI_DvMAJ8X=SGI3xCsc
      zt4#N`>>wa4*vwdqbP~TFAIQWInul^qSRDO(*)h3FC!2)!GnFdyoOAjcyM$mn+m|7l
      zxDcU(E}=J4seDy_7|Z;v;6fIYB|`6tT-m!12Ijpg2=_;`w8>?ACL5~aqZZSu6T*}J
      z+4ibPX_Ss#QMtKsHfauo%Mn^=6XtVSWM!WCLOh;!x|8ASEN-_yQw73O|D14$>$us$
      zjpLQqC=qVqHX)oyGnDT{sZEVhuNHFis}UA(h0rzG@iM|4H^ob3TVFoCzXui*tg*Do
      ze+Vz%4$oeTeg0^C&hhOrTe8u?cZ6TqX&~Y=WD9JuXo!pKMO6~!(PJBME0;WA+ZSjJ
      zzGCt7383u+Z=86wO7LRqE&2Brma)PLva@;MQ?`x&0rwnmrAnv)EruNCs>eKXSfD%j
      cfotDz=QQcCHdoh^2x~LzkIvQKby@fR0(TO#MgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleComponent.class b/libjava/classpath/lib/javax/accessibility/AccessibleComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73707b7a63c6da4cbfea70767bc1280cc084fdaa
      GIT binary patch
      literal 1188
      zcwT)}O>+`K5bcdI8^{-dm_*}OOf-uhS&e$~l%SljVu{5ex5?6l6JbVY7NY(%5B>mu
      zlx0sdgk_=Rz^ga?=DlWmhChFQ{RV&+@H&LK01ht1KzxrylAyKnTy|ypBR=-5i#6T*
      zsuij<g!uqUP8@fI>cpq#7nr00taLCv5y_X1(S6kppd3{jtP+=LT+>}`-jK*niYifF
      zQ*8~c>e}E)<#uIxf$FusvD!F?Yz!|_PQi{98_|@&g@hcUsPpx#g<B$n(2lC*C|7iw
      zSN-Pqm>QW_I=v~?B=<tsnzZkfpcADZaxJQ!1yH1{tEKtq%mt9DCHdfo^(#V!=4X8=
      zRVRSOgq(#`cJd%UXz3at=L)si(1}Q;R;Q|&7(|tu%upP_QbtP5X4wq$)^G|ZZXguD
      znYH{#_knIk7yTecqOE9_W;BbY{E0cEx3Y)IQVV_{LrK<VtZ+7KWHY|8$27d7>CPMf
      zzvmQHmbR{wzWrpx0F4!V?#l+h_0gtW;mJ{8NwnL%(2zDog>>6?Gl@8$_YzMCxX+5g
      zo*rOsXR)dKCc(ONaoaOq-k~#I2!PVTeRk*}UWWy64>E*B#)9WX&zE4CaRpWx*Pz6>
      z4rRs)Y%tz{O~x(QX1wY7Ezfs6zYTX7@4`LC`yO}U0plL*Gd_ezj0X@gR^c(@6L`w_
      Y%=;Ze%=n!Cha4U`q+j@wzUSc8Ke>W6Q2+n{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleContext.class b/libjava/classpath/lib/javax/accessibility/AccessibleContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5452cfac4d6bdb9defd186c97bfd948875d04f9d
      GIT binary patch
      literal 5243
      zcwUWIX;<4u6n(>Lz##+z1+tTcEeTD!Bq>=cY!TcT+qI2@leSdg0Yr>MZJ9v#HQo27
      zZMrAz4`|P6nsb_S`UCn4+RyFx{(zp-(>G&T8p$Hc7o;n_d*{xZH*aKq|L@n|0N@Dx
      z&<HgI_Ae=`%G!uBH%E&_bym%*#`=h4qC5@hnnBl$MyMmu#zIH(incHkpIxGJ27zuV
      z6p~Y^$XHaKiAj_4Od=Ui$jNk;Kzq~<PZ<SOTNov<3H6GGq8S+_U!nnMBG76N7E_if
      zfn9=TSWbnKkwiKYk6F?I2omVDSz%h7E2t}ms%r##1ac}ZrDcJ(nZRb7mNFEBItdvm
      zIwca?9RzNfzz%T)IVy)-<~j*<2&2$ECW>1VbCs5-(*md4k%lxT+-WQ%C1o*wo5NU0
      zDNrQr7H1MM^CzVxfw$9<xQtrPpJFJk;U*%{ut3}69Bxs~=df@Df`m!PlvhiRg{7G2
      zbsvFVn=D~6R{4@qEr)gBw4Ij9vn?-pXhMpemBRt($E+)MdK5lqzTlxnEH9e#Qb|os
      zPD;tFtuj=tk}54PD}{ASWoMPjWIQZKZH+?&wz)JW^&HJx3VW**lJWC16S5SRleWyg
      zSmiF6q<(pVDmhxPqy{{t#2sPj-A7<wwVtpsEYSni*^Wo2CSz3=A0*J{&bgj1Eo&~9
      z!y5^D8a+Xv-&57gYp<)q9NX+9ZYaf3R=Sob=qt2ftm7gH)QK#kuniX<A5Y2Y0Gwgv
      zZgD5p8434Xe15*jHj=o8q4;DX9+R=6$Kq45aLS&_7#5vvAfzv^=o;0GF}<Yaik=k}
      ziD83@gjrMKJ1i;30w5FEZp%cpRVA<Huru*pR-o87`rLg(N~e>Nv8l8yxS4QP6wXF6
      zu<6d03~HNcvm+ANGx+X{-nsu{&u+C@<p$kpKXCNkro37-s74D#G+plgvsBTFBb9Y2
      z8%dQ`R`h~_$_*z~O*Kvvs2v#05U2~`R%(V?NChDdiAI=0e||E}kcRUtej1GpMBPW!
      z=wPM^2wVulB*d_dMOBT)O3Smfz>AL^Q~I2e&nN{|sZ=C7F&0&vM88jR%)=39vSoo9
      z?sIJGz+m+e$jr<J;T$v|saQ>NOu^&~X4oX>gRlULXn0;NP-iL#obaGk=fW#H1PIQw
      z+u>hWRpvJzgedddUECnZJ^!T6l6b(J|Hk=aahSYL2brJCDYg%Xd<818DAM5&sg!r0
      zuLNI_QV=5W2#OTFMD`B&Y49}SA=>LO5z%sVEuvLqu*f6skjgF(Vb{Qr_Ue~x_=xW$
      zaPuLRm$F!SB}2`Rl%HZqkCMwd3nyxBShiRjZ`ewdS%|L$;YD}}C!9xbcfrC2SD?%K
      zD)oNPB;N?a6(;FiM9KVc8t`4jawLw_<xF6uDdREat6>FK$q3(Y{xVi@RaYo~*7@&>
      zbh)MUILLBNH55zau&;<1Kk6<l^GmkhSA_>wO(ZhMQi1G?K6Dm1>TWJcnpaqU_!d9p
      zYe5JfZG<lf4BmBoGhBm|d+uh3_n$itME7+XZ_EKbpEL6&{<1OqD8AR|W%GS=N-q`W
      z=(x%T>JlrA9~XxiyKWD*om%`I)(bsQ4-JSK5!FBdakGG15N{H2E8;c*Z$aE4;H`+e
      z1bh$T9s#rQwhMR%;#~sXjkr(1dlBy!@BzdF0v<#>EZ~EP4-0q%@eu(ZMSQ=2A3%Ie
      zz{e3kB;ZlRrv!W&@xua^5QhXDMm#Ryvrxx+JKoo^Q<q<({Mybw3Gmv3vG}=xe;-A}
      z;t5{24Bdj{&}~R(@g{Q<vOjUTi=0>oKu+OL;$u)xjzb$c1CQbJV3`Py!xMNVFauAT
      zq9b@^@9Kws2IWUfh`9uEP9WD?<T=Qh<OB{^gV(J{&b9}b#PBabhlX#0Vw-AZ)kLPD
      zm1LoVT;Q5rWuB?Y?o>V|fhA9Cm)zFoJ*_QU)}|fST9`z|+9lgs7jp3{13w`QXu)eM
      zDWS#HJ6WtFpn(qTzYZ(#6d$z!MGwn{+wxUU%d2qNB%j7;He>@cY1k&4*;8^I7xac;
      ztidwY0Bcx9%-A|S&5b={UY~{M`1N^sfsciUqdAsjj@87{gNb?BJ=`A<Ab$$OHCe+o
      z!K?5ZpXZeg<z9Eo{e^OW`^dcsZ<%rj%{0~!cMks%a#&;K@NIa<m-(+J^Idq)k6F{`
      z$$TF^@MU&*GCzcme3`pEnIFR^zRY1y=2iIAmwC*S`5Am}GLPa@_AYQ6u4Qk*mu`Mo
      z;0G-JSMas($O+Gp@i&FZJdc|h8ymFn@;Z13H?ph1YE)>hS>iH7<xs1@THu@VFnISZ
      Te8<bL1+L>=Ek3=$b-w=}N2TP1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleEditableText.class b/libjava/classpath/lib/javax/accessibility/AccessibleEditableText.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b3df93fcc46d6bba1b2f8450c3db8ff9674c96e
      GIT binary patch
      literal 532
      zcwT*x&rZWI491<Yt?VD$fDI5g#G&Ir#F^8CK$?VvL=pEawWdr}H#OcUuf~A~;Gqys
      zTHrv%A^lS4=P!2r@%i=+09SAlKuy5KQf*Z(mDXsjnVZDWtDKg93Eswr6zdb_6hK|T
      z!0|Fs=|Votm#8_~6ma&xi^~?!w@7Yxvq}k5vI0io{jXg_nMoJdlV<@#lUmF?Jf&G0
      zV=iDE&Z^<=qOg7BIC^e2`AZ6D#+V>6(QpJO?&u9y)mSU*qV>=RI~lGMrOT3!7_Gjw
      zZP`szf%UkvDe>WaL&$xdf2ZZrzHo*l#^etXAr&6cYLjWaGYQ{+TK(vk&W2x@%jMPJ
      s$+dV20qlaCMhn_rJJ9vogFUbPQU@^fx(^3l56k!n#_YuX@wW!YU-M>+ga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleExtendedComponent.class b/libjava/classpath/lib/javax/accessibility/AccessibleExtendedComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65f698c6fe7e55bf287b06e3fd45918c1b3570b8
      GIT binary patch
      literal 361
      zcwT*w!A`<J5QhH&wSY=UF!9O_O^h4Qp1{Bb6AttR+U}&;X5A%aHRaVf@BloNaT*(Y
      zlEcns|M}<3&VTwo909yw7@<Q@Me>zYD#<e5?M!N{341kbUX~YCV5eEX`H!u4>_UVK
      z!l)inHgUOHrv+!CUJ<6}QGW=+Fy|0^Z)3BKxf0>-;qkp?ZbE5X{z@3vJ`*hKxi2-B
      zzvg>UTkMMWbK|rO5S|*$|DR~xf*)-BXPNQRSSC!)Ed5+VWkW(&&ZWfHl@ucMP^Zyv
      O?g6f)L%5OJ!R-&UGi%HM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleExtendedTable.class b/libjava/classpath/lib/javax/accessibility/AccessibleExtendedTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f5c69c1f4cf47cb1f0640e4b0314af9747ca5de
      GIT binary patch
      literal 291
      zcwRg8Z`VEs1_nb0K6VBsMh5My#InQ+{lw(t)Z*gIq|BVml1hC?C@&|~wW1_7FC{f4
      zBoWAAXJBDu5CCb=&q>Tn*Y{7#N=+_dXJBJwP{wZzSUXT}dTI$mFetyAk%2|SQ`3`?
      zK^R5GIX|Z~H;<7)2u0Kr=#UCV238GEuokZ1{L-T2RJTl!$uc;ctOs%z(0z;y%s|Wv
      f^f)un59|ya3?RR7LTN4rZlDY!0}qg7V&DY;SKCi^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleExtendedText.class b/libjava/classpath/lib/javax/accessibility/AccessibleExtendedText.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a88e57ff2f91298ff84b709ed1d380bd3d428ec4
      GIT binary patch
      literal 471
      zcwTi-%}T>S82q+2jn-CMZAI|~)PvEpr$!<KN`)l#D%<31NLe<RY&5=_2Oq$P62D!8
      zmZGO&hMD<(K0e>x0pJ?OHnbRAtoSpp9UjM6mf0c`nR<054HM|q3T1*xgtfAv&0wJY
      zj^HwN?iVYJ6@&KFpLq<J&!B&s%TjTv9=ND*i{?<IKZ&BicjuA!7|dr{v`9=*=~6eZ
      zWKuFXKJ)$asVV0#$_c2MW(d4t&}*y#3CQ5+*J;)WRguY*e51w};!}k(#>rA)!Qkr0
      z|NoimF=`raHqn*i4b8=6UeG$-Ft3Uj?=nH;^zYAI>ggSN5$Nk%Z~_)|h}nj16W>|m
      cU9jkDyU_do9_$(1hk?Oig9jQZb7(T7FC2Y&fB*mh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleHyperlink.class b/libjava/classpath/lib/javax/accessibility/AccessibleHyperlink.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2704bc4708b73eb2a412d49564e01fa5db25ea43
      GIT binary patch
      literal 678
      zcwUW?%Sr<=6o&uU(b2J5t+#qd5UegN;z|^uc)>!^MWqXOX(qI(V@76DX&=j#;KB#+
      zp~N$p0YR&{NWPrp|8vfq$@|Ca8-N3Bx)@>D>GCJuuW%t`9IKWJlo?d2Sro{t!J~`<
      zrSDxh3^R$i5^&wF+_bt<7#Cv<+kanC6-I@cVeCX{WlkA#<=rNOa~As2Lk^R9xEN<B
      z)RmUky@!^JZaMiFiuF+NpvfbZ#M!1}Ix1$^t^c#|V+L2nO&%!UroLk+wWax9-&xqx
      z#tLeb*bjf!@04qad1HwAT*e|&kEw2fboH-BHB6**o2pnIVobaE!;^0R;;CxU2_uFn
      zI%^mnnVR-xpJ9^X3+-o-*9d!&ke4dyS!qaL_LFqZ7U-L4jM9^sAkv?pd4i%tA|sCO
      zy})~>#R&2=dqm&}4vsNJt9&ZLGzzd!1hbY!%vsK3!EzBxmL)7(u4G)zbZZIeu63Jf
      F;}bEhtIGfY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleHypertext.class b/libjava/classpath/lib/javax/accessibility/AccessibleHypertext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c51f9b7de5168c6de415768bab482131de082a0e
      GIT binary patch
      literal 305
      zcwRg8Z`VEs1_nb0es%^XMh5k)#InQ+{lw(t)Z*gIq|BVml1hC?C@&|~qp~2is3f(b
      zgq?wfkwE~YSU)E*FJ0e1DJwM@D9XmjpoHIu5TI^G2A=fP5}(YxZ0G#aJRp}@L(`Ly
      zfgLKy$e^R)sp&(6Q*wZ+tr4bq=B1=oFfy<Jbpws#3eGPrN=|jl%t>Wrkig;zJ&+AR
      n7X$4FVpd=<Fav$X&cML{@*O7w7ntT|-~q}oGVlUPCI&tLe56za
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleIcon.class b/libjava/classpath/lib/javax/accessibility/AccessibleIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6057d36ec03c1e75af2bee7f75d16464881543ca
      GIT binary patch
      literal 327
      zcwT)^y9&ZU5S;ZD-w3`ME32e2SX&7q3W9~8bv%!_5)w&H(O<Lh1N<oQP6UyFTkNpx
      z%+Ai^dAkD`qHZBW=pVeZcX2%-WRmcf16Ege{Fwqd7g1;-M`#$H8+f7bF1H6M6rtx!
      z^~;>dM8tel9EF6I?JT~cm5Mp^M_QHqRkiK3$XOFQDYFgl)Si&FojIYKTF)f=d;Mj3
      s6`f)sryNK^^OrL)Rt18-0#i91G>-yIU<<`JmQa3U#h_+Zb<d#o0{J6aqW}N^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleKeyBinding.class b/libjava/classpath/lib/javax/accessibility/AccessibleKeyBinding.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe9b740151b500ecb7bbc0c2a63b8730b36e6a8f
      GIT binary patch
      literal 244
      zcwRg8Z`VEs1_nb0ZgvJHMh1<n#InQ+{lw(t)Z*gIq|BVml1hC?C@&|~JGIg&GcP4G
      zFP)u%g^@u3q*^~GF)v-;KPf9UxrC8HCOx$Tn|kN`(mbFvvxcT8BZD{&MT`uh8lIXy
      z=%!jTGH?awmlh?bx@G31GBQYF)2j#4#m2}0w1WWzn1JqMWng0fxs#oN11Q4CzzGs(
      G-~s^szC)z|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleRelation.class b/libjava/classpath/lib/javax/accessibility/AccessibleRelation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..944cfb427da5cbed3cf5f12f0b882bbd4f56236f
      GIT binary patch
      literal 2740
      zcwU88TXWk)6h0ffvFyl+qc%=mAS6&)#|brUDc2ORV>t=6E!S2POaWK6l|-o`1zBzy
      zF29G@g6S~B47@VKGcVl!0|PvFIJ;J)bz;Dt(dyg%&Uen9b9U_?pM3j009=L7BQQqb
      z(w_D}dzjVQZN1wyT83%3N7<Z*OueR?nrqlr1i}O^{x>(@vpS|uAX>`h<x;b#)Cfo=
      zYLhiJYbRTG9mCprlR%6S<U%vwKz3O!=jB>cDH51mRVr#tDU}d2^SD1TAWOb<vszQC
      za!qYel5KTe&2l$2v!@F%Ng!crE!`~IPSvpwbjLj+a5ix2+X^sEV489DPW~t$OMXxs
      z_Z;f(>-#O;QMLo>>~PE+f0n>Z+qPWCHcj0b3MM(UFV5xyfpfmiP)PCB^^H=YSy2iy
      zh9$r=1SZ<MhS{mu9bMU`nmmEioX5>`%s_I2Zn98dF$nNH7KZMw)1i(r4sMlGyM);Z
      zXo1)`qt^vk#CJyM5||oHa^}le<-uxT8Y`BRt$MRqQ_2Elu_d-m`><Pd?0t+pSmRW#
      zVcC3AAS4XPsv^J*0ujbgZR8%$a}uv%bRHoPNK|t*xuQ0=HYx>Wi{%;nb@D)Sbj#f`
      ztd4z1Q=K|V<8<G`N(}P@d9i*c&q?R71l?Zi(AS;e*E!7s=7A$}O(B=7YNM&<YHPAu
      zN7h~LyeX|cz3pQB5m$3|bQkL(th7zTGF%KYlwRB<5MITeh(HOqe$p@s1S%rPfRR?w
      z^!P~8`I-o4U|awdi{&35y09rigf6^?2FGWG&c82$K<7Wen1{{;UHnLdC|$gV8RDCt
      zuC+vn!8q2cWLSEoM-^4AMXwpDWVbbQQ*#W8y~*(vZ+kQ8(>KrJW(-2GD}oLiRC`Z^
      z`&2u0UuVAdMOXv8hQjWyfyo*u{QupE8NNKi+v!TsgpUtuF?=)nl}eA$8BtOugetdm
      zdQQ`eqb}JfuB)D}ne^hw#)x)#&S*c$^uGiUtJ^)NtrrcN_u12Fxk9aA0rMKd-<u1N
      zqAi1ODcT`y6udF&jWKVWz!6&k-^U=1c#6Xb#1e<kBA(%J67hKsr||m}ho43~$KhuY
      zFL3xd#1}dI0^-XYP9x56cnR@~9KM41B@SOje4WEDBYuU$uOfb(!*3v7;qXnwZ*%w^
      z#CZ;{VrKD(0{yJ9QNZsyY#`%ZL=7D2XCd?*-0DMFQu=UPs`ufJwAF`(bhi&5O3glK
      zUoyEiKIgDN06*dLXLRxlOvA63*55FVzr#G-fDU5<3hS`#xw(xqbZ$EH4eVr=9)pqj
      z3d)bc3}ht;<MR)E{)rX;3oH3IlS&Q@!2+8_I!zBH%2N3QPyQbE4(+03ARos4G(yYu
      z5k8*KKPwO=*wkc<`IsMA`#zGM5Bl~oIA~41bv<uw#FU>3ye<C#QQXiM5MDm*kcjAT
      z5*<##d6M89rhJDf-(iZCi8^$l=Q+%>?E;+1d=17UUz{0`IVLC$2%aE;2XHvT*gR>R
      z9%=j#jyz)-XKDK5UOtzG^BJRy<Qj<NI#;W>zpXgS9$}K7c#`X0D<m>Ye$tjksII^i
      Txyh*}eANU?5mo(^*?jg73~x0o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class b/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43fb3c7b5de555c7213ad6dc15fc687aef04c009
      GIT binary patch
      literal 2893
      zcwUWG-E$LF96h&bn~yG~d^BKN`I3($n^3_|Y(Yv9jg+DUQwt(&l5M(Wo0QFlvCe=#
      z@ThP40E50VVx7Sm2q;p0bHqPD9nl%b@x^DKt>^A;lh8)Zbh^9u?(d%8`JLancXR*m
      zFXsX5g6&6(Ky*qwuf5f;WwUyzWMmA}uxI;+ypgFN(@o7biiMQU@K%8?8QyPdg?#_f
      z%#@zB1%j3rQxaG`;=C{0hS{Iy+oCnVfRvFhXm;7s1qPP|xHJFHU|=7i+6Rq-Veb?0
      zMWShe*5P7K55b2O3W5mvv2u}NU4jrgu_6ePQ_zNXft4dhK_4woXLReh#tf2nF{_zr
      z%`)WJn{2fw4VI)f$&U(=U_5fN$@qb2Iz&>BDCogDR;J~0L#D}wGz~x%xQGlR&8~=^
      z2x22P`>{!2dvj|PY{6s9bXK3Ow%2KY%C?L`en8f+O~H2TU{GGC9|j}KqoU0+l+B7N
      z=tE4PyB^4On^!?xK>|Ak{I+H>C%d%f<nq`M9>;D!c0J_U)NIMtrxiSbC+SShvb5Q3
      zafY?U8e~g0m`Y0H1r|Lo(6so}r)aWW!j_snCyRVkpv|GcS%d#c`oPksi|2Kz!+r((
      zqz-LaQ`a0D4=Wf#h}J9_Z|lw`NXqFK6&%D1WR)!zY|W4xvAa<dPRQWHvRNZCA{lL@
      z*(hG|<LJYhIqMa?D%rH_=gOMN6vC1XC=R*&)kyQkl{C@{QW&Frkp`WMHkfmyDV0q+
      zEMOO1N&;&m(dC5(@P+{VcvB#}^yPu_#Dq>UPvML_Gc<}xA<}Xps~`tmZpE1yy^xce
      zxdF9h>0HDCiIA5FlLEbw;s1=AQgBu_tliWLd3#b$(UJueX~|MKQ}T)nN0P|~<x%>K
      z!1{knAP`Cw%T`uDWXNNzr{PhxQ!d748qvp(0Y#8UBkz8WS`a`7pLwG4+QFGajH06G
      zirt11yNk~8+vvK5Ri8W2Yj|Bv1R%-lFp&;oB@SaPXB2lGx)FBr1hLM;94BTA@7+r<
      zV`>HKYrtW`0mtir(*z!Kz{4(p2QHu5&`WqBx0aXYH_l0FMohhl4HaxX691O@ZekVl
      zMCRf*q0V1HXPj@<TTriINIuP9#vbRDGdOb(zEL^!C4A289rUZtuolCqc!B_}b5-h3
      zV+F4|Yo6d!o+Kx+0S2O&;^)`IeoW&iyM6*ioaQ})8Ae%7X)%{{wKM}y5l`xO2G8)R
      zg{ybqS?qK=(^FM7$Fb~aSe@T{4IMGHZ+8WI#xAui^j%%}YpJXk7<-X@e}^0LB6Gd#
      z<lf{WRC9+h;K=IZ%0cWUg5bflD6kyMHUvFQpRWnf?lk|sx?TmVph2%7Ax|_9${hm%
      z301*?8r_hy`UBeY!#Z09s<z_s=V9!A7~{}VHXk=!{}Qe1uD`%&S-$G6r;0uDv9E%c
      zzrjX&h&3L$jJDP}SJXdzwG=%}0(?T?>je9hO3v}~d7T~qtWH_ADuOCMu1p-@bx~P<
      zNj)m>b1Yqus8Q*wqcWPPkxATe$^0&ERLN{`HuD{Ve?hprw8&RXcMn@RR`GS6%@S2Y
      zi7KIO9-(!#?lE>o+API==u$i8H9hQ6yN8V<UjJVkQ)?VLor1sPn)}T6eVr2)?bX4*
      z*S%dk&aL3$e?(q#<*<i8*n0)-t54pzi&NvhU7^X_IDO<Ay5sV7FXgBp(-p5^V(gMw
      z=)Jn|XWYk;(VDBktdZHmvVb3W{gDRviATxLO#FaC{lZ@g54f*>t?SaTM=(J5ODTA&
      PBf=ee&gqinpqBmtfah`j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleResourceBundle.class b/libjava/classpath/lib/javax/accessibility/AccessibleResourceBundle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63deb244e15efec6b9589dcb6f4eeda0cde7fae3
      GIT binary patch
      literal 481
      zcwUuIO-sW-5Ph4bji&Ldf+szAYo#=ZN59aDAOr=KUV7RjL){WLl59l(m7W9-{s4cJ
      zI7x%pg9jIO-pugco1Ojqdj9~hi**N<Kz}M9<&!U?i1J*8DpBUyKdGyPt|?E8ETYpw
      z#|b&G1vX2CUl^76fy&K1L!fn_v@%Bmjc#uw;GWS#Mv*iW3)sUnCKnC39-3$gtOQEa
      zWpN);b}PeD-U-r3CL@`tvaXx9xl_5oAo$N?_XXM$GQ(6G(uU<5-QIXyS@?<66aOll
      zQe>Fs-c+)4RnFS_%WqIBu?^k~<*_*9B^aHmUf{dOJ;B)AdBfssMQU?&8G%FCIEKfW
      lHzQ#Q%Z&UDSe>)!*EW`T`SEB~or_<3tJYgst72#7@C^iwY9Rms
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleRole.class b/libjava/classpath/lib/javax/accessibility/AccessibleRole.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d05eefb9166204346628d6d10c8c86cd4edcdac0
      GIT binary patch
      literal 4524
      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
      Guj@aXjmv`o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleSelection.class b/libjava/classpath/lib/javax/accessibility/AccessibleSelection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..254cd3fb28c4dd1ca7a87c994bcbd60aa2771fbf
      GIT binary patch
      literal 453
      zcwT*wPiq1(5XE2Ax~*;fQ=wGaTMyMs7tfwVC<uZF!GpJ$9c*N}3%jedU(G{5KtEJ*
      zk_x>9bI4=zet9#=&+p+Iz!2RC6@{0r-s{g;8$(55*OqPh6^~C9(}I{xX|ps!O`+}J
      zn02~|=j*K)3XdBq1NbD{rQ%lmgQ>!Om{EA{PY1K}1B?`Uw)n3n@0OFl2uc)clCY8v
      zI!S^ZoWGQaoIbKW1(65Cr1PL9<IClz!k>(pgHU6U?Q%nJmPx__$g6u{T|x5TRwO@p
      gfjZoeM!58Pg@)H_+<3h`X%j84ZKsmZk-dVuBk~u0*#H0l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleState.class b/libjava/classpath/lib/javax/accessibility/AccessibleState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..513cebedf088c9a36df836ade94a3a6cb6f4f24b
      GIT binary patch
      literal 2352
      zcwUW`X>3$g6vzLUr5hItr7Q&sWmC#lP}!scuhUohU^-LgO$%jzoq4nmrZZ*cO=$ra
      z6mUgw15s35Q2ZuQLjuwGNux2*FD54X#l+|*4SqBd<2mQODr#cPB=i5>|2g;GbGK<f
      z`~BL70G8wJQjAcTyWbgb1{<7I$}JSUZZG5cLk&jQ%DA@g_--jiDa`xt#HM04opBXP
      zj7ZYzG!^DY|HsH{6-wI^rfr+e3Zsog8|$d14!es2kybOZnT;~D*-9EsQ5v<v+}3Wy
      znuA7pBp!_#?RJnO0mf1@#&M$ZmUyJY4w6fS#kC^wnAKu2kF}^z(oD2jF(XM?6WffK
      zvC*{mG@EwBq={lln<{IIHycq}T)f@b(!n!R&DQo{;L5g+XwtIHs2Le9^43OK(2&CH
      z*7#N{wvqZL6CJUL5xAX}Z3U^FW+G`tc&3Whc*5Eqk0rS=#->hDb5GQY@#r#N*r0)o
      zm~EM{Bz130WxTBCuTvPgpuUqfGLlQXWw@ORcT&DL;8sAPUSlB^k<}RHPFf%*)sS(r
      zJq@;>_p&`}>pROSb&1Akl$4=?itNwRxw&b!mur-=eJ5><lkW@66&hu1uA*tXi-jTf
      z)@YQo$ETd?byEj|)O$24*j`U1yJ^pN=r*u#XpCV$LThvf`<-lhIAUsOj_}T<a+!?N
      zAC_WijOD;)9!k0dew)TP_Tx0Oo8@7|-l9>-HXUjCzFewU7@nX*V>}18QoaO&{4R|N
      zZ113aFO|!B`@A5qOQVVdd*}vvG^y|A`@Ae&Xbw6W6FHco>(u9DogTMPmv##&mll-u
      z3!LI=RC7uXZDC(7?PS>WG$yfmfDR|u?;I@3Xnh)!+09W6bOzqx;hGO>OyNL*u3%p=
      z<9h`+<EH-H&7#Is4j-c3{Ci|bqlP0#Xw!m7u&8@Arm=rNZ9<_pcZe<m+s8Dfv;7bi
      z;OC3kloRHk(3ru2hbe!+lSj?=qZ+krKTg9BxOv}81<O07F_Zn%R8Vg&?;Xx%{UGv`
      z#w?CJLsz{(vu4~ny2vuva~gFVI!7BVi|oH8cwS>R2Va!RoNU2!vpxr2(wKu1+LtJ0
      z#)^I2Za&GYSE!2SsGLqG?{Qnq3XH_7{3zye*Vi@Pz$JP?2ize}|JT!?`|bC71%BnZ
      zVm{@zcsy?PKYrMjazCn$2BII^TH0`WNkldLbVSQSEf2LK)G?vzP{)QkF4W3U$A>y0
      z)T&S?hFTr!q);b^IwjPpq1J>tE!63u&Iq+O)S02q3biiO*`dx69YO1wi+Qx}`P6V_
      z^-#O6Lv>Z%b`=ZW#bV*5!pns35WY)zrSNLuyM-Ht*9mVBZW3-5ZV_%3-Xt6qjtRF5
      zCxny2ox<CMw+rtS-YvXWxLY_ayid4Sc)xH)I4j&QoEP?m2ZRTO4+|d^zEAi8;Rl6}
      z3!fBzMEEh`Cxo9AJ|q0J@Uy~ag`XFGLHNQI+4h&|`)91BZ-cJX2D(0*=;$pvW}A*E
      zK}WJ1ORx*e(2F(bK_d>rL_b<_6kBivNt~qU3GBrgcsPv=&Y_627{o;!!z(zB%Q%I%
      zD0&6w@eVHFIxgWFxu1~pG2X+M_yAwvBYcZb@eMx5kN65d;A{MX?{EX(<0gK>Z@8gK
      z@vADqO*LMPR+Xwu)u;(-s;X9VRIQq=>eLcduNKp1wOXN8(f0;rsP(E@wW>C?QMJ>j
      zOU2brtfZ=V<-jQZixyltw2;GI#low&xNy<?c<rzK8OPUAb<uw_J5Wv|aR13cHr|x$
      P%S6wg#!|Fa?sxeQ*#qPB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class b/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68fbea360616d0a40661b9502efb5fb0fe7784cc
      GIT binary patch
      literal 2107
      zcwUW^+jA3D9LK+>X>;q+hC<UwYAGPFx!3?Ih-oWnq#6j<l+;om+$4u|ne8sK*)Y~O
      z9Ugu5Hu$E1mj|5DbOuKL0RI%8d8Yo($!QwfqM1&2bI$qwKELnpa`x|+Po4odiBAIP
      zV>ou(xNCftF{)MGXqXk#GQG7-POU6n@(hocxEDY_LqynSEW@s6u2gRGs>k4O2!jU0
      zNKqa(J=4mR>Bw=j455-)w+*l9a)z@z45o`c#LmtV$3Jb_rZ>yr(-UQe{=8G;Vfe5|
      zLkQsjhBvi!(Zd+Ro)Acxh5`5)hKr`nFE>{!++8pTFEl$<!zvrDDb{MU-&-*$AH5fG
      zR2Wj1(3g8L&L+xXlJlB|0~n*6j9M*cS=52vyeWC|AYnZz%O-A$0vyyZi9-y*s$+YG
      zX;WgOZU62zD&r#>#)a{K>?y<1o&t%SjtkG%$<uIMV~v5C^k1MHUB2qv<pTbuhLnU?
      zEpEu>oX{|ZFhjs|a&0$VPxMv`;r_OUcW|2e)i6Kjaxw}5yvuN;2Y~Q@Poq1K6+xGG
      zDabB+GMz@#qNxvhPRVmkyUws*Pjs2Kce6p9V?Y3N4AJd}bIn_~I29m=55)AIrwsIh
      z7>yx(sNo|}*?e{GiAEI?J5>nBiyDf!Bu41Y9d6T1q<8D-4q5HUl5j;3t}?{+{D0bA
      z*H98g_FLSpdn;n=hK4d0>25cgm4+%pR4){EDFY2bg(3E;01V-h({!tR-V_&aZ0F^g
      z5}r6j6Xv5&7F9~zWO@f^)rTO&^`;L1JqKxLj;yHch$PpcC7)twX&sS2vG;dry^o$l
      zk~2@79EPdZ`)Q@MeK3lsj1j_^;@u$YK6;OC<0Vrq#I~R#gafWAXo;W;5*%$iE3o)A
      zfH<L<xGO3|k!*xjEcpla5_aM{1bh!MsFsI+>qPNOnV)u%V;yn~Z{VmTALxj$k$918
      zH1%vo08`_qS~#|NuWw`g{>F<f^-)p<SY*3OF>ET)DsdedXR=M`#EC+e8TiOEfg}+a
      zUFywTW>hXAB|g1f{92dzPzM_7h@a|o^0Zt7L4j%^vn4kyy}zId__C{e!A|!kUnyr|
      zyPU87N6tx{QmE?+6>ZCT>o1%sD(czA)MNa6yuK!%Z;1VE7k{&cgY-A8reFrMivI)6
      zj_}MY{&f6%_($G<{1myRcqF{Cj{K#E7)^`gcnk9_T!^GwxV(6eZN%?yJWu;*b*;bF
      z!orrA!&DXEM|%E5ReC_9`G^Alj0yaL6ZAfVU%Q%|R|12`%GT1Sftvj>mSmG}O6u}I
      D;-s)>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleStreamable.class b/libjava/classpath/lib/javax/accessibility/AccessibleStreamable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c133956ab7cafdc6252d996adf764f117bfadc64
      GIT binary patch
      literal 284
      zcwU81yNUuq5Uf_u)%60?`v75091O+i;1C4m0?mxtwUv=^S7v8@{F;Fu;75rwr{RGe
      zbrn@b)$M+{0_dX^p+ZQueBhJfG?k*zOKr3}tM3;wGILgV$Nq~@Bea8B8O}E9ce$0+
      z5k5EKrg|sy^Ii%<C+RLGe=0sYwPMH4a#pOxsvi$Vh7Y+N5}Mxj3?~ed_m1vUqH{IQ
      r_T|g!bK+TE+Ehl`2;u9$;=N$369`p=tN0xss3Yu&(D00J6L`cAjagGq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleTable.class b/libjava/classpath/lib/javax/accessibility/AccessibleTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68263adba3510b704dcac90041d695bde8d9d67e
      GIT binary patch
      literal 1206
      zcwUWD%TB^T6um_riVsksJc_7*(r#>AyCSHO#Kc653tg2mAtj|XomS!3T=)TglyPPl
      zC~c~xi=Nz>bI*Ow_s{1S09=BSfrJ3fvG%S_RZZ6s#>T)f4R@w?xMiXzjr=l@6d+HD
      zs;OBc^<gkZx+_3ogj}E6)!tmgwghO%%KiVUSHu@b`Znb_SLHbzxbICSnllS)E{}@=
      z_M`pLwLOcZzac9<0m{K5Y}1=qoRAA#b;wCe?)BCvt{jedGj);WQiT*%AYrA5us%x+
      z3)~@Xh#UdhvAtyzBRPop4+%N0#d8JP=SoD93z-W3`%Vg{e~qy27|R*2(?cnoe?Wr_
      zB2I!9P>(1epi_^iB0wk@cx9!KNfsXs`50dWD6L+TBz;CwW`yc0VXp6UXnz-0Kn7EP
      z<(2G7Es`=9BCKrR_8cAE8YUvShGuv{JCqiHtUAz7B+obnX`s(J1Dg!DxSi$pHtaCm
      z<+ukqhI!a$c);-x3Ji-NGAwbs%<T$P8A?!Nc*N~Gw~yh3;VCp2HaWK7jNv&&l6jl_
      H6CnQryZ~QP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleTableModelChange.class b/libjava/classpath/lib/javax/accessibility/AccessibleTableModelChange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a45d84a143b46a8d53e0a3f501a4069858f188d8
      GIT binary patch
      literal 379
      zcwTkT%}xR_5C`!8u(GR*AbuS@dDV*>AAu}OLV_QG)q7bREU8<=c2!=@0}sGMsZ&xC
      zF80vLFVmTJy8iiI0l39^ga+YeE<VIpB8oy*m6|H8>@w+jX_*V&?#zqS>8mJbGQu9A
      z>uM6sP9COnSy)0iyq{#_oIpcDJ2hoxMQNXfu4TZt5ubQ^?Dz7_39NoL%2>a=2+>U1
      zeEBX3!PPZ4Xt4)sQQ5KiB*d(d@aSw)snPXY$(Q-;*73yDi$V^R=609=PqG<2<Ojn&
      tDZmAq2w4%UfqnMDj$?Lf$A@V0N3_v_`;a3ayFMQKc;X`0oNj8){s7AtQ=I?+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleText.class b/libjava/classpath/lib/javax/accessibility/AccessibleText.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d67789427ba3e80ae5f77312e29eb8eca66408c9
      GIT binary patch
      literal 668
      zcwTK%%TB{U4D?c<@6rcQ-XKolLd3bJ5Q3<L05uhyx2aoFMH?w`Y56q{d;lMX@P?%n
      ziPL1P+402o$LHHS09?RH9##aLPUMT6+cF3+O~XMLh4gAWhDF%NIptwhKwazXNUE`Y
      zKbT-Z0*da9({tRu*ApPR0;+DTQj&@uWi-VcHxU9>pYD5C`kQ+deDALB-MOCTIRP7E
      zq^=s`+@Xg!RBYL@ZnHjeMs`-}oUw6}b?&oFWI&i)##1#+1+=a1*{`_Ai8xz?9RU?1
      zcUj4vIZJ!gbx|hBozjrPSP3X`$@vZ-VB6~c_+>xoQxd8%yH&Mn#Ep%x#{3dTae}6>
      zwVci&em9sB@??Jk&h2!@UN-S8?S;TcV)q6=_A%o09LXn{(DzstHBSwfD>&2}5wL0f
      z8@A-f(<H#_Fya8MziT|#`gL9vWaEcjSc7$DdA%GcFfT6g67%vBuRxivpb9n6*RTQg
      k3>(nQuw`%)wldr{*fzMsZW{NDZr|Vm9O^THqpZjA7iun_jQ{`u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class b/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0fd35da23ecec2d15deaa9adccfc0519c07e736
      GIT binary patch
      literal 415
      zcwUWAO-sW-6r9(lAI4~F)srW0TErk86`>S_LeN7>@0;{dx5N!58>v6bli<N0;ExjD
      z#()<OUf#^?4)bRB^XvTszy%I_Xc5M1^{h6bN>eUNo#;&4mvGXkjOV<uF+WvoQtrVc
      z44psBlv#!M$(mD3@T`~!qv-c4wuLsUD}rBIRoIzX@`gY&LZ8jDk=<);w7ns;PfiyS
      zGtHOmqmA7FKDG&iNE^PZ9uqF+O1iied8)F7Dzwwhp=Td-NjQuC{}NX$&Z{EjTkRr_
      z{<fXFL>xmJ%8#`LJLn1{^w6(yt3h&&Wd@=yYYlY9Z`gSi(!xNdF9=NFVTz%!;KzhL
      LjOvK}+IjE|2w`D%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleValue.class b/libjava/classpath/lib/javax/accessibility/AccessibleValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a44fc858760e7429a5e83b9e23016e2b14305b76
      GIT binary patch
      literal 322
      zcwRg8Z`VEs1_nb0UUmj1Mh4}q#InQ+{lw(t)Z*gIq|BVml1hC?C@&{9EHS4vm7Rfw
      zkwE~YP(LRzFJ0e1DJwO(gpolqJ+;KSw5TXGuLMm8BZG*BrVm1gUukYqYLPWiOEGRO
      zq8gYwG@~Ha_-5v1=9cDS=mE<mR$!Im3eGPrN=|jl%mKLvO<E6R6&oW1BLg!72(SRX
      d$jZRR0P-q30|%Jqgz~vSG*BfskYr-u0RWp0TDbrK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/BadPaddingException.class b/libjava/classpath/lib/javax/crypto/BadPaddingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57c28489f14cb8614df6136fb6464e4d38ba417f
      GIT binary patch
      literal 539
      zcwU8&&rZTX5XQgZUrhx;6huzy!2l*UMsFwwL5&893Cevb8(b|dX^Vje@PWKY;=u>-
      z?gRKD#%UoQ)WpN?%<TT=`*!y2^W_!59*P<wgpE7#AjXF2PKLf?9E;wS==GG{KN*{H
      z=qtz85F=~{l;KHp<SKt+oJm`{!fMa!Z<dhpq^pG0k*>$}&3S`B7lc&Zu{~eden(g%
      z8Gk-Hc)$P99|?&=Wh=i%h?dG7Lagreq>d<-lF+e8NH>)&Tcbf&y4Rv>NkX>im~0@}
      zhU@uZ%)eD0VXOJyG*v>b6jFvI?7q?VUB0fCJAr8~FkK;N1L=99ADaC_33}TZxu!f-
      zfpg&xlii>Ro8YPVrwK*Gk>IFt6~O{83Z~;d$tU|9iDSGnMd~R;(!A>&fjVMnAj4U5
      r24NZ5P?TRf7pO5Au!+jf6stcKF1e=_D&%L>Tp`HvSPRVyVbA&(h-Y=1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/Cipher.class b/libjava/classpath/lib/javax/crypto/Cipher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d7b5a639138b9ed8a5e92a1108a1acedfb9c4a7
      GIT binary patch
      literal 11080
      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
      KT`l)%=kEdS$s&pX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/CipherInputStream.class b/libjava/classpath/lib/javax/crypto/CipherInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..112cdecf4d9cf8855ad6a8b4913fbe866a1d1b74
      GIT binary patch
      literal 4883
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/CipherOutputStream.class b/libjava/classpath/lib/javax/crypto/CipherOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2d61e23bf1f3aea62bc7320e7e119551957dac9
      GIT binary patch
      literal 1742
      zcwTi=U31$+6g_JzQ7qKDHBHjAE=dX$e-Tq?%7;s#4oxs9F_4UzOon!3M@iICE#pXS
      zn1OeA<c0o(K6eHjhBD=?5B*ULXV;4BFCL`5yZ7F6&z^ht#lL?&18@~vI${Fz_v{Du
      zQL)kfp%wVW6}NTZw5wsz3WLp{?b!EqXaW~xP|@{^tF9Le`UNH%DoJ448iQ40zzw(Q
      z1~&zkGS&%DKSXJ4UbZHnt@yi+fjC|<p~DoI`yYgCO~+}0*#V%9(DS-r22SCOgg7e@
      z&tz)}2)t@y0+Rws%WXOv;r+VP-m>eSBapKEhV9ktwk!A1p%xsthXRY^xDHTZ1wRY~
      zX2vrWm}q$ZArXz+M-8VHxPJ3c$0ZUviLX?99!YfG#CgmaSj6i(E=O@g3{1R%HwE-v
      zf7NZ;9_ePXJ7oiJA*&-JaBdtI6FKC`=V99o$Y&z6Q_j|8&f6xIq*N1oUU+yQPu?+c
      z0cQ=oi)%XG6F8&rJiEDHB$nIUH?fTCB=ErYLZ`YXa3$)LimBG`IgOx{wT9D52GaOI
      zcIHFQPiE9F38hgoaRVO<B;+8i*rAlK&>y{Z(Don7Mh(<>d8*@+6M>bdC$MZs7jN1c
      z<7T@w*LRM3?!op*ccvma3am;w*C+vHtW@OmiaNgv=b;`_keKYpBGyf8pvp%PwsvhP
      z`&2i6rz{6&kAZQ|AuVIm58Dlg4~{XjqjR<-=@5_ce9eTH(@aaJtz(M+1b27omHxS0
      z{uoBC@Em&KF^s1;wSA1_A4ol+Glp~gpH_jl2vg>~tzeqFg>EutFbgP)lSpW3$#OAh
      z@?A#7ZgL;vI;o1iL^jl^#f)`@I@68np-x7qLe3a{7kQ>}msY5cqAM)te#dM4QXMRG
      za7FGqD0G+NW1P31BE6me6IYM%{(2$b!AIW~{&}LvrZKO`NivtI4e%YWdxvE1(qr?Q
      z4HU4;>2`1p`+Zkmjz}&r_fv|)v15Lj^2BH_jiGy8T?Ckl2oB58qF~>v3T8JhsvtN$
      zpN*icQ8byA%xQm5ZO1SEx)s+txIGN|Bd_yQpSH=Kwn==BilW4~J_3J>wv12Y^6~t$
      zF~C2Q-!FZ@i5_qQU*O9Kcx?pu4tZ-_QzuQ!r!RG2v2Vi_exrtuRE1nOqgNpnRgl(K
      RyhKb{U(<^7^c#h<`5#woNo)WB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/CipherSpi.class b/libjava/classpath/lib/javax/crypto/CipherSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1d63cf7d106a43543381cc9cff333a03d4b6978
      GIT binary patch
      literal 2771
      zcwUWGU2_vv7=BK(&9)&xOG#<PA{2r2g9fZrY-@#53Jax;Nk1%AWSg8OOOxH5?FOm$
      zj=w=~gb~GYyz!<u;uOcv5ywB`mA^oJ&)H?OX(Ke5>^b|K_xn8OJ$dracbfoCqo|^R
      zq5YPATfdXaIqSA-r7jqDkvm!2P@yoih_zHnHw&qm<y$=GGDJrW({RTaBFUb42IYd4
      z=P^Xk97iLf411>xlTTO5%iNjOmrI;s-;|ZpOY^#8h<6`U+@i6@&@olt`v}8sZWhSY
      zgf(fHdWoSaxiqe6Jxk*Zv5R+d+;$DiTvM@+;dqS^tyJO#y)<63a;sV610D#g*w1jd
      zMs{4!r}cc^FbjbcnU|jE*Q2R8z;L8SC0n!{cf7K)!kv)L$)wCAWg293-Q}LZNL{c;
      zi{S;lsNx_)TOENox^Rf0+2LiKiftBTu}SGLx>X!u*i+q>Yr0#E<0xJxnX*BFG$yG?
      z(!udKP9RBmfz!Sn^vYK^pcoi><LE;_1>}|e5_e}Ru3d3O1!=pIzR`g=QaHsBFY0TV
      zn)t2@E3d>chy*QrR_5%y?sBnkCXPKw2n(;paaM*!#wlFGlw+c9U_>`dMnQtE<q8@w
      zO)4!{Ru~!t85%^^LQFytO9<}^k_cG9uqyyHLENOIQcD0{<?EhYyT6rdJXdiHcRfWb
      zBZ3N=Plf7=X5Q9IMxF#hB)iIRqPjtI=32$Ji84GtV{=CrGJ$XmSI|sBukv-Od>yyp
      z{YdMMUgj=$=-eDj_H2<pUn*EMDVD2Zq#g6LH9E2kgGsH9i!D%AOn62&^HzC8obdUb
      zXw~!nY{M$%7*5qK=XPVEgLY#l;jGy_S0|<{!OzXt?>kxUUZd7V%=GCXcQflc#CI9~
      zb-(XaO-)<bO0F2V4F%m2*z~)Nigy`~*7OxmdwVx}dX&uf9o?pLO6PccK-yM1c;tx*
      z9h(b+5|gSgL5!k1Z!<;>rYbtSZu5Xg3o?WQbq|Pa%vr1A<oKi^TKt}%n-2(a<p{Nb
      z2*jt2W^`H5Q>C{-8X1j^y${j!4NV#lqi2jp;6o_*2)k$&_k?KN4JZn=lf8tr5EdoL
      zR<ubh;bTqYiZHZ8pdBRf6m28CT{vc~q}fDhIWpGD@O{&;@&HSn%4XjNI={tBLydi%
      zN+i*^fny83V(1}}Xk<vG^^+fCf3IBaj7BzadPseM))4UOklIg^gt~#Dg|38pb4)0G
      z^6&kwuY&}KDKKD@-X5bFKTu*nQlLMf8$Y8Tzfhn36+`$9m+(90@C5JS59CR16@SWt
      zWW3<Lg2>tHWRuC+2+bPkyNXe~A#P{V9K)Mbj1ElU9AS;*<1Ee-79~$-Fix0CCA@$`
      zvb+<xNR|{#l7Fvw3faCacWhMJrgA>QmBojcdK}~wmHz*h@wIz0L3~ZPhG{UeO&5*y
      zF@v-m-=bVt)rUl~q0OE3vH5M-0^Sa3E)ud-gS<n}8&tW5K<_dZWe#bYEB~JZyCZYx
      z^<+Xh+@y*zIn%N1XP6T;Cf|cZNysq~ia}6tFrc7^hzS1j>6Z!7@7(j~S4+CO9D5w%
      z*nr4_eM<lH?$Skb4{`PxI@o=5v(M?W{{qA80Vdd&bhX_>ntc`GRVK(e6Ywe%@G2ef
      mN(*>(I^b28&#PgohvXHl=fP`sp>-!rVvnB1B>JvM`NDrLCUDyT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/EncryptedPrivateKeyInfo.class b/libjava/classpath/lib/javax/crypto/EncryptedPrivateKeyInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60255e20619f92f4032b4da90f472a697e4b1701
      GIT binary patch
      literal 4351
      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
      O-k}xGi$BT;fBHW_E)F^X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/ExemptionMechanism.class b/libjava/classpath/lib/javax/crypto/ExemptionMechanism.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55bf46537bf0ef9345bca9e0538833eba8241c4c
      GIT binary patch
      literal 4810
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/ExemptionMechanismException.class b/libjava/classpath/lib/javax/crypto/ExemptionMechanismException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a46deba0e6ac3e8258983ade5e017af54ba8df6
      GIT binary patch
      literal 563
      zcwUW>&q@MO6vn@!qlRgjrIoANgc>wNOT$HGQD_@WXn7qkdSkpJGh-;dMQ_qdXwd^i
      zyPl<ObY>h{6hw=A&mVs0`|jbsem=hdI7BIh7@>S8?#0x!+}YT7%;r>%#=dfNTUtY*
      zl{acmEg5!FFbI1AZF<t0xXPcI=Tb{o*qx~UW(he@x=Pqx>3Uq>T$~c<l8|jU+Vh3>
      zyTYExMB)ARt^fG&K}a4et^7J6UaoWrM#JgLG~!svAdO|hYD;N(H5v7!do6mlB;;F;
      z#Rh_HxQ?2JKU5x}+WPNSHA0~r(xxr+!0h<0(t}#18<-aY^L0XMBt1_ILepO;A>DB%
      zt|iY@@PeH`%npKK?1H!CA0U*FK$2sMs~DE}P_QlE8SWf$B#w#d9NDK3S>-#;5jcT?
      v26CKb77*5u4@LRKkwBfvfK68S=h*nE(BhePs8C!`kwTCau^F0gg)`e<0Ly^;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/ExemptionMechanismSpi.class b/libjava/classpath/lib/javax/crypto/ExemptionMechanismSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd1c33fe5852f0692ea1e4967f31ccd13add234c
      GIT binary patch
      literal 855
      zcwUWCO>fgc5PjRaaWRE9EfgppZ7L29hq|aI6a-38K@ou>xyq%djXO=Y@|V`@D&b%C
      zgv5a#z>h+VT~pE$sraxn^Y+cW8Sni3_5BBcm)N#3C$N1g&*az(^dvQjw?C#RH7bce
      zQ81FR$|65iHY|aag6D-Y9(o6ZQwoeg?X`-Pc_T3IHv0nByX2T0%;VM)7Elvd?x~nQ
      z=h1-lp&W!Hu-Z!k8TO@CMO=ZF8L3R*dGF><S_11754r3IiZ2<RFd1+ew|UeNaQ4Rm
      zm2hTbRlvQW>Ls1$agRFPX4l4jfyR|If0Ss`$xlv5Px06Ov|<i&ljg=(UyE^EuEBj=
      zTz2^nano)&oR?9MYh@<hN1C*neH)J}rN1}b_)LcCm<dx#uV&?6gWBORVP_P5ky=J%
      zNN1(QGlAWi68|PlDYpMZF-s|!A?q{TDi*@=lUxV%UKOvrG4nxpii%bPyhA8Hn?2qg
      zK5dTn*b24_FTP>%oSiv1d^&7_x3JL0ZT6NfNNn!_mW8`mW@Lpii*3C`)+(gNxpmxQ
      iY#k3u_Cq|na<@@pPbzGY8>{1Kg>GI)Io>M!YWxP{rrwJH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/IllegalBlockSizeException.class b/libjava/classpath/lib/javax/crypto/IllegalBlockSizeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9878806420b36c894b80329ea8ca2822d850f9a3
      GIT binary patch
      literal 557
      zcwUW=%Ps^#6o&sZ(=#n?FoqeIg~Ue2NOXi95!VqinN8FC(kiVe-O?AqOL!JG5(^LD
      z2|R%35T|=O7DQrE=TiC3|JSLv&zDyKE0{G=A}m~p8*yuU(cN_t+J{<8U+5hjdY6v6
      zm;1M#yiQaYm@o>~j-{7ID!H={WFRA<oudC{3H4Y;N@!O`G505jdjvWnjO>O%oQNQC
      zg-&JV<HcWl=s&#^sv9a$$tI!PUUUh@Zg?gwlrdU^g<-;2PX)4{UY*M5Se$A}X!Jsl
      z4Fub8UtAi=xrzzx-v4%5Co~7FtwrG5P7<lWUte@H>t<#>K`^gm91B0U{Dl%MCrl$x
      zc2(v-_ovlzHi~)hhWz)0SyWKvY;sq^5Fg4m<yhmJRnEk@(s{<nV~&h*v^WD>FtCj}
      uSG56zaWryKes3YL$z;Y>J4?@){Hd_dGu>RFHJ}QGtZHE@H=oXDX1)Mq+kNH$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/KeyAgreement.class b/libjava/classpath/lib/javax/crypto/KeyAgreement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52d8fc45a002acabee390271a64e504154b4e9ac
      GIT binary patch
      literal 4848
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/KeyAgreementSpi.class b/libjava/classpath/lib/javax/crypto/KeyAgreementSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95abcb69217541b40e9e827019a34092af646ed0
      GIT binary patch
      literal 952
      zcwUWC+iuf95Ix(vaS1KGg?lfgAQU5nxjY6THCzKxsW8ezD;_q^)ZWUMXtSxB&*BM*
      z2R?w0LX4d#I3Yq<vS;?_%-J*J`T6Vn4**Ya&&Gnl_L)4F7p|{|J(Id0Xm}84qL>on
      z^^^@uU_E2FkxT;jW9N)~BT#y-5@lWpEY_U1fb}x%QW=Z5w1Op+1lC$Ap~FGkA^ll)
      zA`;karM`^XQmgDd1}zh+zQAtlUmofLtCR#R_$oaLWuNPuT3+Gy$scHChFMAd*qH+g
      zlwV)?)H5ng`ZhKN_WpF!j3NqT<QZvb!m?2js7@<2lXDrVE(=a*0+o@ex0H}(0grr5
      zJQ}O!oHTeswUb8EY1+6sR-3fvg{d};!RaaKg4)AzOSv)6Xq5zYXL>H98?vr!Yzy3<
      z_IQ|j13x^7f|QS8T#zo0j5hg?34ED1x*4e7Bj24U9Z4-?GNe6*XQ^J6&?lL6)41-m
      zZQK!fJa>41>lG|M{SQ|&S8-onI?z77QQ0b0X13;0R%}(lD~jx~Ipfvjug#}t90kXv
      z2j8&#m6HXO`CH})yn}`JxXjtgh{SOfuq<4`8YAnBm6*AKEyk|m+8DDqZsf@IDb|e~
      gyEVp^*$`LaHlsV(Eim_Ty&Y5wdRzSN=l<^g2C>Zja{vGU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/KeyGenerator.class b/libjava/classpath/lib/javax/crypto/KeyGenerator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e508065d134bcf468fd532e3a0bbe68157a78de6
      GIT binary patch
      literal 4125
      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
      RXm=I3TfxbbepT7L_J1t(-x2@-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/KeyGeneratorSpi.class b/libjava/classpath/lib/javax/crypto/KeyGeneratorSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cc1464740a12a6ad5eb6fc05be351629b242434
      GIT binary patch
      literal 617
      zcwU83%T7Wu5IvQv=oLi}pD{jm;KHkMi81jVl&BHozLW{n+y^Ozz-PHKap4E}QO3C!
      zVj?EmMbFHcbEebw<MZtuzya3Mm=M@_mOa_`lo_;b<lWHVib68dMyA%*X*dE4vBL9Z
      z*!1q|&!nut)R7LgJr+n6OHTsMS=1mGDa>Rri7A0>Rflxj4eDebW!)!%d^J+if09PW
      z`G|CEOLqh|tAEW<7RXW9<c1@bSRk-oEd8|ANExzRV}m<1RCq{%>tZ7GI;6Tr+kw|<
      zlk!gdX2e-5xR*u-WQorrRUVVp;(#7x*ocC1d{y_Nuc&Qx6n4@m2<-pVSHhn3b>nyQ
      zZ=1k&vGU(3TjL}Do}(6ZjiO5(zhhzS$@XHivjhGg#A}ix{ukcUoE<WXnB9HF^a}?Q
      uaCvtbfm1j*$1F#gp@?w~a2(7do8SU+T*-6IVO&g@rBP*>S%H<L=js=7yQ8cC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/Mac.class b/libjava/classpath/lib/javax/crypto/Mac.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a1ffec07909e4c739be41a42c4ea1d9f0e94d5e
      GIT binary patch
      literal 5444
      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
      ImEIrz2d^08O#lD@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/MacSpi.class b/libjava/classpath/lib/javax/crypto/MacSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..358a03fec1f2831c4d275ab713a6451baffa6971
      GIT binary patch
      literal 1179
      zcwTK%+fvg|6kVrH8z=#Rf}&gmL`@446z@fpqA(o`I#gjso=($48>US<Y0A)F@Dr3#
      z#}{Aq1s%uX1N;sDL)|ASMS(nIU(ViZuYLLX`}+Za>sU|`Vu)|^9lmRrZlmfs#tJuc
      zRZE4!&@CT~GPjGyv;4L&J%;F<Wn11nLs(C&GboErLBtS7yM_p&3}>>IEmrH5yl`Le
      zd|5E`W*w84*STv+yXjQCl2v2q&z@2`#Sk&ej!j{GdLnzA13kx{?3$wLS&m&((aSJ#
      z6tgH3R~;``uT~w`6NOf&WZ9>o3uhQQg<T|`kDVpU=4GOzCpObWHE=HrkC<f1@JfE8
      z87dh(WvF?E1wCL@6K37DyoT{qG*ZW0wW=_Ug>um$t5kW;U0xBMaC78NCDv68G0gm*
      zk+FAp*(#jOX|<qYgkkK|EMm|KW9SIju8Eo;x>{hptQNQ@XRoK_>QsF*oykaTpxKUX
      zIYzqSiFAEyOSr@`hRe9B;!5*Gjs<AYF~HF7iVCNru!}JyF{NUXq3dWNE8Ht-xQ1z(
      zWW^$G5uK`LB=n3%CwPPWMagn7;BzXK7#MD97{$2EyRG34?owYRURygX?l0;U9cbQ9
      zIlQgoNEAi^3?aF1Ms%25ZqBK@rdYD%X?6rxI4!f4F)AE}{Mt#Q3#Y$I)+|XzGLrm?
      zwlAcF5Tk#LB(Mwx8FY}Q1wkY`NiunS6wyt(LROCtW&8sb|J;I#`p%7$Fp7eHob}~7
      z4EXXqE>J|bpB2I&hRJu4bon-lv8EjN%Z}nwvxnDYDI}9U3VyV$e8SM=J|?CPz9BI`
      zITaq>hq00L<t#nidh_SkQKKV1!dt4bN0WJnINnp;4^(3h34HWfCj<0m^HRHq`&2uM
      W38XMbNO2m+1I*Ke86NuBkNyIWqybL=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/NoSuchPaddingException.class b/libjava/classpath/lib/javax/crypto/NoSuchPaddingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..633fc1ebffc2041c086fbd8260c926793b84632b
      GIT binary patch
      literal 548
      zcwUW=zfJ-{5XQfee+EGi1r;kpG=Pa0V~Ifxg3%CSg3>R?2G$&R<o+0V1Yf{Mu(u+y
      zFxHlKzKn71AQoz2u{$%nzxlqMefxZV0dRnP3=4$9t+*3oO}8f_*V0;6+tUYEqSsSq
      zzdqLG$W@jZLzuAZgPJ3C&sOe4JC~-kh0&hZ-z*{RNLvY`BW;K4n~O67T@sQt%XC~}
      zx*cJ7GV*%=Q8<2od>}-Rl&Rb*Ayh1N2;rL5lW~NwoIo5)gj7?RvgHlC(!Lg5LlQDg
      zOJ@VYHeAmS!|p&igq`L;2C5LU#Q@X{VfMAQYx8xb)bV|@zV9j_Hk6Jd`hnjsln`%Q
      zo~_G<^3AvY_SyIQunnG#znqXq1W}GLt`@M!i~JdRPw>ehN8%VMPmz2IkQDE6j=%}R
      wI7OPX#0<g;GJz;Rb}mq5(r2UPy(!jyD%82B5h&zl)Lg;Oa##<{H-etcFAJ@DBme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/NullCipher.class b/libjava/classpath/lib/javax/crypto/NullCipher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2cb9e01273baea3e0f6d3554aa2ae331f4d0ab48
      GIT binary patch
      literal 423
      zcwTi+O-sW-5PjRmCdSxksuuC&t$Hx@oa&`02ul&71&`ZwX;-#M*e1pPEKdame}F$q
      z+)WE2*jbpJdGF2F*Z2D;fG*lLY6R^UwqUPeqLz7)g@aPczR0Is*{}#&f5<gK(CCR&
      z6gLF*&c%?x>StqaW0&A;ORxJ`E?qd-^RR=4gMD2zc%sxr9lpU12yQ#{pJ8z>q6!b^
      zJSmkZmf?fS7GliR2A3?IgmIxnI*H6SJ{2h+l(P|6k8C74K|r&F$stq1<Qvc`reaQT
      zO1G>W5x8+ys)XMOqxXNQD^r4V==))e=%>%p-qzVQEFA&<<p-SS6<iW{D>UCURKub6
      YuKs}@npzs@$Xm<N!co=ixKf_{0B0d)!2kdN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/NullCipherImpl.class b/libjava/classpath/lib/javax/crypto/NullCipherImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe9d2eff44b798e1d28ce7ec296f64c39f6c8132
      GIT binary patch
      literal 2559
      zcwUuMQBxaL6#j0qNj70C2n9uwYOSpyp~Oh7LMm-Si?bsFV-$6&wM%k=g=BZ#Y&ygl
      ze+fRRkA0{wZAUA8bjBa$c<$ZpCZw^UnaSR>=iKvs-#Pc({pa65jsX<0nm~kMX5YAH
      z92RPB$MNjKdb`nBF`Yf`>P@GSfWk0!VuK&7IwnK>nrWHdGD9>wyTzca*ma&l6iE#+
      z#2H4{OpC9#o7>#|!q{$bhVeDKW;C`8*A(x8Q}Oo97DHz31wu*;XSlUXcvbFwMm!9Y
      zS(#917}jo~>ba)1Taq%GGCcl#lwmBy*fi>O@-ZZwXV$nM{DgazhFv?Tnm=+`n$9p0
      zhBn%s)AszBlGQ~}H7#<jaf^Y`>qxj)7izMzw=2B>n}%yNxyM~9`C@j~SJ~pVwrhHw
      zLb<VPld;$AZX?+#KU=46Gc08FzNAlir_|@F3WI-cSarK8yAnO%9g;C1lg`nV`xw$M
      zLSeXb8s?V6YXi!tl6$B~MI<xiUjmY0>olqc^>vt<xFhz`F<m$X7=z{?(w9!%@Mt*H
      z?CpxK)8Qv@nIYR9#<J@g9o?$)Lz<<Hor>MI>aAOcHSTz(ZKW`WWD4)${RE0MusuWE
      zX?eV<VF6bdl7>L3*$y3QuJ<BrZ13}$SJDT#bWv1H4l6@MOy!7t+1S}>adO3NIomXD
      zQab&`bf-dTtpu(yoIi0(t9!QVRoXi{-0dl$ge3LDhkJ$|T;H4as%aUG6d1}Ha>xs7
      zMOcf(Rkho0jjx*GvoLY;3otKusV_9j5WiRGPhS~&Pmr}hD-)jFBdEWV5kZQcDO!O=
      zC|JS>S(?9z)-$v!1Tq=`d?0fG)=iGf&DUk(lphQdg*Ap(>8W6RIK++rftUy&&SElv
      zm<!5?DEIp?ZuaPpg!-rOT9A2_R)HUx>Ce=A*drl(1g~RSvcG|ues=bt4`Y2Gdm5Rc
      znbm=r=kR8bsmu2PP1}-*IX`%!@6$5Q@D|PoEqxmoXetEkI{|DJ;+O}(ekEbA_`xBt
      z7ja1rn@^xff_H}zeEkvxS<Lnk(1i#HjtD_u6!U*05q+XQNFQM|bA*v}=5GG@H;nv=
      zxo;j}{%Pikx}@aO(@He+7=>x2djjVq(6<Ep9aP+*6aSvb?^0a`=CR!)v=|C4(imTr
      zLW}s2BuAtrW+h5_8a|?^FLaS&OAx2W=)w!8zvP7k$|N}!y-$MAlHf5Z_*bZtv7fuD
      zr<LQ$SUvNL@RZ2&@l#R4WK7hM>5lLvB<X1q$v#0J&=@ypT$|J_3zuP&Sch)t53-bH
      zpFAw39F|fJODPAX2+J=;Sj*&#k$pYv{-!JvP;>co<{@tMkM+Ht=~P2THDpvnMm1m*
      v=+C!okMM+QP4I~NAEMHKfq&|$P7ArTkV^}>w6HoYtWFE6WAq6TxVQcT7b($v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/SealedObject.class b/libjava/classpath/lib/javax/crypto/SealedObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcf03fbb799d0f992844c6f7006b40ccb2dc5bee
      GIT binary patch
      literal 4493
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/SecretKey.class b/libjava/classpath/lib/javax/crypto/SecretKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64e8d59657a5c1fe339cf683b8eca6df4d1d01c1
      GIT binary patch
      literal 201
      zcwRkD!4APd6r6`DjW%2){=mt`&7DYaaA>%%&5N{YTDDu!kMSQ!_yGUoDz**|Gw<ci
      zWahm-_a}fc0v9zxKb9wX7D|@~lZlX(X0zhbMT5|-G?B=3FV?%5m2uG|^nTZzRiPtO
      z3Tw8`oOL9VE$ckW(#>K<pe4bdW@&C@YPK>d*m)c;x8e0YA$Va{XvOm=VM6e49aYh`
      Yf>5_`ECz7Vva@YpuEDcR==^s73y-!lg8%>k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/SecretKeyFactory.class b/libjava/classpath/lib/javax/crypto/SecretKeyFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e457f1c3c58895a0eee679a4f059973414db9e18
      GIT binary patch
      literal 3822
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/SecretKeyFactorySpi.class b/libjava/classpath/lib/javax/crypto/SecretKeyFactorySpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b92dad3dc8df7eb06c9e96b333fbb1b60b84d51b
      GIT binary patch
      literal 713
      zcwU8(OHTqZ5Xb+;mDLr+2fi=j2|Tz_6E7GqD8xwg0O4LrgC*-O=@tSX%ae%*KY$;~
      zI18(wVPlharqh{U=kf9R_730-hc;3SM_oSPLs#fg&jfB=3N6jO996h5fgaU+%7(?T
      z9(lPQ_dD)mt1E?JNM9*mnQMlHLb1tUm4mi)uz=+Z7LjJi)|4+F`p+$?8@%O7hRs?a
      zxYy)bMfccfnI{!89M}HKqr{Mteutn{=}XOxoH#LD7RJGDC`Df@GjhY86fOnVNtTKU
      zWa2ruLm_)c1%7B_li_3z=FT5*Pqky(PXM*#I~fzdF;ojlf7Pb_D|<W)<E#==rdCbh
      z4bA<~qf+UG;XDzaSfh<ShWziZrWMUp<J5z`7P6wEne5GJ|7irV@}PMmS{7+EXF6@V
      zU65oX7f)WX^g>Ds4xJ83;D($lSRpMlaU!`&1Pg1(l4U){ZIERPxj&X|?95npY44Bu
      F2VbUZ!ejsd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/ShortBufferException.class b/libjava/classpath/lib/javax/crypto/ShortBufferException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e8ba487328d766bd4e95b24b036ef3057b089d3
      GIT binary patch
      literal 542
      zcwU8&OH0E*6ot>#w2@d}RjYL;g7^S~xU8tyR#A$ZX!c_q+mSRWlZois-{ZoS;KIHB
      zAGhL78eFL0V(w%3?m2Vk{qyA&z&4g_j1ZP@#I3k<1ARX*vFr6>Z4T4xYpL6JfgBhW
      zM>Z_NYKFOq3{tJky?ZPpsYU1&{WnXPPNY^M^rcR?zc^_T=#((gjHASe$oL{mWyyTB
      zlgGE(1EIXDB4zdnqigFv!D_}=(!nSuD{wGQnChrVo~8Xusn5k_C<)b09I%048}5rs
      z%k)%2Sn2$`PJ=MNmSb)xqOR*1t)gyY-OpU-GuK&y-Iqxsy1Cmgl;C)AssnkXGVA(Z
      zE?e0Ymce`RXA_oCLYcG8-3Z3`P_`e(3g7H-CeEdeXG}ch$P`D1Gq4W}2bkunGK4UL
      oYA(u8Ed=(M%-HhA<}>DgDztc}oh#IaRH2YnH7w-ji}_6b3wMEc;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/interfaces/DHKey.class b/libjava/classpath/lib/javax/crypto/interfaces/DHKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d370d21de21ebef6133d8761864b0d5d3e0d9582
      GIT binary patch
      literal 175
      zcwRg8Z`VEs1_nb0PId++Mh4le#InQ+{p6y`f|7jw%)FA+qO`>1)M9-X5AW1Ub_Nzk
      z1_6)~{hY+SbbbG%tkmQZMh4FG)RKV2qQu-{Mg~<4O&=6PiVIScf!e|HsX+6BfqZL5
      u2Cm@z(xT*4x6GVWAO~!`9!MV>BLgD?GXn@P0&QbuU<0uj*nuPy0|x*;k}c@~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/interfaces/DHPrivateKey.class b/libjava/classpath/lib/javax/crypto/interfaces/DHPrivateKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57e0a02160ccbbdaeb3e4b6820820333ab748f6b
      GIT binary patch
      literal 304
      zcwTjoJx&8L5QX0?2}{CXLInj>6wqK%(~$@z5D6qiL~E?UI9j~O_C{>O5x5I21qa{^
      zoCPu21{$jQ(R^>-%;)#}2Y_R2<;V#8Gd<VO%7pqUmCE_V;a(e#YB;(IZmttwaGj$?
      z=q)Byp}kd?cQZCA$1-8}f4%`%2-^)9*;K)$TK&q3X5`>>G35|l>2JnE0-Y1q2c?fm
      z`!v->#qGVfugR-@=@43$)2%2T98Mb1N1Yzjsk39*YdM?{y4PhD44=7z3H`rE94!cO
      gOjtsOHgd^!&_P$?s(d8F8c6Qkz@}8<t?BiD0MDUOQUCw|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/interfaces/DHPublicKey.class b/libjava/classpath/lib/javax/crypto/interfaces/DHPublicKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..498a26c35ea519657e5def5a9d94202b621a1af7
      GIT binary patch
      literal 301
      zcwTjoJ5B>J5QhI*HY|iU4Ny>}fd-2ji6TUZ@DNCdNR*B>ERKv9*<Qrnhf`2+04_mE
      z#T5{fEf5XWJT%`w^UwSD>l=W5tQW`#y@`I(&&q`6F;&X?#NkdGj%sjnRgaxDXWSIX
      z39HjV<+Lx=<#@s-6__P#|Btue9ATpcBbz$d)Tm!ok&GOyb|VhaR{mx<AkZmc>8SEC
      zX`e>g)!cc>55IaJ7oUW@<aA5e+}S;EH6L`kSAAO!Wo^mffY80J>R|ZTIu`jq7WSrq
      g+)J22h7JnJwlI&b#07arhDDILT*iu2!nVD&AD=8xasU7T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/interfaces/PBEKey.class b/libjava/classpath/lib/javax/crypto/interfaces/PBEKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6871ebd2914b667b34e21acdf58b014864330034
      GIT binary patch
      literal 299
      zcwSXcyG{c!5S+~eLm-d<LZYE1X*lr<IY2rnh;$+il`%_n(aA=(50by&5BLuXBwBue
      zpP;8h>?IY&Xr<Yi-I>qdw|4-i*jH!}j%NBv&lBSpkI^NCjqD$^;gF0+=U2Q?Xc2m~
      zCMmU@Cf9c}Hc?@XaPZHWv+*3oA@ab!(B*`ED4e~?&Ioi#=%&twsBN6+vf}pl@r(NU
      z`FJJtryMi+tE0$MSJ_Bt4u%<FQ#NBA!n5=Dgw|kqn-Y|exh~_17!f+TtGwZhqGYkG
      ra-Y=UB&1vtv;~JySeLmW<s0arDaE$XMO|<kJImQaU$%tZrDpFByGBTr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/DESKeySpec.class b/libjava/classpath/lib/javax/crypto/spec/DESKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c95a112ef16d274716708adb37be277101577acb
      GIT binary patch
      literal 2243
      zcwT)}?Qc_682_F2-nJ_Ru3&lD+O53F)(r~VL~t;HQIlm0V2Wdv7`SaOv!iQgdq-BI
      zQxId~2Yi1aCMtdqV-_R61meq##Hb<q-I!<^^^2d({(<4|oZhun7H@LSea>^9^Lu{J
      z%Q-g}KA!`y6LBwG0-<s9tT`P^7t51&Ay%5S(y>GF#E?}^Q1n6*Fr-B+XXeLZM^fWf
      z+V;XD(5$p2D?L@r+U4p&=aj%QLYy3mCr=K?4-1Gvf#m~*e91QR_K2CAvfL!#6L6og
      z$^xzv2L+mr#}5q2BMGWcNR4lAI+x97?S3lSJ4OVwfkMXeBG3eZI|Epb6#^@Vvw7?A
      z)I`cE9y3!pOJLP-A#LVH%wkrq9i?ZlgQT~gI4H6F@#(ZRX=h2wixz<m|Bhxbf7Z-p
      zGmNKZ=cm_j0Bg}oIHC+HO7<h!l0fV5|0S`{4>vZ-qlOQgiNdW2BQHfJrb>1sWkq&J
      zQf1pJMRJAwm><o!OB!z#2(}N`bDyw_+5A{v$B2x-BY<TH_|b`NUUdDdMu~FCwk87D
      zju_Kw7K>&%U6^E^qm5|QO7;ydp;D1~3a3w(ESt#L(os_;<v?bfbgj%{_zzK-R6DFN
      z7v4f9lgipmhsbh_b30o)ZkcCf=I#xk4|@gHS&vScxzds1Kw)AsXH8gnJFYaWw?t)i
      z2qjF`oCGMP2vf95Q#n%cj9K=O>=>=RLw1NiQJ5;Gt^2dG#4GCw-!5aq2D)`~=$zNX
      z3m@es_MHoU4rY&Xv+N@N<?c!tw73Hhe{;=Gylwcu!m6a(@O|k^BsKX<x?RVT8i&r|
      zaUDw}^{QH<nnUOCaCkX<9EMyNTqTm8s-e+FOF8Ls^2o_+te~}=43C<nB0+Tx*;sI(
      zrJ%5-;DA$1P|<*1si9XSdPUl|DfEgu(8dFXrvbjQ2wz!*pRdEuOKWc<{z46Zp~ilp
      zfxRST_!{ur7V+B_@mJLGWvoV%gI}rPS8Dk4b^Q57{7<m@sw!rX^DdSVxX7|S&vL$i
      zEqD=!@e-cI%b3M0_zka$0A3UQcwOZ1hIkVf#armX8il}0^SZ60w4SoYRkLgZ+{ea|
      zyWVK0`x-)ZcYdWl3J)Go5NoPtXhTHy4JFxKLczA)20NoV66lIv!-meeP{#1Ri{)RS
      zIk{@nHEj7hDl_pJ+B-whPtnfiyN+nxcQd^L4-@YsgEr|QO}`mF1eW3wsbbf-bU9q4
      zw1Zvl;vLwD?%P=XN?9U57@ceRFC+IpcfWg=b_Lz?uU|nZ91UtMr+T!YK0R{@UT$gb
      z^Zgfe5#)8aeCv-;cxK-PO$0T$`YAM9qu;Hr-84x&hShkSx+fUI48nMdl+UqpPxGNT
      zhd7?WAoU46tHSE9l5?)Dly;~K9mIatv6tv;X>&IvHv`(kj_@&{jo5^HDCzXKdx@Z*
      zqb$?ayJXN;5RA5bjMbs;>)3M%x;A^kB|=opUB2~~yB<@kdM@6hkM|kV2kfL-#_=Jx
      zQtrmphO+e5`1jWMhZR@(DDi=;K0x@HymbCYwQAm5!qJwXcB-c<sP(+#q<f~nmf%0b
      zik)K|ZZLM8U&8$NaGiUUet~bex<MA-lFbeB{tnylJ!1HQ8NG>N{zvd*Lmfu3&xvD{
      z8lP&fQQnsTaa^?Buj-&P|J6ElW3wX(9Kb;*%9y$$fG+#|qZ%cTQvRacRXbOAx>;aA
      HSsnTZ+{mQ&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/DESedeKeySpec.class b/libjava/classpath/lib/javax/crypto/spec/DESedeKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d70c28fc3102435dda4806b0744b8529e2fb0211
      GIT binary patch
      literal 1230
      zcwU86O>fgc5PcgvacWX(3MrvYXxj3TI4yw|kWipNAxKdpJ`{*l5GsznEiP#s#ZJ{A
      zsQ47WfCERkaNz(Fs0dKGBk>bB@jrlBClm@u9M(HKJM-qvo0UI(d$$JQ01hh%Fbpmj
      zOU826Y_#g0lXdId%%0AdxW%V=t3)RSGJ__9vQ?utpFLMu;HIY_#L(}1U2ZlTw%2Os
      zcCr|H2xT^ZIzKy|pP4P@&oZzAL-#4C=6XiWD;w1&mxxD<LAt?P41p_C456cT&Gsf4
      zf~hN0=`w?wUp9H&vnfr%7KWjXH4C*RqiS1Jbv=$jKIK?k1;e%ox)CK*0xJl#o}yjj
      zXPb)^-neK~s+^&>=$J;eY&2|f?l@)dy6sY};(xTssgN)rio~glRJt6-PKIHM8KcgV
      z)RvoEY`R{u!jt0%la-do-DK6N&8yIm6nR4o(Nyu5x+Sk+*XDESau?AbiC_~VDt2S9
      zf;}6iP-?jzUyLAyG((rsXc#TisgsKO?`Z8=<qH3B`ErDuxjC16glxO#4I$`BYk~N3
      z>!)Uy$*B7`G(S2hj%8JBkHld%tp&QC=iaoKpPWjI392Qh*)aJT+gEpkT>AtK3{hti
      ztsnx}0R>^QyXYYVpwgm-$(G62jm>oK>6|q5l69Oi1GFo8Mq0(zSAJR_eO2Fm9wA)7
      zcCz}~VTe%)_?7@>K5X<a*cBop-r}gfivG-6+|pvt(ET3TOmAWpgCBJ*_96TR!<o4L
      z8pDzndy8GaYWGuB;40zG61qY4O$@?92HfY8Y-6u;8SQWpmQL*lsQnDtf3o^Qwm`n5
      zuMPakNIE7>N{8j=7#Dl+IpPUDDi2(nkfXunl_yZ>N|x?TJ_xdCPzyi({xzOhIrczi
      zQCW*U{r)-rVx9iDulO>NxQVT}Me^Jx+AB!l4z+QYUf+G>XwTyz3gj>0k>A#2n_OpN
      z!qWX&MsWgT*hlEwDJDynL=qjre!7)0j1l_vgh_Bll_%&cTFv^S0fIu`m+RC*zVoqP
      PuB}+GqawpWKkCpA)->n0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/DHGenParameterSpec.class b/libjava/classpath/lib/javax/crypto/spec/DHGenParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f47669432dbe92f429e4126e2790994beedbd49b
      GIT binary patch
      literal 642
      zcwUWB+e!ja6kW&h-lS$1D-8-FbRHUdE`sQ$B_$YAkK=UEBXf~)4DFkG36h|PKA?|^
      z_8FzHe28K8WzAk|ug!dXzP$t3!$u4thV72=U<`EA8+LtH?{&GUpOnwJQ!_ln=05l8
      z1jP_$$jC|EGMtuv-RyAFk0HuX3eX-m`=0QJV}T>9<x<zSr$iVMT~FA&E*?1pt1zg1
      z&~+W|_+uz~AROTzGDM1%N~ysRK6dYU5(-i(l1MWs#Zn^yh6NQd#AUUpB7rzVx+)xg
      z)wi46yD^#;sb#CKX;=-z6SALxVZSYU3_I2TT)j`SE$*LAnIsF+IpMXRW0G~Z@0t8e
      z$Q`-AO1p9$w#ctSZv-KF=m7c+A!(no#FLn#s8V-FxI#Ity<%R=kC4#{BV?Zg!V<+S
      z!W7FCFG%1LDO9mc$mW=a736@Rl51E{$weWmSFtu(qf?gOBH9bGPv7Fv0K5$Z)$zbY
      SkYRl$IrE#`oJr0HQ-v?9LV39W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/DHParameterSpec.class b/libjava/classpath/lib/javax/crypto/spec/DHParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25b8df6db1e74965b218804599c968eefb0ea12e
      GIT binary patch
      literal 947
      zcwUuL+fEZf82+Z+wy><6Tq>uk2%2^wtXyMA6a&<3v<cc<GhHUzCEISZof?VPzKs`}
      z*pP7H1Ncyce`cE!n>B=sng1}~;h)Lw-|MSC0QT^rgdD@hIsd}Hx_)xeld;?H3EzEt
      z(%=d22q}_Ns!K2!<`vA1csFoAw9bVuODHnbbhj`3K@!S~l>IsiVyfDme?%Bqz)<!y
      zp~Gd{eG>-tt`vbt_UW)kE233rD8352p*&!4tJ(1EZmr2+9L8tD1dVIK!UDs~dr8!l
      z#+(;+#rr|0C6bT46$yq#FZOxV<VmRNQPYs^u+OmR-T8j|Ch~Zs23lswS8L5_8gSLZ
      zG^SLxZlRQBk1d#(A?ZNKV}|8w?SIdu5S|vRr$vLoJdFp5FOEVrojozbt`foqndE5|
      zXwNBE`VMkx4jsvxVu8*rJfMA+s&_C53rsoNJNZk@{nE%q+D(eUCsJwRA!Scf9BeEB
      zI#aq#XUZw3br(ju5!D7o+qp#9*&brW*%@NZsSHuM^(fOcz-K~oQfm>@C$BT@=cN3x
      zpFQ@oM}8_(cTzWgLi450E=7eZIKQ#>b8J=A&7PLFQou->ei1y&AXk1&kiTV;H#41A
      NCY`@$lD9PK`3+6mq}l)g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/DHPrivateKeySpec.class b/libjava/classpath/lib/javax/crypto/spec/DHPrivateKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c717e1f20bf3b100b73d5a2f4e009470e58b4b3
      GIT binary patch
      literal 798
      zcwUuJ%T60X5UjS>56lKbj13qP;wT4u^H}8!${{2K#L9LAvU15`y%{Zo{K|Ta@LwfT
      zEF=zm03Q{lXV&6iEs8iycTY`Kb<fP*-<w+i?@`MkMR<APU;0;W5KTvF=#EDsa6cWj
      zBYEj7aU!Ot4CG)DRyEJ<`Ge4HbuUDqa>x>@1|5rF5=k|U<#QE*LPEtejJ~hV-H$Rn
      z9w-rtXpav^ysik@eL0Zo1L1Q$nfe&C(IHp|!ylr6G>SHsu}VnS8=WN(p4uoNud8(%
      zOL0}PkwczP^yEM^C;hI7&irmqFxwjjey`(4Qt#)WrOxG;@XGuDqwy83P^d42&3faZ
      zN6?IRoW2nXr^87Uh(oDcl@|@)X%EzR=rpek$CRF(zcQt7V{*Y{i_e!~b9}<P9^)40
      zb>|u@&g&W0oHsL+oVPQSe;d^X#|k?F9y6Ql*1`(fDB&wM8FgYkwonC3rTdVnbmx?*
      z^elR^ZS2fDyPP#E<NQJS*L|z30lyn-J0{Gn3C|M6rA2X=D1M$OURxCZOcd`L){B4f
      CV36qm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/DHPublicKeySpec.class b/libjava/classpath/lib/javax/crypto/spec/DHPublicKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa0d95e3f118861df2425824b0247ad9a1b4b6db
      GIT binary patch
      literal 795
      zcwUuJ%TD7!5Ufs20>R5GAv_m|xFqIbaRzbVxvRAxD^Mg392_$;gG>?}2a&%5i3o`U
      zAHYW;ddATnBCimKneMKss_vP2|9E`^u!T|<DMIPSy>}mMFYLCWrrmA{&p!B7?bHM5
      z{Sn<WuCp)*6N+XBZo{`v>o>xSvd9qTHQE+lCzMe)R`*o|@(D#pGj84J+TN4???xni
      z5pMHgi&vMB*^vzy?Gg^l$<*(ll^Vg=Z(fNU(ik@}iU~rxT&azKFl8c#VU-n3jKo>d
      zL>9w@aYr`9N$0jM!gIGC2xdD?&kbsBC{^7Djp$mo39HVRZ^kz?d=VWJX3LfTy@6s>
      z<8VR9oi#h5Cyu1*R2cBvR2C@l$Z1|fyr<OU{EsPh7aemt8hkzqllLE71&kXU3)Tz9
      zthF8{t@R%A)<zH0Pg*s@dyyRhhnXkrc8W1nk;h-mGHS(o%wZnTnd(D2Q=L;fQ?sba
      y7O>dwY;#nsA?q2_kN;X_G<d14&6v=)Cj3kk=Lf}pqIfA$JUJ-7OB63_*2*UiqK|X{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/IvParameterSpec.class b/libjava/classpath/lib/javax/crypto/spec/IvParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ad1e895b9c02c3580f2a4871fa8877516729159
      GIT binary patch
      literal 731
      zcwU83Yikoh6g`vOWV`FyM_QArjcxjXWCLCNToKx;un=lBk}rkAWIIi_-DJaL6T1IO
      zL8*xJ2l%7JJCmi-BKTqM+~+y>%>4TO;}*b6>{uu;)GzszU;ClVMrq=YM<Vot=`ojl
      zAW|Va6k9ME7FC-c^I_kA-@6oHYN5o?)Y-8JCo)R2+4O$gPbj(=+yh}KL{l;+2MncG
      z(J)G1GZY&q2hA>nd6=9D2Mmv0*qCRqs1O9Iw9t-*;%GAH3HgclV!=>uCn1l!Tt+I+
      zlV*AmjTyGu|5dZ+z`%;)dBR{cnq8ZCt1c|eIe3ca7M|Tx+sVeM7`RwNjlt$p@+?e7
      z8H3koKYWwD;2$Y1!${808CXDGEQX}KFVa9MZ#315IGto7L-8(BT2>xxysI!#r!@^a
      zMLGqwE&ZX2ZK#KPMA1G>ssOgvGFrDcaKBJczyeuE7v9j&TP%`SnKfbwWk7ohkZHL2
      z9PWy!OuDPy4VJyy&$(}?wAQ?@s2H{HSp5rL)@?^*k7@7&fq&E_-faAiq?(f`?*-QN
      m3RP^7r*zb@nG^eZ5um8JKHt%lbn;X~yR(KIn*LpPZT|s+y@=HS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/PBEKeySpec.class b/libjava/classpath/lib/javax/crypto/spec/PBEKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9e2ee820f3fb9e901f58038181c50c2010fac43
      GIT binary patch
      literal 2279
      zcwT*0OK%%h7(Lf^;z!1LI%!%b^|X{=JE5kuJX0XGNx+Sp1e{nZK}cig%9-HU)_9WE
      zAhBYDgv4uySWuA2hD9ooS}G{*s=R&x@B=^yHY`CP;Jep1w&SE#l)2x1eCM3+acBJ9
      zzc+UQoI%D72gAskv1we5<*aJiF2yQko{KHSr)POJO{N<zhF)<ZRxpbB*nD=4=WI7R
      z8IH--3eRm=rd_Q&Dldj^)8>|8o26o+v{AGfSdzi}DzBz^F>kLjc*;hla;0RgFgTVI
      z46ce%u!S9G@bB$qjDkrA*h>tZ=gp#NKh4k)UQR?Z<d7(>a37oqXz0ZtgEJh-c)@T)
      zLpOSSWF6IT41Ek;6>cvmNO59Bg9g8_j%#qkBP?Bm7aoS5lv(6+8|ztaEgIPZXXsCr
      zaz-IzSf-e(MVGy5R>(hfujEZqn51?&o{VIKo(D995n*tXp0o^?f{EAn#x+dfL54os
      zOSa|C6;6tXy>%=F_K-#uBnOQgW}A8S=L+1gTBALu!G|u&qDkoagXokus*RT42h){r
      zrc4NkEGOJJ&k$<1Lb6ccd83fF4VzD2&GE9p^ngk<wNFDhqOTeiJ<EAfr$iR`%7kvO
      za(%DJx>?bSCB0B8=DDSBijw;<i78Rm3k-wdRFgApTV^poDKe12vu<>0n8pm{F-PuH
      zmOwa?YHwDmf;+#La1lw|hl|45??#H@<bjATSow{0UbI_+nqxR68dSfulwQ>5<`*d(
      z-6-mOy=+(YY}KZjWf@f;W-;Z#3zVq+7ohG)PUTX?w9QTKL7J{m<3b$RXYi#<8&;0b
      zn4;f$nq75T2*wGjtdssb=+7aVm~ON~w6Gkh;Burkmm^&W8Z|oKi#~ex(`=2_9W)+~
      z)-Vut?O-T6Uc+#d?I0L+?qF0rLf57L32}~CfS2LI0`a^;m<9%r#V~Rh#R^W+?ob^O
      z_u&*EEun---uo5r8+68X2=7D<W6{wXqKEQU6z>M{ZW8Ym;(d*HUzfbmI^qFdVTl|#
      z6plyctQV)1mbYl9gT~NZwG6syh_#D(TZwsx#Jo#l-Xk&Z)7}SC%(*&bLrkb4Ce#oU
      zQeuQ9isquSJd8ml%c31|YApH%&VCKob?5ml_{AjXTzZqSpfGo@{r87R)lj>-kLh`h
      zFh3!#PZ6L|$7huOt(FpvDRn-YKSF2e)qqFwnBtGgk^vpWGx~W0zEdu4OBk(wK*99k
      z@k5<M?ant3b$$X*D(5*_AYg=?hdzY=OH5wwf2xLOZi$d@AbuN(?FMGI%-}Z^@3(~V
      zeGB$T1N%8Vudrv7umC{?@1R=@H;}xIi`%Rn^9REGk-UCt!3-!&hxn=}%$&MJq47KD
      zi;mX??%?bed{O6D9c0O_YL;k7HpkCY@LvevR~*G}RJPw+N^`Jr9OAQ~2$xlB1jlz}
      zdS);8U#emLmf#kl(B*BC^~-DVCsF=IFMz*E_dhK}!3I%K_N5@AZ;&EdR78Q`M~Y`b
      z@&xJ4(8j<z=~sdq-OP&t=4)XHG#CQ1-vz^&doaAX#}H~~2oS>{F&rU=;kz(+B?BW|
      H;k)!d*m{Yn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/PBEParameterSpec.class b/libjava/classpath/lib/javax/crypto/spec/PBEParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b586d236ce3a386f79e03b2e1c33a9abc58b21c
      GIT binary patch
      literal 643
      zcwU83T}uK%6g{(UZrY})+4na+s6k85MUYWsNd<-!J&oI76YH+5W8{D8p`ZwQ=m+$p
      zqC2YuNf682d*<AG&ppF_e!YJH*ut^}gJJEC-}48@4SQ`BIGwg|o%8a+IS+YDC=u3(
      zuwXJw=sw5ee$zQ?+zD4%h%*!;wj<nbC{?dNzUMUqy4|*Zi7=!jL9S%r?+0C9F|Z1Q
      z+2I~R<GRcc-;usly95f?<w~(m)&1Z`BoRZ}#uz3TVufNo0fwxN1d<v}+OROnkgiH!
      zoOW9c5nk|yC#a_yxZJDrQ0n`DG}W!_FsxVqfA%&*rYTfq$Te9Y-xgJBk#)0B)aH}5
      zpc}g4Q0guDVXaNQ4y)uhMrQ;DePo;dgP|WnS@UDCDUQ?aiuf4ibm<ML(#9(?rG;1I
      zo}+<0#VkyUM--1q-~=gDF-6Que+<)@0V1U3S%maLgYYco25TJ3x;9dJLGJNKJRXsk
      bk)Yjg7zi@VW8shC%+t_t<Imy6sB7sPo-TIz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/RC2ParameterSpec.class b/libjava/classpath/lib/javax/crypto/spec/RC2ParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c58c84102d58e9b08267900ad1f13d4e936a3ec
      GIT binary patch
      literal 1599
      zcwU85&u<$=6#m9*XE&~sxM@=$jzikUU~f!K63Q>9fh0=7)J;)SS!#PIo6XqXu=a-C
      zb*S&T00M+KZ~>)3&|Y#V5+w+b;RF&Ae+WnZ0m_@%m7S)MIPA=O&okfq=KG%i{P(90
      zfN8w0BEoQH!`L!z7fiRk={p5)lbeOBOEYg9uF>E=cUP&PBFc~y=L)vbtQD@TZE(|9
      z(Z`UJRgar3*YexJ^#!};P*!g|0>UsrxVK7`Tjk}IH?F<Oz)DnGa+;oRH2sQUx41&Q
      zG-}1GRcc^u@k_kDX!#yP#M+|e<|0GioYl1ad4_1Vl&jFT<gD{J6bvUYh!YG-HdpBf
      z!$<<h1lmy9YVws<V~xAlj5V7x43{0#uq%dZi99Su{klbsCd>b?N0C@$OE(vDl{obo
      z6MfSRswfd96;Fq%25OaTo7W6`!L79#yy-9BHu<J+IZX|x84{(+gzq>LUfps1IL2{S
      zpiL6{Y`F)q>bq96Rt(<tOaciE#F2%rBKL?ft8LHcjRdBUXXrOv*Jzv0W}87jh!)sa
      zEFDpjiuO6xs>gkX6E*HHKV}8#OUA|Mw~~-Qo0G2a_gaSS9pW9r=57d`&L{9ZrbYBp
      z0_RYm0dRyDj~%BLj<B0q3|igr>cU~_WXdhR>a<*wU$lg2BZsXyC(v-3nke+eXdQ(L
      zjpBZqtq9`u(NxHoRHR*{-v%*6Ym%~yRFBXe*Y|N;Pd&iN@8sE2v<^bd=OsjOnb217
      z1ZAg!(|8h30Wvx!y9vzE5c4g%Atzf;<&}M;dWdm(`#N#BA<-s+b6qqoL=%x<8<Du_
      z5ce~BUsU{)1=oBhy`I#*#=y@Qzdk&%k2AkY`g&6PMSFluKCOR`jFQxT#IrpD<J1~h
      zCzvY1*NMai#_%pCVUt-6NlFizbV*HjNlk~OMD!fhgydvwNUtDe0Akem<X*RBpDeZ|
      zbRswqLNhTRM_kU_KXiHf$jdXB4KM#iOax~`pSp`!bZ_c6upjWkWr3Cd7DciD4mJM=
      zV#=OKI{D6yh?V(!q!<;_v-$L_ENv@HD%aV4__ugSfc4@XfvfahrIVMy2PEf*G)o^5
      z!H-GAPv}LT;ygLEfX}f+@fCb=KvbhEs)3jB3eg|JRlF)iogtr#p{R3RQQxOr%t%IX
      znF}5=s$95-p_E9*X5X3Hj<B($w)^m(RFB>$DF=K>YJEkz?cg|eskVc&_~yXiWkNbJ
      T$}dQd2QeZ^h{2neXs`VT3Y{QO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/RC5ParameterSpec.class b/libjava/classpath/lib/javax/crypto/spec/RC5ParameterSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6acc9437818e16809d9533e2c7f3ebfce111fdd9
      GIT binary patch
      literal 1956
      zcwU86-%}e^6#i~Dzeu)1p(&*hg%(?~U{k?jDHH{4O*9oHojBTYh9zv1tx1+{Hngeo
      z#)Hp3cSdx^_CXxmQAAsZ*6H|TeDMG9#W!EobMCH*jhS&6_MUU*p7VX@JLl$?Kkw}U
      zcor8z@Ch8bqOa@MlX<(o=2*$<nvqW~Eu4B?xAn5&7<QHdA@~Kl_+GN4R|?6+l`BTx
      z2_YzukkP7<ui2(kchl!e1&h35`LQAbK69Num*xe6wpFXFRs}>_Ahd4SRnw{ngs)ll
      zYSz4A(2W_hVmh;AjHJ`)L{7lJV67SvDA=!JAG!sUkwmTo0tZw?5n=0~iVoL0q(VhR
      zpfh7ujMr-A6~n%$uau~8cgD)=rJQb??0Z4KQ#6UqaOVHDm?oM`>C${67a^pln9ZO-
      zhZ{`0(IXsvB7|X2Ustzusbm!N(wtqWm5qvX?t0!>bExwOj$(fp#|6}MZqTu;!D`X6
      z9S$eBkR}it$u#R^9owuFrrq|(RD=+Y-~>*FkbG=T*?QG6$|{X|oCxZ+t=IF`T3tZ<
      zcQtpK)9E%LDZFA`zD!M<>lvd`aEbzfg5jijA|nYNW(T=T-aKh0G|>n}a{ml9O3s_j
      zxf)k%da2sdkcXFeo3)!&aSD@cy{O`OoMvlY#guEkq~Z)t)8<$_%m0*My1Zt>B+5m-
      zTI8)Es(E=tvR2K`8|O_PdaQM{C%77h2t=X(0Q~T=wDeYdyjSv!dZ#K+)}Q7~-%j#M
      z6!+74K-)!^*1v-uZD0p6Exv=^yE3bfz6Yr?ut+!Gp!_Au&Y}kwahRf-n~#1B0McSS
      zAuVR$lNMtu5;^W6>j=uKQLTR<-se|#@njRwP1EUIks!~xR~sPF21v9467@jXVhQ{b
      zZqS4Kl`4ejOflRph63@faH%*Mj0J8YdLKvM+Qrik`uuybz-lb`3HEWQ``9i<9%!-P
      zci|n3_W5H0?JJBbvEVm&rpfgfF#xVob(@f?)T~1+YdDT;w8eE=f*W`l@5w$=E{8@R
      zsYV~EMjxq0A1SX7wk9YRp!!p!MTDdiyl`G`NjkZPq<5!5EGUB?NMO~y-~kKX(KgAk
      z?Uv*Z+a^!7P3~z;zS%bUOxxt%*5q4llczD`CI3MRu`(Ol=q&{N+oKO5zQ)-LEWy~P
      znCA0GgvNeCK-p$zZ*1=)ww2l2wCxm#PmIMUWN1?nae3wAzkXvC+*&VeVTjvuy}2!V
      z8pPA}7Pc5uX_B6#RRcbwfo&7L&(Vu7FpN7miMuqYFENK5ERem3Z}AT9;a%Lv`(!s?
      z&_-h^HgFE-Wt$aRoG>Ab)2m5&FDTv6Z<BmplX2$EOqZG9@{HShTseCio&D?#Of1iA
      z`ow_O<L~`V-iJwU;33ufo?iJQ;_w6Uenh-~mfQwi1dm%M{kp#*7xobSrR2g2yeg|@
      F{sx!)Oj-Z{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/crypto/spec/SecretKeySpec.class b/libjava/classpath/lib/javax/crypto/spec/SecretKeySpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a68b9352d93bb6e11c62d6fdc9a96b3e7cc90c3c
      GIT binary patch
      literal 1600
      zcwU86O>Y}j6g|%~juUqvX-FHAdT>qou*YfLkn)){kfup7aY4c*NJK(RrjulfGZV&R
      z6mN=Dx<Eh$Vu6H2Rdv-(79i0CAr!%up8+fW1m(Qv(WDNRSa{xjckaiz=iKoh|NOEK
      zU=puqkP^sWvp=@CD^A$nih@dW%XKPs*9qNd$!*tp%Rm<xl0lV*?XOqfTD|5vQ3ibi
      z<I3A~omS{Y?M`lz)h}?ot8`M8<(h8j*^Om4Y<hwJPW7UIcthZk`M_^RwjV9qjh35U
      zxpZXh&$ISr0qsMXm0GzVFkm;<1Gd}P6d0}@z^X@~=dVu-^v!s_7tIQc7FRC(H=wjE
      zpw9<a-7E;uz%WJy#u!?y_6{DbdA|E*Yjf2Nuh^>%SGEltg10#W@3B*lHoT@lq4qy?
      zPG_OPlzpGzT*cDz0CAi&@F)hQ^`wCz9L?e>Jd?rGUBuVh&B)y}@GOdwhA_0-POwE@
      ztYYo3Jk!-4uBseI3)a@ic9mAc^#zP|H<~-3bfj47MQWB&3%*0zu5#33Nhv|!Vi0cH
      zQ9qtzxwq%uCHwA2ExSP?j`aXldQX!6f`K!rNb4m76F8m4E11b(x_emF*}xRe5pB?|
      zbzF`}0<{>z6X@Ttn;TMB#cEX+y=Y(#1gbmAovjD0&~X<%rD2ySXJl;@2uVW<X=Heg
      zV*nE55q>Kv82nKpWm6!Y8NM6FV|<SAR%4dNGi#N#^8Umgj{T@&AD2F!K%MojV2swu
      zP9!^=0F)&w3uVdLDOGtiuKWorr+J#z9&(oXYyW-Ztug&R3gw*j6Y`q*Gfo{eJFbG?
      zhmH>j-DbH}<lv~r=Q@Rw#%9vkL<yFHX`)O^Q<emy^F2k1!Blw4_%u5gen^`3DQBRX
      z7@dH)iI7_NNX{QlZud++n{+-MCu_r#hf_a&C{;^RxjAv_9=$rxrSk6(-(jKr8^kW2
      zzbs+wPwd}8THDcP?_oqb%&7@;O1W-o!c-x5AN(!H?WDc9i<ft_odkkK(SXmm4xf|D
      zF9_vJ0=Pwyzanp6bNpLe#cxo>w+g1!fs$yjg!7ms&_PDM%4dqan|MuWAmsigYoIGt
      zCbb#u{5_1HkkE2dNAci#u5WuNe|`JL%*~X@#fbls?+d$_zi|Myvl`#?cAIeT5WsEz
      dncRJ7CnsZADQdMq2>f<%N`a9(xv1V;`WIxPC{O?Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/IIOException.class b/libjava/classpath/lib/javax/imageio/IIOException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d71f8c283a0b512a41af36f1181cf3fa846732b1
      GIT binary patch
      literal 598
      zcwTjoO;5r=5Qg97qm^1gMEr^ey<sIb-ZU64hzUufi4Z(5bpvalHEmJ;mKRMt_yhb=
      z#@U4kiO|D#X5M$6nceT7&o2Py*f)`4IC$bOeB#Ox?+Y2at=3(0;)~}*hJlF;LrLkb
      zQsx4KaU}zp)EUYZPaB3j=)3JCl0m<A(q+gr!bf2tjhu}v42FUy193YZ^+eR+y`f;(
      z@<N{vyF8LApA|F7K*kJ*-s-h#4CYA0F)0f2Z#;vuWT}NpXAp(2Y8-89ffzPQ*k;J7
      zJ2m(?CT_K|ykTjTA?r`u$}4oM9gZVk+(>oD;^J-2R0ED_jWpDkqKF=hPLr}a<th3b
      z&glo%-n4GfY3b?(IWMtJ(azKb8ylKpAddnu6l-(Fx+jmCVQZFCeMj+OPRwhqLH=tZ
      XHZ}EV>i?tKGpdTpdM3lJChYwJ9>s%=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/IIOImage.class b/libjava/classpath/lib/javax/imageio/IIOImage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5dea6c5fb0da3ddbfe29bf88fbb88bce580c4d09
      GIT binary patch
      literal 2986
      zcwVhmOK%%h6#j1fitTY465_;d+SsAAj+54ew!9M3Hl+oF+ms}Y1QJN&c;ZZDk1NkO
      zO$uw)EZDJ!O&1^$RV@;*Y9*Ge;Rk?#9{{3o&YiJ69@~vUD3a%9?)e_~Jg)uy;|JdW
      zn8%F}1_a_a)g5&=t5?*LrdPAM+)9p@A@~J`c`sX5jZ$`{a8ui~1OhTp;8<Snskbc~
      znqAe5qE^$261^ZWSkWxCs9LJP@qD{RV~54AI%`4%YpQ8!HG%OCZn;4r5o^0%DHy6=
      zHp!hGR=4zWHm{o&?T6R&lA&7l8abTzY%k7wX_xC;TP@2=Y++G1bZbfATDpe^uVz0-
      zo7oVk_DOiK%YGI8m#RfA0w11Ma0p`pzVysS2;&0Nt+M9IWv!%^FV;%+ie^}scQ>_L
      zmR>amk)YPF3zDp;dr6~eB@0^8sF%wT#Bqc<Ck4iwV@a|#tEL+z5)XqKL_ru4UL_So
      zq3~*2K?s8ahw{3iU872BwRN>nreclctD9<hL#^rjzw^>>ZR=F$3D1ceElTx@x5M^s
      zHJ~>-)7{pe|Fw)e|Bm<ns^%bODc3T{TMf?ZDFp!p1)?R*YM=y8q-XkJr$HhZRb$;X
      zThuGLD9+$q2xkR`+E1n61<X@<O#Kd}I!x$QXL1vcWVhL6m9}J2XLJeoTq6phn#KfD
      z>0Ae-J*Dh=Nx^wspi>Z-d$fUZ-DC?PEDKCNiHa{fGP5fnasn~85z5d=!@K+bIn(j-
      z;0~Y+ZmVV^gOvDpsgS0-kSEjq)REgWY_@7~xYv!tfx~7;F;WM#Hp60OdlE*|-W+h$
      zS?}9}lfbaZTD4x=)UN0}z_G@ZpJpUd)a5?<*7DOIwYpr<RU)5s&B!NRG87e~^#F$G
      zN%stfX>GrG3M2IVgjoFaoX*_C=<FlJzDE3=k%@aa{B34-A4fBD`<Tj{+DGb3it^zZ
      z`aDKT!25(#NwGjYMT|qkB(}&`3CC$SW3%E}oB-sCT?x5jUjuT*j(s>uYo)n2M0@Ns
      z-E=zh1gDvX)4ASGO~UPv(rx0|Bd2%B=?CQW!yZmKpZz;MjVyh#Lw@pJAoCScUr6h0
      z!Y2DjirL_RBPQ@1{p_&8=N<4Efu|lJ<og^7FYn`dfx8~Ek6mPAO|lp9QWqyjy-q&u
      z>f~j-(gi%{1%K8RynsaqyiC!Yu_5+;<UU><z<0RlWqBZ3;&x;+^Fz3V*QEGmTxnMS
      z^$t^0Ub=@}O}&AfW9pm(j&eF4BH+L4^Jer17e%y5@h0AKD3+Xa1-aK`huP?eeETEG
      z{^UASuz9AS>>QTQ<Eq2;9(58&B|P&cxQlt{TJ&)u27aa%{e{x=D@O4fCh)sUD$$fm
      zI3q?s*09o3$~7>ei_{+^^(RUFMN*GR>hB&>_KXNz$J@<HtxC!3?o3U!W>IEJL=X_s
      U9+|T5tJaJK<&3e)n&e;q2W?V<Q~&?~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/IIOParam.class b/libjava/classpath/lib/javax/imageio/IIOParam.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3964639b694aeeb4635ab1565b7873b89efc02d2
      GIT binary patch
      literal 4094
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/IIOParamController.class b/libjava/classpath/lib/javax/imageio/IIOParamController.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc138b675079e39ad06f4903522a226ccb622aa6
      GIT binary patch
      literal 180
      zcwRg8Z`VEs1_nb0PId++Mh1nf#InQ+{mk6N^wi9JeNRvSfW)H2T<83}lA`>aoYW$A
      z1{OvJ0gx*FoW#6zegCAa)Z`LI29Ct!lFYKil2k?pX$>FjrdVr6F*0xk=a&{Gr@Ce4
      k0F{bkTA&Bg%f`sS$iU110*pZWSQ*$rECzNU$;7|`08kh&*Z=?k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$1.class b/libjava/classpath/lib/javax/imageio/ImageIO$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aecb7d8db73e5c89ba30e6240d4b132251fbf62b
      GIT binary patch
      literal 1187
      zcwU85T~8B16g@*fmX_7l0s?-ZXpy!k1?0h4LShJ-CY2_F7=4>AlQLwPZDzNGALWB4
      z3Q-gF$p>D1@%I?-Y&THL8nc<qoqO*&_uezJr@udc1+at_3quSO`}~j}RpkM13+Yws
      zX0JDkOBRw0c@wO<T(zss*1m883u%Tz=<Np5t=0pfdEjY=+#z?1en*~r#u^v%Y7FUB
      zsbsK5l}m96<sF9Py0<GbV7O$%!f+M|<ZNV+XGoMxLarf|*z6v(gx=;YS5Qw4&*AP4
      z*V3FLXENB6KEqVwA2U)n)*kma#ZeG4zZpRalQzb2mB1==&y>n>@NLbN?@*h%W<WP=
      zOyMTY9A)=wR<m%6q4+lmDK$v6)sb0DW5&iETw|DYwBSKsysrF!D~IMvYjNNm3JbFg
      zbLZt=D!<$5csdZf&5n^%dTQgy5glV>QA93FnwCtf#Gl>ry4n#>rBTX`G+8ig=BSj=
      z>n`_wK>}vBWLxo|t10u@#ra~carHl%t&#M(4du9=FID@w2==^P3yTcnu~%hd84npo
      z+aefXqV5`{xMD8^H-+Ltue78#Yvs7-heeVoK`RB8FPPUy|4NEh21dLQvL0cGJ|J6}
      z{|LKsg3IseG=wY07e)x3{DA^lHrd8Iim}j7FDqhMp*@UMKEVEj35K_4ENK%-p2jlJ
      z-9-$KBZhpB;X1>2OdsR+y8)h`eLVRyp1WlCc$O*K#D>41`1%C*z761i_2Gwm`1}*|
      p+#~#K)JLjvjJbj0v<jhzcu)?l3g*LsdLU5ze&~OIg)pm%r9W~x2CM)8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$ImageReaderIterator.class b/libjava/classpath/lib/javax/imageio/ImageIO$ImageReaderIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f0891053f9e7dac394493a00c4bf347ff49a4f9
      GIT binary patch
      literal 1779
      zcwU`UTTc@~6#k|yEG)}KE(JssxkxWa0YT9sN)WZNKmv+_#<-Lb7R$ET-4cvH$QK_l
      z5r~?oZzldI<C)oQp|Ans!_J&Jd(QWL=gist^Y_~i0K=G45MYRI>f8EG!r0Q+xsgkx
      z#Gab(mHPtM*SM8(xTQNeOF@XCL4+r=y1Aa1U)|&xM?ob+qx2RWBbz8jGXxBWp*el>
      zRg$54(O5Tir(ki0ai5Thbh#`$ZzPULTFe{CNrI`j<Z))l;ihfmOj43QE|9`1Ck)eY
      zCaKtnpPZ8^(Itjizu0r>^2ZBJ=hnE2AR0B)qKP3Gi7r)xp+$p&Dq*#1sDVahr45tM
      z6}DEn^;BQYa#2<;qi2_N%MfSJ8FDrZn<0Ko(<xU-y$F{hz0ViXT77#XlqdhY6CzvL
      z(Cs<C<H&+nYEXf04Oh@b`c3KXj70q^aB-3%;hKgX^wThTk!8JA5M}5(ON@#L;u;3f
      zOE4K48>iSB({^+-!$rWL2uLs_B0g7mibe&)3{5gcyqTZb$?&`*=P^i97`o4H7EP(e
      zw{qKD!A*w#L;h!`UC8Himc!TP^P=~JTOv>~hDMb}=eB4O)ut}y3RZ?cG{lu^-Y5(T
      zG;uUdZcS%(+vc_c`W{+*Cx>eBnH`4dlU+H-U>t4KWD-LpHb_qe0`wQ6!6&<#tN>J6
      zY5ZxeBwsD+$mhPPM+5Ee$O_V4A3MN>SbPu7v4K5=Ka(qnHd-4I0@wrkO+7+2dyG1k
      zLOc1p+%#N72Ouq%R#<{CfJ<a+o=1V`rx4It5^z}xctMsBt(F8Fa@PqC_Jp`+iF;1+
      zhTZ5Auj=t0vZ*CD`XFc(ETi%)SiYe7E3Ptpk{a5)#(*tI^df?b&cyY52p>G1{VqZu
      z!!JbAbO`^38sA6kBWmK}xR2|*&)Kd766r%8&1I4Wwv1Y~f@by-9qbi)$nIsY3GL01
      z;`%-MTC`#WH>C7YG<iZsC`MpceaG1H0dD;~R><2Ug;cpn4O8M%_wxI^R#e3HF}_=#
      bOi#P?h#R;gtt2L7M?}(H+#^8u_U``!rW1^D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$ImageWriterIterator.class b/libjava/classpath/lib/javax/imageio/ImageIO$ImageWriterIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1637f289d4af99f768be62dca7f92ad6ac2bd955
      GIT binary patch
      literal 1779
      zcwU`UTTc@~6#k|yEG%0<?ua0AkzSAjf}%x~5KKraJfNVyEoB0WW!vm-p=jcpml&V?
      z6TbL>i9pmueKYY#8PCja3xy33A9m)<*>k?{J7>=BpTFOJ02slvf&fEwL*LR131d@V
      z<3=_yC-%98KDjSjhQqBndUPjiDF`vti||B7H`fviD;qrRD5zv;klwswWD><_hJfKP
      zG^I|yN-|V08f&KR<SouH;S(~MDwk#FjKmR1i#a1XMKE>S@;F;?xM>?%la!>63#72h
      zNy9XpDJnMNC+B2Jbcx}CU+lSb`QwFVva4K05Dgl_Xk-XRqD$3aXx5;hN?5HLYM@bB
      zDZ}LR`OOt>J=9k+T$Ghf>zO6pGQ`<)hMaZ7W{4ltbjlS{FIvixc5+3uR^Q$T<;nl<
      zgveIbb$gx{99i(w8dRW1!)0`nep9+TBT>H!T%4pxxT>KS12jxtWLa+&L>aoz5~Cu5
      zxQ0RW5lq_Rx>Ib8X*;@^<|1H71SA*|5uYnOMWccdhDMnp-Ym=((mdzLc?^;ihMu#V
      zMN?|=&FmIeaD!pskpGcs=X1HN<?z*ooajB_mIzdgqd}$7xg}aewW*8Qyp`tn4RNKK
      zHwr@nO&m>=TQeEmwz;i<zK3St$)Q?&W`|+sWLM5H7)Kj5mBcWK4boGA0R4q%@X4+w
      zD*%;N8h=_V$rnZ~`P?^ksHgoISwY(CVh6Yoi|?T+Hn@kD&*TcCjn)Q)0G6ZQl#OcU
      zpqAy)PX2B;4HwY?NXw-amLLq^64{#PQ6Ty$1ay`JbV&h^$r7T~l7K_*TEW4#iF=2*
      zpG)2rH@d{Ddc22hYKe_L2wDZpm^=%XFKGITD-55chBmJ;U@s+l5y3@g;`%*=7oN@m
      z7onfw7a}P-wETt|-$(2tYU1L!k88WjY*zw_^kI*ti)4YlLYTcq6MKUW_7=Tl_px_`
      z_Wnq510H=Ctr*31DSZr$o{&+B5!hAVG5+KLH-8>0<in9ds$8V{Y4NFh`TbriDq{PX
      e*ey?{r(Jr)4cwMi5|gqcBIyq95}<o~_x=H}bCFX3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$ReaderFormatFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$ReaderFormatFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5155bca7667aad4e8c573627b53826f2e0a1dab5
      GIT binary patch
      literal 996
      zcwUWC&u<bz6#fR5ZlNnE6;S-uR#bizwl>5|jh7}QBuJB@9I8eK7;qX`aCaek_n&Cu
      z$%~g>OtdB*8om0j_&-?R>=Lx0i5_O=y_xsE_r34Uk6&Mp0o=ugjsQb;pHKK}Qx14f
      z$e~$PXLTpDD|koPm7zW0ZbkN8Ve8Ns&Z}s%&#j)h)7lqpSI5E}hBK08L)a797Q3P+
      z9oK%7@i7=8T@SL(2ZAA9`vcc-ZE5wk7#8kJOS%sj6509ZT$4fD9(F_oL7X!XMwB6#
      z%{9Xyat3rPGQ?`q67}(*CG1DM)%OYw+q~c8wp9M~QgdHQhaq44Uj-Do?zE3n<a{Z%
      za(g;1F|5q1;bHoKjggEXg|vYyxXKXi3AZwn#8JSxC-Z$ra2+c;Zk(Ec|7KtnNn$2m
      zjd`B{7Dx7QB0Gv?e4ZnzMT8jEYX4$Mp-bJrnJu5ei-8dstI}W_!?E2Kq!dYOOhqiI
      z1m#+mu($i%afG9zL|vY#IWeAB9UC;-AgvIsfSNG<-T>KQL}*_kuR?x+&Pe_XjC|oU
      zVjsPj3$#Zm7id7kW6EeEPF~WF#xgDfo~2N!4<zW#$9zwDAv(*2??@e>RQQI}!}TLv
      zt{0EB&OPk|lKD@F6%*R#5w0B|q#eH1P7>O?lb^xES@kuK?H=Jjg@I>u_Z(@wKo%T%
      zvNzH37?u56Ge%{~yh%(9+(rhsJhWA^?+~jL{hTav)KP#iRHXvey)IM-MVLtc1|_5E
      AF8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$ReaderMIMETypeFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$ReaderMIMETypeFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa88c00f26fe133caf7db5f0de00a61929c320cb
      GIT binary patch
      literal 996
      zcwUWC&u<bz6#fR5F05-&T0rqvTT%H<ZHSi|FO5w|piN4{K~D>eIL)%)?m~)*H~)zy
      zp1gSJ#YAi3q0y`VivNT4%`UAWkl4e_yf^Q??|tu^`Ss`fDS*dVR}o;y9T+3yuq=8;
      zmy3S6D$nX}dXF0&Zr7{z=lkOU-xj9JZ50Z`HJM*F4Xaz;Z5{Bot73s6GmYX5M7hE3
      zk!bTh-W85(kJCN|L--t&Ay)eb)^KfMbvGFno(fC2&luvF*>JYWpltO!Ttg67bwsep
      z5X@wo5fC*UD#8rWny~oJu-D@DzR@zhM*X&7HVs=ye{!j~uZ6=<s9jzGN$=HUjwyP+
      z6r0%>DsC{W%&Os``jCx*(2zt*$1U7u(7W6{@8U?<?917?HQdFDihEP~`!OA>NDwdn
      zW@wlM5FXh5k?2T@u~~+s7SUl?tNo87rAB(9$6cS-(i~O{jG$PRL2LAfc3Y}M!s-(V
      zOR_+^mc{KY({LQ_s3_5la}{S;o~Jq1>1l(sLbL+%h3WSO$c{jx{R(;8<Ok@~a^Ilm
      z@?R1C?B!gieUWMb6ACP<=p#m6!q3JMmI2R_s5A-U6!S4ZQeBA7O8zI3M=0fgAXzV*
      z;O0*8ROviXJ|U6&f@m?WY@FcE5kkuGd*v*yd^r0ZJih3@=CO4Me+V5Tx;sP)V`T6a
      zIkGqK&SO;ZdtET9Q00AMqT?abc;KO}lKqHSCF$Q}kfn(NgdscSQShda6BJQK>MxHa
      B=w$!^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$ReaderObjectFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$ReaderObjectFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51b2f1e52cff0dd50a22904d950b4c0db8847d98
      GIT binary patch
      literal 843
      zcwUWCO>fgc5Pch)xG^SymL@a=C?!CeAPi>^mqMjTfk+Js61R=BgsoiLT02qs0SFF=
      z1BgTU4ZR@oA#p%(<wqfA*AWL&31scZ?99A*@5w)Zef<XDCayXtFtm30jPLt$k57b*
      z{jNT{{pOC~W1;$^T@hs4GR%Z>U^AT5)qcpMiJ#{j6c;ekMEV1vW-<^vVj|N_J!|F|
      z48_>AF)a7~hPp-B+cJ{b9fsA`VtRAPU~k1^;ljcR4<(cttk&kR1S00a!4gBICnND-
      zx;GN)As>Z84~hdG4!M##o<G{zQ<*Zfd;hCmlY27Pa3s0M4$d&FFFIi`bHG6&UDQzb
      za28dDa=@dzA|OTGD4CL#=NMKDvZm6%w;zZklX1kbl&E+n$9lL$m<$`ee+?qS?jWA3
      zK#%}Z?9H`Z*Nr-iBB8cIo~9yoaG6vcX$ASWXa;VO;})%Bv<ljI`k@MRFTth#I7QnO
      z7wB}`U*NSnpHTT=YEIE!re5GVY`mb3msqB#npa~5rvY=*sEoc<%H^0ds?nW|&JWZM
      zQ0;t2?f$j)M^rvz?Eppl@R4;$wH|rAhQ@qa9Yxw-5#DRcyrJA%%D$ub_h#~Xj`?SD
      c1Lw_Tk9c07tk!YSaNocs!%VYk;tJ}&0s7*>#Q*>R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$ReaderSuffixFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$ReaderSuffixFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4250bf525784bc7e48bcb995fbdd361cc2f54b3
      GIT binary patch
      literal 994
      zcwUW?TW=CU6vzJqOBdF)C>2n=wH1|1f!YvXYJ6!zLV|5l3=jIWz<|?i7u;P)efLW=
      z@u|@mBk>ZoCO$O!>R0hQSkLSdOtVe&VJ>Ipod5jJIrH=Pw<7>|u&N@&klQiF#$HA2
      z8htJXmAYK(TiI=Hbh+Ie^?G8jCQO&xDinru(z{|BR=={<-r*fr#auwc8H!4i+hft;
      z+q^Fv*M64uH5jy>Fu5<wkZAmsYr3|u`s)mH_k<<f`wYok@H*dOP&Ni#t|5%GI%1e-
      z2<P&x7zj>>iYP<8AuPT*+HG_Dq0u(Ed}z=y%$8vbX-^Lo_la;A3XT7*fQ0K!^Ed(L
      zmtsBtNX12l#b7l&&8gr}Xh<WY<1(%gYoEKdSxLAfmGh5-iEFrqMHSaiw7|d9v4j+%
      z@uwrhB!TGA9*jj-QYM0sR4yW7SZ@3alU$?D3~S*OC<aDKtWIrh4n}r|%S;&bX$i|R
      zK$@1t?G4j#9PX$nQ;MfnoN$9R$0{{8Od~=gB>PK$H$?jwG@8$lRU<n@t5*05y-@su
      z_(#v@Jk9eI3mibfONw}f1X(HH8w<Dqcsr>|c_2x5zUBeNMQE)Se;~b&a`8LT4^|Fw
      zX|r^sbnhy!kt%#fyp&Yd4smrK5oPjRIZi4sj(>$Gv)7kB+Bc;C7CI($_6`}mM-CrQ
      zp#2&?c|=wJtr=03B5x3hj$6p$rl+<<``bj7rhk(|o-zuNhJ2}r6)y{!K?xOP{s1cy
      B>>&UE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$TranscoderFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$TranscoderFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e4fe3cdcbc265013820a0522156e3e261313eae
      GIT binary patch
      literal 1392
      zcwT)}ZBx@g5Ppsp0x|Lq3I#=}(56U0-YM1>6o(lEhcY<&EtIn!Q_^|~s6T~o{s6u>
      zBX!0Pj(+t=IqoF^TL?@h*}J{nXLq07%b&kLegc@p3k?knBYXCt{mByhc9Dy+wW{Rm
      zMsiEqj$0`2a=9W(9+w*84DHI+D%noa+Su9S1y4g0L#iIZtq3d6<)J9>O<okPCqE|x
      z42CAj?OnA<tVM*~^bfOS_E8G&QnT0op)y+%j_`5}3#lvMu7F5yGsKsvNF6b>8Muaa
      zhFB`S-2#SA0~(sus@p&dbcVJy;qdi?{T(j1?41%Po3(PmE^XUVsC}r6d+&uyv_u7t
      zU{)3KF65^taH^#^n|`ZdfFXI2WgqcBT)rZ7Byh{XZ45CC6uB2r5O(90EFTKmuG{;R
      zWp^rF6D#jY;S{qv?josSn4#}dLJi!*2tzNyZ%9!Tj_r}_DL5q>0!QQ;rc)7FMR>|U
      z8YV+CAuX3|mpJRHOUhT0=@`Z}+$a9e9T~7xp&I$Cnsl1!DGd+m<}@hGz%=@aXa3>9
      zF1d=OSp##YECtgL!IF*zWHl^C(-F8SI+m`iI)taHsn*IFPn{QAO~XfCbSE!^s%tix
      z>-qA5EN~hm>ZlP;*tl|5TgTzjCyKiop3`(i4kXcaek3tLQy-(Z5e@XvHJ~3xgSrI1
      zWOPvs`d+8q8`{T6wwd42YGzK*VUC@k>#J|rL*Gus0X9Ovk2G4CiB^_DFX@K@H{8HY
      zz+b5_%wMTMDoh{x!!TdMFuBZcB#tnj`Gv&Gu_^}5Z|JDvP8Fk7WU81r!T_mfNZnP%
      ze2uy>ejGbK%gR)xFbf)+gu$lh-cMtY<S?7TD4WGJ$wf9ton5TSHg}e74iD)il8LHE
      Wc<j^k#7BRMWs*9bF+9Tx`u_na3tbNY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$WriterFormatFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$WriterFormatFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1fcd80fc56a05788d11df22264ef1911cd8c6d3
      GIT binary patch
      literal 996
      zcwUWCU2hUW6g>k=w`|v<R6y~ot*Cqys15O@#+N1}BuJBDFwv(42ApQu#odMIyMLmI
      zPrmrl7Za_CMxsXJNBk%L2kYHkf;QVkA7<v>nS0MY_uTpZ>&*nfb*#$>F=ThOvG%Ae
      z23nsBvs`n}+IHryB^+*5O>3YzRiTqDLt;4TMwfNX=$E(KyS(Gbm<wRoLs4#WYb-i^
      zhxdi;SdTM427}V`ARF3%GsNqE;F^vljQ%FW+)ZH!=N3aE8+^{S7^E$;%N2xiLPZpd
      z4B>396$Oz~A!D8)Ru=|uj0SCP-O<{*SIF#WdP}o}>rXEw=Yg;p^7a2!z$Mq4_Hl%q
      zFU4l=o{TdL%Rx0fOdqg06be#Et2l@A42ym4RA-XdE^zLCux|wyu`J`#kqP*3Dprsr
      zX8hqu(+OaHXqjWtbxFp997!!A#IRcb7fT9V=>5%X=@?!NjKElp2HP}8R)>>PB&|9X
      zvE(MWu3>O%OV@0h+cHYj<*}L*<DlwTr_qLKMQDZG3DfTlksXCX`vQ4Y@<Vhg`PWeM
      zg;$8Z@M2EUzDT*iTS$0E856|GOZw4R!fC*>TvX}<33~G}pHW_f&Pw3}QhO*B-XnE;
      z?Eq&R#fj9tAw5Sj{}QocLfSaMg*`;1{U_34LV9}mGrT{mzUs04Ncf+i;xpZSK^k9?
      z#W&>1-oOu!QN^z{V^pEc%fv**Rb+6*Lt7#H8nH^z&&eW39fb(PtyI98*M-|b5oM%*
      E19|4|c>n+a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$WriterMIMETypeFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$WriterMIMETypeFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64f5bd49fc69c099bd1da0db6ed2d96e6c6ed08a
      GIT binary patch
      literal 996
      zcwUWC&u<bz6#fR5F5p^}7Et`vR#bjd8{(zLOJfrfXcK8L(bEDWPO~hyyAXT#pJ?LA
      zi<e$Zv?d-Jy?Qo!Fd8-S<o{rOvrB6TBzl;c_vXF#z3+W9?|;8J0B{}4DtrvtZGEUe
      zE{U$*;i6Zn$g{GUx@!rCTeV8<_SR0HuM2}b6$-;CnO`z=vs2n^Zu6F-Vum3-j$-#k
      zsm`sTXz@F|BW%aoNqHCy!6Q(HX!S2x-LZt(S!I~HDNNzqVu+<D!<hzyves+!F#I^F
      zA%s~5e>&3$fv9Ov5oCx|g~>Mt-6prT^rqo9>a}#Ep<6=wqf5nkC~Ss&_5T%+^d5}n
      z7^CM&v6{K3;ta#Wq#7=&2U+inFcL^=IEV8LT8BGFU2F-Pxj#8~7#Fdi;?kJ@UQELx
      z;>3$T8t4WA1p8KRDB6-@bdn*dMRXXJs{i6hsiCgua>wH}H-!}gBPdp32-kZ9t0h$;
      zVYQKjMOh$S)8y8gq1!gMRTOE)sfshqPtzRB^t66j0a`x!!t{H6WQP!@{RDaI<ooCh
      zXJ13h=3XK4!p%8N`z+N0AE4kPReVB}yttQ*Im`pDB~fV-#3<%rKBKw-o#os+Bz95E
      zy+xvy-^baF!hzDhp*%-C`x22tOj+5-g<S-cy(h|HOnG|v%fENreaU6}nee|r!&kcd
      zh9tftjUUL8y@H=Eqq5iQm{FN3FB20DSCPUM7j2R3Ys4x+|0azLP2?jC*(ry-JB6H}
      IfD)2_0OM%wuK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$WriterObjectFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$WriterObjectFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1304c7f93882c652924d3baa01a8119ccd1b0ea6
      GIT binary patch
      literal 1193
      zcwUWEO-~b16g`&?43v?NLit9a0(RO$5d<`-EQll|6%tD@;%XRP>m%*7&J0BM{)r~;
      z-LN4MOk5D%`d9o9;(gNw(P^S-I`6*w?mOq)kD2d3zgz;ikB2&12+2e1*m{?hWveJ;
      zCA+EC&F!g|uJnbwy?-cde?yko)}ax4RCKmvImK-KOh;P?!>h_{Ubx577B56mdcJ!y
      zRmUJ`{z+9361gU{JA9O{3R@PWa90V@Ld7jx{+3nd8?oGP>b&ntr^pd)kEJ91r-YT{
      zzX8Jl<}M3buN;UdBIq{Ii5@~EY3_D_2@U9IS607)4nzsvIq8V4qw>CRcdY$VAgW?p
      zrCrOFYTs~b{u}8LQq2@Kt*lC<(5O#5nftrMtLC1LF~UT+$^m8_Fkh8XjN-O|JD4DJ
      z*_QLnu{pOOhA{mf6*Bh}M8d#bOff`J_#4+9@RT<5b-0L8%pj@b-XFtJKQmxrgp(6*
      zkE{{{v{&8Au{=<D#=>cG={cwHY=jf#(9Xh5WqnO_5s1NPljkU3IdW~m#pXH~jXun&
      z3u@~)!d)*}o+msV%baD?wz1-H<1o+D5#fI;TKLD~!Y@{f8kS&Xl`!~ui+8VhAK|q-
      z^%-5M^f`J{nRE1=1%YvX#-IVDUa}}Us1sdeV1WG-^=lZ!5D-|3h5}0wDVkx7G-%E^
      zx|P?p^f!#w@F@Kiqt7#`Pw2hCcnxOe0+U;_m)gOy_7MZ@@0*Ql3m2HKp;bG5uU*Bp
      z4_7}Tr`NJ(m;}@VonkPkAA>Z&vp9%p8p0wCV~Oo2G#*HOP^Z3@x`q_eEX?4KO$M`!
      hIEG2gA<H5YJZSUm*Vwxdur2a^a6;TOEMWyBzW{CS9P|JH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$WriterSuffixFilter.class b/libjava/classpath/lib/javax/imageio/ImageIO$WriterSuffixFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ff7d63bb1b0aaf7fd62b80cfc7bcdec584c350f
      GIT binary patch
      literal 994
      zcwUW?&ubGw6vw}lY`RHY8%<53@mE`;=0}sQC3vZLDFgzsg+?OiX_HLil<g+&ZbH5L
      zPZT_P@zRT+6+9HZ`mc!SK@=5Q-|U7+*@7Ns=DnHszVmr+=HubJ0|2+MtRlpa-!jI=
      zjxM&1J{JSMF4y`-?tv{_ZZ}80p4h1glWY|V!x<T^n}*fbH`-gg<EoemXgEWmH@Q6)
      z9lpu?!g1}VIbVYz-V-MGWf_u<zj9627FK_iVdjpognO4El@A^lS`5nCpv&V3<Ftkt
      zW*NfyLMsM>)1V^CkZ1^tuaCCd+`ezLO)f7QbPTg)*h2b~O~rjI9EM`!e>))IdXqYi
      z!TGINEj(0lo?$-N4Nr3-I23VYkkxPzmx#5`-P*Jz+>y$KN5R75xPo~VSC2h`f2Lsp
      zX+q;qMutfO(V;yUi>{<h1|g|kM8vSz_!lOHMx80v+zC(&jFecNp0zm`*&Qw`VbCTm
      ztjGlES{Aq0Ov7=wqoP73p4f514fY(%^sr$X5gH-+zVvrPWXBMv`4o9I@<X)7i*KP7
      zOK*^P<;9$(d6sg4&rtA%GQJ{7UfPew9L@orB~_^or0C4od_j2;TC1fG$n2t0dXLP#
      zrF~pjFCQq~+saF%i?5L=r<9d_T;4@Q*?XoOrIhDKpTc|7+ZR3BZ>0Yn8h+5;Ph{~6
      zdHhC^>=hh(L{<N;DN&U&uMvrc8_40hr?x=$O`^)szsaLO6@^Gc-c-VpSB0#g3?11&
      D)Hm=f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageIO.class b/libjava/classpath/lib/javax/imageio/ImageIO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14c24cb382db7a452e7a9443f718319588a16047
      GIT binary patch
      literal 13182
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageReadParam.class b/libjava/classpath/lib/javax/imageio/ImageReadParam.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67cff3a68a97c1e0d838cb555f6a0f731925143a
      GIT binary patch
      literal 2209
      zcwT)}ZBrXn6n<{V3nUB01X3)thH7mRl(kl^3aykvYmoAmmP+x1TXI=elTF;+l=w38
      zKb+C&59kM-DKeuo_PakyJm+TFq+#1Hxp(h5&vVXw?sM|*e}DZ0;0m@9hzLx4V>~um
      zx>YkwY1Q=-uN%^+tQn3`OCTzc?a3&usu%@!47)77a=q#75XP=Zr)>Qo1;j&vR7JX;
      zWgDJVw*@XNGl_2Odu<+lzPY<A9a&NJW(0=2(&r7k;tE8zO9JVdWv@AP(~+)gJ(g>R
      zOA$eV5xZII2}lYJyQjJt>C|4ZYSMP81XYaBTDIlg5a`PnHU*-$>J^zpA4W6`<F&qn
      z<KyE22%Ob02u<M3vSrJaX6=!5?ir7&#G78O?-<oh!?F0=Ka6^NmV0vFm&rP#iauoe
      z3mRgG3k;dkTj*9SmoL0pGe%$3kU+mc=0&tGU^HLYE^*r18U~OQ7&lK|>#or{r7E>l
      zN>X-F!xZuY=Y#B(5UDxyT@BNm*~NS6wYdI!8d9ub#td^yw)>`?7h>QC8isI&)Ny;%
      znasah9DdP^8zxFDzg^<!IrpTO5EsSrC6$z5_bG7(*lvC_<Az=1Y(DH3%#vJe?Z^iA
      z;3jZW;IhiA8n&t5x7}u=QFlC9S#3y1H5z2I#JAWV6a82e$WvLmjG1d&Jm;w5IhU&E
      z?7Ei=n39;o9d_~O0;7Ics#@7|2v0o?U<u0!d_g8Y-Lr<f{8+JltK#i(=BkD@K8f#1
      z%iQx4*dXV1SWDHaG>z&_$7~XV7qs7xd*pAMVjfAGtDNwwW{qmKzR#_$;|@91RT3uK
      zs@}GEk}@yO%rqCoBuUao|6XxKd2VPI<q1$LSzN7THMI`<D>;Z(jgU0g^qZ!y>xj?}
      zNEMHeDW*pck^O@{BN(IKAywj2f?gxaS-kGUDIMo9POIQY@u_rLITkBE!}+HHNn9Py
      zb%A36_zmPjz>~lCfEPo-Z{n>G@TFexQYiQ`@;-RUS75C8CkpA&Cy1v<pVIyv{{A{z
      z>D;6($13SdF2F_??^wV)9q@KHrT5D5AhfBeP;j;v{8cFU3f>O^U+tB{2nBzLk9_bA
      z%8qb$aq1A09WNx+=`LYR#gJ`h`3$^c`*GoG_&AK~QZLuH#8rI>7h9OQJ|XwDxz;I%
      z<xdsI51|()LX6rV!tV&^DAHUzJs?eCCNS?T?fBKNs}?^4Plq6na-jplaXUJ_|NJi)
      z{2Oyy>4hWQem?aKrQeXGW#v~sU*AfXk8uAv-|lLsnTu)+_eqZymHM8>uSMhbBbogt
      Z6!0@y<e=-;deESbO&U<X^#jHA<^N&5u6F<c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageReader.class b/libjava/classpath/lib/javax/imageio/ImageReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85979dac17195653837c4bb458bc83cb7d5ced5c
      GIT binary patch
      literal 20387
      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≈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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageTranscoder.class b/libjava/classpath/lib/javax/imageio/ImageTranscoder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e5cb4a40a5c4b0b9a7379b02882d5a9da2d840f
      GIT binary patch
      literal 438
      zcwU{5%?<%U5QJ;|t)GhnM|UnJ&hC;;2+2yE+ia5&yDMV|&)|(5Jb;H1J3@pwpf8<t
      zSE?%C`Eon~=%C^uBhXmTmUdD{G-sVi-|exXc&(C<jfb2-)k)-%;<+477p$y6O(pS`
      zjlIbSY$+s50*7Y*)h@cfr0)+OvTpxV<bK7$ij|&eHXjueqb-lfP}FUGlOj;Rmkg|7
      wik>a?-z|UdP!5ufQQXr@PN}`oZ99vCfIt>*GAZml3UJUp6w`}9$=y-D0)E<!6#xJL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageTypeSpecifier.class b/libjava/classpath/lib/javax/imageio/ImageTypeSpecifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17e94e7630f61f25f1984ec480ae6691b03a0fe0
      GIT binary patch
      literal 6079
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageWriteParam.class b/libjava/classpath/lib/javax/imageio/ImageWriteParam.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..942348b55b83c25978b99fa0adeb0e660eb76fd3
      GIT binary patch
      literal 6550
      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
      B0lNSI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/ImageWriter.class b/libjava/classpath/lib/javax/imageio/ImageWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57e29cf5b6f06279830b8404b074ae17d2cc7853
      GIT binary patch
      literal 13487
      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
      UPq?gP3zvx@(kFIG3S!r90Dm*(I{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/event/IIOReadProgressListener.class b/libjava/classpath/lib/javax/imageio/event/IIOReadProgressListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2728ff5eea05d91267056a9613fb2ad5344d867a
      GIT binary patch
      literal 543
      zcwU83%TB{E5FD3B=!>R2F9<k-kgzy&LWoL{Diu+QyOXYht26<}srWVyd;lMXuuUFt
      zpd9Scj(289-jC0>cK}y7@X%ton2V)&<#Hink{PEZrJ4u9<blNOUS+YOJRi$kQ%cIi
      zI)iToJP~QkC*hnT?O~JQ(6NP<3BR)zm4u=1tZ%c$b3&RJj?c!wM+O${I8xW=kCmXB
      z&2X|xFtUoCdzosXG|m1I1Xj>hrnm{S?|wh0mx9vhN60}%)uu!JR4l?&$fW6NxF)S%
      zbG7tzWgZu(GtCMW(MTr7_UMoAzqBsquNl_N*)U6Nn|*lLg566S9fw`?9QI3oyTn1s
      T`(-^W`**NwoEY}Z-NODC20NAt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/event/IIOReadUpdateListener.class b/libjava/classpath/lib/javax/imageio/event/IIOReadUpdateListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26b3560fee3194b6a7615758ad0fc046e542d857
      GIT binary patch
      literal 536
      zcwU{6%}N6?5XUD~yV|X`iX!*~_G0i{PudEBLdBvNPt)$Srer_Z%~qeyLm$A05;N%s
      zE_iAn8D=u`n_>RnKVM4#xP`L-Y63cQT;QkFG0sS*k`|O$snqb9FnY-%v^3C#rG)YT
      z_64*#T^dYgayXvT#0F3oaOtC^)kgLiuqhD`dhiM)pm#l}wo`1m73E$3CGo?qe&u~R
      zol;Jb&*>_E-c;vRKr_Rlcu3>S5L54Vr!p;M+Q?#VDH71%9j5-ycwyhmc$}a%PnBWM
      zEAegH);7G^Rb!Nv`Gg*|an9AhirnxxZv6uG+&yrr)}2HF90E&q1PyOPXnK3R_D|M+
      Ni}PGv+r2e7{RJf2oumK&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/event/IIOReadWarningListener.class b/libjava/classpath/lib/javax/imageio/event/IIOReadWarningListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ecd17180544524db242e0462864d08c86c494130
      GIT binary patch
      literal 253
      zcwTK!I|{-;5Pjn>8Vl_#yntG`T3agw0s#fB*EocgxPf(}p3TAocqnmK5fLnA<}u9s
      z%>8k_0hpp4ph6h!<w;(II>?MwA^61FiYQ8!EO#4ew9;9uj+Ql>05w9_--}%8OeEVq
      zr#3)?(0gr5t8y{-3LgrgbAF2?X<8b?JHliT|9VD#dOtR^_$$A%#_?vuH6dITrAc|A
      dawhcuryF~wi$bWns=F7-#SPH(2rbtu2%jp+NpJuF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/event/IIOWriteProgressListener.class b/libjava/classpath/lib/javax/imageio/event/IIOWriteProgressListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af4114f6b89cf0a540d8eed0e68da9b0d8b6c25f
      GIT binary patch
      literal 493
      zcwU8(%Sr<=7==&jC0eICRl${)rGgl`b|qqApirTp>rDL_Q)VWT$yA@sg%99EiAn5q
      zaA92}KRMw$C!BnKy?+20;E<!ka5<B6`6g5$Gg4a6oJuQ_Wc+B9rF)|@Lsd0Wm8Fsl
      z$2vpo36aY(6XSG7Q_Hc*a1_+qs$AT8j|O4r1@Bv3yyRqw;pBYuJ2UY!<eBS>hX!b}
      z8BSLLLr+BEW@4qW^z;vqc%W~e>mn_s%G-CfS{ofNwWaylO7q|zz53Hls(*;?MAv3Y
      zLzTOf<G;GS@~*B(hBdb~+!t|IHpdox>D%arxq~Ro-a_A9=zEC6?0enu`)=>x;2THZ
      Bi!=ZL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/event/IIOWriteWarningListener.class b/libjava/classpath/lib/javax/imageio/event/IIOWriteWarningListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..afede8bf4c4040a8ac4327aece7f0298d4319e4d
      GIT binary patch
      literal 256
      zcwTjny9&ZU5Jm6AM|>38+4up9;9_m95D26Qn0k#vScxmF8}-{P`~W{n+>MA>Sj>Zg
      zbMKwU^L7WYKtDu4nC<0RUWGcyg4I#*nY9&Blw?L(&ZN;w7qL27)@(vF2}2KvQtCn^
      z+dbztM4K?Gua#A$Sb2#LLKs}$B1xWC#_*1?n8d%Pk)O4pSw`_!Kefhz%jt&DOOKVw
      fd96w&jQ`}Dd(?#?G+edZm*fJ6==cp?*8}ukaOz70
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOInvalidTreeException.class b/libjava/classpath/lib/javax/imageio/metadata/IIOInvalidTreeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e21506936178c4cee9c4a3a95b82299ef71cfe9a
      GIT binary patch
      literal 953
      zcwUuKTTc@~6#k~&wpx~3rCuruB8hZC7h}{1Di5M2YZ?flmKR@!-C-HC7qUAAewHR0
      z5+8i=&Hv(GFrJw<HH0<Mmzi_<&UemtW`6wo`VGKiEZ0zCc=Umv@H1D&JQOl@W1)D!
      z6?Z*v$4gFlB!gZi#OpI(94nb7HCPO-i!}rt=NV>lkx3r)MV6EQ&U?kc-ZD&XrAe-M
      zqWU}<h|16J$GZ#b-aaML!$Xk-G6}cSKrl4AX%@PtPkc8>V^_yE7^)qaNVUoEV5O^@
      zyAe-9cTZ(hwsE<j-Dj}2$f~1^85=fc8JY#9?fz9TT(eQf1jBS!CSrRKABe2S52E2P
      zK55~ki2PB|Qb#gpSnvMd>PSW{7I{u+O?+t<hE9>VKat*1mY(Vn3KeUq^IGa12IpUi
      z^r9+0ALKMrvk*ZK8Va>@@r~wI+C{Ha-%AIXFWyMKrTM?C!F)K}qqUdm8<x;Q1y%BD
      z#=8PbzXjQ4irJW?bBerO%4z(BvwDtcXYC6bpG?6Vol_?Dl!%^D@pClETO7i19X9}D
      z-NY>-)0S>fGW4wx{d+=NblcAA+Bt4J4-5D^H0BGc+%){o5I^R($NV<#Vu32Pr8{XM
      ii$<{S<kGEC73VV=AIB}KCiv1&+e5&JnqkSH?*9g7N7vE-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadata.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadata.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46f34c5540338ac42583014047b6927576828881
      GIT binary patch
      literal 5437
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataController.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataController.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f90f96d1287e96829bf0b28b15dee30f25269693
      GIT binary patch
      literal 207
      zcwRg8Z`VEs1_nb0PId++Mh2a%#InQ+{mk6N^wi9J{oK@&#FWI6M14<Be_truIX|zY
      zC_g7BwTPX8g^@u3q(eU^F)v-;KPf9UxrC8{BQd!ovn;VBm61VR!-uem)|yd_3|zta
      rrA5i9ZkahiZBkh6(*qgB#>l|Pz{~&wj6myI8Q4H926iCH#J~Xnt(rPx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormat.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..299f194e3eb6d99517af90702cd0e25c0304890c
      GIT binary patch
      literal 2613
      zcwUWGTX)k&5S}fUK+>38NFcOOdI6jiF!TmAlva^9i9nW&B<D2cA!p+(W;wFt%5o3+
      zYklYs=#T2@>`KTh#X0fQ`1@w&o7vs*YXAN3?|%T`G3?F2Cj{#6*<b8KL-bjXi@4F}
      zDLY~*Ygm@s%71UiNuQ-NaGt<|jBbQ1>NVWM_q>}TW$s#b^Puh8mbrgm*fs%T5tujQ
      zXqd7n-DBa1pTmlTz;Y?p+;uIJO4m68OC=X=wS#@>fog%4@w?<NRK+~nrba+urNsL5
      zb%#1x5o~|4>~veofxEEKGy)^oZ_|S<*R`qP5V%rMO}DdUQv$Vu*|uF-Yn){{0o|dV
      zp5+Ig<?JA{XV@KjV0c?r;2GXNc9AjE>9nY41eWW_E*1#PW)9o(1IgSj7{_(6{#*t;
      z!`VT!rXjg2*n??zd}~jwX_mmPQv(qBuVmDvs*L57WiD1_^Z+G8;AS=8L^CxUhc1hp
      z_=p>W0cQz;Cv|%~N`9J%sJCgCN70ftI393+z`NqD;K}Ct9|W%Ucxt4WaX3nO6US4A
      z5V&`mV2N4B$-G_?;BVO|%!ZV})9FM`QUtD*RfpX~3{nwC1YS-hnlYnPgbh3HvXD<M
      zQ)-?@qdrfVEHfnVY^plzZzjpE>9V#MrY-it=20(wH_0cWkG|4jU{1b|Wm-fzy{OX;
      z>+|8{bDP}bik__$vy-1k-h3y*qg=7}5x3(|bdND{QVA;)q#^I~C@me>=~Hm#@o18`
      z8>)+hM`d0_V_r^8c99xM!j83FuX@INUMoCi$cDJ!JCoL@Q7R0ZyX=cz#L`iMn^vDD
      z=lRBqd`(%s@}K4I84_7eNuWHiXC8f_uvjRJXKdrF6~z4kOV}YE6@dp+2WM;63KrA5
      zRB+nx%^~T<aVlpI=e|C1Dwf5t7+jD4IT8s!n)=4VD{t11M@g4&ix6w9p7=69lu39~
      z6OfnfDy+c;xQJ**e%s&@;>#MIMLehBPZ7^+xQ6&j1utlL5%H3Sml0pB)LW^<uU6_`
      ztK?s=^s`pcyP@IF5Pz=Wn}}~!^1rC)-`4P#h`-YC*NDH-@Eyc=EB)Woa2;;oOJW^1
      z)QjR<xUcL3c&Kax9x3}6zEk%5-2X#vf6U{4%Iy<)s_e7e|8tHv;kmNEzzb!6&GB!!
      wHFCR^TN9etAypl2Bi?~s#ar-F*;il}{uW}Vg56xF4X>5;zz6yG3RFbre@X$0$^ZZW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6b326720485fba9d492f6a674da29bebfb1debe
      GIT binary patch
      literal 818
      zcwUuJO>fgc5PjpCnx-k?v(QoyLOC>0;pD_22!SdpSqkBhst0aUdr24BYiqqhloLOQ
      z3nwHF`~ZFwV%C_7k4jKWo}G_3Z{N;*{r33_fDvv-2nY{e^BaB}>w@P>mvNySXY4pm
      zk{8cgf3LI!yQHY{{wP97*f~oNVfm3Z+C3($Z%=$@oU@t7GiSA#kCVXxA>1u9)xi>0
      zx;TerLT{ptnl6e%W%v0oSA@%xGUfb$t@d%74Be5g3B$=*1ocN_!fKyQX^x9>Q4c-&
      zU%GySj0ltv)>1Z8QTnv16kEc>Q{MB3l*FI=$Ca8@D%G#Fvg5%^;a0gSlyOro<QXgV
      z&m!UOzX=GPS-G&O+S7gro2S0A*(;%&7^CcN&ULM1QoUy;&C6PZO2<)|b+Lt8gpIj!
      zGsh-lo3#|CmN*sqo$bMYk9UkANY?1TKz`Y!#F2Q3WPLumcYo^>&VOtG9kCq`4Bj=s
      zRf+HXfT4@Eh9<%V^rYs!i?}3cSr@Lfv`^aWg7Cu$qh~_!{uj33ge}0;mMy?FtczX3
      V^(MN3jYbVMRmdHiVneCl{0?)_%7p*`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8da0e36d9cf8fdfae7f5414fdf7670e76d3474d4
      GIT binary patch
      literal 1846
      zcwUuLOHUI~6#i~IeNaZqtGpB_@~{kr5%CQY6(wnckO*PHZfGxMOlPJ{r=W4;#*G^{
      zY+U&VTxeoL;=&)`k20QnI}W5w1Vfm6?m6c>-*@kK`|J0Qp8)3ZD1ivW<5$L^@me=6
      zqs&c5x437N4A0ODg^d?}yz01?;T5cEW#UYB-6`=Wp64c@Fic%MMf4{SXXtd?vVOEs
      z)Ju+~iwO)d=g8)?X4cNuo>#cVZEul5u?>qebgu~-y<*s9ebaMIyG*sD7{2wUN_AGC
      zt;-MUrprsT-C<Bme9x#?yltaWr;hlNX`9|M!%{Ak>O8^u%=9)1TA|aVz|gCr6B&l(
      z%g!t8gilPbnKoaqTf5xdGIlHSv`*2eY#XjA_I^_F_RSi@)3u8){NJ`MrVzzdq5c{}
      zG&jB7MyDB3kw8*JSru(aiRikDcBmqnP;mtvBAQZ>Mv5U(=H9xrrZ+boW=@(KHiWnS
      zg)sC}W4Ouf)cY*(k|dFvU6k7_?sH3K3-+GFFwipLZ-qvvqP@zC=AJ1Y0L`E$kffw<
      zzhc%3luy=zOePm@N9?d!Pnors!GlU|I(4_mS54u>Q0P_9iD@LHVAG*jDn_lwYYC9F
      z{Qnrn&=X=AvUK%P`j63{BAlY%u_AnuE4d_B@<^^}nQy25PIS??n|3>hQw2zAGx?}8
      zdxD;Cw2PpRz8y3hC{n#dGdcQcr!~7VfI&b;f|bcg@J3`Ln4*#=<MSL-B~EKrJHe1P
      z)4;HnZ(vj#ZeUEyC=HBjgRurCPuWLkGEgQyizeHo#z7CN#Cw2IxKhn>b7r6>8>q<!
      zYO?YkqB0UUp~y%mj8W$e<a~uXtpXX-zGL)jAR{i5hmuZhHu!W5({vr@!NaZKx1rz}
      z<U_z?Us}NLLcz0`^TBx^9AT}r@6RA30aC}!R%Eo5^Ft_dKJ=<4TWLRr3chs-+T&2#
      z1>E+LcVwP&r;nrw{3L;W&0_Ev7y(j}>~27QR{3}<|K||p5!{pC`*;BO;~ruO$v=Vx
      BN(=x1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f70d44e42ad034c22834c4668b9472259290e1cd
      GIT binary patch
      literal 1379
      zcwVJbOHUI~6#j1C9R_*GSc?x-P}`w&ATBXPC1NHixPWxg-KBG>W9EU=8K{55U!sYP
      zi3=C*#K*#o|HgRkr6CB7v0*dkJLjI)cg~rk-yc5#SiwpjDTZe+`2p`)uFpHd4J}{9
      z+~F~|Z2S4<0B?km&tu!)_ZCiBw?aoej^pS_m;{b+^2jhex@a<ng6{@R?j?d@x*^k9
      z9uGR!b{x4uXH~xQ-r!v)S378XN!L9fm9?aa_fDB|@e8-Ru*^_zjM5pE$vt!fH(q0S
      zQyDF^5k?*B@Il*hLf?Ao310;9>Ukn|>%8rMEUi|x$&gv6c@@DhrDF`bhBPkg7{?65
      zTIB*ARGTvC6&+dRB)Y02e~e~z6i}4tx(*FRhKYt7h^@rm710jg_0+z?Husu5a-}{n
      zX5<PO?2)GUk2|B?WW&Qi(5V<hnNrDs`&79gqjz5K%hRw)jl`?Ojf6v2;)p$-c=6zl
      z#yTS2Jh{4=N_E)XDW{Xu)3(DTYKsk5Qk)&ip)Qk9EjyrQ*FE0tif$ejLv55v{GI*G
      zEO3kVk*1$Hi;P?up^RLZlC&-*H7O@2<(-h8rigJ|qVEK0pUHQOq-iepF=^J8jEs>j
      z=RRQCEa&?$%yOZRl4%tCD4T}X$F+Clox%<J&Z;^;sO}d`;Rq#sCHptb<2!EB%N|vx
      z%$TDtq0nvIp;(FLDK@Rp0`5|e65XRdvkKj(*PKF<Q(hs-s-TeMRa8ha(}+n0)d3%i
      wB$M+n-@|x&(rQi_f2y|hV~0UojM5AXE}aejH6%ENMfI&=iKM2&>sUtW50$h|CjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e9c99c5837cf616df6fefcf213c2485eb6394fd
      GIT binary patch
      literal 1283
      zcwVJc?M@Rx6g|_HE|j$tuxL>f6|pVQ_3K{^ku(rXR`>yFBK{iMu@2b}+|G(5zJjmf
      zM*<;g;sf|l#ydmNDukrr$Ijk+XYV=ZezZS-eft660UlaNFs$zIxBQ(Wecl!_bbO(B
      zi!1Kb>+8?E_DUG}T-E(uZ>A@@7PiEaQqgh{`y%2>v@E0;o?aA>At(MoHn<my4uxC|
      z>%>ZWjw?H=%8*vCWoPC-L&fcfQfEGqfmDkO?~DDVx?$9I_8v8zR_Hs+p72GWs>jMa
      z9<-ee70IAot#6%<{ja~&U`W-d<RLIzvSDE`gCs_53?av`SiAsNsbOJ^Vf-)UQWWuh
      z&6~j}E^CfFL!sCssup^lXet>7l&&>hu`z%&!-y*bu@?K=BHHBJo?sYr!zT9{Jd)b)
      z22*+(3~pZyJ%62OQUl>$AZR1<XLf^F1MV9|r+UCJs8Kifcj=zh$&JLDSVp2n?iPdH
      z60dmdDYIZyWm~8dX6gY|k}sBC_Q0-h?@)WH!ziL`p~R5=cc3=rFw0=6(Da%ivk}Ho
      zQ>;kcoyjxHuV@I8QV*!en#VgG(Xl`qJ>O3g8K%x{Bc^GZN&3YnkkTUsayh+jCc<bH
      zGIS1;_kr$o^k#YP5O#TfA)m?*6w*h?mcL{4MZr44_#q~~n8d4eW)19T0{uv9^$7*?
      zo)I)bU=r5=V_nA-eXp$>^dyZnjawu}TeoqC^0hTXPuf^oq(!3cVzw*oF})eRGvxzJ
      je8oLRtS2hc=H|e#+s9vZ*%O#I=K?Awsxch;<4gPoS~pX`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3139d38fe53d94c4113ad4204c983b12e0286e0b
      GIT binary patch
      literal 1187
      zcwVJbO>fgc5Ph3Cb{bq7LQSE3Lx9AT8pJWE0u>@Gx#iF*hl<NKS-D33D9(nKU%?;Y
      zf<%PGfgivh;p4!CJ7RW8q0m$!>cKm2XLjDa*;#-5@%{sVJ8&%&7#=?3FZiw(B|H>S
      z<|RV%9+%wn{U<9U+|KfZOF!9;>-)T`Sx-EWG7qA@v|upYKPnT$bWCI`Q5uLelv@nU
      z-}CX^J)bGJqJI50!(uQ=!4_rSi_%CgF+6QdmKtPv=<VF?dc7?19>pRNscdNqFXn0J
      zt;sw}!<N6{`^^r6u}lq3f#JA~GNvjhqH3dp6AVj@|K>XAYjzarNgE}Y3OP0`m<%&P
      zl#10svMKU)z8MRKT99>l+~Iko_9LgEE{>r+QSXOMoUXH!?WBT+=8SEL>ZLr<S`IYA
      zP*!~FFSjXP&c*XVl#3pXdxN1G3K{(U3W|-Uzc29TDOA?7LEaVZNVPXVR{x?Z&S3i~
      zX<d$azc2b08Vn1Q+ycYgA@_hwG>9VoPemANE`$s<6`)#G!`Bf~iet3ew0lLdGTHO)
      z%^{}Ug<Fo{l-N7WxQ;nQ&2_9HX5Y|(0#4CdBRb$KQGY@epUL+HbL4qUMTi8aaR$(6
      z9%m^>p>y;VHM&5>42>?5(2_<<q^XgTX_2hUxH1ywk!55{?pxGe{}y3t=Qmy0{&iqf
      dnBnT!<k^3dzmG{Spsv?zxK6gB({G@O!cT2yB1!-N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6ddf8ed845b721769263396e632f3d828d6f4cf
      GIT binary patch
      literal 1419
      zcwUuM+iuf95IvJPS6q_bDCsQ?6iD2Q3oTR##7m)4q|i!G<)LqzWC^b9xHwJ=U%`*?
      z01^=r4}1V01<Y=umZpA*B6*H?=ggeBIKTh=`~~14c2kHEc2C5a_-H$xXiLYpJsFCY
      z2!&m(9=;ypeLwI-SoKcb)dRmJ4;v@48Kz(m@``M`qSLkqr-X!m-jM-ew&n+I`+U1;
      zw|vij<w{R>!e@j`(-qzB(Wg^Mn5<p$_tY`prvv$+=LE7vpkspBlJ7*%4eP?~F=MJW
      zno)&3Q<sB~R3#+C_fB_pi?CT6r#Oz3eC~9d@CD(dJRUW&*lX1tUsqqL6O29XY6jdh
      z6FKCwh-1#gByJPp<w{-M%$rCcsnDW{6w(SUo5&!m(29v0FcrFEVgfe_xti0F2R*ML
      zgCo&!b?5x1aO)y))cf$zP@N(?9jn;?mVjGkw&h?rgZ{JN>fmtia?aD`O2njd>~yG>
      zW!Nvm9Q#FYjq-hYWfNwu#JrG`b-HgZ7Kp|03T5B=y`U-g9aZssWJ#MU63ec3SdP{w
      zyD2;-tdG+ePIcKDtnfJE{GlabsM#?x)a10~xoOK&)0Srj<nwC!n!%q2ruaF{Z=Vs<
      z?0eQ)A2Zeu+_KjDC|DbPELgKfA4^st(MQo@So+3}G2G?nGA9FNIQ3s-$l#?&V49LB
      zPzps#W0ie&_?83n?>?ZB5*pJ;NsViy#2OkYxe1o_0Og@Ln=P?TSl?0la*<qB0GiNA
      z%z?u&384Zjg1qo`ggg~VUc-6>xiCteizIJgGlE<kB`-#jZEQu5mqu$YMUZ3sXRDr%
      Nu+28B={tCW*gu3jAzuIh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..507733cb0860efc53b93921ef5c1fec848b0e2f4
      GIT binary patch
      literal 1284
      zcwV)WTWeE65Xb+MtBJ=pNlmX>t47VOITZyTQVLQm97x*-OQ61Ok|jOiT*Apo)8dO?
      z!Ed5qC@A;={7~ZTNvtu=O9WqbXJ+T}+nL=TKfitl@EkjFgb2GGaV{=&(-v)My1FfW
      z(GtGU4deK5EFZX@Equf7TDc>)C65~&+4Ns~p16!7LU{F$83+qPB{?*mnsnO!8DXiW
      za_N?E+PdNRvMs&pwVSy3?H2RT%wBGXP^ryRn^VPhO~>^22&eh^LTj$q)(0<|dds!-
      zH<q-e<5wqW_bt)uRSlz1Cq(x7jtMZhhFeG^5k^Ww5@|x`zm$D9VHx$dTBygdL`dK0
      zXA&7?70oh(=9yQ4u4;%PrlfTZ@sV^-!+mTL66eC|%ahBlB#=Q^teK8H>e~(Jors3T
      z)=bT93ac(WQ|V)4M9qk>H`jfq-xp6T>JA*~5wbH|!FWy8f)QT&MrYX8mZMw~&ulec
      znDlh*uJ9D~U+#aNTk@^j_nPv+RQFn+30_g@2%6zAY*1SE;;0bH^IV^sJJkSe@g&0h
      zUBif|5wR3e0|HVh^|pc&Cd6%CHP$}znex($r6KMVOXck_U172K4Vlwy<O+9(SQ#nN
      zKv^rMwuadF%poB>;B}eHfCh+C4-4dDgZjwRIfDQ%)fsd=#3LY(9wWzbN_v8)0jSPC
      zn+&O>I7?9mdxrcNPv@O@j~2gR<<oW1m@?A)polhd7#ATFW(KcK2Y;9m96~WzODOZ6
      K48pfLP3RYoAwZ-6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b36a4835394594325100dea37c66b38f2449790d
      GIT binary patch
      literal 1499
      zcwV(sT~8BH5Ixgx$^r#lpdbQ@LYKmV7)`7pMk29VK!g<2_~50z)+PHv+AZKOG5i8w
      zHL)@A!5`os^36DR+Yn;wLrr|S_uR?M>^Wy9`{UQQ?*LYDH;xct{YadMGt+WJRa&0u
      zNMBThFU)*?XRD1jy_zHZymM^NZF?2Db9f}n{$sD<R%9iP2;u%e_8=r2%Pk7KAqk@e
      z)y1@hTQxU4=UCLlp)GSNN1U~DG)~XEWxG+gPWVYB6%uEcLNWiHRi9fSEEjqq#h-~i
      zv|P(yCwy4wt+e3Ps^;lh*{pbu`NWovbp70AF}A4JF9%xUbKUiJkCsZAA|bND*7bof
      ztf3!T5@B4?Fo3IsqyIv>)X6$iR0KvfL=jVHTtmEtCNw0_r_ePG$rie<VHz`pz7sXT
      z{rAUeYI(v?!E)tx!#R|-eI<}EQt-;cE{d9^-tAySO_T7bCvBZe%F~T{r>?9K^sd60
      zU|9)n5ghLDf!C}e--?Fqw-<4w(-=a3Rr*^O`#ipo`P)VZi5E+q-18c>vfQ+k;)$-3
      zmQ^Drk#|`{KuOl)xI@VHVhk(mum&?cr7-^wqKK%GGK#2y1~-p0xRdHmrPR*xJIoaW
      z802$^Uq3llWgQrcO{9#)>{2)#`HB%E9c@B4(y=DS3_adN+RzhCOzQD-Oz4SoXhv$V
      ziK&m6Hd3(wjJCtc;FU1A!PIAN9l|W1_xPir*N9RcL-Y(fJ;x*!FiTsQr)^~E1y*Sn
      z4`>e?bbzPy3cFOo4X%C3QkWucVh#w<E!^h53e967FyH_g7%WyHWkfVU%8FQklo{~=
      zDLWD@e-YWX2`1m9Of<eg|8zk)rh@b)prEx9+7t*&U5m&5ES6o0Ls$+@6DxctgYs3Z
      GA@m#5Rc#Oe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b7e3b4c44f7378f5d99bd55d52f75d4f0667ce1
      GIT binary patch
      literal 1253
      zcwW7e$!-%t5QhKqHi<LD3m9-PyMcI|WD-DdFp3mKiDYS#9Ef}fr?%agv1SRgB!n{$
      z1QHg40}sGMA*#n#1jH9};4t0QHQiO;U)BBN=eO?wHn6TCMc5jO6Y<WpT``chZ@MxP
      zeGv(>-9Ffx*t>q<im2@#JN13PFAusy*^73(*p-2ZWM4yu@cbXc5Q_3VQb#zk4B2I=
      zXl5MQj%nFp)FR}fH+EQGC#+esWKt(z*q$A265cP*cGU8NfqD9*XZC&9+;OBUy{I)N
      zbA&fAw;d6Nt)t&OV@a*Q=^GtFW}79?gK$ZQhPgb_DCn3+kudyUT#b$bDC@`~r>rYF
      zD!59RKT&l*JUf;IY7+{U?aBSv?aJU#bRG7VEx#w6jtFeEo;WkAC4}vn=%?Nw?o!r2
      z^<+S(OjXB>J*8^QSh^sVFc-+Tu^q@hOE@Cvefe6%PL$jz#ebm~EOQ{w8EoHUDV62M
      ztBX4q@DR%y9uXG*Y^;t3>I5zFw}L>N5%MqnIOxe;Ta{;Ns{S<<g8AAW%T3^As9}w;
      zGD{V?chl;KJKWVYKkgJVs>wjHsBT;0;Tj^(;{vZf@IQ^`n$a9VH<~M}>1y^17L96d
      zgpyG#j&S)?a_Sn7WsU}Vj4YWb&^ju#f$QwwR2fi16-z*3-QX{kST}JiA*tauQ)LqC
      zF77dvvJ_j6S?;4gA$rO)@tik4qx2OI2p`Y$tDT@{NltydYmzesBN>}mNxUk?Domt)
      E0kR)T)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eebc68bb4a605512d0c00165fdb669e56cd61b2b
      GIT binary patch
      literal 16110
      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
      XbbXMn$LRVEx}K!#Lv($S>&*WLE`jAJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode$IIONamedNodeMap.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode$IIONamedNodeMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8e43ee3f3face422e3d251c977d6b03c049bd54
      GIT binary patch
      literal 2445
      zcwUWFOLH4V5dKD%wYI!iiX0o0@GxM49wwVO5R4U!9Y2VOBoiwUnD81)6M0?xQ0=Z9
      zlOsop6E}*#zyYcfr%0+GTsZKfD0+6cRPst-9VE?6Pk;UO*WIJP|9SE|fXmod5M#J{
      zzz_M6rklJabXzlp$D7>aTB)>M3D;G-DduTk<)&!LO@+4=#2M1kS2MWP(zf>wM8i{%
      zV3@U?mUjP2Lu=Zm*6YJC%016<8K%m<XUEeG?FM)E$yj7ac>B6Le~BSm9*&gsxu#pX
      zx5BV8w9|mtxjI99os8pPNU0b{GKmqKQ89rG!$>w)mzJ|C6pYc0vTliL$J`UnZN6s+
      zhD_ORaHGy0UGBrfxXg!PX-HyGi77j^B|QJA<O!4ELXcyic+GQkt5wXEPslA3OyWhn
      ztl%YvGkvM5cm;Em5dlZ=f(jB|-;sjXsMgUil%GY^WbS>Wh`AeO-bZr)bB5&RQA4yn
      z-L_l>xkxi@Y*)Hw1qFuH)0N$_9g}+{vu(^r^j@Q097i5+skjJ@n$x~-35Q|&1g}j)
      zn8NakW4O$KB(k_7yW(wznQU!9IqDMfs*2Y!FYB<R;yo;r;O!0xzBEAap-Mmi+-doJ
      z)~{JyP8GxTA^Pn9)gY{tBTV~HbW105SW|IbHccY1Q9#`<>U6gBAKka5;zQgZk3(*B
      z1kJ!~HrF$D>$YJ~R#e5}1U^Dp!A%;jL3R}tR2dY{UUMA&jf|PQJ4l{U-D-*>23BGi
      zr{*pTtL5$cqg#@UZmYP19ir~)4=97l-odKYB9#eiIpnZ0?5cPH=cwuBK)7w*5O;PY
      z4?{i*Rewk(-4g+&*Ow~Zzy%u8h~$BltN1`-CTn)bX^1Udz9?rSMY|{&Qrwb7ox5&u
      z*A+B2_h{ZuZ-ronQ;|mpa};}oKBI`yzXUyZKsqfSMB2$WZ~`iQKS#TpbYp~mQ~AOp
      zOy(aWonLr_sbA?RhH3hq^vyd2wN0+KFhjc;A2x;OF$?%B86rlIq+kfVN_%-r%|FCc
      z;TY$i;niQds0q3S?Dn9kT{M5}$j+p)WP6j&;<U^9xZl%SGFmSDiTsZ!6rLepS$K$r
      zzmR&0>~1=lx%3!|f5@<O{LaEL-j$)HEfJWyEY1-RfD`)$MHQIBJ$hMN&~V^0n+qa!
      znJuG;Ys5q{d><=*##G-vj?vs#2juRYlKVO~LM69Cw2VYM#^!IJwmiQ$0P{f)W~Pgo
      zp~`*iW8R`V2AGTf9vBNSYd=SjzV(sR;7*9dP{${s|3=t0i9G51X_UuzJ?bU8JQDcK
      z&rPoG(n_lL`G5*9hxsP*B;6NL>>qk^?8Oc$!|)Yxj3S<3`*jrYry<$Ku;+U=(1iRG
      Kk<kQoOYC1$*$`_0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode$IIONodeList.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode$IIONodeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf8c8f501a50773be61df26978ba813188677c7e
      GIT binary patch
      literal 1154
      zcwUWDTWb?R6#h<<W}D4g)8^tOYO9Sg7wz^EeTfJX5CUuaPzm@Xn`B6)Y&NjjX!Yj^
      zr7t2Dtf30xvp-5avt4VNr##H;Idi`6JD1t{{pb5n09$yXAwt+bu;1E;rX1KkA&2Hb
      z_;%O!ZL`_jdl}lh!>%Z>ufCQX`5Iz`l;W9=?e@&Q_JQc|X`GN5dOh>qPRHyH2j)LK
      zVX@PfPS+DI^Q?e4_N8O0V4V>6`*Kv+B$TZAicy@W(v|)*LUnFZxkZRI*h+wK)j$He
      zjwqH5B(Xw>mdY&+8AAGhfzLh9ey^(3k;by(T{ECzk@=Q%#qM~}7Tznn?Fhn(HSE|<
      z%l4%5!^4<rjZmAj#_1_@lQHRw0U=vzmaW;r){|JpT@7o5rOOjFa1ZND9?1_PXsfB9
      z_YD;Bfc>8EL&@12tZOLq1<ht6EJ(L24hhsGB$#grx99f>Z|0u;oVZK<ms>gy+*H?N
      z5cK`w*z1TFQjIk;!`o2u1f%J?!fQD8Xe34&YJ}o^c?rp>%vj^RQC<s(@Jr$Q22v^Y
      zzpxkMGcJguSJ-PXPGPc@>M52g6Qn9XkbXTu_7u4j4n%OBcRc_dvBWWMu%+ls!cFA)
      zOSpyGq2N9v6?QdW`HI{b?hrmAt?c|63K9H5>6oA2mka55AoV$r&7D(2S!GpF<v8IX
      z*24s~z~_=K^gqpLeVZy#Ki5iudwvuu6d4^==t^~hjguMnQNWG_YctrlupKC=ygPV|
      F$X{XK19SiY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..001f1ff7db206c5249d5f53b7c9f25dc4f328b50
      GIT binary patch
      literal 10716
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/plugins/bmp/BMPImageWriteParam.class b/libjava/classpath/lib/javax/imageio/plugins/bmp/BMPImageWriteParam.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7701cf88b711bdffdf975db29e98410f32bedb60
      GIT binary patch
      literal 1248
      zcwUuKT~8B16g|_H?FWn0@+pW4ij?JJ{iq5QQCq+?DT=g#1Ru<{taZ$Gx7pnyJnOT+
      z#1|7A5)=Ia{3zp{=~`=f@@3|pJNMo>=gge{`u-EZUF4$(F)Y3}j*SzY*NvLV9lc>S
      zYuxtqO1+`yc6JLQec*E6+%;UI9z}#<>fer@5{9VnG&Y?NHUm3k2)nfkL#im6bjz@7
      zddYXWUCS~=T+3W(ZyAPoh5K*0X&reCO0Mu`?|F_U6c`5bj_vt|?e7~_(+m@L&?Tax
      zxV0i6>%feFBuXWiE0nhjTgA<i$c1U<I=8vML5$M#`*dsGIWiM8X+p&)CK*Q3ZH`T!
      zTYAx{8kU(Ag@Z+In=hL6is_b(ie(Bh;&k6|xxhg(;=kj>e7X2Per6L0V<HAMPDF01
      zh$0q4Qh?hk;sT@um{*YyU|4`f75#{bXjw%c6cOD~={*%<RyAxnJ@3>TuIYK^Q55$X
      zlD+PWrUxn>;t?HIgJSO3<<o{qDu!NPd@s?ms$vZ>@}#GQ+_j`*otN%*ks;xke)-R@
      zh@=mNuW{~mQuHMBRT3qq=~m5cF6N9~bZc2m#x(H|PZ~!^$QR#1_$K#wuqT4OU+&{j
      zF+g3H#OJ^u;ba%SOgPnrhX@aM;SoeA9>o}~<CMuzj?u1Y><m}F%9^Y4&Je8?;#9>H
      zMQXbW*Kl3_So&nagmdCAYqf<l+|W|fEzD@CTP@6Lsks)?T1snSK?}FAq(xfLwdfDr
      zYaye3LnchiOi4r$T4rU`M@w2p3M~sIO%_te%3pSCQjJaQUXm-jr1}*p+9Re8X3)SK
      zT<Gwy3Lkkiv4dkA-~<LvrJB(|U0aQavREfQ43Du9=-Qx~kaT8}sP{Vak?#J~HB0Ht
      jQsg^|Sx@jZn59b$2yIJWI-?Ys{M==5U&r8QvMTo*u9xFL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..deac559a02a691c978565d3aab30a7066eb95994
      GIT binary patch
      literal 5297
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGImageReadParam.class b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGImageReadParam.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba2a146aa6e98e3d3904f22a91c2a58f945de627
      GIT binary patch
      literal 1750
      zcwUv1%TE(g6vn?xTc!-<VFeT)IHG7f?NDE6jK;+9@YR5dAyHRDxgCZ~r#PJ&Soqi(
      z*SLm-CT?74qL64(SwZ67f5&+4%(S#XQr*nCbMHC7``z!JnO}dtR{)&H6$vd2+JgRE
      zU&@#T-QZ?1vuKqK(=KHe7P*nRdw=}a9kK9`>vQ*YM=wYSGaPFyY0O}do;}iMEnZ?s
      zJk2(tKk!noF?5ZM-Y)0!1>LR|4>v8YFA#{EyAiF|P1|&DFoY7x8HVs^agNIfp)&><
      z?NpI9Z9Z8p%yP#oVTfmoIo+Dk9aFpqlVNw>BwD7Ko<<``QA~GyMroS6o{A@JVCah>
      zf>zqT#N9ETBT-esZ~ob_rg;tK{9kr*M#2$>K~a;jblb?>u`F)r)=kGK7r5<?FXi~6
      zYZmP&jxluDWy@0ZU`<9p286#S7<v=g9mcfln6^RiC{8jARP&X2y`;FsqC(p*E8OB@
      zvJ}NBhM_=};tE-`gQG8(lsPk>=Z<39ip6ciotH6$GZI>3IEw^BBxe<Ey0o4|vTpOK
      z*#(|+ugOqFZdBYtI)-30977wT3<t{go*R)3?mno#sEK4#Cu<!Yr^-D|eeNF!yV_cC
      z_H?#9T`W5}K4FUfJhZp@hQ%H@Nrwy3w;n=^=r|g+h%<Y!&5IIc(5FDp7`<Jj$S6kC
      z4Rn0*(z@s=Qv}8k#yGlZ6!VjC0C9>82hkG%Mgl;)`W3xfh=f0dKGiU--qKVZqP>PV
      zgu?;iH>nL%<f$#Rr?((!+vxa#{>Sm78#w+mRgvDKD=nUFT1EO0tSMqGUC}CQ!Nj1L
      zP*dwTy@{c3=vC9}NNz&?hLoyRhuY2=he-@=N)qzu!#oCIB7p^5fQ73lU=$@x!o_2h
      zF^A{gAyi*za0oGq1c&6F%`M(Y7#*V7OwHyAS`k^@Dig|>(8L<l#69v0;=LsIU(wv_
      zI@`Kyww<HjxX&C7obMOTZ$lR0BRWLzJ@~xq9^Tdg`)j}pUJnT1y*gmZ2c~>r%C~O^
      n*y%Od3dMJHjVt?tFYOD~e6Z$&wf(`X6xRs6x-WRd%f9><D)@;!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGImageWriteParam.class b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGImageWriteParam.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c734fcb59c4b0806f607dbfb4c3057e14ee4f7ba
      GIT binary patch
      literal 3531
      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
      a3OVYK<lT9(q=eZ@7m>;Wk>|v&=l=yQz)2GT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f6d57646a1bb8459267dcefc1620c94d59c248d
      GIT binary patch
      literal 3025
      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
      OjJ?>hH&dS1Df|E_d}3Ju
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/IIORegistry.class b/libjava/classpath/lib/javax/imageio/spi/IIORegistry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45073b1d67efa0bd84925f7b62910642385f0e0a
      GIT binary patch
      literal 2596
      zcwUWFYgZFj6x|mCqj5B%JSw8%JAj&Mv7$i~u!d-O6c7|^<&uoaK$saO6V$$6_DA#&
      z__fuw(3Z7ae(PH8Pw9VXyYD1{m`5#-nKS2}bN4>yo^#J1fB*Ixz&ZS=p+Vr_l3bII
      zBj$=s8>St}Ic6jtpO`YzX3le;Xb1=#sWzE5+%+?4l*|O0Q^rG?&w3-$Gt#ze8aaV|
      z3FR2cduBE=Ds!1>!;1>+Fs+;?tz<2WG3n4^`#>^lTBbKBur1s@D-am5Q-+3JgsIvw
      z2pu6Edk_?88t~nAKwz(qMl@+?sq!I45c?2PR_!`8Y}c?~psPk6lssj~l;KW0rUE*k
      zqZ0>7OQuo+t>FUwthCaRiNz%&=|#KeH5{(L+nj59{%#tM2pq3tHRDPvm$Xww%VPp3
      z>R84tC+|&rt|3=^(-Q(G>zGdDy>eTDP{Oo~@%+l7;m*j#tihxu?4-=jO4n51C1u+1
      zt``nBUOYLLM7TTgpM?_*q8Dd0oEF%#m86*r(Nj9kA|kLWnRi{o@(N0Umg1h}rv5hP
      zbezWr0=vnippLnA-VxYe!^2;SsuRAT<3n8JVbP6gsdZS@svxT(q`WWdh+=@=OqxJ{
      z4e$T8pFm@}K(@UORo1(^*+z%onN=ObI!17vZmN`|XS)Jzr9}8u9xv)?y$v^1Z^Q^6
      zu4U0Zt069MDsAN>ZzDUTIXNDy?15309f5?7F^qH90(CAHE`&+fUNdQ1r#Xl=SraX7
      zK8(cTH!9I45YjMR(_?YPi42cTR(eb+kJ)#6Z1!Ogw^c-UaZkg1saEA9FEV4>*=5ty
      z@d@tp4%upg;zC)ymYMtY^FYUfx{kU^$r*B-teKRaX<H*%naerS%MhCvV8F|mIaT9H
      z9VxJ}S_w2_Tb}XQ^Gy@B^warvsh2JJh-n=eRT8_D_vQ_}6HCZySY{7bAH9whSR`N(
      zsj~Nq$EAT~8>&DJ!iA@S+&fi@lcjh{BjJWja`z`X@>rvH*0z`PPN^*DH5jgpBU&f0
      znkB8_aqW9EK2cGED*DfKe2y;!w2aJ+`+;(x@R*yj#k989!4?Q6%O+V%Eh_B5qK%q=
      zRZ(%$Ia^@|r|rDU?3n6G-BZ@mXO$nPF{yDXH=sk!ElNQ(nfMOyxdZBuck=5iTBx7l
      z4d{1YV)qL)Z(tv#))#1dj^@4Zt)pX335QBTS4lWp5{@h37a#2;pGSS1i^RBu7F@wW
      z3{rm;5nMw*hWL8{r+jOm8)5zzxU7<~uX}}_b-aJ;IokN{djpZ^{T(eE5aiXLQ0m@w
      zT$=0sc@wh34>86NN3j<-(S`&L@kTj?Ngt|>b{dIYAr;V~opi1dwn5GLBK%Xr3%;-R
      zFs5}3y~Ia78yF?#&2`+OI6?8_f;dHSrXb#?I7jgn?#z+yr<HlQO@KRS<&DsVc{b)f
      z4w3t~j0dE$;FHq}u#lt#$_ty6UUR2LzDNCxEGGDPIQ9(ZPyY(e+c&WJH-4t~6;>|?
      zo}syCf1tSVh=kM!3+bnS{yJS0{@mi$LkzITHJHR-Mu^?p2@A*IaD5ehd=F9|L(b>e
      qSKv|PsPPQHWbFw04&ZBi!(BTW@3;7lNj!!F_@24|*MIO4pZ*KfA*>$&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/IIOServiceProvider.class b/libjava/classpath/lib/javax/imageio/spi/IIOServiceProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d39087a4423896fb7d99458ab9ba2b1970875c7
      GIT binary patch
      literal 1399
      zcwVJcT~8B16g|_HE-a;d6;V{=o3@}E<AaG15(Ao$5D<z@d@{o_S%++Q>+H6HAK;_U
      z{tZbaB%0`(CjKbno$2yr`#|Jj=kwfi&b@ngfB*UV9l&Eew2)$$Ip9rx=*SxPgbbai
      zE}ixDt%^`h>55k>Y|4G1EMyo4G}7^T;5l1+2f~dlWEp1L<9CE7qgW`u=Zl1h!ETCR
      zKUAB%Mw_9H3$9A6WZ*3^SWTfK83qj5Wf{nLg<-zf4s1UuRT(m?;l8kuMm`4{{S4`1
      zscK=6Vd?_E?)$>y{&VFuY9feV9J-<&lcJ3Q<a@wS$iYIlUfs%}2i*+)8!`}^joO}2
      zyE-53J#@KW<x1*(a+rzV$%tWY<2u!(T=QYjs*>WdN%?89LueA0AdfDmzUuQRGMV>O
      zq!;kGp~%Lw|6y4!uNb0kl^__VuR%irE{}y5>VUyEYgEFkg*vLA6|2z60rgiHtO<3c
      zDt(@atC#wwP%L%o9NWN>=E>7$O+>De^%luo(nO6|`i}7=mO9f^!iI9iOQ}tcw!gPW
      zIwmto-I1oJ3n^rDyU@p!(al1$MdvnpY0S~?Jt5LGKPaD~Z{a7b#b4<ChJiPy82V9O
      zIKgmv@dP8s1W93(#xZ1R+#<SdBG^FzySRhb7)KSi>1LuuM`vSzS!sD@R@y+y$oD7m
      zPiWS6U0VJ^#HJZ|OCsEm=31bHl;JM!5#qkVj~k+GdbBV*HVaLXH9^rOSM1ysBR3P~
      zo?#MGL^FLZqfcgx&)MtCe7J$k9Ojd9IOpZ~g5l3ND@RM>W5-eyI|h&Z8~mv~n0}Wf
      Llnu#(K`;IVC$lCF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ImageInputStreamSpi.class b/libjava/classpath/lib/javax/imageio/spi/ImageInputStreamSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..32ba8ebfc73682decd90c223d4d549f29c6b3f3b
      GIT binary patch
      literal 1458
      zcwU`UT~8B16g|@xO3MQBVFABUkaqc4i7zH4_&_AqG}NS06P_HllQN{;t-IR>AN>RV
      z5+5{CNPO@I_@j(>W|y_JjcI)8y?f@|Gw0sB+h4zb`~<Lroiq{*YiGR6&n?;F4Iy32
      zZ%eDB@{-f;1l7P3yj5+>G*S$!L#U-nRd`)#i`Smpm384UWTh(IZ*t#fm@TU!tI3^)
      zrJ*82rYai_4?3P;Sm;0BHTQ@zzAGIW>@g(sg&IR@->r)*l9)1(L6%{rEFE#!X`Kk~
      z4L@m;&|KNId9%hnsh%S+6`V>kv0fgjNxJu0zQ+$8NT*T!CldCgJQn|}RJB{Esn%|)
      z)^cQaB%MMn1BN97V;HBAcZE}Ty+hv8lNew#q`SiNrRy-{t`F)%`)XKI4H1-jRyUt7
      z3|U@o5Diy0V{_-o7yH~k6$erY((aBKrX3;beh<8C)4YS;*_RwY;EqjauX>xWoSX?e
      zC?1Cp?M>Ae3;oN~5(E1rN7)zWwrB^`wV%d1HFTv@s>COKdyB3d^^Pp<z%=jxD=OPG
      z@Cd66WBLQQzKBSeOjX^EXGf!08uAuytD@8j=_TnirFU4Zm|~iq5}2TvQr`d}lY~5_
      z$S97PmoUC+$~66EDFO#XeTf;$jF5yInAM^g%n>7$oYz7QU6)c!b7S)o3+C2$EGoUE
      z)|=L5j>t%j*l)F_8S*1dl`Z3zzQ@3A$`U$L=99P+dr-&(Aq;nMFZOU>d$8hWzG3l8
      z+|0NJ-wkbqMjuULGb&CbKlfF>@2O10l@CX#{5V)i|AVw-Le>aNQG5)A<mvn`qEw$#
      iu0}9vZkQJ+unTPTxAaNN=R#UM$4P8qTU)X;|H&VkDLL{0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ImageOutputStreamSpi.class b/libjava/classpath/lib/javax/imageio/spi/ImageOutputStreamSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fedcfb430cc05cde1689451c9a3194c394b8bf50
      GIT binary patch
      literal 1467
      zcwU`UU2hUW6g>mmQebWEht$^3YHeZru{OS#(A0-UBasvnEGB(&x=iRau#3A3sgM2u
      z|A`NpXq))p5Aa7B@66Jb0x`rF=I)tu&)jqG48MN=_z7SKJ1Ha>)=qhspV_j-8$x<^
      z(3W;d#g$Ij?u6CQ7ra$%%M=WT)e+oMr7HZcbi`}l>&m+D8M2<v-EZ<BV3;kdEW63w
      zhOMC@L%J#(E)P4tU|1O3-?jFLGPx^V8SXJ8^Mx9NvG3JI21#5qkw%7LrYv1?&}khD
      z{|!HGlF(e)b9l4HeW|{Cpb?%(Dk5JV&n6xGG~ZVcZAiCK{3jBbQbiX3D^>X|)Reay
      z%3F?MeJq_qEe(d7CMGb+km(Ay?)eA2rCTw?W=M5~A4tz-$X)H!hxTQ+rW+!x^bc=7
      zUl=jI+%OsqZN}m5VIcOob0S_yrAX5|B3)OAde8?iJJj&-O7}}{5OUX{%~$>QE61n8
      z35!P&M59vz#lqk`wZ!m9siw^HGe@*TG9IL`PL?i(N|ktrVRyutV;_>CIans{V?{-q
      zCLUsyZgBJru1=#TO=VTRj_>r^u{7!~ZmTR~g%p$YUg;{ULDQO|uLP!OHPlleBumH>
      zS{bbq)&<P3nleql8CroCM16@Fip+?F>zLJ|Y0MELlAPB<E*)nmrnRwofdy;pI~J8*
      zQtM6YVh*X08nNGMO)KK}G*z^OWqpo`TNEX9q>4}Cc3gu(rU+rUgS&AJ_jC<*Y~~vl
      zzr<!HHTZ6%5o&&~6Pvx{MDp`M=KH?PM4b6xjLeV2ne=~1V<zMgVFs;hP)MHk{~}8D
      k8O5pvS!=^OM}eJVW6;tkEuV{MaUZkT!nQ8S*8InR0PV0og8%>k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ImageReaderSpi.class b/libjava/classpath/lib/javax/imageio/spi/ImageReaderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4dc323ad9be1b19601efcafa93bb5b60c587cc5a
      GIT binary patch
      literal 3023
      zcwW6$ZBrXn6n-uV*<{&-*Pz=91}HQM(6q%?E7+FuqEX%?5QM6DlWgNM$tG?#y!;h^
      zgCBHk>5PumPdej|ay<8L8bU}=XBe3Y_sO~EocrAKcJt?7KfMBQ2U!Ij43PtV$d40d
      zk>?Gwl&F-=L{i{QgXau8RW=oP873~(+ObVX>N51Fw&vFs=QkJklWQB>Tl-tP8%qp*
      zPgjJ4M1foR#6p2rDzgl#X_c$a)=Al@Focd?`&i>eA?R;3NjbJ@<;liBmo1o<={#ic
      zL}O_N??NeOC<rlhH=UrMhhe;lw__W;=u%IL(^FCq08!M?2_LyxF)d@QTFe;s7S9w6
      z+F2=Oc_GbhQ+%%peRGnA3J>1U5JneKalST*_~^<%MRb<2>FCAVU6iy4!M_t-uH+`5
      zh1uSJ_0(Q;g|1?05#_f;l!qAe|KE|j!kb*7t5{mW+f;048_7b!$n(Oyov#)R%UL?k
      z8fC{US$>Q#jGgsbq{vSqR>_HEjEGe&6e1-%Vie2HiHc#2i74M-2)BrGEG_zELW2UI
      zKv4~T1gMV>4J%i&Mc;~MxnRej92$0os4#R|Zg=}D)o0JlV*vxJ$<?LW6zH~PkH`Xb
      z{oSZk%jJ^oR8kJNa@@|j9lL5cJjWfrT(XPYVPJa<!xneUL!*^~>uapNLc@u}#<64b
      zc3z0&SX+g<7opWmT+V=I-a{^>7JDw4(YE^yjE5wlHa^5eYPa9WH<abpqLHO(DhFdz
      z39M%hjI1*oqcE%W%Ayhbhz7OPqCuBjukSDnWGOsOZRRDd3I!o6s77Pb>)Cj07>%<k
      zRn>xq$5>=Yv^xG0TZX~B;Yi6&(^C?T##%lmL1EDF1`V9od;LyznU(b;%RPq5BYFvm
      z*q$FN#KbM*=1vn$v!-DkajNukp_(_XdInT{ij;y)hMwkYYuLgzwG6S9>J;)?6dQS}
      z2x3RWXV|5FBUQIF2F_{LZm!}fzEJS_xwG6o4PRo8UN_^LDlgDUKD&19>z9UJO_i#4
      z)>t;h)7XFhwYwz@y(4sY5B==$Ko{>UA+MMta-}IkYk*c2U8JYcw|gWPe?jjr2=03N
      zx>G-*_XiSmpr8JSq_cO(Xol49U_kB&XW_bw8Cn^wo$;3#JTq0L;sa8hlV+N$gg1#9
      z2#0aab--59D=ik{lT*{WSMSt);ef8{UAm?R!y&y}@6mhpzL&VJE59S4E3dvq@MjF~
      z_C;P|^w+qqyuf%|_rJi+v*YhdZmUFNjc&1yK5Sr+l79`G7@<s0U>j3N<36Qw4!d}Q
      zJxTL7mr9MMKrzH6^#x24>X2xPBI1!~nvhqbTZB3#N|2sUA`yB;BEJm0K({H50g3LC
      zo+{A{p)QF;tTl=55eiClpDaQWy-RxC61_*LN1_L$*DKNcg!<@L<SgBY;RA>~F+8Nt
      zW6TrtGl@9iHc7<2d~tS)C*Rj2=abS*L(+V1G`zykVw2}3EZ6EFQLlsNxY_LPpk)nw
      zh>uzrk2f2aS{f(uam{#_av}0EH2FuZFg}rm@f@p@r`R|}`V@QL;e1g$bcHJ6Bk6q5
      Rbx=?H5cctv<iw?2=5J0N0O<e#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ImageReaderWriterSpi.class b/libjava/classpath/lib/javax/imageio/spi/ImageReaderWriterSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60acc54c65bc9c5f15d85b93aa12963414ad5926
      GIT binary patch
      literal 4061
      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
      Uz@NmxU&O%Q|A~Q1qLNqt1!8WG;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ImageTranscoderSpi.class b/libjava/classpath/lib/javax/imageio/spi/ImageTranscoderSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7eee7996bf82f9a4a57e5327e13d4ffa7dae67f6
      GIT binary patch
      literal 694
      zcwUW?O;5r=5Qg7{Vzr_uqWE>t#3-P#F&^>bU}8cfYJ}i<EgM_|Te2;Uf6Ehz2Y-M+
      z$~aq^_yH#NursrL=b4$^egAlU18{^58!3jJCm!)<SN3>ENZ$?m(ybZ4sksU~zb$m5
      zFKt+pm9?9O(2?}St@a~HVuq;`sbqM@kS>*54AuoP9HcRmMFvw0xw=&1deD0iy2&59
      zf+1h`J>G3`Elr$kTH&J%7<TLb>95MLSBjNxm#dE32(?t5>iAB%Wm;J<t;{nxkx*@4
      zU-Mqv#h9AGj)V@RuNXEvBD@pa)cZN{D7#Q9Ps%r0_gaR3WUYEy@bKF#H5G(hdGu>L
      z0e+4CYiy!B4S%3LaVgD#6~~X|&;YD$&|ScM8Cd2HD7Gm&Cd<rjWr*n)a#C<;b;tsz
      zBt6G0dD)SO>>OEUPA&n|2y4K0W&dD^+;7AcRjS8`t&uE27;h2z7;9sRycE5z0+wN3
      P*-B!ISdGiA#nkmr%I>BR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ImageWriterSpi.class b/libjava/classpath/lib/javax/imageio/spi/ImageWriterSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c17ba4d7c40bd97113e9c91bd308695d5a3fd38
      GIT binary patch
      literal 3443
      zcwW6$ZF3V<6n<`-X47<&zR(m`Y)yG>(n3JQ7Yax%MJsJnlTb`i>NdFz3!6>Y-L&O{
      zUv&Hv{suni2<?oF=qH`=M>(E*cS+K`RGeYVhwQWWo^$SVUhX;j*WbUq0B`}ef*ywW
      z1ASZHO&Mjq#EnYIsT!$8f$!Lc%k6B{P!M1^-9;+H^&+?HvJ9iy+}z5Ixy+4?^zGd0
      z?c7E#zq-IMa(78sNSV4-O3j<P<IFM)RBCRu=H?z(xx)~(r7g0uqL;<Ok!GE&Ya3RH
      zltNburePWGHHO})#2Q0jzEb20q6~vAM<^I-XYSH5WsiJX9-oyf{UDMm`Vb^LONPZ)
      zYUNFC=k!gJ)6P<*pqp#DZHRY&F?dDt2%{HARm3nrT-^HxF+aZaZ$X`9?Cey#d+jS7
      zV(@B9hYNWr=%BX#UoCZCdX1(MYa+^Ti71aV7W%&<_ZmHUjiwT73f`t-Yiul<CNJsc
      zoL#Dwx#ceG7I@V)Dpm-S3`cil@yX1K8x}X5xK%UFFeY$9MD`>@tV3iIYayIwIN5Yr
      z<7NGE+^V?oO)gEuD|VchtL|fQi>6d42nv)`5kfyhc$-_riY*QmSE=m;24$Pu4iRPO
      zv%Je6a%x*!#;$<<%Ztkkev=q%ae{a`wQ99uyH3{Ct)gxhz5Be(UA?Hg`pt@6)?Eg+
      z&M;x=uCdKK33#?nbQfqkaf0u<w%*MOkv!2=pl(G-wGx*dqLuf!N2$Y}N9K6f{U*la
      zl28{LqF;5}Z{`~<=+=T&pk^xt8BTe{(r9yXT_h@7<ppEQ;Pz~S!anI2mA>P8qNxnk
      z1Gl;7G07;HYa2xE#=^Lcc~Pi0Ucn|c42GL3u7U<dpW!i{I9!RQSAlZo`fYmAawsze
      z5x=QKCs#c&QVZ8_8qJ(#nq2Z2A(pQ12tH{Qi&$kyHD9yz<^x`EXAeJNti;`>f!i38
      zv8hDIF&QO=bn|!}Jt+8c1`ipIm+Ga8<CxrW<XEMw4H!;($MOhJ<T~csr<Yg{fi%Xv
      zyV=?tL?`%C#aEc2>svKzCBv$hRTvx46?{!RS_7hD69wu6<cAcesQOuGb|8!hxQZ>5
      zsELrMSMQ?-B>k9#Vc?;H2M5mb_EeZC(?I8sYP#vPw85A8ArFH)emIUDUJltx%`Whp
      zhWJW2a&YjU6N-UJib*ehg!MubpB#h&qG`$}wM=>r&@)W`3@W`{qIL0$1b#&%-#apx
      z{TahQ(LxW7(0^1Kdyf<^k@!W7${k@WRyT2xo{XM-$$gA9RKrqmmPD^fHPsWs8^jER
      zV|dduz={}_8kywu%vmj<^=ZLazZTX8G*yelqS~M~qz!8$`#7cr|3u_DCh{ZkeH{Ny
      zQ~p4|ro8yUUpyrilbZ4jXOddz84?XPm&p|%O{`W4eU1@iForB~$YBy|IE_0vk36}#
      zPMq&zfy(L@?vdn%WdFOz&}T2uG-jkn8Js25BhfhuRIfxSLIH`+6Y7)b0?7p>5*bk>
      z5;+M;^bQ5GU!r$OE-cX{LIV<s6sQutPbebM2c!{|=tGhll;|>{A&F*5Zdjr#ghuF7
      zn>v<^{8fD9r*4io3g(gIb6n3)@8jb=EIg?PEhru2G5}+qU_Ag4e1cD9<`?l9?cIW?
      z3Wg<V_&lu$-C&aKVdcjbiw~O$BIsER2s^8^(y+rQ_!*yQs$OGHk!UsNbgZu|Wwu@U
      zOsn#4N9Eg85}xvmuiO)8jmtMpnmu*RJNUxa%u^|dn2k@rEZV%R&!@OMy@z{yDDL5Y
      e!>D)Fz9r|sBm8|+(8udRABTmCBvh4pkNyFP-)TMo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/RegisterableService.class b/libjava/classpath/lib/javax/imageio/spi/RegisterableService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15fec31a076028cb9f7571736896460d070f0c5c
      GIT binary patch
      literal 336
      zcwU{4&k6xi7{$-^Z_JP^y@0~P%}OB~vQo;F{WX0}SL0sY856H&;Q>69+(98$zSa5F
      z>DPBI*V7q54^;;_hUP}3;=turgd{bOcakqDlyO2vtRwQtq%t4}1%`T7<&jV!U#vG2
      zBn&mJ9&IBMsTD)NHUAbqCC}z@IDd&Ik%;4Ad&S`TGE^ej8)6vzV;ObEcTrudDVdM2
      pJYVlkKr<OxdE>{vZssa6FyxV4&dx2OWZB6GWy|h6+vMF-<pxLIU@QOt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$1.class b/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3cf058c554ed14ae104ac4b4f726f49738dfb655
      GIT binary patch
      literal 1076
      zcwUWCO-~a+7=ET**isfKrNu8)um##h*@8!m#t=+MYDq*$z>C}Mq#d%|ZFZ+k{VN_l
      zbI=4Nkp%Ak1LMJq#*4qf_|B$6?FA3h?#%l>AMeNK-=EF^tl*)J7(?#B?$}*RH0?SU
      zz7@8FwatT$aQF*e7oiN^<X3cP3@MdpxwcogwyFo*kvfJM($Q;M3fJ0{Jg}u7FboN=
      z#=8t`lVMmkM3^s;Q29!wHA;UZJRu)5EEN7Dzqrewt@|}T0)`0#BS<C@$E1N#q#5Fc
      z;;xEh4CqKuMp<~g(r#9H@Y1fjoa~o<$98w^K&X4~QB#%~=C3x8Um?qS!wxIFD<i%A
      z5zOF@j@t}#SHcb4#VkY8u_dqjf#9T?epS9~^tx+@AxUUn#Gfe?%Y#!`OHzS(12=F}
      z#{$Fb<v=R_cH3!exV*_dxzTlaOA6mhVjh#!=zur<4%cBaEMAiCcwxKM@&n0hTP-zD
      zLi9n43Yy&Z+kwNM3DvC3Kuybvi^16RJRU^;RaFxkp5ywV@aoUGZ1^>U_HUJ8tj^_n
      zU-8p_3;buH)=;7v<8+1)qt&HZ0;!amHr+HjqcA8sMqf`UL*-1EOUD>DPmnTW$C&y+
      zPcdZacbte2QGFqTub8Hr0uuz+a6O7qFMD)PB3U479$|{k_z`ZMX|;D4(hlQ?7o@{c
      z(ziac>;>5z?)Aua$g7Iw%#X;u#po&K_fD{Q-s3g*NJD$QPj*+|5BU8~MgJg&Kl>zd
      w7ZL@edlIXJQnAD-ip0HiK49@zA3o8;$8kT(dVpp6SL>vrAWjRay)!8N0Y>xfIsgCw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$2.class b/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bec3d35381adee91a53e27bf25b9e5130417267d
      GIT binary patch
      literal 1168
      zcwUWDO-~b16g}@vVW1ssEui=<QcAyIpvb~h-4Hbm1q~P$>>k5Qd1RO&Gee_4#XsPR
      zjZtE7VO+Uz>q?_WjlaWq-%u4O2_*Az=iYPAJNLXdAAY}i3t$Q}COE^$hG>Z=w%Qa;
      zseC)!QudMzTFQ}&vZ=x-c$%x4NHAnH&~}B_v>&c+NGCGU%`gyWw<G1+v;O9m2t?!u
      z4BgSX3UiZ0-#C%K#?aFeZqD(&kRjdp&p0o(sMvj5c`CZgFjF`M*^&0*GDBk4Uz5Ec
      zZVM)Qbad82FOo?Z=(mu<0E1D`&~!t2a$$RORR)j6sw)|?4c`&&vIvy^ZYL9ZJciMe
      z_2jBFf$7B7P~+JC2nTJfb!Lk76fWbci7O0!hvu<x4cAF*Q$`H=W5|k~DHAsi(JaX*
      zg<<3@j3Q6olkbsG+WW!d2v-=mKc$W6sOd_TfgRa4T7XK)C4W0`<b9<L8#rRighn%1
      zb<dN*tSiD$YLa`N<NBfUn)5PR_t#9&y2B@WY+)KV8T!eTcI8pvx73;ph;#AaOz}#!
      zQ|ub4j$}|<DIOTBP8of=YnY@HWYFCOp2_GV1!S`NK+%82=}y6-Y9B>+=-Z%ox>Vl9
      znNnpJnbK=yU&O#cdM4ura*Kb&If`^6!Eqi#asC1>wy9ncGC}XTa^*R?jGfXeWXgNE
      z#PJTpbS;d(M|!-nhY^lv=;AS;(g7&{1tfNioqsa&q#pbewS9)kzhH=eMV@~{fq%y>
      z{sRyAPt^IZSYl~kMq8qe#!!f5&!I>Wr~EXb$~3uwO1#E6CgNdPj03W;>6suWtA7B9
      CS0U{H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$Filter.class b/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry$Filter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4a7a55a6e5b4f85e7dcd906fe050c2d5370256a
      GIT binary patch
      literal 256
      zcwU8$u?_)25QhIb>~csHJb*+&W206|Boc|lb-HyKmz8s5_Xw}1@Bki4?9ypWF*C{k
      z&p+Sub$<Yupe+#*hI@U{S7i=5V{=sQWK_cTVp3jnW?X4+gSp8|wh~oBC%9Fvi%hMy
      zdrnJ&*nMO|Z@Bzbr=txaPL5}rvQJ?`_a}TDP6(|<QLvrm+BtR-O+x=Kmw){w69hs9
      Yp~y4VAp90VetI1ZKVt+>jFxD;0hp*m`Tzg`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry.class b/libjava/classpath/lib/javax/imageio/spi/ServiceRegistry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dddf6f4f268dbcf7b719eff9ee7e645835fecc93
      GIT binary patch
      literal 8702
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/FileCacheImageInputStream.class b/libjava/classpath/lib/javax/imageio/stream/FileCacheImageInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b82fdb238a19d77736535ed3ed265065b042499f
      GIT binary patch
      literal 1455
      zcwUuKYflqF6g{&owA2OcQhWm93)_Me#0LtRNRec<NDQV4@@d&Fu(0itb}{&${9+=I
      zXrkXV@kbfY%$8ExnrNEt+`0FjbM9k){r>U|z%-u5pb1RwSnsWaoLjcG9M{j)f~sSc
      zb4#x0<Sl#KF{R(E?Cl4uDiT9fAkz`knrfE!Jb~^oDlk}(s2uZ~a^?i$w$xd4s{(zE
      z6sgZx_q<zigJ%L`>5k~L`I(|X;>CgO>;<l0sm0JMFwlUlG$I1gykBw>h~T`A9wY@K
      z=}fT)OxMwcZfOnbh#@Y}UvMkV>;3YEQ+;b~c#eQk@NLU0T2)ux>&|Gf?bZaQ3ja4w
      z_Sj{6evQQpVI+p(=88|#bX<{DCdpv$hOWFsmEyQA&>O0ZDxy*XI&R9gZn25_*gUJU
      zl_SorY^f>5-I^+=q&j~mpr1HorCh|xb=fKV)emfs0%5Y5;BY2%TtiY?lR9#kB0<dw
      z7TjQEbCU-1(`Ke9d%CA1gRDR-y}n?Y5<P?m(l^7Tk`-72+WG=F?bngQq>SfqNr_c|
      zziK;SMI(P5p?bi$&RQaT)*64@pt86>o^eKckl_6sZ&BWK^wC<QM<V*O$NY~U!pKe>
      zBK1i@FYs$H8JOkwF$v}fn#V<YMnf1b;WD5sDJYaBB{kYySDWBV6#-J&&oF*algAOR
      zW(B2NRiBe7Pt+m?u%uM=5L;K(<ow$d7Fn6hG9>j+^nQiDW{e)=#`jbHK2`lI@)yXk
      z+{A6vxdm=xj9<w(!BfVx=*I>_*z21nq}D**`3GdNBQo8NjI<)xJ0khM+9r{&&pOHF
      zj%OoBxEoG;`jj#pghkK>*K0RXC!45e+Nevk<%&{gsK<wfk8r=0-DTzu*>@FtHpDd^
      YP6`k4sJ_-&J~B;NPiV<C&MB_>Kk4N2w*UYD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/FileCacheImageOutputStream.class b/libjava/classpath/lib/javax/imageio/stream/FileCacheImageOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2bb32b78c711206271f2481e0ce4be1a3d426531
      GIT binary patch
      literal 1740
      zcwUuLYflqF6g|@xTGlN{L3{vGM5Qf{72onwDG+OTBw~n2j9J>DtZciuyG4lpB)^yl
      zB$CKCP5e>DJG1Rl+iEmTXYS0s=bStD-u?0O%U1wnm<=PqpuN#|^*zlf=y`5fn&aAB
      zFKF|I$<umvi)Y0Ba>?B(xhv8YMu;KR5L6eNDeRaG&7PZ~YeB#?0#pZ0FhsIKYSyqB
      zTKyQ20{NOJjiTXBGYlpg!+!@PR~eMKy)55x4Xfyc5oPG8L}ZqI4?`$z<+y?%&Z=lZ
      zJ3}y$Tx|h`t7t;Au+FInBf`+OU=;aMsj$KA=lX`p8Da}oRyS95+YsmSWysw!9EP!l
      z|12rJvMFm?4rSAW%VG2~bT)dbic2ETcH+oxdsk@z%SF)75cPE8k}0P^#ejI&ReDCb
      za;9F)YlJh3d0D53;mCw?^6f7f)XIg(m3mP*F7kq9@6!WGzzfcVG0bo+Uo2@^Q+J#l
      z-QCibELU`#7kJU-Ilt6lj8X|tGnlh&%Z}g%T^21jZk$3Cj9`EvoLHa9WRe*Y%;~Pq
      z5Llm~L9jMA9quwPas*9IEo^#c8!q<&s|xjOLPa0iMJ1<H+{XhVNk~@@9*GN@q^4cn
      zED=muu}XH9dynn=bALuf?&v4-AbmIi`q6wyi>8BiA=^T00B7hFqLYeNvexKEAlgz#
      z^dCAvEH!+9&QB8BMQe<LfpJ<Vh+v99(>PBzaSw(IxClr~2r_92$pG0j3Uz`{r3dIt
      zeMamXY0`Fx?i3^GTGcc$%@JxI9e5&DRS#QM4Tv(<Da=x4A}S`Rzax4KbuAV@!j+R#
      z{#Kd&BJnQ~!*UgOtjtZ5gX^>k#$nopFA)0ZGk9-ZsX_*P<lsLbUo=D}>XE@(<g13r
      zBvR!{G}EqPNV426*FrhQ$XZN0!q`a-Tds;tsbag?fbAKvh5pL6E!k3Dls_8^Zc!$l
      z!X4Ztgs|?BC9<Orpst6n$rc=9EXPG3hkAMsF<INdw-n@%?N-TFk7Px*&6jPflAW%T
      m&B!kYh*o5~5Am>8be{n43GhLRc6k6_G>XS0AbK|=ap_;d>mMlq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/FileImageInputStream.class b/libjava/classpath/lib/javax/imageio/stream/FileImageInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c152b1bff8008dac7e1c51ff45bbc239cb68156
      GIT binary patch
      literal 1567
      zcwUWD+fEZv6kUh5OsPXD<<=rd0WZBMjW+~~Xv;;XAz*-D2)qpKp$trCNM~yBpX9+r
      zA(2EMP5dZzpVK-Z(8NB>x$Je;+I#KYpTE9-1Mm<<1#Jweef_<Dlr^e)g&TI(acf+!
      zW)}^UYvM|?4(slkyj0+C1-}f{s)r_nf0tMo2A9N}ETLC*t87>Er4n}>p^#%}pD`@M
      zon`1wdN3JEZ7_ruj!OK{HEhdKaD!p^B4XKg7wx)L_Am-M8G8Ogv=uKvnatT`9)b@M
      z6$-i;e96>?f*yu3i8pntlGRL;S9CL9tJJI9a=qt4^fB~`S`t<LL&CD%#12nbb<+$X
      ziUGkGW9Vz<FR91{!>Z(j#vntiRsBH>F|b+)aoiF#BMjr0Y`BiJ0}P`o0%&LGS~4uY
      zT(9o%+Pc0Y?2azkCEeW6Ylb*CFa7SG;V@*D{=3`MoAAG>kpIcntrYzVluX;<qMWpf
      zr0}`j<W|MqlZF>XU_wO(_XEG1Kgx{6$}+BnsIDg}o??<gb+}tF+?Cy3+7K$Kr8dO-
      zDU~Mo5rdN4DrlN`6Gu+mO%tfByE;SLR)K`==1Zm#Ib}g%hw}qLRTNY{%&W+wAPD9e
      zf`_(aG=_y0Y4X<WdacA4<p9U8^JhXhfl*4?NB<^L75$){LVE>4I(N{ioz@UkglW$S
      z(MIcN`V?K6ALu+obTis}ivI8EGsHJD(VM3j{({6O0<~d`zWwwBWQZSAL^)04mO}zF
      z7?&|ghTFIU$Xx(;NnFU^qpy(MrsM=Fc8z4_8l_oMdPPckQkug6<}WD4Jf)Z{RVY!9
      zn}z!6)F^XOMu1@YGZH6Aooj?7k4E_wC9m4RHF=pBjAq`i2`OTo4UPxL?|P9vmRG`C
      zwMiJ3-oK@rRZ3$00%@m5O4D*B#hgd)JHg|I#<P!?^4y{-w_8w7U!mNly`R>IN0}KK
      zKEd<LtUJV7lC0?l-g7lVeSIO7BGiYM5*?v#yrd$TnA9tpMT!Um!s(Gy%n8kr6D*wj
      c-LS_X#eK^D;6g9Mo@yA2<hJP88~INA1O0y?C;$Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/FileImageOutputStream.class b/libjava/classpath/lib/javax/imageio/stream/FileImageOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2d425acf49b4d2ea4709557414979257d2f63da
      GIT binary patch
      literal 1956
      zcwUWDZF3q`6n<`iETIcEKvPT`p{<Q%sl~TyYh!Cdo4804O<H1_>bQXo*>>4QcIk_L
      zaYlcR{m>aDGj>KlI^&O0&$(<jBs4SfVLA8SbDo!T?*03p-~RycF1}VUCZIhq9vM%{
      zR@-QqmRt7xu4%N(OO|cwytUTzJ3W6x?kb2Lmp_uLw>!2#beC`hrfXbOru22gX}ax&
      zM#J<x=D02}K5sdee?wrh7^caixw=5&_LGL$@h#W!6r2#48O~UB{Ux{OG{YPPNrBAE
      z6n!l`ASD&IX(kZCYbq2>3Pg%?bp;uL^D^HyoK{)4ZL?+A3*A<)Z90Bf9>*zxEPE-m
      zji&|2^$R;@!Rgs{0%@FP#GJsXK)-~dE?7>BJR~rUvkJ}#sKeS-%-{_HrC~VhrqPso
      z?kOk;<c{lA9Onf@H-S9fWXg*I7ml>-RRSg;@Ro`g#syB+EXQ2!wRg<!9b<<_ldic9
      z!>$`$i`T(s)Zeo_flIaje>Z55sl!@mSjFS#&cls0Y}Yf{&pRqE^H9cZ(`os8vKv)C
      z_&}wL`d;kc;78KBFT15D$k@j!u5;mu#-7=DSYf;-?|-7=25wT%J=0&b{I%U(3aGlM
      z^F;DkQ1KD2QvZwFi@MHOdEDZ?MM`QKz9BHSP4T!JR0^F)NgW+~rumSestgsuii#>e
      zXMh!fc*pgu!HpADa`?Dw`DRE{XK8m-+-1oVyLQjpBXJ(rZmRea>l|%yMABoA47*3Q
      zi4C{cZJ0}gm-Nc!U*<OB9DzsZWs`KCHbp#o1#wzW&}y9i6Ht+&*rALu`k&SIakBIm
      zk}r_nN@w>m^=GM%*Eh8n$ZwU>=k{^oH_Se#%rO+{J1udqAd0JmdyQ`YJWf-qFXATV
      z=wxbu3JoPdMloC>6|CcJ`ZD)@Qps7lQEshth;53hfdyi#5Zf(cTOzjQA*Ni&l#`yB
      ziEdKhI7+L5-w)*p5Z8XiY#-$Vj)cUik-im)s}Ax4T*22b(7jBVe3l$wy#H)7i!0CM
      z7B^W908?@Z8?<wmL~IU$CPPrVdm|Dn0sN%a$2Bd|$NYfj(_ccZ1L$w4=vyi_hM*^h
      zpchA=n-oXsKYIwebatkX%2D(dWm;7KK%#4dy0FVx+@=`_87<>8*}E)siXya2?_h+x
      zN+*n)((?PLF>k())r0;ISUWVm@2ElDq1mQF))dz8g`6P0kr9Sg;4UNG^|29}s~^y$
      zWy)jvKBdWgPwO9s3}!;AOlU9@8q9<S>0yr0>$JmJNl8!CXZrZ+sJ|bn;3q2hdB|Tf
      PBu(NT5wO2)S$F?G%@$dz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/IIOByteBuffer.class b/libjava/classpath/lib/javax/imageio/stream/IIOByteBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..204cbc83ef457c4456b4a8e9644fdb357df0fbad
      GIT binary patch
      literal 972
      zcwU8(Ur*Ce7{;H|b}OwF<``21`~zsVn%H=YIFezEO{Po4%nRh=Y@CgfZcW<G=y&2m
      z6BiOM`~Z9?;(N|I2uq1KJ@0w<Jn#E^&Mq$h`~~m|&rN6yo2UF6|Lz4tJ`h3VC21`9
      z(DVIv^G7P0<9=VnCJcs>)OjHv4ZL>uRP<5?<Cv$MK|5?R6r+AW5!7TpT|zM$q$gDD
      z2BRQtFqpN&rtjA~WZI98g$*5x4s0wj=(T#s0>eEA1r%kq?7+l=tX3RYSYTLc1tals
      zJnV}2Gw+6iq1=jkJnZl|koT-<q$febu-*E9rq{$Y5b0Z$z^K(_1~Zv83WO_REt0ge
      zV8lt$tmL|5)cl#Kl?9eR&uaT18pl2HE>OHTw!f5scuEO%`YUv3GCEb746aT~ohB)4
      z+@Y^Sw~+b<ofY>Scik5gl-%_R%I?Mlm0!wLrEisH0XwAJr73T)hz6Fihx^oZr+z%Z
      zDxfO4m#Io_)>I{T>(qUSwQRFTr&JZ(-zfdOS~a!qtI^I>kd0<o$3|vukXjBdD&%WW
      zTXo-)$5#`oQ`Hq*F@s}xgvU7`<+C}E54j*u)H~k<S)*s02l+&vgIhr4+sMV6xgeE!
      akT1C)TlpZBd62K<Il2YJ%0RZ2=h;8mHGtIs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/ImageInputStream.class b/libjava/classpath/lib/javax/imageio/stream/ImageInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40ddeaade68f7ba87c94a102aa07f673fb56f9ab
      GIT binary patch
      literal 1680
      zcwTLj+j7$|5QbMJsnaC1O^=+<1qWzNIYWR#k{TS!gqhG>z?GXQjvL3y*bdXa8W%hO
      z55=&O4{aqbJiGe#*J`~h{rUUrHvnwIXANcuY#iD@?IXh-+YWV^5k>*E$A-n1mOq(B
      z9RW1R5m@9>!?S(IXdfKXUZlY+fr_BGwP{DT*g~Kj(x`qM(RR?M0fBXWPl$X}Ww=)D
      zqR=@bT+^%nQxeEw5q$#Z^r}UmxO>#2lgMR$sKEk(<+K8;oka-b^&fSv*3eoO_vUyK
      zo;4(($0eyhZne3hJ{=73V2jsS65AN_sO^gqz7r^<sRXEFZ#dZZL)Y<X5)j9AhAfDL
      zsDrIKElMIHQ)6fcLe#)|Ik0>TEu5AMf{IqMWsmtza)#+KI}V!I98Q{Sdf>&iHB-Io
      zBUnirET)LFb$zFnoVowaOcPE$?>OsRH|b?pkWNg{Yh<34d9BPdGp`wY6&!VZnZB~n
      zjb|jr??&yx0542(ZBCXsJx(Ed?WVm#FN|Z@idm2PPBg^2!;w2lX3Jw1H!Uv7g_Mrs
      z6(-A#?O-Gt!+$HF;-J#Nn})+W9k2j<lou-kOIV!AUD`jXxZs8jyN8IteCmFoV-{e)
      z$|*2i-u!&eV<FmNhfRYXjp3^NvbOj*@EKuE_~r3sZsJqZpaA^I%|TJv5|lA|9-}$5
      z^MWiYq#}_eSeD2NtV(1J)+KU5IqM=^lE`I6a|NzS<eH+n4mTunQz5tDwnXm0hD7ed
      zJ&EWFslt7QJW$9(g={KhOCg3r9w}s7B9E0neWLW|DLj+Nb4Bw4UP|PZlKC~%6!JzQ
      uZ{eLpcHlkmyY>O?*+^Z{HWW=0tKhqL@rH40CiY`uKb_rypN0MmwEh8s3>0_(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class b/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae7a2ba72cb5981a224f064528634cda04b0f837
      GIT binary patch
      literal 8798
      zcwUWJ4R}=5nSRe?l9>z_2nh)x31k3~WC8>Pqzi#c0>KG^pg<6*$dKHGk;zP&OeC;Y
      zM8#ICtqQGciwa#TtzxULBve|kYrAdLw(HiayS263y0)%;tX<u9-Tu(`JNM3=o0-XO
      zc%IC;=iGC?@BRM2b9wGBPoD#@P)+y2qfmQY<od{9eY7XiZAKII{mDKv(o-LnX*k|H
      zkldsf!acn)AG``hvb{bQiFenx?YhqFNcvEqFndfy6bd?GiGH(FL0zp-*c0j7vnd(r
      z*rPD1Rnr|vMq~AQX*oCV8tCdW`xHFe8@YQ|G}+eG)o&(wIxO>jNwcl5Q#MStPRGf*
      zF||qpfv(s<|8BE$W1^pDT6o3+rso9>(RehuQX#LVwq3#7l;|`A$V0h-$td-qLSbSC
      zrU0g*ybuc03=|?DPt^v-!6?KG%<^HTLUA?_0~eu)U>d_~uU)fYb$HbVIe4*wiLyMg
      zH5xZJ4D{?W`!+{*#Y~cDO>{(J?UBBy%<V;Qa(9%V>srU8Xt5UMAJ?(l?AX&}t30q~
      zu*2+4MicRVALc8RXs9F-ZgbuUvIPcw@cVIz!gz~*(6U+p^RQU7vqYh^rZw#dWEzck
      zFBdiD>#YHj`H+D+lq&eUqVY&9y5IC+d5Wn%wRv}6Vy{RiyH^;vRCecUlgY|u23CP~
      zpVV#IQqgQt0jW*aB70UFSc7H?s!uhVU5P%?RZUB6yGU}mfk`O#ftH_@<{OT8nuBcv
      zbf(6{K)kcx5k7#hW#07$N>EJby$(l%C>qlaNC08kd8L8zm|(w7`(s&6ZElY&=Dudf
      zDQ(*RXn#|Lrs~vm85l-tp*bqHpOBiaH+vF&`{=qcGv1xtoqxgpN0B9ze7KgI(}K1p
      z;@tu4KtycTEY90upcA5@UP7P`x{YW>^YYs4B_FyKD$>hW4#bnu9@C|_E<}aLbqeKf
      zl8%M7YbY`<ZO!3y)Qgw)rTD&@?Tz7ZEu%Z1PqksO@kb5xfLii)Mv@V3k)5=Jyc#fY
      zJ@!(8dW~w<3T%{D`wZ+C&+zt}Ceuq{+}!IVkH*xAXtH0tC0yI$!%Ye^T|N?vncb1t
      zs=n@l9y6YFiFyF#LjM*6{n$u2@qr$j&MrNuDBV$0Pb6YyBrcn87ZEo4@JVK>l>BSj
      znq5@yKsiCC#2}fPno%M>+$K93b!J>1u5AzCZrtm`JvRLR`+$MNI6~0$!qr-v-kRF&
      zjY8tH2JRDi3i--XlmNfqz~}IJCVfHHJP?cR+t?SqJ|c>?O{MuiVBkSKB<a;mwrbb3
      z)JmgYG!`*vHhQ#em8RX1K5fS)LGVQb596e*n@zhDeOB;oVmgzR)rkR}9=Wtywm)j%
      z6jJuJ{QoO>+=s7@C|uSl15e;duE)4dOt?9bq9zGswav3RmWWt9n}xxUfnjZTc^8gT
      zOJBoTAD&JX3r%02G4OSKLxMM+w5Z#ZL@~`N;-XU9+1rKuHw~N<g%>1jXQi5(EHx{9
      z+rSs__fig<^o!N07vD4RC45<4tky4@Q!l=6;2-dmylB=h!eMO`&-SpMwxp&ldb%k!
      z-6UsUHn0hsrLw(h;9sRwjc*Na-rTyzE@CMqvwYF5YihIWfe$}rD$HEAY#zXC5=gJ%
      z=LY^Azo5jC-d;1#98g))lugTa6glvQf&aiy$UT{`-ZADnXdp8YWBM8GB!e;$bLCv^
      z(OcsE(eAiur;ds4C7L#$O%km1I?4S?dtsiuvfW_IX6+jPW#B!$&+Oelq83c4$yEx(
      zKEKER`0xkrNaX~HNmms&@Gd@3m{Zf5wPAS<bxY@vV=<3%)5ZEs9n(|s7Xt*&_1;8p
      zrs3>_&!V9`hRTyjDwObOkHiL~OsjkYThQoNKH4c&9D@x(yUz-ymZXv{wl$F|ntnBo
      zvN%m#FrG*TcbUn(rWp?|2u9+a!KJ}yyn~dY*PD`O7fV9f6YaG#qQni|HjfF{iqICH
      zDo!bHgu$aRYS^zP({3A>#gn8Lv?}JZU_ed6V*aQp^gG3*TSc-toJP}FF1z0#Pd1`f
      zs<+BiU{hkCufw#e^VD3;*L<Pqogr%GUp^Zuk2F<uD35fG;#tx+^4BX3gdW)r>X9vr
      z9!vDNkmuQt^0$n$ZJHiX9U8`z&{<5~HjK*Cs0tPNzwSSc>7gePJdN2;Xhw7RTLy9C
      zl_a->43=UFmSH*@s~WBv7Ae#s#Bs8;YdkeqGgs{OgyCwNVR7gw)ZdTsXEASE@xoy&
      zI-lk-fqQ^v3b>ZwFL%){wrMMA?y_h%a7A_nLPJ;@@}5S0Ce8KSy@3jAbI}agG`;wn
      z5j2-+nk%97E<^Bs4nC4@$fUZNNVib^?JlZ@gLGvMq)Tlr6oyFe!$W9FlMHYKw$rvB
      zagi%@$gw}oBG=1j0a8;<lxvS1#kjKw(~|4X%R=js2h$6o>eE=8=2n3M{zgcD7ggQK
      zxrv$R=DXdRdznU4V{@0M4K#wNqzxN$h^1_?!~jp>ic=Y4^>A}Mr&ufvwoBIAMDj^s
      z_TvtL0=?MpI-KtuW(si*dz`~-AImsAnDa0%1vv!qj1Z(XP0AAFMs7ZkQ;>FSwXw{#
      z1@Yvi)nEa+)pgS2oV;obCvVSra@!bAek$k5s~yeFw?+0&#`a9b9d@1dI%ltOvPhKb
      z6s^pls;bUn$2RfmVeA~juB|6o=Fg&QTiq~rGscBP2@lP)85ENs*c6uGD09h!2;!K_
      z@n+b}rcl9q5QFk6>3m7Wv6o(nyH_A9i7cD0;Iq&y4Ate;of|@LriLDMF;3Z2p8B-p
      zO8WCGqIXhqiM&fv9`D^*<h!wfv*e1(`%$XnJ75lBu&T&k*}4Co6(OeAE2_LVrn%45
      zdHe}deToTXnCkfk1wK#VpCO88X_;?nWI>CQjcfug!r$_jS74^xKHQ+~_c3~ACdLQ&
      zEJ=HbV66N+3M-2)J0Th205ihD^M$MOF7=*7anQSORghb5K6G%^tzK2?tvr6=onYD(
      zE~YAg=Sb`Yvi&|u{}APPk=g%86yYU;dJ&88vW6PcR$byKaS2^spq67A4$<ZwRPy;Y
      zt_jSK(|t2Rui=vzV!WubfvU{+o^tuL6@{-+uAjNAHr{5KPmPL3#A>|IWf8xIE3$v8
      zw%QOr(NO6*CK|be8oBd)<vnReR=s<Jhu@_9zb4|hxc0V-=~SC(A<J!_mQvv^hFd1n
      zZFZ6_3DphZ)BO8P)iD09u4)KJGYiV^D9L+N)B7&FmpIBSVW~N02hwq#5WBOF&tkX$
      zRxT)@geUIJ^!5*2F<s!qG~50xI+xg)!B0AmoWWyX&7gF_Mal0_;yob;CFM{$eFkT~
      zGLn+Y&q?VVV<D5$s*GTMCZm9=aquhS{|RW`jIs!C=CfBrtgD(v`()Cc1a^roANM<S
      z{We{B`bTXRc{;95D!iV};x))O;$0Ow0E_CXO1(R&nQv{;;WzF0g?H23b)HmHP@u|r
      zb((^yYN|%D*rMQ|s33}e(kLn%6csj#JaSFN+&O$F2Oe)OJm0-?R6Ns(r<!=C6Hjnd
      zJkN~@&+}u|&kI+Kif1<QTueN(iD%BJcz!S@JU<*Op3`lk;+ac4^N43I@ys6;&p(d|
      z&x>QV*CQK8#j}Wb78B1R;#o2(o_`q=o*#`>KPTEp#j}ifmJ`o1;%OKa&r4&#Gn}J1
      zzpI~tn?tP3)AM``XTtgMlX&G}EYnMiCgH-3d4uxo)z3x#!JA~3Z_SFVS%EbxAH3;Q
      z`WUCKb47zYUFZDPtiYzfGo5@}<PxS<A)uNtS*<}(HDeyf`D!heb8JwTBh0Zyt;RaF
      z4p*sGm>j#*dh~Nlstve_<3ZKpN|rY}$@1UulT1C(1M_s7e~XkmPea~{vv`e#?q?gE
      z($}FLuY5%7y9LnK$?=dHY|Z7bS{j+9Ui-vD(nJJ~!S7vh5*LTcylimfu~L4@=2hN1
      zgx9w^)bqV7s_wsVeBKa#neOLzu*ZR7x>fCTf~`!~SJ4r!MycA43iT0Gshw0tCmNNB
      zwW<qOs%~sm*Wntq2iK||>{7kxR3AmRN+PcIQaOVdRQs@B?ZA!d2A4D4Vk@VB-O-!6
      zK>OJ_{ffUHmh663(_d3TjjXe8X}47J$uCQZr%6j{l+SXeBEQ?4Zb-Yup}c)*w>VVf
      z-*+(W7l(?9tZ9KgEw`pVdm6N+etTMDO^Z^y7ufUE_7Ckl_?U|^=WfmmMslth$vHTZ
      zbNNWlMH!s^BRS`hv17<P*!@A>jB)B#8t*pDR3FCzjtkW%@L`UZsoSxEW1G5z#=8wW
      z)F%<+*rV>m4IDqF?!uiM?^1{GDRnoFs(bJV$4Aw@_!`Hj)nR;><M-4Nyu$HS^%=a$
      z@mK1z_&vuzsQXmDx?2^fPp2b7`J9M&7$>tb!-IBa*k~Cu-)+koX_X#!r-s9l8xFe?
      zfGoIP=gC_~D<O#@^#J4iA;$S}%uruIJ;#OW7%ov?q*flrdX8=Cge#6WI;j6MM?PDG
      z^sO{0JTrPabt>nL^z9rM+{Ly6<WtG%LzD5F0~vQd^`whdz@ha{4p{E~@I>)%vrwJM
      z+10(9ov3ghSEQ+$WB27hUN7IDhVZ-48T@zaNsQYNn#<X|^LnUzoCk||k0^H->N|=$
      z$E5O26sl*LP`-n5^&G3q^O&w)V77f8v(*n={o5QHP$^SDAO4pVgYel;g}mGRksL(4
      zKjrv}bCs?^K)HSSV=MpXXRu>Psmnsu%!rxQ?j_=S8O7=qOi{18ded?nLopS0js1CL
      ze~!;QdtlulW(hwgWaT|_6cgmjPKhcQR(}0)r!|zv3ueX_9`#eQejVf0`IV4C_R
      z!}JXogjr6(ot65+qYCj*7K9E0kp0!^yQJ@gU^qYwfnjBw*Z13u?}h3uvVR*B)Ng2s
      zcW8;<x>#2`tgH2>OOgIPUVW@j3oBt=)e1s&Bfdjg-S~URSMR%M6*#mC^yg0zW4xM>
      zB}Tjb!J<rCPD)$lp$ILebyt~oV9RbF5d9x9QT>UL{AU-pGKX84nrI;>x1ua=TkMYn
      zr4F}hhgo$x?ldz`9=x7>Oz;$-#N%@@D|MKal9^b@Bmb9{#q8T;CRJ~pFq?K14dNeX
      z)g;=dWLT9>8&YLMYO3}Y-f)J{d#Sh7do+FdomT4YTq&K~ifIpAcs;|J=CfGBV-Vs5
      z_&pOb!!sEnPbum>W$Y}bputm)Rh~&$<EcQ4r_xn~*E#UlsR}z8taCcLb#_M=Vq{cW
      M9i6HYu4>v}0r=n=lmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/ImageOutputStream.class b/libjava/classpath/lib/javax/imageio/stream/ImageOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..391b332fae09a69f041b3e8b540939c96cd75376
      GIT binary patch
      literal 1056
      zcwTjqOH<o06orpMQbR(^t3Y2+-Zd@7u<kCTo^ghmECOA$E0HmY8DlZF+|s|+MSnnl
      z6w@mSC#f`Dcy#sooO5+G`t$JXH-J-|dZ;lR-0<)GK1go)Fiu2J$UNq^L8P|5Qr?xa
      zuZf2`!=lm#DbI#M@9HKVNDogK_Wz#{Wm5sO49hxzL>(@<iDzhCr)4o}$JZi{8R~xb
      z@C!rp^Zg*clZnU*4^J6ZDreLi|6yqS$P-DXhX1XtTpq1aq^i2Fmsu@nC)8%HDhs9W
      z>fiH*36aJ;Q>L$qJ}Q5z<mR|0+p2#)xd9q0$%daMhO-gRD}$;FeV#LOo|eWPQC_8b
      z$j+p_fkxdiY7-Ksf=eY1CkdJvZ5U0B7-i!TsWgJf2n;<J*{}*$wUKnE`}Id6msKOZ
      zF{1u-qsxns^nFq0gE&moFl)|ZIaaqsFN0wQH8kMSdt0aXGlwRz7VYY^&J%ft1&1s;
      zWXU4S4q3r-i>zYJBI}Op1zuX@m7{r$Hx98~8`!kSTWncm8#@-+#hyj>o$d#CXA$4I
      Z!$Z8c$Ok9q2p=tS{O=U>1yt8?@)zwzyIBAL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/ImageOutputStreamImpl.class b/libjava/classpath/lib/javax/imageio/stream/ImageOutputStreamImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dccf1f36f5406377cdeffcf004be567333f57089
      GIT binary patch
      literal 4842
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class b/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57dc68de42521dee4d551c5b30bb2ec4668e3a35
      GIT binary patch
      literal 1907
      zcwUuL+j84f6kW$w;>1-hPH<Z4+*-i3<+g51X(=@+buJ*+NlFt;LWT#$K2Ahz%OlI7
      zJaBnohQHtkcwwe-W?+U7;G>xCedH=8_GI8ew{!MhYwdNG{{H8WzX06DZUiBLJKtEx
      z*2}D2w+^K3WLusqt$KD{)*bh|WvhHBP2MpZ&9=9t_9D;((gVBBmzwovO<>sH6^IwP
      zD@*k~HIJ!azg?|LS70tE$g34u`FG*yi`AzqMRVQU77!*i=In;;EeTvn4TMgY1hi$R
      zBBKanLdPXc3WQVX(kKL`bc`a(Z*S=s!f*sL0*MO*L=ndo2GP0cs*VUocx_h49Oj9s
      zZn;PFNSVw#QM4O!qg~&Z?zXjGlSEi_%2uspxi)`y7d7wDZVB8g{@-IDJBG?Nr$rdi
      z)t6=2^lYcmiXbU49eA-B?63nV9q(W=3InMKGQD+YumYE=wRY<;FRPBr`cj2-DN6HZ
      zb=<*Sn&LouYg{2K&z+Xd*viuaGrX_kCT_7QALw|%ZV$P#B|TpGP{$*DM2M{;yXgZL
      z1V)+xh@j8urYn#8;79D1@}Q!az7o*iEUejV;`p0S-!B5EQT$?)wXf<};}g<JO5XN1
      ztJSWi&vfLm%*R>K@eDbNnD0DsQ@mX19b1&(NNO){nv504Cbz5;MaA+gfzV!_3LS+=
      zgf-dV38g$@J4!mXaf=RU%W1o1>5E;w;81V#iQpRP3DYkcMu>w+Zz0Z_dQxQR$%-k5
      zbRVOyCN$asQpPF9jo1iI5Hm6-m^S`Id^dB7%O`l-c%`mb2Z`Sm(gNMDD)dLx|B&z=
      zV-h*c;$z&v5*BG^#>XW^*8%m$dg!P)NVNAZt!ec2p3<?Tb^x7p+#s&$4$@~_<7%d5
      zs$U_lRfVtn^<8|y;ps#Do;Zi-nK3%Joi`RvagS%|;JzA(7O%+;9`0N)V1WRhk#R-D
      zuukh6^b2e%0gFmhCKxb7Cgg~E2uZRbN4tW?deSxeW_Q4l_FKR(tX8&q#t8-EeA3?;
      zKHs@Bu=DAE;QV@EC*`@%!hM>D4|3iJcd+8S_h~K>`W0iw?kkv4>jY-v41Y!$UZ#76
      z`m3120mZ`ZiNt)DZ;Tu*BC0gfZ_&s6OZV`S0dr<{u7iyST3jRg2}K{*er5r2?Yshq
      z?oDEFaTy*(?pvkczK<B3SrX6jxpE<i7o;Vm-nPJhV2u7)*2jvr2ZU>nus8t;&eaz^
      mxmw_0sa&0fX^I;CJpMqo|48BbsmGE;ASlrdk-(R#cjq<Y+(-HV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageOutputStream.class b/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageOutputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..803f2fbed63816d04c5829d5a513ca74fa52c488
      GIT binary patch
      literal 1612
      zcwUuMT~8B16g|_HE^QZ3z61dU6>SSr5fG5C2!W)eLL#I_d0N_OyJWjtcejZD$rlra
      zL=%1YM;Y%-mu1ryq7U7jd*|MB&YZd1-+#XU1Tc#Y1tEsn6YW$x%ji|D%ylc{xHi|S
      znb*8(*`KzwLWO6=&VJpk)!hTRsUX6TZrj#Uo2}LihG=7(VK67!GSm<(TA_+n-PGN6
      zhT&xUl2o1{vSk%{9AP9>C{P)~$y7cDhHe!dh%)r#bd&GZtH<0v)Q%0#(3`UgnvvIR
      zUBq58;#PErVJ`RIM<=Bn1;cU(B))xC;5ApbOh>^WL*J$B?7qJvv<|80gBr(O3@I34
      z=x=vChD6DzJC#jdvTUI+xtq!>xX&<IHtU&!p*c=Xb1RuW%N3ULDmPtT^obNq(CH<z
      zp_%2(wryK>CmvGLwA^w1swIwbObYuRGYoiM%N7!%n`P;9XU%eS0n5O4DbyY5Mo}96
      zo<Y4#?C8SI?#r;@9I2-xHHxzgO7dtkn-!}_QFAqh(9tH{w^b@R+$93q2pgQJIzHOE
      z%l(GDuxv@i0$vC|yu^w~EK~8RX4J(k99VU`z#Bp)Zo0Y|aa2suw1jE;Nro61TE%It
      zpp%|4igqX;64~?x{ieR5>kCC8^w6_gb}k@-MXFuGEs6#k)wqpbK&}KT9ZOs~?e$YG
      zLeYRkUza<8O6YgeU(t1r;b#0bs$WL}8xmh_)O+|0qZsp0qx2rYJr6f5d*eSa{;v1I
      z1s?tKQKJ%J`x>=Rkd&HINP7-Udm2NL&rKM+0YxES(Nt?^xVdw`ZRhkqa2~epe2SSi
      zF3gh$qV9SZjsj@$09vLE+8aWP+=zB8(bA2ofTz#szqP^e9CM!I^RyD`XqsE5;w`NO
      zMnX)))ackb7O#dPE&+6Up9JU<K3&46OZaq&0Nrv6-79azV}fqv950*6YV<XH2+T{&
      PCyQZ~fW=*{$)5GUYoi2~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/Attribute.class b/libjava/classpath/lib/javax/management/Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0f23785227ea7ce66c0f34ac17f0b6bd2e61198
      GIT binary patch
      literal 1293
      zcwTi<TTc@~7(LV7cA+VymRsebfC8mODxzrQk{FB;Qt+YLM2zAVH|;{Z)pm>Gi-~Vu
      z{s4bKUVP9*F#2HhMG}9M@yzbFh+sA|bG~oB+c`VGet-Q2U;<Y(_yoGw^-cX*s-#<b
      z-Y6NCow{b*6*E_}4GpS5MBb;0x|L7e%B>q~wuXQ}yW=&>sf<xE^`iM)&lL>@R~<8J
      zRH|m#y0dUyKr9Nh%$KdIty^|hFV+nI;MNx{^JY3M5Gbu$dWnhA^g){p+gtf*0j;#U
      zDH9G~yHoHwFk@P#Jtr^{Kbn0sVKghC&X*q<K`3YsA%YG8B|e&MhCo*cA+$(zGK4T%
      z1zOXlWh~c9IiqshB^OPX*T_vLL)xBGwF_odpf~-089A!zvh;g&0>+b?USwKF{Fpgc
      zf;fXA4QCID@A3+v9|MxW5UZ8#f>9Chm37K&ajkG|Qn$QeFFOs}<D<t3+r)sZJIdjR
      zhPF)wy;_iBIT9_%i6%ohj|tg(l5G|Qf|+uyvS!>cr4Hc+-EmnC1C&zX@^kNoh9=@>
      zK06<RRGwNBN2Jm`{k)6d1otSdyNpqIwkAHKEs@+sXJTv@v5!u2H}@!1?u*>hEV;xY
      z%jlt}-%Ud=`Tz%=VjJP0(_B8{erGVY5ejWT@3xXZAhuCWeur2Z`-IM)2qt*!qf1&6
      zzJsRjKvm{;&|3HHVQ`K(=0?Z%5tEjL_2?<?k-Bpa!&7SCHi8}MHvH;)g<peEf|^L)
      z8tze<`}94)I3D6Ea=3{#dJL>1kEhshh~8u*2X7GF!U*XJ=58QPpASh&G0M6MYs`9R
      zg)2#<vQ~?S1jcaA(>=vgishH|J~W04IL?~WIOGO+jRl8H9g`gUH~Gb}$$U&+@?-Ch
      zCtTe%Wyk#md$=&;id%P4$BVN)y)O^63p<&w(1zC-#@oLhLc;6RhAt{_iM@u&I7uWQ
      J!jx0t@*jh|?63d;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/AttributeList.class b/libjava/classpath/lib/javax/management/AttributeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..528918c72bf3eee58770bd1873e608beace5a9d1
      GIT binary patch
      literal 1795
      zcwUW^TTc@~7>3`0(uGn%skA^jc|gmtqIj%;P&L*x;ITyX!l4~-VcC-HmcS1%#`p*P
      z2i|z&6^R<WH1XOP<Bu_ZGaZ-ZU@=X)+u84X-tT>9w%>k#+y*d;w1FCi?q$BtH<GK|
      z=1XE#*lu#lbsck|?24>eat#C+BC;k~c1<fe<v4s(K43Un5{}8OoN!8J(SDq{$-wS1
      z97z}LlFMy3$E~uc`?_+cEq>>@#Spx1+NL|fP@Cw_F$B`Zf(W4&O<{!4$k3cMZ81|`
      zT@cPAzF-N4mTWOk0-R*%w_XgmFU%4{Z?^j2DTY&t!)p3-a)4GjK$M}qQeQEeE?Snz
      zyW}jTrnQvkKq6D=>5x5b4E1@w#`C7TN#-+TjTZ_GJ=KJ@Xm1!@IKj}WMJ;YGC1)3w
      zNi)?y&(OgCHZXKn!%-B8%;9=xq~2MEs4m_um^0ANFu0HMplrM5s+e694wqS!Zf)en
      zn!KyWAVX8eUgwrs=r!$v*cb^RfngcU2*aq~m&SO_Dc`e)G^f3!MmR@%w(}q(nX_eg
      zc5%8`whKGb40TG6BByZrvj5RSDFtb3rY!5fj>Wu8>~a`mxKia<&@P>>8odvelCbLx
      z9e?9Lh*nz?t}LDmV;naa&K|f|`<EC(4~u0dFK(Oawb?bmh%Cnm5T0IpngDeO($%0}
      zHK?Z#lkXpWhiT;kT^U{L2DWhIgDPpJ?+{&qGy=GZqjVRp6yX?J6f}g0224<;tPKtf
      zZsGV|!aeG_uL#jfl_to$7~L_&YTL((Z=roJ>nX9G{eu-pr($)XTeBuL%aC*R%<Y9O
      zQqz(TW_U0ICvi%{PHUJ$K?G#&KzwKmeecjb^9hM3!!4BB(3cM?oFE#I)EX_S`X#Nr
      zBE8pW#T%tHP@#BQQTki%RNYafTBCO6Jnc#?t&ZWM*1zTt`O<sOOHlQ`JtW{UT-BTv
      z?IWUmTzl_#p-mW`i6(V`KGMo(IyBop0})Ro;u(l2IeEZ#42*jLmb7q82~W%&n4m%K
      icPIFrR(=rhC%OCO8zANl5c39z=>!{n15Bx;rvCtU(Pke2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/AttributeNotFoundException.class b/libjava/classpath/lib/javax/management/AttributeNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9b80fd651ddaa38243ef543e4dc79ed8e809977
      GIT binary patch
      literal 502
      zcwUuHO;5r=5Pb`UYDG{Kug1g!ACbm*(O^gn%BjHvruS{x)HQTV+O6Slc_Q)P5Aa7B
      zXAAKl@!%fj&Fs8+Z|3vs{R6-yS~f}yy%+w<mu}1zk3=k#cJH)KWsqwzN%T0$)$Cyz
      ziiMVmvSBftZw)*yM9NJ+`(ZLvZ>5rY$WU%~d<JWj%!Gq7c5A4h%Fytn5|ca*MEb;o
      zxnO8|Nyz6uPo=3hpO$`>8N-G5k2MDjt#&cs&bf-*DG^mP==jF}!1&i0>{w(OX&K)w
      zDuXjk@-!4<X_h$s+pBM8aR#~*=9MU;`zYE}T@f<EN_T~wx1#M(bO?cKSh&F+WwkYl
      paG%f!)Heb{Vj6C>+gqXWTVX`Z`$FMl&DtoK>=4bu{HT~Y{ss<_aDxB<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/BadAttributeValueExpException.class b/libjava/classpath/lib/javax/management/BadAttributeValueExpException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..976da8c0b6477432239e3ea04c94995e2401ae45
      GIT binary patch
      literal 1050
      zcwUuLTW=CU6#j-wm#*8}wzXQXMMa=eTJK6PS}a~d+K1XTMtvAy#BG*cvJ8a(<clUs
      zjVAs8pMCNV_%DoS7OWPki4VJTuHX62IWu2=eEbYx32Pcc3=6xw#oO5$cX?IRge$Y_
      zymD7c-!3(!u(;C{8}0f=yDaL`_FN4ShDnu^b+}v2?mHO98^X7_V+p@O`p(094D1oZ
      zNZxZBlDjg%ihlk6?R7a*xWf=`afiVy{s!AB?TWI@F$^u+t}Ry?rjvv2l*JIqdljK0
      zjBx`7CI~E<vW7v_4Cpw*Fjll(vDvJZg#VbA9H9z%Wn#yPBk4V3M82{c42#A8n*vdc
      zNpG9nZk1swnfile*P7FCf?=lLyxz2(itu%u!Wj*xX=wfJ890kMg0BjhcX)%yO&)*`
      zj5!_Wa6!X)YP8Q~Ac5ly8s%^D8qFw)w1(7yN?k4n=5dK4TdKRQmkf!+hCSGsj#(_I
      zv1j}C)AOgS7?v2K&j@%$1z$0671wC1yj~Y>g&}iT)_|!utDxQu1#z=4^RE<tWyWxu
      z?%)drux#L%nv1^eHT|+E*lPRne=a$A8JMF>6{hzRB9JJCNYer>Mjzd@KxQ<I5&Dmk
      zRv<k@r=H%!SbF|F%(p?z6#Yj7qyi$ik6}E(G-*e>(R9uLfuvB0w&L5vd`@|c&cr9o
      zK23LUvV-^sT--y(T<qX-`W?&;uA8?=?jZMOzn)2zfE`T0q6_x~agtR{ql?z7$*>Y+
      Gto{Tu)%|t=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/BadBinaryOpValueExpException.class b/libjava/classpath/lib/javax/management/BadBinaryOpValueExpException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3955b88fc4fc6ea063b2bc2d01199c80dd0436e2
      GIT binary patch
      literal 1167
      zcwT)|X>Sry6g`h^=s4YIYt@!2F34g#)?MkMRB#C?iB%G#CVjvYr-2zV3=RG(n<zD!
      z_yhcI^q=_6c;7&&g~|tJ-o5XfbI-lp`Tpn2Hvr3cpuoehxWjjOORsU0S42&ij-KY_
      zv|)1leZF4c)uza_>X}wa)E&bz75EsYBt@@sv!eGd7$zFRHh8rl>;}azo;+k=PZ>rx
      zEVJQo({Z)@*}~7gAHRMl8N8xZXPC<k)ITViVhF4lrs1qHEX0Q3;splZhE*0SyqM6S
      zVUpxy@xlnmtOgY)7{+skDK?w6qOhOyVpTANa#o4_a&k>^H|cZU84U(~u-ve*NUIg$
      zWMoI-SbS(tLC4y1Y{RTDOn0H3S$4811!0ES{&c!&RLjCvaTXB;=V;uAh<tHJlpGD`
      zae?H?$3~SmsEMf~@@_Jv;u0<^h|)m%t~A6j$Dj~@lh<gL30zT-JW{FSMZ+SN2)Qep
      z%D-iZ#&Z2`Qpa?rVjfrJ-?Pjx6C1pb7lOFX;D1G%u`0ngHQd5&nk}!_g;}O$J&rYy
      z>dwlocUMZ>>tp`c;sG;=724i6QeaKP895hq%WB#sku~I&M20QHl2k>6cF#-SnTP0p
      z1SnG6C`dnANIH8dr(u+yV-#g6@1eJv*vEJx`3a#t7e7tUF;^)IA0A-@k1<2h$qt&{
      zvw(Y&s^l7{aJs9hyD{KTd_?F&PcGmlpSdzx2hf#avez#8wQCTFe#QLDL>mijT>Omq
      rKJ?JFHf~7CHtvK{bZ%qyP(4I8fo)8JBa9+#<@P_7qP<G%F5~`Rd8HJy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/BadStringOperationException.class b/libjava/classpath/lib/javax/management/BadStringOperationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..859d5a05384c3f45e7962f3d06017114382053c0
      GIT binary patch
      literal 960
      zcwUuK+fEZv6kWS5Oc{sU0HSyU)Y=wk#k*F0pjyN<^Z~6J_2INV)*;iG$#hEi5aV}X
      zqQz+92l!3KxX(<(t;B?fbM}4hb@o2L|Ni&|U>OAsF~Z`e*b>|MmT*K<wxko}S43kY
      z@GYlV@uV*T%XOY^*QKWv4GF@8s>s{IY3BC=gt4~tEn!!s-)8&e+7kjjCkz)|ryU3<
      zs0zCy2kg?Honq_rCqm5i2xfU7E9zMw3_i3RD|k$pO818|RYIcZHl&U?#tax3C&bg4
      z>JXTj0Uf6Zqh-sH>z!6j`Y%Myma36kXL5omvfXngf{#|4kSm{L1WYg)xKWfana=cc
      z)Nqb4ebl|uvFwKQbzHzD4HtQ0`x%wmrmP1BW--U`O&Jtz(PnBBhu}kJLC0lW)o_KM
      zc_d^Yg|h^W>(@n#CzM83L*`JYh>L**EOO?ST1w>uA$4%n5u3s>FViuDoErLY64!Zv
      zZ(Z+^^4&0S6SsJE!t<olAS@lXx;|HLB!wjI@NapqknR~cqaLAexE;SPOO{&H?0@!=
      zQ=pjR?Z^37#~5M&gKTM`mE^-;BGgIo=6iABDBdUhA1*@bT~zl1rHe2;`kt4QD(
      zhOmYywoXUcET@4`Q>aW@vF%~L<2quQ`iYr0*)Gm^G5;OccClpUyI9VCg~`Ia%~uz9
      gclP?3+zF^+9IyCqyv981s;3d5^?DNShZPV00Rhh8%>V!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/DynamicMBean.class b/libjava/classpath/lib/javax/management/DynamicMBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4925e8ac229132e81444ce4d73b26ba211e55a0
      GIT binary patch
      literal 804
      zcwUW?%}&BV9K>f4Tdbhs_cs?~N=$4#c;X~c5|XNkBwRQxWoZg!Yv`8Xt9kGNd?@3#
      zX=<TB?4iw0f76}+biaQ-zX06fTt$xHVn8Q!YK$nSHXAW6jK>d7M~?MeXOyeR6YPYD
      z;ZklJuiXK&1VPbe;z5Y9(+vb8xYo@-rX^)=*Q(~ctwx|dO)d5=9FO}dHVAGqyC+|L
      z@kGN5crS6N*d(ZA3{lP$R3f;_KyR$?$^;TfNP<#&2%q3y?<^Z*aYWPc!=b`5q7+Tu
      z_XsZa1)k)+<Q0ccyrHbkTu@slTieo9bLAHOnV(Y8S46K>+bWI-j11D`6Y4s>gltnc
      zVCmNU+1Bc-wuu`0M}=C;3&s{}IIav{PM^Tr(5ny-tRcJ<c_7!J$h9h01*sOGp(xcY
      mY$H0ZC`Zp-?8TIVT+Hm_Al5YGrSmY>k8vV3f>U|V;p`W*+wGwM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/InstanceAlreadyExistsException.class b/libjava/classpath/lib/javax/management/InstanceAlreadyExistsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98027dce75a920b7b6c3fe6719d820e5e766d77f
      GIT binary patch
      literal 578
      zcwUuJ%}PQ+6#kCCVVY)X<xXm$23@43C4?CnQVYxdsFO`x=gPfTF?y<2LW>@tSE)A$
      zqBA!kNC;ZY`I-5C&S73ZpI-n}QHUc%u<pfF%&d{nVkk#a`&LVPzR-PnV!Kid9-1@d
      z`CfC@mt$W!I*tfoZ;5m@maZ`GKS)BxldckWSGpeeH?30wT@X?YC$R9l!k)<Jqy7Fd
      zE#AHnVn<3VzfK63%3VUF;S6K~VXP&Qz$zi#R$5+8Mm_0Xi=HhB*|yVX1Hm@jFD@hg
      zo$?6P_CHsv5ptz~WZ6Owt&Z<1J*<_xW`>-ZVS^AKNzY?F<GlnWBs$K-?aMP|2HE}F
      z@4)a;1n<iqLMR}L80R>5A*}Ervp2^i-yCu#&e6&osiy#v=9u6N93z4{GF&CUL0CsN
      n5app40(C|jY^<_B$L4Q^bLO-Hh5R>ap<t>!wgU6*fV1-jO~{7X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/InstanceNotFoundException.class b/libjava/classpath/lib/javax/management/InstanceNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1eb9c9bf5ee633d202102ec5921f95fde9bd8477
      GIT binary patch
      literal 563
      zcwUW>F;4<P5QX2s!I={TQBWyNOe_G6#8{#<C;>yTK<O9Q;E`hw?+(MCvalktFm@*X
      z9ed;KK`bOD7P~XE`^|eh*^jT6R{*ETn}`rfBk?F^<*`s=D92I-<)-ojq587z26cC;
      z23NDboCLP3Oc;d275-)-J)!UYACi#vrDqGLD?Oj<yXGZ<t_jJS8>$Cg;Y?-h^UZr|
      zj2_+z@pD_*L6s0K6uShY<_@HVC^izXuue#|Y$e;%aZh@;qUT6Lrsek8K(Gzh%R?i$
      zw|&BK>;F?#2-!l&mmQ&o<xb$)YFH_DwS89GZxPI~^nI4nwks&X>bO&{FYC5`!~UOE
      zC%P2};3@eB2zkU1=V)>j!5S~p)AF9+lQWLQF;<!*`5YoC-Yt&61q@V?<}9&*u!&44
      m%I{qYRGHLlymU0j_HTs-_cTL=+=5yv=q!hw(0n)S+4}~gp@5M9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/IntrospectionException.class b/libjava/classpath/lib/javax/management/IntrospectionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c17c2519a21fd9160324e11bbb571ab39dda677
      GIT binary patch
      literal 554
      zcwUW=O-=$q5QSgKpBecR1r=8&CITi-j7tofpe7*E1<Jm`4vt}Z$V_9{a0k!e4P249
      z@Bpqnh-WZX55$GIaM4{=-Cw=e)$d=gZvYNaOkjzy_aGj{*mi{yed$W2?S|667Yt=j
      zJDxfp_vFwd2}B9I3-I+&`oi1?KO`X=NZ%2Ij`RbrZyRR>Y7$a)#<WnnBL*WGOFzq}
      z&&kJx5I=U5qicjnsoWt%>)xHT5J5T#3oC?7%Te-b<aVWhBf0}g$hEv48wj@HdVUzy
      z_f9}4xBfX&m5?umussl}Z@0DYsD8EFG2VIOy+%m5G6-15crKs>tL=^ap1g3(1GfM6
      zIWT?L0nf)DPbeaWIL8E6OIYSbW=`Idd~(E*IL0bdq+UWK!@I>1I6)Mr$a0pPL0CmD
      n6y?Xx1!_zhHeT7EV*R&5lY1^hg~E)QE10Z+jnI5E?AiJT$!UFD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/InvalidApplicationException.class b/libjava/classpath/lib/javax/management/InvalidApplicationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f860adebc4ebb70052e8d7b4b465b352c008ed6c
      GIT binary patch
      literal 1044
      zcwUuL*-{fh6g{1V3FEL0Ac`BH#w0)@?i!ZT2pTH|59p|+K6H{cHZ_?^O(rQG`~v+M
      zEj3tL<p=og7x?B!Sl*sQlmx8uVY=^n?&*8)eEs?93xEZzXb3UPZSf}G&Q!U>E21hK
      zKa+Qw+?M5=wVEwU+?TGix?K`AC1{8+jH--`&7DeS*TFDc7oOy{CA>Q65AwGe*gb}U
      zoa@wm?)VnB8zTDc-OBeLFJHZ82vZRTv+xIOqqrqXewLwcQ99CJW*ATOx|0?|B<Gfe
      zjxdG|7#Jb2MAGU9Q8S?95W`SGI%2(1Eeh{GFWN#Ca!bUH6GzfJ#)$ty))~@;|LFk{
      zjQQ@S?@6b^FqTOE#j$P8YB<I)(QUrfkak&kI!@q}hLhB??#CIJ!Zg8GgrBo{ov4lO
      zfe(yX9j9?t!x?&Jm&-sLM;SEAU*}coPy#6p$vu_YTnx-&jv||CDjUxk;`_C__hmXJ
      zkycI5bWNw@Pg*f7Fhrja@RAC?Xy6hq(@c4-CY&<E{C-(IrcSSddRG<1wXVzqDgMrk
      z;RbEsGX=0{;E3vrzUel+l30^!_EY~Daaw_5nieWde@ciTqUa+{3$z%0v}J+Js1*Zr
      z4wAM;dWdd4wS%G5><5@{gP1Wo2Lq%#h~O^zk;gb`huhI~PXK|WP>Hl++rfNFd5rG(
      zXG}g$wQ#(JnU6TPgL(6O3l~!FVYYC^yiRfp**ClOOsWJ}7{NnYw?~*ES=BV!Xq}o2
      IOF_o+FF(NiNB{r;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/InvalidAttributeValueException.class b/libjava/classpath/lib/javax/management/InvalidAttributeValueException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fad97385897a4bd7b25f69c5c457cf8365051688
      GIT binary patch
      literal 514
      zcwUuH!AiqG5PjRGiN@M$wcbS!Z3RQ|qEre}6@;RPO75F<i7UybB%9LT@>KBP2l!Fq
      zY+5{65ZuGOnVt9E%zS>me*oyC?V!Toz4AF<cnMcL5{XdSdr)&8%ju2QnG6aod>$9#
      zZV`%^mZ@@JF`RCQo@OHBrl0>X8SHDRq#iO<J6)f_8l_X=qKfT0YOooaW2wYrkpv=p
      z=0PkNTH`e2vClJU>h-6kUu4eEAOCaJ0Yke}ioBSs$eR#LMT4$ycGxpJG#H#j<T?47
      z*&9>_caj!aDDI_M<mB&p=SGiX(7iCPLK)pj(V^;skP+5;OKiQBZI_};2wcL#6?Q1A
      ruSkTugvOw;HW(7qaP8jN63yQZBVyi`4o552+QDS|XqCecO3mRn(!+IB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/JMException.class b/libjava/classpath/lib/javax/management/JMException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a39a421acf7923e847da1965d8dcd51a529eeda
      GIT binary patch
      literal 440
      zcwT)^!A`<J5PbuMYDGX0PsYR>U}9suXfRw*52kv-^uE+hUDIw!TMWPDiNu2+;71u}
      zOQS{;_b_i}=goUF?;o#k08Y@eQ6cO<iD$8NW1&STW2tlZ=JskC$a$_3ZNnmT4a1Fu
      z4&AQ?p?;yX%EyFif8Z0WN%9~aRI%AW4Ru1xQ(E3F;+ahE#VnG9j+X=?@<pmlU4B~m
      zqsj;e-hXS12)(}dy~Z?8l@3P(-x#)yVUu9TGRt__82zCVoN2O119`2CYx{@zu_5CS
      zd<o2}aK;yKw7EKEB*xlsg^ib@?QnD$fiqY*#};ReHHmSX(Fin4fiW`;w>~^tq4ir~
      X!pzG;VQ<YU6->5+PGR0HW_CXT^Rre^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/JMRuntimeException.class b/libjava/classpath/lib/javax/management/JMRuntimeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9eacfda8c1de72e96725a83b7ea8759716ff4bf
      GIT binary patch
      literal 468
      zcwUW9!AiqG5PjRGiN@M$wF=%ugtme~yeO4ksvabIu#)>WE^#H<NV1XsmZyRTKfsR?
      zXVZYtUfjdHnVmQ9&3ylSegQZ`*FlZp=#{_onU`?IBasNDy}SFzLTQ<Zn^`E{v`m!)
      zi{Zc!y_l=WTkbR1S5iqmVyO4}0fRM8pM{G$)|+U+W@!6TiH9PYitLF`W5Lkz(~!pj
      z&!nlVPfNeZoZ;C2$5KOvZqNT)YN9i#qG3NUzFWq(#o#0&&q>4htxy@<Nm^u~xRu6y
      zf7RpE%-|4o7tE_sM)y#3s5&QPgpI)*YaeCXrRWj@7qD=N4a%Ae65%GH5olEcBVrn^
      eJvf=8y{s@M=5?vCw_sHYCfi1*G~X#_c7FlY=3)E*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/ListenerNotFoundException.class b/libjava/classpath/lib/javax/management/ListenerNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e66803ae19c7e66062fe14465800b4dfbccd347c
      GIT binary patch
      literal 563
      zcwUW>&o2W(6vw}hZC6$)rIdq2;?S1Zh$DLOTbeqcXQQ3eusbWev*O|}aq%xWRUBL;
      z{wVQgH4a4LF!SD<`MmFUUgrJd<rTmh=3NXC>Q~}c-1(u<q9;SCjo(y>ky^&B$m~U_
      z?(W`o<c(30cHt0~e(}dQG8Xne`6dYyiHwy9+A>bKK0DkY&=Fy5n=vD_X^SA0xrh78
      z`QzL3H6g#Lv@#9CaJAMZINMQIdKkud0UkyP#ir7-m4+8GJ{1>%B$S#_hYbYVa6LG5
      z%%w^QE6x8;wLvIXGu{t`?)fJsR=T%QYg_xWwVxump-d8%vbMiaf_D<7aYybc`-X)-
      ztyXO-7Qs{U4-n>&L!P6{)euH_k)4+J0-vmNB#yayA7f7$Qsmv^2yDW^7A80=d_kB*
      oDHG-Q4g?xZS~g!_?qm9=!anyLWC}B1)Ih;zGnmcHD_PInC))gg9smFU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanAttributeInfo.class b/libjava/classpath/lib/javax/management/MBeanAttributeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5626b8a963498f306eb7cb48a7e60b1b8f4752a
      GIT binary patch
      literal 3515
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class b/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4933f4932440c065ffa9e1bac1ccac767b444437
      GIT binary patch
      literal 2979
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanException.class b/libjava/classpath/lib/javax/management/MBeanException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02d6dd6acddd06d79c6422ac2dfdadea6feef3dd
      GIT binary patch
      literal 896
      zcwUW?&2G~`6ot>tZ<Dw`q?DFYehO4dT!hsf5{LzXN>ph9HG~DQn1+$-Dj8R{1APb{
      z1|(1=7CZn8-h$Ua98aQ<s+M4p@!Xs59G^R$AHTnS2e5^WGIE0JN9w&g@dnB$Uk|iN
      zyxm7ynI|VbeVhcLDWf1*I|uFTP6)w5tfN5nyE=+lzkK>wAUlHDR%qfxnWU@wLtVUQ
      zKK?SVwtfmK`mc7WoqBtHWqfa9d0$X^5SSo&C|GG^63wol&<fw_D)Lxx;NXHF-)MF#
      z5G*>Vq9&Mc2S)D=2M0RpsDr*1)Z1Z?Nfq<59ybfgVGs+}+y6KV#uDOgcA}}~ei8-7
      zXT~(#l{DNMCv9XAg7QGeF<+R5I|m46e4Vt^Fy{Zujph{5IgG*&=>UZ4ggPqXI`vu3
      z;?q-9_rqb-)7wEh{o>gn@1_#0^Az*ECONF4h!U%^t!DV+(Q;p4&%rF$Iab^3=lHC;
      zr<iv)zoP!x@)x<zS*JZJo}q&0SYmZ)MDw`}*xd?U#d=;Id%hr(Dr@eYQ><p1zGk>L
      z6u-5mH%9oxv^F+PcUN(ZO5S%;BYV%j4k)@`Q2#VBF4?AU4V@7%HslS#&HoWcnc`cP
      Gy8Q<(8@M+B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanFeatureInfo.class b/libjava/classpath/lib/javax/management/MBeanFeatureInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c240dc40501e9396052d424599879b825553cc5
      GIT binary patch
      literal 1654
      zcwU87TW=Fb6#gc5yvAK8!MW5x3%H~qc0yb(0oo8sE`$c0OPdmvBHC_}A=${;4c>L2
      zRUax<>T_R_$}=y0fI^(Al~Ca&5`UrnEfwF{b)CeqR9T)mbLL#W^PMx=*Z=<U0>Ej^
      z8E8_-tXdn^gZ!H1Sj&1%JAQs@R9nu3w)}EQPday915t%GG0PV%XE{H!u&Nh*12Kh;
      zKx@1CIbE`?qWzt<P}DT`g5$g{dA94^oE%qB*A<duuH*TZ<Ih{gvTi>Acln=JFK=cP
      z-dfV$V#!|jX|0ed?BtsBOSZE-q!4wiHAaqkfr7#%+p+!23MYH_oA1|T=NV$mUD63e
      z&|#ttoeGiO?EC>JyltWdNs$hjFp*SfE!d8pF0U=<(&u4Gse-%6iY(T}b5$AjS8Pw=
      zMB#rqWCbyOuWS`*-nkobNaj%X%LLPBOuUB^3dXYbr-OPsdb9hBN#K2)G|;oBE8(4q
      zqc|p^vL<p8s)eD(ce5LD7gqOjT!p|MxeD<W%Ucnm0(vGT)oBw0$n(l~!z9AgITNi&
      z8aPk->OqW_?c$Oy3Dp-(e29<eOBiEC%VYWNdrAtFtmqOl28PLe-IW0N*u)i#kd_UZ
      zo0+=`J&h=AMARV0q}k(jtk<R@jtO?=whY&>Sbt(-5**c-wZ5*MC52Os-1e!e6%WNx
      zpl`p7^Kcx~r1XwNoi%Yrnvs}u%cVs<VaxDz*3Za*L`8<=M)+?=6o+9TPWb@eYZDUG
      za5^bRWnQ`eAU)t7qfHwQa!v7ci?$K&t+_3<=lV9$mFwR``e_j4FxM0V0Jpi`Vd$?I
      z>}wpM=6L9acknI{NRmbck|b`T%<-zG`K_8}w(lj>LtO9s3u-F&99`Q;_E&Ix8-tH=
      zP!w{ip!*@Zc}j=Zz1!#tuhVi0uA8I3M)<4Y%&}zP9!c<+-$y&jM7DuG+$Wz8I5Xd3
      ziu!4MzYG6t4gV}H`-#@XC{9r)`1vTR`19PQwr0Wbq?R-mD1Qn9nxR28ppwVgz`3j5
      z`R9ht1A&t`e-R)7dP260rpHK#SiuJ&LH}ve)O@qUM@vxOFO2aB-Q0Jw^whGPsX_da
      z{gt~B20FWqi@85Bcq>=Ig$jm#$K@@Irmj|SElhkZbt9D1B2RItU}h6%#doK?qilsV
      g-oP^)!gD^&O@2ozeB#g8jICXOMrwdQ4ZJ^l19D4IR{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanInfo.class b/libjava/classpath/lib/javax/management/MBeanInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9af293287083709b83ba550c120af0bd314138da
      GIT binary patch
      literal 4188
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanNotificationInfo.class b/libjava/classpath/lib/javax/management/MBeanNotificationInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af9c8cb3311e0db8633f82518187a3147538a988
      GIT binary patch
      literal 2094
      zcwUWEZEqA+6n<`Z_NB|Tl+qS03N0Y)Zo6HJSd>DM7TRvzZq+TV1*+Wc-fpK(XV#fn
      z0*Ns(@ryqJd_mM`NcsU2*(H!vjUP<-<X2xX{t;i!ot<u9m_$Cz%$;-3dCqyBd(M6M
      z&;2z3{m{Z_U^u+Yukfp>6>jjNSP_Pknj99~$eNC}sO7n%nMT@JG{aCBy8V4e1$WAp
      zsJVq0c1yRE&W&PfL^ln=7j(hUVhc;-`i!t_!aSco%fKcWnnp~+cDUipaJ?*o4;$~_
      zeq{eW&Jc92m4r=b7c(1pImgnB;vhrlq-JQ&5W|U>&;FBG;xi1&h*=O(1kkFY8M_&d
      z#GWj)5e)4rR5UT{%xH$lmRA;pHC?0HnlballoMb2_l%0Oq!FE3g8vtsI4TBTanXGE
      z?<fd6Z)qjzPFm%q&J1m__$KG6g=LX<2BYZ0fiSx12)6I3cozG@IK;4jV=JxeqR91}
      z!yR$%YF@ZGA~;OyxM^bXE@G#PLYHZD8K#lUuOD)k>7w>UaS$=7Xq;5?Q8YdiMi0ZG
      zZGA!#<jSRzX*r@$PfSNG-Ys+8-Uj87i(in(mr~J-WRwo2U&T?pKy6hNjw|VOt&7@Y
      zai2bk;zgvw7}z3BZI2;9Y__WJ<)p?nsVvijW}KchLu85DOR}LTG!{?Gx?WLn3PVv0
      z<7^ls>siW<rl-zW7Qbf8{c{W*Tbg*Cn#6R>^>VhJtw%uiVOqrm_EJH%Ym<31Dn>CD
      zMwVgE_L$+arWb@IslTS;b<hljbYT>oC27j3n8taAM!URVdzm|8>9kL7={~FCP0TTb
      zugK}0TBQ5L?~we0ClQO_5{34<gMLa{-cs>4E>l6gR1!vkA?epWkC{A5gHq@PNj)zo
      z*-z5P(ITMpV)HV4h9R0W%T`{DYI0&beFw8oLZF+356}}t13D2#gw~C8tu`P^58Vs2
      z4w0=HJL%m*f0xK#p|6_gO;)ih(Q_AV-?|YU^lqkIV3}gx!4BxyLw|{yKc2$VfV+~o
      z%w2V2FGb4LGqjSG&?I}ACft9ZB~iuxJF^dPaIW>aDvo^bS{14}u_fz!WO<)5f8b_S
      zYq4HdCI`#I{e`@P^v(AC2zDLgiJmI@ZXg&~?fC(0vbTcgvw;ES8ysj?l53wMsH`Tw
      zLtDFYG)Yed$6VhJ71pju``WF4e^XWit91<qT-C0Vnje#DpI{e0CHrT@?<VPe3o(2_
      zm4Asrd_`k(lX!lO3~swsAFEYX*D8zSc!}!nAk>%1)<7uzI6)Z#q*E_poFpZfyevF+
      zDf&w0L0Q|KdQl<QSluK|ur3YFwikSyyyadKNq$-a+{2m6tJ^?++62;62cbdrKt3Yo
      za&L?P#(%~TVZAz=c!0?{X$Z(y1yf3)f;aAAriu%#7b}>rW#hDJrJeZ-7Vpy0knaYE
      jeFO~rO7Gt({U0RcBdYjMoTl|K{@PU5SiP*G8@==&WKiI%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanOperationInfo.class b/libjava/classpath/lib/javax/management/MBeanOperationInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..522a1c0c1f5dc6ae8a90a40363b7116cd72b0b7e
      GIT binary patch
      literal 4069
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanParameterInfo.class b/libjava/classpath/lib/javax/management/MBeanParameterInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59c7b922145c636c4b8e712b30aeaf8debd1a510
      GIT binary patch
      literal 1809
      zcwUWETT@$A6#jN@C&UA#0ZT<~LklGrAX>Gxg@Te44GmBY4N|G&CfN<?9QKLloFKJ6
      z_uW^2fa3*c>WobsJLBcanf`<R5MQ0HeR3Kg#2Fs4&)RFR^?hr7d+j{^@Ap3dyooy+
      zd<^IB@g2UK-sX~5#I}%5dTCy8d6QdwTR6hX$-Ab80K-W4zy-mbx+Pj+A%+1JmNvMo
      zq%(#o1>ZCTL%%JoDmRM4va6=NmCG`)MTXvtDQ$;Kr^t=E2v)}a-Fx=n5>*v&?$;<S
      zn%_q&I963wrWryrRatdr8Lq^S9v{b(C=x-&EQ<*Ii0bIW0K@pPz!JqCFubfoM=!&P
      zd{v6&`u3)<R$F~W^Ja<K<kT$fJ!in#s@e==`C~{;{RJd#=~EVVi6K~0Dl!bl69>v!
      z*}Nx8&U6H4F`^+x0(YM2cnz;>IL~l)|0rh|qQZ@W!yR#bw<Kx~-9{K=)V@m-PsFHv
      zLzH8tj7d{YmR?+8%ydzwA~=U}C0U$g=ptF7s3FNP+A#&orc<cbYNq9ga+{d0QhZV8
      zhTQ?>HJ7-p?q^Cz3KJ1h{SBRl_9BB;5zeYR9)~sYDv021Olf%MkS47&20yiNc&t1!
      znn#l%yv6M;H5n8cPvjK;jE*a~sz7Jx+%a27Y6{-d@xGdZknOrua7M>0E^4^WFw{vt
      zU#}WvVJV~!bbN@blxYZAaki9eQO6DB8G7vcrtKAbDxS;zPlL-kR&bNF*ijE><u1d8
      zZVGlw&SE@_0+COsH+D@qZs{muja<A|6SB-O+3jYJxV(<0!&oQz?kJ=TL!@BVt&&)%
      zs?i@hI^k0a1|uY(pMF93FboZ0vU})n$%hF2=yj1DB3~a)(ArPC4T=xYS5KxUn>d-A
      zc#Oec+>BGS_R%S@NI5s~67m?LU9uIA(|84Ntzp7tuB8}!uJtNesuFrG9@C<`2l|su
      zoO!hN1n1VHqfK1+)Aa_Z=ENb^4f1?O%-m(wTe%)9Q`76=?ogJBA5HxY_AP?`y=1D1
      zN!LpK1-6v@6@wEEq#Jl^uie=&Ap>8MM!TfYeVoKs7{CL<|Jvn?wJ_UVj^Yw76XR*B
      z<X!Ul$fkGW)sUvIsxPRx9<@nAuJhr627>JdX#Bn8%PttuOTtVmfCjF8zSjZr%>j_!
      zHppzdf``<JI?EEk+&_fV#Qa+F39{?T;a5uo3xRS2x!<tV#7EJO8(3|ztwukgrGeXz
      pF{c9e8#qI#z<0EMPuxEsjvwin{Dc{@=kW7^nzHShK6SG<o&#g4ixU6<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanPermission$NameHolder.class b/libjava/classpath/lib/javax/management/MBeanPermission$NameHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4610dca663591796dbe267ac9e0ab615fbb274bb
      GIT binary patch
      literal 2646
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanPermission.class b/libjava/classpath/lib/javax/management/MBeanPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15151ce5108757d12dcc289ec054f2a76d42e96a
      GIT binary patch
      literal 4723
      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
      H-=O^umEVi6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanRegistration.class b/libjava/classpath/lib/javax/management/MBeanRegistration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c07efc3c5941925e0255e97b00aaed22d6d420e
      GIT binary patch
      literal 408
      zcwT)_O>4qH5PfT{vGt=7!5`o$UK)DNO{^!YpwL5a+c1PkvKuyA@wfHRAK;HF&PFgo
      zz=dUI-<$V#W={XVe*oSv^3W2P?&U!q!(1wvP)^E*A9IpwOG#Q<BW<dchqi$4>cUK_
      zB;0)ODYgQ`LYH<yrYa>P@DR*C1^N!&UcpJQs-<(SGj@+$-JmdZtA2hz##FcuOAmd4
      zaV@(t0zFpM=3f`{X8$`f2QpEUy)?g;IYqO(EH|{%KPIMSnh}rDSj($ZcLaEDxYOn>
      eJ)#4*Ef3u)KJlB49LurC$N<AzgzpRIE%;{_DQ`{y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanRegistrationException.class b/libjava/classpath/lib/javax/management/MBeanRegistrationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb7a8a763d984be696dc92b3938c8ab77c8b04e3
      GIT binary patch
      literal 653
      zcwUuI%}xR_5dH>%H3*6*h^Rqt3Mw)2hT$M+g2A7Naxd7dHPAJ?i{WYX89b4A@Bw@%
      z<8&d!C>}g?Iy3qH+K<n-cK`=iw-6!}AH<UwlzKu7TlS>(OXtT@=xb>!&v%8d9DOqA
      z$Vbyy2ov(t2@?<@=}A|KZcDlz&$sm&fzAkts-rz$Xul=8eHp17zGMsK=M6&iNNMF)
      z2-)q15ifOxwo4Pi@=l8ot~z%zh8fJq5yKo|p`o<A==a*vy%FuMB%~Tnhg}7G^E_UL
      z{d?sR_8R|qW|{LcH9a*9p)ft=w`J3Jm9{yz3A|zgrwLY1dLEmbpueDmSkvjd9eJuu
      z>ipl~_6-+XAeIK#93qJFZSfSsEFUr-#5K;F3eO?FqlMxSiPr$Lz%>?ZtIVw-$z5iI
      z!Xi>Y&@Ew^HH=nztW{@6<7pL&yF+Atid{14DiGTo!6stXSj==;tOgNt0ekHWD@~Rb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServer.class b/libjava/classpath/lib/javax/management/MBeanServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..119458287393905727ba200c032054d23f4b864c
      GIT binary patch
      literal 4177
      zcwVhnS$7*X6ut^26C7vhVp>XR3#6&tLQM;l#Vs^(l45WZYPVs@14p%GAC>XQ%xHWZ
      z9{3mh86Nln{3s4rn(<`DBQHbx;3LmnzPsv5`sd%j{sw@%@RJ1#1g^ZK13E1Cs6)G~
      z#~fLHvdyT|WbS~u7Mvllt|ZDfb-Lw)7cW^$TChl9bDCaNI1UPO;Sjh;+wFZJd55>C
      zqSU!3nZsNHe-!H}kifz|?XgOlX@Z#{w#RKb5{k!ADIF5X?G9V4uf#kHmI>TSLDd{j
      zQm4fba!>e9J5nGZvwA;wXj6S&Zn=y~rjt#eQH)77rOTb}bjzhl+)<<z3)Ts2q@)_G
      zV+SRTa$vzZ0_BN0+p^Kq_VMlzE9J$ME)ckFZk`6~qO42Dth`C!npq(xbjgH@S*?m*
      z-{#bjNd*GKtf@On7vv}nF+0HoL{`(MEGdCMU#Z1cmx<*z^O(!2&3|VE9!%d-N815p
      znTrUi?@KhtXb=1LnyGIO`YdQDFIM~94(q!NcN=RHxNFGGbW;TOv*vRaV7|-bmPDWz
      zzQjya=NK-AWG6~u!KP_XL{<zlZ6)r77mb&B`e1U=BS1B>G1OHwQnjh))dg*<bKw4T
      zEAh}`dWdv3iL@sW>{61}V140nDcoZM_lgGZY!u^3<P#mVv5t5<tV4ZU?uZ`cn57HF
      zQaW&KDkZ5!Fmr`s$&j5O!+H``G4)c*#l&ikWL+Ivek50OI)XrDo)o3$qf*8`_>92K
      zlmOath1VaO=|NJH`;@?=%;wWOo$LRSQ`O&_hW%q`VFGp2=FBjD#^9=1_pK3yXGJ-M
      z$BWz<h+kP`bpDZW3Zr@MjY@aWQ5z?t>C(>{BRJ2QtETMr87+hw%fI=|J=TqjJE%5?
      z(FF6U(%v2RM<Mx=+vO%x@#HkJ(nH`CH+0K%hYC|LM^8*|_scHpi2*ZTd>>~G&3N%G
      z9a`|jbZH$)7zX^qtd`?p<Lxu=C61{X2X>kn>1yvA=Ii4CuLJE!@{rm-i=R<m@{IcB
      zfBT@%qd5+&HQyO)nOV)O-WE;ayDf%ydCb##>}_;MY2pKlz-#z>9iL(w_{g$g3BTUJ
      zuQRyjG$lVqS%KA%l1IHYI1A^Y02ejqt%;n=A!ij9PdFjo+Y@<L;2l`dyhU7da22kD
      zaz%08jd8A`-U;Wukh6rb<&blt^*(HbwsIIx0d6Qh(r-dBqz85stpvBmBEOxYd;lM6
      z+&fU#>qq#YRqH+YSg)VJr=dpR%YBXfIeamO^CeVb_Sc}GX%7svhY7q9^(zDQYj~8P
      z7PRdx*dDW8g&pndF6`;`akzd1wV1xDimK$d@LeKPbxm6`(Dn_qe2R7e-^Y3;hZT7m
      XdfJ3%shT{8!vyU-e*J)73-IHA&w}4w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerBuilder.class b/libjava/classpath/lib/javax/management/MBeanServerBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efb5e6c958b4cec222be0d557917722504201d3c
      GIT binary patch
      literal 996
      zcwV(qO>fgc5Pj1)aq6@*6lj6cLiti!Xf4_cY7mDKaSCt<D#~$_3}!25Eg3uTv*;-j
      zmHGqtQHWW`N(+&!T-d|D*`2p<o@VFQ@1GX{Uf`jN1;V3KHB#UGp)xAqA)Ca1cg)Ik
      zI396)oa%7Eu?vS#w?scwCh$M>PPv~DDzCKB$!kKXv2#Lj-b4fTP{QI8%BT=l+S>5@
      zblBtgqw0lBSZzmr6`rVA+jD;DBwzGb!jtwKR+@xshQD1&5JrvmrMFHJYZEjJwTiPX
      z4mnT>H+PCfTwEt?1Sa)oXcLBqI&Roj+$41Wmq+RQ@_;|9G)!92P-$bEJX4BLj?%<7
      zYpb{_p*qO52~X$qKv?_xOIlNfMx(fiQw<kegvawxJ#1o;;B}%j?(<u1Cun_kQ1-1B
      zwjsj_yGjztP|EJg=}?da%e!M#&m>rYC%Y#Iyo7@z)FfJ(kOY?nW%RI;3v}ex5v-k~
      z-hK9bZ;aI+Q<+Nk>{BMOJE7$gHoAqiEMLPqZf6B+xP!Zy!wuZa3mizsva09U?2d8&
      QU-kYKgVm|Q2N`So4@(^a8UO$Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerConnection.class b/libjava/classpath/lib/javax/management/MBeanServerConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ca079e125e3fef1ddde45dfb0d3ba5195bb24b3
      GIT binary patch
      literal 3243
      zcwVhmTT|0O6#f>qt)(g`Siu`AYU_n6-mNz*7dwM6!i*2{;KX*@38tHxY&zw|f8n3;
      z!5`p{ay&`Xm^4diR36IYJKy=vWp~f+&tKnv0Jw`cX^b&k+toT+x75;v*5oZNWa;f|
      zu8D1Kb+}bAh2S-*n<9<F3==N5WN4yU+WfRj28O&=uWy)AZ|F76<*n<s<bqoaUkmFo
      z>7Lhy*5c*3Q6+N#ZB;j9pA^okTzt=vUFp_%+ojoQ9A&r>ld1|^YNEzTa@BN1J#a{4
      zoZ*zGs+*<iW?*2DNy{3!<{`zTah&01%zMibQg89iHn%(lJCx^m&ElHm-eNLr6+*Jx
      z($Yn9c&f$yto@#q(>Td6AJ2(5jNX<Bb#scLv~Ty949c{=x6-9Gw?j^+RV91%Z1E;>
      zdo_m~&M;h5JA_EHDpgvBirH!#x+Y}QfuWnUbvyAD+=)vZ++YSXY3P4kQigB;HRAv4
      zM6Su@k|h2oM{<VB2!~J+Ba%rPmsDFJh!PtL49CJ**ukk9rTqPC4FuhpN2N|skY(P`
      z978UfElsDmQ-xw&iUyp^^eB|ebfKt-*UQ=4(iJL3db|*=DkN{x(CKy9<5fk&WGD|W
      zO;JbSOr5>Wa9wfUrDfXff#JX~Ns*%q&hRR6_}G?7>7rwPCM`YbW=XPbBP{BoZue8z
      zY%nY)4PE@;Y4iphw|Jdl?toU1$M_eATYKID&`zk15Hw<Z=X$Sn+x?OpsT-wj?$(p_
      zlwCg(p0#+(>~QsUzm_zr^164gx@W4Zy3bIY%I8TVhr37bgq$6jEzgq51-@SPOX{nx
      zqZxWVV7}K3hldA?9UUwm|2hY6h>S30PB_ByH<|xLIB1`_FRE?Rv1*(iD%7W0<vVe~
      z)krZg9D@5dL(j$|NYQtizET)N23Zfw`B;XS865M_6PWPP<HViBDNG}e8Q*qxi0zzj
      zo1ou6wv2B*Kg4<g7kz7vvdUwQ@JY{d8CN1X_Rx7;_0hxh-$kzB`T$ZuaR9l2n?8~y
      zEQ4FV+5$?k-rS+bd6=8`xr?|L<KD-Efk+SWXaIQ}L!RJiq_VP)rj+P&C7M&9FYq$7
      dMj7hmt04Q=s3^L*jFkvFO*J#D()SqFegh|Uz6AgP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerDelegate.class b/libjava/classpath/lib/javax/management/MBeanServerDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..325af96c49c338ea52de5d03587a36f33fe18e17
      GIT binary patch
      literal 4939
      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
      H@sIxpQOpR)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerDelegateMBean.class b/libjava/classpath/lib/javax/management/MBeanServerDelegateMBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c607f16504840c23cbb72c028bdb73fa054f95b9
      GIT binary patch
      literal 395
      zcwTjoJx>Bb5Qg7H<OIJc1Z?c3@nUU92nmT|aS8o!44Wl)dt_aSzs<rQ;EyuQk~I>*
      zE%r&~oq6Zu`{(luz$2~`)D-$lTGK~bk|oV0Tc5rRm~6&w&2GpAYx2AeC8#U3LwZ_}
      z)#>YO$+=hPX!hfBRcx!to61h8WQCji{_|gU=AE(nNuhU;K4m+voWku9#k~ontw=j_
      zjpt%7p=`yuS(tpMYj;2V>)tyQqIoN;-d)ZkQ%L>Yf9pSlT^b4sCkQW*Yn-BiaFrzT
      UEV3Ediad|J2o#4)`D?h^036S4I{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerFactory.class b/libjava/classpath/lib/javax/management/MBeanServerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0c655b84d02fd540408a55b341a2e5e27af8873
      GIT binary patch
      literal 6217
      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
      MYeZD1DiHtw01`|0k^lez
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerNotification.class b/libjava/classpath/lib/javax/management/MBeanServerNotification.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca952560dbc93aabffe90ba5e509dd61a84d8b59
      GIT binary patch
      literal 961
      zcwUWC+int36kP`xKng9^TBR4;TD5=%V&WUdM6nnM3`wCx?SnbMae5j!qcev_Kf-^}
      zL}TKEAK-WR=06zs90+0v>ch<JwJ&S!%Y6I!<tu=@$i@(2$e!_Y{-!wOiaTN`lrA<N
      z39eegI~ShqYWY(3xR$PpA;Pddmpz-pkoJWq`Jf{_pYU<@F$1eHq{^=HHCMXB2P0t}
      z{AetFucY5GWR4D>R9o$%hwW<9eqlG;)k?K&0K;lM5GxM2a*8eON#&H{NHMI{8cz$u
      zE;U*3gd=?|Jke*^Jhm5-#gS%M|6Mmyvy}<AdnS6?=0iaf*5^iSPQxXJ=zXcAe!y^;
      zo$qhPGcGFC{z{kYFht63UnCI5l_W0VDqZCNh;y9_VAx3FB32nz>QV`NMB{mF-W`Zw
      zeQu8~!Ra1^C(ejIl|Dm$zN-aSF9kJkUr}k)cSl}N{CSs2GYpn5UfV7uE3?I<BeY>0
      zFLfuI`^Q=nEyG@sL6=(#nkfVv*rTz-^an?<0Si$=F+w54kwF4WQ=BBcJcC#0p<Nl9
      z(W=+zeVNdyVF8x&x9{wI#(F+ueM07g$=eM4M(r7~JVy#A*dla~YJ$i%t^vl{F-n28
      wOC5%cb)9&_#@Z)ci{dwMbD~<LZ;)^0KO*yfDi$@)z7a`|6DA@Iw@lW-FO&`FRsaA1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d6fed42a07e86d2407cf130eab6b2817872ad51
      GIT binary patch
      literal 1404
      zcwVhkO>fgc5PjpgahtkL8u|eZAAy#VxF4Z#;84VYs1-<Q0Hvw~w{5ygUF>ybJ5|mI
      zB>qBw0T&J+Q7VB1cYYLN)>u$gMahAKXT3A~-psrm?T?>dz5!UpT?+=Gvo8)sujUIS
      zI?|Uau5CV)LbYUgD8r{R^xY_O12uoHw;p(&Y{&nMudA*vL!l2?FbM^ntmX;TsXf`*
      zXQYKJVJh)<W7n&l0ubncP-zTS-x|T(4U}Zm3qm&DbEElH!lMD<{n}&t?0r|c@dH9M
      zXia@d2jp3+ZgY3_U{{WSFkxd9b`BX_urY>7LZ(vP){$u&7KZiTMH?f?5%LXJ$!6Ez
      zk>Qru@mQT=BWMe6TZFFOr%qGLMQ{hKr(a)vXMxqs?}=zL2<5t$B#M$Q_~u5H?8T{*
      zFj=WK&W_AljvKsT;|i`?m?xC~PERvvb=!L>dcD_{2Rhp@76{jxLD}bgWtk={3*Io&
      z^|S^nIn1G=^{nzdR!${t#i6S@$ra>UK{ss64OeS6dv22}8c47oD<#9aC!$D37FGxw
      z|3_L2w+Rb_adFdq*jT)NSA{aGo#AhYt)b_O-ws1h7f>kZN#wnbk71l`o_AXu&+t0w
      zEFPoaoS^6|9b?ML9AoBVg1*GI2os<HL-Z0O<YSx^X4yZ@amJ#A%Rus{a~jOe7oKLg
      z$1CwV=6u4;5v<HRnCAOG)L9**UP5R8KA6(6BuPV><XKWSP;x%w`Vn)PTptroefWyG
      u=f#^Rxb^)^wXa~&YuNM#6ZG~JeJQ0k;3RetO9{rnGHU$N>gtzq2gWZ&MtcJQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..272e8d375ad0873d439eec1626c552bd01578df2
      GIT binary patch
      literal 2905
      zcwUuNOKenC82<iw-Rble%D@0El$KJ5cBa$eQ3|x>Vau!72T-84h;ln~T5h>>XSjE!
      z6nt%JOiWz3GHpzZ2?>e8C{d<H641CXVQHc(<Hm(9O?2f#{m-4D)OJY6#mxE7fBy6R
      zukSzi@!wxP1h5-#DsT}_Oli~FOgyET+N4McGaDc15t=zHtZ8AL5mrjKZ9Q!^mDKj8
      z4MQZdEGh618YNcT7KxmtXK%(!*%7L3Vd<K2QCRZiLf<h0ohDTErcFDmnc0h)krUo~
      z#{9J({`%#6!iL1+<)?sz=Kk^m?;`lJS9QB-7Yp6Gsb>!pqGjK1xk&Kzrjw!qgmo%Z
      zR0iP2dKFdJKyWupgSGv-DF$<?abca;#tlIT_NNn^qsE!?zNqxbI0&c8^u1ciIWxDG
      zOcLq}*_0|g#~<Lpx2mYaHbOwR&j~F#WEwY}*vAw!5VknC4b7a44;LYh&m=@fI`N~C
      z9h~RD8=m%|fp-?;G^81*Er5D7$$C6T2o*yqfMqS+oa7J`>?DNC%UagCMMXf?IgF@^
      zR>TO(q{t3xDK6rM=9ZN%{D?D)S_91Ly$bd)$(Ea_XvaQ+*UlJvmawx_oR>-g@8`BB
      zIN7XN60US~P(>%W2a0Yc#mvyeGm`J~;}BtuDQ+yge?-MmnVN?UQ&Q2Rq8B_3K5;##
      z8TK-~q46m$epky_04LC+;N*XjESyS|J{70&0*7UZjG-mCV#k)k^j_7hVRj(Qgy?#f
      zzC?u;3=lRgSNG&}BUwmiNW~ePWxvyMeq}krrNUo{96&#s<llJ}7r@ix(=r)hGOuH$
      z>bXKyjKRTqQN^gNsXv=897+x~F*P!T+Gh_5&qB&(lgbI*)QrMSIm0Ww6I=<lTVH}H
      zd}Q*Gzrd9gw~zXmZ`^lB)>xiM=VV$m#{SHV)Q+>1kdj{*&P=da^Mv5JtZu}Qo4J&*
      zG-uuwqzRMdjnQh4N9pq=-U2XjT~4({u*-ceSM%CcCXVy$Dtd~CRoJUMaAUH^(<*Fa
      z|3{?dMzU%~g$MSgtkfEQV29H=D<Mwk^1ZJudAChECa8U;DXd;Yvu&AT{VIM44Xbqw
      z4IGG@KkaVR!V4eo6yCYu=O4ePKy|hJezDHW8jhDO*7B~McP?H7k?4I?M-~vg=iCeN
      zzeEAKu#sg|%8axLn|WoXvL6S*RSOT}0e?pF*fNKz2dEznZePHTN6~K(p2N@4uMr-I
      ze1YcgP#I~xkLEjgEVp??24lgtJa%<@T6t3ty|G|N9tS#nv0%4c6?cdK4&HKiRMdDw
      z{yljd?hLp)D(|4L#uKV^_G*n<6UgKFIru!%OkO-b2Q}n#efUJx;i!Tkg;gp;OU0>?
      z*-8pk)_5L%^w0fJ#XPn?K>uj$OAIdHoQ!5z!Vc##GC1p}kiW*uhBqS*5FU*!V2m?)
      zTB~=^$YrU6Lff#8>am%&qmCN+0os993ZtENqMMre>2ARgMKD59T&5VVP#dNwjtuR_
      zE!u-w+KacT9q-XTyiXmNr~SB12k<c+#3$5=PkH^E?H^J%zNJI>iE)0VBlwMu;&)#E
      zpkAk6vxS}%`z57Ic!@h!haYj7dEnyCKf=p+g&EV01zdr~eLRV~7-z|gA>2j+N#?)^
      zK7e3J!5H4f1WSIlehrhjiV94@g3c%bq;QsZNyff~gSf^z$r*$71*UZ|zT^-S#2k%C
      z0xTf&*<t|$l7=*Z3hG}%xT;0M@rW0J4iza|Au*zP<nAtG?7Rc8v0$`Vfr>%}swL=+
      nB2<`d<ka{g(FM$uX1>e$-E#h4<-CC)OZ<t$>%5vQy#d$1s>$>K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanServerPermission.class b/libjava/classpath/lib/javax/management/MBeanServerPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e69173d14d8556f135d3cb51d513ab8740bcd07b
      GIT binary patch
      literal 3110
      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
      Vf|lp>jpn!$6(0oO#)7-C<-fLj^40(V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MBeanTrustPermission.class b/libjava/classpath/lib/javax/management/MBeanTrustPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5d22c9677bb13c13fc0ae2ffa52fb2ea890447f
      GIT binary patch
      literal 912
      zcwUW?-%b-j6vn@S!ZvG5u>yihU21Xr52{y^)Mx}Xsi|N>X`*-2W!x^=ZgqCn;7fR~
      z4`JdBO*GMX<ApEa3-}ru&ulAAuoqtJ%sFSi`JHc0_WSRTp8?#&4FgjQ>qq<*Kd$w7
      zz+KT3fvP>;7CdOlC{#~`?0I46^#cP5hE*-Cg~ExXr(V~#dFVM~3B!CSq{scXkUBqT
      z+-G2q7}7iaAXGe1ZSF^6=7;h1ec{)^PlnmsUf`)a42#8PjP`lp*7lY30=HgjGbDEU
      zhr$HITnZ*K4E6-!<g1yc7l_@c*AcSCJHBAZHv0~l<7AQYQ8A&qUP#>Le@&rIo)wp_
      zP#X77UlY@qOJbQJDTV8WN=OrzaK*r78qQgH3aiKwP`r$|AD$V)Ugt<Ss$P1Qghf*<
      z8^|-{$L9^-7cTejNjK7N9~?X4g(8PZ6c`GvuCRtatsXtV>IlpJ>&UkH(z468i8Wl;
      zV?C!m7E>spOm2J;xT?!AT`V<{s50a<j5``0p3;KI_hXLDV2lnK%>8~O9r4i9lU<oK
      zz)k%EYD|3k1sOG-!7S|tWm8Df$Fw6_Q&hQ2swvuya)k|${t%1iX*J{WE?wQjd5V^X
      zGGuW9h@%B85=6r?BiI{)>84xdN_BvxO7`LjR^I90Y8<3LVeM)5+5qccs^73sJ%Rmp
      wRIKRYxO*<P%c*;Z=nj@~h&%)~@Eo_`#*VCEuTw``BS$*gph!P-GbYyl07(?qegFUf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/MalformedObjectNameException.class b/libjava/classpath/lib/javax/management/MalformedObjectNameException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8e56b667eec45706c6ea0dad09672346f8e0b79
      GIT binary patch
      literal 572
      zcwUuJOD_Xa6#h<4TNy1?S~NCIEU3p2%hF8|m12SJZ|kVr%tL0T(!XWZM8Xg7i>$=C
      zqp={7Slsit_j{a^`}Xnt3SbYFEK-E+fqGOU$5X!Qv&VkyoGbS(2tB^N><+jWUnq}{
      zM?HRsb>L@V5!QZDE+05l<~{mG5(*KATDct#Bk6BiM+7<}<eLJEl^=JMJLL3xo?o_B
      zcMF8ff%bLWAWW@qbO=^6xMdqtn9ae)3}LRVeZClaT@J5R*JVPn9rVONiH-D=ODn$D
      z5y5HyYq2_^w4P8LSNVPCDh{>ZuWxkB1SK=U0wL>h6p5N~{skr2SHUps@rgELRR40@
      zF>F*JyUJG(Do7(EIV)WX({jk{EHNiH`;tj=x;94sDS^yMv?T+Fu+Tt3s@xX{^C%{w
      mGV(;AAxMMG)HcUh{Hbs%oK~Vx{z6R@OjX8GV!oVkRz3j*eu1<A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/NotCompliantMBeanException.class b/libjava/classpath/lib/javax/management/NotCompliantMBeanException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..385f6b147dafe7cdb1b8dc95f94a6a45afdc574d
      GIT binary patch
      literal 566
      zcwUuJ%PvDf82<j=jvTF0cN>vdw1h^)s#2mZLDd3X*o~Uh$T@SGbEeYw@dQ>43lCuH
      z0X&FA{BtxG#KL0!%glHA|IEwB(=&iI%sEI9mT$$K=#_n;MO*q(n{p#CwZQLqN@#Pk
      zBZc1UwPeSrKs!hg7Jm^=J2DjZJ^DrxMk5(2;WcF#aer~ROQ0h{uEsFK%1z;QW%}Ut
      za^wE({gIH_R9cxTAz3Un38`9eEnOrrl7)+5LcXrFY;^rA8J>$PPZA3Cpv4A)ZMYv?
      zrp%3s2rKn}tW_aQ7Gpx$6S`eKGojM$N~vl6C$0ZD!SQ7jv6l7y1tqv=K{ss4ePxH3
      z|J!TTa<Ks3lRtqlhcq&r9qtks;zM>{j#<80=S-Z_OMT=XVo08&%Nf{03fmavD*FY(
      q7z(i{4?Ga4GSXr*OUr#s{8Tt%&T*_T^@SQJ*lG&XvH48Qnf(NqJb`Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/Notification.class b/libjava/classpath/lib/javax/management/Notification.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1518fdcbed94fdf3856b07dd6e3a063a56d47c53
      GIT binary patch
      literal 2790
      zcwUWF%~u;$6#u<IG9ejg34xY22v`frBs8UkqJ?59ZB^t$g`!wnorHl7=7VM?99`<#
      zh5iSA?(`fzrv#5Z$CWF0{sHd&2i$tR_sw)5lc9%A=FXe@`*`=>_wwg|zx@ti9F~HR
      zz`%~ar+<<!>lJ<5C>s?!zg)G=EwiZGX0@WAU7(j!@^#xR<?rlK#!6wwDB1!_*|01^
      z2_zO}N=dJ5=U45TS=pWz=(3E*b)!-=mh0t$Q4<gg0uifPuN8d|hmas0wplh-ZN0oJ
      z&~AUaOL@_{Wz=r#wocd?vtrt_0_k+CUMt-~W}R5(tDA;`1lc*<1<@HXbR(&v3%vqu
      z>C8I6pHXoZ{j{-d!(JmN^2<UD0_Qn1C6GCpvXnlxXja_4ujz%7+;g?4m)7-~$?xuB
      zyZy+t1O^wM+lXm)@glppATWJG7p+;m&o*3So)Kznx)qgK?;xeL3KbEKG!+V>9OYER
      zo#>K^Fd_oiPv#@YhCqypy!32<lIcv)2z67=s&9%^w>j>Z$X>}wiBojX8<u89*9x0|
      zSw$ye#BH^5x2I+2I{1^EQwH2n(ZK-KY7&lHN9Ce+)p4!hmcSYRUT)RR(xy?1;Wq9n
      zxFc}d?@h&Pc%67?6Z0kAqKW8f+JRi8DOkXwf;VZpe4kV-VcaRlvR<a~UcuW6-fB{E
      zyr_5wtCYE?m+HpKmcU5R7__z{hB@5h$yxVJj@Q&E-lO8(cdvyT40vC~eSAP?SKr+=
      zDw_ghLCBURw_ejxJfu$LhMKPu$@~#BQ{_|Cv*+N8<cRRHn-XU*Zp&xn*j*nIJ)#N7
      z4S5&TjVN}gh_ph(M=vFsh}_V#%Ze5%bm2W<!Ce(Mxiv9or0$x0>bs8~?n|tSVVboz
      zx|t&g@$sT4#7B>w?L2_;Jucrvd^qK^Q?7RrvJ0o^_cXmdBvhE52`!r&ev0mm1N1b|
      zcYt%hNX!8J#^?!rMt9!lc!45~Gzft~3;{A?1tFsjH#;HSv`MX$tEJP5LeDsB^@YU&
      zhW#R6((@}RG9hinJ(0L468A*nt_VlG*|3zm;L3eLU$_7%Eq8#IwCp}cwc&kaw7&2@
      zvRc2gkFi7jbFxTZ6UR5i{w)>gJM`jvoW~E+&#e5O^8BPcKPk^o%JY+Q{cyzXQKYlH
      z>uiU<F<Y{^=>6e<iabFN_K#E~={ZPx4w9aOq~{<hb-5y!>F?XoWqr;MYfmutvnS+`
      z{2@hDC&3jFxPpEU9P+@KpM2oI0>M`U!C61}??CWGpzTq=?SBHnleiWDp7MkL4Ftb}
      z>n?bfN-0m7Hb{fxYYl<ILP&-_S^S9Cnuu%z3r}Oj;|e)hJc%=YF8Y%coyTx-bD3*4
      z*jLuib(XmLkKu~DzFrOXHRb2JNL(YwaCN%AZhD>iQJ#39@Dy_!S_AV9yzwiR53rVa
      zw}A~FJ9;D@IB}+d4-*9^o@rn+vF*fJUN@b1l=DA!;wjE4Q`|uHu#+QHABa4<#bpeL
      hab(05Op2?R6BAexlh_c~=zk%9q|*hj(~l)f?SD<D`uzX^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/NotificationBroadcaster.class b/libjava/classpath/lib/javax/management/NotificationBroadcaster.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8127d65562e3b0856696f311629e81784eb5b1ce
      GIT binary patch
      literal 557
      zcwUW>O-sW-5Qg7rYoqb2>Ol}so)QIv=bS89C{#TNy?7dvX-G+SWxFl?Z9Vt{{88fO
      z5Div~3(L;zKJ&Hj`^V}HzzvQ)v<ShJ7rcy0R-8#G%0>^`=94^On`_lKn$v`5R*Z)Z
      zp;ysS!77U$U#5~+!YQX|Gh~!IT8SZWFxr^BCgaW6ATMkUHA~0gnBd<n6M3z$nTH+1
      z#Wyu93dy**HQBt%`2`YAGO^7HLp9Nas~~({@8rHOtbW2V;mk;>7xMe$m;aqS9D6u)
      z{2E;oE^46XDs6P{Kk2zi#C?kp&i_#By2{uk5Zb6#+ljY@uJb+Tb=<k_ZhY*bl64RJ
      Njh6$rd(Lj*=o3>et;PTV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/NotificationEmitter.class b/libjava/classpath/lib/javax/management/NotificationEmitter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b062f01fd596675ccfa6ba717a316e2cc3b0049f
      GIT binary patch
      literal 392
      zcwT)_J!=9%5Pjp<CPu|Fq)uThJgn^mtwakU{bU_w#oLv06@Oa_e?WdzaIQEJlq-gr
      z;eE{T{{DY20EXxoR0yA2KJht8+4DwH@iCc)=+@41biq$j7o%hbH9|LMCOh_<Wbv~V
      z8x0zSUa5YZ1zuS`s0ZOAlQf*<9-lddd=7GNR_atRN9DAs+r@%(|Lf@Mo6ww`t?YB!
      z!QhS1f3Pa9sO2;q{pu!A@iH7UD|$c(?@vM+<ZhY>p{iBaj7d{7c+u@ux0?2*R!ip!
      F+E*O1duRXv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/NotificationFilter.class b/libjava/classpath/lib/javax/management/NotificationFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9474e57815381f827ede0918dd86bbb212120c32
      GIT binary patch
      literal 231
      zcwRg8Z`VEs1_nb0ZgvJHMh4}q#InQ+{oKU7#PrnM)VvaXzx<NSw9MqhlFa-(x6GW9
      z)FO5U7DfgEkV5^O#JqHU|D>$c<PvrUHbw>!uxMt!esF40W@1ieRbo<3DkFnvW-+oc
      zu6ZEg6h;Om4IjMrS!+fyGH?awmlh?b0__HxB#!AEJ&+MVyBQgnftVHO8AhP{*cmuL
      MECx;>$;7|~08j-&Gynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/NotificationListener.class b/libjava/classpath/lib/javax/management/NotificationListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbe2f1f58b333ba33669e6bdafc1ea8a8ad7b53d
      GIT binary patch
      literal 253
      zcwRg8Z`VEs1_nb0ZgvJHMh4Za#InQ+{oKU7#PrnM)VvaXzx<NSw9MqhlFa-(pUmQt
      z)V$Opb_Nzk1_6*#{hY+SbbbG%tkmQZb_O;^263=xX-Q^|zH1p!KTHcFgHT3dUP?|X
      zvU!XQCK^6?ZM615x5ZjBjFEvWIKQ+gIn^yQCzX*w5}OnCK>C30VPs$iVpgCR8G&wQ
      PXW#&_7&w6>69X3j$UjQL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/ObjectInstance.class b/libjava/classpath/lib/javax/management/ObjectInstance.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ab7cb9193049ac4818348992598e6da694dac04
      GIT binary patch
      literal 1460
      zcwT)|Sx*yD6#g#Vpc&d)7O{vdE_9<6+yQYxO)zCKXcK($wp`1Qb_P0ALgd94-+jg3
      zP!mlA5>1RgnfT&AGM;-owm=IHbC+|^`M&Qg^ZW1D?*PW}(1$jL!F9gHx6>tV@Pa4_
      z!%i>e)<xc)Gc21MdEtYbAtasBMQ#+FS0B6#-O8$)>19#Yc~O7Eb45YUmbzv|+0sqp
      z#oQwX_LQM>)>M#omKQ6+^DE;2^D(-!#o#u0iNXdlCn#B<=P8Dce34t$g7OV#8iJPX
      zvThW}!8@%Rx;?`%5j_>EIX0Fh6|?55@WX{}4I%U}xT3La2N=$3(9kJQ=QIQmWC&(-
      zLo8HEIZ=LIOF5h|^OP~Cyy@;3-S(PpF$|w1=6{7r`e?LSRBM_3$J=?aVN+o(ABGvm
      zn!x9I@wHhliPc8R^%x&6GW4HP96v^ISr*_5Lr)7)v8<m85tSZisN!O?!i&~1*BaVX
      z?4@)~Y8XR`K`RJ*w$Z@uXsj9BkE@vQVf@Iv)!sD35SMt@HQc~WnkK?)$fhxN08eVV
      zOl*RhYUb9Dj*p|3W>jZrU*p!A90b+=IT<vgVG7ey8cmje*{qcF;)yQ%+jX>!DT#?;
      z(&(bkLu&*+w9~nRez!LG>7zkXXBs2gz4S(Pq%};p6|%c%55^DB6;JG;H=f)>-)9vN
      zp*0LQt@E@l666wrJVQTOhH7Crj{!iPBn?w1Nz|rjF3>(mHaFdd6yXw`Wn>`!4I?Xw
      z16)cTV6?#}1p}P0a))>Vb)Eq61Qk!9&O=>t(s}EolS=#q`v8xtn)m@WpWH_x{sn#e
      zNbjPHZrAA6yN_GD@VKk4YMnho<pD}mLW8n3iD847H))zS4yj4i)ueD6cZfScFOy`G
      zYH0EtHEG(VQjg^RR44H&<BkH<Y7Pz{lVjE*xc7MQyOzN;GEVTMQUZi(dETuhfA3ZG
      Q7|#1cIH5YuedYDwADw6=fdBvi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/ObjectName.class b/libjava/classpath/lib/javax/management/ObjectName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a94089fc8d3bc5ce2168ca183dccfc7d9eace90
      GIT binary patch
      literal 8761
      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
      GoBseiX)Xu=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/OperationsException.class b/libjava/classpath/lib/javax/management/OperationsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09e6c4421542e086b252d90c5097c775728e080f
      GIT binary patch
      literal 537
      zcwUW=%}&BV6ot=)LQMrh6hz|2#2CQD#<)b;phgJd0_}dl36%7Qw8iiczKkmpO?&_!
      z%6O*`7vjRj+@HyJ&zU=)UvD1(&QQ^jARJA^vzVK%@We>E(u>UdsSHG9`(AiGAIhn!
      zbZCTwHL`Q}LlE+z3~b?8G6=bUY+n(mL&&yRC=y;|31=o#@41)W*qV$9=?mMlqb4C)
      ztyu)E<v&RSNo-|cV3UyR+Mevq+<^=p#K4h+Lf0R%fnXc%SC?8ewnM^k_dk0y2*qkl
      znvU>BW<LsSZ`7z+%DAYEcL=&G!;nRk;TlRX`u;2!${Sm`m;W$1RYN!gZ^r*js33(j
      zXPvtQHu#X*kYk2#&N&n3RDFT$YmDSL8k~VkXlNqORb~lc8--YuU%C=#GO5^f{bYgN
      Z-wL-p(~cENOKPQ{suK2M^Kv}1{|z1Kbf^FT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/QueryExp.class b/libjava/classpath/lib/javax/management/QueryExp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b999c482151584d82d27a0b69fd3755abd66b84f
      GIT binary patch
      literal 486
      zcwTLh&q~8U5XQf)t<h?0{R`goW<d>}dupJ9pav=Q;BA@?VN0?N+f8VFG!H(24<$}2
      zN~Jl>VP@yI^UXJ(U+*6P?r`Rzrf@!`f);*ChGI_HIR7PQyBsVs4|Ro3`RpfTVm};D
      zIdUGh6;4)FJ@bcbH6{9u#tADlD9e(i!o}6&#;-s0Go{??zA7{ai-<F)XJ+nUPvLq4
      z2xu~NR+~7?*izZ~hj?fy+*A>PHe{D!HlieF*<lSiP`Ir^`c9^dbH^3TVU@54Q^?Ab
      zzU-=_|H2g7b9PSwlM!bMwhEUOUaU3rx+5`TILmFs_qsH(_3Qsit(dK_CDD+Z)#M-^
      ab|l-CtckkBKHBI={RqcWlhc%aIQ<6ILXg`4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/ReflectionException.class b/libjava/classpath/lib/javax/management/ReflectionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..141b664e1e579ec8d15a8164dbd44543075a6161
      GIT binary patch
      literal 911
      zcwUW?&r;J+6vn^PzqAd1EFu*_LD6ZWW5zX(3k%G^R8(5K0T-8g4PlZSCrOo+K7(%p
      zGdRq+@Bw%zhI4N_wG3IX$jv<`zwgU;PjYej_aA^)cv?h;uzDoEi(@AcO1LtRDsgt@
      zS6}uLFH{@HJ^4*<ipUWbZ;;#XMg(CdmXRm?u8d-?KW(iOXqzzE3{{*6m2`#Qm-$~C
      zZ+|WYzXhQr|7+)3+S~Dka-EUo8lmvoQ(p3hP^+gBjV>YA48O=SvY4@8;SM2NZ*)r_
      z%vva;LYQuOO78T70~vM1fiDTwR@mdDg7b1cZ03?fFD5)|-DV)1jaXx+#~N$4lgLvp
      z2h|B5=!A=W+<F>8C<Zc)`K>zP4S+D=%A_g!F+ZQLH^zw0VHEz*r(mecP)9_(j(wZ!
      z`1mQx?XVy9<ff-bP)j-KORd8S&oj$^O$H0dqrg?sR1<vhka?fuo`p$Xr?}eWeunR5
      z`yA8u^FOGb8vZV?Q^skB74K2P2h4GGZ$R^X9x%HayOQy|KlJ>_j8<0c7w1?=HQnQI
      z`z-!!OqU1v$h0yv)w?A;WF_GdQv-X)ybj3QXQ-Zxj0>je8bfOU3=N5=^7uC5C{_H#
      GP^(uwLB2x(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/RuntimeErrorException.class b/libjava/classpath/lib/javax/management/RuntimeErrorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35c82a6c74796a30f0d3ac665c122c62db059221
      GIT binary patch
      literal 900
      zcwUW?+iuf95QhKBu}R#tO<M}#Sb9(r5Ei$9xCyC5aS^m3qTFqhRq85US8E&k2s{o*
      zph{eD$psI<;~-|&NmZ0caN*sZ*>C>&cjTYHzkLVr5L-oL2-_#(y*P6Np~O%IQpN6m
      zqGCUg9j!y%IqS>Q*bh|^Il{&iySq1`Cm>-llG+!ep41V?Z=OFR&@N%V9jYi6D(;C<
      zBJ-smuRcEVehmnDX*v;>JR|Rpgc`cG`C~%iiLd<lDPg5Cb=&L_a_w*+%gAEUfrBMN
      zw$bdBKv;HAMuo88`AWV_f+MNB;%FoZH81S5JHZ|~9w&40u^$oACjXuWJ0q^zo;GzU
      zaS&@?4cVsgcis5AL0E0fA_&DmMiKWk{-yxJ+)&1CkwkpI)@WWLy2m>FVBWw`m7%WC
      zymr!wF8_s2W?DW76Wy0PzIk|k=KCI)Dy;Jyv;3=MP)8mGj*2##<Bx~S=N#u8%=231
      zXovF|-pj3XEVS-@MeVcYS9q;jr59Y`p@coGa&#r7d0zwU=_;#|)x0*=e9erhthDZ*
      zqdrsgEt@;!;&)c`PKsZMR>q>{bQ8C@l5m@;RNl4ifPCu<YM(BI3pP2hf=&vI1&OC}
      O_kW7RnZ+BH+WZ6B*Sa<U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/RuntimeMBeanException.class b/libjava/classpath/lib/javax/management/RuntimeMBeanException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a141ad87a0033b06b672fd7460cedd45c2323ca2
      GIT binary patch
      literal 959
      zcwUW??P?Q26o%iE&o<e97_HT`w$|E`L~$wlPZ2a)XiNp$nCj1I9MX~Otn7#OvJ{kp
      zf*0T|crW6a*(F4?RDbNuoHNgP&pU_x@$2h%06W+!BS+YNE8dG!*ArR{r6+ad9>h9Q
      zp4@*dg?@TEknbYp>oN+2%_+9CpVDKHuo%ifiBVq$A;&NGo)D-*m}~nwjD(K*Vie2b
      z-n~b6+bci6F&|7xtaeQ&cO>-C{ky?^Lg|6hDtbs*Z=44<`-DQ<e<Lf%W6^<w3xs^5
      z*`EdBqJs*mgoUos@_FnX%b+KYN0LzM`UAEv_z@hZ$wG9ZLPFB--{WGF#8o@z`kS~r
      zi~^;H?ATacF;-UzON}goQ1)aPa(iQS3Lwl3Wz-gN$oI>Q<^<6@3H%S{ISkbp>WP5Y
      ziLtN!foBZ9a_GmwK<+9tl6vOL?-&7W@PzaHm*r4L5haewHk#p&$Ij;h=N!!OI?vHA
      z=X1PQT4z{j-TH#sC(B>rb>1p<xZ)XR(Zv!+mlK-zWx$@Uuqs*2tEuJ-W=v(Zb^8qU
      zOwl7Y_lk>OThZ$YJ{GN}qULlBYh1~H98-zBYuf?E)@Rf{j)hA$Ik19G0;Gb(Q@Qa!
      M#X7Ti(^5Bo17u6lWB>pF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/RuntimeOperationsException.class b/libjava/classpath/lib/javax/management/RuntimeOperationsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffa48a77523eb5fa1d40ea14e7383675ac0d4364
      GIT binary patch
      literal 974
      zcwUu~%We}f6o&tkYde`<2$Vu8ExjNmDKP39#3oRQDy5XBS<<?xl{(6Js<}Y7ta%Jx
      z03=W)7CZne9)xE=96O^ZkWj&5JU;gK|NebuzWx026~HF$7Lg%rbj53N?)gHCj`XFD
      zy_boOl`nVCWGG@4=;-NrTb`L&5jn!zh+umsl?*__Y$QV^dMz17Tpv7pLZEHJRGs}|
      zq2re5B{KhR=dIKI{{9E^;fTdz!<^*xgzk8M9`KM*c%-z79}|`<mx0w5Ay*Ghq=PJG
      zUAVYH$X2SYNf55Oa8M%5G?bRl6aQF-O>x|lgmNQjb9}*<;5uE*#iuGF+;99x&p0Wu
      zbo0`XLwoyisC0*8o4mJ7-bKP(WgI~$`Z9_*gULGr5GFb@u8Sn%{rO6Dh-jXM!5ecY
      zhRO^zMabh&@0WhV$8_J>50bDgx0LD2^53ujz_?(Ad!6N<E`tT+QQ)d*s|kMi1Mob@
      zYc8gEoaSna*E9TfY8RNPZG1-gqvfyhIBlJFS@8ms*uxxG*ZVZT=K(vr!LDRIZ>FAm
      z%ot^<cJBfUV@+RixI-2nS<^dxd|+BiP0j2!mRQL*XR2@S+2eqG?Gwr$2F3-u*tLdk
      UA4m;}yR!N(;$*CN%~I>X0HKcB4*&oF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/ServiceNotFoundException.class b/libjava/classpath/lib/javax/management/ServiceNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25c4b5cb304325e28d1ef888d040936d0edb010d
      GIT binary patch
      literal 560
      zcwUW=Jx>Bb5Qg7@0}O&93Mz?(i3J~t#8`qf2!4cMfzU6<2G_tIxjP8I#>AgsMPgxX
      z{6$vA*@IX}Oe}V1X7`!*-Pw<?*EaxX$i)yM6duJ)%*$h;#ZZo=_RAgV&Xg_Nj^A{q
      zdeE5La^fpT$6ygo*6_QDbcMP1en>*fldck@o^(B~yEm5vx+Ns*jQK+QJu#Zf$oo^{
      zIo$m05~5Y5m0u%-^MxM4syhQ2M;KcP#IZ@(ZYeF>({W$A_o6?NgmlZX*+8%j*Q-Oz
      ze^4Hw)cW^O6+$K-;N_9f!*a)Wl^#|KJ>#A+?z@E8Sb82S8P_$G5bros*OpCXo^bS+
      z)2ZpiF?dG)enJirL^;N|3Som6nOS*H@X0wx;ut9|kbDV{ZQkP?fhsIqAjMf?31J86
      nK$M@m5~wk0*l4k|z}|0#EAF`t6tYWdrC_ow_5<^Spy%)#*uZ{-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/StandardMBean.class b/libjava/classpath/lib/javax/management/StandardMBean.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7657a32b757416bd9d0c2829e848f68f80162be6
      GIT binary patch
      literal 14040
      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
      G@BaZwQ$L9S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/ValueExp.class b/libjava/classpath/lib/javax/management/ValueExp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d90e781cc4405c2e2558789cd92e1c6612aa850b
      GIT binary patch
      literal 531
      zcwTK$!A=4}41I&(Dhi^a#-le$)Qwj;LBzyF-2(~tvNUAKGE9bHv-oKq`~W}7*u`Kl
      zY?B_^zSq9Ietmy@0=UOTfRe)Hgi^}FDH$5`l#LGulq|TH*#KpQMm`P`GUG5BPB``f
      zb`_eduAYT`cA66XPQ!#1Dr9Z4RCu_4+1mQcexoV3Tiet1&9*|dm&I(oo|$=o1BII{
      zaF<4X@3a|5mL28DKT3d_!fg?ws|~qjWY?EAC`Sr+MU;-0E5n870?u)fuxFEs8KaK4
      zpyU6-6zX&KuU#f1o~7&*t_ob*0JK{JG2@Y~W7)+cDf+X8i}^|CUf0&5R?_7s3OkY&
      id2LDl7GO`ReW|J_OCF+*hV)NxD*Yz%P&mucIR62>f}X<w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/loading/ClassLoaderRepository.class b/libjava/classpath/lib/javax/management/loading/ClassLoaderRepository.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..493e9d2f9ff3e628611a419ea3c6838555feabc0
      GIT binary patch
      literal 405
      zcwUWAu};G<6uj4#h6ZRmGqE6*g@`#!AUahb(Sg~dkK!uzs~iWFUt{0{_$b6nkOD*u
      zwPe|Mx;sDL$LHHSfD4QwbO`4w^J2Ei+Bmc1HM@}HViwjdlk40R#Y_SFd)`Q4gZS47
      zJ;J#1B)L)1-Q$Y0Kp0f6+Cey-%zgy(;595g`$g5Vln~!+Gu{L%u81%ooU|mj5~fnR
      zMI$4OnrE)~NjwuSC++0#k<;B~7&n0rHattIUy0{Z`i!SG*ZAXqTc}Ix69`>YtE;8#
      ap|3bn)YEfcnHUEx=I}40`$+E{48H)i<!>PX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..888874a904dc9fda98e536593a516333d430f660
      GIT binary patch
      literal 3898
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/CompositeData.class b/libjava/classpath/lib/javax/management/openmbean/CompositeData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8cd4c3c633df3e773cb54ec178ffb39fbcc23fec
      GIT binary patch
      literal 545
      zcwU83%TB{E5FEGA^g$t%7WxG!kq{AQPN)b8fyAMR13kIHN>e#@Xq<}v8V5drk3wu5
      z3W7$$2ajaW%+Bt<f4sf{IK$9EjlrAqC4UJLu6QI8p-iAtp^~ZKDj4Y`)md!BB{$r`
      z7K2-`1Ibks+)d{qGz^_kE5l=z-G~*#z`OmSjLjle(YgP~&|R}0xXi^LUTI}{4e^|F
      znK9HOLFUI*cAHAl5&c3+>c^W@NG4Spmo(ok-mg-Mb>fxo{|%&IlS6aHv)M>Lk+Saj
      z*Ysd?S(2ge`I|u~=&~39H8@=V=O&iqEG4CiwIWV?tn)=Eu3|~Xy<b~6EhG&FDv08=
      rXerxhpjeKBrp4A5w$ZV;gRaG0>{)cNZ?T61i+v2piQ$m$8jd~zAqA0<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class b/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5e4d5f922fc21247929a80c7342783b7ead5ad9
      GIT binary patch
      literal 5405
      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
      BkNf}t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/CompositeType.class b/libjava/classpath/lib/javax/management/openmbean/CompositeType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ed4d991f089cf1beff45962b73de60853e449b3
      GIT binary patch
      literal 4543
      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
      Y^PlD#tmJc(YMJ0r%a}vI)7o$U4{61Na{vGU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/InvalidKeyException.class b/libjava/classpath/lib/javax/management/openmbean/InvalidKeyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b0b1fec5e8db4b3c130a20c416c34001b66aa75
      GIT binary patch
      literal 563
      zcwUuJ%Ps^#6g`)oX&Hkt7{iX0N1}-xG9n&H)3HJC%c!)H?&?WDCj5lG4PRhkC9&`U
      z{>N6_>Y0#WV^Q}}Irp4%tKL3dUIDCO*2Vx~<w|tLwG#;~0vSo2IdMno=v)fzxVkGs
      zb#Wwb_OIKrlc`wSun6;J#tDTE95)PQAi|v_$j$H<j!;WwqD1J+B<23h-6PN;VPrSf
      zX(n{$i!hg^jfeZkyZ7cTp}eKE%36fMg+-rW?Zy|ff<cT{QNb`_%u`w(=j<#w73ZNO
      z)V;XP0)l0@?_XNkrAi5_-v9R6Bup)M-+P^8iPFL5qHior84D8xJCbS2bVm9Ylu$W|
      z^Q0{gl=0F0L!@|X%z=00A0W)4gfeHFy8#UGA+syTD&MSgCeEd$XN)`*kTH%G&Oi$m
      wwo&7%+5=%6^@5b0_6b^yG}!Xe@-rrXGPpc*STHnts6K<K8kjD`o5jq`CsvJri2wiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/InvalidOpenTypeException.class b/libjava/classpath/lib/javax/management/openmbean/InvalidOpenTypeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fba7ac43126ae4d01df6e584775cece8eee3c9e
      GIT binary patch
      literal 578
      zcwU`R%PvDv6kVG><SH%NdL#ynv=TQWMra~MR2l~8{HT-b$mzMweF(qd2Mm0HQ4<3n
      z;0O2wUtlQqxot>@iNV>gti9ISInN)DPXJaim&Fia?NVHcYquke@MK4t$o0F@bk3wO
      zZo^y&t<H~laB|a?yVq^mjg)V)ND&t8qN|1R+=kZD6M8%FV$1M_BNRdzD4|<22)RFP
      z>=5XHFjn_X7zq=#gpOtU_3owk_I`g$$ZRU3q8ed%snQ~(>i)TOFpTjW9E=k3O=aX^
      z%=Us4ai%3<vgx;3K(Gw=gJCMVP$6Nx`H$l^2&JXw_i@Kjpp3UsX;~j7>tl+L?Z_}>
      zPOJY5N^p+-IB3f~WzEe0rL<x<u>ii7KZG!cG%}pC+znxbAK9xp=6JHknK-AbJ&Zjh
      zkUU3+Gq8meYAA4(>w_?X$%K^c4hU+DwAf5_xrgFUhJD^?Bn;&~YQSKtGNu#pnPg}7
      E6SgXb(f|Me
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/KeyAlreadyExistsException.class b/libjava/classpath/lib/javax/management/openmbean/KeyAlreadyExistsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ec6ca7868f39471fa52497822d1b9a0e752e1e6
      GIT binary patch
      literal 581
      zcwU`R%Sr=55UkcbWKDd(4}zYef{PElL?R(Zh%R2DxliJ-8JWz=?ndHYc=szj1qA&7
      z!O!qF#GXx1P`r4Ueo<9j&Afg*y#Uz3N){u8{cCY6dTvJ;;meLRu^Ze-(`ia!+%tJs
      z)}a(vch#PX;;7nd$(vXOCW{nd-7;M*jPKU8mcG#C(C=D_FC1YilA#j1A;XCK%i1x4
      zP6_!+V4_%<xFK{`rk5Yu&u{ndyM)Z4GAb?+MhhDaLaGv6Ne82t$icxlVbW7Zo_E<_
      zcp;iv5@x)h#R~+l;eI$w#cdT44!r+dS0v0AyzlGkaj1-6+-O)M^VY~LA={Br#G=-~
      zFDSvO2i>qGPn31D`sb=`OT`-aUj7rp3ew1M&T=<`F@9w4=9uHj9%tg5-s~g)m_Q~u
      zI-G$LQaHjCSGfTQ)0jy_+3!%G#7K+HY;N^2_fw(9oYO>MVSpMc*lGcb$?~Oyv-}Bd
      CwTA%!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenDataException.class b/libjava/classpath/lib/javax/management/openmbean/OpenDataException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..076ed20e9f269e8089799fbc856f55096ebdf804
      GIT binary patch
      literal 551
      zcwUuIKTpCy6#qRa)Km~eK_xD3poYdcVu%Jb5vvYp_X96j(_Tqi3}4HM#27z-v#Vdh
      z#ohQ?h=WWHckjK+@87$(@8?$l2dL^u5%wR%qnMbUP+}-OsUp)KN#*sWQ06sv9TADs
      z$v}=G$5%Qu!uA5Ad-;nX6hj#}!nI`(@_c*VAyAi)Z~H2Ygo<q8j%6l%&wspp8J~pg
      zk)xcbMM&4`HbHCqchW!_D>)cgCKN13$*VCZ3T{N-m4uSz57<Dk4bSsOExLC?Lc{vc
      zK21WomM~0LsG-@50!Iy-bvq7FjsvU_bWesMi^awZP=e9($H73JIdO{0f<+^yU<bS(
      z|2m<H46<Bxo>ExiL-C$`=lJE2D{;;2PLY2~AO*e+uD~%goS?{EZU(|CN{J}voC~xV
      g8Dq1%dsD3cRk&b|l_*qZsJTMiRj`qmZzi0rAI27X<^TWy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfo.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ac220955a7a4ff2dd18e8d4d66b1dbc9d6cc8ba
      GIT binary patch
      literal 380
      zcwUWA%TB{E5FD41gz_q{6F-n#uzKzZDj`Jz7109{w@tgGsS+C!2k~tj_y9f%u}*tH
      zhyw?EcI=(8XFtE*KLCty5~8OtTG1=L>52^HT(NQ5KC`JZCZnfP-Cjv`>0Di8t>e@@
      z*${n&p_l2BOs=Qdisvpw@K3Wls;OefwKr1;_@$+?Q8<flew&VyM}=rf&2nNFtgsa)
      zsY1VK(xxMFJ1ClarUhjscjTci+?qtr&g9!BS2&H6AKvTJv9!-@ThIBr@a^Y+r@inx
      ni6-yK+Lp-$5<f%)KZYF)I^4xxhx;2m*x(_CqEI-Jy@%s(f%;+Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8aec0490a780d6f7e9a7ca9e06fe688c228d29d1
      GIT binary patch
      literal 7086
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanConstructorInfo.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanConstructorInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a6a626507309cc7fe1e71de941c07d1bcc75246
      GIT binary patch
      literal 373
      zcwTi+yH3ME5S$BOhY&)Lprp4OPKYucK}eATL2?Jx#w?B_`!1Z%h;O6d1NbP!o}oY>
      zuDF?f%<j(n$Lkw_GaSa~DV(qAnO<~Fh6=9Pcx^Xq>LruW3t`t6!lu?V-nF^6Ze|{B
      zjBSN+5bBCdp%=?F=UyS=r<STl;W(N9u1?ZBg;Bx&lAGL>8(&(ZaFnD!Iy3J|Q%n?M
      z>ARtt6^6pHvM}UZCt;GL_wzp&cQ@XW6NTsQLYdKDQL~!b2T^S$=}Z#del1WKWVUrV
      vUzL?qPyVxc8Wu$gG63O4;(7-Wg8LZ#4tKwCfV~cf*za%@@}fMDzlZTBwbEjQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanConstructorInfoSupport.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanConstructorInfoSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75bdacc524ebb1a824c0d29786cbe67d36cfb4aa
      GIT binary patch
      literal 2540
      zcwU`V-BS}+6#re5urV%(AShHZQowvcDk^OaX!+0*4PXn>BDJ_lF3Hl(Chl$!u(mT!
      zr;q)3)IXq~JhYt>u+Fr$FU)lMxAd*Aou0c17)Zu4JmlVU?%i|F@0{N`H-G;7%dY^=
      z;$sO17%na-i^@_sqv%SCXSi;KvpKG3;#|?g6C{ldku;puP0Pq9tgI2$=d+XfTrO)^
      z5}XX3753FEB-AjR+eavddXpQfqD^zdRI~cc=m-P5#!zd2sOZ+TqUE{kkG~)M^w<2#
      zKMd})Vy1_)NzTw16A{CjqNl=9-Qp>3L>OwwzpAGg8p^IG?K5%Puj;CGiDA}Pd0lxj
      z8{11#Hxxt3aEse1Mf}qYPJvLuQHHK6E~*%L;6SsCdK_aI+b^`LU?j9Kw3k&%(|AhJ
      z28~o+7+qOP@SH`ZcjG07mZ>!N>SXWDD9c_wYkA|O=QXXzgX1_U0JbqSRRQRqcEiiy
      z6%LZzOc<)|wThp1bVzuanBVO~Mkl(6B8}@QE6w2W`J-<5s0pi~vgnLwa@Ml9NO+GM
      z0fx{E;#XKO9FD0vAI}q?#*`A*xagW}g4$7`rX;;|=(N(R$<V*2Zm2#@)O${m0&M~w
      zWoN3?r04h3VN@f2H?L^sE-EJC3p`;({I@({=#%j(USp6_+#0t7ANBbwc{>Cb`UEKv
      z8Ru|bSPsazgv$&vSx%}cU9s{8nfrYHz4e@MIpDz%A`*so@LU8)xo6`GI|sA`ora&@
      zgbRDB$*wv_4ifaJ3>mc|o$EsC@?Z=T62`Ys<SkVT4;qHDY|6NSx2Tee8B<Nd)aje8
      zQp(tKGw~VaHi_#JrWopW-gq#LcO|^TaHQf@k}-o@#KfX_%O>U-ntjo7Dz+Xk;p06S
      zx5X5=)zaHXqLnR@B{IAtqYj59#2Jq5CUYpSYDsR0(kEqbP$V~TIIJlqwMyd-`t3uC
      zm`0xjl_p`=m8jtd0=PzRShXgrY$XpAoOFW-teF+9J|GV6$}nJxI_HSEBtv(#$D`t?
      zluE>nJj0=oxz&aPg3)_2-p3NdnHNx2?%s_RYOLD=&WFO3rouCs%^L}RRTbmi@jtWM
      zBRt|XRo_8B7p<+3;3oMX{nZ|T2M<Ntk^E4QL%Wmi>T!hD2GZ6@chVjW1Vi1=(72AK
      z;3jIH;`mHM>pD*S7TVHI2`yN_>BpsmGxl}afnOZ_Xon5b8ld2ylsuTD(0AyOR&WAw
      zbRmImB<Ts@G|clDC89(2_cjo^>j7*jOn{j!y+YCfTRMwgJ5_oRN-2CoHxAl+gTKS|
      z7%s<Z@EKfVfdVdsp5S$c0xmv66Y2e=zajL&M{qe;9jn_|TTw&nJu2N26>gdEuAmL~
      zDcXvS&0CDHjjb0WxI*#k(1ELXle{o7(<MYn8zE&B_!*;{XbT7|1zZylHV}J)w`o{5
      zaB~f#;)?=ipCf4|5`oVM$>)^w7dS<GJHE70$VIOu6il>BDdML#t-uKRo7+Sr@D$1n
      zg-aBW+Q7m(G7WkGxgw5SgH@CX%%V`2X({0T8s>!g58GJU2nFyJtzV-B-_U>Hw^a4-
      U&`<hhd|!rXWE;~1+xnyb09qWNVgLXD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanInfo.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d04a395e0fece5b09624420bef6252f6b120648
      GIT binary patch
      literal 568
      zcwT)`O;5r=6r4qE0r?U^|3a&Yjb~1ZF(E-XaMROLmr~O1V!Ji|HV^&)f0Xg<S_x`!
      z51s9MGjB5c-alU709@kKMTNmz@n`-Lq+Ieyq(bUIt%XeIg3Dk^x4Ub)jpRbP*k|Y%
      zc93ux1=IOTgqpz-PX$kMhQ2rc-5vP%49!UBE3LD5UT8r)&+{L~e_XB4hGq;03=NVF
      z6Q1W2o(hJZ=Wkieh$|yvwGB(jTxUh7RYn$PyDheerAdqAHzE(Sc&%e4DI^spO2>;h
      z<fcLc&vy^pW|k98VtTvmTm4Vs4Xu<`mpoq%)gz_d^ZXGNwE7ClP@kzH3&m}mP`CSI
      zITvQS!$2ySQ=?rSz=7GBi>k#M>J|^tu-GjBTWDMC;K*VZ#}<30PZRs}t>EMn0AHQJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanInfoSupport.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanInfoSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e4265d3d42a985c5ef5d3cde73864b23ba5fbf7
      GIT binary patch
      literal 3351
      zcwVJeX?GK46n<XXbV3-mvee=RYD=0HA_^5Ot<tcxSX!W^%BD=xX*(sIDaiyuWh?HA
      zxMOko1$@wRXj;Id^&HRP9Q`l;1dq?1Ow*(bC+dez?!E8bp1Ztn|M>gvF95dShK5B7
      z(IMlkaV|P+*v5c4Y}#(r88PkQxM|qYE>Z_tNwwSkPIqQx#7Vgt$`#hlG0LlHs89%(
      z>QrGx+DutSve!(dEyq66zFR@<S6CWz?6hmxZm*Hdn1P)q!q;neXBav-Xru>YPM@i;
      zszbs=lZHJIZMR)>z)UqMRHWUMWe+G+794kbGCAF8*_PX)@K<>5@m$IAj#7~9a;Y89
      zxTZiV(Z<7<$|PJT^)IYQqzspZTFA!J>U3PI-%89V*7YisOVKo}R;XRbt{8`gwd~|V
      zy0i1w@X!N17v~*98P@4ofrk}-|F3;0t@5ST`u|pUd52}2of)<()nmkyri`DH;9MJ=
      zZt}jc+#R&i3R_BQcEQ$ha?5RFSUmKZ>4bu2c*yB%YiW~HTq*iVuqX<RrCHCephB55
      zQhM;>!g333sUhv_N-i>u%rhAyNuxD|BhwWhG81l7-LVi9HtE=msDeIVy0N5@PIr1W
      zTOF>OJ5oy!z@`wM!B!2=@*bM4pd*5MaoVWkIc(>ZM5p;GGL3L}!R(8REs+{SXp%@f
      ziz4Ncmmn=VUcif-BguTG*bEa{ILz#>NT3$+7SpjCdl-t|3M)x>^$WY3Q*-eb6Mt<w
      z+Oa=Zf_yI@T!P}3i>Edjn)p!h#q76_mp<QuNJ+yqJ%Hi5_QlNYunrwdrI9^C9n`>e
      zT<Jx~xK=XS#`mJzWRYLNF%3tj>+hZIN~MhRX&uLLg7amhJFK*;P~%^E#RJwcV<u|6
      z@LuI)%?M*oGD$@u4&ew+$@OL^REIm}Q{kN<T0J53p<jbJopIq?regqu-1M{Z0(SK)
      ztPQsp&hhk<Cq9OBoW?=Ej+Xyol60NiAWM;K9m}v>!-zuF>_KnMSjj#!B?HQsX|Mvp
      z>HXm&TeLf#kP*+~oQBsquCtDGoR|I6WbU|n(v>#_$6I_G=G)r2YZ-!ri&DHxvliVy
      zuj>usio%lPiRt}r7L%(w-o`u9#1YO(AFqP>Z0Cr4>`g(u$6KSp$gg*^%*zKllK4<z
      z;{yhw(0>pgD=ceB6zp$v5TCG24R+xcQuwKabMmW1$>-dGlLF;SiOM2|x}8iaVeYl$
      z;i#VPRoE;UU<3PG#=n5Ps?ZQ5y_o;uEkX#RvKypFrTzRZ=h+IZ<hPRCHEL`8t%}q)
      zY?{KV>hdY9sSZq`s=8tV)jxSo9^rQ_odZKuJ`KrkC59=p@hGKjITv^gj{_dHo}rXS
      zZ6LMCqn^N%Oi!q%P{TBYs>MdnZxzC*Lj`Sk<NB#h(N6T^^}iu-6M?c@^-~BOh-A^w
      za0gE-WU*xod&qAizeD)v$FPljGx=RUUqil?{9d15Lw+CmmwY}@eyi+O9%ZdpwhP2_
      zk<=xY>@rbZ;gd3o7F<OqN6es1P_NHrmq#5(2M#dzW$2+^7d<MujC?eI5~oz;Oyo8W
      z-G><w99eYV!;zx`VG=J-;p7Bf%OZZt7dFo)Y@JWIuShtF#5fK~pe(EzaE;y^+#tAb
      zI3Z(f%uTjrjP3Xq+xfc#-x0tVlmDJz#?Vha3qN>Z^<45kSS91>1N+sRs2s52`xuPe
      zgCi-O$s#j}HzshQ@^TiVIk=;h@8)RYeP7s*a%{8DUdyqqK6^dK?(^Bt_{rjnaSThW
      sAM?N>9CP3{fsLb@ZLPrswqg=7+`(boWykIj$T*Y!d0sGId7i%h2Lr>e(EtDd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanOperationInfo.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanOperationInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e6fd06fb239bb5691ef1ecdacaa84a9291bafdb
      GIT binary patch
      literal 483
      zcwT)_!A`<J5PgeE3j%_|$q%r-*l^}1#-xdg5l?y=a4jY6wr;mZf6ap*;71u}OJj^0
      z_pmeb_RX8w_x|zv24IYlgNDF(O;7Y3q@*a4sZ=J&a;egVBo)j!yEx&D6HO-0RHz;@
      z2ipRD+ZH6GqF}aI%cT)$%EywDLSW>b|9qYJw*tLLnp0UUb(~u*fuZMrW6q6^RWuQ3
      zF)vJWvZ7m_9||~(Tv93p2Ao|>Q);`Dx_QYNJE~>=`GqC2a`&ry)7jyA9!H88;?nc{
      zyWdKc16QPZzLDBGz)J3liq$l`=PuV|o7Dx{^Q_cMc@`&(AO3CMu^rG9;J?A17Q4BF
      lCakLt+$y%vuHtT8chIe3udesdui~KQ?OU7`5BP3i_zA*}f71W}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanOperationInfoSupport.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanOperationInfoSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93ed4002ab661ea1e2d40696b013ea2ed01d08a2
      GIT binary patch
      literal 3539
      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
      T$EDVBsU4j~N#QNezqkJes~xAw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfo.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b360ed8fe52cc2e37cffd4d585f7cefb8e9fbe70
      GIT binary patch
      literal 651
      zcwT)`O-}+b5S^j|g0i5XDC$+XxZ&(gj0p*d3C4rBg2S?;+g*3N2LGA|e}F&AI4vav
      zH1^Op^ZGiUU*8{}0MLeu9Ap@@XZ(%N-GEE(VSrM(VT3XmA(!reto{vI4?N}pDvY~w
      z66Ro=L0Nxu1(%*X7|n337-aD^<sxBFYxXu@uUpRy91qnkPIxNR6Bj8ms5V=_r3^|&
      zn2cjTQhq2mbwd^V(zCiAdR&-rl)19hrOFrX5OuI3iTZqQGuGE4b;2N`)<y!CLSI^8
      zj=Xzndco^SJibTdUD^Quj7$qDo-^gidb?XqJ%&8-(@yxZAiC5B5o>J}iCC3vyj5L(
      zVy(Oi7n5L67=~#)#yejS-}rlNSGwvf1Ih~eIJCtb$b#Nx4)O+fp<u8Gdj|KRWYDo#
      jw(k`<Fn9=6gEcrZcx?T;#S@FCHcvzUrwY#K&cOK(jEtjf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59ef03786b29d5518f664222a25dde7bf28b201e
      GIT binary patch
      literal 6517
      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
      BlGp$M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenType.class b/libjava/classpath/lib/javax/management/openmbean/OpenType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..689f1ccf6315702a9717b8f73c6e31ad59d2a10f
      GIT binary patch
      literal 2746
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/SimpleType.class b/libjava/classpath/lib/javax/management/openmbean/SimpleType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c33e9089c813d9fc8dae440227662a60575f99b0
      GIT binary patch
      literal 3353
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/TabularData.class b/libjava/classpath/lib/javax/management/openmbean/TabularData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6a70eaf4744dd3003e6747bc9ebfe097ca8bd0b
      GIT binary patch
      literal 885
      zcwUu~&raJw5XQeH-~=c%K%mfnw53H3Qe$!EP*tIoP?35F;?SNpW)uwTU1P5!!lU)T
      z1MpCY*{zWPMF@QGPrI6L=9`(ly8d?wU>jfRm=M@JkwbYNrBcfQrKD|SGSX?Eq>c_`
      zzf>~cl~&d<DbRGWk&=24{qCPoYz5|HsbUVYw5N~gT;N-{|47EJNi$O<mR!!A_TT-7
      z8FvJxVns3+sD<rAf!Ww-D-&J(qLIK#I7ZU`BQSRxb|_Uz0$-nFgY^NOl~NS~%i;I}
      zwE<bz-MIQsFU14nJk?weMj1QZ3Ln+qiDh-;SQf`!b3}eTdjj>O_>pFI<j<~;QyTT0
      z(}gN+RN6#Ee8uWoR@!HdhBpwf>bp_`ovQh#D|1TCkiAY8$pxcfP0!|u9tgB<?fF6e
      zzh#HP(5;WxuzJsa*C@r4PK@T5nVu>0n0_XTQ#S9s(T)=Y0^BIv*W@QVg#hm9*3s~s
      z#*F7IUU<%7-t#4zo(ov?Ttdrp87rQzu<E&n*Pd_i*7IGZdtb$`<Adi%d}0Rz8~mTZ
      F=Ns6?@YnzV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class b/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c940083ba28c3b3c470a25bbf6945cec75c3dda5
      GIT binary patch
      literal 7234
      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
      bogbQWeh0P|4POaaSip;lg)h~*N+SOUeWHZ(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/management/openmbean/TabularType.class b/libjava/classpath/lib/javax/management/openmbean/TabularType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c287c1241079fd8f195005349892d059eeb26abe
      GIT binary patch
      literal 3680
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/AuthenticationException.class b/libjava/classpath/lib/javax/naming/AuthenticationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84033a0442a6a2e9bb90d91b36c2bd16e9abce87
      GIT binary patch
      literal 545
      zcwUW>K}!Nb7>3``RbyMrEX}M#L4+D)A$2i?u!2IoSbHD0K_}MT*qsgg0YSf{dncho
      zKcF8KeX~jjBj~X6e&6tX?>jU5`Stz*;0Wam5)8Zd{E?6A9v?|>P(O>*P<To@TuI-%
      z7(3!Y7a17yWH*+caH2q}ryr6b7m7e~*A_uY{q5B`1G{F(wtX*D+*3ApBav!Yuchag
      z&25JCsr003F(fNho55)Ncfv#xOBPHlGAwtbC%Vz7FM=E1cLhVf<2w|<DTeylrlE#1
      zWZ3Kc=RQq_LM0~aE+?#~0-~E$TL%|(@G6~W6b^LQFO0$L`BC7AOR1B${s=kHgV+H%
      z(R(wLkwTg@LtO$3^f7%yS}odXkTTL#ZG!Auj4ab?k^+Y?=!fN~vZfGLkdIC2q%(sS
      gk(y1{_9s}IcQ~e*lh~m+rDhJgDq=kjFU2z(--`xz=>Px#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/AuthenticationNotSupportedException.class b/libjava/classpath/lib/javax/naming/AuthenticationNotSupportedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99f2374a1317ee0b26654b1d3e12a6a5768bf09c
      GIT binary patch
      literal 581
      zcwUuJyGjE=6g}5$5?SM0<D(NS5(VQ6Efhhbf)diKZa=O=9NEl<-C2pXg+Jj>2!dc?
      zua&hQBi>nqpf*~}oO>_laff+%e|!S4g4rVa2+J4ZQgmxtw3Tkvc2jdMwNZgED$>o!
      zcxk5-#YUd(cLUk6!y+8Q{5MrI15XBNtjyIHlQ5FVSc%Y=al-w{;U0mG2!r)VCq`)F
      zi!hb>+vl6>*SGt1LSb8JWp)U;O4TPg_2^8x$YH1i7XyUhhSIW`wohezEKWm77;8iU
      z2MCVgzBhEtxk?DDjsL!Fi!fQqRJBmB#4|A~x2nEfV$v=#&bzgfmJR+zBe-6a#(_Lg
      zc8kg%0+*}_=D@D}Cxlt#QD7``*N1*SWM9sAi6?7}#F$@rz~Eg*8Rpw%v>)nV6(d}g
      tK1mqGSZ2yw_Y8KJX}N`k#Rp9Mbl70cX68`-Wc3_uRmM~nKAmZ1J^=0>h_V0x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/BinaryRefAddr.class b/libjava/classpath/lib/javax/naming/BinaryRefAddr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8856b981f0b7159c316419bb1892ae5c3d49faaf
      GIT binary patch
      literal 2131
      zcwT)~O>k3H6#j0K_N9*py;KS`r4SGyO+riC@Yhz97J*<|kdoF=L0;0=HcXnd$&1rE
      zBRC8=uKaft7S7-}<A#NT7Dt&5Ze2O!-kp0FuEp=Z_XsT%Gm~@w&i&5!opWyT+rK|A
      z0qBCI!6y*9WWHt2cNWc=d~vFCAYU}g3umm!BNG#44FQ1-E6%+W0a>xid9yHTl`HvD
      zF`YarAWjOb9V`_qwpp}C%|g|x`~BvpcmBNl{&4|+wmK=`8z10w+L~9>L4ja@u8=S0
      z?Ze!Sw2uk|21^rG0|c537+5RNn93Ke;p$A*DxWp81&b%CQjUR5hUePbtnc?=Hbqj3
      zaA(0J+Y!4=(tYCt?V~y|Hydb1i$Ke&KFOp*z@E-m1h%A}ot8fGHaVVMn04qpg{8xf
      zZ7Nn+pm~*8?W0QJ4g)&Y=-7!}8eU*Vm-#JJY-`5AZbSqc%yQXW$dzUn1ft8)PGv7y
      zIlC{p%9bO=Uz%jfMUvSmSj8!OT0oz&Y*xs&iZ&}7X@B}Eovpd5S*Scg-8*hSrxMv^
      zpc_2`8sXe5ti-D2VIK}?*uPSnb7r6eoeJuZfjIVPDiQrStl`B+&Q&{K=scpNSCsQh
      zj20OmU@6a0Q)y-1YuvT+qyF^ex|Hc=t)|V&v}!A-$C8TF2?MX-7^Rl2O0~dLh%CQ(
      z`r0LzpN3(9jZd;3s7_8=<seS8FUP%Z2-{3RZ&=3=wkb1W;4IR_HfLw8;)FnawGMb{
      z%Z2U>VobmY=iD0ghWE}Z%#6aM?$*fQ|J;0o0y{c7g1A62=heN722!d{z6$kie%4L4
      z#Ym}I&RNIu&ih)?>>cV7wzE=x{%H8I8Fi@VO5@6hAevMYbFQoB%2DIqIyBNla`gcM
      zP@k-n_v<o#xi_5&$gXszPIjj=^|B|O(PSc>3CexxjI5XYX*GF(HYg9$HpoM?x-@Cm
      z$SkcPbF^#a1noL$(KgD-^j)m~-r@5cZIcu8I)C8a!v&5eda%Jc1z9y?qsJ{pB}$VX
      zjm7=(rF+=)7(;iw2ho6|&fT!<i4a;HJvz3ajW}wi^!ps-77uxz$aNe;(bzp~jW!4F
      z2Y<x&cw6)bZ1*<@e!}xlvK^xTF!Ohc7^j_x2^XOjF;t5f@*=8PJE9J=5MrDKc+SV<
      zvFPNe{OeTM?`i?-oy~Jj5W{uwf(Z2{y~|(GTM<aaeucP!j@Sc;q39y^#`#@D;s#o|
      zI`{y+!*O@)4eV*5w7%Q^+qGC*oi>@G%`?^|#wlP2W=OWkACS3aLK8Ki3A~IWWMN<z
      z2Ds<r4arihq0ktSj&i1i@&S8Xukl1BG2-v{I1Tv^e+#2E-qv%q|C(R4#g}e9{3q%#
      zKi+!rF~1PA0ldT2WhV6s+xA_S@d|lgb+|=cT#uWNjFQ~rd!ffkrw9fM_^ML`p`Mz@
      z=r7(=H|KuAP^RhBJ-n8Rx#7=@#hOOdu$<}c*d44V+4cDQvi5dj5wDMVJF@Yzvvfs#
      zjfOTEzV+~r_>v5N13lI>?joLdhDE&jxXj(8rrw{954rw`5<X@kKjB}>XE=n<af0(P
      oe8Cs;B`n-vVQwyyJm*Q)Sv(V2^>4-AbS3Yk%tw-QPP~c#00&^B9RL6T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/Binding.class b/libjava/classpath/lib/javax/naming/Binding.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ae8c3128fe8660f6f30acb890a4c27c15c13a77
      GIT binary patch
      literal 1937
      zcwU`UOK%fb6#i~vdu(^?1d~TelR|j<k>I9<LLQ_v4uJ%dKmwMCK<y-+!bHwEwZ{?a
      zrjIRKy6%!iHz1XyY9*E+!LQ*DAijHNn8eOViI8Q_x#ynqJ<i<gH}C&@319>_HM9wI
      ztr?rfqr7dbTlRzelx3Is)DRNrYucGN*3Cl2sMl{AR!yL@Zq_WLQZj3Gt7_kwofZ&t
      z0*OM^t~-Y9l#EKl4FB@?`L{3L<w+A=sW$BL!pfRJswjc;6@#cun5)jXKxD$QEoV~T
      zOnTS$l2ar1_}+$0Ng!0Hmd!ZY(Wyhnp?zDuOr{irz+oM6d?wIQv}|*}vA$x~ZW}8V
      zQ_8EZ(wISeTzkoo^U$gb^b~`pMfo9S%w}sIoj`k4x=tU+*K(#L9SulFU+&xFWtQbM
      z;#PgptQd~9NgZNYVDvz}!K00>$~Qf)JdJ%Kj#8yRFrC5<R#!T+w^bTGqvIq_#gRcy
      zLzc&@6;8(xhIx!W;_(eOVW}jc@)*(Z72j*imX5D+N<d@3D@E`S$GCFgTc!EuGFIOy
      z=}revE9z8TD;mZGdRq-nHLOb6tVx>_Ixb3^lenzmyC$1%t&Z<8MVXuO`Yik;a5{)H
      zXojPhmWSp_i%kE}M{$*=$7JEGjyYWCoijEzOuH;F9MrKV<@p$wZ)rl}Oz_k#RU5Tc
      zbH<XFMECB)S=os}-m-T7(X^otVMMsn)GEp^uO8zlb2<|IO>(u!YFV#mb7C7E*`XIm
      zJy#uF{7tI8DdH5^JB@Cxj=A;dK`)@9&vArkGU{Vho5KIX!@rLZKR|-`1Ka2iB)CP9
      zi)>m_1X;JiCrJ1N36DTVN0kssHRw^@<2vM88Io3p1DJlGl^=;=>|zSGa-30{Z^~sl
      z;W0gAUsz(2sXHWH1#xX~)IU>cO>v!bJAAIB&z1DKk{*|gq`wgNc|ko^gHKsCnBB(d
      zV(t~fxo6pbka`VGJmr8HZXvyev(J1XDP{0iQvZe+ekb@JN=%On<cSHRAKxf3f-=v0
      zba}Prt_0qJjHu*e1*5wK9*n@ZxZpKUvRYC^vbm<o#8vhQd;Z)dB;rpcq9!1TFZ#Z(
      qtLanj{}{bX@8kdC(l!dInJrv%O&1w$;YO>-zjlcn^hM6As)Y|5mx6@=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/CannotProceedException.class b/libjava/classpath/lib/javax/naming/CannotProceedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c66162cf752b511e18cc80199b08a9839f5970e
      GIT binary patch
      literal 1824
      zcwUW@T~pIQ6o${z(n1KOe6)bn4+J$WNJacWfhtrOKRU>W^uikrWv7HmH%zj{`mc0G
      zhS3YhYj3^tKkyeE&u-Gtrs<3qO|rZ1dC!wKr@#Jw{{aAtP>e$lfte%yL~rDoUNcxV
      zU(^}1_>OH=C_UJ0ROm4`EEb0-flQllTi$#HfuuuiLpRIRc5uD-;u!(*lE7fmVh-0C
      zFY9KV_9oBwHu`@5IY+%sYr4VEWSf3OH%ef%6l_6P2n<kmV%Qd|QN{_Rq$XeIhM9k^
      zJBM7~H-)Ny*Qhd`*KPEf4AZRUas|}Ib(6c@6z{3X8wAqrtr42j21k8t6&ZPfKt#)y
      z2}Fz50aYLZ<0_287=fXZ!RU6qwomQ1q78wOl2ySRbW8)+-e!~^8V-RQrT<79yQVbv
      z6-*sfyWB?cO13QeUJ-pWh*NW_qF0BEK%z?dW@~2STDD7SQ{g8vtA0RU6;v2RODAAC
      zp@lk%h%%u^(o!6!+vE9k+>B@xvEOveM9L#<p9;ZtTLlFMu+9mqOKTxz+42C+{Zbt6
      z5*Y3{R^cApC(v6lErt$b&1_`4ulJ8=MGQooHCreMyzb7B;CZA%Qt&8_zm4O6p^<Yo
      z5qzEIqzQ+D3d1mhMNWIsq!wNy;#796x?Q1LhKO(~e4rLYHB4iN2>$VV;S&C0xQgSd
      z2l^l?g2d;j_}I9gko!ZpPI~)@g?9zdaOm-x!qpPqiSWyvLHdg<nUJC$ysl!=8cgDo
      z>WZ-G6yAkF#xp3OQfOnjxih#NbXdol4e5|}Ri1-*x(e51^J%z_XD;rH^vwHEUt#vM
      zZyA%DTcJQV;g)ZrNt2xmuv3^7V38KES6Ex>0_NtI^}C3jA&HcOIq$Vw5$A)5JE4dR
      zvM42A!9`2t=Dxul0zYB#6y}53?IA|F1u@|xCg1^nQUUNV6lggJ^ez<Wu@BVp5l>+`
      u2=X3lK6J?{>4B`^uylf~1wjr%L7u?VFp#w%h=DanT|mTei^l7+X5$|P-dkY+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/CommunicationException.class b/libjava/classpath/lib/javax/naming/CommunicationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f1a73dbe33600975851d7ece68ccdbc2a3a455a
      GIT binary patch
      literal 534
      zcwUW>J5K^Z6ot>_X%GZaP|?O16Tn1#L@h8hsELNqp!5SyaLn$k*@xi|Slap*tc?YU
      zg_V^*%6MlXCO!&_opbNxyXVZzzJI*D0@y|=i3nlsTHK0ZO$%G;L9OZ7cA!;X_{!18
      z!@j&RMG`T>$~Ukb$`?V%dD2zF>Ppw+{^InAKxc$Z)6t$UwBHq0Amcj+caQgP56^_e
      zq0-845TfNumk?_@mokMYX3|JunviWNE!%<JlkU0bS(1=%IeiWg9K-!&Gv;3@kFehQ
      z$2IDNLOBF$mSC#myA0PWU6WfdxpRCR+Z&jyUl<|PaRRq5Pm~E>{ySsS%wZL5#E(oU
      zA&vxVlDi0|_#<;aUemm@%Sx>A>Ij*q5XthIVg<Gk<G+;SDm{iUi+pIx2b~x+m^5sn
      dx-r81Plr98*$*9xV`}1Hsv;J`@WpUu=@UxFbTR+{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/CompositeName.class b/libjava/classpath/lib/javax/naming/CompositeName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a19869ac0df2a1f1f5048a190fef69ffa8ee613
      GIT binary patch
      literal 6437
      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
      BUvK~b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/CompoundName.class b/libjava/classpath/lib/javax/naming/CompoundName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39592b0d194dfa83fed6699bff933fa6e976bca1
      GIT binary patch
      literal 9469
      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
      A2LJ#7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ConfigurationException.class b/libjava/classpath/lib/javax/naming/ConfigurationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56516219b70f69086d3b0a31593e108a11d1d247
      GIT binary patch
      literal 534
      zcwUW>PfG$(6vfZgQDf3FODk&=5vV~^L~RT=R#1op*6g45(ih`Q%%AW(wQ41_=mWG1
      zTJ~9@`$h@+vuH8z-23?5bKZON^6~TxU=QUC5`@iLaW6)eD~8JLTTRcsQT@mlq4M05
      zQBU6KA_If4{tax$@<kBxf%KJdZ0QHwU!5Hj=$w#a#~>7LXbUHjsrT25-h=fvAf%6!
      ztHK5$S*h9tqv>5s6G_ZvVPcjr-%_q@N5ii4FGbgpghI>fae&|$?x&kZI8Xs$tM!j-
      z)Ct8(3|fw0suTJQ*Q>V9E$ZAwKF%=c>#ScG!R&aE-;<|G2e18|v7_g(0XE`CCX|sv
      znl-~+0yF%Pz8|ky-q~j*)>Lhb++&Q)^J=mJyD<1K<+;jEAS|E|oAN=Y1`Q@Po33q-
      bvGmj7fM*V4hth<aI_Ro|<v4sLo>~0_#_e=}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/Context.class b/libjava/classpath/lib/javax/naming/Context.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be82e6fecaceab3e73ae842b969d6553efc3c377
      GIT binary patch
      literal 3164
      zcwVhmYggMw5S>klZ3u)%AcPRoG-(q<8q>5%o7N<$5Hct+wqpqw(ucd2H=rO(J}b!w
      z`qTQMKcGLVr?a*(Ye^JN(hofD-8(aPW*_$7|NQwE06d0f8ZHr-eNQ{|Xw{`H+udJP
      zJvU%SK^jH~Oo^3Mhaz2Wyk}NGU|uijrmht0YPn=;yJo$hsAjpkM_{ISsx|_Sx$*=i
      zFr6PzH>go3WEmJGuqb4?UbWmiY6TuY&e^UV*wn$2<@HyZdXiSxj0}tuxS15=^({>r
      zrebPx#3X@*qzH5pFs!jtE!HcqH|v$ER?v4v#0-I3Nf9A;a_z%?pTKyfTCV9ETD6YR
      z8JHt*Lk?(juVXhE7ZC)~8zrNsyFuWZtZTY{PcotGm|N%<z3VkC1B(&QGz<<rZlhzn
      zgPup%6;s_Z^tULzO<+!zHfUfS`1T(t%V0-ZwW?s{&-y!iqT=iw<6O*m+R)S;th|Q<
      zD4S)qjOxz`EXiu0Ss_+G7L5g-<zd+TAWT@-N~W%&_i`x%4+z{#3>Hl=H?S@2!gKMA
      zNR{=Hs#k>36#}=<C~doz-4>Q-2Z3r;+Yq&tB5vCw0(TNaEzX*vFm-V2GDW4dxub02
      z=)Q^!MV!`<?&IWAN~KcN%nW>kHitH%-F6rrvyq1FHVI_2#i9FBqAiw}j(+c=<d<s%
      z#<U}gwMFNC8lLq}m>h_I1`+}fvhf>~oH*rp-eK4tgbbTmjt3FApO8FJnBuJ0XexAj
      z|6ETjf;Q%oa@M*jP>M5MK66&_Wao4*r5|x@ANS+w*}X?+?1nAIyGIZk95w8Hmj)q6
      zgT{yCSc}J~4)y&CwR!#pR(NvetpC$k^#j7r^)fDowT}CU%Xk&G|A&VA*}CbAAMaUC
      zH-+~WpJ*d&SiO%S0uL|Xxc`}j30BVcb1I&0GC$znv0QGfceRSPdx&rJJ_|&>3gtfI
      z1acSfa;nD)kIuI<q`zW$t+wa0Quq4gFM53vI0DZucA?@FZUb#LO;2+>Huu~XzN6=6
      zJ9(Vq6h0H2wY&~1aIZC#@+wYuh?vjz<HNvqR=22s5YUDrdRa_fSzB2Vr{=Qd;LHeo
      zk`>RxOn=jKSN!(d)WW6NY+|Ehh8J>+6>JAJ<NcG76T%b$Oo-o-CSd_CLkdwE(Iv<r
      z9+U7D#1j&}ig-%G(}=H0coy+>3C|;5knl}Jw<NrT_)`hrL3~%j_Yi*};rocQ5?)69
      zP{Lm#&PjL`@nZ>p4NLgV?+H9b=38V&@b7nB=KBcq1LR}OT7-EX%kw;z=LNisF+WBa
      z1=eGX8euj-L;nK?3f+D-yDM7>D>|;cN{o5kT}g^5;>tFZB9*tH9APT4o+`1P-o)nj
      xCN{q+7%|3-Fgs9-F+W9^UD%5-Z)3H7hF=mo{uNh#gL*{!J5ZUypGH@0{R=!PAngDE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ContextNotEmptyException.class b/libjava/classpath/lib/javax/naming/ContextNotEmptyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3cd3d5e501e959262893e703a3aef4cc8de1d6e8
      GIT binary patch
      literal 540
      zcwUW=&q_i;6vn^f-?(X-rIpkoB2t4Sq81r$%%BiA*4>Xb*u?!K_l{vt&@1#9wGvwN
      z04;li7QIGv?p1<{pvBC0&hR_mH#09EPtO2$QA{F2*t`}uVpMg6t(<<f;W}E5blcTU
      zd!TQdqn;dS<vK~k2&>=Fb|_y2A?r&|3Con8&;7;eF@eqqY4-HBaI`6`p^RrX-X88>
      z@7@WCBjqSvCqzqSlMrjTm(oBKb14{@C1hI4k?o<~mEO7NT9S}!xjhaL9K-$eFs84R
      zPuObx>mfBlz7(QWOEA~b9^<vL86@X}<ORNv?e~MUUl_sYxI?cePgD@S_E*YIFo|`r
      z6@N9Mh&U3gN$w(;;YGn4c~9}l9xJiND`TV|LnOny!3yjnh67}|N=+clBNv+TRi_4Z
      hCIdE6*&bu@r^6x7)Ix{Cgqk`8RRK$3_;NV2@(H3&cOw7*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/InitialContext.class b/libjava/classpath/lib/javax/naming/InitialContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a21349cc727019ccfa3e9d7a3a489688ed68955a
      GIT binary patch
      literal 10044
      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
      adM~J{@v|!OWD&h9@{qhaq+_Ob$A1PAq@H2`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/InsufficientResourcesException.class b/libjava/classpath/lib/javax/naming/InsufficientResourcesException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f89a0e9908945b4403ed0827607c5f590f34e18
      GIT binary patch
      literal 558
      zcwUuJTT22#6#kCa*fh=3N_q)jyigWhUJPHXz!0IVeIISKiQU=QUBf@p59vwhq37tY
      z^dF+Ls{|DUJ<NRP4BzF<%-hHF3xGWolZX&%cj7@z>RQ-JkLqphjfX=uP*VGs(sRb{
      zKzgT>fxP#XqmzgcHopnFA$&0iSx>r3Sf+G6?yuV?1Ue_ATaNa8p?y<WV;MK?(#7NZ
      z>j5EgthDl*glM^95@IdqMjD7>DFp+IgiJ?i*&W+`>0XJxB?-BXGvENhG2G7&WB#r3
      z2-}^1T&F?EmqS6_63p)TE{hr!Gsw>e`71n@?Tv!WUo?Wz3k}ayFhJ?=terrQEwCX!
      zKB0&>5{yaiB3R%>!F_p8@yR|TF~+M?q@O}chIfMz*hP$gFUwVGM#3_3p(zhMH)t|5
      f;3lfIDOP_v9J1ypbSTVNbBCZRU@Z(^4>cQ~zHfc9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/InterruptedNamingException.class b/libjava/classpath/lib/javax/naming/InterruptedNamingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b793d4707671a1cec353c3a4e11431ca557e876b
      GIT binary patch
      literal 546
      zcwUW>y-or_6ot=)1<VS9D5%85SSgr@#%P0~K}|4(2HhCD0VX(RnI-#UcpWQiD-sJI
      zz_+mT1#FFX7aB1p7BhG5o$sDAKW|?zuK*5FN+Cwrxfc&&T-9Qz^q|_*zI5GS<ja0L
      zs+^B|a^x#Vr(h5^f53ADA?Ha~3EPsc$N6>hj6j!!OvBNhFSKt7JCKQ+clG&n`}jdf
      zo+_>UIw8JWwg^VU=}QxFETv&$k&taEE!)AcE8Q#6wIw0na(Zka*oO02(eUq-M<}=c
      zd6gQWup7ZuTQJ%2UEZ#ht<bv=dav-2hTb6b`-KtAjuW^&d7(n{t-pQt!(MEI#rVMq
      zB_xpKnBpvk1s)XMljk&7jyMv>L}h}^bA)7hHaP+ZF!;xEyh=|YEF&L@@?mEJbtXeL
      eS=pOlbzb3^drl&S;*^>xgsURfBJ=gAXX6_vj(Pq7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/InvalidNameException.class b/libjava/classpath/lib/javax/naming/InvalidNameException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f7e94ba0c913f75c2d8485a983f0f731a3c8b8b6
      GIT binary patch
      literal 528
      zcwU8&PfG$p7{;GhR}IrNOH1h@UDP0nPGxw=3JmdL?S0h2CU$3IcNM=wpQe-0A?Vtz
      zpwAKX0it(T3Hk#aW}f#Qe(&?l%+tsH1Asl05{MAW*J2{3buDbANA<Rz2ulsS!j`Ag
      zfxPjRqZ2R)Ti>v5C|?92>q%D$%apFi{bl=vK<9*X%h8@Mv~LP)EMvE?^7--Q{f!Vm
      zQd;><LbOsf2}a8q$|Ry#Ng;`4LZ+j%?2hfebT35Tl7w8x8E}B$815H`hJU3z!glB1
      zM>GieN{H1h!A#G08EsU}AT=MPuJL7TZxkf`!U)NpGj<2^Oa-yUzY=zXDU`uB{Jn${
      zVu-UQxQk$k7X@$QJ;f*cti&3t&5*tekqqxiR^R{z4w2<5HHWZ@TxiPITo^Q&4A^*W
      cXNL8k4#zyx3LOe_YT*!61#E=jo8e6H6SLHF2><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/LimitExceededException.class b/libjava/classpath/lib/javax/naming/LimitExceededException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6134203cde49b36131a0f0b00fa8881793342e58
      GIT binary patch
      literal 534
      zcwUW>OHKko6h-fY222ZrD5&Vf7!$xmG)5g@n4l(_4il7l0TnFMAJg3!_Td6tg99aT
      z-~wETJ8)`z)esXu0|!;NUgf-d>+|~Y`~qMXr4(X>jcai$Mm1MB${o}!<*4vv)RVF=
      z`&w^8<+&*sgtc#AE0QmQkPD=*gx!&T!1d+XF@eqrnWpCkp>V^Fu!l17e)#ru|9F=p
      zB#)G<!UiE;u5<`S)9XtUam=M*VwRA#lq*|9rz`yn(X}NZZ+Sfq5FEqxbkhj0R6y9Y
      z{&9^up-_&%nk|@Whd#sgN=N4wbnXHl#|Z{H>la2a+uqRc$y23+SO3n~)_qt98}TC(
      zN=P8dn&K*k86KqX$8(x@_E?EEQ5_@m5FuHfO;%tB2LDoySLq3adE_HgKIqh-!K7xB
      e)vYlWe>&`Q&q3r+oKRB-y((fU3SW+TRz3kdN^}AM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/LinkException.class b/libjava/classpath/lib/javax/naming/LinkException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f95ae0fed586ec9847310080f94d474eb8ab360f
      GIT binary patch
      literal 2151
      zcwU86ZBr9h7(JH+f^m%+UaUY{@CA|pQft*JG*ywP7(qqT$_Je#xy7}cT_(F>=)bTZ
      z`!Cv=3ay=S{M;Yl&r#3a-3iI&q92mGcXQ5pp6A?i^Z)zTZvdRf&nff>jJz<n&7C>N
      ztXt0JT-kDdUD~P2E#GpT6p{jC9lx&xOA8@z%##hvv@5dVasT+vO#!hiaAeVSJl}Nu
      zifK1x@9*{5f#2SJI7Yn93J;~{+S{^5H7PJqj+c=00!Q0{s~ax_vH@<+HVNVjS@j7!
      z9>VIT<&Yc-2GpgUEh5dZ%XaFT-yo9Iz6EmpqCg^-uLvX;-I`1zfguCOk);gHkSopl
      zhHN}CH*Be7+$v`^IWhOq%cTF@^5|3fU?W*<DA(OWzM{&Fsd6LiqV8?dj7{m6yDS>Y
      z<uxW9g204<G!6?4ws>t;D8Ly583oA3gab<lBi#;D6)R`Jz>$4chnt<OXc)zsF>n+-
      z<gBM*4S2fAhI5+1@|DBP=Y<r$<pFp7Y~VXg3iMWO*HQjEfzY6*F<`%yj<GuqBbr)8
      zAmOTC`+YZ@DTM`r6Y)uJG%dR(8|vta2Ckxz#x>kX;X1<|#~N4!Z$xTa-GbF$1SWNr
      zyUk2v9%KEuCD1cJt~PfJEaNUSYi?~xrzS9~%Tw2@s8{OULotPwjuyl6O1-EoS=aWF
      zz(Y0UeU`3C-?VJr?{$6}0_iok*{I5r6<&?@z@Jk}m|!Fl{Hy832tR$?rMT-sKawi6
      zd`_yA1#2eSGe2AnVtEJoJ;2=su0rV)_AvNYATiAEG*__uBo=TYBB^3u;3QWiFcJwA
      ziB#CW!t@?S;|kZvxgIDChp0$FJ$=b`RPnFyb)+@dYUXc@|Jjo23tld18#$#VpN^B4
      zwdAvy)R3p*<W(&>kAj9g9Vb81l4o`Py~1?dzbE9Zf5yLaK?6#w6lrA&)BoZdfwwsS
      z3gdCjr;Nq3HqA^+GlPqaiqgFFY0cAd%_=o(pV7RG?{zaz#kHPuX6t~Nudt5Ny4o`T
      zF0X;|cH%$GKVgV}_y<4kVJTbM#ch>@U6lE>i`DqS)Y}ebqIEF5j*;+7hF{&VQXo9K
      zhX)5K-y8iSEI-qUnA%6o>{riH7iciK9^>cZCYnJf<6*VduqCW9JSyR5@R!{<t%
      G^3z91la|;3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/LinkLoopException.class b/libjava/classpath/lib/javax/naming/LinkLoopException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7ff39f8a472fcad85418bea80071cff5f21bcdc
      GIT binary patch
      literal 517
      zcwT*x!A=4(5QhJe1<VS9D5xBa-T)KP7`<S)AR5ia3%d7$4OW*f*<B1z;2ZcH#)~8#
      zd;rfrk8!#X50ZFjr_+A(|I_yK`~3sJ0m^AC5Vr2cqZrq<7%1JZJ4!z|zCUb_dvX{l
      zU#DRa%5%)`IUyg)Knc&4LCE>d#VLU<3E7sf!$|1J72ZfDzur{)`RV1HkUCLXMNLAY
      zQgsPd%fFR25?Ic_#u6dN`toWt=*r+)bUjHZIDU@}1lw>v+q9xP6%w|c|NCzcij|nD
      zdxC*Z6foDQy2i3-ELXXcLD)Aoa~Q$y_@kgF&y?{j&B^bX66}CA_)YnxkVJ}OnzIEg
      z@*s07o-@32$dNcEYZGK&V<gA3%@Np##h;SrRb~od1%+6Ydz=Y0nKW#wwmZSvUxg#C
      VIgS-dQ);GQRwb;*<{NR%<`3W=Y~=s|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/LinkRef.class b/libjava/classpath/lib/javax/naming/LinkRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05641654973d6bae8b82e1c7ba2e1ddd062d4edb
      GIT binary patch
      literal 1083
      zcwTi=U2hUW6g>m9&@EWl3bnPO^{aenvD&IF#*|b|FdIy)lKAEVW8Dh7W_L0D6aEE%
      zgFaXiO-!HtQN}Y1Vxjb9X6N2>&$(yr?C(E6egRlVIf{_L`2+Kld04W|j%Dwc49ouT
      zQof5KB9Ix$Fe+VXH>E(*ldfg9>(ccs$9`RXA|Rd%Bz7I!^G(~Yo9(Wg`o5Fc`uuj`
      zi@@|F%eMT-WXu^OoHer}%lW!MWY=j)4d;-IVvYg|Rcf1ryl5QArXNQNx<Jf#_I#I>
      zY&(}X{-gTQvIZvN(2y2L=T7I9)Eq6!TDQ}X?kls=rXAgInsj5*6VHQS#D8yj?AVxe
      zJ!R$@A#8qvp%^X+M29zdSzu`d)Nh8lN~`6@up%(4!0IGDPeT^hl!xmAs}np-a-|`R
      zo2q72pm<iz$w?}$;5PKrV79X_ebrGdu&6yfY|4*5C+$UXOJI52F}EQ^O<*mK67C3u
      zNh7eBtL7)`E2nqkxQ7jj5X<M|OWPlxZT|)EvECnf82=tZ*mF%bH7YT3#dM_YIbF9Y
      zpIK_O@xf@;R0&qtahU%Dr-Ug?bC2>ALX1%sVwP*1kqToW?lXnr5fVMje+yt4u3C`T
      zV96#H_?77caRG}!@U?`Cq)~L~0bP|+3Y9A8%RiBQqhBfZaJ7dU<FwmIqI`ljHKa|E
      zHW$$5p)*%tEW%T9AP^b|gpY9h7+HgTuODOc>zKd}`>RY4n4zBsco+z51vT4$0h!kI
      AfdBvi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/MalformedLinkException.class b/libjava/classpath/lib/javax/naming/MalformedLinkException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3456233271d7f871ce5f3f3d00162795a14542b9
      GIT binary patch
      literal 532
      zcwUW>y-or_6ot=)1q^~93My8{m;ffCG1_2gP!kPmfo?y*h@<;Mb{E4V_!Pc_6^VuR
      zb{4*hrSZ-}gIZY3+<Rxfd(Qm4eLcSb*g-LY2x0wJ+>2q=5w>!A)iYsTyPhq(P37Dj
      z4Lh<QDA!5AAQY#-seMA$m!1-qDLtR-tCK?lof6Uw*YN}41g5YCGWOAbegC|8cqGIR
      zl%s+=AzCV%1f$`0WfD=$rI5rdA;bFed|<bwcPZMIB;=ZIhYbYVa6MTxf*a)%Hk$vq
      zM2(Oyg<#bZOtk`!;ab_$zIpAtz{j!up7#2M5t1!;;C1A&(#ETQdu-`Gtbv92iTTYC
      zL!4uRs|aRzkiH+!DPGy-NE~C85z<c~lHobY5!i;of0X4cHHI*cTqw#1oe0#K)NH)6
      cIl|&kg+1=s4;2byYNDXC0+vGa<*;Yv8=nMo;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/Name.class b/libjava/classpath/lib/javax/naming/Name.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef74c5e0b481a69268ade5180a04e34035f6e706
      GIT binary patch
      literal 1134
      zcwUWD+iuf95Ix&m+!PA*7ATiOxzz?*Q(jY5LM2E+6(AXk#M{={hOK;w>~$3SGd%DY
      zJn#XC{t{w#<EA7wQf0|wpE+}8JU;vD&ySw~w(-Kk48y`PAMl|Y@lZxR_bm^Fg(|}}
      z4Z8s+?A_t9@Rfx+!_qmr7sQd^hXK)N8J0~##;zw4$pd*Z%FLZ*MkR6B=ZVgcerkvZ
      zB1vT&eeAqqU~d@a_u?p3JW>Zd$VBb*_u9AS_r+6&YAR2ttYSMI21};xu&=(F_s<OV
      zo=`7?fML~k_D#P`$-r$#Stt^&s6mUN;mKaaRhE#<=Kpv*`{(0&DxsCMcB!^P4H#DJ
      zj#JE&GG*T<;z$k|nrEDemF6TbJ2IpS?{*nB?4nqC?Oc24i@u&OwXn{xK0)e41KN03
      zbH_Xe+wNRczE0zq_1ShwzP!fC<uAgmCnAgoqOib`vGn)RFHcnZNvbb;gJr_>muE%P
      z%{dL<SV??{wP;aNo22Gzhmry9@}6FtCBAqqwHq6{$(Cj@^os0%kg@G^aLV!%)Un-n
      zijuo6I!@#Sx@xe{pyyRw!exr{bUJ5n1y}Vk!~*njT*Q)z%UB^s(=e{n`wgnn_)Xk0
      z@pc~XV2yZpiC3j~&mi}wkOz2JKpssYkFha@*l<jTCwY8|XC`i9%S`2(`}2Ip?Z5av
      BBjf-8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NameAlreadyBoundException.class b/libjava/classpath/lib/javax/naming/NameAlreadyBoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3a8722e0166a4f21c29aa5f98f6797faa2025d0
      GIT binary patch
      literal 543
      zcwUW>-%0{O6vn@!tH!2jmR1r$H=zbuMBNxdSwSJ*SljielTGZ-#_k&S3iUKy30?F6
      zJwR{JYeZ*P>7od_nEB=mzw>?b=k4?56~GQkDZ~gHx8h!mYFao-4{B}U$V1zcqW^H@
      z4t4)z)RT9Ca&-y@Vf81=@=XwOzVwu^E$R7OU!ENk=$w#gy4nwf4lH30W#X}Xb!|O;
      zyc3cKN~@qjh?grC!DzaDX(EofG)&AAvMr@$d+2nfcOkmAB;;Fej{^k9a6R2Lf*a)%
      z%B}z1q)sSI*qSXE>;xY3^@<fn7sBWTK9S=O!nj`;!R)w0uP0Acn7#IA%vRWnb+8w|
      zHlc(BlB_ANVwmAU;VpSi^Uf|Su_mfxWS%1=%d^P}Y{TI1%JC{afiRDJWXflq8Z?*;
      f*<^KdjK!Z0d)%`hITR<<)FE6Iu@r?bM?EWF(9L$n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NameClassPair.class b/libjava/classpath/lib/javax/naming/NameClassPair.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..faae87c5e785321d7dd79bcc5ada2ca4ca31f978
      GIT binary patch
      literal 1868
      zcwUWDTTc@~6#fQE7s`TAD=2qFr4+Q{4Fp7`f`AREKofj1OBrEx*==^W#Hf$@Wb`lS
      z5AZ<^7o!P2n)s7^FrJxRTWFVPHoJ3X=A7?4mv4Xm{<;TX5NQP!3@wkfP3>vY)HZZ;
      zEjg!c@RXrB&RtEn6@(ZX#C_7x=yHDLG0(aR!VEEas$0ngZtI$%KhstWPR@?pX1ML>
      zmbo-@i-FBD)TJ!baW&J;Xhxn_&9REtzc$yOFocMf!lLOS$%1QBBBKm7S&_$_bg0su
      z``jR~2MpDZ@`m9ZhsShNcgGoe<K+nDCw&=WOj)Zu0){3PQ8Y8e|10!?h&__lO+J_3
      zSmE}fS8p_JWvN_^il)7P7;@KjhoLQfcxOi=s6@NSpo5_@-j}JNjJi~)s1w#n74@EV
      zO2rX0FhpbnG*{mw0(FhMsbX_t@xGw`Ddgoj5CQc~bq+)w3#eNZsW^YbYRM{+hT^gZ
      z%%-Y+ml;!hot&2CBG(Hl8c|2rYh~98F4K^Td`qU2&*d!J<*V~KZWD!NPCm`@oG>D|
      zgm#*<Yk6rYxXRF6n(RbgH&(eF!6>dN7&{<T&qKvHu2VsqLUi+w7|!f3*%R|<K<gqH
      z#!WGs{%WMC;t_E$sbUJZNpe~)$IVrSvqAkUJMy!Xm@_Jd&`Yyiu<~}6Pw7%Y2Xt{x
      z#G{*<SxIjdJuOgBO?D0avK5HXOB#`Oy}yz^<k~3rwd5PcQToPcH;WJ<0o95AfzU3F
      zeUhHX=_`<cNkX5(39`C8KjLczq$PNmv;<Ry#BKI*4cdojjU{%`mgwI`XJTL*-HG;X
      z^b|RoD1YD{c`i`?i-fa8nPntj!iz8P#R_~epHEn)sW#DxGwAi1le7x2s>Bw$KNhIM
      z^6;UARy_wFn*Q*>;Lg(E^}yiM=nDw$`A`yU2L>n5?+1^Qw<swrn$=x8hUXOXLLxMI
      zUWK-V{kAX+1Y>oUV!b4+SO35|i*sdItp`TuVZ9-&w})UQX*2@sd~jZarC9F>>-`~E
      zjecGi3zM3Xf)fJU!r%|oe#52ZU0nGtw#C8KOVNHJ5r3xNU~AtDVucwD6)>lzlz@(J
      k7+w|%_=1sL+=x!>;FeGmEjySlmBrpZ)Q$q`tn|9`2L>-iHUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NameNotFoundException.class b/libjava/classpath/lib/javax/naming/NameNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8df4897ffab21cddd5d0045ca16d0ea38377809
      GIT binary patch
      literal 531
      zcwU8(&q_i;6vn@!SB;ydSz1Y(qJ<h{5w$VgSVAFgEcc@hcH`c;asPymQIFC}Xwd`I
      z8w5e`5kzOM(!zokGvA!ycfN1_ynH=912{k_g&1M`M%;;UO$o<RqgqEevf~CVH&ny3
      z@j%`Nma9@Q2%Ga9%MU@w`O>q5-IJcr_0{<)fi4J{rmOrwsGuk8P$up_-o@*~+b1D;
      zVks+V5aQ)Zk6<+2p)?W4QW_=}3E8%#WG8g`(z_IWTN3hZcfbLHW4NAe8o{;Y6L#AF
      z-=a<^lq0TY3x>LZ$85dQ)3F5|yTYe&{E?3Og%QlI8+rrTvUG0g&xk$UhAprUzc5os
      zAjz8IDux9fq;JP_ns*Lai8WE3AoCa@S)NT+U>^p5QI1#XDTHO@BU3)-%%H)fW|P(3
      b30CJFj=1MIawtxznS)*xu@;4|M?D+gtCDl)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NameParser.class b/libjava/classpath/lib/javax/naming/NameParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f01ed0b438a88418e7cf5c728bfbe60a95b22a0d
      GIT binary patch
      literal 229
      zcwRg8Z`VEs1_nb09(D#MMh5Y$#InQ+{k+87%)E4czr@_sfW)HW)FO5U7DfgEkfeT2
      zB2dOZDJwO(gpq-@03^-GpswMAkPI#<0_wKb^uaL9nvsFawIVsSpd>Rtub7>IlaWCN
      zT@jFiD*-AG&Mz%WPIb%70ouZkaF8BI8yh17BLg!72rvTO$I8G4<g){LEI^tAh`E4l
      HCI)T*`>{MQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NamingEnumeration.class b/libjava/classpath/lib/javax/naming/NamingEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98b80ceac0bf660010238d532de0b6f13339b61a
      GIT binary patch
      literal 425
      zcwTLgJx{|h5Qg7NQ%pbjZaY=X$wI_Rt4@@uz|e?+%|upll{zSKP<|T&KY$;FIEN2a
      zq=RMObMN`RyN}PecL0|d3V4L`wS1LTWaLJhRdiQhb5m|qF0IatfKNDfnkbblxPMx!
      z#0u;YhBYm%PNS^?f^Sr134<V9{I8o3y7MYgFHTtq^a$f!{=X7JXQ@|4+A>#!b`Zuf
      ze<7Y_aho~P3c^R`NtzYk(E}SSvocTAjZPVj8UtN8Kf?7izG}8NYof)@DW}}XY{E-m
      tS3YfCXp0vmun!L%j(nzF^!erCfHQ|UV)B=9OU21HVclu1KKrQ}d;#cPXP*E7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NamingException.class b/libjava/classpath/lib/javax/naming/NamingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52bdc3ef577e3f2585f58be67083cb72c7e23faf
      GIT binary patch
      literal 3473
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NamingSecurityException.class b/libjava/classpath/lib/javax/naming/NamingSecurityException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5f6930d8eb3608353a5cc966b6ded8875316be0
      GIT binary patch
      literal 537
      zcwUW>O-n*S6o%iUSB;ydS!#)!AVLkYh}sw~vVua4u<m}e!6vTv#{CG}_K#{K6!Zi7
      zQPG*JwCDp`%)E1k=e+NHynnpB0oXw~g&1M|R@{qm!x1Cp3>)1@dU6nYDtI^^59D2-
      zTqgyCQ2B-YA_zHOdP>-q^n9+bPLBw5M#!{X#}9-PSi%lv;^MGYdVYO8CnOJ)qk<M8
      zUaeUKqwQWx6LBo0VPc+;?I=ff!%<&)m!fY=LcZe;I6!a=*RxF{xKTb~qw}A8Gzo=j
      zL^f=}STFDxYt}3sT+qQwe4dd%)L}m`g4uIJZy-;UPOkhBvZWi1HLw%EGog$GlB_AN
      zVwmGW`i4BGd1sfESQGULGEWhb<=JEfwqfu`<#?5zLRdsTGUb!b3|dTTHd)`CVEMbl
      X9{21=4#g=obI_|IN>TVq)U)~ts`zv-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NoInitialContextException.class b/libjava/classpath/lib/javax/naming/NoInitialContextException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db9a945b47fa4926998072de30dfe4d41e07a052
      GIT binary patch
      literal 543
      zcwUW>PfJ2U6vfZgr^ZXuEUhGhHlYStL~RT=R$z!5>+MGyY(n3Q_r`GBC+Rb^5?Vyt
      zT11P!O%UCAN>CBBm^pKY-#uskJb&Cj0N6nxfe2yaQe2Bs#T5hP_9`u};VP{}zwWtO
      zj`Y!}E3dTj+ypGb>UTDjFM^N>q|dF6^aHNX8ixcrA*9$V(8AS@=nrM=_4fVo?dj!)
      z5I;~HRwG1<C5K?uy>n?Jin%0g%o5T~<;vD@(2@SB==3Ea+w{5|AUKBW>87PGR6r;;
      z|96urAva+weZgQ``^;BMj)~5h=mkE}An2L6Ul_q|dqck~kCn+@`!i<Cv|=6X#ji~$
      zAci<=f~yE-c#ydz&q?0dWhK^Fd5qLuh@^S8S%Ga>{9PGdB_|N(kqu4xtW$#;lZK6#
      dH^*4~>9EH=`=LXALQNgaDvzZwd^zk{`2^k(d1L?p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NoPermissionException.class b/libjava/classpath/lib/javax/naming/NoPermissionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25283ea4c50e73b8a0ee26a71d4f20e7e7d008f3
      GIT binary patch
      literal 539
      zcwU8(-%0{O6vn^NRb$gMODpe+F4Q24$QwflH7G;^Yj0!R2A$YHu{#@f+k^BDT?t+E
      z06kQ6W|g2n(8bPoX84`&J2U(K@%jef5S0uP3_ExHflnJAccnLO4E#$GxH1f-@Aam(
      zxK~tUU@+`{=VBQOI|`(F{300&p$H^*ED>mn>+>!HyI{z5d@oeoQx<n3ky201=hJTQ
      zh9P|-J*nCZ$!g7FFgpINFp<Pc7ABS%@_p%vLFA4^aK%TCU?}!|n*un+(0*}fsEG_|
      z$o~JgX)%<lG1qW7K|>V~+p1YQwxna%Xc{*h>!@ECgE{o0z!qmx=T`oV*w<~?2KmrS
      z6NMDgq#4>JutXozx1%*nCr6}=G*zD=_Yxy{T1`^m00#Z40#(^LgjEz{Q<`&O&?Zu|
      e>H6Lb>pvZisizq`l;_mKL04sL#NnH9&(<fyXmtYs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/NotContextException.class b/libjava/classpath/lib/javax/naming/NotContextException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80de75b5ee09978c091a182ab180ac989347e6bb
      GIT binary patch
      literal 525
      zcwU8(%}xR_6ot=)0n7l3D2T*`x&ll<V|0UIgPLdv8+7&s8>|^-bfy^I!KZOW;=;r&
      z@8T;MZwF%HPvW9Iz0G&e>Cf!r<rTmI$|=MM+jrtoOd6gTDR0>5`nv6VT2A!YWFYUg
      z^1T!+!q#^xk}rag3uT~$>&PJF`ugIOK$nCpdxctf+7a$pCepL_ho`qX5t1j$Q@TZn
      zSE>%dYWp|RMjXo-*hmvrI?9vX@u)9@E75l)A>Z)_93VJ`>&2#}Z&gUx?fiF#CZSM?
      zsD>*T>FI#UX4NsF1rxf)XBmY<6Z8us*gbz74CJ{osii*x>ZS=hU>AN{LKz7pSyNoa
      zu*8GR&3Ml6&LJzYCTde;pCe?2XPXt+hsB?h<5gx3VHNqvlux-ZXfbKnWNmMX^`8z$
      W+;bc`6z9~!!K{kdh{8)z&*mq7b8qMX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/OperationNotSupportedException.class b/libjava/classpath/lib/javax/naming/OperationNotSupportedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96d5ccde381940195b43572af52172b8136acecc
      GIT binary patch
      literal 558
      zcwUuI%}N4M6#kBm8k443T1lITz#nRgYGt^wf?_bjn*CKTHZjh~{Dd#i1GN%bw6DkL
      zL85a<2`UI$-20t#_<qj4Zy(Pu01i;eAVFx{iw7|=TrslUp>Z{qz6fp4?Ra4~8jn3c
      zl!LQLUyju<1C6lxP0)$qi$N#^(zk_UNk8EJ_TrR4mxNr~bAwR0p(UJ1rp)I1&g=DK
      zfsj72T{~<MlGU0;(AwTW>PTWK3muDuylK0#6ODS(zY#r05{jnR=K#Sm+|P$vcxMNM
      zUGpE$X%b4+SYSAU+1=1*QL|>L{F2IF;k8D=P-Xt25%jJX`F(kAs|B|I&e~IYY=I5=
      z^9dECkY>zqm%suaQt#zE%acP!VocSi$UViBJl{GaU_iq@3S4DpBrKyCoASbQgBCLt
      fH(hT`vHH{Dh&9KtLwUxUJE*FRwK#k|)@*zN707)`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/PartialResultException.class b/libjava/classpath/lib/javax/naming/PartialResultException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..291861fed24bbd247cda50a745ae3736c13fc78a
      GIT binary patch
      literal 534
      zcwUW=&q_i;6vn@!SB;ydS(;g!kU$NRsGu_3SV18YS?)(0Y~p%v+&|%qwCOEsBeduN
      zdYm30I&+nvKZ_PK-#NqYeBaExeZ0H^*g`RZ2%&T<?!~BPi=naywR7S6N>~@t3oQS5
      z)R%X@a_j^Q!s<7$9m*F$$avD_$*y!g?ypXd2y{kBH67dYh3$8R706iWxv=;C_|PN7
      z50$O_1|eFmbO}b&xt1oPm`lRMEFs-ewrmH(o^&ro&ys{}%jt7~;27?whlYQnJi>bG
      zAJ3>0a^(=LS%RsK?=oDkbaie{=PvMdhTcGD{lW-l#|hlNJW)D$<?oD5J%=^05q~nF
      zh#2Cm3GO18;YIp=yeIi&o0V8&)iF{}A(H0ZWCeC$U>6y#k`oB?$cCnT(Wya$NzKNq
      c8)Gc~blB&agU}&Ap{5SH%3~=EFN8D8pHo9~od5s;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/RefAddr.class b/libjava/classpath/lib/javax/naming/RefAddr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b85b848d497cbb95d0e3fe48bd7a45a5ea0aec66
      GIT binary patch
      literal 1468
      zcwT)}X-^YT6g{sUI<*dhwWus=U5Z`63hoqF6hR9bQ4+Vrp&en!FoVO?s2^P7SO0+j
      zK@&~1B$~K<k;ETmJa1+!TG2G~=Dm0CJ@?#m@AUhR51#-GpsXSykeb);>ko>yzF^w3
      z#Vf|$)77f0LJ??}mZGKe`qIq2QSns7LjR)a6sHW=)GhOoK4TdIah+jTA1-p6EUyMm
      zc`ji~0<mG!HoX%99ofIlxoH7q#HktyMA52Y9X1F=v$<&%?E>3Z{U>Xdb=fg(&v4H@
      zs2Gc$>DX~31-AT3pRVY(?Re=KBW=?;fi|QhU}7BvHfvB37icS+wlP^-m@(X|0sUmz
      zsp!_U&XRZzFBNajTw+vtEs0o@I%{}A$*F8^t)dfj7;(tf_L_YHMWryty_#+<H3<`%
      zb2k#Cy-PzkdJ@=!UKN=?8WW__umfr7nboij+og)V0>b&T7mbvv8<ZdrsSL<vko}v}
      zm*!*(eBsAsvOx_+?3ZA)$6RBnX0Z%0PG`>v600~$?VIVGshL*QaN`)F)Hg%D(jJu>
      zBFiI4$>q3)6F5m=eR0vSs{;LN4aQ$rA$BQ_)6_Rz3Dga6M<nFgCZu0V{u4<?j>^dM
      z0zKK0|2vLrIE)@<o^on##TYf^oM>T*`(&iDlYNNtY2l;DdE>_x<Bl`PoAo^1qCLX*
      z*8DQG!U|eHqV0Ne<1#jV&KKUJ<1K9wY~i|@D8Lw_FA(P<l9=HAB)0lC9|N7}0{orK
      z#Rkb?2{RS_GtiQMhmJQ5*qDEL&4<wfhX96OJ?DpKAtx#XdCe$Eqg40`@e+p$Umzy(
      zb?ofpQ^)R?*u~S{NgnqODg7(ZI+Yc)D6gWg`a6|6a@;gh_fiL7mRwDyo@Y{vsTPod
      zjT{^d;vSB{^Qj#S(l#nAA&&w{Y3N5E?;?!s;=VvVGe}_{cM9#C+K~DjeWHAK<$bCH
      z!;<Jk-!~+>$@ajV;qFytf!2?y;S;ptDK_F6Sv>cdqyv<Y3IB1(?GSUc@+Ub(xIf%b
      x{gU5*AoCGNt|yNzqZFhcPM+c-Db#VM{dOJa>KJS8%8TE+k_i(EwqJT({0aQ_B&GlW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/Reference.class b/libjava/classpath/lib/javax/naming/Reference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f0c298dd869efdf4eabbeba972ad06fd2b37615
      GIT binary patch
      literal 4085
      zcwUWHOK=?36+KTg(nv#ti6qOmJjfp$GapG40f7+923uevGO`1b$H>IkEvY4qGn$d-
      zBalgg6U_e~l2n`p6;egS!bOp)cmy~}IaL%?v7snJu}M`nEW$eLe9nFS+|x5^C0=yT
      z``vTyJ@>xb(#QXP|IYx1@XH8V6nakCOZKDbg1wL{%%vZ2W}T8#n06uvD_k#o>AcO2
      z!&9f6=}H7`3SITpk$kb>*i(5PZ&&En8@Xb7+$rVkeC~|w5T&fAS*KLa6$?j3?^aOv
      zDO@{JER-vDp^~-pRj2hIAHM$Ex4wF@L!s54nJJYOIx`xtTFK?pS&|n^dlWjxb8`i|
      zQY{fUx#qxdra7AZ#M-luhSqf6E|(A5a%|ZH*HMgDN<7Uo-TpI~;<R0%!{pS<hwKG%
      zwhiYBxyn9;jq$YziL63+q&VY55kjwp9&A+z#S_^MDBNISBf28kc12g8-%<3TR}Ss8
      za2+-%Y{=va&Y|kUlvA2;RqPah@>!cwa&8vGmH8Z%+Po%gH;D`>72syDNQta?k+6_N
      zie57bO+mUPuqSbhypkf;PB4<f9qY0FpA}cBZ&>I=myB+<(2Xt%HtXhOq@IWkv(0Hb
      zeAS^|ohu5x@zMXK)we{eJ1B!W)+m$I!eX&Z$JD68miT%|EcofXW9u5Y)52b<8LseR
      zu^{7#wa8HlGa|(`C?@w<xC{G9!hEzjr>l0J1##0=>7O_j#eK*`@ZE;1?(SN+SL#67
      ze5Qo*d$RH!q0F#6ic_Z=FOhMMTXRlD;vG!{M=S_OEll7+sjtz103$eNnn|-U?|jg;
      zTaRcG$1OaJ6ABSJHL<+7MpA<yKG_zgFwLZub7vfVZJD-qDRkFR<tQ*=_UH2wUc%RW
      z?kQ9koRTg>3NW<Z-n!jM=ucVr0p`f)<edelP+=A=viT~06Q>7#_n=<+T}?ag`Sy9c
      zJnwd+Nu0J&l<3qvqbNBG#U)2rs}{<Vi1td+l_G*i$<!>+fod*4<CLVWow4v3en^We
      z&XK-BQoYEKevGpbJkE>Sv}IulC#3LxYT*f-V{Vq@18{g&VRulw3Ch+ZcuFq7rgl8T
      zkRFnS=PW#r7Z{wqxabtvy9U;+lz_-I=Gk_<Ot^m0i{qbhe4GyjiH;YmrD^A2PMYp@
      zUVj}FH0<Ez2%!b7i16t}2jse3!*6U0EQF<@bAG*^e~okYHjcy6+4S#5{oBnmjEL{e
      zoE_1Kz{cb%wj@&*5ldb|-{dN`U&M~zYp5If?xZ;|&i4`0W(jf>ySUQh8sqEO4d{`O
      zC{1ybp~#aW#NWOkisT=#qrZmu(K=TTg9DC}>jb$@lFP;oyfVVK-9_^F`V60p`Y}KR
      zVIDNhkMXqly{*pNe-Y{Az(ouNhS`fYz87e;Nb1v6v_$wa!7G|R>B4#R+dTShxP_w@
      zJ-U^nkapyo#*x=Jm!J}LM+U@^E#XE_0@UbZvVpTCeu6HYqf1Xxk*7%WG~#$hyLGDz
      z?zxrl+)5Z#WOR#mOGe^gnEOfGW*p3z97V;0t#sk`x(88h{|eb(_2nSyu|@H1?9psd
      zF9%5s8{`9=w_HI^HOA&5|BA@xebwYg7CfmYeyj}MZF&y03tkQTn$dnkz24AhmV3^i
      zDfxOCjCtxMXLntKnj}t)PnyrrDh^~)F7Vx#(Z`IW-a%tszDeBQ@shpCEUaKB-tu|A
      z%W!pb{~$+-tNfH1)(Or;xt`QV*wFtGBH<NSp%t{JsQ2gvkEc!h{kBi*9#4@TjG4^#
      z;E*mjC7(~juwt?}mii0SuhAO1kh%;tmXz@N`K;pbdDfdm+OMPKbf-*XoW}IDOP8Ql
      z;QsSy4POY=9otDUff@x~Wy;=VDZa;x`970$i3RXS7SVe?r^h^}$M67K2m2ZB)Ut@v
      z6Ko`|(|4Hyv2^LxkiCq_y6CPLANWMJJY35Zo}fKs(4ONNxub)jy(_%;gp9e6hf)JI
      ze4j!ys)2XTwWyez=aX;z=WnXc=XQWknd;BjL;s2xKIawulretc>i~nE4}+M|32EVu
      zLvN(>Udt#4bO)Hl99P_qJg@z`xv_k6&5`~+uypfmg>HOlW8W%SYc~GMXWZ%;F9aG7
      zH5>mk(6|t2oNhM$SD-Qf5HQ9|rZVH9VM)xUt-j3Euy}H~At7IGtrwlXb*h8^K}Hc#
      z*I+Y$cPq<RXmP{W!gom*M3|-OCPT?z9ma>frqDV}p;elKP@8>K*5PHi!>h6>FPx?<
      zo@~0jYI|T7mpm;$F>)+l!XuN(8kTGL(YyG`DxU0ox`t<Kcrha~?TfvRO>!h<HeWKE
      zzO@D+Uora)YW~TO@Tz;F9=iU%s5p96g8wn5aHHzS?P>r=Id@drr}MH2q?cj5ri(s?
      MQBUWeYs6pt7r8eaTmS$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/Referenceable.class b/libjava/classpath/lib/javax/naming/Referenceable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abee698e4d82d6bcfea115f865a0adf65ece6f36
      GIT binary patch
      literal 229
      zcwRg8Z`VEs1_nb09(D#MMh2;@#InQ+{k+87%)E5{pwzU~qSU<P)WoEmRCWdyMg{?p
      zynaq1P|`msD>b=<k%1>YwFIsZXo7~O4|YSW85y`-E0R+SN;32FirE=B85v|yRQiD_
      zxDuf9;QZ2}<W#rJ9H7BMD6Y{1>11PMU}Rus00Bmz<5(HkfP8i!j|E6`05KPk&BVYB
      E085uVyZ`_I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ReferralException.class b/libjava/classpath/lib/javax/naming/ReferralException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83c91264e3e7df686839f0bd860c49846d8ee77a
      GIT binary patch
      literal 838
      zcwT*y&u$Yj5XL_@n*^4Wmb49}l>VV0B|#8XNN`A$0|i7;RHO!S;O3-m>ay95yj~O@
      zi&G^IJOEDsFN65J-G)Lb7mq#jn{Q@pfBX66D}Zg>FJeYu?O1-4lSU{<Ivh6k)uA#*
      z1}`Q9HMTkmi|_<i|6uk~GbIG(V`a1qddkE+zuSE-AYKd1?nGg1WoUacNL2oNuJ>d7
      zY@fkGONZLF1#;C|Pr%!W4wR1^u9x8Bn!sE~hiWew^_6)m`+*WDccK9cNS5I_b9(kj
      z#{wIj|4+~qSgNK>Baj5T){tw~damS>E4jc<M)A;<xqz{op|WS9yWwFZuvo2~1K;$I
      z)xZ)gp949%RTC?)oUzmXvIu#9+9IcTn6;Q#9W-9a_{h2;o0leE?doADZDM#4+yBgM
      z)$8rc^GopuJwEF;eTnycF{7;c^xNxqqr?o<OYN?^a^YqlIc;wfOy`FZSV0~I+9FRg
      zxI*i>2c@S(&tqCao3Ec>_H&BNarJ3|Cq$oOp1aa1gc~T+I)Q~upiR=Th5CaNEdH&~
      zWKJtpsGL%ng4<Pa6N3ME8Mom6^9pWLb2Zgx^Qq?!v!))brRwX9Y+y6ZxywP^kXvcw
      F-Y-5D!7l&+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ServiceUnavailableException.class b/libjava/classpath/lib/javax/naming/ServiceUnavailableException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10fca7100f31e3954ce0cb3690b244b0fe01933c
      GIT binary patch
      literal 549
      zcwUW>zfJ-{5XQfe1I)=kQBaA6c7Ta!j9NfwP!kQIL9SnLgKLgGb9WG4#@gD7gu(}~
      z_IZr62Qg6-W3f9sliz&b?C#sg{1w14N=d8`$`4{9rZp`_N)KyY=}*)^_B0ojEBday
      zoDSq;s63s7McDmDccSn`5ORU^m2e&D2b}k=F9>u)NVhy4ghGdoaK|z}e?HI1_ooIS
      z(NJ22O+u_(aR^q+yOTCz$fRInjgW0CEj!~;U;4LZ7(%}74cI`i4d=_E72d0WP;LMB
      zE_Fho9MLsb7&P>`qh4{0dBK=(@Jyp%XbgX01iR~v{eiqv#(nP(qeIh-eXtt8IiZ9&
      z5*(A9tzeZGnVa&S;>rm};ux>akba4fEblf);0P9fT8>Yt1%!3vBT=4qDbQrnu!-uy
      b44Xd{PPykSQYbE{rGhyXu@#wbM?E{AxqW$O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/SizeLimitExceededException.class b/libjava/classpath/lib/javax/naming/SizeLimitExceededException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5e027437a4a494b4c2adf0f307b9764e7e484d7
      GIT binary patch
      literal 553
      zcwUW=y-or_6ot=)1<VS9D5x~XSO}Q7F-8k9G^mMYV}ou#zyycvkJ()evG+}U0V@&<
      zAHb*a35<6Z8vhcDnRD;tyXVZz+sDf*fPK_*ND+2M;$BQFUwFzNT3z)ZZRM%>Y|@u<
      zAO~9SViou~7=-OF@b4g@6v<Et*O6hw{msQGfi4M!PT)te@MA}~W0~o_cdORpQ-_c}
      zQND`Xgmk^(5R6VRkS5Yt%EQDWp=c{#UX8t;46jAcm4vb#^f^Fq4EOUxBfeD;p<(~?
      zMJ+<5p1_tXG#Q6H&}uk3yP~sK_)1<h)OkNJg4qqmVPBpr9lrT@&Yqsd7TApcolrvt
      zS=JnPDJ<|J{Z8KVd~(1_teNH%h35n*@@}#MhcIx25?A>dgk_WyQ@-rnpv|Oav(4Qp
      aR=+zO^GqvosLrUlgRZJrOTyQanT<~zQhH4Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/StringRefAddr.class b/libjava/classpath/lib/javax/naming/StringRefAddr.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86f8f80dd61bcb25a87d4cb9f40c067ee628aa41
      GIT binary patch
      literal 610
      zcwTi;O)mpc6g`)InGR~GZwV_}qOm5TDw5I=U){g9Pfas@Bhy!5?+1|(iG@AC!Nz~E
      z7I$77Ay~|N_uPB#x#zxl`FMN+u!5O5dI*yZaUm{qN;F+n&mHN2uS0p7uhoJ$B7~72
      z^=^fbYRSMAURee$*H<USEduQj`U}2lX`yskcx@TI-hE$t8+v^vB&xpBQt1}KDTR_b
      zPkhZ=CB)WT<?409{KD_@?@Xplh!p&qw9t!`4I4v*^dGI6avuo8HY_9wgC$qVy>_!A
      zgJV(gWN5~(@*0AdVcbnd^qI>>r%V684O>nKzK^fYxxuPSUFa;xFSd~R=3~FokX6le
      z>&R~hRk`h&u|LF?LptWzXfOYn9!w&N7^ApB2{@s96BBRR&*uQ61I8ggnO%IqV0P&q
      z&aEMh@Ht>g8!VLP=1rs-&35P*#Ta0sasJ3e;eb$nf`@nHb9{%jX!Z`y&6jY@B#TDS
      N?hv|ygek+C{sbClg&F_=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/TimeLimitExceededException.class b/libjava/classpath/lib/javax/naming/TimeLimitExceededException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d9db12830109f86abadd4fb46984e82a071a121
      GIT binary patch
      literal 553
      zcwUW>y-or_6ot=)1<VS92#7SsSO}Pi#%N41G^mM&*nnHv3^2hl`(t(&!vpv%_Esbo
      zK7fTU;JX;_EHwTl7Bgq=<h$q0&+EtY3xGXTQiu_@ZpFQrG+f~*chu-9M|PB>!qdq>
      z%Ap);y$hA+reF{@zreqPgj^tfC2ULj0oPaOCj`16WZIq^gu)FiVUK0vt?+*R_)tC~
      zB#)J=!WJQ3tyu)4?G2@gIF`~du}H{vlq)aCPG9;x(YGZb-|+?<AUKBW`KA%xsDM!G
      z{PRXlLa`db4O=kT4SjBC)-0V})Y&V1Bqtc@ydN0B?0RE=AkUNzU;jI2NB3d_Y{u_S
      zs33tPYl^EF7I=`pC(mi#*=HrzM16|PQ-oxBHd%pP82oWLUZrOcmXVK4`LJ_?7L%Gy
      e*0-l9e0MnDp2NtYG^6GYdR4+|6kd*c);<AA&3aM*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/Attribute.class b/libjava/classpath/lib/javax/naming/directory/Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ea25b876b66e9bcda52178349807c9a729b8a05
      GIT binary patch
      literal 928
      zcwU84+fGwK6kXE`2dZKfT162NMOwTxzWAasArzAuBZ-ZD;BDHD&5+YMX3iW^_#c15
      z2S30c@GtxX<C>vBp-p^RGkdLB`!f62-yc5#yuynJIf3;<c_c>-BZt}y8hve5&n5P_
      zvE!W8-OQ;71%a|xHDXE0e)o`)2y+5U7t!4~F-mr0%I5`^1EG^fTUjk*ec~Cqq~Y38
      zHr0vw(rOBb4+1xK6O%e=Tt~*4Dvo~td7XX#Omc3Z+)f+|Y}D!>FV*=ez@Ev5%1TGG
      zHv*--QBQsImo&m{fz??r&Ljd0Z9Op3WtN3){@4HQ_B*D?vmkaiR!`1@WFgfj^vc)j
      zErBAHzQ4=bHfL%E)Xw)3<D@pJK&3WqRzIMR?DshWtA@!DZHv8FNgM1t?9ET+?1$RN
      z^cpqQS8eoZZ&UqT{A*KNj@zk`FS$BtGiktV{7()^r~9_Atm=o%2fp0a%<ikT){H(_
      zYCiQd+nPzwGAgx`%=XlK?Kfueyt<cO%AKPjawsC=X$1=?5wCHdbGVK&H+2y=c`h?j
      zAae^#fm<e1L6wnnhLJnC3%}hfxEJs~Rs%j5<JuS>Vm;s^Y+P}8JQaDuEMB{brvWS2
      Wx}sQP<TOhyU>)0J1)haUpZ^0n+Tc6@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/AttributeInUseException.class b/libjava/classpath/lib/javax/naming/directory/AttributeInUseException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7cae1e8a13487636497108aa19ce45b8a6197a7
      GIT binary patch
      literal 557
      zcwUuJ%}xR_7@WcaW(7eMRKmp@VB-3d=m8}$sELMfLH6XOEDhEyU9;OY_#i%rClU|d
      z^-+8X<F^YjQRBfwJN?@EW~S}i$MXw-T~sniFl^uQdp@xgA4@f|hSC>~_WTFyL~CCT
      zLM<*-KM-dVN8D-YsSFH;>bIV53||a}LLhv}U0e78)%}Z826oAiYkMltTxpxTp-3G+
      zz9(KA*L0XZl1l0pL$X%48H~0!6ef~b%EH7VL%t)G=!WBg@UQs56%56W=a2y>8>;7<
      zhQ5&j!%pXaH)=AJYH^R{a%$)iOO2X!JBm<>BCJrdaWIN(f6*Aso)`L#IG0g|>K`WY
      zD`OL+L~qYfK?-TY3{?p%&|uMBY0lElJ|QDaHKxct#gshFCSmk(2KG>(Rdz<gGK#S%
      mC7lbjh#7IyjjbtGe<~bM&ta@kp0VZ%(W;EK*nB<i+4uwiSA0DH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/AttributeModificationException.class b/libjava/classpath/lib/javax/naming/directory/AttributeModificationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb8b7052da543e102ef2d78ea199dda0f2a22883
      GIT binary patch
      literal 1327
      zcwUWD+int36kVrW261XDmZFGSMJdoyY-{ZWC27%`8rnY8k{F)`IK|Vz3>k(7f5eaQ
      zsU`|W6F<Oz@KZGIGZ2E@!UJ>m-mJ6s+H3aw`uqJSfK}`$m}1yC*Dkb1Qr9X%FC~k@
      z<ORzxKO}c8%M|&##Se|5I1>fU5{CY=QQ%b>C~z`_{=0f)A6*2)Y>k^jE9babqx|&X
      z1p|A{Fr6{<nx*MhPAk{B%lN&Y_;~r}6N6IMd4m^f4Dol_5vqE{99X=PVsJkby0Fp=
      zj%X~$;LI3B?u7%hDpX7}%w&bmkLr~?H{WRaGH38*jRNV?NFC*!qSJaWsP*Qk&g1<c
      z9sa0&HCfi^-U)&AQYw~{N&-@ep9EHFCE0xd#t^J=>(m~fIuv_bkfua*azA3ZD`2>z
      z!i%fqHw_jnjiFwS#wO=x@K{D$GQ(UnHaLiahYW%K@?Kq(i`<k}L{!|z123Y8D~QpK
      z^kY>lVVQQ}LN3Sg8AGJk*5mv+iAxRX>_r#>50VU1I}0*dRk4P3S`V#S<$6)NIOP2d
      zlsa08ZvznpPZ<^`v`03LFnCXlx>?}+LM~N!{MM{UYBGdYgTBZq1mS|4GR4k3^rN>(
      zv5RW7%k;cP**cv}R^u(qe72$2>FK2t*n$(=@KL0;LAZfAIwgU>Ly#t<#Jb~4EzI{b
      zJf}Npn_<3<>M+RYCT`iygSb7&^%bFhu07()jNrOUqe-rNSm<yiyMui}=(0=Ywu`TZ
      z4n@n<xqL_-%KySY5PnO}Jo<*k781UdCLT*Z$66ClC~ji2pE}z^9qv+Z*{JP*);Tpy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/Attributes.class b/libjava/classpath/lib/javax/naming/directory/Attributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..737594d3351d29921f099ceb231460e429f74b66
      GIT binary patch
      literal 757
      zcwUW?%TB^T6o&udRzVRI@a{raB_=j*++a)yijojrbmwk>Ni(EO&9o)Tqq*<_d?@4T
      zNCIAxvYC@J^PMyQxqN)Sy#u(wv4sr7$(T?1i=+5ND$f~7ErwB`U!8UoX*q}^5n9MG
      zR1?hcIWdoeF)<bj47J5=#}Aa?17BEJW2l=4891)clKXO&yfBny*x{k*c`DFi#E`X{
      zPYk(G&V+G#bb2CUxU~C=)GjGeUaQ$pliFe^P<Y$-8BXnA{DU#KDxL_<BN-^7i>~w(
      zk77;V-=zjzouw<do@?mcgh>^tDgTz4WXL|p)P(zgny_^9J%`oW(zVm6l@b-Sm;_U5
      zSALiboF+Z5@rNdck{iT&D7rEkdu6dq=Lt)jLp36UJS<wpBJEcZB_w;cjtyhW*fh3+
      jDzRHcWw1?tZON~b-@uOH8rU^<ZyvXg17a8s4SDnhrx@0{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/BasicAttribute$BasicAttributeEnumeration.class b/libjava/classpath/lib/javax/naming/directory/BasicAttribute$BasicAttributeEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7238d60114d6270cc911efa7daa0ae2981924d3d
      GIT binary patch
      literal 1448
      zcwUWDTTc@~7(LSqOUnYKSZ^R!L1-7HAl^Z)fml;(BBlo7gWF|7muz><UJ(5?#%CTh
      z;gV>g@BS#`H_KAC6-*yyW@qMn=R4>7W`F<r{u96ymLx<N=C{=yb+=%ub=}-5Z0a`G
      zT+9AgSW+EbTXbDpuX-*YY2L1wUY*;jt6Qdo7(+^s6bzLZURJk>K|%+^P!o08UqX=#
      z@eeg_a|Tvq=x}SgGcw6AR%%Pp428_<rtZ!$D7iLc@)d^IvbD(*VCa>RKr)Fa`ebw=
      z%@EDyE8^yY3<;ftDCs6Id-W=}U#nGvl%`9TrWzI1*2O+Jj0x!si|vUxzm#Mtt{Ij?
      zl*yG{jlUO%j)Xym!Lv$v0%4G9s`J7Ur6da*NwScYaRWnSA-GvFc%7Rr$&8tN*Cmg+
      ze5ti-Ga~Yqj8P0TbO~G#mOu`Qggo80<x$2sZc~GHRKw$rD4U<kb9JLo@gpeJ1STaE
      zP99I_PNv6smxMa{r(;J&3HQj-DXwg-d0H(H*Qi4$9uS*pW$R=(%LB(rOyiMg@MDHd
      zF64QQ#F|_5CWMq38MAmw*|xYVaK$sKLv2~JJX_<dx@dcUv*!tcXON4g$?auBbsXXR
      z%DLS}mWmyv5l4jnM|yBTDkYvI?K<eZ3o^~!v|A*E!1OBP2k23bkW!)t=>JAX5oBoY
      zAtJEnh_h!%uvJ{7GZ9Q7xP;5Jk`kl|eU-jrv>Wh=$Nd``r&J;{SUE(&8Wh(s^bbXW
      zz62_+9OC+33(cz#O}s&K6T|<d8Tr~m^X5z%df!2P<_RtCGRi*sY4q%4>=1XpARgO`
      zwrYACBFi+$Mw>KE`?MM*6R4?X+Ry0zf$8=1{Ubd56&x$;1lfqaqplp{$*KP1#;E9H
      aRSYmKlzJ*i9l@MG&trksq+f=d==fi=Uo&9<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/BasicAttribute.class b/libjava/classpath/lib/javax/naming/directory/BasicAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15edbd82cf06a79cac1534ead8f59c4a1c5f2c3a
      GIT binary patch
      literal 5900
      zcwU`YZE#fO6@K3AF1uM5kU$`W03kpUb`ug%gF*-*NE?ia5(p-UdXrq>;$}DQ-i2VR
      z_yOAbZ7nKjRaz~!P5o#kvBm=0R$FKKr%e6f)XsF;&eR{ZKb%hcqf`5wd+*-8yV)qy
      zVK(o*@1FOZ=bZDLbKd2H|Gsqwz$$zYM2W)k{n`O-q$!~d8Hv43gGNdpFq5f6O;>4Y
      zV_>6cri}iKsR!X#xL8D+;u__;`u9^Vh-nJdQz&rH@?cs|8CtwYPo<4yVn_RC1+`US
      z`le(eZE6X#M~i3l!0uz`qkE3(XB4JsJS$RV9XXTTRF~MhP9c~~4eBX<kV^U}dq57S
      zUD=Fj#G86743sVHHufeoGm|2U+DQVf9fcmPYvZA5twzEy+Z25DD|!_Co05Zi7(P@)
      zFbCxdGdqlg-kBNd*HhcI{<to-lLPcmqnCVlHvQ&4gShHCE-1pZTV6le-4#7yC@dDs
      z)e3WqNc0KD5@WEGa!VtKV7fdlk6;F722qzyo5$@iYEdCV(FiWaEJ7@zc5-NJD2)PT
      zr9%A$ow2|LtQ6&E)A?SYtd8IkT*_!`gM$S@$Xf0b*W0Ipv?hYfML}pFnJ_gYkq%-l
      zW0sR{kH_`BTD;rTO#SMS0e#pc4MS*EsI;I}Yw?t>4IZjC64hEZAz@sBHgR^LfV@&b
      zUPfPx#GpPx>a`Ov4|8WAu4`6Iw?wd6_`#iIg8t5_Us23sg$j|rCW5cvtJE|gZ=Dfz
      z;X3NvtD6#p_9>2Ti=Z3Z$x;2bj22H9<jxT+7C|x66Twd0KxU?m+jWcH^g<b7?85FK
      zZp^E2JEdYxQj_f8Psx4~EqN;+_!4#l$#64oRe3D$v=&z+h&@iDuzA>-?9L4AyE?89
      z=?T-5k$tS#M6%j0=`eJ(iO-#Mmtol$XS8dam=;<}WQO#VCR$iX%fD2pHQKf=h@`@X
      z3o6cK`L7;DVI**yuq4HDs=vTem!g;}9%Xkn>wBc-P+t-7IW?P&6kDdLkC+61Kp~bV
      z*EQ^5>P(v5nc?AN%G3wl;D(Vw1=Hj;+kJ@jGU7EJ;MdZ4^Qr5$-q1cRz0YokyKqMY
      zU&9SS99EdUs~B5-xPx3_kd?-~8tJZV-zM>-bEov7<N;lXd4B{)E%v8{{dGl4y?FC@
      zFoJL3n?z<NZInSgqA;%z`&AhuPU8amu?QZ=w>U;DmUWSswZ&S_WcR~(7;PaOqd(U3
      zQxQCk<1(#=hxG*AYAn{jCv7=UtoS?=!9%!Rls!YODcRaB)h6A;XC7qe{F?RR*Q~d&
      zv?&{*!Xn3<k#s<}Cx$a7jp*7CDHg={nV76ZdzYseU(Obz1#44WOQ*@1Ey+y6%a<Qw
      zG>9K5%%9Rq1V5I3H)~Meqh;deHW!>6el>#Eq}c=ob9=&+Z2d$k<)?Iq{jEoYPDk)P
      zs|m7`E%*X=6fQcLGE6<|`{F|1yE3NN`7kE%^B~@4ho4$5f-?fY%z?i%XF!ghi{Kr>
      z8nO&q4ou(|5xj|CPBEoe)m2{vi}~wLW>N$C7DMg_v-7*cN;#<zX-_2dl$8^?)y$u=
      z^I!>EqmQ2e{HR0_AwHM#W><nRcX$urvtMojT#v}0=l5mS_p`Bpe|eYT&Rp(X!c}n%
      zM8`4jbxUME|Ax7OBh8O3Gytl!gm}1$tCG>^DA+(CA{&gxeB)SDsA4Oo;TlWDTwBah
      zAx}$)Q(4NY9cBBd%*VA-&_rXWQ4_5?jb+gZ)b@^}{xnwP^v@+6;95fLqVLzy+v~Z%
      z&9YT(YjJH=I=19VqEcd6jX74gQisTgqOk`0&`{_@53%m_=nc7gL$2Nsn$Ya%UFqmO
      zOld#Yr8#dF=6e%;11lQFuxe+{WF-Rz^zz^?x^*Mr?&khYsKLz^gs833g|O6xu+)Jd
      zPvWEygclbF%#ah>rL?*11j?hd+j1P!CvZh?*}8G8KPzAsaCbuvOqpeDfXW8>t`o!_
      zPaM1;HsUG=#3m;Wyx2LWZ*nM7lQkVHW}2I;MqSG@EDQT-`BuKiJq)UGt=3q!gh88K
      zKDRi04vES!TwR#U+nCFghteUJ(!7y5I^vWR+4>16CaS$7MrAcjpRCK6!I-Ul>p9di
      ziLuv^&&dPSdXQB&f(jgB>$}~9zTUAHVhlU@Bxo;pBb9NOSm#@R3KdbyPSqH$9mn;@
      z5%7;5DN$9n?HwmS|Fdtj!0=)Iy_=!92lM#6oP#x&tU5Prbxznyn5<r=O_J4}g`l<*
      zf-rD2_72nu1bm~hb5Pfc=MDV4U}dp}k2PcHJB~RHoCbS&UJm%$PGP{;;+HeWQ56-D
      zh4iAqS?NuS{}ft$ErC-k2k+PAfvmTsevv6V5>VxVhOEmUmisM8M|^6b8;7U;xj1ZN
      z`2i0w$q%x69wLn%;r^ra`7wt1ajeA?>{!R>^^<7FQ|QMDHl1g27oNktcpmrh{TN>4
      z-<P=i1jp3NRt($hn7A<<C8;HbGkET1?v<dGw?T=fkDor=LgM;aFwM~T9-w3w=~Y5|
      z(wG%XO48k7)u^;P+m{nk6MApi-f<XbqrNfh&r!=Rh*wDCSLx$x9tu~w6z0!}NjBCy
      zWG=PJo6*gwoMs&#^RTnjb+FW_XvO-A({xU$Jx7L|>0vuiI)OwlyWDW0^0z%WOI@64
      zm=4ZqTr&>R)fN+38WYH{><*qS(DiQ7vK{%qbp5)hu0t$UyAYd@9g8G-p;NytIudyy
      zb`JlQQ4zZAj#^dn^;W6oE!kS`Y<v$bjql*j<EU>uhdbB$tvZ;sV7|XRuzC!4-O_52
      ze!l<A$<P0O3gHEf_NKS?PcO)Eel?*0zoQ@LISGDG2p<yQN1O|PAn!j$BmPM4f6Ph#
      zCyvYWoGX9vaC*1fkan;yNXo+;q;_AJi#6;g&2*;@i`i8UlLArN%yRl(UM?obYgrDO
      z9j{M{#*4Rp=WroK?<)-Wr(Z(RqizGe$7!I=67nSl4RnU{cHho|PWq9jliKt5GXni5
      zJL$i$2>)gW{ftBXKb~&d?4oFPyJ>^lP5HCL!DC$T)P10!)Rn?a#dqbq;EB7_W#DS$
      zO~D-n8Bw94^nb{u{{s%}R$*|5#FDe{;ojJrcyt_3lzn>)Pi7-Kh7)`n!?PWEAw6F>
      z71eYE)C`2xOf+y^t1kBV)#_jfkZ|9zt}{XQ7CW3J^1mJqu1}rH>WjUPiyGdSk?4~_
      z#ai0jz$H7c?(A%^Dy#7ftH_>7Qe*QPSz%6@J!cORskBBG+TZ-6F=pYpT%_9M_N?Z?
      zuPP8xm6)xnP^lK8N-f3`RgF4TgC?~UtJHF=QFYj&>iKhKIku@7wyTw%66<rb*2fXk
      zY(>2fFIZVyLO)MhH^n*@>UXUYyOgBswMwjnKapPaw6~XV%8J9Il#-iS6E96a;OCX~
      z)}^v)9Ix|2BJ;P*xl+9$w@Vq9RVP3HNA5DThyjMWl+Im-Qq{uWLTl*U<*4PlQeEM>
      zX*Rjwn>Z@QAwM)~Ni|8$JpQw1UI~92{S3L;^O6PgZihw!^DXDnv||isg-~U&9E0A?
      zqs}J<mtnP@FqsXt0dv%qsOGv-ZS=4wAL6fQeinb8WZCncrR{yTe7OTEj%kJ8pyYoG
      C)||@#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/BasicAttributes$BasicAttributesEnumeration.class b/libjava/classpath/lib/javax/naming/directory/BasicAttributes$BasicAttributesEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5886467971492f0f33b02c6f6f8d454ffbd71d99
      GIT binary patch
      literal 1671
      zcwUWDO-~b16g{t<cAyMWuz(_BMTC9;6~9o6Ak?DOQWuaWuyR@^bVxg6W~Pe%2Y-M|
      z-MC?)2_I1tb?u)pF}iT!#*G_A?;D0vY9TavukYP=@44rmd*{>E+xGxQkP+cxm|T`0
      z$}2HVE~(m5Y*96oyrmnDV^gxJ<|i%7P;+HVG5c!nNv&K`4B1k3O@zSU=P<FNOc?ia
      z%Y-4q%h0n2JY)Y=MKX9E6%<2ZU?~Qdx=4ow2Cr36&AxLCq4eR%#VKY?)l_SoVersF
      z3*jt-kkA*EMliHWXoBQ}8%HHHBf#Jeg|qynLxP9~emW+h5k7{Nw5lnYaw(@6b8@ao
      z{M*ucUM^;3L*;kJDDXNM5{D#ofW%awCtuV}0`(<V^2!5lG(`j%y6Z{2<H8^oWOGL6
      z5>q(~J}RP5!ddiE5zb4psFW1VBBFw(tXK?zP&i%N%{Y$?ONd~Ap^5uBVT~BXu!tds
      z{=-!%AqHx#Pp(+FdUn3Dr50mZJB;$3$3+nrb|$OpO~NHyCbp*fWV@`Ch${@iUB8Sz
      zTh138h7~ayaE;J3Jy@cugNjqO52G049ly@d9;zyQmiTE)@o<(?nUHV;lay^qvAAEV
      zjzl674vRV}R0L?k6p|9Aaf^CNXsMgEiaUwvgODj#?|#!$K_pM#tX?+q%CySIE>NTR
      zFb80eQkte1iK1+pT=TB|rwu`BwwsoRcJSc`|Iz3Jen0<A=;o#OW*nitg>G|j*}j2D
      zbRGW4CfXwIb+kvi*U|Z!>@FOqy$u5G-w5{$p?#+4ujnF62fb4)PN3V)6tHu-2>T?R
      zUFad3K(|wNt|%?W*DkQvHhj0ir0qusjNvqT|AUCpiF<h>8#uFC1M{N_##4dm$H0Lw
      zp;t99KkLHKr{_pEVHXGzY0X~#HAFWs@&X=V)m_W!R~1-$1uU|M)2I#ml={HcOznkz
      zj^=k5oo~CkiTDS{%sn<R{t;8@$UL2e`|EZ{=QBvrH=x0M2_d>$R|nMr{6;JO5QQxa
      j;V(vs(QXS<4z(fLZ_|xt7<cUWyGYZ&&lYSDGjRO_0VHyb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/BasicAttributes.class b/libjava/classpath/lib/javax/naming/directory/BasicAttributes.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20e9428e61420f78edf4a7ed62efe0581fc8485f
      GIT binary patch
      literal 4910
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/DirContext.class b/libjava/classpath/lib/javax/naming/directory/DirContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdfc3bdc02328a0d090236d8a5f92accba0e70b2
      GIT binary patch
      literal 4072
      zcwWU<+j7!S6y3*Gu+>_sRohyv^-`&qV!ic(qeZ|Ol(r63bnJr@(o-6Q;Di&0zIgcr
      z9sLIV1|R$YKgx0Epj?s@bI26>03>Vez4ki$Tta^R{_zt4<{=t{0|cgv%3Gxt(Ur2M
      z7b07lK~+{Ub|VSRh*xw*Yb*%;1VUC=q@-ZXdcKG;K?o2SZA<<ePhcpPNW6+|Y-Cao
      zpKT-wkQ8FbR+*x+oKiArA37ieMl#8#=~z7347Lb#70M)6*K;<!4^;}3#TYZRyvb;l
      zz(P3PG?qnNFGOe4E<<W2MhOfiYbt%iG;|e&;{+z#lGgZ7BZR<XL7`2*wHL!_do?PV
      z`b3oK+eoNf+0wRmTRXZeDv**;o6Qke5_Cy6cg1~Vg5*`pxTY%B?4%eibBPD8lO(Iq
      zpV#y)moB$x*SA1aa%7^l<6A6X(7MNvYEXsIteIE;?Ym7^+a9`ZG0j5&7t2exVeEzY
      z0B-E8x<kuKr`w}Vrla$qEpx14AYM|c)dbzvbgjPk168UR>JEX|KKtvvKiBH#jc%5y
      z!B?c!lB`zH6=oWgz~|mozUL;J<z2|os##*u`)IJ}Z$bF*gvCDfteAWQUih39F9#_7
      zzDv^bgM03;;a&z%`CWIE<%gzw9Pb{U>U!4EVN^=qzOdleo)(mEMEU<uroFX=^}h77
      zo_rfV%1uw}S>o}~?$9cF_`csB<lFT@Y8Jca6fJz)XAAPp8q8KqL#2<j5<bR<n}0dx
      zECGClBG8AQgZMoTK{$lh1J)}L4C4Lamir@kKh$!66ejSsY#2g_j3CmFzsEQ->Of97
      zkdrp#6pT5LaR)NtKu+6`NjT#`&f1VEN6eHX<{V5rkn=X=0$g+;mu$$4BWA`Ca~Z<e
      z&jtdsyuVjCb5+1x<IHsdGsl^TfVsh$c>!~iGq(iHZO+^gFn2k#AYc~pdWl~x{{ak%
      B@{Rxi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/InitialDirContext.class b/libjava/classpath/lib/javax/naming/directory/InitialDirContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cbf5f511a1125561d7b19b71367bc515610f30b4
      GIT binary patch
      literal 8037
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/InvalidAttributeIdentifierException.class b/libjava/classpath/lib/javax/naming/directory/InvalidAttributeIdentifierException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..611da11bacedfb9a44c0550689da48a0e69f2a71
      GIT binary patch
      literal 593
      zcwU`R%Sr<=6g{`jv@+IL)%w7VyH>%Xf`S%7szRl>QD>iaVvS5QGLtEF>)x&Z;Yx7f
      z2lyZUhIlg;LEVUp<lGz1Irk)aeSdxduz{rla)jM$(HDc77CoiAwLrzPW1{%B*3^9w
      zs^GwwShZ6ln}O6uT`CzL4Lb71s7M#!5SG8`Pc!&p5T+6tD-rrKPPo5l9unw;Fy4rC
      zVuUun2vh0aJzTxLoVfRdd|hc}_6Z}Es!wnlQ6N2xV4?^QV}!|;((*LzwPk!R+My(r
      zT2Y4w2p+@z@X#?=Dk0Qc|G(WHVXl(tYoTEA8B=w4uj<=4b2iQlr|czN8{rp?;GIQj
      z+>yu1=BfN);JP)z3fPtZhp+?}dBy^FIgIim`v$xh`DBZc7~Rz;j6Y_SN!~q1`?(G_
      wF~wE!lZ0uMGE+`HG}vdR<>pt{o-q5<VVgBOnM3)LHFU658S~ljg-o;f0cK!}!2kdN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/InvalidAttributeValueException.class b/libjava/classpath/lib/javax/naming/directory/InvalidAttributeValueException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b1f9e5314b2ee5bea0685519382382df521ab73
      GIT binary patch
      literal 578
      zcwU`R%Sr<=6g}5YTN$g?`W83hMk_d|sEdjqKA=+EsIyO}p+=?|naPy)7yKJn1s5(|
      z_yhipcrz`63NBnECpVl|$lJ&B3xFN06fs8FzZYH6^R(zF-S%24mVt@lzE{^>5vtaS
      zF|lf<M*1R5<#{iV4@O102#2uxO?s8V7lTkvWUNH!%Q)frwthySOTy%7q!S~w$sF_j
      z-23ClYb{4894W2LF(J3H=@XpOs3l$GFjaz!3Bq(kX?c})nlio-%}^35jVRy%!7)6K
      zE**2H62f8QUk|Gh<~K5_7Yf#0GfTH?o4#!_Z=1|=!A{b)>Az?M_c}`BKwc<YW&Q80
      zZL7x`*pNSju!1}aj76TtFwTqY%Xu&H%^o8$=BootK4p|?-d#rfn+|qS=2K}%!VD^z
      nDHk3Y95d5$3)QUw=6*UHu;wsxSQxTK4)(Nw#VmX&(=2}iVaJ7l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/InvalidAttributesException.class b/libjava/classpath/lib/javax/naming/directory/InvalidAttributesException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21c061caa99b44e99f494c27e191d0483c65ee92
      GIT binary patch
      literal 566
      zcwUuJO-lkn7=Fgj*fh=3N`eSFq(z$vbufgm0z<r5dmq=qCf3>59mVebp-w`Fen3Ae
      zdS{iOqC<z7XWrrY8s`1u^$kD`<uqapwFf@oQ(N(oR6~0p1L0~vc(U7S!aX^-&^nO)
      zu@>Rg)D@3f`YMeC!}d2>H-aw)Lp~IN<enpfkmkGgB?G%*$hLeHYOb`yy|GB{9hVD(
      z!)L*eI+sf7CPRF`;xHsy{y<oWV<iI%%M7`WRH8c`^+j;Y`yMF@9p9w@PBAnuE))7*
      zh79%2zaQ0LDDFox+vB9^5kn0d700wFnigwRZWInp@-G^L)$_-JE3T!fvGaG%k<nro
      zWJaIBP(~6d!Zb}WEYV`-#k6PWrcTHRlhqlrFA*h2yG3YzFo6@~>6Dq1u!=%tN@W)Y
      iO=22us(LWP`cH>b(ws#Or8#TiU`{1$MB$r}X6qA<^M3FE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/InvalidSearchControlsException.class b/libjava/classpath/lib/javax/naming/directory/InvalidSearchControlsException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8047bb0cbc04458a13c9c1a657fb8bea21ce7946
      GIT binary patch
      literal 578
      zcwU`R%}PQ+7(JiAVVY)XC2gXO86*|u!f;~+hS<V#KVAo&xZWFcuVUNYphszCwCDkP
      zjaI!x^vzX*3R<+7Ir9zYZ<yDQ=NAC`D8vyW9Nmbqn3NqcR8GI#Q(9WStMAGUXDn>h
      zYfGW6LEUwH?b_bi#FDqZa-BFLgw1c#RsdfNLdKI?3A-b;$MbdLlt34R6q|XzaQu$2
      zM>6{KcAt4jzh4q!C(2QNjSw#GbO@2U+mi`|v6Msti-dGjIkGhxcBQ@&U0V{eP1oW8
      z!7)6~FC+dyd4x*yUk|Gia>YPewgv0jzGiuKr(>GrOp_HZIQ04^{TGdpXuBhA$#Z3@
      zZ2z6LXY|+t8}f$`3Wy@c80RU31zu!c&U=z?4jG9tTACvD7*Nu@Cm79dMsR=(pOP~Y
      qmXQrix$xYe#!SPFm3F6C{poPbno8i1pRwi+=9I@;5WXI0Ha-D^7ln}k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/InvalidSearchFilterException.class b/libjava/classpath/lib/javax/naming/directory/InvalidSearchFilterException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bc6065d11104f1f77210173ae9789f251894c7f
      GIT binary patch
      literal 572
      zcwU`RyG{Z@6g`)xSwRp5l~_mzm`ISQ1%?JSVhDvOh25}BV9c^>W*5Xi@i(kUEc^gJ
      z%6NAnCTe0~F>~fl&TBI7AFpo!s>sI?BGm51RLm;27%O{N87M7H&(TknmOT}g8g!-5
      z=IBCMp48_vQ$BdgvEzskcE1Tb0emqCX;*3`te(^^&$q2J0$mZ3O~-aUVS7DcO=Prq
      z`M7uYd|f5PPL-{^1|eK5^$3xsGmr+tSWCdbDk0TYw(LyCeW`Cm-;#t(+c7yna177O
      z%ZN8pF5#&Ck7v~h*<v89Sb|kuPqVmQ>iIpgevb{VH+F}9_AeU2=sFW^N_OQUg};&x
      zd^HMSJN^nn9#O;?<2;41!i)S@^Pb?F8Y3}A%X1`O0!oT^gVF!T2o90vQ({5FIx>MN
      m*IgPknCWw4<^4G}e>xnq<|J^)Em%tj|CGa45WXE~c0K`dJb^d>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/ModificationItem.class b/libjava/classpath/lib/javax/naming/directory/ModificationItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ac083b06dfff969622deec85c8750558d528990
      GIT binary patch
      literal 1285
      zcwU85-A)rx5dIGR+0raRD^Q^*1re4C6jVSc1qxzPQY8^>!j;*!$9l+ix7lt9`Ubv%
      zS8{K-&_qfiiC&uc7(R$`&b9$8pcgx5&Y78SX1<yI`TOfP05e!q(8e&ftMBRi2~#f%
      zvy><bn-?6*ev^1&6~!x2&>dl!8Hbk@cp18+bHdQcb1T0~o(lX7-R`Tf65HGsx*^``
      zd4rR4)xGApT_ubcnMVw4lc8hXGOLbmIyv2_ai8e>@a{15@fU-?Y!zQx74ph3cy-6I
      z8HTf0l$R#6$k!a6q`)O%3TK&NRLlI|e>_L%>sFBm;X${GF7z;XwDFvR2qir0Fk=|J
      zq#J3wR4a4S+1M}eiew{zJ_c3R7ZcT(Su>0vdJ&aK0}MS{_6%a1lA0w-8Ne-uP@_Q^
      zCCoh{s@M*Om<kmgQX5ur4V?^~Sz+?0wQ`=@&l^;RvsQta)QL~JHy^#uYf)twzpCZd
      z2@+GG5_ir&Z&lpZiEouGryMbiXjj6XXFlLqjTUJMnh}3Bu3(BG()zqs6GoBS0ZcO}
      z4Ng))Od=}9eH9NdOGDKw6>b(82DHpY<R(NifO*=NMH#pt0~Z-4FB`x=0G1eha+oQ(
      z56dd<VnV{vIt90_nqA<Jg=D*@mCh*%i6NSshdv+4ekcf#-cG+)8-n!FU|pTYN~f1>
      zT?mm3)9pP)c<7vqALIJO4|JTMcPD(~82#U)-UCFUz5|4#{)49BrZmK(M;MGx9AW6Q
      zi+h`7oH7CPguX!87YRFw2$nE_6jirO{j6XbtC&R^Bjg!tWW^nf0<I>jWUeObY$JUP
      zTC>Uoozmuuf5G74X;Q!YxZwh-4TmNmEhLq6F?i@xOYr8U!Nh(u_?gQqpq*fHC!9FO
      jj4Yv!d*Qh{9)^=7By1fi(&|`g#os!Iubtwrx?br&_k|v-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/NoSuchAttributeException.class b/libjava/classpath/lib/javax/naming/directory/NoSuchAttributeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..108c9ca19d9a29fe0bd7461b6f4cf4ed24820024
      GIT binary patch
      literal 560
      zcwUuJO-lkn7=B(q%QVf>N-F541}zrU!4Sd<4Dn)l=`?PWPUvpz&W8Q0PC|!%Kz}KS
      z-dQE6=+I&3nRj@;X7=sl<rP2;r6eK*>s~yHiRFl~at79|@}#X@@5$=8-M}86YVE0h
      zpym0*mJeFFP7*P~);Ccngf9jm=SxqCQBQh4&)2Op0$ma^P1o_YaCA?M0vT`a+zned
      z?~8=QiE@-~5TfNuj}U9Rw=#t&meWXKiI8n8M|Og7UwT)fKazxe+qF4Ba177$!<Zf_
      zpHOT6^GbC>p&W{=kzhra3C^Hi>6s1%(_xjXjs1bi{Y4|Bx^Cdv@<N#s+kd6(8zpwZ
      zR{Z>g65>cOCV7frfj=_0<u%PGhm6D+uTGJ94k=k)Q;g={#c+Te@6t08R*(-(x$4}Y
      i!A!$VRQIM>`{{7Rn&Z%+IAhHn%&v&_FnlA_Y<>c;D18b5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/SchemaViolationException.class b/libjava/classpath/lib/javax/naming/directory/SchemaViolationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c766a1ee5c8501a0cd0d0435b30542d0d6d5611
      GIT binary patch
      literal 560
      zcwUuJ%}WA76#qRx!!*s(O6t%}4O%RygW<&r3h`p?eOw2f*pJv<!w&sXo`eoU$GZ3L
      zL~m9JDmrwSdG8IsubFxKc%B1jppr(6VBCoZF)>`>D0gTKlrOE&^B;|#HIj}nm1m1k
      zdG5u;lJ~kvBSF~xM(Rf83qdFZ(pSPZr62Hodv#8rYeKH=xj`u0&=mGqCf{G5jA?rQ
      zLP(t{SA{J?yjn8}iMBV88N{)cMFy*cd`G#mJ9hfgzY%>~5{ezqVgtc8JTDIu;YbC9
      zM(3YbY7$D-h-BD;8NJYFVzXxI3?-dmgQGdYQ2YLZ5i&h*>|63u=@5H=xg2UH_Q6v8
      z{DcaUNO4W`6vGNH(zoS3%O}TNiEFYxLv9*D^1Nrb>c30i2nFu43lP>(j6^x=QlQ01
      gjZM`LX4w3xaKfC^NTIwyEfsWE##Us$9dUL(0d(4ax&QzG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/SearchControls.class b/libjava/classpath/lib/javax/naming/directory/SearchControls.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7df5cffd84379ace7012070c0cb3dc535da33895
      GIT binary patch
      literal 2181
      zcwUWDU2hvz5Ixsk+ljmRAc<4b0Bs6wY=_i@@>Nm-iQ}|(-MEciOQa95ah7z0y<6?B
      z5$yv!zymz<E090}39Awh{DA(4{*{Vz@4Ak&T?-!UJ2N}y+?hFZpFaQl9{_9EOCct3
      z>Dc(j__kmh9m_r{99pi~@*Ve4p>7&(>p{`6eb;GwDQE)IGPTe)m{&VEW?l+OfjJem
      z93ouHXj_ksgSN?JPq|Ig^(@D}SKby76@dvddcI-%O{3j46VHD6eCgTL##I5mwpA$=
      z8(-9mwL2x|mg6iE0+Y4fQnl19Rf8`wDo9hmx7FAyl}>_e<&39luD6_rEMVNXI%d`C
      zSU&AT(>1@UTK3mu-ly-He%H0xg+RLHbZx(%IAi#}YaMib(`z_;DoJ4We)XjDI=|aT
      z>jKH^mTmbP0`Y9FDWDadLo>~S&+Ayk1%btExl)cm?(fU=DHdbyb~^{A+Xx0WQ*~OL
      zm%*vg?*}#if#nG-SO1qv>uJPsS>FHJI4jBOn8k#&@;c@M>untw%uDNvj<bRFj*eF`
      zCargMEa03#!V6|Nre@Q&Isz#<PGu$Jj965XLv-W>6KcAY>d5r#!xC^ZWh%>X<3x*T
      zy4x@0*l8O_DvzSf@<T9k_DE@hZxf6bhZJHi*Jyq?cXObbKqi}uRBO@;)uv_3QU~2T
      zRa~s&snrcvsAZLEF-NY07g?uwx=t-yk%&Y)aOb@d1<z+A>XpcJ-RZh5bH|c<Fne0)
      zD-wYvDi-H2fi%t`g)!RW@+r_?fR2fQKS_UT$e*VF%8)<9A6G@$bN!QRqRzAZlPjW5
      zE(p&_V!3Agf1TbnbvJM(uZ_n=JpKf4{Hc<c_@CwpZ1UW~MOu20iZ}6=df|L6eVSj{
      zj=W?!{{)xvi#-|{t%qDblj>n5pGo$xn!nIPA-|C5VeRCKiwd?44L8`)P4-%5{S{K*
      zB6$^;aa&z|lT#vn|7vMnRa21Gd*p~I>wU&FWqrV26UzFKQ%EZ7BU&k9uHoZ;*#(}G
      zBa#0L%fAhZN~+-9p`H_ip4TJ6xiGjH3BHa`BETzQ@cl^eMkIJO4E{0_{3$*gfMWx2
      z;r9^Oj0A5||CeuG`y&KCjszE}ZUEk3w$v%979_l84lxfE!+el6&^p=ITA&ool?!wE
      z<m!&#+UaxM;7&zwt%SKAk?ZjYt}<his}jw%8s_?rT;Kl(*DY@S3$8fgit9XIPMGTl
      ma{V}h>$ZB;0=uZaRM*O>_ZM*eM6RDlaLJb>x$Y>;-G2dLj98NZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/directory/SearchResult.class b/libjava/classpath/lib/javax/naming/directory/SearchResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54e75caeaf777aa2794958d4ef51215330811c13
      GIT binary patch
      literal 2145
      zcwVKHTTc@~6vzKVZ%~&~Dg{BjAOdZ<RJ1CzSgs;BA)(p`fro9o!jiHjyIZ1fek4tl
      z8clrHPvV1q1>>37&DuiI1|Pb6X7>Eg??0zA^X=ECF961|;zJWd|ABlgzlv+}p{ni0
      z3#zW<&655)o>62yzrU#%<)Z0>o1vp7aZc3=^kxVeimuAVtfCugNqfG$z`#}*TIWle
      zVal4Bm5XJ?^X9wf$Jd{|I}9G#G<AcxYv+Jx>ARXMn~ITQ@J^|kYNi=hA|gLtlqoqw
      z8QNZ|YGxyMK=M=rHKSPu_k5|K_~AlOf`oR4p@ynQvn^n_EWwXU3~g(wrmU9_bBg{<
      z&J`7g&{`=^osg*?G`1(*=DteH9XQWgb)RX$Zb}fP&iG+)m2wBQpKN0cs|_unf%a@i
      zv%E3ad1G!cL>j8Q&7101jZLK}o9Z$7XWI-rf7kwxOUvYKZgPNO@`51lx+Pzf4P#w2
      zefNTO8Zd0PHOd{w7?KwxiAJ~XDdwNjw6!A91{{#isMQTd8jx{dvstnn(IsHBYJB=|
      zm!a$Q^jujj78IQ?J0T&CJAORCgbxqt&N!VbVG>CO-!Z=|HeNd3YX7dYWItVFQ@p2-
      z7{YaW8qGFins#H7C(cTk!#v$7^3jo^6&ObADb7sU>mb%+Bz#z`v2R)9)f03AGNrPf
      zR~A)%?%S&m_83>7k8TeaUA;}{fd^h1`NXK1esrZ!?4vmet@I4gXos@h^p;}7BNep8
      zMn53*PAEF)84$H5sLmv5lL*r&X62(3U4V$Lpqr}ks0UX`$s^8k2~w|3+9#cd*CbNd
      zUBR`wtZ8yOL+)k;D`6=dR={Be99F<)@#rS4-z})O>QF~3=#O=~>rfY|D^G~J^iS#_
      zMNJOh<?t=)kWDp3?|~qvhCLNT>T{o>1?y<ThTx_xjl&H(+@Qk^I^3Ym<q==EhcbsT
      zVmpY_n=3uB_XxdpuwF5l5je?8uyM3iF=mU?l+9t@*l>+$znFbNnk`YG)5>xTdxa$q
      xrlV-rS{2&>==+TEtyl&3KH`1_sZja^Gu+z=7AQKwlhY=5t4#JeCYMCk@^4Pc=kNdk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/event/EventContext.class b/libjava/classpath/lib/javax/naming/event/EventContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8585af593f012a4b6a88e4f9973b7ac450ab9456
      GIT binary patch
      literal 631
      zcwUWBO;5r=5Pd6X75P;BKux?ExY&49ZZvCxsnl5H;Ki&kAtg{uSxA4I2Y-M+$~dJ)
      zOXGpV&hET<GjDe0^XvTsz!gpnYzUl>)Ix=(uO^;9G-*M;Hf3b3sjn&22C@R>h-8ix
      zGo05E^%>m~sIH{`@CEWt>rPtT7uRwgq=0A(6gW83%GW(Lo>PY9Ay9NW(w04G$IJ*7
      zOm&}H-A5_^KyI?427}I0#`b2Kd<q0^>h_90$En%2|M|{pX0y=~$jPuzZ`$Lw4D1V>
      zrAzVkOA)w^wc-i5I^gKqQq_Pa(*>p5zo@U7U(zZVlD?nMv<x{Qkf}GG`3vrJ9`xzf
      z8xs#Gxw6ZsFz<(%d^XwEU|^fyJJC3iV}Cc{=h-hL{35cv^AgI8R2a$fy|+ZFDdYf$
      PDdY&pNrX>rS@Yx@1*4lE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/event/EventDirContext.class b/libjava/classpath/lib/javax/naming/event/EventDirContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..751d508971529f17a549ced07192450d8fb9e9f1
      GIT binary patch
      literal 853
      zcwV(qJx{|h5PcU4f$-557?BW6Wg%kDNXrz#5Q&A!Bo?>|4mhR?d-+og`~ZFw;?hcO
      zlPXdNI@o7Fzq@<3-_P&YH-IY~xo`;QLopJCuf>bfPre*UZT&$x_m#QMw3UT*(IRw8
      zo}UUP-8~Lv%;*;3v?+U*x=lE%kP>A$J2M~tyaS;tlH_(m2vu&SmWE(@VI`B#Wf0DF
      zMAk4Igbn2*DNOuab}(6**Jx9z)sDf%J;56kv3#{E)47X%!bx2MhZ%+N)@u;7Mv0%R
      zz01P_H2t!F)-hh`?rWFfMcKQF<&8=u;kf4A%d!R=m9PN^n{e6sEw=LxJjQm*9ml;1
      Sa<GK7mypgP!lTP;2Zw(+A`Tk>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/event/NamespaceChangeListener.class b/libjava/classpath/lib/javax/naming/event/NamespaceChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..607ab9c49d93007e4f688ea23b055a50500f2af0
      GIT binary patch
      literal 295
      zcwRg8Z`VEs1_nb0UUmj1Mh2~{#InQ+{k+87%)E5{)UwpP5`DkK+|=TN#N<@xjKsY3
      zRG-Y^lGMD^B6bEAMg{?pdi@-rxW0c<R%&tyI|CadgCcfQfE<`+Mh5PDuzJUol++YP
      z24xK&oO)bAY-`OhMh0Gpo}kp+{4$U(I3K7B#ODgmFD*(=b<502Wn_@S;ch*UML<U~
      iGB5)%E70@IK##C9a4>*8#0jOjKr~RE8%Q!S@BjdBeo}=1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/event/NamingEvent.class b/libjava/classpath/lib/javax/naming/event/NamingEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1204e83d8d5d6fd4331c98b7e796a0ddda49c90
      GIT binary patch
      literal 2012
      zcwUWF-%}e^6#j006P6Zhi-5HhX-l$5SF2VnwKXIGLPKIH&5IAZWUsJH*kH0?`zJW#
      zzu>bo9Utn9=-3CR&p!GGb^6`AYgjTnA~TzN&e`*w`<?HeyZrs?#a{qEz*ZIsfh&9V
      zk^RK-?0whUvE-5Te5;|Is<N|430zV+)}ilqEFEla@5#0=Fy5Cv*Y31rukUuf$F+)p
      zSQi*8cfG!Edw$FA9Ln@hlg|@B{9{!GjOOxswY>FpsZyz`+**=EAaE{>Z&o*&t!hO@
      zMKszdZ3NN8NwmCHYODs)q(HvCYkNDg=6%~0xKP)8JB(NX)g^(H|MWmIvD<N$UC&{E
      z0u%L9&4+O&=RNuTAS-j%^<4j+K)X<n5lbt=j(z#WU#i7d{Ez4<n#C50mb;G3BZ+qm
      zOyLUEFT^E|P`9fFE@4zz?;4oETgtj-U^1|77<dyG1<u!9Pc{zsw`Fh3-tI^xP`Axv
      zvw3**!(htab^ELt*JETLs7|KeJ?ym!nLSevfwYp+;i`n^n%$B9mOhGPp;#k3`ca6$
      zT%mYo-8}pI$iT<AEil3gk3vQlL+mNBviMYB=8TdYTh?htrekuL$H{!C)J9}PlwXca
      zV9s&-2e#kd<tfAtO(1C9?fcS`JsxKkUkI4-nUb~IGN}JAWEA(YY@iI@qtUMJv*b9^
      zQSzO2g2k3XuNYWW=&=C3Dfhca(ot_}2G&o#VI}EgQ5TqxDIKUhOz#022AYvFK>`Wp
      zI$;vI{ts<<8-vqban+cPM>@Hw(3s^csL#L%rjbU5URHf7kmL2qV|3uF>ogYe&(S|0
      z@yF@E5%Dh|r7jTdl)7em<t5YWq+YYko#L(nZ`1pcm<-p;=E5KRxqOTnb1HR=S#$9i
      zbLLd~7}tN*mFM|8t#iv{Tp`OUcVFQytE{wv0^i&VYM}^IeI#iu;63i7EX5|Ftwr)k
      zYU?Jgl(rP-G&3!{A2PGJDrDOH4Ku$CC}ec-q2A6262k2S|2^Ca!M8$i&iox8zQiZb
      zhw!ZkJ~zOBhC4Bv&klpXirsuE7Cbi${w5ZD7q?@;*N4F}7W_GN55Uiutu$^a&7ML3
      zJq#AD_*FiOeD3gBU3iK6=AS4f@H6H^r>dOk&{<Q?7@Y@nHWE0QgBzS%U=P=@&olHW
      l`~my_jy(EUgU@?(gvWTQ*-iwE1~bvZm*k|H+|>0Ry#^?EsGR@+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/event/NamingExceptionEvent.class b/libjava/classpath/lib/javax/naming/event/NamingExceptionEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f61df4e1d8db086a607b558965e856c08fab348
      GIT binary patch
      literal 1239
      zcwUWDT~8BH5Is}+v9t@t3Mi;hM4{bQ7JMxl6-%OSAV%ziZ`*Q1my}(ydyD-y{s3Pz
      z@go{zeD+5fXYa0sHVyUR-n}z-&Y77rcYpu+{u96!wlYW%){pHoyJx!giQ^ub;!L>G
      z+*3xq*Al1F@!Wdo%pgga3xmzBbULPT?l+G`OA=-R;X8JxA^d>jUq5?Fpy!0C9nTG<
      z?aGGT>59~keR}u4_GXhXDgJR2maKsahH}>k>21e#<U_)fk~N}ORR|}Nq9<#YbCnx}
      z<c@bJvY5b(4josxr-;?;*o=r8;=oA|uIk7lN61@_EB3l4P2nHd&5j@xEU(4w+T1kT
      zu`?;#PCzJ+Dsq&fVQYcc^;?Wx8QU3Qf<+_fM?%)m)hm|D<MhjihznGN)nU+xd|4Kt
      zsAC1Ud0fo!Dz0=k#t!I}!5zZ#7)pY6=me*>Y_$n%BWD>EZ#jV!uJCybIh0^zP-cb3
      zhU=)H%JXyw6*y@7-dk3xdP&Bi!G!Nb>%_Dy*MF2s$VLk7I^kPb7{$90(y*dDO8x;8
      zSVRhGwld1nc=2=NbCP{Jrg)!b>m~cc_?%Jsio8+%jKW6+nB{$1UDcRqo52q-$5t^4
      z$2_h9>U13oOctINc_sLK12<!OlfU6z%J_uBhdyyyIUg%RJqm~k3AeBmgYU;+&G>@l
      zUsxT+?_R)bef(Xl#rQ`Yoe1wL#y6}daNbx}`CqU$mg1O?;`&W#xQ7ju-Bg&(zr6)A
      Ac>n+a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/event/NamingListener.class b/libjava/classpath/lib/javax/naming/event/NamingListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..894376def0ca21d44be72dff1a12373bf25f6bd3
      GIT binary patch
      literal 238
      zcwRg8Z`VEs1_nb0ZgvJHMh3;K#InQ+{k+87%)E5{)UwpP5`8}~$0xJ6BsDL!h@F9j
      zkwE~YOg|?PsK!4jD>b=<oq>&!K^!bvT9TQg?+Vfh)56Fg3Ng^NB0067Br`uRB%>(5
      zJdcq<N5coFg>c1Sv#d447#X;N^Gl18Q{6IiQW+V9QQf5nG6?7hMh0deW(E3*5$I5M
      P1`ZI5ffGnFF>nC@k3B^3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/event/ObjectChangeListener.class b/libjava/classpath/lib/javax/naming/event/ObjectChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..533600d2627ddd7d3095b3d1070a4fe56cc57075
      GIT binary patch
      literal 243
      zcwRg8Z`VEs1_nb0ZgvJHMh5k)#InQ+{k+87%)E5{)UwpP5`F)qtkmQZ=ZwU>^i-eB
      z;*!+7)FO5U7DfgEkYfEDpg2?wI|CadgCZ6q{J<QTW=00yd?Yhd7#Wl`d~oV=1+lF)
      z!x$O3g7Zs@l2hF>b5a=@B(XV54`d3^4U7!TK+FpC7$eY~><k<r76T`cWMbd~00-Sh
      AAOHXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/Control.class b/libjava/classpath/lib/javax/naming/ldap/Control.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f96c9d5eed342e66b13fab20b6fdc7ef4662de4
      GIT binary patch
      literal 327
      zcwS9V%TB{E5S&d4DSgla<<LJ!E?As7K>#UI)k*|$fRme8l`E4V*F~tG#(@vuqY!Hg
      z1gCw?&dl!T*ZT*6bDSoK2-CHEm2aYv&$?L&Q_B~Tw~e!{NzfsT{a6^uv&C|)DwklN
      zFbQ4Vic(oEjo!(nQG{-OSKJr*<%~d&gdr1coNU~KG+Pz3C=vSe#rzlMTOjPMlq;^8
      zHO*#!a;3BE=z`GGo7`%rD`^OEnlbZ;H*T7$tyLYk37s^1x?*hEZf&J*wYM|)IpoZf
      rvTNS<YKSmJf-dI=tRJDrb^l*IK+Km9aR~o`5yl}N;W)TG37E+@S$;(I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/ControlFactory.class b/libjava/classpath/lib/javax/naming/ldap/ControlFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7248b9932ae591490fd8372fed6f854940311f4e
      GIT binary patch
      literal 2274
      zcwVhl-BTM?6#re=ut`{23N3XD)>4IrP?COFOA|yPg;EQl7KDPIm(3Cumfg(m4N_+u
      zeel8Q*hi-`zWKy!eF@dhIDNty|0wm`-Lxbng%>lEJ$KJJ_jkU}{{7D%e*(CSO%+WH
      z=hpca-%dMx({hSwyTD87oa+eBwI{hDT<?Jjg`r()rEN|svn%VSAsAXlEXNX~49$sw
      z1qLPO7R)%B5z`Ps3&Zhg%Q5ri%@xy|=PS0!&@t^A++N_GCEu$|MXXsq!};l>{KyhO
      z(G*qYZO0efF$iEd@%pRTfkR{r@riB2ED6hXd=(uGJ$1_YfV@;;Fb=a+FOpnyTZG(n
      zSy*;@iu-Fq#(acRu{o>ga8dRsw&MR|aU_`>J=AIxry07XJQa#lt6|bpMyL^oj&2oa
      z7&;r^Yv{q7)Cg1_hW^m!+GeTRu4AcqtFEo)ghzH;(TlfLoM$-MC^`-AppW4g8Jcjm
      zEYEc|O^0lrP7E~6w2BKPeAUQ!*|H0!7spu)Xh>p^LEYkZ*_>TH+WinB8%IBeWT&SX
      zP9+Y?2Nt5Z#K1CA@rs74c$Y?omrABnU>It2;{dDbXJG3+4c9Tu5EX7Hqzok*_@yGl
      zpzr4*WY4=Brel30W4?hA>Gt~!7aBOxC=hw)0}UTa^D&325TL~|j+-iSH0b+xayIvU
      z4HKB8l&-oSjSzKl-x1LUx3Us&O2ch@#L()PU++(NeW2Bv#KADF;TVof|MD7UahIWO
      zjr%jMX9h0%!ERbsaj&}OYRu(bG3l0_!preiF<)H(HCj3DiyDoEI-Jl!VR0#}(Yjx+
      zW!q+v+hc}d`hLwaQLB?hb9d-EXg0()Ls#QrC$Z^lQ3p2cep;?2F4pAYJ&=Efh?HHS
      zrWDm&b=QEr(l!#x32MnU7)~6h9Yd2rv!fWov!%0jd;US`#je+1yPRkj&$(sKFefdk
      z*jc~&Q}UY9OBHX1{53<7-xzvV>Fp{}Ml_P#Mf5j1G$BsUI8oplsa{7bowQJiXdC1w
      zjXH-o?Zi`vo<NK^odmtlIT>J`l1A9C#FMCxFLrcQ@WykT&9jU$xQEWc-*JvoT;*nz
      zp}!E*mHZBRb!87d&(Oa#^c0C*T<l0!a9LOAQNgwRGu&7j>PYV*n~CgTSdUaNnrYEn
      zo?<Mc>S_hIp40k>>d|BccQP?OMz-|Wlf@lq^pDbCS(KM%e))GV`Gnm265ru_d>qgp
      zFc;7t@ku~`!Xkwx16W2EJ;xx&tqnN}^Cs=w3G`tSgSdrDn36L{_wL|6X6W`^tP*Mo
      z_pnW<-(sGuERcm|LjQu04Ll;<pJ4@QUJcWPC6XgJeTvV5)IY}Oq%Vu}h)};Gf7<X6
      zoK6Z^8^;PEMM#oDfp{&1bOt6pRkGcVB56m-gDBPrIY!oAlvLub6E4F>P%!&Hl+9ce
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/ExtendedRequest.class b/libjava/classpath/lib/javax/naming/ldap/ExtendedRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7d13c72e3268bc78eb874444a93a7f4ff62eadc
      GIT binary patch
      literal 382
      zcwTi-O-sW-6nxvJM(anb6i;5fr56{^dMb?&5CsEXdfILtWy`vW$wq=d&4WL{A0<vw
      zu&8)g-tL>3H~Z$}^X;98F6ktso}lx!dQpvZ>dCm3w3#Yo+<0~wXAk^bbLB${1dUso
      zv<jU2<(f6RJAx)%*W@zg(kN?Q)zY${!HRt{2OLdrx4P7qu(%R50vtP?!{Sld8iF92
      zE@pyGb;-)}*1sxpR{_6{{?1v<l4LXfzu#}vFdW8>=E561LmCM>`=Pq)$~Oh{G_Om|
      uH>TZX@+*ytR*TgI^>GGBvX6K|+NCz8JsNg(pALW?0u4})aK^az==cj;NoiyN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/ExtendedResponse.class b/libjava/classpath/lib/javax/naming/ldap/ExtendedResponse.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4abf7ff786451753a5c7ab926849420ae62e0c9f
      GIT binary patch
      literal 231
      zcwSvkI|{-;5Pj<}e$hfNU=<q|YdbN5AP5F*tTxFIR@RNgD8ZvycmNM2&e{kT)4cz@
      z-j64M8G0Tn0^_5)sZv^X(l(VQQD+&H1=)m>9bL|uy^x2Rz`*IGQ7qa<M~Vv%4T0eo
      z)tL+_*UIR-iVO+VQ!3U=rv1t0=L?IRJLUp?rUM&i+_6{Y%7&UhIV=R)VRp@9T4@(D
      f`rk2iQCuoe<*V}(6&~iH2{*8XHX{NZhok!eBK$j9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/HasControls.class b/libjava/classpath/lib/javax/naming/ldap/HasControls.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2037b418b849ab09d24b763d466d0fb917f8d5f3
      GIT binary patch
      literal 233
      zcwRg8Z`VEs1_nb09(D#MMh4le#InQ+{k+87%)E5{oRq`@eUHRq=lr~qqWqj<b_Nzk
      z1_6)~{hUOgynj+wYH|r919y6A2}}(mgPewDv=62^PzBbE3|y`i$*Bb;nfZA@6FC_f
      zWKb0Qfho8Wpz`4S(xT*4x6GVWpzTP`(F5sYV`N}tU}gXTMxg6h8Q6e)b|8-hNOJ%&
      K7m&@wzzqPlO+IV@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/InitialLdapContext.class b/libjava/classpath/lib/javax/naming/ldap/InitialLdapContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..413245204b306eab020d583e1f86a6f1f6428424
      GIT binary patch
      literal 2605
      zcwUWFTUQ%p6y0Agq$Fdp&{Dv(1zIqfKth!&8lY;R5}Ss$)KI|Nkc@P?l1ZFQDm>|n
      z{s{kouhj=wwQKeAqHFo1T%I#CxiJIj1Nm;}?6c3==M4Y;_ty&m*YRBlK7nhGl_$!6
      zN>?hHzLzSOlv*mQYo?}@bF|M?byM9pLkI}Ox-3hYp%%@manLkh(TtXLpTH$IZU>-1
      z-=ao-%L4vbydV%>-7l&&Q>*Ir5F!H6F892(v`hp7nQBQ5L*T505C#P1V>$LnHB7CX
      zT2tzeOl7yMrgw5~8ce~cmeU+|AgAeSzERm#jR))?Fqo?rm2yEbG(J0*0rQbo7nt@y
      za~CTu(7&PW>5ADf$ale$*`h2j_h1)>9~U{j5h4)Vju%206BzOU3u6>fwmieT%Mz|&
      zTp(C1S9KzAJ{GqbloblHzWbPTOP|4{z&Kwg?dVC4o-EqYdDY2`;jT%T!ZhhrYnbh9
      zI<ee09syabn1ncF%7&#E81dGOb&06@6V0gV6;&t03!ZiY64P`FM)E{Yt0&c?azLm8
      z!`%uW)S4=fo+uPi*i+3F^?RjJHd%2?ZgXE?!YS^Foo*$5L&696P~coQiiI$89HHqL
      z!bj9{-E&ZN+Rd?PO+*+Ah=#D}Xxiamx=quF3Wy?C!ZR@Oq(#+BYH7Wu8j3w~*_cP7
      ztB&1$^@oO9Zwh~sO}$3rty&eyNO%wLM-arSgir9PK*+E$1g^e8AR1JvWyWsPb_-mN
      z#ZPMjj(1za8nU*(gVyxt=e&d*KMz^YHsj9sdlJ_9J))~WX7#$M=tXLsrP!&n+@nPp
      z_e%-)u|c?0hIT&v^pUl56u5GFi~^%<OW4FiO0Mpi+}9Fz_&K~$Z5T!Mmd0&=(ftWa
      zavV&MPJa3e(!UGVjJ_}Mp`T6xI)x$8?uKOngk&L(@YWx+_2F&H!AHM~=))4u(N40>
      zFo+>q8Ek-D+hFG{&kGjlpY#%-bx!slVOZp6{>EhDADn%T(XAuAlm8u!%d!f1YW
      zaAM{VS2yL^L%hq;{Z{lOBJ`W#_M%9)=(I-hvKYf{Op?G;xPxh0W!yyy_bi689n)dR
      zy98z|)^nI8L?0o=$$Exj%(XINtLwD$aX-7tQ=uEK!<2l8`5fgCd5#6j;p3Ny*9iW`
      z$21+6UM5~4__S5LF)ABSAo`mG_>kyrVFcS4C;6D_unp=^4buHGZc<ReqvRrS(;*R&
      zkMLRI8CHB~hw8JkP&!~EtqMe_a-UnUG%+sNdFzFgX4q%=Lby=(I+PE$l+X3Xy5q*G
      zcw(*h#=7gqs(WJ5`1LH^19#~TPAFZ0T84?xJi1^r$6&X7I6gT)(facV(6bKo&Kp2~
      R<%a%+)?a(D{>Jk8_J6a5G`#=-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/LdapContext.class b/libjava/classpath/lib/javax/naming/ldap/LdapContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0507a8ec0b9660dbacd7f4879375e08d439594f1
      GIT binary patch
      literal 779
      zcwT){%TB^T6uqNpd5H4xg`mbAY}&XcE=+}lq@f8AHZIKAj-;ec>vT~3H5Yz>A7#9K
      zL>?t9?%d?eIp;ode}2Ed0pJ!I3hWTLoYHqX*EoH3_(XGU>T3o*y2mA(O9e6nN+Csa
      zDgK+!Q)VH$PvB-nXgdNwJn^YLI3f`fDC=f_G%$^)?!7)T2ffaaK*d<t4W&SFn?MmI
      zfuvlHsXJp?C=jTJG&QzYUua~mTIei17oE|cahutu&jgi@#|iYBMtYb|!W*!+84F~)
      zwUrb2*ayRg@}0TG{LnX0phTdtqUuNKpF*I(*+(y$z+wdMnvWZ*=yC5GJ6Kvd7SG`>
      zJ<f5V1g^Jxjd7t9CiR$}zyX1)W^0=cRRNR9P8O=rDg{;}Fy71p%@4hquvph|ap2NY
      z|7utj?}NZD#vVou6v$%E;o0p#9u&N(11KVLh)4$W5h7)%tRYo6UPDgcbPYL6an4hm
      M+A4x^5p`1k14|0gNB{r;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/LdapReferralException.class b/libjava/classpath/lib/javax/naming/ldap/LdapReferralException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d53ba7e92d25fe1437edf153881927af04052e0
      GIT binary patch
      literal 920
      zcwU{8&rZTX5XQgN0$LOl1@RxolYr62c+dpoLNuD72QgecEwJL6+LE#uUdxk-2Oq$P
      zGR~H21WRJ<VP|&cH{VRR+xL&xHvk9NieZXj=Yc=*f#vW=>2xf+&AV2OmTPe*JdfL_
      zgO=zj={hkO47m~b7sC)OOGl~-!*ssTU@)p~TbP)}>>MJ9G9+u#5m)`krtoff(-sV=
      zn%m-bgL_i%gP@`AWsjjy`{QsWhIHPCEt?ZrR~{9V3Ju+RLHABD#KoXXSw5UJ^&6*P
      zN2o9Hs_Q5*Pz>4p*c?HIc=LOLUJNS?8zbD6Z+@K4UNB={N!vQ-y?do!w=_|Hwk|s~
      zZ{MRMIS8#S7mJn2^%vp&ZbOb$7kREdS?h9g|9|P3b+_-e#F^CJdoA><?(0%x8+4nX
      zp9l<ni)bIC-62_~qs14@Jd-m8lU9=~a75@a;^fT@A+qyiwLl^es1T{yXmR%i$#I1;
      wkte=FW=I7J+FL{ljDCkDER$B+*Ja4~ku1^Q5v=;EYkp=uB(p*OrtjrG0Yg;i3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/StartTlsRequest.class b/libjava/classpath/lib/javax/naming/ldap/StartTlsRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..028f72bb899e326a99efaca55f741484ad4ed779
      GIT binary patch
      literal 1676
      zcwU86&v)BI5dPM&En`%-xM|adLKPQ?-6V2ShZN#8(4;9CLK5oKko2^X*0zc&8EF;F
      zp8{uYT*{>d`W|rNz_I^JuRLaD;U-Sr>p{D-v-8b-^JDeTzrX(hU;%p?QVdfM`62ID
      zJ^sk?I#t)^y=qhPK<>KXJ@IWMLa8Cma88+3T~0RJ2M>is+U%*|jlL9~E$jqL$WR0h
      zcUvL|9pAg(xWm9cV>q+!d!gi>Y;iXdnOi@l^FL2qdciQZtxSrWF9SAZK<?`~oMpJU
      zVAjkfbHQAsZ((t1$-FT?U%SbWU2!}|t`fdnX)&bNeOu%)hH)L|@CL)#O~(^k(W3(q
      z?D7Lws1UwIyg0F=bD~Vkt`jm`+k9nN>I|8Vkc#YhxpI;&g{12Z&mtmroFsWKS01cU
      z5>_C%6fa8^_NW+izfwNw=fPT|Q8|UqD4GK1H~N<7Nh))wVT$3(G1OMP4Nda6hIci*
      zbF8<6m^$9WG?kPR<t|m@!ckg-_SY->8Y&DEqu8~`acvRgFvD=(q3nZz%niq0HooJb
      zQOcu?In@($#BY*rrKK$9bsEqcM1l8ulqJL5X{IMsNpKpKMe1*9);NfyA^JUHAc#OI
      zhb5Z6n8OD;KExzLPWl6E9tP&}Si!1>TU5J_7ga5nhhdM)ZnY_bL&p+#xh4JJdmSI)
      zV`{ML``<*poxneIC@fWK`Y6qHh5nyqBptWfkRssZp#D16a7V*Bu{?RJV*_^?v@Q>~
      zL|?`uy{{0T>S%!8PTGsr$Hy+|i-t{x(yPZMhb@{n%a2^!o0dk~@ob})Bx1Dvz=&O#
      z0~e-pVU9cihLl5{$<d2S#yh2kJL|XGp`csVpo1&Cj_fK^MfkK*(AYNpD4^Op>H&_A
      zL@^ZvQ=lr)mq7}X(2yhfHTsLCkjG`{I5RvKkS3X)Jgr62)M#h4XRbfR`Cnp_3$*5G
      z2X!%x+qg)QJ}|-rF44}&>15(yE^#ncEIb~<v$3ji1Ufc^zKJUdbT)ye*eLSLBgoVc
      z`4--$(^ZmH4o2+bIg!fJzCZIfYQ@6L6O?|$^=B~lo}s)~q^xF1S1s1mQc%nLv^>Gh
      zr&#{8$bLnAIdeJl8*VfFfP#`fVfYK5KUOY^Unr{~w-VJAu&A0gF%g)jeGzTc(V>y-
      vVh2vldv(Al;jN_YxC2Vsq1;ljbPr9cijsCoN|TqXxQ`a)!|+uc^XvZrBBYEI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/StartTlsResponse.class b/libjava/classpath/lib/javax/naming/ldap/StartTlsResponse.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c62677bdb232b74112e40d4ab71206060f235e1
      GIT binary patch
      literal 995
      zcwU85%Wl&^6upx;NgL7!X&a!FM<0Mwf!#D!Sfm0$NJXlM2wbx1YGPl~DXtxPCMazA
      z2R3{KtdLmn0elqVj_amXieNFmGxwfz?wN;w{r>S204lJVgA{|cWB!4U?0}z$pl|yg
      zAJ~rKkvj0@8<c}EkeCC5!Mw)VJ||G8cZ{yeLH4ig=15`Sp?Ah6s>Dcezl)I+Veq!~
      zf&trSFw>y2;(_XNe~1~i-TCtQ%Kj$?>5hgJ+vgn}6_I{@3g#G;Dpu91Sru!CMrEf~
      zv$nUks*f3DcSRu76XKiYE(4<xdYFeaEEZrMt}>WwivV8@PkI;~@ScylMd*?*PVQ)(
      zBn@>WB!i9i{|~0lAk#;s-7cEt%YLaRm79S}PP}-RByW}vpVKa+F6fS4Lkx~Ea)v@7
      z^(~o)mxc6x7KrgOl!^=?9i@0DFk-N7p7}&&OX=H_keE9iU_VrXD>AT>I6bF0PTN7L
      z?}i-bn<EzoiWV{l_o!`bMuc{&Gp;b$oouT$LiatYJ?^S7`dI&GlZ@+!`eo#ua2UC`
      zC-lKDO&+hM6^vD&8>Nwf6f8pyrf5D*4>$#RxB&&28LwxlX6U=7Op!8Gii~1r^E)hj
      ziy=$&%~J$;O3-IeqFLb-1lQm?MMk2_iNK>oAYGjOI;LmiRO<pYJ*M7-m4x~*p{Cd*
      t^YsO0>Xb>p*Dbgm$2)L0j;pXnh;_mk6gT3`{fW$jc&FnG4Kvm({{eM6-n;++
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotification.class b/libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotification.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b329c2bf9a5f95ef06dcba06f2b6755e66f3c75e
      GIT binary patch
      literal 329
      zcwTjoPfG(a5XIlD*4SGATzXR|p1K#8o;^y%L#fcxlc$)SmXw$*NtFF;J@^6qP-3EB
      zk>Y8X$8X-un~%@!JAg6H1qwpBk#DlCtbEaSU71=o)zSuMw9=95nTvX*m5kb1fkVPY
      z#w#Ne`}n+J6$Oq6*ZU@uHnOd`o^xoN4J>d>xZ39)WVmxSdS?QmzvejS6?-ppI~bKu
      z)7`>F^l9w&2b;8tn|u~wI4Y-qjA!5Fmq-)6g?sgi@3mpV<v#&$vPnuqI6#38M0!(^
      SGI!BK&VGV^QV6G6$JrM+>0iqL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotificationEvent.class b/libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotificationEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..893585b45e229104bae26aa52b0c3f48fa4ff57a
      GIT binary patch
      literal 1113
      zcwUuL*>2N76g}f?CUF-+TcB(WYZky%NR=Q6Ds>Z8RK(J}Pwb(c${knsB;vC`0wH+l
      zYbE}G7k+_1KwOWlPzi*bhncze&OPUzJIl9UUylJSqgjE)aQ}dh_&ZneL#g)Mz~@Kq
      zu8PAzdQuC2C)Dz-^thIx+87C?D=0F|Cm46AW#F3Ni@|~LG{bBxBFTfkh+@j$eZJ1X
      zwi%|@LKSPSbe{)9QTp+7`}^j}$`(Ue5xplEI=$Q~x&(V7mDEoeR+|Rr2An{ti0%YT
      ztv*9>E%Zed1<X2daF%-e2WP8)1`OvMR8eD?=}9GahKB<Yz2Sp^<kx$lM{RRzp8PCW
      z)cZ1Kc#vO^IZNuV5Jz4@`j-x>y(jc(2*bT*D}M!IuzeXHaqaChtTgi@dotESiHOdk
      zhHGe4u*9%DG2Fp*++dhfr}kb6Psow*86Hj`C_Sv?3hf{xCxZO=aYGE%*Wobo#HLKH
      zt?|El=ChzdkD)+c$igB@D3ez)o=t;Z2-yXSIhdk(n!J}3Px5Q+&S%WD?|wr4g8|IZ
      zJZ-if5z%7;cQH@iQksqhoCl0`0T+oZv62E7*^9W8(Yv%Jd!_bA)ZdSZ%O?2D5ISi>
      uM#yj(S2FM_Wm~k`o%R=8weUw+)x_7Sw++Lwkmij=*|>>Yru1!tx$_(BS|p4B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotificationListener.class b/libjava/classpath/lib/javax/naming/ldap/UnsolicitedNotificationListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19234b50e91e3ab7f4ee6e8c1a9d4ecc219dc624
      GIT binary patch
      literal 287
      zcwUW=y$%6U5QWe9TUMj+0ulv{n~hRUB_xFYx;tbx>#lHZJe$G;cqnmKBB7#~$(-Vx
      z`DX5q>kUAJW`GhQN_4I-%Idw?ol0YUP%C@NQZeE<o@Gw9VziUYPUYm-@-aY#&?;;y
      z)!sATBy3!O8lm$Q#yMN3W-swJ6WaD8bHRos=a?|;P5&kt7r~?cnh-9t^U?4`QYLhN
      afDeiVo{~`ZRrOCGe@TFPF`?mm3E>kz1X%$9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/DirObjectFactory.class b/libjava/classpath/lib/javax/naming/spi/DirObjectFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f81cb27190e7b964816e34bfe8d010af41b7ac39
      GIT binary patch
      literal 544
      zcwVhh%}N6?7@Vxt*!ouyuYx!2!Qi<fh*~NXJ@g5(F{~-uY)QVA^$B|LjXd}OK9u;i
      z6{XvocnD19oB6(h`S^T$2XKzIL?UoJ($Bh5UXPv6RGc_<<HAEavW9xvP!V1v8UpQ^
      zOy!z2i=o7Zz|o3%$tkd(Sz1tcK9csv3QSK1^<~|`(xQ7kwl(Uy@MNoRp(@Gcs;}b{
      z=`^oPA6>BX^XiHyxU?i2yQix+1zNY2u@iEIj}lt~2fv!1i9mDcGOwu&oc;B`vtM*N
      ymw(ScEXrVP&*dELu-@C*%)uoItnpjt&IK1Kv55pt{xz6wVVhBc9mczJwD$$K|Eo*@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/DirStateFactory$Result.class b/libjava/classpath/lib/javax/naming/spi/DirStateFactory$Result.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94051c10e694cdb4da21f259688ef7880ed87c12
      GIT binary patch
      literal 822
      zcwUWC+e*Vg5Ix&gYihJw>-~<3O%;Q0f_J=tQWR7QK5puwTVf)~M)a=~6u}2Sz>gAV
      z)2dhtmcZ=n&YUx64tf80eFLzJ=`<1y^HqM!?`)4>OYhPSZ=}5|gHy$o*yk1H2lull
      zB8*&>Mv9?FH`^|!&SR%4DvBZLJ5`2Usj;%k(BVgFTd5#qm?`}lb0Gr}liRv3ok)q0
      z0PSnilWK!urSO-p1qQ3kklOJtL<UK8nJ~~z0t;5z0BJYThIXChOr+7lkS$4197WfT
      z2+p|U3cZG3;cl4+Qs3*3DRm`j1*_DeQ?!V2Db$xi`GVEVoGxnlk<Ktzuv*xVA#>_S
      zK}GCKEiK=mU`aDDm<OIGf*qHKp$OBMWSII-JDFcok7;r!Nk2$}J~AxM$SyjQR56gD
      z*h#l@de?o~;tR~;!ZRg{&**)O0euv6NKss;xJj@rbYmNNdYP)h(2oHi&h!`-XL?YA
      z@<9yM$Jli0T3hi6*@tiP8elIbG;0lYLWW_CGy(TEf)AU36Bv!-7{=+$#PA7HY<vPI
      C=(Q#Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/DirStateFactory.class b/libjava/classpath/lib/javax/naming/spi/DirStateFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98be8730539775b6f8c21170538d2d2f96b01187
      GIT binary patch
      literal 678
      zcwVhi!A=4}41Gmp1rbp>YU05}<>16K#zaw~3DHFSfnk~8kY$$4cFp=T9{daset;ik
      zENG0b2R(3T+P-;xZ6|$wdwv0Mh(>?{VSA+Sb*7viTQ^k6#Husvd#u@XbjY!P2v8){
      zrz{m|p<MSzCgcDm!q%_a?}dcg(C`eojZdu`5FYosd7)PKhsc#4n;g`R9h>Zvs8Y6(
      zy3olT>wc7{4y-q`-s*(e+kVO>Y3+CaT5;#bBx%GgLghRQ&4g|2k^swu&HQlUz9@up
      z&kmjD)EmOnymvclHjn4NUoTF5XgW5Mi5ofE!BmG(y>!m_cBGTU$S<rDcK_LcQ2Geu
      pHV6x1i*jis_Y+_V1(YQ#3R*!`q5@XLYO`n+b@3H>TNB$r`5n|e)$9NO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/DirectoryManager.class b/libjava/classpath/lib/javax/naming/spi/DirectoryManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22690420c96c234159b14e7695d3c455ec04a6a7
      GIT binary patch
      literal 5499
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/InitialContextFactory.class b/libjava/classpath/lib/javax/naming/spi/InitialContextFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..643c2803e80590fffb4d8c67433e62da9b8653c1
      GIT binary patch
      literal 345
      zcwT*v&1%9>5QWdA*3_R$yDhH83VLyE=|(CFQWrkK7%u6R>y0FnlD=9OeE=Uyya}Zc
      zkj`e#4ByP*oX+1r0H)}L2nd5ce{!K5AB>Atb~I|`j2O1_#EC9s!I32CSBM7Tp=6b1
      z4{mmQ9SPwv)>1zpjECzA%*9x><m^LuXZ7rPU9<YdXN2}!5$U6t#AP8`gno^Cui76%
      zXl+gGSn^a8rdO?AMx)n%?6ygsMtWhafADlQ?W8<y5(qaai+uQ7G!Y>5Q^W7?(Do`o
      J$LnsT?k}K5W6S^m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/InitialContextFactoryBuilder.class b/libjava/classpath/lib/javax/naming/spi/InitialContextFactoryBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd2b6a77296b977938e3d069ff9b6f8ab5f8f0b9
      GIT binary patch
      literal 405
      zcwUuI%Sr=55UgHf*2D+i_2NwfI(UvK7z_r29`Xg9v56DL*)ZEH>#uq61N<m)b`OFO
      z#Pp@Bo35&+KEK{S09@iAM@Beb@+;RS@QVuzQ?8tu1gDPus0b>xj@fDv-)<}CpCsn!
      z5DpuP@tp1-=S#6lII>Y#Wi6F(b2@D)l{#<kxqMchdl{Zh|K~j<^zUjbD|JOEbMy$u
      zznBkg`#B->W^NH!t0;ugTJx*H;CiD6W<?dPjGa%CCx1nB(P(xFge^2hDY0#Iks(i0
      RC+&C8PbkA~!h0>+{{}r{d)xp3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/NamingManager.class b/libjava/classpath/lib/javax/naming/spi/NamingManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0da69412acacfbb0a7d4119f6a26a3c265c69d3
      GIT binary patch
      literal 9601
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/ObjectFactory.class b/libjava/classpath/lib/javax/naming/spi/ObjectFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c51bf4fa211b4c4c41ee2dfdb6f3e98c12fe1d31
      GIT binary patch
      literal 430
      zcwViL!A`<J5QhJ$Kn0b6-aRV^H=Z$G2m}%W2cBS9H)ToLl6Gq9t9jr7d?>?K2n38b
      z=k(7%UuOQy*Z1cJz%!a50>b^0-?>nZSJp);TU#}qFO8M~Ye~|N5EVkJWK_%^*bNEo
      z$jDBQTqf+aA-p||&%y5aWc`F!=FI9PPE4@}RW3GGL(Ue$^VoDBe=j67`h_-Yv5Ct<
      z)CqS-<}e}DXEt&ydFq2L{yW%9r}O$pxLJ~?+6-*$@7|ug@~OmY1i}T%BLCScY6uYe
      SuHyYmG`tFM<@NQCy4eD@41t&c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/ObjectFactoryBuilder.class b/libjava/classpath/lib/javax/naming/spi/ObjectFactoryBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0204736c061781989e82cbb7d47bf65cbea3ff4f
      GIT binary patch
      literal 401
      zcwRg8Z`VEs1_nb0K6VBsMh4Za#InQ+{k+87%)E5{;(|<l|D>$c<Px{U<dXcNN~hAy
      zoRrieb_Nzk1_6*#{hUOgI*1xZ2I1tQ)Wnih6fKMlo*F*rO06Lxr6rj;`W}hJ86}BH
      zIjPo~KKO07W@O-Utw>HSD9OyvD`sclWMq&*(cuTC;7S-7ID<3O^Abx+i&7aGe2H|1
      zjh2=jQBDcYFD*(=b<4~F8ZL<~nDjtqurV?)GB7iM03$HeSQ*$Dm>AfBJQkoh2Ll(7
      N#l*l3Wb=Soya4~$cpv}(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/ResolveResult.class b/libjava/classpath/lib/javax/naming/spi/ResolveResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0782d68221ab4e8ceef0c691f60addaaf67e564
      GIT binary patch
      literal 1913
      zcwU86OK%fb7(F+3?8Gs)2~G;3G!H^?oDi31OG9bXK%^84qy(Iz3W<q*6()>lEPEUQ
      z8}@XMDj~K!#HOf3h(>BzwNkhIpQ`8HnGBx6p$pG_%=yka-^26IzrX(h;5ZhO=n?pA
      z!`L+Llx(AJ+UuoO!z?Y!mSb&7E^W(AA})|qn381>aAj>nR(YEc$m?6vDXqw+X;|hx
      zW6hETxAd_hn=R9^uPt2=5I+d)S#a!@YuIkZu-dZs?Yrmi9v}SeuE0Rk)2oqMV6Yt3
      znqzEJ)(z99!OKRS68p*_)9R9_#5qFT^8&HLR7D`Z;M8OaG33+8VXr{8Y})d2yS^ry
      zS3RqPWv5D~2L1BvU&h^AW=mkK{PDt2@Mz&fvmG}pZj+I7Q<WqR3QW9zv1D0t-LU4H
      z>+QO<-HUgsvf;8;DU2ZB5B4ODH1;GhCNL6mvEbAjPRn$qN;!p54}Lg}46*|_f}=@%
      zF0l85>ZDP?6bob2Y7yHzCc9KLiD`lH(EXCV$wt@I>%g@@-%bYw`h!k|Tj|RP6n3jw
      zSX(tPw=Uh~aN~yx-HZxkG_+%k@;)#!NSw_m<#3^^ysGAxX?%r~0=-qsvDIYQ-t-xb
      zhO}!T9tA&_#y8;jC0ONo%L;OhP<KsWe}q#v+U9VmoV(2wb8ba)9_mtB1&lfBZED47
      zH>+~d)Po-y<yjSmaZXZ<zg|8^kVGH%{rph$AceS^NABZl(75(<$Nv-&gFKz&D!BF*
      zUt`}(9WumciYu^0=p_tum-ayT1pB$N893k*Jfvid>nTMr{TGrme`8=9BiCQ!(?5&T
      zTR2qQ#wbtYTbL-m!o<uQO!i>)DdMXy$uWr%PN3-PPS85ALfvcBtRRn7D*Z^*Pek3I
      z-J9Can5XIcQM(x?DfI3bX33^JmVA%bc~<zW^5}V*p_}*V4pI=f#ped=bDNd2I%Kke
      zOg50oQYNcqzToHBlPLwYWSYMQ<OzM*?pntax&hJPL($;-U4u{Iv>&`kv}#zUIQ<4^
      z1m5CEC_k^A59s}8%{1(xgS;|0%WRZ^uLI7jK4(s4L)y8HrU3(t*=brvSLq?wU&!*P
      zLm?L^<N}3n@!c*8lmDaegzGc1yx3J?Rx8Zodtc$auaMA9kJjTAYq{0Il?b>JSkQeI
      JxS(S${s+Exf*1e*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/Resolver.class b/libjava/classpath/lib/javax/naming/spi/Resolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffe96db71ffeb759596a925137e0c4ccb5650b07
      GIT binary patch
      literal 582
      zcwVJZ%Sr<=6g_vW9Xs0Et>6b#1P9k6Zc4iv6dcz|970J+lagf0e47hDz>gB|jQFT1
      z44Tb-oO4f3a-Uxwp8%X=93vteEyYIEsSzt>7O7vW^hSECH`2xE5ylOiYQfm`!%~)k
      zFmi8%TRYXld%}E@Z;4!qmCW+b!IqYt<iFj-q0%8EB(u7d>!7UhF$RR=@3I^|D1<?w
      z7Dj~1Ny2>>4;QD~q^UJQ)*-v>Vs1A1B3A^*ygxniu7l3Mj3$MxTq);D^S=z=w|Umg
      k^$CO>G$-Qa?xK$fF;_kA?;&aW*l&@8ACMvEqc%Hy1wF~HzW@LL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/naming/spi/StateFactory.class b/libjava/classpath/lib/javax/naming/spi/StateFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ce19e91b59e431bbd31d2317c7f9434d32c1d01
      GIT binary patch
      literal 434
      zcwViLu};H442FM)($E4G-C>6goS2IkKvWD>8Nv&=sg+)p-c^Z%!mBax06Y}xr9udT
      z*zn@t_NU*L-#=d809;`ZBO;uw_?c_tcx_!~%8fONvdV;0^~Fn!4&kIhOwM8cIA2Ms
      zgh3{{<DUGjbqm7ceA=eQ(;wC|UQ4TW=bcLZ37Sf6ZXUQ?D$jEnU;H*C^zZ9bHfp^q
      zWAq58?G+(?A%tFHGsjvLLRkLyh1a9e%^z1LzA93g*gWhVe*foXLw5;;Jv2e#z5D1Q
      ULL912=pUdTRD{Ezk9O*K3nAEpPXGV_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ServerSocketFactory.class b/libjava/classpath/lib/javax/net/ServerSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e568d1ada6ceea144efb23541439544f95bacd58
      GIT binary patch
      literal 1235
      zcwU85TTc@~6#fR5Zds~OKrA3vxonG4z-xjrF(64}117~1O?()(LtR*Qo7pMCzrq(G
      zlBiEU_@j(xw$L`V!X`Us&N<&X-?{Am{`2iSfMq;4(ZMjb&yV<V))y*U5b{XKLf{+-
      zwZR<~$P*I=L!X9ZJ?@vYTf6(hQ4FycuJ5Xs44rnm$Y87mC1Ifx-3fFd#?YI0eX&_R
      z+!b=0?|OovKOZ>UD{|>-{nBWtPj1LCk-xTxRR*gp)VkQ?RgcK0?DP!*aU>bW%YJpS
      zR10bYvM_)<CI%UXqW(hRRHds<C}HiAz!2^-^bqx18B~N+Ck%6TzA=r0lCED~O}CmX
      z3}e*92u-5lTl07rCU6g94CY=SH~AsWVD^TLQB;(0B7sRvQANJ^obyA)eTU))?Phds
      zL8~V2Gt4xGROG(vdA#iyrqOL;j$xpY<@K>6D#{If1{UhwwNywBhauTgCxIO)xDw4&
      z48vDN{<|@~+d5llB70Sb8)S1^b&rW<hWQ5BJ3p*eDuGm@v_+fY8dC>bSVA|$h@JaC
      z>8PE%#=A`3hBHUUt5Qh{>hGF13PDvmV#C!RcB;*!7j>jD1^Q{ApBN1Nvyg6*_J|}S
      z*_Am%{0m(=V9{xj1l9<;jvl%tY9NxgNTzWcy_X3pgw)u{{=ReczsdYUGINepe&H*|
      ze}bLvTwwbB8D>tS4D@MZ_L5_SiU109Zj)Z5j63B0fD}GPoI`|*A&Gg|r1c_ByqT!n
      z1w0_%L$VsAEk<>$kVP}ZFR(;>D?jSJ#3K7aQy=kKABN7P2T;!xSsu4oo-|wNeH!I{
      F_7^V0D$oD`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/SocketFactory.class b/libjava/classpath/lib/javax/net/SocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..968ce789554e546672ea5a9826c8240c9568d2bc
      GIT binary patch
      literal 1351
      zcwUuLYflqF6g>l_Tb3#mkf$J^KwE?be2bb89<i|jlk(7*m<-#YE-bUn?o{Ak;TIv2
      zsGt1ck22ofmTs{nh9=#ad+wQY?wy<Y{pZ_v0CQN-(8SQY$3OEULkeZ&9CKf&Rc<QB
      zJ=PFm=<t(<&1Jz@-`NwUVu-%5q@`XlG$&JA43Q-#FLX4cHI5cU8QQa!6l<k}9pP^9
      z9a}JTW*w8;Timt$xB^DhC(C2#&t74_z@Qg|S{A#!WRvY+GIb?2h6F=jL6&CnW%{MG
      zjxOBN(9O^jbmIxL<XY<3$W=CR^q`lajqKjKPEok(m|-HB4SUZi*OG;WR6V4lAA=eO
      zsP8bhWOL7p<2HsEv|Yzt;|J97_<t0GQ-R=}I7To^6-jZJk)Gnxr1Ra$T6TFHG{U<K
      z!{NnjacS8$|K|e6(5hjAp({MUa%764vK-04Jby-YwNb)kNYqux5I0@Hl_;B#>P2DU
      zWc=w>9Xt)jg}3Dxne}Q$!yLn8Xs{{0QnBc`O61pR4&3Kd$vS4y+ITRT`T{gOVi>BT
      zn{r<|hw`=KshZATHqr{EGW1!@=UqWvH?UwxC$B+Xyo!7c4L#?STvM!C!MnON<r$wH
      z83jE|_&<8T{)41gqv!#xjMkR)DPmt}(*&KqI<3GmQCHALyLg#I>kV2{xQX_PK#`a}
      zccio944rS%zmQ0up)Wi26~jNlPPWf6_Wl(2P67pbP#CXx3{Vlk27Nav-X_I&l>LA{
      zd<;B$h!;fylSoq3ju`o-gL0>EpK{ZLMktyI>X;|QcZi*1mi*>_RC|dA_<l_vv2q^~
      hU&+6K>44QlN)H3<aRcm01q&Pl<Y_HJ|7U^Y^S`e9Nt6Hp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/VanillaServerSocketFactory.class b/libjava/classpath/lib/javax/net/VanillaServerSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13e4e43ba894a5c8ec009433d2da85db9fa78ff3
      GIT binary patch
      literal 1067
      zcwUW?Z)?*~6vm&^rA?d6O;=aly1A-zrUNb0S2`7jSPT{wDg|Gr=|!)L$w;#?zm>iU
      zDEI;VP~y2aAuIhe3?%2=ljr=Nb8qtJ@6X==4$wAHBJ6(g&b;$ZD3Z>=3uO>^eG#9D
      zxF7k)BI$a562;$47=-N$<s1p2@=S&@c|llm+5>{|G8zdBOQ<cQj0$13Cqwb}^y^T>
      zAG~282y4B__kw{JOSR66M)FyX346W&8SIcDek{C1Oui&+IBnfOGc7k*ug-mOlE^3=
      zn^+^%wNOSK_g(SE#C5{@T!Mu<YJ^S4U1XsYH`S&$csDFlhj9|cJQlfxrsH1Pc}sQf
      z5Xwr&t>)14kAvtF;eaa_jV?cqMx$7a$A_2k?ke7H=DVPqUF@L@M|pwJm@nkB>qn=t
      zFS=5Fsh!2&<)P|F3;Z)cU1fb&cx`g_m?Npmev0Z3PD-%&X>kOez`#@3oGoV}j#oGm
      zR<O#7tDGCWx~5T&xS~|mU#NdfvHrcFRdoGmf>fO#HD*Z9c~s?JQ>12!8`G$+Ml~`~
      zj#AksntDGg*qVX9=3JeCrJ-9Xwx_9YG_{qf3aXV;Ro3FHr1`gJ_<cSegQK1CAEdZ5
      cZSY<j>}RsVz%C5z+(2dbu*ZWC?rVng4?kPYl>h($
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/VanillaSocketFactory.class b/libjava/classpath/lib/javax/net/VanillaSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f82c3c3b8fca1a006bfe78a5763bf15e31550b9
      GIT binary patch
      literal 1470
      zcwUuL?@!ZE6g>~hy44MY2?zoXe_%HpbLc0hCTK*KEQ*;f@soLUFHos1>5AfirJt5)
      z;ve82WxVfol-YJ9Te98z?mhRMbKlxOe}Dc4P{+2835K;#{0l#;xgw}_xNAEOZ+q6U
      z2zI#@c>XsX8pGlR=D#LG=85gv!83+Qv)p0OUU*$$U=q1JrjTKnY1yuLefs%8`0x0E
      zBN*mdp2eLG_icF|6t&>U?lF{Fmz!xY<Sk$DK!jz6qFGimL*58vygakSNnm?!Psbdg
      z6vXyw%{Ng;$2GDSn>A2Gj$y+LNgeJU*4lw@yN8WtQb@;jhSjM0-aU4`ukN1L3nCRs
      zxGeAD2E#%stGu-%8j&}XXjAXR^Qp(03{TVMFHAM*XQ$isMX#4;Ryw&Qo!n-qj>AL-
      zbB_GaWQn#&$DM=rmEDRtmanq(Rbf~jIYuUQ9-bI>M#07s-IAg;hWfZ{<i%)vr@ke2
      zZTavnr9G-!au_Ahn*sUB(3jo_I_s1@q{w8Y(nt0OB@-~{*PsYIhK2^NP?irt6blp?
      zrZGc^tCVYWnpITWRFSCcFBCuYG5<Yc%c%PEA*SpQ)53r$Lva?1iffN}rCmdEZLajO
      z6lZ&-*h(R4z$UX5tg60&HQZE=rU{i)_(-QIiiJ?2I<NJy9v5jTkw+mg5-CI?g@K67
      z?%=L6Q@{q*G$nj5aY>2A%(&*;5sPgSe|)j~3I4RTs&R?Vh_%ioE??_`VypiH8@(v8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/CertPathTrustManagerParameters.class b/libjava/classpath/lib/javax/net/ssl/CertPathTrustManagerParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08009ef6259ab8721ca12da07eb862f2569d8396
      GIT binary patch
      literal 747
      zcwUu~OHaZ;6ot?5sz5<Re7|Ch3TS9t83S=cWL42b!hWa|tf{S;4o3f#CK{s)<Juo(
      zysZf8!bh5!-qYUm-MKgO^7{A$U<*qcA`F|S{DNN^u26>WJ4Rhdb;#98OZI%V&t2XX
      z@{mh@CX|rAh8ROGa2O7EyT(E1R9H$wf?@3|r*Ca=OL_8YNMJ~u2ZDliGX(j<>PcH&
      z85Wfu)E_#kWU1M%t#%p8#XovVZH8FgI~FNKk<pPvmLXa!wbRHUuVIW~^-m-n<0vr1
      zEyr^OL!nqQzqemaf?-mJh7pEQ({@F(ch(WI#XAmJ@}_5Tr_H4u=>Er;I<aX474tvS
      zr%7bGLVX@)>Ek@V^+Dd$k=K)!XxPC4R(>v337}Y}#-g<1wDLiJbZ;UQCy}B(O{z&c
      zLhpR}9(sA>0iz7h$lYP$Cd{3pJxdH=2QgGJh8m_xO}@J@gIOSq0y?8-4)cBXcBp|&
      b`4$r&<m&-85&ql@ar%2=AIGo|W-Yz}`g6PL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/HandshakeCompletedEvent.class b/libjava/classpath/lib/javax/net/ssl/HandshakeCompletedEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c368229263da9fd2c1284b04a3a21858c922739f
      GIT binary patch
      literal 1889
      zcwUW^TTc@~6vzL=txy(_i&ie8cx@}XfP!KXFSSNZMNE}wOw?r=U|`vj-6;Xzd{JN2
      z#F!W#)Mwu?5sjLtPn!4z{5Hlj+igYI5?*#^=A8fUT;}Zl`t$iKfL@#rp^RbQjIm%W
      z>Nc0U>stB+!=7-bjai<|&dpm~@`=;}w`B+w3|p0}o|D4Ty~8WxGu)I6TU_o4!y4m`
      zE3)?Wi{}{FC5F0W)^?>~%Q3^s@yfa1FJCl0zu(6Ya=EKK8QRkSN6%!^nY=B*P&FiM
      zA%__Tq5*DMbC%0QX?<*rp(2@`;9-<wiv|siR6(AkTZTQQ=hG+05Ske}{~1PdmNl9c
      zw&YG~(d6@zcwsbQtD<aUD38X*YQV5vLm0IT4QXNXk=)!kcdi-Z7H4QmXH9B|L2aSE
      ze^?=>h0Aaty{V3?2Do0446P;WXQ-dzGAZV#xs%BWNnu)|u~kK8q$BL9L@jn>ZwPxR
      z=~5ljuoJsTPCPIBBzL5k6s93LWxXdFyOqbf+{`&bF6kyY=&QWEAW;qbu%Dr^fElIu
      zrkFP@hW0{cMMTl)X}dMV5NBv6?I`EY{~3gfcj1Q6!w_9ph|*lQ7ibtK1$D9DuF!oN
      z4ym*v>(R++L(nKj3k5E&sqjXB&*0iB2Q(bPQJQ=oSFA%B2Q?g1WrWF?DNK5YUwesJ
      zuTj4KZMO%y=I=X9V|Pl!X`Cr&a*ny~(*4N}AxRaNKv8~q@p++!v!lcq9#(R6QP^_&
      zX_TQ2m8ha!$lF!pnfe51t-c2hb@Z&K9VeUekHimtL__ya)P6zJ&5vmL7Vlm`<eevO
      zrRO%n0hj4HLWnD9#3-Fzr7*y*JOb_L0KC->bW#AdQbEgTO(W}vOwn7}n&a;g`GGq1
      z`h+fqWwu-lSMMQjQ}%Z#)Lk!(mY4Zqm>S;=kq3g1GlZNaq!oyysooHIFbKIw$R$GF
      z3q;a1llNg-SI|!10Nxt}e?ahu1b-9=r`g^lygvy3nBY$c{xlFy-^M24$AjRn2>zPj
      zZvx>bknlUL`^ZYg`Uk1<4&Sa4R~E%XIO&V~d~tRB1BSoj>{|WGDt&cPf6ntt{ROKK
      Bi+2D3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/HandshakeCompletedListener.class b/libjava/classpath/lib/javax/net/ssl/HandshakeCompletedListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..629e4e835a974d49ef3db56ad7e4ff2ed6d1b237
      GIT binary patch
      literal 252
      zcwRg8Z`VEs1_nb0ZgvJHMh1<n#InQ+{k+r?{o>*reUHSvl;VuU>{RFc+=86clGGHR
      z%;J*NywoCg1{OvJ0g!6_oW#6zegCAa)Z`L&1~x_paj<A<NoJ0|YguYu2}}zkgHQ&B
      zd5jEN8a{+91sh|n8OF%K6`WsMl$`38nUl)MAdlO5dLSc#Zee6#24YsA4;g{(WoO_3
      Mu^2dkBohM{06+^$K>z>%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/HostnameVerifier.class b/libjava/classpath/lib/javax/net/ssl/HostnameVerifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..409d9047b4f5e0209aaf03d4aae4975091b7e666
      GIT binary patch
      literal 194
      zcwSviy$ZrG7`(4)qfRca&bk<!yNg4>A>iN^%V$ZcDI~Gzt2y`pK9tx@qBk4|_xE}~
      zo&YwO2xNpsZ8~$4j-w2rk-IiTXD)nTZ_k#!z>qLY8QB<D$^EJ3G7|DG1?~j7R9{y|
      wZ(UWW-%YKR<`8V_iq(-Y)$P@nytNGz=KqK5)XfQm0TQVHA0bZ)qUQ|b4+KXwvH$=8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class b/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d531508bb79d66e2fa6bf62255e77c4393586d0c
      GIT binary patch
      literal 3247
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/KeyManager.class b/libjava/classpath/lib/javax/net/ssl/KeyManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a31080d6eeebd0c10537e94bff4ef02c420ca59
      GIT binary patch
      literal 115
      zcwRg8Z`VEs1_nb0c6J6PMh1zj#InQ+{k+r?{o>*reecvt-^9Gc^wc7D1{OvJ0g$YI
      zPGVlVzJF3yYH|r916Oc<X;E^jTV_rwBLhD|y&gy@8zTcF12Y2zFfy<LNhSt10Fg8t
      AtpET3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/KeyManagerFactory$1.class b/libjava/classpath/lib/javax/net/ssl/KeyManagerFactory$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e67cc75e87a9f1847da30c95f2b09be9346320c0
      GIT binary patch
      literal 717
      zcwU84O>Yx15Pfd8yJfo&NK5$c2Sq61&~3#r2&pPmLZnbBsCQ>GY+SiE@_H-wU%?5)
      zfgiw+LQJ*`D$St>d&c8=Gw+T4>-UeJ0CuqzVL@Q?M4rjdsUe>hg-+j6btsL@$sNed
      zTUR~VjSvXjoTa5&nmm0!KB3G<2nE*aXhB)&l&{hwr_Pk7oF;pjSJnuGFO*UKr9i9K
      zKNbk~?Sx{qu$&;ml0bW?481E)$K*c9u_l4e&}LE}OQ&Y%CK&jsDg?HMSCSoYD_3&o
      z)n0#ine$)?D+22b-JXMPOPyO*F+GiO8+Rgf1-k#s8#PXXySOK?oRdFt_7gc@2|Vpx
      zXgBgsnS9Wn4++F0Te^%6)J#}+p2rL#ki0R5+`g7YL9D#}+GN@mT;Y)X)J`I-vydyM
      zkzf;#1y-2nEBYu)?f3p_ygZ+V9d^L;<F&{?WPuky5}&TI_nfU@yZG!I;;;2}!h2k&
      zl?eFqI(x}^5^kW)mj4ZIH3fE>0%51~9jjmdRS4^7bpahV=oaqRSr72A?sSd^I(Wo;
      IfHiFV0W<Ebd;kCd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/KeyManagerFactory.class b/libjava/classpath/lib/javax/net/ssl/KeyManagerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7eb16a275daf9c5505af9459c64bf1872a4bf565
      GIT binary patch
      literal 4221
      zcwUuPTTmO<8U79kBxKo+g}K@|N&+@W5IL@KQ{y^SWFQ0y2*?nMU9yNp$X-@twZgcU
      zv}w{N=`FoFb<?y-FXOjPI#UA;Gr@hSXZn)%p`A`|)9JK*>rCG})Al>7MR(cGXrw)t
      z|9t=L`~S20)qmf47r-O<u@f}{_g_-hl=Yyln!$8h3y!K+ql&I1RAWeqn<?X}6App<
      zq)<>(^h9uc;gT9R1sX>OXXm4#vC#0~<or-592=jU74Sy#l2fLU)Dr^&d&4O`Z7RAs
      zt!Nq5g$98GWqP=FZg41cJ`$S`MTW;GM`BMzUGNCFpH$Q7r22IK@ec{qUtU?7T1^Uc
      zM($!arKsAqYNXbZi>e{enl&x0#xq9Jyc(RacPQ1MXo(aTmshCaOj1vpX9b?>z84kM
      zK+EIMGcDi<rxsN=YSHY07cBy{-96I{5NPvYFZRjNArJQBJ~`^}-~j3c_D7PsI+j^k
      zP>q<fps6y-skov|D@Ibz?L~*VoJ<Qma5t;zZ(~9=mFMl(Zs&kuI@lw0jY7cuVw
      z+4+bYooIHW8-6Ex1dbF(B@~Y{hh%|iq%=)6JP4pyz_XZ|Fp_IYO--na0w=r6g1NgH
      zikr!lK2T_1mWQ<O;Uaow&358ABU!L&Lk_OT)l~__$TQ~xdl-oki=1(Wu)n)P+U_Bq
      z?i_B~iBkeci~Sf&O=aTCxk%@P-FOtIogl57ix2FY>%jodFitdbmsrg3q3)i!YP55c
      zH)lOKfyV@*6}+i-?(SZ?(T|X1?c)MXmEuHti&ZkYs%>lpnvymPa!{J^YJuWW!I~E%
      z{H_ZOS9R?DCC-V6KvyLbc5TjC;KZ1~gLxezq;W#gLPjF9qUw2{T$o@8cAJhbdVVVA
      z8yk=L7F3^}(KI)r2+6chc@V?-EdO?u3G`OwU&U09BILx=0xhM79?v8-in#Dmc9Al_
      zeYtMun{#7E8Z?889()Y*Y=6q?s;aXZ`>NYgu4%vpg=Kirw`8PNe7o*j=y3^Lif0$^
      zo$!`e6&HQ+R7P9$=_yl2Fm9-dsV=&)j7v_C5UmM46D$tTpq^m2lofDUVB(&La_5>T
      z={74i4eop`$TCdHVrg{aS+FTExq&>Ip)P5J3y$b(Y~+$RF~uMgay0V5M25E)*TPCB
      z&DPXX)SP3>M(T=e`vWq>S3Fq9LlietS(jw3e%ymk;FG-D<aK6)6!9yMQ5o5Z=L8Pt
      zcfu^*bhx;HYtjp(d(|uo)Wx%!n<}bc7f#E|+*=-L5+?FK0!H~GkvrKskZq#{*WEr&
      z^SNVR?bz+Bm2%5KYxtrEU&1TADOHPQ!zBRi-BpW~*R#w6Sy1{`QOunQ#ZXpMlW=UP
      zPJB(^crhX)plHd(oFBOZ1-FWZZ+P%cyvmCyYv_ojx_(v4rgz)!J(wV4QsNOEo}!dG
      zFc+2vUbkN$%LNKr=j#H;iiOVWh8j<;sfMHhPZSydhBW>)awjcu%3s`aCRi?|(^uGC
      zYUaZ9b}E%I;_6URz792))#bwyhBO$_b=9yKqNecxE47xd!*yuqx1KX6XEktf?k<?`
      zVKMU!jbpETKeL{EJLA(0hb(kT9^_1;tb@;k{!KLb12@s?@4bn3f8R|U{;7p@gul(y
      z1ze!yJR0x}aTOvg;C`<9v*+QXZLmgCudqf^bB#5Ux@*yf2l0@tIl&z%)geZ=(K)+`
      zqgyz33w@(E;F$5>M!k2>sQ+z>)DWZ*LEDrgmV?i7mZ2#ocb+5M^Jv9qaR@J1CV8w=
      zhxngCI^4$Q`T@>Qa_rzvzoq^sG)Fphd<!3ph-mHE8))<gI!<ii!*8E<v^k<L){2h6
      zyKnvPU%kIXUGL5|`ezxVkL(a(j}^dv+af<h3R1v<Z&BYh?q28a>uACowCWne@_lsS
      zO&r5pmUSnydhK*L(2Fq65w)I3gBY@s*@j^}K?|Gs9pRe8^5RL`i+Vo$d7Vl>)+r$g
      zaWrrnd$$pt^^R}ishz+UCZoN#;n~LMY+w`9JN{njS}vvSmi7%IZ!%q5wD{*}!8=Uj
      zwq>O+i)vdbNBb>$HS!a-(kd-_tTe9TQF<r+)3-4*>t$N!{2RF7eTF}Q4J>$74x(O{
      zp9UsQJGLQa+Z?x`1sGf13j79E$NGMO{_Ak{-9rCP-)-z`bBx`9OYV-zJoIj0jj53H
      zz71TRX>;t*j>F9INist|C-EuU&mnpMyhpD5npyh|S@9kve#?yfj?%x!Df|Iv@JIUe
      zCr13wh~O_g{a3#3{Eb)D-?4~);4=Pc#pD7}=vgi%x<zo_Iy~`de1;m&uvDHW6Ki?4
      z#U6E0>IJ;W7@cCwM({a~Vpd*1&(R{;lg;n}yp$`BAfK{0>ij>$;e68St;K)mNG|(8
      zw(bt#WxQe^K4Bkr@o?(~zEFDpKLzJqx$`l6xq|ZclEb2|qVlic)dD7b)q)9eMHYX9
      zG=sVSdcL2y<%Vd4OB}S|nzMqr9@4;4x<()g{F)8yV#vNtl6}VlkJz+#Ti_(bcT3Sb
      n`M<rZfXeP1x*OkPNeXN9CW}&<`2*|p5Ah>wmH*c*N$>vwFh?qO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/KeyManagerFactorySpi.class b/libjava/classpath/lib/javax/net/ssl/KeyManagerFactorySpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bbb4bb732456eff04510046b4d20f0d55884d8a2
      GIT binary patch
      literal 704
      zcwU83TQ37a6#j-~S@-*$5TPZp#AA_&Afhfw=}Vuc>!cmo&dThx(Vyi>;=vE_qr};2
      zN`;t*IhXmq@0>a3?fvByzz!B&bO@~6%bI-jHCaE7L;sxW7gEa-nG+e<$kcNW%7r5^
      zoZ$RW>XLs|yr;klbnhvx?14aMDxDW_j-osA(23rDbfH^dD62GGRx3p^H?kO#z-TrK
      zWSEymC2=$9*s_WRR<r+ik`WjuU1Hf&vR?pZFQn3iKLwcPebUajVS&xm4`_R#YiVSK
      zEbC^He|g7`0X<k1>Da}%z;<I2F$GnlY~4T8H5sbA!>|-_T&}d(En3oDww=Vi<+v1O
      z3P<U@iz$Jn-vKQV7c&BD?V!sjR}IRo%HOba0_*MATWu(aYGjh3v--F0yj)Z@0iCF1
      z8#BMneJjy&mcgq=avb(}#eBOQ?XneYyEdND^TbXEJia})z&?Wy(8pf?Cy4C;D>xX$
      eP{R&mgkMIRvSW?RL^IRF1t&3$S&ru$$_pO`{l5PI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/KeyStoreBuilderParameters.class b/libjava/classpath/lib/javax/net/ssl/KeyStoreBuilderParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79faa07759c1f49b6ca7d1b353df3d8e86f4f5d4
      GIT binary patch
      literal 374
      zcwUW=%}T>S6ot>UX`(UO+6NHasCCi7wc<jd8{-dDy1z*;b;>k>$wcg9xe{FX06vs>
      z69sW0$S{XFmvcW3^ZxPr2H*t42pxsPB|XxUF4*g;vigeGQ(rp1sEwVoyCX*{_Ux(%
      zfx@5(YfHsK-)2kBeS}cq;5Xu$3R<w6P%fbL4?!V3GllWz3f-g8Od+@|=NzMptppJ^
      z6#A(t_@-WE?CvSEtT0T=oa~I8Y5eyv@DE04qx7HEPZi>6S-YGkrrF>7GdXUE*oQQf
      r+mmlna-^H+ra0Ytpm+R&_*otuB%)zE9AjHF`3hhM{dRrOrglF8LS9}p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/ManagerFactoryParameters.class b/libjava/classpath/lib/javax/net/ssl/ManagerFactoryParameters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8cc323af71d9026e165f7282bbf1c910eaa7ca85
      GIT binary patch
      literal 143
      zcwRg8Z`VEs1_nb0c6J6PMh3O4#InQ+{k+r?{o>*rec!~q#Prl6x5VU<{G!T$#G=I9
      z)RNSqVs-`=Mg{?pTK$~FymWp4q^#8B5=I8D;QZ2}<W#rJoK!{zSzNmHKpNQ?85kLu
      P86bd>ffYzHF|YvuwTUQC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLContext.class b/libjava/classpath/lib/javax/net/ssl/SSLContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6d4030e129b21a1bb2da6ae6fbe103891e3d378
      GIT binary patch
      literal 4340
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLContextSpi.class b/libjava/classpath/lib/javax/net/ssl/SSLContextSpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26f362ee778cbbb81ae75f466a642cdf59b9baf4
      GIT binary patch
      literal 861
      zcwT){O;6iE5Pb`VfcY#1N`ZiY9!w8dsK*p85mczAl`w(>r;Qnf1!s-c8<hMkPL+D-
      z59p7oI<^DICc={U&3N8>Gg{Bzf4~0#*vDoKBLZu;@<H}|P1aA-*bl>?nP^Kr8{VrL
      z9D(_a;Kx$8{hzH{imbr+SEZFb6d3h(F9e)sa!oEqF*%Jfj0?;KO4E;Sr$y#mwqg=k
      z2$D#~7t*LKAAEG|jY<XT!5bqq1eQp**{^9xTH@kSp7P}0?rUXHWYwM*ybK;%qjbA*
      z@|K`pwE0H187tB@q%>8D9*iQeGpt>iRB{Q)JdmlntXJzvbVv4BMm8~h0dIJdS4{4-
      z{Nhyh*dFRpQM-lug#V+!rFT_Pe5d}Y)Ur*cQ7xUDZfc*3#T};<b&axpKg<F;llnU8
      zG_uujk9rZ^TfTv`hIN5YW&U%U4qx~)m1SYlH4z=Fe0NF<v6neGTj1qG_DpcZOUGx8
      zvoDN-aqROiOgwTh0+&yh5jcQ@LrifrU62@O0LQ^B<_0*Q<2x+m_<n$kSjur3A97s5
      RM|N0c4~KD$-+JC_<3A<a@9zKr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLEngine.class b/libjava/classpath/lib/javax/net/ssl/SSLEngine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ffe9e8153d08c9104bf8fae5d69ff040ee4b5bf
      GIT binary patch
      literal 2522
      zcwU`VZFdtz6u#3W4J;uIElmNdf}*BLBv!?@v?y%@O-WyD5D)NalMLy?I-9eztMJu-
      z;eYUho+EIM=hz?MkMj7;>~tHGja5D*cjnH$&%MuccW3|n>-R$<TBiLhO)*+{Y=3V*
      ztqC5~q;zZTcB>)!j^J5JGb*UVnrn-GZMXB7cLPSJ2Aunwp2Tvtb$r|od`I-_=6uid
      zan72IrdJ%{1UDF^N=x?`rPsY4w}{c%9G#{-qhe_sq^TljT4-V?{I0|OyLQLrs+`xg
      z-Fvq0sJ(Hfg9Ar0y4adPqi#`(&Z}b9X_PJIC_~d~bs<MtI>jj8;fUL`MNb~sPk?AO
      zo_6^la6BQiw8-evIPy^dqg>bZByWn27m6NO>FsV9n0=wogAMNTz8&!1U0Xg;gqMaG
      z?}tJtA`tEjV)tTg&;KJVR`)0<5*V67;v#$vjnZ3p1_#`4hfcsD%6w_*VG_vPal)SO
      z1zy*45q%-{wz-sGx9)R0Vu?Brpg#g)o!WsNgveSpeI`i1&t>QaS4UD%{~UmJIJ$Km
      zE`pn3Z~)ceGj$m)CV`sMdemt<91Nhr80F!kA#!RE-$))++{QB)b@8n&g5fUCI?~K?
      z!xM<fJMw6lk)tRlXk9ENNUfgZIhiQ7oG5m>^g!hm<aoz&TsP$#WicI!AAEbj=#F{0
      zgyYrLo&|g@eDsL>^+e|hW2|TCE09UZRB!WIj#g=%(N1!~hl$>1^Q4-fBE8V>g8O_T
      z1k{p_z+2V&KZQ>&n^CB0s>uK-s{~feTRGaIZN+>N$yaQlH39Gy;j)pC;AFM+>XxIf
      z&wLztO(CSOfKm!yhbfv>7bRA+>Y9YTOlftA;`|JD*Ac~Fvt>5*l5)T5lo|Y6utY0J
      zU8Mq6xhRaz0f;n2-ay<(q$)L2eo1rX%5$18FFvP*W2jk#6Wzl9CeoTn+|rPjqcj7l
      zR;p8`SE|=3e7G*^PA}<_j9!E1^)b&I@Tia6n?NM^uFzYiwHmC#%anhk`CsCOq9S65
      zSH?8K=xw^1ki78oNb<AsWOVQjy{qke#+GPF+cH(Ot(yJ&bWPiuiTl9VWpn<au^$=x
      zv9Z_b6Ky{=_A~li+b@i*8@r+`dRwI%=sMO))7k+8rF)@VN&i7#-cMEAsq_oFIU*0M
      z4b7+!&!|8f)X=O8m}mnTs><!LDw|M6Wm@G*HB~)Kz`s3&Z^igljBf#>sh<JdNW&Ay
      zZ!3{k#_)=0RY0ryg6@pg{qaBZ+5+ak@Jdw<lkk6<z-t$5B3>Flt?;);c<pJdum1+6
      CP$(?`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLEngineResult$HandshakeStatus.class b/libjava/classpath/lib/javax/net/ssl/SSLEngineResult$HandshakeStatus.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b64db75c376a48f80f17738eff84e0386f35649
      GIT binary patch
      literal 1388
      zcwUuLT~E_s6n<X1ty`&p6OeC3P`2?gK=5mmu)uH&qZkS^ix;GfI*O$;ZAZi#Z@lux
      zAK;(RaRJdty!J;K&)ZZX3z)1)d(Ly-^YNVXp8op%?F_&S7DTi#Ozvxk+S{b1yGh3}
      zld4+CS{1|6H*}|Fx}!PG+I9A{*ShLzZp{%9U})nZNmH{b$*fg7U}#s?H@9;cWm(N-
      zR`bd;hGe0sv?+%0N?ysUx$H7SM9F5Cw>LBD>R<iEM&>y~tEX=%KFTUvYoo<XVJoXL
      zOuuZtV!CV^mf<ci2(fsPA+S{4)x!u%V2H}Nflh`{+IQ)W70%mMUE8oKseHT`A>VEp
      zL4?8(Ip~!kauDWVKt`B@2nV-hL^zN*xFbVCh-;%VS|QUA3q)3_9qj1#rnY11#Gz0v
      zYi3ci4URpd1OZWE>h2j1kvr7Pnoi1WEZ%JY5+*PuVv?cbLSILYs~^ZnVwy&;*|v66
      zuD&^9NL=iGeP>@UyQ%yoraYgc=+Rn##jteA(Be%K6)-2$zRokuU(B~;YL1h-s=)bv
      z(p5`pwPu&~6@!npv!UV?cW03EmZjTXQl0kv3B%xjiPDWVP^FQnM#Uo4rZSlZ8tEqc
      zUPvv@(0T~;uZ9+T`Gx@`MPG(}8S$mWWk(<1C5i~p`8Bjrd^@4fr17Wn9jp}X5KeIY
      z7+oH?8Sp@l2l|2@==Z>2$OA(jxGj2MIQ)Z<P)C<q3e?e~mV$NktEEsKLuyH^V^}@L
      z$X6=Wg1hwX<D~G8sJtir1IF+XbNGY|T-@`#_)9;UPjrUb<qeC8@qrVJohJ&B1N<P_
      z(?!I*<PpS?@WUU_lz4b|9V4YxA#qkpbG~ar|0%{NzBFWG|0qPL@T{LBK^A^0MOoq$
      d_kV(29Vbvlu06yf9ziDzkCCF=NPG6De*h<6KGy&M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLEngineResult$Status.class b/libjava/classpath/lib/javax/net/ssl/SSLEngineResult$Status.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..312b09813a50f9b4c3ff959821cd4bf8654dfcd1
      GIT binary patch
      literal 1265
      zcwUWDZBNrs6n-w<)@@XQi9-g6FB7(b%=v=I7J@>TEEJYdHeLKc%BZuXbf)cyeD??G
      z_yEyJ{Opf1o_noA2$(JD?s-nn%k!Lj`t#S<Qvd}l%IITA?->Wi$Gl_udC#-+x~{2C
      z%W}+3)9cuNTK5gV<H-myT<4K_+i+TW)#>ar48E$B%j)KKZDUp4ENj)*3{zS!<%$dg
      zL2kAFH?^<2#t>Q2s=B($(64UP*3<QuT20j%rr-8jH(F}imSg!#3{oarX9%sdcg-lm
      zaWD)iNZ<x_DFq?PjCLkU_g%|r6)V|#jACyp2qO}O%)u=MG6zu(#uP+3h;eXRK@1UY
      z-BA!nKPl6Q)<$Q4$8@)h9ou9`Xziw9*A3U=SUBU5Fhu11_m)R|4h*|vl9A11dsG@n
      z200m7x`lHJ4n5!8S1^NFhM3{H#$mJl;gBJBUT1Y@&usd|$|bG}pO`GzRNpZyUNW9+
      zulyuDQt%K3hG*x?tk{O<6|bs$wqA6XalPGfn`YVKLma-)XpV<7C>6&sT~XAeHJxXe
      z_%A;i_8*2cAl+&?WV%#+;X?OPZz`9H%LTf6iN2@s@+e;zfKE9$qrn;D=U|HO2StX+
      zuizTxT_^O3Z2sH&2G&RnNXHmF!mt3zkN_hBjD`hB2{0ZJU_$;*Nb1sX8lf&m^hUUg
      zl-`JRF`*w}@(b1N!(IAM5;tI*y6z$c3)67$6mM`(MDT|`jDS&r^l(LTZf5)#_s@z%
      zC;&l{B5WCHE{y~}z*LYvPpx=*vWv;anv^?jlsL<EY3u~kv!5?iWB(|`Xj$fh8aeXt
      ixA6qaogn`M?CLxTkA?Mw1W^XPp^d|H8vBCqzxWM`KpKSr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLEngineResult.class b/libjava/classpath/lib/javax/net/ssl/SSLEngineResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d905e82797d99605712adf7c9f5929f3a2ab77e8
      GIT binary patch
      literal 2115
      zcwUuMZBr9h6n<_9*(EGhR}g8XYy`{;NQy6QCE6m9muLhumKL3U*d(`M?Xt^ccNzWA
      zUt+)Zn=`gE1=>2Jesjiu;Gc1N?(PPfHAVTd_c`aD=bUrT%f5N{&kF$4cpxFhF#J&8
      z)*t09?&clG%vUPqd8=Vq{4RGq)0GfsI4(@`rfxOzE7ga*<}w`H(5<?&q5sS)uI_pc
      zL%w{dqp_uSLV+RSgw%5%pzbsJs*hdn6m84#HhG<am0G&hrd{`HLYKH|Scdxz!~M+1
      zxjkaurBZf{AzrlWJc%wGSD@eoLsurdCgCK**@I%0Op`Zs^Ln#E>00jmqZ;3G4cn42
      zz;HSpJU^{%>W?+ccC{+kEYCEPP%$XHo@N*b-VnH}xJ|=q6tZhFK4nOyBQ1E(k&H8x
      zPP$byQ8KdeoWQ`gEK1Hbwz-VY8Aj7>b?j)^0|rfj1X-Z73c8UHXiPy5k^-Gm(2FFE
      zN0|z^>}^(g^PXNcIfGiZYr46nHw__&%DB5>Q2$2`Z$ZJYF11>1aCa#>chi~d5j)7x
      zLylVf%m?}VG}*O-9x(KWthUZbxX3UVRnK{bS?5hLESD90f$1c^!W9W$w=Gs+t6&Bc
      zNZQs-kFWeh1^w>;1j|?G5IKnp7?eR%->W^)g29^6gmzZJb<ELP=v!OdqWw7EX{6p$
      zg-QF4ZwMFj5$6Bq(qhV3WH?#SB2zk}$)HxAC}?fF93*>7L@G0!$&?OrynMiK&8u*`
      z$`I3j6n-u<BrCSptnmdy%vpb=rBlK;gHoc=ZWc}5akwLa)_Uw?CV`3>014|<l_L!w
      ztwuzH6zxqH{gC6d_q0%iRIy_INo(bwz5baXO9g%O{e+~q#OkKAlH0?viPz|R4s~7a
      z-@~bwlPzgTNW;H|(q}>%h_}RHA?7A_Fp`_xK`J-AgVEeTd<WxyklPs2^quiT%~5jm
      zl+psFvWQbyf`$^ta1&Fwg^MWT8g7%-GTp9_w2Hg9gA6e*1t}tn9N;7IH0C4m*qD#R
      zGrN2w9vY|n9!!MK%+o3CyK{eH^yz+L319id526GHVG!DZj^yzu`L~YbNu2LMPW>Js
      zKkG=I@<~zhNR<3{M>72yLh>(E4RN>l92eH9y_f#NmwULXUfadD!rv~6>Oz210xt!4
      zbQd?(+W{UIc!lsT?i_?yskp!kjNm1$$tx5IAEdGvrV^v}iEjn>d`=AC(f#+cL->Kt
      I`?Ev;0v_V|H~;_u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLException.class b/libjava/classpath/lib/javax/net/ssl/SSLException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8dacf19db0bdd6ff743821e4202f4ea3418d194
      GIT binary patch
      literal 855
      zcwTjp%Wl&^6o&s3lDHW6-ZUi?C^sohDlFDTksyFnWLktvxa_83ln!!j<Z+-p2RmMX
      zHJc)_V8I57mte_TAkIuo2*TOS<v-_q|2Z??e|`P};0CTaC=nVj#cOfw$1?M^j{GnT
      z?jHB$t4t-agEC>+#C?_cJA2~*VL{7OiKr)2&G*MUcL;Q!FxyRHoryT>iD)P*o%avl
      zetq}jC!u;%#VYF%YR$j`BM}e$FiTZD*xu|B%H8CJba4uE9$cIu%m*r#yThXcneK~&
      zND`KUq|cUujrpF7<?K*t!g?@$jBSE*B()X;3;EBU&?;zZLfJn|lQ+hWJ9R;*dsxF+
      z!f7*8R}3|Cx0=NTg({)aAC=Xn#Mh?a*#81H99;bKG5;obxP;4unJgJiL0D;S7ESDi
      z$uRB9d&<1w;^b>xH`$CK{tNKhKm}Fa9ln(?!z!5%;?-lN!&-^=YODPTvmb5FJg=@*
      zZ*lEyEbwV{l!Zks0rs?v6=oP#EoVLA9OLO(R%`17t55zC=WOf&6L;Bt&r&x=`D3b=
      zQ_ZP?b6jco>p4Hnd#$(H-{8;(IPDXhH&*Q;tEX)7j2nMGF+hE6RksFafGf7{>TjL9
      Bxaj}@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLHandshakeException.class b/libjava/classpath/lib/javax/net/ssl/SSLHandshakeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2006a223fceb435c3915ea29c3e1fe641405ff91
      GIT binary patch
      literal 390
      zcwUW;y-EW?6ot=S*Iiwsi2*Iri3t9HLu?b$h+;9=tfZf8hRx_^R(2*KuVp1z_y9hX
      zI5Ub(EW8&k_vhS?^YQui4xo>2iimLhD3)Tyw6x5aisd=K6MAZ9;z{1D3i)hRty9E=
      z-kR|DPDqAID?1__oN}*YmCz;2ZKHHKI2#k<>v}3PY+$>EO(cXiS6bdL<`daGh)E?0
      zU0xTW8jD8x`DYp1nKFbE{tuf2LOPemh%(UDd=Rp{UNnWgRUX~@6LRU_a0GH*eUM9M
      v*wxfcBSbEN<ox0lTQ9DQkhz+LZQm)cu;aSJZxveD4U`0XXa`m&{Oo@LH=tf7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLKeyException.class b/libjava/classpath/lib/javax/net/ssl/SSLKeyException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..213166ab4615b1cc5335d6d0fd7ae6ffba6dbe73
      GIT binary patch
      literal 372
      zcwT)@O-sW-5PcJ4qOn>n>Om0k<_EZ_$4W1v7Z)#)-nVgyE9pj(ZK*%Yli<N0;Exh#
      zSMgxM85rKoy!Ut?pKtE~PSHyd5q2NdRLz9dPPA<$@?75N=c`$vpPZ>}ikPr7NBR8|
      zk_%&v8xXb*r00oB*;3@LF}Ca<4hivPeXlbtV7Y@uB!sRsR^Lv>Bi-DoQKbnzSr@7r
      zs>b;J=NP*O(-QXNzXAJ%bgbJ}mBD8&0U^ulNmJ-+<4rgJ$WOcg`ykHei?}%?&y=?T
      pB5oi#I)25{3!?}b&n#Ten0byBM%&*kbg&v+60D&cyw-ze;|r@{R{Q_}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLPeerUnverifiedException.class b/libjava/classpath/lib/javax/net/ssl/SSLPeerUnverifiedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75e0c88362678e245f3f9a5474c966a29c0812f4
      GIT binary patch
      literal 405
      zcwUW;&q~8U5XQfWG0|9UE$G3Ec&im$>b25~=xGrl+WR&g<4U@b&9?NlJP96rfIgJC
      ziQ=UQ&cHB#zWMR3KHon84A6}c5PHvQp_an16IE4+G?jPE_Q5RJ>POAf>t)6-PM0P|
      zNH|(k|K17Fr8e4)2nRh`>qMbUE>dT;$%m(7LU>h9Il%_DTi8TIXiIJQc0QZ1y;qZh
      z30+xcsu(M)>-lFHx+h%``trYChlF^>Ri*L<xn_otq~+XZe4}gr@!zEL`WGi4@4621
      x>8<-3`)P#0ClK||-mvxRy8wx=NwXbz<pp+pclfPB3%d;^!XDZUtJD1Ke*xU}WOo1n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLPermission.class b/libjava/classpath/lib/javax/net/ssl/SSLPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73354cfb2c18f7193d261e5710a5e2a6852680fb
      GIT binary patch
      literal 579
      zcwT*wK}!Nb7>3_5b;GpG)Jh4uRT?dw6{(ECSR$~zkK14q>n!Z-M*WI@L-#J7gbw|H
      zPF?#cU7~MRDJto(-+bTje$V^PzI;4A1K35?LV}@s#jp8|twd;R?b+R~b1H(N)LQz=
      zLXu(42y89fD3IZ;eZaMJza<QLEdt5Co(Rl*-Z^Ao#|*i)uXM;&*yCO#Qm^UzyNCDU
      z8$-G&l?+=9rA;SBdt43dZWu^4Xl(Tul5PJ&WH5vIEHap5Sa75gC(*Dkf-~Ot1Vh2`
      zU9#k4O!MS28D2_Fd7Xb=)F7GS!x-_$oMB^1q-h~dx@D8D#9(nZBr-W?x_%V6;z-63
      zfB5bg2>o+Li=bLT3TZkmni80$kD0ep&C*Sa<^-MTT787vW2{-Anu%{4wA)0Uy7E|s
      xMHGOzTSAc-hE<xdI^<|Pty+D1gz|6L9xd(1u=TO*3uaAVrdy%TL|l!xE1&;;d(!{_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLProtocolException.class b/libjava/classpath/lib/javax/net/ssl/SSLProtocolException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b5d7c4142f9bf905809f1379356c50d37955cb7
      GIT binary patch
      literal 387
      zcwU8$O-sW-5Qg80G0|9UEhy+s@!$s-#NH~sh@KV^BE4_p5?9h)*=(hM%ah>2AK;G?
      zC#!g=;0z4&@y^5h@%i=+;0*l~5n=yPKFfJ-l+T-{&Wl3aI_qs|>#KRGp1iguMNHUT
      z(EZ*C$%QuBj|f|bqSfWKG*w=Br%g3H8WZA6d#^GqVYP#0B!sTeM%~P&6XovYq*jE!
      zu%)cW(&={oS;qcBH-rQ6zsn&ZovNmhRe&wnAY_G|xl�mb~*9<Fx(49*CW`L7Z%t
      tYs%9I5hsuwpS)t_g}VqD*DP$$SvkNOciZ18bg&*M2{zCTtX}xp`~nh%U5Eex
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLServerSocket.class b/libjava/classpath/lib/javax/net/ssl/SSLServerSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a802a511459f1cb639415747e18485ab58381c12
      GIT binary patch
      literal 1272
      zcwT)}ZEw<06h0RUMTTyJfpcum`C8Bo=RTP&i-fSGu}+gtOy;LjZs5AwlC~`STYe((
      zgFnC@Wjv?7sibB0L(kjuJm=h(+~0qG{sMqQI8q_UVCS24ZQXQS9(IDj>6oTra{rq9
      zre|OAPz8lSogfinvBaQwB3u!kGRSMK0fTb?#^%#dcy6G=9R{_CCcKXRF{v<6dftea
      zArF-b6rjjp)etT}pM4*4|H2wNoI%y_Y|9x~zMxnpm2e^g2D`?8=RHQCrnd&vphgYW
      zF){UgoR;Yf3Ysp9n^bHtP=}U%<#=NTO{^KoN_G5oM<bsH!EwykCdL+nm7#D)vc#aV
      zoPvch5Bo07KI)0-1P7dnkRzk6wZ6tA$8yIVGxUW!CPHuvp`k6o(}vgnwfN+Fp=Wyz
      z!fU~@>}G;BaXvhWp3klLMDX-35fI!8P_#>Gw~i9$9H(;xcf;;1oM0}<=GGARIpA^X
      z1D-aff=r6kzF2OUR!iq-aC0`LGtBJdVrgNmWz(DaHa`<|Z#Ggl<bbwP*#lfR&{qY8
      z?jhtr#Yn+?3Cidlp~uh`+H+X>fldzY;=ha*;4K1A;2wIF7zC@Z7SZv>Wu#6qL#$%E
      zIfrUm>m72skyax{NiFg=ppGh}+Q_KtxByy$+HP*o;eJ}SkMy%h_E8K=WK}6k-UIY<
      zQG=~agA4Q(v?Xk?KZj<z!+XRVQHOSnOFER24kg)vyd8K5d3;WGaUyzF_TX`3pUC*B
      mjGw{t$i4tAvMm|6W&BdcuVlP0;{zFYq~2??IK^Q!_nW`9!T-Ae
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLServerSocketFactory.class b/libjava/classpath/lib/javax/net/ssl/SSLServerSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4db450aec78a08f4d814c0bab17ec01a28583509
      GIT binary patch
      literal 2694
      zcwUWGZF3V<6n<`-vL&p5p}bVUrt)Hv(nhU_HoOQ06dDSW+FFXxZE~A#o9xEjo6@SN
      z`0hCRK}W_9>R0@TI1@55qkO^{f0W~MlSoRMmQH5&Zq7OPxz9Q0-skQ=|NikOfameK
      zffj+iv(~(|5O<`C`+hE-N+na$o0ne7P0vYn+Da?eTQm?5*j<lo5+Y!vT}R0UCGb>o
      z8R%fumk?NY*mi7nRG>8y9Tf-+x)~WnD>j%g&@QkkX*+Vbn4gl~h&7dy0->avwsNDE
      zXY2npV?fQ=zQF$FOEn?KWrJC%PRePkm?OdNNHn=>Hi>p@5eO5puZg#>;JNd5MtVVP
      z#dZVR1h#3oxG&R1&sK|stiG7oflh%9T>OIP7Nn<GsQr=3;_;m2WaBC2*-kbQU2Y0u
      zCw3dyC9t*b8_Ze0pL8uQZsKWl33L!UwdgCEU*Z$!j4Xv*;;P_wn|KC$1lH$ht2hPr
      zJ%&~#jI;OQSp)mos0Npb2%^l@k=M>RzOtM&+tl$0jq_8pGOZHpA<$!@4eJc_3hbO{
      zXyTAuJZCvpmShdYx$_zWM!cf0{tpRqFZUaGL7;0Tm|EXVyoiGWTk2ckcrNR*Pc!*O
      zrVo2?NMpauEweI%8oK5&U?PFT)rQxLaB#)Su0pnw*HIJ4@G5t^J~J#t4d~%M<E#{e
      zWnyA5I;tm}FfoXe0vk!74(aQu(N)T<^E|D&zb0^K4Q!jFU%@z|`JQD<S0t)w9zxQ@
      zISdPICe5W-B-*u{=p*fJ#|42lp7Z(sATDCWKuTc8N`j+vdQ+fp4LL1QDGfZPQ+Z2Z
      zEV4@7R%O~yf{G@{i<Xmd^DKjbOH|4_tBXZP*?D<tAuS8ab{zwk1-3V`K2fxDJjCs|
      zBG4~A&-KD~WuGbAQuK#2)r}qYE3y^#E4me)uJ&jk9K-}BwbELYm1ad@d(w~wGCU`B
      z??YB5ru7kOS8jEJ#+xx=W0uNp6$;Yf#NIUtTrHJ^hTsh_j!9j1uHd3TLDjO>?3#&0
      znl!Gtgi{6&IBr<`mwLi>zL1l7=_pI56egIRtKKTY*VoN5@&YaC9J{fCqS8G_1!+-y
      zw9VxyDjZdHY@N$bQ#~Gg+8L>I<eoL0G%h6<*uP|x1|_PctLfXIU6^5AinfxzZg}lz
      zH6*t~*Sc6JxSo=kN2df+ZqZB2)3&b8&gPZw(~yB~ih3(QEI3CiJKqBQ@k*y<J^%G{
      z6dc=PcM<%JFD)?n3~~gHGV~ap;G0<u!bWW37{z8hSp^VxXl<kI*HEa8j-fI?Ghz?W
      z(enVCdtxPoOW1oKt+&VSAoe$uxQ_!veDo#Dc<x*oFAX0k<CTFxXF!M&j&ue}I6ia>
      zfwA5)PF2h$ysoW7No@_CFXN5h5hGZvhpy3E=pG2%!}$0;OpJ%#zKg3mc&dbK33GRm
      z`-_n!<ZqAZn9w`gQenHBw{)6{cb0;e#xN%NOe2FL7C7F-PxzT*wH6L<X5b2oca?RS
      zL<m!yEzyM;-nz4hVGeN~kA4)0sBnZRCoxat1tMR^2tL3id`P?-T;WUP@D)8@<6V4%
      zFYqnC<9HL_bHyL<3x2HB`!Z|0j$bK0@pLyjh&j)S$2j{MdTEOzOO!Zm{X|}5Tnksf
      uN>s&$A7O{y!~5*t2s?J23<C7*B8!g@;8)`fd<^~d_=z5g@oA;=pZx~|Kk?20
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLSession.class b/libjava/classpath/lib/javax/net/ssl/SSLSession.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3276a462848977a47b6235f639ebf005aaa78a07
      GIT binary patch
      literal 1067
      zcwTi=+invv5FMAaDG6;-+R#F|7upTCg$Eu`pV|mSQ3R0|A_PyynWQe8^~&pw0-weM
      zAHYW;#@^jrnz9djG~;uQXYBExzrTJ1zzcX<h9w3&XMDuReuTzPlF$!=c7RDDRaAx&
      zgSuVyLmmzM58uvE7!nN79K~@c1vf-HPWye-f&7UKE_uxp2J1v<$@rAAsWg<{@|x|b
      zPhhl+28Rr4mZ#CVe3ZjX|Bk^j<xhGHN?!BpF@sGC+dMHxLQrAY%cxs6s{{{QsEzE~
      zVlZK_N1AM}1VyT)`QZy9_%kfpd7}__s1zY%9x~W1ikt{1i-%be9WK73neEqQ5%qix
      zmDgi|vF$1;!!-up!U<c=r)Y$lMA)0q8Eh{awobXE6|ZP)e6F+4FQ31f@2;Agyj6*r
      zMjfRosu$6;aYxX~D51jaXz~GQsmS2ixI=CKZ%T3!ZM#OwE)P?D&xiIH8k4J-zxLIF
      z$6()EB+QOVHgcq?$Y{hv+2bagk}iX?Ou9DZ;xA+yr-kjo1-6T>)}*R&s79FU8W)vA
      ztV*C#E%1#DiBy~R{>-vh7*GjdzXm;+Wmp0GaLTai@G?{!R^f`nwLD&jn!`G5IJ}zc
      zHYrcjO>QMZ>$nX&=Q7uG?;E*hmptYfH*>}<xb5%`+;w;l?mOIr2M!;?zQY6X95&$*
      MxiEN4|0Q_x569LPDF6Tf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLSessionBindingEvent.class b/libjava/classpath/lib/javax/net/ssl/SSLSessionBindingEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b03ca83714cbe3141c67a1613aa0a33f038afad
      GIT binary patch
      literal 852
      zcwTi<%TC)s6g`udLofkSXlZC^QXUE^!YW%T7Udy<BC2AVRX39`3WLm8vL~p^{t8QW
      zRO&<O0(ISAs#I}jY)}NrW_%y#oO{oe|Nj4d1K=%I9Ap@l&iDoY;whoMI1W7DZ}}pQ
      zWvJdubs|-7_d+P`AjdFkkX~QQz_Y~<oiowZ3{$a)BoEpmGPF<oI}GfAVPZQ}vF1v*
      zdC(Vml-KH)|Gr)^<P<*_43(DE3%KfezK&?rCPU$!R8ns-c#YPm#Wo)kSKB1J9iE61
      zvY2w=Vw(1C3;>g52{;CZCoW1DXP9hBB@X-N9T6S#PGFY`yJUrvA<ENYPM^w{VP)h-
      zgQp@BPMnk(s-sO1tS9uLJ;h98b=WaV1n}>qUZj|zVkI*5%0&%zhB3nm`%(9iaC!p=
      ziwtw4v}kO?-jl}r{BW1+hK@Ro&C<V=K^1uvD06I9M8zDK;w;r%Owe1V>?8FIe!ThS
      z7bcr)KT!E*2{ZJTZEJ^wc8R=)S;}e&98d8Ku+bczlbDIjfDFY|%%}1meN8Xl{Eo`?
      py>P)6kF21Z08&A^Dqg1Kjg(w${=~u`yne|4JissB^Or1Y`4)DqznuU8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLSessionBindingListener.class b/libjava/classpath/lib/javax/net/ssl/SSLSessionBindingListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3683dd7deff455fbd52150f388f242bf5cae482
      GIT binary patch
      literal 264
      zcwU8%y9&ZU5Jm6$ibe}NJ6lcTVr?gA6|e}}=P`s0%LLp_@Y^i>06$9HjaZ7sFmRbO
      zbLRQFKLBho3(yl-RcV{vB$JiKXqhB&LdK|?_lgU}Wvq-PrfYzKz}yc@opLEpSw*=G
      zFcMgFX=9a^hnCoW5rMExbwm5Q;X)u<$A4~h^e(yx%sTMQ*#`}iy1C|bRGI{qKOHxI
      azY`MZyBfMLdrmsQ7+!wjyURnLWBLX`Yf5bZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLSessionContext.class b/libjava/classpath/lib/javax/net/ssl/SSLSessionContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7121b99cdab045e38fdb0919ecdf0ce601c3e861
      GIT binary patch
      literal 357
      zcwTLgJxc>Y5Qg80@h+ZU2?4=I+q=fa+RmVG5U^NDW3`?`+;G{0?4AUFnuR~WA0^J7
      zffUIU^A_{G^Y!!l^$p+_qZB>D^}>9ZwQ?Mk_qEb`s@Z$nxJlyzuS1GHVHhD*8#h-^
      zuM4gMA(?Y1-#p<mFQ#3&4YpPfu3hrV1Zi+b$OPK7BV6S#_y6d=aYB!`^u$!}tnDWg
      z4)UTTjJCCByX2;o6~=xa-_OfpCI-K2$aK@LDt@%Ja2GqL-o)J!g3LsWL@qx>g7|?H
      YgHDf-b$Yzf6P$K>7FC?*l6x5b0RyO9%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLSocket.class b/libjava/classpath/lib/javax/net/ssl/SSLSocket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f00becbcde5fba9ba658932c5b65cb23f962c0da
      GIT binary patch
      literal 1795
      zcwT)~ZBx@g5Z;48q+)rglovrjQBx2qiZ4*)WhxFGD>6oK2EQ2E8yX2oCwE2umY<mM
      zgFnC@<+yt}0@J4LhwSa{lYO4O+iU**`~3$1mSNk3E(W7NoO9<Q?{k?K!pqxs*$yhF
      zT$*4o7@(xeML`C=>#pz04F=s-?vQ~|45~Z@-O$$$J<yA9lwF_iHO`KC_{BN)ID_GG
      zP;tCNCv?fzK||JD!C<`HhP}WbYpG=3bNrLMEkoBoDU^sawR2J7b?FAaFky&6M#0=5
      zU-}ehOvo^piq#+Zr+)C$-wlL}A*6bQRHso+4KpOQg%NZ0AjBLiF__SjsALHr+tq5w
      zg&<i}ZIY@@Ffg4cjy)vf87w9>*Rl946`y9%=h1dj@@l=W^ewm3*0Jhisyc^Tg_3t2
      zzbb0ZDK7?Rb&pG4ExST;pNFyD>yv5^F3=gxg#0Wx=bcJsPq^IiX&kCWw_f9+-Ebwx
      zO&hUt-;xd@E84t}wG!~8B6Cf#9|kh01RlaOA}Kl+V{P0YoR4D29hwt0>PH9=Z2^XL
      zM07(~VvnOb&*i?{Zpa$OL~AUCI9-Fmq?Jp!1W~pS$+8=Dn!%QRx|zDs$sooL1dkX$
      z;{C*sXbF+nuZ}O9#Wu&%LOP+04-(beK_jg2_b%PzbbMo%s0m{haJzthqhQcK0{SL;
      zFVHfyJ@c1v>lZG%AcfBqT7XrAuEA|w^+zDIchFLSG$ICY-HUb*hE=f=QV@wbzc6_T
      zcbm&?B6v%cn~7k$9Idjbi>cKZj3b&TCNzbCnZX2td(8yzkYJ|`!4%wYA(&3+;XB5A
      zs3KA<ju@9P)6DV#`k<^>Rw87~l8W0%X%<>NK;~|>dWbPYG0(NM*24R!nfEjD+HH8R
      zy6eD;UyUbV0ewAk+Rnp*vQJ@A*(L4gwf_u1Mr5Dkn2=r3{!8t@g4fEv(eJHlyQXmk
      Wja%3LTkUVC@w@Jy;b>5=TmJzB%6t0&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/SSLSocketFactory.class b/libjava/classpath/lib/javax/net/ssl/SSLSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef49a9996d884edf8dfe0e2393887ad5e4846f4a
      GIT binary patch
      literal 2826
      zcwUWGYjYD-7=BKhc1u{HmU5{`8$hs0FHtLk4IofJOGCk?ww9u@-JYh~CcANWQ(EwX
      zilTyy&NvP;&Zys*@e^Jq?Z}Mq31|FKj?YO#lcpE?<(%F3@|@>=-*et`{{8Q-zX806
      z+Zw6_nx~8zV>W6_Kk9j@Xd)3$IOeqUPaCH1xN{l;0^3VAOOyhd>Da!U^#z`ZF9Yf+
      z=wbr3hb`Okj|x<`hKB?KJ<hlcq8b}@Xs8p|9Jg%QpG}WRchDG1Nr8sAV;ZR;!?o0Z
      zQ5f(iEl(h{e5ob0xL`0T{gZOS$fihbXKOgVN(8YwY$11|bS{y1W?W~+8kcSmTd`fk
      zHi2ylBI-#q>stO?G*SG}u>(y48@b?l*U3oNXIl2R<`;~n3_BT3_^xFqW8vkZAa-Jx
      zhGzw~mUKNS!}H>f!NqknqeY;R*oisMm+3N{KvQcuWSJ_DyIaQ|>=oFMqAafz*!Kil
      zc{6(N!}A*Uvn&-V9jyp6R$E@~wLRakO%|nb35|1OQ_}Qf8z9i8qXxAaI#_|xijwuo
      zxwD3CBuQ37RA5)7!JwP<{KqCi?$$01FA21)22-q?j+b#jU`wg|$5Tm%b(&09GF_~}
      zL4|!tVE5__is*_*w~iPN7YbfV!huyYy9U{OTt{`hhGX2@>Vz;6MWDrfMy~{oWo)!3
      zJfs{>=;*;oflVY(g7lPYc#SlxI8Q6?uL~Sp2iq0G&tvo|zGu{-T8*fpc@S|OXVEWE
      zPnzXeB-*l^=#p~R;k-Z%PxVY!5Ca(0kPz6hT6<A3y(Q4Oj+n}Nk^&x9p}Z|H+`2~I
      z)?`|df_zVq1BN~Bq?rZ{7uZ`$tOl~SZ>8m_SyN_w%ds_FEcVuN)+e%7iifxk?+Ua_
      z*LB>GmEUK+W%$&G#tR!e<mDSyXrfS@?obe;xTG4Y!G5w*Hdq%EQo}e8NJ+a$N5_OZ
      zJ9WNOa8P)YIxI}Ffg72OwCUKfuFh7BA*LYM=tq!NyljEU3hrf+!AaM-ta^Q(>;N)4
      z-iKS*L=`vBp4JtrTiM%rpxSLGRH+GB=}bzdrR^Ik@DO3Flv-9%y(Az!bpb6SDo|yn
      zSg}>QF4fcQGF3i@n&~tf4`;tHS5K!W*kPX75oqZv%f0J3ja*93veadC7HdhRZo1O&
      zWg&2ZL&eOOuE5yx2zxJtms#;LU4->CeEE3uSWdL}+@gl}W2xu%SeZ%bCbE_<J+&8$
      z$Gsw%J5*7#nT+H5a(t;vFyUlfQ=Ycet-rOhe4Pp`u$xy*H6JpxR`(3QYWU6P1jh~h
      z>*6ewG%}CiZ~Ul&&N0XtIEDa@<0*dW1tV<2X3k;M<LLr`_><Ba%6@HVSU_Xn0-rdM
      zM`&z&g!;Bf4xt>Ldx+|L!@nc)4`#$ewD)o7j4$AYvkQ2ozkLC(b_bdQLga9yDUieQ
      zzPktvcP!vkUYx@lO4=7!(uQ*jc=HcL2o`ChYUnQZb_ecbWaK_ZM;hLl$9u|nEQe$c
      z(@lYSq#n>V2j||fvTE?=k$sToyNj;|lO6aB8?cFfT;gbA99hhAzJs6eGv`7!Y`zpg
      zi&_}W%orMI*Nh}uFvV9u3K66c<r(aPOT^1KLX4A`Bl1-uU&A0i!3BIuyzBJ5Nsn8!
      zxQ#3L7B}!6zUO=gKXAo6_ys@aGk%fTt>vp}hIpzTjr5pf&Ld=V1s#+{*>tXQ6kJ#0
      z1KL$_bps#rtC}3@@ew{|1qWHPYh)0hUo%;Jh5%oy*YP<$zaUP4^9@SA!q-sm*qdsm
      K>{fm^eDgmUuM`6S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/TrivialHostnameVerifier.class b/libjava/classpath/lib/javax/net/ssl/TrivialHostnameVerifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d03d64e9e7350fdadf30a05e4472f6607553fbf0
      GIT binary patch
      literal 568
      zcwUWByGjE=6g@YujWHUHPede*n20!}j))+L#iGTA6n2w1CL^0!nArsVCmSol!VmDH
      z#JigXF%q!2?|aT1?tFf|e*kD>*F%nQ_$a6HNf;Fi=R(o7da7l39l6-ZvFa(SAGER_
      z3WT*}RfN(E#clsl4Pp-^!ohEXc_g89rj3rz3HfHLM<`rI_o{+CmaFhkCe(aw)Xikv
      zSGFtrp(51%XduI$v^uG?W+5JFM>z8TCAh=yPLuqZAe#P<@*uX_3_EiyLEs0<IUSi!
      z>yA(!Wps&_KUjk2X3K=V#YBWk5KZhrUFk&s{sN_^2>}}5`>+-HYjSLS8LpN%6C8<S
      z@%Rmu*K}NEUrL)NSYcnCEnpQjj{H$r&%hTcEo1U8bI5jzY|N$^GRf-LNas0hVv9Xt
      IJFRxU0hQ#1b^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/TrustManager.class b/libjava/classpath/lib/javax/net/ssl/TrustManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..237f8ae654ddf906154a7f300030391eb1ebd58c
      GIT binary patch
      literal 119
      zcwRg8Z`VEs1_nb0c6J6PMh2;@#InQ+{k+r?{o>*r{g9&4;u7D)yu|d>B6bEAMg{?p
      zynaq%Ub?=2QdVkm2_pknaDHh~a;jTqPAVgVAhHfUkYYAQ21W*E1_)qeU<Hy)3~T^Q
      Cp&p|E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/TrustManagerFactory$1.class b/libjava/classpath/lib/javax/net/ssl/TrustManagerFactory$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..023245c4955839f7705cb66b6555fd4a230f13f4
      GIT binary patch
      literal 727
      zcwUWCO-~d-5PiiCGcb&<E{OOAB5HOyFc6PxObAM1vM9+C?!B|^Y?G$j^z;z-U%^S^
      z!5`q+gTKaDJB$XAL=W9nU0tv0z3Tq@<MS5)TUd)QMOZr$C*nhDq)&@Nrw6Vq{GKo(
      zmu^>N-n#MQtq1|(#w0P-!sO}O!I8{-gpjaYMGKjgPWf@V@6?IXGMB^c%qwdM;d5n_
      ze?e%pJBNf|#|~wT2Idk(m?1QK%E&k6@j$u*G0>9G>e)=_L*dlqTn7U`QU&2j??32v
      zxtS}u_d>hVyUe;fgL%R#gEy`KZwQ@RRx&z{aSOL2ED{#~l-RGG1WUL>n9HT#clNz>
      zeoT1UzR<Amoicg1^LL04_igDixvM7Pmabwl0TGhd#z?oLMNvrB-+W~<Z40ikC;i9{
      zBdoBPf6gSqDjpH$nd?jWPL$ej|I&GRN;N}lf~Ux9n*YiaFMcdO&9e85EwP<m|A_dk
      zx=whHtF&(j`0^Ti$$1j4qsf;44{p{4HtPamtMv&Br@t$NRrLD>bXcPsxLal2!~Lq$
      OIUZ=?0q+5p@$e@;jj|yC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/TrustManagerFactory.class b/libjava/classpath/lib/javax/net/ssl/TrustManagerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f7cf2695ee0080783f7fd35ccb59d0b218e98669
      GIT binary patch
      literal 4189
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/TrustManagerFactorySpi.class b/libjava/classpath/lib/javax/net/ssl/TrustManagerFactorySpi.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d8612cba9bc55e31d87e72e949bdc9cec351b76
      GIT binary patch
      literal 619
      zcwUWBT}uK%6g`uxTbrd>*@q7iL})=<^imi>M22J^p!m|$xDM;cx+}Z0qCcyrpoe}y
      zKPtMbVipoD?3{b=oOABXosZAAcK|2Y)-lJh*XBLmH(jC3AaKl@9|r24yWAFjiCfC^
      z2i30Bp)sT*rs;6kHXj>pVJU{hg><F5WQgSpbq4L)YYGD~EF=*}f+1Cru6PJL4dK^#
      z!x0Rbif3`B&V3o><D#ZoGGN%R{O2r1hOBUHGQJgRnnDgc`NH!bCL}dR(lQ;J;V}P;
      z{Il5;_jyMsaxO-<Gj95p=ql;CfsQqX<Ka94VTHa_1GDV*xFefaj_pz2>P*xV8AEQ=
      z@LO~z232Y$sDX|Ry1?x1DGQ_Og}x<9G8$ZN_K1!m7i|~xE{HyjB6<&6b;?c&8Dae3
      y74t6?%)y}5AOy~ce2ztmk|Pq~5;<sCMrw#@tk6zoY`Z$FtWQ<4^luJbx4r;3#iOhM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/X509ExtendedKeyManager.class b/libjava/classpath/lib/javax/net/ssl/X509ExtendedKeyManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d89fd6167b529ecbe380da97e631a0cb3b6b26a
      GIT binary patch
      literal 912
      zcwV(qT}vB56g`uy*)*n&M%(z2778LU53Z$1krbf>`%t$Zut91CVY0cziR-M)Zp8gp
      z?Ngx-{Q><^#k-rOf+n;teb~95=bX7a_t)<qKLNbJGaChgjgh>P*N&#xiK4*yyt}h^
      za2=B#(BP1g_fpFt85@?sLfYvBQV*Sv{So=Gjgmm~KK>RbP<pMjiuVPIt*s*gs~Zle
      zf+FUtuu&GMxk}TA@kO6ZPxb>6sJo#rgCl8F8s|wXK2wpvru#3q?FcmdvoMV4Ko6O|
      z8z|E8n?OmX_|iIYZwK*Wqx7(ory}ylM#YKqiL<`CltJf?py#<0&d%0-7J>3PCB5X5
      zSZ8U9jDW48XiSFdYqK@^uTdr<usT!!&Ws+JD>C_v$F2W2qMeVJKGc+Q#S6#Ar?)D7
      zwe{)mvz_9s=isH_Z;qF-2rFF&jvjFIlC5An*Zz*mH+BlB@>yXEyyDh9JY=srX~HAa
      z*z$g2F(-J()=F{W>mPI}>psko?MXF9rd}OOS-pT|JkE3qc!EZD!4<6jmG^W8?;6%;
      J@;0;R=?$lb+KvDK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/X509KeyManager.class b/libjava/classpath/lib/javax/net/ssl/X509KeyManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c13f1ea1f335333cf3c02784114bcf51ace9e6be
      GIT binary patch
      literal 665
      zcwVhiyH3L}6umCcK%tOQ1_nN$S!x&<s!UZR7C=0*ATb&1lDb3=a@?r>H3mL_k3w9B
      zh_o~d5<_xj=bnd7&d2B5I{=))kq0dXCsR>~IoD`;o~Qib{B(4Qi)*1pg2sbQ2EN<i
      zsn7|(d77fM9<&)8ui|P9gPxpZS&mVvP}^~;M9$!T@OV}8#MUUCgw<7!a%PlW@LRf-
      z>Q$uS_XkHFXYvJY7_6gzgkm%Wno8(y@c%mf1Z{-Is%IsI#b_dwW-w|{3VusTf|a2z
      z;fc|AjCDRp#>am$9yG+spi8v0Q;-P#5C+30i|d@#e&uT^PUou=XEP)5LZwJatoCE*
      tsHhAKHt5-+TD7S#9&Cdv&JJ|SxeI&c?81II55O;H&z%W(NbeT(zW{7}%N76t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/net/ssl/X509TrustManager.class b/libjava/classpath/lib/javax/net/ssl/X509TrustManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a01e85003b9c1acff0800b90c06ebdf2846cc6ec
      GIT binary patch
      literal 429
      zcwUWAyG{c!5F96ggYXKGXeek&8Vm&mq(Tu$NI?{b5E7Mfmc!xXAbT$gzed3a@KK1p
      zlL+BaP}tsC&(4nK?fvByzyUTB)D(6`W@4t=6YCgreRH^fbQOxo7si{6LV|`utK{h1
      z_)K5kjmUC>MTPC}lk-ywZTmp>v7bBgT>a2c;ka`<sH7s<A~=55mI7Bh`%<`jXAM(t
      z@U<@G;C$BWUMn<Dr<R`BjeSh8qOkji(wxeS{pls8FrhH>($0uaY{{YFd5i^xD4Lz_
      zzZ{C2bX){WXD%m&t)Hpwl^PO}LS4>+#9fyd6D$c@7SxcpDV^0{oi(frQrM8YhSmr2
      C_IQ&3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/AttributeException.class b/libjava/classpath/lib/javax/print/AttributeException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5278db31395fbe88c1ff1004779e6f1ad0b3026
      GIT binary patch
      literal 257
      zcwS|WzY4-I9E30RPqi)%f=*5jx)_|DM064yL>H&DhSCz!(EKWWHU}TThZ38i7V*a8
      zzT<nnA5Q=)419PD(^T9=$xWVU;v1qo2@8_DGLnXpO#5gv4Bdt+p<{jwQyCG%B$jm6
      zwlF5kN#4GoWf;vD*F!^Wm9TbQ)xX3=sKTvh^}2Qt^;Kh2(ZMMz@<{FzB^k#5o=bPp
      XWngH*#jCVC=)&py=v56v-}MMS6mCj;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/CancelablePrintJob.class b/libjava/classpath/lib/javax/print/CancelablePrintJob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08ae422bf037527b54fdbdd01340c8eedddc4ed8
      GIT binary patch
      literal 238
      zcwRg8Z`VEs1_nb0K6VBsMh3a8#InQ+{eq&*yb^uq#JuFxoW!J@)Bq6QD?f>yfrXJl
      z0Hj7gCowNw-#;lUHMxYHfsK(t99gGJelko8BLiD9*c?U%W)00SMg}g|isaOSlFa<P
      zVs-{@Mg}QljbL4H1wh5Y`K3k4scxA$sX!|*9i#`+4743+I1sY}eZmNIAv*&HkjDw+
      Pu>ff<Am#zGnHYEh_s~6n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/Doc.class b/libjava/classpath/lib/javax/print/Doc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8cbecdbe79b8c17c56f9217096bb60fe663a375
      GIT binary patch
      literal 434
      zcwSwQ-Acni5QWdwwyCwXzaYMWy)k(0l~Mx*p<;Z2Z5&EU%!ciz#8>me2k@c9*_ejV
      zg=Lm=zL}kwpWm-<0C$*sXc0y`bx?($nK-rnQb!)zgs~I-M5SAQz1eYO3BxVh2Ww5d
      z$t~{*i<`xBGgTcuSEL3*w)cdA<cb<3>Yxqb`XsfsD)hyvOJx;dUZKrigz7&P5ob2m
      z>E6STFe{l@`>S>B$P`lRmDM|&K$|x%WQysrp0NLxRGSDFTEpr?xW~_OysHMdO0&EI
      z+~1+jO~gT*Frg>C-#V^KAe_OSjx4Z)F5DtL^vZaSzW5j7wj~Zkxy0y18Dr8^<WA+?
      G!t4({h;2#$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor$BYTE_ARRAY.class b/libjava/classpath/lib/javax/print/DocFlavor$BYTE_ARRAY.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e168694528bb3c0feb7afc161387aa7c4f58ce1
      GIT binary patch
      literal 2275
      zcwU87OHdqT5dMB1VOf6O??;qGG?2I~_=qSFvn;z|aRbOM7>tU;?f`?cvy+_xiAJOG
      z6<-IdJm|qHbMRo59-?I^O=*<}tJEqFR+)nbtMqQ^)stoa%>*{E#63)Z)BW}1@9z2c
      z$A7>220%aFE<=$(=Zdzbtq1L#VY$K4Y$|GMYuQ}a$XqfqADW&H&6S}<ps^rJpvKX2
      zhGx#{ImgIaGqF(tF)mOU&RUMES?;W6uIi;1`rf;CNoyGvC=bmfClis0L`2|V{Qpu9
      z3KXA+MFmR6ry?ilWhxw3&(WxQPLRewHJL~z!qc&-q(D_Naw<7LmOL4sA0xFu-L_&T
      zF&|2VV=*c@PnnF)_aD8H$EuM?0cD(&)i){!u4|^^q1c3%wLVX?owhb#>*cNArBjJ_
      zYgOi&9a>858%mjmWw^(v8{Iv#)TVGYt^06LphdH7(@1G9O(mF3xw;#0+?=ju{1E7p
      zxE*&0>>KjD8@qWFK~uAqf(e)Au{78-TTaw&2|p@)I8386GTM?JTrw7w;Z6yu481gi
      zO~Z<<FDXl(M5VIaCD4>##hR7wUA6->LdCjAqDrx-3)T57JI&z-B&wD9fvvo@#nFc(
      zYLwyFj_7vQah+7ouwBJEE>Vk$GK>f`?>yPas$r(}oDa0C^{&3|2AAE8IoO$6)^d*S
      z4*L;8mkM%1Vhl7nxlFMmRw|n&Z`zC9y;3d@NyKrIno3paR$3rXsHwYDUNszIQep}Z
      z(_G!`rct1wd$-G=DlQ>Wr}{7>&|csWt4=_3Qih?Zk4V%j>YPApA*#C==s&86rzIK`
      z@$o%kGI2py)Om?UMb&ObHJO@{Xi`+2wsH^ZfZ{DlG%KD#r)HjQYKFB<RGg<IS`;TE
      z&{2q!f9$M8tKyy!Xe-FwI=3UyrkJaHMa?_-(-Q59d-kT>&67VX(V@7{U2l8=E+758
      z#C}xJmk>8BePT7Upy!g>f~l)z%ckgh)##F?cUJoFl0ebv5kHFYiu#gY6*yF2*9v{o
      zbVaz!hC?fsF*17ctW7EWiR@}FrAG~wuWIWW?p5xz{4vYYb750+9G(39+m|yAQ02w+
      zPtri$E5$x~E2Fm}_^9u6X%KEzcLd8yPgZ%d+LJY&to3A_C+j`g;K@c$HhHqylP#WX
      z^<<kT+dbLg$^9%<ZMWc7s<aajXQ*oWiPEbOb9DzcaNFlN#JGp?5yk<=LB{=z?`C{2
      z<NFxj&v=mWFyjXmzKYOXU3deL&k((W@hg~M+cfi%jAt32V*DuM#~44s_({eKjMI!4
      zx8g4Eio3!*ld;9vW}IW}GG1f6&iEO|=NLbKncMRMJ*TPZ!22}152(GD(1nlChmSFY
      zPw76qj3mB*jW2NyU*jUa#k=?pAL0jmf}ij`e#S4jhTrik{={$i2Y-kXyn`1xI`vxp
      z@ocsq$7y+#&Ug4o-GvRjyj_8x^?%Vi{mq_Dn>@V6LsaM@Victaud~k^c$2*ZFXUS&
      F{|_1}8HfM?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor$CHAR_ARRAY.class b/libjava/classpath/lib/javax/print/DocFlavor$CHAR_ARRAY.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ffa7a6613847b11b139b9e6100e4152db183c9be
      GIT binary patch
      literal 758
      zcwU84T~8B16g{_vek@CYLXp<5f+#IUH@x`LYTOhFHI<lB8wn3&s3Tpo-EDTKr2YZ_
      zkMV&-6CZu>7x-IvFy0v(NwkSClY8%+bMLul=KIgjUjgi3JB<XP{7#&Uu``UkKsmc%
      zZ_gL!VYJ!UciSg!yX_vOF+(U!MG+Qb8F|9*$|&~2;8k;%K+g&DjWCFn2vk@2BRTuw
      zvi|J{<;H|;=h^Gd$$sZWi?Gr9-{=~_GK7~cw|PLw)O)@cc<KouS*dmjGmY?#%wUO7
      zRC27Gz8d(oa<4C<SgOY(_4dKeBMXFO8!IRfQuPVFP%*<DUj%2)p<)GRwQ4uZ&}%j<
      z%w<p{luXZ|FTCLIrW$$OhK)JGLdy%}!Dw(QqmDTBB_ZDmdu)neYdAN>3~mz=#|;Zf
      ztZOwJgsmwerpe+xRo{zw|A9A<o%cgC;vXQJbr_DKp4{`ah}<7XA8IJUZU%vj8or2Q
      z$<3@QpRvyCB>7V$QNk=zoTWKSfNjuja9q^8PHOYWF=Bx;*Rc5Z3+O1nc!B&UteSYu
      z#HEjha)ZyDhEf7HrLcxe+%z{_(l0Y<_mnZZmf60azjcA~72DEvT1J{y40H824tI<w
      W9c|(+cS+!$;cTH|SY#HfBKr%w&Z1!e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor$INPUT_STREAM.class b/libjava/classpath/lib/javax/print/DocFlavor$INPUT_STREAM.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64bebbd33deac22516f44341c2b903b2ba959480
      GIT binary patch
      literal 2298
      zcwU87OLG)e6#fnYGK8B4c_##UMG0UsL=>V4k7Sr614A-qIsrr-J2Rb0ho0_cx+j8y
      z?+3oBT)4LU0dCYPs1nPy<=P+M%9TIBmF2l7O)`)HXVK@o=YIFR@15WO{rOh_!}zKm
      zTL=eM%vJM7+%Ma17(eIbCmnOuEBB{nGV?|*Ys@9bFV<r#p`#{`&=Oc>+jJJJa$tMz
      zeCiy5&J!9Fo*RUw8!nhm#oG4m$ic#2U;lEQuw#7Qn9U|<vPnXJ`v0Ae66&T>lZ373
      zGs!7lWD;rpJvXVpGpuRI%w~;jVlI_22u()vvXPrME~azStR}Q>DCV=d@oXZM;-IUP
      z#$;~z#KSyMO(bh5)2wWMSUK`QlSz-KW+Ja`RhkXAyQ;O3-?mLU?Rc|Rdv19|%dTT%
      zdB=9`@HAIr;P3*MDd82Y7!DA+P2YFyycu#|;$A+q!oeUcTV|;NTzZA4@eE=6SaiB$
      zK$;PEOt%=%hTM_j=;4JOOdU{Yz|I(saP#bvS+wFsdr5CRtDyA85cgnhW5u_Mdgquz
      zquzOr&{-YDs#_RZ_6NCzn)SRwlV))hnyXoULClXRH0$k`*8TdfSRYep(Ho~9vF>|8
      z805>gA8OWFg<aTLj|oE8qnS-qY^PwAW8i6R3#}Vrd^s#Rqx<s9W;w9JQw<nLzcw<Z
      zFb(dUT4vixH}4hrG|$E6TInMf6w<iJMdhe0w?G)IRn$$YC>k*_tB}FV+}F@s+a$CP
      zY(6rogUc$k>N?C5cGpOv5)7I_-nKRMl0uuNULo|<qJ~R@!zVQHszSRazV;ZKLR_>o
      zHK)*_spgZYj!^RootkR#R6d3}qIpGyF3qz!YvK8hX}cRl&AFz~tvMw^UoB2`+MYs>
      z=JLDKTa&w<cc9R#nU%*`txEh&h25Ha^NHNG%->e%)7;w+3SWaOslThR2Rr#Dq;1!l
      zsgxG2vSBVdmL4`Q&kwB0&n&M+8N-J>xOymtY;P##`js#nUF|x2tgrSbghMrkuht#s
      zHzQoO1D?5(U9yauKKpFQdX;kCnzVHQP3tf7kUq}0A?3POIpLT=U<G<v^<HB?CsW6N
      zFzsB>ZP?DMdR}coj9bC)2;(08Y=~@(WK$%YBiRzkU6E{!WLqTLBiRwj&PaAevOAJJ
      zk?f7+?nw4Ua*s$I+f&%fk?sTNI!Dbv+IAmwrFH*39Q+A~1RoZBRPdnSxZq*I#|6J2
      z_@v+$1&<0oCHRcS_c4B@HE|EgA2E3s=kH=h_U43V2wo6;S@0`@Ulshi;5P&>3N8p<
      zTDQBr$?l5q9Ko(&UvOD)D0o%y4Z&{-z9smbAEZ3*@pq1k4mt!yN6}4j^wV)1qmvk;
      zQB2br7?gldQ@BMJaEE5`4Q25iUBdTt6~9pqe^4HOQW1aCHT**!ZKb_<U#zoP{a>_J
      zew^ju(Yn}?qpcs@!$%ttG-y5DLOtD<lbvfkd@4=U=nhhBWeYx&GoRxNIYly%Ut-69
      D8#5Ur
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor$READER.class b/libjava/classpath/lib/javax/print/DocFlavor$READER.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c16b57949ec499a1b019c12f18f4ec475dad6991
      GIT binary patch
      literal 758
      zcwT){U2jrB5IqAeU%iEjQVZ7FYPC=m(idN-Mgla}&_*c|O-#%}*RtkvFS&PV>Oaso
      zAN&LQ4~!2@H1P-cn~ZUGOEgj9%VuWwoHH|L_xsN;-vDf3GmZ#h`IR^pCzVm4JY8w{
      z{T){v`@wp<S!*=gam)~MQxSxPPzFl4T^WSR_nz!F2=tIJU-!LG3r}~2JC?J(w~yUh
      zKb~g@$xicW=f#80UW>5O`d`~BA!WgjTD9GMLSnn`Do^QqglMtUCCt?QLz%!iLSD-g
      zT^Z=1TV3rBL=Z}ScdTFD-nx?l;k<(j$Pr@O6MC*_8&_Q69aRoAcR#9@x=Ds!bdbVa
      z0(nBgYK~l?yuU>a@{$7wbA(Jwd2)X|?8%@bdafj7TYjGn5o`<RwwS;bLfZ5!E5F>9
      z;!p-DM6qTjyGq!YGSIXUd1pOPA$u`YL)m#fvhDr>vT+CgIOxkAWd=(BcD8Jw1ZUUt
      zWKefS7)ln4o%xM5UMtF<B8mcL5#ub*Sp;l{afRc&*?Cf%N172C&T5v$w_icevJ0ok
      ze#WAWmuy`4WGTyhrVW(d!J+q9qBpo~Z@6S$Xd-u?F{YN-yqR4&#p)k+%GBut;`Grn
      c7te6GW`{D-I<B)y1UD>a14YXsyI2XyUo^j@G5`Po
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor$SERVICE_FORMATTED.class b/libjava/classpath/lib/javax/print/DocFlavor$SERVICE_FORMATTED.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4af2c7aba66087d50941f52920b1795253c5c1c7
      GIT binary patch
      literal 910
      zcwUWCT~8B16g?LT{b0*SwLtL`<)a0=jn5EcZMUYT)Y_INK9OM=ahvUKv)xwyfKUDw
      zAB>44k{A<Th>89fe}M7MKrj&=e3`j-=A3iyJu}~bfBpjCAqr895!Sn6B#sLG!12OD
      z*|#gM82Q0U%W8J2C2Ozpytz|sx2<v%5kmS(FkyBe14p<W84MiX+pU%f^o)=!`Q9KD
      zUf2=tP)_WgzWwzr`tFnvYZRYa#V0k3kgNS?16zc6qgk!D&v>&<t6sL6D%q><upFyy
      z+pgm|;UmI$HrF9UO8$Y2Aw^hFMNIJ~G<6-bAr7V3cVz;E>ju)8Croailhaw<Q^6J9
      zVWAZ=;czS0i8FN3Kmt=SEOGd+qFR-t!re4rDBNwH?*ixaxTqOO??46$Xf`jxs=89d
      zy9Sb&BFxkrPu7RMeHpYBfRL*BHajfXXU_Fu3@d~+(eJyCEkZWFaFkco^4(D{?<#oS
      z-|tF04CJc>#<8XbUFRpiV!o>;W&^|5&VYTlT`?HcMNju}2}ww_{9$0rilaK6zIa4a
      zK?z3H^JGv`8j{uKE<G)ldGvAqlo2dp0+XCYIU7R^8D%)f8D*&6lX_Qo)0ko8EN3q?
      z8(2L7y-dv=<Jw0o=s2U}8#=zF<2xTTeVNx37X*ERK_^(GuWaXg+|##wtUkrL{9~3^
      vXR(dc{mo;n{#8h*bNYcO{nX6)GaRzINfqU=!75|e)SL&%YZmE&O~n5I1;5fv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor$STRING.class b/libjava/classpath/lib/javax/print/DocFlavor$STRING.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58c114b0761f26f9cbe9332e7b36c7ba99dce933
      GIT binary patch
      literal 760
      zcwT){U2hUW6g?MOzPhCqr53D})@q?furIzqjSaO*vl1g)qEBXuV_CE8lHH-H|HVIH
      zn%G1We}MnMM<4tH`fj{45KWZ$GP(E8IrrRqW<LM?@Cm>+wvvbuR$hw}aatROuCHo)
      zL2us^CqcN;ah|r?50jW7<fkGCi;)an;dNygxq*M!+9S{bVZIsokrKY@3U4H5cbcWf
      z`?q(_2x;fRGv~!4=dn##wf`quCu9uxiM`uu6H<+y=lZU?M~IgzUBXN=cqvo3Kqx4A
      zs%m{T@am;rUxblVJ0tb#_V(Qj2p26}LY|OlOz8Qt5w3Z{KdyBYs~^`Z-84flTgYH8
      zg#w{ydJa9|`hPdo$SW2s%n=rB*O%?l;7Ep!IPxSRX9qntM6fNKn_>#r*eR`9)tc3@
      zW(IMr>Dkr^n^Q)bHY9JY`fkK-4BUZq-VBZ4KR~vw6O6*1+;{az+27t)HI!hrd|!r5
      zPehUAW{I)mSmVXw{4L@rVipO`lAOiBhG<_nF6gZ%wRvP2vB24`Ve#!p(DU5lIdW%M
      zGV!vBi|-6&h0m;p(pOmY4a@WeSIrHV^czju-DixhrM7P6R?kuT!_MeBeMgdh80OL#
      ahwEl29c|zScZuPq;cTL8SY#HfApHw!UZ(i~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor$URL.class b/libjava/classpath/lib/javax/print/DocFlavor$URL.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..230dce9072626eeacf40d388c019f7fea9bc413c
      GIT binary patch
      literal 2264
      zcwT)~TT@$A6#n+%7Q*Hh?w4N07O0R?6|qn(gam>qAPHD(6%WZF96UKW%{d^|)_S*E
      zee(zS0~}}6nKEN%obk=^*&pB!@CW$RaqYz^q!5~iv%bC7w=R3_wRiq{{M+vUhVWe#
      zG=YvyeOuoNI|bAB!c+Nl%+j~>g`TCwL>0;fT1uJ)8eF4b>ejMRaLv5E6rU0hvjVk|
      zyzP3r?JeupmQm6B$MpwyyH5QiP(87fnomaOl2L)K#IZR?1<I!5F@f^gh3GUb79t7t
      zor<aN9BG0J^T|{)vKU`T3Dl*c*Hf!AscVVV8Bz;`4irnt)rn*z9;aH1l&RS2(D2hd
      zR!v4rC=;Zte_A>6M6-~Xh|l?1n~F3CX&Z~Re%_`dI+ggSR%LEDq@~n>v9x8{rZ-OA
      z=<QpkHbwFoBY?94?YiSwW?J{?IKug~XLtjyS1|Nk5CT0C&*Pjx<(Ti?(#vNMwsboi
      zPI`0@+0nk`YNGZ^1W^+}Kb@JG)3Zi6YpyH93ldTp2I&m;44aOTRhEkqwaRiyptZP)
      zZ96l#;SA6bD%ML9b&5q@s4r$Y84f=pQLoIG_wzb7M<0`DP=@hC(Ve{Ox#@!Gc#3sZ
      zq7gM!m=tI`ytBzI)5;iy0BA^?JY&ZTZ+JOt^mKYdFSv$xC5Q?1s36l4GoX``8x%Wg
      zr}G)|rnxxUE9LUKL;}~SsZ^C=X9NaHHT8(fuZBa+ODy0GI#(~hXB24eJ?b*5ic3m_
      zR3Db;0+rarmOG%kY135HHzk@Bb%m~XDXO<VFf^=)Hzb-B@$F+`GI7mN)K!TVMb)20
      zwV0ZgXjN2$rt%o-h~i}>+7!>ET{F+IbkjZ{D$aWn?TV8V=q|-6-gaK1Lve2jbe81q
      z@7tB=RLrg8q84rZeTgo`z5Pt?-p)Ui=vLgjPa0o>%Ui!EaRN1T6B4Fv%x&e?j6zCZ
      zvkWzC`82(&I=!y6W@P}M(M+nL7_<#<ke<mP%J7A{(_adlFEMqcE;l_E-iGPYu;t90
      zk-F_rvS2d5RY)5#Q)RB(e~AZ`JEe@<wo!;!y6YO`S4N3(hKetvzmH~WU<E2^RYfZe
      z0ct(H8-zR5Gr_Xfmvz3Z_ho}G8+{q_Ws@(Pec9s6R$sRHvfY;*zU=g6moK}0d4i>?
      z?Icc7rKbULi>judsCWdi5<0Vs=YGX`#(j)0FdkqWW<13BMaC~PeueR?j7J$?Vf>oH
      zk1(+kitHl#3t|s3`w(+%TV!5}@iOD<jNf8>lkq!@-(|eUIKy~-KkmknxSPzg7~6~;
      z#s$V6<88(}j6Yy}hw(>0b9+9f?;<rFS|y|wM7vgp9xa56S}Vr1PRwX0k<!k>(azzH
      z){pzzAimcw;RkIPKWdlpr#6niwMqP=#qh5-i~qDaQ7#_i6OK;3R{uSF?Z;Ib9;FNP
      vUkH7=i_Z@#2r9jH16A5h_H5nb;VV8wh3+FxQ8awbKHuO0dkG%MZ&Cd}R~HKZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocFlavor.class b/libjava/classpath/lib/javax/print/DocFlavor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4edf51019ee103937187819ec2cf13c0b9f22b03
      GIT binary patch
      literal 5538
      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
      X;5P)nC3u+N_XG!MZc+RhNAiCGryn;i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/DocPrintJob.class b/libjava/classpath/lib/javax/print/DocPrintJob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a409bde0b357391881fa75d0b734157516f1bec7
      GIT binary patch
      literal 719
      zcwUuK!A`<J5Pge4wTe_xNQ{X`;X?Jy$pk$Z5{*qfd1=dpEWsArZNs;D@B{oP<7^X3
      zE3pYZ>}=+}d2c#9-#?#U0B+GUP!s6Q-PB##%SZ;w9*6$3zC4DWfx3XDL3`l_GyBP#
      zldl9W-RX4Axl<~VUZQ9sV?_Z)0&o3EQIJyN^I!g`M0VHkc7a1`G<X&06x=ta*Hxyu
      zm#%NkNadojz_35qr3HaD3uKT(Q7V1nf&7suqFm6(vI66Bk38whpMRl`gkrTd0P}w3
      z(^APWhz*<wTx?nA1c9rF-ounCp6h0}=h7W?%c2`C(+QKvrw6&<saS<o8fuHCfWRK~
      tXYgh<(1hMF1N&J#fSJWZ9A&YEW9GM+UFT?V<`kU_Inx!KJLj{8?k_40-roQK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/FlavorException.class b/libjava/classpath/lib/javax/print/FlavorException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1963fefb6bc8163ce029a1ee51e11a06139deff7
      GIT binary patch
      literal 184
      zcwRg8Z`VEs1_nb0PId++Mh5Au#InQ+{eq&*yb^u4oW!#HBG-!K)Pj=C{5*CB7DfgE
      zkOKXj#JqHU|D>$c<Pt^((e%`k(7fW(f`a^_lGGH4u3|<8DGkkNA7t}f@{=Kw){G2X
      u!TF^{$*FFcIjM{cB4{@0fpoDkGB7eQGk^di&|+2wHV}(}9Y``UZ~y?}+%oC_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/MultiDoc.class b/libjava/classpath/lib/javax/print/MultiDoc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56b380b36f7a87511f2cf8d2eab4787622d6eac1
      GIT binary patch
      literal 248
      zcwSvj%?g4*5dOwY%QAvG^ayon>D;w~pzzQWm@Kj)uGktrTZbN?hl*wcLmC){?`OW5
      z*Zc7Vu))NKLzrjrJ#Iu<slteJog1~&i4T`BwTj5&A{Eg!lZhdCsWdDTX3N#7yU660
      z5bT>omPYB~=3~gNZ-Ua|82uE2TgZm97Jm`#ZJTq^b(P42$|WIeg|&5i1VRtC9R9Hn
      UkFn3l<vCy`z^Kb`kF6Ks2l&f5-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/MultiDocPrintJob.class b/libjava/classpath/lib/javax/print/MultiDocPrintJob.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e3fae461086a3578609aa6527f31ab62e036fb8
      GIT binary patch
      literal 303
      zcwRg8Z`VEs1_nb0K6VBsMh2Oz#InQ+{eq&*yb^ui(wve^m;B@a5YH<=iJgIkkwE~Y
      zLO&-lFJ0e1DJwO(gq?wnkwF|;ACeYE23D{bBZH@g4>q%{QA86<N{TX*N=s7p!3G4S
      z7M7+KmpH;igHubaHNzMgxLhleQwvHm^Ye<?8Mql4q>#-3>x3%+Dh|#sElN&x%gjk-
      sWDrI7lO9Mb&;yJN%s|Wv3<^e|C)pV|fILnhj|E6`0WlAd&BVY90I26zXaE2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/MultiDocPrintService.class b/libjava/classpath/lib/javax/print/MultiDocPrintService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43d52b63a1fd8dc8e0584720a7c8d4fae5f49a49
      GIT binary patch
      literal 233
      zcwRg8Z`VEs1_nb0ZgvJHMh1nf#InQ+{eq&*yb^ui(wve^m;B@a5HC2js4O!%m7Rfw
      zkwE~YN<SwtFJ0e1DJwO(gq?wnkwF4kFR~s+2C?L#)Wnih6a&5TlYsVVX!_u^5~#wO
      xk%22XzqBYh)h#mzXpkf}H|c>)06Kt?ff<Ndf!<*RI+C4%1H@wB1d>b)Tmau|LgfGe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/PrintException.class b/libjava/classpath/lib/javax/print/PrintException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73a3056d76506ffe66851e987b96acdaffd40bff
      GIT binary patch
      literal 788
      zcwU8(&rZTX5XQfSLbakO2rA;g8x&(>JYq=HXku)P3D~m*8>qpSl%l+rClU`nfDdJy
      zDGiYd+QZK5?)Uv>cKZ4C{sG_^dop4Ig(vgH9BMt!c6{xQ*UMqc>iM?o$dClGe6Mv)
      zr>#vc1d^w=WBWCMc&Tg%NEhy-r67*Q6cR`Zq;=b|ZU@gz%WIg;t|gGs-Im!kOwZ<h
      zcqsWDyDw1G=QmLm*evNYny8iyuDHq-*CL`u$8%q~M3uV}R4F$TLFYehb)QPNLvWtK
      z>*Vfp^S?v_>I~~2jczlq_^)lcb*1hOyq0xk^R%+llR07&4nRKv{7ID2@M)E4cS2E6
      zOsFF)yipQ^LaRa%I3w{nmMBY&MHH7QGGHYH)JVzNq*@sv9VOh5QV$6Eu_`2RmO(Zs
      zPUD-!%0*fCq%`KRHn178wnEl5J(nLWtChnM3Q^btnalvTKbB2katPy$TZ~b@6S#N3
      E0WP4F)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/PrintService.class b/libjava/classpath/lib/javax/print/PrintService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3eb58635966dc21a9dd5c8bb6cae4d93fbac4b27
      GIT binary patch
      literal 1813
      zcwVhlQB%`E5Z*&=0Rce@loq9mXaY({#|MXWIyz-KQ>UmiDLm+dUehy#2}!+NGV<=P
      z^1&bAk8<2QZA_DPI)Hh|&fR|d?e2G*%g<lme*nN!*vrEdf#NBR=+|nWJD#Y%lW&vp
      z$gx-+t`k_4-l|JIyZW|!$}B-(!QzYxrl7C=E`hS9x056XzBO<f1aj<4NZo+Iiq=k(
      z8Txwyb2byNgy2p$6pX;jB&^}mATWmM=>R)aZOnivXH3WTs0caI9o9Pg`xlC@X9}ow
      zI!4{l@l9YpSuJ+;OuJBZCKE_fM3MvcnTGB^u4C$kSnu|@_J?#M(8^Z1JEo9CYoodH
      zSk4=IhS>{R5@2GSXCq)40e?F=YBi}Pe11-#l4?DTz`#uz820-<7pxc8(ZKPseeOv8
      zFyn_z#{||!Y}a<`=qZn+RO%t!r>uPG*=)Kr^0_fdEO}BR)%tch<^OjXt4SSVK9ry|
      zkS?3-&*U9>K}J7}quP~AoB$#)eL{nihTp?cyQb+a0vk?{9*gt1D>)t6uK}-&7neH%
      z8M>ZGsD>ty?V~o4<SG(j_JR|{L5akranj3}3hnhq-X(1(5X@to!1LjF7O~V_o{2H^
      zV**>8o%s=)Kt5~wA-7o5aq-lalHfg=G)Djr6XdgmKa3lY1Nq~~!?dz9FpK`1=$(Q&
      zT+hRT+P?*h@xF|^4a;i304vI_!dmPv;(8rQ@w$xb4Y;FlcVSc63fxonK5WIf2e{sb
      Whid;3Xv*raqwKD<h<vP&PksYj`a5O-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/PrintServiceLookup.class b/libjava/classpath/lib/javax/print/PrintServiceLookup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8c931f310fa2eab99aa8e1e901e82fca5f7536f
      GIT binary patch
      literal 3781
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/ServiceUI.class b/libjava/classpath/lib/javax/print/ServiceUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c047da7b81127a4ea15a98265b604987f7020f9
      GIT binary patch
      literal 1871
      zcwWU+ZF3V<6n<{mWJ8)38bw@MU_sHenl6Y|Wf84?BN};WH8Yj*!_DS)_cGhvx-X%f
      zQD<~?{0;cUzaU>I!VG-F8Gn@HxtmQ&p%(pQX7-+&^LEd9&dZ;F-G2z+9F}zqF&w$c
      zyL{8yh-8phD<bMjM|{!Hp)nj*BFpE2Yh7*M6i&iWyeI>iTw*v-n`|*?b74o6aR3J^
      zD4@u2s3`++C0%ce=yTro1w*wNI^1vZNUHxiQ%gJ<GaPO1`MAw6oU!I5_d}QAel1h9
      z_^rfRiui^nop>$`)})(8Jdt5wHySr~`MRdg+@bw1CG(-P=<{wE?Pl{NiDWxXM9*|t
      ze4UConeB5|L}E|=^9u~+g-u6ns3>C{Rfc1OR4xnN@kJaD6v}uJFX=eKF!4;j3qe;#
      zVX!WOq=KV(nH<Zw?;)$lmn9ryF!wMpWo&x6>U0@nm{8?9PQ}lG&1$?t83nFA+0t>6
      z;q;E6;rqhn{%qu?%G)5^5>7G9EXl42%q(>??qzNADB@eDWe%{5&2?e~VPdw08Kk~n
      z#tBT6@hV=^ai-sDX(D}VR@ufCyp9_68;_eZrp7x{yYWP*y>`rT@0lqzdl*xAQ^y+&
      zqq`*))G^Iaa>5|tGKil_z3-18Jj-Br#2Qciehn3RD)QV`bWBqQX5xvxlGgDS!*MrA
      zt!G+7M7@44)9k&i3h)lYug~r5|Fy4MD%N)^cn|N>OvWNn!>qz$DAXE_p4_hBqMCgz
      z_QG3=ajAk2@ez%;D<~qLkQJRL!=v`D?K?6<u0xIdJY*QyCVdV1wy3mu8K|`5`(Q?$
      zvAeo7ko##D*D~my-c>u8(j4w|Im6liiZMOW$=BS;=DvNSo>~dh$PtTDEz!}z!kkt%
      zI0ae*P`@F%(K@D6r+?>(GNOg4ZIte0;xe6OqQGTn_!Pr*tMrtJju1VFQ5+(T!*th3
      zGNxRy5}hUDc=zzaZHzp?*lN|-#`vT9V~o@v-bTqN{-O9MR;%VVPCqiV#~82Q!z+gN
      zJ0^$lOD?pO@Bz-PPSp*~C>X_UoWGzO`uN0M%ozGzTu{dczYU_D$)ZXrsV>E|N!w!!
      zHGD&3{Vi;KhXs6(&+r4T6K&x~e1)IT#?M)1%e|N}i;pvSJj`J}%hn^i`3wgSi&)Cw
      h^9Yj$<*aU>5H^ME)+Fym@?6CgTqP73u4S=Z{~Px(46pzI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/ServiceUIFactory.class b/libjava/classpath/lib/javax/print/ServiceUIFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0e7b876233e4c4d5679fa4f101e07e1dbd1e1bc
      GIT binary patch
      literal 814
      zcwT*y+iuf95QhIHPUEKOftCgerKPmcq)3hsmqkdyagZa&j*=!q>IK@ERdD5aE8A(|
      zvA9Cwf(PKC5VNKPx0Sfr*>CjE&S`)C`u+pJOS~xI4#V~tzu=!6=W!6Fje&?S0$&X6
      zHuqB*e<?v@SW}8d$fHTa8=nb3WvDdYdc%_sL%Z)e76Y>xmQ5KYDUZ?-4`-r48JN<w
      zy0&|zQ$9+#)NNjK6&P0g*1+nItX9tLGc303rsKUMC&Rk)uZlrR#ZHcOtW&6R8~idg
      zS^*E`gbL}HUbpADma7WXvB^-)dNh(t3Nt#UoSw@_MAS#QGf$!80mH^M;oleaUemRl
      zO!J6gWuCFeBM~wzybhuueZx?w)kh4PDL;xb3V2e%HXc)nP7n!qHXV!jgpWg^nvp&a
      zM?4M`Upck(Q;;z1IR9J7F+*`8QZ<pontgjFb?4@?D59E0m?2LRmrq5~mT_OIl+~JD
      zKfV13&1E2Gu`k+zQf=NW!cY;~9;jnll#VSFu|QN(3(j~k$7SNB99M{!bG$;linTf4
      zCEm#KJ>qJP?-Ot3_#sun)THU$A<rwajBN4f8+N~Dl07=hWP$h4aEhmNtNamR9|uss
      S{288S_7FAocTvwGkA4I1B&!Yp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/SimpleDoc.class b/libjava/classpath/lib/javax/print/SimpleDoc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f0976e909d0b2be529559062d5554dac520ffe8
      GIT binary patch
      literal 2719
      zcwUWFTW=Fb6#gb8S+m`QkOBb;tqHU^c8J>orQGW{H<u7n=hB*6y0$0IhPBtM*CC;m
      z+9&=(MPB;I6H?leqynjwA_b{WNL4RV|4Y>~v+K>q1SyK_nanxoJKuNCnep%cJ^ls2
      z2lz@s1H<lFeNLZ`mu;iu#K(+c+2nmzPC+9>n=r*qy;O)_$<FeeqoA2#M=*d~8Me!P
      zpYG@k?Zfp!XBnEOO?}R?89IjRf(N95TvXk0Y$IEBc!lBU1~=a#0ur@<#<)bTI5yXd
      zB*V>XSn*V;Ty@6ev2dU@&nb1A?~s-!!gkIm8O{ZUvB;~eU&C~Z%(^BS8k1I@tJsF!
      z8g^n2!?sA*q=LN+o$J|BrpXJsnXn7hA}=}p^EqC24678veul7L*tlE4a8X|fmn<io
      z<>6A*G*xuqfIvS;6$pwT{YI%kG(`S)G=y=8AynW_($p(d;Wr~)0dIMDR>fhwtKf*&
      z;($rRdpOFVQ2dBq<P5tugnP+UbRni7S~pXE?KE@?l>LN~=4G2#NUtum${Ye%MGxLr
      z5Z^F*F1kho`ysWA->&LrrB1EavaYKkoM31bh91M}aT~4RBkydz`5}BvHK_RoCPu*-
      z&rml?A)I44oTpZVjf!l6H670LoT=M9ANIQAER^|nFkH}}AS8C5XxI)_MKAgkBpG6x
      zk56!RCLF^w9D`HU`!PVJsFsRW-k3J@tjQ-0eurT+vehx%qMx8Tq~Q%{V)v<r7PN}p
      zu!bFIqk$MUN_?bR%yN5N&=B|B%IW5$ZcAF;VWTr+RO)ZJ|EAE5YoXrziOI7ovQ>r*
      z8pZmv#IUa}H29bZ*U|MiY2&o|uafFtwu*vGu<ciT3zc7vs~DOA%O2<R4r#C9tv@CT
      zZqRkzl+TgmP$E5*NT(AS1yfX=T4-`cw-dIlFVyCgs5V?ns<?@qxYK!trpUFVcr&IM
      z4r~rSHl9w63@Vr*nKfYd#<-{|3OJzP)@uRM{fWN*G{a8P>5e+->|K!U=?Dl7KC23>
      z*Q)K!jQ7{n-uAMJcmXNZZn$j~A-PvY8C4;9PD<_-lIOi=^3@Efk<p3qDH7hFxJ+Ff
      zv#NHE4;W$qTm50{5wY}U(5p+ICi-g^canbi+Qp5OD~&s?4Pw~kN~2C|Gx_f%D-8s|
      z+9<w}PQQ(=VpnVpO7{!2JV8gMecvkHdKz27+bihoUO{99#};v1?Anjh{yx;$Gn`yR
      zSRS47k4`Uo0A~e2G`5WM(e7njJhq0`=&_%XSjON3grbaA@s$!^mwu28FVpvk;Dt1?
      znjrp@*n=-{5E&ez^(e05IIiIgu44c<$bSl-BTN6~po7!jG?jV=Rm|cpZs8l4ga<@j
      zjktnQK<-4XnB0kKHOQT)m#F4vlwDQ_aax5}Q}huAmwbxN^6+a3t+@^!H2v0Me3Rgd
      z^}+Wx4W1yq4WtOfmyzCjnDg~8-)#zWl}c0(vqpO%b0(S@{*9n6y}+a(_6*nWV{h~c
      zZe~P+U-9KCveb|VIOUqTYc6=^o>dsqyw^3)-lw*@rjv9okYmr6V$YvawnpTsC7@41
      zt}gSa9M6YjU80izh~4;!&K}_eXc(|U6<nn!;xR=$45*v&)tM;1qV9W7UCL9JdQqca
      za_N^n`t~XuO5@YNvrhlCm_-T=(5D|L0v*7RTwVH|@|L|M>mNk_Pon=9(f^z1|AUM8
      QmpoqvXs3MI3lib(|25dEO8@`>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/StreamPrintService.class b/libjava/classpath/lib/javax/print/StreamPrintService.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea5c7826d5b88308724c1a314840081c613c4713
      GIT binary patch
      literal 779
      zcwT*y%TB^T6o&tSLZw#0JKn(+U}9t94&%ZLt9nT=EZmp^6C469DO2M^xzI#o;=%{;
      zp^T@~szixt+L<%`&o}=$Gw&a-Zvb|&r6a+x(RFT}J8R$zS6X%HbEkh1&g<O26)mnq
      zW5|UXtLL~K>%7_JEvX~TkRQz)&0&~mi{Zc<@-_pzVn}*{WLUHnMtIhFAP0erHmfqE
      z_k}Cu0mE`>yrkS<(2l$|H;_cu#3XVAEtMM?FwC0Bz+lMQ!sTZ{zsdber`aPHv$ofA
      zdJV@HVH_`N@<t393ikhXlPx_iBHU!zgpLW?q{C%ot>*cChpL({mF=JQ5J<S4>ZmYc
      zQ@g%|e;Z(k;qiCFs4i-mQTGDB#cLw;y!6-KPKeTqWGzW=3JH41AsuWYYzK`gXw)c^
      z{!UR;QwqSSykNSr{fwDMrJbYiG%<if(jQaq3FawUjMP}58PqJK(s5!5xtO^}8b)Kf
      zqCF%3!!uN_O%6^K%ZyYJi>}iORw-s!!+K1z6q!6%o-p(94N9xU>k&vQHbnOpn`4sm
      O_rH?6W0MO?Rr~~8^_G4B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/StreamPrintServiceFactory.class b/libjava/classpath/lib/javax/print/StreamPrintServiceFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d7ebe38ed34af27b887afc7adc0f9236fb228e9
      GIT binary patch
      literal 1596
      zcwUWE+foxj5IqBn3+sx2qJnrqMK|15#e2M?5j0#hh$UcILoz0V$!^@8rNlqcAMjOQ
      zP_(ps)}Qc8)SgY0AW+3V%*^(5_ndROXTJaX^cBD<Oq-}<=vm;4{H0qCq^I1B3Is1r
      z>UBm0i!v)xJgfX*$%MhsqFvo0_ww$<{DR0ThHaOnC)HJkdM7c>U<~^?VWA#PHX5*v
      zVP{%;VmvC%i(rb+7X?FG+RyUhG!LZyuNn<ikRii~^p?OR8M=$U|2!&h<{|}U%Q$P&
      z-SV@kB46}_WO|hcC6Hb|nV8+;$tGGETI2Xg$)Y>L!$L+V3oU4}up4_!v@>+&y~xcL
      zc^H<tD!6NN*w~AGq)dguWZ*B#oCq{~rv})tj!q`ht4ED05pYV7+>TCknb=QSuHUtB
      z00&7>PrRh^>~<10IV(j=T3|SAqZ>yEMP8_hNR=a%@`Dmz7gE*7!Z92-(X*xpDtk6g
      zz@bJEFCtzf7VXaZ6B9G~%w8LP=x5kNXJ(>u*$<S+{i_Ovb~^vnVYOry2657a`xijW
      z`9=`%rO>8UK1~34n3f?C=y7H@Ku{y3b|Vqb;GBuG49#nIY@FA88neEqxb#9@+KV<W
      zX=6Rl<+S>jZCn90y;<Plcq}xv|BUv$ZsP`SlK!E5C1UfaHs7*w8z~A<ehiwy*%0Lh
      zHWMS{z199C9iGLCG3?z$N@DEC6(5r&F||~V@8r6Q6ZTLLv0XL7Rhymm>ZI<Jjhd6<
      zRH<BPtXhB!7pjdReYeta6&BUfY)*|*S{XkIh@{kS#lcP459&llH?>+l^w&TudWC2-
      z>2HW;rmejn(D<Gfb+Bl(Xa-U+FpBN8vMWwB@1VH}&DdE@@RK|nXrB9wmd78^HrB>I
      zV%PXvoE}&~2g5h8OGbyWj6;3PIQkm<^*Zqp1HCI4s>5qo{n~Qj5xEnoH@|=MFXP%5
      z9Tjg3f5V-3|8Nb)XlBreCxm2<a6CmTIJz(o2U%Q14%f*xiaZ{m5PM%GvV@OpcVhwO
      za1Uuh--s!UVVp8I(>Q@i5~z!=^nJ=~P_#v>5g7Eu)1v_W)YC<c=Lg789!BvR*TX-L
      CqMcU&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/URIException.class b/libjava/classpath/lib/javax/print/URIException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6ea533072ef27311ca67d9bb6591fa847f80c92
      GIT binary patch
      literal 333
      zcwSAA!A`<J5QhJuN(Duz#zfx$E;gP$8cCWMF*JBz)(Mo9-DbNrJevm}z=u+2YfQSg
      zf99Y4znQP^k52%1xQx*wT<_GoI;52=j89j~?D3$v@`W`qjtG;`O-p4q>0-TO?FnNs
      zWkzYubzQ7WCQwEgJy=tFW&Eou8;&G^{;UhXW%uH&IQP+yJi?WfbG_v~KU<$SRb`#$
      zw=g3-gAMy7tJ)euG@Z%UiBwjm{`bkSa7|}VEt=t$`kpY%ZR0f0i-44LH@OYYzHlOB
      nM7Y5*`l8~Hh!fF+jvk6W?dUV~<PamABOGLmN!SfZ+q?J$x~@!?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/Attribute.class b/libjava/classpath/lib/javax/print/attribute/Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dca6f702481d70cc47148eb73ca2db1e183d16a
      GIT binary patch
      literal 312
      zcwU8&J&FQB5QSgsYWuIC`KBuiHbw?63o>9N8q5i5q-k2l8EJb&J(__B@KB32!YX25
      zP*AV<>ebKX?{o$*L|dXD@VTNL?bXKF#4GaN*(mc`P5v{94}ne&shAR@7ST#Cy+m1{
      zcdOb|h1yw)?UABb3)GGF0eNjwcM#})^=FUnAg1khEKm)tNyul8`Oz!!^F4dB*7%oQ
      zBu|>tnmu|?9w9@CVW1YKnOo|q&G%~En+G|{2M827O8kuiA1P5`Rm~M@tm|lSF3`MH
      FT36eeRJ#BG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a54b72b3dbe569e9c3c5f5a8ee8269bb5a994658
      GIT binary patch
      literal 706
      zcwUW?T}uK%6o%jNW7m%?EzRr`B1pSv34$(+K%^iFx)8jmt8pFHm2uZ*XC?b-UGxL`
      zQPJ$EAtmVEoIP`%_q=mv=Ii_86Tk(IOvDI|`*cL#tf6o{X;CSK+X*GJ8neF^lO_@b
      z`G~VP^&IP|(`U9Mh|_MD;H3Jvq(!~<OkgOu!8yU{QeIhVNz&$w3guI+wF$De?@8)<
      z!2=r;6enFK8)|YI1X_}AxsFF=C>TNcA98(mqp94iRh#lqkp_DWDGvxr^ODJ!S`c@b
      zn)h;n=dxMq1Xqjqv4S$yqd~9fcbPtedjiu9ZU;j-)_HWOf(`tUDklQ>T?JG64I$__
      zx|Q0?3J#f;9}1h@xm>9W^EYrFi46i}h3LzvH;{yZ=q;E?>6k`F$1K(qms3;>>nh)v
      na(NVV+{D&zy{PgMw)J`$J33aTeC1D{-6^++eYHk#peu(z3d6F#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cd7fa90e3d30eb4d263cb749970981ccc145e3b
      GIT binary patch
      literal 2396
      zcwUW^&vO(-6vw~4S#~$O9Y`WS!VlvHqhzz16^Q}{!4MK%i3_^03V7+Av`MFCXTr=Z
      z#qu|C&?+q|S|vxSC@np3@gfH<Uc7kmVp+cK9hNn-Q<KX~PxpJDe((F<o5%lt|095t
      zxRphU;nJqKBkoqVJmmxx5d@xUwgXvNe7>s7;Ci5J6)5RX*E^22;kk~wC)fHdvPd(G
      zYEs1(&U)oab5mNhn_)Pf%+Dgnu-|wqw^Em$61KW0nzm%fY8PJy4AZO0qy>h|IpwI}
      zJj02Z-8hsQ4Cy6zP3AF#eH;ahG7Qa>8d;1pOuk5|*0$}dE|H|SeAkj&fpVQ3_A?w4
      zeY|2zbc&7}6q~Z>kVhV4IH;+I7!Gs;>f-9;<E+#5!(cefF^oLJzE$POTD#Sh-nDM}
      z<EySE?1mso=sVm@2OG*~SlLB>$)zL7cz*_zy;xf#xfA7EDBUbz4~}!Zf+E9k&xBzr
      z(U%HE*DTuht_x)@o8fp3uQTL(RwTq8%a+2^$8T`V>H-!l*9nAj{L8XKt<^95k}Z5c
      zq`k%QCgvD&mI&m!>yhnP#FSy=Ijte=w$zUAaGcUPXXNd+u>Bpi?RI~7$61bdahg<h
      zo140x5i>ek*RszKh%!l-1%1N>j&pdQ!ZgkKm9S(@w5SNV4dHL-);0}Y)uxv?7IBfL
      zO8LvJt)OF0Oqd^WEMtW-@?^`sW0JhgQN^5IeWF*CZrZ2r(HmDeYK9ZIi=HPsx?M`Q
      zb`|Y4j!*F!Rj}^1Jxi`A-O)z|_UxSIQF~S$M|wsP>1T0+p`6?=JqW`@T<fDqvp0kk
      zMU|yhN)I9Z8TZn<08Y;l`ufsX028whu($jOBR^p5#`sGQaNyx=`8!N}LuV-*q31#3
      z0FRNzPsrhCjN=y^!ml`L&I|*`@G@XllXMpiik_YDrVC`FtqQZ>Vxqi_sTA(_;2AOk
      zp7g;AJy-#+V%orHHez5WqOjj$V5KlJnxqhRhThsEuVLFLGrY(;Z~T8J?VcJQ?^=eu
      zDLr5@AyuLwJ&OtHB;Gb5or)D}J_`FIK`a`}7}%L8?9Uk3dsr|qn!p&?`4qn10sAWk
      z_Cc5?&1eXl|G)A}EE3q?168M49!&T!O893Wp&DDak0a_ZmQc59Y~5C)uuMYTYH{jZ
      liR8u#19PJv&|pHH?W`3W9Y9Fox_LJ6x!Ki>FK`q2{{YC}(whJP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedDocAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedDocAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95e45307a4a6a5dc248ae68b3dc6001c37165880
      GIT binary patch
      literal 776
      zcwU`S(MkeA6g_uSH#f^Nv(lFyib|oSXF~|35Tuta-^X>piFG%2$0+}*r=W*EppS~~
      zYJs7}76W(gx!iN^xx>7@zq|rCMa6_cxV#nj;=#TPm9K4~b*OqHE$#EK%#r#=D^F=9
      zqkZSmcL!nMtFi320(Z8_M2gV*uh@5`4B=q0(%jHxLNRW&RbV?ZRKinZ(eorBbEbTy
      z8-(gnCy`kFxJyVigTAz|gw-6fSR)+%#Ga$(JIa?=qhU{m*Ha6HPT&f!E7%s}&tggs
      zR77YekWKXPbwW<eV78oaUxMWXqtKNXDmGSLIQk^k;t_4%mtoTrQ6wW1yM)>w{1Ym_
      zY=Auwzqo-kO#Yd~Cku<?3Zn+s4Zbtg+B0%boEgY-wBjn2k){gP8JDJA*gyf8WSc0m
      ShJmdKr-bbZD^}k@8P*4of$2a1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintJobAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintJobAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fab5c6fc27474853f430cd92bb220f86b236c762
      GIT binary patch
      literal 806
      zcwU{7QA+|r5Xb*>sh5{!nOWJ34@RZY(X%0h5fmc9mG67H;KsEVcWad2s;8ibK0qHT
      z+B*x3PSRMIof+o;n;CZBKVIJe9An3XL1^Ey2li;+2SO^FDHRBJsJMOl?KxcCDB%eu
      zcvy9wWN#4oQjB>2DpFkf?qsEj6yfZ@#Gj-Lp_WWa?z~7SM)kJvZHEVfd1Ay|j}tN{
      zLJHL+*!xqqO(Hf9x`b5A?{f<aSk57f6~f*$#4l;SEhO&@?_3^SkLM_~{T}nWOwXp{
      zuVhLML`dk&fSvsv8iX91hzW=DY)-Hoe;D-mxrjzACk}BG0d=1XDS6QHSQzrq#5SQm
      z$0mfzU%Q|J(hp!D4O9PH(kBZ`+a(<}b>7f-rdEGJ?pb>V^4eNama0h8E>?A18dqTr
      Y1t9j;QPd0r8?mN@%~%!Dw@`-l35GQF-T(jq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintRequestAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintRequestAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37ebb16acd6b26279f6416d348f7e20c7b827967
      GIT binary patch
      literal 830
      zcwU`S-%A2P5dP*;FE7h7v$B^Sf_?~I(W4=R5d;$AmG7%AxN_~)-CmUcRZl?={Q><^
      z(cW2Lq~OKE?0my~-^}dn$LHHSfD`PPFbJ(7dt^`cy)UG)nNq&!hKk$gKc2(YtrD(K
      zf(Lufv+NCgPl^%mw<1QHKZHC`li4Oxgp2>G{#MEms?(KbS6?I)BaSUR+u^=ot{Abd
      z%L$n?A%&_FP7j*NRBMMFLaO2QxrGHR=a9t;VSkp)A8NiSB)<;ty4=4R_flwjJ?3_p
      z?oZ?IU`h={Kxoe)n`|dFLXJ&f!g10UAXttU`aOOrqE^dOn~9gDYh6jn{f5hefCnbF
      z36%sB5$2i+yCA&`18JE0Ka)OLSlTXWRM&As-<hMzD{?Q|GmzKTilS6Snry6UTpDL#
      Z4Fw?f)=|_N1~y_&37au1Qr|)u))(aA0PO$(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintServiceAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintServiceAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cc539d39a6f2b3f8fbdf55ebed88fc4571e3f2e
      GIT binary patch
      literal 830
      zcwU`SO-sW-5PcK-VPmygYt?%3Aox)*iWj9)kcuD_DMowWrVCw(i6q;i{a2m@5B>mu
      zlsHKhDpqJ@VRqgy@6F84zJI*F0XW1)76zepCkEotdI*%KEunRwI(;pzvv1Fq`c^Af
      zX(hug`^j^9f$yoI?6x9?ErWq_<al-#DZ=@GRevgF2>X+j{;obtC`BAg`4%TA;i{qN
      zxRQ`LRi4sy!qHAMnQCpfO-METt~4=&`8;x1AZ-67^NU(&Do<YZ?>jQM8TC?Z`i^kh
      zg8O6q6-?=#3JKR!$R^uKjgS{(m~fEv1qi0?_X9^>sHoM-#Af1Uaji?wlR?83VJO2a
      z)(O=F6A`AG37a5ZhJiG){GW+W4kp_<Ms<!Gd}sEmFUUW$XQ05=jG}amG@W3Pae0)5
      ZB@}_!TSkdB46MYQGFD?&q`rm<%un!?0C4~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiableAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiableAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2024d1526981412cb129ca738370b6f24d229e6b
      GIT binary patch
      literal 2385
      zcwUW^NmCPB6vzKJAPGq$gA>j{Q3+AwfFn5Y5EMlmA}MiL+=OemRHqxeJCx|gjT<*^
      z-1r?_Xq6VFRy~(i`JrCDb8nh9MbdUERb4lI&-tC{fBN@--~R=05)a~tF<e{XEBr-n
      z*^!o)<DTcpV$~D5@%2+)cypdKr6+|uIA>Mt1^G<!qABVv;%H~+QKX#7t#a;8aY>Zu
      zZ3n}FXnq_ChOOFL+PS=NBsb+t6@wwJTwLKX49-N8Mj1NBq$Rz}3`d4qamW-H+9&J<
      zkwhE14W!V+&^DAQ#L>sF?@vjyRnxp{6G=FeFG^zBleU$>R)#&ij+d_R)wE@M>7qzm
      z<dH-#wkzrmhHbTkYPdZ4SY-;|35J~pI+0}Po{^TAtyYS{c~C3AZ^kZhv%nqQa{pz!
      zw<ukPsTS&s9v!vJsIP#k=L-we?#T9yW*)_HfZ=#^yZV5{4Vsq30J<4E151X1$WSy_
      z%4*y+Tb}D9hGcL@-P%+#1$P)yCEN12wA@=_l~h+hlL?c%E_tS~3C9c!Bg>E|aZi+O
      zhirQrOc}b?X$5Xpg>pP)-~`f?uXtYNrn_P6wZ-sboHcM7Bh+xaxTHqiU`AJEHIb1f
      zSw=NsR7DswZ~+%7O|9E!yd-9Mg&Lk%<nE$Uz1I4)G95Q?8CPiGq&rzz_Ez<cPIJ=0
      zKbWA398s}Xl>S`#Qr9|d;JWtl>~Y88t4cMQ$1P=c+rUlSq8a7ws#6kEQVDxkQ|W4b
      zkxHj6OE|iE;l^>FAselO0K(88wgE`f3br9eS;grTQ@cnX$jx+4!Juas{d=M<fd1h%
      zY|j2d*AMj0_ib6jwx7e<ujv0wcQNdu=XT-%d9-5=2^7$WhuDF6?ACXhfj!s@=+i!m
      z#pt(RXQ3jEk&UuS{J_Bc8V>#p$Q@(>Jgp-o0#X8lIHXC3aim33F@!Ya=afN@PdY_5
      z>@TFUCK)vwpTyJx`Tke@Oj5&N(4YN=qcMEkfH3QlNd?KIa2z?E%!!~u8(}9KVb4Qg
      z>ph~i3xS<!gsp_Y&f&a<(T0V<Mq~K20rn~ccF8Z3cF>27=>I@c!M@=tYe?*MUDuOA
      z*J)Rq6RtH9-ZUjl1#^p1(Ay9Ntq*OgWmUh6Q1$h&zT9Z6>V4Cy=yTJYFvA+A^q~nM
      ShFSf*gS+~zV%(!WPyP>&`q~5l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiableDocAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiableDocAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e83f7e560eabf24202f9b7208587a619da63445
      GIT binary patch
      literal 776
      zcwU{7QA+|r5Xb*>nU|MknOW&e4@ITW(X%0hQV7z^rSGe5G;!X=-5Sx?sV~q|&_f@f
      z4;Ag51%?(^EX>Xf^Z(7vvTyG%uK<ovHenFXuEnjmvu^_Slr5ABxHnSLKKb$-sXB^X
      zRxHDvjyLoNe95Bc%BJ6+EHaTIH2(|xPD&GYXOpIyE)WV)sm;Fa$bf~*_YshgK4y<q
      zolx0tCxX=ux`b52A4m&xSjr-UWy0Q1>M3ci&7M3T4SO=U7>|%|`+ebdMG)`!nM|oG
      z4hgLU*hCLsBV@%ytVd3`FTryBQP7vC91T{Q+4?YI=@u=|lR?83VJJfrTZHN#<|mYY
      z*#O%h{o)4ZVd|er`ea~fyQrhO&KvqpSE|p*K55TDPFpL^K4{G&R<u_fS78--AokW!
      T&<q3Xv8ITPSQXJXQG)dWavAB2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintJobAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintJobAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f973e1c157b634cc9f00c724dbd3cb3abbb9800
      GIT binary patch
      literal 806
      zcwU{7(MkeA6o&t^nVXwsnOWJ57eS@b(zPLk5fmbU>HVxubYk6&-7%tfD(EWcq6g@q
      zqS>{;Xr+vSnKOs;f9L$nyuH7?0yw~?34_qQ7PsQgz6sb<woocyXQ-ro^cA(G>L_+u
      zu?)95-oWqkB@4%u=aJ&fcg8DCqzK3VC4MKR36*40a_2chA*#38x7#vc;qrY%C8Q78
      zV^t^EI}_X{5o^0$LaO2SrG*(RWRbxlVS5tdhcwq@Pqu~wM+O(8Ir2@vC)}<GVz-~k
      zl)B=O(E0=R@9$6}WX0H>us4l!g4OniK~J7=G-4@ni2Vqt`<!~73>vNoLm8UbAXKMt
      zLMZ>{1!a(a00Xly^}i*(GO+YMuWxmoH}sjVRG*Q3(vg9j-mN(Mpf!(J(ou0#g=OS{
      WI9fqLGYqW8nj+R>RYYG$3DyT$arP<z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5bfa550f965ec6791c39247c499516d2c684150f
      GIT binary patch
      literal 830
      zcwU{7-%A2P5XZlBnU|MknOWIO4?#bKuISMa!UzHh(e!=QjV8{!y4#EBzv{{8p+BHM
      zD%v{>j10V3*qs^n`<a=YegAlU18{^*69%DiD;~t7edn{QY@w9T-B3yU^xJAl)mH4V
      zVi|0=-GSHVYZhHcHX=n+-iI<!<F`$u2xtGL{v@Rd2a`#EXP+Y!B8|<S-I6{Fho2%c
      zA$`Iwt197mx1Nkz+3OHeHLou%%wQpl3>FDHe_?(}b9Hv*WjN?c|7uiAzV7ve(-D5$
      z^;a;ZZa5$`r@$tgNrjLVV?N<9=?f67mKXXxdCpO(rHRGF!_v7fTvz%vM+AWkOl%O!
      z2|6N7)f2WrdKd;~Ve0=(dSzhgeO`N29XIru-Y*Z4eb$zNoZhWCI@FpMENQDax`k!r
      Xf!JC>K{E`j#+oA5VpT+6M+w#^tfB!q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..43c2682da8882670d913c195cd590b2836751a82
      GIT binary patch
      literal 830
      zcwU{7-%A2P5XZlBU0z<6WoBhBJp}y_x}rxz2qOq2B-8g*H<~!_;%=4bzv?OIA*jdx
      zsA%sjFjDYhVRv?z?`LLq_T%&A6~GZTEf|FQofwD*=RROhIYOy`+kGXS(;urLRa3Fc
      zie<Rn^m=}mZ&<WlS&tMA84S21N24v6gtPxrf0I&#gYl%v+2;uPNaL{Y=l~WjKSpFi
      z>V!R36~gguEg7}E*CLozzbkFbU?GDv7706(Fn^@k8hi4x-)qa@dRR-Y=68hK5<%Sc
      zx6@R&91^akz$TkXnUE19cfw)P7a-UTzaMnuIY*@y#}*S0OXs@qJQ-A75r#6fut6v#
      z=!h^?PuK$KVHlW&rT;VOm4>bNd3~#BzoF06e(4#RCv6$X>fMgLZ(8$?C2bXkQCLO}
      Xh^-amHN(JatSMkERz>u66k&e>xK#kX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities.class b/libjava/classpath/lib/javax/print/attribute/AttributeSetUtilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ee0b8f8c42e769e97dfd433ebd8072c05a90d79
      GIT binary patch
      literal 4904
      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
      F{|AwBX}tgd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/DateTimeSyntax.class b/libjava/classpath/lib/javax/print/attribute/DateTimeSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6702a30d56d147d7aeedb41a96062ce599d9f6c8
      GIT binary patch
      literal 1129
      zcwUWCTTc@~6#k|cTIzC<yC_l=u@_|p@4*mFs|lo{NwJBj57Rm+LzZ3G&XU5P@X^HI
      zz=I|Vi6&m2O#ChW2IHCO%1ums*v*_d=ljlgzB505ef$hy3bzx8FpRJ84c@fZeCaBi
      zE9J{-poCrIN-WA%QQmYFZzd39=+>3C!`-_5sJbF*DuFhJ-u>Hx<GF%Y9g#qiq0c0w
      zXP1R9xg)o9hFBUVtO&m$J@?66k%7%KbQC<dp}4Cm+zCYd=d1Z<M7`c(h;Qf%!j%kP
      zprm8O%`mjxk*-v;q#<)OnXNFy3f@bRLKJ-#y3x-N&15SH3^JVE*Sruo&SQ^e7ykWb
      zO{^&rmBcBAe$zL-$~V)lr_xoCcBwRl0i4!!XQ(3VYIw?IoLi^9?I3;&o#<ldDoIx?
      z1gllyFSe%dDS0&-o|6R>hnF$6EE^0HrT<w4&7G`^mQBQ$$sXg2SP!_<IHIt%vzhEt
      ziWFunoX2<yIb2F0&(L|8#KHwkkYQeRMQi?xgfuMk#<Dip*gB_~rY+dGLMi37+@Lq`
      zN8Uk?bnOibS8<IYRrUhECLT!bL+{~9Cp9uQMrxyoAP#!27)Cp^{uA_qBe3Wrqv;$+
      zjFxheGCdSMHwa)Tw~OBVcXWKhz|)?gT?~K8<v(ELok5S%e}Is{ETQiriF<@DU=T&5
      zP0ny&4CerI(!J=pYU{#Iwuz~K?mb4{?$NfH%ZG->Y88YuOgkHb7pdB`$bSQSgLrgX
      zv*f>m?cm}LvfF!noiq@zL>4?F177??-epW0Ikbha!*nPwsfl+mwa?g6SU;dJxu=je
      Sb3Fd~(Fxa&#oshlw|)aQw&8OC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/DocAttribute.class b/libjava/classpath/lib/javax/print/attribute/DocAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a93670051103959dcc2931ec3e1c65f3bfabc05e
      GIT binary patch
      literal 166
      zcwRg8Z`VEs1_nb0PId++Mh2y<#InQ+{eq&*yb}Gyl9Hm#q|%a9eV6=XM;M2lfrXJl
      z0HjVoCowNw-#;lUHMxYHfsK(t9=mS1Rz?P{;QZ2}<W#rJ93V#!*;qZ0UZ5F_49q~x
      P$^Zh44D3LXiGc$E0T(WU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/DocAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/DocAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..439670442992e93b092ab7de72d1196eb3ed2f11
      GIT binary patch
      literal 287
      zcwRg8Z`VEs1_nb0UUmj1Mh4Za#InQ+{eq&*yb}Gyl9Hm#q|%a9eV6=XM;IqKwS=94
      zg^@u3q*OmAF)v-;KPf9U87Rue$e@JX0A$^a49tlsDU1v%8a@ORTWdx!GOz&^JLcpt
      zGN=<&4>TOCg)2C}v?w{%Ei)&TkwFB_@p>RbfG!0(1Bh9Ho@WC3hMj?f0pu%A1}>lo
      LBLg=`oPh@b*c(z*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/EnumSyntax.class b/libjava/classpath/lib/javax/print/attribute/EnumSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5bf3aa663baeed1fd675f083474b7be2314699c
      GIT binary patch
      literal 1919
      zcwUWEO>Y}j6g|%wXB>B$G#^c&Zo;H#iS4*CO`#ML3dBu{TQ`BabycyN*e}UclNoD1
      zq5u+zB|=E-VZ{zqAeF$8sMPL2Vgm@VV9PIHU#aSSZzhw}vDz-?<K1`fx%ZrV-~0XH
      zFZTeP#tjt-2K|<?VQdzgu4(&4!}nctIq-RL-VWBQAK1RJsX}2mB)p22VXqdKmT&R8
      zucDh_aMxP09Ge@<7FUsC7?K;NQ>=2=G%WK&u|p`HT-LbjnT~zEe1U;oVmMfGY|l4r
      zzh+ngPyYL$#6O+=_(g`~hA@y*nW1~uv`zm!gOV-hYV;{N4W339hBO?)VTP`3uGRyF
      zBN}?q$Iw?XZN3<+FLU==n0}z*)G50`HPAXTD*l@3F&wWvO@|qV)G7~al-a1LWL?lE
      zzS&%*U7;CK+?a+@yr5#7;Y6EQi;iCnnoY;`d1HRF&YM1ILOIq9Z%uHcU*D-x9rkK_
      zg3w9{7_u627-8t4(w0_MJnjqYq=o`cG4zr(bdJ~_&gS0V52T_<y0x3<0@G@6H;pL_
      ziPyA-GkBRgVKkfEZZI69PV57VqGm+ISq`e@n>zDZv{tYWZ34GafdZZxiP&#^Yh
      zCmn0zsd$57WM`y8bt#G)>#>g@{icSu@HRs~krr)}or-v$+~NJi4y!0JjP4{V+cbV=
      zBg_|PN@1R1Vll8Rol_)t4Pn*gr0SBNzT&ug-7-8+7b08~^ZAaDen074O$^B;4VO^~
      z$EzgbNTJ92Esdn;BF?H<qS0>K5^3HO-MPwes#BULbZHJ38OEPM9BN6`3EVngFomLh
      zyIWHtRvDufbRmHx=w885^guM_09`c+X!Ovbr2if$Bu78(4A5$U><Rj&^V=BAXMV=;
      z9qIoZy?Y4_@W?-)s0}<%tKra_&@+Ji6R31S;21_C%%WTa$^1_kz8%ALOXDXJMhhJx
      z7$%Nr6g(FNr>G!(>jvABD}{WIKUUV~Wch+HzubeDit$c7TQOgEEQU@@6#N-^i)3d+
      zaK43!#w@+_R|>zPKl2q1W(xPdfm+B+Z{5Yz&279S{8~8O!Yf;Gs!?hO@GVL89Z7W?
      zgZLgt@B>x&BgSw?mY|1eq7u?{qr56*?IR}V@ERd0;y#JWDny(TY&T0t=>8r;i3m->
      z>!fZ1GxDEdR$_cagcFil3+F47zhUey=57ia0~fZjK-O{#S6X<NxNM_(e=?R}dN=7&
      zN(=l!P=C^d{6*98H^%8Zfq(W)%MPt19g=gnMkOfXo_H#m|2mS%#jTAayW0Eue}_nh
      I>vC0l1hbcm6951J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/HashAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/HashAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c077322f8189452f0b2df98a746eaa3fdc7594de
      GIT binary patch
      literal 6236
      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
      EAKLO<6#xJL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/HashDocAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/HashDocAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f30b0ffbde22bf5fac467fe90f11f682d9753fd
      GIT binary patch
      literal 1266
      zcwUW@&2G~`5Xb+Mrg0lWKSC*`eDy1hlRyoJqE<x+lv0%{>LqP1J#E5@E;2T<Hwf_p
      zeULsuPe>e)xbhCX15bdMwL^hmE53MUNB{ZFe@E+YKR<r~@CXkq<OsDl;=TCbybF}4
      z9iergx_vF3eG#7S`n~7B3vH<_<O%EP@_)4jLM2)IA9jK;XQYnuowf{=aMefAbtPdY
      zjE)@{gv$4hU+xm<fN-_xd!ZJd?g+Op$A5Irzi*#?eMl%gQJ&II31fDxL&!J%SJFb6
      zurk_85o4GuVG7sTj@^n3xx#zxG+hyfJBByiQl32QzwOH4C^lGb`91b0*d?C_#k@XM
      zA)(RAyxJW?)lQNBEoB$R=51s14q-E`=TAf8Jti-egtaVV3ATNbMHu^AG5%Hwk5ijQ
      z7%W~Yd5@J$lL_@K8#K#~P1?p}jj%OxiKZvfW;NqLzEIom2R*r`%==hKcmW%Rgk|v4
      zMGoVzI9tRdiX5--@0vpidCsRW&EFZWY;uh_TJ`emCtSOTMDzSDas;+ez&37hR*Gd<
      zz)g+@u{c0Hi-rLc^@d^G8fLuUuDyscAL|ATlikHVrWo2%GHrR7cEq&f6xtdp1KN5r
      TtvXEWGOd?Nt4Fj()N}tAL9IbA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/HashPrintJobAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/HashPrintJobAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0da1564d57abdb615fdec226f506cefade0ff14
      GIT binary patch
      literal 1321
      zcwUv0&rj4q6vw}BS+=mQfD59csQeJRWwCm|U@%6rN|0;}$-*Xt({!1@klK=V))?d8
      z<K2TX@!-vie~)M5o9>EnZ9}<qrZ3;`=Y8LF`s3HvZvY-*)k1-A|3thM@7&W!1=<x_
      zN6PDJ>28Vmc*oSXL+|;YYD;PhMZ!|H=U;7!FlDr^3f-2Bl<?Ji;rY_S2*F9Gq;(}s
      z#EHEvqgaK(-m4b`+9q6Xgh8xDpxeUl%Hi)HKYs{L_kR*fPgJ1vQ^Js4YZHo%@Q}M!
      z3ClUVmNA5>3dV4iXRw>e6ut<K+=egWc*8))n<|j6yKg)h?V70w)n?e?kb<M~d%sxJ
      z$0{Z~XkP53Hwbk*!}Fh>^O(T5OyF6<T9)yzA$6kBGbN#xyEkFgKFF=^C7m}(7YL6s
      zo##X?pDFolo&4<yZthbxU!fP*HgRi&^>Yu_cv1t`FVdCgYlYpYBR7?~LbF+yB>8(W
      z2fpVhU>FwfW-y8}ub22QFQ9@V@5eCC&k3%qagBJjoa&V?nEaH8rukXs6<9|Jk8zE6
      zm7WaOaf4TbnCT;)CCz{lXT>mX4l-V{YcpX?_jG-R+1<t+rWo4YblTh?ZI@|#8MH;*
      X>(iFfY0HB&k7=Dunv>905>Nd%na)^z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/HashPrintRequestAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/HashPrintRequestAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83bb36a64f4146a8e9474c23a378ab739e814f43
      GIT binary patch
      literal 1365
      zcwUv1T~8B16o%hZN*786tbB=I)DK)*U;%|-Fh)})eiUOY^v0`cnZTHJS9fQL@tz;#
      zm5C<)0Pp-k7|(1g#%5QtH*;oZ&-<MB%+BnOUthliSjCcs9AWLPI1(S7_kr@XBeV`w
      zJJQm5D#F88X6?275Xn$K`tznKwS_!kK3(^3Zh<giavkM6O&KWRs!yWrN()1T<zz})
      zWx{wEBU&;DmGA96drY9`gmZP@3$^fcOSq97ocp=+;`rOn388Rbc}hPZ4A=`TLcZ?r
      zbLBFjmZ5SH1DGgb6qDSG-H5w!g?Hf8T@i*`20YeKo_ra-Ys+BQbVn#R{0<uxY?q&V
      zi+O#hLc-lf_Fdm1tk@~KL=F2g#xEP=R|xBA;=h8#&W2Aj2}_yk6ISgvnG{{e*Nx*F
      zgpE}78J3HunY`D_*(?z5WZGr(WxBR)V|#(HdFDnNO``FYtd+UfrXK|zxvk9cs{HQ&
      z#di%A@LfO-gRpoui(wQwj_@BLhZ6EUAH^7t<GixYYsAs2md}5|h0k%)6puxYz$OZ~
      zhiRUbx@nlfMUDnB+e18zivdH`nqge(XFOrmcFdUS=Jgn6b`{r{VrX;8v`Rm1muY(`
      bw41oqqs=GNZuisLOzWi5sxhq=YZiY48i#An
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/HashPrintServiceAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/HashPrintServiceAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18701413dae5df7cfeefff54feac2951c803657f
      GIT binary patch
      literal 1365
      zcwUv1-%b-j6vn?(N*786tO$ytmVa(rVT+2vU<{_vsA&vIp*M0ftrHou?wZ{xF<g7=
      z!+2%Fg%98>nGnxxE5>G5vNv;PXV3RL-<h4+pXX;k0Bm5*LWc10gE$eNolk-Cv?H_*
      zRHvt<^HPMz`(~{rgA>)2FaEq~No^rZSWVXbo0}udm|REs4#Sji)v4&X(!v;FJ)V+O
      znJ^tjh_(zu<$H&(b_w*FaHZ~hp%$KQ3%4gnk816&U&_DE3Aty=Q~Eh!#4fi9*}DIZ
      zD;EjX6qWNB!At>@xX!)U&8Qn!c<-IME5dNwfTx<ulW%$-J2E&h-4TjSzsp7i+vVrM
      zVpbokknp&fe%H4NH9J8Ut6^Wp_-$i+fv}k*{ws*>Z2TgVu$HPmVZ(l#O3`<`XdEvQ
      zo+PR-v7Eoi<h@=`XMyl2)h?Sa)3<FK+hxMmr5kNDvBqm@D|4?czZZ06Lz&}M`riSH
      z?ixzqyMPQvVexDp<H&QI;6FkJ1!Q?Xi76hZd1aH=h@(|0Uj2@1-=d^h9`hW5E#&YN
      zb37~b({KYfIU2<L0I?Gl1I8*<!?-of*ke^AV$AmQ1`IR1gS$*Iw0rTi(lG6SX@?24
      aWvmQntMRn^!?X_5x{0((M5{)c2fqRDP-@5k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/IntegerSyntax.class b/libjava/classpath/lib/javax/print/attribute/IntegerSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0adb1acbfba46fc118a0198e75d883933c812c0
      GIT binary patch
      literal 1215
      zcwUWD-%ry}6#nkktz#B}0fH28py)P``rDWh6Csi;PBEF8!MAQ)OG#;GcZ*2kKjM=n
      zKJuW6LL!MjUj3tt=eEs;!v|h^&pG#;?|kPwx4-{<`wrkb?y5*IT--8u%w419+paK7
      zA$+?L2yRqd!7c9B-nhctRiQ8p%0$C4UCUT&Z1JX0k!Bd~Mpqoq<z~a-Dl!Zs;f3uP
      zHSXJ{WADiuhSZMf1az_rLwd<}ZE>GLDO8GeI##?5o<$M^8qQ#lAz3Ka`@oRX(1$F;
      zK-G5nlVH2S{bvzeuIe>Sr*2XU^5dW)HtjaUT=f*Am5D~7Qlb7T&NIw*$Ei3Dw@l}O
      zZw1@j6%Tityd`YU%|NHV;TU<>6M5Us`;<?_$1x>|Pcw`bs$HNOHFmACoG|NnuerbM
      z1?~npL95kqG8Py0NE(`2io;(8rqk}hij*%GUt~#^%Nk}dO9ftIOG<GfjbJy;_NJ7T
      zOyNaLXg7u8Nq#D>GK}?xmjm0`;C>bh7?7W98oitwM9(DhlK3R;?gUs|RhAXEG?Xw;
      z<JP>uZ}L?;+}l4(Sd{h342_gT0x76uCFIKKou;9XrW!^1$y=p(g3fH|5NAvJR}6h7
      zFM(nDo~3Hw9_5#*b_pZoor|(DN)|#(qOuTkEXLfUI)%<@iK$P1Kt`YXi2fstujeKX
      zG5MpX&jfJ-Dpd1`(5lq;F|B?LQ+OKoEJbLYp3`wpX<Z;I5n6f3m(Jt{V;%;bGAmX3
      zf}#CRyL1>_523XvA%>=(7nkDV=dm#Q{4cO~NG10r%KT5T1I)cgO4(0#AtR+;lFk-!
      zvyUmIcUbGVf<nlscshpd|1zZ2$HhyOE$?ziSXe*AqQp3Wae$kjdXU~8L&|lKZiiWS
      F{sPli;iLcn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/PrintJobAttribute.class b/libjava/classpath/lib/javax/print/attribute/PrintJobAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f415ad880a475a4c368034964383d48b7824de78
      GIT binary patch
      literal 176
      zcwRg8Z`VEs1_nb0PId++Mh5k)#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwZ(D?iB*Cc@6Z
      z!pI;1Qmmhon3t~apOlrFT*A)4#>gO#-3Yi=Mh33n{L-T2RJY6=AV&<tY(0<xK!X?=
      Sn1Ps;0R$Ks*nuPy0|x+ouQIRz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/PrintJobAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/PrintJobAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e35094df08a574a0d5f4b8a46ad4ae3c12ad2aa
      GIT binary patch
      literal 297
      zcwRg8Z`VEs1_nb0UUmj1Mh2~{#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwZ(D?iB*CK8-l
      z!p^|L$RGexub-2cm#*)hl$Dwc6lG&%P{M8svTjBO=ERf~Mg|oP9|DT4HKQ0A*no;1
      zb8;9N)CsBw8V=UN6`WsMl$`38nUl)MAc@TfdLWa4&IP&!h*^Qbzy$OXI|By;$ZMPo
      OTtE><25yiz0}lWt$5w&>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/PrintRequestAttribute.class b/libjava/classpath/lib/javax/print/attribute/PrintRequestAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37098131e888bca12c7610ce8de9765eddd47ca2
      GIT binary patch
      literal 184
      zcwRg8Z`VEs1_nb0PId++Mh5My#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwX@D7COOwYbC)
      zCd$sh!pI;1(x9J{n3t~apOlrFT*A)4#>gO#-59u5Mh33n{L-T2RJY6=AV&(T`FbEj
      WfQB(LFat3w0|+oOumedZ1`YtT0X9?s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/PrintRequestAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/PrintRequestAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..869a4d59b4669ac13076950acbd179d75403da5c
      GIT binary patch
      literal 305
      zcwRg8Z`VEs1_nb0UUmj1Mh3mC#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwX@D7COOwYbC)
      zCK{Yt!p^|L$RGgHqo0$Qm#*)hl$Dwc6lG&%P{M8!vTjBO=ERf~Mg|oP9|DT4HKQ0A
      z*no;1b8;9N)CsBw8V=UN6`WsMl$`38nUl)MAdAZvU{3>`40I0=vjT&I3Fs|$1`Y<0
      R_c$52fFg_x+#qoV9suLqS|$Jh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/PrintServiceAttribute.class b/libjava/classpath/lib/javax/print/attribute/PrintServiceAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..326ee06c9265f00487015868597e942d68738a7c
      GIT binary patch
      literal 184
      zcwRg8Z`VEs1_nb0PId++Mh5My#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwX@IJKxOGda}}
      zCd$sh!pI;1(x9J{n3t~apOlrFT*A)4#>gO#-59u5Mh33n{L-T2RJY6=AV&(T`FbEj
      WfQB(LFat3w0|+oOumedZ1`YtCyEY^M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/PrintServiceAttributeSet.class b/libjava/classpath/lib/javax/print/attribute/PrintServiceAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97a51ec72d9153b40adbee31801fe6ac44e7b36d
      GIT binary patch
      literal 305
      zcwRg8Z`VEs1_nb0UUmj1Mh3mC#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwX@IJKxOGda}}
      zCK{Yt!p^|L$RGgHqo0$Qm#*)hl$Dwc6lG&%P{M8!vTjBO=ERf~Mg|oP9|DT4HKQ0A
      z*no;1b8;9N)CsBw8V=UN6`WsMl$`38nUl)MAdAZvU{3>`40I0=vjT&I3Fs|$1`Y<0
      R_c$52fFg_x+#qoV9stI6S@r+`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/ResolutionSyntax.class b/libjava/classpath/lib/javax/print/attribute/ResolutionSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74e84545627f1b4e1985ef28a4281dfd4cf31437
      GIT binary patch
      literal 2590
      zcwUWGU2{`a6kVrDnlz*>1RA7iHIxGRD8vFPT124b<7(4ZTB-#VZrV!|xV<+dH%wuC
      z(Q)t<XLOwLK|x*_g&9p9ar}4!@!4OXgTKI6#&u5aBq7NRKIGhe&e><}b=KbdOddY|
      z@n-;|u>I%|*l|I>tgogE#k}RDb;l{@vt`FfpEOFgS$6WaHG9Q!^i@B+0_&x3+SIM(
      z^mO)uvFP~GDX_7=I&RvQp=V9QkAT1?wUM{evqmwmoB6A9hbSdAoi~al!k^M61jOqC
      z-Q%`Za&*g?*Uhrw+kXAT`;{*rd?MhTm>JK|NAr;OV*$^^j53!Pda-DiO2-Uism@oR
      z=X}#b=YhPHcMj5sYnqmrC+4`lWCY>CmJs^TPtbT`-j4x+q55q!(=?WK^Kfywykc0+
      z(bYwxAOQn-R^VC7j_K}BY(>8k%NjA$D3xMPPPbyCK|~Rg*jokq;*)jISt@KTk0s{2
      zAh0cjjp&uu_7FCqSD<$?Zy8hNm8?;mtI8Fgv=^zCPR%%X7rjm{UlOPSKRtV60=_aO
      z;E_(_Qdu`kO{}Wv97~)IlFRN8(s*8=f7x)xTLqpd<nl@|O*-!hVXt)VqjOt7J9|N1
      zq9qo$oRxw=q<s|LF|H-F0A3LoP~4TumhChsZBS`}4K1NrO<Zf7`v`VM5q>R%m#|-2
      zheH^{et}@I!Lj3vCJ@N!rJO7gR;vs($DB?VkGjgG{<rLj(|(*_t<*0+RW{8To5ze|
      zLp`zl`)ppP*my^au0b3}jO^7Wc{z5qe%M^`L~B(AFhkvzD7?Ji$q+J_71$Zq+7w{x
      zk{_o8Ha9OHDd){4qZq_nSn%WRCtiW7M+m2JM!<hrHtzI!Sz1~f_#oyG3*bGr@~X7Y
      zg`gwLiqs1Q!(un@YS$+%OD-P;w<IB$q=9w;8y%OW6jRdL5&-K_P}D9}Ra5$k@nn6v
      zky#hBcDcA{9Lvj&>uXN#Zh6AHl{$OS0U!MQ^`i??`E`7rIuODZ^q{vkU(fl5hIyDj
      zw!gABsqZ@O^&!G>GiTR{?B#bPxrS$=-kazi;1C$}evR&Xh%ST&*YMmg$>?D2dkiH9
      z<Y)M<LfgS{2my{4iC~eHO(q3KyM#fMFboGNl(CZ@$!ZM5kpPsnQE`-(WYwXpBrOkD
      zQ?#q>u5w2{!|~K_5MRLOxt;nIB9r_MLn9UJx`FjHhiQ)9fX{o|bGyc@ADtXOpkg1A
      z*+*n{jmmsXHrEuRSQWR%D2{!2fl+&S@<pz7&}Iv}JWeY8fk?Eb%gag^5{a7is67hx
      zQ)cNi-sN)@DN;RIixg4!WDCg$(8W*lE7kBxz&c!~TD+-XLRAMBM#xv?>Ewo6$$dkN
      zZ%N?pQ^@UYOK!NC+`YEs4&YVy@Hs-suo2%+!OVy!8Li;p^oUn}4^5BUsiB2cg*@Q+
      zJJBApD*kB5Q#*oT9KpEC(?pHxJ~an|Qb$SmTr=N48~6rme2?Ooi(tB9##8sDmd6*u
      z+8W+aiB7TNZdEIe=IE`aii`06z+YtcH>G~WYWs(=9yQ3^SZ$NEq^x`~+{k-W?E`_N
      zH#}Xzn{{of%>Qj*9;h+r<LjRP%2hfuav$67VQxWb{R8IL@J{&M3eGCcD_E@H{2jT!
      zhMaQY(i8jPJSXg_v(m9fLN$~K@Gn{yhQ&JU6(JlF-Oy;)6P2l5G2<pmS{Es+Ow5Wx
      Gv;G6whz}hA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/SetOfIntegerSyntax$1.class b/libjava/classpath/lib/javax/print/attribute/SetOfIntegerSyntax$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dde40793b7f41dc19b4310f4ed3acc559d8d7ee
      GIT binary patch
      literal 745
      zcwUWCO;1xn6g|^Ec(y#P76cJQB_y;6eO6h4anoq>k_w9wHeF3$hce`K2ItKq=s)mZ
      z_ygFuGI3#C`=g9^ri}}`VKL{Px#!OPn3>;ye*6T`#%72T!_Ec2;@9z|k;=y0S|bOA
      z6>(44<FiCrF%qWtNm+iq)eaFb+;{PD#?>f39$bjjhL~qq^4`MAEbi#>B{$q^!!Z9w
      zDrw&`lpD=chM=Q|qKYyWB80fZQ0q!1j*9U>m=iw81Vg>6Q=Xl2Bi(-L4D7kg8Fst3
      z@AZ%&OnoPGe!J2Azw5(UPcsRz$WZDh1iI~dnTc`AD}t-G17g*lE=(%kOV{VhY$q+3
      zf+0$j5~h>!JQp-c?VU<9ol7<PAndswhS*?e+;+MM&+wd~qO=+FOn#=yl}5jxBuxUm
      z1YI|+IeO$0ExKshRfxSN%gD~{d`I=0mm|We4;v#O@h-7w5`=rGk);>MgK2^<l-Q-+
      ze(?+Sqg{f7V6WU-4a%*ri1q?vL2Gz3bq#O+m00%2J`x%%Ajd;kY@qPv_9rQ)<s4fg
      ooq4uQtVH@IR<P*)4c769SU`N$XMc<}Kf+`(piU7W{Ry7_1&+O-Pyhe`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/SetOfIntegerSyntax.class b/libjava/classpath/lib/javax/print/attribute/SetOfIntegerSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f25096bb24fe072d6c013a286a75d27f3351c989
      GIT binary patch
      literal 5008
      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
      KYv(H3MgIf%%1n{~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/Size2DSyntax.class b/libjava/classpath/lib/javax/print/attribute/Size2DSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d26205fd8447c6f79e219d2d9fafbe18ca3571de
      GIT binary patch
      literal 2497
      zcwUWG-%}e^6#i}!NC=@oO2dzUT^h7WNE>Krtx{WoHWDQuf+)owY{C|nNp{m@gMn8^
      zMyK`3nU0EeIzITsR63)fV;x(4amE?{0v(_A*>}ftZ<ZxM6d!i)x%Zy?o$q|-?4AAj
      z?{B{c(2r#&Yz!xs<rTRY&E{0ih{}eMQ<DWliB73&%9$%utC}Gfop3NTaldF<))u1^
      z$z>&FI8n=Rba!<mt!s*$Oe;>f7+S=Jsz;}koGPc)HNL~(h>wqqGO##9!-%fs4Oug0
      z<a9x?1E~uPwnTy~`yb>|q-T|(_M)n(#w9X>u~<AbLl`6ag5ri9$2@3;kHH=c%{b9!
      z=2B)8Pp6edIX#qHEMyeTxLQmpSwqz|7djZai;}D@MD?7sDrMwVNz)A}sYq!hpO=g!
      zS(EzQXhkQ7?_xL>9NWd6B7wBU!O)Bg#~C^c#4TS1L(!yu$7Pba4n)g?M!31v<3SVL
      z42@%|ri>RdNhLR37REcKr{wgEOk&a8Tyz*qYMxGw9bThBQY*$#BM5P^;_)~qdFrri
      ziD@7CD>n*qI=?U3a-j!9*WARt--9zaOWYR~<Mo7^%IO)!P;z;pf1G=q^WglB$LwAY
      zJ-N(tJOE8wMkdSPq$4~X${-jI&BZv}a~@p6Wm16$q=7cX`j7|1JL|JF<i$DL9HsAC
      zlJiTvJ;*fla;>NrgQ0^Jbb@-Yb^r2kK}|0xIX7NH!iljxZD02AU>p-fc!hWE#C5J%
      zyb8P<qv&*@k&jazOygA&S<Yq^ZGqubwT?QlWO5NuuW<+xp|e`B9Y+_gk)Bc^!%w{7
      zK@2Z2oD9bQPq0Cr^4mPQd7e`2Us6hP9x2YFipMSw(w|8Tb)p-`<&3ho_$DBOdrB|l
      zQc6ta-QHZ;&!@S!qnpZYhYdBLI|%LcHSq?hr|-%J56v4Y=11tE&rH}&Vyve#&G3@P
      zQJQ^8NDdl@!`o;H)ZgAfT~Gb(&(QD?t+U?tZTKH`IleHbPw;6t(6zqom6A8VL3g;v
      zvIF-;j3?=R0xo)Mgqx+9H_(ARj>A9*D>#RDFoYtWB9Cx6GEO202&<8Nn6R42vI#2;
      zx8T@}UX%03Cg%ap*}nm2=MLXUHNO6?B~G=I4+mJjOGxjLYU}XfefaSK?cGEKw{R98
      zR<InfSPlq1nXtH`Her=nGMq-#WVuE=bZaBn`vcggsIhPMJ_bvKzeabYguc6IA~Qhd
      zz+KchHtm}hvkugXES>m-YP&%-yhBy}oEY2@jHEKI#VClUae<;9p_9+h%trRJ7&Ljz
      z6MydStNE@r5wVB;C0v}0IQaPdWMs>V>J@q3qxV;&#}-;}zapB?islo!(hWl=MsP($
      zqZ`SLHZ3|6X!Gx@0;Rp~U)Szg@s0@GN7TiSNzorgEMNJo6|2pPMVG7@f$PiFui=op
      zqScDUUj&S&>|nw$elZ?SFHnu%uY~d&(fj=ndgrUs3+$)&XH|Mvt-}LCO~B1_;{fyf
      z5&o(`a9ap;r<n)|(S<<ZAx3Az)MpRy;x=CPPL}WrO$SPt@y?Q6!razgXlAQ`4pczD
      zX+nQwHc}$;lL^mT=>gud@Oev>Aam^h+V?KdB(k4`5S;nwuc{S2ti7W55|-czQ*drw
      M$D&YcNg$~I0QA@00RR91
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/SupportedValuesAttribute.class b/libjava/classpath/lib/javax/print/attribute/SupportedValuesAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..957bc1f1bde458e1a079388b55d474e9d055e9d9
      GIT binary patch
      literal 190
      zcwRg8Z`VEs1_nb0PId++Mh3mC#InQ+{eq&*yb}Gyl9Hm#q|%a9{ovAqg8ZVA)ReHq
      zoYK@{N0<aV0}CUA07#F1PGVlVzJF3yYH|rX0~;fQJa&`dS{WI*g7Zs@l2hF>bATLK
      bTvmWx1T>G4ff<Nd89;!MfgMOPF>n9?T@^Um
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/TextSyntax.class b/libjava/classpath/lib/javax/print/attribute/TextSyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ebb5f99e851c70c9f646cb10246ba6d8779582e
      GIT binary patch
      literal 1403
      zcwU85OHUI~6#g!KOj`%21q2bHpi<gmM^t<O;-f%B3z`%s(UnuY!jNGG+gk*2VcfWM
      z4S&E53yo3?CO%dq{wU+Q(@J?Xanas;&*MAieBYVhe|EkD7{G*rI)><iv23hpOL@~4
      znju8q%oPRKX84N8uG+#_QQ&0=%P7q<>^bd0Zh_AV1%8I6sx@snHaBt>R}f%mb{(dp
      zWqIB-Ec2E05K6&)>O5aC9sAMb7z4Y<P@i_}f-r2M8&;9~-Y0tMbDwuM7<|jpz!1q)
      z3uUQ8dv2J)Z#lDuRrMByX=xePCcPu3ZHiHbSl`j)qX}`H!JBrT@en*Xp(27-22WpH
      zS8$S{vx+cXw5*2?amDlFE3<q_&>#VvVrX%DjV>CiQQHyG9FN)*8bTXROSn#osL@GW
      z4}vsM(SXJfdT>_3nSX5W>rcfw^fH9zxESNljiM!p<G%ROIV4)2iZG5dG-gbjPZt++
      zJU>(BKjKE|28lrLiqR|P%>qMD=6{PotOlq7y{ySz`GcwiDI!x5CNOUl<|U~vm6IV{
      z!k~i72ezr4sNw<!<otuA9Dh+XtimC_%3C)ae-fezhg6(LO5%;ExQc7iHmX8Huf!Ok
      za!zjH;M!F3$t4z-s5Rk~D-)?%r<kAR6Q*pru{v%_CVRUH+JidypwQWlAY`#)^a0gD
      zr61|$-idKK{qU03O%%~guT{$M&>2f?qb0eE`fq4^9BJQ1$B#sE3tfr+T?D_P`vbiF
      zTZnyff#USvPC&o}f!##_lLUDmt;nDkQ%H~}T82du{eXLuZ7}yH8>yo^5maeIqf`2P
      zi7)8-xL3sQ8g&;?EeBKpnPjp?a_n&O)0)X7WhHsY?F0zR$|YQs7$sbJyLkv_VINL-
      z4~K-U;Jl$|IdLla3v2^E&t~!`*px)=FX4I#!|Q00;Pkpt!p(K~yqlhCl`@~pB;iXE
      vaFy6vLkC_HM{E1|OzrWR!Y$mU+70BnLpC`@x(1(A`!FT%YEm-hMveak`@I%T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/URISyntax.class b/libjava/classpath/lib/javax/print/attribute/URISyntax.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb36d72e996ddfb08e20dd57da59a0e629542e77
      GIT binary patch
      literal 1100
      zcwU84YflqF6g@**TIy1uJVlY>vkzqjp9G^(zy#Bv($Yj@Or~|xE?H)AJ8Qtd;WvK+
      zA2iXDXyW6Oi9gDCXS$Y$7(cYxnS0MU_nbRFe|`D_U<Pw>bTLe>^H+S!-t--*Y_62=
      zR0AdKwbkX)wp4s8jwnOFZn9l2>-NLyx~Qo*x)}!dZWmln3SM<Z90`UYQ*b=HBz%Xv
      z&TCyEmZmvYgx_>LxwgE>z#cI4E_kx3xKtJH1|s$*w=`X!8}=C@f$uP+iiS-JrH7hl
      z=)UDhN8M%^$Q~@^Dh$yD?}bPrf*}k27$%Zzt`f&6!>PS#R|404<dI?FFKyMtrlN5Y
      zI8Kg8F|)z9GtyI;s>n!cOkxBlG}%dp;ZV`Alqf4%C)FMhyM+|`82XBi6f40-Rruw$
      z>vYkpk!eoW=^S20Rl{jAOcno=zP2k~2Hb5P5^t|zKKC?9;^!?~K$cqTLJ^db&gKqA
      zlSCdD<0vp#`|mBB!CA`4tFG%o|DtC|G<dV2Gc`#rYo1vPHZD_1dF=>j;eYh@2cvth
      zTeyO&49Sug_%(6g(dJVfd(#>eogxbnbRh<Mkr+o0w5enCNV{OskAkJ|7^1X<0ji|w
      z^vocDvHUIu3qR2N86!{9W4jptnlF6B#CwCDr2i2@0(S^~7YW=W^dd&Fgp8>f4ou-R
      zV7{~#JxiTSs8psN(^dEm_7<_oPW}TX3g5t5IM+gMr=ygjnSjUSVwF6U|DkXR(?)?d
      z7An~0Ob#{iyAEBqxqNPDtad|4!}J0|@N5W9XmATNd*ih6jeYn;2Tw~m8h`DuzJDbC
      IhUvQb8(nPD*8l(j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/UnmodifiableSetException.class b/libjava/classpath/lib/javax/print/attribute/UnmodifiableSetException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba0bdb50ef0cb933ef03b65cbcb979fc907cf0c6
      GIT binary patch
      literal 496
      zcwUuI!A`<J5Pb`UYDG{K4<;VG0VWpXMT6mjdTKma<-U})uAy7fZVkWXiNu2+;71u}
      z7ov&AgL{}ayYuGFn|=RyeFJcUmWvX@@e_aMbAOgerG2h-CdY*q{=G`liF}ZJJQbnP
      zSMx~Bv`m!?hhg9J_*1T8|F%$CCgQ8kP`!{!>H$N!-5D`B!*n7%l(Akz1yzPdAeFc&
      zlCj9{j5<RzNFzQS@yt$JJv#bP<_x{yfByOmt#<J3FQf()_d6qFVar&kGq{P!a~|8#
      zzo-mem=;+iuBGvD@Yf{!aX17m3Uf-7(Sj6Rx}6d-!b*36wHI6VD0+mz862ErgR<I^
      qM7T+41nMh+0Wl4?+C5sJ@l#<)%uB1Vw`8ppOty`t9lm3Gc0U0Tqiwzb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Chromaticity.class b/libjava/classpath/lib/javax/print/attribute/standard/Chromaticity.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..603f64508e9d9c82382e5639a2aad39a369bbb37
      GIT binary patch
      literal 1462
      zcwUuL+fEZv6kUf-FO)%PxhSBBDAIzo-cef-Q)&cDi&UE+Pp9pqjJ7j6GbQxd2Y<ld
      zFhO`A@%90JlyRTKP--b8w8@-(_E~H1v)7vW^Y{C20JpK=M;F7)JHExY;~y;DaN^u?
      zEWKEFw7BhXqs*;xJhf?=HSXvo-D&utFpPI5q>Xwl-!L4$?T3$HqBCmIEIm8i_z^g<
      z{i@inX&>vF?X(br3{$5Nmd#=l%+P0Rmd>jM&9ZgVc(b&~z?K<$Q>G!Na|*m#*Srf~
      zzj#(Z@BCy4uH>@0)Qh#;N}6Fda|T@!4Bk{OlUrlxu?cBZUh`s=uF$_B%fzePsKoQ~
      zgs|r{(n@xBVX=)fb_*m+Ro&2?c?M4;T3}F8W?2h@VN}H>TxRek-E$?f6fJbq$rTlS
      z2#M&biZDWcTqBLzuNS~1DN!>Gvm{z-0Zh?wC9`T;f*MuPj{y<Qs2Ic$!}*MEXxVzL
      zs9Ekb;fz@#**S?%dzlQvgHgJRv#HxuZcEHgZY+^r70pR;N2{1tgY=3-TLep0xoy+5
      z-FdxYaHnn&XYM#6Idg(~&37R&PgVTXDa&hAW8l9Ut}OvPVo*yhI+IaE$+!AB7>Rat
      zG(^C3o2iqB*welh;s*0(-70C%bwLWX8XXgC`cTPa`g`F=H$6wt1C?^U^bvRA9EOFh
      z6b}niX&n&`$(8(})rSBs;36@GY4;uq#4qs!Y~8bukv)uwP?6!d_ZKGCJ>l#5btQZw
      zzlR7V2)Bzd%IspCQq$jL<D2vxqU!)J=|WkGS22ZGc#Je=B?8on-bJ_ZJY_`AH$A$K
      z*int3%)X^c8<ID4fI?gjBcfYU0){)dOK0~a^S-P(EAxOS%yyaueKJ*+#ngjiw;00%
      w%(>S&qCRY=8Xc$#&6RMeF_%huMB2HH7Ov9dCh_Drce<VXsRNghZUXi6ACBEeCjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/ColorSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/ColorSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07ddc1e58e9dbcb41f13477e1f248c7fbae79984
      GIT binary patch
      literal 1410
      zcwUuLTTc@~6#m9;FO+gCHz}xyTv`woyrH&fVhWlf0pgY>ghVs6o3dJV$zBj1eDwb)
      zJdkMg2l(uhKSn(>T}mm{gf_c#=A7?4bI$o@fBgRP9l!!IVO(RFeajE{p}KDyrmJ$-
      zwT&Im)m6vkW|`Y%HD^^VTl4n!E!)-0VJHlvttrc<x2GMME<X$-#4ytuwITMJZXXyW
      z{n?q9q1(}IgI9~X?HHE1nO|aHD-0bu%M_)!MPBvv;IEIze}29zhAFVNUU;KzZfvZ-
      zDl8LNUA<BtX@<52cDqA(vr^zYRjQ?TTP9Ph+^ndYj1az4r~YIaK5Tyb%4bG0rK({X
      zZk8dCOcfcFoK@DNU>J<yI))fR89%Nh^QmGRMTTRDp+i_VV(3Ii7`JF#%>_nqn}%Xq
      z?yPfmUIcfj%lcMin24bZ-NKrRp$Bn>u2sX-*Sx(Q-S*pxuUaJ%f|DGym(C~x7^ITi
      zUBh7r9*7~3K6x5kMR#-D)hm{LM1xDF8YY*ka>tQ_HYz4}J)1a-ml2tne~htyJJMOo
      z5~h>Z_#WlxyO6`zCxVC6Oi2v<d;%mIv9v~Q`;)1b>h=(Dxk=!OGwlEFI&q_#<=G|u
      zxgjslMbYO3pFTDcoSq>469^+hb{l<!*AT^!keBQsAug>6A(323AX-C&?nNIl`f2wb
      z3dAq{6>KYTih&a(gsDh#B=`+Cw*v7|ZA*!dX(t#b2jPy9AkQ&I$Tj&{9-O527^Mc5
      z(2f@vKps<A!7M%Z@e+%)K1CKOi3S}@_tP&TOCI41O%I=9`aEA$dJEL#rsNIOP?(X8
      z3F|K9r<;R0s1%!*%mtaV<_7|C_NksQBwep%vREzbCu6urWwIvfgJ$Y(3#x)g)Lo4_
      g=Tm7m<IP;BfveQHkMZO(ce0uLp#_)GJOwKK7l95mJOBUy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Compression.class b/libjava/classpath/lib/javax/print/attribute/standard/Compression.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..939a2f3076bb22a0fc300f60372362b82d02f317
      GIT binary patch
      literal 1505
      zcwUuL+fvg|6kUg=O({X3T$GClDA;mo!3!uLifv&kr7#Aom8Z~#8f_CMO&RdX@9_!Y
      zff*fr@y!qL7yJvyeNMy0QXOrlJ^Spv*E;L$m3;g8@e6<{EXinK7=5knYJ1Tg+c2G|
      z<~X*oRdMua+0o3rX6K_ZtF&Y5<+5R!G9-q9`uz#BQd0L#N86L(V;HL66}NJWCmV*=
      zvThq%F{9g@{aG^3z@9KP$1IZ{?_{)MMfV=Omq&htzkX+s(rf7i!+7f7CC@R)@x)SU
      zaf5);^2_8pgFm*my8bkwstiqK0-J>mZL3In+BXGrw5XYds46OizogUEgcP@JV)Oq5
      z_~&y)!!(=)22UuQAssO*uLr=;t)K_J48D1{E`^feOe0mUDp1hOqiYH-Rii-#E!F6{
      zf>t!k7^WH4D)!?h@tBsW`w^zw=k@KP=Fn!0(uKFijvo`GDd$S$bWsIu2=Zu3K|4Aa
      zT2h9orz@o`-F7b>Oj$XyN+ZK)FOmUx&`qSyE2GTd-Q^=92a`0`g6_oV(1K;}(^x~{
      zb90RqwQ`xJ(x@5*Q*$adVP-CN%#ZzH$fwWG+yXb3PD*Pf;^_E|!*$P(homNVW(V0x
      z2=%<{ouP1D-`l7$QDgn^N$=lY0Kx`Tt77N$C4+-n&pi$i4#psj+Cx7tWO@K(_$h9r
      zcd`KibaUe=?&h|OwZ&aq#oEKY5-T}HtB=r~=pu&8v^$0b{waI{%X*G+<p_N|ltkFi
      zL$3%2c<2-1ko*}pvYz0Gnw5efHR}zIs##xfTs=aBO2l)BKB^s}pNfYVpz0xps66>W
      zh`vSt(?Z-MG$BS}mgtH}jAMmrE0{+LaaxzLD!y5yk)w4Rv$!o7K(gsga4)ey8J_cv
      z_8#NT*%<+meNJP0A#h#QF5DGo^Jp3~#KCY6_o+53kaL1_LgWEYkR6;7`b0_-WJ<N{
      zlC_cO2d<nm=t3>@O&zF2Q&@DN5f@6ci_~Iw&taug>|>hW1?*%k_FWw;qZ#wA#4pIY
      BJB<JU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Copies.class b/libjava/classpath/lib/javax/print/attribute/standard/Copies.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4396ac206eb780c65f05d4057a9c2e7c25b3048
      GIT binary patch
      literal 1081
      zcwUWCO-~a+7=DJfER;gAe5io9f=Ek+m6L}O5>h`>tkqa)BF4jPnJi1Tv#>i$;IDY}
      z;E5PLk!Ygv>dAlM(SKlkXQ|~=<7IZ{-RF7U=Xqzo{rdPBz#{G#=wg`J;=6p$+74W)
      zEUr}G+L01gsJPtV!G=}#w_On$NHR=c46R5d91+y_rQ&-Ax*29K20qp2Ro`CuQ!&uP
      zQ2Yn@nb?U$s5%6O!B7M)_ZlJyU0<$M?lG`chW@fIwPn@dUL;a)zbD^4{5ko9p?k@d
      zu3BbD<|~B;eailZNF#w<1_Q_%7-pE#4lIvL$EtXqaJaV;I8jSTb$_oZwiPw%!6?JT
      zt`;|2eBYG5GHqdcA`DHn$)&lN#t^P(&8rL}`RcJ`oxDq@q?>1}t`xPXWsBfBw>^rJ
      ztNKk!!zmM;+r^~XbVHhA^}nvB#E^=O(IhGqm`29E@QjHk_LgX>Qej<3pU%L<4Tgko
      zZ)pqXU<`eZP-RZ{>IeG_L;1o9P}$?5?%G>-9m!P`Q0Ken5lh9t`0w0iX_-_E>Qv(`
      z(ilFa(H>h5<|$J%PRfw3`%%yo4_rN_zN7pLnnTZ-@}LVT7_=KhFVghwqleyw43e~`
      z+opApDr+$k7?~SC#HI1%8}xs|(2Ly2AufOU5L3oz%@GY)CCMs@J;pF<7^lkU5g8M>
      z2E@BbTqkL!r`m4uh%g$JEq(=ija1@bu6T&4gO2zBc>vbQ?Mw3d>V$B%Bb>!e%*4XC
      wFiZdPF}n~qn2+l~BFEl$M7!gX6N_bzez(OK=1^>VJEq<~OWnDUx)7tR-#(r82mk;8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/CopiesSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/CopiesSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab31fac3aa41839325cf4eb1bc94b22579f17a69
      GIT binary patch
      literal 1274
      zcwUuLOHUe67(JJ_h@y!0fm*b-1uP<cqzjCRrH`OQ7gQ7bNW8!;4jE?X%pI${{*ErY
      zcG0d#YSO0L{-~zkTo9~}MHh1)-~G-x-}&yH-+#XU0FcMyAUq69O@6=+b8SmAWR6Q|
      zX;nvxoGrOg=T<#eG~1f6D^9y@T2j=5@G+z=$5e#edS5c6Xb7uvWJrD(MBqw=KIIPA
      z9bvDX9x#mA!qT|DBP?4pjqTDi2DZ*HQZx;>EU5tgy@l+=Lg*yV5LnR+O|CNdQl<0`
      zO+~XV!ti1&f(S-}h%wB&MdWmDG;$?f7Y(kjSq-Np4Eg-9CfbsOLWncWv_z{atYnKH
      zB@I(1t0Jij+fK@TZY1+zjAP0ry~Z$^Di1g-RJ_qBxa!feW{6G4WqHM`I{Ar}%^KO^
      zWQz8^pik~=Hp6oH|N37byWJA0DJ2Gfszjb$vq`tE*%0O#=5+I;u%4QZQNO|nLwJxw
      z8=~)T0^)<ib^Dydt!h)$WFh_9)k;Nh2X`5~X0_@1yO72(+z_(J=`EPn5yM0(eI}`>
      zbK9nzp^DZpxO6P)$CHa0D~ne&r~g(8tHcr{rA^)<j`%+uy*mlv0X?ajYGc+u?IU@v
      zn2uEwFEsZy;^*3|-YoqiWRX5UeK!$Ah~^>scRUEI7(Ff;M=7#Rc^;Z4Gl>qO3Evlt
      zoM3!6HqpW4&u<EHoyHh^G`=Koi73_)#|CatWU31$kp!St)0iP@S7Np&u}2bKH#d`*
      z?%>uyW9~AIT?Ft3!+1+v@03Qei|%Vo;kMFnR|~ZA(3&o_r?x?Rx2EXgFR;(>dyg}V
      z9o#$a%Zw^Ijk?mLp6F+6MEep^q>)iJ7IB}>vI@PV1hOg)cw_8qpERIC2Z}7xJ?@b)
      V<gnbUZ2--mhkm*g`cP#(`U@TO7U}>1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtCompleted.class b/libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtCompleted.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc0358e0e8c052839271ff9d0e9a359284cba732
      GIT binary patch
      literal 985
      zcwUu~%Wl&^6o&uF&231Vl3pm`UJ4~d!2%(%NEN9{g=mRdq_k1h-8dP{M2=nTan(Kq
      z5(`#{N9Y1pNGy=p@=%B~Qzw)*ELe<ZeEgs9{O5Rn{`&SEz+<dfNHIL=^Fw}QAB56Z
      zHdiW?POO9-Dem`p*t6HU5<7Ar)>JbX9C$*Bo`np<^7y==ynXB|eq<rXurglxO22Og
      z&e|}-FcXPTa<3!8NCy7y#ySJrWSD9OzV@R!+>1qazxw)9`Q3;247pY5OVwbQebCZH
      z>{v<9Sg2Pz44G!o6M3XDQ$PVz48@l8#a29UM7YBpk1Cd0L6-`0DogK4Fr(hch~a7L
      z|3_12$R28!)XaHH<X60nxku>v#IMJF*WPyeqO0naeQmW|z!fYqqywj~?Ol*DTylkK
      z63`98W8He?jHv1HC?d^dTe?11aY#m<T~w@A|Iyp%XVe=+v8d7(9}r{iFGib0zFVKb
      zGQ&cTtke{Zp~h9MI~)W<z8%D2S3H+`q>E!_^+*Hh9#XTkvb4&uFhTny-Om*A$k3U7
      z96hHg(x6z1_T0njR}{Y(&1HJ#P4op3Hc+C|!l??gm;=mdo?>*B^kfs(%Y;>|{s8-k
      zZ2Ck)ubzyc(_{+RB|{yuvv&qu9D$3thU*4=12^g0Et7rQ6sVavkS?*$BWTWq90Mzy
      ZeokNvcd(Rr`;&V2e5yA#^`24P{|z(3-ah~U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtCreation.class b/libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtCreation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c271f6b2b834df08718904319731303ea89ed044
      GIT binary patch
      literal 981
      zcwUu~Pfrs;7{;IJU#Nvb0TKL*pjex_As##|X+oA5!3InUjqx_yPS$C*ySh6|;OfWl
      zGjPz8i3bx8Uc7no+Zf*&mWs3<JnZbuyU+W3pZDGQ{_FD>02^2@BEzuJ=STe5dK1Y&
      zSzM_|x``52ta#AlQP0}uN*u_6*iud;xRPN|M2=x?eA>CXeG({sTttCkeZ2C8KJSL^
      z)_H_sCKi$8en&(xl{wtmW?;JvQ%)FYJF3I|MC5<^KMLR8Ev+yVHf11HlVR>bOBb;c
      zC4FPTu5}o4PS_JAWHD1l8B+|EmJGyRGH^w7z+ImzR$F103UVq-=QNm8uVu{exb@$Y
      zu^IA5+9dUI*%8?lZxiklc_Fpy^T4zA-M;85yY@;uT`pr0*BG*)+t=<!WDHk4p&SBw
      zVRWK9uU!y1K96J4Otz&LaFs-4<jJUFv;L3PhX2BD5~WC$_V|Dp^M5hgBnmux0&CPt
      zkE}ElO`*Y6qnplwq0|nOs4JdIJ<!F`Nj=gyx`WgzJ$ZVTQN#qjC+TixP(qIO^w(&e
      zrbv@w8G08U)<2>0(P(CAEt%*uBJ7|_yQ^m^%wZldy9J8TJ<@YcS<h2erT!J{J@VO8
      z4P81NLZ`_Ta7czaWas4taAgRt;5u#?@J-yJZ?{eM9aErT;y|{_J`AA+6LJl#eD*no
      WF|6Qj>g`YJ>g7~_Z0bFuy8jztqTJ*F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtProcessing.class b/libjava/classpath/lib/javax/print/attribute/standard/DateTimeAtProcessing.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05e1adf2685c7a58fc2dc7b4d188553411b91f4a
      GIT binary patch
      literal 989
      zcwU{7&rcIU6vw~QUkkOcSU?1SD~h$Lt5M^jqzNf8f(?=s8scrXoz!WzySO_`;Ou|l
      zN$(u=Wa7butMP9#z8RJkp<X=f?9AKm`@HXaJ3oGX`wrkSmMml#o(%XN-*<LH=_`jT
      z6-qZ&!ig03dpztpt6YgKITR~uGYq;SilpDSkYiXJop_>eANY#zTPQFrjaF{z^LpT}
      zoJ1I=A`wdNbwn7+z~5e5Wnk+J6V1TahE#`pvB>{?|LD`lqn)P=g=OhW)nJ&u-_k{#
      zSV_-Vs8>1+xn|H4MPxBmLJ1QLc1!wVBObaU+~TfB70a!lO9eTVrE?O@skbs>c-H!l
      z+0+^Gd)g*-bJi0X7Vl#25qmZ<>~X*EymkkotLl|E+Ur6IbGXcq4cvkDcTUD|p)XXE
      zfc+pm(7jhqiJBgdBGQbvW#8v24#~*#^NQu_KblMbM!i84iz;pKAu(qDVzfy_y^dj#
      zVXjA3YKrDi<EplsPJ*G>4&tyYUPwLE`BBq)sF8FRsa<;V^en)_7`?~oj%H9qj`sBL
      zXq}`;gJKza7aml<!v1137ile;=u0B3p-j6=$0|%?1~9u>iqUP-vrSm95|&*(0{eh`
      z_E1CT4^!wQnF6-SP>1a7oC4b^*v1uHHQ;NwPTy{r?3<=Q&BTFhnSD;71ru@&taSW2
      Xfic{|?Zn%k)H`QWy^*PRjq2WS4L0EZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Destination.class b/libjava/classpath/lib/javax/print/attribute/standard/Destination.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42854c064ffbfe3f07c3ed65db7c9d266fa3a3a9
      GIT binary patch
      literal 1001
      zcwUW?%Wl&^6o&uF&218rG`#@jQtnL}g2f7?RFP0Bq?V|lrinxsMdNrBCUVEc9;5VC
      z;1!AlD<l?3Y+3O{h-25JDGi8?=ggV^eCMCz`Tq0ER{#%DHIQIf8}he&WFC4_X_IU1
      zNh{F8^fgyD_iS@R_*yEirK=327*?k1yE~hmBc=JsK!#y;y68o?-*T-dzcU7A7;66z
      z?}#@685kEZlziby?(~G`lcnzF1_Rq-xX^M{=vnu;6NvPF?#HXgAKt%Y$gE2xb(3MP
      z(heJ$O6bsSquOIgwOm_dkwiI<0*Va9wp3y}IIx7b%PoicmD_Hg+Hq=1`#71>ucgm$
      zzy1HiYcM1OPcjtF+8~E?NA3`AF?Q&1H87uBL($ib>RxE?Y95!dOa#{&hL+CB7;*!l
      zTU?8Q>m4!7SE>`DmcxCYG_xH!AUA<WS9o+@v0nSjea7Q&G>KwRr)_>fjD<6d4vEyD
      zF@t*yOa7tjI(3_CUbjz&z>w{@f!7yLWjMyt#C#rvAbOQ_NhFYlLD4d1k)<_9?=^uu
      zQWVo~qHl>ZP0A%`&8*cvWA0O=nWt|y%I*@Qiv^07PE=T=2vKwqmx#f_nZ~SVF{@bn
      z2KEl=<Z%eSay*6>$QHoKmPMxQ32<=?F5()lN8lCQptGA%^{uEuJ<0>gGW$4&W}=je
      bVEL2d7{+iLcVcg+rFZ`<9ZfA=jZ~FilDy+w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/DocumentName.class b/libjava/classpath/lib/javax/print/attribute/standard/DocumentName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f55b821572d6447c43529a22e0eb34df0b4ae87c
      GIT binary patch
      literal 1016
      zcwUuK%We}f6g|#s+K@JF`T)wKr97H6gb^zisVbpVNQEd}q+|hAB~Rj}4igW|cu@K)
      z?ATWbB&13#kl6B3h&#?Sq%<s8*uMAroO2)c&tKoZ19*&*g#<&n$KUgT{nnRC+gxj3
      zI-wSJpt<UBzhm!s?XWMDZt%XakYZSyOxPC#-8@m64=iLD)+eJ#?diG0Fc%14a<?V?
      zKzi!s?hXTc&M;H+RFq%0xEqRe|L6_AemwfbklB(->TQONVm;EgU9P%zlk`-#I*f!`
      zx^~@bb5~SLErwLh>xe9pn9CuD8HRjaD$xl0j_~)n<5Cp`18;FEh5R^}(#JAjsMP;s
      zJXMBVXUvbJFO^AMxTd_(?Rd#_E8d0NrPNE~J?=R@(bm<{tEiQmIb6pIL(+447jwig
      zhAUm6Yg~)2=btbv6iZ{En#+TLFw;%hRa}QYmGa~=Vypa*-bW8u-6j=_G7Xzuyr2=c
      zJB0`IpyyMmD1*#4z0hxqXEK_?{P+kTMFR9UsX1C{S}U+HMdvjA*#xpkkxdUt`z%Fv
      z374eP+AKdjL;i~a&C{Nx6KEiVJru}V8^W-FMZj1~SSFFkx{7OrX3<b%*%#zT{CxQb
      z*axJOr<>(7+&CS{&l<VcL_VO(4o!;XA!U>zk6XA+f()yaK7l)iy>1dzOdLoS*yoXG
      f#)OWISZ;V7i!t2Ay|}hN)cb!^{fX2KgDU<88<OPv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Fidelity.class b/libjava/classpath/lib/javax/print/attribute/standard/Fidelity.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..735ca8491134d45d5acebe572acbe93c1498e078
      GIT binary patch
      literal 1432
      zcwUv0YflqF6o%hvw--vGP;M3w5d~VXR7FK;Z9+<$lr+T9Qd9AgEnUi*Wm|T)2=Tk0
      z{V56`FdF><`k#zvhNWOBM4N19_RM+SIdk5fpTEEU0B{dU4;&2BZ{<CCKUOzX-HOSU
      zWvJzbrNm52)+@46iDlG^qN&z_2NJ`0`{cCV*vTL0mb~wQ`%=kg{C%ZXUOJ6<;ANP-
      zB6&^OZ78PI1Q>cu#ZYCfs2HYN)7P`h3~Ys=D^=5Z#a2<)8j9=rm!bNY`Kv$+ne1{p
      zmo1du6xP<$43XSF9yiX=-DERMxjez0CZ+4uf?U?9l)eq271LzB8q13n4k^?NQH7m0
      zv+*BWdJ~(Ps;gF#!5NMe8KhLLqWHiN@?#hy4DN)zE`_s^Vh62U_oEvDKD*&Z4+0+C
      zq&~Hl=EW^yETf@#G0EWCk~LG|(6k@D2=ZCPk3RG>1ahjbtTuMaieaB2n5%74(`9Ns
      zy^Ej^PK3DPwrY~x9zQX8k)<wG6)PoMO0{MjP?y4yb8Sj#vT4#eJMwB(m#v0D%)-Tt
      z#Ox(KYkmpwB&m34r&W1}H2VM2u+8vdfniXs*P~5==$74UGK%2*c|Qljk+zQZQewKr
      z)XCG_tL_4^zI?4=Y$_R*LtUpv&vBA2AejsYT=38{j1F+0JLzgV;75p?O7jr6l*VE1
      zk{HP&8r|?>0E0vf(c3#n;J^4cu#)o_*N!mCr;?bCxxQn(<P1*aOH%N5{s>bPpu9tj
      zQsfY06bgS98_&@H1W5yHRLTq5;3cN<3Q>CI@fr&>E+UIrkqz3GzDm1@Bt>}4Ju`BQ
      zJ7;=65v|f8w*@zNl0}*UQM4O#h>-@vU22L0_XRmGG@~L8ID_m{Q_w9!yF$!=vTTbn
      xJitS{oHO)MEBd|-D&aAn*yx;%Qg5bO*$?MfsmU%Pevu8gvLD;93<;6-^bf}CIEDZK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Finishings.class b/libjava/classpath/lib/javax/print/attribute/standard/Finishings.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b53435d2eac40e4271c95ddf8c2b62fea57c763d
      GIT binary patch
      literal 3008
      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
      K$?yWddhs9BcCW|)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobHoldUntil.class b/libjava/classpath/lib/javax/print/attribute/standard/JobHoldUntil.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a2079e7068515982ebfaeecaa9e9af182b1f769d
      GIT binary patch
      literal 1007
      zcwUu~%Wl&^6o&uF&21WzHf_0-I~3Xw1&bAnRFP0B1SLu<(njJUq;WDN6FD~6<EniX
      z#3OV8D<l>Owy@zT5Kn<PGc_T!>4J@YeC9vj`Og`D{q^w^fIBEzNHCNKe3$RpuL9{Q
      zn=2JaCsM)=75BP4=-L~;^T2nzJD!rRg%rc`<brjs#I_uY*1o6so`np<%4Fr1{wD0b
      zKN$;CC;Bkr$KrJ)LNzL2m<>fBx!V>&D1C3|;W`7`U^rFxJ?&hzxf_Y}&mV7JKKcCZ
      zJ40qodQ#OG=2siKksZ-E#&fmQW=PfjuE-*ZVh(u}7zz#PiDoo(M6k^rmpT?3euo-z
      zYD?d7GNt-5WT-U$V~JIU^scr?Qyld|Mrl;;5_2&&>T<7VZ#o0fQPt8@?eRhm=di?(
      z^qqnBbxg)E(-W#rz@8uM>zPYqqPok&kTlaR+4H!H0y1*<xMHn*!ce1IsMd&LQKu#!
      z5@X>XMvFvVuR4XB4EcfYRQfc3CDIFE$hQ0_=!pAL?{IE>Ikz=|{!N+=38Z0Bw1jD7
      z={-Y#Z2~!@D5guI=PYGvluOV%bF2ITbMK92o}O8gZ4zS>3lyC`RAG@KnCJ}75`*bw
      z#;iv%t5E&|_6F(Xfrg$x7(w%73wTDho|CB;W8lIFT);(KGT_U<6V^^)=I=V)8(;
      j$li^h8I$T8SnlvRhA~{na_sGI>5ZeM!Nk%Pqgwq9eVONI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobImpressions.class b/libjava/classpath/lib/javax/print/attribute/standard/JobImpressions.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bac9fa619c8456897b9c0d091ee3a306466cf37
      GIT binary patch
      literal 1113
      zcwUv0&rcIU6vw|qTNX;8*a9k`uAtCT%i_sH2??p16dN!WG2m&oOqQ+NS)83EaPi=u
      zVLbQ;aL^NpCK|8)Ngj-Ems);m;$?RB&G&uY_r2Nu@$2(f0Qa$ApogK{;(L7G+EuR9
      z7S~$2cBq9FXfC(8+O}4FyVl-SA_!bx1_qK0)0d~zq!x})jRUFqzJXqb*~^7bqj%yi
      z|A`prV<`PY{7k$KMWDM048ws?F84NsihMn<J!D`j41-lNN!IlS_d=0UGe6%hPrv%W
      z(7WhLS1&On3$@|~J*xh;NF#w<21Cdi7-5)-99SNgj#cwK;c#zRIbmB!{b;`_b~P31
      z!x+QlUIaJW{J@mHHf>>gG#*p$aA_{2k;k=&d7WXjP(ML7$h&kZQSofum0~q)+d{2#
      z+oN`Jb-zj7aO#QPJHe#haRUac{$E#AVMxUWX(BahoJPmJ;GCH?yCs^sQrwD0Fr9&k
      z+YAZcZbeou$QTA3p{tzk*H;G&`9krOsOs?`s@mUh9m#d5sPco0ipA1j`sm(jWr-*T
      zRa)h3VvL+&bjH_*GR?2$+hzBpWrlRa4^>k<cB8rF&kkfhg3$L)4Wb7r7_=KlKhpFZ
      zpg*Ap86;^>p8>7I6j_gzz{uRh5w1+U$KV&_H*=#$xcco=oH0&oj<SFkMBF6W7Tx<x
      zOi*O(I2V(+0mQqTxJ6_ZO}SIy327o#w)7qB9a4$IxzZ7)4!iInvH&<_c8B1tQ{ZeD
      zoW&j7jlnaRrL#huU5pEq<2aDWv5#G7ZyeGwEOUI^ficXX)bVzbdhdMdn@dyYW0mzA
      D6V3x!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobImpressionsCompleted.class b/libjava/classpath/lib/javax/print/attribute/standard/JobImpressionsCompleted.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83d489cf1b97a4a6bc1526c3b74460352ba1cef1
      GIT binary patch
      literal 1099
      zcwU{7-)<5?6vn?PP$<&ULR+mxU0bzKr09*B&@^dK6Iy~*Dv2g)W?`~jTxM~1wt-hM
      z-g?&yy=tO~##`USmoT2)Qu_bKi=Ej$`<>r+&YAiB_uCHu_puVi2*ZOm-{rkx*D<9k
      za-|$o_mn8Qipv&vTEz`puXMVOa9z`uZrSd1Eulm!iZH|C`MDLTgdv=IUn<^<Vw7R&
      zeBqY=O$O_S5r#=uI3~9m!twoHRvt634TkYDnNvxs!7Wcj-fVte{1cw6F^sO7(o|~<
      z;cO+>psj4TL>wVZCXm2*6e)%U-@RyYX%s7#B@Aw@JBHU0Qa$N4MOTqg4ATsmT_3J>
      zcwdvY(sZF&)V8K}xYX{&F@;&5d6{7*TRlS7sdj0UeDh@0l%nQ!bm44s-J*6<Rl7;u
      zaO#P^2f?t~F<pj7)&CoPi6IhHN~5XJ1jGlATkff<p6PATRHfW&e-<|rxQ-hPAzN?z
      zHJy<$Trz|zb2>NM=`*CWxnrWT#a)*)V|CMzTzL*TKRl~g&0o;a@OVpWM2V79jdzGK
      zeS$HVV+?tQxwfqr%%k25&BNvy;&t0|n&PSHk1}(?j8=Ru-Er!fo(Mfx5k-vlF}nLB
      zh$BqzbU|pHpvX4qMrfa2p5I4u{u9Q(W9n5Zy^oonUxSP*w5BKvs1a|AIM0#B3(Qeu
      z_8^x$=7HcXgKI=){@4c&o22no$^0*{kBEf!mh=12_J;5YDgk&)WxgXgKL$<?!AUG&
      zF#zAfZTfd7$X*Hz3PBtQrP!AtbTkOP4`7Ld-vby!7P&!fN2$xFQ@wLj?*^*EKU@L-
      A3IG5A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobImpressionsSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/JobImpressionsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7eef5dcaac557c98a89a765ea79dd9f175fa279c
      GIT binary patch
      literal 1147
      zcwU`TOHUI~6#j0XPzr_ePy}_rS4$}k8#O5*!K%qXg+-MF;=()aWte7qr_S6__$#i6
      zYZe+8Bx*D!uKYRv0OOgVwDQ`xn7L=pJ>TP;d*|1m&))znqLf60;eM09;d`aFYe`k&
      zO1YNdD^c<kmksVVN~?~cx7x1oJj;<@&2P6ISBXXvF^1g5*qTrqJGxZD6mD%_D!!LQ
      zf??s3>J!RMZu`PpIoV(s_JnJ3dsDc9_6z+n16ySntdJ41r$Rvd>-@o|m4n|u84^pD
      zwA3;~Jg4jVO@>&-X^0e}7)~RN!6dQ_vw@3}&81n=ZCjY!UU5yoC8T<?R~KzXN_`k(
      zn6aI=!hPiUvZ1y3z9t=|8A7vZ5SrTMQd>-61QP-A6^8L#wZ~hd4y0KQ9Av7N6zhJ=
      z5bkqs*wj?E>eQ(xPMy(rCmB<_mdEh0`hSN}W=Qqy(v);c&}KK05U+i1duM!Z7)?=E
      z<@|OqqS-WVLSu+JMl*1Eu8d*86sp4MSRHqtVKkTjr>J6c&!d|Dnq^9^e3!a<aK2)x
      za7l~ZV=pfgOOlk<d5bv4PH}W5+lP6E$);lzt==?>-pM$q`I_Uqb@9{+hC6-9)WZ8n
      z{{i((Pn@1>NTQF{e)>NmNFhcs-5YujQRWrZMQNRwo0>jCW-9g`gI_SRl^s38`1g+?
      z<|@6jgadRWu!aFtF^*@Lq>OfqCY325jHYp&xP#~hMG=bW2s&zO^c|r!Q}_Y)4)N&W
      zT;T{ahh3SWkZy}CZ<FDdp~S>7q$`oZE!-wThC8@Rd-p<gE)*z+c_5l)AG)N8Ftrns
      arH{8eWDI%Cb-eYUg|pE1h0tPHweS~Ppby;u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobKOctets.class b/libjava/classpath/lib/javax/print/attribute/standard/JobKOctets.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff7742995eaa0d60d1ef84108922dad37e414701
      GIT binary patch
      literal 1098
      zcwUW?%}*0S7{;HWEeoYkZ23??T|uR#mc^5Y5)x81DKua#V!+dEnQXUiXK{Cyz{P|9
      z7si_x4;=K=L=%ly{~hnfcb8fas`0Wr^X~Kf-mm@s^V1gqcd?|Qk0IaW2mH|3_iU*Q
      zu9Rn+ff9zVxZLC3p0Vbd>zj2Yl&>MqFxOjNkxE#?s~t(j4>j~N%=Z>P3h%^R{T<OT
      zz)<*y__25q2w!y#45PmAZ0>9e&$nIqq;j8utuYLjT^W|Gwz(6C#OwF%$#<`Q3^DXC
      z+tOAm4DnngzfG^QyC;%}A(O%g(i+AXX2S{$hfB+-IF7Kmv+7wvOGx$LurBr$B^tm4
      z!^}Yl*IWEZm#)%Hp*zC&b=BZfUrHj2%OUd$!+5TGimXxX(kg|?(^XrFji6-;Z;P7_
      zwUep3b?SywPjv4D<Eml%G??mtucyS2h>D|WRH$hh8+ZJ3g>0HlQCFq>ZrJ`@3Oa5u
      z#9Xr(mT^JGFk}f;=CoVaJ7UP@@@GV4hx=jH!J2JJt^$uT-@B+-{#y^-jh0r3qEV&|
      z-Xg}>AB@iE22f;3HC?m#yy!;#G9+tm;MK)LI~-X0bP|i9n|^TW41GvIqtg@yk)-z!
      z{rY`KAx>x7Jv~P$vK1+Tv4!b2E=|A1@MmOqGUIJbe*G9Zrs$a=7x0vbJ4D;1Wk16-
      zMJ7(Xn88&bI$gtcBC~M3oeb-w303LBH?TKI#EusVZOk5b;UiQ6U{SFRf;Z2A(_L^H
      zH*qTh-^M(B%SG;dl%N>Jfmnup=tBFWkcwcblg}L(!vYGO+D@%^&Rbvhv@S*};}^1|
      B{G|W@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobKOctetsProcessed.class b/libjava/classpath/lib/javax/print/attribute/standard/JobKOctetsProcessed.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..560307e27aebda5bbf76c7b46c83f183cde075ad
      GIT binary patch
      literal 1084
      zcwUu~O-~b16o%hRTMD(MPzs`;j-b#FOO=?oC?O$LlR^V%kwiCor@anSr+0AX4r$l^
      z3*#R!VWBG$O)xIp_@j(xhEl%j!o}P>bLKtIIq$jm_n&V^03Kj5iUEeDCg11n;+|tl
      zRpd%JrtT?GbQPBk?lg*Pw!XeuS3<d4j$Ie7D;iOR8Rq)uRiqMzaB3Z?csq(ghK2sZ
      zE&rR~t0xhLQCB!7w|0c%nznpVdCb7p7!qY$`t7J4Zh0c|Iq~+_{LzOchQVc1nrek1
      zoT+4YXe-+d5km;0am0~`BE>N4S1(#z8pVob34>d!j^VY0R8QJ<v8Sle5Yh}Y`#xN2
      z@s1{KrRhSm$g8Gyxzz5*FosE=d6i)zQ$0o2sCQ|U{Nl-~DaD4@(uK3lb&Kqzs&<{+
      zaPmao-C$Vlnl8h`>i>_u#1IL(q_I@Uy?F0&%e~Oirrs2FRm#5d=WsiYo4Cagvh}9l
      z&m|ed6+@^pr!%vi4#RjRdqz~Yxa*Q;xMmuXE6<_Ik1i{g^Zzi@JKE9;QKD37gSUv0
      zKF8?Ja0q#Z$)>Fr-WBY?cwz6vIYX>wdrn<EHT@Y*^%>5h52Q;?X6cF0a~)9((LPL<
      zeE>0p>78x`ts@lKCfxw->D=@olGC4%_>QrcsqsTh{P-GVOwpR6EMSv(&xrFJ<EY^p
      zMJA7Psm3%Ayv^VSk(od5ZiRKy_^M?7C)h_sLI=70A+&=Ye1uv6UQ?TI2(F(2Cwt%|
      zW-%9l@8B-|n-8)Vf&zsg4un$dOAk62gscD-KmOf?F=UYK_I8?@yO_G)H}zhiD*OdD
      C6ZpUY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobKOctetsSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/JobKOctetsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b10d859d5abd03a41685265de2dc1bbaaf75763
      GIT binary patch
      literal 1132
      zcwUuLO;Zy=5Pg$R2!TL=hyuFcS3(S1s8t?9QH4>e0uc^Ts-QeLn+(gw&1~GARro6&
      zJ#)|#Ra&Lx)vFi(gnz-ZcL_nh4jy)<r@P<l*FCd8{(SxlU;%m(5r+FM{+93Q9oLdd
      z=SsPj;VYqgipwT<oBFC_tZg)uP+r~dbR1WSW)d-m{KdGsP#Zf{se~!q`o2_rFNp-h
      z{3Y4Pl$+f4g|~bhU>Np<YjJy1xSr+67u6>WY?WcK;>bXn3IXw74_2D(-#@1r5{s6!
      z)DlBHU#%848DbTuDN=}HIE^$0lgKj61}b!$OH;4fwlKN9?3#XCNcD8DAv%gG^<j)*
      z#&+Hb_p#&4rq<^Bnsk(A2+bCrr>R{owS^Q$kPC>fFpTGGC%kp)K$_)1L8fL&vF^7G
      z;XdbvO-*HMPJ?>l)ES+-&Y0S@Jcft0|G$VbL+V5-O{hu^3iccc@y6%2cShre(Gm?+
      zE^G(mnN8ycG=`{Sv;u|a(ijFzp(>oN)N%J2M)QS#k}5X$Jj&^>Tc+g7cd4UC=Q9?I
      zm$cWr^70a~B&pImZxhGZDUR+``*4pT*K&-~>yi_WqU0UVf;z7|zS|HhRxs6x3&s^b
      zLVEbrEPZkMt|5s&+WYB;h#-X++4NXw9U{*w%8SyTo12_EL}oJf0fS#KvXvb@#Q3*Q
      zA!dTsEa8AE5?I3kY8b~eTqTcogr+K!Kxj>2nz#e&I$062Y4+V}Yjlp#o+*9@dyjbZ
      zV6J$GnS)-Lp^$EiByW@8mtl$A5u{flgPXWTgbcTFhhld_bUrLl3jIJd%Rcr<6QOG-
      bBugKKyJQRn%yqS$K#OOgoeQC*Fl+uV<TD4%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheets.class b/libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheets.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..adc2d36b1ef331e85d640f4e213c885c5821f9b5
      GIT binary patch
      literal 1114
      zcwUv0T~E_c7{~vIZ4Aa>umLKd7Esxkqj=@T2nm^*3?~|g^X2YzJ1JedQ)o{K#BW0U
      z2wdnDQ4@`~eg_jjiSapQj#o{*X-}X2|G($0{r>CI7XbILoJ1c(sm*u!p1JKiQkh&S
      z-?2g^%s_G3;(p6q_pB$P<?#BJ5GqI_&M<$ur7D%Mg<s#7iti=S&#-X0@R@!l?%JP7
      z5(5mye~6!polpd-XJ8l&gzs>-A^gDc<csP92DZ*HT=AqXT{XBHibUe@!1(yH_=BN;
      z#gUF$Wr*jig$CU!UQ479LpF^OWRe(Xn9~)QE|<1hbzNa|cg?rMj*#l%UQ=u<N;H5;
      zhM8RrH#&UZke)IuVYng)47J6jv7AB<S2gn*!$iJzf~-^R(k|=dnVKWTM%b~0zsW6^
      z+R4_uCUwK9CwlG%<7&$Z7|hy#t*Fe9hzg{MRH<<q9e0Cs#XPmzqN&P-H+lr~X&9Jg
      zh<R39mvTYIFk}l=;j~}R-)G3>3#UXCmj^oQVBN7LSD{at?_X4`6#vpkZ>!~1q9iHP
      z2JaAK{0yTzz5$eI`EAcCb#%+6AnKVRRrf-_DIPg`aJjP+S<)2Df;vPW5=hc%3WG?|
      zeTaUAKBN(+Gkphi9i_--qy)wnr;ji;{SL#Qk$at;IKq{$A0o#TU9;rU+5{Rzdr6Cb
      zg=vaR9(yr^>p*n6fty5Tdd%Gnk4d9dnc_FF10-UHi^U_%9roZOR07bVVg<qNQ{YSw
      zoWU*Jj=*=YK=1OAyAUNPMR6dOW$$~?{wTB)!P3XCyRb1VqS&qN#CrF<_3b5AhNVbl
      F{stCO0@VNj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheetsCompleted.class b/libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheetsCompleted.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84373399de70a685224987fd0058770a6cda8991
      GIT binary patch
      literal 1100
      zcwU{7-%b-j6vn@yErnVrls_V%u7J`~OZ7%gN=QiklZArDA_>Hs*>+sE+0NG8Spu)3
      zJ^~kVMWTtuTVKQXFrHaTL4+GGc4qhNcYfbFXXfYcFW&$>#9|UX43C<8kMEb-z9UtM
      zE9E;@s6;7HTsFAhD6M+dx@b7Owkw1RDqgGY3MCpz#2IEU&o!kIw(x5QQt|yHdKu;~
      z7rxTpWUz7?VHgU8?{IfZ_<`feH|A3Yw#qP2@uV(EZE-ggiHSM$^^2ol9~pX=9O<ZK
      zhIr1*Z_!rq8X|=lhSEr5Ac-u)jCL=%T-qhmb%o8{72gh9LaJx`b<tL2)Q3@q={*fM
      zTKvF}o-!<9xFQG)wacaPAcbL!Yvy%^v0U{GS)<yeUDoEAsw2fl*s_Gb$t{=K$yU8O
      zb;GGA`tAhdYS#%Eo>c#D^ks%bR4I+dqzQ=kA$NldRlT&DqOQvM9X*RXY23nXhL~qH
      zbxr@s7_QkuRXClS=N~YP<nrf46_*DAY5Hr9Ex8JPa(?`;VySRNL*3&oFB2t6P8+;M
      zjM2XsojLZQz%beLtYS;|UJRn<i}lm)8B#Sb^y}ieqh~pN#gG;?m@YXrO;3WJNhHxn
      zdp}+N9;6Vbce)|84pL;3bUn0>E=(OGGxZ4rUopI$9XZC>_oFCdg4Qf$0VeU*h*QM~
      z)^UR(<0rY~F$F|#)3`}wrsv*qSR;*AWePvQJ|Gc0TqqpFIPAg)sRUq~%G@FN+jHPd
      z7o5QiW+U(%?$W<|QTBXfP>kY0EXzK3p}kS)T?9*?{O-UQa>#dTJ4;=-nA*NH^?sx(
      F{sDZl{(S%d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheetsSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/JobMediaSheetsSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d631ebbea561fd85fd696ae1e4a016af11e33415
      GIT binary patch
      literal 1148
      zcwU`TTTc@~6#k}HD1}0~sDQfQt)-TR7bPhn!K%qZfrnKRh!4)T!?MkGw(ia<{1kok
      znFoC$(L~~_|G*!k@$6EHa(VG#X3m^B-*>)qX6DE5FW&$xppr(6;Zcjf<@=S6XG>M#
      zN_n;!C{ghhmrd?9E32-#E}Aws_JmNr5p+7Pr$jT21ViC+tRd9qt}d0Zgl8N`#rM-l
      zG0a~PeM-5-oj~|2rw0tfzVK}BYzfb|UHMXf%D`3`25YVi<*5jeEc|+}FCPCqWJoR9
      z(pJk1$%3vIw-^#Nw<$7+V>pW}2Ghth%!Vo|4wqI%cN}4HXT`IEwvg)CenWH=W$MEi
      z!;Is;6W$XykWH=44>aj2%@mp=d|y+0Txts$j9?-pzQ!<KsGso~RDrarp@Ll9mSQ7l
      zo5Fj+O^1rg*WCuy#Hljccby5fXZs9`_5Zt!DnsT>E_F#K2OahtDe)%Yj(<+)rr8n=
      zRW0s>Et<{ZHZ+E~Yqmm_7s40@ETL+guGRGp7)A@lzk+HG_kD`#H*8CC6?jzD<BJhX
      zr7KG8U3+zzSkjbfgSUxe>>rM9XZ!GwVY20#<#yPOvLCgh?4S07syE!gYl!D|*xl(X
      z+7>-X`Uq4sjU<gpq|rxfKYfrGGDwh34~OO<^1P<FIIR<NQ`1MtO(i~J@GC~P^P@)?
      zKmHtHuG5?+9H1kGH4LDRajfG8d9)KWWtjpZYZ^C+JG5?*6(gJOpqp)t_Ay#>rSD)L
      zkc=PBm5wlT*h@1M(QT9D9TNO1N-=Q)>7~fw4(<{m!#&)mvj-8n5G5!_ejuJ_pL(RJ
      e$h8}hWlxT~WDG^jb+w&AOXs1TOQGc`YW@#%lMb8!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobMessageFromOperator.class b/libjava/classpath/lib/javax/print/attribute/standard/JobMessageFromOperator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8d92b9ffebadb2f2fbde0d4d88d693761aa02cb
      GIT binary patch
      literal 1058
      zcwU`S$!-%t6s)!#Phy-nI140U32W>aGva`9a1;p{MM`24BnOM-)MGbhtnqZ{=|RpH
      zaOcQ31PM-&IIvvv6Z{F{O?xm7F&7TKy{=bP?{%O2{QL#LJrpe@818rY8{V@Il<RAo
      zYpq--)WQxl_gh@G>}}~h5<$S*VpGZP-hohDOJyO&usk|-U-WeS(AT_YA<eKd8ud6j
      z6ZwPR5r*kND3^N;p#oR>PqrR1ux*CPs`Mi}y1~6rjD7ua^5N~bcbp-;?)t9YAc;aP
      z60tq*x9vLd`Rz(S5^C48YqH5bQ7JYUQdQX!86+{CMHZ6`xti;X-LUHjwa*=oT;vVB
      z!O04p<6ug^as!67+JAMc!eDj#;fVi?S1QFb9tXF>zUfxH4!KAAbHj!1IUUi|mE!ZL
      zo=aIQV38pyoz7{E7{+j}Ep(M@(U$6vVWv<V0#!X81caHWyKSHAP?43jvxxQ5KN>K2
      z#mYuhEGg~sE^*AB;)u%~$8Cm%j&#a#Q_3%?S!Ee_iy>2&p=ydvH|ogJ=$_t<Xz3SI
      z$u!1jEW*M#trPUS6UZP%dwOG<rzo;TxFoICYU$1~a-R(7Jk1$efgPk#L!NfaeHdmi
      z3z*#;=7}WQUBE>`v#8ZE?GBxz{9Nff*n5m6k5)^^SUMWePZ_$Wl>CgGy)Y8<{gi=3
      z4wrF-2pO)Dd;-@@_H`prHgO=CXCDWoX%iBLEZe`1$rx_nX6)@x>aD+1<;c_(gDU(2
      DsQdS6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobName.class b/libjava/classpath/lib/javax/print/attribute/standard/JobName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..51ad2c125941670be9325c7abb369ff615dbe1e0
      GIT binary patch
      literal 1047
      zcwU84%Wl&^6g`udlQc9Xeej0zYLl2^v0{;`0tF#8L<NyzRCeQJ6dXA=*khD_2Rruc
      zvVc`37D#OQ75<^(dTdNe18h8Z?mhRMbFb(7@t3av?m^d(Vb~b)cYI>J@oiTcTuR@z
      zLMe<ua(BS}fzk1-Jw6s1at!P9vHM~odxx&%6AcB1&H1Qj(Vf^H{>o@5GU)#RKNoL9
      z5y-TGVJQ&4%^g$tf$h03b{{dY4#SzY=SGI5$(>N-A54E7AH4rqVkm6et}S=SQ@tAr
      z84h=cMvwU1VJpsr(sqol*XNFCHB5$F+Z%{7vZz(Ch$=(1YrA4E99zQQ=axe*Y6@<0
      zvO@PHnUk;WfFaiT|2|s`+9(bq!c*qRyQ55{)mfudrQL9c1XpJ#duokDU$z>rq5-Z}
      za0!<gvYs_Msgb}K7KTE$xfDasKV(?0H)cR>hX(;+N<Dk%avAz$<^E~Jw*Hri)8E$G
      ziH0Smc-WN_9Lcyv)ESDjkS$k%$~`ai`{J=3EufO@>~7RX50^$l26<={T|^0GIv40k
      zXHY?oV)||LU82k`A+vO9P5sUh&VE*)W%`!sjLHRcutL##48tnc02Q6Xc_N9T3nY@E
      zn3kE)KB0TmU)8^XeLy}tZR$t3GEM0h6`e`VFUjA5l30sdQi&?Akt{u6T*nQn-BjJT
      pl)#qC1KAq;l#&)ys;|f@aXBGlxQ&g(+wa!RKU>FhTN?`1{0TWM?&$yk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobOriginatingUserName.class b/libjava/classpath/lib/javax/print/attribute/standard/JobOriginatingUserName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ce758cb64d7301212c8209070fdaacf27ec0dcd
      GIT binary patch
      literal 1059
      zcwU`SyKWOf6g?9^)-g^ToChT45uUMQ%!&e~a1?}$5D8X-<k&)Vv-W5ivzdkUEOLGV
      zQPa|<fGQFN5)B1Ez~3P5ju*!vrlFXfJ9o}G_uM=C<JXt30Pdk|VT$2?kH6&u`*k3d
      zwz<}UbV4oczUHdSgRZ^fJ9~k2rQ%vDx78QHE<X?!k_@YpsrzD}n}<sCfrT`~+GNzT
      z=uF}d|6~~ENL+HSErP!ERcreZ1KVMksrxFjqubmIMe6;7kFVZ+|5;>6Z%QTg7L_P9
      zq9V4(m1{RiPr0>WCe+fi8-9m-qE>D*B<p@xWRbvJ4mr#)<Qr0n-SEH>!9I69a#1kw
      zHYY1|j+06KQuY}(8viw|8bc<G<EX$Hv($@cOpb2Hjnl1o6LOCXERJ`&=k!EJ*UB%V
      zhA!o>j1`82@AOXBh+z!pT%qe+3)c@08RkpnF;Ly({XSu)o6;roVL(<k<D||Cqq&
      z8EadlVo{}GvkRv*;&wB*&9L0_ovME_tZFo&sxqu>(+`7=cr2rd6ekb$ZX`>;F||x9
      zMQa5XGPF<A?>&Vqk`&V;(|49K+k{KdZmn1D93%hPfX>r5OFQrcX@V3eS{=eLj|IR)
      zi&!F&D7t`)gl5sGW7(&4j`;b?H?R*#C63lB$0#0+<Y$dsi^y$q_S}?M8d63j^0<sE
      zB*<`;%1_~%VP7`|swNL43hdKJG;LCj5z7s)V=;ysxEXspq2BtN>P@7s8C2;v!BX~I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobPriority.class b/libjava/classpath/lib/javax/print/attribute/standard/JobPriority.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f40b9e1af9a44b4f955c0a8c25f35e7e8d4dbe3c
      GIT binary patch
      literal 1098
      zcwUWD+fEZv6kUh543|P{xv11j1(B8lqfb7RkdUfLu~uTGi4Y&ow8wFpVGf)*L&_)k
      z3%;57$b&wSXyWD7kMK*3anDc-0vcb=WuLXyUVHDEZ$CeL0&oYn4fHY0xA`9Lm^;ex
      zw8^zrjumKO`kH$!u3F}rwAPg)m816!#2IGJ$5%WpY@zD=p5`3`{S0&G1J}bliLU;R
      z7#LtE{sa6(>;}TuJpx187s}yoLnz;o-bUpf16yMlDN8T(tsC48MB+=~`;U#;SCXNB
      z+3_5`!Vu3_3Ju!IvL%KPLnet)qzsHROot9kmwUEZab00^cU9TJw(#`*PE+h?N;H5;
      zhRj|lo|A#j$rm|Acv2d}rBLZI!$iJ%EL11Qo?Qx4rmBu7YQeT8)KhM`R79pKn^Xg*
      zO6cAV#`R0bXIQBI|5Qp0iO3T*p+dD%x47${a`M<}i>59WHp8lClE~o(Lrhxj(8n1V
      z!>}!MnbSz6+GiNc7fyi6F86)H4Avdn<2q23`R-Z7a`7)k^afd4Ar*r%)%Z4PjQ^q0
      z?cD$t8Io;jE$(#dWf-c<KsCh!C+t}IL@Sm;I(^wx8v2lcL8mDUVu<!(`sVwPM4Zkv
      zb6V3B*@}=rc0PNE3)%P^3}(}<w;1_|v1gfyLtOm)J|a%hnjtc<M#5DhKcZL-S&B>^
      zN#F{u0@3Lju2TXQwz-?=Az?yPs`wS`H4?Fd`Qjm_4|?LG<OJ9x&s*g9`3d1vPdJ5}
      zn2m&QVUFJN5xWp2Sd8L8EW_UQMEj$V9f>86p1Wf7<D=O1c1&G3P2D}0x)h<zUutsv
      A;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobPrioritySupported.class b/libjava/classpath/lib/javax/print/attribute/standard/JobPrioritySupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7263fc7d99d1c9eae14074ec342c679fd3abcfa1
      GIT binary patch
      literal 1091
      zcwU{7T~8B16o%iSEu~m!X#vIhQ3183mc|(4MF|P1niLx#sgn2=Guw{qG|Nt%oh9&3
      zjPb_AOD^<A5;Yoc{ZYoVODPET#*5vVJ@cODyyxuv`u*iQfSXv1V~F8ahi~(pN>@wQ
      zRJbu(TD}n#&v3WRb-S{vtPL%dmS(r<ce_d((T*d^FgG}{?iyhW-Q0Bz--%<GVR5jq
      zPut{<FT9n*1BSFGwB*jF(4JK8qxxM2w#qP8Q*L0(gbA^^H}l`7vhO}K3@=Gnnq`J)
      zp<djirKZ|q6cMD8NMbCG48v?-qT+DZuGAez*xXssw!bA@b8n|5x`qmkV3HxT9l-O-
      zH+l6kuSrj&2}}p1vkX&(#u2DVj$OMNluR|GE7triOX!E(a;S++L$#;}PMy$qFBmni
      zq{nc(@gGC4GQ>i2G>tknEnfTF@lIG;w>qL_s>LTk`&W{<gv$&OWpx5Wr(_IgY+-7g
      z{+QCc4B0~Qn5gD(&m&EuDQ%Y<UsL5frxi=3e{|FTqt#`i#HrF6-y+83UyR-mM^Ivz
      z?kKC=?KNKZ4m)QUZ7N^4#C;hIac0nT!b?V%n!2SYM$dV~F+yvCF8dHh5v4ud26~TE
      z<SFTfXw5C;_L0g(-y@Mrw?AO)D<&Riviq3&@hMC^NAC<J0}aBiA&qrHZ(xQZ(+3Fp
      z&H>@>0xnVk7R<d@=mBX0RjTw8>@8xEy@k>~@_T*wI5`2Hk=y6w^~Eu8st-<K7IPtZ
      x9#`q?T9|!3EKm;PKqSLH_MyXJNQSWF!Eq19P(ZQg?I?BOWU4nX^+u>F{{ewd{AB<D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobSheets.class b/libjava/classpath/lib/javax/print/attribute/standard/JobSheets.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61a52d8b767cf00950fd3f97d70ec5f5d5ce4144
      GIT binary patch
      literal 1400
      zcwUuMYflqF6g|^!AC$_YJfwgKD$r7)zEN5mNkJ`=YFKDONKB?MDT`%SceeyS_@4wm
      zkZ9xw_%r<MKQJ-g8J2>j5^d7Xojd28JNKU5e*5+L7{FcRLhvypw)hU;O~1Dd(@k^N
      zwT*Jk6=}!i<_5Pn(hF8u-xR`iLeLn7o1^E=+P1!Dx_mc;Aj5cb)El`cz1h=D2w{fQ
      zCEz9Tp(Y%+PGIP8gl+I@N!X5InJa}k2DZR(C2yJX%5I5QYa(#`^5^#-TYdWsTJd#p
      zo?&9~U)#(ug!Sdw;@s>KX}3CrG%L%zT&3b&Yf2_v<z^+Vs}q8^3F=<e^<b&B|EiW<
      zuNtP|<{12mWQnevw>Crs4Dl%XF~AVadgofAkSw*($+alj&@Q9vQFNd^gb^A|<K4oz
      zNgUHMMHr)0=(N1#jYrXmn2eH9bfKG}ebF#Qv9?_nw%12&(ORcba~e49RWbrU;w0*B
      z8V*BXM|MpP6lhWv;pVw3Dwe%RlS(AdjVfQ|j%>9>H!3D~Yc_GFFCwz3zs#-fe<nvN
      zA*xj5+oaL`hlXcJ7}E@qEvr1~s1cJvM9|Os*po;$b+VIy^9^Q>o?<V1>WLfCt(v_q
      zo*R<XRyTM`QZYhv_QQt&LiFuN3#7lT^cwmQMO>Omaa>wSYrnKctz-<XL4?tRUSeFO
      z-8*QIpUfAqRsRwC4lyW0O@%{&uNYqS$8PAWTI`m7h%rhK?f`?7IlvI568oy~1pW5X
      zb%1Adl@}BjFpgK4!DFNp0#u5gK(BC)GBOvO7&yZ1GmVJKE|b!V;`N@OFsYi6(G=38
      z!ElHEb$qy|nD>?Dq{;*S82eNg464*yB^Et7_QX2z01v(EoKYV&Qa77WHR|e#N1gJh
      dG>@@Hu5*s7)wwgsT;wJixgVQw8L|rX^fy|hFo*yE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobState.class b/libjava/classpath/lib/javax/print/attribute/standard/JobState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31a09d87a0d924918d74e085116bf693648db772
      GIT binary patch
      literal 1864
      zcwUuM&2!sS5dXc}v1C_C93?HJrI40>*l7||zFKG+NNlxr>ewbqTud1{vMn4HTQZW|
      zCctom12g60#BgAyhhDfat$WB!`M7a_0sbV0eNV~<Zpwf?di&db``fo~cctI{diXPd
      zGk8nFK88~_jGM-KrsG<+pD}#jwQ618%y_<GHw?FtS#)Z;Z}_H!D8t0w&YInA>l?Oj
      ztV@VJHe{LW6mEXY!jSY#*D_ia)AcOJUd`ti*doJV*0Fg4e#K~Y&4Gc>fBbX!&R1&;
      z(rWQav2?Y_kS_ekyw4M>tQB+l;w1(pMAt8C1v)EHUM^)dT^D=mj&faJDV56_dC1xM
      zVpc0~D9taFmRC56XG=@vf+p~Ok50CmD@LtF_Zht=(#o_9yP46&4xK+_Qhmf#Lbu6l
      z|08>Ow%)RA%b#P2q|z0JXx3?%2{0T{@HC!bh|Pxk(NsQNiPO$e1quc^dRD<ufKDhF
      z4$vtD$pEDlj0EVk0yRL>3PuBzQ80!<31_HL{nwK50+pm|zh^tQY#A?+(lPCZ*f~pu
      z4wdOOv(=FC3e~#fI(5_Yga=(q-O;B#-|2Kr^1DFSts8dTY;o;13To6G*XPPS)xGYt
      zJ1vt`o?TYK0UYE=Q}6_yWEd`3wpr}9Yo;3(S}izr8ZU!}jC5g4Ac7-QDu2!L7zS?g
      zw$Rk&sg+IB&r;2sj=MpvOr>}AGTSmdkFt*IR?{~8u1lP=k9y3WeoSMxXa4*gA4oc>
      zXtXKD*gs-~6C*>XlWsUQDvZHjlOgigchA{@RC>=z8zD!nZ`e+3`TpB`OWcI+bltjn
      z(c+}RtpS|jOdO>uN9Y;AejI`XnQ)vwBKwfQI3G2_<9yJB91dkNlp~>3Lpd7CF(D7}
      zHVR2iBpIXV<D@Yh2G|m!;J-h90INne@zeuMa2ONt7>AO8$2pV*Jjr1)@JI<9xJ(Kh
      z_)G~L7kDO__zBNdBkJ>dHKx9(S0(jjy(+8cbc&+BN~@&K(kiQSw8quf^#@qs9LlJN
      z2_p4yj95J!Ct43DIj@HlC-yMOnLSK#Y7aBS&D|HJyGZN1bX7p3vMy2)mZ{KJF@<+<
      z4t3<PhBDfC8y(U*q`eQ9{_F7YF?@W6E^d?kOWeZO^n6P@-(dsy@BudQA%4L}_?7Ix
      z;{q;;6G6qKFGf&W%#nrLVv~nAad{`Fgs^@>&HhyI4hCMxi*|9eh$|F>p@1dYD+*>w
      z#GDp(AfmE++W}+3^o0nf1lwV-5xU?TVLCh1<$mfndr+fT!D>jI38~Q@7W%n&cX6ZJ
      V+zQqC5pJ%Z`~4nVhBt**^>5)Ki?#p&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobStateReason.class b/libjava/classpath/lib/javax/print/attribute/standard/JobStateReason.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12a340af79571dc5585e39da3a91e722c582337b
      GIT binary patch
      literal 4071
      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
      ZjSI0);=8YoeQ0^?mK9<Ze2;s5|Gz3D+d=>U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class b/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9098cf72a79e0723f3d213e21754fb2ec3cc4570
      GIT binary patch
      literal 2137
      zcwVhkO>^5s7=AW(ti*BBG;snYr35I{A9Zb7pnyZ#VCvMtbwiz)p|`cIanw<yj3hH@
      zuP~f@?tv>84san;m;yIuIPfR9@gsm|*NWpf>A^D`q+PA{eLmjz-TmXApMC-G78(Y|
      z1g<=gU&#IZo@Y5hUIu|@HM@bC_XFv)rPt1HxXpSX1M{9Keb?~~L<P>On0z;|?EG!%
      z@6^q}KuqA$=}?>Mn=osKD+05==~>cln4WLB&UWQv0kI)4T_OXCgNC%b=J=yO%YS|I
      zZ0n*xY{hb{U{xTJN;d?eCAV$H5y5N%2}}!|salR%>+Uv9Z%a09GR#%o76~M2_#G}r
      zgB{BkC{#!DTof2jRm$mxqI^M7E|5|wqKA^)lPxQFNCy>xxb4bzS+)Y#<3gE~sY);I
      zf{HsYa4uCn%3jH}ZL<|H2Sw#;vTk)88FW2r-8g;U%4ph)s|23H>v+Qe^O!shGJ!X7
      ziAsIzk*PCWiQc#gsHjW=SzH#FumaPQ+SFnyJs_+St{10p1qB0nX8z>g1iS4j860yz
      zpol{RTRNTm-R1+zC>nTMAUBe?I0W8J;5y!;YT0fJTuqIbo%DUB`-23ESP?LGq+in#
      znS}c+W~-kg`aZpE>`hN&3FJp4SD43|^x@uNqptr?wKu?%b>S%4wXSV%x{NlxTl+0@
      zPoYkLZ93C4v26Lv4)?@S!fn;CZ0Uv6K(*@RbUM0Og)1=CF@q8bJFdqAFn_GDC0qLH
      z=v+U!x{`g4ll~P!?W_mUYjW2dZkbTT1U^+)k=xAq%5<)0!5>l__Lr__-R*iUvuvpp
      zCx;HXz6S+%2QnYtZKJ3CIRPgw!XnQFn~l#npO;`@g5xA_=P|_foVOd_GhDgGQE(j3
      z9N^3kddpe9;~ar9qFBcqXNle>%p=KB0W5?76%s`_8kwbw2Ur}2*hUNu4YAzY7DA}m
      zi#VrY4QgECZUuWjgk9ygijQTM4)F3YYLil08g;R^tB)EBQ5DuJ{I{$lU)7k8sUXU+
      zkjXy9YrIlY6wGN_p!O~1b5D^I_zl<YWG?@RcRu6y`vOn?{adj|H2WfX0gu=|kptdv
      zKJw@e_$&046!0Nk2(HI)12?H+4Tp(T|31<xdCi25HyN+IB(uL``e&3rpSyK{^<Oht
      zYWc43e@3%>NgrQv{`Ei(l6~eRHpr*YKS8yhgFBif7uGv6C%*54#`MzTfl5dEm9F7#
      rDDWtBb2#+L$<Wy~db<~fro(DZX0puhF+)87p#jG9Q`hgUQ1<qJx6bcI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Media.class b/libjava/classpath/lib/javax/print/attribute/standard/Media.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d085f90a016245db9885c7d9dc65a2204e8beb2
      GIT binary patch
      literal 1073
      zcwUWCOK;Oa5dJn!;?zx{P1^7%k2Zle4~Quj4k?jP3R0?4ss?i4#5!3SM~My2x@vw4
      z7fzgVfJ>1$AZ|!pxbkZd<4p*C1cWSmc4xoG%&fot{PY>X2JY&JFx=?y1Ab_}@*P*2
      zTuR@u0x8VC<Zhe$ZS%2cJ6uPUVP!h<p&RrX16T4x9dU;2bkvsDdhmOrBf(Ibj@t|O
      z`{H#V`tlgTU|9bLVcWANV21g=@EzW53cv4o?z8$91KVbpt9fqNmTdBFAYwnh-+xnn
      zu{U6dZ#u3cs|?Y6z0jmk^V-6IhQ%c2vA}SC$8p7O(6fa9lv`c0NbPtna^U1c`*AWV
      zUpjq;wVnSNX@wzn5Eeqk)u{$*nRki3lvi}K%U#=iVs%7IRtnDzT*Hcv>(t!o(<D}r
      zWk}dU*1Eh;66t*5n1)JL4A504aT9AJXmez(<qKr4c~&Rv>5MVMY$(g6usxq9HPdix
      zm&?E>>b<iro29?BKDnGql{9tI+~qyeSUjQ8AdqWU5-@2ty>LhjM#BsImU!fZ12)v;
      z${{1VN)2iB#Gqq_)|WAhB*i)Uw<9=*C_Qv}lu1#hO1TKdcyak7(jOFNiN1!)?vqLb
      z8CqpVC|tlrK&>v3GF=gtab>J!kF|28uZU^G(h;r}>3xTE=?mBqa<t36MJzhhh7+R<
      zSpb}hvPiT|g$ZOS{xQu>OmkRAUYQmM6G2g_l$7~xl?SvGdp{A6tCXk2lB46X*aB`T
      S%1LVZG<7hA%5X=aHhuwb6!16z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaName.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a5c6e6956b06ad43ea217591b6a7b34108dd0f0
      GIT binary patch
      literal 1275
      zcwUuMYg1A|7=Bi+;qiv4iDp__paN-DmW;(H77mhe5M%tnEU@8e@ZcN{X1}99Qux7{
      zn)=#IzocK$^zMR}%n!!Q@;>kF*>|5^`1$+GcK~yUdC<WSe8&&?VRYXzOgqYL+cJs`
      zTSV(NH_O~AM>j;-;Ay@mJa95hUZt9$w=OJ$S98Lu8#Qw)xyr!S8M;<#rYyB{yxI`1
      z=O5>O9j-?f8G6$3LMoBXCNhQXm&t5`VLEk{o#b3g3<GEF*-SjGZ^ko;be2I&>aPm%
      zg%eJH+x@Givrg1zCCiId!O*{>_KjA#S&8Z@L;T&sZ0xC-+hsF5|1+L9R;n7NVJ|Z{
      zf}tFPbEQ@mJ}?YvxPf5?cdVUv29u%OHOh==@S#(pn;Nthx}~A3g(fs~qtk;sB=yC4
      zy_h0FO&+ca+ZI;%{jOmPFYb{{XF=QIW__Pq!nC~zky1vz7Ul~l#WN&UJ94g4?i|+8
      zgI<ZE8v5X;tx|?5(v7{Mu-fYQQ?(LZKBp%@z6$!_zz`kJ-Zkp<77SWR(zPON{k;4G
      z!O*1_&_{)d3wJPeQv2^M$Wr}-Y4bzs_35>SRT684Z0bI}mxye|1RcadzXlHiaKTNU
      zhrAAWF)Z~bJS^2$wySNsl?_N8lqD6&I;p20*NI_(ydUJtPvt9E-f@h<BLpOLDmW^k
      zOTjS--3pF-zTtM>;h)s=PXAp!@A3!ryxTvmA7PeK#M4B8a!rg<vWYRuHZe}=$Y(Y5
      zefnObae!wu;wlD_qywfgi%rbadW_eIA%i${%5LHXwy;4<M-F*xqkuOkk^dHp^!Fec
      z<+132why&T5gBt&j~rwEY)_wxauTqp`UYE7c%X!mXaNt2!-+>ULyIdymP!65W<Q-W
      fxmB#HShQBY&Elk)p8VSzx!8MfNiV}wRkid77bp)B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaPrintableArea.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaPrintableArea.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99c1c1d685d91fe74278e1253a28fd46c3d1606e
      GIT binary patch
      literal 3086
      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
      OZ3gZ3=$#XBbN>R50bs@e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$Engineering.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$Engineering.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abebeb6c64f40408f42ff36b719890bdd9b3b529
      GIT binary patch
      literal 1050
      zcwUuKTW=CU6#izqg@vvZ)>=hdFIX*LWvNBPf+j#q#2__kC0-Jf1tz!+UCgo=<1g^%
      zczI}|iHWcNDC3z~Qu|0B&U|OSbDMMK{Q3Li7l2Ka!{7{sL;HjM(R%MWu5a1C?>XIx
      zFRZa|yM5d1ThBz_vG<)%Vr|zQIIa-nI0!>yh|5T8XuAVzuX`wZJ_D;VWLvXlEK@*@
      zq)xI!vdf@XdPB!`{KpJ)=}d<~tB?93j75g@tZB8X4rtXp5W#s|2xEz1W7godeIyLb
      zW0@g0b0adS97PP53?y-xAyk<*QAjr$&9mjnbRu9_k&g&z)z3i}*9?TQEDblLMusne
      zVa<RZ7;Z}~q}BAmkTD39;f~bEFdazFKr}Gqr50jXY|+2ACr4f39oXHWU@%*wo;~c?
      zo+IyyjA9N2*`7h4;=gmo48@rnJH0#f>(Twu#OsNMBWuM@ymB%fgVA(d;nj!scr2*O
      z!l_u=T3QU+-g$Zm&4;w49EU=EijgTs6>{PiU{KsSy8TuhAbukD%8Z+dM6dJ><}ogQ
      z#}&mT%vHr*Ror#Ot(qyt-BjEy#ih)3#ibRORouF{p}4z>v%aeGn{?I?C$$Eh*AXLJ
      z;!m)`n@AC+c^i4YhazExA7F>Sz*EBK{54+kH+W0f=Ox@z*`y>-+Swvxava%XZ2d16
      fm5zKH8h@n1jKB%^QB*z;)LFtq<ttOfu#MzDs$Jub
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$ISO.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$ISO.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7598b9dc31f7cfd097d018a539ef80407a35fcf1
      GIT binary patch
      literal 2547
      zcwUv3+jCP@6o-E+1xmvL63VUIg#s<qhF*YHYN02E5-hD!EJaZ~Z36_;6w(wCL=gcM
      zFL*%|FQ{A;Q51?=1ZBqYjYnqu4|E3Keewa_Ywc~%3{UXT{X6--y>`!DIcHC9+`f7p
      zKn1SnBSa|M?(gz<$97~>nOw}z<+7>H{#-KFm-92-ezrTdHrbu>+fsXy#fi4od<-K*
      zq#~B~Gh1V=o!gULIYOvm5n(~|-7d9EDk@~Cl%Yz7Y8e*GutbKXGStXWOUP@eFzbgr
      z9i+~aI#236sq>`HlR8i8JgM`f&eOWMOpMFKxJ-<jiDMgAwk4Wc8rH9D+}zyS(nJ_p
      z*Og9XQn`9lR#Mtd7#8pCPUd4Sq2zA&Re<>@%}2>SbhX9rNir5-Az_4R@MdXb`CT_s
      zs+WaPjQbhoh?zC&+#ae+5{bmUty9`w073<0I7Y}$su<P5eN~8D!pOI>hEW^HN|DPL
      zBdvUpQ6I=Ekt-MlR(gzhAge{LWQ473Vyq72Vv%bYqpWOZtPSK6k*y52@)5?mKrR)z
      zo-x|WcE*N4)`;B57-Qw*j7@>875OA%td&nOe3ALK35&#bF(THQuWrjwsi$%qBWmS#
      z#?yh+{`D}%S=r0j5lHP{mQiSBj?o`T?cXzu@m4;|*b_+Y-*b!!RzA;oA&}a?7a0?+
      ze2H-|klMe)j7e6$!gw{1+P~KrldXJ%@n#^ke{V60tbB*@ZXmUP?=hxW`99-=q5gTc
      ze;+cYTKh5MlcCbMZuC>eG%G)6oC>6F^bBLVm0vKv45V)KE5-~fzh-<BNZshSjG0zm
      zWLy$iDDsYDKxSTM%)$tBL^P)|$(H_}&SZAI-<eJl#x?hL`RR5)o0888!^p#+ynD0F
      zfsxym>bsY>S58!O6o%V+`?FoiRVn!&V}@+GEJNT#CX>v@(|%uH(yX3mYRuVfF3cG|
      z)qDl!Wi?kt@?L6=bXnjs>~fS#b~)PR7?)#RMqEZ+j&oV)a=gn4E+@L2<Z`mhB9~KK
      zPIWoW<#d-bT+VbkOEYBlaUW)zea<l-{!oU{ifbs|7|lyWhn<b)-5S8WL6lv_BBh~q
      zB7{~dU96POs4#S?(g!Rp6(O`v>2jsGDMDz2(nd><i4eL<X+mfuC0yV`3R@JeF<98c
      z%G#7wN7g8NR9T0zxshsRk12aX*_6m!Wt)|C+Kt|d4nM54Tj^H2(ceS}O({*=E&Xl9
      z05VE<TI!1s+NX4v-O@iIgzi?l*V2n3gzi(iU+-(5aDfLD9#Yt0u&|ev9Z^;v=}`8%
      zvZKn%BK6ANR(4F;%t)EC<H}Ch+iZ-|4W%C`J!x;~PZ2^tQ+nFcQzC?(ReDZW%?cNI
      zUg3p1mi<oYz$JaMzBl6$^K5}C5T;6urYc0t^+c+{9IC}UlVwy7kK*W{)yU9V9HezP
      zK^t&^HsM$D@jGq7UzEnbw38;#E?P)?se$&>20BDNbc7DjQ94e?=scaE>vWQC(rLOy
      z=jb+F2#u$KP$^vr)zM&RInBopdROvS{{It?DwAY#_<}+F7~FPPCQ_;S6;`HYY$xFg
      Ue$qKtb-ae3b*?N?j9*anA0!O|=>Px#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$JIS.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$JIS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98cd1417e06827d6a655df673410ee8e7910dd87
      GIT binary patch
      literal 2622
      zcwUv1OK?<06o&uqn`B5hgt@%Kn}kP*fypG35FR2V7zqSW1Cf`+o8$@u!vrT2KvY0P
      zd?5;=A}T8KP&c4hrqrrzD5@-~*th|!bV2zjtJtt{;{xr|4<<`kO#lCUfA^X0b9?U9
      zJ3sUTh~vu$q(J4?U}vy9wj+~FXJbJ&n@M)`X2V!dHb{2`nXcH1uqzp~CijF>mo>LW
      zkS7r36|q#1-W*%iu{G?>3dn{kfr^%UEj6E4#CfRZp@xS954Akh@i2#ndLHHqcnxt?
      zzo2pHsx|F#XR4j4aYmJh7*ge2g4ZoyynIdjT@!ak6^IyfH>+_b;Y_VFb<WIjrrxbz
      ztY+u0GkeooZMDX#%WJLHSyiP5E$B=o)5+{Yb;|OYZ320X-Cbb>vjocTwVj2CAs#{1
      zeLT#S!S;|)4L-1XuI>E%X5aJk<JI$vP>EVX9k?M2>=_c}&CSjCS7&BhAq3_U@=?Gi
      znNL`d+gF^!g@lL+7ZDcc!fFm134=`dFrg_I)^NC#P-wzsgyp#~!Ql!*kqK839?gZd
      z96nAMY{J!qHMy{k!zT!2!gYl8xo{4L8wo>9xQWo73+p)y2*oDsBy{D%xg0)C7;3^T
      zgd~R%(}XHcw-KT!;I?n)wx`un?zZXQ4ua211u}$T#$^e^joV2WVcc%QNaOYpMj7`!
      zVYG3331f`gPbe|&0AZ|g2MObhJ46_7+^d8M#=TCMXxw4KB;$?{CL8xQVTy6b2&Kjy
      zCzKiY9$~6+CkWGwJ4u*s+((2N#+@RRqd;J2OEMj<?A_iGW>yCssZd~8OLu3GY6~(+
      z{;pvWJe=lERj7Yec1yD7ey%vb?bK_ksI|K{(-}4;`8SI1rn9+>05zx6VWu$^^z?+P
      zx~JBt_o_1L{aU8_r*5=zC470c4zgNkwaDsVt7LVE)ncndtwyc-R)<*~Zgqs!kyb}p
      z9c^`t)e@^?t&X!g-s%La6Rl3NI@#(JtEE=UtWLE$&FXZkGpv?tm8uUjQK9<u0N}N1
      z26_HRRIc;$3jF+wzW4VxnB9lOCDdywZ*ahLo~92P>T$sIAx#@J6)6swF46Q6Lj?y+
      zn>B6G6yI^cbfu<`8M>bXrmdQ`F^z6u&Ty@U8#G*`FtaB$drGre(M6hdXclTVIXX+T
      z&6;gBKXb$vEsFLbbqU>i+AbfzJMxSsyM5epq(_tWKCU^^tI5Uzb9T8oHywG_oPUxp
      z_B!;OLB#{m3ua5V2W)AdL4W#Ui9;_MbYs9aUoz;5F9tjGvO)b^&Z1WgI?d%Qdd)Q<
      zcbqp|6RtS&rkV7IFX|n7%k|}=BS$sKaCuAK(WJx2aYx?OBsri{?`zWT;}=IhaI5+q
      z`Ox+EtRo+PtuOE=YCNW{J7gN8WEPcj4;tittd)n5mWOdr9>Ym_0vF^dT$X2WU4DgI
      z@&fM2Z$(soFG^*<NXW~gN&Y0(%4=eq{8{Xk*Tqr!t2iTXiaz<5xGHan-{fs^TmB<G
      z`L7%)|C8ljo}A|u$`-F!Zt{l99o`suz?&eCd!_Q6?8K*fcl@bye=yW26-x6f`tVt9
      i`$arahRBm!^fEG&@Hx)tIcN2F4(Ih;E>VduQ1U+&<Q{VX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$NA.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$NA.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..755264937f7744c35322d87a1ce9fed82cd29777
      GIT binary patch
      literal 2218
      zcwU{BT}+!*7{~wTP}))srF1aFO}F9LU~IJIn}Hi0E3;Y(0%L4C*-Lrd%1U9SY&bur
      zb5j#<OiYYk>79v*7s|yFmn_r7n9K{OiF%<X#u<~%3qNku8}&KQdFM(d33@@FKfnL;
      zob#ObeR|-^pYL4)5Wx!`NP)&_>!h_9n#-lL`H+>*=hBl4c{?<px3W`KZYnfjPo=Gq
      z^l5u@GU|a#AfO9E87q4<G&nhJr}6^DiP*kqLSS2BwTpENxD&C_(bzDFWOSl!yhFf4
      zqH{bF7APmxKHfDEOOC}7gF`VxI+l?Dk*>u^<aX3tfGP+@!i$lXe_^e+vGGV-0jngI
      z+&{1<Hat<dan&sx39rB-EAZwOcwsBvo>V5CP3LzB6xBD33Ap-Zr)&@I6sTYA^L0hN
      zfGc_gD8b#>=)neo?W-+LS~Ir7Ce%_d)T8rqn^ygDb$z!FHQ20Bhb{Dmdz|yM*7x_v
      z|JynZV<n)2D-^@+iiXXB8Wpzd_DZ-tJw`gINx=iR_QMKZ)an+Rbqg(e=Xm^o?cAo9
      z;zc_Y?Om%`msW09?`8dr1E!^W6@13strfZ78e@+_sWJ9y#Y^=o?9=`8z>XJ8i%yFx
      zD1FvmQ=d>6D9CMImOH3WrgJyyPKHduh{C8YxH-}-%PPhc{HBR<g@c88t;_NrQYhCe
      z&zVIZQ3#k*9MOu7x2U)D8+S^f!nluWMeaH6-eKHng`jaWT9NybcDERJPGOC4b6S!6
      zsxcN6DvfbUD>B~DWu3--T%pRiPip0+D<YB3+R25PNjo=cO=fI?U}839WyY*rTK~?_
      zhax<qXQG<ESNUV<d4V0P9t*kx>EiN@%r4|oc7IxL;s3{M(yIulcs6V2`ZCu1yiJSC
      zWR$L2`X<wr8=!flDJE5;2bH7Oi6u_-IkD7<%86x8^gFTKi2)~8I5FtNHBPK_ViiY8
      z`>jPa^+T^l?qvqidl5AUgX@CpD^i{B;;sw0X9-&!*1&8VvmKgw10F`93y3VCRil76
      z;A7U#tdmQ32D_Q{aOo~)y$*{q>tojKY!PF2pTq8F_5iaav!URF%!ZlmcbIAU0JB35
      zdzjf_W)sY;;3TsYGn?7b;4x-tX2+S$1hdR$nVn!Z@AQ{vc9Pj*@G)kmnLY6iKiQ|~
      z^9FX(^Spvm@iF`qE5%j1c|WCZ*;UkwFVHN$L>t9!@iqFzH;7Xl6yM>1xQ0XGdmJX6
      z64!BD+(1_Rh!dnwiJx&s{DQOMSDYvPqWBFji{J5z_yezzeqH>9Hzn{E{V{)=^pbSr
      zqV(XB^x}QeAIUO&BK`PGmg95MU&%^blU4XZuEllIKgsnprt3tJ+$8+6R#Z@|mRrRJ
      zSubj3gQz3jD4Rr!42gCb7G0!wi_18}r`A7pHzx`$6a~d%8knbVJr<u%6d%xk4<B-w
      YGD$d#XF2B_f1by4oU50p!Sks38)*gDu>b%7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$Other.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaSize$Other.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f1464a168171b918e4aad13ceab91f99eaadcea
      GIT binary patch
      literal 1602
      zcwU{9&u$x46vn^X>)4Jnb?m`F11SYszzJ#HlC+d2w4T`Gbkd2(u^p38NIJ1cWFpsT
      zCzDdKMPkJgBqUaSfeKoQN+7XDhy^cz1RK;PPk=c0%uvG4u&}@5-}!%Mu7CXV+wTFK
      z!;KV<2%On<@3?nMw*r3<mfSE5{OyC#EA5Bwpyvj?(u&vf-Io86cghKOydZ^yKu+b9
      z`tIO^lC!<*bwhzsbKR`0wXKdRFl`T8b6#Mi=Gc}akX&6enr$*tR=wj`6{?f8&FYfb
      zq<$+--Dp;>ZkhFtX*&(_<r`+RMbtjTvR2!$Hx36a8x5mww#==D(`r|YW>w(W6IONB
      z7VX2XRNGjz9gD2=LbvY^{P41XEKYR<5|zE4m%`Hm#bI|#lpg~LqX>**0?()LoWRVm
      z$#wUpr(pz>^nivwO_emCK>;slIDr@G02ksV=8CnN_224Dbw(lZvKk_pFw$z3MzqSS
      z8d8{4-lDR|dwS`<a=fk~9XU=bE14*N6=j^&NZ9d)vXY9;X~<wwO?yF2`=%Pwvi{eQ
      zZ>dt$?Zf+pMEQ@X<=Yy@qLx>bMcy4+q5N~?t!U69uc<5^Xi3A-h*`>Fc1=SzVk^pG
      z=4cp?*s8LawKU`+wx+D4z_{%Xy!ye-Z7*oM+kH<!xA(ekzvBkJ`pqx{i4C>APH$Ma
      z<L?Wc9r^&G`$#t^)7m=-x?as!U9wO7e6a;IYcTMFO5fez_o)5|XVLAaH=F(i#%OqY
      zz+_FRN6DIwbu`vYtYfiiu^x>z8|!$iIo2aoCl8(aJOzl`%z)p%Lt#UIMt?Tnz4!pf
      z9^v>yyu|FJeu~*E%wCJx6tih&GtAEDCz+L)ol`6~mdi7neT4H5agpOL>GRAMIPNmD
      zvTiV2WLD+eK_0*7<>Lpaaq?A$y*xf+xXjR2P$B%lw9d5guii~&?XP+D4t?LjaX`)?
      zEzcuMT9B7elvgk-%eX+gAWc+d4a=krc@5X4jZM;?Tt#0tu_s#y$i6Gr@v+>%C#0Xs
      zO?)o5@P)jAFUh_qJ$xf~@sqrbU*s+PDyQ)dPoO?0{yu)pk_yrhI?45aM$D){IfH~O
      aahetd;ayzknD_YmeQa{9Dp9}|CjJ62)K-W9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaSize.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaSize.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e1f36fee9d3bd07d1f20202bfe947583c22aa99
      GIT binary patch
      literal 3575
      zcwUuOTXP%b8Gb(NuwHp%jDy_zK%&G6kq<#mNKJ`dTEz!YYCCP@*fA99m9&x9NULPE
      z0y}L<q2^Qy?G=>Hv_pHtO$s3`4lOfnxrI(UFzqmf;c&qppq+N6H%*`K(?)S(o008V
      z?YrOMd7t-vpYPp$>wmxh1AqhgiG~J&_@eosxs*8V+K!hnJ<qi>70*hPJ=4jVZZ0ut
      z<!m!;pS3gu1$J+|TFxIFO)op1xuhX1uyf;e$t#vXOWAU5voK@1WxM2@NR0}JqXOGT
      zN{;mH&6tIX75enTLdf~&p=|<@q9ih6W*4|QIwA2B70)gtlCEnmPuOK|NI*~9dB^lB
      zF4rVCS~EORZ@5EuN<8Is$}AG^*1EUK_1xSzoGsXn?cFI5i1*A01V>6arm;<6`v%k^
      zh~kR|+Ob_AJgheA5a={uV4IGcu~Wkif&O|~>`A4M8Hiz*Ktpmspto-RLpr*#SHqsI
      zcsrU(8@NSzJ2Idnj$REt0*C4b7<2NrV^I`N-awxO5=kBVk<f6fKwsTBQ%M5@a(ifE
      z?5^a5j)OR);WieqZir*vg5?_cl0?zRPL7S7m`=@%3EVJ2hEtVd#&W04Oo5_kohW4~
      zVv|zlvp*P)kB_H%W+DjSuq^18Wod^Ed<9YpW-dno$E)frm`*-%EVF23y`i3aC=qYL
      zE;I5aUgNx$8AgRtkYg!kQzF-0N2SA_8L6VX47A`zf+;~uim8-O@#~VJ!sgIcu?3p)
      zmN#O0R=(tt?Dlxin!rX1X1UChaQphv;l52=)mlXL0G_g)++>yWZ7Qu>W2hnRH?6Ag
      zRH0zy%|g=6SBjS7jV)!Z(;oXzBTfkHU5XJTQF3F;v7)&gb4p$;W5o(qxg6u5b*5q#
      zVgnHz$E?iR$?M9P_M~>1lt!?UU8-#BaHuRNb|7%>^5x4?755pqAK#`bm_-Sf>RGRg
      z2<vAW$RJAva^1;EJL{H;mdDnqT1zSd3waHv1e&kzo;1A$0}HUF<}zFvBzj7MJz$`4
      z1#E5&m?Y#FD9O2CnJJWu&lqsQ-7Q>vO>PAS;#;f+>zT329+_nq1Pp19+H!4Ho|+{^
      zg~qaP2vQH`xPZD^>wUcBRtek_-<tpW=`!ix!#NEPZ=nTB7Y4pB4|!N=MOLSjS(II3
      zT~RsZ6;BIj46GW=P1hU}Urdd7;>xRUzpMx!(xr-<wZ?7PX_{-!RdZubQ;uV~>V#R+
      zJ>LOr$Wuw4(>48-6KvP)2CC6v7t0*r72<CPG&IuI`H9eg2><!^;d8TkzJV9}2<;}W
      zYQ=WW+{C9@j?2HDZy-8%319dPIxeDX_9Axk+Q+M(*MZqr704iechC)Rl<;XnPZR0{
      z+Au@+vz$xfcC`|OXZ!S>%p=HupryBa&&`)`$3=AXu3~5nYBK`>wXLB@s*XbGt?t2B
      z877qVHR20p9ii2rtPzZ=6trW^_vUe5i1#+%TW@>tHH@$K*{bj#rOzKQQ7b$`k14;0
      zs=I4`+iHH>YJS^%ztXy!X$>j{sde#oc9Fr+&EkEYzJJPiU)VI>(OSHt>*AeQ7jM<u
      z=g0eN`h1!3zQTAfY#Q%qE#A>h<DJA5=c@8LrkL#KsN5H56&Gr5!)oYv%9T-__Fd`t
      z2EJJhLQHcs!m*XzP0#%TdUw-vKgYH=aD1+H`VwaT*cJSh|2QWf#Z>FPgTdWTcP$Kt
      zy5(;;FsQwR!wfpAt>RmMf;imR-nfeSXejqOa?)IkhNU?_s7LiE;UevgQ&D{|xT1-u
      z#*M2e{_^sh`&V)LD)-|mthdPfZKnRuOyS#1z+cdbzhW=m!9Kjp51zmAll<?D?>&Ae
      z{DVj1eIAJqD1!Hq#fMnL#}xG^IK%mK_*CWLR5ey5EGX-UFR>Ms=msL+$HMMnR{Ai9
      z3de%<lE#CyLd2NFL$ty;OxZ8d(&%>|UjVy!y0a|GGRJiOpT&24nLJEXS-}3l@Jrai
      zfIF*+n(SxDl*)HsK&b!1iV&SwlJU`+Dt6Ep@ELvoi<$U0Gw>gN*nURQ{#Qj5t70p0
      z$USkziZ35ZO|ojB%?9gpIqP$Y_q_@6GlT-?`+O$zWHSFET4*lPTznCs;Q7G$Yk7z;
      zG@(HkI+{fU?V<_$c)!XcUK4X1kMM}gF4)0iUgg2JqR%7Y3pUjITZ~^PSrJ_$*^m!-
      zBMbDHzxk@#AHRO<&JEPwfG5@OQ}`j|VGl8X0#EZGOQ0X|9_RfT-n)5!miL3a{}}E6
      E2P(BE(f|Me
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaSizeName.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaSizeName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91d144275569427aafa6f378e380af5bcc4b6204
      GIT binary patch
      literal 6466
      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
      W>-ZP@Ui{I0-}{(-5wGQ5*Zm(CUVU-^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MediaTray.class b/libjava/classpath/lib/javax/print/attribute/standard/MediaTray.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcd0a827f6674620d0b279b63716cb4b30239f52
      GIT binary patch
      literal 1465
      zcwUuLTW=Fb6#fP~_SV@r&QdN(S|AXpb0IGD5@^#9$2Qc|m#AwjZBbiI?5SB;?^^41
      zO8Ul2rK-H3sy~5uSRRmCK_4m=i66iZ;RjSbGrQ0#@IY7EJ>Qu*-#Oo$GyC-K-yQ=v
      zgRM07G32lF9e%Sg@NG9J@F4K*?NJ~K!+^V8?sp4y(Y1NY=eubn8Rp+4njtq7zRjJs
      z@Q1eNUa6KD*ky)^lIP0Mpv|3;7<>M;zw~VG*E<Y}R&$GCvGyj}rIt?_QuS)NT&ob+
      zY_?j>I)heev@5mdmRzeB8&`@ohHS0)<)zBErQ%kxRBc%d$$GKcAY)d`6gNJk8g8$}
      zw;jQ-|EdyDaJbtmm}-X#WraKHE5UKt($)W?Q(NmewrdCLbjtifn@X3wuE>C4R>wPd
      zm&C5c`^kKDq5T%^9MzG*xI}Y0^a!2MF%hAYI<gUZPse107Ifqyw4`GyLZ@{Y7*C@>
      z^VoYX4QEJC;0-i<KnnVHx9bQE9}(X6g23x*SS9Vk-4TvApq=wFin}B3Xpl{DxZe|}
      zJAA-9cCf4AGm_uuwyWU+p`qOsQbJM3e!MMFNyh;kWSFeku4s(<+rp3AY1F(9T@_9j
      zhJ3Y{K?1XsCb(t~>E_t<R;gxB1m=I|bs)d++KEk3U}ewHPQHkJb!;-!+;szfleihv
      z8~Gh^(Uzp_%R#P4D(2`Q3Ho=&F@rIr$V-#A4;rTBzz9#vaVa|y+iYwnW1EZZRBR1p
      zXJnt0r7n?8QqDs-Ocka9wo1Nyp8O7GB_3kt0ggzRRPdODV+tOZFs0zUglPp&NvJ89
      zmoOJaEGis@Ea$XGSg{hu`=*sN&YISk@u6v@jE_w#ZJaYL&G^J5p0P&Xw6ShJz=mXy
      znh-~b65<$fLL4Vjh<Rd#I7PG&dC3d0D2XAKiMe@SHLXnFHXRq(pcYi<*q5onO)R5@
      zRan@>H)x=PuOPtb9pF3sfF6FtHT*>WZCuAM^xnk{+=qid(8r(T|AljuO;(U?q(3Zb
      zBGzd|uB8@dAL8P_8Zv5ihX(q+;vI~la7hhDqR&yK97)pmMVxDeER*>|Y}|X9DW%qK
      csVsW5A7@FThWe}A&Ar^8U&Ce81sT=+2UM0SU;qFB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/MultipleDocumentHandling.class b/libjava/classpath/lib/javax/print/attribute/standard/MultipleDocumentHandling.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b951129f100890f53574385aedc62e9708cb8442
      GIT binary patch
      literal 1826
      zcwVJcTXWM!6#h20WhbbFm`j_agoJXj363GXq!2e?WRaM0oD50~Zl?7p_SR8HmRwyZ
      z%<#^0U;8WCWID{izz^W1Kc)YG>Di5lQ^)X7?2-2DIp;h3os0I(+ZV3^T*pchLktT)
      zn~%)L`L1U<LEa1k&)N<Hp7#UOX_;OtzZ%+s)wOxaZH6801S_PsEvKDCoMCz}Sa-sX
      z@x%$t$4Mv*mj`>Ti~T)!yZBC%M2cbd1J3vPFCq7X0|3JbpL>>R*SP0fuCrM#F|d0K
      zpJ=WlG6-s>9r8rCIXu+(=da%xMvZcHxuQ2pYue_jUfp20QTd+*SY)_h=<CJ%#f@G(
      zqp?}l)+!a!l^WXGdRaFZ&JS=q;xyjJtWnh;G>jEpCyvK_V&$|q%x#-;KDi|+=WWwz
      z=M8BgF2^|)U8Wnk-Q4<!%u<CWNmj7L5X)q13~|kE@ewdgs`wmd8I(d~k7vr++Avwp
      zsW^^NA<d{bu`hk0Vr*Z!s3MKgBra3a`st^TrPlZ)**w>Z*rYH^74~`8^vs~A_H&`r
      zbZwh-tz6UXTHH?|M@1gsdBiVIb?!SR=kQ;1{toAXV0m4|Nt_bWmnu%<4AH7s4zGrt
      zZSF;dO;_9|jhsn?M|-IpK@5{rieSg`84`~~8)y>C)VekgG~&>9y(iSVO!iRkG~4uj
      zD)z8pwH-4EJ;E#;^(f4~r;!KW!Qv7{NzzGGvqLdX{U=5=At@9YCOT2ed+F~)O{WQ>
      z0LI}#JDtf69JMiW)cdCG;yd3D-3EjmG2GB=^1GG*oqgW~&WT8vp*F-YganfGpTIE0
      z03M^uYX~aF#k7$;E@n-xW6_$H>xAf}T&a(=DoEi|d`1z*Y4<nc5Wn_IuzKt{CiXBT
      z#JCivg_w}yc_AuNypVi_OZ8YfW7Om6D@Hw$zG~E!^qjGWYh<E0yO<)|E~d%2OW%E6
      z*`-Tj5A%OY(qGZLO0)ot$lRe+%CuV{dTW>>%M5DBViQ;K5cBjbppF8*M-f{n(S8{}
      zVwIjc8ffAN{DhnMT1Ez?L!V`o+!ASoPPsDq9N+ZL9+BD|DySuKXZF45oKaZ}1>fQZ
      z#h}Xri)1TE<aaV=PU?YJn*DJQP?0K622=OVQLr&0aVw(JgWm3kJ{<s!Q)RRWIu}8y
      drq}wh&kkYZ2iOwyquBX=>~90G40om1^1qTZs?h)d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/NumberOfDocuments.class b/libjava/classpath/lib/javax/print/attribute/standard/NumberOfDocuments.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4adaf1153fa14dd1ba565e79e092ad78fb6339e
      GIT binary patch
      literal 1075
      zcwUu~-A)rh6vzKVTMD&MC?9@+x`IkeEk$FZNs)w<j}#j)DK^n7XWL=fW;=_!v!pzL
      z?_i9Nz=d9sXrl4f=kPg<XO>cs;)NGGvwQZO-~as2%+KFnz5#fMg*f^c7MuKlw+s88
      zEmeUl<=JMSM8Q{FHn`U)Yy~Y-c-y<HZaruTsr)#i46~P4m8BAv@T!MW@pc^j40D$!
      zzR=&BuDNm=VHoj+XLF|}Jl}TZ%knA%+hiCjxl%WyYTOA#to82wv&X-lW*PdIY-y`y
      zhG?dot<hF;8zO-SMv_QkD2_D4j8-o=Tv~;);|Pm8E1nhFSZmkCz9OLkj5AChXt>eh
      zhlX^OVG6?$zHg{KE{(+mMlq?GR~aTUl`~|OdY4vFi>E5K6epwF;if}&(iOK(Za8_O
      z?@lnP_H3WwQRRP!USx=cJ<?Fh<XyZCxZ_{wXWMLwx+-R0>nYqx;udZ*L|n6}yXi?|
      zxMB%a;&fuJcgQf7$(~CpIo#K(gH_v-Tm>E}Kk3a_%KgJi_h5_5M2VBq7H<(_{4Yjl
      zf&<8rz6?$0-Q9fS)HXw+>IPn2tlN5glRa};&@8&k<ddElJvR`?0PTZx$NP{#l-}t&
      z&^k<!9m?yYeSCiE7^$g`82XCQSLv~1Onm<wR$QYsO;tdNcx%L2#~3znog$MbwWKix
      zgm2ThNo1x+-BEZ>IXWwq`vLX=vB=SU?ij{V7d}ia099&phv2ny;8Yi!!VG3Z@Lk-a
      vfA_=cxlkY<#(_whed<E{!_b=$mOT00fiYx|?eun5I)AaWd1>i`Ff0EDq6GB>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/NumberOfInterveningJobs.class b/libjava/classpath/lib/javax/print/attribute/standard/NumberOfInterveningJobs.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..759f0caee5f4a476dad86f4f54a1fc39b3ba8cea
      GIT binary patch
      literal 1100
      zcwU{7Pfrs;7{;HWEeo|!DE|~tS5RrGrFv155)x8Giw&3*FnXIU!?JZdi@UR=d==x(
      zD+fK1Xd?0INATcBF}}0Z^8eytXLjFx-rxJa&&<z1U%vx*ggFCU438UpkGG1uz9UtU
      zE9E;@s6;VPTyAlHtGF6AE#a?iSELgDo{)~TS3D~)5NDXaJXcF?;n()1;w=N+3^SJt
      zU+Hh6E&huz3<Sb=xVtI*!13fpWr=~UF!Yr@sasN;+zmxy`qS^Dv2gGgL-)KR9ksv^
      z&sK7qw3WRrkwgpwDWuS6Aj2@Fs~24^?PA4sh0WbX-wvBXs%Ndb*i}@h2g3}Ldm3&w
      z`MxPVWm>{?MG%;3hfDKe5`!4k%rS<MZ1n_Lqu!-m(#6wNM~Y*^*16@<IGL(fr)fCN
      zMBnXTT<tgk!_(^jSzlsEM4gf~6>>nl54jth>uSwvh`K7}-fA!Iq;Lzj8DgH*&^=v{
      zF<i5SDswtF&);Vl%H~dq$}SId)!v$8ORhqnDnGfXn9pA^Q0I6{3q&!f(kgEfWB3fC
      z?PCw}4C68yz2I#ZoRi@T4Vs=IS@S}_E|wkb<>VD6&1o=QavGYR1U=(0&_jDKUH&d4
      z5vO;$A++{WWSw+fv=7ft93nmO5q;k<_$D)Sh>@c&QO0#zGn54^5pS6|&oP7-xIvN8
      z<6NpS0Yq<;xJhKDeQ#HINgAz6=YN2GKq7W9n?Hnk(1G_;3%U^l8w7uS3Y_kM)0o0^
      z1ip)V^zVL@JrfluL~$UNVV^tD?kL0~SnBw98^(}DuHD;7>g@T{cbBF<h*X8YGzR~n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/NumberUp.class b/libjava/classpath/lib/javax/print/attribute/standard/NumberUp.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5456684b938aa043eb950272b9e4012bb75b5702
      GIT binary patch
      literal 1001
      zcwUWCT~8B16g|_gh0;<iAAX>spwf@v#`xevNfT3IQfQD^X+WQ5+ezJKnXS9C1pbP@
      zfd_peG10_V5`FWR_-?#AEo+rx%qBB;?w)(jxp(I5=f}?g9-(X?#<1Gshy2Lwd$v?2
      zSIV=kKnc@VTz0tEF}H&QOL)6|0||ze@!+~tqAR@Su~huXK#E~`JaEHpKRrJfn7CAZ
      zCp>Su)(AMwQ2qz_g?JkXUquBBGrsU_?zDvG+pgTLZ!oY;hHTB1VRNd*oj@eNe|x-i
      z_T%d(hSa((ZB=DR6zatmZ8f(e(uiX&gBe_5$Te&!2IF|iEr%rX4Yy4SoOI|sOeWMD
      z+h-^?{&TPuhU8)Bh5XgY1~tMRBA72|2GilPYd*JnqOB^$SD~TX87$%^L)^7`p@|DH
      zhN-SlHBPtUddCd2h2jXP=5XI9%w*H<O0EKrl%HHgtd}q8AewQdN-PE`ZSw=-nEQjH
      zNg&y+OrStYQun$R^cm7kH}KlxnH|n5dp?ARVIjRqYKp!j3`|md15?P*o~8F1!!!~U
      z(^b%#r%aV{G1^n5#Z%0F(3p8z(>l9FEDbDBv@k&7Dy{)Kx=zeA?Qn`iuB{<guKWe;
      z9g^{rQu!3OP9oB2vIXpsv3;`kdW1L^5$CXkJDT_|mg(P$uD+)Q)^r|-=h^#+G^JBQ
      clVt|Khhz-*@nGofcj@ZirS90$qDGZ|0gD0SVE_OC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/NumberUpSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/NumberUpSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb9e4c8c453b1c8bddab175ad8e6f200860fc965
      GIT binary patch
      literal 1486
      zcwUv0%Tg0T6o&sMA;ADfLI^5|!D}F51TUyTER44(1y)6{kc}PE#=%KXoas@p+*#$u
      zjVl)}UAxd#s<cYWl~q21Z{Z7Ao}LUz<g#!vGkrPd|IUB9=jWf#UjdBcau{t4r&jq>
      zzLu%lhEy4@lx-AUB{GiUvc&CDX3nh?g}qQMxYep<D^Us~$dKATt02_;!@N|YEbPL%
      zRD3Or5W~qGqBkTLx#<dLW@Ce4k0We@n~TDB3`;KLuQIS(4Ba_P>cW(l(Ej`N+n2v?
      zm<5K=lpzf@%@9oGM;7Umvq~a@0QPjD3*BMF7!K(oGA5VhOx`p_nVU0q*{ukvuC1+z
      zsv=Ma;tU5WLOV`Y_<B-WDp?dsQ#ejiJ>oJs9zhQhTC|^`FE!iLEKu>XoYnN`tRY3c
      zZ+CgoBtNlPYlZA^GDUNLF{mCH4#ULk|DHgW4A+aKw&ZD&T3#mG+HX>qHWbDohM{I{
      zbFOLLu}EInEnbf>^w(vaR<n|VBN#@4A?$B61c<=Up33{2QO!wp-~_|4X+0D670Z>S
      z9eTzPX~ximd^9E@@x<k(v#FW$#Z|GQvLp93YoZGooT3`6;;L@tmN16SvQRlr*Uqxn
      z8G2JAEkQYxI}XL{Di~$Sm1|S$C$~mSrFS@o#<k2&lS-IKbG$+t@qaY@<L|%}@uhcS
      zV{UcK**G(@U9enxMO-)Z*(bIfs`ro3Ur9dcX{TpD!swvyF8W*B5J8B>beZYBn^qPm
      zu8qEZqXRWW2ZHa>{RKTsvECZ`zJ2mi_R>3sAib}X;7yXqBaU0xM=ObXGC>9aZ#0Ml
      zB&`ucKH{#Ah>xagIGFyS3ByaV!!;b;LbykSB`Wnkda>L>h&Kpv9K&&+kn#x+h!D`R
      zqXUCAj5J-Ow{u}o3m&5rCRJPU7|D8egOR|P=R%K8(x{Ebba#B(ZJO(vqUrBo@6aCj
      zppA`xXkd1Ga_iLh=VawYi;ZXl5yfeo@ob#MIog}_vd?>fF>f6R#MsA%XvkZ7<%xCG
      Zw|y~&3%Kal)=bTAPJOd&>Lo8~`Y+sILf!xX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/OrientationRequested.class b/libjava/classpath/lib/javax/print/attribute/standard/OrientationRequested.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eac890a028856cbd374a9a27e1dae0df9111fce7
      GIT binary patch
      literal 1800
      zcwU`UU2_^$7=8{AAe6QVNvcV$rm-K8l+ZT)P!m%rp$!p}3>%rjj&>F}rR$L0xVvQ9
      z885uj3$MNQ4|t*JMQ3#M!b_*W!=K^!oWnwpVlN5<=RNQHKF|BP``16e{sG_`$}xll
      zR=zY3%_q47*RuVb>HDr#@Axw3`KH}8-DYmbwWRHvzU9~z`Bg`HzHG)25ttthEZUuY
      z<0%nOVu%VXjP}}a8u{KOhPc4eXun-`58@605(1ZB0oZcteP@9QPr8=bu1eQq5ucVe
      z1jLrW$%136D*dY2?#Qt}?|)aj`uDeA3&eMKDtncDX;0v0`8B$;DllHoZ*Lfd{BBWT
      zvQn%TD@O6*fNr9vI}UZiBe~t$GwW^UJoP|F&b3Xul{2)3w5KGStJ4kKZasL-1mkOs
      zwq;xXx<ELcsR~32PE#fza4w0r@s2=rEwD$@rA&34mh(wWU{Xo%CXwn&7n7LkN|%$E
      z#$*f`RyUk_97_y&;JChPT7Dc^c8KPt*Dw!c962`0m4}><%nqopk*TNdVO6A+BxZ0%
      zNjH;t18)kPE?c(T?(Em48#E?Wb{ZVH$-(okl?jA#j^+4|El*(VP_>bpP-5#_(l404
      zY&q^zwmzL1=zXDWdY+o7VYO`2@3_R=e%WJf>3;^%-^0~)vcwo^+uSF|^nW;l3CB?o
      zm~oCrmUVkG<M4?!26tp8of)|$lXNT&Ey~57@2ehIRVJ}Jj~;o_*NegCBn+qHHsn1^
      z(aeror)9;<_X!dFjv<C|{^oE3N$O7WT@%77%&O&~JgZhmpHsm(t<O0%RDE)!Jo#3j
      zZH^3Qd3%8f)aUVU5Vh!Yy!8z8N{nf7L5XoKUQpsh*W*&`ccg3K)S^*~q^=mXvDC6r
      zi>9s`&v2b4Q41eop0*<_(0GIkv>xFS%{PA0S>NLS7V`x*nazDxw9TwPVV-+@NDQ3E
      zXIMlHS$vKa{yxMPxQmA<Qr<+J-gSC3(B#>|9o*KeU@d&ag38vZQM%~j+2?rgIBr5~
      z+wAAQ#+~VU;eFjLC4GQZatN$3ZiqYzc}H_*wH^qk#Ls=gs8$_nvSimBkO_Q*e2~sD
      z^zJb9n-S0mHdt*Jx*R~+&+Eh3?+37vKK34a`V#iWF!qO$*iDoI?3Dl;ivBc&{BZyo
      L>KD7EZy)~)o-&W#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/OutputDeviceAssigned.class b/libjava/classpath/lib/javax/print/attribute/standard/OutputDeviceAssigned.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..900479306d3865699a4fc5865079f1d5a807d8b0
      GIT binary patch
      literal 1052
      zcwU`S-A)rh7(GLO7HXkbpbGw>qO{byF~)dNLPAPRilsFv_Ck%xY&$8_EW5ZnOUkSG
      z3|#0Hi5Dc^>I?WZ#&2iWTBP21u{$&0obR0To!xIgznlYjf|7wLhNlC5%!lTYCmm&S
      zr95c`N|?UlPLF#%vlXbLK<$WQ*%jNqFZ+(@8Avj$PHx;6L)AWU6dxK$GptWWy$a8}
      zuC@KU!Z7a(Pjb5>JYTxb>-r7@+hv%oxlU+Cb+{dfRAcS?Uj6)sWJqsHN2)E7C^kY7
      z)8<a!Y!jc;uSS(XN!x6=U2cnNsl$-0xjm6V0`pm9G0Tu^NJlh-LrZx3+_K3<Uc)<_
      ztk5|wCe?xT8J;!%BdaPyrl%`Sey9a5nWb55ZE|!wZk%q#hk)B;U}=2PmNgJvRV}><
      z2fCTXGFBK8t~I!*5yKd+^o6Q%CHk&+!mv;*je%-5_kF_5w8=A9fk#%JUq)<}|B=Ax
      zGgh~V#UQ0<*u@JR@wn4?$WU-~R+T843XjvGu-b0mb;S!A#<4sp(Z?Yp{l7FVJt=xt
      zU|^co8TzlMkU^66^nK|)N0mC^60{l{<ws}8eb%6>^v=)<G?7LNdD^W;Ff3pZ(7PoR
      zh$P%y!*xQlFy)x`C7r|mT=^^5N2C&`8|5?HI33Z?X}Y)6{EnQx*Aj)OWh9ZqE!-wT
      yhC3ubg}b`@o))O+I*`b-Pb1Q_E*)sHY;+xyG2F*m?CnqMgTGt7iLL7zRs02n_4D)q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PDLOverrideSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/PDLOverrideSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b0b9495c944cddb54502f1177e529e853a3d906
      GIT binary patch
      literal 1449
      zcwU`TZBr6a6n?HOFCxC7VxX0lFQ6fs`BE~>7}7)`I<rJMerQ&>LtC)REDNKb>L-<c
      zaHgg{)Q4vJPc@yptVBqCaCeq_?z!iA&N<Jy{P^|p3xE~G-RNOheXTT<<5<;DH8ZA|
      zrlB6yO&+V6idIyNVr+jWv)AB;p%%GZuU2)#<V80mhN<qrlvc0ECz`1oyWwJ3>>jl*
      z_A)mbYJqQGco~Lj+)$Nro*Ok)*Pf+!7}yhr{-myng3P>9u5;%%_s_)g_taN9$nND{
      zZs&5T-ThpOg4Z%v=w^$dw~eE(MkuY6Q;y11(a51i87nJVDJEMd6hFYJORE?=Z2j<x
      znLY7BS=CfC!Qco-@(fZ^FLEy!#(lVkAcHGzpG)C%B;QLX6F&IRFRbf644~hQn<QOl
      znI24&K$>nwsTy9XQa%rEQ?IS9V3_q`5JSS6_hA@*hQW-g@oc?v#0|SSe?~9RP!t*s
      z?JcJl4vbSt<}0<v;A{vfXjW;Guf)xyV)Bx1oRECsNSl7ivQn!Fxn;GaDQ4Xu%*N%2
      z_~JjrY~7Tt1hKd&Q&y=E$LL=i_LMwWV+d4><*07!9<5ynPZK1t+&<{BaHQ*~hbb`C
      zG40ul*#BLB!g^)BZWQ<<Re*xsZoraY!8FP5pwCHf2yS@D?xp`|54;G9S(6<UlcqH!
      z=4GukEm~a^J%Uj}jM45bB#3A06WD>{9Dy^0geh6(r1LXw960<_@`2>PC7)r2929qo
      z5P429Nv^pMR^l-IE>L>lAtl&GAJUZOF#>psdF&!e-zu`$p!ESZ5wTF9^mJ+MViM#L
      zKG(v;ITrr#dM)pBYW9VN3pAs!Xf-ITJH$`d2}_94*|LRPu{fK4z~N`_TZAslrC4OX
      z=CMsSjJs4O>ww<tgudwlm9S3THK9v3lr);@#5UTnQVY9@`<JnEo!EC>u#EH+QCq(O
      DvT{E>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PageRanges.class b/libjava/classpath/lib/javax/print/attribute/standard/PageRanges.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..917e9ba1b6ac1199b82264be60d89bb397bc3612
      GIT binary patch
      literal 1667
      zcwUWEO-~b16g>|LgB7fnf=U%DezjDr-(N)(iY8SAv`V5b^i6rzA=8;U^G0E9)E}U6
      z;mWu&hJ~)0Xrggt;{Pzlf8fe^-*jxN6l0pa&vVbY=iWE{^7GvX00(eZLmNYCf#2hc
      znTlgrGQ*{G4Be9=<4SJLb7wv?%S+-iw@Sj*5MoHSh8KjKxt+J9C<&*qWJ$iLp_5^#
      zHG0x6j{n|h=we8>#?7kzWpURNu51bjGwk_Cz<FD*gBjMl!ZElxCmh$Xt*iM-26mpI
      zCudvAqnzWWCpzwbi+=m@_4_M^&QZfM<QPLJnNQ8pl(XkW810C4V?8!#=nrgVOsYyI
      zZ<?aS&2gvXm4zkGE*3>al28{mF>Ec1vM!uNnJ*<QTPAdoFoo+T<Q;A$4usK%0Yw^T
      z=u1vDI17}#Rmv*$$dqA;X-~0S;krqFqEmK}>~Jzg``|Dn?-(wXaq7RDnI)&S?5G}j
      z+9Yq>Aiv7!PL<P;hTRN<jijbM)10-5S2#^3lMEYcG;Xs?i@;&*!T^I7Tr;$j0z*eK
      zAL#5;I(xgYpJBUc-xrQ<d)E9a#bOBim<ffUjaR7z8$~ss>awDM<ci)7H{HMLJEJd%
      zqRghQtI*@!ID(^;ovknY$r8XA)|Q0KaeCXfv&7JwOf`XWCU;da*A$GB#ii#^H;%1D
      zjIP$2`b*7@5sOAj)4WU^u|GHhLtU7lY%0{m5y$T$6{28!PEnjQ)H8@Q`nyjB(??Fm
      z=+^-aYiK=ywdkg~hyDQCu#Qfddek&V>EtRQ+i30^j#tqe54}Xsd-Pq4ZmeSS$G3jS
      z78;`n(Rh(aXAs6LVz`8@bkbi7#vrx<{wjg(M6D!-0*NbuL~J-+#g6o6rLgN-bWatj
      z6$&>=fm7N#dQogrh}9Kh7)Cl!*c&L^@(mMqIKHKdk%o&*D;Ias373i@DO=CiNYtY1
      z8vRs6<wC6v(yGl@i?{M~=-+-Gke`R-=MnjNysDqWz8`v$fx-pCC{!f<3G6vK+Lx8o
      zvE@4XIzQnj)XS$t{;Y{OQYVh!1Wx+IS&Y)%DL;D57Z~x+f%YhSQzz~8k6!p>-L>n0
      XjNvrS1i3Xr$Nvs}-7+-iqb7d=+`nfs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PagesPerMinute.class b/libjava/classpath/lib/javax/print/attribute/standard/PagesPerMinute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab7150429b7e2b905e515ff1a37def46e89554ab
      GIT binary patch
      literal 1067
      zcwUu~O-~b16o%hRTMD&MXaPS!9l?)&SVmVaN=QgWtyXMOXw==Eax+Xby;JYpA&~e3
      z{0+vfal=AaB${a0`kyqO8EW}-;bP|AIrE<9yyx8e^Y_>90PbTki6Mq^hi~&8v!@)X
      zO|G?atUwFX*IaILwP`lEE&PU1&mBqeB;pJU=cm-97Pe5$U8(s_62lCo^M#G@yD8MR
      z(-td#qYM+iP!4xnLivs-H);<V*i(kFswYD?y2af<BtCuoRex7~d%!Tf<VZ&^GsN??
      zLW`EFw<%JHVIqw*#*)Y~%!dw4mrL8MxvsFeyQ1u%E2LiCX^WnwLL-=BnA;BFMwjmz
      z($j_|3|IKRp|`j+?xiq^nUHyrVLD$wLN>{}v@2opOx=-UE$CW8t#iwzcCvM^P2F(n
      ziN5>6xZZMn2DAQOQ?D>2B7-!M8Z|E71l;vcnR#J#L|a!1ufq}CNaGr=GsHZr6IwYV
      zW4K@oUFCFSp4w%|<qO9|RhRodX-1olEx8U9Reo?*u~hm;AA?h^EE6S3mDYHd7*i)0
      z{qc>UM2FuCJ1+NxDtDuv8B$FzP;K$Z2?v)uIg!PXLU))tq$feo6(li2>nPprA*2we
      zJ>3F&k5gowbVIaG6=(O6nf-vVZ<u_Q&Fy3Q$CoJM61}sO1*{V9F>#(ChZ-(ZWacoJ
      zYRm%BZVp$8%)%k}D?B4jsLGTMz}_Pf+bfp#VeAdy<75HYAe$|MzdQ!c48R%8V<7_H
      x#4Y-FJIcNj6(~n>AeLpH2hiatWJR#_;qN|-A&)}e+fi!qbgFx9>fK0H{sUmR^929^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PagesPerMinuteColor.class b/libjava/classpath/lib/javax/print/attribute/standard/PagesPerMinuteColor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8402bbd857fed387452a3652ca531d6ea2bc4e58
      GIT binary patch
      literal 1088
      zcwUu~T~8B16o%iSErnVvlure91wUG9Sv4kJl#q}jTCGS@z>h0u%Vb&H&eqvk0)NH$
      z6S&YT5=}JT`lF0zmRb<%g%>-sd-grgIq#YI`RmI!0QazvMjyldUB1Wn?Y8oywz<~I
      zb0RJ5P;<G>)waFPT@kJe_1u#buLgdg(nvDQ_0FqFEnJ}*2U7F>H2N7zy@l)MyCKw`
      z*A&Ztq71{KP#*WUgbKYtZq`;9*i(j~Y9LKZdW-v!NKHERSGl_VmZ5*qlb&8;NET|v
      zE!wKVw#XoX;ViNkN+ZuOYdWxfE?v9k`@-e^vT~!AkowVnQ?xY|8o(IC%$|W;Eq-9h
      zKwFNmd=ZA0-r>@^o52Vs40DoUyih+uHmG;$R!s3+-IHQ1YB@q}aK|S*`FhYKH=I1t
      zcPE(CJ6_1}p#J}(uP~(IE@><^axdOT+z-!m^upN{O<gIzF>|<{#Z_EmNCeKV>F1n`
      z;eso4mD9Ne>VRRiP&_57`aBFtGuZH4$#tZt^276r#nL~_bdR>OM3gjDTH`HZjQz#v
      z%y0lDhKaVZU2Y3iZpFsSP2-#)(+DEf6sw+@;Z%>|EEphNY%)tvik{0zV}SNSy6}C-
      zAW83ZD`>q)kqy%I(LOdmeT3ZfM+|+%$m{&*5yroNjx(lc%~KYzLcCStJjN)V;1We9
      zj&rHTG!Vbd;0lqMnRlncGtwAUuJi-!15$~@`O*=r!!G<HwO|@aW0T-7Pl0n?a1OJW
      zi@`T=lm6X`vv0=*%5fY><k_b#v_B5<7?wT$-GMO_Q0(+}k~)7j^<B@@JF%+#8(Vw$
      A!~g&Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PresentationDirection.class b/libjava/classpath/lib/javax/print/attribute/standard/PresentationDirection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..108401b1351ae8c0720d2ff24f29aa45aa45e00d
      GIT binary patch
      literal 2046
      zcwU`UOK%%h6#j1fnk3W4nLMCL>5D$>B#v7M4WuEZv6I%R8>bo9)C4JvlZiW(JricG
      zOTuFdLSli$jy)?DfV-#!f=wlmV9EbMoO@^N7}s>sNaOp>Ip25gd1e0m=jY!5T*3P>
      z^fAmmG#(iT>3!F-dD`IIwJHs6raf-hyN0`)-f&INw7J18$Ie==xg$UfVTLokl`D3m
      zt{;-(AciQzbZ^#%c;7TXY?vOu(Xz&%FkE_$V9lwt$qaGNbS<M+GF^{yx|ho`ur-Eb
      z8OIjs^O8|(m=W*fUkiUfog`<xSXeF;i-kMe#lmLp=B*;b)%=T;e~n?NBUXN8l|mgW
      z7K(+9qtI&W-FL?W$97976)h7nWlX{CV5n`2Bn*0#pIt2)l^T^lvL%yG*9^Ow)}@CM
      zJ8n|{W#s{Fe(ObRR2Fw?mTmDRhEO6|VhCrPU2^~or&XN6S%&Ch;14Hq$x=UgUR7}%
      zLjqk;5%<w06~jJCs?dBitzyJSDHWqWN~;+2(G?Zr7>eO_>RWe>3f>?qcPb9&PCdmP
      z*Q!3?3g)SS9oCw;N5;3P%iQ74{t=G~Q(GpV^tOyA-Kkat1=pptWhK6X8}bSv>fmK$
      zyue5_k^hQ{m+-PcH&vX#1nKgYZLT-!71IsoqUD_(T3&-znBJvv03n>FX7UG?#}IiW
      zrbs)TqsdoIo-w#tb=*Umd?MK~`b^F6JgTZ+x2m?m8?G4ovy8>*|Jj4~f7G=liV~xn
      z){Q#F82wL-V8ImJV;JA>*qGFAYh`HpNUV46=vX4zb4!PbxYD(#7h2rseN#v~pgRqB
      z$6U39Xrkxx&WbSfiKE3uA0mih5EJN!*xf<;`1L`Ig%*|Y39+W~91cz`I7fnWG&skC
      zb6lPiV#M;K0n-_Uf=QgD8(sm}ZG<8I{`du~9D0INk8w`Gu!QFYj7WG<z^H@?0b>$Q
      z38+XoBVgQT%u4K2F2|K$@me{g&FST^c2zG&v^Vu~R9n!?F>O&VE83DyI_(|$jcLpJ
      zV`PPbvT5QRNt!rMnkFuisEGurnwTP46Ei~B#H<iDaha5>Kgp)uqTh$I*en&Bp;q3e
      zCaqCJHgO7faTaAHaUV1I0CU*JJgT^kJuJf}W*zHj;9YRMhmT;;vxftGj6-}$_$z#h
      zZ|M0RpW!J!!S7f=PTndW`r7!7#S*;<TXbsj3D%DC8j#k{Y1m&#-MG)9dxzv8qR8V8
      z#bA_0fqWZMc~{0vNjnhI*pKaiQEB>G22*`^5R6f|dXUbMwAd~Ewudx~5_Q0r&IVGN
      eM7CS|U57T@*50T7KBHaj*8b2#%c$pqwe>Hxa?tz$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrintQuality.class b/libjava/classpath/lib/javax/print/attribute/standard/PrintQuality.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38511ca1ecc56734b9acd0a69e2ab9880c730bbb
      GIT binary patch
      literal 1592
      zcwUuL%Tg0T6g^GCB!qw@Jd}s>5=np%@r4MYF#!a52Psmx>A(=i8fIi>g5b`DD}Tj>
      z!h$L--MDk_!lgfAdAk`PhF}$$s`Q<E?>T+@oSq+lK7Ru+fC(SU7<ymw9ljfXWod>J
      z=Z<4(*}S91ZHF7{+**&%i^4*l>zcFYgO{PLG+@lgZ>9GPhwu8JFm#meN||ek;};+N
      z4Be&s<gQa@wxBt1?yRzTQQgj~wsQhtsIgT`<NC5{*_vrQpG+~ZDTb<~X^7J~%UsW^
      z<v(Bi`dzW|<~u`qYB4ds#1NalfF#2V%Iw_YOk$eB`*d>RDMO`A2qU+|vpP*tyDI78
      zIyZ9hw5$-OS|z#U0B&3V>IHZ8kF4pMp*f=ro=9|=c2An?Y5)u^L0rW(nrp<Zdn1$4
      z<qE2_1yO^Lh&qA@A4S)Ls71(!8zflqpngP1mUWA7IDYgHqhVTGT=%1oNH?|IrXc7K
      zq7L;Ux*0?RE;C%3)(mwvzm-)j_jKWDbB&zf<OjXWWB?wt5RJ2`*|f=y(1Hw_B>i%#
      zljM$?Gp#++FA^;fFsXCfrqfrXwVc77yhWJ7vmGP7=csvdJ%&e##Ya2M@-5=1`-j7|
      z$qy2*N>aqOkAx@Z2$L=}xIPjsX>o`e$BJC;I_~}7_alx+*tv}jTXm$nBuXG{=B+h#
      zToW{*!n@Ef_|Q)Jd*~^L4;4_*gh~V{S4E$C8LH7JoTs=^_%7F4xi$&&<Vx1jN*^Vz
      zP?b>zcn2@UZ{Z7AMma?D0a``qlVQ6E{W9!SzM?DR33sP6-f%RXDG&Fi4-lg)%Xs$D
      zO6h&HQ+^+vREU3)V-3iS75Y!mxZ^a!Gdjo&1~G?u4B?jS0u4bI+8t?>G9st+G#}#j
      zDNjIVS4e=2#5Ejs;f_3}i0<MZanOCieX0#f<O9hWlX<`sW*<)o6`9IPvfxqKB@1B~
      zBknk-(1*oPy#&;YM|kW)`&}q06D!8PF2H(Eun9ali;Wj!-<HHCk#ezpF1AehP=tJ6
      NfGl&73}f<b{4br!R_*`*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterInfo.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d4dfec8858c6dc87dfb953a17b8d5b9a21b2d9c
      GIT binary patch
      literal 1020
      zcwUWC$!-%t5Pj`!663_iS%9#GHC_@%oH#g&gp3ddD<C<s5Vsz?F>NM2VW!7&{(}=2
      zejo=pMdE;jxN+kL_yzs|QPUnAhZu=NcUM=vdiAQhzy1338NgkXEhHE!eLmnrd*7Ez
      z+gxj3I-wSJpt<UDziU5>0>W>om!5?b!|HVWju`6Jfzo_vA;VCejxuB|;SXd--2dZc
      zC<MZn+-(a#ke=FYJYZmt8RqJqigf5UcSDhW{q_6X_k$ll88VwvNxj9eR%%9tY?rH^
      z-6B5KtBpLNmag6OI@}eta+@Jl_qrmBBnmm?FvpN@N+q_#JxBOE+;K@o(ZJiBq|iNf
      zrt~WrFswKKe@r!oGyBKai1?I9>cKVQ#?eW^6cukm?o#2U$qt`7ebLdi@{6dEOF3M?
      z3PaL!`X_6|Fp|*|y3V!edHw;zLa96fs=GW02s7J~J;inClaza>5u4S2bUuE*+7_``
      zRB4;<5y#>Qj=0?!+-AtdL)nmKD%qA7`W^95Mnfn}%<oQ=PXCiyqm`z$0t+*A&eFe4
      zAd3{)^oX?2lczzrB%M~Jx_*TGM*})bdzMb%5i$fRlC?U5VF8PPv6iq*B$0Iv=LyZC
      zk;b%7=pN<gt6#w0A)P#|RF81+a7;gM=yoZ&P0F5|63e5Mafv)G;|dWnT&3~}Tr=6%
      pO@R&L2a-khVN9AaF2|7NM&X!@;RbHT+Ky9i{hjJgO<gmn(r;X;=-U7Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterIsAcceptingJobs.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterIsAcceptingJobs.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5645608771f78cf3ae6f4a78aadddae6fe9eab6
      GIT binary patch
      literal 1484
      zcwU`T+fEZv6kUf-FO*iG+-yMw<<f$sq9SMs2^KVMY9SeHQh6Y!Wm1Q<Gh}8;;K`^T
      z<Ez30QKKK=Z}=a^eNKm4sXowV=Iq&LueC4hoL_&w{RA+FB|kbC=6Cr%KS=Fay5Xd_
      z<5+sR;b<w_;l>WPc2XN+L$k8>N~NOhIl58JnPuA#g<-Tkbj@hg)kDMK2Y&b%X4*$d
      zURAU9^@_G~>SgG$HB0BUqGs8;X}r#^GO!#&IAa>3B&W!04bA)Y_owjt$h$s<NMU_*
      zdnJ=u+t|z&UT){spQ{WD`D-<mX1LKx)nyadsBZFdjjHS0lFX?ZH>xRB?g)@Z9m~Sp
      zu*I!w7Z6yg)O164mKi+pM3F(sm^)e!3_~H@M3lj|<nAl+Y@*mnJHsJ_5Ej<05N;ss
      z#~m7EYoP&*(YOrLN%GU2$z4hsz&&c=vQKbLgwTy1VNHe5iwHw^UN^Ktqh8i5x6w%6
      ztdLloB%^QX48nsUD$aSU+YH`)F&5G=OQWo6PKG;L)wB+2l<~xcS!Qb77VUScdez`g
      z!y?SW)rh5;e+>5Q1f`dW#ZQ?EyiOebmpEL-0+?rr?lmPy>UPUOXc~l9FX}!JPqbCO
      zmjc&X#Gg2g{ol<XY)~~DRz-WE3(#=;12HRj=&I6TpvO!982kv3-APxt13^TE^khec
      z@U+H+XmTaVX!TKaANmO~KwlrBK>X6*!AhPJ3?3sUOhuX_-XFMK@<c|}k`lSA9%Gyw
      z6nBIed5$nbuE{Slah%?>=%V*3CCHGKqcm9zB99Sz#_$T`v`%3I3s}c9q>+$FPziL7
      z-GY|MBYeK;;S)@sa|fljL=C@@xWQ%=W@MAXx{oArFsdR&dk-XXPI5N=fG5H}pAq_`
      zt0Kul&25*A;UONm<(xwww?gY}pbDN)cTMQ53#B=Yw_*=2V3jlMBA#BwPPSq{w81i(
      Ir-(}b1#Hks-v9sr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterLocation.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterLocation.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dc1022617923ec5ba6c32ee62c5747d3e7edfbc
      GIT binary patch
      literal 1040
      zcwUuKyKWOf6g}hDCdP?_;{*t=@QfW37Aguyk&qE0U?oUSEJQbJkIYz;U9&qIoQmH-
      zP|~J=DiQ?}Efv4PPay7&m&Hj;K{2m8=bm%!o%#Oj%U1yRQMHg_xZCIZd}t4R>1vy6
      z?Mo-r!VWZdyWH>E&!Y?BH@yzm(sM0j7?vmJ?1-Um9k`kgE#w$#lTn7SCH#Ha5fA@F
      z8Ri1vORn0&4@hQr^AQ7k$}rRL+{lY=a}|p0&mZqTz8QRY%aB`_uGAY0E0ty>WGn9W
      z>=yC4z4|B;YN_nVxDxehn<3Nix+0G><_aiahN0M$uGk9q9O3V9N0Ez?fwwtXp>rI}
      z=vOjexYzu@R@F&ha6A+VoH9$bC}T3Y9XC$5;&sRs8CV#vbld5Rj;>c<Mg?6e-~yHy
      z(w@^lt`Wl+&h&(Ca4mYCf50$bsg8jfiU$E<rdzV-avl0)<-uvhdhH(_NS?92K`a(2
      zZSg(gC?Dg9%bmh)dhNI|YbxnXzU75}M?98MBg!XwX?`jFSt^l6mc|k+Owl?`e>sIb
      zGPI{hrFoVjn}kc#YOU7p9HIExfX>pKrxkdD96?I7TOPqMk1}9(3s@wQXm<|h3C*I`
      z#<b7q9OV~l-@x7@n?78v9pU0(LO*Nhb}6|{&R!Ua#ZgKkQN(3jAwq_$B%i`HlYQL?
      oteH5FF0oGuY0iWkLsl4F$7BpQa5MJyH}%%ZR5dYm#h@y`0haLa&;S4c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterMakeAndModel.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterMakeAndModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5035742c4d9fb16f6a19f9ab837bef1fe8380e4d
      GIT binary patch
      literal 1055
      zcwUuK%Wl&^6g`ud+mJSG+J;hI<=LbmSRf=8sfwx~L?JCmX(PmLoQ%Q*$1e7`N<V`w
      z-_QlDDzQLf%bI^-hqxXalhUwYVb9E+bI&>V*x!DB{sQ10ss>UF_XqrtkIVy4I?Ciq
      zdD04$Fnz_H9`}0Y%kV;YJN&KKa(X*%PuK=B46Bp-_QXiFj~vBE267Cw$tX?Q7T%%k
      ziml&OhB;q&lG`2O`O<avw;waGXACn<*9rZo4z~l5ee`}_eg9GQ8FCxak!q7+t<nmG
      zOq)A>vrT+XzY$deC2h0icDXGY)eb|ZNfYFe##{jf%rF#N(h<AC&=TGrw`_7z((n!^
      zD|C*F8TCez;)B-z$JJmc49Cu)!Wp+TjICWJx8u&~R=f+iO%9gEM}1)pL{~McufvHh
      z6>tG73~ARIoYsh84CnenHMtUf*E?cZs8q*5O`H2ZVW!)%?{F1(WaZ&m#76BO5hUNS
      zu}LfjDedwhaV(zVh{v76ZHDqe6jnV<r%nOZhfzNHwi|d|@kEAkEKi8^Zb(SKFbzvj
      zmYx+Dn4)!>e(e<U$k3j?FTH1}vQ4-&t;Txo&IyX2G-#gQd0K&|$PuJOyVVGW1uO!3
      zw}dj0guC-tCNv8}j%lCMIqWaizJh%~HhsKaJHf@{gnm}j?Nf7yoW0T#<)|f*DB?1%
      z5Fx`=l2759?!K-C>bef3OYCDpn$smqlNF-tn2g~DZpPmJwBGu=)t=b8rcsq&pb7KI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterMessageFromOperator.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterMessageFromOperator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b9065b7fe210bce6c06310b50a804c9bae24b98
      GIT binary patch
      literal 1078
      zcwU`STTc@~7(GKT3$;)z7ZpYEN=vO9pA43em>LqKf=RLQ5+A1RSf|<U*4bH7{))eW
      z2Yn*Z#Dw_fk1~EcyVfG*#fQ0lbH4MP@67!C_4PY|hbUT@U|8?+13s|(O1j$SS}WNM
      zw6J~6-8NTk`$c#m)N|qcyd$=h*W2q0#kHp_BpFu5r|*k_t{=LZ4=kh^O5;(6yDrp$
      zY>6j-q71XXP?9?hp?vANFSnmEuxAX@RnHA&=>~TKkvjS2${*|R9y6pjq$~9%!)l=x
      z7P1}gcI-Owxt&TB3AA+Vn%Clvs1zFv$*R{D86+^9MHbTxxtesvZqREAwa=RlsmL36
      zgOe0G$HAojAbp02^}k%JFj&1P9M(9am)dcR&f)E-cDfZG1MZN9h0$jBnqAS-mExPQ
      zr)ybU!4gBlYj#i9h+zyDIzm^u79CF=GRzf<BcQ6oeV;H>b=h&b4irgwbQZBuI>&_J
      zOI9|+W~tIH?-9rRDUP_^N!(*t?nic&V`Iwi$*{5)JI0Wydx2_+Eg8CU<9u%)g!J^Y
      zsdXAD8cVP+N$V8-_z7f?q&>Yi%`+6)CR~D6Yprzu7`ZP7bdlx^t-ub_s3A|gl?aA8
      z%mZe(fJGt+cb9OP&@8k(rrn`)n4c@1fPF$LakN%C#?_-C{fwb|Mai#8*;`X$F-jSh
      z$YB}RiI5tm@)NjevTvCJWfKPydG>ionl>R}$g<IOOvZ2<cVcaSQ}6zp>WxiZHK@XG
      Del-5>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterMoreInfo.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterMoreInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8a4635d39f345d1e85fa1843059f402cff04904
      GIT binary patch
      literal 961
      zcwUu~OK%e~6orrTY(tu~Y09HK%A1BL46G1J6@-G2(xw3s8c=smVuGWIr}cQM_OGyG
      zUnE!|u|Q(Wj{@#EL+B$cSd7PWeeQS9z2hH0zkUPo0C&=eG29#SJ-+YkXsL|DjnT3j
      z7~%Mat3KC#=S6rR^rojpL%sFVNHDBS&)Is}XdfuU_tQu*l&6a<uPyYR?1?9Tq73uC
      z(2~0yp?&G8t;SOZw$3nD_f%-bbhsOc<l{#lc0cN0Er!&ZRMONK7FL^KAx8-l8mN{!
      z42ine7a7DcpG6jP4Ed&1q7{s~Lcii&m+BRoUXRLgDoWo`Fk#+FpW%M<|7KEUhzD9S
      z<c?b*mtr^IE+Lm9mo8TW=XrN1dZt?14lOQcaSrE+;B|+gty40FGXr7j+=zjv4;U6#
      zOGiX?m-{|xX4`V0xCu11@$j@_t^ALkCcmIsBTAYowfKk_#bb;%iPWGvgPSz)opJY-
      z5w%~D)IUR}?FG6gp2={E#S`PPH;nEZ^+->Wo@JylL+@F-hcRT3pgsL3T5}YsQ7lI9
      z)ZOwI<Ud=@0<9SvT_?f@3bZ>rR$&oE!0whPM)xKhXvErxSo!jIu=hyD4@2mM!wED;
      zrhwOE=ndJ~J_629z<FH6B@4ccD|EJEv#;6$6&nZQ1@>tIP1#W2!m{Jz2*z*?*CTI#
      PQ*WG1RZ~-MS=H^|VI<Yw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterMoreInfoManufacturer.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterMoreInfoManufacturer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df7de3b65067b969450f0a6c19d4b928fde87f37
      GIT binary patch
      literal 1010
      zcwU{7&2JJx7{;IBvqcImZT+Z9YyBz`y76Qpgv4M>P)dzh4r)vWn9?E3Y@MBLT2KBR
      z-i+7A=*h%`iC6z9<Gag>)S?FuGdugv^Zwpv-kI+|zI+968#j}PFx(yR1Ab`jYpIOI
      zjnT5>8DY7Gs~*=q>#@Hf^p>MVUF|wsTzR{^YdkG<5;2C=>G?ZP>a8PX_+b(WhT?Ql
      zz-|eBAiLt;uPDR3E41WxTWD80YNvjmfjwlHt2xTIW!l{KM0_*<?!)`n>u(qm6{)1D
      zGAwK~{6dxz#y3zdv>9SGrzcW~Vm^&D<`}XKsYKHoc7%S)J2utJHJmP$<5ZOX!(hzp
      zNtdD0`2YTt8KRz+44IR*$gz0kahveVp<|n?zO~&Mh^{FYp80lH(m03nL~uF--{L75
      z!<oJ?HEu-T(MJr68-)o`&E~F4n%S1@EAHE2xN}-jDgNbr<Lf9_iISvBO+F;X(g{Y3
      zM5<q&!8L~b{-_hBA+@3;sTZZ;L^BvtEyvSc@j&|RUHeDhHvIzhK<V%_;xtx}#0-6B
      z>ET9@LX6gQnKWl8Ql(ggzKL7K&&YlXGz&DRf@qTn+sM)C>_~-0ECIo4nPT*~{7#3g
      zM<FX){08<G@#wJ+y>L8+X2=xqoD97nJ1-}|*)ceai?|ekFC$NTt3mc!P@ojVfoP6>
      i977X9XfJ@JN82Hc;R@D6Z@*Ko{+X($rd|(JH+}*b5$TWs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterName.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d94bfc0c34fc7d00d1a78647e5e8865a72c6e24a
      GIT binary patch
      literal 1020
      zcwUWCOKuZE5Pj|6B*ux2^8vyyeB)2Th!qP*k&qEm5-T7%7?fSxZke_wJ)x&3I0s<M
      z0k{HLz$y|8B(|J`18@RFO?z-0Vk8#bU0wC+)vN0M{_D$E01r`ikYK3v`5_;;2U;rQ
      za$~e?heo)8;i}7Z*L@xZgx=x%!a<5*c`|-i3{3M#89s23VW>_<S+b_khq5Cc|M4;u
      z0-+`MT0#fXS1&f7Ft9C#nYync9j3*-P^43(AMbv?|M-?6vo4i18w@L@MpVf4xazr0
      z;#0la&=VTzxedR=Jy9#S7*ch=E3!zUkV6hL4EcssVkg{h3%$$R9;ql=c#D%1y2s9x
      zc`XBm)yDsism5^O;Pe_1pA$(vcvjpfIxd)^;!VgsD!ee>;j?yMbWE+h7d3J%hbvfO
      zNc!#m*%~p7Wb}lob0d1bK4O?FmB&DJj|Tx^rkk>-xCu2$d2}AJUj0Ysqvxw_5Q{^V
      zhRx2O;fULv!hMEZJd`zMf!U@X>W+9SqahT==Jy~<r~gT<(Mr==f`chKr|I7&kVT4Y
      zdPLf1$+JngB%MyBx_W~AXA8PWdzMaM3mI&qNY?TYhB?dw)>^<Kkwn%dTqZP&MjF#@
      z(>==1SHFRMKstF`sh;5K@rZub(!HeQSEOvumRKC7j7sEj9XE)O;U<+&;Fit4Z40bf
      mKaec4Pb1Qdb#*OSZWxZq81CS1tnD=Q-ruQeV(N-Tm3{-$z2|ZO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterResolution.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterResolution.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e24460c8a28315da236844846692607e33ade6f
      GIT binary patch
      literal 1103
      zcwUuLOHUI~6#i~sQ%Y&EKz#r{K(P<Ys2dk0B&LL<(4e8%_*mVx*E-EG7iaDm*y%qo
      zap!Mfp(_#>CT{&v#51?Gt+bk$CUd`g&Ue1=oHNs(=ij~qcz}|D5X1d0f5(r_BiC}2
      z$(3@grmuwQDeknn+cuvD3E}PwPujk+q+=k$ur|4B$f}<>iXR(@F|17HZpqf;-xmXM
      zhP#t_x`7?p93dwdivJ+*i?_b;)S!T2))TJ9?S^nY>g`!|i-GMh%v7Wk45}L3_C*xy
      zA3nbSw0h1E+pru<Z4$^;tJQpiAyScTkw6&pNzCFBL%L=;V$VNp3ip6FZ8FK!WQ#mF
      zInlizjHox3$MCTBziTct%(YzUdD}v?hhb{G%8+_}AsF?kU-F63=-ei-kkgK)&7F?<
      zq}dfMRnET*2Dq8TGOja(WwRSJJw{`g?g&-kN_3=qLT%*oBczJWJ&!n3b*tlW<-0WG
      zqjAPY@h=k(-b#6sR19+3<A<a%|A$7MNKU65M}b;A>g}fFjtrcrOW$pYZ7W!Ec5Hj=
      zffRk?G$#F`Ffc{<8m5t?bB4bE5K@Q`rk6?23`Gv;9-%W{SX^2@!`xTRTA*iwPGFZ*
      zYRD2Q^mw?8D}Y8<Nt<c3NGPPy5}`0fY1@5=UCIQxbnyq+XGFuNh2j}*oDPgqQ~*3D
      zqZichD{YqTl?=?%xP=uGWLU**%H7e`Yuccs<3KpWz6?ZTIwZ7MvX}0Q(SHuPes9Cl
      O{KZl^v9zdJ_kIBkg#uat
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterState.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11d67db360a88399bdcdf236fe560b2865f8a667
      GIT binary patch
      literal 1540
      zcwUuLT~8B16g@*rx0FSo0*WGnine^TAbtW?p%kq)1zmwuqGo9)Wwq=!yIYjRcc1+y
      zSRP0;nwa?H5Aw+v?@SlO0wy$>&e?nKIdkXUJ3oGZ`U+qSa|#+5hF<9#`rCNfHcU6J
      zyRL1lR$Lx;T-_|_b|JnX9NgAi-Q^1W41I?aQf6gc+caJMt%AUjvQkas_J)z?)4NuN
      zHiz4WURvU|V_4>5dX|AbWN1lRrbxtH(n}TI`19A~R{Xm?!JsT=A7$s4vkW7dW8^={
      z;7`wHQVgMmC-cdarlqs@Nlkk?zp#*^Lz^Aqo5iR4YKgKsxgy2mCEYB>HR&OR6P#`;
      z6Y|1hE62<sIF&CMrr{<Se39r9C6%-aJOqYr6=!gkAu#3n{gHHZsfj%2RH$eX=)8&(
      zHPo-7wT3RLXhVyF0V-vE%0XPAD^|?cruD`QB1)o0p~Qn2qB4|iE6*KAhK*2|<67l1
      zF9^-Jigttr8dGr+9Sp4*!{ph@`YN}*tA{gIp4z5U^XOX|L-3)S&T!WZhoNyp6pFf;
      zrs5X4o1_X9EqjxS8;S0#ZnC614wa@!Gm56}R&3(jJQy)GbVRB5W@$1(Dhi#H)z?X*
      z;~x#Lhe6z>*(%qXGUAA?P+N(k?eBhPBzkE7+bJ+rHv$8@vHyD)#0_ay#m@6NLy+3{
      zk3~$d=~2>1&}xK2gP<TtxQQNX148H)13<W2v|sM6-rgqnGooE`r)JR}Aa*CZNZ}NH
      zeS;t3XM6_B`F3!68$ALBB<vMXk+4s|poACN0$*?`=L=ufa)EF}%PHYOEf)+AYuktk
      zA1PJQL(VFC$y-GqxvRK9{?U&z?W^>kphST=G$TXlJVrm3F^n9>Y2Csz%wPp6!VmBq
      z^RyQ60y<uT6J8_sxKsjNfZm38odj8gEiia?2iN|d6_VC9Dxe{GU9~7&mn9PD25yoD
      zqmyrwZ$dIBrRIpV1HLfZ+7k>&lP$&6n%fg&n8F<|oxjvXJ@wroR6p)v+M~uis=ta@
      bJ@@@Su78g^gXBT(Xg&ACAzX%88I}42_7g}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterStateReason.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterStateReason.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ace3664a356863c42bf58b1c76df831b49e9658
      GIT binary patch
      literal 4201
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterStateReasons.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterStateReasons.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b2bbdde29ec796048f54bc580e82938722b5a4f
      GIT binary patch
      literal 3545
      zcwW6$TXR!Y7+t$bb4r>*X=wpLtXfK%v_vj)OKri}NFgmqpjc4!G&!^f(<J1a)D|y*
      zi1?_ZjN&-H>LcjbTA2~w7#(Mv@lAh>y7o?b(p;DV4$dUmCwqT;eQSM}efF<^|M(Mt
      zZTL__oxt{U`m{b1%I3_p9nx((XO8D>BV^fnI;rQ9p`&ua$i;2lHjWv(l}TF~+yblR
      zzEIvaQ=x;pH94$jHFyMqwc!*>+{jIv3FE-xtU$A6<V-y^YUC_4lRh!@f`B+A&=jE;
      z60k@0RNkonZI|orH-DYJDB$Tc)27`o;PQ8m3b-Sgq~V1N%|7_hB(N%Grj3#O)VPs5
      zu8*hap(U0{(1A`j{9l}O+mogxurv1H+QS0%{-J31sC2tlx^1Id$%;B6dR9-E_AFHl
      z33yW(JsH&#b|%M(DBb#p3i~$6eH%&6A1g(X5e!RFE8^xvTDS8#63tc^^gTG^@N!$?
      z#x#>)&xZTyz7bDjvxZLQpv<ukUD!eemU+QY(I0XT><6TIz=t4u1R9LAotuptHfzJ*
      zy@WTX!j0I9XEcP$aJk@P9d74dlcaSOsP?kGL&bRl?8Gh&&oXG$t3K?;9<oatGxWY@
      z5h10gCqhTY&lw3jtYM!(Yni6bK}om~d(r2^a}vNaVc3U_Sq%dM+a5U566t^s&r75R
      zBB|olz?$B2pDFM{AnL=5ILH`h^VD+9zg+tMOUAqJ+fs)AkPn9u6VN7gYeYqwb#RKm
      zQ+igmUU@0APgFq&w8d(Ko$Kx8tvQ=rY|p9xwde(`S_B`t*S2gGfNGw7%ci^{f2A%H
      z$UOAshtb>5wt87$Q>oiV@~PC(j4~XYNf=q1$9e-!sgu6ox5KnL(zNp8Bwmr{;HwOU
      ze@Vl}={Y^Yvq-~hRj(Nm_2LYgWv2wZNPrENBzk4P`*0Q$Y-r<rUQbyS9*Rdo_bCZw
      z`fyH~y7Xkyixkotrf6Ss8_A?nG^Y^DhYVz?=hIV}q<L1=t;$)4zakUWnQ2%IfWZB?
      z9cft-zcp4B2Cmha^0cdUS~g%tU}a8asT6P*F37{>ErC5X!cikY)l&><0aakfaw=*R
      zj6fp~#t0`SGV*9>Ejy|sDczDU*xl8$eZhNpb1oCAr!=CE=u<}JOQ2X&4S2uQcfFP*
      z)?1Ln67j|}`CP(?n(_!*SL4;cRpJSJRgsHFe?r~ERDo9Bslt4rvTFFP=l3yaXyCYl
      z7rr`pISP4E;_ph%?BFOk)(7UX>XtHD&0jA^APzT<qlHhtf)QG=hNA>%D*_DBk&B}i
      z*w8tT_DYCxc-Wy5qN89|gpg0`uwKDx<hX&>5_V$|wx9pyeotV-JRYw^&5%k~p|%&S
      z98^ycRboBCwGOrONricn4BQ-}f#3q3l2<Ph=3}?O0(u2TzD8&70(J=ejJ?Bwo&|*E
      zV?Q7E%ZJDu22av}_qs3s`BQRoDNgNV16-oV%h-%7=;Jtut4mZz9ez;^V}$HBV=a#0
      zD7n4lsE}*NoVB=$$Z?!-RE#PWzY|gV8w=h=(`}p_YZ;rz={vV^hU4qQfjQ`lYJ!d$
      ze)hT7yOogO9L8^8Rge5jfpeI2ME%k81Kzml1UtZR10OMHAJg?Gr1>eST<3-FGnUxr
      z7{Co)2d<OkmrCr;0x?JI7|tU{5$%Y;f~|z?MIO_Xu#HKV0dRAjmz`qT?P4``IpW@w
      z;(E%Y27*2Fm}NdnObaQvNwizU`Ic<HV<~;VBn4d#t1i5acU0kZDSk4{@8Y5p=1Yo6
      zZ?Q34Eu!Scqo(dGX$hCp5|{B_QABC$mCCKZRBvrQAkSlGYe9cgASes3P;-?aLV?t&
      N?^X5tL6Q2ke*xX;qw@d&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/PrinterURI.class b/libjava/classpath/lib/javax/print/attribute/standard/PrinterURI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28124f05e7c14ee72c2aab5e5b5f42c6c301aee6
      GIT binary patch
      literal 940
      zcwUW?T~8B16o%jF*Fr5_DBuTv;J4HUHzp=tlr%9l8lVAVr5f(0?PQ&1JBzck1pbP@
      zfeVcnCYqRd>mTyYcy_uLkeYb0v$JR3^PKmbogcrxd;{<h_Z(yxssp~y54=4smGQVS
      zT6SY2yvT6X=eqB`NDhSFdAaT&$FMwEPRH#-W%z-E0z+-G$fDXp@5`Qe@+ZnL8wo9W
      z&=ES4q1su0%D^@lW}2Z&T$m0IVv!&I?0@?D{1Im;tVtzJgJEu^l@#)nFo}VBwZo8W
      zhJ8^)7PBRkFvH-sq!L^4uq*T{-VLZ;r4{z59H*l6od$E}t>d>%YfQXUN7{GL%od
      zAcNvv%mbn=rUnD9d~dru5Is|`?k4V*O1OZFL<qZs#L*cU!#Q7=CO5(l^&!LjO7(=O
      z8Sp3~&2(G(iknzd2anGx*8bJbc>47QQ5>qY#fQXLIK^m_Ncr_C+$J}BqsCWl%f)sW
      z>z;TflhL`yGkK6C)77HJ=*iQw1P4>}o~A38K@mCH(|@70Opyk~GW0IouYHF5(Q4*s
      zE!yY?5jIhw-T9FU^H>1vZjoYiPm(F7tj(0=*1m(iM?QO$KrbDQp=B}!ye30$$j<Hw
      zusa63xQr_nd==N|Y}saCw*^*h9LQGKhcUEZLwyS?jgC_o!wuX_y&b3C`a4xkOub`O
      GcYgx}!_6E3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/QueuedJobCount.class b/libjava/classpath/lib/javax/print/attribute/standard/QueuedJobCount.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21e93f63a3e5b790f5d2f077b5dea9bc72989309
      GIT binary patch
      literal 1067
      zcwUu~T~8B16o%iSErnVrv;{vvUBQo*T2`;TC?O$LVzEI@u?8<pX19}No9!&@&Jwus
      zhZuhX7kWjaiN?e$e}+HAcxI{P(+e+lXZGxSp7WkF^Yi!TuK*rmF^wUHYM1ZwJ##y7
      zr82ovfonxdn4#jb!-J0bG7^#Ktoc^mkEBW?$uNI$N<%8)h@iDE72iu^n4xm9@P+<v
      ziD1{Y#me6(!$c?omwRmygsv}NH6AmtHHNXeFSQ%h=3XRHTgA7|&aWTu7>1Wz>8fRh
      zWT{bZ(^B_4B7+1bvdCgAjXcAgc3^s3I%dQ3gu}g+z=?W7swaE4*j7|%1Vx6~T@5#S
      zeBY41GAv<uA`A_+#ij8egGo$l=4FPdQu7$uBJa|v>EgMjE5&-$vqZ4LEsxsCH+`GB
      z;nWj-_k&5b<%SGq^S`EEV@SmYX(A13T<k>L3(uH&ZgqvNYUMY21h=xdftw5o-|A{B
      z=VT0*9HHu*j?54C849KH2~pkSVMv<Mmg`8aqJSztI<Hu&{G*S-sn(W>lBP=Qyhn`U
      zDMo*MBdE~f@5CKfyS`Pmb<Yf$mLCPSSatQ_3a2Nss3~-ZsY7~F^jt$4Beagv-5x>)
      zN!rsbp!YaMHb^%_YjI)b5V@HT82f_B&3xeyQ{O(t8CU3?rz~KVcu$GbKmlvGN|EWK
      zT&ghx#JgEsCo<DR?pJt58m-DzzJt9-Dsiw-IfQXAfRB>}piMSk6MXXoI5z<2Fo*dV
      yd>eP@-`zO-UR<CW$ALtieH=iC<B%Q0vPZxBFoqJ!eQ(F93ujY%7pC5iRn<S`H}Y2i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/ReferenceUriSchemesSupported.class b/libjava/classpath/lib/javax/print/attribute/standard/ReferenceUriSchemesSupported.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ec639def583b6db308a4427ed14704959a5870c
      GIT binary patch
      literal 1860
      zcwVJc-*4Mg6#nk=!*1%XsoM>@G1`uGBwf=m7<AAsYnvu(Mw*qnP01#Koa8q3NSt6h
      z`yqHhLOdW%;+<#y0LUIDfwmVUkob3aN1S`@b|njYnI-#tKKFd*e)pVX|MkzW&j4J;
      zZ3QP7mhPJO%m?X?W7%HX^gPF^c0HbUJ=3n6PCdQN_qoIE8sBv+qjtbs+%>wLPTTQ#
      zT|t;(dT@fA-EA2UZO?q5Aj&W`IBN9}F~nW&SZ1@#9oK5xyM=WIc9UTw+qQ)muWUBE
      zJo4>Ib@tKUo5KvD{LU7`wc;!2Ut$Pv?1(fGVGM@ojayqAxoz^7a(jj_C9xddTP=vU
      ze4&_Q7<OqFyRl<do1}aEj+BsYnsy^?$Q8<alGFL6<RC0_=M|Nz%eAIuTV95ao=BES
      zO}1U<F)*Cd@Fu26{Bp1!P85>mAzGQypkYLyw=|se(X571AHA(1?xUoJF&|yhp!+DL
      zVcbV)4HFnqaG9Fae^eFkk)D08qvCzq_`nlrkqRo1tKvhF)o6DPxT8Xp+vfMldrcr)
      zgkC3f-?YfLN@(9|a<OAp!zr8=D5v2yyv{IMv}|7LwyN9-3aS^|H5wO_hKAmyGlme(
      zQ5x^Sa!JBHQGS}D0=2Bcy{zf+M%#HvElVVi^(@;oU6-^C8CJtKy{<!?#TO%%Fa1vg
      zk7jr&Ls=Bssbsb&$Haef1e2kH=4i?}Y;~&ZSSi<UcFH~MHjNKuF^*5!sYG(%oQ+Xn
      zu5Z+44`W~URT4L5w7X7?=Pf~+dD-|ah-{dleuU_bU>IkhKqWjxzmgM(VNwhl;Yl%O
      z(vAi;9@w$K>VX{(?1Z#uM8l<}c9V@#_DOnUI18{W!VuS=zkyXkPw>WLObZy6@VtN#
      z2`>m3mGGi~ii8OPRSD+=jQbJu68j+warG(Qsf6@*jY?R*VpJmf2Sz2TUo|R<{*h5p
      z^<{&2dWN2gzG6JanqZKc9;S)X!+GNLaDhlYTqITx38M8dCwM)~3t|ro#9aSH7A;TD
      zsyyr}9d?C^dV`9Rr!s8P_gtiM8%Sas^QhnoKE)zF$8~&$HE?{4I!gEgd$^0+Xu+hr
      z0~_C<jqeFRf`i}jCH}xw$|`mPm5}}tenF8TkMKq3&OX7$b3HNX{fb)rwd9@lqfn4d
      z66hxFP2Uvh+oZLUWZsfFQ_>HFboTR6!l-n8CzEOZa*%8cTlgf9^PIZfPyJy4HH;nX
      k2GoUsN*!41=l*z%8$RNescJ89*Za9Y4d62Bf{3d83-7OtqW}N^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/RequestingUserName.class b/libjava/classpath/lib/javax/print/attribute/standard/RequestingUserName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eaf96608a93fe5c542e9bce375b3603e318e38b5
      GIT binary patch
      literal 1046
      zcwUuK%Wl&^6g`ud(~veLeL;DZSDQ2ht75?-RV5UJC`2tHjfL2alaX=cj=>(I^jG+X
      zE?`v&BqU(RC$Q!(kPz1s6H*cuEXH%^&N=6vd&ggYzW)ed3snOthOIt-%?IYoz?I76
      zN(HVRDPe|+%N`GU=2P)15}|UX(+Nee#}9>p48z)V+JP9T_K{S4U?9g(n~r)CpA+GG
      zzq1VURKVq)C4$iPWoP$31AD|U+w^5@M_Js9ME2X4@7DT{51$!w+pcug4#P&J6&Er+
      zE*-N?deUhOGm&yVv*mZWCmL0YA=C7GqJT8!izs52q11Av*ozKr5gc&aBNt^2w>Vj$
      zbCS%c7jDRKr}f{{YB1!ZB#y-=j8Y$-HaNN+H%+%B$vrB*G~VUD-4|Wes6LOIxmd(`
      ztTLp1yMMYy0%JJi2-W0DIDT-%uu!Rvftnr<L&D6oT}N^i1!U#!Bx1YvkM2iL*w`Tz
      zgDMT1T|A|cw428|-2|gK)#KsRr6v^GeiU@Y12-PV%H%9>$7=NFQm3@Cv{qptPx}o0
      z(J2&=p_ty4zH^k>C0v?zW3zVa1f_Qxbe6sa+JT425u{Af+7N~XECM=O!ZL}((F)EH
      zn#B`NWFONx=9g-pz}_I6KHjXI;KK1peoo7Eh-{IwXS&4lkTNP!!X;cLL53?-K835A
      reN7jr>pYMyv$rGBoKD$VtT?<*#2BvQM&j)c_2%DHZz^>|qbk1uT<`N{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Severity.class b/libjava/classpath/lib/javax/print/attribute/standard/Severity.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7959b0e4f109ea85ce0a39f173c5f196d702b0a
      GIT binary patch
      literal 1400
      zcwUuL+fEZv6kUf-r=?7}l#5(MKt);*D&9~jD5=$ykOCd7Y0!rQjCD+zA!nvY<C_T|
      z<D0?*iAJA|KjDM_Vcc^VE|zMv$@J{md#|-G>&&;GAHM*Y#9Rms3?r}jHs48Z3Da_u
      z+;xSyR&kA_<8o_*i;bjiY#YLKt05>1gY}a$R%KJKS}xxSL1h@IpEY-6F|<0w$;$;p
      zIHqkq$v$LY^9<3nZFz;=0xwsLVD<akckYj`R9DSsmKO6X42gw*Y<HR=^mHzt%jO<4
      z1T*>kVxFPNp?s^f!q>{wMEj~FOP0A+O6oE~sAhwPk@fww(bfN`8BVR2P0Ms=83OS{
      zfk8>z8%6{S-5Pq(OQWRxxDwAM3XK#wuR%l9vo2_8KC}ikv>+P7McP$ulVMyY8eweN
      z!VTjJ4f>i3O9tXJt09CfJdRNft!VSCs~TcxXJ}b4EhAUiTr-3}Tx`K!CmlGcLGRKT
      zK>*#<p8L{th;G|k1<8}8^_2`a&0V8piz=-zo;bC?beTI2Euc|1OBQ!4f-qBOGg4!J
      zSmyENn4a~dqe?lxNgN%&ari2QagSE*_-iN4C|y4-ZD%}DSKKyA%+%;Re3bjQdrjDg
      zZdb&*@yPT*(Id?#JS2Tgq&Gc5sOUuqVX_<PBWpl}R3~-G?(wvhXNx?0J$2+s+R&*I
      zsso*b?4q|_DDZyEpTLTN1DxAOpJyu4?Dx!|GzZkr7%B#0m-M0%8`g`#*oeN51bGR!
      zhdy%ep`ZMF7@)w|2iexREUeOh22Gf!l8YF^GNzzo2{V|GS)eB9()umUlE?F@qkRWR
      zp72DZ_ZbcUT;jS8vv5t0=~<JwP8<w3aFb%UB=WZ89G89|5M%F;303KOA<4AEuun#J
      y3U~Z=PM~*dp<8vJ3Z{|rp%XroHj}8uzBz?ej<GW|{Tb|7Eq1pKmf^n4dhiQ3jV3h!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/SheetCollate.class b/libjava/classpath/lib/javax/print/attribute/standard/SheetCollate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e202fc7a972595f53959069750736bf8a7db394
      GIT binary patch
      literal 1481
      zcwUuL>rN9v7(GL`7fL}|E($0jinL%`@rK%pl7dM|t(S!+glIBtH)YMTD|<mm{LS+y
      z{2<Zj1NbVwgYlbTfm#X)ZQ7an=A7?x&hGEO-+uv^!HY0D7^Xk+Exw)oWb3Az<*sY%
      zRnOJ3j?2wDx9eGTUDMoxWf<Jm!cZ8-+7lK{Z$sTNUA`Sgh+(`vYQd__A05JooLT;j
      zIKR_2J<V~O2vLT~a|laT^%%_1>u9#ljf!SFx@E2u7Z}(QLwCV4#dL0k8=e-d7GBNl
      zR`Y)tqATUX>r!ccd6AIm(gk$MF+@(NT@HcG#xk!O)J5N#%#<~_*~qH$hTuIK$t4@`
      zVVSjy7R=WS-PGMVhCnh^VNeQIU5kQYB!;WF#t_Q;_e!#us&vxL^%!~)7rPrVBoGhd
      zCdt&=UIY^)hG*6eYt<u|q;f|m!A`}{hkmh}j$r_U43|o}sg=Ers%HBGB}!I}#OGuI
      zon<hJ07j@CcU^ZFf?HyI@}x+THE1---mvT)k}R2O(yU-`$Dx5cRlQ+y*RzQ;dm53S
      zK10CcCn7gTS;ADQ%r_`U|9?4rXCin)PlzL=PWuy+S;SGBJsn7<+PWGi;9`rh6Gzzd
      zUK!#>Rm-z$+Dl!K;>~7f1e@MhGMc_YgwaX=!{|bcV%_vEcc2GD!dlu731ev;78c2s
      z45BrJ2rlCaF^1^$84AQF_XBJ-aDd@`jEb!yw`0Md7+(z}ZmFwE;<mbvBn1e!hf#{`
      zVT?jk-(=xC^gm9ifg&|jrc!S)2^DGj-N!O!X?==$Itw(YEIpfk6LS<1vC!1W0Wv4~
      zqB8oPhWsFTgNG<&<zQlWSIWU~k7{(_fn+|EIny!@1QP7)al()cHDt2b;kBQP;SsgS
      tTBwg(she%63eA=CsTrS2+9X@KUz)heF*lEAr@2$D+}$=@M!E^q^M7O{NqhhR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/attribute/standard/Sides.class b/libjava/classpath/lib/javax/print/attribute/standard/Sides.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccc9789518d6af8e24b303b0abb4cf07798acf80
      GIT binary patch
      literal 1662
      zcwUWE+foxj5ItkA#04Q-6!3<CBtVGw8;D90As8;jaxqehOEQMF!mjRaP^x_Q*+1|T
      z6s@94ORFs3{1QLFXUm?+LNG+iq&9Qrbf2E?p3eUG{pl-!^SBqlA%>o(+J^Qr{>;)1
      zC$2e;rLUG89=9FM$ZJ+UuIhPi2jFEmUE4Edl-AWv!_i&_;Ac2f+be12?(A#=2r>-R
      z_L~*^IsUxFZD)@l#L#zuVA5ROb!KR^xut8xMQ+);X)L6Z3~Z92K4BW7EN4+GmbmZj
      z<Bvywef!zLP&YH3T2a%<6gi&F{7*lI8Jg#pX3C<K%*^!oN-8;?VrZ$b>cq_4yi5C&
      z3$vNjeFF0fQ)3xo4%-yjD9mfCMasB&SsoiNYDOWhN(&v)z^Sz|S=X&^`G2zuj^v8E
      zp*y1to=9|&!J9DiJOqZ53QplPWisO0y^(Zuv5qWf6f~kqpdJO`GCHfExr`zTTFR(j
      zK`WX97^F^DXC1^4_0u$X%%)88L7b!FoEK(!8!MVdA;$9s9>fJ|R>feinU*6h;)F{I
      z+Hh2$D+-RGo#9AEH~4gEeU)2oFTxo!M|Z5zP19bIA$V|-3UbzTo58msI!9NZrfwIw
      zlh7PqFs)5WC=%V%?nF_uMa$|`y<lig$s*0w{T?F&|LFbh;0=#blmMMHt*ujxmcL@S
      zml_1km`~J988(owx_1m(Bhi|J&_s@@s#)mW@jd7tN!pNVmaH7Vs|!&`&c~3D(F=fP
      zgT6ilP=_Eoa2N`4_4IN$ga)*WX&~G#W<jpa?%Lw6t#a)UcO_T4DO&w9RwqR|PP^~$
      zLVOCJ!LpuhocMq)0lgA-3+R)ux5D;S*r@*t2C|-TOwD@3aW(4;pI1NNBC!;03tdES
      zp_}+E^pfH7dzt)I`W>V6fjd;xI3+lRF3e#NOJvL9COu<#K$c}p5}v|CsPts<2rKl>
      z5q^T}xF(~4N}#`tThJ&mg7f!xZsU68ypUwqsGYjhwUxbaLpDjEVT@1=MyHDyx1{p6
      zj2V+W;0d#Ly8-=@vScu&Y<7b&Dr?M5ry@;MOJCKHdXd6iS32ZMse>1*wXgSRy}R0R
      SOzhWQuGYS(p=C%*ugO2ccxq_?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintEvent.class b/libjava/classpath/lib/javax/print/event/PrintEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..589436ae0426503c6928d543598ca6724a5b1075
      GIT binary patch
      literal 704
      zcwT)`U2oGs5S&edof^}$X_HVWsrvy<ii*V}xQf(9@Du@3sz`lwl2dw>Ye$Y#^=Flr
      zL@E+LfFFg}J6i-&gdg^HXXj>j&Od(Me+Tdu4HG%S_LYC*-@4;ihKVa~1jjEb|DaM6
      z1wutJ+-V{MSA(DXS7MM5j1w8kq{W0rM^gen9Jy)NYxW3*b~F?g@>sF)2nM0lk)ilB
      zz3z+n-0ug1Q0_znKj`_fRCNXxl1n)u)I0xM&Eo|o(KH@tl?U?)#U$z`Odk<88_ho$
      zDe9TnAk>!Ov#AV*A}*prSY1qWqR_EWMol?+x@0*MZ1yY=p4oVgZNkb(B;9PkzvpKg
      zTByS@u|rr}?%7zwx*E4<V;=|X)E|#UI3yhZYwiOmGvO%-hhU|9e3a^OOAAwP)IIF-
      z(s`&a#~J@8jwV+vu5)}EN3Z87e${=8qovVz%zTf>oK;g6Y&_8_23ApG4N@jDty7*r
      peAd39d{N$<qk1&M)(kIZ*q!0!-EVP2)7o0tPOoIbgjbq%_zMY0pp*ar
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintJobAdapter.class b/libjava/classpath/lib/javax/print/event/PrintJobAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28559645c6e91f115b73b77700f35623bb113217
      GIT binary patch
      literal 973
      zcwU8(OD{t~6vzL=Z7)^oQSX(<0t=0ZNDzsXE~MUKWixFLMy`8n?o=#&B`b-A58y+I
      zGovMuFpE3q%zw`LoyUFuczpw~g6R-l0yDSrK|Yq6TE(VB55(uO_4kw7PD3^g=@5ay
      zpbaZUGQKVy)o!V7LSzMI|4y!|)KE-XAiJevWwr&n7ZxuBf^yQJ9J<k$M~EJQLRH0d
      z*t)BcK9{wK1cs|gT}BsDD|>H?fw@tsz+Bba@TS0&d)}2so@*JWSES3yT{9v>4T1TE
      ze;9lAwrLy9xCh>lH=5VeYzt)>*D119hQ6hr$^#v(B9#j&c7(&^AkpM-Jmh3YKBfDX
      z(v<EPUZzn=ERZ`(TDndZWtUR?HTtq`HJAY}o4*YI=a4P0na^Int+EwtGfOYXJ+sq=
      zJfAtXz&ZkKpr5_`R}cnJV9VoSs0~<iIjsF8XI*f`C60YPwiB&4j1gC}=trD*5Tky?
      br3W$QN8ET2<9<ZyK}`4&Paedii=X-g0-mgK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintJobAttributeEvent.class b/libjava/classpath/lib/javax/print/event/PrintJobAttributeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc6834fb7a998420aa80d737d06d7db4357e6769
      GIT binary patch
      literal 953
      zcwUuKT~8BH5IxgR*e*~j$VUMIKT=l0MqV){*lLs%s6or~-Fj0msk>zNmiUK!@<kKT
      z#0TTEKZKt_n7iFJ1#Q%aot>F`&Y3$i_t(Yu9{?WWejX`8<yf4G_wGrkeC^6p$+ltq
      z-N4(?I#ga)%cmxtM~1LC0v#g=#Yl!qbeb}ZRN%jUQ6tbUVWJxNkruvgicVK%KQzv(
      zsGNKxSfXDdB5c%$#Rn(9U*}NjZ9?vm@|Au}cwV_etOcz;WBY#;*PDb)HFzT}q*1hC
      z;|5`-r|oux-*ykYW7#smaS(3WuuvdO)s-*zyYD<1z7k$X5=!-;#WN5*367IwM!!|u
      zqf`IaahndKpc}TBJU_BQLZK~nKO~eZ>m#ui-+IZ$GHw&bnRS?`PbZu!P3Eymm>nU-
      z8)g2^(C#*`)&1-CtX}nJ$_%Ic=MiigMXd6*)BIplSU?szj`DFd#vgBh{WRxnOt78g
      z=q2Y3zTiCghAC&`45iO8VVdn^eDs8cs!Xn7hNG1p9JeqF#NHg{S<HB*K#KhZloR<a
      x{+qKg=PMR}V&&67I~V8oVoke;Ni+#-xRdbRgr9Z3pmd#lG(^r0$aiDZy-UdC>vRAB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintJobAttributeListener.class b/libjava/classpath/lib/javax/print/event/PrintJobAttributeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3404e303d3b4a9a299c3690e85d8ba8e605a3216
      GIT binary patch
      literal 223
      zcwRg8Z`VEs1_nb0PId++Mh5My#InQ+{eq&*yb}G?vQ!`$0AhRPCpngs6lErrmZbV*
      z7MG;vr53R>urM+RfHdgmB<7{-`zK|kCYLZW@F&7lh8CnGmZUN==xX>7VXiAk*jh7;
      wk%22XzqBYh)h#mzs96rD1N1<KvN19+GB7iM03*;ntPE@*76UtwWMbd|0821Jj{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintJobEvent.class b/libjava/classpath/lib/javax/print/event/PrintJobEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77ff6656b6aff6fa686044033a95458db0766cb3
      GIT binary patch
      literal 1029
      zcwU83TW``}7=FHS95A-wjt-{t2uxSETg;LUN>b954LUUOf)uQ*i0x9!qW{SYO*|xC
      z7_a>wCjJF)jPF+pb|%CN%KJR;^Ss}C`2PFLR{;Ash+&T5Mqj_wUkewGX}N-NY0&qC
      z$2GenaTG(CAv;6lDHxW9hGXi3mf;Ld+d7jg46MemP`0h1t6OeMAB>F1&%<B2{?U(T
      z3~Lop6WdxtRGU?)(Jt4IPZUX$$R&rUwLU|tRzGT&MYSv`QiXHIg!8qWd%=+4Tve2P
      zRgWR9*4xMRhSZi?lBzX1YcgaS(&?GpkeY2#(}<VrD$krVL>)sP+7<<mP0Mr-8FG0g
      zIBv!6P8L#<3oV9l*?w*$5JEPE4dfVB#|B}bTRoxP=^I_QRA|kEmYc#lk_?NAX&LJ1
      zRmX5Ny)&R;GK$@$jp?*E!af;x&&?sjj`E+Il&IUGJ#xC_*__!d!*b7X|K3S^b3yu0
      zz92IsCm9klY~>3xt0ZWQ-4q_+A;Ubmn*O^hzURu+F$fInGfL65#^$Q&ZQ#mCd)$N_
      zdW_#Cj_ZgZN+?EXj_@WDNKSEz@InBm2`>il65-_l&Jey9z$=7T19**obSR2L#BETP
      zQ3t>&@w}g8arZN}irJ6Ye(xD>(l_m;TGZ$hYVIjD58^#JZs9iIMR#zQit&g)Fh}t{
      z-1o~1^v`pV;s<QMofeLIr0x|=jRk%|hCB+s`M@{Fi=R;ZhP`+H_+JM6@u~ljr`rDm
      D<7m$0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintJobListener.class b/libjava/classpath/lib/javax/print/event/PrintJobListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86549e6dc3b284cfba8d8332f123682298a360e4
      GIT binary patch
      literal 354
      zcwTjnK~DlP6olu2?jkC|1P*dE9`xeIvnPUbFbD*V_p&}s$=WX6Li}wU`~m(bV!P>L
      zVnPpZ+R2+QouBRI8^A4EF=~X1g;<NPBsWsogxBom)ZZWVd?X9YicO3ILfh{pnNT0e
      zWWM0k5_)CmURd#Bgeu<I4D@H7vE?_y<<)3E`N6;Lu3sHC57t1alrx_^+gX3KR^<(a
      zESEZ!G1gDoa0x63=aoI<<w_bZ`qovjQY%99S+7jWLkA#q|ChY+zl{ilI{b-T=R-vB
      W-Q%E*phrQQL65z<<cXU#oc;otxM8vY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintServiceAttributeEvent.class b/libjava/classpath/lib/javax/print/event/PrintServiceAttributeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a5c9c898afa43772ef336f8e765587c745c6724
      GIT binary patch
      literal 921
      zcwUuKNl(H+7=6Q5s09^qL)>nFgsNAK5shBNEhzU=CpZMbltTPjnz$q$jAwt8@taaf
      zAvTfA%(uMvzGdd?`~3sJ7S<I67zz!eXFTZlmT1{J?{PXWq+Q`wPnf)9+m@(xZGI$E
      z3PKDSABKZqP>o+ohhekq1rIWRm#A=ihas{nTEgCAIL!``y_B7CWph=A&|&+As|aF3
      zg943VwqHPR8m+p1UTbhu0%KrEXb2<1Fj*EYe%8IKaqG&cH914F+%}D7)v$#0-C)SR
      z6*O$IJkBoVsGWA#GD#rqKPfd)=e9RQFObdo6IAMdLBk@_3^Afs+!`sDG&HV)459tB
      z7~&*Q^1SEvNacU5o_<8Xg<~Oiwd%i-qEyB@^&g}U$`Fu`Kvs}!1yMR<<Xuu+<|pzS
      zZ&34v7sQ{)4PcVagp=AQVhJh^Fh$;4AC74x0mqs_io~QP3k1lX#hfd@O}ETN^RJly
      p#M0wHJL1Go98Il{aWxs1vEuS|mmkhQBR)#L_K?E^@~VSc`vI4_>5BjW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/print/event/PrintServiceAttributeListener.class b/libjava/classpath/lib/javax/print/event/PrintServiceAttributeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..029a5b932f9773572ae3d489c6a2698eeeccc384
      GIT binary patch
      literal 235
      zcwRg8Z`VEs1_nb0PId++Mh5+?#InQ+{eq&*yb}G?vQ!`$0AdHH7L{ctr#hCD6lErr
      zmZbV*7MG;vr53R>urM+RfHdjnB<7{-`zK|kCYLZW@F&7lh8CnGmZUN=7;5+sX|^j!
      z%33pwk%22XzqBYh)h#mzXn+!4hv<O}XJcewWMF0h0Y;#^SQ*$rECzNU$;7|`0B;LN
      Ay#N3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/ClassDesc.class b/libjava/classpath/lib/javax/rmi/CORBA/ClassDesc.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96fa9d591b1a6135699ddca54ebafa336c27509c
      GIT binary patch
      literal 432
      zcwTi-O-}+b5Pb!fMZ%YeB6#wq9@ywrW1>q;G#g1kxp$Wai%ZwEi!uHV|A;3O4|?~)
      zKQhi%qbHm6wQpu#=S@F8U*7=iqw6Ba(3$aj{^04k^!&l_^u+UHZcJa8$VGvnk)^$u
      ztEo2#XCg{n6d77JDid!cwB)gT<Y6qR*jPFi+Q>v*pZ6Kq1w++Olu5Zt$2?vLXZfC6
      z4xie$42~9ea>CFI{<@4(E!Fgpp%f((5pqNC7LTNo=`lloXLrm{@F`P99%~iU(O{?t
      zQi;pOJQVus+etG>A~M3s4)LF0A-$1?VJrA|WNKR;B?}#iGnpxBznNa9!8XVPZHKT6
      z7bUu{&}ZgQCaj=}Y}M>ZvuExISBZI+1J2$Hn$K3!A}reA0oJYD7GMKyE8nzLoiCN6
      BU(x^o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/PortableRemoteObjectDelegate.class b/libjava/classpath/lib/javax/rmi/CORBA/PortableRemoteObjectDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..432269bffd0d09836b166a247b6e1ff1bc153c90
      GIT binary patch
      literal 576
      zcwT*x&q~8U5XQf$ZB}EgTI-*K2!etIF?jNjlSVy>l?J?T!ctq(Y)LknXY=3#_)y}e
      z(Xvg%g=J@cGxN<X^ZE7u0pJq*3=P8hgun9KNv31R8w_u*ohO+n9z<d&rc#MPFcG1;
      z6_FTmB^a87t)jw-csz2-D1n7Cj_20t*~2_s=#>g?4fLN0_FW!|nHtMDWmqE|RFW29
      zLR;iBJ=1TmUcEyhXvI89<Qw7YCvFVr8pMlun!5dZ4#Otlu#)KUR2idKO8P1b2q%9G
      zQ6mgHgrfz0lztYzl-&%?P8KhJ(Dr4PgyMc23BvJz>$oViEdpT$#cAp7v|wqUX|Ji@
      fRZVQHS4bNh2I&+##kN7Zn)H^cy87;FyMeuLvW1xk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/Stub.class b/libjava/classpath/lib/javax/rmi/CORBA/Stub.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c0d21cbfe0ace7a385bebe9af4a218ffc4e1677
      GIT binary patch
      literal 2763
      zcwU`UZBr9h6n-v&YzT{B5CpLjD#W~iLB+m-Z$w@q5fqdb`$9L#nk?Py#?402ww7Pe
      z@6Pl?Kee^vwAxmX(rM|3+Npo3Go7BhSwaX4V+#ZK?!D(c=Q+<g_q_P$=U)Mwz<mKV
      z3<nma+tO0h$SKj-^vuYG=&V^x3aDl1)s0M4&t*#I3nv#&Mf190N=a3YPA3=Tlo`+E
      zRRL}rB&z7qS=mq|Rk_EF7@7;#=bUU56kWR>zsSHYF*L?>tzb%;IVY(_xvr`G^WMKV
      znmZZXxrMA$$dXl@p)R+e=mvu?VS%fXmLYD2qGg7xOWjB^v?R8XjM6{4^`vE0&PXOv
      zIFfM6@1lLrZHH5;qABKC23IgN$50#7)3OKcwBx2;9KvA%#O`QDD@Lo)Hj&1pl&Kqc
      zMZAI|3=J9Cj9WRTh(jQ_GlfvaQAx}p0e*(Vd(o{2!>b~EXklndD4IM~%q3;xT1jnR
      zLQj#{5=l<q_Mv;&O3n)xj)~|+t81Bx&w;`sL^M*CW>zUMv^fgJ1>z;)npgtG8_<OT
      z5&by9&=GWY3Q_so@~xtz5^!s9XR4ta9Okr$lX#6GvI~rpACb_Li`%=xz9g!qUXqtO
      zG8oz^I!}98#6C3f@MlH5iE|{xZdo`ro{-WtjiQlYL5JSs4dfkNO38VXI=&!)TE5+a
      z;oviJPB-Q9HK#Ksq8a<Wn7}0gBwKTJT3n-30ul@dtLcms6*Vmz9!$}L;FSGdOyUYJ
      z^VKTdH@j|*Tg-~MhU-)!DW8|MG(*2riFSC~;f6eTo8FaQDfn$I<h0+^{gS4eS=sQD
      z41E@nc^>9Q6}m(FZ%5~z@A1mK<wXovc%c?VoX3X@eY^FEa~)jPgzy@&lrH5&tZgbZ
      zsq6`+<%=c}kfj{?2%si!*|dmHmn$WJTFSpgIi^a5!jx`~=|wGFVWlwiI8BMlN6d$&
      z7g>BHA_<jYe9!K8Wa^kOS4!iUI>X?9$K;CDDg1z;a}PTjZg&jDls6^qs+M%RXjY=~
      zREr`E+-8_~Ia=EgcFlE(gWhF0{Xal?vTofvp^>|nB{k5jUNlnjn8L?tJ%>Kd?Q6T~
      z^}6V<j(!h8fQR<=G+S%n#WEkQv|r}4##-r-)9T@~+gd$1fL8Koqpty4`H$#3_zWEz
      z==u@ePb{RP^xsP>AfW-H=&?>g_Pu5AGjziJ8^WsygnhxM2yHp<BZ?r$T3jWd5`b7T
      zM+AKqR6mZ}P?xQQfX?tw2>F6vqB;Bny2ERT)_`F7>7y!Wg>qgbXSD*lvkXn6%Z5Hj
      z)|`0*2aK#?(1k51x8-J95N#zh8-nj%#~XCd_(-t9CT*S_#AxWxGRrfZ<q$u6T*dM}
      z)#o!(e7S;UN15e$Tp;Ta+Sk%o%nI=ZRh1K&Ah^-z7>qo}0N+MdF#Z5N>xj*-V{+bi
      zc@@*)70meNR`3p8&aB|wRlNV(lW^oIM(t!jaAB(?0jo>CqQt(TNDpxg-;zoXDa}We
      z=yz1l?=g<Y6=F=3#h9Qz*iRg5=$WT%&Td-MxM{JzNf~gD00sUX*#~H)%?7gJ2<N_n
      z#jnw5bIMh6@{u3#jF_!a_13AoeyNBbD8~;Vk6TuJ1BD9B(k~U=+=_l@XY@ZP`g4l@
      U7e#-uOZ0pA*lLAOEZ<N61+`{~`Tzg`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/StubDelegate.class b/libjava/classpath/lib/javax/rmi/CORBA/StubDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77f1aac0a7753738c6b01e5bfc3a33734ec40086
      GIT binary patch
      literal 652
      zcwUWCO;5r=5Pgf-BKQH~7si7}L1Sa0r=AogAt5$_#Dlk`Y)VPHi|tnVZ65pq{wU)V
      z0UIO6J?!qxzL|M%X5T+v-vC_T&_s^mXvClS#EL@SYC7GUYpbV|{;ddv$F(q#XDFu#
      zE8x<zoc>6-n!$9Hl+)YUN$0l&c1J~?r9yA!qs^{AFcj}5t{7`y$=Jji!@)Fn8rv12
      z(qi$<V2G!L2QkCxvJyXe+4V<;!jQ+qrWy!_+LFL}n}|e$59V?%|E%DvS^l;hC%UI8
      zG9)o3Dh$;*qU|iGo2W7zf0JtlJdW>`ZmC2LG6G94k*~#^!`1&dIEl`ZAiY|V<x7vD
      zu}p8KQ(st{8qiZo<cgLbP^T){p`WK{gMncM=`!dKtimAMBr8v6fjmW&kp7N!Y)sEh
      dY|Rh`awub)d^_09M3u?2hkdeW?zHDn`vk*&uaW=&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/Tie.class b/libjava/classpath/lib/javax/rmi/CORBA/Tie.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4c3b82e359fde2402f92a2f10b6b180e9ba67fa
      GIT binary patch
      literal 437
      zcwTLg%}xR_6opR_85sXiestx^#jvqq?MjVC6C()__nqNpC=OH7DHEQ}g%99E8Se}P
      zV{p-)raj-e&H4KN_yo|$xrd5CYo>Cwl6J1;{a|=^E618VR0W#FgG^K!%RxA!$a$y<
      zTp1fnGmkgsg|SYB3CZU)H}CYM(n&&Apb?WBE6Y1i2zoDNRxx8pbK~fS9oes=9qbr-
      zZvuP9h5{YN{|@Di1G>RK*9GRgsm|747P#1@%NGvtC!`{$bLEI<1tt2hifG}qNiz>^
      zfy?c;Ud?D3P1o$!#K6cbZA6bc;fy+0cU=(N6DRW8=b~%erH49-P8;w`J;32ck4inp
      UNvTboGIhpOm9@pI!{-XRKY+4nqW}N^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/Util.class b/libjava/classpath/lib/javax/rmi/CORBA/Util.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1175824b71c1ad272681abbd3ef855dc5bbcd59e
      GIT binary patch
      literal 3292
      zcwUW_TXz#x6vzK3Nt-4aE-h^-iclzEQlJ4rEu@O2P^rdNn-Z~zIGG&Nsgs#F7n<@W
      zZ~6s%(??%?@baMb!R1=M`Jr6yb23dbmtL|~GAC#D{+<8cXP<rk{qN7e09?oOG!hJ>
      zo9Z*QU9_8eaback?tJl~s~c&g7><iKMME_k#g*D7*Ib67IyZPjbveVCa-8Em|9y#U
      z=QKk%b@y$CWWG>kNG(`(K7<^NglQH>a4e0Z3{wr$D~4&iq(xP8EqhzRaSSu$8r)qn
      z9al9q(r_tX?rE&Jwr(~`g>qPSDUA~hr}vYa0mGPr0Sq!6E9)j-_L?<ruc<YImKiBq
      znrc*4TNnTR$-y}pToy^Zq+kL=6qdW8I}GEonW2niHLJC~o61}HsL--yH;PuX;k(gK
      zTsQ=}-`04`)h*LW;~c|;v=QsA@}}kT?&};zFs0xXoFT!Mzw$^NGHKa0h7&OgDCs@j
      z6kaL+_;AW&%!HoH3i2q>S~2fQoMv;{kg95U{DErL4Q?|`<_nRW_FG8qH3e5O(<u>A
      zX*JcMZMxW><^@A_oIpzbq7nW#6*?2IQ6@CwIm2+ojWS5&HJzY&AKJ@!DJqaGCHJ<1
      zH!(}zu4)sYi|%t~Nb8O)GKN$62&v+FwNhbSz}`{t7U)E!9GZ(OHEGL`F)Xz%bu%o-
      zoRWQKq+gi;l-WXfo=(#u?MP^L*>V>x&#VV3?}35^+#@lXG*O#8SbYA<3`cF5hu*FY
      z8gg}plY7V_P*ZJHwjGx@yK9Qt3>9L?VmF+aqayd}BL&M?VMy>c!`TB^Qg=hANoo|G
      ztt~`1Pn1ElTB>5Tj}@%pAyu3!ifSy@l@{?#-fmg8yW2TNW2#uMtv-T7s!;%OTl
      zkHDThRj`i73`e$Xwbhro>-|NtwqaXaqRkzYFHOPcP-%yGk2DqwqVv9G>n@+KIj&7D
      zeK(lf;T;o^3XkH7=e9hTYJ{uJ{_6BwMJI*2f-lez%}rX<c|R16Zl{hKb6ZeM1%{xc
      z>1Cbf7-sjBwPf}%G0j=vYy}ot3<J6;HC;Fii~53;)Jb!PCSY3%JfSUHu{>Mji@Lac
      zGU7&=5sTv-U0q4K&nYBvf6-`|Mrrzz8U4FPPw`PkvVTDN8zaAA^cVV{z&QP8=?OeS
      z4i%h~v*J6^^}az*;Xg3_J5Gh&o*;#%(oN|Y;bokrXGUB&WO0_pDS9(0QFlnD@XGy)
      z(do-OIG@DNUErVu=n^*GF~bF1l*)6sgjb~=x;GBQPDinB2zw=jrE9|vx8Nr$L$Dnb
      zSp@Z>o287nEqu3|G$Y<-g@zs6NJRX;?MqV@uj36#pnD;na4SmqE<h+@P7>%ch-4(h
      zx|6_9A=Zxp);#V?7WL{r)_uu(kH(_96q(&CJ9sx0QTC6dO?K?CL_UzC_i4oBsEiND
      zBO`iie7qk<;$;&7jjL3jLL>D{pRf?x_i7TM`ef&kWmAE@e}qq@xSUL&08umS3;I)u
      zo(+ooED<4JMTX79ZV0u*_z-K+5Z42QI=CcIKieb3jcAA_g=hsr+{BlDh~oSRkg+GQ
      u83le#z!wJqskz0+_*FE<ZvrtobQVR7-ky@4MJ0Vtl784%5<^@1Z2u2Vr?LhB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/UtilDelegate.class b/libjava/classpath/lib/javax/rmi/CORBA/UtilDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65077c71ac30056765adb4150cb10cba1b2b97f7
      GIT binary patch
      literal 1285
      zcwUWE%W~5&6ul}XZX5bYTA+ne%A;Vjz|$SzRS9%pCX>w6Aq!Z^w#IeGwmh;-l3!!N
      z2k=o0*UF>94jsJEwT{nyoh$3t?;k$_;1pgNutMPQihieKTO^U)>0i7*v%knF{=i}u
      zQppThC9qR6?3kvZ-S@7TF9~e;Je$lnZ_RF%;dHqOZJva)n7BArorQruj(wKNh^M&$
      z>jd@{r!3}zC0w$_X9CUZoH+r<{PurYm(U2beZjE3A&m?6iKao!1c767TB0t7&OpCr
      z$Yh5H%%eFYaH2QfiD{ny)uby$l!oYKM0uC{G$wFh)-t%V@Eq$af%TZvKt&<YGwX3~
      zM3i3_17Mj}tttcVVtW;|$K^RM(m<2AozTpk<dP*C=$I8*D~x%*B}2pB8>rYILa|J<
      zN^|ORBNKhL1Pdd~AqG^SI{~XMTgj{k9HMiPvT??RoFC7<C5eXyJSK3oz<b;+{L86_
      z*81j1&`jH(>SGyP3O=G<%x)H-H4>3zQ+!_1yQ-vRy=5r7U&ySGIA2B+eZI4kTQ<0>
      z0-kxf6x3gIxi&@92_83e4%FM5f9Cm|UZ+|9W4gQ$K0A+MoLx)56JD3>1_1)MpnSIR
      zint98+#9%CMZ1Q`1~e<k9oU5OI@yA4Wp|)eVYFdaL-r842lo|s9}bj#01uTtghv|l
      e2$5rWqP{$ZXUaaG*^`-l0WXn_#}L;Qu>JtY-fRE>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/ValueHandler.class b/libjava/classpath/lib/javax/rmi/CORBA/ValueHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29ee23f36c50d4f87c86db57f9cb2aa6653989ce
      GIT binary patch
      literal 616
      zcwU84!Ab)$6nv@L+FG@(9z6-d_R`?FAlMagp{3AD58l%5V@=6!N|M#;$?x*u2l!Fq
      z+jX%8Tg)K?VP@V;lFzUA4*<A?lM0j=oXy3PSaK6f?hi-3Yd#Sw#XFIN3QYxe88k8m
      zS0ah{a5~4CW6+AwjRwI87urgv%}a2@;KJ*#n7$I$cH3(wV`pR%bqjHt+{+k!9b!*d
      zWN_}a``ScY$Hc@WB&x3yhfBu`E-9PR`l)p~9tdL}g~E`*>4vEf45|i2m{(!&=KWg#
      zR9tA|#8e><l11t$7>c+X{PFo4{=bMtU#W>;q)_rT8$-$K&qg|=`%+>?i8|h9;#Pev
      z*B5=Rw)PpOZdGW@hzYrkb!ujKD;2pl*B`u-Y03;3>_E24^!|HLhU_0yU_Zwy)N(w4
      TdX9&1l;bfpNI{0Qm!S0xJvg{*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/CORBA/ValueHandlerMultiFormat.class b/libjava/classpath/lib/javax/rmi/CORBA/ValueHandlerMultiFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b2d632a8e7f9a249f94d0ae6f75b3606bcaca5e
      GIT binary patch
      literal 312
      zcwT*w%}N775QKZ;&uTQ_1H`k*#ldq9;tC;$gasG&-igi9VP+?^Ga7s}4?aL1D%g{F
      z)k9y3s*kGP?Z3VO-~k2&^bFjs@g28TJlp5$rF^mtx<oVVULDCIxyaKX9%BKg25z$1
      zI_z3oE!VVC_1wVlKZJqXmf`}p?31sf5c(sqA$jA_88{h@O9TB6;Yf$1fydE2NNa;{
      ze~FtQ5toi^mEtDFBWE%{)Zt)j5=O_L*)l1|jpFK%WJObUiW~m1=|1OmfOgP3)35Y&
      SWC0hD$6i8T6$4jUhwC2>O<AD;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/PortableRemoteObject.class b/libjava/classpath/lib/javax/rmi/PortableRemoteObject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b74d1450c8ee6545367d216be5c674216633beef
      GIT binary patch
      literal 1607
      zcwUuL+fvg|6kVsqhNh8Atq6(;a<LR_K~az*6^hI-c7UM_&gfGbVhPhGHBA*iK)*-v
      zLGZ!h*+)M?|HE;g)6iS;VrSB`&(6x)Yn{E%&%fV)0GP*ygaE_HvHDIuN!ev1wQJdq
      zS}5szdf9UHox-uMITE@U`Zy+4Qq5wjo@MAh)Ju9%b##Vgu1S&I*;`-pCE9TDY5I0W
      zD;cKYtTF`S(+3P)S?f^mMuZ{e_o<Al=#|jJFkUoksm^Mb%$us_SoQ}6eduS16m@6I
      ztU9Wxk;bWbuIVA~*oIk5Pv<&qr6pWrnEf9+VK7`*a0MZT-kf3T+qH5*xA!@oA)2!^
      zwRE7`2H(5M(28qbetx3q700m5s)Sn%gF+9lTd&l3EhC8A3I@?F;SSa5z{#XxOu=1@
      zGbs8=h2&ngDdzfag45!_og<^lFxt{NKa<oeNwZ8-P)&NNe7GZsVp_oz?vYVPwW$jX
      z{T?8_tXef&(>Z>Oc9ttRWU97py=PdAd)w2J$(Gb=)xU)g7=}B5S+(jkPLr2hP>{kL
      zZ;*$8<kmIpTVj4RedkTXLQ8G#&&oTs0>gyQDSI*!((Y{&*=;Ld(~jyj+oU~Ju!JWx
      z9re@ODpyJjJvFnnu^hLiAj3N@=fy#88ho~f{Mwl0MKMNG5~Pby_m7V&MG{5)VF=T1
      zj#mCtqVgG(3q-#n_J#HV4A8$!E3k_QUf_nv0$qF}DH;+n!%e}nN)cyL65lYKxWLF6
      zMw>i6Lc>eKzap;Jf=j96F@Z^1!+dx=tXcYw*NmJZmY6w5Jcv$l6<Xg4!ht#z3Csvf
      z5zJD=ZPFd_P%lx23y?YWIqnBM%pVE&sYR-cq+ky7A!^~97krrxsSktr+#n1Ig3~sc
      zNj!38KE|SuNdwSAyDVrI+GVZ;JgmRkB(Ay=Gi{ca{VYH8TK-MAKR%Wj)&(;A4@du2
      Af&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class b/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ba2d6fa0604f4e56d44f69351a1f86d84618325
      GIT binary patch
      literal 2635
      zcwU87U2_vv7=BKZG$AZd3oX>PSWrrmHVsq-rKJjmYHHd7fg&L4HXPb5>2BHGU<)eZ
      z;DzX@qvMS;il8&hI9yc4(vgwD8!!ARI^$0epL3F?Eu@&4<b1s!&-=U|`Sagj?*iD4
      z3t?0VY#lexnNulu!b*8wK9%+IhX&HUc}v=U*2$fbexI519d|m6pg@fhPUTH|G&M9b
      zE^~eu)dH>hR$GwnIq9aBvk(zjr)4cCm6fh#=B@MQNM6#gr;o$Z^(@CelHMmE`UO_?
      zI=1JVwm)p<3o`Wa54Y}I`e4f%fwj_Bil=(5$ua3>3zjcE-k!)T0L=QXWsi2zc1iYt
      z>-bL2$y0EZw-}f}OQy(zE&U=3*~}8?v=Zsg<t^LtdjtZp_^?2**EuDlSdWG<HVABd
      zv;_l?qfsC_D*b)(v{}ge0*$fwBEL%=u7E(ZfyYoQuqI>Ka<DKlBHhD9x@t2{j%=Ca
      zjOWs2b+^VBMF5)(v|wEXPYJ}dhYn_^gSa|!Ixig+=!?>0tAVYE34{rgbWO56Vh>Xq
      zuRycHn=r5%Ya(bD*zzc^<wPi@4g)n{MuYyC#mvkz^1t=i6-6hW3FGM{Rhgakd^us@
      zS?my4S&BlsK6Bh!DUye;!gx-gL0=bqD_^=k?3|IdbzZs=>|$xQN3j##isapuDXQRV
      zSn0fA;6>~qw4770eQnj#1(gn?cWESAP3i16(1(`<R@ic?sKPdiRe&DFUZf55E8!ro
      zCc?<D$`;AVT*0;c>HSkVIq9>}7|NuorV3qC<*5qIEK3AMgu}10k)}V-cNvMW1dN<3
      zO<xwXRhjp63H?Id(_FL+%M0T;yLo<8q=(8cs^4BSFpQ&Nye_bQnWl^4B;GV&Vnm?c
      zlm7ln)1p3Bp^jCWPU4gSsdU#a=q{Qb!7)dX6P$EhF4bNs(1zuP2xF_3XA7p%ty|1S
      zafWuqk4G^9Ck%U;ah%m-^?`XZiL<JXCMJn|kL#K&@pz?(Dg{Y)1J20!($tsGFp0z&
      z88f}H;)L6aw+s|i)dtli6P0xeZcg@DYU*rUwnICVX>4MT2T+9&_z%J%xB_a>tmHpX
      z6%2kkG4#GhuTeGexK<;AwOB{VI-WYYs!wzd_4ly;XEgn&bvE*MHLU}OsBw_Cd+~&R
      z0X166`a_ga78(+_u_=+LeeyQ8{DL@lZF-knFjq^Ez)}7lqv_+=fD_uJQ8a)QwrN?8
      z$&&HEC|k|7uWb(72k&6#v1IM@x6w6l1Jy^xO#3W)dYXgR5fU@azhUpLU|>h+25K9E
      zbs@g(o5jo7%OO!0YQA>=pN8O!_EW>)UnwE#q;Ft^1m<`v8Pq81F^)!@VTgHbX6?ja
      zqXQ0haqY!fjrb5LB&rf(wHv@7t=Eu@AsnFfdcG8QA;x-;uK`+Zqh^-77`-26Qi8nM
      zfFryMQJbAd`B!N#$kQ>+z-N?JthN7yrnaV8oVbURgNa*+|ACcBwa(%VF3Hj{Ig4C!
      zrp)+ejq?I+yv^MOM*9xqe3wWr^6fn&a7o9LDEcVJ(~i?R9<>`KI#o_B7=xvgJx+Ft
      z`MJUuRU+Hkeuwx9p}@_ydk_N(S3AFR$m>f5jOXP1Ie7B{gdehiudu{EB3GZF37_)q
      zbNc>*%zvp7wiNx85pIJEk0@5tg3nVG_w1t*t~p98`And@$W=>VH|wHN9hy34aqj)@
      z%T=OD9q(Sd|96qV1)1bhnWU0wT)>=QD*<2g^bIjzC5CU=d{@zmYe?cctLi)SaP7zU
      ci`dPS>$@LQ<Wx0kqt1O5U*>lL(^}^Ie@Gr~g#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/rmi/ssl/SslRMIServerSocketFactory.class b/libjava/classpath/lib/javax/rmi/ssl/SslRMIServerSocketFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9df26d505ed6cef9d24ca9a1bb0b4b430071d5b8
      GIT binary patch
      literal 2688
      zcwUWFYjYE26n@^MZA!WnXelUZL#bGjO=+a4T-qWPs07PJf<?;BO<2>d+icxz5d4Vf
      z=;%1(7afqx=#0Y`bU>vb%+xy0lo<uDKSO_m_`JJI5@<j=vw3glJm-0zbI#kJ|Ghp1
      zU={Qb0s<?>w4>Uwq&;pV3k5ToE||Nwr_#E8RJYSs_I2GE)Uu9c9}l5MV7@d?np!@W
      z+?g5EvrY(g0-f%zi{Sbtt0M?B>v=6>>PI#i6QevV8jfDz?*5@NY}&Dne6E+FeA`{N
      z<ycwEq+w%Tr>|+~d1s*Lj0%Vmfw_fyV{{IA7s~67ccJu96)p@=-<LIwyy0vR2*%>W
      z0yUegBYGH3SQtXH!171IQP6@#0^ywQY}Q}Xil!s5EEcceP%Zcz2t1}h!CZlPLq=ZT
      zQ5?_c_8xg*fu<oVtC_=^ZOFC1S=Z-s4I_v)1rf}X7)uq*LA{(UQxNiIPbdhZfwyr+
      z4Qh6m%Kzq<im0(FnW(Zg5+4pTQcOV{D*0w@U32tGOo1h_loxuI2)!Y633QZEQ>Lls
      zG;_et6~~#{EyuF@gkxCwFcN4BA;}7HjSVZA+F3fK=%sl<W-S)NYJs+gW-W{!Jfq-Q
      ztPxmL(48&S>Tyvu8RV6Fuuj2x>DyfPE!C$y?^DnZ7SsZs@3^m6YhojAl}%VS^${uN
      zwBU=i^x-wj)YR#36gAlcEwKu2UJv%hM`St%6}*700u9;m36dVLZH?^^f5e=|*-Akx
      zGbYP#RshoF^|oVY2s`e11UzR2o3NQS8ovxbgBs=@AZ|-6UL|@M!`RCLR`3e;3Djmy
      zE6<`|=y%e6WSVoc)u-mU*_yMld9V6WtuQK^+ucaXo4l&vAPxnAJ9n58dCq!DTSYso
      z4;r%Hq7Q78ZpjGCsCbZHEou;uy~igtAiL2W*?}Cxvcui69*vks>-k*uaFl=HYgjOi
      zrf;$Mvg`9We;bJjY(yQNBi0%$aZf;xNXdU2BT9sY>Q%I=su;O~=oPf9!7Jz}BQ?<q
      z807C(qNdPHKZ&MzzF3YYecVnT_Z&T?Pq&MkkdR%3R@;c%brYe)3|iFSBv$Ob0A=qD
      zB=%j!${#M%yP0Y%N4FojlgxpA#5%~?Ax1w;iwq-WX{9snC{|+3Wutl#eKv9?l@#tw
      zY8h~6QcbBfUmNZ`#XYG&x6Art?nup6e}l!5NvxVi&vx}Yw9lZSOOBIxnnToIMkldW
      zjvbTe?YdMF%cEQ%kV66mhAUFQqonvIuXc=qkMsZKTQ22xFI<W8YNl!<=`<jQ0X$Dc
      zA=|+h^}J87Kk*~PY19TUCZ-`I!;UU~=jD#1$wm7$Y&q?(qg+Stu4^uqh^o{AI6;zc
      zlk!Pw`wsWtrMB;p<okRuKfpSCh+ceDLAJj{wx5--jno>E#EaYuP-8wCKG`$0miFt_
      z8K(Ot!fN76m(UDi>QrLNWgG0jz|w2&NwoG%V#p<UG9X&jsn75HGmGgbtp870xu;kG
      zpOMiSwBjr!J;w?-PY!3X7GG2_U5{OE2g%t>ZY4x{x|;$^S<~3#GacmU^#FCdiCS^V
      z%k|6C7%r#P>!yoT>np1Db=CSGsfroBiy5ts`8_eO6Z1w@%>6jvV<vsfTAA>&ICbvk
      zPZiF!C1*ZMzVj_V9S4GaUPZS{?VBQUA;mv@qR&;HON#%uSLS7#=)E>k-=^af!jUHJ
      z#0Atu`XXgc-R_h13s<*zvD>`pujF@|z4059^*f)fKd^!0HvCD^{;Fu-13vcv_cMMk
      QMEs;BOEbatmo`WK1J18Ia{vGU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/AuthPermission.class b/libjava/classpath/lib/javax/security/auth/AuthPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54e75dcede2fa62df4e167180d24c4520f30d94b
      GIT binary patch
      literal 530
      zcwU8&&q~8U5XQfaG0|9UZEbIYh@iG&@LVaVAP7N(O7Gjav@6L5@<;TpcYPF31rI)e
      z4<*iSgGDX4huN9kZ+`Rbetf>Y12{s<g~hOa%kTKTpNX(YW&YsvA|LxF6s|-X%Pf<L
      za$z%UYTZnB$}<_xBn-~6R5I@|H1`4{jkp^5{XCUw)ZHI2*k{R&@UVd83KrooR0FBR
      zWf2cWdd-KCV5kR4$fE&IrLN0EJ0Hu8VJG<CXqVKA$A<LB1H<kdXY;&jlXY#f#^CZW
      zCo&oE`bm+7;#_J|jh}-LHHE&EQKw!OW%NdhE>%6ME!v%SXM&|ybMH~~%;_U3pRht%
      zYpOy8tA^rW4OL=jR;^@R&;&ihZFdePSpN-srluDI+nUP0VQvZ2S%Wfdal>>szW^^4
      Ba;yLV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/DestroyFailedException.class b/libjava/classpath/lib/javax/security/auth/DestroyFailedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7944f18966c499508703f5a155fd67ac6b4fa017
      GIT binary patch
      literal 479
      zcwUW9O;5r=5Pb`UYDG{GFP^+XH8#eBCKwXGI5l1{y)R``)|A$4w+4QeClU|-0DqKm
      zwltck2lp^<X6Ma&Gw&a-ZvalwwNYVkANez1c$o-uCH2zdxt@8qBGW2ej<}4)^llM~
      zCoR*&hQ-h^d@trn<b5?5>X$N+ddN`i^#ca$CY=fgRctm;L!F`J%S7Dg^NCOod=d+W
      zwx5PP4!Dx0E<Y_jlNrOY|No^14Bejpz0_DMnM8wrVC;8{eUrhSi!9?&Vf%~9;EdB;
      zg<>Sl4hMhxoR~Qrf=+~a70T!|iZ)eegp9D}uCVb^v>l2LA#e^07uce#u_h626B>bL
      jDKI3a;nv-w6<R+Pu84VEDD1CUrGm+J(Jst8#mwF(bzf$&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/Destroyable.class b/libjava/classpath/lib/javax/security/auth/Destroyable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbb944150eb16f4b9e22c685bcb01bb63f4913dd
      GIT binary patch
      literal 246
      zcwT*uF%E)25JmqWx(aH%fvsA&@eWFBVPavoEE|OoFt8Z7nuQ1OP{u)xv2vQtpMCT4
      z?~m&ZzzSmlhcHdlMb)x2x+-GZNLAUBT$|Dsd85MA2)Kkv3&~VvN4X6Xqb)&1Z-&sB
      z&G!UvQ)_d!ah{a|1H$5uH&AhEqVEC0kIT=OiC)433wL={XcI8X1%4VWTXT=VAlh-b
      WU>7~kf|JW{pEn+SPK04gVDtpCC_e50
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/Policy.class b/libjava/classpath/lib/javax/security/auth/Policy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50a7e6fd9b255bffe6b34367bda2462c161624a7
      GIT binary patch
      literal 1059
      zcwT*zZEw<06vzJ;x)r)Q5FHct<TiB_bagSt7hM+3bTJMc2@A<yXi~Z>be5L1#mKkv
      zA#p|%U;4riWjwcSz?s3D`*0q9=YLO6fB*UZ6Tl93WTY6%XXbnJgC1~e;M?I)HwR%?
      zZ+MPv4P{6SdEwU`)9vU-?K5tL472^n&9GdboNQ3suI<|49z(jKwHTy*@02S@V@`#P
      z3`4GNyZqIl*XI7Q*>*TXq3&6x(=vTq+!Lb|cI|*6+u>m&DZE<Irj=Guz;zkdE~sw~
      zgOK-BETBk*2-ZweUz)Dj;XcDkLQUc?x(yjO7&b1e`h=DS_j`5_*q)m~PQfCU#3Pp(
      z7ApTTL*I5ghSpNBikmXl7)lc>s#wPcb;;^->)n_ybjHY$im{W>SuosEF@sr#RM2Bs
      zn(`=WYcOu>T4h>SwN?gO46M&EFTTa7D1DsQmuEHy(a0G8=@o;}^aj4g4Q=96_C3d;
      zT=6Id+2?P49&{O$IPt(1qcImt+ZGIRJ>`9$TV}{lrFH5;n#P>0q7`(Sfh5L`ELple
      zpq&Y8^&HA4I;5b|s?ZKRq|isWLMJs2!hD3#kV8HJ98rw$mA>KXVf7dC)gM?qDU{Ap
      z{)&~)*!(zx7AO=jXx*jydo+QMM{tR5w{a(eZ=sUF-;iAhDHFV2BX})>Ycag~1)F2Z
      xMUn?Rql^QhKPTP`lyDeTD8>|2Bl!~DMJ-0Zbq#kRe(!sfBS_oPs^dQG_zROD`g8yQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/PrivateCredentialPermission$CredOwner.class b/libjava/classpath/lib/javax/security/auth/PrivateCredentialPermission$CredOwner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46678c4444b59ae588ed809fd05b3e361e18d0ed
      GIT binary patch
      literal 1186
      zcwU`STTc@~6#h<cOV_2;6;Sa))e5~}SE4V7;iZWQ34taxB>Ln~CUnTM#oaAl{)zqu
      z9yAe5d@%azk20Q_ZOWy@L?3qN%$fPV^PTU^uixLk16ahOg%n|FR~(49UL-sHP{r>&
      z(T}@cD^v#}md#LZ%OF<5Z^>{^MUm<SWu4r36Ufj)hEUXS&lkatx3RS=JF$fvVbWw(
      z&uhz&(dxa}@+G0LAF80E_J!Z{MHCU-wG((d=EI$3!uasky4Yh>?x_k?yh50-j9wqj
      zR5uBkW^Y^CNTcAu#snc<scz;$xa`2fn2xSE$YYE!v8DpK-rw7j;qyeLyVmOne^an>
      z-Vc(QxT{!jQt!X);?8pNbzk^QGj+O?#JA<@OPgigaBvg1Sm=(7Tj$)GtW-zawK0o3
      z7D{JEk(@cWhU=R2o`bR`EuJP#%%$GhDGbCA#=0WvY8#DttGZ0h!8|GiyWQ)D9r;XY
      zV@iK%zM**u&T7E@n<ivr!6SJ8=prFM^bsZQD9v9MDY$x^{F+@oOkT76*|@}~4o5He
      zMw-`&+E<L%>PINn7LMS4=2Qxk29^P+%nx}Ed74LoDwyJYDS=@cR{<00GGroMD8(^*
      zJ17(JKE<n7{|WktZ2GYF1;zRg&@pC?ar*<NIpHRWyC#v%9HtM4GN!d|@?g;-%Xowt
      zdW;6IQ|8Q252bjxk2x+(dKLo#PmCaNdtCPzRb7pjS0@#6`ka;wqm$enFp_?610K)t
      nvWuGM(>d_UDR6cOE?)?C&x4y6fK#ZO{{kLBPff!ccnJFslQQ#|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/PrivateCredentialPermission.class b/libjava/classpath/lib/javax/security/auth/PrivateCredentialPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0143ee8e8b05a07502cf0ae4d5ae26d53c4e0e10
      GIT binary patch
      literal 3273
      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
      C6aZ!b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/RefreshFailedException.class b/libjava/classpath/lib/javax/security/auth/RefreshFailedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4968d0d82aafcd8cda6520e1158d0afdef3a7080
      GIT binary patch
      literal 479
      zcwUW9O;5r=5Pb`!)rz1XUOah&YHa+tp}iP6H6FzDzLb@&DJ^NY27i_(5)b|Wf0S{y
      zG@7Uf_b_i}=goUF?;o#k08Y`fP-Ac&`4eBdxd@9)s%MuMDsu0{LniWQ#APg|H_K2g
      zluQ!~218f#-Iymc_p8BRUdlu&kD=Zl1PsP?Iu$nR*leN!lcDX)MBEnhiOBBxBo+)E
      zKMi>t@J#Bu`ZQD|bB1I8|4R)SdVT+Usj<prG8+y8ZNH=KTMX7*<T;;}w!f$h_BbuF
      zP>iJB;oxtd6FrAR(23BmMj4$((W2^{kP$YV6*gYVwoTC{1kPaK0$Y?d*CfJiLM_m$
      i1UzDDuIU`D(Eh1#MNF?$*k7|M1)c4pQ<`_nnY~XCe`Zer
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/Refreshable.class b/libjava/classpath/lib/javax/security/auth/Refreshable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3005e5c2f47c79585e7b04b3296c7ce4086c6419
      GIT binary patch
      literal 244
      zcwT)@%L>9k44kdiwe^92;8i`i_zhyOf`SKc+Zt_4X=U3={WTAMfFC7h6~vQ)kYt$2
      z%;R~x16W`v;RuXVebJ37DXL9UU6rn@SZ(NNsEl=(k%TKSvLu!1{G`@lN>L@?CFQa<
      zhH~Cplj&YSnvd#z?*#l+6VbU!ioBHQ3C#XD1v<&-@D;FlThu0^fMK@($uqZKIs)th
      YTMox-qXQdLqRY6)sLRvm?pp>1FKQn>umAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/Subject$SecureSet.class b/libjava/classpath/lib/javax/security/auth/Subject$SecureSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..682125eeef678301193ef76ec28643a4fd85f317
      GIT binary patch
      literal 4086
      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
      WzJ#B8xcRPh6|Z=!tj`pF2IYU0HPPMx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/Subject.class b/libjava/classpath/lib/javax/security/auth/Subject.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c64e0c9714afd90cda2aa4a28f6d2fa56d46d62
      GIT binary patch
      literal 6981
      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
      Ouly^)LjHdZ?*9Xlzx!GM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/SubjectDomainCombiner.class b/libjava/classpath/lib/javax/security/auth/SubjectDomainCombiner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..737a678b6aea786f62abdf282263dde97bbe0b9c
      GIT binary patch
      literal 1805
      zcwUWE*>V#{6g{oQgT>fpGsX*x35ymBVHOiCvqfHT5XO|i6!1Wer762X)=)De3i6P=
      zkVifuPkBwMf?PmB@#F_SAm70kkeu$3CAmN{H8s85<=lHu-|kOe-hKcuj@t%80*S}g
      zGwXTAvx`+%`Y$q8)nCmNs>_e<qCf4dS+bII)|O?(b`3-Xb}92r*{ZB$ZfP3>T>>Lo
      z+Q8WACt!F1p1{F;hj3Yet|?iO{$+t9@s5^>C4orJDcLcE(PN?;y#nEQVyPR<(S(5=
      z0)2UgU#PAv+wL7}xoivU$vZ`>ykxmj?d!sbzbZX}RHuMjD`KKXF<1-O@rU`X<uAI9
      zPao-20=Mk828nGg3>*;Hr;Vz<EN58S6T6g`o*%;idJGH;41J9vD@FO#DraLjh{FaB
      z2@H3r(!>#r3iPble#4c_?2ae$&Bz7YXEr|w473Th6UTAVzzG6v@iGxdg3S5OHP^LX
      z2*fv;YiXwj6|FJ@DS<<s8Hyo^w24#51O=$(C^%KO$RirrETG}t)Ml0AxQR13E6}Sd
      zx7{`Ac?4$ZC%*D*s&h`c9Auy|&YPIPg#aU0wmdKISS8i{gPRz-q!yKSyQrFXQoxP3
      zPw{(FXcMA+OC*+5=S-Qn1m3r>RVoSe$G>qP50u?i6W8z)FN-ICvGrA(S7M&?jKJu&
      z?W-<K)phL(-+&#=POemJ#xqJ<O``X=bXc>u=@)z2(uqRypQn%<7dGFN!*zb!zbdhS
      z$62Ya`_MP9^eKgaQNA8w{!#vW)FZ-&Qti7D<G7Q%S%mljvE(|;Wa>5g{^l-(-5h&q
      z3rr${DSBKY0<b@@#$N0L^h%+!3iMN_F~wQRx~O~g4g>esF}NT;VrVjw{0Ds-IH0B)
      zM#ArL^bL-MpmnJYOoS(*e<G27hvfZKfAmZZW5IMfn9dDG*70Kv*?TXeqCcAY@W+4u
      zj%^S~x%H*Tv{79-M&;*px`r$7k*p#25z~J)%9_>V4AY)viE~W+I{S8>SM3JQ;U=zP
      zfzn$X7g6B;9_1ESHtymHcRuG|@j%mYou#tS1|6@6IYS!MYL2TAqx?>*c~aSn-|#br
      uN#{6D6En|aStV(~N-)ww{ZKNRP#~(fY9`*Lg^zS#Gcc$J7ED)JE&dOn3e(>J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/Callback.class b/libjava/classpath/lib/javax/security/auth/callback/Callback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e3a344b7bdfcd70ea72fce3ff31860ba14a5ae3
      GIT binary patch
      literal 126
      zcwRg8Z`VEs1_nb0c6J6PMh4Za#InQ+{o>T*(xS|gO8vyrk_`Ri#GIU@#N=#!XDEZ6
      zfrXJl0HjnuCowNw-#;lUHMxY5fh#z_v?w{%Ei)&Tk%1ScS`Va<jgf(oftdjU7#UcB
      IBohN00F6x`_W%F@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/CallbackHandler.class b/libjava/classpath/lib/javax/security/auth/callback/CallbackHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3b4d1f8193c4966d25943b98291ee97ba2179a3
      GIT binary patch
      literal 316
      zcwUW<%?`mp6ot<%I{qW!AqX+C6iXo_5({BtH60U5(>Co?cr^<T;Gx7+u&@w!bx%&t
      zckj8~FINCPR2eKnXD^Q8#A79s$kk^q620S6c%CEVfe&BHMEDy|MGRR&ElqGw_**`A
      z_DX7ky?gqEc5^-Z3pi-42*uG!s!+RuA2SpP^(Wa4_;mhp7)pfxPv+8(lQ0Y-tu}A`
      rCvJ``f+Uh^?56)Uz6y0yuuULjkPexCIoL)sqik5nqi9swC<~Pb;9pyL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/ChoiceCallback.class b/libjava/classpath/lib/javax/security/auth/callback/ChoiceCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17f5201ec030f90ea7d7457288ac9a6802d5af8b
      GIT binary patch
      literal 2286
      zcwUuNOK%%h6#lO5#Ev^@g7a!>hfW$o{Ag;L6ey%=NzxWf^C-AYNy2Mv-#Sw!GsYgb
      zY1tyNX4@`MH^71gk0zEVN`;Vu#10`L1Pg>JgarQqIQP!fPMi@E3*WhO?|FRZeBT*=
      z_xG1u0FEISgpVP0RlBCGrz<>PE$jA;v{toO(|OG>a$5ea^vtTI=lP8L8bpAhQ#hmz
      z%`B!Da#wlY4x*J|_`k!{1B4j5WdPkuXL(uI4E?5-GdM$Qscfy4Y=+2eBSY3M>t=C+
      zA()p)DhypKUia+<enqPqwgZ@fWf=O`=s+(SJj)Hjsas}c$}p_!yg>KM4B<-soWZw3
      z9<3*JQ@2ksB;$LNc;wA2Cl(n3Ggg6z;YXi>E*xO+#}kWTFdS46MU0`X!tD!gbv+)D
      z9qUIG9D*ugxn&Tn-nd8F#9|xSA6BprN)V6HwqcSn3|`cXsdBNp#!dU|dY+d=i6K1B
      zaLDbF>U2}pE2>qsRqKkHv#MsH62=hXqKKGCkW|o){bF}SK?gb+I%ai~&sW!SynNAN
      zEi!8n%ZnN@N$>7qz+Tk}`{?Zd&=zsnR&2DXJD%8Ew}5h7K^wx<rQ(h*^~4jNs^}!6
      zGrNUB+z`=ynh?U=9(~Arl13+S;GFV8#w_r4Dk`3F`hH5mBZx>=T{mh&v%Nso5?>*g
      zAZ8dw8sILOm1?PEmC16U#LJopu!E(u4Es#WRy9YdVN4@V@rxeu15`ED60Um_f9Ek5
      z#O$sqb-JNo9w$iQ1~-fLY6uq?_Uq;~n!keTOkM~t6T=VB+<6P)B6X`d*mPAl3cMTw
      zslR`>hpO4CE)c3iVPp{(%aVd+tWa{TRN^L0UyORWhc7qigz$Jx!Rr`f2-%i%NfWD6
      zsadO9&hvA+P+8Y*0UZ_bFh~UX;X@08^z#X=(8tavCPh9;(DF%gmQP}mo?`sE&`oO(
      zy?sCtTEr(ZSwn9!RYQOBNDTu6x1kIq?_zN44%+WwXelyW!^r*Qzy=b@p1=lDpUIG;
      zv>rx?*0&Krg&^3Jv`U|X>lnrjBykf@;2j(#i{nlrr0E25*CxS;oq+6<I|14+cLH{R
      z?vG*21)HX)ux}w`<Db?6w93QxWD><OaFZ}RiKjfA2b-PW_jG<5Cp?@JpENn&_H=#*
      z&w4ngnw>xNbe_OT*ZI7p80bg_z6x((l44ByqYI7pJMH?MH1GxO@5*q!j!V7O9XL&Q
      z0>yKfasyv>1NRA3w*<@6OOZ1*oV%Y)QJzME2(bWsO$ojs32jsGZ+9f=t0(D`0uxD|
      z#|s{%Pc}FGdymq6;$MW;4DAK^Lo&>Yi#3|sMmV*J7jL<$T#%|HyyMMye<V%)M9x3s
      zAb#0_H(JLVb@k^He?@yzeoT-=W9KPlD7E!4;Y%W+fAS-Yreb5;P-vBKqT==*vP+Rm
      zHC&Eu;+0LjDs12Nu~=&B&Obj0l!MJv^DANajmGf-4&Zl;;143|0d?<B%;7JIT6Iv=
      VQP0a+5#1ff8$_y)_HW9l+P^-#*Y*Ga
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/ConfirmationCallback.class b/libjava/classpath/lib/javax/security/auth/callback/ConfirmationCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2110442cb1146eac023cee597b850203cb7b1679
      GIT binary patch
      literal 3748
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/LanguageCallback.class b/libjava/classpath/lib/javax/security/auth/callback/LanguageCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..683e182573a6d6c4fc501fee3266b0ce029ff221
      GIT binary patch
      literal 664
      zcwUu}&rZTX5XQf4OOaXy5%BNDg9%`CV?1iO5IHq^z|`}$ZeX#}1X`m$l_nY!4?cho
      zWt^4<5+o*GcD|kc<~K9hukVjf0LR$PLt{7`h<owC$I_2SDthE1j{4jeLEs7hmOEnD
      zi$zbivqT;SLn$fY0X^|cZy^0B50hd4PtXjo#862AD&$=`QX)`K!V4sW8HD5~QFc;8
      z9I1diY3`I>&(u&wEe5^ba2bqtcq1+7DB4(t%}{jIP+r7$o*Z3Gc;&R#71V?7S<;C5
      zYRtf$f9*~E3u75M*?`sh?+F`j0Sp^93b4rCo4G6X#-fF+ZWxbz*-<HRzT;6+fjvU%
      z(2zr(l$NmR?{w0%Go34RJE6!Z=9=$VeIcQtM5jd&IER4_)=1eC6UtbpNK>Jj0b1lt
      vyk_&@4YhfKOEuRip*C@4ghVCdB+WOmm9hAAm{-)ErzkT`dJ6~HPF*`c6jO`B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/NameCallback.class b/libjava/classpath/lib/javax/security/auth/callback/NameCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b71dd8ad83a34f996a66c0de82073728b2b25aa3
      GIT binary patch
      literal 1477
      zcwUWDOHUI~6#k}^nKBG5RKQ133n=t~jPDnQ#GoW34VqvYiK}V34g=F^Go2x5`~mKD
      z<-(0Ix-bS3wTULWbK#FNo_lAQLaD~heVlvF_kHJafBpXY9l!<5DTqnPZx~y~w%%k_
      z-?h9ay5W24deyM)ic#IvmyH@*2rmla5(c@uZX1rN->Yn}s;5AfaQ2@dZGeP?VF6&(
      z^%dq?hHX7HDmIfKH{5!y;YmoB+6*h6YdPkeg#I=5*zj$S%aPD$ISoHN%eO4Y^5!Ls
      z<PHbs%M#)X^);rV2SXYLke1Ms%a>J<5Dg<p5?Yga_e1hj$#U4TU#l?pL7*#Ls#6|i
      zgS65;G{(Jkt0|#a`tRCN4%1x(c9*Q)-LA5RXVsmif|C*^+Fnbx%}m3-?V5g#IbP(*
      z6FRLS%M(gcLU#_-%WP*joXa03?W5>38v3A8w0R(!KTT`s=T8a&@7W3(G;WJKf<iHa
      zCl#|euRuRAC;^K`BX^M+W;4h1)<qwd61Yr^ma|2Ju$B!*K*boY@?IqqxK4uiUc(W{
      z288NL-FK^O(c=9W+F$BfPK<HV*n=2)p@^MwqoI%SM8vL%JwaYXL~Dv}i)4?{t`=Gt
      zEEHQfvMYQ?X-yIeP(~aN32PNc={6d8;~0(u;>1}bfq8=7GGvR>ZA_rAl7(ZWBJ{#c
      z3#Zx?X>tZES~m&ECd!(i$p&E&O)8|}C!S7>&f}N}lhB0#pttY|lRFW(ER4?tpcXiU
      zfb@I222XVcKkpixi^?}2mQOAeKO^7HOBL1^6!UUl+2kl68O5+{GhKz`JB7UNA|%E?
      z^P!qQ61@j9#h*}%UvTaf2EJizHGQdtD?hl-$<F$}p_;xWuy@qL_xto_BE6Zg{xSaD
      f{-5&N9_3Ug<p-ktNR&H7x%(H&{;)(hMC{E!1!M;e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/PasswordCallback.class b/libjava/classpath/lib/javax/security/auth/callback/PasswordCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5096aa3d91243e5ef4a9803c61917ef0d5e917d5
      GIT binary patch
      literal 1467
      zcwUuM+fEZv6kVq+3>~I`rJzzTprXA1BPw3;+F(M`s0rExst?03DTC9QW;#XmRX@Nd
      zLx?fa7=7_U6Olv{^hp!H#xGF!IWxAU5)&Uf=bSxzuf5jVXZro;$4vm^$Vmt>j4o-*
      z+KO5=^qOmW_f@UtEvmX^S@W8HSG}QCtM?ptAr}NBL>PK_iE3$fNxeS5WayrRc81}9
      z0yO|S7!m@&bkrHcH8sn8pv_wbLwm(_$`y|xo^N!R@m$j`oujvgzUW-H8Q2^{%(N>t
      z?+-hMP%%dtlcsHY7a00ee*?^=3k;E*vtY;wqgO#U5)9!~x*&rp6zs$<hG^CBZUij)
      zwn0f3qLe+Lpc4v1ciyy(Yqj#c;okHm#PbeGE@&i+&OtEZEt*vZHUD2$ljLZr!6uPP
      z|4oOJIiMg4nW4k1P6ZB;D)Ok4YpFZbmMZ4B))dkbx)fxPrJ!y(w$Tdi4^@DVDu|(r
      zz$<m2&QddMB$ejY$8^ik+(ww0^qXdor&e^M;+c+Jm2i^CHo8n(mQm8I%WkPwHf*n+
      zDC0EFN;tFSp80weoWmr|*)r^sw<vT@cYp@oW!lShj}`{~8zf@_m-vKfqVkMWb9LjY
      z$tTg*YVsIwfgw^FMhI<?#7chB7ZTz_7Asjmt3+Ad=%MEhI?Yl%Olx;$1My6D1AUo2
      z>)8EH6eQ^xM?|DWP$a<H1aSv@C^G1mVK4RpV#nJtvEvOxwBJuzejAlm{;n<a9z$>I
      z;O!!42|&e92ml!l;?Oq5yWg}FFK=5sjKe{3p0Y!<CNkM?kl1U;*$+7K1*vt6G*rqW
      z=OKFWNZ|GRHFb3fjFECqL&ebm`BFfupJ<Kv*fGBK;af#MZsOTr=Q&QuK3Z9f3>fAR
      zUojY-4B(RCTaOq^^6lpHUq3Qz3-JMh2cFPWR|$NL1gw(nPszJyO+to)hEX~n!*OaE
      z;(rwMJVDV2ohJl|Vn8C9{VIGqwT9RyOw7j5Z{XtROm-bZtvBNZP5UMK@QSFsZfcpV
      OdzTDu2E%1hd*wIw+!xLO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/TextInputCallback.class b/libjava/classpath/lib/javax/security/auth/callback/TextInputCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ec60ddfac0bc88cda177c5a946527d7775b10b0
      GIT binary patch
      literal 1502
      zcwUuLTTc@~6#k}^Zdn#uE8wMG3Mlk~EZ#2|6N8eFG-?8ABtC7+xGZkBO*<uM;t%jy
      zpG<r)Mjwn36SavZ`sRZ_%6MjWX`!t~Uv_5Bob!F(`S#4uUthifIE{G?A%@uvYtz~?
      z>%7#cIpU#dHN?7EvRt=ll^&QYd`m2O)rMFIA{xRBaam)!mS>x{iyOQoG(;Fq{uQYW
      z5M>xq08YhR<~7H1okv#D<qVN(tx~QEhD5&2uq<khXU{VXuJQX;!xd5!!+;}Y`TNLK
      z$8*FrhS79)VWz;K-`pzks&Fb^UBf<xiFVeK>vG$2uh;BGnR}v@$PiwrtZ^NE7%?z}
      zQHH*Brl5o2fPsS;CJA*e?gWZsdB@|o8s#Fdt@zC(@)c^nU{Ql~4uWB^?$jCP^8e>L
      zbwAyswO-9ifyWJ`q`+Ykcw>)gc3bgCI@4W0K-DJ<3_z!9dr!5znl>;fuQUSQiDeBK
      zG8Pt!LbLrV9kZCzVD6a~pT(fzJ41iX<(@6pm9I-toFhiZ+oWk&OZju4BaREw`{5`q
      zk>H)%U=C6~p}t&c)JlBOk^YW#S*PY3<0P~XA@oC2D>X=OASAm{tD)8?Wf2>lV{{7B
      zDUJl~7AX><RnIoDKbvb}?1QR0MBib;0}7OVmrz%6m`-DUHj+33sGa0v3jJso`YJ^v
      zMy!RNooV7&n<7EUzy^I?0xA=wr)W}sS&JqX(8!%^EJXWpOwd=-m`VW9pZ$o*?G|`M
      z1s^Lw!%qkR=|%S}p6V=q(z7^CI{o5nfqju|?h`WYzH}9RN;S`R*%oQ_6G1MpZKkJ?
      zOs9|+J%ohhTkZ1vo|*z6nfn1f_Zg?2W9Td5tBJEsoc}I$PImhLl01EdQM@LSH@oyE
      nTY8g${~`JM{+;sT4&_uQ<y)eBN0jf0Zu<|EgMmetRqd7Ebfga$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/TextOutputCallback.class b/libjava/classpath/lib/javax/security/auth/callback/TextOutputCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84800e6656c1a1933042937683b6aaef81b99fe1
      GIT binary patch
      literal 1226
      zcwUuKTTc@~6#k|yU07PcTBuUd0;0VjE8f6MOb7wfq_jzCYK$gkyG*u=%a*jW2)_AZ
      z4E_WEfQj)z6Olv{ee=N|WjwQ8C{kkLCNn!{=3Kt-JLlK$uipX8;*Np<gSM`3>DyY1
      z8*bAQJDTo_x@PFMUDJ(cT7_?mk}Eb{vFKkZ2r&%FAkEetQ!CZhxgivU8K(Z3s*|9X
      zA?_ux8rmvvTDon$&}%kl=+76IOXZb?O1@NNV0nh<V#8?(-4RvYc6pG1gF$(?P%h?+
      z52VQ$dX~!NQdt_rr+<UDTDr+AJDZeH@hyf}p@Vr<G%d%x%MiY2IhMH3Fp|!9zh|lp
      z>e9BsH-$wg6r5q0=y>IAo1415&@|l*?ubK2hR|YTjjISE89^N97=r0cwU2<GkKh#4
      zUZh9?%h@90YbhULN)TWb2~5bCNrvI{Nr+U+G8Mrk>7ll`SUKP~Sg;&kbT?|eS!s(I
      zD>O*_s!jrv?O%pO-D)w+7XGvCB-Vg=SgtKDv7!#C<`ER}bfz1%WPUY*7*4CWh8qg5
      z|208vuLy2pnmS^0#}xHm%n_wy5>c(yhTAmwvL&e`x>3%^tQe<yK?KkPh1Oa0L8{g-
      z=K~S4qetukvImdYL$s(x-kAW?KSXbF43j<LTM3E*cBzJ(x%uoqMw9R5WMUHSFF-4K
      zu(HWLjJ-qj8xoIV7xpp!BRjp1i=RBd%e0RoO#2hc{S+w}NMnt3GBJlbok4eA9b}O8
      zvd?=6nRk*H19Z+|ns$jxqrZIX$$rMzhr=Ra@AA2qFw%DL6Ea-E%n8BT$78`SPY4dk
      zQS8#@v8O+A&;5j&`-0iGKK)xB{oEe34*eJf0<Wk6uSw=zlH-k6XvCNCfOgU&EAh>H
      HvA6#K_A&LI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/callback/UnsupportedCallbackException.class b/libjava/classpath/lib/javax/security/auth/callback/UnsupportedCallbackException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5863eb6ea668e5734b3face5a11ccca9a208e978
      GIT binary patch
      literal 847
      zcwUW?OHaZ;6ot=)%Cm@q;5*TkfX2q9fw=IsA|?i9U&;hWp(Uj?_^&k4kht&%_@j(>
      zO2LJMu;}#O={eubx#{=M=NEtz?8XrxoIaY*=Fk`j%Xg*sVwk@7U|43i+cK>u<K7<l
      z{l4RRqJ0tWT@5YK_oQRTp%L=RZgfq%V@y8~5)%O7pg#A23AIXy)ub)GGeV`bpr_m<
      zXctafq!2|~M;tmKS}He_AS~-xLX42DOIzIdy_RtA%vM(ra&?DUP1BXC4>vXMK@JGj
      z`A5&22S=zadh`0<*czTI?G9&AAqpx)kx(ejQgFE5prZo(`$$N4gg4<6%BAvxS0SVt
      zj_+FHTB<qh&x?4hkl5$xM)?;aMAV46igF!Cg4ZN>*SsI$cd9bt=kNoWH|`?H^12*2
      z&!ORxwO3f-t~gd>6*(ZN6qN#IK4jjqMmf`!qY>6-LT}mDVDnu7-5blN&~yk@)jBrV
      hN!Y|zh&O`cfThYiGOttc*kA=feJlupgzZ4J^9wG+#y0=}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/DelegationPermission$1.class b/libjava/classpath/lib/javax/security/auth/kerberos/DelegationPermission$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17b73dd3a0628d8ec85f3a50fc6536a6374bc618
      GIT binary patch
      literal 1699
      zcwU`U+fvg|6kUfFT1uc$xd@0>?rnj#B6ulY5DKDP9C2{qEwpD!FimQbav61e@gsyE
      z@P!ARQ5a=L^wkgXGt_<3P#C7@;B?ZQv$OZwYpt`BAHTkQ1rW!a2W1R{tMZz>5jA-#
      zZz$GgRL)x~(P!LP=7w%Y$GOTgvZd(SBW`3B)1*~r+ygg5yC^)WJ9<8*t13^48iuM|
      zF>EpfrtO-%rKr&bO3{r3Lxr`Xn4K|VGJR$$qI^Wr6zev_aPNQAhZY#zV|tobf}vW1
      z2VNgs@JpyfErY8!wBSL2q4p$kAL`&2MGX?lQNiG!Ry01F&r-7|^0LZ>T0JGJ3$mez
      zy%Tf`wG2aN=h_)3wJtfGW@sx&EoD9_@)4^x2^VpR!KavyxtyNU)J<E>k_VR=TJ368
      z)-us~2O_zV;yKaKiw*{_K}9+h`4B{xFr%B4I$aBOmZ4~wgs`WVA%12x9)u4^$i|ye
      zMUFaZWb#?AS;y$~QC>>cf`U$v<OfT^nLdQjB@QJjp#`xMZ0D9&>C_UTB{~2xkqj-T
      zJILTsvN=`Z=0BWX5>5|GxQ6Rw8L<+~si?U(bZpR*8YwbtzKJT_#E1vfqM>Ahgj=9d
      zuG091l`P;f)E~kfm*PVY?n)TMRe^a=!k9R2|B7tR=mt*~xiFf!rc>B3l%;dRvtb&P
      zc|C8W_=F;cw7HbU0|JCWn$k3GjH$9|3WNMfEv4!v&B6?~R`j%l8O%~kjjxyfB6J_B
      z`RkV>ff#w~qVH50{pbY)YHP*YNf9?)l@Q)n(Q1;i%IMw@j(ma?-a}1zA9ag+IQI$l
      zA8dd|`meFU7(r#ISV0r*B-&FU&ZF6W)`C_C)N(-k!n?Szh3b6-7X$5k=sbvgN6)qh
      zgcbvlJ@g-hKcYUei-D&{y;=laWQndu=IVr>Lpz=$0>kdxSipArid7s}s52AC=`eUp
      zIYMZx(6HRKLsW)l-l3`QGj1?^L(gnK^}Vx&a`z6!Mj5t$|8(sXS#*<5V2xO;(`thp
      z*d#VDNaIU%;1#-PKY-UZqi~^Dkx|THR71SSktD=cGJJyUcTtq)-C<c^4S0nMyO?}m
      h>|SBV-yHMV>!7=E-_DxC1G@Vh1R#Ki5Qp1?=|6Z;p@#qf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/DelegationPermission.class b/libjava/classpath/lib/javax/security/auth/kerberos/DelegationPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5a555a3bbd099fb77fa91da21a77f7a7580db56
      GIT binary patch
      literal 1471
      zcwU`TT~pIQ6g^w|K}!%U0zyG+<)clJid9fP2P-&r7(hT2^?{HsZ6Hl+k|O*X7@v92
      z7jR@o-~CaJchgMEAUt3?v%R}H_w2dn-u(Xa<0pU-%mm<J7}-(wl>L;&)rzUv2Pvgu
      z7gD?2+~Q`*O1<DZ&nvc8GM2en)GUjl0K5#nBCVeFT(LB@4q@<5YKCS{GqlGS9H_1s
      z`P8ayYDRt{vCiPllyW?T1_UMe;17YJNrD7F{i_A8?yepfwzALAvY;7!u~H;KYs!|+
      z8Nv%CRngZKQxkjl&}$boiy^&m?Rq9C*-(lO@jp@-1}`b#vXVqC?V^@8hJd1qJFF0H
      zqdR~uhSrN25+dj!q-Ny!{?aysFP_aNvLfS-gu956hdMX%c7dTGUVRaha36j2LM<rf
      ztWCP(*+eFQ0ftzeKdXxx^;t7tDRRS}+gEv6sA)u;`lcCsimv6NmSb;pyJSYoq({}t
      zicWg_5hN*&C<d0LyGewQSuE=sCxd%kJ8A}>GcxgBwDF-t!}W+%@=q1wyf6YwTRU8}
      z2}<hAl*-V3H6cT%!9UjzG9{|bv6f*Vp13lxj++SJDNV(-hoWyJgfWbZev*pO_<xL*
      znDWqSsbZ>pUK1nQbs20}5Hm<w!{BB{S1gNL<R2Li@%SjB&x6(g?dIX39}tq0r)W%m
      zN9Y^vJZPr%hLbTx=xGEoLwlg3ibe}s9kvi|B1~L@v(4pvO?e`-Nlp%(;?`xPizHx)
      zl9wIQXcb-~ZE{IP)IpJlkWx+Zu}i-qx5m6D=$w>K&^skJoZwz-><DSO$D4EG!HDM&
      zv50@O=L;fo#JefZqep0wBR(gN9isUR{Tt!IQzU-XRmRXr>l&?ZXunP$$y=oG4inhG
      zOMIXbKb}**;^+mTUqMEabT(rSLlk)^et=<D`M7JgUrwGNbzHm6@6@_^&R~Dd3qR6$
      v>=^t6qb^UHZWS59GmLG>r+D`D0#)9jlByt=%7aN~ouY1vzA>6c@r3^ZE1^YS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/KerberosKey.class b/libjava/classpath/lib/javax/security/auth/kerberos/KerberosKey.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89081783c302174e9e3aa1d629b374d32ca3ecad
      GIT binary patch
      literal 2715
      zcwUv2TT>iG6vzJ!3&So02^%g-7D8f(%M!9lOe8{#;Tkqvg5eT@7#(KYWnh?DXJ&!*
      zMSavqef09^i&zz{z*b3>_-2(aeiuK0<>{GWcC$c2iejdx`<&nTpVOy%|NigyKLA|A
      zri2QH_^Ps@Y$a{3<}A(0CzYJDl3e4~GPg`SIqna}d0s+@;k2+$>WYy`K3HDmsw1JA
      zq0yby%;XHWG)31wQ<ilup@yN^qpMav>xgC5;*QITFq}Io@-Vj@%ghS^MYCPrJhyDk
      zH0Dyn4D3Eb-H>V6j$%0Tik{<D`~QqwSbO?!k|CV6G(*+0iq3F#;zWr}A9(aLL^ixY
      zQ@M2tlwzn{<9UWlFC*ns>sjGneOog$=MF<}{ADiX!IuV8sjhj3(2$wt5mcg8Ml;Tm
      zgm~9{7z}MPPNPAL&dG@4jD+(H7f&KAf)2bPXctLgoC0~kOEMbK#BgdtGdN{TKC@oc
      zqZ6h|MOUcw^zBcEoE6PxNSrJ&3QhH>SQ-?L`7HTMer*}<y?SwmCW>u0<IsGjUlc1c
      zvZeB@LsVPBHHOZNkxQz&V%u4Th*PE`^5^T^aCkbf74>*a)Z+$2OZ+%?b(S!jX_3Sb
      zC86jUQ&i@VErXol&Hyb_Dl61Cjq$F-RuL-rZ5i*19j#YaxVq-|IZua4&U-TM;uiI<
      zQsjgQJ8D|%ic<qpQ2B7+kr!*a*yGpzSg%k^s#?Z9g0t?nP<y3>f|QKQI726n7UzRg
      zK)#;+h@nznQZ+*HuBAcYFeTcjJA!GvFQHq;L(DK#sk&+K@)~#-1x1$9UeXe%z=;=}
      z{!vBKOLnXVA22j1y2X`rz9W55xd`U4C^mA5p(%d!Hr8r(P-!>YMF}7ISC40$(siCu
      z^chEScu7QsYC)&JL$gZ*KEWbGjbnNdBv7s`<#7jdnx5uX1ZlL2$BGOMtJG0SHp>lC
      z(Gx#hoWniiWBO}A8_oIz$q*#73~-R_u>j%usqmz|jKxzgHgsgD=%Y=aF>{v6M>Y2v
      zE;-g$gg4GpKUdOU6(ocaLMv(^(_9_>uvDO){^_!E$8=S>Z@O#fEo_?6LeJOe>vQt2
      zqIX-OfY%e<JBTHkLOW<r?4e`fa$5lxcF_5&>;5J^n_c5E3O7zcCvXarh+ztGn!VwH
      z(1irxj)VZ_j;K$GAV$>UBwCDmXcThAT%olj&55t8t}KUGA$rG(vMK{rJq27pLe)HZ
      zERw1vO8zm<;zL(e!s7(0Vu7j{ZsKiMRSdnjMXDO`4*LAUh_|qkNkM<&89JZg&eI@b
      z#Pv%Po4ZkD&(@F9fPsK>)8|Nn6CEr^tP{d4K}Z2&7$ZKS*GGhXDY0_MCPB7JAmIQq
      zihIZBGqzpE`GPoK9+}VmfKx7}y&UotLB2jx%s4fS2f6D*qD3*2yLj*?rpr_NhG^fG
      z(4sz#VV1VI*fw)6cak<yShWb|U#Q!|+(PtG0So&H_FTtA-LCkK%KbeF`++*>$C4l|
      zL6FDPMbGbJt%t4(ZC4gEuXdMyDnZoxhzjw8<0FQBb<sfGlZEKV1uX9uh1I)<<7X1K
      zO~QUTGIKR(t}*fwYwdeTFBI^JXpUWEqHDWY7kjgd>@MtLO+B5zl~CIQYR<LV_#Xr&
      BNiqNc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/KerberosPrincipal.class b/libjava/classpath/lib/javax/security/auth/kerberos/KerberosPrincipal.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1804ee0910051922bc2d5fdf847bb8f14c000cee
      GIT binary patch
      literal 2656
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class b/libjava/classpath/lib/javax/security/auth/kerberos/KerberosTicket.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b61c570d8e18920b5c3515f904621620691bd38
      GIT binary patch
      literal 4697
      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
      F_&?2y(YF8q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class b/libjava/classpath/lib/javax/security/auth/kerberos/KeyImpl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e6b58739b4b26a1f1b5eea649be976ee1ac557a
      GIT binary patch
      literal 1062
      zcwUWC%Wl(95Ixs%o;7VTO~WH8rIeDmp>BC>C=_U#qR{Y=0ufSHj(e55aqP%(fbbja
      zSh4FCBmxo(#14s%Ld<oov<)oSc;?Q`nRDhOzkYxF4qy#8;*b~?_l;M^8@<QPzGwLZ
      z-RS#!dYgMq?zugEhYu>9t{sQWFfAr^+i+U?)8;-m{WxL_GeOmI^&0mq!?xZUO`FG&
      zV3<AJY<h#PFWRQZecH#6H0+j3WP2S3wR*I*=6jaYT4#{`L6<YI3PYqV5K?24A$G@d
      zEPsQNd}FgxsMB1@-Q_7na7MutW@tKJs3$?x3X(`AaF$A2<yr#g8KT>jmygS$n^iCY
      zC51U$jAK&4JT6h&v|WctXYz&W_@V0pby>kFOfpPWEr&npcgUdU;#P5kYZ`Xlp!?|^
      z7G;0W>M<-;|HogtIg@Xc{`Nv#8S5Io-s@fALW%YY^B9yC_a7YDcvAJq$P`VL9g|!l
      zxSTHt8<SMqcD;__Q@`f+J(F)+La`ExSrLn{N+(AkA&NLfCj6v-4HM1<k-VT7rECh*
      z^gT_lcQhZNcuV^VHTxbD8XF>gfJ|2Y07X+X!7Hh$=P1##LtN07zaaMmb3-hABA|pt
      z`YsU}a2qo2B7qHBe-CNgr{8On`Xv;wg_|hj3Qf%)5)$Sr5M)9a3o;>93Iyguf$dOW
      zP6*VBKao%~2at<GPDIFICxpz>eZWH!Qh|y`$Y2LqRF4toM#MRir3J(}ER$D)xQJ^Z
      zu})F+qS|MqKaL1uLGf9zP&ph37c#5_pmFfRIQYds!K)+YVhEPlII?jJDUFb8!Rz`T
      DJ0iGo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/ServicePermission$1.class b/libjava/classpath/lib/javax/security/auth/kerberos/ServicePermission$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8d7e1e2a8ec7f27a13c9c9b94d06b7024b26f9f
      GIT binary patch
      literal 1681
      zcwUuM+fEZv6kUfFTFOA7auE=%+}i>zpm-@>5DKDPj2H~O4ebdG4l`tCijWu|ygqn|
      z8Xtro@P!9W1fnFOuYQQ1q3$ys3PI42W;*Ab*?aA^*4{Heetr20pdF(g<S@i$<pp^$
      zYVu^-P^_h>oVI47cepXd4c&~6abrPA@*CWkQ%qCQwfc4s+zhoMYbR;vd9SXjJZaI2
      zp<q6HY%&Cf?3}cvsL^o>(TzAmo;9PG^)aF`bT}R&w_DK^>moyE^I?-i;|%UzJ;n3E
      zP$<CzuMaNxCFG-+!POiZ_aMMfyqB^MCGd-+G6}iJWAG0t8Xrl|QKeh*l*)xpJt?c>
      zvZ08*bLbX289EM0w7#8my5v-fp(Z18KhH^yk0{khIF1txKE=Gr<<zLAF4<BhJvhlw
      zZD*^pHce$R5Q)VkpBJt2qK?69P?AnbJ_OMqoM<GOPSs4FWhmNoTzJ#W&~`W}9)!2Y
      z#s(XtIhmH#9%DK^$2Dsgmlldk%34rx36l0;9~YtG;SQYXLkJC`9Z?BYi0z>|IyFoE
      ziial2dNG9zRR`P0;8Eu0RfU`Xv3XM1+$G@*&XQlmN-(FS%I46n;ZA6z$gugw3veFY
      z9#Dz0eFG$108Ma##uu$b29Ke18*aB0ADVDkLMKiM%qtRlMX&ucvN^09Jdx$XXxb_c
      zV8f7O&I`}FXiCQPw2|cfiWtxGzuIMYmq8lTG;Z{&vS|u;{0S|o>LyLWFt=v(l!Rf7
      zP(6*`-TxENxGm+MpNcqQWUPz6N;&kS_X;R37B3~8xarD=Fus6R0~D1*_p)$g4N`am
      zMd3}9Ol;uD8cILf0Oj;wWP>q+x<|?PQ9(P2_LPXDsI;F|q1pkp9MG2VI*u))a1+6a
      zK<x(Vw<6!sv?2~d6M@JETDQWVP#RfB+wGlNRe~-a5Z#C5>?6W|j9NTF1W)a{<r!?J
      zu2{9BgDNx8ONYTbiV;F%nS!~lRibiw_&q9GKI0t2H#Cj3Qr%0-$aSyMSr5a?@1L&K
      zEQ?0c2|Obf&uR679C%4=UXjMvsKXmH(7p|CZARfttt_LM!>EXO_aQ-u)ns@-+3%uL
      v8g_?ehBe?7F05nVL$-RJeZIWQXRm|q!c{wJ5ZCDLa}a<4u0u4p2}6GXxcr;^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/kerberos/ServicePermission.class b/libjava/classpath/lib/javax/security/auth/kerberos/ServicePermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..567a1dd3abf97feed02ac9431a1d4475b6a85ab2
      GIT binary patch
      literal 2220
      zcwUuNYg1E47=D&q2?wRY3qql&RLKP++Nu?c#fWX%5JA#t(5i=I2?r17#B)K~={Wrx
      z^-FPjVLIglowj7A%=GfL{ZDP*-5in>@B_n~<=uC8pXYfmyZP&%Uw;EIiiHr`7|t!J
      zE9z>><|WtCoKI7#>nx_8aBH4hrk$GQ){0i*)7)CtY+Eyp5c~{1;!N{MbCn^S$z}4H
      ziTor3%P@4NO~ZCn!zrk`%YDSl7=jb&^yGA2%t%0BL02m_d9P`P=8Q9(9nMO8T{SAH
      zS;x|h%Gh2{tia$;n`It>4_yiryvA^JpQEut1Pt8@j))yfRkdtBQF2Hvksi)!2G6<6
      z6m4Fe*EvHpYnD{Kpjw)kdrrTzsL}58*@Go(j7}QrvP9jZiy~H~42F=lT-7yB4E<gJ
      z`{Z^kHrGypyrG~2K@rkP1*dSDPFJ{-lPpJuV|#fbcoSzsIK$AjdriSGVx)sVbyeNo
      zmA>2aOT6R|D+N&{6%4(v*2d6gR~dZf{L=q}^-!oW7FByu)Qffv$1+0I1qCUbXNXV$
      zUPZ!qn~EYDK~o)`R7)jZb;7tz=Xac8ydzUrUm;{l#c_i_YpO|`y3W1Sp4mysKB}Ah
      z#zMGG<vmz+hejh9$AoCT8w?kR5852DLI^h*PDpvKqv>8%^5zq6XrFN_j9YYzk`biw
      zfnezr)`to{5>;<E_^KnfhA_o&s+sZ(MO9Jt39I5RbHkZj6`7J(_cmo}cMsffHN7mj
      zW~hH$!{Q~gBG}7=jsU+p7(otQV#q7_7zL60YLy#hhLQbl+a8xkFeV`GDJTl@VaKd5
      zMvxWYX*^Ky2_DjeL2WW+T3kkE%U+=d45>R8)<>!s`m(P~8Z|^fDyP1hHC?O3Z)xHR
      zAKOy^`SQ_=kTDEyrFGS|xlPX^anQr$LoWgd(kvvNDTHa>-ZGESNB5BI5c#M!G#;Ya
      z4Ee?Rj(DPm!|`Md(I4f3qck3pOEUy~hX7`AjAn!N?KqAeKw2k=ib<=FtTwV=N52RE
      z+=EXh{seo0fNvx52iR2nXAC6idoG5rggd^4!6bcK7}{v?_e#NcN%B1krbvi$7{Gnf
      z@SsIYvY{o3I1-Y1fb1Trg<cF#i|c7g?5|}F-7O-%M8Ln{Yf6d2Poqjw=1EG40Lv{B
      z5)BCnjNqIk>~Bb*N5hkFS<ZpZxMUd>+>e_iLAj_&V5Pp%1E%|m(;moz2Qnm12iFjc
      zzO^Y#zc4RJGa$?>o6)PA4eSBg2v4aoEUJ`^ZaBo_l79s!@vMb&sKI#+?|PgUDNM1}
      zzK!u>yoUFhz;)4|w*a(z0BzzY%metFnn+~u(Kgb>M0B!-_ovp8rEF(%(JLb|<6ZHh
      z(Ei0Q7+A+>^ir$WU-$NHBU{`?t{9!J;SOz>-NM}(=6)xj`!D|esoA@6>R4cnVtq*h
      zzNUD;p}zc<y5T!qz&ftud+My0c!(dQ^mtufqmYm2PxN&M@_0;zZzF`8RQz7bL>o1L
      Q;3<RCfAQNkF3&{&1D5OQlmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/AccountException.class b/libjava/classpath/lib/javax/security/auth/login/AccountException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e7b900b8dbdf2a4dd687127e917790ad1602ebc
      GIT binary patch
      literal 558
      zcwUW=&q_i;6vn^fe@x3Pt=zR!i!M>LF^sT+LfTmF$J?M2*ST@;+^~1(Raz8;(4q&3
      zo}y=H9i4lX7Dmuw&Y$6TzHiRFeZ9N_*hVFd7@>YGZpFy*r5$+6+*u+p1IuyyN?V7v
      z?FQN$k8F8kl&jN75UPLk?J)k(gn}<UC7iDGeC{t#j|g-|$hTbW8=*~CIDt%lJltnK
      z-=CfdsePrDX%gbqT9=S$xmPlaIOcQ6VvexTR$871!=CgmM9-0gV%xRZK(Gz>)60Yz
      zD4(#|{{LnTLa7?@mLqiE>KISyexue6?MtEk5+Oa5zAyTb?Jty&?YMzw%M%s8p)~8T
      z6;5Csyc~Z%p@Jk*oYUOJkl{n&k{ok<v%{G<C+lP6A0uReW0o_piv;#i;3_wPu!v$L
      m%Fmn%G?@(9RDENN<ynO$&m2Sw<q0)a2&*zyBJ<T~X6+k)s(zOM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/AccountExpiredException.class b/libjava/classpath/lib/javax/security/auth/login/AccountExpiredException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa1bf7df2c7f94ad2dd5dacef53ae3a3ca12ffa0
      GIT binary patch
      literal 581
      zcwUWB%SyvQ6g^kdMq;(~QD5l7ovmOfZp2DOe4tX?sM(KkNJr91NhVUi$(5^u3qQaw
      z@GtxW@g`=YBDk2j_YUWEnb(i!7XU4+*cc<U?!>(qx{37DSeXY`q^9SFQJ}PY;QLXk
      z&GB%cVtIQ!^yR>)NZYUo&417eJfW7zSc%Y+al-TU*%5)x2~&rWPK?mT6JaV#k8f+M
      z_wS=qLU~VVWjciMjfO|C4x?M?U>wsGIG7|<yGqN8w0|SxD{&J_!fZG4*+8%j&&8u<
      zdMY7ocmI*~`-*KseIuv2q0oVQX=0^=cEih3)Uy<G1iLSjL<G6}FDSvejMCVbCn}4w
      z`iIe0M#MUJRsIvg3Q8z*wRsxD1Ru&)=DWf#+gyojsX4;bQx2)}?QjKlU||<E?kZm(
      q%wRSb<+O!Bhmje!+}s>t{-;8RIs3W7!WXJg$hrkA=H^Q|XZaJw0*2E7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/AccountLockedException.class b/libjava/classpath/lib/javax/security/auth/login/AccountLockedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba3576e1778be95cb43f4867176fb2191eb0edcf
      GIT binary patch
      literal 578
      zcwU83%}&BV5dH=WH3))#sCe>*m{|YfMT0S@iH3MVdtd4XR?F73TcZ~r#dpw)i3cCR
      zH}NHm(?UF;35VU8*?fPK{rrCa0I-FsjSOM)M%;@BCz4(qD)Z=w*z_Df=ql|Td0r4}
      z(+a#>d42NW$vdM0ZNnne$FhF$gmNT9C45(g5zkj=#{@bj6q|vLjL^mvek`-$*Q>Ig
      z+-E}WKxt(fgo)akOR$>3wajAz(*@))MJTnDmKSlqBg0G4@g-rFGqQnT8=i-cmg%X8
      zu-zJ)b!5YR!a^-&Ilj<cr)@%|yZdWy5@I0<F-NfbGKxeuHU9%8<l8|Udh%2yNml;%
      z*+_U;1ux1ULZ~8(99NsC3?}(dvM}ETe%awlT(k8z6kk$EiSImDU>6qlQ0A^M0AU8R
      nsVIjX3N#p*U~~2LH_VSJG?;UkDpUrjp+eGCu$Y=JrJUs-hgyXf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/AccountNotFoundException.class b/libjava/classpath/lib/javax/security/auth/login/AccountNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f06c1599824c7e9ee04738720b5736355d292f6a
      GIT binary patch
      literal 584
      zcwU83%SyvQ6g}5IBDKEXf(v(T1%q1LC>5y|l+sN#`)M57kvJpCMCzA_pW#Yy;Rop6
      zzfrtNiwlc%kvVgR^Sb2y`}GaLE;bxY5cY1wz397<^y5(32Uo<l=LV*$w0q+FCf2rP
      zY=iOotnbS^tBiJ#B~-@he))vCNQO!To(v<Nug*^ibU~P|8y#7pttWz5=9WIHU!BLN
      zPeT4kX=Q7KOsVV<vUPJU3&>!mhytbvvrVOCE57Z>@KSUFNmytap92KP@H~9X+MbFC
      z)#li)BRd`vmP@J54TSExZ5t}xJuG`kjpd}qBEh+pQ6#!){0Nm$Xq!0nWkV%hHvdc7
      zNtD<EFU!A$uz?)%j1Er|nB<R=rTHxK%RVD9<|;3keoiT~d=?miDzZ4h9N&rq66Udx
      nnsVKtL5-OSH(%L)!O~xc8f%VIhm`?q=#bo2u$qRirJD60t{R9s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag.class b/libjava/classpath/lib/javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db80cbfb648cadc9001c2f33cc28020446b7560a
      GIT binary patch
      literal 923
      zcwVhi%Wl(95Ir|fJ2h=;LZAf-g+7v0!a^)t5mg};mP}Hbv{IK&YSLS|c4c2zREQmK
      z_zu<q7L`Ea1NbP!TqjCdbc2K!ch1}ypL1sHU%$Wq1aKd<JW>qip>yIqHzKzmhg_T*
      zPAm=#FBov&*gQUN1pYHVh(ky4z;F5@JYBM7?Mbj7doEQ)7<i`V4D!e@6eXA8IsU+C
      z_YU2@U{KmyU8~*Nv>6`T|3_+_Sht%`cdYH^BL+2r9jn`9D0FsA(`s1FR+oA<`X2YW
      zc*u~hRCgINjbPs`fMHt045k=z8%bTIt62?M<RrSRAwNP_G$<o<RfCEg!;H;+w-q1t
      z+_3BPJeNVYgTCYKIw6;Na#=tc)1)R2ctkEl&=Dc`2Mnc3)jnU)=yqK}UV)-ORghJ1
      zm%P^Nbva28hke)NQe^(Z?c9@G44UQpZrJdgC~~7bDh$Ryu9=~H@uIOvv#04_$zV>d
      zhtQl{P7;-IRFjydynrd{*C^XV3i7G`0NXpmrEe%skUl}B2`Yb~<`k~cStcPMA~Jyz
      zVl3bU6&#Te64I3XbYqzZ6dA>A?F{qh6osVm1-X8iyrzwsa6NI#a055T1Tl5W+FI=^
      z^v}rY3qwLBiEc?$mgu%bMTr)N`kmoKW`#xvUeQ8cljIxB;w?FTM>6lp^#?5DBRT){
      XmxZ;lg%p;ObD21#T{*=ns!;y`KdHo1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/AppConfigurationEntry.class b/libjava/classpath/lib/javax/security/auth/login/AppConfigurationEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5307843c287fc2ea3edc55450ea8d0eb0999ada6
      GIT binary patch
      literal 2363
      zcwW6#-%lGy5dPLc&OR<bFoZNon>v)Hw)tU5le7th#5i^_H8x;FLff=G+skp$`OZ4u
      zMd7jkM&JA1q5@Ho+P7Bf|I^o~vuhI*+mVVCRhDjNW@o?oc6Mg`_p9H22QZ7Of&fF}
      znf_dVk!bLW@0#9jLifF$gyk5fok-T}DaYP64d2y0)3MXG=k6-#XSg5^B`n=G5{2?J
      zUhx>t%QGuZ)wg(FuW^QOuI*LyT+=q@7zQg2p*U8?(hY{C+$p1v=h{(HZ6pF#oVxI8
      z5R+zH-!rYmie9I^GxMfxdJ7Czw42krqR<gFw#g7Gnue`=zDwEo;eQJ~-yJBvAo=vC
      zoGMq*hanAv2s89WW1A{QFsk6<8?V|tr{NObqx4zaHoP6_o>g##VXW<$wJdJvR?;>6
      z8n?aliwc(y5yblp<2A`OVpBmxD!OeuUZhN_Z&?xBaU;A|_jXlW#x+6cLxzhzvJ~44
      z;W|E2FvgI1HyP6~jvzy@uv*F%^2wYCa6`i<(zu>p+sLk`9|>bjLtGd`(pb!v(!x5a
      zVM<ul;zlNuO=Z*hQV<D-VbgxDTV^$KqR4}oWf*N0XGab~VE9zS0L}>Mwgv@31)nht
      zwI6gzZ|u;cs<?x@B1!kCv7%kIreYoo3hq+|+gmAz-lif0Yj}W%)Ed4`FJf++dfDQ1
      zk|ENC)u9V!iyA^uMQ52d&-=A9cS{06^te;etxesPh%IBkw_{Qt&YrfssZ&Sa#M`YO
      zV~+oq8fQ3Xa4&Uo!YoH)r={`s851V-6PwL3H`0pGG3ZqCEgX-ep=f7X8E$mi-gc*;
      z=QLFX>kOAVofdu5s&ZGfaY@4lsLvIuLZ275MUWGq%~3tqgRY7-Tnl20frW(pwT5r-
      zlsaFp*STF~nCjJ+U8WWl3HP0bRpdmEIKErq8B@ICm7WQo7B~!A*0#Buvh+rSH)JXF
      zdIoAg8btI5)`zg@9FoGKZ{$i<O6vf53_?QyXGsg-9M04F5Bli`81X|~nD`Uw!~uqX
      z#MvWU-U?qm#0P)uAu{<B#`f?rEm!vtrDbFf6SOqFriItkUoCA$Xz_`C+>B4|<5v6#
      zcebVu@%c;4?IZb%q?n@bJt6?yrQr98$O28fhln6a(`FIV<Z&C1s5>(xeSsBZv5sXt
      z#+TSej&?u;NYX}{d>|!pZ6+mg@qm=X)%yqmbaB?QERlr~;xc_j3KF!6y@B|zxb?Hl
      zjUd<rE6QNa!vn2gjA-O~9KP9k_({*hE6BfoghCfcvJ>QKPmtBu47TNUfSDt#Z3z}H
      zQ9Q)s@RI|4C2mA2NyloksUG0lcAT(GCC4yfjZumwNp8oSX~hiSd->H-rd6dqQF9f9
      F{sq_5VQl~a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/Configuration$1.class b/libjava/classpath/lib/javax/security/auth/login/Configuration$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfbe1eed07af5a2df46bc31a6dad6f8b6e680864
      GIT binary patch
      literal 747
      zcwUWCU2oGc6g_v%k}V4q$~G8`eE@<Mq-N6|i;$)YB%}h9iuUd%CiN8T$#E+7uiy#9
      z!+roi3hg$HrVd{EVBhQGbMBY@=kM=J0Ec)QV2RK<6BF?*E@V<#<t}1Tx^bMFOzF69
      z^cR(tRybw!v%>%$;m(vE=R#-kr_q^ATmYZ2Q=!)}POO@!TxK#oPNrId|5|C~-Vhq?
      z&MCp`n^cBqU@by`6+&~MwES3p9ZCCHjB-h64NM~PQ(@KgT!Wq)tAg-quyD~mPH9W7
      zV7=WL{9Ai(1@{Qsm9U%43%lpmOjIguhz;Biuu0gw+2gQwB0RtrVJ(yH#F}$y-38%!
      zdoI_|S*5dH=YNP04oztj`A$_W->AJir4yp}T1(r{MNvp@z4=xrxhYuvLAtR?1MCuB
      zEI5t``*=cF<yvPrkFp-i0_q+Pz|-Wl%>QSJ7e5`JR@pmZOKg{4{zUkrx{i1cD_RPV
      zFK@9I%}BV7CR_eZxLXG}r~~+|)-SAozmDKn=y*=;*XjlyR;)+Zt}@N^Knss~_ppP#
      ED_B^$+yDRo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/Configuration.class b/libjava/classpath/lib/javax/security/auth/login/Configuration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd233be10dffd9c83f8b1e170b5f32ad37514387
      GIT binary patch
      literal 1789
      zcwUWEYflqF6g>l#g=JMNh#-n@YztZe-xZ|t5-ksd!59;hWf{t9J4<%ADu2Yk;8!1s
      z5J`-mH1S6n&up94N;Nd;?9SeM&pqePo%{3Gm#+YZ@yI}vz{MB#EBj44kWR^W!>zPk
      z3OCXPFYl`Kq^H*1e95;%*HZ>!0v*~pU9eR?y}0^9I-x*|6L|?FbNfWfFzAk}+;Ci=
      zIgwluh)sHH(nK@bEf{DOIGl5pTqqS+rT^GoEl7cQ&U5U-itW34U-=jdH{5`%@-nQ;
      zATXHNKOGZsbQ$QZlefGTgtBPiD7u-P36?83^R}|{(ib>cNm22yH)jm=2%K$1A<Jb+
      z`b9Sgn7tLp1&$Iwr<v6eGjR+jbU{wiBk^ah(05fnlUy-z3TF(Q7U=ya6ANc?jumw_
      zr1P?tSMx7JR@v2z5wySs3j^p7Xsgy&peZN{^!-OTs~GG#j-kZ9Pb0a~iXjRP8kMAt
      ztS(zPfEIxsvdV65*4d|3=x+(kG^*CK|4?X%Ln($Y*L@jm7#L-P?^DA0VG|>0H*p;|
      z4crjuudj2~abyrMB=o&PL7&hq+!nCbyd~d#<rZXKt_fV-b39dJ)+tx&50T~D$gaCn
      z-^G!36XTdLaF<<BGffukAh3|dJ<447`~|zn8+D;k<#K;TWi;TFg=x$Pv@7{~P6eT@
      z9L9Gg8nU|2W6P^j`rj3tRi(e0e-`Zq9tw2U@TT85a<kk~F+FzlSlB~Xz+Co9z9VPc
      zXmHfQUe@lc^_)`DkHp9zc7|Qm%#p}Q-CBHWK}-)Kere-wluyCufz&q44}58Y#nt2!
      z$k25R2l-}|op30ENa8R$DgcZ0(YD?l9C?`fj*iqWjy;X{Zlmur`gd^teHAoLS73_k
      zH1p4J{>)avW87UtA_7k$RRMp_@0!SQg69SaJ{W-ymcdh>aH&SQoAiJjBj$;|K)glt
      zVkyedT}G)?AjZAUB{=odxB@->hZzI@2dcu}GDZuV`iM(EFt&@4r`x!?gKOWA(Ly^@
      zI~e<n$!`$k@eX~vn5D;Dv^n&owqyKzB6acNT*HG3+kq&DO+IU6=+Ih34-{E#(#z-l
      d3NeA#)%tW{h}z~OwF}X@NNxI{1ab8*{u=}z$@BmK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/CredentialException.class b/libjava/classpath/lib/javax/security/auth/login/CredentialException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82ad8b84e0fc01acbfb4ac41ae232f93d5dc57dc
      GIT binary patch
      literal 567
      zcwUuJyG{Z@6g`*M8U%SLh;(*<(T&mAV6Z?<G=v7FA7BDwmRYkqYq0Pq{1Yn@6K(AL
      zDC6CQSokO`=Du<s_h#Ndo?ij%qiP{W*u4>VVrKht7<kIu+afR%+i}NA+ig#dq&7-8
      zXS1QaHOkc%5`@~{luj7G(1g4%J?8hN=W~C3aY~>|LbmN{-w18`!U<&Z<?X!tSZF*D
      zQpZXw(;~!c^*$ldc1JReIMy;qW0jEWC@s6ebRfMeF>oZI*l~w!AlQcc<uG9;$|u;J
      ze;wB(lxh*hc7z_=J>w}oZr1zZ2BmO=b%HgOzAwg+^A9K?-E#wPD9=^6M&%ciy^w@$
      z@QM5jgesCqakjXNVTB)sr*h2j<bX4APB!MqK1Glm$24c)5D6S1&sAmtLIK4{ls8=p
      iv=|v;Q;nTDHohygm~#>-lozO_LRgit8JSli&ekWN=YT!{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/CredentialExpiredException.class b/libjava/classpath/lib/javax/security/auth/login/CredentialExpiredException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e313d9d8f75f2850cc3fcebd04a0c71555113da7
      GIT binary patch
      literal 593
      zcwUWB%SyvQ6g{`5iNvb)t=)*bs%Q{JM5Qij1*N!Av!A9zI}#_7Or-vi;6hx8;KC1Z
      z>;H&1F&h=Z#oQO?oO>?w_VMxxU;{M=CBoLFxDf*{kwF?ObL)xJ^t~|ZDeX05*_GNT
      z5w-@`iksFTkk>{<+JQw_`yaEQ5UPocdE(1B;r`<IkU%Gd(PpF*Bed~Fn9B0g`~BUf
      z?LQFgeWjIY5Qgf@KEY~6UFl*7V->g<A&j?`mZ#}eN5<!(6H3BlI|_J#;5FPAL(BA4
      zLfCHq&+hj__Xsofoau!^_q;O`E8W{$_A?_hnUN`ib0w2R^l}5gpal0UO5;Etsm#sd
      z-@Dc`E|$Ot^ZyWPD8uILa96@GKgtg0SmDVgXX0F5dB*5t4jJd@at3x_VHZ`dDqkQ>
      pU@{kF!-YVDkr~!rS$)RzPlX0^4swOrFI1tBRkN7Om(S;%g-`gki;w^S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/CredentialNotFoundException.class b/libjava/classpath/lib/javax/security/auth/login/CredentialNotFoundException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4bdb4eb8be2dc23926032abf67641b194d63a35
      GIT binary patch
      literal 596
      zcwUWB%}N4M7(Ji=n59`+xro}SQA32dFf6cwLfllYyXr-6jCW$@PS``V>qS}xEqZ{K
      zy+CggeKSgngm7`cKh8Pd`M4k7Z|?vOP)s61sNRVOF}6I}^Ic^gE#aG?Wjh0<t)?sc
      zQX3`gwqwp6U-!?(J$Y}Gqmzgc_U57fQV2Oux;*Jf*W>=?;*>y_gvF+#JtMT~2-}zO
      z=hW7x`nr80B#x9;ra_37${j+i>GWk9Q7mPU#sVSRQd+kCQCGUxqH9Y+zUB0If#5aV
      zPlquxR34$$n#b<UrFFtuDWqDq&;#qrxJnP|<xb#aEpW0zNRFiEi9zUK21-a@IlkMI
      z=PIzX{m-)ffQ%jR$^1oxBH~DJPI4DPiXR21bIkDMkTY?PS6;FB5<;>Z)0}}SVyGd<
      uRb~RhGV-A)JDv(O7#Uy_mEBjY{#7_;&Pk|Hn4qQ#K~=zdxO^kzZ2kbq1B^=m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/FailedLoginException.class b/libjava/classpath/lib/javax/security/auth/login/FailedLoginException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..475f605ade324fc58fbb02b0ad623f46f31efe36
      GIT binary patch
      literal 570
      zcwUuJyG{Z@6g?LfFgz4dQ0R;eVB%^lj6q2Zh|z3p(Cvq10%Mk4vk!xxWkq7)2N=J>
      z53w-bU1)q27IPny^SF2B<>ToYz&>gjBnZ2=;$BR3Us|E3f(KoM!C1H5k#h8&P_`Tz
      zQGGVG<Xxa#Cj*U8|C{p_O(^=(Q^Gc-=W~B^(IwC&q0n(1KM+n}3Okgk-1cer_5J*f
      zkUmz93fhEZy<rlxjysfDB(a=F7CFL-p&WS?P6pDu76V%nN``B(fnXc%7nfQvRz6|R
      z_}_LdLb)DubXzzhy&rhW8MPW_G(tHVVU3WPNZ%Ku*!l;QknOvnXUU$5=BWPW5<fY%
      zz)SK+5Nb#v%{jwe0!w@-T9#v;Zw@#U=Tvis!eb0s;h5zN974kpid^OAAgrPki}I)o
      jfi@!}Y`VEK!}@oH6XvvIg~}YYP>8AuHe&P5m{a`(>A-<b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/LoginContext.class b/libjava/classpath/lib/javax/security/auth/login/LoginContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..72a220ca94ef416021fec5d719d4783788aebffb
      GIT binary patch
      literal 6202
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/LoginException.class b/libjava/classpath/lib/javax/security/auth/login/LoginException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92a141422fc1deb6073d5286a1c8e2168d7cb885
      GIT binary patch
      literal 550
      zcwUW=yG}wu5QhKZb_{|b2qK-00ZcqGRtAG6c!`GCp!5rFV9jBVITwR3;QLsSSZHr=
      z?NitqXAeZ9HWoXxGx_%aXZGde@d>~-sup5|+O@b96Wf=A&{M&kEy7@AJMK_vyJO<f
      zWFT(><!TEF!iJ&0;S;H)C!FrQ{$dGvUwTS7J?Z&eU!EQk=!}qUyV?(g4tl}~W%4<H
      z{~o@*RtTv*rB%=(#B22)A<=fPWEycSWst@qA=gn_o`>VU^e#l-k%U6W9k7958?NWg
      zL@-i5q0#y8R!u^w7SXmN^w91Gp3=i+y=Tlz#=J<d#?tr2Ff#pv64G5a^ak=+nF)$N
      z^|uU<b?{>R>4YkhNO88fieZ5dnFTp!xU<8VI42uZWFI0V$1%+r*hK<O<oTAFL0Cp1
      n66GQ10xc#Dn`&%MvGQACpWhrr3gsC!S1`9SRwMID^k(f7IthB*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/login/NullConfiguration.class b/libjava/classpath/lib/javax/security/auth/login/NullConfiguration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2fb42c31936697a7853022412a4dc3e2b460f5ae
      GIT binary patch
      literal 629
      zcwUuJ!A=4(6r2YutB9hg#6J)ux*8K>f|?j2C&C58#Zy_!QnT!CO4rC=>B+={AK*tB
      z+d@!+n%JbB*VmbOukHKC>l=V$?6}AfYWM7cJ$fVVr&6e~$5J)$!Z;9-*G|K*5l4Ly
      zq>?ESM=l(~-tU4rG9h;^BB3q`*-Euba2oL)&m)VK0+x^?6k8(V?R41V@`m+7PAIiv
      zpM_l}h1pM&jv9y&;h^=8PV0o-fUBz{nM+?sN{$K5iuLkB76o2MNf8D0>g^x?Kl<nz
      zMV2I?@NKTmhV}*v&IDKTzT~3;A>WBp>GP&A7b`EceQ3luf_^fXVOITAdhhD!L?fBZ
      z{tK3$b&x?`uX&At2S@+us*Va1lEyWSgmo0B2B#VgH$zV|b<VQStg<{gohnVVflXVq
      YG;5+}J@x!*U}ACctvJn!Z&}v%CsBcr?EnA(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/spi/LoginModule.class b/libjava/classpath/lib/javax/security/auth/spi/LoginModule.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..395adacbc08caba3139a68dfb82cf48fc14835a1
      GIT binary patch
      literal 603
      zcwV(p%TB{E5L}n0q2U$a6S$-tus9cSK_CvPI7H&W&2g=;#kHfvMuiXIV>s{ud=z4n
      zB3{jb3zn?i8INYI+1Iz{7XUbh{SbN#4rbzBEO@P?uh2bk;oU8-OXR67&`j*qYZXGD
      zLEH$r7N+1=`AkX2AP~8&sIDcW8wSz&LaNfCHFXF>21%E*Zd{k%pK=BRY3Fk!rw9!?
      z6dE5D1D&K@7MX9yk2@cw&^j0Lj-P!rm%>c7s+MZ*9cn%i<!?B;W-!dKFv9tYMnC=E
      z=#%s-$jnt}it*v;pES)UgEl})jH>lbVwv@oR2Qh}+wr%h9W@pM2DBb%PCz>hU_dw|
      f)Tg>mOtivmz$SHD#PndB@Xm@N{>jkYZPk14dswKw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class b/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b8b10bfe22c95e11d3066284007cc7a0048c905
      GIT binary patch
      literal 11344
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/auth/x500/X500PrivateCredential.class b/libjava/classpath/lib/javax/security/auth/x500/X500PrivateCredential.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ceb6eebf0ec4d5bd8c20cbeb7678e3e1fc3e1d6
      GIT binary patch
      literal 1459
      zcwVJbT~8B16g|_gg|bLl5K2Y9L~OT(#RngZ#Dr9dNTVj0Mo=G??N|nv7PnhMAAI%W
      z*}uVqCK3`&^i2|fl=05)+Llrij1PNfcIKXQ=AJwA^VgSe0Ip*}L5N{t$J{p$j2gG<
      zj&K`>S$DUMgBy#B#uEyU9I<b@Jn!%lueidr6+{>k5@XnArEEOh+ToU~AjUA+jp+`r
      zxlXlVZrPk6{E{~qQUwp*%nLNuc;gmBpT!+lybu<xFwAzO%1wE$oB382fug1@%o>AM
      zXdP_bbws61o3SNP5$<h<<@9;j{(iVjks*?=mUtXt465jdMkS>)MFqnQGcD;=+va7{
      zUUtg$U2^U2fyMV+QLV%=guz}gjH>8GT+YT+DCl7rD2NJwP~Y9+&ST#ztx&a0yJ$K>
      z{s)T@cUw@Mi-mt{8o99kpT(bbHdBmK0aMb43$m0M6@5?{E|j^OZ*SsUI&&UvhJHe}
      zBpJrf08d?&9!g*K8$bLf^K|Q#l7IW?T8Ub46M4yN+9pGMy;^rHz9OWvsjkL(kAt2H
      zLFkK849R}c^9jigdLtE0qeA;+1jPaRdqwME8YlH*B(guC<WA7{6+;`xxcFVq9$`e!
      z9U=M2BS=w9Ax3cp5!@rXRSe@k#;}G76mW@lrhGb#<1*mQq&)Lx@<1U^ej<?HqwENc
      zNj;l8#^ijv`1}#3Te>4u6tF?+o5c4N8lGVk&pl1u=V)pso0`c$Q_f`h(wr-p4b%-9
      zWmZ)GjFFE`shGDYJZjZX2&fsZVy+7~*$J+71z$tD3wXK{{JJYRLnZs*70*N<p)=VZ
      z3P~B-%+fqV-VpjN8S#!#@7p*NO->!zfO9E0kS47-fhvnSK{Rq0KI}N%hc+gy$&~Z5
      G=6?gSd@Fqb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/Certificate.class b/libjava/classpath/lib/javax/security/cert/Certificate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19e849833e6ece264ead55aee56de1db8edf61a9
      GIT binary patch
      literal 1354
      zcwU86%Tg0T6g^E6CX7)cLNJ2z63jyx1m8h4p|A=~0ai2?q+CoUP0~2b#K}yG@CAN@
      zAK;3O8?dy>(v1s0%JNP!#2`@2qHlN4>2uD#{rLUo>vsUR@l-+=!^oCeS9g>e*BndO
      z4MpRYtt?U_Hif3zT!Nn=?1B_sHOk6raf@p<L-)KeguTGvi^cN{{zbFIW%$q&LIB+i
      zy;))K6=%E1tygMM=L~&WQ&aW4Y6*AjP5SMMs4<LX&#;jqMgHDVbpj8>vj6)@#W!Ry
      zTnwQPml)(Sx0ei!ER{$i7B6IE3}8?~<S-Y<7P^wQEVWS!;Q}r*NU=hukcn?dxWX`V
      zhMgw4Fv?3i8n4>IG#CP=UE!9S<}q^&!HQa|xFu@VYgxi5rSZ?muBa;MlFqHUSs5ef
      zahr({u49tYcB&;(BmpuQ&%3{Fgb+iVSSiiCsyi*#=ai~ebG8`<vnNuM54mla>eyZ9
      zme_1C40{D_r@Q79b)miBjZ{1@VTK`gRy_`BCCoBR9c5cFbB<O?>t&OMmF*7f9oqS$
      z*kz-x>Y_x_9k6>0lP6KGS!P|7xYYrDz%Y6gniFM1wH=Fh?A7$?33u#X&bDZaQ||E&
      z+GcCS&>xE*$1sFwFWM{&Lx-pnBxoCQrekURnQ*T_xTB8K?i&9X9c3TfFGxMQPSi>?
      znxn`l1`-Ddex^<rWNKxKKpK8zaE^MR7Kq|`ij0nTuSc*;NEbVm`~^Ar6YL`bzP)7P
      z69WFd#6H5wA7B)|pnva;Z;w{>V;mERdP>)tEUTpQlDKnp*<KT3oe%{&tZ$p@k(Pp|
      z?)HW-+%$fb*0+3c&qwqdM%EAL_9tEOeT*mfG4;Wd23^@mTRK7s0b5j&cL+nLv4KHU
      zJ0zo?WRMb0APGhf7rh3=bdzTN6r(hA3)9|=`%o$L4$k2&?l=EDJmt?Lq~Jb-^LX4W
      K=t8sfPyPZUYdZA+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/CertificateEncodingException.class b/libjava/classpath/lib/javax/security/cert/CertificateEncodingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7355f636d3aa5efd45eaf53050d56e87030d932b
      GIT binary patch
      literal 514
      zcwU81!A`<J6r6?9YDG{K@7xL|Ry2AL!-e39c)@UAmbI=aThne0ewHT^4}O3jWqe!k
      zf{E<m&3n5u^Jc%kKRy9;(ezMaIDh7^d=X|+<f$@mp^&Kw2UOIf65Pn47RgNMXt)sa
      z#i&Gka2SGZs$VvPd#kiEeTH(-o-jCrWF~!-v0Ft2E<=5!w7k#fQ<*;SX)GBUqeSp{
      z!c%4E^`&E;RK{>I+O~N!Z;zoF6sj=hIts@orRQFIVnZC*5H-p+&mz0{4~@YeCwVI5
      zow6xf|7|+6YP3Lhu%|>FeUYk1(<LDztaO&xc`u%Qsy-ob1qavIqprFl5$+ROgWB4l
      hPfW{oJEu$3Hyv(>*()4QR;;yy?GDi>mLC<G;~%64bh`im
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/CertificateException.class b/libjava/classpath/lib/javax/security/cert/CertificateException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2682adc431583acb802d8b010532a6b259fb1c0a
      GIT binary patch
      literal 469
      zcwUW9u};G<5Pfdb2103}rAUlyX^@C21Oq``DwracqU^3Q!6;2o;-K<bOqCe;06q$F
      zP9u<j0T1`?eDB`7d;fTS12D$WMuWk9;7@$%7gChD($Bt-x%Q_N)SVJs%gd#Zk6LA^
      z4U1u5*nYy(*#BxUv@cYu^n{`5jv@wYn%znVO>B11LYtu%s#IQ=i@D5i_&kve{V)?e
      ziFmF|U4L5oUKI>p_}`TRhM^mNuQb!SO5<P@8S@=u-ld%uMQjXz(HNXrR^~!pDdT?d
      zm&37{!XZco<~1mzlPKC$oe(m@mbb#jOVxHLI)uO}ESzDBvd)@BxJ_sTy0yTBn1<W-
      cj#lXXR5&MQP$}%MS+#=6cG0iQ2i45pC%i6VivR!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/CertificateExpiredException.class b/libjava/classpath/lib/javax/security/cert/CertificateExpiredException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..405b021ef70b368bd68c65971d93f6132ea6d3ea
      GIT binary patch
      literal 511
      zcwU81!A`<J6r6=ZwIV2rXT23nY>3f=HCzauh!;%n%d*xrr6tSO;AeRv@!$veQO38W
      z7d4SRym@bTX5Q@Q*ZT*6J~}Qc48b#h;j3UNMXr^34TRJt7*bJ>N^m1btA)~XHd+a}
      zFe*!3I1K()QORbg->OuZ0YlaAMhwm{n@JB<>^4wCouM^Wsl3nUQ>h>LG?5JLaVB^Y
      zajooJUOMJUEgAabt($+w4H-IqAqo<n#=*pBmBwK=vKbC+h9*UuFJrs+4~@Z_WVsgd
      zPT3Hr|17$&Vw{28U{8fQ`XE)8rb|LbSnI8^^Hw~2R6RoA3J$KZM_pq>BHSmm2F=o7
      hKupW6_s-X7{dTw^W>`3!Y*?j(?GDi{mLC<G<8P;vbG85g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/CertificateNotYetValidException.class b/libjava/classpath/lib/javax/security/cert/CertificateNotYetValidException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0abee4f8022a6c5eb7437d76bf0b23b6be689824
      GIT binary patch
      literal 523
      zcwU`P!A`<J6r6?9YDG{K?<O7!CN_lN!5S_^PYoAL6OT(->zdM<c5CpnJdt?t1N<oC
      z+tPT@1BrWh^WN^vyxGsM_YVLAbS=~vhEM#3uiRXOMJCm&8;VT16DsmShFpnhs_umf
      zcq|t;t57^EnI;wt24{=#hs|JK%S5U%L*3~G48|l~2pe_mHqn5|(Dr2_rp0nDvO7MH
      z1w+SALmme_lX|W$4fQB<hLQh|$R0!2DTQv#lgOQ^OeT@n3v`YHouftZmU*Oi|DiG1
      zv$V)UaVvF@vn|Umv;j^*j?kw@9etFlMbnUw5jOg3?7WrFHdUJt7{S0L_NZ%aNQC=@
      m+Mrb#jESkaX8(MR_HTzPVtS>+$%a)q=<X1ma`{oIIsOJp5_m`e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/CertificateParsingException.class b/libjava/classpath/lib/javax/security/cert/CertificateParsingException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..232946f9dce355717469b7e7ad847da8745467fe
      GIT binary patch
      literal 511
      zcwUuHu};G<6g;<S0->}}C^Kwnk%%f_fTAuHOc6pV%I*dejMAiX98^AwsS*Ppz(*mT
      z(})2i5FXyWXW!jBzkj^G0T`g`pvK@o@+ZFVa}gCv>SsR^O8a9f@?J(<iyN+TnZ}ok
      zNX)g&QU?};_lM|<&0t^1RO%5!-Rp%6);PNpF6vlsq5+$s9mrH%7qh8Qw|trihE9-0
      zJPEmyX09$R{UCFOLGaJGLx!$biu{D9u|Ls@o`=2AWY{tpS`=-T$7b&j8iPB@3KfYf
      zX+rG(vgpW&aR73IIW_9&gH#=wjtLoIqrb%3OZn_lbqRqJSUAN7b<GutaFfs&v?_xU
      hF%8%5A1=}U?r=uT^U`5&#i|@kw~bD@e5cgxegd%cbGrZl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/X509CertBridge.class b/libjava/classpath/lib/javax/security/cert/X509CertBridge.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30f73b590e83778f80e53fc146939df3e851180e
      GIT binary patch
      literal 3538
      zcwUWGZEqA+6n>^HUD!?mftI#_0;OfQ6t=vn$cxezw9qca#Y#og>Fn)x=)Tn1*|qfz
      zG)9fz)EHy@;1?5OVhlv3MxrEsG4V$kpEEOCc8A$rv)S&Qd(LytbI)_;-2U_L?|%X~
      zj1MAc(XjW1Q8tznMP-(3%UMa7%61Z0kB^)f<6_jd(is&&n}+^Ie%8EY8jjM?CfgeJ
      zO^SD8=aU-RPg!}(Iiq2J?Ee7bGfXg6NUJDX(V-&(T|;XuKC=NDHtJZ1b`6^*t-MN>
      za&yYQV$5a9Y0G56G_o^>ZOOC0+2$-*#R}2J$0yNfMmgv5CR3*gjm58xa_`)-sg@k8
      zkS|8CUBgINq$>I@-pXgzU{Um9M+AMo28|D|V=J~ru?tT`@VJIV2%=Fg9lNo|JI9nN
      z7L5!`uq_t%s-89SnMBI52{;)=H~OWt`!saL9<_@Gt)?RUaF}F`IEdh7Wn1$r8g>Q+
      zpDxX1E%TyUVTK5XG{l;fvl2FfVGV<|(UOH!$y_*_%@p{!kgM`Nq+w63??k?AWUVw)
      zSGkR77zhhFZ5PT`TG>^uM>OoNbxm2Byy28=RU`E=9s3cB;z^P4DfWDm@;$`H(a)kU
      zD%P#HZrL=nm{cX+OqD7%4%HVSOn5oOvvP>j8aj$rrcw)e!ya+hu-++nYr&1{7?lRp
      z*??<VH0+24`97o|uorZk!+8yz=7KU8XGAADMR3u70~+?nl4YxOl~7X}jy3@$3(l-^
      z+&nefUD7cDJ&Mbs-HWVTvm)2#j^YCPqj*Wse1DEKMu(G_lqMKys%~v!%COGNuawys
      z$C^OHvJ$@4?~#&YWfSAx6qbrymx^5DFig91e{;~wn>91aE;5cgr6&Yt>UaYNr!<Wz
      z&H^LrjcN@&l~%|Z&O&0;%1q=Pl~K0a2N@k{Fii(x6UAal+2hI3?qR=~){>ERQHwej
      zV0lfKD$U(crZb)t1IJ;uV&J())qKI0i=q<m;W5P9)=|Kcmz>^b=N)Cseo04B_B$oK
      zmEp8W8aXAFWgX>8w|kaL6XRldN5_g7Hmw<^4co{S#rD3Acd?CiOBG7Csm@z+O>M2c
      zirl`#2(P<VUg3P@<<8^kF@7Uh&z%iio#%cFf1^XI{2urfop<@vf=&Fp(M6s`8^-86
      zj?H}P_PiNo3*fFKs>ToR9NN0L*T$!AH~K6ih=146FX+67o;#EG(LH<M9(Jx`?*qDd
      zRCd)QoZ`+U!Y@}P?D7+CfQ|tSx(PWU{e*Iz$8i7$k>LL-l6aAkBv!8^X1=4hv3cq~
      z;<Ll|aC{X{Ke+2AUylyXSTFe&@&>MP=Q;zvjvg2;f!$u9wG;Q^1fC&U=jS9&5iL|s
      z*QHV>ULyCoRG9w^xg>?l!5S`dv|26}cNWo!9CH?2E<;|VH7<QV7g;?=rCR9iv1;Wm
      zr>L*;5w~DGucyP<9aJ=KclV2KbltCs7hRKa8jgQHh+huHa}4@bY3J_+jwOlpiQf|g
      zUaaJ8>|$43kgk|sMd|?`CgtJEDqd!3#5DpLr}Dd<gV9Ue=Qi^#T0W#?AJOtLCHoZn
      z@L82?13sA!w{NbJR1a6Pc*Q*sr&0*PFZ|va^n2%3GMo~I!#=|)VK`jFP#Wp7``Z&>
      z_&F_KGUr#cd`%(0A&+mX#2j1`a}ckw?Yzbkt}XQTxJrw06o!j2_hUee??T1kObo}*
      z2gUq86wm1xj=vGa{}77L*2Cw5_@6@Y9IN5@H-q?}L-ECWcqfSeEfim__cFZ|#QzbB
      cU#W+GJBa@)6wi4dj(;zR|2q_a)AhRbA1BxA_5c6?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/cert/X509Certificate.class b/libjava/classpath/lib/javax/security/cert/X509Certificate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07f0f3902c1b167fa1dfb3ec665573ae7c5669b6
      GIT binary patch
      literal 1891
      zcwUWF*-{fh6g?dRqj6AH7u>~VBFeaL!G(ZmG)5FFWuz>tnKVOdGNF1pmOS`R`l6Or
      zsn33t<?YUZ2uPTRzP+4#`rO;ycYgi;`W?V|%s5Cf48P`Y`8z)rK~qV+<Of1&|M}%}
      z*C(hW=VidPaFAv=yb*8}h@optMpEBm=<u>-hV(?EDl+K6b{C!KV%Sxbktj9mb3#4i
      zb2aklD>edND|02yIGIfA1sOA(C~iSnj$ubAbRmj0j{<Vedb9cL7Ckd}-vwe(%SIGC
      z=wtBOM7RQXFu-uYpnci!^GjNcE5(-z(PC52XeD?(gMREbVeet+G?L00Fzj=&6GIGR
      zUUAuZl}~P~x*ZV(l-epoYBs+OhiHrEqlC)f2#z^8O1ZQ2{|#h{2fCq_jGAGFT%xAN
      zqtGWQG71wZZ5eV7PB0wXOm<$$YAB4fQ!YGY8TvyJ2}LCTT%N0&<>dcDNWn;=VDr3X
      za2#jNiHtIw@-|{!n`m=p=WxNndGgp?#mdcaaS@m3X3?E|B;uHd6xo26U7z3#dU3_b
      zxymrO(E-o{8r(1=bn3x8Dca%*8Mt{DZQv^rkVAK{Ac8k#UXxXVI=Ic?w|yFmQi<xS
      z7c$Opv5ixyp({e$eO4UldL-FsYFYCqTL;m~Xj!P(La4qJsGQK$jG)p{Yt<Bny~~-d
      zbG_i_Wmt%`2!&d%5^>xVYO=(z-&>oHY07#a7kQ1at|4yDy%vEsU^67Cc`@Hmre-bs
      z{uS7wC(QV~HafZufegoMVTsp8LTJa23zLa(JDlc<*QwT}z3gnBf}CkIRUoFMDT4!R
      z?&GN0G<}rHNC(WflX_HEsdZ@NlVxN(Pk+X?kJL#aLv5Fxyn!9mx-9_NZnE2nU>Bi!
      zsGp{lUQ2U@$PLQ<hW-js4SvDi4{O*StYUMq9|sb)p>=HUsh=V{+;{K`4i~@ScxB}D
      zC!G8VqCWG1CVDF)pWuJS<sX)A5WDHgwKf}~?SKlkFK9eVVqeheOYFfbE8vLD!!QZB
      zW~KGuIt9vT-9-*#VD!(rX(jjA^%QR5j-AV|o14HS%s=ifrmVe(`_>i``v4EEEhhF6
      TE?HYj>|;z5AHx%ys;7SdpxNq)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/AuthenticationException.class b/libjava/classpath/lib/javax/security/sasl/AuthenticationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0469cc5186ebccbdc7fd9cbeba9ddffd25e7e41e
      GIT binary patch
      literal 666
      zcwUu|%}&BV6ot<~p^6BKf<JK~J1A;nTw+L!5o1E!l&~Ml1jf|Xv{S{$az*082k@bc
      zcS=JH;=)<XJu^A?yJzO}>-_`3ISx%^7+MefnNRIVxN#`es~z#kv#(+`5x$ZxS2FN#
      zrmlF>!i2$4U)A8ywy-heFQqS4hauZ&4j7E<U?d92V!enQ@(ksk^u>MrI22)@4?V$9
      z=>;zL20WDdoL(AgA|r;=-aj(78LEw>!S=X6wjC8pf81^k^!zP7zeM>)LUHNovA>)Q
      z){6cgH~mQ%yy$=_w5p*y3>h({*(;3<1t*9@S9GO**U=x@&vY;9pnrp2SyJ?0w3~Fg
      zpvtJ`tQpqcNMul;y+9S{!oV#yNEPQMs+&|bpp*hS<ka50)taHaOmN8APYAWSD<x>P
      tjY=|{-kGxQD4Y&yTCI~Ac9&r;HH{M3@!Yn6nJG-G8urM|u%C1vd;^+Dig5q{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/AuthorizeCallback.class b/libjava/classpath/lib/javax/security/sasl/AuthorizeCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb976ec1c371650ebc0c7c50776e16838723c65d
      GIT binary patch
      literal 1357
      zcwUWEO-~b16g{tB19hNK3L+HbL!=#$@pFYXArKQugNbN~xOy!w<w2cEW~N3--1rA{
      zZH#f}Mhzws6BjOB_$T}a{siNFuR{xMO<c^o_uaYY-gD2L%+EjHz5}>|8wMf_b9?*=
      ze`@=pQuk!=%=WoovsdcDuItGIvC3<;GOz3#h%pSPRJ+EVs(rV-Cn|w~L}vj`Si2J9
      z>{fvuhKw#CU3*h_lGo$`FV_Us_4TzRJYTxbgF9;sY@MNR)ph)UJ3)!p>LUJY>(=jk
      ztguh{s)cX@S>XWzRDQbH;<g!h(y1;pq<A<+GtE4Xh#hrJwyxB2n;~&iIx;9Q%;!1_
      zc1H3ghS;jRBa(<>)I<j77^1m+sTU06Ci;<5-h_#PhIih?V8fd>k;V{lEJ{ag)E}3H
      zcfX-Vy6BR6B~FsiJq*TzUFj38;(u+6W;fJmdS>k%C~v4Lf|U;GGP!&=@zP=PY5k<X
      zazZj1l|<|FTbU{v%WW%RQq_}Tg--eHk>M^fD{Mqko#dul_bTGHR052247sF`m?kZw
      zh#(Gwo-y<yNs%-3fk$A{Lo3k!KxhX;OX8C?C^v&)I!EaCoZ?Zkv({Ifwb&8H)R9%k
      zq!m5Fl(nE@ixm5;i_FkDgC07!5W_MxFHplZD!q<TJj4XH>HQ<jQpQxHG%jEc(B4I&
      z!n8L}UWEJ{@*x$Qta=x>zF_RI*({-hd%B?6NC*ouSY5%{c5u)Yynw|n;HeL7;1^xN
      zm#`Fq3zQvE+15D8)e<SGqb~{bN>><ZWHrS|=zXZhc5{l2kVsY$d5t(bBxmvmlFGb?
      vaeBCZE$<uJ=v!LDyAwRKO`ezOr`OJtHagkP^CR*6^bej__0kxwY0UM%vR?yR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/RealmCallback.class b/libjava/classpath/lib/javax/security/sasl/RealmCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..683a99b11baffe87c1095e3be3ad45f0745f1557
      GIT binary patch
      literal 555
      zcwU8&!A`<J5QhInY_*~w3TKH26^M;zlnaRovGE{;`%)HIEiGxc1|Q24i3cCRhceDC
      z)kGw*huxXonQy-B$LHHSfGbpO<QQs?{FyJ@MEGee)r*_(Byb-D4`v-61VipW*~l|o
      zu9fjrO<g~$aQkARy5T%k-#rZ0wG5?dGgQt!-RlNCoVYy|%W%@V7%=2J(MUMh!fpZE
      zuo#M-48?sq8;ZEkhk;-ydl8Ko@L1|RJIt%8Oc+kRf5ls5F^{9!TxrxF35K%`YMW%W
      zWm#L67)m2C=4qhJq;5El7@S^|#=f|f#`%|m`E96y5kY@Bis-Sl+LW~^&(Utx8%ylG
      zntO*<$DH0!WgB}GRaaFgVBb(I9H2-H%_?QAE=|xg?0TcQ#Nj&Zj+#6JJ6V<e!0ZgB
      Nqa%v6;<4$jd;#HqdPV>M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/RealmChoiceCallback.class b/libjava/classpath/lib/javax/security/sasl/RealmChoiceCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f36f2b7303e7eaf612f3d6501f3e0faaecc3f1e
      GIT binary patch
      literal 534
      zcwUW9Jx>Bb5PgFO2PcSvD2;`c0>+Dp9ma-4CAnCLp}@xFSYh=($Z==%XIYt8_yhb=
      z#@T~Lp>T`&c>Ctfo3HPWPXH&Vo5&Cj9>ueGv1igvA{D>dGcoh*8!0@$GYOR|JHqpZ
      z!hJGf5L$o8B8exqyI|PA2MD<{6{z@}&^&bXpzVoZZ1>_w1>^SJGSnS3`UImBj--V(
      z6pF|qM<_cgkk^Snl+mpidXi9aLSEVzk<$GFG~$Vx5gN`v4{Ec)X%za?SPL$hA((E;
      zXU*ygvxL$}K8VDN=duLq67oI+YO4LvfME5)By#12(m;KMiDRvceGuQPACKvyIhx$v
      zbDiaEHCsn}HRB!mH|{d9G{zaYL;+V==jwFML=mM_$-)N8tfQ+<Y^7`q6;#tr7Pe7?
      K!T&p{;_eTKql2{o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/Sasl.class b/libjava/classpath/lib/javax/security/sasl/Sasl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f730d3191f40cd2d3a1fb5c865e8fa2f72661f77
      GIT binary patch
      literal 6585
      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
      HH9z_{Dm(nO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/SaslClient.class b/libjava/classpath/lib/javax/security/sasl/SaslClient.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..670745bb65b802d94b51bdbbb726a6113454c7b6
      GIT binary patch
      literal 496
      zcwTi-%T59@6g@>`5Fb1Qb!Fnlz{ZJdcMwfT6pbV<WL1Zop`>&s(+<L~x$p!0DB~R<
      zLL@e6Z*$JMk8{7iKRy9m<IF=&;Cw8na^_nK(nPtrZ>80KpP!CaWSob*Kqb@oTAI**
      zd>d2X7z)WfP%x54*-1}MNTA+q-LHjxmnak72-HT>c8zjM>SwZXWGriUnypuXDov$M
      zrK8SBYE33&rqCR;TZ6Vh>2?-S>=Y+>I25?}Z_r;I=P28WCb1@$RZ7i!B4dFfm+W>I
      zMe|Ff!PECBjCd$V!>1&QDRFaw%jUL&O;bzvY|0xdwz6{a!j1b;ngn#GG(+X}`mVCv
      zf&lA~og!~@7X@Tn^-x^IJ(QT=XEx9AfRUpWQ%2<vQ{6&pI9_P$XlyckPxzn1=?~hx
      Bbu0h?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/SaslClientFactory.class b/libjava/classpath/lib/javax/security/sasl/SaslClientFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e0aacdfc69663e771a67a8b3e0b065e568e06b1
      GIT binary patch
      literal 742
      zcwV(qO-}+b6r3Wmf?sg)ZlcNJ!N#M(cp(xGqK7?tdemkqmO|RDfq%qrFwr02k1}?}
      zh*>Z(QG0lKGo4A^yu6p!$7cX1XhbM691iG#CfrGpS>>nPk<&a0rLC1TzC*%~>@-4|
      zp`J^*CX@1;-arZ;C}AaexzIDr;@hi*F!5HIwDlV%^GfqBjpy*osFe9W7o>HM#653+
      zG?!%Vw6v{eQC>*aVyInAgdBS{GA=@uVgEbFr;eeTsML_ptYmoluc&9sf}``l&)-O;
      z?@G}pqulVChSD({#D%RlS7c;3jej!nYHuwWWmd?J(qV^tOSg8MTPh3;Ysg<IoZdPr
      cC?N`{9QX~?avq!EXA9ebnd6<%?Y?*QH?2PIlmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/SaslException.class b/libjava/classpath/lib/javax/security/sasl/SaslException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2121acee3579c5533ee8085605bd266dec02af9f
      GIT binary patch
      literal 1813
      zcwU8+$#WY;6vn@n7dgr#b|lM5Y!+o9$YT>FK!S;k1928)3p*fNDY#HAx#LVCORAX>
      zaX3&MA*rH@3(K7(l^axHnWc&&2TuG&RKA{R%aSY?2lY1Z{oZ@u>()R2{qYxo^H_-@
      zB5>la{7i0UJXLPEj{hLzNw1PAaJaTvR(0R0Rio$^NNBT+Q_JL*+dd2mjP86WDA$n{
      z=W|)AD1i|#*cO%R(Q-9+RX{8V9Gb6HJzrM+qO3I3z~yhAJ^I%E_n|=SQ?-K?Nah1*
      zMON1{D|g)5ea*}Y49+@L$Db4EOHURB`sZtFDuzD9EgZ)10Wcd277hsv=bfrrYHXC0
      zyAmc8&)3S#M=~q!&0)WP$MFPC<^NX%Mo*^O(kl3_Q(eza7Ipjy9sfA<TT{MtDmvI6
      zO98uwf6qd7Z4tF8Fto1xdD-xo>CyD$KB5fQN%9N6EZ<vkWjPS!w1txxj^PYWNAc=T
      z_c~n#j+unmyqh7zRdU1BWNSoPBWz|<_gY=)vfhiiMG2K_Fy}Pptj3(vnEQJ$#+t?Y
      zwNMmxv7=ZcRTOUtjCCJhY23c8+!)>l4KDHC?HVkX?y9nHVHWQgDJ#-r9f=NlaF~tZ
      zGTw{gUCP<@$-)&}5Qx%$Np4Wxi<lU~H5PLzr8hS$ypJ4vFY9$xT@#q@bxrmhg?VSS
      zM2i;Q#DyVzz~_-om36<@Ql$qPe+G*>#v-G6B`UoihVQ3PYq(`~-3jh`$JITnop6G$
      zqmRD<L@<shhPXb!|A7c%{PEFnt<U(7IF4{P%X7gwW^dz&Ew+&OC9qF&JWLjlLqFz7
      zS-==~R%nf*IL29%jvLYqdPO)Nw5PT)-V?RT#OCN+3{YdCxk2gG3wV(*4SmT#KcS8G
      z9NC51(;ehE(*y1qa)pI$1oTws*P@RYx?a6ZA#~ZPKrkIA6T}4u>|c@ixdk5#4!>xt
      ze4thN$(DvW<D8&|r!?Si%E_sTSGx23isRR;^da|;+OUZ>Y}#N~ji5<g`((&HsHdqW
      zrn<r3F|+Rp`vIf)u}$7&OMoP%@mi26-)gTAna&XByF>iM5RVz+2}3;HC&cS`BM8B}
      zZbE#?K4`0%KXLJ6yNQ`5=C&~(zuLrg>b1Zr9|j(sis$uVpxhEyx0uE9ZZpQ&4q%J7
      hqsjFaCa}#?eq+Sn+p?K4*-Wt8H}PSR%|`*F@End(W>o+H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/SaslServer.class b/libjava/classpath/lib/javax/security/sasl/SaslServer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5170e56c69e4d37480972463fa178ca4bc578f51
      GIT binary patch
      literal 495
      zcwTjoOHaZ;6ot<qQp5*{psq~Zn6j~P?Mi$kB#Oo+E@U;9n=+)d&CC?RpXS0J;Eyui
      zf)OHdl6mCJH*?RqpI`4E0M2mepdfHGlw&#Z3<a51cIp{vBG2c=Cp{+ZpeRtw884D?
      z=-s~zDX=VsWbY^#$XJ<CSB^-a;kIrUpl`K`!*eESETc?XdL)x3v0<|0_S&spTcC11
      z2`IISWe1xA$N!o6<@k*<m&quN$nsBXZtGc~&Sow$J4m#8lR4G7;v!l6s%0ur=4zeJ
      ztX^@hG@0*Gm{`TO`VTruN!zKwiMtwLInz8mXL9<AvzWPoC-&qgnGWbiMJ!bp-8;?S
      zmIRnXKFZw8b(D}d)j^r{4OWZ1S6JD?_UvZohp3|VhuB?F>e!pH4K$Z;c<%GLfP-(C
      CP;~+T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/security/sasl/SaslServerFactory.class b/libjava/classpath/lib/javax/security/sasl/SaslServerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8769c08450ddd9cab06a12873ce39d7c59fe42fc
      GIT binary patch
      literal 704
      zcwVhi%T5A85UfFDWqrZLyNM=?2PYm4#*2}75IyYCQ!{p!!C@h@vjjfGpYRhr_yK;D
      zaaN2NRuc})p;KK`l~i~7{p0lwz!{nWDgws?n$T2cta7W}OlFiB8T%5mov`hYaw9tn
      zP!(ttQfVkn<b7|z%6UpzCdUiCz;krF(8bQ`G-<ES<W3verSZJ|m5XxMmx_$(k$RF>
      z-{6MQN5i(=T9z-3(H01=r;5i;kJ2naUEuIP$B#~+9_u6}ms=KiS<74(Wx>hi`iE^M
      z?7FP_l<I7FM?=m8j-sU%w;sx21kR&X694TD<56xEceL>fJ1AYzX<?}e2yCEu6@OHl
      dsG)+ucU8}CAuM=o`=1@`dS>45d9?q98lQO3;P3zd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/ControllerEventListener.class b/libjava/classpath/lib/javax/sound/midi/ControllerEventListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da0c409846d349abb1cb7c6c5ac532d5b68d9dee
      GIT binary patch
      literal 236
      zcwRg8Z`VEs1_nb0ZgvJHMh1<n#InQ+{o?%6ycGT1%#=)h=lr~qqWqkk)FRii)Vva(
      z%;J*NywoCg1{OvJ0g!6_oW#6zegCAa)Z`L&1~x_paj<A<NoI~diWWu&-eibj&KW>0
      zsf-Lt8a^2I1!v?JmH4I>7bm8tT5E<eGH?awmlh?bx@G17b;#gwjvmMypxulN%s|Wv
      V^bsS_ee4VzAQl5BkYr-u0ss#4L`?ty
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Instrument.class b/libjava/classpath/lib/javax/sound/midi/Instrument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98fff9ed2aa9d6a2bc17b1972a3aeae89b216807
      GIT binary patch
      literal 959
      zcwV(qO-~|05PbzRAc&x@vf|gOC&iD+CVPVzR}+(s#27IiO!m;g1Y4moGtEZ*RhsO^
      z#DhP;A7!j=P<J!Bp1gEbzpkqHs=DqUZtnnm#e5Pm!qkcQCC<ID(^U<xEgRDNp+X&W
      z+rH9CID~~rK-IW4p-%UGMuWOfaL<IU9}^}jk?1}1QX(YEQc1l|I9iMbJ(n!KRlwq2
      zOQ@z-)qzyazmct$2*c9SAt6<jO(k?UU{OCmh^Sm#w_MIvr{Sj&$4~}IWC@$^6Ta6$
      z3WVVdTqFp&id6n?w_Wpt15s;nN28TaU9=8GAkDoGI{H|KgqbM!%TMzBQ{j^m!u0=i
      zaz!QDmMx-~%QS=*RxM#9(f}d<uf&V9Cz)ffjgc_W^z~kEc_tT^-d>+{)vnsMG_`Us
      zovoP+XP(Cv=dC8h%<R~U!QoFCV4JeHGzQsTGU~F;7ME8G&J8lfl|RT`GZM#$!EKcd
      z&ijrbY+{se-+CGNgfYN+<H$3U@eEhYdY>_2bF(O5l3AwM&-9}Tm}Z2(2(x?|9Ufcr
      b<`#b=cVz_{`h*2{ENw5@?b8yz*r>Tjrr`BT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/InvalidMidiDataException.class b/libjava/classpath/lib/javax/sound/midi/InvalidMidiDataException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a4b24cfc3e423bfa42dfd3dc67aa5df88c935aa
      GIT binary patch
      literal 537
      zcwUWA+e$(~6kR)SandwRD<LR?@IoD;r!sue0>gT-d>?hNiQ}9&=P3S3-_euMLm$wO
      z^b-;7IZ8nh^f3D}v-Vnh&FjbW3xFdO6IddY@5Mw+ZQmX1fjv?KWw-Q1IBIakbyEc5
      zeA<@}fpT>MQ9{nZZAa*#{q;b|_|j9t=}OP%{<hU5&?O<&aJ3%@9dv~=ma+ZE*1`MR
      z&K@CtrnCy`gh;8}B}5zUKw5}kH3<tVgmhbJc|9KWq<15FjwEE;Zl47N%W%KAj0Shg
      zCsf=2_E00_OYLtDoxoFiSSxppdfuq#cy-_C{Q?oJjyv}H@<JK$?Y}e*%_Mfg?)aYx
      zMZ^&2oZxN=%Y4YV<e21}W6s1mR+%C76hhJ*EzZCRqBuo{tK=MnHDp6lUUWfFXQaW#
      dE7cj+e=;<9rWrC6=BNdOsS4N##W%y5txr2Lb6Wra
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MetaEventListener.class b/libjava/classpath/lib/javax/sound/midi/MetaEventListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aad406108f70e6f9e3e20e20fe7f1c10b4c76979
      GIT binary patch
      literal 214
      zcwRg8Z`VEs1_nb0ZgvJHMh2y<#InQ+{o?%6ycGT1%#=)h-_(*s*Rs^S5}(ZClGMD^
      zB6bEAMg{?pI{lo)ymWp4q^#8B5_SeQMh0=PXlY4ijy{SOMh2E#pfQXLiW)vxE$~e(
      zE>28Owbl${WZ(+UFD*(=b<502Wn>V;uwD;j0MIT*24)~;1-hLP=pJ?k4iJlh6G$>K
      GZ~*|sv^vxP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MetaMessage.class b/libjava/classpath/lib/javax/sound/midi/MetaMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ac2460574898a5c85bbe5227e3b7a289273fd4b
      GIT binary patch
      literal 2002
      zcwT)}ZEsU$7`~qMoSv=}C}kVy*epY^?cNyZHXSe>16S-oSXnamg|qhAIHWtR?djY`
      zWN1Jk(GMiVM3a3`iF`pL32$)(zq4Q95Ad7*1?TlV?Op<lO?sY}b3gZW-S>4p=f%Ij
      zKL^l-^A>6Z_FT4S?AgvzzU*c@r=6_RIV?SUSe8oml(b-M8o@_3Lckb4k^VqHBn7q}
      z&$}hhcD+$MSC&4atO$g1(w*`yrSwz4f5dSe@0fru79Zv5<N2%%!iQ}k1hHMfjExV(
      zM{6OlBZOM`)of=7b*N`>*7j_Hn(+aF?J38Vr_0k5vY56fawHN-<ui6})Gj(|UEMUi
      zOHN6kIrV>K_7T=`vvO7-Sd!jaX;v&bK9E#2gC}M)vfw$a&%zr5@mJC%-5ERQWL0Yh
      z$#N~;!d`)0D!emiyHlMbUeR%<2Fgw@D~kc_V}lfvs5e)T(Sx%=M6qAB;($PXEcNoa
      zzW8VmF(fR+*`W2eN!OE8vKT@u+61<E`5`%5Iib=d<F6)CKpi1;;vhA#3kB(B1==@5
      zd}XUjzAu170u9mWa><KM$Y_pji+Y!AH`;ZmSEYYDgm=&_5b*M=T<T(*QfbD1rSrQX
      zyazw|R4ikn@>^M*TnplT3|OGu!W**8l{`5e!f^}=)Y`?OJ(tNB<^&QOt2r}qS!TSx
      z<R)8MVM7VP)>WXjfk|YdJUJ<gboVK`VM=;w9YpIUE9*gRNFx?kmJBL;uKBzuOXZwL
      zXJvAESH4_&6+6hPw=vc9s^x+s`EoHMPdduH;SC<`P-n51@#<dH;5C@=b7kpOfPY>V
      z&edKJTlfrd<uO`t>_}M80#C3t;d_K|;vpiwnzR}WpB_v@4}Pu;20YL?8~AKtX0Wps
      zdYNw!J8=T9<0N@}NE;5J9ZBqBM5uy--Q)!r>MB<md`Sk1aa*Ew72iCnQSNa$_7Gv?
      zA{VWDuGfgeJ8<pl;>zDI<DX@%z07%z8Aq@KX?_mQ(==(?eN^K|D;QOLHRA_EGl-I}
      zpV<T&v4>-m=EpCBVkf@iJB6^^7+$!GeM@K_TS9a!(((jvHa^8$kI^3K;^Q$6KS9qQ
      zntoHaQE!B;`EFyKe!a1{@=wBK6T=sqxY3*7wD(!y5h5GA-FQ3Q6kfP`qsP35-3?|q
      zFxO)?m}-laU%T;n59ikW*s;Zxzszn+9jUjjTcW|NL*K&9+i5j9x=?%Pd-&NsmEa0f
      zt^C>MtHd@vMgMy9T$T)ESYnpKNj74V4b9>Ja%|i*<;wGd7SNARD6NN&QN{(#z{aO=
      zFwZwvP{L=NUByk#Z{rKx!43ROQ6JzdJml^YZs9q;#tVF-g&5L?TwW7mnTGLeb1Z8~
      zYV?e^oPu>=kyi3kjsnJMs3FRH2R&Lai)WHJRW(tU77)-aF%I8fE3uOL+YKJHs?Y)-
      zAyqw|V`Alx7A1<ARVrnVG(HOqYwv5(+I*C|zwNiR%n{N8e&G2Z5ynsS(cKMBYpJ4y
      z7(1+4gn8n$E>PeMTUkNAKx9>NbHxrRZH88*Rxja}AjWtr&aR_w)7kH{ieH%PSB=<E
      T$xubKxOYx_TktNZbLsy8bWN17
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiChannel.class b/libjava/classpath/lib/javax/sound/midi/MidiChannel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..341a9bb2eb854a884d5884acc7fdc83befce6eed
      GIT binary patch
      literal 715
      zcwTK$$xg#C5FM8;(1mWSrR-aKA>tDN38{zDN|iYD7E+U@a&45P2!4$NAHYW;W}GPn
      zL=Jv_i#-|7$LHHS09?X(4pIV|6ZhGDaUwI*BWD_n0;h}1&DhmisvM*RR4CynSNl%y
      zVIsX)KvtVr_OyUZtJ7)U3&>gF@lim!WrcDi<GxX^{ZK~HER?ADe-(;$1k^Cf^%h>u
      z|3_SEQNH9E9fwAd?W0<vXd)>YB7X{vAG*`IpQpl!B%nzD6~x~7TIvx}{}-)eDH&fW
      zwYV>`WwE1ztJEEK8QC_84d~4*D=Oo;^F!3wusy^_!MnOfn?#^j^5+6x$${Qf2Z_Tw
      zIy8$Vr;{CO1EWl$CA&OU4?TGsC=677%<O{3l@)+RfW8KfFauejQRcpJ+2RWGJQOSz
      zSueq=#WMR9_N(kyS+8-f&iWejb=a`D$+*S14GoJs(6qP<dlvVZA22^;e#HEk`3Z6C
      K>=f4&oP7bNUX}#_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiDevice$Info.class b/libjava/classpath/lib/javax/sound/midi/MidiDevice$Info.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..773d831675245146e58a92a9561cc8c88fa664ec
      GIT binary patch
      literal 1283
      zcwU{9J8#oa7>3`IxXz`fxik%waw(-i;<Pm&CW=^EAw`5T6lGv@l0$N$#0J}m7+Ddw
      zAHdGUP$Z&C9hjIH*!eSv?;KlgNi9Igvd`<|_xa9uiSq5|!508Ga5IGj!*bsq+s`fE
      z9XTCqC_2J=K#y%c7Hz&-cb>Q@XbgGjvIe%(wH~(myd5xTjy>cI#m3R6-M|x0cauRM
      zbEo5a46_~Xw>|MR5U#_J8gtKAO1~o<5!_|CUpdMD-%hnjIc>Qeo<$OK2C~R8BrDZs
      z1`GuQGti})H;@X|f`N3XP8-NTXUH{#!*@o*7WW?6t%0h}ZQFyU?FsoFZE8VJ_zWwJ
      zzqL+wf<GJC19C4MFEs4oX7#bm^`e1uI8V8{t^V)*jBE_)p6&N!ZK|TWq^=lP!DZ@c
      zmj^p)5~WHtZWb9bG^26Mk={N&k*xX{4J948Aw~PU?#OHNdqUQmJ1T2K9>8GK9fx~c
      z1KanxpTc#9r9bq7Iwre;OVsKl{q!^><TOYn<Sf*hj@FD?)8xrwmiz|2y-<GOthtX<
      zW^IDJxi&%3T%Vw1E@~5$KPmQ%^eFx%@vkV>Ys}#d=J6Jbct<yID~v?f5}=gKgefI+
      zNhl?=Nh&4t(NK^Rin6&)9_iA}+CDCPJUls!@?M=%4jqT5=vY?O7v#*MI2Nsvn4zjx
      zr^9?uVT{lag(=`FuAP8CBfmEV@5REEShzS1AH>4dShzF|e~pFBShze5e~*Q0|5o#l
      U7&w77^<2jWtyzUz^v9R^1;?A$6#xJL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiDevice.class b/libjava/classpath/lib/javax/sound/midi/MidiDevice.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a299aa94f4e446742736fb424318fd2e7c3ab77d
      GIT binary patch
      literal 621
      zcwU8(OHaZ;6ot=4pi)2(6(5Lk!2&imu3h>_FcOTfg}YKlGNjCqP9gj@7ybZ$l<`gx
      zC5C8|_B7u)_h#;$_m9^%0H-)|kRsHE{?wm&Mo(1V8_B-(I{dj1QyB;cX+qfsywFzz
      zuiG1nASM(CBAzGO>O~V8&DPByZ5lRpMo8<iP=vK+>xtlA&H^!xrB=p4p3qv^;88J^
      zq2CL|cb<?5LTv;gD@}LN@|jTOV|8Q@u@`97ztu+0^K4%eO4jygcOnpSDk78cHlZ@-
      z50S6TNXBtu<ryxLg!-xh7dB6}!Re)X!ttttr3BZw_j(cq;!1`*N$F=>C$^4IXe%Y6
      z^Uya&@P-b#=YK2a4O__)cr@52$M=^(7WN(;tTWFsO|!a83QVk1#73eeloQ=VCDE-f
      c-Nw$Z$|`o32~ybO{}lFd!0Ixq@mojk6Gt+c+5i9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiEvent.class b/libjava/classpath/lib/javax/sound/midi/MidiEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0bc17e6595ba5c467b6f9f124e7ec04829493c4b
      GIT binary patch
      literal 734
      zcwU83-AV#M7(KJDySZ&z_FtCPl^V2kU04tWh1P{4bkW7S4%?Kj;I7e21qDUWMGw$J
      zMc<6NP)OZ;zjMBG4)gi-{sCYQc@rAL+O2!<J~&}-5VW1HXbY!C;pCnNkqMn)R_>jS
      z8~Dy;>y~>FgW2U_==z*tvpNx78}9cR^hkJj4D6i2I1qt|Dh%7jzftF<CIOFoZEhif
      z85=3284|@(GX>IPBMC!RSsNy%7&286@QXpW#rqAn)gf8gYR_{!O}8&(KN{-MjR+ZX
      zlgX7~5^VWAs*UXxilzSynjw!G%A;OX!cBiXAjM?cs`mzckDm&uAstig%DdPi8wvUh
      z4O!_*Rpg1XPMZ`giqq6x(JP&Dru+uGyz@#$;T3bw3NTMGtJVh;D+D`48b?^5NkN^@
      zU=d4zsw53ll_b)rUdGCZ#-S{C$?^*_Px0{~;7lE~hYv;v8CJ120#}Gik{RXv4`~)<
      lpiY>Ey0D~rBbH<+A(D6<xmbu63z>WTCFFXdkPY=}^BYhHe<%O|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiFileFormat.class b/libjava/classpath/lib/javax/sound/midi/MidiFileFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6e2ce4482c3f744e82cc59ff1f6fb3a621b225b
      GIT binary patch
      literal 1095
      zcwU84O>YuW6g>}Spx_|11yuS$tF^+2#k$pWVHKqUO)BEj4Df_Uh8Z(6G<M<MwQGNX
      z3pFv3n7Hr<_@k`%4P!$oiL-e3+&lNYd+wR}{paT|0K2#sMTj9kFpiD4W!D~A-SSX$
      zMY&E#MVP!|J43^ZLSabBrm|^Rz4Bpuz&jp;;+?$V46Mqab;Yr8g>5w_r3ypb;jV3t
      zJStMsKJj>sTRpGOus9SQ$98$gwz~gn?116&i^j9Y;mgLW+T+HP=2M2mzHPalVR<dX
      z9P#ieJq(ct!V=yd!$P52sa6k)EmE>?cX=FPq&1|FVF(wBtr!@tXow@Co(7LBt!TIe
      zO`<goDk2i)HAJx>(WZtNA`Hozuy|uMY;&h+v`yM+sb+T!vt>9!=0Q>M`obkv?LQXY
      zXHcaD)T>QxPieHry@_e0nVd{g{^*>UR3|$VR6m+>ROSz-Oifc>zvwHG$=UdGd*pPu
      z)WfiRUfPb7j!oJ<O#eg#iZq3gA}#S_EXd<QB>N~{LxOVpYJ@{b`Z$F}I+v*OiEfKh
      zEa^Y6tcS+P>S<gZBd4#7v8r#4v97O;v7u)a`7W!{t8e~I*Xi7*nLwLn)d?NZy&M_5
      zMh-pX(Z@{)+{OSmsB6zxRl*ik;Um@8B9Yu6<RiI5*hky`juPF1`~esWC<dy_6eUyD
      zzhm|DnViXWu0KwjGz8-qbP{rry#95D{BAC}G<WjG?Bw@z$#>?Gv$Nz6bIChCX+jR2
      Rk#k>W$RFpD@A_T4e*vR4x-kF%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiMessage.class b/libjava/classpath/lib/javax/sound/midi/MidiMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ddb8aab28608d7460e568e40471f537c52ac366
      GIT binary patch
      literal 1052
      zcwT)|U2hUW6g|T(EKn?8wV+~c{e(qJjE^-YmbM8A^^1m=M$G^dx@6gH*oBlAe~Q1L
      z51QC$Ow%9Wk5cc<ZYZ{m4?A=3oqNx@_ss0C-#^a)JjJ?!2t#SWC;X`9xnrkS8(KZ9
      zwoA*d@I2lZ26Tpu%&6Ji>DOL&2BPa5h%w~PqjlSL1n<~_LGN*&Geq_`8Dh3@`u+g}
      zYmoEYaxDJ^L$tiVS!q*d-R+4aG^A5lK!!mpSK0|M<WevYm)24W2_zZPP0JCl#>0*n
      z?FBTsrrYIqn~yB%he6#xusnv9=Km(zU`Tqx4?XIO+G)sslG{gJap+sF;~BWkP`QNC
      za3<WgdJ=4lrkv#`aR+M#R{v3|HT8TkOyMr>F(mkC#HU^NaLQnon-}%mXj~Brn(EKB
      zs+TKLRz1K;&{50h{@7E}HG)Vplswv%cR~`DE0?hex8;sUU9n?H-7<6XtjlD5jl|dJ
      ziy{JD-UhuFUET%lF|rnrqSI^Sy`hW<?HThs7R~AjvS#({1o^KNi{Lt~Im!oK(po2k
      zEu^uHWr{2Zbts?+C`<Ctc({R^baqQ|()(0A9qL7+y=azB<HS<c%x}nQr5{)^OIPr{
      zCA4>Bw+Mev@vR2+GrnTTCoMTygzWox5YE+7vjYX9$)CoXicOK`iL&}-Mz^S7-xJse
      z@;}avRtTvK8ttK?Vt9mdNU);_fh7s~nY5Dx&$9UQ=~z3yfNl}SfQGRZdMc<3(dnVi
      fFl&kfh)T?JkeCWi=8B_1G5y;nstV+>%6{?}yO6v}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiSystem.class b/libjava/classpath/lib/javax/sound/midi/MidiSystem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b25a832b35f203bf01f10e3a28eac4a3ab90fe23
      GIT binary patch
      literal 8221
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/MidiUnavailableException.class b/libjava/classpath/lib/javax/sound/midi/MidiUnavailableException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13a292367dd01576ae71d82d1593860dcc07c2a4
      GIT binary patch
      literal 537
      zcwUWAJ4*vW5dJ1lITQ0TQ3Dosd4PvlX(Uaepqw^&^p|9bE0;aFhorN!6@Q9Vz{1AP
      zA0^ISf`TGg?99&WH{UnkzJI*D0ysc5jToVRW8c|x(|1EPF=uij%}Wjg#a-#xBS)Oh
      z$Kp1Su1X_8C~3Iq*lKEiJrMG~@TBbwh39iUIPVhZf{^XF$`5Q63~eVA$^O&h!+o~!
      zMo67VC4)90UaJoYiH<uF2IAPrz`!~oXGtZl!r4f8eZ2#rXt`q+uvv!dRWlJ>OP|oR
      z{_UYfDA%lS552&XYTBv~wR%~rmw0tw>-_=|jGh~MV{s<6`0igC`+5?4V0Zk_gesCq
      zaZYm;!x|sbE;(knbI6%ECmRc7pCd?)qrn+CLITIg^DVOkp@3pU%8RZD+KklLRHM1T
      a=1+zW&vYY($`Z9=(6<V<BJu5LX6F;bM{~sh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Patch.class b/libjava/classpath/lib/javax/sound/midi/Patch.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d633eedff32e5bafe531e2d8f1ea74d4d2d2a0ef
      GIT binary patch
      literal 550
      zcwTK#%SyvQ6g|_VO^vbEs<jUnx@)sAi0*tV2$iA*OZSs>Xs3@v(p3B?H-aL#@B{oP
      z@y@imkTP)ZxsP-1VZOdUJ^}2bY9Yl?9Pmf}<V~V!*!9M;E4>y^g1!ZlA+KiMh=)Dz
      z&L4;%VK99j4jEX3!Fq_JUd+b~nPVBs<dh*@Yc%Q|+PaFm!iE9IK^7|vMy=ji0>i3<
      zG%^aUIk1qSPE&^Bb~^S&+~)pBFcg|mz(*Y(OI6RCX401vhEj8}-6OKo6Un7EN5{yX
      zO?B(np?x1s<3L<XrDbc%o>IatSuyB4QuN4~MwZS7O|no{ZK{UUS9@jm9m}rqhMWp{
      zx2n)Kp%+apP^@VB2}~Ri{SY~vVIAiv;es--GZVrFHUW*)VWyEfog!Ss*8H$XS<TY!
      gD{{|&M`nZ@E$GY^=7RJ|3(5Ka<n}^xS#MQ-0MQjwC;$Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Receiver.class b/libjava/classpath/lib/javax/sound/midi/Receiver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..965bd62c370281e7811906426a5b830f1d11cda8
      GIT binary patch
      literal 248
      zcwS{r%MJlS5Ugfd@3=ZioVb`cJChJ1A#oqGoz2MD6|=;*Irsn{C3+<|=tFm^x~fu-
      z=j{$)gjR?Gp|jT)eN{d^Cy_eX$f`9PwiiBy2ng-`t(;C`wc733WQ4$T5)pd+#h-O4
      zYsud0n8)+MmQb5q4IeX`CO$-!(EY{Doa0!#O{O#cst6_HQqP29|LxzT=ab>7bwV{i
      g&4zhOnIJ0UQ;?!1lm&-^0=X4oYN!h$G;#%+FQt<{3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Sequence.class b/libjava/classpath/lib/javax/sound/midi/Sequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5538228dea7b7383fc55c3c10874f4753c0150fa
      GIT binary patch
      literal 3224
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Sequencer$SyncMode.class b/libjava/classpath/lib/javax/sound/midi/Sequencer$SyncMode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a38235843b07d75db90eb0a0bbf9db0fd44adb4
      GIT binary patch
      literal 1124
      zcwUWD+fEZv6kP|(^x{x10*conAZ<|!-UVV}hLSY)lGvsR`hdf5qyy8LI5S0k@zGa*
      z#0QNU5>5O7KgziG=?Gdd@nz0FXYaMn+H0Tr@$>6<083bnqfcOZ*W5Q>6#}p0ZWr42
      zwq2;p7ai$Z(x0incCCuHE#rs@40B<@G2NX)ZEIIrp+LG+Z4@6@AC@<ba?N-oFkAi)
      zwiSV7rL<PstZ!5eB2jUpR4Hy6wY8!^yjqJ=G1qKMfzk5O)%DP~-5sJxtXhuk+TjC%
      z{%o#E#RhRFFwC;tQ2MUvWDLi%_EI1U9j7rSpshxj@$7NZTr)|f6FLT<C2%&9nPJ_W
      zIHx1di3^eDOv7%=4ByJxOF9yq%@C~WagHcCaYaWGn!r%mc4f8G-jaU9+;UW3o@F{s
      z)3<rA4pZpIRn|Jl(5#LWPEl)N%MM69S!p^!kNEB|R&q}mdtFB!^8&*A+qS5PY-^c8
      zi#03TN{qRwV-ZV~3caoo0%O_SNuH<bUdOlOy3Oj-hm&34QUSf>y3#isGYDi5$1*wg
      z@7F-r{eBOaqE`FqNe*C=t*2;`omOiiT9az+V?R`70y+i>m!_Sm(DbCgL2Qf;9bn`W
      z##MYq#gi&Nui}d;zO3S@kBV}dz7s?V@f5mvMuUHj8L@{&(Zr0Z0Al=nqU+Y_gwIm>
      z1I*^<zhLf&C(TksNdL<|lH#SpPjsu1Q!Q}BO$dzes3Okgh*QhYAK=>iLq3i25O4nA
      z(GGbuETEuxXnYY5?*$t~+HUmHyj3)Mw;-Y!!7bcA2L6n>4?W;_CxH8KM}6<&p6ZL?
      I_pyTHFG=OfAOHXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Sequencer.class b/libjava/classpath/lib/javax/sound/midi/Sequencer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae2a2d5e020587ec8f7310b5c605582d16d4aeaa
      GIT binary patch
      literal 1751
      zcwU`U*;3mu6uqK>KoTGU3Y4u2P@FCVy0_`dlGY3vC}H{lPsY}`21iO|B}0F$5B-3C
      zRHs*p60#76=|ggSj?P_lZRyY7U%vrh9qc&t5tuo3YR-8s;#KD5%7GW;O7usSGM9=t
      z#0aF-dM<RBpW8b*rLK&_0D;-As3QJt(OTeA0?CNVMiv4K)^5)l`Rq3WiS2WjR%F0g
      z6o({%Y?s|;H75)_UBi)1(@$W!o;(+DG*zmyBn5TKm^Kb01jd_ddo3|ZzqP%2D|<zM
      z1o|WC2ua|ErFxA;l2-@}1<^s3v4Ht{;fTP9wjEHH3s1|#%Gtt`7;?c<LO*Xa=On}?
      z<}R7hp>W)@ysfGZ*WFt|RJYIev}-r+?~s-&+-4j5McrUQ_0z7#tU`ymxc{}yruj&N
      z7aUh|fr8&5=nR2-wo92Wzw2^41V)Xz&!eC|_R*+QiCH_Ug$cA416S|}cgeg)p2>Fk
      zB5X41v5-*<P9&)){bX*DdpIiVimy*BHGFz*8NWMx<*KivC7!@oS9GMRXOFKLpH_z^
      zbZYdXc-rrhGMy3@NvXlAw_mJEwDeo{k=jnmZ<Aw|t-jNyxx_=>Vye>#$McF5PgspI
      zxf|ea7!_&?-J9sL<yHDALCd^G|33#dK7&ncawY{2Ln=DbtX-0(hdF<2XOC?>;q{(+
      zrc9K0Rk*YesG~K~d^xMC4o=8s=-LdOD57{jeI~GYjTcH_u<?l3B_0a=_2ad>j8|$L
      z29XURiy<bok}}Ew^ue&!Mj;LA0?xpg#&Lraa8u)?;Zp{ujeZMeG|s}D#(7xKcpL6$
      zyleP9!xs%M8GRY<Yg{pCL001f!yg)aWc0_dsxb#^8rR{8#-~PqX7uMqe*rHwzJk{p
      n-x!`Z{4KoG_#QrJ{0N^kZYad*Z0i3l*hWm?)C&0f0z>}*Z)nyC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/ShortMessage.class b/libjava/classpath/lib/javax/sound/midi/ShortMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58a4653bab76bf7278b1fa90c952361fc7617535
      GIT binary patch
      literal 3400
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Soundbank.class b/libjava/classpath/lib/javax/sound/midi/Soundbank.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6cb8af2c249a71114f59b17090a3b81ba7bb172
      GIT binary patch
      literal 430
      zcwU8&u};G<5QhIN(9qC^f|!`tNER$6hODR(QbiGwSeV?z3NDR<92fCy3_Ji2g}9hN
      zg#h8f|Jirn-RXaQdwv0Miv0jR!r?+b$|up(D^rL{7g}U(IG5%=z$Rhb=EYK)Qq1NH
      zl{-REDt9R>ML39)={lb|t4)~_LN2&bw$ZgA4E)0swIxIxpQ|Rf`oa0+kUy>!54X8$
      z2*+`9JN<j1&&u?p(}iiAT~*3BMvs0)*Cou1zA=Qe_$P2BU4EA)|8xp7zsE!`*@Wn8
      qzmt~g69^k<Pr&|dp^w(bpwsP62c3r4@jArFYlK}U*>}Es*n0=MK6Ru3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/SoundbankResource.class b/libjava/classpath/lib/javax/sound/midi/SoundbankResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d6077963fd5504611df56c42ebdc37b8becbf1d
      GIT binary patch
      literal 1130
      zcwVJcT~pIQ6g}Id#MB_rmY@hIh|)$h<1-)f{bC1Ztn`)Hwwb!vrc9bT_`+|(89UDS
      zzz^_8Io#c(d^EK$yyTv}d+xb6=VtQv-=8Z0AK(~BF)W?(@BG~Dw7Y)YZHc;Y%Mw<(
      z|LwC!*`Veb&>1Er&uwzQ;T}~_y;{g%cKS?)xzhi2));i3w>*Yy=~ks22EuR9omuB0
      z-)-_vhhgdtL8a(^Y+d*w++^4(jB1jUPG}V?)U7NUJ`cMAjkEti!F6X-Y3jS}x|e~5
      zDGQI0WzY)6iV23ig*3(_vMm^RB+*j~CNc~YCE<IA-B#5LzVK>Oxzn!kW`zerp5vq*
      zeidZQ@`y?Mdm^vw`w~CS`ZD=pvolx?FTBxVSSS=n@6jOsp;~1=rVcDq3hv$RGk1^G
      z->99;M&lT9^`Lz8#StM>R&RPB<U8332j0sPeUV(&=o8nFmG%?LO7m4D>nWz8)1oY-
      zFixiwo?wFF1tFbc-uaD5=WP!;XSIiE=UopoKb77ydfHSCY!LG!sclj1Hged(EM=Xj
      z9?vlcC?xwch2#V&h2#tx<_TNzorwj?FucG^ddgW`it;Y){6g+h4Jn&PVxLsAs5l)r
      oV_3w}kmBjV;^U#kudsaM#_NR0%%I3gQiT2yZ?K}o3W{C42Dbb3r~m)}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Synthesizer.class b/libjava/classpath/lib/javax/sound/midi/Synthesizer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb4465a0cc309a641c19716ec51779dbb18a6385
      GIT binary patch
      literal 1039
      zcwVKG%T59@6o&tLL-7JCUP1Aiz{ZI?6XU{2Of(otNLc8q%v2dI9Wv7);-k6n0emRq
      znMxE8A;!h@PfpL*)AM)E+xyEafJ5xZFv5^|;7$Hy1zxBetL{3kRc<L=6M_3I{20a<
      zl2L{wxw^Nms}I7~F-$O|e{ff{6hzat1w-Oq=qvtI@?@(~^HhsrG?%|%h*P}CwNUnF
      z=#pWYLT5Ful#l_#b}oNg?0a-O=a^xRh>Ayb%9`u&SEwU}pp+YwqrECukL9q@@O&*C
      zhHUO9_?35@zoBZ<<IaT&v>(=m(hOUDknerNBt!LAszRpuqRtzg(8*wE=sgz6se-uU
      zq10bZF>L1YgPLYoA?&otUCFCbd><J^UG#IhqbeC4Jux*eoGx-9GUQasu3+lZr{3_8
      zM~STJwwIWrflQxEm$<fT#-;h**ZRkCbhkL=`L;NBB@IHdW10>kh(?G0eEP;|2op43
      zF-#&Fvnj-lPGiRCEar?RkTg1v1*3~d8C}A%(G{#3UBkN3bXzlRZUdV}v)D4ajUB4Y
      KuuJO*_C5e1)-+ZC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/SysexMessage.class b/libjava/classpath/lib/javax/sound/midi/SysexMessage.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98b6f6a3f904e264d15d7d51df49a1e3303900c0
      GIT binary patch
      literal 1753
      zcwT)|-E$gM6#rcyKsMVXU_YYdgEm(AXd$)LXsKxuLhQDrYCtTFS~qYdTbEs2mYU3{
      zkLs%rKKEbH8QXMB#?JK7zb0>ab3FI5B^WZk+<VX6dww71oc;TsKmP)71;r423{wyF
      zNBVZQZFj7CwrSLjY-y*>x7T>Ptv7fG0fxzeCu_8LFBry4)l#{z_MmVtU;Lz`RSFDD
      zV>p$!t+uOMZbdgc+)tDT3=^e~3VCg*_~3Ys_<qO`ykS^|yTIU2Br6Poyj|xC{1{U)
      zf^mkS#Kv;6G7N^OidS%&p44?$XYg$-GmI4ti{I@uH@Q>RH%-zOE!s8Rtmuv*V(&8G
      zZW(Qcnd1Li&oL-%?)Gd3iCPn)l)`q6w_Jnlg)qgC9DvcRN4ja$MU_@aUGIGeGYsd%
      z^Q@^`jcmzv46Cu+G0Zx5!Z=T*mI~s{E@_<V=eX_ow}!hFpW9Y2jagBM*BQ<vipOzs
      z$%=wEkO<*ThRD%Z&2o8zJ1UY$F^stOExz5&5HMPD5J(VRQgIm>vaPpT+^RENK8bPQ
      z$}^J-V~)BVH)sU7UXR;fk^a@Wxb292UJ$&c;wr8&gkAfkn$w9B#Y|#W%)q>gSMeGt
      zGP%`ow-`bRO}0cq4)2F>gGRA0dxw~tDi&~)VOVz@eWzx(b{JCqK0e%h$ZKv+JK;*}
      z&e@WRcM&93>V?~(u?aP}yCP>UkVuND3p%{rF<lzYnrU17xD5|aA*?aVZoZr+rDS)U
      z8ecWUNJjc6FC&t1o)W}g;Um{W2vQW1QJCW4zF3jx5va7DqMN&v#b}>M4ef__F`D`V
      z5&!r>S?q!F!}9Mk>kO??1ZcfUIExs=63$^6XX!@m=2JXDdqDho9`*ud`e+ZP(u913
      zq{!Rbr1OqMINN>YA&3+GtAxQs2kBc(;?lTF)L$u2IL)Q~S0gxhjEp=SKE}m8Ojh?W
      zU5&<fae;21;o?)Iqgh&>;>s@Gex6EC?&6&zDHo_fz&$Eal?>j;3^tI!XPBe&HGGci
      z_(DpIcPV=kbDl(TqJ|Ti5c}SM*cT*Llx;mGrKVz1=<I)l#!iqq75H*L`~(r%j@U2d
      zOMcmqsb{z@zCFR>k%tVG9Qc|VV`3CdQecrU8!0+x(84^vp|&|x@HRe%EB&Ops(OCb
      zshL6PXI(n;$&+v<#v_jvuce<#uRx6CEC%ZP;iA-)_IG2Fm;S9MY*ZHQJ1Xw?RGc6B
      zdL8qKhpFfVuh*;iz$3X&MH8>41*k{i?@|!K9$1y;>DF<cAE^L8QT%fs&$P!AqFwWN
      JZp*wo{{q?~T@C;M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Track.class b/libjava/classpath/lib/javax/sound/midi/Track.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48f61a4f035c13dc095a090f716dffe19ca2089a
      GIT binary patch
      literal 2021
      zcwUWETT>fl7=9KK7UFU?Y0JTcL)rvV0%)t{RDn_(OrR|k1UsEB$rcvEMmHNoFM8p0
      z^xo->cI@btH#noCg&CQ#opR?N@yfqoeZDW-kP0|XCg1yg@A-KT`^VqE{SIINw^dXq
      z2(0T{`gS~@D_EKMrkOG0^R}MeP~lO~AY}2ZZmq^=SJsWRqoB&zGAt*rpeZSZ1;@<B
      z7bwcv!wRaUbk3k+bD8{_o?j!A3RNSfWjbRDDkISa1)j-V#_*vMwHj*RQ&ImiXqjIh
      z>QGw)hScCim5SFDG#+v8LvvB<lm->m3hI-lWy};dR}6bzU&$IG<y>0NF6g!?-Y(PQ
      zteJ#!I(d8@m~*9`$tVa$j%uWMObNup(Pa@os3C+7mLZ+99No0&*IzU%FQTj5rJ)TS
      zK7?^j#aRU{C%e}WK~#adYB=*|dP7!kT9l<%Lk#B$B5!_XNOnT7;~M%g!1t=?gg=sq
      z9!)~%y(v<7i!%^O9Fryc<CXnX(Dq;075E(8F6E|7^KbH>V7qN&Gq+_3xT6||1>8DZ
      z*6=RI3CFZD#`f&J6N)5}ObV+36;tf%p-RGX4BOJPQ?{M6tMQ(KGcwVTX@&BJ6Iv-a
      zAuH#EvSyxhaRmu6UDN-HGw0Z*wJKo-UsmX3gj3sT<0Hq+S$P#R3L=Mo#%){wG$ElB
      zoY{L5!a=^I?n4T-;<%yVCgv2>hy|F`3wib{R-VuNnw|SZ%;a$NSgwj&3cAXRa6(A7
      zO;(mIV2p6`f0z)V*J1ZKu)eum!A=`jO|cw4xdVN|13I`{mHcp2@Xs}rH!d2fxO00c
      ze~q^r)KW-Wd-kC9?4xdJ4-HSy$ZIpN{wE0hER9d|Y=Vd9WuBK%j}f$B9B0VUiZ1wW
      zCFKC3-F5#LbwxnE=T|f?rJj=ndUx^0*HB{zl{@aUbCE~)gwWYVk0*1{`va;TcwhLv
      zk8nzG{oY;lJwupU9S^^K@n@0exl6Ob*nwv!cJP!q_^rVm1`FV}q<3&v(qi(1OcQLa
      zidh1=POX~=VjkVNg*X-{U&IB{8GL|cEYUJ0!SzVcx(iO+F5n{Jbz=x`;~mD0^LL3a
      zFS)}d=)X`REJt63KJrZodLy4>W9^U7ARg_zm{=5G_HkvY>FOS?Jw1dqBw_VQ+Rw@l
      zm0+D^GXaBItAw>it#!iMKo>UowXvxEF|`c|B_u~;v;<|;g%adj01%_lkN4?0NvVgg
      zl!WpXIRZ-L5K3cfu_LjApJw)v;;77?-^KN3NR_f~f}iCT*@tQC$2m!hS+~fkxKHWl
      zlssV8Uvgx>pvL{OOe3XCBW%nN^9gY77TF+?DZiy|sRv2L1XjBfv{Q;xCHW7_rnI^=
      zrAvsq_67PA@xl^c^116qcCO8nDa~H*!H>NJCpM`Aoiym=6m;U%^>|F_cTDqpN*>F=
      W0l9@?H*h^auQ7tDVDM#W`{6%CjH9vu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/Transmitter.class b/libjava/classpath/lib/javax/sound/midi/Transmitter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41b968b49ff38ac6a3be4147a56ce54368d3179f
      GIT binary patch
      literal 251
      zcwRg8Z`VEs1_nb0UUmj1Mh2Oz#InQ+{o?%6ycGT1%#=+1kfOxA;@r%VlGGx01{OvJ
      z0gwv)oW#6zegCAa)Z`LI2JYh2lAzS&)XcKfB1Q%|4Id0cV6xVlVL;{S$jW6kH1Vis
      zWMECs$uCZ2WMI|+>E#N}FD*(=b<4~F3JD;&O%G%S8zTcyAp;071D(psz{UV_GCKnY
      RnC4{Q0?Gg#03?|hcmS9(K@b1{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/VoiceStatus.class b/libjava/classpath/lib/javax/sound/midi/VoiceStatus.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..23d64373016b5db9f85762e4302311319ae24ac6
      GIT binary patch
      literal 518
      zcwT)_Jx{_=6g`jD7Rpl){6Ga%a8L$|gNqs+G$tej2MmMTYiZzNX-#Q~f6Kv`IQRqn
      zQO5hAgOkfS=YE}g-~0ag`~q->BNG{h>O{=Nt33;oU}#U}P}+k~x?VpPaWXTZGZa;a
      z?TcV!KR6T5jTsE##&Yg4uqOu79g86Fe2O{@x+8*TO1?zlC=ydj1Yt~_#ys?ssS;N*
      zknuHxc6>6R@@+WuENEEgSjAcn3}ucL7)ot&n8+%%&5>KG9S&=$_BirORpa2uG8DQp
      z@OsJA@uElJ__VFm4PD_6L?l(5CiQqMXAJf3e{a8Ju=-&Vx!%20L&ZO}Q#FV~+N{x6
      z8pL!kDW=X{a4uyl<$TIKWu_iWSfEHELkeiNK2U6F?<gtQP_U(-qF`4+^^Mvxs1r68
      mMs4Ugr)3vpc7rnRP(cSZ^r+s(K6UV=H4f-pwYafxX#N6Vms-{U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/spi/MidiDeviceProvider.class b/libjava/classpath/lib/javax/sound/midi/spi/MidiDeviceProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9bd4b0c2f736fa05fda05fefe4394f0d5c795566
      GIT binary patch
      literal 927
      zcwUWD&2G~`5dNli;?$(Hq?AHSLg;@&Rf}F*MU+CNNGTu{^#CWwUcy$69sCpZ$e}O6
      zfist0xD<&)AAqOf2`IC6lp<9kS!rixXJ@|o+x_+D=OuurST`_1SU<7*_Nf&GiSJrn
      z=}If=N$Ze>7osm6@g@xV(iNcroiL+}EzkBl*6a3(aAHD!SNbw;5VVcjF+txCTwy}P
      zWDz;!3DYg<i&sgvEyA~U+Y^LRD{yS@*bb#S50rZRQAUJXYs_?Z2zO+Z>5h_KF9>7d
      z5>_{E0$e+<H2n|3PVJou_Aa7?S;ACD#M!O7R0y^AqcKd(Vcx(!LUojF5%=+c`y@Uk
      zw#OyTWhwsKMNWx3Ak+9uqk|K2%9gQ~$4Hexl6R9ZIV_d1H%_DeXTrGV%Tq`6Vj1|6
      zffY{ux~`_@iH_~<g`K1;{CH@{PDeo!I^sa8sn6dW?3M!2AM=DXsHL;S4~eP4CyO~T
      z&((jR@STMTm`wAjavQgp7Bd6pQ_KmsF+Fhp%#b?sYW)H;hnts;Zzw(4Jkzeq+ZVX|
      z1v&k^{PpU$c0R<dq<*`M)<6Nz82>p>a~}&VS8$NVt7n*lcuHEpVw&_K9-_=h1@@`n
      a5j6fm{N|v3QWdJir9pwqyjRnxYkvW}LFC{7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/spi/MidiFileReader.class b/libjava/classpath/lib/javax/sound/midi/spi/MidiFileReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c85f4969508665edb35f81aca6fce8dd06163cc8
      GIT binary patch
      literal 856
      zcwUWCO;5r=5Pge46+ZyKKM%&3fF^G6WYl<3Nk~u<Q0_~+!6jvjWo!Ifo=iOW1N>3O
      zX$6!(lpbbhUf-L2ozBPS+dF^)b}Ymg_FCdeJoBy>Xot6zqj<NY_zfjR<;toQj`S_W
      z88RV}yFxd4rO}eMVMv}Ut;_|(R4!j<h+le+OkoN$b4Vb`kS;4NZ-aJ2`gfw?N`}R<
      zXA8G3d==I`Fm4`Hmtns=ft53cY*U&(SoHk1ASWleNX(VTOS%)7n(?J*pXEne4lAi$
      z>iXH19iu$mwXn#LACZ*wlW>(2DzAhQ1HOf2hNZ#1mB9;!LeGzuhTm7q6B#M|d_#y&
      zq?x5z)Z}9zwM~OOo_Gp<4YfG@-|86lA0~gXQ#CK}Z5c9YQp11pC=|wbLED4yu_&Xh
      zp=eRX>11>!4qh?+LP-oMipdB(#Vp0SZvvh32p4n#X+km)D~2qVB5Y+0wmO2XVSNm?
      PF$UWl#;Dqg+--jWHt^Yk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/spi/MidiFileWriter.class b/libjava/classpath/lib/javax/sound/midi/spi/MidiFileWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1edb6663c0f5d55136a04ce417eab9b3791ea1c
      GIT binary patch
      literal 1011
      zcwUWCO>YuW6g`i5e26I6iq;|`)+!L_#6;a-y3lAsf@MKd6K$gdJnL&<W}FXg_f7m2
      zP26?UjhmXd;0O3`jC=9EnSp4UkdpB3eP_-+=e#%b^UselfCsprM2ul&&-i5Q>#pUS
      z1AQb1Qg>~szoh1c9Ew+t^n{ZHXUHj{J~Yf-z0=zheUBmWM4HlDXV5CuEe8I~8i+JB
      zT*x4f1VgqhO|jvRdcxT>dPBjm(6;)<aLaI{+D9PwK1i2gwSA5#O$xFryeYVOU<(@M
      zmFk-oL#c9BqANc7!t9G?z*v;-bgb*!w&i$YpvGI(*J&_Z&EPV!45{}KiGk5n+zV}D
      zN`gsc)SBlMXx&s=Inr_?oS`shh+ICa6EZxScZ$$gmzLh~J=^!Xo+FG=vr56z&-eSn
      z_M~OHNvzOWr_5Go_JpBvK6Q0Vp=#IioxV_elKlT=tSL4x(_uBJUy?d{@w6ssr&DEA
      z<F)TdeWNCZG_8pMe2R;-W<mnhOHkh!U4B$^gfm>hLL_!T)0}Ftc1kJg<Mm@?>xbH;
      zxK{XzI6o;KO@3=9Gm~Yq0k%nchm77Lk9W9EeF43|xE6|q#zB|IwIKZx@s>y>g+<&T
      zObcQxM=`$8lQ`9Kt$vEaMq~V#A0yW|<dZy)lH~c(<ky)f7Ogg!IVA29W}^f@i1IKL
      uoJA=|QB+sNEmBEPY!yl)y?hXg(;by?n^<MyajJI$<nF%+{a1q&_x=K>Ak=>V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/midi/spi/SoundbankReader.class b/libjava/classpath/lib/javax/sound/midi/spi/SoundbankReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2c63aba084a795ea7086ee92c3c8bf51b2a11f4
      GIT binary patch
      literal 620
      zcwUWBT}uK%6g{J>Tbre+eLV&d8qyFwh0#kNAZ!U*zR$XYjjgk?JBoj+r=W*^KtC#)
      z*<_;(Y##2t=gc{CFLU2NUf%$mV9!Q|;9$t6Y)0d7B7Hg%zM%0~(5`_VlTRJad>+}b
      z2uemt111Nw?G1Tf5#-N>6zYN?TdVg7tjo~n4zgG+Acs6b(G`;4O-3G%?wJ>Gg0dU-
      zS<qvVFnCT{>QTf5hwgu7X%Z9$T%{~Qqm~${<cdCY+-808om8#e&h@O%$4Z1UwoxXi
      zFQ{8`$^zlv>iUW)mg;R(2`Wi15z<yWy&yQ9&tP~to~W*hI2$b+rSa{$5dmK&cQlCl
      z+(-$kzy9UeSgn2NWxyOuS9%FL+8R-viO#vB7py$%A_GUqd_taKO~=BQK<9OseQ%(s
      YnNp(4U=x*u+xmms{>f>ylXTeq1kNX%z5oCK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioFileFormat$Type.class b/libjava/classpath/lib/javax/sound/sampled/AudioFileFormat$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3087e7ee45c6f2faa3d82a8a30cfa8f1a91a09f
      GIT binary patch
      literal 1402
      zcwUWCT~8B16g|_=ZC#`+pn|BNDD8r+ASwc)rBEyaKJX<bDoZ=iCG9SDw}|nV=x^Xb
      zqiCXu(N}+z@y>K(q3}SH&Yg32&bgm|{(k=nU=Z_R_!#2b#;&oKa_p*ANI6D%r^E}X
      zbhTjGS+m5mcBO2%y-RO*co+eOn0TEk8P-<n>BctCy9|MJE}LP{=T0j$R^wzDeCcHd
      z|Kh?Fc~;Xa(_}28%o((~dYnbKVp>~7its&`TaIa449a-EWLl;>LHu}Pg@_ruz!d})
      zv=T7P&3qIL?JCaUJVR*Qd)ya4u6*2+Scwq1Lq!lF1z`nUHO)=ozN{iF+=_x8D#54<
      z=QS0Ia7Gl|pp+b|AiQxE5#fz0=qK+RV^?@@s)!=Q&^%{ae4$$2;FTp~qa@3=^G0dK
      zsF(svXB2)6iYl4~^|p#LP{r+ziYBO(mRmF(Dv-af8YQ~4A1<&qqOrvDC`K_J#@LYo
      z){0ee4<iiBKH7DU$`G{OBCk-#i-uDaO_m+c3B`<xM@TcMTil(l&!#P&IB9%}YuD}!
      z(M7vj$#bz6^t@q5l7dU3Im_aeOv!K@?u7A#dVGonqlSnTLl3pcPg@>FhZrK=I>gkZ
      zRXiK<Y*bpG=&ZC&(uU~WSu~SQjL<s-AbvAHz}B=DP5Xwn&$u8_r*=`IOA=ktx+S_Q
      zQLlDgqCSZdnl916CmAS7XQvE4L7~#<!W4AOU<9+s(wUO4Kq=4?dx@-(M-<jfO1Jd>
      z0}SZ{2N<pkYBJMhI#;Q}XC%BPg}Q4r+?4^vP1MWeO;qedi`WD&%$^q}+5a2t1A_kj
      z{$F78`WFlh(Els$zeg*fVM4<a1q1v3{e~=FP|sgd7OyCa^+Q=C|7VfJ11g@;_ij8S
      zpU8rC%FAMuu*fi`%b1h83^uu5j}wyLxzw&z6Z5ngHFMh2Ns$%bf<oY91G#*N9Q4R7
      c)c=#nLyhF>31lCQP@IpEBO8_US<E5w4>KC}g#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioFileFormat.class b/libjava/classpath/lib/javax/sound/sampled/AudioFileFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9080a541521f4b5155ccf9c1ad3782001ffb3903
      GIT binary patch
      literal 2977
      zcwV(t-BTM?6#v~MkgqKiN)eE@MB17JXsost4Nw7#jfM{eQT%9K$P$)rb~BreBX2%9
      z<7ln_fHQuMZ#vV~2Glw}`Q-TQqpv>JzrgX_yXz+GhJubhWbetj=lp)Zd(Qp%`Ooiv
      z1aKCmFaivNoAR6TTbYVc)eD)5Tq<iyAv0MmsK$({DKmyylC3a842OAOMw9hoW`1>3
      zS+f{ot6P?mSM;K_!N771t?MG5A(7u3R)l03Le^GUVMyO6)KzeDiDD@yzHZ7Tmoip1
      zjk01|s#0NS7dV-!rD~a3xlF;WW2&xN6AbgogLCXFJeOJ~?bAj<i6Mwi32ivS5KN|)
      zqhL5Hp#`nndO$)L5pMNLh$6<V2PMS$>@l1O<2XgvB~KfgMnzQ(y&_=%hZv%lW*3%L
      zuFg&_@YIJSNZi|=S9N8sT3S`iC3#h&0(Rz&HCbDhO_l$5oFQvNrJ|fV$ik^q!Sxb#
      zE%JAD8Ls@NCG)g~S1`J$7IoRGnk4p}|B-AgU*ETjmZ|E+Y=g(%$=L~#6vhZcM?Lql
      zT-l)f7>1GIO@4$bo%AgvM!kGg!ecl`t*PoIqoA&fKF~D7fG@$fNxOG<kCy0k@ch48
      z2gAZYC}wW|YVux%opa7`sHj*|4Tqk#JstZfd1suHKbTDI3(C;OGa8R_oE!`GY2IQu
      zo%F9Z<zH?blb8-;igfL&m4v5piNq162g^xpf<@uilr4Ume9Tk;LRu2H)$o0n=ew^u
      zlKzfg@cIti+K6S?^9)_dls_wsdAfJJ?y0J(6%;dq=c&x~8+$y4IV|#>y+jvLvw|=4
      zh-C>c;bpo^<#Jik3k?0qoS)j^$VTuAZHMfD{SF9<*EqoI3?uvWbT<&syvj4*@MJdW
      zpjW~wH7q;8UzhO+NO2qKsqZx*YF$Dev-E;28dY;m;f<r3dYX8KQ!q$5U02L$O|Ddw
      zN*LD|k_X)ZbPw|Z3A(_8^ys!Az@G=Q0{n3hBRvgbj5~h1<!OvjMjP7cdzk*cP5uy#
      z1L+-fqysf{rH5<iP7l@4lRj2MU-~xsYe?J@2!r%JPWZsPl=U7lyiZuyaReWr2RCp6
      zAL1m<rfp1|!f8NQQNhcthe=&PSV__q6lzlBNehM{q3TP@Z=o@@r>eUcUg-_(;LNu;
      z>&Oc>$oq%@J|@yn2>er$_Zi9ioCv=V^3K`duDp~hFXhThIr6y03m3w9vLz=<!sFx#
      z5&8wEkk>^6fP|3T&n1tzl8=V=uH@GQbCU$zBCy*e^&9l!4ppbtAT{AiO}J7M7$t!L
      zVR6wxVR6wRntuXMI>ItE^7xkY9dv!=lD7)y4}!#ARf|Kyki}S&<nEiE<e!=*k2huR
      z^D_U^G<gCSo#cxY%@-G^<iyZ-cq#xd|E~g~+YWOp6vqsn5zLp7Yoesb3-eo3B@&)>
      zH|29akc1cH_og6p6F3Ss#ZCuC?_zGHb72QB@OEtD#m<#&yvnP)jVqn9ZTE0{&9?g}
      lW*bVKuT6CN9{TYI?T&j5yrT|p07dcLfC~G(Z_-ag^e@{EuxS7Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class b/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e76624cd29e35c8ffaff12063cb41075c889213b
      GIT binary patch
      literal 1111
      zcwUWCYflqV5Iwgo+jd=^0)j6@QQD%c_!b(Hrcgsti%F$EzTjoMfhF5r+=u$3{Gd@o
      zqKQAiA7z}mT^<$^{c`WjojGS_&YfSszyAcVfN~Zofx@nQCqI~>AA4;xl$|}-Zkv_3
      z?f5l6=*Vbh)wBGz<85b=5g6iZ)0N(~xxTe)TaiGfQm?!aDAoU$Xh}eSR(-nJTzk@3
      zT@f(Y*=QWNnGMC4@npvq7^xpsY(_yBo-13f<2li?K)O(DQF7I9+c^x8C0+Sm2LTP7
      z#i)Q*PBO;|C#j09Jf)5s=!2HS1U0s2bv8q1+q2soId34#k&DzNM`G_NcG*CVV^^qX
      zOhx(as)0N-fx)`t*^RifWe3mYmaFFQE$Oyo;IOYAb)<2FyX<FZ!GMl4#1-v0A+>G4
      zjinp*wB6NwsrZ_)w+xgpCm{U4WlEArrX3mXurf-fHOAaEa2pF0iu|qw0;7fEX&UQI
      zKMpLr=5Y5z$Nq7ilSz*?&$EN7E5pzZvse_E`o{uL)q@qlG)<hQE$qW2YfsiBE3NKa
      za_7~ZVp&vX4hH%OH$a|LXxic*5U)lC_c8nhW6D0K>`7%`Q1&HdPbqu)v!c94=QvRU
      zOGLVi2~;qH71HJr-JAg`MEjGJtI-R;>7{*KFU@_!>=Dm^YNd`08r1T-!jE^eQB)(a
      z#X|@T^N%H*iwUPzn%l?CkB593#ewEA9_^4v!#qsIL%*2tu+NA->g`T1%}YgNbQ2Pq
      hVcf(06X36y{nP_~a|$?x2kLxCO7UC_e@rUo{{Xrj$1wl^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class b/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d7d4ec3c49c7a0f285e28d94f3083fa21f3a99a
      GIT binary patch
      literal 3884
      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
      R*w5fudh*%ZL7(SP^*0BbDjom;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioInputStream$TargetInputStream.class b/libjava/classpath/lib/javax/sound/sampled/AudioInputStream$TargetInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24ad3615721612f5536e9e06a8ac8a1439fa4963
      GIT binary patch
      literal 992
      zcwUWCU279T6g`vOWSex;*w(5^8?|kkCL1w`Ac94()xtus53PCW(<D1-S2nw0Kcqj#
      zpU@Y<DvJ0j_+LbP@bf{vGbu6HLQ5cX?%aFNIrq+f{QdSlfLpj>AjNR!DSyTfno*GW
      zPBY^DfhU~igT!$I+aDzHb{q=cuk7$}PsC$426Tp5+1qr3=2(J3_gr5vR9dGo4~ZV~
      zn763v9)s3NdJL)Eb%xBE>$~xNhSl16dh2b{+6WwxgND3`ET)LAR&Qs)aKS_x8HR!^
      zeVp_=BHZB}k9^Ivf-d*kJalDze5uF#Zp3i+RNb?;L38MII!fPW$UQpfib3oKeq^9H
      zzNoEHM!K9gVPGOhsBB^mR~d}j?z(MDj&zqy#0<=y#1hH|mKm1LUJI=;==CB&of%K~
      zd+|Qm*$$GhD>hv@>fHb1+?1pYrtSM8-0*l5336@G3!Y~g4AUppf$KDpMju&<e)J3q
      z(V%o{l*vL)JW0`}ssM7<YnWE!2!$7_cAEaD6vHRz_)HyNFhkL$VKruP5l~37Gc3~b
      zWbQKE=@eg4>^@;xU$tJM^npb5cN0e_Su)i0S6En^e~xtOP{p?oN6IDT_$xX7MlQai
      zh#x59C$8bwn2YMMiz4!rkrOldgeP1)A*|DxCz(QHq5KAmI{t}C`@kPXYz+%X<K@-T
      bm_ikjNGY^JNF!WT9IL3QMM(KN8p!<x#PHP&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioInputStream.class b/libjava/classpath/lib/javax/sound/sampled/AudioInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7653aede88eeaab9e79060f83eac0c686f56a4b2
      GIT binary patch
      literal 2914
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioPermission.class b/libjava/classpath/lib/javax/sound/sampled/AudioPermission.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b683811677584876c323d9cf751b3d121337a7a8
      GIT binary patch
      literal 597
      zcwUW<OG*Pl5QhJXF(c9VOnf3JB0h0&Yb2nFLL`WwX5p@#G_iHkBhxdYSMe6&BH+RU
      z=wZBpSUm{}nuUw5t}6ce>aVxYmsbGWm~)UKEM1E`aqpTS)(zK))~zoa?q1wb!HEo8
      z$`}=B2Wi5*6}m=xaj2pPcV8Ig{YVI-MutlGbs5_Fyjmg95g}I&w26d{>cWp@|MShq
      zWA63+f{@u&T16#7VYQZ^eW9D~X%s5mEUwiF>2lDJS@dCe2w4mgMrumS<G6Jx!!vQ|
      zOTu_9@OY)*#awrr>F7!s!gB2&mlavAMJqx5F+o`AVXc>0>vGDvED#*wMNDP~+0!5n
      zJ$b0CtNgFcTNZ;w5RZc6Ec%h*-{C5S0e)n!<~YQi64xpIGwT~|<en1E2*+&F-Qn3H
      zMmd}8s4#|cAju|>XNF}Jx~wX1v^$;kjm<VDf5R#~bdbOnI<jw=(}me=nlo#0CYhf7
      E0<1EF#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioSystem.class b/libjava/classpath/lib/javax/sound/sampled/AudioSystem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2f9df90375ac56a936a632ae8c6aff35232d294
      GIT binary patch
      literal 11940
      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
      X@Mj4AS9!tD6Z5lx7otge5zT)B{=Ksi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/BooleanControl$Type.class b/libjava/classpath/lib/javax/sound/sampled/BooleanControl$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b34f328453878b6a1f44d85f233d76ec459af39
      GIT binary patch
      literal 659
      zcwUWBYfAz_6g{J+wry7Sw5M567PLg)DvA<&fJK-IeTq>B+ZbnMca8d4(TAX*AJC7A
      z?o2^NK{3qioipd$d(YjM*T-i7tC&k5!mx0~ulbD=cpcSn0^Vv%(QtM>PYSLIo(g?W
      z&R1^RB7qn~_BZlZ7K6QWa#A|KC>N{6@-9QZ^w0bo46&oLN|7PCS(mPI!!3sBV!ldv
      z!E1;lY@NK_mbY17TnoQufgxq15B&`B%@4)!qABP|uA0ti=)0=9k*{_WHEp8{@g#<H
      zp-w0?Hew@zI745_RpPkQstLcsYm#iFOJ1GJD)(J|H=u<mQX~#9-GDxdw+!z`IR@+0
      z>-crC=ju#@-_5RQJ~=s5O85oIgFplc%rfNu9u!s8qrxn;9;JU6K}LI`D5HHCBuPtK
      zv*@;CSoHb?cAoBeK<_;UOgw1f;X5N4r88xy>#(tnF|5(nFF;Js_aogFAsUM>Ek7Xh
      mskIEcPpupn-N-u&<EAAYO<<C8L@;GE)0i<TMk|XPy59hBXN`OS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/BooleanControl.class b/libjava/classpath/lib/javax/sound/sampled/BooleanControl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66638a9a34c1e41f423926c50252ebf2eadd36d5
      GIT binary patch
      literal 1626
      zcwUuMO-~b16g{t<cG@yXEl`A_LIrFGp`!Q&ib@q@(nt)Xk?LkjA2>M7G@U8Ija%Kh
      z_7}Kup^1Re#2?^~GT!$()KZ#=n|I&4J@=gZHU0Jb`%eHfc%&l0klr$OjNP2;)a^>n
      zHMXl3ujCdT$Kr;acWkfbSSl2TR41GdU{Ji*RnCwt{F`lTm7wzsp&i4jQw%FHM7>&_
      z7mP9|s)XdoS%$rtTk&e9y-DEMhGDsfi12OGHoXOgsmzJ>O4%Z1nRhBYh9Ke^G@ND_
      z?@VwcGFyy-p;v>7NCf?&R!Ua*1~fzwi(rt7k@*Q{N<$Z73_S(Y=1=O|WnNn~$`%)e
      zIqQa1G-{@J`%cAsX}Sz!Cn$v4poqd5p8iMO$GdslBYM-l$-NcN@D7{YpDATKO(Nt9
      z5JQCU#l{4KnJmpP;x-*hMz%ZRIgK!ezDx%)6_==q?e4|8X;pYljA>d!7J3YqaYe-p
      zL%bcU;VNbsRJlsa8w?Yf7MbPp7GL+~J1EC6iR)qqZiqrVH6(&t41u{3ft=TH8+T~$
      zjB1tJmFC_Z4LRoW3n4LvyBgBCAjqa^nOB^8ZJjTfVgY)OPHkGSFldi$o7eJ|;kw*a
      z@sQ!-2`5h77e*N+)gXQ63IYfrOt*m8U}<S<rR|b7Oc)K_gg-?uPJR(Lpids4M<3op
      zLQnMVA*m<M>|yAO3>>C2NwmN-I@gG%ggBm)?*-11ccejqb2tykn@EAl+Xy8QkdmXm
      z<gQGS7+WN#gyNvmLD8ghixgj>2NwFVEfr@Q3{AykQ!(i)ikm1rC~u;4g?^{0_*pz4
      zD^T&&2gLNRNPdJ$X6SQMzrnX7^^y&2Q!kD&QlWn{jAO!Q%*i(pBAUdfHkvn*Mr#0k
      z8k#aPe((aJg+y3SQ9u4RAtt?VDdt^EBH?BtVL4?XOrMU=RiL7UPWlHX*YpESeM9a5
      o*Ah4PF{g{<_OU?MecWp=_I*p1X<s9N`|?~wUgpDO>y{Ax0}t9#vj6}9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Clip.class b/libjava/classpath/lib/javax/sound/sampled/Clip.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbf12f30eb0eb887840dff6308a3638327d1826c
      GIT binary patch
      literal 615
      zcwT)`%SyvQ6g{KSXti3kzUyO|f*4%8(rO_knnG<sT*#OXbtIh$$wd4%7k+>rrQW2X
      z6^aAHfphP<uk-%#`Uc<xhc>1dwx0Mie{oZtslJ=?VH}CR+lXXr!(yo9Q8(gh;06y*
      zA~ZH;8ETU>7u;}PD#5Vg2SNM35nSJR*WIAo@oyQJ$53u)l^U*0k4Kr9{-npSG!Ukl
      z@S*U98kk3hX{S!PRidwCnCMi5TJ^_*Ee0#nIwo+udXGTILNPdwKWVJ9tS@y_Cqr&d
      z@6NqKQM!ByMQkLEV`H7+Xp%7BrK>0)BmNMH9|=SKpH7~NGt)7N;KS2;&&C$RT5&_E
      zT`w3bQc1t}ZtGNzs4`JLZPwOOnUrD18I8M<{<+1kz;ar}Ivt%Qp=ip8jz6D!cbvB*
      zqv&AtXXtOk#vI{1SwDpm=E&RyEFw3#jHLpXQ7Lc*tCYD$nHFKSU^c#)SyETAY2_71
      S**n-Ru!cQ~Gwc@~4!!`C?3}>>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class b/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3cd87ceec00be486ecbd2c14d1dc730cb1eae17
      GIT binary patch
      literal 476
      zcwUW9O-sW-5PchCVq>&g+nyCY)CvaADZK;)A$V!&ecLQ`WwRUdA^NjC2_F0b{wQ%a
      z3W9p*4(!Z4-g`6i{_*+-;0i+@4#Vi4Kk&z>GL6onisywAS(KQ(us~vTT^e;Ze=39z
      zm*Mz-_797}n@BC|DZ^ltT6UzkUPrUKlzJVXFBsg!WFo*8Iw7{<F?3U@#ch)>MLFk7
      zMIOD>thie6Qri9-bn81=F^tnqH;zf8dEWZ{*@PjOnWkKcYiZ5<zYH#|fFZomT9k?6
      zRV6APeTLHwrqf(IA17dRrhSCiTPge0P2o@g-uU7LJI_=(2<Q)5G$!T*yHpLoSO~G#
      Xx_H<}mpmLCw3<WoS{0)>!T_C5u6B0Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class b/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7257a2c97fbff40158b2edf9eb2f6cfe1bddf07
      GIT binary patch
      literal 1195
      zcwUWDZBNrs6n@S&*j5V2oQPw<kQcibsi5(L^Cf{qM5c*>%ox<zvCFLK+NJG`e)o5n
      z_``J?1e`~ZK1KSe#aT@Z&LAKH7*InQ~XbD!IO|M_(fz#^{15h2XHFkTw3bkAwq
      zb=@<XElbq(6{p#fi5188UB`+eMi~D$FaQvSnxa_~Za4M_lUtQz8p?$J>!xk`Hwo+7
      z5y-!0nB9Ec66NDb^HoA@#i<JgQ4FYvLnX`|MSp-cUrmC~prQ}`gyD*5i~DVPo=u}>
      z2|}vkY#Ub9a7`I^lQI9f$p@V~$@FCjXC*@6B=B%5LOgVpRYn@Zzt>}NPRsw#<b>~R
      z_^xR;2x%=JfOX5T8+w>6$1zSA?M*MYcXouUAcF~M;v^xe<*U-voQg4=la=!-W-!aw
      zXtY|wt`kbyVfw?0A$2){c|zn`E&+|#Qcg1Fn9LPk+wuuxM>P`2<Y$ebY&dOqTiiC~
      zU8H*qT#)Sqb<MWfG0X5g;l;5;&`#<;Uzl8C)BIsX`G4Ut<=4TxC}M0%f-^~u9&ldP
      z2MWawltSqX20w8a!7#svg3=vsybA^EIK@#egkuCLAlRKon#ttu3=2efKZ>(mdYxBU
      z>nnW5;KzO9{vf##5UL@dOGxs9y3OxdN{X$1L*`Kj*-Ej{!PG9M9~M({a*5vffT`?T
      zD8<x;AT3q0OS>WHO@y*CvG?xRkK!)!f8^%_`Ykr$G0Q$-$)}jWGfcyPh8nJNyo~yR
      k^R9NsOW+m?DDr?AMwW1q86#K-m~~v@RpHtqKbMjG4V0c8-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Control$Type.class b/libjava/classpath/lib/javax/sound/sampled/Control$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fde49fabef5c787fc748fc574edcdf9b17bdd7dd
      GIT binary patch
      literal 783
      zcwU83%SyvQ6g@YsiLLQf-|siH3I?|-x+sW3Q9<d#-LxHSB%RbG75yg{3X0&u5AdVJ
      zJ8AGyMG2XiJNKNEb8cSWo?ifLV8wz#n7<HL;@S!QmZ~|SXf!=pbBex-0^eIcy=h7d
      zX~KX;Ii67G&Qaw;RwF`MiH0QPN}sKhC~(#J7Qx(hl^g94M)E(~g))<ieobbPLXQm#
      zHX)TSlrtdo+312v=r6fS9<~}48JvoW7k|jF3a=~zSJ%m9I;y)NVX^dI3T;YWwuBdU
      zm}<w_Dx7IIqc(;xOd$VzumnWtu8Xj)y~mCZG-ukz1SYu^`R#y&;e6q@sbo+5R#26D
      zu6AxG?$$Ms%LAokQ1nC?%Fx0RVd{@a99)OO0#7W(Ka*hSvGFO*kA-f&$#AvD_Xh9T
      z)hB+}9?^Txm4SX<`(oxc<98Ulivg}i+h`0T2gE0>N?h|;63xv-(_CG9!pQB1p2h*i
      zFFNLjj)^gh$2vT!M91M>GrHK@RHw{-EMvC;iOe8oF#Ci2fZn?f^6@WZ19R~@&ok4x
      KG<^}v$h-qknvRG7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Control.class b/libjava/classpath/lib/javax/sound/sampled/Control.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5dfef019310bfdf7306235eea7374099fa2f92fe
      GIT binary patch
      literal 705
      zcwU8(-Alqy7{;G>PNz0MDzgu>FATJxQMX1nf)GeuC|*QeOg-3SZnDj&|Ei!5=%PQM
      zKPr0991&e4W9OXb<@r5(&%4jB_YVNa*w&yBN+a{myf=Jz>I@9u98YX9FdD8Cc&@EM
      zCFG^SuuW%ZT=qty9}v{wVIl~7t$)}`hdp&d;?#1i;Eb?eoo}yoIlSQxL>e(H=+K}O
      zV%1tV1wvLw90@|MWjW$vI_?RtWA<!rWU1x$O}lG)mef&E4Q?%;Q2y_$+@CfSK_|RU
      zrCOWcAt4#K?ZC5~A)ycvv+2yL^)%M7p<$h{GcQfY3W|hu+nsuS(X?dSdSp0~Fw1kt
      z5njVKeP8fxREep(JdGItLxLhl!lxKi9#)boDOOFcE4-%<-uOLyLFS2-f*h~eki265
      zHG6N6XH}fJv4|xgJjqnzXBmYk(+D*XKX^vw@h2`376)OBJ~KoyBrg}iClQ>K@GDmT
      Y^5b88GU64K!gUknuqEQT61I@~29VW~qyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class b/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd9cc41a248ea43514047bf9b3b024a4e7c63223
      GIT binary patch
      literal 2896
      zcwU`VTXR!Y6#jP3Nt4Dv+mOU64Gje~Hz^c|v?*0?g=o1*prusMLwnjDXp@+Wfa8lZ
      zj1P>X<0GgrFpQm1oY5I+M;H*^9RGtp`zzFM?~|r!8wtZ?&OU4Jv)5YR`qm|X{B!>i
      zfNd~ba0qNXZ+v82>MrKW*@^C=F`J(;C%X3=C1c3Snw!(v$(#$iK&ale>J@=CvsQL*
      zd2-S$WUP-(0g;wx#--Xb*JQ3RYm|xtU1LM_?CmK}Sh+!UDJ9U<Z)L60fWXd(y4^iv
      zWT(3K%^1aEs-b#xSfDv$O=XQzxj^5$R@vx}4Lq9}eP3?E^gu(a7ap_;_*dhJ4mU$!
      zofl3tNh#ok3r#M(DA3u!hrIrh7j85Qv`9velxNSGg%ifP8RGU0<;IPfVWVKledSOu
      zO<QDfQ(gGWaz`4S7bHS~wpE}7w8_~LOQ0bQ0>R}tF6S4q`0MdnkMC6DoTt;0?^NAX
      zJ*&3PkQl9t^;oGoR-r8=pQDbH&EDrL9ve?l`SwhirNPDW-yDfH4o9GsI)|6HkQRxi
      zD<78kTbot1^)lsrK36E26VgpXC(+X$1hK=5o#;_imByz{A`}*zw7&XMZAoPfy;AuN
      zs&EQ)Hqc--=1S9MLBNr_K$X*c&I`CpxlE~GWv66sMQgaWPg5@JV+F1}w!`;eFAm7Y
      z98~NKyK#tYS0+tgcuanO+lzNF#ED|$^JbRJBqFPwtoCa=NV#!@coSjC)G;sK!X7t{
      zvop`6!pnwUUs(D&A$^?`SRYA0#o`DvM)lg{+Um!MvS1d=GwjRu|I=rHnOwOrZVp<q
      z1=lRL{1$m%z?;ry&4Q{^v*^P60v%5q6s%F19Bkwu()iDy!6C;OC5Ieh>dooIw;WX-
      zyuiIzovy)JzCYn@sn-#UFQ6snxCftH{4xC@f}>g@a}Vu5E4wdq4e~Z{fa@S_9YhNb
      zVLj4(fUs?czYw6L4d|p#DTRs8fiBA4%E<<7q9hS*t|EFxA-bv}pf4LyNFoa85>lcL
      zmXlnEX=MbhIE4U46_y>gg({X{6-yAWk_m^BUL!x6k|LD!8hpVTe9<btn8NoNZR<;n
      zDSV*@jG0^~X={p%O%tJ|P{wRKPhm_-afPxTcL}`CRbuK^d%zj{1?@j6u+n*xI{Z*M
      zvz46{X98Q4(n@9j-4)80>nd-ptL$5;{Apd~ZRn{e=NXtxK$o_A4uQA?-_bLV?bqPc
      z?_P0;4tetE*1vyiOO|ayKj-=deE1T6%3*v}Q-WPpLc0`=?0-_0Bqj%Cjyv1CSjXG4
      zK`zQf?z#p~{0YQ$IJLX+#}J2QKnXs#uvQX7(SJvN)CT6zuO)RY>6}BSL>TJf$M%5J
      zhTg0v^*OX&af*O5VdMWZpewsqG!d$V^h93@X%KB(udz0+Q~H`AenZ&bGQT&NrkmJ~
      zTZDfb{kVgp_zuT0$GX3bbNHSW^#iNvCd&9xQ7~YKRHfh|`jBG4K^W8z(c@P3Z&KA%
      zl9qQ<Lq{*G{7s%Yd6OfulAhly={frVdq)?re<<!dIFIy*%vNW|4HD)%EceyK9hJM9
      zy!{pTy}Nk9H;>Fn+&8?q_pALpPA!#dkLt5~oLBSYVu7js745jso_N4YUm(hdME8jE
      t<~JO}WA^%!nzWy-#O&rg7{zJE(8j*D)9%2S^70<e@a<7Gdlny{`9JWgbg2LU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/DataLine.class b/libjava/classpath/lib/javax/sound/sampled/DataLine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06e2775e63efee29948f19b2f3a9ce46278b9b5f
      GIT binary patch
      literal 570
      zcwT*xO;5rw7=Yg@I6$VTh^Y7#J;24qvnSM$U@#g<Ja{WxH%mrK+Kw21ng@S?Kg#&F
      z%)}Vtp?mgze|>(ve*nM*9DA@tpf#p5`Wk4Ni73!?GEG?&+)zUYTrdv`1ZvhJNU2DI
      z`_Y(%#)B0C%|&rGhCmrDJf)))|CigHK7nGSC>Kt8LMcu&{X)P`n7PX0n5iLuvvDZ*
      zq?%Ae;I!QtEUM7WA};4nm)M$(P;|l`q~?Z8EKx$$fX!Iys`UuetwM_Aj~^Ou2{h1n
      z$3rDG3#EvDrQy088a|tk@QlrI{g?^CMS=rpLlrhz&_+%PRE9EBA?tBFu>Z5WbK5?F
      zYF`MZu2ZTt(;gfWIQehmXMGV%%xr;M#_ITrcrPC>;Xw)PMaocdT+La{^**dQuIF+M
      lHXJu$%dwtw8yb!~Ih%Q&T}xPkJ@?&*7P5l%5AYp9`5Wv-gQNfe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/EnumControl$Type.class b/libjava/classpath/lib/javax/sound/sampled/EnumControl$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3c7e7cd77914e3d8eeab55ddc7decc19fa90992
      GIT binary patch
      literal 584
      zcwUWBT}uK%6g{Kn>b9m?TJ{}CXhBO5^q^QI27&aTve4tGgKg~2%6>@wtmr`~=m+$p
      zqM6ADsh}8U?#!8U&b@Qz{o~~gzzKFV#0bjwbV47@z>E0M45&MH*wAe8$ZdK&^gXBC
      zdmJ+j34*=fnDZ=xWT$1dI+p|o?f=-;2vYTdV{<!f5X380iy+bThAf3eX~rhZ@9QAQ
      z7+6A9K=m27P*Dj?hw_ox4Sk!BYE>&OsLKWxkR-^qZO(2Yx6k|@?K`5leA^pP$D+P1
      z&kEELM@Hlf@9aPXPF=<OVNIZSy~rQ1D_c6{<{ok^$ppqV=ge<9GzeIrVT)k*j}C}@
      zvIp1~MaRX55R_!)Vi!XSnwSJ>^-=N`$h?Bw=JhFzXXKs~EiYDGMBoetPO+j;AR)Uo
      ulQ#q+vE<>=6szBL=OX2W(iOj0D5w(Tu81|^5yQIDl(3;xM2t;rBmD_yntg`=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/EnumControl.class b/libjava/classpath/lib/javax/sound/sampled/EnumControl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a14b3b41f0bf3a7348b47fc2a6dc9570f31b7d2
      GIT binary patch
      literal 1633
      zcwUWETTc@~6#k|yY^jSt0a3060eb-|h&OHu2#Pk42x)>mEp)6)mff-!f{714_$z$#
      z$yZGTj3oH(uke?sXQnGcS%TT@&dj-d=bZ1H*&n~Y9RV0dPC<yFYg60NcC(J<nT4#Q
      zZIujO$j+JG)~sc^wq+=YFti03`34NtJDTBfhoNyTCk(TOW)`zc>zjPT9cQSLYKC}_
      zvU)-{b$5zkF`2s{lirorB|aVy;;bZ<XNb&N1s+2fwJK_GnV~N@!YTArz6K2SDymQ|
      zc5xL7q6~F8-Q<hj);hOWv~@#PV{K?gUbA&^_JtAml}<c#UsTGtFr|15{TG>*^I`}S
      ziww~sck^XBo06#@LTmn7P#(?6RA5J<&M``JGKjqxx^Z1W4^dI6Rndz+>KotoG{ZRu
      z;Dv%43_br83x>gqnlWt`y)ACKbGsY7<m#3gMT*8o4oJeZ+=SzmN|x>NLJa-Lh{g?6
      zgjjZM-7LxuGo9WAD#x|T(n?Z%TLmKwEtTRKPd5tO785e6B8!_b+`&BscTW{vwpDQ-
      zV+@K+bm=9vEvV|Vkz;htGEq!2gvJu$@Ib{wOcQ-tsl?3!!(dQtXGDIk5^q*OJgV?K
      zH-(d)qYSZS%d<E5ye_7-{=}FK2}cHX!8Ex&YiN$c9R*JrdjDrWX`ICp>82|ark_iQ
      z9=bttNB4);DnzK6G16b6Q-S0WTI<u91E}eNJ=CQK_t5ZJdNk5EF7->~_nf?zQHK>Y
      zktALALo==ba@T^ZgerC-Vo2_;QOqz&ThZo6%+e~Xs?uN3@aZ^AwG^&NXtiwMLo>9a
      zBfz<?(zy`m+=(vV`7LE4I2j60enf{rXdlV!Bk>-!hv;98Cl8SR{w~DYh3e?T@1N<+
      zDJEJaj}~EX6Du~QWg!U{gYabJL>c{<ks--AO&r~zK{|zKPt)yZ^F;CjbRJ@OHGP0v
      rUvc{Y<MD}oObKfCF|&`k${OFCsIk+J6vDjxJ|;}a&MwgV3^jiMW({`w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/FloatControl$Type.class b/libjava/classpath/lib/javax/sound/sampled/FloatControl$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31ab6794646ad1da13792bd845dec129e7367c07
      GIT binary patch
      literal 1080
      zcwUWCYfscr5IqIlX8}P$@VO|+OIZ*_krgdVQR1?a-Llb7c-g(dnr=(lF43Pw{6M0K
      zKfoVloSCgkq9&%vopaC3nOE<(@1MT{Si)8sJqD)Ut7G+{7zG`_Rg6^o$kVOjmKUhF
      z9Qbh<c$3b@Bb`Q{fx_QH&qf)@S$nVdYqqmjs~VWD{8#QZ0~wap?dqn1^oCWjs%6_i
      ze#fdic5VN;wN1%-cP%>mYj(q~ZTu>cPwri9zHaU8R_y(n<&ZwrcvackA&@CGJ=b^R
      zb;>d`+c3~q4q7^c3*CMTp^iJDpM!xB6Qj69(ozyXG9xn-J>?%3>v8D%hikKqEQOAn
      zIEPdQSGwI7BJH=Bzh)xM{0$yOk*=wko-mPN`WDZnqF9H8L*@GHnlh1P*EA2Qgqk&x
      zV``o!*2g+LNSb8lT@!hB7J2-x^JnoT6DGTsc^9(pLa1VC;DL#Lc0J_91YV~t?5c?Y
      zqznvJTwhl^?E@V;>cFEvIa~>v%4?|5<-3qM^kRgz7r%2OGQMg{+#d^~wbp}9*wkAt
      zXBs;D#}_!-fVu7aIxKrCigc95=06_SStV8E*MbRZyO$nt7UTQ}2#xc`#by$lO>8c)
      z`NW!u?N980*dEdi;ymRYqT7jN2ijj?ycr%o#l=q;6MR|lRl(N<7X;rFJSq6L;2FVl
      zg6{}k5WFb(p5Xg}R|G#gkv1OFIY&(c%hc)$#;}S>l(2}WbZ+1UY&dkj#Y=d^u89ih
      z<5!!szfKHusk!-6lz!*U30tR?IiefwM&XI9fYCZtF^GL88jI?&%Al`Ib+bPJODNYd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/FloatControl.class b/libjava/classpath/lib/javax/sound/sampled/FloatControl.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..342f907f3c80d068960c168bca122d9f4fee46b8
      GIT binary patch
      literal 2914
      zcwVhlNpl-T6#iP)?(q^4$0&|BMaI&ESR`RFb_h7eA`VV$u%lr1ku;XajAq1W<S6_I
      zmXHLh*p6H%mMUaZq>3D=;zAV{j@((Q_yG`j-7}VLWeT$$JpFb1z4v`@>DD*5zWfTn
      zF_<Cv7>3rAb)}xEnl+=CsVe1)t`;*{-Bj#p)37a555dpS=Vj#@FoepQp_OZ82A1VJ
      zrS9w^6-zB>Rn0UQq*|q@*y@66X=afOXBh(Pie6J`tr?nKWr)pjmW-|#rOcvjX+~+1
      zAxyF7l)S2QsMMQKE4navlF02-3{$DOy>dw|U9PB;*=%+;dplP;$Kanfi)s{Y=#j7w
      z2N*`YgYJr#&PBj*r-T54937Mpa?l|OVFwLJh#<<*kc4*UEFnQcM;J*4@cms9I?=&V
      zN<x=|WC`8qVCb6D4E21ioL8+SC9kWzT4q7fbBd+$y?f}lS2e0+V$VuUa$6G5FuJF$
      zlO;nNwSs?@Iyv*!Qt_Rx(w;Yg;nIKX!M{7<or{)K``p&xwWZQDi0#giJ16^7X|MSb
      zM$KUoQMQKJ`PbI;Nwizop64)aFF14C#o?~$CjME+B<GBHxY~sNR5qOpf%GM|<;?23
      zT2k~Wt5hqihCNd+s1=)d!Z<^n7WZVxtl2~6%8*6&G@>&&%SZHahMtsnMFQ1TZH0Og
      zOi``VxiIF*R&g12MI%uwmPr}=Y?D4^$|-D{PN)zrF!Z((oUUnlQMLF@xhP=~6HzSV
      znGl|4=x()@@GPFAXF+5!ze01qQ}BF#O)c1y9=(ZT31`E2krYh~@l9Sr0aV?fQmLp0
      zfumlT-*)6`74cShh!R~)YQkR{UZh!AG;3Bt&1(E&?b|uRW89M_V%9KJYg$*TRka!d
      z)o<i)4L_BeFaBY=-)-P`-^ZU0LO%X*h&Al4^k|5+-QClJA=XZJ?Q+*{v39~wGZCY>
      zchK%T5eJx%k8EPUoNS<19%&#h_xc;?lY0UU^vk`$1_tGLsDWWQcDR8N@f{W4^k*XW
      z5&Dji0-!=VUnWHs@mA3T8-1u@80#3tB^*T^CvX`L;uYLY)=xU@bUp?Ml)*iujiY0f
      zk58cEgxUl;LC7!Ay~Gg^=sr3N3dA!HiTv(&^ZQlQ<sal15A*!uQJ!Bs;*sC0#QGX>
      zzfSqRLHS*w{NAMeu2O#2D39x;@h!^lZINHaVgFzA<B0dxsT}WWL?GVhD8+sN<8JmD
      zS~*uh{v7d-n~4O);RiyX<QTXD83~{8a31}%#rZ=|=SffJbgT0xp3WydW%stq-t=^S
      z$dh@bmHDQp^C?f}zE<Y1J)Ix+WFBs1{?^m^5lneF_kYyl{Jp31X;0aMt+Idcbe_he
      zu5+G7kB?#EFfaG@cOY>PzxF;lZeV6P_Shz7Z_0Gl2e+?6ObqFdwEl!c_?gE47r}DC
      ziPRkTgm{#=xH+72`K}Tl_a5KkOE`S*A)a(kx|8lnsQ+D8#d)D3xl6@CaV>r$6~7~i
      zTS(y#9A|U^m`|vY9iFC|aV)qs8OIau<r}9bi2p<}{tM+QJR|nNzzr-d%bUo3fu}a{
      neC&k{D7?ZOP&csJ(qR_aQRe}d(+5p_*YFap{Br8_XCU$?8to-`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Line$Info.class b/libjava/classpath/lib/javax/sound/sampled/Line$Info.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..209f4f955895464b6a832cbbbe9887dc5312bd7c
      GIT binary patch
      literal 995
      zcwU84+iuf95IyT$92?WnHiU91g<imR01I9l1*AxoDn)=46ji)!k|l9*?BWZ8f8qfo
      zE)oxX03U^zU7He;0uSDunVmUv=8V7p`1%dNecaWdF>D_5*Zhr_L|HiY5<WW##MtZk
      zq1ZhPUqm{}3>RdI7w~Z6JsBR0QOZzx8So@wSnd6O>&nnRL$&RPe%fJZ*h{a@fWhed
      zlaQxbEEp~=rL^6S$|`rGu`p4>c?&vL7)rJ?FhFc9R8VE8OOlVX*-*sK_%I-_wO%yh
      z!GOoU^ow9Qo%%#{tM|`2iFWhP>bEDq5E^GuWUwY8mG#|RiFMmKLyP8eG_TfYJRMC1
      z6>i)Aq2@f7GHhD7jxADGyvle$br<KQ%lAU5w3;ZLikP96M*TGQ!--tPJc~TKZ(<j>
      zbnKCm3k)sX#5RN3kFt0q4tyzsA^F^si8T3P7>Zb>ibO|?VdHNTkp6N80;C1fU&o-y
      z?U7X`TStw2gFFo;&e45DmPWVfeu3q-KB4}Byb@OFTu}&Zs_anBL#&b4%(JnM2B0j7
      zPU4Vl(Va({WYNEdjni(IRX0z?fr|SP_4n#QHma)NfohP0REh=+S8$b1S^TJ=YRTdj
      zeV=jd-2%qbIg-{XNeef~lC4SS0_{OTrRFN6okccBb8Kn_l7`#rwBe{hC4!4PFn$6N
      Ce8s>3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Line.class b/libjava/classpath/lib/javax/sound/sampled/Line.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61cf116efcb1d58deaa12a645cad1c97169a564f
      GIT binary patch
      literal 683
      zcwUWCT}uK%6g^|==4xs7WgkX?!3xpRvri!fg5ZPILp`m#ldP;W%g!qH*Lvs&^rNCX
      zgB5~G3$uqi=iD>r?#}1e`v-s<oLR^))JERao4HC(MBplK97jBGyP@C~vJ4f?x{)V_
      zZf`K+e#%hxf<W`#P^Db(gyGWZt}^)%wVF>1IX{w$Gi*4zvWGlvOOYlrVz^yyG3Of(
      zZ!vE**GXCo#Xm#EaPBl;{?VXAcEqb>xNw#qpcM@*p^j>(=I#AS9Lpr-!OHO$vp+NB
      zL)DA9F!NKHm8P)oW<HP8Pzq(?fZ=LYhDSj}7<q$;|F%$~gpcKvFa8j_FDHr5@56|`
      zc0qI3+LfWy5hQ3wo>H8SJ7uV^9hp*U$TLuC=%+xJB8NQm<*=}6umIa&5ha6L*fv;3
      k#o!LA26su%utzRg!hPB~)K18tX5L3QCbWq=p;brW8#Ma4b^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/LineEvent$Type.class b/libjava/classpath/lib/javax/sound/sampled/LineEvent$Type.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4125ba4a65785eff60147105bb1b47e87fae6d3
      GIT binary patch
      literal 1067
      zcwU8)YflqF6o%h{cDt?1Rj5=&1*`O;RJ;qsNSZcj(okYIHR>0KGNDVhyS2L|`k(xu
      zQA47MKfoVlJZHKo3PiumoH_fx&z^H;e*XIQ1Hc+K6BrX%K9Gm<T`BMf-d-t?-JYxV
      zN_EFml|$u)S^IrYB@h#sW?jjZ-hQdEd!X8(K)hUUG%Etx`u`al0<p$UWt&`0d+WJP
      z$EMxbq0N(BB`{k*<~PH><L#5f+-$p!=Y&rM#&h`=iOc?;GBHh*w(AEf1#((Ak2wKj
      zGm_5dPP6i@BuUd2;xJ4s5XtW;k8>9-Bsh1Om_aD}At$d`FgbaRghA-{IJaye2}59t
      z8`~aqcU9k(yRNR?Z%el&`wpLVGKF#6<iaM{nzN9?Ibww!C!k8z+kte06O|69x{-gy
      z-rE)mC<+Mw@6kje8cjzA9iE0BO^rSGEZo5weG2_y*8+37{8@8NHT^-qt*Q=JKRLRn
      zRh9}^HP2K1vMYl?1qrMREdKL;sV}}^EK#T9^s?f}@R%ve@M!gJMtf54V>}M6G+|+a
      ze3NvN+D$L>JH*S`sUysM#=MR%=s2U}OFCZE@l_o!ebUJ5w5ACOlnGkJ0&2*jPBVE%
      zJ1c+~Kb7crRmyNKRXD<pLh&nBjyaRM6r1!dD*1)>r-y3fbqgGE69O}QQxS7LVj6|w
      z5pI1L@eKM7y#9k@j5r2XQPLc`y@<nScEqW+yC*SkG{zbVB8<R&JUC_kf|ZXa%$+mL
      SV|b|7M|iCJV*3+pAo&~q8MjXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/LineEvent.class b/libjava/classpath/lib/javax/sound/sampled/LineEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb25c30d8ca1b0084822cbf784d5e3f5379f1a03
      GIT binary patch
      literal 1926
      zcwU`UNpI6Y6#gb@7J_L@=mMqC0Hq{pi`ln8S-L<<XbLTnxFEUBP>dWqvL{fM8%K^D
      z;lzmx5=b<as04R@3|DT5Hxnn&&<4c8<MGV5%zN{mzyA328NgB8jv&CW=YjFiSk^tK
      zVi$GKD3vW<)N`iICm(WKM9{|2Eg^bEn3k><^9v97qG0IsxN90#fxDjR*tfG23~ZWV
      z+qh$U!mvfbuqr(CZT5RLoWD85&?X+2Im2MCrRCr}p)w?M&oxSX*6~b1>cqAP!O*uU
      zn>gX~rfrHbhAYX<VgF)3ohp#yxKrdY1hGRy2f8Q`HC5d*>?OUHg-oij1q?kJwxM0l
      zc4~-WtDN;|&=6+mklHhq(gJtqjRlKhi07O|%9}yiqi=t)P24v<hJn_{qacH2hj5)s
      zTuiOcP%xRI^hanTr&86QOtngu1kS4)8EOGscPCNd%n8@Dml(QyPAwU=)l38_hTi7o
      zD;3i!ayN=$hLEg*3o#@yDwBG+DXG3rsvr?ZG^)~LbgM?W%<Uq>=tlYfgYDa8qBucm
      z$|Tm+k+MD|g-<u>)vY(xlgzV{c}}Kwx|Q*H3RIS>avReyghLE5mm9@;@9g!hO~(%;
      zYnLm6bhuH<$l{AlE-&)3JhB(TIKz%QJezOqL@>#asBg?TVoo)r`9xM!0~N(pYV*cj
      zCQL73J0juzhK*qYqf|hStiatZPR6kHk!uQG4`ZM?jC@6`k0a>FYVB_YqhRNpio3|C
      zOxXzSjiVlxBnB;O+uR+u4A0|~j5&t=f3H?*DEY!Z>ck-Z@7mCZ5W@5op|1d<^iZR!
      zIkl;JQw!5OLYNM8(zu<zO2iJ)yE{F+ig<c>g=Qlw=uPii!LARAwwuNt1zM)@G08q5
      zfv4!gGxXDHn#@T6d$1Q!Gik)sOdcViW&?DHAXz5Vk)^dxI}#O2f5fhL4XdzPe6FOm
      z8o-y{j{P{$AhQO!`+XDn#fIcT9Nd81+f07B0h!4X_sMrD47oS5hUA@idKDv5r3yWM
      zyo!@DmMYG~Gqrg)tygj3mq)w0tykpnntJEeZ(bw5R{$4riN?#2w@Uwd<vK<@naJ20
      zCho+iR&ni1)4AU$t)3dHaTzgWF-`jcTu1IdRNro*dIK{`HLviqxT#hdZqYN3Ek6Mh
      Cgs{i}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/LineListener.class b/libjava/classpath/lib/javax/sound/sampled/LineListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f88506b0cbd2818bdcdb13f4383a6e8984efad3
      GIT binary patch
      literal 210
      zcwRg8Z`VEs1_nb0ZgvJHMh1nf#InQ+{o?%6ycGT7#N2|M)D(T6%)C^e%;J*NywoCg
      z1{OvJ0gx*FoW#6zegCAa)Z`L&1~x_paj<A<NoJ0|YguYu2}}zk16yf9N@7VWBZHEL
      z4=xM9TC6q07#X;N^Gl18Q{6IifI0+`E!P8S2HM2PzzoE!KzB0&UBk}60b((50!bzY
      FE&#blIc@*|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/LineUnavailableException.class b/libjava/classpath/lib/javax/sound/sampled/LineUnavailableException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b234d582c8335f9008ba05599844f689a05cf16f
      GIT binary patch
      literal 545
      zcwUuJu}%U(5Pc&D7z9BOR1yn2K*PmYLTFGE&BX?xuv=h*YmPl~cNl)dj>NC9BC+rT
      z`~+M7!#H~oO*9r3yEC)<=Djz&uOH7Z0FF^kVvTTgC+@|}4!o%z+JP8PTsgEIrDa$1
      zg>psTm1nbooP^5LNmzt}>9Ad)NA}kRAs0wr3AZQxfa~tXDS<8tnYO2cQ0TBH+^LMe
      z&*u-1Z#OMMqN%hBIf+%OJ%ZKthBAd1Hq%I9gOD{IuBPL@^skKvLf-KPEFf5h>(!wZ
      z-l~95cm6X*gHWtE-(z$_U+Gb!+A{`<#z296jf0U9{RJbWI^NVD$a7^J?Ej@wH=Q^D
      zQ}KHf%7`PuG0D{$)_IW`mG?BCoNy$L@!A5JrwEeeJ;l*{mc@V^XXzyfTgXSGY;{G@
      hVx++)YKIGK|72)zPcvdDEm125la;U&iSI@|d!K=-cy0gy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Mixer$Info.class b/libjava/classpath/lib/javax/sound/sampled/Mixer$Info.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..930c42d7543f8911061f7264c79785263d0b9b75
      GIT binary patch
      literal 1545
      zcwU`T+fEZv6kVq+y)hOjrHa?0sBNKC6cs6W;Ti&>38qn>9NHrtQfBH*+wkZI`Jjn~
      zL=!*2k23CkW>RVyeK1YutaE0sz0clj&Cg%oegK%oMg#$Ys|R{pKPoy_%d8e1{jgD&
      z)#7vGNZON|=6frGkiam<6zjUVUwpB5AS+FQkf|R^f#mk-tKFt;nENGx!K!pBw$W%B
      zmMIW!OS5X(0+F_~9rtL_FpcJ8fvxOW{{Nli%5<j{t19CNBB3FUA%S2vSB^noM8g2W
      zj7Bv?Tr{R3>Z0=+Vh9TiZ5yWCX&vrK`<1>|SKV0^y<XOBgZJKHs97@{fz0;52S;-V
      z@f>L3zNu;Xp{3UejP*9{&a;$z%lDqpa23}Cg!SiSy&!>TO?PVCrRr^yIkz=T;wDXZ
      zUp9A?CaG-BPn84(to8~Mql2=iO<ZA5o@mo@SrHUzJpH+rTSmPq?I>mi2G|Bmam?Tz
      z&wQ@0yRJAK@j$~v%+nzBMuW-<6#PQZ9C_tRQ7ljsrA&{xmZDgsK1vzaVzebs#d)hb
      zQTKYPp@1A6?^-RpBG(PpFs^i(;Zg$HrfEuhrLH@UbRt+282_uZq$Z1t3Gz*lzM>EU
      zY%M|oHkMkW-WpSDlw#r-q<D>XA5}bXF@J({`Kb<u^MwwQ`RNW)`SDN(=`V_VfnyZ^
      z8Sz&r*D4ZN!zk7<jt%+)b8aU3T>=#1n+S#Y4grNO6ACJHg-{41Y%%XP3lzgq;r!GI
      zGM~DY-7H(GO4^O+Rte)eZtyq7w)657X=TO$b#<#h%}bR=a|66IBgi6mhWr)7pZmzK
      zeaU%Wa<ZTN&X+vpOHTEZYrf=ZUvj#i-0&qAy5s|rgx}47$IP4LofF*U=8thd`G_9e
      x3*(ZDQ;e5foTlX%PfqJ4l(;RDxlM*>_0*mB>ITR{{9Gm*fvm{aUL_mFegpAt7nA@1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Mixer.class b/libjava/classpath/lib/javax/sound/sampled/Mixer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a079741b7db827ff565245bd30af9d96779c7565
      GIT binary patch
      literal 995
      zcwUWDO-}+b5Pem2b@^6N#19lP(Zsm%%*hx{NH88y4|=Llamm^xTQKNP^WYEgM;WKx
      z4Uq&`58c<!%$s@b?0o-xegQbcp@lhy%`SiALr3`o*>)6v?Rlc@T)RUNSV%DBwA=Bx
      z>^L`1UD4`WSY#+pA~jqo7_5%yhr8NQV_I0XE}#9{@l=0}!M+@}M6d7qQdvkcoJ@<o
      zljLwc{^W@fg&|2YuK7?0D27U`lsZF7Q}o5PMRO+WGa(_1Ay1s9KL}bv=Nb_oW6Cj{
      z$0~}?kr^va*W8&^IZ}JegQ!EH+RT`Zl4M<_cg;bs=Ldb!{?F?@FqB-?e3z}4z?bd^
      z*G>47p?ow$*Mp`f)rc%&<L?>L13AXnoyE`uJAA1t*Q03LH1SjusPA<tMR4J9r3C$J
      z2b64f-x(4bXbu?WX)Vw=rD;|yEYWG1P6<MrEGeX+rznH0!5s1tt{7a!n!!S3FGTkB
      i$i9K1!A+D5ZeiQt4tA-^9LnaqhkZhuYF21fvHS~j-5Z4f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Port$Info.class b/libjava/classpath/lib/javax/sound/sampled/Port$Info.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8a1cdd4f2c1fb7cf531714dbdc0a1e99761c05d
      GIT binary patch
      literal 2235
      zcwT)}T~`}b6y2AEd@*eyO`+A&(pn)IN@La5noukaK_ZYKNofgMIwVsvkj$i$2}^zP
      z#Xr&i&<9;waM`tdbuE9C%X97w5t3jYa?ZWyYoC43nZN(}<4*v0(GFrjV0=$I(7sEy
      zthQNAwzNjGu2++5mhIfinJ=v%{AakV7^W^=1e8o+b!|RV+Fr;NGXmFF{x@Y>AiR{F
      zUsziz<g)_7m0Ui%oy!Y^q*i!R5{RtkGV6t7kK$T(emT1?;5W5~E)bOkl6B48O%@&7
      zFn1|u$Y>R<wp}5+DARGaQa4P)nG^8E6B`tpv8s9yF@eix!3$xOo3R>At>R297_CYK
      z<gVZf-V+GSdikc}C+cVFTC0`r1yoLKgemx{f<XjAxW-NETD4iTOq~rA3W997$qW#c
      z6Nbsxw-ki<dXnkjYpd<>eOy79?^Wi;sMuB~(QO40w%lQ&n!2{H+kE|zf*}M1E^wB7
      zyRoC&C2glJ*|REIeM7SiK6{tpqOoggPTMA3?dfk;o$KFX1U}qnem)b3_0r;U@VNp7
      z=U7WCIFAeT7EaA*2@LMDm%vC*pup&9l;1axk;eLgqu0@2wY54WyL1vpVP{XTIO#+=
      zf(0xFLDMwcZB;Oj$22t7>A~_s=^biXtH#44Cn?97Ruts$6%oFxJ9#;hv3R22P*MQR
      zVz8k(m6}fAZpQoWMrW5KQXh&6*6=kC-y*SOIW^rrYpwnZC8Un!Rt{oQV5}R@<F-++
      z>NXeHQt%Y{2)@O35YJDM;`%Ch0gaF!X!W*UcquU1kJjFnBY1`i4@9-=B|Lj#BLvD8
      zOi%DCKV<is0t0*Wf?Bhwn-n+GFRtgx>n0sSU0^6ZalHOAr^z|#L9fQkXGgN*7VVQ8
      zw`j;c;P1d4j-W3=&NOvf&KSR)pIOEYdK4dhK10+aZ8m9Fc#)+Hc{1$Dh$n}n9N;aG
      zl6F952w@l_lrKuBzbG63w%$Q(MlVJ$`HwL6E8h2x<34%3?j3Kq)(^bnhpu(XJ0@J~
      zw0E3wt;t_x@w@cDju`!?2v(Xv%o5-fLHYt?c!bL&uOWj;n)4}=Gx!qsu!Q?0XR*xF
      zk1WY$6i}owEs-pf$Hy`|s2%!RlJ<!_e=3_hAk9y5Se-t?J@ximJW$8qBE^V&5>Zsz
      zpA!k&MB58Oqsfe_8%LD`lAd8a#2nRNjp-ba8WZXx+@L$*c|9U+gjd@mI7Pnf9bgQZ
      zHythlGD4TtMqQ6iwE*?JB=gX^dwG&1Ibu*f!g6<-J(<P@G3cccSVg`k_%}TGxhvT2
      z8+@Ml?F~+KSN@@IFnvY5;3cp97`MOv8t2sMLzG@)(ErBQo$JRFWW+jT#P9?gl8mRF
      zeo90;N2u@cY?BBn|Bi2tuoKk}vCA!zi0-?3>JW`XG`pMr=>%@ot2KaE^4~^_WJI=o
      I5e~xt0&``$GXMYp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/Port.class b/libjava/classpath/lib/javax/sound/sampled/Port.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24788902b60423f06d700cc9510c84f9a23663e5
      GIT binary patch
      literal 214
      zcwRg8Z`VEs1_nb0UUmj1Mh1zj#InQ+{o?%6ycGT7#N2|M)D-=I{Gt+e1{OvJ0g$YI
      zPGVlVzJF3yYBEri4Tm0|%)C@a2Cm@z(xT*4x6B+MhZAIu9!N1G1CM83UTTqZPGWI!
      zYB4(lHzR{AE}K<6^V0Ge8CXCR&^AT}W*}x|00AZjb}-4ozzL+efZ`y`!@vmucF;BJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/ReverbType.class b/libjava/classpath/lib/javax/sound/sampled/ReverbType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63525a1845a75409f857bc72b552e647bf12d64b
      GIT binary patch
      literal 2055
      zcwT)}TTc^F5dIGIveZ?iT&)%B1#K6#-fsm_z(Tbm0;1^CLXWU!*<!mj_SHvkzrzP(
      zG_jCq;t%jg8Rwkcw75MXo9xb+neUr9bJ;(CfBpt=0nel8U>JUBzBb=vtL2(g%2v(I
      zEt{9J3;Z>&tS;5JcoZRqgTg0ko6dUn;p$7i<}!pFbCWZ~i!IZlTd|z=977*BD|UT>
      zzp%;GDm&BMHtP(mz%Udr6&#m4Rm&CTJVUQ-y1WfI_`h}+rmMu)%=(fgQi+UNj^*BB
      zNTl17D&*<OEK}Z7<r0sf6LB2}(96)7&MbF<p<hQB5g`rgh(Z(6Ast<a3F)woeV*=!
      z4&Boo)v+HMLwC_~_*`vsl~<O`Ra;i2yk^?VX2lX`Um0>YtSUpQxOc&+elb}j|MK2J
      z-kI(zD&ZTX?CZm_4pamFs%F|0rGIw~yq@JU&&0jY=*YmJa+m+_p6|q<ZJ5;!Q6*WM
      zg1}tVk;QoieVx10t%?uQ@vgGfhubZ?x<<6r>jCm9s@k1sGwi}f$v7uRuP>cZ4WH(g
      zJvoYTN-^j$S+ndCuV|Q{s)-pMk6{dV#4t<-%H~sMmW9W(j=P|&Bj(l?cS;OrRjzF+
      zKU_}3EG3gmsWwAqa8K~xXGo?Cd$ByA+P1MY%OjZ{3Z{9%l;4YKfjW>&DfVq#!xA+i
      zXln)0KzpR;QqA3yVV~;A;U>-NV!2jX<9SQWe0OWE&xurUjP|CJ{yq_Oh;<{WLoA#8
      z(yGbtKL4!y=l${=Lx_6RP56U!`Ydt4DPspc#%Ke5MzVncW2Av0qd(L@!WaxUkTm)u
      z4Ge#mJSln~ms}IXHA(TNh;bUdRIfwG<0xh@f?3KD^p@=8e*%z_$d*azByn^|X#_EO
      zn^W{?#3`iHqzg+aO}Yqr#Jc%e-z1zsMvT!NjDBfm<uMm!<N?p4899QpI7jv#v4TEN
      zmc9ZJrrTc#(mawhy6522^x%>L`~$;5@QM<ASqUBpf=wm(3a%=^Ltg`6O9{TFjGPEY
      zex(FoS4K_-Bi9vRh8xtac5vUf0Qjvka;^#fL<1sh^S>~*62G;B+k#~qQ}G#ki7IZR
      z5HEW2&^G4ck32ac^oyRH6#B=WJWTp+JZa^TkZbe~NxY|#`#{b5h}#smNV-;T^UaH`
      HNaVAB4up|L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/SourceDataLine.class b/libjava/classpath/lib/javax/sound/sampled/SourceDataLine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c8c0c87fbe9195379d96ceefa35ebdd9ab7b880
      GIT binary patch
      literal 376
      zcwRg8Z`VEs1_nb0L3RcvMh2y<#InQ+{o?%6ycGT7#N2|M)D->T{L-T2RF}k(M4!yO
      zRCWdyMg{?pI{lo)ymWp4q^#8B5_SeQMg|#dx?%bl8CdcQQu7!YR5X0BsdFq%$;@}l
      zFUn0UvDOS@WZ-hGNKP#%$;{6yW@q4LWYEE;31o0+9#A4PCow4}6|RMmL6xvAo*-*j
      z%ZoBgfR1C=h<5Vy)bs>e4Dqj9W)4tT7}fK7ATxnJWn^FmVpd?tF#|(`oq+?$;{@_p
      YfHW6aga=K8mw^w+V`Sh5l1vN&07gS(UH||9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/TargetDataLine.class b/libjava/classpath/lib/javax/sound/sampled/TargetDataLine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ce6677722745418742fdbee7a6ec2aeccd58f92
      GIT binary patch
      literal 375
      zcwU82O-lno41H-=r`E4ZubxDq1#$4~$zlr&1rL5)Jf*usnKGSOc4wu(&4WL{A0=iB
      z3d(|qB)lXqFUiN}+dF`3oG5e%XDfc?jjlrNb6xSea3<G}TrN$#<H&RCjY2{gG=18!
      zU+VkC%4AVtmvGv~{^k*qP#8}*AI;nPZtL8JSt!>WZ^qAr{&bU>BHG|9g?++h8>t!m
      z<fUL8FP!<I5H9{#NgJ7@G@KLE=w*_o<5YAXLS1HNW}U1&{C)dXGg1yEbj5b$ab0<a
      ZLQl}1phRMSn>qNCImD45!m;=c249}uW4ZtU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/UnsupportedAudioFileException.class b/libjava/classpath/lib/javax/sound/sampled/UnsupportedAudioFileException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6ae28916fafe2c10cfa9ff450875e09d484d438
      GIT binary patch
      literal 560
      zcwUuIIZFdU6#kxW5?K>XjPdHU@&K0*#6t1F1C+%kn!;|(4sm2Nv+N=MEi1*sAE1pt
      z$13<{4GIc^#k^zYJKmd@!P7H<CKgH<AvABqt+?|Nlj*=qL_Z2;;9ck>iy{-JGT6@o
      zWsX%SkM6oMN|n(iIE1>Td7;of@9Tk3O=PS@*pYF<{l&>4fldjP1EZ5v=(HokOcn;U
      z$IJKn>l>lCt+Yya2&2m@9fEUU0_kED6J@v<CrtWE%d@P1CF65(6-vUCZ@O$C*oOPz
      zrITK(gwXQ;y~`G%vFv~E(oSQgds{0VJ4M4zQRm_MNzXd}f)U)d$>OfGnuMi4t=26a
      zi(ozee!>C@C~_`wH-a%fWS8bx=9?C0;#^pLK;=G%OmcKN0~>I#i7Hp+PY`OD%0+qJ
      kp}-C!Ew;G2_JHZ13cJkN%N1rmQ9}h=&0sb+pUXM(A6ry^FaQ7m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/spi/AudioFileReader.class b/libjava/classpath/lib/javax/sound/sampled/spi/AudioFileReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e2e4e5edd6c77c4f9f4b3ac41e23b3ffe75f7e9
      GIT binary patch
      literal 931
      zcwUuKO;5r=5Pb`UYW)WM)`KU-gN-qA0X4)(LP9k0>%PzpE-Brn-5UOuCle3;0DqKm
      zih`m&)E;(bUgy1ivzfQ|msbFX*fx=2*zNI0KCnX-d5#_OzV8Z(zO?I+BUMAX;#zP=
      z1SSlI#kkpax!1L?+C9<H4EdV$q&{WH?v?KujC17(3t3FhB8NP~LQ8t$GU~TQaLe1S
      zU?{Xyhr9PYka7J58u~$o4CPizJ5|!@3Oz;}D(G{vbG$cHu%)tNxSA~Zi$-GB#h@d6
      zEtMCVC@>r*(eAu3@_iL(;fxi=JQF2`;^^|`)%XWP?b}q-^CNwu1Ht>Ly^Ut_gtqUl
      zTd8@)(F6Usl%bOTg?^f4IQjP!ll)5hF(!%Djf#Sfh}|-jel5a5EMn|{77+1gQbvnM
      zr%BZjMMg2V|BR_8N;0tMv?u~+Fi^(~WwW166z34{`8*Z~StKk^ol7VVvE>A8<qx)s
      SwFGQE0o$0wsM;Jl-1-0~0Qai^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/spi/AudioFileWriter.class b/libjava/classpath/lib/javax/sound/sampled/spi/AudioFileWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf5d8e438dd353031a4aae0f341968a7741cf74d
      GIT binary patch
      literal 1500
      zcwV(s%T5$Q6g@@v&^nHS3?qmjBCmPU@evn7NQ{w$1R*jAiLRQNax5}4-S%`VF5J2E
      z3tYNl!^RCJF8Bby#rO&8sh(jZ_(-#`ld5~G>fUot-MY8GeE)n1;0ER_^a#xEI4_-D
      zyXA(>s@-xLUR_dp%Dxv?mAj<sa?4kN^evbI{o2^BJI$KCw!I@Ofk5wqYN}vSz{ut{
      z1<d<yRVHEJYzhhV3iPe0rd$mh+tS}~w(C-0V8yLC^-afDdfnMHgXgLxkXwmKXI|i9
      zO$OcFjn|%}e<_=L`bUVa;gah&oM1}Z6Qi8{yY+I@3xjgtOQ$h^I@Gjk9dRm$p6B|3
      ztZHuYF>+6m5ExA10{W7;gkcLq0@=9!DO|<~-$uR&ojTK!X@@@katxufPGf<5d}0EL
      zpq=W%sZt^o$MU}ue$p%E(?qG7)T!!c6*{_%X5zW>GOu(s2{<w9;FRQT<=XmSKF6yk
      zAM9477bv&cvXEz$99b-{bx#D;|6{Ti2FKE-8I|48uSo5{Vmr}cbK1?EU~UcQ&!WbT
      z=4^3wi&9V~@}F?#Bb6Q`IVUNByD+hUbJS98Bg*s8KM<C4NA`1{J&b`4;2VZ9DJSv=
      zNIx_d_b^Z>j@>*!<~<VT{#!$g6%RlB_-5>PgN=|4@QCp1TyJ0ykJ&2g7{^u=Jl_Uv
      z2amKX7>#Z*iZNUziiKfXUt?%ZWuimn9oGrU>3s13*H?`@<{r|8QpWtn#uOQ|L^@x8
      zqf_BrWyoh3LXB-$#UxZj=XM*kOJ}-6M{83YJ@g!pi1F`9G)>H8u4XVxt1RtI%3QQl
      MIKIPCj98R@0s#wzTL1t6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/spi/FormatConversionProvider.class b/libjava/classpath/lib/javax/sound/sampled/spi/FormatConversionProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ecb44041137f85df8a9597ac1ea245a49faa2c4
      GIT binary patch
      literal 2222
      zcwViQUr*Ce7{;GNJ0@caZcG80IAprN3=k0+k{ALB2~HCT7kXjJ)?mrj&bA|5NHoSf
      z6TMa<(JL-oG~CR@3qF9K#rP4_x9!}Dfb9~Otncaip7;5^&pD_2_VeojfHB<iqK#p6
      zL)a9yGMZA63mHu)m5U<9vXog+)RLgjDe|VMYLX(~Q<Y7rAgW&Q4Bf`8Oi_^6Gk4cE
      z#JtYXJ|oGJKFh$x;;Rh&oKg^d;LzcR2ki`9OOh<+Dy211T@lubB12$F$qU6*L6waA
      z`j5Q+NYWU_ms;h@G6dH}{dT1wDT{KsqA%;JD3lnsV#n4p6Rl#y^KxD(Nb-92<V;)1
      zY}{QMgW@RtzZC;y!Lm|O^WvYL$jo#s{=f;O>48;bMNsK#E0S~Wr8SlAhKlt}bK{qr
      zrE*O}5FtrxZl&c)xvZ$VSa8#AD<t=QVCeTFh#nsXaM6n}L(Hv!AA`6=2TXii5sKte
      z$YQe}Kawzx4!OyYaN@Bq0;j2YhKSP?%IpxEdm-s)tzCmj^j&0_cl6Yql}V(%NHGjL
      zB>ORf3`3`FA2Xz4|2Rv3vm47c=0^zU7=|2srdInT?eOWdZK<?l`%PhM$4vTh76DpV
      zS|rUZe)v>2iW|w(#`dCQp9QcW8E@0@NpH&$1BH*!JPyXElScHKrmL6ku2EzZJ&7+k
      zwNHaK_~`1R2uy*;G)(~fRuaY2F#Z+JpsOCc%}DTO3^rnq8OcwY$8a9Kb-|Z};h`8!
      zq-yBPag+QWg2{A<AFtuU8+iEY3!a7e^udQ;-??f7sGo>|Cv@E=h^JKW8Tx2^8P83?
      z39G0DXpSNnGNGfCGfY+5>1;)D#rU71YF81X<_xfS9qb`J;VA|a$r=o}(Omjq*8s9%
      zSiZcX_}Y|BSW_CZL6RLdWrKBDAIU{APQ@9SJy93iu8TzyHC(^L&F&$POof{ka4ei6
      z2YwuJ;4SsJL-+5<;9W9zhq`)iLy0s{A_OpGuJr(JP~UAN+-vr2piCW$a<dhbk5sx!
      a_n!#mGoe%oW&Z?}NCPE$1SM<Mo%s#$(n)au
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sound/sampled/spi/MixerProvider.class b/libjava/classpath/lib/javax/sound/sampled/spi/MixerProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aee30946f1b0e105456c6601e392343d253cf15d
      GIT binary patch
      literal 839
      zcwUWCO;6NN6g_v^VX#*DMnnb}KEljEY}6PQC>s+Kk^xi*3s`k#9`HzMhfYh_xbsiA
      zbmfMP8%$X61N<@m1oiX{8co!pN#D8m_S|#tySHDyU0wlrgt-E8g83u=)IamuQ5rVA
      zwtw6T6tShfb$zDdS8;Tzn<_5A7W8LSFYv<yZ?k@+8i}CinGSWbDzM6x9fAEKYAOd7
      zZn?;#N6=T(q1s4~>nh&%>wyvs)}n?V?D(<H{Oh2d9O|}Up?0HYRs_8VDlsv^^YUM_
      z%-6ZKa6ek9{F^{2_or0G70i|^d))*%3f(sTR@!PsaiW@8Vz;!)t^>h{i+&6^xQF`%
      zj0q<HpXFj44>)LblKKH>G}0;a`x+?B5o*)^bhjo1`HV@W(hcq@n(vyx*^1J*p<ZgU
      z!auh0FcYy$yqSgUv1xJlJPY)m5QUhpen#&n8aX&T9U}0Q<YnBZ<#tHKJIH>uyXZ5>
      zNioin7`hgG%Q7~xRK39Py0!WdgNsYW#}^oVkGy^U&XVHN)raq2t@B^S#@P+9LHSMk
      puQ7}_7^OXhZBxA35$qH<)&z>?7895xE62iPm}cB!bjIk;{s0s7%4z@r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/ConnectionEvent.class b/libjava/classpath/lib/javax/sql/ConnectionEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8345645c27cf27d1e2582e8f4d8e84a30d16f4ad
      GIT binary patch
      literal 771
      zcwT*x$xh=y6h-fIrY13CGliKQNw?Z!!zPGL2olI*5Rkp&l)%Vc)x-|UqJM+`011SI
      z5PSG2#H+GJ5K>sU{DxcS-Ku(hdwd44j^zR@LixhG@_J5m89H?(rSRiG$;OqCaRFJv
      zlx{oSI0zk6JZN38gfJF~PT+-2(TP}py1PxFJ;E?EqS%vh(+j&I_w=GR_OAc$6D-jq
      z%(#Z8XB{88jh-+5>1j1Welw6kyhT`EbNhx4l?p|>Z>v^m60&vG7DZ$*X2ZrfTTHe%
      zp(oFr#Get4x`7n?-M=l-Iq_PdAWXQ*XU`rx=R7TD<MSXQ%)0|Gg8gNDB?$}Pc_VCm
      z>wUo4E6pJg=4=#EV$WwH{@mvGS*r}Zwc@erc6_lD=yObdas5Z{!Yacv{M;7ikVBrc
      zg2{gH#}hfuaLvXruOpmoaoys7zWVC{qqjyo!E4b}Ys}chPmZP&6(%tSm}nX^%+Rda
      zly$@!J-cLB)!+9h_kkm(RcGKf!y5*=lE^=xr4*_oZPwy=9t$bnG2?(-^$z8m4{+WT
      PT?4ceK?)=+8r9M}R`{lO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/ConnectionEventListener.class b/libjava/classpath/lib/javax/sql/ConnectionEventListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48e29c2012473bd5033a8430c30227eafa89e08c
      GIT binary patch
      literal 262
      zcwRg8Z`VEs1_nb09(D#MMh3;K#InQ+{o=wLedqkVywv29%=|ppvedj1pUmQt)V$Op
      zb_Nzk1_6*V{hY+SbbbG%ETAfO1~x_paj<A<NoI~diWZ>yWVm6@Ir+t@DU1wq8a_Df
      zvepa(nugHhT2z!@<e!{eT2utm$`zbnT9lmXmYI{v$RLBmoq8bCfsSHiU<P7VpdXol
      V4rgcJU;uf56GQ{Wxj^C!+yD<tO6mXr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/ConnectionPoolDataSource.class b/libjava/classpath/lib/javax/sql/ConnectionPoolDataSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6955eba58d51db06223f1422b36ab0a3f7b4c17a
      GIT binary patch
      literal 543
      zcwU8&O-{ow5QU#hNT3v2C>3mA!7ABcvF?sPsZu10f?yqj6}bvFBrfXNSa1Lig%~G@
      zfB|92vgf^TX6$)=dwv0Mgi(MF!@(?lN*BC(Ecl65N@PZAHPyN}O--8Ud6|g-9>c(L
      zyhv5fFK%aqF${BIEGh2VOosh1irbp5KW6BjEi&<7gDSu(!>F!o;p8&@^carAxb2yk
      zQmTCXQ~9S^kKP#T{HByflngr`kK<DFDdn5SuweBK+zo%_qHBhJLrQfe?}eVzAiQu=
      z8@X#Nh0%mQ+>G&D7J^~#uPGneem(<b!7iVMz6_t@fFh61m0IaK${Ko(vW^W$>0{t1
      Oo7noQ&>qsggY9=?Sctd)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/DataSource.class b/libjava/classpath/lib/javax/sql/DataSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c9f7ced2d95c70133522d21ecae37a3f50d29f1
      GIT binary patch
      literal 495
      zcwTjo-%7(U6vn^I+UnfgrW^VQ?Ty9jUOI(AL8YSCv4oIO6Kyluvw5)x@S(($7S>rc
      z5R&tKzr*?S`Sq~@aEV!f9>a9W-}ySO-imn6EziuV%tZi?VeFi^;9ADF&r6Y8hM^Sp
      z%4ki2GMeEmjMAEN>8+74^sm>scy&P);E-Xq#j^W!>oFu@+Lp;|skBUfEB{p)P(P`W
      zPo=V=+-XOd_>K~7V>qz-0iK6{a?vBhs3DbpP%px)XlO57)Q0RDdttPoNt>13s6r6b
      y?(o7@@EM4MJ3g&+A3ntaMIOBewbJh>M;LUJA&xuB2;+`2!O5;d_muuUOuqql*>xKL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/PooledConnection.class b/libjava/classpath/lib/javax/sql/PooledConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcf55c69f185d44e0f7fcdba9ec4c526aaebc9fe
      GIT binary patch
      literal 373
      zcwTi-!D_-#5S+DYYSdN_QYd(pcrkePSnMgFBJ`fdMIz7lG>O4)^Ux3IN0sjOV2a>7
      zyk&NV+1dU6xqJbbqVJ(bc-_Tid=B%Y375_p-n=<$IVn<SJ=6(3<wFzOZMgW{2|?&?
      zxu{fxmtY+Isnnz*W(0qJPWYf8_s}8?uCnzix^jd@VqDIIhhY36k>bt26!Vg85v6&-
      zmNUXAh^oYQR5NuMX1sSL-!<~r?vy3`o*EfExZQoCLz)E11buZmMFUO2o+7D_((%#0
      S>2%PAp6yAi^q%Ffq4x{cZDQL1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/RowSet.class b/libjava/classpath/lib/javax/sql/RowSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9300a983b9456e4fb86ffe4acf02e4a92bd2af00
      GIT binary patch
      literal 2753
      zcwU{A>2}*h6vwYZ8YfO$H+w0R9jcU4Q})IoC3fQ0#aW#eNZBUx)KQNXGb6PzkH!Zc
      zfQRC6?~G(CGtL)2<T&&DU)^<<fByaJZveOly%J0~aP0+q$<C_skDz)Ozv}R$1d|!9
      z1}y4T_fB4L59yQx^NK1{F4G`EYX_!!Jb5Al2NvDc_UN-tBK)XVbD+F^=J9^w$B`_-
      ztOH9!C!K@#P(wd5^RwjIZdRW<Fo%J*Si(ASDm=c+LXJ$@Y?cy|Tts>$&#h3~XHve3
      zMOSO1)e34yf<=;flu=8@0n@3y=B~C-mlx@iZi^BulY>E@@31~*mUkmf{Gf^mTQSq|
      zdl5@gftlPl^>w@I0%-)8=lbo9+6J{$76Q$?MjT3I&HbOw^Ew)F7_z9VV~rNRJmjpq
      z7X<^=m1Et*5u0?6$wLJ_?69+@&x3Bq{}aotNRyPc4Q@KAqYM`dsBBA*_4&StJuW4t
      zi&T!I6zL%4VsPY#JWdlG={zZA?Q-C%Dkkz$A$a5sw6vQBxa%&tEj7dy{2jmlD93sn
      z2b@L9TvbXA>Vt$UQYSKvq;ndJM4=8L+S;us%cLDs-Y7lJt(!s2v~`ov4DIPSJqfha
      zEn-(FjNjYho*y#I_J*4!8M5TGI#O!61D&@6%kBl$OlOH>zo*>RvwB_(o+gaDkbg$!
      zlu#|#sjG%gNa>d|T_!BVoq63fQe0WmAU37v`<M}DVWA*DuC}6nnrNY>W>QhrM@$TI
      z^LZNNDHC`Uxya#C!3S+gF7)Tr4}FUjaw^<ywc+H)NTe)}Q}V$c^5=923#B3%wyPe*
      zCq}yn4fTetH*%duv?&A|(A`=vP)u3evc^<6_6-*BsLO<HsRnkD<(=_UyU4ua;einQ
      zIEs+tETp;@s5pMcy_ELS9P4)V)6({3!XqvmxT)`_;=7ZJ%Il)wVf>PtpOy7J-}LEh
      z%xd*6Il{*Y1LNN%eA?FV0V}~Yu4ZsGiN9qem*I**uA&V+b`?vxmML?VGM_06ma+&-
      zN?C>#L%9yG!^DWd4g7Bc-azF|xH(373zfICIPX|--i7y+@;-cEC?8@5=gCJ_F1IWj
      z*Rol~2<ORdE7r%BpF5VHPb_lRB31a*BKHjP8GLS#FW^gqd<9<{<QvQLeONO{4b~0v
      zEo>O%0eokWO{g2B0b2&yhNeLt!XtyU;ITozhqgg>EV2uG2HA%LiyT^{V~`_wVvwis
      sgF$|TpA2#g&#X#+wkrL_s`OWb{06@pgjwVSJfNN4rC($m=yW{)54OiTCjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/RowSetEvent.class b/libjava/classpath/lib/javax/sql/RowSetEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..695fe11801904a7cbf2e13573a1d068458445c63
      GIT binary patch
      literal 370
      zcwS{rO-sW-5Pcidq{eD%MLm1-16-`fmR>|pLBUGzo4DwfHNj+4{aZa1dgu@EM~RbZ
      z5wSZk%)EK;?fd#(ECF2MAcQAyI8jseDa&^&AM=lqcDGZVxe)&PBr9jEWbh%G=+p@W
      z1CtpyB*JO@U)?_&3-~wrvyQNZ?G_q{eu>hm>_x6@nAna@rthn_L>Esgv09)T=c%$|
      zRhW8TgT8w;rNHsVZyc*niORexQkHK75{O28y)(5}=a2HTCgTKxqSjAPH4sn_X&b_$
      n0)q34Ihr$?JnT@980``B8ZDZRRxIpdk6i+^(P6KB)^vXWOo&w&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/RowSetInternal.class b/libjava/classpath/lib/javax/sql/RowSetInternal.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1cde9fc7d31a186c2f3ae158434aa9a6ebca87d1
      GIT binary patch
      literal 429
      zcwSvlO-}+b5PgHd3J9XakBj%+iyO}zRT7dlD4TfkR5z2&lG@d6QGS~Te}F&AI7=cz
      zn>6kFnAhoi|9pM{xWXtvgK)l3?`jp>HyzK*kCffiIIfJ+0h)wit;SlJJf1x-ICF$f
      z&hB1S>ctXH!ssdSEn`CWc9rp~D@tPnbi}vz)NiB@$wnjeCF{C0Myl5MER2$k^<R+0
      zo@IB(PTeS{2p3`ExBVxMqepQ|?yM^ELjFNG-A<jeU1}!<5<1wjNs9EHmdh&RNuilA
      v+MUN`9nmHb_E4{ujHiXR;6PAQ&V6CJ=y}Wm`W`dDp~nn&8QDj2Z{YYBB@<<=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/RowSetListener.class b/libjava/classpath/lib/javax/sql/RowSetListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a5dc97043e438b15156ddcb19150215c1e87229
      GIT binary patch
      literal 246
      zcwRg8Z`VEs1_nb0UUmj1Mh1zj#InQ+{o=wL{h<8v;M5YI%;J*NywoCg1{OvJ0g$YI
      zPGVlVzJF3yYH|rX0~;fQI9Rl_Br`|fwJbFcu7#0-w+L*8a|TdHY6>HRl!gzw`CuK^
      znqiC#TtLNemE6gtMaB6=zWHS!9#?RFX;E^jTV_rwBZDxi!}LHV0$st#zzoE!K))~p
      ZUCPeD!2ohGCzR#_(Li}_Aj!nQ0|3qzKd}G+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/RowSetMetaData.class b/libjava/classpath/lib/javax/sql/RowSetMetaData.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ba95bb1518b87023a9c667c86c75bf1ed8531ec
      GIT binary patch
      literal 824
      zcwS|Z%TmHH6oyX_ta4Kn6z{sjjf`to4(bduh?hDp+=Y4u;-o3Isfv&0!Uyo798X$B
      zAd5`<f9F4cPLi+hk52$Nh64vO4C+t(g}*hUXW6_BUR~6esQDS!+<`2EWm9cRuKLZZ
      z-V=J-fq4d-2~Aosilv_DVo;7yw*ndasujdaGsrgDhxZKf=WiYkwFp$?K!HJR9OB+|
      z#x>fK`cGpWw3Qd4k0v44Xg`<;Q)=-DT~v|K;sqI$2)W2ZZ@_z!bir8SFhu2zQq_&6
      zOluUAOtNTtL|@?}gX(zNGZ76XAGzWkClAr#J(LXA8tu;iUAQ_Fs()g_N@Hi2`+oy@
      z1N3>Si=?kZ^hA`LZXqdi`CGX&lcmOFOS(ZB^#7C6<h#+3bY)7Xp1d2xp@$d31g=g$
      z;E|b^UW>sTtsK31g<jNw1yYNovh>XpDMD$6lr6Gkk!6ciU}c7^TAr%qslnO|S+_{t
      bA{$oDrbV`_u5F9#SY5l*9$I_!pMm`!FBzdJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/RowSetReader.class b/libjava/classpath/lib/javax/sql/RowSetReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2a4b51cb706a5cb7f4254f5a2178e6e83278748
      GIT binary patch
      literal 216
      zcwSvjJqyAx5PesxsntOT-Q0DtIJ>GK6vP(XV-3<0Qca`ww>kI&{83`!AmYJs_jn(?
      z=j;9eFhiHYBMb|E<#kk@Wt5b+RG38YgU}2<q35_ra&?S0`$A-f5NJy;xZ#A+IR5vp
      zl@VHTIiKtZ;j+%e$>gP~7}|uvC(Vh|ZT#h|E-f!Q6RTVbLjSkK)HzxNLIZBdc50$!
      PF|)|GH?SMp-$UmO72Y={
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/RowSetWriter.class b/libjava/classpath/lib/javax/sql/RowSetWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..206000904ffbe4a30b9f9abc3412f24d7f7ea0d5
      GIT binary patch
      literal 217
      zcwRg8Z`VEs1_nb09(D#MMh3C0#InQ+{o=wL{h<8v;M9`vqRf)iB6bEAMg{?poPJJX
      zUb?=2QdVkm2_pk%IY`<iu_Td^K~}>DU9)E%P;Xvhj<seKBLkOfMRICENoIatF*^e%
      zBZDZ|IFRDtKp(gqP+f3-X;E^jTV_rwBZDBaEA&7**ccfY8JHPBfDz~@Rt7d8pB>0!
      P0n!{m%mrjKF>nI_rdv1;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/XAConnection.class b/libjava/classpath/lib/javax/sql/XAConnection.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86ab2c5f81ca0f5e7fa9c84fffa439513b868487
      GIT binary patch
      literal 261
      zcwS9Uy9&ZU5S;aO8Xst(g{_S?9@bVtv=V$Zwr4!V5biXIl5ex{1N<m)6Tw(4yTi=v
      z?7rTQCx8iB0tG_PS9g`j=o-kqJF~`UFFso%P$INbP6o=H<m%uvAy6UobI01+Kp%4#
      zp?T8r-refR-a=0k2E)<vtB*rvB9+NxqGT?b5}bMB=}SsQ0(C++3r-Vuo8^yV-7a%1
      k&H=CP{NFoH9ef<2$W`VCi60QCGO95uad)^HJQvXX0H0n(;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/sql/XADataSource.class b/libjava/classpath/lib/javax/sql/XADataSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..611cabecc73b674108b6fa9c12a6fdbe873e56d2
      GIT binary patch
      literal 507
      zcwT)_+e*VQ82&PAt8=<dor+J;-Wa?d2xC(i6jUm@+gd`&sEM}O*t2=z1NczlpH^J0
      zVjv{n;Xl5AyuJZA$G}62;b<N&;}tJnGCmtkViQMtktf1~!_c!D&tjGG>&LlB3_~{+
      zW;PmYr3gx`7*72ltmjy3Lx%R{DiO~X6dtx224zNTjBdkkjp4!%*R>*(OO+0PGyfFo
      zP+y@=A986#&T#zI6qlOcP^_s0Yb<^kPy9c9!99&yIi<RjPeLzfc*mcXLfRBI{9sDM
      zR;#;`nPBMGw|Qo3xD4ckJuWSG6E0zokVEfQ$+R2H4mu5H7kdq+i(Z52W53SOJ)nOJ
      Fho2$Kc@zKu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractAction.class b/libjava/classpath/lib/javax/swing/AbstractAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d2cdaf67592a035374bb670f949b47f0b2191b0
      GIT binary patch
      literal 3209
      zcwUuOTXPge7(JbAGP|1zkPX)a5JDu$W|I}X00z(yKrSI53&AYjCYvUiu-RE=W^=&{
      ziay{Uuu5O>QkE}1V3mYYs}wCus(kSm=!4Jt1N6c2^z3AB86Z}wwtJ?(KIioLzWye^
      z{QJ#!0CwRW4Rr!-)5feZpLFKT++=ca+;MFq;|^wA)5>WG39M1;$*jTE)8o@J<7#LW
      zh*j<Kqr(EN<>;ZTm6OJJR%(a}to0U5E18nEX=Kf-YK7>I_c$tThY;tF9~KZN1e%Ae
      zoZ}ifchtxhWW&erpS|(NAvqzS$(-8AnMgA%GestuD&+H)?F#e{SIUyJGUp~!YJSGH
      z^3rw}hAQI+1R5OIvMHn0+n6l4W;S`uaHdWfd9F6@H*=<YP@ulMXH+0GWKGB@>d~fS
      zJvKxjuvy0%v}o8WkoZ5;QEb6Bg|b~>UH5RU#REN~3Vnx;7+N(vD$ue_Ulg5aQ&HVI
      z)?%H&>R~e{M+!6J(mq!-H#Tf#=&eDA`Ru<8xl^V?<yBTy=Y60?RLZp(L{VWR2{2;J
      z&<25BI(Fl6fpET1%#%P@z_y^%5hX_yC2?8&15lRa9?wvulCxJJlA1BHS@njXrZ>cv
      z2Q$?fRgWyh?w;j}1foagGcvDE?`U{NptGisM=aORot!9zs$v+_F@XIl8-o;(vGNOa
      zWKu3UvNOoY<pR|H=X4yyaaJ35*KAxeE=YO(Wx1fzF|6Y-jwneZI!@yZ>sMYW7+L2&
      zC6-p4XLY1-jv&mTz}|qk6{%4CqdG3&1-gI9v}JYG3+!7_VFZ^-!)(#YSm5ccESo{Z
      zbdD@F23}UShNvUm(yLH+T2;#$C39TK%m{1<P?Sz9K8^mLlnb73Jr{#>HK}6?CM~A<
      zDV464rLywwC|?aU;WB14WZ9;w7Ifsm(`c?WXxqkuY6T?K^S)yv-n|I(SbhbCb8^m`
      zs>pGHO~%ATwY|fp<I0@0%SAITjhvGVj-sauX-<cW0^zfz-8)vWnVrLyGuEsOURTJk
      z>$s|r+vsC(l%td`S^Gdbh4+?@H}ED?nz9OZMjka)8*8m@S^Wwsw4M2_=U)RfL=Zw7
      znxOMtGrxCrSj9K&)|`h_U*&jRbxw|}7{iXv-;I2Fh3kUj_V^uaiid8aJ^n4WjPdD_
      z+vwoDbL<Xw-bUA#9&8VP+tA40Q`~rf#D@^Y5P^?j8_pok6}<?EUL-gwvOb^8<(@i@
      z-47#+$NGC0@mQI2D-Q{b1#n(O7hd#u*B7yUUNw6HPm)<Fc*<As9uev}CReB+9@~?s
      z64HS%e<uTkm=rRNeqID6W?PY_Bqr&LQL}w`nrI=_N;w|zawKrj6L^kq)G;<v(zACV
      zhI`{*p=%L`?xK^jdT*7KtnwJ<sArxBT&S>MqtD7FKy?Yv0(MK^f&)H7L;>@RN6V0n
      zp1>OwP?6FBA~@l@$?u>K^)7{nI40u6IXTjI4_e|LR`>mk&3&}()Q4E>k#PR}g?O)e
      zcfM@pdX_G5ldK=Hraob#`IKy*dF=5bZizkNv#Z${(nM&)PUb#M69n`BlCLP~DFhnG
      z+x|t(!ERNQXG5txU*;VsZl3VVv$I|8zKN~zc2yv;SJmSO(CR-&D5U0hV3dy$^Q3-H
      zw}0T>`w=_vQ-y(@r6Y8D_fg54fb<#n_;Q<zNxt+orUh#A@oR<bW*;u3K0iLl1wRW-
      z1nKBa^ew_FtBZOne&hIig|ST~RZYnI#x~)KXRMmpp0Rc6;}J-*dCMZ4T9Q9G{<Q*<
      zmJ&&empyi7pJcG2G&@*Qv$Yg|)8&8eQ=ap@1Io>-_l0|{22M2czj*B-aO}oD+-^Tv
      XVFkB{Yc+Wiv5Gu}OXc;p7j^wV8*7<$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$1.class b/libjava/classpath/lib/javax/swing/AbstractButton$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d5de118bef7835815b3aa66db135155a298cbfd
      GIT binary patch
      literal 1793
      zcwU86O?TTw6upy}YNCk5brLB3Oj;A{B-9B|XmKG;94B>SyD1K)gil$X#_Ex!RFX^k
      z3)sVo4GT72vETsaw2Ph|7A!c29sC^*Z$@?#Hy<oykKViQzWeTs=Ffj0KLN0ShK2!#
      z(|67L=7UV|mF;e4mTE!hn^w5o3PaCLE@+4`#3dr*n3TU+yDO|v!!d>_6|D)=4Kf?P
      zw<G-UVXi?SQM7|lxWZ>R7B=i4IZsWBhj+;m?yBwD;rk5dQbz&PRfbs3tBWBpyl6lJ
      z*D;7u14D>245lPtv}n7c+-lZ@ziHMS!H_6=mg!VY-<I#)U`$G5ID16D<N`?>+3A~&
      z;X)+wz{&IXg&UGg9Vc*7!z;vpG}gc=oMsr>7GcF}`4;hyr_#me4bN&gOLO!|wL;r-
      zWur+0Q#en96G^W{*=+8ks)RljW;v1!nsB8Jbsf`4X?U$~lOv#kG-haP#J!g3kW&+>
      z{j$<q!#IOE1Fz#EO<@Q5h*s^zmX3M6p<#jH<l!b8coT0i=z$2I6~|Ir=_<$Dw336!
      z9+wSV!MhBchOC-Si>8}S?H}#{>!gaS2Hpc5FO9lviU;9y)AWj|=QSFm(li~XV0o^F
      z<*qS3?J_C}R}AE_8WGCaGs3+<MR=VUDh<yMS43d>_D-~G^SEJPT}m2}l047Zw0ER3
      zjuOLg$rVk{wXJpWP{U1z<GWf5ZYZ{eucM4x20lQAJh9!LCuDm;vVUlxijRni*n4Es
      z*MgMvF-eM!PtI#LO}9>MWYH%EK9!Q<RMeMeV8lK7f9Ias)3(yF>;I+{6D9TNgs<B2
      z^Be0w1s7!ngHdql-pDy-5C}SQqj}eIynt9rB5Zhd19z~^aNhET8H$Mbu&d`v>L3;A
      z!)NG~X2}Vfgq|0`;&FM&&}}(D&k%Hq4%6x~y~~I`Gy5xyncpz-lfoRAF_oceo<)LI
      z2CZdu4C5+3ftMl{R-rC~6#HkkgO{J;Oo{%_B`$RE>US8M`31(@Bg`^%kZI#*mAj;J
      zCsZzR=@H%;z*9_jkZt1|1z6k*SnL9pI>@zgPXX5U0@ijJ3T<pCKv4l!<`PAf`~#;V
      zY_W?icd*gHW*buqep|sOBFybwzO7wDR^=~W1n1W<&X<tn%b4dm<oOD2@jUMERrq`j
      zU-RqumKX3nzkwg<`H`=q!;AQxm+&_)D>Ek}!@6e5)o1ve?Bw_hU*JpXI0#d9uEA2a
      PGi5)hx=z0_+FbD;4erT6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class b/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e07d370ed2587e2f8701d5d2fd5b1ab54759cb7
      GIT binary patch
      literal 8947
      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
      D<MeMO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class b/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..540f0116e603ca19085fb8e2f35baf996d097bcd
      GIT binary patch
      literal 954
      zcwUWDO>Yx15Ph>ryL4G-XhMNd=m&x31G@BvR6v5Xh@yxdT5@+1D|NJZrClc=j{Kvl
      z5CjL{%#k027;kb&t2S`*cs%d<%^UmIpKsp*Y+}QOLkN0eAl?VbJEgn9vsPka(KgTf
      z#zeX_TIz>FcV$B*Mrs+m$P#iE6oi})_F6sJHZEofE0a`mAhiijV=oX2DON?nzKoR!
      z)d$fEB~vEpwkhL8Mf%O|Hi2FdF4ZHQ7@<v5gnc<v=so$m<Ny9hm^FtgDLo`CHO}u~
      zi|ZaMt;|!xa(P-|rAf%vqmG;dOZ0IW^Byu-^pV3gLZ)mB<{L`O*ZsFG86S*PFEpYy
      zixw=M_v2*NN+WDex$jJCS*_2#8aYaL2x})bPkOpzW0vh<8LKW<2*vZS^Rb3ItiLNw
      zihC(^CzLUvR<2A_Ia$2r;V#x)+#{_2C&b4RZV?<gVEg~k3BlWs`f*#nP}alzN!kqy
      zW_xxu`&17_l1O&AaF&Z$<q2lsU<UlaQN$cP&Rpa-@4(OH>}b;%JlZRKvcS<J-rI~<
      zt$jwm`UO{y(wgfwm!1rn?-(~Y@)={ZMcm|-Y>#7>?J<jA{e=7ww`)U`PV@X=B|lT1
      c#Zm2;$3|sTn8`sk#nf;=Me#@A89zYwFF^72H2?qr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class b/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..370e7d3cebe6e84062c4501b5b63f3ddea40fbc3
      GIT binary patch
      literal 1356
      zcwUW@U2hUW6o%hfD75QZu+*v)EGo8q)NZTwBhi>3(UeHk1k?Kgrgj_HHM;}#Z<%PD
      zc;T&y(F^rLe~t0XLdybzhOjfU^PcCtbLQ;l-yc2#*uuRiG={YU-sNvh@6fVenWefX
      zUEYw7I#N1z_HkF(a);Z^mT;p8GsKnHY;lr4uOEnpj3UC2_TTbDX$lo!mKxG>?5gES
      zVXMGdhD<O^PgUM0j2NhNhUF1ZMT+)`fFUCHEib#tkg87he4lg=EZdR~8CG)Bg!x^D
      zaM@{!IWU|va0Z5s5E2H?Vv!+~Q-WC4vc<DbyDr?9yxtNF3stAVTf5w~)VlvNtgJEQ
      zr{o(dCb^7pze+EJyXUxV(LA*~R!BdP?CMD2aujKX<m5C4R*+;!>{+fTjb_k9_oR9g
      zvM?B)<Wlr5heECn*D!c>L0{Jmtg5QTRo+^Fpf+;`@@g~cir3t-B^~u2Py$(W_q8D_
      z>9P8#{s_9*FkoVxVNtoLi~*99;~93QHp_ostTMuIOEu9vgI;qwZbLk=RFfoz<2DqM
      z>Rqv^yUQ)^d4gKV2-1)tR)~Hxh=STQ9#>sTAMXq_m4J3*wA!YXMx$ORzDK-pjD@$f
      z(r})h5z+vkutZP8pX<1Qi!?G^Lb6XN^$Bx@cZe5{usi_h{>B%~;;Ro?>IwT0HOt@%
      zVW?Gbt&e+3qf*5b?g-i5ur`3s)0u#8bgJ(({}BMkPQft(7kqFL>l1w581?y+eEyo~
      obCXI4D%@5dw@MmiBvL3I<L2LsruqME|9KmC{7lMJ3U{IX0pTn`o&W#<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractButton.class b/libjava/classpath/lib/javax/swing/AbstractButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfbd15b15a9f102a42616ef9d7052e208da6e450
      GIT binary patch
      literal 20618
      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
      Qdp^PPGfCpPLNxdP1N4VUOaK4?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractCellEditor.class b/libjava/classpath/lib/javax/swing/AbstractCellEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d33c2300bff8d4a5684ebaae9bb1405778ab818a
      GIT binary patch
      literal 2259
      zcwUW^-E$LF7{;HI=7T2N7E+ql5@^duZBilfp{V84P^7Se8i=-DZIdJ2&a%s7H-+&^
      zXSmaA_0}02ZycvEP)1-njF<i~&iD@q&)MCkYZ^;#&e^l)eSgpUzUMvXuYaGe12~HL
      z6k-DVmW>tTZppo4+BZw*7hSJm)V#8^tl7HhIgJ$J0y~vW$uekhZE;!FycCiGxu|E<
      zV~4<Q-@|lD71=Ni%lz6{v?M{UzpToJYdZFgxeEf~vOr(iv0cxwy{cg~W#S+2*-t~0
      zrXiqNrt3*tHgwJchxDkVT#>d{npLA7F`E&{)Rq{l^tS}YI(U^g4QQV{W!k29MxbY^
      zP!))mow`h;2RRK{45lz5aG(q2G=`Dug}@#S{TN7LufX1IwbRIBOo@yO3{C0nWu7Ti
      z6>h(Vo!BKXpqsY5+Pt+W8`pz+W_72=avCfu*Wu5&w`95k<Nrx}>&Y_je$(Ap2d<-G
      z3{B6pg8ViDSrACbpq|73W226D$!S{kinL^)#F$;rxxFF6K>Qjnq?uJo!`m2S4qurK
      z8SYkSd|TE9cGV2KCas90ayhQygmM{-xRiZE<uhc|>znCq9E?C=s#61OF=Vk*cu(M9
      zH^%CyKhQ9PQ%s1u0*9l=SGEk-ooTOAL`h(W)e3O3yZ8h~8uFI2B0Gn3Uc-kfoMd3c
      z`*~A(TTNY6kiwVUNh<C|4IkkW?;>##NQZnwYNw1-;5C1<YgGYVLm3w`IEkwouHh3l
      zt8D9${T<IWa<NsJd#%lo6Q*64clqSZDeesoRmB~U?TwVKIL$^)UNqH}7~Xnwjwspq
      z1f%Rh3<;z-kD?bU?hK#S7&OGy3&8Jt>gsY<dwfec?&j(<?hDTO;u8!NpJ90Z3Ep^&
      zQGVv<`ETE2Og!*O2RLSF4P4@QnanHL104tXM++D@gh|e<FQ!8NyPRXnKmJ>blJu<?
      ze9v648+xj*0*c%hnC^nH{2InvI2<xg_-pzV*Kj1lN&CJl%;-)elVmHCqpeCE4+#kp
      zjy-4td_%yu5kR5^c*hT40m}X%0h!_>jAl<xui^c6%y*o>kK~kT<&?o`obe+#yAAMM
      zJMah2KfVUY?hb)xX``a=3xI2weSx{v7P6muz<s9r3oCR#l5Ss!jjM+=gxT~`_T#MA
      z6}{*5ugFg4kC8m_2R@GBUQFbt*MENb_h!gBmJRrw<0`{`$n`45@W|I04_Kj2f}Qs%
      pdr+|BN7%y^65{Gb?n3+eHrmfQu2cI3*Xz{&vrBD(&wbJtuK>8K@LB)>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractListModel.class b/libjava/classpath/lib/javax/swing/AbstractListModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e569d3970a5a2354cff680ba8d4e8e254ec6121b
      GIT binary patch
      literal 2498
      zcwVhl&sQ5&6#gDbCL|0kzYAC_P@oVjDYaHj5QWg%)Bp-87P}hA2!q4KlNqqO5IwDb
      zg0-i*apiI2siz7@drprFS1w)oAGq;vP`~#wga9FB(apSH_kQ>L?!E8LAOHUP1i&b6
      zg;68WwPtJ@x8v?dma`I{SaQ9BvFv3m*PG7gOgoIAK!Y@i+XfA0m)6W>FAPnfwcN4H
      zp;n+pIavAlyjide+xo;<vQ6T+YPnz*Tr2O~NKXlf>jL$uyyJR?<1HBWh8g;E^@pwB
      z|Nd)0K(~o%I%Ywl3-o8oBbuA0<HfJYZ>G#FDWHv6j^&LD1O|r|1cE8@iXwm(9Svv<
      zqfOxKF_5BYMN0$%9Xd|nq`=9H<(M-Y>q}-KTNKok$uConK~-G)n?Y~Yas|$0swS2^
      zn~hvfuBQyo*bOXjZm@#PgJ#L0g)n*qdY^78Wt`Q~hkho65e3c{BNPjovJKZw7B@CL
      z%if=dq)cF~T_V?a9Bu+_1#>;WX;z{V(=jZmXhjod;eD%MvIA)0xv5ohGRg5&Imcqt
      zCDUoCI?mJ{O+vAcVg#eI*cS!bD*_QI%F15S@e(exUsp`;AX!(IV(8X!1lOS(ujqIc
      z2{y^{K`DLJ3aa?3ENgClqp+-+>JVXpC@)CCOFKF9HZM(@MKPV6zYHlzfu5(v5s27(
      z^7@Y@j`&tFPNS?;n(7LhhCPwXnK>!^O&!;y@OrEK#INhF^_(iUvVTiQMkUJHf5z+X
      zSHY)Op-ugARBBX8o3~aR!`mn@hl#OlB5|bc_#x!6Y&JPgcn-2j=X6YCrtAUAe*7U(
      z8xIj;tM7jTXy-ozZIxrlwwnth#gfjef?u_i^`Qr1M7jriXdXZfLf~VKPDCI9>iB-w
      zKu1tMOq|zpk53!FO<YaVLvU<}?VvgK7_EytIQ28ye^g$b{GOl%@CN-S>7T-LT<Jw0
      zoJJQ%f#-3?$4e;&Kwa!7v^RARZ=-h)DyojAInF4UwxX#IBWD9RM<9X0Du6==0dI0#
      ztO^*!3pnosK7z*l@SpY=Ba6d<(_K5bkO;=M@nRwrxU7ALrjAgncCjP)3tq0lT}`xV
      z9ib=R{`b#b*j^?Pun4rqnT2|MfM%?t0}lE*UO-;axmFBRqBDvl##HJ?@fyYz*-^aC
      zS%4UQO!5S&HZz@*)E%OnPE7Gs<L;G`fSr8;g4G0EJwm_$djr@a&}S5|#XNmV0-rPV
      z9g4V15qBu!i)St(eT0ZmH4)dVinvFhuPEXkMSMvD_Zj*DMSM*W4=CcBXDmX<+fMsg
      z#p7)yW|lLF5RpB~4t?h#7Xd|5Q$fBj>&{4tL<IB5^85yNZ<O3wP#1u|8b4E)=q1mh
      dv8L{Ay!#t&J}jl6i2kVTPDV?2a#2~m_dm_7DAWJ|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/AbstractSpinnerModel.class b/libjava/classpath/lib/javax/swing/AbstractSpinnerModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9af9510cbd67a449580a324657159219e186ab5f
      GIT binary patch
      literal 1771
      zcwUWE+fEZv6kVq+Eo}#Z%KaixM4<>(ydbooSV2uHB$kj6pN2BRkYP$X1A@=~h)=#^
      zA`mqpKKn6#g1XL3Z$K%g>Fhb@tiASLd+#&9{(L_La1Sp7@Cfv8se9^v+<LE@8}Yd{
      z%g(D=JF}ykrj~!5Ti1*Ld;(1p6*p93me#hktQ~+~prg{a(nlbi-6U9>-_uN6pf6pC
      z)Z}J7RR$yk6hpUcjs9s`fuSl64m4c>qnkgeo4P$K;2j=W5%8rLJp?Zr6@;M#&@9kf
      zGjs?|xGuph0<FX8^D+}7D?tdfDF~oGfDVDd|41x^b~H-AZUsSv1RB%2sV(kquW9*Z
      zb<NNOBI#UKHCEKTF4u)kpS`JD0@3tUJ)!bub$#8{QH;#04PRR4B8Y+l7(CbZYCx%B
      zNWm@KW^oxyV63t{DMPiaguAh8>&Dq4BxEz{jZ$LKtMlRrY-l9{t7^EBx0ePK2xjyR
      zQ?+;VEaY@@d3yR%?Cb^R<nnT2mh?1IcU(aXqXHt!I$y|w<8Zcl2Rp?EwpAx)yQ%H0
      zU`w{EAgE?x0+{5~{RdE>C9iGg_Oy$QoK}#Kjr6+!-sg9EUd!03T>!6#IIXh^9^hdZ
      zQ9M;Jhi7bwRRLieFP|^>9?P}|jj}?a^Z!a9l*#Spv)Y0#i_}?dqQ@n%Z-7~N`LBbA
      zKVCV0sC@DY(fYa1JI!YUS8up4XnSHOxEA|?rd7T~j?l{Y_SF+~9--?C&pqhjGeR^d
      z$%iT4_awUU9KGC8Tn^koA1!YM1`7Ns=Ha0Y$G)N~5*<Cp%`#ocIa;J$a%kFIXn{t)
      z4P%5vLXHv7?l_)f4)KyB4G2nN(vBZ;;dN;JPByC*l)(~Z5O?{>7MLhyEqCraLD;lH
      z)|2#-XAN%FWdDgrho!vT0ND!Z4JGN1Ye=6uFMXTVtSQ~cDi?cY662-qj~!zs?Vb6I
      z$Y{?5*;~Kii3cA&qG$B<)8F6aC~ceoV2{szMmpenpZp)3i2W{CAz~eSnWApNY3X2B
      M=bZ{HI7~180bJsmlK=n!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Action.class b/libjava/classpath/lib/javax/swing/Action.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19dd930f971bcaead13459f92ce30a467d668d06
      GIT binary patch
      literal 861
      zcwTi=ZBx@g5Z=Q|Vha@TwF<tVLhB0|Kl>?@2JMg+rm4)pm(Dd^OPJ)+Nv=iynjicD
      z{wT-2L?j4KCfPiD`#gKQxA*hc_a6Z80d_T5V6cA5=lq+IpG9I~n4yePp+Swos`48#
      zC$B#`#ZYRn$Y8VZ@-u1R9EJQtaH3qIz>I;`wfD>~&VY2COMyUUr2dh?vXzQlav=|S
      zJVPBCih*DGES8kf@x4#Ot{qtY-oc>fdpfKzXgaBwbTJRJXsU8CsClMq>#(N&c!CVp
      zg3o?`aFuzF^n#N#lUJzqz%?Cb*t1l~Lk4$(gvW6&RBKJsvTVohn*+Z;+_#T(c+6nM
      z3`2}D<1)?m@tn#sEtOzs`L1hv-7;{Kl9ipX(j?(xT!b#Up6&Wx&nknSGibO1lT<`u
      zv93?B>;r@C_VsRcoPSS%8mLca7o43NIM*qiL#i^$ZNWz|jv3r)caEtKIm*ATTKiZ<
      zwfJ~^kfl@1<hgZ15_oy67yBC_7rAkBRFP^UqXOsnKb?Az&ax2qqL>P3lr7s;$~0QE
      zH+pY_4lU5=OZ%oVU4S~_r3zjq+^pbL!s``$m+<`xen9w91-IyVQo$R9pH}cQSfufP
      h0b8K1!Ap2m*w?UK*d1sWwgYbp`&L=vzAL!ze*>(($q@hm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ActionMap.class b/libjava/classpath/lib/javax/swing/ActionMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e77f7d59c6a5a12e7c9f201d07c9fa51322743e0
      GIT binary patch
      literal 2209
      zcwU86+fy4=9R5y7SlDcVAa}L2LTfIxv0Am7YN1>TZJ;16*o&=8Sn1X!!E90$Uwu}`
      z@uiPC<LHcarp~mqDP!%6I^&a1zWa};-#NQ%0)+8l&z|$!-}%1pciTVydGr{-F|23^
      z33T2xZ<!yZ-4E^jN_r$$vJ3fXb4^27piO>CJ0?GzU%F}KN*WpkI+WEer01=oZ94Y4
      zx#U=McGYpgD!PQYI5j39&I;@sE#%#jnJ+DvPT7il|M#!|u7COGUjohM7MDP4R$-P)
      zwv(nIBha{J7Oi|qpgUVvpL98C=k3y)0uAxRf<Sn*ux#mQK!<@g#58mX#Hz59rh9|;
      zbabMl83Mfq4D6HCcHWvPuP#}|3tk}Y*+PzSn2d&J-xx04uw7EESkx4cXLn{Mlc=LJ
      z6U6~Mr{N&euq{9X&tgE}@SZr^Oj7P411)IPxqDt--mf7+rMoF9@qO!K8N@CaW~^wr
      zWrqPYtd+SY>d@DVBC#Ojc)?)H3@DJ*!YxahUNUe5#|2L81@wQB5zX{vchqBMch*Z0
      ztKG~(%=#_T8?TpquSuHSs$XAx4>twqHJob4uxqbds;{PGn8OC%0Q)SGb1btcEu#iT
      z5The=?Mjh}E4yXNVhv00Ndr^hC^XW0UiMGS7wq)|O>C4bW;9H1YZQJka313VTB$Hn
      zESjvVW;)I}l4^KsS9{Z6#~eB&@kIl(7}v3gOB&wZ8fE3GkX!?oaYg3e&Dt(C9g5cp
      zp;o4J%V>CK>j$8WqXoyYR32pn*A2W2Q-Urpk2sF3OtzkHCUIH14>QHC%tz~vYzXM{
      zg>o@xP1thwT7pU)m3}zL_!{^`xb{Iq6Zg&hqlKXJ;Z&<V$Axd13;qqbw)1pa-2>W^
      z5AalS6P=eHp!+_0eo{C3xVF#(m_Zn0yg!Ghc{02^ct#-#IetD~p0}j`VDcV%QWf-v
      zFg^4;q3>bvHyHAj+Q8xIp(lvn4LI6~4qQbP*U*LQ=!dCz4tQ8TkK84ZB2yH-7~(F(
      z{Sh4Xxovt&|9%q2eExI@i{GJDorWrSu>p(K&^+2zu6gd)7{muPwEY2XzfUW7FXI(O
      zdknAov|~JnWKwD<s~o!ewob{PDC{oJH^4T0Z2mLwnva-PXCNZeRn1bPGJaZ9fk;q+
      z*OBorpYi2HQ^{}9luX^n;Lc)x#*3d**%vj6qJg3)PI4y|aK?Sm<GvzY##q5Afjc{7
      z-L8?P2eL+jMmw<`;k3Zc9DU7}{iZI;7{+~+vpz~sasv~$(e8nr5vbstz+F*ImKW&{
      z9ELlL@W&e5o&a|?!2QZk+T<qYI05rnuV1@U^1Xoz53%qBS1Y*2+NJ{1s;Pn{!4&AJ
      sT{`wt0q~F``G~BW7{Jf$pvO3cUob(0Y6T{JT}>E94$CT1OX0ltA9s(m<p2Nx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/BorderFactory.class b/libjava/classpath/lib/javax/swing/BorderFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..899b235ceed86d4c6a2d248916e431f6e93b29bd
      GIT binary patch
      literal 4962
      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
      Ko4^ke?eYJwrC|>M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/BoundedRangeModel.class b/libjava/classpath/lib/javax/swing/BoundedRangeModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..257182201407ea1b8e4efc4e96e7361f55f4b832
      GIT binary patch
      literal 514
      zcwTK#%TB{E5L}ngG=V~2l!wF-DZLPJ<^%|&NUcC1_0XHCSHV%5pg0NnHV%9MAB9+3
      zDTId)9?#Cs?t0%pUf%%V432DQF*uHR$tz#I$RzYH(;^Wl?s*d8EEO2rU@_?F6hEe*
      zfBP8WGH1{UF`x6eKn5G$B%px$3Rqq+nKN)HWhN83Dpo{PlW2uk4P{M+>#~8m5K*CW
      z8p?E7kf#3AEN`KkIb^)9a!hD8M}5Bs^fte_%hG4ea*2v&^#VG^*XKf9J?Vt0RAj-7
      z!HG9*?gUG!<o`@M*WOWvtF*-5cK0DIvL)Wgn07J#v(ZysyUl>U1^RSp!JE(qy=WUc
      q2A!I_HQ%cFcFnu6V{jLG2K%)>sP!R?4DP|$;J!xcctCdx4nF~d&wFkF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Box$AccessibleBox.class b/libjava/classpath/lib/javax/swing/Box$AccessibleBox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad22919f87890931d829c02a33b63443661c304a
      GIT binary patch
      literal 662
      zcwS{uT`vPc6g{)HE$!0QcTpt~QN;2nL{b$}X*~ESPm*a(7+Jf?&eq5O@I!bIi3d-f
      z#J})A#GSP%t(Up?+;h*pCwJbzUS0vLU@8HFA%DrQ`K_&Pq<d~}dbcyBMnfni>y99l
      zfXPtQEjGUi?6T(uT)M*l(^Wb?Y?T=@O8AmHHQ_7ixkr^P2DZ!4OD!tkZcyV+Q^f9b
      zr@7C!j}wM?a3R&qGDEi7VPuWSb?M4rgJE#)A6u+3m}T!w^nkWnNFtR)7y2z&7+@Ir
      zQM9`bMd>P~d(Er5@DDlpXXvkb4YJJ1IN_*hYGVwA&c*HbA(Pp25&YKnJuRM{D@HmV
      zG18I2o!#C?;^cwX^c!MZYE?H4T+%WItKyR1vcr`UDuGF|-Qk07+U5k)bcZhbSOa5-
      zAx<a}qV7yaA1BOBI!-S!eS}sC8x&LX3r|STFFYgr7&Z;kn+&O48nlBU$}AF5D~2&b
      mkzo|MXv`u-%^B>WrH+S{y+2ALQfhPh9mhntMQigY!2AZWG?-@q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Box$Filler$AccessibleBoxFiller.class b/libjava/classpath/lib/javax/swing/Box$Filler$AccessibleBoxFiller.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a45d6ff0c2e8e3f6511dde035e368e65a4d7ec0b
      GIT binary patch
      literal 753
      zcwTi<%T60X5UgGnFPJ6RhCm1qUKYXzWyLW{6p0uiVOcrwFz3OHV9+vycGf(^XK>12
      zB!?(c4*7r_@<~y8)+++YT&AbHs(Pz?_V?ePzW{7tIe<r~pNUIx9oZ|TPohuey1K36
      zSSHoYPDfg+j$+BhUM+x6s5yQluF|Ms&M%CXI(@+1Jlwx86G~PlO2loMSY`CV&K7~1
      zgwcl4HWfN;i?}NXy=J+2_viKtp^%;`TiqbMYV~*Zo;e?sR_RB=%<6NbTAScE%&{B>
      zdk9g)ND%|5ga|QCnCb~1&yb16T1v~$-SZ=v><gZTP-&SC4<L99&hw)0Y!cR=`F_9E
      zvGMYWO#dUh#&ud*t>sNbj;L6rH_>Ari;H`vn{*^MW7QD1ed}a|a7SyIG-6?`v;p1_
      zCi|NTu)y;@!FZcJlrY}MG!}V(1N^Uec#T06I193Ds8n)G&F(%gb(E18oW0}R<2X`Z
      z`;M{t+7Fb!Wuyr{iy3sxjRaouEo2c>F^MUT{N|X>+pKeRm`7jl)rG8b`atRBN@vcU
      UGnnOA;oBVM*}8lDIV{2d2fj+Q#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Box$Filler.class b/libjava/classpath/lib/javax/swing/Box$Filler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b1337ef11e8bde5a6a82b5294c232f64a8494861
      GIT binary patch
      literal 1392
      zcwUWDOHUI~6#j1M1Ij>$hgd~K6r?jeD!vUyqa`MgYD~~3CT=d}3fD|$$jnr#OMEQE
      zwTU~|t~3!%G;!g^#2@0;e_%X!rkRp58Wx><?m6fCzWbef`}5D2Zvf_SDT4&V&_n)+
      zH;Ue-wAYH)oyPbLX<5R}AlX)1Dmk?c#}>AqL7L%cSmV{I@I1L9E$KflUTf|w!JvD>
      zmE5Wb*OQKYcX5G%Eiv?z9NY7`?N_)}7pdQiZ`iMq?e7d7HEA;pmKAT2Z~DarSrfLx
      z&NC!8T=78l@CHNrvb3dth2d%;u6w^Zqe8qTXH{g;fk6#A4v<2@sAR!#P(vPl4Bgdr
      zZm)^ub-qEKa%E|YTlLzCaPRQIWq;YJl1WZhY2QpH{dMUv<je81o$n%nqZ%~ysOXr6
      z-Y`0@A%`9s!kX|~qojfPqTw?b1*81`sW)2#fs-00QDErfdzmKp$&-P}V8*)`Z?#i0
      z%w=I<T1|3>VYu)w`)csLWbr0%$XdO&ET7QKhMMN~Tz$|<7an!$l(<dLLAb714O7`=
      zr|wn-@zbW0q-GTrgSKef!Yx_c^MseddAh;2Gtp}bPsK10V+dn3$qxFZki=nR&`EI@
      z{e2S1VoTj1#artBf;AVcY3k9@N8f(h-6v#{R?Ym30ds14<`afK1Pq7h+e_>~ojNwr
      zjRt7|X4sEm907tz>98PDN{Jv+TIyu^NNJTS3aOh@I~XyicQ9(s>|m^=)*sZLlAC9A
      z{^!K;Vwa*GDe94;9x3XP;t7m56_*I7y7J~nO#DF3{0ie9`6T@bm3rUi^CeAi8v}S1
      zsA?g$smd^mVv|>`s+J;>u@*@>NWR_$PDS8TvEY$*@Y`7MTr7CB9sDi^oWSYedj@Br
      R2ArVkIb5JeVo-Du$-lH`96$g7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Box.class b/libjava/classpath/lib/javax/swing/Box.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83d2ebda7af39812c5bf7f7aa8fb1d0057b12e36
      GIT binary patch
      literal 2326
      zcwUWGT~`}b6x}xo1g4>olrN!RDql&k#Hy_ysZ^Sl7Mh|0rAF=Q8p0T+YnXA(43hfN
      zzocvFiW--`iTdCVsQ!VfFTVIF?mIL2APugrmCW3G?zv~5z0bKf`Q_hlzXxyuA4L%o
      z=zpMos#dbjfo_(wSFK7E5rN@W<7(d8`@}Le(~Y8AVA5YxOC`;5^ljbH-G|wwU}k6n
      z1CD0vs<EZnj&7NER;~$%Re`>|Wjd~Ex?8HTuXPR0-#@pzeD6nr?#sHVyNd#m)Jl4b
      zue`ORDF|aAh8W@k;Z%AniZcR3ZMhcIht|HUAb}z2IxH}nDoCHKdf;Y>=c>A?**S)l
      z@kV2K4r2nnj^_GX1;$%8__o`ssg}7(rqW;F{<ZzRZOz_PJ#vYHRU$W)3^@;s5qDR2
      z1mcCZ{Bm4UD{@J!2q-06Q(f%_*;C<Ex;4{4;9L~bZR#`3^s;UknjOU~@f(}2>3f<f
      z6;?2Vl;ocl=t`}4WT!AMEiVdOX(8Cyl6zL0SC6un@n}1{AT5$S<1@Qy+4^Tvbc3t3
      z1{7NbQ6TWL%&bpfuzi=W%uu^|!?k6lM%W#lBnv+}Iyxfr1AWKc<=gSy`~5KMdRgCD
      z;!q&dQHhQ*S+E@@*vX$|_9L^uUA+`=O&qsLCX(vgF`UB-4T0**0i*6+O)u~ARPltw
      z8&FGkH?P~aW%poN;QX59CRM|*4z!)5YbDvaNyBT?<euNBPV!^RPHtNj%~?>8$4#j&
      zyKN|7Yp9f-fUJO5O<~ka*`epjxvaU(!z_=GR$;2?MlDY|_knA!m$cuB;a$8(QtH!@
      z=AJQ56dM8)?Jd{z<4nOi?nt_%HJEy;*CbnI!`in?8atJp)kEuo^b&}zn7kPBhUz#P
      zk7wVpxU7ud+AJP#AAY;|9YYj7eE0J53_-yuj@ie2o~C7uJ|VsnnJW4-H6)6e@hS$Z
      z82Q5UALsKlV*%eFf*RuZ4re(V_IF_dlYlpR9!U>{jT6Ma@8JUJ8m5Xh%oM}nD&~$2
      z;*XB_;iQVpt<2{Q$OOTFL&E&TJK+#>_}PPvG2k41&SQbIUS#o70G9TWq^$-~WcUls
      zVBKC8zj^^e-nLg7Io=C$ocrG#!zX3<m>K>?%8z-M{ocrMrX|ByaWQ~;Kqv`6TZbB}
      zBQytzOFmLzzKJx<5&=(GvOhTflQKWSH2!KS!z^B-6|{!%I&ozg-oTpy?nSQ+fKw7T
      zlVPDV?b`g^NS$uT;j)+dTb;#?bP)HS7I7CF;!b;OK;&y&Y1<(}EjyM@)+jtyFGqcl
      zxHNWxMxvkB^8kNN<4AHmEfU8xy4t3ZkiV({?ji|FFQtZjF>$?$8$Yz=JJJ$MX|%n9
      zRowDo6>vL<waU(ryhk%%V(rj7RqI8nzWEi_q^X&;cd*1+M8yRECQP;zVKhJp;jZ_5
      VA4SNX3-Rg@_<#sge1C}E{{TXr{oMcn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/BoxLayout.class b/libjava/classpath/lib/javax/swing/BoxLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae04a89ca00402dfa620be54f2703146847c3428
      GIT binary patch
      literal 5920
      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
      QA-|niwu*PIAo%Nl03jupdH?_b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ButtonGroup.class b/libjava/classpath/lib/javax/swing/ButtonGroup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..075241032ef99f25e3448f27b91afa8a19af77a5
      GIT binary patch
      literal 2388
      zcwU88O;a3I6g`jWVPI$oAqixLNzlZ=e1uFw0#Uw9AOwj7Vn~R=_|d~Oq~kD6&GaM@
      zb!TanJC|``8B4<^3n+z%v0_RsQsvGcVEG?hx=_!1-3(KFxtM-^-@EsobI-l~YJU6Y
      zhbI6|U@CwzfreYgZR2h-f5*yBC;JMHV`m3*c40OEO`ujDCNl<)MpL)UNhg4EfxT+i
      zvXf(G&N4FAoRP|ybj~Yt+|1=IJ9~BLoPf9>P~C55^Nx{q#*IwD^mjE5HXrr<)g%x|
      zDYU#m-LT47aI8#noG5m#OQ3Shn$8+dA;;9mH#u|<m-0TF$~!q@(sB8B^)lR-H!}jE
      z;mze;w9{sW9_8Iu)^d938jXz$X#Ly|!iRbtb=VWY{<Zo`V1sBteI*1Mb?B%T*fnfr
      z&5^=P%FJDHWvCmrC#ix#Eogh2nsd|2Z%s$3EeRXxv_MmIr@~_6K^(@B0A3IXZ||q0
      z87%@8)25?}CEaLjTP3OxLn46qmb0K-bR0!1^W{xPu@#6!x2?qGnAC9`Cj^34e$32J
      zJ2S0>o{-|5)KQDw(yd)b2TluAG4;Bi7M+k;8t{^iPEea5wHe5mGiKHi*ym!Gj%Al@
      zph%I|PU^AcIdjIoZOYVVbeu&W$J5=~Ir{_|QcTZDHqz76osEHPVaCiEj-^0OZ+G@T
      zGb>pQ>UahGa4O6qls>&C4O38xDJz?HV<gnJU5)JoCZR6s7{Mr;!u+!Aq1fiarQd5h
      zE@O;M$y;-#>fsQzp5f2pPre%h2ev1|R>}!$53=!Z=(vDaW#iw}@fP;*63Cgeh9!j;
      z6xnBI*#7dASKgLW=9Ne98ZvkH`t5>D5gfA%xk>Z9rLLorp*$wj;CV9e@#p6=i~uV5
      zUdgMl3_)n}bEaLR>|K0vLiv>A%G-d?y|nsNJkR2furK}?4c8wbw1n`Yii+@ALl0n-
      z`39NgG7iwv-54B16IX%f6cd^6Q%03>?MOU>wwPGPq4)}-W#HSfdkDwBL)$ad#O1*f
      z+U8M_@GavMx5M0eaUHc;)nO1d#p))BoJKvSh(3)dEVSZXv?HU~)Vqit8~N6a9`X_B
      zE%GXOykbROVvW}!N$LSA;)0AkCNE!Gr*e?O0(VH|E~&gnDsvS3eS&>JDj$|mh!rWs
      ziWK^Bj%RKY1{9SxwGRRkYZ>Pkib&;Z|Kk#gD~b{ip~WjD>Bajc?~TEql?3~XbU313
      z@F(=vxF&o(^N2_Wk!1`&#o>`wDv@{qf9t|WWg_BoyLA8GKgBvkm>|FxO#CHB={`dE
      z3XQa5_*%in-PA?c1g_9eFuDa-G0t^22lE=0kwe#k*F92y^Tf|}R#rp~fyh17@>k{A
      z+9HiUWqgB9xsJpWY*y<kf~~$4TxTCwQ7sQNWyM*{M5h+gR&g+-E#t;K>LZ_{&dV1}
      zxNhq`?o}Vi0`_w+gl};KORQ#@T7Qp|SmB-hm_9%9Dtp3D;V0Jh6gTiQZsHf%_*GSZ
      z%B`VT{j68LeCx*BM2fTb?{Lq@9Mv4|9_q!v0vvHyhcn)g>Iruw{n|s{!wn7oy=30>
      cB9`u934SVLUbYQ$c4=d#Ken8+wDL0l1BH0=GXMYp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ButtonModel.class b/libjava/classpath/lib/javax/swing/ButtonModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..475947322ce25fc772fb07d6e02ea70a41f67fcd
      GIT binary patch
      literal 857
      zcwS{v+fKqj5S=Po1(l-U{ff8pV&k(<YSfTuG?Mt>TZIX(X}6}kpx@?$AK*tBXQ!)B
      zd4R)Q&S7Tue0_g>0>Cl&E{r*_^b+>N_dvY~*$vKmS|{=*>0snS!2!<{gD9lZ?b8dk
      zwF{G$5`=F$XljgG7*Qd7iqHX9sM9pYjsxR<<I#aBh1w<x{$u08foY*Gq-my9k*c}i
      zE=8qGKwW>ot0~4wA5Ys_B=TA)jS^D_>i+fL7}!UtgM7z{`L{~g>HH^_DQD&$WVT17
      zhU+XepAC`c8TIpLIt~tU`<d47K{L606ARj{{?kizh5ICms6<gws6kNbqP~&DlA_J`
      zZD#F*T)}S|Y0n&;mp)J8IFxk5n%$6JvZYfRji>OsBdt}xG1{BG<W-vVUL9D^ub6p;
      zYpiKz$~?i(D%4QWN_uG<FNN`nH)OUWBS_Aoz34MR_N<ZnT$lpm!f7ZnmTWv@<5`Py
      zHeUvhv0`x^78t7*Yp}?;WO3Q@S1f-O))?1egK-nK7`I`Eu@1Y8dzQCvcr@<;eUHK6
      E4-t^qV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/CellEditor.class b/libjava/classpath/lib/javax/swing/CellEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96007a35b3d0fa4cb49bda933d1d0da2185a75bd
      GIT binary patch
      literal 423
      zcwTLgO-{ow5QX0qXrMsTmLDNbkZiD6cZtfX5{pV*uyd19ab;o@JAt#Y-~b#7VW*8E
      z6}<41JfGjZneU&^F97$rh|nWkZ)7b$gnd`VT0F4Uvs^h-MmQvlLQQDtD^IHpXO1vg
      zv+Jm()D;shlXSk1P6<P0TU4&J=WdfNRyn1`tmeY)*!0;qvoEI7`GU273I7POb>^+L
      z@c9S_NkGS$EHc*nl_lXy=6M%yuB_vNOG3Ks+|J3NxA+TAgU3zDucqezYz7Ncl^H*(
      wFiqSMcfq_*@G%fh<d=7ZKEe_s95;Hh(*aH!J;QmUL&S}af_jIszk8Vc0)9qtU;qFB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/CellRendererPane$AccessibleCellRendererPane.class b/libjava/classpath/lib/javax/swing/CellRendererPane$AccessibleCellRendererPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2896e8d18e1659573893023e0a275ffab8a02421
      GIT binary patch
      literal 878
      zcwUWCO;6iE5PcJzxCB$eS1Bo_4WvLo!tDtG6;hOz3KSuf(r`gSOIX1ovzELLA7}nY
      ze?yCekT`JYu|KNn*jRi?HNEWY%)B@IW@dl?xw;1M0TVVdgt-H8Bu-p&tn{8+lb+X*
      zdRGQASQlEBtF4waM(ud=amt28s6=E}9EWbr*P&2a2KOk{&5heIp<ra7gx8dTQNI4R
      z@`*sJgl>kIQ0TBJytd4qZT*^DnA`qN$c6jLl;0CZ>uC}f8TnCZ6)q7<Q|Zu3lVH{S
      zUD*lN;~<Z&JUY<lz(GG@=!X8VpP1BB=j&Sga7P9kf;%Jh)%_MXBe*5@lb{tzCd{X*
      zNSP`3(z_?aJ3zya%1%sGl8Pe9C{Kl_?nB&SCtl&TjS<4w(`W~yctgmpSJyt*3FZHJ
      zfRO*{w}X~kR*|g1$MR>R8U$xW^W18lFh&|1Wx`0>JP5^qPXs02R0n_842sAi$DSQ~
      z&kBWTeevDm^>uURIeYW$XV`X4&s?Bqdgc<nKV#4UpZPeo%7wmQkZ%r?7>XAdVoP|5
      m;iSwg+bCz9qxj>NpNnISdt58wX7DyXOBjpaiP+<K2kS3_V&rxJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/CellRendererPane.class b/libjava/classpath/lib/javax/swing/CellRendererPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08492c9bdd7fcf1f0757cafea36050adf790d590
      GIT binary patch
      literal 2772
      zcwVJdU2_vv7=BKZHch&;NlT!`fPx@NS_mp1N)Vyp!(c2}AWBhSn=H-3cC%);wA^^%
      zj8~51l^6I297iv}!7zS1e$Mz8^e^a)H#*)pKIiOqTS_Pww3Czfe7w*5oacSdn_vI?
      z;u`=@;(82S0+}oNHGQGr&YSj3p=4Orq+!>MmeD$;+eQpgfkAnqpwD}SQq%Ty(>7W$
      z^ayP7J@s16a9wlSv`p`M;czgs41uI;v`pQq8ZFms+Gop01jGq}HH2|J-S(=wHD`3c
      z|JPd;&Hbt%kkUhE8Od1i1h!XJj}ja#3iKQ>ZPPm_5Xt7M0?|^lZX^)FpoV@7#38U&
      zgN8K;TI)2d$FM-cHN2`B(2ZuNq~kz^H=LN8oi<u$bhR;9Y1ViRotNP}Sd4lN)1?TN
      z)%26J=A63j(P3S-5(;^|r8^C?<`!kZ-kD$~Fx24)S(^4W-7<ZcZigA5FfqMeFV8xb
      zKz<o;sX6O3ZNv78{+gwe)ye5AM$Idhb5(iwCp2tFRzNe|!!~8~nyr(U1=e>&$xTTK
      z^BNw<R%Wk85j!0d=&Q-3wj?)KDt1qFGB+vA0#V8W{puDWfIz8}I`_ZVUDa4D^KZ((
      zT|R+5*cZcImeW0e8lJ(kEWjDVD_N#9-kh`RuFOns33ZZWN!v1t5~--+0G<<w^J=zh
      z`5DNTm6Ut%yoN(K%na6uCLNiUtRy41OE?<Ck-MKya0v~^q+6WT=W~#!U(is-0Kpb>
      zEf-(ZumziBtd}%Q;3NaMK6w_)GRaOibjMKDB%BpFS`>*}QvB=u%=6P=65K{}&Z<|#
      z+7eU5Z(4O9e{CmGSdF0+b%F7RO`D&!*ERN|rvxS+2Cfs`Ts4kMn2teTo``T?!z6ae
      z6Lk%zee1G@8SG+~=gqp;kSnH!D{`f$VVE-wPx7@S-}4l#MVVMl_w*xyTu@XGZe20F
      zA+T??HnMe@(~7MG9JsQ>G34g#>di=&N8)sIu2nORnX-qaS033Z{n;AIHU%wNy6YNz
      z9~<r;9-FB~gr9D7VFP05r5)$bOBWJ|%63az_FlGNj!Djra!>GkAb$s`y!Z@5`A8e-
      zTgqvK;~*V@3mnfu>faBY&>)y{!z0M>TVNwL1(17`FV~hpdeq^o%5j~)88}MoQ9Q<x
      ziiNC3)p`dAZ&_>+#@_Pa*l(^HJ1RSB0C9;kdF5n&w2f^aAdw#(+js}LCB%Me47@{i
      z-zDSs6ms7836Yb$!<dSk#18CKag!)um&y;Hmmf_`FjpG)ocx%e@J}=5?)~w|-o$7+
      zn(l66f0Sk<lI}^z+Bi72XpN_PZy+|-#_=(FocItM_xGg}H?W3oUb@?(<LF4djmk*h
      zw;k7SsrZNZzj&(&3~~I3Rr4|H<P+}R#4v90MxSCEZj<{R?8fJ8+F#S_JB;Id9LEoM
      z89(9`{DdjaFLG{j-o(#J6$gE4TvWvg^p=*?r%PF<h!Ig1-@nq)k?)_%Nb3x(9%Y@S
      z6;oD~5qrt9hF4WtCYiM<t|gSV=YveX&7EF;r<lPVQckHIMSg85l?g@RHy;085uWrN
      zLc*z#a4IC63JIq|!l{sODkPi=2un&A0!l67%TpOiX(W0Z7v)fsgCU1T8&_Ad`-5!$
      zRP1*9z9G9z$SxDI%Y^JQn58&T?%Pa=AOD1!1H<{-82W{;{!2LL`1D)y;dALG?k@7b
      e$^Rb~#=pzn-Ea`U3v+6`hIz$RFfjrPi2e`YoJ%qQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ComboBoxEditor.class b/libjava/classpath/lib/javax/swing/ComboBoxEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85bd49e825ded9f9645b5556f13311a503568dd5
      GIT binary patch
      literal 380
      zcwSwQKTpFj5XGMhB((f%OJQJSN*65VP6f3RQX~c>b~iaiuACSpChccq-~;fXD$Yg)
      zS`U8K-S6F5?`!k%3E&>X7#)F|rE1k$HY;5f^3j$H`(W3zTsvFGI27pnzBG!v&x<8x
      zPGDG&`yrTrvlUfbyiUexK-J30-}*!#Zpb}3Dg~~Rbbr`n{K`bJB}UsJ{}F+1Lxx{d
      zV+0NoZyBgOpJq<mD%FjnifVz|<nII2@^ZOLgk7VWO54)DxA$V->x|~wkig|`40nEN
      lB*44jPsFJlA%agQ#&OUtdO=Tc8uSe3K`*?rv(I-2gKv-aV@d!3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ComboBoxModel.class b/libjava/classpath/lib/javax/swing/ComboBoxModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b71063fad9888d9be46a80e6c5efe983d468c0bc
      GIT binary patch
      literal 247
      zcwRg8Z`VEs1_nb0UUmj1Mh3~O#InQ+{o?Y>ymWo%{M@8`r~C@v{FKxjb_Nzk1_6+?
      zeoi7#(myFHHMxYHfsK(t6j_r`W^oBv10w@}acW6$Y7S6YYKmt`YA#Tvh7Y<4)|z2J
      zmFegzMKm-ql`=AL1?QI*C8xS&=A<$*2%$Jo52PIE8b$_YAZ7)6iV5gqb_Naxkjpt4
      OxPT&z4BQ}b1|9(ZM?o?G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/CompatibilityFocusTraversalPolicy.class b/libjava/classpath/lib/javax/swing/CompatibilityFocusTraversalPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ddfc8d650dd7326b43a2299f3c38276824193c72
      GIT binary patch
      literal 2190
      zcwU{9ZF5sa7>4g{LX*a0sd=HIU<;MnCM^+PtAz@*7Mw{7NT*ntaoi*uddg`|Jm;h@
      z`UBMO>UZ=Hz>Jg`m|^^+GyW)tdpE~4k^`ZBXwS2|_ukjD&$FAq|9SWrz!`j&K%c<$
      zhTM`nMSt6_-zv_#n++M*W!tfX-9@+3^jAE&r959cS6#=h>?RNwIIg!8<#tevk_aSg
      z(s9bNa$8`e^jz(%K%(Y)+tRBFWLny0U^~Uj(qCVa4X!7(QA^N&)~?&ZoWRM69=4OK
      z0`Ymbs#1ty&_W7_1!5DEs{;^t#lj)<Cy-&-MNA=$L9IGsA%UchUbQfQq`={lU02J^
      z&9d@VWZ6*y>5^NK&Z_imJq{=1!Mg1W6iWvxEKe#LOz4&hwAQVwdT^l@C{JLn<FxZ`
      zJ&;Vpo9&zn^|O;vllnv_ES$s`OF(;p@zBtb%<M{eLsi;aJEsyj#Upk*>YBb~;SG%N
      zu%7GEF&mX3ds}IG9(Oz?_%}0dud5xdraMo4QSnBwj>(3nwrscQx2m#ed;Y#iARk$k
      zXH+1DcPtd~w!op9_7NDOWl458YS9N4-qWJEBef<&&4Q}Qrt@Ff#};O^ELK%Dfup_(
      zmU#@*Rec3Ik}OO_<rCSuRo$mgES$#$Iyai!JrmKV7wR07lGW<7k~-$8O?OL0FY7Em
      zwXmpfOMgo!kh<<Ry^312_5B|2d6!S?gfPmd6XOp}41M~&G3wJV%6tdRcYuE>yhNSF
      zsA`nJX#N3S&KK@uDE|oQwFk)FM{YkHzGobc^8XR~0#^{nHF|xHEUse&D|pSU885t!
      zV}OZ{GY390eQ!hJHi>b5$MU};H?@b+Kk(-A^k2wwJoG1%;HSX(@#X2eZD`tT`GN*(
      z7{-@4ftv=HZ&|g0W0=4sK|0E#z}*)0Q;cGqosLXm_+UwVO#?~OGLxtrAc@mq5_}M0
      z5?^se_bMxvT3E|q_i$!u>S^jaM>gxd!SQWF9c}GxQ?ntpkBWB<Rp@usi}ijttHIGX
      zWO*F>Jy{=yteM`dkGfeq9PN_zEyv&WWX&2Da2Dr6)=jFlKBsS!?%3Q7)6#;D_Al+A
      z5q-~#{{szw>;UE3pqy!zFws;9y7>P<KN0jZLBG5(Xub_v3#*qgpgk<y2=C}Z7v>HN
      Y_bbctTL&i7#$?)<Oo$P<WE?I(0l3z@hX4Qo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ComponentInputMap.class b/libjava/classpath/lib/javax/swing/ComponentInputMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d096b1281bdbfdd71ab429ca6f4e170132c207af
      GIT binary patch
      literal 1635
      zcwU86Sx*yD6#g!Bfp!o?T3J*ETqrGCalr+UAVOTKq9}=5;!v*bz;vdWnHEqJmskIR
      z55D=XiPA(9(HBkpQO0v`hf-52FEjU^?fbrS&dl#WU%mkt#zYVe4EvX~qPCiJR&+Cy
      zoU(Fx%jBke#mpDn>smetA45lV$fk#(IlURp(3z@^xmu|+$`BaSP2Ih~&=ac{G&s-T
      zo3a*p2#p9U2tr|Kj1A5Qv5TQ!WF-wvfExzSXvU<SDdZ?|dNs}Su5Otjv>@CJhTRJM
      z2r#s!bd%pG<QBMnM_VvBLwm|fYsS20>*DSieQs8F7<yCxZ32n#39ZD53=Bj63c1GD
      z=3Lua=A)@CrZ*Rscv>hElDZY_MP~^6a3F~N4AJfTpr98j!`?!EQFD0>4eCT}2cn{p
      z&C7hvk$k9B9ij~WqGl9iTWUCyGi`9q7R(0}92Ua}*gR(yDZaa&_OjB1f*1yggu~rg
      z&6c~-^>0cQ*(M|zCTe6jYFaZ@%QV*1tXAaeHUUp8Tg}V*j+p(h*qIXykyw=+B1U+U
      z7{e(Ar!m5yWVl<YC*%y)TgoP!Ww>06J+KL^<_eChE^t+I94oEU$QIQV-OZ|QmaC4I
      z<LXv5M>OZWf*~BG=9CM_kw&-g4MS+oD%fd0ql-O_*3dX6($GiB8tG$ZXb^i(rvROU
      zXrgB`-R_gUf!@)038BO<gukNYUJ0!m@x*7eeI!o<+J&F8feH99Nx2u%hD(TG8hfNq
      zRzL??AWu<=!o*H{IFE@%qr^!JmCzOcgtngui&uOdJzF^KgaFJ^{w<o?ZK^mYG1PK)
      z6-FQWskS&B#39ONVh=sEtMU$Xkg6j)VBM$Z1BCIAa2`o4rJU<wF|n^+-Me15BJo5C
      z@f`|3p_XN+Se6RuRgH>NL_|ChOibN_ct=7-)J)<hIubv?-l9d!r2SY4$2Z8>llTs{
      zj*|lRz2`e4e1g-tx}4$&(X&88i-fy|E<D8mo)hjf`qRI_2wq|wuV|#NtGLcoxXxe{
      hW0EU<B_7wLyaRp#_n`t6kj6Jvz4TXlIWD6v`~}lgX&V3l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DebugGraphics.class b/libjava/classpath/lib/javax/swing/DebugGraphics.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9534faf8694fa2c8ba27c636b843fdc68b875527
      GIT binary patch
      literal 14084
      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
      EKb}MytpET3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultBoundedRangeModel.class b/libjava/classpath/lib/javax/swing/DefaultBoundedRangeModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a24281d380243537a865adbcf336c5075fcd55d5
      GIT binary patch
      literal 5095
      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
      AbN~PV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultButtonModel.class b/libjava/classpath/lib/javax/swing/DefaultButtonModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dca5b10f024b024d2ed1ecdce2dd88d874b4be0e
      GIT binary patch
      literal 6192
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultCellEditor$EditorDelegate.class b/libjava/classpath/lib/javax/swing/DefaultCellEditor$EditorDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..626f1fdf78735a4f9507fcb7b00a15d8626ed395
      GIT binary patch
      literal 2576
      zcwUuM%X3pz9R5z8ZF*@#NL!&Tt+hfP*c7OU7K)e_4TOiL6fM4PlhgL%?Y*7co5JYU
      zg^$0$am5P9VWEO?biv5R8J*F!F2!-BqC0o$@0@#+rZ-KAlf}vT-S2$g_j{c4-9KO5
      z0dNqDVfYvhTv6B6YZ>dRW-MoB_>x-D?JU>z*^*|P<uPZO;W}SdZ5~E|Au3K}bd~Vu
      z7q9T59Y%;@NJiDGc80HW!_J&6+L~$PHOuA(FNe{=FyMjYY`(eyh%m$@Kr=H1Ue;7y
      zdsAK1ISE>FJI~7&QC`f=FtF1MJF=!>*{WgBt9pe8e?PPL+mC~P-(m=^ivU9`?{zxG
      z5VBV^YixpHIKOS?0(wj{G<%w1H1Pmza-JcOHA}n`3=b)YVOIox>`@TM0E0gv06lrl
      z;O8o<i@ZGNBo@n?MaoO1>}c->1HvG~`1X>X#*o_%i#wHI=uI?do}3rn9#Ig*PD)L6
      zp|NG&!0HC$iR4zL>(;Cq)Umq9)v4H;o|zRrt%)s!kz&~GY4};QVsVL!Ac+GC9>X~G
      zQCQHm;u~4BV%V};xd<k3D2#*dT(vBNg2RF$zKLSaEZAz9n1WK4p}&PqF<L8TMK2Yo
      zj73RHZL(~0t)@Vt($GSLiuaU)Dbdc@l2+#K*8+jpc!^<WQ8kKOZ#XE9Oe;7cj_hhU
      zl9fPlCTa<vo3wgVd2cT8@{(Cz6`*0a$lj|Z6QQ;WnHdF7;3&i3c2LsO=*CfPY@S`A
      z&I<OSCU$WvYuwc0)}KX>PAfQrJVW26F{)i^8slUld3n<$J1ouEsZOFhr{Fv;Fmx5A
      zzgee!!&?z-0H(U|0_MUfFpRaMq~Ibbvu^I`py!r1>xg=E>KnQ3Z!<F*M9nDiYxHd8
      zgx8l9ydoU*aPL4w3TCBT<fk-oyZV}@eO$;fC^>^@v$|?ooNRP&ehTm~4TPV5L4?sM
      zULkZrq1X<3^?m3@Ks*6JG%B7ciYXL{qn8kUv^z=|AFYv8`g8QBzQFEJ<+(u-lV3{2
      ztYS!>WHP!J!?ZGtNNvF~?XrXf%cz&ZB!)G~(C46B2Jvr<yiuX>DE7Hr8Mz07soNO+
      zq)ru*!M7TW1nWljBjFx?-8C|j{ssf-yGVY3c=~H3t4I@Fe-)YQ2nKHYZ`OHZR1V-B
      zD%!iWe~&odZ?HO2w>pAJJT9#rsjD5KRiJ!<4L--`hYcLQI)|^$LD$#im~_((rK)(c
      zfyXJ`4RZHUL(ZXk&c`s|G90cKtcv5_+J8m_x3(<W(`}@2_W@~~#51T(0COjxitHt?
      zi|<MIhZYksiCM{Y3eUF1^&@fp)ROBt>3gbP9GftHTK75a&*lBcZ=g3lcu4GT<LsAs
      z-iNn+Y%qQ2`oF(zX!Vf_@H0Aak8aX06uU<=`m59(aTs0Q4q7kaMbe9q>PuLVu1@?9
      n2bZ^T@CWhVCkKC0>^?d8t4#+!yegSqqbngQCn`Ka_c-t$3QjMk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultCellEditor$JCheckBoxDelegate.class b/libjava/classpath/lib/javax/swing/DefaultCellEditor$JCheckBoxDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db05a1f026adb63b721d348f77a6a531dcbf2b96
      GIT binary patch
      literal 1387
      zcwUv1+fEZv6o&uRBW(u?1q!HGgn~UuLB&(?00k0A)x<(CxN=%HFgVO;XNtUvPr$7b
      zz{Cr~orw=+Tzfizq@=_qo!M*lUjP5Cz1Pg|KR<o~m_{)O4<Wy!?y38E>$7HT<rl=J
      z+R*Ky(DlU)%{J@FmEyLjeV8}*7lbahR9gh$BjnmAHE(Abgl<dJHC3;Ox}}-M+VTQ{
      zRtTL%)39vSuq&$G5Pmd&L<rd1nw6X)BuZ_K3cPeyGc@}JVKjBk+H{5BE1DZ31SV1t
      zMkEX`VhR*=5~3x|5N{g0RZ(A6t2$H1N@k6rRYvF7edv>Dgz5HXt=q<^9hPWTO6YIG
      z=5>{`-&S`-&1Sw3Zs1lBHwnXS)fEimHWLdcDw?|=O+y$qVek^w%K1zoh!HluJm~_4
      zk-(^eF(e5QCM+{>%@!M6YHB@Q31WiKa{)VVnz~SpFvgKmkVb}}RGZJ-+PtasI>Eo!
      zjAE^Y^5NGA1Eni*cs8~r{wdZ~?MtOwl_dLp1rH=eShLR1Lku^g;1M2k5v%Xk774wj
      zmJ$kb*;572<TC%#T&cV$J7ZQs7CA!sx_<ia4oFwRtRG|4ve~HD#F8c(D&CShDTR4k
      zmkmSIi@IuAf;+CKMGzw_=jAuX!+qmNfTN%jb#!;j?&h(NBkpdV>EdXHBM;vrnd~v5
      zne2D;d~*_d`6|;vYv|*#BF8MykGOmxF@Ql=;uEiymSdSCM2|3Zip1;eFGO<Q6WlpK
      zS1x;s@e|zT=t4TqbbRKBkU*3+F+kfGCC#xKY09})a>TpOW)Zf$he=l8PZXwH`}b}I
      z$qV~ZCVPVEF9;pt;Q<1Ncyf#aPZz$P`*%qXs<Xd^1lf*nys6{*Mlj^KQMWAqx$8FJ
      d78{UT_2TNS@;LvO&h-`M_%08b_(bO6`3uYEK`8(L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultCellEditor$JComboBoxDelegate.class b/libjava/classpath/lib/javax/swing/DefaultCellEditor$JComboBoxDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db5727c3aec8c0b8fdd802e6c651ca0c646dbed6
      GIT binary patch
      literal 1514
      zcwUuM-BS`#6#pFr5m*yR0nHCmGe8ur>_f~-v>6Di8OsOX7P#p;>#oBt>fh4e&_m6b
      z&GgXp)I)z%)497VniNhj?7esIIlqr{&*kT@uipSHU^NIIA-|^{s>gZjNHccwYvP^S
      z)a|0s_4T@Dn~kY*(cG_^tLE{V(8Z2wiy-`jT<0WrILjbJEz!_aeM>Yf%{1PY)(BK4
      z^cGFSvQ@+0QuU??!2J-R+uqfzsd>V9r6W;+Lzgu}vsVZc=__J0TLgd6tcws>k%BNH
      zVRRv;KtV5|uc8^^WplqO8gJC9&Z=V-v&N!Tmd<PMrC&-TEOaJoFB?nkv4rcCFzAZS
      z>ndlzs_u!J&HALUVFfoZLI@nXk+Jr`5XO)SVw^DAQG|k<m|$bVS+Sr4(-4MDNd6(d
      z+}bGwF~!<0Z#q80n8dV#+ek7Z8`)%EHCxn6w%F%WP(5Q*BP8139R#jGY)4$s=cNp!
      zGwmKF-JF6va!j{#nJ#MWnoYg#zLbDmH?N{iThsIFhwSF8tlJ^Rx~t$G771a^lH~4L
      z(zc{|px_}M5kd@l^x8aV9uT_HvReY;(5YAAAJBx&tD5e=+a$9U<}Qe_(oM73sEOyA
      zR2pwfos+->rDPbQQPfq-65N*kZGcEITo+#}ABGV?H?M-uswWziSAgdMUhx&+ool>W
      z<du)dNOtBk`m!@$(ErIvxXw?R4jRV*&lNdmfI-CNtwjP!55nMRNtu!mL)jDbonZ7k
      zCO3FG^aGKc98YoU95>D)K(h$Y9HNv*g66ru7aX3Hi{<giSsEkq3iCIEEF%zRkn^}V
      zI9kddJg2Q>XHGG@%~C$L2*WanmJp$WLlSqBJdz0SOK5Hp%=15`3tjapnY`dAcY-_b
      z5zL+9zW+lDJqACcml(awNBIJAs$8&=Y*|TS2?a)taP=K4QCZeyk8j#5W4Ann$A3Qr
      UpYvOBo=@=9aVAxd;Te3t0hZBK=l}o!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultCellEditor$JTextFieldDelegate.class b/libjava/classpath/lib/javax/swing/DefaultCellEditor$JTextFieldDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55ba84034ed1c734e155616a5be92c914c233efd
      GIT binary patch
      literal 1367
      zcwUuLOHUI~6#h<WJEa|<R$3l{R6s0krGRfiT(pwV6kUK_xSO_@I%JqJGgD;c-*Kx6
      zV&cNMGw~O>GM+m#6rrTVCcSgd+;hIinR9>r`Su;a3Z5$n5tjG0L+z;Kyw}ZksUr5Y
      zj^UPtVZ3PRu4T_xcg2yrsSBf35r$}Mu22vr6#G~CkJAc5(h;_<8FgVhx@ErJst~A3
      z7%E$)<7%c`*Nl#c!2b~;>b}*T`DMaPtuN6Ur>^U!?rsofb64ap)(PRV)e?hXMJnP*
      z#4&)B3Kc_yk(zFbmz{%#uy?hF!Kza=tI47@md<hTGAyMLR{N7((l^!`bA)e|koMJ<
      z42{cQHTFf*Wr0%Jq>3AuB18`T%v5jUAZ{Y7V1_W=SA~jOm}O_ei^|r)JIfTNOBg?=
      zzS=!mQ!r1+oIC6qiD7}jU7JHr#Uk<qh5g9m3wCx~n=9E)97QZCxXbOn=s`sZ{C#7t
      z<!2K{bBnzg{C%~cW3<<!yDN?JQf={%^PuKDX3#z9;E{^Ql3!_`I@rBxeE$D~%LcG8
      zLVU;S*iEsi%K^&t)GkS6g1Tjz!Y&({;|QLxR4*d3j5oknB!o#s5amemqF6F1$C>wG
      zj(D8;WSFA|9EJFq$QQm~BwzT7YoEP>>%7Wx;5SBjRlR)zX=LOL#2Cf{h!31CDT@+f
      zB7cmLV@&_R+%|6~enKs#ZlB=JM+_I`ixU($I^&pR7ElxsQjnw=#%K^(N}xch$D8%B
      z175jX!IZq7ysqLNqY&=14PVPPXG=TjGa0o!6Fz*y(mr)b<1&fTNKnQj$@oP9NrKNM
      kG$p0&Cjs<AU^6P4^z`y3g}ncox31%v$Ha5VmvIB3zsfW~00000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultCellEditor.class b/libjava/classpath/lib/javax/swing/DefaultCellEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c842bc6af12e27335b158018752ae139d4f99ac
      GIT binary patch
      literal 3457
      zcwVhmTT>iG6#jbI3%d@G5Fil}VgPknFdL#0bptV3z${{7grHfkv$G9M7-n#17Vw&X
      zV0nA7%JTMR8E;jRlv?GBZ&vBERlfQIe6)N}Pxs8;W(UyHm+79KbI$jDeNLaAAO8I2
      zI{;(27DI^P$W?Vi-Adb=y1AU5;!A4TaI)Mmri;2`m0}1p^w*o5E!a*;)f#M~49Dti
      z9JOHZ^n!TSo3%0=Z7?fwvZ6=Lh+&`2OS)<-@{+Av=H=WJ1Dj=N%UY)GsHU^18f6|C
      zEB|%i_ji_lVd&t}F>9@@TP8OhhC_4pAhXpk8HUy(H~6yZaE9Y^y9yt2hbhmVeD`aH
      zuB~RRvgs^X^Nv~~D3)W0p4Ls>nPlioHUcm3EoVmOMlmzI$Pmt2MV>$l4k_rutqd*6
      z;l((}O+h<4#O#QIP8^8gD8q@}$<<<42qw^vV<PeZ!$NX*ZJ9l!H%HI7REHGo!~O*B
      zKr)6q8G3^CDi}tJHcTxR&uR{3aZa}#ZgR@*fJ-f{ZaQhcK}ktBTF9;HnA1&up}bb$
      zC0RoZopY8(HK9^v(7U%7c2;zoN@@?W3~`5;EeU2##Zk)<L$5D?*%hv>p0l=yQw(=A
      zr1#jhihV65CvmSx$vDIOe@%%$IFU-=K9Ps}8M*^`Q@LwmS`gENJ7^1#ZLJloitNdM
      zAltLA$)3Q2LiXAJL$)utl${l_r<!DYrb4!u2Fk8zV^Eg4Q`a<llEbyitZx}z!mjz`
      z)9IzN-(?4W3@3A<jw6~_rRo(Ss-k2ABi9O`p%Sx;g{xe1G6`J5d<>5<jQ*SMq~HQB
      zGPLV<#l$@!UTV{2M>o>b;<$M@!+C-9xPk>-CZ6&nRyM2IS~TSqt85hK3D52P!u=@)
      zdEwq+JJxyynCQyQkpRyrcpA@$)~T8rH|lJ}S51K`8euPOPvb36mzOjCrb>pH=8ene
      z^SQtT3ZP{LE6}MfC|lm{cPE=;$Sy7JB!&Y4ptMgLu5)LzFGE7N-R<GjWmulj_}02=
      z7R77W;OY`>OUc@#elO%UUX8oy6_!DQbHRFvrI-A!pg?q8X_ir5Gl}rLRW50KMi<6C
      zO(k|*c+)Y-nbelEhHBfKnr(Yy;n7|+Ulx?_rgJOTd@T&e=t^lp2ocb426_=kf>v&!
      zpOX+2TA^!^=3#N?$dN8b8r#UG3*GeWp*MrPLo^PhZsK5SWE;Jy$TkkAzD56)6uXJr
      zwlO%8`U-<LaQl}s@(4Y95e3+5^mFq%;_MByvp3Pl-ohYz8>95S$Bl`*a2$}cG)@qr
      zKpxu}IqV{zl*sqgkWcxM-zDVt2>E?N{(z7_B;=2FKz;xj5Bc<-$P*IzObz**ANgZK
      z{)CXP6Y{5o{23vCz60_!W+d`MIPW2+<vS3e=)GT5Lr29T`&x!kTmvr*Lk_b6&WEr2
      zoWBorei(C}^CVdde$iAPNv)|$h*kC@BJ8I+7164SC?27z5x~?Uy;vtbBCYNoJ?a<o
      za~+q~Di>;%p8tf$B`*9&ZeY<b=GQtZ@hX)#p1>6eo!>Fklm1Y@?GcLlYp|+k{gM6%
      zR7D-w^B-^YFZlL26hbW25*VWh?#0+7%NUJqBF5+qEH&1N8|VmHL;W()dDplqs|{DN
      zDucICk*`V7Z7^X`n-H^gnuX=;d74G!tVHP*0&O@R3E>yri^MpQI3-C;y2f=R%GlV2
      rgaC9&Y|>1e#4Q>71-wY(0DZee-Y?PEPvgt<WrD_6XcQTG6`{WY+F2%X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultComboBoxModel.class b/libjava/classpath/lib/javax/swing/DefaultComboBoxModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c9277d2c790dbafb75e352e3e155aee9256ea4d
      GIT binary patch
      literal 2973
      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
      JT4z=K+`p(yMgjl;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultDesktopManager.class b/libjava/classpath/lib/javax/swing/DefaultDesktopManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5202be5dcae5c497465d92dbea8e54a1e08f51c
      GIT binary patch
      literal 7571
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultFocusManager.class b/libjava/classpath/lib/javax/swing/DefaultFocusManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95670804cd5088fc0ee793948239a98278f6c015
      GIT binary patch
      literal 1469
      zcwUW@&2G~`5Xb-Pe31}H6QCb_wc)cZ5~d)y1hvpWE`%1TsE6LR?j{&gJ6hXmEAa$8
      z0Z+h*1DudJ@Blm%Vs`B$ZsICA#5*%P^PAb3$=`p!{{UFS{TvL2#gDwlk4^8$cG~7E
      z(c(eJZ@5<Az2y#X3z<WjVLt8@zhx+Xusz?ECp$j3J~5P=%GC^fyJKoojUoHoc5Hv0
      zA+@}+%aE?S2cm!!&KHrxIfhcxcEnb2xG&^;zTXiHm8NU)&Mud>(j#Nqr&J8p=7fqV
      zW2q}$OL*QJaq_w+9G~IQa#$EY^3A$?*mWH;*M>Hs+|0gzP1TvV`hE<TlcE_iBBU>z
      z38J^ORBc=0*sl+HbBX1sth3tvofJLW4ZK)Lxh?#LExkBq^%TbOIW<z&R+5XQ_e35e
      z@9D=e%utRdKb4|Frh&RCTCSu~tS9D8d{S~P<v8_a%U3m(RKK}Y<KC7B%JN{s&|+!!
      z7z%@Vt;Lncr0lqXv_!*JYc!v*G7l9JRnUskUxUFw23eBwB-4u0H&5CVIvJgr)n6$5
      zB*8$Dz6Cmg4WzM&3nUdoCtO5H!)8#902}nv35LO0?Yyl6m!j-pppq)Mr0;29xIz)M
      z9+-<@Pc<U}wx?mU;pG^N8Za3lCLk7YH9|bo-J)prV}#L-F^mDjz%^Xgj2lxhK2KoW
      z#A3vFfpB)?j4!d?jx&^`UZr}wGzIPJ)U+yYjnY!zM`+*9pxut<Zs1NtyQ{T({{cTa
      B8~*?R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultListCellRenderer$UIResource.class b/libjava/classpath/lib/javax/swing/DefaultListCellRenderer$UIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ef635ccad8e4456d5c46ac4f060d578381ec055
      GIT binary patch
      literal 442
      zcwUWAu};G<5PjFC4Gn=pVS@$101O1g2x18WDn$$hy1VTajEq~w3GiD?NDO=cABDIY
      zq;^57EWdkay?eg9ukVjf07qC4Q6U^Ws%Q0@xEF2jlXD)b(iE9?Masr>*bX@7eCMv+
      zVK*xCK8FYh+jG=}s1r73g=3?J$<&EZKh;(jXN2nRUY8K0qX9>#VlhUD1wu2^maogF
      z9_P2JXQZN)jrz)TRjw!b-(yfbXh%5A=ICl>k`qF7<JpCt*lhk&;ul1S+tzZP8s!|z
      zZ_(5UTaXdt)?}?DN17LGNOtUVptk>x=uJokv0x+-xI};}ED4K$MOa4DYgRn2qUE*Z
      I?bp!w0sjAP*8l(j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultListCellRenderer.class b/libjava/classpath/lib/javax/swing/DefaultListCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83f1ad195348cd24153ddfb33304a196ca493b39
      GIT binary patch
      literal 3535
      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
      NhV!5M8@g|y<$pC##~c6v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultListModel.class b/libjava/classpath/lib/javax/swing/DefaultListModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54dc30cc4ec765c5451a5cd7159f56a76b3dfe64
      GIT binary patch
      literal 4580
      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
      K`-Nx!%l`p|i@yp0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultListSelectionModel.class b/libjava/classpath/lib/javax/swing/DefaultListSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00e889a23437572ad49723fd9bbf0666923746e6
      GIT binary patch
      literal 8540
      zcwUWI3w)Htwg1oTGs#DQge8RC@Dxmz@Du{&5ygla30MsT&}vzdFJWP`OLsSj=(T!F
      zwOU(Ry;^zr0BxhKt=dYkqDWi4_qO)hTB}yA*4thmt&eN%%UYHG&wO8YH_2j=pF8u-
      zoH^%zo^vKY`RKvJ0A{NZ0ceFOn_^pI+h%4iiYL2fo@RH(dJ@@|cqZFwC+zlYJe6FL
      z>aY_5cojwn>C8loglBKq#N7b=3YGcQrbH@f$2KJF0D=nR3ON^JS*kF~9FC`Ew%X}<
      zED_%>rzt68KHKbchUBZ8Pg785DGX~$B{SJrGTRnQ^w_?8_dooL?bq~K3RZ&b?WCO+
      zG1RH0P_(_(PG)B=li!vCvPI;VDMUmW%?cF>JJyjy+MMjLw-IJ6*}gHA9=u#5v`fv_
      z%2YPq8E=ot?y{t4(LsLaQI)NNwK=o2V^dEiOFRl5ilra}a%N99o|t)RoW>DE{!~JQ
      z=XMK>&D~KMJKI8$O|b;|pPo*2FYTZh|KfNuo^2%K+PXFcZxfX%g$I)?jKlZ<PEeS9
      z90n=HWK1f7!ig3}V5H3IEL5OUX45Q;a%R&lgq+z-3!_mbv)LBLpelfq`h%oEt5VEy
      z*fv<G##osxuuy|4h2bsnq`k7IdxM=`<v6~gCDl&9$LM{2yNllJ#(0LX26*+Dp-MZA
      z=&}bc8q+kJxEj3St!=Jr3*c0RNqLJm)4pA?#L{$EPdBZ!Y+Jj%MUDi(NUX}!wPw@A
      za%xXJ(P5{9IGx$BI+?cHQ(eh;#_pKVO%V$xl%fe|iZ6&DRNFH6_@cTtp;&IA1uN*y
      z*p@AJl5UL<*$`q^)*?A^wuMjP9ED&u<!mxSYKI;n?NXdcO}mZ4RW#1hqTyVXDZW!m
      zm#wj|7VBui&Uo53>DRQ8A|%Rvwav{EcfPp8#={t<qFqj`4i*y16k8V&pSG}GM2sqQ
      zQgbqEr<p<$MH?)%Lj<-<of)jGn<Wxoofg7~lwu<`1rS##&r_|4Wj9*b45pZ;JDzmW
      zHw$gjLdsc>89bk{kOt#!cs%34u{&HHBxcSNL_HR^3S=U(V`*90X5nI4VUC-~zr@0&
      z_&0^pq`ghDfjQxvZ<gK9TDV+9c)A?wf0xsrGoa3ss8IO4g)4CtRS>(M7Vqq|({{3*
      z%AZ&}w0;a-5x<m3m2#0=^i50tQ=dCqe&+C}Rc5W6c{bP#Bt^50?oMsBi~H(23)ka6
      z6voFhEgxS4nRu*%6I`!<457F7JVC4Ifl8XAZAjUy%oJNyTN#x79uj`tTe266EpN7P
      zi$Dy-GiHtPLbfa7$)Vcpv#>`<4MA+%;E>hb+l1lQEqnv4vi^jf?8<JW=$PCL9UVo3
      z^_v#HCDh(be7h|R-<DVzFXHa8Z~;ysBa<+*`X}OmM2bHfY5S_QE!Ho>TA|Ovt!R|l
      z0~S^br*ad2Ibzv5BnkTvc{9F^VZEKaFUUQc5;R9F`~W|sd$y(0`KmNHbOP-?X~r8v
      zRv8ogr^M$eGW%}}KNj`M+GFXCc#>DQSlI8}lN2T~$I6s(6Ne$q0G7Min~2F!8Bg+#
      z&l(FCn(ax+h+i=FBrS{HkQ?mIR9Y%}wtEY4F@-A~TMgo+@GA@Z4aRsrU}XIT3pa_o
      zOARE~$t8lz%met1!U;n!%mG)8xjjqq68={T`)?J-)DEph&HY*Ye->WBs|wXp6bsq(
      z-@mK@^|f{97wKDyk}oR5>-a+ezh@md&LbAyz?&=pTL;wcy4rsw(kN<z!DDZw<E9?p
      z0WoM^x9IU}MoTiKitdSxj+>7delq@S;V<|rvB#uQnqKImCOSM*STYARL`LIaA}6`-
      zxCJYOop>y|Euj8k;R6BXcj)L8H!NIh6@lr7MlqnYbZfjT8O!!aRxDh+YT?3T(l!p^
      zym-~BMU7<7fzXt;@F6}bXsB0RyoFpx4gtgr9oVXo&TZF57ni|2P&$Bjn0L8;Dics;
      zZmt!)Ab35r_H5abO0#g}NTs3Oz%n9D46lgN)>Kcr-99}o62~308Jr=kF_9_g;XfY&
      zC_yR4q6`+-hVdPwQ4X*4yO96b?V53vJBG~Yl|I*ek8wvfvSwtPVa6J>KAt?sncoTg
      zx{4AN$4^8LVq)|VCa*h)DF-k$>N|kis6K$G{M1Li2QVY*Ie=NDnM0bn2QW{*=ig`G
      zeS*JHf(9B1WEqCzY{FYh2sVXnWjtMhT3n5ja3dCwW+5ppM=%y)F-L_ZTz5dt<S2W-
      z=>4d@J14+z7VjuH?8_ZK8K=01H*-~UJTbfn!LaWRgb!iqx<hDMSF!9M&ItG6tUjzf
      zh;tu_hN)v7|7acrzC--?&;j?-A@^Y_zH7vdc38UNWY$Wf3(8eRQP&Sf{cus#t8=K+
      z#`nMkIUK$fV`W?-2<thUu?r>9aHJ1ydAMWA8NA<uc$_ivQ%1%A(A-bZvp+YoCOG_Z
      zkSE|g19=!J&*w~Y{;8tiql3Y}P!#+H{owT(v{?z4=7;y9Qh@J8nTefVc<*z*%~-oz
      z)Sw406e&w0`ZoB&OE{mu8|6`s^ZF1w09(|S&w3I#3?dJptI?fwH+YSaxYXctXWb3{
      znvjnxYeL?TpWkcD`95sfh4I3;Cgk<5??YDRAz#QZ9~bo^Qm}VX;hrJ%^kI8LAQWf_
      z_M$QrTw@4=vc0__7z*w^`ZibWBbc)=SRFL1=%UMZA>g6n-acGW9TY`nL&kx7X1O|e
      z5Igcdy$&acW#LsCWy*s}<-;gdg0Lz@L|LqT!%(M&V}=^RXY5GKQx#aODshGyg%&j$
      zt5g+Mt7=@R#$uxiBdsF1RE=Y|J|16G6LF)OjQ#2ad{@=tu&Tr3svb|P>G-vp!G2;o
      z{-|c*eRYx=q2{W3)xdxAjq5ulwK;cViL)=5Seij>SDRS65YOQn&OCgh{0v{@%*&X5
      z4A*kz<LlxOzQmayPh$hV%vpf+W3ZF6Al_%{pU-#>lH*r$8L^!lB<aLX(Xa^w6Bd2=
      z>Mm3{t8}<Kb`QvnN#q5!3_*1|O4OMsSIr2ivoKCA$5f7Ws-+;Uqq!W3x_T*jI26f@
      z8G|xIttpxrH?Yb%hZ{*PBK(4VMjl|Ptg3eSR7U|2e-4NrUt_Tr!8a8JGHWo9R8b(i
      ziUXN77|10Aa_KRE>~?|d$pM+;0tq@9yLT{_D+{m$b69T8)tb{x?cqH}U*5J0K7Dt8
      zvgJ9IOZ8GWAfRrf2X89iSdrtnKgaQMw|Yi%9QERUo=bW$B4WNGCUciW_8xsVoR>6?
      zu?W>mNq17xH<@?eLY4Y9syWuGdkSi4f1H%D#@=q?WEB7HbZaS};Vzms*Vbdhj)Csj
      zj{qy9&tvpt`MYeeo`*49J%W+yNP!Q==6o;~y>3+AiFJ+)^&qoDuB#8i`c?!Z{e_Yh
      z)-o5xg}wM)*i_B1TQUpEE9tzqfwv3m<8Icbh#99xYrGvElS=#=AC;=;9J-5q%wnnY
      zeRtF;XDqJk!rl(~xDAz&@IF>?r{2}?M@`rq=gz!H_;xl9?#}I)5_L*@nJf{0NV<#p
      zg5o=-rRZhn5s_4PZ@+wjb}Olr+yQknEgg<}2Bqp*`tLbZsOMQTU&KW95`Fj^*2-70
      zNWF$8^*WZT-(#Kn1Cr_u^r&}nx%v~XQGdox^%v|`f5lzuZ@6E*hey>1__6vBPpFUZ
      zjMjKTd+@UM;!W+tKXlM|YOdphoTolu+fZqu^aC~z5*HKkJX;8<i?w(P-!pYl;r@O<
      z;w{&Yn+yGzchx`__Tj)S7$-x`evEeASnm4B+hOj-{7pyi9(3$@EVDI8bE(ImR9B-+
      zhcQ}55YaW5tS4cPo{WY11T522agMG-n~vgqU5`zAdV%VjbE<F7slM4&J;EN)QGGJb
      z%&GqUT<duUzr7q6^k?egu=EMxCE-S<Y|Rp*j7izX8m4T2=!NB?oz;g22X&r$9!fMd
      z((_TS7hr^5jF4V}Dvne2$(XKB!F;{cV2?U-UF;>StPdOPBj}{V273iNznuoVmOpK|
      zh#%lNX}T8FPwT@Y^&STrG1oMBYZ`pL7#Z?4c<Vzxr$z9Ee0z_+6Qx6rfp|G9RSPY@
      z0>kx6B0d|H`dn1&R@88;*Q<%R%^+@c<mRls06$_`P-gZhXKWWR-Dtt40aJ_?@*tRG
      zwD6H~eSgU5C%GdfuWLx@NJJVVP7rxq{1Mp<`SzgFX|EdDUioq@*dA2X$mnc1GiS?q
      z%ISw5b7C+exlB{=p6<olZtULNFRM{3xQF(05C509V||0yM1O<N34edcSHqeS@`t=G
      z;(j5yevTZ<NM#O%ynA2?u{rCYtq%EIxZL;m<Mlgr#-J2d24RbvgG`x~c~P{HFS6Ky
      z<#k~B3<9s?^NR*0-Sh$J_5`0l&>NU;?R0tvDs(4C=`M!oMoiRkoTxXUR&Qpgc4Mwi
      zVu{{@({vgubOvj64?eB8qDx<dgx-eF=!<cQz677sm*HCdS?tu8<9dAs_URqCQ-2=!
      z=qvG%z6uZPFW^yqHJ;Sh;%WUQyr{p7-|C%sLw^PD>g({KzFr0O4QiOaQB~-#sT#dU
      z)#|-!roLG<=v&kReVaO2?^CDi{i;>pq1NiJs|$3m>eP3cz}z7vM0Mpl!!G>9DFd86
      zZc=F!y4*5Qg$}n2OypbSrzSA3#aH=mk=>o_3!gB%ccRCf@bMv*G$;J*R~z|`9Se^-
      znU62o^|H5{V0I<Ee};$LBz@TlZ?x6$wXs8~9r~!a!o7>{>ch_$dIv6Ks~MGdHTXOY
      z{$BI&nir0&5Bb+udnFhyW3Rr$uNX?ceMeszoWh6T)ej?}57Vnh5Y|87jrK##)<0tE
      zK8ocWSL?@&rOtFv<x;rKeUHiP8^%&Hdx}=_P}4>DCAIZpHk0{jqvKp!O_Eu9tY>of
      z$LpkFuZy(<ZweEW1sa<uttrshCmQ=b4S`;aF?*rF`f6V&;OZMtp+LyL@91lJeW%J3
      zPd^2}{w0g-GZ?R*#SHx`%+t?dk$#?0`W)71=c#zEgDI!$+T7)^*1a73q;aBR7?!(H
      zF`jZnYaizE%6Qu7x`3;qb%6V8bKUGp_ia!v4c`I&|7>_bd99EFuixN>@FxB82JyaC
      z&{>t|aFz2FBHgX<?ziX)eo41iCO1tVo*%&2w9EQEGW~l&V_24BScYG_ik9I;qo}a%
      z56$mUAqj%nhw#!mvadOamlw*l{=0=v@Kw+S{yEj&@8dNM6Li(S!~2fDIp}5M3Bd0O
      zBFJ%=rv#OrQdE1&FookRk5v$Dvva^^=YY+2fywMS6K%uz>U;}t6KW;9;s3`w^uTEP
      zp+DOGh<9BDn#_d=)45Hpc%8T4p9a~+!*0S;U101&+x!jhnKt(CAH(qd!3?L6;naV@
      z@I!pWy`yqc!7x4>P7hupjHmS}buT|W`A3RpZUM`Z9Lo~rQS4Hb^fu0OLstAo$SZi&
      zMLieJ1Ew@u@p_*M98tl0bD$mWO$85@(%gfkodr<y$t-`YQ+(13uP)aDlcNWfbp)zq
      zTK?uafO*sMf0CP)7h?WY<vAAt&pC{OR*d$n!bH#N0+lAaLWAsshjB&)RJpOw@P7h?
      Cj2nOe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DefaultSingleSelectionModel.class b/libjava/classpath/lib/javax/swing/DefaultSingleSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb97ffc6050d60efeab4cf2bde5c4fedad64b7b3
      GIT binary patch
      literal 2350
      zcwUWF-*XdH6#j00HpxOuq&3h|YAe#DN~A^9rc^Y51VSsMjTX?EZE`8w*(OeQQ;V-M
      z<M^U4&N%wQ;LjHxaI|IAk@3wL{}`WqR=>NOq}wztec7}3?m6H2&iT&0``5p}J_c|S
      z?}gzLIKHf}>T7B11EaE(J|}PKb<-~J-IN7s%93qVD_5#zX@(IH=uysTQ>W|f;xfO6
      z5fT{kLUfMp5;*9@8r5_`)(qV=KGYXYNl43C7G=$%`+V-4fVd>EFI%lxwqCJ|x>=XO
      ziNF`Bk5B&dxj?LRo9X5GRavnGj^@3&rP@qqHyttpnrT?JtjJoPR^V8N0LL}&absA}
      zsFdXzx#R>wQ%1$Grv?0@$)Z3Y%bKF_Bcb6Sdc!y@FtP{KC=MYJfxr<BJvgA=j%tYG
      zDS__1QIRwCl|@;bbK4TnS4-@Q&faj{*bLaW4ND-I-=k)%qi0Fl?xrl~+>%&D&gpym
      zhrnnqS&WiaQbP*8^tol!WWm;L>GrfNu)kzVz1B*jykF4p9F7Y_4XX+0B)KkdKrffw
      z&}Jj3!03*eHJviaVi*%`gVo7Vwe%$or|~i~G8f6X=<bYWP2I9G?nd1<%&nSal$c#+
      zi`ej!d2xzsa;3T|x6_!?a7NJxxeiL**EH-$cNniz@?FO?inGY7VdC)jdJAw5S;kf6
      zf`&J7k)uILx8}E0SCcoM%s+;4T+(nEc^(XFi?G8x%i<m-)vbuRnQ>$f`FMT|W+Gt^
      z)eaIhxOWnXNejkOMYroUo`A`zxyi{LeW$k}PtDC`rU_4@M4H#|7OwJkY1ZL5aZa}}
      z66o7{0`I)vJcWIolPHPi!<gYgC{*jUlDuFj@1b4J=LrRbXBg;*4?*yb#bHFCpklnE
      zeb8`M%@E%M>dtWXcw^8iAKpHE_HlKY2!ggZ^$1U=e#4=KN9bS2K+3m{!5^KlAwJ`T
      z0cQBj67(Vgt};EC#tFtSMrZ||#jyr(npS-arhdlYgBDQ8*}Ulq4z_}M88m{g(c7oe
      zs^I>6&{E_ynA*T-JEdiG!NfkSu*Rx`+UG_#P}Q5NTag)SReg#+Dt9R5+raaim{BKo
      zjhyay7=~I5PdH^MgwqWKO)>P{Loo2b-(KZM9t^F8@go1AE=JZ-4~P+CAU-~}fm7{N
      zKBfK4Q&y~1Rt&G;Ri~`UT>vxffM3#nwJTsiUEvMDPq^~aP7rYVPjquY&Mt6L-dM*p
      z)i|H`pZNjtv4L^*{TJkXxa$)GV~_9u_xEPvL5?SIpU<x;#5YLbTO7f6NYakudxy-B
      zo2Ee~fqq=!v<VJ%0<(-#&E^55z2@K+9D1{jF^Q;pS?%0IF8m$^e)3crX;m6Q5pVPR
      pJ7}t-b{3pw@}g{;k!UJDzJcq1;KoC2)%SOgzR{MxHyy8c{|9y~0q+0+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/DesktopManager.class b/libjava/classpath/lib/javax/swing/DesktopManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..683d8ef5f0e136699f8e76d3e992efb1b89eb604
      GIT binary patch
      literal 651
      zcwTjpO;5r=5Qb+_K|afepP=!I7l~(YN=Pso6HUA??bs}~yJWi{^3y!{1N>3O-8uwl
      zLJxiNzVl{gvh(x%^$h^m&?!KUL3_++eBMhwgbaIqOx}%}JaWlH)CJgOP<QoS#BKFy
      zG)CVrD5?p{f#xwXxadBtH@F{4gIe+^E#F+eGAQ|xN|55!n9oHl7Aq~}x~>RcN%8hc
      zvKHW`QRTi7Gj5i7FTjk`9APMAU-Qr+B(sy*@=nDQB~hAm!(w35lsw;>91dN!jxxwJ
      z|DX7biCC=6v+aFco3eKC<<8khTpzj`o0-r^(A=u243dG;<dt63RQos(krl1YYhJk#
      zc?Jx2z<r)Q?jGd99l1c<Cl-k%VwqSWR*5z6Qr4l7vPrrH2PqHXDCIHvCr;Z9PVGMj
      F?LUJ^sWSio
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/FocusManager$WrappingFocusManager.class b/libjava/classpath/lib/javax/swing/FocusManager$WrappingFocusManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec7de01f39e6e29cc29e0bb459f8e05e0b263e8b
      GIT binary patch
      literal 5486
      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
      G6#oYvgAjcH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/FocusManager.class b/libjava/classpath/lib/javax/swing/FocusManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7488db7fa6bacc74bfa993f119f90309355af93
      GIT binary patch
      literal 1199
      zcwU86O>YuW6g?McX-8;FZ57)>1yP~eqH$THAry=$r43X}-H-=7aSRM(W)S^PE_7w1
      zi9f)<p-XkEE8~450;LdU@$S6)aqf9%?wc=vK7Iyp7k9jH5rQwpEAcvMb#<ej%(ki>
      z>p&QyE=?~ygqVsZMb}R5$>*Zeu=nMgN=ulv;Y`9t_AvdVSUyPQQ;#x*aypkP7RyJ4
      z!=p^$_=K>Wb6^^RTNG`RJM9wu>6T&H!mvxC(UEhQC#(*mrW?Yt@}emTv-fpFw;vGP
      z@kEK>Nw;cJgBuGzXt+RF%;|>AcbXMx9*asts*bIyXq1Ght9{Suv0vyGVJ$c5$jmBG
      zmv*{in$oZbr;8^hmuR?zpcj`3p}tn*MDpPZ)(GJN{&*=Py=D`EcD>jjY)>K-duoby
      zo4vzM4eJOiu{H_O_!N94F*OOBQ}S3W>%3T@_++gTC8gGNA8sfjVQY#M-sb<eU`@Bw
      zH!OBX4o1-SWZRTgVapm1kZuh}GlnXvIdk)jQ;V&RS(RB`4MSi!aYs=m_#PWZZ}21!
      z%E~w?JrOV-Um)TSI)hoZUf#Jd$2(H<$g7V%_t+BKnXM1-zjsm=dDYm0zVhYzh9%zn
      z{v{!RWw!IUh?O3|LvEvD{!^^(f5Q3+1BKr8fff`C`T;k6XRx1rFb{)VMZ^J%;@UYj
      zr-+TR`NaUg&#<}KV-x4&xR3yx7#vvj&;UXypnfDvjz<-3;nta=r~}GT_uG*wtzYHB
      RZD-xajzf!hVhKrTe*x1A8yf%s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/GrayFilter.class b/libjava/classpath/lib/javax/swing/GrayFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0aaa03ba9b34ea537f7d55cb127e94d1ca590171
      GIT binary patch
      literal 1375
      zcwU85U2hXd6g`92ySCZJAJ`OPQbK@YyA(qK0}Ui0F$9AHDIkjkT3FkQvyBs@%^Cs^
      zC~pxjyz|sQz(XqmK_GYro+|YpAn_}Z2xn%Ep@3SC=FXjaXYRRk_W0GiC(i-w!C3=q
      z1lIp<UAGqV3pbqkMt<D2ZXS1<p6wdY1o~tyZ{6_n&Yab-^Jm9LOVaU=2#6}@H0L$W
      zqJVzbnRmP)fna93l&uJ8W39R!K>**F2%|?JkjYlU5Qv!wLf1#8pnm#D$aiFJy$J&$
      zfoR#8w@<g{s<wOHsy1zbM7dS7nib1+<h~QsycuUfU_<%q4;f@@C4qG{*S0*n=q$)v
      zb@dE^flRskL=_s$ejbQmGqxD$XV2Zt`Btkr>v$#xuvH-5u)U&v)oM4rPC_7=`J_-M
      zI%r@!AwT2P@3Pa;xmMe)k+2=e8psIr{JR+wIs70HCZK;(p#M`KzoI%i>9*?a8lN8_
      zqd!XaBN1#vUV6I)j%5D()>pF~LbDag$xkNsVxPcTpV$teyZ@)|7xYpR3vP|%ewheg
      zRd^H~m6a)#O4(9il^O|PRT^4-_@9Bl-&{F*M<0Iu;=!Q{v8q1&EZ_Ub^Xo4o7{f6G
      z#Sa`dEvjO|@@7mN$2d{voO!8JS(OS|<h;qK+n}U_R`c47C3kk6yM}AqJgZfkZ7H_~
      zr6myYKL9CVEc#JyyCfR6kaTv4H5}Br@~COmypZ35b}e^xM&-HQ+zQNG`XQpZ=%(c)
      z;;lv!>sk+y`b*vYmNo&6c7%466~?d;MQmWC-><-Zulfu1Dny|?18Lq4V-xy1h!gBW
      z=F*Sx-BWCv%00sOPa&qXzzTM*VAmt;`Lhezqe`D)nMv-?C^*x<j{PWb6*z!{ozia!
      z8|G>!4)xtGXo;WuZpUJ`3c<u6ozSg<9>*#ZMiPfp!R6T`hEn?SY%PhAl)*Lk0IAu#
      zg%H>1J;YO?IF_#P%43WcLMe_|XmN=)MyoB|?>0H0c)dXIDMT^NCNEN+moS81aSXrV
      z94@QIFZs=Nd9rbW&k)KhDW0Tvl3swdF5?tEjTI{>(+jf31V@^=&6Ln-dIm9eke0OK
      JbW(Nn%X>o?A`$=q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Icon.class b/libjava/classpath/lib/javax/swing/Icon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8386bf820d8011d6ae446393ffc8cb444ab2672d
      GIT binary patch
      literal 221
      zcwR-0!3u&v5QhKN$}EE(Lm`sR9)oHj=n&L-vqe{IS9HsstwRscLq)qHG=~}H`)B@{
      z&-e8PutMO$A($8J!Jcu`3Yo<;Rno(tr*X*)J6sB$YJyqDwbgfAWVz|xFroxOPtW42
      za{|9&LUw>)5$-z|*6MhzZk3W;>g3P1HLG%wHVLKCiC}V6_d4YpQF7yBEtYn4L||^g
      WhHD-hVg&o3*Vi$8qnK@z9ZY|8ku}x;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ImageIcon$1.class b/libjava/classpath/lib/javax/swing/ImageIcon$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96518d938e64e21733aefe6b184a048c0e112adf
      GIT binary patch
      literal 372
      zcwTi*F;2rk5S)#V7>tP_fDk<eP+%fTA{q-MONIuN{^FdHL-rl=IfQRfAyMQ3Jb}j`
      z)+VBYlXhorXLht7U++r*1MK<e5Dp&YvwVr&LYrxvmU61n+?u0-4?*ZRVk{SRoY?Zo
      z8f9uicc_i7uL$1p$%r5lJ5d2VY=l@tmk?#zsJnSNR@H+X7m8yto6BM(E8YB8Ls8GP
      zBOGS`9B@ep?(MwF)s1fay<hFD*&u|eF{(-m>73%A=-T9kb)0gm>Y1JR*d^@$8IE)C
      z^=KY(@zsnzvkS&{a{7k#S0)_<+yh476N1G}X5nfr#1^B6Uh9mo-Fkl_fIfD(3r2hc
      DNy|@@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ImageIcon$AccessibleImageIcon.class b/libjava/classpath/lib/javax/swing/ImageIcon$AccessibleImageIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4cb57cf0afd167e711a564d58b31445dd87273e
      GIT binary patch
      literal 2147
      zcwUW^%~R7r7{;FsmC_m!K|t{nL}-f|MDYv6kK#wLqGJ)g#<Ek^35hmaL1(;s^X5O`
      z)q^^UGtTJQ@#KtW{}sn~(-3GHDF;Zi@AG^1*>`vI^Y7R108U~y35_B9*m`EI7~ZmQ
      z%7(dQmAP4Roxv-m68Aju$mZc#5($Q*HMtd(g)QWBV_lqg9m!W@60Hman@ek!Z4A4W
      z&JeCq<P~Ar;)O+3h7Qkvo#z!#xXyiZnt{zQ?4T(;X*qJ<va5XCfjRN#*Xtq4&?*;&
      zH#o}BTZmoK1W6`^BjglAU*<oW>^wsv?=J8ZD433R>`bEtJvutj%g~Zhf}I87@Y(9p
      zBVL)SW$i4uC5mcMV0sS*6DknHNc>cB9j1u8%3Q8j?zzfnD3dL0-b<yMNZ}CrlQ`V8
      z^GdB_07odJnZGm3Ft`<ehVHs>MQKT1<kb3H(|~JQGU=)_xocIpLly%~EeP$aLrrIa
      zub9r71MQ6&mE;$Ny+Gx>TUC<I#v;R!jJbuWnV>)NPmzVc*|aaagUm)%3friSk~Dp7
      zrNo~|I<#IArx=EPjkPQd)3$lpvh(iJ6W5{8epf;@!~Xj9(TSMmUa2C2ayXxD(Mc-G
      z3LU74G|u9D66a`lV$Ye53m9i;C+j-1{obZ?b!Qr<%Fe6FrgU7wBsqE!$2NyA`vdAe
      zG{AH(8&-Fdi}IpWrqepEAxpQLH0u?Ho(ATDSdfbfxv9fch#nw*fx2IGtCbSJF4PXS
      zhiy2a0+HBs9A3%WmgjN0n_V%N5dC!ZTcBYZ=mUv9q>!eO?exvmpm%hrZvy?+k)UtF
      zE~<3W+c~Of^i1bQKBFu51>GNf{T?;uSMHEs0egLt`J;W<M^D-b90*)a&{NeCA93(~
      z$hZ1q4>z!hkR8O)fISwl8jF&A1F41N5QdwQPh-gpvQbid7a?E9lDS5*B}%@EB}aTh
      zk!R?s#io7ZlRdR+K&oHIgT5LVrMHt%{bLwwvi7&JIZk6d$T1d>ZMjeATE&?t|9%7C
      z7V;CA4EQU-iAgDbWEB^q2j&}L-#08N6)q`-%Y>`xuZ9hc#K}k7`Xe^Z_5blVqWtd|
      UUc-$4{}vr=_?Lvyy}XUYKU=iS$N&HU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ImageIcon.class b/libjava/classpath/lib/javax/swing/ImageIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..337e4046424abba9a50250127e02190a7751dc3b
      GIT binary patch
      literal 4406
      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
      SaLt=&beh)BQH1r9eA92Pgn6w1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/InputMap.class b/libjava/classpath/lib/javax/swing/InputMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96dbcbf3559feff4442b4d21a2cdf23227226f59
      GIT binary patch
      literal 2530
      zcwUWF+jA3D9R5y{W@);mgx;X#RxFU41Vj;St<+YekU%vw6sp2DS?HD}VX_-;`m8?k
      z;FB-T=z~6ZDKk(k9UY#^jE;^oJ~@t~j@Q4!@jJWQZCa8UA9l|<zx>Yc_kG{__T=k-
      z?|%hgKS~M$0v)s3RqcA(x@MFvrpHQGs&-bpq97!&LH?39HO5a)&*}wRLD<Vr8|8FP
      zuNazX+|;H`oynH7%<C1)D3>P2Mg_z%f!2|7$+ESQo!88&-gM{V-YpmUetchGo#C|-
      zXv;VytF~dL85j@<U(qUh$rk9!)I%pT291(o4+#Wg@w`B2q+HY^2%<y921I2|qokjx
      zUY^z~r(A#=GvxyDX++7j7Yx}mhQ%Tmbv8@JR&_hB-^kgO@+EyBo>{BJKr;k-Rj6of
      z!B%Wnu#H?-(NM7oI|O#e9^Kra-cA+k(H7yXUvAzk(0ob1VL2ECx*LF_78Tv9nzp3)
      zNL_NHW&){3-0GmqD@X}MSJ)iYtQj(jAc+o1H?3ly<i^IA%U5+7dO}4U2Luk)q5HoC
      z5Ky&(P3y1`(Fyc4JPn?AGY@Rs^T?)Hypc<qt(CORvHDp~IoEHF8$*_HQ+IqdCW#HH
      z7{DOSJSNaoFm<gWqc5m9ENvE&2PCn^ry8J@$2p|nC4tVm39{OlieorVJy|U$of!2f
      zx$-kK(1I*ZDmbyqW&A<KI9?V|?DBA>qEWV3Y^sjlbz%x~)UFY1lGWUTie{ROTMAA;
      zVhRF?Ade17@~nypj7IP(URUti^6lZII?yZ?=Ww1RH7jFSB)O|D(i+|}jWDN|?;IyM
      zQZ`N9F^ZI=s6xjDS+rOjHckJO*X9ny&&qUpUszJ$wl(q!L|h9Tch0lD4l<_X%GF9i
      zKVrz6qjlLpdu1m2s6dcU6W={hu#WR)-m(Ei`0$!==KQ=lO0{@N@x76&0~`g%ro=t8
      z-*(bEoumNY;|L*#F3wap3EfT!A@2vTz?;kra!iP9;tqP2uwD+y1#Af*n|g?LF8h|C
      z${{(A$Fiw8ze^9oe4pd$JmG5SKmprPM2xb^t~=byUROEWh288MV8$Lk0nX!$x=3y@
      zTjn23K1ArYMDdVd7Lh!250BqP55Yt|Y<mMZ{Sn%nRcZnIgE+myeJAAuEONKWxJvF<
      ziQpP~ah=_6;wijQgYKY@?x2TG&Ytwp?PIo!?j+Yz)ArRWNhB++*E=QO;t9UZP475u
      zy4-Dkn|7~_V4J7C;%WaBsq%`xVJG-*-4i^7XS~fr9<p#Ec^7?aJ@5hdd{_e{>;nno
      zS<Yl*UQu4H3FmZx&fuWSvsDfYcuruj_Y=SLMv4o3%GGB)_|M5{uBJt&*CN399z5@~
      zIP5!i#N!%u8>nuBVS%+WE>On%wEAKV|ESM@1fyQTqQ}4AEx0W)j~Bnhk&IjTDF2xk
      zkO|-cUYQds+PW0JVUKTF@jJTa`x*-UUY|BnIK^*BLZ0wD{@{Hxg+=6P&dH4Xjck>}
      zJkDfOONb^@UtsD1v;`Ds5f@rl(#PcgLU0!a-b0g^bEkx!m8SL}`+)bNh3}te?w<+k
      z7Xtj1mi~>F{+%}cgM$2t4F19i{EbQc<B&->Bnuvyb(q2o43g+3jagh`<w;hR1f|(c
      Ir`P5G00h1ZzW@LL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/InputVerifier.class b/libjava/classpath/lib/javax/swing/InputVerifier.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c870f7361c40880f2432dacb2c16b85517c3ab73
      GIT binary patch
      literal 479
      zcwTi-O-sW-6r63+#Kvg-tcoXZZ3Tk}f>yi~3QE+263|<cu69eBE%~VWpS*Zc@Zb;d
      zM~QC}6?*6%cINHQn>V{(-yfd<_OW52!mu^;C;pR@K8pCkIg7`6=J7<_3!a$J8J5(w
      z6Zv#`6%2WpF&HNz7TGC-)@*qUdRO+j1r0SDRTvC)SH%1>9|b(Q@q>snthh4tBhOES
      zs(%mlY#>sGZFgpX4$Yb<{!Fswl<vGMM`IcDIP0|TC}ld3dDOoZJnHvkn5PzKs*Od|
      z8EWC5mSJ<23xjnn^CaXwQ6!!UvZtE#9rDzmmPU-8O1nwb0U;x-w%;-LN~8jdc8d@=
      zgpMQ36SGSZ;R4jpQZ}k7J7H;bOdYDnXz#vZ`Q_iqC^|0+mqw{5T?)2}wIaZJp>O;E
      D*<E8z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/InternalFrameFocusTraversalPolicy.class b/libjava/classpath/lib/javax/swing/InternalFrameFocusTraversalPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bef033ee96338489532d9064cc8c4a77b4a16ce
      GIT binary patch
      literal 624
      zcwUuIO-lkn7=B(|wKmJrvJQ3V5@ys=&_$z*As7-t;(gpkn^<>ac2?_O)uo_AKcF8K
      z&8#9CQZ$G6Yo6zMKR&<SKL8wKD}w~#@SY9WqZ1B=-*Xzi;?iecU9vu}2W}L$BpYxU
      zGVeO@g!`0%Mc6SEhYgi84?;+v316slLb9~qCRnxLmfJ{TF^d$^gj`ej{3_~qxNNbG
      z#|imn;4-hxq%iroXsJ695}fA0Cae+)J+2yh0>Qjm(0>Sg?kmDcX-4RBMya~roGdlr
      zRBaH}vdE(_620JE7I|t)v|O6z`HJby<a{wgs%u&iwtpLhVBZ9hba`EvBkcXT@R1R-
      zcJ-)9n3vFzKC`wNojKZ*_Nnq47GC0STibM8JjIf>*%3hdW$g(o$c@PrjZPSJ`QR0+
      X&p+6em|Ywp#%vR<V<T=_jPaY_*3X{g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JApplet$AccessibleJApplet.class b/libjava/classpath/lib/javax/swing/JApplet$AccessibleJApplet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cce1a78a3a7f983e91435408ba45f8b93db24289
      GIT binary patch
      literal 509
      zcwTK$O-sW-5Pj3e#-`DJSzC`{MQy?8Q52yRluGcT^uCRYuB1uHw(8&VAc6;ffImu{
      zO>>ckf!Ue2@6Enpe}2Ed0i0sTMuD*ZEMCN$r(ad{=-muvvrx{vgCLMvt4Sy`#D+!K
      zGgMEcfVaY20)*21N$Kthq2=d{K4-#(iq!m)&^gRy9E}OqFn*9_5GpR#P;yYjh6@{;
      zg!WSP-$yE{`YMvQi|Irr_ktY}8h#vza4ZsK`V6#;LBc`a<ExvqVdpMhB!RqAM(t+!
      zu~Bn7iXxc|L!q_QHrj+{&R9ZyWiWPmy(0ev)oNx(Q^DdL*ZC}ScZLE7Q0etQ;Pm>R
      maNoHtpvu`vuSP7qMvW_%MNCB<jg-?&^A=humpHc3f%OMo0DM>g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JApplet.class b/libjava/classpath/lib/javax/swing/JApplet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dedd9a3f43ac90739dc575841484cf62f4cf3028
      GIT binary patch
      literal 4021
      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
      O15Zoi7m>ymNc;mNEiWYi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class b/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a4d39ed30587e5e2bdf74925715b7b85daf2688
      GIT binary patch
      literal 753
      zcwUWC+e*Vg5Iq}XW80{0wcfQV_0~eGh))%v7DT0}X!TXnxadkuAW6Oal?o#G;0O3o
      z;%o?LY(QUTc4p3*Ig`o9=i57gHOy&H7#6OLTjRd!-3j}$y1(7=ea9}=O_O_`Xj?qY
      zXiyo}e?seR&vy;e?_xv?3<>{Ac*RwQd^2WLjR2d%7XB8)*m5jl<%~gXI2Sw#hO~}e
      zBvR->zYYxp4238wIzAu|HigX(IyY_ZwhU6pkZU@oVVxPSka3t)rBH^YI1$}ngoI}=
      zx&NI%c4U*q<&}_cgcV^4|DhVi)sh&&n1)e?`M=RR#xX&wADy1;o^PMFT89S=#s7?9
      zNS!zx*W^1wiqk{w6-lLV&$hYSunf=Ro`wR$P|WJIXV>zWqf_+IU&JyQc@KIiQ0X3h
      zluuH$L9s$UT`IpIRVu$ie+oc@WD^7eYRHh)gLfKP<YYSxVK{72Auns{GxCqWxH~_%
      UYRFYE8Q3XIlTQWg8O%cc0^^OocmMzZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JButton.class b/libjava/classpath/lib/javax/swing/JButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e58fa25539057158a6aeb727497d3fb46766ab9f
      GIT binary patch
      literal 3347
      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
      DAmG?|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JCheckBox$AccessibleJCheckBox.class b/libjava/classpath/lib/javax/swing/JCheckBox$AccessibleJCheckBox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12a30d9b03c2697bf8b607fb53ce10458f63b144
      GIT binary patch
      literal 770
      zcwUWC+e*Vg5Is|4V{6pb`~5}{Yr*QHD1r@&m!haee3KZLb~Pr@q+b3?1rdDk1N<m)
      zHiTLwqA$BUXU>^9yR+{fuWtaBF{2|v$X{AF)?LxRm2S1TYu1E)Rr2m~8@4TcU!FUn
      ziRsV?%irh~uUd6PsSyO8+bU_r3CW-){oE2^s2tmDl__h|mBBh;bp97k{)C{J-i1hk
      z&}pC@$u!!~Wk5$aVe*Hr)j_E3DN9%EH?Ge`y<)LPLT}l#E$76lOBF|;ro0jg@h;+?
      zh23YXBKXQ2d8*Ldd_JmSMH%VH;J)~sx0=ErhII@PX8&dz7{MqZWo~bpduOGCQ$p@P
      zO$g~@uTi(fmQ>cdo8A|dm|*O<uBe-i<@>_dF+~`Ny*{BY<^eFn6KUfwMVX8m3!f6u
      zcq|=^r#M>SIKg}8Lg5+dg~AJr$B@*+YdTEruy6|*J{c@xDzfNRCDDiesLUeoDyKbR
      c;GwBchS*_?R*SR=jD_nsCc-{SJ&9>(p9*KeXaE2J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JCheckBox.class b/libjava/classpath/lib/javax/swing/JCheckBox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1e5047c61fd75c747421298abbbfa3521b644ce
      GIT binary patch
      literal 2782
      zcwUW_-%}e^6vw}p1d^uPLIMQ}6ro}X0UGO%T1mks0ZNcU<d=e4x`YcXU3Qt>r3Gj7
      zK_9F>`r?Z(>T7j$M!>N%zB=QBkN!E1=iXhH{8+|5WcS{^=X}oZn?L{g?RNk-U`9~K
      zaA`+<q#mU0$C|N~p3ZOc(!-p25J8yXa>dc2xwWP9+`i+OMg$EE-R`kkDskJ^)-_#o
      z4%1n0r*noTn_HTyFLTS*Ok=4q&cLP_F62$ac2vVzR`q>ef0F)t;~*0Li=i(!H$Ofx
      zzgEl^W)~;M*CuDOi);C*?Cf3I6zAuP6Z4BJ42c<GIIXMX)q-P@bD1a_8RF}vwZW~T
      zsu>R7nABB=?5#3{HAACiC^@i9o4mQf&w=7r(26GVrb0`cv@5tQPU0n#J{eBd;_9TP
      z>wJTuaYi%v?EdaLw-!|yWMalFQH&}@N_+2P*xA->hPIi&<YpKeZVRWzVq~sIK{t9C
      zlF8b*D)bBFPi9pF(Uz<@$d(++Z)RXQh7kG$?kZVO<yVH5AX$n(Sqqm5(n>-rQG3eJ
      z8lWQ`irQS~B}ZiFQa~7z>+l1|M^qe3ME`Sz@5b08^7e{?SMeGVZSG8&mi7@<OVzWw
      zwq@*6)yQJ9AjBDNDtH68WIsB&@@fkiX<XUj&Qc+-tF|q=v?VzZ)MK|9V*k}}slaf4
      zPqoxt_c(&Ls4mq?xqVG1bHeAWf>DgbkjF#>WTUBCR>36hGDIGUshHbjxK^H#x%C}N
      za3;X77{*W#MIVadZHDHdnlTs^BKH)`VovnM-X1q7^x>dF)qL_I$cVvsM?oW+1Z+XT
      z78$xIeP^l&!DR*SVuTvRG2KIQP_uKjgG$p$quNqkA#o^5_<@2Cai7|9Q?q!{GWWRU
      z9Ok#lDEG&qvZvg>H27nA%MhAMe0n+M#b}Fu9Pmng_C4l_$_$hgY=B^KwU*TXoSX<K
      z2?K!_L*J>i|1E}1XrjD33>}s8cY2|SSYr$3zE$FMQ;~xg{j=*rgF3um7~GN_&go`q
      z4zPq?iZDdKdU|#sf+(%e(O*R!Vss-axZv+E(vMn!)?yV$f=-%gH%dE3@AIk95n9Bf
      z?PsabAw@&<yifQw0zN<|?G#rWUARJT`cLsuHxZU+(G+8$6TEQBiP0NWhX{BXBU;9|
      z>M_PhQph%>22b!}H9;d!b|j(ImGTH;^%AZTL$LZi)*bSv&h=+7$RC6JG0SLCpB6<D
      z10F5q(WZ$O@@QQFG@EFSr1iLRH8imrq!QFg?of@FgMnE)AnxHAUJlCw3)=M>F9%tW
      zmmd@DlQX<@X_a24Yq>)~UVcj4&;FMy^5AlNJ?<89!}M+@?v)d~oN9_4<3=iUjMq<1
      zB&5jaWa0^-zM%b=(p1V-^-VSVrkXudVkLqRGx8=zJfp)hX+S8E`N=oZAU}Oo)}J8{
      z92S2Ap6ZlD0o~6qwvsx*onMhV!Bk@U7&EC~P&~%`F_x;SUzbt4{jPrxD;_oNIaDtY
      zPpg!_DO0ZZl~-}gQ@-alP&}2mDD*pz@qViF2*v6-{+6cpJ4(j)W!)6_lNYBMZ<2mI
      zfLc~{VYZ#P>wlmz^$eRL>g^+}i%+L<x)z>NiGCo>AIn^B_bk-mp?vDth3Fbaw<Mz(
      G4F3yH<0D4^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.class b/libjava/classpath/lib/javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cff8ca29dc0447d6768dbb3c9f4924b38ef55587
      GIT binary patch
      literal 894
      zcwUWCT~8B16g{`yc5PXpprRC!uR<s!R31r<iL4llRTG7VH!>^}7+q$Qovp&Z5))(M
      zgU`m_WQ=z<t5`9MFLUS2J?DPTw;!Ls09eP8ivnTewRkH|Tjrh8N3CuDSO#x4qtj<n
      z_dAI^X*>)9X^c7u<t3jBhtM35|4a7kjZiZ(RwC@l*r-VFb{-LEn=tH0+9X0JJrVY0
      zY2^FY#lzy+B%z!fE7Q0~nCa#g*=Fi}rB(8PFu!~Sx7i~&esm}+;EFs{F;qnn;~qR*
      zC)EGa59mg_O3UZ{lLHy=2=0wA-i-q8NN`__vq#6)O=#y=k~doJXzWNP7mSyY4ZO76
      z%wmenqe7LOwFY_Z3Z^ja;to&aYPN^Fm?2dBCtLp0{mmD9gvS3QAyi*Q{Wy@1l`U=J
      zQV(l32*K-UEn`0v#z^C$L72`R3t=i}Fqq@575V!XP)7-6MsA9()oON?>D}Q~4zp*3
      z(FWrJ+o6@!j~HE9{e-delyrm7s&!ErB`V@3V~<5l#RP7#CEUhj7G{mD^*J9<fB#!=
      Z(}QY%Xq`-3z-)TXVLr`c)eBgJ^Ao=H=hgrK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JCheckBoxMenuItem.class b/libjava/classpath/lib/javax/swing/JCheckBoxMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61aa5dac7336bfa9df441a912d7d00dc0e2b8cd2
      GIT binary patch
      literal 2645
      zcwUWETT@$A6#g~|38Y7$DNxF#1*8&AN@KOH*0fZhQiFl2ffQ12hjdSRYB<rH6NMk3
      z?~YpKx#RT3adbw=SV!NyOrQM+{s0|k`s%p$KAV%1OR*2<?Au!3`qsDB-Vgr0|1*Fy
      z$cNF!Fml`Yz}QOIADUJnu{eK==ii+xZ7p%Dl5+TF7(s@<I+NN_h+)uwlo9{=l4U!F
      z<=A0#FdTQ!jeMTlwz**zO=mkXt5!wM&|~wmX%w@(Y?~!(HFbr7Eiyc@50f>D72bY#
      z?cVnFuO2>R=&YFYMZ>m*VKgn!6GcPBcFGhy*@45f-<ZW}ilLq0916&C4Ba*_^1Q=u
      zUfZ}$qs?&Sh7Zf#O)`WonwIIzFa%;#S%%<z=_ZeWvewX#A%@9VGlR5WkyO59C53Bu
      z+O+s`Wpjg<R}7hWG+oM5-Uek)Yqc44Zkfd9MEby@5VO8m>o`G^X8X$2oq9fXY^9IG
      zw;YC}^^mi9$CRKV;YpG3Q8Am+pyMRf!RC%@LNXa@(%T9_c%2sh35M8X36>MA`dgUh
      z1e*W`!+4fDr?Ft26zH6WUi5|W97DWL!<AB@P~>wJ$0=D8{>2j2v>3s8ObVheXh`BB
      zLkFcNPZ);lb@6$TI3nhZhA55*?-w=9VvgYud1q9Mk-o8<tKt<6FNtG~ju%S#itQF%
      zD{yBu<#ly$Y^phPVnkLMw}q)2b1p@-5iQi>c`e-+n`+V2g2%FkYq-h~Cbtz?d#%jh
      zuW;LCMf~40%EqP}S_q!e@S1SwEr_D;UtYSRZs$xX#*e<|$}}nDx~^dj>kNmDW~9l-
      z#0ldD!-WGc$wbYo=`4aA-V`nQ7Q=Xbd7CerXvRpUR4M2Af+_0N-(+)IAdreF%i?8O
      zNKPsa9l!u%q(lI1Xa_y97(^#TWe(B9+y;%-UFi1KJ@iqB$vJg5ja_s`7n1%1v^qyf
      zjK;9eSQW><lZM0ekI)D#BSiHcp_%5I;W$pvC?G}^#AQiFLd07@tP#Yzgy?t86oi<K
      zVVpn&*pp3Q@m72`2rT~yunC#A06VF`7RW|eMf573(&KxG)$qC~5KtrmH%UOthZ*rO
      zBZ%Xa!W>eVi{v3ZJM{ReKo!%C47Z5MwnQ6s?L4#&#Zb&d;%yT5>1JFu+yeI_!u|Mv
      zaYd<J+=RmYgsg)!P7~iM&gj9P@XRjG>ObQAdKJ&_;etN0i%TOr6gjwu%X(lB^R?jP
      z1PXjgvR@_1KEpA5PJ!>x{uh|Umn6@QB&EASJW|shscDt0m<f8K-xdhXr8h0*1p?8Y
      zZ@r))xpmjqcLA^OUPel}CX{Qt{yi>z-QfI<&$(SWkCDi8%6Ue$Mo1r`>>I`Yfqd@!
      zS|a4-6_PoKz^@>!u(Ik7jS3<==%L|kK;Oes<{q`4Sg?#3Y6(WATE9?9f2CXbJ2lq>
      zAKy_g*;l=L8kcMOYE<1s|L{37<roxCZj(w?yxu7BpDk2kSivf4O)1U>h<^4rbW_*l
      q)(Pm1U1Y^p4bQz!e^Ew%lRp3Wa0e7_8{U@xcVGbW#mdpQf#84A0tKu9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JColorChooser$AccessibleJColorChooser.class b/libjava/classpath/lib/javax/swing/JColorChooser$AccessibleJColorChooser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f99ba9800c54f8e2a3db9e32aa3587b3aab7bb54
      GIT binary patch
      literal 865
      zcwUWCT}u>E7=GS$+{ty!)iOWRv`y3nHwlC=gqRGKrG;Hvf-d5?9`wX`PRyCLy6qQL
      zP=OcXb$_FNhxE>2$hMg3=Dc6e^M0PM7pG?c*0AWKKv;VzPQ;s<eXaCiZ8tQLiNhmf
      ztc)uUI~{4Q+K*(9--k!2{zf}~Wwg{uFDG*n%1l!tYRlLvqo3|PBG4{jC^Xt8LMLqz
      zb!Gpz&+oq1*3Z`o#pFoY%3Z>AJ-59LhCNVPC7XoVrN7{o+XOE(2XX-1Nq`atOX$OB
      zfB@IH#2?(OZATogD=nXNkN0J~CwMBtXx(&p6u|?rojJX<VZy!qHuAQ~V~iZi<TBbc
      zX~M;&<t&%TA}UhJ+gdMfV*t~*>0^el@Naa0S<IzdZ`2#j7vXlJ(b{SfD*sc6P->ZO
      z+>wu!TSCtat7!s4u%oq%!$?>wt&a*}GIt$>@tlQVp3l_BKeT`;^rOg@@2o53a(X+b
      zdwjbgj$CEyKHCMBgDcff7+$G<!N>;(y3TLOg`RVwXBcBGU=l-d1LG_S6PV1>tg=jF
      g-bYNm|H&^p-@z|jFXI+)%f0hhaCK7lZQOzP1Eg!<^#A|>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JColorChooser$DefaultOKCancelListener.class b/libjava/classpath/lib/javax/swing/JColorChooser$DefaultOKCancelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfb2da1521da0212f1c34cc240316d661a912d7e
      GIT binary patch
      literal 769
      zcwUuKT~E|N6g_vg&~B-$g2*@c!2_&`4dGEkG({4$0VA7zgJiZlutQ2GX}jRxA^}Z&
      z@CW##h_|z%62OFqJH7Yzo-^m%%+Jg3KLD&^$%P=S9?28=B`i*Lb{Kw$OltC|XH22;
      zr44l;`)RrJF_KxL(pVRz%2e*cAv~;LVJaE4(>YQ}>0+2LZ@coe4AqIs%J5xMYLi_7
      z3Bz42Q*%g|h_79{VcV~H;Em37xlWi`zI9@yO>iR9RX%EX5TK4xLT!1aT?cCl;KCy`
      zVx6h&{&7d;E!jyGVJtR@OxrToRsFl^ls#P#*5Z3_fQ2@swf0Hn2PQvOUBco(@eTLy
      ztDJ@Vn8J*UX~Os|&H~I<R-B&hvNYnD`yU;_-!=U_QJdQOyC(Zp1tbJp8EcJFSrn>p
      z@tiPyr&Ge@9bWO2H(TQv;t<t>`SA$O>+ty;;cAm>!C$}m4MFqe1sZ2|<`JKxjD`3N
      zN9>|5S{UQrlfg8`@ffgK#mcTR!T$!FZ|!Y>*E~n#D<=Ok`c+@-!4>=euz7#jJj`L<
      Sq8BV?ksZKlB|O6mc)tKH-n9Y%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JColorChooser$DefaultResetListener.class b/libjava/classpath/lib/javax/swing/JColorChooser$DefaultResetListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..046775252a8d71752bf8c844213af317d34a42bf
      GIT binary patch
      literal 876
      zcwT){U2oGc6g^JE(q@M4qYTQv_!y9;5`kwB66!z#MSuqCyPJ8Nr!1Bdx8)Ij64Ev#
      z9{2(LD8#il3QX-3C9&_l=iGaa{qxuN9{`@98^B|DbSOsRQ&Nppv7fx@>0Fn+1Fb7r
      zZf(mwG0e@5tfWa*Wn>}C06xQl#U!~P#Jj<v%uIkehIJPeW0S~{EKKquGfEeKfDA!)
      z#>=pp&TRUW!B>Sc)FhqoxdO_}J+rCj3>(oU44po4^z^O_QA3ks9t#Y$sMBwNVTmI^
      zJwyvD0j@K&XYz2|z)gnwzBDdO*r;=HCQEsXqk)j2nW{p*9Ucv2`B4mVNq|&mBJYb*
      z+5LIYHwUU>csyIdRO3m0Q#eQ8%W_YbM{<{8GfJnL{?e|=2&?lh$31M3kZK}iIl8FB
      zdd6tDwafSz!Vh{_X7ZJC>i!$r-6ID6x}afuxu_~hDqGW};5NBdqxT9tdgwgpK6=(f
      z_h)osoW56Sx8o{+rT81J#oZGu#@$mapP>EK)vnqcd|Dd#-VhCMghg+RHHxpCA+e4P
      zz^!a2(uqwsf#u&m=jZV;Q6HmyiaURqL!0wHW8VAn4<ny2a@@xQV)F3NVIp)K%Jyg>
      GM*TNo&(F#L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JColorChooser.class b/libjava/classpath/lib/javax/swing/JColorChooser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..671cfca567e6099aa6ae6e626d46f29e01302194
      GIT binary patch
      literal 8097
      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
      Y+veu$P1pr^*y;;A0WVH+Tm$cK0bvEdb^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComboBox$1.class b/libjava/classpath/lib/javax/swing/JComboBox$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf89068bc0c314fecc07892404b51c1fa1db1898
      GIT binary patch
      literal 997
      zcwU85T~8B16g`)%Y`d;)K@dT~QY!QVY5S(BG0_GRO+gb4K5v(?9n$WQ-6`VFGEq!?
      zFh2XEjCXeH2WHWS-Mw?>+%xCix%=(==Pv--XxW${EFF8N-dQtxD}zDvSyzqw>WMn5
      zv~6SvMYGu)dA#+!e=K}$W0tTUqkZ88QS(KpPDH5Rb%#t6JsD{ch>$R=hcc?PSihHg
      zK!+(0Wgzt<!b<fLPVJD8>8c}<1L2wr8(9Yy3NCUe60E8r6nZic2a|DMgs;5*ND$_G
      z%J)WxUMS6a3TBKU!gBgil{Op7pIj)0u#p%`Ep_))1ezT>xQP`T%Y?Omb6woRZ9;A!
      z^h-4feb!&7)_Q+;xMO3DOZd~}V_!=ZI4GfPW1X;=T7ruWR0ylS3f{=UBotE*Qbc>9
      z8Yd!r9~YaQz;UOE9hLr9Fn8VaHCs<pAvj5Cd(yN#|I6EsArsuE0S`xa<VBI-yD01i
      z{zyeEurKsb9l6*+lTh|U;c1a*UN&D3(#yEq{?F77T0Be^KUYA-qM0fF8)o>)!C~|&
      zNB4Pc5U1Yw2)F(T`S&qr&S3ElXIo{=bL4Vt(Cb);@kQL2s=Q{V#oxKcIhMX+b-(@r
      z?)EwE{1(d_g0+dPwS}TpjRi|d(p1nycd^NmSvI(ZYAjld73yfjM^kJ8oW0HO3@hCG
      E0bQl|Qvd(}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class b/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5dadd997d48d4955f57fe55f6a3e29fd54e7192
      GIT binary patch
      literal 3980
      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
      D`Kp9H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class b/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e3691d137bfe895e8653f03d8e2addd00044d3c
      GIT binary patch
      literal 1348
      zcwUuM&rcIk5dPl&=$5iTMJfVTP!ZaK6j2c=7PU&UQZx}ICSKf@CoI|SCfh};Xa5jQ
      zOuTS0Q3%F(Ffm3B#%SWji+_nYZz)8yC3<-KW@f+l&Ae}BcjM>lw*XG!f(D6Uc*(qP
      zR?_7Mma~w)nsZA9_mW%bz0B{K%eFtwAI@@{7k$fhW=zLi;GPDBAu3L#ZIjMiFD%h}
      z4IzePZLS(53?YBfD)$aEwC8J{$`EA2ax6c~(3z-%NzO4SId`5nfT2l;hHwNjT68oZ
      z${;5Mpe1iP{MvG<z`dJh!R8FDdADfVbEanrzZz6TK@20cQ|%!LRoYVCj!n59K^VFd
      zxm`rtJTp|Rok<!I97Lyv4u)9Gd^);th;&}y{#HIdZ#eV35?sn?#9{Pk=w|4sn?%PE
      z9A(gn;fl>m-0?5^lr3Q-^M5ukBSh=faU6XNVc(tgJ)&c1OZ<-AiV`+~l!oN4A=rAS
      zV*rEHx8kDdiDU{T%ZXZtbfm>~G;tm4kx<(VWMVmjn?bz{U3(}-?Je)tff=+cs@LHa
      z-|%@!^!2Z58S?dp=l>g>oQu$$WyEwv7$URovRC9&mYAOA9fBc2OS&75!@Znsmdl*R
      zs<S>VdWck}rGiDHVutDSlp%>M6m2B$G<g#3k<`E|=&3a{zaUS-K6-`-1N9AB$<~EU
      zr}m?bcIq|`R2eo29iqLMdI^0M?b*0;cT{<fp23*1j<|$X92-|VRCyKsT~82-DJzc^
      z7E=b-af0FL=6CsD(D7%RKctnN(nhEtsP7O~-y^DiKwSNZesu#W^2gLq$f}<)t$x8R
      z^($_ZZ>rydYupGVC|0i_tYP|JvA`O^DPj-f4vBJxWNM<B8zoCYob0n0BN;R3tH!3c
      nV^NTt=c;1#5rZtGOAV}Hytb55uqJ}%d1M1wY2fIyorLrYd{{pQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComboBox$KeySelectionManager.class b/libjava/classpath/lib/javax/swing/JComboBox$KeySelectionManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d0cc93a6898b3fcc151131f58b77704e2f84e39e
      GIT binary patch
      literal 271
      zcwTLey9&ZU5Jm6!NKAZ!Sld`=W3aX}Ao#+<FWAH(MAlu%`usHuKfsR?H-ci}6f*;J
      z?w$L1-tGWKsJkc-20L*Qm%yA;l?3xp?;}0Ym)?S}8<rd&Qms}(iG(v3B|<C511T)L
      zj&}A=Xqpc=)tS{1y8UqZYx{9s=`G9gU`Fsa`k2K$O(hc=-?zhDMX1e`;w+TH7&b1d
      kgwEfTg!Z4D4uMcaUSt!O;n=MJ_uVV-?DUZ{K5CBl0^27^6951J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComboBox.class b/libjava/classpath/lib/javax/swing/JComboBox.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..503032ee53d75ca70c8b40a322ef9a7ae0052e6b
      GIT binary patch
      literal 15989
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComponent$1.class b/libjava/classpath/lib/javax/swing/JComponent$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93aa102eee718175f31e0a058256fd06d37c752b
      GIT binary patch
      literal 586
      zcwTjp%T59@6o&sYqXWYzBPt?z*|0!N1UAM*<A!LWK~2=KFVM)4p@VZlU(3Wx;=%{;
      zp^T>k3C6&p?dgC1e&@9P{`vd@P{*!;1Vg^hNBp@OJUQ~AdfD&>Lr)4Bmg)v{23uvT
      zE~ng0yDvJSfklSwRK1O)<ZV|lEQUQNDAkDAoQ*st&xs?Q@RXrgo@d%?G3X7iD^g%s
      zvS1)-LPN$v3O0jQR)$Q|k>WZUw1s~^uAXgr9qzWc@2LGm)KyCig*mlKb!tiTBWYp-
      zn+Ea>x!Fz&1y$Vi#fZC3mxly5@4U$Gh;v6(%1pfn3c+AqNGbe=%Y#5r51BLBalL@B
      zS0e0rUDW7$8jS@o+g7)vKS|I?!6Y?J(Gl&HVpjIwU{yY_{1SUslon^`blOFhB8y_B
      yu3|0L*I`d6hqS6(vhoV+9l3vu^bkh+@ed<8VQ47E&Mj=m-Z2H_+@V=lFZK%-9C;1^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3ff2403e64b1bb16a6747b1c89b568f490cd449
      GIT binary patch
      literal 1529
      zcwUuMTTj$b5dLO&p-?NV%SAz!n<#r_!7I4NgftQ~D;hDpm+lctN=w?Zz@tCIUtu(g
      zi4Pbw`rw;JjK9V>?N%0JK{rh^=S*k5`Q|%w`uXSEJpfZEONbHX*0h?oU2?Y!Yo&Bg
      zwbwUnOIY66tgZ{!HI_{g=~QjY(+o>E^O{vPg(D$BNcvbMQ)8qD%WFdSB(xHS1FyE_
      zl|+p}N{6Wx!}SDPLaVoGxMNd<Vx<W>Wlp?hScZ3-Fqvs8GrL4csCHGfgK%1bgf<y*
      zbSh{^k`T}M0i6|Qxv;suES$$0=Mz#DTi47b%`yCa=uG(J3G>YmI6+D7szd)BH(RZW
      zDq*zVU6hD-YW03(oI}5aK0^A$PzC2PKxkVLp1Nw74Bnf`HqaXqNf;yy)_c-IwuWhV
      zJEaD98N(QrFv80GjiBHH#t7Y9>CbM(wnxZ@RgVV`L(6Tr#Ak8D@6(o%K~6%JkZ(eE
      z1$h*h>=VNg4;_0$INpxB%Ja&{I1_3djPIi7FkJbFr#{dT9)D6=0;LH<|2QTB>8wbU
      z+<YXu-<axc6UP5j8oqLeqw+|s+cke!<VAba(Z!tM4`*ki`3WDBpxm{Xk7{bJD_jZF
      zJOI%OGSMgv3H`?pFGl!2#rbUkC6oTO;$KZ13BFb`dr$Fh8ZmwVIhTJ8CHDp$FL)Qj
      z8Q&LtdCA$&k>ZuYIli|G-E0Xx=nYYxGG>D9NPZV*?-xFyzp#(=GjtVpF|?3-1toQn
      zin|zZfDbYqV2{DyA&GqkdyhVRK$`6^J_ZGIb<nV&zbaxPXlDQ=Ofpgrm!HDrpvfyu
      x(J4{{oi7aimFawA-~*=fo#`AfogYopiQ#I1eGS*yrg)XX4b1RwnRs;*iC=DclQ#eW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04ef17a8bd7941c81a478fe89d4dc6c6f49594ea
      GIT binary patch
      literal 1215
      zcwUv0+iuf95QhIr+&D?yCWI0WEhVKXqzSFtJ5Uf3qzwl}6cOnC#@SL=u3gzqN^g<4
      zFK}Pr5kMRyE_eVQ3Nh<M3aS!BWLe&so&VdJ+3~O6KYjvO$C{29;ohF;ikD_^XuB`W
      zM>TK%z;mS=7Vlb?3<A65$f3@<XLW)H!fiX!*P#)zieoy0DO;^QX@xoxgt^Eo4ntFR
      z8DK`Th8={`l|CU6?%F|dov_jvBaJExZ`-aN-XW}&#!@bC6SSJwmMIXX4CqLv5l6;A
      z3RyzDqyjPx+m(+y`z`4|6RaoX8lEMbZQ<L>?mIP=JYi#;1V(g_E1KL<_I<%ew+ZvT
      zvQBqyv)d~oi3^<OfYl5|$R%CEoQ_$-VlN}n-?tq*JTgy38@P;lf?nUMJ#TJq5SAMM
      zp{k})z*QX!gvuCY8(2h<+qh%<@`>*qNIyKP?eeT}8*lYXjYg*#`i!go<>?L65Rba4
      ziKsV(*?)A4kcwK{@B)rZc7@XyrJG*Iw`AQ`mzfzPyQ)|O<DttlT607Y$Uw&mAwRrg
      z!pyLmIez$MV}WNc&hG>$n^hyozhfL4k6@a;lWg5Yj2|Ffu6%`2{*LKSY{hU!`J$cI
      ztbT<YuME~G?^(?7mv9dGKIJJhRqS;63yj=(`izU;aAiQsGXps0s5hL&TV@<%3hyFn
      zzNhR{)oKaXm`k`miqCi&!aw1t_ekIa^G}%naRk2<@ncwy^kr1|o8wghH?XRylM67R
      F{Q(<?Hjw}T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3369abda0da59e33168f029f8c786bcd484ce37c
      GIT binary patch
      literal 4520
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class b/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de03869e5a528e7eb091cbb22a0d9bca1ae3dff0
      GIT binary patch
      literal 1101
      zcwUWDYflqF6g|_HmMJTRQnB)CrKo*LMe&hfOi0zFrXUHX2_L830f)4^W_Ky@vrNE>
      zMtpqqM;Y&I8>wkUceA_q-Z^v5ea!y&`SBdU3LZxgV94)_wm2%ehsxS3y)4_Ux3(oM
      zZ)v^ZDch<l*OQiXwjBHDID!zvOh10T?s|@BcwI0<*b~m4^cYfA4J(O5uO!<<SNfA~
      zjUirFmPs6>*b<hxDO!?(-EB=l+}oZ*%Y+O+QI_(aGOT9*!8*7*S7Qj3ZBs@O#1#V^
      z;|#%UuExPIVPFJdZN&{lFv<|CDobu2wCd7%E$U4_BfBA*HQ^}j_ktnsjdB@^)&K7u
      z)e&ea(r&a&(h)vlOFFx@(~=ZP{iU|&+NLrhnCta^I3$W$EEq^3&A@2{+xCIepi~pt
      zTwhmS)%Rt?Thri00~staj1ai;%x_9X$8Q<9t>Xs8H*8bwD(Sd-A*Z{SXUJs-2`hu0
      zujFcDC}KH+I}G!e&dtDe%rG!YckZ$-P*SFJR9l+9&k*fa`9kTT#4ZM~tVsx6v539g
      z6s{}X2p%#_4<8uA)R2)OO(!Erze<1}Iw;T=9TPu7T}G7NW903SuW_+_2S&bdN=ES%
      zlka@s6usjJ0sI6Z-T~(yFwW1Apm@5w4OcPklgDt4WSDOyNl433YkD%rw5IWyPng{)
      zyvIB}H}WT#r0>lRvKwT_if1SUa3Q@w8H0buC_jh6zhHuYMS}b!|As~Wy)TW-?=&(f
      c;Vy|LNp^*-0NwX|#`{>MudbWn0Ujax3k!V<761SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JComponent.class b/libjava/classpath/lib/javax/swing/JComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38faa58d43d11066b04e1a0614fa8bf2e230a52b
      GIT binary patch
      literal 36725
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class b/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e391c9841287f2e53c5cdea6c1378a0807ebc10
      GIT binary patch
      literal 855
      zcwUWC-%k@k5dNlIdr}T*`KiUKU?o5kDi1yo3<+s50UK<f_EEFc4K7@F$?X;J)qlqq
      zH8CbW_y_Pu5#}zJT8tNc+1Z)-zS(bP_UiiQF97RUa*-j_PQ<ymtl0~tk867kX-`9Q
      z))HD)w!2+vtvd4MaM*=IsNN#gP4CQTsl#E)AV?@!87Sd*WMGxiZ+065+9QnDjkclC
      zVMq9VnQgyqXUm_Te<I|<56V`a5lYQ8ahr^Kp|lFO2<7E;*h+`s)XjT23fAEvkFh*P
      zFzLa=6k+}k>Ogc%oM<X7_xrsg8MFoWM3`)vE;k~$9rlx;6Uim4r>aPqB==A}mf`Q@
      zfr-j3Ew3b%M3Pay3P09v<2FYzkFtvggvEcOJv_uCg4ftNeARy4de_?C-yu}~=N&@+
      z(DZ|@e5oRJ#o-RtB0iVh)mjF1Usx-xiwfah+9(LKe;)=GctIolFEc11iyV7y?A<98
      zqOHYuhqpG)nY-+5u%BT&wp#s;iPh>46u-uxX+HCDs>g*+FvB;GNesm-=Gd}6+)v7^
      jv5j)hH<Z2%__;WCKE!nrZU&Fza{-I-I}!T{p2E2ShFsd|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JDesktopPane.class b/libjava/classpath/lib/javax/swing/JDesktopPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1796754c8aa92dd81e74c6e7e3b437dd4a333889
      GIT binary patch
      literal 4836
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JDialog$AccessibleJDialog.class b/libjava/classpath/lib/javax/swing/JDialog$AccessibleJDialog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff7f96fd0b6c5fc80115d25f6552c18863113d09
      GIT binary patch
      literal 506
      zcwTK$O-sW-5Pj3e#-`DJYdwk;wFRR`QG`+vlp>;~p0{zSD=~p=YW-UtMDXAb@JETW
      zX%9lf!0gQ1_h#p@Kfhn!0FJR`BS+YM7O&#X(=!!Lyz2`kf@sq2`M%UzjRUzrY*>UH
      zL-oWg@s?=4hv6I}6p|;U+ed`vAY=3?6V6nql5;|9Ka+7VB3S+CQ5HccxmZELK^|)^
      zY^)O+bJf2+Qbl>7LU}WN8OwMmcq2k>5cwh)iCCF_0a|7|!d}+P%eHx2=RTUozPwaM
      z?Jn>`qvrN13}xI8gw|5q*d)|5#uBPagR#xt^85`{sThN%g2e_``7CmGf*c1>>U2Ng
      pbh@8#-?`19%-Kn=?pSz>3Rf<Rn2IWDDW{(12AV0CI5yCN^#^*vdDj2{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JDialog.class b/libjava/classpath/lib/javax/swing/JDialog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6490589814b60baec0ba380eeba170a7237b59f2
      GIT binary patch
      literal 6937
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$1.class b/libjava/classpath/lib/javax/swing/JEditorPane$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4e5adaa8d8773c390d11e62bea1c46cd90c52c8
      GIT binary patch
      literal 914
      zcwUWCU279T6g_tnvu0h}HPyy`X+L636EFr}gs3ki1vP3xiTF6#4DFQdY}uXK`mgjs
      z3JU%Jf0TG<8l<7D^kH`IJ@=gZHS_z=k6!?~X!-C63kTw}IPK&oO7C@E^~cJj*{;yC
      z(e+U#L^j+>1P9-Z4rFY6R0zu#MMj>Q&QQsd9TBtm3!!56Ro>_lnuDV3yNOWx+<&c1
      zk2TMfR^|nvePz+skWk)E$Fd5-%@97W2Pk1SL=_RC)U<@zfztBr@!?2jAH*n;gxVmD
      zMKTnbvi<}t+m;DSg|)l3$2gP1F#E}Lk8T6~L>@}bU0n{@<@9{qC9GYFeaytsksQ0x
      zEH6MEi*|w~!pi^3@NAw;2#duWLhwF4&SJTv?2OTcc^+92A$+N|%(fGe=Q8)PPT0KK
      z@_jT2^#U$oW}3~{(ARO2=1hDe&3-x#(Zm+>_N1A5I;+is{Y@A>Jm$+T@wo<yB75ij
      zm_0sK1dQHb>nZyd30m#%2wP{E`Q|vcEaoDt_U2GyD`eZEbGYsBJD8tjdCpZ_-k+#{
      yYM)`@>%SxwEAr|t!ThB7c>-%KW5u<2&++eLmH#!i*06yGu1Pp#lfPv~AN~bWSmTQT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$2.class b/libjava/classpath/lib/javax/swing/JEditorPane$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e31c32993951a61c4ccfb8f456bc1a2329607c0
      GIT binary patch
      literal 971
      zcwUuKT~E|N6g|^cx?4x66<J}$4_swggf7GflQsB2Fu_zMi}F6(oj^&QlD4Zn`XE2Z
      z1S9dmAK;HN-szI;Vr;~R>D)Q@%(-WJ@6TV~e*joR+lIj~dni7LV?X;CseS+DRzJ#<
      zbVn%JShry@xH|2}f|74~hce7<OfYyOv^!8r^kT^{ksm}^V~wE^lxgmWeHkR8FVhb3
      zpG7LlHy9S1m$|UC$6#$HeOU#=H4YmU2PURCs&E<1rY1}Uk&>?m?|U+RJ9Om*Nhsny
      zkw*G_4qDnOL%p=_I{7oxfpSp8tc_a?3;(vrF^4)sMTDWuia+uEaxW_*bt;%AvqwbL
      zM(%Rl!~Ic#Hp7$uDBvrZ`|r9zr%GB6IOfq{n7o*B@CZ#Ciww0AUF~6sp<7zG6O4vq
      zH%}=$jtqzBFNp4*vzrXkP`-$CkK8fMRZVB$+e*oFGZtAUseR7qiPZTm6~;+M<zC7B
      zAn9}5go`%Kib?AVnCt41p~*LBRpAhNm7=F~)`-(u{tDjuhRH7l=eov<4Ba+9!J~*%
      ztkD~oE^u98sIm>K$kkh?;AfceZV!VydOO9!86N&2YkbC>aWW=bKbJMpDwxZ7OuI)>
      RjheDTyJl%*mA)3C{%?N@>mmRE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$AccessibleJEditorPane.class b/libjava/classpath/lib/javax/swing/JEditorPane$AccessibleJEditorPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9136bf06ded2e3c4c6740860da8ce97aa3b83294
      GIT binary patch
      literal 999
      zcwUW?UuzRV6vfXZo37oiX__W&s`XDbYMP*{Z%Rdxs9;${*wFWBGPEPx*|0m&^i9QQ
      z@uO5w3qJTN_@Tr*+of)30utEl%-r)k=ib@he}4P~a1SjT1%}(N`5Qj=lDAUrdE3th
      zQb+MCu0-=mzb}$R?uH__Yr|r=pO<Jc*4}oHp55qR7%8E2UOI8WFsJur(!9&C=Fjlm
      zqN0aVN&Sdny*0CHbBDp|MguVqh6NWT%sD9HybBv;hUTPlO30M3=u0JDjt+K3+~X9N
      zq3TC{9`5j1nsv5mnbZv4tTfYSMV&PEg#LH-R3!aa4z-LFL#?%$;=GU(EYLAAw@eEw
      zE|yVq(7**7YYeM1OkG?=jiF2y-AHL_sdqS}u%&^qF`b;jGt?&n1)6IS2)dVcmS*hn
      z>{NzQA9`nN(~KJ~F5?P$C1#hQ^}k{UCx}LIUp$v)u$5dtcMO8TeW8?yyCF{!K{KyU
      z9W6HK){FENvr5HWJ-roS(bb=${drnFK!JY1Lc8+~PP=mq_X{lxSfr<u9*sz-QK2`N
      zL{y3;R1MOMKf?s{Z)%s@$Ef?AU&Q+g=Q~!9I!C9tDmer12=|^u9|-d?#jc!4Gi(WE
      xtm6^^nVDT?@HjKD$>6G=gPvskM6%C0n0*Q>;2N%{;%2J3ft#ty;2XFF>o3v~@nHY}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$AccessibleJEditorPaneHTML.class b/libjava/classpath/lib/javax/swing/JEditorPane$AccessibleJEditorPaneHTML.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bad4a42ed97806ff65fdc9e4a69272ffe3e8666d
      GIT binary patch
      literal 738
      zcwUuK%Syvg5Is|4W7BA(*0(N%BDSJcL^oAIL{X_CSOk~1@lvnUq$H`fzvAA#f>KcM
      z1N<m)QUX>X3paD;an6}X^7-}l0bmVtIueAn8*wLEMgLwowc_#ql?q(%OgJ*PYunQI
      zRkbdAvWJzEvJQ=~{4W|I8C)wrw@R2Q$1qC_+ER`Rb_lbJv8en7LECe$WD10|iGCyv
      z^kLA1jsZfZtQ>jTysb*FB6tYGNZGYT{X%#ujH9F$jzd_FYZJdck2zeE!B4#+TLEEV
      zF&}A(sG{mBXcvFuN;<{}+i^{M{2$(7yCJ=R$>+^R!}S6KSqu`4bGPZ)@<4^_SUt>@
      zP@P~NIga%9>caP>uVaQV5!05xN$j?m=PUQ|??RRpo|?S`wD8oNPjR%taf07;Vd)h{
      zVW|W2xeFR%n`991fDBu+>!)F1IF!Q(Mk9$$ZV=YYcVsUMFEBb7fBK{G*rQ=a8VO8v
      P?Ifo7HMmBY#w@gN&uhFr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$EditorKitMapping.class b/libjava/classpath/lib/javax/swing/JEditorPane$EditorKitMapping.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16a82e06934bf81409a5c9ae14f18b2c56e920ad
      GIT binary patch
      literal 603
      zcwUWCO;5r=5Pe%JwWR{$2Y$=J10a!j)_5VBs1;2xBp#Qt(IurNZBhT02V&yEAK;H7
      z&K47hhQw}mcDnQ4o0;AH8h?BOIL5vKjiKD*&-}F>y-5GDes$iJaS+~dUmQ%_YZ>40
      z!GMAWbcVb_*F8?y+fGloF@x!PJc^pUFBl5WG~S9sVx2H#5`Yu%t_T^5GmyqKK)Cd&
      z^ksa;P%HnHnZv5I8T3Zb6&6xhvSA|2kSbT&Ca72&3rH)kV8g&7L(Y-DXb$@w5#IBT
      zmsA|M+-vhts{fx&J${lAL)H23*--VG>nr0iSgl|fy5d4Asr(G>NXaqSm%cB;qze%l
      z*rhX>lZWWPGoeK7r0D)Mn$#WCN4=3{G)-8vX2^RWgu>;j@35<fBXVjZEWahx6|x2B
      w#2G^;C6gXPR@1Ob`=tpDYgkXjb0|_8mUtVKNTactsBB@IR+W%p2Yax-0pEp-nE(I)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.class b/libjava/classpath/lib/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92dbe6c6db0a1676573940e317b4409fc5eea75c
      GIT binary patch
      literal 3759
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport.class b/libjava/classpath/lib/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1fdba2ad82297c06b73aa5a926577ab1b705122
      GIT binary patch
      literal 3232
      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
      Qls$g#!eY=a_EM0)0YE`Kf&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$PageLoader.class b/libjava/classpath/lib/javax/swing/JEditorPane$PageLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46e86e003e5e366aef40e93f61176427887ca754
      GIT binary patch
      literal 2158
      zcwUuM-%}e^6#nid$%gF$F<2?!4````&^A&Lt<=^Qf>5`B1gKPf*lez3A=%ArHYqde
      zjF0M!eX}$E1-#lBLK!=w@BUGa=k5krm;`Dvckey-o^$SZzI)F3=ifj70x*GZ6mW*i
      zTSnd3$yA?M_GacmwqSXVyKLBEWZBphx?>cCt02OVkb0StL0U`sEn#{JVhqXS-Ibbc
      z8~Ku8=qNZQ!=N7a?1>#OGwYbOvar2r25#95Bl=mF=R8*!Wzy|%N(F{)UpZq7FSE9y
      z({`jnN(?ctXjMnvW9V<^jdWwTE!*<$Fced5wa&mBTx~g-1-nx7n!rxtIVp{;6TTUz
      zAUeVDx`uA_sOZ2O8WQNEh*D$g@}ysbg1CagbKW7iQN;k>k{;e>m^den(_n-9hBS0S
      zm8;7dE<ls35e;3?7<zQe7K^oVUbw5lJ0^9<G)n7+Ye~7e8Ig3K_jEzt5bqaTf*}Ij
      znyum*ZYa3U(AUP7h79OoBV<GgkWQWP457rNSXJD_q=NSeK-l%#!b8I*c&>&IFhwb~
      zDLmbAw(r@6IU!1vv#GHYafJ@2ReXex72G-nH>9Fr8n@}WE3Q+w3L@*ej!XN6ykTyW
      zRTIAP#LLV$<%(m=%#v8|;8O*683w|BbMm|9StZM}L{-B*+^1-)YPL>hvsSfYcxG|6
      z7*Ip`^f-<#$!J!?96n=+8>T6$eqpSfmn%MbL?@lLptBXh3Kl4P+oixw74!I9W~$CG
      z+V=KvssubNYFNTD!v)K(JKI7xJmDTQccRVsAXXT9k8)xuyJL!qXF1eaVy0o6q9iM3
      zO+!xB+~lj_INfCqd7NOl`#(IiZbNF$skx?@vt%VDLT5Lm4TH8|+rphG8P%$wB2$mu
      zVu(t$gGQA8Ty_oW;apa;KT|D3{<`FxNXULeQj|sluaQ-fR!>Qe(VR+;H_)4Yfs5&D
      z4O~jU#K6Y*^%r=vfp^mVkp_m-{m}-lJoi0crSE{W<2Itah)%wRZoZ8{UcxXh<6SzR
      z^lwUGlm`5j#K-+rC&mc3TuF=(e<e{y2~`?>0X8O2r2ez?9zok9AbYs9kMUjHdUSvZ
      zxx0@KcahT%@X7D!lN-qy`VP~$a)8-gbic&>21WJY01wCiZmTvGQrku9mE1k|vGowr
      zFK8a3{~<H?iC=IJNnS@U-@y?7j#&8~qx=U<^B*zCf5JS;izMesE|Xj#xlZygB>%>L
      z_8HWO2a5iP!Q3G;n4(#p#U(5ISUr9fRifg*Lg7zCKH`CoM4Z~ddeg_%rjMwM@Q))0
      rF}caV^^Li2@(5qHFzG#QVjP;#*zmuP@fFQUS~2QDU(-DA$C3OGe@zOV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$PageStream.class b/libjava/classpath/lib/javax/swing/JEditorPane$PageStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc7abeff0a375fbbb17c7c20a4b3351373caeb4a
      GIT binary patch
      literal 1492
      zcwUWEZBNrs6n<`3_EHNB5P5OP#Hpi0#+!l;Q5l$QE=t4@flpnzK&5n~Ey`c<Kj;S&
      z$r4TUyFbc!ZZ}6QTVj^A_ug~P^PJ~7H~sbd+YbP<Sc^eon0TkZ*U$3q2h%>tm)G}9
      zujXv%HqUJ62Yl0WxPBai%rGMI@@6gn+_XIIl<bpJuMuWQ7`kn6%i?<sY=<H09hz=t
      zhKed3&<m8bY}%%`!Z4fdm{s{p8lWpoZZXKk+8$4Up<6`^aRm|dsz@NoFr4jBCDQv<
      zbRo*nTQP0^^7OdMoi}>b;uNXW4Bgt&9aHR^hq4gDkm=N5z$8*6nKr{<TXu#X<B%Ii
      z#S5b%Ss_GOKQs7=XVz>thB1bLR`sh^B#v>ivVoL7)ZKKIb35JgTtNyqh4=|#Z;H2c
      zYLqIdU*E52BbyWvNQ1njkRNwdj9^sQH>o0n+YGVn?rNzdq7h7qGmU0iC2_l}R94&H
      zr)`N=7ALW?dt{!_D_fo{i-P+q<}gng6k}z&7}Set2`@$Tk%}cj(dBTLd*bA=iULN-
      zh0WTjV{p1!WO_1S@U&3Fpq6Z#J4H)(T~0nxCqo@3LRc3wL7F5+=(0=nqqzggq_{40
      z5{FEV2@9^!u0nB<m(+6SP_?N#dbG$n`o8$J1N7_>acK%&k_JV};VPY7qZrj-kXG<l
      zLm2kC$WwY=r!$!tQa;BTAuxLPYhTg#5#8UB+U~zmNBU=&Wfn1M4t>(R&!RS}S}eB+
      zyV3OmRf$+slmF>e5q(LE)az0JA=*S>V$PSkTcnl9N@#W5p?~&M2<|atX(a%c2*7EV
      z;NH?&7P&rLE;Uw1E{wQFi0eM0*2ry1RB;c}K8uPxW_+7f`eM!a7Sav7#J5TjF+j!V
      z8?R&GbBOH)u~h<NQ(9~a9yH}I{f99R!!lkI@Mc?M3T<vdAq2M^9{x7L?I14gwt<we
      Q;y<6@sZTGUo}mco4}V_qF8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane$PlainEditorKit.class b/libjava/classpath/lib/javax/swing/JEditorPane$PlainEditorKit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52a08bda45087474b1176fd1f15fb747a0976b6b
      GIT binary patch
      literal 674
      zcwUW>T}uK%6o%ikt8T8Arj~tO7*uFMB3&BYSVAQs6hfDyPByWvu)C)HtGWsb`T_l@
      z=!{C(hv2}@d(O<6=RGs~@%j1=po9$z24Uw;JcvQj?<==cJUeNtpzGCzE4S*7Q0^!{
      zSAm5PVRN!Jkb|IjEN?{53BJn+kwfLG;D})63k^c3(rrr{CZchK5g{aM%9R(r`=<1+
      zMAMOkRIS?*PD6M~=i|jtaI1VmzBXHXWx_&71`Q?qRng+LM?x-NsQqbpqM~eJk+3?=
      zpkyP7wC*}X*qgbLLc<0jO0X}xJ+CFJN?#{AabjPS2=P<bm0raWzAt?XYlQ3+3%=V=
      z6Xe*!gdQdg{jQu_oE2G#HN5+Rxn~Xx*gWfP7%{{+j*kjh=UEwz#Q5+5!}MPC4asW;
      tq@I2O(i4E_2$0mM%owoEYK+~N{&zQq-|}$IVudxu5&s3OL%+8ksV{F<lYRgI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JEditorPane.class b/libjava/classpath/lib/javax/swing/JEditorPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3bb05c84787cc9dd75ecca62cf77d23ebefb09bf
      GIT binary patch
      literal 12028
      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
      Qmx=U_{FysH{{zo|0YB1x#Q*>R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFileChooser$1.class b/libjava/classpath/lib/javax/swing/JFileChooser$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6035233224a27063f2819161d630d8d132da518
      GIT binary patch
      literal 744
      zcwTi<T~E|N6g{`QP^iUSP!JKsk9|N$DEmf&F`9~rX7vSw&qMdd9aCmVTUh@Vi64m%
      z`~dz75AXwscV^cFHGSyx%$;-3oO3hh*T2pHbn!GqKv?>sPSn?=9BT79dG|)=oDQrl
      zx#)C5GzrV@JW<0c;S)Ah@=2S%9lq+Tqlyc{WHr!bXG?T?bwWGBdajMGUJzE+>S@pR
      z3C+~@c^ZUUF(xn>p@EqgA#M{IYmU(BX~Q3m4-dHbs19-_%=K)h@_kikw;vaq&X$<3
      zy{*#~TQfr+Ce3Xr=Y-XfyZ_SeIxPMoEMPIjJ;Gw0ZjAfRY%5bH<9v^E&MIvUf%uP|
      z8hJvrXOD}Fof={Grs}5aBgAiw;UdjdS+b;S?V4<4{XJI$+mG=WPlS~ftSWx3Rc<BJ
      z#*I*^Jv_3;hxvOlBk~TmWb_Sr9n@~S`3nl<3o#}2X+hhvca>;;<GU<B5ubWa%hmh|
      zVIsIdTTm?6RcA5h>vwQ>tnyO+jytvf4bczG|DzFHA`Gs)#=?j<)^KPE54^`^-?M^;
      QzKi@_5Z0=!P3e2|8zykA(f|Me
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class b/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c821aa49bec302ea9d06da480fcec8046a05e0a
      GIT binary patch
      literal 791
      zcwUWC*-FDu5Ixhz#I{je_kE*?TCn;kiXfrlQWRYJDluN{l{AqgZhxhM2tN1$ev~-3
      zgj&U*FZX6<&N*}LOx{0U-vF#&#z2ZtzO--byK;Cdy^HehmUM+x_x(@=#ZAW%VJOdB
      z(VjM-5lY`kmfyJYJ>f;|lva|UM|Bw%mkFcQq-JZ3T9=-THV6~*$*_eQL9_gGkpUrR
      zq62ysX>^$|&`lWoL2a365__uB6Z_YVGZ7ry?2*u0^&Q)-*@0AXoYa(E!b+lxgvsz5
      z3Kt^!DjxbuZf<@dR<h%YbY*m3{*GJAU=YIwh6uBNqfLxplwfY{R4b>}_QAnX<&aSP
      zPai_|$iEI8p`5eh_7^NEKFjWSo(L@04nq+dm?8`(je;=v`!F!W3rh2UM)|zj5`U$j
      z@s>I{pW$eg;}qYy#nLmfi=`Ksk4;bypIKGX_t2qlBhRtPB!;4ZUL}b>^v5zwe5;!F
      fgn@?^UspN(q>Zb^+!V%|=Qt*seH42V)6hNvgXGGt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFileChooser.class b/libjava/classpath/lib/javax/swing/JFileChooser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4725b19dbb17126c1225a340274b5584c0be10f6
      GIT binary patch
      literal 18403
      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)e@GOOd=L+wi)Tc<m=%Kd|NXH~hQKs{tIk
      zPuz*`72x}1ynkCxV9sIUbI{%|@DstW8d0FZu@AIwU<wV6LhJ)ibM>%LZkIT6ArITZ
      z)Gs?9ggocN<P=mboIf*}rqI}_P~T}RD8el~tO5RYlD_9jx<+#SwBfMGeL#%08t8G8
      zB64-M3jdN$XK@{wjXVWv{KH~g^I=iY<savGt?HmCYH`e0_CbDikutaDE-^vCMG6)v
      z)%V@_$vc)eD$Zv~>(7y!Jx}sHN3QlFOmO}Y%II3{d`SX0QQO3jt42(gXGteiiYX!=
      z_;&^+Vyc)%@)tp|C?#j)cXxLg)<4;>zW<Pz{s6o;EM{6Q_9|KIH9N}-zj02Tqr0<G
      zAgZj&`kRSXNzw9uNYiQO>a-sJouY;ySm{4B(R)(L=ARg8^!T#oby#s&%<b|Y6ek`O
      z^P8#)#DZb5XdR!MDM41rvpS7weyKJOd$f7jGb~Q!`DOb0jr#hH`uYZa{e{;;E)AEb
      zhRV0(ctvXL)W$1yvVcCnOCwvA8tP<Csj*Jhtdq6q^A~GmZK<J7wmLNy+IWpl)~?S#
      zstfg~E>tJY`?)(4>(){5Y)C8jtJHLX%L}S27Ybb}l(@z~xhoH<U1MRMD<77)#zBM2
      z2di8K(BUeCGhIc{;~EcJUB!@aO@Pn3Cc=fTNwCXR0#~{w!?ms{aFc5)eBU(<?r@dD
      z-LC2IpsNgi;hF)DyUO7Yt_pa`H4|QQ&4PDbmGFUUHloXq9#<8Pb5&!ht0tWmFja<B
      zoG3Pmvt(N67Abc-9klPgC|`@<BQVx~SoE;zLkC2Vr_xf&1m;=<Zr90B;96{QrPTL|
      ZLiEYcez6%ig$O~7s0dR$F9iPQ`(H=iu15d>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFormattedTextField$AbstractFormatter.class b/libjava/classpath/lib/javax/swing/JFormattedTextField$AbstractFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6745dda7b57fa40f874ae791e177e54f4bdf0e29
      GIT binary patch
      literal 2454
      zcwU88O>Y}j6g|&zVmp~6O`5i$A#FpG;EzxfLQ^0uA$1Z+>Lvxd4x|*A*rPDjWG3>A
      z(+Keo_yLF=E7-OYbw!0xSTquq*dT$#f)yWv4H7I^0ph&zc;ebty-4QGn|tm(@7(jQ
      z{NTTPUjmqf7D7N^@`k#j?k4S<y1AKLUbKo^s^e&dthVbc>Y7m)o!hXTqMCQApNb&_
      z1rAAA(ohLn-MFFUoe(+%2HaiUN@ld8t{VD#>V}~)*mhrYTG7@m^Xk&PfLIpjPFbey
      zsHT%sjgr=W_YV=f_2b_k3q+i1b%Bv|3xYEO9p`mZcU}}|i^g&S!IV|dI?;xH1wH5$
      z=uPXUwo=;K(2Cg#qyDs&Cn1%z`0i~6op*IxV5(KcMoGw_J#SbhlMF;->3VJWxpQGR
      zuWdU#z8%7l!016tN&;6bCsW$qwu&s|hsrYyD>#P12n0?lP|z))nA%OhGBa;#&RpKj
      zEO0CuyY>+M$`=yoW7xcvFKuZiPhq&w(;nAqu#`Rda1fD4h-?(05#78uhlyTMcl1qF
      z5~)@mYgV~FjOdUq9by<1EZVYIEZ0eyCKNm+n;t2d9=H=pOos3@C2WyG!7~^X2$Qqx
      zNty3i1!pl$x9-TDtd((!L<@{Z8~a?_`byl4EdHE==kWqhV{4AAMNOlPk&=EA=M`K4
      zt=v`9FM;7lb!sMrmv~VczE^EpjgzOjsNgh4J28uS1q)cDG3-WT)QR297ZtHzQSc<9
      zlJ~NLOGvZdcC&tuH%Zvg?pQ926#>Y^R}{R8*JyU8TPWzV9XdT1jIPIWA!G#xUH#ld
      zSJa}d`Im-MpkU<%h8`gp<<-p{nNsGK^xsghhTaHQ*A%>o>-3LyP*$w-g6~w;-L~7V
      ztmQhS&Ii?2HXQ*Ot5nQuJS<UzP26`zf_UU5)6|M7L$z&<SGuoZ+5|@^P#gc+5x{YT
      z5av3<nI52Y0XZbNR=CIE$Nz`;HpM5EMSJ`%`fj_ShXFSnSVs`oG2nq1gd;f0XHZTa
      zMm*-O1xv|Pm$)NQy-fA^9z;4J?%+h?mY=kT+yH~DEHc@46CbTWyu@L0KE)OLi4i>E
      zah&it2E;+G4tMAM8gc=j9DUpp`9V|U7{)zh(%0oPoTvwX*i;kxy=B=?nv@lYA?_jX
      zQz9wSsw}&YP`r#pJRxP=#|5s+I8(+{8Rxi~xjgX|W<NsD#2#iDI9En0!RO0mEPaaJ
      zwM74A2FBaUSiQ~k1H9T7k@4tEyI%O5df!7AzF_e^M%<_R`&8j;9^nDb;Ts~pMGD_x
      z3EyJ{Ke+TyRVaG&<w`n>vm3*>iX1BlIcdEkZF#mBlSd-!bi!rbl^|<D%5s~}rMPs<
      zfdh|IG2ka!;%BD%g^v3bC-ECw`+JRX#(d*cN=xIc`K715K7=c!U$6J~pFI9wH6022
      zz2u1Ta?E-3BQnR(9jw<U`G>H7YbZs0T_Sjk*GKS2(c5^3>8jTy!=1A(Ie&*p)y=zs
      NJSu}u(1V3w<bN@LAF2QV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFormattedTextField$AbstractFormatterFactory.class b/libjava/classpath/lib/javax/swing/JFormattedTextField$AbstractFormatterFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dc1d25b7f9d73bfd3ce6a00a81939a9afcdf9af
      GIT binary patch
      literal 567
      zcwU`RO-sW-5Pj38jg8UP`hg%Qf``_FMZAa=K?(t-=)scvCSB^5G=a@l>(BBec<=}K
      zqr};$cu*<0hnamd^WMzvyuLlZ064^kixS~@Ebhdtli#a!)VT~YJrTyp;Xuwzpky-K
      zJCAasMQpxOI$)6L2Nw>ZVcDHTF!wqd%h(XArz%zEj8Ja1LxR)GhSEbBH6ImJ3H828
      z<<)c&Nj(rzA_>iY7K<blT3P%Vbj+>F2`Byk&etXQBl#UBgspjE-S)hSpY6Dhcau$Z
      zECXc+-~5GjU{!gZi!_zGmxw%<xr;Tz&YX5E_t*QJUGN{no)X{qZ`rzxj@T3X%Kj4;
      p9*eZc)?*La;;n6Ck+J_##C{2OmCL9XwT;5ApjmLN)GF4U+B+3un`;07
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFormattedTextField.class b/libjava/classpath/lib/javax/swing/JFormattedTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb73ee2f5577edf7f66c0f6a5f71d7d9eafeb87a
      GIT binary patch
      literal 5767
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class b/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc23e67728c047e156eac86192f17083c88476ca
      GIT binary patch
      literal 494
      zcwTK#T}uK{5Iv)to9mXFTGpdvkP2-*MiGc06iX0_Jzuv=-B?%HyJml@hX{J;2lS(&
      zxoZ%p49uO6b7s!m@1M^v0B1O`ks};Fix=_g>$!>_{hNLwCbHQLL#eeIM{-fHVG$Yz
      z=!<#kFN3=G!>mLoq)$pWPYJbPb?gQAFIBA4D?<Hv9iTNLSiR|kEP_ySv4MhvJhoie
      z*d|mLq<;+=p&Y1K-p(dtnG6N1Ayk5CD58-_l*#{!mXSs{TC;cMURLT1rn4lJePy_%
      zMft=~3GQ_q%cK_xt);e6=Y^{?3EuKlH2A7Ke?57gIn6|{__R%ai=3S!#|D(zop(6x
      o&IjB#PID-;ce2)iiFfcga+$<X?4Xiis+q50H^UO!9`<4V0u5Ys5dZ)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JFrame.class b/libjava/classpath/lib/javax/swing/JFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..828e84b040a291f68faaf930b4d2ad75058c76ed
      GIT binary patch
      literal 7071
      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
      TRJf{T>Uc=BE4)m^C!pYe(eo;Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JInternalFrame$AccessibleJInternalFrame.class b/libjava/classpath/lib/javax/swing/JInternalFrame$AccessibleJInternalFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca22355cc5eab8b05ce977edf1cc58efca118e5a
      GIT binary patch
      literal 1792
      zcwUW@OHUI~6vzL!Ewqe-l&3sJ9zq{Nk%x)}6$@xd>7pQsxG+Px!7=TOnVBlYg{)k=
      z_6vxHg&KuK6SpRQDDm9sWM~To7c+C`ob&(PbIv{Y&)*-v09?nCA0CE@=gLcEJ7&I8
      zwXN7vQnR?BDY->M$@9UvY?hm*x{>4M4nKSh(K2B|&%e+$u34ob*XTzr!$47>IDR#!
      zT061h=rtu*;0!^N8>*69<A$l~+N0z=16yLKPw1LyDVk-6)nqa|lhNJ1S%zBcnQ9J>
      zF?6S@R}!bV8C6rQI}E*{vjW3w48DZE$?L$-Btu5M1TR`-Ttq8FSB2QE&=xkNRE?(#
      z`3-KYDpV2?QhJt(QK%&PcZ@!fGQ-pvc~osZRnoY{tz&nZj0`QIuuY5Q6k@Gd1|j1T
      zdeG~~Wroh`JIT0$E`|U>S5-@-SI*Dq!Zzgas~?|;i`QWgLw;Ok=s!PN#xOz*7nAAL
      zg-m)b^>i^ax4ghG_&+;QYs=Dfrf2xvJncY|caS_$Fbq1o6O{6977sM;$0+sY*etrZ
      z#SPKqF`2H@c(I8oWrrIK-cUFxVFZ(6aHi<YLrF0qV%KG5Tg?~p6}x)h9334w0W_(n
      z1nknSr2w;f-mRgNX@}P(%;K&eH2T3xuZ(+k-l}u2L^1beBt*sm(=CQ+Vv<jw8Kf1x
      zU}X8CDrTg)e6U7EJcFFnG;SnvifM8h`u1vrjXo;QOHU0v=!72uTGvs@9!SBUxQDb3
      zz(?(DAWx9~rpf1_?}bS8I~pU=Lo|P}1#R?}Y}XUQt>Y4{WD-#*+R<V6u@hYmW}Lpl
      z7l?dA;{m!qyNp`fzFDFVxcWZyJNi*a@B4~@O08a^^|{(GB98W&qxD28m9I;b9#<K)
      z6~*Gcwy)tQMjjV4j~!y767#kM)8JxmxR^-?BMD5?%~J^PN(homxK)KPeG1|Isf62z
      zJA@VI9Gj!RQRCeg#Y7J<bAUPDzKd$2{sAB8y+_!OXv8NQ+g6l1Sh1SN0)ahPw6zcL
      N(B4+`xd%!3{sG*mn1cWS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon.class b/libjava/classpath/lib/javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b449e93a5fc9c90d987602306601267f495b1aed
      GIT binary patch
      literal 1831
      zcwUW_%Tv=(6vn^X7D8hXC=cb~1E|mkQc+a2h+qLNRB!~D(Tx-86{Bs!B&m;;{ssOa
      zjtg}VXLQCH-8kd8aOu`@;mWl;@!SwYDXnzT=H{OB{c^u^&rLr6dHWu~5Hb>c3}biI
      z`|87l^+3~C5;JMt=BBRZrcE`^!!wiIx@Q}!>8zoLC$d>?S=w@r7f(wFFvPbpQbvB&
      z(7A3GOT0-5wG6$R0@aOcIn92Q*vei~a|O=OXmL|hb4%Q`G(*3Zo@8J%4D~5Pw`^6n
      zowS;%??0b@9SJ{UsI~8CR(OaZnyJ!Ml0>7LuGwP@1Cgp#(ItjJ%DBaYU<fHtP%p!e
      z76p6J%FtOt^1M63hK#23xk7%Kn~N%$B|^r?l1-J&(!Dzw5M~(0t6fxu{UL`<E8N}+
      zUNr>0FY>QOmG(g7C4)GCLlO=$^z5Fk;4r!wl*y@u*~R%QH`A&4IfigG&!HM@Tcq0n
      z{kyKxNhEnY$x{W>q$2O2w78T+PNfoVRz4}ApDMF8EegBB%^;$PONi04tE{_%0UTwh
      zxh*0LUH{pyq>KcHBphStsGOzXI8HFsk)w?Ih?@-lNHi^@4<|)`oubx=q(vhM&zIGQ
      zTE37k@$7%Rv9aMMP<NL}ctURgO0X(dtu?Z<Xwe%o#xO47JRQ!`sDcS+-I{wah1ryX
      zNwMNO%QM4t(eOLa4Dy0eFtdDG6aCq|y(WVqpIR%e>)cG`RLkOYHk9IhU}!6U0?<uP
      z{q(DW4;_$DN8=#*_d#xK6la&l^cthuHc+II?#@umN7p^E_-i!9;&0IW(h;=LzwCrQ
      z67B=`(MTZ?rD8wYouYQ2)5Q$ZRm1|X(DlO8*E(}winIYw+k;+LJK$=4u~Ox?BBjq$
      zhH=DIjyh(6&^z>9kFB9;4Uu&WzQJ%Q=|>SM<dIH$q+ypN3sPvL4B=N1LG}n|DiF?=
      zA^a{&NRo?9!jiicZSha2@jrL{#Mg0d9Tx)6Jz9vW2v$p9Bk_T$LkkN!<hD(<OBSOk
      bOcUFOi;ngZ(vI3k2S0%sh&Or^vk3eJ0sFZ-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JInternalFrame$JDesktopIcon.class b/libjava/classpath/lib/javax/swing/JInternalFrame$JDesktopIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8fac3b0791b1df3cefc69b923e51e7147ff72de9
      GIT binary patch
      literal 2259
      zcwUWF?UEBk6g@XzlO1QX5Y}Z`5Eh8!V}a;`f&?R&btN$@Xh_f>TGfQ!Wi&gJnwbdx
      z@+o`(-$1JbEU_&9S>+q}GM2X|!(=i`7Jj5N-P7mvx#!;7^Ur^O`~~1$e5oNpD1Ixx
      z7mup$L(|%+wwjhF9ZL*09kDA5tqtjZ=h?$%-?lWQ2uo9&8}{zdwxs20$PkW?--&)-
      zx~_T89GKn@)$74*APEOt>6l{Bla6cJR=2r9pcY}iVOy>zEUza9BbmPT@1H;Z{L|ec
      zA-%0c5RSEHORNzxS53?G>Vy-e{Wg|+gjB=6FLfl5H;}_2Lb6ou&4KWy0R!_oKOHu(
      ztlnft!~4RM-6mn7ZCY|`w0loFcZ45FzHRq85W(T_JXlP54@{R(-bcigp)8%Y35z?@
      zo4CYYc=D0QG^H0rvkVQk)|CE}22SBL;h@;dRD4Yy4Q~_buPMGT!AF;M6i`&&mI!C}
      zOUJYmDmOXyAy~UDES2_B%*x1H7JHVkJnOZN^LR%?m9P@s(otjAQwEsQHMj-VIhV?R
      zi-YlO=hk*(AY4vjZLGaI5DfFzYU2g*(5r@JUn@r!El+TrI4Z3}K6tiv?gTz_$`0<H
      zc(m~{PcueU<Ehxj;XrIxBW8A+enng{P{UP1Vq`M;UPKrK@7GWd+jkZz!SDt6W~kO(
      z40Mb=>Ua+0YFT{D4IKk=-^Zg(yW?O^mtGZ1xu^Q|Qv(~g!FB$U{n1ENA+5fOQpabw
      zsiDnnAKlq)-V~PDk&b~&*dknx)o(oQGexLt<hBz02|@4JBd0GnO?5*YnojC@#lpTe
      zEiN11SLtf##)`HTv(AWi4&TTxZ$zAA5lQ}~k-!QxWchiHul)pc9{IB4QPoKf3p^g+
      z*%rS`@PDrI6bCD7kFi*Jf~8-5%n=^*NC9-1KLbZFM=O}8qs$B}jZrv?V}Sqk7PE5~
      z;5beM+%3iu|1Vd5!|LBys60dAD?aDUW2~yBU&2#ztQvF%8Ws5(F8L=IV{C8&-;JmQ
      zyzM}<kzcF)j&skk)?S-%jTNu+SMCCm{IAo+h+-q)(|L9Q7k$O=;r)QQ>d%2R%UhgK
      zX4E3pBeK$=tV_5YfY$?Xmcbu9$A@wJjR-y);y=Q*0DmsPC-c|i&`t!J455uMi}k>f
      zjGw_t_EeOhuaTy2A|7PItYyNiaoz6adWy|B*A8<%n88&;)92z(X~1=b_bAOqg%j0c
      mPoCgboYBS`G>pXeB0~v$?vG!f1C>?9bO$}I-vU3~Me2WDp9+}(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JInternalFrame.class b/libjava/classpath/lib/javax/swing/JInternalFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34e6d3e18dcf76a0d63e83d5c4567772f60bbac3
      GIT binary patch
      literal 17072
      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
      T#HH8**;9H60}W+j3k>;x-~JV_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class b/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8946b03f8ec0a943c7abb0d397c9d29e80e653c6
      GIT binary patch
      literal 5379
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JLabel.class b/libjava/classpath/lib/javax/swing/JLabel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20256d03cd82911e5b2ff0946fc310e4a5cc6ccb
      GIT binary patch
      literal 8529
      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
      YGH;zNK@&UV-+r-E$`zuA{_TSC|JE4wr~m)}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JLayeredPane$AccessibleJLayeredPane.class b/libjava/classpath/lib/javax/swing/JLayeredPane$AccessibleJLayeredPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e46eb03c81709ce6f539f3f6ff34694dcedf98f
      GIT binary patch
      literal 791
      zcwUW?+e*Vg5QhJ$v9UF3>-l`5h+43EDT+{P1to~62wurrm%7p>lEl-!;H9skf(Tyt
      z06vsB8$zvO(3{<zng5%ao!$43*Eax5m@<(d6wbt@xGwlt%BdE%Y;hw!d9ouMnJZQ*
      z()ZPIO*Xqt7=-*csN~kqT}L`WGtzJplEJC+bBlywJFeIYt5%hxf;Ga}Y`kplfMAr|
      z6PW^`-9jspX|$ljf{9MT$Pcv9L<n}-%8}a_^<(Mn3+|E7ZMzjwI}o1IcH}g4yM(3K
      zE@CFbcgR*{@D<#3b-J0^xhRu}BC4i>o5FY9N(%iLG%-M!{#$Kf2*U)+E*_S5%j-uw
      z#qBa7_n$h1^qza+Rpf@!-DR6^u%LNPyXiR6E7gSWOW(u<VK8nKg#O=$fhm5V7XD|H
      z$>>+&QvwFRQXBhIY%Q~$;Jtl5|BUo}{sq=!DC*)h9fs~0yhVmj7DFsW7Tr1}de9rC
      jS>RpAj3@LxH27rbyKiERh)rN5Tt_h$*3tAhCSiO6A9Bj{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JLayeredPane.class b/libjava/classpath/lib/javax/swing/JLayeredPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6580cd0ded973d74972a1895cc8bffc0e18223b6
      GIT binary patch
      literal 8209
      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
      F;m@0x*2n+=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JList$1.class b/libjava/classpath/lib/javax/swing/JList$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42fb0c50324e3368566ec9c0407514cac10e3c8c
      GIT binary patch
      literal 790
      zcwTK%T~8B16g|_HUAwNdln(_&1Qyd4Vkxgx6ViaG7JY#5;?s1Qz>w{3vOA#hH~FB6
      z#KZ@F06)rj@6a@b_F-r5oO{l>AG^2z{@ws+;+2b>!0d&*lHVHHR~?@<K6G_vf~Jdt
      zz{+T1ua}urhKBQp$*GD29CNO-V22#KV-_ue;+2d7ZB#!a#urOzM3M-fdlxEXhVw?p
      z+Po8}RVO%1kkn2D3T>)hguoLYQ*byc`Ec>bLmo3eil_+Wt4u9*b*w&J_IoNlmc2*`
      zRJuthqZ65Gz7N0x&mk~B-b2u&F5NR_j`VkBT{{9k-S;EaSFzbMB&&96lZF$T9-@0k
      z$z>X<1I?v8Yx|n%WYmdcm9`_9Ws2&T_Tw;0GAe$k%z1L^VqIWntS27<Hi;dkN*Xot
      zIku~lHg<2QA-jbg+FPFff?T=GYXr&_ULqlk7U5C;F-32Yvq-7Fbq&A1eU0h*AC!Nw
      z6ti@C^ahbVr;Ry^e2R&Vc`R7`DV`0ixFqMC`fp6%{1`eoj5_Z})Xq@7h^2wLMQpC*
      pvU+*<=L7jiD_^*y4CEXw<GG!5#qwWZ)wX=s2vEUGIty6C#((qcp-}(;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JList$2.class b/libjava/classpath/lib/javax/swing/JList$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab9936f9b346ea96fec984147f801d9c82cdafa1
      GIT binary patch
      literal 846
      zcwTLi!EVz)6h-eO!H$h-+?19=DTQLdaY|FN4Ioujk%CfK6h&gu#l#)8Q#rO|PYU9j
      zSb#)}#DWjtqY!T<Q52dkY(Kxb_spGV|M~mtH-Hz|wozhOI^*a3bF26y)05WQo-9<*
      zwozeNpIz7;6e{Pj((4D=u}By!bt;QshX}nnM2EpS=Sd)y7#0k5qiBtkOj>;rt1Ksh
      z^-`u%y=Dl*YXI|(MxUXwM|(S9xaHvnEM3(+*r>WFW6^_yIzu_s(ppcZ;@xOC5cvl_
      zNQ6$2#XRZrT<Z5pv!YMIusk0jXj4f0M5sggMHp(=#Xa1&vBuzEjptz<tAs0z*dyD1
      zB8DPWyNc*xw=q6Y!U_L=a7Lbvrakhoi4CHYfq_Z7x(x1NHp*l1M(TvFNwcl(1n#D(
      z$oCRn6oO*c_R~1Y3d(#S)M<8XBVt&bJBo)bJSTOW3$Db>H*AL2%=y1jOvN4S(6r0+
      z=ahV34<GRBdi2!MT?a0$-=yjlN~Tkbniue*tqUwfKjDAZRxHuor6)-2S|4$nDvxTC
      zV;L)^e+R1*RGXf9ts4En!X@s0oiZ%lw~l7~)v5mhHfEyey&UadyTrq9R{-1qR>q<U
      bKv$0unA1Kn`loniVvoZBb%b=Upn>K;AL^{p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JList$3.class b/libjava/classpath/lib/javax/swing/JList$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26127d1644635cf63d1f7582bb0c8f35e4d4d1dc
      GIT binary patch
      literal 829
      zcwTLi-%b-j6vn@4>uz@$=~67Bh$vLuE=W->Q4@lg)D*nH^nSWbV92s-cBlB~nY_?M
      zF!90%@S%)nrVTcfi=91t<~zUn&YAu5_t$R#&#>;I#4vjz&cvs7@lmBm?YCW3=;o%2
      z3d7>~#&*BZxrnvd-^&hV!r<s*RWvt<(49bRG4L~yG!u$n3oRJxR@5G7m9%>@)>%#(
      z=Y>j@e#H=m*Dxk4T0Mr!4ju1-;U>ooI3}ubxTyLlV}`>+ouM2WX|1bLxj#7V%ly6Q
      zC(^jcVv+PjuFUr+Suu?;G$t)HH_4=XB=v#%A}zJ!<1X&GSYQaQ+T&QnJmCr}=2W(u
      z$Wxi>ZB6vB(;7CE2*SVXpHR(~p*`eS#u9@k|Ermzr^DbMWP?1GZ<O)rTTkl-LikRa
      z%6umgMIp(2Z8wdRtRUxmQXglBE+U4RiH11V@RVVykoG2rSJMcun>03PvSs>FN<m--
      z4Fq*FX3ChX2cPz*D0+#K&D5gRbMR>G9MjQH1m8_5W@+{54HEm#2i&5FQ%rI+FlY0(
      zF+V~*r?=UwMn5opfjeI>8IH+2daS;BS$`i(V^+*ro~d8Bz=LmB0G};jZYUZ7OtgZg
      X?e>w?KgJVlduRrzBc!#07FPcOo0q13
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class b/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31d2c9480038be8bb490b3389208958af143999e
      GIT binary patch
      literal 6064
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class b/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c59bd511a0bf43a6ecd9853637dc51d58aae72a1
      GIT binary patch
      literal 4910
      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
      Su@54EE%*b~+RnE>!uNmF(yJ!`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JList$ListListener.class b/libjava/classpath/lib/javax/swing/JList$ListListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a77f5523181e68d12b043027629960931cb309e
      GIT binary patch
      literal 1488
      zcwUuLT~8BH5IwhBx=@$4fTFaDfE7xs6cq6T1PMw~Z8Q<n2i`8-D=aBnv%9VQEfa;r
      z2Y-P7z$Z0P6ZOHbcjL@b3QcPY4|ngKJ7><ExikCr@9Q@Jrf^3`KwxlFR^@iqeQw$7
      z+536R^^*MIrEKNs2nxg)lPyU?JX+gSMNdaaVC-<Dsw&&da@2|{5yC3l2NazGBdx)A
      zr6>1s0wHh1a+8w+efcI;v*ez$Y|EP$=ufrqj~4`jOJ!4aK_F_N3*j&{^cXmSUI8t|
      zfN0*b)x*lxnsT1VwUQF(&6kU^RFICvcI`6ALIj4I(=<E|X^IxhHl00pX@j0enF7g1
      zagDX!V~eDQ5yx2_34xxb6b8<*;IN~rvSgXkQ;a@uV2H1EM?I64?Fn@F)B?k8^9giQ
      zgmQ>)(KK0Pbl-lgw#rq$G03Q>dKKgUtD@fCgHlpR>lmlXj}l=ZgG(f6U3trv<9a#U
      zRNH=ga?CVgAj^J({CQb(vt!D@6<np!AV-0v=G;Ydv*LP`%nx7XSGs0k2G<1!o?4Eo
      zCoVLU7E0xEt2_*&M=Mcarq#T)n+<*$fmt3ugSxp=t~f=tZ1H%7efR_uP^CGW;7cXx
      zx{7AbI7~t<r`ixe2Xu&7jE9>3-4NXnEBU&~nkFkidpMnWg-CiAu@__o(B~rspuNLM
      zIy0V7IE8-N1y18kjo|_9%n(h#L}Uj8d)wdvO@u^1dk<avfQa_dr|aJfsnPLi7$Za^
      zaN)SbpNRM~5r1hzoIEb^S0esK#NXQxU&LsQxQL*SN-$$)2V=A@)0*7DbW@Tzy)U#M
      z=+u6~(0(CC=RWN>;@Y1>2@~~%2}*c_`UvXY&04}y!jM#i(wSY{YTdbjzvle!ZOnta
      K$g<;DK;R$nNlb45
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JList.class b/libjava/classpath/lib/javax/swing/JList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2bfb22c23d631539701fdc3efe61e4fb653821f
      GIT binary patch
      literal 18892
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenu$AccessibleJMenu.class b/libjava/classpath/lib/javax/swing/JMenu$AccessibleJMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed7ce854701706fff528436c9c1b82f7a78d6382
      GIT binary patch
      literal 3677
      zcwUWGUu;v?9sZ8*v7NZiKfp;G$0>vWj_ufx(TpUJ4gw6*I1QwP7RuI(eF0PdLAFzh
      zHf_^{y6s`w(>5__TenF>llstBEkm1z%Ko5kd+FP{KdPuEP1?((JxqIB_nmWZuARh?
      zJ;e8(bAIQX@B4n=?|1Y2|Ni_QfPE<W;Stzz)qKT#HC?-2C|^#W%v$B;k;A#1RjU;)
      z7A-yYLkf&;2+P#1()v&}=Z8;Vj~#A0%Y|a0ek0uoUbKo<u3o5=1-ffiwO|&PtZI$p
      zGnu0T;-o;wY^7YQo8|hFSzNZf-`e%T{g3|h(}aMpex*<w*(<PhZUdxgE*~tE3-uX+
      z-dKzE(Io*nTghAP5ZDq#5FG&+*cL=5LIMLV_9#kvU)NlrY|Ss1E?U*+Omg4>bCn#C
      zo5attGbt55ft?#qS}zvS4qUeCjoH~Ng<`&Hm1ir<<+^|o8_fg|#gl#v3G{3@FNp2f
      z!3Cb7hO?E@wMyA4*LiziZ1lVakT$Q^)9%W&A3Ftx9-kY5wwwb*Ak^|00dLO6C^Gyj
      zP>PL2s6i|<I`{a?)KP_U-g=eKOFWXhwr{?rcg<~0W=h01yU-1u4zL71<;OU0Y?f9@
      z=>}!ZvU%C62C*Mc33TSIOXhO1?#v2|xYs>;ufFHgK^(v&Jw)JkfR$e`>sJH@S2NXo
      z#<8MRvUP5&InlI3sa6sg-uyxVPl;I^c-*<+LTz2T7Tt>^({?Vv0yz@IDB?`;If3?i
      z<%o6M&QQ-9`A=7rXLfI@yo#G{#|fPDgRU9gJUWPHFh@MuWAkSy_WyIfK%})doSN!2
      z^ZAy}QKXmrI7Q31Yyqke7lU{XL=wnVEwgUf2~4-_Gmq9@+2L#u&*KH!p|;)*(b%JR
      zswU*k*`*b(TBXV>RtqYATwwh_;*0=357UpA*miYU7fr4&-l&ma5EqeSp3Q32ypgM1
      zyCD#_so7D_UcAZ+rZX+3G74F+vg#qNr>|^X=TM+OSG3G(OU>EfxN*?7_~Bx)Wl&(T
      zvRuts#|z430WEJzLEw#<a@nfR7R_4CV$bVZ*Iu!M7B=|jg$D!hqmA$F{PKAa=<Zgn
      zpYK6Pw*D@zbaOPxH4mRp#1rqLC!Y8jw!Wn|^zt{LmW*G(YurVj-YQfm`Vr=n^@fOZ
      z%xjF4eD03FgPuDWoHGs?Gb`AVh>qXK@Gbamdc;jbL=*RZ^vOR5-*9gjB1jm&L7VYg
      z1dIphGTukO@jFELK4Sbq-x{}1c5ZFso)PTgy#Wkzb`MVqaxKO;MV;mAVEPqTe0<J0
      zn6k!<n3BeXcLgKKkk<y*7md7*E;W1)!&7nv-Gq75D?;8Rq5dT--*mC2$Q;HWiS<Kb
      z{S!KjKVz%$S454EFl;<T!uS{|<8Ro<`Dx?t8vBfmz`?HG62!?ShY8JsiD9GNt+98o
      zOp+KQ+ipfFK3+zqkaqYa`BeIQ;tfnbHDmm%DLWoFJ1JL*e>+NC5ZTE0@cdouogce{
      zi76SD50KG{Oot^kP)gm#F8!|M>C&&1CcA=8ElXHZmyeSV;9E2E>tqAe5p}8Y2|WBK
      z$|ns3Bq>QRLeh_jY{wqig>l(~X}JY6avKiI5Hhk4S=o;T#+;XfP2yc}#k=5$=fQbQ
      zQ79$eDNN%a#p`C{Jj5N6(X+02PvbL=1n)DNR>PEWXf6GCJaPwzr@Y1l357`4Hy-xh
      zMw>jO`1wT0r}_P($+X%CGERO8@=GEp$Iv6w=$CsjB*zhx`w^E<VT|Jga#C|SVc+g@
      znR2-t;QOpj(0+$YkT<My*^Z-R>SdutH7k|yV>s@xN;#I0Z{xG;Od*dpnL@gz$hsx_
      z4x_zVk%Lquo1`N1V-JutCRhbej)kP-hMtg=FOA*%F(o;;f{vR~gya|%c^Fx*$O08P
      zMMX~I3Au<ad4?H3i|z6SjLP#!$QO~~+yQB7Wc%&g9b`&}-CB`V9XvcUt#vT4g=>nv
      z<oZ0Gb(@Z%TZ5g#EIm1#ypM%jh$P>`!dabX#lf!s(|54cXl(<^Tk>V1Ei!jy^vVhb
      z<TWC#HZ`5No3FT&FCWYHoc7)Td#If+K|iiyddLWs>3J8^@rK`YrKNO9C2wOm<dykf
      z;>9UC%n17oHN1<@jfH(gx~8~3Xy6`aMj^jI++So}eF>fN%h)ErLhN6~PWc*=@@trs
      zU&qt(8#u!Gto&w^|K?pj^Ddtg4xdg|i_K>nzY2Nnzdp7pyOxr?-O?2)a0!<kwr_Gp
      zXOSG|66BawT|btLI^Kyy6+f9Y$S_K7iLlh%g6dnK8tjJ+W^q<C<hLQ^chD}sOJ=uN
      zQQv1p{eT_ghpeX8v6u6c@+U3)BZ*X@SKqsR8olyQ%K0n|(Lt7GByhz=p8#}qhz1C|
      ablzwx9pM_ZpntF8WvDNsD!eF)kpBZhLlv9=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenu$ActionChangedListener.class b/libjava/classpath/lib/javax/swing/JMenu$ActionChangedListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c26366f2e5cced349e5e79d0ce14a3bf259b2c9d
      GIT binary patch
      literal 1012
      zcwU85O>fgc5Pjop<Hj**+O!ERA5Cd!6E~^b1E(S+6oFI}3KA%HCt0Pg61%mX06&XE
      zL2%&6fg?hEocJe*v0Xrw-6G4o-gz_gX5Oqn{d)faz%F)GD1^-;YihkT{TH?~G#@>d
      z&ZKs~AK0$bKD3;n9CU0ykdE|J2tqM*Hb)GYPkKkPAE?L@)*@?9T8?i%_1t6W1+U`h
      zKf#3AF=yTn<d{(DBq&2*kB|)xZNIidC?#D&_^$2P!97B&o`PSHwb3PrwmXnH5ax8`
      zplQfpUPm4agiO8B4Ut71DrPm5aaBcyu#}oj$1+w3xuFbVkqG5_;~aBr-^=4VZmPIJ
      zSV*EeR#7D^TZ6$xdTqolUaD%;+g!(X<iTXzliqWyH<C=)ar@S&Yk78fJ~N6?T0$eK
      zQu?@AZn9XGwB87X<8uWO)-Ngd!BjdyRBJ{~148wGt_1CwJMsGRp&gd4MP+V>K?Hr@
      z;p*BW%lD<P!X(TmI^yZ2_Jk@AI>YY_6n=Q#K(QF!2>u@ww&$VqdWBCXd=|W~8e69*
      z7;jNDnx`l=-(cyW^$}Xjc!z5WUPpmzysjV%h#!~{pOF(^P!L~H65mh}-*JoaDid=$
      ztfK}*Um?AM5>wvBMpV`&>Sy$KqPzh8BgirY@iR(Rj={glc&;#bRj?KLH__r<V+&y$
      HJ5YWD{NDRz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenu$MenuChangeListener.class b/libjava/classpath/lib/javax/swing/JMenu$MenuChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87bc69e1f7281e293a3b7942e1c54a2827030371
      GIT binary patch
      literal 1143
      zcwUWDU2oE06n@?oDRkZF*qqLZAOnPg>!$N_%PvGsG(|6FX0p2i@1V0Q2`%U^G4aYv
      zuT9(*y)a(;qm1V*%rU`_G(A1%Jzvjx&fD)lzI+9+h7AQ0LvG*h+iy(&wd1wSr#0^N
      zaza$ww%6j8;|JX1T?G*aT|}BLotw|=`@9h-h%#hG^Ld|pfq6EUA?9<J!g-T{?J`7z
      zw&Ukk8Ro39-W%lJbUY{6Vpu3n@RxQNBGpcl$H9=$5QnNl#;k@ZBpKwQ2uN6t$Dj2M
      z>b(2HuDhHeX>}U5yJL49VGj=@0tiE4yv+m(2$|*wcEAV6G)wj@zR}qq37xR2xP;3J
      zmKaih4b_ms6^3|=2iu)qw?W|MizVxK!f9g}h6|&m9`u5s<JE`|cM54_H7p~?pgR8c
      zFVcyWT|rktgMyffA`As3hS{;XHIxO5`kvF}!ak`Xa;|Gw5zgd^^C3UotHk>Z>3{G+
      z>px&vwElo!_-P%Rlh*!!D-wh=+!l91BMt^sK6b>e)i7yAl%YjF@hH6N+P=@JV{*I{
      zGE_*W_Z%d8h&Dji#ciWsN2U|%K;CJx*24%uHOhyWF^-{sBul~^$tcADFELM23w0Ie
      zu|Qv1BQ6dryrt*}eQ%VHu=ow>TIDmYGHj)cPsqPVD)kQ2q|O}S+6QVAY84}Oi2P}%
      ztU!n+Nsa{esCpYqaFE9<RN&I@?u96fL8l=Kp_y1E95M2&ktI>~GH#MB>!2yuhZqaw
      ek;Ozt`53n*Pbh`&olxGzy>MFEDczm>kbVO1RRyyE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenu$WinListener.class b/libjava/classpath/lib/javax/swing/JMenu$WinListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9165f7253c74f7435bca76e9e134749d1e4b4ad7
      GIT binary patch
      literal 811
      zcwT){O>fgc5Pg%_P3^igX-g@kB@_arL8{>lLMj2IRskUeg2Zi`tYDE@r(U~3{2)$T
      zkoc~|4G#Puj)>W9g#rN%-kmoy`*z;*e*5w1Gk_~-RZt?VJr(=nd2B{XKaO|qNL@4@
      zD&0{gms(~Oc!X8k5{pqD%YCWynCpXdv^5aJ+;&V67F~x*<F3q<NYo3ln@B>{IM|b!
      zQK^2geUm^tgxPkgO)hla6G<Wcm*4je>aX@b5~lJe$}}z$7CIACUFGsMrB!~Nu-W`e
      z{rA+pbXW{sexpb5+UY<BAk0UIFdL$b#R$i6oKSAshPjT?@^0~LS7!GQXP@t+eI8w~
      z0LDj2&kjhaPhLN68jtD^?fr!1e@(?MjGT?_BsE-P(nC=bKHsu2s|ZoYdIe_)wTas!
      zoW(i9jFEX)CbFN)0T0`JWTp9zjQ`^Q=m}vrEwaA6t*p+_v2NM}glJo{sCFWZkt}{@
      zOexmc(=vZPN?1V!(;Nr<x=IMERcp12iLIXFwaVxQ<1+7I>(X1)TJN#&+Vw2i9PjWB
      z;Cml%g7K2YoL$CAz(p%K<@i>ycEq>E*mec2H>j20;q;$$Uoh=`9it0=(FJJWJkykL
      R!JWB?raQ&2l)c`7_Y*DVzl;C?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenu.class b/libjava/classpath/lib/javax/swing/JMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9048b4d7a9078ef1b3693d82a823d2f9882494d
      GIT binary patch
      literal 14040
      zcwUuS34B!5)j#LXOlC59Ng#Vj3}F$nL0Hsk!eR(&2NOWq4A{z$c}YelGjV2u1g%<^
      zw%TfK)mqT1;6iJ)qJ;sBBGwkPbuDT)wTo@Ftx7A^YF+rwx$n-KH*aRJ-;W>j-n;MK
      zbN*+!XSpvw|McN~05DS==LUf=_I&>a|HjtXg~4!t>!NNwJnRN1LV3opFRl-|ArGO>
      zc;)Zy)nl>Xx?m_6A8GASPa)k69)wEka$bE}NFUV0afC53JsR|fR_f7MFcMzjTZn**
      z5DGgZ;aJ=sj<58GhILolz2ndJ|NGkM2>C;iq2VDWfl$?zhH7c@O*>5+WF{LVi{sL!
      z={#s);5(Y@3g{vK2=Vn1UrD|z7>ny+J&G{CD?{+ftAgR=1X`^zr>;n^KTh~b9=V{^
      ze__0JX(TA=m+*|v0e`q(PZ6G&1yuSRTA4Q|7!JngAvhWuS0Xq&BLUqD4ye;$9Mt3k
      zLcIn>Q0#_@2sOu$(hCz{GA}xwOxa*S3=y-|CF{=Dd*khmE1B3-4aUG&FWoh2&;-q-
      z#+V*oGUUHtSSRics~JRbS1_zE9v)n$N0<A_z9b(@A6n@rJJPcnbjAmQF@(}g{k7X5
      zEQ?3!9YJ8pW--VaZa4v<BD-<DFdORl=W`mI45uJ?38OE(A+ny;TG^1&e`jQHC=zBH
      zOXbD&jd2E>!P#7uWY*Ekwp57bF`_xFlv6e6fCUKSdZW5Ot{b!LcAe9ZDKT%A_C|y8
      zI^7?RwJwcDhV*EBB-7&lUc-;dvLPa+WYOGe28u8X!5!EA(MVq(`SNOV8h;>wFyq*O
      zGRK)#mj>Oin4G&`k1tJaxN!}(MX4>v7Fnu+4`}l`gG7h4nu7sCQ+6w58)UjGG*}6%
      zNIAhUMGG=wRo3-BHgkS&@;RwP+bo3U9IJD&KbOTKeY%3-fW9%cKFxcNq0FTS)3Q6*
      zF&3@UpcmHCR!MWVBrbMLU4uTDW9-om<uw>2Ek*Ug$OfIQmCN!gS*-OM4DkMOHuww&
      z3TqI7A!12J=eZ`g&d4yUlY)@X4IH~t;`>4&z26_|i1rV2JU?w?uRg?3yl{cBONW_D
      zi0>}cU?WhN9ZTd*(mq3_IkqhY<a|S#j*z5ru?Cx<Ci^x}Qe4W;av8$RT+;h;soevY
      zlg~&a*M}&3)yHXf)^F0I5tfFw*YvDb%t;TyGdvU^<E`*{;j3`98@^^sq$_;g{;<Da
      zk7{rYe4RXuRI`GFKG}xdzDJTThC=?nl)hH@+TC!iEfL5mNk|L?;hP#<58ongF@sxu
      zLnhJG3K={#39K{ZkHt7cm#H|ArhgCIM9#+xnW%?|cT>6wA=IYRUoaexN5b-5yJ51;
      z8f<}EXidMlrp6X&tcy5ReNTfbs4jrpVXGVNuoW1V$r@~fI|;DiMfPBQd^)nMS=h(|
      zcWdw+xY-Tc5hiC?dvbS1g7?Bb@B_{q_hwHC?U_Sas1S1&@jeaiXDP-~K(~wF8Z;DE
      zol{+;*GMR!^y&@9mgyl%`FcQZ=+!LTP7NM}hY$+LX34kAcPIbs(O?&s0%XwSI;7xU
      z5{#L_e`Qcsdb~j&)nFf!$`8iWDAfQlOA;~XB0R3aC_Kb>PiXK{wd%Am*AD?6J)prs
      zHM(pd!g8_YpVFWLD*62{G<X`GAt=@)wImws4^kv7X|Tj|qY}%9=imi5JdaS6{zije
      zLMe&0k!QT9!AtUKgys2_2ET^iP>_rf0@8B!)ZsHC>hCmog;m8Bi7CBHR+OadP^6bp
      z|3QO4GU`%7oh%!dgqKm6*Tek&bq)Ruf1zAX@0SHP=^X4VqAUzjoaItkrl!~P;Z69v
      z8~#QDXHL=JA1sOM!eAgiz%$?0;2j>x8_<LO197JCPYwRX?8dMXqk5knjp_mB>xCom
      zo*Vv6uT09zBazVhAnEIU_>U3D7wUcf;ZR(?utWySbc#wJTJfDtZbVKTk}N*b;A7@r
      z$l^*R7|cI_PkH+sP0tM}=}F^==x`(TEVbtQGot>XfnYCr(S~3&66Tbop%YycP?Wku
      zS*CCZw7||Xqn(+#HS}OU*&`*lfq0?5A=s;@f>s(8<0TO&z(O}_DpX~eqG1sh)9Vy<
      z>Vf)#{lih!T1?DFK5Y*9#1R~;VF{9vi%pICsBDT;F+RKDv({S}7>j7rd;l-xV+B^Z
      zv66_|-fLLR4&@B#eQ}=pcb;0S;c?ROqU>cn{2~w6YdC?29r4Hz55CQVlQleEy5zbD
      zg{(m@?Lev<5F0dX<jr3cj4h80bx~*z@%Hv0?XPman@)BamfL<wUmrm^hjJ`V({MVr
      z619Hr3F0}L9iInh=AhEUyk~280-k7?!rbK)Sm;-oVuIBa*`|=aKZmEd@nmX0k2z7p
      zHWsrm80#VxE{~keD)S)KbyX5yY<QhrP!G<_{kDe-LTPpKc8*&zgp_65Ldj;@h%zF+
      z-t3O7o0pQmL2m(7fq_^WEpsQ+EYVLy>W;mOcvc{ptFrA9o<OMUKg&-|P)XMwo8h=J
      z@&?%l+#3zm(A`M#&Lejjwf&S*aJdF0?1Nmh$UzTMw=q^83s@?_8RY&kqcl$S`>qBf
      z`ag$jC|)7?&usjHhF`=UBcCQ`x{-?cshLUN+C>J;>H*Kgbxf`|qjkttJ*dK-6hlSA
      zGJVKTnu<gjO`nDVu9=IC?#X=T;bvj1z1*GQM)HIDH2P+8otz?!=R=*5q<pg38`qGt
      z4(2U2q~QhJTWD&5Y$+HWMUXfS8|l#8A04T_AbVRz>A6=H2Ft18C7Zf&BpI9JPCqRg
      zWdScjIAQsKUO%YE2O@!bb9zH#{eVAKACAQ9NA!68I&!4?;NXyPCZz|advPPoVsw{i
      zcqzk9>seGgG{)X08Pn2+Vk|=AnrtF4`71TN3NJU3Uuq5O>#G`m4X-8<IW7C6l6pmY
      z(4hbl<Qmb9)H#%8sD6Pz$~KSLAm-?_sJ$&F$C18m)|Qj9mB-d8#<>xGOT%yD4P@Mq
      z8t3;^U1wP>Pougl(+K`e<{4rxK3=>TH@oq>1nGYuN$omrF*lCk5VCbKwoU7BJQzw}
      zB{z;Ii9Q*Bjv+TiN~5E&qr9EkU1pwij^w)-Yg0MGG3YXhJ2kuu?>4rIWqB5Hl8%){
      zAU9H{GT}4%5zxM1R7#O7{Mq~N)$k77T7Wm=eHz}6KT@Zhsm`H3muDDfs`4Nvl)_$;
      zWU^3Cb`ebcAq{`b#ES;gUQrSVQL8d8w{#ZRo&Inyt&{ZjXt>t|n|wjL(l|m{l{&UX
      zIK>uKQwLdDqFCCAuNxm#IX&kbFFt~garoY!ab}P$d|P;v-pW#%P9+9z4E9jC?KK`r
      zWnA11uT#h9F>bPL-X*PJylyv~$r1%Bveqv&uSgyyvEpQy&p1RnQy-yrKeApYtRDOY
      z!s+P?D6$5Pz#7o|C_Dw~`y$bLDfRUF`V}#~o-=5e_D(q1%ag;TGJk*%_SfqpF-h8f
      za+u;tL24)(;V%m`rcU>3EdkB&!{j^JBfNlz-1tjdM(eh!IC%tvFXBt2fPhhZt5ItA
      zZ6^`g*0wXBUupO(K1UUSZUC#!iHi&wh;)X6z3ZvL##c0aRW;c0j_9Clz47-N{vp{)
      zQd<^_kq_XX@Xv01J=u`SK(Ks(d^@1wU+}MdpcB&dAwJPtBo9{bO%4CX>5HqKRon!+
      z@gFMKs^dFKchTtZ5bZki=#G!dsYayog>(I&ak}FL2Oie&ZJ;n;)^C{H_`bu5NS>@W
      znu^NxDM(G_0~|b};lJ@cKGVpgH1&U^<3{R2CuDBL)J*y8#rN?;-j4q@4-V6}BX2ve
      z5hRxS;{yn-S!d<mUvB)ADwtHX>WD`DBODF9_zBdx1)9+;+iIF59F(+#lkxd1Vcz^Y
      zL&bu~(}Wuj64HM2dk3$~*YH#r;=2M(Xrhq60z@PLgocJSS*T?hlO3GDk1j(}0p(p;
      zgyE9fZxD9(4o8im#L3}`2KXXNj*3jx(KxO3E{hCDd-c<Ud@ABKLIO{v;N%Na)RZ|*
      z=WHS4y6v2+*k)96&$NJEp0$vM2^2UTAixD~`Zo^pfkSBl0F7z%zX*!u{TLW4uha+7
      z)d^)#E}tu)QeLZ|nyx3)+Hp`rzqRzVg61JzYnpb$aZR`j#y5?^gdTdDv<s#*ITFzD
      zpj_NSzZC=l;09U}ClDKn{EbBFCYVN}nn4DpLn~dG#SF#bBAPGg+S=5-8)jzm7=_tA
      zyWvD0-bw!xaFUH}9Z3yv8!?ZQ<Qoab?WB`Cpb@qbyKRzvg~39x=ess&Cjbm&jskL(
      z0&*e)nVSiOSkGVe*>EO;hkoy~z`38u{|KhS1H^U*oB$76Af0GJIuSZyp@MXpg7kTs
      z<DhFELpnXh!z<T5N<8*STJ^>(lUAM*kMGWqRFFSgDXMennb+qN`ZJpouw;ixI8QEm
      z$^tOoB$^Lr!Pyd^50)uXozn9F3M46!faT38Vg|~WXyMBif(0hQ0yqbH6v5S|#11Ko
      zR}!pEz#2Qa*DVrzO<G<>i|@Wb4sJ;NMMbqknYNJ3=jdTSOTc+{!iOy&3r)g>rl<H|
      zts?gYWtP$=(w@J&g?<A~EktrvONwX-@dWsYh<{9yenOk?Qw#D^lR>GndmgdsCj~R|
      z0SKDN(`|LW%?U6cJm~!ldksKHkz23GO|7{FifV3y5+Xae1qw#t0`ltEWBhm<S(9A5
      zCINBV-o{cW#xkhH3TliiVG34R7*91BPn8xh7@wjTuT?6mP;zXTTYHP)HMMDcq}Ff(
      z<l{sr#7R(&lPy}SFnLrcd*_qZlJ?$YhOG|C9iW&6IY7=tmjqmtVpGKAuo>Lg0!28@
      z5~7OD5VaD%q{y8`pd6B1(tQZ@C9CYFIGISDVnJJMqAfP}W3h>LC0wS+_bQ*SuDuls
      z*%BpR-VIkgmfQi>EoG?Zba3Js#LP#gSY%;XZ8EG@w&%MP!z&fTbu^ouvqXtAcX87+
      zDbchPCqqN$kRf_t46cz}nv7K@mlEZ=d}naUS6=6!(W^{zv`PM?;ijfN@Rj}WjRah0
      zS6%=LP`B7YGwtwgN+|}NY09jQk{fNC7bBLX4s+>u;AXY-4)R}C(E`%yce`5-KpFYO
      ztp}j6g|B<zHUS)C?`l2(6L{nxj3Hy+)6;~z;rqMb)@Ebc4+W%vPa$CeN5F-fNJSS>
      z_4OqfkC(zE{4zA*<?uPY0y^+2i-8uHs#`!A;Q_+tqG-H>?pQ$&!b1ves}j^jx#!3C
      z*+jk0BC5+2br&?N#eTKbDy673Eqft>loGuyHG5&V6~Ez3n+g9G+Sj*01>S1GT4`df
      zguN7(8EXkVtgw!nSZ67$9`@G+JYt7?j|HyBg!`BYce~nL-8DpD|Lt%FU4F6!+%;QZ
      zPR(YRL61M%42`7!ClAWB@bm59=BI9E*wnHUo~8eX67ceNBcM<^{;e$?;|?grhbU<6
      zf)-4`47$!F!!E>!p$i|e2;FT8-3_lwp=Xj`zeXw$1oLTl#sKZSl%9%+#UWz&`!4$V
      zlSH$4S_1ys=B#$^gf})r0bk$R0{Jw0xXrl--feS@!UsLot_1vdH+<5TNBwS_yV{+=
      zyf#m@CxPC!{AyQqegem|d8_k!c4AqzcPEwycF_$#j+2l4Q?r%^$H~DuejZPcb@Fkd
      zeB_@=JZEBa4{1n|foJ*YkXitTM&Y@h-8iL<^oCP6qbS9uJ=k)RR*EzDT1dmQ5_r;P
      zSXo_AuJLlFRX{&$rHpH<^B5HWti20{<qa9*jetu|q{p(rz&1Fyx`0Q^wSZj3IJUzX
      znS&PUymT8(%1-ev@G3l###`luYe|@9mW);(lGxsoG$wAv8S={0B#lG-SVyR^l4umh
      z<y_XqcFZfqb|wDYbn#auv98UbgEB)0TOpcD2R)29Zjt}<=>r+EH{_DN*b0Va$RT^3
      z6r3<k&!GV*PpU6qYN5Iy6<Ob<(ird{#fK-si@%^4@igV*XW)2zmiqP=XdC?!=HVge
      z#1~-^z659C%di@M1ws5ZT!O!WYw@?R4Sxqa@D<pHufak5Jv@tlf|v1icn$voZ{nM9
      z82=7Osbeq1x3Ci5#wmCh+o^5trpEa^YHEYj|8B$&@lyO4zmA{aoz#Zjk4NzlYB-+}
      zdH51FjIWA(d_!n>L=*~#C=z2uv8WMaM3X2H?V?inM3q=0s)a7biMXg0mx=M>tD;`q
      zEGCG%#YFLdm?ZXz<Hhr0stg6&s8yn^twMoIJd5)w08m3Gp2Aa+E3#toQwk5o6f(-i
      zK3srYU(OJBVka)7C^=8ugr`xG&Vx>IJ)VJ|rv_z_xEg(wtUYj+xE#;KF3KIN#R$o{
      zm=fSYLcfG~6i}u7A6!ZyN28!~7|)`+LelI<#u&Z|M~pE*JR62Gvc*nZW(&V!cD8JR
      zE6j>;g{t7oYi@-iE<Q?erK~<`cHuHxt`Mh!Q*@B@3!qGNT57*?Gi;X2_LA`6IoP9E
      z45-{&*TnIrrgk^3-UUw@rI{v6&DsQ>Yv;8X3dIuQvlNaKXIVmYoyn_?|E56-R>yzO
      zAVYMoS)|WZg5@WR99zjC&dpIZ8#RrS{}57<ny1<a?<k(vLuCT`?X-dxTGpmSRp9(}
      zO3^wgEnT8+tAoS^;1<zrDHHomo1Ldb8=tb-K(b;S#q%kohp2jAZr3Pv+Tvoe-X%~c
      zF0}w2Zvq~ltlV)B!;0C}syc1WV1|(`6dQIJ%>qWdTOJ3;X7IG^2geRfX-H;ZaSbv5
      zIx)W%D#UeAC9a1F;@i+5Zh&dxCX0EkJ-PvA0#&*jsMx2ngFmokI6bv2cBkK()#)!Z
      zYnBsbfl3|dC~hQqHtoiXAG49T&q5;EvLgTSAY?0h@Jn_GiL5rf42L1P?~G2Yn%5tY
      zh0S1^I&G!6cmj$j>WmQwES9qt{7K7wnJUk$5U;R1?eke7HfF2r@GFnwHFgnS$-4d<
      zcrBz{oly#hedXUQG6+)!VV(zc!(vlShNa|b%Ry=%vz))s)z%@2BeaX&gA(yRj1wPN
      zV2(FoUWeaQEEcNWM4<?;FU1?16Zjq5u5<_}a5yZWH50Ukw@}&4ivQlRDBfnLs1e1&
      z&!Bh*ZdDXd2BU*2QWO)oZ9m>)GpM7=B59GL=fv-uu_p{hXHZWD{Xv&w?sh0?uAN2t
      zo3a<Fv$;}WZS%gZN8hov{f>#?a!dxV<9Mi`>v+c$%YLm-rb(#52XH%aazmBs2AvcI
      zlDsceyc<&zNCf4CU_ahyfOs$k;vaSpt)#G-Fvc;90L+92$7~CTMg^jPO8lKv+#_Yk
      z8t7Lb68}FCyN>~44uP0QAm$T@c?9Cr{~5%?I0_lr<Pn)o_Sx-tW{zyaB?tS(<7V?T
      z4~!_1*F+)XCw3oOO?F#jp=CKB#3y8TgZNYYnYmq!vtG^lD7bqZysehmk!9`B@c<Qx
      z28|XlLWXFvuN<_j6z0k&@hP=(zS=V?B>y}!Bs)edqF7E5@oD6?%*mgo6tPp4T0DF3
      zdD?t0+ZA&KxE)tosCi6k9{e>`uB@2fn(6jtWw80&P&@bH?*yp3*96pDwFm!5J?ttT
      za>yZd$J01O(Pn#tdQt*`P)32emP%erW^`OjJL@_qb9@VG9XG&nj_<-$N~1F!TVS5!
      z77NJvCdm2tmJIez{#XU}e7GCmu`B=XtoiVt_%F41kurT1?TdF0@;Mj2-$R5x*oE)%
      zkS!NE?j`;G5K0~QTj*9L;o(R4u|XGGXm%bAT|A1PP*rlY8}|!X+)U|+o8-q~_GYN5
      zcJ7DSZLSsvwZ%g4kE_kO{pjob9@TrazQ?cd`zPo<UbFe=D80vP%=aw`;UV{3+%hd8
      zyv)pUq;)!f0CBzp9_L{wbp8`cokyU?`5sJkz7LJg|G;eLhtTf)2o^X$2A}g2Smrzm
      zYg`EHTmphF2VCHC!X}qT%6zsw<-gc8$;F~bn!p2b>ORI0$3louC&Hg*N+BppD6=`q
      z;A7?I7#Ee6V?`;gaKSn%hRQ@a-3d{_SgB*FlFs3TdjLf>2z;Ne<H+2P(6xrH=h3wm
      G#Qy;!54#8e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class b/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e18ea98b571da5160f912791149157977cfac6c5
      GIT binary patch
      literal 2223
      zcwUWE+fx%)82_CRSO}XCFh=M?y+sU(f~}QaLRE+&(ZGXfyu3JTa)fo3T_?Lx`q;j<
      zeQTfXbH@kTsW|%JI6nGEb^4vn;barn36sh0xqQFN_nq(ThyUKZ1@Hx`8e$A*pPD=7
      z?wt37<!sE|T;<O8lG)5H*6ZB!tj9J#Ske$@D0T#w-K}S?!yP{yt`;>6D0WlsTeju@
      zIM<F|=QgkVmg_JK_?woOyTFjGMmZ``#De8m{$+-Ve00c6jUirk8+-^1NgWyn6X?T;
      zjv=HOj4qgR8URPCmc!S!w;uE69h0mvj8)ybY1hoACFXK5E^IQ)L^_Bl8~HXixF3;n
      z+1+-0hQ9nvC4q5#reT616Gf}Tz$C*c@hJ2vrD-$d@|{lB=@HThqDsT~949m!XE@O-
      zR>w(X8PZCMH!4np?=tk)TYg!Ejwm`KhST}VfuBzuc}XODR!1H)3>p!MB#E+(3?)z1
      zV-_8_<+TaQo0i=;Fh>VMz=wo48;wXyV!tLTa6zY@pQYTqk8+!6@-26VN8knUD;<|G
      z&ycFy+-!!Z>FB6&#)IWZ?MW{fFWPqG_Gm{LZ@Z$urt`fDDB?;(Siofs-!q)*9j)UE
      zt}+a+USGTWXld~_wasBP=(_hbqq3psqn%yhn?7w*#}s<A$k>v&uGe)ep-gr?#gIQN
      zo*}XBZa3?E*%HM}9^9Z=foISwj>DT}+w?q6mw4>s>q_lU=Su&6uyk5{LFiLCj5vKk
      z60|x@vrCB4k5&uCm(UBvS4jO$(-=nSIY2?c3dZQE2jgKJL5AK`A7mv(O;Tk077G7D
      z-^a1nm|}=MM}K_5c%j(FNEo<Fvl@->5zqaAIom=@<`_Ls;WTm6!Qzb6xF<D?u!2Df
      zY)`Bh`<UKSLMh4_c!D%GNMJK0Vn`7&DoBwc&PkCKDU#_B`IFLk(brC+Rg|3&YeunV
      z6zh4+O4en`nv$%>Ys|&aE^;E+{Rv6@9O6tV&XnT(QgJ?zoKsy+N7Vcx3rVyJ@(UH@
      zS4`r!kj#{lnNl)eV_wRXf;o_krfoU@om%6MP>Up0i+rPqiou-z-M#fZ1Y`>MExwb$
      zS?M7D4@!Go*uO&9xWeYJD6!`xHdg3H?uU>ug`|5bkyq#~Qqu~raIIQw!&@1@qx<we
      cR76cu^wVq^Hv;fVfT`eSfD%T=aSQSP0rs=p@c;k-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenuBar.class b/libjava/classpath/lib/javax/swing/JMenuBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92fb6702672abb3dc1968c5217bf8786499830aa
      GIT binary patch
      literal 7798
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenuItem$1.class b/libjava/classpath/lib/javax/swing/JMenuItem$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bdbf0198d2d3bf4745f55cb12a868b4c4c272c6d
      GIT binary patch
      literal 997
      zcwU85T~8B16g`(#wq4h@Ac&w~fuj9D+P+Du7}G$4Y1Kpn&)a2ehqSX~cZ&M6OcWCz
      zjL-fk<DK35f!XTA?%p|b?wND%-2L|b^A`Y3G%U;zmQLMs_ia6VBUQitv@6v3P>WHi
      zX(3H0n9cgo<*nzvQ{ia~vxM~s?Fm<f^%sGECIbDgJz$dP$WRL<0>Z2w$gtF4{Z8Tm
      zEv7t_O6onrN_h&WazseC{S%P|;hF;r85=3&9b{1;q{@bn??@${jYmBZymEU(L74CO
      zo;y5p18LS1Fl`JGmXnVvHQ7+^>{2m=&DdCCsr%<bX?AGiCRQvg6W0FCb#M!}3E95T
      zFa2@gvHn82()qi?EemU0!k;dmcv||(MiCnp)(MM=B{<kbiLmPV>b2~T12OR+MR*YS
      zqgaIR<8rfOIO;U9qvHPx=B~S*X6s2R1UoM6K$@24etFw5WP)?3csSZaHw*>eMSfp-
      zLqBAJuFwPj#K8{ggbgnct`@Q8wE5aiE@Qg=pQ$Z0c$iZBTmcmdW~TUWnBgZ2o6)Nr
      zJ>a!L>}u^Joa!g!-bb7{gGD=>O}m)q$l=(a*Rc@ci?}gSIc8>xzjL(<EPcglxB3Cj
      z_66?z7Rwm|Jwk@|c%UCgg2gy#B50y5+-1oO8@z{dBwC3Ss;EUrQ)B_0z0L15E8PD9
      DHud=F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenuItem$AccessibleJMenuItem.class b/libjava/classpath/lib/javax/swing/JMenuItem$AccessibleJMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53d942cc2d5f56e88c02987a8382c2bfe1853236
      GIT binary patch
      literal 2194
      zcwUW^T}&KR6vzMf&cc3lC=@6PZI!mPvJ0|Qw2IK`vMhD!E?)~Mw6zY)1qPSdW@naK
      z6CX@`_01QI4?d}h(I}A`nnq*PJ~Y+`wb8!#(FcvG^`U9|VyvD!Gu>Sj(mu?dJNKU7
      z*>nHroH>8%%qIZ$!SI4J1n0Fy?S-&;Qa5J9{Yhcu<Ca)xilo!RH1(;BDC~LRVdyAz
      zk4%|XPD@)odCSTgCCu6bFUlDjOF^+H3@aR+(~Mb>&`nDiBF9i=ikz-x#zoH5v&LAw
      zmx1*&R7A6eX=#Qvu4VF~?ASZEzPoy;W09du%Poj$a++ia%w*GfbMT}c$a^A3iO3_L
      zDKa8$$z{1Ur<+af4EH3~y>b`1bnAw09b{-|-oPg~&ftk=r-dIBNW~UZ2cV!{MGYDl
      z?qAETmBEH96S^S=@(WWUH>#0R4AqHjnl7!;)#=^c^vGlxTGmfvz3Nc<Dyd`%M^(D;
      zuC>XOY95no%EyOY3|ouQ#&z5DYL@0l6ZU$shhdA163!48?#X5|LNio6fM(LaFOo>b
      z7-|y#^XQUzNJWeE^Nfy+#R4SQgDTn(rYq0rIWd&Wo)9_fl#>xdXLCuIl$E2LyGnKj
      zr{<}U>+A%_1JukNUOYrsSywI<591N)g;`-GsdO2JZOy?o+BgNW54$$uQFMCo7}a+J
      z7Zs0#<o4=j#A!gKIXEdB;(!Vj6+S#cbuNmUl2!2|f~Xfg47;7EntQHibn8_3Ki(>O
      zLBf_rMv^g_f<1}5VC=*Xsd!4}=GV<3X9i?m{VFO^AyY`GNXp3Gp^;cB73-DEpo$^M
      z1avdyPK$&_R8%?8sERQO`BJe&EIJzNm4ZL5;u%S)y4hD4J;_a~*z9meRUEVbtZy(n
      zmXa4Kvzw6S<PM!lo(oQ;>Nl(tH6|6bD8fiq4$j^}Wj7K_`cZod%z80HQ*vi-6?4!@
      z(`0O5?09@MmSkwUn?E5*Q`vkjE&6ns+U7z-wn><ziyNd_G^0_SXxMAknQH7LMHPC=
      zP>u$8;iI*mKHnSxdZ^p%^=8*ry0%K%sw(+;qIZR!8q^ZGl~$c}&dF{HwXC2n)bcUz
      z{m_QC(XR{&{yxh1yVy?eDnaCm9k`Dy6%LI~7<L^VJMhg=_0DDNUPkaVT0<Y9?ljty
      zt*hA2u!QZj(fvAFLY@_LhpG=Q<4HztZ=+rwETKB2I0uYQ=zzGs+g#k`;x>1<$i-bQ
      z?r?`4Zs0aI>~h04mnw3@E;sCOsY1Tv4mjb06E=9H2u`@*gaaO-gQ8;RXcoX%q3|>C
      zlU4ay)bdZUgMWr5{yBpD3$*et(N1<hKaT_aEA;RSi1DuxC!65kVvJwJQT{zN{sX4@
      zCCrgE_>ai*pYbC91uyZ-c$w@g{5QPHf5&V53YPdEc!OWXn`GbO*YF;{j%9uWEBq!_
      z$)4qZ;T-=P7x+K;h6;62VYo#0C#4*}Dn49M{P<G|;2PN*N`+nRMyH}~wdLwr9H)BM
      z;xe9tMmJ`dLfUPlHnOriJj<B=prA*&+*9gGy2s<j<CwR9pGU^-G)eEn0zCf$CU!Ju
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JMenuItem.class b/libjava/classpath/lib/javax/swing/JMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40ea604e64d54ec22deaa3cd79f195a167243238
      GIT binary patch
      literal 10317
      zcwVho3w%`NmH(f~B$G@oAtVqI-ttT)fyhHDM4=c!0|}r!6r`46auWvTk<J5&A}XTw
      zRcr0mF4jKW7nNeS?n)xCTHNho*Y2yU?z6SD?xWqVc6V#L+uG{>&%HNy?o1{Db?5iH
      zckcZj|MNfRJLi1oyDz<S`gs5g<&y#U1QYg#_lFO(rf-fWdRy0ZnTc#i#*7Ex7fkYY
      zt=gT=q{5NRRoP4?nFydvFwO1{M<QlA9o-#`MKk@atDLu(89=#Uq8CHa*Tl@YnaBvL
      z(`G6fj%_nj>1Z;swPUqF)(OV6Cll#RIFZ>Fj%Cf#AAaR~3tmeMbP6g}PRvY&GszTj
      zJH5c`&Hl}qRC1r$CJ08;t5f0LUbYi)hoJ0=Xd;?fAt-5V+9vR~C%erc1a$^#Fi|kC
      z(ZXttg^5HMPHf9V?}#K5Z8~*qXEb4M$i{b@sV!k@D5&X7MyNxWn(*Ce^k?=&(}fgW
      z(~{zZ#^U(?D4!H`Sg$)LkEJyyV;;y1&B^N}gM2xwBAKWqDTorxR_$x`X|92Jm?@}8
      zn;CmZ08Q@d+EZ7XJ>hK3S^O><Fcw53W~&)n49v#@K{=;eJ%TCuay_#w;etyIEL79`
      zb!E!2m`@wRakCPa;X?r|r8>iT8@L?HD5lr6T|+Rpm`OZM8+Y$DBbl}UXo~8>kxJuA
      z11m6H5FmAxUyct8s#fLvjD8isRRuxfI-5eQHn0Y3Im<Gh$3Z9M+aTwmP20+G4c)mb
      zVaAh*XvC61#~+tt*pbMXy=E$i4s;sm!Un1xO$@0`H||i;n+#lw>xiU=cfe@K#txOR
      zg(};2Yfr}G;Y2sZ=%j51u2+?--NknL87E=uT`<0w*AO{D6A4PKI3%OEE3>w97<Y~j
      zM23*-iY!!zI<Iu7172D|Vi5z~7$-1#l96nBQ<(ai-P+M(pclI+WKS{`y(O8*gk!5>
      z(cXk+5$%r}*sJ|@x&AE-iA~9L)K;gIs&4HN%*bDnzF4@Ybtoveb~s@{H`|9Ky}!s{
      z+mEfG0$(;Nm^vyVZItcn4rk1*R5OG90b~nYX=_JUI1#3~4BU(Zq}pp!y*yv~I<8S)
      zGC_qM|IU->c2Z;jw+JSWLP~w$pz6pKG%RWDv2Z%A*>`+n)9_^~#~n<mx%phyXnIvD
      zZgyLaxI^)d7`Pkv*rDlUfXR*dM7=4X68GZ%0PZW;96Un|+=;_>MsY;>8+SBq(}@om
      zcmNNo7up>`j#-n?yxXnI_lSXqwL4(iZ4Aubg1~Gjpq7hF^`_4nsKVHCRH<T*8TcF?
      zXEy4Irp!&LWS^PJ^tbP!c^C)FM%p&=lF#rKb)JfSW`EieN-HK~q&byYz9-t7b>&3O
      z^x9N1ZbzT0_Jn~iVrBrp?WBsljYS9iu7TgfF$O})?2V=~re?3*$#ANBl@r&?9me6C
      zGp*)+I*b$BojN+fm>t0`R;bR5q)fW9JtN;1L-Spm6mB@S*xhD0k!~$Mm5%$B0)KEf
      z%-IWrIF6@uzxwL1yqeoqmE^d-R8q^2u4FcCuGw$Z89Rn)o$GD8F%QgBpR^6@*i09)
      z^l?I#0t5I1!EEn9M*xRw4U!WS#4{KO;3VB|L^1{j@vI${Zb)nHY|8P^<pBjeZQzXV
      z4VpDNR%^?12A;>)>HciFevg^3VsxGMykOvub*y2>XtXEFx=TC0Vc<`-!_STzwBbbq
      z-yCY#t_?34_?9+|QDU)ZWM6wSYislu2L4h5wJMt4l<dp)ZAnFYt$pih{IxFExAU!^
      zW8bl^gTEag%=#LkFB^CTuhObR3qQ>Af~I_r8EJ{^tZwdS@*2fqXqUclW)J;vWb(9s
      z+-AwJxv(bO2DO;EIFc+v9aR~hj)FG~^YEd*5A5IHFQ@}^yoN*s@w$5UKReM|goKVb
      zt+(g&_JZDiWZ>V`rGj)R4znxr*YO_)-oTr=<~`w*<-zSioX3BvNBvj6w)q~_{=u|W
      zfBLC`x9~F-8y<hk8G6=8p5)qFQO@Ik4E(Rg1&<<nn#sm>b9x=WH1IZRt-{D^WaOGQ
      zaKnfT$g<@^GBw;zbMF!{P>pd^LrM(sYgp9l#+C0yEUQvVN2JV<fDW2Ce9(bt#vW5)
      zNU%7Nb;hy>8HS9pf^gWN>uBY0T1TB%7Z9m7WSrW!W@sq2*p#B7ZKPU5##`q1bmuTc
      z>I|8v{neiSE&Y8~p(qW8Op?h=aWQ98(al9Lr-=P5!*zOwwFP7<Pl6W+!J!#JnJ$+E
      zWClIrBCrjaDYNX%JJih6;e2oTVAWu4O}78GW;4-PK1^GsOp!T;%vCdwj~7``rmk4b
      z%}T`}m}a61(`-nK!qmoxFS+(FFr;<37-zY4z(PY7>3|9GVoM#6C4x&vblD*~m9kit
      z8uB4s&8m2wBWTw$LzZio5%(;z!^sU@yM(YD<4QwT$VwJgH1ei!$}F;T@?a2EJE*Iy
      zGUO_0XZ*$Oa<w7PN4&*qK-Lh++q=%%>QtSetd^?{xkftdLzqoWc}^^vqnI2xW4$4r
      z(#2Y(cW6e`5yo1gpf=siTg=QKMPJw`*9K%0Q^SSE8giW`oT>=dCgpZ%2C_}ZLtmd`
      zt?|Ve+vW4->~1HIruA&!G}_KrAMWlh8Z&~H3+}_Nud1b{%Z-NYl#g%+AZF2k8PV5u
      zD=&|^lAA7CFgO1cPqq8aqTNbrw;>TFRc4Q)?`TC;Y;;;xE-=<;vIEj92wnVmW>Lr3
      zp15+qii{e4mVstn#5hKI&K`MUY8|ybjcFA=qQYL-fbfVt`(j2ivgo1V_|Qk25=j}-
      zheLE&=U``lY}EL+K7=*7AvDr=NoS~)2=*Itv+&?OE<7A*-bLaBglF!iycD5YSVx!K
      zXtymW{dh`q)@_CylG{~wcX#1IYEH35EI2ah8kR&dWZ&F*(b8$q(qv*wvM(S<3cm2J
      z(@!_4L^!sV_BMlZkK7xOj~5KutoN-MwFOV8hTJFj(+_ni5|qUQ_QoD7HU(`X#cM%Q
      zES95LI&Ds7QxS7*R6nRzx%3z4U~UT?2@bPBO^T{5q9`t5IadN7N)h1yBve2Pyh?y=
      z1}`4-t!I`@{BLAm4QhEG&$r7sL--#Ei40=G)7HRx-h=!HZa^8fqk&I`J&f>^`L7UD
      z9Eg>ca0{Zj2t+p_ObepU9_B#k(^O0&h=NTY2G(4RPl8~{5x{0xhETAXHkeEySQ+~c
      zh6XV!L~?UNXVAEP5TOAyQ{e%$HlM?;=9)#Pu*8S6Sl-og4&|Yi0bJ2sv(jl?wPC(C
      z&L2Q~bIsLGW5;rTgZ~_iP=kK}>j$v0xn}ba$nw&L(sQT?HIxouYfgi8WCk37AN^dS
      zTgdQMvOh=@96|`UV*&2KVjQLk?m|0`;2PY6t@t>0;9f*<Kl<<hvUrfQ9<nU3!q&~T
      zz(KCoc4{8NwVZParLM#kxRHxrLY%qSiH}frA06W+_Lf?fn&_B)7sr&SRV_<-jMPk9
      zwB~fEAp&re_s59)IZVLg7MB_JY?n)&vl{xOi|n(cebkY5og>Y#7dbSA_RGnrviiPE
      z?Vcpp;~sp&#W!4hgL>`aOuv3-ckp{0{Cd(KL^xD(61zjy!ILmU)s-i)Cnu|pb^y=!
      zWq6LVo@ao3ohWBLGV5KL^{&i%SEqf5IWkx9T|Kf){VZPSw=Yr7w>*AZ=AxEyMLuTv
      zZORSG<rcQuC-f}RXVE`^TMH3iCf`>)kvU`=!EN*>8)v?S3zXE{{xx@cnbq`~XKIN%
      z^-j8<J#~pQHApYG>lBzAPZS{h$b%4c5gwp}+6e8AK`Iqt@+o}6he92G%Kx`KR;hHY
      zQi)G;EtJB;E?~~WlLzssLacXa;de){@TVQD-@s=atX4<8($F(_w7@n}?$NB&)ocyc
      zI+Hbw)HP~#a#yJNBpwab{ANq@0FD+!icCPM)FH^TT#eLwysFk^SBuXxlDJpV@4vt&
      z_2e%OWiT#?-_mBGdexUgFW|Qx!#w6JX0u#=Vq#Jz=P)MJtPiDw_?;Y)nJ6cbStK$C
      z)iMv$r4e(b2`v)BeEwg`LsHIc3teIhopj=7C_d@Xxzfqb6=!gKJ5$ApLenktKvlR<
      z6%Lf(_wh9c>dP2o#onSbczQcc_lLYr@%kfPXL<bzuXDWqjMtyH%pb&GE%#f=_HS~k
      zg}C;RE|kj#s<sjJvI$e<TFl^KV2*62nq6p?Em$a9EnZ7(i7u~2_*?v)wakm~_xJ~k
      z^&<Qu{)uWfb4U3OzDxCm!SX$qb)|)|^bF1`>mTs?7heC$>)&|&kk^lu?N1!G|E;&5
      zA4Py2zsND4OPfH#Fl0BzON6YuF^%uD#6*+qA>$}6lf53+OI_AW@hkk=V!hO5z0_en
      zi~jT-#)7hb1+O}+&pMH_lO*0fZh_!>%Ktg9U-Egq{f^ntWoM)@V{#v99uVI#G`TOO
      z$1o-2cV5bmVQlCb;a*U#ua!C7mU3kwSv1N4I#@pz$t~37AePH*SSg2amE3`=<xX_U
      zVQiEm*d}-5M!DDHIXhilcT(5yTAuS3e&%R%pQFt(imh_ASwe{q^Lm8OExe|vHp*-4
      zF@`DsYmPAy@qfZGloZCsr|B?{(qTSJ%1250F~-E>r2KhYE>C!9EpurtBdvEdHuU3@
      zL+g+gx?EaXrM_0C49K*uk`>2L(=v6@S((y&N@n|Tq(r8+JpaVIZx(DpavYU%f=>Jt
      zUEu_|eASX0vJqXma~*S3VzSI*9Q$bMdd9GB-+ukZb<tcxqi`7{ms8|&np{qi%bEAV
      zCHNk=%pZlzH^}82xx7d&=g8%o?}N*j_rT@SQMi1YTwW%ZSIFgMa(VTAa2e;iaRHab
      z`CJy0%Vnc*d5v7olgszX<vh9kU_>tOjL2pDd*E{UC|rI_E^m;_o8<Bax%}jPaGCi3
      z#N`*{@;15rid^0%mtVhUE+TDi$?+t6bh}<38jvfxCLiU#`;2_pZxu5<DJ*SyK~^6{
      zYs*<#%@J#lG3T(qWT?N+?jNiD1G4UvY!FWkWbFYy1Esz(sPK(Nt#2Hr`D)PQtHWYn
      zJy!S{u+BHxQ#Gu26<E*RO>3G`td%X?-B>TmHn|=J)lJEB2o!A5zPUxKn?XG5Om1-|
      z`$B~?7kXy;hGxnQvfY`v+Nll<C%Tw!cNCOqzAI7bTj9y6o|0Z}5<MV@>>3R*T!?rz
      z5wE!bVmG%{8}V}3rFB&<1DutfLQOY&G_7(q-NQ|}D6hrEG`)$uJ~|?=y%w*1qahB{
      zbPo}u7eI_jytt-|Elm@Jnr4b<>etUsg{~ADl#dloK3vR|BrO?da>P+;Iw@pdMBN$b
      zXVoaTcIr-ikcG2kwI>H_#jx)o1bh#p+V?3;@I8V_zR!4cp6-aLW>I|yiwG?`54)!p
      vSLa%}EA*_~{US>JCrS!VE+un{=<JgRtowuV325=|W8ot55c7szVbuH|5Ft<O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JOptionPane$1.class b/libjava/classpath/lib/javax/swing/JOptionPane$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab081131f056a8ff284d6b0c6a15cd83421dbd58
      GIT binary patch
      literal 441
      zcwTi+Jx>Bb5Pb_Lr{^h%AH-PLSb&A+#S&v;h$I+L6Ak^sO=QinOZFD<Z&{gG_yhb=
      z#yO<Wf=zbbe7-mH_5JY)AV$qcLE!L3&g5&9&6R$RZto{f8T}wNoy0yofup<}$+?SY
      zM%qO^GtKBakrPK&pmeFUa#sSydZRDkwM;?*ir5IThLS+Jt2EtB#{;rYa*&chwQGhl
      z?Mtijc$xIvNM)?mUAaqBAb2!WJEXSCCn|rcXZe&s*wLD7E0tMBOjf?p!_;KV)FU@C
      ziH}`@+6sXX`#4~U%t`BdCXuPYasB@~9nB|enYOJQQ?t>>IrwhmPw?k^8GZIH7#Eq-
      rcdWm$Q$WBrU_>c~$Hh&K!{u0rEyg0Y7oBBP7QMd|KovV|J;uEsuF7Sp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JOptionPane$2.class b/libjava/classpath/lib/javax/swing/JOptionPane$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e91f40a8c333c96691d0310ce2f834cc7461b41
      GIT binary patch
      literal 447
      zcwTi+%T59@6g`EJ(Qy>S2Qe;;i3@PyC@wK3hDd^8)I`I+Fpbm<EonR8Z@DsY;RpCp
      z#yiMD7c}WT_j&F;U*8{}0M1eKQDE4A;Zyz^*_l+&(e3@jNv$5Z630y+9>Y;yj`++)
      zVk(r2Vx3tL>%8ka;S(neL+Mf~>8==x^+un;YwJV=C}J(d3Q7#+o>by48xMqe;)7H$
      zRC{{J(>^ycj~7YLjihBb=q<gd#SlE|%nU_G<`b1a)zf^6A?zw8OgrV)3L-1ts9~xt
      zF~!1-bmC*1p|)f}h+XW_3hTIWu}*l(a9IC;PFIm+#nX=AW6^5#aR$<j{4x5Zm(VBg
      wf^eQWdB^G-IRyk{145LV@Tj;>akv-@u|ZhG=Df3v%DnfN0;pn(tVg)>1K2faC;$Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JOptionPane$AccessibleJOptionPane.class b/libjava/classpath/lib/javax/swing/JOptionPane$AccessibleJOptionPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..862460639ce9686e070e470e1141ffbb937aa029
      GIT binary patch
      literal 845
      zcwUWCOHLa>5Pf9^PizlhNPzGOUxxq|I9VbhBxHhQWZCBD4GYwm7HKr}py@H618@X3
      zIYkl)MPiWy<WLbcqmeNY7TI)lRlQgJs;d9|z5fm16Xt9r2ur8pLR=NhrP3#bt?GH8
      zJY5r7=GGexX^c8@Wn0vSMaVy)6uq-^PfH!NGg?7H)<|Cow=R9dMfOV@1ll6>6g_PM
      zp@X_`o3cA~bGrZG+x;ye8GKbH_mMDC?jUWIL7$aY!5U$Fz9VX(POysJu}pzgI7lOt
      zMi&MgICxDM`-j<*91;7<O3O;~>`3~1f;%D%l)VPGA-Ea#<DeCaB@{Y|cz%l9K>vvh
      z9&<ZhSZr>7A+96hjB-_QU3iLHO<@f0Y>X3TUPe2Zz$774t?iYnmBZS4<qIMAKhF@-
      zyI#|8$W0ZB%eLuX4(SA^q_y;mt}sR#8#%&ohcOTapB)6Ic{N@98xt5sH<Ikxk@qT_
      z4fhq@E#6lTXL{LNVL!n(vzWg_-(vn3`hP^AH+-g})HWBYV32PPlNgF246`M?#YkLc
      jnQfS}eq!`{i=T{Q2W?y{<|Z%|ozs|!-U->Wcn|9V3wYPH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JOptionPane$ValuePropertyHandler.class b/libjava/classpath/lib/javax/swing/JOptionPane$ValuePropertyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1204e5cc638210bebb8e3baa243d85eb68e54723
      GIT binary patch
      literal 1144
      zcwUuLOHUJF6g{^s3>`+mQXZmIUP>Q8eZPtrQXtlhg#_q=jrrPsfg!`R&P+kq{syD2
      zd_>)Av?eZGy6{IC?@U3gRE>-8>&%^V&pr2^+i%}Le*thFw-f{jQ`=%!JV-lxhP9c#
      zvs`tJinSsvIZ+U1O|ICLs<hpQw}n+UrL7=D=<zbrreOSXaa)#L1?_}UKU$Q+a?%G`
      z*)0Z1-EdrKNt@7KHiTK(B=qS`RTunlh5@sNWw>*M!FWqVqCf~`D`lx7h+`VU=pqE;
      zi9#5xOM`+ALbq;MGGE&%N_$NdO-YF8m69+E!Zy73{b0!5G91E;{yzg?jZ`LdRhv2_
      zj5qYQ?0<1rS}sdhaRMh53=v{~$7(o*VeVs7x(8qLVu!0l;|cw6_^YnXk~1FdX$>P7
      zC3JF1UhetIe}^}`%5-3y(6;L#RGh)2g0oGQHdr;pkzhaM{hBa&N`3L8Oo@#!QkYgS
      zMHu+Q5H-voP3T?E=kmF=+`OLKSX{VQnAg`AJzI`&s=SvM6<pwy7XE9vgv$igk#50o
      zjE0Tz4R0%`N*MW<2aNWNYp%RMM&2VH3X`u^YIaF386J7hFRjdYDFiKN@h)dg;W&~9
      z6K%C6YzEWuY2yQLEBOxa2}9*bCqFImyBATDpP(gEAJP5J#~kOoi*rGb`M>rAVS0)P
      z$NC#+^dbuQPkqeFee;)rea=UW3Gwe_s*b_Ce8uupk+C`^o}qvGD<aeHk$i*B<Og&I
      z>o|8<a0u;O@HyJ(1yp*80eXcPz2?n$>laTpXnz);#1&li+Z)3*TxS*)!?=Mo3lAXU
      P^UmU?FVmBl!W`5eq<I$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JOptionPane.class b/libjava/classpath/lib/javax/swing/JOptionPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1361ece20f8594a8b4e218d433572e40d8a26f98
      GIT binary patch
      literal 17932
      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
      L{?CgKXwUxxhwuJI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPanel$AccessibleJPanel.class b/libjava/classpath/lib/javax/swing/JPanel$AccessibleJPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf150651cb7c44fa4002e909ade12360977be9a1
      GIT binary patch
      literal 730
      zcwUWCYcB&q6g{`LU2PX_)wAA8`bd<ILL@YmkOo0~Up1+bwJY7N$G<`%5+D2kKT6zL
      zo6<+ZmzlZeo^$V+JM;1R_6}eT^EyI=#VhmHyf3+T(yo{Gk4#%w+3i|QxUM|6#5bTr
      zBNW?+W#{_Fv4!pZCbvLB#JiMkc9oE>b~o7I{HC;}w?!Ds^&;fY2wK^>5K$1~2EvHM
      z(1!s7ItB@u4pFPIFC3~$TO2g6&qd?ZWM70-)v1}*nc0vk4nR#=BrNsl-!%btoU9A)
      z2R?RGiRD~AP@6$UTGD$cwevQj7{$1bF~Y*%Yy%URB!rK)4=Pnc_CE~>u@k4+sEJ*v
      zY{kD#uP7zK*t2cXC|joM3RlN0kE8p>ghc0^G0(H_<F7)Agn9rzg`n{R^fMmiXr1E_
      z@9{$M1+hZ$6~>cK8satPrz$MmL4r>Pi<pWeQmQ0|kq*kN@UC*&Ge#a;`iPGm{?clJ
      SHiV47PGQ>bqtr8)gZ2d+8?vwf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPanel.class b/libjava/classpath/lib/javax/swing/JPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3327f966c07bc88f25c65e7c3f1018df4677d3a7
      GIT binary patch
      literal 1964
      zcwUW^TXWM!6vzK-JC@@p7Xk?;NhuWC*a~0@rKOlc!6Ct^xs(uQlD8$<7%_@uB)Nf^
      zPH*r10__LrE6lV`r(A}&PWz!cJ-b?D#jzP4B(09l`JMAWdshGc_tz@`A7j}-iedaA
      z|As#<2ivyWC@<aSu5b)w7$$ewtKL@AbA=lk$TA#`zVY>S5d`*q+p)tZ<tzHl5e(Uj
      zwrhu%7}CYkJ%&ux+YknZ81~D^GT#o%3y!y4=TE#=m`5JNCJf~AU>KFFF@~99J@$?K
      zZg7`3gkM>c$kDp(ikq#i`@+A=RnGCcx6Yk=+_&YsHfF*HcEE6;zE@?1z7`d0%ns(g
      z7WrRoZEgx*Y%s7jhUvZ)$e^sFObms7UU{T3EG4~X;xGyfgMkR&NM<-<;wUB}>#Zh#
      z)DqHq%*1hN-AC5lMai!pnV3b6A=hed@KCJO7|ezUS87#<2SII~lom@-Jq{<O%b`z#
      zD>=+D7)rGa83<$u)m7ZpmZrlu%i4(~%JR!5PT(}d(H@@hNGNZHRLf?V>QAJ+jVSMo
      zuCb@vAj$mHr1AWW=IrfR4SY`R??=j`f-ekQWSB_0tkm@Wm^cfX(DS>cbtb*iqsU}-
      zxgTH3{+y()ld{hIS3Nfrk7+bYvCw`;MY}51^CqrgfwrFSCC$Dg$G~-(p}oU?yyF@f
      z@>s-@JZfJt9PDaAbUfsq4mG*Yx1uSM^KjEd9VLeRve)w0#eyx**iaO3N-}63YpyGN
      zHIIT$-dJ~H8hZLI&^16mA=yJZ_jDhmw~Dd@!`5@;S9f4$b};gc3@PkW&MCUD!o(WJ
      zX=O&v*pCDBl%NR>x<;T>5;WZdv`K)50!>EF8YEYfI7ldoENJ9qjWn#eUR6Cp7JdR|
      z#4rPgFr{H*8upNU()27?JD9fS+L*C2ZM<*IwDEz}#)lpH6mfxXk->Kq`8`JP1Cf8E
      z@_tg;jzpX|TR~@&D=8vH>mo`z?@3h$kRG?5#woJO^mC%6>A0mQREP|{MBY+Z)|%VF
      zsc!kd&~E;kke`hU%F;<bqtc$mCz^Femyxr6$GO)y-(AaZiCS`TEwk~QTu`#e!?OOw
      z1p>5jxx1pL7{apz$Ba2wa8+}bsI971R7dr1jMB6$uF{s&{y<flI(3bxHb18=d_kO-
      q3GSQLXXL@q+_Kg;K&%_x;{Hhl59r_&ZmIiie2wT(EYfucng0PJjfvF&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPasswordField$AccessibleJPasswordField.class b/libjava/classpath/lib/javax/swing/JPasswordField$AccessibleJPasswordField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed73312d51202fc391ee22487d1913f68873303a
      GIT binary patch
      literal 874
      zcwUWCT}vBL5Iqyutj1O2M{A8%t42`+rlt5$6hRUdCDdTjsPv&+lZ#$icVX|Q+Q<54
      zANtn+(H2DT!5`p{DxF=HXq4E#+_^Jn&fGII_x8{A4S+Y8F%cuYJr<wESyrDa=P<if
      z6k4CUUTs}TyOv(9R;AYJz?RK`34@SnB9`Tu|A^EG5|UbaO4t?YY2`W}HuD79B6R0m
      zNBhF@E5feJ_HQ4*e*bZ?e@=+|M@pw(6GjWI1uk*kvT~HaLKvTYDsiqtFmi59c7nB7
      zNT4f$HuPJtFhCf2KyC;RiM<8o$oKV=1L>6o_eJP0xK(aOa7*k*K_ie%SbRc9%ZYL)
      zeTUM&gLmAZ<jm|`R82&PvX%cO+nl%5i4nXsF-n;HceaHwjPvA+tEJNJ_D=p&d2O#u
      zNdM16gha`$dsVrv0(k??O)LZz2-c?KNH1qIB(;e&A=P>!gcq%5f(hPL8-LXpQfNn<
      zJu~z=lF49!;oaZ`b~Dn$-aGbVY`f+&m*}0(T%qq*m^8>|B7`=$P#(|tW-*CV@f<^J
      oSq6rqG7D@2%=nGe&jvpp#)|j2M#PQbRd`NdGJGdsPhlFyUwvugiU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPasswordField.class b/libjava/classpath/lib/javax/swing/JPasswordField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98f7e241bd3ca626bb93036132c2ba51c492ed6e
      GIT binary patch
      literal 3032
      zcwUWGOLNm!6#lN|Sc$Fh$O94*0<@%Y9EuAR`Us^2CuyA;0!_lRKo$9th}e=V$pjYd
      zzWo86VbyhKSfo=RrOcFNAG`J!bUM=?(M_l4Udgij>adZo?mg!_=X~e8NB-^KAAbUH
      z44#S@!@j%vJ^g;x-88MW?7~IebvJFNIB)V&QAM0#Ps8~#zwgO2hHh@G+qre!VPH9i
      z#A(wqy)z6-dh#+uJZBeq5)3H~Dl~>;=|U9ABcSZ8ZB)zL@}}icwxrX+lIPI*bY6h$
      zESMI*P%W==XIWn@afZHvZRn-Tx?_s>U^DKmn=Zp>p>rwI41?*`C^A!#ia>5TrL(lm
      zLpAJDwQNxgmM2Eq0FhY|3Q|2(@jeY*NDx8Apge|=|EZlQ+H_2hFRtF@2H746;7vR0
      zZ!K26O4Xx4TrbOvlXLeCUhz!Za#b8+=WsC^3h$}s6ymY{0(AK!OlFyZhuKX;+
      zKzg#ZylzZTHyRjSAtqAfIv1*d8c#Y%xzW9NIwv_6T4Cs|Nha?uaZh?&r$fW8JV=rt
      zPpCLfeTq`Gl0UCo`WkmMyor+xJ1Anowl`+1;ymXiVm3&(<`6lYPU0=RqvCCby&X(6
      zybGdWpyJr~%p#w29NVG&;;L?JkXO(NebdY4>~h7nM88BmiczKXRZ3=AiYGbCD-Jhw
      zj~9jJ&uW;#IiH`|Pz3v%Qf-t$3bUA3F~>06(MZDw_>iGTkie}qZ(UND7p@B$-or;i
      zocVm42C6vEFjU{3ab4~Royd}tC}2_C(~C{l#1{;etm0#a@s`BS=|yoNB~V>?ioBH*
      zt;M!8C;Aiiojb13L!uN^C5Wr3O^9gnMo#d0T@*Q<#3#6=;wHnc<~lXp##M6nq{?O-
      zM}I(X72VOxzCkxu8K_V~9jiNEsFq3>ZPW6&6DebWl9(|J?z$!wl(Q{=P)vqx)PqB_
      zWO@&>EvD0A7_4hBahGAY-ikEwk~k_z=qEZ4x5IUp#)Bj_V2Qrk;aKS~9_3hBva624
      z=S|VQ{zikN!k1=6-m<tOX9cHeIMgXH4pHd}ePtM8Vi?kDH?384)3b-(P9aV!pgY5u
      zvW?_-w2q;do=N%zZjtS6?4XtA+hHemNjy~|35>IZ5%V#o+F`7dttm0~_;vw?SoNWw
      zPz2gQD;gVVgXWN}+W~Em_I$Lx0onqgDM4<dZO}d^+b<;ALEo+=w;FCt;%WizO~Q@S
      zZ*OMm$o_2%Wt1lvu7mH8U|*8M6>|AX2FUmhVSrwYU{nU^m7!vCB|<5*-j6YQ9-uwZ
      zpo22#Nr_M7*8?Raz}FEzSQvoe6}&3>IE?Wi@7Lu!p!B`A)dccQq|Hj$<}@Y)*KFY0
      zm3fTeM@`P(Mx47s=M1I-=QCt2vP)z}8i?|{@ICoFj?|C{Ye?XTjKC=KqXE{*Ad!?v
      z<RQA^kCf(gUPRJKh3RA?vXA+#{Q+-ep5jz<LcdVwer+rJ(=UzjJ7N6M7K3IdS)7pt
      z3ZzxpabS#K-dDuq8R!fC40#1xh36<-o7%>O7ZRnPF3P0_mHkOOf01tfju1EO_0
      zB`izA=(9xjHAP*D#9yF&fuxDhBcpy?G&1^6<dSG%do--bD<@W$gG+J+R|AHQ2aW0`
      z+-py9qY0BG+OQMHr=eJLfq#$i-@4MLZ^_p<sl|v=zy{I9_R?Ry;Rs+)NH@nF)Te<s
      z8zSYb{fwQN=h(QG*+%&Z*2GplK_B-pR5p%&HW9%c3UFhn$meG?kwnWG&3HzWDgGZ`
      C(MT=;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$1.class b/libjava/classpath/lib/javax/swing/JPopupMenu$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1856f1b8607b9a5d686bc0d10ba6000cada70bb
      GIT binary patch
      literal 592
      zcwTjpOHaZ;6ot>Ul|mh*;tRoN!a^|-*ccOy8>5K^)Tm)!>O`t_N?I!ZEfXJ!3x9w=
      z%6O-cU<@o~dgt6T-<g?y|9pM{sA0o|#*n{vo}A}O)br$B<?J%(#GQtaaj9m)V6auU
      z;ycv4Xx$69Ya+#v8>&~alupYR45@D0i%L}@)<+}v$#dXIuY1T)+#F}xYBCr{!L7)E
      zVT!{<+JcTOM+P>7zNrk^x+leX{MZuVO+P(X4_wD@I-#f51JO`NVknHsD%I#ndKgO!
      zi&!#|XIL2R<S3|cBWedd2J1SALsy)5DkD2|?WoNR{8UO29{Elb2};i%OV<w~0yadq
      z9o%xPC#;U+KA=jM)M-qB*|xeX{TYo$1{SH4RPE7PDOP#=4ZQq;>6gSaqqL+$yETp+
      zRh(+2&SEan=V1>hyYyAPbomwh9Si>$8f9xUe;DZjLq{=jE@LI}_9-CeD$NGH+uAQ_
      CmUkHd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$2.class b/libjava/classpath/lib/javax/swing/JPopupMenu$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4aae7a1c3ae2ea7b74030a0aa155a09c9c607370
      GIT binary patch
      literal 639
      zcwTi;TQ9^w6#k|yrCVBcXWjd-R$|?r++Ku)tV@u6@YY=uMrta(EPqSll6dd~{3vmz
      zR*3L0GiT0s>32GB?=P<a7U7%F7>2HbW^h+YZiT$4>>Win+08zenZIPhU~m;$2?N3o
      z>sP#ynrLV6zPrbnltDe@4DIQqNc;tItp07e#!zSmq2CmV$QA62RO>>Dbd#Z2`cHN?
      zTVpV`qI2E}2FHep4psHo=!9iKN3V?n`WW<*qB>O}`9XGF=ke)hG_M*pg0L3ELfu<U
      zL*-={`RB9#66Mw7Oj;Pln2938z~4+8<CtKu5}ww+Ml(uzYU?D*;s)Ols^@%5=9LqJ
      zy(=Y;x56MvI7M-`Wh0Cda^L6aWps`Ono_6L2F-QV*nsP)q3QiJS_RmIc2TuKcb!hB
      zJokw1a`6#v`5E4QPVA@M$_122t6+dCB_uiqF_ia*(buwCC8omc@&h?Nz<t8VFCT3g
      d1#RVrkKOXoF_|-`Fr9N*jshNLXgAcK`~XxffiM67
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class b/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c54d3c7531ac4414b775070d37062a46fa18ef19
      GIT binary patch
      literal 835
      zcwUWCU279T6g@Y)>DqK_l3J^_ezlDyZLrZ7K`Meog_g7iHF+)5IK+|dOxW4=<F^Pt
      z_zP4J#Rp#n|ABu-yt6Dx)f9c1JLlee?mhR;eE<37D}d`*3s4|5o{8t;Wz)V;deGeI
      zm|;5Hl{&56>G!3z>L8M1X8`|CLdzTujg~q&N*Fl_6)R&UqMnScGP=8cmq0s&*_P2Z
      z5jyFKD3!&5|M|y_Z`C?sDtW4G?Hb{1d$O=C&bg(uN^TRD>c=Im_XvK=Jdx924IxUH
      zDZ#^Bh!Cg#CXNJW#By6{xtAUu$oR3~c?ffD)8`=skHR>2`c5k0>M<H7ZjjYi2QnFl
      z9vW9_t-hXD5qU&KDtXoXJ#T9oOSll=JYnVE*�C5~0+2(CK#eckk_W3AO*}!kkAY
      zjr;Pxa@xvc^_z}O2)DJCaVrwmN*ka?SeU#5!u+HqV3{Aq<3CuyB8r$|6lCZ`rQ%*H
      zyZii7vm80e=qBR=+nJ5VN0c`jpHO|DCC&3$av|>xir#CSW*jn!Q?Y<EZ22SMTwZ3A
      jt&8~|u=sAockSW5J;L>KZUL9Ga~UgHAIDzB75KjZVcFF}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class b/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0699c204b9cd86cfe61cb609e9375485521078b7
      GIT binary patch
      literal 833
      zcwUuKT}$IY6g@Yo%^IVvUAOD^*0o4&(d>fzqzF<JmHGiLeNVeXJEcxal2-jkzAgK(
      z2>Y-<z#k>vi3L$oM8eG6dvne`XKr%;@b5o>@AzuLAXGZuz`J(CE2&!U@wwmY_fCZB
      z7x$Wx^i{R(sg|h8FcL}x7E*+)Cb(U$yJwA#Xhs&&gq6735S|L%^T6+kAi8-;CZwab
      z42$0gv$bT=ZN}_KC8J%!LTMCey-r9~{a<1ngh>Y$KG-mkaWIZ7!7OP&rY4m*?O!%T
      z@Y8E_1tC}Sn_jo>1ybk3VoF;gY>d!KoC3R?>b<xkVfD#v;sEvsLPfD_Qw$<P;VmfP
      zaOCCRWpur6^N1GoU~GbY;rD~4IFS0{nP={%Zb@*C6mzOwFAPO!p+LwdYY}FW)KFk8
      zlh+t1o7G>1|1uMX7U${&XIq>ZeA?y8UpVDEO#R`^z%=h^#=yKqj$=p1%=(BKJ_(<Y
      zA9nZ=<GJ>l_&X-%pI#1$I{J)RwgWaXH*B%S7*q4gl{?HQ8!+Ov81GA1j?EB1U$6q>
      E5rTWi=>Px#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class b/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30e53542570fc06f654b9526a0a5bf171ef369e5
      GIT binary patch
      literal 503
      zcwU8&zfQw25XQf&Q__Y)p_IZ1h@nM-3NaS36d?r_gjCwyEmkoKN#!KK2m|i}6A}Xt
      zz(XM}AqsyMJlyB=-S0cw?;o#k0Curzqd-`@k~i|M9o}kx(mp;5rt$Pd`SE67O{I}h
      zU~E`~#;>ltMwr>xzK#wEqS+b}tZs0j90-&vC}M_C?P*_~#@8cd&gIBcgjz2cOK&KR
      zPV(%~iY|3X*y#Otn+~BeQPIHddNK^%LqfgTN~yLdndwJ{(M}1AT*>(yAGidkAH-&?
      zj&w4(`aNVPabbJc_mxTQRcNE}_wji@p`80-9sC7IR)Kf?bdEM>d#uD-+<HOjIW0RJ
      z9ae~YSmFV*oL9b@Sm#&?^QdM9+nIr=Ej;CT;tuin0~HxsKrM|+sHbBRco{1we*%;S
      BZOZ@v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu.class b/libjava/classpath/lib/javax/swing/JPopupMenu.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37103a576a8b64c5a56b68e5f34ce997686f4498
      GIT binary patch
      literal 12623
      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
      AE&u=k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JProgressBar$1.class b/libjava/classpath/lib/javax/swing/JProgressBar$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb2dd14d1a9080c3c4f73524ea0115cc8600c395
      GIT binary patch
      literal 780
      zcwU84+fLg+5IyUpn7D3ZE~P1j2B<5AAQAFbi3%YiDz!>45-9H*XCRAQyX>0FZ&hkR
      z;(-t7M^&A5QW`2*eOP;T=A1KUJpTFX<`zI3uUt3+izo72Ubf7IN{(CaKkM{ZlQDZz
      zhiw;Sfxy;VvE=Hf{s~2yiz$JXNfw<`lC?TR#!y$8j1tlUQ`u0NaEm*1i&|_m>WxZN
      zwj;3ID2A=~1j?OsKotl)^5J6ILkU$M6$ApMh6Pl+Dxr^OU;3mEWj`i?*=`!ixF@x;
      z_i?gpZ3!$Db_?5V%Qu<KXf)D5VC}xS$$|H6%nm)&u;}8MK&?pG$8&2pI8vGp?&&)b
      zJFEYvhk$pGp6Q6*Dm%!`r1Ykxvh8;XfBQ}>jUgVgx}QXGYFO?AWy5sf<0V3Y`AE}U
      z_rD7Z8|#G*{-Cz8#VaWBc>oavb`$(BIeaScIQx*J*L=4buetF9e)AfSzvY-2o69TA
      zc4EwO<a2DZbC}QbPp~jn+2yyzPB*{9zrxdhG@P$+ozq-nVT2oN*k}pMxyu(hr;e4J
      PCGuWi&MH64ysx$2dZ@TY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class b/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6b14bd6e7e4d6e69ebfb5dc5016d3ef60458f44
      GIT binary patch
      literal 2399
      zcwUWF-BTM?6#w0Puu0gK4+|D*rKOZ68z9AROs$5Lw!uI!p{Ye}U6R|dknA$Mn|}E2
      z`0BGye$~!6eNd)`86ADp8UF$Q8^?1uYZ5{NdC2bFbI<vm-|w7zPyYV**FONvV@HCA
      zA-1hPP#?vthnilBEw7nI$>f%`sG3uWLV;G=W|_B|CHNSk2ZEADW!KQTZnuUsj1u}7
      zF4O~5cV8=O_TyO7JFk|joMF)7rlywj+_W@9zm>Yiz?K<KBn{oNRo!;n{QoTcnEf-p
      zw!_e8Z)w)lWrp!|Hx+U6x}xcteU;&CxVu{<&)`cMMIHphunZX|Lh$00jFT8)IMWu|
      zQ0D{=q&1zdRx6v_TvtgBA*7802~kN7eY-}Vpvy4dl|`45lZKHJx0{<eTeW$P+YCxL
      zl0Le$|NF*;oU<~<aVCffoR@Hp;dD19GA40>q2Dky5~<qM4(dfJh>N%+VfxsHI$33e
      z5n%}3%w$s=nbq|~n&DzEbct&evl3<)rh9NFbu#7<WALiQB11UbQ<BJrkTWmi6~Qu)
      zU&^khl7eF&6`@+D>h^>qYRfQmpg~zf^n3c)<_N!d5O3ja2@4F9$9v0&;|hbkmd)JA
      zF6DCf786;9sb2EXsXRc^y>yq3W$8Fl_!xyJtENdO;t<Ly7bR9!=_u9jLR`WkRi<f9
      z={7HMGeqa_nv5k}r?L~K3*ik%QXwR8Q{1@}U6*i5T&^*zd)ATg;iQp`5MALF8Smn~
      z5Hk2c!Wxa1c0U<eC%@*76+voU#x0RKV7a6MxJ|daEv<mRBVz*}QAO`-CZ~I|%T4=n
      za*N=J)j}()oNdzOinmxYo7=o#cd!Vx{s(ns!-s_tFQZ&^m5W}i&|IrjD~IS!K$Wp6
      z)P<T}ZixD*O9-8;`;Cyg7k%W6s#)OIHF2DWS_j0OphxF0rR&^GmQ~B*G}=Zx4=|jk
      zl6mRphld7`gaECB^e5y&XmC)>T3QF-qrMN&&LDj)(4L3h{Yvx~3@OolyzsLVFiOvm
      zv!xQ;UA#yunS#g_r!huvCT5%q^U#HfDf@UStvtujbG-Z&PDb}IRfBT-DMnqR?`!mv
      z^|G)=e`=%}M;|?RC{>xbRp?u%p<!SayH4uSI=q|O4+XE{HA>F#I^J+e%sJnHZx3%a
      zk^3CmXDtGJ4FT`qsvA4w#(I?Y$j@6MJ&i~@^o<I7oxOqIkhmj6){xxCjdqwXTVMtn
      zFw1z~h53T~y!4)p{sq7HnNmY~MW97%Sgj$a4CiMKCaB><-?K)NN$M-`4Qcz9fWD(9
      zeNXl$RL39a-{A?(`KJznbM+)H0kQfRpAdz9LbyvS53TPVrR~!W+V(nXD;xz=>;Ut7
      V2N(}Z&T|VI#DNrDn!q-E{{h*-M}q(W
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JProgressBar.class b/libjava/classpath/lib/javax/swing/JProgressBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ccf5e6bb7fce0fbdc84b1e36afab01367ac4854
      GIT binary patch
      literal 7973
      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
      XsrGxeSf+_2(R)`2e)T=Cfp`8Nrw+hA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JRadioButton$AccessibleJRadioButton.class b/libjava/classpath/lib/javax/swing/JRadioButton$AccessibleJRadioButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00524ec2e5cf354311511b94e62774f30f6d6db3
      GIT binary patch
      literal 864
      zcwUWC-A)rh6#h<Gx=<ErQBjJZU?uz{R4xs~1d1jl4J4)XLPN+<CS}Yzlk99ko`)Au
      z6GOs<55OyU=YtT=ZZ^6o8@QP>=bZ05^PO|%^6KIzfMv|O$Puca#Ig8NwI@n<tD8-6
      zsLXmV42`a=bvn{ob>Pc%*o8w_zCmi4Zr7Lpv(j-w(aJyxzbyl+jNYwp5NMMyTr=8+
      zLWgbP_hf&qIllMq*V%7EK0H#k@|sX?WJz3M)T+`dd`p;|%ZAOj2~N!%%0aLW4+RVr
      z(1%eE9v%{={-LII$J~*I(sHZ!`9KCO!JQFC8>Yj(2=0jeB<Mtnc{rIuGDga6l)5tf
      zn{1k>-0a+ZQb{Bk<*V?tdK0%YhzU%(ct)7H8|`5V&k0_0ZKJ-uzrNdQZEq1O_j!j<
      z*fG7JBj2k?T`AqcQpD%7b**Jk^M$q2x~LGIW{rX{cKa|e%{%Jj51K<6{m8TD#@;}&
      z7%eWoJG{7I&OBi64f{E^Lko*PFtV_Cj?%Xn^oY+wochRxKHxFmJSH&|V|c=r^<g|I
      kv&1&aIp0zK`iGy7V=~2c5^fGJ;&U1^@jDUwC0@a~1_KP==l}o!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JRadioButton.class b/libjava/classpath/lib/javax/swing/JRadioButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..027ac9eeedbc4ae7552a34eafd1eb0ee04fdd5cf
      GIT binary patch
      literal 2256
      zcwUW_U2hvj6o%jNN9=4jU$&d3r6~mpvDa-41wyF<G;s;t;Fi+Vk;vWD9?ZgK*V<h}
      zDO|%P5^xLGzy$({ItV0$_z)6zNQfW6AK({Iab|X7dt*oR#ydN6&hx(K%*^`tyWjl)
      z;4y4wkYHGNoxjO%Rs6Rsr(M~&&Rdqd)(ryJ$somWG`4!fZMSU^E;G#f!n3%&B|P79
      zorZadfo(8M)m+C9xD#w~yDQRfeB8}zUw-fz!^Dc^Si!Rl$zo}XAyso*LIcCJ4h=I5
      z#bRBmRcuaLn}J7?)%vi$*>s)iw#=QWTaLKe-MJ~e8~mm%7;<&DNnSWPqW5Sr6})Eo
      z49DsR)mUXXQjD#xHUlcATH2D%=B2Yka<ri1C<+Xdz6in)DwZ=8#w9ZxE{+;kHCs)Y
      znHyatu`xNS*sL#X(F{b3B)9wQSeq0(5VwLoc5JoJj?F6e(mnNDb|Z;t*@%)317)@O
      z!J6x}gm;Zwjxv`jZij6<qvI?pq)IWDUC+AhIsvy=ZL96<2q%z{rW7x<Wiy+?_bu8k
      zIyPYirD7?vz@tUWwt}}SBcatv5_??76L^wgj*pU-?vazhQw)`Z4#}xO!tk_)Wjrkp
      z$OVSQ_};~in5<N%N*iX)=DshlNg=8**7hvuYD^7fHcW;?9q#d+FhcIZs*dNdLT94e
      zY4JcbObwT?p272UE`}X6%q!gCZQ<#70hbxl$^gUpeMW2UPRDg<Q>vxdLdWK>R{Dz#
      zlUlT~?`xn!_MFOXuj{yitEA<JS|^I5$h~;g6>Zb)dQGuz$-6o?+_bYYk=kZDj__35
      z1l{BL@f(2$NIXfOG`i_XV}hO;dP^V+oyK&7=~t(jWu#~XWDUlWyO{b~Ma|N$Mo++{
      zybk7Qq=#|HA+NX^3K3(SB4w;*?BcLd?%~LQGOb+PCY5(EiFXxgK8%h?a&!#$5lb?U
      zN6d?qkqCX2$N74Xe7!$J%l2tmEaF5&yFa3B5G@(ej*p>zNVJa>?PM4?LX)GD)YXLI
      zJ~-mCJhpqE5cksqTt0+Tk;{iiT$b55m!A{uivwJSw7APhM!BcQxx7Q%-v4rCA42X-
      z#BCEdMbA8O7k9B_Bzq_tvsw?Q2NF3I@)Jq?Oi91c`>#sM2vhq~`My*>l9D4?Op<0F
      zrT^wZF*0hw_y*^G!;JAgmS3TRcm58}$*HdpKYD+V@}ETdYv>R!^bc_rD-rjM+6*9>
      zduD)`P*Z;or6!})l>FvIsg)=-O*Ss>PyS~pIo;P?>tDbNs;LxV7~i7yBg`IN+`mEp
      aQuN&+jvjFmcuD<U!^<j`(RF6Hj?{nGZMJOy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem.class b/libjava/classpath/lib/javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff2f31ef7c5d2e07c00b071a4cbbdec69ce61dbf
      GIT binary patch
      literal 924
      zcwUWCT~8B16g{^rT`7wc6qPEU7D6GR`e-1MQesk4At|LknxRZ^%rcwo%!2+7{)ifl
      zi4Xn&A9y4&KJq^ZcQ@-tP2>79ckaFCoVg$K?dr={0FSZgB1hPGEl$LnsyS8qsJh(}
      zhbq{NtPS*YsiTIK$K_hLD~(YHzU-HF;Sef4BK?>@V}zoSp%Q*ahDHT?zp+K2ZNf-B
      z(8daFJHn6T;QIO0%#V*R&Ioz?N}2K_!hAEU)HO!0E3NEP!opHEywV{!_25trf$Q>6
      zz;FQr828}e7NPW)L=SJYskGdQjt^wm7Th6Wycu-4FTvfhp9Y<{dO|I;n2a%VYhy>!
      z{sy&zSblM-k}8WdqkLuGR(o-4L%5GA7Y}%d*=P^bm?3zr+E!!t<>r37y}Lsw|Ia&w
      z!d?)CUHMGK)lK&6WHr`d`G(dqtoy<kX<U>Evsoh|O#gdGnBzST@aN8<ghAxla})1I
      zu^2BmxjVev5zgFX?+N=kw!_OSpD?<-@)=|A6VPow3rXrb3teD>Zyu8viaWT=mT(V~
      msmv<dIOlvo>D@1WK8aoa!F5t@4ztNQhxz24nEen7aIOJ|yZFHX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JRadioButtonMenuItem.class b/libjava/classpath/lib/javax/swing/JRadioButtonMenuItem.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db31f6240d0a3e3c24730a064388973d0fd1b9f5
      GIT binary patch
      literal 2374
      zcwUW^-*ekU5XZk~%dw-XNt-5VQqnXoDY50Yra<}S(vYSEoH!{oaiDnt)wwYOMFLBr
      z=`;KR{Cb54-gsePhQ<YEc!7Z#{wRjM(^a-(ne@Tdoo@HDyWic@KmY#vJAf;ACyNxr
      z+y~Yt)_&Q)XS>bv>TPS+_HKkh;JNGE4XXj)%R*zA=&|Y?4Kd6{M^>Z3ec!%oJ9cot
      zyrgyxXE@>WmTfuPyye@TTd&?^V5<zrmp#`HEH~J;oRDY2hrtiuZG1DzFdW*;j^+Ep
      zaI7ZiWyhkhn?Z}BS8^bmiG)P!RfeH!wrdC18PbK~HiNe8?Q$Iq;|5M(f?=W153F_9
      zR&980MYxXEY?p6@dv|$j%aV1B)w~9kVNo%(S1+~TecNX^Upq?13ME}g4yD<&dQ@xA
      zY3$RJu=EM|e!y_L7rE33YzY-L=S9sY#p+1|^EgM!`aFnCNGVG##*+xbt04S~^n5JM
      zc0^W_38wNO=W~ZQ0=`SV--+!G19YS@p2gD)r5-uAyk^tkk)HG2n{{fhqoa(xNcdR;
      z&*7>J7RVEZnchHMUL?{m`MhA@MZCn2*^3;e2ihM)1+QdrjYJ<{V&FO!8IDo-&A42x
      zuoJao$-oV9Y|!zF*9iS+fQ%*&>eYDQ#|y=N3CXI(KMuJcIZ}v^td_MGoeI(3Ft7sQ
      z-4qReboJ<hMN?8#(80G<nO1}(H3RF|U^r>@lNKJ6lf|11i$~pw`Ho}Kv5s4~ErxKD
      z;X-dC6K|LpG=0+xTMfQq3vH*9%q|NKDOz=1-jcd=QgrtJQ$e1DNz*Tb6wV-v9Ic1x
      zGn#@<djrSg{Rr)txOwzHMsKc4KOk!|*2bxyq|qe(>+}ScFhp~4npQ?+hAB+bQy|VL
      z#3CV55u%iUSR+JDA|@j<g%GPJFhdXlJKF~<CFN5m*!BR}tSnQ&&MDXm*$6A$Y-7$W
      z9pHS2H$s7cccI}ulE&&{>M>Kt1w5sg6N<S?9>OzcmM*5-SU8;Fhm?sUX>*ZXOv|YZ
      z#Yz;Ol3cT&%VrX|_lUcHB)5c%ihHS#%SuVyPl@~40B+QtUT#rw?~}Dg&pheS#%1$2
      zl<%~0<p9r^KjZnczu@H*%=7_X?F5{p`2;?v7JfnV_a))KqM%>P;ARAigXiO-@=7eR
      z5^0EeUB*q7#wFPvAU!tnV;pEmzWTOnZqxDHz7~&uN$%;_$uM&KzRQs*M@@Xflw(=N
      z%+Of9emH8o%Q+KAtx_L4{SaqUB-7g87$xCu-67Ch53nX)b$HQ){z3iu6Q}T37k5f=
      UQ`nOKb-ELxpNu|93~xjG4>>>C)c^nh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JRootPane$AccessibleJRootPane.class b/libjava/classpath/lib/javax/swing/JRootPane$AccessibleJRootPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6aec0e9edf40acde6018cea1f65ecfa716602d5
      GIT binary patch
      literal 825
      zcwUWCZBG+H5Pqgyd$b(1yonZHc&UWagz86wF(FkGNCQp5ej*`D+2E36m)u?z{sv$D
      z4JK+LB!2J*_@fAOm&*y}jDFeKnR%YsXJ+=-^^czbo@2>Hj!-`qAH-SHepLFXx!E-)
      z><BGu>;1m8Rvq{<jk$0LjXUs`IXN|2>hLx`4H7C=21@un8CYfXyN%Zb+9Zs&jJBcB
      zVNdu2nJ?!rK7GF2J0ldr_sZ6u5oX$%vep>#QfU>wB2<_Ef~ofiPRkt1B3OZk5=KfG
      z!h{D8lZ4qnc&Xf&SZ*sVw+1H%GT0T|4Pl~f`rLxxM%Yh+P9&74ku4!>dMthXNQS>N
      zT@w{rTCOKGM3Pay3eTH&acf1);*pDogoS^jJv_z}Lb1EOy}RF8-+Du+{m&zW(vBGf
      zefd^J(#BHls}Y&tZD=inmM^T8)<umlo!LHNGGhRk=XDJ6&TJPPc&u{T_)L_3P_
      z4)17`Gh^(%U_ZxpWTo*P<(0-2#=pj(DLzYaYKIGTFwHlQNesn3%&;Zg$AhHID%&XM
      fd_(n1$}hyRy<1!-;pQ+GpYvFV--+0ZcnaqRA*Ro-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JRootPane$RootLayout.class b/libjava/classpath/lib/javax/swing/JRootPane$RootLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..380fda2cf754b64aa89016dc06bfcc39d02df6b1
      GIT binary patch
      literal 3577
      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
      R(SH`t0q#qo`1n7Mz<+<3H532<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JRootPane.class b/libjava/classpath/lib/javax/swing/JRootPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1d0917111d69ae4883d26651905c47b249fab60
      GIT binary patch
      literal 6631
      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
      MlZHL?T>{tt0ZD+w?EnA(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class b/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5d0e5522fc61bf55b2156231efa4084e6dc5875
      GIT binary patch
      literal 2501
      zcwUWFOLN;)6#lLsk?p9>gCsO<O4>9{{Yc`LcW@~<ZbBWLNA1L=X=$q1w~2x*1xaqx
      z9Xr-Q3p1=3Hf+jF=@e&x8Me&uhuATkD+}3ioX5iQ)w$<<=ljmN_vr6`fBzG}71$Dd
      z42dn}p|X>-9;y09a;{J^4NaR?%+YkI#4Sr**LcGyA<!C-F)G`J&UL#vz%xqdV7O2Z
      zP~3f0Q|-sehIdiXs+^(Q;-;!-MQ&QEp|51GGq5>^6B$FdY(=*nx8ReNoz3Tke+C&k
      z>`m1gz07bb*Iq%2e6FgxYF}eG6FtZ&R%8fdj4}^{p;v~C6A}2)C*vgg_Xm2)oWQP}
      zs`G_vWu2SL3P~Y^oKYeX3Q3`N*BB5~872<k(6-dXzJG(;jje*M*u21PhIllVJG`X-
      z`=*4HvocQOOc=vBFX0@+KzkN4MsR_l(=b(%r`Xg4>OeM(i?}3V?8r7cIb}o<V~E^X
      z%x6~@7najGhKt7`OH31(kTA|Lb_{pYCSwvw2ES4+Geo1uN)lTYa<0gDU9b!lXY$M0
      zjNsT|a;vIQZI6W`D$CHbr#*Q?bb9Q_)(F2;81Lde2~!LsM|;ai;VRX%kjXFRa%<D+
      zJj3X5ve0SVL(#oxmyYD<I8yi^g=ea!N#|i7N}r38)D${K^*fM~Fimx7n6tXgH@F$0
      zvv*y_3}&h5gy}-~qp@rRY1|NZElbxVniZF7&^kD4e{_G+*lL8X?!1f-@L>dtxG7<Y
      z#!0K6jJ%Uybw`OHwJc*rWDZ#_sSs|_t!_yx;BU)V#T}~X1J&e9rm@XU`*CKI;EB~#
      zGpmAa(#1+OSr*r~c*$;K5o&`E>&klf3nN~JR(6$(Ud+=pt5hrd=nX@Wu`bj_8eVRQ
      zvU5NPovR04NZm`!h)o$Pwuo1SW}?P0yk}@l8&$o`%Xy)DUO1#Wp+T2G>CPVND8mrh
      z!jx@h$EMzj6Kzz@5}#GY&FN}PqDcY7AZK-*n;A{9EKbw2uiccydFqXyenI$X%1H>(
      zI!s?TA0pk|Vwlr9ga93|F52m)w<+55(SK(=@hf`biCw(%ixV(F&xo^ili-%{Dy?J+
      zB3GQkApJ8jNL`pmE=)4Mi=kZnC3;@sweN8<@dBeY#BcqC0oNG#0i9&MEUby=UaHgR
      zpywS*b(gq(O7Hh*HmzX-_np)Ob$B;*5OKVLHz_&8TX@?gG3mSmffsnEf!yKPwweS4
      zJOS_Hnj1Ur#`@x|k=3S1pBG8D%d4Q@+3WfP>DxkN4Vhhh)C%)O6HJ!}Gl!2|m@moC
      zPyZ8%zYz34i`S5w7iftZ7HTNOdyC_H6V&iY;F*_Xg!&46McTe5pl_&2Pssk1>i8{v
      zgr3sp<U5DJxq1?pfLPt7YSV{~5bn{+N9(o2wB2u`?Z>v-N*>HC(Gq(@4VZHMIBfie
      e<*WFn?~s9C9&z*mj<u!-P1UqGiLd5cm&J^kN18
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class b/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e102fcbbd7b37cf812c4653cc39346b3207a6b18
      GIT binary patch
      literal 1222
      zcwUuM>rN9v6#mY(bjz~Za*-lfi?w1eKvD6EF_8w7YQaPdiTqpI5tc05WOs|cgb(0j
      zm<Ys6xWs=xl<~~8aw)CGAA4rz%sJn8ZnHmseccCe3y*YYgy~Id+j?L0-`VbZ@%eJq
      zt2@rT<z<d{r47qn7ZuwNgeyE9VM1K`6dl$VU#@M6YM>)R7(b09wuKuM&-xM~!G`T;
      zW(Xsd&a`uE^VoLn;0a+Y+s!DqLI{`YHPH*g1rs`=211CL=tZ0m%1VP+#dgI~V{1)#
      zudOvl5C$sss^zR$o-NNUWmtwpnCZgRtqvTh=?7LIn(7)MeKy?F1z3=Kj@rNoMs-{!
      zB>!q^VhmRZz3U=at~b0YhdGqZRobgQr{iiH)O@|+)<o@<gj(bRIekcC+{87c2~oyd
      zv7ClbB`V9SjENhVAPoMwD*I1sn+-o;FlDuBAd9??9AUU~g-jGMNf>==d!p&P#VIJT
      z<J#!ia=E-JyV9eQC8YjQECSVK$Ij)<7hCP_=dxz27hR|4e>*MvMz|}7%ODudjy$vF
      z@Wf8s)jQ&$D7)-aaxC8$JXVP=pcrS!5Pv<Ocw7!JKgkd@$-&w_KF#t;<JHI)c3|fB
      zaPbqLH1xBKunn+-0hXrP8yLh8uY^k&ZXtYN^f0fv!Y&evlSfE?L~8O7$))^fnEl$D
      z=+qaa2rRD?c5(BBAgu!W#sJ@$V4rmd41B=zdx#W{cqV=*@_dt^MJ{(!m{w_JP{fQv
      rOYpzuHbQZ5a(7yxP4G=fCXz4gVYYK(n)>c3c^?l{lH7gfehBS1$bc)h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JScrollBar.class b/libjava/classpath/lib/javax/swing/JScrollBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..050a5d2619fc89995b6510ea020d65c00f5d3530
      GIT binary patch
      literal 7898
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JScrollPane$AccessibleJScrollPane.class b/libjava/classpath/lib/javax/swing/JScrollPane$AccessibleJScrollPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98f6a303b70bbb88d9ac4db7726d564807671e5e
      GIT binary patch
      literal 1495
      zcwU86U2hUW6g@*JP`b2;g<8Ot7FzjgY1R7GT4RVN8e&Llc=KU_2`s`c+1-LZ`tIjX
      zF|jrA!5`p{GTzx;TWHwwz|8KQbI+W6&t?Do{q-Bb9-jE&Vc71-1NmLa7%FP3^zyi&
      zYu#>DR(a-WqrnYBsdxEE)DJI1VJxMr_4=C1RdY1sJm`myAvK!72NW)q+p^l?6~!>Q
      z%5^^i4C?|_s&iR2N>yF!bKQJD4r2%m6h5qKy2-Fy8Iw_?gFYP`F!;>2Vq|t1Rw^#V
      z3DBXUD&`SGGV6-U)fl{Gt;y%Wa81HIq#$N+T|x*;42esb=S5Ru5HZ~FW0`ciuuE7$
      zoMFDj&Hvg-aW>~tmXMH?Fo$3et4R5=#t@wdm9UNt(knNcm)o~Fu6U9amiAR-By3`f
      z1QCmy8Cy2nm6lmOT&yT6e|6HUbN#hU<G~QAXbrhrlXXSBJ3+7TjiKb`$K;VDFD1j2
      zO>SS@WY}=8^4Y+)hhf$VGptR)GA#7RDq~1rQTN3KjF72mK!%Xc4SNFYv7X7=2HcZy
      zU)Z>$^PV=~<6RYihY}tMhmtnH&7|P5cA_`<b47GGJkqxvA&q+XLM2?eD;ox<=0_*?
      zm?nyp!Gl@QM+06lhCnzh{t@&o@zQAs3$!lM+Z#f7Xiw)0rwHc@KM~0n&JaCCBL9Pa
      zXSnI?>F)&d;1;bhq6T`jwu!of2;L%&F0vGrh?wY*L!Nf}{-EewwQuE9?1IQ=frnON
      z%szAy#nU!+Xr&p$?lg)IE);vXZBg98U5BDW7?DwQ%G!7K2YGr3Ppdpm_W>Ufz$b+9
      g83}x$TE9}2-$tr0Itn~Eu+~F7rafpWiQx#|e+~q8lmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JScrollPane$ScrollBar.class b/libjava/classpath/lib/javax/swing/JScrollPane$ScrollBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..572bdb0a178acfd15e9e246b577ea73d10fe84b4
      GIT binary patch
      literal 1423
      zcwUv0OH<QO6vzKJE!MUH3PPb2)B<W73I$)NMNo=pn2HWaU59eTV47eOz|SHs)EOT$
      zGCoEqqYFn}xNz^+QBTrZ9<~dn)8yWJ&i$X?dF1Es&tCuxLH0plh%G6r%A=IErs|8S
      zsoA_~XxeQ>=e?!nxMKR?We8Vsb8UwhqPuO&nsP5SC(m%pSTXaQA!Kn=RkR#8E!EKH
      z<Ov2g#ZaFybjwzBJEv$XyzbA^o9}mjJuEOBvhS-_?;t}YTLUdkP9v(W+M^6z@tR(8
      zBFEs(7z^AFhGr2W>I3kgMMMKy$rN`z8ndd-r&kK|+`OaAYed|fHSz?k5H{`0hh7JZ
      zp{G{3oq7>o&@ff5+loyYQ@S!k(;~OWH6#B(*7GJWkg)_H2XG8AAC5D$)le4EjULh@
      zg`CRQmJO5cM&gORB>zn508ZeP4<{K~t2&5?Bf;P+%Ta5~QYmH4PGyY3vY``R+K0Y<
      zZ7(4?<#5W_FQOA&PPCMWK@9B>&hWgwPu4k7^hJ#m9>W<CXK{|9fiB$IT`5mIAqOF0
      zSi}Wfq{$+Oov8ck7l~I3AX8Bp{0pi{N3N=O)y=b|T9(uu>S}wodY)ts5yBkJS|zTN
      z`&AKR=yFIiA|@Qtjy<G%E-(aU-EU!1bp|Q4tF;48SO!tnb#7)f#j-fj_$#A?7*)$d
      z|2hchfDeah?WeC-Kp+%y2AbB6y#bB%4ACw_HV?gnQr{Muq|R*|`QTm%(=$MC2v1Na
      ztfP(gVP}sZ+7SWVRR^MU#+=rc1=r!FA22L!qN#|ZMfBcG{y-r44bo%yrRX-28_BPb
      zru!=%15y#Eqn~izi;YU~ZlZ_q6hYw`!oqWO3NH{7ULq;H!l3XPL$r3Fq*AyF)G#g)
      z6pa^>NMnT5Vx)H&qi*J72LZiO3v~Q{(6<EojzHfN=tlzGB+xAaEfVPFfk6dabM+^2
      O-R%R-9ewyW;Qb4&fJ@K-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JScrollPane.class b/libjava/classpath/lib/javax/swing/JScrollPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bd9efaa866eeadd3ffb0cc08c0373fb92d2d637
      GIT binary patch
      literal 10207
      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
      M^VwXBT!Z|70)6zw@Bjb+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSeparator$AccessibleJSeparator.class b/libjava/classpath/lib/javax/swing/JSeparator$AccessibleJSeparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1cf17fecfb843c77e48b304ec0cb5950b14f37d
      GIT binary patch
      literal 834
      zcwUWC+fExX5Iqx?ED1{!E~PD(a!U~qm6XSds!|lF1PU!mLf%cVz|~@-^`^jI6(oez
      zhrU+gOZbYav#V9YC8)f3JTvEv&&>Gd@2}qg*0AUzMJRq3Kg3zdo+^D<+OEqJ5s1(P
      zg>tJUtyTNJ>;_#p4+#}>d}6fJ;ax%}NXT0mDB(9{V3pB(TN?!0CJa@KwxQ5rQ}}J!
      z?_HnXUg@<zgmieMY~cgpb+xy!b;f*BT7{nplS@y5mYW2pVh&^mtieMTgIV-p#Dj;?
      z$Hb1{n3$_7Ex)#p_hrx!+z(--YFgZc;8xgAf=(or@cs!6JtxTOhYw}gP1Q_PYH?{f
      zsUnh$@>O_Vx{q7WU=q_VrU>)@M|*gS8A7JMxm&K48{cY#!gC%WWb39KwB#2RNy~M`
      zuSRTwx23fVD!#B*S{DVvc<%`i#(K>FbG(y2{(>n?pdV@W+}In)=c7f%cZU}>#F-cD
      zePlnyc5tP5h1^Q<8p9VcXpGNnoZ8?*WxV8@$0UYg9Ix2&Kf;@&%qrU`=UigqXNRAT
      YV>@@aPQp!LHa_PtAHNf^7w`_wKN-E%3jhEB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSeparator.class b/libjava/classpath/lib/javax/swing/JSeparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..31e7ffbfc8c0e8094ff53abaadbf3ccd006e2023
      GIT binary patch
      literal 2623
      zcwUWFTXPd-7=FH_Z9-XFD3n%GYd8o^N*lp)kb+tQNNS)++h_rmZThv{vfYil8xEIn
      zDOcV&qc_fY?FG)zgD|2u%IJ8j<F9dizRj}Prjg+y`F7v$Jv{I89`=uaA3p_f7}W$~
      z0=t&<Tl$@xd)u%Ua^sV-qC2{0I|;Nj-sSD(ifu{DOQ20)cl2&j{pW4V^>oW~6G#g5
      z*Y5RlS-P$<YnX<2H#Zi%nNnbzD;+~OOVV)-+nO$%6%gYBuRM2C(#@)D6+aF9dGE&4
      zqXJuP$6#>Xqc&9w0&S-Z%kbV2h!12+0xfxaPPRi}r-p6lreL6;<ef#sl9#H>v(lN;
      z{m@-SyUfTs<MTZbws?z%E6`hPPRM9G;z%ja+qW>rYZ^MxnZWA;dzC@X)Tv%DO}U_(
      zW6nZ#nOM)=Da(q&o4_7{p1R(o=g|9^s$tGarycw7MgsduNu!2_12`y<xTUz5m>1|~
      zO2tMkLQ5l~pk<ZD=KD-3i9-T?X~RuhwwKn^bZE?_Ba99!AHy1Qc$38Hm5Q|H1csV9
      z+awC|@L?R$@D@e{lAc|=WH|<!LheUK73;W$6WC6JYGqFM<TUHrx*$DurUS$0#i*G2
      zd@d}=bYWB#;*^HdU=PHq2AgiPe%Q6tPvAYW@FJHC?$(0u8F+E*Oi4AwSq)=2*IYXq
      zS@mHPa8ZZtxPb8l7`i*EH(j`>Tl#`@G`x)u1Ws&>RG-SxCS*k+D6%gqxMu`3pW(cz
      zyKdoZ5|=q$8%XHj{X}%!IAKccZV)HYp`4a9e1wlVRr7`;FFSTcI^Ny<B8$zb>S@wJ
      z1%E8#w#g3Ls-iB}E)=2HHC)Ar8i`L;^M59AAnIXac1f1KCOtTsgwAM(A}xLT!o-!r
      z)rm_}W5p!Oq;<n(>D-m6LVm2sjpJ4c`Er0mZHG<H*~Da|zP-4kJbA|x$b>EWe~T_q
      z^?TLOu!Nfe+x5+!4!)$H1eOH`oA0Rob@jTi9VTqG94Z2-hUTenH&v1LNxSNl<#|J`
      z!_NBUu(Dy(6f8?Re$z-U%AL)EVGq-cBZgM+>w?|b0@Wg0`N4@n!+o_h`K)AIr2OyV
      z+X(Lj&$euQ4Lg4Db$9t%G5%kpuj}aHlUCD0FJ9%TJah*h9#BW=9?z~}cQ(F)zSP&)
      zmumSI{ZG(8^91Rc)H?RAVW4Yp6+^2yyoRGcXH!(nuHsld<N*Q(7SMtzJ{fer#FTC#
      z!*hs49>Fq>!Sdnks)Y>Ts3(;iKTRCelL4?J{yUJ&KEmiPc=ur#sm+()jwF^06XT2q
      z_U}+T=2J7chI}J6_n7wm2$r@GOB<Ksc|Z1vkmi#C&003Qj`s;>6~#u6U$9gUBAB!g
      z(<PRv=4U9#Dc&{Fn9f%b(|Bn5A+7|bxxloQbo71SVEkRgxHUAM42%3FrE#9eU#hkY
      zaJp9DuBpD%DyHkH?j_a0BNljtVOIIoTETv-vB>Kf#*ZxUV;@So7H(64GdySb6l0rQ
      z4QcWGzGpYH2d@=X{BO{s&<(ER6NT<Z4c)`2Y&MXE*t+Nw_?4;tMk<~W!|#y-j|5m+
      z$>bcQ&*nVawT57vwu-!7248%J&g>JIGel#pU{Q(cQ9At0{^E@OjUD(WLVRx!A%@TW
      Oe+MpV^J?<vq2)jP5Kut?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSlider$1.class b/libjava/classpath/lib/javax/swing/JSlider$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18fdf59abbfc7ade71427f5ee2e7348a195d6b82
      GIT binary patch
      literal 750
      zcwU84+iuf95IvKGxG_uP-pi#If-5CKYMQr7MF=Sh5-8Azpu9WIlx$>d$#&EJ7E&)#
      zANT-1pl|J`AZDEaEehgc?YW#eb7pqG|G4@Fpotv|Il{`w8+)gX<V1&`8}GY;9&qe7
      zEfffjNi_mb5{LZ}`>BN@Vf$_Yk2y>mt)XDJqmz_FjtRwds1tWj$U8IG4+QW^hdO;t
      zSg+1R)Ov(MD;jVKghvV%=4|9qRw%(C<f{fy?&y#|9)Ia`{K@MFOjzthz8CboSQ~#D
      zEEq9_wONharif8V>ZLrHVL+(dmvnc+wy{N=jdeV+@R+bPgH++E5$PQ1n7j9=bH3==
      z`VT$9?ncM4&u_JnucoZKrb^s*p{%$ScuB%CRk<DdL6iv72Tq64K;Z>k!m=Op@5X=b
      z#jV!<+58vk0DH3YyqpIh$1$sy*OHS{f-TX9V(p7>B6j`dIaK`;^ItQ}f{A4rsitcz
      zilxLh(IqTr@fEC2S>DLsVCU**P#0MHi-T@p(QU@DI>AjjjP(o~naa(qW((U{6=l63
      MHP7W+kXx$!1XAU#KL7v#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class b/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe64eba7ba0629d2a06c98d91d46fac262d31ab9
      GIT binary patch
      literal 2348
      zcwUWFOLH4V5dKCFuOx5cM`9BvfD^~DrIl^Pyd8yrksTr<+d*;^VxDVhVy}^RQ@g7?
      zegOwgRB?i;5a0lZPz9+V6R6@u6;<4M1n#-#4^Z^121%9_TL<mV^mc#!eLX#`-~Rpa
      zX8_Z9UxAO|#HM~#zn*Ze8RmLoAy+br+#a1R6u9FUYb7o%3IYuA9j+;B>xyM^({1#w
      z85MLf9IpoG^1D$o+#89ycU~`*IYY0*Z9^~Rx$PL1c_BT=z!n(xr7Y8Nb<_3Sf?t35
      z!@cS0Q=c+)xf_NvdXixv(}sJJ98Mdi;hteQ6m9Df%QFO0R*{Fn(62(pz6ks{sA4|`
      z7>+bW)iim5JsHE~OXaOKZm;Mhf)FxRf#~Zbg7(rF5F{DK+Yx9jFOeQt=WgAeb9I;J
      zxXYkLW0~E{_`h#bh<HN9VH^o#7{?SGWjN3#zlsqYXXv(UgH-7*Rh>$n4&wyI6^!k9
      zZeBtaQN$P`=a#eS)#as?*$nkkCrpWE9Fqzr7{)qqCt)h4kYMoZ#UevA+EJ3&s*p3S
      z;wiy0l%LP8q*H=pm(87Wi3-~hjwmZb-;T4%TH=7m_B<Eimki?toKi5uFtWF|iX=`G
      z#at#mH=kt~?IZ&=;0}87R*mn;&vT^kAqr2GZJT<b1?8YbNtATzpK9AD6}&<<shiWL
      z%h$Obp{AQtF^{uUaKe-j{%9;6!7R>+>y@UP5lxGGG~_%w>p-+MX>2t@w{=m)OL#eg
      zWxTH7Jk5?~KNVRozai&_Ahn|6g2)_lB&iTC(nW4cE8s7wSjC%E(aVO-&)e1&Zo4;9
      z8w5|RW*S-LT$^rGvca;vw#f@_8;ejIyjoS(-ztoFS*4;>F3w_+rq@<^tA*Y$bQNnt
      zU8L?ML-gy92%(<3Tnnjs(I#h=?E*h*h(=cBRG1RXXqz@oZl_AR<8T^aeJ!&J$EZ+#
      z`UT;mS)(9C>oEPJ_z>ys6~mO)Aq42Od+19q?PlnkkKWx{{Co6i@ogOV&I=f%XT<yT
      zF~NO=$7rQe5V_(IhUm@2IFm5fBuqlv#^V|7F8c1`$xpC9eg~r!Xcxc2pfm<<p_{BH
      zg*E<dE!AOk(eoyy`i!{UqW$MIB)-5TzVuQLR^espAT&IUXDB(tvv^LDnDX{O;0~Uz
      zBX@bWZyE#yY64!w85uhvV|`k4<h_PSUoDbay;ecL_pRqA%w7^AD@bkQ)n=Gq8en>A
      zFbjB1!hAq}etJ*Fe?`!LTdN?mDA3{+ELD)x`tuVz6IAd<;C3y^2%RhNJ8Aoafc~UI
      z`it!Msg8fszrlT)>;HHJj#iUM0%G+R-X;p&gzyfne6)UdH*N2=(e|LNw!&^O#WpYx
      V+rap+?mahPKs2N{rD1F$@E_JbH+cX6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class b/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7019accc2c71a426188bb693fbc4aa3557744c9c
      GIT binary patch
      literal 672
      zcwTK%T`vPc6g{_JtF_u%>bsOyLW%NR@zO+6X*?*6*J%w###VOM#}odN2P7W+06$9H
      zSrT9SFgy32d(J&`Z}#o|<rTmN7A?dG<uh?5ZfgFua!+bIZLN-^S80i^)CbKy>Gv<a
      zp0to4IKPM?!$OKM{S&{?;<)xLB&32<<yY1Tg;s=7oe7)DRlycvWhs&of;BA|Y6l)y
      z>doa2A<^g`$utN<HY^Ne5J%2N8hOIlQlw@84#EEHx~9$ZGb|sqQNS3%@@23q&iTcK
      z2)S|0wUjG&FVDNu+ZSEUOsCcF3EdH%GWi#nFar}7qlWpr*Sew0o4~aC=SfHktxjA5
      zH3^w^sMuD<!~W{GW<;DeT~~SyEqq`47RrQ?2y-*RZ+nz@0dYP_P(E+g$o~cLNyDsW
      zkfTGcC-`=%E03_NtHozztIqHfMjjZAVVu8N<^cEH<(4&fnBc4wVh$!T1%%NwW|(iH
      WB4)W7!(7;*gn7P=A7KF%#6AG!)S<Tk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSlider.class b/libjava/classpath/lib/javax/swing/JSlider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81904b2f71caddad85128bb22134431914658bbc
      GIT binary patch
      literal 11001
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner$DateEditor.class b/libjava/classpath/lib/javax/swing/JSpinner$DateEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0f5617206aa78558c5e8315646258754daa0bc1
      GIT binary patch
      literal 2032
      zcwU`VT~ixn6n+i_wk#WHOGSdUg%;Zops_8~kF>Ql5TyjHhDOnTy^t4NXR~2;H;R{D
      zc;Q#|2RLnQFP-sY#tEaHak%ixALV%7-OZ*XX>q*S_v@VJdERr*d-m^t{`eEXX$TD+
      zgrgsckHuEn{lv64(pL(brfo}SY*u)3u4H-@M?;Koti6$37gfs(><If^>6pSQO2;)T
      z_O<z00$m}*vlZL*gzXiDRh3<TegETUw+bh}AatKMZPU9*NF?*^@H68@LM&S;NgbW&
      zGoYha!+t_?56QWTQx={l9Uc8RsQd;9oyqZ{4#G1A2JtLm--h%S8QUU^B*%9N2oV*a
      zZ;{cFz;hag35TC%XW%fN50DF<a6H0Lh@7?r+h;4~P2q@DOJ<a^qXtGWO3+<a!l5Wv
      z%TX*^9F+J3jvE+L6x~cQXO|Sp2?Hl16tSgHdia{-22z;dYp;9jgwfprt_P^JEVsOz
      zDXmgQ!&FmXJw8i^DUKqV6KfpcPjyTptpfWZ;aqYr@UhFQuII341mj=l45l@lZLYvp
      zcLOsxM;PD>HtQf<_#f<{vtM8RdDE6l)$*!zmQ|n$2lJIRu42Kp%<FJ7=6z_oEpcou
      zy$nHfgI&U4`?BVw*picy+6$}^F2ckU-pFIsQt%u;@<ZE?%PKpsbGawmSr87Cm?j{&
      z>T}rY<}Id#o{f6g2}kPX?AJ!YEN@zJHp0oMl)h<T9{lQ!jmNS@m}z=q|0z#glzAp?
      zEy{?}f8z^SGBAg?2#0p*3sq@&n=t%j*?h(IhR~7x)9Es*hg>sI#Jl|F)Jv~td#L$}
      z^%Ut?!3P@NXMOF?RX@7Uouz#f3K|eo6)II{P3BBhjq$qgDdoYzo>z;kC0ti>mFkTW
      z!YIq_<aW;?Ko`1s)Ogi_eTea#J1Tz--uax@%I<7xVjJ;C=wI2!fyK#G4TowNs^LgD
      zJyydDso#)%gvpi3ZJes%^shePOZ**X0??P}qOTCAuQ5d5;5gmE8TuA4^Z7_XfmiS<
      z;LkER&jR8&feX0EC`!_6p``CvQjEvxND>oXTAFHTnrhWF)n3zG)^rbjbRP-&0b}%l
      z8_z>uQ!3zyG);$^)GUixM(GRHb@J{Ua-q5f9y@p(P|P*Fv4e&DL=B5OxcW;(t}7Gz
      z3BB~QPc|61gk-&(g?CV3AX5LN5O~I4^C@3$xrX<4kZ1s^1cH9|!HmEx1na;J|9ca+
      Md}0N%g4^i%7bfNq=l}o!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner$DateEditorFormatter.class b/libjava/classpath/lib/javax/swing/JSpinner$DateEditorFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52508b0d9093a49dda5565f860d4bda63f43de6d
      GIT binary patch
      literal 708
      zcwUW>%}WA77{;I1kJh#|Q`5@6qk|eGUAh!qDxr`FjG*JBLrtu^vOAXlRwtvNLqS1*
      zR5Y`08RnrKn3;F@J<t2h?8oQhGk`6u8Hf;yH|&;mEB>8ut}4g%ws0KotsgMS51T@|
      zUe)zlOiJz<h!K{4(~@^(MUy`aVQg18Lhccw#nL$;w(mB%iE&IAFbUIIKCH7~AxW6H
      z;_}GxC36~_Fk39uM!`EKqDWbYV~Q|W9L?y?shV*3NvCzmy)$-cE6YsHZ7}<sc|zCW
      zVN6~NpHQy-_ZfBwxv;Ix6kC^`lBkvjW(b8rp1NqYZ9Yh4B9A#8JV!`3e~wQBS4YSD
      zV@fdVZpUlzs?b@J-?=t5NwAJ|v2Qcq=e~iJ@O_7GLCB7{2Uehd67&~QyEw+wY^Z8G
      zsDVWJ0f`<a?*k&OW>c-87Z~)4jH<0Zhb*Smsy%X{$01^xMY8;a{KZBOvm=b&V9|SE
      cl<&i#k=_+BudE_i2sDdW3RI-VGFFlJ0vKSbN&o-=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner$DefaultEditor.class b/libjava/classpath/lib/javax/swing/JSpinner$DefaultEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3b9c503c7137331a2ef8607afb5fe05d0a939f8
      GIT binary patch
      literal 3921
      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
      W7J*5pzEPUr;ydMqgiqmn)c*^D7Qy=f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner$ListEditor.class b/libjava/classpath/lib/javax/swing/JSpinner$ListEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..677b39c25dcce7932448e60834efd75f48b8ee09
      GIT binary patch
      literal 693
      zcwT*xO;5r=5Qg93t5Aw4B8Z}Z@c@`eJb1!zK}|I11;f3-f@^AP+M@m}y<p<Oc=ksb
      zcT2&KH1;s<JNwQvv(t~y*EawMs3-^#N;mqw{@8FHxH)c|ckj4qGJChf9rt9&UCUMw
      zA?yU2j@d|`7`~4XJK`pHTZBTj6Xb8!dW1;Z8Zs4OBs4@3BcwarWS5iMKC`d%zQG8Y
      zjy2GYo^Erg{ba<w<_@6}Nd7Tylb|@WEFl*>2O&OY?u8h{Ae5`MUoPJyiJqgWg0QL~
      zi#38O>bi6K`k%@LUqv1T1?z-t(7A?XY!HgUjb}|26ouozxx_GCYhn-BDVO_6&FTBH
      zh@hQG(Kd9)VPbFU_l8gr7Yai@A@L=Cf{2PxEull=9jouXApY!~t0Jm0OAJvOAt`ij
      z=7NTlM~PtxX~7_IuN9wl=xHEXpCU6w?j4&?3!rQWvOJhJv-z+Pw!FBFlGj*5@+c$m
      E1tcG((EtDd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner$ModelListener.class b/libjava/classpath/lib/javax/swing/JSpinner$ModelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4689a7f67a8a96c90f4acbbe0254c274b15a5b1b
      GIT binary patch
      literal 704
      zcwU84%Syvg6r9tCX=AFfYJFQRUDOIjcY-29QBa~TD(=(vYHx|DB=PZEf)8-v2e=j7
      z>X(S;#ui#BxJd4ulbJbl4te{2c?Gb6f`%BO&~k2^J1e-A-i38oy^@|M{Nho&AzWJq
      zp<tvTK`<51avf%!)LNn*Y8WCc^{T~<@ItH7WRB=+2}5C12E}zk&K}fiiy7O}li?0w
      zrZkwcaz;p0I8qvfi~$WP9dV2rNW&z=ONuaROHUkMU)F?w>eO68$lC3?<DNObRJc=2
      zs5pe;z)t;hb2K9eolyLa)Zk_H2kaeqPu)4Gj%mzlm?2CI>R@0_MK;f+FRFds$;ge6
      z|EC2(uePuKy4aU$o=n$yP02X%fdUoR2?D`$X8I<=5-%{$PZDIBYLEOU#2BZc^Lv=l
      zCgT{NdU^E`M)?^d_Yr4I)zlaIK$6~(Wo)oURmU;GCt(t~j>|5e$|Y5PfboQ>zaF2^
      d=qvKb{qi~<>NbysNWB<o@|+n_I^xYP13w~YrHTLm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner$NumberEditor.class b/libjava/classpath/lib/javax/swing/JSpinner$NumberEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d9733fcda713a007b9555a50a37bc8a09651c5e
      GIT binary patch
      literal 2057
      zcwU`VZBr9h6n+jwSC$PZSR{bFi+Lpl!D{16H4sGtz64`wwe3PKblc6w+1<4C2lOBG
      zd;dZ^(+M-xaro>v|4^sr?ruVWXdJ)neLLql&pGG0ci;Z^?;8Mf&=qtLCVtX?(f88M
      zuZFdoeo%O6SeCG-*Q@0%VK0{qw_+;@5hh!jEr}hyYP!B1;jANULpO`Uc8rSkbY+P^
      z4+!CG#d2KTa*MiI6{i;deBJZz=fWGp=^KV+xVH$AXucJGCRQYbvXzoh(TN@nD!LV%
      zCB)m3&Q<KP?z+NO(ThIm*-z+<#)>KkpJ^Dt1;UwK;jS^d$@xWNM<@iCKBQ-pQ4ztg
      zf+51_hb=XX;37el=$v4=S|$tz_-RvTpKPW4Qn&RjQ)DE+F%9FGU=OFsBdEy<2bn?y
      zQyQilLG(T8B9Ue^Ty7xw+g+S+OhX(AF2Ihv!!18r?0Tt68)DDR8Nw`O6r>2zW-FJ^
      z(m}f$waw|<T<YIcB$1XS{+w_%+75jB&X(ia?Ad_vQkuttf-8ivHtrf0ah1@|2_EM`
      zxcLdu17}Zby?MhDekV6%u?c<o$~G%nXI=9;*bKQp8V+HqrD%`HFhfurf1fbWTIAdo
      zOK@9~?cokfMo7Hp&NQi};M#oTmA4mnWQXpu_@k{X2<J;;+bHX%ALEf1#*zg%VNK}T
      ztyiBgTvv7=ktUFgZ0mguE8tf^+imI?Ve#07`>0;AF!O}*6T<Xs)O6=pv94hm4>_$P
      z^a5TA9uqFShc&0SbI5Zt-!584J}FN%6!FZzkA-@}2ao4i?~#g4e5>Farq}9RK2OgH
      zBdy;g|25)Jg-X@l7CA#oGF<nal^$H}6}iZoy5k6zs@AL`Ofcb2{s$0-a0;h+RCv{a
      zGYIjVA6fotyz@J+rQMZyVjtmG=-u4MxwT}xhVwNH)-W1OCu_JA{|C`mNNy(gF<Zmj
      z-yYx>{2k%|APz*s2-64#=_00R6!SEOYkWTLhro4w33#&%ZZLr`W^fa?7)4UL9Z>p%
      zDTR1kXi(ySU#+JOIi*f=N*(7kDifv{b4oC$IC?0F2&FJhv-}37JzjA?PJ`D%z)Q}u
      zSYo7}fMF-^E+ZE(T;;KY$9@^ThI<EC%_nMDJHVsA8U$2nLf6nu*S%l^zDp3Sn>+CY
      y1qLGdqY8i*y)~b5f*Un_eSpXzpll*&$ph1TvjD6EFTC$}_}&XFK{oLNy8Z`7l@u2M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner$NumberEditorFormatter.class b/libjava/classpath/lib/javax/swing/JSpinner$NumberEditorFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..279d6ca751fcce2cf7123de7f5a3e03b75f9bdeb
      GIT binary patch
      literal 722
      zcwUW>OHaZ;6ot<Pq*#h53aI!%;{wn~+_=HGQAspNR1AsB0VX)6w5A;&f6J9d6Muj|
      z$~e>FBM}qZWM=O4JLjJ1yuCla0@%W;fe4{;#ctVs)xQ%?zk1ZV7LLQcwdT#B!@Yx^
      zkgivEy#bSwdj?{J;!j@kdsz+HFNzS~5sr|%glMVUCdBsK9yc+LqydwV(+0nl7A&L)
      z$v&5djxU+h<%IcCxiK2AnTR57VGNUmLg_C`_fI#3!^7Qk*0Ggsrr~y(-DaN9^>8yL
      zFNIIoX#D?&)Ck#OYnv&$B|RllO%3D;`R`2oyekIG4uvLinA6F#gqhyYFDHSkqXYgj
      zC73Pu#_RIB&}mbj$u>1funu*xXEWdDzJa2$9(4{Cc;rb?gt{*1C!$tkh^x_1)pk$=
      ziOLfakC=D}h$%IiY6cy{pe8b^wn7fmm{GI#$PPUY5YsGDl^5hL)*mrD!srwhodrg@
      a5FQ%o)jSHyDuRVTvxucYMe1F~3KAcZFRtkT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSpinner.class b/libjava/classpath/lib/javax/swing/JSpinner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac2ecb6c5f3305e3ab17ac3acad158c21f5825a9
      GIT binary patch
      literal 4828
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class b/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e37bf659e3a0f8e5d4bfba7a5658fea4d58ec9c
      GIT binary patch
      literal 2425
      zcwUWFT~8ZV5IxslYn%-R3N$2bNeChK8gSBY>NKruNMmBKiwy*~O|sZGu*mG9-8D%b
      zEA<!jBdz*WDGzyxsy1qk)JlD=)F0CRizsu~8{4rB_`$n(=gyotXYQTxzt8^s8^C4k
      zNboSkcGP|Ke%!jJ>09x|{9Z+~bE?iKlcf^3EN!#Gn??z~_JEYJyJzTJw_5`mMhO9i
      z^YsAL-PZ{0LA>d`rdFz)VZh?1rdHOtX=#SOnx1E1iwq}IhHlxaZaZ%N|KqDO|7}DS
      zhJd}TS(BF-PG!0)NRZDJP1o$J3}+&TIYrkPd?};M`@k?HL&nJvycm|zkCD#6hB7BG
      zoY8c?T;1K|W<ez>gpe^xBtj)A^z9mbf-1wzAso7vn%IwQal5&dw^f_xxy_(NqM4&h
      z`ocFMq`WTUG|q%Dj&l;uGK_X-A!7pP8Tu({*3?L$YSTF|cq7qtA1>gcgsEfC(n%~M
      zf+$1idUhpU%q|y_8HNkJFebV&%t)AKnCiiu1j?92oH(lGGD9TNQ<7*=$hj=zO~Ep_
      zwy;u2rv%4<$*pRI3fvQpC@;g{OJ}rVh~u6*_I!k2q7U!m0||2s6UTeYNZ<<9G@r|)
      z3%7I0<pqYxUb4`Ye2JplZ5NN_=r~gN7=@>*rb#!V17+AniC0v*OZ7%bNce>6(ln=a
      zn{RPbT)=r53*wRqO7q&jR_3PY7je--Na9n`bl0h0B5BcGW7grBM<Shxqs0*Qa7M;Q
      z_&9`R<RoNiuC)8f_)KsJYVJ%C#PTu<BJ+^dK`aQ-=xqc<qMI@{P^6f<n#psfvBypO
      zL28>45x==setFxZUQ4uCvYR`+WOuO$-TwW$#-UD$MBAv8-5Q9KS)u{ATixxTH;y|p
      zRH3uQt4*1^r`|sVp)7+p5b9nX2%)@DHB0=OCN6%sIZb8-bp|=D>)cFLRLkNt0f)Oy
      zI-H|odg<qfhbEPTAg%l8AIgK!z<?OYv<|{YcOy(Y1N1dVdmeh9P-1^zP>CJjmEW9z
      zQF?})ttEn6#H+NDDTrKg3S;zUVi>wG_gt8`a)8$|%I_Gg;SJx<=#M?cWDUytV~n`g
      zpKyYVmxM9)Ya`WZ1n9X=scsTrk$}IT(Q*qjxZ|WAt;4&i{ZQ~0-lpUX@8DgR#H{lT
      z_@3guCUU^B?X(E+H3WQ!t8VPH8|zWpBllY(J&j0ej79~$&R+O0Bsc0BQwO-#4)awD
      zOt=A)rpne~z9v5}y_MKM@Oz&qHQZPdXt5fWYFJT*R;NV*@k!`4toxocGEC5+0^g9Z
      zZwci)I-&2${*a3L0~PTh{fYeOWItQa;AR)A&#BCe{KxSntvs~8b(FB%U4%XADs1y8
      am{J#*U%J3}aMyWmVH@H$iX$3_2H$h5?NG!3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JSplitPane.class b/libjava/classpath/lib/javax/swing/JSplitPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e9fff044f65df8f7eff6de5915b64932b67d945
      GIT binary patch
      literal 9784
      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
      K335gRj{gTuizlZ5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class b/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ea0de1df1394c51124606210bd2c12ccbab6b5f
      GIT binary patch
      literal 3122
      zcwUWGTUQfT6#h;K<l+c1ToeN(3TQ}>sI9dWwT<!8SP%+GTWh70<OqYq44s*9v6m-*
      zfwoVs)#d8559*@nT0V67+_if91AT7)Kp(rh&&+g~gwXUMb2(@4Z-3w3`|Qb&f4}$v
      zz$ttgLV)4Kio7mwX3Y&nTgqOWmy1PSo{=>^lq;3EX(~mP`&L5;GGuC8^7`tUu5r!s
      zdw7c>v@sla9AtN2Q59<|yJJ1aRbH|bT?--1ko2STb;8Kzmt}2<Pb#LxHEuA(Ol~N$
      zy1)&SylxaOF|cb4`}4YHTC!#>$ZCbRD&Iuzzc`h6$k1jjE9THihTh3N)J~AmIYm>f
      z3k-d!J*`F-7=n4d%p+jvlF*KhC|b}XA%=qti8@a&3$|m&q@wZbmDM6Q2vX$?@kzZz
      zGGr1%@9ttykY&j3MWS(GNPtAzE$-y1%y6`pj6ai?*Bwq#4B$uzNrwLaG?j1^gA9=+
      zZq4ZxqeLvbQX@8eRwb+Kba90$I1$D$LuZ4+Mk!s#C8RJyqVFgMpE2|`ZdhAR5Qg!T
      z4{gpeh{nWj{M{=euZ;W$nrNl+nlAJBZWM+CByETHtS$<1%$2xz;|jZp2py$YLpV(t
      zZ*DE&HJqVNoylFjyf~k`xHwsun`apMKY<ty*RaelD{9%`T3)Yc7DG#Fq!7h8CPH|V
      z;ou(KBjFs*GVCKHT6A6GyKxx?Q-x;wN&7h7mXO0m(YJEZ^wL|g6g9g*$<>XCC@$ej
      z2$$*L*6&HUD(D1F<sKJi1qs*iE{P#V4Bh`ysHs*6Q*=o8Ivq2z=qIMoufWh+a>OK?
      zDPicTNrKn9H13-AfoDuG9W^jHQgPbtZF$4W&ghCbdCk~F@IF2a;RA;DT2~1-F-_7o
      zg~criAKPzRqV9_lK7mXG6s^oRbC#Gbj)2xwp&)vLp(NovE{G>;gjvwAV{25EdVUOH
      zDrQ08&`@if7rS*t+`AG~QNx&+4)!iDyRK~pH!CWoAZ)rDG=deguGQwey&%>5CRIW%
      zmm5|>>@SFzl!pqO4?%s*UW2dd>%5`=p_0mFqu~~v9vUTm4$qvbHZ+Pl)9;ER#zV~4
      zbz>rdG=U2meV_8GY?_>oLU+SSjU$x)76i}=`T*lFA`k`HN8jWCq*zRRROq>#)?zq7
      z*Eqe6(_Vn?`_h^3(3#GBkM3u-!y&px?X5)uyp3LZlE{fn2|7V{QiXmO<`#k!n!qzv
      zyfT%J53$iIj_n}z5C(9Ut}4P<C1e%*q1mWO$J0d>PibTbx0M8p;shZuj3Mhr8l$^l
      z5qyr5Pd)rLdu`LlGU%~<9cNwN)2?qgy^YQ)-gr{yf8XaH_WY@_U4Nad1=nFVm3V|?
      zLcna}tt#^0BJRE<s(9xmCZ|Ss$i;~a@POVPq6=SP5MTR*4|~FgaUIhXDnJ%9c+VC-
      zi#a#=s7pSOu9yATM?2urp2rQ>bA{rFNJ&94vyBD%eN@Hm^L>vHN%vJze41{lqFm4T
      zDfP)SV*H#iw|$J09^)kLU<sn1Vpt~bg0bSI+hZK8PxQ-%jAy+>Z_uh>Fu<mqQmtI*
      zf8?dOe|L(V{`!gDex}~~g?i{$>doKmFlh(MBR$}yxt}^wq&bRi>cwdi$Ee0@E{VK*
      zG&&M4hsS6QK541f^1B_R$1(MSbhtqnK84`|=3Kytz@t7f>rdJr)OCOQ;36Je#DiP+
      z;Lh0Il(-!jhtXd?2<AaB4`PE3iUX0c*LOoO<|`2M3bfVSQEK2Az&-o=89oQ>nMD7~
      I@CAbZ09L!R;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class b/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b8d73e5151582e65f45dae9882af8e3488157d9
      GIT binary patch
      literal 810
      zcwU84U279T6g_vd$+mH8*H&9ot7&W6q!C<w6BH4mLQB*_V%}$ytDUmW!tSPu|4Q%!
      zeDDYO2mA;A2p_~dn}CTBe44p;&N*}Lnfd<v>o)**ap=Jz?4PM~^)AfbYV$fg?yD%`
      z(TOtLc$SPf?&>UO!>I?C5Ljp!D*?WU&Ul!6s1SB$1^Apz9(GOz!+*I;gv$k2Ct;6M
      ztz!LNMKOzHR+IxyGo6^1M~?|~Ojzk8Cd-w{2Pz(Ox$^T@-D&>l6Ds+s&Kh?JweAAn
      z_XYGo8=XHSY_}Go4hICcBO@+D%=x&8)hbHZ@DX5>P-<DgYF8V6K7JE%+MoDc>n207
      ztHiX_)23@p5t@rGn~zcq`Z8P2laxk;y?L9n89uRlF<V6)yB>B3n+q=Sv1g43uXM`2
      zIe8L`_5a*JsP>X^I^?Iic$OLA+m<PwkBpe_#45{JhFzJP3A>VF2@cATPlYWkqbi*X
      z^3NRjL15!8_O8TxNlw<Jx+k?GYqfpr6V}^baOFdRxoUg%gtk$p8fsGe!m-^gT$5E^
      x7T2dLk7TtfOYM(X|BM^|Y8=3$W}&e$!A&*n?j{-qd%xfupjogaF-f}x_YbcOzViS8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class b/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e28c57d62a9a3445deff989c5910d12138edfa28
      GIT binary patch
      literal 5502
      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
      S_4oJq17N*h1ijP$2<3m0hFggM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane.class b/libjava/classpath/lib/javax/swing/JTabbedPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efd5443120437e20e778d73b77854323aab6ea52
      GIT binary patch
      literal 14724
      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
      Di{!OX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableCell.class b/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableCell.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25959aadd646d12ead8deafdf9353c6c0076db40
      GIT binary patch
      literal 6478
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableHeaderCell.class b/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableHeaderCell.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97ff047d2a44e9d5e04ea13a4a685531ba920830
      GIT binary patch
      literal 5760
      zcwV(uNpKWZ82;Y$Ook*4NrogS2u9Y)Bsgxk#RUi=BMBhEs8P{Q&x15{da%1EAnyCV
      z?;9?-pi(7N36@%A>B%a~lQ%Ekym<2D$+G<4>z+wZPfvO-rYh6#z5oBe@890?^S|GI
      z58!+pPb0x_)jn-TJCt`08rI(Yb-T1llds&M>)de+8a7zi!nGo|hq-B{kz`oqVQ9XV
      zVH)mT`B|IclI8M4ZW=8N%jQ;1V;;krIJoHpC5u}wL(7zOgrRRF7=|l+%m-Z^VrbV(
      zW_j8wSVew_ffdNwoid!2=ac^<O(cOJTCOlG!@Y`OceW{uIH#mMuN`#r)tH6~h5m7d
      z<Z!9TTfwkU#e6JigMuCv9q46Hvi;*ia)ydlw29GT741+NIz|kOZ!1qva$B-6WJXH5
      zW{zvNA?E&KQiRR0zL^l_s66F^O%a+-t}}E;#X=fX8>TZX+RNQxnST#pC#N#lqH?|2
      z{wUKntU-So*=ol$N}`G!1{fAp2}UV%Cc|nUx7Jb`2K0v7u@?C>&Sh90udU)dP`k8N
      zxyUM8h~c47F2uStE@D_Zr=p6BaS1~gp@);SW{zN}6ct68waZjoE^so0vx)D~%BEY9
      z3-J{yt^~F4JQDj2(HlbdyI1(VUd0A%^wR4&HLjUuvgxjr&D6+Z`{X{ZyOhjL*qp{S
      z3@e)OR>ig0LP@DO5|jn@`1+{5HdIeOF;OT)wh}|ar4~FprcB{upiz#!3eE0|oh6aO
      z*>-DmYzaNeDZ_RZE3v8_DO|5&C&nn5HGuwc$<QB*>8lQj^Wg>+BN(N^+SRs6X!`8Y
      z*a(9H>Z#!$b2XQbadIFR>p(@9Ko-}4$YZu(?a*vlL^`wzVU^)2!z_|`xKtJ@nR+4h
      z(d_n`!+&OYn^K;3!R9QxhMD(PNo_u<Y}EAqdu?JQ@J#K|W0pj5=R37Z3$tMzaXzPX
      zF=XhB03eplC7V|O1YmG3Pmi+g2=j$C9>_&PXmw^ay0di(g1<%g<y{f>Y3YH;X;%<m
      zED5Pok!G?Xp}cwaNLfdn-2xwVl)JW}JK|6Zo7c{LMG=tUTw{riRFs`C!O%udRF{(3
      z3Bk-J>3>3Mj~lYIo?dlAg0ZQR*qqemIx%R5<<wSaN68S55K8KR7}iwC6Ow`7Dy~to
      zwp(Mm&AAoohKg!?K$T`ra2CNk?v;0=sI(Kh+ji0+MaPxwL{Z_2(xPmXj)bx+)0+D=
      z2qa29W*p`ru1&@?w;b})ueYZXWSZ5GOvTEyhA9ZsQL{ZaP-ZWvk3W8^W(;R@NiRFQ
      zY;A_yj&}j6HovpX9al=IWLmK(ha-mLa!Z_K=LER;3>_)?8U-1|JhQ64Y;J9;oz169
      zGd#p{<o|ruH3L1@bE|(`Tpk~aS70Y?jImPL*7;^b<geXRK36bMHVYO-Gi+*(!<{rf
      z4c*2Kn9}%+s#C8><p`_NLEhL;^pTee5_G+#=?n2lh4`Z<D$v;}p0hMtMH&<c>2}e~
      zp;-%kdvXJ(kjZ_G?%d!hEXwtyPT|axBuHQh{brB^lpRPZThXd)!vbYH&Z6~;h>VP}
      z6w4%456&jigdFwZ9O*_6mXiZXIa)y@VL{ih@4$<`vqQPBu;?^a)91`@Fqpu|z-e4C
      zI`|XXJ;|k`gWh0>1Xn9c!qXg1<3!cXWdsK0W^^eN=v8jPV&zsWS8hX2*^PDd6)yLA
      zbiT`7^oT9sI&!9$Tw0E;gv7*k?z^{N<`h_(JB@8413x15CNcv*AT>Jp4R$b`#;y}=
      z)`4CToiasvGN3B^$q^Gv6e~cy)F)2i42)BT1Wg-m#7&a;W=#0RgY;zrH-O$ERuosF
      zsh-qFW4HykhAoxjA<M&&mbW!w`9P%QZrtu$UQFLaq_>Yr%U(}f?UMxVkZ24VCSxOh
      zCX$^VaAC__*z&bVOC7~n&UYd$IrjLL>*PAEoeUWs4Ft@p0W<8ylq55nAU_sKzAv8q
      z%NX+gFk{KTiX@+g6-WME1M(6MNU}R&$CCdLN$$XnBmb!Zc^Na3>>v&yu2+9)(5n@U
      zyKp!hK;2IHH8Oy^aZg+TzcmQpUfd_i?r(zp_ek;w;>rJrA%Cz5@;@WVAHu^3<-N}G
      zuLgO41dmF#$MATVy{>kDN3uWBgylbxmQUiTn4~3@21%>9{WPA5BTvqYB!3pq#gTV3
      zAb%b&NU|64QY?9QB>BsDC60Va1M*k#nk0K2Zy;u~CHrEE{$_m3C09oV@D`zZmIHDg
      z5y0AjA*&j`jd$WAzpz2%@8XE`^1XP7%jSaU1U=5)uLj;C9yCyM1A}XOl0B)f@j-a!
      fZk1?W5|7H?kMJ?Xi!Fgqa15W*%Zt(I3ncyn9|4rz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange.class b/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6c6dc1803c07944d24f4f0f198f140198f3b860
      GIT binary patch
      literal 1316
      zcwUWEZEw<06n^fdP+mGfCQf7wbxfgit5d&eW)_kelx;={iC;`gt<a?_h8E}kiod}x
      zCN?I1@CW##jOVrm6RZnO+Vh-y&vVXm&$;QZ-#>l=*ux_koZ;!I{!#y=x#yNM)SmbB
      zfo(Pp48wF?i{O72j>hjyyFJpKp(#URD2gPSO}=(AI5iDVMv7rKOsz*`%eK4=?Qg2Z
      zObn8D@qrBMFr?pG6W4n+K4*|^Jwmx)u|2k@XAVPFtk0a3H?rKu9>Z35i32?*!V}A}
      zynTk9=2DD~cv^iD*(S*uFsv$AK|YHF$_fg&#*k>X`eNt00vTz6ZYaovXk9@zL>mfn
      zA-btRL7Jh^wH)(!dNwd8K{19>cWmf(U!Pd|tW%;rbVi1QW%OP)GCI9HG`(KXY|>2a
      z&XIpO?|7EH?yTwg+19MpE79(J4zI`4iD4dELSrth7L1-j={Sx#Y15!w)0LqyY%ZZ)
      z2F<bbZy?>X#ZZRoB?rYVYI1_!BvO#XOz7fEVj_XfMm85&Mc86dOqG1WD4<B}E989!
      zCq8gT-S$yZzvHU9?qf}@`KYL6$wyT!Cw<h^a>_^jD@Agu4r~Y(e~Bc2h75m!Jnv$a
      zAECmJQRgSPO)>jai!x&q4In^5DG!j)nh20kD+NgCO$JCPPLaYb!l6!$EF+s#zhUjm
      zT!sh&?*-+QFd!<&a5t7*StP%SB{yTq)kX5#SaK_tTw5d?v1B!tTwf%QV#plZ!S^0^
      T$d(B0;yxZwd+DczhmigN<hJ||
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleTableHeader.class b/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable$AccessibleTableHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7448b71d771a09317bec78251e217f886a90d885
      GIT binary patch
      literal 4585
      zcwVhmOHdS76g}_FK+Dh|;)sr@5CItmbR>yC#vlYWj3OkUBw~Ke&`O(T#!SzM=0{An
      z*=Luk>|MmFC}mQWEK`+@`IuytRaV($lU*v6`?`CYo}M1MQ)N+1cfWh@Ip^Jb-|hbX
      z-><#_FpN7AIKzqS%1z}~+E~@{*V5-MDvP?>JD$s_hN01I&4T$nsVYlqQ9_iVO@ya)
      zg@R`mudBI|ghqxQ3skYgG+is*PJ2KY8kbERhVCi1h?20{QY@wn`IeS7qj#90Zz_af
      z5pYt=Yo$?!$z-UAAPEEW4AF_glG+4@tumSriy?w-GMdrO5J?Wq3rk#vge~MTrRCM>
      z^2(xGw0GM+Rmds&yi(MZjTA)1wiq&DB>Go@w#t@?_nKPTuumvAN?IY$us=C4wRtTl
      zK5qEN_9TNsMNXt##lJhq-K%o0yt1McZ+ite%aT#K+ffxaTUebal=CGs>sf|f)q5}K
      z<(0hY5JNu(BqSO3ZC+g&DGV~S5|9;sfeNiN9B|U-jx+;Zewk(*L|Vcj%6G80jKk=4
      zbJ=^@TD6ODTIo$@vw`Ik+|SB5f};#g4yLGlHb8qOhT|BKaDrj)rj9Z)ILWY$(5-aM
      zs(JbqC%1o-1gW}Sam<KHjLJAAaM}syw0c!3>!pfan8#&2j|qk?WVTO7hX>t0szUb}
      z8E5f=l}1a{yrP#WCT_>LXA&hTi}MoBIg@EqwKAq~fs#@Y;<il`R&EsXswmi)-(bnq
      zk}oV&%9vJGOKAroBVmSN^#7fFch?GCF-+qnF@t6qK6^5g&QEGK8wPq4o#w1y)G>?>
      zEX&b+&e@IH70{(LB#V@M@8qx7Y2=<G+0+Pr`|u768YO3LmB=E_TZ1@nB(KwFo@{t^
      zcmXEuw^)DRthMq_5Jnw{WYEa95JWEfLU}SId^S^|OBnTSo!)JpR*hUybKVWXlZi0A
      z`>evC@fHLjHrl-84%+9lohsCQK6|Qih--%HU8CxBMAap`_zMg>-DZ-!;So)m4!hkB
      z7XF5h$adwa3dRue16QcK_V~J3K;-rD6FkJ>kE=U$U_M44GOJ>!$PBT$Lb;ez&uU^I
      zH(P;+1UQ47&FATK>xyBhhJ^P#)3pw(gb(N)Q0qwFl3rJO@%u_dHwlc;e*-xE(FYgM
      z)+Rp5=)-mwt&noEw$RggdWz6>YijU5T2t$2OAXz}_ItF%v4ehFg_(bZ2EK+Seg_@2
      z)<HH3!A=5$d6ysxPLR9NX#)?@l?fE~g@e^7R`@3-hHP1F3@SVJ+L1@hby~aU3H;PW
      z&Kz=TX>^%n-66<7_a%QSnEY-X^8Ge>4|=`i(Yqdu`@ZCTPUJB=vL*E;wm-muhZth;
      zf_&=&X>mY?@w5%{h)U5&*BKjR&qF-JF@5j>j*UbU(eEHzhUdhSbvs7J(~$@#*GUN@
      z4PRsWGFe)MHPO(yhppqqjYOtI8}UbI<v$?Ke?)@+g#G+62Kg^I%zq`e$2iV^#t8q-
      zlsan3adI|;Ib1a5&)^c>aq6*g%;RP1v^afAy@Jb#VuZLBaD`f!;Z?k5Z*C0CY*!xf
      zrsa2&tJ|_VT-@Q}HW$O|A<+H^jrIoK^wzzm>HhSsyMjdoG~HiynodH_BwGqW{<kl=
      z8chCA0Qps1vmuVsmHUxLm<yvej||JuY>ZR%AMue9+2SgNTSlc64A<!hic-84LQqQ`
      zL6>Ynda$5)9YL3B1g#*CfKH1fLU&pLH@w@cLF)?0_uC;b`T|l^gn@vjiwycUT`5H5
      zaBXB8=!I3bBl{^+QMyX0!J&2B^fv998E#3xW&YmAJ9KTQyLa(E)+m_K-G|`+0l+)_
      A5dZ)H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable.class b/libjava/classpath/lib/javax/swing/JTable$AccessibleJTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..399752fdb0fbb4aa17daaa2148e05769cf05deab
      GIT binary patch
      literal 13524
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$BooleanCellRenderer.class b/libjava/classpath/lib/javax/swing/JTable$BooleanCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ec5ad8710e601dae33afcf77d5a8ad7111e8142
      GIT binary patch
      literal 2085
      zcwT)}-%}e^6#gzGxgl%|1VTj%TEV&mB-L824c0;cNllAF8{1T^o6RLz*z9&Tn?fDm
      zed-^;3mx^LGd}5zO&J}v4>~&4@yCNRI-}!%;&|?EfIxyfliYjHkMErGopbNQf4}$|
      zz_YM9+8B<nXg9U>L}kseiiz`=w7e-srfu64nw1i!xhSlHaD>AVV2C%`y3#Z;BbK$Q
      z>3V*R_6%XYB=ps3d!6A(W>1h*U6Eu6xh11Aa)O~R)0~IYPa2lto+SvimBDD1A&{~Q
      zq5}+v6mWziXh)ZV4s<iLtD{+tC_}7e{0Mr`B|T#bf(Xgu5e1K6fT6!4+<DtE-m@)N
      zGp9_WXqAQKQZzL!gLY*MOI)m$^TP2mVTfjIT{E+qW5{z|7?9;Lw935|$y9J>QMjoc
      z;s(^w1F0J%%O=`WcKL>Fd6}MT$(Scgm>NkI@+(4jlet_v?MF#yYi?o(AsN9ip5hpx
      z+M0nB9LLkd6D6@EOu{j2Yg*G+i;i8j3gn{h!8C0rDft~$5XTtxiui3b?^X9(k7i~3
      zXB12{#hJ4m;X6vm6AI089kNj~jFSqUm(GWZjlrbm1qCl|Yj%CYc!^=iD{o@i)~glC
      z?7UGdQTt2owCxbZ5hU?4$K<}5x}3hCSz1vz3eMsch7K9hb6`lQ&7|*bYu>X=_zoUV
      zQwpY$BAm)D&XD>)PCi|;3g+-C!(qeAeYRk@{vZZbYH}`&G|kk$0vnl0;xz>sT%g-4
      z=TJ6+VdTL48`>4dLNjz@JKn$&$0FG@*5D^Ur|GWk+){7}ml=9=M`*5?E#Gi&ZI^zG
      z(%+uagGqZ+!4+JkJ5<>o7EzElHYZ<!YlOU8M*Z?dki**w-obSSCGX3!npqXz+mR#Q
      zw)wm1OQX$HFhq>XZa79>;gVLFlOzy~W3Q2rcn|5eSuI=CQyHipr8m=*lLTC{tBx+_
      z3>mu9zi<=Mkg`l$7F}~wt5gKR_qKRN@B}?+?exUAAu8WBpu1bXj3klL4n#=bNxLOF
      zx6wKnAG-%7ejkV9U!v#gee~W#U;K0Qwb#)9nFsVJ{YMc1_{RwHJLupaqK|)s$4IUa
      z9D(2{{p2@<$Lj$Sv`Sr2f_=IJ6p}*zNrQ8+?#w9nW4<%XlT_xsIk<tN5@4)`Cu>ma
      z+wmF_cQH^uJ-4ekMT%Hp1E=IUdU^|IYB)C*3&uh<%xqxX6VGqqeBC8_(c2SPk30tG
      z+rsPQGyXjh;<J#wi`e)B<j!y@7~nO$MZ&#R<<L)6eT4x323`CC2Kl#8`FA+Uf52(}
      z5R?2zOwl^Sf5HO)nXbbxxI*hS{wuEY-%y}+h5wFq{s-RYf8qoF7jE;vvBCfGm|FDN
      z*r9n7?~;UhI}LfSlbg^{@VdMSLA!vrTSk$%l)Dn`Lby$=8(5*4Xv3<Pzlk!f5wBgt
      Hu+a7&{;U*v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$DateCellRenderer.class b/libjava/classpath/lib/javax/swing/JTable$DateCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9c191ee6b3c290738983bf258c17c8ed13d7872
      GIT binary patch
      literal 1275
      zcwU86T~8B16g{(TcS>2IA_WVgeA_Qu{8oy_1VU0nG!au1;>*$wuw=VycBjB!@n7hJ
      zV0<u|_~Z}qN2o#X%px|l#)p}?bLY;v=iIrwUynb01aKV>I1GlFU3<?ysD%5Dw_SPs
      z+}?D>?20YLvT)sJ!fT2^1RQaOLT8{<ag`OZWw%|aFLlN<m~zJnXBQZT*ShhmbiU+x
      zj(o^4n(GyiuQSA#{if&xL%)Rt%oJicXMtmYA(m4CgKLf_p0rz=BG9)OhSvOs?bhwU
      zQTr2TTv1_|>yf8RC^4JZ7TtoD{njhr6P{#v)RVCGRa~1qPd9f(LsmC7YPEdiw)bV_
      z6rrkwj99pUVUCLo13IKF9k-&`q%ej{9OG0ueIUhw)Ca46(6Xh430x-WL{d3xUMOv^
      zK`OJkKiSUQs4B!s3sab;vTtc0!)&DDZ{BLYL&CZYNE_XxKnru2XW$`~g^(FCx$a2y
      z90?iKJF#cGZT%QsHDO3O;kt0i7EK1W!I0ds!&Sf0rWc9@{ysTtM6=<$?Uu*T*CcB7
      z2rqq>F@w?EVi@Tyn_=nSFZI7R$k&zjJF4B1M0(wC2Mw|6D0%(Sow9;quxg%1?cv&C
      zC_)a(I@FC%+|OpfB;m*CGi2$s>Ta@PFjPA7_tEYa?F?E|h2lG!j$pl|oq<7`O^N~k
      zhBVohvXR1h3@J3#RwoEw2u-c!La{WFiDwcS^9Y$2rOz0Bjj_@vj4pEXJ+h0*LN=M@
      zhq!WxnZldXEYrjV{5wqk11VYu_)lc`F~<2XOwmy(X=ny7qbw&3lyx;?NLCJct)h$q
      zidt_OC9>k$x<(_RtqKhj<Akw5KPFDi+K(H!i6kZ9REtQ_JYgvevrs(3?cVh;^th|%
      Pd$_M_LrsN6EW!8<$|fk#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$DoubleCellRenderer.class b/libjava/classpath/lib/javax/swing/JTable$DoubleCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..396d1d6ee238e76ce64c54c56cfb0a48468eda5f
      GIT binary patch
      literal 1221
      zcwTi>TTc^F5dKbYyOfneq1*~ukxRQRwBD7XLTHFJL=z!3A-*i_0hVlc&F(1>|B3%X
      z9|Yrr(H9^5QN}rE8^pA}?3puXX1?#6nfBN3uipUN#)gIn!@{w3Vx5(PQ`<c(zu2|*
      z9X?<4I&^Gu$9c`&7WcWYA;w@{4HYu7T;m5;#}O*+YCJ<i9NEEqg<)*F7oke;Yqo2P
      zrwkMMegTCBLu}J)@c}Rl8i*s2L=@KyXc%IM<_nD^y$l-|L7HJa;NrRG+wVPBSk8uH
      zAG&Ss3aXK>%TlRr+vP7i?S1a6`V8r9uW30A%eUpd>x@a#3`>0&^=S&Jm_6jZ;y1na
      zJI__{>wU#3U)iz9^J@Q?H$`=CuU;>NZtGN(FDq1~=xGBJnA9*sdjDpIe3H11oQ50J
      z0`(;LnJ9-sw>-aX2?IAVM=d0xbvF=}+a#US`7T&bI00rcZ(sq7l+;of4a@0p)$^K!
      z%Nr=bqzN9V42Dd;R=6T*NBE?*D#ueYu#6Q3jmEP}P%^eRQVu9C!U@DrLa=mij~J46
      zu)`g)d5eMVG3ZBDu;n#7G_$DhoszRoyqccVX}kZ{2)ji!BJKgh<p0zY#*WwVn|#Zb
      zYzD)Dt;lEwqwcyiUB?On9%y(*2))B4XYZyUN6m=RuZ|55%T*>TLLLn|eFx~aLH7uq
      zDYN()N%I1RshuPBNd=D5cSxq|X~gvu2J{h(k<XxHN<jwWvb0>1Zn>XSTAmfNSenhm
      zGVx5}0#k2FKal-^nbLP;SG6ygUDeGgeTsl?onz@7Mf2k&-W*YbzJP?jh$Nju`VumF
      z0a@KdPA_6bUsfF6hB#dg(khcYrmPD6$wZWO2X~eH3ht2=Q`UVvpjJrhAz2ApyHVP@
      cN5niwY9C{j7(`H2jMngkPPtJGPqB{3AEe6|`v3p{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$FloatCellRenderer.class b/libjava/classpath/lib/javax/swing/JTable$FloatCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe32e21431c7393468211c465306c2aa425ce2aa
      GIT binary patch
      literal 1216
      zcwTi=TTc^F5dKbYyOfoilv}M<tk^D<1@E?i5J+Q9;{~u9;>%J_Vaaya?4APgKllUu
      z7y2L=AB;Yk_@j(-whcBeK6KBVIWzNp-^}#a@2}qgEMQeZgdule9-7C7e`Gm(#*-~`
      z$L6_;?V4hZ+x7-`cDctr1u+J_H&VzzW1Tn6wk?9J-gt(D*th)LJi}-$3{a-`Ma!|o
      zGQ)WOynsTTA-3l3@;)&1YltI}L=+b^C>UUf<_q;Cy$op>#t6fh&&6Zcv);LmFzr>_
      z+H+dm5mX~zm8Ax2mcyU6TRYqf>NAYg+=gk_P0y0|t}`Y{Gt8XBDBKegk=f&6?Q3r9
      zt?LBnE9Ytpe1>h3=h@ByZ;0~tcC}jQxXmMBoK+}G%~Kl2F`?iR$@rTY&`IJlvI?$H
      z1A-U9kA=~ZS#iCVDKuQgG&PWTRvllMPJ>iV<-1s+aKcL?r{Owg7?Mp1Q8(>24;o&P
      zXn73<=rq1&kid}2uNQg*Z3>T+mgQ`U8g62aL7~}f5t57zN6P8MMW_Ao!w%R;xI;w8
      z@;A9nHs57n+YIWy=~vuFn+6v3+#_;UiC4q5+bxG-xb{!4s6@nRGEDqWJ3(x^ZLh&A
      zmL${Pnbw?)X3(mRL!-4#-{-!9M?^9_SwanM39{6RDE;5q(2(3>vLfVBpwhRGZmV>U
      z&^f5jenwJ1g{CVf82l6jUZn4UOjnl>S4-$q7cojcjglz^DU8X|azVP~eo|?9F6gtx
      zOe&U&rxK@_d{z8`^ao^$-;pjUUyv!O`lLEZK-b=%;Km7N^^a$O)5Hzxb0pLkNYXi=
      zZXl&@A+5edR;|NOUk4=Kbbz`fq-Bsk7FhH2iv-p!+z#|F;0{@_z`Bcj)C+0dCo4fq
      gH%dGAfT(9l)I*erK?LQ1(IS@UlnceMj1@%w06&8n3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$IconCellRenderer.class b/libjava/classpath/lib/javax/swing/JTable$IconCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40cf73d5976c730776dcade426da67a0c1ed09bd
      GIT binary patch
      literal 1086
      zcwTK(T~8B16g@*fc3M`zN<pkBO2KxiEcH8LjHHBELo}hJCcG_WgeBWu-JJsQ7pTz(
      zqc8pfU-dyqd@%Crk22nwC8Ss$cK6QNd(S=h%<TU8`|}roD()HRW0>4_cAPys+I9U+
      z`^l=a?ulZ(75Fvbc`L%-5TOVSBpIykM5*%ZMe)Mvcv2U2=QE_`mKzo47>1X7`RD2V
      z1J`%uLx$1PX$j>fL$VfZhzuC|O{9>{B7rj|3=A+NO66vj-VB*IiyXs9B;?~DbYBO)
      zbi4)6-SpeSm&8%3E2_a|*B4Ja?R61qeums~&~m({6S``B1SXYehN)8&^;kkPjBkqG
      z(Q85bW#H@Pk4_y;W47lI@@#!uwB-ESTD@M5VP{v`#|-mo<O?Q7ao)g1nzoxw=}{J3
      zGI1Fb3<g=CFoyiewhAOaIj%B5RTNE3VLGl@6?^iyA{Nz<A(iPJNXgij)Q;nIv}rxs
      z8M1EF5FW*1gMqCv@GU1=3R)d<G7$#51lDQ4TY=YUle&ycdYavQCxjATBj|)JvE-`G
      z{jq7YDv!ae`#w4BIZ-4c19ym_*I@GL|GmNljh&z~&xVH7QKG1iE(4tK3`GmHR>+_=
      z^8;Dy0H&4L$KZFJc#iG^s+>!t_$y?1gki!=Dy9<TF`}r|HXYF&YHIq#teMJqKABJD
      z(+3!PUO7bJ3v!j;DBL%!F=HR&U%@R#Pb+t2ACuO%<A&3Uh`&LazeSdw1N<HG{5=Z%
      z1B(13%KQ^-{#grIiJKh>QPDM;k?E*}vYxC83p3h-Dk>Bub#xuG<cErEiqa@h*Ew3z
      Uj{!HdmYcYR_}DPq#$ELN18J7`8UO$Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$NumberCellRenderer.class b/libjava/classpath/lib/javax/swing/JTable$NumberCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1897beeb1d337e959b4cff048010315361c0e9c
      GIT binary patch
      literal 543
      zcwTK$O-}+b5Pjuqmt_S+1V0lG7-3CB&l(egF=B`ZHQWnSs43lKcTwZN@}MRj`~m(b
      z<8<*r0-0pmnR)NcO#Acu^$p+zyA~1*`;YvIzcj;VsYlK0d)`-~b~ByyMbH*X-3mPv
      zfe0+57`%CCWRT4Z@xZ4lifQwBhD<b;VeOcq++FN&O7%0TWpvI^tuF&KdJL(yKNMLo
      z<XohYagfA{3k!LMWWCXIs8V#XiV{O56w#F*$X8!ST(y)O>50%0Y1BJLs?e2M%+`wa
      z8A@G$z*Ub2(!~GClo^`gV97*F9)-4W?)+&m5SP-hb2H?TAv3rgtqHGq7>dxsHnm(-
      zrR1V6_Gq&t{Shk`&En=pX2B+(rKp7j8Bp*J-{E+la6Rh-g*Qqiutq*_==K<CTOezX
      bP^O$qWTIdll^9oz{RTGabm9hE*g@hCW4nTM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$TableColumnPropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/JTable$TableColumnPropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..644cb82cf9821c6a59f98f7ff25b319a2d848d37
      GIT binary patch
      literal 1405
      zcwU86T~8B16g^WaLzfi_RzU?RP)l116#)f{_)$SL6^$57eA~7oU9#-rc3Z_KqcMIY
      z{s15S2_{+-AB<0$_@j(>c9#HYrD=9|X70K7o;mm4{`vd;2Y@N8a0D2pH?^AfEK_-^
      zn;V(i543_IV(vR<8PzTGo^5Rl+u6yLHFHC(XlBU}Hb;;lEFCij9cS(qHbv3lXlEF9
      zPYXgbE1847dA;HYQ`ijcPFb(S&M`#tjmfiQU(ik6S!C!-Gy^2p8G<>hBtl>~s)D0K
      zK^wYNgb-$EOGrR>UN^;Rb*mt3*NdSyZxuCTU9)w$_YZ@T3d3xZJS|lqrd`_y3=E?l
      z<E8>E)r9E~dj<VC#c`71%;8uSr!hcR*$~dIbyeG<ERjSqzo-71V-xFa2hO;J#A9LG
      zqV!NNIb{V=jBpGesFsIUF^U*zEuK_0gCsbf*cZ|(Xg2vsK^zH=F_N!QAr(oaC@1lA
      z_bWmx$@-4?^mfsXH2OXsCaWNgNsb9$ga0E{WI&zLLpkn?ivFBXUP-9cnx@%TwX9V7
      zyozbeFoY<=npL%n4f^?)<+#8wcxXV$dQQbWE)k<jBcqW-3qrE^aV)5~EIYNMWaYIT
      ztLiWWM2#WZs&}YdWnbfHD}`wgik87J)PfR&;>ohC%Yo?hf=o&$2KAOn6Pq)%N<~nQ
      zL|csnwHxK7=LlFhEGLuxX#(_wpwMY2t!8L1Pn6X7SE#9P==$tpdg$Fw81Nc;X|2jN
      zc^yN9zSN&M;YavH=pcRP$Lr|p9js&MBQmKkQ0q8*C;bbf={m-LV}Q(4KQX(So~YxZ
      zXV0b?t@jefi5U0`sQe`&{1y87YYg!>7~^k|=I=1g-(!w{a0#Wnq&^|JTErEi6hRDE
      cag8F5QOxVekpKbQaC0nS*}Vj#UmQ1qe_W+<82|tP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable$TableTextField.class b/libjava/classpath/lib/javax/swing/JTable$TableTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf5a5f50eb8e4ad570812947f59fef872fa1ce1c
      GIT binary patch
      literal 686
      zcwT){%T60X5UlotwU@;hhnN5X0yeNV5{5H~1C|U#78j83V|zpfExXd}^2q-nICBVz
      zIPd{{RFs}ENHHJ|(><E1u2y%=)8B_j0Gn8KkRmLeiVJboh%Z%m()fNXx`C|Pcr34y
      zmXbl=L55HsroCW<k>rPps~d#L_FJVb#<x|dk{!a7{~n>%A!M3SU*<s=^^nDgi!{bO
      zI4BU(ey!u8h?0W|Lg}r5hfkO!cqcO1)2iQ$f=Dybui0h|ahWvi+m?$mzBrg7O#iR4
      z8|l8(EzwIN{nNuVW(dWemLidD70LljSodG+9n^-#>008m95*9;^)QEdLOzzsi_E<L
      zL6KR-xM_NLe%6)Rj>n_4qn-#lLMv;^;4x#CPN=-I(O2fN1MX3Du6wejOy%f+wQdS|
      zZ3kf}bu$ogELpEGT#Ii!Mw<T$6^q6gbK~P6$2rfpeMVE9%k{NiaO=O})z|JZp8bQ*
      t_n5t7B!vZz1*4L?MK*VheC~#I0ncicv4|zhtJqk@GH0_swgD?h{R7Gcsy_e#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTable.class b/libjava/classpath/lib/javax/swing/JTable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..315e368ff14e3de3abc2fb70a9e7620fda51e9f4
      GIT binary patch
      literal 37074
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTextArea$AccessibleJTextArea.class b/libjava/classpath/lib/javax/swing/JTextArea$AccessibleJTextArea.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb2cea250c65047d8b96f1c7b76ba233aa9cbb60
      GIT binary patch
      literal 768
      zcwUWC%SyvQ6g{_1jn-&u)mG~Zp^HAi>P}G<DF{k&)8c-tLmg=oNk&`$N*5xy@B{oP
      z@lFi&6+r@-x%ZxPa?T~MZ_h6Pwy<U+L8x4bTQRH$1Lbz>Cv7>@hrSf0!%jyAfjaNW
      zQO|}&*!~LFJo(@>y#BT4N>~3Rjs}D=eW`-dCZW)b{pK!1_LQsiKA~9t15-I8SPkz&
      zPJl4!Ace6sl9+N}W13L<&WkY^DrB0<m8UoTbLqDQTP5V0UPtuKgs)5;H7(<qP>c5x
      zw<FFl-<A4v($Yf9mgM-=awXCc(Ny)6zN`Pn?wUk-2eX(Xqyp0=l>bX6q+8yN-;qbk
      zWSAa#+b{wI=h$_n-{^@Tkb#XAb{rdzFdGvP>%8|Q|38$?n&tB?0gIPE&ix6lcDPRP
      zIa#eeB3-RL!FdQl8Gfh3k;}wBvV3!x#8Av2XCzJHNalb~gSD$qm~YnZe@F~i;x3fP
      af50M%6juc-gyhALQ^ZopB7T;!3hN!v{lF9e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTextArea.class b/libjava/classpath/lib/javax/swing/JTextArea.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ae5aff328f4aeda1531bcd0bb24b731bc7aa313
      GIT binary patch
      literal 7526
      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
      b=cZ)5X%-SiEReqo#UhDIh#LA^49C9#0vtl-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTextField$1.class b/libjava/classpath/lib/javax/swing/JTextField$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1779a187cc78eddd0093e906cbc300b64ca1bb5
      GIT binary patch
      literal 791
      zcwT*xTTdG?5QUFP$cAM@N`N$6TA&0Jpz6YN5E4QlQH8cr5bw^$0f&t(?K(hzR$r*p
      zhpNy0QB}uIxQI4bvSoXY&wQTw{pZI|0K3@mFvd{n@@sw@rZ-YugdfkutvQw=ZdZ3b
      zWEmEpMhyi+t2l^^)QTauCzUk&40E-H6^1b<S<@t>u5X?*WDj*)_{d-)z&LUY#fDVk
      zQ@_^|$r*3Of}zyV5s%M#BJFv2nKhR(Wmss8f~zx3R=LvZYftyn9c%Ls0A=G2^ovM3
      zI_Zfv!}1W6-<VKb3uVH=UykgakbTTx&ciI_9<2*d#%qR&3t^hNpF{*aTibjB@VV6$
      zk*Rx_XDI*w3qC4X46uYZ3^N^>h=b>-nVPNOxXaG4^b$9*n0sUD=!mM3%pdR`OIzgP
      zW9Wl@!4RA%C6dFKr>UUw7mrjF>y%thg}Kyi?0~Rf#~4j&D4jjp?bF%b<hHiIBmd3C
      zeOi5Y+aV>ji+1IK3IPhvC5I^#DaP;$(?hT3Fh^ng4y9kHoW8%q!lUJs3wDvm71_kj
      nc4hG3!M1?6SSFi1C0@ZQz0Ba9b67*wVcC>+l(0@~mU@A|OKrB#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTextField$2.class b/libjava/classpath/lib/javax/swing/JTextField$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc4895b16967dd25f73eaa54a12296f161a1812a
      GIT binary patch
      literal 1275
      zcwU85T~8B16g?LT3uUFH0`j4ikE(6?DBuTR5rk5Vrl1K;A9&lA30<=6*4-`OPciY`
      zXA`Z755{L7d@)92j6cPAXSbvxR3Bz{=FXXW&bfEy<F9w`0nFlof)>KSzILb`r<^0*
      z+)F*mi(_{~7shUEPC<YWmb)oK<GshleNl21v=c_XXi;dUlX_xX6=A#2GGzvdobI^7
      z6gHvVE$dEfh6!@#Go%@_q?@|COc;(g10@QCK*rh?ogiFLp`as(R)kb^B1~wFOF$^6
      zn_{baP!x7vD;k0j$yp`MC}_4W*Y#jPN+Jw3;fl?%r0&WoKZJ2#+PQAChr)DOVh{ru
      zQZPt}{u`@e7?)Y^o^Vfgx3mLh>5V6HjZ$yBHcLx)AWBe#Db?==F@iA#qo;b}167P8
      z#?=&0tD3<E`{IA(^4pe9>`0N<Rop<F(8U6_#8E*rs%OaS2NWa;J&o|1Wf^QMhy*58
      zOktX!7X4T~4fldcX23URme7BGkyYHpEke){Zq_%(eTnZR3LUt^*0#%*?XC-_Wa|}I
      zw@jIDLB%5Oa%=cZo*DCcMW*}9XT4_fI<yH{Yr@F?I>*$eSN_P^L<HJlo!eH`E{P3Y
      z-k(sz#<aw91s<Aw*)xXbID!iw%9<s^a`^bBaLX2(&0>QvR<ecWiq(>I)a<=1o_+#8
      zIGt#2;pAwVOT@+J(FO{K<qP5G-NK_2L5_CuY=PG@5=>6Kftq}a?pGeBN5;GzK24tx
      z;hD;F8NG;JFW!g#dX^WA4Df$xqJ~SGlaVVmTz!r~US0cuL=6+m$=6UhntF+$$;fSQ
      zyGO=+$Vd(I4c;g#1$}1TFX*PP{Cd9eE&h%v`hhh4^t2>>zPc7UOY@LU=W!3qoN17i
      cMX|#ETXEmZy^1wYKY2dDc{2PBaFy171KsmJ)Bpeg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTextField$AccessibleJTextField.class b/libjava/classpath/lib/javax/swing/JTextField$AccessibleJTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82f6f680d3fdacb079d8269f85b78f7794d9456c
      GIT binary patch
      literal 841
      zcwUWCL2eU45Uh6AS#UPkgv5jd2oN6}8!+5JK_Fxl$(F^%iSHAq6(-uuqMb2>U+@WT
      z9N-W|;=luV1_z#j=$))EgpI^ydb+!+)YUWJet!81;2|0zN`&@-dZUgy_N_Mio&Gi-
      zxh>7{UgP<A%+~7Nn5V@M0pZb~1ShRiRyR3(oftOmEc17RP_vwB6^}TzIx#!F7X<1P
      z=DUfpP8l~+@r29i`@6?KK79X3n02qTZ9E_>4~nPU6wDKCw0lZeZJr0(7!iVQvd0%8
      zGeoFhu7VjXM2K*O(D<8JV96^~2iow<$>A=i+e*w476!>!+$ixRd0q^%nF;sK8K!Wr
      zVq<Ba-Ly4y%JGn8Wv%8$uB7s=j<tK&`4_vHd0LIIjBA9l&8mdv|B?xnVKPa_yrnZ2
      z)#-5eGX+A_GltV{tgK}l;tru+?2xcn<Po=J`7`qIN?1V|vyz2AyHKlTFXHckyvV$C
      zE=l%S@{+{4R{I#$R{I2(KYP%koE6{di%<_sa*Ko{P}Ff%B4ta+Wu8gQuwm;2D}(l@
      jGZI6Q*zpqeQ&=uhmh3uic=AopS;H;Ql0Pe6))D*yPc79v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTextField.class b/libjava/classpath/lib/javax/swing/JTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70f42e6ff56949ccd168dfb591139059419f62fa
      GIT binary patch
      literal 8146
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTextPane.class b/libjava/classpath/lib/javax/swing/JTextPane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d033c8d99acec4a96512367794cc15f11c274cda
      GIT binary patch
      literal 6360
      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
      Clj?f_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToggleButton$AccessibleJToggleButton.class b/libjava/classpath/lib/javax/swing/JToggleButton$AccessibleJToggleButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..481d5bd79754eda516879d59a7779cab0fa512f4
      GIT binary patch
      literal 1479
      zcwUWE+fEZv6kVqjhBiYfRqlca1$$8j#2XgTwp3Em0HLKOCPt?1u?#6QI&%v00c!jU
      z-+WaPG4a6<@KgK<<DQ{H8yWDSbI!i3eOY^-{`~#@2Y^{*BzPERcho)gjbiO<dR18|
      z7}aWxr|Lo&dN^4wbIa07HQu6^;ANO=h9yguFx9g72iIzl(7`Zl0~K{&D149WLdgog
      zo6{`8b#5{QEpBRRt;kJFGxW{u5(8Ud=t>*9B~)D$)mojmzyI~&+1ssmPZ>JIwq}KA
      zC~VHPj|90bXu2jA8Ac=L_(h8h-n3ESJ}`u2$msH;4VPsE(93YO72Dbyf&J*mpo9U2
      zLDw8IhA_;~tyU_njgK7%cOk|ptvjdbe6_w?;$}f5a;e6gQ6{ofqKxE*(rZ&f19ETF
      zZLmaCPnC;P>xN+moQgynvDAh|t7+muY4uC^Fo8)4VTSRGy=6?{I?c7Pw!ECnyhv>p
      z3Tvwj;r~fQTcQy+d7%oP-d6Q0uP}_9$zR64Iirc=ri2>|18!b2rlBwdh=8WZ3~iBU
      zwiB~N|7jVHgAa4KBjGl~#Q8-#-ZJju9z$n7lgp$F8QSZ~3wm{62|umkyo?8+wnHy9
      zldqe`D{hK|zxB;G8n2P4<b_GoPBdxON;|wP&d@}Qb^{M(EZTKRnbl+}XP4FP@WL?U
      z&L@LEZ`92)f1){C*s?^^HjF{e>a@4%nrc~`wz1!3<#3JqYolK~JoGdqbkf~Ne@`Cx
      zgF*WR(%rTP&`sYUNhz{<=nTf<U(pkbf5WAC><E2d9Ml#11_%M<Ddsx-*uV%$GNB2B
      zQCy{y-kX!zjyFxGZSx*t{PRhS4oCOA3F|$<Mi6aaw@7Q(G8R8V%=?jQ3eB)X+&aSj
      zPv|1y5DSci)7nCW05s~ehF-j;h?bM1?>J5)hkbj5$CSl`q=QW%O{d?fwI56H{s9`!
      BgzNwS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToggleButton$ToggleButtonModel.class b/libjava/classpath/lib/javax/swing/JToggleButton$ToggleButtonModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6c50d9d93161ae6917d56614ea4cfd4583e4a31
      GIT binary patch
      literal 1280
      zcwUuLOHUI~6#g!hR)zt}Lli240$PSg#TRO^3I&rQC<)kv#?7?7l!0N!%uE3{#9yF^
      zu4rOhXe7p0NDvZCT<ON2;6GsH4=^#FJFQR!7cS=BbH01NbI<wCov%N)KLO~&un#2+
      zU32Q9x*W2XG$RuloiZ~SoeyOl$28iDopCeGbsszo$BPNWd`8XcPEibl-{zL4>Tzz_
      znrYmL4KuJ&hRUdE*p6yAaaGUqvYqdD`$r=q-x$0DnxQ!nhSFeXoWT>NG!jZtB|}05
      zL-m+u@LSo1B)6v2q|O;?$IKL6pwczu7eJ3QtJw@aWB<`mm_f3+GhuPt=4r|iOmxO2
      zFf_<Gf};%OnmuBO{Astmgg9%G5h$D$hyrbvaa^E2%^tKC@>r{k69SVody?xs<>cWu
      z8SSWNsGzHV<K={(l5rYAN=!02d|b8XNx7I{C^EW)6#f~_;*;VuI;$EPp7x=K3KAWM
      z)Fmgx7rEht22&0RKO$_AHYDQ=`e*>Ei$~3c1=UCk6<wZAi9(Z(MRJ8DbmN?m{X9c3
      zSag0nIY(uNWBVz2y)Me=$0de3QDFZ532x1pLJ5YJLaGBx42z+&d-Ns5)LX^UMqZM1
      zn>4dlir>)Oq5m<<UXhSNju{5GqPj|BuzeU}X#D5+8EW=D0GbaCmVO6P5oPew?jx@R
      zhu|Tb-XE<pAtBls?PbaqD%ahRYFfQ6xB@?|ay|exsC5(8p}s)gp|}#-?<<=)oP%dQ
      zunLLn#vG~wIaK6Lf^%ph``9Y#6xv%>;VWH($Fqr(#PBQA8|d&o_<)WzRJo4-#|n8A
      z+DX*rJhegji0)~nrgTTyK<^gLZsNjT!9#AT52?#X)Z=4%vro{1r%><=SMVGWyueMo
      zL>#Y>z-w^4#XR1@z<XrLUdFncp&{Q;p;=*FCce;!Ui<-?h2Q+8+4g~&weM;cp=fc1
      pR|#xkV6OqmML!egOHm=--9o&$>K0N$83gAVuDdKz${?aB{{>$t6><Oo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToggleButton.class b/libjava/classpath/lib/javax/swing/JToggleButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93fc984edf03c988f1dd71e2332df5367468039f
      GIT binary patch
      literal 2541
      zcwUWGOLH4V5dOxJELmFHSn)%4oEKQ}YL!Gdkl<J$#F1kxAsdJ-5j)|rmM3DV)ykz^
      zK{)a!_z9e$ipV^wC~j171g^jt?r@~&*<G)9^?)3_Gn(%H`s=TIru^eS-+TvP36G)}
      zVwn9v{ZM_JGe6Rddakt7tk-pZr)^nHBZ@G?oZq~<Z(1$2W*ysy8O}O(wN~S%sqJgJ
      zW__Gnb${uc;Te;+G*z$imZ>$3N^y;Wl^8|~O~bTQ!>X!!n@4{6bmd0r>Ss?FhHq+y
      zX5C^4$(brcxX?V{aS)CK2@?#mTox&Fx=Mt$trqdhm;EG*wWg8Z6S3oE&EQ+@#y)TD
      zs5Y5oxmhDFDlwwp?qS$^Uo#m_mj^15XPA)#=GB@-)#Ni(K`kYyjf&lzgwvR27%{o!
      zxKOn!!(_i;hAFw1xm~nY6OqYYE5mf37`xh-$#q_{_yMKd^RNRt+1M6;Y#n0<tR8mY
      z)W%+XD$#`+A*7<nGGqsex#0h?N!``sP>>SxU6GK(^L8ngZDE)Xmg|dh#lI@y1;|1(
      z8k-S1xF+E`USfze9E90{014bcK8h9U?f@4FH}Nt<g7|EE>W1Y#C-o~5Zex{ZS#(?1
      z>PCYb)_viyE<~HGiy=6^2{iAH@)<c({_jiUy5>bScO|UjRfY+*7isY+aiS<PEDdhR
      zNkrg0jt#sfM!QVcJlKZd?GVLERBWYK&{fkESA5bfGB7bQyumQ$53LZf#G%?!8;*;Z
      zpKS?mVvB~LeR!Z+yi$y#iu+N#MKkT^P$_PzhFa$>3A><ykJt<tmb<7HnvKJzL7mBG
      z0)|6feU$Tzl_JUXu<JRrU5=TGj=v+}UA#xROea^DECGL8miTtF-Kz0*&3=6XvRx68
      zBwW!jc*_=!(<?MHpcym)J@*C|h*F6DBI4;m6fs&y=xrZDoZ803t3=;1I=PN8?SPoV
      zSm+4jU)Wwr`o?Jmexm4~af)`5<A+I1(JC;eU5s_|6uxog2s28ygV__5G2#LIN?Cp*
      z2EW@#(~h@`BzE&SLs$aytc!V@B8D7Z*?zqKAYOm^&|)514Cip(MZ4gll?W~5qRsa~
      z`-{;2w$aWzem!Vn_bi?xZ-Kke!!p}XJqn95Hh^Us7hRT%JuI`V4@)Ky+UNk54qA|<
      z+>3juAIlWs&i*g1(80l-aB)8&?=Y=t>U&1{7Rv4sE_HC3(sZz-e2Ev&e2wKHD2Wbk
      zog|&ZFeOdXKM@x(&K5DnWSnCeEHK3;p*Wx(iL^%|?UE2XQKlI2J1F?d6kaLHy!Hde
      ziP6R`Q7b*cnmGF0V_**@yGCU%;}l!*jd#i$?@esExR>oV0iopUClJHph~4#thTPDw
      zc%|IXoEsV;8uz+`@A-lwUfvz=YOdIFlZT>wh06DM(81f?t$Tn3d+5WFT$~}O_IDpO
      RT9dTfAo~H4Q)uNF`4|3U1d0Fv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class b/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..774d4642a9c4c1ae96e6b49430f6d8ab66803c37
      GIT binary patch
      literal 955
      zcwUWCT~8B16g{`ycA;#gd=v%z0xPuJgzBTIF@YLmNduAAKKP&+>IB9tvt(!M$G`F;
      zhUkMoz#nD2yV=$Po8ZgL+<VWtbMBe>{paT|01x5X$PhN)iTC1T!+cQssIlAgeQ!qu
      zmF>Ym8lw(9IZD~E2=#N|mVa{UYpKIY_&7-@85t<y^<`j`uV1#G5@?rDZ28)RLWh0f
      z4Q1}z>B6h>^Y#xyK0H>Y@_?|^NfXs%#ABsZ_=K=rO^4L_1gqu0mDAw+9TYHAKo;{3
      z94ru4FVMzfW8!Q_X}LE%Ig~+9@GOM+jz8c51dqXSlC&b3gj%YC6z5oX`ACNU3f)kI
      zvMbpkw>s(~lB)7l_^ELj+l<Cob#MdAgt>F=4*W>f#+9uiTyq+Cux8^fVf|{fgLT{^
      zO!fBnJ8yQj4+xe2xr0#X`omx#pQ%V$ab(0+#3eXwt!2>igfY_Cs1g>_oMiVedx<rE
      z*DQbE3|5dso+CSsrb?ygvH6^Z#gAR&$~BH2aV^99j9dSXS+{<Mxi2wck=H_8dclqM
      zQ09}vB!*%M*LkPN?4(VD_o$Y0&#>}&+#nw(Ur&&8WAaVhO2}IY+4_px7rDn1Tr1&b
      RP>I+3*oZ|&>`l~Q{RM!B=Cl9+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class b/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59f1e0716018bec131dc7451eb647a00da7b415e
      GIT binary patch
      literal 3238
      zcwUuNYitx%7(KW99tS9ut*)Xjg4hS8+TtihMWCp~<)KBS;Dc#*Xa{#^>g<#Xz7=0F
      zKB6WD;v>Go4-FB8l1PI3!)p9tjL~SKF~(<ng=o~M@pbN<>2^!kAMR%Ez2Cjx{l0U*
      zbLP%lf4_VP!0EU>ff|9vE#_A9+Sbyr?ew><SnIllrKUHh)7oqf75vc5ncLhUKY^$~
      zt#ofKm~>v<yT$6`Y+RsT&6>l0Yv8)lbj*Is6Nvi*c4^LO^vG4qvxpvN+m7v@E0AfZ
      z?$WqUAiB)WTPX-k(UCw>Lj==wq);mmX^;-na<*fw8Y=c$-deM_U<uUa+&;6g&h%_)
      zhm%nWN1(ZCrmBY~!a6gb4~%7QanN-v$7k6Bv_U1heUE__<;qnkI|k?-v#1bF+QGFx
      zx(dvwwwK2$gn1p`<N;aGV;U+w!)azo;6z5LcB}-l3^bm4x#ziF5+@6^S37XF&vde`
      zQ`na6wX#DcD^DXk7OOO0!%3JUOMi+$x=IZi*J(Hbr|M`xqd=<P^1Gap<+JEVH#Ckz
      z4<;8$-)0^2#(Y<rUcc?6FdwHS&^iWte1lHewy|ghYcn|zUD9)bjx*$B#CHd!eWs4H
      zq#f^decvt0sSX{B<W$VF`v-gt=U{OHlw959QtCJlOQ<t~DHBnWWpCVAjUpLqnT}2@
      z7f5hVx4oTA*H<33(=J+0$#xxe+6#1Ch%SMtbYAV*jA8m*Q#$U_a1mA}kei4s%%x)$
      zR<lfYX`NlNm7KX}gWPkmj!PthS_WO?S(`1-v+@#33Tr`WTv{2hj7P_1s!juztcrB)
      z(Xm0*Y1q#D12XdEI<CN#%*yI7b%&fhYmsQ^;!g@&^c|txF+DP>9nwC166stlDxT%Q
      z&gbPxw7!aBr>mBlu>8DTEKNu`UR*AheAA;WqJt~}!P!h+<mFNvDhARH$Z4wn2303a
      zz|}E`BIP?cR@lm5@j=rgILYi{jTQ9et1(0@4MByDaw|EG73`wz%Y(SSSs>EjJYty7
      z0MG4NMR%(;>8_dh&R5<no&RxX{*U`jzOVu}OWYcH=yr#^KI?p2k}_p%=X@DXK<{!`
      zs$~VURI(%u)#4$`Xc0a!h}v3tS@T=N4~-1Z*`sJJpjE?OYiiyPz3Bj^?xj_O>1^Zl
      z0bJCv)zw(T(U`%W<w1QIVKJYGoI7&kcC|4ZEQTB9=olQU*7=peaoizrJZ1*LYPJ)q
      z#-&{IYdB#SrX0jcJ$17VVD>9b`=F0t?#iHVTGcX&Gw1c}LrV*vP5aRzjdmLCG}@(M
      z&@gBi(pX4iA&rI2BRIPw#&&5(JYpn*aOdyBHR;4W8OcaQjMQ#imWicPZKKGkegrFa
      zVo5k$(~-<1N70sv??ZPc$tE8w7*VyFPNbu9YQ35t!Nzn#nGCxlCDN%(?9h|{?A{GW
      zWo!SR*;Lf^71^R;_=(xNCuSSx<w4A0dj}<OC+)jf|GO~@_uv%Vi#FUxD(^=Q51@yh
      zSK%R8co+kC1Ri$cI_$zNc$71b^Zx{%#*=svPvKRLUT6O%p255H`4rFL8$6H0*duE2
      zg3z&7Ovg(ii+y4~_KSA*21dkrcwStDgGwViFhz1crV);=!X~K?dYkAa`dOkGeH=xY
      zGmAXYMj0_2(fbEt-AwIR_!|Ah9Ov@|Y_2AVb^*4~P7+Hv!j0T>HCI#kzC02rpcsm}
      zBYZ95O;n2W!V$`TL!qt@Jj%+B;~Irp$U7?3^8%t{FOs3o&Ix*NRm6x!j95hSpPac1
      z7bqFDwuF?&Gx1TJs05adJ_AjSjA%NhRItg2DSBJT?mOw2LCqP--RS(U80*V1){n*L
      zo){y_7%?LRIkzK49i{j($Y$Xtswth6!*<yiv_r?H4lSdNVm7@s>8*`>YtmZ_y$@n-
      z4_}Pr0hGooc?XpTyhkqHM=d^J6+dJ}KcXf-=56o^x&0J#@flk2Ia&J>=i)0YC%daT
      z--B=YCH#);A10qaqJ*DtEq=zW_=Sr8mC8Mg$M8E9`UjrHU)Y1caR~q5Z6WXhRr#@q
      z;(HOppCYN4ybn_)M`isbLnf0Xdn>h3LxjI6g+=J|3x<{I>Q&Y@s;(8Yu}!J2R32rB
      zVY|}bOls^pj*?t6Lap_eM|=2{ml{v82B#~H%d7c%+z=}93{|no*Q=OOA;QY*RbHy1
      l77Tb}7-BAcB7v9>;HK*LdyRT-QSGg`4Nx!yKczcR^DjB=;m-g7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToolBar$Separator.class b/libjava/classpath/lib/javax/swing/JToolBar$Separator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f046b5f0f18a28e898f2219cd6b83af7109ae8b8
      GIT binary patch
      literal 1172
      zcwUWC+iuf95IvJ?W1O_4A>~?HNZTY84Ha($`aq&esX~R6CgOF|F2TsL(b}OE|H41e
      z7m#@11Naku0x@g5CT$}WS@L+tbIzPOv%miQ_z7Sa+gT(Cs~^NCan|roEoam?IC5S4
      zl~9$Q{3w+0U6n<OP`*?X|067UQdz<tNab0s)9<tibU?_rT*vc;;}3*Ak?G%w!k3N8
      z`Ab6Ph2>cO9wAw+4G5{0dm;@aQ7~cP24S&lIr4Ba9!hm2hPEUWyY4YJ5Zs2(Q8MMf
      zw>-jH_y5|Pgq3Pg(-5bAqiv0)qjffG0|SIxCdyb2hVb7g`A#Y&PkPp8-M|Y%X%?7Z
      zj-=o3v~1yddg4;G7S`E<W%PW-YMKkU&*CFVv7&y5+l{WZD_<~N?xdYrGw}ecgaV^p
      zi!*CH8Hbo4!EVM0%^Nq0Qr@+c(Q_y2SngZe$NYt7JGwg$)^QxEg2AMhMU7{h<uD-^
      zvtpf{O!9pq+(jB0j#)k>u)q)Lt@7LC%rlO}F<t+T{CQBa$ZvxqXp?W*7MA#IhDErE
      zVnAwOIU?BS%7jK}g8KG1l>V_4v;^8=mZ!+kZopIyt0N};wSwD$h&wDb<a`o|N*3>Z
      zjmh*3pyyL^lCd1#MFee3&GYaoxIJ^0_4&YuGr^DM1HYXKemoy|I1^lnSFjhYAalk3
      faEUh3G@i0P6I-8&tWRJgz-(eGKxrve)RFrOfNjhi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToolBar.class b/libjava/classpath/lib/javax/swing/JToolBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a6953bf3005f01687a49d0afe7e7aa44565efe6
      GIT binary patch
      literal 6886
      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
      Y_^{v+A<|V(8t4=z8VKhZdQL*%{~<f@@&Et;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class b/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95de6b2b6ec69e8eb09c436825bcc2a6ad587ecf
      GIT binary patch
      literal 1019
      zcwUWCO>fgc5Ph3CNs~I{qb2l%04<?SVrbxqf{;+EN~tW08aLO<4NF<%+L70R@=y2y
      zaNq{0s1gUn4T&Fxn01}Bp_bsXyR-A=&3m)^>-V?s03M)~L4slZmHpa2Zpk;oJ#1}T
      zp66I%SbH)Ua4E%s!^c+{Xbi>_xZ@oSJ(s(|Mfl{Bp(wd8Y^TqCDLi+tyUD<|8S)*^
      zm4WRBecKuF)W;8{7w>*l-!r6xmqOO=GgQntQEfsz60QgyGc4BQA&owR*72V6EU3SZ
      z9A<M!qO3#59K-ToWfQSsVZjtGe>yrk;J#&(7lyLw4ak5^HYkoRH6@dw5vw3(a-@6V
      zkO$|9O)dw%7zQ*HhWYv#QOmK3rWg3c)>fLAbu3^piz;qraD#wx?R4D2iju^S110wo
      z6V1%$a^z69G$mr!Q(o5UV;gpq5snDnwx)6IEY?uZV4Y$0-)J2TG#O^BogH)E>ONzr
      z{Z9{uT+bW%1HL7cvi#WMhN@-IyROUqj$=#7Y5L{MbH)n2d6K?%0!v6CO;IL{W{O4i
      z5$K$RMjs(hnJW}Mq+Ejb*{1Oog{E<e(&w;Xp4MEL>JrfwuF^@TB7&lVYqT@<HW5va
      zc7>g5o?^)~eiGja3MaU38lNU~W$Fy<5?v2jSSVpHq^+ElMzkp+Tn&9N+(s>Guo1?9
      f_62v&8Pnn2{snPb#FBs!u6J=SG@`1j#G?HH|LF1(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JToolTip.class b/libjava/classpath/lib/javax/swing/JToolTip.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..116ed28ce088a7e2ed557f29214833a5daa471ef
      GIT binary patch
      literal 2448
      zcwUWFTXPd-7=AW~CJozDdax9zV5=l)AQnV{0$Ngvi7B8>f}p6|blYy-?q+s32;;qa
      z=Z!PmdGCxDI%5OEjN_FD`~x2D^bhb09G`EqIked_cBbEchxd7&_w;>v{O`jb0L;RS
      zARu96Q@O3&$=Dxh#(E}SG)=vzRU-&V7~64@HMgp!p&CvEJrX7xXG*1_+P1c$>6&vl
      zGw-c*Rl=aHTAHGlRm;{)qm)~aAmt_WWlh6&6vHVidQA;KncdERes7ERAxFLANQf5%
      zaYk1tx$Ia}o|Dj9X=+OtFZg>!vz~LBp*a^M1QW?J8MEf98bc5xG6pdeM&oZV2C~T5
      zj|sZ7s@V$ty>y!tHZh5OvMdY^$~c4}3DH`0RdLi(PQpMzGt?`!trgWODsGJNf>~jR
      z3IpZZ+YC7y8kxoletD&rv31qqtmuY2l1O$3+)MrEWyt8G0j=9<W%3$nN_x1xE8v;B
      zWJwt*%t#ngx|xptPo4;l(bzAh>9%omD~2>OBI_?o*q`vvgeZ~B=(6qFPPC%xs;&s*
      zB^mt~kPs$H6l8Ljc~w`|G9G;?=R!`)ID@ki0yT~H-PSDu+DCAXF6>R%aJQ7p>WXdW
      z7NU5So!N1^uc}zeR-=XyT=ecwXJs$e*49)@wB&+}*Dw{sJQhWoE=w3qbT>k>90iGc
      z(~edZMK~`2Z^$TMiQTSLtE#aoA?=6k+G=Re35KgOu3?J3?U;=-=Eq)XUM(LGBe!=H
      z>Of+zItiEi#Ra-9<89pF9a+;X^_pc?Rm-`X-5@vb$Qd7(J9e(FY^oK<XGipmRH5gl
      zzUn?8yiRuOIz{oGgou}`#!PI-pr8@~103yix|CZ|3}s!lWSj!iczW-cp58Yi+BF&L
      z*kEhgjn+JpcsfP|5;l#ZS#@8ln~Y=GtXUOxQ4?=SU-On67c5MF&M;KVZ9J84OT7EW
      z;RwA5@;}UR0ue+x@8xqBK#U{b68G`r{o%NeXM7Pk#<^N_aeNq4_c5Fr!Dt=Nr0O{E
      zt&5)I7)OYs&e0&&Bu5p`x~wh^hp7(EpTm^Lnc-KQg;U>Q`kNL}kGuJC2RPgUzks72
      zI8PyQHcoKjXAGnsA$^0+9p6SmY_<9N={oQU!~GP)_^g9>yu~|<6FyFz-0jpCzD}LO
      z%O3cI2aXc_%8!`ajsLO(A8p~!w=#0f!w2IRc0<4FfCfEiNW2doROfDh-^3%#i#%lS
      z<5FQJ{(2qx>mt8DAvhzxVm(vGl{Wtv#IIhR+$=2~ura<T>qA#>tikE&$vB8N@s{i4
      zGK!w^E&3rcJS;M{l$zPb$yB_Qrbu~rcl<)BU)gJqx&F-+INX4G0%CTPog+H5AMbD$
      z;QU=&_K}))rKVHyTfS1ilj09b{mJ!Tdq};{hHpysxl)H(4S&{MGv-w40X|?Y>rmSo
      wF*h%Nv(f+QsEgd<*0AaEq`i^`LSJKNMW1va10FJf58YA6ma8JUcmtvT0LKaqcK`qY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode.class b/libjava/classpath/lib/javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c8135e7a9310af9329eb24f1a636d61d4ac50606
      GIT binary patch
      literal 11937
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTree$AccessibleJTree.class b/libjava/classpath/lib/javax/swing/JTree$AccessibleJTree.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3422e491fc7fca949e5906da30fe1966b62fe755
      GIT binary patch
      literal 4836
      zcwUWGTXz#x6#h;oC22a9P)eZ`N+~U*O-m2~K`vU;R)Pg;TPqhur^(O`PG@Q|y`ZRE
      zRJ`I{xhQzU+hQ%zg=GQiBMLtI1ANy<FHbJ_nHi>&Nz!z6rO7#GpKpJA@9*q$ZvJ=m
      zCjhtO>i~QVOAkn6(nKsXu4sd?ZGCB3ZfHv;<xEByP-Sx*fS)0nWfs?mM|4fr47aT_
      z8Ne)t71jpHURPAbI2fC<?v+(JX(+lDK+rL^(B(10h;h%3QJ0c2WKB*75Mo%C-*~&8
      zlGQ0gu^?*4#E7J2T&N7Qj3Fh{u!>=BS57)M(()!nQ;aPPRgpaFP5li1IC(Dx0f;Ea
      zZ6OGlCt^0L7-~FwoHUsmXLl)@ykm5DKu-5bloy7IE<Gu!{Zd-tV|&ui2~y~}?!DC_
      zx>Zstl_%4L5=k`mhfs^U0G2S!$pI6w6!i?11mJ8-Xoj2~lT?P1NFu>GGlf10h6PDg
      zmeP4W2@%UtL_`yoGu&pHx(pWYSJHC7V(x2~45>S<kH~4`V0=i@24%jrMMNv#T5b@r
      zb|q!4P{syjW6Ecn!LZuOa7-FEV%@sJGut)2`Zku5{_hB2H8IQHDq;;9D7*=7u};LD
      z=I9_Nv_ZsOp!8M~fw-z?<c!fR8AF|VnpeyUYY9(LR*^V+Q+C{TV*r~O))p<Icf5nt
      z6~ZRm%{6rogONvvIYP)I)oGX&%a~dC5r(ig*9<;`=4+<GCQ)Y<Ek2~EDN=JJQM6DD
      z3v;)oWi76cYKEz^1h36D5%;5uAxOq%BVeeF6extbzOf8D&>g@|a!}Yx!~^JI2oP$I
      zu9Lq?8#Jbp7-KsJ4v?Nrs6G)7f>Kn@#lbn+1m{I^?VITAlnh%e7fr{}8+<}b$rA~!
      zTcQLI_MEK69-TLe<&k13<#we1NAPF>`xxqrTZ?!M5_ONho{kQNhMC|~6UrjzI{DF}
      z3>{-SE)-IAL1BfE!XQ5qLj@Au&kxN35d%n)Rw(6sJj}<Pq}con&BAd_jfi*xTdg!_
      zuM#IE<I$vLA*ZY^yN68D@~}Q8=kdV7$3%?tRy*Ia%F}HZWz4xYRV@JVq==_*$ivST
      z|B6E5&o(6KK7+#nJnOkt3z&;I!V?nqI^=AQiFl4L@{?}&^&WlPPM6uk<GQL!BN?8e
      zrtJQe=Wgy8vu?-`Uc}1*yhOU2$qo^(;8p9ua)Ho2Qz#K;W8%b5h<F`uP#XD-)R)b(
      zHZsj-vm^2&H?vq6MB~<MN=|Xt?}~VjyAI!SeQS}X47=@Ttb3298Ve=Otj(>2(TOf@
      zM$tO>2`xhxZ??}KQ<OAS$)|da^k~u;P0J1ykrX;QH7r<8M<r9`ti?wnKE_!)>i#UC
      zLaFrNP@lJY2Y<4ypUGX=lxssMp<aD7os>Hj-Z?|&>`HD&0VXth7{*m8L)SdLIXrmu
      z&dYN{)8mP{4E!iT0Hr7c3y1k@kY3yKX=OIT^nVVGHo!-JKv{G2dsH+>FQf8X8v4i#
      z2=OIhFG_@6SU_WuHjyc+v5>y0ZDElOb1ymLFrns4sHmx##9}W>3Z;T<qEuOyHVXf>
      z3=M=svchs3Z=E>?f*fxWE4*kb0>ZG1Q_$hmTnHoT#V`nCG%v<V#B2;5vnVp4kz+(J
      zVHJJWPGbG`mg}gvhE2Ph`9cf3j4c=0MaMw}Wgfy|goPuh6pmt<aLja6XMs7PH=>PF
      zNBYA&#L-T>89LDE3V^4|=R%&vsR}1tiS#*WJ|~g)VXKX?*RF4km4rlB^g6=P=oM^d
      zxPo3EE(jMqv`-=^oPsEvMzwIp<*3GX6vSLSgk7ei-HxLcJKH`No<;V&E5|-3$9ssH
      zwR5Gt)BhbF_6GWmYp>tgOLwTf_YldOb8B&hx74Z2HKcZ1p<c#*UZY7U?lRR=ED)|x
      zyjLmSYnUheK&85d<@DV|-_630uJ~J=_#5!J9sht+tmDLl7q``B!WB}V#iYf}gpP=s
      zOXX*x@(WS9K~!!Ml^aCmCegTosPL;xL9I^BTkV<$NlTm*SCHluWi_&nfbK2LZ+YdP
      zMg|@Q<`nh!A__DLw}w&gLHvVS!=FW3!-R9J_YfZETW7^|@Cu%$ht4@_UNjc0$)i~f
      zsEWEEguf`Sf1{kf!@@sUBK+%$z0QgKdAwlzX}3>~XdeAZ9G}E%9_D_AGQZEoTy&U=
      zcoT1#%-^04@f|N>86k>A5Z}j18*#0<n|M#bnC0<TxgeMW!3g4%330kOL|qYxGsPjA
      zi$Hu(9AZroh!1hrhG?_1TWV+boHw<b5%h0y!Ie62r3Cj0U6Db2iqCAgMp#Fugu{8-
      g684!emiEt^|3AkU;0=_Yzgm1r&1w_<`U?L40a%YuiU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTree$DynamicUtilTreeNode.class b/libjava/classpath/lib/javax/swing/JTree$DynamicUtilTreeNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07a5163062f3351e7ad5f5276b56dca765df660f
      GIT binary patch
      literal 2406
      zcwUWFTTfJ16#h1|$0Ng01O<wU^@74&0Fhc-u~<c^D2(^<TJ2$G0|$p0J#)rN`_MF{
      z7n7z<n=~!-si_GsKD0?4YMYq$#fScdzBlQgsQvbyfk7A&lgT;jtn0VFwf3IB{`>6-
      zfNtEiP$jT?!ny0*>&m_BX2!ZsUhtG^JvNnbCf(#k-%ac9cs8XhNP)Jcu0AbY$JD5k
      zPy54p-x*1(1!sX!a@<X)5>7hLkNP1U*Ohh{b$Vn%CH-E3_35mWQmKCJ=c$Z<xGGRH
      z?&QjvHHX}c>-Vv4`^pR}HQ|JS>}UB90$6V&gj#`y3ZdadH3aHx1hGa-8*NxvD^NS+
      zW>h>sIikD^x*d%?n{?6%$8$}4MWyt|-5fy;y%2G1HF&qk!`kFxYwO08ZyN2-<}<!P
      zpglYoB9s;z+wii0t=TCvL32WPwZq0{Y|)OpY_wuGX-s;`@m1NiuYKqRr?d)%&F$f$
      zA<r(lj%V_d%5!`-o9WdE+HEvr4+p%^z!9R~);<_sS#`0Fj*Hm{Bf?H@XUUxy<aFKK
      zka9*%b5||w;~dImPdK@81J=ST0vpPP1Yu^q5MIS=77i?!mh@obbsQwu8eiJUvDn6i
      zhK!d{64D{`S$Km(UuLp#7<&aQH+RJIoT(7c$q^ezb<gsan#$GS7zQjH=W11C$;Mka
      z!A;Jnd;amXnpAqco1TMEB3q|EY2y@z$N}LB?5VV@l>!CgdcSKlvuA9a#W|*MQYoJ1
      z3gcfs_i#ctalyt#-Dxe)+;G-YC9t^=dT`0cWn3YPuCLq5dIF8lt;JwT-&=!gc-z8t
      zo|TnW8#go;Qgfjl-?8Bsa#=D?orNUFbFI?#u;#Yo8R{x5)+*~v3aH>*mf&36BU%NI
      zVACqA%~%eXPaaizx*S=hZfVk|(eX$~=zKQsCDnkd?}U&!|D8I7hj%cOQJ&c*m9xMm
      z>Q-D8?7PBcfgK!efR}RsQr}LLq`sTXyV|@hdT{c5+WfkTD&xN)5}n7oNbC`%z$4WE
      zOkEW=@mbGE$kPbQGYHAEsFml?K>hY&92(IC80jU}6Gm#LR7IJ0O{vZSzO}77Qoz>8
      zJhnevED+)wG65+snZ$O{v6NWq`>d4Ylt~ISM1Dd2ERpiP;aBX8$O?$B!;&|M_9iw-
      zXG!9QQevU+p;gee{j?07BD&EE=!CwMN=c5=vr0#pBwOYYU7jV!EWXLoSoB;ZFN6+s
      z8W3IBTgo?50u|F;KE)pW`V-x=*j$u)Gy{|h*k3^J41$4&vdn6cgela?_pn92k0|9b
      z{#dDUwf++*))PL5rWfWxlvQTX8~p>_!?6P1jL%_b$7A#h9F(zUS-{}IVB~j*E6uVw
      zIFI21PSbo|VD{PHa~NZI&kQ;l-cvwgcn(dm$KZc++{AQr6eFm+sU!ZG!~W<~bVnE3
      zXk*~WaG;NICLq?bkH2EjbU?Jkp8W9a-}11}>8JdV!~O`ioMyitbKsw1tNaYD@;-X_
      zeOP{u0r>^u@=KhRU*WR+8jA8A`3*jh-(p&Rhx>8{vwZ(3zc)OMawg;gDJV0c2WF`?
      zQ$4hev3eaRHV&7^U@N(tpjDF1THK-(L>#-2#w7hNV;wTo1u)G`<<OCupIyle#M0
      RHoe?|XZAqPJcm50{|7Uk4?q9_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTree$EmptySelectionModel.class b/libjava/classpath/lib/javax/swing/JTree$EmptySelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6f42a94ea2bb4787c0b6366e969900b591e3007
      GIT binary patch
      literal 1021
      zcwUWC-A)rh6#k~|bYa;RsEB`61R=Iu*cjs#=uLs7xDpef#&|W|j&{v<m+VZdK8w#_
      z6ultPMDLAn;d>a*OtES)l)c!UIp5EG=j?p@`RNOQ+gNdsVOV(~`r=hhy$s{$we7uB
      z%H_@OfquO!BN^y0i616y89B%?to}{a#H?+|XQCHrqxzT6Fr#D|il`}5MaBKb1_Rq>
      zDAbc!X%XwDh<cL0^M91Tet-Lhp{P0{mF<Q_1IcjHKU1<bhKcnc3gb}UXUJBnO@>^Z
      z5Em4}!z>C6`E`p=Qt6xr7gG$=ei+N0UbiLFJ<*Ejz>=Q?6j)Gf+S{UwEM~}0cS6Nb
      ztyIsPX;w)+EItytL;8ivQ~$&WjfcV4OmKcMV3toKlDTNNN6qI_*-iR#wCwICy)=+p
      zq3O`IiEkNe2CosvGOb5KDXARXAlnno(YXH89u{eiS-L|RTn0y;c8=XmplpUq>pZPJ
      z6bLEO?haw*nfeU&<OtIrQ987OIeHh372krxH{tSoIByXkXMWw#fNl?c`RWno|43a!
      z<PVVJJ67fmNVs4#OcH+a*kIWrWcmT6_d~r&4*qy}B*P`@XrQ?JyLLE2Z&~{Mv0!kN
      lSzV##P0Fj|Eut|N*T!4)PqoNk!Sb)uuQFpYrb{#g?-vUL$?E_B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTree$TreeModelHandler.class b/libjava/classpath/lib/javax/swing/JTree$TreeModelHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9f253a06ab946a8a2f7c6cb810cd784576b8373
      GIT binary patch
      literal 3080
      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
      DS=JAB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTree$TreeSelectionRedirector.class b/libjava/classpath/lib/javax/swing/JTree$TreeSelectionRedirector.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..282a983d60dcb1328277dd560095046a1dd3ef7e
      GIT binary patch
      literal 980
      zcwUWDOKTHR7(F-1G-f*5H0eXDwXKb9UUn+@f{L4{(2^>cHZBBZl3dL#;|$D9QV|6I
      zlAsY>h-)|gBk|lxz=pKY&D`&KzVkii_un5s0o=xR8VP~Yk<)iR*x|AA-r0Kxfs_UP
      zX-HSLBjtN9WJd)Q{UD8$Kvsv_uEXHxts~mgm=f4L2_pN_i|jFwx(XxdNkUu@n2RBl
      zZ#QJ199MmGTCOB=7^_Vggv>bHeJmjM1TNNmFN_>7YC3LD8h>7W8kAmFKMPDnT@@C#
      z1@iTY7Ix@<s5})t5?Cmn;x9D?QZ>ILGaw-gmoQ@@i3JN;ED9uxI$)-*Jo&8mz9oZ$
      zA;(<ZZ<C@!qSQymlqMojnJjbGBuUTe>vn2g4pMfwg>jOnjPQvzk++EztfjFkP&iM9
      zg&SCBD{a^J<VzKG8-6cnll8{1;>lI+lqO9kZelZy4T0H-_AC^!%*DNBTg|a{60*+<
      z=W9tI6UgI0MZ6FJbI9+h(vvmgGFuvk6WjH8K{eM2L&<S3o-tdjaid8jV1W0HC1haI
      zGR>1uz{+Ozs$)6DRnO9sqxOJ$g0ESwd_%tc9rIt}n9JIxJw^qFQN$JM7IU<930L_F
      zT*LAR<qac~eCI3WugDK@{TEjDwOAdX@E<V8(lG8~+PDMDxQ998ehj=iOdbJisf042
      YEw)ghq$yTolv~(}Dew>BdTgZr0jhrUT>t<8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JTree.class b/libjava/classpath/lib/javax/swing/JTree.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2570745c8958c30475ceefe5af05936d4fa8ebad
      GIT binary patch
      literal 29327
      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
      Pd|rwP%p3T;4EX;8y+7yp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JViewport$AccessibleJViewport.class b/libjava/classpath/lib/javax/swing/JViewport$AccessibleJViewport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a8b5376ff632a63991bd5057fd9af65d4f39fd6
      GIT binary patch
      literal 760
      zcwUWC+e*Vg5Is|4V{5eaeyO)g5o^KfqbPzDg-TJWr9P*1(UqD=lG^&}7pWkE4}O3j
      zCC-Krtwi)?cjwGGGiNe+|9E`^u!*dW7$JXU-kRN_+mY5q@vtsM=f-xt++MROTvs+)
      zBE)oPghCI!WMALdmauyGAxMaOm(tB`5T+`TZMK=RBQ5Fe5@uI_;pFQCtz@5z1PFr$
      z`Vmi}4?_lY3==XxbYXj6n5sxi9JQ|-!l{|;jxbuWn`WzSI#R^}s41g7U9^R$uff(w
      zE`;}$soJX0%4$BSVFnr5lHOghm$#k3B&Kyt5tjdE8<@c?VW3{#KRY?D)(E-(^dKZp
      z?Y7et2U0m34y~^%F~KNXmT*cf({+WbW05csIXz)4Vt!<K8-4sEQ97+w!mk)KUdaIC
      z368cnj`2OXR(M8ot?&Zl(I=(&O!}!V3)@KZ%U}^xF@jN55@Q$-%B=IPa@rFn9zuQG
      Y$L_yrwLlv~#y{sU@Apya1uQ}P1pK_gX8-^I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JViewport$ViewListener.class b/libjava/classpath/lib/javax/swing/JViewport$ViewListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f00e1d9dbcfeea4d23d5cc073abff7f6b06b0fbc
      GIT binary patch
      literal 809
      zcwU84+iuf95IyU-HMQKtExkawl$I3IRKoCv1geA#h?a;4Qu4lyhjy!U9od_t>SrMF
      z1Hca;agqAKd-(!Bg$IO~b;3;w;=!6TJ7;Fjp7rPNC!YY^LfwNSuzDc-@+is&O7BJ6
      zEk%QFnwhEv4V4?xlzDIkmMt%m0~1l7w29*Mu$yW|_Y&DPmNY3aSCCX1H7QfFqmJcn
      zhXlgBNL!TUD%H=n?hA-*f$2EaxslqmWT!_HU%q;$C*K}%VbbiYyn0h$u`yQN9j4q>
      zTA59OrP@C@>n#B{P7|7fz-)j3(>_X=3sA<qK&fU4m4?#vq<6SW+0IbwY$I*6RLO!l
      zA04_@kU(|(s=v%)ZDISTH%}>7$CR+kLzUzFdtg&m>*ErZJzN%;AG;;M6{|aZt}<#G
      zX(-;8dXEy@w;JH8E&3Vt+4h910uJ^0+5WSadzxu4YtutzFIxV!?uP9X2(~m|D(=WU
      zCw3tC^Qu^3XG{D|z`+tcoMAl0|CR$k46We>cG>U>S3=HibMA2T>l^PeQ~!vwZwt<X
      zJu50NdD;ssG77lIo}R;bj{MTNFq-n1qvclW?=bTL7l&cx_oy<<0$#DC*Nop3;}(W3
      Zqj45hu~rPaR`gv*tystZCOf(g_XpMZ!UX^T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JViewport.class b/libjava/classpath/lib/javax/swing/JViewport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d7a62b6d465251ddfa0df32d3ae6e52a06a38ae
      GIT binary patch
      literal 12807
      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
      GDf>T{qn9E8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JWindow$AccessibleJWindow.class b/libjava/classpath/lib/javax/swing/JWindow$AccessibleJWindow.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02c1613da11b40f2c83615c7a54d26da178bb387
      GIT binary patch
      literal 506
      zcwTK$O-sW-5Pj3e#-`DJYdwk;wFRR`QG`+uEWwMVJ#W)RSK0)!t?_Sp5W#~#z#k>f
      zracG^1G6)4-<zGs{``J@1GvP2jU3_lMZAhPPbVsT@&;oSPNSsV3j(RNn#|-Hv0)L8
      z4Am3K!rP$r#={jxC@h|pZeI|Ze#Yo)Cfuk{Ep7>|(@e(Mh+y@jsVss}a<PSigFJRz
      z*w`gBR;qt{q>8eyLiw<qPh>n4yb+=1M}e4)M667|1}(E4;Uw$jP20S!^B67TK;9{%
      zcGvj1QFD7AhBEHYgw|5q*eBF8#uBO<gK@~-^85`{sThN%g2e{6`7CmGg&YS^>U2Ng
      pbh@8#-?`19%-Kn=d=?H+;mTzZQ&B}N<<!&MKr`hM#~xa+{s6mEd#eBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/JWindow.class b/libjava/classpath/lib/javax/swing/JWindow.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1f07bc37d0416900c7c7f51bc46473cbcf6a8a4
      GIT binary patch
      literal 4615
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/KeyStroke.class b/libjava/classpath/lib/javax/swing/KeyStroke.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36bea8147880a6c1cff4cce74b32d1127148ce3c
      GIT binary patch
      literal 2011
      zcwUv1+fvg|6o&szDLq&a(Rye>5l^Kas)(W%Pz)f2jx!3@k@3P%wlx|OCP@*z^d)=^
      zy`rNtjyK-;P>yTu1`H+C5hm<pW&Pj!*V;S$`u+7gfEy^s&>@h1t8eI=1^2yS)d~x8
      zYteJ;cQS@f|5ZVM?-iz=F9lw82^>?e47;!>9YZ&b5BiEJ1$tfeSdorv*w(Ysw1Aiw
      z=+<n@^>oXt=w@9;KWaZe)i)B80`c*xX;_9ww~^d%MW9o&S7j0r^rmnGeMEF*&2T;G
      zEY?@5rtZ2_J6BfKO`RNT94oT)aM`fr<NDf)be5WK`pR~d%;;o^p8a6gxGKmsPNa}V
      zHx>2X7{onM4jn~NAePfgrRCuYi~3oVq1ZdQrM=M|>QM8a$T~fh1QKiZs`1*ODF~!&
      zi%?IcDRq}$FH@){y<NOOCZ`P_P&x^LODW_qO#P86xDNs0zC9w(*_^g~5LO^LE!Q1c
      z)jhe&HTne#d!|Z_=~bF~vDD65fvsKtmp05@I#fVLay;lZB}cjBtv!k1-Iv-rzr&cj
      z!Mrfa<zQbFB~Gy&b)2aa?R5LA#Bg6==x=(-G-XXUr<_`SO<LZ}W>v0x^fA#F;(87r
      z>V0VXB!VYu)^=t#NGdRr`&(3Ui2bT}ZQGbhVHS_*gJ?N%{{ar0W>hxCrw-K8xm>jC
      zPF2nt{HgZrs;{vEXUSWHt|(m@#1N-7LI27+kfh%@Qs|~g4@L5{@=sTvXyEV{m2;H-
      zCTRtxh;S9hRFtpuuI?tStc>QjalBPFicX9vS*n?YlQ`uAGCtrHMWd|9XZr`zo!iK^
      zQpU;hgrbZ#Gkpr*4dApQCvgUYDmzI{4^q>7H-vNKAc6C^;8z>*?Zz_=T>Js?dAC-V
      ziq8hz#uXh(pQo(LswPt&P&U^}eS>(BiA1v7xY9~`qDaS^c|M8n*ppDqtG=fR%Hga;
      zKHI>x5L1-^DnY0l3YAceHc=x!YK|ILt!J|R4crW2y;Q870rAj)ouM@c$p$+V^>(Yl
      z3>h2?f$Dn<?m&YE@A;@1fBuK^4HTL5oM0T_vpMNQdz3qiBI_h}0$Xy3Mn9#{523Yg
      WDIupr%x&)3(m9l96_{693x5Ers+hn4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/KeyboardManager.class b/libjava/classpath/lib/javax/swing/KeyboardManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7605026eb746f6e213b71658aac3c4b47756eed
      GIT binary patch
      literal 4273
      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
      V{~-N0(ti{EH~%00zoBei{11=x-faK?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/LayoutFocusTraversalPolicy$LayoutComparator.class b/libjava/classpath/lib/javax/swing/LayoutFocusTraversalPolicy$LayoutComparator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..06f7b389c85b0e12e353acf83392572474d03184
      GIT binary patch
      literal 951
      zcwU`ST~8B16g{)u?bfo2t*r&Ws)*16Qqfo<RTHh&)U3rsLNxJZs2g0e?3&#z(0_wI
      z_r(`Yd@w%yYy1VqGux^OjS2B#?)Th#&Yk)G^UGHND_An239RnOJ$X=z_FaFwX3Kui
      zi(5gr7j1-c&j};xJr6v$+n*h#n!)Zn8Ok^aP3Qur)#aKed3Akj$LYo<(gKAf+KXMU
      z_P1Ujeb@Ef_`X1@Qr#5Lo533=ixeg-n8*lB+OF?(db?XrxFNSZM<8zpUFmJg&{h5@
      zsK;;JNZ^kBpTHXeW;gNJY`$V2rO+6URNE%b5KfYi`*A`m@Et$SB9EelvnUbRwiCZh
      z*tJ!7+QPZt;a37$u%ZZ!^;Vgi0)~Rbih?~pq%lgfOgmtWXw&GgC{Km@6xkO+FYG!k
      zS8b^L?`<rr?gCcZ_nolm$tZFn6AJ=!$J-{K{OCS$86?eP@K<Tnd`!v{^lniLYGdIu
      zvLBPQMVX}r)}Z4aPSUc5ML2~?YK}l|)ZhmzmF_HlL%y>_v8G@DghJh*oT{g%b>)~!
      zP1Q3+qi7z&DyEB>Ll~)nGTtLM^evVB07Dz-gFi@?F+ur&vmerW#JP`ALJODh1lQ0e
      zfv30)oAMdudV==#5YY&&vd-f|!k~kTv@~{WvqM>ZZ8W)_GMVPc^$KQ~D`6E^X{A|n
      c1GBVD&Z_dvaB&*u5_I#ZB%4wTtYQ(_UkCHeq5uE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/LayoutFocusTraversalPolicy.class b/libjava/classpath/lib/javax/swing/LayoutFocusTraversalPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3260ce6e40f8ecc8274e3e7495292296a8351bcf
      GIT binary patch
      literal 602
      zcwUW>O)mpM7{~w97iG0tRWGf#NQ82*agwOGRGL&8k+h0~!?Y%hY<FaKx70Ur6W_q8
      z35l~fy7)HY*{y^K;qbi9Z)TqV%=6p*BY;)R#1LXwIOA=8X*w6uJ~1o2qdd2ynx0eB
      zye+iDtzBiwW+#RS!{S%As<cb-XSk0c<HM#@W>sj(EqTQomS9LZL0KnUDtoWI#lW^1
      z5=CV@F1Ot}w>%LoyuLhLAKlzC^leC6x|<B){8F7EQdGwxh7`lv{|2A$EfrPkoNMkX
      zZ6Jws9C0KJgpu*HQHE^363pwl(lS5cf`4bSB5kqbwHiX#dLq&l)g%p^lu-TAjJT)L
      zVdx$7_h1DEqpCdJ6ea0zpZy(O@lRxkmu*|<qQxCY&_${5$}k6dCbB454l(po9H74r
      z!Jv%!n#m7QXFcG6`0@jihg}SJF>)7>W8@8rz&-|XfN`Jdv6w(MU~++<#8kl21CdR`
      Fcn31apzi<x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ListCellRenderer.class b/libjava/classpath/lib/javax/swing/ListCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..360e23d39e275761a313d159ec8a1f83431d8cb5
      GIT binary patch
      literal 229
      zcwRg8Z`VEs1_nb0PId++Mh2Oz#InQ+{o?Y>ymWn^%;FN~)SR54)V!3`qSPXG1{OvJ
      z0gwv)oJ63!e^ORzatTmVdTI%}TIc-Sg8aPHJfO6lh7Yo-ULd8`KIq0+dqzcRLPQhG
      zOZ4ITtr;1(g7Zs@l2hF>b5a=@MA2>11L<L7WME`qW&i<3pd(os*gz}>b|A^bzySbH
      C-$M@o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ListModel.class b/libjava/classpath/lib/javax/swing/ListModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..63e4dd88fb75cfc53fab4f7722349f7aad4d8b2f
      GIT binary patch
      literal 287
      zcwS{sOA5kJ44n9@e+1Dh*lsMYT?r}(6&D5fPa8^0ZJ|D^cr+Itz(a|7E<`ko3}KSV
      z%;R~x1DK#|p+p$Os!$jAc#hK0^`fI*X8|V`DukY)+(Zen*~Prq1S@3iM^`44ZD&Pj
      z%e+YVz^R@IJ+N1f_j@%Z^i>cT?YYv*Ag7!YMz;6;oC{HLf7hnYmN3lukQMwd(e$%Z
      qzUO6>h^6kw{@Cc&2x1eaDw3v(8cZq+^*1)qd}GU?Y__GB(0Kt3&q{;<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ListSelectionModel.class b/libjava/classpath/lib/javax/swing/ListSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..646ce27b5d1d401819f6c62e605494bf73e88921
      GIT binary patch
      literal 1007
      zcwTi=&2G~`5S}G%QVMND<Kl)u`7aJsM4UNAl|d^xDIy_<UeFScf+Kfbc{d@v8V4SL
      zheFJ5mNreC)2HueXJ+l$KYxGy27q^PQh{3xj>cjtW-aw2k)u|WDBZ&phdRk*CyOzy
      zzy^b=$+S{IiL-BGa!Km(?#C$n+6$xbw9n7F3>asybDBw|h13I)POwCMfI;15dAA>a
      z9<-zDLngo&G&*0RKL4~fLSt4H-kglVM!=f`az-moDQMCxyTcSkeq~vi@*d?oiM-Oe
      zjB(~<F<X}R5;d1Fc8Y0xPHq1ilnpN~^-o)$3~zB#E;Z&;kuul}xE<FMaa>^gIbLK_
      zEO2UxRG4eq{aP(kxpPymHb1yz`*fSO9DdL8<qP?0opV5EA{6n8u8Q><>Gn5s)sDv#
      zrD=oA=b4W+Dl!l0@;7$O5R{lRI0>S~O~ffm-73t!H}xCyYp*G`-ODEV5I-a-ZG*qM
      z)o)F!GOa9_^(sLfHla+cVwMfIh~Hk|+r;lI@VnsAqu7C6Fppyosuu6TzQvm3p2GvU
      zZ_$TCi*<NlvElHc!$)vr@v-Ai-1(=j&ojrLJN^P*T0C}jUqN88X^>`pZD)P+4@DpR
      A%>V!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/LookAndFeel$1.class b/libjava/classpath/lib/javax/swing/LookAndFeel$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea75ce9c974d3d85c480201be98ec818c7b0f02c
      GIT binary patch
      literal 852
      zcwTi<?@!ZE6g`)X6-s4e2xFpxIG`KG$|p@`Obm)yQZWIygpY6C8x*?Mv>pEVt2EIp
      zk;Fg1KgxLDV==|B53jlJ+;h*p_q_i8^Ya&gUF;Z`B2>@Bh4|zoAN}yeaii$`W!T%7
      zGN|nu$P-E`?F538@49EwOAQnV>)E1q>y_+_VUQ*@SA6;05y4OrW-dff>-zzR^R5;N
      zW$LsK-6o;%+z<Wq1!2Lyo~m~U`MszoXF<4S!N81(9EuiZQ6l7QMJT#{C=Z5%u8iM{
      zu4+(rBTob!5&P;s2J`8upAc5vi3{>1b6zY(D#tTFvfY~(Yu4TWeP|k3A*^Nj9|F;L
      zT3!^kTZb}<hOs9N+#xJwNv(l6k&0xZio0qt(?kXLRkX(3>mw+lc4a!f+G=Iegaq?Q
      zx7^pBmol3^RwV?h6^1h23q+DgHm3MG^nxg1nYS`Mjd}*Q36%+ES*WAIk2(<NdU(Q9
      zJ7b9!ZDxR@G-idHY{L_N+8m#0P^qk5n19A8K5PV|a~wV6yF$#y&JS3P5$3;X&Vs^p
      zhO21<WsWS46}pJq8ehWlSmh0OP~62!RE{rEJ#Ku5HNxr$_rCs<E2whX(o)M;^s$tR
      a*6~0OyP^3HQPZtRw*=R0@;8qy*na^o%*Vz6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/LookAndFeel.class b/libjava/classpath/lib/javax/swing/LookAndFeel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6324bdc5a557cce15849748df71c7c1a9ab9274
      GIT binary patch
      literal 5733
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/MenuElement.class b/libjava/classpath/lib/javax/swing/MenuElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1f74ae881e22af28aa1471c2b08355224cc5cff
      GIT binary patch
      literal 495
      zcwVKE%}&BV6ot<qP(?&YjBb2@c4OnZOM)9|Tr?pBS3|w2CG8C959q78@Bw@%<DE$r
      z62i(^%uVh&x!?Wy`u_L?aF3CLmcY$QZseO^Zc~-`A*p(jQBJCI&=wdP(a$7HPs<g>
      zmB46S=$Ohf)OAUd4Lb!E?$jFPw(`lO{GA#+Pmd6S10kY}8L3vGR5GC=@MZ#+4e*iP
      z8{GT=_pALIc9rid<5!-XUIg0i!l;9Us;FKzB};)@*E>!W=(B&U^R-sC?`zlFHU5`p
      zUoX;i5z|AO5$}Aj#+|Wu1q4oDUWaeeK^NvW4o+=6L(j%@^liMrfStTI{#zLS0Anze
      Ag8%>k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/MenuSelectionManager.class b/libjava/classpath/lib/javax/swing/MenuSelectionManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd19ae966df30637a8b005af6a434e55e650512b
      GIT binary patch
      literal 6636
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/MutableComboBoxModel.class b/libjava/classpath/lib/javax/swing/MutableComboBoxModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9bd0834ce4745beaa1926c4d067ab68f550848c1
      GIT binary patch
      literal 319
      zcwRg8Z`VEs1_nb00d@u^Mh1nf#InQ+{o?Y>ymWov(vrlaoK)xh+@yS`{0iUvl++w{
      z1{OvJ0gx*FoJ61+|D>$c<PvrUHbw?XWW6Yw7#X+{Q&L=WQgc)DN*EbLHGI$wu+|J?
      zWZ*AK&CM@Mg{pG|s$|jd1WRP*6{i-JAW4W}F#@cV7sU*q#liWdMaijdnK`LI7h>~~
      v9>^e|^BEbKftVE-7%V_9vNLcnfV|4dzy+qc8F;`nFGw7yjt@vOG4KNbV4PF6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/OverlayLayout.class b/libjava/classpath/lib/javax/swing/OverlayLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36a5ef7bed5b02afd78efd9fa21c50b9c4f1e262
      GIT binary patch
      literal 4409
      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
      Yq1WJ;JP%`}BmHos6D06!>D6!k2P5g}o&W#<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Popup$JWindowPopup.class b/libjava/classpath/lib/javax/swing/Popup$JWindowPopup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3da22354b6789ccbe18cb5b73e947169f4840d70
      GIT binary patch
      literal 1314
      zcwU86TTc@~6#k|cwv@443krg$DBDt~3gU%&!6H(uhNKG7x24^{n6le+w-)_3Mnzvy
      zDMk|$ee_2e&&*a^Y!e@5=FB<Yob#R2Z~ODtmu~<r;(-Pq!`L(9xv`scs>0ezuGytZ
      zX<~IlSOvSPE*b(1y)77qj;aDNM6=D&`r8GDP~Ns&({de#0R>4KRX3TocS^QJZbEdV
      zgeBaY4AXi$Ks#S16I*8pr0s$kh9Ac`IuY&!LpO(pkcM7{{x*EV=toq;0K;%|G$;4R
      zt|$sum=4DvhN#;u)Ae30T6xoP?J~n;TZXZQv)*<XJvbpr4O7>8OE|VJxt`<*qC-N*
      zI8I@lAwnh7-niBb%VZeTW6cFE*ASLjru1hpq2Vk;Uu%@(9L_WNjY5GT{y)MErzE0t
      z#1Loba!faC=M7ib7DG^%^Oo@h$24XbhA6&l=PQn}Sv0+-a<1VL<ADBD{xscLqVlk^
      zvuTzeNenTS`HJgCS;%|c8F04+31j?-c3Ra(A_>}6>WzWz(#p_!L9d-{sXV_f$z4ZE
      z!@|*t)LY}Y0g{(S)6I#O|BiJ@?3k8Ajj9RU=2*lX0y}@eLwY-`H;*NbE4WHbwuMw;
      z5AJcSNQYJsPRVxYc{pcR%6W5H$bQ4Bof(;rfoCjgDP1%i$D|?f=8iE=0`b%L>7zv|
      zQ5GqiPCrFR?X-8%ZI7ZsI#cnf#Aq~d2p&%yAQJzIo+neE(RYaB2N;Qe!blCHi5gCC
      zNSlx~OiIgN!_>aYo}_(@Y5=b&|7%3>2BUaOg4n|>-eCdnae<<9UOoEfxCAI`mUuB`
      zNrpaU&Ec}*pTay@0gBV0>YP^yBk_Zh0If(3*J`-skxVz(L{x@-IzJ$akE%NNUe>EK
      p-2Iz%o=zDHd3lx_dBTd*cVhRWDMzTD!-tI8S8-oqnVNhSq2DXfDtiC`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Popup$LightweightPopup.class b/libjava/classpath/lib/javax/swing/Popup$LightweightPopup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b63a0a4280cad295e7cde357c7c8cc35733dbf5
      GIT binary patch
      literal 2173
      zcwT)~X;T|V5PgG=mE?^N%zYRi#1SiO0wIY5wi6rUSdMHIFgWC}vq&4XSnLw*3W0Mt
      z=MPHC60W!^UsIK;{H0W0uLKAz@?mCrXS%1~>+b3O``<tQ1Tc<YHMA+5Uo$t&tue1+
      zJF8<^ccZ*9oUvC6e#MeG*w7GGIQ5F2Ld2~&R!N~FBZp&V#UGn-*Ed|pa{Ot9Sk85P
      zik^bn;z)CB(`v(Xtm3ZK?v;15vP-LDMRVIKS$X+Z=sT#C**~Ld^s4RH{&j^*$yNwj
      z?WNNrOA6r`H*X~n!f72Ra54^sP8|_MMe5d})umn?F~mjc*O5Rxfk6yuI73*?s1{^i
      z^zEYU+m@%}EY6X}s^!nSu3x9o8sNx5a=Yr&30%PI8it9grGk!&cthbhU1XYrHIN)R
      zI$T0yM8|75u5cn_JJ$X3`ifP0V6GHt+MaQ9W^u_Z+49}k4EqI}$s0a!Y3mx1beHz%
      zb{|2ES9%4vq7X`sED4~ubR2`O;cX&#wHgwb#JiHAaSiV&oZbuJ?V?*DH@EC3a0Sz%
      za+T$fOiOyj>bj2i@qt3z3qnLi=CCOT^}TzhW3F1I>AKBL9W%H^Y-T>MVEj+U4s9lI
      z8+SB(*x+#RR7V<j6*T5*!G6lvbS0ZExn-|gj%T~hv>?dnxQF{x_I8!KldW_GZx-_!
      zK33>CD&aa7@PI*+B4KWQ8qPTjxsqi$1lkND>)K=y#}axqJY-!RJduNbf%mD7&+s`*
      z+uOgA&p9bUj}y=%9gp!P&$Dyc#q8tEjpf;S0;oGGn#7l8KahY6{1pjz?x;XF8O^P%
      zSvkJkdX~uRD~vNnC2PYZI>K#g7=)#8@-Q`)UBQ+IKZz$gidbi1Ff2FSvXl1?Wn`Yd
      z=(T7CAYC0B_?o3vvew<rLkVdr3-b3QdVX^a>|G^?{W4W_Y$48=RqVW9ke#PGzLA}1
      zA$UvT^E+YqJsC<l2kk1l(m>kL3a3J1!7Z0^)@@rJZ6bJ&mqk%QPdn_;Gey($EKeeH
      z=-IMYvEcbTh;l@N8PffNmAx-m6T#XhFEv=%Lb!%#$==EN6u(~3TH`ulq(%oj!#ij<
      zQdM*qqg8YngH`kxo#86_QZFzt73q!CaDFOk^hT>l{ubP6aK0#h6mz56*reE;RTw=g
      z!hS2gFou+hGxG_gsC%dG4WqaeV4Miht3VR`ZGj{VLV+Y4!Wbs<%NV0>idw=$Y~JM0
      zu+HM2hGp4!j)}i8WW2=W@($jqk{5Sg;>vO;6xzX54cBCYqpOA+5BKHS8a|?wtYI$G
      z*zHL@$6}sBAB9iyH7tvQ9R7|kLN%Bo){x&1gh9AaozPS_+EouOsD6y80bEmqm{n)+
      zNDZ-u&$8Oi1;Oa5gKh+4mV{POASDHRkJ=NG7Ohm>+gfH9L=BFJ#8%=cb8K>K*YNE=
      tpmxR%Dv6jHVO9(nD%IpT)o>i+Z|fO;pu;x&7})-VpM&~QL6!Z2*nf^U`APr)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Popup.class b/libjava/classpath/lib/javax/swing/Popup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f81002f448c68c4297dfe5823e63bb08ee6caf82
      GIT binary patch
      literal 817
      zcwU82U279T6g{&|vgsz;Y+Jvz+Ui5=R}g)x2oe-l7Asa#d=Q*$hGfEKChSh!__KT}
      zDCnc$j}q@pmZsW(JItMX&fIg)?EUro>vsT;aNCE+5RUjKK5OTNRD<>#J(*5?R2W*8
      zZl|2cgWgCahN1RUDrufEJlKuhEiX*FqsJ4igfjcfxG37|GE_RcF9NJ!wTUVMhLzpD
      zu8$_e&cY>1Q!(J_^K393lk~+b5fdY|3ednR!&)qrcs(8WMD~vNQo*nu>x8FWo=J;K
      zvSNlZXV{3({M9}~RToNR44ccI%1}?VGL({@&1groKU2$ms0%uVvQGxVp`K=mcqy%0
      z;5t9F-58pYqVAoP=efvzY%y$|dBmMpM^g25;Q&caLm%7aK>n7*axgT7u(6c2{-v-D
      z8Y=8pp;bkVuun+CBLswZk5Rw>6OC_Zyg$adA76;{aGv5i34jBNZ&Ak~S~$WQF;C_~
      z!l7#%QsoA<wb>?Rp35%aqB9P0iL$wQP?|rc)7Dq5`NA-8(hpSn(HS-8MWqqL<&y^Y
      q9HzYx*BmiAC1fYUEB_aoB|;BZUA%_tu;cJ>gYIt9FmBPggZdvl$eot}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/PopupFactory.class b/libjava/classpath/lib/javax/swing/PopupFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9058adaec1a9b0279e9b8702b58335ffcc27543a
      GIT binary patch
      literal 1903
      zcwTi?-BTM?6#rdFSh6f1fk2xI)ne5UQX*FT2v}?>v;kVMX+h9xmt+mw3A>qOW2nzQ
      zIX*f1ppLCYMSWA-DUQte@nUEEqa1(tCP0wnA$QL`=iJ}<_?>(6&%eL@4qz1TXlN2R
      ze%pNC+>95?wv&x7y7^Lm#!P!|;f@BMK$o<}b0%#IYqzbmC(vG8Hw#v#>LqYuz7fK>
      zK+A;f*xosT=E%^JfN#ppSUQ@~W<W!$K<B*eSXWCMYgXa9xt6m8y64@rnOiaow%k{h
      zK5yMF3IvOmmr~J_PSG=+G))7M#_@-iG;|9L9u$$x<*clkJ736_HY~@R-b`D0&vqRh
      zL9_)R&}+bt76I+Oz50ULqe1&4Lye>AglQ9K<vFDnn5^U&H_Kjp%H7Dj4r7nk(<PI2
      zfX6iq2=vwJXO-cK<&<>v<4FTg;gmqwF3#K8b#K{{t8$rkWCt^ffK?q&;~5R7Nm?yf
      zO0G9NJ7;^gRW$G{o?`_}|C;N1i>AYZ&(y8paIUj^?(D!2hBZXl&bkf;VmKqv!w`~f
      zNx*`WN*654;Q&;7t70v>Hsk1sV^qWQG#<^uzzaA_!X!=h2h6pv7T}^yo{J2ik{S)*
      zCA^~HWr2>vF$}zlgn-!OFDbny47{c^cLJEic@3}EM&E}ua6x+c%XY?Fm!205OiNA6
      zx*|ctrRo44qV%-lseHhbju|B7rI>Bh>;~h)5uX=0c{IZ8vh8Htaut0JNoMJm9jhP^
      zs)xmiO}maqkvGksuS{-FooVECWbq|F9f#@PA4%y^Ak_lL8Vm^Ok`5%FPt5<>7BKb_
      zsSp~fM<>&j5ETzS<(3L*YsQw3MX>fZj>w}p#Vgs&M~|NJdQ<XI<_p9%z};DX1;762
      z4)mWXG{NAi^9x+2^BmeK85JjVD2M<$(NzVwL{Di8MjxYX7r~Vs^!yQhfY1S0H(`Jk
      zuB+U?%cHkyK!fP3f*!;1D(Hj?4}^X}=rP)NAqX3Op!PrQ<94XZT%OJov!F1WRIMlQ
      zL<LFYY1OIQ772gsFZ6$o&e)&mPqc(v9^vHj@UIw@^4};+MI@oc9$_TWDmO1C0s~>~
      zA;#__+3S<i__vs>s50T!hd6gD9N@ZzXw|H=Q%XCvh0rc$R)%8(y}lh>PWZpa;4bF&
      z6j!7ocvunkAJle%6#*Z!!cUn0r`&zUK7GL_?@My}6(YEc5!}NVz9vogaT8l8;v0O3
      z@96mhr5{y4@@SLQSBaC-RV=8!Z)1^ClalxXs9tW%n@^sadHxMtBjH^<m%??f{rCts
      hutX_>4J_kLPSFUm<aL$PG)7L}q9p%G-d0uI{0}h|%lQBR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ProgressMonitor$1.class b/libjava/classpath/lib/javax/swing/ProgressMonitor$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..555ce792befe828f6d2be4c37c7d33fe6c41689d
      GIT binary patch
      literal 742
      zcwT){T~8D-6g_u$WOml-u88;n2;!RHnmFv6iN=H=CMJuLXn63gJ6o2Lq18?S{}u_v
      z#0P(XKgxJp<_VK|Xmfk!oO91@=g;3?zX6Q!EJcg3awJdXkGwk5W|r?cJ9Db4cCFFg
      zy1^(#Lg)udUP>l>njERZr<kjSxjgf^I#tH!TZPxwjCJLeQI0U@4|O%zWa7A?#cL+M
      z(OkYItZg(hpYIcrZ97#N2)6`Mbh>DxCy=2}Xm12UZ>){_cyc^Z?u(q1iZDO6g)H}_
      z)8Sl$NeD++ZE83eak!q0W9=z-VBN8rvgRt~f0OTonnPxIfJZ4F5|$dw1(vW(=oHcv
      zstmsLmC%x$ZMn&x(EV&rT%q3UFvr3*+m}H~5FZS`!FDODO7WPz9aEIH;uyQiAKIzF
      zAl#TJoRVI>)3UTPZ1SzPdEEf@`{8o=Cu#A@&}H-{SFiXSknZrsCB*P2Zl6caoq)wJ
      ztfmt4TnVlNdKU{3zlX)zWvh0{h8GaYCGKA{p>OEW_h_<M2e>i`)e0WRn5$8<h9^-)
      Ou^Cvi&U?ZS@bn*MkgK8q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ProgressMonitor$TimerListener.class b/libjava/classpath/lib/javax/swing/ProgressMonitor$TimerListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7452e05d3f1bea87844de4a1559b617cc00504d6
      GIT binary patch
      literal 1671
      zcwT)}TW=dh6#h=Ui5q8fZ_?5>#Iylo2kHW$1zav^(t=YbHN>P)t`mEjOttn}yX(aK
      zfFM-}L{ULNp@^p-@laYd0ksHt;(-@_1kXGoB#;nicI|>w)t2lz=R4<ob8h2b{<-l3
      zfQPUYMH?Y;POi#Y%3IUr<y6jfmR;p}b52?NjysmuCFN$d=c}@Eqp%2l#yw?Ac0RRq
      zP8IwpItU{HD%bp!T2*B~HC6DnQ*HzjI(;Vcd|9dxXqF&s>G_Sz7|IaZ&uZ86Sw2JP
      z@K>}qc8GbiEwW3q<5A7xQ-t_<OV7k2!J2l8suP4kfo}A~5W$c@FNO(`@x-FB>=x*P
      zh+z-*MX|T3*oC*amXg2-?k4mXs;<j*n)b|T+tyydF>5&D0#WQB^k#Kg%~wlH%FW9q
      zTM-7bPC?p>($z+<gO(|kFwrXg<}q;Dy)x);PPu0tx1@@M(Xjs8MsVE7X;a-el2IfG
      zds|#2Fo76hs1($ccV<*U7ggTLIhAU~P&_Db(0J^q)B_E8NboW-7%Azp(H{|*40TyE
      z`eA`1M(=LW26QpDJTCBr>AxtrO8RO>OWRpCAx8zC1dp|+aZhOC)SCJ<8^UQ5@{GU~
      zjuE;VA;%;y-kxUv+<&%o3^O<p#c>|{oqPnI#dBQkvho+DT~)!9GbV6W;AF#eS{MBl
      z1I`J|;}nD5Eq`k~6E^>OffumAYi?cwCpOrWSTJDD=tZ24f_Jt5Hlx5xrc;*ZJN$;)
      zBy;a;HF8e1?5uGvs#f7wYIdZ(sBB*nVhc{yEvOUP?BC99D{#<o@<cLaUbSg{rk>*U
      z>~7jX#Cgvn{B4KD|0KNbFrQAuf|H*R(AQ@k8Eb9)?L{AZ_p_AcID-r)CpIyV{1!Wt
      z)+Tl(zr$Ud7`+<!-^0HHhMC?&JH3NWI*%TD7yB6(%)`+*fH6J^_u{^gnLgx*4#xgw
      zs;T64?D_=f<9v=P{u#KA``0gC#%eNRZVP}1!Xs7u6eIt4e7J$H>kUlY!Lp5Fy>!GH
      zwnFVubCGN0Ej+e?m8&6~{uw8mqMqKubn&n?WZhCTE8Fg|FC$U6)<d_D-M~<&<hGDE
      z5^W-vj5oD!9)sMH5BLxJBD&}!jL^r}PnR%BpJARp$12M;`T}p$mw2DP!Ug&om*^W@
      zp=<b+`F^9D_?^DTAM_*sqMw4+Px83Az4g``>1CYZ=3Dp^ukZ@Ap@!Xfl_d*T*!wkJ
      V2aD0ygRI`bn|#LDpZGOM;9t%;o!|ff
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ProgressMonitor.class b/libjava/classpath/lib/javax/swing/ProgressMonitor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..391ae29249f4d880984ea59c2b8544ee7badf376
      GIT binary patch
      literal 3912
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ProgressMonitorInputStream.class b/libjava/classpath/lib/javax/swing/ProgressMonitorInputStream.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4eea734ba66f96143a07a3dfd69fbf6d286dceec
      GIT binary patch
      literal 2495
      zcwUv2T})eL9LArwJ*A~P`+!koqYT(^wq;xW0;jOf@v+$nW6H(`1Le>j%GpXwdJYa_
      z%&wMrxhylrnc(GaG!ZwbamL+yVPcFiUaPm>7~`GudEXvNrHsT2n)jUd|MB}j@ADqM
      z`{(O#0X&DSA0C0jSB-a!rMP|F%4Oo`3;9gJwC&-1&T{gFWNu;68FdP#G4F>auusOu
      zt$h5nm37R@Z2|v$DMz4XXq%Ef0vZ$20wO7}x5Kb)v*1|yoIPOK#!S|fI}-wd-c;6N
      zMnb?FiH<R=Kc6;(*o`_r_6Y1&C|QFY`m-#eqaJ$&8q=n270mRh^|GUm;Vjy!$V4p!
      zLON;@Wd4wqGtVu~&zOY^vaLY<P(Ed3$Bcp{pWT-=y)Hx|qNa))*PVEOetsdJGjmSQ
      z&<4fG%vCeB{)Q4&h|?1t3&M+L9Zd)eG)0~mbO3FBv{IKX0(7+Fpg=8mtZa#nLnZy_
      z5NO^;@gNT2ux$N|z={7gg?hv0EZUPyM#rRnQ5`<i_|aJjIWoAEG8d%WJSS()qTZ41
      zOi(#CCrYi82sCWPC(XrVBco2K3YMp2yCw{6sVs$>H<ko^L@?PTSjM&Gxg6Kg1wF{&
      zUeVD5ofN4#Gj+{{?Kg5MlfIOpCv^C6Q0j0}t^!iqQ#$(4FR+8P*XN`Rk)(93U^`#r
      zN?$Z7)6dAHL79})aaMNnrLuXOV`*u_F$6qU`Zz4(DYwcPkr~6BFh4u1*lV(8F5}EG
      z!@g!M$UbMIXJzC?9dBaP$D55Cj~_qwW1LRg(5ieP1`7r0iOaYmJwXJa(s>!{GaCa8
      zuV3cYNOarl><6(AY^cu9LSb>iG1C>MkOQZ5q~!$-TK2l20n7@7Hx+EVZrE+9vgFg4
      zlb9BdHd1X$sc>*KzgS3_{321t)+Zb7n9SxCq8TWW7ar+jt~~M_fjv#~yTIolpLRfJ
      z+)nkC6jD*t)r&Rkx(mN{51RKr8dg+lBY$gD$Z<TS-hfX{*ypC-W-)mr9kHWD?DuwS
      zN7vBOEo)qgJ;b5$&LhGb(u#O`6_FL@1h5Nrh`E*bE5H#}c!N6^xpRqMxk;)yrMkUX
      zs*NK!svtXX3~@!%foF;CQLE?i0>=#?%=iE_?$hnu>*lU}iYd|_u4HCytcaKR_wvSo
      zyOd(H44z|wtZJ>7g5B0a-ioS{Q(Q}g7MAPnjXgjlHvRw!ZF*uAi8Z_`yEK1RZd1>2
      z;9bu29$UPRX53J%8cRjoRz9jbKn$Up4pue2Nmz*+k98Jt`b2mct*UEynoSkMgL3nG
      z2+B8WcrCnvae!rkTa^Aby>JH&_z<o52#4_r0hSd~Td74^_&8q25D{t+Rd5~!H(Ukx
      zDcADIx?-K-mLkq|YawkJZ3-}?ZA%!^HY2W3{`)+fRl04B=lm5q@eNP=QH3|U%7|Sq
      zqFkL<h;k);<yFTx;Ch4KkSgq3E_Nc;TEvCEFVS!p`y}PfcB27fcb2i^Auf*>G4V)^
      z(*D5~qqKis<}dmBd;b1F+x$qvpLl<MMlXJ;kT+3gPmps`$$OlfliU^Z>siH_a6PQE
      z-;}G{W*h&?_}_TJf3L8yUbgXDc-y_XakrLF*7*Yez3hKfB>UWCkNnqBfi$hkoKdhq
      msDv}~F?K%0^mx5lMCQ?Ewm)gOzi7C>E6Rt;Y*$tEwSNJ4K=0lF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Renderer.class b/libjava/classpath/lib/javax/swing/Renderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab10de9420a60caf9c12b7461cb256a9a4e5a59e
      GIT binary patch
      literal 201
      zcwRg8Z`VEs1_nb0ZgvJHMh20r#InQ+{o?Y>ymbAb)V!3`qSPXG1{OvJ0g#M-P9jj;
      zKPf9UxrC8{qd2uBEHS4vm61VA!v|g7I!ZH)k%1>YwZu6;w;(?+HLnDuP7|UqvAjed
      zE^f`pz!jWdT9lmXmYD-IjTdIK9!M=4BLgD?GXn@P0Ug51z{UV_5IX}0P=t|z6C}>S
      F1pq)BGPeK#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25387601917fc1ea5b858ef829bc86e9f3d4aa1f
      GIT binary patch
      literal 1299
      zcwT)|T~8B16g|_HuCxo3A|PJ^3fOLeg5O$1u|y>)m>_|Kw`rM_g|gf1Zc%@TMj!OS
      z7o%b#D%JR)KKrALcc!aS1+v+_J9o~Ud+wQ;A3wi*1u%(O4FQJ42H)ln((ZlJDyA1j
      znVXh3&n;dQ&X7M`v7JrfXb3UHBsyK<guR>J5Cu;|m?8c*yI8R-o-YZ8P|4h;z*ZT;
      z-n!`yO)&K44zHFW+>~jV-ZVph;wWHpnb@=TnrH+=i;hM_A_$^YM-*{}U?RCJXO8R8
      zaEuT+(-I4nt-NrSYSQ94yTD7!+%e_YPllvO2IGjz^@fmO%@tlwwHZpRN?9yVU6^hy
      zM?$Fipi{9T7{DnFgLMWjtviCR={SuchNeQrafId7k|aKn%>4_^NSYBHXOLiME(#xf
      z+p#NUhOPrvsHsdN42)_>F?1i^n~pJzGj#Ym>L<yU&Kh~eGfU|e!8h-4cYU6hNz(+*
      zYM5kbKM<hf9L|#qB$r_%u}@;{0A-T@ry?ZyqK->)H@miZ$z0=}n6uPh*4`@H7AbTk
      z>WYr564k2I&YF(*a8VRZ+oD;9DIHztW{7(Gjp{taCWe5s#Spn?SDb>lWy(X*R`0{O
      zT*;u%S(b3JCGNU{tZAw{7PLpyF1-y1&^@Cg2*hIYkkTkb`6zVyHqmH?5E9d3r1sEk
      zd_v3!?xAg$QUSEnx0#55r$qIb2%eyWMshJNK_^a79F!gUbkjav*yyQaiKy%|VtK9@
      zI%+7NLH_lSNJd<}=<~VK6lI+T<0IO3{!oQg^2I(O4L%LSNyPodj|d&2nEH(VDu#3K
      zkxW&Q{tjb)w2BM#UVe$_f)T7DGxkk|T}9SM&+k%(GVB!@_y(<bP2@XN_AMdaQK?<J
      sHt#V^(ZB~KXFz$C^5tlhyGD-CWhcY0D-Qy=q1b0|Q@J8LG>}E$7aAHJHUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17ccff4f0091bac0e9df9678a22e43387406c65d
      GIT binary patch
      literal 751
      zcwUu~O;6k~5Qg8`4TPrQ8_GAd5(l8AQPtiSaY0l<3KRiaBu;o2vv}D$$Z>Y*&*}-O
      zhyH;6sH$TVRnVme4zXumKc08S%CFx)eggP_Hz6v7&9>-@+a&KP-Aaz+jZoU|3oTmG
      ztd{9%X0D~#?MiJ!1cYUGB@sQFNT(%xx|=nHRhcfCLBdi?7s+2P&3cDMWk%U=9w7{F
      zDXr`_VQVe*SVyq`mquGQZS8?_RA?<49a-zA&erRMU?;nf5vq6@Bg7D4G*wz26ki+C
      zoVbgGiIltR)P+$lFU7!Kshp6c&l<nRjptcmn!apbM}#3$_Dh(0Y6>QFX4R#Vh7j_j
      zHLrGW33SE>7b?GT0-?ILUUxIi$C$w^Av*S+pOvdS`MAsX&V>-~X)Vo8N94K8L#z<y
      z|34Ww-#;5(gPr*s;J>57J3l9{FE~4A&8gAG+jpDO!5yOSo{62tJJ4qC8p9lYx+gJ$
      zQNTxI80R`Jn!u!|BTTVY_0cq5A>eZ!v~>H(yW<Bo?lAYSQNeK68^!lfX;i_2Ul+0D
      LSyy72M~eOc>gutb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/RepaintManager.class b/libjava/classpath/lib/javax/swing/RepaintManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9925f314f92041e835acf349d29c5b80f6e0695
      GIT binary patch
      literal 9873
      zcwUuR3w%`NmH(eRkDE*`2?Qo#Ab=o9$b*1L)C5o<DA5EYJYuL1hU7v9l9@O&35nKs
      zMO$lYYqdfvRl6<SR^6&Fptg#&#cH*+?zY|S?%LX|?RIT<+wQje=x*u%+<Rv-lLYGe
      zlY75=zVAEVIsfzgCa?bS+2;W)mCu?m1T*$ThoZv`seQ5d?uHI~AR3FO+oSR5ZaZnh
      zFPN<J4SiA0Zrr)Y?oJCTx(Aa<JDx6Fof1^GIg1C=vA%{*JGys$G}YT49cUI5C%JQN
      zw7b_9OmkO7_oaDWcbc60Y%VG5i6zq`YZLtgi8z^)-PAmGqpYTmS=X6J?iEZ*y29v}
      zofOoxonEi`9r<g?a!M>d6zz-k<R2c+JA8FA869bhrP5qm(UTb5*=MgA+_lS2lJ~lJ
      zl%G8U*-o$$yLP3zleQgq=M|Iu_3hE&SpQ)E=GgUxIJCt2?RYAdi1UD=72SQYcr3k2
      z;HzG=P2gXf=&?;i1m)v_3t>8DTBt&WAh^QWR}8^y3nq#PYFjLBZy4;~X(zX+oaE7#
      z=#KVnizZ|G?GQuoVWx?*3B)+SLzst|%JCcv#R%!B+Cm9JCTeJl2`~y_k-MYbLMh5j
      zG;qs%HAV=Fu~gMLS1_mg3^r_Dv`x=A&w_<XCK~g>$)Op-a$KO?E))c+TU*^d%@(F&
      zS`k(XBD>>*iyiihT{G>>nzaZQ5&3j-km#(&S`%vsDpxmj_eE2wfoQt7Ve?2TZTDZ1
      zObpn`bj(g!Xu&!`$!<IC5k~|UxJtMIv^lM;o5xcYjVFb0DOydeFNi>Q&cbE5oaVN#
      z8;tg;tLC5K25Ix6?W$_Kg~^y=Vj~w#7@8q$aE;Yrp&UU~xi?0ZRcC@;Q0ip>k0Lm?
      zdeoV7QRJz08ZLV3l@<aBhOix1nRs7;s#|)KcC^RB)wqVy?VaZm89LSZh`H2eWwXOV
      z6gw#(jo^|mO(q5hXz2-dI8)6E0nf3qivh=NboGhw98U^Sftk8HW?>JQgM0&n=`j}f
      zmcA!`%#z(%=nAsKD4_JNbiP)Vr_o8!SQtE)y+@;{PDu+}!Mrp5bR3u`Qg(Xn7#A@6
      zv!kieo}Sh*8I@3-UZQO#7%Ely(`)U%z79LyV<+w87121O@CMvy;{Ew?p5tKQCfrOf
      ziKSX%se!)eh@0w|KDV2=l{tIjgG0Clw_Est?k$a_wyD6;wB3<Nr1iM{7VgAdw2B6F
      zH0dZ&k#!^Y{CJw+Ik4S;4_UZdITe#rEERL|>LT1@;UgNXMcwY=loIc?@G&L&2$W{L
      z`z(Ayw+3UWw%CxZqz5c~5)TqpBCRw=X7%<(+tfY>Eqn@}rYo>&CHC5F6q%q`=DS_T
      zVB9H7&00UKp*+P{r@E;|((X?T*<+2QvOQwqQ75~&ONb1GY|)b2Vee*69haB$4B6VM
      zIaXo)yoJLa7@K<&x=yKoY2l0b5>2RnKA5&WoI0GYqB1XqjP?b}?s5E;i6_RiDx3AW
      zmFX<z=H4&kNqU~gxHV2pQe@%?ytrBgn~?iNL@lXLTR5Wfo3Yfo{(<y}mcgE4P8_pv
      z9M2HNVg74X%5xUJ;!sBP>v;<==vQE0tS8;8lou_0O)0@%JGQ$wt?GQ;!Z%c0%M*8N
      z+$mPm@v?<);uY8B)+7ewJ*hD+moMc!#CYmH{_EwA9@j*Qq$a-ti!J^$$zWVB7I3%`
      z&;Dp~udeR1({|s8!_;^4sZ*!a5C6u(XYm)~7Om~Gqj8n)2kJ??w7W`;VR6P}uw8lo
      zy@hY%J5-IH9m)FdSa)?|=|_6XkF^N4PMD)_z~}YxPZoZvJyKDYneP3Wg`eY}8Cof)
      zA!EL1<%b%DQagDu55|=0^fME`8rLRmwrSO0YAu+DUt9PMeoJfbwMRB<F`1GzpR=5#
      z<`Vn|esAJ;OjrdI7XB0eMG0f{-Do<I%rm{Sq}8L7!T;cYP5dF73kzl~{2%^EE#mfY
      zdTgN_EnM_H5iz`oiD?Wv`f7@x&#kU*D^yWi@6%bVZ5$emTFNMXO9D<1^+r=0D2{^k
      zd*%TtvZPq^z+~sl*8YCGCl*!jAc9h2iKUhbbkmWNYMgyh+QUi~NI3Rxpr;B#xdNKf
      z-nS5UdQ&V{R|^rPj6KnQRxhUG=~7`yrHWUa%0{6I9kFDF<1CD>E0s`X$*e4)O9^u<
      zIZFveBy?){D{-DBXDd-ddcBtcZjgvRs`N2OAM;f4MV8cP<}JyVip%X0h3p=E+)D&{
      z@|=<QBwZv-uQ#F~NhiTiNhD*tWASKT%V<h4dWQ8eqIsQ*T86U&r3`q*t(+omEWE(5
      zb)T@aYi-TT9Ic8Rz3OpkvZPs7Py`2ocu!*A>Ug)Ea-4bL8Cpb#=x%5>g*TtlLgpb^
      zDHju6SuL2G$0w$f?vjl=Q+9GlF9xl;dM#m>)gf6Ymzr`(mZ1{`?QGsHSuc!rUw?Gi
      zyBaW;FURw`q0N$ZcQO`N;)`mbD=gV09cmnQSxiNGq=wf7KrpTc*#9R|c8}u)JUsjD
      zIshTx>7hG${AMi*{jqcw|Cy)3Un{Mtch0gg0Ge`Du1OlutlO~Kd8roHSaPlGaPKIW
      zCZhwrv2N%7kf%eI+#Hgf(qn43FlF4NCARF+rlv18;5wLD?G=CSBDyizqctfR-RB{-
      zta_}b`4xFWJ8oBAeU|iVHZXhG*%3kp@$Ovo7s$*0fLd)!^hFuk_831lwUAVeIWN1`
      zbuq$|wq#I-G$}epE|?e0D>U{5JUkg%PIu!kDCPNg{u!w=?8<M9MmK3^7a6lH|L2J5
      zY=%!WRg_M+7s;{p!Ml1E$u0ER!ka-zZj%p~a(niUrowDVB>MKo2-+R8-;MbedslR@
      zFYQg_vCmuHtgP;`<b(1dBF#<iJ$l^`{d&`&J?Lnhw{3KSso}$d`us9<rr#2rjUl;P
      zK4PItJ}Ovo=9^irX&%2yJ8$`z+-J(ivp;$iie||t<bHZQT{P`b)!3sttnS?6P#vok
      zCB1`k#i;OjChGKF{h?+Yats4|$ipZ+Awt}1(}B+#owRkbfvr=bJF4xlD+f#E=EPvK
      z+rA{Ga!f76ak1`ZCTflIa<f){@UWRC%EzP2R98U6T=s500L3WMn>|M%{UM5PLw`PU
      z-X-4K!X)QiiZbUt8B?5hxwFsEA8GiW&fQ^DkZ&cw8c5gwN}j{?u49<-G-f^NES}>W
      zrIWYvy$NSIRB&5WZu1d}Bz#{}a}0B9p2IwHn12)tMu!VIT*P7RQPgp`xQi>79K|w@
      zmv>Du-{AkpaQ;y=)s(L&Uv(T8m#@m;lA~zjf(_hv#Zhb;mFHZl2=T)&L6nJ!8B&A=
      z?0l9=2y3JSYuV^rCX=v{;|?js)l%ljZMjlnGqyNT@;2^i@JWKJ@Lu>7I$y>l@6e~w
      zc^q9CT-!!+Z3f*ZAnkQ8W7=~N&hKtla$N?!opoQ%33m<|L(W1_=3=tUL#52eT(&Cn
      zWC6~Rg;*@rIG+uP3UroxDEiRPcO~20I1&_zyC~ci$F^HBkh76E3IuA7<GRrUgG!W(
      z@-z&PVam}kO|0C_Hjh%f%{_yLHLA)e%oSt=X`?3X)MO(yxdLa2>jD)nGYmRVR?;<G
      z$pu5$=N>8QQ-03gDebiz4x_&QMGPNAs6K=155oT>KW{mJ^7<3FC4<`zps2q6Ff7jA
      zv7!FuQ{N-b{wM3Wuacw>9?0A0t$4TQ2<nLbhYyhGjX&DS!LkfKeh^c2<j>XX+N
      zfl<YFAwu!4fg#t@hjzde8)4bSa=04{C5A<^2X!ouOF6e(uET|rM3W3+g$&^$8AiK|
      zV1rzb&HV0^8?jSvLbu$8KDh%!awl$*yRctA<N#IULg4wFj?^|xC%6L-(d-J*?Ks4d
      zkJQg(!9$EQ>KqZ(tgHQN`l1Uy+*$Y1VFc@5df`bfFd5TfE(&u?IHz8@9x3-ztxwW!
      z_p|XnkY}?<PLzlzis*IIv)Prjxn`9^VgDhNg#(8W;;Elg+-sl0tPH+TH7o272RJ^C
      z$2uL-QwMP!#aqzT6jU)6aKq6PnBHVY%#)bUB}b5Pp3geZuR6~Y5%V}+>O72cXN$w=
      zWCpKxMuJq(<nx6ynbN@dct38Yq&MR>=k4l#8MTLe8B^p*l*?0y$kU9vqi7K37kLIP
      z@+?~AE7&SuMO2=r*}j53@->Wb{&qQud*qwAUtYmO@|uI$dSXm8a+n?RFw@a-JmVmG
      zNPnkrjCBa#;>hoeUgIc$7WTQX6H$|Uc=7g(+v6E`Mjl+6ShCr-JujcQ)_jZi${*31
      zKc+R`&dVJ$a+1yPB-1|*yulL<j=!68rxvCOmDQ@L_4&%*EPpeDzaEp|<u@pi-{yIW
      zmE&#YJmq^6I_Lt|K~<ISzgGw49oaN|n9TQdBk*S&^l$NZ-myboQkm^rS;OOgxS^gN
      zRsQC~DCOXU4g&s_Rga+{i5ZnJ3>G{if*HmPR2eh#Vsm!xyxF<ftRjR{_%7o9f8bMN
      z^B;5d?lDjGRfk!@M#IyW!CNPALt7SrS|@K!;p^>#2-2xJ`iU;g;GKs~y`uOye`O-4
      znV99g^Gb-Z5I&;@A)^ize9tx-P-iSbgRvCLIJeSRmgfemJRMZqUoe*lbqRYT!M|iB
      zmk(28Z33Q9Yi026K{s_S=xTH9*RBD!P%C#GYj&;bQTx&h&*7JJ%71OsxeWfTz3v(O
      zyMUQFQvVG8TfhX~<ac&P{I$n$s{R@A2@an6X>CS=T(&HKnX`&+q6s1p37kYY5?~5B
      zpa6v;etw9VW$>zVqJ$Kwa-y<`k}pE7^LCNiPR(GfAWADyVqA=JV+|^ewU}eHU_QU=
      zjP*FrXvGTSGF)P`VUy90t2nleE6{IrVA$A<{l*sDXKcj-#x^`e`sa-+@wn0DpnH{C
      z0#A78R$>yn3JsR?aJ`hWt6=Yoq)Zm|m9;GK<uaA_*u+-s4SJFvdss7E+AtQ-9!lHK
      zLORW9;|%?&$hC~|3cuN=$-25Ge_c~R+X^R%2ALTn!Hk6KGBUl<<a1_Y5udXgi}{?}
      z81nhT#o>^fkJ+`k8CgrBud&3}X!#l^`5H?V@;jQ!B4sCWXQYgU*Kx@AN6MP~;gYbq
      zqp>7xg^PAHTHM~nbWPGxCu#HJSxy|qvt%Lj8%=#JXe`p#IgQ2oT6hK-Y9nPCsXlP(
      zwurwe5H4w)6t)^m51&d!0(GB5TlTO?;gX*G^Gd^(em`5QuHm3C`LtDJvR09Lb(>o4
      zEp$+q*TZB`&tZ(Av<E>W&UBMtx=AveQgo0sYK%cFF@|xGF@p8R^=LJ2M4NFFHX65}
      z!?+b&jXUWucOhnc5Pino7%=X^KI0>}$@nPlHtxlP#>ep)<32jgC+IZy<B0J9UNR2i
      zHRDrw-8h8r8xP}$#v^#kcoaV|?!Y_77x1p}Mf}0|l9U*aNrmyaR2xso628wfo|2Wu
      z)6!xbahxyX)UtKi^d#$~9{L-u($u{Shqjn*$mUhnu;1#}@Ro~Y2}c1|i{-MEjuymh
      z_MKX-Ow5<LPPHmRjm&haRWX)G*r`?_v@uT4<){Q3@q1auk%bNh`*|EqVki1*S<X=@
      z!(zWQ@{BUPgB|WjDwuM#(oKfQ`Er4maHdf<?I(t7kIRKl_-|5Q>^>nY-SDrB1SBID
      zRXu`9&S=f7M{#+T<6g(5r7_4IO-JOiaPYWX-WZ(aIGj$H?!<<$sS{>xI2blFvau=P
      z9-*Go+ZhRr)=}ruV0@ik@C{5eP9kEwjI)hzqTYBF7Z~4SdU%cL;dNYVe4Ez(4hD_y
      zI#%d#<<Av~VW(Ty4q#X|dmX^AY;ih(Ad|ro#|qQXBU@z~t#AQW>R&E6w+Zw0FBaNS
      zNGCfj7oquFqe&)S+r*HZQKi8?f5%EE=ojo*#TO$t7zv)l)JX6}={krKeZTL(sUIlu
      zLS1)tlj*1(^pGuz6rIGJi0Srf8Hq;BNRiK{OLuohh|}KD2w6jm!T2#F<ZWW}Q<NI-
      zu;Ba*v-myF_z4Tn+c?+w1<p6##VX^MjE-Lsr(ZKFeuG})w@jnI%S)B<98Phs{OBm#
      zDaCW0Qaslw#l23+hrJGVK^C(HiA#bwwejYpC>GJD268@C<N4J7)A`h#oKJ;4pL&F#
      z1zwcv4r0^)-?t)u*SS(I_p;M@SQ8@yzG4J@Ax!g?AmX!dwr>*ZeWh6Ln~aNnQ?S8T
      zjxOI+?DkDV(ig@)Uj=UWP0#bR{W%2p=MdbV^R)drPrD`OX-Uu1E@laGJ*|tajq7P5
      z`*>j)dw-;QWA2Z>1qJs<R|Js}-g4Z{tGHSP2-ffp-!!Im^esiecWzz}7tARU#Lp=r
      z50)G7;5c40dBq>gYbANDnwXbtWsOu`+WL=Is%^CGbCqhHP^lYvU2``t_BQ*c%FSZ|
      z*^sx_@9j1855(Tyo4JmyC2OAC+RjpZ=Z5Fx?ymY;@g0+Un*8<ZP4|wuO#8av_iab9
      z?|rE7U4<&&)y^U3xr}mp&XNasbrT*Nkq3Es)1LvR$wB!P4PU`)-KXUt&KYt@xyxtd
      UVQ5cn$lX-#5$IpJMIMFmC$l;)O8@`>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/RootPaneContainer.class b/libjava/classpath/lib/javax/swing/RootPaneContainer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86c957ee0021894fcc7a4d00326cff7507320e32
      GIT binary patch
      literal 488
      zcwTLg%}&BV6ot<Pr3e-AKPIv-8z-(=nn+?uB$~J%@un%MGo~FyUd@FM;6o8-21?rM
      zEaoikcg{VzKdY~A0M|GT&>#%v@<V=#e37VFJZNpEQt^#eMkb2006T=fLqsYqaQ{5#
      znIUvzHU&($h=!AL%v~`W5qdcr7sqM?pGTe*a$&@F&uI8$(YS`5ZE|buI&>nJobk(=
      z97NRurQtTZVz{hVE;|UJT`*2%p8wbR^-U|=(Fccd1*|nLNJ8gPzh^VPO;Shwx$~7X
      rwFrbJ+zag4chQ17e}J~vJ#@Tw5qjN6&+7sDUJr3(orGiiH*oR`wDyII
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ScrollPaneConstants.class b/libjava/classpath/lib/javax/swing/ScrollPaneConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d291ad0acd3bb9ca57123abd49b724df60ffcc5
      GIT binary patch
      literal 1079
      zcwTkV-%{E@6bA6KwhC&gqM#xQT5JDTYTLVBrD2uK#B630Ve}@GGMSD}24(=;K3gyP
      z0DY)VzrYX<HN9c@o%8MPNjAU#{QN~kr}QyL3xevm;kWQdWBC21_qE}52mLs9!(L?e
      zd&5!K8x3>xP|$i3YQ!NT>dS4^9SO>}E!lCE_62R&v$i)HV53ih3ez3hVSE?mX%V@$
      z)V^gJcHo&>+4g5c=V@6`sim}atsH;8vnpsst4`38MpMFtWK(5dUN~uKO;FKR9jOCb
      zp80{Pw3C#J$xP$2w$59#`X=I+uKRDijQFHHAK%7k)7_1x<(#LTilFkO<7>mRd8>*=
      z(=+B5?PJlTb8k^yQ04y130!4c=2e~!1y!@&Q5rZBw3o5o@B&B5rfdol)&pF6NzhJ4
      z&XFi4{c`pkhTSo)yd<zCsFpcNdQ_6C3EIs}r3cmj_e8U!4siWm|8CHY&TiregJ*o4
      zC&`Dmgr}qN^i-imT7q)W0^y!$nRx|XWqt$~m><Jy%<FKGc>~^LF2QByEqI%G2d*&h
      zLRIEHc%Qij*O?FCL*^&&5%W{{n4YD64!>Z23BO`~4ZmT23!gAI;CIZY_!abi{QtvW
      D6&S$2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ScrollPaneLayout$UIResource.class b/libjava/classpath/lib/javax/swing/ScrollPaneLayout$UIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de7b6a928388dedbdd594d08bda852f524334734
      GIT binary patch
      literal 414
      zcwUWAO-lnY6r9&?yLMfzRz2xO5VRg##G~TD1);ErSnWMsqef!3B)fk6EKh<5e}F$q
      zd>e&|2a%9@GhyB^<o)CI4ZtpzLo^7Rx8hzrChkF*>tvYQLhDmuWG0@9s@%93oJm(y
      zHkTm+!rEWv5N*QhPsc=yt7IBMXdft}%0ohPt3M(HX>lndG%*_^#0;UEDI-s+yRo$A
      zVyt<imle6tBVkpozaNA0Mma)1`)BukLNxU3Sk?P0zr8zk5Fs8IBW<dMbCUC;X#&>4
      zrTMn_>xd86W$dup^BQPvzaV;M(m>1@@dS<#AjKTB_{)TObiHT6<05+AOFn)HoliYy
      BWEB7a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ScrollPaneLayout.class b/libjava/classpath/lib/javax/swing/ScrollPaneLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de8d24f263ac72ceadff3fde367eda0361d70463
      GIT binary patch
      literal 7677
      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
      a0-!mcyBce`;u<gN-veGsF6G}O<o++Y<rQTB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Scrollable.class b/libjava/classpath/lib/javax/swing/Scrollable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abfd535f14dade22399d59432271cb500a18ecea
      GIT binary patch
      literal 379
      zcwT*wJ5R$f6oroqZJ<2Lgaj<Wlq^Kd-B5*ygajfyBsSN*q;8Fa977O4je#G)k3w8W
      zpwI;mKEplVxsT7U_YVNa7)0m@Y|rG2d`+ub+ak@CD~*w3LlKq*wn8m6k}DVE87VJt
      zSdhPT^gzzhq_y8_s-H^dbNxn~87JorDr=vP^ds3ymv$(y%XACfSnV^b9I=6;cj6Yh
      z;%3~|&@juAOki&TJTax3{~`Ams@G1cdG$Ndou2rqz*3yt3mp7oJR@C9Ijo<T&rZ>)
      qHoVE8bsvS{dIFq<@Vb1UE_w)uim=k?>W}uZ*64arCN}u*VDlTq>}*&7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SingleSelectionModel.class b/libjava/classpath/lib/javax/swing/SingleSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d13386a675c7d3f6264db0fe75257e8686f9ac6
      GIT binary patch
      literal 357
      zcwTK#Jxjzu6r4TJM5CT}Vq<3`<Qjvur62@OECLpGYj!yIST~Twc)!iUAK;G?->xWr
      zZSe+X=FNL=U*Dcz0G#0<#Yo|Jr3bw(x+m+GMJ2_tqGR3L#$PptF2z`38eE0b;<>(C
      zi7M2R{fCpL^oDDNjeK5;(ESm{c{#sPnADEC{fdtbLT9%7^hfGeVWy3_xR-HU*siB%
      zt8kJpzVFI`zAt{7&O_W`%ZFy*@Aj-}9^0Ci)=}Z;ze`U;e4-#rAiP8l-$a7&0V%d3
      XZX=7hgWZUGm_*zUD4kQOBh20bTFzT~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SizeRequirements.class b/libjava/classpath/lib/javax/swing/SizeRequirements.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c0e5c834f475102e38f900c7e615f60f12bfce3
      GIT binary patch
      literal 5413
      zcwVhnX>eQB75=XEq^B)0F_9H3i!qK9?*RgivXD55BM_J<WHDp`@+?0&a%9PoWD?e}
      zWGiVY5TFEFS|}Y)nRX_08Ydw%Y^9|O6iT5BQ_6H`XF9_a(!#Wz&NTh*eNRuWGbBIC
      zc&vNwx#ymH&Uel|=f0o*=h+hgF2q3{6#~-+j2n#|a|+wj+5S0e(l?u{&27W!yg6uQ
      ziv=B;z&TQ4PR8JRqIbYd7Ik<8CM#|_H)oBRPaB!^%|>s=q;Nq^d(3<xoy)F^cL|6q
      z1STxcWeY_kTkJ71!=`)Zhn}w2XYKyBfIgVcrU!=yDHa#-4du<0na`Vja>dwTt@x<E
      zKPwHQR7}9Lh<l2Q1ze3yJp$VDT%V~ep-+AYgoCKU6mD;f$Kx@%UfG?_nk$C~d(He>
      z%gCzkT#_~#w3Kt3sTH@R3j#B`&jiRqKU|n0k2u%I!_EsLhzXK9KZuDIH8Y4xi<%Y0
      zIhaH<=_B<^-{i#DA>dXn33!XSHN`wnBA|^;-DRXL?m`{ybZI<$*>F13XXgEA!wfGj
      z6sTCVQBLLtaWO6-K*rFJnI(p8ji;+T{S;f>LaAb&R1sxbG{(;?xIhXnl!D7YThNP3
      zY20<4a>Ek2p;K;%omum;AX?DMQ1=Sde5Rzplzy|gHk~p1#s^7YN#n*dhq39*%WftU
      zcAh$QiV;d~;emOR!KyurQktA5_<6H1oMEa)Xx~y9=F=_oBY~@RtP+@5_U|gAxFv`t
      ztY&&N#$rt|Kh~m0$2z8PSt^#v8O0#3!L<}i7gic8nOcN&gLRj>%@mLJl3Jba-y%tw
      zb{1FNE}JcHS4q~`VKaS$H(gay;a9Z1z{x5{O~9Ir*;7*GSG03NIxGFQO|VFLtVM-+
      z1CzrUqiCuauF4hCMOF+3Z$)GL%s8JV3>)Jc<4rxX7Hkb-3o-(+&q3n`SxQ)mGAtcM
      zS)bg+T+yI%J(o%qOqq2R8(G5Kg&`wbkf#@dC}Nnk&*&Q%E)>@ca<iFdS!j%(^*q~w
      z?Lq7qqvEo>$+M|KPv!F4jXbRojJqa}Wa3$d_;EY#(6RG>3U^m-m_<&e&7Cq`x@5X|
      z3&Vq5W~OLxYsyF#b5tx?uWOvh*xBpEMw+xYh~3CY>I*^KgZ)fS%eYuRH)w~xq4CWA
      z#heIzDTsTej)`R*c2@Qp1vA6KP3NV1OS63m<sQw?o7;%CJ8vDPWvr~UQRZ1(oOxD^
      zn^ds+EdTv$a>Mzg8B5DX5E?JrE)}7U=DPUr=3fLlyrg|B6BVlMunmwFvI(fM(jM6W
      zI8G$Rmcif2oJFZY$adB2a=EHPM^OEY(o>^aSOtGKQ1eEf0_s(gn2KpiAA6gv<qk^9
      zIu&U?g6Yju52Lnu+F{f+Pd|+M=CF1c4P~tnc=(%w#{1wyn)VFPnyp;Rs8cSsG})&}
      zYBuc`ifSZPp{OQOE=4udD~;={)3!B-C?loT9!J~yBbd|OQgy*7F1n_r`TM9HMaMNQ
      z=d_MuzM9vKo7by()uNJo!zdPWeX&{}#nMBLAMFV6cRR7)L4<E27B{07x6sC0F$cF1
      z+1s%MJ8?PDN#IW9TeW4E?VA_fSdK0gyA_C8){E)H$II1WU#D-GZ=T!Lp^u=cwmGC<
      zMDuqWoplyjx7%1&?Y8Lp-NrokE?tE5<`YkxdZ%_WE_?8C=o~uh$~48TiI>AX_i>2z
      zwfpM!RlE18z%S5i^s;-a6_odL_5k5Mz$AN+kUvZ}zk+%^f(tlbfXA>5U#00^!%95P
      zJzr<4d;^>D1Oxme1N=<}_9+Z<p2xQo1dCPphY`mW>Z}6ON~W)dZA=9(gQ_D-K)p-@
      zKTo-mr|R78B3RQ%`EXSUs*3ZdYa+FL5a<f52*d(WEf94Fq8<g=0UNPB*4Qu*^_Dnc
      zZz}2wd+U#4WmniYlfw!d)3UI?#0mRT(LmVWK&e<b5Y{+GH5>M_c(B9?2UF1r;b7P;
      z<=o*3VUHv{PH-~yGkf=U=nY|wgE#CBdpP<yZRpKL{bB!6tT_lzAnKRl3F#qk$QSlA
      zI_1b@nLfZMXGe(IQDSh6s60y?j}y1&5W)#wndf<tUcf@U$Oyf}lzSNle#nTtLY#ku
      zyYXY(hgWeBKVh7n!*}pAd=EdTrq{URb#i}!H}M93#ovfJtxDqTMD34Q&ub^6_C5>5
      zByv1>kFlS`IQj4{HmOS)#BXpNDL3tU8`qQaP|u@wOlR}5+(4d}mS&kVlelv&^T;6O
      z=kHSVk_yn)S|mvYX>k?$NKK%v7r|6oj`8BBNO@^@J^D%cX#G@G7W|~Qu*6tp!Qkn#
      zv;-n8t!*_L1356h)_uhB<1tkzz|@tsQ&L%`pHP$pp+ZqP45=y<AgDuhSRR+Lle1pU
      zfs?KdPsn``OPQ6f4(|xs+Za?mQKN;tts$?>u|&utXYHFQsoT8G9r`Y>pa^s3%@Hh)
      zly*B3eI2@`sl0ov&hqY%C-M|3BduIzGUi86Mb485mN+*`^O{QLRohB+TWQ&hzl>m3
      z$&6}y-7%spRR;AgoX3K8E?i<VyrLQb5#~2Y4Z<RVdNCDkVjAX?7ZY`ei}R5XGqF)L
      zz!0;rRm{eA^6nHZ*ehCbK(yhYXvdS{LX3#Hcv@VHL!twtVjf-~{hC;WH^ilQM=Zhn
      zq7#26{jpfCg82yZkAZN4dD02yNhg>monW4{gDI(-Sk&F*{*}2pf%y~Qjk;Ck-9%iX
      z^4LoaQJdH8@SbKaTD<RKy3KooXjr_r9G+i3%k07*=3Ey3oU21~b+|_m327}Mw+yB=
      z)b?%e&~~{+$lXGm{}j?5h4ze+oHtHxZ%Eslo9~&z;NHe+GI74AHRRsZzITdedZcgf
      z*8Y1Fj+$4?;aV(V5^;v>3i!m8n9gywNbvh-6+^WKbHzF=7d;HuI)>|7TrJjPt=ND*
      zu4Tn01@&sn1qbS!0$3<Y!djuITU7UU@vhuON+Ym!3J^C7{$iVo^Ag{UU0n0aho=pa
      zeCx<t)$f}}kUS%pT1}8Vvh-R*T_1a)w#y?z9_ii()tc`?3nvP<juYKmt=*HG&kN;|
      z;OLR*1Sd&wO1s}GgVP}$61@Z`NpMWe;MgbzFh^{~1tN<MF+^at5tt!#i##@wmlDM>
      zp!7SS^gE#RJD~JCp!5+GuL9+K1%(H5`Danxe8fpmWFOq^RJQbKm2FSi@G6<g;(mC<
      z1JF78#ex5;!tE|qI8n*DpKHm;o)*;vt;U;ZwVGno>weC^fPJ<q^zdWwhdqIZ9z~U0
      z40|FqzN6STg32+|FS4NMH9l8+qD_ukdqOo$SyK*`-BHgjG0GSmL!~&5DdGoA)Duk7
      z=dn<{h|9!F{FZ&0pQOjoD_&8qrYtiZSCfvbNypVB@22Hy(z*Xh`~Lgb<G!rAR}ejR
      z_nLxE)nmN8%M00=hA8EiA0c*3{>^>zrIVYsr#{68gM1qV<%2Rcz-NJGky*ulh|jaI
      zJF1Q4HVnvpTnWihGP0%JTARy}+@EOE>f2oHd(@WH{>1o%{Uzi6HYSUAFiZRz&EmJ{
      z6u(24co&y*jB`wITrGZ&8^n9O#eW#{NXzm0XT8C5%6;n=OAxJFe4hf$!}NPVwfo6@
      z09>!yy<dJw*+Bfw1|n5&qo7Qc7$~pCAu!g{u?UPs#zH_zp4I;kd0{_dqI`^6agt5v
      z?`$}q;8O7^E7>Q+;Zx%939c0XK#%w*O!2QV{-+%OQ;z>B$N!Y=zl&*dK>1(EPg?7_
      q<KyG_A>02Bj#9otl%H@OsjI>_=9{2`PireVE9~MR_|TTKNB#@EL`4e#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SizeSequence.class b/libjava/classpath/lib/javax/swing/SizeSequence.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..934e9faaa807e66cda462963edf6b3c95de22a46
      GIT binary patch
      literal 2218
      zcwTi?U2has7=C7Vwp+GST1t1Joh>Y=xLs^3Du@(X`B-F41IEP~(?mPn9+n}~**ZH5
      z6r%BhD=*Y*xq^^zgNX_VQG#A5D*gaX6gB<?e}MR$GpEx9F->O9IrE<9>%3=s_n$9s
      z1K5T`X(SA+KjEBoPLDNDxqf}D>Yfo*@peo2HIasCpjUn!^BjIVGIv7MLIbHLi<$-!
      zGZh0JyItQ6Ck!Nu!_x-L{f&8%K@wdS(&$_T1Kk!<=rGVT<@(}qYhg|VN1ZuO80ed7
      z)EsZx30yhXi)MJ-CHUaf|H&F>O|ddOogsF=WXV!eu~L!r8Nanq_QSxH`ix2j1F+K=
      zT(;2)U2kk}5I9Rs3waC?>6q(zbWxm%08%F%uO%eljH1|t&1rO4cnptovF0^=e(Wy}
      zPdyw9Ri&FEltNkP`t#y6(VJ@8Sr=hNuTVKt>s)L!-Oz3LROuS9f|l>o=g~&!P))kN
      z4AiM1n-Pc}n#ExmeHT|=iE&J?(O6{KuHO_v7>CfoWR#N~*qO%j4;*N9sTqm|3ol@o
      zfmM#orPf$nGEgf1*I(rkOHpLa&<WTU9iH&(;c+VU#VM_{I}i(vlR~RW<3$6TS70ih
      zC+d#3H>kH3gddhq*TkYU(}{fs#;c2><{op!d_fV6Mev32xDyuKW}zMkClrC4`vpR}
      zp6s83>dg!$aX_|4*+914OO-nO`nYP9YNHj@#6ed!-J13W8<q7udG<7~3Hx03FGm)~
      z>}ft%aW=tqL#~!?AX7@-%3O!_8RrSC=5w{$yBj9!x~Qf{@0ZVBtWmgW^l7X~RwwvQ
      zm+a&XtX+Z0sO1XjUse#gs7yo1Q4Z?}BEhm6>`m54@_r@ER>DfxVC8RO{R(m)r2$nw
      zU!%Zjti|h!p%Cqj8TvJY9Btqzp}00`t|`u?qF%+d^$Qff!KOz9@fLX;;?K3Y=#4pg
      zRlw546S0dK?vp#S_Ia$erT*I&Nx`?BKk_iVhi)uTpx<U88^dR@MO(<?No}EsVNLWt
      zrO7Bt$vw%5%jg+WS&hz4oJ$ya&D&!yuU@?WSN=-OzJXByOPrk{##zqZA?v#g^DG(O
      zQ))^PdaS0zzjdmsirA{unAG<aM@g=Z#JXP9(dHO{6$NksspJ(E!RU&HD1i@{z=!1f
      zs4d`J%$d^(7#NL@?tsR(9(in0<9*E5INye7#fVmXWMg<*BW_o7pi4@OFh7j}JJhF3
      zZ5N>{z6jf5(*e!MxCZrMr~?=po!xUTX$;vH?*H8uevT4=&pErw;I9$wD%RtATj+za
      z+(8{cf)ynldJfO%(4WO~n*T@Ylvll?^3KoR%Iq@bFgai*?VH$c??_#SHDG2_Lr2b~
      zjBLuz&r+2-lL3<xwa=bsX=%WGAkh*t1-_;2??`(GL-?NmRqpUae!xx=Px8GFcX0?m
      zDGL*kkk~>6<GPD0{9Re6e;76>3tg<<!+MiO`&Cz^SUC}2rccy2puDW`61u;_<Qsi^
      zZ(#q|k=OZKnZwHJh;ka;wAm3`JIX6hBM(^GqQHM9{V$~Ym96y~ZQf&^zf<BpTKa=+
      b_GjCPlw&*P*iKp7*+@KTLY~M$#qrX=i2iY^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SortingFocusTraversalPolicy.class b/libjava/classpath/lib/javax/swing/SortingFocusTraversalPolicy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c620d97c20d8be6ac27c6135a216ebbfe80190b
      GIT binary patch
      literal 3700
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpinnerDateModel.class b/libjava/classpath/lib/javax/swing/SpinnerDateModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4c8a655ad1eff79dc592b60dc9088be771e61b2
      GIT binary patch
      literal 2933
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpinnerListModel.class b/libjava/classpath/lib/javax/swing/SpinnerListModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f686f5be03c6e53ea1e5a62362d5906a9dc36f4
      GIT binary patch
      literal 2285
      zcwT)~U2hvj6g}gQ*l{*#>U@->A=#!0I5xE@pM|7>khI{|O$tukrUlxKJ#n_$tgYR(
      zn^g3LXPyuU388|Jka#Q-Z3so>jRz1CzW^cr14u}y;?C@P<2Wu4`!zH7oOAEFGyC(y
      z?;ij-j@1YP3?tXIy0)3IZ|G(@ldtNg$*r7jJLf7TZbT4bP@7lGt=f*I6&-J-x2l7o
      zU#!aLl}w&nx@PD%wN-;N^xE>Xz%5&^m>04O4D1X;_k6{)9nEwKno;B7^k=`{(z^cq
      zh#_PUH-+UST+Pvqj8HSp5Z28S-=y#?L&uD6>dq`fFfmo2pm~xJLlFH6dT}s<L599v
      zfH}+3wggHH1L%)ph`{(p)!FL8VLTqe2t&_aIt8N`BXq4)Vi-ucVhoM)Us}D+i_Y}a
      z<ro-_C>Y04hKS9boYdWyXcaE>9mwe>U#xAca%<TwOFUO8QdKmn4SjoqA!l8;8Afye
      zX9-oJtHjr|n&DA)=Jm3vIW>zA23zT8lCx65;9kD1YJ;<{O@P3;(kACZ1Q~|$-HEJW
      z@UmviS>@UWH=R?PMP7Bt<|vLcj4iKo)vi^mhR#c>COlAYXtt`Gb!v}NI)*f!6@ER}
      zQsTU0QQ|}w!wWbO!Hd)mEoRyZUc$@N2b%2`VY02@HccdTP}*&llaJ+wkMTsC;DLRE
      zqFSBQ2y+S)bTcRfu*f&vuBJWF2xz7e>rW}@!2!{JuPb;1)X^bZzsY4kXT|VY1v#9f
      zZvqs=*)~8_7MeY8@w#5A*&bz-hU9A$Z&EAm@jz^?77G~i3YKw@u-0^o=N--A^Xo*y
      zsqv#WZ)DPT4-|ybOA1zSnQAAu=hE6E)@Gx4n<2eNPhDWEr3$xIv*M_HQ|Qx8Rcr&*
      zJqN;dmp|Sv{g|B0y2nB+U#VF|ep(k@J<z&q(jpv3DBmDmVY&|^f+)Rr(peZlj4pDJ
      z-rpC_&{Nn%X9?Zo^mUcy1N1zc+(zGh46JP9P%agJYzM;uTui3!LH$MoP0)Ri2!MAH
      zLXki@9Xe&ATgRlFlQ4J!PtsE%sszz8Np_UxrX)&Il3wyiV}jJ@2uh9~dIDR-@g7ON
      z)r1}Mu*I7qu~U+Xc_UAGY{$IRN`xfhRKb$^3DMMpPtkoJ>6Q4?+j!>3Wa>LS-zL8g
      ziTh*1{{)9{8)NvqNrUQZP%(`e$#@d8etxe==8PN%!pU#(>Kz}xLk@l|;au5a502qA
      z%zLs6(n(-~f)@n94o=fHDt$?%qAxKTy0(Ke0o-A`*lyXj31Nqh?jM>sCVY-XpX02@
      zF(lA#HvyL(0sIR!)vr{K-<p7jeBdP?_yk3Xxt<21i`P<uKblZ_e3bEhee!|lV4B=h
      zQnC&W2hU3fi6r$Elw|5IvE9R4$>3cq?Do<qsRsTcFaIX(|B#pe()dFpSOCXZu*ui7
      z?`wKrZ>9a-x<KZ*dDe+R)MY|S*uljBPL2e=@Wfq_;zme|5VhN1!<0YR2)fuPdf6C;
      l**N`;C+JT*DYd9BrmtlJ@6c|e|031;D(xsy+iMa{`wt*R*?s^3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpinnerModel.class b/libjava/classpath/lib/javax/swing/SpinnerModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57431dc00c838bcb779bf7808df474643f51a92d
      GIT binary patch
      literal 351
      zcwS|Y%WA?v6o&utl4!g|Q1AtWWYgffOQ9=U3xfO69CSiVBsYDwF8Tm{sN$J4iq%=n
      z&zbZ6=Q2OPU*7;`uuaqiCV?#E*-K9<+Ig#^iXuwhW1m734FOwcy-;#)xd~{S3A9qm
      z)-udVVC*a&^RMojk=+d$Iqowf&}HI-&R5Fj@H3%8#d%si4W;kT_iUntN;BfA1g3xe
      zuG3OMQRe-J%KoE-4sk(`c54;q$(G(!sO#VF`l8Dk0s?jDWAN%t7|>r}qE%|UQmfJq
      Ox~2BCva`>34TB3_iCd`v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpinnerNumberModel.class b/libjava/classpath/lib/javax/swing/SpinnerNumberModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa5e0fc15a34cc911d144989c3e38e53df86af8b
      GIT binary patch
      literal 3988
      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
      NUo~DaJ*i_n^&c3dPO|_2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring$1.class b/libjava/classpath/lib/javax/swing/Spring$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad8aedc1619f6a8f5991dd76292090401f1e75ec
      GIT binary patch
      literal 1114
      zcwU84J#Q015PfSqPIBJl9AiuphlDr=&Q6Hq67kVQSXgpUq##!`7kiUjbiPA(w#hG`
      zNl!&jLxV(uM8OZ>2T%Zwp`oFH9x=N<4hf${bMtQA%zLx5`~KJ4cL1uWP9nyTJvRI1
      zNyUF+Ifs?K#~y_uF$spuD8r!jO}lttwz{szz-mFl57=yDwC5H>^0wtz-Mb9)MlGtM
      z)MQ9(yKONIh8d0tBqh>0CNZTUjyaBLWEkRxEY%y9BOdfR`@(x@?%RS!ZMZGdZknDY
      z|AS<rdt~_xxd_K%m8Q}UMR&(Mu{ym@)3kd+$=9XbB1azcK?RNer$Ta<IW9?Vj<{V<
      z90<=7?U22~u`JmsV#DMb$Er&DL6T-O>ZPXSu5%P|m0_YkBv_qRy65)1mZ(|s6sh6F
      zoAMA0yzV%{+qO;L7j!oLp3|~jpZFcoJ#yO|6>O21Purm0bt7uqwNg|TTeR^wJ&ag7
      zBQF4;Nb9EzVOqaNe2UN=#8jPLUONLXZ=7Ma{08Y)vK1HTt5F0MYxsaHAx@aeaS=I{
      zr}YI=kEl{|h4O3g)U)T9AuxN6g%{9<Xz8h>j!$2P>Ny$?_(=E@7AfZO87mb3Iu$~v
      z{C}O6LZ^i>P6NVU$Z0@oU&(0@>9ia=-3*-cq3p_tY*NwRB3H9IPNpzM=6j?Jy{JIu
      zK3$c(jkJ`>D-q}P9M}H6tsm6=Q)%Uf^?{Z|21@E_lvU3<HdGf=o<IgS=$jyZ^EX#3
      B$i4so
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring$2.class b/libjava/classpath/lib/javax/swing/Spring$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f15a83d2911ef0952626b31e8ee4393d844df5b8
      GIT binary patch
      literal 1218
      zcwTi<+int36kUhga2X0k3TiJ_MFm<*t=1dWKA<L(fHA@F;?oq4a16{eGXpe!lP@M%
      z6CeBlKgzfdGh7;n5a#SzYwb1r?7jc|{q-BbBb+J-Fl4{zBmJUckA=~#G|w$M3P%b;
      z44MBKhU7@^7ux3F+%&l1P<maeD*D)|)MjXvA#x%N;k;(Z7ySgK7DK3Jc6ba72^C>P
      z;s_$CLctnCuqXwox-j_r;oyv0AN8|7r;6%kTkp4YOUQQ*3^_evGvw-i7ok#8UG6mW
      z3o#fDT6%xTr}kPLIb2te_pW)hJ{31`lVNR<*%V(XF;^@tZu3SAxM2&^sK&5`9R=IV
      zUUOE(E$lLc$D-r(7?|c&ME#jnBx|{=qA>ra%emiNC*Xs{KXc3Cow@vhilUUKmsvL<
      zO3+-lr($2~6aqck_Gs!{Q7g4%@rNp{0~HzRanbELGV!sBCpe}=dzKh3YMLBNc;sfY
      z&Xwse+QATSnnSD2-w8RNggc7^sbo+!!{An}uiG}Ksioc;?Y?Of-{4Nq?8t7>)|CCX
      z#%IJ;9MTE}X`xv<Bln0R`BxAnJVw!T1n39E%X>fQ@e}HIdJ7;Wu_;4$Vj-j{QYn_`
      zIx<uI8nT|tF`bf2lqZN^Vq=2MZ*!Z7q*!#xA~CnPy~^T_k44hg;@&EY`#u&KUyITz
      zi?WYJ-q+$G4m^ub)Nk4G4bP$>&&~Y_DwjA~G<Qvk*cPH}8(Fq9HQjX+JyRJyC5*Nb
      cNj#g5Du@?ThnJ{Aj>4@Lq(7l&i1=6k00AN5?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring$3.class b/libjava/classpath/lib/javax/swing/Spring$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4dd892a5779a0a225b35a33e3b4d1cc186ce594c
      GIT binary patch
      literal 1218
      zcwTi<ZBNrs6n-w-DBJE{Ko}~%prUpI8Hy-6ki_}cWEd07zWAwZS9Z<TlD6B3zsWBq
      z6B9r91N>3ObKBBE?6R!)^m(51^xSjKpTEC;19*r%4O0yBU(A7dQgw&YI;tKVJ9MmU
      zYDhB7{m(Gu24;7qW%rJ4OIRMIH<YSs4!vsq46QLt??_8}FBlf}I6=9|kgVHnkp@GS
      zBZcV<63B6A$TK8#B`7qcCEoXYhr;=29(Dy))UaD-w`n?3y@z1Z>qwWO)QGzXl~Ono
      z-oAMvd;MP1?DmCkZ)8xyWetnrH80l3aRpZy^5e_{`IQn&dU<@CSF$H8SK3xBjcd4}
      z;re;6h~>D6Wok%A$fFK5j2U4`)S$DHR55orR-%svT=3CZ0zNq6vv3^Ij^y__bR{pI
      zXM=<pf+F22$C}b<1ctO5($qTLC^uF08=Urms!R=K+v}*jO^(OdqCEF3FQprX8cS*r
      zB(wH~>5tpNkU6mXPD{LzYChRu7VApMzzxe1PQ7couAr$EUR$lM?GnE)ypG*g-J-3j
      z#BWW^h-=uO6-v-Tv*MiEBZ|~t!wlhRincLDKOj?C{XvhP;NR(O3I&Dv4Bd%UQKX1d
      ztk7A^`S>Nwhb~)mDlS_YA#;j_5thD1Hq(k?o98UDk;Sb^7Pn(8wqq^sPO`WcW3d}+
      zQJ!Q`iLrPYYw-Z<p~WZax9a#pXtA%(wGpaIr+74OZeEGlTg<R`m}iD>x*Q~irYd?u
      e7%e4oc<PTTfoHzMbJU<l5mXD(@6a<z{O&(GN#sZX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring$AddSpring.class b/libjava/classpath/lib/javax/swing/Spring$AddSpring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1502eab240dcc3b317056138af9c8262c00f8d1
      GIT binary patch
      literal 1822
      zcwTi>%W@k<6g@qXEm;{y_C$Wl2?~jcB->FWhylya%XWx@V+S0>W5w7She_$-8cD%R
      z{scaN1ym8G3Me)#fUqT5L)L*c1yqXD)9tY<mNs+mOrLwtxsRSl&%gZvKpr1NU<gdz
      zv+vt`x#p*C{cdh^*P}UmwNg=D1YrT|C_=z!<^>XKM~{l~tRT>L->$YD0Z|f&wi=r)
      z6_-e7{GeRbmLV-25?*dpoCuB!jJ<ezt?gDTju*v{z+j*()!0eJFbK=U2_yvi7u~ws
      zx+E}?KAJyM9)Q58i9Ynppm7rum}HQ>yX({|0&|ChHn#3L+pXeJomxpTiYeBYvg;LJ
      z!YP^Ur5BRyGxtm)6`eK_QHsu(h~bz(e9f&p>+RZ><K3~hs_dV&*4VbIW!rP*yZ#t%
      zed0C+PIc-3!SLADnRK@ab^Den#}GnRc5_A`l+KhxpK(j1%JU|o7@)ShPV1Jv=hoV_
      zvYIVnB^g#Qk;4Vbs@Z#aWeOV4sqEt=@^upz71FKel_7GN$lIQ?<9MD^39ySM79_TB
      zmq&SRiH;H-fUcUj>?h>9<&}|;riSoKx}<7*%ft#+V=Sm-;wIh}7+@j}#dhm{DJv3n
      z%fvc1c-A~P3#V5yWkQ%+AhNUnS*#G|IW@j;paQYYM%&wVuDfzV$5da>%T^1RrFz}*
      zmaBHN>2PiX!HjT$dO~b;2$tMVdY0S?T0?f7HbMk<gHMxhH;ELqsqZlOp%s6K;p{gU
      z>0r!Cc5sq@ihc(#f8}R5%V)pDi|;W_-&C=91?OnP9Cljg-6mS<7|A|FCOh+h&g=uE
      zvKF6nUkAxXDH7r*{uX}bO8mkL`-r#iS3h}5CD6&G*Qdzo$&w8EIlo{@_>m?|DE;|G
      zr9Hotocj37fbY1(h~E$uk9q%}9O6l6o+z`u>hI|g3wn*7<hj_3XI}HncjNh;Jb#eq
      zX%C(^0-iTD&q6PrqUI@f<9SA&Kgsh~51yrf=aS~R9Pl)WmiTGrpR;Daz@#F)q6x1o
      zWy#2)$@2qZHMqYyw0|%x{>6m&4=M5dkbr3|U>I>+^94+BY|B~zuZ|Y*Bhk!-jihAP
      zGCt?NP=+<z!F8!aIcj;bNvWoT8zl)zcd(Y!k}LCJ2_6X(e6V8$Nn=FOZ^RHcOpF_Y
      zIBmpn&KN@4IDt816a`}p3&uEBjR~w9lYSXl_KUKD{oBB8zl;J-;vKxp?5n&;oBS50
      Tf5+#04`o{UQ;^s2eN6rj&VfwU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring$MaxSpring.class b/libjava/classpath/lib/javax/swing/Spring$MaxSpring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9984c511c81b8040391cccb269cc3f9287b7ada3
      GIT binary patch
      literal 1860
      zcwTi?OK%%h7(H|C#Ev_8nLL`rDQ;<r?Id*^2rtK>O=!TyNed~4N^B<aw4KTxTYi*m
      zkl6ED0}Bum?S=&fnj#P{u|q-#1QG%vSb*5^6A<Uly_rOftw{I#=HByt=X?(<-~RXM
      z7XUJNE(Bp9cGbFOZKoSAIPT^2My*bBe9hWcUI;-0(SryBqLDE$R5<vQm2dL~x~^H}
      zmTkbu8wfY68%-5Alt_9(>9Qq5nmQ!7QZ3mb^cfhv^L4r9luLF!i~$3^zOs1rQaplQ
      zL`~d<Ap_luj_Wj+3=Ag@=1&%TU|_^V7rJH8VH0B*XOLB^*>1_e?Eav0n^*0vX7->?
      ztt1;pjP=DWx8zAUBD39nN0MFUj!C4Vqb5R1(LE+2IAox|;JEgBtFmd=FIbyp_Agqf
      zZdv7`Rd?jKz6>_6I1K|w+Vp>Kcx>x*qTPhr-6e|=1dx*5oHh_hB#VKUxFu5MNfTl8
      zP}^m@$>dI@RVk|35|)=?^Cr@mi{O4d5W<3izP+N?tmYLH58@%BE7msqmdNLm+=(E+
      zGRn;B+??QUZkaV_B8xc*aomhDL=F;pzHVQ#>vg;2W0y^wlGv^qpEBAK9VXfbJ#ONR
      zmyoNOQAR=<8p4}IUiD$k#92Hk3p!`wyb|xYJQ>3Mu4UxG*vLk;Ro}8#9XXUks+A{Y
      z@dnJi>)Q2|vejtV9954$7R<4y0rob4s9Z>TQMm@RLN=N<L<HA?r^&CgL>jd5&(M1@
      z+J75^sgE(dgVE^34kqcx>F?m!2VREbJi8@cyoeL@O%;oKF-05Xd=onF7SU42aOyUa
      zsp(sEW^N&#it?Pj=_ebZNQjpa6tAF1yox^Y8ivH{Uh=p~pp#3lOOex)B?<azuV6{|
      zye1q``ZJ44dnPv#`vmvB?=$vElz0PS@g@euTl<(sG*g(EhrQ(-Aj>24BvZB%)1qct
      zY|r!_nXZ%RMhB)PpXpJ}bgC26Y0Y%HJ=0AxeMqK{IxwyHOpj@%Gd@#`Xo;U9!)$cs
      z9mEvns-|4cr94g!Pa^iH)c`-|@V>;L_zGj<YaA2b?2|C1B@FWK2~WZp&%BnvUxJqK
      zFVR6-cS7=?P(t43-cU$%W(NhSL^*1SQWHvz>`YE~W+^uLF2?1hl)J8@xXOha81=4q
      zuO`*=-YPDkpYC_)7T=>^{D8yaM;sMDVM_drg!l!s;#Vw)-;fi(V_E!xb@3-Iioalq
      wzflqYconBq1^&vqc*?7IfeZDtS8<O28#m|$=wI--pFxo}LX`aFK8x}H0c96leE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring$MinusSpring.class b/libjava/classpath/lib/javax/swing/Spring$MinusSpring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e0a694841aaba550fee57a7280e55a84cbe0182
      GIT binary patch
      literal 1225
      zcwTi<U2hUW6g{(0KF4BLTC`wAt;$kbinXnZsfkURkWe+jkeKMh0#mxUEM!?~AN?u5
      z`Qn2nN)t`|0sbiCon=MRr7t^o?mctvx##ZhKR<o}DB*D!3d2fAKhaN%gZGBjF4p=s
      z9jk|iH5`oNFoF!KAH%=~49Tj$Qf7!ay_z#dC3BjKDVn-OI36On-)o65;tZ+t)n`M)
      zYzaGpOALuACE4ClHij4y9G9`c5PD)*hO@`8nDckg>QOLU;g~~6K3e2hLW&;g{l2hT
      z4C~X6UNkzQ>6HCSJuPKPag8I42x+PsmUuqwHiZ33Z<vDYsrH(>S=Vht-o0edIX1|l
      z><ovd{Ut9_xmhl1^%w%k%3*IZ1aexPTDOIBsGl0$VYjZEL*eEt5_gB=E^d1W^5q{w
      z)^Z%TWNm?JFKuxoY+JM@)in-HRwGoMBsVw;ZgSuyX`Wm~s|P;NpCbWV97SwW{}bJ$
      zU!lSftM!I<Qyds_`1p8;4LKJBuUM9__f35;5M)VwYJ6<cngT>hF3Md|6sDMrrf-yP
      zdsJm~CVwLKTIFY$&wqnDLUM$wUns9&nZ6;3Q3^;?%*S|SaGlN|`M2V69S~ZP1LV(e
      zBfs_?>emUwyi}oVBdF{ks_eQ<OJlUhB%?XE6O(>=oLlZ4h>m5gI-k#pdO9U4>QOPd
      ztl0$jd<2!51lmOec^^S-CPCpMf^{Fk+nEGKcXyKDjpu77t(HC_A!*do2=_mM%Q)>&
      u{NHJnb^@i1ka7%F=^(AVn{qodaXW(t*rpB&cHFnScnG-zDK>ydSpExE`_{|=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring$SimpleSpring.class b/libjava/classpath/lib/javax/swing/Spring$SimpleSpring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..15cf67f7dfab70c606e11e3b1089fcb7a276eb78
      GIT binary patch
      literal 1250
      zcwU84OHUI~6#h;h(^7`ll=nkGLE5Smd@F{91d}G!nA9|JInWD^nNI7p1r{z`xpu8C
      zT<OMzCIX2j{s4cJ@tix8(v&7{<~-(n-#y=V@1MUve*;*@MgkGS{7d`5KFT)^9dAEh
      zs{0(4N=~)zs-Q?9MzGEg5u#PcBT#`5tNUtC8uk$(eqg&TMMySlrDiZWn#mT0A@ACP
      z*WC?<ZPh9&fkDDV_uq#t$E_$oiDANU=Q<0uy@eD8V3|l`lwdq?Jg2!y7|WbLB3teQ
      zVcbL?3;|7=n8GxJ?0Q{!6~b($aDKD!><vN8nn<CaFjRCr^`uqZQT{V~$7Oj|v9@cw
      zW!rb84x6#&3#UO?EdIw-7H?z<g+jKRLKK%o%M$yS2^PL=A`U~cjEO{$<xC`DFw9ej
      zkHz-{Cr`EQx+TsJ?W-myPPJ7n2Y0}Xg|N>yo%Kh!BVgtGsuK2++|z0F4L=XA8)40|
      z*rqbG@y!xarCQ71RgWAI+#l#!6}<$r;Cag5a_vS#u?=RYWUMh~l$m3&L>_0Bh|@8t
      zV?^$WV}d8yb^e-MZ8C~Dj{d^Hb8F}nBe@?KJHf;WX1;0E9Dfa&p<P_y+zjS1j|HtH
      zjm40w#nUm4Q@K-I%*`BQIX8QZmE7DhvXYH`Zxc?-DpcjyUqc_&`IWvxntV)BLm!e0
      zh{8i8yAmwH*;URWI=jZ1tiOtUxPnBPinEIB*RK6vckCZ;@4wa)yxa|b+Y`Lr6TH$5
      ze%BLxy$#;xY5A8H^Q{}7kkl+voly<S1=D->>jV4sv4b+*ro4$;?Td|Qmkhax4(C(S
      hrO$}d7tJspOtqaha9b}O!5xjci+dU+>Y})h>3`N_(nbIP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Spring.class b/libjava/classpath/lib/javax/swing/Spring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..14b09ee65b94193efdb11b8e24741e1d66fbe2ef
      GIT binary patch
      literal 2675
      zcwUWF%~u;$6#u<^5HbYXBD9o`5?YWDq!DPVwiK;=*eC@o6h*XlNCp^4CUIs0xO3yd
      zm8&j19yhwsh1J%D;E{85<?$TX>YwBB_hyEWhRM-Ia^Jh}-rxP*kN4(}e}4W2z%X_q
      z2naN9s@v*r%G%M5_0&Sqq=+CSa9Zk9IhESE)lDs93xw~@E=(;7h_pcCM8U9Z)v%Y;
      zTuBRlL_~qQG2PJZae-iBU`Ze}QOIfvf@q8(3Ps@5jBaSNrTnU9E~=|JjnQWc88x@0
      zn!4P3%8<RGTLLXJC#l^KsLyzj1<obX1Aaykv<h^eJm_7}^TnLzZWOfOoFvvp;)!%R
      zEhz`L)ttb2XX_t6nAZ(bESlPy+^D-uYhAPNsJnW;ly|D(<e&ERtjMwc3^nug)J#*$
      zdb)b*yybYpFQ%WaM%sM>ojz%k+)>WG=$APs1P1?qFcv0Y4a>g~P5}#0VtbOl{xyhQ
      z7P#O?OhO$|8^ZIF+OX_vEgFJ>>#cIZLJ6m9O)TNU2937va$Y%d0x!hSgKoKcDTX+@
      zU8AYpqH1KzMq@EtkVjGJZ=0&@EL%4z&t8e)q6_e93|HONWDM7(z1Zfj$e&4H>)1Dx
      zm>gJ=hHu0$iYuHe%R3R1M7B!#2<H7;bSs-Zs>2-mS!Ij&LaWuK=^ACe=at#Lx3i^O
      zZoZ%!wq{Q4X0)QM7mRwm#rj%~LtHi2OL@((<GK|$Xslon%d!XW2(-F^T_h&xb|8Xx
      zc`<$X4=Y%~ed+tYKwDzERs-wY&|Ivk8N0v&ifLxMqi5}n@=T@F9XmBq$QKI++0~k<
      zHGd`}3N&m;CVF|2ssTwPnmO7Yy);!uq`0B!>l=0ihJU0{1$mIQvQQ|Q8EsmZ4Qp@@
      zFH3uYSlTc&b0Vi&md4SIRX#xEQ0_YYD((VL%2zhj!+8oi&+B=FQAZi!E`WM8BP8Ed
      zY8t2+r4*Fm<N;zoI3`W}S15rgn%>4Ku41kcPU8$^lpxP|09UD%XAOsFS#ED{Kfu{1
      zWtckWXrTh4fqd#bh;|PmO^9F_qNCFX;=ThBcg@h@K*&|6ciw<5t^)i5@oGYTiQ=B@
      z@#IA*8MX_Tys+cUPG+ebqIWqtcz|cCqkiH<J?mOwz{y>%l3cOc7{qhsG6o%w=plxd
      zS;|y3)WeDzL@^?vNQ&3pvExhO0bSuv+9=6=T;uP>?4v5AFDsA~uOR{X!uTNEkSHe*
      zzV<-?Zn7XQ!pAI3h;o45FONxxn;o5B5%2)FzCnayV!Z2fghS&Uo!Pyvy~5*ifOe-d
      z-?E{P2>l&9^*xC_W*43~L6a`97c|Td%alV(q1CkPAU&G!8dtK@w>cUvr4MNvrtIr)
      z`s|CRnMi*9U3*)fKDZW2wubic`tcYyJK=t$+~;5%Fx*cSH2TW9_hANi7)p+{8~g(A
      zi=-y+%B<hW%sC_TW_6!``;U>i%iG{$EqYjO$=}g<h{fgRr31YE>mgQ_FEO$Aj**+3
      zV*E+_zqtOpB0?J;coEv5V%3R|LH6WOYH}#otH_GbQ$x9lEl1}30P+%`Pz{js0SKVz
      n{C@zG@;d9-!gGtGF-K`r4pEjUdnvamSDXx*`2f2z@5+Axw-W{_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpringLayout$Constraints.class b/libjava/classpath/lib/javax/swing/SpringLayout$Constraints.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39fd462f3bb0266b7080aa595ebb30d90f4c02f5
      GIT binary patch
      literal 4240
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpringLayout$DeferredDimension.class b/libjava/classpath/lib/javax/swing/SpringLayout$DeferredDimension.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61075d7fc141ab6366c83f0f50eab8167ac5f494
      GIT binary patch
      literal 683
      zcwUW>%Syvg5QhIbNt-sN)uw8_U%*8TqPSMO@dAY+g3^7|V?EL)lC)lSK8g>}jo<}b
      z_y9hXIHwI#6~RU3%*^@EKOd9#kJmQ<>sYiP2;PN%<=?Eu*D7eN9bQI!)co79(_Y$<
      zXEKW9>5gj2AXZ^u!6dl9^@P-w-|R>NRSD@$6{vQFV3e2Z1amt)l{O3vIk1p1?s#?<
      zguH_k(uCof3gmvLbu6PJ|G3E}ZY@0Vn{_`@x=xyA`&`9@mD>MtHwc+nw(ET~vs~3U
      z29t8X@zrO_s?9u;4yI5d6!_{OO1u({eHeD46S=1}Nnvp6s>UHW)gX}3cGHhz8C#eq
      zO#H>k2ERzn1qLv9F$AHv!kNK2uZv@rt1a#mpF`dYY|nL`kbB@#V3=cGKNWx}1Z-ho
      zgnLe3jso1CZ4sl1RfVN2M%tVH=3?uvu#gg&p2K)wl{n~Zj6eRxd{auib`z|k_lTV9
      o+#};XW1_38?hiZ%S&>6t<OlGIiMhaZFV0}L2cn0}VZpRN0sG{Er2qf`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpringLayout$DeferredHeight.class b/libjava/classpath/lib/javax/swing/SpringLayout$DeferredHeight.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1a1ce923f6bd02f5fb104604781642260185ab0d
      GIT binary patch
      literal 1175
      zcwUW?TT|0O7>3_XTSC(SEr+7wp(;pQgo<Z`!HZVLYEftE^wtUO(yr4aOp;pk#y{kR
      z&fsCZ@CW##)NhkCl(CH7>~417@7ed=FF${M{{dhfn<^BB<=4g=<FMrRh1D+A4;-3m
      z##_7REmrtGcO2e&%tgE7sfaTa|0%8rlUuH^Ee6(Pn61f*lF|1{W!pTkEpB<64C9_%
      z_hdCG@`XUtH6+vDB}Ke!xA-_x3=1cH<m~;NYn$Bb_~lbIVew}@bB{YOjlC{sn6BAP
      zquVeXA-}`TILTdx;Hv*fOAf}igeAOfhWY%c5QT<@7-n>&G0PCk7aB=0WOXDk#*l0d
      zgk-VJy<Ou_m_4&$bbH)aS2Zl)f{OEG_;0$7i@3xvd0bf+@2D_4cr2-oo_aHh%eboI
      z$}lTB)v<^riqr9fQCsNhWfWB8>4M{z-!;6Bjv`jbo++q(iF~zMs4`6SMT>mA8r1u7
      z=xGLVWRQ}M8<FAQEHIp*jTcV%w2}Olj@we69zG2Uw7T7MntVsdu4RThv?jeW=vB+&
      zPPuEiE_YRIFq}E9r{w2kSCOL@#pvf}P-LHIm7ukXaT=5KwMsLiIX10*q)CBJ<Cxr1
      zHZVbJJvhcBrhH5qnXq(+)C$d7@hhf_E1xm<DI!eDOO-9em2D)IhdwDAs6&!m&HFb|
      z9-IxCPebNR@d$HYaPA1Xt<3x13*T_<Lj>2PM5!R9JQ@Pegy0lqyN)Fvyc&V;ggH|I
      oc#Xivz##9Fp}eUm@A_$on<Eg<M<5g`l;d68^Sw*ReLR5n2X-U(?EnA(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpringLayout$DeferredSpring.class b/libjava/classpath/lib/javax/swing/SpringLayout$DeferredSpring.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..882868515cbbbda3be28848fb512e76c7975d0ff
      GIT binary patch
      literal 1875
      zcwUWEOLN;)7(LfEu`F&};w0`PPyz%hyGdP2dB%mdZcE&zp>0}2VWq~mK^<AjNOD_P
      z@l*H#EMSJXGcdysV8sl>W5I?E8#X*Pbi;72q_~b_&#;j0)&0&n-}CC*f4}+$z>D}G
      zkBq>PJN8}sel5J`c$>BLt$@p_{gK~|7S5^LDhO0NIm{y`P}&O?$b_!Iq1ACZ%L0aK
      zZ>lxBqo@$$YObwOkw(!jHUwr8gMBZmHT=$&?<p^)Mt%Y#!m5lS=Nf)n<*`p-|FHFJ
      z*Kyk_Ffb)h-kr|8e|ug>Wuk~_i5biaOw=9EiQW{Lwe~uyv<jdLi98HVIw)}nb0pbY
      zTgqz-ER7=VIZ8uXHt-Zf*HIXFTA&d69Tj~@fYyFS;&DiUeXEYA*1DZrD!6Xna^v#(
      z8@AiB14n<ShdB~Mfy&qx47HL)Ygps^wKt7Xt*Nw3WMS#jRRpqDQlFy|k6}XZmLv)=
      z*;_`I)0JkD8#`=)$v}m^dspoYQP~<5{<4XacqNaQ1rCghSK?K?CQ#f|QN#DbD6kzb
      zqSLxHGVJk18er4!8>r{ON-g{!yu>MRZYFodAYhFhiJ>&vYEm!T_nl6+)3V*Jic8uw
      zS;(`JclCrW_Bn~Sa5}|uRClo2_O`@%ZJVO)N|3g@Z@nn7qOAt4{lm)=mvB1!34aFK
      z&qemhyQUbnXc8HwNS<2Fq}ewlu3?=Aq4P1%&2_&UY^V#4p24ZX(j3z%3dpACsi5K7
      zVW`-U;_fNLJe_9gJd2DT8tyXsa>Xl0hpRyZF9P3_{8}MWa6SAriZ@G7JV2@XCCWV<
      zC_SlPhxzJZ{_~jsEZ-9vExyBZ+{=WC1w7A{{}Q~As=7qyxXx4`;7Il8HmcRdZIr7^
      z+gSXfuT^G*5a073_yY>!M-;_Rm=-_B+SP=gYU|yx#5Z>}=8%bZ$6>~qvX`mnQ~c7X
      zX{J%-v)IE+Nk*>^C-KWb64U)8I1H(jmee+bNu24S@!1gn*8#rK=bs<Pzc9@IZ6tqX
      z9KSit|9vF?QlEc=XkDh+guhy!E3JJ>wI1H7&pi?==}L<~V2D52fxp;+zhmKYLQaJZ
      zN?yU$I3&(%>f%i5qM%*O^>F=Bb4_g!|4{bffLx*9&;nYqTn6vPocC}O$(<4WJ-rX}
      EKR`W>AOHXW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpringLayout$DeferredWidth.class b/libjava/classpath/lib/javax/swing/SpringLayout$DeferredWidth.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7aa03dbc1425182862bb43657dd30861a8d43155
      GIT binary patch
      literal 1169
      zcwU8)T~pIQ6o%hTThgY1(iW){#i|tBB1HVwGTy*2)3G?t)Tx(FXct(gNth(H=#78K
      z3!TA_@xmYAk5bPjA(Rn@i)?n!p7ZYW?%Cgee*OZmhNcRIVd<^;&O9`{k+AoS&Vft6
      zw)x%}`iq-<m%A?SzZQLeUqzCkabfPJu(<6B$7WzXhMBgkFwBu}Y&h0|V{_YYGEA%s
      zTlmiyO0}~R>RpE9hSTR763FUMp)(|E^=<|XQ#w+ZV92$F&0h?y9qzs|cLtoH&~|#}
      zpliB9uA^Ym-xnT3c+SN(2`<w+24P71PREzIWTjRQSqG+62%^n2N(|*w3KeI!;yD(l
      zb7fg>kNex^p|FNl*BlIaV5FsC9#>UdA?W}8>sY`wGI~<k5g({<_Lx9s#~0nq;5u%q
      zxG}C3@9J1Yl_52fXw(xr`4;LbYNUVSX4~}lbu_R{be5prrE0BKy~UtY9bvqQ$^$dh
      zx??lahN0t5j2rHSxOob^bfc?@)9>lHFVm;Tcf$g$;|$#%-x9KK`SBjDN>rk0**14K
      z2Bzn6PsJ04%jb2KVe(X0P@$)jpl8pZ$oE6D6wOtnY0S`Si{c9XwZ?b)mcL^13#}C7
      zXq=LjN(o724jHA4X^PE;*~p^+1hXQk(hXw<mm<xTU=1V+v!7!znFM7a5YfZ!NQCTQ
      zE-HN<;S?K3nEZzF5i0BXkALTXVChpVrO6a!5m}`=##D^tvgGYHssY1FEc_s1%7((L
      mBzz(mvNguovN7A*c@lTekTA}WP^eIj5Ai5qmm-hx6xu&D%k<U&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SpringLayout.class b/libjava/classpath/lib/javax/swing/SpringLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a6b9880e222cf32fd10df6cd78f15669a69b103
      GIT binary patch
      literal 5789
      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
      X+BfL=UmO4DNWxp-|KLdYA6)+j2y}G^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SwingConstants.class b/libjava/classpath/lib/javax/swing/SwingConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4dc6706207a9f4b86ab15773b39519bf93215c5
      GIT binary patch
      literal 694
      zcwSx7-A=+V6ae5;VH*xm6#u~gf4!0T2ono5nJekaFy5F+76T!WI8dL>3m?FTGM-K$
      zbvN7jdU{T~lYM=Ed;-8VTw1U|pgIU&!}nVJ)*n6BeD$o4NAV;aO=1hO1WGDj8-|$W
      zPlKp8Az;?2C#fJn7=hw!dk_w%Q3g8$fsEvB6%qnjmo}t|@htO(OUdt)G6W34nyn;-
      z#~2<LvPHm7-jCGrCD#7FY@c`LYeoW9Wy~{O>L-0nESbgDyw_|chbt{E*aP>Z;}XaP
      zR7h4=q2*HNmU&IJ&Blxr4s-vU$EF^=Pg)c(*A_HjyyGhu)fL9mmtNH94<iEQ{{y^I
      zv%^c_KyY&zDqw(#veY;rhhEfdqw|^z=%VH&^s?p>dL>oAnyN3S>eo{B>zX&vo0_-K
      o70p%Dw&or5Zt8pXQuo={e1JaGe1tyMe1bmJe5QUNI8Wk>9}M<W-T(jq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SwingUtilities$OwnerFrame.class b/libjava/classpath/lib/javax/swing/SwingUtilities$OwnerFrame.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71c8e0395506512a3610c3515e1241d7f9063a5f
      GIT binary patch
      literal 659
      zcwUWB!AiqG5Ph4bjg8gTR;yMI9xS#+3?4iwUJ3=F=%JcJZ)siZN}516wSJTrPlBKa
      z4<7s|ads0>i$ViCZ)SGhd&B1A^Z6CPA+{|T4E0;@&bxQyR0KCpPsOWP_#zfu?p{m-
      z9(5vb%q^G<%WBl|rm>@Y47n2#i1?Ht(`dR3W;?v*HZsT;kVTH6*cAakpNt1Qy7UG<
      zG0NR===rV}300>}Gad=au-Bbym1725^4JwpB<x0CnX>_%K0{u}-Y8ULy%u#^jX8yz
      zt_>0({a!eUhP)$`e&sjeKxr`)&I01KeNRd*Ez}rl|C^BFw+(j4Bm?!CFw{d)ZBgYA
      zGQw=@2@8*u7_cd-YnU%sq`Z&}5H1nYA3-rCAL)7O%@W@<v6@__M3t4WqW#LKq!Rn7
      qzhOSiXuSV0HxiAKT4Ob3)(MSt^R>S>H}t9MxQ-1%Tib173-%XYuzpkk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/SwingUtilities.class b/libjava/classpath/lib/javax/swing/SwingUtilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..756f001dad23d9402176a16ec8bdabbe2fffd473
      GIT binary patch
      literal 19713
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Timer$1.class b/libjava/classpath/lib/javax/swing/Timer$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e72b779b008734f4a600aaadf44add786dc23775
      GIT binary patch
      literal 557
      zcwTK#T}uK%6g}gbtLv7lrhV6o4`z`15<$_67z9>OB0bc@x(+$A&cc3Je=Fz%dgurA
      zqoO;jP-G7?bLX5h=iED=U+*6Pn%L2iU?`64iTzj)9)!HFcg2|dm8Om)gQbYNYZH9g
      zA8{wtkzy$PpjVNUcHiX;sc<NQN`uTgb8bgO9}6kM6NYm2AAYyTkZgGao&m$62_0zz
      z8geEwuo$$e6688U@{4HP=YDsZS?G9<?e=V6sQU~|szw+}^D&hsHKO^EG_Zm-9jgra
      zIgyEV6`39Qwvg=!mm!%M*Iwj1{8Xp_Bi8M!mkj2al-zH*b`Wq9=GxM6y@1@#c{ub2
      zXwX0!tpza4QghL_Cun705SpdxknRdGYI`p*Yj0S3iZywK#f*A=g9241)e0?QImSz{
      sW-bSGDlT1nhWU!}UyobLzWe2oo_T24h?SezinUW0kaC;$Bz+XV0h5Jn^#A|>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Timer$Task.class b/libjava/classpath/lib/javax/swing/Timer$Task.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7924b004b480a35ab17005647cd9de9dc6ccc2b1
      GIT binary patch
      literal 906
      zcwTi=TTc@~6#iygyL3B3DT0U>idNXR(nZBfg5g0T-Wp?4!h>%Mj&*dqi+e%+Df%xY
      zToNDr0sbiCInx?6tq*%<&h7ioW%lQ<?>_+C#C;o<z|1>;-~Z$#A9dLEwscR$wJkq+
      zZzC@-#Xc`fb<p>)L!gkp)k$rI-0h*<HF7`Dp-$Hc*&X4pZwur%qSvYjfs(`-6ddGm
      zR>H=(K+ffWiM9^ai>$Z9lskbEsI;S9KiKwT&HBKY=RyQ#hiOa;R7)<-!Xl<|-o}i;
      z<WQW%EG`HXgQ#nCLKClwxQNR(E(w%P|A9~8ozF?CdJ<PKPq0yz3QQYbPe<O%SchpR
      zjg{Y98^eOYf?;YIrj|jjF0WTVWGYjS_Eng=bqCjQ-A3)tkpD%ISj3Wmy~m~?B(DA}
      z2eqVR?$Rh7YOOBO;K@0s=-lxQiDhohj@6#>(}ZoF#0n}rH?zmqsQvtJmP{sao7Xf(
      zWSuCBch#omH8>`$#fbv)X&9<_Bk+?%(KPd%j4Gw(=*@|8nHNsC94tm6dy%wN(kwci
      zM)Qco3FJ4@EKHCrPz>-8Ws=g|9ZaIaXqdwI0O1Wqv(G)ixi2UkV6IX<#?{6loMX6r
      z9HRLZCBBIxv`+EoOg)<<9~0UW8q+h(<2jbl{)^M?bCSWPKc~;RNC@0jq0v0St<e=*
      T=36!L4(^)j>5UP~Jy^d1WFx#p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/Timer.class b/libjava/classpath/lib/javax/swing/Timer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60201c69dc120b9d80281680ddeaea94db3e10bc
      GIT binary patch
      literal 4981
      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
      A9{>OV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ToolTipManager$insideTimerAction.class b/libjava/classpath/lib/javax/swing/ToolTipManager$insideTimerAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a034e94610cbc427b6cc66371d0bb793ad5ed26
      GIT binary patch
      literal 737
      zcwT){T~8B16g{`ycImp%mI`783Z@UWny$Q&V2p-fVp7G#rti~sfN8d~W_R1lGyWkH
      zKN24J0sJW9ouQIwQ?l92y=Tuk_haY!=JE=_9-g|$5MB($M0^dBsnVxGCyK(3`tm_&
      zaVq1w(uo?#jvC4MZ9i3!cHt08MiGR9`NzGX?58gBge{ATX&T6h)M;=lXsaZZTE>KY
      zdZv>4OTuP*am54Xy;54GuL-rreZ*&7f^!%RWC4U_A1;<WWKr}{K#7oT7(%hFwEQ?8
      z^<>-;y-*TX+fiSHT@fpj&p^ktMrhqrZ+;crYEjtelZ;QIcq9jRJ<qM-$i&>UhYeI+
      zJSJ2Z*YfeijNm3`(Ueg_&RYH5+yZlg_c<EJefdtAnJWK!wv3YCzt{XT4nvV7k|!?D
      zO@&=vXO`a_s8ljr<*Sl`!&~(jeZbj1=NUe|=JTKMo4>L0-EztXvtQ0xJ;5qRK5GnG
      z!9zX?YgnJTyy4SumzqD||H7mHJubNRH|w!}%bR(aXcJpjy=^r$>{u1?v%&p4e*lr(
      Bv6lb<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ToolTipManager$outsideTimerAction.class b/libjava/classpath/lib/javax/swing/ToolTipManager$outsideTimerAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..afff9965983d4211868fa7ec6338feb323382603
      GIT binary patch
      literal 709
      zcwT){+e*Vg6r9thjn-(Z)q1xGeei-t9|S=Wq$mjW0v2BcVcV{CB~2trtH0%g2tN1$
      zew282TNTktNcNoBncX=<-riqc0c@gZBSBcZ6&>;5M)%5Zy44`?s_O1o_@XJpQqYbg
      z)sR)ylHq<mR)KHBBILBh^#lt}Yqzo<+ej1U4Jz(qS9YWyyIny=MX~f{NJz&wDk^Od
      z<|_TK++p6X@>RS?C@%d+T)rS!<)9%4K^S&mV<3YhvJM83BP5qJAzM+tJZZOTGOUW4
      zCkbPfpf0=%5h~sHKucRAxc}VuM;7cgD@=7J!|Nby$;OxIUpXA;+L%rm_%nt+L_+2~
      zXoq!qsI<ZSPc!RUNpOyQPPXicD3XzldBRNp0eJM^BVdukOY)ln<#IYh{xcG=IKvF1
      zL)>k1pWrpKvibyP<ryQ7hBK-$vvbAjON?>lutuYKjPpvEK%sZameDZwElwM<GQvW4
      ZvnSNmB&PVAz_j7dVAdQ={LEni)&~nhtmOaz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ToolTipManager$stillInsideTimerAction.class b/libjava/classpath/lib/javax/swing/ToolTipManager$stillInsideTimerAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ea6dd045c358de5838cf9f46a76b8f31c6488bd
      GIT binary patch
      literal 752
      zcwT){X-mUE5Pj1|qcPfg)%(N`TEQrO5fo88K&S^;{Jw2hT}d~R#N%%X9^eOmfImu{
      zU8~?x31Md@@4cCM+1Iz{7XV9`c99`0U5IOO8zeVMp9SS83d`zpUubbA<C!E?VYsIg
      zRg+~^m+@vbRgre#5b}l=gn~(jl?z!-U9=L$Y*pN(fxMPF4L%4Zm84S3n9!P@t7K-8
      zFj{Kfc9n5!N~?68FfscdaPEZQY(+KM4nn677i}K0$oXhTo{*h2fLuvwd2m&)$ha&j
      zp(ON_qN)f_M668SC^}{|!ty`;n)t!<=7f!oWPBRMby@ow{FfIyCg#CC3}V>D5Mj7^
      zLmwk%5BJ<Qyd<<(sZaZwh!ecy=qj$tU1b*Q{jRxSm;`@M^B>s?MUqHfyYTmFm||nI
      z{I-DddE+nNoD3ZH*W+pjXDgg%`1FeN5Acgm=(@9*Zd0>gwwb+&9*%tGm})Qj_$2hB
      u&`{an(_q_*_wXMv@Ka--dmmVh!UwLQVWLrtS@yW)OkmQoh@U~8-+2c#v9`eg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ToolTipManager.class b/libjava/classpath/lib/javax/swing/ToolTipManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f1ee99cfe7f68bff7abe8b403f2fbf46c034de2
      GIT binary patch
      literal 7320
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class b/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..358f741a0cfffb4a0e4f8f843633fb5f2ba5687e
      GIT binary patch
      literal 2735
      zcwUuNTT>Hf7=FGavLUX@$upMJV-kqLL$!d~DoE7^w1QBy2RF$Ai^*=>-5^%&@vhU0
      zb~<*({(;_jVP`bVlxe;1kLvXKb~oV=sB|)$@A$s&^FHt4`}?0i{sM3U-zf+Q^v-GX
      z+Cs*8V3;$Raa%K;Y2Ch}nT4WmAHHE*W!-ik*7mhrQCAQVXpvHxqDGnPxj8-WDrgco
      z=<R9`+)P1pH8&8-tdtgL&ReCjW$LCYuqV6H`nAE@$$&t#9M~4<@@{2vI@M%qkcM<8
      zZyROTvU$1boM9U71%dv=MjGFsBRL@u8MF#|3}Nh0u@x->;Y4zx83Ju86h!5$Lq#)U
      z0z0yXsgG7lIo%%j-D=BPd9661*@j#Pn-O=`a0E_f|1Zh(N#rRnNf6jIqr0`!Au>B$
      z)aEUlijO3cce3k~zI<;WhPMz`&?Ru-KS@yWHV)D^TB~DvSf(58iDY&;;DbfYaRw9|
      z7TCSKJLcMS?o!1l7IZs`qXNgZa=B>aHP^7r%tBgTP0!7j(nU#B+VaxI)~5&Jd8zPx
      z42O`A#3u!ICbDZaGeR+RBdwr^5Z9nlaU2-|g~&&>5)pT-LL6w27EY)*iBrrNg44}{
      zKzcn>4O@X<o{D!=oRQX|uH_#pcvm3)rZB{C76}CdwX4hMM=f{Qs+fh#3wgaP*`g=Y
      zwGbcLM1WaTGEqEb0<8_PVj`7{l9!|nzLE;x7Rz@tmUbG>@_MXNE?c&%7i22FSvq-J
      zlJJ3wE0VwMUY;2x&GynPifaN}SL93#S&S+eS=DWP)GDsy29fLcD_YT6lP`Wl3XI)U
      zF(!@0Xl$&K^9|h+*tc;)O0h{5AIn;hm3LDw+q%OZ;-T^wm6>>3#T|S?aE5cyaf}&L
      z*6pxum1Oocgdlm_FRYbiEO2Hsq&2!mcj~#~DA0l~-l*o5>C__RYpaVXV0&rzqzo%_
      z^?Lmv#xAF;7{X=QHpuiW41sMP4_aYFcV{g|yK_~2k+dRlW&BeX$vu=56xrW5x}(B`
      z#Q+-SymgO>*|$yr@2nHk#;qvsGfcI96}Jg8KCKx=z0e<*9;9Q)ArZq}RAh6R-(;pv
      zC|IZw<e6JhoJ}Od)mbq6Hs*l++ge?3%ds1?Dt2BUHslM@vF0^6E(HYCtEQ>jUh3$K
      z@HYbc<-rC|2-U3jh#<~bhWTwlh(A7IeD_200pl3qw-qW+w{bSb{V>NJsYPs0b-zMu
      zs^=BjfA<7-^1sa!80Y^46-;6~>th#p;=UMmV-MiX_R@^-X8UL;#QA=724-GUehbHe
      z)JwEiabRQ#ho;(&EaF&C6{#wEt2jNngtJrWMfCMYB7brk-WwUq{)XnsFjv{`7gW`W
      zUYtUI0PQFNfkBQUk5&{2B+nZ&+@IyGIh;ljeatrr_X3)v`2cP&!Jor<YV4yfe-@?8
      z1-!>~C%W)HF7nP%g1>}8f)}zd0%x8CoMmdxbXPIlcD0HRpP`fUkJ`q)c}ou$6IDz-
      z!<NYN@bfySyF4zwpvgz*z+-axgzwm+6})EZyk<NA65g=@p1`O0jN|7#ZQ^*B6i8Sv
      zsa3{mC`Ge{XE@`-n;z-mq*YWgH=2GixrE%5M}C>)`!{T#|3x^jmvDEgdlBwyT50j(
      z_h1#--xJ3VJo%9^{)wkQ;{cu_g<se@pOW5RJs(m&j=B#+fe$V0o)77Fh|(eY`<T9l
      U=)2_QOMJyqHX(tp@hxKi0#@qGhX4Qo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/TransferHandler$TransferAction.class b/libjava/classpath/lib/javax/swing/TransferHandler$TransferAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74cf8d1805dff680ed3768a26332f87a9502e4c3
      GIT binary patch
      literal 2022
      zcwUuN`*Raj6#j0qVbkr>(o$+uz=BlG3*sAWpjgrZ#Zb`JRx3VkwzqY0vl}-z(Ecg@
      z?qfzBhdL6fjtoEPj5ChoKg4kE?zY|5K5#O#d+*tEzH`3w%3qIveF)%Xa2*MT{B3@R
      zFPEBkZFi|O<8!yUDEzD3U2udyynY|Er0uynG={;r{#dOkeQwF{JA-a{^*Y%y^j4K#
      z$>F3mEqzihGaNW?yS5x<IFkME=iDrVR`C{ufh0Oj=ty^f;h>2W4ls0AZC6aS>NVld
      z@R}o(3(w-tEcb17kA#~1%x*Fit4~jh0_*0%>89`(J-;p}{-G#Bepi;n9pTDSs63(0
      z6sv(Fct%Hml#reEObj5y(6J=swAb=2imxx5i&4K(yDcnP)^U`fKOXV5idS!VE@2oL
      z#BmePVu%<M&^9hA(%fET%LXO!q>1Nnioqm+ieoow9`}i4Ia}S?X*svaet}CaBh1o<
      zF~L5M7j?YAaA-qy#`B!dZK9n;j-iK~jf+Lza%A)&Mn9$=Kov|BahmE^6QaS8%;sj(
      zDAC>W8Y>2M>#I6mS@#ud8xybLb?PkfMT<MlZJiaRH#cwKEZ)>{j^XGYsWLGFYK9)M
      z-0*ygIhLslyJl+NL`^Ct7l@M8l4)FINHus<QkRdRqT>=3a32H{<CtLRRJHS5NluC9
      zxt)0K63aSGH6dk{iYq3rVv@nI>x$_(DKlLBzZAE?=H`i5FaQk4_8J`;2WuUfVPH3(
      zG?Q{`br_EC+2;y)vtTFptqV<qj4@ysej1)?9N#lBs~X%;;~4g^YT@@ye1Q3IN~c$-
      z#PwJMoyzV%QaWx$4H|X0uv)$?S0<J%(Fhl;5$=)8whFj!TMEu7Q=&ELy27tGyxA1g
      zDP3E)9Zt|bNYWnwLqcs<Iwk2$+m@akbh|?G1id@+g$FS5h5Im9>6$<nJ-Y(augLIg
      z82AR=bn6e*aR@y?a8j_0e!Vyxg0dvEz?D~Mqwf(0uNT`mHdS21i4iTM{Rv|Y!)@eO
      z^FPDvJ=4ZZU!v=DF{5d1yzwo{f%yEUI2DM81Mz4e9>{2{jkiWpnbaTXBpp(@JhvJ6
      zXb|dm#PWL_#19nMkF=auX|Mi-A>2m+1c?W@gf(2pFI36j!0|g4@enQ^1=gb>g$<$}
      zuHkJWn8p&SWR)P~8m4fAl5`lia1-wkZBEj6F-=J^)Dn)eJP{;FWx0)+Hs<clv3r3)
      m72?A!+5Vd(|B%tYK@etW7C2PoJ_?>6;}d!t0q9wLiu4l+_8Hp%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/TransferHandler.class b/libjava/classpath/lib/javax/swing/TransferHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edfe4ded48d578e975d7b83d7cb6bedf1bf66c66
      GIT binary patch
      literal 6249
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$1.class b/libjava/classpath/lib/javax/swing/UIDefaults$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..32dea19aa83d3cee6b37a5704ff96096b5aa72b1
      GIT binary patch
      literal 1211
      zcwUWETW=Ck5dIEOR$vQA1u3>#mCB`9iuF$Q1#3cr)uf6KJ{`7)cAM?4*<D)dt505H
      z{3$iD)tKlH@JAWvEJS(%(}z7fJM+yqGvChc?>|3&0jS`<0v|(qlW+5G+1b&}_414Q
      zBhls^!*#M11p$V*jFt^fv8Sy~p}7iz3^OBg8vM;}lN%ku5Og<mB4NliMu4B$R(JPb
      zMwMZFn;Tip;EuDxw}>Lq7!+T1ZAvFla7j0H_aVbl{*=TgSqe>tK+RecAuz;LC^#dn
      zvnoOehvCPBiU`gz`12APYv`s}>1?%x{hYT9uQN;IMw8pReC|5~a$<(esJ1H9eMGYb
      zcST>L(x?%tg~oB+t6@yxqJnAaXArANwNzZf41?0P?4EG5`5`kmj%9g-S5#a@mLa+>
      z+?r)NuHDgG%Vt>2zdDg{n8FrqgSsjoN+QB*$ScS(O#c_CqJSc4VTzqPIk~A(&$%N7
      z`!f%bK|zUOV&GoxYT~u4TPDMp+j|k|QK~Y8SFMh%iO0Ic#Rj2ynZcmeO;gz3w8Bxa
      zNK&3^#}wRRNDYUQxJSWMc-hnp%OTto;ci%Ka@+1PB!|7WCKhNl{dA4N7mv$b1>y<0
      zsq_*1=!!t4=r~yq=-E&ASaEJ2(PC*I@!~fmzIebSonbG5WWZab$dZW!$9beZ|0FVf
      zDxHuLJ6ZgS_;+0J|HRY*F4N6_fZ4s5Y|l$g63twnJcA&e@2SHNh~gvp-cj@uk$?7z
      nrFw+@V$!;fd2hC|*Wd#El7IwRH*gcT5%MZX&mB4g<h}bBvVSwE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$2.class b/libjava/classpath/lib/javax/swing/UIDefaults$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9b29d3d01995765369df29169fe21ff61b73c915
      GIT binary patch
      literal 1308
      zcwUWETTc@~6#j;mu5A}uTC9i{P>YmODBu-~#)z1ZR5U^B15d*;g~jcz+1+CCr}*S0
      z##c-%8Wa5i{wU*_X|-s#2@gBx%$e^y_x9(nZ$ALc<F<xAhLK&q#~VfOrD<;$pRV2)
      zRbIDzFT0>2%#f6?MT^thqs?7m_!=S%<2^WK{%XI%t-4@{_&cVTooARV_W(b3oyPuO
      zMu}lyk6T&8;-0t0YvdwT?gU@=U7{0cP=ad0-*L8DsK}COoBkb!wcIfyb-V4hOjQ`d
      z%g&aFf|{U1!wIRSbVL!8+OUo|Vljk}(V^oMLntRniLz;nwR&w+xKH?|rOI#&ZdJHz
      z%6r=wmhE8}?UnKZl^Qo(!F|zgXrWhmrKuz7w}w=TVGI{Ej8i_Hw`JK{9T#zlL904$
      ztA7)@fa=Ttv6RCJ9hWi55ZxC3Lp1@0y8-NtF7{D>uBcj+VzK3c98Y0dL%zL;K^Pqc
      z%+R1sd(U}J887C#3*P891++y&ks;kNuQUwt!Z#h8q2F%}W~5h_8Di^B-8IAmQ{obx
      zr&-Bh&{u6+xT;{`X}C_UJ=Q*IxXF+ShSI+O3#Py;wqZFQ;r?_-#}fU_0tOMZ)|jK^
      z4bj(+P%<g^8c3$(Rx25o5`FaP7$DRjY4_+JCOMp+ZX%H{G%=K)X(FBff|H*VdW6oH
      zVo`p0jnj(HBnP87qwHsKuI<mJ_!4_Q{~1GHl}LxaW9$%FMly7W+`%(;p!kwK+m0}b
      z2%T>!=XXfqJ>B2X>j(1uQANzOytX4sZI1rsWVH(_%PY7_GDX@o+`uBDDuT4!qBBg^
      F(r*sfPX7P^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$3.class b/libjava/classpath/lib/javax/swing/UIDefaults$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1179015a6da13b0d25477e9e3bbfbfe3e0c32213
      GIT binary patch
      literal 1379
      zcwUWEYfsZ)6n<V9D~!VCgfXTl>Tq4T44iimRK&Psq6s=b_~~7Ffs)diw&UWj!o;C5
      ziZOokM;XuCO__Exd}z<<InQ(M+mD~0jseW!p@J@k^fuq+`vq^$v^NVcOOM0`uUWpA
      zEh>mGB&4@saq>N@ZVSU#5M>zez$x>$2NiDB1Vhx{GQI2^L$2Hb{M>c+5B@Ob83uN_
      zl{GBxd8>SfLL|#4$=7_B=mhF*fIN@<uUi1ilK0#1RJX~0w$<OLo&eDW(>DD@2Ckj5
      zvTzyU#BEaLD-4lkXI=DxYEhw}S8Bs5`Vf=ah>CuwQX5q<fWa8LaZW`X=NY;+NspIJ
      zTddZ0s=|H2t5z@*$KY0lyQchZ8Y6Pn44F>-6shfg!xh{Y&FxHe>U};RZX|{*t}2+I
      zdj4r!MGhK+vf;Rml}%{jVdX=^k^yxUlbB){+!X$@V|%_^GknKoC~D#9wuW%UhDB8s
      zT1XUd2D1tZ3}gQVs&w_&Xco5EE0K}g2GyL?+AS|^QgEI2cw%1JH^dv?bZmwmzp;pP
      zr>Qc;)|{Gah{vYH#ZO!_lEI*sY+JZNx586Ego#rfr-FM7srFDB?%!ZaykZ-c;}Pzu
      z@VA_Gd2J6Ev^HyNd(oJsYwf0|2a!ZVo-~k1%7YFhopT`RnCTy;i=H?Vgg!&s6Z-BU
      znb9ZfNa|B{4C&K#r1a599cldoGVcP;7`<Zwmwqca!UfV)(us+S7!T~1aJd=PB&5WS
      z>hCf15m!j0j*usjKEm|jD|Q%Ahmk_D89ak1y}wZL$5iH5@_i=nH;mwWkSx^**i0t1
      g8@L&?eJd#NHtvv2l6DshSVUitL0XpR9U<%eUzGr2kpKVy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$4.class b/libjava/classpath/lib/javax/swing/UIDefaults$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d6462f79598ede9de17da061c786757e2e613ce
      GIT binary patch
      literal 1477
      zcwUWETT|0e5dIFd4J`p`kxKy)wMZK-1;q;#1qGa8rlK<_KKPV|0|Z0jBq@Tw3TG@j
      zKKKKC^~uXP{u0MMClS!J4i6{0+1>BkJ-eHH`t{)>fGI31XkzHy(f9QIqW8+Qw~9|!
      zmiVS#wR|r(tsusb7T%(zlkZVwha0|v1jA4ROj&<@u&!HG&XDl8O)odaFj8(1{MdE&
      z4~`KfhPFN3${CjKd8_&^QDn*|$=7_B;1tv@f_AyT?Q8^5Edk2&2=M$AVo?y4Lcdel
      zA%Ev-e{dZNNX(hG>EC7W@@FhHT36H(Eu~KK!a752(b?chFq~JRphaliDw0SEtye{B
      zp!KOx(I&J3747Iqp&5fJ(zwXboEJnLWz*)X)!hnrpXe1!HqbG2Yh8Cu@g5puVlc$l
      z=&sY$l2*gzy3fN=jy38_sSv$V3L_{e$WuN4G(d%hQ3hqxaf8VX=c8>aMA{|@$5l+A
      z$dKIP{zEx?hJ`xlXwy&gxqQ>25{m%?5l`W|f@|R?P%lQsG;Yv_nD(CYf-0WLM=xA&
      ztWlGKTeN>C=H-2Zzw}MVW{CU2V0s&MnIX02R9%BVFhyL)iEBb27}OQp=B~Uj_Y}}7
      z51(m~6)e!Q)eogF?eAbpylfkm<5Aq7?xeBAFk5F3{~yiq_G6OvxtUHJ@pM|OKakFd
      z<(INGl(hI#(%RFHtBFn;=LnS{ZI#{=B!{%o8alPH8oIRc8hW&BtcI+Xjn~kxy~Bk!
      z5;;WAlw@G&$7ft3O(mW1xQr{(p2Kj+ZBuO`c2IkZuJ^b~qK8iQ2xE+7{}Cn+pRq%U
      z?<2mOVTL|g(O0_9H{$tD?_bFK0|WReGj<28VMd|d#*FO5tgNzxIg%OD?qDAGkdzsO
      L<vu-QWL^9XXU2Xi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$ActiveValue.class b/libjava/classpath/lib/javax/swing/UIDefaults$ActiveValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2decb357fbc2e5ed86b913a60dc99959a6c2ec7a
      GIT binary patch
      literal 267
      zcwRg8Z`VEs1_nb0UUmj1Mh2y<#InQ+{o?Y>ymb9gPnXoR#L}FSVim{alFYKyu*96w
      zRCWdyMg{?pI{lnPpep~QtkmQZMh5QWqSV9^h#E!)9StAsMp<k6pzF0}WZ(+UFD*(=
      zb<4~F>g7kM)&r?!WZ?14%S$bC&PgmTPAz6<;AUhH!)`jz8AwiLV`N}tU}gXTMxdiv
      a8Q6d<CI)se$-%%0q`4SCYPcA9*f;?mh({p+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$LazyInputMap.class b/libjava/classpath/lib/javax/swing/UIDefaults$LazyInputMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53000f252ad848b668df1a1b7c0a6dc14cf192e6
      GIT binary patch
      literal 1156
      zcwUWEO-~b16g{t<GPJZ*K|U&?AfRojR8cl!*g%L4MWaX)Lx{Y#uP`u7$;?#6wSU5;
      zE4G@57)^+7-THsjGefOVigEGYy!-CC_nvd#&3ym)`4GS@Oz8*+jBLv1@@3X}VOZ<g
      z<=mXA$eQUoqj~viH)rkC+(o&gLlZdX0kftg>|t?Jm0TTd0z>}@FG#bd1hk@Il?A$2
      z^355h1={Wzmf_9_^d?*QQw4_4R?8}aAYxI3(J2s2rV3$@P!u}a1>$+bQV(j|MP)yc
      zMUxe~^3{?w3(__`yMC#;8-^n=mj4gIB-ZY+CWIj!C0j{X)#YT8XJnX8ofe=Y(bVD{
      zQ&zHn>MZ9TE2mnsOBC3Tn2t*VJ;%`tYIn)Ct6RSRauioE#0D_<6psdSx>Xx>Ts`rE
      zgfb|C0gOg5hHC=Rb>%j42#hE5&FH$m(**@W?op5X&uWc8z}RkX{u!+xSQuP6zFDbe
      z+unP&n4HLxkDfQY!tuYgCOj<l<Sa|sv!-+$<><K032V)b(Bn^!VUAXiE5rqF!ng-`
      z4kN<7gVsFl0Kbv+0ix;geZ=4UnDg8_84IjJ!!t&#p^H}U5gOgN0QjdKW~D-U`sz7<
      zuwKZE{DS_c2e`NxoY})%`UB#j!HvngT0;AVfj3BG653Y`)bF*m$&VP^tKSZP!pI57
      z>!9$@-sR!jU;CMN4Vr0^07|4$Mhq3wSm$hQU<#X<!4~fGyFlLxwtWeAj>t76tl~P7
      nq~4BYq?j$he2*}W4CVI`eFGD0K>%65;!XZ-;I~g;lHTxdDo7ba
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$LazyValue.class b/libjava/classpath/lib/javax/swing/UIDefaults$LazyValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c32e7cdad12a09276cdc594ad360680f61c6f149
      GIT binary patch
      literal 263
      zcwTLey9&ZU6h!Cx$eM>}Wo==hAO`D{iVz4`i1uq(C1Ht>O?-Wtg&*KYiMuHjBvahE
      z#hGDV@5d9s99@P6VVLqWzxwKuWJiA+F2#YDvQVRl-)}oEOTo}0^bO@pu9@{d6>&ju
      z<6Q7UR19G{j_QkoN%Wr$2+rnI=CN2MQfGTVdS+OH7iO8r7m_O_6oX3`)VCAt?@)_C
      ZXu^o}<Tfn*HNdLdfvw$vVH|jt{Q<9>MWp}$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults$ProxyLazyValue.class b/libjava/classpath/lib/javax/swing/UIDefaults$ProxyLazyValue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a054b69942aec05fd22c139e1acd5455f72e018
      GIT binary patch
      literal 2228
      zcwVJdTW=dh7(HXJcOBb}6DJN?E+s8(V>@=;#3jHwv~|-K2TVW;M2d=#Hty1H<k*t!
      zKnpJj_z4IBZ#?mU5N%Z&6+~W9xeD<Y5JKWV0B2^+1{1HS!o$w>n{)Z*vfupi#SVa3
      zJYygvaCF0d)xKKnyyiA97hhaD=e%NXHM*T6&$nAwuhs0=udUjREysW+Fd{>X4V!__
      zt#3H>t^r+ODgeM=D-dy;O{Xnzxb|PMWdVJ`ZMxl40_jX`mvE)q=9+SLRX|&8U2<Xw
      z<3IvK7#0X;va1G01SSLEXJberC8Ng#7BWF9`Yo3Su@8Z|5-<=INY>n@v%Iyr?zCU9
      z*BkVis<rBNW7TfEvfmrjx>wwe!1O(`3W$zG+CwfdRBzaw&a%Bp)ae1q86?=i!@+r(
      zi{T&+$-EpESl)kL2Je%o^V<}NZ93g6txKNn%mCdN|1snpEG0a{6z@(fO7C*la|z5K
      zFA%-#bk(51SSDNhS7h11@nGYn7z#Kcjn4|$`!{}Z5A8rN0-=_aIbf3KqqV-lNv+<H
      zR#JN*nMIf1l7Mwjn;wwPa&S6M#$e$|nGRmN&i>Q!KN1wLw;j9d^d5|SkcM)0@A5bz
      zIGey}oZ(B;^)B6H(0U%nmDX0f?p$zXTyl5nxLhHSSdwp*(&}^!FzXY8p#+Be6M{p0
      z9K!q}{2<>5ma;vB7|S?&FS8$JJ)YY}V&>W0mq@PV^4l2w9OE}Q9>N666f~A^vV03V
      z-o_Z-#eE!^^44M!CZJmP;{hV;7{-Hag%sCAJ+3!69${@NuI0R?k?!DHu3&20nCc^(
      zP=W7}@O>`&fFK`|<P$}D(gX2HO+2DVW$TC{)hSTYhq-P9N7>SpkYha|Uo#a3>xwVL
      z)ONnYv=s@@>mOsxjHGo_OY3vDkzIL57qYkW(VxFlZb8b8NWsNE!N&*>d`hCvNPnHZ
      z8yLk+3cf{AH&MiGoFTC^Q1!@t0~Oyu1#>7V17+X9<1}0%?kG;+QOwi)IA<Q?xUNh+
      z(KGcccUNktDpQu0w;}~gH+5yq2+v2QF(Vx{^>oxT78SDBGiI&jOpVSAQ{ToypSK)O
      z3vibjzNPZ-*!vy_@B`BLkxG6-hII))<0<^2{JrGq@cmVNf7RXw$(D2)CSFB3)rfjZ
      zZB>NWW#w5XLrHlyh~;^X5{LJy=lL|TBw9Ro3*$3)Pzf>hf6LYt<!?&Tgcs&ZienMy
      hI3L1!6@P)^rBQh~s(6|Pk}596-;q}rdbQ=%e*r6u0#E<|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIDefaults.class b/libjava/classpath/lib/javax/swing/UIDefaults.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e98ebb0aee78cfcbfeb01e118e0a937c546252cc
      GIT binary patch
      literal 9901
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class b/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5c53185d6af427bae35f0ef58ab62a8e7cae064
      GIT binary patch
      literal 1148
      zcwUWE>uwT36#j<WQd|LPOD}k#m0E5VFZC9T(ULSFSzAq&rW$`NFyL0Yi@S@OK825>
      ziKU4qK7bEpJTpsa3TPx@X3ja^_npg3_Sf(4KLOmt0|h>Ym3{q#{;A}AG|YDCW%a3U
      z>TPakG|PJT#B6SI-l>``OF@7kE}*53PQdN@K5w`T0aHKV3<>QtwBy<&Rb~h_I{M)u
      zL+GJl8tx;8)$BNI+>@)3Y{hEw2>ei0gmIq1pUu^#zz|arL`a-2s8A3hk7k&Bt9MZ6
      z_6xn<k;PaIy;IX|L)Zgnz<p~tRD$+j?Naqho4Z@GxtVNkQhO=^DjnT%JXF}VypVzv
      zLvoa`(QCE19l;`0(br`aSCA&wi3r2=nKaT_j$j!X1y`xfk&ucc=7iie6|2b7l=W_x
      zn@xt|gei|V;MG$W3VESWU`S;v|G+V1#ImMh-b;K##RBFS7}Y-iHy%S|$LiS)zG;YC
      zhz=*dCI~dds%dgtcElY8_ZVg;UXZxwvsZ*As>V+b*++kR6A(W|?g5H~As$JDtUW>q
      zTr7W#bNRv%qWR(x;$I~-L2H5tfJW;!k)9!n=a?o>+M{6xvr;@J(=d4wiF|aXOBkdn
      z(Jo@a{5M3u48=XdD=DaYfPo+rgPcH)kCK}c$qPgBXF`i1JpO^jy<=R|3i&=R^|92)
      z%5EY4x{utha1}i}ePUnt>^IWxqjZ{gnZ^g0v|5y}ixl1?0~-Z6Sci);da|aZmv>N8
      a829O`a*L|+;kMLT#~s=uvbnnyo%#ddkmwo!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5d3a363b2e71029c45d1536535d752fb81cc062
      GIT binary patch
      literal 1221
      zcwUuMO-~b16g_u3ZKX_U<y%pUQnj4|mAWxvhzVlSq}4@*r0T-g@`NG7)XYqg_ydf(
      zaO20qovvAE0x_D%5Aa7B?;9rAKuPK(GxP3!=iKwoy_5O<=jT3vIb4rJBP?u)EwNqn
      zo?FgZak*R-j#!g!w%WFR>zOULm&<qLQ^Aq<FSq2hH>E3ltL4O@6Vj?i(H30ceq%#6
      z{WxNTks#alExXu3AVeic9%1}Zr7L2dKo;L+Ld;*cyzCsIQ0e)YOpo2N9LrxIJkI?G
      z?}XEwkj}3V^u^Yy>;vJnfqobXL@;C^iD5z{mtRpkqXyzQrB>qx`j8-`DwZSfwKp5m
      zeIOdPBn(zsO<}JH*HUqq)RlF@?cNP^oey_Ilia|u6ML=65+7<^c-59Gmu$Hy9p4KK
      zJnTmlQwAn+k<jnRZ9m*54CnHdqeGup@T&&0xXkn|VJm0HK!ilC)pncmuBB`a99o)H
      zP=Zl*9O*9F!t<mT$1EY=a|hzM7Jhce;Dn(r1UAyGY3!IC@EzqR)BvF_9v_fSt5I{L
      zc9IxiREk#?V|9LK%)%bh=64L5(O-zxBh$6IK2zJnh#A?#*f)k~IK$7u0RDz)FS+n5
      z&b`K2&P)b{Gnl}+Ks1B%xWF8>%J51Ziw6?QR)ZLrGIv>F7h|O#xJ3AbAr+|PzP|by
      z(a4Uzb0{4PC~pHf<A5H@ks4lD`URI(vNt<QUm;YEDou1KeL>Q!bErRIuZ6Ei%)aBg
      r?=g!HxPgy>`sjf|sGdRrIpkSigBfrOm=4$)W>Dl`R)Y6tP=fXsbGaap
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..287c124b8e9289a08576d1b94d4698a822ec91d7
      GIT binary patch
      literal 1632
      zcwUWDTTc@~6#k~I6x!t?v|L0H1+m>NR0IVr@`9K&DQKdQU`%vd23*)~$##qA-!Wbu
      zP%(iv5tSDcq7VKg<C$r#6}E<KW;1gx-*>(<XMX(p^cBD;Zu#M1h_30I`c^#u%&=DD
      z3&}a%(pR}XI9D(oW5eWI3(4DjMW<8V4<AG4zu|v;42>(gX{PneIzxBLJt)D@FlAVV
      zGtJN&sTUMoWbn=8mU#eP1Qqz9FnA-;ML${?`b1XT)G24aV4C-GhUIX3b}Pd-93y81
      z(2QUc7)~oVg$9P!lwtAtLN?9q2YTA%4DG30MmHCA+Ysl9(dRrhNQ9O;aW_Z|Tc*NR
      zxx+A2R#UF)ZhDPpoJ91vNhms_pbOoUxXz!8VvYroYg0EFCS5SgmV#rLajAmWW9b(x
      zeN>`Z<*3b~i?De%w<&vkNx^`q$d@->aM|jlFh>;(;WC-2P-;z2BwB+rYZbEG)<w$`
      zehf2ApSW><Z8ac*Fs?v_7C;Q6;?}P+JUTig|GSSm)zvYJDQn~=&vMJj3-)UY#-K3-
      z?&k`2hTk#7ShQ3rM+6LmlC&&t&zO2X&*?$jWC*)f$k5?ZBSXkdJo;&1z4Rs-Et*>T
      z`{imROB3xL!b2a>sg@AX4iVf(^HK?|2dcJ*wvXiTpk4SW8+ZvHUQzCAwBZfHc#96{
      zlL!cr1#;I(Of(^494kDJDMr*0R<#m(=3<9X)Lpb`MRC}v(zFu+uubXj5Wsta{~#&)
      z%gI%WFnV#8pc~MNbF}kFvc3x0Iz<bdE>(+_aDIOH5Y3V;RureBbi34#Jp@rC*pj4E
      z%js3Rt_q#lUBE@k_EQH0v6rj^?kWdsRSq6k`I)N!LMp!!<-v(n(!;5cO~^AyS_u(B
      zQ$*y+c9o<-I=@L^r5soRX5ukaK&I(lg)g*^*pf;}BW0wK60YnV!TMf<6{=#5)yEny
      eV~x9D{dB?d;JW-zU{W?o$h(0A#Jgpfg6B6XgHfOW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UIManager.class b/libjava/classpath/lib/javax/swing/UIManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2cfeef71fcd305e93ed0a805d486faa6b3bf2e51
      GIT binary patch
      literal 9920
      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
      V;@l%M)P*{FrjH7q;d3v1e*%aocW3|r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/UnsupportedLookAndFeelException.class b/libjava/classpath/lib/javax/swing/UnsupportedLookAndFeelException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e449f1fdbae19c9f8606c84042fdd3ca1ac4fee2
      GIT binary patch
      literal 403
      zcwUu`&n^T(5XQe6V}`LTE8Hax*f4P-S=mIyo;ohe-g{>{G^2acGsC`?lf=OTcqmal
      zgoA^qN-Fi|t6#pi_m@`yhv>x!2>o06AZKaysLgeHWvZqut*ccoti3xm`ADhae3q%Q
      z*4D%b3G4nLEhNjo4}|DM8(j|x8$04hFs>bA2fGtOcxH2zU=E8N%p)Rng*NJ<xt}U`
      zDW`=Z^n}f1F_BLD`D+>0H@YJ1i+}hW5UBFJUrq?g*fuUxBkkeae}E1=09zpT?Sr}A
      vJlB|~Ap%Yy+Uq}K;fcEd3D>0E9<lNmOWbXKs?fo5ONp?8Zp&J2f7U(#+p%Q%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/ViewportLayout.class b/libjava/classpath/lib/javax/swing/ViewportLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..62302458a17ae41b298ee27c9597c57365cd8d5b
      GIT binary patch
      literal 2485
      zcwT)~OK=ob6g@AQnI@Bl00CqW5hBVYBt!v!neYul5{3{nFns)w&P<au%yh?|o&+dY
      zuC21lDlOUh!Qa9%Sou^yEl>+ASGsY<#s%zMxV1d*b*E=01S^$(-S>0uz31HS`R(5u
      zKLU6TS2WZKY`9=d7?(Orla@W&nYGNxamV%2#$~7MX^04{l>W|wLGSUA3ucbin7}$^
      zH731IKlGSk8>6PHVVS@h<+Gg5jOkiN!Mb9M6ifn@)MM6kOO|7w>^meN`URHvICjZ1
      zY%gmR%4YPRrmtrIe*gY1fmpX?Ti#xQ`ebWXAkyRH%{c0@TE_}B2{ffG+Z-qtM@;vG
      zUtx9H$+3XJGJFn<5pT>Y32aP1dd?J6jeOpJ=y8hUj&0hWKx;Bx89w8=%uJ=j!Nb6m
      zYR@)`s)dI#IA)HdER`s*)-{XHg!xeE$C8gK)I9E*=S|l&gMKsC71nL5iMKt2+_<UM
      zit&(DG;K+IN<$0lR<qH+Kt~)~uvN#?ct$`QH9cvk*2&hTn$eI9_Fw@glXIOyLDJrc
      zZD`Z69qj@w1R7lExe~Ha)9=5gMy1y{cHmhJoh0_*4s`A?@mJR16HUXe>i7^Xj-6P|
      zy&5-M#qpY@C=;lg7$^VfB?+QCGNDLWRpfRS%f*Ta624pR<{p7)vae5y)l>+C4d53G
      z8w!<`)F04s5Iq8o0rf+C+ZItHP28=5nUdvRk>w88f>y|D&1&csSP{Ag9n1C_(2ul+
      zqtz6Js5*{efD3zx|9vuYP{*s%5}ma2-k7vxbevEzm*rDd$0_*~8#ArZF)q*%bW8Ei
      z>Ua&W3vA{n70pk$M($#1fy`49QoY`18#v6M%sZ!JSmtf{pS)gGN~UBRST8Lv8Oa~p
      zKQHNMEcyKTs`O(_hlLA1uksV&ksXd-&8wm&B|!>0ilDnG02y>jmY>j^TpX`neA$vf
      zTpkCVvYjv0Y*s}ufn{=a<f_(0R0N||>Z9aLn(mOCk;}cfB&8_%ujTrh6|IoPka)%^
      zyE*f)B|m`8wI913GK+JPc+?>ZjdvT+fH==a{w~x(M~wIU#`3z7mR&pr&uH5mR$W&i
      z&Ai5W0{am`57zKb_k*w&>v(c0u|5FU$Nze1t0c!%@KKex*>?ts@-D%Sgt~hi8<`>S
      z1U3a=&nt{2z%mMKo$ssylMr%%Ct1jcc$YB|p6%OjVau`hSv)n+aR-Tx+t_v$%R6pi
      z+dNtYraETPF?AC=&&*->R9I~jDFe=N(qVF7kf<E1<%w@%E5=k8Z9ab3MLXMmfz_j2
      z@fYzDk>Y5<%j~S4)~>L#z08yS$7NMbn?tHn*Pn8-YRY(s9}n;a5%&35;wM&HM&E;~
      zDeoe3op<}YBC>#-Zw`mLqBn8mOd>LkK6yDlEU!cIa&mYMr@LZ4F?%F2U0On$#~FdE
      zXih{`_zd1iMCxalOwXHDo|7{$lxHXrot8li{uIlr(r7kRWN217v1yE`lxt`RplQmf
      z@CDOQdm=iEe0w4?i_uwJtZaizR)G&V{fFe`BkFUNtNby!`h=W+#vhGq=;nC<U!oUZ
      zV*uaaG`__Mrl{U`%%8^Fn87=k$9uTJ?3?%k-_v^wKj1cg=HKu51%KiW?%^)(<5#80
      zkk59g$%9byzu*L#-wQNfi$5@qx2SdtkzAA*bpW5kLzy}cU^gbHw0t!$sktuy2fLw7
      AE&u=k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/WindowConstants.class b/libjava/classpath/lib/javax/swing/WindowConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..618deb3e545e7cb51094ca2715452add6cb7d6de
      GIT binary patch
      literal 300
      zcwSwO(Mp9-5JmT-X<3$0FVR0FeS=yaxOf7kdXtk$D58*>_uKA6AJ9j|og)<5+pIl%
      zX7BHx-4}p6T-Z1u+|=q*ZT)_#+IRoCYTvpk=-Pfz?a<pW37$6ijpDU@t;=E{T!u1F
      zWEP9$A(u%WY-Ab{ND$oL+b7kGrNKF1F&1I;XVfC`+fbyBj4Pe{xY3KqR-!?0(r)}H
      v%KNG*30MDG-s*xD=R><qT;mWHldT`(i1~QI4)e)^Pnq2XpUsue=h@o>9~wG(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/AbstractBorder.class b/libjava/classpath/lib/javax/swing/border/AbstractBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9efcb3d3d33d049961f29ce843a657c2345535fc
      GIT binary patch
      literal 1795
      zcwU85OLG%P5dKD5NwK`<WvpOg8#@qe%MTgME0*nGOaLKQs0!c&PF~3yX()MD?5?rl
      zMt(uAIpvaL4p0SU2$V@u6{^T@$PdXW#W%By<cEN*nw{>R?*97g>G|jX-!}oAKp};g
      zz`z~rp0%Fy*Q8U)m0WMx_HuJ2Kk%$_a6zjn7y|p0Tdro&>00TIT@F%63Us#!ei!tK
      zz(E}(-Q0EClU7YWuu3(XxqPiI+MX|6=VsxefVe8qG4DElU^&5}Ra><a|J8o^S*%z7
      z6-Z7?M+UP3@uA^G0b|}>w$q5?fQdcWE3kJ#I`%iKD<#{z5h5H|aLWX+2tz$G8bMY1
      z0!J4<$~Z63UbmzZsRH9eIw)tY1-W^5rS3Ym6Xct=%br!Q%Ces?@KZI4GTFC^;Za4P
      zvqdOR*0~B?_XQGbayh7yd)1beYCw_|J1VE(_;x@dgDs01ZW=?!d<tJMe1|oSV;EHZ
      z8xlwjy(|0NM|egVcVo0M-H3@%^s(fU8wBo(GL4(aDN{Uf>q<Xi;-u0Oo+70zr%aqy
      z7NchWK$b}vk=wruLST>d!wy`lTX$D&JrB3pXLhFG1e__?`<9c*8CBQa`pz`d=0U?h
      zpN7DUi79Z-3h!@2%VB?i)^;Rt-o)oPn!*Ln<!+ZW<}k=RFA0410R#cFwC(oO*WFdG
      zY+sU!Yv=a)9anjb0Wyjs#tKrD4xtT-V>{n|45qg6_3*!smPzh{dm_7m{g1UvC;w^g
      zz$^?Fd61GBI-v_0?gF1OZJ40Kl~T55a8f&ervtBqhf$!Cx^Y;alQw!Zj6g5?Sh13h
      zP%^aCPbs0L0ZJ+-n;C(gr>-K+7dUn+&Tj+9AML=G8b1^IHSo;{Uu7GPvVG48g`OGZ
      z7r*@!S*|gziKmzxZRQP|@{oCd)Vce^s7CHggIfk?aF*VDSoktR8I3v}i~qKx(x0}p
      zIM!(K6!KAIm3~R(F_P`+?J~L&&oI4{?XNn=Z0NU(t&&ua!(JSTx^3zn8(JFB-ELFQ
      zAVPh^T<Y$MBd;+%l6{V^Vwg(ybSIx+a%rYl?PE)`U4}NO-^9}L85XAx)Gtdt@d9(V
      z!lE}Y-z>UMr+!KBO?2QD3;u%z{)sXCg&F+4Wps*~0<?4yUu!bO2AN`mOtC?x7?J6~
      P1TOI!RD&*S<STChbR%Mo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/BevelBorder.class b/libjava/classpath/lib/javax/swing/border/BevelBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2aed282c181e9dd283c8bbe93a39b80d63a111c
      GIT binary patch
      literal 4286
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/Border.class b/libjava/classpath/lib/javax/swing/border/Border.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b4d2481f058c2671de82a7c3a1dc2afd7b25cb6
      GIT binary patch
      literal 282
      zcwTLfy$ZrW5QJy_i~rjC1SXA#bvgw_5K;&hc4s`|iC$vv{CPGDAHataFNt8|6uU6<
      z&BDIkk0*dJIu1&N!GT}-o#~rY5!=S;PNZy-F9#JuKa1Is+c4N3L}&=DgiB=#hA?uM
      zIl^y-P2*D%E1``4^X4f}_A=D|!pd6{dXe~+7fK7G3B$i9yq{TsKA|ghQ4JD)z6e6u
      t^)`g&D!!zln8~BHS_Lu6+BJe@kg05+siKDLDF^j@H_)_+t=L&Y`vX^>OVt1X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/CompoundBorder.class b/libjava/classpath/lib/javax/swing/border/CompoundBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82217a9122181731e32d4b557e102b33a2b359e0
      GIT binary patch
      literal 2225
      zcwU`U-A^1<6#rfJV_+G|SGR~rE!N7i?6QCq+HOS)3T~yK(qia?VRm<9$H2^f%u3am
      zCVs>hAAD_m&}d?th>6Co1dWY}5!A%^mH6tDe}IoZXguf6Fbj0W#7SoEIrp6NJLmlF
      zx%1uMpWOm5geMf#3G_UxJ*Qnsl-3M$Igz%CS-qH;v{v(0+00HzRe`^@+qrbfE@~Ou
      zaT91M=|w|ZS<s6m!!j?W9u^Si1)3%;vt(<gy`Zg>^}tIv2Cx3PQ2tFoHO!Kc)px?X
      zW@_Ycj7dVV%Jy#W;90{o>~R5Kq;EmMKWSz45CmFPG@(u4bmRcI156CoJY$&pY<V@U
      z7cXk*6<wfh#>!A<8udrIyXm)cMoHj!EwsH9CPVPy4zBD_1J!t^3Kfkk-K8RgMu9^{
      z$?=@aYlX5dySm(nW4K2_k3i?Y)~li$M+F-5nqhheG2rx`(AI3H5K}kpWOZ-4sO57;
      zrj$(4)3?BR?o)9b_p%gG(T6CJu&ld)DYK;8)M#%_*uLtf<Cttf3<C<{gt5=0B7s37
      zZbg5_rr}7j=dg<VdDCZGdDc&=7-c<BG?sHV@0?O`ns<U}%eJjm3d{%`u2l<}mIc~t
      zbV`;h^gd6xYev@25n4{?1l7sfX|wgVh6GOi2cxdz?OcSY{wY5AX#pkT@J+c5H<y~;
      z#W0WWW6VBXoEBn#Ztui*NBR!DA$(w|JvS;eZ<UJ~eahfzZQnbR0}O>8O6jA&0Zk_Y
      z2$H6dR)>1{c`!-#^Qh8VPc|A~`Zkkxk|G4HN>qpqw0tas+UXmj6}U)HmvERQ)p0`@
      zM`&e;HWy-%JUMl9bORmH{t7yyu?o7XP;HbO(CNF32IMHWAt8@BVJ;*~T%nK>*IY+3
      zT?#kNo3yfRHhL3X+fZrg+(y8^?&wXdZ{lu&b;rURUEYQxT|=wqc8z0w>t2;dC1Wp8
      zbuXd?FQWsm5UZ~ug4ZyN*LRUH>ybb=&8bcVD7v2Z3XH#nd0zTs-C=(?5DsqQgaWy<
      ziQYP#QMx;oo9JH}5BpgdS{fxcxy7H6rR*pLNeh3*NDp!gTL|;A7q&`slt=^KqC(zA
      zC*Hvcyo)&A!x*k(8aMD1KETshM;;%_W}b8k_UJF*43e_J0?y(AdHw~AV^AJb0S}Vo
      zm(oKd1*CM2q#$J)#snrQv*4k3DVZb-`&VMyX!{(oMISvIc;v!$bj0ZKU9Mn^-XVHN
      zD(H8Zo2c?M8(Snw;>;A8Ss95lJ><^HP@Jiwcvi;ZOcVh+L`_Jd{y$3WBahYzng-wt
      zYULK`U!oUZVE|v#pKJ?L*v34*!4kg3D!zw}A8-{v;tl*n^Yt^{$1nH<ze>7CBxMzk
      z?utiu1&<PWb%Z#A6iGh9*pZmfsCxsFr1POD(SGqM&R0teN|@henj?;jmqu~Z2+ZJu
      j3zTrLQh>SM5A(;aNe_6FK3g-mYk%-xHG}7**W>>HBe%{M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/EmptyBorder.class b/libjava/classpath/lib/javax/swing/border/EmptyBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a52e69bcca777555919c6b0e93413c6e3279e6d4
      GIT binary patch
      literal 1568
      zcwU86TTc@~7(LSqD`lbF${pk)&@Pn<A|gc;@P<K+Q5!WeW?R;FwcV||i-7vzqi@C^
      z;DhfzXhK23_-dlR!Ds)4@tfJD5NLFh**UY{_nmXTnQ4Fg+5QG#4D%9v3_Xw4XX;wQ
      zUe%3kB5hjBnw7X%C_3x&0!s)m^i{~2OWTg6W*j$-q2AUkUCpO7%hpZf&f*0Ic9o%a
      z!8B|~HJp^1U(teZ9{he+d-tKj5Xftf9LiZ_2wHkJN7(O}MTV-h={RPAz>IF_&Mboz
      zU8E<LqM`+JSqs6BCK+KgQ%N+Iss=-gj9S!i)Fvb3q7E5#F6xpYqlO{8q#N4xl|ovx
      zZma3M#?ZKAX2`Tk)@kj13^+O6X6Rk|_tqpCnxi5op{_cKMZ?w{JIVbFphdzl(mN33
      zkv9J7;IFO_S&Q*T>KSC0-_2uaIK<0PQ&e@Myx*hyq!-LW(KIx}N$!2SY^lYZp0Sg=
      zd&e^5w^9v-vJ6cXN-45NW1Ws@RbO^;bS62?J*#k5^Q`Pz9<FF8cBm2F^%)tHm}Z#z
      zPZPU)T7hH$F|wn3;!V-RISh5W?RvaXRG+SB;=0^t2;DMQtc-R^=Z9Ut??gvA1^URK
      zpMD`hw9%-dl|(Bajv&CV7U2NDPGYY0<~lJ;luM^c?*>}EqM9Jh9m*COmCh0(N>>T3
      zN_PqEN+eK1=O@A2&2vZx(23~@s*xwY0-9i;9VU7xGT}1eD0%^bxH1!nd-4gyUHAp!
      z{sO{HpXcT#G4QO2GO~ew8iO>3Xbf*5x@V+L5IiRnFVKvaLcGN-EQ?2=V1#HH;yCWn
      zXGQw}+oP%y{@x0TD{in%LH8F45ob6-|3yB5#y$TGCxw5GCI|%uIz@<cPU5sDnxt%A
      zDJdgt6H^}#NWb6bUMfpVo-`+#_K03n1s5KVe@A!+1NZ#&Y$16qu56&Sgh4*j2@dl)
      zQbIqU+e;XV?`igk7E5G%ldiyLx;$S<aT`(WP>WxMmtI$;>}9;X4da-hJ@pA!XFXSA
      ql+8qYtWtYF1*Pn!c$5sYIOmneMUzzH|8Su4*S<<$x$?YN&HV-Z1{x0l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/EtchedBorder.class b/libjava/classpath/lib/javax/swing/border/EtchedBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d8546a60283d529b30f4d7e46c889c52c0e1532
      GIT binary patch
      literal 3182
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/LineBorder.class b/libjava/classpath/lib/javax/swing/border/LineBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..795532e5fcd8ee85e3709197b6c8a65e160bc4ee
      GIT binary patch
      literal 2689
      zcwU86S#uOs6#g!=4^1`*$!NkFVY0}8NWcVvBrHydpaG%@Aa-V&NyDUj=;@HCuk+?F
      zKq-YMUZ@h#Bvn!+<x*PZyAM9-Z?Lo|mxsjf-tNqV$&}7i_dWOAbH4kXt$$ql@+$!Q
      zFc-l(f%a?qO?@s^oHeanYSMPHhLajGEn`rL5d;Oc*Dx8FEV_=KaXmAEhN9t^dVb7s
      zil%K{NFNsv!vY(IY^&(%mOG~BXN=I(roiESAMWiHsGrR1nd_B{1h$U+CzF1Gx}2lG
      zx7sD<PMMkOmQgJ7wlw#79uC=gTM|-mDSg&WDUI}Z>=`R-WQT0WB2W5E2!s!tmgyc5
      z*qE&L=o}LW4%t~F4uKX88__Dzyv8g&Ar0##u`@H%lZJC%pUfKqO(S-O8PS;+?tNvD
      zlzDR~<FVYd7OitEjsUjG>$V95lAU7_>=4+Y?D9Hulg{UjoSq+Wax>G0<(`<!7zLME
      zk7GNw#>n*r4fSY{(ryhKP$#8M4UK3b|BPekt}$4h{`O>NtpfPTmk2Lvh+};WDeQ}2
      zFVp!fa}6({fsv`g%8b1%L)gR^y&F$GQ#=WHP=n?HzM`Q|ItOKi1=bgI(<-;to@a72
      zU9c?%-CxlWxWGOr_NV!i**k(`5gZk0Tw|hP0D}V2oZ<Ry(&UG|ssa+=xP}vwd$j0V
      zO64gHuYqm0A?xU~qq3Jqjf~5-OQzG6yH9Hv!RvHYR>~lf^p4qa8Rnx_I6TU+2Wv#d
      zlQ}+2OK8^2x>Ib~DZ|W75jSe*vwj@HWD7DZFKKCuyxC^EYo=~h#GYY)1Q+RErHx|(
      zmt_qZ%%T6OfseBmIYy9oHRz}#?@8Nr?P;mXXvj)cz_kl<e^o<H?n91@OlnLG*Q6$x
      zH?A_&u<3`?xaJB0je(C;Mqh5vSH27!Ar`HX%F(L%=Lx?6b!O4a+S!7BV}`??f~#Q$
      zw$~^F`NEVg5I<+nI2q%lDW|x;(#U%x9S$DR_*D&~6(PP^bMDq5%8}vFP>#!9=Ngm)
      zsaB4tS~-?nHTrN|_-^Lz81?J8M!UL$fkkY7sL&D$N9wN=Kab}qZT9T&yh4{!8*zm~
      zYxmKHi5BqC+G?S_PqYsd+BVN_4VsiB?{x~d)yFMyALQE6wTLa<-y_m?8|xoq`}iVu
      zKI!V7=Rw;%c6GJSBU!m~i^|O{dVb8PZ!_jksQ;AuJJ^Z4ibt1+TjtSG=F#Evkdn+?
      z05Mv3`;3k%{y@tk^!$K^#}MO>uxAnbKSvK$56UF!l;LMA)dL3fNL?yHV>nO?thWqy
      zNP+cIRSotv!M-8bcV#evejN6|!~sSfr_SzKz^i?co~|#@v4EjcXt@+#4)jLvp^vKM
      zEhKu{n}f}v<}kOr<g<X2_fWT@UBGZDAWA_|3N4kwOQoo2j!LV$%iq$fFV>TY5H=Be
      z;t3CVeHfSdUm-iJ+U+N5e<tx?n8aUMg5OB`cee2#IEbeh#Gm~B{l(AS-#CqbaE9lX
      zv4ksF2HPJ~TrD9~pqH34hE*<=P3yC&R5sqgn<^1DM*Sq&I7ca{r1O+QO1eNP%)f~-
      zmN|kJ4B;*6qQrR{<9<CxXd%&BA7f&CB|9t6A}&=5A_ownY1M$Vmie{%{3P-_KJrC+
      zNOp-H{v_JOJg)GW<YUZZYE|Q?i4nWeB9f~nCQ*h@l*3POO7m)BrkPOhqLjKA2+8tS
      z^WCoiHP65Y6tI||wa&ZlS2-W4>0H2#8qUdT=hHQvowD<w3WK?m&L5%4Yu;ibmhT`G
      TydS8>8()RjTE@GntY-fO_E8E`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/MatteBorder.class b/libjava/classpath/lib/javax/swing/border/MatteBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5164f1d4bfa02c04a43c3a17f3f43903068ef7a8
      GIT binary patch
      literal 3754
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/SoftBevelBorder.class b/libjava/classpath/lib/javax/swing/border/SoftBevelBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7fddbd923697bd63a6bb793702edc445a54afd6f
      GIT binary patch
      literal 2794
      zcwU88TT>KA6#kl>*<IFA5Md+28bzba3anA_0*VF@*#s{MN|XfREIYuMWd~;m(L5xY
      z@RaA|4_K+PDrGLFBBXNBsz|C5tMZ(u{DZtCKOpAoo?*F2YKQ9X@0>pOKHcoof4_eO
      z;AOZGR0uR(GjEtT)5Tf4Fp<tWZq9PkgU-0uZQZc)-HMJt6WG3v+zJ_i>Z0Y^W`4+W
      zi?&m^l<5@^uL^AJaSBDxEO<j^e#X-K|8Q@ATC@L*K=`;_u)Qt;EtzQ^;?m>ftQbPr
      zWFUqO0#yTc!8$iHm9^Z9W;SmL)C@Rd^kC8t>42$ulXg*H_dxkXIt41TlDv3pnwla*
      zwPZ#qrp;L|-Q(mPw{tDsJQTwVsE=T)z^2uE2DYI=AewdUiAhgZp(fe9RzC)Tgv@EX
      zKyP_><!D)}%1QdmOP{R!S^<`}IBDjbSy{{kV=f7wpHVR`GctvOWNh%|gYAG?+M71*
      zg12<YZON71rly^ORq$4Xc*ZrSC+)FfXNF(%P$g4O8Q6kaS%ek?t!NX7Pgq|6s+d&Z
      z0(;iAzHUMH8|>h<wp7SUMv5FXa7c=5p~&EJN~Qh729B)WUyeoYA2ZMaR&$f8K&h1k
      zhLiu3aJi!^N6VuXV*<77m4RCm40avY+_}kdOF*BsbKWEyVAArNql&rtXO}4yEsytP
      zZ@C)#f}IiYj#jPV#?Xh1Y-L{TNYX!Jfum)bBCz<pk4l<5Yv3Ge8FJR~JZDO>E*N-S
      zvO=CSE$Kl67bUH$TP8U}2Hun$EpLr8%dj0JxA{32JU+YVSK$1#d3}c0K9p=8j$s7v
      zL@-K~=jv(Ts=CxHUC;|7$Ql?!ju+2!%|bD6dbFb_W%_b=+`t4__GmFs;W@3U$<i}2
      zf@=oemDP*pTys`Fa6CAZBg;YiQ74}ZEW`$#8F$R;v*jaKyXGZplg6==T^izBF0d6k
      z!dxSyDiGzLkdG*5gPbn%D!7JI4GY-#K*>~bjw$YC>Rv%LQQVipX4C)*@#fNov{e__
      z%9E>ctxh$x%p=~?+RAwWjmuWIQ380M)CWYj8Pgrc^C9;>QeINNe#uL9;6<Vru|vgB
      z&D?e{H|cqM;Mt=!Y1yFX)_Sd8UqI8c*BWK@KB+H=zGUuSDQ{iAPRW~5@@8OH;LX5p
      z<xQfOh%|-v5b2cMi)0YNUyMdpcr^7bnm<?OSULZb7PoSAv?S`ZI=wEO+Bc7Va!SkT
      zfSlUD!_j+aS}D<9+EiluD6yPV8?yi&qY*zd!Y8B`ag?|dzc8;~c@ciY1w6$t@d$ob
      z`S$w}mhv6Nahy=mjZ){N%6Al}Sc8y4uMlYpbrb0d^$^K!>c#0G^HZc%rG7x)l`y{r
      z^nYE7Gpy|YxuS<w*4y_lt-TglyG#w~J>J4EJp2#?9OpUSc!*0a%Xa<#{F~AIqip+U
      z6ffD1mvW2K<`qiwamHJLmloxfwnFz;M=C0mHN)Qxti|MG?`w)5DJLtxn3~7i9hIqu
      z#(9`?p=Wd2vsAr44=WW4CA3^<9(F3E>6%*gP@SgbB&-ihkwhq=1ays}N<`CjU9Dkl
      zNmS`@Qfd*UrsX6rSQI}h`Ffp}@Z}PEBG|fzct<SN;5B-TFI8Vjx%$}S)r<$ssRnoX
      zw^Rd{{RFWSVbKIb>_U~;jT+I)pEqr25^1Ewezc1N{MUC7J>n3~igsKQhjCRLL0%k#
      zD?0F==)@habK(R(7G3y6oWxzxjn706?u%Z0BTnNX@lV80M4zhnIBU$BsxE{=r-GZf
      tsJgI1q3)nF7gZN(3gy*JlxT`5tk7|yh(ZOTD7lZ|5Xqk$(<;~N{{e>yL_z=n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/border/TitledBorder.class b/libjava/classpath/lib/javax/swing/border/TitledBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6dc69c08eae63b335b8f752ac74f7044a9c2c7c4
      GIT binary patch
      literal 9912
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/AbstractColorChooserPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/AbstractColorChooserPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fa69f6d7aade7665eec496896293de50545c837
      GIT binary patch
      literal 1582
      zcwUuLOHUI~6#j0XP=-f&DWE96XbVyVd}2sQ38thFlVYRG+vyD*Go5K>rh;qt>RR{e
      z!UaYi2@7@Q!uV_a0mgHu(+8!HxR|;3oH^fjzVqEXzy2P518@ru!tgQ7J?Ag@PSW1i
      zjIE?<>ZYX@P16=uayf517FV5=Os1;I$J`Kl7y*X<X55;aXXv96jq5pK*_vrQNv|-l
      zHHPk#Y1j@ooE+CHBKXJLe3kiq^o$|w^<o&y9OG;5xyTTDs2Q5G#Ndy`a}0r$Sr8HU
      z(WgK`H$!hmGsH%vlo!?}&+CHZWlWWXaFRo@mkc;X&1P80{Qt}(qGwAuE1F%_`O6Jn
      zBD%p?++|AYoOrU1MRZixMRn_jD4B+)x{A{bBMq!5)IO$-g4iK<D&+!qM5<<mlCNlb
      zp&kwpG+W}j?%~s_X*7D*rjXgiYH@~JTjE&pfF|wN_2z*X#$#uA9?x}x;fjI?x+1i@
      zreI7uJybE;k_}U1mmn*2p*nQ>>vTr+VYWr+F}vF!79)sbDvSh~cB(uD)0kw4N^4sB
      zMQcJ<Ewkk1`fCTpx1DNFx67<Tf58kxM-9RdEOX6pXq;FB@W|rjqNdv9iM(^S70h8?
      zqP#r$+oqTyk~J%qDpoal^~O)VSu+wFm>`e+^jrEciXcK1h25xw9y$WrcT-Mr-#rw~
      z)5>TKCJxd2#Vw7}J3=e4i~v^9PdlYrgaHgf{<T9GrkLRz&U-}D9+A)gxy}-DGf$fs
      zd{qY8kDNsMT9L(*Na{UG;t>eQd*sF!aM4}I<w~`eaM@#CC6t^al9<}ZMB)Hf8x!`p
      zHoc~q-k=k2-A=>RYEPrwNz0_V>vhg0k292D#M$cDJK}ra#1*P@h3Z^4FzIonyvd`9
      zJxu&Wms}1I+hw~gGC$BMenc-mH5n51r~|l(nKKEKCkek2;T{q0w;^QmUY?kC>JSU9
      V(|)IEf1EPy9o%)r+;cJa{{ao0Nelo0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/ColorChooserComponentFactory.class b/libjava/classpath/lib/javax/swing/colorchooser/ColorChooserComponentFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5bb8a500df28053b94ef3416558a0891dbed78ef
      GIT binary patch
      literal 1014
      zcwU`SZBNrs6n^g3t*oNVDFPFnW0-8j*r-8bASPNEFD^<bAzAozSFfz3^qTH&lYfPu
      zNLcg-_@j*HmSzqULFtEkUV5JAJUQq5_<8mnz%$I7NHHuP@*e+Uclv&KV0$u<k=K^8
      zBO=?;fpZ=>^60Y+MX2iBQ!+X>VKC%1)DAcSKeP^orx>y;e(0;$4C!iZkHK){M`0n2
      z+&D7GGE6l5P`vLRwM4YbTY+FGG^EFaJs$ZwPLhUd`yGa*#<j#PGfW)_wJJXGZlIE)
      zZ61n1b5?8nf2V!Z>ZpiVM(JbZvWeRa&;K82;?8BbM5Np2%4?6}EEJG4agV{i3cTUI
      zy@;ID$eDjY?yUcToJNk8*yBN0(5x1(H7VLMO@BKQJzw<W6hpCEyFj%y+!+n_5yO+K
      zl#bF_C~29NE4z^=>b}01@?{6{RI{TDI!ov;jg&q|icN}MkY!{u3#S<SN=^zEy%t&E
      zB@Dd64f4j%i^$$2o5L+kBm^F1^}om2Z^$>(0~DI4xa&5J0Vc_ta+{d}rpYV1?-ovm
      z4T_`ySfzIjdDJOh#~d6~usLj4q1yYHjT=6|!=zy~mIjOsP$Js$Z_aEiWH-j^8b*xT
      GtNa4x{u7Y^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/ColorSelectionModel.class b/libjava/classpath/lib/javax/swing/colorchooser/ColorSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c94ff4992ae00d2d16e932f56a57f64649a36bc6
      GIT binary patch
      literal 340
      zcwTLf%L>9U5Jhi%)i=Ht{(zt$7S}EXSBeY4eQXD<#0J`0{WceVfFC7JQe61RB9}?d
      zotgW1-tGXVXgbIVjE^#vS2w-{;okMM(vf%2I;O~-n_@$Xyd==!O8cZ76a-qv;VQ}e
      zdUxbse%e!#k>p#OKxa5wT2Nk+tksOU_=oEbzp>F)pe=oWe&7+b4B~`BVsem??_DXS
      zkS!mO_4Xn<>6E_h)r~$!9xVbz0{uVXCZ>ByKp+ou3Y@iw5=>?XWvdlbt=5b(S?4>4
      F#tW=mU&a6c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultColorSelectionModel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultColorSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f17a4561ecfcbac13a1b6018cb3a213ecbaa02b1
      GIT binary patch
      literal 2281
      zcwUWF-E$LF96h&9nl{-24YX>l?b=dplF|sshZaysix$F%1_~*DZIcUGX4%!<P3!23
      z&hVrUy!h;ZGY+rn*mjf|^vxN^zr#oW1ohnAB_E}sJY?_J@1Aph=l<@^pa1^)5Ws#c
      zC(tEu@TRe1e46)GP5VZ^;#iJbsX2}(-Ta)qZqzNmpyo=_k`>={>~l_4S_#AicBzed
      z%iy*P%Qv~2K##z5N4PC<dIk0bIHr>?N!K(i^D|@Fl7#ny;i7ashF@No6A)(v`U{Tj
      z`G)N;8dhD#?<|e{ebF5Fiwj-=Evo?!_ZI_PW7Q9tX9ZG~8r91A6>0kdW5rgfQcdOy
      z%>c%0mg)J@mTr-)z~mMig3w}17`OEtGi}p9A<#XQSrmvBm}(!M#c%@83G8T>rQvz(
      z6o{|ZOkXA;@PdXt7!}w(wK)L=wzFv3@_hZ)vUD$nKBbFJg*F*9i{ofA=GRP5;83yS
      zX>>l^*(AELSE(3G;3W!rqD@ImVoC*P1O_9?Ej2;WeM~B+VHXAx*e5XY6ecDyjlF8$
      zD;m<+oxlNR-h`faUB~Ukt4weU{d&c)ZO7M_rS3^z_Z_`vtVrFiTU=7%Gf5WzVWs)V
      zCe0<^rK(8tYZ`V0M^lLk>W1`7?KPI3$~<0WEZp`ub*gV@coTzMyl%R(<Qu*WJ*)~0
      z7}aVxcw_-fZK`8&J_@4B1b8X*?E;mVr!~BVw^@<o64=+8bHOq^Z#JB$`=-@?8bQ(Z
      zS`A_2+w0<ucI7Q+MLsU$oQCsCMo$<(1L<jdn5UA@T-%;T;k~P&giE}rglPfTBEJZ6
      zs|*uhiW5)8C~#H71zb#_fF%vr@E*Cnw$mK%d~)Hlq73b`nqq~?--1B0<ka1YJZ-A`
      zJJ$Jn&M0`iNG;vyLL7XHF^oPabt%5<UC{Vr<+6WU-8!~0b&J^cGKSZh-yx0;Gft@4
      z>`!=R10z2MyT|xVvIWi(y9k{<EsP`UI9r7=8ex1+Y!#c&ZeSw&0Fz~QUS30%{ps=s
      zX4a6;{ek`m*k4W`+`ysVvbi-JZBmVr1h_(&lN3A0*YGOm%gA5}Gjv$d4}}yFz3RQr
      z^k^GqaV!#&55_<|`!kOI(17m=CaW!3#2Z;0Z)8ymyae=isX2x9J+we_b{!|0vWJNb
      zd`#J&&})|{KBd>Ww%Q_DZ%Eb~l277P#9D}0Q>4kK3%Pa7Z$5%A*nZgpm}&r~uz)iG
      z;Mpet7B>Ta#rErM09oJ>;E||8`a{5Vyz@IQZ#MUv7IXU}xR`qFA`qL=-E4I_c%|5V
      z{65mTkpo1`{(^EBZg+{1+{1hS{nL~>#6tqU<@YY--sAW#=f4Yh^bjlJiPQA=u}G!_
      P|6o7Bhk@Xa0wm*qo0by-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$1.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..573204b82d0ff5f04ddd4edf53621345194896d8
      GIT binary patch
      literal 1434
      zcwUuM+fEZv6kVq+9a@J{K=6WA)S|s8rGknUQ7Hum3N(R0^ljQXv}4K)nQ069H~xVd
      zEQuyQ8sqQy;ET6?rcGOrmu4>6XYI4sUVER*_dlP$07xPy!Nrh#rPkELgnghJ#YDj@
      zn^vJ@nl`r*3w&3tmMhDf^XUeXQw?4YCnb0o20O!691nxHQqt}4B#~yjWKB`<tZwL)
      zIfm&-*U`~!22a}5xDO2HWc0x6hZ}t|Bm@}T5iy}Zs~dd1x|iqHmYOefDk5tZ)bh4!
      z>0;ajJ)#JPscuDtlT<{o$SXOE?{drH+NS=7_(md8hbo~SR1ypN9ye^=G*S{qnq55U
      z@M9Pkh3-oXJrP9_%6s-z-KYqvHq(-&?w9m}O||=Q71tz$7!qA-mNACw41GmQ)pTxD
      zls&abl7sCu4wCZYCdMU%83z6nAmbKpGx#)1J!r;HMNShaN*mDy(!e+Jq@>2JRP?1t
      z5tR``oS~Pxm=@}(L!I4ou#^vXk&rOK5IE_PF^ME~YiC*6%ABa85hzkj$(Y7{N@2HB
      z3`I^)Y_#;Dj2S%Y=uXabR-uE}K}b*vPbAEC3UWL$=J1q(9nz<WS<hw6JIHIHWkE&;
      zi=;)gZlk8s36f~V8*9#rr0k64ruuBP#x(~2rdhQLd{Gy>cJ%B8o)82KvSJwAN|#mJ
      z=Crr_Ge)6o+O$d5c%@`&GB(69k@Ho(tTn@_mvnIGqF}+GI8S7Wk%V5tePqqRMGxSQ
      z#Xr*T81j1>xzH~#$3s%t4+P1Q$rk7U1|56|=UXfu#~1jF;THq=M(;5$ylXLeg_r&8
      zU<tHXE@QOG@|F||b*r%>_>XYqD+c3D)9sGcabqW5M`SJj0e9-S*K|EN!eg)2vY&ai
      zpf~8PBOMo$+Qo#ZXs}=Kv)^<m{~|=SjnmDUak;SKay!z-8tI$Tgtdfa5*MPqs?c5Q
      YBL9lRxQeXP3g#38n!iSW5AC=0f0%ezBme*a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$2.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c3a41fec2009d287a59d4cdf43f464da3acad58
      GIT binary patch
      literal 1077
      zcwUuLTW`}a7(GtAg@$bH+HJ56#;rgvu<U{aQV|bqFp3IHDk_3EH}zUWnoLf*A$}D|
      zgGnIqh!8&t@i~pw0eh(;S)b46b9|2N{QCX%JAgH;nlKpF-tv9^-U$z+-*w!;3zXXn
      zf>0=DOYHK27d>e{+#Di1+!tPP-9(xpf0Fhz?l4S7JsB2PNwhJhYK_SEr7xog40lRn
      zv&$`p^k&cz88Do+F@Z@7DNNZgG0l)F=>^$_^u_Z*zb({D-u48AXap|zT3kszPr$Se
      z!LTu|iQ+ni$aO`uqr|RIN_3j?1L@6|%CVHg4<ctv_JtqHz^|E@PfqdghJ`tt*S;4R
      zCQ9|Xc0RGkr5|ajk<zx}dp+rfls$usxMX6P!5P!Djmx;gU`2|%@9KTtCBM1R9x+n0
      za1GZ@6d7jz+ug<u++@gf6hBD#8>N2*>h%#KH8R9sw8_T4P_^<K2G(ULoRW^rHG_e2
      z#bc>2XX*4DE1Jk)*L`28O^=76pexKi@?9?o=`5a!s26l>IQli%?Sb?<2_38SVp8-!
      zuv|_*8>;lo#2LafRNaF?A7E9gpJ_OP{fTA<vKos!bU%iL991^e8l6Et#tWEDRPG`j
      z_olvK?saZ?20xE*?&Go0q;4A1Cq$->MHaD?h_uL{-f*#U2<s3Rejr~>%2cZI1y^5<
      ttWE0}Mgf*Fiv?pYR-PZS6J=eMP>$nQVqO)uV*4z109tjM#x%XIl|K?I0Gj{+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$ImageScrollListener.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$ImageScrollListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d4856f6b82503e4a7014eab1b8e720815e5d1af
      GIT binary patch
      literal 1825
      zcwUuM-ES0C6#t#>(4pH4Ep06*3Kfg&7Gzs(5pAu|r3*{9fNWi*esOpAvO8ru)6C3L
      zpEPO&LooVeB8hLl=?h6Iek8^xL-?bN=gu8MOExk4aOa-+opaCE{hj;h-#`8WFoEkf
      zx(N9dc|(4h3)da5k*oQxAJm$@AF3dCMqQIFH#%3I%Nyj9^prbVT$K$~t_8m9mYgtB
      zo(gPOgnsQP=Sp^SvAUvak&SM`$X562hVr6ZzR5P~@mWH5)O5npal%BY!(68M@QmX*
      z(JWyy)A8wSg<$3Vy6OR8mw=6(X{696(1U(LDx(ehN{**4v{tJsSdvv&5e7<rO}Z5s
      zIQl;UEnNg*zSAVywUf&dVI(7EI#nke+Fsn&KF({IOX<NrJZIxsLaxIU1oq>3!fwZl
      zRNzV1_$AP?_IW_yAVvr~o8>jfi!W?=TQcVpd^(Lo7`5>dVW^#6;4ofhKMfUCq}$>E
      zLz!&pY0^yF$ZX@1X?+?;FeY#m$JhfWnt0$VDq8ssKxdj07>_dzlZe*bL!)_3U^3QJ
      z6O9H>2)rKG9U5#Ya2gFAX&>GYcoTdJ!<=hgH?XW+&du??MP`dj7*8^9+vPSVxT?1}
      zQe2f>kBmtgGk9Cz6i#zyd?%5A`Rp7sI#VbVvPG@UYbKsya%GCyN-qjHXX7m4SSO(c
      zia5_54OL_msvcVr1`Vm6B$TkIB(SI(vx|99cR9wQ-wKu1Toky3cR0n+b?TZ4&pgG1
      z7-k}r@ve;}4$(#}P{Dhwdd!1jc)GsQ3L`d&FLYVoz!iaIJ%hciwK@+%JR}<bP~f92
      z_);Ki*ERl$z*UXgfm)Ny4`wgZ<KX{H4O=yN6?pONQk9S{`>mj+3XY!X{q5)FxOU1T
      zTGXt`yD|(FpB`*8$Qa>=CB<t8sJ~yoFZ}R!L6b7gXfI2X{I8Mp*wOnCV-K+VUTm|6
      zzujyDiZH;k&@!JI#1QY?c?=s5bb{@6F!t-%2E+#T{s`-y5ntHEi+|(DCbBmNUh(D)
      zczg>u;S~({>NfDCrBUlXru4pvlYe67%IM*})^C`7fVtl>-vzBnB^Dc4xQmRDF8qT7
      ziL{B!cd^H~c;9RvnC;^yHO``sYxoRl`W(IV1yAXhn4+(+KwqOwH*uA2p~?FyeS;R=
      z#t(D{Khd}NnZCm>^nKi$NmGB)8!bsxxjQ4cgBt1_X$tF5ETyo(x@#<1j5gvdnsDOI
      KG69%KE5LtGH`{yw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$MainGradientMouseListener.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$MainGradientMouseListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce9f6d8f3e83fe8a0b0bde85d20c19980e86f4d6
      GIT binary patch
      literal 2513
      zcwV(tT})eL7=Aw5QCdF!I>uzM4p_I9f-C4?ZcN4~Fgkv<8#)xnY5UP0ET`o3l+8P@
      zjEOhinq6wL>m~dcO-zh4S-erBUVH0b)LTuQzVGQ-DFjqvOmq5u=l$OAd7tO`e$Ho)
      zKKKYgFR~s~2*j4PHSJC$e_J=wkz_8LGn1KIF0ahUh+5JLS!+B#94$s>HA7{CQ<`pE
      zHMNwk3~MS^$g4>`Zz)5W9=HWs7%rmSwjyec5+ZiSm6Wz>aYCg)$6g6jIZMwOkAVa#
      zt&E-z_6YP&9+2JuO}?ZXx-}?pE_C48opS>2XfCC^5U7#xpvngq>Lk3V7jT6*p>9$)
      z)O2Abq0H-ABC7=alewgpozqO6-<_bFMF>nBl*IlHlQ_A;fmu`K^C~3}C`#Pz=O}kc
      zj1N!Xm<P=Q&HJWFw4ha>Dy^*9oNid8Ce*o&YR3k=2%yb_69SO~s*z|%2YH!x1UWV8
      zcUSO{;X#R0I87^9SWRgbS$H_KJB|GpG}7`nx*xkVVruEMN_o+RCq3vEsND%BaTXDR
      zyF*Wmvw9_-vLmn2vnt?QDQ?a+1__{F;yj)qEg8*7Wl6tXlTzn-^rFN7E|HO$_^NK$
      z+qh}R(qD7pBy|u&9$Xe^+-qFo3Wf!|dVbX4os_co-8>sKA~DJad5Q*&bKR>F<96M=
      zGoKT$NlcU_#yK`6F<llLc1OnnMtDx*dDc}+o+#7MvQZM4RvugzXs|8I(t9LEqiJQj
      zhaUny#PI?jiWh00hhn_b1~D)35?*E|%9_)%1+wOdvw$|hOk!Cjc?r4bD-ySC+KCeF
      z05pjNpEIAS*0ii%+ysISkr<;V;f`*;PC`V6GUB;{nN(vspR|^}x87MUO`9Rc@X@SB
      zM~0x9_dQ-{BXAczhal?f`Rvm@$&VN8Up4j4p@M#-Kiste8QwzeeR``v1N~Q04)8ww
      z^e^qc4~Nl6E%|^Z2VvGhXbi7Ic5UM529Afh-NMOjtXkp$d_prG5XPrAW>ayVgUP)!
      z2(caLETO+iIXttU5vRJ>5x$E6H9dE6l$!=Td>1twr`~&T-)9!xOrd*6{bQsC_?(>h
      zf~tH;b-qFmzD6IuvAMJrtCYC(J6sOYcjakx5DHztC02blF8Q$AtZ&PNi4vG_z$*AQ
      za3J1xY#U<2?hW*DyN(N+c=jDshr6~Ay+<nS;MjIBb`MqDPV$J0rfoCmu$T5b`v0Dm
      z=La0ej|k%@x&eNsWBv;+<JU5FLnU@Ywm@b#T4MKrguAI-^v`sWw{OVhCI5^uYQOb3
      zZ(|PgS%>6@h~EtQZ!EvHg}F`KbO<`53p{#i=jbLDceDSEHp=g4#UBXb5ia6SzBuSi
      zR^XO!+3dqbUM2R64*Oa<@=2r!tra6s)N@gPqNM0!N6~_#=bz+UD9Ty-FLH!LwWy)5
      zRUO(zJ<f{;x+DF#AsXpcIZ`HPp(JO)kyA}_(zcxDGC9-#lbo@CCnrF1PLP~-lG8zQ
      gPLiA;$vI7O&Ky8a(vg#~@pUW%_Ju^Bf4mC(1;scf$N&HU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$RadioStateListener.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$RadioStateListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d492677e53a5d3fb8bf9ef78e434a745d9a8899e
      GIT binary patch
      literal 1503
      zcwUuMT~8B16g`&~mX;9^5EbN8)KZXwR#8Ba77(y}NC}B(4BK{~3(GFq-J%crcl6l=
      zF!90o?2j_u*=_hxqUpnS?wmdM&N+AP_UEr}-vNvutD%aJ+R+d6_X+o%VQnY!wrM;0
      zqHVj<NleQvy<~cG*;G0}R&-06eXDxGu(O`-$&BH8(vpsbFriV^NtilUS<daqyr-dt
      z(0#VLJdl=`NEexNl1r%ZiiX=aOc=>jC}o_JCk)H*o)VI=inIII3E{L|kP#3r323N|
      zB7_Ek2pS2Ym?AV}3`;JR_Hxo$({rXIG-d3(Zm#Q&q4s4ktV|H5D;04;H`$eN6%aJ4
      zK<GX1?Q9!oRLoAIxP~?j*9jf}qzbg-1|hO7y{uhw@+`e2)}Q(F?#3hNM7M@6LZU)P
      z0zK&Eiz)if2yN%IFZgJx<axH`AJQjq3%8kX+WB2&mgW^46X-{rP+QFI8<syOt>+7s
      zalgo*z+L}P*DtT2gut+0z%3IMcu(NI59Z3Ch6k+hY~87x>p6Pf3nWI7#Hhd{JSId9
      zH!DqUj#A0Pu@S{Mo@kih7G9)G;3+0K&6VDarKW__!m$l?SDly=NU0$crTqe5b=EWr
      z(orv_1!mNXy5PkcYuQ!!bAh=t`23!}Efu~X@Iv95BlmT~^0<L~r(ORU7;aVG-?F}7
      z4rUEC#_bp1>5!_%V&|2ww5hwU<Y906dv?*ypHhgQYEWaN`l9%sriz~kqKwvYl;pia
      zqVa(vi1=63fAKk&`L~8Spd~bMEL6-{&1m73a0RVF1qv}c#MsAyV_c0NLL8#w6IxXi
      zI>OBWxwH5g$y35WnGil93^Acuh1Dm}$l{>N_<`gx9v)*%p~rX@Ea_mG4VL*+(POA*
      zQLj)>uhB|x&_i#LpiPXDjuc5O&=yw7z$Wcrn|5K5i4yJM16jV&BsYuAl#Qw=gGIL5
      e$tIT&=Tjz6qE!r(qbe->3RdvaZxi_$tH5tXz<L+}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$SliderChangeListener.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel$SliderChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67df592db64408a4eadfd8869b53d76519bd6f32
      GIT binary patch
      literal 1353
      zcwUuM>rN9<5dMZ1mX;OD)eEguL@njApeP6kNCBx-G^ruM_-9*=?c%y?cDLxO_yi{Y
      zBSA<s@d0=!<D5MW7j0tN<n+wUnalUhO!oBmk6!?$v8kbju(od=n4b;*ljT&5vTM6u
      zx$3&U@QgL_&aBzNW^pyAEU!#Q*ds;T+7n)`YC08Bu>3$c!qX5XBxEMTX1npSv@gnm
      zhBiX_Vt#QToWQsoOK1zKmOnB@m@YI4W`TnjEyoI$2s4?cqepiL(VV*{Vjx`6p`ksF
      z2)cB{kRU`d(xIzhIbyr^p(MQ5X2}+Wo`PF8?H$vzq+T~hB?-btvmhGwlX>ZWU<N{&
      z_Xxw6*<Ebpx|Eqq4A*c&!*znuBnBOWND?|NClH=v+A1%B-e|Z<=sq88o;@nUlcmx+
      zZef@Q;D-bV{g)6vSG*SD7{Of)cL===o^{+qhR|LS!H#LyMA-Cv94Tbw5XQK#nY^Ml
      zp<@yT*R$R7d)X4oOY^jj`*^@9s>P3%6YkT%UqF<dkvzn#hDU_HM(;Z2@R;-XXHfc8
      z&o8cYz0C_c7Q>=`Jy;r-bS#I)(isxsEJObp9HI3<)$1+%(`bH;7u}jy78{n_vcbj!
      zoRopQGkIAyXPdq+co+K`trpU}>k&S!phQBhJbw&Y_{0!rYX?g+tV>HgJN6xV_5_`W
      zp-(sex3Lds0zEA2Qs$^$^zqI8!azO4DOZT_UCkarKf={7h#vk#YFDX4$GClh(HBY^
      z|Az3FQ&(6y$tTNaPPt5tA7kb#l1iIbTBp*UNbMY7mhpgQ5vMtH&^%JKh!tAK7Oh~L
      uR<TPtyrp$iXfx!HRygY%q_l#k%p!#?tTHCqiM25MIyOSKJXId{GvE)^8dFjL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultHSBChooserPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98f5b2af8d83fce26f76589b28eb9a2efde966dc
      GIT binary patch
      literal 9940
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultPreviewPanel$PreviewBorder.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultPreviewPanel$PreviewBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eda8457f94a81d35013c6945ced66e52072678f9
      GIT binary patch
      literal 2020
      zcwUuMYfl_i7=F&)W_LO*%eA0lTSdFjl`UGUWw8|&X;)}Lsnpg>8Fml5LzWqw8CdEi
      zMx)WB-~9t7{p1HVks3|>U`#Y7@{^3unVG_Z`-R=iocH>i_kGTL=I?)h`3=ArObs!C
      z@ilYH+%9-c%dQnFPQ!64b;t3fTbP!s=4QiRaOIXIn+v8b8$*#Y<+xSpYDfrVReqsi
      zGJAeyO;&sjDS?4j)RiE*5GDyEWVI#*L|Nc?$+11(wEZQsu_@y$tB3xEG^<KZ3dC#X
      zh7#ifDZg%cL+1rX=Z;cxk(m>gZTXi4#&SnX9bRHJC8sJg5a>0~fvk==P8#S$Ka0z$
      zfQ~uKmNz!nSEPH>Txqbgt~sY-HkM4+QhH=esPY9Sj#R-xzS&AgP5Plywms<+@NC#q
      z!EE}4lC!?y*wXfk!~4cCu&CiQ(+^p7oWfJ8o2Lb|T$w-Bk*Emtv_lm*VR_;9^Bd*|
      zn=;_wj=-@E)3W_X2Rz!gq<z~}*W9RE6|Wd>sN)=-(~uYF{9lNHQ4|EyY`dhmBDuNY
      zR&?5m3Si8@^LT*;GIGYT{p-?qnJ>`a8sFk6X7D0j(r}SE2k{KNj7tK^skzD0EC;;Z
      zc0~gdc!h;|dxdr94hM#<T`};g;x}D&&8C`_G^WUQbh0|8F{9x%GTyFA16Og4{Cd>v
      z+AXW<*ExyNPQj&H3_Qi*vO;>@z%1qjGGt-WtC05KgvzRp8wTdFAfT%{!YqN4ZJ?qd
      zptrltnbEV&=N<`ahUKK{(yG<DQ_?fHWK|%xx-QVyo^?f;??##WqO<8%<cy^*NPnC8
      zA5|CvM%lKdTWXk|Cp`^!1@cF^Mf}bjxJNk6>m28kL;{aNLz;4iUzr$m>c?7igZl9n
      z{X{maz5<jJd^*uZPdB9t^u@U9Bj<iX&&Wgc{Sd?t@SS1|aD_-9o|1JujwiSZ4C2WM
      zVVZFYA^R&%-Ol!e|A#p9{UMyC0H-gEjc}ASglFg%cot_P#C)JLJMrBijFpyJVtcjZ
      zFdSxz2aMBc+s*G_WL)F>{CGP5BQES<JU^J#mwOX@g+gy?IjdK9a5>+q5B4V2a=`t_
      zq*B|sTVd0oNc%v#YjOvri<x}aWavqSzJc@(%E<;}uIC5S%PKpwoQ<5Vdnxb%jg{}8
      z$Q|+rc<j<A3tQ~Di8I({|4p)XkN5RMT;n>6k8l?sqsDa&pWt(Riu?Es-%$FN>jQj&
      zpYbLB;QA-N!aw*rV0JZRZ|`(=qtj8+8+bD~yIm}DuHu1olTsp(-lCKYq$Nrz{{O-)
      lT;hxx_#JQKHm&zjVh3qXWDM^FJ-v(fpr%Tl_xo4|{sVur%bNfI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultPreviewPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultPreviewPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34aef0e5a6fef1a8818ab537419d99da4f74f72d
      GIT binary patch
      literal 4044
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel$SliderHandler.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel$SliderHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..872e5bc8a49ede30503953d1be71f457e4e7c212
      GIT binary patch
      literal 1333
      zcwUuMTT|0O6#kYLLc;<P6fYoDL~RQaz<PzsrCcnQi^Zv<Z=qcwOiY|41s?eu{s<qK
      z;WFxsKfoX5cy_}GoxySXkmQ`*v)}p7Ip5~j@9#eWjAKbd6GLvt+O_u0V9$29%!=oD
      zer4P90^ytU;-gh_!qU=QK3Z9~T;U9DICfR|uPnFf2wy{-!H^K9V-djG=8mX@8d?~V
      z7lFmDa6>b{O);Wq2cd9<&(IQX+riKn!+5bl7L#;%%69GWB||pV@ac4!A)fcDA_0bW
      z4h^k3V(8>Zz+i}_WI$)pcExJ#)28s>TAPkw=qh>@%PCvFE&a2_xGaKUx=|AKjiiEj
      z5L%&#dQ@c?tS{?g2N$GGMI>+ow=~>jFdIzH(ThGxS^Hf5o0EZkkcj;p14xorVz^ev
      zVL75asbdgB8tyW5U$V_{5BC{bw?tUBoSIPmEJ)-OM_M5-NpF~AM0s=48|5$+r9gp1
      zlyuq{=a|4Fh91Jp%gQ!{LmIO^cZCM%FpQ<r|L*-ICnhyKX6R6&wf4d&L`N1+<@le`
      zL{o)yxeYHcrGe%$(g-+54x~vV5Mi_-sw#?F70vTJrBWfI_6+=I&<xF$2!j<E^bN1(
      zSHz+%#n*fJct<55^|Ij7J<B^*5D1cJd!6EtB<;uOX$CV4c?IaN&_quHI<2;ml_g)U
      z=$YYT@XRSX4pqz*dbdyvFpDmFb7kx3##Q=~YS43r@D*{&0ldo`fgj=e7sL-E^Y#hu
      z7{-3&JdjT7{z2qr$UDeMJARCZ@_T}@AIQG%JH?Z4c-{oL7Nfm$I{j1tuuLRgQ{okp
      u%o+`F9jkbQGD?bOGNN)uQ(DuQA)*r`*jdb}V)F`d9t)}<>NqKI5%>e`Syoj5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel$SpinnerHandler.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel$SpinnerHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fcc409089523f69f7488ad6b85ecb33140249eaa
      GIT binary patch
      literal 1517
      zcwUuM+fvg|6kUg=goXf>n-_{8BDCdF(2B~XAmvspmjSJpx3oRbU`UxH1s?egKZ6-A
      zqs}-!`#Zin?vqrYOlO=v<YZ@^owe8AStq~#eER`l9Gf!g7!rHhp>`azk92c4mMa=X
      zD_1BMZEnRD_>NXGoUP^gq=#&3CO7)G4|LPy){1844Q|Ph7=nT$W@yB)k=^4tM@BtE
      z?@eZY$W14fEKm+l>$by*f}!3i=yv}Y!+5$z8B_G~v~KE7f*~HR`Rz!CK}r_$JOG9!
      z6*3wW_|T#vfFOe}ED~DMy2;l|`&n+i)v^X>XiXP$nvu~gT|AdTNi@MQSF4CylcbJR
      z+tD2E4JpsiSJ~Ii5iW|Dx(MJN9>}=Q5Ua7eiY|nxWa%J(Rg-~z5{wU3^q`laVXG{W
      zp|e8DY8jtW(1(5*j~Uvl?W=f#0pi)^PDV3IRG>W^N#AzMl#FnNiM*LB7(`UX5Qd3C
      zH~%rvw@C?+qbg#q$mMb|0gkJ9>Voq(z_^O%qSq$d!@On{+IgYkC0<c?Brqvvw#^L^
      zq!-OK@`k}MR+d|JuvOlmR_Hr6yRB$Pj+dff5;MYC<W(u0iewrwhj|&V8HQ^iSCPa5
      z4a(+@x54vn7DJool<ShN!5K}f=RX#rd0N72EXCm8wKz9PW7ZwCKj)Dv+r^TV<4d|Q
      zdslTgjfyJdrj$EhL$hs8N20mX;pnBq=A+9G77U6rNB^NZx&lxLZKNnp&jL}RL+4PV
      zmuNn9bMDYuPdUH`w9=}&v4S?V)19FMon?mKkSG(dqi0ahaQ6$OQ!nhkz@wiSyg+2e
      z14gcZga?dW0TWUv7(DI{HXNUHNGB71u`iwDnYdqI;yWfkcK9zb{S~uy5TK7Xucbyw
      z8lcgdB~f{Vz%hay%%Xrb?BN|g(`vxNzS~a1lU!~`M2lFWhC+CcWvmeE2tB7L@)1WI
      cs}xDZG=Mi0`Ds7x)?UN9I~Mw$<n9gNFTNs%V*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultRGBChooserPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d217335d722e86636abda53e793f0f3a801c1d4
      GIT binary patch
      literal 5019
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainPanelLayout.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainPanelLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..156c2e8ca603473b7f3a9754a49b11154f7e2e19
      GIT binary patch
      literal 2444
      zcwVJd?Qc_69DeR;dv9AVFM|~vGQfeljhD)V0v&9~#!IyWWH<x_de`2y7jEw@x3_Hg
      z#V;f#d^AyGVpL2FCME=uWf%?nVj{%P{ypk*ZZGZF>IdV8-t#-Z^Lu}ubNa_$zbpdS
      z2U~+saQudG+n7t&XDz3kF1ohs6)Ub=H@)<@Ib$?ze{$CFi<Pma@|@wA_Ra~zasnxD
      z+;JPehNyydGEUky80GBr4YNqCs$gTFHD>*E({#dcjI!w|P>)!S<&P+c^bbrah>p1>
      zGl>XR>Cg~Yur_Zw=9xxy+Vn0M)3&K#ecmk^_LSjSavv(Ae#NRQ7|;LzE{2)HD3zL<
      zF}GTC9n<j@4D{#QtxftKGYscjZM6)CgEkza8kD-igJ(sWD(LRy%YN-Juj8{UIiXGc
      zOD#h+vn0`jS2b*Anw94|wxCzR>ay8xp)O+$T<Mfo#@eQ1J6=<epij=Jo6>$m|3KTk
      zsT|g@V`<89t7<xR%XN}?9dBxQ<K=q73_AKTKyonlInSIiJ<lvnS|4*p8<(bN1shJF
      z54&{i#vXE{Vp`=2Ay9Hjq_I!KTME{+M>}Eo6&*u(n=Gmta|&Ypx!gcbhB%-jBSXYy
      zt&(4nZ64BbSeBx(6j?z6!#Jwp2uHuHQynAHHR8K9X>?4-J8~bj%^6=dJEmhCCpa(~
      zA9ov0i38J^nYl>;wPtt$Z@N3d$BHBk=#lCO2>q=PgRT__u!b6k__A+%bUdD`x%7<Q
      z36=zBaypz~(szBsz9@&maas)FnN|0;xq|I4vu-K3yQ;jg)kd}H(gbm^Ge<jBmxO{3
      zbzA~NZK%EALOYlo^%Wf-1*mzlYN@%V<9a}aY1jANYLd_z@`acV!IpP!F2Fu|Cs?{W
      zPbN9(HoT&F(vpwH)_;8y_DW|3dd^`VW42MRn{^F06b$|M_l3k-_QLR<kyiZ0`2MQ=
      z@ulM~K`G5u;Tju!g5+Zg0(xLXr5ML*%6iiPYp|9p?-aU1=TZJ5Qn%dkY~Z-Pc^EoM
      zX+1Us!8k6Y=)v2FP0e7+L;5Cp_I%d@UYX!$>zUn)Ptli+Ml!KTMvY{&NG2Z1Bp%>k
      zPc)U-ok|QXVCSTihn^w&IHd*RJO+Qp-i(%thui&yO#E&_p~vF=zh(4;G)ZZtn7wBn
      z*+NF;GTKz{PsOP&$b3w5I1H^mz%H3B6-%ivV!lYVfa9rHJ5j8a==b(auCYgmONfcf
      zNQx`y5?9eJs1?_-SrpJKrm;hmkQOEmiWwXdWt<WfT%i7%xQScB#$Dmyo~Yq7aSNXd
      z506A0PpNw*8o{h<SS4rIn)P#>#Hj%B-*6f^R+7Xb-o<;wqzg}w#{{B8VIF6&hgO^L
      z7-uP|*o=obM@d63e!}~d;zV);=P4!dDUOAbf=OHmiEtq3wF41835wg;JX}Hq3BM%X
      z2bc;&WN9O<)ImaV@zJt4_m;#_TXEE|Nk!i7kVdQ6jK;Ha<Y;6>Qc3cM2o4e?RT3r}
      z>xl)JrndCNBxpx_<tj-ta#vL(#DwopNx-c7EBY?=sN{$ITrO-W$TcfJR|~y`Cn&TF
      z&9W?rFCfI1h>EX>^w(G?z9GWjVw?C5ed0a_#rN1x{iyf>C&U9xi62qqDw{jcIkW6m
      zbLFr(0TV?|ToA7!N|YkR@@jx;lxX!5OOs8n<{#4e0KpS{tR&JZeP)9C%BXNn2BWfY
      H6Y+llAf_QK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainSwatchPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainSwatchPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..717173ea7a90dc74738fb65270e7ee9e1c7dcef5
      GIT binary patch
      literal 7923
      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
      M?*PI(co*S+1FIvZ6aWAK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MouseHandler.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$MouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45720185a819cef7008a6c308811c51abe56aaf9
      GIT binary patch
      literal 1620
      zcwVhkT~pIg5Ir{(LPL<smqHa$QQJZ(U=g8Ez(S=CU=@bZ$4h#JFd<=*6#N_h6lbuG
      zJ~%%6qa61pWk3d;X~&18d$)Uc&pErBU%$Wq05FMHDinsr1AfduX1o*A-pd${<+#Sa
      z<9Nc&tcVZ1YWZ6y+&A_Mp|i|wVU27!RZpyOyJ87fMT8+PlVtdbpApBx_A^1ia)lrH
      z!ewal_f2nPf+4%!c(EMapEqsO&oj&<nn{q{VTcr*iim=tLq{vxG_;^ohl(2vEeRRW
      zwQkyCvwFBI+-<&V35M=<$KciucTIV&J0p?`!*UZi{!)!t>4)-Mc7^AO3d2yy?Xrlg
      z(j*ER`f*#uErx+>!*mQ_kRiG!{4J;I8icnukqpyXoPfUGJrIVUQ*nnO-voou71$Eb
      zkdAv8CQ+#1yFkd2bU)DX@XY;QLmZEEJjN4-9&!|9rK01O9nbVl$CeOFrQ|vHARre-
      z5~C_o3{#Ec)G>xML#HbYQl-o-;rpaTv6-g54RTx{p3{)QqzW46mH&}X#}uB@{P9X9
      zpuX+AsfsGW?MYk~MNUBy(>k7EhN1sV%`IV3S4qnansJL^qTcf>kzH{k*MV8kP|Pum
      zHF8hKyhI-JXxxH7M94sb%<EW`%cZ*Fh?}<0z=%@(A0y7tdL;E=SZbzE7du4748nC;
      zJ_apZi=ru4dFa|?<MJXcXvwyPTd+7SDDAv{aepyP-;x&kjIvlveo)9#=uy#5{wP^l
      zI!lk18vR1Auh2gSF<ta-qZlX?h>@*J8yaq+TV_KKdg~cJQT_=1PLI~m_Y?7rF*5Gb
      zbH9d>&D1HhQzX(gj7zhIZ2B9XD+mt@=fwskIAs>?${hNX9EO#7q?H9^m3#mo6&9%j
      lkk%5G2|_#4c!2_C=_9f$SS2_Lib39&SPMXt(A4V^@CT8I$in~t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentPanelLayout.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentPanelLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11a2bad17ae484066db9fa4df2585cc1964841af
      GIT binary patch
      literal 2178
      zcwVhkOK%%h6#nk@cqTE^CVe=q+oS|YTRTZ>8i?B@O$u=cm^x{QLmrfeC-zM|l|2)U
      z$4z0~Kf<a@K&nzyq^_WmDqdp4ia$_52m}jQ0O!sOwiBBL5+luhoO@p1ch9+x{=EMH
      zzy)k*;0!Z2jGM--WOduLHj@RrY&(ULZC8bpoDmyFt?cHu4YyEA`@#jo66JwKQ4p5v
      zt+U3vcFonGFmy{#$+AIyuC3n?1(K=^J)YFqc9Xv9oM9Q8!eLM^o0jQLF@)lYWd<c}
      z7exdiJfTBF2SZoZw8VU^vM!t@W4$aG4rlFxQC>D2Q|<$y;+D)R!)*5dz%fBVjAGH>
      zr0vR<ZIJ>)BA#u4%efB4n8?<F)fFc^AeK?_l5Me|vjV9y9BpSyh|57-%QXl)ada%+
      ztQm+YN(3>S)Nq2rw4UqeMIXa~P0@f*mA(?!+r^c>p48Egrx-M{$(ip_`aSVPLwUxm
      z2&-z^mZ$uTjscuz=p^NgRTa|tk!E#YIMIo-NN9)?uzg251~Ehz@7hEL%S3PvNe$=s
      zq6zZT@vO|On}RJkVnaBND9RM2_Yob>Nk>XqY`C2m#YGLNW-s-`bzG8);cc_%mZavm
      zjtMDIOTyeNxiW=G9aFeMxG2SGyJi&$mln^^C$ClAG90fKj<&lJaxJfxETU~mCVMlW
      z>QD<&(zxb0YXoGAAnpm#pq`jA$+|*aQ>j(_67}zDuzi)ZzdwdK9rL(KceeEppABab
      zEMQT?YYYb)<vVA%B^@~|(Unz<Ta+%blE}y#Sk|%P5$i}6rDRRV8y>Oiw(HuJ2yy+U
      z?C7@wGomu;h>Cqvv~=0tYH#kTNY1V~1u<*Njz9IU4SimkGw2zM2uPQWYE@J<6d6YT
      z`{O`Vw>%HjBt!xIVR}GS`styfT_>%QG&7pRgZB{mh!z~Wr$j>j0S?ew_Z4suT{Kfk
      z<4|CHh5nF~?Kiyd8TR{!fuUR-#u3jMl?tL{LH&wjfwRXHLZf+gXa~pVXgIY(!_)KU
      z?&3^J38mCKxHKG9M|Lng9*%`~L4pA(AcYH2B^JJm=jAZAgUkMQET2+tt1PMxKY0JI
      z-A0Zha^#;P%s)efKSUSbMU+3nN&Yzo_!mg<FEPx&LYjY#Ig+pNZ#+D&`1#fGtl|Z{
      z=&_o^G}7d~3mMGdCBhx0{Vax{(3>-im&rDa<3w17WRjy-aW%j_PIg=}H%M@^AMRuF
      zJ1=sNuThVz29cTU2;UD=C_)FF6+@GuDaqWpBAFZyhf>-doQ;K}n#Y|QQy(JQ8&ip|
      zk8y3XPp-!DQ@1r1)nZ|y>f28+y4D+0h}XOvU(ff+>5R8o&ELcIMwTg=AAbzazlXwq
      zAU=OYH~$Ge{Acv@UvQfLiX{IH7fCkFe@Bl0fjrF;)uNwo9aS+v#j!4*J(?Bd<#R`T
      zMyNX_vkH~plE-$K>g$BZtV>^qAGi`fa=uFgxmH*;<|<wTaZ`@{~m>!{<GHgVF#Z
      K9?b;^bo>o?Chb=M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentSwatchPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentSwatchPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..313df8e8da9a5409a8cb1eacdbe648cd8947a21c
      GIT binary patch
      literal 2954
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..897baa18b40acdcf2d8a591c8cd00a4b3d73fa38
      GIT binary patch
      literal 1303
      zcwVJcT~pIg5Iwg|8ybQXgsOarf?A?b#ZN3CQb39oQ5YD<mxlJXiKYoAsdfBIzNo{;
      zjL!H2{85g3lQ=>h9~>XDd+z4mb9eV_^8Lq`Zvbv!T}F&y{+0e#f0y%Grd`if9LsSl
      zhU0kL%`Neo-n9J9mhM-KLKxi8ZElT+p#aN}7<!L$tOap~RE1mCj#>2$23BNH#CnyR
      zb;D<f*Y!OH*={zTJ1s9n1;-+koHcFJpQkO^iERd{;8eMSIJ#AILQR38M@0fjfljNC
      zL)5RLL!dJ_C*v%`DUnf5Z~3``C`rWt1{o4NtHrHlhIHxV>%2k~!zxB_o}tU*{-R!a
      zU3Z<PU8PI1?Yl)@-6hlJ>&?b4cenIii&GOyPDQu2b=MT@C@A@cNkuJ`{;$h<%DK+{
      z4VTxr>+<TR`JTu#*@@q&Etw5&d!}ROML({nNQIr5P@y0x3cRY~8YW2?Vk+8Hr6-Cz
      zMiB<{GIEimCy7%uGdE>SQ}Jy_RNO+6inVyn7rXALxGMq)SEwx_Gb-+jNZfb!#Clf6
      zoLDD!9p85v3a0Qt2)satvc;n4aMFloCD96pC}~DX_xzDE6+%S?>Z~~KhU1w&CCtz#
      zxZ35TUWySjb&I+fgosnwbee93ub4u$k-v&ECAb*WqHS}xVCkO6JsBm2>3<iPq4Su;
      z(kMw3rw=m$Nz6APNlbU(J0hQoyb^hcZ-UNs5qgOjAz)ZL!YM7S93UOoUQIecpY|D<
      zLkxYQ4Ka+89SA6@MDmR2wvfgS`oS@T8ZOWqH6+7DjFD#;$EE0^4?&8+Q*9rY>FG5D
      zkg8<+jPfkGEInxv&HjqcX@}6(zhdge(BwX@m&x2N50bqnV7`2W`HyX>?ID9VG_fv?
      zi;o2~@tC|wO$)D&Qp;cl59tJ>y<=D;6r&R(C}0V3`Z+CQg<2)y5tSrvSPg6uYvjde
      K!HD;X)bSHBHYp(h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel.class b/libjava/classpath/lib/javax/swing/colorchooser/DefaultSwatchChooserPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b0537db801f2d3fa8306a68001320a2dcca763d
      GIT binary patch
      literal 3119
      zcwVJe-%}G;6#i~*AR$Jgpj4z#t-nYDrXZq%KdM0xOwbBNX{+r`awTgwyXo!*^r3y}
      zYajaJj1PV5Tl><^XqYK8{R8?(b$agZCTt*eYRXLZ+<W$X=brPObI<bE-+%lGU;-~9
      z2r*1P6Px0B#@^D5jZD$hO{-WoO<P)-Ir&u7bZ2EtIK^_-Q{ESb)FTML4R^C(JC-Oq
      zS)~l(7!Fi~X51ILbR5YrmwWfKPv^;lr*`+V3<oV)l!nuEJKu@h2d<A+$MK3;v*jIO
      zlyqq^jJSR?V#~?MO)}2p)$5#QJJOIA*>_*n49&UDz(<p74B@O<k}+^3;y8dfLn5ac
      za=BJ1NNZITbPBaEXBLINCM-?ueP!4wYc|7F2WcoaYSof(q_3qU3N=kH`P&HIW4QJ1
      zeqGkxRZhGxYfcOUNW{Q!JdPo}&(LE_$9u&vG`dTar^^dNY!F4swFpKi>tFy&uG<)f
      zk%-`A=g|d97sCl8dMLWnade?Og0s|X9k|`s6EU3e94F(5AR0k>Z!$Sika`s33=t1K
      z6GI9a)c_wc9QB#e1=+4R7C~H2CK+yY5MMsfo-w-6Q|g$D43|bbX`SSn%Is1cJ%}j=
      zuf#C}YN$h^RBGvThLfXjzY57U#nhDu=q?;>THZ3PlC&BPbWJtTFpfuYi*8PqoTwy*
      zF&D>e%+npBV~Oa%Nm;W}H4QSH4X}8x@JtpRm&H5(r^+qOz2L=mSA~*eNVN?j*-okM
      z#9fBNfjM`_)JuxABP~T)YTVcUmg&_n?$T8w?E|^(MWC?qPu$iF&9EJz>#bvUq_qK-
      zf|J-S4#UGZ9;unsW66rSDR1h!npB^~v5HTrd5ewlG4vKs480rDnbYj5E?z8)3eBz~
      zqsjd(9>rG-QIC2_ldYdnD;0{`hb|UPV;9;uOKE34<D9TIWQ%cEl?b3&GY}}vf+ebD
      zt!TR$a%{v=0)@mj$VnS3FZxx})K|6Ys(en~GVS~N_GX~o!Nkb9Y*5r5#1LCCYgSRt
      zYihKQ{A(MYS3YQ3FB)`#vbwNsX-7Z>xZXia2Syfsb6a+aJ+qQ}b>EnyF!C*5zQmsK
      z-vkA8G%@JX(mxjJM^hK-kA|cxX{5MMs1G689i-I-l1$mAw$b}LEkZa%&lpMYUW9o9
      zhiM=8jL?UElGG+m2WfXtzg=**Qt)E|AoGD?9BlyEZQ6B_?$^`~2G+N6td7AQ4Abg^
      zoG<hA>I5x5e1lW8JVVQKZ!o%p)Oz38HqI}Ta$=n#zwidrsn=xm8q;-LCNb(Qucmi!
      zjbJzG_&BXB`fk>d9oxYIDHlmOHeScl!!d<W3;*Dm@L)Kt_JiRuB~pXoI`R*9Q(RW*
      z@Y6WJ&!V57!w^s6EKgyAr!mXNvB1yc0ngwupFo*U!s1i-mS4p8d>TLS%XrDJ;3qzV
      zpZQh%!mqhhO?h<qRQ2N(opO)J8p4mbPpc4SQN<^CK*fDYpZ*onh3P%b3cnVQ$cE~M
      zBPm8SsmG~Q9c!udHr97zA5iD;d35mw#P}k5`4Z)D*NtJo!}~F))#v!aZIQ=#;-50^
      zw+!$5^0z%TUk%ipH=9ME;6ulJXo&4aJ_#U0O=R&uAj@r$G<1CAb)S@OMZ?p*Ep8DF
      zb|CfcX6oH2Lvv4khOd2J(<DP}qxdf1Bh>T}f{u!dG2ER=1q3Du^9^b3aMZo84&Bc)
      VBx@umNN&2G7`AA?K=L`F{{VLd4mAJ(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/AncestorEvent.class b/libjava/classpath/lib/javax/swing/event/AncestorEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f46cc76c02f190d90dc2f91726afcf2dbd15aeb
      GIT binary patch
      literal 1099
      zcwU84+int36kUgFrBhler3JAU>jehO#Kbp^2?10Pi=l{#FXli`>NIr5%nYr5g^6FH
      ziNwSQUrqc7Kf_1kJ_kA(n=wAjIeYK3*4nrE@%!sH0C!*{5n<Rm=BNCv;hve+ks(fn
      z<ry_=BwWvSn$k-m#*mR9gP+mci@pjothmB4`FJ24*R-wYtp)>YGc46@%k{YB4fuE>
      z;_rWcul9C7{9;Jg_Up}qez*6k)@U>(x)r557%BNLz2?*IpxKb|NRZ)2qYTTgJ#j{&
      zZlAodEmg@zC)h*Vf4Rr7z~{X%WIKKnRHDaCOE`o`pCg`eN2w+5o0jQ4U}%*7rP~UV
      z3X7Eo46(X>C{l=`pdp7V47r)EG3KP&9UhAjDV7J9z;IPV2CLHA(r_7BY3*oOLzepP
      zkmUa4WGI|IAC3jXYR4YY0ywRK{CP0uy*6E9b^fzgYCSQVBtyhJWLP{BUd^9Yu2c@6
      zS0(^EADKq6z&;9dZs<l*2P)}9Q+4oHNmWV04)rWookRg~B*;t3-vJBABZWoZ*T`QA
      z_-XQ&1O5tqG)!gFDAm2D?igWmSf_J?ymyo>PWQTADSkm-uS`+Y_omp?^RX$mKPloh
      zI&%v4h)Q})X<C$^O|d7~rRd$61g_%-psbsenknlRp(DzYWki)F3z21%P@b1z&@J(C
      r{WCT{`biTi*i%Wg8DO4-K@TNwUnIW_C0B4egj~Ex9)^<l6sr0MhvMA3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/AncestorListener.class b/libjava/classpath/lib/javax/swing/event/AncestorListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9ca69323a332bb6119b3178fcb8759e96f7fc1d
      GIT binary patch
      literal 275
      zcwRg8Z`VEs1_nb0UUmj1Mh2y<#InQ+{o?Y>ymbB4vedj1eaF1y)Z&u-BA?9SlGMD^
      zB6bEAMg{?pI{lnPpep~QtkmQZb_O;^263=xX-Q^|zAH#COba6eZz9wb$CQ-R6h;OW
      z4IkV#f%RHzhA}em!?XpZ=H{1yG{Oz?h48t8^Gl18Q{6IiQW+UU(cP*CvIOWbMh0de
      eW(9hb8R&R+1`Y<0Cpe)r7l;PRa|1~x1|9&+G)tra
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/CaretEvent.class b/libjava/classpath/lib/javax/swing/event/CaretEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5396a896b99deab2d3953f9967ef88c977cbd6d4
      GIT binary patch
      literal 400
      zcwT)_!AiqG5Ph4(L}N9!T2CT)YZY92QmFJ&6@;h<rT0x->eiURW>ftwPl5+OpdTg9
      zZUqm5yRiFa=FOYOEWSQI0SwTM;4$pY#9X}c`bCvfF6Xi|d@Qsy7Zyec7`m3h8>0&D
      zlDFAR=7u3WQ>8K^BJ@&6DFjI@tHb_;AsAN=GKP<}7FG~4B&jOpP4k>deJ`>?GIY`^
      z7sW(qW#gY@U>;S?u%G^CZAb>{s?oVq`7@uYQ)$jC^6B^bR}2w_*Frxr#CNXkQrTI_
      zui~*42@XIVu*WAvw&{&18o{Frgoj7(SbZbpA*MHW*%M-(Vx7?Ll7$vFoJxpIBw)11
      QEwo|x*|9&VZaa;gZ!-H>t^fc4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/CaretListener.class b/libjava/classpath/lib/javax/swing/event/CaretListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73e6ddc5e9eb342f5a2c247ef53e4fb0f0ad6b0e
      GIT binary patch
      literal 214
      zcwRg8Z`VEs1_nb0ZgvJHMh5w;#InQ+{o?Y>ymbB4vedj1edolY)DoY};*!+7)FO5U
      z7DfgEkRtt@M4%G?q^#8B5_SeQMh0=PXlY4ij=n2MBTNe;19vjWh|q$R#FA7-21N}Y
      z9F~B!S!;$dGH?awmlh?bx@G17H3*@&Ko6uDXdNR1GZ3=^-OdPf5<3G2h{eDOB$*hv
      E0N<`V3;+NC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/CellEditorListener.class b/libjava/classpath/lib/javax/swing/event/CellEditorListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a7e3fa75425f8a264532b8b26e67636a10963fe
      GIT binary patch
      literal 254
      zcwTLfy$ZrW5QOLai$+m9d$G{Q!`d>$Dqtbl$7In9M-q}t^w}(Y03S-+3tDNhEDZC_
      z&OTrF2Y?Mm4q5_>B&@@mEUzj(OR6a~(j%??SedK{RB0%s!a+x1YMoMt?AxCbij0Gv
      zz^qX#qqOub{Y3;O#2K9Gg=s{ZVuATG_;c;TiPW&$)lp#l!44+Nb4$60tSTbfDNTIt
      dx7^xhaub0zPnUmdaa#v{*wzEPS$D0D;T!C5M$Z5M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/ChangeEvent.class b/libjava/classpath/lib/javax/swing/event/ChangeEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1abba568fa0cfd6eebcf80411019e372f28a898
      GIT binary patch
      literal 362
      zcwT)@O-sW-5PcJ4Qe(BXpf?e3et?VTN-GpS1wAOeZ{pH!i5o~ZwSTK8!9#yQe^haH
      z>p>8lf#J=}dylu?e60Z7q8B3|oX+H2E=2vI%|xiVGFFVH(oEEY!!bg_v7?B_>O%PA
      zb2d}CB}8}HXggrSMd~R9>%{ikzZ?_7QTe74>|n2rT||UVs*QST-ZNFb%B)a?URvg|
      z7|Tk#{pT3ksjdlU>A%_foS-h7D)%;j0uYiH|9#ZXv-?YV<H$G%aWq%N&G~r7ybTa=
      n1JTv>Ct6EJ0TP~xzYdvsk9|fbTNc_l@GcP!(eYkguQ~b#2`f{I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/ChangeListener.class b/libjava/classpath/lib/javax/swing/event/ChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f69ff18e38a2f0336d5ca2917797c9350e77449
      GIT binary patch
      literal 218
      zcwRg8Z`VEs1_nb0ZgvJHMh1nf#InQ+{o?Y>ymbB4vedj1edmnCy!2F`%;J*NywoCg
      z1{OvJ0gx*F9H6+qe^ORzatS*F8zX}_ShTbxGe_SQq!Xrvk%6bUB(WqFVo(YrgOY|1
      zE^ELVtu@0K8MuP;ON)|I-7<4h85x989ia!(4z!Vxff<Ndf$nDnx{95F1H@wB1d>b)
      FTmb(_JZ=C0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/DocumentEvent$ElementChange.class b/libjava/classpath/lib/javax/swing/event/DocumentEvent$ElementChange.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40efd183841d42c5fa8e4da9fa1b078a04e00f5d
      GIT binary patch
      literal 388
      zcwU8&F;BxV5QX2BlC+_Pv@?i>AsN78W<sGzkt!j<$Q0sJn#y&g#0~jv4Ez9oRD~UN
      zXczF{=V#w{*1MnG*EfKB%zX?9x9hCUI?;TVx)9v5HsYzuw;Ov{ICry9>`b!CbiqD`
      zgwP>ESub8b)|?x{s9=+7$sOS&ic>;hFZLwiGK!an-x%(U*uOpy=C(Fjl}gsEUwKot
      zED2Xp{Qegd9zc&$IwW|jwsp?WrDEIkD8-%YM3|&nbDgNHX}Iwb60ZM=PnaGJz$4g*
      kaBFBsaS9J^BtAyHjuG^F<`e@=`hALXs{tH)ftfe{1)jWU4*&oF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/DocumentEvent$EventType.class b/libjava/classpath/lib/javax/swing/event/DocumentEvent$EventType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..456d077abf8559df858450f9aedeb0ec40107f5a
      GIT binary patch
      literal 794
      zcwUWBYikoh6g`vIZq~8YXlvsuRa?!b(8bR!g2Yq{F~uYV`bF5RgKpXG*4<4X|Ei*;
      zpx_ViM~U~|gceaymYq3g=G=21^W*2&?*N{nWuc(p?)iuQv6mf%@q5o4nmG4fB*A2#
      zK!@3itizK7W1*yQjpbhClXz#mXM$XzvfUeW`a^}a?tgo2P*}h7dS}!j(0=v2_mV&<
      zryGS@_cF&IPsxka_GS=;ahN|-C^p>@iQCCLW25YViqg1_8aZvwBn!<yJ={^1q&GFn
      zsMxTW+|sa^*i3F~*r+JXcf;89Ci`QP4*hW?1tozWjr=rZE{6_^xX)QNhc0VW;cx>V
      z!i;LolW9&$*L45ZjWb9lX<)WOvHxvG>nvB$+i`5tcI0Q7$t*M#8vhusLiJ+2^tv=B
      zdgT)8+%KUzw<^0Wdx1-)y-55DH0iGrdm~Z6>Nlv}+T1zjKjVhr1;LAgmju^8iOn5a
      zYm^AsC7ZWcLVy(vaaV5nr?;8eZxQ1&r*)2dt+g{WE<NTXbxckNRN6<0U!1D(KuTuB
      sMJxIq;?d006AqMHU(h(cu&c=7iP-3=U}jUG@_1dvW3lA$CvZ{!1)pq~ApigX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/DocumentEvent.class b/libjava/classpath/lib/javax/swing/event/DocumentEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53ef89f83a69604201547c1a91e2b2abb8821114
      GIT binary patch
      literal 554
      zcwUu}&rZTX5XQej>016M)_?I}ym)92+IaSem=H-g=nK?lD3DqVTM%E30}tRs8E3bk
      zK@aF2=9}Go``g)>_mBAkz%@=3N`&)aG>vAVejQ{<$WzYp@OBhWo+W9Sox(PuVN78f
      ziKY8A<Txj&g!9L@7baZ#L1zQx!bW4iA-Hn0+v{l-%9bCri<1s#N!}+^C12eooc&<u
      zJo`p3S<SxGC3W2Uzpbs5t@95R7R~}D<jTWnGLHFfkP6yc^IjPiq1Mha9yilSYt{;$
      zbmCu+5bA4tg(E_+5wYr|eEutU2+~WKRhDs;;lPYdVaKYw)C#IrYp9E}gk2l=&=B<`
      O+ZW1#<Kj^C7^k0+Q=K3H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/DocumentListener.class b/libjava/classpath/lib/javax/swing/event/DocumentListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..88438b9613c24d55e83ff2d14f12ed673901c641
      GIT binary patch
      literal 271
      zcwTi+y9&ZU5S;TB9|_oqy;x}DVQs5c0SnPS#zjx!MUu<uw^{fBew4T;3L;qSdxn|4
      zKdv_bV+0;b0=+|Iql?VXO7A3D(ne0xxHxhXs@#yK%tJ+>?Qk-Q7`50OC^jBy0^QfP
      zFe;HV`$Z85;yq(&yE<(nLjwIl_+RP8oeb9kzS22m=EL$cI;NIBV{@4nSxj@4@X-17
      fIdTGQN}$Y9<tNK*+(RAifyTQwUFCa=a|!+vLApu$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/EventListenerList.class b/libjava/classpath/lib/javax/swing/event/EventListenerList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d51511eefccd3eb6fe06008fc5613833006aa5c8
      GIT binary patch
      literal 4510
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/HyperlinkEvent$EventType.class b/libjava/classpath/lib/javax/swing/event/HyperlinkEvent$EventType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acfdd0cdc2d9ab1eef468df020cecc53930207a2
      GIT binary patch
      literal 802
      zcwUWBe@hfm6g_W$&Fu8jTGL#$?1$R!6b(UCpa{!4($b=o!%~0Ft`8lXW@Bcw`c_4S
      zP|yeHLxuO=T@)!WhI#Lv_s%`{-1~n2`SA<DBe)g{3hqI86n^xw4^gt`nIn_r-t$lI
      zO&UkZTc6>QtO1=_C@EZFz88nY-tHfmL9Sr=TY>+|-%xna{eQJpg^K^W6L4O&)ebtn
      zmc*r;E){CsvqC$0N_v!FuMJ2k%GVW&jb@L??cuJmQFcJiG_ImXs%vA)bmMQ0X0J-r
      zYZ_%#Y*-AgYgi0y26GxVDhiX`C^1`y@A@VU!hS4<hJ!Hfg=xfC4jmM6ldEb@y`@ow
      z!wu|58F|fzqncE%(fn68&d%^K9hl9C<)_Zi=^^tKbSFtn+K$64Gns`3Rk>)wG|kf)
      z(<{@Y=(S6zbH^0bxmnq5*$Zr%_9Ed+(8Rw?=%r)<%Riys)FzHG`4v+VPfI)_@vOx4
      zFCsHfYmEv4Pe|q|X7LP5c#H+P<)2<>EWb&J&m8v{H{AQ*v3RC2A*EZS)Fx{il0P$I
      x<F;7lh)pZ{?%?iN(-RDo-EUa@d@5Iw!xti>M})CVf$Z_Rj1`gO^m}Ncegb=mnb80M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/HyperlinkEvent.class b/libjava/classpath/lib/javax/swing/event/HyperlinkEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c6d30c902f12631344b5342a623868a16f52b7ff
      GIT binary patch
      literal 1782
      zcwV(tOHb5L6#ni^XGUhq8^pn?fQU2YQQw+K*Z@Whkwjp&T80}amJVs}AVz%cT)1%Q
      z(uF@j6DK4t`~m(A|A+D1+ftcf6isx|d(OQ*-}%0C?n(Rg`{yqJF5*T835J0Ud)wZz
      zf=7<GX7O$A3G4RbE$+LH_i$EjGtd}%Wt3GFj%%sIg_R9n77QH$_Z{0UaX)Y>-tycG
      z1G~e}I$iMsVSA!vyH%e0wi|RVzF(hY&;;dX7@I$eby%%Sbas;=S@m6pHU+XgF0AEy
      z^K_hB<w4nZwggc#bcL^7n=&p6pAu6@hP!-|5;64GQ3}2ztl97#g{3DQ&k<7$3xxw&
      z!Xj_}jn;aJ#S&FKU0LN>FdWy>g+7KS|CHiz(Z8-!%4wf>Jbt&jxx)P=d&T9lZ<R9L
      zpiTEk`{+;;>rTKhbfhrZyr5F`%e?*uqQV&L|6FddltmH)vblpar%l+3r50-cSshvA
      zq<2n-j#lZN*U^S{=@oT!pp)i#jf+K9&g}l+7=_|*M~4ukjG$56fdSR&U0eynL_?+{
      z=e~{bGY4n9XP={f%Cn*5TaLWC?)roiGM=Q&c^>ztT{{SPkij(u^UtL)w8TCJsa;9>
      zfTYk*Pnvca+9hy|9_q02slUonca^2ylFd+T7rJTfp<Riv8riHlIyTPO9(q5j*c0-M
      zEN~w!cz`^4W*A9~CjsRdI7NA+Cpi<!ldMU_aXR9#i6cceCpq$3Gm=fRo+7ythQ=hh
      zm?RgI<RTL3$>KCc*B8;frkFHY!yMhi8FQ?LA#=QjVKcAQFk<FYH57jG_p8`lVtq>a
      zpHa5w=*0_Sf2s6Lg}GuqMy$t(^%$`pBhn*1+3plYni!3gS!5+LWqv~8Lo6Y!4qquc
      zJq(EG=o^jkCg9;l@SCRK2?c5d4>f|{HU(dxpVMLRNF(@N6L12T)Owk2Q{FJcReG)?
      F{{!{-f*=3@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/HyperlinkListener.class b/libjava/classpath/lib/javax/swing/event/HyperlinkListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c988af764e9c9039d89704268dd2fedffa3880f
      GIT binary patch
      literal 230
      zcwRg8Z`VEs1_nb0ZgvJHMh4}q#InQ+{o?Y>ymbB4vedj1eUHk5)S{fsylkJ$;*!+7
      z)FO5U7DfgEkV5^OM4&SNq^#8B5_SeQMh0=PXlY4ij=n2MGfWF31Ahk0n9zch#FA7-
      z22~9oJeGmATWf|fGH?awmlh?bx@G17HHl%kMh|2N&}v2oW*}w-`h^kbJaz^S5Q~8m
      JNHQ^S0RS?_LO1{b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/InternalFrameAdapter.class b/libjava/classpath/lib/javax/swing/event/InternalFrameAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc302960c307199361ad745a4df0e20444f7a3b6
      GIT binary patch
      literal 1105
      zcwUW?&rSj{5XQgC!Xlz5AcA`FqToSdj9xHCgOXr~93&h~%2K6d*(J+@9(*ZJCLVkM
      zAIdmgNXV*5IkYqVX685j_x1hp3E&vJCYBiX`+UM*%A;rLJe9>nIDWbA_`-9zUGw-r
      zTy^=7mL?2_b(LGTIb}9GePQ_~VhjfwLPL&x;Ruf*b}k+1Uob?9r8a|6b-N;g2v(9X
      z5obs>q$BRegO2c8ykiT7bi=i{-R7QD>zQcyJvm}1HWu4@g&`+Hy5-9W_eGbXq=nol
      zsiL+U4We{oi<K~BLS3u2J5nvPe^kOS<U{hc;PXxX4oS;(<fBxf@WJZyK)82vNDn}2
      z;@%y5mZ(W}jfMX%>qwo=*aN*0jVOJTI9W58muYoEmXVDfz9aEQ&JvO|C&;RxfitX<
      zmz*YH4JoqpbFeW3oCY<d&5L6}@?}t%n+9iv%1a{?^vvoJw;IHz9?{Yua(cvr2C=0_
      W^fZXP9^q*a1wG<bgV+x8cYXkOC&v>2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/InternalFrameEvent.class b/libjava/classpath/lib/javax/swing/event/InternalFrameEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3517e0859b0e8a3f4b6cdf13aebc4b61ee7177ab
      GIT binary patch
      literal 1343
      zcwUWDOHUI~6#i~`bSOn&co)Q?fV`vvf*^>gWhz5zYiKP?GL#7pmKoAcK@%75j4{Tj
      zF|OIV8WR%|7lwr^6W@QtUtm0U+SF-_#Kqh>-#OoR9{0?A`u+X`fC((R;bQ3DR`!&8
      zf$YAfZw1snRW}2&ZmJnwNryAajw*4N8`TWWoEcE|%|LK1VY?ZcvT8<C(n&Rw)eQZ%
      zyu`p(7#c!`o;4NSOe*P|T66gE=;7MIuLFioIhv4Gqru2}cr|!aS`UU2ax$2ZxK6GD
      zQa>2l$~d7&EG{ka;8%wBV}f$@29JJW@RdcEq+$Wi_<0;d4#lE!Sk5!PGqjd5!t!c7
      z!DF8*+b_|6V`wRhM}qN0<v_7pQj||zyP)Zsxyaxjia58hQnG+~c{s^X9Wpjm52|p+
      zi*ESoBJ!F*S|LSjV_Qv`d1hlo)75BhXG6^-l#R5?AV!Q7?MR_b5iU5Z%{y9_VKDMP
      z`=6&~vqmnHB4N)-y)wA8P5LahRI?<&&^t7IlCTa8qh1VPjQ3kHnH%G@yMOB$>UR|~
      z;%0_|w8TQSe3HD^t}*GwdDIK=2xt({D4<zDi+~ORJ^|FeH>cm#jeXs3-ruFHp13`A
      zSmRgLQF$@rya@UzF?|8>z=s;t5^@uAK|mMz>WkP*xWR!>5pHzgCc@1QED~;U;8wzI
      z4%|+-!+|>qca`aVCHyL~yU|1EY4XT~dEf4l(Vj!}zO_kx_8=}g4H{(^XUX#CX*h>|
      zz_tc3NJ+Rw*GX)KAq*GNPSTslgpqd`Il=|2n77vUKd^Ip^PECXh5#-W^e+nfWztW)
      zu?r%|e?a~Vlf7uy04acZdS>Yvqi0&2vcyZ4IBkhDmU!6`XDxBg60iKNKZrUyA5o>p
      in8Fjx;3?+t3=4RUYj}z4cm)Zs9sMmA`&+QHT>S&h?--5%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/InternalFrameListener.class b/libjava/classpath/lib/javax/swing/event/InternalFrameListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c77ebab56710f28f07448919327a3300d48c8643
      GIT binary patch
      literal 443
      zcwU82%Sr=55Uh@m(fEoeD*k}x;^5hnsDVHr2f_Qew$fpomEFnew|Vdb{3x*}jKo#J
      z!%RVScU5=2f4sf{IK{R>hj27;jeD{6vxEoB4TorlA#xR*A5`v<M^Z-)Tp279da2oZ
      zr>*1L2^Y~|nXo@&r%}AUN&;UaggyB#bzVeiT;w}K|9JF|?@Z~ee?!=5iCp-yP71rf
      zSQR21wCGEAbI+e8Das)Cl1lA8hx0<)d;FwlDcij+r&YlN@k}`UGp>_#o@PT>(6^+4
      e8_myP1u4hXjNOcD8P_vzWZX=s^IQ6N(E9`{$$jMj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/ListDataEvent.class b/libjava/classpath/lib/javax/swing/event/ListDataEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1d5f9bfc6d4587351e46001c50ebf2506279933
      GIT binary patch
      literal 1587
      zcwU86*>Vy=6g@4FK{7@qiHUKE!6kqTiMwJ@1Y$-BXdn~!R40tdL^4p!5aXkMf!|^I
      zpjC>NR`~&bfPbUq?H)uVSUybmxwp?<`}TbM`S~k=Njz4tjbU_+Z}82S{mishV#bDH
      zIkBv1J8ACljF1#~83qL@R(H&DOe*tBYsRv}u*)`TCNJwo%{D96yq0EQHyL)MDwgeV
      z%h7qcZummqU;S8^e*J{_seG=O$rTHWshMQ%Mn>>84`l;}K8=p%^kjB1nNDZYLd(da
      zrJc*n=5<$3X?vaLRfD0&v`WV2#BVT3;EHLPPJ&@LoRwLZIThw69M?20qLXo|QZfSY
      zU|7Wf_ELRaxDkCjWwlSmZuACl0HX>HQkH*sv)ox#aR_4!o^{h=@P)~}Caeyt2)b5B
      zRUC5}d{dl+RrI5mVQ1E~j9h(v$*2|iQkhB#W-H6oN=^+WxvBIztESB`mi^By#i?++
      zQm-vbM_X!P*uG*oTC-Q4a71g<P}3B`McGilQz<w#io!4uj<k7lwQ&XK8HPI5*Xw4v
      zWYhw<h|3Bt(Y1A^pdyYd<embh%G{=!`u}n-mGJ-)xTfGL^{3-VMG|M-M00$dE-!_Q
      zg7jaJ++0*l;|4J|#O&p1=#F)}+^v-ba1NT7hnpSq&^(Xmeq^c555(k633g6J9=A!w
      zt5w4)F`VpXwnf!!mJB#2Tof4ghqZqb{g|iDop48e%8!MXG)dAudP9$duLmm5h#mzB
      zauB9XcdFXQ<dg`3F`7g1j1-K(haQp?@u=X(UIftFl2wv-w8?!W?`)HI(MOL%;$U;{
      zm%EQR0~n-r4@oa5nveF;=<$yjithh_k?4Uz?<Wunx#-9TjK7l(BDC(2^dhbEl#ouY
      z7H|-E5hd+e*A<TAg!pd|I*C&hNFb5SHi<+!9*IOkUOJCqqM1&NcER^W-y`&<6|_ex
      zxeTJZgk}&%Kg({$<DJG&yBeSFYCO_u{H&`n-DuOeN(G6t#21{q7j57|15=-H{Uc_A
      vw;GrgE*rQLEV?)(u<qh<f$tJ-;QrfI)IQmu7ldEpGVOn&CtA@TO7^2)=CD5M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/ListDataListener.class b/libjava/classpath/lib/javax/swing/event/ListDataListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0058a239952ab24636ada44e1f03d9db70bcd62f
      GIT binary patch
      literal 277
      zcwTjnJr4mv5Qg7%Sf8O0y(nmG)GF~&T_PdTue%8==PtQh$8S^k0e+O26&i_R=bf3I
      zC-ctZdAkD`qbX4k=pA*guPVEkc&{j@*ec&-cCM{<N-?DpMS-@PQ<3JW)$T}vl_(2z
      z-`%q{ky<$RiwLxWB<9p+vjZ~}3iJp5|6Ol-GTaI@4RdL(qiGmAto5zebV_p9scn*T
      n8qm^2B+&VFJ910dnt;cz#HV^}U!nqcM)jjLr~F^%SU}?iSA9$M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/ListSelectionEvent.class b/libjava/classpath/lib/javax/swing/event/ListSelectionEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1804b5bae5ab4b3bb8f4bf346f84adb0d40a7ae2
      GIT binary patch
      literal 1514
      zcwUWD+foxj5IvIwHY^LoB?v0$%FQH5B8rNJfLt{iKt-cq`LH1iF1039vH_mOKkzqv
      z&?;Rlt?~o>D9fJNR0zpx`7+bp(|!6(Uw-}m{u96io=WgB4Dagu`eCAcU>0@~#=cRo
      z6B)B?uN#)JWt+vq5;sW*F!XTGM8!6(gfOn<cFBc7-Zo2RJ6*^dhYT#u&}Qj1z1=L&
      z<##J(o8aknlc9CmESUBTLti8#5G|cDyI{$5dNZ132rLxyh73PC70BqK+#bHsY#SKP
      zC}=?|m%0^5uGFI-h&G0<j9D;ND{pf~>6xCh3<fn*+|sSAUNX5}H3sZAW|?6$^FO6X
      z(hthTN@+`=HIZWI*fH$ox{CNCQL2eT*33y+x=GFIR>erymxo-bKta2>ZkL219EsMY
      zaIHxR!wkKR=J|?g<&BbzQA8wMVF)#HQxHXr;3@S2b%=i4eF|O}lQOO%E@7Oi*YKp^
      zG6rQ_!*vN0r|?|{3T|MMLE7j4THB_AdNr;2KQe}Ji}(3<L!Ybf(QFWRXsTXmZrxKn
      zAgN#)De8s3w`Uac4C7vrO{Qv<l6*>L6`aQfUa)u&^VB%)WRO!DPqN69EHU&)(tn2v
      z;y$%ktId2$3xXQnsnt!s3-^e_WjNgCzu;CGeA;Us5U1r@7k^$h`JnbTk7JzUP-AF#
      zXsP}1@ogZ<$9F;8v<Y;#kcW(RIu+7B2tQyXHg=4TnExw6{80H3j`eeOfU7+L(mxBB
      zvvdv;81S4zlLR)0E-WI9EY9HtF5)GIv4LLlm~_F>M=uZ(6`E3WiPQ55i4*h-iBk;F
      zdp`!M1QT>~|CZPngg({?v<hQRBvD+4Y7#~Syn@xnV9PW35;TwCaAWX+XE3crHTZ}=
      z#NSqaU}z)eV8p@LHzba6Q=M{fmmp^x+#^YybJdW81$Eh#RW3hp<*<W?>I%sY);`rp
      as8l839dSLv6y76E@(H1p8llG`;>jQHx;^#)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/ListSelectionListener.class b/libjava/classpath/lib/javax/swing/event/ListSelectionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95e4f6c6cd5c9820d270100555344255ec7af6c8
      GIT binary patch
      literal 239
      zcwRg8Z`VEs1_nb0ZgvJHMh5k)#InQ+{o?Y>ymbB4vedj1eV@$YlHk;w)Z~)P{5%jR
      zH7~V@oq>gsK>(y!KPM5W)ITW;sDPb;jgdhdELvKUnWOItG61H9k%6ZyF{d=uIRmI6
      zHHDEuQ^SXVZD9S@nqiC#T*3LJMaijdnK`M93{qH~qz5t#Xg?zZGZ3=^J;exgBRc~J
      Mh{eDOB$*hv00Zzva{vGU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MenuDragMouseEvent.class b/libjava/classpath/lib/javax/swing/event/MenuDragMouseEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bec6295bbbbd1aae063d290924490888c9401b81
      GIT binary patch
      literal 1050
      zcwUWCU2hUW6g|V&vam|gu1Jej+S=}7BJt5^`hqo~0i!~AKwq}Y2&3#rmfceSl_nY!
      zAN&FRQN}w{B*tRvZg%GE+;h+UnzNtZe*ky{TSJOr_q}uCoHl23;g6gAg!^%`%l+h8
      z<czyPGUJExNJEC9Dw$1Z9{;8-%?z2)i6;yjZ#sX<Nuk3j_lWX@LGv8n8S{u?`vR-S
      zr`(N2;CIhCM9)1HzK9PPhE``8xfOU};7h&sQJbFOzXM(!!yZuLtzg6pNaLCT9oHGQ
      zE{kRlbTF(L$Ra1v4FekT45g0n`HRFm=271{o^rBu0@s-ioJh$3#bG9%h#A9P=YM)G
      zTQCcf$R)@1RXH)F#E5~lNq9ctKEWdf-3vzIo!}7#VyE<dWGJ{(;eKcZi5!&?24NER
      zBQaL9U_+YBn8z>G0Be?g*$68{T-8dtMwWeb!zq)Vs_40p?WkNV`k~Z7om!iwJDQ@G
      zI;{}(nf5eUbQEYU(%%^&gLbR&pjJ1tX3o^iys3YK(O_Rul1sT!El5}`68@}|ZqmA;
      zR9~Tt$GC+9Y~nRV?O`8%tdk{F`W8&GLZJ$7Q&fqn<egGz6E&5mg*$YXRcLFWZQ(8<
      zO`&^)@(R_lP5DbC>nbQDD=U)r4t5uHHEEZzvW+h&eOe}+Q-^O=g2p*vks!l;?5%Jv
      N|Lx3II`1o%^$Uiy=O+LF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MenuDragMouseListener.class b/libjava/classpath/lib/javax/swing/event/MenuDragMouseListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..430e55d79456d7727874b4942031d203bf828451
      GIT binary patch
      literal 340
      zcwU8&%?<%E6opUyjsHjxi5I{|V{MDoh=jzxxS3Q&B{Lm7n}rAPP@-2z5Q#;5nv>J-
      z_Vju?UjPhH^^g+iY}G-XWPH>nkaQqp<&;b^ic~P&Co%atwqz*skP)bHScb|)XR9r(
      zt%saI>)|F=hjPq-*A;=r?j6O4fHnfXuK#E1gEQ<czY$|&DPlzZ(>`g-Zu7&PQ%EXi
      vzqr^Z(V8YYB!TwNetmwCD<hD0E9-tJ;|hDogNqlQT6}7W)#b`=PoZ)LUkG5o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MenuEvent.class b/libjava/classpath/lib/javax/swing/event/MenuEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..821bb5a3e562c55839468ef660c66169d4eb5bed
      GIT binary patch
      literal 356
      zcwT)@O-sW-5PcJ4qOrDG&`ar|H$T9|Tcy%V(Nole()%V|bW7YovZ?+pPeKp=fc_}y
      z>{h%8&cN{I&6_u~`d)qkxI{NbK<LfoLcWXoO`B(-7Rp$0r%ZF>P>hgp<OHIzx)7dx
      z$mS}ygy>ouZO1G)Nxh_y?68@RPN#%$QqEL@E$p_ijfl`mwNdxYYo@9vnH7rAP0L&s
      zQ(0-(|B#`5(KVr;{`1+0@7HBh<=*7ac|!8&r?=WUwtx37oD>5PzvY5B`8TdHcVh&c
      nKy-HgiJcEd0TQl>XNRo3!XBgJjS4O7dzT1pbiCJr-#J_ZL_<+y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MenuKeyEvent.class b/libjava/classpath/lib/javax/swing/event/MenuKeyEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3967f676fd1a92f8379ac0b0f196cd5d94b9516f
      GIT binary patch
      literal 986
      zcwU84U2hUW6g`)(Ws!>1B7#^;T@^5K<D=2^h17())oKkf>dO>H7-e^xWhwSwsnMAD
      z;1BRe8ShNjrcv5vlbLg8&OP_syYuV!kDmbU<Bo+CVfDQ@5Fg#?Tm>Un9>^eew`DMU
      zA`drpU?D@OYK|-BaYFceNyzMrcuc6j@lMKUfz65Znevce`63V_84=e1W9`a`9K<RN
      zwvRYW&plFsiZ=+aTHbNpZs_laf!6D7^?KdY%bj1L-Dlg~a3~8%W2p!m7YU8iYqk3}
      z2$zb;BB#-E5f<`<lBWXsbms5L=%v`3NWSsHftd6~q;#AdX5z7$64t!4=d2r_hO=nE
      zDJzS-5K?MLpdL%k$1-5JMX>#FsNN|VaS7{#Jk)(9Xe@Z*)a7U-;~n#x8m;zOKdQ>a
      zMI$3Pt@inYB@}i|2alC*ynM2~dpa9U9$%W@UWz}Sra?SQ-qU<zqrmG0j=u0&fp@2K
      zx6!O*E4hmG9mNiPLrE{?PA#ut&1U@Bs9ff?ZWNzk2@kN04OFp%>v)cvc!3qZdCL`8
      z6BS$m465QPSJbG+*(rmrp<z5aoLgs?8m%VU4sKwL9c!fh=MB;w=!en7dg9;ZUF&8$
      jUs3vWY%pgIUmG*UBSK<^*rc-{x%_YPU}5qt!@B(kQS#S-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MenuKeyListener.class b/libjava/classpath/lib/javax/swing/event/MenuKeyListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a81b3b79cb4eefdf33988eb256a52dd26f18aace
      GIT binary patch
      literal 272
      zcwRg8Z`VEs1_nb0UUmj1Mh3;K#InQ+{o?Y>ymbB4vedj1ec#l)Qt#ACpUmQt)V$Op
      zb_Nzk1_6*V{hUOgBLAeU)Z`L&1~x_paj<A<NoJ0|D@ZF$3nK$xF2s<4qSWHz)D%Vr
      zWep#kHi7k8Ylbm0@I$o)rRJn2g7xu0MM5eIKwPfi{L-T2RJY8WR7M67G?(guYydio
      ik%1YAS%JP}20ERcfrA0$1x_f<1)_oS+(43vfd>F^|4ID-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MenuListener.class b/libjava/classpath/lib/javax/swing/event/MenuListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c38bc23497d76c2c2d893c88a4f1a8c3cb1b7ac8
      GIT binary patch
      literal 260
      zcwRg8Z`VEs1_nb0UUmj1Mh3a8#InQ+{o?Y>ymbB4vedj1ec#l)QlHG?lGMD^B6bEA
      zMg{?p8vUF^pbGz_tkmQZb_O;^263=xX-Q^|zAH!{Oba6ePcF~|=fu3^)ST25Mg|29
      zAMBQZwOMP1F*5LhbhxAz12rU<fb@Wk2!?aHg7Zs@l2hF>b5a=@1d$!62QnJy8b$_Y
      fAZ7*nj2Y-+b_NaxkjputG#7{l%5wurCI%h=;HgC<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MouseInputAdapter.class b/libjava/classpath/lib/javax/swing/event/MouseInputAdapter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81730354313930fc43efc79bf72d1c06deef1f84
      GIT binary patch
      literal 1003
      zcwUW>OH0E*6ot>&w5hRLpY@3#DpVH+QE{P&;sb>GK*f!#X)@HQX(Gua^>4WnT=)b0
      zQR2*`q98afGWVXFbH15L-alU70IXxqMjydqn`ZRMO}ad6xh!L$aL=MNVW;6^Dh_=5
      zC|GR6A{bUiH=xpX(QGqM*eDS!{S|NUM6i&>1f^Xba<NBHsIS}-Scj3%92786fsHaj
      zwZTJno_3lnzM;*45sWq>j|R6i=1TX5mbm8$!E)mthu$Hmbky)L;NAoC3FhlM=hCkD
      z89G+&jyhIRPYGuK@O@E_V%lmcYA%mMxuuc=xqRY6DMzcbDEoF^#w<yc9MtlP1&nI#
      zTt{i_u@kOtTKjdMHFYLy0rDHlrzn46Syo%G{ZehnN@OjrzQB2wO&=<9bz}uLVPPAC
      zva94K452Ek{H+-20k(8T&c4GXZQj?xTK=*ZRNW}X^q%8p#Hj%>VMbgT5H&O6&VZOS
      WBYXp5%8ck35YuKvW<bnn|Li9Lo}S16
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/MouseInputListener.class b/libjava/classpath/lib/javax/swing/event/MouseInputListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44194745f83b8fd18409825d1fc679ef583d586e
      GIT binary patch
      literal 213
      zcwRg8Z`VEs1_nb0ZgvJHMh2Cv#InQ+{o?Y>ymbB4vedj1ec$}j;#AMPg3=P7%;J*N
      zywoCg1{OvJ0gy`loJ62H|D>$c<PvrUHbw>+uxMg=39@E{J`P3(C2T5u^Gh=G^I+;2
      u8MuP;ON)|I-7<4h85zVeU7!at1ZW*212Y2?11keN0|+oOZ~{pt1}*?%Wj-tb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/PopupMenuEvent.class b/libjava/classpath/lib/javax/swing/event/PopupMenuEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9984f96fb0bc4d2206770e25412ce144315822a
      GIT binary patch
      literal 371
      zcwU80yH3ME5S%r}1`|jKf*PoJNStV(2ug#XG7kxq{%lTgkvT{9UEsH<B2n-Gd=z5u
      zLW3ySl~y~mv!nU^dj9}$jDCuUusxPj`6}8MZ61Z1Dr3cMJ#mvOW!!~_DPqE=R|#iz
      zB?5U<j8$m~$(c6V4q3352T3K_W_}&)j|lO3{h%@|V7Y@uB!q6Rjk<Qvg=+3)Q7J+{
      zuS;2tWTQR)A!GZbTf%PsU%UZ_XlvJ$!Rb#1LUtFfm)hHI{C+<2dhCEWpfBR)lsr>L
      qLqyy_a&S1q(i?9PGM-srPgr@172dYyDs-?KToSCI8@zhqXZ;%+Nmr@>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/PopupMenuListener.class b/libjava/classpath/lib/javax/swing/event/PopupMenuListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54b71aeb28561a9e2a0a9a69231ca59545812fe7
      GIT binary patch
      literal 308
      zcwRg8Z`VEs1_nb0UUmj1Mh4}q#InQ+{o?Y>ymbB4vedj1{eb*}(gNSqyi%Xc;*!+7
      z)FO5U7DfgEkV5^OM4&SNq^#8B5_SeQMh0=PXlY4ij=n2MGfWF3gJ1#780W;i<kXzh
      z6h;PB4Iez#feo<M3}a-Ff$I&=%*k;|P0r6v^~@{FEY3{INo8b^!Xh08ljI7{FD*(=
      vb;|^C#4!A#2XX+=;fxH-K+FmZ31*<@*cmt&K%V4;(p(@KD9;TfnHYEgW6xOX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/SwingPropertyChangeSupport.class b/libjava/classpath/lib/javax/swing/event/SwingPropertyChangeSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd403b8846694b7d185936317c863fb6b5d51ace
      GIT binary patch
      literal 482
      zcwUuIyH3ME5S$HpAd`>>BuF$+@=~nSL1_|@Ko%ec(x1(dTx8CXeGX95BJnL$NE8&5
      zd=z4R&;bR_?(E#o?C!mPyu1SFV6B84VQ(tt;?_-WlpecsF12xo89s}nnT*X{e<Ji)
      z4%68zicJZ5!e*v$eJOO}{@O*TB{Ehb9LYFQk-j(@5a^gt=|?&-LYt8YQ&|YE-g=Ms
      z^#?+6Uuk7}gyxoK-9xr>PyMM3Om}-k$oHd5>0klNWjI(OR6V8TNqX(e_+0p*Bs9Dz
      z;E{p{bNx-`%|s=Hw)dYaySz{mrEy?gf9ykWhW7PPWg|BJHfm>D{%PXH!Eqf06gii;
      y%3+ZaW!G>lGt*-($GNz(`;5wy?WuBfEIVNB0cwm|UtOr90a&zxRqNHXn${<gReP-f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TableColumnModelEvent.class b/libjava/classpath/lib/javax/swing/event/TableColumnModelEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fb4495e5680e0e600f0972aaa285e6b8ebd2870
      GIT binary patch
      literal 740
      zcwUWB%TB^T6g@)=2v)@hJ`gn~Cfb_VxN?DUV?>*v#%Nf$D==zFX%iUGk8)$8F>&Ds
      z_)*4t2Yf_XxapiZbI&>V-oCxRyaL$9N*W1)^`_tR@7&I95M8^nCnM!v__a{($6>b>
      z9mfqB9x$7RDUj!4x2uBC)#PcdDeFogbJdPpUeu6x0>TqWt9Wor?FLbx_5|#W%FiUl
      z8Gn*Wo@ZAD%ze6KVZgF5f-%bNi`~#CX+N}NS2GZpu#iNG(WHemQp8k(NS<_CHQCno
      z0#lW^?uS*s9q@fXn(8L#P+OIM&R?QgI&rsMC+*sQMxhAaia<ie0@k%u<?kgK8#b*e
      zOXS7prn2YSy&Q0Ng`qucaV%D8ScCpx0w&K+$mGfCH0Wgnyo@Z}db$EAIGfKHb&MyB
      z^C#yN87&cd&@NM4qxEI-+ac{PCUA%u9AN<-rs>7$I}w)$G@8X6<uIBjZ9=03Lfk_E
      pi-R6qI=L$8JYxL*D=wwUGi`143kKE##i8QdZ}H_&@sh4u{s6!{mF55d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TableColumnModelListener.class b/libjava/classpath/lib/javax/swing/event/TableColumnModelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74c798dfdbfe3ae567bcd20731e6289d1c2f273a
      GIT binary patch
      literal 437
      zcwU82yH3L}6g@7Kl$JtKC74*4C_-4wOjQL_BP5F0-Q=pca&0M10^i2K2lS&VuH!(K
      zA_n{F*yo{pHrvlH0CzZz&=R;_s#1N(^}DtUNhR4_zNopOi8IB@#x5l@)$5!rWfArT
      z2A(gCV)oN~Nl6~zK;XQ3Eplz-gZKE62=tQ5Xq={$3fx>x|Ie!&?nkcz!yt}Tw$OI+
      z#-ZNia+gW?ZKQQ>>`E``2lPy<fX@P+k>L%rYrIFhy!|%6)Fz@kb48ZWqc$XP@mFiN
      m-j6F1*yGdY>f2mngbsY2hv-(bSL364_HoQiffK%47<>a=^?zFc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TableModelEvent.class b/libjava/classpath/lib/javax/swing/event/TableModelEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5fa2eefb302353cbd83e222056efb930ef3c5cc
      GIT binary patch
      literal 1718
      zcwU84OHUI~6h5~zZJ{0HAqBw}c`BU>Q}8W@gtTL<8H$!t<BAM*z#+rbv{TTPD~)?M
      z`VU<A0HYz%#GM;AF5LNJ)N}3(wW$+3i+j&^=R4o|&bjy7uTNh9U=FT^A;4g4Ti?|m
      zDz!b+-cpQR!*-OSzF`^5m3xMz5)OmNAVxH$?wFRs4_7v}jk3d_r)E@5-6|Q?npv^e
      za#;rKCWEd_#jZKJ?UZz@ZUmqAKC^zn{3{00B~4q;tY~Y?`BkLmgx~lv2xV1GEvgJ6
      zH`Jx9T39cv+`-daepM|L1+>c$t=-Bl6;(ojs9dq?J2r!kO|x2a3Y9$uVN3TS(RuX1
      zK+-kSHl0Q6a$0Nd)1eNV`dmnsFeihd@EH9>P(LogAS4(}waLukN7>z)X&d?a&W2It
      ze;M>?l`>97$N3=k4n^m_Sz|DvwH^Bc+OJjW)iP#{{NDqE@pdlBqEMyLOthnN?qpjQ
      z(jp*0lIA4i191}+OGmo<I&i9;ILWgT9ET`Hvl8^XQCfnS8_i2F08s{=TZWVIu2h&#
      z=J2WD$@RwFMi6O7*BeGq<To5y<s-Uo(s27*MmS53U<|9!qlv&U1R;bdj3@vdFob8(
      z29^+awcukdxVs7WAnt9#eIQb!7>m><-(%iBz<26*5KiDageZev0=P%zl+ZUE5Dwww
      z0T&wKX6e@^?ptsQqXCx+qu37cXdEU`hy*7+K@A0YqjD-9_tmSTg<Y;U>W$<`FXHJ@
      zG==H`u6){4E}^pMDJOiDpP=$nt}MGuU*&$TOc4!6;5E*8HFT^I1U`;<A}0D3d4c;&
      zUgW$>{bw8$9TkasMJS?s5qY_US8g9UA>7k)>JX-7;UlDInW06YWloM0Oc0ET^g9;B
      z)4!f%bOZ1Po#ZjPjc=ofweO<(Tm1hH{p>>$4nTqT-1DMaui-h}@SJXVPB%QKJ<k-;
      z>j@(B9QN(HSNPQf1mzEqdfl)T;)kDkImsn><rrM>O`d5@{_2~2(KlIXP5$nie91R?
      Ot~L3mZ}Mf%y7C7N{1y}d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TableModelListener.class b/libjava/classpath/lib/javax/swing/event/TableModelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..544a0159da84947cc428ef400f3f880a61b30c7d
      GIT binary patch
      literal 230
      zcwRg8Z`VEs1_nb0ZgvJHMh2Cv#InQ+{o?Y>ymbB4vedj1{gA|@oK)ZZl++xb%;J*N
      zywoCg1{OvJ0gy`loJ62H|D>$c<PvrUHbw?<uxM#XW{$oqNH<IiBLhzf$Q<VkpoY{G
      zMg}zvAADAUHCt<jF*0xk=a&{Gr@Ce4qymk{bc`Oz7@*CJ49q~x3iJyj&~@w#93U10
      KCy-=f-~s@(ltCH*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TreeExpansionEvent.class b/libjava/classpath/lib/javax/swing/event/TreeExpansionEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d73138e867cd6eb5560d5f95cd95acf3ccf3b0e
      GIT binary patch
      literal 620
      zcwUWBTT22#6#gbJo7<XZ*@XxSB6N$ko_a8%3-%C835gHAtv2Y$wkx}%`Lha&poe}y
      zKPoyiN(6@Va^{@xeCIot`TTnS0C0#k12YWUU2otGo%m4%ZHEtdAf0-|d3D(Hf>?w>
      zRY3-l3`NCs`cn9g25*{O-jWQ-o+mpD>+WwQNg7(HM#&08`d9=)o-iDgG|%xpVvQs!
      zQ!2|1YH$(Wa}x>7SukMHB!6g>8yPUnTSy_zkaI=Aulo;89@V|3&lw7C*z){_7YP-Q
      z!KCbnm|@5L&k@uXaoCSqT5Vzg2BXboP2XapRGxYb^H%Fz3N^&aWUGBuj4fIyL0?64
      zs;$VIA>Y6(*$hQ@6svsR-hG2<vsYy8Ju=UlnIl`EO5l{Lk6_}Auyf=I*&Nkjff&%<
      pB9=&1d8(7@Q^fMPk3+A@rR*1EpMJ#C8obhi)`&0`q@6Tt^&67Dji>+s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TreeExpansionListener.class b/libjava/classpath/lib/javax/swing/event/TreeExpansionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..094ccf36e0eed9b141d84118beb79bf71294b09f
      GIT binary patch
      literal 263
      zcwU8%y$ZrW5QJyr&-n{>f-j(HJghB6E5SmsKjR`7j*BE`%(Gee06vs>C!`ZBmW7X*
      z+1c0o@dU8IKp-MaQ&p-;7I$qgl1sKu9&+Y&byc>|nceEbvE^K#Nf-sOG|EeNr<4;X
      z&?bz(^yajY>kv>|2t((iR+%yCTJV_=&$fTgeFK*9kuY#IKL=}XpWX6=H`*{^^0VSR
      aWcxmZhM$&yGV+}TItbmnVSC;S9Q_ZB@Jjsv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TreeModelEvent.class b/libjava/classpath/lib/javax/swing/event/TreeModelEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be213ad4529e11332e635bd3eb547a0f605fc223
      GIT binary patch
      literal 2298
      zcwUv1(Noh{6vn?x3k@YMO07uMHKNtF1PY3}T69%JMXTtRtzzXNln8NZVcHb;&DY&W
      z$2VWqcb##|jL!H6_(wUObCU)dQ`DE_%f0tI=XcLNH($Pf{0v|MixG4QXitm{<DYE(
      znN?lMnj2=-&d%3N^Y+@ZS()L_2*Lt!UX^XwRwXM3=a!zBWm`ZkuUeJm+3K=YHtPai
      zrC9+*j@8VnK&+IP#)?6~9Zyamyl&X50tfQjQ`?kOX1+_4w5Vsws#^9%fmG`I7y)6^
      zMG8Dk)KP@cuc8mT2|K`>F7`rTKt(rtSnX92fx>E^ie5w`*e@{D5iN>ABsly5GNd|y
      z^yjUrd8hGo$*j#AOBIvy<=4tarD)VF{&ok$_Nqly8*VE^&>3(&>T8W!Sw;#d>4l#w
      zQfamW@OXfKhvQ+(%&%EGrtV)c?di5I3a8TCM}4gc*-CL54BB~wR<+J$L`51Y$Jt6O
      za441DvC|ZLtzg$^hI+wW>f~@na}i7k4El$!G>FWsMKO+3+zyihp;WpU#Ton&!C8Ub
      zepnUfaGuifwkk%QHX3V7CkJyJa7x7mQ0w;?>+5E9Szt7%kG~^zk#Y(y2}HG0L3Ye}
      zjYD4Hkkh_M?gl$Yiqfr^QE?5|1$v3Q;Pzm9om?OVbZDxswMxs01#YR(F{<D;b*`?-
      z^VH-?TV~x^F{dJl;|lIcck9HRxq^xlNGbT6>ZWU3QAZR!5D<&JwTCLkkfj|vbk{7t
      zTCw&EG{&?zLe3EV`$7ow?I#uHyD#5#^XbjMfj+48+(ln?8t3&#G9#P#EhGNN9)865
      z5zl<W;DWx1A=2+@Q5O!<Ga<v?r0{1c;1v3C8GCUH8uB<qGnx|+zvD0<l_s%R^%6>#
      z1Q>P!UP(|u{}DiDl&6NmG`GbvEVuT+$Fe{fA5z6j7{MdSH0k8<m~@XxcbQmm!9r4T
      z$-<KJsLNTQH9VIH<kSNyWcsKcV+bqTDwObO5*|%L9+Fd`V{Yb`^v(3ij+u8TP2C4!
      z6GVd&Z&3JW+e(x4V3Hn8(uHBwDoxTW4K=h2n58$b@6LR{o_8KVj~sk1lc>%DH;Lem
      z4=~64=6?gtY0rGpH7jI}H<9uCUu^R$o}VsjK=QcX{3<Z{m^88ZKY30-;S<IeHgPi3
      z#OWq-1AjJgne<iGHynMFb>7i;Sl@N@U##aHU1WWqbQ23(C<9b$;58+GL%V&8InrBL
      L1rMtv9gn^Nnd-;o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TreeModelListener.class b/libjava/classpath/lib/javax/swing/event/TreeModelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3578cffe6b6de5c06560f32eb6a9e0023e29a0e
      GIT binary patch
      literal 317
      zcwT)_NeaS15Ug>FI|`x?5J4{vo;`|!-~uY%V{9}M6PQe*Z}Z>-e3aNDE(gKGOhHjq
      z-PO1I<qDvOvW0{|^I*sJS%xRq-${ze*K(zZroooHi5qJ2Nm)n<RE$u1Hp}Ll13B74
      zMxgOzBkg)}Xv}X5>ov#BI3^tI*+g4`R(tYi+SA|ftOcqc>(~!TY2*FIE$A4;hN>BA
      zsa53YNYQ6Xei=l{p^@v6K>epo*Q~&s3ncla`4lN`XCVvIGWWv#3kwEWSL8o|(gUXQ
      BSIPhY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TreeSelectionEvent.class b/libjava/classpath/lib/javax/swing/event/TreeSelectionEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff70bc2582e767801e8022356aef9aa469c369af
      GIT binary patch
      literal 2194
      zcwU`UO>Y}j6g|%#+v(UeG&pITI3*1w@z`l5O=$T@KL{m-NKuNEG$_t$Vn3WI({ZrJ
      zO;(7HvSY!vQuj!x3y?@7QAjJ6?D+xg*zgnDa_^gAYMhCY(8%-dynFAt=bm?;e|!4V
      z0f2K@Od%$4=B9Pq+BKUywp%mhZRvXEYD3Bu>Bx#_*WCr)N<kCo=SZ{V*^a3;uW#O@
      z5P`(D<!v<u@*7L-SRSD$s1L|JCy=xna#`*O#5T$T*}79*l2$dW!%+gmT_Lir+=)m^
      zUbJ1?yDVTARJ!R{l<d=+>qcs$+{M|&WvmHkSL;=&BaRm{$lwIY6H(k)I|hN5GDslF
      zR(}R5^ssd@gJaOy%4Lv-F3`JVyK=d8Yg0B>txZP?^expZma}FxZ2k^5HE+u%vB&>K
      z@2GQQ*_-uNqoU9b(G#deknYm>|JEyoG3xZl2x@CvEeX4+W<=14q-xUhog)RK>s<5%
      zk)+G1g3;~7b(AofLNbH1n4)qOr|yzA*`Pp&I%&H(U#-fj&mvwh%3PpZqh%eZF`L0_
      zI8V~cPg<7KJYqD;DZDN)_S~`PII?Cr^Nm{T7M<O~ZbfeMN%r7Pfx#Q@$8LSc9i3pI
      zCPu9wYD&ii%<%|b?5MNiHHe^^RbkU_kwh*matjIDt;$`RL6Yry<TYf^a^zj>Rf>IR
      zds{2PT#ZLHcX&&uQNPAKUl7p!+-o)u^vT0xJH^=~Bxz3nR2n^Wf0RYHN3C>s)S6Z+
      zV-qmFkJH!Jh^gp&v9yog;^ZFsif8wbE#|a63>0&TJq-Rp{uqYnJ)~l*R6!EXN9aWj
      z{n)}VZ2AG0eJpxL0A-!R%T$RiW))Kw^NK5rnQ6*mZVAO~G+=f&=)>@tX}{p~dVF$)
      z32HxU>+zA*|DgF90ep@V_=4cS#2D_NfUnwU8X-+1q-o$4A`(;98N8}!8X-+1q&bd>
      zfaW=h=FC*_NA$&Kz7I(x)%G{4V8#y#3JM}(1nK8#WnY@pAE5XcrA~-@Z4l`Y!o+k0
      zgKT{Een<Lukqk^q^V2`2Cb`XNW^kZYFMW$4HuE#32bj4FoniB{_wU4><?lWF^C2#*
      z_r0-?w;qLc21pX%fXF?<ARd#H2PDw1s_v+d9ZEf|1g3u>lKc`KL`-qH5^$NL@7O=B
      z3?FLccLh1%hlG$RyiGtX<9v83W*}>VfCf4R{i98hM5xF+k;#Ld$$v#AU&XsY@(tp{
      u{BjQ=)=MlT_rf$7Z66EI0go$fp3sOsrCao*t+`y-TrL<*f%jD2`+oy>Qo%+5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TreeSelectionListener.class b/libjava/classpath/lib/javax/swing/event/TreeSelectionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38d1382c0886c7329d45601e99f4e584b4cd6123
      GIT binary patch
      literal 239
      zcwU81I|{-;5PcIrtI@(v@B*5~#oAJ|3Rpz!*Er~gC4poUJ)4CG@KEAzz)rB3VR*dX
      zyxxx|fE7jp0b!o0M%`s~)A>bm!?~4*k~v|+sntau>&kM@r9hW3@nmU~qwY_cBM9^f
      z(-y6*Hgf9?z7oQ?QKsh2)d~1ah!*jmv{t{4j)X8N>N4e>HcXiPthDrIE}zhG({oRe
      N>nJer7lv*J2tV`LMNa?#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/TreeWillExpandListener.class b/libjava/classpath/lib/javax/swing/event/TreeWillExpandListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30496d93e3ac1461b50e5389b88f9cfd9d9610ea
      GIT binary patch
      literal 345
      zcwTLgv2Fq}5JblWVgd=Fqo7RzO{~-@qoYDf0lL)YSVcyb?{qeB-<E<8;G+=h3m}jv
      zR@RPY-|l#S_}c;az^g<<V6@U3T`9jc?pM)<Tu}3p=*L)_RE2iSsqujvl@d*Xesn9V
      z+55d%Q5GZ~1qQXc4#uh^63!#+4=2`FZmljn35-Y6`zz~p-sG-ke2!CrPEuu51lGJn
      zSK#e>GNRT0jVXovVio9xn*_|6<?Aw|iLrdZ@P5Ac$mTEt4_qz&q6P<+Xmj_(U6bDq
      NE6=wI*Gu%GcLd<6U|RqH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/UndoableEditEvent.class b/libjava/classpath/lib/javax/swing/event/UndoableEditEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64ca87a9f6fa93adac349db8f9c6a559f8128aaf
      GIT binary patch
      literal 684
      zcwUWB%Sr=55Ue&Yjhm?P{Wge@L~#+k`M4wzl=woE`z9IU$hr&JS@q^GDJX&mKfvGc
      zKg6C%5Je##cDAdhx@xQU?c?PYzy=l)=p!s&I@ivv9o$H-Ws7U!DZA=5eW&h<a#O0Z
      z?j#T;jBBDDD(Tv$d0f8~4Mi9ZL|Zy;O|%2)d)56Cfer|%qVEOD@l?%mLlN6Ku@>p>
      zeT)zlEK69dd^Zl+@`vvhA-*j=sdfpQIm5MGhnXGQtsc|)8XFb;rbr@!VG9;UIKdw}
      z`Pu*oqZX1FBn(xgCyv6ax@ezkEkdT^H#nTb5gB)zQFS2$!b;^IyVF4eKWsOQ*e`!V
      zq9s(>tR$Pu_gqTy%xLXN{T&m(+}8CxvK%SG|F{n`h#}4>VNgFmoYU0AJ4x}GW^~F}
      z^9Kv7&loDKJt6a8NMn4a%~g?wN<3V~IHRQw9TS)YOf`jR7SokB(DE~w?aJHy)_1YO
      XBQp12!g13)G=f%#&=n-i8P@zKc^aN-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/event/UndoableEditListener.class b/libjava/classpath/lib/javax/swing/event/UndoableEditListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7cd84863678dd07c88dc04cb009712bfdf2e813
      GIT binary patch
      literal 244
      zcwRg8Z`VEs1_nb0ZgvJHMh3O4#InQ+{o?Y>ymbB4vedj1{m{IW{KTZ3RM(Wu5}(ZC
      zlGMD^B6bEAMg{?pTK$|vpi2LwtkmQZb_O;^263=xX-Q^|zAH#SOba7}NGXy@9*G47
      zK;aZd1`Q1#{FZ`^vDOS@WZ(+UFD*(=b<502Wn_@V<}f{wQ9xHPGB5)%E6`_*K$o&J
      OaDZ40oIsL^feQeEutx9z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/filechooser/FileFilter.class b/libjava/classpath/lib/javax/swing/filechooser/FileFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae1e44fd28885adbc9fd8f8d066f35fbdac9b21d
      GIT binary patch
      literal 392
      zcwU82yH3L}6g_U-2103C=nsGx5(Xl~7}N#C6v0r`fz2_dbrs^uaSOl2gv7uH@KK2C
      zfYcF7zUSPlbDv+|AD;luF%HpTI9`g4c+Hv@UC*;8T`9RRrcpM#Ax_^Z8-g<oy)LT+
      zsqV_9l8&KwscY>f3_+6482FWWR1pH~_R&R;Aue>SZr9JHviG8_6vIJbq^M@XYVZFA
      zxm)Ol;iUL~lAM|fDb<R)kCHYa)20>V=>x-HuH3b1q}3~@P0cV)(qcRK)LE)cMWU%$
      zTj`5Z|9D&f%xn1(XeIa;5TjMdhU8rkGQ#fZJ9gfPbP$n^2!R|N6YLS||B49r;V(Bp
      O+~N=;iqjF=%)=kA2U<S>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/filechooser/FileSystemView.class b/libjava/classpath/lib/javax/swing/filechooser/FileSystemView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93ffd025c04a29ef1392b0caf090b63ca61dcbcb
      GIT binary patch
      literal 4192
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/filechooser/FileView.class b/libjava/classpath/lib/javax/swing/filechooser/FileView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be08e4701f4c0aeca8b0536633d754b590e371d0
      GIT binary patch
      literal 863
      zcwUW=%T59@6o&u80E(c9inooI4Z3h*OiT>Mg&Lv>!3D^^3>8bpDd`L#3*SjsCN6vc
      zAIf+-fW|}}yXd*}Ki@e$Z|^U!0QRw-LX2Uf!~6W+_6O2y+c(k`&aG0u&~};ph7^Mo
      zEQXv>*)Au|RkI_UfFXG-JsF%Z#EUx(2J1|<L>h5SXOKXWVXh)QQSIF|g|73aD;V+>
      z<#4ybwKVZKX$7~^XV|Jl%~4`VwM9_ncT}}i4E45D;d^PP@-<*B(8M6QWiSl0-=&lw
      z%(?I#ExUnK9t}o``mig$B~7zS$9O+Co6Kr71kFmnu6bW*fAp{IKPEg?$`#yHO}C_`
      zZ7MxvNY_+PJE9y8ot=Dp&y-o4pgqH!BzcMOPEm9~mXS^DK4a>MoEXw{r^y0GuyBkS
      z@-ib4*(_Pw0OrPkL$XF2V~?NJ$xwX}Ru)FD<4WV@FdsI}|ATQI!C3eQqZz?i#8M<f
      UMKB6jj$}Oi!dMwIR>NrR10y4oV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/filechooser/UnixFileSystemView.class b/libjava/classpath/lib/javax/swing/filechooser/UnixFileSystemView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..95e4ca18742fe9c35eae97359b1a92c2007a87d4
      GIT binary patch
      literal 2253
      zcwUWE-&Y$&6#gdJ{2(k8C~cw87Ex#dgxHFx(4s(srX>mGN08P^H^~qdHoG~y8-Dnr
      z$I}P@15bVM$zxx9sC@`M_UL0D{G-%6yCH@^wGX>9bMH6bz4x0t^XFf`{Q=+xi~u|g
      zBRk5TauBojRlOM7QZ=66HVliKu{B*iSfKUFp=I+@R^|HvNDRZT!=J=5oJ%LxHy1LC
      z@x=0GdN!3{=voweW12!cS8S6ArWxAi4c)R8-Oegng$L2X(30l+3x-zUCWHT$s;l-4
      zgEt(>GD!1AfrsElyNnQ8DaxX%^K_+@<L0W8)3}IY<P|Nen5tOUjFP>rS`1^0Z(c3s
      zb}nyn#pVs^Tn)Q5sD@MTbmZicA(S}C^Rlf{Q2|_HIDhO<X6l{*dKoS?YcW?*MT`*o
      za3z3#2Dy=1##LOSjEdZz%~^(4vH6l>Z!>g<Bd28z;Vrx!z#v0Mvroo57-9(Q3Ar;{
      zbfDpe{h8bj&)d^yQug4w5IxLrA$-~&$+l4DBQi$erz5m@SuqvcFvY&8jB&*1FqLwd
      z>jj4BSp=s{HAS4zH)Pxt0t9Wtbp|oPz{Z7dQqX_E&>v3z7fBzki{F%tY20FHRjs&c
      zQniM8=(N{;;hmB3vGDp;OUN!vvohv{$yeGfsMG^(c|*4qYD>Ks7wh)s9`NOjif&VO
      zN%~0PplCE*DTzMZs%RQn=ops`!={$(3`ZWEBoHxEGSaw9I%=wQjO?aOZhOX6tE?%9
      zX@_#~?3O%vb_~lhR<P<6Ciq0)rhQKRSsCj>=MD-sujq!Z(q$5zCR%Dk#(g{>=`_W%
      zlX`(4hz2^d8<GP5P{x<o6x~qCS&l=X&p0HfW<^F$gbq+>w=}6HTG{FJwtD?ZI)T>}
      zetfwFW;y`cH&oOsu{@=037%Nmu#=^-#!Fncd7*wO8G7pctA}MC=T_cS9hZ=ASB56!
      z>u~$R#koR;R*Z_7=fX_a`t(CGF4DpPk$CCdWw;C<{4@q=<w4LH=`ACROtTn`j7Hzc
      z5!!xrAm`}scZ`$hpug+_(1|XG@I1N+b%Ev*tu6{0Cf-OtSxoP3mVSwzjnOJDzrer|
      zhMyx+#aLI6epS3XB|Sx=SDNzm|A+wr?De^@uJ;Jg|JcK-cwgXrFVRQNBYc>SR`Jmf
      z2+?r+34#P+>FBG!f2Z{)>(OWRoadZuQ?yD`W*NGvOSnSgAnsv^x-o)PM6rfD$kJ?`
      zPJaWOI;=?kT|7jYx<@d~xRuoE6|;H7sZtLi5?G*7f{stg<|XbWd`5VQ*k_QWnU9cn
      zaJMG!cuijE1s4C!)Kz!8L0ze?ZiX1$y+0AZMB@ZYjlM!`ge1N91g%2Z)KgreaV;H<
      zI`V!lJ*wghvbL;~`B7@@nR7A`jM3kXIgA$i@6l?X;vb?NUy<)?x(MG8>RVFgF+F+T
      zIXR8Eaq9|9IMoUTZX!>+J+!M61)6!u%CXhZ4@D>UNe4~!vgWG4cOqPLz4Zv5S_B4_
      n>VI>#pZ|xA-k_SAQ)Cq=ztC~#mnNR)4LtrjkH5}Sa`5^;b!6p<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ActionMapUIResource.class b/libjava/classpath/lib/javax/swing/plaf/ActionMapUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db7b6648f147e89b0251d19ddd3ac084433790c2
      GIT binary patch
      literal 360
      zcwRg8Z`VEs1_nb0A$A5PMh2Cv#InQ+{o?Y>ymbA7oWwMJ$K;aC{5;>pf>6(()Z+Zo
      zqU2O|1{OvJQDl{HMeGc0j11Bkh9LAZGO*cX=4F=HF)}b~XofK|usG+Zq;fGZGjQ`T
      zurqKlGVuFk=B4_T<|d^Ug(N2B0CfoY<R>TQge4Ybg7{EDmXeIjVnzlvA7Wf=&B(wN
      z3}(4yf;3BDQKJVkh(VD7=rAB=1qKQu5CWY9BsqaRV=$kAfmLfe1J_0%gNcC$NOA#b
      c1_mnz76w}eULcDHqKJWyfgfyy09d6U0MGYUV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$BevelBorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$BevelBorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..44a0d4ccff2614fc614441a6a8edbaf055c33df6
      GIT binary patch
      literal 1078
      zcwU{8%Wl&^6o&s3oH!TLOK5>K&=N=?32iM_2o*)5sgR5!kZ6(>8>g8zM#ipervWxB
      zxV#E$Hbi2<1Mo0B0^-cr3Q<6cge-ghbMgPpoWwtVeftjJ9(Hu32=`yw=k{we96R2r
      zdFI+D=7Ap!M9{UKi_jkh$D(>5&V@Ul)u9nKXJ78C4s)hkM}|=T3ovVvC9KH?)A7wC
      z5jeK%ytVtTAgqKc?1><Be6MRA66guxV$1i!$o8V1?T$qHXZyvw&tD&%5Hb%P&xx7@
      zt!CAGytMp*$m0Tv29~f)SZ+I>cshF37eOaR6x;qW6Kv*ioFuhq=!Ap^?f)FiJ|Wka
      zh0dEZwj+yBty#*=w8xRz@?AgJpO5Q3xz)1VYKaYo&gszQJK{OaxAIZLp*`@&gu}(g
      zi{cnuk>D-D(iHq`6p3IqVR@cR6k>K#PNJliKT;ET?8rH;&ktr#k_m=tZn<_Cicm*`
      zP+2%>>GrQ#qXOdHr;vuuY6Cgsc`fk&I|YL)B!7B-u5hNwxfHLNMtOqOFRJGfKl3t6
      zyGYX>);PW#cVV3sl)8ee>><5MiB|_2UqH4|-r1dCW8SR`oqEcx5%*2qvWc5i*Kl32
      zve;x5?{+I8M9j_bYDhv!E2Ss6@rP2BuJoQi;1B#Aenf#jDOxjrXG$}sGy^vint@x2
      bCRLS{rqnj8G}mt{#vRnuS>&nfxQpCxnicZQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$CompoundBorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$CompoundBorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a6576f37ad9aac8d25a049c14faca586f799806
      GIT binary patch
      literal 739
      zcwU`S$w~u35PcP+qcLjS_YFL_;owO$!GjSY5<Ix%-bq?*nRJKg85IxS{TKyLf(NgH
      zA0^gIJjA#hWT5L+*L&5kYx?c|`31l_<{TslTNmO|T)Xy4=`*+PiBosS_*Lnj6b_{|
      zp<j^;c~h&KP*+<E4w8iVW_>wkxL*YhItY{Bj%n`GNf?R<t}^bC^p)_`jVODPkg;)E
      zlD<_&pA>cpv`^^C8*KxjgOcz<*?#_-zPlaVs1Z7HN~>U-u(??L!CAvm_K(t1iIB{j
      zs!X8`18MZ4kI+|CS{{V8vh<G|z6Oe>!nOpP<NR|o8JsIi$QA!T(=6Z3gn?C6*(mYo
      z{%}i3E8R>^9mQ?-RODy4wfkDsi8TeSrJwhNwbDA6Y59vkIwp+$<{9%K9##VFa2QRX
      z3n`A>{K^tYGoomUyk>Z(z|1y|&hpCY6Z#)x(jc!Xj-Y#fEDspse6B&mFh+nFjbe<O
      XL};8*g1?DaJ&CDUA00G}S#*5>dN9fM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$EmptyBorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$EmptyBorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f458c000345c43e83482467f96fff44f09d3dadd
      GIT binary patch
      literal 811
      zcwU`SU279T6g_vdn>8`o50k1*TCG-XE4T=PNTm-(g_YogwRv{ZPTP^qPS}}P?W6z5
      zr-Fh%KoES^SJ8hV-kB5$sUWzpd(S<bd(XYI^Xb?7j{t7tMvQ=P_oa9xUMJ>2<$K8>
      z6T8U+UF^tWD}5%79v0hj`B8sh-%PSGLc-#BanCD~F?EbGp?Sh!yvZp--3bz<lTBGD
      zk*Pz`%Oqji__QkvqjbKNJ|xf+!kM<tjTO1=ifkyO51%`SZ{siD3FZ4LS9XICucZ8}
      zb_roy@5m}jn62R~rU+9VmCL8Yeoq$9M=rA+z0D?qtvEj>L%XjG;a=xI&t{!avU<P+
      zr`#-)yOzi6X=`<#5EW`~pNaa4Z=Z+*o20ps)~v5~-LQ*p*cMkP&k|-%2np3q@AO!?
      zc^i`h+;RnkTAJswXlKG0X<}R>Ed6sM?)KN6ums);0V2eV=21bF<7vK10c!k`J7WG$
      zGxLH~5y$FUv$fC&k1+Gj>&`ijBj_tC^bK{+?~IgaU=Hx;JT7n_hb}S-Jep@z@~Fuu
      z^lq(Vw++@fRe9~^5f&z$ejuWs-f3>6`r}l_C0ynn0q^E&uHdS#;{S$aTu0?M1Gc?f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$EtchedBorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$EtchedBorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de5aa20b4ec3416e447e1e1fd55ef7d39aad6aa4
      GIT binary patch
      literal 1024
      zcwU{7&u-H|5XQf8oHz-Ame8i9frhjJlC)qIE{LKY2p}0nMWSi$n`CK>j9u9d0Um-U
      z;le2r2OgkL!xJE8*H%>-BoGJh{LweR*_rj(&u`xW>|w`(L3s35ycZwrXzuza_Ngb{
      z*iVCSBEw_nwTyyUIF_yF@pvjH*|Y_d(70GV(hB>c+(Lm+|E<MEN|CUl1hyO4M>2GU
      z=YA3+PZE|R9S&s}xq*M|JR{Ic!sTAzN3rnZq3~uh|9P@r{c<LL5DHIR-;EClxprqr
      zFnhs7mXSlXf-6`eEcIPq9?ss4WH?AVRQti08whU0ahf#asT&a<_y2b@`^;!NouTS|
      zUG-ig6eUXsA5WQ24q>~k>9&~1b}#UPa6cO-<(sPf2B9={Po^G!F|Q>n<;kO|m;`e|
      ztL^+7xTU~bgz}NT@(Wi@zM7rnzN#fu9N(8=&l6E3BMTiu^RK%h)c(93G{G+f19@2N
      zZJ>lQ+e`dU8mPczpI?j5WzIZgOKkJq1+IS8l52dH*}^EoG)h?ExRQvliW*x5SW5v1
      ztYj?;-TDISS;8jrMne;7i7F*1Zv%DRocEuy9KLprt<~MxUEpRGwugf8K*Me&vU8Y)
      z2Iok7P4*0p-Ab_op4ntu?ACYhEwG*C9>OwSX>K>sopX!nC6(9ET;(-&e*?EQ=ML^_
      Kk{YGWgwiinn$sKr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$LineBorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$LineBorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8167c2992a02c07b713be4cb21961f41e7bbeaa5
      GIT binary patch
      literal 776
      zcwU{7%}!H66vzMP()Q9?1qxO9lFtQ&gc~-*1jE7_lWQ6mBHfr6r)7YF%M9GP1wsPP
      z;B&ZhMdHE-@G)5O5XLjpMoBR-adGE-<UjxOo0I$F=eO?w*02~NAgmvVQ*j>IGo|;U
      z<3#L6FHO25)9v`3w5F4`<zho=+20J2BTV1D+wzL&k2pkuFnQ1ZuE!u@%n2f8qAi&!
      zk*EvNN+e;}`m!lgtBl@`UlHgH;bGlqn+csYMbeS^FCRYLeEwLyB@|vLt+GwR=u*Qw
      zinA=Lo5Z9WwI(4~H#@R~0aVI(gdxI^<9ypWYRU9{cVeYs+B{J3Sgw1`T(++);d$f#
      zwzNUWw;cpOs2_`;eh)RSH67%ngB&Lmd3yU$OUnop6G~g&^|f+n)&60t&WuowwU%i;
      z5!Ol@VxBPfPk3he8$RYhj1wS_kh2LCQR4W3f1dzl{>Uwp&tdLtavg9iEU#Q+<g3?=
      z@>z1-;28Pf1Y=x3?y6Ab3_g2;r|jXp#(Q2dPaWVGF0V{oW1`>e5{2N(o6UA*zs<s)
      Wnaidy?UA1O+cT_%$LED$0mWbDVYlA^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$MatteBorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$MatteBorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bdfcf949f3013868856515104086ab36ac170e2d
      GIT binary patch
      literal 1030
      zcwVJaK~EDw6#m|}+d`>;NWoG-E2yOyH=c~a^k9w2n(9HM_h}hm%(6pvr(*aMp8Xj{
      z6A};J<?Km`KgIZFTD2(>6WvW_zIpq-_r34!oP7WA5x^bX%EKeveIZ_oS3!EH;@#jN
      z5<9^IoovfwD|{wX-AlT1^@%V>jz;sy5|)RPJB|?yvGd3gDrW?Si;NLwEg?`k*p!J9
      zkvbBcND`(~cWlcfRXW}Z9}?&>;X+f#sS&Yhi>N34*GJ#JoWA)yNyyz-u`&(9d@bas
      z<*JH96Et<ClZ~}DA=}j3vVaU`ikQR{VXCEK`Lws+k;(JE>P$;_SyZqzp9jIL*;6Uu
      zUh5xcwL!=jeZU4nE*8lh!|isoF?yfiCu(<(1Af=`$-YNBCzO9X`l%jvb<CcunXA^!
      zGGWZ9NZPn{afVAM)y}JM-Bws36gFMEkCZiC8g+5oW)q5G9LuB`i8PgI9(6+XuVdkA
      ze;f>|;L*T?k36FVjHAH&1m8~&MgBteKk+)vkq9|{fnvR~xKzrP{bO8w>zJ2#E$|NS
      z9VWc@nB{Y$&qWDyfJ5`R%#|!EGx8i-V3cvF!YJ#|B9^!xtGs-^@|98LPpo|MpUPES
      x8z`>~lpD;p{9Jwg7^|b2U*UVFPIIo$`lXq3wTPoPT+U6@TozwJtYIDFKLE@O-39;v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$TitledBorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource$TitledBorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08f4ec9e084da241cb4997eed4f81102eb42e355
      GIT binary patch
      literal 1670
      zcwVKI-A>d{5Xb+g-L`Bg3nGgw$j2)3Eky)1Vn|?(v1DUZKCUfLu%x!6?TRrzi~0&)
      zZQ=zF;3H{boO4<VmKB5E?3puX=Kq_SbDI73^XoByJGiewVt8<1zqQ|)(UI%#n}?pg
      zXRZd}t`lxrFP$i8ggegYh8ug%Zr-h-z%YC^ds{@9XTvq93<Kv7XI0u5dU$~82IjgG
      zy0+)Ox3@iqp(_&GEhmiJz~8hUGq5#=j#}VHvF*oOw%2f!gZ<92#p5HHL4D-<ZoJG;
      zo~R2&&nDn{91?eFa*Lr*3w9kHGP(_v(8<tQcYWts<IT1cZY0d^day%Co4~YBorU<d
      z8!<er|Ld%l7?hZwaKO3J7=|Y5Ee4sWQ02Vj0bX*2noJI9su!d%%w43|YC4=T!Wlyh
      z^OsAutR(#=Pp?voqSduV6uW!wjvdqG(al+ObK>B65V?tO<+7Z_XCKAplfaMDswX*i
      zoS`Vx`2oM!-y<1b{3q*lTMNA4<W^=mdxk+5Y;i*GHXlpp>*5_earqM{=by(ck7qC}
      z-*>{AXGf6}X;@^a{`J8z^tOI-sDe>}5)^1;^`i)#)^_^zB^Xf2rcZ!=yU4RlK8aR!
      zYPyLlUqsAR`qjBt`VK|<fgalTCQ&Gp1z}x7A8Bx{N-M4YoR-`MMK1n9>pBKgt)W!Q
      zq7GzQwW;ZuCWiB3eNg3!5F1ItGBGU`;}$Pb60+4)_7x39;VL9MSS~biBd@%IqP!}U
      z7m~<KS<jU9RGC|&xFsskF-BHF(8g2RA+@H`Y9zFZ(!|6muf+3YpE?Q9E*}c!auT00
      zjf`nzOe13&DU(}Mn5KF;eI})Upb2Q4b3(7EP2A4&KN9~FI^@rS|1`<S_@#_r%J`*>
      eU&{EUl+P^_bJT@I|1+F4kGo<z{CXE~55-@N2V8dm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/BorderUIResource.class b/libjava/classpath/lib/javax/swing/plaf/BorderUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d6fa8dedb2b3aeb113bbd8e8ffd16d7a1c7748e
      GIT binary patch
      literal 2641
      zcwUWFTXR!Y6#jOb_O!{N7SaT2p$Jq+S|p;#t;nUNKrm1(ZMAqkNjAxW)03EULctlI
      z)Sn>w4;1x5i%zH1(Z|j>j<>&{PdxkV`0brcFX;&-nVhxHx_s+fYwf-B%YP4l0&p0P
      zffj*1H?7;&os>6cyM<KQv2LVBN|n5<Or<BJSE^QW(m+U{Te+nii%#R&n=<DcXcy>R
      z8=Tc~^>70n0(~2>*P@06dNitCN?nr`+j8s=tgIuM%+s&avf|k#cPf2eKwK8sGFoyy
      z-*WwF%c;t?KhDm7apKXVmjvR{&lP39kvIutni3oq*y)t!WQB3^wsZo5E0*mwwf1Hm
      zD|ahnyK<wgBQG6UuzclKkp5T`cDoYE$MOq}mh!R_0#BRh##RG61&(hzu7TimVf3Nj
      z#BMwz(0<BxZU3}DYa%%<@RX|JYIQa%E0eVWY|E5#?7zh+@V&0w%~CRt>6l{rtch)k
      z=>dUbn==iB31dH!is&FakVq?n{meYkd>AV6b0(tL%9+x2q}gPY<MSqZ6vGz;j&9B{
      z8083#8sNU`(%aXX^HZZGr&KX<495l9^v>We&a5{Nhk58us>(RqXrj@o3r##`LnNoe
      zXhpw)GXi^8k7L?Vd(AmlDO6{r>yO>Z$+FL56UJ%utBOZV#8hiSe$n;>_GLCLoBSeW
      z%Xa;mLEz9jwzK7u%S^+ox{DR7T(ooEaGIawbOdd<WMT{#cyMz(=0VXk71)OW5L)i=
      zm*(#-+c{_F{USGQQQC!~&+V#4tcj&vPx>tBKp?&3s<P%dtaweCn7}p8&h}~`<7Mmp
      zs?=xUx^kE?F^$&+!q;>!F4$`C#~NF7NMQ?@Y1fsNQOEK;=_$9M{b}G`fs>ndeLz#M
      zx&b%Ej%FqU*(W+_W3y%d?nc~L6MekdmDLk;APf|qh{P4k_XBRrSfJj(%_q9;CT-sd
      zVj2%NU=L43E5B_p(1~{JKm;arTlk;Yf-Z#BRm*i)U1VBD>#|477Il~?I~X0uc1G^t
      z+bQbRr)M6$%h<AnzL^E=dVpTOf2*VR@Y%(@z(>sbF|&Mvz1jjI?OQ<_(>_3K9s|qh
      zTEhOB&;k+<FhIpBRGb9>pAzaGseQ&G?vd8#YaoY$AP?3dTQ%fCDjFfbB;<WUenrUp
      zg#3C9<e?SFGj+)A^GGeDdkKeU=JDbJPCP)0s>YHZ5_E};{BZ@0e<y5O4eUBKN*5no
      zz{^9+h%DhW+jsWo!J!{;?z;wpzaoU+*#6(y!aq5TzcgmNhJaC=*Tmv_OuRwVEmY6*
      zAxCadMhCygxuJu*Vxd@DtbGv|4Xh>!YoNb5{eLv@rCP`ea1?1=CZJlqf{gZ#;tH<n
      zLZcYxDx_Dha@D3+uW{AR7+yRp{i~H6(Nq>O*@D%cwQKl)*VGkRNgt`F7wVF#gB{WD
      zq^`gg@rJ-R>#;<u#xiSOb*vWlT|M8#Ta+hR=6>4W=9u51e2>zi%u)7H<|z+TO3E9Q
      LMM|6U7CQe2qf&`Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/ButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6cf64bd5fc44f7140cc14b8e19b97eca6d76a6e0
      GIT binary patch
      literal 295
      zcwRg8Z`VEs1_nb00d@u^Mh3~O#InQ+{o?Y>ymbA7oWwMJr_z#={Jc<4b_Nzk1{n-#
      z=ltA){Jhk>l2A`Z1~!|_yv!0iMh0dL%`ip=7U%qwR4xW)22LIZRt7dk27aH+yi~u^
      z+@#c^ki?{%R7M6NpZw&+oUp{AOb{O`$WoG#S<J{F?Ss=X){G2X!TF^{$*FFcARW9g
      z2|bV&7DWc26Bs~%5eR`+14(uuPan)@U|`kS&cLw|$Y5gN0+MWCK|=;^Ajtz!0Hk@r
      J+WEk$_yH|ZK_&nI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ColorChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/ColorChooserUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38759f4415313c0532a8d01660da49e26fc33aa2
      GIT binary patch
      literal 317
      zcwU80!D_-l5PhSov8mOf*Fy1DdoW0$P!unLf)Kn|y{~qwD{)sgvGun+2|e@!`cb8m
      z=%r9_2IkG1c{9B4pU*D<U0i!85N=oUUG9S9Lz_jgiRD`m+Ss~qX>Fq1WavQ<ZvGLi
      zH`XYVPKJbXUmKkc2*tbhlpsR;s(ci2QAG)5LOs$(jkfEVaxZcgD?%f(a~V&i(-}Vv
      zMY_}pp%tC6)Fb#~yLEH*th2l3-*qQD7cH<IWI>#4gR95vA?HBp{(#D!n*w~UJ|pl5
      TfhSyYS3QatukshQTv`7G$LvUj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ColorUIResource.class b/libjava/classpath/lib/javax/swing/plaf/ColorUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a2e13134b178b038aa00ba8c27eedc1ea2bbe30
      GIT binary patch
      literal 762
      zcwU83%TB^T6g>l#mk0=mXhD%j0+`si#*ipUNfY7%fqlVRYLJ=&!f&~e#DyQ=M;Y(5
      z4Jv3{%*>hI^J@G4@%jef93?+I47q#tNnJ>jxiQwI$B}v`HO!G|b(OX@F=y65^Fv^W
      zaF(Rbr_R(5AA`7|{1P$vE{w4;trI9Kic;w@2o3XA3&D%+F#HHGL|evKyPiGtHLIic
      zM<j~3%z--Usg}X-?n7ZZG$suB)_+ZF49udX(9&u3Nn569o|)pANd~W__jxB-mYu;N
      zAEb#bGbGBbpYK_7I7eX|BS$h_o3@)*<WjEikO4z%UBM8#vD?T7FP~iNc*f~C0eR5c
      zq8}m9NuPuEAl*827w8OB#Y}dI&@*8V!nB9z1Z3hiu|ufp@DM>1uu%-V<ib&$kjF*|
      zLS8!|=_b@^!e_p!xWwMNe}_7CZU2<RTKW61Z~Jqv^hVo4v9!d&x|>ei;h$~ARa<e@
      mR&?8D+=NTFZLoU!g6uDa=OkNvD;!)!1nD#9?ZO3HQ~U(~z;t8)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ComboBoxUI.class b/libjava/classpath/lib/javax/swing/plaf/ComboBoxUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e77c6a3ec0cd5dcf300fb27e1ddd8d02c0f80acc
      GIT binary patch
      literal 444
      zcwT*w!AiqG5QhJ4(?(-$wCcs`!CULWPy|6L9xN0pK?K_zdfUWRSK4gICbh5SN$}tU
      z_)y|(sz^cI!+bN#Kf^!s{_*+-po1M7C5GlBpYge;pJaURB@=$<_0%*}7ivBl*svJ(
      zeiI}r7I8KjFjUWEEVFZla;qIMSUq(s9F(zILj_d^*O#%l%BP`7hdi7JhK8>qJ_&d#
      zP5t$0We-v_?EC-N>C!YUvTK#(Ng%Z>8k?=9mdkH>cWms`rCyfr{v~gZ$(huB73F%E
      z@|j5W!kKfU@-z~CX$tqp&5@a79e_56c@|}~F-4oIV<IC~4qveHOi2k2MTZESkoXj9
      al+_j@;yTQ+>u?KhV6$MukThGxgzZl##cDhN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ComponentInputMapUIResource.class b/libjava/classpath/lib/javax/swing/plaf/ComponentInputMapUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e505fb1cde0d3f5d46b7aab505a66fb4573bcf7d
      GIT binary patch
      literal 466
      zcwUu|+e*Vg5QhJWF|o1QT15mA^v*+R@Ve3q141Qw;i322xavx}2{~wA%PYYPAHata
      zC+n$D6l7qSnf?E7clPz|`31l}R$N$w_MNyFV?TdT`o>RVaqS1mC{47~MPH|7aU#;o
      z{+Y~^GK-`Oo3JtIm=e2i2<ubO9|plWP+Ao|mTiZV!sBmPcV|GbgXBtjn8AD<F6Ic0
      zP-%Huj)pS35W|>BtuTp1JP?_x`p=<V+^U?=3IDTMmr#qojtOhOJ&fR;8^e*R?%MnV
      z*{KlN0`UrjS^jh4;7vH!xa+~<0G!>uCwPxsS*UaN%=C~Q0T#Gg{ZL^M4Zu`QEE!hI
      Hc$VJ*a(#O5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ComponentUI.class b/libjava/classpath/lib/javax/swing/plaf/ComponentUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b708025a65ea12a185fd3fc4bc4045d94a87d8c
      GIT binary patch
      literal 2426
      zcwUW`%W@M(6o&tnWZf8pFF?SO9TA713rI-_1dsy(0Y=2w1Y-jxx3Scgnv7<YnNcuV
      z<^i(FD#eas$s*Z^Dj-nFGRwR|ULosLPPfJ*Azy^5G<`egJAa=(JvD#*_v|Hr5AaO{
      z0fyu~{d;}A;M^Bxt<W^|wL-~iG%b^x?ov5|5W|SHC>T1eFRb3<6_+7ABTV6*WeBD-
      z%M78CRpoI65z{b)FvFfXVe<J_W0l)C^;Ls2jLlgU-B{LbA;;ci$gK;9VQOwC4Mm2S
      zFdbJnjHNO|BK?~6Ro}8Gm9PrKf$a<!cD2kN)KF6wChaEQK^FA;ZeiBen{`ofiaSQB
      zF^q5FLy2iMtGY|MIEX|96Ab&e#%M@lk|8Rbg{J;pi>pko#PK!`MUY|`-2~V04yMVY
      z#@&)-ST?0Jo#|>&b43~Vu!i@f<uF-Z&@128Y^!BfB|5DkgDf!|pD~{9M`V^I<fw*Y
      z$alis5>>aZ1eWE}`x?~_EyZZ*3KzAyE7`|2e1sF^uqF)ShANUsx=cUGWB6FZIQG)A
      zWmLV;BmI$SijdcBzQ%2vR~N+(+&`PG4x;OSQ8c*e2+JhKZem=c>TI+ck|2Yh)o=zI
      zOZxi85~-<Jrb{(IH8{C#9NNMP9r-%_sb<&%>1J~}WLZL|2FTmCs3W*S*Q9&1F4?wa
      zM{$*5S^4FaUtap<d;C&Wi#sXPa#NzwG&pVBO>L+trs#$l{xD^kDLv)1Rx5_?IQckc
      zF(<F*HHLlOsjJ9~u1%3tT~APg&Q~hjaRlAZQe7BTo0}!7A9u%#r|RN!4L7jJu=jNc
      zWtgv%dnUb+5#3u9hHxJgHkncpFX2`Mr04J(IcS)d^*FX!JVSB&V;v+%>A0)mHojn(
      zP7k)H;t&k+MXP03_+=qqa3eiOmzVCLLsXAJ$e%_%dRfvlLZjo<GHQpiPZ9l%IswG#
      z8K)K`A%wfw<vEcNwZqg>Nn?)(IH7!KuIn6D#y={@{hdY6QT9eKs$z}}M*KVgL08*D
      zoTGnmE5u`kNOcx_5c>$rd{}_mw|v-7w9yc?`J-(d_yyCsHm2rtG<dg-Be`IZdU8}~
      z<HOuBn##)2$!_E+MR`Wg7ZmY#;=ZJp=qnt-AM|$nQz^=JBKV5(zM{ORNJ9draGI1e
      z`5N)GoupQ#Bfx&`+v(pu$qM+~fS;@xpK*p}rBygfJNu-c^G^>a>~q3C=iD1|{vE*i
      z6z4sTK{hfQ$>c*EOcE>i2&0n^F+55A!XpfYo&=xx^xg6-*#tC}K!VzCHj{poq!&f@
      zE}*0|Byo{?^sRtPxa>uqQQ4((e~#HZW96s#>{VZ!41I}Y>C+<9a}DB(E^B8V3qGlH
      zE>V(vy^Wh)y($~*bWb*-zRswhjoY~6k!Hz8R%=X>l5MQ?C6<+YN;>AFV*Zw6_)=||
      J;Vb3&_5Y~X<sAS3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/DesktopIconUI.class b/libjava/classpath/lib/javax/swing/plaf/DesktopIconUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9165b28c514adca56e32a3a5725c411e78364c91
      GIT binary patch
      literal 314
      zcwT)@!A`<J5Pbs+g@Rx_8v-}<U}GflAmM^BY0_{(xG!~;)w0{PMf@#JCLa6%Kgu{Q
      zT!;xX$-H?pZzk{O_v;(LHBKFr2%T5?E<e0<qs@yKNAlUbSLs`3V?VTJ<~tCC^M9JL
      zUB%WYlg)fWb*PQbMuc+zVonfa`=nfyQE#GxDxn={qbBRsLM4xK5h=o1U_%+rWukMw
      zABt?LQ$ja5?&yx-PVG7g)q^g69c-`iW6=YfK_0}(Cb&AxZVC=mE<aJ*a#MoK)nx<*
      T5V%EyyXH>Bcv8G*70UJ>X8A`k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/DesktopPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/DesktopPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a044d2b2510bc2e2fae2c5999bf9d6ffc3d066ff
      GIT binary patch
      literal 314
      zcwRg8Z`VEs1_nb00d@u^Mh3a8#InQ+{o?Y>ymbA7oWwMJm(=3ylKg^z#Jto{Pj&_t
      zMg|!SHO~3D1^IcYc_pEqj0|ixnR%Hdc8m<n8k%8@3@pz1DXClx%nY1746F=nj12rf
      znR%&xrMXF|MInhvIjM{cLO%J)i8*13MVTNzRFI`4BeR&1LBR*Vi>w(LxPtRbi;`2_
      zGQnn{$m)SKvnVnE9m4<uj6eu<1dwD0@{GZJ1_oBG?F<|nfea=FE+EMTq!}2@7+4rA
      U8MuKg9*80!%?mby53G_O0A3D9CIA2c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/DimensionUIResource.class b/libjava/classpath/lib/javax/swing/plaf/DimensionUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b79a912db393af474dfaa314cebba303f3e381d9
      GIT binary patch
      literal 402
      zcwUWAO-sW-5Pg%zL}RrY6@+?F5K#{X&x$CD5C|Up=zZI+%}BbDBsKmmPl5-3fImu{
      zjY1E4@G|pe_PsZc{rG%)2XKfr9}Z#rK|QJGsI1wHqQ^|#M;AQSrsUk*#n-ybC&fVf
      za0#JhMyjr+3?Ck$`^#Y}BzVVcxH=)s?8fn4kKmr?Lmi-n`8Isa5;_SReKi^Pb#bfu
      znP|c!AE>OS3byml(ydZ12|LMu0w2k}nuk?Npjbkrnn!6x2yU9^OSX>de+Un(JGMX)
      zP(0+L#KGp2Iww;s`<8Tnzq|2@;6<Q=w$wm6a0(A+SP-=NO~WEOK!cXBEG8C(f*ips
      Hje7M9$DCXa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/FileChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/FileChooserUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64c7427473403c5dac42b08f54e3277158e6d811
      GIT binary patch
      literal 747
      zcwU{7+e!m55QhKgYPFtE^(=a46<owi52zKPQoOPDKCWYpY&T0b>*2Ay61?yMd?;~}
      z3R;8;E^PiuX69p(nfH&^HvrpMETBhV<xbwq$1r<PNi$4ic@v(hm@2ngXJjs`1q1?1
      zzhWx7mFk2Nds!9e-&2XQ2Liq8<%U2|(brT&F9wIvhkk*vno8(AZ(Wh8%d40KCTlv9
      zaYGvA_FspAy;YgOYOQ-ky8@*q*`p|;)E>pLbMkM=2pq0=B%l3A+%0#wZrBsGJ>fTj
      z*+a~B2Mt9J0tf#Fx_rh>yHeBC=zBWOt<_1L9<9LEpWHB(?6|Oo{mdC<&WVz-Zq}7`
      zuT?UXMKY=6#&8=>l%dFK^CYm`4bAPDq9n_WyD(L=hRT$G{LL;|?Ru2<_wtP5h0aan
      z8Qjc{_H4P}U=2JCa9@Efo&sJAyxU<FtbH3V7<gu*2Sr|stiV139Ab#A;dT(~2;2aU
      cV$AC}CcI8!%Iox(&Y<LV7IT~@Fz?9=p9oRTcmMzZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/FontUIResource.class b/libjava/classpath/lib/javax/swing/plaf/FontUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ac86b06a947b09a706de227b25c7ccedfc81937
      GIT binary patch
      literal 657
      zcwU8(+fKqj5QhKd)LM(kK~Mn^4+)1v;x)z_6OtwbjYaMkELa1rp+(fU@<tOcd;lNH
      zIJ=;RU}Boxo$Y+{|1<5!=i57gV;m|7Fcfb2J%6ZqQ`;HT?uNWyYq*YoWn5aGI~n&Z
      z1tEs0fNFf|%cOz`Lw2d|w}v5dVmr2f%8)5FW$lm?X8L2I>xNP8Foe$BYfD2At2z{@
      z46&x|SgpyZYmM8yJ0z7v)9vwLhmUP>pT7+GH@3%6Z2r@Dolu95q|8za3}MfI6mrZU
      z&a<BcH}Ca(&U(2c`pf9p#1?}xu>6)3OqI&Zk^;@@$RW?55^B!$gQc<|QUx8mA|+Hz
      zX~+6v=0!&a&6M3YY*CzC9O+2FD1uaJh3PK_=%kNF`wHFK2+;$mm1-{k3hh}EI_(;r
      zz&WuOh*DIUaacnPkkLBgq#~jOl9E=Dq9`aGHs%fn)rnlZQhh<1);6u3Kdd+jcBNH%
      SR`6pLrvdgzj$vQc9DD(BeTRbp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/IconUIResource.class b/libjava/classpath/lib/javax/swing/plaf/IconUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2961df89e3406d25e2e1d2506b0370e23bb04a67
      GIT binary patch
      literal 1114
      zcwTK%TTc@~7(G*3TFTa9xr@lf3-n@F6mP+p7`&}%AX2O`@nu+s?T}@+>23x22fp}A
      zd@<1wG|@*B|A)W8cjGtH1;jR+*`4_==bZ1%{`~Xh8-NAeO(MoHwawq~Ju}#qo?|v#
      zzGYgr@4c|rMBulYwn!q*FrbP|ms82=#<sA-BzmLhQLE}oBE>M#0r)Rinqf$TN#CrB
      zrsS^N=Nqmdv_Kzgq8Ugf;2{Hh#*kU|y&&XXSmSO>B+8}Cuix+AtuUlEg)1B$QfsdA
      zzmg?}-h0xM;eCeT`Ob8{#t>ijH$@sf7%`B;C_~SDzLvx|!|chpma9nI2TiB7BfRj@
      zo-G<7=}TdPVSJ_Ky3=z<LguD<R8~%743i4>!ZCjvuNpQ<1o8KQVcNg|&N5^x(i1DK
      zoej}kZ<~>;_%?aL$q_n7!FX7g0mDqC!{O6cM#J|txb#95W++Acd^a?g{hfyIk;0{u
      z*pnu2)TJFPSysN*j|AooT*ei$-=@pz)=MdeVXzAXW%g)UwB9lpj?fxj%FVE@{k0VS
      z4FlJ(Kvx^3p9<;JLzTH@U{Ph#RXxaKsm2~WJzZI`VutMNp(lYP`Vb?#`(aQlL%((m
      zXK0bLw2xCPhe3J|(djjH#OOO#IKXi62QptV_9}Po0O!9Kik~s{QFqVKdxVgIRqB6^
      z6xIl%iczd%R_8PZF5(iPcZ!QfR<=b<g8CIgw(tp4#nR+({19^qoDifn$QDU;H0WZx
      z{1`NgJPHJ+c14tQbrx4qrV-T6q@5a$oQx<JwFE*|l!v&^@Zp%PS7#cU$!J$aOiVf6
      Q9pPpt!hTnT+q&w`Usr$TUjP6A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/InputMapUIResource.class b/libjava/classpath/lib/javax/swing/plaf/InputMapUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d90c81e4782b7d95b71a12fe00d6d4b6cf0b6819
      GIT binary patch
      literal 356
      zcwRg8Z`VEs1_nb0A$A5PMh4}q#InQ+{o?Y>ymbA7oWwMJ&%A=t65qsvP|u*$;{4L0
      z<WzPB7DfgUWQ8y_><ny-4AK}zAha?vu-RnhWtP}6GB9gshA}d*IOnINaxpM7aPu&*
      zGjK36@cU%urTUfTCZ!gIBqrqmbqM+7Cnx5FB^G6Z_)tNXl8nq^Mg~<MBHU}u$iNj0
      zX1Qg8^onCD(E}O7pvVAp77()n1B4L>fer$aoIsv2n9sn#s<oYgYa@`s#J~e2xqvhS
      bgCzqCgAD^Oki`R0#K6bE4>m#otWppF7>89Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/InsetsUIResource.class b/libjava/classpath/lib/javax/swing/plaf/InsetsUIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ecc8b8bce8052937a107e4a4a187a72303565668
      GIT binary patch
      literal 547
      zcwU8(yH3L}6o!Ad34zjbFSoW_!~zUNNNgaMBBYe61ErOa7;uZ*8l`a+yMP#Z4<3RE
      zi2-&V3UOi>5DX+z&gbL*{O8zt|9E)?u!}VhDTeiHe#7s4eJi7`KL~lp4<ap$ZUm=7
      zt6|(09vp_rMCS8b^S$k1gkjbuLr#_DP(^~bLQ;=16#kh0w97Ee*-EMWx`-tY<$Y4h
      zFs1FXDPk>E)Ci6kScM^1R*^P5GEE*1g<Esq+UE}!j|?LRGLq(y!P^Yz*=jO4WpyPo
      zNMkOGDNNJkRT+ueu-_8#*;kjDs%ldcPOWJDopel3YKD#KzxT1vkTz;SqXkqJijJW{
      zTFMyJXK-WL?NK6Ax7uTwc;|mx>?BRF4sxQ`g@-ZXMT{d$F-N~Ag$W{-9D%+wl({6G
      zOEI%uD3<chGiINxE}!Hm0u^#O!93C4ml6x)2}?^@CZB`~L@7%}qO_$Fkwg0{)^YU{
      DLNa@J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/InternalFrameUI.class b/libjava/classpath/lib/javax/swing/plaf/InternalFrameUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba68383478209e42effc4828dfcd55cb8ceaa0fe
      GIT binary patch
      literal 320
      zcwU80u}%U(5Pbs+hbIUzloo0Q7G4a62@o5SOD?(4DD(?1xaMw`EQj!0R3;XFfFEU;
      zJFT#ACYd*H=FQ}NeSdrcxI@cBiE#NU-{dY>Z?#zlt3)n>$YjbHnS@TJY7%)6go{6_
      zkxf_DD3eVhLUpK(&K?NmPIpQWBm1m;lyOo=1yw>b)<%st=}fsNIZG7bJhpS0Or_H~
      z{~e0#MXw3h@qeBM1pm=)++2k^KWrcEZ}SJ@3Ty~@5GNbq>M`pT9H`v9qqgU!1fQ$V
      V2;4)Uk5lgIKO)9P@#3sdHV^(kNsIsh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/LabelUI.class b/libjava/classpath/lib/javax/swing/plaf/LabelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe823cbfae95f48a1abcef214d135b02ba34f87f
      GIT binary patch
      literal 296
      zcwRg8Z`VEs1_nb00d@u^Mh1zj#InQ+{o?Y>ymbA7oWwMJpTwlpoKR181{OvJ84OwH
      z{M>^4ywtpsP)|k%Hk-`6%o00B24)S-Fh&Lz=lqmZE(T@>P96qU1~x_pexJ;|RKL>P
      zq|~C2#H5^5Mg}3D{N%)(u*9NF5FaYYQj(Eb%*Y_+gUc<}j0{}C`K3k4scxAd4LneB
      zJ&*<#MFyY)7(jp#2!R#@Np>L57|ds2VAa~rz_Ag?U}E3`l3YNVfx(=Cg~5t}8_42;
      OC<4;FU?cdzD)|AL=|7wR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ListUI.class b/libjava/classpath/lib/javax/swing/plaf/ListUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0ae0e6f1a605d0de0334c7b520f6a2659bd8c3c
      GIT binary patch
      literal 497
      zcwTi;O-}+b5PgLObOBfKD<)pN7?8w`@nn{Ga1#^E#u!EJ1uE8*mOv5ymM0Sr{s4cJ
      zak_Buiyr39$9t2R>Br~WJAf1H6p&%qed5o27LKP<_rsy$4`Cw5_P$ww$FTpW7@NV+
      zXrYP0kZ(vW?KwlXT5B_SvFQmPS*(_jL!Kc>q!!ncK}U>QyrTp|B{5yD+I%EkyhwWX
      zQH~k*k|m==)Jc)fN~2q*se59^a9I68zjD+lO@(}F!y6;DjcPPxAf2FPl0}Cl(q`?q
      zn4#PkHWo@<n2GMug!O-g-<7wbYq{<#L2CcbOh#RCDcz36`6|bb=^cPh2KPMj=u~72
      y6rB<>!raj-R$j=-z$fby0%t^Sph#Y6P9iMB{n8qO6xXqlVg;L2XV^+RY<~fq&U>=}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/MenuBarUI.class b/libjava/classpath/lib/javax/swing/plaf/MenuBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b42154201518b0be3324a693b243159e843daa9f
      GIT binary patch
      literal 302
      zcwRg8Z`VEs1_nb00d@u^Mh2;@#InQ+{o?Y>ymbA7oWwMJ-_*QPr^KRAPj&_tMg|!S
      zdFTAxg8aPHypm8)Mg}&U%)HDJJ4Oa(4b3n{1{UZ1lvFMTW(H0k237_(Mh1SL%)C^;
      z(%hufqL9R-oK!{zA)ox@#GJ6iqD&AUD#%ijky#A1%m=q?tQi@&g7Zs@l2hF>L0b6W
      zGI}6QEQ$<3M=*c@BM<^D2a@bSo-vruz`&}toq=N`kio>j1thtEGy{V<0}F!{12>Sx
      Q15pH|dBH~TfmQMY01g{M00000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/MenuItemUI.class b/libjava/classpath/lib/javax/swing/plaf/MenuItemUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5d1fc6ce9781dd17e9cf9cb900eba001d1af560
      GIT binary patch
      literal 302
      zcwRg8Z`VEs1_nb00d@u^Mh5Au#InQ+{o?Y>ymbA7oWwMJ-_*QP&yv*KP)~LS7Dfh1
      z3<XZ5B_;WJp`MHkY&MyBnI(3N49psuVT=qc&iN^+Tnx+%oIDJy3~Y=H{63j^seYxo
      zNvTC4iAg!Bj0{3P`N@enVTnbVAU;%(r6eP>n2|x&2aj8<85y{O^Gl18Q{6H_diW7i
      zdLV5qiVQ$!Fn|Cf5CW|SlI%d9F__Q5z^b*Kfny_(!NkA?B)Nbz1A{pO3xgE{H;}~x
      PQ3RxU!A9_bRq_J>6P`jh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/OptionPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/OptionPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c19b39974fd5baf10e2f5ceae0355bbc99185d2e
      GIT binary patch
      literal 433
      zcwT*wzfQw25XL_@X#=593JeTIh^;UX!CJ%;2`MN7BxnaVHyAKV>?n4C*J46q-~o6j
      z#5o}T2&o?KyF1;_{?2djFRuXhuoj@juyM!l`D0`rq`Ha9oL@($rIlKpaV5q{0H0y-
      zZzR@5sg+Q6oG^3_q>}cK!5eN*82ngYi4Y#<yJ(}s&`YHfCv`Cu)dipCf?*}q8P6xY
      zlCJ)0`u0{DhRt-Qp%KwW<RY^PJu2NTc}?_S_=h|GVMfl>dZv}-Qkl3mRu|v?&1~|L
      zAw1W0m5C$iJobNE*>#w|1zH^Lc$Cq?6a%UvQbyX|dB)rmB`t&$J56&R3lzJb1Eh;^
      R|Gb1=qs!=1pB8PX)el7|Yv%v}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/PanelUI.class b/libjava/classpath/lib/javax/swing/plaf/PanelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a188ac34b4848976955cc21499e0b923e96dfa91
      GIT binary patch
      literal 296
      zcwRg8Z`VEs1_nb00d@u^Mh1zj#InQ+{o?Y>ymbA7oWwN!fW*AioKR181{OvJ84OwH
      z{M>^4ywtpsP)|k%Hk-`6%o00B24)S-Fh&Lz=lqmZE(T@>P96qU1~x_pexJ;|RKL>P
      zq|~C2#H5^5Mg}3D{N%)(u*9NF5FaYYQj(Eb%*Y_+gUc<}j0{}C`K3k4scxAd4LneB
      zJ&*<#MFyY)7(jp#2!R#@Np>L57|ds2VAa~rz_Ag?U}E3`l3YNVfx(P{g~5`68_42;
      OC<4;FU?cdzD)|Apvp>oJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/PopupMenuUI.class b/libjava/classpath/lib/javax/swing/plaf/PopupMenuUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9aae8db64df6aa3ff80c9cbe5760bd4a7ce90d2e
      GIT binary patch
      literal 981
      zcwT){+iuf95Ixg4aWKZc0BK6oLb*B()IvO=aFZ%38KnrRO&|K^rrXqz+Qyf({U;va
      zr63;o06q#ayRj@P+*<O^>|D;AnVsK%e*OaR6poH5LhGY9_D-DS*bjzIH1ZCd4`Gx=
      zn<B{it`4m%Vm&;H!axLR-zC&u_<^6kB2?`54nbQF_l1E9u9&EzMwssTfq0)C?TL8X
      z+ZzeOTrV7Wqa82y<vllQ>7kzxmV1}+=@KkIQHJf<9}Y##8MaDsyyMgnV<zQnhFK!s
      zO10bGH86|oI_3xq7lxUza6>h)OQ<R@Vet}JLVYMw#e?A3=QzJB_;y{lea@vkT?4n!
      z(y>Tr{^#8A25A_dnpnazVU~+*9eT0YcY`GLf&tH|WtU*)X$*Y_cXg}~8s(Hs+{1l>
      z!N6`X4nN5OHgZJOYVov+=0g+nctm(@mqnD>%3J2CMw4MRFPasBPWb1AqEjZg6=v~3
      zZ1{3DX8zfLHJPrhfL{yptFXpv#;4A=XDo?jb@e;y-&mP~!Kc9zcnJ+}aFsQ462$Tv
      zOWr9==K#-H%Ghe>3^QK}fSO9^tK`NcAWxRsO}5Fp^JwNU2W-_?T0gMBNVhw!r87ME
      tTHrO<4@AuVGsnlMBVl`_@K-091-=CvZB^f5Uq@B9@R&8(`xAw^_7`OD<B<RW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ProgressBarUI.class b/libjava/classpath/lib/javax/swing/plaf/ProgressBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4b108225b05db60d8881919cd68a3e08ee448d6
      GIT binary patch
      literal 314
      zcwRg8Z`VEs1_nb00d@u^Mh3a8#InQ+{o?Y>ymbA7oWwN!fTH~LqSWGIr^KRAPj&_t
      zMg|!SHO~3D1^IcYc_pEqj0|ixnR%Hdc8m<n8k%8@3@pz1DXClx%nY1746F=nj12rf
      znR%&xrMXF|MInhvIjM{cLO%J)i8*13MVTNzRFI`4BeR&1LBR*Vi>w(LxPtRbi;`2_
      zGQnn{$m)SKvnVnE9m4<uj6eu<1dwD0@{GZJ1_oBG?F<|nfea=FE+EMTq!}2@8CV#s
      U7`TBf9*80!%?mby53G_O0Cy)xOaK4?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/RootPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/RootPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..426484ea4f9f56e7ccf714d8122ff8e1715b31ba
      GIT binary patch
      literal 305
      zcwRg8Z`VEs1_nb00d@u^Mh5Au#InQ+{o?Y>ymbA7oWwN!p#1!jfW*AiP)~LS7Dfgc
      z3<b{lxdr)osd*)#o{S7^Hko;uC3cJq%o>_uj0`N!`6;Pf49pCiJPfQ1Y>W*2KACx`
      zex<odsYM})Nja&E3_?En$%#2(iA9+pK2(sUBqOt!kwMl6k8`XU8MuP;ON)|I-7-OX
      z_z_ZiAZ;v)3_xcvfB+*90<8y<>_DC|n9sn#s<oYgV<V8k#J~k4xqvhSgBb%0gCzqu
      Ski`R01f+SvM(}}E@&f>UMMHZ4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ScrollBarUI.class b/libjava/classpath/lib/javax/swing/plaf/ScrollBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed1b3f8d95327797cff4c61504f065920a90ba73
      GIT binary patch
      literal 308
      zcwRg8Z`VEs1_nb00d@u^Mh2Oz#InQ+{o?Y>ymbA7oWwN!;N+tGoE)dbqEJtE1{Q28
      zobz)F^7B&jN<uvu8Q5$x^D;~97#Wx~G{YDfSe)}yQn?tI88~?uSQ*$D8TfrN^HTjv
      zbCXhwLK2g5QW+V9eDaeMbHWmfGC_Q(AWKO`W-%j!oDV+tSTizk1?QI*C8xS&f;0&r
      z$?1VKvM4eD9l`(tj6eu<0FYz{@{GZJ1_oBG?F<|nfea=FE+EMTq!}2@7+4rA8MuKg
      Q9*80!%?mby53G_O0ItzQk^lez
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ScrollPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/ScrollPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4496630e7e80fb64c8ba88ac1b5faea7d101ec41
      GIT binary patch
      literal 311
      zcwRg8Z`VEs1_nb00d@u^Mh4le#InQ+{o?Y>ymbA7oWwN!;N+tGoScBfywp%nb_Nzk
      z1{n+`&iT0o`FW{%C83^-3~V-;d6^}4j10^gnqiC#EYA5Usay=q44ga+tPE_74E#Qs
      zd8vM-xk;%-A&E&jsf-LlKKaRsIbn%KnIJw?kfkIevzU=V-UqLPtQi@&g7Zs@l2hF>
      zLAnHyCG|jBSri$7PGJB6Mj!+_0Z6g~dB$Kq0|Tqpb_R}(Kn4>77m(xv(hLmd3@i**
      U4BS8#4@41=<^>zU2Uf`s00{O)<NyEw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/SeparatorUI.class b/libjava/classpath/lib/javax/swing/plaf/SeparatorUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56cb1063da78e30981f0c27e78a194f4acc3761b
      GIT binary patch
      literal 308
      zcwRg8Z`VEs1_nb00d@u^Mh2Oz#InQ+{o?Y>ymbA7oWwN!;M9V|qQsK?qEJtE1{Q28
      zobz)F^7B&jN<uvu8Q5$x^D;~97#Wx~G{YDfSe)}yQn?tI88~?uSQ*$D8TfrN^HTjv
      zbCXhwLK2g5QW+V9eDaeMbHWmfGC_Q(AWKO`W-%j!oDV+tSTizk1?QI*C8xS&f;0&r
      z$?1VKvM4eD9l`(tj6eu<0FYz{@{GZJ1_oBG?F<|nfea=FE+EMTq!}2@8CV#s7`TBf
      Q9*80!%?mby53G_O00hoO8vp<R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/SliderUI.class b/libjava/classpath/lib/javax/swing/plaf/SliderUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40e7c5eb63947237cb6928d68b4f6d0835531186
      GIT binary patch
      literal 299
      zcwRg8Z`VEs1_nb00d@u^Mh3~O#InQ+{o?Y>ymbA7oWwN!;GE2q)S^&Nb_Nzk1{n-#
      z=ltA){Jhk>l2A`Z1~!|_yv!0iMh0dL%`ip=7U%qwR4xW)22LIZRt7dk27aH+yi~u^
      z+@#c^ki?{%R7M6NpZw&+oUp{AOb{O`$WoG#S<J{F?Ss=X){G2X!TF^{$*FFcARW9g
      z2|bV&7DWc26Bs~%5eR`+14(uu<>SU|`kS&cLw|$Y5gN0+L)nnt{QbfrY_}fg8x;
      PfhYpfykH~vz$*Cx3u8ej
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/SpinnerUI.class b/libjava/classpath/lib/javax/swing/plaf/SpinnerUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30db423d676753112d4a425c3d82c0275d7cb17c
      GIT binary patch
      literal 302
      zcwTi*O=|){41Lkj)%6pP;>DZop-btZP{oTN2um-1+($cYN7k8TU8{e~li<N0;EyV1
      z*W#s^Kwe&wm*o6=JOOw{-9d)XT*@E0^VVB!zPvDypWZms#;9mIav%t;fBk`7h1Mt&
      zPe+7&Pa7Tg3E9rWj35T~L%GPJSVj(cLe1Aky>C`?6;0$kP=tnW7c!X1NGJTSDB^Fu
      z=41Z-Z@L6`Y&X$D4Rs=^-a1c-NVLIEATeU+;~X7kFDVCdj|UX?oMhl~bQytH2)v=h
      PS@}A|SV>n@)5+Qea_~Z*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/SplitPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/SplitPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a62a5f48d56bafbcd5fdca2091e8400a84351538
      GIT binary patch
      literal 645
      zcwT*yOHTqZ5XYymxVoYsii#Q&Z|H%I@rdDq(O}S!@VFOtU~Bf3Zh6FS<;lc@AHWY~
      zoUO!Y1bXOy+L>RcGwsLc+dBYU!jTCn1}9H^!e@3o6~V}kJU+DBktbA(2iR?xU@VHL
      zhkg_W7^rT8!P>P5gsL$}m(P0)jC$yx1!>sGLI&0t<eDPD$Fbi>+2MT;85Ek~fO|bI
      zMY5i68p;(hgVW}!`&1beCB~>aVN2o=r9`JKo{_-g@*nd4hpHyGDiCucCc;6PBv&E~
      zsIa9-Lo=fV%!)MBixMFZ)DC~_|0A`J&ldU)hXlngIxQ{&MF-bi;W-k?Rau%)@7sK;
      z>^sRLR}5lZs?`q1a)7rY>1zI0^D0TaaR&5KkPMS7dLf!kT3wMc(#*vxtiO<v0*hvg
      r6rc(Q)L@gW>~|3979^iz8**Cnu%opAyIS|=TAb@X91us9>XS=fv=^z=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/TabbedPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/TabbedPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75425e9b0686b04f4bb47c25d869aad650152e24
      GIT binary patch
      literal 501
      zcwT)`%TB^T6g>k4v?4DbD<5$OE~v&OhJ{T?Y8qou*iY$L$CMdTrs8k8GI8Mt_)*5&
      zVxq>#Ebh6_b072m@%jef6uT7^81^6dBY$${3#lS!7V|sjmIr|duelN<uL6r<?@x-W
      zr!%dDG9!<nd@hwVeTHJYGiI<{9SR#otXEM&nW64WC9cwGAQGaE1w+f%6CRIwA~XBT
      zX_<RDXE^j%4%B047#<9C;%c3QQgK7I2kl=~m){jV&+E{P)kqj}Ug%VX)Z}DEekTt(
      zd|{lSm>902SWws6l3|!Cmq-j<<$sQ>qkW^(WFiJK+pYO?g>F`69f1yp>{+DIp-5K9
      xIwNF+rQ;W@J(E&^P0}U=dX(J925Hr065%GYKdPagV*||`TiBvF!*<TF^9dkDe6Roj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/TableHeaderUI.class b/libjava/classpath/lib/javax/swing/plaf/TableHeaderUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77712f6f5648f024aade144ae3530c8766ae7fb9
      GIT binary patch
      literal 314
      zcwRg8Z`VEs1_nb00d@u^Mh3a8#InQ+{o?Y>ymbA7oWwN!ki?{%RFBlel+>b7Pj&_t
      zMg|!SHO~3D1^IcYc_pEqj0|ixnR%Hdc8m<n8k%8@3@pz1DXClx%nY1746F=nj12rf
      znR%&xrMXF|MPRcT8H9ZDlM{2o5{oiHe5fExNk(QdBZGnueivCYGH?awmlh?bx@CgR
      zLXp)2X=YJm06K;N1Q>x3=m;Rm4&)hw`3wxKTH6^oHUb$;3|v5x3rI6Cm@}|2STS$|
      RSv(L$K$;h91Rq!>KL7-yMxg)z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/TableUI.class b/libjava/classpath/lib/javax/swing/plaf/TableUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de0a647c39560e9469d99c24ee577da28d47e520
      GIT binary patch
      literal 296
      zcwRg8Z`VEs1_nb00d@u^Mh1zj#InQ+{o?Y>ymbA7oWwN!ki?{%)KE`$1{OvJ84OwH
      z{M>^4ywtpsP)|k%Hk-`6%o00B24)S-Fh&Lz=lqmZE(T@>P96qU1~x_pexJ;|RKL>P
      zq|_p?sf-LlKKaRsIbn%KnIJw?kfkIevzU=V$_JNQtQi@&g7Zs@l2hF>K^l0V;(8zr
      zEQ$<32QYvDBM<^D29oSRo-vruz`&}toq=N`kio>j1thtEGy{V<0}F!{12>Sx15pH|
      MdBH~TfmQMY0IDWGv;Y7A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/TextUI.class b/libjava/classpath/lib/javax/swing/plaf/TextUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..637fa12c0e22b8167c5ba02be328bc524a31b0a8
      GIT binary patch
      literal 1455
      zcwU`UU2hUW6g@+?MFIO|7163iTLmB77=18e{Ai^KicLcoV$!E6OmWPzLw1M4&(bFo
      zAN&FSDC3=3#0Y5?<zep3z2}~LX1IHQ{QUMEz$28>NHOF;@iRVhqoEACZr|spt|vyi
      zSxduV*qjOOsa{_NA|M3A(sLO|{eoekRBkaid#WQcSir>`7O}*zQkQ`^81zm==<yR@
      zFs#>AoBJ&uN^>4N9sN;842AkRQYsAD9#Q+AYDqC<cv|`kstM)3HQ0%|O08@mE+1;Q
      zA=;V;U0)DUraEeizLqM8(pYEMnIYQc9V5~}CRm0KbCjG#9I8l~{Ow)IqslpwvS)ND
      zPrWxcWO$NX=nu`Il5{T9U(x*cwBtm*#9QbJeL$g>j0W8Q9p4XCkD;4fGx1GobE(L7
      zc#n5QgPx4~<=z~1Yo;Mj=K&_wPl}sDIeMjPM`{(mlbYdWa^3PQVnSegf(RQ*>A2sY
      z{TH9fC8}kj@|5yD**7T+)nvAr4vQT=y}x^;LrNp!lx{N=6S-(Q_==FL)1>q<9;rdt
      z7W>jnfvibu)*c#^Qv{{K{Iay8VM1$~PLIhlvWpMC;=&i&q>!OCLl$@q2X80=$i*PC
      zmtf}DGFHg5N<N3|n)O_s@@(LW#ctrLwRv2dLKJY_MhduL?IvzodkeP-#ju6qSmvv-
      k{1p2<(P*v!mbd!0;%KbT?(X2O)ttgMc4(z8x2OBR0F#)XMgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ToolBarUI.class b/libjava/classpath/lib/javax/swing/plaf/ToolBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb097cda3b330cb9a3d1490db0238286de85937a
      GIT binary patch
      literal 302
      zcwRg8Z`VEs1_nb00d@u^Mh2;@#InQ+{o?Y>ymbA7oWwN!ko^1{r^KRAPj&_tMg|!S
      zdFTAxg8aPHypm8)Mg}&U%)HDJJ4Oa(4b3n{1{UZ1lvFMTW(H0k237_(Mh1SL%)C^;
      z(%hufqL9R-oK!{zA)ox@#GJ6iqD&AUD#%ijky#A1%m=q?tQi@&g7Zs@l2hF>L0b6W
      zGI}6QEQ$<3M=*c@BM<^D2a@bSo-vruz`&}toq=N`kio>j1thtEGy{V<0}F!{12>Sx
      Q15pH|dBH~TfmQMY03X3Z8vp<R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ToolTipUI.class b/libjava/classpath/lib/javax/swing/plaf/ToolTipUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92d495a82a4d8a986c484073daff8181e8f1d67c
      GIT binary patch
      literal 302
      zcwRg8Z`VEs1_nb00d@u^Mh2;@#InQ+{o?Y>ymbA7oWwN!ko^3dkj#QmPj&_tMg|!S
      zdFTAxg8aPHypm8)Mg}&U%)HDJJ4Oa(4b3n{1{UZ1lvFMTW(H0k237_(Mh1SL%)C^;
      z(%hufqL9R-oK!{zA)ox@#GJ6iqD&AUD#%ijky#A1%m=q?tQi@&g7Zs@l2hF>L0b6W
      zGI}6QEQ$<3M=*c@BM<^D2a@bSo-vruz`&}toq=N`kio>j1thtEGy{V<0}F!{12>Sx
      Q15pH|dBH~TfmQMY08K4IV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/TreeUI.class b/libjava/classpath/lib/javax/swing/plaf/TreeUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99f36338d4060a8921126269144532371e15c549
      GIT binary patch
      literal 949
      zcwU{8%We}f6o!ANlZM<O(3H>%6gCYDhSFuKN+qRIP*hcI(gizbVp5~29nCm|*J6d#
      zMIV5NLOu4Rh^V<p%)+02{GZ>))|uabZf*hW;Y|i9hV^g!JOAOwW2pxIFyvqTP9#LP
      zm4U~w`CzlDuZLO*Wx6ef)dQ)dIb>MbtzR;DP2CqctRP!J8mkQDwp8MDblnqChxbCk
      zP-*LchnGB(c0CDt=1Rs4wf3A+8VtpOFlXFcebgh>C++d>l=!n1Hl{*`A}-&iHR^89
      z=VRlai@<O-2*p3PCptRUV}`w1wypXC<HUoK$-)Nacq}T79x|VJH0gGRp*qXK%4#HQ
      zhB_AUebx3kjns<a!_3l`)Si{`r@l0_HSg3fR9tNI@UN^Ga21GfNg8!SB{n=V6Wx*d
      z&&MI765V=YlbF1pdE~;2<}UOo3dD)D{gzMK>YYvSc0lb5`{ijyZA)W@R{KOoOuzkw
      zM?YzjLXO595oo}}AteBXL_{pY{xKz#9UtR~V+BtgpJC0higm~5s5!ova08o;TiAAd
      NiC5&yu;WgCeFtU!1K<Dv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/UIResource.class b/libjava/classpath/lib/javax/swing/plaf/UIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d37b8c59c9645d37d524d821790b9a0148b0031f
      GIT binary patch
      literal 118
      zcwRg8Z`VEs1_nb0c6J6PMh5Au#InQ+{o?Y>ymbA7oWwN!P|u*$;{4L0<WzPB7DfgE
      zkOKXjM4+^PQdVkm2_pknFj(3xGbfdifghn>52Tchk%5tcnE?VA8CZcN69XFn7JD7$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/ViewportUI.class b/libjava/classpath/lib/javax/swing/plaf/ViewportUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9d51c32f108b4473233b6455a6672c1afec4f8d
      GIT binary patch
      literal 305
      zcwT)@O>4qH5PhSovC%ftYxU5Z?ZF_u2#Oa$D1=^GbKk_ZU5UFP#@fH-so=pM&>tn8
      zq=g=Y&cM8RGjBe=PKP6a0oo2KgqxLommmISr_HOMCUWVATJ2Js<?}}eg3vh=Ozk?g
      zMj2KR>SJwmJ|R?lcOgMc?LxVz;-ZBb>I5&)Mm=rUk;-0VlqkY=U}KqtGSdbBEsFe2
      zZwTGspLa$C_t|c<Sj}`X<NdYz#hADSzk$MtozHW0m_3vnsNH{}vFD@$m!r!F3?VQ=
      Qle5;3i1D&qaaAh4Z|EmPCjbBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicArrowButton.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicArrowButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24f3c0a2144bec1961c82cb357e316ef0f750c60
      GIT binary patch
      literal 4556
      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
      MDOds@s=a;mPizHN%m4rY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$ButtonBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$ButtonBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7a7443d87f0f04437f7c1a538d5c503481b6cc4f
      GIT binary patch
      literal 2305
      zcwUuNTUXRp6#h;olQ2Un0)mdz7L+1$!BJYO0#%toa1bw*ODnZvW+pI^OhS_&=s)on
      z^wqi;>}9R4_Jyw1$G-Hr_utUfR=dy1Fn~a*S?lEN>)HF;d!OX{=U;ve;0#t&NDQa%
      z>kssmw6|>9^XWxPpG)U;&n%=f{GD;!qTza-nI+$M?0{1tGjweA$_sgVDDU~MUhp@}
      z6oy0GENwdJ3BxsY%Y3BgEki{eL)(t9Q@LA)=PbDegW;ej?58QV>DW`bVFotF@LJZf
      zJzux|Y28{f!vFkGH+5BxKW0$8l3sL{$#Gmn)R+Bq*0CISfFWAc-Gzy&K2kF0OBOAk
      z;egn$YzmY?(>DDJ4B76Nk9k!-KFuI!ouUy%2!}N^;|N2jJ3bx3QM|6Ajlyqt(Qph6
      z<TUT<4<lfBQ^Nr?aPtlg$GIw;xAejS*L7+*80fk*oaDNQfG}G1jcaHO^hpgV;k#Ti
      zeS_;xX=vh-hH=w2t}m7IhC9i-!q7DC6sYDpRi5~&Q1(lv$Iv_es$)WxuV2(nyE+aO
      zcw14+i;ivB{+7Z~@{1+2;0@&HiBGF|m*MEvsI~bLQKIO>ISuF0&rmmS_}8e|7R^<6
      zd|Rr4u}}`wV-OcqyvJ~O4-*X+afzyFdN*Ce^NgZs+6;HhXvlJ%YI;L%*(j>G%+S2`
      zoUx6>hB2z)3O8;ry<uZcU$SaRk6~QJRcg_H)pMg1Q@&|=8m{3w<y3U_<&5!&gS^wd
      zN7-g(_8ZLocs{tSKsR@{W|3;1K<^TqG%K`nv>x(lGmCzSE>y{=-mH8%Xisd<=1{Sy
      zi@~tuY|rp%>Q3%DGVx7eU^oz^x&Bzg4DK?V+h@$GE;|oVagTC%NgBm0^8ETzN!0FO
      zG9x52G|XX=ro(p@IbYIXaz5;Gz+AGR!Qv9xGUkN9*5Gh~l6MGonFzBAvvEf*^wpXW
      zpTZH7U&6+%x9k)*X3%oBZMa!Wr!n<ZJYYESKdvbGZM~%Epvr|HAq<t)5k$aiSx^55
      z2^wVn2_jnNpBu3^R`;grPSb!x^ll-pBF+J_iDzg{B-f!PKZWuXu?pTuq=-!kw!MNA
      zi5_Bm1p8J6-HDjIj=GpE1c?fIJ`)L~>D@&sf&EDToS)Fle#UY33(l}#ahCmtLH0W?
      z5}jdx;56C36NIN<TQ49eo<0*42OtTGLkJ0qgWwR}CeHxE3xZxpdx7<<$#2p37+Ufh
      z^sV7+znVJMBDaKFl$g4XwwU?_s7sI0$f+Stsg%APBClbRlGpGWMmD60RVu+M;a(-M
      ztLXV0xlM?@RB5n35n_KK%Kj#pFVIH0w$tA^AxStdg>XrdaYG7YmOV#aQUu&vL8>*l
      z1>C?*0k?qnNh=9z0+Rx60aHZDf|@2OET|8NQb>OfAL2I60HaIvQMDKYVln_Vkz{MQ
      z^Q4xr!h=X1B8k?(q?UwQO@beEw|bB-LQpSL-=X0v%-#+wit-HllT^5ZVk(tVW-6Gc
      zb-#jgYBNqNPg2T2mZ*QyWwb~m=#)l9-1gwaTHLN0_%1Bs6FNbHD^Bt#KEzlvEMXau
      Fe*w;KAMpSH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$FieldBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$FieldBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe3838d9497601a3b4f85f9d878cb43d757231ce
      GIT binary patch
      literal 2104
      zcwUuM-BTM?6#v~N$&$E~uR=jmE3`_!AflC4sl}2O2nJ{aL_n+EBuldGvdio)LTCIN
      zeDKNo@!UsChqR8)IQoJ!KKkUFj^p?><G;}H+`HRA3yR&$z4!dix#ynWJ?Gqf|KQ87
      z0SuucLt;o@SKm`N)6Rx&R?=&Rx{@xcj$TTS@p;U$%bM++8rL<W>;V}8hTgqSMWIh$
      zC_1jKmfVNiLJU3o&R)poHOE@FOBzFqquIJ@6exghnG4yA3~Y*_DPx(AtD0^>HP*FY
      zQ)+hfhbs@>X9zh}wQOyWV~(GjRyW*q#xg8>gdtK^?HhBxJzUi*RfC4ha73(=yNb{`
      z-PGOl44K&D$2=*H7Z?H=tE@%PfDQ$%=wxV!#S39{;b|G&6#h{c1wCjYr;4rK41?jg
      z0tHQc`w0cla#OHqsHGd+)~DczXFH|fIc^J!D@^#l{R)~rdt5<6_-<5nSL3#nf)=i6
      z&grH$v%Xr??0L0lP}19SR*7=1QsxQ!%79zd9fqOY6ZQfn{;4%pH~pG33_g<6)iul1
      zOm|P-i2GVqFF7Mw`r?HMPGeZc%M9`Viu}-P!PN~%!5N&T#FlM!<C0sdYUR9EqPi}}
      z{w2&|RXhyyDzg&9(Sxo=rV2y*0insVNh3?+CNGU%cB|BVRn2R|=8EQLEo(ZOOWE%~
      zFn94?rMGb;LiN3*U<~67XAjA@@3Q|88I#1}F>M4BnBr~x27?^)N)#sDw1OGXiwWAC
      zJJ(!RaD{6^May-qRj!&-Fwa#1Lt7Dh3JTujiU!wOld;5bVsDLIZPQIp&C^`x9l;{r
      zQt&peQma#Xrd7M5o0Q$ye*P3%_w&|zka5-bjm(KZn{l1DdF$Rj9^_sOO4c+rJ7cJh
      zqd78Y*UA6!2&nJ(JOlJnNg8Mb>DL7rjU<QZKUP8n0sg{C4)E73)@FZg@mC^-Hk#WB
      zZIMrq)=c6)jwX^jkdwC&x{G5qL=!23DFL6Up*Jx=a6rJ5H9Vi_4(y<@J0KLX8j@Rr
      zzyQsCL<rIc2uL5HUAl!n>0=B@pWux2DMo1>lRm>B?K|y-Mj9^wLgLh!kT`isNSuCy
      zkoW~S{UN;Q)BljJEz=rJ9q$Nq1Uo{BZQ{L6WVeaoHj-c9rCnZ~Jf8G98l^jEk+#r9
      za*uRZaGCVZsdI_q6}&3AL@|PMf=d*y;k@7y#VAPuA-zsgP)HX@3X#tkarO9(&~EN2
      zCz9+QF5anA;oBhXh|rzhmU?K}56ur6_YeA!Ja{-G^&Q&2!o*ULzWc~d-^Q^NeZl1#
      zax`XX<ZD<+ev8Fh7)^eI#d}zuNiA(-VSvUpvT=|nkSCDmV3xovfmsf61abs&sa>`S
      z>MKY;Q9*yEg8qVj=~oO&zhPMV9U18lT$cXCRp~EWm;M$vN_brBH!|wUH1H1IrBjEg
      W_}56{=}|?TB1*JI#J$T{LHHl(MedXU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$MarginBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$MarginBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10039500dbbd67143cbd8c63d807ff2e039e41fe
      GIT binary patch
      literal 1420
      zcwUuLTTc@~6#k}Dx^!K+iO5A!EJ6##6;MRENz28`MZ7?wZ`(S;lCs<EZiV<{41a<@
      zps$)piJBOFGVxho{VB#XyR|gJgHEz@X1@8({p`12A3gyX#BBv3hAW%KGh;`0w@qtZ
      zFXWA<de(5woSu?<%66Uz$L(G+oORO*ZVJK-UDaAyAJ?a|uICsz?+-1)&@5@XY3mP!
      zV;Xt$xslBa1+@$vN8GMv?hDs0Iyu46;QIVE@@?AIYG#Ik-C;PHwk_8)EN{)o7e&pF
      zpD)<=_m5sNM8-|a^d=d2Jh8?QPTNm}3XUcXb*N{kUo<VTT-?eE=b;RNp=r_1kpqL=
      z(7g<Xy$#c47+U<_nv9W)by3bdW4Xd3Gre)&j&5vwdfMJ9*p{%ovBV)55XTg>llot%
      ziZ+~;(Vt^b;u%_rH5Cl!HJrf(hS6h<AF+MZ8&xt#jX6$RK{rEtb?%jx7Cq0lRK(Du
      zp%-z6D5V=zfZ<g9xTN|RTB>c`S+NVn!jiCxDiY{XFi@V43gMw`=TnBGA}OD*P_os}
      zp4jn-LwhA+6*_vNRH<PNS8<J@#xd77JW4Sm(d!yUB^t@v6#kZkZfY2lP&hB1dJ>q>
      zFew4<*#%;n<=!<OQ@6-gIbZdGKc;i0oSDYzp|~uy7_^LK2`8O5TvxaX<``oCFj1se
      zJyYnSc5{SK1BFhlh(Zp)3Ho<K(CCH9*`~dLkYSRHWKG`z8sGYqQ?#oj!8L?=J(}sR
      z1tgqC3rR+!)LJ$$i(1J=V_*MAv_0aq4$x6T=bMVLh*ajCzM+<YTs9<6UAXASK+_qR
      zWVNIbrng<T-2Vl!J=FDoMy!NO%das)NFqQICG->0O-M38k|kUwq=^uH4<`uGOBh@p
      z_=@%<E&g~PL-dW%cVi#puMtZQyu&yhr6lNvlq1BDa){W;!z@xVHa>w6Pa(?FXy!BM
      z;IruAa~R<B80EJy#WR@a3s~Tb$nv|`<STIaJv`_4@sh9l73d3ct5jgOTmgBS!Y%R^
      Y!b?okN%k=1`%h!WZ;GtbEanmY4Pg>acmMzZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$MenuBarBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$MenuBarBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd96406486ace6ecb9bc0c0d981e9693d02f9329
      GIT binary patch
      literal 1861
      zcwUuMU2_vv7=BLAW;co3rXQqGw3I>(NxC*xDq@R#G!+a6#L`AVFS<#VW}S4mv%9r$
      z%Xp(Rav}Wz-t|g{A}uP4cRJ&(e?v$81CH-Go5Zx~jGCQu_Icm)em(DbH$VUN?Nb1g
      zcwa*o!{i6%hvw~^zivCrxz)OPD_1ssyONs~`>g9#EzcjjVmWKGrWcAD6o%1ux3bjd
      zE|mSiGb=&UOl5esBl==t-tyfwuVOLu`j%&#^%AA9U1zZ{$G|Q#bmv{i4@@U0ne{a*
      z^7)aW&1>JVdkm^yGpp`8ITl6SoVgz4@^0PrW*A~Md%0Gp6_DK-+p&YQ49C-Z4fo2K
      z5`&U=t5zHw13D5oz`)a)QVfGQq~Rb#&u$kTL+B=_WzW1515wnWqg$8{>o_8gBI`9f
      zu*BI>9X&#mDB6y7b#0|=c?)K_PSpF0ZiSee#GmAbQVD9d&v3H%zwd+^@XV@dJB{8m
      zOzdL5vg$gP6ST3v<e95AyW-Cj=$9$Qkw#WShM}*+M8`M`hUl^t$OcgH>CE0fiU1Qj
      za(Iy}{g&lG#|4DBUea+AQ)F88%yrQm1}z<yLNicdIIv&&bhJz{_hCUNw`mn<-4PdH
      zSA!bOLCp#WBI?$wjfxUPBWzN^p*pGEC-!Ys8^h3$C^F3IIEOsL>3?Z&!=*EbhS#Zv
      zJ=!?ta7oPGRE$tT$7M{@6bA09kc&F52sz>jGD7o~j%z}r)U8`mF|XsgP^e`$2;3C{
      zc7t4BM+FS=>+<`%Xp5QaYagl!Va%Wx9LMtVb<_7PU&BrMkp9C&(ucciCNWA4<Fq2Q
      zAA*J`;TZk(bRkZQJ{pO8<XfS$1bS)jBWZ>7oZiQ?kI|nU{}I~wCe(*WZsTy)AkmQG
      zbK4l%l0imk@24Q(A4B1vVSwMqF}{Igq(2&lqGt?{NTg;GiR4{`pGPW8&CWxWMQ#{7
      zI5Djym87~9sh(1d>?0iB!3)N4QW;K0NS9Q0FeyZ3Np7JOo(NSF2|YQFNM~iKd8k&~
      zos?=AR%vQC(K8)2hBWdTivAFSE!m{I^fWn769e!spz<$~;9EGzA0oxS!W4gmBHzIR
      ze+-*{jl28_KH}fu6aGCurT2aQRQ6_`E`_+Zdb5F-aZ2`P1FzsTWfACA%EKj^A*4uj
      zhEPPJ*9fWf+{0Pwrbgc9aK3SoGvp^?XxVYLg9{H@g{vY7|3wxt7@D+-&>BUEK>0?X
      zfILJADdQ(3o?z|<=Mmy|@qu9&{N^^^p!Mc9t{RbTylwoGXHXQ$f2E=L4ZZw#jPO4&
      k#{X;^j8rRcszpA91uRm8E|g@XcknK~<Fck3cn`6^0Wo)+9smFU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$RadioButtonBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$RadioButtonBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dc76747778ced0a0501023e841230cb7b3f0270a
      GIT binary patch
      literal 2394
      zcwUuN-E$LF6#w1kCYz+&4_XSO1#Jb|rXK_q3buSTfzm*VrKO>bC~UH~&BA6k?rtqQ
      z`r?ZW9UqyoI6C%;R~!ZWm~r$)XZ)ia&)p6Epw!~d+}v}1=iYnH`Q3AF{{H8e-vGP`
      zM?oFK@!Q%*+TE19WLOKSs;SMVikfSbQfc{{wjEtK?x877H|+GH=h;>ODc}r8UuEmY
      zT@1~xa171Nlf|&Dne2H6c8Q@OV_UALSzcZ<7e#na^0Ob(qccf{$SK1zyfX}$-kkK7
      z(w4kb#x`wd<p1i)JOj_zx`-o$Mip_?Gc@H4OI%s36oqq5E1H6#C1;l?K#jsAy#{ix
      zY`6?3a<7u{7P3Yt54Wu8_7V~BVpt4uU32bC*X*&fu~0T?cnppHJiZRpS2e@(o^yF*
      z6D5_ZZ3)ZUkoHAKtCo$DJCda@nOD%k(7rK&(W2`)TFDDyjiVh0RJ?}Q8KMiqn;@!8
      zhK}CkrmTa-zHvlu=~D3q4pJ6|J1tC6@`TP1>P;5vaTq-cx*7IvvtLE8+^HDus8bQT
      z+|Z|@Ut%%Copglj3SIgbRB=S2(X!@_*`-BSf=5-VVFDYC0GpKD2t5Xdw^g)ax0H^n
      zXbYqhD)t1@J1X{KcN`-)t>6?x^1m+iIf*l#VY({L;4Iyt?r2Lndr3G#Pm50^ONHKT
      zc;BfichZx28R)2rG%`es^jvd!V>_3H!cK?oq{~)eC5GKED=;!GFtonJIa%(~$kO<j
      zA-rVhUYSb2EQ0Ed6#c7b*uSZuHdmqSm0~3*y~MVKM@3@>{FAQ&Y4frIq}D{08#GAP
      za)n1t+w;;kNv?yzLMmp4>ng5cmf_?MtySBy^$-OVP16f#9CNrKADs6o(%zsOV}#vQ
      zaSK_QuuZ8|Bve#Ul2FLAt5O##=A|BXB!?0yt1u+OO))P?HEL<@+7b)(<g~r$l*E`J
      z->_X9AE_g9F@u`5Ea7BKjXKR$P-Qsy3NIX;wdIXN7tt4@{}qOP2qQwXLRuZ7;3U&y
      zOTQ{1x5yf%Io{VlFqq)a(D1##u1R7vgLfmwd(ce!v0x>3p#|_IYHK=2O4QbJHA&Rg
      zzUR1XYv0>GBm!@2nf%t1ZIulxY&aSkiiL*a{ePf+1<n1xqkULOC{M9}IGTw5iPKW<
      ze29)j^k*DmSV4o7=x^vDl+Yt^J`|Hn23F7{=hO-mPB0zW7F$8rz=1a27H*65{fM_{
      z9HTKr<K#~meza~4wZ*qCIJZthk-`T*gAhN92tP+;j6&rZwDJo`@G*4qEDrO_800yO
      z(LBy4aFb6$=T~9!DR_JupOXAJpTT{e$1=Z;FZnDU@Hu=#*mu0(lUoglStEB9=W)R&
      zcNJr}=##sOab$gRS8<6X?n{?R3j0!yqzKu+#RRU<g-7r;-o+$cdJJFTDyC>w@c`2#
      z$^N>AnOYf)&@Smg>FZ}tk$=3FzN{Q@+YfP1uw*Snr52(*Xts7x)eivZ9{3AQzhZ7K
      zOy4uS_jrK5aN!9)prO&wpI~8N-A{{5hJQhqdJoO~J`V9^-)CoV+M3VqHCnoH8+T}T
      S9Zdg}3M{}+i^0Z+i2Vx&#XH0R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27b85ba5dcd78e1679fe852bc0ead4f52f85f084
      GIT binary patch
      literal 1786
      zcwUuM-*XdH6#i~=(``1}(n2GKS}lT_(9j@4!33&p5C{fD3UTO*y~(c4*3E9+-H_sg
      z55D@WGvy!X6U=nRsXrb>9Y;l+L6HX}>Wn|0{SzF|-A$lEnW@R#d%t_mx#ynqopblQ
      ze?I*Tz_WNwK^Mcpd2vB3X1%6q&t(@Z@kX{HJhPgelJk_~>W1s>JmXlFbHQ+@8ouw?
      zp;Q59*t3z-YfmxsdxmQYt4tcxvCkEcFt8I0y#>eid|~@#VKt2CP`&Z`2Up+!o1y!V
      zX`B88Lm^d?w`E1s&lViZar6IopDr`-f}<NMBIwhgBF?a>WZK55M!jOVXGO&_7&e!j
      zDg`JgOxm}F+^?A)L$0)ujMw8UPpNn{p*v0D;Qq)MR9(1lPPg^3nmJdqX!s0$!Fv3j
      zAif|>+wagh_8(U23yy8r{+i5>xniMaR=s?Ye(AD`Aq*>cjA7sb6Ah2!35K3I!w;e&
      zCQ|A9BUP}SVcS{~CM%xrimD$bt6~H@H0;Dvp{J8Xx5Y5j_S88P8VAaJ9M2%FAjPot
      zAtoAjVU##By$-VskyLs{p4_crOe$lhciJ^P&(NiGk47C%QpNNp-Fhf{PQ$*on`y%`
      zs=lGez%Z_13kD@Rs9`GxB}F+6c^sk)yt`a%d7%A5HYYT^fEUSBcSTe75?z`K$)?V(
      zG7PR)AX3ed&voiVnnfB#8W$O&O;h)4)H*dItbTW;9x|GID4*0KGL|+Q<Y$JWb1c1`
      zNY~<Cnl93$PCE^^Y8*9XgAc6j;4$f&K`Yv};T9}GjywhD7<O!+{VC=39ssrz#S!}S
      zFg%JVx@lEt*M%M$Og=`MHImGdHcG3yYc#Vv$v;BxN?^B1%4h|@j2ORye%kK~Eir)2
      zK!B*0<VT_ep{@WuLMRd-sxNpDK{C9J-JnQ%N!MaIC9{fcx!C9z7+Hcg`Z-2c@nlX(
      zDqo{FseFQ`87_gZNSI+*LZ3w0d&0dE4z$&mphT9z`FPK8B09_UaW%mc-4etziJm3O
      z?nCTfhC<7MRXm>=Cbi1-1YgBrx#6?Ji8$Bgu48^6G~XYZ#}jHI9;l^fwQanNzMPgx
      z#>ghAT@Aqsr8<vm^zYC(LzIAji3tCSsQd=~{97dXb)@+BNb?&w%zwZHzlrnwCkTEE
      z^ZYj6;XmU&eg{kZ7hLAQ;$!|BuJPY-o&SL!`JcE&>mB}AP?ooYLbmRfrG-gM1!ZZW
      zfFnU!T6hUZgR-=6j1UjdaYE4m6$y2d{x(kFWoni4co!v{q;`qnCQeZyV-R%HD`clq
      aesAG4p*Z<|HOTV}rh}5x1Hf675&IWj__JRC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$SplitPaneBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$SplitPaneBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2988ff6c10239733aa89a73652d62ff37021296a
      GIT binary patch
      literal 2795
      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
      CIcn|z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94ac0efd9cbc02c3b22bf41bbd0c8d10e23bd992
      GIT binary patch
      literal 2559
      zcwU`VT~ixX7=BLJoDG{Llt7?K3vGeggrvkmTQRA%LO)EU1<QvmTFa6w$<nZ!W|u<y
      z7o73V3x7d7ju-8W6C54CZgfWff&K??bez!($M@`p5WYGcH?w=*bKdXwecqFw|NZJ)
      z0B7LH@G)dow1?V8+Fm!zV!Be+meWg`ZRFGA;yZ3t3wqTaoT-!zXIeA$%f>^4PP}s&
      z62l>(pDt^pJ+-u==gBH(h&EeYa;4K-N&$u=dz{YYZt1qQR?X`&6oxL>s$r#P^s1qi
      zjmO$jS!duE4AXEfGPJ}K^9<62RnQf*pj|}}Dnt9EVd^*6R+seZtfvv4wDMYcULz~C
      zuOCWI$*>tNO#c7evkbwCW|)q*Wf+dT*3#O#lb*0vE0(F7PImk3T2-r*jJ%!A(UX`D
      zpogKeVSBh_6ia1#9R*Pwkr88vG)Fg=yP=s{QLm~vie835QFkV+vPGT;>z<o>kWDlP
      zLsHoQj#00+{n;h0V67`)IH95+0}LuzZ14}tC$Xbs*BkO#1t)Pz#w!dRdr}r5$Eg+Z
      zJy9tbLP|!Gn0uY6I4#uLD6VlWf4^9@*35!}G|tF)m7#n8NK}kqlp#b~Q&oe^XpUi-
      zE@E;b$a5;r<25Rv-6&vZe0N-lc_I3`iVUdHfkIVV7sz6e<6iqj7;mV!h&QRK<Z4o1
      zb{c_GY&%oks-Dn#OU1a*>L9IKqTvm;;9gd7MR41RJ8M;T@UE$NTkyi7AeQ4;t4$tR
      zo`z;WpTsIsiu(YOI2-il=zYZCUpER)iAJoXi>Me{8<3<FcNd7{JOoj7ta71VNU4yw
      z$_&1Z5&Aq5AG^YE_#n)9X?g>cGpQdmlc!z)JNM8N%*yzX)OVdKxQj(`6_DwWVSARR
      zD%yiJ-37pci~>XIMN_|f+7;xntfB}iO{a^*W}!JMUNXLOC=RqZmm>hIpe*A)<@u5-
      zVmMbBV(|kfk3pGnFV3rmxZ66KFRx*tL!+HDO}#o%)@)n1Wl*OEUgG8>81H}g;W%9z
      zE%ft4Ml1c7_-Rk~FMZo+H%coLr$d_vJtxA4L-bW>h5rvo{=d*cd({&{7@f2ddJ*vq
      z_-4V;PDiP5_m?=Fk;8pr2@EASaXix&ZTkt*^WKPmQ7W7dMx+QAgqo^hFw>f>A(2s{
      zZ8Z#k2J!p~?-9Np)7z7ZDm9!<^-7DR8k7nVsfICktGZiNY=wafKOzv7pTJ*Nh)BKL
      z%u9k9XfPupj-bnaf(NOFhO|gJQbA}55pojT+6yZadt3;qE$-EwK6*ufbr+#bC>3p`
      z(`e{Bk9bZQj<FbvHR}BseE?S=^B_X}5F)$-F&@Sd-h}}kL5g={g!f>K$1ux#vB3La
      z@MGBE$MF$Aflqipp7H^F!3VL)PvILL$1gmA-}n%I=Slp{Q%vQjS&WacqkNS0^Rw(E
      ztx0~)?eE73i5}MbE2tc<i#`zb4kiT}h`NEB1SCOC5hc0QG*Nz+dY32;nVrNf%n;Z@
      ztPit91?ZCh2XjQVVhn#`o+yR>#9HwlX#|lXH@AsW5n(;Jg9XAB!~6K44$(_w)h96c
      zHSXS#=-I@*XN}5n5hcIkX3_1*ZDm1}mj#1{rMk6L9q>Ns^IbNkn~?6S+wh6M+q&j$
      zT7~_t<PXSyics=<<ZIAtFrKmPc)CS3_&w_6B6U(j2d!bAZ;G$05noq5J|9e1-$Dgq
      L_C$maU_<#2kRD1V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ae464a7ef8d050a9b60068a438c61e1b4ac902e
      GIT binary patch
      literal 1704
      zcwUuMSyK~15dMbj0m~|fprR5lL;`_$03Pv76bwdvK&g`Q!6g}!)nzxeyBPFW=#wu#
      zTRtgxmsa_z<%{J%(9+*w*|WO@6cn6P?{xR{bbozJKK*?A9>9KFQc=e+eABpX%%;4m
      zX_rzJ%eax6GCZ@8%7|~qaf{sbx-L7VlEpJKzVFzfPKCs<Z!LG1-ePF>xN92L1f7_U
      zeI<8>fsHY&%R08_8@4}TSTkJytUjJCJoxg6K{;mHrhkGV+mjd3QbyHJWgW|L)Bh_c
      zCK#lwQ{)<ASg%7vBSTZ(wE4xE=_&4BHl{4j(3*D&1kfOuBu7fgFPk32;rv=MUS6#<
      zCE}HhqEn>`{E3S}D;n;t@#wsvY?jIvk<YL`*v~C08Y_lr`wPV!_^l?>702ebza;Nb
      z*Qk`uf|t(GN=!6>VXKY}XcJtgj`on-u47}!?bNXeZ5noCkBTma#J|#A@P5TNEl)=`
      z_7eD_Yg9A*F1Hx2_520N<m76tT1^(MWCez{mGY;f62pcSg44+?QI6;igIqO>ewjK`
      z=3#N0N<1oU&i1%Z{ocD`ffI|$&@io0?FMyvQ$sW(t28CLvfPP^LxkZEt%hM75wm)f
      zLG4-S<1mitIF5b-KjqMvO$*gY9jAmU<~tQ3XLMwREW08-p*gE#L}(<7-=KUIGfJ~%
      z85Ww!ac9OY@DWptf6LPO9uUS1dd{}Fo3#wj<DQBO47=CxIOu&Xe;(LL^^4J;62oT5
      zP-s_4szW^_;_0E%S0~MNI+bbHdi#?79nx#8n-A=ogpPJ7_t2o+M>ENTp(R?-3IrSt
      zKKT(G4Zg4@js`!7tck%7qHRV;6zw6!6*%I_&UUF?ZdYQl-WS+Hw2dfEwBrqSEh2~u
      zYvl>*m8XPa4w^ELR^=JCkgijC9-ulGdaR*}qX&rqRUEzO3sA+8M1O!PjsfDNfJ+f4
      z2i!j5M2+_2K!h|+*5anx+s9tv;9L!oFoW_j2)!{hsfAXf(8AGB<fuY7MBwh^2Q<CI
      z@Ku@CYaE_S(vl}%B29FH==4jRNiN1|6(E(bkd$v|R=%T4`4Pn25qhh|?5?HTjZrE_
      U9sP2Fmoc1&XoJ9$$3-;!0z!?99smFU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicBorders.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e76161a5b760cf3ebcf5b2b629b359e28a26f5c
      GIT binary patch
      literal 4045
      zcwUuPS$9)a6#h<|HfacLxs(|Mq(EArDf1|5i=}}Uur0-)g15~jz3pvoNz#EqWK?jT
      zKqlt_P#+W@%Cc+uhzrzr^k3i)aQU5^<mM)gCFWu8bN4xC@9*sWogw%C`S}+BEAhP>
      zMFNX@)gg5x5Fgf~k-&hV9tw1+alJdxAZ3FY3v02s8!mxLIWS<T9JafwSL;p)DDfUO
      zriEM8SVWH|#|o@!DZpd3bIxXg(k*&aPiz$^_SbX@xEjr{=0!0k`QU~}prS>OYP$ye
      zyR=w`+GS{r-C}mDMyDFn<#)>HO7!S)fyISDVAP6;mS`AEBupFpJbz8r+%C%=Na1v2
      zsz7}KzN?*HJ(wmiIcce5#=_>X7c(%+jhO<|oZj{ZTh*u<(PBQ##vB0;@im%;Nnq9f
      zmfZYrPC^Z+!-;@3YO@FP1g4}Sh1FPJyA{oY`2xO_+0Y|B2@e*speaiaEtb^_1&d_D
      zs|6bUxz7LZcTJ}oO9VEJOII>0dxLFS+#HN`Yt@Zr|A09d4d-@vA>j9+22+xya&pFt
      z#aJe>E*IG7pP*(FbV;U_n1cyf_&F1d6R2YJHZ`o9&bqp>QebT%Y#2AygVkiP!<^!U
      z2WthUJMGRYu4i$beW_AzB#WG8M?LGYh@AxAVMZc`mW}=ifpvwTA3xWFCk3WD?Kb|W
      z1!iP*I2X{!MQ3%UR`3iLon?0{VT)WsrL4Xd9c)lzY4kyXm4%?sn&!byf%25e#@x!h
      zrfrVM&DbpowufirBR7Mjl0uN}1BRa1qeitf%yxm*g}}_2=)qoQ*fwThd9aUk%yeYZ
      z>qQ%O3(Rt&*rpHZ^p*zme7@~C5tyv`UhK!D<T5+7kwlZO8R4|&g93p<JUb?Npt7*G
      zC%YQmTwliOqz@1HicC)`9TCYy+vq6Y0ZAOWareZ`NKA{z9pvfDNBwc<lDu<rjb-SE
      z=|+?^%BFx1131j{grPL{R^~Fqi(bSfpLlOpjpI{L5@<TX2BSQVqN>ppQ~PZ$3=7Q8
      z>ZnT|Q0c@R5qK<L|29YRj*%Mq#<V2U_%iRleBI3%;=S@89;_9(aY|tQqjTDz4QWQc
      zq@MBNtW02;6>WP=JtD2I`tX{S*5MvKVU4@s!|Rr%%TT-fq~%Q?-jWtqgp<5DiFah0
      z-xb*A4?b$&KI*%sQ`YT$>F@&*ZCu@C*-Del74T-r%5~UOBvmZkoH4izQmc&D+f^S*
      zQ0m6@0^b$cSKu|dAHD5X4x4oO0Gi?)T_-*A<_|`rtdgO|<67K)2qeb{Omb{Vc4oij
      zCTE?V+1F2cFWnH>Pzdxk(=f~-9wu4gtMZ#Ga?V3;j{JvG&W(~ZVj)vo%ttP>BlFAF
      zB)0jIq%7lCfLc(O)Q-aYBO68VQI=Z9MogykB?q7!71U*@#FW(JSZbVq3`$6;x`XM;
      zTqz!tVgbb{9^W~J#i80eSUQT@A8h|itob@+Fa7pmDh$lz_goBN0fq^C1l4S(<IkmB
      zfjTRGz>YtZiC-U5R>`Pqq*y1#1}pxi{PAm<4&X9exI#}?iQyVCTqlOhjCF$;ZW6;S
      zVz`kP!{&S#wuF?eGV)VWG)S?{!q7AkhI_<tpPqgrhTn<d4`R5-SPzKdPh$9s7#`%s
      zu-(S6i9X~{8AEeO*&!phSdn*SqLo`Tc*ya8v;ENWSY-KmHlLrikkTRjbXtC%%kd-1
      zQ6?%-PMz@+vi<li3*Z^U{?I61$jr8KCF&frUbJWJvFHiR9m9c;@{)|+B}G_@Ll%yn
      zjHlUhv<UM5*bZXZNh~e=PtwYN5<!P|-S)mbwKm@vdPBEil#C*li|e3c=3siJkg|j}
      zQyC(NoyrJhi*l5*RXI+%OF2Qg$t8<ChLfS<<#*v;egmbqae4)tE3D?ZWo$09n&)fT
      zthJhNjN)wxXqM|PJhNQMNuzi#izrQm0x^P8aRfeb6pA>;Wgh2$nG?L(PhzP!1;04W
      zm-HEI6=(S%Jckb2_lfg-=v+V#bsxvd#jUYU0UaOWuuKNJagi;a9W2Bpwu(r<efWs2
      zV$5erF0<w0X;EV*a!abXRkv~FS4<wmHJ13}pKyiWxiq;*%$HCpF58JM!Y7ve6rWME
      ubc`(UIrRbRFQ~6ke@Wd;{S|dR_1DzjP~W6(qrOGGpZZ(KXR*L{DEk)#lP5F)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..012492bf5776541064aed929d857d5b2a0ae3419
      GIT binary patch
      literal 1175
      zcwUuL+iuf95Ivi?b(1<Il+s%Q<q{yb)(zL9Afz-Z5|ETipgi!lcDAi6$FA&63!lXU
      zMeu-l<_~xP0Uv^xwNn97gW89zXJ^iwIWs%?{OiL<0Cn8gkzlCp@_qiw3=bS{+uU>c
      zmTB?OvCTDgt_`I0y|xod;fbJF*P$^i{GHLXLK$#dHf`zn9>ciYal+yX@wQJ++@QP%
      zj_1gS3})#xiRCVX*7AEI1%^ojV;D~(iHrdqXBd(t1<1A?PizeOmIz*O%M}b$ZQtf@
      zmj{lz51pEl&aixn`o%g)&+@4EO%ZJQL0|M37ULdFejrV;FFa|+<5^cWX-;DXb2?^+
      zvpgPWU>*w$scj*j`-8wHh0~>SOzd)!_RQK9wruDqjChk+YZ`f6G_Z(E3=>4wp=r4c
      z`61U)QVfoQjY(WVQO8w=*%1%}*KnQqLLr-R&synaxvLUO2Ffayrr2g6!cavSsW1F*
      zD6|1qM1O=kz8S)e_2UNSN6M$#@x&fE>RsoKdAMbj%V0eA=+bgIsiddRu6wrYhs4(r
      za>wuKxWiC6`8pW5hgF6d#|tHQ-KXNU<@2By_Zh00|D*Xy%kS^`Uc3`np$$&bACu*B
      zYK_TC&`-w%`BP-A(p`DdmFinM-obbiVY12>MQAqof*e@}*~)tsQ<481riUz&kQ#jp
      z)kB>BgnXxVhzlD_+Iw71Kz(i`@P~JX7=f>(;TtmePAorYn|?+$DlyNnhO#QCQk4lp
      i)v!bi8RA%mNnItWJH=VY%}5uE^no&O(W&7!?*0Z3x-VA%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..348f244e45f16039e197045daa4ee8946583e014
      GIT binary patch
      literal 1175
      zcwUuLT~8B16g|@xwk=y*5z9xb_))cAbOFCG7!znPQClR@^uf2;?Ep)*yJU9?`m=lx
      zqYuVse~1qn^&c4T?3SoWOW>iickY~f=A1jXUw(i51YijdG{hL{d;EaEHiARj-7)qZ
      zzHOL1uq|U<t?PX$J-1~CQn<n|Eo(?H%>7%jW(LydmRz%>?YRu&a@P(@i^SVHJ@G2l
      zJ+xh0K4LJ+XDO_77!pmdD^g&X&@qPbG~&qU&~T0+URHo?%XY<Pzh?^nB{v<xFxm1f
      z?sT|stNkFEP|_J1XSlz#OwzMF^u8thZO`wCF2j7}!Qh9|5C_7QM%11S6_e&P@|e*u
      zJ?Q0doQ_${F{E~ceBt$dixf_kD-p57N!oLBPgrtQLvh5LL|W4*;IfW+TwzEOS)01$
      zFcbz{$3+o1JY1c?HIy`5XP6!V(QyMe8Pb7}TfPVa<vLM*Rq3eGvW|*6P15OF)DcGN
      zizhXOCcq5ok8#7z5N@m&8JHa@pL9hXdu*$Bof-0Q4OPpaKXGZ(bT~Pnr_XM<mg5D)
      z*A{Zu>uR{mP(A%P=(vv+hP>?tk~_{b@y7JH-;I0*s^|Y{e%kbU`<@%k1Quz6<MhX5
      zxttnfiemKBkfeNyq7~Y!OuAZoN6UNYZ$nI0<-!x{4Zb2rkxsG7p2uXEzksO$izH-%
      zzQx)RE`CO#T|dI5&4u^}T#Z3}ZpHAIH&2YfH`4GO8T=rYpEOOs!aJ%F&)^OfRZ*i`
      kl7y;bffzEx(SSj&;^a<oE@3&;#X^0c%G<Oia0mDP07s!Or2qf`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$ButtonAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener$ButtonAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b97493de590a8a6563efeec2aa325544760f13b2
      GIT binary patch
      literal 1892
      zcwUuMTXWM^5dMy>SdOC*<6s~(<x)cGONfAmQb+=If<vLsr7;+qGPuX`2~jFbRFVmu
      zcKSc)ALt7&JTy%E&?&Dx_xE(V=Sa|`I1G7^_N?~yeY<<~>YqRU1aKbrbtD)rZSu$b
      zi5YC!?nCpD!`ICg4{Xbvlkd517<z8a4npAye=JffR%m;!4vpd1&frQb2z_pak)1(b
      zS*_OV)$0ton)EXrPG0rUC+BH~!FkUOLhgnQ?sP>O{S@)Y7eOG}4C&Qsty-brGz`*w
      z;Rvn_sc^#%#?CQJ)ZQOBRZGp-t{q-wFbn$$EH)Uld9N+{!7yxK5C<|yB5z;_hZ&Lu
      z=`d8YU9r^dw1j_~w;Uk}dlq*Z+_$A3f7B#&hRge?zpLZKVu-8LityJxza#r`BBEpR
      zt<V&Yg&UfYb5))Rej3La2AWOF>vXu=ZZ<PS<fMU9_=x)YP(<Bl7%#j%qvDQF%dJge
      zh0_^~VO+<Vc=Wx?8u%CmhJMOk_qx7C=?@ipB-2saV}&Bx85A*L;4CI1sEafQhv9=b
      z*Xy9jSs4l6Ib6_jo+0~xItD($6fJ`IzRMk&L%#4fqT<>BKE-D`E-@V0qlSUYxI%ye
      z5murZXoa<6Lk7+mn3c8+*;b-emK?4b_#71m!wwcas~aqD(P-83tV#2{f$MUa44<Hh
      zAXGjKeX6evqwg9pWwAQ#-8U@e!oXUuqkH#Px^x&u_UtCj&<?7uTwg_G*}$SCk_zIn
      z>LM~yqBVw%eO;}6`0l<2#fIGBJMs!<sn^kpE!gsk9qkc3DeF*oZ@Q$+JDjEx=peYI
      z_Xj}XJ0ajC0Z7tMG>N0=Ly9z=v;@+mXLjfV*{u9!&{-pm@RH>qX;Y*nNM=gq-;gW4
      zz@g{L{|LQhG*F{VfT7MAjNlkaT78Vh8U7~kK9Y@6?!#@ISS)Yj^j|10o!v(Hik3@H
      zY{PttQzM%8J1!=m<a7dLzWNJJlbHJzqq%{|ZFodWDzlR0{vVnPgaLR!e42#+TjarU
      z92UmW#v}wTVjVNsKoy&`8{gp$Ituwzgf2!dPgN|azAWPgzEIt`ft$D`|E8$mOJb~%
      zeUTy~h8>a`$-FjOeu?5!43=YpOS7ZT-T*wT3Oyn12lV4dYW7bU#?J~wDN67LL>?<t
      znvw4?zQQWW0~D=5WI=%Hap`fg$nmC1<rlc!do&64G}QYp?x``+HNe;S28n+GhOo(G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a736218c084a270d4534daa21ff076e3972aa96f
      GIT binary patch
      literal 6685
      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
      B&{hBd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..621c20fb6e0c6bc7b6d4c0dbc6c567ab5c2beb16
      GIT binary patch
      literal 11510
      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
      ZX)bn1jy@iFxKmlmS>XT~5{QP8`@iNoJaYg5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4b2f0741dc5e9538bd698301daba613740f3fb9
      GIT binary patch
      literal 1185
      zcwV(r+iuf95IvK7OrULO>6Kf7k^sfr9*_)uXjG(D396J533xyocbga-JJ_2x{1v=V
      z2_!y%k3!5krk9iy@lZeP%zDo`b38l#`Rm&c01r{hB0;$SUhIm#8SXh=%j~*h$83tw
      zvCUPzR@&13u<G|~((A1&*?F~|MT)R=8s`v8$UJjAN39T&rE-Iis`%T|Koa=^(#R0T
      zs*WdL_Bu@&Y>B2T3B{^!3%4NxNAKg8Db;pD!h`Dnd9?^RJCH(2?d56d7=5GSce=hO
      zJ!O?o>K+`jiUC5NKsI4!lmua-CDmr&cV(bHZ3c43=@TYP18LJ046mzzSym302;;+U
      zS)d#EwhY6X-wWm1E~^qg4tf5Awg$3dPnl99%|nv)_83Jo)?C@qCnpZ-(v`Mye6J=v
      z(UO5xZWx%uLKgFcslQe(U>cVRZ%Sw8fUnz$8ZtfN+xaSZCgx8uz!F`d+Jw2$RtVY7
      zpeAAQ-@XV&-R}jqeBtPcTo^HO(cgsYJTXb=C&d|0I<HyYJ?2Op(|7if`@%^A2CoK3
      z;5ma=aE`OW0L1Y;$2=}zEEaggNPU+34tl+h@y`bundtq-5q=I6C`J}8Vlw70#|Dzc
      zsbT8Y5o$6n&3AyAnEH-|(%R15d&{$_ub3V7zs(h8B=Tecj74;I1y>{CJg#wb5>d8@
      S8&Q+;xQSa)qn0AY+rI(oY$=Wa
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicCheckBoxUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicCheckBoxUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b8fe29fc5260857397ac1b1228c3fad94781428
      GIT binary patch
      literal 628
      zcwUW=T}uK%6o%i^`mvg2nU!636B^`VSAo%mLSRTpU(n^ajW(q_vW{i{s;-2Ben3Ae
      zI;&flQ8X9losai<=ghplKfeMfVIz(?!q$zr6GNweue`R?>xh=q6n*77m7rFyrF&b^
      z!}D4k5klcF?}@llx-u|Ed*?MmY+rfG91yI0;ersU>MNOqg+vNb#0crS^5pTL+m!y9
      zXm%taQ`fHOTnJwU>u@t-u2r9qum7*jGQoCzDU1wy*!zwhRdu(gJ?WWp;b-30A*Uok
      zND#;+<bI1FEVrd;__`;3^U&~ROAQIx{3P1x2)3UZpQ*BqHO~9&vPejt>VfadLlrzR
      zJM)HOz+;nJun-K3XZ&Sc<GgZMi8Z=Cg8jskIV8Ep#+xO~b4^VQtP89OEFvAkyX+3m
      q>=)4G2uqJM{J|7&V;LD%!V0n>zY|_=Wmad=+7xPqR}<F9uG|M^or;D4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7c88e5ecf6dbed63d307be20b3d598c38146fab
      GIT binary patch
      literal 924
      zcwUuKO>Yx15Pj2xF1s}(6zB&9T1tR)i@MDXsfYusBBcsY3EI1NV~DG*9qn!le+#LA
      z#DP0V@RJbZO%4qL(H?A%$MfDiKl}TyFJA$4u<l`s@bEw$%lA?7PMf#UFq3bhL>4-Y
      zp1L`<na$&YwS~&}x~-0fI-%(hQ6{<mWpbd>(!(@i<us2vR;G;N0oSOWE=pxoPM9tS
      zx@c{3&)(UaZZYn$HoAO5h}!1?uI&@*vF$4#gi8V*E(WNfA>gA)sI^@|qo<8}adeod
      z{IyInMVRf`RA&1!*KR*f)}3_1#yR@8IxJljr7YFRh(2L;@&c!A+IBH(_OXB)9u^7V
      z*?S2r;U=pbO2c9oCz|Z=6%y6o<)f_tx3S`3nK1v45`jC;94}WxsZB{BCS3lHYC`bJ
      z9_6Werkz;}e^I#M7}$@l;ja*9vM3b$+1NH|W(#J0uF8S!3#=g|_}Z{<S+>_DEKORr
      z6Wha~H6yRE$uC>uaRJn9x(DWuJ;lREz}Xp&9`W8~f^hvKMEDt(KU6hWT&_BC=x><i
      zNO0`3S8=V%U&q{-CFa%D&V(lrCz$_)TYu90;Pq!kGdC(7)3|6AcPpW-3Ud$lD->1j
      Nz?cU-*ZJMszX9;A=Q{uZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$PreviewListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$PreviewListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..051f2ba14a87da318d24c8528386d00f526d6652
      GIT binary patch
      literal 1413
      zcwUuMTTc@~6#h<Iy0R{|B61OwS}OJ?3y3#LOtjGiQ<Vhe$(QMNY!|n?&F%vJ0e_GQ
      zLgIt*i3fj_@yxcwf)MG$&d!-V=ewLa?XTb8e*jp*nuZu*bzAI;&t|Y^yG^s>h>vDn
      z1h!>9S8LUCJiprVyg>Tz*K-@b+_mLi%??88N?${QkXH4kBe?o)eOp?gh9n`=k1BVi
      z8=BP?=g8w)LNaXGL2i*yu3cP0h3nRA*AAZ&%={pQg)Ks&>NVsr2qOkGT+$Io%D^zv
      zgm_*hq-wS+-|V#O(tjuFjwFoMJWDuR!nal2J4`6)gtY<qPxp?E7(pmP*=<XMkUeRq
      zziBVjo*fKh5;rtV5sDXQHZYAD*4z;;OP@MH@`?@BWn+UsRdn1!M#C&&;+zx%w~-}`
      zHD$Od9lmPWsCw;==dwD&c)k!}n_`c3AD>q=<Os|Ch?bIPb>*4Q>OtrWE9}>-xEvjG
      zm^W}&UCzi(rxCR(`mDN8Fi=E^p!IMF(<hDf<FU1SFf}Z&{d1EHEGjC^mmOg%Kg8Xd
      z{m+#UhE!V}!b)v$i(LL`pcx(@_n&zyZ0S7skJPy91bx%n@h$n%R^vQ*M*V`K;u&3c
      zxwz_xAdo!qsZ*%PFlL;eAy7K4epCF<5=Tst@abiaRyd0BTQ8Qr!6+W$%2$qJxXNpi
      zbAS&R<<*GxI<8@i--PQJ?;(7NIDk@dAI3f=jxg2R9pL6q%)KrjK`S5NPWLo_fbw68
      zY$QoCaFgQ}gEx76Y|LPr#XCGj?T9|prRdSC-4d3Wc#`YyD-&t3sRunt^Ng<Ylf}{@
      W9-eI|7Cn!n^$AuZa}*&~5c>nFUv}sK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c60cb86d95dd74a40e7b77e094dca0aac42aba82
      GIT binary patch
      literal 1657
      zcwU`UT~pIQ6g>--v^78l<QoJ*Yzq=WlutjPf`A381zsGT*|sYL)1;FG&_4vvI#_3X
      zaD4VhIo?fM+A^TvLpIsmd(S=h+`Ieh_xB$F#*kD{!!WbQ5BNvTIn>P^EoboeT8cY*
      zT3e87%rY!Hwrg3Au(wtQ6SkETw)<(Bn;Apc3VaM98Lt_fqBl}|BJC=uW9aw(rUW+~
      ztrQj8B_|Qr9aosbW~g&_b!YHC!$|z{9A+tQPB(S;34<2CN?>H0!56bKA^?VZ6$<=8
      z)S^*E03n9juykmQ>!w)W&!&XE$y0`4Xo_2DZftW~m;2&RpQO$(cZK|C#iK$Ra#hMO
      z3=|4FSGUCjVY*aA5bfwx(819AcV87<=%$Kxgj=$%^DJd)2}k1PrX^jQ$j|!GORA&`
      zY!loRh7&*^ZY$_#h+e)-6$2P#P>M(lT~!*bR(j6{F@&&!y9^x{I;n^tN@GT4#46b_
      zOok(Gs=(7Ste9AvPdTp5({3e}7fD(BFrwlfMj8BB{y{dC;HJX=g%;WNgJxLG+2TMK
      zhu%+F*SLxYm?-IAwlQ=T^{*&5o3l*WUP<kdib+h-;O*x!+!fWaUEzyDC65`JDMuJ|
      z2zAR`qfs|x59d@o1|1h)jxb2-Y6L1iB{CA8vOmLuf_a9v3tUvh@SG-yYD#)}MCOzM
      zLu+ZU_@S$nnJHLe7{9u-K`dff#fm(g^#w7CW~uK>6>(`%Y?0%-OwXvezJDDchG5d#
      zx6@)tmj}81oDm+C5Y*8Xldh?l!5v4?cr>0lzv!oHq?Vp*V4;w_P3Tgsp?v^BTCdY?
      zg7!7^4n~K+LXCby!)MRu2Ca4E11zA4R@M6sq8TmpX1IygBEpv<!n@%-+M0Tf&=x%*
      zBzjJ8D~~&Q3?F0KGiqmzV|hG0Mz?32K0<TBFq_BIpIFS}#i`?Jnbi=n2k9EX8hWr!
      t`wh$>L0x}E>uV&jiMQDDShp6K6<N!#HHu*Lcf-R=Pz*dRs4W!B{s7+S%0&PG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$TabPaneListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI$TabPaneListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..877a1ca960bc63889a8423cf4343963820f49cf8
      GIT binary patch
      literal 1275
      zcwUuM+fUPA6#t!WuCA7C0uJ!Tgo(RJ5qWaNL>EmU^OB%@|JHr7VriGQ10PZUA`^tf
      z2jjDUl<|Ds)PWe;L%&<k?{dy}+V4NUd<Ae1_jPE52RmX<ytBf6$J@4gu6Sd$Md;Yp
      zV>LE>*AE(9-w$Q*dZYMCv|kEOHk~k%o(yy(2|0zgT*2rU?Hy@HI#PtfD68C)USu`8
      z9P=AXNJU*IEUpl0>ERGj84SoaiCJDvbjyw+P9G-;rq$CQRtKXdr>Ci8OMAL`el?
      zn~o=+_jlVe;9Olvm~8sCa9bj9)P8uFRMrXWW9Xl*9VcRjk%;7=EFHqa$#h1G_C&2Y
      zgEVGwRmU8ma(-nK*KnOZ_gI}UcS2;7UA1LL8LJz(iGq%K!puKHOx(f(VR~CeThisL
      zmYs&b+w(nkN644TF}Ef5+4ryWx{e}Yb(GOo_UwT@>rp$50%1p^o|TqsU=d3u?x@R|
      z==VBtsp8iJ;zZ{EQ!UQeW)p<9=J?`_emhoojS>4-CzM+Tx8$;FM1x>#`Tf9_PaV~0
      zvuEI!l@xc+hR5KBE5cB6FJ@1%qQIO9elCD=Io0j_%_pEK5k9@dyEWcvJR6njXPA{^
      zWIpju!(|>*90Np{<k5`R2Bt90GvNyILk1CR08^Din1`4-!i{fOd{#Tc?LSm`wg4Qk
      zh4)NyfDAq`?Z=q9Fn|xK)vAOtlV%uGK^0mKY`8X*TVh5PpQ==karbPqTKrh?xWYd<
      L#OZP+u?p=cCtFc>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicColorChooserUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1e89b6ac6c19e4f053c7185a47d8e7666a7ad5a
      GIT binary patch
      literal 4904
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxEditor$UIResource.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxEditor$UIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65068f5d0f9b76dc72c250253106bd74b1d9307d
      GIT binary patch
      literal 459
      zcwUWAO-lnY6r9&?yEd*?s|Uf8;6ZzE5fKlHhb{_*#e*NcXSY!!+l_3t+J7Z_5j^+<
      z{88fDC{)lx37O1<d6W0@@%i=+U>B=CYJ~ke`5-5uebo6)c%RAZFp*ZLVXwl-j1to`
      zlarw?O|f~^KUda_i&XjW2;JFBeKZN{fBe%xLi0%Hx;!S-x3&iaFET?VP{(`#A9I9u
      ztaEiX9wn-{lu5=Fo!F!@8^}Ue`sdOsZ?z>H#IrZ|Ypz3rxNz)LS7~ei*mtUALeS51
      zRYaMzR`G*k8iEb*6ucY!&%}%SXKb<Ba~f!LUm>2E)DSQVK7l8Ac)<d*;M;^nw4G<k
      N;W9eTOD=u|tuM@;bn5^B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxEditor.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..584f3f57f0d01757da9641901b29c5a1fdc31c47
      GIT binary patch
      literal 1816
      zcwUWESx*yD6#i~mx-i;O1Q8GfQA$BZP;dbeC=`oT5<wE<5~uA2hfHV4%&<K91N;U0
      zst>+uq9xJ9R}+7f@!XkVx`03eckXh&<(zwN|NQ;&3&1EI1rcCKZYn#<o^0)^`i8uv
      zDeH1hvDCagC&rXf%o%gW-a<jO4Ks*(hM0(#HHD&=bDKPG2hqsTQOQz^3Nds!C}r1{
      z`3~1@Ic?;(t*mO<T<0c3BX>d>+Ow5JORId(PODriOj690s;l-iLtSEUjiEke6nF%6
      zh)QUJ6ht#a+tJ_%Vu*&pa85!P5wUEOa31XpVT;>yhFK6Mx)W96IcHmTPbUZ01gt|s
      zC%PCS1WOs(c2T#;Ng^W*MYF2TA8!|P++0<18fS=Sjl80*DW)pc-e$f1MkUa2_Vjh9
      z<l`IMb{BNCW$08xN;ff>_3P^IQ*@B*Wo%w#XmxX{ye~>6gsTh?2_+;9BIzPTy=o9E
      zwn_G!<m)gj;TlF5Lbl=VQ$Y_LR7O*dsv{mhtW8QA2i~f|UVt!lQ^L3q5}~dsx+aZI
      zXEjZn-<B`|iJ@s-bkU+hbuakWSKDL@Vmc`<h*9-BkBK1}hcIhcB-yMK3bT1zHS}_u
      z_8pR_j_|r<R>Cyylc2`Xa{_|OVDh4|!>jiNO<Kadpoy#)+h(4pRnb1}NA$;tkYJE9
      zIw4b<Vp-e@;vvKM>3gjIY32#H93fIHFVIWxrVar#AV{-%@qp;pL%b$>bu^x#)pLrV
      zhC*+0A7_(45qq|e_;<7<zoCVd&?>&Ma0wT_QcwUFX>21xV1@|i5Jie!<2){50o}AK
      zxn$^}9nicNeV&j^UvbtT7{B;rjn3wB1-QWnUq-(NenHUz`gRTdMpO{Quaq$GnH<x6
      zs08{OC>xBEHQ*(Uujnpb)4Nw3{x+Ax;}<g-*Bx7<81t0IJewiGT*8f7r<)Z{L%!1q
      zzn&A-_*-RH5l7vmyReSrxP!YM$GC%`y)xJpe_N3T^V49M#FQg@?_`R1Cs0uLdla)?
      z&BI=eXKGV<Pv$>V(1m@vFm*=Cp_~6N-9jzhN22?5EL{ML4(0(e4vJxk{<8@G1GtlK
      A2LJ#7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..87a2825e4dbb8b7e78c056c58ac37043eac1cd7a
      GIT binary patch
      literal 467
      zcwUuI!Ab)$6r9&?yLMfzR!@2oJgA6^co0!MbU`Q-4^?~5ZlgxFi6pJ|I|M((li<M*
      z@T0`HQK+Do5;E^in3?3|<MZtuz&=((R0xN6;z3Lj_o(zua$kt+Boj{MNxQ_<3^UU<
      zlb+NAX{Ft~>hz>DW1Gtm0bzF*bBH=&{f}cBNvNMFtwyJW>ehCj5Ts@xBUCXTBg7n`
      z*;QJekB6DGmm(|J(dwF96n$Y;$$t)m(XDcXqwXxv`!(A!A-eG0nJV+v{x$5C>4dnW
      zwX|s=oRfTMG>yRqcoN<<{%_*NGcY!o9e57Zc3u&^a8p6d7;y!j5a1aL+{ND_ETZW(
      POCFce@>=roD`<QHEx>pA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxRenderer.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c568c4cb46bba729a9cf46e1fac609404c14294
      GIT binary patch
      literal 2088
      zcwUuMZExFD6n<`-)@kti;=VApwRAAR$wJK-Fjz{V>6SGmTSwCbmTd(mxy{_Uc56Fr
      z7zi<;{fO}g`gLqlCV_<D3rKwD?;y^-PTHickY>sDz2~0ioaemU^Y_2M{086x8VY(C
      zk{jlZ*)aTF%c&V#wz+PUP2Z{*Y4KffH_L9?ZLDyo%02EWh%jiKh^3ra=C*=<hBKY=
      zoaF}#+_n#pQHC+0VOXw_=bmNS)&sL_bA}U+n{g|3Kka&?%Wyi^X{juwMtGQFh|X4Q
      z%dvtvhF(2hWQZ)dRjy!&Vd@y%)y=Kon-CnsAVySZ7-i_6ZP`%tEIsk!02szq3?RlZ
      zl(QUuqrO?@-fBou%efWPE}BG}_EH!_FJ2MW)EGfet2l#6h5?@k%UkAloj?)26fcUy
      zS5-{oY<SoXa!UW7C}mi|J<Dg9$-PK{C_lqB9^CZ!I`=$Y&07zM$b=r3Rt$4DFs@je
      z-0>~fNeOCisn8LpG!SZ)Hv%eBTiG_rVLtH4Zz_uO42a=v7z$>{$zcr@@8ANZm2cNg
      zn`n>g9Y&VR8@v*v;w6!@iz?3HjVRt{VAF!aB^4jyBckB9DRhBb3`9y4*RF;d+EE2E
      zS0(nx1xme1;T>*C%H5XhaEHvzbr)kvsHTnvkS&!u61k73M9yPDL7HLYh#3`EaFt3x
      z1oGS_D?})5R_@n4x9$*OP46;kyPmAeH5H4<(%ld()1f}9AJ!HvHjmF#<c|2sxE>FI
      z!sHDV%WadLC-eAR#fku*sC7CMC#xz7?UQcI7b?EQt*~)2u1MlYXCy)-1G%l@4(^84
      z4fQnrkXpQ`;Hy?owR4xPxQ>9ED$1yYa3R}oj!s3H1CE-4^{&<o%ckO<=<sOZhMhuJ
      z%cjCmE{`cXL*I^R*Lin~wdzlY7WGbpT8;7;v-~jAoa(|#3~GhCYti)OFr)LlTlXqF
      zV~GKB>e%Z#BU}(L>p0Ypw(0xaSFl5O;zcg~xk7e@`_dVCJ=owZC9oGg=z~HlIoxRS
      zM-atJw4<uh?jrgjo}phccq>BBa|}Pj*v};D!34ym@1gHJ&CbhsSxP}rZQsB(lF)3x
      zNa8t8CL&FoN<76_6H^B!H1Y{#=(|W9vKYpaG^K_>yoT4MQJM=aqmKyLOMfHL#G8L&
      zO#C$ZB!5Db{Ji@_2yzMSy(T^o`|FAGv`RkNcR58N19^;M6(>=`ByN+FJ2dR>(hysd
      z?x#Z+E%%c|^D<IIKqu@hK9+IK;gc4ne`qgKRTz&v#)R<qX%iXoUuxp|9!ACTW=oVO
      zk@y#zC?)^E+G7kRlD}iEiLdu4n&e-IYKc84$tJ2IgahIUS)+hzwnJ`riTt-j^gAN;
      zJ&o8Oa0w5Q#*Y-*BN@b8NU9ZtSXtPRc`e{RY+0@XHsQ!%3vjU|t5Lu<t@`NPlfHfO
      NDT>Wdr*{_v{{anG_;vsQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5af949dc7e4c333b27d87466f4ab4e7200db2c04
      GIT binary patch
      literal 2168
      zcwUWFZFd?)6n-XIvOve?jij-Pwu+UPTIx%*l}Ht8S}L@)w50Ym15C(9*rmhLRDYG8
      z6Y(5B_^}`S5&jg9cXl@r2p+?p-PyTw@AKT}&Yk72fByIrz{hxDVuoR3PrMYbvb}xF
      zZe_b|v6HQfp4G?}^t0%6>Q2FV^`MkEd@YNgoW5HTwrELZ!eCg?2-&uv_&fDI*>FwF
      zF|2x4vF~QbA{ge}U8|S4%#bXfj5<d#8<uUkd4|l1gHkmHqv$kc1PpI*m<UHPi+PR+
      z78que+F`zI+46S3Q<v(#sJA7<QrT&Uc1<Wt&jX{OQ)bAYkb8QqNXC+AHhmj;bRApT
      zE<?(f<QK5&D#Ff{hs7H@`hslH@sd0iL2C_iWr$6SWmr+N<Ghr|*v};Yi)*>7<c?HI
      z1}RsqpNTp>=5M=#3aE0ak@33Kk#^5=>|7M*@SchDl<)Bnj`xwE-f2nq?jeuQu$r8T
      zMorKa%F8)6Ed_?f4mC-q-x;N=Ge~iyHPdNgs`w5*&wM+mMSw6_i=nn!6qj(>M3&*g
      z$r^yu>H35rLX;)DCtd2D<)f;6V=h9tpK+|?bB1suh^92g+U(XLEY<T0zBF-_Hgl>2
      zM-Cf4>rH93c3rQ_OA+MpwTWw_cp?FgZ%`m7*P*^)p5t|nZ?$c%?zpbg(UdnhZldJl
      z7M#A_>`m;^Jv#E#iET-OzC*=C`RI-hS2=EL<j}s=ba%D%yBy!+9>Xc2l(S#x6QNDo
      z#?|{~Py2n22U=j564~-W^4Q{d=)o$jIEqJjV&XB?dkPB2Q#>Ofy^#<zS)yO6rt{h6
      z5I9TPWz%vUrFXr-(bU@4)S-$^M-}@@_hC)6`_y4O*fr4_@A2RmX+CSbtwy!dM~u<x
      z;<2`%484l@Z5pjQebtbgmi`dMCK~OMj%DB_n>w}F7QLP%Q7cowKR8bx!dbdQU<(WS
      zdr1ERb2N`2O3za?yMh_IfM`1N8+iJ6oc@(&Gg#C%y<)5(WUOF`=A2@*br~@li4>~=
      z$~C%YwQUrvX<#J0z;pg$5UAhIV9f(#coSzSg5fQ^9e}NS7*oKq9@whCcmzyCP-PLv
      zI|0O18nss_Gr+sQOu*!hz=Vb{A$))f9?XYRVUm+DH~t4EgNp&o-()ptROtio0Y0ke
      z@c^F=@WsUgd_{M0yO|#vHxF=Y%b(qOjYRM^T&|LTExz5<q4D?tKlm%pUn3U0`84$b
      z<fwva+BX<AgpDo4jfcn>kFah$M#Xr7DvdScDYlJgcws#Ebfx`_hq_dtD~vt5ek9a5
      Y9nCfhw6!zncsw>7!0RkV2dNA8FTIxlaR2}S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d34b1658ec60b34db6b263daa8e957c9030d778
      GIT binary patch
      literal 1191
      zcwUWDT~8B16g|@pEL}#Z1wjNs6tT3*q6mIqe1L#r8Zi+u;ceOubV$3~>}~<kXTSb|
      z{tFYp#0P(XKgxJ#SrG`BX0x+%XYM)o-gEE%`u*c4fZKRzA;B=YAvfi=6KrXB-KkgQ
      znp2d4E;+Mio%3o%Z`Rv>wK%fil^VfQ>6WX?x4;?F2Iy2J!Ip{}suWsiWf+J~<yPpZ
      zP34A81S{wuRIc(FTEmJCMkW}th34YU5ay9~b@-Se-!y1!g@Mm`Wt9TMIROi8Hj?NR
      zNFmLT%o>Nzf_ByOMy;s)Wm&8$hD^aL$?A&qwXx$vZc=8LYBKgQp(y+IHDf=K6sycI
      zcu>Mgf#%JYvQFV5E?MYf7;P?^KtBc;+A1=Lh#1(aAsG}H!WFtG#jXs!#|n7%mt)4p
      zRg74;#&F?O2Z8HGGs{<XDk7u^Buf8(%3w%EH5a@fw2{M23wegVGXVm(Fit}0U|H4b
      zo-h43QHxehW)p%Ym2UeqP0@NKe67s-!mBsx^R8)7*`{(Q1@2;sS{kT>yA>VisC)g{
      zGs<2yBVfPu8h%MFXye*_LfdfzWDtukjqY4k27w}d#nJv^nC2@<ZwpvDZN`lLEMuo&
      z)7nnfeI)1s>|A~iBKI8~-^fbfyg4&Byp9%LLxyZY7<1Z%Zu(L~&=a#P#VlR9T?oF1
      zUi00><$VnQqwAp1;5%sJZ;|2eBFdfvSWIblqqsq&^amc2?-0&-O&iiAk>~d@_7y{i
      zF`O^R7$ZJN?&HpB@q0)H@b?t|0|xj<<oPE|@y|!{m_E#7I?f|OJA=PRLLm~3Q9mDm
      F{Q&?N8k_(C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a2febd575d7e5d2e9e95c97e87fd16a7c878992
      GIT binary patch
      literal 1308
      zcwUWE%Tg0T6g?e=3`tsvG0GcXh)H;iK~yw|N(xJ?fQu;mPSQYAlNo9<Jif%zwa=|p
      zh@}gcF8nCV+mqofR2G?;d;6YqPv1VBKYxGz0+7e7i3r2Qn%ETER%1&!E7rO#maU3t
      zsH!!qpGCJ`acAA_*YiX3zN|kNPR*8{34<Z2ah5Fz^|G=itG<aSLtl^;TfQYXrQ=%~
      zRZ<OKI?`i^`m3rjbekblYOQO5Fw@FW{tUxN%b@HMgHd#AG6sfo940#AXhSDQ3`vHz
      zj4tRbDMv1D)GN|^B`UULNR`~Gu$P3VbQ~rPEtz4m#omX<MB<Z*!m=-XSzM(_$r{5z
      za~sEIG^f8vcnsa>HPOQ`+*(79KJ+tmRKpBI*Ab~N_DTzJ4C1PZD-4(ZTflJ**NJIG
      z`U^BWTT9Iz;o7SVmJ10CVc5h?hMrT4IBp?BvnI~6w8<p0rgzJb4yg|tsGv8W;~2px
      z9lNY4-zCqa55`5*>#m~*rS~$<VS&69Bl5Yhc<>a(&Gi5_!EpzZq^asU%W7rAlY8KN
      z<}B<<x!EPncaP(~c9rSLb)g)efst)`Pd{Xa_Ih)^eP>LUXg0MaPjqF7m)#AoDxWFs
      z&-5`rjB5Y`pLgiS6>ZUINV0F@kS*z$=?>7Z9W0sDmxKNdA{56Er)PqqDT*WXj^{?c
      zf#<&C{MVr7g3jp`;~m<KH%L*;38S+Yk)}793ztKdx75X;_jGOtd<R{-7+4tnfg22q
      z%}n+;y2G{olCiN}<oBby2Yq`HrM~ZxFg_q<d_=$T33=l)3dWZ}N3Pi`)S<to@E}l<
      e$3ql|B}FyUctolqm<f0v<4K^MhE3Lc3ic1H(onYm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a72e56703312fa7246148a655dc07b5b2394556e
      GIT binary patch
      literal 1593
      zcwUWE-BT1t5dRGfuD6bYMj;4BQGy33CovyJj8RUE2%ac<ek6HV?k3zM$L`hc9$@mG
      z%5&cEMSLPpR;(zNR)TrZR5TT>${&<U_uP2|3rebX=cc=V{jtC9zUTiwS_06IFCEkg
      z^ndM5d$Xx%#`u$|QqlV=HQ_}jmm1_V9ZXFGgTd_O;m#3#<BaF$i#l{51zOoH<;}z?
      zJ+1vXMdp)vuN3Q0U_)FmQRg9n<mmc>50K9><D2-nK<~Ppy0Zc@9prTa0-F>Xu)#$=
      zHY+&TB2b@XK;x+Kb*4Nup~FkwL{STD8x3+^G3$kf<*HJ0$pVMhnfrfiQ0?wF`o>tO
      zqe$lk+AH<1q-KaORB!^#c-ujXK-c;bDYRmzz{XrvBha#<#IvuU11{R}j)PqSJ5~iK
      z?8Y97G^yir#92{bSF(FWtXD{D9@vDv=yb5J+Uiw73h$yzz@eDq=38w!ALc@m3f<@t
      zNSJ8IXNL3EcHPAR^f@?4pRoo>3MmfhQb<y9cU|JFU*SC*rf!-j<4v1MFE)Wsc4}O5
      zn8UW?1BDMcrAsOECg!A^?TEt1IJz9L;Dxr7H2WM=_yja_TO(c6x%i5S3pI>PrYrTH
      zP&mo+<m3WBDo<&4Oe>t?WLr!$7L>}Rtci?G*o@N(pE10x5|id)+5}~SMHZ6vie-zV
      z)}CctO9hwFv+-+~c8n^VV@x6{1T!`f572pqF<cO6D6vLh-&#X!du83Io8!3b;F3Vc
      z8^H=$PAUr~Pc0SnwyrtSMC^D_4s-gn;WgU++W7XdpMV<neI2HY9<2y%nY+9_=%C%L
      zr@tf7)Wi!+w>r`|*hpuBq$4EP(XZRnd!LR6P<Jh+k#%g5zo0?>j3$y5`LK2?wsAzf
      zh3%CnqNf^VsplTtd)Tpvwuk5tn8Tf#X8#;+v(UQ;dJf%0vSxb!Ccdu<Wcp|k19K?T
      z?b8ML3~%b1$Icpha1NVUSj5l*GS;4)$Np99XBN;`Q;#g5!-CygQ1;R`kH(5Q^AHyW
      zmcRTspYjoQ%U^L&F5#$rj1l=eF3Kk;$fpS9ANWrGi67)M{3!pzE%`Tok}q&qzQk|x
      hAInyAg^?;-e7l0H#8(}z**w?rxn+|^fUsXc{0Cvvl|KLg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..09385669bb86b35cd678976aeed44c3dea5c2918
      GIT binary patch
      literal 3136
      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
      K*j$YZVE+LWtsk!d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..645929dd485ff79740a4f7601d721413bc092411
      GIT binary patch
      literal 2581
      zcwUWFTT>iG6#g3M%<j^LYsgKI7)+Ln*{EP*z$9`L$Z|0d5=o4i-ECmV><pQm1&o?_
      z3*O>AM)B1L9xba9sA!etQ_Awuzu=?gvv0=JGt0ul5_#C|?sMzY-}%m&-~avT7XVM;
      zI}HU4ZBzP;J{L*N8rDQ)+SJD*F+F9(Bkk(H!%oKRc6;tjZ{3h%PfN#rtz%NRCS;Fp
      zB~0mPC}Jp85h5muBZILi8Fw{oW7y|OV^X(LkzC)Xk#eOa9foc0q>-vS%n*)lEsIw2
      zX)`RtJ<ia$WvBX4hN2ETA%kFeL_k9zghG@E1X0RR7*+-)QNxl0>10egBYMn~4CPTf
      zuA8H}W2kdRSfo;BIKIWZ^TS5Z*gl=3VA$_JCof`MGtzSD8A0sA9u2!04s7jufxUQ?
      zUSg#B3AJQ8Ic!{&odyMFU}GWFpjN|U3^fnGT3{a@Cx|AbyP_S?lazF2xIVgC{bARk
      zbXo(bW6-3f084~$0AURWb7<ll3e=;43M#Lpb(1jN5ndC^XHskZn0j-Qz>_${P^>$S
      zJ=>mkUE3o2oEr4`;#OsUSP;FRW(dSHNHFZoHC}<JHH2n7tD%L$<uwpEf};#UBh}?U
      z$m0t^cMNSBsE`$Tk`Q<v#L!Smx>>KH@L2t*y6vRE3o2xYLM9AXsg<}xpc7qm6M?Mc
      zHuXnM2HutMD@pnK)?&PfUJX4Adp5Tc=))<ZKsGF?r)`U>%22gZK7H1WWaWfOzk1vN
      zd2Q4NFhs!0Z05UgT3}f9QAymk#*K-zBmIk%?u@{w(gpQIVpV!h;AJH(OIvw-&I?>n
      zTH(l~J(E>5<D$T;N)dA8jBXkU-Sv>u1!799IdWPzRE7k1khFR~^}MNAJ}xkUNg@!T
      zFlZ)5bu+zzy&1-7m}1zS4^J<eqL(R<1QD>*q)FCE_pDB|x}17R)jW~tIxDK1foXv&
      zAcrddk?U<34u-c9N>Qo?)S&5==MBhN?|BNDS%EoFs|QH#WzSH(38g%>m)YwAZ>Y>F
      zsATK!3*Z_tdEB;W#=k|gG)s?e5-Dij5qKBxsiw|QxN<Xs%?rGb52$L?B+8q}7LMk`
      z%M84a1U|-1GE``Ly<Cyo%PKhv`6=c#d`6_&pj6E|PXmuiUi*JTmcX*jL<X$A4}nU3
      zF>=!-Vh-DBCoa1U^`)p>H;WG`Yhrb;ML>3#dMYK=(98RQpm|GkhJGBZv{Zet=!;!I
      z=O9A#UreW?bS|JZ)X;brqG1`^fAnn1luT*(F>rna<#ZP0qoft6q?Im3l^=!uO_qhU
      zwlv&<D7uTCjZ3I5-@k+>7SN$&chKlBktIB{gy*t{6AP>$duYFhZicmn(M9~}#TxWt
      zb+7S5r8+F(C4U)NM47)k>n~$j+gGx?ON+SWg^PRPPS9Td3ZuX2K1!Q>tIPLb7l0Hg
      zQrw5k`p#taR|~L+s2Ar=FV0Ed{CdA{@^;e_Zur{|Y5PeA0NQ?@FQ-+&XHZRmcOt;M
      zQOSD{=6z`4r_jlx7@&2858x6XLXw|`%ZG7|pT!M+4mbIE+~ybXJ->(_xQ=BW!_Pd9
      z-?+pdd>nuAN&Lg7@PJ=tA#SoAJjrUg#TvNHnt94AZUc%`0W-x_yD#u1m3Ns2z*o3M
      c89qP@uHkEsFt@#&zrnX2A*d;+!xq5)1Ee*&X8-^I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboBoxUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eac5c881cbf32cba3b6b17547eea0d451ca6f39f
      GIT binary patch
      literal 16273
      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
      MAdlR|sfR%S2Qqir)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d1f23b8696cb525956509d149a05099ef0169d32
      GIT binary patch
      literal 734
      zcwUWCTQ37q5dNm!cBw^Cm%2PiL`oCOgG5p!G(@8jaf=rZr|rREoo#lv#n18}5)XcW
      zA0_6jCPGO1GH2$S`M$a2ynnpD0a(F|jRc`|BiiD@4eyn{a+{vGbZa71b$8p?vVT|e
      z5B+AVIakqbzb+!>>wWpSCv?M;fenk0Hv+D>k6hW7I&wL^)ey}{2848Ut-`rwLZRAS
      zn-X)@l~&Ovq1ZKP;f!FF{f6uXq0d1I=?s$ScVJ_HkSv&j!K%{opmkT1!HKAOk}zE5
      zjl44vC=+);%ZyCe=(6{pci}DiZsp^V^rQ%7gE0NI%Fiq97$=^cxNrX73PR@CZv}O^
      ztIUA8UlS}D9>J+-ErYTr!cc}brU>)hZNQ3u?SNUnWs*M%WwYj>>?Ihn(ZjZvqcx5b
      z{AL!5&um`cJjFGG1~VD!94YG*S&kj%7<353MiC>(byQYk4rAZsv?;bOV&d3WvO_f9
      UC}YIvcw9e$d@Rg2#3ZIcpTUc_P5=M^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d063ab39aef3a06bd8e01d44356f24c3ebf445e
      GIT binary patch
      literal 2308
      zcwUWGZBr9h6n-u@VIgiRZ=wN|Qd1j138+O3pyjm&0Vya|YFjtiOLFP58?&20ZEIhh
      z=@-A%5A<Jj21BQv>GX4dRHx@|0t8e_GIMwDx#v9R?KwC3=ifj60x*DQ8fq9u*NmdE
      z8Fx3Nor&ixV>O;KT$zrKt98OzPdN)tu8@l+?V^)5Jn7hTPQewo4BNCsUPFMPT|vZ+
      z4KFT=!uI06!kB5~JdtOp^|I29_A|t0kLPNbY(}Ily&DX@$2RI-W(Z6;rl<$Q2^~Sy
      zhQJZlq2VnC9#aY@XQeIX3+pM7ziXr{!O%2ISy{_QUaEaX7*HWI+&rf5H`Ipm(AU*|
      zAun84m<;F2*&Hs_lzOEELTJSq4W}8}svR$>^`0j!=}F=0h@g$3QM$8Y)${Gg3!dlL
      z{|CQPj}DyEaF*f1@$%BqiMJW*(n>P!Y%-iaP?4F5%E535?;xt-Jj1EiD(H9@7Z~cL
      zJ7ud9n|?!9LKIO<M>kp+!ltl9#_+_nlP<XGq*up9)w&a&lgU`Z4~c<Mf7*}8laTzP
      zFA|(VRSyx<uV}c;5P74Kj;nZ|!pjJ6$tmR1<f0|kU3Ov_l*pabnn-)Y8m<vz_FyQx
      zoMV%H2!pt;BLVWRDG>RDAX;}Jl<uTl7q&|bA&}8(kVOI}7Z&mMCdM>;P<^;(rDGfu
      z48aX)dRZz$QfW`=m{!u-tdN;3MKOX~itb5@B9^3&qSOFx>zKtH^^qc5aHQ>#hw9LL
      z*|4&{qhkRd`5m`CL)tV0&9TFZ<+d&9xQlzlLsBh@ytiLWhM^;Qc*L2CA*^V6U&jNi
      z&>&jUCBWu`w3{U%=|03~8a|~EUOCk9IUZ4#MBH4#6U)+-L^@SzqHtAkd$sq6uLCI^
      zX{b3Z<V<3sf+F%R5tGttxTl?bCBx36GF(w$53#Bv1L{?SB7_ei%%p9KO`rQoH8N{D
      zzJNt4?kg&RSh5@wwcb%v5Xee(w{_sLjy$L{p{zmEL|3euCgwM#prfdC8(q)IjTJm+
      zDV=vLi|Rt;PVcgn$h{x^9*2p#0oUhk)#*NKiDfCLV4LoN^Zf$)4(wv3KEYg>XAOtR
      zL(D8nx7>+PdDf<-x^i0%-93HEkS@@qZHxSbWzYpmu3KM!)1r&+d`>@Vtf4_&{Pe~V
      zph>7Bc|GlhP(xoJ)YJQtmL2H7(XIw3l}w%RFoHaU2HNXnqoj>!Qiy0qO9jQOphSCr
      z$EhuJ_G}}xjrJ0{w$P+Dy(PS-o+b3`<2O+x;Ahan+t9(=ah{*`{j`>`Dt^@4CG?Re
      zhWM^WHtOd9yddQMzcDy>v4o-dKQZ!v^Gn;f5in_;446CkFcF9ZNNc8q`CoCr63t>F
      z7zvUvQLAiru$<7!L4O?4O86wAMQTZZ3tdVY3Gxz*N>UZI5=05IoYT5`@R!Jyx88n=
      zH`K~wsN>xT^BzQbANqMe5_|w-{4!?v6)f|sc*F;>#;@Tizm8{o7|;0#e&M5jITp)_
      z?v>+3r5ts5jty**r!aoTmv}<0jp8xB!q-&T1a9LS(hFh?lX!}6srfS)#&>i|e{b-;
      RAL9@B(Qm0LZU=rs;6F*hO1}UA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25c3f53991d9f6358c361fe987e624098cdfaf3e
      GIT binary patch
      literal 1954
      zcwUWEO>7%g5dL1?Ca%r4`ELnn8&cBX{M9Y}3r$GLZ|mZOv<Xg=rft^t!``sjb$8cp
      zBW~O|SE-N?aEL&?Af>JZ5(jSd&Y3&hkT_B?v$j$vfR)4Un>X{`d^6w7ycaKj_zA!{
      zWJ0JDm|QoC#-o_`(6qC$yk&eGOBtS-j!p1?(%DEk^G?2y?}^(*CvEtqW6wGTPt7_k
      zUN`KFrQ8rSfo^sbGamXeRaCYgt2#EGG4j501seRE>Ghlyh$apOJ3@CxP22Rx1O^U#
      zsV^y@O*$DBhQMn&>d_E^#9<vF91)OFKG2vjZ8cZeNGW&GNLfmtB|#ZlNy9aHUr}lt
      zvcU8Kv1{@~+2|XropOzAR%HZEmUG%q+cb-mMg&LkdI-k^dJhJ#qXTaUgiSALdS;LS
      zWxK+Dj_WvqlLF0Y$1W<@e+48kTr-Rswh-PV-gfP`RN6P}tfeC8!r?HXzNMoFr-??(
      z^a!YR4~;hxq#TLhZS;i@rO^Im)X|RtLP$Fs`GT)1NimGTv8teVfdkTp5DVdqK*#?E
      zuH!7u2^`8Qf8H^ff|h7io`G&8jPtk{!UcgNdo4OH;j)0(q%R((R4?-HijEOhH{_I=
      z&H0@DdpgE&RUncxylI<8fNL&R*fg$Vf=!L4H(v0ag|zEf7Uj*Qn$j`NjoR$_PJW-Y
      z3)gg9N1TGELi&bjQ+KvT_s8BBfPA1M!5~dV!z!q_H=bE9czy+CPRECsryeZiGls92
      z?g{77g0hH9>e(5`t#n6Mt?pRqOES_e9SfX%qZfoaWx8cA4D^wXB$kL`&o^9uPd?Nb
      z(Kt_|pib?q0Yg2_eOrkrR5ZPE6SVzT4+zxf%T;aK&kM~%#-x`hvfvclw3;z_MB4UE
      z(HXu(vl_Q;<xX0L=P4rjc&*V!H$63y-c`}m#P1DBb<pU&IYjy}?S^SzM{A^i;2Hg%
      zL;pTF)5tou$OP(T98I*>=?-g~(ZU|ling*B@q#ewX>I7=L8OHCExcrDpoGrZAJMh^
      z9NlxQ*uklx5_$(q7~H`-LpvD$3aeE+`rcjBGT-1DpVppXw0!IREs8C0J;|r9XhR)Z
      z2{T)GTse1x*FjmrEDMqp+xWD6cXSI&RS;hzB)6eym$Y5ir^?dJcI`_Xt-$coP8f^Z
      zIA1yV1btQ769Z+RU!b)*RtjP96@xZ9iNQruC($aG&?#@DS1#j%TtQr};-<WdJMtb<
      z@;-8M4G&}rn=*~hWCowhEFMb}-^z7-N9$Ah34WFv_(j_IRp#-Ve1JcshreV2f6Jn%
      zmzzPA#<<F&p;9H5Zeuy9)}L4*sg7d$9e1!wHOt{N?&2PG#8X_weOxA~4r@XD22w$_
      LX$WXo($M|^70>&{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ItemHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ItemHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e19deb97eb214aa43f7e0f0d9ff780c690f25244
      GIT binary patch
      literal 1152
      zcwUWDT~8BH5IwiMu&`XAd<a-XMG;G@tRN~{z(}KUO`|3l9(=oPudrm<CEYFHA0YA7
      z_z`{bFPK10eDDYOql`1#CIU**hj#AFoilUpnb}{zfBXb6iw71`0&|;cN9{S$t{1F3
      z+rE13lvU(aoE82rhFj(EMYvtxo^)fq^+W|#U)L;{0%^uMz9Q7~@}{oD7CHsSlBn8^
      z9lfK2*kM%3i((z<nm}i~;YE`-1+t~~x)unt=mlQ9ERb&-G`%KZ7Q?FUhQJvK3tcu0
      z^htChEns9hp|9ix`dNLetZOe-+1COCrLdy>HC6N2Zv{=JEHK|@@1rsi`LsvwYOG>i
      z+#scNRbagNj1w9?;u8_KF^Y_Za{{BMWl4<Tyg=`|j*nDMp5=Dq0xns&C@|F?Ux^7^
      zCZ0RWuWL7YSlz5gF+l{xE1QZ<N?c{l`lB~Ng$KE+eVVlw2HfhJL>AK|l211RgU3XA
      z%IO78%S&9x4S}u-_gxA11V)ah7F!nu8xCeI(2AV>Z-T@eKR(TmPnhVc8&vh4jd|R$
      zaGRL^!$IOM76gWL5Y=lsNq3_)FY=lL&bqt~f{vNfCnI35hV@!SKlT_jbV9}%1`0?w
      zpgk}8DvC5MP0x{KAf0JM^y`2~r+Fpm8%)8Zm9#0^L*4@UDYAAhe+ZfTj^1xcPCv)^
      z#(0YkV;=+LOTut;5JO~1EeyA+?6;~c=NlL?zhWVG0C|A%FPPzzd5Ceg4P0SkwA=$s
      zHBGL8nFenC?VLd;b$*8d<2^FQ2TT|rF>QRplJPlVGTiLeV#23;xKCVCC?qu&v6L_+
      KiD?y<Vg3PVe<4c%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListDataHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListDataHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ac8de04144833786a302b936026348a1dfd180c
      GIT binary patch
      literal 940
      zcwUWCT~FIU5S&d++yv7EO6eE01VxAjwQiB1NT5nIEdnW`RYAO;?Q1#Y*pcm|{abyg
      zka*w+@S{+7O%M$aB(i+x+1r`Bne*k<`2~RYsM{zIHcnMv{dUt|Ci>}iL-oV;RBC+p
      zlZ>sn<Hg_NZm-*Dn>72ZGPS3oAk>Ksi%=7;8!Bdg^-i^)*(ec~{#Vp}9cAtfS!NyS
      zgiy*(Oxk!ySZR-UfGy^1o5*Az39Dn1ULO;zRvhRu2vZJhJgA_Es)I6WgyM=cRNE%f
      z2fdD`lOyGYnlRIjeH9+7#0VY~Ejcn_bIiT(CdLM;ejKs?ENz`|W;!4=hMf$j^+ix_
      zfq47+$WC@>SU>5ja3=^vzIubd>rUL4O64%_CBEJ@;%N5Hk>AP=1ZO|uJ8Fe0O?7JH
      z6=8Wi%XySTrcvkIi~LT2YBh<Ue?5zF85JHU8EvA#4^U~Y{)N*#!^1y}3YeCftXOX_
      zVKp(s*kO)TA7Pef!eh)0RMvA2*KWxrX|~pK;@tJ(fGA&2@RUcwv(XYCMo2s#EwO#C
      TL;)}I{&_3_c`$^RSOon8(T&nU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2580330d0df3710931c80a018e389c375e8552d4
      GIT binary patch
      literal 1081
      zcwUWEZBNrs6n^enD60hq3=ua`bmCr=;=2Z8B8$eEX^5D`uXpPeYPxo5JJ=60@rxhC
      z;7t7B5Aa7B&nXKCGh}IUd(X>r&U0Sc-+zAo0&p7-45S1eew4eiXGeRkzioFs`N3|=
      z$Zgphd{%>YGuR9|-A<wIM)B*Q8>yGlcRUpu&;@b~w&h-It6k;CcH;2Nk)2qD0^{+H
      z8x__BiuKWwtP|#m>$~w&fy&6BQbRzm298QY;GBgqjGNFfX~DphfL3IO>ALHyH{Etq
      zh3{n3Qv$Q~pe4PA3|*E7N}VYSJRULkP*<n|tIhIesG>+Y0!xQ=oNm%{z9!TKrOln;
      zBQTjne5*VqDP$Up$QigOureA+3wc};m}s$PBj^b%oG9;AbzoTM(3dS-!7_EiqtXQC
      zPP%fv>n5(@x`Beg%#hK-3T_BwwpF}Egj=z4YQCd-$sB4XN~jnp3(WtQfrXp6Md)Y<
      ztru&hhDrQv3u`=9eaCgEbB6SjHVK$pK{srv7cS2+d#VSkoQ`Hw^L-UoJxQ~nF=tMX
      z56iSd8hsrili@w0n+BcsXoB=<k{%&N4`7xn-|6@PYoDYPrdh`p?K8%-PsosL5r(xh
      znB|C=Lv|45eu5$0F?gJvwJ!<q{Go9G<l8*yXj8Co6yp7WNWOdk^8gnPUrT*l?W4#-
      rAFIdFr?@EXE3(=?a@x0lvgD7l<ms2dSyH%@;O^pHLZ9<45@r1_{v`qI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f84670fd7f14ab73a43621db264546defb072e68
      GIT binary patch
      literal 1296
      zcwUWDYflqF6g|^zSy;DH9`dlrOT<1X3o0s>hd?A^3L#=h<lD3zamjYK>FyT(ieLN>
      zCQuSJ`oTw(_?wJ(+6J)#>6e|Evv=-2=iECdzu$iXFpbA50u1weyvz>_ci*&kjiSY0
      z8CmX{Ib&IVSDZrD*>sA2aV%rH-n!$vV%_mf$9~G~yd_F1f(#=vg~9hdLzIQ>8E3+l
      z^1SGY5<`pk+H}XJ7-E^`3a07KoN1fh0z<OtOYv=n;EIzMZD6>fBZL+W3c@;6TxC#V
      zGN3(U+G4{mWJT!(&su_^GvnmAwarVWJlDaXq|C6`WbF$aA{|<xhL%O1VX&s9(XJ<Q
      zOY}ALpif0FL;r<gI{I;)p><byn~rIF#6K4Qo3)CiRSXb*3O*M(kK4PJ&=5tq4MP}F
      zG0ZUDoH!k$xJi~+q>-WPA4{G|;b{%Ga9hPVL&twVb;J-SHaVwI^gXd{x+Xa+DKYe(
      z@#B<a)rcsPIwp`Jr8&p;xM@>2x?+t&<2zD~p<@cu43RRoe6i*(<@bEoBL)m?N27qd
      zI__bH{P&A_?g>e2**Vw}7S*I~tvaQuw+us<HE2i9kIL<OZ1j>)hETEAok$~PN>Mi5
      zn*Q$d<kQS-IesZ8R!upH-3{HClvfz^HQN@Y6^pyBAZvQgA3%)IQ&8x|vq(g~2igS?
      zr1#KDcpIG_(m6n@mPj7a=NS6CYD~Mt<R9fTLdr)(=&aKniFTk<W<(dd>sj7XjUcU$
      zk`-KA|A6SrW8BzC96~$9V5)+#)I<e|HyDsm@CcJ~O)3@KksF18zg0(x8<a0p^((^4
      zH}omrF|7PRO!<jv<pi_JuPU2Ftzw;x+}+0m;uFFQshXv1VWbF66Sn~7s`=-!P*p&4
      JK~u4a;2(O8Q)2)C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef5371338e3c4020f0ab8cd64d24bd9b2942edf2
      GIT binary patch
      literal 799
      zcwUWC%SyvQ6g`v1Mq|`i-){ubYQgA25PU2Qib8yV(*2|zbtFwn9@XD+A%Y7(z>gB|
      z#DWjH$RabjXYM&U_hddk-`)XiW66NVu=l__{K-ikWq9Yb1AgoHJdq9ONUd(v@}sM$
      zowZjynWWbu5RFtu;VBQBfrt(047L(*0#5Wx|AEd8lo{53%ZiQ&Q|FI@Dnuw^hH`o@
      zla(!os#na)9&z?%DAPlRT4B<9ok4e_rWgRjkOc$%CQ2BwFaVpOR8<Wlo(#oB*78Ms
      z!~H-oRJ^FcgF26;s=J`BEHfMw{C3amXbP*tgG{*h6rE@?tpA;*M`*_i$|qsuVzpR1
      zgLxfgaYLL)<$e60xlJWPUd}@L8*adpL?i|lNWR!`q}XdbEK|%Sdiua@Tcu5RPJ>Qq
      zn}iNhwM(@|ySY(&fwl39;pe<(RAK5wKSiH@j0)8jaTGd+aoQOsFxgev$vK4mkjtuB
      fKhKGi--lhIdYi&Dtr}+X{#nfB!W1dyu?YPOw{*_V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77991f8c68851bb41098d3f4be7f3f5efce8859e
      GIT binary patch
      literal 1878
      zcwUWE%W@M(6g};h8C!I0V@wDTj2(=SWk5Jj5*deB7!b&^gRubT#Yk$bp;|M_%m|ZR
      z*4ZUHHu;BCfl`%4D(idzRV*k-rNW!y4=8SrMwp3R#*3Nm+xK<uxwrf87k~T-U>uf#
      z4u**<=2i1r+FQ2lrF31Hm(wNFv&!iy{m(kJk~8Pj8}*Sn*Qra_{~=p7?In52v@1%w
      z24W0-Izn2}aeB6NMV5U7n;3?J(~>l8FCF#GTb?g%=`w8ctClx%m?4?p7>W$}Ojx$%
      zPcn>c*lD!L5X(9h*$sxb1PpY=!O<(wjXnmR)CRqI%a(;ktt8!ZW=Tng{=8E*Rnc@U
      zEr*9O4VhtbgSpqHjmqe$M-&WuTji|D*z{Ft`&338?_j5a9Sno(+Y0Q$yHwMX^xN8k
      zS)(ii$<h2uyXJkD;Agrp$k63VyCPlb#xaEV3=Bsa+p-kcixFyp{Jvo-VqshIwP3B@
      zXGRyhkwDVGeul)xND>%Dil|jI7z|q@)SlMUlF=a#2pq&A0$SFNQ_eMp?NQTgsK~@|
      z81EYxCxmMn2z-DK88#C=XTz!)hC*uE);e)kD%G~2s2}5qflnB=tU@U8DLx~@JsI(#
      zYmi(&sBUTk69Pv;Gu>@@Ma#2-Nu#k`)VgB=U+6K7RjrEbLYASkMzgH+FiZ=az{yr6
      zv#L@wRby3?!@d~EG3<C9OPh_ER<s1p2;?!tu%}^Lw&$BlMNHcFmKr}8ttw&`&grbc
      zTpL<JE(g#wgJ%WiagN$ZR0Z}7J6ChG5-EYAz<CX8_qw2T&o2rr;wuJ0Idi_OWu1oY
      z2TbO)`Wu07@g2=IrJk3HSdo<+^?@cSmdxo#fDwB`Z@Pzs-BFbg`>u6}AVXU&hlcTa
      zr{R|62}}2O;D0yZkPbq)b2gQdRi@`jeZAIvJTOeJ7^kljtglZ$X7rkOAV!Z_oK82B
      zbcEy%TH~p)n-Hnr(eqnivqhh24Zn>}ehd913-ZyYTQNW@CB@sVD6Bt-3j8wG#P<H(
      zP3*ajWa<XQ4eV<zq)0dMkrtZBT&H}&?(@K5DsVVY`{RG%)QnagXyP=<1(FM4po2|(
      zskgK)yb5~ZSM-DeZ{q7!@mH#uL@!ly2ZG<l5Wj~M{|DpzUmWHCVVd8^41a(H{t%b=
      zBUJfgH24$z$e-dT{tQ3!=K%w$R+S+GdUpvXaWGA{p@cGJTEGM<wBxjwLGH^~3Rt6&
      Jp$V-b_7eMW{3HMX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicComboPopup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb13f2e5a9c0df34ad4f1dbbc5da9c257b1a8148
      GIT binary patch
      literal 14150
      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
      X^+9*{p*?`WUyb%4`p2QYg!umfBP-a-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1009fe75a581a89ef244f43f13d46c60566973a3
      GIT binary patch
      literal 1713
      zcwU`UTT>HD5dK=wC2^F9;{AdeH3>+-yT+r)O@je1Al@G)$pEYCZrq)q{uF<~c|Mlr
      zRQcemRaW_+mX}h0i)GJl5D+iu!|u-ZeBJ$h-P7~p%hP87x^dIO5<>eeIW6yJgL}3+
      znXNc-B3qP!UCQ>FcfSg5Yp;?odG4irvfDx<Az>V{j%4_`;w@Fu7M2mVht{H!Zje3i
      zdllvD2YpivQUyEE%2hsLnVzzPWEbZwEIMh9-HzL?txpg-Q-9!>9w#*Rd1Vy?VTFK&
      zrZ^hVED%G2(2z2K=7R02k?NhI^2cP+QG}L)SCY=S^lkHBH#QpLguRPTpX_GhD=YH~
      zLD(4y_+gm_rj@IibsX!l(ZUA8)?Z@<HeoYMm{fXZcSPRdENfEf!fcO5wa;vGP1s6U
      zs%`D4INGqo!uENsj9>ygk>rZ2yH)A1;?~rhNKv<Q>1#3UM#{n-LVD2!5lAD$k&9KW
      zJ(qC!4{F)#Ro!xL=$JFPI|TNkld!xz3u7+xA`azUt$bHHgFY7}IW#9?E{-njv(Qc0
      zvq%?#{W!q&;#$uGag$QN%FC$^;fRI9gpEH(2^=+@Y~tu+QG;^$$HH;K!M`e!zzLir
      zSOLdV_w{#etRIN<coR+$ViSgeiD9Vr3G`!tAehSF%*O1Anqd-F(RAXpz!~JjPE5$E
      zqa%3BLa>o^R-l04h*tz`O)W&43FyK(f%9fe<Gz}fj$M{o8S_PfQDe4zRgt#K(ujM|
      z_PeR#ajympjE{O%zoZ6jGt}!A7O~UBVfA^J@2fsX27%%sXdZA&ju$Y)VWp?MvcL_)
      zAz{0LmX0%XzXi;X6Y;YYlt`Ehhp*Ws{KODv>vCQl;eTU^XWE}YWd6s>|3b_vV+(iK
      zn_i-YSAy5Zx*BUjdn?w~qr6~b1AnL5YgpH^rG{+}u_f~u;xTqbAKu8;aIl7B|Dr2I
      z^@OP8-0j}sj_0r*VQ{$a+fl>NH^9iZ)rDD(8Ri3e1wpT|o8Dj_y+sebLqEO88Tx=x
      y`iPtK36u0W)X*03tZOi<F<fF5J!~0AKGbnJjD7`IL$wsD276!QcO##%>t6x-^UN9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c76fe274bae2760ad5349c2ce57b18d30074061
      GIT binary patch
      literal 814
      zcwUuKTTc@~6#h<IS-P%v1pzNb6#4)qvdEK(#;Ax%lX^)6-lyBC9av__&TxtU%EU|J
      zgFnDu;e-AS<C&qpNMh>4%%1b@`ObGP^X=D{uK@0$6`?{{-4n;+G_xm4zs(K{G01wt
      zsyut@?`P8PJ9F5{jo#_BHX_srsV8KG;P6+yJ(;@*6NLGIiW8T~W2s&CBzMZ_uCh*Q
      zSrR7PP}$Zx>vhK#e89AaN-Ot>u(tdkyp>%-ZPWB+9fV5>B231pqLHAElu%vv0gbNG
      z^5xM%PnO%FS4hHC*W{wu6{Yh22(0<S33tbrZ*6el4G{+LT9yM-9>_jn;jDvmGurYt
      zmmK37ZbZ0FSQ%R?!A;*#y)PB}>K)fhe477KBE)aZQJKr<%J(;SKI@ui6OxYR)om8S
      zTFDb=Z0Wo(mTP(;-O%(CEP3rzY3oE${8_cdIuE_d=K?5A{p|U*Rru5qGkTG&`|Nup
      zZm)hs(*BIg??cQLkA*+Xrtg?yD`DHC)3_S&8O)BdJm#;Doos(V@(FW)<)9yk=x4|=
      fdlom!;jJd-LzTAzX92eZi-H!IbBFI5FJ$pIna#%C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$BoundButton.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$BoundButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49922ae5395933c40b042b1fd6414f2ac18cfe43
      GIT binary patch
      literal 1306
      zcwUuLTTc@~6#k~PUAtYOfLy$zROw9?R75Qz0zsElqgF|L@L}5>%IJ2N>`sOFYy1hC
      zR7f=O2l%6mXW9zY@=#yS%sF$u?_B5SuWvs9%;S-U2*biV`-8o2hI_)RnY*sNZC311
      zRLxZ-*LnC}`ny)u_g-7+Rlngms|_iAPeYVpv>UqFeqe~p9TBGI81kjQsfz?#5}uID
      z3@e%cz_naW*CxlZ49LHj-C~HY`3_HjA!#6nxQ+pwHlSgUVJvepWT+%O{;W~2@ZgnQ
      zaXG_C$*<b(mK_MCcZ^Y09K&M&DRy^_%8W@N+w47QFr;c+J`ead4+8F##YgfR&t%)4
      z_MSA?MV))0Aff~&aZbZohHT%N7&wm$)D!2}NbtWZ*|a>#1J8Ch0=v%Bn_c*#j!T%*
      zaG7DIPl$mlxXO^Asw^+$k{UPKT~6Cr)R3lr^cI=Gb!0Tm&~W~N7|0?=!*KbwWMG!^
      zEEu?<jIlt}cBHbH2IiDyfYMR=O#`=-9<TT`jJl3#EU2xxL!gXhsV#_$PM*U(SuzY#
      z9ZzXV>y5gajZXVjG%$wo&Xc|W=ZQft`;DN=H-wt?MDHwS6+MGtc^(heTssUoMNM|?
      z3Z{sEfIccqrPLDBElL&*r${D9TSKJvp3LRHLeCWrVSFJqf+3PRonTK8V~>#{eO&2C
      zVi+Sp>o$rrWMeA-4xvk7lvg3wgx<u&0WOxlWBSc7KINOZ=8(ucscAZ9)qUPM#O=>V
      z5l1LJuop<Om$YSNWavDOT<Anj(n>7iE=6RxcNE!d=|C)ZfcwXkab;w0TQo-7p+m#4
      Y)E~HZ0yu&PExC+`txhTUBvugl4NsFV?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$DesktopIconBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$DesktopIconBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60bf7d28619d82afd3bca783ac5e835b341212ca
      GIT binary patch
      literal 2025
      zcwUuMTW=dh6#mBc?%K|hxM?;`Lc%p|ZO6ndmq6>bkhnB)Ynqa#DJhp~ZLi~PHoInb
      z(-fZh0sR4$A|X|(L>}6TI1)&RXP!Wai$EYQ0{#W!%<Lu(NgmR*X6Ku;=X~dzb7uV2
      zzn^^p;5gn>5Me0X&~NIu^4^MRFXWq+Ue8x_&#dMr`1`EkE&5KgRCVktrQvO>3CFD&
      zu7VgtiWB55ox-OpH;k&UKxXLQPFoS)`5=fPW*K##ft47d#K$1H=0bxka>em|XNiE{
      zFumbp3?t=z%PUaWDbqInGYq5YM~KVJk))ziGZJ9vR-xjtB%<h1(Fu(trZaQ=%OMpC
      z;vDs>NCfC{70Cb%spvqQp{s1##>M5Ois8=c70V#TvQyQqIo&n+IyA=k1{qH8U*_)W
      z(}uei3_n<uY|rqC@o2E~yuRY+i_TKhu?^cVWZK5Sv7q2Eh3~K?F^r>p+i3<RU80BA
      zhE*AQ_F`q|G`%4GbW?wS*$~CL#?aB!P21mW_voII+O|noZ#K-TR|pa&aSYEZIL>fj
      zmy3!Q@FGLPcXivdbe}Rx>CK=q6))ozhBy_a=vWS=?oMa6=O$Yrfs;6;fQ$eC7Zs;L
      zM<-b>O-{{TpPU(=r?b5?n&){<#W*G?kGGZQV0x!xAnB}%*LgAHb<?tD=x*@rlPaco
      zCTXHPUcA8F&a1c}+-k1A!riFo3&grdjp)lQ8Xr*jidpj;bm$vKaC;<AziHH{bM>iB
      zOQS4q+Tx>JhyA<maU}V+8Lsj()J3(t>@2%g<DAKl{Gr_hqdXOZTC#1!En2$g8J>c7
      z7&80TK&NDv3Oq#`qBJD>f!|v2ClSucaPHu9D#h<Rtt3RaXo^bF>N>3=G#}26tm8m-
      z0|&FI<T`q@$~yY8*-z28j)8C<d_ay7JVEbXk#Ln#eN0q$(Sv&!#3y)?tSV6xA&GmM
      zW`<|*Y?!PJStRTG9K-XRlSVI%K^g-aIC6iBUltrK!PgtagnS%jkfrbRr-@w1oD*w`
      zj;-zB_;Q=3$d;z(Fd9TMpZt<!Tgwe;u@>^V7G653<R0Qg3$Ny)Q7%!FTPPCNBraND
      zP3F35!ZOG$0u9u-|3KjX5a$94O^VetIaX_-q{)gk7U!IjHI~?P(Gpr*k^~D!jW(7;
      z+^=xIAzzF6q_N$H^XR7c*VOuNsJY)#AHJhKeoyuI0cY?dF5xF!#m_MC3l{M!Jp6_a
      z@jE`kAGnP_aR+}<2mhwd{UhpB4{EVh>$R}f9F_5g=)@W>(t(N!G)*Wb&?Q2WKyMO~
      zNzE!|NP|Lo$8ni#ams!Ivot5D@SV64_U;I=ayB_TvVpnw-h%$E3SAK~-V*P5TmwJc
      LyyI`<T}1u^$y><M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$InternalFrameDefaultMenuIcon.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$InternalFrameDefaultMenuIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bbf96a2e1a655bb2b8d328dd6d017ac1ac2be282
      GIT binary patch
      literal 1310
      zcwVhjOH&g;5dMZdHiQiXNaPvt0h(Z7#Rn=uL;``Wib5fe@;D?zvbgM~b~k|k$%`Ih
      zl?Q)-Xa9&-50*Wf@DM1AgNL2z`KG(SuX}pG|Ni<7z%-T=v@sO+`5`~n+#|!PXf>1X
      zX}jDtO4_1amxTM?vuk?Ewzl*!-SUKEakJp?1F<Cbc-{0~3#%@#6$BaLGM8p@%Cxq-
      zFG`+*a0@+QkiHDzIm0r%d4@nbv&|69+hq|&039k6L>Rh?h9%zA4|avK$#+e`&{MQa
      z+}!4lA<r!^=v57uVYT>wYRECfD#DZIsxT^5&)26js4aBID0@|g_8K=VuUSbp?UQT#
      z$kX!nLCv;=<>k(>6^GZVM#;_TdS*L{8|YWi$IyMrLB#+DDYxfv%Qd-2<%QBGLBlFi
      z7-5Kzki2c$4mBj5InPX3t{pdVTfr@c&cAO|+`$;NYq7YsOz&|qPBPq8aSv%?a8DU}
      z(-$3^VkT7FN0wao4Ab18S7uO1snjYJOsUW$TWDuh-&~f+w2Fs5|H{UzcQV6c6;J#O
      zWrrU%Gq4gv;;L5CRfV)%(NVfNrjOo-eIPoQABr+V^sQZYN}^!M0qMIu0aG#&J*jS4
      z!pWQ5b%m>7ks)*KAz~Q**BDX7G&uBy=r;?}M<Y$AcCs|u8SSBoFNl63qYWypVITa7
      z7_Dm40iEcgon8ywt>DR4a3CK4cp>!HxzNCAXwNl5S@6oxUL;zfKS)cM_VsKk8Ehb#
      zZD43Nl>Lm+2F9}i$`}tfkRf2w2O<Q-n!tlok9Y%*vI8M`PI<|oM|sYwpF#&wc0*x3
      zh_M6`EJ?H8hjG>qjSXUk4Pk+$P+%iiW23&_`KG3pUTMwXsb9l7p5ZxVmewqCRFkyk
      c$dZ-j@d9I1Q5$8D{4cRUd(>~wE4q#R0cdR%FaQ7m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fec723e71cf24ac6e4455ab0d5f8655119f7331e
      GIT binary patch
      literal 2401
      zcwUuNTUT2}6#gazP7|i((n2lQYQZLlN{aR(O^b3V5)3WULaA3KIg@bOWKK*@xcFwh
      zEni(rm;M5uT?^u>4?g<fk8-)^<d6g~EKF9;%%0h2f8XBwo5|n*{P8D%3G5mOFvOpU
      zEwK|TZQCjvE968bmJ%g99h=e5Iazw{I)y~qQLBlOC8u1H2~{Y&3qn~rSu_x2xY8Iv
      zZb{|F>W<TvD7do7VC+21WJ=OyU<tBz53FE8D9O;5Y>cw#<1W))oT1I#v`Zt`8OD;Q
      zCaYh&Yb)EGVi=G7kN2W$L~7QtWC#qM9AUJF(SmLcj`IvH5$({Cw3U2N&ZlJYu}I}8
      zf$pS}7P&Q1w6*Oo1~qYpd#8s#USmpx=k?-TQDn2yVi>BX6BFBRW4-U|DbWw1AA<%4
      z7^0_!<ru;+L%UU9q}LDkB%!F0O62B?A}>c48{UtH@hYwuc#YxeDPQ3j!6-v0E8Q8V
      ztSqWhZzNjJYelAAp|Uv{58*1J1|n4A<GUOt+DKA6VO+zwfj1Z~HLVRt3?!l;VXk|P
      zOz0NB$<c~7jdFwIrWb8jN4w4O_JR9T?Rba7s5;)|xThUkw{6Sa)GP0BysKB*Hl>~2
      zbi?F6!!e6FhI4smOHM0mMHYmuNb$pm)wnq8<O`0{y-UzXtBa9z`cLRFd88OF{8zOY
      z!k$=`2-G@I&T>(fO48E8NOCOU0a4HBmM{#Q&|_-rGFA+HK*zJW7sn$!rZlNc4X2hO
      zM~>*H@l5M_u5p|}D2#P{Xy7TsE6uz)KElTgU3G*dp+r{SDnmy=4)4d?@hLV8e0C&(
      z!(JQ$RL<^{%-YI3WaKknEl+>bUg<ua^{Trfb5c-wH5hTt=wO{vS%*UD%}ov)&q(wZ
      z?f3wLCx{`srq5N5BM&-_p;G;*7?GM(GE}%`AxOMRZm(Ads_+>ao@mKZG@34WS|!Ci
      za>~WDoVWFrb@BM+Fs{RsmJ&+I;%rWkmWV^wv73s>(y^kymLOi}Gexr(`p9@AwHoN`
      z)YmE5ZRE*umY(Oxx`6<Ffv`EYj}G&9bp1wF02h2uAc-D&a&I0+FD}wZiQ|$V;d}Da
      z$Z>NI9ee1j;PR5`&#&#_^|1=ZHprf^$a;&cTiTk`R-ArQ6-?J5dx<=#U+vhSlmu?m
      zcn2wu!sRNAPeIS_W1dK~<2v5M0!3g*)M(xGViMJ(`Q*G{z17WHFy;qiSgeKk(yz^=
      zsdL!JgdT70lU+^k{R$rLW0j26ztF3P3ZD3xzr-g2)S>&lR+Om~Tj<0#UHLm0#V%cQ
      zUo_B}tkIdQ(Mi|n*gl=nCV*A|W{YM?kIADY{fgA^HPQG6!}yl|0KRL09j(ER)?n%W
      z^kIMS^<-9Idwkfjfx(x^2JtJ-`wRvKdxAZ!6+EwFcat809|`*>O5<ll@r#E$RgGA~
      rHQ}J(b;rc#v={JZMPFGaN;C_4GnZzqv|sixwy2a^m6~xsm6ZJpQ1>+Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopIconUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..368c162fc75f31271aa515da97b2c5668afea64d
      GIT binary patch
      literal 4991
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96da80278d52df688140e251156c77fdadb1e343
      GIT binary patch
      literal 1157
      zcwUuLTTc^F5dKcPvUXW$sdAA^DO$BH$bw>gz?fi#1k-3ES`wZ--5y|d*==?Y7k`m2
      zypUi`eDKi+f0S{~?nYXT2D8azW_ITL=61gS`0^FNGFEh?7#_akNBqPJj~#E%>bQK@
      zYVpvqt*1&p6XAR5cN*LiZ#GLc*AK;-Egj#}p)pMMrmnR@8E{+1{}~44z7v*~80PDj
      zW>}@P$ByU7Ck%__|H!K}8MK<;78x)Mnz(`i18EGI&@s%AE~|iS-SNbW!-JLxUh|eK
      z81i-B=5CV*j<OS{rV3|xbb0#T!B7iX9%&5`?E1lhXfw>ly;%HMTH;7}(u#xEl}^QH
      zFop>o;|!HclbX1JNd~<gJ82tz1wZczUNta{f{q!6iND2|m_?Bxw<qM5aD^>Jdn4cn
      zG><~L(vQ69NfCJ5js6q%O_X%p`t2P0qfFe!9fnLOWHc+9iB{gJG<B32iqULZf_tIW
      z2>gx+<cFq^{`!e6I`J_vs$=?JGbC&$T=&!l+tI#vR9%ZEEG#e>PN-<({Tf^TVPK05
      zM;YUP4t7z|FqoU3CxV*G!%)yU4EF38b97~CdP6LiQ>R8+8XBG2Rq|)ZT0x3Fz^KlD
      zBJmmK8CfZ0Ne)m9P(zNS8R-T_kXLB9hU*E!eu7Y}p2IlDXctr8FnVEVUCe!iwtYtN
      zLzqGVcN6?PRRYw>+aT{NTI+ViH5TI~TuQ5;O4;;4v5>I7jBH@0mv!XA=;GdK`t(;T
      g!_g4l5*4QsT0JezBs3{3MRFPUqed0{7#=|T2~6`EZ2$lO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98ad067b4e73435a8a5978876f65bc47df7df970
      GIT binary patch
      literal 1170
      zcwUuL&rcIk5dL1fvUXjdp!^VM0Yz;AyPzD57!yQDFsLMGO}M>oAMmi<ZFXPz;lZo=
      zmw4eqf|z*l=)phAIB$0&EkuLaWHK{5GvCZN^M3yN_8q`1=1im*9_;X4zVC#4(%W(x
      zHNNRocqm=xiIz`A_*VIiHSUSmD-+N8zO2i4V!>6?_e>ZJL#^2hl~4uTRq=m@4z(@A
      zi5Z5e)eD2nQ`#fxN%feaRQQj)Vwu5M^s6ERhATEMp~FHNoi<E#F{BGRpnFw%;zhGw
      z5y2~7sR@SORo~^cG7qG-6Q`jYXLxvV_%qzl6x}@1)<m%B2X#?p7>&nq_?~jauJDu-
      z2QO)z`p=*rgC+(TiWkPUaUDYpW;J%wLfU$M))G8#VFY;-IflW%#n>3d7(;eTsC7{j
      zt`gPdfY*tVe4*H0dBsyA@OUlyPqlAg!o<xp7ttPN;}&i+SfNl6UClaCUDzm=O%xc$
      zB62E%d!e%y_ze-LgR)Tm(!MJi@j)?aWaM8YGGt`9<moL|qn&T)#!5CEOfz)KFj-T)
      zW^3JV2Ci6^+88)bZb>6C*ejkVg2fsSLqS*3)xK(s)4iqXL9uLBA026F7<6=($)6!>
      z4k`KoYjWxfiLbDa$V#D`WCz6nJIIo>Bi%v|dUZ8i#kHiuc2Z$%@)*`J`c5$X1AV84
      zaf0#BFy0(dd?$vH$DO2pFLeTh<lQ6h0d4nvgw-F{OR%(7#3W_YQ^j<G`ZBVCTq|nN
      qsd0k4hv~yVqjW_id?2Wg)WWBhk#Y%43Nw+M#l2`yUA`apVf+S`b|G#6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b44728a6c4e3d2073c78afb2fe0852f3fa61ca09
      GIT binary patch
      literal 1167
      zcwUuLOHUI~6#i~IGPVwFL3zj<MQs5YP!>jv31UfVP)X35u)CdJ;A%V5%v>J&FWkB?
      zZj2kEl3-0-xOCx<GM+m#ffl2|OmcG0nRCAHyzb9m-@XHw!@P+E!>#9hhws_Ju5>r;
      zMvZUS6&^^(zNh7V5xh`dW0kw&X=&o2bY)$>5{r(Ko@>Hj7--F2tOUyEj*9*>bf_&E
      zOw2M&t(=-<fzs{}kGjh+lmCyrLYcu>@~R>QhI1Cqpd*bWIxU#UFeLLjAiE-6@o2kV
      z5&jcisR@Se70=<dGWVsnW2d1DXSjWO`V+IEF0wq-R)xRe`E^lc7>(Mo`L43Xj&PM7
      z1sAnW^{3E_eiMBRg;VodxQGD;vl=;RA#F83XbE0OV+bQAh8g<*7Gq%)V+^@Xq1HrA
      zI7(EPeO{-LjN}XL$R$?^-{rONKVe_Ogo(>1E}}ik!WCSlVgsQ{jy@10zg{St$TN(E
      zlc@;q2KK7&HH5ETmWA?)dyZ&C*Tkrbp?^(~Ati&Nt5;YJ7rw5mnz3MGnxRt$npAGc
      zXvgU_Z`*goveZW3pOc-@Obk}Zb%noF<3S+kBr@%L#yA~Yl3o+b<@CjomV`kUcb5Dq
      zvgVPX4@gf=eIfA`)&W@wWJz{V4DcE`l2)jv(S>e}hV!@(BW%S8W0QwSAEKv;!5`>3
      zHjF05Kfri)K=GXz#0aj%_}x?q@P@o^$@`90`#$9AjqqYFtrajy+4N2^9kV_TZD6>S
      rwd>eu;`)Aa|EQHrIE0Tx^@&RO+|tr;Oq0NDDCck^Y*fSd;wFsW-Ay4X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..da6c8026210d758e89eeee5f58be547e5ef436a7
      GIT binary patch
      literal 1351
      zcwUuM-A)rx5dKcPw6-iz&;lY*LDaSs77)>hAwh&#Q!5eWLT@~6PjPkGlHCP-0H4Au
      zy^$MlND!kJ-1v*4iAJw|023cUowMD@U#ytT&Y3yqo0)Is%<j9N&({F-<5UnnhSRtC
      z0>7)-i@G_Z%^AF?<+!cqwR2LQ7xo>eG&jjjaV_1I<qP@@cf@Gk(Mx6!3Pa0Q@6nv?
      zSUm5P&lv*FE#2<wW9ZK8Ims}&oz+d<8DZ#+|A${<nn4*W6+{RO)henG2*ZyW6+zT8
      z_~Q~#m(fj;ouADK>nhI~f}tT(%5!6yTe`HpO+^xCIJ5WkJ9<M^)Nxmv6jrfh&58m;
      ztXz)97adJ32-DHZ;Bl!F{}39{97GdCV$XS197GF4uu$Hl3)#l`;ui357_DdzqK%>X
      zZx|IZ9A;2wgfnUw6BeHpwj`dou{~_sbcAK{GQthqsp1H_7$W34B@B^wM8Q2}XpblU
      z<$X-Wam2~n-sK&OS8|q@$_Uk3skJmxMX!{$iiHr+_R_Xi#xb4VG($+Y$4xmj1$V@*
      zGlZu~^HyF==yH&ncHda9j7u#}o2IbF3~t+!SMB!sK?e=7pT1HSiO5MN%@2hpc^~bE
      z$Qp!?9w40TenR3Y)Mc`Ks3RF54DbvQlB%nRQI7^04f}Dxi}0NyR?*6nD+sS3x{5=W
      zQfv32ET{Yf**}{duTi^cWc@?R66#Y?WuWH~0!yg5r?9A!T6_5Ghg=>YKnM>nQL8w*
      zNo>TGFHnt_MD7)ldV?t5q7&=r!F%*!11InS!}v(p4P3w{T*hZy!57@bSGS<SGHI_M
      zsU?t<Up%JKjTB{yB16%7sk}b=$!R1NI`7ATS9pq6*%Y7hct^{=ZE2a$%itqMQV!yz
      M+eqo#h#@Gy0rDnPKmY&$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b05290de91918aeae892a58468429eebc1e11103
      GIT binary patch
      literal 1238
      zcwUuLOHUI~6#i~IFm@Pi1qDRpWyQAC4k+RSVuA=s4JZj(6Lz=L3y!uk&CKQD&v3~v
      zVB>}aF>&G2g@44YE_}p=a_&qMTa5%W$(eJ`J+JSc?|%6C_8ou;%;<<QOg`hAeA^1P
      z9CzKSSNWP%=7D2dca^*+g6Gn!FLPHsE~X#Wg*$6Y$8&XP41LX+v*keg+?LTfL%V$H
      z1nF^xvBhIIn5MKD$93c#hC=2)^0FlcZO*HR1Q<F@w4vQV94AfaIK>dpsDR|6<BA6x
      zwX*OZ@p4r#bS`=}ua>y)D7)d*)Zh$L$8X<sFN7e;Lv303Yo1>d6^6kGip962B{qdC
      zttfb2=`?!+-RRZP!;n38PZQ_R$DmgtCoQ98-uq3#(+2u6pyL8V@4sS93}T2OwJzj}
      zs0v$(%7V{pbR7ekY-{DBD~0d!YIshyN08QW@eek%Mwz&TQQEB&6m7)~+Q+I&%$Ud`
      zM<@azqZ2K&nk}iLyooC+C*cH3eA}sQ)RfmUF|HB}N@%!sTxA#v@3$<t8(7P}R~No~
      zQ4-Rd-?l|P;v*w0{YUMAp=~XK+<z3{aHM%xafMcEtaux~EfyTboSwheR8W-|%%bZG
      zf3C`dKoGZ#--N+1F*Z)mk)=|Kwxq?O5p7S9KS9<cV)Ow<ZtOLQH!%0eiXlm|onnBG
      zNRc!{-N0#ds%q%MnMQ?|6s<Z~xqTS>ID3HeOZoR0$sb^N2OatN0WR;Ni_Ebdn93~d
      zLVL1D=}F{h4HJ!aBQzB72_5)M_7`I9R}A1AE%!S`{XhY~!cm5zc8yV#c8y@r!$ca_
      qF-6rFZeX-AUY`DH^qBUl6&Oo20gE-N#c(r}w{Sazt8%+B4eby(<1k_X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDesktopPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a3809278105953aeccc7722ef7715f198f6e64e
      GIT binary patch
      literal 3093
      zcwUuN-*XdH6#h;c*fd>I8cG9gwJjD+6K#~=P|(swG|*qRw2Gp#Np8co$!^`<06OZU
      zygH6L^6r~H=m^CThtU@vd{RgM9mjLC+s$s;4ka_2v*+%)-}&x$&b{}K|9*K0;3a&Z
      zAVL^f(QatBa`sK#sN~kF+H$U_*?K8AA^-EjUUkg1In5A@1qD&U)0@IWF@#vDYTDwG
      z_>hpA3I_Agf@7JhVvG>ai#1D>G)I&P9X0KiUeiBvCw0_xBj6d@4ZXr~4NnbtM+k|s
      zn|fL^w2H6@{h@^U&{xi?c=3eZP~gSD5;$!4S!Uq8OlV7wED@rUW?971hHe#m(M9N-
      z(hV_FuN8%LSu0irAvtB1wCa*(>C*QGqt12RCS<2}Eby3A&l0>oDdeeinB=5cTQdz|
      zIAbH5A^nex5(lB1KqbO~?I2jZig2c-@b%gPt4$bvOun3U)5+!anlNnLG#XikR2;$p
      zVJ~CNSz=jOmMFVu4R~3}4fsyoupO;h&5LENUUlqtp8u?h1UlnLBcou1>26mQ6<It_
      z*u$U`T4}XnnRSCZCz%dVn>4GYHKt&c(6>pS#lpO>&AL?*F(l&L{6`gV2kj3AE*892
      zQE?2%xfYzQ0ZJHlwaHaAj+-s6h*C%uH?>^HNfoDXnwi>Rru)*Z(XzE7#R`kp`h{uv
      zS_L~;0r%ukxWgM-hQs1Ghi<9vc@--5NLG_7@_3cd#jNrzduAY9_LfZ}S@w8rc+(Y4
      z%_^TSIotrYY=GBQ6y%mjS)!ubj<8x{2<_fv+0lL5ci56dn^rN5F8MaA;;j4jhKdU^
      zLs#8sX&}xT7z;1zfd6F+(n~7dl#mDO#<sLOe1OG*ob$Gd%Pyg-Di++g_f*VFocKbc
      zu`cLx*QYjb>ruIAKD-KsA*{)&X4}G6z`OJKj!%Z+NqMNc?3i4@Q?SfO#m<4Iy|Z=$
      zD-j-0pg$R$cUU*!LIVn_PXssPo$o$ectC+kIJR@R*)?HoK*gI5hPZldd<XK4hF#dr
      zo&x!cA{O%6LtZ@Ob%Z?LXbsE98QV_&!dC_VC)qp7me}sf+{eBj`6Yt={2ylvI>DFf
      zY4otKx<N?c0NZvPM6U;Mgd^p**aOg&`{?_@$B-02`M~@b`tcN7zNs<b%|FA@5gDDy
      zu4Axu_FQ9jj~n4-mv0hB5`SigI9DHobI8Xz!B$2^s1-vGU_^Y3h=&oC$AgD)&Eqnd
      zxr@W=cy22D2=VOic;OB@<xn#BGhSTBiKgC3o)5ARBOCk3;d`qd$TsL@i}C*%j5V^I
      z^|KYYU8K6H%mbX`61;K`<1!0B<Lj7cCP~P?qL0x*pP+|64HPEjC5X!NY*S~f<F(e#
      z_>4Q__7<H%xQI(0K-p8FpI4r~!}PMhA$^Z|tz(Lx8Gh!PxV@}0=yNFa1v=?VR^cn8
      z=xg-RHvuL3eck(g-3vbDY=Z$mO<1>d-v+3Xzt(ww;z_TG+of(4s*Jnd@3=DG2SD0=
      zkOd!P+yhBu$g2QtA^%U<MR&1>Lz-v_AMNs%@-Md1`IY5=xP|;td3iiej7M9DL3qor
      z+mcteBxk<D&pZ6QE7x?miPXa>L4PuhzgU^Sq0&Em+x#1-RMM|h(yLSi?>FXOgT^+)
      b2t^((GikxL!uC4b6}GEvYitd+Yl!|2UVn|$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55cc400c8c15b931f765cb5022dd2bad6d0c58b8
      GIT binary patch
      literal 856
      zcwUuKO-~d-5PdZ}Fzz_A>#`z#BDx~G5Qg<+vc`j}CM3HOm2e<ldWRO8G}B~e7WJq2
      zAGnzKk$5nk{ZYp1W@0pWfJ67ZdR4Dpb@%-I_3b-=E*1iKgylVPDBi{STb1s_2U@&|
      zM<Q2A{MhbKR3?+cWbcP&Tk2LffKRAfMXUwauaEXPA7GNubnLiLI_{hO1Ca^V5hjaW
      zmA6*eXK;F>9_t>eR27d1@#0y8?M;H;XIKT{LWBV4LR3(TP(__kS+oVUflB4`@%~6=
      z8)Bp-p)oLt(3>JtHZDouj!sxPgMX{bqX&sQKX<ryJp12w)jP?w*8<EEB9~Amex|ex
      zaTV7CTqAT&?;ha>ZW26Q5avqjvS07tsJ+EyrfUy=VjP>fPY7R`ah6D1PMH0V+lp24
      z*lTGjv%VI2F8Q`<Pt!!3oQECCV%KbAl^>$QYXVfS+xOsq&*N1^$n1GW4>-0=*jf6F
      zsPh$5A6?Bw%ef4zX@~}+h_Pj-(RBPJ%#>YTvrC1)Go4R}mVV&!GOsVV@&Oaxk$?23
      v<CLwU7iiE+G-<<iy>+ZCyIM5I962=4$m9HN*WnIY&YxTstiH>;&##5whNR0%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a5483b66d14f3ff0891d859083809c054b57c4b
      GIT binary patch
      literal 2209
      zcwVJd-E$LF6#v~M&9><+l$L5^Qd%TPvrq!G_?1#=gJ3iiX-g{gW85YeyPfT(?rsX|
      z_yLOe362ji(+3`W>8qVFHTobkGNUv61wQ#8|A*tbyIT`zAFP?o-Fxo&_?>glx##5G
      z-#`BX;4t1$5MVevuPtepQuamNd@HqRXctnmnynX7WAb}Kw?x4yS?`=K6@`)b_n0eb
      z#i=<<XvM_2#iHhjNohVI-YyH<Q4nHim#`^ABhWLm^JJwU%+OKePLxekn>7SOlU6K>
      zBAMh|Y1z?@R8F^@G($6qvSv|SVqjSY#S#mpC8^u$QNAo((9D7`NNI)+&YW&14l^9j
      zHFh=fA0F0C-5FsJ{f&Y>e7WofMl#P3$`C*c7`iyNqdkHk9_849ZiZlgGA|{MaVTh(
      zRGgy)5lQXhX!Uq~9NgnQ&e4W#4BK<MDaOkSv%;G465f$36*MESS-L#?%#chQ!(@Z^
      z+~hq_9)nazhJdCMNtGkga>=sUiUFh)9Awz`U_Lkwfr=Qi^>>AP`D_G(II3WXVWhDb
      zIiAE*@^KXk!nPBK7|e#to7@6GI)Z1AR`4u?`roZ&)Wh_uw-Tx!mY3DMD<J11IIiHi
      z^&YL0ag1V&p~Y*iQG+@v+Fyr|DH#SS>LoLsoRK&uIG&dlVX7~w%X^*Tcmdg3cBzJ=
      zTMBt&#L2t_eu*Pj4}3&2$2rd6<r;I4A@e`H)y=7NHtYGD;Fzq39+J#+9C_J{ofilu
      zQ!*W4I(BA`%;i*ynB|3u^%2!fhf!~`MJ7vSs~}G5veCLX3FDxQf`MmEQ&<^8vu#1W
      z*ty9=qwd|<Vd$fN57KHv7y&sRXut>LaB%ll|IGa}jRl~+T@DyJ2Wjm<2U&L#b%W$#
      z+V`saE7+<2h)2`|6-3pZ3Sw$BR6&p0)l@;R8mwUVstdP=zPrdNaFGI7B)1khunEpV
      z6lL^c2?>%8k(7Yx_XOZl`zWx0OZ6k-2C^4P;)PsFC0-MSwIAJHaO^UjrR=`?19mUt
      zPuhBZhZ0-?m*h`4z%Wcyw8o6O%wt6Dtl~%&PoE$EHFg_aHHNfY!?Ef3!`$c^GSfbX
      zRdKRLzBq7q1>u3acL-@;d>MOuQEls$EB0onSjFiT9E~lL-tA5FVsgb@y|XK5^95^|
      zTBXE{;0mtNb+6)@yL+k5ql>=pQNrIx93Rjh`G=%=8Dpe9g^%$HKEXUbrNm#uM<n|U
      zpW_>Rfm^h`!<YCTU!jVxafjADT*n_I{R`i^CF*mFaNjRc9KT_jionRnD&a=lVzsT8
      vg9;iT3J9yA2Ofi`caw^B%SGj$mX8|1dG|YmS84AcYLFW1H5Y3TuOsjecvm%N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b36b60abfb6e216d40229fb8a0e4f928ca682af6
      GIT binary patch
      literal 4426
      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
      Xj@r)`AY>}+qhvCU@p~7KUV`*LbG3)`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39ad875dda97d37e659226b7566ef8f24f56d465
      GIT binary patch
      literal 5555
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicEditorPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicEditorPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6eb2235ca14fd82bf1243c4fca6febb8771fc6eb
      GIT binary patch
      literal 914
      zcwU84O>fgc5PcKp!!a(Up`<MzE$PWE0t>hxr2;_(C?P_TnpEO~v~jm(QEEq<Erfps
      z7b<~-IP;?rvyPRfjZ%D=kKK81W}f%Y-ygpKJj7-RIYRJJd=jH@_*unA;h--L!=4zb
      zD12e<%L8Q+-4?OzHcH47HZQC0$dTzb2yUdMFw%xkg4Q&mxtkmhl32#3zSWwcnp}1p
      zbwYkOIglO*Wgi}{5Q;l0R^}<e3AXkLi!Bw)w<pIvsXL<AmxM|yi9~;2Xl3*4Fds21
      zVRhad9vqap%zRKo!uIS`bL8L&myV=q>trCc`O?<%P>l%7!FaK-FPLD@Xy&QAs1m$0
      zG{I-+IDexI;n{ha3=0`Ht(^1pN-HJ=^%8CpR?cmB*3H8jZu?ll9m0BWDGy=6Om`*J
      z{yP|NwwIjfNWM~5@9K<F4=e*}{3jjQFOM<`C~{un>=AMt0q#%GyHmJdInKdnTTIWN
      zV}Y$duEA9-vM2i>GW=uq_O7sfifi8{V2?fUnwvGJ2ntw2B^}{9mNSC;8G%!|aj|!2
      r3hHD~))}iAbceld<KFv?wePrf5&u5LSI0FO-bU-#NSoeG>udi2B^%Wg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ca7e20f85f92381573fabacd91112d6172c7380
      GIT binary patch
      literal 893
      zcwUuKO>fgc5PjpAI0>drKOj)P`gKTJsiqtdQd&?6LaG#TX{iM2W#ev|t&AP5UFeVM
      z0i+@%4*URq6k^7)ppYJdERT2I%zOKG)<1rJ`wn0eD;^xe_KEtS&Vux#iI0O}r20Wm
      zr6vqsNPJ}?-5DfFs_mQI)txZZ!)zyt1m-u>)`Lq}zAVw_S~#KvfBFdJY+%yWM}+n6
      z#5=Z`wq;_IJtJ&1|AW^$Ah@06NLN9)?&BKDHI#6}hleRbsVNQ9T@&lqr|)~(?yFv;
      z3A5cKRMCO5M)Cr5#W>;l<lA30C^?GCVZzMlD1k}x3AJ1A2-GJ`{S7m4th1Lo4Xqhw
      zCW#62&DN+VQfy)`v+Si^#RBemxJzhFY|+PkJRmgGxYK=omdPl__94{vl2aQ>AJ3&R
      zuDT%{g1;Nb+IAw9rkW==cf~lc#1~WI-;nBcxgB1W81YcySmo>~9Dab>+WHp`U*Uh|
      z%)zu^dF7CKZ&Bx!&m2K#Fe{3f!+fFggul}3xaYsw<-B{4GjENm1yfcx8ROeP1Gfu}
      k$9WD^)-F)Hz@1P3DA`LMDut4Rhk0D&bBZ%jSimyeUlFF%$p8QV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73241f215728a55c7c8dad9a4677cab0a9fa0107
      GIT binary patch
      literal 2289
      zcwUuNTW=dx5dKc$*2(%L&ZSLyNeOL3Nu0~JK)EC(<kmt;ZeZ7tP%g*olVrojYj)QO
      zm3RVPkO~6P3XtH1i^2mSRVq$JB*asM_yN502YBZNF=uy^*l~hVSze!+Gc(`JH?!kE
      z{{7`w02kmzQN=K{Bv!=Ry1Q!T7WBL&=JkwlO+z11&nu=SM;C3|mCm*Cj^TXXu~%eL
      zTGH@LJ2&h<qlhq^D2+0laXm*EUU1KF*jqH+j`IxN69)zxAh%0q&h!Qu`a18!uPe<E
      z8MU*r77Q_tLpWT6I)(<ZD|-#qh;u~Iz;HA`&@Dmnlb%B`exUe-nUhn6<&1PvB4bI0
      zrU}~+R$4fwl0#)g7057h@HF?~lB$ji|1=|=dD~f*S%&s7IkD>Laz*AmJutqk&Xi^?
      zj^RWU#~Hc~jL&frZ46poI22??c#EpE3J#)pfSB8@j^aUv*4^5Xf@x)?qu~_JaGXU4
      zLv%%01vx#>aITc#>C6%pJ<wH&r=cBjjp})rqZ3`!zy;~4#HYkE@qDCnAD?cH9`w@4
      zP?KejIP2Z3p%tnyWj}<@ab6+Tcy@593W+OjALV!q7b%x{O2h~lq=_$U_SF)0Dcloy
      zDvBo=j_qf|(GS&ZDlZrTnN_z$_Ew3ett*Wm>}ifcJj2i!vXQ*udU82!%2kF$=&*%S
      zlB8a4OQD9LM=?^?(x4d{#&9Ky%haiZ1><-Y&ru-5k;0SeE(pYMW`F8SYr4wuJSG_G
      zOgH6-73sLayVTfOZre4dtfx4pF~iX8N^i8_sG%J*9m2Dn8+-VqmCuVDNu(HB9O)V&
      zSLs&W85pKH>X1@n_cF(<a)}uh)jVbj%cg06g@KpGS3a+Dyrw$Xyil2thB>^UHj7|5
      zyDPQ5_KZR{II^JfYlLA)*WZ={_qFya8D8L6RGh`#-9yIc+xCA;g}AXZOXVved~3;@
      z-sk#qI3ma(61Griu_Wz+W5@umwKCs6<xXDXxtw%HE#bP77HG@fTM?&el~>b$7Heow
      z`<zZyh!DRuq^~8ZpX4g~<%#Z}p(UF5I_mHER*m%3{JZza^IbG4EAmp$W*kv5aTF~<
      z9JWC=hv+xPCKGp|-9_srdNy!sb_4CRq2?Y=uj3&l6mhPIL=k=KxG=ef`oQ3kA|9XY
      z*~Im2@lsC_Lq&{E?HKe&!gFsC<6odHl#WM=nB2B{VGZwZ3)cd~m)4Nqz})P%{(6|n
      zI$rnV-$P~-vGBBo7@(Zok;*{Ycl7fWcsn%C5lz5Nl0GEzKEg$Oj3InNi{n$IaSIvT
      zMjoHx9ej=t@Fi)#qR-bT;v4*iZ}B_6!=G5gU-%w>;|KhMA6YeiVjAxFZ5dRJWwEd=
      x>SSVx8dJq;@g^+7P1DX<Mvg`yg8|rdics`asH-A$mFrt@{HD{O(tG71@*k9$Z%_aL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..094561bacdae768276863d72afa61f954233bec9
      GIT binary patch
      literal 2695
      zcwUuO-Bue_6#fo`1i~SO0FlyylpjsPPx=S61Zf4NP!mw0)S^{~$pC{P!I=py*FJ#P
      zK7qIGS}k?ewOW@Ky>RKBK7dc)1E|%#XNF-&QpJnp%sJ=V-~RT`?BvInPoDv}fO{d-
      z2#jwld&>Qkc~38FrgrnnMrvI#bu~53-*b9io7pNBP0hHq(C;0s>KYjb1bY0&8+4;O
      z;M5^Xpg~uQg&9TN(gfNwj8By;J)fFa%q>e<&ueMIEbE&E#VQ$u8Lx(!bPn~RO`Oj7
      z-7XM+dWu+r)|PJepBEU+oH!;no74-sH6<_-{~vaVRe``vF{d>^;FLrI!eP{+MWPW=
      zf!cUtHH0>S)+*72(TWzfdrhJaL9);21#Pjkv#uE{3=oKBimH-dRScc??qPrf6u5eF
      zna4}UnO3<HoHBvF_<v<JvC2|km*~McifOlG30!fl@(Q7r*0(j)N>`pFDvt!jhCt-F
      zPdd~&+6vc%RP&l*EF5+ZD~U@aIJ<TBl|a*`X4#iHC!*f6h!T~&OfxJof)oWr<^pe2
      z38;$v5H1Kbm-CTKBAL}p)zEh>{na8Iu4T(0OA;Y4Dlvvj0wJ<rRCYAyi8=Z9szefl
      z4M^jy5GDl@CoZ|f6s`$0`rbx?&SQzV=`$cLZ(}BeX@QPcVI*ep4rN<6R}5uOGfbx)
      zTgn4nW4$*d<}pC%oNiFwipD<2#5Xr3-sPKmmUb9uR^lwWs1|!lK1`tZB;LmdPFj5u
      z1kT12{~pAO#4XTU+2UF*@0*sk;|!r>nQ{53I>Hjwhgb{Y4mHNfEF?bSI<}Ep=Wtdx
      zsY3fsQ3C~giB>iNwZ2N9J%RX1wGj__S=ry!d>zNBRV8w`OI4?&^VN!W-{SKPiA_G2
      zOnP`h70}IjJ(ts}3;}<)P8W;xo)zqrd@hmaCXk1wj1HrK-4KeD^a?A9FF<7rQC&;g
      z621Ac_*yk`f$(y%WT+Yw(nzfA=n*y|&kKcuX3XRj)6{4RHXR#nI7huyOFwHh2=Gj$
      zUC7?mH#hTare_|wjga)+M7tY=uA#L(Irtcn<P$U}zeDStCuo0+*hAa2gT5m+=?_Ht
      zoCu!cH0_vz4AF@*v<mKDmo!Ug#y2J(AvQR4fbQEzRAJlSPqhAQ)ATq{mxiBu(PvXP
      zq8|f<rWQohr5>Y|@9LTQ0B@G_{zCEo>XTRR$)h>qa$F}QW2G(c07Kv7`~#0CXxsf}
      zbHp5+r%k%r1TNx|%QoS%1(QT|xt!;BA5YNZ33@!^o~p0hq>VDqmF&<9)D1l#g^@>?
      zpp)xgQ+e#&T=p9~v-G%-O>%lOLq~3VDP-Uea`7jn<S&x^lHC4H14m$3)X*zh>r4Bn
      zCu!7`6hsP(ZraDZAit!29j#p=JNN<}?EL^si^B(4o(P-{kiOelpNLMPfjC9~tD5O|
      zJ&K5Er9S~}I3r@V^UDsI=e)~xUPJqjahKKzx%~v!NMsvT^izCB{Vbq(g4W!ucOT1;
      zo0fGqZ`zR}yMaY7Dd|H@4EU<j?WySYs<H*$^)u)CiMoC$U~;wnEq2N(EiU>vqaJ6}
      Si_Em~7E0h=WiM&$A@C2NHDT%i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f62de1736c910fd8f0a1640a2262481102a7707f
      GIT binary patch
      literal 1079
      zcwUuLT~8B16g{^s)NWT>sx62pqE-5#UGU9dG^J{SsYp`g#i!|Z3S)*{v%7$Q%LHrU
      zgFnC@WxTVy382;B%j~^(&N=tYo!K8hzkLU=jz@W92+ux<Bk{=zkCnIQeAHs>3`MA1
      zXVa`Nm6pAI-w$Q*ZmZrCo-6f0YUxJG_qy?#M~<*~R-`)&qd>S(vQL<e_ElJ4BeeS$
      z?zO?RC(2XNQ$nZlAH3!+A=mRqvH(KS#tddHWO3O>9#;s}M9a~Fl?GA3f-$AkSDxHH
      zJQ&L0tr%)asPuhT=v@&glc&X;ISQeBaYNIG#>Xp(INFiH*bffmh_IY`6UUJwkE9nl
      z3HXJH*<}GWEaWjyXkNIzjq6zCL5#WRCPlujbM{}IA#7M!!mT`R5*Gf3v9XNX>_3!I
      zaw<78yM(#azw#YZV8=%7j*Yvh6Ux8gd5o3D`)Q2(HdfK#4(|EU5wZ<~sG((}Z4gCQ
      zv!mxqXn&7D>|yC&BP3V@|1fZ6;&=YfadixvU~hSz40>9Gq48OrdWTry7nbEeiOOa3
      z%s9#*$It8%*9)9I<~+mSVypcHR*SyE{v3l!yjo_9dYGY2lsUJV#8AwkVkB`D*HRgs
      z$~0Ohuuf2=32vN*D`_~vJrhmPJnd0qTcAFQ^cpqV=39G%RoaRB)e_CLpNSseA$QE6
      Q6Z0Lc#V&cQj9o|W7w&!&umAu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1634c3b5eb3e317fff6e880bf189f2813bf6c82b
      GIT binary patch
      literal 1031
      zcwUuLU2hUW6g`(hx2&rm_RHFqs;GP@tFP9WRMZATOp~^}>aYxD>at5_w^V<YN!7#$
      ze}F&AcxNHCMkV+%bLZ|o=bm$C_WO^o-vB&<YavD0Jr*PJ-i=OGaO4hs(Q`W@Ql9(F
      ztS^->8~rehq&{qx8hsHQ$%AlDXc@%Mm6l!{>JK|!tir%Tny_|}Y^M{&T6ppJJ7GTV
      ztElvlP;1THbDLpLRG{LggnIcuaFsS8-3Yrf3&JG_8O$%>G9j}YZXFJ7%pvE%LY}ZR
      zrgeQb=kCXvxf67*r2_f-WYCfNKy-XbD6~RP_-&z;IZu*l<BHInUEB0Ivg4dcqCKg5
      zp&rOCp*YbfPGeV&803zNUznKHX0eJj3)cyinPoV*fpwlukCWaw$rt#WjaL@{+cq|_
      zWuZt|{a1~Ho47?-@&0a*Fjua$4Nu9z9aCv*ITF6=iddTTJqKlzwzM1y6~qMM39nD{
      z&K&#UiT0$C!L9%FSvP2c(+mQs8@`Al$@jG}^%B?zi{-zB@_F-gI7%VS?`47WSw21H
      zbBcGTTKfdMT5!JL%EzSYDzCQrMgkdni-M_Qlv%G~(Qsl3%M+eAyc?ck^$hkIRz73n
      yJi2`z-Tg&fU>Tre*z^vI<YSWtNsHw%&7_5iDySypwFG+~4-#QKQhqCSq<;b!3JU-L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..058f9488e75810df06c519e12bd59a95c4cd8ece
      GIT binary patch
      literal 2984
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea8ebb0c309f5bdf917dbee90c6935971cdbc1af
      GIT binary patch
      literal 1186
      zcwUuL+fEcg5Iwal46LIpcSICW#JwORUJ${Uz^aHL#suB>-l2guvooZp0r@Nw#KZ?b
      zz`xLEZ(m@no}J)sjAni5uCA(cPIYzl$Di*%0GP*;gA8Hel{gTuz4%atJKkO(w!NB&
      zmG7<E^|1<MWjBgqsb8*7uSHLyx?J&%ib4lj!dNqQr4}14eA9>%y3DSMr*9C-8*NK0
      zGwi+!m3cszEBptpSS4gD(U$B1;f#w;bamq_!C8wYZP7V&px1?iJYlFo>;-~pH;rcY
      z1mC-%LiudJUX%KTs0EVHzY+N&s0yv@Idx|3y$Fl#SJ%=wzGAOPtmjg1N4hSz2oq^Z
      z;?Q{VK!(O^BtNn?7uSPPj5#<@D7LNY;sVCG8Qbji8%}<)ma3mN0hV*Pgh>Yzgwem{
      zxR}CaLf?)w*1LHW8(FU^c}OS~iY?Sls$Od@3r%Cj!BxUcdk7cTP$1-4*7otC($Y7P
      zK4Mp@>ZvHfB$p_;C}Wl|5KB|p*P2_{1nDcZB8pXunRDTRXEmqgfe6%=F#OUTg+}nE
      zi(5A6Xt^g;Xb8m7@qaxTGi^ru+Lu;?F!JZ~%vm(ST@OR4D}jh($y4Pvj|z92i{QUX
      z`MjNIwlc`_5O=e`hfhm<&hYM*%5RY?^}FwI?oE=_$7{~U=rcO$6Z&lyqwG3>LCc9D
      z45vIM<(VxVBX^9EbUVSt6I?k#@$`KC)SCaTGiEEJFL3B926-Q$Z<wO*DASKbceufw
      a>RRhI?yzzO3kk<vEGE@*TY1dyA^QuvmN*Om
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1e87303914e49783042b619d28bc25b5dea335cc
      GIT binary patch
      literal 1269
      zcwUuL?M~D{6g^WG3Z=5k@+sdU!tSC}@DrDq;0g(bpb5JCo-G5^l$J~f7GA*@@iz%#
      z;twCdhf?pfb;Ck5Ytl^b+`0FhbLZaq@$=hv0E<{LVK6Lz<R|>piRxak?;QDj&#Cdq
      zbDdXuUH5!ZIS9i@$PXJcTcW-m`ny7|y2=X!6B&k)tLdw?NJ;Lh<eZ^H9eB~qLx%ay
      zmRZV_w&DezddaX*_>a6|l_66JcSRQ%x^1+hqZ79nERsEy=(f;?tPK-6hJggz@i`%H
      zD@g<~M0V2)#Mbd)P007W<_m`WX6SOi%B83GsWYQXV<@*S@cQ*pp;;bV?}Xe7<)PSR
      zm`qjix^l#c2$YiquW6g~bzvAICT=qnTPC(KiZQy9J#xB<lls;q{LPhwvV{punV4i4
      z{#%TVJD6tZ-4{xGx6dLa4y&H1Gn5L&Cg>}yPIGKbG-Kl)W*Pbjs&XtPmHFC}!d0O>
      zW5}goju*zslu|&+M3G^(H4+>1xKB6jO2L(Aw18ov(2RV8XaWm19MJR*N)fp{xGAr#
      zP^{{}B^!@)pee->_X1_&303q5Z{zLSsVk0>C&6fT#{Sh~8rbddSh_;XU>LgD&jp>$
      zU~dG0kQJXtk)TP;UK=m!5DBD*&T={Z7RWM?q1o>we;4gu(B7cGU7G&_tCY9DqUSu0
      z>ZR4vXY{qRU&!ky%F=5e`ZXp7Fqq<eN^zD-7qBicbcykXb@vi;JD<_MbKY=0XjqHq
      zG3GFh=i`)hn$*GQhGp33r~jzYgE1qAaU+j8qYsNlf2?LOVNBI%>nWZQnt|tW1<O>O
      Mu7U2G@XN^j1~|@2)Bpeg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ddfb435899613ae92559e3b6ddda39d9823447ab
      GIT binary patch
      literal 1680
      zcwUuMT~8B16g@L6E|e{_fbyZJV1a%>7qBSMf=UGi3YZid<BM*~085tE>@G$Bihsao
      z60F7t<C}>;!5?G1)7H>ZOv*z$J7?}a_uM=8&aXe;z5|%X3l*FperObp_quap=J)k?
      zma(U24adys%kqEKv_$ftP;i9(axIV+mdLqgA)hiGSLB7QLSgVp0^KsmeLH(d1}d&G
      zjMvhNqR6|t^lG4BxaJ<1PGE{5l4@E?oZJ#--gK83qQNWpg)$6Eval=K!Qj=PqRoRA
      zbZKaZkD(<f4Z2chUThs7Wre+CWG%taohsxED`VKE+*d(G3TIesK73;ZDG{w`SjS{T
      z1r)msq55<#Dcy>MC=(C*F{omIA<&G6hMTy>(7rF+bm7>}Q3k!iQ0n6C#Z}y9@Ygb~
      zOEM3Ja96{y<nT$3GP&5zNcHWwhfx&)lHYVOG>l=Kp<|E0Tm@tptV@2q#v$%O2oV)w
      zhW`KAXqdnxi6?myO@E*wA7xB&!Vs>e`p>N<s$Op!mkpt7n8Gwen_Eb`HaT1@Rs|*7
      z`<PV`V;F0WUBd%BqzdM2VYot`Rm#pV5^SWeMl=g$mU0Q^H7tPI#%nq|wow$eQ|U&3
      zu--QG+C!JJs9_0@C=Vl-6OI$0loD5&mkXR3so;r*Wh7}#obxV_$CqfJVPb@jHP_NK
      zQWl{MJ@s86P3e&B$w6%BSMu5`NAIi;&fux^c|}`aV|Gz#PXoA?r%6m&hT{mDXMe+x
      zQq$AZK)+TnpHIFS^nP+E^k#Sn?V#Np?K!QUaO5+z@E3HRmTmkJlP5fYRz8ew+H2$^
      z(H`{D%5WVwsw}_BvX$1ikrMiTU}$rqggaZ4KcSq4&!C-Qq=evP3DFW}7L+P9pp-E8
      z5rcBez9LZrKmLS1xgAi>aYpdDwy2EDC(*{E@Nyk~K80>RjZr>>7>^;rXR*QOvBMYe
      zh9}DUV-<~6{qpN6Rw#ouyuvD;5wjO*JjWW<Y!q><V}okNkt#>s#8x?bx=-rQZ76>M
      D+fBff
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac37a3c03d58dbd10d504177ad4d646be5fcb43c
      GIT binary patch
      literal 758
      zcwUu~T`vPc6o%ikR;#tNN_~q+T%d{Nf)FC1ArXy8(EI6jFtXj1*(v^(3z4|+1N<m)
      zX4?djNZrhykM}uW+4qmvHvsFH%fcaS-imwi=qC><y7uovapgBeq5}WGzDFvQ)tfj@
      zq`o{}yu51)BliQN;wTH3F#Vm~ZzM*Gz;yD2jJZ+C;u@h+>$$}aW4kI+W{<GC^bc;i
      zPH?MnQ|3Sz^w5t?9(@?{ki{^e+^OY<f-9XH%>`4WP*agSZMPayUx-F138h*bh_EiS
      zvVJ${+EoZ!y$|%`R=ia~q}G|#SFvu%CSkril6Ww_yqA&jJK{rYr^69<p8ZQi$e+h;
      z9Z1`nF!6hgRZA1R<0z848j2*5NftAN<(@ZT`ui?e-~;#Z|3k&1y)s)4T)y%E$8+p$
      zv+wYCaHaB${0hCmdrCzGe)Bfv)X?vopvb<*5KA$Fk}Zi*jCIRwqzuQt;EWYJ^%NZM
      ZB)g!s${Zt(PNe!tOr`DkikQYM+)v6IzJmY&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b622d5c679a04941f819dff62b7dadd83e99ec3
      GIT binary patch
      literal 13666
      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
      SPGEWuQ+f5`^N4Q}{Qm>W?IlqF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFormattedTextFieldUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFormattedTextFieldUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdfdbbaf517f3334c46007de215df9954d060138
      GIT binary patch
      literal 669
      zcwUuIT}uK%6g{`ybltwqzFvZ!vY@t%pfGw!5DJN)59o1R$C_AoWt__XRXqs>{eXT{
      zbXOO#q@a1Y=g!PIXU?6E&)0VV+gM6tgs^od9z@$~J*x1=YX+k3RYgnr-cel3k!}cM
      zWbHz>O<BpHc6pqJO<4U)H9#h$4pgYjA;HS8T@mb3RFf_&WX3Uy6k)2OLV0@Ms7iey
      zs(~bAE0HgPE1^}qPY!K!t6GFY<-c)@1jpA>7#XM8%YQRCDMgKD6w1&P*M^<@m+az#
      zkRgyySp3a`Fmof#nU0!Lo2N4^>#9x2<$Km%Aeeq`G^>gZ=6TTJyae|=y4Suet9a_=
      zU&q>vEwRF>EX2#=j{lQuns+;l#5lU%f%C%62wbi%BT#^iU5s%z-Xk$iFlI1`sl=eb
      w%=pfE16_A8{oMCRb<g()^bTf_WwbGiT%zAd0$AC(pVHER)JmQvEOc3mU*=qzb^rhX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c66a8c79db870e2f4f3d3cf33d71886537c18af
      GIT binary patch
      literal 8236
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicHTML$HTMLRootView.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicHTML$HTMLRootView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2db9cf405561a9546e536cd68de9aea04151f61f
      GIT binary patch
      literal 4406
      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
      M&WMFy<F`ouAEokxpa1{>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicHTML.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicHTML.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5acae515c24823e34a40dda4c49753836fe4aada
      GIT binary patch
      literal 2774
      zcwUuOT~k|C6kQua64I1HTG}SimVO|RLSu`cp|zGkEtGx;G?mt>m*h}x8}3bSZh-pr
      z<dZZ0fX=8hj-wsN>a^;B%8b4^KKQ7kKgV&Mn*gB+bbPtzo_+V(d!4=3+2{W8@6W#g
      zIF9!Ns1tPDGUkoNL}9_SZYJ_MV<s_e6wFLwP(RO2UKk6&Cur7QiJU>7OVhVh#uaSK
      zJ9b_<?%nh1t{^hD?lIvy3^pLxp0cfiYglgD$Q4x(jRN1SJC_se$l96WoU&Y|Q4A17
      zSkS1y9b<YW@Sij-(|t)$-`$huvXq@wA=INKjO}P*fHBij7mIV#%9%8#b4nwyGe$0L
      zIHsPLjXrnQEC>#bJ!zLj+mvyX;VL~#n`%Lj>fW$yG-c1_ZHu4>syExS!PQlZZbAnc
      z2q4PzRp0bZ6FSpSxeg)hMN0tfg2S6T4`)r+cFvphZqwce1iL&Wrd`G{u8gd5LfDUk
      zx=@D%t=%=irgeZLVRYgt)`;8A3KC^U#wtY_sNT{l+JTXtbO7Cgz3Z{h6be*>X<NgN
      zV>>~_1-pxuTFg@|D%&w~X?QWC^4cMUF7#@6eUHH_Ny~%Rg+v%n<2Y5Jg^)6eS{1#O
      z-jlPAy`X6>7yof<5dDG!6%YoEtk#H!aUDw=o(<zUJWm1KRIVoNtdU`vDe8{yO=vB9
      z3~1I~3?m83r<JRR)QnNgx#PC&4(F7vl%Ty<kn-1oZ8(L~0Z`}dTO|tPWt`!mC@ECX
      z-@SRr&6SuE^gZbu9MKPrU#|&a5W||NvjTJL!%&^C2EtYOZlx?OtaE~$t6HqkO#q{U
      z&Z?!gXcb6?>f8)6+X@?y;7B!)s*|amZ<{2ta|`G7t&t_iJ3f^E+JUM(ob;$ui`2_l
      zjV<bA%Hi5rg`_v0EV^`6BdJvcooRkXuzzb2>kdG|S98`B6@BKtp15Zdwgo|_tQxkG
      zC$`%SGUMW~S<seJoi=G&*McBraxw&kn*q#hxRpvyVa&oLl#Fe;hH0_$w^c?;%^J>x
      zx>HnEMtSjWGak>L(6OnQ&+=@ID~lXy_WJ%$_h-iv<imIihJJIx*o{3QxR?*1NF~&c
      z6vhImgqD2KP324)E|;%VQe2}i*6Nh{iX#bv(1cxdGU}|Uuf3+VLLbv>Sl<!LQcfyo
      zP)givxU&2>NW}I0C8$Fb4e)ao@Mb~ILlyIF@bR73FP}ST>E|dM8{*4oe&o4C_zZD`
      ze8}I1kFb;TaLEa~(8{q<SEdv|3Jl&z+j}e6JGG41g%z}M+;?#W`=^dBqa*3-i~4%&
      zmvHz#`jZVS=$eZ3EaPa>AN5BYmT>H9)c<SQe&TU^-x8ilHuNsx1)3Y8{-1EN4#~g@
      z2B+fDKws}NhLXW(@FC&GaEN!|E8chtBjt^Z>Zg2+pnQU6`4lnv44v{hy5tL-kS~#x
      z`#2?E;j}zp%lew#=^Kp8x40q?aa|t4knfO_@A0<$;1%Kn){dLSd5i(xTccOqAd0wv
      zi_F@LIb6bJvJpcDuVS1P?_$9wFv$X*AOlyB=9<%<?J8}fYqsme{u-ueGtiD}ocobO
      z3tq<!^7l4lzJWKHt5J)z%-|4nYI0)n-?1kinO;Kn9-88jTi#29??L^8HCi=N$Zr*t
      z#u(r4Q91{!9PtJblYZ<w`XlUnXo*LHalYPJLg79_oC)97wGyE_<WB_TFSN?v{QvpK
      fOR&2XWUW;DaMuG+$BpQ<@8DfeX~G*ySjf<S#>d;V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..289de2fd2e61b47a4798c6af6d3f7849838ff425
      GIT binary patch
      literal 1221
      zcwUWEOH<QO6#lM#q^$wUOGQNyQCg@(d`lf>q$8NI=t2h<y5Kgww!xBglJNRZZghb&
      zF8l%h1ZP~hapT(`;P|DDP>}_Td(X*t&+|KH^6vMWw*aOwqv4Q1enqa!O~c=?otn{X
      z$Y(}H`nF}vg|}(B&b+h&*V`JK)({uShUP{?()dATMOlG{WQ6_=5;_SaZ`qC=%nHPE
      z`6YpP$*rmkVmPcrLrS2hY&+`y+G<64k7T8x1p3OZB^yi9v%~KQj0bhw7nm#`xXhwJ
      zS4{;Wc30W8deADt6wo8|v0V-70_mo-ouFN8A=ip;$c?}#xvNdrQBF|Y#TGo-tlO4f
      zG|l`{21jsA!%>0W{|s~t;kZDGsY-6c_1IM|-x-@&F^!WrrD0g0``;HGr!gXsm@D5d
      z-6N}e9mC9{I?iH@Dg2!j{kgq{?IO?X7)Oq#RZnh&bPH%X(+qnM5SGBeeqHma#+dsw
      z&zDUeQYp4rr7zc2RUq@wUGpq8Z-?U=+&hn{Fbugj9Y=YkhV*^KarWGCtcL4zmWwK=
      zyHyR>1jY|IVjVYdlf{$cMdhrSfm$uqmG!(m%7KXQ&TTB>BDe)S32uIzhbzdhG_}i=
      zf-*7j8kv_=4ngOgp#(nAnCnDMZyTW-J(QdcdZPdrq5!dM*NYwZWDEM(;Tqd<?K_C;
      zr+r=fF%Y@Fr(Ke=QrO1eOrr1#C$@2>kQ`o44aS!#vT4d~oGWN;Nb7)7)HUka^zd@B
      z14~7i7GXmP#@yv(l%xTlnfD8;`-%~KBYoeofFF2*pOE;~s(Q9vSyXkX<uTFfq=HEl
      rTFh41{1iJ2HG^85K2JHO5po>k&ne7#iP6JJv`GSqyMl0hS8@Fh2yFqr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e6833a9ad4cc39a8ea9c26b43f11d3eee59d65f
      GIT binary patch
      literal 1188
      zcwUWE%~I1)6#h=rCQt$`v{h00Q9)WLL_ts~;|z2}Iu>2%;FjAowqZ)rNdkqvFXGCL
      z8(rWG3m?F@@I};f+gNI4!Q$R??z!hXKi|2@k6-8C0X#%OLxhk!5Xa)g@LRT1Gnx(Y
      z-lz!QHjOR0mrU2$7G~gjr!&hMqJ*S$HyVPSUsnz+Gti)h*1tg{h@fuRjvYKBDB0W|
      zAzE~+RvZe3bZ8hLB+9m9y*fIqSl(MvX;_4@vTKUQp73mW4vo>EZu^9V@|DXh5Qb}3
      zAZ<IAU8@J}5=sO;w7#>eL7gzz6t)v|ip^)+@eR=mjG}wkbREkH3KzB)o@mx>(=U`t
      zxxF~9;f99mgwg*Tbd2LBVSrN=-G=LNSJ_-|Y_=5!aT}8wCI}<{-sqUZG$FQC-YmXk
      zR{Mc6^IaYHFvBVQZi-a4-?3BVeI0YivTM~7ElD>)%a%&A2LhRd^krT1RgGg_(mdas
      z@M0?Il&kc`u~lW=CdA*kN1kbI+j3-?{+TSvP|SbHaV)Rc5Wa8mNE6Q;v*G$Y&s{61
      zyHyR333FE*vyP`&XNH*PUCTMz^gOrK8D%=;yZ1E~@BsV@c*XeTM|trR<kKK)D=dj+
      zZ2lYKUs#Di=RM96q_8tTCqC;PCyXG$k~3p846qmmP?7_myKq&SNb7+rUFcXBnh&87
      ztsgnmgN$^MDWpT>Is0iWH}Yr5tjF?SaqA3slr{Aert%XRbw3m3t)nEh{ft^Y!|Vr@
      zGOG6R_s{%zjJ+?Kos_XC!C!I`!!(K%jUmr+l~O2Bx?RgoCtp~L)N+__*SCQM?j+LI
      u7O}*gO3h#`%2lp0_tQ*V60`izSz?QV<#y&3JZcl&;Q-9bD&%z5@Z=AR%JEtN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$CheckBoxIcon.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$CheckBoxIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4586a830462910ddffe1cd339bd19f76de7e9e43
      GIT binary patch
      literal 836
      zcwU{7%}yIJ6ot<vLk7~M;kWdU0#zlTDvT<jZi2cX675J)TL}aUR*o?l!{CW#90>2k
      zrmIR_@Blm%;(9V|QIrMh;`&~n>(6s+&+Xms8vq~i*2frO>r`Bbevn;i(+Rq<I0@P!
      z(=ym`V<;1|E2K@*t9Q*v$+MlL?=&ACVaky~ESUS=K2_5CC>QFV{oGnYd0QK8KNCu8
      z>jwm{nH;MMN_bL*j|oD(rH%U5J8!FWU$kRIm}w<a#0MhPZeEC<jdVu%)cPOC4MMG>
      ztSi4N-HB}OCL~k~^-v$%h%ng|+Sq~b4{Q0S0&!`BW^&$5j54<IPy3RJZlq<_2t#)+
      zl7zWY1h+bb*%2Uj`W$S7t_YRAq?byytKDhmhmW)AaP}J-qta$9vP@+@mI<qmybop{
      z-Uyb#cfc{ue}l)tZ^5%kt^&@)dHnq^RDN<XhANNcT>OC=kJZ5fJVl)|KRc!ic%y(z
      zQ?=_M^ymRv`issy20a;x&SI`W_i{I^4cqPI;MSm7fUcUyv%F7Oz;h;C^#U(>b636M
      U%479)zS|<+aIWO;mau|}dl<W^NdN!<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$CheckBoxMenuItemIcon.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$CheckBoxMenuItemIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd03ae40dd1aa011c46c2535f65723c90d3457c2
      GIT binary patch
      literal 1278
      zcwVJbOHUI~6#g!4XWBX-ud1jOR30r<Mtq=9f(cEKF;y3sniyj`onAWw!%Q<X2qZ3z
      zYqu^m!AID*(FG<hjBEdb|G}T2o;wu5+87cSbI-Zwp6}f6eCN*BAD=!0m_S}e8^g?!
      z{zzX}{WZ&}sdZa_s8)2}GSoS-YKH5~>qg*u8-oRt8_RR<`c3YvY5`vnXELG;ouYzj
      z>x92uS>i?@Luy2K>xx_kX~uG_V3r}0$(9(R1-HtRh~SU{8F7ZgMa$v0R#z(AyQ5cZ
      z&d^<S4c#v3o+b8;U^Fl-pJBH6Kg{zC?KK_<cY#|qGYDB}3`!$<*Qy34L!z!*PO!s2
      zmkF;_^|e4PxGQzn;ZBg>i(U8hx@j4HUemHA8Alk>`zhXN=8;4S#}xG8I78C%7r9O1
      z@oLEAUIHg^N=BNYW8bB=>nZ5R07I-|>&7zaT>SGmpTrpq$~eo=^%pY*Ll|a=`#cDf
      z8G16!_-sj3$SBBSlv1mnz9#0vAZIj9bjH98hTc|M&{2(QwvdEQ*6AaG*#?c!qV^g3
      zi~rO|fGm<`(OvZnK5vQPr<$ibE=thYG{@my!Pb4B`!c2&Mh^HqsFhX^1OuQ!&=;eh
      zB}yMXQQ9TQQ^_*2vC)r6z9***3awHYe2jKlm7N51;4oR561p1Ta}98$Gx4qo`g9*O
      z@*CQH5a_d(&>r+Qpx-G^CTos;L25eI7u&|s=eVEyfD_v|ol8f{si;&Aja=TwNG=@<
      z-O$8EBr+*&VJMfD$|)&~rKIZarc>A|B|VW?N{Vm({I;jcaCrX<y8k8d+N3A{3L|)p
      zDZIfoyu|~uHEf0a7j`%{_zQ0gxv(dbnjfc%!c%dcdKBISc~Pod!3A6-wPz^*62&CS
      Syc{x^#1*p1P`Im@M*J7K6&Mu&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$DummyIcon.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$DummyIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a35dd8af54437c670aca312ac4963c40ef3af069
      GIT binary patch
      literal 1212
      zcwU`TU31bv6g^9Tv}tP752~$JQCk~YY{Y8)Ks!@W+RQLIqYgeVAwoKkFi9xoKloF8
      z@damm@CW##9PfrmJCuj&Lw4`pz2}_!vHA7;$4>wSJd=@NC>-+>erg0g$88v$7XNJ2
      zc;HyZE3ulE=a#t@dVYWXb+_H_3x|v(gC<}`ixcQw?bx<L8R^*jmrTSmq+d9$6Yeue
      zdalZlEO~WXfrJ?qGNu^jDvoQv?Y3*S|B=^PHp4>2vv{k@eMg*QXEJO$0mE+PpVKWe
      z%r@*$m`AqLXogWLCW9J#KRNZV$uQmFjvEe>&g+qm!F!=m^4cBGwcW6I<~#Ixr|DQh
      z(KK^a1<SZ5<0`}ag#Z;RSY?<Zsgl?7e5y{*o#!TBQNaz|l(9ya7gbf<5)7h*vgg|k
      z-|M<{A$eQH9o!}EV8p$sk5dn`+fZ>2n-p62dG9?9i$T^+QzXy8EQX~?<<eDyI44w1
      zH>dPb4_Ti^6Yvw7kT$N(u&4jWxJ1efGYrZHuj^ZO*%9;4j3aggGY!#nUE43Uco5iu
      zj3*46mz1Q5k3^9rNr}D`{TV4F#M7kHG@T6Enec9Xhw_b#1XNnnk@G2LX;p^-xPm#_
      zsS}uw!S`dZq$yv=pfArsr4e-DGSGvG&_yi8&@Yrrn)YmdfXwq$etUrH13Il`lA59^
      z1FYv)Qsg+RW;rVS4WY`!cSw)+h@PDp>Ff`=VjW@W$VJ*&Y+;)igq5d+rO4VLD@mAD
      nYTW~*G*B}Oab_E|i+It@hm)I`h`!xueT2ufD^Vx*=wA5)pR@c4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$RadioButtonIcon.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory$RadioButtonIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67c3d0b5f2c3216c84d1aba625242aa1507ab207
      GIT binary patch
      literal 845
      zcwU{7&rcIU6vw}hE?uatK>4Al{E(1Pjk+N*A*O@_P0&pmO@P38x*gjg%S^L775JZw
      z2`8fmPMo~@{}|tF7cfl^#KX*c^L_J~{mz^H_2=gmfK9CV7$a<*h%e$iNY9k+1ie^%
      z4q75rQLyXgFfw{iMAjr1>-(au%x>RWqn+%-BTPFuhy|mcS|>8HK8m?|bEMl#C~hmQ
      z><*z&dvQeY8m28vDBwXEJ|+lLO{L|>{%K1lhoTirLbYik5g&;}xpgjjwyRRYyXJqI
      zt`jO9X<hn3s!rEthC)I)SC3WOb_tU`p|l-Xe^txA7Kk$&G|XwwXsK=ePJ5q-UROnF
      zJq+E|C?d>_BDmBc%#HxLa?XQo&;_A%VERcU_msQv{P2z5IGp{4TFayni!_y~k5$6P
      zJzK)P9%>3!!EN9%&cB7ngI|PKlbi({iR1Xo?<iezGKMnG#Z3H$3eV-i20X+RM}B<F
      z<nZepE=*Ux4xvB(K?}EN^*-qJNOTr+IeL(}VQtv%?+ko9DCVHc=CP2~36JoY370M6
      a2_NpVr<{4LKFdy9!ZOEF=57VgG4U5-6t4CF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicIconFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2c53736ef7dbaf3fb71969e173168354550e1d37
      GIT binary patch
      literal 1847
      zcwUv1ZBNrs6vzK}8<aI0%sE6sMPSGVN*VGXGEp{MG6R}`lJLrO<qE~EC2c3*SMf`z
      zyue7}TNC{Zeh%Il&+X>un!Tu9c2Do^`Tx#2_vz=KZ{GprP?Qj2m^e`1tH+9cq#Jw6
      zVO4#rR8(8nl!9o>nrW0&%`vSL2@!^ba8{}+xxTC%aLtj>&5&|ObyL~mmabOy4{D{#
      z$=P<h+uX8s(|BE8V_?r2;ziT29o2BQ)oPu0ZTyOFUVLP47-HH!*WMM(V-b~MVLf1G
      z>7qxs%+P14ySiDZJC12IP)mVPo9$Afb?0?McUBm}nd~-0q-gGP8DXSiNZ<-ZTh|T#
      zqF$?T>s6!f<hrR**(w!J{pMiA+1G7`Y|u<7a%zt|8{DXu9bR)wY!s8qv_srHCEO%<
      zKz2GOV+g7C2&<N59tkH2cNlU(QET;D?L-X77{;iWlQCMlOwckf^~+**6U~G?$=v;q
      zx@KjJi@N#<<J}ZdFige}LtMf=hPj|TFGI$ZKqm?9+a!WM6GJchB+N1_2BrHjG95_@
      zFyP7k-`X^0Vu2wal--FSV_pOpY_Fi*gW*vO(-@?^p;=sY__Nxfb5gR@8gJ}AdCRO@
      z8ZYT$Q}_GhPK*5LB$o|?Tg9qs+nhFiw6)0esn~YNQ=Jl}1@z4gMkuo|{ky2W4hcQ<
      z9;I6>1et!cu=FmAB_J!-gN`P(N$M$N8QHGMGhF@bO8Tkob_eHhjoMhl0Rw~<@*5az
      ziZkRbo}P0I?VRD(C!hYes}H%V+bva=k`zz$9K$>83?qKog-4d|6l|P=P54wS>``S}
      zs(e$G`hx5a#LqEB+WV)-QvZ_BD^g-3bX$)i!NxqK=}siYCFO|p;1mk={Un7*GepXH
      zNOPSknJ31gzmmL1^{}N%yK@6XzGBI*SoJ8D15Y$7wPYbGPqdG*LUxwE50l3eh-1z0
      Xls42n*;TSRvIVk3E;>m!ifjJ@AFQll
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa6b2d54b7c32c420a03e76c0857f0554b995944
      GIT binary patch
      literal 1046
      zcwU`TZEF)j5Pmkj_L}R}#AvIwsf`*nNwudU2v&-<v``5WXo(O%Z7v(T<#HGHwlDq^
      ze}SJ1wSph~0sbg)_U@2GP-wr*?aa<R&pb1GKYxAy0pKY-8##vc1AfF$y!cp#AH89~
      z`(BsF()ZpNyAx`mLLO`@J`j6S2cpG8QQZupSZw%OMxhOhVPO<wqZ@0*eVyJjOzC|Y
      zSD!FEZ(f{gjp|>?Q0jGt7q!a()Y}Z!X4DgTFwD4^#MCrq8731E4kl1=VWY?}m*RT?
      zC-hydh$N{lG-W8>9S*ue?eT6P7)s5^=Run*Y5Xi`8J!HTFVW=aKuK|dC#RNB{YVW&
      zk6}4$jUQ`I9EnhSY4VmiQ<Hhz#Da}m49_mk?qU&T8c5$n8Omb<-j3C*Ik=6Ajpe^~
      zKAz>`4(>8IGB&!>=}gq>9aCI&aUTyD^0Cl~YEoy_I`y`V8bc*f*%dsDy_SlGLg`O!
      zp`)!6Ukuad#QwDSk7*F`Zgi-8u`La8<v+?-4Ge?36NW-<20V@hZE$8}8>EDKr{9GY
      zi{|OjDMt|-(`57Hy(B+JU$?RH6;7k%e#4d1B<m_!C%OATl^v8!7F8L04c84O<}jb(
      zhzw_`aR%oMH_oy28Kumz&T;PxtoNssJWH!y#KVlB1dD8sqWcs*Kp9a&G@pWHMCMdS
      VgQ{~_Nt%0v$4PrMPr_RT`wb0i4{iVe
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0b296f1d51e975fe56ceeffa37eb68408c499f1a
      GIT binary patch
      literal 1088
      zcwU`TO=}ZD7=9*Avq{{T7;V*9P1UGLs@=8-f)%kXEkvpWS|ao|*-mt1vm0ioU!L^r
      zLA(h12Rs*Q1rPoJf0X#n?oy0kp}oBOem>9pG5hQHkDmZ$F=rvg@Z>e$=DSX~BmI}o
      zz~eoq%R}ipi$=D5EtJo_6~+5vU20FXxi4xhH}GX|Z^6|v@GYbnDu1IabVIGUtK&FB
      zM!%9_ZHD3g>dDFGss54lrGCutpne*FMu#E26l{td7|z%jMJ9^^L-rZL_T?Lq#|Vlx
      zER-0=VhYFOM6jk6@k9W{Rq2c8Tm7z3>%8j;hVp9Qa<9XcG<M=ln^74SPtoV_R%z@a
      zkF>T>y+HNFCPOu8j_+tkYztpIaq_a!sm&ZNp<>}O!`#XFZCt?w!)VWV8778Ccsf)w
      zpT{*!TB!bW_~9%Y*KvcPAj5bv8Lw!h-q<kpH5<1~JQK%_>yC{&8Vpt_wDHkC>l=-Z
      zg(-%~X!5S$e(1DSFc3=bb%YL<cU>`v-x)h<`#&3E$gc%k$`vcpbTWC&Hl_^>gWd9d
      zp_V)zhJx-|7`hS7N8`}H#7ZUesz^(b$3m85j;x1dr|4@pr@kTIEZg64c0bBGM=~G9
      z-cjXSluZ^@8F?NT3?{}fp5Ukir`bF}{s0#barHB*N5;)BC?`hx5VyY~{bHXgE41G_
      unh9GOX_D{B`+>Y4(ZHvObv#B+SdDfU_ozCB>8Mi&Gf}U!UV2@#V1EGOf*X|p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..996f4f7bcc29bbe714f5764177c1cc7b962683f2
      GIT binary patch
      literal 1350
      zcwU`UT~8B16g^W4OY8Dsv8afGfLe;OfG9!{EDa<WG#CgbyiJ!WuIcWQ-6>T63H||m
      zB|<frVB(`c%6MmYMT;K^yv)wMbMCqK+&i=1z8@U}7)3!tj3NJ;Z}Y0*?^w>Ju~p_J
      zqsV>BH0IR0=t$u?yu9FXTdZ2LES9+=2A=V%Wm|7W-jtT>Xoxd({Z5lF`qJa349^*w
      z<SWY`7-1M+I(xPp#ZOy~C1)5WGUp)}Tw{nA+zpWc!v!6UXlh0aL-S7^Ni?8MhlX~B
      zbeO^@b4suxJ<1ahv@KbVcwVuK!dvCVvS3Ipxh5~KanDkA<cuq+425&ld8)0XyNw6C
      zW#N@v&lVdDJyCUhM;c;VIMN8g^J-6ZCU6B^8m=;ooxK1Z*U-(-SW;ew?m7)m>tb?A
      z+(55}o>P;rN9nkUK86;{kEDe?YRC+(tM~yOx72weI<MHudq+nGgA7Su$jD7?&8&yw
      zhIHJ;J&Lh;b*>_%x?bt}LPK{>p$#1)7-i6G%ULuPHdTjJK9X`D4>XK3bo_-!$3sjI
      z1630;q%(g~gtblTm<qG;s&Z?XX6Oy(RTSLujb+c>5}tgsCZs!GHN{r=JlILI|1no;
      z#)@0<OtE08{`LN6hQo@6L0@zn;T6i<_XS<Y*7~bOW1%U~Pk^<ztJgrg7<n`_)0!Y_
      zitHGD_3Y3glG&905v}_H>LRVl;Osp`?jfa66s6V<TvD7!qch_967g(i50E^-<r=Q<
      z!Z<Pd-=Qxu;x*h3x7qMBT*KHNMt)&;(H|KNr?HO$Z2aYZP)HF1xv11Wk_3D}7Y^yJ
      u)i8-qSilip;4`6)QNq_iLT6ZJBth*SV}{sbm<?n<K|T;p!=gdYf&BnVVPs1H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8895501827eb35ca6459d90c29e46b4cfe88d9d
      GIT binary patch
      literal 817
      zcwU`ST}vB56g@Y_tl6$6jg4)sUj-j*3SC=T3ib<?281X=g71@cQm1TY%j_iaZ~0IP
      zedrJ9Ykl>vNbgJn`Xt1cyZ7EX=iGB=_V4xYKLB21JwSo*>AM(;^Ee+V{Vo2HieB6m
      zxk}<a7Z0?RMvJs*L|=B4P35uBa`P}7%H71OOa~|umTyb!c5`b)V#nu%l08%T<~HGN
      zYx+qanEz2}Wj_<%Z{0`W#R;LfpPkAw2oEC6qBMtj?ztU8%%Bn>K$TD*%g3o;@wPQQ
      z!;>p5rRC9}-<75#x~U}8T3I5}6JeCAC(WW;lknvp9&cSI?^_W*JC>%GnZ7(FtWTVY
      zk&We0Y8#KiUtR7!5*t{#3q%Op*}x>Sshru3JKVf-GKA<rYiagVk>@fGuu6C{{boG&
      zW;Z<N7ntEckE&Jo44f6X6JU;GnX4VH3;c~5FMlFz)S_QlxbUcl97BJ0$;^MKITW*8
      wT*M=%i8_`hI`2G(dpG2g2VZ&O()e&fblGD(;aI>^k6*?!KaQ^zD_8^l2a3AZMF0Q*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PaneButton.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PaneButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5b275c073b81d2709aef8ec62d66e8e92af8c74c
      GIT binary patch
      literal 887
      zcwU`ST~8B16g_vhbm_9v3J89ST1Z<7i^eznh>$d?R%0S*qHoi6fFaAQ*_nbriWeS`
      zL=%62KT5r`ZL}uD1ZI;vGxyFp=kA&L@$>6<01vSoz#}}}69?jRYz~#)i9e-cJMIgk
      zl6b?#j<zz_B5mhlUv4Rz%C|zxx(gcvYcn07M3^0?csVQ(%63<o`WoSJ_xuv;jDMoE
      zvd;*w8W$n>2lFDaD%0!D9-*|EeUudtrXozB9Ky$?2mz)E3yrfu0cwP*E5+i_#vN^>
      zH6f~)allzZ(CF}J_Clt;5@8+-gbE*eE%F`3R?H2F$IwM9)vnU=&0xPT^DWU&C1IwU
      zB_i#KT)F)yS#m}ao?pO)v72H?NpLG?{UV#8Ogl>kW~k^lnjZ+^yKImrvaMWd@joi7
      zj*<{{w3hj1DvXgPK%MaD{2jCG-=49^hWh+isaA8B#Ve090VX+Cc-P~#t6y(DI6>H2
      zIYrd^hU$Bt$0;s<!Q63yxyo_co#Y2ULB9}sz%|azbB)pb-2jT!P24IpZsX2KV})mO
      hEdJ3SuCmK`Qw2vftd2N5?%Bn=xW{u?VDDoI-fs*2;D`VK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccbf313610d576ed4ce838b7ff4b2bc65e12073c
      GIT binary patch
      literal 1598
      zcwU`UOH&g;5dNAVo5bZ65#P#7O+qAqC@P3R1bKvqiaFqE5=I<r*~Q%rJ}&+O?^+)8
      z=2;74l?Q)-KgzOaHx^PvEvT)Xo$l#x=KH#P_Q%g}-vJEZu7Ntj%oDLCo@c#h%3jZI
      zTH;Z*C_GilPU>;i_N8kJYuXhXaz*);To$(MS$3UG>H05nkA=N1XN0|GN!LI<p+)bO
      zwb-3qDn5}V-#`PQGw>Fru)XYVY+iZ3w53aE@E<F$r=KvC-#?=f#*Zpn`D29P<Uuw_
      z6$te?XHCXHXf$CU8b<`pCSqtIM3Oq7Ij?NFSl%c~cSRH}Nl4_KlCTQGRobpP>$McZ
      z+yQvhPA$u8+T683=niGp%<9yZw0)Ko$8nrAaDs65-?1i6;WX=8m;Ue7MW#h)OQ!NW
      zCB5&vEM+8$vxI2Lay+d!jt+Dg=-gHOFw#Ufdbl+5X<1mDk)z2!HVgY>B(<tpUNCVH
      zNy1@fuqdAugjL>idKC~u8W{t<gw~z4Nyo8RoQX^5;{vSQdoV>flHU_BqKn!U<L<v~
      zV307l{}P!P!WCw!^~=e!?>jat+g0ni(9MSp<GO)sOr^%Mi5uX`#y#m5l&8YhNv@^}
      zQQYMGs*+>t{A#kdOpNP8<JuXbqnKn88{)azP%nSS-8M0$<6`U&!{Y3{V`4@(aia`2
      zoGAIqvAG-(x#bf&{?|v$MK@pA5Q)9*z_ji=Ww#`!m6p))kKFZXFu|O)`OfDo;dxTG
      zMa`y1C*Q;fzlT6AE&4+8U#pJo7~(u0W^0J;I{wDfy<cFazoO|=5Yx(I1IK{UNbua$
      zb4DFO8-Mvgw1+!TJ4Z*@_o26fV+)zYnF`LmMTV{OpOLB{`xdR~ZJ68Wudm?hN4Qlh
      z5?E`Q#OPlUV<BR^YK4fwOkyHHq-r2?A)={jX@s6uFukK|49(1Y2#4qjnrIlO=o(UV
      z1H&|maT>z{-NHkffTA2+n!+oZ#%r3v8=Av=nh)~P5o)gHL(gV07i9V!=8+Gwx)7YW
      Oh@~KN#LobhLB9YLpQFeC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..183d434f0dba8beff3372f01eb6ef90ec1bea71c
      GIT binary patch
      literal 1054
      zcwU`T+iuf95Ivi?bz>Y70xi%B4G<tnp$3G6L=mE`TB%h)5v_vMw~f1jMUEY<H*NS7
      zzJTXSrAR#R0sIWS^1x-*u_}TDQu{KVnVmUj&d&PF&rhEL+=FK$!|?PC-{S)>-k0Gk
      zuNUx+*XFVGy%l3OLM>FtgLTEbVq5A!G<hg0FGQ>(C6;|HqtJ%MF#RXWay!<F`+9iJ
      zFs@(AxN?`_LF43POVs~ZhEhLacvw9RK&{1Ktwy^d2Zl2)#xOpCJcFIeaF9j8g^eP^
      z<dDG&IN@(;MKno&p&>)@yx(mLwawdsU??>rp9d|jq>0m{Wt1|koMOz;OC{9>o_I~6
      zI+5y%U55E|IKHnvu_r?94U5-|Ph;kA3DY(%Gu%Hpzl#~nGK_UhmSJ{8!sbZNl7lNK
      z+nE1r@1s>NuHqU)PR7spKz93GhHSOAV|pttZr~<^6AOKOXjOM=EgMyaa-y;=co=(4
      z74?MDZ(Bk~YXe{OhEIwekNA(<An>iIuY9pC&0@;`QNCzk7~G986lyi#aV%(u`H_8)
      z78;*^8&)iu2Si?mGBzg2<|ukZafZHbec=O~dddBWvj<7lIkHZ2_KiBfqGYP5%h>a{
      zU@$R>sT4<~ICJ$wIET1+gt>Ppr9t)x*Wbf>c|gT^TJ{WXr358dWWQ7P2W5ZJCar{M
      cY6zAR8Lx&qb!V`U40juMlJV$932zbXHw%ar=>Px#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fce1d0f49c2f211831fb077656aa927df3c8d1f6
      GIT binary patch
      literal 817
      zcwU`S(MlUZ6g@X4*%-G?j3#QDHWqxS3SBELLTi;YG!O_S5b=Goj_t^1w#-hn_*XuZ
      zLLd48ew27;6RJ-_@^bgyJLjBx?#$la{rv~v9hx38gwGe^Qv3>%E2X~&KO=D-3`L^C
      z;ERi0ZKcs7>KHMSC(1^$FSOhmsB75@t%|jWETR5bqBTsc5uu%&6Y}<lO1Ab0?|ZXP
      z`o#Q0rIkG*9K4xFVEdGiZO3PF5riclIphm?#yz(~5eq2!@K7dHC-OlgSbSg&&q&Fo
      zp3?H$cr=veL<}QIsPy7cM5n?iS5KQ+w<h6u4v&wnllLu&H0w)q9-EOoBQ&SZ#FY)?
      zrPMZ<fWNvt^+;@>@f3(q9K>T2%8qhoH=l6x*2xh3uGZ4DBatLB@$izcKl^5G?El^H
      znqOdn|2!&}-7|2O;f{v_$3?C_a-HF?zq9)r#hr@(2hVR()H27SJEIzMR7J(1nC0RM
      uR-GoQs7-Y~q#W)&kn;{q&6HT198QTYTf;iX3^r1H9WT;xe648U73dz<pVS@z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..70d2c57de6a47ba6940c9162e2aa1dd5a187fefb
      GIT binary patch
      literal 1381
      zcwU`UT~8BH5IxfmmM)9bf+&axirSXSBA}=>#!!PP0W|@6@WoupEi7(#>wW+}=@0Tn
      zgBpGC)x;lVoZD`oMI=HtnY|w~XXebD-Cw`I{{V0c_cg=_kG90N*fsqf%h@pNwy2tG
      z!nZ2soU&ynke(y#c~8{jiWS)Mxp3sz@>@TUwI%6<bHdY*AoR7OEJQbij$qUB$0i9g
      ziziQ0<oE}cV+9Whv)R)C<W>oZlDjTbAaof>qC-a<-3BzAA;h!Fp=Z%@<kPUWCcPE0
      zW=le5(X9x3Rd|-#M~4YTg)n!DI@<fiv@(`I?^Z&8#S`1o^P35{nwNx5%YRlEZ$dsu
      z)`jH+g#IRXQ|tuh6HnAPt%}doQW(HR4TFTKlb2**2$wiTRh<%s+E^{L#T0d1#;Ar7
      z!r;HX3|zrgg0Ufk#=cx}9hOBl*M_W4iz!^g4Gq@`x#J3dEdAGkTUQ}3$_BE?@eJ2x
      zRfKlXM9=(<-Gy=7)KDO#58oM>fJsO-y4nONv~;%Q*6OY!ouGI`x65Uv6xty49&yW{
      z)dS9kCwY8+(3r52+ie5WN^bhH8+sKvZ>edI95b8=m4boFjw8L2Eqq_H^19npgi)4s
      zoWEmAr<JaGmE;o*oorLQn?Z~pK+lhVX7d%sN8ZKI!?uHcK&wde+E8ogIE#!zLofOw
      zgaW_ST`ck8P~@wY$k=}5x&MgVIx?~!=c7oQStwS+`90`+xbOwTONF1%K4EOBkROl7
      zzagK*0h50A2L<S&5IwYwUfN+@?>4fGG?Ah#YBkA!Jr)sjoI;KfNDU^+JRQ}X<W|ib
      gB+yk8=^g*$-nW#Vj6h?!)3CF++wfHo1GoqJ0~_;05C8xG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc559188ffdcade47ff8509a19b04096fa62256a
      GIT binary patch
      literal 2770
      zcwU`VTW}L)6#h<|WSj6Kp)^JChKQPmOAsL-LBJG|)D+NS5xjMiY@4mgZcR26@B&)A
      zGvkbJKIo&DQAc!2nTk3NI$n5YeDF<umsg)0&)MCkX`68d+R5%Y-+%6xe=q<0^>+a7
      z!C4J$gv_XZOh2Bijhog;a;&TmC-ZvEEF?4X%vz37we<4ds$MY;nNHa_s9VOG29?uK
      z*mXxkfDjcs$+FH?4&+CT0;3^9w~OlIPSO+Y*DZa-s1ia>$*ir}NZ6da_5jkXzr(al
      zXD4B6{CW)Z3=#spcF_ofuvkGuM+EIyq7X)u&>k0oB{|bF_SY+Uqk2fsmkmN^&MxTX
      zLA`1U?}GtJg|O#3;+S7aPOMWe7Coldu8i51VL5~zFG;Vw15TAaq;rkZHUz!2EcPIw
      zF3=!QfzZ`Tk&`X^PAy00w7Esg<IR#j%q}9h6{|Gd#y%FFE8LFN1Z~7{2F#NjM|Zqu
      z*32HWVpuiPw$fr`jl!L{ix6hvtW`4{uHv$0aSu#~5l2EpPqV{@C55$EM+lCaMW@6W
      zX2aNkjT(}i(mX?ohn__PWn<V8se2VRySi0#q~wT~l)_d)LM6k4HsC&m?E<ws_L%TH
      z6z+FL^0wpHl`wYU0S&teo36e63K{fru{f1_M(2`u&zYgVeh=qjJ&1=i?B(XQI#<{y
      zHIH%`4_1v~qgpkJQhZVCQ+OCTt}z!NW7n-B*I0{Z`LAbCV&AWD00#++3T3-yWa^xg
      zMTpIf!-F}DM{!8Q0C%ayvBG2E@e7-^L9=GMo55>zRGd7na0EyB%yp72h>OlSE(A+2
      z!jpJf!&Clc(tM`y42B3wCWYC<UbESLR)XpiCk2I~WD>6E$GwOI9ab0-*BYauDVV7+
      zDv}YCfmzYALPbP71fG$#6~^!!&xj*Uo7tX5>N!1cl({f9^l5PX0iAm~Z{ue6i0828
      zE=X6a_2Bt3{f$_<U>`U{nV2!|HP@hQ^HQt4o5ntOY`L2r>z8S1h40Erz2aRf-dZMF
      zFL&!zCA_Tg3Qlq3$7Tj>)>woW=ZsvOuX35<GFUu7Rik1bGZtKAbMKVqYb!Ef*Q*6%
      zuPIet^*>9qK@4!lS&Jj?E$g+K!Btu^?<VDIh-<^YASfD@`<=geA?Cx7d=@dc4Q>1n
      zL=tPyLnSWYhA)|G!&1TIgx*Dv-a#kxigg5ChAw_{e(3hC?BZX$V6)2N2K2tGxXL^9
      z6@^-k8(m|B6<Em{gqv`)XRIy5;qseytewIw{rtFN|GG)sy?zqwi~QJBOa++V!sIsL
      z)5TOUF$pz^om1GeJ>=6OE+Q*JtQ!kXAsY(_HWVnPG&u+ir8;6kt(XdX8vRpv<UOqO
      zn8VX}f{=>Dv{)oK#2UT~^Bu8BEIb9>L-Ng9Mr*D70<BWB*0Zg(N(;2CpOEk=$;8cU
      zNK%PuE?sm>B)L{+`!LG&1%1d({0I^H7%S-$B<M4w=yM#PFL>9_A<um)(O0O`Bqr!Q
      z&e9Y<plN(c7couW;1Yd{EA&17pi8()Kj0twks|anb<r=>L%-5Cey8cO+v_t}EWMlQ
      zHB&24ml33`IEHbKDngrZ94B}tR?=$ua3R1Eb;?JFJD;KuPO@AGNAV|~XG}vLzsvWB
      z$G3zlc!8-fCU|0AWGaH`26eST5njS6e>k`MBOXfdES)|#Z$f`_qwe-38WS4wqbAvS
      z-_CB1Q>4^I#E(R~qn#HpG2hx>P1aPynrc{k4X^vwwz!%tR_5;}6U{3li$aXP;mW^>
      Nw*WU$;_Z7I^dB%flxzS1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameTitlePane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..24863c2573ee6fd5fb3122d77c9a54606c2f5fc1
      GIT binary patch
      literal 10171
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d397cc1a467e32e66e122b27bff70432c3040b4
      GIT binary patch
      literal 1622
      zcwUv2T~8B16o%i^mM&dasDKp^zbmvw*!sa0#zd=ynnq02Ug*`do#K#Xmvk4<TfO$$
      zYkz_XV&a8Az#nBiQyO5QbZs^}ojK>sGv~Z>HvRMW*KYuKv1A}dC~t@z@xk_YmAh_l
      zIih9Pg|8a+6FpYkK(<}sl-puczNutS8>`9>q$}G75`?s7*^Xe+T75${0s~3H-0>6S
      zj&uXNCxVa+-YY*_BrH@1$ZDB4K2)v>9ubPUfp+F=gha_}$`lCaEf^R!5yz;76w-uv
      zP6v!ul`CItZ`Nh|wWvFiFjn;%!l{Y2((A4<p_3=94w670LAk1oI_`Mf2-J=UWRs8&
      zSJ^|;XWGQ&r7($U15<?g0n)N?88d{TmR=HOLZ>|s1uvVpit7fh5vI?MvTy@83D&v{
      zRvh8`FNMq8OfKIc+hRAcOWx*|=jyCYWHD>tHtT%aYheyKg6YekrhIjveD1BjC*tYs
      z{|Q4F4{2L+JYNetamvaV!eq$&REndkIO$Ri&s8m@UE%Ai967>guWj*lv(<d%ZMPe;
      ztaM3Jy{=_Z*TyPVT<(vO)=_f9O`qLEtU5O_zeAvOT6Z^p_`^tWcbjZI$Eyd3@dKEJ
      z`5&+fKQZ#1S20}RG08E&JB;yYb>=3<F~Prti^y~dD_z29VGq_GF74w=d>^-tFlNWy
      z#0X>ul{pCSqVz0}0>ijR51~t)-F(o=Y`kL#Iz-SR;!ZT;V+3NMUulURrG4VkK1Y<c
      m7@gObh`j7*#McN!F&go$FCxbO8#?|T?gO1B;!l8^DDe-%qhb;O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..75ef5baea6d7835eb44d8d1d3981540298b845a6
      GIT binary patch
      literal 5434
      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
      Joytds`~UDmOw9lQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e3371a2ff707952e26807ca9adda20fe769939b
      GIT binary patch
      literal 1663
      zcwUuMSx*yD6#gz<hSm#|RYZ1COQ94LP}x)}NU;TEGx2TOxzHi)44E00_)q)~zL+2+
      zKKQ_+F>dkQe_}j$+LTpEJL#Q!&YbU??<{vd|M~a{z!26IR4`0zsk`ca%-++D&DeHM
      z-H4@CThGL%<(e=YVHs*})>89gEzuJ<^V_B&3};R?w4AUMco{;HA(m4KznI<<8ApMi
      zq0{xMdrnO35+GKBCUx5phOij?PFA;j1{tEsGDM6Ma6&h9XNqAkTo$r-oxvM7H4y+q
      z6^DY#AUvqy2q47Z3Cn<*q;80XoqSqYt7<wY80wN{M$N6OmM-n0(<{X@OqC<xLj5S0
      znoP;3Ynm_^x(i8NR=XK#x@j<y&~Zf^Lv@KfW$p@%dR1~P3tN99v;bPsuAq&fuZ%=E
      zI?&1B+mI$h>zN|Vp9vlhq8mL5ZZWj{JBs5r?l1&&JEiXH`JKGmjn@(z=IBL)o^1+e
      zNwr8iLsPi-B=@*!I4bqbqF41}KtYsRcJV1k41)!lgkcMZnpc0Crr>lr?s445FheE9
      zzS1=(>#9ivFp7r?9#GTHp*S94jAkMyHb@<FBPTc}rPF8Wn^{NFKIV8LX{CfYA-ytg
      znj<dbJdU|7?HP_)Y5UWr<Cu9_f;o-^<_Spenl^U~jkGJ_1pVYF__vEyX}GK=Bu8hc
      zy^tpf+bg8z&$?PpPs>Wy+@nbhu9!PkM$GDR;BQ<u2m_LqfhP=lS3IZMwjgbx^K*_a
      zI&dEP`@ljWdG6>7<b#*aU68!j$QnikT|h9>_W?X|gzEQXRiKtuKgEE(Lmln8+!LxE
      z4RmK{L{pJr#EmE4dEk)?Y$`k~0_E;HnrWrXuBJG?f}*8FaZGvn>Any-06)OZLv+1G
      zyky)>^&g^dftI1@0Y)@h#<fu|*;BNAD(z?5sIM6B@iclHeTR5{qNkmz2lfS3>?@kt
      zH#)iBY2bfglKn)A{c?3q6%>?oE);b(Q-Uv$B&IeDB1L`=qUgjT#;6yQ2w{nK)FZsS
      Zx+K5<TapSayYVYn1>7dnX98>R{sp`tdm#V-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb0d894420ad1868c704ed69ecbe1202b9dceb5c
      GIT binary patch
      literal 3894
      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
      H0{{O2SPhd@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd3545d37e648d59353a995423264ba244a154ba
      GIT binary patch
      literal 2244
      zcwUuNO-v(Y7=FI?gP9If=mKT82n)F27U)ut6_xHEbOpQOqOh=nzteVThaILcGyLB6
      z=E=nDZLc0oj0ZK?O*HZ5Mekm{8jVL26BFb6%@kS+9%wQ%&-Z@s`@Fy3*Ps6V?gs#4
      zFeL;SZm(-Q+FsJxHLOB%)6~|IS<NwW$!YP<SgvkcnmJ=@8~ReF|HOK_Wao8T0%z!}
      zCCPg7<W$yiZ7t^>sWmb@cgojNW<hsK+jdT8Xvi)a2lQnbhH$!MIj&~8%bK~Z2PxhL
      z1|?UrE!`GcLZUD<x<$k3A7!{UcaAhtWO&1{4EGkpX#8B3gUbv&UCQerFtn)%qgg=^
      zQ57xdU<k&ALd%?C>G!ucvbz01%bJu@>s%?Pnai4Oh;>ECMeqz$=Lz7f4p2JHhU4S;
      zO>Jvi_X1g^Kni-L{29y9U2=BSPdBOUy2*5DW3y!GmYW)^3Vp?tgkCbQlPc)J^CHtL
      z3{pHpKanlVF|?n>%Fwi_8CE3%hLJOUS7o!dwplcCPReIiFo<CZLkt&Asi;Wc8bgQ%
      z%yLZ471I+xGD@l##TbK3*{4fpiCnkF2Wx$kEEU2yUXpN~VfY;NS22N?$=RA%GIX8j
      z-MtgaDFv^B3OUKp`TtrfZr~<m;&p1<%2SUzYJ*+Sb94*}rl7lxDG7Hdo6}`fF)dOK
      z3mPr=s9*~&QH;APUc(F(!#OTSTfDv&gUcbjj(ZX^wdBXHRlEV2&P-7^3Po42zNzBA
      zm;!mtFioK+?B7!Hw$N+XHS%sTgheb#ctFE>(wmB9Jf!KLU6@*7h}6d-=vP#%;$1rM
      zf`0t2a6rDiiCgtXu0UCwF*vldN6$XR;AlH~o^bZWa8|2HTeKb68y7Dcg228&`-GH5
      z?>?F_#2Jm9H3TDqk3r2?bQ`5j&2e;UTiY2&6TNgz1nFs@_a#V>35V$J3P7QCQ_Wh9
      zM8s`EnA6jO2<==Tbe;AB;<g(a{uZr6&(Qw0r+<;&jiiI%&%^|%0uyTto%E%<7F`vF
      z1bxL`fPYzM`D=}3;MlSomn)WcNKg1yzemrCOuuL7`>KxP509h6*Q;;{)Q<tr?+du<
      zvjs-Ug7RbSiS8&bBc3Q@WKtSBMC&15EaR0)dAN*Qlc7W`R7N@x49YS25VK{>5f*S>
      z_OK_F^HqtD@>TtcU_$Z0L{r6LLiNBzIPnb@DlVd7pFi5<lSkDmZ&axbA)@$;NP9k5
      z#yg3K;s-@*xgw~I>{wh0rrx~UjdE91Atq5M)t>H9{l#CZ!~+QPAY!}$J-iVET*4Ta
      zag&EI&lPCA8SA_STf7Yiyd95u2R`N(@hQKAr#yzwc_$8e7k=d3_=R7_Z@dS;)Avu_
      zi@$jvW4xDfeuag3KWpOyUKc;{`*YMqLVgzodJpf59uxY2rZ(uI4+(J((ZQz~7l^J3
      z>T{S$_y`Ya;$!#+8nPtq!C%OcEQED@fjmhRY~eHLgqm=Gr&uGT;xV3}KqyT9ie6m|
      OvJkT^=4l*{fd2rktMg9)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a27d60ed9090223683d915026057482dd759f70
      GIT binary patch
      literal 3731
      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
      L0}B2OyaVw+`T<Gy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d67c05aaa42d49160031f8ee4883ee34787aec1c
      GIT binary patch
      literal 3035
      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
      F{{kl}Q=|X@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$ShowSystemMenuAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI$ShowSystemMenuAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fffccb6f93016d082da448a2f813e3e293bbe27f
      GIT binary patch
      literal 1138
      zcwUuLO>fgc5Pj>Im>4%nOIm0tw9ruUq2f|ST#68FMWsjq6{Y09Nw?I<S)=u)fuDs`
      zsKkLI2YwV{)-eJk3*m#uZ`Lz!-t3IO|M>D1z#}vrSPakJ@^k*)kEelr<G%~}sXyd#
      zF!J|}?Mf|_<l&*>WAVCM@1I4}{)bqL@e3g*dm|l0(t*ve@+ZsQFxHBX^z1uBQJ)2I
      zeVbvcm!sG&B|Zscpr0~qH*#e*2MqQ>bRtS%xaQ#siY^M6^WdP&P-vKdN-vP&<zze*
      z>X;8h!LZPaMm!vF6&OD~w2gR%{X7CP?}_@U@B|$RbsDL$IAK_uHRkiF_Qko7+MfkK
      zH<<b;VF@=K++b+usPADJD-0za=ujMSNo{ogU;pv1tX&tYxZ~h9!%qHe4{PSK%kf`#
      z!N5q(>c6^XQ2EB4CpddF&4EjsQaAf?mBH;t6EzZtftmku7Ry6Zk-_UqDbzv8<5<v+
      z)Uvp-PRs@R;aIh57LiZ^mMKK%CGtAtS@d>W?N4Mb;e8~}LWOLRVqkBfO4u_PF6Oad
      z*l-=Sl;IV<4Z~vV0`3JCzhN##pK<FqS=q?2ci`F`)a=Iz>C!AQB{gUrcS$Np;JuW7
      elVVH*#a8<g8`<Kl<hh^NO*}}1(x{2Q0qZ9lVl1lw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicInternalFrameUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50427df1be8723945200f607d4953d06b8e879b2
      GIT binary patch
      literal 12010
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d7f0934010c505cbf0d94951f3c24ec7f4b9984
      GIT binary patch
      literal 1068
      zcwUW@T~8B16o%iSg>Ba@Z4rtBib|1fOIhkiVuCTjh9+o16SeoV+X0qrcW`$L`lC$5
      zkD7R4yz;^yWjwPju___G*qJkD&b;S2XJ&u?`uYt(4fi#SF)SbQWB$epPh5ZBI`a6Q
      zW%JN=tjB6>a$9(>wu?0lNrt)M&`mpx0`5ecPUK3TVIn$k!{Ry#Hb+q0paTzG-;EwI
      znC3_)N-c(DUA9FU43`XyV?sv)83P(784{)n$TnSH>~=f02wrmA6AV*L>2R;b16QpF
      z&ZL56SQ#a8u|}|29+&xC1bZ^*h&IDwpW5OlktL3WA6flQY$=;ybrf(#!|b4K=f@ei
      ziaCb#zKCAPZr~8wv{~v4dz_e_*@wc3HZ&|yCBv{!Vmcl3xNcw(H>f2f5<43*U?`l)
      zsJwOAIg-BO(s2t#4NC*HzjqBRt4<n$c-<9Y)R0b>nlv6$Gb~(GFNJw3H}N<B$E0oM
      zoNfI>#Gv;}Z@B7a^24oPQ}G0}?fW9AdpryU0cE#*$CDw+?}+F?wl&lkmPWWq19x$c
      zTI2d*#69n+cxy`@wEK0C@T_?rd#QzWdT|N*XIL($o*h|Z^l3<uKTXyHS}TuUu6(B9
      z3yjk^CaZk$4)uq<LyjziY~{^kD)wK-^gzX@IZ1P&(!<Pm%<ruBaBa8x16s9*n|~Aw
      z!~pglDRzns`+z+Ah#B@NRxkGz2I|VXjTO>OVG<@vq>!OpWmKr11Xg3sD%N5m7L$Qa
      LS~Mo9>N~#ylP?E0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..442a8dc0bfdcb7e8c3592fc930b58ae358bf6cba
      GIT binary patch
      literal 9298
      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
      JB4*`^{{a<k)kFXQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ActionListenerProxy.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ActionListenerProxy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93d816ab3fab105e4e8d5f5527f8e34e012935ee
      GIT binary patch
      literal 1138
      zcwU`TYflqF6g^W4m9kP^D)N@1wgp*HL=ub%f+kH0lAulaINcp^NV{uxm)FlS5s8}k
      z+4%T?ub*Q)vn5&sLSmb}d+(id&wb5)`1$4?fGNzTkPw*Jl-qLG4tKP-VLz|Rb-N-%
      z?br{DEa@<MS{$2qBJF#|P@W1_0)KZeg`_}VW9)n-i~{LIb+AB7B!dkV2@IDE%$7Tm
      zt+tgH*?-f`33OGo=aOT=uhpdIF3XytvmREJ<X(*e9uwJePkTDLFEE`ugY|fHzATVj
      z@LiQg6V6*`MY}*#E?;hiK!=59v>2_+LJH>uG9~S)<*iyp1y5w98du~yvRambHujM-
      z89mdXz-;ON=E$BBRn0n_n#-IrMy#k{-4AMtp5cG=`OxTWDTRTfJ)8_lqaQ;ShA|@0
      z%5|*zTY<x}dvf`P2|ccCDkqvV;86=%j0rRoTwII?R5bo;7Ooq=MgNlT>UFJx&>ZB=
      zBntxh+;PI<@hued<u*)UGKCuggQxD$!e#Uc2$nl=+7wuns{*~P+}IXK*SmbA&4M}_
      zHZW;e2rqi1U#QA3RACA;0;6YdPoVpR{b7VxritHEf)8&H%#Zgc_Hg7#Q?}7sqit}R
      z!U3$p_&$}1eRRHvf!&l{NK(G1{K&9RXvb&t&@)mG!v$Q7$uqdbG$Ph|naHH!oQ~4$
      z@yy_}Z_&Rt{tAP9t`uIPlkcks$SqONOuWW;0)J8uv0~tmWM5$6D?0FvsSip29i#Zs
      jP)7E58Clr4$)vqZJ4G$Q|E-wuHm3PDeGA;dU8H{jWk?t~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..319ebbb5448c21153755ad598ebec1f8a450101e
      GIT binary patch
      literal 894
      zcwUWCO-~d-5Ph{f?6AWqBPxENd~PBxi6e<Om4h2ml8GJ^E}VL28)!1jkm*_AZ+TD?
      z4*URrl(DLrgp~tqI$d4WsrTwtb^rN$egR+|D?S>8_)wjwv)G=Rd_O+U)Lz_I)}-+V
      zv5B$O_Eu-JNQd^b$_JS)eRzaOKyjuR^0j}c)5=GS@XXz+(<;^{I<H~}6AGQ{lF+IS
      zjP1N8bduX^zUBOPCO6dv;l=7WfR{T2uU8Co8-zO{d`t#tVmd?{5uv#%3Db$m^_SsM
      zUzguiKhuPnq)1h^qe>%jed&o*!ul9>{~Hdgp4yZ6lj1r9!u+N5>qGe{E-MaL>f;bk
      zL||0vV@6dyon<bGKrChM1_DCcRZ9w65rS{UuuS!)kq)8}iLZo#5N_rC4!ulStF4bE
      z!t(9yF>JI!EV1Gy?+H*8$&C3cc^tPPy-acR1`S?7&|Uk9u=^W#e{j^mJ+>{*0d_IN
      zHgtY~`*^@7;UQ*ghWC65!$kKN9$kS0cRAp4+7ZlNCe;MuJ;fYD`6G@;l`~awBb6sl
      fQ&X)umAtRFb2icr)f5dpcXl2NuAHb^#4_j~*ABgr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a621d9e9ebf0c3694d8e43dd2c7ea4715007dd8b
      GIT binary patch
      literal 4157
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListDataHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListDataHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..076e91ecebfdba4bec317be681d9e7a3f367a8b0
      GIT binary patch
      literal 1130
      zcwU`SO>fgc5Pg%Fm>9Q7TWHERDS@Ub)PQ;`LV^Gyl~p8KDskM{3*E}KE87WhgEMdi
      zuD~xqN<rel58y{3W=$%Zf=E?aJG<kZd2i;;{`mRrJAkX0H<2S;+Ynvx%t@ZA@QJe(
      zh{sM_B+7GcY3r&aeb}n$?Y2n8JrVkWj7=DXvd(h?!CCj)8`4Wn6bRG1(PUSKsk4);
      zcNxl<P)OHRQoBN^xx>j9IsUo|ReFOkQ{PX*>>9ynM!qb9Fk-{RVGDVbY!p!@<m)=1
      z<f>3EcQ)HHUKQ;?62{%g6TzB@mG=8T4P7c>VIRDERpP=+UKDcAY0_M0outnl4|Xu9
      z&>ih@`9)0Ogo)#O<oq|SjgvS<sC2e`kxExQk2>i}%Ex6XeN9O%jd#YzS)AjB0?r~#
      z43x2?p%yJnqh{hfVeGF<8yB>8RxG<BP@0K>c~ytD!y`~ELd<zL{j8wUj{iVzMqT~K
      zT8TQbC+{jPd3jfJ^BSFCw?ck6%|IlHOtRSxD2*x)I?wA6s9e_b=J#!|UxdZ>2zv|2
      z@dsFqxoy~uuNeKzUJhey3mgNy#5h|!J6o8*QQis1Fxf{~Wd@Bf)#$-~)I-I1v5ks$
      zdN}<B)jxQn90|O_2wtOtHyQ5a@7zAFK3&8NBNOTeW_ZgC@0j8J5Qf<UGkjo%kIeAt
      UzYIAvvb;H50y4#k?=FLW0c~XebN~PV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListSelectionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$ListSelectionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53948408fdd3312889b7b267daf11949d866e02c
      GIT binary patch
      literal 1200
      zcwUWET~8B16g|_ftX)?r1w{}<u|hwD1w;{09%v-4X*3b#ecFz&WZ9D4E$~D96}}mv
      z7$1D}!5?Kjv(yN&34Pc*b7$^7=iW27{q_6%4*>I6HIWin+LZ_L$cYZUVB6XE<wvI`
      zBd_kPYg_fA_=B6*%ck;GJ@%TxD;YF=6`C*vvO3xEB~#zlc6o22Phk2yq&iSR>|8+5
      zjtW#L&=>D`QGQM!U%kAHRmMN}0xw=8MWL63;+B9>X*N^_0@rPrxN0Gdej6EN1=0l_
      z&|mce^`^B~Q{j7A^OZoZ+N?`|ONO5IJBNlYRbaUX-mZGFdiy~7Emhf}T&f{Zyx2n*
      zp<e1Ec46T*Moo-Rr(QB_+`$+d-d6F37e=ugG}KYjuB(ym+L+MyHt(ylbDhC`JTNgS
      zFnM`{Hu88#Nql+&gBRL(twUBV!cE&Kpm<hCMfv`EvlTQbVY$#H!F7wtsUr_#=N+4&
      zNWLOY88apx2@L#~V`CPMfElWN=>;rgxX=wkzp>y0PW7fXhs@K0%rndV>nxC_A@^kR
      zZbRKz1gy<wE3B&xPfttsoLaLwoN~JXXTIXgC{mF|=`ti#jqk+o3Pd)m=as+I6#Wb=
      z+H3R{>8H3_rSb{v(kX6yNn!?Q`xpa!Mvm4__7(;)#8u!XZgmho!5}^`TW(|c1<m+c
      z>6lRbj&W~nyp5?9W5oE0{?5^e(MIVX%P4t(uf#Ye{t3p=X5FWl!MB8Y@eIAgtao$#
      nx6wTnv4F=!u{b}A+@+bD!xKDZMJX&L49~Ef)J^$`x&rYBMK3XI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27d3a557c8731ffacc0ad5e4caa80c023e85e889
      GIT binary patch
      literal 2536
      zcwUuNOH&+G6#h<UCIdqUhR1*bi8^93Jj@s+QA2_zJVKKp!9YM`j5afup~=u4yL*80
      z2e|VGz{1KV#YRifWMW)oWtmdTM_HB9z1h2P=YsOwo@W?fVoi1TJ@=mT-S0c++&e#R
      zeS06kF<cKoA@ncm%lc}}SuxC1>_%FjkIm_hk%*m@@3`T(m$j}5E8_^wypeIobTgS2
      zb^ty?NJhreI>%j{TNDX5fc=E7ay+ptOgB~vmw3VyHetWJU^rbbv46ZefdTeEWtfIL
      zNH`LGl7Q|Rf^W!5idqm3s0g4Yh<#{KQHu~^UsO6Y#0^ti$SlnXds?4M3qn)eO6chs
      z-8Q71pY%zpgcDD&Z)K*Ky1FDMhtfvkx=0cZ<pjj^6}LP;BXY>RgLn$<0URV8+|^A*
      z2c9O>q=Y+Z8K%p`qunJ`Z*HI#hwy9w&k!QjiK}=H5tf=}i_rX-)N$!D5M;P66))g0
      zCoautat+Izwlp&-RtblrJA`a!)U8QzQ5D_jA=DYp)PgbZ4qGdxSCK10^x<d#FA^Fn
      zz*NM*-4bHSQzFgH#=B2&eZ5FcM!u}#74)-<Q*aT<JUd@hlZoxa2^FtOm^OwvV<r|X
      zy9nmFN}tzNoCKGx#VOlLGhJaX>uG{Ns^!5>s~E%^oDCLIxu2)zjEb`uVm;ewGf*U7
      zvVu&h@^PPmI*j040HfSAdwZ%FlhVUXIWF{MrKoWg=RHw+GFc%?R%JrP1zD8?hBIWD
      zu5G1dU1aE_innBFn=O{CWwAqaAEs1H%e;nDyAhaCF)Jyy2-C^f!kgEe8N)HWGv@bN
      zoY1ky*<i1PJVadL?VZI-MlSWF6%O2_EgVNA<>nu#(51K*TYQ)ijyq~4GLB}>a*VaY
      znmzwZ%vpEj3C+ciNPW_*%bBZ&TUs2p^;AllLC>7v#7JYx%Ge1pYDh_;vg37B^5s~~
      z<jZd;turycQ5q|53qFP1(ERv8p^&___@=I5yB0xy*Rj<Pg?~V>r}qxjp1Y{uWJ^IK
      zzxT5b=oXrItjaM*HKT>UTpG0I5a?^(!N=d`-YnWCdTuicKey4@m&Nmgoytx4HhJmD
      z8a~c1WYN2h#=ODSu?>7zTJqgQN8Tz<9_Qz^4SZTLpT(&)v=;3*JMUpw!3Nx&5VQ?k
      zWhU`8jPK6mWXWRarh>)h#f>6fXAZ5tEOPsXm$JBAO64`Qaf-fxpT0zxHqlOBp@UNw
      zp*x6C7N_Yh&e1m*<L`O8j|6>>kLUqDp&xLIe!^$;Gw#tZctF46A^nC&^gI5chuES&
      zsEPjcO4O4pL%u|E^fum+#ix2)!Mn^Pj4fQndtOUiD-;mJ{FN=B7P-GaTVfuRYxEcD
      z=#jTeYtFZ@3y*TU5ax=A$GvC{+ulommqAbwf{GA{>Ja}{fk;+`Q2bROL=ociTyI0G
      z(%b6@%f?#&9~}{qhf!&OUkM?sG@@N;LWk0fZlwkNN-M^cwo+B06=`aPs&d^5RqZcU
      ab-ud#$e!vIq&)ux7=U+6@V^BXLH_~I>O$23
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84fe813e4e09f03ae83fe759a4eb6e511dd82052
      GIT binary patch
      literal 1770
      zcwUWE%TgOh6g}M%%pk_Lc*J%dIDo;Hgk!}7{6HkO5nyBnVH*c0*`!*U290Z&QAQ&$
      zyDahn-g=i^s#4yh3OkilC6#Pk<$OXuz`x*KDz|%h36tQ3rf>H-x9`2@-qv6L{Q5h9
      zOSo@<GhBTr*2SZIW5e}V^L0<G<SU}#R`XNpYrBo;^U~0rFsREg+AP+Dzbfa1?|3pa
      zkYq?J@4QFH`NhgZS&a;|GYsg{iWGh$-|DL_l)elZ+M}A=82XrD$UZuQ0`VtZ-;F+F
      zIG=eNhwL&#vKTnB0}RJ37%)>v;Dm(^q!|(!ML1!*zAQJ_Dl)t;DxPHMwu7qhmPP2Q
      z{q|u}rOGhz7I6=kiqbz`Zvhz2#$_C;(#*Q_BPt<<(|FIoy9{UkpKIZLd_eWA%4i2I
      zi#3YUo5|XHEn12~O1)s>3`5%*iQ}cvk3j<iEuD;M7S3XbbeG>Wg-7MTli7Du-0VX3
      zE0y9o3+Itx=%nzAp0g~x<{P269Sr2?ru{l9-4;|T9k_st20mgKJX&W9dC=^nJ=#r+
      zNbJp3>o`fJj*hXPRp>+(qZU5F7{kd>t_ADzAm@!i`;V*QE?u^8Wk-Ut+|UxJAlEER
      zs31MUaSpnwf+sC}3L5HD&AKBZX^YLE87)O*mZfy0!@x==ZqWQRq(=g}fv?3fF-3E^
      z68MpcX+l@rN75-u&wJoHQO(3G4a4r)oOD-fM4Y4frZJ3yXtORApwl#Qo58Bm_MY?|
      z8LHA5^{@Y^`D8Ey&(Y~n0rsIyRU}_-Y?D$;K{Kq%Sy#QP^uBgpRL+z|$tPWko@g|r
      znz%zB69(u-C+OD(mQJgOP5)+`_8mykx07~bwCA*@awE@R<$lKTpERe7zU{;T&!U@b
      zOWEYrgI-!GAWp_NupcQxg4XVl=Q!2f_Z%NS!PjIDzrdhc{zUc(PAlsVWEU>vwqR{x
      z<QH7xpu_Q)HNMLlZ)IKOQ1+KwC?vmqhQbecs^eVOae8*JwitV?v74=!5o3|YiW=+P
      z!O~_7KG5LI0Wckd6B@jA0PK&!J`I*M*tHAZP~e`D%cK|hC@emPK7JX){0c_-H57RP
      z^L!Ft@aw4Yn~3-nzT-ta=F|9|&)_Ma#c%u;Uh+Bo%}aR2Z{szeX9;ezF20~UlS5Le
      nzug&S&BLbN4C5FUP^Jv#$y(GF#~q#1UEI^%r17PfwFLGr>Vwdz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicListUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b01beb12bf206ca04c8f3c4de3de0c9c4f22bb3
      GIT binary patch
      literal 15521
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5d65f475d7a855fa2f0206725425490aae2bc0de
      GIT binary patch
      literal 920
      zcwUWCO>fgc5Pj36F>wtEg_c4o6l!SNBHY}Nf{;j{QY8ZiAosPiZCzY%Wv}`ARd7Hc
      z4*URq3<rJyVs;%$sZ^B1TC;E7n|U+q@4vo&1JFgs!4zR_U%VD?gW^q+?FNUb*a;$0
      zByrF;-%zPn53|vhl&Rl!P$#qvJxB$UpGEsJ)(#qk<>N(OZa<PcqD*z+hvNOap-4+f
      zXz0D9@He?(IAO;gi|!{`q8||MbS74<4GHyu8p$RIXFWJL<D!O^hbG#DTE`GtVUo$G
      z<v}F#7a~g8-)yL2kq$+knEM#48`Ff1Nt^p!Ha!#PQfN7z`-Jnq%js2%IKIoCiv?V9
      zaG9|3zm9#Ck7QnWSj1JHWmoEcskO=~oUqjScgc~(gDTAqr*$>n!fDnB?sHY<vD``w
      zZ|>xrca4tVZD*Ox2dO9u$!lso&f-)RT<eL{durssC#+7mIuEz8%B{?U57fb-%4DYh
      z7$Pj5zQ!Ro`K4=ora|qtd2s%}r}#ACGCIT2J-!>nUElZwZ~ZgQeYBkO2D2Gf(+|vY
      z<Z*1!3%F?UIm{nbA<M0Q!KDvJ`i9}tPph4;@?))umT=9wyKec*xM6FP?E%)@w5%1}
      F`VD*o>U;nI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1e83643af3cfedb8445ea0bb2f2a77dad06e161
      GIT binary patch
      literal 913
      zcwUWCT~8B16g|_{u3c8UA|Q$%sH+q(F7jkjV<OciO;&tR`#zmc>B2HYcBcydDt#~-
      zAN&FSDC3=>VkJTQFq=E)o^$WHclO86Z{GntLc>FeVRe_k<A-taK2<yMLB<Dhj~A(k
      zx9m63dheO)x24RYO%D}@(9+|K6ZutdR|?~y%CJ0H<Zb7<9Pm+QiYVb9j=DS>NrtK!
      zrbV<t4U;K5Hc9j(RjGN(@SriZYPHKyY3aVKf#E^`59fW9Q4df<$WU%rLOn^9+#c=s
      zWd4TtGV(W@Xu-2C&r^FJgB5F<VSU=>(I%Om5xL|>j^{q*{LgZl$BUTUWz)wZu6el1
      zu=1~t9idg53#0R+086+|^Xy2|8cMOZr4MbEVXpD_qAg11%6&OtSUk%Uga2BOav|HP
      zoqzuHfDf&XA?PS2^H#=-LehTfFO<l1LA72=Gt_+#(SIhGC>h{BR;ZPI>6YF<&`K)v
      z+YrOj+578agPyod=NwoV+LxvuyF{l3pU@eK9@E_-{@VIy1Z!V#@ss0RvY5+|x)flR
      zqJUzHUdEim=do~7g*k5JE3SMz(N`_M6gus~ael0|(GA>m?ru5$GH$!t%=G|i?l{(6
      G-1`NsZRMZ<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$3.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c33c131193c3cc34b38deba0bebd573f034afbb3
      GIT binary patch
      literal 918
      zcwUWCU2hUW6g>mT%61j3w4(K+>S}3g+?u|aU`!MxA))%9@;)q=vh6a{?1x%^l|C4a
      z5B>mul=03KD>kX}Fq=DP&bjx@nf>we+jjsD&~#7`Sl^Rx<@+Fg7pdLgAeN(GAk!!e
      zo|<n@>-{Hc*ddDjZ3iWRnxO}=Wb(_w9)+2MvcT$WlQ-RGG?ICorG8I-IPA+fCxLP{
      zj#7V%2lnQi*kaM6NJZIWfqTulRqK6$Qd<wH0)cZL9GrDgMAbtDHGyK&5URaM(TjXC
      zpyah2#O!aer$ZU{WfGbF6f7Cj0-N&=_qW;fLYR=uXnOAx&i{ndItpSo%a)4<t~j_X
      zu=cNs-B7EJ3^Sb^dRW0#f%-0GJEZb%Mw9lK!hJ(wxcPV524#oEA&mqYrx_D)U+Fvv
      zsS}wHmQLRCzR?MIU8N{#$1+WcL#jSkVXRZ`wL{rh4;}dbxyDRO4|lP~qs()+_2fV+
      zQrT}q0xPG7*vA&XbCK5>h+54&H~-xQUKO~EE^zgb_Xcq{Hb2AL_=5AFEa!s3><Oz2
      zbu4n_ac$6xs9Ssq%g0@W<(9tU(#K<c+3*Vut6e@ipK48Y4cD!^8<xL{o3^*GGr*c#
      JmUSC<egXVX=du6*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$4.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b0ee923fbb65acb3609d3cc452629223f225fb4
      GIT binary patch
      literal 921
      zcwUWCU2oGc6g_TBL$g53*cXhC0fDs}kRj~>sR)S`Dpkth0qDD%x@)%7o)QN(eib|*
      zrakZj_)&;!uZ%Kj&<97?$LHL8e4HOYkG}(Wg1UnOLt~eJ;0HnWF_t^Qe!>Sqk7scd
      zY?*JU)ZPo(Zwrz5n+{40HA4>)PUJVeT@h&qWrmf>Cht2h#enCD&is&nI_&Z!7Yt=R
      zj5B|O28L5kY?A0%EMxtg;bDDhRin#LYN@`cfZ>t{2NzuwQT0$kjiFdKglZT|@j4&%
      zMEZ{R67n}2s)#3Dp2lWB21~{?!}_$t{Y^4G6QzP{F~0X1=YPU!o&+(OWz)qHt~<EK
      zu==lwok+<xkF-h;JuKq}!{Uz6t)Ynaw$#D4ka<Uokzp~+)&CCMpk%Vx7XyZ+^Sm**
      zZ&jW~q8*zY=FeXAvC%Pj9VtcHN_dtD%BlKFMv2O(*S63@)py|k=Oz;^Jv_iFjWRFZ
      zQlot(h19<dF)W{-V;39r)J0ksz-l$~;`D<TXjR}6Iz!b{+8e}OTmK4g?HewCv79Rg
      zvnQl3G%!n*N3}t(V$S08SUBy%EVp!o#m}euvf&pVS?$8f`B-bJo494&-M0J{+_Alx
      NodMF^wXA!%{|m~p=?VY<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$5.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8fee22cb7140d76707c3f413faca788386bc4a1a
      GIT binary patch
      literal 1557
      zcwUuM?NZY~6g}&<jjfS3e3c3cYLS+&`h`lXC{!526i|dZ{Bb627YW9MX;M%h!8h<N
      z)ENgyXM6zv_!R#24RpMl6va9+IFn>|&%Jxkxp(j8^N$ao09?Yff@2KXEn~-cmUDMa
      z`*CjDGB$D*!!@h98Tl<a&XZ}oHYbFYo=^~CNJ#gbWsvi7WlK~&1rdgUgF)8xyJEv=
      zSe~0M884of4XYs-BHpIyrY{m<>4=O4+H}*jO>c@}G;`!#*)l_@=+s0M3@246I35E>
      zTtyTK2A+`)@seqarN+~WsIM9oi}baZoT_1!jk+n<O)w-yGmIRSJUv08PgLu|@I*83
      z7UjQ-QwR!iu$Bb{Jq&F=Z0vfuqGLJr7?L<8#rIM@GP<s3%Q2irzk)Lise`d+oO(^v
      z=Zvc7)Ss&uz*#!4K#WW`Ff)t?iheT`^gqv};yX6O6{5s{UPT&%4B?0K`syr2ZH*um
      z4XMZ=%b*36Gh#<r`<#z5dh3?|T_2`V!3abCuR{u~Yx;_CokqPX(naU#w$rd{t%ewe
      zF(zv~&M=udgy;~HY^$&r^i9vd&YU4?(NXvrk-KTzvO2wogr$CRH;tOJs|UW#)pEm=
      ztFRM{kxH}Bu?K!abEcHh)!Luql7~U{V-+pKbp^F|eAcd7j!WE&!rOFe3T`nB9kJzA
      z+{PWEk{8u4uPtnEKVM4i-|b(<MY^G!-Y{4qAulTZmyXdJMU2oBG`m4-iNuCS-a#GS
      zL)#nQN0XRuq1`-=cABX)muLq%eY^|Z%_!fALB?MHh~&D4Z^5&N)Z%F9J^Gdc_`QZN
      z8om;o4@o5PLc>c9uOtxWZ*h*ER5(RDF61L0F}$9NjO}4GucVaMzeMHH2JjAOyc0>@
      zg)Hwzo+nY@J(%JtO!HGH@?Ojmw!r&vkDtbU8q55QpTtTaw3&pQ<@_>fn5SR%Ah9Gd
      zgUh%=h0BuVDq$gF?Z*Vo!dO5Y*T@<{nLMu3Ori0HuWyq4;Fp&9vD;CgZwNOr^%HC7
      Bkj?-A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$6.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc464c04884819609d9042e566660a951024e5fa
      GIT binary patch
      literal 996
      zcwUWD-EPw`7(HG}L(@RZShvA|4Ja)AfsC68sR#sRl`3T*0jtENo4PC`wW}lr%2UAw
      z8Ul$2;Gqzo(*kAFpcl66<MVyz_{91C<I6VycW}$Z0z>71zv1uP_-!Cxxx<k6-7b#<
      z-+iQKPpQ`rWv?YfSl%{~VJK?48*(B)?H&j}F_C51m~FDxek}TY6ee-m<L}2E9*zV<
      zHrWs2@)iktb1F8d=w2X$<UT{)nY*geVaPO9PvpRG#)gU077P?@<WOWV98D;AffP?h
      zgRY2P@NP){7Cq(ju*0K3@26l!n`WrZD_-6v(|JD<JQ34-A94OCoW>-G*(@6-RvFfh
      ziM4$t_u9`ytVWS9EL_AT6Kf2c|FWfvTHH@mG`4XWR~VKi#&!n7WZa7QKxhiV&flLz
      zqYVoy*wB$(Whgnv&vl4KPxKj9Pr4t2^*lA)3UrpGqha0Fbqsb}N)a_f9>;>RF6>A@
      zR5A7170JHpnW+5dqBAXR)KDiW{c4(OFjP{=<d-3awUfU^2V3-93>v4vibefu=qFjA
      zk%L8Oo>q5huMw+S`vkjsh_fG4&N+>xCsb`XSfrIrYmJ`AQi_+bJniy;R5UmL6)P`4
      t<H8}<Km2Z!)n!IKZLvI|O<U;IHC#_kmQ(%>+)O1{Dg~<9q&Wiz)t`^M{&@fZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$7.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..118d59b91d8fde555603d3526d7da983bfce2993
      GIT binary patch
      literal 916
      zcwUWCU2oGc6g^%;L$g53*v4RdY!FztAu_~6k&2L5p;Dy`Bw&4a6L-tV>?v`8@vGng
      zfq38t@S_mdUKwT5pbw6&kI%XH_&7g)e)|sKKAJA37*_ZATmC*Q-lcLUJjnPk9PlEI
      z!%g#zlzQ_-CS4)2pyk40Xc&5!aU#DM?1@;rs4^^#H`(qz6+>QTx(Fiv;jquMQZQ8Y
      zZdwEzG%%WQVw*&dQkm+<40oFot5*9APDdr828MG!T%7e#LET3U4Teh75b9AX#q)B1
      zAoACIkdeQcNX0zs^E@^C5$G7x4C|8)4_ah;I?e^xVs!5l&i{ndJ_=$y%eIFFTyb%k
      zVdY;Fd$E#T9&42!`dGwOa=#<=OP-`^v(#EiLtvO~{++c!$zLTALxzRZY%zGRRGG)3
      zo0<sbPTujJ(J}ZvDMjANcu@$7sQygGnJTE)me9K@aS{CI5@RiW+`$TsGLPL+`v*!2
      zsec<{SUf$#J~rr;E40plH5%rz>EE8BRf9+9G*u62ZxC;7{WJWvFF60naxNImo{-vk
      zfElWMsttM(vlgGj{Baj%xz1Ny`gp9b8otxA+WDjNk=9h#aNWAQVfjl~w!N910n*&G
      ItXsJK3jmzwV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$AudioAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$AudioAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e42900f2c8085619a21d0a871509967e8355206
      GIT binary patch
      literal 1804
      zcwUWET~pIQ6g^uCff6aAsDKJ8Vp~3<f~b6HMNqVWioo->T`<}vog@|bDLy(n!<!>B
      z^5u-q@Zy8Nz+dBdcay;aMf;FsckjLDo^x~e{`~#*JAfOQ(-30lf6d?WRl{8|t!1N-
      z<4Z=GyJp6CAm1t5ev`DalS1S=lf|rQCo`UDTN=U)t)+p<wCg!M<N0=msyAYdp(!PO
      zj2tJA+4O6X@rD^{yjP~%d7UAisxY+-8Zj-?8)F!YRUCCRd3=E(JZ@)29T-mN&`=ve
      z6{0%o&`6|X@dasV(ou~XhG@#P#7r@t7S2na&Iu{V&hXp<cTBkt4#QFq!>vk*l~$6Z
      zMY&o%6V8(D<VBXD-PdUF70(cFh2<H(^MqWJ2o0?ajeph6c@CwF;5;sBxWLd{N@RX&
      znp=EXI6B(V!BDp>JU@V;D^{jPsl&j-5nM*6hARh>`tCZeqKl!HK*w|3r81m~l_ID^
      z0*E1@Ax>fsnRIlchk_{ng>dbnlMzXm(h8oZ28kWz5`dewF=Z8sp6^Nt`fy!?LA49C
      z+eIsDxIACTiL9XtKDXw2BCk{9-(=7fVY9$+KDOV72V$gE;ST7yg+ZUA0xC(&Fd8dM
      zs66K3@Zoyg!H|Z#4CjvHpko*#)MR!+So<aUFR*M9x-C8BoMl(fTVybEvVkX7Gos+%
      z>ieW}U(IZZ;Q_;qa!~V@TPzf8#}ipaVbUzYW2jc$OEvyiKa)0#=f%Nk5&Uhs_-;_>
      z=CXCB;Eei>t;hdFhI+0VAVBJ>tb`1aIn|I-6y-mBjr$}DgFa<h!comETn*0|u2nb(
      zh*!xZKnG2pDjLiodT9Irjg4|Z1t)cgkiDK(PiZgxqKWQJ=!tDKBziV+azi<uqIZKb
      ze<YCi6!rn9X?I3}MA1wusFh3+BFM8i7XbgFJ*CA+;tNjhq2(P0<Z1_P(}^uy>e<4z
      znH}^Fg?o3<KUCckZmHhI?GV<XFRr7Op77!Z<!*z4n;2E!LEKZ{AtVEKeJa-{lJgl&
      z*dXf{lD>sbY@!R>6uC=L-zZ{_I{$}aKj!n=XFq~*Jd}ePaZF&6klP635gt?a4mzE}
      c6NCv(r(&f@X$aG*Iy0E1uPh|PGrU0P4-;?a`v3p{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$PopupHelper.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel$PopupHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33b363ef1ccd64eb0266ce7bc24f33ea80f83986
      GIT binary patch
      literal 2053
      zcwUWFTXz#x6#h<<cG@tIG|)z*(u$?z%7}oXK{O4m6mpZ6qQ%=ua?(zn%*2^V(Km1C
      za`_A3!R24jwM<>Q77Jc{@c;Pga-V6MPHUFtA?LdH{=WUq-Y0+l{o7*z7tl};V7R!&
      zxA~`<b6+<%w6?*UT8%q;U0aZ2(Xu|yn~fzQjJc}S?zC?Rqb+O&A%>`Q)C^8;mD-l5
      zy9!1bX1r5=-_^vnFkLNwcXd%Nin`+pQ`iin?xya{y~vO(4hfwjr>nZDyVn>piJ`rc
      zYYd@+)ez%gII2RySQtS>RE#6a5KKseNKrRMxznl%dzIG=!4NB2b#AP2TbKLZVMvl@
      zxI8SlUoD~^@x-{UJ8kaPH${VCYBvv0sXdK|v4Uq9P9D;*WOW?jS%eYCvnozunqg!^
      zxXahQJeI?h;b|2!m}O8~(!6R5$B{s%eL#o9c@m9yrwqpj5Ml_o`qm7m{v%Wv^GGN-
      z$1v;Hs3gqJiZG}=bjvJplWz!HMG`57V-3;d9mDONGR!3omc$_6oRlD=B8&5sDoIeV
      zT5Zep=uP$fJ%au7oB}GgnD4@LIem0nMtVubMO<PSqexXtmr-K=DBc-iYIs@2E4V_R
      zvZ<Sme(*dw%qI@p52PUldQC+RS1Aa=?Pew#Rqk#wOed1}{+0ZqAzFK`*HpZLH_1?U
      z`Z25Ab}P+7$F^xB9T?(?LD<Q41q&pQAK+&HdJI%XM@_51&AKqW$_*orB^7Vs2E&9@
      z+0Z4PZBaeDpY7-DYyZ8h{YT@tiK2pA6lDKy!Lkg&O%)}Ssk2sZ-&yQepWh%SyS1v~
      zZQP~@Kz!2S2DRYiAmnwa(5i|%vau)X<ZU06Hz2kdSc~Dz|5uoNqPR^-Gn^PCCIcV-
      z5gOL;z=M%olMVg8e5k_If-6?Xu8SpIK17p;9nVVuYK3K!O1fZh>Uu{(jp5vo$P7n(
      z*q9~cApJ(bqEY!~(tkw=0ZD~UkI?QC?E*B1Q|Vuzrgm`bC)x!tLE|Xd08PYbRK0Z=
      z$8myYqK>Ivge|fT(mb7hiugms(@zjDWx6;y!T$OYW2wvzp4*Q(MO=V3aj_|;LwlEA
      zz-<p>b~jEBL$0338A4GJ!3&u4n9g`PN!;IQ7oxfHE6$eEU8Kv|r_dfEl6?Y=_7}Ri
      zTqYi`KK=pOOty>HAK@(B<zs~|7XQFxfBiF-yQn;ZLe?w$R8y2L@Hv5eL4tjWD83>}
      zUlWlB$lx1X!MD^A-=U1}J^HC#I(_;TtdT7>1#aOk-tlB#!n;^UFbZ1V>m@SZ6L2(@
      a-obl=<qvqj54`b1eB^x!>H%=n5%>pm<q-J*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLookAndFeel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a866a547b2476f21950c03f12c9c19b9318e74c
      GIT binary patch
      literal 54628
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$ChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$ChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..719b2f72d045c998f0aa2c3135a2be676df8a56d
      GIT binary patch
      literal 911
      zcwUWCO;6iE5Pf4OF&MXm0D*oIP=F95+^TSD)dLZzk<#`+8;J{OlPt+b?xwPx(7)9~
      zh15fT06z+K*2y7>D%G-fc4j<p=Iz_PfB5|ez-#O{un2GZVkCa}(XG;5|9c>A{FaDR
      z+dnn-qtwGw5q_<gYdxX6@`KQwK!y%7guDUz0jK@Xt-fr>4swLjbUQhcI`+rVhKgdT
      zWk|@yJr$K-5%wFYX1`^~JEc|po=~l%#2hpUncAQu7eRRB!NGzH8_OORktf&{Q?T4n
      zT7DXSYsv77Xa$l`XbjpSXo^soc#_N*!i1A_qi3aJ@?I2+SdOzD!p`gwrZqY<enLH)
      zqzPO9sU=*eRU}>69Q%W&%lbVts<{OBVlWKb@?05JR%d}nrad3FuKAK{frug*IVcf!
      zQ_bZ|nwg9e&$W4FLHWG7K7O+{EJK8|OB@|@Wby7+4}Za{-r@02jx4OO&2bIr5(V}>
      z<1=a%YrGTIQJi!*N$NQ_54=i%#qrMx(0CizWIA9HPbMw)xW+cP>fs%p{+oc6tmlb+
      OftLvx;%^Jvu>Jxr7~j(X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$ContainerHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$ContainerHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26290e1ef195639935628fad074e423db00c7a0e
      GIT binary patch
      literal 1177
      zcwU`T+iuf95Iy6Bm>83qHVx(4P|}h(P=kaJQV|l3K(q=VZh7Ct3%GLZ$aYdLUxiet
      z!~-9|M<He%E2uOAiwE!SjOU!0Gqd~S=eO?wZo$!^5$^1XiFohC`(E(Y8TsOk(-*Nf
      zaJJR@L<Zw+5xw4NbiyDJULd2#B5-{f=_nE`g>`(v$Y=dMIY@Mr2=&w}_7g`=WRN&B
      zXxEDq$vdHxyz}D5O~SQquJl_Bx#tC5a-U!~b7EROLa`INvJAp$6FN>BC}6=v85W_?
      zQ~?WJuI%Y}*q6~O(f1``u^SGA-xHCi?95qI1rzS(OMR?cTz_Q{4o6|Y4SC?Y(j}}-
      zb<AtjLuGRPWvt-5j&p?dTzO4gz(s;SoH_`#BlYfPfm;SHqpo9>P@VVR#1+*bBa##0
      zd#*^N0$erGP;NbvBd#(b5I1J^A0qgY%!I#?!*HUc_w$Z0U)b?>w|WN8+*Xq|Sjfw8
      z91Y|nPfc>^D0Wk2AecJ=!#lo+W65*2{$xa*`3n4<09ls0O8kV1&{P8Uo?`1ZTN>|%
      z-Tng8K1Ag+TN=*rTH+XP7Z&+!sxzaOQ01Mlj9SL<oOi{rY#+cpz}c_3G&`;RCaZ8E
      zpn#QysM07UtxbU$sXDD=gX#E%{U7}YrvJ$FpZ-Q~f%P{t`VEdLD6Mw;5Uu&zwe)MJ
      P>vh~n`=E+k!6vj{A=MV^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$FocusAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$FocusAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..530bb04bf073407b55bb4fd1b4525287334d7ae8
      GIT binary patch
      literal 1327
      zcwUuLTTc@~6#k~&c41jTDYsT`a<k>ORz!s&3Iq~JL6Rz(_%z*4%ffb->~6uo<x4dt
      z7@vIbM;XsvqU9oLH=Q{%=k|T)ocaFa^A`YlypR!N$RF`j{$6v>46CM{n7pc$xoha!
      zy1(uUtFg|V*V_|Yw%%~pbkDFY84^RL)orcpdJfmUP|uKDF)YJdWr$~U2Mp4NT@h_)
      zXK45Mu?Rvbh@(SA0xCmqw&+LGOir;%o<kuEzF$|-u*6=YUKY+PUN!|ochT0ldB7dR
      zKS!66cWAf_3&sCtQlK0>koJXBwVk@CFpNZK_?f4PQ(<{pXuRpmgiApW`egJ*HMrhR
      zML!0JZ%ue5yW!{rvnQKtq4~0WBy_JJBSV^2;5!jg1%nutF~l(1s`j-dVTvHtF1L71
      zI4VXk%FtO6Ro*bY=$2t3%6OA+K|va0D#kIvAQN2Qh@mgLebG07MR2DW`Y*@aG)0{_
      zE68G6Mvmdm6;Bm2m}O8Y!M=UcI0>_4E&<&6r7QUK=T&HUKs|D)iUDp>+2`IN!%+6!
      z6=o5NU~&>cLl_2cY9;ZlhqWfYSIN>nnT-9tf()@b^*8fpNHnAMfN<)XnldQih-?}D
      zG^Z|(>%8wkh1<3);cS@Pb%iT~p4Q|)O*=zJ%e-S0^d{l|V)RcSNoSd)MLILu<>~IW
      zk5E1Y2DfNc0>d|C_!gZcsi7IVaGQ4OG`gb@=M*?e`_fDksjo=ye!|_o*?1H8mJ{j3
      zH;gCGF}W<IrTA<qElKGFt)yt;erYZ(H8J-)={!1U<!FOWQkjxgkwOgvFffcGn$=_E
      zVB#U_cnUiJwi+gnfca9M^o(NUv4BSuS;ZW^lSP6#j0_&*2_%X-MG=;$5-}_X`3qPH
      LXfyhr;W?C_y^B)q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9fa547948d35065477e8b773d36fe4cd7bd3889
      GIT binary patch
      literal 1811
      zcwUWE%Tg0T6g`~`j7bIv4^bY8r~#6I3?PU+L<M6RD^W|7g{~%{jf0a3HJJb(;1{@6
      zODPwwTv&xr<-#gAE_ChMDnCTMJ&8O_WU}bT?R)Pzr@L?W*Iyq$0T{!A3=hN9s<y6e
      zs>Kc6%&BXJ_DIcWMLnx7h(68D(t>8)Pe#&(QjsUkwUT{9Ggl05$&eU=B3U&wO1+&~
      z<yl)sBSYjMBwy#It?s9%^rFp8ZZS04kM&|?lwmMcmxftNnbS?(o@a<h>&%HQGf0bt
      z748E=lL8sX{P3bhfe%3jZ&U=dq;!+tD&;fWx~F9f&d`=BWHn=1vvgrs79}B=VY)u*
      z>La5KD0#8CXz1A|e1#!g-iE4e*ar_PA*LkVhm+`*(Z$eT7o~z8^fJi#@&ZHWA*nYj
      zfwO*u(I?{+Lq{#Yg3~y|(46D;QYn)#IN{l}@!n|c;UPc~UvWE_5e5AiAOVyqd?X;6
      zj8$u(;3(oUVhpWSP6b04W(X9Cof}kB;-IAH194G|ZlULhBV+L7DWv=VG6_ScmL$l$
      zqp-b(yubH!$Ku7Jpl@=_yCg?*?0{n@Hg!i_Iry5T<#NLGJ7&7DzVAzzHn)VCt+#IL
      z3#(CMv1LD1`Xy1{e$uj3C|Oy4T^IG+emHqVP>{l;NzZZ7&}gf4$*on8=p#TcwFa<Y
      zP`n`eK78;923ie}H9?k#Mt^+h1C;nKn%|S<K`Zr*6a)4QZ8TTJoU+={K_kO)bXE{v
      zP;>*0<MC}M+c>d<P})2H7U7B=+QHcwsZ06-Uzg<F!QfLb3k`qT`u%gCDNNeHo+H3s
      z(%XK85PMB^yoD&)W9*HiV4}=YQ6OgLFyd$!go;r@YC?oQ$8p+mh*r;2hD83!J*ATl
      z9})e##di)tXW6+&z$yd`7u+FsT_C31AwIi6Ty%%{<^nP84)NUuV#Xcf$59YLQGv4+
      hhyjZ6ioE#HF6L@ip2unPPJbC!0H<~teXv*I`2z{Vc+da<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..006dd5642c1fc010de81ca19f72b8a813f09ce62
      GIT binary patch
      literal 1278
      zcwUWDOH&g;5dJ!e*<@WH28?gy5g-p>LGc;&KuSxjh*Y5*yiJlZEVbE$*$wK^v#+y1
      z!zv6_9{d6RD9fHC7RHL2!_Ln1bobZa*FE2VeEkMs6$Jw!LSauFh*!4%((!6`(-kl5
      zvhbaXy{^~C(rc{?^=u=(r5a7Cg4e}e;nn0r;Z<F!3`7VCoxpb4Y(FXQ$x2`#N|^3g
      z%Tjp0-5*<W{6KnA5u(Aa<EK{$3#FloC~(Lf$8&;vgj{CGnCuQAQfyRZ9E1@I24W_{
      z7_$&Zf)LJVhq035$<0>1EY(v{b|oQMYE*=~Bb1}hJ!3={Ot?E7^kB`H#Avhcf-u`9
      zGf=Mk2ht0eg^9B`Z{QqZ^54D|F5n_ls>$Hj?WU+R%0wnxI_}kWpt$-%43jKNxuL33
      zZ3)K<WYxqJW(-XCwYKYSVHRobg4}Njmz6l3`7L9&`-SZDIOdTtut1m_N+=6i<OoK+
      zYapch1b)<WESOltvVkS0GU(odtvhNc+0;a0SmjFVLe(6PKrF!2|5PT_h8?Tn-2O5G
      zx|@XSdIU{^x!q`~ihSVc5gYGMu&iMS)`rI~rsxXams<9LX}N7Y&-|SLB@%kj`I(0i
      z(kN^_$)`0wh4^pg@?T)(jxhR}Pa&M*HOfAqH%Ri{(tC~?#{~Zw5UE~<{a%Kpd>dzy
      zm)f}e2_v~fScjNvBj2&E{AoP~NpW$Yx3K6PQuH1(^Z|?Xu>+dwChmdi-4$GADqsR@
      iJ@|R{3F~5W`6FB#TzshW-RP`0ajQdw2Y_R5BlHtgs7LPr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..631dbab64d86f131d4b31d8c5160ac7665bc0ed8
      GIT binary patch
      literal 5909
      zcwVhoX?PRY6+O=wB+Ekp84Q8M*kG_N0}4watqCnQF__3eVr)W4nvSHw2qcX&l33C;
      zZT2SVlD27Dn(lkrh88c0o0KkT+BDtLy@8~A);8V0ul>56H!~WIMiQvs#}Dhx%zO9T
      z`_4V@zW4m-e;#-Uz)JkxhZ=z;`_+T$;c(_qB0U@)NveCpQ8kl@g}dc%zn0E*tHxlT
      z548gGONKiA0_Vi`sp(-YlE`GWv}On_inxbs2eouI+*35BOJG(^PiNHxU%ZB4^-wl%
      z<sC!A#t}mw(Twbo9*^6_mUUE9)0yy&vV&;uOIeW<s3^>>_KY}WdP>h_T)<1q%%@)t
      z=}V8~vM%gt>l5ijc7wo__KqQe+8#Zw1uz8-3T9wt00MIqG-9s6?3kgcS<O3z*7lAw
      zb5}>4a}`X*G>N!C!Ff1eV6Kf=%4#0;w7g2tg$jJ|`_LlLRh2eci&@^HrsGM?2%s5@
      z<&0YehT9`mA$3(Zth~dnjv*QTQU!Gg_|Pt}t~#_r5}nZ75R##H3dGKG=q1kVu$L>C
      zj&lTNM3|6mxl~j$cB;{&CJ>D1F*P})8VUJsf2_^!OJoGvs`J|A!)k%mRgG=+WN{T<
      zBB@v_aP?WH!kaxGE)-Z>rEOliPMquTG8re=U-WFp>G9PiSGC_-XtMHMSnO|WkDeOQ
      z(_CO(9i<+ePWqP%w?RN07MNEFf`xTh%l4~>6RBKkAaN~ozv2x3%oV;V!3vj2=xHK|
      zn2o}^<e<#thaHBtS2GMPZhe}ONN2KYGPz0HtLBo~jMU{81@%z;*h&bSk`+<ih)c>N
      z*yck&i;g>-h^`;ln2z^qT2jGw>|i0aVY^K;O1)zIR`^NEB0P{a*h#AWxQuJSajnJ<
      z3>$hb9rt6W>-%2a(DL7z9i{L+ot1%Ju3$H=V8yj#>CuzAk&$t7fWW2yM@ZFt=@<&&
      zO1#pCtLU=a{-WS&yh@-hqh+^`sMqA=l5W333ainM@DlAvR9B7o##okF%=p11Hs+^A
      zthj!to4*9j1fXHqhrO%^6%;+NPi2+|`|_Dpun!4tP}Be`W_y_lxIS%<?$=^j){p~~
      z>z>jM$!|(Q8aj8jlzKpO*fZ-~zd9lisYq}cz~W_7f<}keAmfAKIgt#=-@$AmnaCzI
      zPBDud4;Y3<9%5Xmg<w`y45qKB!*M9nDR4-^VH}~j$eNWE6YX5jZtZlLalTr?Yw%hs
      z)rrGpS~-vkh-T%9+G*!w!kJTJ`N;ivBRR;+M$H2Sa6NAH;RYtmZ8q4~ucp;u&5-)I
      z$)k*-<am^Eiw9_9!I8k572GCyvrjv=25nu-NbXSZ7QB^nAhE9Ukryk|?4h_IWODp=
      zyu*h(X<dGVf_LIwlsXA<N_A26RZUT#MoqEORmh7E@8JonWbruz2Kz44GJ4L4@gR6N
      z8hm)4z{(11)wBEb>akqL0t(<L8vOVGYsEG-rPbp@_=pc5rnpL@Qt(l^!u_OlNKNKU
      zzaN)ed_th35(~u;rrL^6y_IGqPra77nC5a&+;8l<mOpD|WQF{!g3sYT+Nkk(nKSE>
      z_QHl%>Bwr8+RrQa0*-Sr5~%#4zo6#RUJWd`F$Lq8V9<o?FTMt}l*Cjtz$C5Co~t|^
      zEU3I&56N4>7Zu!(2Yh(QvxK_!!x8m}p5ylQAWq1m&6jyha5;CV=<2hA{;Gnn;bCi2
      zu}mHBrh)a%Ug364dqhF6btn0zf_tr}Zz)hQlVu~9_8bVLm+vU}F22WIonE?~-IzN=
      zQE1#<Z7LsE@B{qNiYk8sXe#E!I!}bHUfb-)3Vwp0@}fpFYmW}P9LO*Bz@IC4A|Fq$
      za|$3;PV}Cglt@ljkr<y+@Czx%xrUa~50>7c<d|P6__fs8dDfWnB9a4ttKfH1K@HYG
      zkBI7>2nPEk<<Ba3%p(7J1*fd1-zzvN(-0UimsoE?p8Fe$tHTP(2zR8uG+}#^Y9^y`
      ze)X=JL1K!|+0?Z6JWJt~y->-G!+Tpn3nQBX@ZMP~@1A_BmDfeKHS*qNzVpCnzVkxE
      zb`~vo@8$0-zNKg-*oH&n2!=vqm_3SlvYkJQrqCpscZb9{7L8&FU)s!<j!`T-W&*C@
      z?|jqg^>lM1-Q0xPxS2uS!oFJ(W{+aQ;{vQSgW*NncD;sgvM(@+RVMJ7`yAA1X3w22
      zgn)y<i*+f&IuqfgUW9wfAk<+!F0v6;akT97PeSY-#|E$cr(O1byd1A!E3gsWw*6YR
      zHPS|SEhkLNMyuEMET4La!7BhZRe|yF889xc0^{-1V${lVV`E%pv$-&I9GioE6S%~D
      zxHLEr9Gt)|`BFQEJ>JwmK|)VbQK!(rwh>RF2~W9bTj(TCbzI#*%}Uj_1)~#)pTPcz
      zMDLtHvR^(-T{eLc`9M(~oWQjOmrLmkc!s%nnorLni0A0?d1~qf%;WO{yvQ+sG~G8_
      zE}X14;dMB`0D_o<*W(RDtdR#uJESN_OOBd?*G=F}CvbD5^AWCyaoif2!0o~7I>+#~
      zU7ZDX8@X_Re-QVdTv-1i>c6SX|GL<2ay-w$U3j;dq1zmP37dk2lenA8dv9bCN7>%f
      z-?=RK{`>L48Y~;b$6OABWDuebei2|9s>k_4aZNMNvY%Akg-_DSOy=ZM6mSjg?sb^I
      z+!p*IliuTK8pCJo$0cJpW<S#P=rNDy*{BzD&?p+wBIdgCyU6w|<i2TpIYM$I1<OO7
      z<CqL}p1_r(Ch+D-Jh)r7Q^xV7F?@xE=Ii|X2LB!{IBa4GgII*AVlk$RRy2zxXcbG*
      zF50k6w7WQ7?kIY>qv*$+$?mZy+af)RF?`!@zi+ocvfG~(T$^bX7m($ZWO)_liPdz!
      z#x>s-N6#l6M-k>g_61G#3R}IRNV*ns7iz_NOk-OoF2XFa!G#=jkWZa1Ur!eD^~*xO
      ze&fy8#mrYP^R=1z+EO-OPdoV<G8co4e+<v??>YXx5E9IpH~s;}zmx0?LJ>oZf0rv6
      vK_?kOI~g_jgK7UFmn0A(!cl(x6Xd_K1pdsPb!`8_wwdi;*|xF$8*2UsKhY7*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$ClickAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$ClickAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b12cc01a2ad263dab0cf2846aab6d83e523f924
      GIT binary patch
      literal 896
      zcwUWCT~8B16g{^sU74=5Vgbb>RSOnKTs6F5Ot8_UNiilU@6+uRN4K+PcMAS36F|a)
      zKfoVFytCcJ#s_IOdvoT_J?DPS@9V2y0AAp!hXUc{7kMJT2kEIc$HBKq4uif-br`&H
      z_CT3&*Q(K{ZmSdN@aukPb!<G82&>b){eEf_8QRG`p=>|vwDp|O?#(8@$DCK%X#1M5
      zGc#%Hh*0Xp12qpq#m5}V0!7^R;bDPLY`cJJPaE}qJnF0DqwGhDu-J=386C+)yL0X=
      zxsnOHGv=P22Nz$J8Tz1-VVsQAfUrL4B9NyxP$$aRU=sY+VXj<Y8TUM_5Sr5&U4}yy
      zsVw$D8hNY|ANR3JSQx0G97i_y5?bx8-c8&+fd(FWSR-uC)|roWGzs1y&RQgFv~SMh
      z20fRxNof49ae_FE$4RK(X*c!yKgpjtD#7m>qmoV}(^T<NDpSKolXqR@2TZk^TR5Wv
      z{~m6!f1c4UpPff+@0_#w3I9hHQ)OG`7*HKG#=gT4xPwKfhP$Ze3Y}b`vV8_|iKPoX
      m_$wjY6*VAeEt6TEgyu31J;GxaD&R@RX<;K{5q}MA0)GG-*yRlX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$ItemHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$ItemHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..97810c0e4110d78e5e46b81b8d70a589da2284e2
      GIT binary patch
      literal 1250
      zcwUWD&rcIk5dPlw(S>D&718pmiil8JWhvs%q6Zp{HB}EN2QKEdebUA4mh5f|e~F2S
      z2QL~mYGQ(rcrbePk220HTLl715BuKC?0hrdd^`L5&-WhyvRKriG0d-vrr5HBO~+fa
      zH(c@DE{VV?+e_+vD7{7@l(naYNp;;9Ud5HZ4$fdHob3uiJua=wa;PKDFxrZW&Cr%j
      z>4mmJ6`dfIp7a^wVbuvH=NMAO&bsCZv*>tEc!wd=F=%Fmf#>TL*#m|XCUkTgh@sy^
      z4=jdQN+t9c9Zx=L)JoESB1*1g7%0}u!d(%*qx>ky6=jBn4twvHiO5?HxyzvlWxh&E
      z$qGYqZ;V44-BlJ5@4*m8bPO|0b=J_tD8?ANYf*$Dae(TBc4|(?S?Ye^UA`*IFP7?C
      z?HmK+n9y;aVdyxHCN5x-p>Iuw`{rtiS}>5rl!<Aih)@tEkc6q#nH2+RT+)$YIDI5N
      z6PMMuF?`t+u2UhPLf9teR9N@rhH$))`p71oBgbpV&=u_UWvdL&I$oL%^A3DqH5S8l
      zwO0mlU#>U&vb^W0y%{`&n^ol*%z{UMLf#cYAZe|7_f;e9X*_zmz${BGE&Zi2XsS3x
      zd&yfMPovvNXTHHq@1pN3c^XdA8K)fZ*BBt%R5qbbVUTW;9A}~mFDW}l_hRgJdK>08
      z62Fjqh0)9o&ha<s;_dKHB*%7eG4ggW^Us?7-*ZB7<Zq$zcj)Kuk>DRN%s*n9e?pdj
      zMvi}J@fqLi8Szn87W2eN!!2A<Q(2%XuSOiFB98HNW*66vo=|H&H(KXSs)CkAw71AX
      F`wKfsGf@Bl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MenuDragMouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MenuDragMouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1874c677fb8d3bf0890fad836dc8c360eaaa65b9
      GIT binary patch
      literal 2003
      zcwUuM+foxj5IqwHmc$jJT)ajxMo0o0RKN?$JxDYG6+|hYmSjv;HybOvAbyK)zW8hv
      zVwDemfFEVqy$OL}EY^p)^>m*;-90_Oe*gFh;3n2I1Oz7E8r#NB%K2d0#ngMtc$3;R
      z95bJq<2k47t&FS6FETOSE>w+TuCnE*CBrUQs;WT>gc%@Z8Dze)`Bvp!4IKhQhhf#W
      zvfWe@Le_L#Wvi+{hg&k8*r-4}>yOGL**q|9)149+_HC3{7m)Lnf(k<5qz(<8A+(`e
      zM-X9wwm2(vXH8ozZ<RMyb<Nncl)&k1C2v^kM%CnVT_~Bdz(b$DTjq|U=q(?X^QNc@
      z0*U6BS|l&cB8n)4vpBEeoIuQvg^mljC~&5zT)tdY7FElv*g3;Cid>3VJkjL3mDVIX
      zy`<wZ1_U&MdTO{Ofs66P>%VN%mMSyT5Tb}_xGFGk9K4Qe7^Fft%B@|gLd`)W{%?FP
      zouIl5`b!+~F7JmNJwD*0g-YA5s&b)vn#DV&%hJ9k>2pFe997_~rF4wqCOsd@+AHtL
      zWmtS$$JoAjBZvvy)o_P`@%OlN+{1l=&T?Hs^=%62@xCfm;Q^*JJS2)O6?9B9jZUKR
      z(k!?o)}Pfe$HE{9my}s7xgjFBpd*b%N@JliZ<+ab0@vcl=aJuQ6iYfX+;FGzl$dIB
      zjl~X)42_QhCEuOxQ?GRwGAV%-{slq;q1DP(HLn&;?(*Iv05{l=fS$4G-<r1!$5HeN
      z^tOV<0D-pAXom=g`LCfLw*vw8Ledj-8lzKy)=+Zz8}#INbbX~$0H-`n0myNjroGO4
      zvg$!EtyDYo*Ado8yN%Ya;XRzmjnEv~!<7S+F20r1XqPiMDQ7*jftp1fjdw$cdpv_k
      zAW4?=r~aphEP2S0hh^U$Mj9T*JuHgrXz&{zSby!Z0Ve8T0@oW5yQI@j>!L@JrW;c<
      z-I|b*PZ*6PccJfMd=HbK5$%(o5b2W*+018j@nK{S^IxFR^5}p^l#3<{6r4gxzCl<P
      zF(gZvkS1p3JEW!MaU838Z*W{}1Uy?0m>cOao={@K)I3?*$uKA#xq1YH^)z=RhreUF
      W^)m=~<Eb}4!*jrUNP_TI5%>dfiQESO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MenuKeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MenuKeyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea17e2dd281e6c287e104e8c261c189a0dac457e
      GIT binary patch
      literal 1091
      zcwUWDO-~d-5Pdbf?8q>}h=}qbqHGB4CXOZ$4;l^-2pd)*ihJ+bEw#z)ESZ@_xp?;n
      z@IyQp5)b|We-xp5m;<{p?i{+hs;1tn>NnkguYUgl@Df!U7Gd*5ovCkr@>NHl{nJo=
      z@&lFVw!dxcTaNmTl)E1rRpTD;`M!!eA;&h#1kXVIPzmrbIN^3`qe6Ikn~={qO8p$$
      z)Je(_$An7yMJLr4gtca|_OAu=Mn^i`BGe0m)?0+~POrn`Al!9f<Bo$8rd*7}Bb3%m
      z!BkU6{I1^(I6hWE$b{);udTwCinWRJWZ8^NcvZ0XkX|zXWcMa>6mybrhp;kujsdB5
      zO_0q`(tCMSp`0RTf6pPSjNZ*N$LFUe3<|4Oux|K->n%rAer&XL2+oIIKW_7$HrmY$
      zL7$rrGGQZ<+prTV(Ic_(jIdg)wTL;`9Lv(WBx?-hdFDUM4IhJLW|8cKL>m%WvOBf<
      zFSxZ!O#YO}!acDSsX;lxwD_*^1$7@YvJ)O)HfPw(>LoV}{GI`4Z$9Qg<2}S9v4pwN
      v6hB5#%#WtH_#cG_kzygISe2TR!PV-QSp2sPR<@Qh`$XhLCZxP>tiZYkZg}=a
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f7a708be4bd8ddc3dc55bc753b52688539af1b9
      GIT binary patch
      literal 2324
      zcwUuN-BTM?6#rfJ!X{x00U?yOsT3jP0|?cAU}>=>4U(ErEG=!VUz_AMY)v-I?uO#C
      ze}yl7=!?(JV03)w*cqREQQy^nKt~<lt)9D^1PWHdWcK5nz2|p+=XcJ%`R>`*PXL@o
      zUPTAP>;rvM-%8pK4YQQoDC_r=dEGV&$pv}O3A2`QMCDdyELW}BB4cjUoF&~XmW8E)
      zGX!OHvaD0=_51@-a8z_LjP1r0o5FOGJK<Twc7!P`hAwB_u*YT?qS^LH%u&om!!(?E
      zhD6&zu{8#ssuqPG3`aDm@CBftSA!ox1|=#N^kxlHEY~V|Vcpd8Wx>#&trqn1nr<1=
      zZaBH5%y6O2-1}9d610kRrpiX)BT-~H=@pXHA3D3WO3PQ`9>7r?Q!&givOA~Du`0@>
      zxKTB8x~Z3hrQtYEF!U6~eZ5w88eVEgG?qOmc24Fwso`aW82UD>YC+ic4iN@M)gS*K
      zrVMJOnQ-*rbWItqT6(D@W$?_j=?F^{1DHTeMU-Lqg&8%(kznwbgtJ<$Sq0)Z&?t2G
      zK+dU{qGq;WQq{^v)ui|UCXv)IgVP?!if*}uhMFMWYSYnaGAx35jbUhSUFou@xL9X#
      zUd1_vNPB~!VHU5GWNuz(o#8|@c5k0*4Rp6Ra~dw<5)G<N^}1?`q8A#DzBp2jc9-3h
      zC%az-YDBlE{FdR!J_KAVSKZuc%8Es^Ak8DLd4sa+w%4SzhDE$d`+^F&<L;%5bW?rT
      zn(n)P5+|!6hh+v|r6B=n`5ftMO>L;y72HtqHpAe5F3_+lp?w5>+bBBga{Vn0YtkwE
      zxFn3yy4#UE8t&p9Qn^@lcN@ca^x(;qlCdqiGIV`Rf_T%lXvqCPu&0mH5{`7rm^34)
      zvQ9eD@zA$#+v60SJqlf&V8Ng~g6IhLfzuHbAa6HWv*@575QrzffEND}J)e`+fj;Sz
      zUzBgrsXRqL*&4-2?@Jh<Cn<$c17(F)D)QS`7|Km1>Im<k^vEyD_u$G8@GC#MNF(0r
      z29kUmak+AIVHB@WB%L3JK>vx*e<t)_+D0F5p?^X)r{@F#N4~*iZnBQ)r+D>K3{k%2
      zsrWXuI?mK_Ve0wR#|RF}ukb0qp<nqOA>|L8QvO6l`OBpd_h4HzCK@z+bllD34MGVa
      z=n|4Gx_pRo|E6-EQMv!LUGA0k(Rl!zcf-%Mw$T?3fj&g&M+tqnZS+(NeVgn~dM-+I
      z0>3&>x21DD{0K8)*{5y1Rmb(m7#-w~5FX?$-_6J9kp}hl_Gj?zVKyo^1|KJ85n?uh
      zULHk+$8eS>aG6gd&66(MGhX%<+r<{!g$7$cF5w>Dm4Ea&kN4<}llOf$(+Bv_t&lc2
      I9TPhEzjr?P=Kufz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4399c92f1c0db6d23c4abbadbc3687a2f2496524
      GIT binary patch
      literal 2614
      zcwUWGU2_vv7=BKhcGK+wZA2jDTPpN>1@S8Z6heWNG)4NMtstIkPTDP--LToTR8d4l
      z^v>~y(LVqeUdRl#jGb|~f*JpY_d2NKs57GP*(7aKQrnB1oSgH1KJW9sCqF*^{s#d2
      z@wtK;hC`ElieJ|A)22PH=PaJlQ#@}P`Z2lo3%d~aM0Pmddd78f!u4ii6Wksbr?{QA
      zgsULH&?GJB79HyYsYzjY3hEhl`==?v?Yv&8n=td9u!YM|?@gHb*5?@75^IYhN;-#3
      z+w_hwbgo&ceS{$pbJCC^!~2&$;X1`Q2pVyJDC0vi&hEs}+7O1MKjWeJ8*!ZElt
      z!d+ATE*%DB$P7o;=({>>l*am8#RbEjVmeh3>zxv|M`@_of))i~h8_Pet6?j)QBLE+
      zE8ix0mb`3iYfmheYtVBk{Adt67#g`@2#Sq+j;mr9o>8#7qP9h04SUc^RS=g7+#(>J
      zZd+onSpI1HSOfN=O~F2fy=%isLpwScg4xmu!{!Qv`^utG6<z32(9O`YRA5l9!=7oG
      zo+<JgbP%o9QU1g6xScC_{XEC8zmhV2F(;dIY>92Wz2c^<5|xM_(C|DC5<+Bcz)FvB
      ztMCMprOXw)NRTYGbXv?1aLz@c;$=h>yh57QJZXsH5aH^ItTRRCTPj0cFheX*K<w{&
      z0@sCP$|i^7XGPvAxCZ$?jMpUFk1}js5rZPXVj7N@vrUR=KieQqFeqs!W|_uCnaC*(
      zar9B^kSB^|rC6&_V<d=#>>_d53nEFojAPU848yi@yU^p?>GAFK*v?6p=O#=ef8e-^
      zvlvn^NX#cO-LQB*pX1(yJ~%_eBwHf6U-@B-6r(RQpGdfrq$Sc<=>wVmn;J%C`VC}Y
      z&<9V!Tg$k1G?n*UZg|HEp6A#q#&BN4+p^&l(i-wpdxwGMOp0Nr?}kr%y3ABRLCaZT
      zr-d7%9f>MPGi+ZF8W&DhKbpzVFdA~HyEBfPRbgO*3XXAE!wH7gQa&pwM90P?O(q$(
      zRC<@OCHRa}@MP4MhAix2)G{uH<}#_JhCCunOys27OANhLU|c4iSS4GZ05mrC`2An5
      zuk71=kHL)zk**A}pkWHr6c`bW*he&7tm?ihqo*3<7#KCwuGPjXO`qI??a-5%65F$K
      zh-|7pDV9&H#V#QK#Di@Wx0Mu<wll6lkLIfQ(TK2obcmD7gcp$`DYZ!66Q+E$HZGgC
      zew#69ahsmunCvAXM|st^ik<?Bjy`o@O-=Icq(2We^l5-fr;W5bNWbNY+R^zPw2nEf
      zzvIg^(^^k5z)uL#s`+~rPhlf{lS6DOT3|QGx<Y4nI%l!DzbmwT7CXN}yyGskyLh(l
      z9y*iV5769A*Zc3|g;~6G3!!-&9xX}C;ngJF9izKQARKsr$?k9<)H{olw{W2=behb4
      z4XrEG@7wJU4cx=)57A31Z`{XNvU?Wiq~1d)p$n0~JoxB5jL|uW+S)l}B6agHN5cUU
      zyBMyUgA=Lm4!Pm_S$K<yrf7HoKT{&VU_BmDa=%h~kI;hOumiu-tMvzs_&;g5{zbF%
      zZw%odoX2Bi@GtdX4W?KvuCM^Eu{vC5_4tA*_>#VFvLJ4=27JpJeGtzP@B~x|M7g_+
      z8NWQ=;9a~&(X=3fD|nxZb{tLQ`vU~1i6Xd)59#a*l`BDV0o+6w*YFW(-ln2{j8CXo
      UHMs6)^eJxmr6TUqQ~nw79}#8V*8l(j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuItemUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80809fd55ea8e13d26c707ab3e810567a63563df
      GIT binary patch
      literal 17650
      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
      Rr8&Y>{)Ni<RK5q|{{RO<c%1+M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$ChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$ChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df186efe2877e24d99748e895d011edfd9036d01
      GIT binary patch
      literal 969
      zcwUWCT~8B16g_uaT3Z)b3*rYt3sh+rb<xBpjSn^wF^fK+ec*v)+Kw<}J4-sd)W79J
      zW8#B9z#nD2vnARlCT%u5_xql6@64~?KYjvuhP@&j!v2N05?=!|RQfEqjKr6qBaG?>
      zZ|r#_b^7_R-Z~fhOuiGk7s){pd4gxFf{5M0$IgZ9CPfqowaH%cO6nvSmxjtDQp*9M
      ztjw{DxIp#@bVA7Y8H2DAPS(D+z%L0-stEOPHbu@Y4~031yQ#6ASF@Tx44FaPzl=3=
      z;haKpu1tNOl~+ou<Tc^6F;DmZkejEh+2;9LaZi@Olw2&sEhC3D7ar~qa*bx&M((*N
      zp=`Bv7dPP&mP4iGhqT|3gHNIpNkS!zyCQ0ffwK0sGjGQsJfDNh^d0gls84WBA`&@{
      z@Y1%YcQJW^Z>^rqLyTLUk;j*D9H)b>JW!UVH^Jkntz_gw&Cj6~31g%wqRHU1XCN$2
      zO@S?5S&sh&{s=|f;CD@Smzm^EW^xfrfalrmv+c0Q!!155Y@M>5XSwR{jj-Z>$8G=d
      z2zUJ_Bi#R%Wk2AvVso4-7MyjIoDD2Fo7iA~jnTOlo2UYrR%2`@(=58>wuS9$tQT27
      mX7sOdfkSY1vu11K;NND19n|@B@G#4Ngk6?p_7EEIL4N?Y66K5l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuDragMouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuDragMouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96204b5d9e48a50d0b98f3ee9c786a50b40aeedd
      GIT binary patch
      literal 2832
      zcwUWFO>k3H6#njQ+DGG~^aol}sUk*5+J*@7n}AUIV^dlvw3L74HMyh@lb4Y9(l!eI
      z|8Cqk;|#($3^R&Lox!5c*m36!3s!7cxR8wtUAu7Mc+N{&o08ft-aGf6d;acs&OPVe
      zKR?a_*oKcZNP*p#j7eiUY)_e1GMr5r7sKO*ZN|fg_&=nq{E3*KNl(s54rTJT>Nl)J
      zO64?o1nOBioH9uD==dcScQn)pY*}bhO)AR?msuDzZAV!uCs5-|n703U0sr9gVMIxO
      zpJ|!Si{v7(5{2NHfTuf?P_+<PtwX~qFRHLcM=k0Fssb#qX3(_Mk$iew<wlM1loDth
      z%*2h<n2|GiUt)SVRDr!K@LLftihgZ+A)gmXl@JJ)-=zXzz09K9)M7naHTVQJEgyxB
      zC$T|b6+4YNDlO1b=4W82bP)C8DQwj6w7|NG0y>_-CV^Vh?zI?<gbUpnFZ|f7;W^6Q
      zO5)eC1px{osT@8WQ7NhyGh+=ImXYLQ@CSlr0alWVveR}Q9q1I$$kedmObBcU1kXOE
      z+nZ8p#*J0B>Ij4CY!$0yOv|Axm)wPoDJSgmqP5tL9U5K`s4G9wu@k!l#58>|hHH<G
      zy@(X;oir0113?mF1N(IBcZCZqctFQN7OW+~eq|;n=!qN>Xm|{0FM80Yp;utzav<n<
      ziLbwgOcsw+f?@EY3zYQ%92U^sduH=l))#191nt25S(LSgbR6Lf*O~TcCOb$OOcg`w
      z!my5Ga~JJVDWkw>j_4R=W;HQmJsRj0wJd?Y7pHJW!|AeKF;cMIvO0@%gp85P8HIQz
      zTM%e3K81xHB^s;1iUr3Qua|Yaf(wL%U5<o6TVUyWVBPf?*AWL*avkaBv%?wN88y>f
      zhRuP;pNXsE$3-1UOcc@W&ZM&$OK~MNFRY|_ev~7;q~lejDBtlpc3&n}D!@pflGfsy
      zT++0qBg0*+A)Zo3uKfCf8rJ5ObrpI>>A4rUY5Dg@jWFxFXk8j$@}H%AFTM$>rrm06
      zssJ#7YL{I>v(!{^<zeiodsYHsaZ~NJ9F^k+)l|-&HXY`!E8`v~hlb7k3o9BYE0C$&
      z`nh@p-sQ3574VK^^0~O`GkL7kFHqjf_6dlXMZ>W>W!Sc&iL<tnNo*v8RrFOu)YtQ1
      zqmf<%$sUON1nqXvP7?LDcYFuE{VwXhrJY2BD=BChLL;qpUXxZ6))FO*&|I`2?vr)4
      z`)B(d=y%XEgSKn<tz!ny4$&`ognprj$LG0&ZP)R&OXnqb-@<3iiC)JiE}cJl@fNO>
      zHb0{)Qr$U&?nsTVX7&p-`IveV+kMqD=>HOVrh}hj9n+)Nu$nv`ZxDaqL@+e#x$qNC
      zM6^(qPpb;eevgwrEi~&Yj&%C88Jxe3ot+_~?2P%wZTO1@{<?|QPFgCy!3@kuwXgaY
      zXcS5MKa4DzpOCw-TJAxk+=~_&MVs7*-Eu#U$pbhq4<atRV9G<dEW0sDv><!&vFyXA
      zvL82O3}49sd?OFz2YD2;av1mIC?3c$Jd`K#E73>t6n>Yd@rOL;=HeXXkMJ(#f>&8w
      zrff9gA#$)OvKBmmgFNNF4fipLDR^)mX-uO)*@{ztdW}wNaD&cYr<I0BWb+EHa;4yn
      zx!lq`gIgV9aZx1QK$?q(^MQy`AOdeLZz8vhiMN(FarOU9)Pt_{cFDwMlBr_7_Kv%F
      Yr*er)_j}L%zmE?9_mK#i0v|&D3rU&Il>h($
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f43058ef1429801ff7aa32d344326cd70c63c1f5
      GIT binary patch
      literal 1638
      zcwUW^&rcIU6vw}>{8(sLD8GuJARt01l?6pnil`J2Oi>aL6K_iyamjYu>@HyZAN&LS
      z3pkq~L=T3O2QS|BtkD?HYBa_-+oiO@2#1}SH}igc=Dj!j_Rp)=0ERHDAV3&c(>L_T
      znzLzGt6I*~A8O0GW2ChSInD`d{oZW1oMv=u#T2%Jaza?zXr|5<cbC^h+Eq|VXfO68
      zHiYGB(lBK>uCRnnsB|A0PWK?8J9Tu>1nZ9(mf?;QdZWiN=vyL`C$lS}8iW%n6jTLK
      zhFTTX2ouVpQlU0wSmMrlW?9&a`m!kq^{H%HH<xtVkg~s7E>Q`C$B0{;9fnpjEGBg;
      zEljaO=qN=$NXwL5F>{b%PpW7^gis@GCxyeNX;)ekqqP0kK{eWNMnOBF>u6LJ9q1%f
      z$uP67$Pk)KoZp`F4-yK_66y|}1<{3bDtgdMs9qKBylyiDArkHL9BKNdt0l9Rt8<p^
      zgjDZS5ko)U&2Sd8xfJu8(vw$@2MW#;8V`k;(Cr}N&{Pa!h&edYf|nB`Yt3<iO>QAS
      z;=bJi52h&9N`!C`mlO<h8IICbaalG=P1+Q?T{u#3g)djaH=oU|=kmE2fySMZ@ov*_
      zIFb9!u;7<dUTIv#b=)9?oc$}wGB-zyvzN(bt^M8@0k{ACW3~S=bV^z^-+Ghsbp#2)
      zh3vYW7So38{&10v_kZA<%vxO0q^UcO;D-?^^2ANW)#R@N6b{R0$G?{f1f*l$4Y4%L
      zQh?`Rtp5en*e+_GvlKubkCm(gdWU*mt8&d&4QS+<(1eKZVchpn8SCFc^MQ3x?$Ucy
      z&<D>$B(LRrkgHalVjm=5nD6VU#|tE4+fcW0dJkQ5@f~!(K|fE?XK0er9(Wvhi3@}+
      z)aQ3bc5v0(IRI$o5TK6;(I?c?XSC24ZuhSkrEeZkM?O>mDB%NzxVJ}H3h;WYfcAuC
      zsUI&zW2QQviKlB@sPTDtx_Q77;k1LkGs_QV`H2qt#Vo&zIN}A4c!8rc&k+U}Y{KX0
      d@i{o%yGZ`KSOM>w^2TZ0@`@o7-G&(i{sIJagxLT9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuKeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MenuKeyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa5700809966189fd36ff6f278da1dc9f67be419
      GIT binary patch
      literal 1125
      zcwUWDO;6NN6g{sqOr=(+sQ9e|3<5)9CF)A!LV|JP2u5KR?A~;)@JQ#iX*&pe*RK5m
      z{s9+;#Dzb=A7#9+G=`ZNI*a#lZ|^zxyz^dv|M~d~z#5ipSORMY@=zZ6=_jT4{5X^!
      z{jN+^;J-BUThfD_R>LfB==inNy^s<cRRPby{7^Dzt9w8}W}_xBcb1F}NoRh6ZL2gR
      zO^HA)+gEAhkwBwe-ufBWKUZ31F9epB#{sN#1gh&%k0v2-$%Tyz4l0;-F$qtgvTO>b
      z+e*{spx>orTXsVdm}y6W3_CJWCN7dyBURw>7=1@PV%<~y)6Bbs(v*4v3&Z+{?Ab6u
      zu3d27dRZZ#pkRMbA<3NHEi&83u?d}xqk!T}MLM-{S732Z5BwmMX&TFH-`|X~RzD7j
      zK^gV_)e7v6<?<LcqmHa}9KMmdxd(^keTW80K(CbX**gP!XqfplEzPfG-RLDgz@or>
      zc}q5ZxGCz~vch8m!t=~q;FmuE%V^;2MUI|uWbx`WSAW25o?z-bM;0#gT;m#8pE1LG
      z*X$W}1y^|$xQ5w+;b~saxl!Pk95{RWu>hLgb==@t;AT0+*Aj|b`M2Agt8#Sbe6nxn
      lk$GTK?iG3-a81SFnyV+c|9?ZQe9YzZJQjf5QvR(C`Y)g${e=Jk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5d9207097eecf6b49ba998027105a7a5353cbba
      GIT binary patch
      literal 3272
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$SelectMenuAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI$SelectMenuAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..523ab53d1020ea6dcf6c35479bd8a16c967344db
      GIT binary patch
      literal 1439
      zcwUWETTc^F5dIF`vb3yFK)`Yl#42sMEOPNe0fh!lNsE{&iK3Cy_5e$^+h%tQ@@IVX
      z-2{=CNPPCepJbe~Z4{{pX?k{UXXg86XZHKgFDC%*AgQ8(VQQD}@prnjZ&=%U+2mV#
      zjypzPUy^4=Sd|y4NLH94?@DDc?;0gbg~HHt`r=~Fac!P=tA2(?cgJud6AY2`#rYEy
      zKWA8myTC9Uz08H!I)jod6+{3G%^Lh@48n&i8dS6}_@XkPHEmd8wNlIp`#H~<f}uTK
      z%5!s_+lJI@Mnytpn7KsVx<(N4R_;k_!rm&`MNwcFs8Z1RzN?EpVYzxWcv;E>J%BD;
      zQ_;;Zba6=yVe~LG6-i6EqR7zw7tobV&5=;i$Iw>i3*tHkRSYl;p7u#sl?@@waEosX
      zTf+?uF|-uK7O$9Y%}Vbu8cSbvHzDgpG~B{%>dCfns{x|0#@!u;zG!TtF2}Mdin1jt
      zqD1Q)ZxC^esu*Did0jO*`LhQOQPwbqafSf5ZGMn1l@A!=wcdMCPjkBjA(8rrDHU4}
      zq8Aey?ZG62Mu68!<w{u=rqMn_c;&axqdBc%26u_3bCza*^n8|bB>mnzP&@uNAvBUj
      z4@O7*n<nSb#qWYLls!B>=fh!8EwNvP9n6+0c3wO-<UWK>P2ae@P3=ipmavm1cN{^h
      z5<0sE7^F4y(MN@aLUI>LYM{T0Cb9=enkHRZg7J}0bbN;P(Ti!NvyozeX9&@$d2$eK
      zXqVa0fvdF)KWceb<A(?yqVpSiGsoy(9XrC!StYETyvIyfK9$1c=m*54wD}dov;MH+
      z3;TVfACr}|lhGsS*|D(y2vdJh#HlLq63y5^3to}!H9GMI!+1+0vWa<cJV6c_6g;F0
      zRWvoEQo4ux@?(S~9$?nX`jGZ1L4D~Y%N%7;C{rKZoF^^~<dwA_VbNpE=+}iM;1`Em
      BcD4Wj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicMenuUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ebf02b3557e64798a8ee1e511f149de663acda5
      GIT binary patch
      literal 6078
      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
      R#{big*0NxY?KIM=eg-b|U6lX;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e2fdfbf5ec2bbfee60f152689669bda2c54d849d
      GIT binary patch
      literal 1325
      zcwU`S+foxj5IwWGYzPZ1fp8T;2)bY-2Jr&H3q;hE!2l{{iYlsxWC^RwZfbYAJ^19S
      z`51i&RciSGew1a;1_6Nw%A}@ey8BG`Ilc4i_qU$_(pZooF^s?GyL><8?ip4kRW<o$
      zYJ<B*DK#%_q3Rj7wZtv`Z7z|P5oDOUG=5QcU0%_1CEH>M&l;BDJz@xGW2+3otX<Zl
      z2%t$p2vLS<E&o4-Gon~q-mvsnJKGz&^M-GjIzudPm$<pg9Ygp>!JxNgxD3h5H%ez1
      znyTEeyoQKmgJg>Dd8w?uU9~OU@-io}=MJxK86`K9%Z;tdh%u<gxh2~?sMuB%?dTMm
      z;|vjPEw?71QFNnMMh`>#xmpVP&`&fxhg+`6JrWYq{$3hTa2118siJ#X+q4~$u8o~0
      zNwG{5u3<#RFhlFV83hT9(kEG2cuG{yUK0&&D9|uQ4cy}f9oku7gUd|?N!(&+-ZV_}
      zNG(JB6#6Jgc)=*8;I`-<n$OQ=Uy2Ho3hrQvnw1^Cx1yIk2AQM^u?(!l(0S4LDODj>
      z7kmZE?9<B8Iv|y{C>T3WhbXvwS1&U}U)wuQNq=UD=hAiVJxqwJ3`)+jbSG<a*VXAg
      zwJlgB({|}GE$ZHuU6w(^)GqtRXa+<L;wRAxAxyqZrz!Fo?cs5Dh{zW|-%K_ta8itr
      z#DsjMfkF#fX(u{R8x`0fSy8F>9qmOm@*`RdsZE7qSnV$qWi?SKMubs)UzI84V*&yb
      z6tR#<hlP=a8}Si`=$Hv52jamxx{`HVnF%MqVyKSm$=*;M<K#>TM{QA6H7eJUPWFaH
      zV8Dw9J-TxuWKz(Vx}Ztj$kV<o_28Y<hjpnRx-@_f(jXjZ2p^?ke3C}+SxWeVUo=D=
      z2^OcjxaSX{hWmKnkFkbn%=lxiAw#DimN85Jhcvczr0@u%G_n95`)r<I&L1rEs{k>~
      JlMNyZ`~hwdEj|DM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b829634fa12cc7b0be78b8741bbb02f91890699a
      GIT binary patch
      literal 1389
      zcwU`SSx?kZ6#i~!DGUY5G9Wr2Drmt%0YR1l6ozdgIK+iy!qa6aLrrNX)3W^v;|otF
      zCcesxJ`9N(e}F&Acy4D{1RjV@?&-bfeCM3+EWiJJ{{>(WOEM&e-gkVD9~j=g<>ZZm
      z&9{sV?pZlwR>(}jw_InHJLcPT*N}`b!|;vqE2ii1yqV6q4nuU(ax8zEA*A)JF@#g@
      zrWr#B)e0hrF^p@={}VVVg4Hiuj`?zTXTvPM;TyKe(75d8xV^@UmUvf`VSn5581$Pb
      z8cH%$7r5p4<s$SlNrUhEM#|kOxQ^-g$#dOekr%eDoR>_ed)8uTM6--0hK4Hu1#z@c
      zY`@4I&*na{i)g1#w-mJDHbYh3^i!_w7O5Vs=VE5kC99D@hm3ZHx_>PS?xK_W{AzxV
      zLA~rI65Lnt09};8J4?`{T?Ur9JXG)q8bP-#+s^E9n?WX`f~p|UtKhLn7MWe1Nxcvb
      zeG2*mhs`427Y;H8h{jp)Ro6buyG{%ShQ#Qf5L8=Fub&n_qTne;8ES-o1<Vk?K(C?<
      zCeLyV&DYI@OnIv6n$eKufKHmuArbfZp1DayZMeSg?xe-)T*<@`d+qKPbLN62_Ne8`
      zqVx+F1|{t{W-(=R&ogP!>gS!D?RvCjE2h8gZpv6>&~CbX7yu0s;*;n^5T&<Fw_$oS
      z`bT@&397yZ_8O8gfs-^s5)*nWWfW>rM}MLNwH$#hkQ9-Q_4atUga*BY)`^Jz4R=bo
      zr-wpnm)ccAHz|6ALRHnMESI4FfRR<Je#WvPwLXlULkGufyRvf7%-Rtcd-)i_C+
      zWCg7VbV8sL0^K3d9Ri&Q(1`%85c&jz6H&b_TEej277@wY{dm|Xj^}kwh<YR)vebuK
      zX#maA5IUq`bW0;Jq)~8b4DY3Je4zW0G=Y!OBtA=1_##aQeOW5kUg?XtjbS|K)iK3R
      y2Hif!B&LGyA7h$sVM2exGjvjSkI;hWn4!*wFdMK+VJ_%D3!;Fwc%Eb!3&3C4gF5a2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$3.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..739bf32ff02566340a3ae1a0eb49ac54f4559994
      GIT binary patch
      literal 1406
      zcwU`TTT|0O6#jN;n^K~LOHoj~g0>i~3Mx=VY2^|r21UwrcyTGQ#0g2KiGUA0`Rt4{
      zzRHi#hdQH<KfoX5cs8x5zyo7u_HxdC=R4n?J^AtT%Xa`bU?|`WLodaq*v|M{wp+<m
      z9q}TwDtx<~$;sKQ2Daxe2-jLN28I<x7)FkapSOHpR4k+HxeT$pwrd9y3@xd2ks*@z
      z)~p0t(5fPe1jAUW@IS;^N!DJlUF-3yja94mOsqN<LubJ&3#TY*wzQkhNU(1E4EoU%
      z4QClztHO4J#wGNI$c)$uGI?*K>baI1WdHbPYNEPsm;J0^q>Bl3qFX^1L&pJtiX?i7
      zJE#fQcSJzyqN(3OCsp*Kk0D;Mg1qN=HM&nK{dZ>aWm|C?XB6}^9RK%3#aW!Af|sTW
      z1#_7}+aD=&Tu^Zl1C+zx%h8qE4@?&oTq1%!_k!oVu6S+&gGkADOA|qA#aQ{R{E7-4
      zR~gz~*pAZ#GbH~aZaRrt>d&aSF11E;g~|M!WVoqfIAmC>iLJeKow%jqHttY5={Glp
      z!=O;XWMT$ZX6QcbW$36v7dzyE=wzFQLE|;$_r<2QM(hDKj9Y1R&;iZVLDqJeGA9<j
      zSGBS=ZA)O!fws9OBN<e~b*)<75x#Fx+qF-*WykZW=jN?o-CI*I%aA&1D^i{4*Ma;v
      zjVNMdE3_LSo6#B@VxJNJ7@oJ$oRB!4BP1yyTWz3l4996DInWvm%%C|=zFoaP8L6W~
      zuj9mcRR4rib)5f-!BXs7q7>0O%~DhwFs0E#Ys2`A%i}S<H&(|G1zc+eC?TfZq$o`S
      zyUkKeOPURLT)O+DyHC2~rXoocy;rH@hOTMa8HIKudT*52^!^|j2}snRi{(f-_%swg
      zgJXOa-TV;-`5cC69pwc~@W+_q3wX|-V4Kz*{uFQcBHr>Pyyr!H;LBk_o;EJsEQs8V
      zVk|7uF2<1!%e;%bxEGdv7ZbFL5c(bN;~bTB6c!#}l1jQmc8+!mA@iZmhnNbVfQ5XZ
      L{+*^df*If!s)Is;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$4.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..004c25063cfea4cc8ae52e305d60a5618f63f084
      GIT binary patch
      literal 1282
      zcwU`SOH&g;5dLQJSO`m4p7Ibx4H|GIsQ7>&Dk-F*0W3r=9%R@o$>OpbcNYS8&sJIG
      z)%*uN#3~Q|0DqKa&j#dqpxmmN?e6)y`<rk2_n)7?0NlY-1)O1QOYDlhj9;~!Ql?^y
      z&CG`IEh950_vK1pxy~!$m~Zl_Nd-}c$qVBbP2U$KGjF&KLwv?^tYDTQk{(@Si00g)
      znLq^1Dq=`5Or;C|Q#dP&wG}MKT-w>*Fuhf=VVevc1=kSvn(!>?9|WU8+433mi#M9g
      zGBj6&<phmO=naw?Q4KOVce~;`rW0h3Vhf(Alr6*0=JTU#33Q-KK_^4|8Gwpz^ib`<
      z6OM0-fY`;-he^FE`q0nNR5F8{Yr7uZCp~(+GsUvaxQrnMgAB=&Cn~OBnCdO8%+D_|
      zXr~ipi)$*bBSkIze=R!Gr-2PNH&on2nxLDOZLgR{z@QLSNmf!AQ*kS7H&=L;dnprc
      zs~8Uxik_%0?+RN6CsZ1^!=QXF24*mHou?-qm59$dveL;Otvs!LYUztzv&fKm?e2Jn
      z`P`C^+;ip?$7LM`HSaj4m$QZMn=}P&^NwM=K8?Vl8I;|kf+q~=i%te6K$8slaau9N
      z$ydmlB%jegKE{5a>05Z-LVH5u_*+5}6Y|vt3av=epXfkqRA94VHK3*sc1P=I*Xy`6
      z9n-&KppL70B%-CXR2?G}7?lC7C8p6=hpubMCM}^Qq<M%YKc)4bfKw<bK^a}^CA(eg
      z3GD&0yAEuM9kcu5aapo2Ci4e_?r1=)j&AmXUKjiw6uypDF3`md3~>`9yo3o}MwV}3
      zj=#qu-^MC;vCcoh<{tLAkB@u@pLi8t_#VFU{ZN_N#_bQ3k=9+@3)QNTy7xo9Yj}W%
      kq5d^IA}dPh&zQn6X&1qC$SsSRP<IyQf>=JLJxcZQ7yip0g8%>k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8f7fce475079107b01beff3ba3dd14573dd3ea34
      GIT binary patch
      literal 2178
      zcwUWG{ZCtE6n<W4x#e=lM`6rv%uPktmW^)1PdYZC16Sw(EtD_6Zriu);^p4%-dn)L
      z=&ybxerra|Ow<_S51K65Ix`c3F)q>Q{v_jhZwmzqN}Ar@_j%7b?>WzT-UEOBb8j8M
      zIXDt(82T2}C3PiYFKfnpB(JNvNLsbEOk_Yj$MTM58sn<LC*z$11;;Us{)~VUn(c6d
      zTM|4B%_2lZS1G_)dVyysa2>;O7gd*?2w&oc6WQs=(2#cH#f>aqVPJ8FI_H{Zcb;Vk
      zCk~oal)NrzhUQ#k=nfv-EgniScw%Oj*Mp%+K|N#{wP;b$06#-*Fq9HIZ3-m#$ReQ`
      ze6+Bb=GKIo);WVeVP;f4rCOR;mqCxHfZ@`C6WNngDym6!k#TP2Oly&68BUa{t0Htz
      zyhlSR2^|bAl}^MBhtG3M#xXoBiaJ5r1>>TsNAQ@0M;U?#O;SN89%qovEsP<sqr~Bg
      zc~r(Jgd_wRj_hNiAdD`GH_x3CNR%B8hUOBxbwshwAR?ig;pqOwD>#dD4D}Q)X%?&u
      zW!DxARR@#M!_c}TrxN=z&f_TsPvaQ|iK0yK6=!#hq+^js)Q9I7YQ{!nMA0YV!VdA5
      zY!qC?C6Xn-UQl(nvg%Yqvp)2bO-wa1T=yYHiksoK4}%na)D#rHpx_GVQuu7{q*T4Y
      z_lcB}si7kZ5<<337ANz#kuQ{dWQ<~5!dRKV&AOA~Iq7J+=4jkj@FHF!K@*rYmxoL%
      zW-jJUgP3JFwM}(fa5Pi_r(7rEc49ZTmo-&4=Vc_3QZOa5ld_tfH*GFqW>-SPLamme
      z>O+>g=w>~q;AOl*Sy4awi6q-Gt+8B8S8bv+x}69Yi~diVG1G8VP24RR(|Aq6>rhED
      zL{?0vjI!c#%!*5tVL0h}rMYU@k#Wn+bIW-%#T|2SCBt30(zK#(bo|$SWbiJPn&z+W
      z88KmQ>b`Xk)r&deN^rYxS%4JSTz2PYOH~s{M4FM?%xrIN$w)5Uk|9k@toEwg-YuLN
      zl(<31xa4xmvu&?IMarWy>FY%eJYrG;&COz#(jS-_!W*E_^AN2@XkAOcP2sLPXbj&)
      zbGYLUT5q|Ahw0hqZofmJ-l70+qn%dmv_~#Df`<V2O&lQt2XM3$nB5@1I@){i3y#gy
      z+{N*$;oE4ujgv(@F?!}c`~oMaRcx(cuB(XC8#rIYlf9mR$Ny{*y{k}!QLV5b==lod
      zEkgs<R+lS~XWOZ#ix?8GMGTjbpK(>3^ed99Xb5;VkSt=-KfSd(yMgImZ@_yWhXP(t
      z5wEVnGj)rq`wf5KFQm)-q+Jf)C2rnB8{VhY2Q(!<L=QefA3nwqKEXIX#SA_}2A@O6
      z7g)lV#OMvOUZvfyaFagY<7@ngZ&AcISjTsC${L;W1OCQOF6UQ>V`6iQ^9RU+Q#SSZ
      z9XZTXHf^|vYtV@I9-2A}c!OGhlm4I3u}E+0XodmPl|<g{?sZu7D^m<cg0aE=1-9rz
      A2mk;8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3c1beb71311fbea30911151e1abb618df8a30e9
      GIT binary patch
      literal 3303
      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
      WuKX*n7JRCFuHrKwM8Ag5(fSXSagLM#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42727bdb711a5f5d34f9eb8e4f6a1e4a0fd9c9cf
      GIT binary patch
      literal 953
      zcwU{7&2H2%6ot=CrW2Y@+o3Jx|F0dSDFPy-3JDEj!AL-)fg%-#wI?+hSE&=lE-mlG
      zh7}SE9)M?I%NDrK1gOd^sxE9FAN#xa`X=9ge)$UEJ~{zB!sf1cFAgJfpmZ7)nRpkC
      zgi%TK#LZiURk?m8w0skHUPxm^D&r*A0UCt1Bcn_(w>8?8i4D-K-9Pc%T|)Db(#k$2
      z_}z^mq0!HGWC$N~Ed)42SR5!VU+(XXWcgZ*GD%n(<cY|JqEv2Qn+-cwhVWo;nu>db
      zRw}KNZ`F<+SH;AH`PzIgRXVnW*+M97Cw1THR;eO!V55G%SL9l1+xzD|D@8F@iRs0$
      zdlw~ym1zVYrG(`vAfFua;5z67;bHf5Pum!VAj}cM?R>vX<WuF^wfY})&qe1x#9GU;
      zp9y2639v@!o-{3IIg%JRIIYiPhX1D-c<yWRZkBfuujJg@pAmjy;i1KI)0y-g^Q>Ew
      z3s}G+ul(cSYz^P7VZYt^cntk<1oi)-OD92pO+}ZnQlr~dHS8TL*ITH-&B<X6I&}`K
      zRWQPNTwubfi@3zWox04b(FXVAN}b>qukM!X$<^sS@v3pHny+(vfv|eeO{^pQ4LYU6
      AQ~&?~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$OptionPaneCloseAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$OptionPaneCloseAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0db21e4a23c65b7a55e402323b61242efcc85b40
      GIT binary patch
      literal 897
      zcwVJaZEMp|6n;+DHCc?Cn``&tbXBLOn;86D8P1|mscxVaL=bM$+nSLjCAr=FTYlL<
      zLHz8G63@LUbg(Icf!y<Q&w0*s&bdE-ef<vLF?MWNgxy1NEItRtNt_OYQ6dIGD2g}=
      zp6PRcq~a_+5UG6E*_s;dBrD`zq)i(Y!uolPy|7TZh*Wt`s6L6)SnU#K{AQ0(X=i=u
      zVg_>_W>F<9bmLUM9v_7=e=EX75|+AIB$A%UV{K2I74<1D2v58J$G61=h0zXVKFIPT
      z*(YrJ1~m{TDv-xARY4j2T<fi7&&49H+gO@(dU>3OWz-0BL#f_m<2+){%YL&2P6U(P
      z4-aLeS~gY)E9bj-Ib~{Njj%Y)>7+^yW$t1XH}t$Vco2R^Gpgg3hfOpHP9arKBx5dE
      z^DoxZL!UKl2^)XwlVD{d!dmwa+&I83J9`o9jnprU{E^Nic%3wrc{>qBAqyK#g8#2e
      z;}$Mm8yesT1pQh3^TT1=W-VYz+OvHI=Zm>^`K%h}M_l34D+5?wWl5OF!X)_vDh9N+
      zbBb#}P=EFC8&=<2XIMYQ%_-Qt3F^av<Q)$TXroM=fNJeF?l7#w_FZgoriFV3;XWR)
      LbPZ1*+i-pZ|C`|l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..625d036f4b9b004020010e13dcd28c14031afbc2
      GIT binary patch
      literal 1430
      zcwUWENmCO+6#gC{6T*lvAc!b}pd?`=ptwd+i6CHDsz45U>Vy`D8hT=8g8DN&x^JbH
      zN2?U8Jop1V`+F>3PokItHHYbb`}Vz_Z$G|#1u%k)ff~Ztn%EHclKx#sttRuXxRuNb
      z-^nG%^*Nsp98WC>C9hBSFBH7IEClz{w}o1jQ$nq{vS6T&(5z!5T^1+jvuiRJ7^o-o
      zhSIDQ%1>7MW*k3|N)`z9!EMLyA0{L+)z*<>uk(&_f-%CeSoLo4WkOxrTagVQ>^5N_
      z5=AZcm}o#Vp*E%s_GBC-=ZfoDSy&QTR}!p@mlN)?C^(ug3+r^*giBRt-+6f4N>jc<
      zLFg;BwBy_+Hlzx;ktp_IzkyCd_rGmTbm0JZwJL*O+Bvb#S=wUp%ob>iL4g}cMbOQy
      zIXO>7(SySVdMltUS()fVKSLnz6otz(*c<yJPzn81{6+*vS*1~Ogu5tRmhvo?g<F&n
      z#0X|tRhA?O#=7)<vC521Xe={J_wy_mB1FA#m?fUq#VGN91jku<SE#_BR{3HO#VAf0
      zI7x_A3yq1>8voX!a+Dtk*G+rtc~9~5d>!qqiE~=tvQ68-+VdtZVC;8&IwGO7Vl8I2
      zlBJ@!gmD9x2_1hiF_G5UA{)YWRz$$jh`*ly?F4)LS|q))+o0tN7rkO3Cnp`fzwO(m
      zFr-}=mubcCGVKcAmm1t1*A~6}f@=BO1!`{A4~hRLHOx04%4Z{Uqs-Uv9Zd{=f|>Y?
      zrVpV_3!n9D19||9X;ahe)rvO0IU(B15x%o^E#J2WH_<U`TL(9B=n=+k>qtnPwXK1W
      z7`Cl=NDSE4U`TY^*0GS-Yg@^XFl}puiHGP)e1y4)6Q%2nzCI$giHlp+ox*M|<S};9
      z6Ex9NbkH;O&~wD;1@GERr05l{&}+=n8!XXV+@yDq^gisSr&Mvd8%<roL^vmbNn8zQ
      SG8JZ;#!T2Z!^^X}2KoubXn9uv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicOptionPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3cccaa7ed0004cb0b91a117f3835718f66927993
      GIT binary patch
      literal 14568
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPanelUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPanelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..899fbeaeb45aea4d5c091276c7e118e0799618b4
      GIT binary patch
      literal 1437
      zcwUuL+fEZv6kP{e+8L(6RHO)AKtyQ^jNlC|kU$NIrlJTm@d1<5_7p~jnL3@Sulg7M
      zg_i_~CPtr3{3zo-!*nbl38v|}?8{nf@3ZIE?=Rl~OkqBTHinTG{1ty=)L)zSrctwa
      z)hO}0SvD5s`h?rUT7M8jgrWafVBlql*SEMUD)Km5I0asgp<~vxO>dr|eJovMh~%A$
      zP|=P~4Kc(Sx(lW)mK!@I;jZzLB^Z(gr_8M)cTIT@j1h0ktdoGUE4U}5fSIvF3LfU2
      zotk3{+smboOADQ(Nda+ah@wNKQzt{TCe>2mCjl}jrd{{A<u_sQWa6T%?3{)^q+%E(
      znnQtpQzYjF4Ht2VY7bEFiz;te9@UpRg6*f|WaC(w{xyc)e+9&Gg`vkkPnLLjd((9q
      zb|sFhp|$F`qG=stP@7iUQ<1@V3|S&?MJ_nb_JUnm62j6jfk|Qx)aD(_aqH4Y*$gWu
      zw!^m@7ANbf=aTbOmUJ<W>kL{@jpJ5?D>Y7QxPhAti9p7p?_rqu4}RIm&W0U6rhJS$
      z8fN5U=%Ky&9Fp~(h8$A#RH3)YtFAf?w=9-SIi7m!)K5xY3=?)ceSb8xa@Oe7L1&tI
      zS{1q(v@_bHnLVf<>Cgr(2m+>&pjA5vK$oAcpc_3w@)AW$U+*XAKauzf_G}MlK0~Mb
      zhY+jF7qCFti<Fsf!R)2qSzjEDYJe#yOU9=%**)}Ue_-G}64~z<c$696#reMy`$!V7
      zOzUI1uRzCBvaR{>LkAFnWO*7QB5Dvt592Z+MC9xTl<RbBqg~G?N0Ot-Yx_uNlg2)#
      zj*@NA`kb1#0TorMWz#3?J4g=6be}@D^;THb0>#KEB_m7O#qGb)s_&@Li@a=sQ$jc;
      k&>oQk62Q&TE~BE^ecU|?^_D{4wLnEfsA#Bc*3X&y0|$yNH~;_u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPasswordFieldUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPasswordFieldUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee3247166ecb3e6390848cf5402c7ef023dc37fc
      GIT binary patch
      literal 900
      zcwUuJT~8B16g`(M?REu$iU=qwzE~i*0b-)5@*shzX-pHa36In5fJ3&s&Fnzyzk;VG
      zlJEokQN}ylwV_l<n1}l@bI!RR^ZU=QD*zjKRlpcw?L?f3uAg*NbnLf7apX5dq5}Vu
      zwKb6>ome;blnk5SzZ8%oyuOQYAiE|56Y?Kaq|7$KDX-KCxt+KvJvb;%U>teER8>Xt
      z+i9yI^?_)Fl2EF~fe7nDE1PGRIrBp$g!Sq@I<0W^Kuckmzf~S$8g9|w4P{G4rm`~n
      zR9CW7DPV@MH1hVZip6-C#v?n)EF<qKVMmvo5EgGo5!`;ic5&~9<-YF3t#%xZ_M0wY
      z@W@kpAQTA{5aw@_Aj}*~Q`2!<YV)(E<&o+VX3KqPKNJk#H=0=$7cU5tL#rit`|+s`
      z<esvBv+%#=zp+AC=3X4wljDd#oNa-#E%wBIe6<Jnf`c)5Y(4hCCWGJN0Y?*k5c^5?
      zgol{Q1U|B?#TG9yeYn;`>3krPPf71nfw?{?6R^=^zT^Gi3Fb4YO~zP;dkH%1Vd19I
      j_O(`AEaGW8%`+@z{Pk=Wr}X?L_475VGnnFKidy~)>7mZ=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db1675d369098a14504a11e20a3f46c50eed88b9
      GIT binary patch
      literal 1533
      zcwUuL?M@Rx6g`96Zd+Hu4^UAN6{V#>vEXMBgyKiB5EZFnG<MmJ?U?QEW_N4VNAW2%
      zAz&mi@vm>=3mES#&04{lxIgZlx%ce3_nw*g{`1RM0GF_&qKjeTwf;tboAH{$s%9Kh
      zf0bF+Jz-?#rF~#K4QGj4jTP?buI}6JYC(m<F#NB-+Q1CaX<-R}hGAbaRbo)`c7-Rf
      z4{;3<L>an^!s5$~`Z{+X>+2?GI9#+1-7M*@ko#6p@oU0k$QJ*%-5f*AaJlYt+0C`&
      z9|VheyYAQ)xBOgcFLRhAmIN5$49s9S-id-C;^@Ni8OC?YWb~$=x$EjqO&DITW95>H
      zK8C?R(%~pW;VdeSlQ<#oBX0P*RW(V?V~8hk5~o$1V(4$@S&??t7pCw9_cRRP3~`XW
      zM#CgY3YNv)IZ}sVzN0e5y(L>}?FuGv7Uxx*V>q;DdJRLkKu1yKe%>~1m%2!{kp!_^
      zoF*C8kVJ~4Y>J9sBgG3cn$|EXqwKBRjcdrrU9`qUwdTvvB@NjC@Ged#HKpM)uF#3q
      zC~ry(L(lGNvfXPMuHy#v<%NA6N$v)wN)kG);U?%F$11Mgl$Vx4O%~`&m1N0V8s=ol
      zs8`b~c9S}(64zg@0cEJl(Z2~uQ`bdhZh@L5ogTRS6?a`;SrPAfc&9pE-GFOB)Vbve
      z+ser|wy5DQ?lB}*?1pRbJ3_vsfsRjQT++~_^j0B1g;w-N$*Q!QB+tl4Mz#?9M2jvY
      z$R@~xlu<B){j}0{K;#dQkK-V^TLf7`%3N$4Y;6lYA48645HGa-AHyLWCQlOLXzTwU
      zgo}{(M!%u=1C&qOI7U1tmPf}vqyI^I6N692HgGXwN;e|SSi~edQNE(2M>a6IiK}Uu
      z>Q$tb*mAG3iJVN%{!S|8wzN_v!0&Oh)F7}*4V9?Lr|7{N`tXci-*XJ(1*Y&4(<tL1
      z)+uAaMI{((YNz#<EOIrEd@!mPjM_y^1{QFew4cH(?jRNDPv_Sf{{~^C)X|aj77Dw?
      VbAl>;JBYAKG~kx!c0a%ue*x+RW#Rw;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$KeyboardHelper.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$KeyboardHelper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46a97d0027f91c6729ce0b53ac1826cab8e4658b
      GIT binary patch
      literal 3368
      zcwUWGU2q%K75?tkN*l}T*rZOJ4Yr9>lgP3a#f}M70hidZi4)s#NaBD4v}=2lY>-xp
      zer#xgwB`SwLSV+gFg$d~bcP2qgB99NJ<hZfX38UP^r<uO2*U$I%P=8)cO^TPVo^V6
      z@7=rS=R4<o=Un~khriAP=)@a3q`<Dz*0l9dG&AG4C!?vjbs{=pWt_=quX>IqQ@PZz
      z?dFaSwjQt_o=95hseN`lWv6v$0(D9^8n>u<aN@K*nbi>x*u31LJ#D+$Xx}Ny*h5Yx
      zYrA%uig7EGJ#5FRVo!})*;4|Wjt?!@Q%?Kic7ocw1*(<&Kyosdv8M#;J;|swL&M2L
      zD(M!4Y8`hv`JkP?JDJRmTCOe7P-1fb;s?qGvZtI(>kfgop;gAOlx}xiC)*>?5n8oY
      z+n9jXmz=VzAn-E-HCP*j59<xoVuOG$)HbGLBcWCZUa4&|pkoaK9CBQHB$t@5(?_g{
      zI0IZal$^BUV^-Qx@5Mt+#U^muYB82omVp|Xtd+G3MPt6Vl!m*!r2T5oAcNR~RvkYV
      zX!=P}12<!<K-Eb*dpMa(PZDl@s8ECDJld@zR7NC)wZIrB=?+`2b<$1;u?=AZ?dV`~
      zl*tlCHHO+Mb1KNZZZ{AGIk1+hduVss_Oc?-9jdHYN|^mid8EZIbnDnDuwi8h1Giuo
      zx$I;-CKrlD0*osxw;A{aVgfZq68E3US#ehJmQY0`l_ApN?dZ{QhrqT~lEA<(6(1XO
      zuH&-$@%SPs_IL@;3?@=>9eY@=lHinbuf=K5Cvd}cUv%`BXJe^hgXqOw2KHf)d}9HY
      zu#oSepG@)r149@V2vTdXkS%&yWKro<&~cDmQetc%Z6)j=MsUc$-8jsG(9X4)VU{~z
      zni@KevV}{&?MbELHbXgrLqXhwaUJ&--Id}na2)p)Xg_MDd2k(IH*2xE(+uzd{94Da
      zijCxbT`Yx1n<DiMSeOuKrp3NoTA5r)N}y%Ao0UX7k5dM0mC_oT^FAJ&As97#P8z5}
      zFbD?^>Nw5XERX-NdLGR>aVP888I{hsKqRzMAu1(R`EU(X!w4b;66uV<`V~bDWWc-`
      zY5PphF5U(lcA@bC-KP!AC<bq;%wGY&H;@Ew`ac7WeVNE4IQg#YvGNf_QNfAfPZcJ|
      z#!AE$(49rDmI*Dt!^9**N_pceV0j~nXAXbt5{<5j$*kD-)o8%82A)%uR4uh+nBmy*
      zPVd<zu%-y4^V*iDQ>(wzRx4P3v8Zc8;E(F+t7H2XE`R|?jluQhy4#fxhB4@ph<&{N
      zGd8Qew$vgv)1Hq%KQu^nN%D`4RD|_bk_xD+Q+F=k{XC&#O5eb@JNYKLt_!!%@o^FL
      zVc*};FbDI3r+XuxK_wx+M3wj&jeIw#OAR!knJZc3`KLA6N&h;JTH5nyS-`g8jy&2%
      z!jX%J#57a8jA~QMqjMHl!XLt%pT)KaA6vo^Uza-YbzQ`*ZxY6bSeM7{MI@f=o0yBt
      zzk?4<?PGLC=Kb$NX<fpdvuKHE-1N?3BR31!8}pm~1@z`I5Yx`%&;{jle=J}IE@5OA
      zb!K1zBYBL*{O8fF4v);DNgW=^V@w_1WClKlcEJqfajc-WclPR6N`j`tAL0HyCg*S>
      zZ2CXKsW~KwFL4=Rwa`=YSOI?SJQ|8o)<y_FxENKWB)PAml?nTn|7-q>8u35Wi|^1P
      zzQ=ZP1wG;_`kDJ-sbO4l8p<lTGKd*jgR^oiUXbhXqHMr9xe;&6P585H#0A-mdD)78
      z$gTLN4B->G1)s_=K9f=WTkgPrxPC5o;!D|$Z{#jqk+%w6#zejB5jV;{v03i*ihM$m
      zN3;}+tacCKVU~G~F!3Awmgs9lJsu&|e8gOXNAVbof0iUWi{FuC@A15_``gm)GenBJ
      za~Qzy=^;Qn{O?gD<2k<hxrW7X`@A;Qa~@`UQ<q}SC3MZA%G4InHT;C{YSUZLJ1$@S
      zqT_?5JT@!h$$gM=5J7nWwQ>jzas*9$56MGbOx*?Ri!pKc2jUmB5W?fcuUe-CPvA)+
      zu4S`4g{QrS;y;oi!ao%e#@hdaX9Pw%yd|bZJb={^;v?5aihyf8z>0iY#MIt{Uwhy8
      zei`C1=<*oR-h&PDUNp;bY?a5cL*BOxacl{349^pj@OCe7rx5SNiwJs%+wl^2S{=B5
      rxrlfxWqe!%;r5Go<r?n-$_ksh(K}JUSH0(Jtb%HJ&RX6kuS5O_y$okj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$NavigateAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$NavigateAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5cbd4e705f0178377e6da61a42bdefc470842f2
      GIT binary patch
      literal 6719
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$PopupMenuHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$PopupMenuHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a1f6381d8645c88b33d71a74de7ed19c67ef3758
      GIT binary patch
      literal 2391
      zcwUWFU0WMP6n-bO$(FFCq4E`^5@~2dfX0?uD^ye>6)*v8_|Vp>OES={o83Ig0=@TE
      zy{Fb6;KxlLYrrqm8!!A(KAzbm8z8~v$+NRFv**0$eb1aZ`RCtX4gp++uENJ~^P#?@
      zKT4E#4Qne=F!jyEhF&tVi5WRA+lB2yT3Fkw^HFa;r&~Ew6jdk;A?ckkb@E->cqp=t
      ziU7mKqnKhxSWd$8P8lUfSfa=fa2^<?=qn5(sTMg*k<%^1GMs6Ku~^GqBWnyw($0xC
      zFr3w(;!F@6=QOk-#K2?H;9SbE#Nu{-Lljr^4O1|jPuW@BT+@q&Tvs<0Nt$7@)!+?j
      zBMqH}+Fnw(vceQOhT-FKP9$wsE=flaedt#aW{4cMmL?g($vTE@rFBc+5=9L!Vt}C|
      zCpPtM)2Z$<L}SO(-OP7N#(7D@piEC^))acNVj^<Oy7Pd+@A6|9dOm3eHD8N8^!&&S
      z173F44bz+vSvxQ0tsSFe&;hjJ5@ISYGhA-*05pss&d}zeGV~pzvEUh#>@i$XG0xD_
      z+(JVFRItG<;SeSJGbyU4n$U#4>m-tPzF=EYcM#WbUBv`L|52=r99JE~G#o>eG`xx%
      zlp(^qW80L_c&r&#(*QCRH#NMDNjf9PF030?&fcwGuc?+xbmgQok-vp$6>rcbXpF4k
      zO}xd>TNHVFM|j)y$iqiORBEEZ$i0)QQOjXhGl6thi<Fe4Z8^H(0{1s5jkQW)NXEA{
      zyepY?>A74(L|M{Q3=4RV?mFfBctH=uM(#Bf=d3C6l8A~l$vx$(teGVZ%Xpvo60R4R
      zx<qdcwV^ipkkPP$RpL@Q$>l=qbSiEuE4XI;r(4klrPLINL3h*m44bWY&sGf^JDu!T
      z3?Ioh8>CB<vA2s^aodn>wELv@6&Zy=o44q!lBQlN38Ei5iHQgya(et=p^)t4^jGGG
      zPllk~c3NGhm5<)R_~=j2;```$N-G~aX$+7J_~$rJb4||4>jiYtn<$~Dim>Fy0NM`F
      zn;t9ULLHz(e&Am~;a}nm|H=i5RE(=Yau&hM1fdYIAzUO+>bf5IBU&rcEB*}HGYpq8
      znjSmA)y46@(J@}xe65VBddwce0pCMAe~b|S8eRMe2KhH`?05ysiyf)PZYMc!V}=ky
      z^h?rACheUX3&zP$CHwsUvzVm}Oe$fejJd<dnDPIP)TBS`=T)za=e;-?2nP=LFc=Q-
      zYkwiNhwiXnk&8c(%7m4$zl=L|NjGqoBz;Sgz9UKBlcXO=(o;nFj~M4=Oz?e7^8+mK
      zpK+J}3c-Ja$^URA&sB(flJlPA4Nvm@s^lo<-6K#iL5*?^>y*j`+W7z<A`p^Cb+>vf
      hm&i{ZV<0}dk9*B4#^*lw-SK050=PBD$oEtD{sW+baIF9U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$TopWindowListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI$TopWindowListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e6ac311fbc6df61848138e4a410fce0da622aa77
      GIT binary patch
      literal 1481
      zcwUWDO>fgc5PfThxCy3B%lBtP2yL2#x=3755C<X<l@eN!QqG%rn{4ISk?kaif5icc
      zIB-TBfirLh&cF#V>m;q9k?MojJL7rp&AuJK|MTW8fSXt|pfTLu<pciA3Wm~cTRn&G
      zSWO<tmUU09n_jQqs|&aPWIey-^`1)C_J%bXgu)fRfdoTF!7Yaqc%!*1TA_g?LpI9t
      zVQ7hga6_x=b$gymy9t&d8FpllUt?IQ#q6L$pgYo);a!GuAvS7dn;}v4Y>@)P2@?ip
      z($FzyB83ctUQh*dHR*~+{ccnETfFHAhJ~8f;?6errHaSNgld|h5?B1NX>^E8YvRUZ
      z5y<DlX2^|>GtII4Dx^cCaSj&@oFAJz5m!15;gIptbL-sYZQ+}^h)WE!w%Fl)Cmd%P
      z@`ZoBo`$U`ohv35l{fP(M{s{sBJ52bb{H7huy{nb3`Tb%nmbyOTHUv#?hTY72Z=_<
      z8@hBs`-z9rwgqL{@kbzT;gsuA#?y?dVM#Nj8(!aUi3d^*!|DIwt4fB!Tz3gsb$Aen
      zz`!cQa!h@4{7?tTlD<yQF|bTVO)vetNocAe${wfa7DXDp)5X$Dn8iKJzMx3Md{oH*
      z{T&u)Z>l|^PT~~3=>Rx0X4r@{fYfW8t(RZn@&UoD`k;S6LjQ;v{ZmAg9Tks>)Gmvw
      zM3JB-bGSxG8n*c4pNaenk$;U%emy?<HzNN|<UeAQFU2SSN#wtX{C7O^jLI#K$(M*p
      b)hCOkJrt(jm=-<7Xf2@(M0d_`0~WNuA8A&=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicPopupMenuUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9487aefacaa785ef246f87789673717a17511654
      GIT binary patch
      literal 6526
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$AncestorHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$AncestorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4afc274a60908e1982098bd17865722efecd5fb4
      GIT binary patch
      literal 1345
      zcwUv0%~I1)6vzLkKvP113IY|s04vf~2`Da{I*!1|h*Q6jg}dA4ikE2<CJE>RxL22s
      zZhZh}5N2HX06vuCxgmtM=vWrHH|Nax|ISBFe*OOO6Tmzc45SFRHpPy3YX@(XyJ2tD
      z#Vfli0#&n@^!dd1HhdWbOTvG#nqPElG6+5YzHpto^bK?qvRZD}1&be7H)Sm}kS0tu
      zL*<TiL;Fx%Q9&qO=@Zi7YZc_@2&GELHI!L)Te&K{Lzta8fv&Jl=w9|5*$YCy1p^rq
      zT^O{`i!7mQMh6U5lq(-?H>%QK6V<vT3{||EsILoOX*+gy>%s};&eOM#j@#%Lv1`$B
      zq(jKJcGEhvd)ne2dXdApfir|c$GI(>#W_OX){&Di-jeJ=lb~$k0wxSxB;@`TV__0g
      zJT4Wix{eH`-%zdyWi-Z@CfAs^a9NLaI0%IwF1o5ALgl$@s-Zu8Pt+V?^1mH(j>9oM
      zlMQc2I+|XzP}1}v_HVVrles?B;RJP(E$KY;*cUCVo4i@J-Y1h_KKHi$np{zOU&fBh
      zXLTZiwd(S(uv`~GAbFz(+n|_WWEVd@plnv}EdRJYNa-Bx?PF_!trXv8vGg5QaUTQU
      z*h=9PpJ|Q(-eHJOD|$CEjMID*Mlc!^p7N~;BgI`<yBOQU`A>{vV-J^(U;|tT@E-m6
      zz=)3#bo4+NL-pG<t}u=;li=^h_{;&Za6~jC|7ULNOA{@V&@u__YC^jiskwpnF26P*
      qC_&HxA`70_wHPtYF}js>v9yobzfUU_J#*1HkLyvfx{w@hAoT|;k3jbT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$Animator.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$Animator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..865f6e60f60581819ef5efa440059cae7a2cdde7
      GIT binary patch
      literal 960
      zcwUuKZBG+H5Ps&a_R4wCf=Wes6RLqW;gs-AV+0~elLkmYzVBTZSaRJnd&kSKGBHs}
      zFyROIql~lH3Lh}0eAwBY$;|USGqb;bUtI%ugO?s0!s>}Q6Bl82uJlp(IT43pBr+9;
      z8`kcc^vK98+YshcyRoiSPvoibP$JZ9U6=^2+KEnNoO>t}W{Rjd&qH}8bsnzAxk`0M
      zWx3SS5X$+n${Mc;t<KQAZ@KK9(kg#XSXsJ9-SPpUw3&A02neGAJXCzRs0J88jo>cX
      zglb1=xqaG;q}dlyA_)_nG#1H$Fv|LaV95$6tPM|pGcML&6~!EOr8!JZPj(4&{YLJL
      z>Z5(Lavx9e%)=C6d1%G}&uw3IrDG#|jMG=ZsBPVq7X;!)rvJxFi0(7s;ZtviVOt~2
      z+a34>e=j{XvD{L2#`U{(E0%!}v^9U9%|v9G<SkVGqG6t~Ts{v#wVGWp|7;hI1?T8P
      z_SV>Q`1YHv?+BWg82ieegK@TH&H=t)f^AT|eLTWrz6nn-IY9Wpw?(KlzajX6`fa^m
      z#IKn5XMr)<&l_Oa*ED8W8CcKk0PPj$xR$%wy2RYSwK&CjQP>467EHW7{t^v1e*h<V
      B@Ie3o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd22e2306088f0783e2c8f5dd471189a7e043bc6
      GIT binary patch
      literal 888
      zcwUuKTTc@~6#h=BUAtYRR_>tO3YL<vnwS^@@qq>-rco0Go@d*!9kNcFndS1gNI(-G
      z`~m(b!<lUp+8APe*mK+Sedo+K^ZU=wUjSaB;vqwLeJakyWoR#yZiU@gd<`RERU_PY
      z_LJ$fjI?%Nn4`mTtu1s*z7x6`OXDF+C^~Q$b2<DNoytbyAxBsqq?G4UCt(j-S2mGa
      z8bU5<D_ed+*s6~_f0to<N~`1zVY~7lxXoiiw$^FNJP6|fJUsL<hKT@q6bWM$*Dz66
      zT7EeD7D@9(M6o24>Yav&kA+b#?-#Rfal+2%<A-JALj*PviR@LIgw^4r4C-~@VqQOw
      zS<HKwBW#X5HoyWF35D)mkuX0r>iqy<*T*v~dsrgO-q#ag#p&f4*%eAB1Y$v!{;@s5
      z|J*q<4f$3%{bv5&blVZIEQgw(MlBZBN>+G$NH(6#7scNLP_gK4ke_gd^E`aE1<qb^
      zo?-7-w{8$rf8fzo+Vhxgj(dO;l-LGo?BfY0*%PKP-Djw=cMOH<HG*r*e8<x}3P1fN
      f*heYNbg#8f<Dylpr3B>^vyP1v#VYabJqO(ab=Tr7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$ComponentHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$ComponentHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d417d2251017a0d25a00401667a6023a7090582d
      GIT binary patch
      literal 1056
      zcwUuK$!^n76g}554l$-Rp-_fGN(m(c)F82f3W=s5B1IKq$d1K}{V1<WpCj8H#9tv1
      zRbl}vHmn$agfBqc=LU*MB~nYizT>&W@#mlKKLEImn?+cJyBlI#>;~zM((A#XFJ1*b
      zk*Y9QG4e?guO~81S48rnU2VmigIG(QJr+9Z%cKaKP%-s^*vSI9&7t5=(t}70GMNyZ
      z?6pd(w+PM7#J%ou*|O3qyH8lE9igt?CD^Svk|hvMcsK^fMFA&06fs38)J(#3M`^jX
      zwb_%&bJ6QdLb(%%qTdyXGWN)6o52aoleZr`5%1xLzkN?-s@}+mu&}?;VOM)-Oy0uz
      z_yhS<!Z}<h;yj@~@faR1VvgYT;@wp_kUC;a0<9XX%N{D2Croj$&5?s}+k_W9Ts5_}
      z(jjw4e1^(@h9ztqg`vq)$FEuMx=d@$ka?WoK8v@KP(D(Itl9DUCDVz|(AHWet-eT8
      z$#nYvqGFyg3w&zwee=JtR)A$%u)oCC9kwj~x{c<L#U8x3Y+0CQ>2MD42|i0N*Ik@K
      z*`VPxW=04vb41`$;~m@?oEc))Xx8vA&y@qvGHjM#80stQ-!O;od4se2AfpCGtKu4u
      k4IXxJ)M}A)%rZ`+xrghA4{GIaJ(mqM^P!n*rvC=4Uz7<50ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2f4640fcb28640b32aae782bc9811e9def09b816
      GIT binary patch
      literal 1491
      zcwUuM%Tg0T6g{0FLxurDKps&M1ThayKvB@3NFoSU3atWJu<L|2G&PxtGZR4F_#1qI
      zYpXC+xv*UOQI@xpSRqBwu$WHYN8fW!-`n~1`}+?7vsl;QV_4ef2mC1M9!jf_ESdaW
      zGRIw+Po~xS#<2^IaNRU_-mXuPRT7T(A+yJ=f>`6$t|=T19SlKLBx#a6`8u~R@}7oH
      zhKZ^-C%EM%o6lyY>j_IZ44vMdbf;z*;@P%|r0Ce9w50cpArZO6x#%`SN5<Y20WkC!
      z(9osBk3Itd1R4AhmC%=!me?p4bHdr;Ia4r%vUZ-E+uV`Lt~)yvafapg;alGyiRmph
      z1sEo4qFP?v%7L&vQleu7VGW}UWB<-Ia1GZ<RzY}wqZ_<PD1(t`w$Zmu&mje=E{xID
      zNNZPk!YN9NdqT%JZfTfkYI7~!z$B)q8{&PLn{*pjBWEhsCLtBwQB<c5+(Cq)n`mr^
      z!)<Ps&rzr!&=6zjZ@AO8ZIU=0QQS3f4+#b%SM$}&P~&z2n8AGwvkcL;J7VAg=7>|N
      z;baImb@bJl11TMku%Ka{VdSD51CJHKfOI$aY!%gsSIWSm8n6M^<Bqp%$s+fpZEeY-
      za8&%6fh83Wxt?8W4l^(kIR3wRV6ZRq5ZX_@U})9+F}zR@M`zGC?Xr^>t5Q9T;qyfj
      z3XZzAZqb|1nA~-R8kUx&Y1pWt^j!f92GtX#KPx|c3W>bkWX+M~qhCE1{{|y=ir%ke
      z`Or^mC*=SVAzF><UdI3i>6ZX8RIl*4UST0#!EoqC1vih8p#ANih*l6kMmTl?;{?eH
      z9v-7d85KPFLWtGf(*|Cc5P>pb9bgoPn8pz`^dsi+smfufhEwODcF(a)%0PP3bvDzK
      d<5%2c@l#}4Yw=aTmFl{RmsMRf8-%q6-ygYHh*JOn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f428c5e34ef84b726b5c173fe4e7798487cedd52
      GIT binary patch
      literal 13071
      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
      D7W2QY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8bc1dcd2f1d31069125f81fd5f89f904310e65ff
      GIT binary patch
      literal 1197
      zcwV)VT~8B16o%i^@2*v(fPASaDz++a5HCy?y?|g+Qw*`%M7=Q6?NG*Sck6Zv_^<Rv
      z5>5O8{wU*_?aD`?7%$k1IcH|h`^>vD=hyG=KLISEltqHD^ik}HJ-fTB{FdGE#FpI<
      zUFF)VW_%@@Dp>7l9rzp4?^U#Hzo}%AA}pLGJFF#SR+O*wGeWXdt`kygK~q{tB40on
      z8Nx_a`SNA2-H_pH(eNapSPfj^)kUbxJYG!cZPg_#SO43tL&&+I6j~ZPPfEuKFV=!~
      zC-9}Oo$^Wa!6s8I5b^|S5T=G92%{~jH^ZPKL;ZO(lv`?#Fkb4TZBKA{O^2*<a=1bm
      zJH;?FI$_|-Zg(T-b>;dFg9)DoZ2zrx`ed=IZD}g)Ly`0Tn8Ya7J=r!pCpK!*lde|m
      zLinO3L#JG~FoUaE%n~L}J-L8MTqC?Iotp!GbQN95<dA>o*Wk{WJ;MMaIzn#~W`<iK
      zWZV5S3G@H<MX+i?FLdQ|W%_b%c;h`ZEZpS2Ny2<7&bZ}y%<^oRBXLaM+ehvzCka?Q
      zS{#8DE`Ev&oE7>-94~Ur;}S+<z$30Sd$}K=xBIyK<$#fi)+<N!IgFwhSs253tY3@`
      zB#RS+(%KPeGCrE00aLN`1B24W&ix0A)2VNm9`x_>iOmS|xL+7UOm-b}5jc+<d^w3I
      Uo5!u_lJdBXJJCfgM8vy)0Aaf?BLDyZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicRadioButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicRadioButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb5d3d1c589d2009c41259aa0181697ea42ea435
      GIT binary patch
      literal 5547
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI$DefaultPressAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI$DefaultPressAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3c9ab033b5d7da301cea545147a2338f6c844f3
      GIT binary patch
      literal 1211
      zcwUWDTW=CU6#izxE~RUM-mtU^YOO$NxAk5zCQvo0(gttDYs^50x(0Te-J$itKV@QT
      z^ub3T{87d;yHslhLpIr&v)?)2cW(RR=htrlR#4QTF|5AhyZpWB?OFD=xzplJv(7!M
      zVV2eVk>kiJx5d--xjUlCJ1tpth3AzT(sFDaVTRPv@KW8AE^o*HXNb7nc!p%<sN?-Z
      z;v&P4d~11g%M97dV5z8>Tb6Cf+YIG_gZk*_Y7F5uXG;u&;iLf_ktjll85l;KA(YM4
      z6f$Pu1cn%570VWzopxQgPk6mWg^g9525;54Ybm??F|2B0C=QrhkLFU5n!7`S+&8Pj
      zZ8~mSY%!#Rl1;uRO|dI%X$BE@)t%~zVg{#m%rZ>&EZM*rq#5GdLUv`#9VykglG)tf
      zT?&9=6lZZ>$2o@a9<YHqT%cJK-v;%u#V~V>C-C#Z;s`Dxrz1;heOwIWu|RyDkfosF
      zaP~#6rUDlYEGaBXnBOafYGRjR_J2KLV0G$7&)NuUGfel*m&6`B9k(IwS!%Eo$0oO=
      z;uwr|+ZOIxi&ILTj#Y;F!6r}p^Y84Dp^XdCKdR9~YX`*RYBBvUpv8<5K0>z#WGlZ|
      zeqkR*{xe4Ng?%JG`i|rD9`)geM6yX?RZNgI<&(rPNjLbnBuQvQc?#2A;tynp>CEIm
      zA#s4zM&UcA3J1t+E{4BgUV}Oc8vZDyRGN53Nj`^xmq_3h@x4YGZ+z8!!1r4<0~5=n
      h79p<{Tq2ePWqTP{C}Ry*eco%hPNyoC;RbF(`vp1dFEaoD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI$DefaultReleaseAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI$DefaultReleaseAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77a3c72cebcc16ce99ed8e9af86d26b8e05b04f6
      GIT binary patch
      literal 1217
      zcwUWDTTc@~6#mY(vZbuH<ti7YDq>p-3*NPA0;maE2tn<GZ__g1nq?Pvr(hyc<3BPH
      zj6V42gFni6X16MmVwz26=FE4__nph^kDp(^0hmL@gh8mh6g%Rz9qu~broHWo4ZAKv
      zr(rMXb<OwHs_^8qrHT7;Lo{8rCS55)Ip0u@@0myvMh+9q*FzPEhKg}QDrhkfhN_1h
      zAN{7T5W3V0C!Cli6snyiqhszko}=y&7CH_(M!#4iBp3a4*$u);3no%&B#^PtjVvKi
      zDAqL6YvBaC2$`zm$(80-T?S7@-Q~i1tA0bcH4!-4Ze1pIO@zB0CfByTT&59hv!sa3
      zRT*sf!IoSnjK@XWVprL6M|#SRBOd58SCqym&X^b@474rU!dZ+HvYS%1gcq7h>46Ou
      zivRX01}bTs!vz!P34Lu~3lq4=(`LS9?xaf?J;D?FMPQ`|mryiOV6|ghER--sNQY9b
      z1~LqF&B?;^VoirmTbR*kiqZMFABNl^jQy`C1gdj4+SbO{7Ge0<d^wRPeluvuhmIa?
      z|B>0v=s1G4<ash!bOomynz%)n>}>YT*lzmB^Q%knpK9>OPY=ju_2Z0gz>hP{cn_Z*
      zv#tFyrKx>brO!B3D(@rrF>>tV^;85aCV9nSA^O=Gj7TyV;1i<L5K9<Lc^bnl;yt#L
      zyyr`wkUPN0a``(3%LmA>Oeelz(tzH|2L39I=rr+$liY)ax5(ig^S#G7K18aenD38j
      l9yVrKEyZ4QxXdg$&h`qfa>fR(MZDK>gLhpl;U;dw_yu;nGL8TM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicRootPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c52b0c7d70dc7e76877b4d975152b3d0a3d2de12
      GIT binary patch
      literal 3905
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a5b36b55190a0be2079d3df75fd5e7939c78122
      GIT binary patch
      literal 1190
      zcwUWDT~pIQ6g^7{DQ&bBC<20@R!Ki3)Nd_z1`xH_sxwF*d~%yE5GGBSWDEFH{24x2
      zXMAvc_D4D1Y?+G4IDN?G?%sRPJ?GxtpTE9+2T(#q#}GqqpC9sLD?D<%UF*Q*J64m2
      zj%}?)>y{n(uDiyA?P|89BgQauI()Sm%7EK))s~L$F^tGPC(JGrXl+2$G9|4zo+B#^
      z6?5P$6==Df!nR~U(dAr&A-3+f#3&e&28J<`fQAbObX;V}nCGXYYK|vfciK%6yyHz*
      zFpSlFo4XAjIMM#(Fct}8C=5z4TOwh}EcblxW83e9%MtEB1gJb$oqH>S9Y1J`7Q_4r
      zQGO&XaVR`#^_sg8*+e;kDa`1YKAFV%aR#nnmSJ>P$SuDU*rZ^>%$*|ernxU{S=Mot
      zVe+)5&Ax~P=CEMk8m<$N6E>XCQLWI--22FvHE<KR7}8W^n+90*>_D`sICaac=BiPQ
      zX&{F@L!4q7-0k$zm8)prHkQa0_FYjLjbvEKVVM12BN&FlCc{+ieDdTUZV6X%23BQA
      z^t$lei3DWM4r?jGU@)qlCxUgChoPWZr#3v>^+Up~3%TdFbUa~L9B}>yR`8TCs3lyA
      z9`QOqV3;=lej0sO8OwBWHF}sVosMoVSwr;ch|~EfS?jcq{K<Ub3ljO_R~VmFP>R-s
      z3MSRsGo;CyRQn_@VGK~#I40<f<dd%lcua6H`Y#l^xcmci^<o$EpD<pGb#bFoq}}4&
      zhb{_#s!S3wXfF`gULvJ!BBQ;+yjE8g^F6G7#RXVOQk*Vq33mt~LoDy&9#z$FUtvDL
      SL&cq@q;kgah}IY$qx>88;UX;n
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2dbcbf53333e1b9d7dba82e2948b0564a4c8817
      GIT binary patch
      literal 1191
      zcwUWDTTc@~6#j-SY%i<j)(QxMT4j5Y1-x5q0tAzq;w3;eJUQJCu(;hNyHmiQ;?MBG
      zn)qOR_D31dPDw>2rVl%NX3ja^`Mz^ze*FCU4ZspAItCc>hy0kITH%S~?OR7K-?JJ#
      zbZl!aTDR=LcilA}>{N5hI${h{=fhVUp$xb!S8eI|9>b74aKhXof!6v&EmP8p<2kaz
      zP%-<?Qh}DsDQrsy6kX2O8Di^xQzXEUGBAjtBs5$ypyM(_#=JNsU2{C~qTOnUV4F8w
      z!7y6$ZSK~2;6(eg!&oGYq1Z3M+%gGE<+$g2A6kApT#Ru4AwcE1>f9?4?D;`UG#O^k
      zi1HI@iDThOtJ~a-$R^53OkhgK<k=)Hjx%r-(+r7yA-DW?V3UGzGk=c2%f_LwWm(5H
      zhU|Gw&wC=0n8BQZ>$pKcPFQzBN3}vT^ShBRXW$lYGmKD?HP^S_S3NrrEvioKGOPJ&
      z6l5C6qrecSpgMQk-F)RL8MuQ5a)mutltwcdRC*Yu|JMnIfv~|aQM;Hu`3IZAm7IZ9
      z8Is*LJaZxinZKvC5MeMFRnHT_y34~*(6G}Rp6&V};cg0f;5T(VVVLjp0vK4qQ^KH@
      za4EXPH~A66r1|ID=();Rq?@bJ%VfjD(e)*3fIb~@I!}<bPW#B8Dil8>Stxyh@ks@x
      zX-%qNQmwtlFj-l(PhkY3fU?FgPG=;ad|kj(f{W3AuGqnq@0i&vbujx8W2IOJH!CID
      z&Ck5+p!mB=mWV;yMqJxLT6=?x_7=0+uBuq*V)ZJ{!BUdqbYqvWOb8ibc^CJns)qXt
      U^8p?z?ldKpGm1yF#_$;BUxE-K$p8QV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$3.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90e07e71ae11d4ea0d9734be5cc4b72a3a63bf07
      GIT binary patch
      literal 1190
      zcwUWDT~8B16g|@|Y-v|pfg&IXYL)GWEQsI5CeUC~Q`7|MgAc~p?Ep)*yJU9?_*48D
      zK3EeUjL-fk<J~E#sKoSPXYb6t_uO;to%!+e>o)+asOd;B6c70^KeeJ0*Wb5}Jicey
      zJaQdtGhTO`Fz~!h9_}^@YdVq)v**J%>_~>(ksFS51D|139=K6qg+QA_qE;zs-Su5r
      zW2l)!XQ@ET;}o_dLyE2zTMWs1&=zB0$QT&GXc`(W8PIW=A#Yxsl5M)ac-igPB7DPb
      zPcV!(1BZJp9=h@V>@XP%V<-<xu&_qLG6n7j{)bM`jaFjZe+W={t~&QxgnL2Q5p9Nr
      zGot)NTH;vv(&{&NE4GPp8q=87F>^MFi{lJj!yLodzK}aXH*`qBq***i;FWzS99h+I
      zonh*{rWXSdY0P8Mzzy6aAUA5ck*ivvnZ>uUuVCOd?l9!2$Sw`A;X9$|P;u&(*(f&R
      z7}G!zC59Bmw7A#prz=;*z+EhpD;l`sG#bf>lEX0fzeX@5BAa2lc`<qNkF<p+IRk4j
      zr2AcX?#2T0e-CRp#$YfSzAwVM$D>Hltg~Cb;{_4nZVP!3v~@gXSQ>Kv2G;S6FsLP5
      ziazmee#9_i{`oWpt}0gO;%f9TSuPjfUa}JO=}6J}7+H1N$No&I{2A#|<qM2YDkw{9
      zS_PA8?HzJtO{skbS1=AJYXXyWM)Jwm2RtRXB>fl5JzV{c`Rz&%3m-92N%U~5R-xU}
      z{QDltzpG3UF=!kq%|=#hBd-Z8X#1*SsgE_NxCl#0O3{T~#XUmE6U#N+r>YtrD9nd=
      Sq`1?RRL(da)0)H+RDS_Twj#>_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$4.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ce627da62af61333c9d55e832d38dc76b3a62a5
      GIT binary patch
      literal 1191
      zcwUWDT~pIQ6g}G%(vN7NPy_^vS|$CEfZ}JdGr-_Xouba5eelU`x<DXJFxdkB6n};f
      z))^lhpZ!seH(REnGEN_|xx4q?bI-YV_s7q#-vF$jrX$8sJmAOt)Cx}=Z_he%`L5OC
      zp<`Pc(Yj*?zUyxA;7z@-sw2)Ydp>-<70Q6ya^04W?=g(ZeJ3m|6KG>d)G8&dIi4eH
      z3^jA;EEQ<EoWgcwK+)A=lOew8w?z^RX#*n|O+mvY13E4<<jjjxG7ZNQFS?zU2wwA+
      zD;Tm3-{x+U2Trs<JB&xd7|O#EEUc2Sbb))m_o3r=!{rF~9|BaKtIoX=!LA>4M4KUh
      zMwFjOOB@SNTK(p3MK)1RVH&eKX3i#Yah!pxm}5xp3Ay8U1Dg~~n#FSjUbYT|Evq`N
      zF-)D;^n4&9g?TI(xQ-hH<b+KpbW|%ev-mdh6%5?MZH93wvf=vnVcoL>(V^<pF0)>&
      zM?t26B1#Mi3Tkq<+s{|7ih(;=B3C$YMQJpX5v7M=?th(Nh=nbN>BhzE$v@H-uH+1?
      z&XDT2;h7UD$o)O7r3iz;sC%9WHeDWuf`*;h@@&@+33pq_eZQ^a3B%%$7r?+8o)QMN
      zgiFyUzRiyqX3Rg|#=up@GTmH_UM3qGi>@zOG5T~Q=sZc*Cha4Cx>Wv*RH^a>#wQh&
      zp*5v~Nws!}F|wxAK8<l?0cA~KlFmpz`TBsT1Q)0OLb-=4-!Z>k=^_6S6O~vGH)|Ez
      zEzZB|q5Qkb6cK~wA))!mXz!8J0^~KRDwg_KgNh5Vl%xdR*cIF*gdDNFhgGVo;l9Fr
      TfQO1ZO-bcs@rc$q9;5mT)7m3v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$5.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0646f3b81645673d55ad2e4047a308cc23b04c5
      GIT binary patch
      literal 1122
      zcwUWET~8B16g|Thwrp36$VWjC)GAwA+4_N+)Q|wdq^4C9v=6?`E(0vt?vmXpU^K?R
      z;m`0vOnfjt`=g9^rcFg9rrGTD&fI&?J?Gxp{`mRz8-P1_WMYV+bij}JiJKk=(Vlx4
      z@?F>CY2dpXYTfpeI1D#<@~U23HIZSMJsZC6r842ZT=!)VM+_r!KS+yJ0&NV4TBD@L
      zK@`X}hBas4EFI{EoWizcLeaHSiy^Za?}$+_<ZKLM#DakfHcVV(m~_rh$v1*XJnOVQ
      zk-X$yC>X{YvCqR6PXe{?9cGj;hVq~Ui>o9oSL9I~y=ljtw5o9bAwcE1?%WHJ?8Zr3
      z>@Y0!i1K6UiX#z8x7*w;WfNr!1<ab5=}qGNI2%_m$1u7l<aXRid{Qvsl+F-%?i~nU
      z)=XSwm^!QJX<vkec`VwvhU)|rq^%$gbSn&}^ji6fHg4h;gGEJ}G{JVKt(|q{bZnHc
      z%#clmZ1J$8TIkeO!-q9lhPnUAWEe_4hC<_fYUH=Nx}F4z(&XRmUr~7sc0GzjvKjI;
      z6*Rs4R^*3qN?1)H_v0NC_ZgN3oT!Zlct{w2BDfS?vQ2)-Fys7r+54^<s&o|%`qbFi
      zn7WT-4bf{NOXs6xZPH%(bIaw=u$C)dV1Lp<d0H(UObs(mFh<st-sf-$<AAm<V}i~|
      zKKZ(UUJtNPKE?ER%r`5iSonxsg??|GV(B;fI5L3o7FpvR^2U2i8y|F)#cqDTN&#h5
      e2t7;Q+gQ=~u12ZSKZs(<=z&JOOKS%Au=)#j7Zxf2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$6.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af7dd323e0fd6c1e7aeb88bf503c5a7df2dd3ebc
      GIT binary patch
      literal 1122
      zcwUWET~8B16g|Thwrp36$VWjC)GAwA+4_YhH6%bVscF>&?SpT#%K$^RyJU9@_->*x
      z{sDi64`Skj@!20`yfbYOm5^q$(>rtSJ#)^T+5Y_X?K^-wcw}OLp|r;j_>r3&%5cZs
      z5BRq0@kILWni@C#I0}L_9>1y=mrZ0CrcbA@dPy2{KV9`x8HEf(>8?zQRU&Ql$y%eL
      z$1;@Z3d4%ica=_b15Rn1X-wI*Qi~z89&L$XFyw3uV#tDl3pPw#WEgkOF3C4!D4uoN
      zo`_#^FAxl)jmYOgi^o#Udy5%mjG^4Gz~V9)%N2PTg>TwXC#fpl{{+zXTzBq;h_|D-
      zEw&iudP4bO>WTvqrf#>n8!9Hr77Ca)G1WVXv-50R!3@Ljjz~A7PVAF|F{gA&z;ka;
      z_-W0=RfdVvo}QkVurP~x8`p51h-A`|iPWtyoYHHB6>Z$aEe4A=Y4Ri4?zA;nSD<5~
      zghhsIBGMKQI;w?ET{V1Ai)ENO&nCk_;xQB&XG<g8>iT*jm89{1+rOmh80>l&ig-QX
      zNh0X<@*ANaL<w;<MY<bpnYhoe(C3NTSjI!*@MFPK(G}a|`wUag-<SOas-a3((V$O_
      zjf|-KNYMbjCbG0XOwl^c6`orxe}T1F`3n29PRi40>11k{@fIT#P3U<JmoN(G=rYD=
      zjqDTFCG>iPh4L{be_*y*ImX;4<SO)g;}{En*hi58jCaTy?~yk?VAA-gcbV_jpX^dV
      g85LsB5_%g;n%~tdRr&`}Dj7Y{jCX0w;2s|Q2AIqiY5)KL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7081759b67e841008c1ddba2a3c294dd0d425789
      GIT binary patch
      literal 1555
      zcwU`U+foxj5IvJDgoFhWARvM$f{*~RponO=NVpk{mlDW>Pfn5n7MCowyW#R3{sTN)
      z1+mHpKfsT&?AcwwAX+IaRZ~4P+o#Vt-IE_bzkLTVfma~}7*f0ZfFEi0p<de7_6@$J
      z<+-gFw6t8;3zlgZX>M(11{N&KJWQ7z$1G)a+Yu#Ug`hBWO8|`@I+{2TB}aR0mTj?6
      z<ok}W80wuJ-5wZcNM>s+l%k{=y`(#H45NvfvywRmWzj5(Fc=zD)S*6tAevN!(994_
      z$PZewdP%$~@8yNH!SjY-Xw8}hZsfS7%e{Z7NYV_mwHCk08<L^!Nh{u2!nQ?`q1O|0
      z-Ku3768$hba4UpPhM^kEs_4RP5^K9h8~UC!yse6~dzgx#2fZQOVTk>4sp78mN3k7q
      zUsC8(aUcB*%^vE79ERzd-B_>6r0Nea6v80G)c+x<NFd1&wT0t<beuNK!Y5*#_>jy+
      zFoK66j52in)n653&=|to1Ywq~0yVik;f<tbaANZ|zbgt(N;)v1;t?J*MD$X@@|wyJ
      zuTsC}9lO$=sF=c2>Ne3^(k(*KWrC8(cs+fl;<*b~6c=!^A2TXuWm<zw69zw)hx004
      z$Zpix4!0ZzMm)R!F*OWL?u@+`hTt@05vsSWV#VX*d$mb#iOPGrS9Cex@#~I{$r_ZC
      zDUsic2B(Ro2heuIT%(WPSCIZdSTrgh8AU-T^vD|MJWRVu1n37uhDXk6`3m(5?E+|_
      zwVu8Ka){EZx^V<Cv`RFzq1{I~_YwH;86szhSJ3T6_ktA+j8rh}ZO2a#^DmSNCQs3G
      zbvJ#2X8$fgcRo_ISV8I%b?%DTpj(&|ojl?wpdUs0hZLB{7S^y$ly~qEx=XynBj*#B
      z(E`#$oni4(!e?K?>U9b67#k%HRU%xXq+sb3T~!JiWkmFsu88)M(||=pZFIt+`72`_
      h2bjYlwf*Qff~%JVSABv3iX_fUWL)PZ<qndk`~osPftLUP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ModelListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ModelListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e4d2945cd853972d4bf7f328b3a9bb6d261c171f
      GIT binary patch
      literal 955
      zcwUWC%Wl&^6g@XJF)`C71PCp!J_s~POAQi;MG=ceAQh#6NLz{J*qM^4j1!HWf>^NS
      z@i$1NNG$jOJ_>Qi3D6)Uvhdt_+;h&o=lc7PuipUN!kUX5;m*E1kgxsZm5yKd{YdWl
      zflPGhZ`idRnqCxbNVBt9-RgBz)Y3_+Vr5)7gp!5&k!0YLU|)r)i#%cBIH5XFaq2g_
      zoTGkW3Hh|Elj==Ey)~iwI)m=%Sf}?1tF?(y^<9F~<iZOeObfU;>0t^*fdWc|shUkF
      zwsfo>4_*e!Y|9{0gmSAF%4k;_ZO@}i#}-YvJE{1%VcdX7Qkklu7ahXVcpJx^dSLfl
      zyoXs_a4|<%o={ZaqHV0g<%ffa<(?X~r;JgZwtk~5-(`U-Hl;Y|cldp~%Z)$d*%kP0
      zL0}O}ghG-r29jqrJ67eR-&*S)s<`gr8ms*~LtxnoxkmM+j#C1$i}U|!n&7p20~4x;
      z+M0gu?*`W_oW0zP+0<qvlSJ`QrpLVICU~~|odA_ecIf=S=iu<rJ-$7~r`vqaar7E1
      zpCKAwF!L$PIn8UHbAY!f^D45vhch_Kk?TQa#PFP>WteLmLLA}zFkG_X5c5a4`iHR0
      o(!e_|<UMBafsOu{kynNUBXYZ|p`Ot;GVBUgGjVo~F*o4+1OU$PmjD0&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1466a6b2d31821f2eb83d113c40765a6f52d3dd
      GIT binary patch
      literal 2087
      zcwUWF+f!Rb82>F$4uow9^kTiV1xsxL*ih|7O)DBoTWEj^6fJ7)CT9r;PtHlt1?Za(
      zKK8*UXFAn!yw>qHI#c85sM9AO{G%Md-Ax05j4}*ocfb4h`!4zWpWprja1ysIv@o1s
      z5vyW76RtU4DN}L9Ql=n6r<lp9?_4qPT{kC!YZC)k1HU4J==RvM@JjNs@N8EG7TOq+
      z%0$K`a%QHmB8!oQc7}dUElA;onMU2b6GqaL0YiJV?1Td&4C(w1!^o1-ImdINml=jr
      zJJw1sFtm;Nw(JDMZVn3_3ACb{qZ3Jn)|3+H&O4r*j>`oZ%!`668G7@6QMd~taMZg-
      zY*RrqjPBHVbL1$IJ(UIq!%>q^Q_#j&r58~i2^_=|79M9f{NJ)1PvR*`swAUF+-XrJ
      zFZ)skZBwziD4_VW9XQOet4s*F3H0G<3;hj+HDVk`F+dfNw_@QE2K!T+EScJ8(~By^
      zXE=@{#n46WXIy(hxbZgEH3bWU42L#@ne$`MmiDa5WlDwAiD8_u@GQge9fHo00rk~x
      zozX_ao!xQKrZy{PyO73n9M9tvB@xK7zbd!(^0CHll&S`qMj<Mn%H#~kS-il|8ESt8
      zLD~l!lqc(vWD|G^=PXdW9B3}VaUL`b9R#$FnI<pQI8NK()aks!@v2IvN7!~_m<ft;
      zjN^iujPAH%i%8Bd(^$+>wK{N-is}arWhWxX_muEujtM2)8+(oyM#8NF7b^A@j=W;;
      zt+U7ca>e(^gyv6k%qV_Ooqs_tiP$yV*EnW%Bu#kp9M`mFQ@gKoyrH<stwD8Qk-?Il
      znrB;e>suUeKkC+Lxu(0-!aHPmqg!*n@6xQP0t$`-iVO+ID+akZihPe|p|OI7Oy#=)
      z$+3hI11}g8wPB#8L!;v0T?;D&P7`eo7iDr2%4pmKOWP;4Xu8PfsOTVUxe){-yM6z+
      zL`bYa4)fb`BTiz@kAtGT=%`J%f9q77P%4zjghw!rxgrdu+5$}%9QtY1w$lGDuw+tg
      zT>8~%p?4<|^zEY8DSEfinHU`U8GP^;?D<K{^w77RWPlIQOJA<<3GBr_I>{jp7z=Ea
      zq+5yh$50iI^&YC?$X%SF`>}^e4?X~YfT3S;vIXXTx{4R;)KNpNB6lC}Y4vffK4Pes
      z%rR+>DRW#k$DBD9?&FeHysj0qbbs?9ZcG^$H~&IU?KWJ6UB$9_d3Cy1qi-ZVsnfkn
      z3E#sJe1y~Z7^C<ESMVtf!DqOR&v6r9poA~s;VZ1;YrKzda0lPwLwrY^@9_iu{f-~C
      jr9J~r4LEhXg@B;DgAs&?H2kslzKS&sG4%%Z);id~o~byj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6416310df57a9719505bfb8b9b378a03703a3515
      GIT binary patch
      literal 1651
      zcwU`UO-~b16g{sU7^p+3$d>|wSfMS*fXas!Q3^#$8a3f#!NO!Z9bjPSkeLB=%YSg8
      zf50^fVB*4!Q4?22-Rf4iZj2hE-ZxVyAezQB^WJ^;zH{EW_ubc5Kc74W(1Vl+A4A`w
      zvZmaX?R7mjFRvKNoSac?U6m7joK!8-FcOM2oeFz)TDKi7r&%Hdh7iZfhC;|&nMF-?
      zM3gc#xn5=6k+n4~=g7mVqno*1AVYapw=~zsz)}n)8N*bU$ev{=bry6x+|3Y87pW^w
      zpg}#SJ3|bek)l!283tj*%xdLeI4<EBqyYRlA)x}*4E{)ThDT~8h$!P$y@YZE7%J0x
      zPP@6foYAZ)C1Yp|RcTXIj2Xq!`8w|ucp?k~#R@u9UdpPg_+(PEJRLvPl|iyKXS7gY
      zA(G;;5P9>6dkL@HLc~Q?D(=qPnl)!y%UYJ9**o};8%%OL&g;^Kh=_KE_96vJh$6;N
      z;aG~gRA_|$ViOEc?FYsK=tP%@^9;TJMIb>&H?P!!xoTv+ZC<5jd2SaZTtpc|(3Lx`
      z&o3DCIXu)Wp%4Ak!nO;_D3nG0fh;EWP9>R_5f^cVy6ET~5(as%iI%pa=s71q2MkHL
      zh88N7z5lX!WLQFiN2J}zH1#|^8tS#if87^DVA5Q*RBcS>eOYt3G+i7^w5c3bX2eiz
      zTcf@W9&AUPp%>t%uY|@8{v_xhWP?8lAQa+{ht?$&uRxH-N?J|8M?auC*0GIH>@lih
      z!ZvF7P`62bA5PL(1%bwwgndSA&k6kkr^q7_3t`cKMw&TqQ=az@A%%myjhwgX2;O(Z
      z`<i&)5bs-;w}tc<c)4|&a&dLK+3*~jX_t4_P(Fv!SOXnVU=O(7_r(6eWv%sg?Xi}+
      z6{5?by0sp~Rd<-{BXNED3m4bLxy~Y-=enQgO2)QO_W->#g|={xrkWjeJVY&b__xvH
      z1upGiV3V8PhO3VdEUc~<q_n!%`kBOkK|Q`w8NMNg@94k}YUN)Tr8_A|OzufcVg#ck
      T%|{mJ8p91YF)q3d;}CuW!y<fb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$TrackListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI$TrackListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b4d8ae247a6039fa16f3eef0c635175867d2a16
      GIT binary patch
      literal 3012
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0ec5c4744d7df80c8912760c37bf1026937a8c3
      GIT binary patch
      literal 16908
      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
      RK()21U8dT4)vmGH{{uuYVmkl;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d2c615c512b6fdb4f5c3b6ce40952857d7e4c94
      GIT binary patch
      literal 1344
      zcwUWE+foxj5Ir4&8<IsXa=(a|2uVl?QN&9SBoWG3fK;J*@X5($fW^%&wYvfJAN&A6
      z!v{kZTBxsnlx6QG1r$Up51I5#pFZ8EduD(CIX(f9!K#7)A+aY8#QU^!sGB?KeM4-g
      zOTy8$bk1A1G}|(aO<~H{g=j`WkT7x{zg%)$TWIdG=IWM7xZ>{WPIQ)8*IK2`a@2xu
      z>h2<8Db{+Jk4zhaaa*p<@NB$D2<EM_>;NI6q8(SlXhWw81y>3EvF0INYq}{ns+E$o
      zUx|_-3B7BUCXAx6b#LD|40_TC$(AdOW>{JzDoo4#P_e4ctVevQ0?se|=50!Q+p;UN
      zOqgg?Dh}PWJdmcFuJ?Dvv$^IlhA^UFxG{|8I2EH9BXsOYcgw2U8cXPl#m^P+va}~P
      zH>=<}Veq`D7iTKM7{?72H*t$Fz)a6ATmNX8t}yDDoUplw2JMA-_GQC}Vp72!j&6=n
      zF@+dcsXIm8(fvlZ#o}+gxP*#nBnds7H)mMdyMn3Nvcl4M7_maU;DKgTq`{pHF{mhv
      zYCYa}-Boc9bL?_XU0xVZyxngWVeEfxCIp;)!f-QbUTb_ni7@mp?VP794ObATKnT}|
      zu&R3!2QFQf8IOdZ7EDvxc|$mk<jdBzVrquvF!8!{cdfF593j@~1yu12D@?*&6Rxal
      zTNj?D3j;fKWiiW7r;Wc3)ZOj9AGQMgQxM|w4z}{V_xzE>^jCxv$s?#=d{7s!VIR!8
      z=?L9y4fy*Ade95_);09;8NWsL)d@c_T|56zP1i8^6XWa28YVVUHQfG;{#2lb_<S(M
      z+f;w>Z4H^TWFua6bc_&vLnnPlADv*7eqfS*`N`+%w5Q3Za3AxWG=vE}z(Z!~WR6F8
      g%ms{cX;~~F$o3OI!y=Y^K|DM^x))D*4PqJjzY{`ILjV8(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$10.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$10.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58ad2057d0bda0f3825d64230ed7682dfd6d6134
      GIT binary patch
      literal 1345
      zcwUWE+foxj5IwUjY)BS~$o(Q-BIH8Ypoo`nOG40CfK(xQ@X5($fTcFO)b0k<fA9nR
      z3?GbDK3G2cQI@@%6i^VXJY>={efo5t?wS4b_vbGF3)oa3F{F<9DgUUsXNGmCotXSU
      zt8mxQwY<OX>5grhyWA4{rPxA7fy^*|IUrYYJ%{UFPWKGkV(9UX3^$fxNN#n?o295_
      z!!o>8hP8O-VF6MzIpOv^hv3;nnL#etRnZHEh>C9XgwcgQ6$)-K48_}r^lurK*s0el
      z!g<FlreGM@vUP5jxnubI)}ic6V@P*gAvKJ&MPl5ttxq+(?q+=EYb8(tJm}u8a1Lyz
      zCaMh6ty1}!r-@Txd0Ml<Mc<~P!x+W5g0a>#+T&DAV3MKtP<VTG-O)+IU_5cDfVY)n
      zp?g^ccNs=5t9o-GBaA8BQ*j>;7>0@Iwe1+6ZOh|k6O-o-715%-5>LKt7%|K!ctp|d
      z5h`X8rz#D%Y`8|y>8^O<y&soUk-{89l=AM=1u0p&BWk3Kh7m6%N<L;@g$8PDh%jYt
      z)|=sh>#>R_SR|Kw?()NE;@v^77$*PMWd_MTVHj(t%<oJ9s4$G)B%Sh9h3RnyR$>S@
      zXRvAb3Wu*<mU*9qK`mL9a0(`OT|t+vzi8>E?Go{}@Q&=Nf;>aK(+j9#14SaCu5nK^
      zwQX}>)0KIhyRyj8)9Iqm1B*ue_d}LMKLsH=?<K21d*2^ProJPbocjUwTL9{(H5`CR
      zx3q#NS;N6Tg4-AX0_zS2>5SeY`I>}Zh_0LdXHyM~{KnMwTm#cP=>{Ht#ZX#qAh9H;
      zX`3FBKQyp#k!;+rPFhDu%ArrnV^G?_gjB?g^eRZc*rYvAK8vSVqNE{A;~Ab4OCNE(
      hz)LD%f=bI`88X=`L55YV1%haJLG%FDX_b*f;U6gZPYeJ6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7eb368130209455f928465f4fa6fd11b496d4ec
      GIT binary patch
      literal 1359
      zcwUWET~8B16g@)=TiUH4R-g!?ShX!J3l;pJ2tvhJLy-jSgKyJifF;{qvbzQJpZM%A
      z@WGn+V0<xAVl>A8W4yC%0HK<0v$J>ZJ@?KzcV>F{`@=^7Q+TMLgCV`c_xOS4?i<#Y
      zwrlcDt-@VH*OuhCt~<7Au5n8|FD7ydf(%0^@rxDLbGYs;>Yia+3|-!~;U*@j>Pow1
      z^OQAbScW&xu#jv&%|~h`C)~Q{5ImnMGXx9vhUf-EL`5gM!U!O$LcuwPi^<k0Ju8MK
      zR%_LYaGvpsDH!@zY@M5B?ih03bOxm~hD_TG6FHI=NpQ=yURLdzJ1GmFVL<D1zj<rI
      z*|eRi*kBlKGUfZ8CiaBoX^s9aOPe@{F^C}r@#bc<#;Lf3VTSH4;jP;>M<)rfWa<Qg
      zr<EO{dwB(y83s;@dUC8Hj1gQ>aTQ|>{Z#3(?HI3Y%j0GPv&0=D(JXr^pJMqi61bt@
      zI%T&;sJMwFu{7MW;TnFU1Ig42nU_{EjtoPX)-CY^qgt!_!J-UKsL((i4Y|TAbF(Hl
      zC|Q)P89`3PElD^=iDlt<hW;1bPQO(Q!~bhCLx;P|5N{<+HiiHJw=%^r_%G=`AV>5Y
      z-G5|AZT)9X$%IU2P>Yr&oPx<+SI{ZzS+;c3cBy1Zc-!`df(H!Ac2Ay)B^0QL?g;LQ
      zhO82oa!&2kQ7Df|x-$X#TVTDt^5T%yL9c=k`Mb#~&|JnN>G5|6r!()NzV$&pG=_aJ
      zwU&KGFIoNmJc9G+1AOZOV&tPsNU=u2H#G00@631|1D`Nb%G5Esnyus7Yecg2P1TVl
      z-_&d{9`wD@xNk}S@zP_&5bO&=>?@+|5Ha?Rj{SGq{~t)RpO|L9d`i=e#f~V=kY|Rd
      rgpkE;+@WewBykt_NaYyOoh2(scHUoU4)=YTjDGUz!#s^aEMV~up8Qw}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$3.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82159aed60c983b4f10fb6c865f861eba9dbcc32
      GIT binary patch
      literal 1341
      zcwUWE-A)rx5dNkVx3r5?<o`$fsnC{|1ws5Nf>0r;0VF|s;gzS`11#C@lHD!nL-+tb
      zh8Nbv3*)sfV4_Cjix_9O4G^fN7d@SG=9_Qkn>lB{{Q39^zzo(Dgb3*aaU@=8?y+I*
      zX@{oR)k?xObZy07w{^!h%`IWcokC((L6|Uf7Qb9_JxA!?vhEqSMY!bc8*XBnS=U>o
      z&2iL%VHw^cVJX>qSb)?_!MJVDVR$Z8B!u&JS$2RBQ_+q~QM92`g@Vh3-emKTu64tb
      zo7GB5I?qMPl!WeeTNh?gIEKG(9EN>qgiOm7CT3Y$EFmo0dR?)r?zB&Qp#sh?g63^W
      zXV-QrvP>9jR4R@=O&&?h)9U?Q^=+;>iUABM7;FrqIZnkeMhG2y(%ZJHj?NN#lBqKV
      zJS!bY-ODMsM(95)>glP9C`NHz#SPr#Xl5!($1}J$b;OErxP%7jxoGy~qDWv|!EHic
      zbA*ZsB)LYzEgG&7w7D&rdf~^VRZJp7h;!B*z8wWicVvZi@g$OkRKdqgsnEb}jrf%b
      zvsw=iTz6E=Vvb$ziOUb;akmGZB8>d6$Apl3NEmFU%<oG8C=mw!C7tt>rRfO*6$sJ#
      z1l9~+Vc&(DGUbyH)PiM6CvOVZm3-5>RxRDMT_)a;-o9N{utG?-dizv7!77t**MukQ
      z+BSr*>D;_dTschhyJ_Q31I6S1<6$erKLrs!?_ev>d*2^RPrgSqo%sOuT>$FhH5!0f
      zH+@B%t-fF%!xeM`fprx<e8vxveRaY&OxMo;6O%Rcf5zxWriQW2Yz?>GqBk3=AvGV)
      z@;2KWep$oJX|f@|I{JnPeMcw#Ko9-IF#W<f{SK1P)oD+XPv9=*IcWrAxQF}9(#aeT
      i@Q@1_=F)OlK$z`EL54*v1%h~ZL3B4B^BTr7@_zx#PEqLq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$4.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..74544cd51a356b85dc4f83afa6e79c84c39bdff7
      GIT binary patch
      literal 1343
      zcwUWE-A)rx5dNkVwzP{><o`$fsnC{|f>!(~f>0sW0FofR@XFKe0hVlc$?g`^cklsx
      z3@@yS7shMf!$gh7H!#j_8z4|kFM2xX%s1c6H*?N@`SbA;fLW|62oRF{;!wQII7hm<
      zn>jGVPNpOrUCS(c>y~C)hOsG3xm}256$A;xr}0ZA$F+s#E@`fAnS>5^Pj_N7%(~Vp
      zZH}YnbyIg22#fL7!+d1M5RBV$ZHDI(MM5xdm1QRg5f$y|2%`;MDimBG^u?Qpbg${A
      z+^AMc(tajNh9vZ?S(-44!q&Zg<1pw+BcxicFqUO$k(e+o^Hs&FIx`;exe7SH@SC?O
      z?H$Xm$TDHPQK>j`GxAWHZl>Pf70>3H!x+S{f}zGRn&VWAV3g3gE8Q)tYHKW^H=a0E
      zz|+#c)ZCnc%Y=c`qMn?n2xAOaR9wY1LO(M-wru^iWxB$sW0r-@MKoy7#Ir9KMhp`Q
      zZg6ySgo;VTxk}wB>W=O=x-Fh~?!_flOd&;xa^7ve9|cphWrdaTEaHVk!NW|e$bcIg
      zVoXsO)q1$^x~bw8vg~q>U0xUuyxs2=Vf24pCIp-V!ca41UT1tji7@yt>71u54ObAT
      zKnT}ou&R3s`_J8#X^(`U7EDvxc|$mk<h$0rVrquvF!8!{_pGvlWkS5w`={a&R+xml
      zCR|z9wk|wPXXbV6%3+3IP8)w5C>r&i4_g8LDG2d-CtG>md;Umr>OI2A)CZ{Vd{8&9
      zVIR!8=_{ga_51q>E}{qUtxM?TGk%Kfs}sIqx_17boT_2qGsf0aHH>ehYq<Uved$0A
      ziMe2!x9Ps%iyCH6k_~&+(Km$XJG$rxdg&)d=ocpFx1T&)r#((SiQAatq#=ys4(>8b
      l7jxXheJ)^xOUq#%LAD?G85XeU3*zDV(LH#`YY<Dw{{=QAQ$GLz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$5.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..539992025b831575d1280bd83cc4a36e437b65aa
      GIT binary patch
      literal 1342
      zcwUWETTc^F5dNkVwzP{}<bDw^7249Wpn#VmNGl{YfFx)ieDZXAfW_@D*<C<?gg?Na
      z;e$2t!T9XoF;Sz@IJ<3tKs9~n>6|m)d^6w7Is4_$$4>xev8EtINbQRw@k(=#4Qp3B
      zFvX5m60V_ZIe*>O9osawge9L9;`0i^gyFOJm6Gc@Libj5&#)~*o404U@fl`aZ<aR8
      zQHzFUcuR!kMDt+*QZohPwmpa8*<_Ir&f8_#4nj;tE83!HL5B(jmk51{#vz^Sh9x%-
      zD<$bX6(v&=de&`Sm_^|j{=R+~_N5WhO;;G7XKAsxux#sf#XfXreBuigaDEXqZ%aBm
      zwo{R1!g#$>aqMaGNLrp&>+h;>bInl<VpzdYeHe{#Dn>9$Xy29IwteX6ETK1%JX64v
      z(!SKatb!|qfwQ6>pQ?yr3|CcL!*z~krlNE_gL_j$<b=Z|)Je}pvo9M(91{v|68ak>
      zR7@hlH5zWwaE+kNEs5lFKQ5(W3TZ+&XU&<m{<2`{j;ydS9z~*%Ecl>l6&kp&5x+EH
      z9@gRm*DV#dF~=_V#N~(ayjz1-5k~*lWJ1V2APhB<<~Jq)ln8_W($0Cx()0v@3WR8F
      z1Z##bvH!wVnf6HtYQeIklQ)IyO1^5HtCnusE)#D^Z_h3($Pp6FUOyF&u*xLdHQ~vc
      zwhiHHIybNrR~9q;a9a4=KwVw_>tQRzKLrs!Z)Ypdd*2^RO}$4nmHq(rT>$FjH5!0f
      zH+@AHTm8X4hHmr#fpr<Ze8w-4eKo>2OxMc)lT%d;e8$*Dx{C45OcgiYqAwGwBDoOG
      z@HW#Ieo@8jX|iFzI{JnPeMblVKrj8o2>rqY{SK1P)o4$WPhuVmoHT-Q+`(OD>0pj~
      hxX%TQaA{dABFy%KAj1-t13^5zAi4(+c@1L)`M=4DQvCn`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$6.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6bfadf29333c05131f6194a72f9200bdd1a2fb98
      GIT binary patch
      literal 1344
      zcwUWE+foxj5IwVO*jyI5$o(Q-A|xSUK`~x}Ac;`M0;CGfgHKL211xTKsof2z|KJDs
      z89o@Re6W1>qbz$i6i^VYJY>={efo5t?wS4l=f_U~i`dYhFk}w-G5=urCzi8s9NB!&
      zsB+&jjiOw4P0zLM9qx!X<z!xi$}oNrzgG1FkDI}o8Cb5v&>b9DesY0WH#?;*P}H*J
      zSiuUzYO3?F5NX()aJzv=@It!6pqAX4h=C!YBZBTYy3nIT!!?GXRQr(LP0JD6je1ph
      zuX)uL3<I04$?XdFEV(~DRHZbAY{wNQ^CT^i<c{lnth)_=K@wl7fb#ROc{{?}bG^E#
      zF-)IU%1;7A91ABfTK!#@Hq{)*D8@C6oerZtPR9f$8Dje)*mWD8NfHKA=?ewCsvZh6
      zC}_CBFmh4U%X1ZROyQ=ETe!_IOiV9a&-&y#0k>P2BKN3>Q`$@M<SWFH#Egc!6x|-7
      zV-_i@(()^oZ-tHSN~Pb*xQvcDWEuJ?Z_#$m_hrZQM4hD3FjD1oS%T(u7@*EZ2~^>B
      zqZJ>z?&-LXC35*^E*VA>kA%%)nEYRx85IABVXU1r*_segWf=XJcFI!|cEA}}nIYa9
      z!iFU!4qv$}^OA%?FFTI#N;da>L6@y}-7#&~C*my;9Jn<NMTS(T7f{D@tP=@!jR&Ho
      zZHr4ymj-s`Dqw-0P8WS0SYMxfKV&KN(-5We7+EFSOMfCW_YLt(_B-^iA*h$ucnBul
      z^jYa6YdG8|(2oHiw60^2&gd<YuSNKo=pyt#JJ-a>FHCJ^o0#6tHF4()hH`2X>Aaew
      zZEi??*Tmv^vT<3Rq9Uq9(4%x?P>EtfiD5=bgvpm$v}eg@@c?;B8pSjo;t{d*5XWOY
      gp#mnTv;vl)lKnKyu!7Z45DhPk9>6nNRji@(7w4c&TmS$7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$7.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..750471ed79f5ea168f86cee75b7d93dc1dae68b1
      GIT binary patch
      literal 1359
      zcwUWEQBx986#njlF2WLqgrbr~RDd9AnkA+w*+e7ejKxE5m-VXaEW6I`qSZg?xnIyj
      zG}A-Vb3dx-+=Wp~YglIQo_o%B&i%e~@8##OZ{GpT;h74Bp>V`c_`9-uYFG#5W0UWf
      zo7^?@@`fCDb;mZ%9d3y?wd|6LAj9}Y{Cd;%9Ikuox@XuH!=QI)xY=2%y47#l3T3Sr
      zmf@{3tmXPo^O0qf6K>aY2wurI7=l%MPYi(}qG14oVFVD>pyC?Cjoj5Ku`R<A+wE3U
      zIInrr6b$h#TjyqjJBFP1oIxp#q1ZRW>=H?fWVvNq?^|};ot1?zF`)Ii-@F~+?AuOD
      z>@iIBnDSGvEKY>wmAn1jls0h=V+`XeQoYT%8mD0blMF)#!rQgmj!qI1x%>qJubM|f
      z_bMuGGK^jn_3~Ur7-`(na2pwhBvpE0JH`jw^0?W>Y;cE2^veE~Pq9iES=>``m$I)$
      zXt<9Yu{7L<;TnFU1G)TLnOD#-jUq#s)~(Y4X|-E^uqJ~u8p@!KhFsw_xY?E)l&i_s
      zq%p7Ifh3%u#D;J@L;r*BfZr;H$^SK(L2-{6QdbF+jUhn5ZO$=_{Y$zJm?!$(?msuA
      zw&bN#G9%L&w3=lJr)qN76?DpCo0e|cE|shc@6g^;@suIg@5$4!fhrZz9l<@(l~w0b
      z&R;uq7OG&D?o5FG7TEBxyf|bj^r{Gve~7Fq&1F1NnErxrq4*WrXCD-!G3<k>wMq=b
      zWF`H11lJJ<d}{;=^3f%vShwIOnh(%-ak_)iA4u1W9ZYSPI=J%@krI9L9hAs7w;W6b
      zeQz}7Thf2NbcPs0i6f+pAgUygP?DHb#*k4`C@2$HP|`l7h3;Z!lorXeNK`^7;USi&
      lS`;}v!edgIA-c<C1<9`XE3M#(FO$(vK5?wl7{nUZe*?1kQMCX7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$8.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5bf0bed7f95d53c083be448d544dfb8d813de5d2
      GIT binary patch
      literal 1342
      zcwUWE+foxj5IwUjY)BTl$o(Rs0X8=l6cG)IBtlgzK&sF@_~c|Wz~W|?+TDPDgdgB%
      z_+YH^!SdOUvh3NUfC9AgkV((<>C=6>XZH7>A3p&sVM~L;kUr+8{G%D1+3ulv;_w5r
      z!UNkf3v%7Je9v+AxGUb4lB*h2hVjezjY<&u+zL0W(Dq!0uJFhXl8eN;-7amOqSkEJ
      z4xclu8|{ZhNYmkj+Yfz$=Tl_{wdhqvHy9E+I?)wJ2YPg9xWzDJ+#J%oZM$N(UaJWI
      z4X-$YVPM;{xKrl7E%&WMRZ3&Xwq0Rzm82z--1Xc~HLo5lO5$r3P<|dYZ%_CKo?jDH
      zhUr$N{46xZsc=KH+22iRQ_XRVVqC*mYZy1<bWC89q5DvT`(E9*NW!3zx>UgH%CWG*
      zyoNgrBbP<Jx=<0v6z=Mn!99v5rn2xun|jkk6u3_%v`DW+lP@1f5_1}68HR60=$MB=
      zHQGVh4(zDS9Y*S%j7#gtAj{BCSqqM5eJHt>FKQ%=Mq!jvB?(&4VS@S^lcjN|-i(i2
      z4|F`lGP#0tmkgtMcSfyZnEYRp8I<6JVeBSpvM~{$!Z7+T?Ubh~oRBlH5<|Q>f-PH0
      z9KLo{79<ISUUFUG7abl1g05QcrfWG~K*T#DJo2g<3JgZO*H6bwY!V4|jfbMCZHG%u
      zR|a<O%43lpP6vG(SYMxfJ!C2L(-5QcZnBEBm;OXL^9}KI_B-^i5vZ5ecmyWh$_)C*
      z8jkh}^kV>stlJo*GkS^SYZ87Yx=#9^&onUd3sXDU2Bvp&4cz~Np`6-4YDLY_HaDcc
      zZ(!*n*|@AuNg}4qqDPs-pkiP`NnuXOM9G(%wCBm^@dzuFG=^zB#wxM&5XTcdr2;0X
      cv^>_JlKm{o@Eq%rAR1m2J%AUqs@OpBFE2JtP5=M^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$9.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$9.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5156aeb042120e9bb10cc39d6e3ae49209a93a0
      GIT binary patch
      literal 1341
      zcwUWE+foxj5IwUjY)BS~$o(Q-A|xSUxe3M~2ob7c0aAtJ!6zr10hZeAQo9?_kMINh
      z3?GbDK3G2cQI<WM6i^VXJY>={efo5t?wS4b_vbGF^Vrs)Fr-iUIsat%7nXBuoZ0-y
      zD0AO3jZL{8n4W9f``i(S#Y9en$}oBzzftxBkDI}U8Cb5v&=s6meqxSTciN@RQ`D;E
      zSiu^@db0hn5NX()a0h`$@O-MopcdSU=mtYfM<=?X=s=GS4fhxZlC48}cPvNj)v9IT
      zz2{|HF!b%XCbvu6v*f;cs7h%JnYJrT<Vad9!5!E6Ty<;yoFu+g0p;gm^Y(>z<a$+6
      zVVG=I$}a*#oC_x~8vWgpHq{)(Fh(_uG>6d|r(+D`4Bf{fIB;v8NfP>#scQwiE1wE8
      z$ZL4WFmzqi+bb1OOyH4@$9O`~#8eVqU{P-xh)wQM2~E-)(d5fVk-(IOXAFa_5jv)k
      zq#7;1WcgOu=8k0QgN#e-m_ddiPFWA>b`%}c6IIehlSmd*MTwc!VSw5ik(F_~)(8(>
      z3py6DL@xi*CBtakonfaK#{bu22E{*P7-^+U_9X<A8HVqYPI)TA4mblVGDI5_*tVp?
      z!CN<FR+2F2MaL0d!REd%=%)2<Ii~IUM7%446StyalOfse?bGoFTSP)#<AG>s+vQTz
      zjd@+V@|dG{(?OpG7LUuvLzY564G}u;CaXYu>5rvnz9X8>{DA%~1ohGy4Z);aF%Tzf
      zFx<y*AALY*JwQL5(L*F(gYXN{b<+RzOdUhNF|nJeV{$KB$J4JE$f|Xumenk6vjghK
      zI_9sEjmqkj1w@oZ^e9W{SC%oRtYAvXg~^v1w3o@J@f^#PG=fR2;03Yt5JwI#semym
      cEss^GWWNeCtYJMAM8gZC`|z4p6&oo01J?0PW&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b40bfda649d00d5e257afc89f5684701928f75d
      GIT binary patch
      literal 1387
      zcwUWE?M@Rx6g{^rEG?@P&_WUAL)20zi;7=>sI4G16-iM1JuO2SvhFtBr4S#(H!*>l
      z_`?VAp^SHyDzrdsHuH7o-gD2)J+r@l|M&^uKJq3agoQm(6Nk2cpxm-uam0>Y6uv6i
      zS>11zs-EL)2v>g0Pp)ldbGyPV%YyO)>B_1JgAmv8w!?P&eQ{5g0ux<?v9qYMCf&ep
      zjwN&jyUL%OBcu!MQds1uCFQDMnUG1fA2zi`Fmm3ujDm2*f{E@JI?!t&ia4Por5$<;
      z%9ZQ;pNq2kK@=TH=r4FB;cSVj((8uN(6k9lZD&7!Z+r~P4@4kO%-e*C=EI!5uoXS$
      z6GSnDVG~J0s@=>MZeWBE^Fv#OZG>b~qPM5+i!t27n2Axs;3X~=#xX%ilx48yRn-^I
      z4TN*DofTZs;ndVc=)4z#Pg=NxyM!K&-%|3R;#C7C)Ee}6i(^tqo0uY8ztF+LG-kMN
      z4Y&=@SAp_eu3H1r76*a7;VD;R&0@}k&Fn8`Xz_!1K<L(B!r7OhD)Ldx<FScHgsaVf
      z7M|cKfeyLlHPHnNi&$bdek+@SR4W;+w$8A|gwg*Lo_Xy0MZ(Z!H%o}rDqOQmE|H~H
      zYoZfxWy1p5^!BSIxvI3j6X#?!s{<G(@3MAtj_`fS51{XytXUn*mRlz%9@meIe=`wY
      zM-k(`hgb8wj_?>uPanfdf5+8tp-&(8UF-vVLO=IbIFDff*LY+BAkjeh%HEwk&ZLiE
      z9bvGJoA3TjZ?9+SxVK;=jhQ+!$9R}Y8g)E7%`wbbfFdK67;zgTkgUla7E(FPJAZ=R
      s$g5}1u^eU|#|yk<lmvgTkmYlZAdVbf!(i)5m|+!fLe{JaeynStKZ9dubpQYW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1485b952e40f71236a12a7f797caf9a1fa8e6207
      GIT binary patch
      literal 1690
      zcwUWEO>+}R5Pc&rEEbC`gKfTIf`bW?ED+xT+c6+xVu1w4vc<=Ns+Barm}S?syEY;J
      z#1sc^oKppcf~p)j@CUeXO;vz`KvI=sDsNUsCS?RZ?9NP2zwUlL-TnOEC%*yMhYKcR
      z0t3_boc(h)xTV}{*%`;anyuJ@s%CTgU#j|^<BZ#`oXYnVz1cusxGtqLX1g^<`X&s4
      zgvMtbo9J_uX;}?TtQP2vr1q^aE9ayeW|y!96@=22zJTFVTcESh(4C-wh8#I4usXc1
      zg1)^1>B34Q)Tklls&H6fcXH*hRGGnycs1Dyfp!b6h{w@_4hw6sUZ5qJDx2sOSid~b
      zI5wa|!!}wlv4-%1a^>0Cn-%F#+7(9<Rq(2|Q?`Aj&x=AsvlAFvagfWiPqyth8^WSD
      zCu;&bl7*(3AJu1)ZN<0fHL+bFxl->IzQYcIco4~EC==NHzt~SNsSn1n6T3`&&#W|2
      zv5-WH*D8o2t6xxO)Ya*!MLEA5M?ZF($OvrvGA9drkYzTm$*^we1oPsCk(Im-W}k)q
      zIKWb)Mp^oy;)B#Rb2bZcOEUF2F1#a^L-@hOVS(<?Ygjm<nY5~)tO8Zh6|oZo76!Gy
      zZu%SZeD#axhM#!U#D26etb<NaC1Nt+g?6YsS6?2ta6(_MYcQI;JwwYQ7&UQHVAt2*
      zjc)X_ox)EvQ-8MH?J4#KtF9;6jBY-kDr+}Hp2nF^kU7Vz-VpevIZ`)~U|DScS^+Xy
      z!BXxwH8V)Hn$i=3Iiclzqxy6zcqn<ZepQ}Qx|_O}73>~uRlv%-95o}39R!lZJC-#O
      zdfB@z{8k}`gl=IVk<b%>BQgeq6Tsr_I-W+T7vtKM?th53^dltFPqE?BBXm7P_pg!q
      zCjR4*(hHh+iOt+;I6>Hgtz4Nx^eh_uhXz-1ok>4H+XHM{K;JxM{{qtUxYCgAEoPn}
      zo>{=bJM{WddQ?k~YUw=o6EbucX6!x;W0;3yhm9`d4%#z4+Sp^{?xU^CFz#VZrspxn
      zmSP=18~?wf6Mt|fyh0kUS?_Of9B)y?JCyJzF5*2d;{&d6t>G_B<8OG3U2{8FkAIPy
      p-W7-wv^9>iI7cr<4vul0C({y{PjF{YT8bi=#8i|o5h2Pj{sR`o!iE3<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..073955092a4247b442422b38d13f1715e771a45c
      GIT binary patch
      literal 2042
      zcwUWE+jA3D82_C#Z7x0bveZHqkd~rpni5e!Bv_#VY-^g<2BP5gBztJLv)!$mO=2CN
      zeD%pk9cO&-AwJ?vDT2!2Z4}05AM}55{LXG-6B415$?l%-`+dLfe(wKs`woC(SP3D(
      zFuf)!;)7(VYFI1D4O3i87DUM?CTG+$S9EOCToRVNJU71N*c;MuH`A-aT9LED(oN}v
      z5M&ro97&VJ$;HB&EV?1|FpPTAf)rLM*=n0HO0Kk|!_ecd8l~}P8RD7U#*recGlpfj
      z(+pFw-J4D18G>nBmk}^L#t}j|iZ1kXL@>b66;puzjA6-adA%T=OQK*(1}$S3g_#$Q
      zq0V(-P=(EKcGuoJ7mrfu+h|cR9QIS{ShoumX}Oe06#MW*2qO#!ACBdC68kBu73ns#
      zS+P!DhGG+$ou=hnhZ0DIagZTgF=TbacHAfqVJw8vmiGEcj>8zIHputO!lXJp9%~}=
      zCm=O(HHxPZ3*i}t*lx?jF@a$!N_j&UuFTgX31gBW;@H($DRk*5-YJfw3fb=?mm9h;
      zXqI@<Hp}bQ4*EHc=M`G>(dj027$+D;R&B@l(6(G*`q9h?XUR5=;$|2xFzl^R;f!LN
      zQc=IiaavLD_o@FwoHt68=w^fE48vd>i)!OE$ICd&&`T{^H1)hN%WdtcS2TnfhT-N?
      z&Noq=!+DMixJVr&ss);JlUA_K(=eE^%a$(nWi=okBo(0?W;y0CuOciJ9$e6|7JI3N
      zD%pxj^&*382n!4c9_ou@5lfVtBiHSUe9+O6*rPr9lfTT7Ym_W2t6s@e43|0b%E6$}
      z^;W|$-eB0%p~))ys~m57*{`-|&!`uN9<`5Daka$$VrlJb#n5e=dal5*FVneu3S!Bs
      zf<$w6*(u74hPq~k+ZN=gBA^MMvnal_DM}@&_OIjZf>FBYy6E2xHZY*>JG%A*bdDfO
      z&t5tmr*nYb(fH&I@c2#iedA#U>DfaV;45hK<lc7_doV<Aa)@D{fqhEoZj${yxsAOG
      z3GKi(p85=Z@hxzY9I4@#gcfg+C2F{y(2^~(V>Nt{(2kSrbMz}F?PQDoR1F^`w3H`1
      zMdz39;#_uW8)>EA!YjA%Y5*jEjpV0;Bf)0Pr2uM}PH3-t)+gGnul%p|70-I7Bza04
      z*rJ4Qpby&^!A*?eTTI~=PU1H0;CGnE_k{Za0(Y>6yKwL$KE_Y@1V7_T{EDyf8?NJb
      z(%hrpef)(#yb{k+gQ$%4605Jb@V3{yKk*LUr3f7I^B(bb5!Vn3^c5tgcwKgnBJ^be
      S6upRbNUv!$#x&;F!2Sie=`frC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af23e05fba4ddb0023d69cacb25cf04b080211cb
      GIT binary patch
      literal 1385
      zcwUWE>rN9<5dNktEG;XPi-jV}MbuI#i;6cu)K<`%iX>?NZ_5!5S$FI1QZ(`U3ciU6
      z)Wjb?fDdJyvs9%8V$<xo%$fP-J2T(u&tKnv0Jw_0jtF64$EsRyOn*;0TV}<!UYaG#
      zmt`}n#*MP)+V;BTh!^?E;zl;NZ8=+_ApJl%!qcG<;ws*>*={~7?TB)qqk}MZ6jfA(
      z6PS&$gpOca`jc~nbfHxWiyXBi9T_YWGO5<XriuhD=WdE92xkoF=!~HaJqDtP6WUVB
      zp{F1nv9|lFB)sQV$rgmZf?KxiqUA}ouNyT*o3PY!_TzQqYZ!iD1>(@WNtkH7%+Z3a
      zs5RdpiXjZ^ND@-5W;SpRBZQbA+A3@#BpVVv`RBeE!v&1#7$ppz;$mPN6NG^+5fp_N
      zNG{IdVb<b)4yUG0!sfFOdeXopTqbm>Xest8t`{(!=Ab`E9Fsy?#}wi0i4F#)F~eP}
      z!>zl%45aID*Xod_wHKJ{u5=XEEar5Wgv7}V4So*S2%QSdvUf$OiF_3ExT)g?p}P^#
      zz%AS+&|CiUis*uYMJzEJznM*cs+o+^T6@@G!svh6&OEAqi7<3pWeJgLg*$di5m{)}
      z20HO(HY|?~ch@V6RjJgSI3}W56~H)ohn1VNE#DU`|K4MwW^FKA{@OwDxO!szClld)
      z6fqvVcsI}c2+y(f^Z|_YH*|jueR_H9U?1Q$`gk<LbqxI&;F$%0L>=J^d$;pElir81
      zkHH$wKmEJBxR$Bm%7T{EW@^YB;Cd#h)o|xuj$zIMykn&IjQ9Z~_{f_4#6tQU=AA#p
      uuIE*&yI2l0kK-QhGfIMg50K@1jv$U49ztX5N|<34k3!b034W@NLB9bWac6P>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b6a7291aa39f286e037b876bb7e9e45d4cf092f
      GIT binary patch
      literal 843
      zcwUWC+e#Zz6kR)s88ePGrfs}b>jfWTq#X-=Q$!3c6+$bh@%dzOG$)K_Wag;tH~0hk
      z8G^OY2S31%68D*;m{Or(n0;ffwQuMC;rAVY4_I`NA#8NSnfUG}=Sm;>C!sj>n<7zx
      zzh&ia5JzFSBedM#UTP?LeiFr|))x9mei6DA%Gg1UP_!I=$YK9mvm*oJAWxX@XO?GD
      z8@~&!tHekxV?y4vRkE~7sMZH<V~tVkN-MKLcvl%5w%j1(YEerTKp6GlVAw?#V;%}9
      z60#MWFjiMuemy;I%6LySLrEyrqd<fW5i9HWf;rnZVRPW>&+m>$@e(79>_%IJ#lHvY
      zU)m>Y^As*7G3{WAP#Ltkhc|Y_>Ews*iytV{{?is=D6K`9`%eP|cQ-nX1Nm9mO_cvB
      z_TJ)oux-s3u7x5=B(LiAvkSli-y+NZ5U5zRC*g;gVZQ*E<p_Hp+0U?ct1Ca@Re#~d
      zb(%BIGS4}{1xhTv)OPU_uUK<IlzR-DtS!TE^#<N8CZ6za8o%VaS1Cuio7dy8)(mD-
      R^xG6Ohxrsm{7u^49|1eA+6n*w
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportContainerListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportContainerListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0134ead63fae2873088110a60d07cdfe14a34061
      GIT binary patch
      literal 1211
      zcwUWE+iuf95IvKGxG^RP1wspyhBlO3Xk9LEK}a-QR4H6UAv|yFrE%rhk?kb>7E&n^
      z4}1V01<bmENOjsq*6z-ZXU@!=8T;4oA3p&+z#|PQ!p?yhi7#e2cD#La;EK;?SA>pb
      z?x=mw3VhdnCp`Iax6*Osc;E+7%l9JTcrs`^VI=v~kRcQmj_C?UdD}gZR-_?ID92hc
      zj!Zd{USuYG3E8OUgq3YVy*+O#P4;@?cuw?`uvwkot=1uATD~oFAY3w_VL?Y41p_%0
      z3F)dbD6~1hH^Y8c1|LM%m4wB%Zwa>}0!Q5^%8W{z@O<v*r}M|<<SoBH@I9vJnQcp(
      zuy$P5Eb3mUE7zi92{$w>6IRYNHE<KR2n+i%YV{nK!AsTJ6utE?ax;h9C~H_HROc<q
      zz#XhHLw$c3%1=Eh-DzXjPgd|cVbs)7!G?yr43SL8z&%t6*Mw~+T?rcrie>~*9VKqp
      z>N#}s0RL~nd)fC#(pI@`8rV`fECsP{RvP-AKMXAS(os`UN-(sg;u4HqkF8s-2t&zZ
      zvwZ3>pv<$G=5+y7EUFRZk2TFJ2c5MSS$d2VKY(6ue1lQ{j{H}?rEr<|EZYEou*ka+
      z%Q~*$DxXXwN)v=v6NEzJ2-oX}Fb=VDg!L(mu3l3XdD3F2(y{pjN=Y@;8H~_42lW0)
      Z&^&_{&IC=tjD5EGCxy6b;>mmn`~|=II7k2h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicScrollPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35c71e2ffef143e0ce59c647e13b8670e6d35cc2
      GIT binary patch
      literal 10659
      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
      bwx5{o=Vtq**?w)b<S<*8*-kK9kJ0`=Majd|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSeparatorUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSeparatorUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c8c913876661f12d093944bdb302d022a3671ae
      GIT binary patch
      literal 3047
      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
      ac!j>ZNA><m`+Ft0H6Ct_hkM!ayYde+=zp;Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27bb9f6b590074879852bcd322a268eb25fe7c85
      GIT binary patch
      literal 1165
      zcwUWETTc@~6#k|y>~_0K<syP0Dhu`o3*JqQ2@p(b3Yt`S@NK#sV99ou>`p-*{TcoO
      zpM4M$9}LeXCSIaH$9QJjAZTN{&CZ-TbLKnWcg}1-{rd0`z#<-KNHEOq@_qi&jt*RZ
      z+url|mR;wO>)6X`ta)xjgc}uWQA3Jh{B-P6J(3}J<dP%Zz-Q=}J8onx5Ms3#$TFRH
      z==!dF#8A%lb|j9nJx(z-8B%CDzsZnV2^t~|hKz|m^czUxoCyu*8Afv5j|@~@U#z#9
      zbrC-2bx$x1Rs)B7n>=*Yy5meKNesQQvldBG#^Qe9A2x$lw4gx$$xgX>T(D;%+zP^`
      zXfRB5Sn>mDi+$lsyIs>&WfNZmmoTnjtkZz*aV9Qff+4*vWG!fg4$&XZ<xdfKTHh6p
      zENi&JFmzhblePi_lelW)8m=?+5z0n|VX}j8M*B%SG*}E)FSSwFvnFmJM<pWcioY*H
      zskA3^`4<MJQ7}<NiNTDVFz~$P!wtF`)PY<@^{X$I%P{f3LeYha;(XNiY8QbNkZ8FK
      zM!P<b-MH^(c+RV1M55yRB3$u!6bb78z^d<fK}1k%Lhb|&6ZdeR+)gOC6m1G?e2-!5
      zuX3Gim9aqgGfAHv%VyOjB`ZO%2A%wAvQ}uV_A`azI~ax1dzf$IpaB|<IGD<ye@2$9
      zi}5;x3m61qYY4;SBjL2y27E>96wNcmBa9wna;<cPsbfs9(>(JUnYqLf@^7HerD*<>
      zYFu&Czd+Z&BCCJHsQw*O`VUz8&p36V4SJG#26LFFlsa|TCY1?_8lgXzeo~Xf%^3F<
      TZpR`R{nRsvJ2a-K>vw+xH^Cty
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0941f4c826765d3e0b2a53d14780930e0e6b82d
      GIT binary patch
      literal 1165
      zcwUWETTc@~6#k|y?6O^@auGqWDqC#JWfAYGF#&=}O+k}d9(<c_2UxP~lHF;MM}LOD
      zz-J%C#0SH(Kf%OH^nV!7Y#Rh^Ot;yYGiT0x=ljl??WbQKJ_5Lj2O1I#GrPRSU)s@u
      z>u=lp9^bO-JaQd-MU7R@ZHTZ|ww5%c7$#1~F4rR&az`#Z(hYoue!1gD)*>NRdVws_
      ziHEN5%0~>Pd~ZkMDBI%{Q<WiwmI|8;snwt%2EdRu(T9EmNt`pG;XK1=zWb5EitCGw
      z=3ZTd&w1Sw3`3Q`;oc?>UA68wQ%Vv;Z|tlkl9aZ%ANYrRK{HxZp#Nm2+&nJWGZAhD
      z;htzPWIHVRfwV<S_|k6IbWPdB*T5xAXc+G_pnIH&%a~*s*cP%HG((5zkK_xd2t2Lt
      z3P+YSTwxeKE$B&Gfq^MpHE|8s8TtsNR%V#$Ae_;D(hdz4gVjrI6!wgX8^}|M2)pdJ
      zL@1T^WWMmiz%+^`W--TLMot)b-pXN(t_F1=UsnC<i{&y*{;yDUp`th+^}W(XAO$3v
      zE`!mo&to_4`x%}K>KKtI`@RTQJsw4Z`aihlJ6;eG)Vh#6LBqs7+$Xma3NA&P!aCn)
      z82_tWCtD>f()~=*XU8%bbxFxe(5pcw{{UI5v{w7+;_N#Z#kuz|-^M|MG#YU*l|lcE
      z3|SZBbs85i1jN=bM#x9PX|E0Viq<KbbF)VnJI2)d+!3<JnBJf{_ZsQ>)Da4ApwB00
      z{*!7#anrv**S{j8f5Vvm9a;ScEd6Jky4VIiNu9$y7AU1o9kxkjf}%$0&!wN#B(W6Z
      U-oouz1f!pNhH!_*6m|XXZ)V>ie*gdg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$3.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a9d63bcbf4c76ca2e42def72dc63f8eceba249a
      GIT binary patch
      literal 1166
      zcwUWET~8B16g|@xcG)hr@*#p?RTgYZVNv`{jR_D;Y6_YlJoq-<4zRf0CA(9QM}LOD
      zz-J%C#0SH(f5gO(=r1td*)~{|m~OK(ckY}y_nv!a`{~z*j{t7qzJ>(D^e*4$FYV~S
      z^|$Rkk8jyE9=VRaq{em6t&4D@Vl8M$F^qL$7i*CWxg!@H=>|SSuiSAXYn~XZ-B6b4
      z!~@rN<wJ&YzPlqa%Jw*6)@4Z0a$%DpwH(w%9~jamdeCbiiGC9r&M^$<&pwi=y1rOz
      zHfkb##%rEn7^nsg_cnRxs&(6$Qj!?D%g$OLNokAwfq&Qtn$f%>{U<ub=5fKEif}6k
      z8=}sTYiG$1q%HP^FYQ)MSCmcp8n}ot4WsP_oQ*Sa3F8cX+d{4f&CsFrhw_Dv1fJA(
      zg(J%vE;9^v3VPg9U|<4QOkBk^h8|+ss4z^l8BS?GX@>@j!Rn?qihJ6`b>yi;#9i_C
      zMJSc_WWMm+z$A($W>8}2kDM^@yrsh>FK}K^3-T4!u%1{i!}$LyMK>yn15)FwXDB2<
      zqUkaitpYuA<Hny#bWR;(Fe|<<!ex&~k)R8ZS@9h&h=^)c$eo~W;x6uy+X)4iqLsob
      z-(wj4t6nEtWz5qBP11MAvRQRY$x6_xK_`D7S<AFm`|0A$I~c{%dzf!yP=-b$22&aI
      z&&ZN>Azr6(9s@vZ4PuCVB%JnIgs*6wqIqiO2qVXsSS=kPcZ|t3nx|ePJ)1Z};SKcJ
      z6wQA^jj7!9FVOX`$m-uPqJKwD{{c(?8HX;mNKZmfVHR@~Ql}Q%q%uLMVfuIJB{fOh
      WjCmJuD;B}%r=9`arZGirzw;aKN+Ku#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$4.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1bcdb96da8556e01786673b9ee1e117a45875d87
      GIT binary patch
      literal 1166
      zcwUWET~8B16g|@xcG)gc`4B;{DhsxyWvk*>YD|D&Qd7_b;la1*c7VlYm+Vf9Jo+>I
      z1wQ*ACO#OR{XHgrM2&a04T2KWZFc6)oipd&bMI_F{rd0`zzy8jkYJeE;Vu5sj`m%D
      z%ii<&rd{We>)4BGT=U$92-mCDyoMCR_(|+SJ(3}J<bosJz-Q={+iql)iLurVWra>W
      zaD7)kWT@o2I})R8j}vB1h6JtTHyBb&K|}O`A#I`uy#|u#H=*Gi!$|JzBLg+p7pu+P
      zx(J`~x+fS0Yk|YP4Ia8`-EpRrB!=#?v*t-s+TwoTAM6IrsH{l;iB7S3T(GAi+zi59
      z(O}4SvgG^H7A@gRyIs>|WmCQeE@E86Sf>GJ<4jz_1Vi7JkZVCRbSVAdT>eA?PwG3u
      zkrfS>8HP>@dfZlEU=mkMT*Wnp9%5OqGE8<DPH8`GhX#wm>ZUe|d&b0d<fuf%UG-Zc
      zluCOtmw#?x3I!9hC^Ga%P8fLJ;=!U9I4`ILxvFYdPpp?=;(wK*8x_R?sqwWl6cQlO
      zbQz3xfgZVW<4+|zr;ah0Ro@rklE<S+&;=M+_8l*Xh-yX1?Vw@eF7A=r2?dv;ox%#=
      zV;K9ZUdLM%l<9&d>APc@jJl;{CFs?llfRFwC0eWfbYb=#j6(4}%(pRUfJP$*QyKKn
      z$dGj*UZ-&$gFtKzVVHa*oc7v;uV|g3d3yE`qeqxrDIOwwgsD}Ur(YvoN*yBq26`z$
      z^Pf=TDmVQLbp0zb`ZtW~-;vdSz|w!lp$l!&<IvM6VU9xT)MA@dCI~e`|1Q0xCW)Id
      V?=8&7A{hPDGl<(Xrl{?AeghtPB830|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$5.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4de2aee76e4b5f7adc7e18132848f0b42055c79b
      GIT binary patch
      literal 1142
      zcwUWETTc@~6#j-5+TE@c3!)$ugbFQGwqEM3#smo_HLaRd`{3JjJHV3dF78eX{uF<K
      z&pucaAB@lbDC3!FMU0K<Zg%#}oO8bOoy+czpI^TLxP?jr6AbG|yvI-N=*0C8>|>Ab
      z+btfsj{Q`v4bN?h@J%&WP9V;(c;0rW70Hl0a>tQw;4@6gLpREm2(dN}WQ9B)yS^)*
      zFjVs6xo9if<7Cs2A(>VRO@{bx&=v+5QWhpLWg><P7800dxRf95lCHVFc+u^&MEIJw
      zJi(Bu1rGO`JapB5co<hHF^tD9SEiIwIqnDk`%ch}N(%I!=oFjlg1r*qeh_v<n_+p#
      zlAlOh^n@?%K~49ROngmT!D0dn!v>7Dvv3tl490<wji4JkM1L+{I7i@R>qt0~ntqL8
      z_IyIm2N{^iV#UIBtWp|;QuTWxl!{+0UwEsuISV(i&R~+Z&QIM=x1*I+rOaC>V3Q#k
      z3EAXcSCubcRphfMTDW=UNIln%lR5>4rT-;QLlS9r)XUlk(qv!`(tYOYHvZL;ZRNpW
      zRefKCyB?1sLG4WM`HmMvgi;ssFlZ-mpCLC+i!D6FBLZ+j!KE1Rtn*`rg<+-7zK!3i
      z3Q9DXG5X%v%#4~&k|yX$AW7#2NxQUH`qbvuXPBGCFR(soqcp9iHl|t`3^OFn>wO9r
      zkpZ+ci#a-@>X2>#_-+Wew$;bw@5t7ReJp>#bdla`eQbP0N{OW1_!DTJxWR}cX-pz*
      xOkvSTV%0Eo(3Jt)S<p3X!=_+Knz$1EM^w1m8tD%1YSN5ub!AYdHI93D@Cyr$6{P?G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$6.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4724dfc1c7047c5fce0b601a07a9e63bef7a5fd9
      GIT binary patch
      literal 1142
      zcwUWETTc@~6#j-5+TAX+l#5b95Gu4#*?PlEjR_J=YFafx`{3JjJHV3dF78eNe~Q1r
      zXCK7G2jjCp%6MkBB1S^Go1Hx~=bZ0+=d%0r*SGHgZljjM5X15TKjJ5LbnN<j_Myjj
      z?KY2G$9|^P9nbBE@NK=gkwTK8aNc&a9m$Y8a?_D+;4_TKeK#sr39&H<WQ{zYxV|f&
      zGSo_gxo9if<7BfVLo%(ETMWsqpd$=0WGoD0#6$w47E%~vm?~ZDl5M!Yc-iZ=Mfird
      zJ;9J~1P=FFJapB*f0$G$F$~78xIrmpirf$U58a>_RTb!e(J4091$!;R-5~6W4#Rw(
      zB|nz7I1;|J<C<<OnfRKxib4uA{RUiYXW<%V8H_z4cY<E%5dFzg`5b{)?E~RRYWj7C
      ziSr4)h%+!ThXo5aut;eTO5Hyap;Y`5rSdzaEn2vVWd@V9O=?}Y*VW3pQkE=~vC5E+
      zgluuIr^;8VEAn%wSh#iO$WLO&VVwfQ>}AQ*kVKjt^|EmRX)-Y5bf3GrjsLV{U3oBA
      zb>A1^mdB$=P&>2RzT*WEp)`fu4>~D4U?>jKVhfM(m;jtma4BM*O@7EQ)35Z|xA8|+
      zLzM<ILEjt8<<xYNG(=AdX*xGZ+M>PEXI9s~z+A0-h4on*Wob3FG1bZ#MUJFtz0Y7A
      zc|c1On4~kR4(VdR_kF;nwNqUAfw^Yo6!RZ3R-yOODONrqqeRlK{0%fs++gI8HpY=P
      x@+cUSSTv?|(1jT8Ea(!}VN<X)O<a}!BP!e-jdU0HG-*b+y7IVBYZ4oH_!}<n74HB5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ActionScroller.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ActionScroller.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50966e9a5b545074f32df26473e994524ffff02e
      GIT binary patch
      literal 827
      zcwUWC$xa(V5PfBPJm45GYXV_SEW{!)AjHWCg`h-oWFaJj58QgjP0}#Tpq^p*Ee=s6
      z4txL~gv14<x(9_AA>>PS)vH&ps=E8`@#Yr58a}(o5!R2zg}CyPOBMa}&O&kI`65w)
      z_tn^DsM=B=)T`S;s^X{_=r|0ec2OWq{9m~3C#e=en(+w5^p{GitAzPRH~KZM*i?~9
      zw+LSrx-02m{m9^2{cy2GDD1>-*$cwEG8`03$fK_e7yX3%f*}kvR3vxLPkpKPg&#`7
      zP$LdR*b-Wq_z5hSEeIQ34fNuU%u0z(5k_B~m4|67&QhJ=_+cEJuz$$I2`jWG^--)(
      zWt%XQU5O_yQ%_#VDD|>l-;7@~3po}hOuj`Vl$!Cm4&--bSMC^p#S{|C^(c~hClpB{
      z6Bl!YYB$Rh`a9Rh9AAH){~1*(<_*}(G2)_!Z7)YHjvYQrOUu96{6YEJas~{>C+GnV
      z-J`<s5(*X_#1LS;VT>3Kd!rb$eM)$b56mNsW8$gDhE-&#XXzrRkjq=yu`Kydmhcgi
      TY;%~h{AtWsVSX0O;uGjE5XQ-+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..707b9646c3071c64264eedb356e066f754eecef5
      GIT binary patch
      literal 889
      zcwUWCT~8B16g{`pu3ZNxMXLD4SHZR<EE?V*JlJT&H2A>B`*b_dA?uXvPSGF2FF^kQ
      z31Z@dKfoVFxU+2no0!;#y?5^HoO91TGk<S>{{ip@s~&QMw<q#UehZSX+8hU`kvt08
      zGSOl1&c(e*cT{|^Q*CyoIaVK~=|n2_kSCNJE{J$L_}o5Gq4iK8%-?5IXUf=M0Bz~S
      zDx+dT!FF|0T_>!xMrpmth%Ifj-6qs)qe1G2gnYBtQAH5O1w1_TF@{NjB1(j@nmaJr
      z(njs}zqD1nFWZqKlv}+}Mu#%it{!gYom|4kNS(7jv2>AGY1Lr2Ls-lXaNnT!Zq3Sl
      zJjF8)vxMp>9R;4dkt!@a>_^;dzsn=JL9FhXB9pxoc!fE3F-akWnT&={1Ex(M3s~~7
      zNSOY|Z-J_7<HhP!YGVn+*3A897=pjo>&Kz`pi_G@!q*&@4camMDw>f@62&%;XAERX
      zd|UiI0F_Ga8u{VoxGuuy_=u|wu5+CI#_CUq#xG1<re~%&7WfQsjxtA)u6<17F=sXb
      zl_A3}XU9-(TtQspiAz^_agF&qrU_O7T(E-gT>nTJD+AP!(XE!Tl5)LHaW&M_j_eiR
      HLIZRQP#4^=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ComponentHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ComponentHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f12ca7c11b05712aebc7fe8ed57e265665c52bf0
      GIT binary patch
      literal 872
      zcwUWCZBG+H5PqhuJ$s&T6v1~ZP_f0t(?sJ3jEOeBU>ZJv@O^u?;F{}Rvv&pcN12!)
      zMojzx{wU+@wrWrk`(<WlcAjTup55<1j=ll7i?)Xn;r<)3C*DT+zS6tVAQd}NPvk0&
      zo>;q?szjQtwPq*l4>B!v@j~b%mBvGb(6G=*>=%*T<E!X*(c?r63TX({;<d_~cL>Yf
      zN!qM3;-S*2ctmKoCWExM36)Nk$QlS|0-QqCM;T`Wc$gxTTee`jtF&An_IuL261`Ls
      z>fJ0B>9#P+#^Yqgj!SqjQRja&;pxNpS8hY*>b*<|i=#bGlIf`pc>y2uxZvSDp*cz8
      z02l3MGdzDhOhqA|%d9U8^RC7`mjhhERn{?g)r7fY%e)+stomqR!NYaJ><QNa7HtR5
      z$bnG0AP|ew_|F~$e={4JSUyuu;A1o2wpc>2rnNMkROGp2p~Jr=!~#EJnSUpRp?yg{
      zl{n+!G}{_S_c$)G_g8LxV)GfnM^`h=w#qfY2ZU?`clI%Zx@E&G&W#z?*;|JC$^raC
      v%vpDUONY4jhiS^q@P+#xF~e8KI6p#-8SQBaO~-Y^;g)gJb!4%)wgvhLI`P_(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49f71ee9ebcd70952e4bd06bda5cc4472098de8d
      GIT binary patch
      literal 920
      zcwUuKK~EDw6#ibRU3WW50YMZ*)Cz4)Sc%>+9&AK08#y4{r`th>EW2c93;rz=)Pw^!
      zFJ9oR|Hb%b+C*y%soCs%^Jd=r-Z$TyZ$D4Z0IZ_vp+s2Smq+qLXpVLIK0Hk1ZrG7V
      z$KeZWw-Vh|`SwPAJ&SwhwM@H-$~}|`HCq-Yl8ZJw`zkIxR0#8KR~{FkI#Ov7y0S={
      zLZvDvREj-q>W>La(I{QlxZ;^kb@80gY>ZaY+#!_PSy%ZWTodqcHNY6g1$@*9V-1@y
      z9_duQ?HzPf{!VrhMVO4TSSC9%*ESw(mMvYvlaV?PNyN;nyEc9$xl@<0(5L^mG%xLv
      zIs2H!Z4b8y^-+2W%we9zF)k)d4>5exPg@JHfJF~?2~+<#7Pw~x@p5&@918;Rjpr_5
      zN$}m3qReo1u$A@lSgmWP-VnPLi$M?@DG$A!NMjVMDE`!kd-E*#zXGb&?2!0H+So_H
      zw#v~{l=uUJ)}v1ltuMI#k)skO*j6|P_=-uk!mR^L;Rbuw0y6`IHhYUuZJj`z;O1xC
      v`3(`cqjUBb4rZpGI)JgO`*^?rJdyta{LcQzrGO<obTvy@c2%~;EE=F+*1gpw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7689cb38f05cd747e7599cf1047ec6943f0cd9df
      GIT binary patch
      literal 1862
      zcwUWETXPge6#jY>GLuOglHn3>1OfqeHwzOGQP?1w03l(MAiG4xYwt{(OqiWnXJ(_k
      z`YY5IpDat?tirYQ!SdOk;k$P&C`-}Py=%gTX!0;Ur%#{Dcdp;w`|4`|Cm;=E7|yPU
      zRq>9KyzPfePCXEBI#rSQt~065a^QP1zCJU0HIC{sPH#;ui*QL^7NHl&*g!YKfYNsY
      zVmk}f73ro1dKgADw<<-LIGwsBKS^aMV}_n|*-u8t8IF{;gP}+o6MpEY&oJb&+f&Ic
      zGIUQxp6ms~LmUQ73tiaB(Tf3wuB;N+S@J_U->6k(ToKhkGT5ca6~Us2eRXd$yA@o9
      ziEVk_JYf_<f4$>@;ZQ4-O>=c|RfZ`AVc}ssYTyxu;s2NAcnptIL`yRL_jO*>$jk0*
      zuC!jLavBr(qKRRKz9{xdQ>1<rS~!4%21Yun+7jkCgi)%1e5)Y>O2eM)efC;~FXnET
      zIKp81;VOBSo{21j6^N<~bPi4A$#PAsL~+G;Z<g!ACCerXitC3PxW`GiF8nZ6+{DEA
      z+C3KTO%o>xyS|r{gT%rqoHp<z!{~Mj#PO8sfI+IW+XzG|r)5-=X?&}f?402^3)OFl
      zmZoSsiay&iQnYXm=M7Ll?%L#;<5}gwh^0npVv=D;je0Rq<-EXg5tk?gD%C>ZEsCJ=
      zK$+TUHE@|>-~ApYqekdS@0zOnoU*7u&vINri8{>PFlPrlz)RI9PUkEZ`!J1pjs;vL
      z46&?5t8(MC9?ouUMs?~rT;nLCLVZA?X>_y>+Hw7702;v}#|sL<pzyp-%c{69aokV|
      z-Mdz@$}$bD8dcT142%+ZV5?!GIaU*>X8eJ9AjnbRwIT1{0x)%BIcmhNyyWYZ(a~MU
      zl`aFH2?_jEAd*C?nb~wHV1#y47kxXx1_soMqV1fadoL_H`{;Ix?iu=9`LWNz^IxF<
      zGc7YnXAj8$-@&GnYudst?500C#NL(#cABKSiTCMP6GL+adtVd#Kfq+cKCFo|1^cKb
      z#tU{%6Gsd7m?nk`_AyQDDcFuCc)>nF#QPY^-v)2u3H7^;r<<7g7*~`7`#Jr7p6ID>
      zFg<^)B{B0Q<}z55etwO6y~S<f#dTBb5zgw^zNh^BfPValA^b#p>SyHe3r^x!6!9A_
      z;CIa74l1|{fj>~gpJ?DOyo-By4}arBO3WuLqb=oInP_K8Q7_{ao&S&UDqbV64a)fI
      Wc!R2vA!`ap6|T-Kbs4>RVE+JgDEbos
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ScrollListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$ScrollListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d868f9d0996b669682192bf0321ac52d4d38669
      GIT binary patch
      literal 1574
      zcwUuM+fvg|6kVI%Yzd{@#kL?=pe;(}E)-D8MeB6D75cz~Gie(n5E>>4ps&373Hk#*
      zGXpr|gCF2WIqs7b%1x(ErYGm@efBzQ?X%KfzkmD$Fp5<l8VKXt@`3y@Wge=P52-y(
      z-b@u`Q!S-3V$5r5SuxhLv3$wUH7%!_mQqm+AKZkHC`@TGm%T1-D<#VZFCl72<wGl_
      z94HklwOF!Ly>ebi@RwCXv10_v5<EpsFYWMrgW$EcR5SLNFqo@{RGKU1)QV~?5EAkF
      zN)iQvdr2=Veh^wDG(rl%g*FLIXeYShiGs*<O7P*1nBA4&M}W|rQ!C1={oSHstjR@9
      zA++Z7lB^YELlx_4&@ChoChKBzt*fkOxK0__4I#wEy<}#x-Oe|Pv8fxoN}15>pxn5H
      z6){f>h5d;6@PH7j=QIfe7$h`VhFsdI-Q+}FRAXzGtI`3)k@O)!82kTf3B!0ukjyQ8
      zUn@J!<Ce#>i47rXL_!Meo<`Hotf{+#X4@5-c92<&VZw)Tw!n>~gh}B9w`u8n0Y;sc
      z@B}j~-$BiM$~cA<#}>qfw1hdaK|0^C&X#0Dvl}A+x(89ASj)A~A;io4^+W874&?QH
      zqok~=w(qWVXhfXAP}vGMXi1YzQ(^xFuR05T>|_`JJUku=Yx5t#kuWw83W<+^*B;I{
      zA;@DhuU?{oAD}%se2P%=J6e<OQ*<O<r|3H7cmuk5Y=s-3C_K~+KZOyb2<~xQVic}L
      z7!iI8+-Mc|Jy*J~;zk5+^cLI%;|?(H5aY&e-22SGhAU=0ti|SOs}UM|d6#q6=c<PJ
      z<OxD2=;K$%8HT<h=mZ{}Vf2`%U0={5B2Iqlo0E4|vo%sZ+&It#T4)Mknnr|X`5Q`O
      zl;$x<3pT+{=fDes^ZYC@9l}%0RB0_#X?c@jR$jvoh$ua0(JwAxc`vZM_QeUTXIQ)q
      etLr+}TgH0#7c9{(;%LUMS;DeiCD8k^0{R10p;%x5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$TrackListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI$TrackListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5624a4a53065055b3fb0f7a888172791e5d44fa2
      GIT binary patch
      literal 2631
      zcwUWF+iw(Q6#t!eVcYH37Fr5Y3SOwtE|-N`P%K5D6kROP8?~*VPIsp5z;tGvnQgg<
      z7{x~uUkfH8!4P9Hn$Xqw;DbhD&}j78XpF=^!+6f@bh<4<n$7NaIoIFsob&D7f4}|)
      zz)rjsM+u?jv^J@oO?gwMJ(kK^+GuJ-^UO@@p#1h(rf#?=(vAJDmO0a9dcI*BZX7Yf
      z#$r2T(y;y1Q77jaX*-+q59nIfH(WwxCg-{=3q*qiN-w$_A}n`CM?J&mjX!RBjXMaN
      zx|Whu8(Zu(ZPVXJXl`1XN%H_9*5T+zISADX<wzt@ij@i#s3DX#i9&UkX&c9K6C;M(
      zuZ>s+p{C2pXx4z{nsN>=W0EeRbxDyIGRUc`34wpe)yBpQov@(*Af-+D#cX!Uma{HL
      zJsRRzM`&D1G==rpKq%A2Ju5Qt!{XvGg~#y(^X3JLgt`UEA1T<kCD4dXaXd+={U5Qy
      zW;7AXO|R1yCiH-};RKS{8pjsG+6N+0*oN)Q+?e4H23BdQ!w!XIST6Q03Qx@`42fu$
      zLR>_Rcv|5Z30upe0nN%8Y43o3I_LSEnaH12XcN;amLGRb4yO60V<#AOyTU#^M_4&2
      zc848zu-oxWk#eM_bRmfY3S|<h9vupY7N`%+sY{&03eV#O=GF`IDEQ#EA>OWgNEHdo
      zCJP3Mp!P?dN#U;02;HvXd4?_#jw^HvQbE#ZYuSFM-^`rxB(+|JK1r>5)U@>u%kd1)
      z7opVlgu(z`;=1_b+`7F+h9_#(d^&QW*<+T`CPWV@4C7@+!7;iW(`Mb8rsjF=;Epv<
      z;ng@^Vd4FL6kdbI9x@J7ZQ48uwM~m1NLMr>qo7M^%H~QZP(~HTgvT{r#&s;~P|oOg
      zIxNPLwu4a-LsQ{2&ah+e{+bKz!$Nyyz+bOn85$EPOxOwzvV@9)>wa@WTD^8bs|S}1
      z(1jld=f3hjp+ZicgqY_$SxII};jCQ5T_dXnj45y2$ys_|5T(!t!_2>Ky3A3~U5P#?
      z=Vpw<X7GqC7}4z#kbR_Weh)e<jjPXTR4#ZXcvyK#__2=hhessX#ly8s))gz{3FGr}
      z)~tZy-%38UqJ%#{BDrN2Rmm^0;tM{Npf=P5oy02Mi#}_i4y$?PV&IX`!|$vuk+aF$
      zsEW;Et*p24XdWA<aVohbkLFpVWZgN7)=0Q}8vCQeo-0@*2mYq=*vrd)z5OOug?Fua
      z94y?077clH&gYpFT;!sRJk(JR>uHi-q$#w}c^-ia=%b6!=@J}zJHV1;PB`BXi|o=k
      z!f3h~$BT@*gqyG;+!4AWq`QKM9BMH|?*(pG7le^p3f&Tp&bgqi974#NDJJQo2a?3R
      z)D-c;lvEc{(jMs@n}(7D^U@RE_Oq|SJWgK0=7vab<VIjz70bi8iDucB1ltXv3Jb=Q
      zMf&<I_Rpi;hib+!jY_)8M1R0Ue~2Vq!ydYhPP&0!`k0@JPhin4oTtz5E`5&o={By?
      zEIy^LipZadSegl0+8vSKiP4CBD<c0M%Z1;|l3eMcHXD0bo9zw{rGl-9u{q2kqak8u
      zkejP;p16a`aF@sHk<R2iBP~1_pl`YLzGFtdXGZRD>;1s3cNgvSBaYBdFz9D)y<c#S
      ze#JZVTT!oEj##)H^~yP%4-wxA2dihP?XWI(4Rs5Oy(~6UI#YCWy>JtyUoS5M{lNwO
      z6Akni|CjuYZFG;P=AWWs^+aj*;6l*yYolT{p*h@@;EllVMZ5`lDFjSCE`k07zd>7R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSliderUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93fef654debc0cc1908f36022d793e357575c6eb
      GIT binary patch
      literal 25517
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a81f3909171e92da8935d6a1d175946136d8bad3
      GIT binary patch
      literal 1216
      zcwUWDTT|0O6#f<pp&`;*prB%<P^1?nRJ;d$uv2GnYH<eT!MAO?&@gFIlN9t{_~h+h
      zIHPsO2ghfBl;hd79q1_7hh%rpp7VX*x$Ljs-+uro;(>w@hSdXp$Y1OJk>%{`Et~J@
      zHSSxc{z(3JT9)Go@5NT8s35`+m(IG)$#uJSAk09)I72$L)&zHa{h8;sgcrOiHONU+
      zEI$wgz%U*(EI+eOe3hXH4GP(`94mOpkk1YoliOv8l-#<Ag5jJ71rsVp5z`PwoMAL8
      z9by&B5!H6HCcNjoW($Ty#WlIT%RNh;d&Y<q%#a(7I#VRUQ>}sI8J4@k|5=*yp>P6H
      zJb`&iRn)D(^;BHMf`Us7sk7rWTt<pg*%v|ow#u8tIFs!P?)GRW@JO|xVi8LU(gXeL
      z-f37yM)JREbDPqg&7KJFw%EwMl)A2JSVfj$k~p{R`YyNIfARGK6yzC_C+qg4<ThKb
      zL&_!8H4WGMP*rghLaER}Ge!flGE~7e+`tAk*%RbqigH*#hK<2dIp#G^v&)ef6SAlb
      zi~nmEgSz9kJySfk<cv%YYFd-g4BD1FmTd0(f=U`IJEraWMEg_(4Y#hrz$U|j=?NZ)
      z)85NUzp!ULD+B8^=%e(FfyLu;-sxqJ&=-YD)=ApkrL(lC`NCId`EQu|9QvG>w(v$q
      zzeR#}8ttWZ8Z)7N7ResU9<fN@rNmsJg9{y8`H1=a7ie@^`H37Y1zI{-J4R0uF7S>}
      s-(wCRkfJq>Pa#vXi`HY3yPLQb=5jlXzeBna=D@=H1n$v4LPK)@4_W0r<NyEw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dae834040ca91306db6387bf085fa6053940dd0
      GIT binary patch
      literal 1703
      zcwUWETW=Fr5dMziu(q=#PMizPrKH7>jRR~5w53f7<VI`i1eydxcw%E8l11xX%X^%_
      zU+KR<f}j?uk5z?efd_a1D$)PY=c+Tut6WH1*^+n9nKSc!GvCbFr+@$SGk`O=X&@#r
      za@W~(?%Cm%>#y5Y&$(l-IiXv!XZX2Xb$wsfuIIB82I2w(>})$*%9fkbSN1|s59M^(
      zsVZ3$NLF||7i{?g;+8<Gaw}}l6!vnguyIo0klJv=>^NmmXetE`nR0zsT@c7wO~#BC
      z1>&<oStcRSVIqlC3N7d~(S|O87HhO<pj)8xK!yf-n-=G63OzW&m>&t8Y%;g(1Z9^(
      z1_K;8C~(Zm7e3H;x}@B|FSwzS6hr=8#>XZMB&eK%>&wM@Wlh#roHb7hbQOY<;}xBn
      z%lpU}XPpH`o6btW)Q!AWlVK>!L}-1Om+t#KFLh2QU>O(@INlV6iBaSPjId!4=-rpv
      zmB?{2g_AgK;FLi3znz<~LDQ3T!+D=8E$epPN|8bnCeCtuldfN?$qJ>(I)7&3b9_O%
      zg;M2dj$Fr^lb&;*B(n02R(xsVD-LW8l~Yp$C^zXj@IU1X9M)njNl!YY7NcA=afwml
      zp$e*8#f*tr%#p6^QZ34Rs_1xi>P)xQXo~GQRM*wDyRxKo)t60tgKq^A<i9|}>j?~6
      z`x_XEpid{;a0LYe-w7P~FCP;NSR_QMJ!0>%4wCEZ;!}n^O9xH`Qp-WTR+5)p9<0p%
      zww`8xsxi;oS<j)_p|R_j_e)+7QaTG#Z3JZ#McfeRcYTuB^H`0Ux>CDCPBDFZ=502p
      zR0F>;Xc(v7w$Qh$h4gL3A@Gl`0+3Gg&8A(P{%tVH?=Y=a=`=>~qq(t1XwN-HI`;&b
      z)%3&@^sLgh?=kuxVdw$5#Bh|Jy#xyiZpE(z_?{r&BaJ^XOjZUZD13rXwa+nRBN~sQ
      znI@Zii1vp#zKyXT5Py){#u>5<b&9{XagJBpIKRu)uM2oa2*05nzoQG!F^Ct0`%?4u
      zHZUVTUQJ?(7zMuGVZKCf_DVF+FYKbHwEYzc@OlqgVh1e|p@DBogmycsV|b^I>B87A
      z$n0$A$9_aUhFz8}E%+Of{4F~0j%<JIVH=Lv+UV<e71wn0zSpr!Sk}=oodK_UqW228
      Ii6?OVA0)n&Jpcdz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$3.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a822f945492ce22cba46def1aa37781a892c2e3
      GIT binary patch
      literal 784
      zcwUWC$xh=y5PeMoCdNZT*w+9;0s_J;7bFm35lBdx86=i_$7!IE(?+&gehZ03;=l*+
      z7aZU-5LHbsGb4?1=&q{QRj*!^{rdU*0$>S~4q61JFXXkn^^+TI&iu<zp88dp=)m9R
      z`|wg5qvGTJsTBuVfdVJ{p`_H`)e9A*4%!4pEh=wPUtKGc`ddM&BU8~ys;F3?Ej`!C
      z)RMq#rMYIyYgDwZjZQZN=4YC&nmrN7?nE_}gTN0D4%%I0koS;7K_D~33HgdP>ep4h
      zs^TMA4V6H#5(P3mk+J5u0cKfr^O9Fca$efO4^(^_#dTE^D1B@HXE(d-lUx@A7;-S!
      z^k-Q1FwCRmv<YHWCl-NL%PcVRzg`0FVRRJ-YEScY-GA~faHW8^&*4relSI+%`CSu)
      zQ9_D-s`NanVUgCFq0<UcDDZaaKWd?qgG*=!d8-sN;+E$g;FX`yd1rIF7_%>2{e~iW
      z9{G%RqsQXC=xeZSlI7g?@;$sq^#9HAPQ5=YN8fi|gM+;hj9Qgrwx)z}vPJR+?0eDn
      KWII83meDWx?75Qw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$4.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a681f1eb9f5ef6560347ff38ee73b0d4b1298f3
      GIT binary patch
      literal 1711
      zcwUWETXWM^5dPK|WXmFP;v`TKnzR^D9EyO3-a;w4(Hb0X32wtv75fy#$dbo8PTIfH
      zf58ldX_@I`ANp%}pwK?Ruq&&%khWvbSUP9V?)U9}yGMV#`Smvd=kc9^6yfwkchmjR
      ziMG7pzSH*IADj(0@*2*9JXhOZ5U9@GYI)W`hA=M9j=QBDwW$K_tc2Z2%{Se)RvkjV
      zCEKNND<IH4LRNb%v6pIlIo8BDM>wP(cv1NrXHe@a1qr$21)jc4sMvkROxFpS#jvUJ
      zAPic_!!(h`kc9$<32A$}ZeWBkbRa_mV||Nr(Znc@3g&x+GkxY(p5^RJlrS!V6ND3X
      zwf2s_^9}8VLCuS_;u!XqGTygfAjjp@yg=RPwl-8}&E4=7VYn7HT)*yiJlQA4jOa|5
      z?mH`j6*ux$M@5lpGNJu$UUA=-Wf|vm3bujMgp++ySeQnIU_?CwVQgP&*AmA$6K8PN
      zz(<6Ue>=C}fTt(#MazLy+Kk(I&t!!zSom1ln{TQ{N3}Rj(fOi<Pw*-07AaljIr3b8
      zN%`(iERkL9wc>LNUr1m!(r!mHpxWf;`2UnoI2?<0NBPQSwFKoW3s(ds6X~!mRV-Lo
      z#1f%+Uujl#)8mM`>vy?3BX+Mbj_-19H#Z)thK?)0YT;{qL&$N=3J<VPn6URZF%cp@
      zoh#rPY6h+oj{cXAg%#XjM6N$!AGHsX$5*D!S;{;eI3<{?VYkyzS3Mc7(*D+-6@Q+e
      zs%#g1m*<B^Z*Vzi_+iB9tSJ2;Y+9(}TOKPfV3~dYA4L|rTJH`!#~s--cZ*@G9R|ID
      z!#VD8n!jOb);WtqkRM+Opjea}&bti%3$WPlFt676G{x`9%FGiCRGy+(d4|$@@xn8V
      zuJiWDQyhDO<B!-Sg-L#nF)TPZi|5Ew4krJLl*bfX1(c!i0X~d<PN1C7_#7=X<;r6W
      zJjTgw%>0bZqslhUv*q{@z1YUAthVvlF4wWRfESGLCkF5m!+3=W{KdF`$9!Ww%!E%?
      zbGXEegfDlPukc&Eay|6RyXa<Yf6W5C*@KqbLCYm*kQ<YreV^1ZwNuA@ZRU5BcDBni
      zzo44JF3Ye8PAL>9jX}y_lCpc)rV_RSe<g3?R@}VXaqJze#?h%b16hqG?=?shPvP!c
      DLz9$1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$5.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b79ee5351348cad05c3e9692513a6a1f43d58d2a
      GIT binary patch
      literal 784
      zcwUWCT}vBL5Itj}>uy(*Ce_*+KMB-C=_)7`T1s1qAf#2W&HK&fsyA$Q!|tm6TLo>Q
      z5B&lDDCx{KFI6acxOZmGojG%6c5m-~{{gUrbq5oKSABJ<z6aTriO+&zq)vmb%1ju1
      zlKW(6;#jBO4(odkiiENx2a)2`qi$b^xq~Ufl10^39_ULQ=fTG?H%Z(!S+2R5FqNO1
      ztiD5Nw8v|<`<9E|nb_p-30oUuS2a3>;(pT8E(kL|987yCpyb0vnNZk}gi_nY`pd<j
      ztJANl8)-tNorEgtsMJV20*fMge93z(xuopi$2vVt(t+*~R_?Vw+D%J*mg`{wFCDxX
      z`!nqNSd>xRo(@wzU>3rpWhT`A*NfntBo}F@4~$G#{g?N(R1*9{3HKwFWtwL%wc;>J
      zGFJ3i=jTZe+q~8SpGi=;EZgP(Xo8OmkI^UWz2R68ueo^xzxfNZKWxrZ!R!lHlZy&_
      zKKp`J@yz0Lm>;oxU@N)P&1?8S@%#Y?&A_2q%Q1hSH{uYlh9#?V+19LJm2HK+1^ZsH
      LJ;ko^T@>^$2c5SH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$DefaultLayoutManager.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI$DefaultLayoutManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..163e6d8a49b33efb8bed6eeb6a9338ad5fa129a8
      GIT binary patch
      literal 3926
      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
      QgwH{JFjd(;k1s&`AHo`SHvj+t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSpinnerUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa01bcec69b5faa987ea2a7a9ee90292d719fe05
      GIT binary patch
      literal 4321
      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
      B`27F?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$BasicOneTouchButton.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$BasicOneTouchButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e0a721549b7532aaba1a5078e2c0c653edf74057
      GIT binary patch
      literal 2121
      zcwUuMTTmNS82(N+BoLN1K#R11))qAhl(f|rD-=u80-<T45Yt+`ZNicq-R{QS4Q&}6
      z#~B}da7G`TPQ}}dx9W_JwgPG`b;jF+Grsxeo6kP?O~?Q2CgEaqCYi}O|M@T9f8SsJ
      zzHtk{eq{adFdThanO81GtqWYwMGKlT7tJUZ&qib7oGxhGo>X-87@y~}s@d&uCv-Js
      z6tnqQ(Y6iU4=+ROdX#Zjz~D_DA4xH=1VdBY&@Efh?X;p5Rfz%sL)}zjbSxzvjKP1g
      zU~t{G7(6p%;J;LUHq3HU&DvZb`s_Tny7w{kC2NU$fGh{O&g~(F1EJbX6X7&v5;tbm
      z1`2t*jI9U;AmI)f&1h$kLgBQK?3A$uK0$TLXoM`NJ7qLMX4snKx_YX3KBJl`C8Mbf
      zElDG*Xlcdd;$32TMRp9angXoW6UtYjs!{DM)s7h^sZlT+6VEv8s4E>1NwN$>$N%V1
      z)Z7{|vPCOpD)XvoxlvOA&QUK53bl)&&GiyhF4)mgQz_(m)*28M+KZ?keGI*|Bqw7Z
      z_KP&ie1`T75sp_Z1_HPr2mN?}VyLbm;}H636mwJ)CHqXyG>ZBxB^3&<g&a3D!z8G~
      z81UmEhUR}IBV!Op80x9Ajxr5@XtRAd9iZ+%EaNDKNtGO);j?z$sZ~OV;xdj2Q3Hv_
      zRG!P*!sUpJQH+tn9M`ldnt57-P=bDL{l;aSfRCZkFuAJRidcyNPGZ83Qw&?27&L`a
      zKB?Gw8Iw3o4$pI1n>s=XCmJw~NBl^Ybu018NaGA?#gfDE6AZy><#<%aIn0oA5!<Ap
      zUCN1ltPjm3W)jYdupCvQO7Cf`ExtgF3rrhDGpmkpF*G}?w!2T5Gsp>DSIxMlSe8or
      z&{}1}v5TrGz8pTZqmE806}>#Dr+34;cYyx1jSk&Zx@k{=U{Gu_y}k5rMhjWA5~Yw_
      z;C4lNma#4J71|=5%h(a|-3%<F!@at$IWTw8*+$NRc{-mZw-!O$*p4EFCuAN0guAg@
      zeD8?bLykS<s2lf`+#Pg~=mWS0DPjknUkAY|5DfR?J~|mf2$vvwoi|xapKii<$-$6a
      zX$gZNf*#k>vxmZ_Tv>l)3EP&?`!kF7l*knvSiyrmk`!6N5dC8-I8LG+i+I7+NGxJd
      z@Podukvu}Y4oR92m$$P{bBMZ5adk=V<#nW8#Jq}S0lLnx(>0Vfn7R68G}rLCT78#6
      zTnLFE4sY^ZHgwIT|MJ~)9aEwpLQAlGD>%E>vdh#@;1wFSS84oSqb9vh`+6DuxPoE4
      zfiW!NG~UEnyoD$6Hs<gS3V06-cpop~1H6n6$?_wzxQci2F+Ra(_!6IE6<^>-T*I%p
      zj^Bv$JC^VVmhmUP!EM~YU-*`Jag#M-m9^j&>%ezxH@;_K{J;+3C#U^GV%S-Kd4!01
      p43E<Q3?qssoOxWRP^%T{HhsEW%0m&0JfEV~00Pdi?L`Kje*hy-;?e*B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8334c392eeb7be2aba1c32b75d806332d9986ce0
      GIT binary patch
      literal 2579
      zcwUuNU2jxH7=EU6c9$+wSST$NSmjIEw%Da81!*nP0<zc^v=s#W;B?Qld+6>t>)ErV
      zl`9f{fr-Z6d86ETp#}@lgv5k!LA>!oV<c*bUTC5iBZdeG`p%it-Ig{cO>=f;-g(~V
      z{hr=<@Yz)W?U;<AhGEYcbKIOrm(JSGXu6m;N7BP)$<C&G)bC(1Z~I40NA9=BZA*Gv
      z!nMzwbjyAW217#Wr}HLh9~nL)vm}i&GzL=hte@7<e$z2WrN<EUb9QOVc80dT#Tf1+
      z%`V%q{ceW#)Z$c|k1-g%t|e>1P$v+>k~lb)3)CXPz*7payw7&zK)En1y&-crFBw+$
      zxmh!R%=Bz^4uyttpP_3}9?Z=eg|gDLEPd#83q{wFj?d7n!_ui7^gUwk?5m`)0t~{5
      zmV$fb<UAb)mStGAkSc|l56wEhNdZ$qR;OkoLopet#Ut1d!=nt_789$$Mr>k;=jDjs
      zQ}%t=VQ83>t;1T}sSIopcuc{UdiH28#4Gt$ffSk<YD+Wp3~T1HR19~<(TXQx*cNu(
      ze1t$7(v%Xrbi|QEZaJGfFi|ueOP7@De=<%s+XZ&uNwPUA{ftwRKGnHC)m+Vv76yLr
      z6zIS%^4s-nO04PIDo&PBJWmVk0i}8g@f^1;KNpzD)Z!WJje+`i`9q8X&nhlMrA(oE
      z1bUSq5+o&cmgAB{6rS3QVoWLPuh`V4;5H^*`G-nj{d4WDHw}Vs;2pqvtDngbV
      zmEKGSbgn5xc2e1VQD9Kn<i1;s<0TxAf!eHofw~F2j1#Id((iH0jzttPGEU}?spwA$
      zyrQC4Sv(|F0E+%Kf!7s%bl4@1!b9yj({yxihlyV?FYT0|lKm#ti&402k{}eIT__jy
      zAPok0EekhuRk+_SNT)>AqOM`E1<rt`sJ`gQ5$So-s*=T!r}3JvsB%h4aD(z&y6F`@
      zjxoHUo)j;v2Ia58lLdEN&Kvc)GdFv%<AZM5%gTec>ddtZPFR~#We^#MV(ZPDrIMtC
      z)y;WhXb7p6^hLlD3H9R9iywtS?y0z!(rGtp=nsguw0;WFav94$rc(`8D4Dw9Um(J-
      zVkMmg=_qMER?$jvp)q9HOCMLVs&Z6;`Imv>27MVSs@-a=3CI|lu$D9!)?vLSt2sxy
      zQM$^sT!OfS<aM@B?>1j&yIR%u1D4j3$EVRU#cI@H8r%D|@G0XxOlr~YZI{qx(a%1s
      zJISwLe|Itwy@JEt8reUECc1o~BND=sRwUnHT!c`19R}AI<U@ne5Q&^lCL_6N429lk
      zSwhT+FJem5oK&33>Z|`}mH0z=U^PNkd52MTC$Jhh-4G%6<ZP>f&5HOUHiziM{ltC4
      zs3I%pYEj;ycNY9>tm5BbJ^vQX{5!Pso9N=-V}SpFA^syy@mrAmCyeo*agP6j^ZZv_
      z;J@K5{yW~L^<91&@AE(KA+4YAzi^G;!43X5zT$UrlmCNT{2u<~4{(S7i+cuRaifMU
      zrFEIXS(9O~jYfoRqJ7E`Y`0Oz4jGA{NiLvH6@8{jXxD_()DrEu3lqZ>!2m2|v5T5%
      zf<B9O2F}yH-i;vvNxKL!wS~KDq^UJ-(XGbasc76LxyIe2{~dbAFoMyrtM`Pn5p8Lm
      zM((4zt!=Ceyl&KpN^3_$ubFyMLY~89OQ9M+$Jhy7oI<!<M)6_Zt+RL=E4+;r-V*$f
      jcW0nEf9i}KvnXayotia9(sF<w$5|kF2pBzP6EOY**wk82
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$DragController.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$DragController.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eff8b334010517d24a5eb9449922c3ae85cb8965
      GIT binary patch
      literal 1769
      zcwUuL+fvg|6kUfDYHL~wv>+D|6}6N~z`GPsxoKw*8DJRH2T9ul1Vh3kDd3yG;XnA|
      zjMNz)`~W}7aqkd9Ma1DD$+_&k*4k_D{QUL(2Y?YwN6{cq*wT0Pea+o7tPO3))Yr9=
      z?iyunlHW@^rr|B<mYg<rjf!;oryYG`%C<bmHcjb75fMl+fM)8H{;ISk%bq}!y}s^B
      zT8JWTyiLRH9~KyzI}cTXGRF+d@FoQ2vgb?nqcwfc)8wwSJnf}jb>$2%3j-?xktw?(
      zV-QHFh~h#V3Yt~KkP=X`11oW~A{|AWK<7VkRAkUjNE^~y^|OkMcS%Jfngp8X3`@>e
      zw@cDl)=Q=oXq~gmy1Ak|2JeHz2s<M%ey-w9w18|91l4^;$pTTsUC~XW;wyb4klC?a
      z!!vAa)^?5q1$wh*IaiFMpN+X8kUx)Nffll9UdoEBunkNs(3mY22WULRK0O}<)H2m%
      zSXIgO1=rLHf!ivsppRFYiecQMxzH<HRo7!VcU0WPJ?dnIvI4$ko2<<i{Z3nQZ}sr=
      z`hVs5WRF!`#Wi2e_Kqn%UkwwDsTgOX)H=<iyUE8JRQ$5dSx;2lWMT0oyXutXtij#w
      zI@OFJRzUbg%aYENsk^SE5lH^oRMJ4LqMx(@A9<pHREj5+PGX4A!=x8!H%}29*P0tV
      zfSUV;WG-Jr%K<vR_}QKGPI83Ojz*;oF(rd8I%}sp%0f4K0DpBEy>u2~s{`yjeFdXL
      zK8ILMe4_OE80z6|fDvKeg3MVu_3;NuOYSSw8m_O=x1(|rDSw6<Y8$&6U_L!^r28bs
      zsE^SX_;rNQfb8Kttp;etwdF7vpuMFX$7gai<Ub+BB6Hn6H4N1-a?-k4M3v`AD=+GZ
      zG9gh0_XDB~9)v^>1EK|r=Hk+aM9n@C+4ATVo<-tWLYuN&XG%KcNr$G4hGi@SWhCqM
      z7mjh`jG??kLRqWRo(wUQp-IWmq|s3OOrSkcC;Bh&EvU--I>Ct$JP`;6|Fi+*B0(y?
      k9V~X@%-PtllU#4Zk>qqBxq)VbGoNA7SH)A?k10fc19=Na2><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f3574e07c343669df5c36532cc84c7d7d182ffe6
      GIT binary patch
      literal 1691
      zcwUuMOHUI~7(Ms4P#K1YRZ4k?f>oeA3MwiVR45WiiXmW#x*OUnUNg)z(<!+2Ke%w`
      z&b0}TL=%^qxb_is>tn6%iQk<Lr8Y#<Mdv=|%sJ<~-?@Fe_u>_RQA~%x8O9$N8^*&#
      zep6a&iJWQNORO4snMq8m=W@=J?xJCd8Mz^|!ig=|g}j(EtgI=V5P}RH>hpxL=_bU6
      zu-t?Pn93SCR{?4ndJY3D*sip#w9LE05)OkV^D~aIwniQp*j<KN_rA=>Mi_?E)%Z)&
      zmlM*G?p21-zUn^hUttKQ?5wB*Lz9j=Xc_`Is-qrZhCrVJG^M2_ZWh*8g>%bTH3dUB
      zZD$N~#c-rr`<p>!pCMV5gTD@!D$&=~deIU2yvQ<i73--y${T7*=9TMq9U&a4LnpdI
      zIKePjjl7PNIK>dj6dZ>r{asa^>J_zRUJ>``IIUpywj&AUy$j(C)mn{KOm#bDTdrf9
      zRIG*=deu4iF{G<(+kXzF6LB2_7-R@#Rl-!-CaY4Y@R|%^m?2da!-{ZRNhztUdI-H5
      zIULn-PDL!7b41Q?#H{U<-3E$N$3Kc>Xz+5fBursYP}Eso(s3D4N>IjL&zZs%if%tp
      z9(56y)G^`XELU0uAE&Js@92h#owjTjoQ#;2D%b6Y);Fx&5zD+qmpNq`lvfJBULI$3
      zQ#=Fos{zL&l~SO&S=}-EE2=?|dau*l23lPp1gBAp4{W0`zKiDPwBk5M&sxHOzrk^u
      zD?Fjlf(VTat%&*zk3AJ&J|5ggTYL+RG<K+Q3*Et|#jTf!-BIJfF3xVF{~031-J$*6
      z1nsKn4n__Pbdh!Ncc|g-(ZD|-%0FV5f5H_1j5+?rGZra|`^MDlJQYQq#8}DVZNJDU
      zDYQMIGCgzs13S1F50L2t#V{QX_*aDZH-!0jwDKQiD$$Zkw4^d#Qd#m<B0l}=a-k~+
      z8jaK%@So85FSPLAW&Dv6f271eS>hk_80hdTJG56u!Aca&r{K8i;jiI3R0kDlC#Dem
      E1Gzb&p#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..45873b588480d57188e7322891a37e0dce0dfa55
      GIT binary patch
      literal 2371
      zcwUuNOK%%h6#lMX(>S+@lQf~tgA@p@orIW_k`~;AHt8cSPLq;Hf$$pJH}M2}9LD3M
      zfY<<kfeo9M1<+NcqL3mgv0?=hh=%}yV8I3i3y=^(AXIVA*qOW>R4ek_bI+W|cfNDx
      z<fEJKe*mB#1q~j7*n+;KUyK%(4Rb!anAPW^NxfjCqQm^0T+ABwgl?*n#*&d%R@b<x
      zrt-y9=0wUi@}>r#K!^iGvpTttCl^%8)({ZraJ2fe9aT%pw4)`5gi)}SsVsqjoiPes
      z_X_kSssRuq&tryZ*h2#S;p$u?GXlPmd|K5&V7G*ZT|szJFHwV#fH%wr^$EjN=Zd+c
      zvZnN8RtYpF@+mz#qgw{w%Ss=^7Z|Jx!4~$YmU`WhCX_Xow{j{i&{-;K8*`^vrV?tf
      z7p)rh3G`NzTA~f@0yTv-y};g0*w4Biu^?{8ehr-hEtM@K?!cWCY+l)Mv!HAuqA46%
      z$6Zo7ak?b##sP{%wh6spm*Fs_T$RImoNEe8M9?iz>mr<v3q)>>-|09d>qVc2djt;N
      zqKiZnG=GhRY#XY!@J{4J;z1n3VGZ{QwC>y~iTg27qG&Q-v{J<Po;8X#d@3<6{iwtP
      zcu*jiRde=m(Y6^u^JV}gwPSuvVh}X`wRy{+Ol8C(&U7D_IKgyt-ce=DXY3k`;FN}w
      zG;3S>BXOF;1d@3QoeNUr;~au`Im;pTQHU}9qLC}+w$Kwq0_QZ03Dm9EGp5@aiE&I&
      zOLGPR@`vMbZtVyjk(lI6UOT_Y8Kxy>IKwW=aKT9188&)U;xRVzTa22~Otbn4i6>d@
      zV{X{_X^Cf`Q`-s^+U5(#BQtE3l1Q^vOJRqx^Qa|(_W%3Th#8|i+zs1CTR_WFSc*q&
      zOBF4PJe*6wRLhQFR=J$2vfjE#xM)hri!4ZhN)vb5;6>G1F+d+@6OeI}mhlLcQczT9
      z-R7{^PeHx(^FxF}ye{eAh8G^rLfTro9j2Ry&R}=XyO7=2QFo1Q9yHK1KsLa~Xr!lf
      z<RF@`hfbPqw3H%v<|tx-RHNN1kSn-t6&+))c-K%#Jm_kA27EoM=r7%myoHxaQtWla
      zntiU-L%k~)PV;pYXVPz=#eFl{@g5!?@V|{4WOAN`cQ*J<k@7;>@A1lhuaL<s3omTU
      z%)u^KGN0On>AZ`H-yL=QW-I!&Z^AU|VjA!_`<nfi&{lrm>|e!GYqD<@$#wo;rv3q+
      z5zC(w+h5Rn{R&6$4K0Xo>BIVtzN_ysj~|esa}ht{dHjSI@iSh-FSvwXahc95_zl<a
      zCvM;`e2BmC3I4&SbbgJS_(OQ{ukeci{b_X8i=YULIuR8i5fcsKjA(Lt|0;HKf6KjR
      zNnwt=F9s=phS0W%LohHzlMoS|SRl!V9NnHJ$&V#hdefDzy3&`f^!u75q$`Dq14jyh
      mrZ!ui+5?o+%M;q&a~-+L6YFt)dFQ!^=bY)KElYdJg6BU_X=0)P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e60a5d995a7c21491066e0640b43f0116a5dee8f
      GIT binary patch
      literal 1197
      zcwUv0-)<5?6vn?{7qHv4rHItFSgoS+Pgbun#z;%D2{w&2B;Gl&15UH<lHG;YM^InD
      z2k_Dxjm5+ZAHat)o<T%3EeYA|?wND;{N_8~z>lBbz5}?AY7#Mq`Vk-U6DvHHUeD^g
      zylb_2C_C0;^*rpmGCJU%*p)-+h#=n*K_ole-3@rJ?t4+-yRHb5&>3nAf&K+BB%+rx
      z%->_EHW%U4sPlpJWb}}sSy-%f{I$i8BTEd07g<mIK`8cASSz*|^t$heB`_?Th$CS@
      z!$lKGTrjYTwIosu8|M;Cq;ZKDJrO-;&<aIckuICaVx1)W-EJr%24*v?Hl-)_2d~;9
      zc*fhVU`RK8vbe<qsn(OEt_)(>TWH2}&Wl`Qgxs3r0K*z--xtCWj*=5e-(!duY`aLB
      z*$LgRX`sFzN>yt3!QW<v?ZP~BZ3DNIgSQzfi%dhtap!0dMh1CVG_j3q491~92s)x6
      zl}Vdt_Eps;45saQBB;AO3<WuvJ=+`X5L}}_2ur2Zxl^RmMdwcWC0ZR&Rn;@4@+pi`
      zx$+fesWQUKDKeiZAHx-TuBdOccZh3mu&lks2IaC;qdsh63m8W^T&0|@CYjJ5O?Hpv
      zK2BK)%0YWSW?cVWoibvSSyy$6b|_M`8@M^4HE6B&OqWSt=?jbz@-OI}asH=&m{FLX
      w($iywihgIR@ac5^t=tHOxzx`ynrG+!qd7Ct97Ac`Sw@B4>UbIbMD9ZW1-R%HbpQYW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneDivider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4ae0683908e2c5bcbca9ca89621326c42e8bb12
      GIT binary patch
      literal 7162
      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
      RS+p*t^=!giMC&p*{tt&H5xxKb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7cda0e0483736f9d3716c39f0d67b16451e197c4
      GIT binary patch
      literal 855
      zcwUWCT~8B16g?M~E_7F0il`t8m?ji3Zu{U<4GA`wkQ75w<$byxV9a)=*`0#^EFX-C
      z5B>mul=05ALHvm6COf$w=bn4+o%#Ob>o))`JPk2N*nKaq#D}D~R{A0tW#T;Pi$bNz
      zD|hxrnX;!s%Xi21R)~PGej9$+FKjMSdze~fG@)cKRZ(v;X?I4}HW$5ATG<1_L1X4B
      z4@@$_u%68s-QGPT1RXPwOCUrs7Emf<9(Q7dxJy`V{JW&mRa(9o5BoBIEBcuv)Vd}W
      z*_p_d^QXbU4My0XRbaivgGF_rjs7?^<D%(!{}RCMh2Pw%%+F0elmo)%RH(SNiM*29
      zCX?kJIonHK@L|Hn|A2&Y&y4d_zE)2E>YoCiyIMkgthLNLnJ5a$^Hq*?nwf&Nok)9W
      z1|gmhc4nM8#um1jBh96-aw6tLj0kIu-=D)xs*NUJ);vE(s#e{Nu{Fnkh((SsvDIPU
      z<)gj*&nWLb`-1qB2UYkidoV8~h)`wgzV{<6qXu|u1@}0{<8y98_+r|Ee$kXTg`jea
      ef^H}X5Ae`yT=V#KJo1gn)$mut2A=^QWAi8HvedZ%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$2.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..42a1f7053a8d3f3409f6d782f326bad0934f202a
      GIT binary patch
      literal 977
      zcwUWCZBG+H5PpUpoV}j57AY^HC{($&#H)O*A;AU`Ofe)?zHhIKoVo7RyDjL?GC@uJ
      z;1BRe8E3CR1kv<1x0#uJ=9y<E^YhpD9{`?X!^RY$_FkNbkA8X@s(1b{5=VYdq+#H{
      zG<SCxh5A4!`F5|mX~QBc{R!Xhr8*IT-VSsaE5eLE4%2FrNjnp=wm9iUs6xF(*zzXM
      z%7A_(7}nJZqg%B@g4K@uG7mz*#WZFd<Z#=CjXQ)n@8*<ZCsgwFXwZ|%8_|m-q1=fB
      z5gm#oH2!(eGK~=$lM1YEa$|+6P_g<nh(~GD@ct!$%ZqGs2QoQ|lY#6LR?dZrQ|-$W
      zskA>H?vAlpavlp<vav{5pHPd7`&cIA(~A&c;YuH`F2OAa5An#x3ZZf{!o_2(65K?7
      z7|B%c#=(f^lJm?gr!&2T<^Od+aJum*3FK~Q20M3M?K6|h1@@GZNjnm0D!D*$M+H%w
      zvX*_RkK?|JIvN}f5-GGC^Y4oxVbQy~dY4ZvG<h*{y!ccqneAX}ihmooIG$&#&Axdr
      z)Ei&m)HlAt{hWb{d^;JKd$eXzVylw*1>8j$$gEl1;~00uZx@6#M%B;YoMHYe9$X`|
      gDsZg%e-N&rnkjyg<vhiDmPLHbSBA&8#oJK(4Sjp`ZU6uP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$3.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab26c8307be990a97e0927b1f62b5dd66449e082
      GIT binary patch
      literal 985
      zcwUWCT~8B16g>kAYj;;$s~}%eg(};YxHUZ1kYI}mrVx@U@6+udW45!+?zHI7GC@sz
      z@CW##jCZ!!020&P?Bvd!bI+c0=l=Tr<0pWZ*tRjlQ2EG5{8NygOZ6cbMEo@9@>GVw
      zYqNF+k<`ariT4NP9UB(I%2oJYH`NIb^<JoDtQh9?nM})dB5hB}+MuFWQc1nbu<K7<
      zl>vi@6Re{XLN_WW3|2Gli5wVQ4|AAzFpIk$Y}{j5@NX~4x1|zC!+uvJ?|3&748?XF
      z^5}#o((EsjmNCXqn^s_Xhm5&pu447M9}m;I;r&Md{hnu?I~K`lob*MHp>!#fpX)%3
      zgwnydx%(z2$vG@x#l|wj)|6U2tYVEJm;OyLEM4>Qb^>lVSjQ6^C5FY@5gwjmgUqBt
      zx8z9nL}J=CzJ1GYnU>CFvKiL?XN1A&#KR;MZ=~t(!cEaHOf7?Vpp;0O5l>S={m<{K
      zFp5)>bSU&$-1AUHjnZKvxE5pnLq1?w_ODOi<fwr<&BrXwKPwc>kWe&3pN%_|&r#H*
      zy*YQQwXblh+uz}R$v}BpoeWGKtyL5#TFmw??xP4~(E~iB966%1F=31749crsz`4Mq
      q{5L$l!Dy|+wMthQy$Pd-O_Vdq&$625*vhIHz2+&xr`4jVsQdw97WXUw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$4.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$4.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa0fd723367416b1a5e799a82aa9e17abec63446
      GIT binary patch
      literal 985
      zcwUWCT~8B16g>kAYj;;#s~{kXz)HV}TNB=DNU+5OQw&L!_vv<!G27W@cUtsknV=><
      z_yhb=#yeYV0Ey{tc5>&=xo6M0bASE*@e{xc?AVxLsC?uj{wYY$rTP#IB7Pclc`C!;
      zm03H3Na|y*#QQ^k*M`NgdKJFkO?ARUy&q~BD~5S}CR4vor0pqL8&vdCDyjDv_R3RN
      zWxycf1ncO8(2dFogVl_CA_oT7!yM)v%;K&G8w(7J<=ad0ZK=fDVZSSqcf1=3hGIJo
      zd33@PY4(>%%NS#*O)JpfC1bA7RjfYu<6&Aiy#ENG-}9_<$09k6lfLLNtX~S{=Q<E0
      zp>!~A?tzI(at_N_wXwobno^60M_6OXrGHZl%h!ConSdJ(p5UpCb%v$e5gs<MNoG=^
      zTXH0OA~Ee6-@a9DnU>CFvKiL?XN1A&#KR;Muchhl;!V-dO)Z0WsFX;W5l>S={m&n$
      zFp5)>bR_gy-1AUHjnZKvxE5pnBR*hQDPNz!$x#D!nvYqUe^w}%A)#o7J{xx^pQETr
      zdvoqqYhU41cfP~>l7aHHIvJQeT3aYkw3O{#+(Qw_qWgG2IdVj2W5O2E8I)JOfOCO|
      q3*Yeg2BWnN*D76M^d^iRw%})ypJg@MC}mZQUh@=Drq!aUsQdwNn)gKj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$5.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$5.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..616981193a0b9ad47453d4d253227da15490992d
      GIT binary patch
      literal 1182
      zcwUWEZBG+H5Pp^(oV}iaND&YOw8FJTuAul<Bmr8IQ!0dF6F-sdb%8V2J92lt{VWZl
      z@q<6WA7z}qB8U>xG~Le5&OGzXv$Os2^V@d-vsh5k!I1sH5Baef9y#8wx$p8Fv(7`u
      zHkajE-FKa6gL~qgm6=zeFbw}0zElsRfZNfM9XY<o&=u`DVWvQ!Yi*(yDQUs+oM@3@
      z(P%p>4m4d(Vbv(0=wi0Upse@}kpx3ZM<=>8BydxQif)FqaeYe9n&XML2hF+&ws_qY
      z41H_9&D|Og9JxPtDzY(#e7giQ^VC=>!#&?SY5E6YLE`>HfXee&xeXEQ_(4-N7{<<t
      z@}tNUhr)}@mbhhU6XhfZF|1;UVX93oI__eGAsPO5F$`Ym<Ml;wQNulqs~BS#xIRM1
      z1nyHayCNz%hfYHTQm)qRCycBm>1A|0#3aMWoAUeR^`*_ycFC$)rSj%>WxZD3USD0U
      zmbVy~rNKZ>MV6uaQkx2o_H^ViO@K{)%+P6AR@RctW^|a4Qij)5R}4#DXlE=M75|@%
      zG<3e(pj<LMaTFU`)jtSqvFgbCPX8_9j6`G5Ezc9dip#@L&^+{%J=^s|lBgo0J-?yj
      zCFHHzf#8v7RjlxRh9TqXi?}!{qCoSSp!djnd*#rQ)j?ksH^`qPYlZgmJeA9ThL)TD
      z0{vqg)I+Nl2UFKd9=&7@#QPL(p$~|y+vq1Bbwp<^z!Tal^gEF|g?5TNXBd4o@(B+b
      ziLaPiJa>+s;n8K80b&Ma1}UY0e#JyunZ>v=7njVnz%EKo&_BzZe1nwr7?XsMhK?s>
      aCFnCBV?M>Rm^=+ZoYRNrv???^FMa`uj~|2p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$6.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$6.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c771c1614a0822c3a3d582eadc174df3962e0cb
      GIT binary patch
      literal 1182
      zcwUWEZBG+H5Pp^(oV}iaND&YOw8FI@hi_FVkN_>oDHTGoiJx$LUEs|1j@%t@KTCsX
      z{NNApM;T|Y2%^L^O}DeNGtWHp>}-Gh{PrEdW6Y~)W5|Bshy2(Kj~s8;+;{noS>vH&
      zo6B;o?7L31!9DTT%H&lj41<4$FV(^*;C8fRM~?3?bVPejn3*BawH8qelr-;nPPE9d
      zXtbOa2bwOYuu2qAbRk=1P*(i9NP;1yqa7U@61b^DMJGerxIU$8&GE#WgGNmRTfF89
      zhMqOw=5Cb-j@+L+71<cWWUB--d1@?`;hyiEH2i~bM&kZMfXee&xeXEQ_(4O|8Ai^D
      z@}tNUhr)}@rnn_(6XhiOF{omIVWLGYI__eKAsPO5G4x;Q<JCoQLBl<asu*GDyFNn4
      z817RuyCNz&hfZAtQm*FhCycBm>1A|0#5lvy>(aaB^`*_?cG0R@#nR?>dA(ZNUSD0U
      zl(ra{rNKZ>MV6uSQkyc5_H;~QiU1q@n4#UUtgI!OP3tfrr3|mBt{9fQ(Dqm~D*iti
      zY3O{nPPt@w;wUz>ihmH;V%3rNo&H<IX^F<5Tb?I^6_<yhpn2#jdA93^BvDyJdwyNV
      z9OSLqf#8v7RxI;<h5_U1i?}!{V20*3LGO`ucgvwAtBt-YZje7o)(Y+Ac`7&g8Cq`Y
      z3-ph1P#3LQ986s+d32N27w=QJg&rWbZljlc)DfLE0Z(YJ(C=986xu27oMCuj=o22i
      zPkhD1;<<D94393$^bs>Cvq&ig^eS^mEAtpt7UGh*CfG&EG5TkDBHtioJ;gX7q@m*(
      aSqb_)k1_Lj5tFAOh;w@Il2(OgXZ9DXsUO4u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$7.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$7.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..df61f28192729c7cd52c7c2297ee7cd3721954fa
      GIT binary patch
      literal 855
      zcwUWCU279T6g{`yW^J;X7_Hh`txCYO6*oReA0mYqA{0_7MEgG3Ozp^KCd^J+{aHSU
      z;DbNFA0^(Igjzq4EbMSU&OP_sJM;a=*KYux;Zckw!uES{CO)Laxzg{_NiI&(p(s?A
      zzVzo{k}G#4w0wKe*ozSnHZH?E!@^mSxlZPk(S(vaRYjx4r2Pe1+g$WQY323_`^|-`
      z0x-=5!v@YWy1ji&h`MGZS3#&GSV5_bWn4`V;~HVD`R|fyUupSzIvz^<MhtUFsP|1K
      z@?&9@_vgXL4@THsRA6I|2dgxMHu~e(OpBK1{YwD17h!Wp(w-PQmLtN}T&OsAsXUX~
      zrL*Psyd5O3gfL<Ae?UTcV5T;cuawun_NTz7zLt<2Xf16w7eyg?zG_crxhYuNp>(Ha
      z6yrYO@q#lacz}n@ky$C6oQXLU6T*7)_vdhtYNN%Mwakx^YBhgjY%TF0;|j-D+3K?I
      z^Oc?5&nWLa`GVwA09E-c2QV)r>Y&Eft>9O19d#gBH*k|<JU-`UgwN+K=od|iQ;2$(
      fDCmNMa2t1m#`S>Tz}?W8d<}nfZ1Nf59=3i0FSXS%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$8.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$8.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8cb8c2a8bf6f3457d7b5205312f2d295fd07dea6
      GIT binary patch
      literal 855
      zcwUWCU279T6g{`yW^J;X7_Hh`txCYO6*oQzg-D@>3V}ol(Y{YMQ#-Pm3A2+{f0hp-
      z_}~xlM~QbPq1F#13p?D8bI(2Z&V2vz^&5a^cobuau>D?~i4SRUuJpTfl8cjcC<>LO
      zFa0@~<jNfhE#Gz<dod!y#%1`yuy9sn?jUo@XhO-Is-n?i(%yosZ7zDDv~v4|{pP||
      z0hs23VFPCw-QGSXL>)7ds~}Vote{lJGOi|wagDIn{C7#Ur?h-M9S@~_BZj#o)O#iq
      z`LVFd`}1Jr2P5n*DzLG~gH;+r8~t%?rbWy1{w09hi?F#PX-|wD%MoE~E>xVmRGvxg
      z(%Etky&WX4gfL<Ae?UTcV5T;cuawun_NTz7zLt=5wU)M%i=vP`U-eLDxhYs%U%FE>
      zigBOtc)^(yJitTd$gC7j&cyV^gs|TH{W)Bu+Gz1*E%RffTFu`WTTA@MxWe&OwmR(l
      zd}U|%Gs-(pz99J&Kvh1=0n7`Dx~Q>rEBF;$M;!>(4cz1ykI%Uo;q!S5`bAUX6r%nm
      e3c8>m+{T@taXsKSa5pq2U&CJ=n|wyNhpnGF?$tv8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82248171e09fa14e44e115610d30b84797955c75
      GIT binary patch
      literal 6704
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bfafb47034e39895e419d8a80221aac1f77be2e
      GIT binary patch
      literal 701
      zcwUuK%SyvQ6g@Xh8ylmo)%w~A1#PQFw<<1Lkp`j&)$XTtT1VofB&n~zav_2XKfsR?
      zXM(GO5*au%_i@hU9_I7w{R6;0)+`u=)-Ahdk8b=R<j5TdZ0Pn`ECy~%V|N^g<bp|l
      z<<-(ek4K3Zu)t?e;Uqa@l8ty|!6cmgOQ#b?;yIMbloFwk+=#fgN2vQ51rHVJNJx<!
      z6SlW9v+6y9*$%IH5rkO>c@%8qFz3L+JYgrhlBcCgzL5NUa@Xh4CF=*AQ1L@$RF6eM
      z$3IC^ucyq)D*lJ-YHzz6PND%n6<WGF&E3^A2#zNukJ<r?V;);rA#7$GPFVkaJT{bX
      zIrWjKT-N64mpT?^6c$x<psI$toksH&cB5&&!Ff@!fs#U7*9;GNql2>UQY?)NsH8oM
      PDK4R!_G;y2tb)D)yuZa-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d5ecc0d1fa6ff7324cc85b44cf9d3ba5fe9b5fdb
      GIT binary patch
      literal 965
      zcwUuKT~8BH5IwW4UAkSRf>Z@X)bgoeF(JNSNU(~MG=`+gqvp1IfeXuSv%4++EfSQ3
      z2Y-M+iZHWng7QF?++^;|-8pAw&g|cd^FILIVBUsBSUpgE_0vm^O}OWE1GVe5Rbo2c
      zd$Fx<VA5?B>Tg^1&8X8$KC93VbZnzYm=dI?j#E$fb(nft!iKN9sg4Pybl)WP6~baO
      zXN5Hey)&Un*9or|a-$Y^2*pO^>oN!x7k5x{P{3UmHtrD$3z9I}G@<^|J8J9rt7-?D
      zFxHGZD%er6k$Cu6l%@%9^A`V46z;#WEAc1A#eBl_V2JAyeH545E~AD=HXah@bCz@Q
      z7?T9sH+|!a$jkW}{V>R1bMOSyHlDJ+x52r1CQ90|?($?Q!P0$R{|&<t%9#?)DB*Oc
      z74_nd-ZUcd#Py+;g@)j6g`ticfl3n1D{%i+7SDOL1^#KNT9y5>SKt>LBW%kYt-|61
      zI7_d7u{nc#!jXkhwk6Ji)k2khSA00Qk1=7xI35fc8hi^wW$6^oDJFhn>WadVPu6!h
      o){l&)Hb@=Ph&Pk9NO*A@!UHBeyphnt%M4S;Y=)8&HOzr70gu+_G5`Po
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7da3e02ae2c4d95328bf908414517ad8e5adeb68
      GIT binary patch
      literal 787
      zcwUWC+fLg+5Iy6Bm;{#u+5+VkRYEE^)veS%fl#>$MARZ~?`vm(MP`lcC28OKOMO5{
      zJn#YisH(FjPgGQq<=L6>IpaCU{{83v0l-HzeRzZ~m#U+_hj~|<^YA)RXJMpr9fun(
      z9$hEe9w@^ndvp8zBT7})-b%aXP@iAeU1iz{XFke=hMN*5N@jeEE;+V7DukJ$tGYJi
      z4jUV;$5yANrE|-MGeX5)=zQ)2VWHLM7Arzp)kfPj!t#9Itc6oTc{6Qu6@(W7d<@o5
      zLOnng4MJ(&0qQMn`0LG8#M!Zm5+;nc(pV*@D$}m+HOp>k!bZO@f7UqBQdfl|2b`Uy
      z*%h}5%|}uHn6~ZmLWjp4!u0=8gxXPhlf}HF-NLV*ZuH)93BjI`udtb@Jm=iU4B=g$
      zk_Z#eiNafPxFq)gsL^mn%fIGHT}4gekW`<f_T;QBF5Mznyu<LX0y849A{clbj7lE3
      vTv#vhN>0&%vEGEw1zvhji9ZYC*yF<<(PiV9km%t}fuF=wF_`3<#w_SBh}p?{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff8cab1273ac2339fbcb19ee7656c1662d4cfcfe
      GIT binary patch
      literal 769
      zcwUWC+e+j>5IvO{C(an1@v`182!dCP!tTo|f{LOzsNk;eout&3*pVcTyWimRe#ky7
      z3;VDi;75toah_CUXu7(pa!z-hLmr?0{Rgm)85a)W>$PgBAAWYP&82@Es|!C+nGXFO
      z8_#ZIou4Yh-w)@G_-Bx)G}<%Kfih9dsf#k9VflWngnbfRbC|oR5T=T*y3c)XvB~}I
      zFxQD`>MUo&DWQ^I>1=L|u-NSI{S6^)YNPWl!pcI&ti^Lec{ho;3PP_37u_|KQ1?(p
      zgHT$qfO=CKKEAsNIQ^!Am<a>TBvkRaO0})q&9WVuu-WP3?^q@(>Z<VKl+%kOz2S&3
      z^CIVsU3)e!6gb=>On!tS)XtK-G~|74NB#7AmQ~9oc!x&(-;Gt4apq!*FyEmV@#L)>
      z%!;ce*<GMU!<s99mLqi)HHke^eU{phv$nMS2j0?O^!+X{{SqsJf%AX?$vvA3YY;<n
      piUJI`Z}?K+rT3cns~`@)d~6eKHiA)!4#o=nI3|jVN!BE$LC+J?!W94j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efc2f79848644ae20e31db7eaf244821eff6a6bf
      GIT binary patch
      literal 772
      zcwUWC%TC)+5Iy6Bn51qK5}@T(gcPYfs+vme3aHc~P$HrhiO2rhnUss1>&SLO`!`*8
      z$D*p#ML(b)g_vuy0#rqo=gy4J8P7TPznedQ0ldYk3x}|CsYdFXpI&M6)gMHv=Lag)
      zq5sLolR>1jV`ccP-8|y&L9CK)EADeknQp|1iz1<B2l$Z^`j_C6!^}mAu#$JxRp#@E
      zP3C_LGaZ|bPBS)~5K7sFPMh0=jn0G%><DRB8=ZY1yk4J}wQ)`;?#Ep&gYeXYi|Gmq
      zsCp=)MkuUXK((U{e;)P&PEJ)2F`?dxLlvE?MB94YEZU_Bdy~HWG0#LsRpn+JbJB~G
      zK6eSLcX}T9bzt*cg2N-i^8ZkT%1Jy-LO#@X*SY)4ys=z@*EaG2_9K<1oVr*cyqZuA
      zq49_wtckA$xu-z2nzdJcE=TGzDiWVa^-gL>&dTQ2FL;~3@$5Rs%t$N=2F?%ECHHJD
      utOjP~6bYCgPk5i>rFWnBGbhg9JscBl_8c!HI#|f@i&)ABlU&Pq3AzQTD#Mrn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eb859af714f13abe5f2f03ee9e859779e3195f40
      GIT binary patch
      literal 796
      zcwUWCO;6iE5PjpMaT81vpnMf5LPFxJ!bO5p5fVh8qDB;zz<uouVUbxQ+k}>X#Q`C4
      zD0hAoV%FpYQWRO9of*G3p7-ph=ZF6Q)-dbBA=J-RNB#BFYi-*8Wu#91K&3kLcWgYm
      zjC6LW3?J{$|Kfi^tdiCrPW25p<90jZpUSi%PFxfTH9N?Ul#KZuoO77DC=q7zuDZ^A
      z?y$-H?J(1^Y3MX#!wI33o#}M`J7KBO=ORCZw5g5Gwg}%A`(`bj5Q_D<#bpo%J-GN-
      zK><|{Wz-0TMGL4lwBduRi-41+3L+*9H{wu5Co0jl?ly~dX~J&5FYo1@$f>H_ltWHV
      z<K%){gxObJ?|j>}c`n7_4q>_%icmR<uac1WwB331?NY0jOYruMe299a(v(vdGlYdc
      zRS~9o=)#=%T#)+%s8+Lf%TMP>T}DOXfK=;JJ91W*SMJ~~-{aG5jv10z5)7O>3`_3W
      vTv#LcET>4pSa-rkj+fqB;$u!6dwtj?+H4#X5*<wD_%E2s2a{aW_zHRfAS=zg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8b712d699493a66c9b13f80e0dde81b0397c55ce
      GIT binary patch
      literal 778
      zcwUWCO;6iE5PjpMaTDAoK>273MU{{W6k#gCi55f=RZ%TKqHte3ld{OHBYO$$&*FfP
      zIPe2F^Lwh!nw%&?(Q0RB#_!F}oAvGA>l*-{Fyq4`d^u4)^*b!iwfPlxQ`HG$Rp=!A
      z>g+)`)plPQKHQo8!GGdR<?X|6#2x!xnRd##k1C<%N`$GB0(<cZC)P)eFkNQVxed9;
      z#)g}T)tQNOVcBp_sM%v(%q|n=qXAo36VhjGv|T4G&JE0(KO$7OvNqR2coD$I^9Cwt
      z2B@P&sLVM)Gt!24&rV~`f2ufT!bp@QDm_xUc5y#hbxjjC2EF|8sfm!LD#x+Uc_+(H
      zxlNe4SM=Y+ww+&!@VG~qdJ08o9AsyC!r!#(cI;t0OO8tjc8om1R;r4E3m?;j4+H9v
      znvW{Ndzo!T_A^kc<wh*Om?v=^4Y5NKtw`+2*;x2^iD2OhFE2{Wu-KYl;N4<G{J{Cb
      u8pSI)<wA`2E3B4y$vq_AmBjJ;kA0%^CNL@1!|M|N25-y4Bx?%qK>q+tFvdp!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b2c4296bba0ef669b6c207be6d971f8db33f1ab
      GIT binary patch
      literal 1987
      zcwVhkT~ixX7=F&lhJ<tlO3R0qVxib>fDkLSh!hk^k+dmbX;Dhmo+PKRoy{ihE}`v}
      z7oF)3=!IIx3$MI%oN42XcKiYU39lW$M#pjd7_0Bu4dFx7TzIj2-t(U4{d(T_oG%`I
      z`Z<6TFeBg$BiBV)+(^0`roEahS>jqUD_k>|oKpYAl4W`e!j_lPeG5*pBpvVOtg!Qz
      zbRy6gT9k3p5@b4`y)JWJ1Pu&5zBVg`?It&^rq>80Gp6fFTRIF4-kRz5J<Sl$)S18-
      z8J#w5)0<!zH0rjBFEMD-#k_0;!(%!kh{g~?vyMizFoX;RXwI0noLetsrE^haEy>WD
      zDdvQ=Bpg%it4d8J%`jST@ZFqI2~DLPgfJWpO4*aHGi7OeR6z`#cp`$w8M^-+tK$&5
      zsGL>lZJy4F0!2A!1Uv`5TJ#*sd@PD?hJAUnZ04o2Xx@@B96@gcJv$m3fOQ;2A9X;!
      zxh^c?pv~CkFX;VP{Bk3X!HD2E!|^&P(h)~LL!-N?V(8pK@7Wr7EQUc0MUY@<-y5ML
      z2^y&;DnGSVmEYvFO6?gP!#GJ}V2PW>b?>~e#i|;{nYtV5D`tz1d8=r9!pdy-L;0P;
      za}kU%r2Y?oI!5t4LzJpfWf19_5nu5OIjy4`;|wgVV!oi`MNAUXts%q4N;<w2#WXdT
      zywhk1&n()C!81B$@Df9$>X+Eu91gMJB~xZW+Ad*zx~V^BagO>!;IvKt$@hWn@IdL8
      zeqP5M=4o~aJ6RT{r7len!7%m;@Ha1UD(4tp)^P!gbOpECs4k<*pW%@4Pty??U(&Ip
      z?scmp$>k0{RXwljSjJ^KcK7hD87cJ`FiQBye_cxA&z2iOby2TSs`AcP(zI76C6QB;
      zR}eQCV)<GqilSZsijpGzVsYKc$r)2UE^WJqV@RdIpr>tmF{drzx++5Rt~Uie^sa^I
      z3xl<^sOOCycTW38#OS||b|-1iX^r&{Jb>Q+37S6kG5hJ?Kp5~Z(MqzeWU@MdgS1jc
      zXb(IvkGwaK?%_ZM9j%8ec=BB=^xubmA5T><Fdm2}DtLBIiHY#g1B`Xil0T&-!d>%;
      z(3PP!Eo@z#PiUJ`)h1EF#D|c+<0;?qa`mL<KUI@vE6Di4YMO<K!*{yw6h}3sso-L#
      z*8I-<Xz$dT-hL0wRamE1!7E!e&ryZoUqR<zql15gUj8ix`F9xR-(!UTfJy!%&hekH
      z%zuXDzo5*2#ap!A=D*=C{~h=EANYVj!bkj1d=}d8b9ce#{b7|mC9U8JvDbkqyoPa#
      z+=~&sjyI@R!!)N?NvGj9>4blJ7Y4E<g>a8LnnRvWIi#QSHLUu5p`jtmHL$+`?e7yP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicSplitPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b365ff2a6be3e7f3b4f5536e8cf3e84e8f115d7
      GIT binary patch
      literal 14032
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb13c4f0b16005c6dbbd9fdaab41d07d803adb40
      GIT binary patch
      literal 1350
      zcwUWETTc^F5dKaJtX&RL5zD25ps1x>7P(a{nkW&)R53w$KWz`VWZ7MJw_xJ4e+8dS
      z5ECE#0lxa`_0`)?FwWU7<rYZOWHK|IneUtLO#AWQ`wsxF;iiTd!_=DC5HAdW)3jF&
      z*Agp6QTS%bxTEY7Q7p>xV`0mu3j^~`sp8)kcG;4ih6aYTYBj`WV8{(=2S!+MyDZ#5
      zdJIj$Gt(a!W5^cjg~(IatZAFUEryXy{cVHG3=MNmSth{H%+ZJ@9dWd9XgJLf&!~dd
      zf@#Y~mGz?ZsM(SXZ3U+!tYzVuDvpv3iZ(;8ZuA4X&<4#bD!wNOt<2C{UE{Dyca=-L
      zb)?X#p@X68*fNeTbTcGYWw7K_yb_UY&kR<_T7uXu7T07c$R}_fy&8HLGWBxjxPU%}
      zMwcRsVW$42mr9;vSyZNCE5yFYaR~zqS|ExlOFJEy_h4^8UdI(=G+brqIHrVSP`w@Z
      z<nxO3gHR6DHN-KjzR*1BlEwi8Bc${RD$`N<k#22ARU=`;2P-&!pk8BwV-iy&G0DB?
      zx{hxKa?V+I9a}1})UNUhs+JG;$#GoY?Oc);4VUG8oqF~0=1p~FsUwPxs;RW^f^AE0
      z&Jw;a=?wY)<3c~3cbtB^ESXd{PF|cc8cvZ-P&A1ceE>Z>^p?y!@HZ62&`P$6YJg8j
      zlI5YV;|$u=G@M0yG~pFhD};%m9h`eOoZW`Ljr10hRj+>smtUhZ%J*-frIyd`L3M}J
      zJ`=?+1oss^_=XI=V;nz1_`WJc1h2dij1qxHvIfRz3ZuWLT}m&brE)}RyaqRYh*Me-
      vKABdE0Dzwa`wPAJO=t86)A$=wN>w3hlyVWJ7-qu$8_0)>(Y4W~&w~92{vl7J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71d6174c163f31a489e0d8ab749c4ac692f79dac
      GIT binary patch
      literal 4164
      zcwVhnYjhOl8Ghc$CQFtNjDZ9L5(Hzqxxj)#L_(q=hO#jUF+c>w>g?_$nRK$d&Q301
      zZLOD5wQ8-liXsA)OSLUU!}io(PJ3!=Z@>Ge{n69E{n2y$(R13<+P?41WOkDPrnDz#
      zXTI<K-plh|zsYYte*Y%`HX$E|M%Xf{Pv}#z+@zTvj%6)<D3;K3W-_)zo_qB~!btV&
      zX=7i!t~WEDGj{3elx5gqgb1rdG^S5FF=N6=J297`Bc*2@!zPqDBWA8{BcZWpp(a{c
      zYP*>>op!?d=)%Ps1_`0gOv)$+VX;Cf$|5Mi5`{395=x@Na9xj?Hu}cL5{AvfmO-fO
      z$s~1aP`6Fl`^1pICfvSY>$Bp*9xNG?{eWQ^dd^4@YCT8h#;Hq|j68yB+z`eJLd_M~
      z6l$=NP(Expdots8l3^~7Hh5|+o$>8Xj2cO&wH!C1HjLGT=t9vetier$u%jo0z$j)p
      z-d*5rjc{<+Dcp?Z98B9tnYpa)Bu89?;>9fr_4pLS%oSi(MdzcGWDuXNx=LJ_BPR)(
      zCrnUoeEV%9$Kj1&12%>cBdoXrY{iv+D+A`(F|ps$lg1cZaH}FN0o$yw1ucY#nNHd}
      z#vLb<CTv@H`u8O5jAb#KC(B{lifv)sLD+h&Iuu&5odap+y3$gWDHrWQLEElyC+_0F
      zCdX}?{qQ8EkR4NiQ#`_4I}|!`H=)Awy2Cc~c$(9alfsEN6aw#2xo~!3R~Vn>IL$dy
      zh>N+9WehoD{~m=NAuO9^fA`Q3Gs}6O!fx~vN^Q;-o2$CNU~GU%oJz}Jdjr@T#vV@b
      z{8NQ}Vxe@>OgSTh>^_D4LMd@FS&=-baKG%!MhtU!#1V%dQ230rdgXXFr8~x;X-xKK
      za;C&YjvrFc<#>sA>_s^z#gkM>$w}BYvbvdeeHc<0b}J%f%v6N1Zj&M(RrsvbQ-~wG
      zUkGCg=^4TSv6WSL7(D+fxTSVx?9NQaPMK-88jOO=HCH^|5Emod>*JW<DHi0ugKIU!
      zNjoUVQwoR0TBVoR9{q4;-09C)X7aEge?;MPc$8z8Wt|q`j%z4m*;}pR$rltJ!xyEY
      z-7{uq%~3`=C{UhIcoI*spVIC;?UIg>il<Y?ln2-4IjZnwiEhL;CUnb8xlt(37MhSu
      zR%v=tUSoHq`Sy^;z7fwWydV~qvV{Q#keP5tH(?Qn);G1-6Phv|>5_=M>t#lFGQ6zt
      zb$o-<K5JGHs*6T)$9;QeMlnG%CM1l<6kfyYY-fV&D4VfaWcxKla?qFNV7`Gj!#Kfn
      z<=V9<oWv<_kQJ9V*Fv<Yq5Csj#N1!s#F;SO;@HhTQ8+7|LsJ52RM@_y@U}}jETl0h
      z>F+3fSMt8pvGsJ$;-tB<9G)>wUwFc^&Y7QUmJ{F&{+*^=rPcGi+8_d)>3BMA*qxTn
      zBb@c9;u{oe`I;%=4-~4Xkc*sGVWxz!h@a)W+YF8WfJkH0C4PJ#>LTwnT*uEc<^leJ
      z3Vteg9l`ae6m3|B<-P`sxy3?lQyx{ljnjxsW0kDWU`Zpt*ETihQCHAf%{YLMQA#CP
      zMy0rc%J`05<XXAO)8t!`RTK?ur<AYkMl`VoLi3E}l8+D)UE1-hTK4IAtZ#4j*0-I-
      z@BLLCx4(waMcEygMqB8iOK4mDHd{XAdI=X#jlZuEHu<g2qhlIfm(X3(5;})9zIeB%
      zw6`jB>oo3VRozd9s4C=9+fM!a59iQ1TgBj2RUEjC3R&fG$a_5)_?9?Fuln8@XYo&e
      zRpcE@pFl<6XNvulO$l3Y{T-U)@6e3Du3**w?s@N(l>HxLfR}^K$T1w9vEx;R$v-QP
      zOpC8+RaGdDTp>OzG#NUHO@0`UoJGB?szMC&^F<<$7aP3!vIk!(uoUY4&-^6=s^q#~
      z!F6B5b-$A9el?=B2Di~#o*L`WL3QY(dW=vbj!+XGqh=iA_jy{6cPNG*(?<N9HsO!_
      z{tIovN7RD9(^e{@ZFD_tr&?;GHMD~osFPY~C$-Zq+E2ZdpgwY_pN`PI^b)^M(*T{J
      zeRP2a>1WLGAswJU@%yiIi2g<o(7)(GEke4sf|6Q{Qd&D1+MP74_0ov8pGLI=Sz4OL
      zv`6S+?I_vWi<Hw|rzy9G4@qxo$7gz&SAGv`ulPM2)f_yHySUaK<^40f3gM?SE1C>e
      zAIz+@7*CmJT|UBBg30p+??e1<`^5gAUj^-rUI9K=NKh@0MbP7%prf3ir#V5-aDtx0
      zW_q5#A75~tYxE2T1F9_;P+NWHHZ!!Zy3P?^44_W=L$dx8p=z@*t(1{X#~9NI#&nV~
      zonlOH;TAemG%)J}JoN#dwZXvrT7cqRKVW_HQPegCHCtCWc<H~3;5xomKo=P8MMnD`
      zYH1n`l*b180lMgY^wJNDqSzOp?!zlS>bQ@(D~KZGUnC#@k9aSX#5}OC=5f5YnTN;e
      zV1JHh+-V`54@mDY>3mZ&b2<Dt@8t3AS-$dt(3w2frw_20et~NGCHwOsSHrK+O~1xI
      r`Ym+&T~Q_yflmosaDA%gFZ}P}qI=E0>uP-u(~zr_zY_TC=o08ZMQ-mz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigateAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigateAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fe868cd97df79282570d2b4f84cfde935762bbcc
      GIT binary patch
      literal 1097
      zcwU`TT~8BH5Ixfmw%slT3lxeKidO9hu%af$)R-XAq^4F(rSEs!+q!kTCA-_=-!f55
      zd@wxwql~lLjg)|f_;Bye+<WHC%(=5ae|`S}U=NQKL<mm?Vj@22?ulvl^<zu)bVImi
      zM}Oh(?}cH=?xC>dQN7p{6SFTox!>{3k*y#`Sf35vH(bvV9dCM1NOny}hBnm+bI(lM
      z^qv#4rG_7;TY{rnp2NYldbv%A9gMnCMHDFw3N*sX707Zs2|`*!9CL()hH1;@cxXt6
      zi?t*n(-?Jx)fSHF`{7~C`(V0+r;Y#Yw#F2;7zXs0Dk4O=Rjx$@*hA^`M$S-n37cX4
      z;>6SCMB1J{rF-ey+=+@DZYo$0mAo3KA&*-uXJ2})(b(y55zD3WOc`&D0qa~-ut`{*
      zZSeJZM=Cb3rQtU25aP^q#1FC+vRu$(Rs^QJODJ7eGZjVL*HA*4uw;k&wWP(x$u0v~
      z!&30h@t{XS{$J`4BHl3}*Z50EK45GTD%XBfj!>rxzB2ux$X-J1`cwq1Zrjp1u!QSM
      zo|^Q<SwMm3FUr3V@!}!mJ;F;tf=`lcy<^|MPgSblpjPr<G5<LLE%2TWuDTp3p`wRH
      z_6k!tZXg2$))JNj`V>|;L4@rrRzvzB`!W9Js;5{x!^WHKQxwinZ0=OPVEz>M&XZ*V
      z;D9Up$cctngB>KSObPxZ%<)N;=@WdijUA3&<W#%Rxv&Tx1blmV$X}IF#P9qFiQiwu
      B4zvIO
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageDownAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageDownAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7505ade3880d40316f0550acafe42478549582e1
      GIT binary patch
      literal 1104
      zcwVJaO>fgc5Ph3C9}R|v(4?d-O$#X`>4zz_y##?mDUwkL5v9Fvl5KF6+LgWeIDilc
      z&in!X1eYLjKt1!L5VMY@1}LZ!KJ3h{-@KVOGv9xF{RUtin=ynK9vt!>9~fTWvfIXS
      zhaVUX?paOap*mmiMnkmf+!lLgzQ%i2n@dsWZSlzI+m)uY96JV$VP>49((t6qn{xD@
      zA$rfUEqR|ITqy1{XxmOp#4*8;w0~nvAdCw-BG4Jqg{mSoI-DqXrAy3Z6+T(DY*FhT
      zHH1smbp%7I>NI(0pSza22alS3X?YBl>VL{BQ%3H4b>SX3?vZFQ<bv9GUmBt(Y-x<Z
      zJIbdj6PQ9KhIG)FvvE46ag|}BE#$7#b(>W5RG~N~`dQ;pG-Wx48HVX`8Bb2@P9Tdp
      z9oI0=5Fw^LlVLGn`9<}(RH9s9D4e%5D#vvlH;|{1scJ=s>Jlx}Zi#_ERf6PjQ^ze7
      zXdIsZza|EfSWNqQmv%ram}+<tzY7d=|LPw@NFFm}tAEj~09}irbne+w1fu{(%}I=U
      z{n%1VlKBI<rYIS7)3$}X-Qk`mXp1su?*<k?@}a&Ec@aeEjL~h=zXP#SD*gqD&pzNH
      zoe8o)pMV2gB2OQ|Fo`5thRa9=6dws0A-l9Z#FZ0dpRNosdxBhz?BbS|);=K`-qKdn
      z+7L^p3FiIaSBT>^QNBS2Z!wE^^!^@seDITQjEIAz$}6HoY2&m;%UB_%B+^*L8fnWA
      X%D`=C^t$e6xr4jD5Nan4eFO2Iq>B@<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageUpAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageUpAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..53ef74f1912d785d2ccb9b408e6398cfabeab007
      GIT binary patch
      literal 1100
      zcwVJaU2hUm5Is{Cmg3qX0+qIwR;dF0SgUPc@FTU+1cOMd^!)<2xD8#%?n3)3?1RQ=
      z)F0ssCO()x`=g9=7n0IgO%wOw&fL3a&diyapTEBU0I-G)9b<$C`=Td~O!v^Tn`Wma
      z_RN}at-ASGov%c#CL0xD%W5%G7CoyeJXsM<S?z4qJ*#c&&<N9`6k9ddb41-6{3nF&
      zTejsrBm}a#U4pjVZpbjk2^01iz6b)iWFQEGkjR!4rP&fpxZ^p@TTsE1CCirO?m<mD
      zTv<yJVx@Lnw04DKsr&Fz^Ilsn;Zf<oq!l=y@V$z3_S(*YY!K4J%EX~(%AT}6a{zv#
      ze6BHqIFdRN!={{%Gcbi~gz={IcG_L1&LzjQxe>`PYWuS86?9A!rbb0PJFPl`6lM)v
      z#~dNZOw}S`VaReu^Qcg!oF`;2+834MhJl;N5TdGD+2Xonqi8qekv~y}q;bo@ZDa{a
      z*Z*H}WY21MU1loUFT1=0TDGXh7xX(pnEh7|31eP|kShH}w*qu6LjJ<j<p|;c;s!+q
      z{eEhxHA((~Tve0=qiEaG*=`BfmApss^R@%?;08c_W9$VH;#23_hJOe2d@TG8k*_}B
      zGM^E)z#9f0V}d<n0K+7rYzbEo8&VuIGRSsusgJ8CNIhTfW99_uGTVhsEunozD6pxm
      zB(y#jPZP}f!EX`9JEnY(BtBpUANl<gGWg;rT^|q+lPWKVJf{uwA}wK=nW9Kw1*@zr
      Z$tV+dpz-UPpXDy@`9ipvJoa^je*+6-67B#1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67a9404726d19e8f44bef34ebb12caca82d17e31
      GIT binary patch
      literal 2309
      zcwU`W+fN)-82_DNVV30-D3`Xhw3dQ(S!}nht(Pvv7E0~na#1cKUeE3xU~rh(&dfsb
      zhR^*Ee6f8nAsS=S1lGm}V`AcizL@ynA7C0|tkJ|bZ}B@byDV#IC1x{ozVCeZ-}jv}
      z`_<o{eg@zq-qE2k^eu=baW(EP8`fMrXNuW)TDV3g-ml&hBAu4mF=5HcWY?Hu=cMDU
      z49p8_PF@yP)|8Hp5JRK#5jSZ&KAK*T8Ba$ILx;bcmcnx5m9{Cv^`s>oh8l0)aJx=0
      z#8NxWBSBWZhGlqt49B87H|w5a2o2a-Sqp|;96G`gRH1>R7L5#5QKit3GAucgUrbAf
      zj7`bVl(I9zoDz<q_~K?rrOj}D$I-V3k4mY}RR|b5gOawzZE#6i9u*S7KJ3@g#&GEV
      zx*P}4PF2lGuOuB2ixj0L+MOylZQOIHfJ7LFNY@kTlvuIz-k5C~nUx3*<A{!qiY^BR
      z9G&Q*ZpbTnVG<mz(JelMK}dAZ)Z!?jIv!$(?i4MKZp0XxGkM3MD#kO8ZJMLAv##_Q
      zSW<a>nB$nzX|2#vz48p(ijYQ};{;ABFOC$R3~Cw{mY7q6x4#5{SoY!-vV?N~2*+uh
      zp*b-t&Gy~T=rNAR@dSfT5UN5L+A0QQs9a+rf&|X#=w;Y@4;79+JjqZ?MF*i64n*%2
      zzI!T+3k+OEHbq7*5+o|b0LMiP(iGDKOjI`3ANiz0>M4%PNYYRQNF^<`y0Sm-dA7yS
      zTZC#So$CtvKx%=tkIT~>DGW124Dwv^diMYOR5_1wjBUyJqTHIZ3i>R^xF0ktOF`AK
      zndF$la}0F^$f%i}5@!Cc<4_!39nUlDE^j9-PZHJ<OydQP7Zt2w!}5F=%Js_}uasPm
      z$mQbxQ3#GSGIV}|9$cVAlNNQ=RdJJB#xU3=$Ry@;%+gu>mxyCt&3wp|v!2pg;CM}K
      zRC#tzMOx&r)Lqt;&t(aeDMK!g*{)GK5jl=4O1vu&2cWoWOvtmRBoRk03DZzgwY|i#
      zthRMW<^+{WhmXKI{9hLo&7o~(H|LO8ixMfbk#RfkWaK47U8Q^O>i2Qwo{W+feIf=-
      z;kr^?F5BLq=%CBIik@n)#zu9g)2B@%z7`RB*AaJ`c#YObtY-r}_6h25`Z~MmT|+ux
      z-=T?Uu4uAqMhmSJ5PJd->=r`w0}J;Qu(#=80S~;3GqH7YMo-nu1|Hl%Pl+$!_y$fX
      zY8{UT%c%m+uHlw%ecreJs3<R>KXe1{m2EF=V5rQEY~UHPn)n>k1<afy@}+?6JNO~x
      znDFxi)ep24`L_1Zbqu%H+(6A521~9e=U3N}rA*gwq`mq&dfIhgqq9=OAdMij87%f@
      zqRu9jFXLy?_XX^GaCV!%Ge6KQ{)j&I6NcCwOt7CZN$WKGg=YCzc<gtqvOjQ*{fYOf
      zAs^76kB>DCH?<JH(5msJrsHcZjBm7Be5=*rwpNcjS_6L5n(>#`!gQ_G?^7)3MX^tc
      mx{4LTVU<Ssb&_hh1_N&pRYmlhey(rfZNIlPz;q5)!TtdToourJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff7576be6bf9214b696d825239d99c7f9541a74a
      GIT binary patch
      literal 804
      zcwVJZO;6NN6g?MarZc6Ajxc;GsF)0r(70eVXaW;SAQL5m>|Z+%e5ADc-W%`_=|Wd*
      zFmXX#`=gBawN0FWAttuT{b<iU_uPAb{`!6i;2EBH7$J0y#i{rhnlqIih3^w_7)HXV
      zINWr0Uqq4Y?}}8u-ClYlKMbU?TUk6X8?jYc>Y+lI9VXa_jMXBx#eYI=U8TytAdI$`
      z4+xcR)|YiO2!S4A^D&CC096Ep$#%~XhKXRhJ*%0u<4VVSDwVGWCy~^wDv^X{FN;NT
      zAhdFM`LSZ(DMNVP`;W0Y+)d=suGEK_K9POGLa9rf*-)O!)P@E4rHfgij|sFqOqL7z
      zJ1)Q!rU{KBY4@^$j#=<TdwFQ!*U_<zZO6kbVQP4Uoj;m=%wRr112sZ5Z$X&9NgTm1
      zx@{@9qSmz?th!>p$#$Ab-A#ls(s+1GX#eXL`5M>vh(++>;hqtWs;IH`I9tnez<b)P
      ze}jLX18%YP*#n;#_!+l33JMs;afdzOE}A7pm%YP|tz6*V56oO(?kdd}_Fr?FRsk((
      XTy!4~a)O1tW)TnbD&qGMmQeo<VwK89
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusForVisibleComponentAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusForVisibleComponentAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71d43596106c67132d6d84860cd60165807a2c97
      GIT binary patch
      literal 1029
      zcwVhiQBM;=5dNmLTscp`3dJG{DrgJH#Rs2iOt7&DreY)7_r2?aORjhIZVUb`6Rpt)
      z<=G!)oV}jV1SLFpo9xc+eDlqGGxzh?x9<QRVaq~}uzM(u#0NJyR^fr$55&IfiA4GC
      zGqb-Do+rC)5z4natFPtzflPEW@&`#XiaRP%ULYG$uOEdn)Z4yRQD`AgSRCiv_7WWn
      zKl2kNpQupjr-X@WtwYE+qOL4rim)7CoWRBet~e;bA<S1>CWjjc&akIrPE<E+Gc6U$
      z-9gWjG1neQLa7z`BIt-%nS1t_*Y8w9Xt(~a_&OILQmZZF{V49qF3ZYF7023@M~rnx
      z;OEBXqHWBfY+*iY+uv~x7I1?wbs+U#G>CoHFjuXO_289vD1BYGut-=KSM}mdhK&lA
      z9NfZfjy6m(;27CGRY55KAvIN;zSnK6;I4%`+|Kh}2lp^ZaK^_+D5M$)OBbmp<aD1<
      zY5k*O2G}FLO=ad*J~x;x6UoVU!cfMIKqQGwENl|0mmMu(?NY<#7Vtj{^X1qoV3K!>
      zZ;#VEV6B&mUtoVs0atmq`2;>O@H3{_az-%BV3tq9HIy=nPDVYuF~s!~R9<cladU{}
      vGp^~>{}o02;P{i2Z)Fsd@fm9sYs^&SbsrBnGKXr)P{Vp!5AoW-Lll1lNV^lz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingButton.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0e33cdfda8d0e5120771b66b6f55e6a1c57bdc2
      GIT binary patch
      literal 659
      zcwUWC%}T>S7@SRiV$*1A)%w#49tze9jow5>umvGdM6B&iVUw=95)(;M>uY%s!GjOr
      zLy6x8y|f@X?6*6+Gdtf7`}O_t31A<aIy8oZ2mZ`otY{+rJL}2gx0b^r=~^9Cuejrg
      z(FOO#z;5*2Fz`I0b;fZV_&Tx-+yALg!!Vfqk@F0-8S=os6j3k^UBQr#?`723V`%l#
      zwsb_QW9iHIgrVI`FSB=s4B2il5(O~Ko6s?5AcK;L0?KsMOc<q}^u_u3(GelZJ?gR2
      z3ta9Ec_<bB-OQ@S84gqXPbW#w$c$vjz-$JipX6~S)z#G*ZCjZzn6~eWu<P+C5|NG?
      zLo=;Ay=%%JTa-eEMh>i8R$<Wppl&D(gKCjb7aB2uVr%yeW~=^=g;#<a7O5IEBY%Tj
      g{u&j+RfS2mgk>OEtt5LIRujz{))SSo*gzfH4@n%XbpQYW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0fc7b07b6af84e3a1252b760fa91e4406bdd7c87
      GIT binary patch
      literal 1945
      zcwVJcTTc@~6#k|yv$U>IK>;tQAYy5?YY_zmQLMLO735O&#bml2+BM6z*)BrjyZ!-v
      z);FI`5R4E00DqM6OxsYPKuB%UnK_p^=X~EeJAeNE`VAm~*BX2bPu_}mV%;dOSx(+4
      z*<#tqin3)I_tm;6vRRp%6OLR;4J?>$(YDD=$@U&`DWxI6aOtpUHAe>S6|C|=f?+(}
      zWcCRPGHE%MH^nd+X*$YKh9QtF=422I$8@xShv3I?9U9sg{1N5Qp0*tMe03!&U5aH(
      zhK_X66m~|qmXd4AfC9xZ(`+#fgc8P<lCT_)Azp=Oh&9i6?21ysGRqUY63rxwE2W|%
      z9gjeT(1jii-3+5m7Ng@d&M>qJ)0E{(tK@&MeB_%GL7c;R4ZRGJqu$YR0T&rGPh^#X
      z;q-1|>b?^p^kYE7C5G+;Ty$K<AhkR%JyOou!jvmgb$~`8rHYH_7($dGSg`U1oBm`A
      z*PD|p+C`W0Tt!^NHHH%nZPQ`kIx$<8Ud5TAGqU&oP)4O1)^P(PWH(n`mx`#eI=j3~
      zR~cBPoLf3ZF-EgX=%-yN=A}utll6c~A)LG|iQ3zk)Id|!(P-6iN2O|6vvOWRdEV7=
      zPic5TDv%1%eH}?WpwgEu+pZ?kA}RW*f$PU39gh`vVd8E<+GLlxl#`R|A*z$QG=rxM
      zdS##&tHm<(>^IjcAmPgs@_npiG3nw#!%v+l)w}kg`Jrw0V&iA5=wVn;Z%QjeXrZ|3
      zn(~pQ-i)q>XmOR6cuF~rbd$CymnA(aZM%aK$$PWlBIWSYyUxO4^^DQU51&d&`XEUo
      zB>89$MPol`*@FI^Bp=#o<>Uk2k1(Bebw&s$(4nHC6DO+?SdiidNcTCqfzVH!+Q8XO
      z^i9RK#VebL^#;D6wU>W|QP(H@+sB(57~d&OZDRTxuEy#fi9>yBa;$e}4G%Z*qz-17
      zAb?*(8;|20H_*qgV~{5>%!iSteV&it4Zn$X+TZh0eBxsj;L$3$8gO+=<5`7_&v=em
      zir$8gm?I+n<gVdGjo3l5DB^iEwuSlqN%d9!i<NZ=8QMGO)I}f0OWJ7;@Cv?v5I+E6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b244abe2d3dbbd65e213542ebe674d026d28c99e
      GIT binary patch
      literal 1293
      zcwU`TZEMp|6n;+HCSA<3SnGVPFSE`rL+d~gaR_c8R*DF-gMGYB?=%wAk=v@jz~7^w
      z78Lve{wVRB8Q5$mgnr0*%Xyyr+;i{!_51rz02^3yU=i-WQSa1;ws{|?ui6KR+Hd!j
      ziKF(G*q5r`*Mk=-)xA!0C(4FN!flc#4$6euaqzRlI>8>jj!p9}A?z0Ae#ofJIE_b-
      z2)A3sVQagD^7e3`7eF}Wp#s}Q35y;a_=HkR8kV|os-KVF_I1YKM6>MfFjC2`%3{g$
      zVp(Jp9u!`EY9PFa>iA%wM*PdcS;EsfiKfzC$3-3IWJ~7>AB#_CTHn0D89h99m*;)a
      z!zElMRE!?=I)ugv(vA>>{o>N+)|yMZD$}a+fv70b#xyqwy7=ldoQ08m2i%?EIE(a?
      zSnkyFOvfFeB6yuN)!BBUjM2uyDxp<$4TAr#K0+{kLb%35DDf+&AdpAFQ5lxZgzF2O
      z-Q&z+?}qDN*-YSl=FGwpTbp}eHxO{_NemaKQ4=<tfuA#MGOzse!yl;cg*3tPH(WSk
      zafRQ0j759v7?b~(i3<)IInye4idH*ZpWw>LI+!b{@~*Dun49c{uM&QN`{{oW{#Fj{
      S4K&%;I3kALVqfQ|1?vyc;!%+R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingViewport.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingViewport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11182ffd0f60c266d3d3dd341a72815499933f3c
      GIT binary patch
      literal 790
      zcwUuKO-sW-5PjR$)W&GjYU@W;JQV2%S_My9JXjE_MZ{|En{?Hcn3SZo{w)tu@Zb;d
      zM~SncpwJ#7!wx&M@6Eg!_UrrO6Tl(1(?~EJKk*m-+6YI|dua4se&4WpD4oWc^0(Z!
      zMemw>;;vopI)U%H1hb?V_5EOwMv9^Emw)m5q%oAHO5e3_MCcC#M=)rEM;Vq67;2rk
      z5>ANKl%5=%GVE32)2bFjs^#}Y1`LY^(wNtgMAkqCCPT8K0NIZ8#MSWG76Fl6Qkd`f
      z4tFgcNEJ_#DJ7es8N2)R-e?T@5B0H;Gdfi*okm_&gX#==H`@KVRD%?!`1`66gVFXp
      z5wu($h9XR3lc5q<0Yh#|19nJ3lFl5MX{z1R?@N%8B+4#ObQHyaUaP;usEx7o7GZMa
      wHNrr<M4s-3x)W;|D}V{AP?%KMC3I4uYxOaTv)PI0tVMnu8&M@jR>Bq%Kh`|YX#fBK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..af70ea982d6e1e2ab1d6aa3f70039aca8711ce01
      GIT binary patch
      literal 1145
      zcwUWDTT|0O6#llfi7kt*Ef?`Zu~scb2q<2#l?SVgaXQL~^1f|WSSBV+l2-T^KKn16
      z0i5x{AK;I2Jezh3j5zcmyXX3ybH20r{paT|0Lyr8BEeAK6<x7!g<q7nZSA?@lhqQT
      zYFjV#`9ZW=(%BH6{Aia+*_5tqN6PnJ3(s+7U?Rzo(+HL;DF0n+m;5FShS}4&vMasF
      zYV1&qY^pGlo(vd_Xh((RC5CEq*d}U}Rac&h))*El!>7${F(ezlBhz3Q<1le4gArso
      z(#SE4RCGYLsXY0%^SLDhN_HhfzUjAxyCnjp^}aEw+h$lBy83y{(I7mGL?nBpI1Ht;
      z<D91Km6mCSG_K;BiD`z)u(dg^;|7BniIz4nOrNRp<|MY3!3<_i6d9)e6T)!|C5F*$
      z8IiH!cf2U(&eo}Ajyu|$BX4h7>DZnl_cPS>J&p?IXl8Q0?|AFJW|$#WvF$lqk2TM6
      z9}9#X_ERZ}fyKxc$C5_Q_v$vqf!~QXd{?y(wEF?aL%qaIAiKg<4w0(Ok2oG{vl+-e
      zp>(H=#xGt#GQn*6ouDn(mEQH_KZGvod>X{|=nXeq5r&c;L*bki6IsL#eJQY9PCq&N
      z?GmJ?k)d;xv=!15bZ4sbN8r^Txcohixk9HwF)&idlgzbDSp|&K%`kz<KEhWdV}zI0
      zLjvf3hnPCX&4G0L7<Z3Q9q5bSFg8$@2hz$(?HTG8MizM^ha%l2BM-|cVAU8$!<dMB
      en(Wo>_oSsKcuHL*uo~k$LoM!^c&Gi=!TthC#Ti`y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6746e74db97417e1ab23d35209237b1c2764960
      GIT binary patch
      literal 10750
      zcwVhq3wTu3wf^^GW-^nL7s-i)Bo*Xgh`a<GBp`@bN)!-*VgZE=GXn%BGjTE@fcPZ6
      zXjCeqNDz5QN_>E+K%&y3R>gN)wDnoBwc1+iwf3sFS4GWTd!I9BCLt={cdvYB_Bwm7
      zz4m&qwNHHhn?sKRIFn8EfHRC;9#|PzHN38&I=XatZ6vT{_~Jlab#VB3>UU0H@#1i3
      zW*{2=api#2%e27iSbf3+$&jnI503<B^F@o7hl4chW+>FNfri9z3w3%R8dw^RGq@AW
      zs_O=fU?`t<vgeMYUE`~x)rkoVL(5Kn+u*qja&jyb_JSeHfCm{q2;>;>B9}pwDTJJ9
      z)zR>b`kKYzIBkxE8G22N1p|?}fq1ogw<o1yn_=8ZpMHX}NQz#8P{?|j9IL5~MZ?hq
      z!(dAyOM|l$aUyJ;qP6EBTGB)VHJZZ{cF<aoP#Fq(+RKnnA_eOsfrQOXWpqi*i&C8G
      z!4DY9PF5-debJA>lL#zU6AVRN6mmfdcbpIXG0=kn45xexih)5mogs5+I6;$>WA#cM
      zWR*%EF*evhInGcztE;Pzhi8#v)lH6vNq`W^T2?uDt~y|-fnkb9jzwc;BoGYOki<T+
      z_y_}MVkASJBRXMdIt;F|N}`|?FxtRb@G}@B(yaPu-TBq=#A*gMpOAtUORSRI$00Ji
      zdJV~aO4<CuDNUbWO^4Q1$D&&5@dnNT`D!*X<=9|SLT#!X+>?2HI2Y%6Fo~o+an-<N
      zoNp1EPC-ypUt@7lSoSRpoQo+2ex&x~(w>>|@RD#m9uBEpUR2^j4=zYQ$k}RO8qTIr
      zTNbWfx{Ne912a9ih)zy9+w?$UnSqNji|kYrSY_+6Qjwiw;KypatD!oSSf(s^iGiPB
      zp2Y=eei9k4GFlf_>M!V`2y1qn+OxpGrMQd`9Cc3*tfI}AD593#>9j=%cu+-F??%GF
      zV#R`tgqI`~R>(kD^AxuvVpwWmnc}{%HmMeyv#GYwrC4rYg<`?%#)5^R$krH$DzYLG
      zt5xr{1}@i{TO3OyVm0a<VkM!@F}t60iKU(XSZSaEq(LufC#jbFvYxb3i8U%?ktcg<
      zEC;Z>)p2(6&>%@2s;;T)68|ZuAdG7A;Y3#}<ehMsg`;BAnox}X)WClzXYvrEmJgNU
      zdIL8oi8E_b)=~2}8n{W#8#QSvQ%c=n;AgnS^5QA6XkvPp(pHdo=$$Td+R8XZ?p6bv
      z6uFFeeN?9hHF>*%&HC)RaD;+69HOXId~Pw&tWtq;x7qemWi%9Cr8eDZU>ojIo?ykl
      zxgd3_N(toLkuaUP1G_xfnI0a_s)4)Jv22yXnxlyR+`t~RTG>#g4hFtJ=dODV+=u(S
      zWggpwiz#Ayme|UB`wTpws#CA<s@gzQxs4({DIO23RtNvWz=N6%{dS=b2hrg{JK4P_
      zng$+HDp5X`vc)3?4&j${LOOTWGWjsESE)E*IBeiiJVpwQ#^N=B2$_CPQcjP;(kZwU
      zzc%oMa&?0aq17odRY%prQwEOUY4Ym2WwH85XjUv?r(jJ&h4OrL%(DibQ_h_gPe)J$
      zUNG>YibOks(DX$s!|_O9wOahGf#0cPbDTwG?5LLTB?B+x_q1l6JTqXc(au-;*jEg^
      zs-*MQCRf$$>jvIX%w*GS(uru5TrlBOD0j6TKeA3IV$WiVsTC@}^Cc9Tg*{uB1guN<
      zO4_b`u}i?FJdrr9O9bKxD<D&n6Ti{$szj24f+-J$qf`^wauPUVcNft_fZCe4Dmm!|
      z$DSUiEXVMl28xlZ6!uR8ALC!jRN=(j>bh!bdD1$Rt~65ph>E&T41B6wEHAy*X+<fz
      z|83yk%GJztS98*!ilNU9e1Yp!e?rXB*7IWVP&l5<KBYKr;44L;usemMKljHs20BT6
      z?d9ju$)UP##WAH;LTB7yLRDuYonxw+%w;gQ_K3O^9d~UYu60n*lNw3vq)pS*<qIyW
      zj)ZJyajCBCC-ykcO5BbDQYqO9zs2^!UWIQX`4pVQ$g^vJ)y7$^KzYwb?zuf+%rr0-
      z74C_jLH|c;W<>_;qk}jSs8iuo86}@{pKBq&J@Kdo5HHJO@#;0|jEG{aKCaZGL(AP@
      zbI7PzxC5c(^>qnVivw!NpgOp6ng)Fu3`dvhE`gO9Y_RGQPDxAKb5soqCCik`{<bEv
      z>uRay%?j6$gw#w@>_zKq2)i!1G$|6H=3V!QF2x*a-b>q)%F}anSiV!1)72>BIy0$I
      zx6kt?Qkl`Wgrs(|C>vw2vsH4+BEDx(7$!4}FB)!elAIY2*ThzaPw4r5vt#w~V0cQk
      zx>^*T&}9!(h9hHCM#+woNrQD^B9=R++l>PK$RL6q7g%nty55k9a#SQhg?A>sjRvQG
      zWaIKP+F_JGgzN|DjU!K4m2klOp%=l1f@xPi3bdI`6xtLf(j(Md_l-mJ#=h2~y-`7@
      zptmMQcLVgH9ZV$|n^=sn6+35?AB1rbB^@|zyaJ0mP*(2D4WZZJ>P@s`RO;A5k`sJ1
      zGWl7^=YE{V$Do{_t=TBF$l7dV5?f<%HXSOJr(1_}FYWiyYG>-8bHoJUmnmla9^ubu
      z#Rc|^nbCo96|N%JGjO-!%;IKb7P&ewu@xC={9%Q=$o({mOj+bUh^Y@_x?h$ma5jMx
      z8Z(%gVS09Twkv8xeQrfYiQIvV68BD&+jH|v6{;!AOG=9}4q{<Q{RTrFSW@Met)vtS
      zt=g0p_3{!rj8GyPF-C~-stFGN^%dS<qH<nok(WqSso!7~;nNt=Z?UR}u=*E{La!q=
      zfuBzboq{a>BjobwDB&|mu`@A(UyQT(ES$|}<3c_MGx=Ox$}hnZTCe2`u!diXtNCSU
      z<cqM82e65r+xcQ_<3a4A@qWG(hj=x9NzY-v97p&HJWu0M9>rTchL3nHj?<`&SF3%a
      z)A6BBTmio}+GkixX5`4iC+c=V-jhp(imoYS*b!vfE6KxLxR5;TDqKx|S%P=9;XOE&
      zZYkFglz}z)DXt}1Gw>D_i**EfX*b;rEw}LI5rurfb#+ROGi;xnTaogO#tK*QeTutJ
      zv~PoGSnv<%*+b8Kg=%k{-;VV|$p%GI8N%--IHKT4mETk3B4442n3{-Hg_Ohnq1#@C
      zGn;UN3MW_<vbb0ulA-UXb$uGG>UK1x^U)pOqT8hCdb*#fXpR34THX2Ry0>I2<b!Hw
      z2X3zL+QGb0jl3PVIa<BL?=yYd;1+&gv5Jji_fA$S{6;Iwws5wZ#>k3H)7XykqD*H>
      zhDIL5_O7qHtJ<->6$7l<79lQDkhD(~N~@Wsn{X^T#imi@?Z7?l*qs#eph6)+6l(1j
      zxZR~BuG)dw`c1D^nHepZY~gRT4|`OGS}4bAarfGDHil_vKIRc9iNlQ!6Q-vfZAqD$
      z+Ogj>Oy5rAr?}ZDL!_%lg9>)Zu5UhRwKbFXy_#w3`nsRaZTl|GG<D&|*35wpJWO1r
      z*lAMY@7K!FV4G4-B&nP>z50Jwj>Sisp~xy^qwi79$H~bST#$4m_)ItH3m((sH_D4k
      zhy>;HUnNPDn7$4?ZaX9S_mj=YDKEC@+}43-k`#B^j!Y=e`%{Pevs&4CwlrqeFn_k0
      z<*e<5SNL;U;We{ll|Ltml{3trYvwi+U%4{W3U>)n$#b|}Yi9d<wPI+}cD=~Djy~qu
      z?p|zWb>KJ3(;Is+vzM9I()qG8f3z9d<;7;UnWqH(gCc609@}`P5uzY(#f|ARRcdB+
      z&j(u;m}h&Fb8y>99PCjCyKUp?gQ<M>N}r+p(U{d~W^McCG1^Fmc+IKv+)e2k{CX-&
      zH^Agg=*KtVT)r6>@jI}9Z^2UDjMaQA*79w*k>7<o`F7k*<8B&TXl&&>aDeZmlCulX
      z^4)lix8Pm=b9~D8;7b~h)A$vQot$Ec-@^*{{j5LV%ZBrPY#e`pP3QaB#ry!9#oO5e
      z-ob+WA+~})%o_M3Y%M>;uI7)iM*cXvfj_~1#-Cz$@*`{~e}+B7Utlls7ug&9H|!n$
      zTlRN;lzqWp;yL{Hd?<f~PvWogsr)rQkH5~B@Hco3e~TyhF@6nyo3H18;&<>T_-_6l
      zznA}wxAXV;A^rh>hkwLB<p1QK@{jp({x8A#CnA%7D)MP8<e!Nl{NLgN{<&DlzYt;m
      zrC7<2i*@`f(ZoB&Mgeh`;DQ2P9OUnb!@?t;6+ZDBkttplhIm6{i(?{3yf1Ra=ORxE
      zkuP&ZZ`nr_$zo9=2Z~ZTN}MVuihgpsI8DwL1LQn0P=>`Ixl)`iuMlPO8c{CSiy?B8
      z7%I1lVe$cbe^`u=N5n{ZRE(Cdh_mGTVvPJkjB`Pp<1)kqSH76&I-TCn6q8&N#AH{c
      z_@QftnBuAuQ(ZAp>S_?vTvv(dsx@E<3{<5#*%}bER`+!ZdQ-OsnXUx>NJU-1bS>9~
      zUZS6CAr<?psjx4g9{Fy<bEDOP-lgKNAvRpjwC9#m$NQje91b{8XA)xL<oWj8YC7kb
      zZYz!?A(rPr)8$ATS|A7DZTtyd)*v(RXPWb|JBi{u_zU@UJL484H&OebA(xSa*iEcJ
      zw=M?X!%ndv@hYA1u7-|L<Dwxskj=+?8XCcVr17%kL^eXNW|L$Be<dhK&SQl(6lOmB
      zji6k)l5XAa6O<<#>5lMsf_llXlMw0m1N_5kkHp8M#axO<QQm<MtpL`YvjbY)l3mRu
      zt8kg}PS`byx>dV_e%ea9s%`$r!T&G6+jMVd_X$7cOJ9j@uU=1UuU@y?t2^mgsB^ZR
      zV(moIfzSM2)2nN=HT6HbH}R;#<V;Y5Laof9Z`-eSf8XXSPu$$pfiL~Oli7UkNpCiN
      zx}tX3?<nhQm6fUgFuftQQT+r%sqHB+81fss7@IzY6j491)N&*R#;A%3e>R0i(p=dc
      zj8)_m<(MA2yBL()nQY8vl-b?8I^RxR#r}<R$TfZfDdr<bEI=P|83u_(7%ZwVOaw4q
      zgfU4h#RXzH=86?qAYxc3Y7r2Z;~J4bBRw~XdTgd~i&%-hq5+4+Dm*UM;3;}u6j$I?
      z8ebP{@qxG!Uy7^nwYY{cdc5LVmQSN8u49A5IyOc$vI?=DO`vCrxSq|Vah7OeL2)B%
      z5I3`RVgtKH{EXd3<Lxx=pmC?Tg}iP9+b1@%L*iEUD2<QN_#BPTi%skgG`=P_vtwcl
      z`%pBq&&6iW#WsCgd7Cbq6b{Lh#0B%P4072Vmb|U>VISBjX%IW6gI{7Wdy{$fZDlUo
      zM`5Uv&R!I-Or2IfNJ4Co0|l|eUOf!K44rhoOhRmo12y1AdvzgeVOa!u5n#JmwoW?h
      za5c-(X=NXN%yLz_V6Wi}N?MdI*qbQRi6fhRNOvrCo5}%Wy;#0|U$3w~AGph92P;V3
      z9Q79f(VBMkc00E>x2+GUz8>3G??WVa4#jno>UNA`_YQbyx0HUD9Tw_hQ@{$xdZgdm
      z%5(&jnC=eN+wZes8B%YVrmGoeTAQ|-zVuswPu~HO9oqW!y*(>7P?Ls{=?HD<FZ;V<
      z7qDWr!<5vYm{~2j*IH{a-Dc)R>fD0l=FE|$`mT}JWunc@q;8L*X^BF1j?GR%U9T<K
      z>DQLw--h1S^;P%sR!I6<I-6TjkZh}T-$@rKuhP|acpKfFttd>>Z*NZlD-DkInBJ}5
      z>`KM*N|cf<A4i_}HA=)2=qH}U>EZ}RiKi)spTiXK0)pa2B*al{6fa@7_&xTCSMUfG
      zrANhU_?>tI$HbfXn|KQ!ies#g_!Gt9n{2lD3k!&MSxCIcR*1i{%f&y~TJa%k6i>1n
      z#6Pv~+^tFrYfAbKL3Vj3$SUs&QUy(D=wcm9d2BU16@K!m5*B5Bbu9H`)vO;o4eAfh
      zVb-5ky%@zVW&>0dU=o|m1`?EsAjzx>pMj0|)P^pnSQ@0_0lV>z4ZVvRD>CT3H<I59
      z@D#nN!n91OwYY<wZr8r8B_mabuJdxcV_`knrc-dcV@Ex?TVbjMUR7n^Ka(r_6}n2;
      zYGr@QN_|L1h%e}3@g;sBj+1r1!gTR9mWpq*Cd)0poG4tD)FeTF)|ym*skE|^RDb!f
      zBlCHBqmgZK?jbMO?3AYYYN-`lRN74!c~WUfNUCz>Ha(GKg(CI|-|sE)`&w~TD$Go8
      zdwPs2;mr&swdw5^xn9#(y3?wb-xAy=@z^(wwCsXQO5WY*V??E;^SV|%o5p)v8od7`
      z<Y?<zj<oEdOr_=6-&KzNJ<8E7?R=*kZ6wEjM~;*SL{Us#Q9fL<06tlWf$|g#k-afW
      z7NbIzV5%&|40$RplYMcyJPqq)8Sa&X@ifi9EQjGEIUJwK5jZYKGA>84TsfK*N<SMY
      z$FQ;TY<8g>%PyA{Yy-{TA<xlXwO5_Ywm9**#fi@?Ix4w_-nZj(iyfZ>v5%D#<iZf_
      zVQ1+097WY^h^}T8*usYDdNmbIY?!WB7ot%|n-3r1J~mwM{S3S9y~nZ5+DmQo?bcqZ
      zWb3KbrM*<El6x6DvxmwhPOMyV>i1NxWte5rVGmgGfey<=>Lc-1=x<ZSLQogCSARhk
      zRv}a0y4+T3z}yOtv!%Wwqol~AzMXkg%<C_``Zrh=I)^fLD~9P^rnku5fqN|ftSV_i
      zmg(}#M!{O)(^K@~Wl4uqyzJ_Hj+X5stNnVVxYYFO{?hdAb>v=xB9eP9T@fxpZ#fTr
      z<b0IM1?Vd;!(h3Hyr>EjWf14mbFmCzo?L-NvIaFWij}e!Yb14UGJ*9p-%QtsZE_X%
      z$kn)yp1pDn9;ESryh7`B4dqnQn4{MYCl__-uej79kwr&puPH^d_7#b~*vv+0%MZrQ
      z`tqc_W}Uv$c`y+TI(uc{QtCag(O$EMs>e+lIzSm*_d7%<;n?m;dQ+Sn{{OIDME%6H
      z)gt;gMz&MtI-oBvjtPBA`44}m2~})=iwWmj{SKMXr!FU%W@gHS%SmmJH;@UN$b>hM
      z32!D7ZXgrhLMFVGOt^_mcsrT!b~52+GT|MllFe8`_pyZBhAZWETuYf}y}TP6Xnv<`
      z!EU(+`(!Jbua(Sq4<4rRki1u$v60FkDbF$EVaJSz^(S~`#@&t?cj~ZJX1t4yw#|5(
      zW5y=Oj91xatiomNEN#4?ZBQTfkwI_J&>=FYYGpHt;&V><eV^W_3}TU`y^X4wENMnY
      z2~U2cQ=c1u<(pBW%{tVy+shVH4$~hR={m~%WC0gTE^XY^`9}o}ZMQy3%68nA%DE$z
      z|Iih-Kt2TZCz!tS5%iabFi0N8X!$6q`!Sp+e@%J!Nz9c`VWB*tRX4$6(^1_bM|F$T
      z|GYxf`(h#+i&j!ye~f2+wdw|8tX71JGFb)wWea_l=H|pdz{#U&Ni6*jaO%%)44jQq
      S_-s6*tD63MAVVpe0QSGO`t<|=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85a4b91aced92e0b769a8d670a2f9ae2d0105af2
      GIT binary patch
      literal 6417
      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
      EA6_T2S^xk5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTabbedPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f4a5e76c3d1e9a118ffe3beb444d3a503dcdbbe6
      GIT binary patch
      literal 32391
      zcwWVQ34B!5)%dyZ&CFZo&P+%cAS7X56E*<@1Vq`1gnb9m44DZTOfoT<unCF^ir@l@
      z3%G%zQAAN|1{74R3NEeHs#V+1R%_K-t*u(ye%8wWocr#)c{3R*_V@dKe|6^W=brtZ
      zyG(rf`zN0UfHTy0HBcDzTNzpvS~Iw5b+mrP;D*{z_2A{9rfAjR@$@|}w0wCaJS$Wm
      znP0Afi$PJF-sxRD3_3fz%%$%MvHGTXs6O7rz>L;cHI8qN$7A&j$|_EG?p|}N8e_G!
      z*v%R{8X<)vDM<RNXk>LmtTE1D%zpuNfgFus-3{1Q%V5-h0fx%82qRe4+}IeYk6R5D
      zv8qr!N?5XT26<_1GpnncB8aqJ6{@Y86RE;%dol6g(CYYLstDDusErU_jaWbi2A5`U
      z&#Q{n#}V%MSYtTSSYD4{v3I*vXR8W(wr`5m;=o84iI^1%C%gLMq2=QmBcWv3z;ZHg
      zhC_`P&aDZBW2+hDq+m{n)y5hLx$0O|GmWW<uBfTS57OZm>C{w(r%3|fb)hvl_tc10
      z@3o2xqv3cBa-y-henPCdo*I&f&S|c<@Waf^RguQp&{}MbN7ls4k?JX-1_qkdia01s
      zk;_~bCq^6N*q1HA9yoXXv<Q|urim7-=EfUi7ZMZAiIE26a|q|e0kx6pxEP=}5~d>S
      zZf+2%Pf%PDZ9<+$8X0s+F(tAJ#V~lXvmHVE>SE1Jk^eAYy0aYzbZBUdHAE2o2{kBV
      z$H<=6$mNkxebeAsSv%qIcF2Lukv-A~x2A0~kT^+-%pgCl`?)EdCvs2*vF7;nP<?0x
      zf$o$dr^4AXngnGjmZjcasi(3;Mi4`hB5-6s_H3Hj5W1)tXU|y`ZHg|hjZBEuHN@&8
      z_35Tz*AgyCJrU|i!jIH7%tP(4<`6|v6szbN6RnTN$1+g+^<TiiH6a#`n4m&Ahe<G5
      zgJ}$M+gg|j=R&yw3}$ec0J)T##bKhAo5LXw+EZ>Ghd$7kL7*a9ADPiyw_H$Gi{#{z
      z8>n3nYK&4@R=VOfQB>LD)AluFzE#M}c%;0Z(xyn#1CHs}|FogB@ur0Oc^ov*H8`Ka
      z$p03Q3Cp08_!wd^sNZShGrGM00z#pR!$=rqLIhT5P>qIq3jO0y15sr1ib$M%SZ$~(
      zQYRDyMOsccT*#po>QMCPzR(4r5QYDB^(!ZlOAbzqI5|l3H*hdON8726)`w@sqV@5~
      zF?6Nj$QtyoI5wqzqH#1~8t2eV$mAe0bEO`NAtnM`&0!6Y$8j{Kd)@YFV5N^XP}wf#
      zupR>Fy4FzX5)PMA$-SDqqyd+~6&hTQEXWwjVH0(8k?W#fS8}*Yj1wM=AYIL2tAM+f
      zO4o3>mP($Qh}GdTxSqpys#4>z1}fjc;YQJAc?|hfr@>9=+tV3g!cMq_#C|Kz)URAH
      z*&Vg`MxNLqA=_3ZTRl<92!;y-L;uej(pDIY(YUfS2~9)h5!3JCun+D<_YrNHR8OW9
      z9v8R7yM)Bw!r^|Bi3{1jhy=TzLk<K;A_q7;1P|jBh!zTWLJXJ7Xgz8JdgOG4b^1Fb
      zNf`el9Q*`l89c_}C&?)m6W~@337Cv_-rNvIa1>F@iZw+^@u>MQhbO4nXEj?oM=NGS
      ziZ`xsw7Qzedy2!;1l(&WxL6Kp(qkN+g`c9IM3zaqiRvZ9ZzWzu7{0*41g{Av;3W-S
      z#1QLrZLn=H#NlOl#j-LdHArH=HkM$Z23$;ESJTwL;P4u}jzgO=hvxOm97(wAmO;+P
      zg?nU%5K?|Vi+i&h(S;C`aXhO^u0>fuAiJX!iPqNAR0XG=Y5^?>zvl2ZyhCvRhr@d$
      zymoT5-Lr{Wf5+i{Y7NNNiIM71bFJ0(dk!B`TaIi?uCt=?BMu)^V+YxYfyMGzs4+ZF
      zxGT}+j~qUQKT&iiI8>3o=yrArB7NB<UHF_s83-r!1&6=DU&)FhajTzAewMK$5^r<8
      z%_>6VYYu-STsztIS+M;(hksZ$P@j$7|K;$lV58maWYu>Z{!OiUcB_-k5je>ikWu7X
      zMq!~mD^?q=TB|YK$Ba5{O-~gpASPqXh3<>F84UaptCm=_n8u-p@GZ>Xuo#w5otMK<
      z7=|Xxe4P0ide59tI6OT)0_^S(K(-K&w2-lO9O_|-#_|}9I9<##b|fatWkI5^1B2=x
      zLEmZj%-jK4jOoOIgHOHm<jIqSK>=rlv_NR6gL9+nB2?$2eqA{XfitMsowFXSr^T$v
      z>G5@2W~B$%#H<snH&NM#LG=HYN_)GAgtC6DSY!R2YoZ84IV*tzbk!B*Q>M<lV9K0v
      ziwVJjoDE`w#WENlAF8@=MI-w5aJpZ#HdPiuXK*%@4YQa=vtlTb*3;>+PQVvvC#;mS
      z5o{!`-^fG^EwgveR;jTv24|l(H&O+;&6Tz^ij5&DoW-F2|3nJe=M@}?u(LTkhxp}b
      zjMU+_LTBS~$DA55Xt~XEolQ({s*W{Al1=2z)0%MoWmDO?8tvfIqSA_3?80&N;mMIm
      zEoakM1x9qX_d+o?QCo}__t~dhZ7f;ThUl~;-iVE-Rb$aRgR_|w5s+iIHcmR5jW{@v
      zx3}abo6F{FY#x&B#AJTC^!uDGU<+|EM*k`|QoZ^)=AF5GB?fNkszZuOCcKzK7bwu#
      zQnX#i)U{Sj$=EUuMbv%)I)6vIbs#_;LL9nMhpKd$q>de^6UP0Wsnd$|S;S79+M^r_
      zsr^D+QXTD%a{^*P9cT3{hAM(|mXl<H*{Gy&k6px}Hw1Ksaat!QK<7aO^=szPi~6lj
      z=X^YQfI`!*<!l|h7$qg9wPN1h|Czt`Zh)~39P*)q&Msxp)ycptdkX4)8HbM4{fah-
      zr%rgN-)0V-sNYo>{W|((IZC45xOE6p?``QqirbrZqVrnLu4C7u<3l>f$6~dSQ2i-b
      zELO@L9L|RRI=c}AlC~HSwnEFO>rEWSlX!1IcS!AM{8YV*Lp!kzXSZ<}W99DPa2Dj!
      z@_83$d)Qt(fXY~cyEy}>Y-=!qxQDZS>|T4@n0ctuD`VrG^;m_F!d*!zj39^)aJHX4
      z$e_@InEecg)I(zTACGzn^g|qm!<hv7AZL%TM{RmDR?#f<rZ1!9Q+)LGIA^Uaf#!;<
      zNL##qm|)929p>x__9TORgmNk>`}8{vA}w&;>FX)Zo~9rn&vNl;_*45a&Yq<?3$6C-
      z0IB11oIOt@wzoRA?Qop46BN72nbI_aV!PuMvxu*!H1;zFXP)*NCO}OM)rV^l5_^TY
      zH1>-hGhPsFkAIcM|B}I&(;kln>o@`<cN@&>1m-OUV^14QI&W=2Z!(w8-br^o!bz9c
      zH_$FaxZz)O_8ay;7^bYC^Y1>V_JqzVjr|to<-{)q@_qJujeU^q`eA-NT8sP7NE2rt
      zvOl0sH%7#+dwzLxG=rh1T%OA-vdxDYsk4vMomQy6D$*3E6C;Te+T$NN`;_4Zjw6}Y
      zPDxCcpW!s@rqM*m=bZhSeSupY8&Sv5Q)7Axh_s#aTo_p^Mt8_g4a%X8nme8X28Opt
      z!1QQ+w63|1qW3oEdu?{=!pBUE)<x=@5XfjR`#bxm#{PjQ*sW>XPR{<9eT%}WvnH|H
      ztf|t2*!p-VDttn=X(XbdHAzG@_HXBbuHDmQ-@z^7x+h9Oz#zvIQyN1JHPNc3(WfMk
      zypf`CMO9q57)6^FgleN<as0T1T0C6QXe+C)qIz`0reY{wO)-(YHnVVr(~dxIl3^G1
      z^>Zbl<X~lWw6@kdw$}QUm($4_DwUGUl{}?ADwRNfp0%o@y=9{zIi>?wI?|Y2F=m2u
      zg=at^RbH0CG_Zgxg-Q|PlAMge{HzmYy_hP`R++6%oCC$>VHaYAJAF6C(R8Eds>cWp
      zxf`LK5?e_e?#-1x#CtuO3_TFjeq8CV6emeUOr1NdqU_9}f0kGr8o-r-G~90w7u=zy
      z!CV=loMGt}h4a%R7=%|*Sm<0(9W8=$!?-eBITJT~6!KxjGC5{la|DxTzP1@+BQ3qk
      z2(FA&Mp?nrylA{OGA{1uo)-Vp1f#h!M!}7i*Sd_U2rZ|Z%k}-rv*T3W7D`(*PFG&p
      z>XulBaW+@ZQO2RlN^YUnXR=A4KY=R~l}U64Di|(=9L_4HjKM#SylhA^WeQiOD&@(^
      ziFDljX4jF^W0HhBjVl$(bTlUcce1tYg`-uWIPItw{2y4(lBDU#BXvD$-*xG6`xeaA
      zC=xT;l)Q*wpj6i-SA;g)#1T=!l-#!DqiM!TJClv+ipkzrmT+aMavn0lQcU4F(F&!4
      zw*0_WI1`oAQCqU((`8szZlA)$&gaSnN+oJ=^3)M2m|GLAjxWMRwIBHoIv!P)bEPV4
      zx5a1%bxCg_E~$kWJWWX$BD2`5M3oCQWhL%xGf5*oMWzkNdXSS<Ur`Zp4Z(pirNKHn
      zvaB%I0Ycc3rLm1%X;R`6chna;XG*%N&Y7-?6lyT_7;P%6lr@^NI^#IO?!eheWo;_5
      zOT#f$g}eI(a{i`rv9du^*30lNQwO+m37!4Y=6PIGRfMiXBFaXtT&7%(G1v;a<!i!F
      zX>BAty&i-0`e>CfhUBeKId$K}mCdwf81|(R)n3JwEy~r_HOFN82#5xz-}qUF9h!oh
      z-vTGSB0!#BJ}1%?Yi_KH=*qR}d+DZRoSg!0D%UGJG-W%3{%s&RLhU5CD11c*+@Rnd
      zIX~POT5YN4d?c{379$~yz8eYOl2dcqsnz941-XeUH!HW$;|?2U>Uc4Igyq+Fab<Us
      zRjH+QT-;>+l-s#-hjJ%+oaN%Ck%Ee}Ya)w%)N>D4_EJv|9qv#+SGCa2K!$Qk?<G$?
      zPoabeCM5I$#af4wmo8ALrhq03>#=G13ZmrzR~`}pL`|qkIB62fL9RTa;O5y+9GMtu
      zs)>XxbM1Vp;KAbLPdHnk+)24st|Ua@MiA%?07WsORhFtf!IdXTi|K?-ymq0=qg;6^
      zsoK_y7^;1SvvtZb(!s3fLCQ}#bQhNn%JW=#K{-xujzYCn&9xY8%6L$|ry(b0-Cim$
      za_D9adYLP)(4Y>PgOV69<>y>^Rl!YZe%p9)UaVnKcm<MHc<PwSaxJfO<(CAcb6X%4
      zk?J@>p>A(-<t^$~*tXkvap|1w_%>JGp^gP@JI*1*EwpqIH?E-lj0a;zk>QqO9#2Yu
      zo_I*c5|lF7(N3dJtq-_;QGUyn-zo2-rY2W4xf97el(#o1$b)m0-*cFxe3;%RJ?wQg
      zgh)|XqZMGz6UU1(4lX=3qU6=iRX*j)pOnw&4%M2sNnXJ(A%~E4Nz6(garX<Z{6_g7
      z0{U03d`URdv2v1St}t$HQ6t55aOTUL4(Ya@T%Jhl{?6eX7$?lJ%|KK6U*%t#@~v}+
      zW;b%>JLTV&Vay6OW}7C-XaaMRtB|}Km(yUis&G}6PG8nyzAA-yZm6lLxiLbFXqq67
      z%)+LssfMQNaxIpwaBWjOQpZ(O^&)^!V`FG-RjgrcYH#X1rYO%+B_2hnv08LNxsf#}
      z@vtT5rf~!dm+AV*YU=?TsVe4@OR$h81sQ5CSMzASqlJ1_V`Nn{*4$(Pq1GT*JE-V-
      zcx|YObf~;uJezY@M;l3QE~-Wh8mUr~eZ;hD;-X`Yt$OwoyMSFqepNW>rkYrDE$W}d
      zp2R9@=EUNb7a<zZgQ?xQ+JiPfhTQy&BfqBh;%aZIZD%dnVimSpku6SVWIH0YA6NUU
      z#kK_}&(4FymNvc-<0y3iR|k?uO>Vm+D0Q%UhNcclUepQUOb^9txH^>Brq+dU;V@|}
      zN<K_Xxzy>72a6P`93{j?aJ3IP(RNO}rPnR!=L|=k!EFC>!f`ZL#}JNO;%F@g$|`j%
      zSI<_@v7~`Au8uS|M#6I&Lh|*}WSm_c&(#U)M0y`7)@M0oFw4r_pI$_)LM5oRBJcJY
      z6v<VHspVW9sg9!DG_F?AlO?GRsrv$IoWa#X(m-ELtTDPS<)xBuN0Xf6s6p{mGmkr#
      zBoi)E=aEm$A&3jOx=_V9m^TUqN=nxmHA>O8sSp<BL02zM5Id}hq%R0btRw1qxO-QZ
      zG3eVS{>?5TRO<TBs^|*D$MI;3u&v~3h~AZTutE!m5ejRgE>&C&Q<q$;%M3IxXLB`I
      zSEw~k(@H)876&}mc0ygr)eF^H`>F1@@X8PcIoMkmt+l2j^+q`LxXlw2fM|FFS1%%+
      zZjY1L2w-4jW6{K6FWgGJY3AxGLN})=<M|q0vRE&bX~0^pt|N$@(p^sqs{OJ{&PRhb
      zaP<<>mOus?Xfkd1NBuA3>gCiwFUus<zKN>=RcOtXT)j%@VG6RqL9326t`0SZCGw)q
      zg&{Qs59&2s`B?b`o2bI--hi`+oDq*TBz2ElDwQk-tfKvfO;>MBzvc@iPf0cPri{&y
      zeSk{y-@?^f=_oj0UCpH0*j#ltS8r2qM=#VsPjg0QSyS59WIG>MF|h9C#6WB+?5R@w
      z6jQwe%5`-wN<OLUvqCE(6Jx9EHT9k!^A2D}#&BygQ@tC?O?9VwA5qqVTb)zUl+G(U
      zS63fEC+);)KC<>f250?OIL&WJVzi$qei#Lugl$p#$d7qhlZ2dvc~E@}eVO_bicPZY
      zoQRrMTvn1Z&Tr7wLk<im3f9#pP?M82B97J7BMiDWMlNc`m`iL=FdE1Vo;39-1~X0@
      z^Ev++T9Tln#H3^7kRAOs6(g(B|J77UxX;q-JU^P$oYaeN3=h@g9LCb~Qi^;XO~|vk
      zLQyA2DP-%=W|BdK4We0Ij}hPmjAxo6XsrHp`QX6p>WLPdO-Imex5b@7@6+NPBICT5
      z!=m$=4?RQH>$0@B49T~7j^_)`M=t0Z=e51LL#or?U!i|(^Hd4lPR3hp+(4qg!H*kC
      zU?aW#2Ef#isR>?@a`1`N4*`+ph}1=Q?jp^D_96{J2a$G^X(yTH%d|5Th_q0qMKbLo
      z)2=e@CgFFNX%Ct9lxZ)S_LgZM=nM2uKj<&Y#Yhc<0iw<Y1Jg=_(n^EVN<-ibkq(7n
      zA{`EAinJ6)h;$^30;0bRMvHWepnoI1Gr&|KB^K$~0uP1uJR%)0=u+rM10tO$(gis4
      zB$$lfQ?L{jasVhPJ_J*XkHEQ$4?#sMOiyKJ7OPLexvem}ILAC{w!+*;1+e+}-5ERp
      z8V8rALO^pvXUzvaG(Qw;0h|U<fC4lughhhX#jr$9y9q^4ZR3j{hovVV2d7)MxY%_F
      zE@*|NShqX@Vb@*Yms!sqkzMLZz{(czQdY+-rH|OybU{S|tuts^0kqc&p{rJem~??N
      zwQg{h*4=^8cpIa78>7t<qX`H!W@DrajAB_a3Q*4+%|<EavQUa;qBIau8iXhfMwEsi
      zN@qZ+HVnpU!yPD1uu-}Q8ZDIAEJTScVxOGzEGumqTU?lcRb?)<)UB3!3K1*45b+sZ
      za3|CT-Pmb%fh#=paafniZm6s*br%%vgK0r`zUy(=NMD;P!=>&P7>VPC2R*6ITT<C=
      zIL<@k@`4^3avgo`z;T`<uyb+H9rPT6o6EF(Ek*Nqv{TT=gRV`09Bm?W)Fz=~Ook$D
      zD)iOPg%Yg-rfAclLYn~>X!D>-TL7183t^MC2zF}c!Cq~d;L99~cAGEzU>E8+!`j<n
      zH|7+aXD8f-ITbDcTCD9LY<(--fpu=Q@~hxZ%y}^0RN*ezgR;n>*i&-%du(xG+O6O=
      z)`d7*kbt{)vAn|lVmi1HKO`C4+oR{O%7ub6HfsfAN#Y5(FO2B};l*R`MAcc0*`mr;
      zc%TIaI7d+X?T}xv8}&sM&AwFM;$lLAdL@T!Nx*}xaIghd+cn9|HaYF1KQ!%@)1Eek
      zr8RAF0v^ZDp_IAbfF2OED4Kdb4A2_Uu$oYd8{up%4wEsRg6T9&XKT%HzP1W3($+w;
      zwiY&M7sFNBC2*~FDeTZT!X233qg@8~Xjec&+XPQx`ZT6L#q>pOGrXl;34heKz~|c4
      z@HcH6e6L-{T-x=_r)_8LG2c<Ukrik=Sy%05p((>r+9=1QreMy}6v{m*G-U?je?(}?
      z3uy3GE{A><A$6eyAt*TXkY!;<$4HAKRaoTEgM3-e$98g42VIo~cf-I_n4Dm}RF8e2
      zxmv)bCg7PCIQvw?(=5+1{87hns-dPkQ&lMuO~%C$v^&xG?ty+<3p$$nVY>DJisXKn
      zgJ}rs!rFdVp&dZcJOtNh55sm$cVM~)>+aDWLy<f#*xJEjiDat|2jMxv)*Sk^iS(Lx
      zV;|}@12K9&0mmyGjI$OaTEHyEQ8~W^74T;zgnujiyajS(_GeW8a{^M5fLBxW^ueG2
      zw4+GRF{I~t7^uB~YIht)YA?b$+DkA=`x(;ra|gaNY<wpRqsI*v{1V=f_zuNBBuxDX
      zFkIf=Ot~!&)obrKT(S;t!LNky--dVO`0bM3k;Ns4;N6mEA+iew6_*@?NGlpq0)B&^
      z-{R*3{QRL9zdmV&&!mBUmViH}C@aP=2ejXVTl)~W_7N@*pFk(=k5H(63f;6nK`-rd
      zG_pU#2<<Np>PFh`aHPPF;lE$n*sYM*6%;d?HUVGZ=NtU|6F>i=%H=5pthMQ%h`_gC
      zX#WDA_8qj-{tZFxBy`rnF=>H4X@Q*7ML!LZwlh;MoNrm8|9&^{BaAIBKE%{Vie0UY
      z7M8iHIup6UbZd3T4>J>tQ&o<&yvCAMm=#)ngyk+SW`|h&R@M>QI_9x_{4c>eQ^D$7
      zB(q%-tQ#)ZCq(~Vt?)eQ(POM{f{`11o_ZzN5X!Oy8!n}>G{MeXDDyE#{&~tDVWR}F
      z(JB2{fMF)+98BE@d3p|X(%V5-JrDZo?O~|i0m}4_FiGzO)Ai1<L@$69dLcCGMX*8d
      z3S0GVuv702cj-N#MehYa(R;%)dLMX2@8{6Bw<Mcg^ot)U(Gswn4@=2SD5^fxF_75<
      z|7{OkD;0eNk$T(;TP&)_62YmOm{s$9ss=eQHbYJHQK0E%kgJb@eElrwrJoHY`Z-Xl
      zk8_|g!banL+p)&5WGhD=8<)o><grPI*%T_P2{yerkIg#F=Cra!m|G%p=V9)Ak*mbq
      za*+#Tu3F@3Ft_qBt8HZsm}?ZdIObLzW@}p6ddyuSavL#sxyWt8+?67?1#?>uvuj$}
      zcFf%%;O#{9*m(k1#5{JhtVo8w?ABz+o2uHK%HE!0(khHLK%a_CDn|u57krq{(Wjx3
      zOotx&3>cu#LT1f|bM(1zu09{;=?ma|eG$~?iy^8nff%NZ`chc0pN9&w46eZRO8tD;
      zt}ln(dKK)|!|<S94GDb(JgwKjOL`RE)K_Lzo^Nd(I3jgmHd;Q?!U%i(x}6-sT>6?x
      zU(=~>3w>>(uZ{Gzp1x}6D@<RN^tFh-&ZDoL8S9OH5xDh6B)ka%dK}v8t58c;Ll=E5
      z^wifuKmB4DsINyWxdcY&m%<o*BaG88gUR~kFiqbCv-HglLT1~9d}tGLizH+^IgC47
      znMvv0t?WKZ?{8%XD1Erq3gax_@R-crmta4U*#il7NM_Mv9LZQ@^lL!ZuSKa{hf=#9
      zy6HPm#cx2V-H6EUgbMv82a?lmB>!O}`A3Q5<*7N2re=O7h0jk@SiX?5PU#b0Oj&2l
      zu3;UIQ^=9@doQK@-peG9F7$PPzV4$hGewz*#r504tKR_~^gE%uei!QEUKpm|4P*6v
      z=&<fZ_P4-7{Q+36?}s}5A=JZ%VYPk`b@36nOn=lt_2o&b>0P^|dYIfl8b{bG<nw=?
      zv7+ivIsh0pfJe}wwE^%d0eCGF!1GxF>|^(~1@Jlncq0?Qt62f;XAiao@FoHHRVILU
      zvH_sqPf7qcBLIpHhv%`k53_fVvG+t6q?R0JzsqAEIjUS#g}VC5bSe!v%s$Hq2=w>S
      zj6T2x=0hmbKSFtZjQ-;jG^3B8kNzoY<eyM>p9y@rS#wH!Oeki5VSh!8O2A-Wvab-T
      zi+(pLaa<;eETD-QPAo8Fgbv|FnM|Mm6&l3X&`$pbg8JW4ef|L*G2dDLr-L2I(15Y8
      z+27<;<7E^=IxMDnf_<Yv22%~y5n%Z30K=b*YS_OV@LX1}Bka4y?Jhlu{~coAXTl5o
      z0KAh5Sn!w&0~Xvcz$(Hmp|IUxS~+*I75(o9*P~XpX>8H$;8w?4rEsaMI2q#%!@!lD
      zmr!&{cZ<NEk}X!U!AiCz6kl;k&{dRB+Q~GSVVp*1FpUCeXB0t!(FF>PZqUo<4*iTC
      zP;B&qVMc#A%P4_K#sHXS420#FMvOsFXPg1e#?aLE2bZ8E&8w77O1_ZJDnY%1+qOAk
      zOQfQ%PY|1D7r5vhujI%@C~s6gxJ@#E=wu$3I31|Ny17C3pi&PVEl{m>7Bg2JREnDk
      zzt!xj#8Ob(1!holg<C)ix^TE2^pqMc&@E^b-31+sOT_j$XyEru{7g?Moi`aQXax0r
      zCx5reeKP32{p8M~+n|H&S>))LV%rSJL$-|v!<Y!|jmc1COhtB;BdeytSfc`F8R(sj
      znXt^54b{dRsK@joth*TdUtuhQtBl2Py|Dyt!F0E=RIso?oH*WQv+y>Xg}2GG2Fh7y
      z4F=qxbP+6U2aQTsdDd{g(oLK-3;|W4^Fs~B!dWsm3rZ9^OVnW=^i}9I(LnYWDn*k0
      zPayL-&hXN}plfIuvQ8@B9=XFS)sgYrcVmnq)U?+w=#Cr;y7F<OwvN8G(ANg~+7{Fk
      zO5gw3T2h=)29+7bL03W<S|(JVvZZC-;=+6b$9eP3d@bLd@1fphmMn1Ev9eKAkGG~U
      z^W9XMj3vZ9Ip*Ayu+E2$D69*?W7I;vQI9&^0HchHP@fxMs?iMR8LOZQ(`sWa)Ees`
      zZd?qP8tdU&V*~8Kbf<AC>@zmP{g^&zTmerQSHg3~Rqz6)FB)5f@YY$(vxWDPExea(
      z;k_gdi&fD&LkN#@Ga*;l&P&QH%z5zN=aku)({R7~h%yIvtUA=fGG(qZ4@DM-`O17{
      z0SfC<I9FMyEJCGm(JN>v#`VAjCfoCM+{~^M-&@4@2JyWuUlaA3sMkb2eQy(MK|Zoi
      zRaGtDgUly^Hyl<LFDx!73K|JzS*a;=p;B+YwiqQFG%E!#%x?*LE5%ffdOcO2lExA`
      z5I62ZY3u=R?1fz8Zs=s(16_=L=ymQz>D&iH&|pUy_d}WS0E{;F!x-a1INLY?Q?P!T
      z@i5Fc4#EY-qi~_|7_2rPN0Vwrb4oZQvE7!$cENv=#C9c&JXAz(hA<<_5f5D=M|^dQ
      zTtrBMax;Y_C`Z!KMUG@*AT6VnYJ_6K1#pJ40&^sZsY<zAF}5Ns8d;d{!oVqC*i%Wq
      zo9qF<wmhNKxFN+AKVf6M0B++r`rs3SlBw2so039XrwVPIDzqsn6!^PDE~!(60#^^>
      zHBp&l;ias{vL7{NP|3iAQdb;wCzOlIjC`Dz=Nl#YT0&`lG#_noU8!Z3*nVlL*D}8=
      zc0r@8gu8b^b+W^iWjv_wLQ?s&%GO=bK2Ny@w=reDeBW`<@_l8zB%k9l74#~1K|u)`
      zs5j*pP*)Bs*R{Z&64E+HZ9>`E0$Y<)+$w?G_Cs(wWPu|_-jy8LH8s*zDSEjolcPH)
      zM>|^(LP}D1(uIrhE=uax;4^-M`uiSqHhzmz`v7_vAHqQ64=};_7-krsz*6H+5HdbR
      z@A4Vc7@wne`2re^zrq^hOW0t11(zFN!&c01H@<=UjQ@p4jc?&e<6m&h_zu0xzu_0g
      z_wY;1zk>_oXQl#wGgbK3biql}%{-=u`Am%kFwHSttb=K=fu>hz&aJ2uC}I0Ba!^up
      zuuf_Y*4?e#Lz;s*vJ02U%@9io<;X5PA~(yj0nAz6$j7=X`;>dp26`~A+$U^cAY)34
      zuz?w{NVy+lG7eQ>C=X!HhkCwV*)Qr`^qkzb5GM4sw7@#;?h4j9gG=VS%e2IGplBCp
      z2;XJpXhBjA*b>R55oTxTW_E=hW_K81_7q$wwxHYgQ)+vHQbDI8azvAg@TyK5FS;P3
      zbHriUuu?Pe8jg64gkrM{hMQ;o7kE`D)1~EBqGaeY@?*;wAKV4MrD*3}v0{rDum)A!
      zx;nVofiva10Npd;UO8V!<@QvT8kE_B8Iv*_^f3B#%xuf?giCn~tP%a(ZTeBO)lnDy
      zW~IY(pQ>NKQ_P#*uLR>TGw2QS!^*=ci>s!STXQx9%()OWmq3xZ6vmk6!zA+pm|<4J
      zLNf#*b2)^~Fw~h5SY=kjMso#RZPvgw=1RE9yb$g*YvF#g4jwh@;c@dKc*<;q<7N}Q
      zX2#)Nb2WTqt`)NRPMi{dY|G|j+vk34``nN1b^K#{9sk(&xgX1QoN^>X4TA8RSkZNu
      zg!;2ygkE)a?j}3;6!eq18MsDn6?V1C&fRI}j^hX`w-EK=4q<h4QElb!w{x%I%vLUh
      z*wQr=hpX+}qjv6H{8%{`{Q}I=HrIHh0o{)3FG(nml^LW~M6#__Mff?2#S2hO14;QR
      zX(JMJ1wEDSaM10pw6j4Cn;xewVY`bf)y0+SVh?duI(o^$i{xOphZ<8uu;>=OJz-iX
      z1QY=qKU8i}rZ|S%y<K*1w^b!)N}E9oC#$f4@LjG-k#&dDDRNuY2-884E7_?st&=;g
      zlYrF1_O<1plYj28166w-PsTjy>~+rKNz&n%*9jsGx@geS1ZVT!W`%<<?i61HDlPD<
      z%rPn9q@kHr)OOL6rXLOxY^Jp3f<#F&NXssWtSZ`uq!eh2`}r98>M5_3fPv_hwt~mJ
      z26~y-<Epa*rkFRvO!FpKY2FH(%-!gH?tnYYJ@ANm4;(Y^h3Cu`c*T4Gerq0pFU*6C
      znUAr2^KsVQOt7)$VK&)(l2w^US+)5zt2d9atIg-wedY`7Ve<rg$$Xi8V*XqK^B0P4
      zzOLk(Zz^Y)Zz;pgx0NyGyUKL)H_CkTJtbzouUun(s2ngqR!*3IRDNN8rhIOGp=##W
      zs?YqJ@N(6bWhcFy>Q8z(tdm|2>ttk!b?YrJhq<j*e1JLfEFO^~-=T>SR(#-5b>$GQ
      z_O!w5pY$he4fduD?taUkP`v0Tne0Tawg7Fjmlsi(XXcwHK!1$&Ei+5<O?yFuMo3?U
      z%Yjx-fXWg}`|#sIv1=r3UkjXViPBj$Afu<-st$^tX_c9>7AMSJ+?#oI@OlmC;N{TG
      z>x152KNNcdFvOb+v%EnFdpp1iZzovo&4+c~0=Ujw2s^x8;2v)ec);7!vCZFauQ2=V
      z6=uJ^!tA%B`u$1XV@~oObCUO%lf1_flJ~Gr^1d77h?vVnDRfMpvM58a5AKhw8>obG
      zSe_;+M@p@OC*|ofPrm1I*jTDja$Tv8TWTtY>3egy)CjsogDCF^mztJ%Ryw3Zd5SlP
      zbLRxL;zByIDSljeHlaLMS*qb0uUR0&bTCs9G}3yA$`L`+t~`-YUcz}=phr+otE@!i
      z%%E<e6D~FFlZhhhUZu=ilJ6B3uLX6AEW}AzVNt61v-IL?>BTqFi@!?g!%FCk`Y;#_
      z?-0oKo&g2k;n2f-CiM4~!YJ<uDEE$n8t)j?fwSN$?^xLCJqK?0j)S|r6W~$rM0ngg
      z1&({C!W-TSc+WcnKJw0l&%CqXAKrP)<DJif-UY0ecOe_*U6k6>vf*|-KirPzhuiV|
      z@Z`}DE1|!YiIT`=J?O7nqRteseDO5JgAseK&?pW1Gq2Dn9Y(>wghm-?Q=bWqGT|f0
      z71~34+E<ldNE^OR+VC-9!+O%oi*qvjc}c0^EQ^eMhJecA+5=;Q#%(alGEYOU!DcXh
      zQI>vz;z4)Nl(j98n_5pY`nl2;5|_P_yE9jpd_9Y0N71rZg5O&UUA%R0hPNKh#B`*$
      z5ypGtFvHsn7kF2rWv_uX-iuM98{m5HC9uzXDLmo544&~`?y&4*wq+l)E&G^l*~g@m
      zD3`SCW42`<vn~6Wv}_MNDePHCi@IBRS4e3jY*BtKq~xNXmr2>Im9jaQT{c@XWV0oi
      z*=Ebeoh};}9rXw<n)a%i!E=Ke<(l8#86RZ!lx{Z}CRkxrhA6~QwD(37#ZDB(%_xdn
      zP!zYKC~iSf>_$=Cj-t2&MR6C3Vh@Vq9=O_jFFM%!;C}D@@UZs*hZqjpVmN4v;h-&s
      zgSHqB+G03pi{YRxhJ&^k9<ar*!xqD8TMTa{#h^^E#K4wWV)zlJ;n@R+i2aW_A{9H_
      z6oz2Ofu=J^NedAj;gyVo3}<v?I-{e^Fg0ayqKlc<ZX;mVTahbF%ZhGhgqsDiQ=^cC
      z<4GgXlTB&F*{=6VRGOo>DnErD_-Po3=@9QRDD(almF78E;(Z>Py~kmL_XOPNeGwJq
      zWk`5mfmgjhgHOG$!I$3Gncw?M*1`J*JHz`cHp=@pTi|_{o#*{^N}<>?+xsrFz3(#H
      z`z}i=6y~HtVNNO(=A=SlPAU{zC>5#$n<5oz2pecC)H^?<P^V$fS{8*$54uUOoKdy;
      z9~CNnTag;*N)F5v_)h1XhCPWLsatSt7_PPo)dt<uK<pGKcv5g=SfAAkSqk+TD%9tw
      zP=7{+`T`Z|&!|v;MTPnb73ynLsK22?{T&tRAE;3OM1}em73yE8P~X9)xKe+~8S`_6
      zb>J#HgL~L0uCWE&VCQl3|C2&7`emy;-ug9NykS}|?zf)aE3R}tD|teBPl1vIe2+`?
      zOnP5Jt%XAmDId%zk&o$8Pl3pD7RYkJz{N@b)(Y!dAcx9ZWO>WLM=Ut0t5R{t%nQNb
      zMUcn4Ljmsz{dsSg%KO87UJQ%)0EqCxu!0YD9GBJG{=8oK1BNV2<hlxO^@p(v1}t>D
      zOh0jwbW$Jk_2R}bbt)%rYWY~lO|9Do?UtY!{gG@5=2r-oB5dnbVV0ZP<b`aLcnRHN
      zz0VDLh8E&>=8tq4>7gr3-zE<WdV;RKCqE3jQ`lI{m<}eN0qyuK=*;IqPd*<RvJgh{
      z#W031fwQq(&d+z;2~^k^SJ=#`5Ne``+*YAFonffFBt!;_yH_{#fu4eCbSLl|<#S2n
      zZ0tiK4Ga(uaSIa4pA*Vo2Bc(W5@22rJ|1)2`v+_^0%F6$MD8n;go5C|R+5+Jg9S^4
      zB$RJ5?#%gG$4!1x5-#N*Y?vH;6<9a<qiOJQ=uSz=z4R1C`6i+KlkmNdp1v#Js0ro!
      zlH(94NvJ3#y~Ks(;*wV7n~X;Vd=mutW+>uUL2tedhVX0QOnyC-@$C+!7;V!wT6MuV
      zM8>7Mp-v)oAEHWHIbN7h!QF%%%${CcVEsyAfJ#Mmz|)6S&w!`Lwm_cn&hpjP+)XMy
      z8zkF1`KJ_aJ?MIg??$`09sK+b=)muU9{euo$M+z9cfmM*x5FM%KOYz`gv`JX!&DCK
      z5n6936hc-JXP^E0Vx4?nJQSy%djkB)cV)P-qME03%*vxCY582WL=`oNJ@T*3k1hCv
      zpz#Bc%MT(CAAte<Q8<JD#KF6v61O5~ulk{{;9Wq?u?@;4Vyii1m*{N#g~&gn@HTL(
      z2UO(Mu;PN^qJ-Kmp|*Ebmb!wjf<53-(aH+2wtcBP=q}s~-k_`S9&i^Ouz1Nldr!XN
      zxDpsd9+p3YCUp#b%(KvmKL>sI^N8yUFqj{Q5&Q&9;4i`?Y@5Yj7PybKu(J6&NAi_&
      z*0FpLMoYf-fv##tVOk@=uXYlq<)Yu8OB!FtJ`_oglQfzIt}u}%wy*Sh!9apqKrbW;
      ziPu5bpxwz{K3Rc<q7+Huff#=WbdJuQzX$pJx6qZp554&BVG#ciRpcY|6rTuEte-86
      zvq>3elQK@t7o>1d)y{&Hp?2<UP-LzU>k0&Uy`VtmT=diDEUq=4=~}<e?poy~hf6K8
      zxpWRN;YSoT1BQ<|yo_SQQ0$8mMUvrCyC|P!LUUz8^Pe`fu8@4uRVqnr3$3$*zP8X@
      z^f%8WjK$J*6<JP|u1vX=Rl7YRGd)xOP}~9g`hnNiAKLp$9Mcrp(-cWZ>!QC|l!+?K
      z@U6a4*-=fxpx^IH7>DI5S5}1jSV)gD+{Fcj3AJyTC*OS>+R?*`C)5%Kht)x3lj6`t
      z9066jD}|M&*d&~+ZyKn+3NU@sA=ftpI{IcpZ{I8!;hXJP$I5J+%4}hj*>_-N>M)^=
      zDjM0fLI+J4B5&z)p`Z9^9j;^Qa9b}QmanSD6sxVu33_8PeLzAzbF477{NmyQdj6!A
      z()kh6fn7GaSn{RI(Y+@>poR>K^DP6n?*gQw5(2*E5cE|+7hf1@se*o39^tDN^jPno
      z#@O_Xk@T3j2G13*4gxSx(vu6lg&QH88mW%5aA)+tT)_FD#$vxqvfoXw1$NNa=1Nax
      zsfS(@w5Q)eJ)xE{K>KT;Uq{iHi|8j%$LU8>SLSPKLOpBwHVQ{N5qX95wnh(n24b|U
      zj>7>#PlmJftpd%r8fjdM^sR%QzV$HNcPWhaZG>}tm%%LGCRpOz3=!W|g5L8iTy1)5
      zZ28sL@~aW|%A{8z`8FYdCPC*=Zq$);#VM5s7utd9B;{W0wFJECWMvWhE|)sRmg%i>
      zsU1!-eOAbnR*6n1%_0=;R5~^k!hBXPtClQ3r1}(%VsZ7|h_bv1WqAwIc`NGVE~NEV
      z=#J&VzS|s&t9{Z2!)-YhOF42GLDAjpE4KaYm5W;cVzlXV%Up#;HHEG)6{gpOY0Yx{
      zaIKQcnW*8K>N|j_Jp?}A!)P)OK^~Sn_#S~izQ-KvQ-2$^{x-||t1~6b`$IQ@nubuV
      z-=cMZJara`^@;va(vLw`{yr}&x<5s9pF?z?M|596be~6bpF?y{Ai6L8AiA?{bh~Fk
      zcaDWF{n-<V?gZ)DX}wvW>EwRp@a}Eb8w%<zg>=#Xi%0@ohGVIJ$0KmrVio^6q|Tj=
      zz&8#kIIPYekm-|u58U@5+WsFLQ+2eb>L{n;sK1Maw{_9q5cz?rHf5jcuQ=70IMr9D
      zJ=KyQoN7z<slLalPD0QRr#lt>5l}f*xm?=Xk-=H}p|J^dX+=rKp22TI!0&Y|L+#`Q
      zC=p>$v<#h}jH}sCK>QvOKC<jMe3t#g(iH_c+8&%v?zIx?1uZbQz>`+ByamoFE|e}n
      z*3yY{PJzpM#@J59=&C?ZzG+OTk+I4CO}H>b3*9uEMzgsxC!0s((kC0&W->Q+5s0Q{
      z^PF<FR9JmEav%I1K=*gVXr&Y6`a44>e*yII7ea}@2uAt4!+3uWDEIe-8U9|d)ZZH-
      zSQqv8fkuB{Xu@=rzZfp|m%v8<K-lab1ULEz!>#@yaG!q|9P|%|g#S!9;xC1l{3GBE
      ztb5x(65jWZf)6nLgMW-;75m86fsfQWuzv3Po;;X{f={g%Hv6`nbE#o_W3(2_B<6vV
      zQAg3G#N;m->0}{LTp&f8P#a|k6wlb7`6nSGCWC>g&p#CzQ4YQQ(_nzV!l6e4Z6pV(
      ztHBCqLjMtsH9r=O`H02>L}Napu?W#vjA$%HG|u}0G%mK$SSiuyL!Nd0>CaCqB={rX
      z@vne({u(IquY}(I3mx<JvFGh$&wFY1c{l#pdE+?mDx7yU&bt=pUH1d?UZ~be^DRQ-
      zrMPZeu{iUQ$J~_J;I6fHI-;~Cnb}6wZt>2F{tyAV>*U*#KFKubE~=yx6a#}df<b80
      zDRKfHq&P;o3%aBTG>e0t0!drYlSbT7x<vDDg^vDhFvx!`RQPwm9RCe4-+vPt)Gjop
      z-4OHN4(t4Pz-9hBVXJ?SBUIgH6TZz}S+?1s&NgWZ9U(4H>jpvcv@VK^+b$96xae;m
      zNmkKgA=;!h6c?f|xB}N$7wry^EOj%|Dl+X#wF2^g<U{%r%Zdww8t#FU9K@nq7Q+<k
      z^-AxvF1^pXaF(#o|0F8;QRw1-3VQmVhJOBMV1)k|Ovbdr|5N14bFdQAI{yofu&=@9
      zMT5<Y2C>CdL@s%G-Jov4CEkT})~HttUX<g;vR?3_&dzm#Ibw^cA%8Bn!@jw4fyvv%
      zP8QrQpPj=|SNK3d#tS<?Znpiu1kL{j>g<~iUCp!6%u}~YUA@GfV2+$1cN1gMD30!-
      zGl(|u-$(c#fZzXn$nk&ZfS+r_&$Z!SWN&WwfJ=DOp%|O1>&J?4{)$ppA#FlXAbX&5
      z&~+!|p+QpFI_;ok!nx-cv6lZ!w8yV-{;wh5|2GuXH>kdUhryU1;{T_^Zx6Nc8EWtM
      zhYHLTWb**|>kB{h65CzceXO&wy;|;^`VzJqZETAi=<NZo#NCOaa2Wv)cmf*u13DB1
      z4Co#3I?(ECqt(|&tFMh#cN?vI8?8KBNUN|9X;LrCkE`3z#NDm~q!VWq-VT1d8Y6`i
      zPU4g*&=Gi`6XMhv@&X0WF;ECS0!5Bcr<aXaFZEi1R~|0e*MW5saFvZiGg!Z@>Y0fH
      zLmZNIq&aO-=#MBABMJi$g@MpDFbKK_20KvbX`|57Mj=NS1MV~E55q}kF;cQ&e_{3)
      zspIhz!OxZwMCZCzxQ^0|t+0{O&8@JR(jBd^qXnX}%SPGdI@z>YcEv7}Wz}`E>yAul
      zEzmP#bh2rO9I`p(cExX&0~4TIU<&jLOobtVau^vn7tRSxg9(A@FfA|x<_2cM(!eaJ
      z3e1M;z+9*g%!5^d`EW^K0bCha2v-Ld!;Zib*cDg`djsde1Az-1T->i-k7@`aw;gj#
      z<aSu@i2nBzQjk$;@!j*(8|e3N>duOi6VSdmq263kavZ!^U2<66wa^j6T4JmMGY~;B
      zu0S!?pe998l+MMtyA-1d9mTKS5CQsAXHs}xgdx_5BkCQC52<%ml;o*<j;MEIeqTbp
      z7fbgaQTJo%fK__vh<b1_Ci)@uQLE;0tLAZ+U6ZhC5;>Y(b=ayp?6GT}Jfa>&uuog1
      zXO5`PV(B?5r3jouf4(Tt0D7PiIs}@aS0Ij3YKCE$mIhWsSzrxJ!gOk29aID^hDDez
      z4Qzl50++x_OzQ$0;iAB0um;nM1DB(uHaQrRTr_pKLNdmsK5s`UW2HPi#RaYE3n`5e
      z8;1by)dM>nuspV{c;uhfaH%IyrWUNhU|%t)FJzq91@;Os=~oPj`l9%LNqrgUahYE|
      z2uytiboFjbe}?IPOn;8)vzWe$=}}C70XlmX)7OBpS1^4Y(>F2wC8mgg`Ua+>Fntpg
      ZhHdIwSkA?iegJm@)3-5QhUq(?{67Uk*MR^4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db96992ccd8ee3f20419c35a7a9e58c4ccb81ea1
      GIT binary patch
      literal 1270
      zcwVJc+iuf95Ix(3IthkcfV4nwK!99mop7xbKtL&KPzp#u-#7L)apc&Qy=mc#cz_qA
      zQV<V(03U^z-2{nZsS4`Du4iY@IkPi6>z}{A{{Yays(~qnTA%OocUH9L`dw?s<J(q;
      zN3Lx>QS%$#@x+GUjtJkjN(}=^hMXc;9w+$APG8v4z%;|W_VPVxiCy7K>#;4}z;C;e
      z6ut-<re)8KN)3hw?a2df2E$0S{GFlP;J)LDut`GqUEh@t86K67rBvBsNUjBrNQ2>&
      z2?MDN63CiJBgc>^D?qmG`r^fK&=H~5V<@x(n|oV4bk%z7OseD<mjB~G4N4`;b&+0)
      za61SG!eLk(<rJ&qy0YoW8O-8>f%6Q_$wS3*H*pbj3@L8gB8p0NhW;^YIXSzT#sZcM
      zEHYFkCYiW|%XIZUy=GWC6i+Is_53eJGlLSY8Mw-@a5U1yb(E<TT_MMJSu7vUW`rii
      zDsC94Q3u3#O)RUPNjX8AzYm6zfsxYOQFqCZc^wQxTRd}B)R}nFD~iovwtRX(YaWjx
      zK|Pj_RiFB3-M76UqVsGD*$W&KcX5xH0|k8=@@`l4)<UeewA7#0LY>}0g2oB3Tuwa)
      z`bkXDNFzhulVq*ZT6r?n+83DBuQ>f#WAe(UcNF^r3S^mNEAJVc)&6rRj#XOpRoHxW
      zALcjA>|_1_R}N75SL`El_@u>(Bf?lrSu3#gaqF7Xz)kuV$eN|@x<xxo;|jP<bCSGw
      Fegn>8Rk8p8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ec79a6ac00881d986870bb8a1b9af7040669a9f
      GIT binary patch
      literal 5270
      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
      B_GSP8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableHeaderUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ad0945bc15856c57e803d17d0b5ffbf3e79f7d8
      GIT binary patch
      literal 6332
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18c4100eb390ada2e6cb71aface2b586499b8338
      GIT binary patch
      literal 1654
      zcwUWESx*yD6#j0Rc5Hi<q7+3eDgw4e7(~T|QkM!^txH@JpPaTA95c+Ac53mr_@+<#
      zq={m1jm9Vcjeo#+?wv_X)nGH3JLlZ9eP^2=zutcaa2VHggcznDnvcy@qu#WfW#f@;
      zE*WLBZdHtP^1Nl1ZE?Fey69FK^^2xcwM9*b#*mO!hHa9~wemwz@pMEO_NZI4=^5g&
      za6Chqm8`la98qJ4cn_@l=rqGvsf(a<WRSBQ%gZyQ(_L9)?l5Qtw<@Aw*vg?}OAI~e
      z<%lA|(36%5y(P;LR~sv3QB!sd+e>c6wC|WTOY*^`Cc!eybQ8FvK7>2IB>4*_1*$R(
      z`{4hq%Yq~ca*VL<;uw?&du!qmS$QR4Rtv(m85lts+QgnAs)Ci=x);ST_UYKmaG(p&
      z9Q!fC5cd3h`#Tc7q?G1j7{$1bF{;tuQjUX2Q?kp#yWutqZo~0Zjf>JM%P}FP+elh)
      z?Z%3u6r^a9V+saCABk=Xn})}7oh#HeN_Qlk>A)d}r&DJxPNRE7#|#yAb4`w;5<!x}
      z$a=PfMW-rOC6HN;<2bPqV}N4(4-~3IhDv&a9w9k}NgdRKk^gJUfb$%Aoc2p5+k1lm
      zF$|`Q#e11{kL4{bR#5)49OqDA(1X!n*qQ#9t{m+xwN@Wkk-}8kg_jQ8rmO=)%)j@U
      zXw|BDPkbc(|8h+FH{C|9A{H$<Cw&`dXiDlc@S;NtUa-x2UC_?(jq5;DMpHp=7%Y*H
      zD@i{ejrb_!<j09SiV!_OEIaWQJo^sYUK1BWADt1>0iI(!om|l|>_9(#sk0aeJj~Nq
      zdI*#8&bDz(UA~}jFO`D<Uny`PsofYNQ~Gmt=js)?dcCQukX+=z)lbrn(03*K2K)_D
      zYdDZ=k(v1xd1xK<Q_Q#cW9vA{pe|>%)KeI#p=Zb@wWk<MYI~kxZ=jh<YCUVnoeBs1
      zV0aB@+K{Idh;=&O6Wk9N$44B)CmPz1$l)_C;R~+gEAHbPY<yQ~<$b_GT5*(d9t)Jt
      r0PbRus1SL%K+giTG)IegktmHka1_a3nB<pL{1UFHqRHA0<0{y1IbevP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$KeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$KeyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65475db210fa1a1f2134fa1bd581687a1d2e5249
      GIT binary patch
      literal 1233
      zcwUWDTTc^F5dNkVN|z%PL=-IE04YV;qSRZVL>i3MdI=yVzHQqhE-qWLyMR0!FY(<6
      zeDc*t6U4*^e}F%VIOnvMqEVa8o}D@K&CGYcIs0S(+jjtyn2jJrm{_$otrw=hWxFfp
      zx??>xi<WPf%sI6#Sw%-a$`9X_+qW&Z>_{(yFd?RLOvmDk2gOxc3L<DD4Cq~JD=_7z
      zbOV!<3br3eS9*lD;F;|YrwAj3CK_fqVcK@>AWKLjn#vekCWLd9vW$XoL?D8811;zh
      zh$2R4Nhm;9!FJ{SjkTimbRMCnP$^l?vgO&zuWg1ESwgCr#tqsq>-Ohzdue-JmI?7H
      z@56%3D}%X4aRLJo^b>}f=pk?taYAcQrPq6i*BuSY7&wJ95uD~D{TUTFi*tmi?a!C(
      zfcLc^PgKsZz{szdtFUFYJ1UUC7@>1T28+_+5zF#IWlN{!6<}Q8f&z3m0CE*)W6f33
      z2>}y4>`vRyNykx5tJGT)`FyqSC4tKdVn_}u(9M9uS|~#QU!@}u-zLiQTjFGv`=KX&
      zUkTp9&H_`hv}Y_<HoTI&WvjN`jcV!}PY`*RZ)VQ1IGcxU9L$l$;)C+r3W~+lP2&G0
      z%zhLGuN~}7A;b@0B*(u%B)_8bGkYO)^V-H3z(WtOLfZz8qL;sfW9X|@_{1H;{Jodl
      zh1kXMJq&)pT-_PkLAvgopQ)S4Y|V@h?&0DNVh!%(;{y@{Oapky-&Z`}*GS<FX7LsU
      zywk*z)#f!~%9=u&sf}P1S8$c9q!7n7wv-Up>$KCl10Uu0^S;+*`>MfuS*n#K-1vWq
      VkN+$YLPq1KF$3s95dTD3&`<Pc2krm>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ef5b9951d65027fbec1dc1ef1e63f105883e4b4
      GIT binary patch
      literal 3833
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..def45a1866b306556fe5a3eb4ca765bfb9f31926
      GIT binary patch
      literal 2003
      zcwUWE-**#56#nie>9*-u(o(=EmS3eNDP=)Xq`@i#kkq6gDM88)-E78oakE=@Hz~e&
      zeD%e1eDDDueD&FLu$=PXAK)M5@y>2a8|janob1fp`DX6@zB~8+^Y6>Q0i4IzIyAzi
      zCuYZdY6NSxyKJmF<~K&e3~bA|s=kY6!;yE(lec|uRr=xgr4`d%mN!ke=}2Ekl8{ly
      z4TsIft;Q2+g*pZZCn9S@nr>k9o~_tHC|&6j2Er9Pm^?=~UFjo)A|JSHyLLE7$mRMv
      zk*^byC9f%mKzKty$6y)>91s{nhLFf9z=4YG%7u2TA^qqaVXWd=rc*b4TdljsqzaZ$
      z?8ouWYB7P4)t(K)shG%)LS64jH)IZJyotATWC;^{V+G#EQ6{u3!_D0Vv&CM<bNR|v
      zmTIBTu@?t1K}fY&9Vd<BIH}`APcmbez$r|!^76a3=`jC8xotPa`7Y*{hA@Skj(3?*
      zAMyy~QDEO;tn7G?r1KG|n8q2L)iJ}_czsvE06&{iCR&pYhhTedRS_Ya>{8u4pk7-q
      zrZ|lEa6!lWT|IY43VfiR$%y4h(|@(4BD*N?5iao-M^N&dc5Bo9)c@Q^6pbk8Z8#30
      zsMuZRc=tyuhjRj-;8VgNJM6kTzPqbUCs%PzM~QHBFPy-2+#n3|&3C-DlGk>_s5Ht-
      zr<($0%oC0TGQ8qiE8dn4Ww$Axa$V%g`MQEu1gZ*ph@ll}HhY08m|Ft3m8&h)y52O|
      zVLtm+0<%};6F=#(*B>;$Qr}yvMcVB51{iC3PK2G<TSbD^U$f~4v`b@9HBNY-+ESX3
      zu6b?Wk~eHs9HZNhpH(ghqU>`2EIDQnNL7+MUdkoSY2<$jl*y>p$1OhrP5EH!Ft0A~
      zO5-tInEnf*@B$-$@=C)fe+L)?s$z`iLe2TqL5%ar4skfXfo2&!z_#C}*KwqJX6&7H
      z9D9bJ3(p~*<McYF7iKnap76@>;Ra?2v&n3-*Z%QrDx2EC6~gZrpGj=sGYx9^T*Dt2
      zozY^078w+9K>-hElQA+HBj~|wQtO&x@D`(a#f9of(LIdNeeS1AI7Sb+kvzmjdc<{N
      zqDmGPsfow50!cO;`W78(;RkZ@6Z!as0z9Kmq{>{(ysL_ueStfX-oK)TMfRG-kGP9E
      zt9}kP?(r;%5`QP~B~lr1Chm7LF~#VFQoS(!0!uq*L5uzmqwga;jxs|0o5EMn{sZ6`
      B2z>wm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$TableAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI$TableAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94be7170dc6a03f8d948e43892ce7841d726ac7e
      GIT binary patch
      literal 10390
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTableUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0822d66e8b79eba34ce574105f24eedb0024caa
      GIT binary patch
      literal 11558
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextAreaUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextAreaUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ec9c66f8e65c1744904112e97c912717a01266f
      GIT binary patch
      literal 1835
      zcwU86>r&HD5dM}H5<*Zx<fdE%mC`Cf@LmKFQNe<hOA-G#p&TGi+SD{$d;lN92hiU*
      z<CIZn9Dn;zj(gGo#TMvH&)IW!_uFqTCx8C__yyo5UMr{~TzhA3nL9>)+sdvRIon(_
      zR?NJWHXh4$LF{<rt}qv;6od&qr`aw}5!5t0ctVQzB8gIu=?N#3bFw1q#rqRwPzTDz
      zsW>4#;j9V`gjyXM>IgL>R@U-H386@Tif}ezWyS1fW<|IQ=87!{jR_}h+9}hu<T<zu
      zrx}&ddK?c8A=I*&w_)W8k#bfQi^2SAidhndk2-m5WK7y3Q=X--N?Bq%F7s;E(SlZj
      zzAn52K7`*d5l`jE7OcEW`t8SQh^(1uGoI?zd|V`N#SCD+XPWqTvF-8wEy?K##;
      z&Aj))7E6x1s-Tx}xh%G{$%)mZZCY7LUPBMA%AQ;!be@p=oBou72%){qq6DfBQ3(|z
      zbevR1?sr)5fzgh)BD5qb)`T?;oNUr{a>DgKBwev)?GT!RN*lJx*7KgrPH`1OJi+^(
      zgfqFoYhr_~gzQhzX+@aXypcSjo!lz2)o=&*6x`(koouV)J_dP~OW4ht8KHtHt9H;j
      z6%PsZ+oi3l<@p)Y@d)Fr@k(cdJ9z5&XqdpHf+vKoQ%rR{#k1ldJ#o^T89zWrr3u|v
      z$LlbK7Ye2cZO0nvNMMF1Si*`mbJO<b9LEd#NVrrfz<!tI(|M`mJes8RO2-`L2})jg
      za-w)ZD$J4p=Hw7ni7i6+X$>T3^UkK57Edkt32FN8@efFMenb4EAb-`U<$n#I6+R82
      ziX}k(30mHRy32AEbY5%x`}?TpRWI7$49@aS@(UOE5A!Z{)zLki`+DH4@eYh2jIk1c
      zYBZqH2jF@H03X>#5*v;daN#%FX08`-@e?|E>-vQHpXgbRh4*k}*Ox*?sc$*9hyFvZ
      z?aUV3B^5Kw@Fkj&L^qc@ibX$scQHf|UP{+-g9)gJaZUq_5{7}nfYOa1r%>a~|I6{V
      zB%4qG7iPFyfoq;`W#&eZ%~Gs@+l>!CL-&P|FKCHIqu(%Ez~k?DPAFiufaGD}nz=}T
      g&CD_kpXJQnGrznawz&v>kcEK-&QEep`Tk4)0MXRRHUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextFieldUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextFieldUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..90b8bf77a03f32b9ef26c71f14cfb2188378e705
      GIT binary patch
      literal 2284
      zcwU87OLG%P5dH=|Eib{yIA9cmjWI~Vwh~MdV_}lW$cc^ozz-!NFGkWxUa{I0tCj3j
      zj=AKLW2hpBaLOI3QZf}+r7D-CDnBZfp4B4jVPhTUvEBVme_!{E{{8QdKLNaliVvq4
      zu9tY7@5QRSs$Ps$G+u~hc~#BD5^~%Ud)A^VwEXsx4{nAlCpm8~F?jE&x@z5JaD^jj
      z2KR!I7Xi4?r@#X*!<m$-i`7~=E6gpP)dWK@W#qV)=B6t5&PTVkqgELrsgurh5{%Qy
      zIa6?pVrRk~Q5Jc{lA0(B-HJzgO=(r^#(g-;aIwc`qf3VX1~4cooMRYy6TajuXhUen
      zdolQ%$x6j$JK>fWjB>@$dy}=<w~RzN0ERvWmSebZ90bGJqOjIYqasY}yLD3()IElC
      z;U;uU<K(_+nG_ZG<1*p3G^MqwS1qn-GRe^KNv36a#}$lXjNz?{bJW5PK~pitn}M;c
      z;CeN--eFDFUjtl6#D_4$r8oO3h+>3#sEyJpFAF~=Nl}qkE!jK)OygZ2VhjV_92IK(
      zo75@dNsVjNUPIwF8P>8Tk)w1T_K~i)6ugfQ7*5N&wa7Az^%iw`tKEgFGK)DMZZljy
      z!Bs&VcjyRWli<0>MboJ1Bzy36armx9_0|lNx|1%{=n>68#_gpIQ8j92PRM@vSiw6O
      zkvSw3Ea0B3Vl}BtUGnyweCWd>!})Gy5;axJ3sY+MnSv!OGx+LUtBJJ&!?mMi>TRF^
      zl1RxrveKojV~?c$SYsHR&Z|{Bp+nX(^nrp6Y*KZ2r6QydQ%7O+d~!0kPv2IMmJQ;!
      zjHWSwFF=el$G>!&JKPlXfZP)WUem0qf-mtEAy83lc^R%ApT=Q@q~hNw_*N<&AjO?t
      z^n**ns?KwkS{H|e{h(XhKb>t;U=~6_0Y&PFYG+3bhP#iG&x}XZ?Uo!p>4MQk=#HmW
      zFys~YR-6|h*vpZKY}$RbsLB_4sQbyCmJt}ErgK65ytMMzqmOnoG&7n#(S7(|(&7{X
      zGzMq}QFY@s`e~&!ooGHyGrb=;;{ePPtn}?Wz(D54K7ub=AYMCY-UfKP>Er;&)ewE7
      zw#Ru~aG-9IkBsmifMxbE+>MlIOT~|i2+{18_sEH#a=5sHm%2k!ZK19fi&0w^8G4tz
      zWrE%)QMl5r!vkWz(MH4DqT#jEp#KtF#Y7W}P0$G*vOT}iz_lO^Q_t{o^moiO@Zn#W
      ze}*5~inCpfHt^A$ySe-17laOw%nZ9<;nRKG53V+_-oVx?e7-XI4<?#kUw3;w>hS8c
      zW!r3jV_<UXH}p%G$p-R=B<HA{z#}4+$1t^a2t|xz2N9^$A0^z!V`QM=3CgHJ$4@Zu
      uly<+;PKt7?Nw+1+bBa|-j1Ybxc}jH3IKC&05(yKb7>#h;WY_HsjQ;^qS~Lj&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..539115faf9319ecf13e144e22b72667f8c955765
      GIT binary patch
      literal 1583
      zcwUWEZC4UO6n;j)1>8(g)3UM`D<GB3-pNWx3MC^E4EwaeK-*b&J<CwquPQ&pDbMNj
      zxgXW(&a$Y8cH+a_yLX=Z+-L6G;rE{(KLN~QLqQM2^$*%dZ97)~q?@(amZ4Q+C9STP
      zV+pyg@okaSOrB3G@G^w|g<Y)Z!m?XvhTg}zsf#BJo^YhV;7wW;9)t%06+ZMboX+Sb
      zUukTXxV@&849*bBSY^#9XtplD-Jn;z*XvX`^M5Mi4F0msHQ{J@(3!TBv^KXalba$Q
      z>E_$tB$gl;0#v+AF@~{|SQrLtTx4x)i`!x+YxAnU%`hBpvBwOJ;5lJaR@{#>B&{u!
      z*mbimG{cZG$4{17kS#l>ViaQv&NGa30NZqaTx3uxys9+}5yUtyskn?QRFLH5#Exv_
      zRJdDIXBPyq#T;}zfJt0eaE)Q&ctp~Y@=Z}!aRXt7V9K(2&9)k5MPB4VrPrkoye#4h
      zq70Xg>A7Lq`SdEUTMfI+1DL{$f@y|+he7)!S`Za6++y%0G7HINhJj4yHr-bQx8-2X
      zF${%|?nVlIxQqJ=?lGJ>{yZuk;30#mRVoXDnp0{B>e-EO_er`Vk%DYjT*YIz6Q)RM
      zo4T>%2aUfk$8EhT5zkaCNJMX%E?zGOki?>b=QKnIlnKi+xMr$I;RWTU7Baa-I#Q+!
      z;apK##gb(7CM=^O0~r;sWWX;)<n+&6!RrqGv?+Lv+d-`0jqKMdC5O}UfwD3~kDzHE
      z?HtDTjM1>G?u5A$HFnbUP!n>_eWrAY8$R+zXJi`9C;c@*{=DSTUjnTPea(?&WPQ;l
      z{9noGL6FuUS>PUlAEJ*uwFM%3ifjP=IPDVLCZyc+?|~JY82GZ!(d)$L59RwYh>#;;
      z2*Ymvv@5_98abN!;!vu`EzRWHbW?wmATQaC=*=e1-u#8}S5u)2-!QQ<y^E`Rh!l50
      zJG0+$#{&vI3eC6Or@KhB{g;RQ<vpwv2h=9APUN5=Gme&3s+gniH9ANhBPd{k>?GFd
      r!MsHrMbf-M>pKS>ZK-pWOD{*qr|UwN81lqCh%|Am)9D!H%UZ?1Zg6x5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$BasicCaret.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$BasicCaret.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7284598e04d85424261dd6ee56af3dba937513b2
      GIT binary patch
      literal 462
      zcwUuIO-lnY6r8l%u3cAK>&HbrC>~VMARZMDt_TZ@2W@-LuBk@iu57Z}zvW5r;1BRe
      ziEm@Uf(Mb1$xN6xFE1aTZ|?vOvF4+}uzxR}#Dtq?mEZD5Eyg?*MrHi0#(|vJVZ7~l
      zBuZ(0cnlk}C6+AwT#iMh?bOm{SpStejIX3Asxp%d?Gu$Nd&<z<*&Q)>QE?*!G%+8-
      z#~ed9QMtUV9#UBjM5?KxpA?zUBT=eaPcJ=trwjv6{x!leLvZaLa-r&!-i+;_PGSh-
      zJeOspg)!3jSYg=uy9LGmG{GilI@&GzYDSCZBJ7YlavEsuy&`xa(m+TU&<SXGD6l{*
      W{5D|`UFYdJTteS@>xgBnqVom#SaPQT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$BasicHighlighter.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$BasicHighlighter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0473e17fa06150026bf72c3ffc8d0fa0a8a869d
      GIT binary patch
      literal 486
      zcwU`RO-sW-5PjRGjg8UP`f>5($3Z<9q<B(1SP=ukgSNeI;<jB$6UlBg;IHx|c<=}K
      zqr}Oo5b+?$GH>QBZ{F;%Z|^U!01mKbqsGv?<@dbs)PqbW-d)VcUdWY<ywef~qR>Ns
      z+te3wGL0#;$ZS{)Th&HQLhnqBc^>N@!Y0G|uL(o{N~ko?BEir+mWk9S4E3Ge5rfrF
      zZ-j$7=3UsBV`v955tsQa6xo1>F?Do<G~)4yXR_p9mzJJN#c&w>W1S-g=h{5yT$Wy)
      zig>^DV{rW>5m`UxN(p6Sg<<pWLElc5QP==&O3|P%V036l!WOZf;Xq^W8O{?GHMoQh
      eWuSnCM=Vg~eu}V&w$XG9E}?6*rNuH<(fR<)t$f!2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12f7f4651628b570d85698ecd83d91c599839f23
      GIT binary patch
      literal 2071
      zcwUuNTW=Fb6#mAsvte0Cpb+W=3<LrWkZe<+ml)E3Nr+P?X=~#YdL6GPVPUfy?M_JY
      z(x*y&YAd8xt<p-oR6>2J#EU_#RP~96{-~;F)@!o?CkR=yXD;8lesjkE{`cqK07g;O
      zkYF(H@OymS4AyLS$y{;xqFLpEZJAfqw=CA>jl#((&sq(pxm$CDuOZ3Mqm)dClgfPc
      zj<BSLPKLwbE?<+TxF=j`hH6DSkir!{L+2&iwdFWNM|P;fkj#5Ep`!!44QS|M=q}o>
      zm|I=03ct*&j$qhd^epaFxNoa<w3(E*?SNsl_=<t&7<MnJ^>t2uY7Cidv0cEEYMN6K
      zGV<2H1BPK&Xt3x7Qb#Xd*Kmj-y{&?QH2N5fB_Z?P@`~ru9z$<-=$Vh!eon(-hNJNu
      zCFNw!sLWa@<uzmAD2`Ebc2E|y?{j}6tnn=!{TMKC0w)>vk<*fJh$`E2OOpFC#1s_f
      zl!4O<(;df5x-}g`IIH2z7QRax#OJbsa~LLqLJe!xx8=qxclnay`A9RN27c>tPKSw6
      z4R16H)edCfO?4sqtlPr6+i;k7?3Jp={n{1F5<#Hj0^ZVau^F1GUD@-TyEaw%ZM@S+
      z_?lSctB#Bg7!Jfs9qs0nsWAgNT#E7u{k7`Aa3Zc%<C06CyTPLH%~nvv7TxQ?_NbEd
      ziN2OWRq+V}S8z36aZyvm#zJh=B~+ylFXNi(l1YYx*%!};Dmt#CpkX??GCPE7U<U8g
      zZ3)yRbg4BZHPdW%n+(g*M73V-WmTA8qduo#G|W=tyvXk4x+PXr2{g<TyDe+ef>VPA
      zLG1j)W+I`1g5!uK?$EWBq6K2uBjdfmaD2;?(579eV-vx0tEt=GPl8z0rmdYQr|u7)
      zU6Rw=;GZL(v@T>{`Q=jl5@if}$y@a;F=eZVuqTEeQ6}kWDY!&I-r+$Y0u5g>47}VI
      zsl~nF82Rd;k)nTzBogXzrqwQ5nIsv>)S1W7AJHTMgT9^N=2zH5U!wuQUUZYBAh9n}
      zz8K<Z?|H?qL&e_4VWg;L`|(=n??BT8+e>kE(plwf9S8qG|18NPn<$*C<2a4M2N-{X
      z?A-8EXv1}kJi+-o-W^M(lTR`D7cSo<%zKZKA4{c^=~OyZ$J9d@3lGsnBf0R1tY=U_
      zk$y^kfVohXY1W8$hGGJ~p?Z8vQGQ49eUC#V`*5F-KVSeq;uL<u2!6(SY|=yY3%x6w
      zn82@O^8wlUjja8S8~7v4dAyNLE9Xj-a~FC32qp5GAsc1FcaY5toi7k06I6?jaTBQ?
      i5I47?@(z+rMBIGRo|{BCJ`KO0;d7FDSl}<fq5lu%{2f*R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$Handler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$Handler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d574a9624cabb80670b35cf650518a285176e256
      GIT binary patch
      literal 2400
      zcwUuNZBtuC7(E+OE`$XFEmSPDw8awgLa^4Vq*8@~#ipSWh+4IJlWgJQCBftZ?N9M%
      zI8*7=4~{d=;Mmd8aYjG+N&NxUAAp{{_l9?Q8HT$r&$G`td-m++>Bd)I19%ai8VCqP
      z7t9s&L9)7PmFAL5ws}99H>*}5IjX-i>VY#m*>}?{6>U{95EKaO{G@F%dn&)63XXw#
      zf%EQcUYVt8@=m3^q$<wCv3Vw`v{iLfNiS{?xUd~et*DZdyiqPJFS1k16R3CQt!m$p
      zKwtWBZYkzpvr3jTBG4Z>%7THMKya*FRE-d5m1smLggUfIG@)IfE}|1!(^g4kmKXD?
      zGGpd#CD5KO7fd^6RxCaCCxe=*K>P@}H4#a;Wod^(0vA2v`|3BYRU+vSo=3NVGXiH1
      z&XwrFS?*v?IkjlUTqMe=$Uu7Q@Ul*YWK#|36=*2>hY-RA^clFg<Cwini5GB*Vyn-V
      zO`Ch}h-@q7IUzN0SF?;r3?M4dL<UoKF=yJ#d(iy_2I2x;+r@Jz)}|*KF^C}p$z8_T
      zUtmc~cM2Hup3Y5(;U$SHcv+ycq87_5YOmFHIc9%H`r^ML@oH^b8MW$eOM?tcq%_D$
      zvsm1{G{g<OE-|8wB^T*A+dHVD4!j|88qW!waA5^{4>JJ|s=TRZ`(8D9I*gNpz?t;_
      zimJ<$eEwX)uDhbS;4zzBDw+-heFsTXGo?PDw8U*>ShP|uJ2^|O3M7tlAEy2El-A;o
      z#5<U#ODJy6s#?5V<3-CUSEji!9$?Kp=Bks_Q>1DuuAD*6z^p**7=RM*;yvC%7fP*8
      zm<8fIr2an04%N10xNvtRCh>v5^x^VsG0x7LODc76asBE9)C!-{LkrVOR;fyNcxR<)
      zeIjvB(~_Rkw*mzTQwOp~dK-_Bv-ytcTOn{?Kbuk@lr1k;3TndA&tiC6{-7>NVv{A_
      zhcVl%Rux|l!>@u~)~G`OCtyH?!}>Mmk5fHoSeCJ7j;?SNU>l0YzC=s(F~VPP6u?P0
      zQ}Fu)r}&j_KZFi+vK9Jv`4xV55rCQ48oJugt>OIV7-hfzc6=Qj@ox~zB%+Vd@(771
      zxEugOS2KxqoK7$_9PA2i244$6_t$VuH_W@f#pN;?0N?Vvjy8Np9^dobc#3}ffH;1{
      z5Prf{{EQp;1-I}kviQyAJ;Gg(o6lSK-oz-Gw_zA#%nq<hGsZDNrQ$e;w>VeFN-em_
      zxgawq@wUIyk2uy^^>~bL#XPoC{%{T1HN3w?xt;02A85s&=wjQAzg$Y4UXe{oJ@}BN
      z1^@0H3+m(DP|pbUH=&*p>YqcP%ws|2cSCIu>R&=_pqsup04fZct>{BtVon{~`e^Ji
      X)c!^bxc_tRcODkB=``U%EFkb7p$uKq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$RootView.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI$RootView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b2834c17fc3e225a18d45bde0d476825eb91b81
      GIT binary patch
      literal 4656
      zcwU`XX;WL*8GeqI2*d?}9Pn;~jcpJRWx;kDxps{#QWDvwfJy5t?nOGlb%dly7eUf3
      zi|g)7x~F@Zw&{}Tv>jKS^h29`NoP9K_6M~6AN|znbI!e7DHmaRG9KXEbKdhj&%2!W
      z9RKZqfBG|k`|w5t0fDjWX3gA8RyVBTO0rxqmy=6o)ygHO)b9nkX<wNco-38?MN4i(
      z5EAHb-eA)psg?vnHT`FIw&i+C;4XXBst(^PFr01AsqD{KMaw=baAM?6HjFM(L%Nig
      zoe=0Y5J5*2LBtGnqF3PH$aZ0wf?ShDTW^hJt)jfNzP2PQ3+7Tm3dFOeoLN{jE0+3p
      zCqv2!fr&d%<b{pC^sGodoHlcIsq(DA;K*p}K)DvFDE44q1bYRJw5Kw#9|r^svZPCE
      z<x-Je2^?+3@rc^t8EKkB1`cD;*`CQ;q<_@n_H!*F=G)x@-vc1@5e!FgRAArERtEYp
      zAP`yJ3e2I~hee=MHY6Un9lt<dxgwWkMHX{1y=oR$WS(1Ec%_qc_3G$iC!;ZLU;_8B
      zgzRQl1%}#2BZ_-*e+2gl9ByN3-~mhuL@Tmp7OcE!v$BFCstiR<AiQDa?NyGi@(`>_
      zYh{)6k*ZTcjOI=rDE$Iw41{r)D*dwt&fy_Oj9X{TiuNM1(tw%Sp#&MZuvN^<O-h(?
      z%0f-2OX~`OIyo86IbTl66>XEJry?-mmR!=@u#?_=%8@^BJx4#oBh%BPi%MVCzziNC
      z3Dt;c{?O-enLCJke58T%aK$XITDfYfF*UzxmL(mIV4erno1T+7n|UtCE?mK55ip=V
      z@7`nJ!}th8LfKRFAYb)q_7GB?n8V`+P9d#EPa1d-=_uoyRnk9dU=|;u<Q0KkEtGPF
      z$i05SoL&;RyA_>4*BYBwVWH%tCp|Lb-@QFsv!$wKTczUglx0>^quc4Cna!LmE0byj
      zPYWE|1~FykRi9HPo~`n5&A<wnkdCs;LG32{-x8VFzS?P_JL*1IC|y)e37lfq{qi1f
      z2QoUNl&l-5fSf|rBRj-U+kGrct5}s4`%2k4TXXL|GP1_Aki1aJt*iE*QD56?>-KHP
      zDd3MAcoxqI1Z2(MA6ikcx~mGC8*0ncSdnX`nshWOxR(sPpy0Z5PP1yP+%#}Qt?Xsl
      zUZR#otGaF$ww#`>l-2|m-GaGIT>L)Hw2h>bfzKQG3_i=F&sty(*hM3%4CbWm+-&o<
      zS+OrKFIT185i-TR^QjKZ%LcxNud^VyuoVz>AGhc}Tg#~~d=uY};9GQgM<WB@LB=`C
      zSy^1MS5^Ognc?HadE2g7OY63z-l0}Zp256SiRtB@S$$blWPZMEvf4xJkJF*^gMbRb
      zj}3euKj5snsqX(!Rof`%FY=YLw!Wq|DZ`%`cug7VB^tX+q04-8@jT9#)+;$VZK=0J
      zZ_^Eak5b6s%@o-$(*?6yRnj}Qo)8%1<{%*g{KxhV^!BP34rd0q(g_vlE`GgFTL4{&
      zu|L2_h(Ds|cY0eNlp|acyAc)xi1XXvCYoXw?$+x1HJE~_(o)e4iEQE)arjfm?m7-$
      z9Ivy|$Nq{AHJ2Uxtp~nOsS-!{raX#1G0a>281{+dI4n+RvOx#XB@6J$aSX>v*N0x5
      zzzAmqMv-s@JjTBv?FVUYVXTg%-;YT|#YqjFa7<ljH9AQ#j&G-M+6f5z_i0KH4ADa_
      z$+8=)LnKMPqq$O|j`xqfgO0HT2P%lE2Cw7dSwzG+#Kd{*5>wbCF5sZZXdMF%ny2HC
      zt3%)eIPWD$XsfUyYeY}W6|+q+VGkyZDWo;b1!P>9i!Mxe@Qfoq96GcA4G%7^A|jq(
      zGM+@IcnV$OS`&1)mxL}%yU-8ggD&*_`WsG$8G66S>rJ)O;UW#Go7_uXP^Y@j5vGbK
      zb#%CnM;n3cQ3k?hAlLaeuQk<2pXYTSeY~Ve`f!;eRUf=_U6L=-S|xqbAxVzEjk#A4
      z9e)dRucLGPO)LmpN=)3s)tmhF#LYUMQkG*Z-)jvW1B@-i^VIPo-_I{0A#UISakHtY
      zCOtiqFtMcdOd^Lo5e{HCB#THD74J&USX>S9>$=uB&+%3br}mFe)KT!q^3@&cx2UtC
      zMkP(9MrAyssdyQ>LAXZwbO7B>h$r@j>aZI{;86TtQ%pLB9z{25Zgjh`p`)utiY%x{
      z5}Vo+-fu41lIu;}iFmgYPCE55e_sE>c)rCR@OG1PagRBUPvDc9IgU@c&c*ROdx3K9
      zh4y?e`uYA&zJHMKpYMV1Mti<b`}zJwzJHVNKktE$_vp4dd77DGV?oTVlm5`&a2=oX
      zC-T3V?yO_#(Z%ouw^m|I+B2Fi<|Q)5gOb()WB3wN8m8r!y(Tga=cEUMKCVEp>5K=w
      z`{66z&PjJ?lwI<xZ{iyQeuSPTgs6wWhk%Q4(nV-A_*Z;~Be19CCG}l=&o5v2cMi6c
      z&kGz|2gkYI`r|*$G<B){b^ItZ{2LEUchSHof`J60fidg~j5oEaelG|8cva^>MeQeU
      zt9tDY$bPz=>?Fxfk?b_d9=v0+pL=Ad;oJ+s`0EX5Cn!@*H$c#X3%YOt{6gFR62AiU
      Mb3*Vx!@ox0|Gu=f-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTextUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2a6452b4c0e9af466ab0c06b26e2f10e4095247
      GIT binary patch
      literal 17718
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToggleButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToggleButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..828356f3fe831eb8d4daa5362aa67048948f2e05
      GIT binary patch
      literal 3114
      zcwVhmS#uOs6#i~zA38w-1_n?;S(3>zEGn1*GzkU<1BoPred+1xNg6uSLw8RSaNl>_
      z%7^G95BOr0T2?@*Ql2c!lD}m6-JY2+TOd|3HGP+}e)pVnPxs&d{`Nb7?f5!`CV}`x
      zby}TGI5S3WB9S-MY$B~XhL-4;<CrxuVe0(_*R^uTQX%*SHr-FYEGZD&W8@5XpMbBu
      zV_d*LU}f|ue26FrASkeW$jIqO3R7v_9#hk%F3>t;X{tG{+J@Yhh<<m{a0I%BmX0zh
      z5Y}v6b#;kjcYBrUp#f_uZ{_ryo9w8!xxl2AC<G$>Yh{|in#D{BteDW<5!=e^wtHp7
      z*0aW}z^eA5i-f6CeAKn6l?<azpt%xpk3b-=8qz^e5o|)8aT5n@H9u)+PI6KF;~}gS
      zSX;^NOFOQuYHrbT2<sWv1&c>@%_S0(d02-?6i;Ad2pa_28aq(%B%Tro@nnORM7N@R
      z9%)RH7^BVD8p0Ox>ToM)M+eoNvU+QKjdsU)6ftxv=t4IO!f^U6JEPkpG8THqtDI9&
      zB(Ob%Z8hf{mE$qjFb&tx>1qdd(gDjyE0|1tDwoskKGuLh|DyRHst-)EqY+VJct*jq
      z*d@@yXn1wnZxwPGR%X27RJFBLXJ<2>Q_zcK(T)tlVVz~6(azSo=v41Zf=L;&y$beW
      zRWUVV`m8HU^#uie=oeU~6>OUjQks<$*j9b|>hh?$0aC*=zhA+N7-ap@{5T8R;Bos*
      zV<I=@-2$d1CB+UZNJ+6aiXF6U<0?^B2uhKc6bwm`)fJW`;1SDV;;fvMIig@#%EYS7
      z)Jnaq;HZ?6ag#tL|A3m0@Z@6(j)5(vEu&}Eg6TzMbkfMW!`Up0Pe7z(22UtBiBkeA
      zP4$XZaJ^hHg+ppuHwA7ip-d{%P=B%OW0~TwQ5`ImmTJ&GWGv1oIE!=aa*V}cwpGGk
      z*Iu2=VuC$pav3fl9Rlyd>P18pXz~Vz45!bY(lb&)SCEyoh~coEIgXx@o+lL;k{UIf
      zQQag^Nfx-Iz{C_Upx4HVhD%xkJ0956YO8Ww+O!npahU)-o5gA#{J*9eUUAPndxncb
      z*}N<nffEnIe0|D_ZEi-vtPGuEID?i}aE52tq9o(0f>$J?rNk(;KMC?R1+U``hT8+_
      zaRqV@59Nbt^3^RScxf8=BuC?u7Fd5j_X16>&1TZbJb4CrP177iR(=#z_dxmn_fpf^
      z=qC7ZO%}=L3r&7$@6E-|88%pClEi?IS_NCv2MzfNvZlc|Mvt_Cjm(h`@)zKWpEVpq
      z+$A^*NsZq`_$Mx!5ak&3h`X?iqf!*$+{`(G7A!9*@1V5gg>OTgyopDCtkK_Jp&!Ny
      zv~u=iC03R6yGzb}t&i5K4p*r9O0L-zu%@Ugu9FfW?QYi{#E#s?I{JUC*I!-)%8Ovv
      zJRa{2b;d&T*wj6b_#B$MW5HYKIer6??pt`8A|7`)xqC=>p7Q{o1AGqgIUEbd0x>^V
      zBk^A_df^t1_lCJU{VUE3%wc(P&GzvvqFhhRArkN8;v&abU>><x_)j#;jXxHihfUV>
      z9NIWtp|+$4$)Vt@_u`-CL4nhZ`dP;N91ngT8=ztf+g}%S>}1Q^i%ATy$sNK)jN=le
      zOxfFTnY3wGxW<C}hP&_J;5u8#_bA|Ja_(RT|L}&(0G}xau@qprdJ}JXLBET)nXe`y
      z_zUmgT_&Lgf8ag5&kU}{JU-wmKuka2L#~2Eb^{;bV<u-B$MFe1WybxoFP3sW#+_f*
      tLA<l8`zAiSch)Fp&_jsUC8l^$ZUIwx0aMsR(&VkapjRKMUwU@F`VZ$zL%#q3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarSeparatorUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarSeparatorUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b59fd398980a53864c476062c9725b8f2ab86a7
      GIT binary patch
      literal 1337
      zcwUuL+iuf95IvhqlenfW>4icIZMiiG5Ch@?6a*rzK!p^L(gyLkaX0B!jvd(!t@_9p
      zfdnc7i4WkT5aW$=At6n9@XmN==IlAMv%h|S{|Vq8?j#Ul$RF?z{K)VQrCm3g7Oxpq
      z?n%=q2J4RFSViuZMU%VScii2r1Y!*9r`7Z&GsHZ3EEwiWL50B&ePdHLgzZVkE-*|y
      zmbUbtFhn!i3MFqidqP7LlR6SeGEA4GEnc@8RpIXNszpHQl4EkK!d)5shnq2fUwRC8
      zOaCW@2qaBca9;#WA7=h4f4Si_nvN}OzmOfq?FI=&1H&W(GZ_{~L68(_dp@_UO;O`5
      z%O|=^0|$1Q6|$8i78&M4%6YF7DN{2wT*7h!OBC-f-`(2gHm?g;$7Nh$(CfnQwwfW+
      zKFqK<<-VyN2(zPW;8IegW>rTV6C}wSlGG!~5N~p6`!qqB9?%PyH}|FK6-G9b?wQpY
      zX8%#cFhi{0x}qjrSL~J5=;X)T%g|6w5ym#nRio8tBd862)Z5U?PRljLa~TZJ@`&kB
      z?*ePojwrnrhL1r{$V-q<!%1t3{tU8=Y&>@Y?K3$M=(J9#%?CI~tKLq)6sF0hFoW}9
      z@qNk;V#yz1?@y5aG*JJnuRe)c%#n>@9t&Z8k+LIXwOsnbH(dORl^z34MP5-}NueyX
      zGeZ`Ew}z{V{54z;@t)GB#10C1ryy3tPIMp`Zs4YhGes^CvyMy%_K0k7WIXo;D}&0a
      eeVpQ5z_@}5IAzZUV~>H!oek!A49qQ+fBO$2pcqX6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$DockingListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$DockingListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0c73a659bc105d29d9a2b2455875deded320c42
      GIT binary patch
      literal 2955
      zcwUuNYjYGu6g{2oWZ2D+7ntx+R0yzHLN-AWA*hf9a3LXqJRqpZWVe%TGMR}pvm5XU
      zz7-$%z$)@dOR6mWpoJ!Zf>NQd{9u)q!vC?nJ+s*?A&^+9%yjphd+xpG-rM`fzgK<%
      z(1b5E6ftZ*Ze)!Uad%8wL-A457>o}Xu1v;T)U(I7%@)JyP1Ls8$zejYOV<;Ya5Qj+
      z3S}BM4KnN;I4+W&h7yL_LPC)hmKX1^Gp<NjqZx17o*^RLHpdtmA`}BV!cby6l6FMf
      z?(-UBUcAeeme<Unc|jly)$N7!dvgI2q{K^0x3-aCefxqkQYPD_CA}vZc0?CwGq>})
      zJ_g=ur$iVGOLQzoSp*^6r=uLz454UUpZc;)M=5lM@^)#7{h5&g;q({-reLUQx08n1
      zXE;*rbBA0d#IR*yq0KH3rN=x5eMCv$YRcrWNHMI6&S+aunq6w?r@_ea%6nj@8U50U
      zluD~shlWKFtV2}8dWPk9wboIG7{j6=;rWH7#G`eyi>)Z@b%YU#paG2<;tXpSB!Nyn
      zy@{%tqS$(DhBeXI+_U#8;~<}1mM0vgP-(C|Aw9K=_`41}t2P0$%Mq?CQV~3kZ5p;R
      zES;+-bTnf-u}OEgX&YWpQEG%E%I--WPhkf`n1o1JuJEYLOA3_;4x1IWMMo>z7|ICS
      z=}1!1@T6_|WC<nuZXJ6RfD_<w7zymtu$P)_7MYHAbP&oEgQPq2O*?gTO`G;B(}Oy?
      z6)NP}qZ)e2>+OO?(1Sy&s}D02M-z#<J{95-9nYv_!_w_e+e(HAp2PDRjxww$6sKD~
      zdp&7NPYR0Y7z~mxX<J$01Rc?1cPAYoD82RfC|;{QGHP2v%W6m#CVNO)DSJ%$7di$(
      zS4$Nox6?`r*R!3@!B*37N$utwyMK52XLHjR9+L7>4VDH;Gjc~q_9hMr*UmUep)?uR
      zVPYgGahKr;)$G;LIr+lW=C+Peyg>b??!amM(z~HaIu98_t4<FxX4tgQdm?Y+bB*aZ
      zfs@qSNh6sSsTMn9rQF+mx5*J<xzuxne+jQ>c$q}K^Q(?mRqGUw$&{B?$WuB_tCNzn
      zkV9$eoj357hBp}+|8Jl=-o`tmCG~OV;2=HKxXd-nA=jljEs?pIs=Q;O7#90Od{CIe
      z@Ta%|AL{r>-5c7Vn$(?spl5Y_qONY9mMI$CNVi|u-BL~QlH22KP(Db%ghl1?TS<`X
      z@>$n09;Rz8ME}L$^hXya{RDG$%lU8mT>vU7)Gr6^7ZI);74)p6-98kNB~TvQFo~+z
      zB`l5APom}`9Tj0YJ<HT*ZlIVSMVKGM3OcK%Z)Ad%xF7IW50Hx@qFjXsbHtl{27t{_
      zmCz^f;Q|Vlr(k%<&w^ofo}!yvD^yKv0&C7wbQ7rBFom`Brq{;VF=n9gEUNiffrFa7
      zgPOd9N9K?5^gJ;>IzPpkc_=o|PjPM@ipQoYm`fI%zTF~eYNoJd9Q>kEsw3Dxu|Ih4
      z97j1F@7g$lr!SyFLH5)7zy*TGuA-+u6uN}INo)w<{pV3yua=kbY}G)pNL@#I9F?jR
      z0qFQ7tUSC-l_qBq<C9pUa1(HTM}2Okyadba1YRsQ^Xu1&P4Yd3*Y8^8qf|riFA?Ei
      zp_G4(3Vs30_%~S1zr{xW9UA!e*vfyvHvS{_@SkviPoSSqA<Zu%%dg-Rzlt;bXPo7~
      zVw_*YMSdOE=zW9Vz)k*}FLo@DF)#M5oY)n(fp=+~im(h<@gCmy$L&nMh9`5a+7z_v
      z;(|KFLOC5~lKLPg#uPrDNpA(!5d2S6^1o2U|3(e}2kZDvH1b;oebAH-ttl5;5kB=f
      QKEvnqj`*F?fOBB~0mS*e0{{R3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$DragWindow.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$DragWindow.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4eef745d21adb94f73b650f73e4f2ece7b1bdc78
      GIT binary patch
      literal 2025
      zcwUWETXWN95IvtQS+OIG<3L(MAaNUtFMz|P^kN!_O_Lf-LLr3G`)5nBMU9k^6x?6X
      z-$R)+%(OFoY-jpc+Shh?V!CUowrtXw=t26lm$SQPkMzf@pMM2#5#MQu2`oL9Pv!Sz
      zuV>lq@=jN7mz&bFTIDL=Hyx*2mF|Q3;!Rh!A6mBI^fV{}M>(r3dww}E3QRT~*D&3h
      z({)^dOk)txw^RfY&i1xv`Xj!(j%EAo^E;NexFm44aj14U<(g$%{<1(Zf5@D|mVi=o
      z3^NHDKt~d(B&IN}AuDj^P#8Ln;kbb6^lX!+JT_AK)~YL?n3WXbctgh|-V~V54`&U$
      z+{Dp_Wt;1}PnxE?DVtqWAlq<Svb!Z+i{C?|!lVdXI^1}X4G}x(w&_=+3(4jS<11kr
      z7IdgcB=Hs&HM~uEqcJ+pAVKq18!NTj0!c!x+q6WFM~eUk#)^hQR2qRbg*-~k$2kEl
      zU#E*XV5p5y5F@<>lHlH!bZD5M>N}E50y7aZ*Ic>Nv05JSnZgxZ)$p#s)N5`X@8Pt-
      z1QqMglOos;bbN?P&_UJNwGEG<BOTl`TfVg0U0$WYM><a7G#9z9;|5j;%?r^+_ZyH}
      z*h->?k2Tz+xn76Vv5GYssb?8}M?lm$nq+m0t%;6lwL3o7YUsGbgiRQ(>~S{5wyE9$
      z3=o<ppPB|mH2;(2*c`N1Z%hxOMGSbu9YiMyR=`^lJ3;D(Yniq$eao>)m-#wRIfXBD
      ze2K4Ut9~Ft;&JqY2*pV}egmoDTWaqhzmCuFhyhzV49p3njDePU1(F(Z$a>$|bzA1D
      z#UID?sQNE3u7F;*>BFpbrRSNn*3|HuK#qXo^xumk#*(K~jO7JnGW;i?cRG_wb&5Me
      zrwaLF^gL25{e*P!IWjLW^J72l1l?2YRQ`gh{E1n5=QIk&NzBnxux3J_Dm~ekDehtZ
      zcWBR%d&b9S1FSSRru+>}`3IBA%Lra(fcFm0hIm)0dG_hQApa;%*9#PfSbd)wk6`En
      zjPtk<VwA(4RBEI=o}7*(tApf=xD+P;KyeB^i=};BzEj-C`|BmTU)#rWDIPz+hpJ-G
      z{S(F5$L-QNG7o8+W#-irP}Nza)H!6;Q&?2zQBW89Rf_>~Sd~xf*r2*9{fO>TZj6Xu
      zz^AxJlnLC&O4!qKxUB?lYkq7^YJut%`}i|K)Brz$&HmH^53qF*R(TxjGGSf$AFPL@
      zA;uy(hgdSi$`R4&J$!z0A72N@=5M5`;6z4qSSHI9sMj&6-oSBn1q*65QZ6?rm%}#J
      Us7ws)er^X=ze#Rj3Xh@u3miI}JOBUy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$FrameListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$FrameListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f00f40143bfafdc6b7f5336472366675271f884
      GIT binary patch
      literal 1391
      zcwUWE*-{fh6g>?Y0>iKf2&gEaAW1+Xo1(!5!eTIhC977sbdm;!8m3b-P2wN<Y!zaa
      z4?gnXU-%=Ix07K>L0P=aoWAS1XKv5$zdwHg7{O8)RSaW$yuiQ2{i5ye#Pbf{j%T=U
      zXX7*axhADE!@c!X-@M27McVe2aD^8}h@nd-#(7c2MM1bKzG=HTS)9)Cyb>NmjoP*S
      zzK0A0=__?eP|B3;+Uhw&EON!1=mtY5DRZI@4D}Wa)R?G7gM}~}8LA^Xpeb#;V)<Y{
      zBfK@9aRft4T4uSk!981_17k=NW|+8I>q<e0d_%D`f6|dYB{FoEXSg8HoW?}F4(;d+
      zql2OUN)0XCz)gm*DjOKuD~K)zfe8~`xD&>0hPKQ67P`^HP`4x08}1PmDin#HQB6u$
      zaa)gM;x78axJPnb^jhf0efnaa*p~$ouOo84#C~47XH!NjL=j^!rDyM)G;O=ArH&r5
      z@BqUMomuJn$|HxG5!=!e^N!@IByCGM*WonRs`AK|s0D4Bu`E5ct9g%F7{fR%0MF$Z
      zqL-38S7ar#C$cAWA6a;eNrqO3`)WbT+=^#YJoT0?150UvpIS&@ilNaLs=^(Lq@o*|
      z!E*~Q^a`4`Ti}kJ<4S1rw1pXMu03y@wJ@iRVNc}sywrsx?fT#Tko5ULNpn>mcv&%T
      z>m_cjT$*8Bg276;ByW-i@&&DUL&ff*m+nqA{SjDmv%Wxtst}?JR7>_cI*rr0ir!{y
      z@H;(z!1`8-X`*Kh#lT3RnXsiXOk6{Yu7*~$1r`2KechoLJA`?N>qoe?G<1r4%V^*j
      zi2wzz@@w!I4FUQJqa}WXkqZCB5uOBjM|gIMUY?@l8QoDL3F9s5ja9T8>*z5yF>GvM
      z(s+ki!VAWGY#ASrF+RdEKA~WIE{)bxrXP%^(L5IPF9!}@AyyJ7RqC>c*Ci3?8`3VN
      G5&8#WnOq+L
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$PropertyListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$PropertyListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6c256c9da7405c75765c940f72bb053e7e740f22
      GIT binary patch
      literal 1112
      zcwUWDU31bv6g>-pK#UYA;x`scB~Wdw)>_5!0Y+!)Fx9cO54<g~ZPQ5;x(TR1#h>9!
      z#Tg%b^uZtHcoV`@w4*#^_wMdJ_v4(KA3wi-1F(v^iWtNCAs_PhruWWr_RYS{_skCW
      ztghJz)*aWi8(hBKEWeg+Ur7H$%kq5T2&qD0$Oc%`=7fCJITT%AMUtTu-gX3cJaYnT
      z9*~omfEkkhf#sF&F;rSJ<*yUuspVMyGlrTmBc{5`pfuf{NQ2?L4iza4am?vRBg+ss
      z0*ASl<%q4pQAfxf-mwKkuH|;Qz00K)oTE!6D41bmw$y*oMfGR;Q(Q1Cj{7*1spmuC
      z_|$-g%eboI3PbVVzB;bqI(4%z{K@MUKcXyoquM%^Y1@}ncs+$8LrS`~?GA<1uz*`C
      zN>hT4J#{RiOx%m(0k^6Di^gxk#+uiw?KEz~P*Gu6nu#7ARn!<%e|*7En4<M%<XG2m
      z2P-P>QWs~v>o7qhq*>mZsFP6CwnpXL*YN;rB&H|)$!o)vJt3(J#b^i8GookVe;QEy
      zZFeBM;)NB=!TfY5D*>88-*iairp-N1Q2gwl@}oo(7^g1*mdyr(NPl1q3Js!0x98}z
      zM&}sqT5b6=^x79>K7~FPXibt25_`yztp_%t=8>nJ6hR@1(2F7%%OhOM-5BBKM-*!(
      z&`+@R9r?hDP9u=Z>S_E8)rLeLg~Tx`2^r=ojAKQ40_!2xDN_uOLfi%(hjkE*ME4UY
      FzX1Mm9by0g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b66785c3b5bf9a83a82b5cd232fb2fd4c0a09c61
      GIT binary patch
      literal 1577
      zcwUWET~pge6g`V&q$qMBBB79`32h+Q#EF`ck2WT4%~xaMkPidX^1`g;1&hiOS*;;|
      zrTGJSZad@5v@>m<`+NG_>0Q|-(9jN=k#=?W?zv~ry?6io``6zA+`^iP0fyOKzRzEJ
      z$w3h9czYq=_Ub$dd~aTV*Wx&w=W@L=*_)Mp6~vJVgW=-QjpcfxB==Q!ond5>Cy9{y
      zCs_;<UJpfsfo(EabAA{^f%=LelP_#A7z=Sjm^jNYbt)=0au_o40mG2?_d-tI3n9gG
      zFpP5yqYaS+QZ&ka1~tW1J4xeho&k|_ki{VFuLhA=ZMW(|u4#r0ZZ-CKxWQ$h|9i&4
      zxs<Ps48|Oc!XnP984%!|>ZuqX7q3Ktc{+P4<aR7uTA3^P6w2cV$`kt{QeM}2NzY4#
      z4GWhU&Teh_ajV6n#@3ci=a_Kt2|guBcZAyDVVk&K>*1uL)RZJ%rNR-@llrdkRmsLA
      zu9=wXW%1;&4yKW3I78^QxGjBxKc7DV%)|_>993eacVHU@6dl~aO@=JNtXCK=_aKg`
      zb|_WJ!e<P*i0=nGT#4twPE*<V9Jfu(G7SGawu3vkOBoU`+B~F$T*$vqudr#u#upC0
      z#C^(rA9^|V+lgo_#H~HbXTG8}o?~$O>s7I>EKrr&earfug>Q~{EXD`a3G)nN?_wU-
      z+>(^Bw6I9Z)S7WSY(&#)LJICTCz?VE8)Yo(V*2(!NK<2E(~K}&`oGeks`gtAUAgaJ
      zFqo>VEA>S6r2LS}Ks#WVK3yG?yWOpX<v=&a$noWy8ie$zM3InbLkdbs?pX0-g6cLy
      z*AE*W(@jXT3@n)RQl+KW5`%uuxpoK6E11S>7@1$-{zS$BoTu+#>Qcvr)S{o!!|fi8
      zdNn)q1|Och#pya=92YeYe1uEA&3_S>ERAx;{kVfGkFR%d^(_jkH#)ff7WRFk=z1O8
      z`Vr2!G1$Sq*H|gKrPPueH-^pBbg$?>=sOvyWvb|Y-M3h&W#nhLuaNr<<?r2vH(2`P
      z9n-sXy8*kT$PXAoh%rRe<S}NjhgrP914t|*!4oKahc-A4$oeup+3ha--pTarAu4n>
      ljkSVD6k!NHs(7q#GHha%Pz<s@O`|`<a~kbbKpQn!{{R5vgpL3J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarBorder.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a85d145a5700f8fdfea2e8b47e7bf67a3c15281
      GIT binary patch
      literal 2132
      zcwU`UTXWM!6#mwhR<<k$2M|q2LbwEC;}n-tOo<^t0s+%N+7L{+v=hZvY%z-DS~8)1
      z?sMOpw?5^Chqe!4rk!Eh*Zz#Y^apg>>1BF3yV3+FO=mi_M>^l0J$uf#-=5WXe}44>
      zz-hd%A;ECwvGv4yS_;-2uUTrl)=FvF3Y>arTD%v1-<`HPcdKJDn)W*lyQ4v2$ccp|
      z*P><f%a84PsDU#K_NH5w(WPh+1NT=}0y|`2Rfg=0?**adg*D6V+DT%hGiV*V*>$as
      z7!o&r!SS4MiXoXV)EJZ*zhUc0qTfIkeGGf%9M8VpU0t?2i`KGhGwhx7>y}%yI*u5}
      zP9<zP0mIq3|FP8yRcYE`G^lz+pE8Z-WvY_37M5oG)wb{1URWu-bVh*{4TB8(d#m1z
      zlj|73kbz;0F!WLW`Hn*=tkCg2x!bA;7&UMhM;J0rFzfnO8105;A80s6ympk+aTLde
      zGABsLe3gDeG*%}HyU}Gxgv$&E=62&pvl+jaQ=bz=8qBw?54uD{Z(EKRPIp(^BuKGG
      zkn0_*-E!(dMKGxLR(AbPrBKuH8eZ3MnxX$6YYd#h8w@E@M26FW<_kMhhy-N==kO*)
      z23wK)^1IiXG*A(eq*ff)U7$WCO_~(G3uBsjO3#P%tkKh=)(M=CXtTMUsTtJ3dSW*y
      zqSdt8WS&T)*8Q$0Dme5!CJ`f*;tOzU*S`4|=?b+pZed=-ZBl=Gc>`}_hKk+0QC+;I
      zgJHqIt2ia%7Y*DMbISFFEB7g6&1r<R58kq!W{ZgFcl>UrZqGWRmG*7#{8OR|gHiQ7
      zyEEfjL0|_O9x)vMPZx*o^tP)*%}d=%kBS5iLPLshTHI{tG|u#l4H-jsnml{RQzFaA
      zswbZ#_k|4EOK&cm>i5`3*oXqKA0}DqW4sbC-lRB%?Cs*W82A)Z#cwchYhn`zr|5NP
      z9ecjU(fca>o@4Cuk#*$cIHyMrF%Wobkffi$TP#ip(&~@U)SqCeKcip$1q14@7*l^k
      zUi}?s)ju%JAz7Y`n8Yjv8b_XZ8YrVcvkCOmm$*n$2%#o$B;LbBEI=apZ2RuH-n08e
      zoHrp(KU&GEq)8w7R*Rb`O{R*2+9okFd8?e(#9L36Gs9(L1DDLq#~G%!*P)GUAUz^t
      zmde=;94MNGnKik|H*ubTPF^zV$kJzj{XkRcrLsXr8K&`z;$VvMzdWKcog(-UI3I?=
      z4`DAK#Q;ByA$}A`_%TfK<Cx`RxJ9@|z7;+Wm*?fCK8c8LiM5IgxF|QeiYbyPA<-o%
      zmOz&YDH2^Fq)IeRh)Xn%8R|KXCaw}n5xa-DMm9}f*1MP`q+<vRxK1d8L%2cz6vTIB
      z6jef5s(ce~#j+;lO2CPlsv(+cQWN4HET_!WIwnp|jF?JJH@Wg9=APpn8Y@etqAcao
      z<ZF=k4tY0Fkbx#O+|EE#RT{Z;9QaaF*>C(DG=3ggUcr8T5rg~^3j8wl*;Op?YiRKs
      zQo=_O$t?+;xZea4VkRV-iY0WUn2JQTSV9N)q=Z?LOLVA4xfW%IiUW98vbv84WOdo2
      J5Ah!KzX9(Ns(%0g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..041113523d3677304b995bb0d8bce8bcdf082d0f
      GIT binary patch
      literal 2107
      zcwVJd-%}e^6#g#cvL(HxkRVuXC`D>RpxsJqZ4FjQS_&AT0&TTgb(3Al;%1lG-B5ML
      zC&#fJ9Y@C>GktN?QTyyni8DSp`qBsgD93YmH-v<YGUH?t&OP`1`o43{<*&bg`yIeD
      zct=48!^I74OM6%K?wIzvx@l=^YEkpdlA4phtBzykH23=4Xe8ww+b@`&Z`g*bAjZ%u
      z-Bn8?=cVF?QSudZF$@P<?T)V+TZZkc(oHkTr|!$p<(Exw^bEtv!oDiVlFO87oBkz+
      zOnRR_V>cLLc}F+8!Ei`G!GSnBaaf=my$qdcX>hnel`U2)MZ;ayik88UC^#j}x}mwI
      zJV(lyESMp?ztrsrBM3bur?TnT#L2X-8#=>C2&ElYSLBf(#PK+uP;i7H^{=J^PvR)U
      zfpx>rmraX;52VK$(ew4pSp`E3$=xvKb5-AW>^M>w7C4R(hHeUzb6j2aDiy`4n->GU
      z8eV6+F^Z=ZoM1SyFKPr%BF&(LQHavV!Xm4_X{ocCSN0|0**G$oP%s{q+Hx&$3a6=q
      zn^m9TLPX-OG0g7OjO|s$sq`~~c43mC&-9iZ%W}31H&?HW2IQ8sIVbQe&Qm2`os?Cl
      zZp<*4ZpX50+$b&xT$G*zyF3>iyY4Kx%L+{41tP=`86x8*w&x?}sM;4Xt>7hw{&x2Q
      zIpk?0sd3j_W6f|~Ltio9H(KW4vRN@~&vfjdaaROpaFs!nv{Kp7b57OP33z`ydzqiQ
      zH;<QTkSWWOYZ6e+r@MfvIT>(4U=d41XBe=_h6NU{2rOfTazuD%oKn?mJPbpv3(<5>
      zMO?>C1+=$`y`&4gir0t&P1jqZ9^bQP&0*z3z=*12|FMo_Rjf~J%l62-QWJHJVW66J
      zHh<ZuQ0sL$9YukXoQ}Sx>2NEWC1KK#uSqybH}Ggd6kl<wZpoN2<>QoWUa`}%1ZwJ>
      zO{RHE^E`u^nr!nX(XvzT=*z)+d*uU3{~J0HqX#lh+JkgDhYtDx@yz%(MCMoY{6eP=
      z^wDn@*?_-?1j$0m<dsA}{Uwqx5Jq4!LnrC(jn^>vCsOw@BBei&T9~Ne*drt}4<R1n
      zsR?<kVeF<n*Pz}<pOmC=4QC&qr*V2tilN){HC)=p<tD}KHVV>kA=F%Zgr12=tYNhQ
      z;5-fyfDaMpA0fd%#u0uOWBe1G<)31je})489Jl!wu=$tp_*eLVe~r8Rn*eZzXd+M%
      zU@6_g>jXK0LA-(6l))nk-o#rZF}z);1K-kF(lOgWqx}ywdIQZ6H4ywe9OU2QDE|Sc
      s_>Y+6KVgdhjH~=XQ1x(_d#CEzsOrg`T05{FL@dJ$8cK6bv$}!UKO8$KcK`qY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarDialog.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarDialog.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d709ddbfa7564403657a37b18c2360c32bed8bf
      GIT binary patch
      literal 786
      zcwUWCO>f#j5PbtU#?*WiNZRJR32BUx>PA&hL_Lrw5)sNFeB2l6kgbee*-qPk)N`eV
      zNImqJLw;1$u>mQF9MEb<yR+}T-FdSQkAMFGI6_TDg7ERH_%420!4K&Ut#6LFvic&B
      z1FI3mj^{ZI;dh&r>FQJp#~Z3h5lT;q=d*(q!p4GPw|Qv?-i<%72`k~X3@RT8hpnY<
      zt~2FWx-$GsFpVWS)gB>r;(f6-5VAT{q%%k&uR}wDkTj}24Mmhyln4h)Y3f+T8bJ*w
      z3BuakTh6DzdIqntuHp@${M@;Y4Q#T^&<-!ei2W!V)mX@K1jE{)&**v@+XQ6z@w+<S
      zVvh;IjIe4f;-h-=E$P}9H>1AocSPS|WU=K9gwqqgjP}!HD)OK3X*nn7`_8?{wBtUW
      z$w;d-4}Kp>67;6)+Wv_ng23jRvU3vH<)V^26;PoNHHQBp@zCOOU+}Jn1P`EM)^4Gj
      zcgUHwKX^IDt9xXpt6xxxTVw3}W?TaM9CNG+<qnE+3r!iL!a1E4SqBGr7vm1&XrPLT
      Kxoi<kB>n>#zsTqS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce3221c65141a0588bd31e3139bc9820746f48b0
      GIT binary patch
      literal 1147
      zcwUWEO-~b16g{`?bnGxfp|u4;L@m+}WbgxHEO9|2rl#sbWNGp`ec+HXLpoF7Z<zol
      zE?k(naii}2Eynw%BekZIX7Xm<JMW%zKijXrK7Iml7Y}vB2#@!~p*XhuBgfsf4%%YJ
      zY6{=6tqt|w^1Swj=)9>HqTQxvcm0Or2hx=t9SK5O@vXLC_N(Tev;!SU!d!@oqrj4f
      z(haNu9w8aLbNs?8VW}~a`zlk`9oGq-5X!|7Ii+nvqUN<^3WUohbX+nJ$ApO#(u8<X
      z8B8=BSHA4-H)Ur_G~1Fe)$nZ5-WDB4og*-z0w%1F=6YzgIES$v1w0e%vPGEhCGu~T
      zo~kVeZ(tf%b<7ZE{%dAp7IOr1R|Yk2|G;w@Bjk#uzVbO<O<^7jI<6BIN6Ny)4csK?
      zK@VWvf$X10hE)Rv+}5#3$PT+Vv4kRF^6wbyZc82$^2K3smg*|fvWW_odA`D$$(Fj0
      zXjJFLO_{x*er#cLK*RJ2sZg`w`CKgHwb$*~a???5&J0#yMX|ZOb(i~BYYX3(JOtTc
      z-Q`;GNb%A@>9m?P{*A?v;8`;m9plp@#P|V>a^)0e`2)t^^C^Z&g{d3u3pDLBrub|!
      zN1+*H`AfKhT%_`rRpb1fuACwNqI|+iyiRa!`3$#CQR-`sD?9BQYko&w`w{9c^th3(
      z+TFoQ7<C2~R+&ls&+y0BTBybT`=Ut|nD#Ri%k?hL#V8Vs;a+He9}mJLxEI{eH6(rm
      DfZ-SM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4eefae595bd6527f12063482ea57be415e30d8ee
      GIT binary patch
      literal 16635
      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
      QQ=&(SkS_L6`2e{74>di@od5s;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolTipUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolTipUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c57e7d3241384f034ba829fea604304d968fc46
      GIT binary patch
      literal 1514
      zcwUWE*;dm~6y3Kiq{IldOyYnbQ|F+917%Pu2p9?rDi6M;?WKejlA5H5pQ0~*gAans
      z2ba%&l*@C|x}b}SeaIcoJ@=e__SrYTet-V~-~rYo1Q@c1`muhZy6+9EqE=0PUoGmc
      zQBs%1Sg>ugU{v3%k8eA6l{?;t+<|UY_?m8&P3}ktF+@ZF)g-gJRXpS+PeLcdsBbND
      z-E!6DyPDy8+~N*Hr*~ku<I@aNT3aBpbY<SK3~!Mk5o_~Ke2*cNv&*~-4A&J%2+Ihf
      zM?n`N48fRi=+O*|=W9nr?iBQ*$r+-WUDC}x-7&<zVGIet3=8e0Zp|4L(OqpiU>K_x
      z(~_>0V{Um=g^ZiHC1HqR_-bDTw{eF`s&Mb`X<k2~EPb)KcHXO9&mr{LFoqc<&!~F*
      z#FH_C`w~W*np$^MFotpBpTDc=CUMXoyAZ41_iX%a7?Z@(zHND7#2Dm#+u;?*u32RP
      zKcOIr6hjw5+qG*>=@O_$APE^dxk&OxgH;)6Oe-W_s!*mdWGeW;A7NI)48zD(tywE<
      zY6>3X3H6{>E$bfN;Z~VDLX7EVL2cyhqpEEQ?k|%jB*O^&$p6|#WQbl1Ib8}u+9TQ-
      z2DDa%imRd}43&13-k#e(R4D|;@It%_nW(L|XVnm@?`;l{5os8db&DQx&eUC(yAoCz
      zCfdqR(rJl+q(_X<*8vuZh-XSasUQLZ5LvI$ZiaRNn&m|DE0n|;y1&pafEzS+k`M3_
      zQ5qG0Eu$BGG*dzhG$MQ^?+%)0lcyNmOhxaW;@&6pr=k=7LP<rZXz>w)bRPeSbUu9w
      zbuN@13Vp-F^JK#W57?kkuQ3RXpyv_87Bbi-kUKtznR=oI2(fyKXMTCpm_wE##R%v;
      t7O2P!!Cxd>C;}>XsR4G9e1f91MDh&JTbCN}zh!^Skqtgs3@dnrz#l{Gh6n%v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolTipUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicToolTipUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54812b35a28e34e041f048e1aa02d21462e1ba3a
      GIT binary patch
      literal 5073
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c9f340b943bacedf8bbd6bf2d599ab08386058c
      GIT binary patch
      literal 1001
      zcwUW?%Wl&^6o&tC(wGFN3B7Q?me3}l!i~fN$%q9O7fYcawUqV58RDtjab!<uc_%hq
      zAS4z%01s7h#xbQuks4WJpZU*xXU;$4-zPtR0qCJ?!(wRd^Dq3!%?_m+x#O6Bb_YC@
      zq5IOjcT*ug2CbfrGDFj>bYo8I-VgRgsBKgV^)DZUiDIbeNM@}qs@=c1xJT=sOC|LS
      zhK=?-KxdDk>?cD}1w-9|jY~C@&~Q*ilcCf$3mSc?#P;N1Aktkvhy}w^KM8rf$5UzM
      zg;+MNGOW+BZ>vYG)<;4clW&C_MLORsU~mfclN{=Zp*rSL>FHT)PA$3oP`iF|Fiw<E
      z+WV)yN%=UEVde#aX`6)%E3*hnjTn|^fRs6+L2a<F47HtPl7`~7H13*b+J9n5YBf+w
      zq<+k^Opx)$D;35`My}rp9VJ5>>kMlbABKZAIt;61+@GW=b?7Hbr%60@?Vi6#O^j>6
      z4_rrH=UmPJ9=7NzOEeb1noV<~^oN#dR8b@KGDXi|(F4@FkH5p|{=nif%`99oTAm@g
      zeu5>69Ey#)jFntp#nqz9CVfrLDt$YpD@Iwg&XCqAd2J5To=INEje^{vv0$|0|G;_<
      wKAk2D&_p+JD=)@y8+Qt8cX5vn$VB%kDpUL*ueOGVxz%ZNpo%S+qkDvnKXz!-9RL6T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a396b4ad2e54a894178a9e18f79dfe9f85038769
      GIT binary patch
      literal 901
      zcwUWCO>fgc5PciFb>f=VEl|pLKO!{^5(Wt&BoGIzASy+0Xz3xhjWcbx+S-xr7XB6z
      z9})+C0RI7rGo0awm`N>BD3HqXdS`atn>TO$@yGiQ0B)n{p{8(WPao=+QSrj0JJHbU
      z?WnH{lSGeX-OP!euQy||wlgqgmOs(yz*6qPRR{$cS<Sd-{XI%b50eVb<9u{TX&L>3
      zcTG`JO1Z*hxoe8%Ew1m57jU2JADGmX4;5Bhrva>ODY$VqpavAq1n^Mz;b0~}1EGS`
      zl7gA8N$KgqexLG9-M6GL*Ub`bw{&hKu9B`uRk(YKz9*ex>C?ms#%z??a7Y7%<=;oB
      zOxk55sUv$<?_&X%JY3}B@m&L4#uXkX$@YhqO6nZ-W7Ar_UQZ@fJjV4gO_`t)8tXJ6
      zD@y&1>>y9*u@N7_V=ZqAmqM_f@@>Xe7X`6JvnR&K68rD)I{_7jat-|JN!)<X>l8=#
      zP~!*i+c(}IXuresD~@WIm7JW^KVzc)33D6=jFIeFoa3*;dCXTVG29W$RQojo$8q1{
      y!k;u>;Mc#7Xy%VfD;n8d#Wf~klm12M{Dtrv6Mp|MVGWBT%o3JIC~2{P6{w$h>e5vJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea7b7f4181b07fe7b02c02555646395d704cbb69
      GIT binary patch
      literal 2143
      zcwUWE-%}e^6#i}q%_S}+P?{pN{75N;kdjiYR;egpD`2SDP_!uOl3eO`!fs}FLmg)N
      z>QtX}Mjh+;;2VyPj?R=+TXposc4~F}Uwl{3*({I-DxFOB?mg$+d%o{G=j`2oZvG5l
      z5GsU#z|bXqMSnZxTsF*$sX|^~N-gS+kxh;9bJkYs{ABmIwOp`FWx5l(nae9XgrGnN
      zA57_&-IQ7(S86k8G^ZC_4%#Dds48eQ>l&7sHXK)($`+_~jb&c<r7K~~vT<0T&dJ(V
      zK0l^YM9X~<Q<)79h3#?QGMw&X0^RA|$#DEB!!+Cxf!_GT9O#=92##AhRR@7a4Ua$z
      zqXzpl)T3FTCe8s3X~R@!i_443p4AugN}wriW%c}=ZX3M!jX{PgaN;5IZd09*@6B%5
      zrmYo~6Nr@=>{N!+ye06A`k;moWSHLCHFTg;p#GwA%Now;CIM@U_w6JwJBP!Fp*w`b
      zlx}y}8ji3k;bI}DyDDR>sxW%d7eZX%zymU9NT6S!nJ~>M+cikH%vR-FcZSBbXKqI|
      z)FB*33WFg~6GV58)o>g`)M%VT&llCCGn%_pbX<z^YB<j@PiT0YkwhtK!m^E3%XBNS
      zuz)8uJn0d1T-|nO%k3*j!H!)j!AB|tfAoQJhwu#b*|vEIV+5nzb7KOB<CE3d?w>5G
      zJI6n#;WW;0X62q!1*N;xe8Kp9**l?OlBv{sRO+b8FK9?(n%k6WSv{3gTwrR37x7XE
      zGgS~hr-pOL(AbiCGrCQvNJ+nV9@24^(_naEoab9;aGEN-zFvfA$ts%E-l9NVk=`Cb
      zVm9a=;TdHwS@tr|LdUjQC~LAY2uyiF!|O~r=(rZ$9ngv8!T&o(+GVVwomFQHp5I7C
      zrw{Nk0d3MGM&o(iaTKW=sUBN&QP<Sazm}dso<sWj2DxW}NQA#8w67(9J@(SGfp#Ym
      zpdS!U^sgh5xPhkcXcxeKwy{TEL9JXxl=d2(Ve0|3&`N!UR{xfJ6j?*-V&Xd5Zet-)
      z!lCKpZPe2~QbN}nrV_~#de)I7OY%3*L56`(ag-g8Z91BL$2CG!!V_y~+`J;hhAni*
      znT>o0A$b*=d>0Y<9$Mx5h{+EyBtOKk{0M3JF*5QKEXdEG%g;R)on@px3x0bF!^A_Q
      zJ~@S_>GmLxozLt|PcNXS%&awW3nLdAafg(8b{%bO4VEy@YYES9p^MTv$S(-pmx#)*
      z&@R8m5&2Dpjy*ntAb%zOY*)Sd0Rtk<w69~TgtOCYkR-|MG|3ZA{)*mf|NiYQWc~%c
      z>Hcpwv&OjM@&*F(d(_JxNRyk`Piv>Vg<kn1lJcht4F-G!0VMG<G3UPM!YjBy7J+%Z
      z>Z7{i_sC#%?P5%uK$Y3Q=2t2qSQvUFx8!K2W`w+hMtK)4@^^H|d+3pWpkMxpWAZN#
      eRJ5FAvoM2rgXE{lf$rV2h%C7MXjX}64&pys7Y2C%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..78ea5ad8ec46506dc110f57eb2131af3b3c2fcce
      GIT binary patch
      literal 1242
      zcwUWD-A~g{6#t#EQM*+b0|7;b;(%^bDt;%Z4;WEQqXv-oyX^ucwIyu_{#zzE6CZr^
      z!9U7)PO0HT0%YlK&$;LKanC*d{pZI|01J3(AV+X^)Smj{#QR>b<?Q-u(`l*LYdcHw
      zzaDA*X{ELtw!86L6?A+Z8ORgL0&;xCkPodL-A)Yj6K<wiwVyb8PX~#U!dx#-bf6<b
      zf3oexwflscd$Hys*FX0HFL_Crvo8avZxHgY!j3jUxN5<`l_L5uXu(98&}U1*pz8(t
      zefM)qN9(HPYeK~h+sfZiktcDM%!^gR!X<Q1G>2W6HYI+eSf@j%9$G)$l-Kggj*Dz{
      z+`@G+I1uSwMkTIRoz-xkKx|~<95}&DwcIdHOjL2pz!YKnV#^k8V_FW$5n=emA>T>K
      zVi7gW8kivr{kLgh4mM$AOQ%-Xw9ohNg~3OaY!fE!`UyVKa0DjXDR09<6L<NFm_U+C
      zVK?YVv+Z+$^`kzlvK$Ydf9P`Ff&-o@BkLYv%s#6&oerP<{_E-4I)vg{*p1qH*^@aa
      zAM4t@pa|AVz|;K7S8=S_wRQaZxvxBE{1iatvP>X<XnBrJ$W50xdWIbTfMTQh4OZhj
      z2EKBX!;s`;$1I>==1}3-VvJ;mF~Te18b&jg7rY8fq0z(GX@Vi-%}PozdRUYZ$lDD}
      zFqA*l%TZOCYU*4n$na)Vn$Ip(GmQgS2bk>Pj@$f&@hr@iW)Jlq?j1>0xJ58$Q8MQ+
      hXxgZm^<$DVnPiCt7w{l;`!K~m!sFDaoTrK>pugn78MXib
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ff4e3b040de048b82cd9013c61a1676a7c4e1cc
      GIT binary patch
      literal 2114
      zcwUuMOIH*}6#k0oVW_4R<P{Mx!2k}=QR0ILVz8AsGCX7u4N+rFPsubi-IMM{U}YBB
      z<R@g4lWdZW8_zM5oGkJKvdj-ka;tm7L!yu~=k!$7y>;(*zwh4q<FDU-2XGNy3N;MF
      zYvQ@s&IDVwyP7FG;#sC30^7>mRNp0E%KO=#8M$*uxJ5_$DQFDs>Pkjzg&Fx=x?zUQ
      zQ$<k@rO(jd%d!-qI<i9Ba~WE4`!mF+;|$ym$my21MJ{ZGp*AepLC*z-p4`!h=zi^l
      z?b_ia!};`aF7z)mXr@<`90bw;hpr=mQwHkM#E?iUhlZT(%DK&rg7lX}!I2D2InNT#
      zvhZ!SuO4a&DnsTNdG}FAnCsT%&eBd<78yEY)CXC-tri4T#~E~{(82KDTbvAZ;Vgr`
      zDizgcN%&C>rj8GAE`@G}=IEv)2%0hri{vrzA$l0<LoerTN#7KKswQprn;d;er*NL(
      z+|flD=*NJffp(PW01bDQ%eamqjHEEkaO#lJKn5gpGeOTuQOrw6Mm@3UZACR?by8^5
      zz(=@51zII(t<Q?kDlsI}S+jpd#lB+TD#l2#K!yhcXz8rtZwS{6j4PL>!16uEA>)#_
      zYzH<esLa<5Oez@l1cPj*x9Nt|h*VGeTZJJ6VXPiA397I1v8<wQ+Q6r{LrtwH$%i7O
      zIDH3rQHIP^AqbTcIkDqyhNht6h^o8Dr7%N{e;j`UvzTKzL9iD@Seo|ysO+;;_ThYr
      zZskQu7O<GYz3S}#r;~v^mS|j+E+UAco8Cs*bERUYB^}3)J8HhLMx0aFWjsvb0Yl@P
      zHUpo5rn)Zl@}W<;-i#2RQiMl%lEUKy5n`KxFO)#Fj&xVUl5!LV3b5$NqK2LdW3fpI
      ztxQ-MI^ID5Ik`0aYM>8cAQ88z(`Ysqd>I5v-+J0CQeTN^r{}#*-;&d|8ve$8gD|3E
      zF&J6brD<{mU8Z+I-<x@KQ!gjzwM{@n61B9_kU|~M*r=W$+9%1Q9tM3+&~6Mh^aJ#P
      z!Jlz*;1@K$qFoJ|)tR#J8%XjAw9sDNQKzkFqknoUa5|2{^e7+j)nEnfzvBJt1Fv!N
      zHF_%;)SgcMgua2U&I&Gmi!)V2R|S{%mLI?RI>EYj?@avg_n(RXeQS_z?O~rp17V**
      z9nYba&*C(nM>oHRA-;&KJdZIt%kqbq<12W;AECe>V}n0|OJ^^*i0ZvWTv1Kcde!O%
      zKB0>1u#G9)q)e^kW8xN7KeM}ndPu75{zyJbgV7k}?T!kvbHf$PS8)HD)~;3X`FCh*
      z*Af*xy^`!~O%iwCBdNViyxgtiEa?aCz~CEHiHj~?Mlb&oBizRY9!5wf<1D*KM<XmO
      zTE$2WdNhiVgs+ue@@H5jy?Ut+N@P_XVgIWoE=QS3)IBn5RVe-<O4Sw{cT=${DGX~z
      Xhxq25A!@K5`8(Kv>N6Fz4=&h0<vroQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c3a396a76df62b265a3b531aeae0c46b7685ddc3
      GIT binary patch
      literal 2514
      zcwVJd-)|IE6#j16cDdV2DX<i_6x3R!-74FnC{U=<Z3~M9YD-(F6`Af{c85-9%FJwA
      zUVP&}@TDatCK`>=2Qg5L4;Wu~z{D4YM-w$M{)k46zW87~XLh^YN^MEZX79{7_uTKC
      z^PPLn-1+<CTL9W|IgAQ{#6@G;m`!*yrkzbpS;mFLxZ#=UL>I58U9E>wO(&eZr;izS
      z#?o#WA%PuyC}GU_2|cZCKM@!l$rw{U8&nB2u4Hh+@lD6>Gd*A1+7;O7X-lVlojGOq
      zyV~;v#Hc`(pEJFtHi4$TwL|M5`$MK}`key1n;+yr%dkKw>14D7MW7%NiC`TzDO6*#
      zz`ABO*w|;<`ec4`T)U@@aZ3wq?sL+HHEg&h%SB~~LltO$0KdyPq^Q*-%R$;YBe1Iw
      z`@b3M;a3Vdf_gNBu|pvCpJoa>u}dIgdP&Fj@{<fp*^EXg&xaKr!FGY_To6ED&-p*9
      z5XO4qos!wHN(77XcDqJ4%fOMzLP4il*boQ<R7``Ck%;4oFj|Y3V0Bs)p2Qv|k|cpG
      z%ZNPACLIy9VQ(1i0-NsJRCtP0mZsNZb44-{^1V;t89ZCiW=x-q1?rktKxS&%a6sW8
      zgT%7hPubJXg!Tq~XDX>Jt9YD24=EgG&}xtNO8PcDr|>+Vj=K6%UVDD8lg@i7d&IOe
      z&J0(rOCgDF%8=mC1O-X4x>w=oqWUa5ASRCEg+drf%kc=S-|%z2j>{L1`$k~zN?D{*
      zEz7jbWP*42cn3qDP&kQGR3?IEWtWq;GjwgcSAtswt7Yke3{cw|cGl7z5-(yfi~;J9
      z`*#&iV~B3oW%{Ssazx<_YpQbE%;x+EMllw~O9J)fZU=cC@=c3q)}F%4I7ihty*_=x
      z4=!a_-uIc1)w^btlRvLuU|gUfozv+FqBCik>4}uxGdo4CK%L^djzta9yh`Fk@i0f9
      zQP4p?vn*v5ax7KOm>ECEzAh?EfWVaJ8?Ilvd<Ry;UNZq(!NC;KTNswbOA%Q74`?2O
      zQ)IN*_A4V$szhCMrMlAy7<BS(TKAef32V!GdJmfu3n`nXe9|&#!qIJ0<pYqW5%mK7
      zD^Wo|nn6HqEze^5GF6ej8j98pB<&9@fJnUc25RCrQG1P~3T$B=@5nb$DPKpFWIn^%
      zt*E1?z&30zqMR$D)VD4mHjmnP>rFfq58XiHJ6IoIN6#hHI*JPNU4-R(Q1X35<p+q#
      z4+9T%1(c!(erv*G<U`=`lCOOM68T?(<dh&kDT5Ft2vLIAy*9+1H6WTx5dFoBqlJt&
      z#;>Dso^s{Hmr!e{3Xor*Mt+Gc@@^S=w1gflqF3-Yq<}75geW559>LaJN6T$|UVK|X
      zVh*3OP*OZShsKhye-2xh?RLx~bgd+Hj!?Wu4%5=pS!UL-a{<Q=hGL=H&}HgaXaRi(
      zD|f~!ucM!r;qz~zyY(ZSoh#VHLVWU-2Hs1*ML59=FBizNzF<Pm%z11m36o3w^kNh7
      z^A)zqudz>lgI@V9j>_*aAiu|m`~hR~N7(Wwc=Bglk-y+I`75r<-|)8l9k=8k_)PwZ
      zyYjDq*UkcCC0_3pc^$#4JXgr$7%ua~q?*{s;u4tUD^y7je$XlTAg*c5fNwe1JC0e1
      Fe*oHKX3YQq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee78f86aa9254190c75f1d2a5d07caa8648a7969
      GIT binary patch
      literal 2338
      zcwUv2ZBr9h6vzKJ<N>Z%h!6uop<+V~2^wqFswk}lD74|B73oZ;opDL7ur%4FyPN2{
      zPM^L+zeQ(?I(^ZXzUYVQ^qkGINlFIrMef7yIluG2=bXFw=ik5n2Jj)iOduj~d*5gp
      zFN^LA)7mW_)QsoF9m6#%#RVR>9Ic<OX4mY7t5>aqhPPr^)tYt^hzcaxvsg38Z)0a)
      zSG)w`0@+TUZfeUbw%yC7>uF0n0&&-FI2A3BD*G7Yg;y-u^#j`?k2!&JRqcAFWq77-
      zk+rvHy4jmVFP|=#yyFi|%k<_2_H$=(=q2IgXB`Jy;^o}Twm`IGSM>lWGYS&tB>FI{
      zpfDoPmz&w<Hy0HW=;zg_!T|auGPsn$xWMr7cnX&>K{TUU^&_>jH<jxt<;Z~4F!()%
      zE0_{U9|6{EPG=i)tv9CI%!diQuaL#GK!4SA4-BueCotLDy`7MuvT5n{Mtw&+TgFa}
      zsy$q`D@JYGa7^9@52IXNfxBlY)$vxOY71gqIzftns`IW?Gb`Wg>d|)7(XPwe^ZxcL
      zUDF2b`LH(?-47~T($RIhsh1tQ{v_zvmhY0~X@_lZ<8A_X1jakHKjHDIXVy&5)ULwE
      zxF>MIbj$j==j&Q%cpmrl$r=2Hu0bo>OVexXUUZDzUEa!it6EJKlEEW|dG42ymgugI
      z;P;;@Jmz-DbiD5_H6N#>u!tp+Td}RCcD%MAfoHjQycNC7XHKwZnV%`FV3n$J)M!EQ
      zbVu;VUvIU$ETV5wE?V_jHo2ja9UXInohWsy79FruGpOWl0viHXPwzI$!m)nC6!k|R
      z{bDpm`8LzXG|G1wNGAE-)1G@s;XI9lwEGnivIesG!Xbw8uW=zidx%v2`XSP@`Bxa@
      zVKSeIzQ)x*$S#5pXq+TA<Tzq-7z6Sm24xx}auj273==YgYh;tB$izhsGl0KhJrRG!
      ziu(Lj9tE-!n8kFUXr64?DxNQN#gzP1W+~>h&ri3kLVnz5(T&6PkafrR21FYZr&o~0
      z4ul91B1GH>5zB!b>C2&H6x*ypK7_nSlI~L)9&|8e$dn=TR>)kTnXOde4L<rEiC)wa
      z5^|9~)Jq*y6;f45z5h<sb)s$%b@LSJgEN-nTRQu9r<7wZWIYNL#=51oP`ilAy$)0?
      zM8yJBls|j{>KWNkA*mvNBJ~y{JQ4L_Fn^L4+{HAc+i}K86r@cl_yI%G!Kn0bSvD{w
      zn|@r?A_j3I{GSp;vnhGpuM>n%zr`3wDe(FY7S?#4eTC)!2l|l${RAa{Mv~@~{Dp%3
      j<_Egcf`td12o9K{Yw<a)IOAXVv@+Jvy0QZ6*o62G9);|e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..782d88746d52674a131b678d01d40e2dca6064af
      GIT binary patch
      literal 2351
      zcwUWF+jA3D82_E-vhC?2<q{+%RC-a86bTi@(pGLoY_OEtmQtdCo8+|Fy4}RxO)q$P
      z;KesynDG&PV|4H~)3jE+3?nil<Fmf_;!OVz$M5WB(zFeh$;{dBeCNBJ-}gIT9{>Bp
      z&j7mcv4T2=?rCjSn@`wtx;d377}{hat=W1eaYn9VmJpYc9Ygu7IIGVH)7JB*J)oIc
      zLs$y@3`eWI9kNcGPTP*9Wt>56AzyU*wM<TI@Mj1*Io<9!!q73eb@pDe@6%1)Il*u+
      z`ZNx)aRz@s<!k^$qly5696oGQq2L(?UsM`wAJk1TRGdi*YfMWUf??-iKBF1qnx)Hq
      zS?QOhGW0w}-r6ux`8%eBvk`)m-c1sQM)5ADr$xr;O(s*GQk!!UBc!1-L-fXKDI2f{
      zdlfv((6)7DD#B=HXcAf7A*=rUOd)Ry(_z@X7Q3Q#V@Fi%M+*Zl`;6r07+8|y0NNC^
      z5?Y%bRkWjn($IB>Eiox9OJqm&8-(JXXw@YuF!XXt^n!|mh%%_;MM(yPK9zIaCM6pX
      z#~}rs)yXQ(DqfWJ1#_;0EIFa#2)Y<{Wr~#9bozy1j0iI;EMYOUuj`;oRS8bDk$dr@
      zDqhAbvhj3E!PdE*mo8NHt2nNpn>xGcP(=@@<=b?dE;A|&YM97Uv}iJxlHp%daRMh9
      z8f5qjL<)l;QoA(ww6_tb(XZePL-UiZRGh`@1cq)83T=`hRD)fyR3qL%Qo#U2>y}uk
      zIFC1}H0sL6qbmBGiq?Q<bLvzol}yE+M70YlhH#M>V3iXLYbGJzvMzLW0rH%h@D@fD
      zj8KjLXQyHemxxYUmbws+)~caqVUp;VRZPf%Q9r90dRB7;r+Jc6@iyLJP&~d)Fa)B>
      zq$KM#ysO}PHCZdqRfQ(W%I2k2Mn%@$El7e-s+f|yz?`0Sa`JpqE{8ZR@5zZp1W_mh
      z<&a}7L-&)TY7@qEM@zoZKvoo-92G6*3p9Zw`B;h^ZTBHoz4x_QLdFGpucI3+)*dSH
      z)mnR-e%UDbb}23&%@?hVIH${D*;F-i4$Cmq)TC(=Wem->1&zH>%^8VS0@g==O020#
      zPHU2Uq)|{$YXj}NQAa<3$2&{3EJOW{c6Hb;b@GINiU7ZjCfcjyBegrQQ%1xt?DnFt
      zhZL`#bgS`2@I{0kq0f`{MLtJYS-FJgdV*43!t=+Jka7p<kP;3qBK8?3!oiSILhLSv
      zJnO^W=cUf_H?o9dA-}ij>s-O9Iz)UcI9HDz#nTRkl_d;cmg~4&C|Nl02wmYoJhFcY
      zS4y}V4!G$exf0TzEK10gwI%3x(S9G-u6XukQ`gFsmoeQF2nW8c;FHE)g5wK>_&v1p
      zuMp>7<2e5Y{k((`y5&{AjO+Y+7<>gL>1?X9$nWDO{}G??pKy!+g4_H7?(kpnC4Y!T
      z{u>_f-|-iJjKAso5C6l(eUdOIY|FSyX$Gd-i&f;&;`VP91(JNO^gb;3UCD++U2jDj
      zikPMD-@<rViqjw09C;|T4`Uw9B>Cn0EAwK2V)<NN5V-pY{e^p#dk1B1{-;~p0ne&Z
      c8+R-6cv5g{tHTY~^8<Y7YU$Mw!9N1~4*?8W>;M1&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16cb402eb8de6f63110b87bf42dfe3ca3dc34d93
      GIT binary patch
      literal 2241
      zcwUWF+fy4=82=q^o9rHerr6@86k19{h)vaM5vsPNU|T~<2}Q;0NpgUt%Wk^6fl_ZT
      zzWN6^&iIP2ohfnjq2rSe`k?=WGd}C6<LGq!&ThD@0pTHga=!cb`!47Ehu=H^@H9Tw
      z(8MsjBv!<ojJImq3z>=~<}*d%nWfB_`p&pg-n`mB<vJDV`fJ%mVK2xl!Y*6V)zHGw
      zskAc|ku%qeOS0r^Xk+LLs6{DkFB8?xnVv6g=`ytWi>B9qmZ3kle*~i>f5Eg(|0Rag
      z$%7~i&N8%QowAIB;SmlEF&)k5;E1D>p*g7pI&!8h^VQ{|bZ11-k_?HQQxev!a7}fu
      z6I)cM3?m2dyE{}AetRXtU^p43u`5dBE7JBU1s&aZT*G4wJ^wGu@dTcvd={j?$<2#p
      z^3s(Y%x#yb;JXz1Xbe3JhU+-~tm&DQqK;mi(9jpDXDG~Z68(g}yj>L*f$(T@hrO`m
      zql0sC3?QlDG{cGgG2$3RilKW&SY|mZN{g~Q<;r>Ky0Tm_?^4t(Fqr0e3TGJNKB*Oa
      z;S*;dQUk@vTq=6LD@uM&tT|Obus5pI&vNSVXH@k_is5iX^O_1}RL40yui-g{Lk&!h
      z^BAVqF}>++pn}Gk(=mbz8mOxM2Z@H`MNr?id(w}XYDvzi5}(6Gj!UX3HCI-IY5Or`
      z196MMH644By4X^3;~W!sg@UCr7b09W6@!h?s63*A0Wws9Yj~BK-EZJCoH~#h1CzL}
      zAy0jL0CA2f++g4V0;`jvQc)Y=c(T#e7Mr?1h5|$D@@DooIcD)1LyWSo$J(=3(qWJ~
      z<@yH49Nr`?Z%b=8zuQX6@7ok>Nm|ylw9C?!u5$k_$9oXrjAeK52(i7Q*eMnSQ{pIt
      zD&OJ#*T%peF-1(MZW#fM<f7`94$}@Mh~`2~jTgfbr76p%FM^To2I0O8n?{{N&db$V
      zVO1MeLVbiaRO&+zlE)m!qGhAQfy?2kN#Mnh7MM}lR5?~uV;hvsc-<`(Osa*%(7WGy
      zqhL38qT0I+TZ%z1I90bKCro9xbH@fbql77<t2R9)Sxb1HRI6#%-HSeY0GjF73f9@F
      z-T`|2n&=*fPG5s=!*p+=Q%?<TfTzAf`@KNskfJG${tH_5pOK(DCmlsSj4nFKDUO6z
      zSe_)CiT2Y_4M!)_iDNY!{|xEWeemWDoKoj~424IghG%PdVe9hpIzCS)#sZC$qHb|6
      zZ{SLJsUJgMBiDp=+)5{=1Noy7`I#DCUq?Qjcq?EIMVRl@P^??|F7!kHYM5Wgv2?-=
      z6uK0ZXt%zFQ^V~V{B0~I)K~wNu=ow_`tLZR|ACbLC(i4C;iCRGZs`ADL4Sw}!SRXF
      zginnYd||ZVOGCqk5yt~V$BzaNaO@4Ss^h5st>R8lr5~_{yFo?X4?KT>4+F&MS)iu-
      G2<%_z<Z3kl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..18e4350dbcbc6c724700fd935507050613bbe028
      GIT binary patch
      literal 966
      zcwUWDT~8B16g{`JEbT6^pdz9u&_ZiTSba0W_+SHpq<%yy@3Z9!L)O`5clr8RCK#g+
      z{s4cJ@y^m1t0vuSc4qILbI+c0XXeMxZ{GntMaw~nuzRY`)n$-gXmcD4BK08%RjT{J
      zOFQ-w=J)%J1CF?#>DauAk2rdp!~;&UtImls$GoS^QN)RZGQqc8K_uzmO?WCL4kih!
      zc{XHa(qOc<tJ91PCxprDM5m1>ghqF~o^8QD*G6YA2+dZJg2#u1a!15hL74X7V5)`*
      z%zCK8Crq>~V799bzdrjIa?(>_#Dw{7+*i?|O0<oK$+DG7*emegB8?L>GlP)@LjA_n
      ze|xrb&L$H>RV-r3!9Bv-cp)C{<AM0eBpTI3SRXNB5kc=C*tUy@SaI-3#1(*hShanf
      zOE~51U3~F-l~7@8fUq*oBB6E=pCx_X)wb>aA9l8EDZ$$}a(FtCN>i2{sTb(B=#uT0
      zw*vBgdk*9(lq9aACZj9SGl@$w*V>z(;kCbD=2MQDvpKusE~DZuVP0ZSYHaovZp%!#
      zgM}f>j?9*2x_u4r8h5{9neaDJ6Q0}3i570aLn8aNhI&rX$ZOWIkynvCi)ey=0XZ!H
      AqyPW_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92170ea3411e85446806d9d57bc56ea3554ff653
      GIT binary patch
      literal 987
      zcwUWCT~8B16g`&~*6wbhe2G?M1*^6TviK&JnBZCyNMlSu9^h%Z9dyig*X%CfU*Tt%
      zASOQe1N>3OJ6psWM0lB*JNMjs&bc!`et!E7;0aa?3=y7v5QpNEmmaC;o%b;m`(8(+
      zD)3(Dbvu#r?M6*+zK8-Dwz?`~;Chg$I5JQqR0r$VJ871PAnWG|BiVbE)>a6$_SG~^
      z#;>VJWzPw#_3ISm7%voz*vb+HHXA#Hq91o<2?Wc=Fh)!iP_|)UlrUZYcga{=Me_AQ
      zuOpLf(FrACq8$e!+!2Y=@!4fj+aau7L)&FDW0S>5^m2v^Qdo${QEz0jA16K8B{*l2
      z#Zl(TLm6dWzfnt{S-i<cZ`rtwDxsv(R-~nJU7_CCEnyaO2JR9Tu2yWr!9DGfBf{ig
      z9yc|lX<`921NRBz7m_v}{8rGntHF<K)X^Z6gTX=M+IZ;1G_(IRM=-bIgCvlzl%9TN
      zK<u(EBiI{JBojXrX)5_)W-b{z=6Og3{`6F-=r6&iA-*wigVz#AKF2z5xr<+5x=UYS
      zf6hT;yqdhjTE(#S6cvtd>KGQrF#+VKNlfJpr#aVexW~IjIqoTDj!|__V4mR4Ddvw+
      rJ`W!LAsN;DmX9gxCFZQw0FiS}<iN#Z-gqgmdyM5=9*>eA+5`Opq>1v?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7f06636f520c51277141ee5dcfc96770213fbb93
      GIT binary patch
      literal 1477
      zcwUWE+foxj5IsWzOR}p87XeW~FhUZPfS_E0D8wLGDW&A{z=PH#JCLO|o47k5TE6=|
      zRza-t!4L4GEPFyg0zp!#>}+>WpL4pWXMg|s`3t}VUTJ7znBL<D{4n8tvYg#S$>uwW
      zEcdKjVo5zWTp>1BBWg(>mbl|tMQ4ROrY&3zeul70PS~7M-)8qjPHJdj7	q4um5U
      zH3%8Ylfn@$LyOE?USymhlDS?+lJ?JAjwKg}BHBnoY>UC4Dw-kyh8qSnv<Bfr$Up#L
      z247Td2xTlsyxA{gg}cGCwqR(_6m#6(;;yCas?)EeGR!u>Ten}N-jJt$Q<w~~+8XLK
      zDy>{pMF2hM)o`0(=z4YocW{@X=YZRmnc}&;FxOnMBV1RQ>(&=4g>5Uqeggxz#}H7e
      z)+Lt|8Lm;J0*S?}CtaSC8UDGrFDrP-AchdpaG%btkqQhvz%YZhE94rNd4|4d>@tzc
      zQ(;1nBCa8J0sSg921fCaM$r@Uw71o22BQCA**<COn1KXn00RYnxFW3GyrllDs>ovl
      zlbBKmPbmx?HCV3|4k>+#84c46ZI^-uX4Q-ZT~Rp*5~Ow~4a_UI=86)x93pG3bnRm6
      zuN(%NW2Glmv~6DUgc&5Iiw2eyXed`Klx!hI+O#C05c_&@-_40-OHFY2+>neZGMdO$
      zhwfp@=AI{LxI60&E(YoH_~_pZ77nXBL|+eO2N0yEPSy;X=m!MjqsK7fKXCIqSxsnD
      zJ{8e7(X78iJJ|;1C~pTkX=S*Dt}4n`LRBbJ@go?%V|1(a2z{ev4EoC$sk$GXxF^bZ
      za`ra&kFOUk#P=Sp`UiCD90Ph5F+GP#-K_9;op4n7)!Q>HkOGG1XG*?Rl_V8G887Mx
      z@--}|pIQdJ08Mug(u?TVKVn#SF|K=<)8#o)$um*Os;DNUDmX8Zt~5=_?7=eFUti^N
      AH~;_u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dd367b56bc45435d3f51d7ded3cebf43d3dace03
      GIT binary patch
      literal 2637
      zcwUWG-)~b@9RHm4mUTTB7-gFb*g!U*9fdMb1ct~M8x+exHmagi?%K2MVtX&#d&>w9
      zCcc;`@=91Vi^kwgKocUAh*41z5MDIC858{ncr!kk7{BMVUAwJrJnWux&-d5o^SR&e
      z=^p)i=Q{wMaBES+(0ST8XPl3@<EAwlJCiX+V#9`Oregc$bI=juM7&)thwQBAPI;zn
      z)k0%fSsB(n?0Sxo@(Ol_y0qzt;-1AB7I|Z)+rE{dJ+W}LF7n@FTBf&`VR!gR0^-Uk
      zmNCd>z;np6E0Sc;dhE2Q1H)n+wFm^^!%`h}sAuqnBS~oq>F{Gw01f2bZ)8P~&YE;Q
      zg%u2eGdVA5WO9OGV|Z?bij$+mr-`kqxin!~qCb}%7S5nCoT1oI!cG~Pq~VzIy?Cfe
      zK^V3_0lQh^lR7?9mr_`SSEiqXj8GWL_n2@-Y$q$y3~P!EjBzg}&I!wl71H&}eU}uY
      z4eM*s&aiG_NIEuPqa;CZ49jPbI4oVdq>d3C9oR%Vj*60w8>;9SnJZ*1HZ#=E_6#7#
      zz+I6cmp;>Ry&$6K)UgfQsbj?1oRJ|(8^cvT%*i0pdsfE|Jjc)=EH~$f<Mz1Q?TDo5
      zn(CAI!|`||8N@D7{oM@9=CIPSN5#9s8&D`nzqsWI=bVuVfV#D@0$k4+0T2mcq-E`W
      zI=Zo+I+3(EW_V+LwnO!4_`+4hi$`W0N|j^MAOpK3zymsZ(N{nsD@>!29t^GFdEz6<
      z01nakRzU4N?+L4%L{>Pg<3%KB76@;*l^V01Sv6Y1^Mh<dzmB6gR-jB=iE$yaD&_eA
      z$0eZSItC==Cbue}08TIj3!D;$Y>hU&tm75DN-a|W&|~K;j}lZXABhL>n$okBp#1p)
      z7-DEHTdJt_rjAomt%lJm-$ObK>qtrT%iWY?XEO45(4Ou*Mt`g48&8JXl%35Q77cRH
      zQ0xm@u9`<Tx`hj_s?mHx2G^NxuO)Aww7LRMN^F*nw~(R419r|yi9S<8s;`*#EwToK
      z9=9yv^kfXz6*Ol{W?oBpnkL>yKPxrR<dq84*UL+nPJCpkgS-(qy`7?Wjn<})O}C(T
      z+{TiQ)wi&$BeZ;T9*s9thGu$(q!+&gKYtH({34d{53rKX*QzQ_ScTPq+O<%%8ntW1
      z8dYtrLPOPR{-P{|h5gxa6Z%c8yU*@Xr98rS5j_$OZOLQn1Xf6+&zHwDMK8JE84W$J
      ztm|i6<x+CY<ApqWqM?Jz)t>E|N4$UY1B5E`PO*Iz8Hn_e9a_oWsF6e2^3wlSoWeiR
      z(4Z<Bt+3{i)Y5z9OG`@`h1~C)!oz6jq>9+JU_^yOOR3=d(a`HE{GA2EiS}--St}DS
      zA~;wP*{n(C{*ptZzsy{ks!%T?sW7NgZ{%T=+vYOXQ`=ldkY7OqpFj)$5F7YM*v2Q(
      z#XrUY{t1Torx@W^Ve`*$fluLW{y8r3YnbHMagBe0JpU5E@*DV_e}%{VCjREPn8t6j
      z#r$j5%I~m^{2SK8zhw#jJsaY8*$DrEIs8X9&hN2z`F(bUKVVn+PwWPN$R6>Z*&qBD
      z)w&}z1k{S9)}>t<f*Q4f<;k{&7+jzmYZPPD#FO;@nMtjy;W1X=H0^w>mADmlL&z3)
      zPBB7bSLlaOM))Zs4RmqbdTC{}t}5zvfBKu`k)42FyY9O_E#4yO%70T}^+H$?Yz=Jn
      PJcF~e2368FIAH$)DGRH|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5af1b98b5467b0da601d77ffcafa146fa9800d6
      GIT binary patch
      literal 3035
      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
      Q&$saozXNvATD%MKAH$acq5uE@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..91c428336db693e10bb62baf9891e82e8f8af70d
      GIT binary patch
      literal 1898
      zcwUWESyK~15dMZl*ThjGAmW99pb01u@Id1oMbUuBr3j@pNd{SK-Qey9k1CH};PL8%
      z_k*uiA(mRj5Aa7>b|<MA2vn$4c8>1(zOTEd=g;3?ivYTC%RrSt&pkD#9!1@UrhPX$
      zYpLmIQn_X-dY-?dj@D!Stvn25(%QPL?6jpF1Ac)JAB<Xxj$KRM(<#rudV#&AaC%PL
      zUbJ{RVY;5SwIi_Jn=#$iLjtXd%JebvKWW;gcUoY7cr6Da;{yITQ3fEeNy5N}AbhBn
      z2p}Zj3$sIY!nE~Z_I^@3qbg}>fto}nrL1w~n7l4*`dO;Lku~s^<%yJsJlY$iJvTl>
      zsnThIwxuyFOVUMNQUn1sV26S20xgx9C3a$$K*OA}%ye9(W^{VU(bL*-bb7>mLScwo
      z4A>~K2TcM2RyE=&k1YF^s9{6&T+;O%mGTnmaVG2K@M1x<pw+-$s@YonCAOlTDfdb2
      zN0{?So&vQ?*sidAf^NqF104ce%8U{Rxnzc;XO(Gt6bON|R8Ama6*J#&yV~(|nnUQ8
      zIE4Drx(w_4nYq02h(r$?>+<PwvMDd?=tALw=*0;G#|4@yu}j2ol0@It-jMQU1h$4F
      zlZoa1665romN<j6g^J`51a_5Iq=+Bei1WB$ATF?DbuWpF=*tTj&SWTSb>T=kKlj9C
      ziGEz64$}{^%5qt1xnqQ$iiE)S6$v@QAg*GNyX)F20OMTa>k`8l5eVu>v(zB@)HH@y
      zj+U*tb1fK?ILc)Sj%2b<O81%Em!XpD-^mC9vfrlHC2lF#)f7o+c{`$+o&z8K*Fl6r
      z{3_5pNORI1r0+&r^`eS?K(M{zJ7oJ0Z2m^8Ds16Bw#YkJC#O(DYe{E#w-$9Y3cm0K
      zl-mWA#`bwg-*;@|aUQ!n7SNoZwk;s?AGrp8g3DlooJFmCfZfu`G1TW#3Jg5!M3guL
      z-{Hz!U8{3FC9Y@0^_;j~RN(4a3)kV*xn2_2E8==hTyH9H9W8QwrL*icMc~I4{U6ZF
      z6JK|p=hRP}6Ij5dw`eLb|HjpcQsWN{EMTZy>F7#I8|gMczC%F1N3;AuZTS&>@)KRz
      g&zO{7N>oo3RZkUES7AJda|1Vl+)bjF7!wfx0A2sV+5i9m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5c71ab6cb107cbccb614f29504070f3a972d581c
      GIT binary patch
      literal 3700
      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
      C<Klt<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f714a625ceeb85b3f0a3c8ee08c5e75928aea96d
      GIT binary patch
      literal 1558
      zcwUWESyK~15dJ0yYvQg6hhRihVuXY%fFh?LgaDyJP&um9r%5uvQp;{CnSlNve}Gj8
      zRa)hv5B?>qEPDb<0^xYb_DmmN_t(>%Uw^*+05F6l4K9Y!UB1sh#!CmLy&W%Dd@G*i
      zB{LVFQ{VNX5F4q85^KT|IcYlf61Ve~C~EL91XXa{;uN}?-6gw*28QlxNU<+$8LvS|
      zn<Xi1QDkV4J7y^|$Ph_iU&bW)PnotUrzu7BCIPWc22aAt3m+H^9U5-=;YL7*4?zZZ
      zR5=9FrY$n%y{ss%^Q<Kpn$k{=TbsOSs{5(Zqe^8Mzd_!*{i5pieQuRSVu#u#@(i(B
      z4s{xpR4QWO$35KF5Ml^lpIt}0A{WRxdj(5Kk<6Qty#46FBMlF!*Eh+k<1soJ+O~yU
      zweo4f^Z)Iyx!hssh{kHlmjqG4QRYdN?TL=aKa7kxxPaj!R$V%}5oPeH@HNRLb-L>!
      z?rgRsi##XO{F76b37*>#lNx&HsVW1=4`lo;0aIfw;YSPsKl%~ZFmR6TWnel6F+^2R
      zrE^Z%&eKCDqgT*NUrak0tEW^PpXqpx5j8;+&d^+gyR0y&U85M+Fvie$!Kh;bG(1{S
      z6u4<i>SwfWdKzVK<u%WD@Y2Cza5)8r_A7{zi%l-fVQ8tBl}t8+f6XZub7H|%ixRAw
      z#Q_yUgP*c#-4hlsl?1i6rQUv^lXlciKQCA?s8*H!q+E3O!B5}YbQ`0)i=@A&_bc?C
      zW8C>t@o7{#WidwJHHOhdcb#ICwizuX8SbL>6y-NOXdt=Wa|rziZM{c$utJ}3rmz1q
      z)|B=TPnGsNV(*SYr@jf#nL1ph_J%w^5je38hdf7k5%N|kyreiQaT)<CaR!<(3*DGQ
      zqme|bv4~D%2~m>$MhaubGG<858)>AB6>Jz8yf;>{WxT1-nm#H0l$JV8;Uy8%@quhJ
      nl}wv>MJG3Hz&K_xM|9^AMuJXWvd>rQNn)YW9(q5T&_%GnJ0X|v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19b3d14b96e7d8f472b8318e6d764d4951f16fcd
      GIT binary patch
      literal 1115
      zcwUWE-A)rh6#k|y>~_0CDL?X0g;lquvZz<4#snKoFvXY@iF!BP4lriBHM;}&EWU*a
      zV&a7l;6oYD>^4{e7H($F*>lc!zVkEt`_Io`03PG1fegd5PyB>`@#0e%9(tbxe&Drv
      zEPd~#KKCLa-t9R0YAGJ6?T%FBx8*C@3k~EL<_E*K+OdkbuTne1s5+9dv&rBzZ_ZLD
      z|K~E4>IIQ<ZxfLCcmXGmmWs%+UfE~JHF_P92SdTe2u3YramR*%F@|aP`jGLa48@z{
      zZd*iqyd4OJQnTmtV4p`)>-~>8T@FM27To^RGO95b@@|sg3KQbN6R)=-I_O1R(P3EW
      zGv=qt6DJ~6UJA6WW#XR4EanZ&F|6K9%Ekf~bs3~FOkOJEwRWjnSVq~v3d6(|qm6r5
      zWtch?swsG<B?6JM<?4uG$*o+%(>XjHrp*biW8*#^Fyv+2?+HWJt$frr*G2_Z>PkG=
      zGL=FvyF-xm_!w2QIIK@pb3l|C7KR`(Sgqc1<cn8Q54$+fxD6e}VDE&Xh#CQpV?lc`
      zbN!4_rrpcZ3uDEiUO<vE^u>TlXP&eM>DpeXu78JBt^I)gEpZyB)1n*Z2aK5SQ6zmv
      z>nLCXB_NR|F_i#LlPv`d`+!dM4AvR$o?~hELR|ZbvA$9}$HRY_O2|>BHVUSXS+j#R
      mQzRM7Db__s2kWTm=Y%;t!UjcW;3X)V^b^sHX#%u{Pk_JKfgGd&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19530ef625e25ccd8dbba182abad92ecd5970430
      GIT binary patch
      literal 1673
      zcwUWEOLG%P5dOwqTb7sw`4I=OF@Y#X5|53|D_|foMh+svI7rbUIZz{MY%f{wx^~AH
      zuK5?7_yb(10#TJijydFq@H0~B9&LodF2iAGdV0R@{`xWd&%b~E1z--13<d-)K2}fE
      zQ!m-^!*y>fP-|XGC4Sqx&1)mp`j={fw??$S9_Yok@uM&UN8tEw!^Ku&V%0Xidx2rI
      z;U|S}1q!uK`(GgZ4L|hFErDyr&oQtVFHnT2o0xzLrKW(h6m@hK0*54qFr336T!{=0
      z3k()Z%@O1Yv!XV2jxb{q<CqW_+1fTu6>MvPGsV4rcWEB99_zNTk&e{-P_JxnwshQ3
      zt$=LDYEfGSO%?lmPL&Q<LE!Rdq_n5TR1_y9uIzdbD`KE5YE{Q;QM{=;0w+`UYR7o`
      zi4Kj|b5voOSZ6VVuQE6(aQf49Bu?QpCqO5G@edNX$B=~_3Yg8{8-dY1ml9`CB(rsG
      zYFc&bI?$HN!)V90qM9QvWr?#mN3Hi00<BT7Vzu-uyS*Ucfo5lt>=(oKMilowtSYl1
      zaH3fHfDyCwI51yZX7dsk*~P@i6d1wLFH2m(RRNa(tXqy^%Wkf?Pp;L2!_DBD#C1?t
      zMvd)Y<>{6RJ9VQB6>p|^fN`nGY;Q{3V)Kb)U$zDOAhF1R$z<P(Fl0&M4nxM1b{qu(
      zs~b_%PkcLxg1+g4=7SzWVqNkmiK;+O**Lv|PaTi~Sq8+p2h93OCFJ4n*hbrSK9H#4
      zK6$K1+i_bj`%EamYuGNZa{*ZmLme*#DoHfGn*7Hvf<}^@(yvS8^ZdR^8YE2yBeZ7e
      zbf3<AKUzNf2D$QE$nw~cb6t$SBIN+Sp!F~V+!lu1N65MglcbxZJ2JwTI0{(l7><*U
      z(#CY^`W+k!37GP0<X+=M7hm6;9(aK@K2LX1dXC@vSLavy;@owI<^Mm@5%^LU-=(Kx
      zP8T;)`Ft1Or{a72E^fbPKg(R)-*LzdFy)4rbtBBXTe#~cXt)NC+#MwDGn>_=9^Zae
      z1{EyxzY#uu#9i_@O9iXq9#v$Xrt2q?9J;4gr8!q<7qm~MZ2rbrpV!KB3^^|cU-qdD
      cGt~XVhL%0EH1q&g?fNqw(w?(UXHbXu4|Y<YEdT%j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f9de62e54fa1d500c82211641f703825de5a5566
      GIT binary patch
      literal 2504
      zcwUWF-ES0C6#w0J+HJS@!m_1k%a=f<+d^4UDcVI8O3|&Q)V8dOicEJebZ~cOnVD^i
      zh+p{mXn3*8gNczwgE1s!6-)?f0>=0vPbS7^pXCoQo_l9lT3S9{=H7cg?)jbbJNL|Q
      z|6RNUU^70Bpo(G35p&#}OnMWReK=Xnn}?F4re|f7JJol@m2zLYRV^c~IWApK?#TL<
      zV@F^xw9IzhG3xoQne_ubLw(M2Ww>W)hFX8j@>(BaXzjmy#1z?Yvuw-X&d{B>7l*Vq
      zO6E;68TMVWOtohij2<T^>%ky6BB+a^8jCsV5o4%Mv}cqi&QXKfIxHpY0ka^ZBwNOD
      zAMR(UE0+9>nJ-C(w#57hvm|>*k5INc=Hh<KmII~2sB}ln(LDLa`<<+r&zP>I&Y{py
      z1!35F57{k109DAa39Y((9xlRQYO6u%9&+4*%rUGE@tYHVQjSa8PX-tDs(nh8Vl7%D
      zSjVvT?tnNR#CnwiofsPDq|m2KQc)z(5kWh{l6gvw4cN%A^sw~%rI{O+`Jhn-O@EAG
      zWukq~eJVy$xhZu@v9pOI3F@Rex*%j{{Q~T?&!;DXhZ$nGTGruF2JUGXgQiRMh|=@u
      z;@FDEs1fDSl9?x_ni31}y<a8T&5^=3hN$KBP8Ll&rwYC*afdVlzwI1P;wg%qb@F+$
      z=*gf0clOLgu@k!@=wWEStr<tJDzTsn1sN%!a(tTO8PId&TH}xPI3?THk0GrPJ<HLL
      zJ>+P4LyqHTEYH%-N_vfWFUO!l9P^|<hqpQmF*F1<>>0E2ITdV#V;?dh)20^&EEFAE
      zs-Q~~3s9u`@CA++v7cs$%4rY1;5@^Mg=?a<sRq1^0};G(%S@VU#qlZ*1~t(L!_*g~
      zHLYNba%7PUVGR4GuNrMWj2n}$-#q4&{2ntqrrQ4yx+6GD<L+MURcS4bBZ`^ETc5>{
      zGokc^zo7IDq$iO^ujCF#5l89C&!&V7=y@j6s#_B9IDExgRO;>wdLe;vjtM1h^s+8B
      zpc0Qb70Q{sQS{r)42DRy<hq*5<#*^<W#<$M6qp`U(F`06n<$w(yu#WuRM}bbvE`(%
      z)2OFcWviK)Q=s4Dcvp33bl54mS-IO%SYxwh(<XHzHF(;#rQ4G?Jx|i(jn5yUSVOa<
      zntp{<Fw`#qh{e=Tf+W?XsfU_14Rkt4XM@&d9UIPrcYKdU9V^abNk_b~vy7&5`i5ru
      z#+8*gjT-SO>cwYRBtAzA$sf>BmSH(o0D7mQRq5SItkTg|la-FfE|Mlfy6YV?;4@fL
      zM%$i^S7Dr^cx7~6#^!;}_#<U(nZigQ59~IU@%R*>s+^vf#%Wr1bQ{ga6@1ccl(F0R
      z0<p@yeN#9d9+Yxm8u`xnbNc2iISzLlf%f@k;{sl)LRU>wO(lX!7IF&7%57uD!LHh-
      z+RFL0FR?N_G}V@2PgB_{*xYb?GsiMYH!FF7e!mc3p+TI%Vlj=F_!=$Z8>|y&(I&n{
      zLVSlVaSpr059kvYuvc7!6hFcjmvBN{#!2xLPKlp!MqI&+xQbuIuec_D$KT=){41_$
      zR)#dw*DI`C$0Uwv4*tRGI8I1f@F(8T{Pdv>CrD=CB=+M?yhXcHBz>EBticS~yhFQM
      z@}}MlyQY^`M(gr0$18|evOPJ48slvB*-FC772+=qj0bKZuqwQ-zaQX3TBG{XwfG3^
      Ef4DY_-2eap
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6ca853bf960d7d17d92cf0c958de8212ed912ec8
      GIT binary patch
      literal 37315
      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
      Nat-2nU(F!z{{w25Gfe;h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicViewportUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicViewportUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6053ba65ac4c0ea2b3ce8330bb1953d326e9beff
      GIT binary patch
      literal 1238
      zcwUWCZBG+H5PpWX^k@$%1q+IA_=0`Wp0to?P!lOZA&tfWP4wHg-Qvk{SFcy`XXzJe
      zH1P-cql~lHqpdBCTrN91JI_4x%+CJ)^WztQRjfrZL0I`HK8r6#>%_DVjix0UMpd-T
      znz5<YiYZT;j_V!lL=h$|jbQr#!sJuaHofPBP&!i~giB6c#t_1kjtC|RiLz<S*X`q~
      zboWKol7wX0sR^qhTvPeMVc7d%wg~C+#e{7zv1zwFVOd+UA=;M5$xHuc@0Oh7rejOn
      z+sIU6n8jQaNkZy;jE;F+CQP-Y_ogX6wUwsy`%Fc{0%7i~a=t2RM~AM{w(A<M3<esG
      zE6)N;gz15R?Zt2%H>0>gSQxBccATRZc70n)OUErN6Xt`aN{;2YEfwQz!rQT(`R9fu
      z_;k;6Ie4KHH7TkQ7RS*NX50421#2}|3QwxBKOTSAqa*AEd2liCCG#JUAMB{dlGTw$
      zLWLgam_dRN@0IT&3>^=<h*ceT6(Y9hwB4HAHr4Z)A9^2or2)$f4?%sCyo>m2ls$tj
      zv5jOq(7y3z0<i!D<Pqmp?*iCPvkfazLGnI(6KpT#!l%3>Q_02T)$h30=SguMP~f!)
      z4QtF%<m`2yH`UDzc-8JU?l5y$H5F7?_n811miA<Tf_fAbP)y+-RsxCwV^oIr6ZEcw
      z`(KBco((jq`T2?`-IMT=(W**3o9iHx&7C6G7c=8u>L&MBVt;EuRJ<oD9*80}w)05y
      ViuBPi=_@APVSo2Oqy;~(_!lrK`c(h`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/ComboPopup.class b/libjava/classpath/lib/javax/swing/plaf/basic/ComboPopup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e9af3d4ad4949609d7828727cc6d51d2ca15494e
      GIT binary patch
      literal 447
      zcwTjo%}xR_6opR_89)X6!KKlSfsKu8mnJ4EL=z(mcb&09$=FV4htXGK!2|eE#@hxn
      z5MviTxxL>xZSU9jVhP|9-3S$iv#FSi4{i&k$2?2L8;^xm3BNY)v3WFEo<*oKbUemW
      zLC`}ym5F1h+KDL`wtD>$6%+L;85+utlvQymL*s=Z8cR1&miTV3KUlx)&L3Y<G!a9S
      zTj^`5<&5EUg>q3iF6UA^zCn=d_}4WwP8nT#&;Rjma+J`bgnRi}I#2#O*ZSU(Yo)Cd
      zX-e;ZzGY}WnS7SW8|DAoE=P9ZV`>aE1o%~_32vhXKgnpNbu@xDu@iI`dqG=h2kl@#
      O=z-@c>5%pcj(z~E{B*Mb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/DefaultMenuLayout.class b/libjava/classpath/lib/javax/swing/plaf/basic/DefaultMenuLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..04306b421206209c3673e3f03bbaa36f54472010
      GIT binary patch
      literal 601
      zcwUW>%TB^T6o&r+Y_*~&H?IrbK}l@fiZKz0Nn>>(%6@<W$CQ@zBIr};io}Hv;6oWt
      z3!;fE+??C|=bLk8K0e>x0UTpjMS`L9z#sY8@JG_=8$+A-j5haW$7qNi5AEPeIHAR#
      z+%Qm)VkrDp*WB^<k;1U|2XtrN2;U98j$lwur6YqghV7CS2@O69jJoRtTsp$5n&lQl
      zs_u4$h9p+gP_fLAvFPwR9JGaZ%iA_#vX<N7c8hy5%4fw?a4&rZ-TLn;RhlQ@US9+Z
      z`9<RplaC`NGZ}J2PxOT6iSD$!DWB<5ec>MEpJGD}gyT!ssYWYprIAO0L2Jejav`I^
      zi+?6NirR4qMlB3W^iK)$^cZAUC^M;^B(Lg~{Ry<!Sdb>Gkq6G9poTSy4yH1!BLl?I
      t1~v&2MOoxxEDbcno=_h3D|%&u;>(<>#2uG0u{c%CiOP&fUmELoz5u}Ii46b%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/SharedUIDefaults.class b/libjava/classpath/lib/javax/swing/plaf/basic/SharedUIDefaults.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..551e604207b42f984f79507516bc01952b3e74bf
      GIT binary patch
      literal 987
      zcwUWCYflqF6g|_H?y@Yc1zH91fg<#wY&0=3Y2z1+f^PLg1;aO|%g`>a-DV%6|H?-K
      zMib*V6MvNP&UB@vV8SN5vvcn`=bn3Ke*gLQ1HfIZX-F}w?(=v2y%ip~y^huQ_@33~
      zq3c+!E)T@+*5)Iz$73%FHDnkrNU-H`g1%_)3nya8g$no&#xQFuP#n3QwZX$~llSWk
      zdc*PDo*O-6NS7<y44HL*S7?}GD4fC@FfeT*2c03?P_#)<brTcFGURQyC!WV|+ah?$
      z+n!*Uv3-Yo+dOdPUIh)LF->Knu1lsW_Bq=mtLcuQzE;Ziu-R4=5U*ab$NR5KtMevG
      zSQw)u`7<etnAdQHp*U)4YqQCFydwfBdCkOiERmOfOkN(GA$+b<B=AOjkn=g!3j^~{
      zCXP8e4Pf2({D5Kk|5M-xk)=@75Di$);G%{a-H4NE2BYQ2fg>Kf@~DdA6JL{XERjZ<
      zt|g)6A=6(5Iy8D2CTV9O1^G;Uhp}@6^9%ByXq!TTzJ^LRXuXda6_rA{5i)g4>qPYk
      zvqM@|1qT#!0KgoIwCb{%g#4O(Nx{X>$X5?>$*%oEq52h<Z5gN?;_9o~$79VBX#h`1
      zVS_ZEQtTNP&{Q=_10CGJO;uwK%eX~VbgW=Csdg{1s#AsXPgIA>1GhUPZuLZo;kH8E
      F`3vBx)ffN(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/DefaultMetalTheme.class b/libjava/classpath/lib/javax/swing/plaf/metal/DefaultMetalTheme.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c91d728a8debb89aac753b6156033790c943617
      GIT binary patch
      literal 3433
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ButtonBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ButtonBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..caacd83b81cc56343c120fc5c55fdf616d1c41a1
      GIT binary patch
      literal 3859
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$DesktopIconBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$DesktopIconBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02ce3e1ae055de503f428fb4b5b195a4d7149f88
      GIT binary patch
      literal 1464
      zcwU`TTTc^F5dKECyHHk<YgOc?C@oa#1w<`gpa?brA3#Zb+_r~yW!cm0E><7Zc>M|L
      zKk!u_0HcYoCjKbnoNc*ii5i=nGqcnAzWL6aIp2SL{tDn6ZW%a07{6~lupXxTitQFt
      zWye}ct%<;LQVVLImR>=4{@{%8R|8qj=A~N=8PEs=d!e~7o|?+}foJ7|?KGXxU0305
      zc2W3p-OCGtK54slaE;IqPb?F(j4X&K8qjRQKqH}L-gd?9^|hSv?pQg85pDA_Z#m1B
      zXRGg8Pzy@7Pnekhuj8b-PEpiEXI)<e%rz7b$x>D&NM+<&S-Qdv(uv(*H8C9pq20t`
      zbPz7>i>ZUulMpCR=-3Z!;0Vk64G={P$5e~D2}V52zr=DA$9hckqK~`D=VQ*SiVc`J
      zp<<dNRst0mG;vA=^qdR=xu!xxCgLg-@$6zLAT+t6vfYT*ebhFWE!(X%j4=9_W6yb3
      zxn$@4bX8~+qd03I#XbJhb<In;I^`B-g>X!s*Yn&TzNCzF15Y|Lmbbc8vI??77>p<C
      z?>!?O>FrJ$U(*;a8W`vE)af!YflGu&U(qv+FZ7oaaVV{1kKu}mwCZ_d!LurhBG0X&
      zBB$?jR{rN9uSdLCBb5lzrBKSOttPg0??{d+IKj-iuJAIB<@>@nFiSZ35A)1ibrX$#
      zp2`MZ5q|3$TYgNuH}Tg6w!}6vyoKmTb`HSgJ<1kT;D=qrLH;(YNjQWSw#4(@S|dm^
      zG3UY<9-&RNeb}MU6@<JH-c?Ph!Ijs^F$#$~YD7;N(ZDv5{D!tKh~3lmh`xoR3-1w2
      z>Kiz&w*F*f11FVtI=Ne_mkB|SS?v?F(=&b|&(T9KaDrZ9h+c;h`m5wS5)w5D%1dCF
      znFu3D*2KJGG0e%8KjF+KE+l(8wa$oE=+w2sCNA$b>X4$PH!$cey69b4>Q)uHQ!2Jo
      tDuzj14SNy8HS~p&Vz|zp7J4_>i-g`3dpc)Mhm|szfw~mcv74Af<4?FSM-Bi0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$Flush3DBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$Flush3DBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e184e997abe3faee367f4dcd0775f38dcd7a62ec
      GIT binary patch
      literal 1822
      zcwUuNS##S|6#h<PS+=V-&Ei1Qy$P*tOiT!rP^UoZkk;T9NSZ+3DqCtSDoY;erVhV`
      z8D5y-iOp#TW_V&7egSKjKf-YCm11Wb7J068be8X&^Xc5{pa1&$TL3e-rDK3F^MQHK
      z+$@D1$6GJ8UGq+<Wed|SU6=POeqh-_IJM+%gw5H-=v7C8aCT={UFk~;^-u(6Lu|Vx
      z3CH)LuU41s(BB9eHo=Gjt6pe}kT6`6-X*gmN|CBeNX<7~$8*H1guz^XjgYALmaXG3
      zVQ7zc1_p)<9K|ppIUfh<xhh}zwKNE$26Uu2u;zI7jg3~_4sM!tmkSxG`3=)uGXqDy
      zD`f_QcuJyWIHzbjT;FW%e{;nh46WNSBinsm$n_ho_^r0@*`6rp59pp6gt3F133CU6
      z?8DfPnr52L7&wb_OsVkOoTVytQwE-qx`b=r5mIr%Ku#)>bzca-B~=9j&q|dRIO|P8
      zNPBi?yQ@QO)A8a?3Df^l-qpZtH=RaUjy_KY&*KFhGdu+QTnx<OMV<uavEsWvgOB9$
      zJJDHJ&fp^EbiB;${?kXQ`TpGn&swr=*T5^d#PljyPXxZZXa;vznx^G<2vc#2T|g>T
      ze}K!f>Ujf~!Go3xd*zMh_Er})__~1wIh-jgFgwe3L&%~l1{P%<qy0LrF}bcJSlX8i
      zT$T1r-!8GL2Hxyp$$93_xXvgCFwB-sULW$}#;D0yp?S}?;%blXEtc&os=p;i?v3G{
      z(>*PHdE-_+&kicC8HRSK<2}OUf7lv?!@D*I&mfN=FOAoP+?#wZX?#y3!<s|<Hj5<W
      zHS`UPTN+>YapX&ke9o!?jPX6gPteCWLLVWkwEQY}Z4ZE3mav8U7~dQA37=%2sxTvR
      z!qYgW048ue2AJcg1WkN_k<WVZN$F2r6+0f;<5(%3z)6*M0;gh>P4*e&XQ9Y2U*U8Y
      zrz2^yi^)hj-^KYz%6E}3_H&JMU7+vyAo?C-^aD=OkI2zaD)*TPwU@gP=ay2DnH*sG
      zIZQ`YP>So89E;)>N|*HF1H80_a`9v~k<~OSo7Ai=yvEuqN}ITyP4L=fd822^CU0w2
      zU)sVo#?e@kL48T;kLeuM=f1$~gMQ(^hhO;^{|zVTcTCbBxJZBEGCjm9Jwl5fBcvy)
      z$K|NzUXP;Jqrh9JDfR`f<DB9`;08+xCB4m(rlfaRO7hRcyNt(wd{|NS+{7xNhJ~<(
      H_mTb^MG%;}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$InternalFrameBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$InternalFrameBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9472c02b542d537b670e8bbe2669051318fe1e64
      GIT binary patch
      literal 2289
      zcwU`WS#uOs6#ni_PtT-jGD*yY5S9RmFcV@%j6z@{nhXX92ZV$~z%4z~ouo;pJN7gt
      zln*XH0MQrAXSJwuE4C~`74AOhzwn2s=iZ);BrauF_1y1%XFvDcuKD$kdk+8{f*A#8
      zIC9x|(^yKE7HxMXz2F$r>3J(Kob+k&JL37K<(GPLZeaPY;f(smycLpBC=7e+jSG@b
      z4;M;-Zxn-yn#!<aLyU>sm{szw_(h9B4-Io}$qGsgEqS4xHWq_)NM#seLq*4S?cg{=
      zLozkVpkzJMief86e4Vxi9dRAaXkk!?%0|&-j-J$HBN!gh5k-s)^R{c9xiVj{{PRY^
      zp+s8qUeRzS4c``fNor`oHsMX9n8B<~`5n#w&yG<Y@foY!mrAt<lC^TP-u!~+T5ga@
      zZPEi)WN6z=nPG5KCmVch^x8<x+M{DH_EBR4Z-JuZ1lObEQNbyWH5~}zfR3af)PffT
      z-n^iCbsQ8_#J6W=1BOP|TC7yHWx=rBa-|IY|B~KG-&mNni=|9>NKrh_&{^N)QxA1h
      zLmE%$7{HSZnq3;V9IF^urW}n+8V+MHiX+t7e>$eT=gkef=BQ;kI*#HP%_tqsS>K*F
      z{Hs~d4SdfzVfb_7vxey{GV~-<8;?EfIi6pe<cx+P9FO8@n&Az#>39au(jZfRq#4cO
      zLtP;%lbRISkLbvXgxY3=>bgusi05>Sis_C`+m16vwF|4~b>xJVR<jcH3p(<Gj)}o@
      zjN+Vda7M?A(t+t4i{cgt&2u`&gyyyleW*k}jPp7sgidoUNToq+hAP_RNJ+9p?^Sw*
      z)-1i#3_J6Gf4pR(jmw6P+TvEW)ZeRqVMm{goa<VC)-g&Ys}x0nq5D5vO3HAPYe~~j
      zqeE|m-cIptps!<uejA|?vxRm8P$8c9edrfs^sJ)k4q9&!#nDE;8m-_Cnz)UGWI?9Q
      zbq=U*;kI`b?d#3nfWiZ5riV)Cz;@}N6FbTd25A*emD^~&S+!S%K7U)<wukbvtw1}m
      zONQ;l?y{F9(rKWzw~yT1Mb|RALe#yC?hx%?#{LkcmXYeK#cHR#z^_5$@1u=h$8P=s
      zlKev%dr#=K8oRd~TcAGbBq#hB`ok>v1m#UVX73*S4(Vgj?a>t+`WRdL*6`E{GB=<R
      z8Ya}YE1@JJu@#&UD3(w|6q$;dbz3E&3L?~7!^yItqExgMbN!Ai6thCr@78cinm0F1
      zC6vgN&~J{L0<Pe6nI?7BtV-lg3L_*V1-TMSQc07dYKD?BtP1N2KU*z)JWL=?Ueqvw
      zCR4yLfq3XVVpb(`Cxxm=AU-8m5u>S^K*S6sWmpx~2Jtct3HT>a`KL6)pP_@_Ko|cU
      zDgFfp_?H;rU*R0Ti3|J|41OCPzk~PqU0mm@_=vCJYyJ&><M;48zmGrp0~Y1qvKIb5
      z>)=1IH2;z1`A@9Ke`fFSU*y1yg#%C-7((TNAvB4X#3&QGfPG@H2wfzkNOXx%M531o
      dsr2vSExdwP>DqF<ChK_}Q}Sww(Kk>;<6pE-0-FE;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$MenuBarBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$MenuBarBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d58e9bd495ec917595b470fbda9d3fb78da1ba41
      GIT binary patch
      literal 1790
      zcwUuMTXWk)6#h0VTZyVRm&W1JrZhAqwlOgw0Rj#!iD?>BCxPYyymf7FZ52iGND2u*
      z1zvbzV1_4dX)|1>JTk*S;Py)x&aQ;*CYb{A?C#mK=X~expa1&i2LLm8+e9D3%pLKb
      z*e`~Aj@K-<U2(g(BO~D!SJl4c2Mrm7ldIC(T@pcjHDNGJ^s3b~zqnWnqd?T7f5g%Z
      z=Z>LoRc^}A-wo=L!HyLxUMQoGVYsTKi()S-#;g)U|3ck$JSV!sz_Yn+2BYjZq>0lE
      zgGZz-*ch}igkgsCLZW15EA-{I2f%RFhKYVstU8`t+uf<jU{lmwa%80H*M+++0!Q67
      z(*nmM3e6&$QOhC!W~=`@R}{giws5>8Ck)fsZjfbvr|o;vi%MPI^+2>+PCYEeZd(|~
      z6DBS&Og+qY)%V|B^cu@jx;8Fif?{mSsJt5lgudC5I~3#PZ0@1{Yq64vOGk>^Be!0c
      z!qam7xJ>y>LY<DwSoU2%urP(3i7Z2=7i6olDm>AYfsH(#rm`yclsv;^k`Y&s+<NVf
      ztVg9>Z<0u=WZ@YUO-xgh97~mrXE8&NVF&VT_NacG$ypn7c%ETMTlb>CcQ;z1;qNIg
      zPRNed?KZ6T;zb+ts>Avlf!I@x#K7tdqbHS>o|@#%3Du>SeOeV-@6#d&SSv2t(gPzg
      zbz-~pq^C0|^Z(LViQsY70UDcS8`nY8Vz}~lq!<+&uPX+R{I<GRZLF$$y5>ibzoS^|
      zHr`OIRNypQ5j{DH&(?;{*0Q4}Yq)ndrj>0P`-<mLySO3@WoUwi`qF<GEQZq$j20$n
      zq&ck=Ej`)vua=^H02Xmh(QOuKsBiFF*zXwJ;P-ImD~x<WtUip=ZqW(;5zg=rk<na`
      z>QD~=6-L44?_uny+Q%^XCtA&ph43gI(*Td-TmtYJd0^5xcZl=%@#F^>ER0MZ;;FkR
      zd<v^@i06nZjAx8Y`j*ic&!lc8<XybbwKqoC;NM|@e~%3R5$E}R%<`YK?Ufimv8||=
      z@Ur%24kaw;kmm3Tu28NNb(JVXQ?C-0($peRY0_CjIq`d*PNivliILAcekd96U$ot^
      z_`PG-NbD+<*AkR{l2KOk1%mk+*A8$krdAHH5>q!0a3iMH4zO0}+KOZT6&C*uqx^SV
      n;C~>?|J1fG#;6_J`A*Dvyh$C<N57jIX#<;pE+@kl-on7&XOE#F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$MenuItemBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$MenuItemBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be1273ee1bf62b63be1b5bfdd35ff5048ebd295c
      GIT binary patch
      literal 2085
      zcwUuN%~u;$6#qTmB$G@>z9b;6{lJ0*h{RH?l+ad4OPd<n3Iz(bG($4Ll*vq-8HBph
      zRhO-LT(EVcOFs&&dX7h3c|2}h$e-i!zL}5!;rKD|CimTU@9+NJ{YZZM>-!%8oWXq=
      zbqoU!wD+}*q`Pid%gK_dEhUS(r<utK@gB3Cg6_DT6S}pQ@$_P_mmx89?Dbpp^~upi
      z*K@SIw`&$=I93Bcote~Kd(Fw~3~Jz*v0UAA8Je=fI;pLD$v~B2h>YY-!!o>!3_RX5
      z!yu*Yf-d6)hK2*y3RE<xXhai3c%<wk$20Ww%tXQPq6!%ia?Bc*eq*h;s5`f{MU#j$
      zXYIUZ&S;Jy_P$a9N1H%XD5ke!5Wm6f|4$ZO;Ydj{ta4Hq`s3AGrtM<Mwsgx&RdrV#
      zt+Zm~-BiF^!Ev0Fae|@ypMqy?dv(+*jO)6o;uJb4^UJz-%Q1?Y^Du2&o@1MrHD`5d
      zMJw3r44v_w+RLPE({`%$Nr~8}Rdfotqcw2XjO7)RmM7y?s@-0+>mmmVx)4{<gI)&3
      zaHn)r&wF~ouj9Oe1o~yXR(9NXa}`OvPL-#c`i!V>`*KFAlt@eh11ipnYDWr=wl0b)
      z;|+#b4HZ!i1%r4~#gL#Q8}6u66kJ%Iq2;iG(9tplKBO*mvOz0D>me;lCR?EvDNuG9
      z8V?d>2>D4Oiy|@Eh1^Gvj3k37GPKnm3hrdkK=~irH!a<VHd4<aGc@!sEmt<Ib&b+Q
      zO{lm58YIcompq}krQ#i-;GSI)`zaN-#Xh`fd!Ahssu>ltLKSj?tA~v;XJyLotZ_pO
      zUDMvN=@+r-8zEy^x|23F*VSDa_ZUw9hnZuj-#>NepmFE4LbUv;r?0#ay`xY_bA)zh
      z5r%jget<d`qURavzeV%cq^d&;y%qWdzkqsv9x-1Fa&6oLK$RD;z0c5k&}|G7zv8>8
      zfe~IpyAN;_#{vNMlo%+a+j)+chvnyZWjNCJGrBfm_Wgve;b?nw8{M1uF3~P;qc3qh
      zCeeQ^oZH5kU=zy4q+k=ug$glA%I!*JtM*9X7|KbNW2tid1r{jY;3j4%-e3^#+$PTL
      zjkg<O7fHBEg+T9%K2B@(yh5>>kr|N(K8+Bcfx>6e#OKh)=W&wXMHjz^0lt7s{66mR
      z92U5S4|o9|@g+Rs%XrKUe8wN(bH0i%xrtx+d-#<*_>-^s*)92{*ePdMNar!^XM6`K
      zjQB;{!3A8TZV=KXk|bYxi=>b*jgk~5`45aCO}(PvcU&eZf;QxF1>@8;k7x+4;u^%y
      zNCwx-Eigo%B7*b{n!l>tH!R}w4}E^E!Fh$BROTm8-Y%nTkd0v1n;@8{$ZjDUNH@1|
      zGms{?Fd0bGTbNE%W3`Gq@W+(bCurdx;{^W%asH_v`&58hiQQYtO)u`y?ds@n&PSTZ
      NyMW)=40o}B=-;Mh*Qfvh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$OptionDialogBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$OptionDialogBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..60809b6321350165d62a80e0bb43e3cd6f31bad3
      GIT binary patch
      literal 2348
      zcwU`VOK%%h6#nkq@r*s0wn<tyar#UX8as9EJ|L91P|}nXmn40p4HQc0*q+$aj%Uow
      zgtSPA4HEyL60EvG-LQZ~(+VV1gai_M5IYu-El51X0ts>MjN>?u0%EMW_uMn*JNG=k
      zd;RrapL_=3Fs`eR7)GueZx}c8{(|LH^9|dW%h%1ou=7)5Jn4EB)AI+<HUi6aPFaTS
      zRwJDXnW4WOTMG60v63HnMmbnEQy6xv+u~C3g6X^SUfE<&j$4iuJj1}#nOO#T+^v`z
      zI68Ewh%;=Nv>bDKzFsoDi$=*NME9gyHtbo$v&6col!Kb(GaQ@zfB6(>qpI1Ay6E_3
      zK+cBJp|`xT5ah?*dc$>0Cn#iAl#yXU1H)Dwo!CYJY=~J0S?`2_l^M2egjUf@;jIB^
      z=s};T(GCVRU8E;7n;_jT9lNoI${Dx~@>vwRejWRSPPWatKqv-vJSG%M$qfRxE>uH0
      z(n1yUtZFS_NI2%gav{1lh_<6)SWdHG47q<v`?O~?YF61VM1iWvG4!>!>P*oIOwTdw
      z3D2k#0S@7aio?`{f9mI?>)sf1Difw@>o|(XiEGrvbDmW<yj$b06L_wD%J6Q?)QpO|
      zz%ZE3tmntLYrEbGBdMDsIHuxBN_$=SI-bHPL!4?5!l>`75+_w5Gppesj_Y_D#Olpe
      zVM@6<!8yYrqHa%T+7V7bWhDNoc$T4ORYf9}3Y3NuIH_YCry_?_rtce7^Wv?B8J?SB
      z91{!&Rsgxz=S_cw<GJW?=1NBSM%8oYor;F%aYjXvA=$p?rQ(#~kY`WF3z(!ttF1%_
      zn~B;6*_|z2H_NMzLX>+P(+tCHaV!{~LyjL6MjYoD(rxyp=egdagC4;J9W#RR@j1)3
      zFHjJIDwlN3itcO8VpH3R`c>-A1`MPxH|f1aFHwTk=$&KOxr!L8*+>w%5jHP1`G^h)
      zlOSw|RH9?txwbGA+e}EW2}|5oUG3LVPS`T&MTdwmZX3RD`YI@{f&Xxq(RH}~HbXz%
      zNSxjn-Sjfebd%DUpw&^D8O^cb`_MinL4r=BMl+;uAWPq26Rq{g2%E8mW=aTMO$P;X
      zOtw&m53ogaf7EiJ2#EAU2;Ux=G~q%@l8%Lrwly8SO$bhNCi@k-KSj@Fg`WFJP2ELL
      zR=J0rV%RH&0Ws{)u57iN976huqWu|LrC-o1{fb@EZ`ddOjv?ufFoeC4^HvC%W(Y#c
      zV3<77i9t3BhW$yocF?z_0}pX<RLwp>ei2Wk)I}6N$BFlFH54D>#ArMfU&Po*BAHO`
      zAld!g1Dqb!QreeDWK$Ypl8M+I^mb3R^aGLpF8Y#*_X%-!Eh4)sDJNsfBF+m*Nj9a}
      zHKo$Fl#_~3M0O8wu?dvrWox;zc0~xevaD)bt+f43DkXRv3Qu4Y*U-!9pMq~fhHplm
      zci}Ma#0c+3fp5haPvSK1MUnSlnx`<s`*4Ntgu(Zq%y*;4_oB}G;q(1?ix1&lp2lsS
      z!3R8x5BWjd<2ii6^Z1q@!jJq&*ra#DajDg$rB;)c@FHFcS+s=9*b_E$2``f*htew~
      z#X{){NecbG$E&zX#Mp=Pcn#Nx@fn<fL0=PeZ*-u9GSPgR_KKuhODCZcR>Z^{#8D7D
      It-?a$Z%Vi?J^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$PaletteBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$PaletteBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c16cafbc87a8eda8977842f2ce5aac853ed86f2
      GIT binary patch
      literal 1779
      zcwUuMYg5}s6g|7h7Is7k2GfST0|~a{;86OYm_CS861OIykTBC}KXhd;SdA=sBqb*Q
      zsxL^Vo#_wAU+GN0bS57=y}J^I7^X?2k#zUy-gD2rx~mue{{AO`d2E^B4D&yTr((Af
      z_8f1g(sjjlr6VKZR@T)0wjZ=)5YDU%S4NSHmnIB`D@Vg@jaOFeFbYI7I&e!foIA$;
      zsJ<aX|4Go43|1Ui_d*$k3}X%DT@k&g5<^vn;pL|5cuw>w!%(5P#bDI@mNYTKFgoC!
      zg@sWIXE4T)UQU9{LY<D{Rt5~?7EBCNV8ij`{U;q;1`mbpl8{`(Zwhxy1ddv3FpD9)
      zqu8>PGip1eZ=vzly`l<6cVyC$gF0smhlSSsPS^LO7gdWVRL`0W6DK({ES^YmjN>?K
      zhT3%5!WCSlmPUS;veXqeW8s>@3|DSP3YfJ}P(a%DqsZ?lsAS=Wf>MFA(~cN2p6ne|
      zb*d{IFR7Ga?lto62BO<`nqf8mJXzerdnV>-2#&c}Sit)<3Dn1$@A^cZD-@5i6IRXQ
      zLoAy3h`RfKAF1K{k5|0bs+6vUkFi7(O0?^N(-Fb5n(sw{@7@u?<IT2c`8|f2B-1N=
      zI^*FSSC#l>3!i}IZ8+?!94`!tjO+Z|!it*F;Z`7e8?qTG?KKN`l$@-tQtME@s}}BR
      z-)+Zrl`nm*9il#=k@RMlu4i<SaMmWSP&}2bM9rB&G4y^@>tA)$78pA^#B<7*_GjJm
      zWKeTO7|PJZLx$-$*Z~Y9uj~ODHJUWKQgltJEl9tg6x}n(5^{=G3rIs9qkq8q#-QUl
      zPXB`3PXuvH&^=2}u)lGd{e`?nX{k16pMXkMw58{m91Q!1epoMcm=!zWU7XbfQ#h9p
      zEYeev8b2fVV?REv{OKpDVkhJGNvyKY<AP2*g^LNxF8K`6vs5OUUvX&<mtt#r57V)A
      zeGk`TtGI_^`7qZc=>n&c_!uU54j1`23VcH6z8tgmbC;6b$|_SQIoUTcm#BD2x>b+u
      z@;)j{X8AXKu#al_Lf*)yj8;BvwD$2Cp|=y%F!u2U8L98-?Z7IZrpEzvbamFG=)+Ez
      zsMp{#Nb^~Y@B+^B8<^&0l=)38@j0yV3clsHAo#qlXd_nGugLCKWaA#{y4N<o#8q9n
      njjzZuwACOhrL8rx(sX`@`*=We#j&pSd`;}oqrtF=N67pK{a%Gr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$PopupMenuBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$PopupMenuBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0fa010c86ed6ce567d41896b20e40a0beb2fff9f
      GIT binary patch
      literal 1821
      zcwU`V-*3}a7(KVWjuYe2A8XiJR-mJ$Nt-s?3XIj|M+vlKOS{rSrAd3J6Pw1vu_N1E
      z;cwW}UMB5*(q0Fwp)ieCv`L6bLmK=ui0@v9v}>w?X6arZf4=A3?|k=j^5@Hkj{tm(
      zRTUi!Q{R~1nz!=drsJ*W>#lhtU$Z0A%`b@gq90gx5DqW-^^N+1?QO&X6`WycH?b_^
      z`Pp(91!g6By)40SxK00haoG<2ji6#P=rOVAg?1D&^pwQvytx_W<B-9SoT<2u=S1fi
      zIy2c-243(jTg5vJU3*q*(9xx%8$Aq(nI=ii6zR&Yroiy74i!lvmK@Js+^Ci9;F?)>
      zDUsfiUoqWPGjPPS3~K1adqPd4J)^2a`JF2Lk7|*Ju64Uvlh;m1Gdorbey#3%wig-M
      zHvbxBJ*Z;<M;OlR%W0#ui!iVXL*IVv6qW2l9mg?D<&FG0EiH=J2_2&%#$EeHBm!9-
      zV<M0!`%&cAL@1|YLWGpSS+7RKbm+CyG<cwHI$qN>!{i%MpAXD>)v1I=d{!E!a7x8V
      zs?&cJyyW{gXFY4qwp|^k@hNp16?!RfYG!b|;CoTvyO+%1=1SGH{7r`8Ot$?13%=_I
      zJ3VQLy+6}2E#wB;<gSoaSJ>4sgL5j*Qq#7%&~Y9YsB@_jQk@#_U;Zg%2$M6osG}gd
      zHE9Lr=CWOpvX^ztwSuBkskG~)u}`_^%`F<YX^=lwWzei$hP(IfN{8jfho!AZyK|1{
      z{+`|aJ1IEyX%;=t4hpUrhIXjp8pH9oXnyMTJ?)PnYT-^A3Jv-F(XWp}a|)ul575&T
      z5)fC{Z_vL=aE0H;!F%YvL!l1z(X7!O{Cgba-ytodAZqt60WvRS$L{0MUfK`f{6|UC
      z<3)HM{Ze26hnoThWhg||v2oVG2fwr=5`w~ilJrCIk|tfCqc|parq8n}^an9G-B)st
      zaYER+i{4)`B<B%1XXHFi78ifUL~d~+Ua^It7>#UUBu1GnWMVYFh4G1<q{he@_#N_f
      z7k&I5j?sOTH;|>mP4R7<<qt5=AL1(iT_%2#JX1=o#8;Y$3p7b5(Sc#|pC{CbEUCwc
      z;UoH&h;2O~TPabeZG1AVZsW{!GS{y*VB`kVJgsmmo#0jjv$_7H4Dz)!=WBy$WlgaJ
      zYT(k&u^gewfj@=9|ANN<MmK+kqx>I?@aLH3FJ#JJ$J@11Hd-kgn8y`)5(bJgae+Q3
      p#3lNIkRnluP=fGjEMSrL)X2`4goNQGnax!!1G0-4mEt;5uK?Z{mI43(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b9836bb4b4d85e430582b37c5256a25517d79e62
      GIT binary patch
      literal 760
      zcwUWBT~As;5Iv&{C?XV;*4o<Ev=55LYvW5(j1Q8ulF+7K;eEMoVa;Wi+<OuHS$#6`
      z!5`p{YC5}MGz|}IGBam(X3oyc-u=C~1@Io*IV=!9T*yl~4w8{J-Cz*O-$7rcG77#p
      zeQM)#6({e0*eJ4>Dn1>isWp?^90cKTp6bU{gzT|4Iz1sQ?(DV+qG8Wf9*bBmAcHKS
      z)Y3+M9rima{v|t+B2-#7lu=v8+WFH<k@j>#_}H4KgIWF82`dAsO?uzh!H(w&<R}dq
      zwm+~&nY8|J_c@k>o(_|Glh1D3^;|BXh!TN9!uqUg4s{7@Ge|fxW@)lqv5Z)Hg#1rC
      zj6?NFyAjKeXE<;aghJC86*nT8Br3__HR0_X3*hc%tpMBLZ-6@sjClR5bL<_lCAOK`
      zHJ1MPaGrIZEkqqcoM46h!X%09DqC{9m=cUxJ6o*n?Qc~@HB-%A<H`R_->@pad#1BV
      y_LRw?3f4S(5$mYBY(`J<%(q*_1|#9ob4D4DHW_6(^M!xqCAR!KZje`agXMpN!>j-R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd2d3689ff4851890a9287a0e1a56b95fe4c1d49
      GIT binary patch
      literal 1247
      zcwU`TYfscb6g|TZ+oe{Pw}>bpuia&#zD1Up2*hNQg%4^V`o*-%u+(&0(iSk$`2IP5
      z@U@U=V*F;}k22nwF0f%SF;3FX?a7>T@40vS>-X3104}4Tp@m`giM3-rHN#!UtC(A^
      zwP998WVz<Dd@uOHx(LFtd%o-XJ0e)Nf{NqCs0Pk3(#W<IZr-uOD6q;=e2l?}@uC-s
      zC}ij?NsejlMrI5Z7*g|P*YTX_HbWwlU1i{l{<_d`iXnaMv<@Ao4YVW8kesiRv`mp!
      zcC`(pZ=e-PB9<IatZY|p5j?PLS1@#y{Icb)T7e_K6{sVDUa6L%oYAI3_05(3w<BaE
      zT@iKP2X-ejM}8Om>Xz>bFDhi4nxIqZ=M3~?kY;isr-{-m!obQ5Jtwg>3^NQgT05N6
      zb`<%Zjv-t$Fp4pTHgXXgW9ZH_r)i@ZOc<C%hGt;<M6XijqJ(n>rX<W=u@OmN+Q5ti
      zS_7xDsgO$sT|Pn*k-tT`Jh6MwD`qncmi}HN`P1+F+d)~}b>u)h8%HuDd34)~o+pAu
      z*9t=sYPiKP`VaG@rkylV4AWE+^tX_%yj2u&q@dA5mDAT%g#qbr&>tpg?Zfztj*kSj
      zpo`u*?ck5l&ezbbP$|~lAV9WhZ_Vwa=Q!;#IJXteh!3F;XOuuc&ejDARG$>pa#L&%
      z10N10l9Ix!iryC=sncb29v4(*x^H!%_r&0|FXey6b`rG6&hpd`46RJ>VPq};2_0WB
      zUc-1CWoyXBQND(J9GNwk`J*Z(q&9y>MxLXCzd$d4i2?o!WBfH{_#4dfw^-osRF%0n
      k|6!F&^(tj_g{o^oFHGv#HD&p_%5eiXRlB5@S<E5z2M{S0Jpcdz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b3f20be757fc67c84670380e0605015fe5aa9bcd
      GIT binary patch
      literal 1716
      zcwU`T*>2N76g|_7<HVRGUD6VuKxv^#X&d&XDN6|yf&!{26!8`}b{kXIF1DfY3;YI8
      zys=17f#3sp=Nk|b5<=n?#2wphLK`7Or16}&_ntFzmwf#7_5*+;sL1GGIDSuis68rr
      ztERnJT(Pu;;<DjuR`I&{UUXdDaJ`|~y6afhjAk35MFwXWXl2d^_TtpM=et_nUk{5j
      z?Amg{?aEEVa~`;LgCTC(p5c28omCN6)K>jsB`}p35|eeyv`zmULo8pIW8h^+H)L#Q
      zNN<W(pdzgzgHF<%j7W06LchXX5)9ocWF&}KHErX@gXMX{y`{}t^n|XeQ`f9H%{9e2
      zFe-?lPpBz$r{6H?eJ88`Qz%Lzy=X+`s6?p_=bO2fo#hqBHf+CCXj1@IXXt4c%&=`m
      zGwn#2VZ5zm({{zxRvKpAD}@D7Fn~cB`{^xz%c|-)OH;N!Z5Wn{AsnE`P%>r5_9@Ft
      zn!7aH&~#^&VJKhNTAs3FIc~GpC2{GnioDRtG<8A^;T%zMNH`PZywfm!Lm0<Yj0>aE
      zWGFa{qcV=r&}>Oi#W5Tw2~R}R{nYqBN<*fS$p0`-syHR4C84|8su&6?_acS2DH?em
      z(W=mTOp6j`4SJE@Qi06oOBf`}Tx|F>j?1R5i$POngF;N3;?UVTH{*iLpjK?#aLbnF
      zd4?zB3d7((3>{s*dF-fe^p~L}(Ne_V(?6cmH%TX&9XcID9O9RL2lX!JlJo|tSLk{{
      zrVjMbSD_uTuSmr{BO6#j)J%&2m4S9?<PCZ^)4qepegrf%48jiN0)d^_6$zZCU5N6R
      z=z6}vkBj)&&w$$-`XjDDyU`z9y9awi750%B3hf<h*f$}s;ozM$6ebdD7@bIt=H%BX
      zj`nAHe^#nVdX~S&iSWp?aWaI*(6zpkgVzFwRExq|Tp=fy2z8|zkC;4SMv@`k;>ac2
      z@mgOY)tcx}sTO&@@vsd<_GS;Rp^J*O9THC=$<s*j47zzYa=Zt5-iK3sCuVp*miRv0
      z=L2}chwzjS;~CH6Jul!BAHf%Xh%r7E^kE^a@OmEzg?$j{G|q@F5t=}WW=^0<LOeic
      t2}uDuM<`DCC(h#nO=Jo`FhwYVZhXT<LP^po2RU5A<zSLTr>Aih$={*Ob9w*(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$TableHeaderBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$TableHeaderBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d65caaaafaed1e2f7d37370b323bbbd77f0b75b4
      GIT binary patch
      literal 1452
      zcwU`TZBNrs6n-xBu3M?R2t!e)A|M+g69thCQ5Zp&Oh1TX{6<+XtWw&g?F4_5(P*MT
      zH1VS^`1*^C=e7$V5Myj|d!Kt=o}TC2)9qhx-vb!NjEV+^(Z|LUV?FDyS<Z5{Y8y-0
      zRS_6=_Kti{yPhdLzxTeeXp7szphIL*p)hpsO<fG_*{MZ8@QiX0g)tlzrWLsLtfJ$K
      zz-MSH$;_;=7Gxt+o*_12IaV;q(3sB5Gbjbu6dD@Qq(enq#Sw;<eOVfGv`BX=gPJbV
      zlbKI|zNv#FM)4)f5qE2=i^2;9kf-F94SU}3EP1XQm7ro#QDde5>I9YEvMho>1@@<R
      z6&Bpps_O_R$Y&0b&B_cNhXpe<RSnD8Y2?tMl)JWDo>8q>Wj`PFLBnaBRdI%D`J1eg
      z>#j^W=ByC5j&7WzVn|HEbpp?|XAEy;u40((8bfb7bFe=J*LJ-J#e2ecYhGF8<wtvU
      z^husL@jR?p0bOE0GAhz^?FWk0F@OtEY{*47l+NtcNw&NsxTs?YS&H;`BHPpZ1EuPI
      z4C}ZoCn9co#+sY}YVtCLAJQuFtkWvedP<9AvI@<ENxB(Y_tP_Q+gh#!G@`C;GH7$5
      z>RC$;QQO`r8IqX{deL!&SFjD=7ru&VhMs>IG2%KfWOOz3Rr+hGIyu{f8VS>nLGJ{e
      zW(hOeI|eqP4ZMT?NTFvF&2P~5itG(&r+2gD;Lo7&=V<3I&_Omm%0m*JA^$NPuXB#m
      z-atDac#XD~J0vlgz&FF>&M2UsEKwIuke}fsPDM1Vn=&-=)wYnzsaxpD#RoTVK9?Bm
      zif>?WFqKqNNxs0%q_Tla(NRgp$RLkhY81m46f+8xJGqt6ol+L+rvt981ZD1OA3_t=
      z_W_)LgvLLim48Mj-$oz*f)V}|IsOfE{5u@}0|EaT%3F#G-;r0V%aiB|Mnds5jN)o|
      zH#LkAQbKf%5D(Efp%~#Ra>&yyX;{Gop*UJ0aGg+scqYR-Z{Q~FTG+rT6p;80KNn3u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$TextFieldBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$TextFieldBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e5758fcd734e3e0e2fdaa781e541f38b0a7d7a82
      GIT binary patch
      literal 1378
      zcwUWDTT|0O6#h1Zrj#I1sDglqfb?b~BB&HWDAd8J&IpJjj+eAqX*49ABvAY*{RKSx
      z0*()kzWSpa&!*)fFiK`N=j?ua&iT$|fBpXU9l$v93M7V!kNS?jt9ez^-qb3V{z2Q~
      zzHVtx#eczZ4eoj)Ykb$wo7^($2MT0{@rxMdt!=M7v3O_}V(2?#_F{R3d(O67;tZh~
      z(>DEChNgI8ok7ky29KZ#ttu3R8QKe`&7W;=6}h{n7cH`g7Mzl9t?RBS_Kic?FPk32
      zWZ@zlPbHUSXszg`?bo*qnRwtv)2qIgbG9mu&22w>eD>JYD`m6fWtZtotSjhZ7(5x+
      zrvTa$5$4D|f+%7tF5?PAi|H-dg0~T*y&<q(6;}loA<Qs+fr>KptLQ*y1lMp~!5~BD
      z84@anaDySd$tjrS5dCO8agslsWg{5DO$DP2WB)2p!Erv#+eV&qOT`%C3>|@6+jkvn
      zwX7RXm0_ge{x2s%nB%@?1>>ZO6w*Y^JEGPVKg}$$F0N)&Xt+&R4Og$O@RHA<#Ou{%
      zU?qm`^EyJ%Ciy(4F@)^WTBh}x7O`e!Dju&_T{Pyf*KC79@+rbl;XfTDrx8!z;YK5u
      zj?<|Sz8YkoH^oSHo}9UixXYj}+ctM|mhO4nQ?SS|e1U<bS8!@%spm90w3_K*OC;&7
      z(7%Ot6C@eQ=Hvk)UjkUAe}p8YS;*2n+GwxVFX0l}Nis2IbqB16oC!z8)K5ff7*72_
      zbUNG{-bZ&0?Lzj{pvZfWo2HaKgy<hrYUoO)(gQI$)*K5Rpl=VO>3s}Lhtpp%ypKd3
      zl8snMHuiBVE!-rI*=5j5>T@X4D%zwqj7cw%lwLuTHZUi>!IJbA1?e4LOYfme#UO)<
      zutBkrfzZZrC&;QuMYt>SC2bN@R4Ad{BTWvp`=m7o+5^%;^fsC>jV$GzB&@Er(Q}-^
      bLn`YM`Z0?+(j+_z7|&xNsHiA(j_{U0YTZW)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a73598fd4f73af8eaf6a71b62447248f225f30e
      GIT binary patch
      literal 2043
      zcwU`V-BTM?6#pIAn@u*`5}*{)npOcNDJf|!Z851;NJ~YbDxp+;V#%(_+GLm6U8MR4
      zIOD56;e$_gd~-%0F#6!f=u3UjH{Tsc#~J?vr+%EfNg##NVceO$_uO;N{hjaKAO89B
      zD*$Kls){bcg*S{hjoUeY!*(jUwVLsIu5JZJEw>=o8P_u{&mUcKE0vlxvmOMl)8wg8
      z2xks*xAPVua>;h=;4+~*omnO*Mc1@6bR(uiAVTPww;k*HdVSUMmW<V!Md+J%%SLV4
      z@N9W*F_oZd`-G|agLtsl`vM`pX4p>9c55OXBIS&YAXjwjYp!ECL1Bk?%`?`jcG)k?
      z@sn9r(MveiX?uFr4?LqBG_7bzpkK!k3=pCfD_GztYlP$J%zX|wl|x}c!yu9>h6rO1
      zi)r3<Z%sSqtYy`79K&(K5ymgNPT;w<D~5NgR5eU@gD|?wRtQvdYp!==Zqf4Hb+2rN
      zMpHUYNSwqDP7^~4AJy@g6v`lOR_(x&%n==<lBw<7(C`G(D#o~6d-JFxgHwc<?O%0d
      z`OL8TuW86)Ld9u9@18vC$l(l|^`!;&nb3b<g_u>yEK7tZb)3T_tD2s%v1pY8f|_nt
      zDUJ)6QgM+mxKGw~JS9C-ZGYOUTc*S-=(x0vC!0~CT-Nc7RMc$0WYyS+)E&gMjv1MV
      zzK#;uek(*Ob8Q~fRV=D-JP&9tmfYrdj^DTV<tkE@M`pF&Y@g)5&BLCV9koyFP8Ear
      zEt#m<l`1DGQnyW0j*?aidtug=hu+S?nUE+1ea>+#uUIpD-||)5B#azj>NqQV=Z>3+
      zYY+K!F~t+ltIDTyyc6%@)aQtP8j3YuHQu580Y&)}aX#x!CEgG5PB@I7CP25wP&%`I
      zr@T7;EfSm1$G<^h3w?RDfus3o1CQim4V=tt4Gibw<6C%qlkQ}b(JhQ;Qv=F?5avKc
      zm|HlTRKLJ^!Uy;)o76(Fvcd|H6~#;q2wq!<E#$LphO)9-BvGCwY$BFT#<x+LdXex(
      zc)!JLS%`$7$yldVVeU|ElVaPXXhVIBkJ|3;>(j#`=`gwrdAF0||2x@E#kLcBGuht5
      zkdoO3p50raoep`AKSfafLbq}cn({aLm47iLfRrE%i!O`_1rtKWq==#@G%SciD2c;x
      zL=WB-3A`_Qu_^lSiRj07;wbKlLHr_ya8IPDOPrvTI7w4tm@bPEDv435iZOCTn%)r^
      z`cRyvJ7R(wB1b=oN%~owr{BcIuv6b|c4MnkB~`=~*}Y6%#jNaWrmo>RISx$CF{Omm
      z^Gu15dV#43y6IQUV*&Et@FT9{MMROJyLgGI7>4P4yv&rw-`=mW$W)xMOJRPNa3h={
      LIa<qj1+o7C*bLSB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ToolBarBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders$ToolBarBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6cc65db10b0d6f62341f4a6efe06f194fd97639c
      GIT binary patch
      literal 1869
      zcwUuNQBxaL6#g#cWFc&6C<IF@wn$nMNRwi%txc^$5C{!vftDFZJ7$wCWbI}*?p{p&
      z2RiD5I==J|^tC>;Wpu{z%^81)Kg03dO$aGu)MjVzIrrS}oO`}=@7etM_b<Nzn8&7u
      zK7skqj4zBw8NX>cyP1Y<>}2YuH0;c}8W&x!YI=VBp6l9+hS!>E2nkGeyOjfbW})m$
      z@)SXkifvFP{no2KvXc@<N`fWVn<z?K?wuH#F?k-k9qrsY`jmOy_Zxh)XNxm7cQ
      zew@%Th={<+g5{XSy?WX7?ipp<6gX9ID~7#oc$S*CjUidHINFuMD^tz#9=m3nP~P!P
      zmDNll2$V6JGLv)b4c9RpnN1!VTfl4t0x=z@FfMStr_V8$<3R*OMPRI#w}vyk(#>hD
      zoqPlncwNUN-Vhk({O@=cI~dY(ouHO^4d<EJk-Z`~hc{Jarv<b`o`1>hLAG7caS=1@
      zDBT99lUKH+j#*_3+2)Q^hLny=$`CHQQo40z%ILVPOypU+H7PLYn9YM4j`SefC(8ok
      zg<gbsb*N!jPWvPT(*IG<70+nYtcss)(TLzWZfJOy5AWaZK*4n%E;!X?)3kMDaZ_NF
      ztH&2odak|7EbJDOcp`cHF6CU?^$u@$R_%F9$NMVG*kPC@!+W?@GpcSgf(7I>EFNj5
      zqe<PDmhJ0U!iNIU9m}=@>s>=i)8peTzDgy!p`2~@=v;M~*k#&1{CVXOzhCm(<hLde
      z*$S90TdK)My1OW?+y(T!<CtE~HhkaoHQW`L{vRzUaN?yV#1uDDKl(t>_`?<A8FxRA
      zLp-~}Qm~}i7tnuZr4PeAMp%M!2+=Z5@?39$5XA^f{!U=D9UvQo2DI5Z@f>4MJ0Zf#
      zg*F2B@fM`*uC&*1I@p=JyB+8+_6V^o&;5>x;-%*}`xxoe9~k`==RTrnl;{Pf)}P>X
      zik=~!ibkIyq0~7wq*G51pbFW6DpXtnUV?UVT;z;EpMdBAbovxgD&ag;aDl3rBNLZt
      z2Un?vYh)u!b=;-~Ht2I~lZTJVM~U_VezUF2JN(LReoC9iTS4s~aIN3wVhLQuI~~pg
      z`~XG8`Gz*31+3!}T56I?u@IFeqeCoX;nF~LAJ_Kr-abBff~hV*jCd^;Vq6Dsc#LVa
      z3w?z!eT`xI2GjH{F4A{MvYw&uu|z*$g?_{u>+AGWz-6<QQHM*h!=;F2tOO@n#42W(
      ni_-F}g#vAjH43!btcCem4LI}vBnm-J>%4~G?g`w%1_u8Di_Nos
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalBorders.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..355eb063b22cb6092070522e0b04ba23a17c7405
      GIT binary patch
      literal 3427
      zcwUuOYf}?f7=9MXF04y{1cO(s2#P?Bq9Q8A79xrUr2)0{zDd@&xY<pUjoN<fFKXq3
      zoifv}&h#gAdYS%!PHU&1JAKZQY%ZI@?U#LW-gD0Lyti{se*E|Q9{`-kR|>i$oZQl%
      z>d%vvXQo|9mMr~IvS_%vm0T6yMW>uM$`u9O5(dP=q@{D&z3i5eb0uims_Q!T?kWjK
      z(#>31&zjtwye1*$I)#E|EVgVJ%o~*_u2WjcHEeO$ajdLfZe7{$8qeKj)3EY&iz+Pj
      zLA2~xmh;po*9}@xFBeRI`%F3zXI8J6x#Xhw*5VvnZQ4VZ<$2RK-31BzCeA#N(7oj3
      z4Hf$k*U*mv`jj?p<8HN>HOd=$)-o7m+R5qG1HEjDan0E6J~k^7#)B>dQ%%+Wg5kEt
      zer)2*9;xjGQ?DTcS-~+0=R&BAHS?=DinvOWw=|r<p<M@>Goj$5gsTDC-O2ka8KdG<
      z%Q<6g$tjkcs-172P%(;ek+M?~u1xF^$sSW8{}HF^igZLw+ZK3$er^PsN~B{-gCf%L
      zwuIR*=?Jo@m_}T}5G7LWEh-ewYv>UQ7bIK?qYxlbF(U+GB8Jw^7W9`jsDl2AgbQKl
      z+bC4b3G%)gd4u;I4f_S}bw&_|ciE~|9$!e+Sr-Ir!b^MLhzj~84ZVW?hJ?8=^qJbB
      zZSFP|DZ~}rl5nC!JGAzgiklc0!gn<EA*x`tQ~$r=psPrWum%}crsWb5#P4g+L`3WV
      zGosdB$_N2<-8&7-rnnOZn|GZR%)GKzL|-pidZl9UzR=pP%0LUTz%BJr@NvkpuIZNH
      zx`t2FHtuh0Ck3CgCBqP}*gT=OZY`JfqE8p^U{#O{c{cBrT+^{rrfxZfI%6zoRPczm
      zd>F!2!>+ElMzKy7Z8az`LuOIzTh#p*r>|wKz>;t=49$8@yj^R$?I&y?Xd3F&SWV{E
      z`}&KJ*T$Mts+K&r>y-~!V!^vnK{aHC#5K{Jp_Z|N=OHgo?;X8m==sL;J{Yj^?czht
      ze>Oe5I{6s#mnvQX4|{6ZTSK*m`)jDxke3Ki9DF|T{0?%IBud1{<V(c9<&Q25@hf}A
      z+c?0lwz~ic413!T;!tg~jc%?7Mql9YD;(Lu(ao0_x$_;4r*|;AIXU$bW7{~)*>8O2
      z5xR}YPmm)&BO3VyvB<9&j{Js$#F5DFo??P)qjd4K=Xi`BOn4sk;!G#)Nl$y4+GpFf
      zCpp`${Rg%Gr1oFbevL%rZ)(4$_CIgXPWsyOo-#1>0_R?#ZwE8fzPOEZ95>XWqF^%r
      zXvtj|koS4)U0wz+`Al1lC}tT2y}z@AIkH{#qL`ZWqL}4ugZHrTOztP|AXGVqm^_3d
      zavURa!jC}Z$_YP$)3pe$b<&;pbr-1nZnN$@XWMm8Qg@uXr>HwY-P6>a+*7v)?*(*E
      zy};rt9ItoG4pPKrYTxuKx3Y~zu4rf{*nf~OQhOFr`7#pn97g4<O%)reRV?9GtVjIe
      z3s&s5SFtqp?r!5Y$L$qMQRN0Jw(M7|2lqPl-I~{T88U6O_uU$2+xkvkBX5S@uQPKS
      z7?$tjAaO)~xM$yW;l9W701t^@bH!0wKVUUyh@13nf%qZE9}zzx&JjN)en!-ZSz?}O
      m5DUb|#4X|zVv(33+QbymAzz7D=6IS|A-cq;#An1W(fc3RfnaF>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalButtonListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalButtonListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ecea49d9ab4c5d6e2bb1a48813a7fdc6a9a075b6
      GIT binary patch
      literal 617
      zcwUW=&rSj{5XQeEF1jKpDsnK9#EYVF;~6CpqQ+!3CK~SDwL;0#CEbGhSe{Hg_y9hX
      zak_XAgMWIMcBbF_I$z)3UtR$mpprv|q1NLg{@^9|QgysR#P7VmFg)@uY-|pViIp!C
      zBb3lNWT)u^p2*N^+Bm6aa1N!Crophe?SJh%4ickzXvX^bPMaayif@IB8O-M~3x}cT
      zOC>Ic{Xpm&9z=qn<i{b8+FVPUe-^W*D-(u2|NlPfG+2;U7&d;Ji=i;k@jz(v*y?iC
      zq35>7M!Z09m3UVZw<jZ^44JVmR`OWFG6SQY>R&Ak?sYuWp*WS+Qf11_`xb#J7_sfj
      z(22f@Vve!~<r&(Y+U_&vp3-}lqMKHaNZG&woyubs@>onM4hkp|gV|xHu}a@rXT&=H
      OfwhXYlvPf9);|D_nU(DT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa93c284e40166212395abfbf974dbc36e9b3a97
      GIT binary patch
      literal 4967
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalCheckBoxIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalCheckBoxIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86d28441a0a3f08b2153a3da638c55bc82a1428f
      GIT binary patch
      literal 2082
      zcwUuMZBrXn6n<_=vSGVW2&9&_SX+@MA&^?}t*IypkVZpmNdpDn*d*Jq?Xt^kmV*6m
      zb$s~&{(^q-i!+*bbjESU89(^lzvKAa%{D}XOigC*J$vqXdCqgr-9P^N=@$Sm!%%Qc
      zAaPf}ukUA?d#2sU>{$Ap%(mg_R%ThQ`7NV%FX!wRYmTiTBrqhcGnP)<8`Zl;%~KEw
      zv`=HSZKDEbdLmbfD@N1Vb!$wm3XJ-}Oea$|TvNBq2YS^q1R_<(tsAbu<<e2ua=uk_
      zBDd>#j@^FC()+4uo8Fv2Un03G5Xw7sLq#8kH4I=-!HB@6{~K0C48#2pIH}<{G=UQ(
      z(>AW}ZdVQWRvUDz<kWO)Rc9f550oKq%WMjyj;y1bW8&|xyZWB56G$g~&y2q3W%ADU
      zj$<3Pmp#xGTzzNDtTnU6Vscf*^LRnQIb!K`(r_LZ7~E_w+7esc=VwF31SS={ByjO4
      zh$Y9lH*eRM48ziJ5eb24!|-yJE<sKtlD+li9m{bK+MQLALR!I;z;F+G4bzxm$fn`>
      zZUQ6!sGF*+EN=prG>$E^#~RYq_FTtWFq?ioGQlevX7MT`NeX3$1e8RvD9I5JH4fZi
      zbn>Xdl!vg&lYKr#KA#E<9waTB4-B6`9%)p|)~%U!Z%gHj%xicHoWFtK;F@7Jwmfpb
      zqnoy`iDHpFJnj2T!`161k*Fx3sNkAFyqnKTaap(ZhT&>>7w<7G;|fd$6m?z2Y_eA+
      z0WE8I8*@^+p&=)wn<y(-5jcNT(<`27u{XC+VJ$xPLI6}?I&tU_^4A5S?758Vw=RY?
      z4Y#o_aNLiS3vT$#vk$oJqJj?uPIrTzuQokbuX*j;s$v5lY4})<x@tDdhD8qKYzS;>
      zID@n7WL4m7>Ayp;>1x@Z*(Fn6;gdagbVfS!I<XV{hoL}z86ZClTqBhEo#A?dZ#i1X
      zv!T>uK0hP2{urY_BK|#f$M782L0U+=5EkgMh*Nyi+CCV=Y3?BjJc#!v<A=F7rdk;P
      z76a)gc(H}#BdC-zl+uy$&1gKd$!(~gdkdG-N?WCLsiKq>%0vC*n~^SEG|(w+-2u!C
      zh;qHjVplNCnK*?Crm%`RtWk3tcd+h5pKZenpiAjByzZCNz#Djz(WG<*S-<QCu2Kr|
      z&l?kzIL%$!_YDnv*GV7oRn;zb`hpZf&UWCM30%Xe7T)={v(@Ds?l|Y3&H4VJ&iPJX
      zej_mv?uFRG6D<9XczQe@VxSVA>mjLpKlKCRQ{CzoR;PZ&#+C3`xP=ed%+y#|p11JH
      z0q>I>F5ok={}7}2oVtfh{sm_6CAt2J{C$ljeB;BLYeVR8U+8dO=x|@?a9;?xpT!7t
      MQX8ga&Cgr^8$E;5M*si-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalCheckBoxUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalCheckBoxUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e5617b966dc91fc49a74844770d9b6dcaefa805
      GIT binary patch
      literal 689
      zcwUWB$w~u35Pj{$ER(oIqsHapMG`>=@ghVN3<!x)#3kUd9b0XkOovHF<6pTP0t#LQ
      zKT52bOyY(j4YhQ=diA>c_3iN)z!GL+=wq0>;8(n5HLj(5X4M^jYSo11j<xOE;<>Od
      zH&pAe6hnj|{}*<TpGdXQ)LOZRC5E_k8=AYeV8~VeH>1E1U6roXYYav%UuB3C)rl}+
      zAell8afYFabj41yb}YODe(VtWNJZJ)sd7*Hd3YJo=dwW>Y)^14d^sy$MU;!GR#&cY
      zbs_&#U9U)*5}+9=^do9glw?TQ-6})&H&TZ5nb5nQstZrw?0Vu<wiq(G&M?d21mD*l
      zbrs^6B+~8{78%Ta)%0w!DgBpZzU^qy@5d}jG3XNs>?@<lpqMs9HbL1kc}Bi}z76w^
      zf<C0kn&g2sM6iwlic%dA1_O!&hA<owY!cG1W$uxF!N3#PQ5&NVNK<~>;~NY_l&O1*
      mIxC+zGjzrRf#aA6ITu1v#z^*qA{ty(KeZa69EPa?HT@2YjF!a!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxButton.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7e43a5495f69e9662a9775d00a2f3d80e902874
      GIT binary patch
      literal 4952
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$EditorTextField.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$EditorTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ec2fa0e09fa3b6ef3db5dbf9d6eebf02ab2d5599
      GIT binary patch
      literal 1031
      zcwUuKT~8B16g{^T*4D8U#9BqPVAXyQS6?mhfhtK&OH4{gd~@0k?U?;AyIX1eCHkno
      zs?kJ3;)6fHA7#9=ZHR$N;AQ6Cx%ZrNKj!zJpT7V+MAbrq@aUC%BS&_)uf4wg+L3#<
      zt0L*xEpyg=x8ra6qo+L``9X1f?Wj?-rIpjOkR;^(#XmcW5$2+S4vP;6>&>%E)EKv+
      zJsmwJY?jUgjB{;Aa%MXU7*K1JcL~Y5-%}|NE(*+IE{z#n60nfr%1i&j%r~{Cwuf#<
      z1v|3iD8gdX?@DJ^2HN<O$E0bHuyKwmk57=>rO?oyD1=~jeP`%;9Hs^#+gH)^K<%j@
      zP`$Q(t4#gnF;4DB_7m+YFVwzQGc8^hxQcuVH*nL!3JaXf6S##OPkW$re-LpuVNAL-
      zjgpXI`4;cR9lA!`XcPt3kSC<u{xImOEp29!pVIVw!$=Sf&r?C&kzuGp3uQv(?1ST_
      z92*@9ywn-~$dt{R&9Y@Y3m5o3#nv|aNxns;dVq9gedQ41JNpUD^O@!wc+bdp$g)+4
      z(E<xt1Y+wlmf{?NE68z_%t$BPE%r@pp>l|8&FYIEShijsV7dD3NFWmveqe!*?0<?y
      ta%0d$WR|H5SY=8wlbk|*`!wp$Oz?&MucuNca3{vy#l5&|BUVBMiN7mp@?`)3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$MetalComboBoxEditorBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$MetalComboBoxEditorBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b6b37439e3e395428fac37d8d1f51339265a5c9e
      GIT binary patch
      literal 1715
      zcwVhjOK%fN5dJ#uu@f^u9+=k>SRfEPgqZgNhCt#Z#8P-DFWyLPPh$^^XQG+OCVN2Q
      z#+}<9_RI~jD{VG#K+6^W0ylmES0W**d*axDK^&M-cYj^=byam$_3Mu>UII9b@dR2J
      zM(&B<#bP#Cu-$TY&JlOBRT&B=dr{4KuUhnmy~R<>4n4o8iEP;OE$Jt~8Fn{XDr$Ll
      zs2GI4D1{M?A%4bo?QoDGmd?yF@VsZqBw}bYVIa=1al&@xrTJ=6`qQH5NQTY{uOysV
      z;oEAzD&%3s4j9HJen#*)hIMnocGrR&NNc-Uu@GkIz?|nwH_X*#7kn{Su}eX&KwoAy
      zi4Jrn(8<v86~)9Rq!`*L32xwskYYE|(V;EamcUkq-tXOE!t?GAxz?DJj*0E~g)&r@
      zVSe8CDWvI&tdhZf>CAWYplP`Ty1yt<1MhN43Rm+~T)RyCiroyGlq=5-ea{&Y{{5+n
      zu)GC^o@V~?p5ys5g-IEB^L|O@R8sbu=)pdQ)<D@IJww-LsU=Y^%3rUEG%`fBe6gT<
      zfFY5trFRPsnCMp#wbvtxqEX5L6IrF~sw>Csa>bz$D*a&-N0dHU*E6sZ-LF}hNmV9W
      zO{z_rMH&Sff6$;zuu4>qsBsD|-IKbqw`u!i>cWVaYr{DVC2*dh@5kHN#4z&oDr7?g
      z*Bp0z<$^9frRy<ft7o&diNOJNhQTbjuJrSc2m(o_wte%pP;1cZh5BNI=+)Akpxseg
      z8LdX&e`x)iKns#ICus%FgCmc1gv^LU>v~!lHeh39fITNu%Fs%GcZx5eeHoiyVaJ~c
      z`j@eD348iuv6R8B*b?>=jHTk-(og}Vs0o(Qr`VjQ48!6|!U@L>t<)f5M*@X;gWw6m
      zZ}~H7{yw*`jDt0Qyulx@`TH`uLz=BluSL}zrg%tKuBYt|H7+no37JAWW@tByJ-CX4
      zxQ0Po$0%;#3U1PW3l47MAp{<wh{q`5FIadAiGOhy|D%jIsNgMZyu&@bC-w(abt%T9
      zbgz~|p`$pa%d>*xIH3!-g5Pjb*Lwx02yu;06EZZ)5mFs+24`3M;3Tc;B>xA4&(`h}
      g*LELhzndfdnqR)^w*@1bKZ-HkII5q{;R0Ge0hT<QuK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$UIResource.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor$UIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..635ecb7eec514a992e9c72f2400ccecad5e258b5
      GIT binary patch
      literal 459
      zcwUWAO-lnY6r9&?yLMfzRu6(F!GreTA|f6X4=xIY)q@|sXWOWe-Hjw$?SBybFP;Ps
      z{s4cJ_%;d^^iV=3GhyE3y?lJWy#v_BvX2^J_f9;BabzD=aTDEV;yTJ@DYEFa!dU02
      zKGNgkp(?dmzv`V!t4C%aeRzcK^rb$Ugw;R(Ng$zlpbAwU66zb9eS#P3p$t&RYzQAS
      zgm$6|c{a*ZX)Z;YaYZN51CjNGQI-C=^vYXh346)(&Hb8dpAcL)cA~1Zm4ED8RWc#$
      z6@@f$CajhGU@!^68h8rc4gP21#r-q3SnW6sG`g<{UYOJnG6sACPw?=JIcDLv3G-+>
      P&w|56bexx5{1RGUO=xu*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ddca3bd4dbc1cefcca4fe7b0c4937cfd293876e
      GIT binary patch
      literal 1094
      zcwUuL+iuf95Ivhqofy-U(1x^7O4|U5DK(|Q1Fm>Tpi)raftE;lTqg?{IX1Fgn%_bN
      zf*QmJ@KK1_byP?dq+rQ2yW^QNXD<Hv>+}bJ9X!yGVldzHk9=T7$FBd@`rz?5R$s*2
      zvtCHq2>MP?4+hVAZXARfGSmDW9=TnsF6E>@Ls6(hJqUXuZ2FOiBZf;Y31RW$*h)+`
      zLvF9@xxO1eVMteNZH7!E=m`xM7z*dSb?CTgU>*gAxxI0aR&CN#Yv)1u2C|r=z?SQa
      zmq&d^gooVm1kq^)UGBAc=*qh?>PTZrqUAJPVR$@yH!6ub6oYu*6<#lgWd`C_!c~cP
      zjiFv`%?@WLUGX@19>gI9*yDPx8(6~)DpriUTAqM?e#XGou)*+j_MDX|wq#a1*0H4H
      zCT?rE#Za1_&_ES6hCGcW2_v$TH9N{|C0}hd*!Z1GOR)7ntzpm)f}^l2_FXx~@)VzK
      z3CCbGeP4tPk4KT9EX)5aP{R(x!`V4hUN>KfNRc2me_smc_JBG^OH6+lv5|{NrxbF~
      z=%rTCZCBZV!U%dNo6V+&Fix=WNjVlFcPK^jgqG+LE-R}9n?D2S5CE+jHq9Xx%@Il+
      zvshlp53%wEtLA5{j<DVtV)H91e?W`Kko-pS6pI*P1K$<6kwC%39p$^F<Xvo&UZFZ<
      RH5R45NBTacFOl9w>NoUrA1?p^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65cfdb08cc1f5f5428dbc6a387eed1b91f8e6da0
      GIT binary patch
      literal 1244
      zcwUWD%Tg0T6g{2COc)0VkASF%4;~2wMnq8vqJki)N~B5@t1Pvc%#2CHFq6s*4_*5c
      zE?u#4<0e`z`~bIpfj^?&>5Kt^vRtJ5_MLNXpL_b|+s`jw0Ziboj0i(|L*LQ&G;fzX
      zWvy!Kue2@8*KMsBtPAc|$(?ui@`mfkh%qDsv}WssT`6r?hA%@3vwvzdunC4Pf#t5Y
      zYSp-I^EZ0Qwiu*Y?r?vOA)3ytF~k;J(^3#ctBMvV3~dGOSP!?iN>=T0gV9lN4c%VT
      zsS2ILWX!K{k71<nzxs0wYT5FG@F_R_iV%=zXbqFg7B5$PhL)<%9g$(krbT&8-}N=B
      zRdpT9@pA{c2Q|G~;f9yX=QC>x&fu(!UWWE#02SwOo*_YZEx5K@qo&fC!?h`wQ*Z$n
      zW%Sd><F~4~gv+Fkdy7usfGPApQ!s!b8G{VN|1zTBx|{bLbIG!76~jn3q|Dp8vB@wH
      zO8JW{Bt6MLvOIUYW>~qPyAc(m$P(9Uw$YhB+C^Z*0LE2l!8IMCW5=(#_I>UN;X$Pd
      z71uCHmCTyH8$39JoX+P18yT2E!*i1H^r=i&p5Q-y*`pslCwtAHc>0cIh6<BM1rml6
      zW>xgH#Dih#J~l1m0f{Upmk~i6GW}&@bfOWZ^%R{ZX=k*@M?OLQNI?XrX;o+krU^WY
      zHj2~+2uZZlPKKZ}EHD-ph$fW}O}Zpfi-)MuCbg?c&4$!S;wW?F5Hr$brqCTSzY{L#
      zrI@XwXC^*cN8dZNW<TRf9hrS76pc|7os#y^pY2OY>!}zmeaV*flw^vyj;n7amXZ?h
      zfBnez#tD7U{SX-hJf}-upcOCCgLN8eod%+W+q5siKmn!@x!e#EiVULbxFLiWF@>AL
      g$0BZ#mr)VT2v;RMK#shP)8h<M&1up2oKSG*H`bd8{Qv*}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..61720f764b50aea9e6136e5a26019467f81b1873
      GIT binary patch
      literal 1060
      zcwViO-%Hz26vw}(t;vj;t*&cb-Q22WY%Q4WaZCgo5DHZon?C4XZo6yENRyJJ+WlFB
      z{eV5}57-|io||SxYm`1n;Be2$IiK@A=O+Iy{`>{-7Bw9i!p>K5CPr3x?sz?G;EEHg
      zFC*bvd&=5=zvDOk(Lt+r&2Niu{xI4Tp6JOyM~<*{1Je<q)3ut)Ucsai2wHUNgta$>
      zSMAyKyyu!N$8(}>LSyEl*N23h?SGN;AS{@egJvL$hbD9^rh`()h(Y<b<H`MDzaxWB
      zqT@=!a@+3;_fQ0m@{?drjYhC%)Og3DdFH$u2W;Pq1b64nmB*SbaUNNdFzYi=!itVE
      z;pJ?NO*}z`u=u~jI8Hc9ZEz3Ms2yqp5lAm06w{jU9fiYz490cprk<O4gd)NC=nsRg
      z+;!B3i&ITE6^dZCJcih=2t&yiP`O<Ss{A=*`KO>lL46Z^%5p@<1Ge+*y+ei{V4>dl
      z38UWl4f8v@8RXd-@v9G9xQ_y#OfKS7EMZw8mEZ)^WUR_H>OWvK>c8-KnsUr}pJPgC
      woS9J6X%$bILwGjfZ6~rcrD$!Mb;62zS6JGFr6sHkUc@z3tjAS~Ucv_G5^n(wdjJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..db870fa5667c06744a22013525a2621041960af6
      GIT binary patch
      literal 866
      zcwUWC$xa(V5PgNs4A=uWEH+^Wp~x{&1}+g2h=UDCL<S+T+}q;@CK^v$vw*(}gdnn%
      zLq33yLR3#k07H;3)wR9q_p1Bu{?~5+D_AhmL-_VXoQswnUbz0L-SotX-H?&+>|Jdu
      zs!>yA)jHZ)e2Vu~Gj5tl6F$Ad)<oz!c3In}UV;&wx#8k6p;+zix;4hEyS^K35XxPH
      zUi5wcTUh&iOh{K$UG{^Jwa^PAgA@iVm>48X6yL!ORb5~1#f_Q_4n@tAgyE`kgm)|g
      zSI3XZv=&HM?UHHdHd$`k;R>PfA1;J}y7c6!h~&0%V!mtU4{cjqM7BJaeq`^eIFwu3
      zW$IetxP>v~3B(L1-{~e~4pbaCa@*BnMmyMk)kyByl+8do%%D!Nc6?t36;Fhr3{A|v
      z^%>rj&MWN@k9mHU6n{y|<@DRI*TWeTeQf(Vs&K69+0xQaWJ+J!u&$G)A+{Mlfhz`H
      zBFA1niL>~CVIc8FFq#bHRXh&d;8=GVrKL6sowIIu*6p)d#=ltxK4KyvJDFgnFrDOQ
      L5-jf-vs%mp*Z<o#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a6ff5bdd827bac4bcd76ca85dc6fa2965971f2e0
      GIT binary patch
      literal 2089
      zcwU`VU2hvj6g`ueuCtw{sq40sLTG469mnmqr4UNeFS{{Gaop0R1_Gsw*Ar*c&2HFT
      zH$i>lODG^Az61dw@lxd#5Eujq!7D!sac6BOaU2D!FYB4Pcg~!1=HBr?|NizTfYY!w
      zbTFjn#a*#%_)C^kHWqC$Yb?k>*v6##X559Mn|7CPPV|TK>z=zPz2L3PoN&rAXZeA2
      zq^BXmFxrAs6uxB|Y4zQN(+n{#oRTd)hF!s&<@cXrNaWfhG(vkuEyoHjFbuW5X|TW$
      z$+#ui1%}-m4`G*%PVC{((7ip-wlYGXy*bN~`N~33defq4ONLm^HHBReo~7pX#fXx|
      zaHUO-J2_3FyBC`x499AmjiMBeZ#3^4yDOc5xGIeYIrby2<6%6a;V?t*&bv5{;8D_8
      zmO&$$7YlS=JTX{1(575tD)30oNEE#cQCYGArCG;OJfWeFp=WC*$1(KN)yX$2!X{S^
      zBsPIvE6z)k_|E7UKtjWDhJp4>;}}Go;ZTD?v!GHGLkya9RH&rDPjH-sL6n7QN<S>T
      zi|rRtQ{vThB?w$+M8j!@WIGVG4T{E79B1+L1`R^E{Gc=%kr5rkIH%!RGI!eqj^{vy
      zq+9-2-7SXBgfe{?=Q%E@U>5}&Ze2oJ!)1p3+o<Nq;0goxWsr5vieInz#Eh!BVPrX;
      z$2eK<$wgr~L3mIhimP;dQJ8nio?CHBswQ(BlgLv~QoZHnQbE|2mRhTqhlcCa2H~<;
      z3XF_vyPjfsgJTNQ410)7dL5j2*Gp_YIc$gl6gXbO%NypOVL1Pw=BoxJ<7aR~!>bJY
      zT7psBBF(d|CmWhC;Woz`4Z_(?kr~`(U?l(O|8+K5?SxGkYi&t_FsT8zY9|&`ZpAZY
      z)>2m$-y-a!N~a5*aOk<o*uwWEb?K2E-X!$VQ`$-YD6FSPy{9zlpcM^K`gYOm9L+oE
      zcXx8=XXweHU%-C|llIbA4@1kev4S2NaoR+w*oT;cR8Lk7h7~9?LTi60gaboW9GXnU
      z9;@Q<RdgqRf=(+>uHm~>EE%q4)!MH}{f$$rSgB8HKWD0V=4-^)C!?#-B5R0rR&jBC
      zacm9Ksn|q_)lb+j{Do`zI?RbGUaSpo((sivBvY~1!py$b%-1(E#fI)YDFfan-S3bG
      z@6zl&^x}OS#|QKztY91;QXQ<|7Cyo}K8BA^a1WnS#%K5(U*KDOiTn5p-(wZO<D1aC
      xvxG+e)V))qB202m$B!sM(#iL57_%tTb=}9o`lthQAuEf{QTIW0L(Opq>_1*>IYa;e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalComboBoxUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d14dcb636887f41b03c01edd57ea8e54260b0a51
      GIT binary patch
      literal 5757
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalDesktopIconUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalDesktopIconUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f523996d951ade9f3946fb81fcef90d61df930cb
      GIT binary patch
      literal 532
      zcwUWA(MkeA6g^j0T{p|JqF#H`f|lwfGJ41m4C|#5dK|Z@CU<vacdb6Fo`ixvppS~~
      zY$k~X4Z}Hi?mhQ#nD>vDHvn5$E+9jw-HChg=*AB!ym9-!xOM}X2;V(1cqHRqqWdjR
      zhZn5^tl#8a5i8F<G&mtA<o8vmk^@4vTI&$3hQ5*xvM832L!MA>t5BW}g076tMc0>v
      zN?Uuv?}$j5_o!(lw<;!VwEvy7PO!a5ibR?iyVZ%!<Ax6UI+S5juT5KyhwS2jP~_`<
      z_Xw+hSrMEwJ%~KnR3`Jvbf`_Ui8c1j!ki3O{0)o+e(f+5b8dYI`#Bvuj1Duf2Mcw~
      sa8>#eG0!p=F^BTVU^_Jg>{rm`5c5xCk9^v1{@Ay%fC@8VF;y*n0+nQcV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$ButtonLayout.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$ButtonLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5812e80e6bff20f80f0ec2a2cf4903fb6f4ddd79
      GIT binary patch
      literal 2657
      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
      BNm&2@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DetailViewActionListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DetailViewActionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..347cf8f277c8ec30f27a3e7c8926bb0e8820da8c
      GIT binary patch
      literal 1928
      zcwUuM&r=*l6#ja5!mvvVgoJ<*k{D5Ummdp?QL`~7S%Pj{2ucDPjM~ifLgVZVH9J6V
      zmQ`Nz4``V~tekSTDp@NYxLW1SyQL;tmX=nj<z0O}vjG;eDLiz~oA>(t`o4bs^*>*(
      z0~o>kCSnX{mc**KlC7*McOkp%h*GvJ1L0&R^ggZ}nP2q0iu5lQ`o>75oEat8PFsQU
      z+@h)k(v`jmgP~o=$vT3foS$EkR$!uup*PfuwIC~3r5j}H9T}Q}MOEn=X6P^Ox{e&V
      zolvd{PBILo{)b<BhQY{twoHKG5e^g0NyO2{kw7~`Jf#n`6_qO|SIYC!zaZuv$<R^s
      zEaA)uU+Mpv($Ix7jO{*sL-?qlHW6y3q+jy<va}fvM~&@(?yQ!nlLWeP(8Qw*>0MXA
      z@fdm-njK24%V1!abeuyRhjD}qB|5FEV%S&L*Ey}sC2<seCZ1r}yTi!wB%UIu7Gy9j
      z9b#YF1=m)VB#ewydajV9JSmPeG7PPBYD-}ZJ*jkkzAe_Au5f^35JN=T{R*dqD;<XY
      z^=_e->Kw*1CPo;#8wKTf7Nc~Hd|CEZiOsGpXy?81vgdB1e2n9Hyugsqxohli%NuHQ
      zy2axhIh-JbEMJO1MwC|~u!mEPn@m5rk#3yicp0Y{T2_{A3Rug3U^`&<9nN6PM4pJ)
      zSs%w)j8kPB6wz&(pkW{wk8TU65w1UzYr(5HXQIGx=;0?hUem+WYB^H)8z${O!7+*R
      z1fH<%4MV{Vq`xYth&`!7Awv9hjyE*hts97k?KR^9QI?n5LvuXCF^e~8ZYds(!2>BQ
      zZhw`CRPB3-V@{Wu^d%)%8d|Ns%<+y^o4#BY%B4YIgm%xvMv)3vt}U-H#O4T{Sjl2I
      z*qCUFsA$p2<g~ZqTT&b80`8pFAsvH(7hHNH@{Xuf^e}ZddPQ)A9<?~FJz(wa`fZ~}
      zK1M5nBxzen8l``&NoM+QgJ-@#>*wK_y|g#c8Q>dq(9T0SiGA2lUxrQ`h$65N7!)7)
      zEOQI|7P>ygCy~@!#p4rNtm5fO{f*y7*I;DpuOb^s&wYh9Ee%%j;_OYdL=G>_)~r>W
      zzJpg72G*}56F+9$MDM0$pwk%A>kf)>d}OdrV_^NpzxQf6raGppxJYr|qV@J>TjSyW
      zEj9BUwedZA@dLe7cZupBaU4I9{b#zAzu+={#XNq)B7VmQ^u3Bd@G<_xHT;F^_&bDU
      vG-|yDi<aKSdm%hmA;>#M(LaO*n`n^eqg5ifVps^PS%eBfCGzQtF9H7nROba~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9762645920c2ac1b5f2c62b2f3465a5e3b6a3ca1
      GIT binary patch
      literal 1224
      zcwVJbU2oE06n;)&E7S_?L)j4Brs(*X6s9I77$d`(U_ec#ySBi~)}^$jE!+HACUYiU
      z7_a?N#`6|bjKN@b)1J@goaemfeEa_S3xFyfs89&?BlFliHT)CHIWXSYX5Scyz_g9F
      z{64d6(KvKnUwChtxu=#Vx`FGxZ@7bwyW^hLyMg68Dx!qUBuu^I2cFptMt;J4aA^6t
      z3Zc}Rxmu0W9$AhRJSLR$|B+YNCqx@=PsBmEq+<^A8X~x?Lq&oR$;*Ib%W}kv;h-bD
      z*Jj5SgvFNIHSK-Vv!p&YMrGrK#_Z*%4T<R_%}{zJyuRxVM31mG;$@g8fgz5C6Bwi5
      zT`4mW4Og+EB26gF+<=Z%WC)1^5lq+#*?i#-7SAWVwKx~b>bQ;@oZ0)ypv^<H2|E{I
      zA7a!rtmCGN4Z@R)V(GYr91oNE?FpL$M6Vf$0bzMe(6CL0e%U!<Urogwf*zVJ*O2%c
      z@+hh(5LTv*Lq`c)ge6}DjiKl9Tl{K;urPkJF<iKA#H*71*HaRdewUAA`U?=WJ$LAJ
      zg)|b<f6t>VbD2!jafH{fP2U&1n&~O~h7I2S2;VuSQt|{?QV``6h_OA++C$bA{%gh3
      zNB(?*{vnJ>N}Kd3o0wB_NU^SSj<hadQ6gdq%VU(c94V`0if7QyaizT_g)>|`$J$ri
      zKF8*7)P#&wDu^jntSZ|f^7<%yj4Y+QC^L49bpw^K$7+bMjeB7aJZ)aq`-uJk-Y83=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab37b07eeee414f11ebfa8c979ece769a84244c1
      GIT binary patch
      literal 2120
      zcwUuN$#NT26g{ssblh&+vaP{WLINg{T9Fk)n4$#7mJ?8rJm5qS=9csnb*iOyb+;3n
      zU*QATuz;%A!BC;tQN@M=wtN69R;&~5Yqe#`v8%*FuitR)x#te=>DQ+}`~+Ygbr}-F
      z_51n*eLL$sG+Otvo2FjRHo2>t*^(G<8Ya&-EX(2cox<$0Ve_hM**kfwS+SO^?UGgF
      zri>uN>28+AisRaP)h!y1>qEi}liiRW28NK~@}|QODGE?_%Qeibu+A|IIou?#yjEz{
      z_%;J8FofNP;mlrQNEiE7PgLQnM$2&DW|&L<54%*EA($tf17H|cF$h&b0OKl#5M>A?
      zQ)L-(hVet`i?*%r2>l9T7#DVvDrB4zvuPCrP#8vvMvJd(H7ne{tyfIWFjlmxx>?q3
      zL#+MHpa_*=sei#Il!@Y(?{Rm-_>y~~3xjwGFUy!^817BFit{)}o*fUWlF<#5H+jol
      zbQxmFLaJRPQzs>>mHXr?C%7~fX(Wl83`9lS<vK;HWxnY)h>%PR3NGOl8S@8TJ(iO0
      zHdMTd%Vgcu$tsjA5SEf86d%-|T7)5*JjOi%ouj~5@_AgUEQDTBkrR~*RZXtj3a(*6
      z26aWM?-Z-Jjzx-q)OGDM%=qFCNN#nV<`m>{L&h@0#7P(xH}MWNna{hi<4`DNgFj@@
      zj!@U>yxO+P_F{7~D08Y8ykU8VBI@^46j7oC>$Ms~JXts{JqlK_E@O@1e1FbVypIiP
      zT~fTJ+teeS=3_YHSHKsMOZ6^=s5>gk_<%ao>z38}31y?MVYsW}BYaHvtWGZSR?8)C
      zPQF1nP5~v3v7;WMyE}UDfOJV4JFbTUb>{&?vfnh*d$Q?;OpVYR8H2K6ZP`^WRwV8D
      z2AUIiDpH}<;&$HD9f#8;j~{<?agL%7&@V)zB;FBvz9sRB0Fj7zk7ymH^C1k=I6|v6
      z4+%_Z>0Ly$#~9OoMC|TkBz7^ONxPW(&f}P&aSTC#{fQ9!4Fl|Vx*31qH0`UzMGQED
      z7wF4y*3%)_FVk0?DcU1U?Bhj-Z#ry32iRX-3`&RL0+K$%0-=SzLBTM+kCcROk5K&W
      zQN-IYpF+$oLh;;ZFz1t9@yWu|f$xz$D&^lUo^XdJ+~Ii*ulqa&!U(|$5;gS|Muj#p
      zZOdba0*5KPU{4{lXNb{X=wYmhPONX>O`rA&)r~TY^>()2qPzSEkv&}9!%`{zGu~bK
      z8c}f;$n4`*02ecRSXs&Z^6Vc??56i|TLM)~(*m7*2Wxxy@UVoMXa#8q1JW>}(g-G{
      z2xg=)T#&|*q4~TN!-5pYnw0RwYHdNCY^>uGd`fbo^cH@G&xv)C<bMI(Yom(ir-~Zj
      K=j<9dg8u<j)bO_e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxRenderer.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfc4c7d0b893756194d598b68e936948c1a2290f
      GIT binary patch
      literal 1992
      zcwVJdZBG+f6n^f|c1j%)i$!r|RYdKyNbwDYvZ%Bc1`DWQu@w`i?X8R%X2{G`*?*;p
      zmc&gq`+5J8iSgVSAtkj*iD`1@+;h*{^W1Z8|Ns8=UjR4pT86}sd#AtG_cHDW!+M+9
      zHT6bjhkLr2SrKc&FnMm<wq5SL(8lwI!)u=H{GGFRs`i4t_ncdG?r=v&h~Y|mpgeEr
      zP17qHu9xGcd0@y8Gf1*Lt!7&c)5YGCYlnVWhKRRqxZ_g{>E0s<w>iTyym^MD<T3n?
      zm@c=SWz`ZxC}-DsKNwCbkP(fc52qCLW00XQsg`8K8SeC)tPN%ir*TF^N-#_wr(U%r
      z$~mhbj0nT2qG9pX=1!G68+z5`4Dq5})6J6Z7-IiZ84`>#JnlVD_jVwrrACe6e0Sy;
      zF1+O(?LmQdZHw?T%pXO(EKGx&$e21Q)~fF)c~+}b)Ih6$@G^(~S#b@Q75s^dGOjQv
      zzKLOHL=7=q#dR6i7}TD@Do8?Q7@(rt^n@a*b_W?l8aHH2Fr4dVqhJyl2ASfn>N|7~
      zV*&1iTC-{!=5@~@e+tWRQ^76VCP$Zh8+?xlOC&oj)siUTu7YXY3z7tL_v<7F_4zX<
      zx^G6oEV4n8z%h~Rv=r@j6@Mw1#{*)he$W*wG#4hr!tZpHAA@Rngq(~8hKIi!OF<rw
      z8KOi*p6`0w)c8qF)dbo_1xwKA%sp~e5_HdyY*Gg@4E>@l8N%;%v+0jkM~Bj(c=Glb
      zm?oY-cb%K0=XFw4s55KS|4X`Cuxm}4zfi*v(>QSSen@Zl{Kq@#r}*`t+St0?bZWfd
      zM>yL_$)xb5jGAT9sF}L!a>_W;b&PR|koVDFg+xDkOMt;a@x=KWMh}x<<^=7YBjno+
      zr_x`br1mk8`Uj`W>3s}+!SE;F{v53X!b)01SjwYcDquwT(3x1z;}5`>E@0G;PqX_o
      z{x{0qPv3GXJu#XHCBpl-v^nt~#%3d_)MqFyjE_WGNVPE4w!Jee({6Y~ZsERAf5zNs
      z3lFEGLYs)TP!P_;Ei9)#9+o&M5=s?Bq*sX2SCO_5mtJE`dV?uR$Ba}(L8@U*s$)}X
      z_z<>&;tnB{@dQOGT}Uff^#PW#hNnJBWjyl<6Vf_KVZ^bB4ZI+bQ&3UDCXrmg5MGi;
      Ul)TG+brrm#ub`aKxNQMH0J=gGlmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96734ea31a127e6eb6a16d9c1bd1039123a2e24d
      GIT binary patch
      literal 2259
      zcwUuNTW=dh6#i!7WD_&Fla!G39?IG&ae-1oQd&sTP?ub2E(T1wZ0xbK>1H?GT_*tw
      zg%{rXh9dPB<PoUAARZ6`R3tzkcmN3mf<J;dvujuD8rtx%yEEsU@7&MXZ~p%DGXM|b
      ziU!VbV%69%wo=}vX%|!LmQhHpN#C$iGwMBMT5@8=aXjfRr3ck*UfOx-N>@XS;cyf?
      zDGNr)@~2JDpOBVS6=Z1gS4?m47{k!?u5FDG?4)U%{waoG{eR#R8HU(|lb0=ExJ#fB
      zO>s1!RX{@<LxZja+NVuh&X(4erMqY>Tauw`+Q}JK#&At_uMlI(afXrIo3BX`#V}Bm
      zbqSep*47<c+CIan+Q`l+(XoJ(vJ4{3Ew9R)KbFpB6Cu^u^iwzSV{!E29u0dK61(<L
      zpbz&lw2@;GI(e!mYJG`t149D>d$EslT0v$^xmh1U6jiIRK%892NmcP<8V)dsAT-kn
      z$Z;IPpoYT?2kwLxxDQ7dG;(OxSfhF!3Z1E{syGm)a=~{=4@JVD3nY*vpeOxBxkYv8
      z(d#7>8Rg1Rfd?=g8cF9I`@f7-{Zul6kz;};?4i&|2<*}8B@>xu9A|(+oDg^vBMdEs
      zm|Hh4l~f1nS>?wlPHLcb>a6P)fyY53(o60wNJ^1!I`+7cyI6FclAWi%)@wS)a@@eX
      zCj_3vI72Jhii&sZw@QcRCk4*b*_m=&83L8crv%PcRYp0ZI4AJ50=E{U#uR5pV7AJs
      z#XKW$9`lq8(>r6UY0L++n^l$;1(sBz;$*49RFG!{p2PEDsiqt?UY*h46)A}Q1%V5A
      zF|14|*QMVgrpod%!(Nr);ewMZd1`>qn#C219)H|%X_DhGkkhbCm5r8VDLrG@Mp3!~
      zc~A*kRMY{0Ar<Yj%5c~A&vGD{3ITz;MS&HVVOv!7?9*=pN@UdPyC`5`jZ$knQ!0Qe
      zwEs3p>NkrbrZ)JOwZzc4VOXVLSJnkVOp~_T76VIDVN5S<5>+*pr3ufe^ch~@36VBv
      zjPAS~NU%Vgs&?E+`+`$)b5h+H_SA2<VI@yC)3!~^)-pU#l1&la%s5CHYM`GW>*!E_
      z2s&}Z=nv6M^cK2}(4Esao*ep!ULQkz5XiJEn&R;5XyosqgYJSbirR@Tr4ik@JJiBv
      z$wo8Lwv!){5_-z$DWiY1>FDR!KdSX<H!zUwYwFX=I9SI0mE%wusU5T>yB=0FMz>_F
      zj7NH6*U+0J=3`}?R^N#-rgqS+j_C?%nn>z9SH^<+X3EI+G+sk{vg@T!@Jbnl9dhJ4
      zR_T;{|7Jw9<TLme=-^+Xmw$zRegjAN*Er6<#VG#{r}_7o<Ub(If5dtI6E5(dk>|g_
      z;=jV@zu_|f9dGkLaFzdwcllpIR_4RVD_Kz|8%~g^ZLH%`klk&#@PayQ!$*lKpiUcf
      kY9t-+U=v$Zn_j$ySMeHEhvW6Y=gW8l;m)Lugf|iU2lj(r&;S4c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..48b33da80f56d46a6805d94ff4cdae47f797fbb1
      GIT binary patch
      literal 2310
      zcwUuNT~ixX7=F&4Bnx2+Bm`P4<*Q(m4X_kHs-}gek+!LPv_hk8)tOCl0^8XnxVyCI
      zKk*lM<Au%$&NyQ)z3>M)ZJlv^&t?e$LK`oVlk@RB@AE$IdrtoP_xBe7uHqXN3d4=3
      z<}-88aGzVXEn~+vD@Ij#rfsas@7tCwa@+N~E1ZY<DVll0$<?dH`mOrjYP~FM6(NR8
      ztrXd!>p5o0Td`a(I1*tPZas2>p^ITcZW~2m)?DMhQ{NGe_g!w=tZfNNBWl87P%D0T
      zmtp$JN-G_$i&8_RAq6*NW*E9$K|7u(GsJy_VH2gXUVKWcv>)-dEq7|3A-&SE2@-bQ
      zs#)G5!(8%z;8F#KP>wS02E%}cbLfqNV^BjMh8TD<RZww(Ve;*%NrrbcbR!zY2u4+0
      zVn}tYM8g=y8G5&b*Rswql1v>-=U&ThMh2SHa2Zn!LxjwhN@B;$+V+tuhMUQ=2~wSu
      zOeXfOh8}1PeJfT?tnF5d!r3&7wvaWfmrT20I+mOViy>J<hNaFc(XNfDs=YhM`i|jp
      zBb&Bex%^DjJSu4vbC_3QFpR$WtVZ{3fs!KY4tLkgDn&^It~Xk9!*fV~rVH;g#41f=
      z8bswNKEy{Vt}*nVglPB}pHORxZ+A_b{1{B0Zur#WD6V5s#SMlFXBA4r5^ge_C!zj|
      zbor=4#C#>0>gf7Ksg}1i<nSrAd&P1@u3n>??72ZQ6r+vCe7<4oZ4GyDm!XGrtcm9Z
      z)80L0RsiY3J-Rh*#0G&5{bpc9G5)rqGANZ2-LJD-nd~pML~Gd6=L&Blcy98ZsGd;*
      zdITbs;JV0WI1W+eiuJwlpMyMuM)PG`R7qFXlZ^Q``7?yAT3PH-eguhb)OVed?*ch|
      zy8GuOo|yABdQ@|^>AHf{545=xn4k)BC<sHPF(ls``rlCG^#uC+<qJmh2<`NtpU%c;
      zR;HOkqpqj-5!Zi1LJ$3c^ZOXqf5k9Qrw?%P023R!KV8_z^e;Z=75W~cNKpPkSos^>
      z%1gwQR~S=XBT0K2@e?aj^a1@&V<w3BiXw(+6hu86fA0Vv{D1{wk5i=8nFD0j^jR5R
      z=Q8Ar17vkNxlECDT~TQIBW8SP-iMCA5qczck&*@vLE{l5xJt=%VU%|x#iO{&dywJh
      zu*7?jrST4rVV%dZ$p`R=Cs5`?eo~8M9tjVUlD|H~3Z<2x2&-75NW+-KI^_SvItGKa
      zO)|T&#&91G0vjF##>disqEDKCnBI}(xb%sSA;c%p%_q^%r+gVh4PaA744?acGi=~)
      zKyUbSAWTk7|J<aE$VEQeQlfCPM4NaRfae2n#JBOM6X<I#=tvV?z!w2JL#L%cRiZC0
      hoD808$w6)ApyEqBqJ0IA{qs-o6^&6}$Oyhh=s)8%Hemn&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e67ceef5725fb3e3065fb4ce8050f6d08fa5676
      GIT binary patch
      literal 1179
      zcwUuMT~8B16g{`wcA>0*KtVpL0#*BgtomfEA%+q{P1Puf32)P73PYA%vO9(T6aR)j
      z2#F8IXMdFO&K3!#81ZFh?wxzjIrrY#{qghbHvo_E#72tn;y@gWt{b1IV9!1BMcX};
      zTKMiOv#u*&*7w6OmeKo0ku5EwdU)6hSHtc*8SKhPMmExf#mgvbvMoBkZmL+<rSJa^
      zBxLozii?j3)#kNXYn=961xl|FmP`MUSKcP1>*1~(1YyWQ2H6}e+;CuHm|&Gmz(`XC
      z@^$C1C8I6T@+D!c8G6Fs7LhXcxif8q6IQQJ|CeTQHFJBiuQeQY6b3TTgq1&Qd}%^!
      ziOcl`JKnSoq^E0*ot<*eD^9d~kzX?<PC6LJgpFH-h09oN7U=Z^x<+hIVh&T7aWIQH
      z!Z2%Fld%`6Bdx-KFi|RB;@;E|<1h!|wu3vkOR!_9w`7-v=S%&O$qan1fG~bVS%l27
      z@H<J@`zqv1#og%=s6oi7cvG@`EqB?mLvTFq--d|SL$AZ5$+nYX2*u{VOJ?lcX4r{5
      zV>A0y|NNE>3bQnVfXCyDIF_*ue!AsrKLNtz)sF!4+(3)JK^h%3&yr6m_ShKUb&##6
      zY^Qk7RjOZjIfL^#i5W3Ib7O5GW4*;F+YaX#?@f#uL^Jtwl#h&T^IoV_mkRlGK68fr
      zho$eBdX}wBXHPMG%2%H*fM<*lOCoEvF~GZH?P1K?$E>9iqKzKdIgvTdV<90gU=hVc
      qZ~^ylKPjz%2Ph$(oXUL4aMlnis4`0mO9|^kEGN==pm6zzM85!11}y&o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$IndentIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$IndentIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ef6f124c7e82a13317ecd1ab770ffd925acba772
      GIT binary patch
      literal 1373
      zcwUv1%Tg0T6o&s!CJBT=Vi2Mrcp+*o$e<!#KsLe4RAF3*ach&bnV}{#smvhw1iICQ
      z8#lUlV-=Kz3m?FTvOL{01S-KQOjRdm`keFifBxyp?>|3(0l0w&Da05SHu)RAWBA*)
      z+ceq^e{Hlxz#ZeM{C;FRqGEZTFFG&Gyy-TC8<=&^O+jPG$WFuI)c0&-Q`CbLlF{w~
      zPu4Od&FbpI>N*268HOvK>j&HoYTVfpaZ-|I&}>zhUF&ULVn{SZJFtinShk;^XDF|o
      zSTeOImu=S$Rv6|A|It^hk*JE-5QAViqvI4t(uiYRM+P~DctIA7tl6%pZnZW<XPs|2
      zLJr{7xl`jETRumdniS5kc=F?qI876zd=Z33jurY1D%PaL3p$3NlfyQ{0M)OCo@oU$
      z%;$9sV}SAvdIQan_e9uDD^SCjLr9>g<0`H(=u!Tq-3Tn1nAK5|iNQ9v-AKx8D8=C0
      zfl={VZO<jaONV=pJG^b#b$`hu1rjo^<2vR@L7faeu9s3xhS6gXl-Z&6mLdJz+v?PX
      zG>akEZ`_=0rU^{f6`hL1eP8$~5TJNs@9B_3_i>TDi_=O#!vs<opm>n(Yz%2yWVwpT
      zS|F2=w}hUPv@$qNm05}wC?Auzyj0%9Xz2&WzN?<Is*+LI!a0g{854B^laQbDn2HE1
      z5g{oF(}&$s0b=ivh`m>Y@vy2(NRs-HdI^{NSd)90>1BN&*2jOauBh3WydvGnSg5(Q
      zi|Kt77{2vP_UV|(n7m67VOe<#WJ5xka=Vzxq^(!Iq|Zl4*)EALR77e~U4njdl2o3Z
      zI^c|H`!Evd9rO#vV_y|=A#Cdonxj9)o9dVxZmE|iquVrmTt$l%X|#Js5%1!jVoD?K
      H(>VAGPoxUd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$ListViewActionListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$ListViewActionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22ca84fa642d123d00532048ad7618af971225e1
      GIT binary patch
      literal 1834
      zcwUuMTXPge6#h<j$Yh5m2_Yef2{(i8ZY~=%qPQ4=1!QqIL;~RwP&+%lVN$a*so5dn
      zRZAcAC-`6$Pd-{!!CFufEH9<Pzwn2sr)T1lWfLksbWhJYr%!+1cTV?{zaOpwID!Qe
      zZG;nxa#`NV)>a&EA-m+tO17#(>1IoMKI^zDf6Mo4D!5!2Dmt}r)=?`b%c0|Y`cHW(
      zFkuk7b(X9vImd<hMO6+>v=as+t6T}QYFT+<ws|9=J-p@AhQ<lQ#Vw=A@wVfR=Y*4l
      zvDE+Am!2gUdEZt^5OxTd=&+DLmp~HTghWaQbQK*>P2H}}tKgEHcNL+h=$EBCD+5RW
      zuNe&uoN#LE$8RDYv+0tNWm*LlKd363us^2NBHS6hW*$lG!Cn(D5z<>eU*Kg75IWp7
      z7zDbm^XwDYj{}5c#c8nXZK8EPvgRxt!jOqqSdmt*z+t?~R2Eb?qg*b(vM>58tdNmP
      z&lM~_Cnb<ZhS13&>wpmkQt9U7)_HRp;fTN}#&~A~;k5LW+X6GPGR$$jZsG`G&t_Q#
      z-oONRQJ|{+GSlr}CwJbjF8N+8vxa?C;4QpOu*!jwq0(g|jHfn7oZbkOrtywI4#&9y
      znns*wS97d3GX6=NF!3H?XNyzdBu=rTp)&VGi5r@=IP{!~I=ne1w;iW(*2EdYz86Od
      zyss}rXW3OUXt?xt?xOSffR&fF-Eb7VPzB49L2OGE3UPOq1g3P&cKk;+(xC&>EPGz*
      z4Z2Pj1!i!GuO6r4Uf!?_#pfTEs4(N06}X~NT7lxT9h-}z&DR93YqJ@sCFyu9GI50m
      zUUZ)rx8vFB4xw$Xz*D76*t>awIitgaBdr<#c2HK@$xYOH<;HXlf+%==(etjX)fC@|
      z-5WmyIKZz`g2y&ccej3=_>FGkk%Yz8?Yx@ce{Hcc!}lRFKcMsbC}t<m?HmJqhaR3q
      zw6?Gdz5FHgVRxK?dSP&W;H%6%h<oV&8lT0h!8#6>^wPMGe*LZEwW-nAH(W<nuSV;5
      z^Ga+wR>!*!kSC0+euGTnsPQcZpLs_5j4?eP;9LTq8`Nivtls_SueEf=o(pw+$jL7A
      zxcZF2B)WKh$hd!G#E&qDRen?+b4`E3G5m~k_yr~W${q6?7Wo_EcYKOJ@CE+Fmv|a6
      xpNQG5G1sd(+=vtiaT6c$Nrz$MV|>C&Ph$uY^Q=f4$`J}1D$<Rs%Pm|1{sp?C<<bBE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserPropertyChangeListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserPropertyChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd71ac5075ec7d25d605c95eaa13b3a3dcb34245
      GIT binary patch
      literal 7109
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserSelectionListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserSelectionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29fc30eef5a2077c912320e86269c9c8ed5ac387
      GIT binary patch
      literal 1334
      zcwUuMOHUI~6#fpkFwl;rv?vIuyo5ezr@kLWH$)S(-~wdfZra|$kYUEmw3WoQ&*;*P
      zf50^f*2INzXX1}Cp4%2FuTU2=ckXx3`ObG9cYgo*{sX`j+|$rSc)V%W%x%MeVL9u@
      zbK5K%Te4!>#*%tJv~0Ps;kv%`o-R%whE}94ixtat@|Itbj`TDH2oXhS*e26GDQvQV
      zh91Ifdl*@hPQ_4OM<@tAl?}_E&Jt4jj-}<;ZQgRM%6&p6{vUpcH9}y)Ey+F*&gjt4
      z8-zf=jy^;PBCZVj^Ohr*t6K%>t(pZ}5~6vxXxeM0XQ_P)3@G7*rOv~jUQtd=ubFn0
      z4Y;7PL`WP=@0e0PP!MO<hhdCpIL|&EE7CEFF+y*dK}AZ49SHYGfw>?qVqC)|!oZP3
      z9TS-3DOi^+MY6P}5+Dr56Zyllk<&2EDK=osHI$Yh%bw9Oi#Q?7EN%J-V=az<A=^$_
      zRuXd>QiS1?Y;>fN;Z9rrs%O@u=Qmq7&@Aengk0j8;>zlLORjSN{rz0j@iF#1CB*nl
      zXT4$LGADPCgAh_xFYcu}a&n@C;EG%Iin6I@=x84^%9jhf=<pCN*rxAG9?gkU=MCe0
      z4+KBmph!er2mV!bA;8xm$Y_Xnw|U>iYcQGm3O)G^;hl!ffWp*?c!_SYjVSMR_EBgI
      zgS-;X;#`a6Q-hU%L&;s}yBMnD!cR;s&HX}PM?rO5UQW-|k@$>|T8%I0O%t#C!6ubB
      z@d{z_8d32EG4U3o;vJ^Md!)n%WW~pZh-5QRON9EmhU+XNj49l}O=cTqS+_Vb!QXcp
      Q{CAOS2<J}mIL-rq0dO~C=l}o!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener$EditingActionListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener$EditingActionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3e1ef8a0fbca756c830b3d398e7e61856d7ffe1
      GIT binary patch
      literal 1068
      zcwVJbO>fgc5Pg%Fm>AQ16xskuTOdFZB&<r@T0juBQc);KX?x!|Q@X{mE8G3}TSx^Y
      z4jeh~qbg>dAXGI%NIC58?Aw{Q?~T{LF24T&u!^>g9HD=xPSlx~oa*qScND07Z^Wqz
      zymw~a)B$%7qA1~bcdOZ#6xj#b|J2h-$|1+ijiF8je(k3^3jd%sEJE23dw~+#_k%<B
      zQyT?BBSY0`>hTGOsdu@MP)HAS(p)9H>dho<O{ms&sMD8(H?0}D+Is}68x6S#!c7-8
      zt~<!1<f4c&A>T3yrJfFX`*<|qct;HaCRBTouYx@lYqOt#mN7`!olVm8zKiLS%8(Bn
      z??>^7hlJ&^`zt-)FtJ!GqK3OR?hszgB+11+)ColvWt*A<xw>}A<l7xS8=tH>a_5qZ
      zWz)TqAB~OzPI+R9K+>lAzeE$9esmoBY(x<juL^u-stN8^D9XBlN)k?NJSMdN+aqCq
      zic7-nsjbI~JdM1JYoK!3yb$@vax#i=1ic~AbJ-ij={)@cxAP5ipR=5b%mvATRY6r^
      z*Thmak6W_Jg;<y{Y|CmGs-1JV=UDtHToQdn<1f>ksDM?6V>M8*mNLeLan*#;L@T(T
      YaXrZD9-^6{Ir%J)@C25e)zAWd0{~SbApigX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efc50fccbda090b7590f009cf489b11fc6f0d234
      GIT binary patch
      literal 4212
      zcwVJfdvp}#75`0U!Y0edD?k8)luCrnCb)>!sz_`Ip@t?ANel)0VA-9(z+@-ROh`bi
      zwMwC_wDxVVt+rxmYg>yZOOX~qZG6;L`)++ytyXPMPkT<=|2*~dcV{*vyIClno}BFW
      zxc9q{-*<m^zkTwp2af}|5PylFM8ooJ$sNi5gx6<fwj_G&WLKiw^pkd?RX$f)w%NGV
      zaXiz#wz;~UDqP!EYI}?2`DVs+BQP{niHStA&rg^;%#5FCb$UIsA)V~;O;>|qQ&+?E
      zma&dji-Bbt%FMLoix&-(1BHa;BxFrlNmok4Ir+!N1VjyGCq2L2w9S-nrZrTA7VIQ7
      zuim_kyVNNUJ(xBXX6GC0F#AIZ)h75`Ew6fshT4|121JfsVP!18UPD9dZJa9tMNKD>
      zYIM?OIW){vn1ZQM=$NH24YM`qv6@bioTE^R2{N0j5J6cK^DsYxcW9_NYxfH8#CgPf
      zi|LQqr^Q&!>A@D4)e7Z^%50&+M5uB)k15n3&a3eJr0X{kYaZ30ZO|~K#mbm%z1^El
      zw<Eb(uDGJbNhR&hq-)7Kw`mCS8m>Hh{E8K#R71DaU9c<FFfY83!n$mdDdCP{DK3uS
      zA`Np+tETWST%utTkqXQ<I=vY`xQu2weyPG`A}^<WMX&EW8QEQ?a0QmLw7I*+vE)ES
      z4%xs-u(vFVE71_ado)ZNR}2a(&`A7jqUBporo(B@q|JVEC{}1j0%^i~BUr`iKHcRh
      zT!m&0QyI_*Swu?Er^RYE=F?8hy-%S9tr})oUTd%ITj3!F(v*=aO9u#SkPNO?Sc7XA
      zs^yJX&V_2knnRU#g$`UB!qLk5wh4Gap-IkxXxT)p!}<u`PYM)OP}qQtylL8MvdwN@
      zQ3K(fNnhisAH@gp;Rrs�zB#n~)@V&FgxTwkHP0AD8Ggq=aSZFr7}>=u+4sgq)Ic
      zx_fNXH%CjJwOn<ElG9LXh1h7kj1sSlMhd_uuzq)spw^>s9o$^$nYO)xm6v9uvt!N8
      zV`^zFBTWhyf_h?Jz1YDr@lvj1+am06IxWu%cs46m>|9M}1Pn=yjU$Ra>{7U1YM?BY
      z%&c=Q-;Ce}4VA_FryRIZ;iI@oLxd5xCA;ZxMr`b@wEHd(G0xq%S(@4{1+eGjVVnE7
      z!X!+NV4sHe|En!j=dPzAsNa#@DE8u$62zx8tauxZyJ+K)y4a2V3ZKSj$f#sGo$pM;
      zdE+`!zD8hT9zLt^IecEj#9U+Uw9GyY_4)DTHRXI7by1QEC5e&q#QTf*as*$}F#mt)
      zD%_5N@B*7tPG&Ujk@C!UCpskT9r$VlU&)bdtW4o+(i~OJ+&U}mZ!O1N_(lX@XG<Jk
      ziwbvRJK51MTK6b?Q&y#Ya!wHbmcqBCy30Lw+kg&I^Y<!z7vCdsh`WaP7^E9XP$v^K
      z`(m47@;-$h2$_}3PGEZeDks(JiQs;P2Sh+$($yMlTYL>EWMwzvnmx&&u}|2X<K>KE
      z++y3X0w62K14k=844G^3_hW_QBjgcQmEnX2NH2a^X!XeH?xKKNKaqwvoY(L|nOJ&U
      z;R!s+3eA;Q`%YG0cUWZc*qKXdR5$p7cuL`C_&FPmbf;d|C7vrSmw7wxPI@2V{pfef
      zGx%i$zu>#!?3^h43cseIlxrq^Q)FRN*07`ih9V85(03nxtMEJgp1q8LvNLr!^2JvG
      z=LTWmvkK4QdA2#%^w{^tr*`g{$k-`0@<)Xi@e(V;HM^Z11#NdsNy>B2=S}CoT5~y&
      z1pIc0wmZFUDoCGZ#&@F&<Q$8)Il~^($fvL;U+L3}^eDF4qJ5ALK{AIw1}5;oH28$P
      zDua<vy<p@+FBsX7fvHpFWy+PolhaVa&*@ybC<*K=jMolfM*IjW<8?!r6W4}N6|c?W
      z+#xKG#rd`R5EdP#W(jKfIgj3;XHlx(hjRTeChPZOy8ZyF^g+z0Y8`bdsY}aPj0=J|
      z76y@)&~pMyLjT%Cu1hJ~PhS@rcj0D^@8)=Yd=PUuzdVcj<(x0bVr5%6t{%Xo#lu*;
      z__%R5TISw?tGGX75Q`3=UQW%;qHO>d$ux_#bC0641eY6Jo<GbCIm|J#_`m?l;?&$6
      zpJOn)Lzo=T!aRhC45Mi-6$tf*FjYT^x%$JX)*r#8`lGl;AI2vAF?jmp=+~dXP5M*V
      zr$3Eb^=E?AFAkGBmHK{cg(Yu)*w}{cv|f!g=iLN<6E8DEKSpqc=^QW{xfUBIC6B7A
      zESy%E)n(zubE#DYshvQd+|?kcvvUCZ1PrFMD1HpP*N595If9Q3VGkF3j$!Y5-ts51
      zxK$KGL~je#zR*Tk7c4%C1MFv;E-~uX58}?5#-<_MDbs^9jr0%>iWNq2NP>`g7T;MH
      zj^7W5!#NbgC<jNuY?H+FXA#w(Lxui47V0lxiT)x1eF>}em$6=d1-AYwdi2+@OMe}E
      z^fz#u{#V?t{|yKAzvEv09~jdAiKF_za6<q07@$v{0{UbCFDZy4{QDt2+i1p7JV>B-
      zu_BLADnRoom}9`3ln4U?c!pUJ#9|m5!(4vUQag;5wG|KDgZf$lD@5vK7LOi4U5MUe
      z;qX&d>(g>aRYd1E11zXh`2JxOs~2Qfs1!0xm?a;3#(`B&x<Y@G#QF~^^|!E;QD4TN
      z>?=7o86{X_=-6nKqRWUNW0b)&%F%B`af2}tw-_n_XMUJi4xCE9_+Q4Kn06EAudrE^
      a@bA^Y<Dc;w$BKZQ^YA($+RND+z<&Wbj)tTF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener$EditingActionListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener$EditingActionListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..777f247c8610608ad9d45237f485710d32622bbf
      GIT binary patch
      literal 1062
      zcwVJbO>fgc5Pg%Fm>AQf0onpBEf63H5>_Q{ttwSfD;0%;Xy|?8Oz9TKuI%l{-$E)N
      zao`3APQVXB%sN4+N`;Ve*xlLZnYZuFuD|{I^clc1nl1{2R|o1?od(&7j^6}_k=hFe
      zY*Z9HxAUfsxV@hw8K<we>Rr{7ZKT7u9i17DIjwK>wUNU0(C8%ogSv1CRm&ShN?2d?
      z4mdO}N`!?RRVOCkV~$O5zK~Ed`#P&H6V^JD=von`RUK=yMp$o5M%COUIPIj*We~3V
      zaB<l~5fvY0R0+j~O{jEq%-ctU9;Z14q1H)474522+x-Z1tUW?^B1IQBT`X5rj=bb_
      zFG&a7CoB%Vk2QS5#^S7uIoxt_ldw98A|JOgPbjkp+teJ%$#dr{KI`)7@XLxPN8a(V
      zXnR))lfhxchDVMFBu$$Cmu7;ulN_ZXTTO)7aeYs0HNoGCMOiyiS;m=*hlJ*TTa?=y
      zH%Yj0VdJqR@1iK<5~y0W&qMyMf{ZdeL9a;kRQ49}T94nuZ+*nnyF6!F=91*V`GT6n
      zzKx~o8m`MK2V!Q#uq~@)sI|`EpJDc^a7pw53xAoWL<OAh@SGo*c7EoJGsCJ8qm7nu
      YH|M&S*WE`wM+<T*5AaA<xjHm}-(I024FCWD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..73c804100fb50a91e90a977170d3ae42216011a9
      GIT binary patch
      literal 5158
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableFileRenderer.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$TableFileRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a67ead94011f58f5baec0f5daaadade1c1c8a702
      GIT binary patch
      literal 2595
      zcwUuO>sK2^6#oqbHl)+?3>8}{t*Dz&3BD_7YYPP%<e|K(v09g~z|zew-Q57zN9)^a
      ztyXIl{GdlY;z#x1YW3jpvwxJwJF|o)qz^ot?9Sf%yN~(ZduRCP-#`8W@BqG0P{xp)
      z)#kOugu7r^(}_7#n@VJLPcst(;@NAMdiRWNySg)$Y8}-kOkIeEb!$?0bVosmAztXf
      z6OhC)eM-xjp2T<SrkTexRC+Up+uFg<*1zSrNisWVScZ3)p<VqScCm4WP`5p)SAk(0
      zM+GV)D93gV1v?nZRRO5(H!OWHmz~fZnJ+_Kzn#&{am_Kr_qs475@$HH_3)*1(MFo5
      z^-@~8?d+Uw>6XWEq<DXQ5}TB=gsG8aXku2+c*%4+m5K#oZNW=yct}Rjh&vSQWQc7!
      zQ;sIw$*_ZRE08nnR%6B46li6j-5kx>L)@-gjvM*{!(sL2R>cmdNRtUPiM)NXiX69a
      z?8QEYut4-1E-_PI>{JLThgRIH;2wtB5+%odP{{+OHb5<4GBj=4jzCFOavS2<ub_<~
      zdP4xm{b*-U$k&K*R+p`l5=I@I=IB8NPMRK5&r$`BQm#=oU!204DR`KWQf%0AzY#o&
      z0}38vXt^CN9FL<jNFkN6Erxvo%XwFum=zeJhv6W{A<*C`Zr(7emLg;05gb96f};#I
      zn-k~g#xY{jvqwCKOc)x}!tDi88LgM&NgNNNjp~cuMzkWNh{n*z@f7+Qst7wYr=7`(
      zDO1xzIf$nf4ACT(&H~3X7$zgb?Xkr7q%1~SI2`2|6AmNfa9t@H<OIjFcrKu>*A_!o
      zs}_uo5Xs!1=QxQMg4_dKow^AY8yC%aisL0{R7%&=9It26@FXcLEfUXgOoDc@ouYMV
      znbXsbowFu|ucC1^ZAS*3=9qy&aJLv<uWm*MyqxAR^X_|XM-TAAlf_}@Jr!yOafZVY
      zHjScvb!siou&wLC1cYjwD}h}15(bU+9?5_El%2`B;`BOhOwX9~^SW$@j<E<{#w!ZW
      zZknO7)PQDb)4Id)Dqf?)30|ZDL!z)Z)`z6HjVB~B5g16q&T*W_8$s9P{p?Y1VI*qC
      z@D|70c!$`r>|U{fyy>o6STa<2!QtO<qeGe0^O~8H7e>i8s0$4@U{bVbct&$&T<TWG
      zCNf!yF13tp=CU-AY@WvX_6H+FnVDtSd6PqoLXOxuCnK*Mf|Z{0?ZS}yHf33K>6n`9
      z>XcAz$vuS@VyvA0M_@HI;?ks58A%j`=~+cz2k5(u-jR6Quk`p0{AY=&7BZ<>B)bLF
      z(2A3dkk+D3ctkxK0x#?wLekq>v~n5U@m2CfKOa#ayE+xIUd3HL?(PgnE1JUB5M%fj
      zE%7F$i3Hb>D8t`)$j2i-k}C+u8NK8CeLUf#Cm!;VinsX~@G%nKa5e5D9eljFgmAQS
      z2}<)a8U=8|$CP-_`pB-JUM%O<MJ|b=p(Rwu>*jyQqL0^CDAix^CavN>ZESpywgz0F
      zjem$JF46_|5nUUX(1Xk9!)F-A6`a85IEAao;!A4dWxS8CNb@y4zrlC(_anZ?Dt^G9
      zv=Zc<3<z2$Ppsa>dy>#Kvb`XwUc(2_WVzNTvPPte)kTV4Ay=1ZRY@6j;A4D3Mchkg
      a;$?hF#Vn)PBKs?pl_(K)A{}p6f&T!pD!<bJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$VerticalMidLayout.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI$VerticalMidLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1f36a57dadc2f62c5a053ee9be642b69a1c1b86
      GIT binary patch
      literal 2163
      zcwUuMOLH4V5dOxJb|N$Qp;!(E0|rd6WXB>e6Z{|$n-GEJJe=6P$w)i4*6c&9)=A(G
      zaO1$0lzA7|Kn0WHkfJzp;m(ht=$YNfilu`o)oOcZy1)MV>z?`R-{0>8IF2Sq55wG+
      zydiIunl~MPv(#|qM#)o=bW0Wef8KG`Vm%0&D!f)6UsGY^)TCQ+>}C0BupM!v83r^!
      z$(0m-vAU&dv}!R7n^k!;D#fl9>B~(OGFVaFX^y|hFu8o-%ySer@Ayvi3d8io|A;HB
      zF{Bp*TV=uUr~t>IUZl`3ki`H)YC=2oFFU?k+4ia`yeg}%V#qBAROXrt9sQjwrZsVf
      zg@dQ>6pRY#ca60e_>rW%q{xxDA|qC7nW*>TF+9#OLVP;+1)jht!{DYOD6bLt$|qyn
      zk4#l%9s88P(->pOl26%hs)*Pho+#`kix=m#@3R8WVVps<<7sN;LOZ!+gF=pCg5!mU
      zsU^Dt1r%v62<lR(HdGiYd)4`jBphzfzT|kyZ#sc*2uuka(*<d=7nHMEkFqG?I0sEi
      z|31b7CvcMLjDiLOD{IHo0yBEess>RMcv+mmEXT|3{95@0=8S9Ir0K;1&T`OX_3aIE
      zMMiajSMeHU@#HOr%tX0dFqswwmUMX9RU46JeqP`W&HNBCUw7=NuD!|vZ)&eh80R>H
      zWnEy!bZ1HDyeM!9mo>iQYy71py?zv{0#|X3grG{#QA2I&8mH`(pJvr+$k23VsN2jC
      zPA#4R%SjqO*wJp1thO)yL0hSa26ZfM)=;-rQE;6&OM8o;iMiu#d+}(;LB;N~+`a1z
      zwtzyF#<KBXP};$A(oVkHMzWA(FnwB$LOO+W-D)vM-<O^_&K(h?Z*31VA1W`np*nIs
      zd@|dSdsl<)u%`5JC%4X{Kds~FIF)^>f6<lArlRZi6QY0M+k*t|xIZvPqNV7`fDH`j
      z>x^!4i=HgBoR5%o3O)1#dW)04LKJ^P-_P{bgF)lT0RAO%WD9Lm)L{(Kn>4_1jKETa
      zs&O|bcX4E4bO+bTcyeVjwTowF(<A9!JU^SErO9J=F>TY|DSO6B<*kv-UA$yx+<Tax
      z;Uj6<IHx`GT*tqzKeh7(dnB`qxANBK_ptKCF0Sm+J3*wtze0xJMwaiOkAICk{|2M{
      zTTJoqFweh7h5vwc{v&E+Z}6W?DOX~;Nh#V|!@3cvinno+(EI594&Ei{^0<um@IKNQ
      zr4#xAJ|wRx%;F>RvoMb$u9L+nT2gc@>1-mYRir{{clOEoi{UUFd$c%M2?wSJJi%E>
      zaB^DM9SEZ+sd<O(VfGP6@cZEW4-D`>+pu#j>|6_bgKCYj&(f39jojbuzYWA#yxD?a
      ssKYT6z_3Mf^w9fbxCz*4gV6=-pEf@2U>btas%QLt1b`Vxh6Y05KWirM^Z)<=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalFileChooserUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..22634c7b06d19d7fe9c35c8bf2baf6f789c8e8dd
      GIT binary patch
      literal 19113
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$1.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c90fcece0043ba3e3ac5c7e810be96114ed65298
      GIT binary patch
      literal 1188
      zcwUWEOH<QO6#i}>38_KKqbe#76{LkgL<E&G&R|C*W6^~UZn>nf4HJ@15-9BbBd*-I
      z(FM-1@CW!W+`4e%#<!l^#8N8@7WbZWPtJE9-#L@_zYgC4m_<=Wf}ya*cln+kG;Fu3
      z*B$;$-?l>T=xgFOOwV26X6X6*W3w_+3|Zl>JDi*!ZEjg+C_{>^e}f1RgS2G3c6f&&
      znJ=s}q)J}J${>kTDr9sq^ptJadbqQ_Y57n1reiVml|7R?>)f}+J2s}mnjJ7ql}}t|
      zk)gY4g~GOK+0|OuEWuz<W9w7964n@$I=9_0Dpt!k<LkT;>LqWx?zxs57LRQAeO|BG
      zW>7SY!g>a0a8AZqhTi`iR1D%gLl>ngd5-5(SNTGFY_b&<T*R=9A%@fceo--kQHJ#0
      z@^a|`vDyg~nJ=rjf-y=Fv{LlvI~}7Uud0|po?I(FZwR^><h)^s9vGO(FmPPg^r=cQ
      zk7=I1?9m}A**;Yn@Lj7yy3LSz?CtobwPK5r<vM3FBSI1XhU;2>$>Bj@(MWslxu)X<
      zG*9xcc@-Hq8759RW)-)wNDL9rYnHpS?E79L8s$LDcl$OLaSgNubkel>DLS-*^ioKh
      zBgsgnC*LCTnv?`ox-%r9d?aUDCwi-q6HcRtBxOc#9AG*Qkj!?yYQZI8Qa-golPzdp
      z3#!G?gxrbz+=fiFko_2lk%#0blU&jckXuY^Z*buNmy!$8ON?kkIcX!8qAOCe@<vXo
      z9ANyp#B!4S;`aw_FiqY^%?^uL$`?q=S9B}i(64-lMsi;Hfui!WS<7maFRn#s1xz;U
      zTf!7|l4xqvn4wOErjwSUDi?_RQ6esjar)=XkR^%h&CGMS(Ih(J0L05Y#B>&L>kq$k
      B`!oOm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$2.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$2.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..764ee53161c6fceea8d14c650ff9b6b35764ca79
      GIT binary patch
      literal 1192
      zcwUWE%~I1)6#j015(t47XjT4EL0Tw8K~O2<40c2^7G3DzmP>kV!=y<k2^99eh$}a4
      zbb&K0d;s6V7g5h`W2uz|i+j(xC+9mq-#L>Xzb?K5cz~jc7(@PupYT&7XxeVoXgK`6
      zQ5PY1j6HdqmgnwpEA;%cxm6VjhO~4y98S)!508Wus!$^9-yjmiplsQ$9X@4<=kogu
      ziIP_l8sZqxp`wo=RkmI6>bQO={I~qj5ey?`&*IKL_ig!(jES&j2MkN)YnNGM7_5p=
      z+IEFqt%a=;Oa?u&zOyS~jiJB6Z8vNeTgbKI8@w4BC9mG_T;YbrOWO;dH)^&O6iqX~
      zui*x6skq57{GWr4F^n_xQL2*Xcs_NN%Xh~nTd^OLm{u{xF!b*i9W$6^NIolXmtGR9
      zy+E1yj*h#SqZC0W#b~bAv0dan9Sg{jYsKeHNjHO<Gfmk81G5-1S9MLFsuc5z=IP5R
      z9ioz*QI!Ed5f##H2JMY^>|0{TmLtpd&SXV~BK}R+6@JO#K_F<Pspqcccmd6m{A*rC
      z#UqA=YmQmR6Kqlg#PgnTkIhijw|(Dhw#S)?IPc!bBJP7WfliXPKS77qkY4?yt&wCT
      zlZ)S=eIX?Voo<aJv;lIam7=%acES)+Bxybvjsh%40pjVt&mFiTO<Jl88t*_yI?zG{
      zjj6rJOcyfNL5?C5Auq^JCAn2NM|Lw=_=<^h+>UQ3pD<IH$|?uh1YK<<tsZ2R$~opg
      zC@ia}AAkQWj3vqYve{`FOB;itjbl)oz^FEf0?Bo43Po+YRm*NWUsQ|K@>p!uw}mC@
      xB-YZFu|l0n%^)p7Rc;XXvqW4P^Yq_YAxj*qt;}n9*dn^k0f?7%$mwk0@gJg>^c?^I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$3.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$3.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..28a0385ff13913aa9525ce325d983195a42839ca
      GIT binary patch
      literal 1221
      zcwUWET~pIQ6g^AZq+J7)FBKI<L}{TAwSE9a80`pVEc&2>5Bk71UE5%qbdvD(pM22=
      zobkaQ;7{<!INog{ROEq&&Aof}-n;jnvy-2{zyAPm56e3G7>YY$PaK%xzT-8`jw?Qz
      zZ5avI+*Du7_PupsM}BZPUDlCi$g6PE6%_osz9a2OhnAp!i>M?9ZN>4NXq6#VC~h&N
      ztA0arq;SE2jx57q&GF=`-F96DZ$;ge48t|w7Vee^9JNotbkuS}hPm3g+pIA3H)W)-
      z7t(3AqHYTogOQ-`oJQ1Q$aRF{MRBvGLbtvt_9L_Ew>!Qky{K}6Z3Lpza_q2TS;Z}m
      zi@2=g62s7c0S3l#g&|8<RejeFXsSZ7w>Dvw9IoNIjtPc=e@_hDz$8QFS?y`{C9!%s
      zQQbUc;1;IoitzY~k;3V~xXC*PW>BEeMj-YT-3)rcveXO=%w`xpYic@bQq41lr;`I(
      zL?t_<E<>>=8w~u7zZ=+c-BEIloz`PPl_Bme&yzvb6=5hz&cWxN?fM~UN%1Yeq2m$5
      z%sC}Cu!tpUo;co=-mVqNcC{t#PqCDv3E#c1v4XpxS3oO6FF#F-o*?aV<dw-XvYFX$
      z;9tn;gF#<T7JQb1={eEfh=VYIL9(O`hLQsFNr6<p|MPLWrXar1lbSkC9X?NL`OMT2
      zj3%kSC{80=FCAfQIaB(It4Fw5(k8aEW9e-&`5f6J+%D-cr1wBs@^$j_xruG92g@dy
      zo?zn{s(Hf66p;qL2#qhHpD$yQS5W3F*x*m_p07giwQkp|ac4=_$}3{FJ4qdLC@E&i
      oo5uo8raY6pH069CnI?(j6#bmko%cx`r9?~;h`0w(@;$`kKZz*%=Kufz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e88cd5f77c5ea1a38f7f7cae64bd3fa70f61d7e4
      GIT binary patch
      literal 1689
      zcwVJcTW=dh6#k~(OT27a_hKNF5GaA#t=pv(3e+KxxTM+Q0!ko}`sB%aYHzdNjdnLA
      ztw7vw5`t3orH?%2g%@7Z3L(S;PwgK-LhTRXfpTVcbD@a}60$sV=9_cA^UXQOzWLWr
      zzW_Lf*G=qT7`edT<;za8<cA$+A>ikoo=AD%oRzEVMd1YZ(kQ+-+~^8#emq(}E5b!L
      z6+L-pLSraN1}ESY|K{8U;iV>w99`qheES&oZ^`zKJ0+56G4_NBi(#K4^CM?k#6A!F
      zOMEU64918b`spY`p;Db;&>B%&SSVnZjR#;e>}vX<cw@0QC*rrWh&|27<G~Ck7CPsk
      zmUjJwVYK;w9$ja!J0g|ltlv(%N|ejcpM#Ua?{rg!;sW<Wg)r1ADy74hQl}C17NSsu
      zX?+7b9rJ~*?<IBDt<IQugkf;A#54EmurPo}Z4BZu2GdW*;+|+L9p@}Ojsqs1U^sZc
      zM>eBqek^QH2oczL62lCAB!4{M-aNx_rMk63jVOrXjc(N~JdKKpgABX3Ji|s6hlnx}
      zsS0D*`;P(;RIkoRsWlr%WcGa>=^CbS6rAGm{B)PMqa~TbvGEL!5m!6rOR~%K;EL<Y
      zI?4FsHlABkKil<FAuDsj#tX7CmY+<EfF@G3CDltdPAaPNeh^F%%)mTKy<KbQsza)`
      z=@8v4)0Y~~F49C%${xc|^S<qpK|bl3R;8Qp<t&!(9k!#Af@aGNLlHLuo+KhM;r>e_
      zHxbZNwwqU~5{(9ZbeJg8PhX=m{c33Kr_*uT8SVO^>)81t89Pv-)uJ7kCFgV4O_rTG
      zVGs7wPN`7N36A6hg_8Bddbpt=Z&PStJ@mo<6587~^dUT)g|h49XVR`8{uKi!^#Oeq
      z`>&zDb^}AJcxnX}S%=B04VJaRQeUgAt>UOWXf0X@P)EI`?95>eR0n+xG!=LQ&nhyl
      zr5Fg6yK>huZ*9Xlvy0?b%#4h-n8y~^b4k_DUqd5To$1kAdfzHuESxY_a3E7-w98uA
      z$U<|QqCYiQ*(e#`-@U!jwkc{1aEXfZ9(Lk=D%S@X!iT8gBh>LR-ohsk_zVF)r<*Tu
      z1z%zXU*Ttbjo<JMZsA+}j?1`%@9-xsGYwZ&BPO$A=Z%n79V4<iWW9`0IV@zof>)_o
      m(i$U6BNcZsjs}g*AM}rKiZFvbUsGx)a9WL-oPbH3f%P|(n0cK5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserDetailViewIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserDetailViewIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d72e34a2c64d89599df6535c48e1b341da0dcd85
      GIT binary patch
      literal 1696
      zcwVJdU2oJz6g`uy*TFblCy<svQz#9v3rk$eH%o!AkYXu(C_wtcLngaJcEGV$wjqQc
      zz@Ok1i5H}{FKNU>UwEJ@9}=_@tqKyY+Q<HaN{BliCmWJLk*d}D-Z^v6nS1A6%Rjxk
      z`vZU-IBueiVek^a%CEWclnf@^rq3_BlOo~1ds02US{MxRS`tRn{X^0h)kYY`B05HU
      z(jS##N(Gq6F*r)b^*M>09={}NiHUrM&WY>T4u*A0jy&&;h&a3w)r1L)VRb4dL-(wR
      zB=_ZYKJE*K{6QJW<Pbx9u{6q%tA=%9p&bPqD`7JfhGig5U6~vg(K*fN9u8~VALXP%
      z>kP~#4H+|3hyQow6$X1kB+C6-){{n>na9wXfhUBVXe10Pnp_4c!cZ=z=em3<ajW5E
      zGYmwKR9e_q5pOnREv|T8Y1G16d~9MJL)Vf38-4hMp@Yt<hJF}PwZ+mxZNe%RHejQP
      zPZ_qntJ>i(ygV4xhlKELe1?84d(`K(%MAUQ>>K1%zSXvh%5<}hEhrK<o=<62adAev
      zsI4}(p-iFmh)=1uF_=Zq(=~6vfDKn=(M4IDiR2`YrmJC)M4_+9J8XQBk}pc%AE8-O
      zlwCG<E6Um>loQkhUpIo)Xt<WUf7+U$Y?o;R?OdZjb(KvsSTVmU>REBl;@W8cY<eAP
      zVi<ZBPtt&jr<w7BKtxra$FYb_RR5zn3j`Q?-#UzR2Q+{5Ghku`z2P}p(|bYBPFn3G
      z%g7pAzsCpPk<$i;o)%f)76so%7kRc0LN`{CrQ1SJCa^sdXm`5r%+vEJ^z8y_`#kl-
      z_o3chmiiIaXexU~ae1<Cc?P`)jPfkj&tOxz&lu~;8Do7NshL5k+~?%U&yQ*Am>M*+
      zzZ4{{u{h4sdSqLI&dND*VL@bJInWxL+thTW)j@%U)V46EGXu#{=q$FUCF%V0<_td9
      z3p!h`X0bDkFbSk$%$A^X9a}@0T(3c~tp<-!3xWG|i9gbXKEQfB#4bF7hsU^pCurg+
      zZs2F!#4q>;&u|aF;y3(`mw1kU@B;thC2PYUY&HI5Mf}AE@ORp>L%J<l%apeVdsQ3B
      q+lT#XtjIfn3bj>v2g%FPH=%?tiEGgQ;WWo17)-}dO~_FkgY_ERK7kql
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserHomeFolderIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserHomeFolderIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1fa4f1c79f6310326e85a0c1c0aa7daaedd3fa21
      GIT binary patch
      literal 1818
      zcwVJdO>^5+6g@Y#rPxtwC#`8sYe+*roYbkC1`LfuO6ua)OejnOfgOIaUt%?~l#!G=
      zVTP{QvEv_f#fA-=w8MfQ0RI7YtUALCGt968?vs?n`QT%Q@ksB!^X@si_q`+e`#-+@
      z4!|t#>F6UYJrs|`ZprJK_GW3@5*wwC^o3P=SKaGP$F7N{@3?zoHPe#Sw&Qrxz3+5n
      z&9Pe2RS7!cgp86YS%O90TYo5<z78!y55&XVe!}HbkNmK{B0XovZAu*}!i7N0bV{qz
      zHHBq<D%LGY&=ySF^cM-S!qgfeUUgbBg&5KX24E1<%cd<K>~z+p`$5PUUUr(oS`)0o
      z^9YRlZPO!Em;ZO?6@sxTeHDIWw)}QbS)DK#f%m1k+4c#^ZDHC0LMRr3=axj*FIAn+
      zwqr}%uN-0bT(R9Yn_i_}pIS@dMO@KwnJ{!J!9X4_5&HRARmXB%?zS-1tIb#?g%OPE
      zxJsD(r*4-WXKTrB)uglxyn?Y%_Kqc*TZFMl_82*kKRULGs&vA@Bnr&+4of;;I9XBH
      z)U<(XC~|7c6<u{~1ietNhdqzrx`C3a;zH1z?YoY3SGZfNZP9YNia%@MX29PtEo+7C
      zrdY2Uculc}nDxGEc7(eZkqOjfwX=4fmo~Z1GY)`PcKPD-q&-5)6OUvoYAbWHD?;C{
      zN;WxhHP{hl8bbD@nXW4$+oo>Y(ydy;^Q5Qa?SDC+9sxq`Z~e%7z!v0R0y>iXlE-<@
      zuLj=-c{ax*@tBx?igVv^(1#4)Q#=B{aq{mN;>ZY-FpTp&^0pxx3Cu(SvCQz-hjdLr
      zL_O5lA@zm-LLE4hdJ&gGYTpCS>u2b3aUZ$)MDZD3-p6<`A8%yinf^weuWUTt*vC}y
      zAkJsf;bH)4D%Kj|nC`*SoH*D6h7;{18ssJ$QE&=Pg+Yj>j-dy+13XDI!cmVfBf``e
      z7Wxb`+?eX2ti{UuR~Rj3wXEJ!d0D-o;zks6`sX@jb^XboKNj<PSav3v*vAc)PO7=l
      zI1EDZxnS4ygIzOvc1RDaPGq!DVBpw1$Fk!`e%U~dPva7Q-*XtGEBtZEqf8@shpyri
      z8pRHc;|rR=6Pm<Rn#K=w4L{Kgex@6EPP6!xZqhlLrHeF26I7-Jx<yr*r;n+^ui^rA
      zX^}po+kq=q!jq3&p`tQg4_xyYZ{U`4E=TjIuya(jz)_ql+r^t$WDh^bm$=QChF?&?
      XTO9G99+rY$?w}gDUm5c*YDoPBXSRnH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserListViewIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserListViewIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b80fc2dea17fe7186b802768ed7dc9708b78d1c5
      GIT binary patch
      literal 2031
      zcwVJdNpBog5dLbmo^;xF+rb3Kn1o=+I84%nge?;ioWUj|h5!i|2{=r9=Ed%$-EF$t
      z9-B>KhloXDlOQ1Y0Z0*-!Q#LrH*Vax@egw2im2DGXJN)H60+P?@2mRiRlTax{QSp{
      zKLI#`ISnbosf+fyy<vq-$6K;iUHgKyA|l(h9+Tfn-S_70dgKS2)ANoi%FDhVilFL*
      z(SjqI(ySpvFl7+SwK>G&ix)*b(vVBgc4+0BCrl1p_;lr*2>rF7E;Q(b8{%M&Z=Dx`
      zW4q3a_M$5Yxf71(L?;R9!ps68Q}!D|M;aprcETWxR2@&8U0Ycc!BdJcR`u()yI^w^
      zJ||!%T6RLhZ1sQET_PAuB9iJeP9s{5^QsVr67Y<0mX;&Jj#b<7VuVmE#J5^@GqTG5
      z%Bt@PFDiAhM*@3w*{O%6N@Zq2#~$3QVUjR9;9y`1w-EAtSJ`*{fNL$x^u}haq+=iU
      zYq*tg;Gb%(`u?R^uQ4x#Yv49atFWhCyMBo<orL`hIS$`#T1jSlhk*kqFgNU^w5!mc
      zkt*t-fjd!T*G6DBWzz^+p;A#b@55mOmds+5vv?wKR_tK2?0Zq*yOMmwz}+$Vg5$d9
      zc+w>0n1OpFWzPWR3^&15ji5S@)^_jDrX|jHn>Mgzga5g!v`NrIdtEe=;>`Zq*nU2K
      z4mmG`@%}kFEd6<ADxN2TvTKK-2sM=dr8zwT2)qAg6!`^s`uHyk4Lf+ZGkoTq;O`Kh
      zj<O_{*@Hh|_<L4TF!`&q1fAveeG;R5Hk1>_u!|+X6~>bQhmrtkbL_hgJtrZ0wuhST
      zP;dM%)W){d-MC3n(?#~nF{N5;Vd8kUxP`qf++Li@*2Xj0+EhLkEzA_B%pB{vnv$lb
      zz^u{-LFQ)r{d5(NWjCO?vrQi9@f_I>)N5^{qU-7!bEqfB;Uvf5p1WhmILQH2()9sX
      zJqg-Lbhw@9aR2>rrh}+n>zEZP>(1BOvWxLO9YvvL;%WAHnr%<B>$!zPaidgMa#{;_
      zsRJjPoLK9z#ix#O3rAzR#vnh9*1b)trlFutR)%tmWxfZKj!IFU6IqVho&L+%&*Sz2
      z|4aoKqBZQLbsVE6Dzt&;=_Rbv%Xph!!4-NHSLroequ22(y@BiWCZ*{enxJ>dqW5Ty
      zF4J@LKKb+ky+t3=7xWQbrH`papU^e>lzySl=r{VDuCwKL`ZA@_mDD7Cm9psT)Es@2
      zdX&D6_u!<O^<)pEb}#OeyTRK1ctGwdYsXRIU6I-e)-uSY=J6nNvur;V*Y*%*<K32P
      JcNz~v{}b(`vn&7r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserNewFolderIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserNewFolderIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79a93802757dfd1fc0557405ae83b26238586178
      GIT binary patch
      literal 1729
      zcwVJcTW=dx5dJ2<th3!Do0LG?5C}A-PU3bcg#vXcZCu<~gn|+XuRgI)<83y((eAcx
      z;79Nyctc1C9zs+k-gxO_D{kV_f+&UGfP|QHb{)G(xJbzIo;lx{@0*!3vwQQ;8=nI>
      zfjI+xgmYKKHF4dE+OEIitb5|JvnFHVIj^Z_tr7TD(TIa^W3uXcveF8INQReWyBc^+
      z8LD#wS%R%p98a*u>&sVUBQ}sv(T;ZFTOf?>iuhJ-K}NyVupteYgom`48#s$HbcN@>
      zBbGf$$e(e2H$F?q6sML5*-FrqCNdbZun!htXx{bZrK@YpGJG>(jLZiO;VlVP;e85b
      z<CYr{X6OHJ;bnrgB4cH~?Kb0<POL^4NWnSjuC!u8|GIE}jSxyj9o7-;*r^0->wz!*
      zxZK4qhGM<tHllK^Hnn8p5FRx!Mi}1ZU|}4O5egiu5_mz##TKV}wHYg$n81?;o**3k
      zr()-WVD-G;tV-!wIE=|ecGeS(Rl;N{`v6(Xce_?rnLcIVD2mLDwo}?)+?i2Q)U<^e
      zl-RWyini(+!6?>hNzD^DZoyGmjByrkgzlOMH!6W2hk<uNgsY1!(G1$k?}UYCl;7|!
      zKNaLz3(x5wmtD_W;E`06=PkUTD2H}Y=D1m2(lBc94DQt@K3d_b_GlNMT<1S`pEd|)
      zB(BM3dI|Q<JK*z0eQj#62%|d(?zr;j*{b=z3@e_9A{iN|{!0^k1PBNIZf5xkcue`1
      zgMohj3}kuFZx25Qcz2Rl;x#w@DF#1gqYpMeO<qAC@r(WmhIwx#P8h*{Uiq>xnhG3C
      z1v2)?huieLg6OjzYG#}I@PDCxu_yHr97w2ioBi^<&XhKB@N}-Ug~vB>q%@wZk7f(?
      zal2oyo0uw%+a}v~p24BSNYJ6wQ-gyEm`m&j!E8#;cCjrS)6wjGjCGXrJ>iTLGg9}b
      zwR>JE7<JpQjZK{FWLBsb?0k2xavI#ueha6PNM^!K&TOM6-+Wqbr?L*H*8z<k%&|zf
      zxeMGr&@KL6-^Kuai3$1&r|4_EO5dPP-y){(@GgCi_vi<_Pj~PE-Ng<12{-9y{7Apx
      z9^Jzq^efqPpC;)ynx@}%yUr#pN!z8Y7jas*a|UIc(IYj3m)I|(t(V!#au!E$4(EBe
      U`Y@|=tl)wkK{Xw(;3CYw0Q>2Tf&c&j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserUpFolderIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileChooserUpFolderIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c2dfb539eab053f70b08e1d4960745b7c77e079
      GIT binary patch
      literal 1204
      zcwU`UT~pIQ6g?Z-q>X`=kASH7S*0zJDgrvzQL!_1GE;d#>8oAZEkr`nNdkp;|A<dM
      z`vQ&+{s4c2|HBy`)VpaFMAR8GvwQE|y?geYyPN&=^}|O1w{cg4!tm%7-{HHZu<Lm1
      zrH;$nr7aP0xAaW*cGLH&yczkyUaso6qO#%pp$JwxRo`uiKu&8&Fg*SbkY&+5LSaxJ
      zIGz(dWEjX7>I{jB-x4|okT#Hn%8;o!o><=AS`)zwzUB&sk(%G+Zk-2?jQfL$Xu}B^
      zmTLdO=(wyhL%PEqFY2+g@-bkEccW6p-|G0D@S^h3*wcV_Hk@Wyw(UY)$1p}Uj4%xU
      zmSA8ECPQjnL>1rl1Co(19LJ`yveZ3cU<er<lQ^&89K-bA1l4?hbIEH}g>VgAz*KL8
      zCoXSpGUWOj{IWRSXw_a3p}!q8MOkvbWZ*Kc(Aw}PxzYSdZasO|4CHW~Qd<G<%9CNx
      z^0qD2Gq5JZ*lG2msdd6UrED~_OU<UX$DoINN3{ABvL_iZD7!M*p~UAgdwGTo=E<|2
      zl?xdR+w(+Fad{YuP{YDMYIzKRVd4+hg9=4A74lQaqZ>-SM$sLzjBK)afYiHqTBlwo
      z3-*Qnl|!7N*ytsZ9VE--QTG832`WXlZS5m_KUtiyrp&|v#;x}_yN`?3R5sNx6WMg5
      z?_?YMxGMccbzo6@i=1Vurq+s6Osye<#*ct9Uu(?Nv^U>ATa!tGJ7QRry`n-@(#R+V
      z#+5->$`Iz14DKme)XBb7h9Q)ZSiwq<WnY2xZeTiA)kYo#sh7MWX5uonVUd?0Z4KPS
      jEGeJEJW4dCVu7-5kw?!Fy-JeL9F<YlOqOyUi_pIVdYB$h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileIcon16.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FileIcon16.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a5a5c8ce40e252dba6fb775e82db36d62d748a3
      GIT binary patch
      literal 1577
      zcwUuM-BuG<6#mZ1kV)bIgBYnw)KaPe15+u|pCF3qLPpc-Div>Ym>kK0VTLss3v{i%
      zL2r8JJJcI*sH+z~fVX{$K7_9BGZ~T;SgpOt*?WI`fBWp8GkN>|k2e5r;<gFSFt;Us
      z6#GtlPX(LKt}mWBJ2Do&^Q}HzFAP?M7l+Zo<cjj8wr?(&Fc@sjb9_OpM;lwxi%n!x
      z^eCH-Hj!gEm&B^jS(A|xzWPaQ_>v*Jr~(x)F=Wb9>kLLMY{~*M7_^W_fnm6=0{PwZ
      zoedfN&|#ddho11)1!W;S1&z3++6?pc|KCZK!P=CuHlC_x+)7Gu83t2uRjSQaTmZv)
      z3u72%7$whgv#DYg2Ey<78S=YA1qp+pQcenS#9r*w!kyhPkU?DSVfQ1k+frV;>bg_w
      zI`t(B<2rSYQm?htGrI3Gu9~>QaQ)v}s)ynBa?o6n(zoz2COR4J`NG>~m@H47oJTG6
      z!{~|oy=;fiBTrTfn8Y;`pE8V`D9^%mlqqFf#tDsD|3_m4RdxN7n6_{O6$))eVo$G(
      z!7RIOr@hOVwczODMyR;Qk=hZ_K`jj8DD)YaM~~yQagl42Zaigb<k_bmEr}g46xNbX
      z^hOzq$2UEz>9k@u2xL_AMY}EACaV82*S-XFLGQ89jOl%VV*n<7Kv}ZrnbLWNEQcf`
      zIWYY@tXHIP45dNf7cfk^)d_%&5t8(nF`ANRQgX(&Uml}Q^ieZi>bWj;j-s_MXWP?<
      zC^nAsXZ!fMF8?E3=<wMu6gNQF`=UYoi;V@N@*1T>d{QYDjgp;j6pcenX~SsHVGlP_
      zleCg;HG0sIkt*4KG~4J)Wt*f85OStJF4st|NWzQ+dySc-4kPuLUC$Aug+0`RNKdn-
      z;E|CkX5U@9fC9+`>n-da%?P}TJYR&(Z==MQP~mrQhu_5$zKj;H;b;C0e&s88!SCZY
      zzKS>8#h?5E{^Aeuj@Ofk&v&MpPF!oB(O)i0v^jiEw`px2w`i+cTOiFK|5$gkmGn{Y
      j%<-K*?b|8u?sWVEnBFN&jxUn)OMFGLkZ`}oBJzI&3$Qvx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FolderIcon16.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$FolderIcon16.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..65a827a91de55f22b1623c9281fbd66105cdb996
      GIT binary patch
      literal 1654
      zcwU`T%W@k<6g}ONHIkUbV;o~3aUNiZY?KU6jCm-8I0_=FauO;I&Mu|4)V4YvPn*#M
      z+pJi!;r$HBf*l(+6qMtFDn5WsK7xElDz|&avanr&Vlh3pPoH!9zWT3+zyAqf0yPJm
      zVe+Q<K&<(lRTVD!D}h+>mt`yh|B_kjO&!)mGuF}iXiWz#85v|^%0ZUFGfF=Yq`NYI
      zQ#NA<xfI><XV?z%3<oS%X@6EmN(AadF&{{V+!+<B_$))FG&aYOt?HI6B7=P{3Mex4
      z&!|vdzO_6rqic!c$r;@g!JHs3v`@io+*TcishR(iONGH*l(E@dSFN~hgQ+v@OTmj$
      zEw<w#7@l%5j6sG$I+<>@RIGF;g5;c`up(4w6%6H)4aFC$v0v58D>{^6T-nCniNs1<
      zH9M7heQeISKIr0*ah)gEvu(9N_Z`Mj2S*r=KQ5^mt(T_5R!z#l#W6gWcsL)3<`Tnb
      zX>4~zsyfiod-bcbqi;n`St()^FFJUEVPIEyE{>x_E;}-|GD`g)i4jyW@sDEM#Y-p?
      zwH1j~(=-OBRIexL9mYu)z6oxCf_pbo%OYB@>M)LUV8jzHPFeAS3WBRNNJcX0;uRwq
      z-X)oBi<VwBoL61EW;h3TaW05xDd91&Ce7bo{h*^oN@<U_(8(HoGzDy(p*U+xRa0ix
      zhIS6qNh7Bjs)wPBs)6WqWXHjUe`#Eg1Jd@+Beju65FCAQ=$+<hM{j}FCurx>pV7Z>
      z{2tt2$l%zYlE9bHPqv#7;9-FN^kOiWich5CjOYElLmKx;GhOL{uJjbK%~{^_#y2q3
      z*s1@hN1yNNpT;wZo<+p#BkaLYmh{gyrn2QtjBMcf^2kuu%Qei}-`K!dIk86Q+lIC_
      ziIGpi{f$KG6%r#s^OiA^?GiU}!rs$oSWd%py!-}UE~m15!^?S&0XA{k@+?jstp6<+
      zQ`<*Q8itczSR^}_Vm65Fww$L*fPaDl{}dko3`hCrIL*JnMgApj@UQSb{~Bxj8+^>a
      z#clo_e&pZdH+~y`@E>rW-@)JfuC422QoFRS#(EuZ*jhh81!w3sW4(#9)H`FnMOK#1
      qhr9hNr>*Ciot^usr*pj9xkLX!`Rg7^j&pXMrrcqtmZ6HbQFsI|$6A*F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9cfa561d223c7d6975febe81a430a31c47caa742
      GIT binary patch
      literal 2736
      zcwVJe%WoS+82`=g*lVxX$@Y<!k{T#Y+c<G*TH5sCzS6X5+@?(%w<&3Ocw=wkZ5(g3
      zc1TnH0WK9Mgvy~DIB)<C2oVZuk>CJQB?J<$1A;3TE{F@_K>23Y_L?Sz1Bx==@B7X7
      zo|#SV{q^xD0Cu6EL17rUYQ1P(OIH`2%1nB`Y)z-<?3z_hpA~Di;8upLLe2G-x`tiP
      zx$aho&6S;^?OiM_%uNXc4V=LgVbW!bf{adGwF@;3;X2z0?%PHfI#;B;lpV9H?t)ja
      zHRufMWiZE0=WNfh%FcCbs%$eDGoDp+>`LvdRh?x}CnvKE;X_WvsU0D;J2}q42i>Br
      zL&X{cakObz$DmARqhRPT5QD+cKH^mDb5uO_;0Ini;ufs(xJAiGuamr1a;gl2Bma9q
      z8Bw}j6Y#QAtd(S~RC>Hl4%^O5sm2hUx15S(7*gFbZ`xX{r3c-)dACA+X9Dh&XU&(K
      zLN$}kCdYL=fhRR=p-xsh8Q6+03hq=-Rzzn-nf{9K*=}Hm*o%~`>X2JlsOm_fS3?iO
      zj(_WV#C2x}D#an&E*nUpk0MYj$IDiMj-{(RxpHKKZrSyMQ_ko}W0!`f7}l(4$-r(r
      zO(CmxO}a6x`^PYd%7~tm*lVC)WM4lcOe;0dEuXNw*<8sgx{D&kegg+^kYW`*Yf&6K
      zgVvqR`ZG)7kb%R(e<S&y_nbM)TdId?gh=A3fn&l(4|0ge#|;e1$kR@_JVy6j*q$^n
      zgj00GgzbXo(ey8t>^aK1ZMC7aOjMd>G|;Ws@({bxf^Ai#ok(@Yz=$ZTb4BT`6G-Bm
      zfl*<%W`&*Dy<lLhaeS9cPK_#M1)Aq-caOGa=qOgXg0ypueyMi0L<6=P*Nk0Z2u+K7
      zMdQoKgCBCl)9QHe?d%jm>6K(F726vuTh*#v)nNU{HEapMu<4=Ck1jf0dHM-KgZL0Y
      zd<SUdgy|bWYddN85s`a$dp?BOW5(}d?SvY-qfc<t7|l)a0EPk>4xkpmNC3?i3sah?
      ze3bN<(50Ok61pz*sMNzkj|yFvx+e69&|^}M2wfApA$3zaghz89VEud4fPxLQK1R(#
      z{ShJc8*uvFuYQYJ^*g++evdoq&)7&dhTkwA!6uRnkD{|aj6RZLPc_@$X@(37O8uq9
      zRc*R%Ud7dX(Dk=fT@zHRbXET(JE~gwTI~<1{o&rv(cZg^$NNLHZtD+sgl;09x{dB-
      z?0gG4p*@6B37+rZ2{TUXGWMksW*Z@%_ob=j1JaBTs|nCvXTw5i%O~WXq@+ti1R%8|
      z>}Sk0GahMX4CT$ZsV!q5l?aI_QHpK&Kn9Ybbs}Rvkfcl=BU1N)BqIVFL`HqkQd*qY
      zh!1>Ls~6k=#EKE!WVdeP#HSd3oxR#9`gF7CZdtSl7|z#45G|Z<NS}+<xmdu73TSk`
      z@U5agRhL1-TD~D$>ecd15af_-tjRX2KHIGNd~?*|Fys09nKY&^MdQ>$KIMyGeni!!
      z&*^ne4>(a5RpJZZD&kXh*^Ez-8nWet!uci$a!6KhvcapoM}OO(-iONRP0+thI#*$G
      zjtxA5P9DWJ9z%*7$nZGM^EOQLb}VrdFY~Rq!MpGp-;P^+2j1n~_>3p<1Mk7Fyq7Va
      zVjFoM>*KrF9=@9$=6l$2zL$;geJscKGn*e^OZ*_a!4I)F_+j=wKgzz~$JkGNfc?%-
      zus`@oMd7EEC?8ff^Q@BQr<DPIM!CdC6o;QvUgD$5EBu1;CLdEi;yL9jJ}%$#u>W4`
      zZ&{!mE{gX}=n}@MYk@A~8G7#mO%UQxl`nAxlk`CjEBEj$p)grKC#Up0ULdK<k4PR<
      G(EkQBw^Mrn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameAltMaximizeIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameAltMaximizeIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..168b94061f6ffb11fda6162b6ab604d387443e09
      GIT binary patch
      literal 2494
      zcwVhlOLG)e6#i~!PWNQe69y14Kolj&B#eyli5WoiaL8Z+fk48$rZdxInsmBT-5ru(
      zX^9(muB@_jYn8gNtkTkeT2ihpHvR#(?p*i-EYI!7%#a|uuu|!J?sw1q&iT&0=gu#G
      z{csP!Ag*dq1jcR{H;vVzzhXJ_#U<OgUR*Q-!!AzBZ>8osWuq3j-dbP92~5v1?6PMp
      zn!|Q5X{=g{)-6-|Xh;d<Bva8gnCJA|4YL+#P-8UVk9^Ytdp1QqUpZ^~?y^@iHDm-H
      z3&||EIBj~CVOzJ1IolLS`5aL|R0PzcmSY9S8OvAtXLuNO>t+TW*s3FoZ2}$n{+UiN
      zm5wgx0$V05$2_&XIA?n2BDQT4Zq2Y~435C_7)%8X%NHn5{2zrW3Fz}?AkA5;9yG$N
      zIQeW0j+@qeBM|6ZGAt)V1Pb{ubkSG|ilgr0lIxgGP-<Z(JY%V0)%;S0b!YG-p3<;S
      zVCyCa9ZzGwK$>HXy0+`F;Cz2OH)ACY2LyJvYaO2R1CO<hEC+$>WYC9$I`Zg`m?pW(
      zHXmTjlx&Ke!^Kh;4&hl11%X}v;G*L&imcl5r##d5&3aguOBueEFKBpP;NYW*KjFFy
      z!%n?yN}?C>635}hraWuW@YY6MC-7W*x?$Aa6@k7Dd4^n}^45hb$s)d@;|N}5jefIQ
      z+w&WXCF?zil8&P?>efwBCDCymui<qjx^CI_S#ARXEnlfbhc$>19iwuytmTMp)D|T8
      zhK{lX_iSPuGrWaJi{u{HQ3<*0p0OgYv)ufqj){bEwqXUbKWcpKA9jm)X`Y2W<TCNf
      zD*vwuWPIbMS&wUw+gJkjnG@LiKv5sOG3=6=4hvhhWJB%P*fEFYUT%zv<Cxy4ZSV!~
      zHC+CeQ*R^S_>XEj?BlNQ;6H)}`2r~N0pK?;#da3m{N2K{GUE!5nSndV4ea?2+rQ?S
      zf*t(r=G~wJNYO!bQXV@Q+ZlOd7aj*fOR{o3(1YDEXEB`f)`4%a{mUkuDnS|yY4pe;
      zrr|UHZ<|XG-MkmQ(dLf(?5FXTdxdp8F+_)cM&FRyqpstb?=c|oF|vibcy1jpe~t`W
      zLu?g#sk$STQ>!^Gr>*1IM(^RK_gLti)7d>$?agJwaUCZZ>tdU#(Hg~AhHbSPt*J4V
      zj{VXbFs-U`*kdtMPK~K@u}_NabhS4f4oyV5g`*xbb;?O+H8%7%&uju_BakA8WRzH>
      zG}ae+CmCw7;&hv0Emoqnr5Prlj&qL_mD+kEiSe8rT8XG}A|ZEENH|F+Xji+ubhT+j
      zS)Yuu?u_$^##TC7d{POPP3oI%Pdtp1xaQ(ib80L{ZOI8wHB2JYR?e`--3iz&!PYhU
      z1cl}ui@1`o2}muKJ;ZWa9rzXhh=9hS(n;tvi5@zI{WOIEI)foPhZA%jXJ{4|=pt;o
      zgm>vOKBO!7g05nnuHima@f#WVljcO4YND4+F-Y^`2sOk>vcxsIA$(d8?~^S)qDAo;
      zIpRlh#jms^ekV`-LB66;pzNe&r9d~85n54ZXjQRkO}R~PDId_=%BS>>a))j!Khb+(
      zcaBFLn7j~dP2!a7Shh}MO1>X#o#8I-2(7bhrJyQzF^zNF)w=Qx&SQo<S;1^ri3_+G
      NzBKY-xP&Xn{0$;TClCMt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameCloseIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameCloseIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac45a6c21bc27e4ee7728984eb0746d365b6b893
      GIT binary patch
      literal 2551
      zcwVJdTXPge6#ja0b|)DoVYvhh5J8EOgvg2)5Ec<w46Fo*2?WGjCYvD{GTBMZ4g@HR
      z7az3>%hD?0K`jeGOT1t~xQIyM{r2V`@X7MUKVTK*>F(J}E?%mvRHjd#{?2#$eBGz_
      zhuha~09cIy6NbRXL(UQBXu3G=6^7DdzH=}=>PC*A-YLJid{F3g@=*{TYsnQNH!L`Q
      zXXuQ&SwASca@7P0q$Ee$cbH-Kz#%sunMlUo60^qE3M`(MZ*Q*0Ee40fylcV|n6JpZ
      zAl>VRp5uGRodMq!prUu22ayv<Ztx0Tw2^(SxwbwYvcaHhp$2no)MKtdO>0|U9hl0-
      zEZ73GyS#$C>+tA+8}89;bGw4P<M%n7f#<Q4qG7Knu&L|+Ns<w;hulb-`@F$uSnY?m
      zT^~EQyWY@nBv3czcm?GV=x9|*)6RI5&IY4nLBTCVnTl^)=!^|}`C=x=6<b(}yG$$-
      zm@^Gv<8CY$sO4PQzz;$$wY9C9n|&D*_XsSiu5$B0F$%e=Er+8hC|GF03LC9x(@Z;A
      zU!RXIW-0|~uv*N_!b;p{qC;Te-#~1vLYk}girt}GEV_eAmjf2x#0O10Ah6<}WbX=s
      zk<Ep{PFE5=goil~Z>&4?MxF3jHYh}4;P(zYgTc5!%ana8E>(Hus%4~zYi&G&bzEby
      ztk%5NsbWdJS0iI%gUmW-T2@K4(Z*xg#6$-@-|yiD5HMSFIel2GvBgGK21_ls_)dOA
      zIv=;uDV>X_F>ZCj5nYSKZMTt=xcTZxrva8?hm9_kd@yvz<xQ7SyKL+(rQA2{MY47B
      zOfu6o<E0_4e1_Y`D@XbNn1EGuj<|!dNU5nBF=jwu$t2Y$U#W~z*=K3w!HWaT*sBhr
      z)03^&IJLJ{Nh)rnT%q8GS>NFcQ#8^4FSn$MKw!bl?TKalGSu*20w&}uVaP{<UqoWN
      z9u54R&9hGS8$4R=myv2;d<pX|@XSCXe;YU&Gz_9csG|`qVBZ3b#zNcyC`+<(sc6EY
      zm@}>BK%)I3=AAFoC8d)hMPq9~OvAV1zXhL|F?b1@b#TpZjH~64FFPi1=laCTn`l{|
      zY)Vex-m7RAIEDI-E4Y6GYtF%9Ydu>X&58a-O7y3!lr@1zr-C;t@Df^MHk#VAwH&@p
      zg%gKUe{-r{jT3l6yAu6sNZAz^Lo|#(%Bd!ak~2mov|SoC(2jw6R6dhUvp<pGO?Ncc
      z@}#!kG}R<kr<R&imKrrf$ycY4Wd@$>(VFb5)ng?#RT~GFkf|7=)5KUUSVwas>7o=;
      z=~JmXsdpkXB`cnC($a=awNafjStUa<mLWB(D%dVL?RXnI%V(2n;I#&AXcjr4NzTft
      zpT>(?O|Ggm>ZsBtQ)aa^R=i8ABCA#@S(3}FLP}EJcNMFpD=8b&+r($OrqYJj_!kBA
      z5|Z>XY&wZ1dKJs*HMG;~SVwQ5lTM+V-b63Gh5ht42Iw7lbOtZbyEsW_afZ&}D!qrF
      z>3#f4AK(u<k3Z={F`GUT%jsjWmOc?X=z?(QQ!!2##R<A3UZM$cnl6j;bVb~xtKt{>
      zO#DvQ#cjG_B<Krc5#2P>bj#R4Um4x>wQ-QXF^<!>#w+xlahAR}uG5dkE&55dYmaWp
      z(v!hfH=dL&%vKM2<%7c39&YOzW$k5)kTgC=ANFyZ+s0+=$5Y(ez07w2PxFIj;2EXQ
      Qvv^KDLh{Xc9uBO(01Y%k;Q#;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameDefaultMenuIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameDefaultMenuIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..47972a750c08309bee24c21f77b6f8b06c42b5cc
      GIT binary patch
      literal 1605
      zcwVhjO>YxN7=9+6@vfasvPlTE4Gw9Wf&(T?TRsW~D&)xRN`ayTlB*~7BwkqWM(a&O
      zIPfF*5uAGAl12z2_1YUpq~1`^J#lNH@9b_Iw}~i+%JRJLJnzT6AJ6{!_Sp*nU*cN>
      z0}S)`<d5=!)7|odb!WquYfeYS(syp^(`|-9T{hz|+MaQPSVe*K>yhlJd9@}t{rIK|
      zHnood&S2|IjxQ<C53Bc7Gd7UV(7pVrugNfZ;MKeCqUwg5QBxTxG8{>gd7-nUB2W6>
      zL%HfJhWu48@Z#$Xx$^8X1FwZGRYVRW76xH4j4XJ8y0zI^RneU^Vr(I7N`F~W7P@C3
      zkK10Cp}z2cG+$+~)>W+46|WVylj2;4p$z<9dF$<%p|BynAVC-^<>YBcZpBV5>}-UA
      z3gYTM_FW`5+Fr9;b=}$JB0j-!1CtD=-dFEJ7~a1TwCYOv7D||+DN_ZvBd;T)?OGVb
      zQRvUh=>Ae$w!$rjneyzx{%fHhM*F*{7BP*_41CHkdZ0K9pJRr>?5a2kV;KKOTLe{g
      z_0u?M;S|c`y5{-*B2k0ED7$Xj+%!&GIFp!Lk=)W7)E%F-FsGXsJ<x=<p0kL-WHrgU
      z()MCnDr*vL4jU_()~U8brc0Iw^rvO9ZHD4f(sSL@6q)!p2j+A*t=bI&71ey%?W(SU
      zYyYv7z61=%-$x^w12Knw0tO27g>t$Rsp%Y|+t(x+NpbpT3_m4h05+XPlHjkv`EMAd
      zyOla&4C5qeAehJ!oXryCZ2PBPcwR&N_rB0vFZAe#g#K}8=rMehhO+16CrD0JcJc8J
      zPE<;~F~RL&v4bxvr3ua(!X8fa6mRUANbR=@x|xj>H5)sarF@knpSFmGZRNG!-XnPe
      z^Nmbs?~<KCc0X3gutFbZWti2&cH#71qHx=?&0bBSk%=VOOc8S*u`|f-#|ATOa1Yzx
      z=OS$k{7)GCFO2iIIKkgxjs|#5Fx(b7tOyPz^6-U$N5aHoQNR;X#4};x7cqpFVi>Q*
      z2;K;r6~rhjiLqou=hH1@8`9cW38l1l9v3u=NV|wjv_-9bLmDUaa#Gn9R1>ag8eGM7
      G6#oXJL1C)^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMaximizeIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMaximizeIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee01345496a400ae44021df863a67a8feea23c8b
      GIT binary patch
      literal 2544
      zcwVJcU2GIp6#nk)o}Jz8v@BqOQYt7YEff~SA8Zk67fV-L{t7J`A9lJO+M&~(W_F;!
      zi!VO-Xu=bQXN`$57-I!Bh~h6M{$lVqYN8RN#NQWRjOWgs-5pv`6SLX5=YID)=ic+(
      zbI<v|UN{3_J?__`33MGW51EIv<te)~nw@ma{n-i2H=S(1{N{^psmCn(u6JZbzT{h8
      z$#i-=bHeI358D&=QA-kZ#04@kOx7_u$d2IyR?*jy2+>M##Z3w{&)RZtez#S24|+vQ
      zM_S;zAeilD2Q1Gv9s8&`>{tScO?JulHw(mC+Xe;VId{ZLBZfH!>R<@W>9b4L_Jb3{
      zmbXWF%<FTDrZZ@A6rP7*+#j>c0=d5boq4B#F>3kJ9I{9JvEXERf%*{awd~O`Um!JU
      z+NA&yXm1Vn&6-nwHs?-Ex+SaRch<0No;f*Y7t5XbeA{3ei?KvUv%uV01OqL&ULeVP
      z<y^=0INR2?Xl%whbu1HD98I)qxa@nJSocBScS~t3#f=7*V}**;&yqTPLt&(flOhL;
      zoprbwtvXf;EW8HAKpR$Z)^>TPXO+v=NTACDX|!Xljx_=+|4I2i*B$RFjr3SDP!{WW
      zA3oSl&z>;7BRRL^d#*DuW{$X10xM>mGl&&rUaP21DdH^#HsDsyv0PPae(OxJq~7hg
      z-M}4k*SWKHm4WUw&;h>p<bK<6c5|Hz=&kv@x~z8GWni;(mRfc@W^r7CTMTqbuz6O*
      zt)@4wa*?rf2DS#VM?7;%*0OZ&F|e%?acIo;xqwBHpUBm!h?hn=v8xmluN>w-*QPik
      zkS?2ttdUTM%uE@WGc2&=3SqCT8m6QN0&#n6`Jx(UKAE-Bmmf#IRI<FBV{#FcbqxK>
      z%|`+VG+p!6VHvof_(#x@;#L;tIX3|Q*7IxwkAg>9^*kD$VM9ZPziA#pk0MUTFqh|s
      zB4Hlp^T>jtF$}OK3=qp?o~pVhBt$17uCc1?g8$<B_*GpOVv%x<Z)Tp(OH10P(bPe!
      z&thpuqA4+r8&2aUf#axeKZVuPSpNjlY~99IdkYmB<C#Puqi6JKY@Es7RAt{Curn#9
      z#|tf)bTCe%o3XmUPO$4no*6vT3q)!rd5J=0RQy!HP?)Z;IGf3WT1wU+KA0Mfh^qvZ
      zVMLhq6|g>}>J@5I8469viC#g&-2+>0pHM~s2L7pnT1+V{SWg$!T3TU&fOQ46Ru{pH
      zkXJc-b(dsq7o~8x*urOTjMvEVLS<B#)QiG2!+eyG$(oRXj5QS~Jg~|v5j{z&a+11;
      z2u1}o!sFe;$Ey{^W7txyn3kxn6v|2wvGh<FbraEBZ3r))jap{O3Rt<oR3u%Bl$y-A
      zu28L$K(yeZ8=^TjgaS5HnN3`h>uaz1RjlJT^(+$f91J>zCOVDf^deT#OX#38*hVj7
      z7rlagbPf)^hNJX49-%jIg5JbQdJE_1ZCs@DxJ>T|jouZD=smHP-WNIgKn&4`Vw^q_
      z577m2j6N1m(kJ31eJak<XW{~VE-uj*;!pZgOVU?b3w^C^pl`HZ`c~UP-)Rrh_u3>~
      z(jKNCwBz)X_B37A&e6}>Mfyeik$#N{`YqN-zsH*CkDwp)sy83@18MalFM9-A_u@X;
      vv)JlGKlco2ZD%WvL~H?eU?+DkBbLD~?B?E~VIWXv5B3J#PBx-J>_hr*PkBE~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMinimizeIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMinimizeIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f86ff74fd327f740fcee0a42b21f71495f902fd9
      GIT binary patch
      literal 2347
      zcwVJcT~ixn6n@?%IUAM@O<P-}6x&*CLmQg5)P4}84WWUwKoJUcv=>>D1-4ywnaxrP
      zH{R-vUZ~@E<Apcec;h&OUo(#5jWhlL@B9N^`U4!#?!HS>Xw?}flRamj_k2F@Is5Bh
      z-~R~U5*Ab_0>wwh6XR*Vv0*vO`8C^E%CDNfVdtlUXQk#kWuxZ1-ezCL@lDS$?6PO9
      znp2izty)`VV4xx)kO{)%ZG(f{TYO~Jd=(_oICx~666o2Na=tQaHr#cuW~$HxUJ8R*
      zZhp@6EW@_8j78fNpkdDHj|jA7`xgWfCAV&BXu|;=9nb|1Oj?dPy}r6=diNubLz8aJ
      zuon!D!tWAH_$yXJpfvfvJ1+?6%cdWw53IVs5>{3bNK0_Sw3b(Vf%Y}SazaEPmksmg
      zjSW9va#z<}$8`Kc6C3x8wH2$@C{!x_3mT5$xQZTugZm70^x_qP6z3|rw(D`X+5Xnp
      zj1^Rz6gbw}XmPROd)(OQy6?M=h7)*I$7%FMk*1hZn{P-)ik%|k@UYN<GsvnqE70`<
      z6CM3H$6Z^E8P9Aq%zDVn+ZuAXpkhGa>_0I->AH`LPQ7dff%3Q*6*g)cwZ{T|dkPDk
      z!&aLkR0vqRtYZ*Y*tfAu&*AJ|b^?NPxT@n?kfw*z%y`zS;cb>&$M;-&%<vx1tr&H8
      zBM5mz#}N3+Q+3bS2u4jn%~mS$J-wl0Bs^ZSY<reBAc%cSM=@^U!HVUZ0a(&87Jyy*
      z5=O}cM2(l=d2_-?%iPIx#)VIw@}H+qYzk-%<B3_9jc4}u%{Gey$Dd*H*|}g7Z7yW9
      zYy~@WWbaa32z+_`D~@A&CEMU@Zm78bFL&D#K%o1DdxewWk>OtwD%$yDmEd<?aek)x
      zZIGp4nLPImI=^B?L580i%iyDvpac%`yB-<g5Dv3sLUBX}7?1(lGMO)T-6?=5-QwD|
      z>w5IRxOP3)wF@stu5F*Poysns<aW?Klsx|vP7F~u?cmgRcun9lq;ucm{0=T{Lu2iA
      z)^fcWy?P{(sP<;kq1?fB#yVI}R-?0|#5C5a8l92EQqnH92UDxWX@_N`49QR#X_E-_
      z6oV8gO|ZQhNnHjb2}X+EVwsM?bOffPrIaC-jGST_U=abb?Orx)7OqMnQY}QNvO%?_
      zde+o9xw;E+JI!KbwNWv8OM#liI$DTMNp@1Qz?)Hl?J{*Fo93##s~Ahi45wRa44cTr
      zrg5238|`sF=@vRWW3V#-TZg8HOBxMJN=Dw{)o$bbF3_v)<y@1TM{RZ|*}b_&Um(lF
      z+y|mF&?$><>c?psz&Xlegf3#1E@6o-V~Ymy9$mrbbQNFIHT*)?@jKnXpHvV;!{Qi?
      zh*NY^4ALzzPDSyMMukfy@h**tkLb48rn2~fCdAKF5x>zL@dw>iK$FT*no@E!trTfS
      znWkA~p5~M#dZ294TgnIYj`A@*3>R%8S|+(@fp#0^VEI@Z=TjxrD!9YT7-)A{OMsLQ
      hF^MVuEa=Mnn8rO`N(D1v_iti0{EP$}K8JZ|e*^6P{xSdn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bafc958b41eee15eefd4a53efb60f89e86d16a96
      GIT binary patch
      literal 1817
      zcwU`VNpl-T6#lwBnvs<;QR0~3BqD?uB0EZkuq9X_U@O=b$ceGRsp6!T)R870&$wpB
      zagzVQ58%L=3kSHEz#*ZE3zZ{xilx}s0C$SlJ!8vO%u<v}-LKz!-`8(z>CT@Y+yZb4
      z3l=!TnJeO|xaLG_uHSZ6JaO4sma*`hS+!Q1fj=dhaS&b~nG>FjV_ETnNGiPrgCVcb
      zjwc9vv2jH<V+&@g-QY}ovkd#RuNycEGIWLK-VhB>TF5aRyeEcNtMf7nR>P)bFweTa
      z8=qt7D~>KQ7?q$UbLhiv8@pgL?5?@Kys*05kl`zel3{NxXbNvp&^2^Ul}6lgBZl$X
      z|4q2eV7Fzg#7k}~?&yH33<IfhM!M}z%+S9gTwiM#N=1F0Bi3T45-hI-zVzdAS2rDs
      zm5$qt%GK)VVh#sz$ihK}J@+`+DBwYcEZtQJydb0`i=$h)NmsV;5W|73`AsyUIHY_g
      zSK~PFb2yBLZ5+i&!Zb^j^r-wP(*`JU*2eNKJc^=)V+{NM#>K`c#wcqynhRwV$(F9m
      zYdMr~(!vRbWB*j}S`aKv_^m0ah#WkY1UBi3<`Tn5Phc9XQ|-=2Syk<E8&BX#!bY3r
      z87%fzM-{k)r)`{8*X+}k^y4t_&Wmtqp(9$sn&NuK#yF_g*~_ly&C^ITSjB2}qe0Kw
      zIH%36P^_uRQ>4$^m{6pHUD6pE1}_;1)}-rpngcSm3ADpFkmVYEX}Z{ThFm1B%2t|K
      zzBey=Ar0LQhC|!RwY~Y|ms`*!n{w5A80sDPlL|{SUiEz$Ry;wyj4ZtTFAdy6K(Y0{
      z85{wP1AQ{E&`&=*2A%2E(mFsVhjvDLX6!xO_bv$>d0I`S<hQVgWIJ)dUJTMsg~U(_
      zK9Pd^^48lu(2uu3`!=EX{}<>dJ3{y4fdtBKlb=QVKxrMr<C)_h;_$dRY_8+T`*?)m
      z4GffS;`lmFy@eb}PmxqAWa>jkrf!ngnNq=^gI+TAb(}2~h76;wJ&fd>RrYMxZfR2?
      zZ+2Z2+N$e~)G13gVaaw`$R)eQ#nRS<DDk?9=QiUbb-~<@H&f>{5H067lqu_Qh8Vi7
      zo2LeWe+H9(4x4|0Vg4nK@~<$)zs70)4W{|GxWvChn}3fR{0F?wf5e;oC%nUd#z*`Y
      z+~L3CQ+^kB`EShRzcZWvp&K%j6g_Q-k|t46O(N+$UZC5RG=*tunv!NnGU&g^LKQF4
      b_}Gl$CDf>S9J4yw3%E#oPEW!d#ohlG=0B*8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59e7310caa7e9643b2f7502263ec9741d605d8b5
      GIT binary patch
      literal 3091
      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
      ZLoIMH!_!GYIbhGlEU#KH!d`)g^xvp4rDOmA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e3f35d8f3920d6b6931170b490ca86ad53b2844
      GIT binary patch
      literal 1899
      zcwVJdTW=dh6#gc&-nEx4b(@9~ifITbwOh9f6avJhAu&y}#RVxTLE-^<Vo&2uH@ng9
      zCTZan34{bff|v3KD70Lv3b!gy%B3%T<VWzvUqGC__(B>e60$t!%$alh=6qw{`SZq2
      z08iqih5?4jWw9>KnZbtbE}5&2IAgBJP&nqPXtf%iJ0lvQ=bs;&6HVKjUJFCdJtf^W
      zE0inIu?B@9A0;szK`CBcT$YVcgPK}9sT1EU!=AeezGltIz+3YhQiIO0D^6y6=DhT6
      z;n;79MMpBIM{U;*k1_CKX@NnhdQGW=W4nR-U@&a2*{*zLZDmpVr;~`CHLoF@1wmP8
      zpBk00Wd{sXwf~8`!eA`PFj8N)n_(;N%VOA;8fT@w)Cw7LtHO3;3q!dWS2e{(XjZ+I
      zRnL`fSn1hL_+qtXH-d^~l@@e7goickVc2n(gMk7bVaQUgs^@q<VJ(*WbCa#2VT56%
      zALhv|u;>`Yn1;s~_W#?B)I9I(l-rz<(lM|Pk0-^a9nm<;FqRhoTX5V&Z?u&NPtiaL
      z2Pih^Ha=L~+;;-KY~T<MlWWr#8_{SPw4!AtH?tQ{7{uVG7<4<Bmku#bHscAr5yd`j
      z;F&n~jO{pcbQpnr*1&U7--Gd`xuNelvos<n853&|@wS={9W7DN7DJ+wbM&Q|v-8wQ
      zAl79w1(n~7iFjwzWiyP{?llnd)#u|Yo3SIp4sB-S;V1*K&vISqR~-=qGSD!4j{){2
      zVA%Z+q{ay77U`3Lh8+D$D72^7Me8=&9U;j`W)57#{Z~jCK%Q2eB=|c}_`BFadn0ke
      zP7IQyd&N+i;82=?=k?3oa5XaVkNQG+H}rx368h<up}X;55<2iE`DtYOq};~vMCRZv
      z?43}{*YRi@`^$w)eMl+fRa)CPST5u>(v*5fCblf;nR+70wdY7nSBb4rHgZc6k`f!0
      z)Klqmj1%^<DM?kOQ*>Bu!@Pj;azRaMCoObqsP!y)97&ETNujT`>llxbsVNe56B4D~
      zk%=vrqRaKQmq5+dyGjpTt^+yOhb~+1$gWLIO=>Tes${x2hBMS<k44M$aKS%=$}hs;
      zpJR}Jfl+=5<NPvS=3heaudvR)#{2vmT;Nx5iC@K4{w;3vHh$yR@H_twfAH^#zdx{D
      z{3a{$AK4_o#ZL2|Sd0J6-sZos5BRU_V}3j4%WT4llrNF?JSHLzkygRch|{FKfMdj|
      oNSh>0p}(~c@gk;(-3EIP)2I@+2Jljh;y7mF*ANl)1T5%(0o*68IRF3v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeComputerIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeComputerIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd1d4a774ea405f7d64b66355561469843ca6e6d
      GIT binary patch
      literal 1656
      zcwU`UU2_yg6g{1t-RTUoFaaY5SO^ehg9{@>1+s|1Vv?<j(IOaMsB$~IO?F^1lbV?j
      z!V}*gYDuZ^BdFrVmq<~RPdxF)o4<fJ|AOW1p4lXZlv>u-&b@v5p40dCy)!TWeD)iF
      zLl`sB#c=eZxGb)?@q!o3xO2X^;LgfK`0nTGS#O5Hh-fBZv^a1slCl=g&dnz>Qn(3&
      z!BK427sUNy`l4(mCJGta(M)4G!}d2$`l^0b#^HR_lqM{Ox3riSx|1^UgzsGy)4pUV
      z9QOh*Il+)C4^A-{wXh{E<gm%c2G|Un#=SsJ%+F5C=v>O!JRUZMKP5<o)){CdZ7*gR
      z9{;}uR~hUXnJD*bua&fQLUo2>298N@rkyZ!&j~Nk2t%c;k8{OB;wr5$kU>&i!A2u7
      z*Y=umwO${bvak(1Ol)W9c_Y9^2|F1$omC6{Frp&MgR8X(t6J#C9uvD6_We_l<6(H|
      zRL~lc(zme}1F7t3Uo<Z<3}mu@BWwAUZdFyL@7dUgGI8VOl(v-DW|S7S-^Tl>P-rU>
      z3#wZTX1QMP)O^r}yS#mthDg<M$i`unS`Vf6W#r9@Xt5RsNfi2u@}Z57H06Tl`yI*=
      z8%Gtz(U+uSC)=VGE-<hrjn{gupsg87e4UQa&K3GogV`cOJ{Ff{i?r8P$Y4$COBwOh
      zl=ZG1qk}4*CZ`?*GOGC^j%93O<X>8}N`TH>JBd^)4IlmTFwspfvq5Wm7wB1})eu=m
      zHoyN@Z2X0sE;#hG$bz4T!M{Ndt?e`jo3Vu~-4A**fdiR9&T*bB(+djX?N!v=GWG5M
      zLXFm?ZpAw(mA#<20@?n`68eVom8aOXgm){YLZjC(8YRcpb_s)(Ql8v=LmP*ukW)-C
      zZ9AZ%I^B(qO#|%=>^K@Vly5bhqPc_vl@h0AfkG^8bp%g!Q>=4<Nxs?8#xXPf4JoE=
      z20q0Hx)iRroB|y(MBv97baZw$F?i~vGFAt*SJ1vZF;+S{q3)1hLxJBwk>5l=zl9-w
      z8)N(q&hxv7_&r?b_wkT_i^u#sJm=rz75@Rh^9Oj%f5adBCzj(svp)Wi?c$Gge@>)5
      z$oiwaV;ELFBd?0%YKF-BgyM4A`;<I`KKk2m5~paIx^P<OSHl^onN#EN8Af6K1x$!)
      AR{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5101c61176b421eea0b242a14610ee53aa4d3032
      GIT binary patch
      literal 1564
      zcwU`TL37(g6#mwhw6>}yQkt|4C54hUu^l&Ric3fwQouB=W?VXxcHC)CQDik%Q6!I~
      zHZ2DZO!x_8hBF5)Twow&V20j1{3eFCE5|7zhYkm6cfa?&x9@%L?W@0k{}aFh9F79R
      z;$!!z`^-*vf@sU`hwdYL+t1w4zAgTa7e{NZm&M8Ri}w=WZ^coT#1iIE7);@8hc3C^
      z*?jDK8HYAN4?^bL62rLU2C;qDPXad#zH~Q3pMeKyJJ{-F4D2C8*^9%_?Wca1L0bu;
      zAX{ZnDi5n2T3T_}*HMINz<|Y2tW-N?Fq|@Q0y@KJJBa+xpKNdX$-O-ISUdLIu;bE&
      zbRK|8)(cXGrS|`<yvcAPNLz=A8e4uQ4EKX>){|*D3?~QREkCcW+;@XWA`JD4yxVqn
      zGP@OT_v6TqvgRRnGjaR9z)PEsQ|)lP!!Yt1Ka3L{=W#)(@E*xjaRjYQ&_x56FvFnk
      z^n#2kHQWDoYwD<=#!+Rk{&SguIn)_Ssh>$Q=~_AJU+stp^9F2OA!;{qckVoOL+YYP
      z!pY574ZJVSkAg51W&vI^@WBvVr%9oHdo&cs2|=bUy8ReE$nuOnl9xTFMt0rg3#vBE
      z73Nam+cY8!pBi`@Qw;ju_(|gVYk_F|#L>>qiyNqaP89h`D|FM;PdRQf%)a4h(99hf
      z4qTwyizq+^JufIIL#NkP5EDwPN>&3W=|4iJHNp$D>a`abt)2T7V?RmmIQ>T`3V0C;
      zS5f8~CI~y7vuQm8$lY0pY8fW+)*$9(c?OE+*pI_tnt=GI3}WQwK@f&>Z{m9PSXYub
      zcV(+oS&6W{KXCqm=~?*N!pj$UcUcvHh3_r=X5lY^Xg_0mneP@$yNXty)b=r3pPEoi
      z&7|$+`lKoWWn)57HcF*^EYyC%*mpQnpE5NGDjTLoq{a^z7d*iviz?h3^+`T(R|Z^F
      zP!CmI#VA!X1B=gMnpaTaHO%oj%ySzJeg)V00&eiDSmzBq;McIt7x5Ke!Y*INw|qsa
      zu%1^s?7|)v@u5^^4@+2<J=#MPE24w6`-pZ5EPO+^&yY^jNO7HZ8a<0hJXo3(hK~=l
      z#0GIx(cRjdP-Y*W9Okc!==>H<gd=ll<jmJ5;vg4&n2SElMIYo+Kubpa3^yby+P(&g
      F`VTMeE?fWr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeFloppyDriveIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeFloppyDriveIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6b90be387657835d332a4f4cd5c6c744e36efc03
      GIT binary patch
      literal 1712
      zcwVJd-Ez}L6#h1mrL~cX5}HyP+@=tULk%iT`E>{+4kn_e?GPHSI^&JK!~#X~NFpIT
      zL0_V8&>L=2rWd{KOfT9O;0=1$2k7+dO4uREKxaB0>74!ceBU{{=V<)<KfnA6;3B@V
      zFv3uOEVjfmH`(^X4YwbNNA9LfMd033Z?6-DP0>lCcxUE8EM+r@`u&~d*x!<B%Ywn+
      zC;>MRME_>}vFxN4%p83!o5ga5sRPNr^X|(edK!16g%ZPiTFj5!RT=vt@SltIKr)!~
      ze(0wQ45QWAH3p**b!7>o7_)H%Hp5uU59QZSH`itSAY)9lqK*jG1gX$E2aUAnCk!`Q
      z|KrSc275!M%6;f})1I!$V<_j~iu5;nDMPU@{7@qdwW`kOitW^GM4SC6lwn#QVs~QE
      z@A;ji?s>CoC47jJ7N!`+4+Pk#;3Ec3xf)Rr#dOZ<>|Slc>LpC$l!Z?i&c5xOttfi3
      z7<QXd1~yJ(CX-zXMCS>^OfLHdS<4R_R#%mNYU3=b#7zbz9jorIC_B_S8=s*@q1{+)
      ztA;UHRnN=LJdF!BTvf$5Rq<`?Z;E)Q5rt_S1&Vyp#uu9W$Pa@1G-ZnNrHxC9;^_O(
      zv8z4NjkeY16&qJypXy=HPo)B{+o&t>_<<xDk%4t+3J+@+ZEeuu4(S^0Jfnw(fbB38
      z60s$_RMh@kU?{EXi);F77$^5n+XWR*)8&Psj2nSS5}8==-qFTA0#w~0152l-8KqwV
      z7K-%c8?>gchTdgb&5>nf3+H~u(HG>5z@c}EEch4<K7nys+gT7MaEvTn5hini^SQvN
      z<NP$Bn+oDnd#IxW>ihqNdgf5-aeR<b*`E|=l09A9#fj^M+Dm-Ai!-%~(VjGncEu@c
      zyNlTYq>OWP2$5f*X9(&=;Z5)*&TH9%-g0cm-o@vH&S{iqsL2&ru@sFH|48O&QB(QF
      zc4o_YB0C2&r<`ZHtTi1aYPJjJP_x)}IM4E48{~CL#4l!!R@I>0&IHI&;E4jo51YD1
      zHxE7slV3uaU&b`Qf;oN_EBqS1=XG@XJQBWu=lmvq;J5H2U&IT(gx~lw{@}OqiZ}5W
      zU%}tpV-~;5PVyEz#qa4>EoAM;Tcx~t+)(W!Zvi*eIFWY?i_}i#Es<x?KSc!%EYo0(
      T;I^)_i934y)MTvSE=vCb5e;>C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..520a43892a24f491ffea7fd2a7a5832605b52088
      GIT binary patch
      literal 637
      zcwUW=UrPc(6vfZ1tE-!3Y1VTP^oMAXLV_X)K@zMN#h%CAQ76XT*d6=xoqFjh=%EkL
      zhl=i)SXvM6!##8F&hN~b`S^T$2T;ML1B;=0%kTN4mpsU@@7*ch^M*om<z1QD@T0KK
      zeI3P5+wEA0dZYpoo2dhv;doK@hpSW>GG{WB`kW!PyVqf`Yf&Ivq>#%ajSNGfDMN8R
      z8g@n8=3ONiip|L9s>5Sx`pMAN1DP<KG#5=VdxKMkQeWtcAdp%{Ay=0|_6K^Ls=<(@
      zf31P+(ZFp*qu3X9X-+NA+a8+Z8S;%V6md=QBoT>&GQ-Y-xfoVvlVJ;#0_IE6ir$2(
      zL){T6BTetWBKtxM3occc6iyqqbAu)7^WU3Dmr2PUg^9tz#K1~FPibQghyNn2DY^QW
      XwB||m4{2d-T#G1;^BHy>8_0bD%+ZZ9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeHardDriveIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeHardDriveIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2fe6af8056c4f17daa7284b6f2a5f8abf9f2f60b
      GIT binary patch
      literal 2463
      zcwU`UTWl0n82--8?*6;8voL^F5eq0qwy>~5y_Llx6bqXaNhp>llbP-g-GS*&o!z#e
      z@y)~spLq05V~j8O;7h3{nwWUS)EflEd%Z<PiI*rw@p9(6r<bTPo6i5A?|lD%{{K6F
      zD3eICGO+)0oax(^%U#?fM9!m1A!M{VO!al~vIc5$!wEmxd+pHXQ#?y-&ou4(Qu
      z-0CjZ8aKTSLV`i_!i%=SgZB*`HY-g+Dnz5C0XNOCV%|}Am-m|uXUwgb1cl)WKbhqe
      z2Ta#8Z0kN_$Tk^L+pN0P>|v1eor4UCUZ-j*kg-@r7AnKyeyeWYH8wJ2x(9-YrTtFD
      zum=sEg|9;}(X3ewhEo6k?zqID4x3HSJ!n;%HNT=VLoNjOnAUKu$&eW}th$dd6!QLg
      zMPs5_>~%&)ow`|XmRi_u*BGr?l}4#t?i^Hb4X!1uU|2GbprRcs8Pfc$UdMJ^-eta1
      z%+0Zqg4MX5a2><Cf9kT|agOY$SNlxUR<Q;hLE4?RQ8~iU5vH9L?5A&CSIMjN1{Ld&
      z=dq2rq-FWJ6$MSLSFr&FPOZAegm+yGlrNWqo>ya&iegm7!J5@Hy_n4^w)ioJEZg4C
      zN6Ta0q~d0esrfS0o33LI)QqY#!N4kff))~+Zw>R(7SNpU9OZxf3fVD+WWyLYt33DI
      z9vGAXzwJKD8>F_mld{R<^VulZ>!#al8;yq9AoTvrB?t-lea{;<-YlOl{!4<8;s3D-
      zzUK4Jzd63@;+AonTz?Xap5~4OjeiwxL60Iqk7Eg6s{sj1v5Z?T5Zb~78^Z*$rk#kx
      zQyxSogitvSz4E_=PA(XF6|N3KlPP#V$nO;<v3zT?Foji<SX*dM=xqtoeUsKF(OGEM
      z76p)RL(JROLYgM>w1}vQOeJJyMWzxlLo~_#l-{25O~6wFNXxY_kEMk)P2_12Q4^V&
      zkeLygnTVMYm}<yWMWz}tLzK9m<XG0XG30lh4V)IJM4%#oxd_bp;1o9cvXkFoGC7GG
      z`Pp6}Udq4*^-!oqM$ji6^3nn?8}hQVHKQnbGAL7ADbb2T9Z8UpLd8fBj6!XwCCwDN
      z{6>7aNRMnw%XElE(~^sH%L%##sz+397FW?@N8n~7G@30XJWCPIiu%&T#(X8UNYWV1
      zMrc+<m8dR7tSiz+6U7PAW%Sq)@@Dkd5%OmB*b(xodh7^!RXuiuys92M9=e=g=i1g=
      zbe2EWpcj#%myn~Ev5H<n7rlzz^cwD=Q@EF2$3rxYN9YYaMQ`E-dJE_1ZCs#t7^Bmy
      zjn1$Qbe8qdIW|D=vKpOd577JULHd9lrw`c^^bvc8K4#PO37erAc9A}1m+3P}q0gn2
      z^o6vAzLfgtD`_u%EgAHUG)5Pshv{4CG5StANf)JQ`d*r$AEZn4qnx9k<TdoO+)cm8
      z`{<Hv(y#LU^qYK~ewUx5%kp#dhkTm;lFz5%zi>UlD;B<Ro_7mw^<F*h-G*-O73SVn
      ll=v&?dE2;`KuSJ?+j(q~?{D{Yx&u4>SKE6~cVZWmzX9wH3}pZS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..27aabe6239ca30d1738742d554211f82e73fc066
      GIT binary patch
      literal 629
      zcwUW=&rSj{5XQeQi-i?MLG)~5;-45dsNte9F(gEi)eD4sSqjuFU9-C=#<O=H#ET~r
      z4?choWt<`*1U=Bhd^6MjreFK@{qYH)j4cj};q+GAi;){YDBW}K0?~B`G7*7$ZDQRI
      zbxrt57(MPZBPl&8x~9irGaN5U)>I%(U9K=Johz-93x?F*ev84bh8^i3g=`LKEHUIg
      zrRB|V(3VkCv;)ad@Iqe%EfFbGPnvepS207yThzm>`!j}OPbQb0j!IOhMQ|lmub+%P
      z)fqCh*XXM*HJnB`jC^Sxz)+eWdSotV$knx$Q8f^8EMtxm!|sBvh@JI?ZIB0;m7<LP
      zgCeKugp`q{58jb^qr`$k(IEvN!RAj`raJd~h;)UNVHNqwfWyfEi@#23GaUSRhP0;S
      Z+Fvp~Prm#^T38>)0*YgQhTXs>vOf=riZ=iN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb378d422b871eea41756d9e216c3b3bad38b4b6
      GIT binary patch
      literal 2728
      zcwVJdOK=ob6g{tJ=Jur1Lz+)OiKr+@0tq9i5gn9IATSsRFc1v!Go6_x(_}IednSfh
      z<yxyOmWpDDe_5yt76u9d1wVzLsHG)VVfigBwRGXea;4t)dVZ3i3oAA6-gDpmoO|DU
      zoil$PJpo_|QaUt&6}#>G?LE=LsGA#z4rlFM(IKa3XQLbC8c*eOop!32_r~V+I9}0B
      z+1W(aO*`JU%*ar`+}05kuw;^G*5(x5{kxr1Q3sW*<<!1!SfFV_!R_&_P9Z<yr5qiG
      zzzmhl%|{cC=h|8K0lPoz2$%z&opzmEaid)r6bSV7#RX`&n{$h|Gi+|@5eRnV(~f}v
      zrkaRgijL_5T3@^l0*xl>VG1;KxjAPOljk1%#M8R++*Xgx#Tb{2!D7ZO2(0S*pW}&1
      z;!aVjJKS_JqnI-BNXfX~aR)L*fx2Pa%_)mOYqP2vwMUE5j{MMYKF3|hs<w5WJ)Ch<
      zg;+e^(qrIiT%%(y_c1ZZ#I=~m$=$-*oa`&D%I}mh*O^!#_re*w(3ww-6b!Urk&cA|
      z3;wO=u6%xQRW9A>I9U^|XyXjr%Id70;zOC&+%j=s9r<kDtDbSpKom=KTrV(nLQ5u=
      z;s#DxaEdBSVER9X!KRq(xdk_wXqVMz3`o~p(aUGo*xq0wW2f_@vcxhIx8PRJmG<mW
      zdFTRqb3E?PtOd(W+$Q5^ar|b_9kRW#Qkrs#7OXI_Qu-Lx8Zz^06CEn^E;pOq%C}wm
      zt~Jq#b$q|1?}+E|^tWZ4A+9=qvZ2&WRJp};@U5783BT@?W9O8gEOm#8E=j9t0`=Mn
      zv|y8oZs|95f}h;oVq$Cg_;zI6A~O{!p66tDkGBT+C?>gryt9XY%w3G}fSvL+6FUV$
      zyX3v%@g>y3ce?UnHD3I37R#jkO5(Yk<8@^1LcuBMu>a#4)+FFFyu{<<Yt9#*|3c6q
      zKLU{70A7Qv^Y?+*21b7&toDvCJPd206*-P+y@Aj%qc>=o-HF~{RSi{Ds;YWb4OdmG
      z#=}xBfnYb|dWn@^ASAINah<{>ah=45!n(v^iR%>(ORP(5Dr~6$>Q20d8Hcz54KsPY
      zlA8tHhY-04@^2aK#vl#iWy<0h6)}r_Ouu1VhRazB%tljb7;P-&Ucj<msiY)nq6ce2
      z1C`J#CJAl0IP{@OL+3D86&m=1{g}0OF3=tdw9}$@(XeP7SG9+Do!?H4p(hY&J%Z+O
      zEItT>wHsM$ofAwp2Ip8huj9D6b&eHQxPezT`lcxogp>XrqpBkVm7r{7Et2FlC}AV{
      z6=Ri(x2uYwq;#-!D>9B%oT!d*DCtYfEM+$sP|}xHeaTqQKu`LTcYLGCK$4S^bNI%H
      z1TsG2bFXPcCYVxbkH;bo9Ko8CSifI9TBf|ALb+K{CZCNjR4yu|qMAXG&$TR-E$p-N
      zMa9BA%hG42m)g~<6_l>n>a~ZVmx`2?nn7=@u-;rb+F<F}f_`|=pS3!(h;It{CSO!6
      za(E?KwHe8>R5r<g`T3$^kvB!JojUmiO0sHG=R-9$d|)Ii3R|mh@(ll913iWS?E}%{
      zFlaw4dJ;3~X*AI@m`~54m7Yh8Uce@L5ovk}V{{M?(^2fD*RhX|;{ct&tMmp=(VI9=
      zC-DoN5`x|mv*>NnMyJJ6dQZgYtXN6!iw$&6Y@rWDiarvf^s#t^J`qpRr{WNOCf=d*
      z;sSjxexnQGcltsDeW~g6l{TBc*4pSBZ3TU+CFnbCfWFtp=m%{t{ir=lKWT^QXYB*}
      zRlVf({%bA0WT_>vO}=i{wxfr;mf8;7$*)~%y{rWh(9U8f`uKB9+G*Uy8nNfyYD)Lu
      NUY3UXge1`q<8PKFXuJRb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalIconFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdbcad09013b080bcebf6e75f58c84102d89e4a6
      GIT binary patch
      literal 6422
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f966b6607a7bfca419df74aed1bde1db8014aba0
      GIT binary patch
      literal 1838
      zcwU`U+foxj5IqBdO_mix07X=cf*1(0h$te6N+c2t7rCTLUUaeyu+(OQyBp9?;R|@y
      z!bthx2l!EzJ)2M%!=>P5c6Pe^^y%(1^ZU=wUjQB=qo9Vt*y20<v+nMi_J+P~@pU~X
      zJZ|Z;a!uKuaBOZR9i9`*re}!-Zj0_SYzt0)TR7gA#3r{l#5A|pEa4~!Fick^%5v8<
      z^hvp%lITP<hI(()bh`%`hSL{kKSuH6rfqr?3?s420Q6=U0*U;Z2!WwNLmlc>)Z&T;
      z1&t?zo?EI9+LShJF;~cCg|p1FmSBja^9Hvv+%e^U`7j{MXAqa*e&Nwkw;H!A3=CbR
      z0`;umwyRf$P3;KVqheHCMZ1D)44r5DYPgOLDt$wEN7gxF#n2k-Ev2!@S6}iRs&Xud
      zn+&0K$vb7_Z55q}D!9!M{@+!@9o(f+i%$h^QMcM+|Derhw}e47S3~GVkAiy)Ll<wR
      zhWm&y)OqrN2v^KwCe5?L8dE7jpN2U48G_s}gzF1;@p8he%uwM)nFcVZKxgPU-Aki;
      zKg6I>x06RrJZ|+-j65a0VLVarm_%4zmxd8MWl&t<l_1(;)d;<rAf7R_S5g=--34w5
      z&l6H3;~JiWZejy5niIPjZWXF#U!GP7FEOd$6+`o}Z8D#?NLm^acuhBBd2wZmp(S1A
      zK;<N*RNhobrGzYJl+rMRw+t#(RHjF8u~n($TFh!_K`R5J!{~Y9r$NgbQ&MrHTEmoN
      zDPM35ku;@jqGwEeKnByeQnoFegvDJ~kdy~6dWjLGhpLtyeHISO*NS#EbfO?gYl!|v
      z>A!})4Sn(NQ2XLPpndh7nrKyh(+UMHBTPGug2)xkh)77;nKH~FdCD}a@gmx0<r2A3
      z#H~Ga^c_GwK$rX+qPK_#MLgQaaDQafxA&0m*f+c=VrmbK(koEJ^gdeTw$|SUC9Cu?
      zs~$h&2V(V+m}C*d8fkkS6WBlsCULd!9yy<Jw8W~+SnlR9Pn_$hss+6Bi(mASmncqF
      LOrs`ItN?!jhJFP)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalTitlePaneLayout.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalTitlePaneLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0642de5fcf07eea20f2fdbde93acd944bccb7670
      GIT binary patch
      literal 2938
      zcwVhmZERCj7=F&y_O9gsWvs;k%G9Y{S14aA$PknvQ0QPf7$54~ZF{y}yuEj}w;Q0~
      z7b^HIY7~thiBS{d2kIE8iT?1P35mwUfBMHiCjOViAH?_Ed)MBv#suP)wdZ}#`+c7G
      zoc(y|o9_Uuz$pa{3|kMXW9p$~d0aC_lB2phoGc1U)swyQGi_L+WT^U<l3EnIHA@$L
      zsv+9#y{ec|51SQBfsY|9oh5aZT<yvp6gffz3{e|Z$E~EJ+N&Dsh$t}xtb$f<U(T>P
      zbLCldll^+l(5wv%YhqX9pksi+*JI{I5Dc?96f}j<h`Ag=gc%xRQekdJGsMnHF)K>D
      z)vPWUnlolj)d$p)CS@1&$x;~7SCL2Ec2afCYCi7>J!Wy#G=yO>bU2kdJ?^(k6s9{<
      z?Qd1lsm-7;GT#{%3@pdcQqPbo*4?0nrBdy5P77jQO&6vRAzX(x1xqN#%zcjQaRY-g
      zBCLMx2;~utb=2H!){4R?Yo^gHowRe@gqs<Hq?|U&!lG8r_o_Q!cMvhe6?Aw5Ry}ca
      zBEjGv*YZ|@Doh8l49gWHsieysaiTw|`gAdDNv%~Jt8LqoHd3%;loZDri3AG5ftKM`
      zj&%}hw9HW{ujjbUR>_){Wfnu&h&vSA&am>zIl!?AJq%51E+@+6_7w~}u8z{vjJ9v8
      zP-e2lcVer8E!5OH+Z@}FrrvAi0j;drY$oa-koD}~$e_2D*Gh(M|3hBs93?diyKt9+
      zKKIt}?s43Weg-btK;mBKKq;xTtYi<z0QOSCbdsCQijgO>D6usCNJehNevSj)X0DRp
      zy&U&>D_JeU`#FZZnq3mia^$?4sUU%LK*Jazf>^SosnMx6GNWdNPHookfP#ZAJE!k*
      z=yDvwR8wC`42x1p<mFt1U|>{%$uOrjroF0F;CK);dyPfSptw|@tX{*O%jR}!8i~zi
      zd(2wu4H>aibLVQ_jH#j^x=Hr|&)R(0W;32)mLs~|Z?-F+mOA;O<g{X?=v-3{7O#I<
      z)E|9@M>!tDF=FQEl<S%^+4(0pj^jz2o_(q=EQ><019InSjuUeJnnxYnW}B0Ih$i?M
      zd5u5owvKMYNJ$jUF)`ytoqoA_@6S-bSt;ej7EPXb+ken|nRGz?OB+;bkFJ)>f*RdY
      z?_Nh6)!aybez0&@J~{Lj2S^S=c4HPvYtcZzKq%gM7Ce3qbG{&{0rMng?;IuTBWR`-
      zCmV^*M+<#Zk%+opHqu|C#A?O?Tls`-*ye1yhH|w4*Vy|EtyoAF42!VXan=wg+YoKF
      zbxz{iUi!FkXJP`kES<p8JbkRpr+g%L(Q>VnyYnf3#Ak2#@~MD?{X;1w;#cyiruYQ-
      zd2E=(=F><z!uGGRlOYw11R_EI5Lvi7BrB0%q-henj|cv7z<su1!V&KA7%DZxeI7#x
      z8T5uz>st*@3wKF^6Ua}ZurBDXWxY*9vYgf+l^+S%4G4$w=TVIKCsD5T+Mw<Mr|6(w
      zq0YTZ9eoXPyn!y9rdQ)l^x!S@;cX1!9gN^z9L9Ti81LgGKEUhvkfe|BB|gUY_yia5
      zDSpLg_!FPwFG4TkE7pVwwh(98Vp=c3Ir~hHW41h_sWYWjD=bMhwg?rBQDz|)#W)Vp
      z*)L=P`CP(BS^X`aI?A+*ydS1jfHM3;zI8;;9{fgBOAt*5>79OvRzb>dk-NH3#V(?Q
      z@*jizSL!H^xg=cYQaKPO&OCDFGA90DXB~Aks!R;HSu=SrxPA(hr_@R~2l4o6w0?`&
      zen)!B{W^z}XCxYqhNE&_jW);T`cHHYKNIhN@kC8jqb90RpTqNR)GpgYoe}!o<H9>a
      Xa&Q=-FWCAo;w8YIYDUxeG8+B`QR~Yc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameTitlePane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4ee98141c8fd6bfc2eb46709ab9f674aa4f4af1f
      GIT binary patch
      literal 6716
      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
      DhB23D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameUI$1.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameUI$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c916d365f7dab599f53ddce297cdfa11c82a07f
      GIT binary patch
      literal 1205
      zcwUuLTTc@~6#j-*)-D5-tAdIk1$z;;ctwkNAth<DB9X!aFJ@XsSTgM5?iTb<_+T`K
      zU*NMuYvO}Hz#nBivn@da(ez<AXU?4OeCK@U%&*@+egc@mV*_mrQ`=%sys?6P$KAAc
      zm3U?C$WSQjnf{mDQ2MS=i@w;AtEJS8fjC1_Lo6i-@Vv4utD%8*hOx+7k-`nEW#8MC
      ze)x7_i-M%>1fg`L&(I!jIYBB<tab~u1p>}Ft`p8P<kKx7Giwa-1#d$pz|hHI;Jk?#
      zx;YX^GQ`q4pxbs_xm4S!NWUy9N;34?UR9_y;XC@=bjEe@3|1=zq-Lo2uH6%IFpM{v
      zI8&_Ro^(U1+r&i-8yI33`FAYGC0wQ^Hf4BpyF}a!{ppN-JgJq?r+Nzsj9}EjRfb#(
      zZE%d?8iQF{dAa<=E|$wht<kCECQ_I*FmYl<8h0Gmk)}Dy*EOL?#ewu+@WvJuGV2Ls
      zal=54q38Jasplzbo?{BrG==huRbub6PX!dTWO+`TeUqVs<XDpXYeLmdNztS;iEPp&
      zJ??Pa#XV{-API$%VW_8_Ue~+9$Q=FOv<SN5)%>blbo8POoh9M4&cVP-F1>^WC4xYb
      z4BbVys=R;%BFvVz!SP7%Wzum2N}-NkPJle^Z;ZZkV9BIjV|v1E^d(@Dw}Y%%I%|)a
      z&3yyUen;1rD5gjIq8p8VhhDNc+1lHO{>VRo!Dbe}nPoax$Av>&sbl;A<A=!5*{b8#
      z0lKnZ!Q*w@{)`T7#>hNo8YB+jJv#9L!}y2^e4@D>M6832%uQBp&EkI4*MkUOz+6-n
      Pi>d=*9@0Nf6Po`6Duyt9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalInternalFrameUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c518ed553ca3457391681f8d6c144614cf2b5820
      GIT binary patch
      literal 2982
      zcwUuOTXz#x7~Ka#)5Za5xU{9MARs0w5Q+#$F-j|!Kw1iEs{y%8(o;GxnF%vfO1<Ib
      zSzlc)ee?DT2&qffa`EJYKg#7kGm|teNv*Ilmvhdy_xJ6y&o}-1pFjQtFo-XrSSK)W
      zTfe8@PrLJmbt_#l^_g^8db*h&RoATLNypO7Gmc)Cli4UD%>s(LYn0N%>bfF8AePPF
      z7(bOeJuz`wAf8jPX;Wup-g5{rB=B-YH>KyvoZ))Xl8(ThU|CV>mYW`T?22@}g^^iC
      z)fX|Y{bb2BEW^tPtWPAT1R^8$v~0&lf$sCm@;GR?;{itp$fscg+IY_ymK>Wa7o{_y
      z7fq?svrD=;r8|at4+q;$h9o-^xyH(uQw$}iVpxxD8sgZ(RJ>Wk6*!RlAL6p44KwOd
      zpl>xMR$g+X?)mZ_Uy;;^U9Q-cw7j9@i`?}|l10%ku%k6ij7n`2=qS}<sA?-JE;B5b
      z6`3lf-qtDk8tv8aDt5=vhkY7eM?#?Umh?tUgG*|gEwC@q;FXKT+p<(EY1vQ|DaJ1i
      z58Jj$+r*H>ehmk3P(UjNV^g|0Cw;G6QN<n7cmxj9psw^ncW~blSCo@PiN6_DmRp|^
      zSNN+4Y{|XArc4}c$(ZeUv*WtO^+#8?ODm0{I4N*=&9<2^JX0#d7>2M-+4~(0@8T45
      z_i9rDM_%+ot20{%WKm*X0luf<G<FftsuicW4ymbg8oJRF#d(3j)lwd|ooVT~dqXjU
      z*BG+Msq+$3UKrDG5#waxb_DYRuPm3a=ntoZS(+(|%L2#N!n>@(8v7;Wc;bAOnkw|4
      zl2f70q3>&L$yEmbK*JPbQP404){Hut-8&dV0Us(wuF;-}wP(cRoSahoaYI8C?MhBv
      zLlJawk3K!!yn`+su~qx5Iu7wUt67~h8m5EIo7G_8Hv5(%%l19litu>jnGXB^8dKOF
      zCU8M66m8v^K2`Dz+w#*WYq+D*uyHqv%8I6zSJz3;Fb&U;t_BBe%bVD5CbI#=sLqhV
      zHFnW@$WS}xh~v)M^Z5m)Sss<vTnzJAh~hpQXVV}JAK_zuPy&&-s#%L;t?Tr%KvxT5
      zHmtlo=al3bL;1F+nHvtOP&U4-MfpZd-F2nQp3C0H@BTXY-#`C}X5qbq*AA$j_!8ez
      zysLk0aqTy3dgQO$%xjEyAj8<B==4XymHgU;aT$)Nv9{E}BDSuKJIlCpe%$t874KaE
      zk7^;r=)ey2hFC|Lsmelo22n^oN8ch|d00nm^XKwDnij0XPVDmY;g==E_?D|T@Sarp
      z>=_`)==#k5$JkWGYtNB95$TEig^r#`6$6=6e--Jalz02GTx0lkrhkL*H<_f4ex9j4
      zC?P@LEAk@&LA{hD-e4NsA*OSLMJcKK@upu+HzSVWI3oQ27EXjoX8ES%=uADsP=SfQ
      z{S=wh6J(aE4fLxJ>TZL6opsVq4Ey>C^*IY+zapX9>p?<|Jjc-J{@yCi^nQn}960+7
      z*}@_&R5AK1iT!~~9LRHENrN4}MLwkxpJ5{&kmhsh@+A%tT&1xqAgHG?=-0`=O{l^I
      zCW#VJT`)}OGT+oj^`#c^K5H!$_;B?pt}A-}u2*q$i962Kz}LKf!}srLiys;`yD#L7
      zsO}TukA;TmCahGL+~)xHR!Wd&CH9ZJ{>0~>iS$bYc6S~7P96JdXzVUxn+p4PSh)du
      zXCUrXac>EFyKjew41Pqo#~gdYv1-Gvb%pR6fj^<RJnNKK#Xq3D@F@$vobi7F&bHNb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalLabelUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalLabelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..976afe64be7764f4fcd335257eddadb3f0032e63
      GIT binary patch
      literal 1469
      zcwUWET~8B16g>llg>@AwRK;%vw1rAl{Ge7*C_-ugjSA7n>Fx-N+g-9<1b>Z>zWR{>
      z(Zp916aSL&%(6fQG^WYkJ2Us5d+wP#{qgI|Hvrc#WuQr*cS*jHYlZr%>n{|RJ^89o
      zQ<3xvGx|F%tIC_J7)TuySe13xE{yAM5-4ER8uA4Cr~d=KB+z=-_1$PxpgEhH7f6)@
      zN115GAqxiD1UjZ&U(K%6sw#XgtDX`#Ivv>3o0p-h*U4roT6F6IZFZ<+q%?t%>>mss
      zm4n)H;442W<@QtCIV7icu!e;ew3_q|3AEeWrvfMb1}czVmaZR7xOL6Qd9KzNKDviQ
      z+;=J7E6CNTFcr$>Mc1w;Tb^XlvnXV2sZz<!o9MwQ11AZ-FU7)XoMFccDk=wF5R!B@
      zw~HL_mD+GlbJkUdoP^nA5UPbRSn(Yb7tm|qqClpR<y>V(`f@>qx<sEqU$%kW<LZ*K
      zw>502q^VxAa2Z*0s_$^>%I*!+T@4^_V33UWi(}ymh6H-p7Nz9nyj9MOuWEts+7;hX
      zYw@I1OkBlv1J?v{|C-KivF0MzqhiCjL1-tGt6L(^5is;PVC6*_j`6+*v;TQF$>rR#
      za2q26<}Rkd@$A93DIh$7?t><RM@;NGpg2$Jdgk{b3baI=u@?-eB>qbhsmnLYNyP8m
      zt37AAMlBN^&1b<%XsbzAKcIBuyByMa91d#DKMcNY{Tk>s)90(?x1FnDT0z?~umSTU
      zohAkXCM__I6v{YE&)N#Ykr<*K9q3E|CK;*Ex<4WP9f!X{yxc(7XQa9Qu!DCbCNazG
      z$IN`vfZ5GohBk#`IG$ksWTiIRVtySb?zHBQp54Uxb@UIeBX`Tl7)|ex&R@wGnN+4_
      z6NUG%xT3#~oB5tr2JSX8z*Yds!c~&CS<1mFDC+VGy|g(j;yRWvg4Z#rr(1=SMzvSO
      totS75CESf=DdHYR<A#d3j|Zf#y)k-P;bF>Frp=%a6WlYH{V?V;`5UnZVD<n2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalLookAndFeel$1.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalLookAndFeel$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89b00a27c705a24a3d3bcb6e91ba3e49cb1bb88b
      GIT binary patch
      literal 916
      zcwUWCU2oGc6g^%;L$g53*v4Rd3<#{-5Lw?Q6(K>PQl-G80eN>5cgt|?DRF`EtKb2F
      zc-Rl%M<K4WGRmYu9~@mDpL6f=aen;#egvR}ri&SdwSE4Me+Y~Bnc58xBp-xBVYm!m
      z*l(ou+b1gR3L%4*3x}a$>7nFA-tO;<#JH$3tV}j}(|aZcd?ZZ~MEv7n%;iWhRLx#i
      z1e-K4nsQ>BM2|9+na2zdnp3ORVg{$9Q&9uM1s^WXd#Ir9qlN}UrD+NEC{yC)XxJC|
      zYu=aSZ!Xdamod*XyB~v&HO;Uw?eL&Qre~8}a3jX|KIQyRIPK#gCbMjNSi&_IR~c6S
      zHL;gy)#ZuN`Js<xTqpOt!tC%g(@#gnXk`fu^Uc4rwkY|lq+-CZbe1g!@0A|qiRflF
      zf`!v}d}wtHeorZpcO)+gK@ruTt3>L8dJ%t5r!Ip3Tw<c7kNa4qQTDMrdU&9fQ0BKG
      zhUK#(jIl|tT%mOitkJNKP5<@`tr|Q+XQ|qvy+yqBjW6)mzvANOl5@#o<q4^s9n4YX
      zQ*F`9m@n}KES_{>CD-|eE1ypERm*qcQoDG3KGxdm25y$_Zk7BM+%9{wat26qr)1s5
      Fy<hi{=yCu6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalLookAndFeel.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalLookAndFeel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86e1c063749fd796ef53dce76a27409716e81ab6
      GIT binary patch
      literal 30873
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalMenuBarUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalMenuBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e39160c60862bec76b91074b33a9c9d4aa16e82
      GIT binary patch
      literal 1225
      zcwUWDTTc^F5dMa?^x`52f+(O?1lj^!1TSC_wHUDmM8VeU%jx#mE|%T8-HLyOcN1SV
      zCSo)(@x=#!lyT0oa*<-(q%(8QnfboC_2;iI-vC^|%`jRBLu=x-c%#=hOslNds^W#d
      zE?rU8my}$RRwFB%d@hV&GuNW1n}(iMa>td>I%`^{J4Xm4k_AF=-Y&@)0*Gn|p_S0S
      zXj<}KW4$PyhoV@Ogw93V5Y>WkOm+4zgKovF6Gj&QE5i&SVmMN`Ql&7R*cWwo-d?ZS
      zmbBbV@*v#KBcsGXh!V&k^d1Jm6*g)mW+J4wd33Si>I;sjRZOFvIh48(Ll1hxI6>%X
      z?xW!(PH_fh>E4lMx#D_F%&EA34FfpMRhsqXnt0Wa-qX_v&JsHOHl)jrD4C2C!#SJ}
      zW026jmnffG5|$`SN5c??8Gv~R!+sG}!7j_iHEH~5)4nT}L_$LnDMA|uW`*&x?AQ&f
      z!~;wucN;NpS8XQ~#u%aRK(q6?6<N0%jv*CZT7#|%jxgRMv*cD{yqHsAOcLV%8hhR~
      zt91<*afx%O3Da^H{K^UA&1RBQ-=3OQU59bKkr1wEn8tBJ$U{=AdR0T0x}h?ms|g&h
      zK*gUA@w&xUy^3y|YHz#tFJ@XrBhEAds4u`4{|#7%`J}TZ)}hoEA|KdjL5yXqcR7P2
      zEVXS1)@`h#IEr>Zc#^%<TjVR~$rd`^{}q30PkaQ&(8-!qVSfBamO<9@W1rAH$D(f&
      zQ=Ml%BmM)Ud>r|X(M`k$LT}MO8VK;s_&}%>R2~y4<#72OqHJtoW;gY;N4m@j-)HIv
      zOtym4Sj8an7)JpUtf%l8vv`Iqo_pS@?KJ!nm6hRl@+_5h3!}~98vj)Hu6tZJegnQ3
      B9QFVJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c8b938ecb88cffd12be9fa80d0e95b39590720f
      GIT binary patch
      literal 600
      zcwUuJ%SyvQ6g|_XkEAcF^|2CM*}5=3HbS+VLZP)4p;~Y`jiZjFlaMCrXZctZ6x<4a
      zlz0<ssYnGGxcA(-_ndo%dH;BR1+a~k6k-fp*ZhXxnZsMDE=||w7v@0t+%`L5Ja*i`
      z?Fbcgh08teJKkwC1&v|-FV@sBLt3h#&y^(@cG~~lRb@!-OC|jpL%dw+F=%z?To{NW
      zlSK+?hC*8^aTE;t!aL!8o7T*?9gEvN?#ZwoUuyo99FiN$6WkY}vAyySJFU7ia2+L-
      zU#<N1Icbt79ke5h1d;}!41;cccNtb@i82^nC-5xMkfEQ|nQz_<1+Yfaar!2rg_{V)
      z2-Axx>QwDgW|R{fBNz`+J4?}^3>-j14LL&DuOZ|k2^|H@jRhK!AW(Wl@eR2bu(J^s
      eo=~LvexjF;Of-qzBIe<gW{J*XWN;~(Uj76H^^c<f
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalProgressBarUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalProgressBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92f69efbceb35f7633d3fd1f276294b27b81e61a
      GIT binary patch
      literal 2578
      zcwU`WTW?fV6#jNQoij5%+&hJWASl9IfRT$8TfknhFjy`YS}fi;Gv{>Xz|1-0nNwO6
      zFL;4?jhgsEqKOa2nE0Rx3`7#2d@}m#ix27#@Wn?>jNjg8rWdAwankI)_FikRwf6UY
      z`=meo^X+#4w&NuYEdt3i#yMj;Q=PJ%LZ(tOCNgEqH%ghqay;g_1<$Hh2MljCt0A;d
      zc+RNW`OJVE=Y<P|_t=i@?-OWEB*z3ogRW`C(2A&zHiQM14BL)%WU`#Iyc0&QWC<)E
      zcJoGQ%<ycvu5X6?qFoh85C7**dj%qS&oX>Vwy`@g@8qFDw_I@@%kg`Y%_(P`%o2k@
      zlz;igp1`Wxr4m?LF>J@*Z~2y2wjI_M*cMdI7*l@cfM-;ScD~ws+h)cjHk~?Fpd*G=
      zSgoN;U|CZF9cyq8FIcerLAT_3L@kk=t)upOqilVhj(f3QpuIASjlk;p_2=Nm``(9*
      z8t&&cZx^HE0c;{9ES`0$mQP+*%&i`5s!RzTNu+{CPuiwmR658?*A^XHrAwwcXxW9L
      zFLyIK9+bO_xqH;JiHYIct`ox!?9#APVDp^>FzmW#`yF%0vPwE0LN^If2syszmW~$<
      z)14C7m{^c<A~u>Gv8wK*m$!N)_`7vHf*v+sok4j;;#QE8V^QqEJ`H=R<y#=o@hJMJ
      z-I6sy*@&!+9MCZ+H(PzTBG-@U7?SHYFMwbb4(iC_5X+jLF(qGzfR@Pe7nB;-aabM*
      z=Um@+%Tk|5bsWPJ0*iRr{<1si_(PMWl0avoi4<nZN-&S>I3e*_!z0H$yKH#p>oDy%
      zyt56cM1facK)&?k*>cr5XPLzKR!r!&soJLE+?Poyf_8V7TVADFuNRt7eaFl>JuFvG
      zD(jfDk4nA~Q%4RRQsNUj3Sdqx=T47Uc_Q60TUl-xPN8I}hkQoIS+GEuw;ph(1yYHH
      zLX!(^M&Y2M!DUCyULDU%PQ<i~BJaMUbV@2-?wr#xrTpjR>b#B@6oW-2d*1iB65Wt3
      zzjP~`KV{owL2Td!S|NWSTKsr&)VSKoS#WMkT}R{_8ZC%%jBy6_62e}z)6#<=&Wkul
      zu^3D033f12`XV<W#;;@P*E2c7YX9Jz^ARk=a?V12p@Q=*t&C%Y*pNzZxsG_chLuNB
      zSFyH+4Lza2*xcO~80qeCU~KEwZeV*)B;6IM;o)>w=qh^U&>wG;(|%JeYB(^*rL1^Z
      zPLG>(rMg1#ws^RPBi+$>^izCt10y}LbXSZS<JuMMyTjQgSM+pfrsfwIiARIrels}o
      z8P?sk$wvBli+EI(+sdA1$vK5ij-v!_jL@AVluu$U#<7W>44%d=JcAxQ$B5IYz`zBH
      z{US_Uf`xZ6fe%r{SFrIT%J`L%`ir_;15d0+RgqN*2&t1Ttx;AI$~s8`ThJ~#S#z9<
      z>JW=q^(hKvtq8GpA4ReWf3t%=_Lsq*c$SvNp8jA*<CMS!e9pf5D56XFnB9#-KCWCt
      z5aLUolehd`2_k<tK}a2F=`QX6>mbEkRt@$wSW*IYQ8k1{ZCt^Yw2ZlmvdU1mgUOr6
      zd@?8$xF+Y?!8Fb2W<n3CSMdrj{wkrrNGM(-p|2CjH;~4g{7>r=hH;r+s<%kd+nB~X
      zc$rjQ#(Ny!$2EL_Ur6h3_(%~r5dhdAkXD^QT6F^PbAv$q)F2Sw&k%UCPGA}}MVrQ&
      UwjwLSs;3mG^7Hwky2FKk0Y{lwC;$Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRadioButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRadioButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b88c964eea6e506be8788684498c64133cbc7aec
      GIT binary patch
      literal 2409
      zcwUWF*-{%v6g_PQM#uxU+2btO2{>9XitQ|RWRtK2M-CXmBAcwVW?IsaVMd-A0e;E{
      z<PY+ms#N(UsbJ)atMUQ)s8nvZ#zGsZ=%IW1-h1x3TetrH=g+?Y+`xg3a}3Ene!!11
      z!J+MzG8KmxGy5XsPG(iE8{D$Jg=!dj?siUx*3G=Y1KZ3j$hF0sAzt*%YOv@zp3iV`
      zMItl&Fw7`Pmf?IL9ASo$!6nNMc)=0YmN<GP>$_{ab~wk-lSt+nv_;Pnar9uoKtJLP
      z7glUnJgn{)guf-R3_~lP$(=m+ZF!D_T3EINhV;t+&XuBznZDqmkcr$*v>+cWdixd6
      z6>gYKcDigR$x9pz0}TD<D;dMYS*|D>+YKlXXGs)!)d?x$$yVa|LJ<1g4C_&5lX+Q-
      z%Lc|VA(`GV@Fw1(N|r>p?t2yChfmjiQM8X3MiTW<GY%(5o1stsvO2CXjJJyys<vYZ
      zKaRICrQ;oHUAu*WX<TE_54ckmYej}@i6-Z3g+1zOwhLbzlSs(cB^gE&o%&=xhBSlG
      zJP8tW-M}m|G!DE{5w68>y&Jeg6eXf)Zy2~KYZD8-x-yRU@u7|nD3az9Z|7FI%S*yH
      z@DXm4J=HQA#;LQDJe}%(>chtdV(5$EE<>-n0#Z0<pjQe%r8MeuFQp3xbo4Q>0=4hI
      zdQGTG)XJgG+^OePw{3dlY~&2w#{|P5WwF_O*@hAwk<*Nj)l%mr93b&>(@pNJa9d9D
      zY~s|#eV<p#wi#s4yeMi`zcla=Ym{z@VYmyLG$y?pia=3P-OglDq7BN43gL(**^<34
      z+`x`*$YXq^V}~l#;l{w%_=Z{>G+I2IXs=2#-;eLGtK)krS|_Uk4r(2vwy>PEv<wI(
      zc`8qIQ_AwxduUr>SxWW{{2(QLWnq`fp$u=|fD4b}uzY?fJ=4uf<me}#JVvLHZt0TB
      zYEhkLO%>eqs=g_fZTb3*cRp{k5{0WYfIakA&;w1*CVgpg8r2?CyBtw^XlXr9r(3i$
      z+Iv$q7{AlUISkSorycl$Kr6UFUq;;s7ja3s7{YMm;3ip0UF;>;P7Nc!HGK3b`J*O$
      z45JvMoypfN!apMp8SqXjUBhds6TH5fdWp%MnHRWP!@ENynK{9GFL3KQ?zCvKO`3Zx
      znopWE^QTE&R{3*Eqd*Con1Y2lYVBhbRghQefka8luSG0Tm~pJ(Gc1!AO<uhy@EtnK
      zB8|$xKTk0k9+Q!<7Sb`I13X$Q<md?z`4~Z<2*>IU8ib<}p@s)k`#Mdg(V%0@w-@)v
      zF3piG>ju8l4*sbtc(p6|UOV{bE?_1ff(V?WTFPqbsq{<@>+O^E3%U8Vspxv620Avd
      zsod(=QWes$jeO*`N;r-7>9h>$1dq})$M{yWXf@SZ)OKmLwcQgqr=)|5<PRFaW9s^I
      dMVzWTY7kF1h^MJlPgI!G)U1H8459K>{TE~;66pW{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalFrameBorder.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalFrameBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5aa6ae54f295438909b0015826b01624741d5403
      GIT binary patch
      literal 2445
      zcwU`WYfl_i7=8}S?kwBkQeX?TQfQ@xg_W(hUZ7qmmAVxwLZKI{W!Ra8f!P_HnL-;s
      znDmSK)k}=mcuVk-s8yjv6XQ1%Kl(5H6UO&FGrKI8XwymNocBEM{ha5_?w|ks@*9AM
      zVXLSTII*BF>o>Fhisj5@mu$U|Et-LDXUBM)aNS^Bcg(3=mt2o{deJ=NdWPw#Py`ND
      zI?qZxJ2dMDo}LdvGlBSN%dvtd1*&_}(*nw{YnVw?qeepvae?|#%P}w9D9)PRMSa#b
      z1sX@)ylzkHp2h13RDyZS7dSO~pY;w>ra3dJD(CoSK+#V2$Z%PGCCCoD#U<A<onUYi
      z3+)EeI}jCnDc&|Ti3T)rSIq)yPmZ4SbPZwqG_;_VHXv}91VoOp{TdE1rr2g7V4z*Y
      zK?dTpZV<RdhB`GIVkqWWbMpat<^`H}D_Ee$F;_}W?cGtWK=-bV?(8cGfgTNYs2A9?
      zq+3q;82kTctIm1)(!7=T2gANqWCT)`XLY`GI7#&5n2M~x{!0BMk5hqVTY+Wz8WHpn
      z>V=N%lI0lg%8-*c{lN9^p_kBsdU*`TRXkpKP@zi037iy2SpHBxu$E29&8tZa;Is<f
      zt^eZKsOv5cImU=-+8Uk!5&HlYIqq3S-McmHI)UffXLWCJa$cuY0$n}notzzZZP%O1
      zO_;uW!^@jg>(e-+Vu(84v7;J>ah9s31Cnk6O<Q(=puzMsS3jcR92e9)$EMpV;S@Oy
      z=b4>}f@RwiW<FrAQ4M44mE81V_<0TE3@7;3*m{1E159X`lmQG+U*U_(mQxz0*|KHF
      zK9n*K;If7*Y}2rrq_ja|jyl?fNTj(*?=5=SYM$N#CE2o>Wm1uKtiZQ@3;!b~2%PS@
      z@9ze0EnP6$pGkREBNl&-nz#A&b9ezQ=QyS}Z0o*n`YIL#j^0~d+L`T{(Mfr$!A}fT
      z{IR69N~<i*g3;c)NZcWz3P~E{61<K*G-{y%&9yWOzR;2LYh=ek)0sce_$wN&B<Q(|
      z#<5kjWD;vg@zBP@13YwOekdn6C<7Fsz(EsUK`T78!^dF+=*F^4+!+Rs60>v|56WWF
      z=)w_-#KjzqiWwy9Dw@^aKCzDO%~WA8w`ItEp-DNU8if=TvNsG=wLl&<)aV<1zoTzJ
      zZBsY!&_JRsv5rUIM{Q;Ur`GY*Dv~5ULsF(arKDn{eU_y}DjrI)nS@cXR8nyULc0w-
      z7da|Q$yzbCugF6&N>Jr$0~e%wL)}bDiOsNmL%qS`I$nriGLIW&ja*4(jC5omXF^FU
      zVKR&xp(YZ`%8JG>mK(nm7En)7;$Z=G28&?<^<nUsQP#+nRK~f0`WZQMj=FLIF(cGO
      zVp+M#N{4>ufVb#;-lp?=2PwRZ4!lPc_yEW7A$=M?LJl9}GCn2leujB`PE`5=Z{ka`
      zTE!>$3TyZpf8iVajc-L9--$YWFIsU&bl^vE96yOk{45r*CSJ$7WX!dY3nj*o6p@gm
      zt9X(5MA9`PaJ7_PB1w_b%Ou65be*I){Xe;l8R*2ZTJb7okw>C|@0Ae|_z2C+PQHrf
      W?pLu&z6CkXQF}mAlGnl_lK%p}#V%_A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalRootLayout.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalRootLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..355f39d8adca803953bc7e41da28a29d6d1f61be
      GIT binary patch
      literal 4344
      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
      ALI3~&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$CloseAction.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$CloseAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08e5c9423e596ab91d0f4f14f869b86ff93fdf9c
      GIT binary patch
      literal 1617
      zcwU`V-%}G;6#h;&vaqZY0t!;7C;>_Mk<w}rP-_~XMuSDcIQrr&$qioI>@vF-(f^<?
      zeQ2jI%(Ty$@vSq~I(_K0ul<kegVS?&(;BqX>5!Q{d+t5weD|F1oV)qs%`d+Kn8QsI
      z2|{7VdEz|Hhx^jo&hNTTJ>L+@ar0|h-tm34?s(#EDHE+XrE-Pd$P`^a6osmizGosy
      z7;1+pY=tUtsw%b<I@BW>X66X<<s+T8#1NOIC)HKL;^YxAvK2zI=+{IS2;DZ0p`#PW
      z3CE&REEwpqVIoC186S~%9X?<~1$<5v-BXsHxV6{V62Ydk<qAT&>{lJP;sjE!TboH;
      zEuna{JlmP&x_g{RTNgpy4;rFIIMd3`*;je-M0hG6JFjS+^X$SPhD@9$Ts%?&Ha@^G
      zp)+VX5C#raa^vsFB?}*7)Wn&0y1$|2T_s(qqzG-C#W_Onwovz^SM&D^UR8w34+!Vm
      zDk=JnUEhl;c)J+~ESbnK)rWFe4V(t|Yzz}N&SR1=$oR{m?(DfLBJj&y5jgSm8I#$P
      zcFozC!Zg7Og{sI<#?6|1kgaIztc^TABA7K9?lM3W$Ci(A!NezoRNF{A3zcZtxQI^~
      zKs=R7<CL-$6PE~mhZ0?uj_Yq*n8$<`IW1-h#Q4Mi)kmJox~`F#dyfyk4LdDkfBAh{
      z*lzCBqH}qc%m0!NdsrL(UQiXQQj^gC&P2@W7=m5$JP{OKCk#bs;yPjC|4kI(#NnCZ
      z3)eQ*808yi@HdE3DSZuDOYn|~PL^G~TI6+t-*#^5Cs?_({WDJd7<u)wv?AMUj{Fm8
      z?Zr`A_Mu;6;v`PRI8<cMB=7x@djabO23}!gZTfeN9bkR>H;mnyd5Q7oY%d`G87+N*
      zpBa8eW{j7}ve%693Uf`|`)A$6%}8&e*u*u)oIk(<W6o>Lh3Bn!L^;R$I6tR#%p!X%
      zHPIdEO&D(rd%%f<40KZxY3jfL>4CCvg}PB78!L32o6v(bO5ry3Vw3uCpZf8ThES(r
      zJf;zRMWgtd&f*(7hwmtZ0~*KoG!+qbfhl7$T108>GOp;4A-=^`e8yP};5x1`1qL4T
      fAH?S<vX;Pdl;H|i`JHBM5MQ9gZQxsn8%X>G82XZl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$IconifyAction.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$IconifyAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8759cde05ddc260c264bcfe2e8be310afc421d59
      GIT binary patch
      literal 1422
      zcwU`UT~8B16g{^sU04<<6{#W$#R{c-tSAUlLP8oyY6>Cp^}MuGT(jLJy931+{T==c
      z69nUf(N}+z@y@o21!GJf_RhU`@0>Yj=FWWo@%amYIpj4&2!+?ysdZ)sb=y5Mj~%OO
      z)`YYib5q%uo+r00SL_utVZ3WgN2o-mSoU1I`ev;xZO_#ZBMkisw00Os-zv+-e?nZo
      zvV+VVVX@TKdU=Lev0YoP5|*=VVodH6Vg;`vx<KeQ(1Ey)D0&QN=p{t6s-UlAyJG94
      zb}0N^>(CK|WXUUA&c5Z_DsCoYN)TbaJu0o+$Kv{|(AyS%)$?njLKtbNG_ATc#i?+m
      z*(hFDK1=DsAns^L5f<8_VBju>2%UbjfRJj@^5WObypCZ!&~X3S5$`CwCvC@;wg?Q2
      zV3g2*B;<kZR=oO}TNZ)ze8R*ZN(x@>*mFY#SINc%ZpSe~@9*q}Z`Fj3G%^MrVVsa)
      z?DaD#+={5|NK1<F$cm~YYhV&NE(vaw#Ii+otR3MV5{Cb^s|2dEh8xT{UuE!8D>qKR
      zYqu5Kn|7^jCiiu2<fp2AI|=%ZcjA}DhOOFj;2O}ZT9059U03)8#|i=wXjmeQ{~r-P
      zm{ux;o)$6~WhzmAS16HC7mK|pB8nO3yEvNXD8i$joBGJ+62=FPBIsiq=Nix)66_nw
      zhmL+E6&h|~po#F7t7ANl<<6m><Mt=q+noM}^m`<yzaqUgbAg8kGqDRyTp<rBCbWod
      zT0)YR`MTsWOe;v!YPedif!JJ4c~h8HuLDw;!7QVsn2U+Wh;q5cuV#bGIR8;<<GHCz
      dJo&qlNchc%b^*_LOtLqKMLdT(xIru<@)P_gbOita
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MaximizeAction.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MaximizeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ae62915587ad94581d874c4acdda15d8ea6cbd3
      GIT binary patch
      literal 1427
      zcwU`UT~8B16g{^sEi9{)f`EtuQlXTO6$Mc+CIlg=79@N=5AA?s+Fi0cP~waJ4S$9S
      zg7LxVt3S$kXNy9MF{TfD=ia+_&YUxIXMX(r@)f`o<`akzp1%=C;@Al)%H4MkN@C9`
      zOD#&yim~gSr`Lolw{qz)-c-6IO(MM_j#XK`l?w%}JU4+Dq4zS<!fv2_QP9=@gt&gK
      zg7g$&Hs8>K^9=D+xk^7H%w-zH7~Lks7QLcu0io4K6XF)4xMm}P>x5{=6tv})D_0N8
      zyVBnjyCq3T<-LL^Z3|zS_&gaif(XlvQK{QMR@Wv%Z%z7po?n(lLVs1JBP!aFN7B_!
      zwRp++tfd8A=t-cPFw+nR8#mEQX!g$w2;DVeUi_XpZ=nx&61ZJ=#v8_NX;o5M$-qWG
      z1_<r@Qtv3Y=v5Znf(*3h6Gkp6S@g;Wo*OE-NLD9sL*6A^|C3$zMOj)HMB2tZ3=@)!
      zy>zUlTa?8OEwl{JEN4nGHb#-<lHf{7ER!?m+7#{~q3>V2N}vjBxWbI{dkmhh<;Lmv
      zjrL+=)9U+Xblc)qerOuFnP6>rhkijWE7PEzbx4zDL4uugUFk2DL=eazfyad5|6{@@
      zQ_IC9YS>_axkUMGp=8qBE%u^_7;2nv;b@wp2#;2F>=T<a*dIBHpp9*uYd}j#vTqw7
      z7TS?AXy`!aIl?=xj`28@J%M$C8=rA&W&Aq^KcHj$8wOV=PBFAIk&K^W<N~_aP@$J-
      zr94u!$~Wc}`e==tZ9QBrTZKGd&Uj-OH!lQwFo8)%>1N--eMGrD!B1zE%rO5ka^u;t
      eGd%dalt}nZhjs>!cucX^g;_j-Il3;)A@U27n0Ai<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edeaa27ad7b0ebf46e61f8b0e7e217261a14adfc
      GIT binary patch
      literal 2810
      zcwU`WU2qds6#h<|WV_)4p^zX2r7B{Y0ui+VTcFq?5=;RplpnQrlWg0?WVa?83W$h;
      zKlsBdqN6hY%sA?dinaXc=&R!lkNW0}Grl;(yUh5&c<$~tf6ar_cADJt-E+S4bI-ZA
      zzuvz76M*$Nub_#r^N4m-I~Ffa8s=DhBBzbU^SZ6&;sf$?uVvYLG*jQ7T;<673_GVw
      zpiWF_$E}jBz()v4zIaY!w%zF?dWO*eA>yFgq#buv2Q*U~(+h-vJ#G|NttV_q%_)!`
      zrr2bdhP{Q*9i1ab#}L8SZ)J5Ag!uvrT7qcCLID*aLUU9qEKC`uzN?f^>xF$<I;Rs_
      zQ&vXH4QT~K${y&G2@z6r3#DOQImcEln{|bLD?eeGx@i+S+<e_)584Ix)RQU~x~%A?
      zXKHyT<XIL3$`F<`GUTLlo>SA-IDI~_rO|3l4`vrZ+=X@pE7`~FeSy1i4?!8z?Lp%N
      z#}SEkRA{ytdEG1;mf0goRtemP)dZE5lV(x3xtfcs)m^YhMHDdw9n}uYOah%)L-0=;
      zS$mu_OsZIi2Nc9Pr8*+Pqrj@ZoIYwxt%n32c5DmA*tjjdBm_1{BrvYK&^kOK&@G{6
      z+nSK_CV|b4O4_n*E3cv#k1E(o=$ca-2=t+!FfWs{ih5s(DNRDSrloeeFqiBxJg#6n
      z7pcLvzz!t2mPT>NC>l<KayK8A@jW4s!T|3%PLdhvqP50_#CqmoH=b0m$D8cxJ%PO#
      zBnWv>EFN%c&HPCj)P8{>9AJJfa-UT)vwV(9G|4|5L(=~tfx|LMHLo3WgO%vh0?){(
      z6h<Yf#GVxxk(xn+fr@HcAmgeU=8P&=ZWLpDc(yF%Ok0<WlG4(8j!S0XIR!_&&Z*rM
      z$jMd>aZ-B<`lwzg=vmpbL713OU=bEnMrc5@#|54T&qXsw!G1YGnZAMjbu%?HDcosA
      zX9Sis8UXGf!|VA)vpSxg<Sd?5k#=gZ!|6uu5?A!f-|A#u6FPHoa7MnAcdrl^i!~nP
      z#$!o1E$}i<ahFZZP*=!;JS1o2WqH=C0AD!af}XdI>a#Ab+WVvWiV6-|r9wvEZa4>5
      zHz4bz5vQIsIm-T=RxIj81#b~n|Gxp_W2+sp85ebTE!sKPX8!YoLLvDQ@LL&RS%s{^
      zJeD@1iGP7$tn+(_*cB}JmZc^vl9=3~Gw{=Cw6ZMNMxu+cgul5eh<Gf${MRh8im`M9
      zI`0^^yPKY&TrI^N4jEw?+Sr1y94lP1rWo4>d8@s18g~xx$GyAOOyT~uQ&^kjj|Z~}
      zAIn|5+$iOqY{DP*IUBxgA|PS^NJ0twm29FVHU%+-Ez{U`5ph@8c@4V=2{jxDtNszT
      z@N`&K!fLo>8vD)${&m5Fj^P?tc&f@!sTdxtGIWvQYIj;=tKk}Vw_Pwhjqz^PTg!Y~
      zMr1n6R8Bt}a0(C#X0IY2_D`c&skO<~1HH=!brC^&4{h{5V)OyJ=tFF#kNCQ|#CP7u
      z7^YA7KKT^K=`)<9&vA~vzy<mem*^{8rmyicpWh9-jNj=y{7qB1Nmp=-u2KtKqc*xu
      zD|o$<ess?CEauBInmJQmErTsvjh3T?qa0a~BACQ6KKnKb$R`Xw#PE-Nez+mKa1+OQ
      z72vn#FZup(d-mfGoZwXphWYJ$fmbRnaBlAEMj5+>4xD5k@;{sxams7LZm*RCG47d{
      zzNzcPU!15Tu12{N176f5?*or#E5|9d#1Dub3PnPZD|n@z?YAm6QDzfmwpa0*$JXUo
      lHW-aRt0<~RLk<Kn`nse42F~$!E3bO-Cf;`DwioZ9=|3`0pzi<x
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MouseHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4599854f8f38abff1224dae6fd43f1738d03cb09
      GIT binary patch
      literal 1773
      zcwU`UNmCO+6#hCS84^Yb$YR(;K^OuOkxc<n_5=e`vZyx(rp2*_8EU3ky!fB2VzE4U
      z)GGggo?S2g2Fuq&APFvI<uKjvy?*`m_qKWe^Yt45Jy=i>U>JX<@929;Z`ZUpl3SMk
      zB)Q3jZYAgB`oM9-f^PHWbgQo~nZn}I&^qUAdpxDvhQ(b4L57xm9KOSCk@S7i_SUu-
      zGxRONU51#Ydt%bnH!{w;E=<QJQ%2rQ>boMj;Fz`;W(bR?rq|lTFqkQdorD-MZBvXg
      z3~5DTbgVE0Cme%Ez;I55g3>5TP_80^7(<CB9m+GN&F8l_*SNc+uUVX-QbuO2=&mXC
      ztT8A9VwfzBN<p$IHg!|#3oiFOZZI@yxeVqdeoBfIMHClNry$M{|ErsddNeSUZgAn(
      zfWpu^&elcdp-DvuVTJ(TVW|JdyC*DVtv9$4K?|-bXk|EGh^nFu?F?*>zO?k}P?7L0
      z&m-tUw}NX7{Y9lsMH1I3C^zfCP+O4y*^`^YQQSbEf?kHYe1}E3E(_B#g~>e?{TN`V
      zpd39kZNu3ev)8#N9O~-!yb4S>n_G_Ur#@#qzCiEX#E^np)Hi32R1C`klo9yJWJu@R
      zDn@aK>|V~!5Yp0V*?g)|Fi2s8TS9+yB0MHx*9RxkzfqwEww!f_7sZZ8an}l4SvDs_
      zN={UiA-d>nyX$<~loL~R2B%v-M<J(eo4XVA7xB2KV2+{f|9DX26*3{Ld@g7vCMEP=
      z4A4g{4#Z+|<Vg#XjR?|t8EJi_NuOw<^8jk%2<Kn=w<>52lMnC?m9(n99K{7x(aunf
      znk>Rt79o=8JVfmQ8gl?q|KI~X`_TufId;r~Na>PKl;QFz+*=~3(4LZLb6xwmlGsNh
      zZN?}m+OeV;13{A1eRRG;&rm2HI>g{mI39|J$+K})Zd!G4^$;UDHcdY6CrZa>V)KPw
      z{z@bH4ZZk|8T{}WrjFk}Wthq`3}FIyDIo#!8laHdDY?ziFiujCP#WlblDv8;F;nCh
      sj>+hzvoW>NJz0!!qVotde@<|~|I+?Ci+i+JlGKF^=KW%I;XVSt0HYSZ3jhEB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$PaneButton.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$PaneButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c0c0f4ccd87badad15ca176eebe9d8a2bc481ffa
      GIT binary patch
      literal 959
      zcwU`STTc@~6#h=Pbm_XbwG{AvqvEy_H#`_0Fh(IEsVRggHqp0X8DY#aV|J(DkMhL_
      zCDFtm;Eyt%**01X52iE8nRA)%J7><BpTEBS0I-UVj}qb8dvPp2#`%fT2l0ngyo-;d
      z6=}TX<V$1hj?nUTuU*)?%BIpe+D@zwtu@+5nJ_oW@?sPqRP3S3+pC1f{i(97F~t+5
      zm3>Osj;7=|1ACrWW%OESKqzmReOU$JLWmhu0(iI>!bgp;7@ZID(IC`aC>AF+?&)0G
      zJU|^y2b?4LQIA(=5HRh0hy^SXs(finWCw~H(i#y@po>!KeWm60@MuqFyJ9bugl69)
      zA{~fKIeY9ZyLJ-Rr)$K-$hfa0xSI1`$^B6Irb&kRD5)29-V%aWW|$>%Q#n`bpF|HG
      z4I%7lEwhbO<hjg!v<Z)<D%8g^Vfp`{gxXm!m-_dexXp9$__I@^;bzQQi9J4MSytH^
      zu<qhlyAQq~=&qb1?0!f6jmPU0m%gI)xxidzS#vi@Vulg~w2v$7Ti_U@d0ztx?K*B0
      wId0<CIL8W~<XF5<f4C~nL#E&eN6|4yiEDQ94({^VWNiuea3AhREg?ebH)5~#MgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20022fa78211406daaa4d2b6ed9270f3d1f6a9fe
      GIT binary patch
      literal 8217
      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
      Id=%<`0DgIHuK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalRootPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfe2e72fc5305f857354283121b98dfaff2b707a
      GIT binary patch
      literal 3207
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollBarUI$MetalScrollBarPropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollBarUI$MetalScrollBarPropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6efbdc4d6832b37f31ec870ac5ff4892eac5feb4
      GIT binary patch
      literal 1557
      zcwUWETTc@~6#fP(3(E=xii#puLFf$@?_vS96$C6`QmskjZQ2g7WZB~G7WAk13wSnx
      zn)qORFqrtGjAyo0C=lH=nLTqZ-+brRpTE9*1#k@u3Yr+6tn)4YUU#+)YgOMg`HH?F
      zTyE-%^2`?PvT3Hc{d|6?QSsC+ZwlM}kY3}~s+i+e$rQGN0K?QVzyf!SqMnlHVZak1
      z7+Tyl!x<W9h-Q3JOH$CJVHxf;Ln7ikDw<;mq{}7I28MPGr_iFJ8K*TU=r|ea<V-xI
      z&WvG+rOHM@*w1*u6b#*&a*>-kZX5DmR|aHu42ynQ`YAi*-?7<XU>K~i*9(GMj@}qH
      zvn4E-NUJ!5a|+Hf4E)<yLm$plimSr?V_o7K^hzjFYm#n~uby>n$|l*0euln<znsSm
      zXVw-X>k?bCs~A97!6k;^(NGPSafO;G-c`6sRqBl#LSHVdiz3m^OWH#ku40(lMwFJs
      zc8;5sV|3~P3L*?$2kKP0Y*L~sMiA2wM}k2s)O2;2=14T(hB1sQ&>2R2c1oj_x=x*F
      z%$9+9ST{A?!fk1`inid6NL5_7Y%#?AOoHc|RB;#g6ihHg{KjZVVv;)N2)B_{Ad-*f
      zB(Z4?_dQ}IahRCggohe>5TXpICgJ~$6G6%uWa!Bpt2G(bY`J0=#jGKhp!aC)#$*Wf
      zVcxQYoi@4S2x|YJkJ(3<mbaPy&sZ=hH<+X*(kN)9vyE;ObZ??>dn~>OH5UI2?UU!!
      zNvG<WmMJiUAW0epkt@2;Eg@z4b(rtuDW6%1SJB&jp^A$i@q*;RZx~sO?LtlbfD+h&
      zlBgoOhf%58#f^Q0>Qe19TE(53G_{ZZx^!ULL91l=;DF(<_j;a~y(BKLXlP&4oV`H`
      sZ;3Ofvjjmu$v#|TSZ6P#6w<^$M4pc@;}v4oLw<}oFMH}Ojlewc8yFd-MF0Q*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollBarUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..55524da4b615df75f700acd3b8acef29003fe4ff
      GIT binary patch
      literal 7735
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84f5c6487d9cd00b42e93ac08cda1dbbb0c7e121
      GIT binary patch
      literal 5504
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36adede517db03bed0a7277834d42a0141f61d50
      GIT binary patch
      literal 1734
      zcwUWD*>2N76g@-JY#2&QNue!eE06}L*|(Ge36z3Ts1&Hg8;(0rBiD{>mwkKS0bb#m
      ze*lE21QH*>M<LEQj+-_q!m{Sh+&OdZnS1a2{`2D(fMb|WVS_;aq4CIgqWh06=Yd|g
      zjr;nd3=CVJQDfEgT-%;C9C_z@3W-kWn&DffUQ%N#S|B-LIaV+!(3KyX6G)WZd6`8Q
      zG8(#(6zHi~j=Z_FSd-puqh?EizKUxa_MG8aY8^Qf!Gh%r6e|C#vnY@@J!u4?inIAu
      z2XB<!#k%WACn%1!Gsc@_$wDB*-)#B>wy#G;nC1A?VXKfs>xZ0E3CL;KivA4ww`<se
      zL4m9v>aSD3z>d|YSFT1$!x%|nr@+8E5DmMqTOjv92Gg!*J#(EnIVHmr7|f4#V&`5l
      zjlGP$;uyF5DNo93U^w%HW-y8aDeM>MRRp?i@Oa5}ZD}|f4k9nmJ$1QKy(+M^(uSb)
      z0uHBeh}t^G*Kh>mB(E<8W!qx1W<9qqz2K?9!F&tht=dCr2E}%d%Iz?YYHVy~pr09-
      z<8jMeb$?;99T)ssTP;`eK)@pf*tq1xHC0tRtKl^I1-3-qisc8=ksf<<IKOVm8Wo?=
      za1Q6=I?sl6?u!G&R0?}Z!=#Ec)ac<@SoN_{ZvqAOM}^dD%&xCDlT}_|Mr0FKRD4%7
      zTt$f@8+@ISlvZ_@JX20t>doca9@V%ChCS@rE~qcX8DBBS6jvu`1#Nd>8R;*aY(SP{
      zmKK;m0vE86Gpzxl-9($gX7oe^$B9&X>7NjHm$Bt@%#jTJ(=F%I=tUo`P_HOD|CX{6
      zwE4oJWo#>a!@ze8%^dFA^A-EPW31uOZysqnRx}PW0&tJ2463Rj2NNThXGhC0W}(3w
      zX;!o2j4rqu;<ZnbWrRGZIP0SKbgbx2q-eB7j94utTvG3uwQ8R6j?bB!7Z|`x^1s49
      zylzo58mk$N)TG(^4K)MYX{uq*MQSFwqiT^<@rr9J^p3ZGAM)oKsF**=$_<9ao$SnY
      iaV^&ea((<KR|1z&in#Qa#wo8Y`lk*}BQO=BuKfk9p?9kQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalSeparatorUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalSeparatorUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50fe535ed26792712d42d387a2d42275147161ba
      GIT binary patch
      literal 1827
      zcwUWE%W@k<6g_QA9!Z`!u_Fa5<`oD;ifoS`U=k|?Y&i}JvJHMH7($g>qp{S^XhzJ8
      z?C>Zk_=ap?mzB2!C?!RzQegvCY_em=2f&K_0LAT*5V9;+A(guC?Y@2P>2q)E*S~*!
      z2w)N)D(GQ2x5Ib&EzR8%R!OUxd|Rs+9yhfmIj$L1?r_g`HnIu=-GU3;6}mPr$F^XG
      zkg!~jTe`uJ%>B<4X@<T_!V=zPhTcRn&k)GiMI(Y<^s7)1VmO`?ma$x`6bxsb7feDQ
      z%Go+M^V|{AZ!QMBvT%un?ik!NB%ce311zp(>`K+P49iP*q1W0ZPGL|E6+!ex$m(YZ
      z>;LXD3?Bu`5Ug?`L&h74HNNL*R~=q03*Aj0$tABKPWf6VRt=q0ESV(2F#02S8qX?t
      zhT(KOz?vL4JYfn?7_N%v@H}CVDtgVN>t`*?aOOw}hWR5^$Q@4ERHkDwf){XB!HW!o
      zhwi1~CA>_smkcjso3=wN5^W&<S~`RTL$p=)@on2NN{(H#iV>X0sDczjtexdXc8OcO
      zWH=IjjNxokQIiO1D}^1RmhO^8JCLQo^_z_>3MLs&9gv|F7QqCjRlI^%83yPUD~=#>
      zxF>AOZ^>+!%J7<s3%E$VS~f(fOeJPnDN0(!CA?0zcU!kVndqdI%u9qfRJ<t>*e&VJ
      ztH}7?$I`o^Vo`d*JyG<^68J3@SzIIFqQm!O|1&6wEPaxBxt&w7<Zo{a)0A~0q!Q)s
      z(ss0?(~p=%yOoxbx_s9tGMwn-&CsJy%3+GmyN4RTC7{Hph~nIQb6#MGtl2e3Hx`9_
      zn6b_`KQ3`_hMrb0{V7qjd}(C$l1(q3#xQx)G&7om=kFnMmy8~$G)8C!77)M{93x9@
      z1Yy932;(?TGyxVVQtm~+!{9GC_5f`29!`FbLGr(C;SKmC-l5a)(#h2}%qV?hKEYFX
      zs)5NKQ=G(p@&Lnxc6xbq>^?@Wr|LK}8yGrwAIaI^(72rXMt{P@*HA|vVPaO<N8oN;
      zsblIJ+!*@-GeL7El!^!Im`#y;nSOJz&{m+>bQZQ+D|K8=#rrw}JHzUDdmoz(V7at)
      z2)%8d**b{Xz-#Pu`UISc2PpEt0_1&Bic}|q#M>s3N*F<zx^f3e+{6?rR684Kd_+C&
      zP#?Q6Q6p;?xA6(?;8X15Gd#lQ_!(c|Pkf2L@Rcuo75!4&W-+C;j1|8aPpCvOVi3X~
      zRH#)dS`@!y4eQhhBlry)WCe-CW8$|?r!|VWj`ygartz?8W$5H4E)vEaV)ednF?`_P
      G?8ZOT2)Hi*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eec02ebd62e1175c999fcf21ceec0b1fd6a2af6c
      GIT binary patch
      literal 1242
      zcwUW@TTc@~6vzKVE88wBlyVU-AleGO*~Poi>H|b0rc{$^qr^mK+o3F(ZgF=D`XT%P
      zegdCO1QQ>OZzg^y<C$#{kw*J6d(NEO@0>aN<L8&J0IuMUh5?49ExyCwnBK1KG|X+u
      zH_WE+xir_*S&?>KxKCG;f%e#KZ41|bTe3Z0IKtHs?iFuw&#sxv>iivl5W2F-orZY8
      zow^h*!=S%ud&vccxl%tE1&S!zj_u!NNT>P>Nmm)dE3LYSf?>$O2@L88;iLf#!@bk=
      zXdp;4QnDRUZZ|FAKH-)W4DnK{#$}bew$i(oVbv5vu`j;flch$7w~vgBA<-c<Ex{en
      zJUY;OJHqjaQO6{vG@N3X`M0lu(>OyNHH3d)E%PQ-8Be7<WhD8U72hTJLImd+Vh=ma
      zdE2{hODXC)W-zPaJemHEFmM4E>9NG?HkUMuiPRrSA6Z+XMzrgSHfi7z=ICXJq%3x;
      zT(*x<bOSV`7)B4Tms>4K{Y8;MPD7R<+0VcYTt=S3*a&*)+%hnNna6@bzr|HDTAkEg
      znovryhH%}$7{<w&?q>h@802O#jFpb@l0~ny+HOtI7}X9P!OJUuB3N~34OS%gJfY^-
      zb4zH*1V{fei^bGllQe)Z?RA9iqogg8K0x20Om+`?Ci@x2$G~ZXPCYP{C~y@qk_-wW
      zSBxUAQmR(FY2J~iDswBlkBRu%eN4YcisZyM%&+CXV>t5(dT0;n513S9ZXaf#MO4Xa
      zhb3o-4X9G7XO#Rorm&6#UeM5A;wD}N7_*&HT?{4NARDa&rb)gXbhH>`TtXpegC<QY
      HP(=6_xbQ%0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalSliderUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalSliderUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8dd86d9d079ffdd7b5a6f1bfd4025bbb8ba9f738
      GIT binary patch
      literal 7057
      zcwVho33yc175>kgHItVBfnhO(O@VACC^S$&S_wo3!Xl8c*g}SxM=~(X;LL<grP@-o
      zF15H|ac#9Wwg_r~5JapfQqfwgb*)RQU9{D@FRfbbIrqJJGYNyA)bf3qd*_~e&-w3v
      zwmUrh+1>X7IE7B|KqH*ABDf~Ft~$9k5^Jtr9Stt8US*_$(dwD<IWHOs8;OR12hLnO
      zmj#oNQ1xW_Oz$N4QZ22kmet0i@dTk~y&S3zu1!^|l?jBxmPm6;l>buJo*v;~V&%M+
      zU^u?kTJfb4!O+SDk#MSoKuTvMw6flaHOoR_OFR+TFkh?$Lh%@(s6HE+tg)GbHAW(p
      zwJCpopmxU6$qjXNQ|Gd@HXci+g0WO%FxqN3m=C^S{=E9Yl&N!<)&=V8(^{*eLDo4h
      zm0;Bqyzujtrki)IiX`hI(Wnt7=*!i_TxZ0K3EqjJXe1U%O(Hl-%NhyJ+IZOTVj!WH
      zbv|=R9|mEF2ZIUz?3*+MW(H%yW+S0vD25T-%|<E^OYyGKENruvtuR8V31xviu#a@)
      z!RN&YLSM_ws^E%vV!q9v>?+lfFT2VKCs?}_r|}s3+~!PBRq8kyRRoWiRy>Z#W&3Cc
      zh?!A3bQE}TDxtq+Mw}7}Wf_ruV{{avfCHgE5;JD8z(~vwE{huCgE(()3??G--CA@{
      zRK)t=z}Iz*#dua<+695-p$TP;qJE-|9`MO*l8z$umV13u$LW~NfyMWl9FIqhVC)#Q
      zE|!B+bo50(AL=m8gEI&tzbI+y<MEZJ$HH}n5!DgEbV47t!U2~`#G_N}SZ8OIb|p?J
      zQYp|7m}?~Ct%;DKh^*J)g<H(e(lJ{!_ReUWmQE+xd8Q5z+#GGGmPnGFb+rB*+0EJF
      z4JC|V%8>jW*Nw~C_^Q?Mm=WvlW(%z)WGz0nzd#%^fRGnT3)nfw(#P8(l7-Qz*eyP`
      z-A3{Cw{<MWSw1X9(1Rw9@7%j}EJKKsObCibcwtT=zM7+M{TGF9mn9E4$a-a#t@!XE
      zjAk7zh;YI$GuKr0P#MlCPi&T!v2W^+I?GobXfm8eQ`^E~qdt;M88N9D<Bt)+rmkhI
      zBUzpMEaP3x=f8}jPg38~YSIdPh$A6><A5nEJ=({)B1S5jJ89KBe@^I}T&shTm|26_
      zU8R{;a7H4yx+M}yD$lORIUa0CGoCHhaW2l|*i^Bu8bgtlF<A{oqW(KNT#_H_ae<ES
      z;(L51X`ks`+Wm-G7QU||g;pOf#1A~Ui1+2VgpP}G33nVuFgqc^6ih{=2(rUfxxGxs
      z4{<rivFdqqIeIwRGv;K0T@{rq-hwMVxPq^6v{c7c@Nw*{lU-YNT%*3N&&M`g=fSny
      za=MpS9oORqHme9W>vCn6Yo=2t2j_u+IFFj`K<y&s(vb|VF>L2akCMW3i;ka3;pv$v
      zJZ2da8h);$&7?uL%e~|#ztHhZxrw{Qkn$wu;dUK6gwO)kGT&~0viS}jcgkkhTC*Wu
      zh;|*jB-ipH$*D1^{9zyVV6O)q9HvJFY1UIDeV2w*B+4<=iGA$Ba3Z*NYAV!XgiS9k
      z&J~UU{?|QNj`zD6())GXg999gV%N0jDHZi1uEVc%+=qkQ@r2FRM8c3XF;+3{!*lh7
      ztPE7!IOQK83_Zra*&(hLYM;>fppL^rxnz+lSK^0<bR5CMoOA2u#FG(;>AHBrDrU~o
      zKv_Ue{zk{6;(&bh?2yhaE~vv}I({diAQ~66L{f%a_z4}qw=XPx+>56;7p%4)jGFFN
      z6iNSmMsoXEX@SQq$r(z;=pS@EFGl;Z(K(68s$gP$moO9zFY0(nVUXvTkS+)Rq~m2d
      z=*tAIFz{y`e^CsqKbnF3WcFj!t%7=Cda@`zS&*JgW6p#}PAYEd&h_TBC7nWb@lb10
      zOunt-9jRv${A$r+gYce?HQ=+lq=i(Hd65l<l*}wDrbJd5u_WVU=YN!4Mr?u9i+}6*
      zSiG%U?=_WQBKTCtf6|#Jf@xMxeu&Sx^fO+#O3likax?3>?T8vNvji#^+OJ4*>ExEI
      z_sZkkjPai73(V$lkuJp!ONN;8=#*Atew-U}Xk{R#^q7Grot^S^@=_jK3P+glfr_=6
      zk(l{vWw%U|w`uxuU6CtsbCq1B{6gxfQ?Cr`38Og?Z;gempA?g2p0sVIU&`HW79Rzv
      zk+Y$jH0yA-)HhGP<M^k7yl1;~(JDdBz6!*+3)e=2$)v$p{5hL6{{mow_;-pAs@d^O
      zJ@wS+wMKsWt1;gi`Sq>FLN)f0XE1B&$#V_8_&Yy_?eBfyls7KVi&$TO3}DF#{B04B
      z@^5HSaVJW4;l!fhY8+Wq)`^N;s4hB1jic{UYQDywgBTc)WHoD8`36?Fo)vCnb?0FS
      zCZI;`1S=kEn`z+{F*Kr__F`PQXAdTn7xmeL)A+L!-`IoNPE6f}8J(E93v;^L+QO7v
      zz?a*^_O4)^S7I>t)Zw^V+0sqTn2UKl=3zb>EUTwlR=xW{i}s@NPFt^At^XwJycY|Z
      z3_;D$Q0x2(-YrfUSYELg->N9;(}5-TAw0A4F!IYQJFuK_XR!8Vl;ED|!ghAW?M(g-
      z6l15dF~rnkVU*blMSTx;-AY7RgA=O|v+SP6yM@8L{fI9r-;1-m1K+2V_BA)zO7rB!
      z14(u+H<qgH3`a~iRCHk7%!+nw?7;cuyRoSQo3F*tc2vuk3jVlsH-2OeSMS4*UEJ~q
      zwPW<Lq!oPq^Sk@$0XBAs`FxO}9mW_u#J^^aus<Ho;-JBX+khK!lT;?mVNbY~uYQ^a
      z?)t<GcgKNF+&nW4nBL&otqf(7IbLlJx0QEbd)O6is&SeNJ8N9BRO2=e-n9+I6(xSB
      z-{p6=V@4(awPQ{vcDG?b1?%Ulm||Dh?{<YdaCax}J&60a;jy#=$JlandZ+`xuJM@j
      zN4CN1_q4%hp{nuP>jfo#SCiipZbO0JV~N8xd2H>sV$JV$Hu;_W=k@0`xx+H;z~dD~
      zPj=$zjNFxxyOi9*YD(Q1soRo1myvohQjbX6v{r^uyG@Jzzb<lfmy6`N!$P^6*?S>P
      znx^r#KYqb|Gs`l{`6f~DcpE)rnX>$uc5vG7HEJ_^+4TQccl5n!1vD$e&nsQ{akjzb
      z_heC%@AvqfOiVs&bPGor|CX3{DzR_e#k(agQ|ii=rs26wnY*h@dA7u3$~;-JHr$~6
      zimhJ}_sv<jO;3tXv%HBhX>X=)$C1IiyrwU6UD+-WG>J<A_zmgAliaVK<^u5ys_-ng
      zi08Q6y?`_DBJX&Ki{gt|%1^rGc!g`(-?**3hKukIF7>Z-Ieh~M@lQO$<D+<!HNC~F
      zZ{vNuL-}}@itrwl;e8r~4`@36MQ7q;T7pk#4L+rd@gKU1$F2B`ZoucXi_7Ez(&!L5
      z=y`I|YviJLc>IX+wL;RhepH~9P@y)0dT67lr#6myX_I-JMt!u|<kyza0IivdwX>;2
      z+em}7Ei_oWg@$O`dE7z6wB2-~c7#sSo}l5{t29D;lSVomRO;|inPV7LI?AZZQA5>^
      z0F82-MW;AIJQ{SWBTAzk7tk2TB~;_Mg2p=9Xq@97ng}VNuSx%Q97q>Xo|y&I>DY(A
      zssh@VUS`hZzf-E{2wvrxlV5-L@kt+-+0*E5{GDfRX0x3+^>NYOfotXGDYw5zxs|`p
      zvpnW(t0`sXHkwlAZHXymc6ORJn4?=w8_d*ArVZw6t7${q$i@5((V}hPU(wfy7HtO-
      z>_67xsKI7a>Im>tLP;G47MN1L)0=h&3-G<9&lPY`zO@S*%ej-io9R4-(p4zHV5dW;
      z8OSuo0=v@`q>18C`M^?pE`O6&I=(#J42$>U!$sT>_i^Yzjh_(q;<G!=_0iV)XnVbD
      z_oMmz1Gj-)(1<}i4x@$aghi;~G4sk8Z($-LTw)<vXkD;>J4Sk%oJ|ugL{4ssn@B6Z
      z-L_N2m_Z?SM;N`yU|Y+x?%Ute?L|-0)KkzYKgTUARq9~?INNbzMx%O8(CRFNPD_iE
      z9QN5+*4cqJR|Vy}$;owDwG5fvmeFZ?WCOEt4vKlq=pJb6_Sm{BE!~=<JF3lDCpG&d
      z|CF#!PO^A&mly9PUnU}avPzf2MVDo<<F=#0O}fbr6;Pq2YcqS$DJ<E=u2+ScQV%Y8
      zd`r7PdP+R(CvHXA<;{Hi(RF<1>(QTX#9&T{lgWHvmYbSw`&Cvn@{CK?<qBPuN;3yz
      z>YatjeO#EDoZ%dpb~2_r7}H&hshu(H`X4a$IettwO(i)n9b`=RGp0j~=|RSH_&6|K
      zV`1{!m^QIaIa>Fy%z_BqMr?5k13*o<#*cmxZX(MpS7ds<aVRT8K32D>|tk^#@dZ
      K#W~9d!1-UU=Ch>$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalOneTouchButton.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalOneTouchButton.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f98cab8036ebf6d690aa36b657a2b91cd5244b7c
      GIT binary patch
      literal 2338
      zcwUuM+iw(Q6#spDnWf8=7Ro}o6h*6Ux0Qt=pcE0drF3CiN_Sh7Dlpxhc85-9%FHYm
      zO*9dr@s?nsiC|2;M5~EDfNd!x5*`eRK9HF3#*6R%13sz0Z?+U#3bC7fv*-KHIlps1
      zzyEXXI)F_$5kWv;*KzHnb~@>vGOVHGsHqJmM|4j!lb!OL9W@QFTeI{w<D^m0oqGTE
      zfTic`Qofifd7f=W5E7`lA7x*eArQ*!Y0n9Wv_NI6ZMmLid3~B$(t~sW0^y$Y-j1BS
      z2mvK;o3`T$EbY%ow4`>*OSa0l7J-U_;plnKkf@4RG~D`)0vj?5@tr8j4#P6ModV7A
      zg{h_+`WQ{CUC=A&_Hq?VP!&ZGD^yftr9d#=&?h;oR8&HVV2!|%*)d3Nor=X!1*$TJ
      zrFWG^26QK<4Vb#XvW%VA%s$OA<bC=vB;yoFEy&gRD#XZx%pbGp>R!rrC?>FOb_xdk
      z=VY1NBEuB}0&5;2L$3|D-OiWXoTHu89k=W?Q*oG;9n}oW6Ic<ySIfPQHd-|DZi~!S
      z6E;NftU%L3f>V*iMj6K4cY)ej9`2jbXo)i6%_=tIIX2%A<JR)SLyldt3UoZ)Ft^2`
      z*ox;P*e3AIqddyk_V8}2(5~yIiWjh*DI#{aV~l9d8Me6R*k+sN3}=g4!9FEWKW%9i
      zo^P=?-J`p9$;s=!?Hwv!lyI>J;L_HhEhS!3u}ey<en6tb7%G}PUKA;`MbOF_dLZj6
      z_Mly05nI5w&zX(SO+rJT%vy(vH1<)Hh7K78ujm&wEm;{Aosv~SR)>Dq<N+1kI7o#-
      z!!&z1rUH?8n!hq$Rz(iIWxP&~kjbRYNlUp;eP+vI9KtIRyezQtAtEXcBTgp_x7*QO
      zS1-tRdR4`1IKtsd_2zO1x{hYMd(yc*M>BN3zdt1<j;YY*k?4`Uyov%8fyK6C=$5CI
      zH;ou#mgZ?-ZW4FYF+BF4IKx3T4cUr;{uJ-0dGZ3$tY6!9L(atNdAoUo1Qt-!mZdwb
      zrp8D(?ltoaFdk<b<(dqmmPg?&!dn1~c(1tc9_8VR@o6q1pt@SFD&9jp)mTc&Wuy*~
      zFY#6;8YfVbxPn+>?F4EQkzcTS0&6e%0PFZ&<}03{(GeQ52{wwy__Bh0s?)Lca+Q;M
      zg60B*e-ic6Mz;7U-0k<^q^H2?`yj*&guqjHnqN*J;?odK{+-&vALn4a<zuL2?lgu#
      z0}^G;z<RpOoQTTAIBLexcvFN)tqmq7u_-I5&=j`#M0g4<KA}uuXSPuaOk#IqP>Sy5
      z**}Rc{`Fi1m*NFf`O3axvsA0Si0EbXca9-)8Am(I<_0dJE4XtEyPE2nw}*mT!(&LS
      z3dO>kw<<B^0@gH2{g~1$4aLHtV|Afpp%Cqy3yWBIRp|Ox|K2_q6m?A`Zj537|Aiuq
      zM0+UIy+XXrlmYLuVcy4be1JN9$mD;-{dykT@G*DACpd^tIZ~f-FfL#ipR@X3;0(UR
      zoA?@M@eSU?x0L>lQs49S2mHjhDN?`U5`M$axP@`t#w70G3jV}Z{Do`y8{;B~OG3pB
      zzksjHW)+opn}C##L6)${_8h_ydMmA#sW;HhcZHm@>@5Sw*_-d6nZ7A3_Ibu&l2UMU
      eM();(+#fS?cV^@Q>}i<~i#C9$-)c?l@4$akSu0oo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneDivider.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneDivider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b85c734c7df7e31c1c3f4086060c7d051a7b6010
      GIT binary patch
      literal 3190
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalSplitPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e7a5eeca25fd1a4e14ffaef229a5d88472defd1
      GIT binary patch
      literal 1016
      zcwUWCTW=CU6#k}Mc3H8lSZuwv)oP(OT`w;tR3D@<)-2To!Sun0VVT0zWtS{N@n`81
      z#wPv%f0XgevZY8cfh^~oIhXHzGw1yN^Ya&grzjd&VAww8XZ)+(8%V!pcRhY$cZA}e
      zUD2}I^`!d1eNj6!kerp=;63TuueF>=W=QW#U#eFOi9)f?kSqsHVIhG`7Ad3|mK^De
      zqkg9$!jHV+35J{#xZJDrQ0jB+Oscl*F%+FSS(X?~Hxyh&BwiH$se4xrI^Dn*zADWC
      z90v)-0z-yA_rk}p_CF|wl~Kn7al-qaI*@0wDME%Pg&AFDy;odOGI4|9`q;hKmaVo&
      ze`R3}w+!55$WH>+4lCT}EfHpM8+YjDEuqSR7f|o5(amj-Q{MZ=sc<juZ1aJ#qb%xo
      zkH}y4Yx3|*wauHsz`zE>?p$vklee&r`+Bwy7@We~<C>;4eb&2^ir#=>c{)hzp(!(1
      z)u11`;*HcRlb>#~r^~QOBTYd65@gX1k~HY_oHQey+8M(9PR0T(k``%TA4$B#6|%CU
      zB+^$&XRwH+7~mOY>X>;Bc09!Lw=qUK^1q#^H*pO)(llnQ#Py#ERTEpy<$qw+$=xMc
      vImi0(&g0!7HZS28qqG{q)(P%Y1iLXRjcKI`ehUu?I7`t-WNB*K5klcFdDQ;t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5fb3e4aa01cfb0ee82c327d41e70d9d796e78aa1
      GIT binary patch
      literal 1097
      zcwUW?-A)rh7>3_zx7|{fQnBDqLHVg#OSGDJLNJ=x#AHn|1e62MrtK(ewzIgqRrF@`
      z7CbN{9(Vy>l<}QmrHP<4o1OV)zImVTXXfXx?>_+C$1N8*fsMEFy*z9u9|HZReGtmm
      z?V(C#*xoYZ3)$<b!M4=urQaAYy7FT*N?kZ-$$K&h`t2uX{I6V~nC=Hj<DNjPJ82S|
      zR6PuIkUkQ))0|v(dr!dWL<2PifoTr~6wAnC#)FH>*{FZiVNtW)K&$7YVNb>Mg-T$q
      z8}((lC*#1ZvrWeoD6lzko~N3`dS~J&m8n7Qj5KM5rtg~^yj1qKL)lkDrP)m3v#>;k
      zs-LO>PYP5H<X|`3pqivVZeI`7p+Hqf@lb}rr!m|m+~7@fmONZVU7*B3ooHl&6p~cN
      zoby9TeR($;#eMZOFtsk6D(0@KntA$KtGE-&BvFZr8v@Nq+rbq7ZU|O*fqA}PQLUO=
      zq~&nOMTz4SR~yLj1EyQ+-%xI?AHn;|We&3(%ht6;;WJcec@*&|E?~}rE~1uU9`m<h
      z#^Rzq{K^WKkDZy&So2u0et}E0a)ezzAGUuk>`DgXO=K|5><gT0b>}lm_2L(Jt@`59
      zymN%bF~4G&?^tonsuCOL!LjZnPVFR44cBZOV_m0}x7IQ(hr275x{5WJ4)Up?ftwJ&
      E0lvcRvj6}9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalTabbedPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalTabbedPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ac7cac40f5da58ebcd9d9aa8cbf4a8938a76395
      GIT binary patch
      literal 12940
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalTextFieldUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalTextFieldUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19ffc27b416c4d004db190967a7f5875e9d1cf8d
      GIT binary patch
      literal 706
      zcwUWAO;5r=5Pd6HO2sb}{JLm72$<NY7bAv)L=p`ej7Z{fsjIFjZBr`hztR(lCjJ0_
      zlySCHf<&WDGjDe1&6~IL{_*k#U=vFTj4-U-@(zD6+xODBHa(kPnJp1;+dNjWE*^r4
      z6!zu$VFK}=$W7jsmbtIu0GUDCla35Z46$6k!4NOIm%=~{$rMJRF-%saBTnvGP2tyh
      z(-sWrs%vq(!F{RD(Pccik!^;2^`9<_47%kD9tdS(C-<%IsO+{p*AY%o{6Vl^BozY;
      zN&2m?JBIn+q!=bV-}QtaJeF^`b4{*SdvndE;7;4DeXAaH!ubugjBE-sn57+w4oz78
      ztBJulbMJghRHWKXX87?Nsvj%lJqGo~D5GUlOwehYkP(g+y3n5~8G%93AOv<1M-gL`
      zrFta7al#}fFc}GK5mVLlSFnpNrk?s5T6kX>=+`lgG$B(DjQUH&R<pFidKZ~t2Q`{`
      V8Y*OatjK}N<}e?cUkG~^KLHUrpl<*G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalTheme.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalTheme.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13a569799aa6f485f432b12d15db4cbc12cb0da5
      GIT binary patch
      literal 4295
      zcwUW{&2Jl35Wwd(PMo-#xJlY1ZTLvq0#1OsNhtkrX`47PF?G@pI|+e8+1M}kChOg>
      zyKdS85=SJCNIfEPMB)Ib5D6rZI9B3_#Ek<dF8l*Xh<Uqf?|MBgPf_;0H#5JPdGlu9
      z%8&p3;U@r?fe+(wh{5EJdQZKdw)Zuon%>jZ?R1?xs-9jE&r*%oc^qO4jtH}~uA<S6
      ztsP!=7<4Zb=CjusoGf&>$eOxot>tfX+iX~6o<ZY{<$P(0LC<B)(3~p_x>8f?3}RWc
      z!V}O1iUPgR7l#1`6aVL~501c490nN-xLK+Dj%T7kHw<I0g?4c!0sU}H1Q=m3oQi6v
      z*870Ln1FkP>k|sZVOYqX5wji!$%1C^)kb}bTP1Z%=M07lW?9wORZA0VUl?<0n$6%;
      zXFZ}N#e&4E+*wuYh#gH$6@uy(9Sbou7*#8kY{PcU`jUY%ZkJ3y&UmUV!diZjZ>tU6
      zu`{Bi-HvB9_9P=zVeI*Gnd{tA9n;F07Oz@n!>BMg?I-ip<4j;}rWJS@QVb5GubY-u
      zSFHy#cy{fci#RDeyb?qZ=otml0_{cP1zj!gGDzSwYvMjlU0BR2FefbfQC#F@)2N{P
      zIV@FRwy0XW#hO|%_XY5}0_Qsb%x5SBXtpSfo53XoG9Bi#*c^fRvR19>`0oh&D+*j~
      zX1r0;94zlZV463!P3*cr;N{ikuEg&<ZW)EUMFp-2cS+PQa(mY?_gcC)6<Chcb=FHX
      zXO<hbYlqE&>sE%m(&oLOz=H5Fjy8EiEj!vhPGxaJfeXU!M98lAz;<}OWyW9-l`Gt6
      zEZ{LUd*rw;YgRPeKTZ3vtZCou2Fh1wr+B{n5`=o=Z3Q+X1)B3V+in{)h_}UdZL4?;
      zj&&%#10C&<H{Ff6ZL_DkJs#don<Bgw(T5$i6@kUFm5VPIowR1-T@#p!PTJ56j2;d*
      z){>SqN9Rvbg>#u`S2d45Oh3USx}#86<#38uA9Z^ORok~9>7RMPiI=I^*a`%LZT0eG
      z$xvB5$xw8YLYOGJadMit1e3v?dqyM{o5T+4!q49!{KNa+oyFa84mJ1*!e;_k8xX@8
      zz~uA+9G?CW`ZvFY<N+N04o3aead$QTjqBoBd=4Q3cu&OOBF-<t1ipsPp+xZ<!Sg5)
      zpVCP<iEAttoc4pAbA6yJaMt5OYp#P4Pw6>uXD`5u_+;=Bq<j}?cMZ@z{XI;59dUCv
      zlt;JkhQTW&{Av{5A>p$mJQIZ*B>Wl)pNqmDlkf!+z8Hl+CE?2?{6-XhNW$0T3ibsF
      z&&#F#6$vkpa5f4bknj=-=c4d0B%GIne<k6!Ncegb{+)zZNO(00|4G6(<*NNR3Ez_I
      z?SDx4wp3)+OTtB|4r3!ET#`B}c8Y}8<RYIX;dK(;h{72Xen;vKV>uFjSL%Icw@CPo
      z+@9}{@OyIAu9EQka%o#6d{?euACd3}a(n)SgjKn7{)~jT<RX7g!ezOFeM!O<xwIdV
      zFqcdFXA<6)x=Gk$60XWc{*8cRh;+h_U^EK<LBdx_csvUK)d|O9;#Z+NF8kxAKc4r;
      fj6cq~BZC@f?zrQRyZ)&AW8EJOF=8y!&0_CAF2l>e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalToggleButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalToggleButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25ed8e107792a580683112188501d63ab0507816
      GIT binary patch
      literal 4445
      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
      S)O~_l-X?1r{-sX;_x}L$hGFRd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb84912aea28624e2d705cb391f4d703545f33d1
      GIT binary patch
      literal 662
      zcwUWCT}uK%6g^kBHrFjp%jz*ODuuQlCGkNa5Vm^Ad>?J9iFG%2*6MHd5J3<9fPPeT
      zXE7o&SO)IL%sJ<NFdv_9?*NXlWg|yu--!qD<mpEh-gx(cxb`M85rKDV>>!GQu81%D
      z^)&58VIov0V_)e+vbSLoT7MKqLaVXYHTFkg78#9iI$<%nRl0si*!45@am<vq3RTh}
      zH1;xb_J;(k7hTB$2t^kQSagubvI`q4^L6G;km{6tp8sq*8OeAcMu8+${AetKp@@~q
      zXP1_li_po|;Xm8uVV#R;8jt0PGNRSrtOKJ>aQh)+dx6keY8xAbolHduwfSYS&1=f@
      z7ol?5?8-#2cvnm83!Jr(;{y~M%@;V0<}2K1PID-+b<(GECi*CI<T8n&SVbkpR8zZ#
      M^%P5dYS@JJ1=gIlp8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20c56d2207ed2cb3f4d77bcfc4551812a3472da2
      GIT binary patch
      literal 1188
      zcwUWDT~8BH5IxhDuB=O`6sxrrMT_(USy1so2r*DhYKoGG1Rl5TZC%~&n%yn<w@j2K
      zn)n0oUHt+2H;i-FQVLemhrK&9JLk;InY%~7KYanPh=&S7gh#K9edC?(9hi1ge`^^H
      zy(N6Z(l_O~?Ksw&;l3<q1GnVV-f&vQ^n76pS3!iZ^bfvjcxFvsljjNk43rS{UzuKZ
      zfiPPcs)J>QteCdxuM!^ThQypod)kdJ=XVH^b*C;yLAa=41W^@XjA>918_YgvrgPZG
      zE2b@;wOdu;ZW~og5GE>4&9HV1*OY!Y7?BzfR)(8q;0{<8@(Iboy%4mP)Aq!cD?Crs
      z2~&S((~SdP7yH8Y^-cMGLz>*Vl;Ns|%SbA?Mu_!tw;a><Rb()w;5s4oUlI*BaFZu%
      z3V)Xn&gIJzbxXtT<M5t}6lSE>cL*c7a#@zmp`aj7m>Eh54Mofm#ysJdT%-BC(O`>^
      z=o>C*IM@ZT(CKrgKGsMwHAP)Yu&6;tlAykD+HOreG3Bxnr+b)}jEpVYyoGhkV10R&
      zlY@4IX})J+{^uwjmzRyLFh>+z;B%C{68rMIRw#aiS}4wSpuJ~5gmFGqegj__d4xDy
      z$-vie2@^nIB{0b`l6&hi?sB%w$`pznTq%5j`WdOc;vv%fOm~ny#Oz6hSWx{NW4<Ge
      zAAMCay($^p#XPf<l%`u{m2+fPR90Cy+wo84`_;!4?QuoBTp`>GF!%8wKuPu-mJs;^
      D55*!N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bea84a8e6d90093a12a09c809a28d6405045c0cf
      GIT binary patch
      literal 656
      zcwUWCT}#6-6g}DM>bmOY=KOdRCh7)OUj&)@uz@hBB0Bdf>5Ll5nvr%>f0hp-_}~xl
      zM~O*MMC?PkaC2{R&bc4t<MZtuz%Ev8<OtgLbV?t+=z)i~-dNBZZ^U9Myc6U5Qi={$
      zm%T=ko=YL*lqsJ_F$<ZpVG->869{O;hhE3{Ux70v$4tdfKU{)Be8;244#9?>sfV_v
      z9Pp6GM+D8yjGV0jfz_4QtO$aViy0Ig<T2;M#(cU?TKkDk+2<iUos0se`ZN%Xpz6yZ
      z6$7fc$-gfxGZ(>Owhq%bt7mmC<U|eGF*lmEzocy=P2l!IjqM5=MJ%$hOt7A*CP6*5
      zD%SLp^7?a-O2ur-M6mRxX7yRr**<dGfKs#d0;kz}h5M}29Lm}|$y1<-SE%U7)g%qY
      T0;&n7miR@~6D-lTgcVp{3wN~h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9ca5216e701b2b83b52378c3d4bf4392cf5052e7
      GIT binary patch
      literal 3159
      zcwUuO-BS}+6#pHFEQyN>Vz8q11JsZp5p7k(QYBQ44PX_p($7tDNmj#d+}(io%htB9
      zeYbsYAFDGRVRWWbUwr6)(@r~m>-5~+%?C-K$P9b$-gD0HoclW;o8SL^`YV88e5;^^
      zaQK$Cq}`3%%es+^7Yo`#d{H=BAwDUeGp1P>*R0v3f<QCXv}Ws>__%ylR0(RvG@O)f
      zJHika;ZRE2#kFN8E|!Gh#1kymbe5HMMhQDCvrsUXs%L~g&n_)A!;W9I%%ZTIdx^Ye
      z<V1~O+d19PoiRddWMGaENSIj>LMu8{1Q8-^PqC+|(qdXzGg`VJ2wf>NqZQ^fOPBBd
      zVZh1jHsNS$Q*^N3_KYPoN67o0iL9}@k}wyGrolHI9cYBB2pJ^=LI)w3DW4H`uLng4
      zdmgVf5Op{*uqmo~Jb(uJ3H@b+jg#a9OqoVGh;h@(N`QTlwO38M=W$QW_k0xx6zu1m
      zZbYxAZL2tly?ouAa3tYr%^EK`j%k#Ab=bn0u(aIt!UFFIJ0sQDubR4~eJ;q%9#(M#
      zM+u=UE8ozKthr1$(U_5DMchA8vEk?k5K|B(9Di9`6@%#G1aq9_XsO7>ULP=Fmq+b{
      znYqp2)yzcdi1m^)X_jn}G>WB4n~f?sK{&gq>g{)5>s(33UQ_WpP7xHxQ{^PAEk_@M
      zDH+BY*<d4t^N~hMoAyj|DA}|@-LP4;Ae*Uo{brhzef@@tv*6plN$73{*p3U_;{MB!
      zZkH=HgaqDFFu_#Un$0FBHABk@OT|T8;$q>d8)swgB-ZpRtH6yEpHANr8IEE;gfS#l
      zT*2Fft(?=c2Oc7kd3hbm5L%oxOG`%OW-|7xDyAT3R;iffWD|yJO81hb74v$=9^L5v
      zGni8_%X4ZY%2TF!`+||ZC`3WU4ZO=kkZ+YJSr)_0<i(<>&Wv@_Ce@hcdBVYU^rkaR
      zlB?H__qnJig;A26=PWI&vnR>;hblh8$2^>Kvi6TO<FoN7gfy}Wn8k2&DpUw8@CerJ
      z>7sV0B;4UYFU|5QblhSQ`@5lMoxCebN)dChC`CaQT^4#S&jFgaqoBC{6<sQ39lgLq
      z$pU{LI*L3KolE`=3CEfxFe(3Pu65n97}w1op`>C7*9co&Bv}=ARlFllD95v`2^<&Y
      zb+cq;#6?|xsdlbyt08H?-`u3ZO`Irbwk>Q0_X+1V)s@~XX!1!2Hy0>)Kp1@q=*G|0
      zu6544n~f#@7H|sr_eu)_*n&3R1)!jvSIK73eQxEqle`kITcRsaAG-$IT%{I%F0s)v
      zw)0N)l&}Mxyav&Qoj$+`)|9gLXP}!a=zdheXmigW)Y!LU7s75RJ=pEr5BdSLP`%}M
      zHI^;D=Kx;8p8vJ{zNuv|_WG7XzGYw)`|53ftg#JLY!9K&w@tCO<Yq_o7xcftR=LEU
      zAX4RSn@jx9O!p(kdhFtbJsTfS?vA-p1Q5q@ANe%DNv|ExFnlx0xF=U|x<0(8HQ{ym
      za3n{&52CZSbl)3|t>9ejImRBMGxi(CCI`FDuVVZOE>|NBb4Gzb`1vP8{>5N_GrRw|
      zE)IAwm56)!=3#cy$=RR8DL3m=6}Q57+v9oc@I1D%HyOutolD|xCAC7O06M7+VNz;b
      z_EcQ<_%2npDZAvB_g((L1WWyqRa}3Ln-4MA_1-Ezc!B=GC(s_EJJ#CDyBz=D4oHy^
      zjq%?32|?bhV7VGpl<OU|2SMuPfc9ZG?dRVg2hdLkafJ5+)W<&)j^Ydr)C4+G33LSa
      n@QIs}5jSL6A)mVFpW$;}_ptsKEdP=-{1vZX^E%AyHwgR(ERPD`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolTipUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalToolTipUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e98965c5f72d208055ca06f4a036063dd38eb3f
      GIT binary patch
      literal 4741
      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
      CvA*2^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalTreeUI$LineStyleListener.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalTreeUI$LineStyleListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d17db4e543c34d9ad3dcc33b81d730091efb7558
      GIT binary patch
      literal 1207
      zcwUWD+iuf95IyUJxOGjMhSHW>=_RzeK-@woNI~!rwN;S`m6GNGiHA+Pw5}W{*iK77
      zh0j2ORN{dT;G+<;j(bxA$%EHB>p5r6o*DoC^Ya&gb-YxeFcgmXG5=zCCzf+yv~B*$
      zXbPX(#yh!IT_N^%Ql{mIihpVg)AD@b2v<dvAt8~5%?bCuek2;ciWtLUa9S7K@r+%!
      z)fTRQS~{ep3ot{>KeW8m8bit)UcE^9uPn#%Uo)(xM*(DN4AD|+UyOs{rVbTj8X}m~
      zF^&X7BrOvr<)zA<W?i^dUbh89(rh)jUE{7L<M1#lr7~=cP`BSEk{)kg^MGNwcZGot
      zZ5|89C;1xYa9710hWY>J>bQsdbe99+pMNd$CRLeEXUxm?RD73Y7soJ9xo@S~ynU`!
      z!vdC6EMDtp51?ZiDRN(Y?r@t-xShVj*=u<*^FfMT(Xom&!vqN_i<26+JAEQTfQBp{
      ztH?1d4YyRs6XZ$rzGzT8FZ}(76zVFYZwtc=X81VL9F34Opy#rE4A11SX$)GW)o~kQ
      z%aW=SSCDy0&Y<r&1S;9w^8{Hu)yGHep^>HM23R5?XPJK92oy<ArxO$vC{pOHWph8E
      zXU`D-Mv;OkT4R(0yg`yyJ=klwg=u<|iI@o)sv*N%u8Y~^gDxI^MLhc*I>nE=$XxQp
      zsWz}lTw9pMcECH+!-l+aXJC!gf;6s&6;>!mB4gRy8J-T-rvy(SSf67f&`K?(fq4Pt
      EFB3^I>;M1&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalTreeUI.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalTreeUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..84363d15dc9c76330afca3c31a2bf5cd5d26a0b8
      GIT binary patch
      literal 4661
      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
      Gmi-s^5M03k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalUtils.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalUtils.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d1dcf94eca9d31c9b6cbe90ea2a09ca23cfa45c
      GIT binary patch
      literal 7703
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/OceanTheme.class b/libjava/classpath/lib/javax/swing/plaf/metal/OceanTheme.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c596b1f8ae27efe99776be12e8c4edfc3b51f97c
      GIT binary patch
      literal 5545
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiButtonUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiButtonUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d417f3d90d208cf939e46e0f40c066d1cf85c2a9
      GIT binary patch
      literal 3741
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiColorChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiColorChooserUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40e9a80430f041bb6c39467c41c3c38950c84c28
      GIT binary patch
      literal 3765
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiComboBoxUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiComboBoxUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5e696ac3f7d993aa651988dc9228d113416ce3bf
      GIT binary patch
      literal 4539
      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
      E0o{ChR{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiDesktopIconUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiDesktopIconUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..813ab7cd37ebd08a686be7793a9a0c821d7c5127
      GIT binary patch
      literal 3761
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiDesktopPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiDesktopPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4587c3c6539cb1562db60939586ff662e029968
      GIT binary patch
      literal 3761
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiFileChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiFileChooserUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f5783bd5d5f616c260dc1a9d58213f0ef9438b5
      GIT binary patch
      literal 5542
      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
      SS9p@mJ)~qD^)<D^*Z&8$0&3O(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiInternalFrameUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiInternalFrameUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81c467b8825dc32f290f3adde8b4feab40ef8402
      GIT binary patch
      literal 3769
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiLabelUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiLabelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4b080c529c7fcb01f3c35452c3ac4944a6de9293
      GIT binary patch
      literal 3737
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiListUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiListUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..becf3bcd515865f084e7fc7c3b93ab51cb3c50d2
      GIT binary patch
      literal 4778
      zcwViS>u(g-8OEREz1iytCJ-A8w!__bwqQcQ3l7E@Sh8L)7(19i7}jGvu->(2XN@7(
      zPyJS@Rn<yRM5L${U-BVQ5)(=l^+QoB{(wrYs#c1EQmKDHt0)P1&e_@7^<HeCk>#B;
      z=klKC_rCAEbLQdqzyAWj4!jpYmB6OU`kX!=N?$dTmqIfMeKItiN!Vs+Nd896w0$}f
      zfLCBm$-L~KfG1<71y)7ngiyvd6QNNfZl|oUfPbHvH0?glX=@)9@D8LVj37Ly)et~+
      z0M7}mEM69bhT0l%M1v20fx4)fG-8?Qi-t9#UrZQsuT)%5jOvyt@10JsJtcK)i7pRB
      zWz})Z&}~EN-_y2e$+3ad^h_#gB<*l}sV#SqR)Q2+8$=`42e3|{b;*rWsVn`-iNl7G
      z(9nctfts8Gik@m)dZ$v~KBHuY#MZ4#hAptRk_kp@I%86xnM~VyA|ZXWzOs)-Wx%#*
      z*otj*t7#jSPJsdqZS4iJBTj#~7H#MVpq)`H9o5i@E`~B`%v0eDISUD$dmg`dndspF
      zwhJ^Z1sOy)exhL`Hp#tqYUsf(fxwiWjw!Ru#c=@<=LY2j3RFq@mgO8-n@PG3l3Ru~
      z?8PQJnBG-E-PqQCcDV#<#48#OpkE-!r)VVAZ&~^^fu6R~h%aYM=5#7)>l7u>Trpme
      zNc*^yJE-9x2Iz-*{xiaY+xjgd&1B^b9pul<OfWwMwmV|<t9Iy!rO!;6@pR?<8<oam
      z8eT<|b}k95F0)#|H$$PeoO?>cu$;S+emh|qlZIs(6Q|7U`JF4KxiWgloHmkaGnEWW
      zYhxNlaM}&+;t2vPxXBP}(sX88ZXs8k)o@0xP(%8B;m~;vugjrz9O{q9jda>%sTr6u
      z6BCw^97tu7_L7f=%8QE{-oOQ>d#MqDaOF7Vo@CuwV<t@dS}1Qp;ZACZgLVWncEfTD
      zSV|KtoHkuCl8PiJ42FJNkpNjB!+GDGNSO|Z2P|ABF7xS3a853+ix)Bnb2~7g#byK=
      zOH<gb$aSVvG?I$C2FhxSv=^I|+A<m}Fz<b47V9}Wd%#E}4l+g)?C&gVs?gR+K4mO3
      z%C8<=*KifI<5%`}<Qh8{C02e3AKz1{j1@NyoAOn(vfy2_T~22)V%_0em)?^vHMUl=
      z&37PwYj}5%qeAv}+(oeCKD0A;vEnn-eayZpJkQ@1YJG(3Uqv0FSj9Uny9TTA0<Sfw
      zM}uSU7-v`Uy6QdzO|6M`c7BSwj?c07BiCY3%{W61<H}k?b_H7SBCpjP-$1*}Em=w(
      zyYF$1m)9*FG`E1wLwB&M>mFJK{)p~acjp2^yrsWxKK@T$`#MEz(B>p+F-4sw`zEm&
      zSJciOS(^@rY`sJcOeVf5w_-P~)YEG(V~_IE-ltI0TTxAh*5{~Zp0=;CZ;oo-d<Hf9
      zu-{R$Q~8RXlWIOkU*6Mx)&J9im{mL0g)G9(`bXS1!0WJQx7Pvc^)>nwzzyt>tt?ru
      zztP{>)VzR0yS;a?w%ov&v+m~Ouj;)Yx<Wb_RM40QH!0*6Lw=jid>>u-03rMqVf+q<
      z*pA_j5_^(DDaduju;U8ZI*cPKVTN&(Ef4=<OwVJ4&@iYR<)iJOa+IHzYn+yluLcMC
      zXI$muwbkK`-9de~OXF?yc6KdbsM|sLcX13qp}bES!v%ueMKjyma8C)}l{M=MZ^dz(
      zP{LakLKRoOs6=|WHlU<=IX?V!(oR;C_9t%efYSa<^M9eV2bA{k|B}Ynnj`H2=SUla
      zVkjrB+sTrS#S#}VI#i;Yonx-<u6&keljCo^`#W3zpum5!7W|7+zT`RTD;}dBp_lCe
      ze62wG6zHG}GUy~n6=y{78m~cyJqyy}g7g$1op~mt@p4GxOCbH1cmHGS8%q6_Qoh4h
      zy1PwOp+|Vo%l3fq{YXf!KNHfqa!BVYBZ+!`x-}pu)?&3-hZeD(NG(L#K%|XCY9Z3*
      z9|?)4mtrK({$-K${bi8!JW^9pRT4c!+C`+@MA}27y+qnaq&_0OLZp2}>VE>HBTs<D
      zGn0e#SI&{vq9T^7xs>WaZI>+vfR(tjX#oc7z?w4MW6q+Rj~{gx2kRusPN7zuM!gur
      zM)4ZIe$Mhc=N$Hk^EklvF>yhW9aS%Ys7n@g>unU56j>E3Y=o~+enX>QF?#uWu2y6|
      z{^wdkp4EyOJ$*|tdK3(++LgXS#(Z}HV{>uzX31!g(I(>@8LyJ@IvL+0<J)AsPR4gD
      zFis=sFs3l$G9D?zIO{UbDn_39o-U4_T)^yDDWmLODvm!V<1fhgOEUh7jK3!14Kn_Q
      zjJL>mgN(PAWt=OB<IEE<@*G-xKoGr49uPe4IpA9Fq60#~K*0f_(OV4q5j^5!XyOwz
      zh|l;<yFkc$2#Na$i$CBH+cEJ)g#$tkbeN~9+yUXOf&;?aWey0l?g3#|9T478dfxp3
      Dx>m4J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiLookAndFeel.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiLookAndFeel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4c57c94bf7527ed78083cb9769ac496f180638db
      GIT binary patch
      literal 4980
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiMenuBarUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiMenuBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30646d3758c27e44e18736194c73319430f84a02
      GIT binary patch
      literal 3745
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiMenuItemUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiMenuItemUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b98068a2e867f700d78e9d95aef8fa95eb8f34a5
      GIT binary patch
      literal 3749
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiOptionPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiOptionPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..82950b16e5f868d519539df60188bd563420b1d7
      GIT binary patch
      literal 4309
      zcwVhn`%fHI6#nk+!oo7P6$*uxLf<UQW2IEuvVBoXTX3P!2MB%WuuRL)-5uPW?ZZUV
      zsA)9DpVdYaqcQ!(AFOF<wTUq{HO4<cjnTxYO-%e*V>D^~?%iRbEDJ3*gq<_@-gEBv
      zo%7APGvD0(>~jE3IOBy&z(1y+(a!~wXU+Jj;CNI&8H}Z(wi)b}zX!%`(~9@%apOp*
      z7aoC?S*xcn5pbu>q(E_4E(@k?GaBqSBDR$X3FL1x<EFiXYy7qS0-knj#PGq5A`M;?
      zc=4FPl9_HkXecTKXEfv?Utn?Aj2k_v*szf}tPe*GxtA5uqy2iql=se{#~zh90^tWG
      zM|=g5grVDt#TNg4j$Q3mY}|?)aXVC-9WgV>C_X|h@}UANyjU(!GuQTE%R1c_AK7ad
      zQ4N(?DNs0xfY3+%bMKU$;RQlwVQf8d%CH5>bA@2dVkwgV&3Mw*qfwco6}fZNFUz)0
      z!+LCBT20$X=maQG=C7RwyVDsD6~T{y7qzTq_N<0F)U%**;~Wt#os1CGx#xl5F;WkC
      z(I`+k7fBx)@PvldSR?n^sG%8~1iYhqvPXrbB8LP-gd5BTP{1YGSIw8mqEtMSAh~5o
      z!&a<ef|*@a)Ybmlqw@)<0y{PALYsh(&(dM5Es@aA3pD$)D?VQ^sc9>2>jcFoH)p*%
      zJ8Op|+zt)9(at=a<3B4bxNUyINK&l4VS@5g<0I6kK%)ajKWhi~CG_!8Gm^}$zkV6K
      zN5fMHGtMc2l3Bb3^2Q0&mTM1b=#y)gFmJsH<D`*D7$b+w=cjhgDRUKcj~O%KNj}>l
      z8ErtrVI0Yn_WlI|i?~TQJ5wwblUqoSqZ$UKhnmvQO`kfU;h3CS&Z)LY#7HJhHk|fR
      zGdhwm;_X%{ZqNB>C|wL|cm~f>?%6>ELb>ZS`6TO(j~O-X^TDYIitb4b5ipLRVpq-Q
      zKnzJEN;P$|HJh@HMpMjk<qQl{ol;fP4R$OOV|*;fIVMn%bGbluwnk?(-ttM2wx^P|
      z70VD#&JAQp0!eBZ$8&sE4q2&0#Mo=f?q8PG-Wz2UKL32wdGrytJWXgVrp?2LzlFTp
      z%~`?glE8KN0ym)zUdN(qSbT+JE<DcPMaq94{X6N~g<{@mX&;neDX)bnMVS+?i>qC{
      z7T<(msAb{0x~o_mxPkJIGZB4i#Q-rpt)i8sJy3;eUJE$Cig8&^*}a^&7r4g5>$(8L
      zO<-;JWfa$ciW-40(9qLRH-R8;n*=W1`(q0Ga>Y2pm?J2{N#Z=ku@S6gDdo<AbWDeb
      zw4Nje_7EOU>(Rm}rOeu9Y*AU-`VeSZbD~Kyx=l1^82c>8Y@#{805sdM-9fWa<%*e;
      zXl`J~RHpOQ_$$+DR^UVzvhO+mcet;Y*FJZP$05|3SCOX(yp1MlrJ1$nSLD}KuAIQ0
      z7SCmr&o(jO_+7g9TdC)x43Gee3cN|+ZxP5Pmi!$i^Ig>AJp}PSLihlCX!qbl1@<6;
      z5>O@;eNHN*wU=UaDQiD1H~)Gl%`TGA(4i8Q$JjoVsC-5)bSxpeu|xR{dgbw2<M8dd
      zjM9b-8&8F&u6_dD4GxvxXV&lv;eEmyUL}!hSV?;Wt}Ec1(qS{eYj6O)3V4m8;G$=>
      z0_mo&S3&b|zVG3n9n1;sOKxzB&~7vQSA=$p(7yg((0GzK&~9^$jL{*wC&4v1Dhb>V
      zaRU9_S-3ekkilI)rP8!GzT@5Zw0<DKAK43jB9x!`>hcTUTz*9>?RF|v64{}Mc4UZj
      zIO1?|MJIcTi%~)jk*W-l=4q4$7er}jHcCTtQ2LX1f6@AzQ2!y6e+lX?{7iYX5TtaM
      zuO9A4MCsUqC>@`T((&AsL<zs2mcl2>P$J4vB`UC9RFYB^DOIDDcDq>ph$!)eVJ0Q_
      z_IWAk+h?JqPf@Cz(Un9KDQzUBO{CO9N}EZkm6W!T(soj6C8eDYKxy9tP~vNfL+M+t
      zk<r4UXR_xKsza(#S`Gnr;=0NS80-VfW*HuEoG#tF(=fAGy=2yhB5??%;s{oYetvKa
      z^3&odwuoccMY~I!P|WtL10bAX7S8nBFpo^h%*77diBb9SiZ;d3!{fO?G0Wrsq$T8A
      z66QZ9-RhV;o$HtsCJMwDu}6tL#t+LetQA&{V={&~vX4ni9g}=jdI%A@9la!`izqWV
      zhlpNas$ZmtE>J`-QA96OL>DQdS1F>`D58rL(d#)xl!l)cQP(UYvN9sFl!$D#cj`Z~
      CNn8B@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiPanelUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiPanelUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..537e9c5f8ca2e49c45f8cecdf660d589ae0ed7a6
      GIT binary patch
      literal 3737
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiPopupMenuUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiPopupMenuUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50e98eb75db539c0dfc6874e3f68207f6ef3e154
      GIT binary patch
      literal 3753
      zcwVhn?@v=#7=BJEEtIP`5CsMNEv5XZh%%w-#0pqf5EMaCw_VBwu9lYE-YV|Xl6~IS
      zExIMkmL-1K2hAM1nJk-`S+YOCW!aKtizZ9<b<46P8+*>-QV?2E=7;va_nh-S=Xu`u
      zJ@0A1{rB@P05svE7cPOC3;HE}Dww)#CdPu3aeXv6k&fGDuv>ojCMVOA-9{pPD&mD(
      zpmNFL1uF#d(q>AaBq~=0)3zB84j3^zX@vwl`^|)DALJT;?SOzgoE$NH$U~6^FABU^
      zC9r0(n-3a_3c(o-`S1u7N6m!Mlb#qhtbTnsZpgioF+Dz@Tc&(>2Hp0!<WU=aN@=85
      z5VH*3Hl&Ds{>S`|g_9GL$%K)xLs<YblSJ{6X^{^V*yzQEWda*bCNH)pMmh~6uAvfD
      z0)=x7$b8)Y<eioVc!iXi7hAW+3|pW)7X(u_kv2)tOr&f*9+xrNm^(%TGHcs4?7&Wj
      z)wB&uCqaRA{@Mk!BhGlJ2z~^-sAVdb&T6PbJ@c6`rpR#Z970^@p2vqTP<qIV#%yJ|
      zK%@^1*rj0$w#vPBYiPzE0q?k;>QS&P$RPm{;|AFX3b>^D>g57ilul#<B)1G{XvJ0r
      zn9)^9-Qur3yIcWP;3W-*&@SNPQR+{&Tb6!BpxM7P<I91`nocHcoumY+a^@=%sU4DZ
      zJ2V_dm~oimhZz>!)?*nd7As#EAWwR7g!L)V=#bGb+rchNpBy)1soeE9Ai;Yyyo@Mu
      z#so^UcnjoDlBg}$p48AM*REmQdM#truq<Qbr1|>%&N<6mfgUj@j6}*zCPETzP(wdX
      zWm5b20)f@sq??UtB0V9ukRE3>oRJ=CN}pOd^@@gba%uyo+G8;zl``3H!sBLq#4-}$
      zWIAC#@o1>J7}oGAUSqj01rZ44&ePmU)*T-+ZrWFZ^9V}rsD>DbBUrJUmvdl|olK^!
      zn9*s<u35IYEjCJjo*Nz!-WNQEvI)~#MVmdF--UcT%vr(bn!s)N0(YUExsBDIqWC7q
      zTzG-stCfEz{g0v;5tQ&voAp5{*78}1GOTm(j&Ze%&yu?kgjyf1tGk8bz#Wv|$RPUE
      ziUD#MRA}pFJy4BJd=_wiGjSOPdFmb9H@L>l=k@^Mrm?O2I!fw4Lyf?fXy|FEn?{hY
      zO#;_uew*jMK`9<4W(-9z$a9oqF>J%Q+Bq<b>FAKwUUJ~sV^iOO7NV3fYA<4+ic;${
      zuxZQ5#v*!(Y|_NO#IY3FOs#;;ejISv>{hX2<RqIrI5;0^j~ah-LCy*sbRqkN<Nt{J
      zdim_jYjHb*+VU&%m4K^glGd!UHcy48uCi(xM_Sz1QJ!sL(DA!A^RUeQafV2MNd?{}
      z@pnk%DpUS0gZUon@jin103m#cBeZ+)ks^D7L`f(UiasY4(&|K)DwsYNWET<h=oMk%
      zxryAN0+ml}p9++R$c2t2WEXQJzeTTnK5HDkJ=amzkWu5VaM#sOqr1V8^6TOp-XOi3
      z%;6^#atl?ocVb!*-!luFAzp*y=vBmPlmr(&Hz|^N^z|xgZqD~T8?_TTseQ!_?vdKp
      zguhQ}_ekxV|3!@**r9fxYa~X8=$<3j;8aQAaf;Iz=w8B`gM%5~_48FaTO1Gg_8qP7
      zN$>~uf*(ocCtmqK^Tz)LZM4I9sDvC;LOU`-I-KHgaYY2D`SdaEvqGvfLYfyyI<q24
      zL)jz^Jwej%eEWmepQQR1sr*e+|4`Blni=*s+F{{(PLj^8NYeRilFsLrBue<FqZB?-
      zhElN})uJ3b#76i<6(v=pjdoaUeom5j(Jq#hcVJmb`hhHx^m$2@i@K87MM+JR)J#cx
      zDXE2$S}7?+N&6|Om68rVg`}>hki_fVk@SFTBwAGT%=KJSbwo8v%Mrj%Tvs^_gMDCq
      zmf=Ci>DtVrhQ-M`PG!9)5+_h5`msfv;t%!H{7F89ec~(*(LN^5D`iL31rW_Bi)Q+5
      i6k|%6iybz?Ym@)^(5^JPc|8{>W%>NfSpueFap6CTJnGE=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiProgressBarUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiProgressBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ca7322a88c2124a2c8f270169d4d47c4274ee90f
      GIT binary patch
      literal 3761
      zcwVhn?@v=#7=8|v7Rpr|h=2nAmeK+hQ6^NGSOMz_f+8sDwoAFd)zXsNR&k$}?DM{E
      z(JfiFEb+@eXy(w(WZBHjlKlZL%a$x#G+DB*Tb3=^*mDk-@}m@#`Juh<J?Fg7d7k%u
      z&wJW$|NZ<60FAipLXJS~CH;y%<xgBSV`Kiws6OhSNJW#TzgvFyTJbT<NF<Kx)|rqC
      z4uR^7<%`w`<fhDoKyg^E^QV$#)IVTEl5r~_;5=l;%w!wacxnd(9KraA;YKbBHMo%P
      z!a9KsOWoYiP*?!YXvl+8peSs{jGolQuwnJ<!%;)-6_4oA0o^j?yFKVgj!PcC@Kehp
      z!TgA2=t)D$IOtjAc_J8}n2g7aSTazX37MWGikn;u-KfA87d8vjth9eP9>3fk8|gHR
      zsD?^Z2^7pRAop?4$~$F-c#V{qnWS!w8A*ZiY!FP^M9L&VGnPo|(Ws2kmh3Saka^ps
      zVK??LtY*@%bP^QU<f&aiJ7kXs3gLm*g<2*vb5?^7b<AkYm?FcCa|ltLd!8J=MCkz+
      z8U!j=66r=g_G;LU9dfUI8k(?Qz%{NXdK4^6a!5c#xWRG+1#+bN>eT{Sn2MzXB)1G`
      zXu%E!n9)^9-R`M9zghuR;3W-5&@SNSVd{^!Tb6!JpvjY&@zua&O~+$NoumY+vgRuk
      zsvVMaJ2V_cka3vehZz>!*2xpXV&w}1<V;PDus#JEY%==Qq`%A3C&$f5B76M}NbnvF
      zFC$ExF@ch0yan<mNi-?fp4QMO*KT0kdM#truq<QbwE6n{&RNS`fgUp_j99{q#{v><
      zP(we?q*J?ifxvoh(#_U1k(!WONRRUx&Pfk7rB5xKdPTzpIklNn?U4xEhsll;95<sQ
      zmJtiaQ?cZVM?=-cu!dLh8p}NsL?DnoPje?(w|&g0nY`woM^JJ{HAFxh!HV6sngfgM
      zbUbB6j80Sb&9cnK*dP&ja(GC1Z}1?>MoeoRZT4+`7x3*UX9b@dym#UD-iLPXF4ljF
      zqT3wH!3+Feulzgde;h>!p_p<Pe`Ck<S8@Vv~(`f~#}*EWQsxsIsuncLzn@dnmt^
      zMs%wc1LQEM&^FC_pc-5G%;)?z;xZ8O+}pTsaE*h{U0%XXV`ukG6xV%*8i6lS-&60K
      zhM%vE0yk!Uo9Dh+DIO+f1cfljbChEd?8La***lAA>yXv~a^UG>Ti=alqLeafFXEtz
      zQp+>2Y0b*UB6@;sQpCQ(u>{#nt%1!U9Jbl)Q?X*?B%6C^n~$_pjla1dXZbd|kR8MJ
      zf5LrTeD>uwJ8VI%c@=p|z;!fAYgSpSv%=}CteVELX2(sGFE=r0``ws%T<Z8ZO~lKj
      z0&kP}J0x<QDSwy2d=GVaAAWp*06xSq+CBJ4kv&DCB$N(CpB)Nmb)riZOdkufi-@`O
      z3bF7UMD9?5$|JU01<Fa}0^1U@kJ*ynqE{ZDHMZWKn<%YMt8r8~e09_4uD7N9x-^Hk
      zNbfdt_z8vFK^5&im{!F1&%&mO*We_274aG+A%~t@70F!sx)e1B=lh<G+NrG6zTyTC
      zNbPIFKP0sWr1s7KqQ)L<Q+voY5~D+O&ylOQtHisQ;xq=jGk9}wFwMJezDj3{;}PG!
      zqxC%r{=i=FBdPqvOaEuy`M;o*b`X!1kTxZ>BQ2!EE{+_o2;nTBZl--!NOf9B(*jB7
      z)+A|YIY~n+Ncx>`f6)4qRR1ECze(yJN}53v!`@0eC~}^Yqzh}3ba6RJ7qd$e#r*S8
      z0=Fndi6}$0D93KG1s+jFN!4hj9TeN1lO$fXOC{wVUR9EQco|9hyrjw{T}kYvq((|=
      zqND?q)J#b&loX((LzL7)No`Ldsp}~u@q)J{J>nXP78X5oJ(pB%Q4P|v1+WwQDyLzv
      z50ou4JZL-Jn0ZpaG+8I9tQUpi6iP)uwu>|TseYC}%7<`JoW~K`C&Wdi?6|rB!f9pU
      lbiWN_OexD@hYj)C<o`ajD~%3b&-qGO9zS!IfT>tq`VR=@?b!eT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiRootPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiRootPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17bca451a69577c118e90ba44db6e9228121c74e
      GIT binary patch
      literal 3749
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiScrollBarUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiScrollBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d65dbc33fe48d8404f49397328f659df0bb5ce95
      GIT binary patch
      literal 3753
      zcwVhn?@v=#7=BJEEtIP`5CsMNEv5XZh%%w-#0pqfPy|6yw_VBwu9lYE-YV|Xl6~IS
      zExIMkmL-1K2hAM1nJk-`S+YOCW!aKtizZ9<b<46P8+*>-QV?2E=7;va_nh-S=Xu`u
      zJ@0A1{rB@P05svE7cPOC3;HE}Dww)#CdPu3aeXv6k&fGDuv>oj#jIpJept6oMZ9ne
      zR4!S(V1+<l+Dr+QMCGbr+BW0C0V8H7t&o6cznL)YgIwdU9T0GblOu)?c_`B0MS&Nq
      z1lBBe^Fc#VAvmKUA0C0?sF^T&(i6jm)vpi74Y^k`rpE_#%arfVpxYjoJZhs)DUI|B
      zVwR!Xh7_^S|CrygaB^ZYnJ^M|C<|a_k|;hhE%KoP8@<@DOkktQ<i+;HNT*@MHB_QX
      zpm2@>nUDLQywlPEuaGkHV(ZqJVGES!f?&!f(k2O-iIlC!<1$7YbH`{vW^KEM9oWgR
      znzmu-Bq*@XU%P;I#2F72!H<9!wM^yGSq*ilXFe0g6dA6aLx}6#^Z4)uN)LI_n5`@q
      zi1eWWyEJUUR=L-14b9ji;2qafJqnfuIV2!r+#nl40hd%?y<8xR(uquf<dz`~t=P%{
      zGrB6NTl}?Wmn)zOyrkg}+68<(O8v=p%hIn1H2arkd^s>#)5(OblaxSJ&U{58wL_9_
      zhlaxlGY(VyFvEh|dMqQwV&w}1<VjDCus#JE9Wwf5JJ@CEljCMAmAn21BzTX8mk}k-
      zm_TV3Z-M+t61C;pJ`KHc?Hb1Igk_8xmSv3enXk|9oU_ao=n-?mNTkeUA|%lUHT2_D
      zCbf?*5LnGky4jc}(i3tE>2X%W8R?;>^r?kYuV^?Yr#5h^Jr*-kDU<ysJZ{EEEF%$4
      zrW5uPkA|v?VGXb1HJ1BQ5P?wcJk6bC-SIKwrhO$ikD%m^YKVb2f)%@YIR_S5UovgQ
      zj80Q_&9cR9u~GW--0+C-zTh#GO_<gy+U(i<F67%`&I&%)1a89@xC`yfZLIzj#Wy+T
      z!VCOft^7Obe-y=tpoDMQtPe`Dmd`?zVV#3_jH_LImfVFP)cR;$-7ORc?x6fe2GOTh
      z43NX1LR&ZMfog2xvw-uPiOVp^Q}5uu!8L9^w+9F}jcwi6QBwaIY6QMSLr+89G=h9>
      z61X<=+dTITO7So;V<>__o}(O#VH?KP&VgA>M~Afbk^|2koB9s45T%S!dlCColv<yG
      zO<PVj7SU5=lP2~hj-|+EY6Wce<AB3vw~7@bC)wP=!TCsg)cBhVa#rA=3)wFm|3}={
      z%V%$1i`x;@mS2&t1YAXvv}TpHc`7`0l~vO?(&E03@@x}>j^DMJhh^@MGeiPRD)2Um
      zze6HdneulT%=b`__YuSg2;oB<q1}Uz6xov`N<x`X^g5xCRwuet!Su2qyNH-auLujz
      zP2>(0sC;7kRG>UWE_5s*yO<;SEqdkiS>x#KxsI}ij2d@^yRLp3-3^YEUl-@_2I<{o
      z4nLugTd1PF6Vr<Lo>|xo@fsY*2}Qg{NpR6~lOmZ%U$3I(=6vt7Q9GHF+E?7*9;tmz
      z`1_=GkJP^TU)0!v9cuTvMq+e`?m2P|PL%{6r#Ov)?j^iAIGEvGKVPM@#qoe|-_iP>
      z1b<*J_>ok8;+6k1Z~R}-Mmvm$O2|Pav?C*=!zm6IS441{Pao4hE2KIjq<Mj)Gb@rb
      zlugpm6D0l4w?An8NveO5%HJgQ4<*f@nPG3E9Tu+VB<b9WB%RMD>3nWUqJ)1sO5qb_
      zC>85bEy}S&Y=mD_QBpP9Xotn-=Ol?2?P5uJ2bPtjAIKs}pO;j*s4IzGl+;8?&6Kp4
      zl3FOKm6Ae~w4ah%De2%-Na}hDNxa@2Ne{S2qD4i|T+by{M^vM<90Baab(PaF*ay~U
      z86I?;uFX7ZSe&fmRCWSI;v~vMKemWd{GooDKgox%Pn^Xe+Q-CsrR=D>0HPUX(M-RM
      iVoWJ>vBO4qZSp@K+LcB(ujc}#ET5k_OTbhtF8l{AYU()v
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiScrollPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiScrollPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2d824c5e31fe6ad1601c134e99ac35b1ff6b9bd1
      GIT binary patch
      literal 3757
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiSeparatorUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiSeparatorUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7d27284438375c4e5b4d7fc215f3f8cc3a55300
      GIT binary patch
      literal 3753
      zcwVhn?@v=#7=BJEEtIP`5CsMNEv5XZh%%w-#0pqfPy|6yw_VBwu9lYE-YV|Xl6~IS
      zExIMkmL-1K2hAM1nJk-`S+YOCW!aKtizZ9<b<46P8+*>-QV?2E=7;va_nh-S=Xu`u
      zJ@0A1{rB@P05svE7cPOC3;HE}Dww)#CdPu3aeXv6k&fGDuv>oj8I!uD+ezzG#0$4T
      z<&wn<RtV&!&6Ge%RIUo9Z8IJmFk+kw33&FK3DZ8vHU8QG0e3h#V)&4UA`M;?c(F=g
      z&0;qnG!zwrGaB;Y5h#wD38N=HF>F}<`f%KkdnIFfd_cEM`R)w5?QzMYHu{v(NUtDf
      z8M<vq5&Qg)`5g-<Cnl2#BVmWK0A?nM;v>@{A1biXiw(;JHkwRcY)_1I8b(}0C8`7p
      z=NORrxc|vJEe-GrDKjs&ZjBkXKzS|*rfec@lAxJL*?K%KW3(}Mj0R-ZwrkjdoeZmK
      z8!E^G>-@C~Xh)p!P!aqHcu~t#E}hj-hkE8SVN8+X+Bt-{&OMJ0U!e4m7meA<a)C%6
      z8n8>l7HpM!?bgtYJp$fwJ=LRNS&%~lBE}7}5fpGq_0`J-vM8O%1W0Zf($I>n3^1ds
      zlDfrTdv>`3s=!Mc4xwGZ$D`DrY_}}^ia@h}X~vfWlQo@8*g8oGROQT9BvLyh>2_#1
      zj4<Oc#Sb$qxUI)BQY==!FhHL4<Ou6ipwS_tU$%o?mOeRd#!|WKZ$N_gXm}Y>;*1HD
      zX7LutpCnORuI<y%E7z`J+)h}=s9{;gNT2!o{LVScT!9`jCyYeOOeR7SZBRo$PGwU2
      z_yU2|+@zb0X(Bx#w~!uZHJp(iYD%A4IQ5E#b8>0}r`lsNBb74QZ^Gkde8e&m;bb~t
      zKk;a&x)|2*Dqdr`F9i_@<<8UGN!A@7Gj7^fg7XMU?x=<sh$C3Bo0oH7k@Y3hR?O%$
      zW!EfQ+!h<9KhF)12=5CXL)nCBt)k7I&F@0K9p<dyb4}nje1W^r&fLc8Pf>i6V=lbF
      z@72n`lm16hj0j5jrp@}G6l?h`L>bmOc*nTf#b?P~2tuuo*45oYao`ThZ)6aCYQ+FK
      z3@WsBvmU6%CO!)|znQoUgFN*P?i*a==5u?1aMRe<eH|tBpP@$JOEmN})J-GE*Cv5$
      zGr!Gq-=Gu^6ElV)800z1u^6^tT<si~#dLH?YcDzQ?6IluKnqdI7_}F%PerNq8Q8St
      zWMdIMMK)<-U*cGbY^GMgW<L%%Y<8<yF>;d49UPpGv`3A<xgci+4!V&2!tsB^eZ744
      z=C!yTL2daJ`AWc5G)Ze#S(~TAQ&(9vjUz4Y>nP7QG3fYRn|WB~{y0M<z@!3illVI%
      za+N86m%)4w^>`mae1H%>#1Yy(_(+jGNunf_2}Q3H3TbtsOBGBn3$lxddGv~~@Z3c1
      zP=U%Pwoe7hL*zoo60(aqlHa0NKA$y?-k$3yYsjc^SGeoyr_tTuNcnYf4sVd&P3G_u
      z3b}<U+B-3=i0_$&%@D7_ahy=ZYm@{RJvS+mdGz%vYHrT=J{z@@IjMcc4epWJ*Mz@M
      zYWGO(oBu_P9oV6EpKByWhv=Ro*Wgr1;Bku680cQYn}dTH-u3fUI$InM`1T#G?@90n
      z_JSWt<tJYGKl8@_1#Ps$c&LONR6;v4LOPt{aB)Qhr}^|T?XyCvGeVjdNIJ73NkiEr
      z4Lw29?|l1%)}N&M7peSBQvXoW44N7CHrip~dQOtgtw_@OY?99BmLy8}r=t`;QHD~n
      z9@U~8JH$r#MHMAgqm6c0Y<^CXc+oDFly_iRN&0~-lJt2=m5aKP*hNWAl+;W~dnu`f
      zl3FP#L`nN8sg;rrK82*Nr;x<!-I4TwYb07!^vv~KQguW%O3M+zPFz<x4TF7PeU{-t
      z$LZS4qlU%FI!<LLP$W*GO!Q-mIK?08r}>k72>ZlY9HM<poL9<@stX{RQ5Mbg+bG7A
      fG8a2+gx4nj^Pyd7bn|*HP|EW8nX?2;#p1$$AjazL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiSliderUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiSliderUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7759489c40299951d4190dee962b0a67c5b3fab
      GIT binary patch
      literal 3741
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiSpinnerUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiSpinnerUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e646028e4ea42532ed2f62a03fbd6700cd4db8b
      GIT binary patch
      literal 3745
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiSplitPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiSplitPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..57be2358e649a08a4b93e1ff9b43f4726adfea7b
      GIT binary patch
      literal 5265
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiTabbedPaneUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiTabbedPaneUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e48a74f600c84469de4422aace4ae17a24b6c7d
      GIT binary patch
      literal 4734
      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
      FzXsk{sIve7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiTableHeaderUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiTableHeaderUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..edda59cbead13fb7bb1cfa8bd9ea19cc55bc5b3a
      GIT binary patch
      literal 3761
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiTableUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiTableUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e6210f12268712dfaad9770e27e439cd59514d6
      GIT binary patch
      literal 3737
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiTextUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiTextUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ffcf8b5b546fc0e6f9f89b3f90d253949ae0474
      GIT binary patch
      literal 7018
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiToolBarUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiToolBarUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c17150719aaee55d395b9d53b91d4e942985dcad
      GIT binary patch
      literal 3745
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiToolTipUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiToolTipUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a4def17df47f067d15f78ad0241a0c2370b563e
      GIT binary patch
      literal 3745
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiTreeUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiTreeUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efb43fe079ded5820ca726b3cc2ce43221b37bde
      GIT binary patch
      literal 6600
      zcwViSeQZ=&8OEP;XWD6}7s>)H6lj<4eo+P}BDBz@l){#s7FwVzWm)$!y`>kXGsB%b
      zP+;9%zi?OGUDw?eAsbDMhJV)R>QdO<#Q29qgE5+H+^8{{m?f^+Xks*KjEc`Wb7wl8
      z&PS<)(0k^5yyyA7@44@N&+Y%d{e1u%am5EsVC5;}tT7&lpR*z-1F^6%5*SN_9V^f)
      z{~oeU^Kg$3UV%l^<|PLOJP9i<Fh3|K1QL!F4h)(hCu+9~ly0{omeavG4UK~W-md7d
      z>4yguI(#VeVUEDO>}7uFs3-?Vbd;b}pfYGh%)Z3f3DZ7goCuq8uV}~!4;r>5f4iMt
      zXH@D~9V`w+Wo04TG#sUWYr~W!`?{iIv1r7MIPHzoZKVfk#ZQqHe$-&84@(5<3vC>X
      zMo)J}hWD6eSjRHd3Y4c5Q1oa+;hm=Yc9xPE634JlnvTHYd?pyJv4ll|RwV8i;jr}4
      z()>OelmT0<V-42Qt(Ifj1_cUKH#BC*?s5CuE6{)@9~v3O>7zQDv5ujPnB!EqFl8ZZ
      zaL@fGP7%G`hxG!>3PJkOf(<%WV5Qt^la5ww7VwQ4@jhjiXK_eCgt$R2fdZPOuPf%r
      zibN#sAh~6`j%`>;2h+PMs4E&8j}<#WHF!wJPIL<R`4%0DcG|XaUZAyMdc=zvlV>^_
      zaSVzQsLdO%o}R`bDYsk4E_Bfk<NVJE3vOF#n{ggi{-A?O6R}~QPl5HW7~`B1*lQcH
      zQ7aVBfBpug@je}oAV@nW1s3F3El?7pP)E)^sH0!bokzbNu+0(Ew$0&#)`iKP^B!|$
      zbhkBTM&ed9(k`tX(Qyce)1jR@L0~R7>19qDON_}a<cecDj>;8k$QaKYdR)h2a%c&M
      zIzu5d9=Dikx<;+=ux&=VqKSx8@YPV~;)ITm;Rzo1=|%+F^T#RmCL8V=D{MLE1CtgM
      z?ud>MXh-nGE-$t~V2<>$;f(I0^kE*8-C5hq^f)!N4trFlm&-EUKEPAS*HY>5fJx25
      zDVc;hH5K!zW;qz64LYpA22%nzxrIQ@^uwRd<teH?QF|bIPGDm$s-DII+e(D9I^vM&
      z!In0pO&X)g14?vGn}s~pBW+&PF%G_16-jIEiK)(IE4kol9Z%xp#N~pna5QelQ)Kd!
      z=kO2<Y|4pOl<!kIp1~(%T90=RTMj4XQ!*r{e^$q*@fk{wJJFcCK=yx5$Fs73PRNLa
      z%y1D?gL26WIzEpt@C{(Lv>kUvr!z~(DwAK*@glyMd}&>SNpl-=$|&NRFY9<2uP_H6
      zj3(@mxyO?A#Jr4xVZB_>FA7fwODCRWS(&i4h;0@!{9DdnyErQNoY!;%{-$@JAH9LO
      z*HQTf`!qbjzjM|49<F}`l?Y-!f9c6JSb&9mmZJ*QuDyMnt?@bk9SE9Q6l`vO6O~Oj
      zvG_Y_i+(lZC^ZZzYt_jWsKbMNmT`PJ?J_~g@1bk=8P4(Yxw?twCa|ja8s@Ki3-tm&
      zKucds^8^C?xl!Qi-47?VFHyuMZH}M<qtt1!Zv?AwTJ7AFwCQrl)<>v;UnQ11Yp{h@
      zs_3<kVyp7fwtG<1mRC)J*3VMSIBlP2-&v};I14q~vBOofN%@MNlWK0FW75;5s{c|(
      z%*tHrLViiz^>?_hkI#P37OxA`R#H=<0Ip!8Y$eIsN^44+m(@;S_ZIIpEY3A>#9epw
      z?)z2V*V96p7*x=h2UjWNHHQ4FbmrHv4qrzA-#|OQiQR1X;hGXVK%o?rc16GI3fbC&
      zz3Ra9<6*Wu{MX0hxsMP!x|O3!XxpzGRZ7d{ZcE7TyNmohSC#Nt@ACFtLsd(f##`fU
      zUN?c>78m7%>==HJ^4??&CkS!_wQR4&TT1xmq}jCadhEvmCA?lCXk7WA66xVupOWU~
      zc>ldg8^|l|huq*6rTvKJe@tn&DDC$DC5^R-EA1BNNE_XvHzlscJta+3B~D<lcbaZ?
      z9!cw7H+f2vhvQfL^=r0%LxI0#F8Cd#{GP?|`>ciUppES={6T?qDA4XSNVj`9G|uS3
      zqkQ@q_9RGM8l*J?>FBJGhH@bd6+rq2fBloKe^KhcDdj&{Lw7d_4Xwh1HnzJ&$$dh4
      zY*t9eb0Hnik0h#i|E`8#EXD${1a)F5k?M%FoJcE(R7a#$_X&w5Xf~2(M^PkWM-C)o
      z5@}ghRuZj5+DxP^MA}NEZA98mqz)oIM5OIR>YM@6-WedV@O6>i;~Z%%DEd-4mr`A*
      z^|IvxFcUW~n}EqYuqa3O5qHtmyLVc$gEc_1gQyUPQ6-LGg?N-#*kin`9>-SkICiqV
      zPduT>9#$WKV45tL&bL9FRAd@6Y!5%79_E%##pvbdxlECj@PDc$WKn%@j2;EUtaf?|
      z<79Us#uypTkTFii1R2kg@jMwXlJQA0o+sl|c^JnKaT%kCr5VrUV6@YWwqj(}JsU;_
      zERlmzb{ArNfs8Mb@g*|8OvYEpc$th>$as~Em&y2AQO0u_ag5D?k+*<sMo&j^Mh5Ic
      zN6t82$Y89^ehXhG<G0B8Z8E+=#_y8xIvH<}@g^Cslkx4MjG1xVI|D{uT<#&oc-(CA
      zRA!1vcNR!7w+Z(XrkI~H#r%vZ=I2Z??=r>wf+^-brkHn`Vt$z?#U$bKrx-h(Vr-RS
      zcws_TT_@TK)^(nA`S!`SDRo`OKt^3x<IO&wAHXC22wi-LYVjwm6n|#i{(^w`E84~1
      zu$%2Z@%KD+T`G3@>bh8ty3S75b+)SOc<Gx(6ffn9;-&mi)JmagKKQkAEYK=Yr|DRu
      zRiZ(A0Ik}5w6Wc#Eu29V_st-R&&~?zxm-xk6+l`|q%}lhRj4%*sfkD}L<$gT1Cd&Y
      zwCO$}@ji{>*C&s<K0TlB`lRhZnbv^{Z6~U<PAp-2mDZK#`jk|deSNak^@&$;6fd|v
      zse=2Zd<D1GM?w23s2|nZ0BYG@s~yTyaHkG?y_=}A3+|+&c(2cneSuOg73NoabHx7D
      s{H2^0V(f<*`w_-|l(DxM`!Hi4VeF%feVDO7GlSU2W)S<!YVWW757Gz!rT_o{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/multi/MultiViewportUI.class b/libjava/classpath/lib/javax/swing/plaf/multi/MultiViewportUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..643fb34b546c937620b889b0d4a088e97e758077
      GIT binary patch
      literal 3749
      zcwVhn?@v=#7=BJEEtIP`5C!?+Z-MfoBFcm+6Dwd{K~XG<y6sXfaJ97L_EvG9mhAJs
      zZqY4Swk+|>K4|99&1Bik%#!^9F3XlITQpg+uUnQa+1PUqmx4e+nIGEw-gD0ToacGp
      z_q?b5_TSIH0MLX>UbqByUDPk@lY!I~Gcg*Ni0dPP@pRla13mIPY8qE2l9qis?1fvP
      ze9_vu1p+x~GbK<Ik&6Op+l&XIM$ArHK>^PJGhy28TvJmU6>x`=!-fwzDA3?Vo)>Eb
      z)-81NK|?`4IHMsK9)ZG$nJ{|O<3onkuMfoyxmPl#$D_Js%6DhbZI4MFHIb(iMs|5I
      z%g}8@YS{mz+p$n`d?J}J5_Yh5F<xepC_WM`@SzOlUThMmUT*V9GI^;ZG2CSsaSauy
      z6v&@tK;mOdFrUBE;`pwTGSgz~)~I0%lxBlq#>Ueo37UzNt;gdsM&;RK6qQNap<yR>
      zF|4L-SUL#`Y^bT7M?36{2MbUGzZbR4<l<Qkb*N`L6UHPNuAfDS>)iAB&_zlQdeJCQ
      zv7AUB8n9c#R&0}d?a|PTy#n4bJ=LpVS&xGPBE}7tA}HXJ>Z?`?WI;NS36R_}sG$|x
      z7+^+MC3R~}?YWf-s0=S@ID`%XA5T($vct0Us{+k6i!;6wn5^k!!q!PjpfYQ|!r|IM
      zNw-tOVT2fmNq(4N!EHU3kz%p(g#q%UCx%&{0*wwC{fZsvw)BZHGnUF;e^CkEtKnrt
      zh%+isyo9$v?gWY2a_uP%eRAzO#_fb<j2M<>44*PzpW8WWnJdsE=D3kanaM;@q77*1
      z$LUOJpIjiYmYejjFO8?i<rdQ8oQAW~Lrv+E^QT_Xa9⪻#5a0W~5Rk+f8W9j1OBz
      zB9u%g>}8LJs*52Fui`b9`(hA*VD>!Co@CweG2^CvH86*u<c?^FfjEK{yJaN@7TKv}
      z+KL%nrfiz)7j(r&>CR)r6T-WKr%<+FT5D*tWAi(oZ-+T6_+00|1E2pMw6k}x_EQwz
      z;+P9B@O!QD@1p-v6e5fwzG*W)D8_m|^HG8g4&E`YcJWzs4}wq|BXxDRQRu&m(wiAX
      zpIQ+mhXIAQVa5Yh*vw}h=eH1-QILn;!F_{k+<flv6K)FIdv2hp{xehye2IqMhPo*P
      z_}V0JefqaK?wge2A!5c*0E0Y7I2OZpjH#XdGnkGJY3(Bi9zFK-ooFFS38VHR_Nyqh
      zJ_DP!tZXczr^qHv?8_WWk<H{P*c`w?hs_=pD@IPTxr_F>NPE=yoAYv(=b#JOE*$^I
      z+}F!zUrvkL5!9Ajma7C@LzA>-l(l)vJarY7Q#jJ%zJb!ECI%e8>(h@)+#hF%_?cAT
      zZ4!TnM6NOA?=qP0p&suefDaJFhd4sJ7au9ICrOlqGNI^mLLsd#bgP2tV?lNkF^67Z
      z7M`2Pohned#P+E`d5E0vSVA^2NAg?r%H^}#(c60iB@G!h?lN~>{S<l{94Wsp%;8Pa
      zyTu%SLLs+NNqZNj6!E<?uo>djIF1vFc(sz?qUUBsGKaoiMa|9mzGtI$GAp&OxWRo=
      z`<n0%NbNqUee=Jlu>m{O9&nAs=oCG(<QkkR@jpp%3elcLyg4|K;axvhr8C9xkZ<47
      z`kn-TU@!QQRDR-(|1&TAU(iN7ghxt9yAs-&5z^@thl?x1IK!upX`c~Nl@ZcBPtw^{
      zNg7;A(%>?Ze&^dCwEiU3zewe8lKO{|rqRr>x6uv>*K?9|epQk#EG6kec1fa$e>jTa
      z6D24X8&M@nu~U?zMpRN#720Tr#FpnIiTCV6NjV2sl%yYALXtiwsbWD_61yp>iISQr
      zX&)uEP*N);1u5wOCACsg`%_5jehNvv-5p5}xkjQzMDJ|RB~?dMqqH0W?8J2yQ!v;E
      zHZCzd;5c2Me%!DyS;wjD1Pa7Sl!$(86{q<-{S1GR4`RPKheNcFi3>{EQFQ@CGRh*E
      kejCB4Qs!cZ4fERMKR$FQjc#7gc}iI>KeLvAsaRb64}kRPr2qf`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/ColorType.class b/libjava/classpath/lib/javax/swing/plaf/synth/ColorType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c2511a3677264231102ceb11388cb3df142ea7d
      GIT binary patch
      literal 1096
      zcwU84ZBNr+6g>|cqbrYq6Q=VO5Oo`}iXy&%2o6SwlO-?+#uzMJh2mIe*D1u$e(=Be
      zK}ABMi9f&}WxV%U<wckHrRVg%oO|zSfByRR1HdpQ+t4D=yJ@~Lw~g9cr?PHT%jQd?
      zwo~ypjI3LBz2Z*QZbMk0i>r*XNi~JFP22JX^ju+KW_F>lG(RoSpZ}lC7<D|F%0B+n
      z(OH~XDXt#XXhe?IwB`!grA2}0lc|-}EX9ffVvgdLTd&XxElx?Gy=2!c&#C&3TM>xm
      z4>w)(J=%r_YvWegsW|?GKq#4776@nElC7bKuW&tk-6Oq{4uR7WXOIwxj0g2S$$te?
      z%TX#lC((+Ch6{X{X}xNQaORRk8)y0iI*RtTe>j4(mnAgLUJ0_td#_1EIh*3^U8`Q>
      z;Gl$#2(uxHc1UK1#0f}pE$>w9`TEwH?G??nvdtE_mRVjlJ%`^_P)7*2__P?e-j?V@
      z7qdGO9V`;|H=G&)TS<f0ZGUcBc|~SxzT3E4pgWmrX0N{J);-J4IXu1N;EQLt6n!)%
      zME_e93HFOvg56Q51sDxb50FkI)cHWd7T!@IZA}=azLSWN?kRfvpwxkx?+{O8-TR2|
      z;;iE56~Cx>uj2iR4=8?B@ucEuZ5P)=yU2W2V{XthP2+)48azg}P0<;X7{DxskfVGa
      z<5;4|GfdOlu<GK)=-&y}dQK6JCDQx2nI7E3Ncsyhdl;o>_{FhNaq<P&qIQ>@sM3wE
      zNyt;O@rDTQDrcD8qr9N|@6%$9Q3jzPY)yZ~=*I)uhzh<_GO|$+$Ozj0L6hc@Pk%MP
      LZ`wSesviCZ0g=Ic
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/Region.class b/libjava/classpath/lib/javax/swing/plaf/synth/Region.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c29c7dcc9e80c9c96727be3f9a4b711eb81f1c7a
      GIT binary patch
      literal 5717
      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
      UA3S34&i^m?r6UIK(yHD61&SHwR{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/SynthConstants.class b/libjava/classpath/lib/javax/swing/plaf/synth/SynthConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9dedcea0bc7b1baca4d4bf1679fad3e9012b1439
      GIT binary patch
      literal 374
      zcwSY{-A=+l5Cz~fh-|H*DE`C;@Ycphz;>IERBKqutyxJ`NK=e0sITUQ55PkiW=c%f
      zo6UZklQXmH-|rs)H@Hw}5w7NTWj}-JV^+QdZ-sphs;{zs4UC-OqO59L)|En=(35CT
      zSPrI7^L$zpl)fL_CORU}kkI|hPi(QwcX$dByl7~ejMyXicWGwyV>;0zdEph*!$=#m
      z4e%Hhr(w1w*TOS8(c!ppi>)FZ53*#;Y%_hcSiVp5cvj?u{{OA7W#NvLNVUQxcF~av
      knG27-=h$cOJ3e4{9Urof9QWAAj!)Qq$EWgtoHh6J4gDZI00000
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/SynthContext.class b/libjava/classpath/lib/javax/swing/plaf/synth/SynthContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ef9eb61414b18c05fc8e9c997ab9b1adb9a73f9
      GIT binary patch
      literal 1110
      zcwUW?OK;Oq5QWc8oTdpbZJLHQ;ZfR>HZc?nsXGvxNJvEyNHq$N1(M@lQdfyxCAY6#
      z7yKL+AQ2(4=nvpWA!e=(gvbUqzT@2Q%pA|jx9?vs0X#r6kBq>^p?l(<*`rfG=-Eeo
      z_nkdD57dF}@Us;LN}j1a41om(?Y>Lc^X{Salt94?2S;Hb1FBcrlZ~FXe%?G3m>J5R
      z9|i)e?UZ4A8Xz<`Qs;e1uF^<t%V8*@T}8Cmr6G^}z*mn2-Zs*l{A2omjNEN@1dLX=
      zFN?^cWMU4B0@+5hQ-Hvdi5zCQx@IDeS*})06j0=<X5tD=f%&!{$Y;lct{lE_yZo_>
      z?a*`k9e3#Sd;FuJ4*Zco{jaX#d}tMBPpa1MG-{1zdL9L0_u@#_rog07W{G#AT<Yog
      zAIX#^?Kn|Nv?j`_=!C~ZPd@RvU1{<w?sH?T(W<ia|1^-{ZBmutUFwrIsZZJ?ojD@s
      zaFw3(^md_npk{r+f^~O{vUP8ainTq)vQ;t0sD9Gg>&)oB4$bIL&zIEW70P&xD&F7*
      z-Rwl2a1*xxU9l6PEB2Dn6}!pmiv1XLzlz(j8=Fq%bJk~+KmHmVHSzQiGXmlvlmylj
      j#Fc6BAW^)5I|<_DY4K^IxQ@*ParMKL_<f>yOH+*>pDX6D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/SynthGraphicsUtils.class b/libjava/classpath/lib/javax/swing/plaf/synth/SynthGraphicsUtils.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a7a6733c41757a20ef05dd7f171f4a9f0add11e8
      GIT binary patch
      literal 4042
      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
      K9v@0fAN>Vib!`Cv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/SynthLookAndFeel.class b/libjava/classpath/lib/javax/swing/plaf/synth/SynthLookAndFeel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4d0994976f0a3fea3cad1130fa86d15d9f572f1
      GIT binary patch
      literal 2732
      zcwUuN%XS+@5WOwQ)+0kq9NP)u5n)IoDRzbs9tko5M~*>3C~<_nfNa{MmOL<;(V0hL
      zv*8Q)1-2|;LCAq{Sa1$o4*$TKHTxW@Tcg)_q&N#rzv|w)T~%HB>&fqb0Jw}s8VQCA
      zU-J8WU-urEc3baSyrp{ww!f!0<hSNHU#;8CO(Co_QgOz++%paRhWw5gGiaWFV2Mp`
      z_>OzPP^wLH(-^TWGt91;w&`DINEV7a45^CK6gebuOhXzOhPj$)i+a%674Bzz*Afi#
      zHOJuA4tGtt4mVT&p6M|Zr@9^yO`hjG;Wx&FuNIE3yttDE!$}P@m}N+KEh21330Df!
      z1w~?!=@T&A8<%pc;&i%>Eo{F$iSVvyn~q&Rg2Qr-l%LVCh@~7}!YgUK%uskLEYzvt
      z6izcRgW>cfjdbiXoPCN^Dx9F(<i1e!l)Y2EOY8iBuMf#&S>$f+8=~tI%1h${!@0H{
      z=!V5Tugi(B?)cSC*AgAF7tMh!!$KS(LzV*F6Txt8Vx%XAa-ctBxPtU=R~fE83(eqg
      zyGkrM`2tLCnP02Q*EOul%GUyW{NPOuZ^(mVq<%xRcwqSyv@?+!+phM{$`bUBhAViB
      zVcFYr0;{<_4ESw(-8O_rIj!t*yDggP4Sr5<$#OU?ieWZPN3Yu5fGU$N+v(MxZV^JS
      z$OKS+(paNnQ2V~v_w_s6^~4|xY0&Fl9-^w2CEDCtciVx?*GRUq4YO@?KX8S7I!E%p
      zR=TbVBw-SMF&09RbcN>xt|6#(5%q~fS72BgZz>1feq&jP^T=>q<-jvsvtMap8hV!G
      znsQOj;1=}=^@Q>kHJ?1UoB5XNnKMLC-N@imnkoZ^G;P&+hn$`?y*l^J`(mukE}32<
      z=yn~KYJBV<*HE|HG^OChXsf#<W#LtN^GW(EAZyvOXm*0;)MDwIrPUQ08I3cg$H+aT
      zNdg*ub2I{Vq_BnOXr}dya2#_qX7RkD87Fvz`6$5`L~w76U_oif$|e*Nysl1w)X$jz
      zX@H+qyDf!HC<L{i5b-|UNbUWG7fKg@#fwpxr(jDV@GSDmL6(BCtSDY1rwN>sPHBB!
      zkzNE8mJRRFBl~7VKQ%WL6jc$WLli4vC=x6x=-UyFL?|drE?1s`<GUCRCR@fKj?tW6
      zil*dyGW;PXr%X1PsZ^JvRFBB;msl!lJ%_0D5vsSNm-{o8=3QK!9H8Wn5stsd0@UZY
      zhWDskBu9qEG8NBxe4s2oRD4_XQxD{!nhfdwQFQt6_4MfEY#leytAz?Sh~_4S)ltDF
      z?J#_VkI}2u)lhD7z8byrzax5+1HGTbKx<Lxf3eW|QM^8hh2Ew}v+40=+1U8rIgCt2
      MkqfcNEw#G)Kd6Hyi2wiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/SynthPainter.class b/libjava/classpath/lib/javax/swing/plaf/synth/SynthPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad8ae277791b6f2aab47bdb5649d28e589666b3f
      GIT binary patch
      literal 16885
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/SynthStyle.class b/libjava/classpath/lib/javax/swing/plaf/synth/SynthStyle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..710c129bb839150e1772eefd1b99a34bcfe7ef96
      GIT binary patch
      literal 3043
      zcwVKI-BTN76vm%7Sy+hC0Ez~&Dy>yQp`o@#Z7Novl-LN4sf;q?#U^ZFaoLU84J8*|
      z`4{+c!@VCjy`VEnXS{IQ8^8W2$LHN$HVJ8yjpbtV?s?Doo#&kM?#n;_{`Nb73;0k)
      zOkiS1+tc>5&K<+r%2rJ6cGjs|?sm2)pGCKB>M9h0A?cPiH9D=8cJ#6<(0|pi40m22
      zKABk;NL=49>lN3qEl0(mz}YRUmMxo_<5V>AR&6)GTQT)r-E#HK&{sfNv^Vtx;z%aZ
      zhkk)n!Lanz+HOg&-qK2@E-+HC%bK~aRSo$b7!`Nha0Jd2x)zY5{4L$RQPnEjM%nqq
      zHB1J6JlQdF(WcIQH<#(?)xu<+c-h@&>5<3+15~wWn|4*;vuJ7_=j2gt)hl|SH>=%o
      zePd2`iW>r_y9fJ?^4^#2YSGnP#;G(dGrz!GG?7gbWE`of0MURB(vr6v-Q^_m(Xb7w
      zAK08Hu<%e;b*E-h>+mBs6HNM%W)R1Y7ouhDJpX_uXK6TV746F!YnzNn-r#wmB7vLH
      z0tzR;!Q&1zo5=h^ugh=d5nCz4a$L<cm-O2jyW~XI$`5?FX0?U)dt+n?xoDhrQTa?h
      z0fB51XYsm<3oTcTe+wiqi;GEI!e!ZJ%U#z@*=Alld4c4nFD5Vwn&Nh8#~=2BZJWAg
      zJ%PN9%!Z1qEWWW5KoiJeK8g2mjUr0Et)Yyw6&wDylP}9_?g?jn94BEp71x6{HJkm9
      zs_0f}5cvH6=4-O}td>(2m{jCj26dcuq}`R1DB87ZSzk8fwVm?Pd-w8r>8ng|`f<p=
      zA+Goz05Pb1Q}{N31XmZi68!C(x{s&saS_AQd?xq{%+qlJ&v2FWosc33Tn}TU4K>G=
      zjEafFkkjwQt$2**{oQ~eSI^=(Fa4;u*Gjt<NN=aDd9+vk-8PzBy?``gih?n6rP>!U
      z-h<jtJE<l0CDJ7I6khH@wboVjE8LB7J%Q6bsNL?;+cS9W@igV`37Xx7#(SiPn)kZa
      z{01hynlqSc<6ibW*y+Zx^s!$xi4-ALgd)%N0{glPY#K9sN<^J?^znCm>fH1Z&R<c+
      zl!ur-KyplZfY~FwdG}PKog>T*e8cSD68RmE;`d&nOFkk@G#)l%JZOeo&EYL38{ppC
      zw8<*o!Ie%ja)FH85#DW=@dHsmGT~2@@pDfy-ajE@0gHhQgFBKv>dRQ2eu$+549q;h
      z(qYp<@CE$BY5dB>M?~HC1WftCp@7j)z-S;qrJqb2r*#=Og0y=<_37s7R}L^Jt6w>s
      oIhpwn%Kwu&{^E%LZYn(;W=@Bh(_!gpmi~cP`cPQ<O^;mo53-neJ^%m!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/plaf/synth/SynthStyleFactory.class b/libjava/classpath/lib/javax/swing/plaf/synth/SynthStyleFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b010e03934835271c401b412708d28b011fe5236
      GIT binary patch
      literal 440
      zcwUWBJx{|h5Pfdlri4PF13O#Vfe67C#8RmPia;W$6N?i}>MFIX#HHkCF(EPV1Nc#h
      zb6`OTfrt0*&iCc#xA&J<0LK`5XfXr}@gN?<YNK=>t_pD<R<*YCFmagJx{y<mSyR>?
      zIK!UH4huoKSLs4#mZ5v5w6f<6?O-%x;1hEveYCOFM+aSoL9DdATrX2u-iWl248z!D
      zqL_(NIsYrj?Oat1<M_Y(L=3%L+9t$s8+<Fgn3(0tXsK=VTf=LaE2E>)-veoqpO|%-
      z$*FR)4u0%%<a+Q!kO*+6MHW4t&?E1Jm=Slz&*(ih*FK?7?EZn{6x(F=Ka+@e;I!Vw
      LfPB)tso4Jj%Di*U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class b/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acb354bb252760c3932eb7118d7334f86985a822
      GIT binary patch
      literal 4043
      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
      XypIp){6oxFD&M&R-iRLw_^bZ|lqPWr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..59a68ae75c1fe12891bb9444129f1a63e18e0fdf
      GIT binary patch
      literal 464
      zcwUWA!AiqG6r9(ljg8T2^(Gz!588u4L_8>7QiVeBP__4M`>HEzBAZ10El+|6KfsR?
      zUsj>L2xZy#W|n!gJNxzh@d@A%n?7oU;|KMuUZea)r*~1IMuwvvPgQA(n~KD2%z)Dg
      zTeiEm{Q>7$X~*otBXk!Z_0c43&Fi0xnnp82Li0?gx;Q7)_x6VbFU}?$ppNAbK9&gW
      zM5laJK91NrdqOA4#>xzp)fN9c^oo0(6Hb!FA2*llln`7ybg3)1?f+&DDtkiMPgAzB
      zQF+dCYcO-d4kU`~hI}^3k`Pi`!j2pV8r^pUZvtuvr3TW09z0xNMNs%F!YbNMv*zkL
      LI!;T@egmx^mBDtr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..500f418190d77e58cd26b78515d6744501c4a6af
      GIT binary patch
      literal 3503
      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
      J`Fx0uZvpNB>A(O0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableColumnModel.class b/libjava/classpath/lib/javax/swing/table/DefaultTableColumnModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a141c6d648e4cc3074cda59055230f8714ef3e0d
      GIT binary patch
      literal 8494
      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
      K2CA@l+b;m+yr+}^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableModel.class b/libjava/classpath/lib/javax/swing/table/DefaultTableModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bc27c59ca1ff5ed8b14fa6118fae5e90fcaa9b2a
      GIT binary patch
      literal 7491
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry.class b/libjava/classpath/lib/javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f261bf99a8c1aef7e447899e3ece0ea872b96299
      GIT binary patch
      literal 9605
      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
      SIzENaChDm{h!ESw^8W(~JDs!u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/JTableHeader$AccessibleJTableHeader.class b/libjava/classpath/lib/javax/swing/table/JTableHeader$AccessibleJTableHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..caa7f10d8a65bcfe53c6bad9dd63fbdfc259a1ca
      GIT binary patch
      literal 1638
      zcwU`U{ZG?C7=CUP>befb_)q~6VdB;)1r$+-AIk!<xFCLn#2?GJz?spKt`qs6{6P&u
      zqKSWif0XgPu8wVd)R?BdyZ4^=x#ymHufKkO{|R6Y&s4-17T((*?2l$`UpU*QZ*Nw)
      zx%yT%&$+$Dy-cxE;kBBeKx<fq!jNxGT`jr0d#=MBzcr;9Wa#mCL@hJRFj2mE$pT@Q
      zgd_YX3{%-CaBhP^DY;ub4u*t|ZuDsALQ;o{UWU<jf)hbOVqaM}e67B_$-RJ+AzgMW
      zc6Gz{gdB%KMM`H_jL>q9SG1r0ZSJ2;zIG+)bT$|A+2M?+3je@t#}(oj#uXKp878CA
      zI<8`bp?kf!wp?b&{L2CiBW>zRJEFSfai`?g<*{{Tb5<PVm{4(@Vf<nTblkust?xH{
      z8*KMJ02VZ4Fs<Syd3}0T$1RL8^pc{ITdnW@Rgpd|Q5J_4Wnn=@p5fJho!dF#Wykjp
      zG#I!eOKgV0jjGY}>cWbu?X&EYWy=J;7L{+CD@F2YzM;jm_kDBS6|&5u9Mb4;@99{;
      zeTHNuFumvpxeNoR=`4-z*#jL}<VeIGL#h+PpuKVHUWKm+Sp@y9Tbhwr2HkQT?v<)`
      zt;XqM4WDfg-QEk1fJ%+3lm28Zm6ErfdfiayNG?%4PNN0H=m8Q&{u?wSe+>N#4P)q|
      zZx4Zhmq^i95Bdr8BQ5DLfWeSrhFUqNe8te`_S{&pC0A+Yj$*92d?Pnu96~$9wIfV@
      z>Y!LTb9r($q_7AlcQEt=#yewF5`|>PxZSDeML;&(NC?Sf&%|t?WDfHoZINt~sH7p;
      r@<+IPgvCy}^%lBhlP-yectrCt6axGb9#fm99{n5egp4q#_Y}$>RfU{G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/JTableHeader.class b/libjava/classpath/lib/javax/swing/table/JTableHeader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bbac17de8b063c7445971ac1043b70ff2a871f8
      GIT binary patch
      literal 6581
      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
      Pcl<;6M!|XdP|W@hXcAag
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/TableCellEditor.class b/libjava/classpath/lib/javax/swing/table/TableCellEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efe03b2a787f2745be7718fa9a2dd15917a0be5f
      GIT binary patch
      literal 263
      zcwRg8Z`VEs1_nb0ZgvJHMh3;K#InQ+{o?Y>ymbAN#H5^5{SXl8oSKv4nvz+PU&PM9
      z!pI;1Ql_7i2vp>sl$DxX!p^|P$RLKS8KHxbK{`FP1kD)d{M>^4ywtoBMh1HgA7qVQ
      zV3pQB=vG)qd3tI>L=($P^x+0rGcs@m=a&{Gr@Ce4q%tyypxLAc(gJiHBLg!KvjRQK
      S2=oCv0|$u3zzHOo7`OmWd`z?e
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/TableCellRenderer.class b/libjava/classpath/lib/javax/swing/table/TableCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9e9dbe2966f3282e078cf2169c029aff5b0d79ef
      GIT binary patch
      literal 240
      zcwRg8Z`VEs1_nb0PId++Mh4}q#InQ+{o?Y>ymbAN#H5^5{SXl8oSKspl$w{4T9jJE
      z&cMRRAOKRRpOXkw=AV?6nq0!jAe)|Af}z+sKer%1FEtM+@1Ws>Y`Pa%t+fxjLDo@G
      zo}QWz;l%P1eYgqMj0{}C`K3k4scxA$sf-L_7?$aQG_f%<FfuSRfB+-Vp{xvSAQl5V
      JkYr-u006=OM#=yH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/TableColumn.class b/libjava/classpath/lib/javax/swing/table/TableColumn.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..daf7d5dc6b6432643afa4490985f9d384e2c4618
      GIT binary patch
      literal 6349
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/TableColumnModel.class b/libjava/classpath/lib/javax/swing/table/TableColumnModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb3c12184baffc82c027e437a834a67484b1b8fe
      GIT binary patch
      literal 1035
      zcwU85%Wl&^6g^YYhJ?~K4Jm{-DJ?b&EVcw8RTW5<idduqR94e^WL!<gl08oQZ7lcz
      zJ_>Q?+OhIbi5EVaIp@BPumAl0^&7xjyl!GmU~nlX@;b<`5)%hjo@*7Hy7zIai?R8f
      zMoKr)5ZH0LKuc16IlojFR-h%LsFYC}@8rLUhW=N9%}kBciJHc=XAkRM7&^^%u549X
      zW^qDH!((DAo)X7tVW|8q&krd{eVq&RJ)heM3Y+NQqbbHJlQv1skh&cuv5~gOl)$^2
      zbnjP8@nJaINN6H;Ezm1xpEYObT5Hup=TGRb$W61yi?es;YaQ9|r5}{NOVnv<r7rnz
      zNo0SL1GRl4rKu5`=}7DJN<}X4%o*8_Z<dg!X9ByVC^;3?-Znh{2bJAh;;PTl$)^M*
      z<h>EtpWlj;Bwvv5T6E&&$bsjt3Z-7^1>_s2QAT9~!F*jcQN}K<^;FJ1^k-LdAzOQt
      z7TJaRlxSL=-eQ_JuF{48nFsfD>1SET2Ha26tnfBkjBVUu+{9hREo@WV4n?h@L+4#|
      x`TibyjC+;tJ{~aktMfxVVtkAzj8E~5@p;9+z<_ZdFBuPT$oR@3RrI)`{|^F>9S{Hj
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/table/TableModel.class b/libjava/classpath/lib/javax/swing/table/TableModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b5c14342501043894b0522c236ac8cae7e41122
      GIT binary patch
      literal 551
      zcwTLh%TB^T7=_QEfE2l?+)R9c)`g90jEQM9X@Z)FVc~9|e@MyDCcS{q=E4W?p^X2G
      zC?a&xlR5p)nf@~$pKtE~E^%5$LEvmA7xL9jmtiz@GdWh|KI`{=9FQtwU!bW8S4sZ<
      zIG)iY6R1updy1D{oJYLcvmIZc&Yl;md>*ar+OP2-=Ooa!eP^)l8fFP^+205%nWh4*
      zP0+Z^Rfgd-l3AW`S9b?;b$+ee!qg+BZiCPaBT%$`-+2+Rc$<+_Io<HTb+kG7KN!cY
      z^bggww-L^bcorE1>th;(X+{wx0?v2h=R9daQRZ%gecjPZXdW+USB*7{^JGGIp&p>I
      zCN6Y&Nr2BB`l;~s6j6e{rt(S;P%&zu%G@DS1=M(5N5l9{92q^viP09?Mmt(L(KU(Q
      E7cJ3_ga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8085237f26524bafc363aafa40047dee613804c4
      GIT binary patch
      literal 7275
      zcwUuQ349dQ8UMfC*`3MmgoKbySdI{4kYtl3o@q@04I$JB1SJ>>mdYlXgw@UNx;qQO
      zT3e4ET6<Y*MXi?F)}yu+l_1ipXgzAJ_Ey`{s#vSm3vE4WEB(Hi*=4djOCrBtcHX@C
      zj{kSQ@A2pdci#ixXi+D_C2;gvk<F3Omh_fre7Hr|M)j7C{<NNo4CqS}1DO#muGeQb
      zx?&o?%a8=hnXM%jA*NORXK4ep>lK(@AS}nD2-FvRU767%{V}aW*Hh8{jIQ-+MClU<
      zj-yOzTFV;x=}8P~GE{*|LwPjO(yOJSky!Lx7DAZP#%rIJN=Fm%)4P`nh*JbgI}`D=
      z9*OIHkyu9aR6h`0q^_C&h=6Axk%{X>)Ggpm3=O3<dhtcFVA29}Rup>2hP7Q_ie?&k
      zW-^k}SlEn07Rv`j?PptZq%&6(HIryd4cdWC(byo73se}?Eg3x;Yw070CsIV@)i*`c
      z^+yRD;ea$Rj!eEV8jtFW1<q`k1buN!CU8q*pMca!W|V-CshEu#AKaLyVh)ZJa5pse
      z@s|b_)tK%>2+cB@1m;c%Nkte71f~sZdQKrlmuUrB8yY7zsy?5u-H)Sij7;@_V?I2$
      zieqsc#gzbcjU@H0y_`aG9f8;##MZZ}2%ySGtB<NU0c{lV$lzdyE&J-6f|T#)vK7&|
      z){`0O*HUZDGN@RQ7@#VMP%Y5AwJC9;2pl^Z4~;K(N*j@+KjL-|=%WJ1O-4q(mj#qV
      zsT{N%WF~W0oOn_ZoobfIrgCg!vBZ{iXO5l{W<6CVeKGbr$j3De-FZ$PS3d0EQ&h~v
      zEFV^&N5;x*%d*vvid8t3qz`k@0$G9frbc)?(fFW7R+nbAcbZLuFm<!+(^d4LmmHjq
      zo=bjKh^*V>sA)J1K$CgBiZk#D0ohQpYKUPJf@q}vB*lqKpoGMqYPFBq`Ds?*fryGA
      zW>DEj(<`(HNmuO|CNSSYnS=U1E|DP>0~i(<oG2+LC33>PD#arsTCVBkg=8}~at0OS
      z${8ur&I&*srjRDY<Kbh0N}w#IjU+Z}HYYkp%y1bcSOUbedQ#{<q=U-yfTUUDW)(X7
      zV@5-f`r?jJ(i<I)NAyfe;~a7(To_tx8SyC=d7i-9$r(|oaY9Qx9BOh?b<v(sHNK;5
      zO=i2=jN<5xaX??Kr4zBunprYj5*Mks7*YCYeX#}7n?0AO4p7sIMC0iXUn=YUxCCF4
      zaVfd>uy(8XJib8rU7%`Gecw>?RTY=v%QS)vB$8Y0d2k6XSMfDImsI;fDR87ysupgs
      zgez5i16T0rbd`#2EUSDt&z;l*&(^k*-%?sS6QkD>T4X;>9e+eq%Veq7tN1oI%W+?O
      z%<#`Db|`Q(nfV44-@#H|T}8U0>808b9esmED$sDzO)9>RA5d53>g_Q)iX2UMos)^g
      z`17qQZeb6W+To<l<2-wmIrLeMhi$0hbICd@nK=Jk8b1NbL~H`7Y_Pk&m$b)++ZF62
      zht_Lc5;As;o3l+4GZ3bmb6RIPK|G|C)1WIpxXK!F%MJmy4l~=1b$Cf+2OT?8=tHj_
      zN$FW$X)rUA<P+S)PBZwago<cVT4bcXyRlEk{Zz2|sF!4hhP0FqdohoH9#ruV9wtj8
      z$)pyi5YBAqEcAxS)Xqux3l+EH4rcu&vpy!!+)(Jf!-}|`e{S&O*Z8fB-%!>#CYy@i
      z;rEmQaq?i!z2ie=Wf+6`BZGM|4~#=$6@a;tar{ZepRtU*zbTSlnMi4tzO;gU0<OhA
      zCj6U<ek|kFvnuXEFR%8ixSLmd@psn$0=uufs5%8NlC%wHFz3rEevF^^@d{p(@oN4(
      z%bwRNUdJ0|x~?&%>#Bxs2OaG)-n6cL=5|M#E@AA*u2d?KQt&T<@RG<NH*jNjbU;h;
      zqIM*c)@$Ply|!Pg)i<RQTjI5ww3N2MhXZ(<FA7Osy{qCq{D;e(?k$~>Oj^rx_8Mm8
      z!(g1h5A7=WFI(?pZ+)QRAnu@UpeIc9J|To#7IX`q=8(;*kc5YhrzCIXb(w6!^^sSF
      ztYVK58BwC*HtgV)U&Xz+PZp&D^9r2o<Pa)`w4s(XIo1}Baa5beg|(l2UM$}9Icj!1
      ztFg+~lDrr>bQXBhT-MaXjrwzO&Cf6FAx=o!nJJaZoxTonZ)b@yYK^^#Olm+|7Ujb_
      zkbg^9!0gnWy5n&z)ftPB2%fO=?jO=zN?bQ2cp#$$ekhoMQcR)UG5{`=({BZ)f&W!n
      zPr6wdPr6?kPa1=bCtV1D@^ZeB(i=;jgIfBXOK+EuEDt>!LrptT7utpTQ1edAZyG~m
      zn-mI4yU`-B6UT=if)Wak;UhZ?_3iXqL(u3PgvWa}O1vYO;*F!yo4_1z5=VH?!9t=5
      zkqIOmi?G;$(uflYoXc39L~z{%K7bA^fg}lZVk!9lS-P-{C<H!+lP#Dh5f5{zp*zt%
      za}3MxL&<G9BwnI|_i{sHl}VS=sNyto59J3|qt}vljPVY#h@_2S&8>Not~Dg7CXFSD
      zhCzJX;$LK;DPewc)w+BEx7whT<e-#b14V>Ye-dX}qFO8{9ul=N-=e#1I6S5p@=m|y
      zodFD5Le|k&H$AIEB&Ci*M~~y1ns-B!ICh6Z=3_+O$5G{d!Vq0+vgHs~V-uo=x@w$7
      zD;KTlmTsx(p<uE_RpZp`#@TKsEl(lfecI-Ss+^W8#OaUiP9Qmf>~kDtKS#3n7m;mR
      zAZUP}2zSO&_A4a&)d_Ix*h1e%4bH8Gj*UfhoSW0(w&{4Abi7kU$ER^VY4{AXf#;pi
      z8d@*NS+s!y&U`_;w%c)GQ(?%fxV&X*II;_6vKs+fPnRW|@?cJR5TCOQq&eMEbqWFJ
      zBvG?D^+h-G(p|2wC6m4KvdN_8l8I(_OYVtQ4f!oceZ^HEw$=vHpA+lPMS-S$OW1KR
      ztH{T~cH`>;d8H(WY^CJOl{8KJmW1<(np;(!1?QVCtZaT5m7y_wtB0DOKb+k>BzXqO
      zhTI0f+)l1tgi3iax%NcV${n`mSC>OxhpP>T_^G<CF&t7!h^{r-px`@#vo+U=0?#aW
      zw1zGUxvbpoB<Z__emUJy(zarr{a&GjK}QL611S>d8w&%SDiY|Mtx~?FXx99&P}qeN
      zWX+Fqwl!O}xkC9iU1qb%m9vSaNECMMx_ss<9lJJ-NQMxa=q({97!?7Ou`LyM8tHW(
      z#`4A8Y!g?O!*UmPJ7Afg&wPg?78<0D=N{|%Q~b<$-ox)iOGBI~+&!JR6xtfygT3o^
      z;ej4^t8^nu!{xPO`1#t4B@vKjZ9n){xO^eMhpAc~8N;J%>G`Yc&>t@M@ix6Z-bQRE
      zyIVarW{(JXW_dPlKX`!0j3)%zJmH{c41ZV~E?;Eu@!L~v-f+-s?i$jV_-TQw58i2N
      z2^N7=@fQopU$@}`2O2{&eSW4@qTlCQJ>l{*3?l;47@j9>&E}iOc&qpaOJf6H3P=G@
      zKpNbQf4ae&H)3X+cMlG%t9WY{{@o@AWybr?+Ms-IxZ-`LXrjUCe`5lnG2v~M3@_A$
      zNU%`ayg~0?h;1kfddcTaglbIq4A%st?FaYmpsCs`W{Mi2T5)}prWeT1K#`xt6qyb}
      zde+GMF;9LT3*;AYy!;{-$}eGw{4%=aSFl`u6|3pFL4FNG^6MCp-+(S3z<KhUxJZ5r
      zmlE9-^4qvZeiz&2_iz(EcgXMKF8Kr8OQC;I5qONAPbx0#Q{33ENO)QC;DF-AyNZm1
      ziXyy<U(_h2qE;yrO-hA0R+%PRm4H~JREsWUhFGr56sIY(#X6-%M3gyVgx<F(bB){_
      zqcN89D_f{yR7??NoUgPhr^(F)MI^;kQ9(`8k7;5W?MXB*t`?Qlv?ZDl1IC^QL#P)4
      z>KGoJhbf|pR$g3}<GA0VldumPMYXZokM&|Y^NLzjiJ+i{E}Gycf6t;Lb2-Ash%Jd8
      gG@3fZI#i0;G{Jh|5<E=1#2n(~#>Yh%5_2W-f25SnR{#J2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$AttributeContext.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$AttributeContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cdf353a2eb075101a55a0ca4163bce7547690991
      GIT binary patch
      literal 946
      zcwU{8+e*Vg5QhJ)+Srq=hkCeFylA~J=&d4@T0tlX78JaZZMu|{WFwnNt*_>V58y+I
      zlb}+flF-2NCz<`{+e~KOKVIJeoM6vFLEv;Er*dY8&#oTZq-JDyh9Md0&}HC6zS4Bq
      zAu{eTBGnCayu-q>KqL0qo@Cd}aH1R%sLIjkXRpAh)&HIQJ3LTy)=#JS<4rpwhd^zf
      z8VWq-!u}u5CRWCZdj1o=@T0(fE8Afi<#^Kd1rD-K*S-^|8|4R6HCM~qEZZWLYost-
      zy!(8dh+NO^X>JcA$qjT4SZUynwWP@K*E}pnIX}9{0V)rI$T;fC^_bL5H}i39=T^Pe
      zTA8jV!%&45cKA1D&H)!JJqbktfhEM3#WS&jBI4Pwu$pKI<wPr}CR)Q<qV=zM9S!!c
      Xv%7!|UYp6?7MiSO#JRVzTP%G7!3`|s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce3b3c7f73cfa3440c00b80dee71e65363267c02
      GIT binary patch
      literal 1170
      zcwVJcU2hUW6g|U7w=8Q*vG{@3Qj2tf(rvYBBF3arO*SF*0YlQqSr~DfWodSYTHpLh
      zYN8}I@dx;$jCZ!A64B7ahn=}|cFvr0@7&!VKfiqku!F}MVhpt-e!@?!@SW@TEGbT<
      zwdaH~;2pU?=nVV9m&NC9*L~p$6>CUbiqaJP&6vV4C*QhZahqYiIg?qZ?N43bmCqO&
      z<|Xz|ZyD>>ZQCxl84`^_SERs@Hju=ehAU)biqvxZ$DY`eGH{)t6fGfj7+5r*A;S<i
      z%WWNTWYzjA1OGo~e<4o@*Ol)Sa=5PH8pG<eSNYx(je#FZ?#s}?4cuf%satA_6X7vr
      zBLU0f#CYW#iH@vmxW%ya8@7EZdLqz~$BIho4i(C@RhA3|18ca;VDN7D!WhGbIeqLj
      zqDsElbbWC!>^mZO%^goDM}rRc+B|U8dJHC1Uocp+YdP71szZ)>5Or4m-!*1PQhfs2
      z#B91i;dcq~&g-M~ggoGVvaoEHCsJrpu70mR59(FjA<4p+ptlCYpd((o%69HgcU$TN
      zDwpm1B4~I#3`MBnA;a3t#HcGLQbU2NAE%F#WiqN)DT>jfVV>|5MIQ)LXsJ^D0=-h*
      zJcDsK!oo@}F~U;iGnUVgKg=aZxcwEYpCbM`jSK43^bV3~3%T?*iiGWw0-c0=^dO2h
      zU`Bc+lu?O%lu)H85k;F6CCNt(TVpphni<XUto89iYED7vCy|74{(3ACqkoPX@8bc@
      LdPLsEBgB3Is8lcq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..02beb2f4f5bf84853b1349e4c9c39c4bffbd2a99
      GIT binary patch
      literal 775
      zcwUW?+e*Vg5QhJ0Yh&A}Z9ShrQN$`5#mkD|5rpD}6>nveE_EeMAla&qr57T2;RE<k
      z;%p2eRcJ4=*_rvje<njdKHuH}>|)VEhOm1l?!}`MKd7MXX!)p}LpRou@bpRObvrW9
      zt4FG(F2hit`qIP}as+1pEE0itn?i)VzE$z+4q>Iym#wpWUj<4Z5Z2ZQ(ATaBx#O@U
      z3m}wi3?W}c79%z+j1q1J@%SrAXaA>isCA^=u9i*t-F&Q}0(sHxxH7sDt}hAIM(7Fu
      zT13jkX)<S)K-lX)PVd%vC01MN3(;YliS=6I;P`_1CeISI>%*8L6kNuZBIXFiX4s89
      zd8SO~$=(Lr#(-d-2Z4-^eG$hpwlGgv?mHWQZqIaB;=O12x1w^{ET3-~ek=@gzQDIS
      za!F=nWAg>YjZLCg*w2Y<jL)JemZ}&kRZ!;GW{kzCplVDpj)~N0i{GY}txi7u;CYiO
      X&HqBPDVo7_a?W5jX=C6yEFkj*Q`*Y)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f3938e918c89e900805e6cf3c6701afbe8b140a
      GIT binary patch
      literal 3805
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ab8a203315205e32cf5c0e067a9c5067f547233
      GIT binary patch
      literal 1368
      zcwU`TVNcUg6g`i%%(b0N6chm&GG{ji1qHugOaLWWGX3BTM!$9CF>1PYY2R@ED@_y=
      zKllUuQO5h)TFGWIW0tk|y?5?8_q==i<L9^U0JgE4#}tG4&OWz?R`lNWyO!WXVeNM!
      z5!#M;8aRU<_eJI4L*I^~JQRk;82UHr$n^vdE6FR#V3-zXZdBP~SZhs`*(3O4*LTGe
      zhN}4w_}Vdpau}TO0vL1yDyB8$P&AOoRfe1?0W&Sv=Pw4m4i8`19gj22wgSiYj_uHu
      z>vU6*g)-D9%ci$M)#_cI?J_KzwejRj-VE1|cqrN;q*I1nvl+uJ&n9rPyZ0A$K_{Jo
      z;BB55)}9R=-WP7*Q$rRQ?v14!*eBAVgk)F^i&)NMiD7l3K?8R%&rrHtZ?o6;s6D~y
      zX~fAZYtkZ0oy?B=p!>9`aE6r$j)*4Yz2KZWpqkBQ?N}CS8mOU4R+FPt+v9#$oH67>
      z-uG;WG9FRJf83#z*fe0FK`l(l5)D-rO;ez?gF)zU8f8+M8@-=RDM0;f`aTa2J(>kB
      zCp{SplxY@o^m(yTNe(1MD*f}gLi+`Zb}&UhK&!8Rp~qJkpJ+9O8G23=2Kqiq6dN*z
      zhHIFWY`BgaDT76Cd8XDsL;E<Ad~_*U&64LZPpF#|E3~>5)4Zlwp|>t+78@HExc#RR
      zP1dNlpy|(J!g>Nt31zerJC)HY?#7OEtf4~QX(mw}lWWmQF7_?umM(CARP7}SdOKDt
      zC&)}q%hWWgq)cdrbu`8_9I`BLyO?NfEGQS)7?pVgLw_5~>?Gh!rkKeTQyCdad$~B;
      VB6|w$ZpVxd@G$0-%~&KZ`~u8NCy)RD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$Content.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$Content.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9bdc3f62fa6d693484492c82573bd3bc3e46a2d
      GIT binary patch
      literal 636
      zcwU83O-}+b5Pe151w_OT@Z+E{YO;HAW8#gIA|{)VXhQT}mS$P9w5D5--{!#|;Eys+
      zqoOPadgyds-*jHze0;vW1GvJGivoi`;!{2gve!h$fe|wk-1IY}d1UTXG#LwN&f7{F
      ziY|%_bxRLYPUMIFNJNIA7HPqacvM+p5+xaqz0mJ2J^Op#VyJXxk$AC5=Az7Su|&S*
      zgRY9WrOdeuPAX(<h74<-A2L)EnF(!rMpGTbwHJ2()P19^MIjS8P{9*zyq}8BATcDy
      z(PFHog5k^y!`1Y1Ean}X^NNL@3?(A9hg@e2C&XDcqbFi(ZOeZqH+pKKBXOUkB%+ab
      z|I*gdUqdN{Zl^rU1etcgaJq7E4DQe990oECb~!Y}bvTr}loctK2&rHLcDz+==5A`(
      e${}@Z=a3!j{zp*29-Rwlph>X;+kGF0PWcPxv88zc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba8f7246bde801aef85c7dd862abef4c5dd57f83
      GIT binary patch
      literal 2879
      zcwUuO-E&h#6#s2<lXSxc%14DjOIuqoO$woC3$#$^7dDVmpdUyT>}|4bFQmC4_XbcO
      zd=UJ4_NAkag3K_EIO>cogU&cQ&ftuW4~`H11v)<H==e3`i+J|t5<+^N;6rxL?w)h@
      zch2wZx%u*+k3Ip=h6@3B7&=aC=d=qk^Sqv!iCN-;73-NYt(=y$`i*3MPGqd+ele}(
      z)5Z0`IT`{`80t!G^O=+p>oexE21x@comBh`^`$C8TE_12!%%ICoUWzEMb6ZX%viji
      zfgNO6-e+V?OUqc}S~@R$gRgwse0gr)C<7lIJT@>gIGm7*aW91uWbhl))21MA{<O%<
      zShEa@^;A|cL=zPNG~44SDR(ghlCxT7Mwkq1Y`a+A($ld)&72+5vUFZGXQcFLU8Lyh
      z3A)Uh)y?MZ3{8oOStM)!9zCO5-3%k)`_PZa{|EGzaf-OlNC^(2Ma4R-55kLj6(KY*
      zc*8B@^5j7kE3sTk%_^!3(iRn~uv$uC6*YK(VP!(kh{O50DUlo1rqYzf)d?d>6lp{h
      zt({FpM$fRTaxAVDB-5>>>`EbE_h!Vdr7;@hO;V$)WkMp{u3`<=N@<6Rhw%u5Ptd6;
      z5#Hr%TqG?c*A+wub_KALO04`$#cp&`1g8G9u(J~nU=PEpC7cJ*g?i~|pNjqHq3RQ9
      zAw%dP&^6(BOX1oyRZVPo>NGj;3ZRc+Yenh`Zu;zcTZUc?s5pQ}8G<vyat;}4!!1j*
      z>zsB;Y;hF_afm|5=1F~5cqyEvJ1&@ItqiHyifxn>VKY)+fe=c4l3qG#GM#=#k%Cgc
      z3?7kWh*hrS(sanDBGQGzSVrl%qe_+SmXDGb#z{NjGyo|NJ6$0_@~GVpww8IQ)DfhY
      z0xE_>F3<K38TaA!o)9H@lPWY!5qUEb;}#e4T&e0nN*eYAF^$;(X71E?iIxf-r)3t;
      z=C!mbE7isKgyfn)F>LtnxX4M;3BSrRMywoZFsu!iA}j3L$j++BfNCK)V&rp4aX^=i
      zqNcnbY?HPOYCMw>xxTb!n!*g=97AKpRzi2XH4`*aPw>*uhbnA9fJWkuz6~A(X{};;
      zalL|m)C6t0+L@^V+A}p5d!{xBR9DM3N^9vWL|zy+(&`yH_t9J*i7ucvas!(pwF_vB
      z)GeSX5>ghhIpSTwLm$|VT4>w=Kfqsxk3R>_pT`RR0@m;s5#lc)Lgx`E(jB5`1#C&e
      z^VpIE=(QyYQ6UKQMhie#6P=J}T#9^%*cUiKQ`;iitAkfD6!{okCvITx0%FegUT^m`
      zY?q6=MRa#6A>}jl&SPUp`4qjKKItRmy9xTJhJ1?{Jbuy3>S{0F{ze|$!ltOLy)H`1
      zLvpLtR&AA<k?0L1t{21YCivj<6ymGc#9zY}{yL)k4Ycz&v6sJvUVa7r{3^z1|0I7K
      zXZUp({2gTZyLgtrXQyP47^J|8DY=Bh7?$5E?8Ff}IbpQpsGXd4G~gIUC^`L<q*06!
      zJ6XaoPLhXgj^i<hxfsoiW*Kbl`$fQhxyf(Z7pnyY=VFEv=yWk|x?X1dxvTMnt8rtw
      z@z<`#kK+j!<IUx;zjHM{iBpd8U!*N_Imw0!Os<wwbP-QVCa)pxlt;I>L%D`FxvEhX
      zk?iz^d`^M*WP$jjA-_%eBE&rWA^*@th1Do^R}g5ub^EK<ySO^!o8sTY!+)T1{}Jo?
      zPiWvjQyu(*HvTJi^WV|Uf5U$M2M+T;ag@$Z@xM!WpDgk|i8Dx3Bp!-q&gQd$>g$Nj
      zdlPj~Spf?Dl`T|&k3P|b3Xr*>KIG(Jhm*jnLaf=c90ollIjnN-_8@1ECM=qRwud~<
      GgZ&HE&7fWY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e11f6c64d5f0d2f07e530d03a35401a1f227fb2d
      GIT binary patch
      literal 1266
      zcwU86(QXn!6g>khly%!uuqsfjXsfU--M0E>V^S$iXwWp;@}N%(JE3cq*<^P?9{nI=
      zY$7r7!4L3f`~%~ig*JpDhV0%uGv}PS_uMSM{`~j}U=RBVL>MX`%)U7={ExQi7y%yy
      z#$n43JhL4fx$Rz;i(sSXa2acs9V8HA*qo&FgymjS&S_z`96o}^r__0$RE#UxT7N>j
      zdSQwVXGr<nvrVVTJ>Pc4dHslioiHp`UEv3&2%4tT<I3;C<(F5Lm!}LdPJD)3<3<-_
      z;pYsBEi67Dp*lmt<6XDUEr$I2xg687Br1Mj3p;qha8~*^ygo;2&QZBZ^;cbstBB&R
      zh79g8L`&sn64a3f4T~~c)3AhPncdfr!ivluXh>s)VYy)o{<_y~aqmp}&X8`nZSv0~
      z7im4-j0G3A&tTlFW!|jGhE#{sXl%#wxHud+QYe+@I+vcHyty)4rOh#f8Y-3N2`mt{
      zKAISrK{Hd|x;?MWk8Rn?>U70BQi?&V3&FjrWBNY#6WC=a{<m3%TNCY~NXAC#QRtUL
      z0t=KU=}U<~rH7^w<}`~i(j>x|4x>WY3~tkVl~$i<U!j=OzvGU+HAGfl8zQe)hA8OS
      z*bwWNA-5<ohy&_2Vyc0px{D=s4;ghIS@kI%()qKI5*}d#2s2p;3o}_uB+O(r(J+(s
      z#OQnzkH^&*6eV8KzhV9B^~G_ysUC!vXd}S*5{4%;$%Se1@l0|F<r(DcH2HKUS;y84
      aa{lua`P~e11l!@ef*p!#NH^$zF8LQTiVy<;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f13f86fa32968c07780bd88e651c4875c1f72c5
      GIT binary patch
      literal 2890
      zcwV(t-E$LF6#w0juWpvML|Q0cO)Zr)NgIj?NC9cnqJh|={XkHJ+vK)c-0qg$4Xuj8
      zIDU_h&iDuT;EOZrjI^W7=p!?}`tHXc;Ij|TIG(%NG%;DIFFs`Nx#ynm^E)R${r&w9
      z07h^(f&jzN4StKSW$jhXSjswL&B=}}*p9`E&V*U4EDOUqSP*=1QWuhrAjmMXwMvcQ
      zsWEig!qT`tFDzR#jk){;13S;KJ!cxW!wqMi>lG1tck$+@7mf~P8KT6soQtN-u(#0S
      zkNBEHc19V(!YH|7VW+Iw2M;s!x5_uiC-qKghUT1M;K~0W-zwr|=JPV<IF`0ham0*p
      zM)Uc>d4^!lEQvNSJf>nh+7)a=mx>N_GhF*$-4D(y*o{3A^f2^o=|{z0>|<yzT7o;G
      zR%C_)$^76WnjjN9ph7`RQVA6*Vi7#fuv_Y6bxs;%HUU6NPg<5~MR1T|SN(N{LN=Dh
      zE1F&sRuoS#B*%HFU>3QnvQ`u;l1MmZ%Um@QWnqcogo}{V3i^?hwH##Vs@Ag6rdxr2
      zq*Y`vL|x}AD+CyZeYKQ)0vL^g5E#xRNYb@GBDIgutoYe~gq5QVZJC5Fj3uXhS~lXC
      zisLvz+$G@@TsFhD<X~PpIjLe4rwI9uS+&EkGudi=R6!rk$b_G1N_cwVhA38B-iI+2
      z<H(UGiSit;*n%O`C_O7n$rp6-uMFzk2qqZ@TAJ?H7KV<3W{9cE@`A8tr8YxcO6l{Q
      zhMw*oGbl%tA-gr=8+VQz))j8KYh=&ECxJoXHRzL*-Yq7BA>;yx_E4Uh;DRC`)))@8
      zD*7c&1_Io!MdSx^l86?|garznp{Lf%ilgb-NrTd~xMyew!C_3-%~d<MDNnGtLMhS9
      z<__KOJBIcALz+>N8FbW@a%M$pHgNJ)nIPGsyu;?=qAf^5l@dm2+P%iGfKmiSiu$2b
      zuR_$2Jnh+t5Ix10g<NlC6^l3(#SLN?O~Y{$2paS%vC#r*S~{dWBO6k)7S?PDf+$uf
      zx&}BT6<RXoD5&;<!Gye2R4n5}6sy$BjAXp7;<{wKNeqRGIAd0<qBy5X40bg`ZCD0F
      zF7k#UtenoNhh#d|;E~3O`a%DhLF_>YVY)@=7C@AKwDnwCm1k$CT<>&`kxU0V>AQn&
      zf00&{PM%8NLp+tv3~gX%D%}-a$F6(WPgKaIdcVNgli~a5yL=!0m*WE)I3#6K@!@qG
      zmNKdMlSHN0@f6YPczOe;PeytoJ>hknz0?!=@f&ieB0<|^f<ih+E|1V1$|ndZx1lO`
      z(5>7>zw!<Sl=pB%c^}7>4=|>Dh>LWeQ$E5~<zqZcde6Bjays*XOP$9BvMH$oo_EW^
      zF@<R=ili<Q6~X|muov(mm1vGiFoRjL!ib*t3X!3c$#Su;-J;0|WjUdI=6Y4Dubx+i
      zOL(bSbK93qnxFe>Ud9zq^BA20U!PyOn%&jc%}fJ$nR1cdUcreiz2Eoseig4adk-{g
      zK6r@tYo7P(o8FIl-j&q1==}}^)@EBjH$<UqMnMDUS(x&oXisfmsgQnva9k^->-C7s
      zE-JqeN`6I~@*5%L_lD@&J&Pf<;Wg-PG|Rrx?e~rD58vpF*4_r2HUIRj?&xM-MZ%$c
      z8*%5wq<NvKxJe@tx9CH(BWLDTm0pwd8${FK)KhPlP>#`Fhy^f2XWik5=P-cV?)NRc
      N?Is|D-Hkh7{{UDnnQs69
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a3ae0b5208edaf01405f18c5598b0ff567be965d
      GIT binary patch
      literal 19878
      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
      R(M4D`P|I)YyzfDP{{@6_I5q$P
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AbstractWriter.class b/libjava/classpath/lib/javax/swing/text/AbstractWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05b7e79ba1a4c40b989b9318476918e98739b742
      GIT binary patch
      literal 6829
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AsyncBoxView$ChildLocator.class b/libjava/classpath/lib/javax/swing/text/AsyncBoxView$ChildLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19b477fcde0909f9d2076155bca1418ee7727a59
      GIT binary patch
      literal 4547
      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
      Mn6Df`9)1Mze<IoXEdT%j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AsyncBoxView$ChildState.class b/libjava/classpath/lib/javax/swing/text/AsyncBoxView$ChildState.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34bbdd5fc9f9e0411897490abd5bc9b6e0c1345c
      GIT binary patch
      literal 3896
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AsyncBoxView$FlushTask.class b/libjava/classpath/lib/javax/swing/text/AsyncBoxView$FlushTask.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21bbf808714ffa40757d6d01163a7320dab2ccd1
      GIT binary patch
      literal 1889
      zcwUuM&vR2%6#nkbkC%i84YjpI3Y1bHO=&BFRZ>cYU^Nn2X-m;=oY&;hzLLJ^%X?BB
      zUFhhNjWaC3u`_k5Rn&3XY0LNnDll#wTsY&Fr8_qI2dLjo`h(F<i<7zUp7Y&v&OPUR
      z=jP|XzPknBAYRcR1@?~`ZyMvR#fz3b-0GU+ZtL;lB|CefFg{?J7aO|rUU8(~C|=Ou
      z7l<n3*1SQ}o}p1Q>uLxJRIZ}Eo^2aLc~c<hj#$NpCk1w8*1e&frbjK?a*qkr$2YKT
      z91!rQ3OO?jfz3KJgd*^vLPr=;0bg7hRAemM?DocnOsBt`OJ$~zHSz<7V<~+J^s58~
      z8rQ#awE;}j=XiDmHHc~0Ca_~&M;%XKyTGPl(>+<pdSj;T(j~seb<4-?8g>Zm{%_Qw
      zqU#vhl`s+1Vwa9ORdL8MjU21Hpwg<>u?GzTI`32|qzaz8lwC=OdAv`@e#Ch^X4wTN
      zHA243oPZcqz6l*oI3Tcvz8T|E!E?`erpGqbt(Eda7VXNrMMo>h^=5jfMy!0U&ox{+
      zH^<W(^>@|0J&dPtSi>QK_@nyhcp7a28cVXqyfIeOrJ_8m<A}n;uRG>>({aq4YCyY=
      zqv+tg(Yn`sLm=^ga;rh7j^~uWrlK-{s{DkGlp><$yqXh&p5>T|rE-6Zimc~#bSayN
      zBI~T3CtYMESI7!%UuPURJjN>Z0(;iT_FtnxA7OK)8J|UR$W^KYECHG2w4d7Og+20X
      zXdH;}4fd&*7h!3A1<%QvU6y)TTOW35Q2{x0Y1=lPRNg2SP393^3B);OvRna(XjHvu
      z{yF&|Ra~N*s2!#zxknOB^UxDFuw{mt#8!TTw1K>gO3J#D>Gc?@xC>MxT8<!h(mF!y
      z&%_+`1w5W<x{cba(3^fl?dbyx*jdJRcc^_1d#~c%+6lZ<MjOwm-M4_|?qwnA_qPS6
      zaY*Ua0R;qO!8sgk=DIQgD&0zdCg$gdfEEiT{qF}vb)a_g?_ZSHtI5C}wKvZrsrHzE
      z9>-#VyVJA{++8f+e0&;vliE_w$xtj*%DN&JV%o`YEWCh|F>P_(^BMN?GA1#_>ZdSW
      z+JRaAmOJ<!8GyWoko*W0@?%uV32c*-sFR<dMNXkjeu_@{8PakZJ@N|-%Ig@GUt&~#
      zg>m^c-X{Km{05ih46evoOi=z@E?`!Ei#ho{Zpt6<le~p{auL7E+xU&xePX{8dqC_D
      zd8fqQTjY-nEwLBEb-aKV$zK)xNaH1DTZa#E3K>eBuy7h3tSyb#&`rrt{0MsZ4PX%U
      zc$rubH|edSgm8aFx<?BYFN_DvQWVtAEKS=!#`meoN;KU-@7j|lORK;1J&S?T)bW+^
      I|KJ?tKQRE(rT_o{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AsyncBoxView.class b/libjava/classpath/lib/javax/swing/text/AsyncBoxView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66149c460f31e748fbfa844feb32bcbd6c5cbd9e
      GIT binary patch
      literal 10236
      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
      V<hx}|mU~ERBgbBj6&(AJ^E=!IWq$ww
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AttributeSet$CharacterAttribute.class b/libjava/classpath/lib/javax/swing/text/AttributeSet$CharacterAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..359fbdc8548ac859af10cad5ca9c28943746712b
      GIT binary patch
      literal 228
      zcwT*tF$%&!5Jmq)&6;ST_IB2;9zg<vl|@dl34<nt2)h%_*(^MOhZ3_2A_z_~1AqSe
      z|Ngk%0IV@m2negvoK36UrKk^DxD~w-u|?Jhr!0%)XspSF?MGGU6DFS0mFbv$R&p+c
      zI6XBs=WS6jVfr1i^k%|%SJ!Nl$~ebPAtKEGb`xg5?ID5C!+Qb@UOR;9ZVdk$A`YV`
      DlGQ(c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AttributeSet$ColorAttribute.class b/libjava/classpath/lib/javax/swing/text/AttributeSet$ColorAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7a7966af5b95dcc0cb89c544f63241bba82afbc1
      GIT binary patch
      literal 220
      zcwRg8Z`VEs1_nb0ZgvJHMh2a%#InQ+{o?Y>ymbAN)QS>)$C8qw%%swi)Zo+-73ch%
      z{35srI|B<Ng8)c}eoi7#y?;_xYH|r916Oc<X;E^jTV_rwBZDBa0eT?Cj0`-Ud3mWt
      z&N+$2#i_;Y44jM%vUu%fWZ*-!nT?Twk%5^30+<+B!6X|4JCNpL0LgJMaItX$01G!f
      AS^xk5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AttributeSet$FontAttribute.class b/libjava/classpath/lib/javax/swing/text/AttributeSet$FontAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce4337de20f6221909823ead6038781453fac67d
      GIT binary patch
      literal 218
      zcwRg8Z`VEs1_nb0ZgvJHMh5My#InQ+{o?Y>ymbAN)QS>)$C8qw%%swi)Zo+-6}SAn
      z61V_60}CUA07!#=P9jjbe^ORzatR{?S8#r5QF5wVW=<+2gCMegJ&<BX1|HA6ywoD+
      yoW$bd)M9o9PDTb<yw)-@@S<4E#>l|Pz{~&vObo1Gl8u2KNOLiO<Tx0(*f;@cSv!aT
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AttributeSet$ParagraphAttribute.class b/libjava/classpath/lib/javax/swing/text/AttributeSet$ParagraphAttribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c982606cfad78f74f46ff872d967bddcd611388
      GIT binary patch
      literal 228
      zcwRg8Z`VEs1_nb0ZgvJHMh1hd#InQ+{o?Y>ymbAN)QS>)$C8qw%%swi)Zo+-m4L*e
      z#Pp)Xf(*DQI|B<Ng8)dEeoi7#kAG5DYH|r916Oc<X;E^jTV_rwBZDBaA$lOij0`-U
      zd3mWt&N+$2#i_;Y44jM%vUu%gWDvr%osE%!k%5^30+<+B!6X|4JCNpL0LgJMaItX$
      E0Go$DkN^Mx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/AttributeSet.class b/libjava/classpath/lib/javax/swing/text/AttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7fd29c4396c55b6ddb3669df369013fb4f800458
      GIT binary patch
      literal 1219
      zcwU86QBM;=5dIcwkJh$O6txN>6`=*>K!q0xiK&o~5H!~CV0_s-*0SWfhj)7jKTCM?
      z!5`p{GR`iIIk-aalKXCE=bQa*X6OF={q-BbD%KqgF-#rt6MpK(KcwooTAXV4oz{``
      z5-r+7JIFDNnGiSN6!5`2624|A@A0nqAILDidp+hY@ji(-3{KK<BO87omDHOI!;R)X
      zL#`DbhyqHeI4CnrXVkRySs+@WiZxd{F5wRH1u#?$r&@w@X;v9Vccl`0N!Jt6XYK`7
      zROs_ypGVTzJ!jPqmF7~#DOK~0to*E}`Grzu*fB%>l73?mEwkc>$7gBQOrtq~#!%`A
      zozgkiM`yEN<*R94D@>HO_1?L*Vwy-wYCR=xqGjN2siZ3+u4SkwQ=u(8it8kz?I&-F
      z+gR8%?WWYdj(_BlFnbnc{9b&cz8o-2^b=2oab&#pJ>daEu^lFnFSe!aQ@Rw(hDqhv
      zQA$LufXA_j9V{}e+*-le)*+9$uSJwTs#&LlWrn2zslp&kr>R_ZI9O#^ygkJ>ot;#M
      z@)g^`n}MH0W#yfSA0MVaC+o~JnuuYV@gdaAywF?C3<_ZpBXpaIDU!8DXs+@(?p|Q@
      z9Ag(4|7nT$=vlEzz7o-+VOz(2yJG$b6L?_pAs$(*;jzUhn6x;BrxvI2jJBAuygJ#>
      pdvUXPVR6pzX>Hy<8)y>Nk;4M9mT0hF61s#dgs%u+6Rzb8{{S&NOtb(1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/BadLocationException.class b/libjava/classpath/lib/javax/swing/text/BadLocationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..98da09d6c384f1783e1f4a1515fe66bc694d7ede
      GIT binary patch
      literal 606
      zcwUW>O)mpc6o%icU$j#n^;t?-h_(_F>xx8+q%x6EW`DJ}jEos(?$DK`m8G9yBOwwC
      z3$gMS{1Gd0?zE|eE^N-6_nvp2bI!dV-!HEKRxy`AAH(7)zvM05zp|WTU5b{}%e-N@
      zbuKN}*=p6rxk?g<GK?y#ZgVnr3k<`)@GNed!t+TVRyP^g4nw-)I=<wNG`Ss!*xlFd
      z_08w|8$;Y}Hhm$<RVA@zIhI^!n8+Ky^qTZ&no_l3GDItGLnINwum%ky4C6hV1#<v2
      zpN1q-3`2(Hh~41qNO%YQ$QBG4wUBLc8kBVBFe*<hpJB=P*A0{yBEIw#>rZ=X*<Na2
      zTm-_GqCw_-f%Z$*+`y}gZA&%G_TsK68Ww2$2)#-lrV&G&R3cRU6lte0XS9Es;vlI#
      z(#oGIE<a<an0rFzAvBFq91Kev1S-?d6^xUbZ`(0}Ng&LokR_PPR0D;d#!LsV(^u7E
      Y#YbfByWn_uXoNtmZRh|Qa-nPX2iE<BrvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/BoxView.class b/libjava/classpath/lib/javax/swing/text/BoxView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7a80c961517cf1cebd067501749651be75d0e553
      GIT binary patch
      literal 13114
      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
      KZj`;%uKxwYGrs=-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Caret.class b/libjava/classpath/lib/javax/swing/text/Caret.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff6076d15c890a2d58fac19e432bfc0906600dad
      GIT binary patch
      literal 674
      zcwTK$%T59@6uniL5k%$f`;}-iY@E1uCq{$8NW`#USB3@(!wi{L;M-jI0e+P6&ZQxM
      zcF}Vm=boOn-#?#U0B{SJHf%5`5BP-7Ts4(J&(&h4-71fSwjseF8~0qFW9PLq5T0g`
      z<K1qxj}=juN{c{546dE}vWS?70995<ca;`{VkAc4M68e7GEkcPK7*@OA#(Hlj(as6
      zjl%$CNhj46i;+xE=zCuV!#A!4gH5MW!=hR#CY)M4W+C+<#5-8Z1a@p^9%1i=M?(fB
      zih9zcXJ~{<Y8eI$@=k@!xqPbKMkvt>lGXp@g0s$z4dkV23Ll>lIW4JV$DccH;{Xc%
      z?IoNx-B+qbDUHNMk{ol?#y?y-?kVEqzVsBGm~Mt2ktZG{jgrZmm}xP<lObL?{O2TC
      z5dXJra0^m|X@lF4A>4so!ab8`O`bEDH}wJ(2}@8W+=m0gLpUNlHu;IkPvH!mFgVA3
      H11^36`!l3(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ChangedCharSetException.class b/libjava/classpath/lib/javax/swing/text/ChangedCharSetException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..057a68728149ad8830317ce7cf153a3495a543bd
      GIT binary patch
      literal 796
      zcwUWCO>fgc5Pg$R8r&whA(RrJw15&LVIgrq0&xjJ3N>(W38ELYaaZYrYZrS1DF=Q7
      z{{s#nQ6X{Q!i^t=7;i!qAV?fMGrRNN+j%2@|MBH3fNQv1Mvl;WCSHoMo4!)f(A9FR
      z-OjFvhH{5f;!E8f2XbGlI4Yw+SkBO{irwDBnMR3F|JCqiqC}`(i$N#}wbUH@GD#Wv
      zsCS1z_XvxfI7+pMbYFxcS$y;M#yfreTbCPqPlL(3{=N(dwr6xhp2+oe!ZY3^SVy2u
      zdBB3(gwib)DSeyJX#LIDZubd=PP`*4$fItdhLePRtKDA!;gkgni&=Hr!V;>4s;46P
      zV6-=o$=1Y%?ZpAR5bTA|)60V1RVl&o{&#~s`tje~Rc3804W;hPcI&P7JomNd@}T=-
      zB*JuxHdc5C6+a#&fxN4-;hO)L;cBLc3+y(}Uy<V~$~eaL0{;{_RA6W8;M&fX!8ya#
      zaDt=FrzecbbFMm{vFuzqM8jzwV&$VDuNqo`V~^t|OL{DFA7}VxZ9+p6X8}{4<7dcJ
      y=lRQVy=Df>o^d&6y`u98jSolSC3E@M2wD@sRFJTajXC6%_kWNFbIBJC>e5em#;7>}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ComponentView$1.class b/libjava/classpath/lib/javax/swing/text/ComponentView$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..33102d9ab4d384f3cfadf19cce4d5b354098728b
      GIT binary patch
      literal 1200
      zcwU85Sx*yD6#fpaOgjv=AfmF#(rOo=R9q=yv}!^uXi%HT+jM%RgY8T+GZlV>4<>HG
      z2e%iWNwg+DxV-q_FYwnG&n*ShfSAd&=YIDr-*?WLpT9qU0g%Qe1#N`kRsEs9o^sbr
      zYbE80buX2*D^=SPmX|lhS|qK&PY6q|R9R=An}t<jcnaDH-G9-gnq}#QvLLj3CDV;e
      zapv6qsWa?5Yg(o^M;MF!&pDna__KCV1VQN3pdg^ahmeLK!USJTI)rkjB^GOyf^hC^
      zvFXm)hF;F=jw#Pg&@U+xM*mYYl4goNr)H@*f@2Df5{CAV(9nl|LdS~muG&Ve!Z2Yl
      z7T;ZH`#PgwkTA0A{&K<f9NpMSqhbKZH4ICw0Y~UX*7ZR08r3i+!A@6rw{(YH=PT8+
      zyoqW!fs+J{*<@|Y)44Yep|?pVrLRf$O*|tb;u;c261u96xGy-DA+jZ&t|$@)_Lxv(
      zFw4vFyow2=6ijZfL`!N7Q<9+Kh$^2ON=|8*mY6D)+_lQAg*#oe4MP7uz2eE0Y?oWw
      zvzG!+ciXNxhPZAvCf_odNg2Ssn77z9Th?7y@CJmgSw`7*xzd90N_J7hMesHTcX~<a
      z`<L!`o^>&6eh+}cVY!j~UA6HWgvw|KTj%*K5jBzg2rcmm2R9o&T@q{Da5OzaH(MIp
      z5<P^T27VafW|m*@^8+j=K0vFZH<$d5feon1Zy2a!XbT<L`im@#|3FmQ<oDMR8?R&h
      zJ$e>fLedjoThE(ZDS#P%w%N@g#3UXgKu-{&r|6|;ys6I-r5A|P2BzsHX6O|%^cq*_
      z4d&@BZm_+?_C0#nP&CZlVb)DW0W9G(&TyqDYdec`T*=2Bk`*sBD$B0P9)P1W{OjkP
      Goc#kv_9ATn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ComponentView$Interceptor.class b/libjava/classpath/lib/javax/swing/text/ComponentView$Interceptor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..809e777101be695326ddae484506ffecfc8f09b3
      GIT binary patch
      literal 2577
      zcwU86U2_yg6g|D!WRs;60wgGgkBF$t28alP8bnDDUD+U-up~h~CcDk<V0Jd_Oh^K#
      zRaS|<>7)8!l|E{fr6pOaEalBFwERhy=k^Z!k=npi&2&%S?sLz*=ia{e-_Lge?8gT&
      zL==)&oNLa~u)pYf`QgAU1;b;d;(W<7UXXFk;;xhzm~z(42c>chQH71Nf7n@+eO}<W
      zo+&G|6<trEFI}@8cZ<gJ-I6z=5S=fZ%d*E=Qs{8z+`KoXpibQXndT%Yxc;tZ6b91|
      zrbD=nBd+HLM->hy9=18%z%^VS*_|Pyu~N=-fx&2KbjQ(#K8+sqlVxIeCQi#E8joU&
      zLYHrXw6k1V2oweqb-?P{xZ^o_Qy!_F8PM2@ZNzYLIVLvI(tWE%IlMz-PzY?wI@yA$
      z*(TiU##dOMW};6m6lYC&(wUtzq@FHiow<xtcI7`@j7lCA_B<ppjiNH6D%+%8otHw~
      z^{!E*oD&$y(r%5X(Jyp|H1=RG^OHBhX{XHH3Y!y6(S_B)=!UUB2CBRL!L&4<#Q}v4
      zQZI&(Su<8}yu4vDx3<vQN<1?of_COg_eF}8jbCu)nT%K>#Yd!R!}A)?;gAr2QDX#0
      z=!L{<-p5J{5&*?d$)2McFXI&j-MEJ}kw~o}-zbj9FxK20p;hBmu+(F$BhgZ!Jt3r+
      zb#{YF@m=P-$hScK{6c9__@2^8OQJ_{TH`IeO(h7BaecR{bHaulEx0+W%NdOcDV`n@
      z9%p+L7m8J9O_J1`Qi7b;n2|HxMQ3@|WI~mtE8fv)M~6bMXlu17o1EZ@@uEgdjMkO2
      zbl;VjW;Hs+)J@Yd>1?_SrfgbIi2brg7vihz(_(Qo)*&ve-qn~xk@<3cOUa&|5lcy9
      zUify_3vv`?jSSApjEO#9on6zoRGlqpWRa8Eb&Wg-7N00Bu<%c~wuPFiZ=d9enx{M#
      z?bw{-`_g#p8d`-7N;<qdJNUNSFC-au><mXnXvcLj_V&vC!asR?u%738IXjPt#o3Y^
      zTET|o9c)Uf3N|PARPfkY{%-$~#t0tgcQYM<F}AY`x+roFCeep8*lBGM0l^d4WnFH;
      zlX!}2N}4oul}3~^?j>v@SwZr5bSH0PgNjBg*jM+nk^6uP{9YvWOFZvbAG&%v^r3LD
      zhJ1jd*xH*3$1SM>f!qdw_8I`&Fa-FJs}kH`a$xJW{^%VXCchWHLQk@-f|s~b!Le4!
      zm}erc5}}L%_}GEK`Z-v|swHC(ui<s;dk`tkB6ju$XKi+Nk~2w7x)#t$n>wJMPRFZM
      zw538KZ?4YN4SsJjQ}0oY_ZtH3uLU~M5_qx^xUB{7NBrI*@W%xHq$My5J_J4-O3+2%
      zDXMzz2Q<s@DZxH#0O_iMoL>{<!fKGu3GzitkV|WVIIBUvCdfA}LD->dfSB)BfqYAl
      z?^=T7*90l72Kk8~w_AWj<T?yNj)owbYF+sfF%Di`s2*EFzp(XxrBHVpuyhS;u!ePu
      zf8zI0Rr&o^`E+uqf~zYyC!@cD3o<UOz>#rr1xCi@6%^`Tck+q>exuhvc%A%7{J*db
      p_t^7)V=w+;WBuE3D;x@$bR%JJ1;y1H7V9Q!R&pT`4zqS6{{z%C+}HpB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ComponentView.class b/libjava/classpath/lib/javax/swing/text/ComponentView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..734e7cb7eb966c3c944efb9631a077a16ab26aab
      GIT binary patch
      literal 4965
      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
      V!yoY{$Ry2Eck7?|JgIDy{tv``o?`$2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/CompositeView.class b/libjava/classpath/lib/javax/swing/text/CompositeView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f503c75dbf72df597e21d0b6cad14db85d1ee37
      GIT binary patch
      literal 8179
      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
      E0jMwbTL1t6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DateFormatter.class b/libjava/classpath/lib/javax/swing/text/DateFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c457e2c9ed844d7838e297f7f71aa0d88fab4554
      GIT binary patch
      literal 761
      zcwT*x%Q6E&6o&sJF_AIEHSYIYM3J(wK{in-A!Q@7V$q^8DrTx?I(QY2VI#`I19&1U
      z<@97K;=1Y6efmG&`A_%j`|}Hcbu7lvMwq-3H{vei-`dVaM#(#s*%3<SUGG{bCA}D;
      zgry&vg2Q)?P`2xcYEw+;@ug>rYFT<dUmX>82((A&%DIlOgrmx$T9fVjx#Rf#+v*9y
      z*s>j4WeJhga+wg#xo6TuH+o`75C(ML@1`vDqK}ZckV+>D0k|Rw!>Q%sZv~qs7-hl4
      zAYml+yGD0U6m3Ty)UHpZR}!aHM)nom3Qr?=CO(JBsJgU$!gTTfm*ch(jOn(W+Q5W`
      zNo^qROV!Zu^ylFw`IqqsW_8^hVX)PBi)r)Ft$7uhw*$Xl9IWXA%y9Dve>h<j?JzjT
      z_|%3D&XRV=tHqfO&Jo9s^b@-3=zj=QNnTBkz&6)qF~mEop~Emn0xmyn$jGx&Yt3{W
      zqv@4LjDJ$P0~fo9qJTK|0#dS}4oP}9g=uDyeyfm~4VgxIrH+~Jt`2#oQVYvyvWzBc
      IKB!sv0HoKQvj6}9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultCaret$BlinkTimerListener.class b/libjava/classpath/lib/javax/swing/text/DefaultCaret$BlinkTimerListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ef5ff13f9c9977ff5c713726b102e4f19457cd4
      GIT binary patch
      literal 1007
      zcwUuL!EVz)5PciFapRiC4G<`8X((w)oPrDD210@W5>ix<h;rbzNw;N-V}rd(djtu@
      zH}ng7Mrx?Ufe+xL5VMXENG+*2?0RSXX5O3U^^c$5z5}?8bqhI$ja@$E`+l+~!yR9V
      zedRwE+k6nHCXa=xJ_=;`rY-v-ZplQ6P{bBY23J@40jHYh-CfaB7V->BX_oIPUkpX4
      z{D(ayqwsejLs9O8Q7krz<%tF`uvZLu^;#y?4Tj~`L@oCSdS8Z8Jz!X=oq?@)7|dq0
      zB?=&32L;$R49q#0L5abrX+W_hL$NvNcSYRh-9RvuT2YS&9Ue;^XGv2FWVkb#@)WB`
      zagnDUyb$qr6!*mzO*xi+!lu*_(yawwabRJ(fJI!ju#_45Pi6<pm}ansGLa<Mrm|}e
      zR`i@!EZ%adot_e7#}_BDGqle#_Ww<&cWfHzhIZazuwO=lxF?=U?d;s&wYPL<2IpBw
      zRn34Wi6GZYCp)4-{R~=D$k9zErvTU0pO_+pazsRL&rx)jB8{=V#t5_CG2AZ{<#3+%
      zJYj$k7if3VvyF==)05#6E@vIyWgTvMN0>jrjAx86e~1c&vw9t2;Q*F#2-6&4L1(_A
      z@`t2MB7yfL@&k(ah*f;TIzFeQ<#FSTRG+S+3g&_aSk36y2xDlmUgH>Rr;E>}tCsF{
      Oc<CVYYtc1mAomL&BJcD7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultCaret$Bypass.class b/libjava/classpath/lib/javax/swing/text/DefaultCaret$Bypass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bea4c5c1007fd359e31a5b97bd6fe6f7e62a51fe
      GIT binary patch
      literal 960
      zcwUWC*-qO)6g}fCCax)ADQhVyHQ<2Mv=VQiJ`jXtH9|;5NW6e1$uu40*vOs)_^VcG
      zi_`}`fRCzr$2Kh@B2<=V?%X-&+-+`u|GEM29#s<tgLB6F{IV8b$e>eG;!@Ri#b@60
      zRh>sdIXhS9JdRD|8Qu;c_jzA-xRPP8Cw(O%C*4vGLs5N^vGa~$sWCLj7D2aVAk_zk
      zW%mhe^@t%~58I*yhG#YkC|by2)P{-Y3^`W=#u_pZ`@L>cM2EcT3x<hC*y8>XkEA|l
      z&b&^LVRd-OtOu0kNJpeDhIzL-$hxb>?1p`@8xqWMy+PPP7)#wWXGijw3bHVZc@uLC
      zi$fE!v4EFUbf)fg&wZ-F^>oF#whqTUax_Vmq4HE*YI-ab>FDrpY&crmN?ob6^(pK{
      zEkQ%2UX9<+BzX!9wig5<s{7O(q34}83Kg16j-D7Rm-Tqa%F}ORg#0D4Het{QSnC@<
      zXt{>{jZOx}Xe|;3I7FFNJFzW{V?wK85>uH%jdp!kSpN>|>jU!fJ#yhM`30sk@<&4J
      z^h%n%@DnrtqFYH`CzR=FB2r0#nTWO)@hTB6VTo=HvR^+cy!=qOMZ)d>6gIGuuvf8`
      K@O8nnaDhMM^2n3`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultCaret$DocumentHandler.class b/libjava/classpath/lib/javax/swing/text/DefaultCaret$DocumentHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..32bfbc44c473efe52a4d183b48e65082fc9c13b8
      GIT binary patch
      literal 1602
      zcwUuLTTc@~6#k|y)V7N)pr{CPtI(E95yTr8(N<!U#!I+77#>{OkuE8_&F&QO2l(!*
      z_~465G`^T1HzP)kFa8dHhw;pIsn8(Ahn<--=X~G!&e=0Re{b&qxPYV=E{5I(bxB>0
      zTaPt;J}&sOh$s0YwU`$P)#M_aG&03Su8Z5Mp3QU93lBp`LgIOq0C(pWct&_p&CtG=
      zh%XT)z6(xkmf$)!8LCB2v%>uhE$Kt^4pZoerfXu1h$BbDMrRm22_wsWV5m{x#W6qJ
      z2rBR)#Ndv|fM8nF`JLk895<)bxjbj6OB)$AKckwOw4F<j6vz-iJY{8DNN!CgM-AcG
      z=|WZ&L=@hydVfQ1Nz2w<Wjh$!j*MndG~ME+C}r^BESkM&VrV{8s)BQ9p>7t8yq0;w
      zz*2s+p~H)IhQ__fNx4o7Ew2fUTMEKB&u~(+?CeR+DySlpo64D7&DuSE;3oxL3L=OS
      z{X7>*L)eZ~0Nv>IqKE$S5k)EJlV~5I(_EhyImy|t&~OeAr{!>ZA}QG_cUBsT$rp_!
      zUTT8ObV<QwTww^<5=!LMlt}b|U+B1p1Gpv?QcutPGl*nmjZ8@v!~LU%@IMD8I^(Bd
      zy)H-8&)}alie`pSXmSK=_X7JQEmfV;>HQ?~s%3E+&tL@|T8Yd}Ulmv=Bp(31@G7_@
      zJKYAzx=5Cbc7Lq<Bb3+%j(;G_g<4vxDF%3kI$9O`>_<IL&`uM828UtDj;Fgy;0qhr
      zP;xpzc{+vDv{H}D6i-Q{oA$xj8k99OR=q_1CR(2(>|Cs%QJ&V(IV$(2?k&U^9<C$)
      zH)$iK1zr>38?skvV&0+y?=XP(wvg6Rin5SFM@R>PbZ#LQM%~zz^vjV{sFc)ImehQJ
      zq%28V#i$eGDS=kdQwFtD+z`VSuCh`X5j4F*z~<Oj&j9rtSSK|bWN%VE+obgq_4_l%
      zv4aVG!99G%EWTkL-(lc~U1tm)sk>Zfp<HL3Q|B!CM&v03nuJlO;!g6&imPMY8yGuy
      V3S9O#Zm&0R6R_uqk+uX}e*m^MZ?FIW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultCaret$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/text/DefaultCaret$PropertyChangeHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..11497e74b4e913868becdb0895568024febfd86d
      GIT binary patch
      literal 1916
      zcwU`UOK%fb6#lL~WSq%ua7-E+DDMEa<KO^E3o-P8Nq8BDHfd;6Ue}&W7&M+q$Kxbj
      z_Ahjobt{E!B?xL4RaY$7@B<J61PFnuBJl$d=gv4JA#PH2ao^v0ednBe_st)F0@#nT
      zjtIlS>tagGWUJGbGm-V>jGsL&uZo)O=Y=Qzu5+F{DLwzk{59cB$dke`ZRzRI7~)DW
      zYtwahxO82XeH~2<JA&Ji6izj}T()3Ued$P#p~=5yRl9l_wiQ-2o+IcH%dz~=7<MMt
      zz^29+w7hG|W-xrfp(AD>iuD}Lh%-c!3b4LlIkH%*l%zK*O15N36x_0~$Ao98bNy0N
      z4l?wwZn7~q<aF!gvImA;q4N!C8Jv=i^4`El*rcPAVe9Hxj?MU(LYa{M!fR1f$Vz)M
      zRanf)i0_ftxfr%G#7wtbtB|aL?bxYf$Fl5&NRD0TBEsblHDOcmA10S53lp46jVmwr
      zaO_2rp@lpcw#_kN*H&1s3+PBQbgpEv?oKl@*r%h1Vauvab7Vo~5?=^ov6Q-&rAR7%
      z-f3Sz<yw%!0gi*{W9aZ?#hsGxV;J@(|BI?HPoHpny1+nDP6rGqBZoN#l#va>G~XAE
      z;Rq!{nwGC>Ob69;+ah1bT-T<A8#szDIKIR&23`v9>ikjxk1M{8a|~jLN?fs&cPo>w
      zLsqEqRu=2&(WQ`_fs;6`;}rGX8c>ci%7bRBI_M~GO=b8jM-jtRA)@SCQ{)jFkKro@
      zU4|H?euQIGNg5<skCbpUwy)Iy)O1cz#fg<QOg3Fx5z4T+K}*(&Rxn3S2e9*N{TBbL
      zvsLmLE~y{IpcqHonpc)XmWr`$srWvnoDz7-p}gm9QLReVPz{w*LsD*OtOJY3)vrZ=
      za}*I}gKk^s)JLZXtwy^07I^wLT7RQc1Z^}o5eB%21kF6y8`yw$TFD?fLJe$y(Cg^#
      zM)y26p3Nk-%wyXua&+4L7gEKZJBatBZ-U=M_wU#r0X_87!+_SQ-9fEWd-rxIf;pI(
      zL@rQ}QTHMC=sZ53MSBR$&*Q`_bZrh=^cD(pIFL!43nWtiF7fpeiN*Mag84pq{{XFc
      zND)24COoDO=m~o96#aNcnCBSA3tYiVc(l&oZ~TOR@H1ZFS6b)rI^d@-<e<)v+I@qu
      zfcal=9^aD14$}D@#)<!4+J8?wEe^`Wg?c9T5GJZvPj}zO#l~5P1mkirUx5fRLOnnY
      HR6^t}n$-O{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultCaret.class b/libjava/classpath/lib/javax/swing/text/DefaultCaret.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89e12fde404aa31e8cea2b0658015bc2333a6a73
      GIT binary patch
      literal 14143
      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
      Zqu>m7;CJ|1!$p>lueE%g%-2Ow{|8~FQQH6j
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03db2322a64fd5f43e1ed52a976cf71769274806
      GIT binary patch
      literal 750
      zcwUuJO-~d-5PdZ)%&?4r%crs`AcqA53&w;4hC~*LtBWClaPOV%)rQ$=)6)xtgC6t`
      zc`|U|2k@f|)w6Q}G{#A$yQ=%WSM{o|e_vh!Si^H49%1!JoQSh(da9C7RV&YIbz8PY
      zH@0tE%4+jL*@Z0;9iIx*dJ|ct6CVY_t9z^iUV4CqciO0Pomdg?>J!<KNq#{Xc&!p;
      zHwk@}#X~}&rdu+=AYnKXM%v|OUa5#a429@NNSLfNT(N2_xYWKiTydlB*dq;<$dBDl
      zQ<?+Oj3uGe(2<A_g;6fg4-59QN(nC;|7&!EFeb8SPnxzi9oedPzQlxb<-S(U_3!!`
      z!Z;><OmO3W28EcyG>;;cc3WHSuadc;h%o&(T}J74n_W<yP~6vD6UiOr+)dmyvEn2M
      zVLeHtsl_5qW$I&&F!xXY{0z4zfLZWU!F?Y8{TSff=V+ZziTA;!QZVZOLh)w?dBAJY
      zLA|dCyl)uhJnR86f>GWJc!*Li@}7}SJa|#Qz?g@-8sFi2KQfKk9xm5#(IY(0bOX$w
      U%xDi!GWJtE%lJGgX3ZnG0eZx>Y5)KL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efb137b75f88029724f69ca3ff874b7af50c92af
      GIT binary patch
      literal 716
      zcwUu}O;6iE5Qg8$mx*x;gd{+d7SeJ^Din(Yr&L9JRjRO1TOuxS*(3`rb!=pBAb*QX
      zi#YTL^hZ^lbu22S5>;(!KD_Tdvorqr>){80O}w#?A#7ZU8!>j{TNPZmT8_25FVDru
      z*9QZo!{|`y^<62iclug|frT8Q_E$xh%|t*byi<YF?+Mvv>x7Wo3kPxrMUHxmv602B
      zgFGBUrRf=x>kH-_>xgk3Q!?kNKpu^TJsEXH&zFRf7xsmJA|hq-^kYt6s+iFB{%3#=
      z<3$pElF@k>4dsBanqEZQYFFOKK)Vz1fr<G_Hp-}4s1W8Kb=@%Zzbfru3Co0q3#rqt
      z=>ehKY<bi2jzPU}P(*={PkIsRPjx5Q$KfdI%MZ#7U74P(ZE6Y5#~_f=o-g89#ugfc
      z#y{7>=s$}=1N_Tio(xBM6xdpvZ6!Hiy)Dgrhkcg_p0TyrBl{VJ>=!)e+?mKQhk5qA
      v6O>ZKHv5b@yT{@;tV|<L8F7{%suNj?Fi{Qlr1)i0^9rj;74f@<*C_r5!9J@Y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b428801dafbe1da1f79a665fd1ce9b3ee61dd0b0
      GIT binary patch
      literal 1248
      zcwUuM+fvg|6kVq&O)b%4fl?>}m0Ma`;{8^Hk%BX5VHjcRb4U;MIBmkDhs$sH6+ZJ)
      z2OoU&!H;s>C#fS+gfTNYmz=fNUi+*)`SJ7XHvspsq9ejk`e+~7CszAdxD8A46KSpS
      zefzK}*Xu%h{#zkuR(V6XuN)~nS4Wf~+Y_=&LkM7qEeTi1Wd_a6*BGJ|ug>GR!O-v6
      zK9{9E#g>4Eegl0l7>3QNBD9(|(d|f|Sj#FhSrsndI&AH6f7jk?a)wmZbL?i#_J!Ja
      zKSt#T(Ppr!|5Zqt`0Ze|&Ha7PZ}B?AWLJrOEG>S-U1^2jb+sl<2`~&97)F|5puwdo
      zyW+JDJeSTHR;~{375L^af^q^GjOiF9A=f|+WHHVVCk+*KsSIQ0CH%ozxgQgl(lN=9
      zz8qm7hr484o69wixT5BUsx^Zd1GAVT=UU`pbJwd0e#|gJ$A1ca#~n$=H95&QQP7bm
      zpL$OXETBkCq*$34wo1x8N3`t;Hx#>Qz`{Lh3=*_yH-r<Y-1gcc3>!2rM&)Zd9x%-I
      z)VFHaf2UhNari+<&=<JFFn*O^42&STYh5Fp!;tyc?K32HyhGpNuZ8N?;fqbVsNxum
      z4cFy<rD?a@yshIUWxlqb={nDKG^VIKHK->-Zy#c`*J<^b_Kaq|kcxjn;xqu<q%om@
      z+8|=u5N^@l2w_NKfM$l<NOdVb5pk5}d|{!3!Oh}#<cb}PY?ZV#+=-x6)H;~%VEzoH
      z2tFhF{*(gKn87^#XToF?ib%^)vQZ?oERxzd(%K~EwH!=sE)Y-%lXL~B)k8cYrWmHF
      diYLUB#3-KP8Oe#@c~Hm;l!H>p1}tG2@n0-NKZyVU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0d6cf1e1e7857928e15e3902898a17872b9af40
      GIT binary patch
      literal 1442
      zcwUuLTT|0e5dKb*HYG&CB2X^nqJRYom74-Z5K7T<aTq{+4&hMagoH^Clpo}b&&)U|
      zKKST^zegYR0o^op)E4QOnUiz&?C!VU?%Dl(`QamgF|4VO7{*>1C&p>2P_&$UO7K&W
      zTIL7Fu`ROumT<i_OY|-AyydK04qr5d<vJ=9hK?$?9r^_Z4B<J;vBW%soEY3?P%`d5
      zkD!jB(KI|RM)rKf5t|@2$f(y5g3i#KSocv=wn3QN!XxOk@800Yes+Ag$Gsh6&*lu#
      zb=NfPUBk0{xqPXJmsWvcV*S4}N>dD@blT+Jf$JUeeTMEb8>1*v{DeCq6&PpzGx5^E
      za9c++S}3hN7k>U3_wdMdNYAivy?Zsu)xQAJ8e(Wy(MCjSnCj?2XTTxjS9jAbSiv(;
      z^>Z4!(4(T8p}h*{xv*?9<pmwRxWiCS5L<3>TNoZ?(4VMDGUwyR(5Isx0}PR06ew8Y
      ziWEz_bUhLnQZdNTa<zqyVI--E3S2C^gry{Mez{{9)sez|;(18@Wbe4U7B4cilKOY8
      zx40>&e{4<_9LJ=J32K*Wt&S-?2r~A2DX3R8@dwbRYdHbgX&p0|rT!#B8%EwTE6UuI
      zsPr1#RWU~utjcf6*#8wSdusBd03cLq5Qfg{T84p<NpH<Jp?bLo2Q&yQN6Tc0{p%qZ
      zv~Bm;Gx>_;&rfsZn2h><40_ISxR<ewLV*`l5NdDD38R6km@)LwyvXoBiB<?<l2tlQ
      zk<4gUhoX^p(9TK*H|VeVhSC>=rLVY2vL2YB0gbdX+(NVr@s@x?w9gI=pQC9b`3d96
      z<T+a3BR(IOUZanMyR%B062HJb32jO;evXlIj9uWNgf~!LoDq^nRHl(GM;|~PMgK<8
      zzeAHQ(IovqOlIhkB@D<irsXhZ<oXh`$sl@}nSXkOc|r`6W&w{0v55v`5lh6g3$4gt
      W84BHIOS!J#Nhw=;Ej-04B0m9Wpm@~)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..64bd8d6ad4a401db829e6155b1e420a2cbbdb72e
      GIT binary patch
      literal 1434
      zcwUuLTTc^F5dKctvbC&&tw75~E`k<lDF}F>2tp}ZD251@=cPTZYqq;&d!YOyAAI7a
      ziitcKV$j3~|BrEYw?u7`#!b#`&o|$EGiT=f=f_h3)7X&VVVHiS9;!$2az!(Walwy7
      ze3ci}16`!@nlP;mO^mGYqGs%xR(?4rG}DkFG4wW=?a<@`7+M!JLlcV(Es?P-gOoJ$
      z+=pun9XZwFBDQBU#wtYVM+@2%c%d+KMlv>QTvv&6TUbP$u+7^un!#Tjl=ir_qweXP
      zA&@b1s-9IX%|6$DO5(LvW|+zRcSH&Dp*p)QZWT<c#PbXTH8pBQ#Q7mNMBD|Z>^<r7
      zgW;BfPIOUNMK0|4lV)k(H0YjT>1y*vk?VgEB>V`WM@E>0G=VDUMW3r7X=iuKENkvF
      zQ1;V)+{U1c0fwFio>xNC3Cha~hA_;a5QUwUZJ}Be!f2$a%Czkugb@X!xXa+X&_LcI
      zm&EAYCE5_dxQsD|uFDY$CJ?16Ds!=F5|<Q7+xZS*Qb8P33~ePUD1FDwYP`bGP1nDZ
      z{gUSd6_Cy;h4(QlV}|Ob@m9ec9uN~Lwu{M4SRnET(Uz$huGmKk9%G&glmu<6MJ-pC
      z=U}AXYAh>bfil<---?>QaF;sD@qL%T>r@Cs-&Hlkzz8zb^i3#VW}!fxz|u5w455EL
      z1cQIuJg{<nO|u)Qv%XIzZ96K9v|(^7sjKBOFUug-p{6ZH9aYz47^H@2f&F=Cc+pB{
      znRat@X0*!V0pEN0j~&2un*9#&69G?ggLaAwLpwTXWw?nzjp7{<du^)mi7JAd(KE!N
      z(JHz>pns9pJM&Ul>Oa9f55iKkzlvBD(<gZ7!COeX#}4fjW{{{k9)^$R&*b=wM0`OI
      z=Lq8~HOV(Zea9?*ID%$fr!_(L?g<u&tramW;VH2N(T`=Uki0Ouk;Ez_`kQh>T*EUb
      MNO~kZ$2xq!0C7Kg@&Et;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93e9be5be3c1bed4ecbe908866c44af3d7ab97d4
      GIT binary patch
      literal 864
      zcwUu~PjAye5XIlbiQO2}w1M!ig%Vm&DQPVZoPt0o6bT3wQmaZFH_o;!a=g)c)28sL
      zxD<&4M-F@_#H<skf=Z3BrQI3(&2Qh%?yuk9e*k!l2LVci)+cc!#&LeEvcuTQv5jBK
      z12IbNc3)X--YUD+(ZiD$iB&oaP$n#$tJvdVA|UurRi^ASg17!~pHS}TzMMmqu$VAr
      z)9TG6Rl}YZrXRw?r3e*7gvNT;VdGRVbk`bYw_Sa$t1`JW8uX;u6TMUt>Rp|PbYB?d
      z^6AI2{it%nR`-8)(`LLVqW97qXfu#~!phW$IJU7ol9`Ps;%yhRr4WRx5gNEgSU8l{
      z?Y*N1L!I$|!t;yE&-;7x7oZ*D25tqo$wp>KBP_w^ox8RYD#c=i<%^c*)3L&^X+m?R
      z6GFJFM<$W4l<RQg-$rgZ03mvvWzuv~k>@fGu*T?_XTa#QQ$UkD>cKrFjw<kZ3^;pI
      z<Up`dpZkXJYazJIW5_eS48Er^&v`VFp@s#X`KF;hMSNhTL)SJQo#M*7)=vbjQ(Qko
      x)lp{Dm{BJPz0a8Uz7)v2ld>t&Ma#I&P#;y?!3tNGSmP*7+$$^*zpJ>9>L2qv+%EtC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..80b43cb521e9d23c5bb26ded9c203406a600d49d
      GIT binary patch
      literal 859
      zcwUu}O>fgc5Qg806T2~{DS`0SLJ1U9+6IdQryvjtMFK*F)T$E4jk7I_9B;K=xBVAz
      z<>OCqDG~>c9QaX)StkNPrAFA&?u`A;v+vCQ`1$o4fV;RAph8%EBlg8%oFAxcH@5Q7
      z#*gKWC{nvVR92hk$}aT^`zWzWX922&`C|oJyo?0||GvtUeL(P*Z*LQ-Jw22&s1xRr
      z!gj3gB&pgPXkmsSJe-P9LqupT_Z>A(1v59TVRYA(H~K1*8^vfK&6XIXlF;nyM5Noo
      zD3?z@R_$w*6FU9>=%veaQARJN+0kYshlIt64{=~)xi2#tkHzaQW=A0i=OVOlo*UYg
      z)^*;~qdlGRf5O9)%a7Z8_7|WV;vy~wxWq=LNF&U{=OOb@3AOSp!oo?X^VL{k*fXI$
      z)d(Tn)P+gp6XoXH`ge?X9Doo#%`$0vsmODg2UueC)Egkwf8PPxJWmhqsc=+-&uhTh
      zy)p-amFCPBgr7^nX<kF#;k||Ly~8Z$(O8BC=6ENZL34t5#Y%^6tgIg4?2EPU2-c2p
      z;SZ{bDx=;r>H|XWBWAr%CGy(1Y=U&r0<JLBM;%wO$ki3rI7%DWOH0J>4ctWi7optR
      A#Q*>R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1b14036eb4ea43eaddcb39440588e4e82b4c8a09
      GIT binary patch
      literal 1326
      zcwU`STTc@~6#j<Yc1vBL7V3qIP(^8>rOH((ilsoP6hcDN2lZuX2UyeYlI?PP(cgg&
      z8h?T>nE2o$55DOS&=^sp@x?!2JhR(`KqDmXX6DSyIp>@2d~@FYdGi*)EzByYV;Fs`
      zZD~7+%C>H-C2YQ9C#LzTwpp@gin?uD^Sa$#J(%aax!nz3OciY1G!)1TZ8ga`n%n>e
      z?}TpX_FV=k63sKnX|u?EsAp&>x`=UG;Q1lpoC*(AhEOCcAQL5x0GDlxaFZgpDXSZN
      zakIR_t(>+};tav8S<p&(&C<obdMMlLdWB&u`=3Q6=_butEpcnrw9355&{^fAZQBXH
      z#SJ^*2G58!vGaqWMMVe~7y@hD780b*@`h=UpJDR!^jfO-j{zk8xP(>(mx;(3p(@(Y
      z&fwQ8qD)s2lKz1}xT2y{IP1x22p7p7#x(_38Cw6%PenJbyJfkjbXi$5NR^gIwDze4
      zW{-*pq6{kKESN=oRp(a4A(HW<4{-%C0z8?jqF*F=OWatq*G1q>m3nl5jtc9Vl_DYK
      zNG6&VwG62k7R?f{_(n-9@MT`&)t2)(6)?1)ra58Snnm;&!e`3QpcG8Qc2I-06;okl
      zljL9-8U-3@dVpnf(<<;;T|7YOWasq@43Z~f7~D#iv`U3n6igGBGn@7Z?ReXg>cj)$
      ztD}_%UYZr!4Lf^4=?(f`!~e<&XrS3o7Selor4MMNz3PUc2?4SU=Mk(z98#p0?4#bk
      zeKaq`4v_0Rz*1}<7x$1M)3Jvsa&;}zbYn!0A7C)PkKX5qh2((m$uo3^WDl8+xU`SN
      zh$rL;biG6qnWrz{i&5<05w8Ja0_h|1`h-U5Guovu2up|Pk-lO;`i61oJ5tgQ%t=3y
      zmww@)^xNTo*X3B{FIFQMr3$>r<2J?!J&bYslO$6QhA@FUkTHj5%A6#@>Tu8DkiwLs
      L4m~8&m_hwtp{G%m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a74bf7f45f1fd293c5534bc32f02f6685675ea8
      GIT binary patch
      literal 1595
      zcwU`TS#Q%o5dL=S#3eNZ0_h#@LVAXBl+r*s(g1<91QNm%0@vBLMvh%M?(u7Q;Du*E
      zDim=G5JKVy@q(DOQ&DKzN?7uG#`De0H#;-mf4zPOU>Ic;oMGgVzNjy!YD=a)oASi6
      zmzoeW`hw+UE2ihTH%;&8gs_AsrpT6=)7{I4XF9eDg`sPMZ;6fozz{xf+NL+o(3I>g
      zGbkCSBAT&-p{3#n9JC1>K@(augrG6RlX)31W$6^I=(!X%Ej^=o(-u<;)oJ0D^l3{l
      z#PW`zTV>rfrC$H3cynfrVKo1L6{RVW?n?#X&NyyWR2UA_Dd|gIN-PT7O9kMpl!;sf
      z4Er?1(aNxUR(P`hj8mO=Y_c<4+}eF3(;I&UNJr3)P8A(QWE-f4E_5^OAr3_<&d*Zx
      zbl3B*KPLn2*Kj~$qU$kPyCQ9eG#theY7N;Y9AlyC(@!KDP+T*oThN2!DvmL9Yzoql
      zL@$kkE2_>S^(d6g<$BA~vtPr2WV3@Z=7l}$%}E|Z8d5mH&`f_bx+{o8XCo56jToH7
      zX%(j!S{oxYoWTgCugR(?mXgfLp0#6C!#Rvmy;T}YtK^hTvBc0u=06R)LpMZ|XbEb=
      zd5o*LK!dl@s^KCo1ve+BGMN2Xa$TT;W7+}PD;hGGph+h}llrV__$&)f%?#Z3Cja&7
      zr7gY6(6gbwD|%%uU3S?J^Fe@+KV=NvTg@E<Bgmm`r;kQw-l2_RIg%_v;hDkEzF9XI
      zB1LDxHN;g@u4DY)ts9bl3|h{%g`2VTT20hcl!(c;3rkDZXk~Gb)~^Zj;q-<OCS4`z
      z4C#!%YG17RB_hv!z)m_N63Cw;%wJ#^=~@6o6uaq5`-50L#7_zwrmyJhU%}qVfv>nf
      zu!6R6IueP>h!R&GBSy->L|j?L(Iz}aS3>Hm=wo<-UA`?akvKRO>IfxPG0f2s8c3|*
      z><ZGWxXj5<x%Z5cM(_{@vUQ>(^5idx=qp6{8$|hAwDI@o<{!|{KVp=BLWX}vj(@>z
      z{uKuQh6?}T7d0LbuNNhyYq(As!gzojZcv6OO1OzUmDon-B)tk*Ix&S?bc-AX|H5wL
      Oj(=s;cNB3K&A$QiTAlX*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..88c01ad519cdd68b6a474f906e795f9367e11af2
      GIT binary patch
      literal 1575
      zcwU`TTTc@~6#izq?P6K27AqiBz-zfky&_UBLaACQSS^8QqGoLeT(jLJ+b!?|eANei
      z(5Ug27!%)k!Qg|BKKO@xQ_t+yh=P*Xq&sKkob!F(oH^&qw~wCy97jO~XXv}DFY3$5
      z%93HtCtb1ZCdb8`UNzlJ$#89F!f+3c3sblv?})|p9o-o%x`u73P#9V^<WAGa4`2ul
      z8kXS>GXxTyGYm@FE{Qs9V~CVIz@rO<XxP<C7y;C42ts3sC2|rpY3c-7a2-NU$?QnZ
      zu*6igd|Nov`fXD%M00jgH)nLmko(%9;@&YT4E?$PyH$#abkE8QXU=xYqQuZvlcX=X
      zNwFv_H|Ymwq)p<&VA!o8hCK{B=Y=b4khaSUwncu1k$<OeRC?(*fK(Vw*sG$MglrM2
      zp#`lByGTQUF6XfnT-|ZKC&)^meHz+iOk{mb#wtl)hlc$)z)(-Val2S8d-CInO(gzw
      zr|NMCM^qeUX#Q)Eh6FmP9UM`%7wL_HiELI@tqI*4dT^AXju_LrBZzMAW^|s9xRN-o
      z;uyo8%_B6Nz)2#iNd1JRBx*dTHT2;O-K<P4XinQRhFD@~B=@hUxk|O5o-+j%{47!`
      z2B^h0dNmAU$gh#?KflwXiFH7E+pv7GBO1<OlzN&3P3rST(NmeXD~6xekoYsJb4Ep)
      z;n0Trjp?PIbeZL%SnvUYUOzFk{;R_n7=?6f*=N)w3pULT%aUaZf@ejBroX)gL%3j9
      zouW8z$ia*KIbXdpk3q{?mT=OhUa5$RiYugK%h9B9+H5${PJ<SJ{BimR5u&|H)@j-^
      zTGg&--3NqMynyZW4a-1&A0hq#J7}-@VTfQStu!f!)*!wTaER7hUEQl_nC$tC*`8H2
      z4$~(dFZC%g<prX&X^+R0H5?4!9s1%gaN=IzyLajzlG!y7Y!1fP(96*r?1``9)GGSd
      zFw7}KnOz~eFs|bU#%dA=q%i)FBtAlzKSqQ<K_h>PR{jj#{5g`GSoli}@mEOm*O=gM
      zaD%_aP5$1y(y%YPb|q<zBSS19T*G->AeIQGa1mL$U?ZJeB1=J<><Q$kh8&Y#xu$U0
      MD;T{x^0<n+ANTZ_`~Uy|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5594f37bd42a59f1f3d011abf1c2ee04dba83f21
      GIT binary patch
      literal 731
      zcwUuJ+fLg+5Iti8Ho@f*?rqBbAzY*Op)XXGP|`|)w5kXSye`fL7CBzD-T=SVr>cG6
      z1Nf+lS;tZ(XjRqH?#_(PIWuSc@ayM2fHzq8;SqMO#ErPCrnf4&s9Jevt998G{n&o&
      zD67qpvKw`Mn;b+|>BL8Y@b($wgs%Z$qb-e9k%&L*8`+adUM7sZSBbJ82t$?4Hla|{
      z9T{MhP>h6;cDKVliWtIJh+%|;xk}Tusm6kvw5;J?`whpOXsSeh>G#g1IT7cvB$S$(
      z8@7c}F3*bvd#O^wUh{wK?GvU&7JZebt4&XK8ole7P_8`Jskyn`Ok<eAoR3)^`p=*c
      z^H|^&q|(;4<=HBk6N(56f74}@?snM$HF!rY-8Yf^q@1(arv~<%1R-oBi8QrXq^V4O
      ztP)oL>7Av2yT=On_rQG~pJ9w}?sN2xtHf`xRSJUdD1OTjFZeDxq<0M8Yhj%8aDc-E
      zCiyL33Z-1*kdaP1*e?ITw1=k}r>t?7X{-!zxrU1t@iNzag)*Z(yw2E5SkCyoBxbE4
      FcmyaEt%(2t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a8319fac35910a5a150370737e1ffacf1561f78a
      GIT binary patch
      literal 1393
      zcwUuMTT|Ll5dIDc1Tn1^ub@<=+M*)SikFI)Dq@Rb$Egl|j^TjmK;nd;{-eJ1#TPpE
      zp^ts&kLq-jU@zij%1m<3$?ksp?b&bn@$>690CU)r;A5EnsGg}8O8s0nDvHf7Y-O95
      z)kf9Mm2}&*_H=tZXOuQITQ>~}BEwKyz!AMX2Zq3^Zs_(pgOHdkGKg8T#DnNy=+IP)
      z+cVrKg&?3)h95FRU!vf^DOHug4sDAtGfrGrK{xojM(vneN9u8vGlUDKrdErpr90==
      zN6|jf>kKo6|0p6u=&HLr;8xkRYP`fS(&C|>+X_G9hOKzcIcHCdLSX2X(T9G9?h3b^
      zlCx&*)HKM>uyKEQJH6e105TyAA}S$5L>_RJF@#};PU5g_YK@wkK9;y8#kD!piKiHq
      zFv1YI(@Dk{;?yL9EpVe^pSTUoJG{naOyD^~kZf6}hYZo%^0_ujmcW#RNrwL0J!DKH
      zNjj-J1rU~)$UE0Nh?EQkvs7A*BvU;yi#k7N7$EbXyM50!o0L-JbYm}(mM~AkXt&B(
      zz@m3aj%qw*h7*4Q9hkb|kzJPY3M-^UBDAkobj@XXVAgdntS50ZYO*L{m0_Z-zAd$M
      zoi2Bw@ly}L?+Sup_&$j+Fmf4tP$+a?X1Pp~XL))whQYfU!4Nt$8<xg*bZ1ifZVp7s
      ziDQuShQY0DRjt=~T>_zwJvd9Gli$;XQJM?^&d*1W9|1Z`v|FGvqg9#;2frY6={h{3
      zcgS%RQV0kN9@AO&+|Y$?S{a@o+=BQ_z<yd6r>2|e*-w5)D%r%q6=DqQw0pK9M#R_^
      zUic6Zld&ddnwY!7k`JFCez+u*IQ`9~k!fX)BS@L&DRUYjVG+H;5~9K~;z9;#VGRqy
      zmdhyZWo<EXc57HCv;bzYf!BoAOXISME#eoYdCX!PB7M!dHSXYzTP5`eZ?TKuFPrXT
      AmjD0&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3708263b999f72d2f67148d6459c7155179afcea
      GIT binary patch
      literal 1432
      zcwUuLO;giQ6g@AbO$p({R-k;84+Shxs30g%1fdiy6o&z<>(IVpoHSw5K>0z=xMs$w
      z;=-j1_qx!9jymJU-{5%Dlu;<sF*C_~FZbSa&pq$ncfVf00Wg7e2?9g(sd}g$MGHmE
      z*o)fy$d0b?oO+<!iL7Ru*1Bd7B#dlIGx$=*)=Wc!$k0_4v_l`)fx$bk8JfMoP!}Ff
      zGl+3B%YCS4Xv(M-x5v1V9n%R=MjaXyc%U$}hEon^R96Xc+qMWe<^(r8nI9hHce%Br
      z?&_SupE5J5o>nc*Iahv)_7knZFp>JtYGRZ@E$=qDl{2k8&ocB@xTr-t$`83=M_uQH
      zvnN(E7_KU4MH@rQ9=Dy^<7R%}G|0}dczJj=#kDg4F&RO0O6VXWHCz>Rq1)vUca+^U
      z3z~Zcq<m6F5BenZGIUnqJhC;NTzNr3Kdv#<6U3HTByAW5!!;=;9rPdu6bxdB!FNi4
      zQiU%luxyJpAdC?S!whW~dng!1gxaUT?G=--#BkCPJBV=wQQTx`$WtfjJ7!wrMTT}V
      z|5192XKd;nos)i(n38adTBX{mU>dgxi5NS5<f`Ql{{^&ZYKBX8M!_uRs5gnwhPtO^
      z&WRidpN|?&OPD7GtLj@;v#042M;X5F0(i>p!O(qK!!R&%>92Vwq?eh?(GajCy%~n!
      zzb=A7-Zl@c3}4lp*=apLBI8aRgOW51ZpC%AP~Zg#gxX(ox)>VI%oqA-R_fq90=*u1
      z=`7K1n$C<?X~ge)3Hi9}&`4j|aTMOeD||o`ofX#&&1j*O;R^f}h!+Ixp>=L#w1mJ$
      z<Siy6krLWpA+!(@o?(Cv*XP6zF?50(0y@M<sD!Z+CQfiiz;lR?j|oX8Dl>>xvJau2
      zvVWxPpCAjL5fHv0D11ea@C`%4cgzSsFf05lGn;a=SC~1wyI3GZFIg6Gj}QYi9!ppz
      bo;_$s94ip%Z=zi5D(;u7rMtodtiksi+17YM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66f079ffca25a7458c655efeaed980c0795d4083
      GIT binary patch
      literal 1424
      zcwUuLO;giQ6g{t`q?YhuE6@U!4?zpG1O)t`2tp}ZC=Mf7)}ejHIBCKpf%1=BxMEYq
      zg-aLy1YJ3fqt3YS7dYM|WfZD(%uMp$%RBGfbI-f?-Otx=08C+BgpWafrW`6qvQ<&_
      zJ=x|*w!Fei%7JEQimGjx>#9AR(Th8VSzIdEs-cSz7<%gtZPUjCFf`Arx@s>lG{r~r
      z3_{u{@&GO|v=tPS+exk$lNBNiq6sY${E!$r<2i>@))ZpgvP~jRIfvVGs?HxBly|wg
      zt?X)?A(S%;ik4SQ)mhhm3ieagVwlSPXErH{pt!S5Zk7zQ%!>^DH7!cTmiZyqZP^27
      zoH?lqg5ipUPINJJ>~Y)4J#Cct4W0HG7B4<tFLCV*K`Mv{dPGD?NCT*ZUi5hy(vGv6
      zhNXH}K+b1_xQYQ0{R};IJWp&@BPh2d3}T2ONED7MWDdhfyrIUdLm$Dggb`e42%IXQ
      zSn<DP=<cOj5XYE^QHHL+BP5I?LG@#Cd&M9wA)a;Ij$lH9j7f%;GL@3HZRAy6Vd$pq
      z-&Q~71)GXT<7D7X%!rt#TB+ZaFpFEnM2ek4^6U!5{~+2lRNWJMN5WmqQE`%>4P{R)
      zoO3xGKYwa8FJhh?tjlj%DV~PQ92NM!N8oqsgQ4%DieX>`8Ekkb<d;z@Q5Uc*y#<EI
      zzb=CAd&@X53w%{|ny2%8k4!k{7^JMOb2F_emc=a*#5&lpy%<{0G#Cb`S(@NHK6?FV
      zrnN}3Sz0q1#j#M}C4$E;pq0Ks7x<olAJ9fK$%COC9W*jrMyN*df{6VN)!29y;f=&w
      zBom1$x?dr-K;yMJAu7a9aKneFkcd^0tYYc}w|#gHVdvPToy0U!wZKCN(Dx$+{zM`^
      zBaAPI;wv@CH$r{K41TzRX1t&^LC)+R7Kp7GNi5<%v4s)C5|&9`6x~Q;1p@uexGApU
      Nftw^<5guX<fnREucG~~|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ab3f6fdb742e17390581d197d6971414da1964b
      GIT binary patch
      literal 745
      zcwUuJO;6iE5Pf4p>;?mEC=_T4gys-H)IzGbP$5;Jh?Eo|fw(WurrpZ%qV)z)|5Z;F
      z9Qp(JQHWW`7d|RfOWvK?ee>qM*_+$zzW_Gy-iJqseu{H(8D$qL{T^9)X`>z46NAKl
      z=_;$uzOs#7Z7ziAevYlusgDxj<D;TuUWS0io;K>2POV73>2ukaX>ma)e^RNk+k}zk
      z$_b&=(p?$g1z|iEM%wk>uu%mg7z;6qkTBEixL#2rxYLm}+;FSyiYGfNl?Q|VsWivp
      zG?9dAN5>*L5k|SZI4s#8DkE%k{?q0bVM^rDp){<kFT3sjSwg5aA5*oQdM9fPuQB6e
      znsq-73h@TBJcvx%9c@`&GdDvqVfJ6VjMBXxo1iwKa-;_)mb=QCn||owgQFmX?KG99
      zm53~pnU6Z5{;Yj|gnI+P68N3qK9B!VlsWe~+T>H>Jy@*<<v*zW&Jp9hRvgmP@Vzrk
      za2^hEn8ZuoOL&E9!SR)mjyqVZU17?@Lk`OvgPdb&h$}c;G>7?u_bqCS_V6yRUch2r
      K&vW9cWdwI7fwS!Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1f7c364be4a7cac1353765532a61e47838d4c761
      GIT binary patch
      literal 896
      zcwU{7O>fgc5Qg7PoH%jZHZ_E=7D}K%=m!=;Jq3Xv6sa^Iq*T3d+9cDm;MmoA)Anz1
      zDG~>c9QvawW*tiiA~g~|?9O;+o_Tj>&o6%b1n?9s7X^W5U*xeo4bu}9ABKibP56cm
      z<Tx_hLuC@ZtIX<7oRT)LHOa5921X^Z3rApSDshjONq|84xr&u}Ay8~R-WPB>$&f0j
      z3iv9cZT2nBLlHF}CHMl3R@V~4NHVWyG-KN~b)l<b`Y;~#N$<&iL;^uK8OUf~YGwWW
      zr(-^=RA8(7ANOf<6`5HdNgpJ7L_>j<T#r04Astg}!b$M9wON@5fvY|mxF%3PBx7&i
      zNk&IW%;y3xFHfJA`R*@3yMh}6!t-zo%Py8!&x{Now{08invNnlpdLk(&!Uvo7g)Yb
      z5f|f-=1g4zUN0Hz0lihW?TvrC`@{lx%sX*Rx)aGXrPRekM$a6Kz~a<s(Bw83VZQ=f
      zC6sw}+1tu|z+DR}-{F1B0_J%2c(?Df>=ZE1zCQ`W0_wbT4Foyj6GvL~;@bKduDsv)
      zh3ZCd{R}t%zydf7t1--n=ggt*%xBQMlf)cqtvgs@Y#B8^YjSo0_cF?TtY)IPzj%O0
      GsQw0Ub>mk6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5701aaed52d6f0a7dd789d7b07fb8c1c38359f5e
      GIT binary patch
      literal 658
      zcwU`QT}uK%6g}5gSIxdO?Gq~K!HQaXkRFU6tRRvIl-?&DYhs;++0p!4Jq11V1Nu?X
      z%&Zht6f^_(YtA|M-g$j{egUwL6(1==?Vb(UD2N|~ybUxT>EML-*dWxWU7;g&A@t_C
      zjJeW{NNO(iaYu_t`tS%V->7Y45&$7{D5TIwgo*0bHNk5{U7kgbFfE+kZYL4UV*--}
      zq){N0t4*sJgv=<mv@*hVOP*;8$u9@}8?M^yCgg--GwQJLnkixPanaLvA|@O(|Fu)y
      z^kFW#;;I*^KJOCN#uKpz9q^&S1_}7o#%{K>D-%|K0}}GBXrMa$OxQuoU+3AgTteYo
      zO0F6qi(?-9SR!ovxeB55!!p=_`FYrrGEo{CV||m=Tn_l##q1OEj}9<pY~FZyYsh%(
      zm^OJKfnf%-#uMgH{E)C5Q~M-ab$C0DSV<noL>rYbZ)^%>hp%A4wIg#Ev5ee1@;{=i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5a64f81b6bd18374804a8437ed78207244c9568
      GIT binary patch
      literal 888
      zcwUu}-%k@k5XZmUUVH6vN;#>&K(UBg0lg681J-CvDG6GQNeM4JZQB9YT<^%<7WlV(
      z!Ndn2eejPm%w8`sLPFy`%+B1-eCE3|zyJLB319<F7X^Whuku))hUtll4?{zzCfuR}
      zIgU(cs7#_iD6_H?r=-oU?7tfrmBcO_frU$DyKE*20_E2#R_2XBvH5gQz-cE#s-P<1
      zsf_i^$i9anW_*<33)Guk%L^mPw4TunZP~)vu8Qf?c+@A&?IRKhy2(IBdr~VK=RY0u
      zMWq5Sy8r!_7Wa^u_nGuTqDM3oSjyGN6BE)g#U`92cdXC4JP6GDsN<$U?U0Opc{>>$
      zB{AO%yuG^ovdH)U09qB?77$ercd_VVf%QzO@Nv%$v8L%Lk^|~dMEM>{S$~1Ws}ylF
      zPH9Zl#oOy8V?Cg4WrtqBINRqIAmH!BG3j<B)09#dj~P96Exd&bi$Q~jT!j4!?3GYv
      z>vHrmivf2vsC<X_Elaq@*5eb-Cd$q$T<6%Iq+u2{J_Y6w<cNLFwCK6jwKLrKxc&>(
      z_2AYS?)-%Xa2VER*cLpegPOCQK_5&CbEx(1V~Me4%<x@<s|#4pC=aociQ?(v5uTuW
      E4roH*W&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bbf055fbf8584186b6bd7a4f12ddb7b3156e416f
      GIT binary patch
      literal 1429
      zcwUuLT~iWa6n+jaF5#vIDWH<#N39CtXCGpgA{L5{lZMwTyx2Cd>nyAIkGkl}8_F)a
      z?4lplbe6>_#bnx<ci*pbp7WgNJ?H1IZ{GpTVOxfWF#AzE)6SFCnr<8?ZE<cVH$+K0
      zE!&x*ZkyJ&ZjbNs>7i*A*9x|78ZsopV2jrQ|6Bt?=ZbFV_9~%6oy-%Yv{@8B+#~c9
      zG)veCgKZNvM)actT?)KV2z_eK0Zo=QhTOL;Mou~2JvrSFyQh^SVI62kWkCq!%z{?V
      zYnJZpn}?G9L9Y_#bN`!9ibH6P)t<0Qrd1I|!f=y}R<o1hOc-|3HO@F|rsW6Wp@Kg2
      z6MBz@?PQ-eD<`JG_k>q>ySH-Ox(1N)Ba8tV5hl{cRKXyITn=eR+dZ?YyN|%yXZ?7D
      z5gEgTffk(iwq9maQB@GbD4~lXu9P86sBKAR9sDrH6-?kU!FNT0gQ>Tq*tkn|LB*7e
      zNkaea77C^j=Mt(4d&6WbNzFQPhcTldiCN}Z;c6-$n0Z~)2qC`yqxCycu(^E7f)$*{
      zqKpNumeyMZOL*#L?39wLS3vy>XwTFQm+W%|FR;wz$%J;aW4&-g=Ae4hYcelmg%xbc
      zZ(S>1h0B~5#EA>wZ4?M$=&q6>5Szr>z6tAPmP*_Ql;u$%g#Yyr1pmHyY8Aw$?zB(e
      z%`Ta7{0K_cFocyZYt^c#%3#!3+Xf?aUvDvtaJzKC`8+(l=;Xc3t0mqO&+=5j_XYlo
      zhQWRQ`yE5-M<<2Q&3nZ)Ll1g+COkl(3GtbMy$;mWbREH+_zxuF@j60Z5nbhZY*~s(
      z(Mvq>AR@)1btLMTyTmgOK0!LXXu!^50jXx-QTP}?%7KUBrx=1X#%(x`7)@|7saT|V
      zgV3TIv`NTWy~HY`bs~XRc+F@*M6rf-rWZj7X>35^(@Z19O}uF&$!~<W*n;mjw2*P?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ebb7f4ecf7e2f5f86dc7c9440d6c89f6ba2d17f
      GIT binary patch
      literal 871
      zcwUu}T~8B16o%i^ZFlLiQmoc5P%NTBq;9<MszzffCTcY#5E3q@?G(pscbeHL@T(x+
      zpkm^s7yc;YnQaq4NNC(m=A5(po@d@U^W*2~Hvo@tFF=9N_#pPhVVoVPbT78@(8e!h
      zUyKsF(Nk8NH_EPTip<LAU8{5&ph#Fa)3VLWSU~Wfs8rdf1aI~J4x!l6JvoCi;quUN
      z8hxV&jc%fb9W6{RgooJ(B}9bUYTJ?HL@;;D8pbyrqS98Wd^Z|&q}djoL=viP-4)4>
      zFv``Fk45`lWrVo>UngoZU*y@QG<|IbvPW2&I1vXnmiscb@mRd!a`qI0j}xJWD}?zy
      zY2Eo-dN9-}|0g^<zx}Mi*M9+;A+F&@fa`2ziZsFkd_pN7EysK}!s2=R^A%ZP*fpU(
      z)e0fp(j(KAFO{2d?cY&8bO1v1Dov$nB_hjY7GQ<ZQ*VJV`^P<?&NKDko&skj_`C*O
      zJ<e+&SgX!_LijNkT;Mh22=55KcZ@l%qp=JX%yT4MM0JALWu-$`)*hVT(%bd#2-Z(<
      z^*5@DBBMSt>I*{e6m#C!9C>@(HbJ^<5jPp?ql{Zv;_d=#9Hoxs+!FD72X|5a1yUX0
      AaR2}S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7d2d4b0e4fdad11b254dcb5cdbb8522fbd10d057
      GIT binary patch
      literal 1449
      zcwU`T&r{Pt6#gDfn_41ZE6@TJil7Br3Q|xhf>1!q4~G#f=g=+~CnQV~DF2ZMPh3zu
      zc=X_3q!;xiDI-#Z88frHZ?kW|_wD!I`}Xtm7Xaf}mC;1Vzf+IY<D6a7jJ=#Aj-A}1
      z*i{d8XQ`?=rnRa$0~?k&(#%79+qA0l6-P4-84{tp;pP@kz5^jNqZyhrO9-Tg$^@xs
      zRz(=M2(gN42`76{2hG+PHG%+|6$GIW+S6+;a86elcGIyKz2G9Wu4#sNb-2GHtSxm%
      z7li1VSyA<}YH9Ai{!?<^YBphN?SI}?;4rFZZ3t`EwDv`n&|4>@)|{L;5{8rWotIpj
      zsYO7ztDqengtk55xGEIQ{R7kBbHd#9*Bg1R`~^^mAdW5>2_|xbtAcLy_#BF^#v7)s
      z`N`lMlp?r?J{i4)t_GYpj;6D#uoa}x&mu6yMRf>+=^Kfb+!%2TC>X>8Lin5p2TWh_
      zOz*7Fj5LO23=ul6_E0c_440EFoJEtdq;$!ZJdRNXIgAmS_qnq4EwikN8ljVq|LFZ%
      zR2(iNU9gIeke4yRRnvH?U=mY|#EjjN@->U5F92<rn&FduqTnf}xlEbRy1J)TE=e6r
      zU%oX|mNCN$HoR{^t)7QlI<ANVA0X%z38Ck@vLO(=q;AX!>t*ilaz9XsM}-joS0V_J
      zP4m#Ih-J-fqxQ?)GV0zVC?&%XR#8`NTi7xfHFaa7v6hXkhCXha0Nk&MM-U<2%WO^Z
      zo_Ljqqv4N;oOlkmd5(CF-`Vj8TGH?*RSSHc}c>kuCpIOswRkDMa5p81MwCUc6;
      zPe{)4dVg9<NXauiY(hfHBu|k&#rPQ>H{m^`?Gq1n3==5S1NS4$^Dl&mMWO&=6y$ac
      zAw_OMMUbZ!k5JwZS|{XM&oIkqA!IR!=ZqFZ67yJKdI@x*h($>JcgcI=GG2I(<UHXe
      HRuKLTYLI+|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cf44390395fa8cbc826746cd99a8b187aca9c23d
      GIT binary patch
      literal 1444
      zcwUuLTT|0e5dO9e1WFX-PN4#Fu`Pv)Toj5$D4>PHFv8U55Kc>+G-1+k`A0tUg4PEg
      zeeg#)?n%n1T*u5L=bY^Bx8I)q_UEr}-vLZxM@5J*{YgL7&(qa2(=MkyaqgwpL`grf
      zy!AuVbKEV{8{HF@FuWDZS}{D+u~jI9{u^QY{0STgjZ3C&dRam^o+uKOoO39e&`gL_
      zeXL2{vLXnhMMDELLRY*X@zR#gXnUT^pcxt1S}<*~b5c1F?!JCt2||0pF?6e_yQVzX
      ze=6RQStZOA{=1e8=g|G#u5e3^TM>tZ!8#lL%u9<?VSDMod0p<AR|JGk4PEFaw3US?
      zE6+KVW5;GYVfp^>n<O{?0mwwqi>Qh|Ch~x*hJFkXTA0I{W1Lj{^s)FYDXz?!7Cgm}
      zia|o(olY8t@r=;Sumxe4y(7PmdC6;3!x+X1O>E2QuHbyp+w%D~P8LT}MS{?MyN8Ae
      zq*yLhSpZ`x@qD5vqoy>ZrA4hcr-Dr~_q2wWnBj6OtR`#UDVpMp(8D2r?)w8bmo;Pw
      zzQsAbQZdhxxoOq#8VkY2Nj(LkZIAy2wCk95P(Vh*65g;zndG)!HVvQou2VIGu#Wik
      zs6<i4GGXjS&8zz1Rl4<aLmUSH4ZcVS1NX^>K<qO7pm_KWol=R1f%5zsgx<TF!^61e
      zoVbSAFy#z&T_2Sx8As6awk_P8rB|z>s-nOo9-J~Bs%vwGA)c8q<P+kz0gZfCc{j&r
      z;#EzyH+@0m!gqMY--vXiSv1ld9`jiX+|Y_PUI|aoUWfR~zzw`+lM|Qd*iQYxeCiTC
      zHN*&6-i<6OeM-27=OOedu^J}jnu=ZG#U*BISPbDal#dsTmc#=0I$LKjj%H4@zzh}<
      zp(S+E8$>C~qp^%6tzwDRSQmMp-E6?1&Q9*$VucYKS!k=sF=8hYSi?GVjba2Fcn5|5
      SzW3|RW7DsgJBBT6qv<yv6meVt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccc5a6458bf5fb59b4d92aaa164cf15c7bff4344
      GIT binary patch
      literal 1512
      zcwUuL+foxj5Ir4|EQHl47*OzrHv%L?Q1KE)Ap{KuM8NpGBm<7M*|m0u%OCmd3yKf=
      zpk<Y}@<G4HvS&Bmh)TJs-RVhppE=Wg`rX&(F93{S!9avC`p{apHgo=lbXIdpY^vOp
      zSh3b@Rjf(ndbg!IwJ2;+Rb}ajiK>#WV<1ZCZOU8XPZ&UmUzLtj<Aj#<K!p%3xHZv=
      zHbT1}fMsn)OP~eqCSouNsdQNb=4^}M7L~`Sd7YWm$Ih+QmxZ@vE!%?7QFg1AU9mi=
      z_l-ZJ>VfnL=ga?pn>-(41=hUqR$Q+xYJ_7AI@X5DiFM(qTo_!`HWN#LaKJ<gU4(tB
      zLg~8~-1;NeVL##eztfvp&in?DPv9VW3>;!2yM&tP#bH7#b0}Dz;In(uf4~oX`F0$|
      zaRbK)U4M=+(T5Y<Jw}^yRnWas0;h1sz-dNqO1h_{EtM3$iGHNHyPUY-ZY(Ox<LuMv
      zT`yV+@dr%|>HM}Zzv$F7)vSqO<d}}%pc74(1}fS!Vq#Q#jJmrn*rn@r-oyorF^4*9
      z&0caVQfv^qIpt?B7P#{)Fk5hiFX4)T%dDqnuZcXahPTmT3nkr={sm~>l}=dCaTC{Z
      zg9XeaXRTFP4GKB$`Z7%GOz+GZs2G^!>NM46(yDzwuDDqhk3xW0ARxlwe@Ti!9MZRI
      zy*aK*IQTb#@M-SKia)|(rG`C9NG!T*UR6v>J!z?(12wF%2xiG~gjcXF-xt1td1kZg
      zEb{E^oJJhy$!dXqBK*b>=e@z!1>O^{#$ZS5QzV`Q0ekqH(1G*<ae9fpyf?!zB(aZI
      z!hUo#AU-p2oY&ifLtE&a&AdS&vxV-tOm-Vb2+weGEc(M97>i|7v2A1`$fly(ILm7$
      z72CqOEnM8jwFn*~djAPSCozo@CK_}GnGom|(|L^qy+M-RqL<#GpWd@#Kj0#LM2S9O
      zhQ0)J$3sdDy4osWic#Yz@^6|^ldQ&@xW(jqc^*obL6oQM1V_$reIh6arI^KBPz-Jz
      J?%*z3zX9=lhkyV8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54ed14cc54d373b4e94a3d91f33599d5abf57a11
      GIT binary patch
      literal 1776
      zcwUuNO>Y}j6g_t`_Dt*nholpSv?VR1#Yyd$mex?*57NX1w{|df;_$VZ+OJ{2o{45A
      zc2+DA+b&r_RiwhQo6vO8B@6xnEI=S3Bv=6p1VY?5W7H6rMp&}vzW2^K_rCk#`SP#3
      z_W&Hnn;I0tiFd57wVC&OwzHNG#Ac9R6xXbcc2H{Bf$LqigXy|xi)OIudae0pV7rb6
      zm9T$+x6D5gfDk`pJ9co6FqD~T5Yz>?C3FlEl71+b>#<q_Lr5Bk!62BKiWJPZEtabX
      z9;+55GgYx2v9!^-D!gUuYFiLSD{j+jH!RPV>;9%1ylwl0la>E}n<6{0LaQdcYp&N3
      zEy7ek9IF@PMOQdMJ_47d&4DFA*k{1RIALT>1oG|+ZfD(f_?&S5;q<{MFa1lPn7{-k
      zH9XFN>;W~f9|s6J$FN{|f_+bB9-tqd6_a=ZhcrwP#vhC@a2QW=^;m7u4Z`Y`6PU(P
      z4M$jcfV2|WZ9A}qZ{TTU2nG{nX6u3FG5ttp&zqKK$}*~11ILhM&wk&tnkmaHPh-wN
      zUP>qW(j})Q3C9hbkOZycb_Fve^rV4P5}IV_5_?$<du$rd8F*gqr+B~SiLUK#_|e$}
      zUNBI^8Rm4jL)*)4!xlY4n!Vqz;1%u{Zp*gdx}3v{8qRYU4xSpA$A!qdY|&^CMl(Bv
      zYOd`>Rai7o!bNU-zHil9vzuZ1Yp!ocw6V-?)=Wdg%be1IgkG>(|F|n{HpO}*5DVLm
      zaNuE$NFatB-m^%IYZ4~@tF5?CTC!$TCJguPmtS}KMc~F*-;sB&#LgvGl*?OpH@v2}
      zXv=9fcMt8H^vo({#}VE_+wy(kYj~Yw-*eu1K6g(%4)OF3L4Fke#t`SV#?~ob6F;@t
      zQT=lyZij$J_%|Ve^cCXtH6G=)5y6nc2tNsrVKkDU9t#ii-e<GNwlG%Bet{d=Eu@!n
      z+c-!ls996JgQp5HQ#E5BV=`yPwlSk1mo;N|z@TRo+(IQpJzI!}&q6`Vni`)LbY|%{
      zaF8GIn;6fTdPFwked1Wo)cRX`xD~lI)sNU!Hd<`q^cK!;V?h$s)!Q6+8lSNJQvb47
      zu#YeD4PW+KB<MS&=zFB;2magm5l87K%+b#{OTVB*zoJUNVTFE2lm5WF^e4LfMtM(B
      z@V=tsx-yJgN)n$cBVp3siW1XLnzYKe#NOk$iOZ<4_Y^)v6-%7LG_K<n)SzMtAK+EC
      oVmvVO99xa?Rh&khEe$LD9$RKhXZA{1t_D`af^j?IHM{}+Z~t?~!2kdN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f80454d6c8271fdf007c1076f8a62c65a295853d
      GIT binary patch
      literal 782
      zcwU{6-EPxB5QWdUY3-(lmh>M2w9t#R6^)RP5DG$qq!liqLQ2*9jkBTK+FrEYv=wi~
      z6@m*MfQLfNI_9Q7LaHV2&aBUTvuFJK&(B`~p5v(xkMQb5oQaEOey+05O)D>Kvm=LM
      zl-S*Yvf6x5cB3Z~8C#{ZcOpJL7iRFb$b3`?FRqjy@-h}|yw^s3)tME^M|~z!nUx<1
      zQ?FH~>>I*FWAlhmY3qRuFioiC|C&APm))wEz)XlqgoLF=*EMV=g4^}1;jXR75oWt8
      zlLw=;FU_IoCz45B9gE~h80GTvuwsu@PH1&+?Yc#n7e(|*nxQtS97O4tgivo>g|>x}
      z)?IK03s~~8$PTU-g;>T4!B2Tm9c}rhjlvhjgq54XtkT0F`=N+X?dg$;<(_gr7cbk{
      zaR@>fWtlYXMC7^5eXJAK|2ql7@(r`V8u$;wJs!W4nBv^$=p~;L@6%hgV9x)J>bF92
      zhu5l;dL0DbF79$3j)j=T9Pbs}L#>4Dv(mwX?fMVQd$`Pq;CuT8V{NP}87^AI{em0d
      W0qU&w@UW<UgvUiakBqCHAovSI9>KN%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fbaf30209e5d62d2fa271582de026073f58c17a
      GIT binary patch
      literal 1280
      zcwU`UZBNrs6n@S&);X%fA@9hGfOKP{z9Kq=$iM_01c8ibVocdC^O~+DZF%_{{t7?y
      zWd=X^(GUJ8<7qo0GK9n??LD{WInQ~{J*WNo>)Uq#_pzWLLYVnv92iHsdnm1%?ujE$
      zUlO~<zUeJjrDr>@r8mAQOi}TqZ7qtLv|a?Jf*4_-C3cG+A%GB{la}=62~jOmCd7(%
      zRU~kYkaAB6^E*Cc5>d3PXoE`V(n>z5ZW>Iv={d|?@S{^DX^FM{`i^k6j2%-D(j~iM
      zm}SF}{=WG#=6#edVYc*tRTVgq5m@WO*|nXzs1k;ol8i%77YD-f^box4+bk{#!YvhD
      z=q7a3gy)|@(XQ{=7W)Ycmxs41ef1YXA&Fk}E9he(S3p$^V33et4MoEdoV#DUfIsjR
      z+A)L?1;d2yixDbDafhJP?E|r7Gg(Yq@r&)nxQYqfCA8PMqvn=fmg11m!|p$oZt&T1
      z3r)fLHDncJxMQte6;sGD6HE5n84gZbJ43W?ODj}6twP5=9uZe~t42*$0-5W!E5oo(
      z?R-?Gtl$A*qNTt^qk5Wd`KTiHLV~uSJ%qu_8b%<7j9%F`##IQt|2lp`a?{>-D&nQ|
      z=eFzocuxCq1a-x-gi|yP*A=dU=bZV<$>wRiXtpuJa~g$zMfh$*oc9V_k9kkLD%o`6
      zE0V_n;5t8(K9JrZP8+zvdo_e1g$`Z`H<4~qd}iVpubJ#r1D&h69~jLw(6g40p5S%_
      z`CPPtu?8kjkdNRCV%x_Y*o|>a@_#5yHsljgnUifJNpF#&cl<%U$0U7#M%6$-HcZkK
      n;9C#zh?(LT<0@vDDTO{f!7R&(;Av3EGZcbSxF49qJQBYFH;zu(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a127a5537e7d4606886dd1f214cd0ccca2fed6b3
      GIT binary patch
      literal 1418
      zcwU`TOH&g;5dIpHYz(WxAP)g~C`bYc@d2m=K?uQ$28sg2^AZLeYuTlChsR&ggO*iV
      zUc7kn%mp6@j~@I{mc6^7R05>Rt=gICneMN@e*OIQ?K^;*c&MR{F#g=wHTJXap0qZz
      zO6;rbtk^JiOjTHy%61-0)we86QC8BnX2hnnO41V3zNjHY=%}(^;U!QYL?)yq)g+-l
      znOY@;^7guj;vC_Udjy(U^H4J;!^TjL1|4DOgyv+)L(ZB8<1Q<Q;d35D-1EP%v$ZCi
      z6=Tg5gha_M8|JFvNKdX@hSW3Z5++LjA6|}~8UATeI2*RJCDsYu6<Wrg%8FfKscfKJ
      z@Xkyy298ZfGg=6Zn?iZX$lF`nw#Dy+sk6<i**^LQAQwX$+BIBeA~jTXbfA+EWe$16
      z5$wA?c>=!wmTN#4dNgzsT29u`(Tl5GPDY!xm0!+c41Kt+p`VefjGicIN+pG>V*p7)
      z0~;>cd&|mj*t$PiGti=k--baQLrAmz7B`N$Vy{ZEM`%qJQ-AWf#MR>_F$HI57&kOz
      zxhJY$b#D1v0TZubg8ob-{{mXHr4{62M8_z`xCvdM=8a8R_LHz^yD~6qN*=dLt!lW-
      zkyXVtW2_&!E9{rWb^s9ei%;l0s~rf$D!nyx#d>8z+iAt+VX!wgco?Wih%MVYPFc)J
      zZ%CSt&%&?=LC}kqC7irzxUO(D6qrQKF=7Iz4H9~IDC*&Tb^M1BVOitTD9gmVHkgQh
      zM(n^>IL~X$Q=}J&&`VrkSr60@M<efqi%3);J~D8a_w3-%A)4mXKQNF!MC(F2^A%SJ
      zUvO<Klu0*-4v{(p-`%dmCxo6Juz4JV$ly-JWtRs>uh`{l#OMv;^cEfT4jFonVfx_H
      x7ztceXn3c47-ysiQpjO~k>cpaeM~Z`4yHJT2MF=)v>(_E@_uMs2+U#*(ccKMc{2b2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9cb13f7d71824c718a06c346e8755778df90a12
      GIT binary patch
      literal 1466
      zcwU`TOH<QO7(KV7q?Rby3ba7wA!vY>f`AW-Ae5qo;xHD=I<&VnPMR=Dc<goMIF35w
      z!e8LR6`T54xOCx<a{Q8%Q7O<FGjm_L=brC;ub;oZeFrdwbrC*>xo670a+tIZRK1e4
      z`JtU$;bmn{voj^tHq3R^9?o-(7j4zhmw83iw+*wj<Q_!`480BSw`lSJ46XC3uG$L>
      zE%IoAK}Z`V9>4{LE7mb-V#i@k91v{~EohVAhs4k+=N#swrVwx5Hi<svP_*Y%oj=;E
      z?r?KU+0i&dC}$KEt)Q5ybFTjs?5C>5FrWK>_flj`ad(^CEE{H(ml*o%vXlcm$@jT#
      zCp~b+*^|H^$Tta{=wj%oaN7w++NkatI^8oYp8vd2?b<&CsURZg5fLRJO`sBb(dTJM
      zD<-!$4NLWMLaE3GaTNn1`Wbo}c%Im*Mo?}^7{m~RL=;X`^0s1<3nOw<m08C?1j7<W
      zaGfD=tbwe_r}*gJrP?54OvETd*Xale<A^heRb!v87(^z>StsBTOh`y#lA*0i<)v*I
      z1(hE#bkp^pXg{VLQz>bjVt5lXBBrTw8gC`c;ubNHWT&jWh=t_8h&ByX_tf5za2In_
      zsus65l!{tB5$Ldd^3`ZT#5{$t!NFyvbZjnjSme7Nf!{3=hQ9NPhJg`euxU~#UPif0
      zJ;AaxiVTsnGQkkc8+&Gvuc}Tfb)M{)3FjTvMON3jnbs7`;+6<v9c<ccWc93e!vM8T
      z3!KkK!;e-vi?o}iGow`;3k5zSc;o^u(j0Vw&k6VfmuM$>FtnqCR))(6)hRv^vEQK@
      z8?Pa}5&wZiJYGZh7sM85y*4LAh1gfz@F6P1V>KjdnEHy_K753*edN+kVj8Ks;UNTQ
      zeo2O3k%-p_;|-#COYQQGQ13B=53ZmY&uCqcv%7}{VrxYLi?~m0VZ^Y6Ws(;~H_}*v
      UKz}o?i>r9xI!W2WL#!e28&gSy;s5{u
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..354f776118cc08bc93f1c4b5899078f62a54976d
      GIT binary patch
      literal 763
      zcwU`RT~8B16g_t->{3>c@?p_}pga_aHkzmp7!%WKQmuxhr0+v}t3!5o$m|sOTRs_m
      z@CW##jCZ!{3t&v#WM=NYIrp4<?*9Ds{Re<2co-reJUdnA>avwz=<HL=@uh2Zc&sLg
      zdo$9`*!SA)_Br99(<bYfi|lm~g{TmoUTZy;YYNyMuyuN<k`LybQ_jjVVeX~Qw0lLE
      zY3>aOm9`mign7bZ{zvA~NOY>0!9t8##Dw)`&r7uuB|?2?MenfdyO(-8<ByZ{gzd39
      zNtjUU84(>Qt9@P;EAF$-2`_s8<@J!TqKfE<?bz6qN8R)+AvBuT3ERrD^TRD*73(3^
      zWcr&yG47yF2vb>5$2gg?S$Lu$q5d~wL7DMbyik`=?VE`m@>}gau3feA*i#VVZkDla
      zCo0c553xho`R5kI@C|#wHsr6te}SA?%t;<f^jxYWZ?s>FqOYiaDG;~hu6krpM;L5i
      zQSx|-!xC=GTfs7FCC58KdhY0;@eL~hu5xS&$5z3yJ;jwAKH9+DlJ_1Of)21*bZ_B)
      M(J$MQt_O&I1NX4G)c^nh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..29fac6c4b03ae6020f7ee130d145cd64eb22f444
      GIT binary patch
      literal 1425
      zcwU`UTT|0e5dOBLO({XJTwADI1TEKs7F3ELv_%WWVT8fw&>kR8nqZO^9AEr5zWBlm
      z4nFwkgFnh~lax^@ml->goITmy@B7Z4-TwUb?K^;3Y{&=@((lxodXln_HRB-Vh!ZE3
      z6Z>jack*S;F|7^F8QB)PC^?#G<c;!*XULEUeGQpA{PF_`p+(KmoFzh2a%`6%WzDh(
      zqnXfZU%*WXqZ~mKS`-AK5W12@7c!-*47lxBjGJ+D+lrbYURNu7!rD>ybU}y~&629`
      zs+Q*N>mMcOP_qg1#s4``hG|sK+7i~jX;nm-Fi;ny9y=*f6NZ!WgY&M<(jp*qD(FHt
      zq5VKO?)kH3<;XPHPguS=y;0}-KLD8sdJ&fqV<ESMD(FK$p@lW%%u==D(I=8uP+Yh(
      zEx3n483TmawLuDoFidD>*rG5FoI~$63$Csa1*3RC2(vG%T7voFSMhm1CQD*m#u%ad
      z>IelBm?X#*vnFyTgGtGPTi;$xD@b96&sO0E(s#^VO&k+?*!`!tZ}>8~XLP|OdxW%%
      z$J`=~UIlZQ_p9XgkKd=!<X=Erre^qRpDK8U1@1{(IGgH$R`O(SnYQMqbtErmjqS=<
      zB#bs3a8)f|(B)4`;>ZUGdL2RNzo|zE#34hsb_&<a+~4Qsrvg7ELhp4qL5OUdRjVY{
      zG<RmYE|12vn@3Ozh9Ru1uG+S+WiaZ{ty9IdY@90$@{BaW{RQ|5BE)-{tvTKkukv^_
      z{1uT?FQAp*5jT)@gs6f$yjT1%w4t3>!d*n`5MLNL$m{(0#2Gp^Cx2ji@(exaND!9T
      zy1yXBq{KNM1`v}b6K9w@!|XYp1n?Qs+fzmv=D)!-GIi!*gqh$yGh2v|gHEa<PBk8Z
      z4@lET%+V)LQQBv%D{`&pSYosgX0VJGjMmA6vw~ID7w5^$A_s}T=Djnn;iY#<z9_uH
      HI>NsJsH<}$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0f6d39be3a1d4b4a35b9b84adfbfd1e36e5a6ace
      GIT binary patch
      literal 1408
      zcwU{8+fUPQ6vw{@wiQNo2y&4j7X|6YM!f(cLlMR>Qy>IzK9}tW{!D2}TQ2{OiN<J5
      z6dyo+@X-hVDC226qB4ZUCF}2Y&ga~J{QUY2z%4vdP)C?}VeA_Fy1OT>P2Cgwo<1iw
      zj2+V}RHSD+Poy`nDoj!Kq-_<f%7V1SOmI*TAtY<G*Z30(5Moo(lHLPCy_PBwB6+(a
      z8qi2+agUK%VO6pwL*uANlZq%*LYubWb9K{T>Z<23Jm&)vzV)S@t##q78SAEC(1Kky
      z%#z_q|6IL{c+aIvm|XbZ&~j|b2zJZD*|420Q6cnJoig@3UF-_W(?j8czi0R2AY4|_
      zhIT^prtthk<n66(+v0b^^x5jQzCQj7kc*=eT?($SBj<>!NTQq2z&_*+N3iWK?G%3S
      zmTN)}`V{mM+E15I(T{6fN~X=(UQo(n90RzaV35f*N>4p$N>2(`#Sk<?BP*`hdz@dw
      zpmuJUMW5b@w2EP52u)kuGUl3Hl46h0p%qiVv$(>Q;|4JW=Vk;q73ka#wXZ6-`fVn$
      zAAYlho!O%O0a~`D6=q^o#Tdr90bSuO8k@2lq+r>0WvJGwozzN|6ijerHF3=vm1A>-
      z{j%5&0nwoJgzmGNfj}(Me{QZ=u1x6sS7~_=?2Qc`1S%5ZtM-ml7W2{{khYU^FybQ!
      zYSFTUlQ#|56|RB;J8|v^apRmmMCjvzsE7Zn<9`$}J}bN%<1_K9q+1$}5I+b6F7P+*
      z3(_mZ=ru0#Sq;UIKr^p|OK7PgUNSh!tDYV{MC)SaJBBic=vc~Rzu+q2Gp>(EvYEEX
      zAyS9nyE}DwgUGW3R!<;}EbdlK_V_q@%O>9;PVbSR4@lBSWa$$|=qPYwG&EIp!{6P*
      pB$HxDA%`g@CD4oec)(62*~Mu*M1*f=g1}~x4?^QIU=H(W_yt1+b?pEE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de30976ffee20399500d80a33aa13c796bead7c9
      GIT binary patch
      literal 1456
      zcwU{8T~pIQ6o%g|X;VuSYz11N@*!w|mV$sHMG#8SLU9<uavj<&#z_+<36!6sSB%4`
      zgBMl2@X`x^l;cTKMx{t+%uKSo*|X1i_k8^L`SlxsNvw<TG0eVJ4wa*nRaN!9l+BOq
      z)Cw;v2b!HNskULRtM<?q*LcxZ4Lz%ub_}z$<Ss-A3_T5}x9Q^<Fa+jRU9}e&TI7)e
      zgOD*wJcw%yVe1^3<a#MtC1?mOXqDiH#Lyw<9d1ffh`ME)1W!AFw!EtI=LeNtZf+~P
      z8YfWRC@NY(F;!<>|0&q7REuFQ|G!sDlPkrYZE~}0m=#`P=&OrTs&<MWa@|gO##v`h
      z@<L#^C7}bI4DEZ|b^?(xD*J{``wWX$A8*vU_7@->LKNL1VkD%Ase~T%dKxl{$?Z+U
      zQoVdo8ge1rM!$$YhVBN=OIy{*lv@%8Fvt)hgcB7C4#TkARAbJ;M=>N}7<U<h=L*P|
      ze8~;ny>u&NjEWdx=)BxQ!Wa?^V#PS*D+a*?Ip>5sig5`kOfa-osIatcqoDFCLl<rT
      zj`a)5FO`wTDT4PgEn<qQrg2xo3?2}PBs(SL#VaiT0opWF-BUX&;SuJjOf7D2D0^!0
      zLYO1+#Zw~%5%Uznh6^q$rE_=Lqaxq;0DiYX7<#WN83sls15J}c@iNL~>Iasix5yCv
      zS0*UoTgHJ|<g2RFMjaQsW!yQ(AmwzOn;A{9EN+P)>Oj**qvT%RYUro7X@T?j==CE&
      zYmsI%v}QDlqv7CZgic+9>+}t|hHuF5EpE_E^32eNb{ZLOB3wtD5ZLdaM#pN1Y$U!T
      znMl;o^#$<-8t=>rF(H12dp^X3M7)M%4U=bh=)*CDol_S(fhnZxjt3E>?=d-kM<PxT
      z!F$B;fm-DwS$)DZYObJZ&uLwdGkc5$q6Lt|BAyT}f;g72O!8vrLIx`k=x^4&;wqlH
      Mm!w?b8P*W|1;<>0%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8970a9a770a4955b1f0c9f89f4f130e06b50fe8a
      GIT binary patch
      literal 777
      zcwU{6-%b-j6vn@^l<rzqkRt!2B2_M`MjI1?gc1@{BvcDADdB$FPIb)gj+vcO;#+ZL
      z<bntAp$KQT%MD;m++=6w%zo#0&Ug0D)x{-%cX;8$BW!&ar{b)hj#TosZsnP+@5zA}
      zM)qT0S#3TmyWWwJ>{+FgeQid<^gm>Qj{;%iPWCY`W5N1?HtMHNtcVWvsf=Zke;^ch
      zRHE!IVWRf(givVez6|hyFq_`gdNUXoD`5gtAtn(L7HVx*uO11m*0F|*Hd+oa(^iQ*
      z8pd5|jzu?;gmPQ=M06sIa&dlHu-{Zl*lz!?=LTU;WT!9EaD%bzx8ffWp;EicYziZ-
      z>u(B=vEXB#4cspZv4|ytAM=>@wB<%?nJwxOmi`82l^zV(4z&oSjvktx+*i)#{B1XH
      z9fA<Hl0=$jB+^u-KB|Q3KL^1*-#-ehfqx&|<MBI*BF8?THu;u#4_=jn;xClWGsQz*
      zOHS!+!uQ@|n&WV+!weqrUcfBMIpY&69Xohk`HeXbw;2s)>|~6!u`Xx0(=wjq+!a(<
      T?cr&by^3d9J`aquo+G#hv}?dU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3422529b42ae22c2cc3824806528258a468ff131
      GIT binary patch
      literal 1461
      zcwU`TOH<QO7(KV7q?Rby3ba7wA!vY>f`AHD5K7TPVHm-(4()A?lO~v?v<v@_3s-Ea
      zxNzyhALaNZX-B0%XUxof<(_-K^Syrl`t}{b0(M3C7*^gZXG%S3)l|Klw0Yf5Zt;>*
      z)$B}BwGDGuwI>g`#tXJ;==*eiY?#Fj_as7K7;bxhM3V<#=zgy1s=db0B~RxWgtSrQ
      z0o-B;TP@CnPWVKPScB+7j|4v?hJHEc5GOT-Xb)|Z*i#NeZ%)<uezkJK%_HSR;|!sk
      zQBbtJVye!$`BSjpsTM;j_utN?$d=;n4!Bt|%nC0uj5bv%H9N`AxNavsaK_n_z91Ox
      zN$AG_LtmNOPAJkw<<!vWo?-pw=j~#5{vk*O5y6m%C<*BRl`xDEPeWQUxqV<*s+SQ;
      zL^g=~7!xtdFx1BL)>buwa!bNECK!5%q7@m2DY>J_tivC{q=YFvWC*k*kTLlR7u~y5
      z4`j@Um}VHb8X;j8aR#wsobfG#$OJj-#5;mH2}#V8&<fR-c4XvLUSk-f>p#JMLm8$*
      z(l~|iF_uIuQr)!QN?67d&t<2mynuz|zlaVDRrl0BldytSDpZTxdrDa?T#9p8zWi!B
      zFXB0cu+70urPwl;sTcUEN8ooWgkj{SnqgoB8Sj`BikDF;QAe;WjRHgDx=b(x4~?o>
      z;M=OxNd1@lWzKoWAZ2x(n`uq4EN+P)*71(5Mp?P0*)T?p(*@`A(eR_2&LZuW>C9*q
      zXF`E52%fuu+cXDVV2OZb+@YQ1!O)97S{d#l)TH=K#D0frX10OwUi=3V@puD+UlCiQ
      z^}(tT6=D~7<U>@5#~Mg9uyBE=K74|3eD2cDV-cyQ;Ryt2u8?7aM0`LP7NW4JS*nDp
      zV+kK!K}(*|rXXkc0&B$9jRe;5lGwtCVFQ~aFN#5=u?2ztW?UDy@yd0Ql7-jULEtz0
      CY=SfZ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad3ace407da5771c917b6b863e619c56a4ce828f
      GIT binary patch
      literal 1481
      zcwVJcOH<QO7(KV7q?Rby3ba7wA!vY>f`AXoLn%cIMbSc;ap6p8Z!u1qFiG0-k6gH7
      zQ^kc#7yc;6FG(4ZB3;;-+~>LHJKw86e|`H7U=G_Nd<-iem6~#rwCbvUl(hMYo!sDM
      zrK;JPl4={~wrY>(xyFmOYUsNruc=1WIxx)AbN57qz%bZCu}6akVCY;{b=6*F=#VE1
      z3_{u{@c?cx^jqh=iQ^`5qE5^~bf8Ou9}+{aoO8&NnnKih+awDqhow8G>iku;a>&g+
      z<xt}cp`1}vw1Q%)&c1ml*dJ7jVJ-JxPNvA7;@xqxY?u{ZVi;~JQ|fk-*SKycJ#fZZ
      zlg1zz?nvlGA4AU(x1Errjmoj1(>+PL{&}n5t-lCTK}0YhB1%HqKqU-f$kUKkOm6QQ
      zmg;4O5|Rz#E=EKQGYquw?AxkFP;N;W#TW&FC@w~aVM1;zH0#)iU|hlk?lT0=WspJn
      z3OC)mR2O7SiI`;QyBZ;38gT}(V$}GCL1coQbz&aDjD#d+8M-P|XWE`oP<fqdjjsO$
      z{4Hgg3QFS?#)nuCF;Df=dMjZOkBEsRJH_P%EhJwc+BH<&Q~N~1Q!G)zTHM}Ij@06%
      zScm1yuO<s3mMMfS4z4Sub90%KB0u&B{BD&n3|&_@42&S7ZIeRrGRkG@43?#@$PoEg
      zCK!TwqiPoUrs_0Q@8!Okao#aVSzYI5T2m~GTOx>cv~A1LAICLKhY@O^4mdv_eSUP(
      zUZm9`?HSGDR4DKT!BZD-lg6M6d`ZA8ZqZ8eVCY5<%?!5@YEpbAV!uN*HQhjXC;kJ8
      zc)WrBuZXSEd~ZpJ3b8Xh@F6P1V+|x4m^;H`A3i}iICW`fF^^Q!@E8I#z9z$ONJJiC
      z>?4W-HO&E`-eCdnT|o<;(WW40wSrY*>qG);ct&ht#PA&JBrl47q_F{kPBX5Hn|R?m
      LNeLq-w-ERZf)$C<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f17bba89852a23a03bb37938766961b2614ef5f7
      GIT binary patch
      literal 755
      zcwU`R%Wl&^6g}5<Ym*vEQ(6iHXrU73Q6fOFDMCUiNP!d~rDQ)%ZeWn@iN=%C-(rPe
      z!3XeBh&ztiG$15Knz;|1bM9k){QUMEzysWj5D*@HRLAP1U4GKV`?li~*WTx`nr80B
      zNIPR+Yq!(qjE7E};@#wVWg~=yhjYY3d1io}0b8esDmyU8oO4m92}@6Pq1`jWLV9~Z
      z2s>uPG0qT@@^_Kl>7;=LEGJk*LfA-qzEC?;Ql{^$RNL!%?n+M={AQXTu{~5r855d4
      zBP9pQY9H6h(0$M);c@Rj=G-H!smgoHc5H0Uqi#OQ2(5HpuA?kF-`X-RU?al1^!{g1
      zf{WNBM7b<y-#F<pttO%&Ve@aof->W=OhR2kqi?2m$S<{@aQ*Zk_q~Lyv|AKxJDDm=
      zE+cFcw*R>U!s^@>um$-q_!G!o#FE63cuyotV&gl_IQ)Xf=L&IF-iAj8w-5y>&Pkli
      za9F{4u_0E`tTkQ<(rd?eTVJsj;Izg)(b%mtwr03m!+V!-xz@dcmY@S%t=QLaz2eKR
      IgmnY)FaHm=xc~qF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41abccfc7711082fb8a3042424261ef16b85ac79
      GIT binary patch
      literal 723
      zcwUWBO-~d-5PdZa%(#rAiy-Q%pd42G*ucRHgoG@btgglc+_TMWjkcMc-t_b$f6J4>
      zgFk>DWvreZFM!cby1T0K>eYMQXTN^@1h9!m5dy--7j>*oI^|bgeCjwpah-k6)FgK=
      zhuRtYM!WS7<Gs{rQ$z>}TNm($a!dj11GY}5Dt~K^dBjCsCd}>VLc3kUO#AVG5O&Rw
      zV_YG`sj}>zO~wt(U_QYt62fx3?}v19B_j@;l}Xz@-?z}$1;3k&j@TZmqnruNzL9YQ
      zWwp=iV(32WlJK<u|JJq%i>iv=v(1bh@vt`<=Y&@KB1_k6_KN0l6Uz~nMDpdJ1h=pv
      z_DgpA#)-0a<%3ef%HMbeWwK24Q;*O%FcX{dEA4$PotOXIQxK9~QLydisw}yTutr$>
      zr*nDwKi;tl`55>W$ezWV<dH-#q)Kwf8_hWUj>fkNaaGQSM+P4e1q#<BPo_95;JVx)
      zZlGCnycVSAj-Rwnu^8Yy2Mb45ajZ^pHHVLG<4(<c7cD^txL0-G$AhY0o=CbLBK{4S
      CEvjh%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36d462bf59235c052e30dac71f83cdb73913f841
      GIT binary patch
      literal 9767
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultFormatter$FormatterDocumentFilter.class b/libjava/classpath/lib/javax/swing/text/DefaultFormatter$FormatterDocumentFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f2eb6ccf61ddee0fe02da4143c753af355770344
      GIT binary patch
      literal 2934
      zcwU`WT~iZR7=BI&1mapFf)c6)6*YzcTClCfS`k5Gqu7#yV81rW2`p}Q)7=eVr<eV>
      z?2OZk+PltlN^d$HryBY()86!|KdRIBJy`-FVSrv_&)0LF^SsY_&pG+$-{1cPa1oz`
      z5D>V$q%Z5ML+*-UEev^b)f>7Y^LokjCT*vnd!BUqs<j(-wp5UoH))vE3Lz-aQ$M{1
      zB+%k58gAbOfzzp7ml`Gb6~i*Ts{&_Zd%&Nc5eSakIoSq*0~(sq5=IjaY6#&4fu<M(
      z4y6oB-Ypd}(n;$XQwp@F?5u9i=#If{zca`}1x9yYb|*(zz9S3vGO-Oel3#=Fs}$EC
      z6?NAgO(t1tcw#jxi=JUyZV1N&&eU;S*K;hMAyq7g9My0H9bvNJMGeO}_(R!6nSD5;
      zn?^2a6-yqEy`-V1GG-SFhL_BbnWnuWb0j>YbO;RYPdCl9^LbZ#0wPHbQ(6n&qJU;t
      zu5`R<&mkIt?0)S~@F7ztaD}76zKnS^k|}v|T6&ZUZHOTr!g+y{yKbR|ek24A(q1_$
      zj^W8WltdK5d>Dhc5W<i^WV-?leYmKSD#>0BYZ$>LfsiAMrk<tQx%~$Df1>2gepSO6
      zoaK}y0H<>u4W*L4F^@L2XBS!~9cKToYIu{4X|E)RJ7uW^n#dWHKQWAHxQ=mwRy~`Q
      zt~%C}dpf5znA;lzxiq0C4Qb{`!31uGFuCnYX#mx5i&HpUQOL?dxGm77JW$Ku(;ZiC
      zIUN&7X}E*Cv{wt#ODoShV(05!;}Gv@cpL9fYPhN|ZIb~dS-p>H@LMUSGD|Y+jk1Yp
      z4ezS#()o0`No$!sWF4~_?qiPpBON|(tq`Aug*?#k9^NOGWd^40jiXc}#K$*`Wda{+
      z_y{_M?QVqK*(i#c5V9Kvs(~?=&n{mvj$=EmAemiCh1**wxn6HZ_7>S=zBt3kV1e)3
      z#ck{x(q<U3q~Re<fi}L~$Mup+l!>kA^rB<0Fkek9o4s`I@?M^f_O6*E5GWFRcWS4E
      zV1&MjXb>?W^u46@?vNdy3bsX{#KyH!GEdtjCo5@;baieg8RTW?N=;gpbjD4(I`~W<
      z+kqOrMBGGAyof~jL8KbJ^t=xBw^3_^S^+A<@&4!ZS%>zNS^*rQZwq07n~2a?Q}r+o
      zqn+9KeIZmQ)q~VJs<?7g4^kP4_a8s8jxJ*Brr(K8#&$J+pVptl0nAh11H~S%%=6i~
      z){B#B#RyK}v{D$M8}~HDBKW$iTl+DoZKg62e}?cgoO^;Jq++0qfq`hSjF;D-aXT7Z
      z$1C-^x|K5~#aE!ZP3shK4j<FI;3$0~74E9OL{(p+sxN`pa9Mes!0Q-Q+UQNFQ~D{b
      z#jAC&OVMDoc^y}Fa_Td3>2qp-L4JR!lw7UMtt#oLD(R>y>F}N68fyxw8f$8%aeDLp
      zy`QC$XGSZYz3~Kxx%Mlrm2qPY!P%!Y9HyzqkgSpQ74<%*-mlSxZ?>dI)Rz_DKOO!e
      zf0GcNbIYeraoJzSTV+hmu3>n#viS73i1qtJGiA(|@xdC7-uVNWx%S*T@^=RkWf-#q
      ze?2AkR$tR8`sX@Q)fOjJz;`tIJ&pcA+I}R&PlWiHw&53g%bw9S_?!~@w=GF`%h%kB
      zYqa?mslG&Qn-U;EGg>JL95hAv*tmW~oP2C<OT2#_UgP5uP`_pMUBN2&=&;!_JVM|<
      DSnARs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultFormatter.class b/libjava/classpath/lib/javax/swing/text/DefaultFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..34f31b2c3fe1b4ddc1d34ee1ba86cf8fb6b4ab15
      GIT binary patch
      literal 3572
      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
      M#OVHE_!JfY0}-eitpET3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultFormatterFactory.class b/libjava/classpath/lib/javax/swing/text/DefaultFormatterFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cd6c220298b11c0c5e2adaa3ac5a9a725f497e77
      GIT binary patch
      literal 2826
      zcwWtx&2JM&7{;G*94Faq5|bF0Y^h7am*WHs1SlmmsA}*5Mf3o&1Si(^0*f{=*y{ql
      zv{GCC1EiMHo_kDHQX~!>IDo_f{(#=$$hkeBJ~KP4oy|sReLzIY&dlrgeV*TZ?AXuV
      zJbVP;Am;m!5XfJ(zp`%@n>XC$%SGS0=@%EAOLoiiOZCQ*?fXunWLN!q<5nM%0>?VD
      zPrps6onu|eb-dcH&nr#8!GiVGDS?cvF1q#NS*PLJp8K_3@f?A4E#fFJyZFD2<^+bE
      zn%k+8uDQ)?o_(t$G_>6EypD0|guCqe^8!8jsj@)wi+as5(1WxI6GH+ci|(>>rnOXY
      z8s`Gq(Zzbz_R2PAz_AV{{VQ%$ps@H~SCh0y^Ic4GsyqOJ4@~r-pR-xBasqBQl3kPp
      z6d#%}0*cOM7P$A0D7q*Kz&|!IAi<6Hc@cQ={!({Q5=?Zbi9t2d_Nf;byX^SUQz>vH
      zKh=c|)tYf?%46Njr*hXt)66{;d2yTTL(Dp}_T80Pk&wx(j$wJzJ)P@j)&_6S**+ZN
      zN!p~?#9<r}=qFa$_FB9tGJ2hhp3RakD_5PWuLM6aaSWd__ln&t)vK+hx|1#lB>YPP
      z6PsajD~z-CR-@{aTzMmH-{9ieFLf}%!_mY4UL^Tlz`F$UZ$P((ZU<F6%sk$Od=7Io
      z%T}=MEj+-;@9ZS7MU^D@EK}}0M%goiB#a@$Rtjv@0wre3Ttf;JrdN?|s|*tgxJZ=>
      zVX8_g8)R!G+1o}ep)|*}=6UAG%8^jBFtZA)Ej+5`xy0u+3SVbYLy7MQ%0lrGEiQZ8
      z*-I#!kF<@)vDC?|wJGddMXv3Y<+OosnE4&OzGvkR)W5C#3PFA7mkIqc+E4a&u-BuU
      zC$#go{6wl+G0uhY<SHiH{uWYv-l5Z7`v1)Od-VH-i}kBwI2<U23|7csg$$NvkiA{(
      zCHeVo?9nvE@C@8Xb|o}Uso-z1`@c8b|9QRtsmR_3C+H8>-0#@;REU{U$5a~UV?nGa
      z$m3X$sdx}83i6yaFE#)%G)N&9Bo_twD;8ur9wZk9dC8hr8-NUGkeOJJ$tcL{Sde}3
      zAd^v$zghFo1|WkPWWNHCT0gRtSqsxo(JNM_|HOf(Ji4TMf_??Z(9xe%C>MlsDs)$c
      ztRQ5qtUY3TIAsWfKSc-mgK`KNF^qAM#$K@nGhz(KMFuBDwu5pZq+Gyp%qhwfO7F9O
      E0kH#YC;$Ke
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultHighlighter$DefaultHighlightPainter.class b/libjava/classpath/lib/javax/swing/text/DefaultHighlighter$DefaultHighlightPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..12a44c2fd281ac860d00a8790b1ab8282d112589
      GIT binary patch
      literal 3060
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultHighlighter$HighlightEntry.class b/libjava/classpath/lib/javax/swing/text/DefaultHighlighter$HighlightEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b5a07ad27d3af3e621e635973b4512adff574a15
      GIT binary patch
      literal 1259
      zcwUv0T~E_c7{~vo>sB}Fn4$xUFCYWA@=|8F(|CgzNfudx*?l+8#v!#M?U~|-@SAv{
      z2@ApnH{KXOl<_%TN0d%7n)LK}dY=F9c{%N`-{%(qs@O1~F+4kTKe)$E_)+*BNAhFo
      zyy9)Q=gBvsbKub}c~H8vw|yCWGN3aQl+N*7QtdVmc}p6|Ff1o%BQXrx(FVg@EfHSt
      zhC+(2|6GMs8H^)W_@rfUlEEX{^?`r@8F?VW66IM+N|Q}0!3*IF`I6ytc`U^><=<%Q
      z+CC}`27Rl$&$D2-Yr@3s98$PvB9HqFsdA;EcBV}jxTUOF6WM_^XCj9QhRK@n`P<(6
      zCJ)}ZO^*|&)@`|7!wrP;<CnUc7sKW_y<hnxXn6S!mwVC;<Ziniav4>&Gl4}c87NUz
      z{~d^lWh^jcNk5dDWN-WXLpMimefS+z%at2WkN|t#UeMyNg=%v;+0D8FQraEg=fRfe
      zh9M6PtTQZ*F$!w^-(g^$W}l)v4W0fpIu@ua8$antfI>kXBzZc;<uOTXfxG}3sQ}Af
      z>En)liYa@wkD|TS$BaFz_hEgbT@4RtEk=>&w4M<AlqlaZg)=;)w|11-!XrG6a#~Rp
      zT4bp@Qjw)9QTgYw5a-{dCsQ@rCn%ob3B#Ame3@wHBI28asF=_2bR=PBB;m(MLK&5q
      g;KYP95v;FQ#6SNMr(>~3?W%PJs}WMk*9fEi0R|o|nE(I)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultHighlighter$LayerHighlightEntry.class b/libjava/classpath/lib/javax/swing/text/DefaultHighlighter$LayerHighlightEntry.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6be9b03b26b77fadeb600f96424bdb1ad5b81881
      GIT binary patch
      literal 2281
      zcwV(t-BVjd6#s1qTyncWq)>YK(0))2p(RiiY}$fCLz@~}Y#@rCy(CL=JK-kYYzpX;
      zk3RV5OyfV$XJ;tIcE)L6eDFW;MW1zabaWgY9UaeJ0-+?@@Ze<b?%DIX=XcJYeEIji
      z&jF0U(%@kjyJ6lmS3`vr%T9-+Se2m*V#zFK<s~bf$<il<(;qX}gtNnl*wR_k;AJ>n
      zkMW~+48FW++47o5N`{V@@(?mtWJobgJDnA08Jc9qD)bLCoQTyCK^dI0Y)g(ad=#k5
      zqFQM-SFog&v-c;endhv^kAe&&7`#)tl<<L}g+oKLjs~=G_@HZef}y=SdmVlpR2m%&
      z4S|7#vOUDnh$e=%m}QGA#pOle%$bW>K@MWMq?t{aj-}3JrdOfIaHbw4YL%Ao^yCTr
      zp8tSCsf;kNJVR)ourPGG9pFY5sU11P^+2T^E;?pDV<ih`qtOa8o-y;HMj0;8(K?k|
      z&gX1l%Nhy^ORP{mbOQ4@M?X$5w5ElOOVg28mzD}bx@bprJc9uZ0TR1Gvs9DNj43l5
      zK@5`4vboC87>GudF2gB~A?1vdvxuGAa;2OMb9!N}fn_VjXE~n3^9(vEmVsax2@LEL
      zI}KwD!&NqWq1>)(*-XbM&Txc5*y|PS8FK$K;Cme%z<Eq)7~h6>N5b(UUZT-J=uGB{
      zc8c2fP+*sNWjOfgeN1s&K!obBVx?q;x-hD^7db8|Zc|1m4AeuKQ2duUVv5gJ)#(by
      zRrj=};}yg;Tx00oef_vv=cSdUMi&K+Im}ailay;wig}xwpJ9j^U^h&a>(#t7MN2ar
      ztbsM%cCnnVe=k_{#AK4;=ws2R7k`uBX6X8tIxuMY?VjV=U5!B#yxQb3&7{JajxcF+
      z+!?ONb44d9rY$vlx~fOakcvQoqqZ%asjOKjh=K+J<aizPNx@b<p>TwrR0I8sdFZ3j
      z2>AVKyp}mMUP*p{s2e10q`f;hcn3T<c=D9ty^Gf1efSsdqWum!KXq-oXl->pena|S
      z6a5tq(<unAvW7t)T&f4XZj5g95!K*QPvR+8?+A`=#bp-VM#V1$H*l<X6HlKf;$+_@
      zLgPf74r_+?5Thl$Z)guN8g4e42YdSruhD2UZQzBl&+t8jzl4t9Iy%2Vi{X0!e^|c_
      zZumaKIfk&VB<q+gp=FDj{se77L*GD@lDds!M6ctrT4vNTsg`M_x{29G(jG?}t=|%8
      z-=Q7fQ`$dJB0tg$`w3(C8PoU$v-lMY_zlbW9c%alAL37ZO#3bT<-+tHxJq^hrV<i(
      zm7q{m4<asLB?2ts0#?Fn<jw0+uj383Kqb71x2TYZ@d4f@I5mp@F5ba)D(V<a`Yq56
      cXUKk$v~)U6lqnCAZZ0VZ+Ew8hmXLwxABc==#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultHighlighter.class b/libjava/classpath/lib/javax/swing/text/DefaultHighlighter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cc105ee62dff7be25f59c963f45f12ec0ce4ff81
      GIT binary patch
      literal 6755
      zcwVhod3;pW75>g-X5M7-WFP2sCM*>(3mBykB>}1eN)Q1dfI)3}WFE=rWG0=N5TJI^
      z;=Z;nEwln+En4@5fKnB^*v;0Zn@hF(Zf&*JR@-X7bKhhVl0oC|*FWaI`|dsW+;hJ3
      zopbM-@4ofm!vKzvu@-!S!_Rg$I2-G7-N|%YUEbZ8ubc0#ce+yfg~_(|6n}X)Yr$Vi
      zaIv$=&AN$xf`Va%)yte@+6+uzJcM<V%}`-Yqu?-=o0sY6%%t6PUNC8}l10t^MYty1
      z-m5Psh?oU+UHN3H?u2aC*|a#BQ=zemtkazvXaE<;8bN4wYbu#e=I08^s;XBB{PQvi
      z*TP6a;}B4qJaDMsPZ%RG+Qt|}1i{&b4Mtaa7CPPex_OyYCfiuOsvLrGHUbC=hA&R0
      z-6dTe>)dR!vo7TdMlH^?I;mAoHmUDsFpM(9RP!(kmDE|n=P=@ksp5$?$`RJy2W(Wp
      zrg!=FBt1W3Ft&qzBXrR=H$VRn=n*dB7tI}7!e6yU5e=o??p02zi~bC2ZFgJGS(eEq
      z^T|w_B7v%=CY1><*x2fJnn4Rk(ZE6Wo#-SK3>7KLhHx}78f<wO(=c5z`XHlU06pbU
      z(~5kS3LDLqzD_QdChZ&}u#)Lq-btkdldIm9cwX2VY*+||*_&-+4u&xpS+^sz!95|B
      zI*4Yig7So0+`x7ceJ}|Y5Q4!w_UG6@ay3@>b7|?iv)$Hwqna_#Mh$AiSb&o)oFtg=
      zE`Hcp2>M^4LC&;xb(plPtg0?Sj>2?f1x~@K78Wz`hZM501WPs6S=Y(Cy}=fYuWBlx
      zx_91qaGH%HFvY?O!O`!vgjiT9ICcoU_Er@K7NqmpO<^=+wKC>(!4)M4P$E0t!Ik$k
      z_0ExAWr0~XeFz3k9_UdER%<0V%f^TC5#}pt$0AuZm^;;LlrxTvbs$v(q{B+mA~t{s
      zohfI1o$_a86JzC~&BA)tu0x2}Xh)LVN;n-(o4cI5G5x2!dun;*!0PNhO6uMtV6@*=
      z_XRVC62$?aad}xHLl9!`kOM4iotfOxC54J{_JmkihI=)kU&5CR0V_%~HrVLKMpg^s
      z{&G$T#`K*TI>0q4x3L_Xaju1rvHA_3wefMxWZBuMQlGT(Df6~T-_E!3X?+WHClmR0
      z9l5~9g*p;!chx#2!o@Z&!KDmB)-`sp#}cK1QBGZM;|g5K^d?PK<ehAO>H76N1I&5Q
      zqyksl_>2nJ6j+c>c+*P6YiwMrL=1X}a7Er}(=%=m8k9*b@S-?tNKq`2(T%$0HXC2S
      z7kLCFDdprdSv?P```r_o3gawn+p*Kaj$T9$nzeBwb}^!9ZqJBRm8`#C!j~=FOkn!v
      zPIdC_Hg@9{`r4697mm9omHmp1+q`jSqwal&jXN=gP`5j|CEP}>zuU$=daMLmQ?5hP
      z{nT-~KAerGdv7h?8y}J^QsrRBI7O&^dYcgH@O4ozddS4)HH=~Fe|ptcRi81$95j$0
      zu<@vd-=9lv<~{1`%=)3N*2Ukn@ff~E6!IB!n-Nr1olzoNN{m_fj$r7fGBI1*wJP;X
      z%yA_WQ)#cM`F$HR@KNnOVWVDqE%?4RPY~1e(b_QC$C`vGaTQwI@9KAQ*6D0dw&ofO
      z=e`+S(e8A*B~FI{<#DjUs-)Z9sHxeE%eA>$n`do2haa=ll(dITVBU=`VG%E48>sKZ
      zOjkNVt49p9kBR9fk|vM*DoD%@VG;MpkhwXn5M;TV=GhY{l#{Wgz)%+!;14$bh(ECc
      zl7&ra7LJ@=o2&cey+Ibhm+-QMzc7pgrfmFG>zP00uFtE~D>h!$fwFw2Q+IgH#y^yw
      zA?~o+tAa1#pEmww>SDIH2)=3K-zuhtEHtH2<^F5qEmJMmW%Bt<M;Mz~=Xh(ll;jnk
      zEoH)wrm{BIRQaY7WrB>6ppCO}PKAUdY)QFb+R!LlIN@ykRw@Kd|0hD}X&X!ykRCY*
      zXXC0zhCni%aCta|S7f@ft?o%lEh*y$7vrN;2VrSSr`_zll#|Q3xe|iKkHujJ*KH-{
      z;A)OZyd9SD6V{KYek`%))7!Us@*BrI`Gv#hFpeI^mek<e46_Qb_hUqh?8T`2F!mlJ
      z{XQehS@9zzWn6t6b?Xd=^!uuy;S|aUpOKoqcz?})#9Q`a{2olG@$bQ;K2@V=8YIlG
      zW(&h5gfViMQD=LLaX2O$#k}7Z6xZ>obAg)sG3oZAqM#1S$bO3h#l=UWs<3!2rPb14
      zP3#~u!a6Er5s-04!&pzMph0`pMypRh71&ONVoDMkt!efZuZgiQV%UC6YZ+A++lyl!
      ziN|*JzQ^^wZ$IwD{o-`Hl5S6++Y>QCCYik_db)~xPh>P^8jmKjgwCV}Uf7Ac=g~<8
      zkHR&zdoZh}2aN;cbOgPcf^s>spJ(Bs_AoIC8Av}=)Y*rUQ0G9DYN>DPAyDeobv#ZO
      zh!O)EG|bD?#E8a;4BxCC%x?%p1F;9N$cKhtG!XZC7X4VZ74d10V)<4?_M^F_CK`-d
      z)AnLjgMT+h?MF*-<ctPCbxnx+dvNAzPwQHJ#Ns_jME!Rc&970y%X9=~20@>RsMO<d
      zITpvrahN9!ST2n?Q|2HgA2RNp$rPcvMfWnrKx7Jm&>o8tVLqO}6gueca#R+2!?Bjs
      z$S~AVtU@O~YM@$-EPEF9<d81_{!_}35Lj7z04=9ZeH6`GF?H$zG%uNUKe~*6v!ed{
      zu}PaxXmg%6TY7NOZbbX}Jhcax@plzHS4?Vq@Y&UU@vCQsL*_Gn3t-F17%2-ePMT07
      zi%`esOj&~CWhv&%GAv~O6j_dDX*OWY@C+=1u@cwedYT`=GUKifBRTUqe4apz!+5=s
      zo7m6ktqAfK-LK%vH_K+1%_*B(R`2)K2YmHGHM9p?8?4=UGHN}58w5n5AruW692P}G
      z1frolTCPxpqhZ1j+lQNGo1Ql3t&Q))t#h>diAv7QH9c*%td00NRZq$s7YX=wpga=v
      z?ZlX9h&a^;^l?>va5rKR)4z<1>jROX8P|2eSbPVfl@b3Aj5d_2jK>lYe`SKe8+{X~
      zZ$~i#YNU1})S=v?Gq(%2y*<@)@vgo|WO-|Yw7@58SOd-=B}q0pi&6P7sreDa#KDoW
      zj!{XVUR=zP^*CADuv*&TND>>Q1LsQymq;hBkvuQpUARp)qDMC2G1-i#<y<^3AIBf4
      z>s2`qZ^-#3iknTXf3pxpACK>Q4W<2f9rqbZ2k{#2XRnOpe+7Hk^K;G1hWY`<@y~|(
      zL3;5Vda##7K9V=rePlq0GsoirGN7DMpM?j>fH0mX=l0{P(7%2j!ovl^&ofm_PX{97
      zq4UT?_*xIXaRA@$%UG}AT*UHtVaZeByZGL~GUJQTOy;eO>n$+;-sl8s4WYVgl~2KF
      zQ2As<EfQ!urs#9ac8oWvW+}5QC6UgWDMmbMmF>|twp&<x{9duzgU9uyvhebQs2)tS
      z;z~qqZY2?R<8p4@vK1F-e(TmsKT981)rTThd?#YwvPekRnbuo4t1=Smo3-LPtF1R%
      z9FK&QZ-t$;+t0iw`<wSv9|t$EP(iLB@2<osxr*iRGdzPn%g?E6$hm8Anp{V|U5~Tm
      zb2wW*k8atDE948fR&KyH*^V1!2S3Gj;!fFx2jwOl;PWxL8IQ|uJR`T@MLvHcx8oJL
      z1OJh`cxSs?#>%}Wkeylyc-9uG342~O(caTuX=U$+9uH-hDWiT`88BQ5U;;;!X+d5K
      z+6>byY{R*Rhe3XJb{W1}xP@}cS3Q+}gdZ0w(FD$D9<=r=JxdFvr&xF97VAzAeo`OS
      z$4~1k;*sz!lvhT=H(@yYH)32oQn3poqvf^n%BVjY(4an3%=|n0;Py_ReN6EO5t03<
      zl!q``9!9M^g6VPqi{w$9&iQrnjee=xS}eG&Or@V0{<j+Ee5O}#Aky9ocv0_C?EReX
      z22Af4_$A@c?=3G?BTT$s5$F(g&S2TrRIO#+{F++Am`*T%!(Ih<`7M4|0PBNXXHnZF
      zg*2TL-v<9ZUQYdf$$o5Z;TiR3{{H5T{as%ZY+g@z18?Y@4*Vyv7jHNC%jyHWaja^K
      z1bRdY89~gqVLX#k0<|VTOm;*~@;)F|5L*Hg3B+%F`#XJ*F5>kO@@?KjzeiXf$6@jW
      zp?!+bK8;E8L&Ewa9_&xyBzcnO*-x-Up5X!iEE4h@^71@CL!QGYIexLcU?5-UIa-AL
      zk^<x*oW~lckVm-A=1r!IvL}$23i&Cl&cjW0Jd-O^hJijAp;pRBp@n!q<wrndv<ZdC
      M7;0+fGXmfL05hF*asU7T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d2bcd8ce23bd315c0dabb1c32ea692b38790296
      GIT binary patch
      literal 1512
      zcwUv0Sx*yD6vzK}Ix@B$_C-M11>0$*0`4q|fQd=*L9`FNP1`GuX*)P`%aXVfU)8w8
      zgpXlDWAMS~s~^gE?zAbREuv{M_sraL{^xg={`mRjD}V{y(4a8PJTy1Vt%SR271k1h
      zZ;8Yrzi$?EVnuA{cy`gw6!W|wPR|SBSm~nR_X=6tOy~Gg))E?2hEcylk!}<7X;(OA
      zM)+MB)Qr8p%`lLx$yn81;bNMhvA{R0pInBp<=)}zIWt263~ZG_<2f#=7<y~fmdbY|
      z)G%WeEHTG08#&zV2%ObuiqIGAEDs@o79BcT83K`LDhP&l9U+9J)u}^6gS1ZQIF4W#
      zJvgbMm!bQx)H+U~kIG%+!e8!CBzgo>7y}s6Fv!sNS4SPgGC`AU{6PlEcv{CXG%z$L
      ztpdMY%%{0?S5AtdEoo=WT*`DT`Cj>`iU$^v&DC=K$Fk5s6rQ8umB&kZLFZtss@xpe
      z;&B~uv}!m<lr`y=i$coziwq-yNgY!-&(PxVyuHEw-5jnn`rn!vO-Y4|Ixb0tMl+lB
      zhpVPXs^!ax8OCbm>OfJgs>8E3Lukb=IvIY`lEJ-o+cho~8T4C)0(Ta2rt5N7!*$B_
      zZ|$b#tJ`o4(WC?PUsvfz<Mu4Aa?*-=C#^4?0rJ$*NY5sEdj^GWfDz*}nvGZqZAQF=
      z4x_JxE+e*&ZiapIGn6p$iQE*7(zDkS&QstzNk1YX2kmfa1qH_F#wbhT3?hJMMJYA&
      zEQ4Yd&x%p3grOCv!0gbCEFw-YXN^6ydHIvE??~*TC-x1A<v1}-DCDt+k$qfHa6r{h
      z1p|*M_Y+ckicUNy(iha49m@66BO5I1SIC+u<}&fnw20vfu96bNbd~2-g=eZB&!ERc
      zU%Pe@@?mxSfi+D1mr^QTljs}5dQ0iv5!QQx_<%`#^r1~v(MGFi-4!$iGoI=!=I9L3
      K9m6%uBlrs&ziMaz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f64b587d337b77e00ccb80b79f3199ac8e6c2b0f
      GIT binary patch
      literal 1219
      zcwVhkSx*yD6#h=Pp=FQ?)CDbzR%{1kiXv(>Cd!f!8+`zq$lJ7YtCtMZWEO;f;a~Bg
      zAyK36KIp4)`76eAuT6;ol7{#&bIzT)-*#?0pMSsm2w(ws4I~Knww+yP&kkQp|D_#?
      zy~th>EhqM(jcDH!?n=8E?+8CCt$IS$$8oDAg3_uhBLgWyUcqh8VeqrYwrEBK5`^*E
      z5!x=neL`CLuGr&^>jWbZJMCTJ5(*k($C32xM?v81*JP-7JFctV=VZ7RIL#;yn4h)?
      zndp@aOACahqhftzVCu{R>C5OLVY7TXijz~WSL%e+a@!R-5XMa8Q6N13|2kVrXt*YQ
      z@ig9Ph+xxccs!tyTD$3ZbtjN&-F=u+6C)f$*M|vx<~+27@Ob_*%dv_k&R{r)BqmkB
      zDMGSbsT;UL7(M1NbC|}Y!d)|wMNW0sO$`3+Dkjp%sBYGTfdSRsFkxbdeYg1F`4_O!
      zj)SIHlPb&jv6knREWup&eGx2sP8f>Nz%9b!X(AiAO_=EqNf`PE%dXYHFvU5N{C~^v
      zmDYEtc)IcsbRFzg4h!V-YN)(Q@Ri3|#*c9KgwZL5v1aFr$pehO)mzT-J*T$P7Yxu>
      zoagnF7R=%TE_P+cSvaA)ODvt##Dy;L8(ycmR;}3%E?Wnfu-;?(#R0B%P&#a9tho-#
      zR<Q%iDx^A?JJg@xK%iep(>G-41IFkRCh0p$^aB<8sXbZRe6{DP+VfQHd8%Tb2aw{Y
      Xw&t$#M+)pQfty&w68k0Y?f`!P{&y&`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d9bd130e70f9177d1adfbb6cad4839784ecad0f5
      GIT binary patch
      literal 18010
      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
      U7Ub2kd|f(--sa!MAbJP*f01-8M*si-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b82e72530333ba97544a5bacbb2d35ee2739eaf8
      GIT binary patch
      literal 2801
      zcwUWF{cqc35Pq&n6E}0WF0|d+b>CZ-+HCDg8CzRAwzOp#r5&WSjKRQ7+{`0&isOtH
      ziEo4ingn8E0wG}Hmq`dAkk(d$i9dip2YyG~*-n<G86{HeyL<1Rd*1i%UjO;eZ+`$d
      ziE<Q8gn{eE4P&{l^rmI!`&@I`?He-}jB>%vxGM!SH&)D+7fsteGF~v{omn!oQG^L?
      z64zHSIBI(Sx|wweYQ{AjcgD!itSp%X$`D#pMZ4r0wmWMS%4Uf35+OEj=K?RWFo|vK
      z<}!N46e4t7EL!#@$Gl+`%cU{P;S5&MmPJm!Qx>O~?1qJALVVh>@|JD5=7yC>fH&b7
      zS-0$LT#ORJuE)3~SFsZ!#f62E$-AO7D+SZeyVnTOtWT8CbS1?*F<jTN=F6^GBJ7{s
      zbd={R%Nf%hW|$Gnw%k#|;p7&+nci7ul`7`U7zl?{?89NgkuAg061QX0vdyXT;=Jk1
      z81n_*SbVaWH43waV~HLZ!|pYUX%BA3+_D3BFJuTaO_=F~V_P!2l1h8zLVT1lgm6M4
      z`&du*&bBbpNfkZVE7D^sIuH@*aTU9;TcjscbotU572Vh)(y)q7scgty=6ZysUR)rq
      zncsflq<4tXe8s?-xFc0|7<*9W5SN^d`3=TaR?pQ`_F%Gi%i1au<2c5OWbT#bXkp8A
      z&_tX&?OP^;PEy=rh5_t6p*?{2r^&YtM=?#<Rc}6DwhB4ZiD3#S6g<x`m6;RMjEWb)
      zdyW`OOQxM898Ycr-kd7{9aiun$NIym;3Yo0U@R59%ng6`tmL>VIbJ37Bvb!|WbmQZ
      zPOyS3ldX)c0-3hztSaDBP%6VISuDwNU9zMfo<$rBDkkwPx8ppa>!F@JshMKg$(j?E
      zbbfck20tOuOgnAcrjsfdrIJ~Sg3F)ye*?nTSj~vwAh)PoFRk3U&4{oTmCFta>n$~U
      zjP-3bx^#MLjlP}r9W{Cz>pN@oIO~tp=<WRE`GNd8gEvo+_wEYbJVD-@Cyt*g$L_;^
      zejZ@$BElYTMbmpi>p1wUhkAscF@6Joah|_%l%)f{9}+m`p(#i*9(j^5X!39m2e`9r
      z2@4A2QfTiwdh3uWgcb^W$eQn2MUGXGV*#>AkMeFpUJgCT@g1+ojuYBCj%)fV`n8@_
      z3}_wURSaq!&8s-29bd(1tu3;Op$GX7F=J3We_A@3!!B&6-DsySbW=C>(;gh99*@_k
      zk6z`KsPalwc_lEyryKI5Cz)Z`lZ0zCdye94z;%?p#Xq9$VT$!<k>Ib{F)wGQ?^Vqi
      z@iKA8<0+gAu=+fmzku334E$7u5;su42c!B90Sw`MV<JQKM24Bj$U}&v0wQA#i44^f
      z8E;5r91{(K`+unmo^BZYG%hp<K3yMtxnXdcdwp~8U_I?@!{BEc2A`@AUThf5SC$`4
      z7lOmT|2w8GujA6BRPaZ5zah^TUN7}Px(Mjk<Ik-jGj|vJ^!S`Fwd?WAz7*5rS47g=
      zhSu=PoD?Czy1;+wM7bk`w8sBI{*UVM*ZkO|9-prw=c>pH4Uu)(>l&`j>1%lX!D(OR
      zn+CK3h2BDv-sbQ7I~bt%aE9K;2z`hYeS``6m@n*4F+(@8OrPOh`Wzq77x;v3;U;~F
      zTXY+@=_`CoU*isagS+%Sex^HErypwC@P2TX3hrSMHlI@yiXM+8ya8!mDT)IZE&l>u
      Ci3XMc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..277c1a82e27c5c86ffabb03b457c65c71f841d5a
      GIT binary patch
      literal 800
      zcwUW?O;6iE5Qg7L92-&xLZDx1d#HpeAOgby^^mF(C9PB`%EcAeYGbxxk+YWUH6Ir^
      z^Kal#RqCNXfFFfA8?2~Ja>!-Y^YOehyW{(Z-+ut?;f;q9VgFQ|iHjgRS9%Z_d0~Q%
      z{2}t#gyu4q$DJg~hf<sMP)0^2`g1I;>%k!eQ|LiIGpUHonEI3o9i0>q!8Io;Ti+#Y
      zbmwc^X6A#^%6ufW=7u(p2+m=0EEhp|;-dn$iZW_GJS-8u&k&lNyggk~++s%Nz?f9^
      zb0b6f*nGLGwCv@>zD&P~ek=)%ZW4+3NTka8MbNR&L3lssy(V_RZ{rQ5>4_mrt!-?M
      zRDxKrM#%H%L3;tuxF&m~2-Psj(@1_%ws&)8iyf;$@V{y;)5BO~nan)ABD|Y#M8eYl
      zL*gy3pv?ap)$4W-{8i$JhXuBa?6u)=1gLGbexkb7BKigYZdA6+wrZ2^H7f2E>g@ZB
      uaWPiVu%cMSS|PN}r_GfcPjAP#YeVkMKWMo?OL#uAFYt2I#==d!hVvKe^w$#r
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bfbd3b8330cbc3be7052569ffc197c64f40629ba
      GIT binary patch
      literal 1181
      zcwUWD+iuf95Iy6hc4AEHUMQudG?Wk$r_@E_iB`O%ARz_%P*k3sWJz7QjudY~`3^n+
      z_yi<qB_0sZd=z4KV?hfBENd^bnmKdM%=p{)&tCxC!<Geu@ZcyI2Pb~=DvbNS6erT(
      z6)%HPB=_a(Nc46G-O;g#WmTK4!yxX9c9=*Ji=l-g!Bz2o#P9xI=SXy=1(Q%Yk1ECt
      z;9ra-nDQ`8s#}D5J0FE@j@b$0P(CCya|bmJ2*uW*C(0mPc3`1oqktI)Ww?YwT{+CO
      z!&p2U9e2d=dC-XjVXi&s2GKz<43(We78PZ}PR`s}HDeJ@A_JK|_Xz73rJOI;qwz$6
      zjU_BwxJFq0r>lb%Tql(KLhcVn!!A=^s5jcbcWB$f4Z`9dA~ana6|7shNvP#h>EITs
      zTGdantZF5rK{`%1WJ*&fto=tidumw1(%;|+{oJ#V(=W4cstY`KYHVzRJ*n^GP;pz%
      zMA=lyxGqm(4sS(4k_eui`3!8XI1eJPDUj=`3FZH@07IqX*Gp{OXUpKz_L`sIcxRaY
      zz?Oko-c9y_`37@*chsGu=CQyh;R+U0gcs~x;B&TlimP9-`qcXfXX6xWzksHdgZUOE
      z^Br9Cy#}mIf>J<ryNwz{mYCcf)M2>bTO&<UOOu#h^9)`#MMJL*z2C*Arc3-);KTR<
      DC|x*#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7b337be5fd8f2c1eb8cdc926812783f0460c62bd
      GIT binary patch
      literal 15413
      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
      UCQRh3#FeFdWxU|4d{uD$FS^9dVE_OC
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DefaultTextUI.class b/libjava/classpath/lib/javax/swing/text/DefaultTextUI.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..49557e640009c7268c9e00776b2e93ae988b832f
      GIT binary patch
      literal 345
      zcwT)@F;2rk5S(?K7>pr-2OyvV3QmZQKnjSEkSrQP`m?ivL&lEmGvr%TNEAGPM<Lc{
      z3TU{~&Cc%5?#<`d`v-tyYzFWM+mHHLFIDwo@_S`@Y1NqLy3XuG_}z5?pRo5^v&i&Z
      zCAu=Hx@fS~5qf7PH+Dqm>>o@C;g}aCr`qz2;9nLq4$(mvp^F}&ADf(S>ZgRuiB2*m
      zY{f;Yv#Bmklm8Tb`(P@<PW->gp?r5+)Md(7#_jskJ!*#iU5GO@hvbS0cnDm+BJadi
      jf$rfOR$qm9SQ88-0;lkCj!0P4im;9ir|CN!w2Qt0*;q}t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Document.class b/libjava/classpath/lib/javax/swing/text/Document.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5ab171003b12f3dba5dc4fdf3a7ae24a645a9289
      GIT binary patch
      literal 1226
      zcwT)|U31bv6g^wZN1;&KTClYrR&5DZ8-4JJCl#DwCNp+Q+ZUfgvSK=6!z3HTzvhEK
      zz#rv!cY%^28K3U%J?EZ#?tc9F`|CG=cX(UC8pHm*J+Y@|^urTFQ}U@aJAo6AxR3>`
      zGt?Ap`Zj@I2KU^NRMD3qw?`cwIiWX}ULdZ*V9Z1LlVQhN@`*;8ZHCIHKt$3O^3L{S
      zUc?4NKGGV5-FVXH3xOgw8FEsk7<O&fU3js)NOHkLhNfX99rFpH<|?h-x?^Zi{jG2V
      zd*Jh~>m@WUvNW=&TBqueRmrb{$Wy~I92>osl{&TsP6L;^Q-|x5i3-?bI7^W~+O8Ei
      zwxT?68TN);cKA0t_T_aD$ga=TPz;AgM!z{q?W$DP74FjDQ5HYpZ-WXfE{5_u!y}{B
      zV<=N*d5h<UwR-LCRyxJ7MP&)6k#7C<e_m@;(U*28mu?G`x*--r-RSj_eI8!W2?1%<
      zJ|AjTbxE6^h{*h`g5kZ<OY5W+K1f0avE+R|lPQnm#5puG&LQJus4gG!Q81xLn^PlD
      zqCQKc-|xW;$bOh4BV4s;Bs*WnLMX28RO$zD=<v^;`XZHu{-t8)8R$OgZ?9n=Ipk?q
      z(7Ph-ONo6M+w`?7s6u`5E!1?}#tt!diLp-cF=gs#Xyggit9XE?Iv(Ok$77u6_-u}!
      n;`xfgDPF8(UgB&ebB?C2Hqcr@Ud<g|%pJbQ8$uZ_^%Ukm61Pm8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DocumentFilter$FilterBypass.class b/libjava/classpath/lib/javax/swing/text/DocumentFilter$FilterBypass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bbf919d73f993e7fbab831148b50e9ef95836aef
      GIT binary patch
      literal 733
      zcwU`ST}uK%6g^X`mRVZ%T^2!sMQIWBVg!AHAoXDMK5iEqS$Ac2Ec;nK1wHfw`ccsx
      z?Zc9Y+J`wa=bn4#-ZT6B^7sT`3yU%I39Q%Tjcnz^Tjf{thFT_n9JtLo`Q}u4hV*g=
      z4(}Q=3}bKvQZ^&+N!FiNYUCP$=$`VG*%#=~u3ic_N5K`v(T~9dB8UnkOUkFSX1zlC
      zLRLHy7%K&?^e&}V_WVXV=30dUxzb;HDhLc!$-FBBGTGIi3$Qw&{E)OM8_iLHoouo6
      zIZ=l#^cFZU9H}%7mB|$Bknxk2OAVs}pKTczSm{YQlvj32EBVl}SDNa<4Nn`%7K^q}
      zOjE;?E;GB#{I8dC(9|xmEnFr2)vTON=c$XnPx{DX$A}xw2rT~MGUs&r>@0!b7xs(r
      zj^CBn7@xKog=N<sFmTVCKE!#AGXfiMu!$kwB|0L;Vc6ej1j#n0Fv^iJjya5JW+pKC
      ZjhVu9H^Y@@+V{+2u6>hjU>*z3;46tVym9~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/DocumentFilter.class b/libjava/classpath/lib/javax/swing/text/DocumentFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a218a8d17733b6c2486da997ac6839e11cdbf283
      GIT binary patch
      literal 1408
      zcwU`TU31bv6g>-}X&~B4{X(g2wXFeK(DCC1r!)4$87iZrIJ`O`ENyB?m}IH=vwXoB
      zAN&FSD95`ClPWwgkcYi@H)qc|clYk^KR<r~c#0=F5)2y`_N6_jL|<M1tRnb8RE`6u
      z-{rn|<9dRJIy8n=395KDLEg76xFZ;rUb((24j7VFp~;{f1#O;25{8KsmKav*uFv1~
      zyDc7mvRfW!$kqeL_L_F+%K3Ov6X$NkuvMR7qsm~qe#Ar35Fue09BbB|?NK=V*0ZCi
      zTB~0bG2*CB6TBAmr_~p{!9`Wpl|C6byeHhik91@icBZx*+HF~wgv8i1ZsN9%TMT>i
      zcr<YxcNkt+i+N3SS`6j+PK7Qq=yW1ZH_B=>iN>d!opwN%Ws@Ye%nUC?6Y_3wN!R;q
      z-b<<#n)2`-nb^cOL&}mXMCft<Oq?_5A@6y%L)7iLsTVj@>7`&|7e$7b)<P7r$7z{b
      zsS)%;hm$FCzxKb?vSgtaulYU?k390r=~bBj7Jx0#V}txO%IJ~NsMD-Mkx@()e_;7L
      zB?+WyTvCe#WN0);0E*WrGHSCGLamOeZYY}1l&2^frTl(Q8)EH>DoqhM#xhP6-SZJ}
      zOeeFu$SDZ}_i$gK4dk(|{2F+G4JEWmHB8Dj2%}NdOZoL79!`p$QXOxVXmJFKMfF%z
      zk41ItP?n_CT|AzW`l1dE$dFV{%cX{}Cgna*{HWv(M$lL;6U${{xy)EjW+kdtQ<<zb
      TMgR8{_dd#solz$-R5ar+Tl`0@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/EditorKit.class b/libjava/classpath/lib/javax/swing/text/EditorKit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69dcec6862ae12187db81d25c2c7aea4bd0bbe2c
      GIT binary patch
      literal 1450
      zcwUWE+foxj5Iqw%SqLE@S3yuv&;*r$AfT}<C4nk11!^!n@U(13Tx!`(ZDs}hC121N
      zOCS6IKgSPHduEq}5H7w<&vc(YeR^)c{`~j}U<OZgL>PwljE}})rg~sGyBWa`MP|8d
      z3D<jN2^|_kmyBm@gQ6Qdd)y>%jG?FQ&DpNQjUAioXl3YC0n5!4xn~)+^+`sErK*-C
      z?o}<<dAFKpU~3E=IoGKQ!x1IJ_IdRC-_P5Nzu$aih&{6$OFU<2Nu^5+TFx!=I9kx1
      zKoXq{odwI`>;C=@_cntH-38aA0tS_#b?DT@2dm03T)4Q&EJM_kEs*w9x^TAJtgJee
      zzyPl67-kqh)A+h8ihiZydV-gi4^3VX)E`4znOm|m+otNNhVpAc>DPwCv$8j4G7Mgb
      zV9;ws?WV^K!E=Vk1sz<dwxKN*qolq7n&<Bg-xhh-^!K?#Nh9YaorEbbzRSf+Q}#gH
      zHjqkhH=u(E!IA`{qZ5?0c~oiIx}xw19^y(CKUgtLYUqez^t}3~5R{{l@-o9*uxs)v
      ztvVH75GObGvzMq}mAe_Q9YR&dG{Zy_e#t1yt0Eyatd2(~cUsolICYYlx{kLbjC)r~
      zh#q*BpgozdXKwi7|5{K4)AhtHNp*S2pzWgTdnRA8<gHKEF87qo)5bvW2oXe~(`*QB
      zh?8xnPauK>I%rOBipDPT%#vkfqm$oo?Tdo+&=@BREI`9k^wKO5fY672vP?dYkYFh!
      zXeENd<1KcqRvKY%gj`7y1H2&55@N`o;%lw(jo@a;_gHBlUtLU0f!9@He-I24<?I$l
      zm4vaYDT<d-(BF3(cOd`3aZD(C7x$D+A+78r?koEM4=HO(@kWrrjPlJk`Q}JUvv0o9
      KN2>*;bMYUX4^_qh
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Element.class b/libjava/classpath/lib/javax/swing/text/Element.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..570363d41b23d89c10b952dc89c6306339e8a7a3
      GIT binary patch
      literal 514
      zcwTK$%T9wp6g^WbD5WiG)tczSUAvLEc4d4dB#kv;=Wa>|LPKc+L*?6C_yK;D@y<AH
      zV}u1KGv{&7g|F|APXM>Lu+d@|F8G?)e)*o}i7!Ph{ijSUMJ{c$89c@M87FQ!TZl+9
      zbQ2-(r7Y4}B}K__JsMB`Wo!kZkar9n@;t7hO64+KH90mksU1?A5=tC2s0~fx{!aX`
      zs+41IG!FjU2l-so3~fpx!c{~*pT==1NNv;cg)arez|{I(H>3sfga&vdc;yA<Y&%^x
      zEwHQ9BS$ECAvZIuw44YY>uPVbU%0A@NIa(*O?8d$Mg>|7B!YSz`uh8@p#Fl51C57p
      hG<M)>?4qZ!Z_XZ$G#=wb<G|dX;*1g*>F4@CRM|gDU_4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ElementIterator$ElementRef.class b/libjava/classpath/lib/javax/swing/text/ElementIterator$ElementRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..577995ffe67d55571b6b954a5531399dbda52a43
      GIT binary patch
      literal 667
      zcwU83O;5r=5Pee$l~S=HqT&}44p3C|tkDC}h!Rbda4)cGNhwKNl)vSHn0W99_@j)o
      zh|!o3+U&>7zIkun?#JibJAgyvH7JB~*M72xmEhU&9x9<2hLtl{^n@4ILgCwC-!Dw!
      zTXC;JC780H;@S+qX>~<ABxvFrLde#q(H#+@j@J=G0@Vny@X-kh2Za38ik}9!GIs2E
      zPIy8%EzX8dZ=uvAsMUT)#6egv5QnZKf<*%fqzI8>sVPs=2BL_`UB-ZhImXr<Ph1ar
      zE#WupmMaLUdcSSEP1|>5JV~n36k%^>kALoz-6_H)=y&~r-xlYNBuf9o?@L00QS&_E
      zS6w>@M4%x@$jwq>;$JP~*i(cbUk<hi`LRL3H05P*L_88Oc%A261Iieiw#p+Utyh@V
      z?g&ekGQ#o;=M}8*oPx@8of$8f<q}C;VU;r(KIdAjAv;z|W1Te>{x`<8o7m!2XDz}u
      HcA$I#g7Bf&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ElementIterator.class b/libjava/classpath/lib/javax/swing/text/ElementIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..637badf0c0ceec8a2c53aee1b46e9403bba07c8b
      GIT binary patch
      literal 3003
      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
      O40TTn{>}>w!uCIJXmW@E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/EmptyAttributeSet$1.class b/libjava/classpath/lib/javax/swing/text/EmptyAttributeSet$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d7afc62a65ebc5a47b3ecbd9934059d9d0bee0c
      GIT binary patch
      literal 891
      zcwUWCU2oGc6g^H#vu1&IWgC>wGQyS)L{^Chq#`6V1qrDu51l5#Tbf!;ro@>N2g-lq
      zg$FbVBzWgXA+AFxQ$gAkIlex==br0h|M>ak8-PA~1~dly*nj8G-TZwdX0GIO>3YeD
      z{P04`ESeOOkGZt_25Jl~mFdPl<-ML9^FSJ?Gi;P-A*0y!M3L~!mr*Jh>N1RSdyfQ$
      z=PL{-|5+p=`J7?Lxd@?m#8BH$r@R4%%N7i*n9$L*&_IhpcT_@i7zsWqk_pca{YlIj
      z+QT&P<0C(d)Vcy|s#S*V3+UQ?YPA{q`9Yd-FXjmsGB4%cGOP;XR3O8;(;F^3HZX95
      zq5IdeQ93Syu;O_0fS)M$R&a~#9;MxcRJy#9G10*tb-uggx^t%XnEDg5(h_r=7Fobw
      zM(SLf|Fr*Dkr=F3Lhx)q_Vb)m_f1a(ahg+&11`gKYTyCG*7;^w*nz{aHsf*ukNiZH
      z?EE?W^1~Qlk1kB7aS5!|QujuWQK!*>N$4s?PodEVn7a=@!`eN?l~1(Nu%@tbN3o}9
      zQ)E%B(5qN4@eOQNRUXl-_B8$Df?Y3>@C;L1Ft6cy#e7osM^(R~^QL|C6t}-GRY?A$
      Xt)p9J-NROi{#FNN-lu;JHnx8O-rUdp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/EmptyAttributeSet.class b/libjava/classpath/lib/javax/swing/text/EmptyAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d55c939b23f81c91622f4a44f01eb8a91071ff14
      GIT binary patch
      literal 1728
      zcwUuLOHb5L6#i~!$}kV!f`TA|Bg_M-h_V5V1Ti6*pb<hManl*DSnRaW2SVb)rCW{0
      z$PdsB3tbsCF}n3f8PDz1TH7HL7wx(Co_o&sednC}^VgSe0A?_kg2XVsqwcE*iv2`0
      zwiSmTILdN;*Ew8t980UZ4qxL=3Q2};aZk}zx^<_z!)tWf#xN3#4hJ%{Eog@3++au)
      ziW>~cC3A~skU%zv6xtcODw@Gp-FlT<>uOc!480Yzrs^B2rHQ?Nm~<X#HbcJBn(RD7
      zPt7zORWt11oMEz1i3*sHpA<I<%TVhckC>N1-dA;3IAaLJZoCku_Ybq;W)?Ee<S>XK
      zV!6$oz`bO;hT~Ofg(0JcvW~V$%FtOecMrov#tOxjLAfwG!$gzv6q{8b@t7Y*xUW*Z
      z2zAg$Ra{5Ym1V=Nb4ztJ)0j`;BK59y>+&-h<S{8mqY!kgMYqLNbrYL=+&1-nepj`)
      zC}di*Z}EpTTU!kM&9qUY+eMjIy=JF0dwI`Qb?Ux2q`Bo{ORAX3An`p~P()_Ubgde{
      zt%;c&h>@8VFjU$V!{FAEuG%)YaT!!J`eb@@S^8+~X_uyzLY9%0OP`SWNDB!$`nP$9
      zv*@6Iu5kgK=psu>(c=f-^wLsH;y4ny;6<Kqc>PGR>P4UDmvD+!60Q3&;AdMTE0OIe
      zf5vHsBgo0)SmIk=;(^A+AaMuIV%SqMf^&YlDPNgX`Vh%c3CWTIS))X^5jp1*kytcx
      zJ%k>XHRj1;;!Q=-V+tNLMIXlnKXTUV6p;Rk{C(=mM3lr<C_y?%P>c(Y(LZPkT|zl3
      zJVyH23Bsp*;g|lei_cH!;<VpIC7|?_?ua2Ol}qoCO1?)jaeep*!{r~4-=eSl9kP$}
      z$N3j)h|qu+H1RJ9;T7S%#w6JS-h{@p6yTTWod`KunuQr$p)3-0Lu9*(Yh*Lz%X>F_
      Fe*@uFKvn<%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/FieldView$1.class b/libjava/classpath/lib/javax/swing/text/FieldView$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..efb6ff46a0b1939c090981d13c59e08c08a5a78f
      GIT binary patch
      literal 813
      zcwU84T~8B16g@)=YnQRDfK~YxtF|R^>6;10mklH&1s@=NA&^YBH*|2_HM;}lZ;>b_
      zKKKLtQG`1~C8z-&X6MeCbI(2Z&i=mq`3pcBEe~S?^T+B`odx+&Cr5#yGZSoTiu+wn
      z!+P68QJ`uWL9F=xQ}37}<6%Nz`F0+iQeuK|z#Qu6+)zT9z=Rp-yuQXYI(HXYXWj>$
      zX!B8Esc|2%*%c^;X`f0Ecr4-Jk&gl@5+zgx3JpuBbaX;HCtrG$?WtZ&0#ltdQgK&h
      z+MY*X(OMH&yr*8h&DLaYl%ea!`T{F|8@%22hK<>ykLQ^6@IqkrZf%J<%(MCtnJ`U^
      z(r#Y0M$^d$YRIa8@O2-HSoW~Qt^9v0@zOT$W%QNLMqu2T;#of6RKVX&PqK(MwH-+L
      z#@joa$KJLQmJef<=fsn$Y$Q>f=B%|%W{~zJnzn8^8c_84#tqi^X$ri?A*xmTLj0$V
      z@hZV*bdsa@e71<+TKx{$`hoJf<2<pLyRq5(nBqusY|&}VIQ%JUBbAVM%bjd}gS^1A
      p3oQIAbHMwdlc`-(M=~~A!7FF9?s8t^jmr|Q960AKe~bK(jVt00zBd2>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/FieldView.class b/libjava/classpath/lib/javax/swing/text/FieldView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d418263272bc298d7bbac0713491cdd09bdb647
      GIT binary patch
      literal 6268
      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
      PL=`!P>hTt--DUp=TZ`3^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/FlowView$FlowStrategy.class b/libjava/classpath/lib/javax/swing/text/FlowView$FlowStrategy.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0935b8c622a59338899ecce5044756715d41c72
      GIT binary patch
      literal 5963
      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
      RA@>t`l$U2M5BC-Ke*ydgG}{0G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/FlowView$LogicalView.class b/libjava/classpath/lib/javax/swing/text/FlowView$LogicalView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..986ef604d1f7f554895a572985b5505adfba71a6
      GIT binary patch
      literal 3269
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/FlowView.class b/libjava/classpath/lib/javax/swing/text/FlowView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96290080af64b30b8d4b3a4271f1ce6c134f8bc6
      GIT binary patch
      literal 4208
      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
      XoHy`Ga5ES5d8Xh^>PUNOd<*z59`m1~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GapContent$GapContentPosition.class b/libjava/classpath/lib/javax/swing/text/GapContent$GapContentPosition.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..30f5260fb173504d1fc71d0ecff67e172555a080
      GIT binary patch
      literal 736
      zcwU84+fD*85IqHCVOeFxD_#*XK}-aVZyH}nBqn%CG{o0}1*^DgcI)M%d@=Eo_}~Zl
      zQO4;8gOOx?=yYa!&h*T*pI`4E05-5<Ai}VI$?y0>*}s=gr>w+-D%bc;)pe9`RH5%4
      zyS`M?bqvH9Y|SZmIWdl!m!hQ%#2K;!m3~MJv1{&KG34uEw;d2>n<1_)q+h5o%!i>h
      za7Q{)?K0$wp~%$+38=c~A_<1Hg(OT9QH)whA;S<YYCyU!9dUSj-4xy_Z*~PkrtY?Q
      zx4}KB<6bhR#W7Su8yOrMsZDl-I%>Clp@J*-wU`+T1`;ObuwY=G8u@QL7N#)GV4k?Q
      zUQ6srEh*i{1dqvJ?K_U}s$K5;!Z)zYFdI^sIvo^@9LbB)8bXAA3#kNbTaS(+ok_u>
      z(_!+qDApOXwDy9L(i`lj05e85P8gtuak5t6o0z~P?M!#ltFTGCK1-CIk$uJN;~)On
      VFMguOk6<ydIV=TLb%i_%z&Bx;uG9bk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GapContent$InsertUndo.class b/libjava/classpath/lib/javax/swing/text/GapContent$InsertUndo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f93ebd0b84a6cfc5acad9e08679889a840b96927
      GIT binary patch
      literal 1557
      zcwU86+fGwK6kSsal{yMyMHKN;K}tdD{e}Ws0jp??ml9u04($YvsppV$rpj0N;7|B$
      zVlmM~UyK@KqQ)2>Of;Gp<4+jZ97<cPVw28g&%Ug^_G(}Kdh`UqUYw60B(Up-b<3Jh
      z`L}InCZ*N9PEA;IY1h%p(cKxxSDwD=<lP9u0zI|9MOsrQr+w{NxxmGmE~v4*tpyry
      z&niy|h>So}K{+#eRv>JW3$#s|B&mYM6qmKfOhW?AbFOb|+jabkLs8p>R95A*>(QY}
      z&)R<X9)YgO74RCz<F;e#VS#vJMbAv8FH1~mH?Nw(q7o8oqG&)&Vl6fZG$i`6=4GQq
      zBbv-<lSBkf0xgraqb?M0PAl(<>DfSbb5<d1dA7NijbQ^>U_}@;1QUCsuPu)hHIOpK
      z8-fL*WAiyR7jP57PJ!;a8Kf=8af2KcSJOz3#CB|mq8EJ;Bm_EFz#)-Dzrgw#r7tc`
      zBI8`*jMzvbQ9lvVS8p^V?UsmQwW*qt*n_>CEt4(|TA)2q39J=>3EVHS3e6_)pu`~@
      z<|sXN)4fFiJ1bGk`mWX7P!w^*A~^PkNP|94S$Q)c(^Z8b^6RO*Ylu1_F|<h3h{PyP
      z3P?K`%M$7XiA+7_{{!kpTH-Xu$ZK&fZ)s)TFII)V@$bB5BbfO2m@lbiV;)D061nUa
      zy__1ijqF;gQynxp*iFW9l$S18zOPs|TGbo{LbdVFppiRO&XX`2hxu?CTtjA@Kx?b{
      zeem8ukF{vw+REE?zK6NTlKmyDOFqQ<<dzcJlU*fr+z+BRb8QQJUb4b7=6ufh7wDvA
      zdr&)uE$9j=#;}#OL&0eqPo@?nOv?`1!o0<Us&@mtz!?_oP9`5<o#4{WZ^r_5l`s(4
      zs;0pb_AR#@n7Ri!^%(JM4{_w_eP#<&1H(94M!c0Q0Iz9%gATk!Ki={6Jx1^W6ZjaQ
      zmx~z6=!MZx9nw3&85kwf<24ZWEns+x`@nPbmdyiIbf=PnO)MfDC&Dvjg!}osSV9=*
      ue1K21ekNOAi0CT@@r@qeaTq^{^k)sq(K5;qGQoNl=eS4tCMeTMgnk34@o}91
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GapContent$Mark.class b/libjava/classpath/lib/javax/swing/text/GapContent$Mark.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..be06f267c506e3404c33fcaed7aab4b03bd91ccc
      GIT binary patch
      literal 1400
      zcwUuM%Tg0T6g`~>Az_3tf{Fp;smVkLg6~8(lv=3@qGI8?lXSvBn8BHjMz=opeu8@!
      zS_NXcuw465mbW`&kSYwtqPuVRoO|v$J$L5U@9#eVT)~|fLJSj|`~`32{Fk;<&q>je
      zxd(h_*>$9F<je~9wql4dq!cRG;Dqr+E%!|DttX-;JmFLXLu8w946Mk|BR6b+W`SX>
      z)P*=tz=G}A@-D+<x+}7nS*HTaZdJs=aLPaoy$OUdU?7ep!*Dyjt!=fuDJn9bSyx!o
      zKomU;10~xL51ZR%;XUQ$2I)0RZiP42xo4|=a2Qd_8K%0a(HEk`yS17xB!hd5_^xCJ
      z;Um|#rR_TT(&2mV-0|b4XbSSBoS#?DQw&Q-I6p3*A-v;~%Y~B)V~9Ri91P>#YcRy?
      zLaqk)6HaG}aZF=2hMAy?{!`SzMfI|J>wITTa!;zPw1JE|?4iSZPBnon=3=<a(0?Fd
      zh06^C^T<)LZQdfC>0&WMof!568SNu6e@!qfrZXoso}f;;YTz2K6J=d_8VX1bU3?5T
      z8Rk#M&5&4gn_flSw^aiU93V6igHd!G;Vn0~?<+46)qR*CL1FrULo}$rfn-vB6SRxa
      zh(ihPqo_m(g-cr5Js1|-N53_?hrus8_cYD@`ne<)kFtCW(e8}qO=6fL=;$of2x;bX
      z0dtx1qO_WA=DCr`K1Pn@eoeR*47}3ZmR4wXxXli?iBXK{3=`wHpm7tJ4C-ys6NSoJ
      zyBI8}iH5O@sgD>=wZlunNwr!Cr@q1Z)DdE8vNt5;E$!c77VrNtnhnH6srwd441@YJ
      rE(V3ws!n>XuUPtt8=pI@ZR7{dWVA5>QwX>8d>eUM6PjTf1%&<p7uG}g
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GapContent$UndoPosRef.class b/libjava/classpath/lib/javax/swing/text/GapContent$UndoPosRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8e149e7648f669a792a9fd604fb08c4d815997ae
      GIT binary patch
      literal 908
      zcwU84&2G~`5dOwV<HVRWO(8(imQq4V+)}qEkU$)W07VKdqL2e8HpwQqB<sp{pzp(h
      z0|JE9P*fxyfQLfNx<N%8+=F*_cINw;S^xTd{1d<ywoDj=)jjc69Jt{-PYv8i9z^bA
      zvET4jBvn*>p?dyPKYS+pCenn0u62ikD|b43vKtZ7BN4nIthAD7o^Z`wf;DEkoqj)*
      z45TI@6TSAr>Ly_^3C_sOJx_VjeZqrUV&&N`>TUMi@Ov@`!mN!PEDI^j**J$HAyuol
      zb>@PN8DuP!aM{Eq!tz<fHm;yd$PHxlw?pP?YOVzvCbF#7@|4^jk2*4VE;>U=D7O5r
      z7`8>=>3DjX)<YpAHu}%Q@N{TIm<c3{=1|3|i5rAU0@}t+?I$}B`@4|{7*#@DH=Nb@
      zH5=<Xo#FID)#GQ|^~XV1KJv7?*;ASgEkUrGO39!x6k#aYw{>a_%iMj6|FskhJx)Fu
      zdK5sRpa&nv;KAEmcb-o#Io9=MXKjMKbA*DkKEb@>9Af?(E>2MS8e<lDEh5e97v}xQ
      zT%VA~XDsneDdsHWDyt(tU1Mc^x5Ahc9mOid`yD2(@RvWt_4k<5GWuqM+6OF6BhER~
      qlAcb!;_Uw}j#&LW7I2K)_z}CXPxz-U4BU#>4Y<5poFg9eCX7EExy@Ao
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GapContent$UndoRemove.class b/libjava/classpath/lib/javax/swing/text/GapContent$UndoRemove.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3ecf5adaa227d3e54d787c3d5330da552bf4e745
      GIT binary patch
      literal 1623
      zcwT*!T~pIQ6o%g|!AMyIDT4APVvD5+5dptI6e?h}A|jUYGPFAorzV|b3;YECgFnD)
      zW+=?)jNW<SA9DN{$FpfIEk$y%o18s4dG<YT_S>J2p8<?xMMsEX=#8~)?Hc}$?Q9xS
      z>`G(F$|qe%3P(m?IazmAymhyQ4visJom-$aV{XHjo|Ta*(b~v~g{&<Z8h5sYCm5K?
      zpsAV+?J4!Hk+bN{m(rsG(+o{{*SDqZI({XgAnlxy78&V!lyF9F*?#l}Ltp9?OqDoe
      zJGPu<n24X6Y1U&5rwKCYW<?Vi&T}+_htYrtM+-U_8sfugwbIGah%@T$B8QH%VRWNc
      zM-M~W@sb>U=qIL}a5m*uP{Isj0E0TNF!Y?l$8i-=hRCLnEB~Z1omDDLYR2RB5}D?3
      zeNaITaWo;!(3-Lxv0Qk&A-px!ASJY$v2tn4v(<Ass41c86Q_w+<pxr`(U+D-jcxXV
      zNOmn~v!-0Z5MJ2Lh<t#rgW4CZGfvWS95=8{B~__@lVcPeN~}qaDcoY<w&M#=mXu|f
      zjGxrPR9*dQLr$xDcR23i9%)<1XDunz`pS{}x=z+M9fpC3j{C>FA1E_#WtEhwLS+x6
      zfG4u9+R8(Y+0s_#Ig)rpcBi)f+ec@-(z@!MsPsjSB|Ikol$2$-TFL$Y7Ii%Nzs#$m
      zMrIQcYSBx#;AO<3t=ivu)a5Z%gJd@yM|jDc<@<v42_N;I2+7iPf@n0;F9CJY4?$x{
      zc@Ai6Q$G<sH&8|k&e7OPPkGALXdX<A6w#JAM0=vQhzp6)BDxYItatPPmkw~bh}d3G
      z>l%%n^bYWw#_v@72i5wC2!0_>(Sd+s5W`3W41*XUnow|eop{vO$xIX(E7KYQ$GhMj
      zm?ebq#6F?y6U9Ed4luD!bL=Z(<#6n1iO_C;0AK$E<Mkn?zwA*BjZV=?%#>OCNd;9{
      zV-0k0Xmm6*Vv^~YVohYA=75=(zFcNz${}@p?`gLx>jm*WNYnxn#hj8$MOjT)=~kD!
      zuwFto3HfOm`4PFR7P*y>+tJM;7-t<=Vx8o^i&$aZRmd;O$RVVH@fntB4$~T=Mm$I8
      EFI#MW%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GapContent.class b/libjava/classpath/lib/javax/swing/text/GapContent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7049f201452c815d4502ab5a82659af33332ff4
      GIT binary patch
      literal 12279
      zcwUuS34B!5x&MFn-pNcR7YKm?!%T2w4MPIT5+Q*gYZwTNEMgFACYc*DFv-N32_P;-
      z#ky9lOGQK^3Ivx{QAn&<w5`>ueb!oEw^yoldA7yZ<-P8;&HKJ{ZzdCx0_FE(?z!il
      z^PThk|KD~Fyz$Q$jsv)WI^56*{!NiBk!_PxTVu@|C#S7#>B&`*midY1wAGw;!yx3#
      zfXVR)e_m0y$*Skx9KwV?)8^Kt(#c4DdO@PTwTUN>$q4ZfhAJVk#N^dhG8T!)wnysX
      z7Ryel*GsHqDwb$o8(u)5C4>PyHI<Gur!R@bTP@e)yY}W)SC1Y@7_?yFqPc6U*IY4g
      z?V{D;^$U4;SZ8Itgq*t8h6XE1&@P)#@NA5<tWHOgY5u^?h0Rfdt0|J)oFe$D)n;1L
      zvH0Y<$z<fJ>R2jWK`=K)l68@d)-rpTH)TbV^^NjI7*%~5n8wH$5pZRz)oQJ1SYSoc
      zjf9caJ;)`khRLfe-k;T6Z(S_Ic>IttkrV@vX4O**Vkv=yw@K@H`?KofvF2F1lAsq)
      zxP)NLPed&*Mq!K_qZx-D$@AkZ#Kc&PBMggLsaVpA&g~Y<5TsjEO33<L5Q<F%P{i}A
      zW6jp`)}}fuxyELqpgK{{L`0Yles?-^W~ohhd1k4JiI~J2DGsasq#I)_x9D`RRCu9d
      zip)FLjcJ77nIQCHD#~R1g@p5pPb-=?A^OZTaSjT-sK9JDW)TMV;IfQ4Fj0v)tbJ2t
      z8`EDL4o?V+E^|%H0~^VJNIcG3r!8d#Y#6Lt7H77#SGZ9iOD!@n*lsO0F$9C8wZz0w
      z405BIx$MWLyjY4UGH!(lABMScF(Gg|oA6?#Jz<TB5%4q2sn~YrVc<q9ZA-P9H;QR7
      zpJApa?!20@W+8laI>}fOrWJ>?)UbOiCiKFywK<xYyq152=!Mak*uQt-wtA~YS)&`5
      z6UO!-U|u9DW+Fo}V+GJFOk9d}UPN$(8+E-xhP}E6Y}ixQG+M!}jjV4llH90bM6f>6
      z+?+@U>#Sg^iP^A{!E|G!nSZR{b}O0iVgnk)B3P?o#eJ1xGw>irm~~pw8<Xsi*`n)h
      zD+=29xxo%T?sUc(R`3d3UTi{>Y^a%I!Wm4IHz$y^n79%gm-5ny`HhjJV{1n7gv;g&
      zc4-r>*g|k8t(JJCp4mQ!4YjWsDz|ef9hrX)wc@jV0AZuxPi!W<f^f_(f7-~^qnS)i
      zT1|;9EPk}O${Fm%gB^q!Hs%w9944%$)Y)S$n%`jJM(iZyvUPWx?y$_tz0`8!3umB6
      z_O?oG-;0}Yi%@hcVd@zu>c>qO<s4fZrpyK;x`yYmf3#-SI1{WryWy?h#gz6LyxQ6*
      zR_eu_m?B`@W8z-iCyC2Si<$81=XTpce-kSt0N#l&n|J^PY#0$SE9rUA#BK~?B@zt{
      zDJv~qdrUkmU9S2>t1KD8BZAL9HoD@==8K)W@hD;VsbI`&jm4u@(u4gRkHhSp8zb>x
      z+z9~XLAB&0o6q3vpcid8D015+lJ<wJjCkC{6L^xh7inp+Br6As`yt#}nT_l#%tA@f
      z*2P)mX%X=Zr=<QCIgO}inZlBw!oZPq#Kci_FzD$-w*d|<?$`XDcPgIj?r?L|+P0!K
      zy`o_r%Z#QnA(8zvE*_|-ES5OpUvtO=#G1EoITZEaINMaZZxm~aTorU&s?LfhwyLn`
      z!OI-;`Wb!J{^!9r*?YMiY>Bs~95MgK>{mGVH?uvYV_PhzQ*Bc+>Q*aS9u&iV)x>L3
      zmJEueR&puEh2APF-J0Z-@jBjg<Bi^l;;Ixoor&+_KR6^P+p15raHI@n)7%{l`{_~v
      zQcsJg=GIvaiKN92$+@#$>9R7BirL(ZEIuW+DN4G(S4jH(fr;T5B-!{sP5cl);$Yg6
      zh{w5D?qwal5_pAV`=6LtD~XWsUnYKrb0u}#Mdf^+&)dx966fb8-V=8;npDk0_=SlN
      z@S%imRdI6WJ$-ah<))M}OYyOZ|CUll=ddB=(=Sc@3cqHb;rAYurxf?2ahAZIW(Ec~
      zJ|#^0_a=F962FlM@LMkSP9J$C7)-_QW$^zJ5@!>p&wd{jr!TxEa-PH=goQ%E@J}ZG
      zjK463k!Vz9puWZ>rbSIWq$R<D`TT!(KOA~v5-gY(yHX3=Z=O_RtRc;Z6E};ulZ3r&
      zrhs3VOeT^Z;&WP=lsL`S)*v5ef>IU+n_5%-J8L2y&5ZJ*iwuUDT&G0kjAm?s<TlBJ
      zb#^MQQpY9f^_sXuths_rlLpw8bW9398e~#F4Q6$0i(M2;rqcG=fXh-h?{c-OTXT3P
      z>geU>hTY|A<+z`e9BXY=pQJIbwSm7xt#~@ZphTjZ9DFF&jS+83)-5t=q<B?+(&Bue
      z4r+7L>p3FwR#;9|=FsPn1?^_8{Xs1@xLcU|wji;!*+XMa#a2FLz>Qm}R6oed7(NXR
      z=$6OQ*S2_QJYjmaEY5IerilklvJ<~k8}`mY4pE~1M3YLWl+&19mxP;I;?B87u{hbJ
      z^Mxfh8?yb)(~^k+ImsrQ0grsO>zjhU%h<E+k#63Z-O?@FB4(Q8$0TW0m^8|6%{FPQ
      zoDB8mR`w9DLxVCsB0g&UQ$FU|hUHK)Br7_l!p*CAeJQCN^HhhZOL#MhWJRVL%<gp4
      zqVCj@)$OH)nBu1JSrm%AHpc`nEvBX78hm`4clro)7UB33UZ0k8D4`Yq!qfO%Pg^pe
      zXDcL^4T4N}SYWiB=8)EwC|ixQX&W%E)cQwCZDE~Bmr@N2;Tkp>;V%->vOx?x{S|q1
      z8C~wC4ZNkkUrqWPO<<R9W@QDaT9YE;c`oI7GPT~MsAP9{V<fd)jcTAqH*v+|>k;Rq
      zJ=wO&-n>bUv<YPb*(#_D7>TjDEj>yO?QhRc6>bxFHdVMilII!G)~1$RyiQk|lq9(m
      zv69KmWl$_Jc_r6$at^T~O%)z$<;t{2R4{7QwQdZ?nz^iKQsu9gw$fE@+SYyY?=8Tj
      z?NSE2Tcj(_LFO8+g6s<_r&=lxdgwawi|%M59Xlif+Yx~)C|=<PlWrtFBDs_xiLmp9
      z<uA}JZo0X9Y5N+8&kT`zhRLK`={C6%NQGCgknJZEaeLx=k$8t}jd{!!I8*=?Oztx2
      zZiPvrHSM8$c(dI^s3G=d?&Hm%osSRnWs@GDU98_0xu09n(C6yJshd5to1m2hB@*m0
      z>0#Q-bLtaKEfG1yR-HwabLJ6}afsu;r$LJFu)63|O{u~YTY3G~7L~Z9qrQpTMm!?f
      zN{mr!x<G#T1U8kP<Wh<za6v%J<){?5A{;fns}rrsdTUWkuEPfPtgR{|MmgNvY$eqd
      zoF(zJZ|>*i>>EVy+AO>E_ME$&FZO8>=W!jNLxT%$crgOGkODCe;6AzQ8i+xe_k8{x
      zi~`7?A>1#2hB{9lhN&^b)w?FQWU7Az{6PLWatp|BBjMq{=d#40+z9hi{tPal4xG0e
      zZlfKB{v5_1Rw5?wZ;l#r5kjg5{5CN&eLDBZS9d7i+li8%NnROB>ybm3sfngN43lxb
      zBVv*xVn6FGVyi=)xFB>4Q)@zcC#E0848QAnl+Ox<{2jRHWh^*~g(2f8szUyw2#1bf
      zp`Pzu%M+H?bYj_2Ea&D*Zmv3t)jj(N@lHT>FlY$|bL<*U7DiJ8ifJQCsS(pDhKpzu
      z8^C6@&tdjnoPA1btwP_B+e2r^Gx#Z^4F8L+XL`d#TeGAX87W3a3fESSl=DFflN?dy
      z_*19IxjqZEoD6E0W@eYO#mKjOHJg6~k*a9)R5`b2$;r>islj?4b(z{3VS|$R4)c)1
      z&qbjQe6F&j1GQy_e-8#8!-krIdVeRZm;6Qho%crdehiyxLVlmoiFmmy<kxvp!e?|K
      zRhWfK83yo@55q-!kw^RZ5Yz@AJ&Ixc96|dzE*-#FI>=e&077&K7t-T=xOr0TyVBlK
      z2FFF%s&JInHe98AW-g;Lh|$PH1-5g`z=iyKHLl@rgllnKA5D)sn$A?3`UAB^ZOB(@
      zeV$)Lv5-H|f$PhSW4MVGEMx_576k*OpQ7A2c2>}ftlV*!^b!i_WmfJb6w)_w9({|e
      zpjS{vuVyJTGo#GRj50HE8@EK6X^t}IvGd-}3L5MtdAI{#RLb0lou?{81Nn=Kdv+ef
      zooxMgFXwHRcHm3L5UD9Wg8TXJF8=#aC-y$GPA@a${UHo;y6->U22<K)?Dqq^$1?K*
      z$1$|k6g<|618QIg4i!Arfv?ISX&<)R4{^H#&xsLOFY&HC7=_X3>_z^&@X(K#_#d<D
      z{S;&9XBbZ>P)<K*qTk1I`UNhd570;-B26D*2fqtm(`>ymc<s#KwG&@cczKxQ7jTU6
      z8js8Iq9UK<O05q{Z!-3R{z;)c%dWp}+qKVVb2?tKI|8*nW4~h*-w61XQ3SdteJkLM
      z5tn-m=ah;M9%ZOGFzqT09K}QJ*y)##`!Oo>QGC>|rbK&&T`uqbXqk&C`}Tt<>@CXY
      zQiEoc23~YYr_P-+z%PX8J`RuHkynu{Jw8{!=ZbQt65bO7Z(~Y8f8$vEcX;VDHqd{-
      zPyb{C?ZPO2j^ki8iBFr;Gz}N>vqIA`M>DWQb7PI>#Re@85zRzQ8;C2l!MI8*z%AMk
      z+^wC1U0NX?(E@1Kitv;+5=XVscu^aJZ)jujwl)qw*T&-metxVK<Ja26EJrw*A@*d3
      z*pm*i(t1k~n}d&)OBmRNRrnsa#1Y=c_xn(6ITRmm$AD1H5xis69>qJ1&FT)k`&!p;
      zx%G~Rf0lRP$NAnkr<VPkwmR`sKih-Q(1yW2BNIv42lzR|#~J5DNLn3uzs%)xIT9Yl
      zC~5gz9r);F&RNTj;DpcE2a{vqCpF7o!^C4aS;ON0XSqsgK0~No-HG2VD=j&S|Fb9a
      z;6Il3M3W_w*tI#(wTm!-pTo7eDADHOd~GqNYGEd33BuY^tkSBPlx1ktmg72Y1#Z?>
      zF&V3|Pg{cn+FCrV)hM7>v4=1q8K4i#EinVOg-eLPa&e$xU#7K_!TuZm&cAna^s!r0
      zIe31iz~8_L>>mnzL(X<~5~3#<aQ1J!_$<cnhToq7?=kU|u9_i4out1M>Y$w2{F7T*
      z6o@j|My;z+p!6BhvYe1WDCxc2t#W#yn+?0@dCC*xE_6%M_vLWH_Zbgjh>Qrxk1xk(
      z*w!Crk)BYXlLnUMI^2|beYs_M?FcH6^K6F7%|f$ANb;~*oY<L1zC53|t?RuWH(AAn
      z6to76)M6N|Z9=iO8KqjB-J*$+Z^0t%O03h8xLix2UQ09jt=Oh*!w&5#W?(xra5Wy#
      zu4M+U!(nb8({?BpcG?(aSa^{N6bqyAAPrIGUX1%_sEYfgxQl!W@oBh46%8&<YuD2-
      zZsl;&+d{+HM%>teS#%Efd2lnAFooR8W!_5U%AX6K`#8Ri;8q?EaOxL+O)h}^-MneT
      zSgMqhp9)#C{eftu09j`EjG|g5#s~;6ekrvi0)>nA!lytt6#hjFe7ntsUv;~R(%i+P
      zmfJkIyLs^V+-14#C{;Y<Iy`s_y+VVl4LR*-Ec7Z;a-u>?F8OkOp0=)c+OeW&50-}f
      zXD!Z9;tIRP)%Fs{wioE(c{`WC&~AlGyA8S8?HHup0iX6o__ezc)V{>w@E(M;dofG9
      zAJy6}tkiZh?+>9?+k=hTUbJeD;Pcu(+@Q7LPVRe1+s`5JAP#En?0JXKp*?|Dv?uYF
      z_7uLaeFZ1D?-T7AoYW30d)TGQ^G`GO@F|_E?7@XkD5&fq7auBib^d!o*@(f#{g3E8
      zWe<K1eruIItiuAuy&JV`B@Zimh+>-JJ{PUbyKwKtLCkf=J<Y|dJ?^>8xK}dc3>uXw
      z%ez$Y1rjPY?t^hyIr%UrR671WTKTuoG}~dRG9aZyiQ>p`IC2%bn3a%9h|H3&P@-s9
      zC^Cp`uC41`+uC~3RL<ufXkUj%JI*w{j8WPv?2_N+VE8J^wC`Yn_BvDZ23Bitaxi=q
      zmi87lY2QP$_I6g5Nn~J7I4~EZN`awq{~QH|1iC2-3<C?e@DeaM(8&##1IA|#7;zQi
      zdV>+p1iNtx4C(5F$GCp*@GFxoD0KO=koc*6y6FdrpD_|A7>V~7i4QSR`-oG*$C#;o
      zf-3EojKr@PiC?3J`|7mcu%Z4Io3-C%Ara3Y5m$yJXRx^r5>vSZwUH=8iGxHH2O1lR
      zp;Sy093&>gKD7vg3r{)xXn)N*Y`C1|4EdLCXYvVk#06IPjNR~Zq1s8I!vU$Z3gj43
      z%grcvwPTEmK~izo`dpnfsVt|oJM2r*!;qHhD*mV}(1Vl|%h26$>AA?$y)bnX1^Pgo
      zrx#$nJ_J+rp_rrlFi#(j<@z~lyNm5DWzbnc7r?GYR?rmK)yN8(O4FdL)^vr=c&?zz
      zlsisAK3%BXQIm^WN7di+XenPe2lgVyYN!Y+9uN(1Wl<DTm7{tTJpxatsDoyR<x~Zt
      z9aP?qGRMtE%EK=s{M{oMrw*DW0hqhWv${?(7=08U<j26HkA+Vkha$ZgWAzY1dI>Jn
      zCov4?qe`EGYJD2k>oahLJ`<btSy`3$<_sj8xgM|~*-VwNEAKj`w9av9EzMDoXmSzl
      zsQ)~FF$CO<+LeLb80-|qZhukjEdNtVrvM+m3PVyI6fra%bWzU?sp6^v9LlTwJ;z#`
      z;>GalVGPulVwhfy5&AL&^p#BW#TcirW}4Svmc9;)^h=dKA$u<weHLf*S?uWJWhYsy
      z^chO?GKcJJW3M{pWUbfrW9&oaUsU>;96oh&ygyH&`Lw{Ptghj4Qo9`ra7H%7_NyMn
      zT!t`LFLSlC@2EuUQW=@eWJD;tay4q@BgdBM+?{zT4h4FKsM-BZn)n*>j?u!JPO7T*
      zxysz_ICtVPT3i!S0nBX&uufXiLCe<dbd%5R%W3O+e_~H0m?u|M`qk`$*I|IZ1B3PJ
      zF<ie9BlVr^f;XX3zZpyQ+p$5v11<WUNb7gu8vSnEsNaJ<{5+`Nr?A=1=&=47&JNK^
      zx>(_LNL8_#YT2h{7amjAXmACm(<<ebBT?$KHlW&RRq)r<%2gL<S}mC2w02;e3Vre)
      zAbT#z?%|ch@n;B34|3$!+4ofK@3+BNR$}Ki&I6tjT|zmL*trD%wyvM_c;zTzRDT3+
      zeII+}qm0ge6zT^sMn8xN{C=T+NNFCl*K;)YvK}LpwH7k6cCBvE8d~e@Zx25uyq8Su
      zpi9a*)eJ2(z9#>j@MT&oiKc_Dkd8XS?yg_Tww@=eXHO$!uHMOJ^)-$XFR&+d@_vqE
      zqW)4=>L|&uP(qs>7D_TKlsGKpU?h#8xT;lL)I`m4u}6t+Bsu*WYW#E0Qp*rZchDAY
      z$Q{EFy1EkwB%U9)FB7sqU2A`;>igyM_Lp$xi!c**%9T7GmOrb5u6HuFdavYnS;jx@
      zdAeyg3b@aH<^Fbi$Rut$1TH+@)^&vYI_UNuz$9Ei{|*E8Is^3voAaBvRR1n6*WZGr
      ze-BOi+i2Clk8AZG;8y)z?9zXTef<3?{l|D#|4G*E;ByYB>#@oqSfejynVo$ry5w29
      za|nH@gYFgWO8HHc&oVzYzUS$FhGGak*nzJqB<}5Hf^YGpUOL#Mzt1}Sf<x#Bn9k4n
      z`iBVXA7$-tiL<{vc90QHxcmSgI%M9#gnPN?kUm?l)YVy8R^t<$OE2Rr%{B3zx?Q?=
      zpOMQwp^1f_PI{=!?Q`$N#Xgr&JKLyihvhTWVbB$?Ez40ea-12tJR{ecu^V~595sHp
      z&%FnxFGm(@M=m#N<?P~fJqCBtgI!08m|7X)@p0I5%jemFo&ek+x8nLApy_|)1o<a+
      z$3Jt8@E11!zrwHoodeZpDAE7HsQeS<oHynegaw8hD-91mXXIj|;YHjqkuU}zZ4AOy
      zMm}yZ3UG_z!o7wM4;aI6&?r<$HrN<t1+hnXb-6u0C^w<v%GghBC}K3-Xro6}5G%l!
      z=`j_se7KkPtKc*ex6lC<oJz2r4zd*94X+^qA(t&Dp9VXY^PE$8%w;5J__;nR&$_{w
      z9WbJmPW&ozKsE{usYV}>YIML(t!t;=RkWw;{Vd4TEvGROrg1KOMi2pG6ebv>F~t~z
      z>Bd;h;J!J=_^jGtZbs#~>IQ*W6}zz1c*EnUT}6xu{3{Ab?eH+|bre|aL|pGg-j)Q{
      zQ!llRX<2d7n_0<AhZMNddR)axP5wKMBlQJnYG(@^OP%HX!@)AWA3QqfiC5t*k;YT&
      zcIs5*Z|iz5R3iV#z!CnPQ~r6um<5k98~H{hqjM2P8FLXb=HUW<pJ^;WrLhq6jYV1L
      zEO7Sh!7NpF6G!%G^cCfJ1<u)B=X}wF&R1ncdYYb5Yr1d}M6!#i{Ct+bEavBPJbM#A
      MkMQ#*ejbJP{{WLBMF0Q*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GlyphView$DefaultGlyphPainter.class b/libjava/classpath/lib/javax/swing/text/GlyphView$DefaultGlyphPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d82c97bf94aaaf0cbdc1cb6cb2abe6199e6ca3f
      GIT binary patch
      literal 4860
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GlyphView$GlyphPainter.class b/libjava/classpath/lib/javax/swing/text/GlyphView$GlyphPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..99cc4f7c7d92a9918a50e4e9ee56e9a6c87dd6f5
      GIT binary patch
      literal 1753
      zcwVhlQBM;=5dQYK_Gm#s6cwxpScF!kAc7`UgA`6{5D6uH@j<Wch8{WYE_YX`zsSV+
      zpid?~_yhDWXrj?a|ANNZ?a>gbEhaX(o4J{9cD|k2*?#!-?md7x+|-~jOzjwZMm^*2
      zoA!1l;PoJL-+Jy=izeSsN^Qe1?SOk4RE7Zo&R7OPAD4D`Ibew1Hf=Mw%g{BQDl(`!
      zr^4gtLaY}NL>c<mOq;LQc1zsbGD;R_7+iD8hE+5?Q+$U;HK>|CLu&1qbg~SwZ64h7
      z%iJaw7pL0<W>Y#toX{&ggp1Gz+}y5`K1lkqQ?o0)vf=n<U^+I#MBDZ9x}M52L|nmz
      zVWllt`ZC5o**wFonq~ixsZcdsp3Ub)>3Vjlbk>$5q8OgGXVB_AAfH?|jn)*YqXw$T
      zYQ4-|5#nnYVVG=La@nYeUI|DOOFZ|8!Itw#uw~e6%Tw2n=6%wMxu~p0Jt?>bC0lA=
      zhCkGS4%BL$Vk>k=bkX@?T5O#>Mbobt)<H7eb9NcL|6Aq!v3AGy7!vLB(lEIWO#>6)
      z62n-hRS9O$bhh?5Rxv#qQ`tAIM9@u62X?$8O`2<u`!y?Q3{E(74EYZ2_?P)r+*$FO
      zqZ9?F=9Rf_ikqOX889Q(V(87=HurLt;rpCU>H@>a-;)sha2j<SR7{9p4{3BG(OaXh
      zd6JA|B>fiMZ%9!Pr+1trumKeX3IKW=Ad)8_F2FwYOF0nAlc5~MDJf55NXj!fOOfX&
      zRwX%1mh(tR&jpN<m2NDIQLZLJlKM!NZj!mgqBazHDQRaV8q%K)pDTxS@ysXGXN%ek
      z^d!`ZkX=LCtLBzQW#}iW!e`9l3l{Jdx9|;j@EuF|A-B2NNZZ(^)W$I()8=pqNm-N}
      zCUIHTGKVQl6K$cT$QzMbnrKDIzl5t~(<u5HX2NPeBq{Jp`gN06RIdM1=1(`g&HPF;
      ezk*DdUm^BMT3?~RF7b7pdMFwu`gjA2YV0>XC&8lt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GlyphView$J2DGlyphPainter.class b/libjava/classpath/lib/javax/swing/text/GlyphView$J2DGlyphPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..494252752db1025378e83fe92b96f9ebbc6ccf4a
      GIT binary patch
      literal 4332
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/GlyphView.class b/libjava/classpath/lib/javax/swing/text/GlyphView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7beb2ba0679bd1ff0b943e3a71e7cd21cefcbf63
      GIT binary patch
      literal 12332
      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
      BZlVAH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Highlighter$Highlight.class b/libjava/classpath/lib/javax/swing/text/Highlighter$Highlight.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3a6714b0e236bd7501414c7eb31971cf17fdc67
      GIT binary patch
      literal 334
      zcwUW9OA5j;5Pk8}+WI|!OOd*<xOORuf}qe7M4i@3iO|H)*<5%44<$}S#g!OHCiCXa
      zn>V-n<qBYcmWzTwcPEeX9O_f5lF-oEgwr(HW_%6hozLGzNuXu9VJ4ZmSnX(S1ZoMH
      zvDz%+SQDqkpf?j}Fc=w`n>Xw;u#~A{Nr6GooBucT)iPv(Xn)ApG)XgJ8(-wURbm@6
      zr6?a|QftyK8UpQKBLuup<_NHF*i+;k%Wz<KbziXpk1GZE&$o&iM<2GQj;7;10MoTu
      A2><{9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Highlighter$HighlightPainter.class b/libjava/classpath/lib/javax/swing/text/Highlighter$HighlightPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e41f610f19930ef17c98f8e335ebc01a864e1efc
      GIT binary patch
      literal 313
      zcwT)^O>4qH5PjoEqEW#g(4z-E=+bkJLTf~@pm<-yU{=yi$Zo5@t%v>qf0Vc@#R`H0
      z^TC^WGxJX8pI-p4=!K{e#(ViKkHQ?3-U-V`D`sk!<<2cvgIoO}m3Bag2BGgMBA1S^
      z-0nHGgl6gcgk-q5Hs!&J_ez$TN==+3|KKW<CC7`0qw}?k)8ex%G;14=HiT$Zd{rsG
      zshr)-yRRmmP3R_Cb2ZJSF>FF~2rtjH-0%2P6A%b>cq6B)iNIAggxA<Y+vNy;CPFu8
      FUjR#SS-}7R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Highlighter.class b/libjava/classpath/lib/javax/swing/text/Highlighter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0fbd97938f0ac40276c2f89a3a7399bca0afd0f2
      GIT binary patch
      literal 782
      zcwUWCO;5r=5Pge4DS{vf_<<h>G$lqG&zzK?){tnT@#1MM8z?C)X;<L4dGH7Lqm0wq
      zG!1xQliiujdpq-XX1{+vzW`j}L_vz7Ip#CI(EYjP40S0MQopx`Bb&Aqo`N((Ibi5E
      zC;ah!EKJFuSdK5bZ8NmA{z`&}7dpG{Wa>J?k)8G{gE|oLl>#3O;u;J+%`jGTBt*1g
      z|A|`;1v>5ivZM|}zPB*NR9dd%D=09WuH?MogT8C>fD&^Vs-Bp*GjVO(aUGvwLknb=
      z{;-7FnzmXyWSS$2B$<tWn1&H>i$fukwa&Hn+nODqcV?zR7Z~bMem<A_oyVsm%k)Dj
      z`DgdTGsUfC3mRS`&1Jx+{u_=XyspiCUr?(K7|zx!PGgLH1xE}Q>)ngSmJ}0(vJBK}
      z1S>~BErTqAAE!h%2bJ(Vp=q+46e(gWL`o=!b{mx?Mio0DQbV1hDKx@!7kgwY<n0r$
      MnN@K}_BgBl0z*^UA^-pY
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/IconView.class b/libjava/classpath/lib/javax/swing/text/IconView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b26039157b26a8c5603a0948d4b056744ec52260
      GIT binary patch
      literal 2347
      zcwU87ZBtuC6n++N2!u;oW1&q$Tc}VIUW#oIHK}Nz1foE(p;WAImt>RNdPy?LrO?l6
      zXZ#E87r%AvprbR6h@H{z{wT+1_lEEi7?R1oyJycn=Q+<gyZQIOzy1br1CAdp0^vv2
      zV{2=ywrQ6NW3JqC$I{tyX~mYCei#DXP0MOYpzXF@vfW96OVRlzml;Q{%aWUjtq2&?
      z<(v$l6&)sgXcIUyZ<pla#`>D9E?aAk6bQ|ivzD`BRc$q|8x6N;*90QX=zIJU0)FX5
      z61aFW3jtrnvX#>{kL#GV>5k1-txD0())M=sOwp=Hk`6%Nbra{%Ef6S3cV;h0Z!~st
      zm`<EW*pCYW7f$jqaS;)LE@CEKw`#9#xRN>c9|zlT$VfL4z$IMq<Fde&CdZ8X#F5kG
      zQq8qWZp}m=`Y8-UD4hgu9aEn}*oR}QO-$tt4Eix35Iii7iEDUMpo8dB<&9E~<a_Gm
      zwbMPBC5wV16H3FFi6IONm~<yWmqn1(BRd-QL<dGO=ErsRLo=R<w{Sy1Z1I;?p0`Yl
      zYs-^POyFHV-Vr!^G!YZ;Ax^rw{GJ>m(SxzqE9H`^-7#&EPOI(}1-8O5t6Z@d@M!O_
      zZEYPU)GR8utO=YuPAno(qNS?L%W75TG8KyuMl>BuspL{7W-;f<sE{7mIkza#8jYpZ
      z@<%2<R?A)W<vD2=imo3E0#|h`$5Ip=M;0t6SuJd+PMq1w%8F~3O99N|t~!}Z8c`is
      zYfBwGqo!GiltAY?kFc{`_D=qEG<`Jf<_=pb*K7qpFlAe{M66k-K!ZWek52^#n;@pF
      zoVpj3%K^5d_)M{V$QF;L(_WEUD`gVyJB@`vi*%R~Td?ynQ&}!AsJsLwqN&tTh7V6e
      zQ{taT)<jN;AEfvh*Q&aA^ZA<ORndPcfLG9@V;4%QBI=4Pn#ki0?<-4LDN?4qQO(Mf
      ztuDl_y?gJv0!BX%SS!@0jU%6a`Z=3K3%|4u4ey}+H;!5m;4`4Dv-F%pCr3S=7ff{3
      zQGz%_4E7>kt7H8@Zy(>oLw_K&iynbL(YrXZi>m^0W0cnDaM<`ABkFN;7jOHpA20-i
      z&kW(0(T)4O3RZOBaSyT)co+%XW<WK1U(@fxWqg1SnO-+(CNV`M_8sojX}zS6!k#!t
      zYa#LsK~kF$c$#{FNW}P2&(q$#^A+Y-cd+=+;4ck^mo?fN<K>vLL@(9vM*$<S$?}nA
      zJ4s;}slj#vpYX4f)j&*hY(bbj?=jC-TJ}ccw0k4L?C*27!o4bs2Ri09QPn%HGKd>>
      zMSWpoFPnJVD~zs&eM(zCZid@*X6nU+cCh;E5uLv!;&&|J_xy`_s+rGu5gN?n_*^qr
      zBTr{FO5zK$Y$M|@S$=~EBlwDn`-s!0GgOWBHLSY!CBBs+LCxG3_U(eV+BOci*)#e)
      zKcHW*!6L|uJfm3z88f53gPKpP9wk`^gL~RFA0IvQjk@RQt-M02w(aK33v>)cc2JlZ
      r*srOl#!uY&lJjjg^Us>ckhX^!JVNz4`iW?39%uRUMuN3hc;EaFq%s9C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/InternationalFormatter.class b/libjava/classpath/lib/javax/swing/text/InternationalFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbf03823c08e944b223454b63306212c770064a4
      GIT binary patch
      literal 3849
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e1d0af2c71cad2e96752b5f390c1edb316104c3a
      GIT binary patch
      literal 10550
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..997fa67a757547ddc69c636cd79cea4270be66c8
      GIT binary patch
      literal 3384
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8533861a6e0a6922c4ce16ff259e8906aef159a7
      GIT binary patch
      literal 3041
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf2683d47d4cb9b4dfe11a86689aaf897813aad6
      GIT binary patch
      literal 595
      zcwUWBO-sW-6r4?CV`6NzRqH1zcxY>}cvd`E5Y$o+Ed`I;cG2y}Mv_$9pXH$lf?rpE
      zl=wCZRYa7)d$XH)GjEdDxBEu`yI8YeFy!0(nh%P>jZ_!KPz=K2NsVgB>s@(DsBr64
      z3=gGh(Q6AP!;Iz^yPVi(jkaip46%+FGGxkMm1wFO`d&xuF*v*#N>5dIPcWp)V*z3i
      zml*MVsbqM-P{{tG@^dOzXD~}%OE`#O+J%h-t&+{vZP1o3CJ@&s<-)=wL$WNDsPuac
      z;n#Sh8*Sn>dAH7esn4I6W_T$B+N1pc&!Q7ny}sWRM^a0qzcY8V5`%lJl<-Sk9t0w=
      zu)?tZhXu)wO|VH>V)Wk(>J*I-)4`(7D7-^;icaUm(7a^+4sL#XM4&Lj>}@ofrka9D
      t@Byar1lxE<!g#?P-EVx1VIB)WgtQHdkTx>t$wVrPSfcJk#>-fR{SMIDjn@DG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8a4084e18db7abdea6cea1183aaf6fc65aae1160
      GIT binary patch
      literal 1605
      zcwV(sOHUI~6#j1Sz(5%(6sw4eFT}o}-~*NN5J^<%!v%zm8-_B`k#>f(gQ9EygiBX$
      zTxcR8n%L;p#J^(VA5gzLt<_Qq8(qx3=iYPfcfRkO(|-Q`z6xL*vpNC-sfXqxb30Xe
      zY&-W;p0(|z7MHosyQNLnu^ewGV?8OEn{x%vcAcELsY4Tp{Q0Qi5|Aae9?Q01)<Dt%
      z?cM{sGBhS|rZuQJu?n8D9ow4`n2sJ8y>HIgihwrnu3McDIAlOaM-UPr1D)t0<!Ee0
      zdBO(T&@K?l+K!dqDy>=NWpk})(UWxxW^u(V+v;4u)RYc^@q>8nEgw~h4Q9P>c>>Xz
      ztW?qD<GX7Qt%8@1Wm{{T)^VIXS{+KrNdx^jM#w^GU6E};B-x7n)bgb+bm1J%>lhL^
      zx=+Cj4C4ZU$nd7S<*f5|$t$}X7Ud2^WA~c)HJoWhC1&6>&M@DG^@P!pU(ro;RN#n#
      zI1)Ni0zG>J1Uf5Qn^rmFWAyz6K|m+Zn!jVs^&ZqrVe?y{(<~O%jY@RQzyuNk!6kRA
      zT(EB0s&{?OEgDq`1dIj8vC8vBvr@4tI;I6q9nf12%bxC1KFiEsSAZYK3Fzrj1LvP8
      z3_-44JY^W6;zIGn4vhFNy5q?m^uF<*_Hpf2ZW%|Lyns#_!(rYX@nJ)V(1LFrWr_eH
      zIRJIwJkKgBocM%+=jcd$#K7x#VizY~@4+60E>ke%_#fEe26h;OI7LjMI$Fn`^m9>D
      z{4ILl;jBQF%%iKX8p!R+FDHCNqZV676sqBMoG;K=4j{+Z$!r5Gm#8MIs~<3$mlN7c
      zbdN-|L`1u|^h^`9sxN+g^Y44reRVb2a3$&bI`UgyoK=QQvvgAk$!YY<84Su<409io
      zH!vaRFvmS3Z~8=MRG*Nm6K%sCjPc)*&86oetpLk=1(#?^9B0&Jo;05O>y}U>_7`ba
      v|ChAely-;G7AS3z(lV5`NNHJ0%TZdE((?aAS^(Gm+>=Oi5Bl>k#kYZ<od-_o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13d41ade1757f478a7464d87a5c63bb20445af6b
      GIT binary patch
      literal 1999
      zcwU86OK%%h6#nj9+Y>v}I8N+5n<k~9bv$<625KN_4S6&r54)uaVSx}CCqwJTFZmG~
      z*8Bi|0<5xOQ6x&0N_g2yNUZn~2o{wPAYM|#cgL=q(1a}JKF;Gi=R5bD`R?h%I)IC~
      zp+ggh-LbZ;yYb4$*}|=O)xKMeFRXB#DdtPXf?cSNF5269tMp#kDwXWA4wpc1zsr1~
      zRI8?}l7P&swSVaazy`vkfTwypTN%9|aQa1~gHe_7<!m8aO$uBIA8UPN%&}Dg*GzH4
      z_Cnx<0Ud2VNcatS(aDs<W2;KjWxx%OfPX1lu+z1C#xAc|nVe0{QgPkNty<-*x;KR`
      z#X}%|TwVujM^0js&Xw#Zwi9~39fKIsaZ;f72m%I9VVGImva8d@T496I<!ZUOX*2vl
      zc<lWH8MKs>isNYmeduQ(`U;rgBTUB}c|2!PdOdT;UawB7v|cuF7Uu-K^qyL;W{U;3
      z%Ku|LlQ+zn!x&5*5rNR5UIwBnJwF3bc6E#OTG=kyD)@N=aj;D~shhPwvTC_j4n5&R
      zgDJ0Z1FzuKhSyEIQp|1HH>@&Y1qT1)wZBDFtr7-a!WjW=lXdMqf+brruO4!P6L44#
      zeBL~tchlakD9ogR%j)gCl^P$PFof<q>cIqbVmFN1GR5lc#!+PX%~NURa*IveYX+_=
      zTv^%7si9M=Z@E}2uiJB3)t%i3oAA7fC}7MN3U+xWXH_b8MMqj-_?YhHz#QmbjBrvU
      ze;pb>jtkJ)sRqiqktcjy+j(20g|hQU%=<7R56}^b-bdgo$F-Ylhf-@l!>#=Yul5sy
      zl=V2UeuQ{}bLwRXjgai(Ch&xFXWYow2<&1&picCWwJ%%99;MfwIEY5Wwuvaz3pa5d
      z(%Qv+PNWo4dIx6A+{LJdRP-@|<~Ilj#Alzw7u!WlI6`&2D3In+k3HV|fx9<iKES1W
      z(R;1v<BSRIS7_RA(6!&;)BZr0_9sTPzi>|b8>aRT#wnlBo+7F3VO9z!(?}zm7WX;4
      zhS!;^hFQGfu-5S=Cdp1x%C2hi_?~`l?kQH`%2KN+DYG7}uYHTLv`n~m&=Cu{%#dq*
      z`BRtRss6>@FOEE*<n^^^OBJQ+N$feD2wxP^1Gm)Smu={iUYwFXoaKH&wj&`8OmSb7
      zCmb3{)e}fHX}Iw=lYWb-`l*@XN#j#q!Zc5k;~K&Y>A5(wea(|ljoqLoI(XNKk|DLZ
      zebi)<xtovRG3&|bBk0k3!Zj3fDYg@Cnegnu-|r52%#eqqJR;;7a_CYXQ1T(teWnSy
      zNVnhpobNQ71+t5LyU90*fD9ohd&s*NgR&39vL9#U0HTsV8+j6w+-Kzw7UU_s%l$(+
      z?9}0=GZUFs9X@E)VYyj{0N!DBW?6?I(wKMHN0D%9<L1AwQ5z4gHEW{=VZq6B5lh_F
      Kq_G&d4((rHyRb?C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent.class b/libjava/classpath/lib/javax/swing/text/JTextComponent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f09c72a5884719f59b7edd4e58311007550b31b3
      GIT binary patch
      literal 18400
      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
      PX-m9L5^tr?Zvp%th_LaG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Keymap.class b/libjava/classpath/lib/javax/swing/text/Keymap.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25ae0f367fe6e7fbdd74dd8f95898ab64b4fe68c
      GIT binary patch
      literal 861
      zcwT){%TmHX5bQ-I0`d@fDB$ZB4nle6BxP}tQcJ2l=xK$O3Wmf=0>ZC(@B{oP%h^qc
      zh{PPym7VUH>E3*Py?+2W$Ek)GLwUrfeAaZ|3~Si*#LR16iTRknYS?7R$zs#wRJwT@
      ziN42B<b%OQ-!p8hV>?9cd5--e7#ezaxl>qa{W|uQt@=GfVkkWSli@5%TwkYV$da~g
      zPpn`Qmu%?u$MxL&f*W=vdS#XVGm>1B;!-^Gi5V_f(jzu05%;GtMY2$=<gqXwJyoMl
      z*L+M-7J^}Z@I)YLu-2V$ZF4Gaxg#vPjOxl-OZO)QhTFCK+%)Ip#<0Xd`i=_vfg$6F
      zu{{-S!x~VLQrghvMV0*HkQ>zhYeuS^`zOTm`bYxuinW>^=}an;J$vHxMaM8Hu#{hD
      zNI{%|7KeP&^apPt4*4f**jAW8Qeg@^3e(6a%p#|77kPzyC@3tVq_B*Ag$Jl8tfHpy
      O5JxnL;h5eroO}b?we~Ln
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/LabelView.class b/libjava/classpath/lib/javax/swing/text/LabelView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3c1a6dde3a19aed3a48985ed26b764ff2cc106a
      GIT binary patch
      literal 3664
      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
      G*Zu=#%Kkb4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/LayeredHighlighter$LayerPainter.class b/libjava/classpath/lib/javax/swing/text/LayeredHighlighter$LayerPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a0619ff47f9d194c7e0f248172cbb8011d5e305
      GIT binary patch
      literal 614
      zcwUuKO;5r=5Pb`UO0A;!fmfpkFp;X)8ZRU&rco0J_oZxLN!d1S5&T)6Og#7l{87f~
      zN|cBPJ<OY(w=-{dX7}y=<rTmw_Dtj$PDcEJ&zxi`)xb%`EOk8oC}PpSmV;qHmWudL
      zQ}<jd3QQOb8(EbTaH_fMjf9_?C^8%`X)TI;t>;1v#dE1-dclyd)w>KvGwcfsd92zn
      zvBFUHq!PE2aZkh@-U|dn#S48Nba^bZcupGWP$mp#-hW$h8LTK<YLX$WX$gl<Q|Bt?
      z(NOw{+iHE2?IDkZyL`?~hp-urqfiNz{*us@V(Qj^3eoZHa1#6CQf7Trm#^E%Dj4jR
      zQX*~!JV``iVwd6I54}>|Vz<UVXwqZ_dj1@FnlWLCB8NO9UpRV(^`y6L!lEV{SR=GQ
      a6R?gl^bf$M&Z}tL!ZvwJ%j}?Pls*7(<*Kj%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/LayeredHighlighter.class b/libjava/classpath/lib/javax/swing/text/LayeredHighlighter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cca3bf2328a19c0d04f72b81e97e5dbc04a36321
      GIT binary patch
      literal 581
      zcwUWB!A`<J5Pd6!O0A-(;K7Sg6V$}&xyB2LifPmY!r7&4=#sK++C}iQJehd#1N<oC
      zw3<l71BZE&dGls=X7=Or?H#~5c1$cW><{@9pE~J8s)3`$R68Dj7K!NJ$UzX2X_1&P
      z7}hhP6LON>_lCmPCQ1yubLBI245bUHq`qV*G>*CqMl<RQ3k9s$FtN-~@uU)W<55o}
      z9o`ECL)D9X9(H*mv-pQJbRbiPLvMj$U4~lBrP6;>)Znp^cX0SbJJ$)11L>!3tMyB^
      z10D-^{+ZhjVKW-VkrGP(Bj`#oakCYzb~H|WaV4|4>+|ECW~B^vODT~wL!PE0HBn<Y
      zTVS_?oO;N%%dTtBhQ=P~%w$FS-6isLV8Sv*4tYktc>D_MB~ROgrJOv$Dxv)?z#1yZ
      Ve;XUQuA1W}w#Zwg*(R$S<u9rno^JpE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/LayoutQueue.class b/libjava/classpath/lib/javax/swing/text/LayoutQueue.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..83e7a1767d9e4dc53c5880d872a746412d9959ef
      GIT binary patch
      literal 1339
      zcwT){+fEZv6kUgw7KVXVEG;T`QF}oKsCWZ>P{fdo8nFTK!DMI$94Iq57cTw@U%)GP
      zfkYB9^vzH4Bh-D)OiIy)CY^oGK5MVF&e{9t?{D7$jAAN^28OOxZByG;oGrs#QCxl7
      zRa9-q^4wRR?&(p48R8tFlr=hkxwNVmT?V<NFKb@e2Ql=h7m-Xbgv*9QWl4ckJl7~I
      zs$s6_C6)4Y-ZWV(8>ZntVhE)(^HlJ}D(Mm!T4l6BVu(zN^JYrLWi%qf5F-lxg}1(>
      z+XZc@Og`FGtEiRdHQV5Ok(3ZZYZM&}iF(=+5@_Y5oid_mB4PKv;V?wCQmLRhYYeHh
      zdUpRg&onvfL}s2>cFX8Nua8zWe#4GhwEtQH8$!Q~0dW!2a*gF3t|a&q_2?N|wlu??
      zvFruQCQve+sR!e{X&D*L8|DSvR8GbaZd1ZBKI-B<XL(wYF@jMdw)J&uQ=c(x?l*Cc
      zI4~SVp5F3*y(q@1*Jt@z)75R;+i>;L)9s?Z;To1nZCTOX>2u@J7l>RiATj6PqW<*7
      zHGE3g2L|c2<=I8L4<CSd4Puy=qn~;kqH%A4#HU8AsL>Q7^lb*8u@>4Xl;^*eW3a^|
      z$e$5A5a3JnmBir~MFs653o2`?7C$BlMlqf}!sYBS62y@FiqsiHn=tVZVT>b&DZwK9
      zHMk;dF<iy9fX|^Sj_=KWL2B{&DG#|rbn$qIzM;w<B14sv196v5Dg*tyMfBy8bXQ=S
      zPG?B&8SSTOQfGy1QrPbeWclhk21z)K8@L%5*d+`{<%I$DbPw&m_N_fME#xX}-`{3;
      z|NQb-!#^;VtL*10CqyKXi3IMDe2Rt+B&CQrLT@-yH8~*KFh{5YRlK2!x9Gq-LKn!A
      zM##CEcghEbGq{U;fz3g20)#&ywqNCqi0o>$QyJXHgP<Z$k)JkZ>onLV>rRbiBQ?x#
      J&4fTs{srEd3PJz?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/MaskFormatter.class b/libjava/classpath/lib/javax/swing/text/MaskFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..559193a6692c3ef1381f79076528fb1efdb28ccc
      GIT binary patch
      literal 6608
      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
      N*JzU7hx!iw@_%NWwCn%?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/MutableAttributeSet.class b/libjava/classpath/lib/javax/swing/text/MutableAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bd96badde5e8d6d8d1a360f2405d21e121e962ca
      GIT binary patch
      literal 492
      zcwTjpOH0E*6ov0pZES6Ae1Qnvh~Q(<!F5G&p({l(;C|9x%9L~hlRIgDn+tz{KT5na
      z5ea=P!X@{9=Nvfm{qy++0Jm@)K|{dBRF!HWi@7!vNw^^S;z*?#J`h=*I>H1gf^7k@
      zCuOFXdrhY};%!qve??yx3h1cu_<tkd^6GinX1Kb!{t(cu3kw0~m2zWL5cMq1@)B!-
      zCu;&d884BXaQ25f(wTfTZiZHo&Q0K3iJllm&a!8J19*3HUwIcu?^xtniEqlH;TqaW
      z?(7JkbjJGAH5CuMBljs_i@zOyp(b}8!7ljjThI=34?1CXVV|iUQw@m2e|10blP`zi
      Ga`X$wq=}IL
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/NavigationFilter$FilterBypass.class b/libjava/classpath/lib/javax/swing/text/NavigationFilter$FilterBypass.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ce6a3cce505befaebe66688e6a327ae857a2268
      GIT binary patch
      literal 544
      zcwUuJO-}+b5PgM(g%t%+{JN2F01{n{M~nwBCL{z+G~5d|Sh8%*wjlm2PbMDx0sbiC
      zw0JObF!nHS+P*h^GyV8{dk1ieLmw%IlPO>DWvHKIJPD0hnsC4ua>9*N@s*5>NNOwS
      zJU?=+eRvEds|h1citEu-j15EfT*lH|Fr@2^A%oXd_aZ<V`2sS?G8FqV7K8b0B$7Km
      ziUdQsuf{wY@<iJG_n~JVq-JRK|L3aBkedk8<%u9KNA<?K-rW(;pQ(koR79)Qd+W3t
      zrKNqO){$JdZ7W$VjN=ElYMzV*y-P+bzx}v5G8B4oERt?SrUVUZpP~9^E2R3_j8_GX
      z5q5c$(fBC(v^yhYgqh|maxavm5Ks&Vfny@Kut8a2MIzjU{jDt&9hR`|uxybuJ1*{`
      M;%eB^dpPj&U*M~VDgXcg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/NavigationFilter.class b/libjava/classpath/lib/javax/swing/text/NavigationFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6fec1f4d90fe77bbe6bd7437ee9683325c0fefd5
      GIT binary patch
      literal 1419
      zcwU`TT~8B16g^Y6U0GL)C?bMFrDzL6!7mbP&=eu5A!tJBi!V;gP#3qm&F+HupM3EJ
      z6CeBm{wU*_Z6#VHEA(OR-RZgK%$$4Y$Ioxy0W4wJL`opHClBOdDg5Yotx}{8qtd24
      za9T2Qd~e-xBNdo11co%M<Vu2GH}+IB639GrJSSQa7$_9$0>-Mpqbv+y&_)^=f$WCk
      zsm=X%Lj^V2aFxLDhToKKT?UT+?rj>;dnXi_-bg%1S-@=j2kNCy^;#jhAm0s@PaPSC
      z<?6|TH-6}7c)sGuuw1NLxPq%Dh6NVRMsDLWt_kD|{~;of+HD9dp7s1RdPm<}RB2j+
      zTmn-`YV1;|A{wS|cFV@NKIK?TMVrLdop4{ezYEp_zb(-Ehpn$_Tvz>e$M=*MCHq)?
      zn}jIx3f9_TQ+4!SXyT5*%!!(c+|dK0A;(w?dE7NIBQTk8P8;`75J>Z~+mstG6#qI^
      z$CbM!U9ep(TbRXt6LSKir$B7n#w4w8^1&n;#71@eP`AqoII@9?Dsi`RiN4U4Eq^~~
      zDmI=^W2Ao|;;9s{tDdKVRhLtt$ZP*OCdh%x&_9D2Um{nNUk@1tV|w;0E_`8<g2mNh
      z1eOVYii^zbE{O3Gqu^X;djwmgH5kpgiTNW8^;0~j(u<g4whQY~=xhYnV_FlVxDlgG
      zjNv8;*_cxVCi(@|D6oDG0d|f%Q|KC!i={r0E5n$bJHj;OMvSra5sIIWB{MPIyI5|e
      u3q6+0Vjc_e|5=oJa@n4o&K9|6#Mu%a(8?6O*SwGLIKGVFTNHR=4E_RY!B2qz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/NumberFormatter.class b/libjava/classpath/lib/javax/swing/text/NumberFormatter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1074629e64945cb0b01443ec1e8a57841b387dc6
      GIT binary patch
      literal 730
      zcwU8&%}&BV6ot=FEKsWah^XKXxDhasxN)PhF#$~)HzNB1N34N1DTDG_Zq&H&0emRq
      zowh*(61$kWbLZUeoX+Rh`v-s{lw*i6lpgpapVUWBw$ramF_HDF@vtkrrt1y4l){T4
      z%CJADx^(Ey;nH>;KA4Ib^i$ihWrIPhR67jObN5ylNFW)5!H`#+c^eZZmKidAA%pg%
      zGm_lt35G(YYW+QQVt^rKVhL%6Vr7v^rAS$}BZ6+5cL#*cT5gXII^46>Ic!Gdy**;s
      zv;KP%veuAS*6R#wzpbaHD%_@tf>I<#LIxM~K6hcUvG}(%Y^sEFR0iYP9eX{|v{l^P
      zOsYdQfHE0tP@hKC5_DQ)bUH?aDj;5aL;Mvh&s0Z{q1B)rI3ra9S*pxHhgIZgSB!MX
      zXpvHBleL3atkn))u<?Ug@ok$VZxQmsN96-~h*DJ%TLfe3VM1slgz5^qJsYb{yqjMv
      Peag~_wd1pP{h87?CA^!o
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class b/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab9c2654c5d08e44af8bae3a77abd28c99e451d1
      GIT binary patch
      literal 2673
      zcwU87T~icC6g|B&%fdLKK@njA5m((^Q8a!<`4$(m2GoebMDpRV3@~Py!QJ6QQ<c2<
      zlDs88B`+zoqN!9W6%$1&mCB<J`33n6`4J(fdxvoqLAGY*cK7Xb&pr2c^Y?#$`~~0$
      z3Nb_kT5ni$)<S!6-f<_}eS5)gzho7x$$~XAHR9OwiOb%647$M1HGXHj1?eGB;ZHfm
      z#9@J!!HvN>=-cVIj^8cNm3*D^+VxD{p0-`TBQ+wR_j}`Z6$Cb!h@!%PhRr5os1|5`
      z1@!9HtlYb0&~fbxv(saC;fghuw*_hjy_}UFu?mhH2a~$YOCa$YqEaGe7P0dJ4eLi1
      zFehz)(4O$KZqfDyv}9^n(%xyJ7CQ{4(qJNvMu93iG6Z)C)F)GGF_k_Bn$Z%&E`i!t
      zI+)mvR)HA7N_A>TX4k{2LIV3@*h}#?PS(VJB&pzpQz-gU#;iN8c#14}=bvXMhFR>H
      zAc?wl!j?4Y%R7_qv~tu*aljy%!zMfQO@T@)m$QqiyY{@cV^UeYhpjC|J#OM44iV5=
      zkTr~2G6q=<2<!+1k<1tR{7YWZ@g2`C1<%SlbeiY_d$gLK!@gDUFHTIXmP|SHn&^`b
      zl6}S<FD=W3eiLU`7i5fnZ`M@{EwWmj^3_Y28BcO@Bmt`A&e4+-!r^3Y%E^yY;JkIq
      zoArkr*DLg?6snTh>?nV!5s7!n#JjjaiepyM&a)1K%3r`BUrBq$Vn#7fG2`yYDC-j~
      za+ZT;_IhqMZ~1nJf7!k{>l9R{(xE4reL?GC=eAw$(UIDCSu*^<#5G(M*uKi}#So%E
      z9vh=j#=K{Z_e(|CM*_QF(E(EB0W0Twg<I-gh|EpA47|oq`(kBf#Xt^r4Ai<>I=AO7
      zx(-?Xl!*yUvPjboLq@53iqchhK??}kMRRg<-o$jt(P9;iVQ;pOvj-e?oxISOha^6e
      z$-1sx=+9flqD=ubUK?nkP#RlSY~3nvF<Mo8VyNW2w9ax>uAAutPhh0mw5Kp1aU8)G
      z)#wqvGu(L=TWRf3V-s(n22j>EZ0DSi7fgUS$FW3Aq@SX$GrffRp|)qJYtxp{lzxEf
      zc=|Dn$JlfIZfE@GFj9l!HpEC581*8m*?o1mj8<Gxky}cbLF6cQA%!#}8r*pRZHfcW
      zW5D6hfJ1NmJDim9meKwb$4Qj_w7_oV(<HxU<{`G%9Ob)u6JJ&7_){FqBz_6`?Nhkd
      zpktIfKW6Mt7;g-RS*N3{=UZ^ljT?$<x5}kARH+vyxJPi0hLiM+aM!AJJhZy`lq?;m
      za5~838OIXse55N*Ejt#`C%--SaEhNZ-P#HLA@-ze^(ACZN8|O;B@8TLi!#pLLq)CL
      zbw?Mqdec2rHb%Z*`KR%@=B1p99QkBAN4@8%#x3l{Z8G_c9Om&hJ}=AZe3;XDuE?As
      z{AOuIxcdlalgy`qb$ExCPNZ54vN}=PL#%8mr|TR?`8Cq<#)I`_e(~jw`;vZNskp~V
      zo?%>rJt5;t>x7CctzmYFrmXj9>HLl0Y7i|Gba*TsZ(G9qzlNbI6wKYS_KJmJVnNBI
      zHHr^aQ9feXOOVGE1`pM9-X*Ya%T9?1!32BdI^RNG`T@i@^pTk*Yb<$2&U9(r4^fwH
      zl4aE6Qj~#ZjCJ18L{sD9%D-hNrJ0m~MG|I7aUYxU1JB?C&fjN6e=Jii88FaThbfg#
      zB@=a&Y6corjWq5x*tcy=P{{u|0l%*Ue*3j`=$%`}r|Z*u#L;iGe&-eOgqH-*KJC3&
      jE~B?Upce`0#X@>jA-!!Oy$D?8?O_J8)Kbs{ZUX-U@(>yD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ParagraphView.class b/libjava/classpath/lib/javax/swing/text/ParagraphView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5787f0dd392c1feb100f21a16071e019c501500c
      GIT binary patch
      literal 6072
      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
      AV*mgE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/PasswordView.class b/libjava/classpath/lib/javax/swing/text/PasswordView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..565d0122173387acc91c3d709afa328f94435625
      GIT binary patch
      literal 4121
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/PlainDocument.class b/libjava/classpath/lib/javax/swing/text/PlainDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d368e00790f728fd8a67a53d7fff359cae0f26f9
      GIT binary patch
      literal 6235
      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
      U|FYJ_*Gc#vWn$Eqmi9gW2b+>j&;S4c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/PlainView.class b/libjava/classpath/lib/javax/swing/text/PlainView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..abfdc19898d56affdb2a7301acac7c05de761598
      GIT binary patch
      literal 11774
      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
      Vs$SF*cMq~q&0!RN%^30P{|B?+#*_d6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Position$Bias.class b/libjava/classpath/lib/javax/swing/text/Position$Bias.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2a0537c4407795fdad02813966170e075a3197c4
      GIT binary patch
      literal 717
      zcwT*xYfIcf6o%i~TVjm2^-@zWRqJJUMT1g5h$5)4AS^0a7W_CHhdLS)NaE#ZDYghL
      z_yhb=rRU797HajwOwO5k-uIk2dHVhH5x@!-EaU_x&*YW7@zZM^ee*MQllg~nsxuu&
      zvpZU*777CW%=n=s;-Gb=f=s~Pk-_=3Oil!*8t+?d2w3$vX~Ts`UMPWb<FDmWmXMGr
      zdou`iq_Zu7e5KkXcsD*#Hi`}e`dsv5K%lhQL53@@J*v$vLI+(GQL<riGUCEQiS!K}
      zsr}1~mP)?LR%m*N0~t1DqB%E*4)XZOg}PZf?!rbFwUM3bR6s=3Vivbc2@F-L|9gaU
      z6kjHRs%tLM^E`-UCI#HRC{oF8DAQEYXy*jHH)lt6d3yAtXdLvz^6>as6nXq2`sTPj
      zb7R9nH*qdy+lD6U7sPS7=K;O<D4Tf5#KU(+`hoUdgD#P58KYRF#W%cY)E&DzWqjt;
      z9^lm$e_-ri{VEFhLXE5${Yaa}glUnZN$@ZQK4Gfk>6;uV*1lux_QkGb4%dy1+Xgx|
      RIZT^<2A_>3%V#kU?+@S8ga7~l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Position.class b/libjava/classpath/lib/javax/swing/text/Position.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f012482fff97eccadb56c532561654f4b327d9cd
      GIT binary patch
      literal 214
      zcwTi*K?=e!5S*>Gv9$%Sy?FAV7lU6=5PGWM3t~x2N=c!K+P8V|0X|Ah1dlH4&cN)<
      z?(6+{0@xvA2ncyAZerx-u5`n#94$ZfMp@NshLEuEGVg>F%S$UOONbk3%epqw@yU8q
      z5R!9$9V&TLog`#G|JGXxX`!_o4xKPY8iqMx`S;{%uY@6l9wLIvhc9xEOc6O2fPLo-
      MvBSh|_)d|30OWTwsQ>@~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Segment.class b/libjava/classpath/lib/javax/swing/text/Segment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..05c0e8334d87ab9791619dab52737d0b8c8efa60
      GIT binary patch
      literal 2533
      zcwT)}U2_vv7=BKgCLvwg8oo(OBVtLGLO^Pj7Wrrd3C2=dECvwRCfl-1*v)J<Sg&;S
      z+8=;dFgoK67ckP+u`@d3h2zKQjQ#_4^f&ljpR>EONn^^z?s?BS?|Gi*eb4)zZ~p!C
      zGXRI6M-dX(ep9=xEo5tN80LJ|(HETTv_5}JH=QWL0=;rKThX|8ZuX{L;%Y=-Q)4w(
      zu}oc?tq?3GkaRa(l-v!?)=G|U=lN-lWeaSqYPMr&l_}k++opiHBoHmtZJTVI<pnx5
      z+t%I`2wl!`QnKoDBVx_X)pThbHB7@fCeV@2%m{>YR#}gu16ve4frLO$!7%lS`mI^r
      zz91zDBnnnZtITM&A?N;L*tucU1a=nIi+qf-(wB4jd}d|?1o{+gM7OkdDd>eFt(1Zu
      zC{m-0Utn`OQ)o@qnAEmM!IRh>#h}2RmaI)!&UC$6wQNT(pIRvCRmZSQH@KXn$SCN7
      z5~sCK!4UQfbj|C|DYKk6%ld-rm+t^pSE*vouxpNVJ*40n>AI1w<NCZ|`pz-VeKTCq
      zYD{L>WW?O4+WKw7sxu+6TEi!u&*Y*Q71-Snov&2%d98BNp0CR+1(KsUDzL5LH|^NW
      z=y=_zlyy4>-dDV8)ePx6nu=o#C**yd6xfn3w4NHv%t()%f){a$H?CEyx>@EOP|*LJ
      zeTuOdUJ~dYO3elVdpvoGa#mn}JD$g&6$F%_l<sGGG!?@Hvon;EH6oD(CKa5=6c-)K
      zJKS0UK8sW_8OITvkeT+A5XHqcjpg~qF@vH^%+44t3y`Fj_c6J)W5Vf6UQJ$8umN#4
      zO_gPD)LPtF8f>ljv{koD`e{QJz2evQ0m;jfq!U8uM3i4hV)01`$%2EVX1%*(k3a8q
      z#~xa2H2ybnc9<h|qElVQ=7;X_t^CJ10w)kg4%=uco)flXhYQ63eSiu*!yGqD0CnFY
      zl4{=~`qlnL3^eez@+?rG=LBV*qp(SyKJQ|y-gzHeT2i=hEh#zVS~7?ZuCfn(=5b$o
      zjLc6xxF{aDvoM*S_F21m0(hM(*ARi$6iF<Iqzij}yjOWj?hUAqFmMOm9Mb9%)O&~|
      z4&3J~DOZN?2SFuV;U=?h(XL_(>?VqVfFc`EO!*XjlHz?2mlOvV$+RB+Tf~2x7xE70
      z?>6E01^9d`eEe*1n~%`n0E)Pa@3p<jq2TbaFD@<*OM%y05$-f0!~=xGZRyjkhd*db
      zKOE%dx_iCApqHC&nHZIc@pGhx%k8t|mDWRM>0=hjBW7utx%s4tZ7^VaHeg%u*+!af
      zg1F)9-i@zeFS;A;*>{l__=^9pnUZhG`W<indlu;rOzn?NDn<eoBY}#NuOhRy<PP5T
      z1i8eI4f`h&|ICnoVe$P+;@_GGGXddqc-|-c!hI-!xum4Ihb}p)AL955juclgR!qFG
      zjN{2Aj3-Vn;f!>W_RF5FO8XVhKF47R)62N<xtgRz7wGPKt#W{U2K>&x`-46GC%gDB
      zR?XjhQ~$vk&I?$@c_B~~AzTq*H;S#E(%@Z~V}~kkh4Iz)<2lQCWUML4`6YI&V5aEP
      zyCuAg*FHjL;?e`GDMr!Tl&4gXrz?CbJltdSmh2H3+trqLQS_lx^fzgY1R5hO<G8C)
      V!)%+bxZ2VcVsG27D7jwc{{V%*wL<^^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/SimpleAttributeSet.class b/libjava/classpath/lib/javax/swing/text/SimpleAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c824ac191473cf00ede6296f1acf4d828b9e9b8
      GIT binary patch
      literal 4801
      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
      UwXL|`-p+5GOGWiIudJ^B2lh0?5&!@I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StringContent$InsertUndo.class b/libjava/classpath/lib/javax/swing/text/StringContent$InsertUndo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9d51c6520dd78c148fdea4b84cba8159291eea15
      GIT binary patch
      literal 1566
      zcwU86TTc^F5dKanRLT(%%f%Za0=A1%5b?%Ev4U37C~Ao>CQEw)t7Vt$o+AIkzu@J8
      z#7hj3LIOq-V|egK8E3Y&6sz*kGjrz5<(qG2`{U=vR{;IE8$v)J_RL%~m*U<F%btyE
      zwWQ+@wM%-!v9+>wXVUhRs~_7LCxoCtSGjwRtnslKPrGK?cQI$OYCL0Ufoe~iE=iFT
      zsL3jOR?i94xhmrn6ALs>a;|vRq)dgHLjtu6j%R7hvAvQ*PFvY{N~N{ql0%K2v%Jne
      zf%eJ&BWK@X%eM3=p^on5oJ_`20>OlnQMI7b5)%8vs6s@d9!&yO(O8OKS|qAb!`fkq
      z5NZStOj@?Omz$qa?jt6Efjen4n=)OC??q#ffeZBPfuxLZ>LADzGmLhLHZ;|u1Dzq9
      z5@`E>7Ktv@(G=!Q_qi9QsM8Wr!~_n_Dt-Sq#YuaL$R}*kXeHIeNTrec?vV(ij+361
      z=tZ1{MoA0h1)8I!!1Bp*V86sZ)N<f}#CZ(TfLt~2EE0fIrKnxIRlZY0AzT#btnf*g
      zw(a<QjW4Cu0yh@M1w=x)^2fURG+j3{JRNo``4i8)nauNu#1NVo<5h`k7!#0|Kak)3
      zosT9fyW0yo=SxW3z&K4Hw~#Tl;`jSIyWaGd3B*z%-28XTQ)*Ys6Nm_eA38ZVttKpg
      z4R@_XFQ=h)lD4hfMAq~?MRmhF>xOokQ5F3)R3pGUPFjFB+?O;sU()1(h6esR=w3w;
      z^*BIh1Kpm|dyr(r=*i=tv5rH=u{@fM<9W2M_|Zq`Z1jEJQiWHP^EJi4!BMib`?VuD
      zhU0**F@}JzF$%6lpFpwJD|!_qr>M*cV-*KiadI0i2CIUOX8N_Rp*s)5x9ynD<k7d=
      za&CGVa(WXNo~+~2)(YhfVjQ<{xrn%fx(AlY`i{`Pr~3yC;v;!{LJ})@fX{vhvVf@A
      zf#5|dqJ8P32Sy0(a9Q!bHH=OhqJYTQE_A}`8m_b1C;*!vV7H3E`Y=!e*6j~vova%~
      r(k2e$3(@!$J=h|zZ}g3Q$1t|bz>O5a1qe8ww{eGLnBD}nHHpA4i5hoc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StringContent$Mark.class b/libjava/classpath/lib/javax/swing/text/StringContent$Mark.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67d60a2a84febc1a731eecf747feeddc8a09ac71
      GIT binary patch
      literal 568
      zcwU83O;5r=5PegSLak8oTM<db1Te9B)_5T?A)+2I+!tK5SlXmrl$+6i<bjxY@CW##
      zjI)gwFR+{4`Fb;NX7~H&^9#TU_DmRr{h@dg6E}YLf_qoViE=wCV!as#N(QQWC89?Y
      zX@aAHt}hsN(;LdZBBVzgBv6ZxjpU#ijsx~))PomSj|r9b?AoV{J@W!jofE3HdEi#P
      z%Z$zNPUb+!+sGnkAqB^Vg=IpjR`2S_ij4(i2!*y6$m{W_C!<@@^Ch9!4*SCIipbOU
      zpEIqyB^=D5Pu@W{91aGt<SDIAIF9=A!b>Xu!yf5U1iKXkGHUuFj%93Omr$O~!OdtE
      zRCtOMe~~^s3iL9ybR0c2Tg1o0B1@aKOBe~Z&^Vl8sqw)|X^P@Iy9})IolnAVT<nF@
      iU$Ms4I>$JL<winKz$Q}|ytk6PZR{i@{Jkil4C5EP?}Ehu
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StringContent$RemoveUndo.class b/libjava/classpath/lib/javax/swing/text/StringContent$RemoveUndo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fc5da651d2ee570b4d2de6b4a00496b08d020f0
      GIT binary patch
      literal 1673
      zcwU8-TW=Fb6vzK#J8@&Ckd|Daq``y$_L^V<fnJhuGXb^@5FBvC<HjC^1!p(f9YelB
      zANv(};~6P7QY)1=9(d)}K2$0KAyoCDQfY+{LOo~fI1b_BhuPUPXU_c2IsaMTee=^V
      z0ETfsj)*||vUAm0%!b!oZ!W9VqRvk1faW>h)5_C>c{T4}RTsRHA4g1JN2_~<tl6Wp
      zp$?p)W*29+tR_mX7HA8#6VOxG0@1Sa1QP6Bk1g=|B*)2?9g0%7jS6%u_@S#^-wT@#
      z744R@1y$63Ko0Htk{b^06-Z8gn3{dZT+h{q1P-P?=4`KpNf!iSIlrVjKr9jxpC%AR
      zm&AH>Q%0$DfmeDZ+R&cBW^9S$3xUqJ14;DZOM;;a%;`&Jqs<$)O2pC5vuzTeprZrZ
      zu_KN_f&LG}O6<fsD(}1#TnQ7jD<zSJC9rW$>8a)V*<PL)lt3!AwvM))UTb8O-4Y27
      zzG2e!)S1fstP0L^N4Xn*(J2?4z~%RbF~;2x$b6){EefKxL`f{Pm9@YH9g*0FZqDPN
      z#8>!QK)PP20=+Dhk<`1ov+78r!dCT-a=dRPMlnWpsVtNnZH}K>kyrOS>XI(RL3$Zn
      z6FcX4o^SL$u~<|K93p{nbj5M>tqWnYKjxIUT<q5Lr<4O#Px-jSv3klUBu?TK>7H7*
      zoNrI6*`C&n+5J0-?=eYY3QR!-wl{s>Uy3-+yg#M9T9wjibkQ}P_A5bAop4RxS9Nj^
      zhoKJHo~MFb*$G2MrA(~!7fDi4ls+zPi15XrS%h_No}_Z{k0b_kcJh^?w<zscj}0_-
      z(%TQTE5;uuD^ta1)-7zb`l{%$hHBVUMZYyvMKZI5fjhLA5q)f~VOJHIo92ii8vE%$
      z;5Q0%j}E*~!5^Rp53vQ0Fo0jNhgOpYau`|cHAuq-HezPOw2PrgmJO&M%{wqoJo~LB
      zI(mtamXNIBzzjVzcL=j?&eZUYC5VTI<PFG~pD}*%77pLONg-l%+<qKsfbKN)_?@hO
      zpbL))@Cn(TB7<k-^&BJk6Jz+x0LwZ+16Z(t8gSPMo!9aNm$O>v`fHdV2DX@j^_oSo
      zvdU#!?QhT2iBA*p*#_|hPBn=KsE5GcWc>%dc!6#B7YFbkdAx*;S2%~)EwuRtZ3I(h
      QJVzGpKK&<<n5Pl>AG4mA!2kdN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StringContent$StickyPosition.class b/libjava/classpath/lib/javax/swing/text/StringContent$StickyPosition.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6059d22c681d178538b4e4318477b947c7455fd5
      GIT binary patch
      literal 1163
      zcwUWD>rN9<5dNku-R`<TML=#=kRr4NmW%fypfx5<P*h9_{&HJR%fhl7cejeq;H&t@
      zq(CBx58y)?=PU(jG}Iq^=FFU#`M$aA&tKnv0GP*91rfr`uKCeCF#J!JQ!@f_5EvVQ
      z$M=Hk1i}f@8-Z2X`~1rFt-x{}1u;TWh8VWV0qf;mQ3({p34?znItwDi_Dye(FtOGK
      z>;=2!3GraZ^3!vK(KZ3ncgb?BV40AfYUf<cl$c7v-4-ec-8xig8lt$W;|h8R(Wy*H
      zLofOj^bt~*XVY<A#&p$8uWZ&t!L{wM6N7~D|EN;K0EQ*5F1g&$p&+5M?WT@Vj1dx^
      zs21G16A-AVGO2MLX-p70WGj6_Pgt!{4=md#F|zCBHB2I-VCrl_7v6Mak>d)@?QKHe
      zX{RnuFrRs+V1_XK=Ya_ro5I|CBdWp^PDMx-hK@PR6Z8*tQ5WmgXTl72xL0efapy6w
      zr5h8Q#-c3t4q@>h;Fm|ssdcYej(Az$FAMLjS+<3&->sN-$@DC#H;pm5I0U2Jp0zHu
      z+#<JH^#wOut%+d0dFOp7%9%Wt)8UzD8*bgJi04*_-;!}w0&-i5jw8H+ZTh}o9$l?C
      zJXuc4Uk4)m2lB*$WKwP+YZ12dHt^ZW+86eTvRujL4$+l8MlyGVYuOVFY~@CdF?5KL
      zYy%@(4Wwf450T0>a7!AFaC`Fv(^=MMkFoGAOnjHm6vKf!(LqtD6h|i|FhnXQNy8%P
      zxW_*IA*~hM#{(d|J;Yc@>=E)!Vhb#ZWkRAgu=MpDAujFI8)ni^eVUmfSPst>tg_U?
      J483@Q$Zx&u91s8i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StringContent$UndoPosRef.class b/libjava/classpath/lib/javax/swing/text/StringContent$UndoPosRef.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7e2c2d4481414676128a58084d633b7ab2f8aa3d
      GIT binary patch
      literal 815
      zcwUW?-%c7q6vn@^{8`y<kwV3at;K>ZtVY^fZF)muB*D^DipDDk9NM+8o9r&iYneby
      zdeH~)p^Rq+6VjXF#m=5H`+dK2=Iq?v|M?5x6F!(Q2-Qn*CC0Vz+Vy_cA~}v~$5Fs>
      z-S;BtMdcsfh5yYDzstUfI3c6twSi!9t9vPX5g|Sl!EeG=a{=jyW%~qc#Kcy=A4>L8
      zgOH4VxncPup}2s+=HzGBbE7YW!^$G@liI0vxc|C;AyXhM+epE(5W@=_&yXd=D%Fnq
      z^3p~E$rSQ<Wnz_3dIDQnmXx_*!^9Hfo31Cnj)q+sv_*Fy3E8IK6N8QjT$Mj=#??3o
      z+l%_2{}`SN4GD=r>X}-{{wV0l16P;$$F!@M1iRsRGN=zk7|PJZ7GdN6#TYs-haw*;
      z##bl?Lyd(aL!A)FWYhq44j!P*y5}67ajx_QXM2jYbBm0#GeypECdf^&GR4}B_N?=o
      zMV!}D=C+yDK^iA`%{zI`EZ_|`03E&M%4)C3o>`qe&WYc)0`s#r#mby)Y4thxB{b2V
      VX&;FOHud@rC9UO=qKx-29stMCz6AgP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StringContent.class b/libjava/classpath/lib/javax/swing/text/StringContent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..702d514aefd7d0e99728084e36d4b3d1b23b6ccc
      GIT binary patch
      literal 5574
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Style.class b/libjava/classpath/lib/javax/swing/text/Style.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f1a81cfb7f2672a3ccbcde9895843a1c1fe98457
      GIT binary patch
      literal 292
      zcwS{s%TB^j5Iq;v3kXIM!WT#a8*f~*A||Y=E}F2vg_BxRN>Zi;e~pD7;71wfvQcC)
      zGnqM$%=!90egb&Hokhc7xc0R_xZOT0QYSo!i{&Gy#g)N*z+CPXc}vz@ip7n=!-e9d
      z5})LpiIiDV31f<ZO)0N_LxaJ168$>GN-EN+LEo=d&+mF-l<kBCOM}rk`s>b`g}8Il
      zbh1#(lACSK|ME_}t;!|mS<bM8AdkUMzcy%UU2F2DCbMWEBy6K|nzvyp-qqef?+4-R
      BPrd*E
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleConstants$CharacterConstants.class b/libjava/classpath/lib/javax/swing/text/StyleConstants$CharacterConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fc27c45be26fd8493f38a0b51fa99e2cc61581e1
      GIT binary patch
      literal 1428
      zcwU85ZBNrs6n-vOw{8^CAqc*ssDQ!%@fAefbc#+;hp6A|$_*4sOWHdHe~8~TF)=aG
      zxW#BRG10_Cjeo#DV?6h^69^wz(mm%q=e6gY{`&jr3xGj9Orn8dXx@5kEoZ|gjyIc?
      zVp(QOa>W&S-wUPX$*?OwX9bomMev_WVhh88P2!SBFbr&Px-4bjlq*t{gj`MipJhnr
      zEPG)#@GIU7L#C(_WL=BGC(HA~mLm+QoHOGT#be<zY{~hq^2_^+OTH&Oxh7MhU@bcC
      z3OSXWrz&&74@5n4)41(>Yn{iX<vKPQO2jRQsX20-oug`{N;$LxXGt<NmMTjksB5Wv
      z-i!!b$D?p#)F#1^V+_2zXPRo}{TY!$2lgbfo1uTxDf_O!I$;w@7%4F9F|eO1mFsVu
      zChnk#P8_0^N8^gE-D}3A+V^HhdZtx)mx+{0bQIl59AoI)tc`;2$u(W1qb|A)9H%bq
      z`j8dZXQDAmoi$-bep#gsnP`gCA@%;JOl*tPQwGk`U>q8}QqP-cjuMQT*dDoz8n{R+
      z2=xkNv;xInHn9VSfjo5)*7u<dS50J;;TkO`TwRVbjhkpurkfN~sc%XdZkgB#gQ2-d
      z#6)GWEP^Sk><V>mzHPbFR^TXIlWA}qq^{+h6EX}JHyhx_uZ1p_Ev!G~ct>=SCBG8b
      zqTs0NE$dV1lVLE&J&&@vRv3y<UHXOsbPaTM^lYWUcc{yu&$~k{USm4O#u&{Qn_}D+
      zV{?q#W84vACdQT+cWP{)|5mh7)m^0hq5A5#Qbl_Wdq0Cc%<TJs12r73;z$iWn(5Wd
      zi7NVQ7^q^fhLcqc*Kk@}&uHtpDn@F!pqVkvT+(t*%U85q(DHRH-_UaLoo;D@{tMJN
      z_)8@CD`fa<wDY&<<ZsZ$tLWwLF~C3KH2;ho|AOoM8}9J0nBw2@i2sDcf57FxvCN-g
      zQfE{TeQfb-j*+IgMDOtrxV>64tyumXTlote*A{u<4({r)Bv8T><!Hb?9W#ylI*RGV
      HJwWOoRM1G!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleConstants$ColorConstants.class b/libjava/classpath/lib/javax/swing/text/StyleConstants$ColorConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7708186ad109d1f529b243dba88ded75c38cb31e
      GIT binary patch
      literal 776
      zcwUuKT}vB56g`vGWV2nP#%dF-jr9w)rLoTm0SyR3un&=dkF%R;TwP~jc2@1rDt!=I
      z=nv>?-z^mSH%jk}F*fu;y0E)*@0@e)xp(H<@6TTWyv1e#Ifgf9{E}bS)2m1h>RMdu
      zdRKplMLUtH=2EBY?IcdrC@f%tq4o%;fIP$Ne?WU$t0>5{=n8!&JIWN`GVDIWIOU3m
      zT0F2Ayn{rEfl4yjXDD}!Kt1L}e;1sIP&Wv%&%^V3gxd_`NJhHF;B0O87$(|DU$~ed
      z-20J|2h#E}ho=nr<`6%>^_O~=49G!ayH_OWf{!9R7Znl-M#ap|qK_x=7^XXs6i3-b
      zAk;ArVqvT%A&+}pMJBdM4-U%YNS{V2&7$*v=R%#b^YIZ3O_Hl_lBrM}M5glGxQso1
      z2LDh>q1rJ|Q$f{B<KlQp%{a(m5_D%!HT}{Rs+#WTpMwh@Q-mo|v`0wuRKI|ol&5bn
      z`w8=Q{mibbA1!5xz9j>7e!_Qtq2heUbGu_+n*C6&MUlzncV69K`GM=1taFP==ZEDj
      c+@bISHCsN96>B?(Rm)k!x@9rj$_9#m0Cl6issI20
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleConstants$FontConstants.class b/libjava/classpath/lib/javax/swing/text/StyleConstants$FontConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7fd6ac1cf977aa1d464ef6b780fd9e81d85f84c9
      GIT binary patch
      literal 858
      zcwUuKU279T6g`tolg+xZnzpg=t5%~XjqRq-Ed>n(3PB%M0zS@e$9C#=7j`Gw`me-?
      zf`UK5zv8=spm^sRqCrqx*qt+nbMBdYcRqf9_W{5*`c;$!Hjm{?c^VY2bb1&Vb!vjp
      zoF!_IrG=5HDcZv<HM3n6Wr4MSSgNQ9^!^Y%G$z;4#Hdgit~w*Ca0U8*Hw=zsE@Pwe
      z87okJlqClOjghqmi6rBb=vc*ON1!s4CptMJuy16dV^W9uHJRMqIMJy#djd|UJ0^aR
      z9VizKLJ`&TAh7IX1x@nqPL(U2-!eivKzg{-9oI;@>Z1nF#Z^*2=Sa(5_i@3pH;L7p
      zZ`oTue9PXZsDch-xwelwJb}fLPSxYdNu=_pGD?(fD~n|^mbtcjCOtS<CbK!xg+MU+
      zuYX5F5ijPaHSI*e3$sZctD&~ROY>E>tX{z1Pg9i-5?K_A!s~Oju}-ZxC}9C~MbNS{
      zp-a}XQ{dH~u615ZaB&ff<hevUNlyE0zlV6%xO|SKx46Q%#rPWI8;sW&uQR^$hD+V0
      zZ<B)Ie1-3P!)h65mmTz-Pq@bl`_liM#_iG0a+QtVIqv_e;aS%Cj0NWl`<g#h=%CBT
      Wt6&2?s!_rN_H1H{U4mN=Q2PPE%*3An
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleConstants$ParagraphConstants.class b/libjava/classpath/lib/javax/swing/text/StyleConstants$ParagraphConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86b02b7853d71f1b7d0d9d7047a1bdfc24580376
      GIT binary patch
      literal 1091
      zcwUu~ZBG+H5Xb)uOCPQa#X=DT1*A%OY<W;bDhU#aB#o#gB)%~5TGn!ST*=+?;Kwq)
      zAkoARVB%LY?u-XWcwxBYZvMZync1D${rUUb4*+vmO`=U;e&0QIPfO8>7c@&opPEw5
      zeD?KvD~OC6n5gjD4c%tw9`0SZl8^$!|H(@tAyB>+v}R1`)sKv>X>(cn!Yhzo^Sx$p
      zpaUb2t5SZ+cWw4oeP1`sia>V53nNqY0=*gRa+p)qAI&*r=uhp?ZP+C(ZH1n7yT)q;
      zmfm{Jy^BbPqV!t5b*#_fx%OKp0*P(6ZucjUsx*8r@XV?}dvRh%K(4oTbqYxb0(}a%
      z(Ql(GaY(-S&wgvRqoBDmv6Hr;cNCIHrI04LtB@ve2u2hff(*f!LWV#QJXBBwodgpK
      zodjJ3(+XV#S%Q*6mY|zpUZEQ)J0lvxtD}Ru4s9#Grct&UuD|1k9x*!|w4=|qWcIvB
      zV6l4hi(pSfe7br}aoaS|)=}8d8y>CRbG6hg#S5s-Akg8u??#cfJIGyM0He04cKdeN
      zkqyuc?adva@v(Jcn~AN8ZD(w|Vw;U^H`_M*y@i~u+GFXLtxwOvcZhen-ZSLCVu1A^
      z>mk<nSP!!vWqqG@f%OB{<E)FUCs|Lio?$)9y3Bg+3vXk=emCq^Ap4=@5b|;m{c;4O
      zau@|!z>FM2Sr)M@$5D~fcp<0oQkL;Xmar`s@m?<AgIt0y(^%w+^x8Wax3+4De2K}a
      rGd#Ln(;=_yMTg9DUf<s+JjN1_B7rAZwl&)Dlyg>4;Vi+2@eJuddAj2K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleConstants.class b/libjava/classpath/lib/javax/swing/text/StyleConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..608bff99481c2d9358682521a86bbf2623c36c2f
      GIT binary patch
      literal 8963
      zcwU`Zd3;pW89g@vCX>7gAt7OtEksCy5EhZLRg##2U<i_g0C9oI<RuJDX408SAc|1Y
      z+Nz+|*4BNkUDR5f5fEuzTKBfJYFn+{TX(D7tV><mbKkp}yqS5)jOCBqIp4eYobS8$
      zyWhR{$J3uY@F0NsqS}EhfvMX)eV$!a;hnxfS5-vc6{%{D^!xSNU?3dv1R`MvMhFzh
      zPE~#nyR2*9u6rW_xz!Ezs~Wd7)VW&(M7@A(U`VUS->YX+0s@-ZtG2GOrLIZZgg~BY
      zYpP$hx<#7k#AwsBW<zsJy}Q2dG-=MJMvce2qbn5b4Ri<;HY7W-Ou$*=>+m(`eY#&@
      zL`~2y`_%@!dx8Ny5UGwtLcaFih%PY7?dkUU`$_2z1|kC>M}lVGxw>Hw=>t-(dT%gb
      z9bF&s_<deVn4MkC{Io-F*~b1|+vr7eZ+qAq^7U|D@|t^l^w0ouZU}VfA-^xcQO;_=
      zuPe|^#~85N7YaujXs>4nX~}KSJ0k-iPkw3c@p!o?MC(F6nmrL;FhJDg>)ICYnJatg
      z)$PGPeE`(x{@_kJ-QsC)*4brjd_wB{x|DD9bnA)pDdP!rEz7}dy6GM0PB-O5SVrYw
      zE+@g~m3|Z(v|+uYg-K(Xto*gX4&84txa3F+E@;xjL4TjsG-8L|A10;gQg6iPuc{7(
      zJpB#6uv}#aKL-q_bC!EKnZC$p1+vR4S~;?oYECT0atGLRL7HqXtKH@adAt!l6gO!Y
      zjRGfgb-AQDRl^t)o+@FDhC&n8NLZ(#$b@wguGTQtgsbJB(=`-JxD;zOOf)~N(@<jC
      z)@vAN+SW_hqG7xVTO{15VS))a%0FwR?Mw}mOxu|fo}=Le6P_cXN5f<jdL-=7FvWx&
      zPISTNz_tvg;|$J5SIE<|%`zQRO&Xu1@oSi7LcfGT4bx2+lrW^B)Px}kdo|23VXuU{
      zG?bZemxSkOIMIaXNw`PDOcU;r@B$69On5;KE@IMnRd!92Zs*c|v4$_=OU&!#Dglbi
      zQ!}`tRZ?84p$Y{#*e@`$TV|s)Uan!DG+xQ1k;x=&S813pZC_<(h0LrBN&D9{EI<MC
      zU+%-k-tKli#NFgKc1_Uh@wa+HK8X!uF0yf*bZ)U6dV_{VsF1&I(y$OGJ8+9YkxgFb
      z;$~bY|J<(O8@PiB?dj-9ib~bFiZ=Qj+2-RGnck3QNx2Ec4u%s6np494UtW<qQ7p|}
      zdc;zZO3PE3<2#gfWLZUh9`3<G2fimTdDyNR?nP7y4DRunc7dgu9Jo(l%%HhG5YfBz
      zP%dIPtl<dmXKX%o$QVU{N00FE982Rqd-=E!4Jpk0;-aV4qh@~ExiD!wJ0n%KL4Pnr
      zuODXROEfz15PqoPM|hNJSkq8ldpc`h@<6)fHK)pQl1W%QScMmTDtFW{y7V;DHT44%
      z!mc~}QZ?mRN}m>P2Y$w#GB~epf6&A1K8|NJJd5XeEOkoD;EK5!bSD?NA!&?S3F`^H
      zFs*!QYCG`jgd2-#&cSc!$=YBb7?y`5S2?SbPUI;;b+8*~@FL(Kt~XA*3>_KxE(g((
      zKPyM9W>dv_+UHAbJ@BO=;gpvntOtD@tFzuoJaF7E{dArh-_5af_)URvLwsfB^@YtV
      zR{Er9bKq|Y+qfne^y{8LF5bpJH2f3)VwSg?w!y?;nG@}an^cWkCU<>!;2JjC7f!l?
      z<<T;D2XjeexrOno<sPPm6AE9YO)zVFBeJq5#8h9=DvQu3veN&T^|+jdJRwB3L+}P$
      zmI;R@Mu?GgfQ8;t7-!iOMw?Q}%g)TqJY~7@$oM!B;l#qWB*R#ftCSSaYVR`V&Qhqd
      z{dymFi8LCCk?CBv$+>)66lh|MC?r9jOo4UWjwR)76}GD{+Dvgv8C#K|m|eA#0TqUA
      z>RqN0xMc*##RO)9m?*QsEh&ZDoO5dlTb3bXY9W)1*`1zlCUDqVr9^l@Ww26Zb#|Ex
      zVV0OrC7MvQDq3^IOz!nEJz#kzBy?fDkwR)SN>381Sva|xg_EmUIH{V26RTN)#EJV`
      zF1=-g=Nr)a&I%6}z?%Ojc54|l-WBZ6X`V1-C(|cOS;=h<_J+K=+b6GyMTwWPxsrt=
      z>H`73Jp7(;SP#pWYRY58AxJzoMKk#kBR6Fnayk+X4#C^;oOC2IpDY}%BwU#KG~nHz
      z3CX8<8Q&@+F^b3`-|xsFc3N;Qah?Usw~fn!^NIQB;_nIawPm!0sx4COSk)G*wnVk#
      zR6Aa^6I44<wUbnPf@&wLc8Y4Js&<-cr>nM9wKG&(rrHx#J5#l@R9lXUcs!NFCt2_u
      z;wsf|o@(c-c7f66$fp71KRy=tcMdJ5U@;j!1BkPYSq2`7Vo3}uqWEkKE2F56p*D)s
      zVsJ;XDu#OF@0utYVrY!wj2N1tXpUh+6s<9AGVGh9Xp7;jD9(;yOB7pUXph1hgC0d^
      z4BMmF5kq$rff#zC_*@L(C?YZRMX@u6{wU6kVRsbg$FMhw&&ROu7{unn3y<InF<fH&
      zzRdW2!1#TI@%zih@2?oYufErqj<56YK2A8Wo=MQcblAw{K9ft^#$`N*OXJ~mcW@fJ
      zI9=O05#3mh9@HR=)#yVb`Z;Phd+)_oTnI1OI&m@lxC9~W$1YrfJ-7-N;c8rpYj7nW
      zRoCJs+<;s0ZQPFga0ebH>otZq@*f|P=2TNH%dnMJ9>KMhvk&3=C~kZLu4A})^AX${
      z!;Qq1hjH7+!B{3T3h<3Hg4Y2j*+=6L7xpky>4>3GVlv{J_?DqoN-tz`2z&>3D%~mr
      z10yT%!}SN_)T0dJ!v>9Jc2G1<+=aW<;7!Wu@s&|*KZ@^WaYU?P_T$KzeHe%C&b~X&
      zS4by;XSn;G<xYE!uKm*D;&>dz18iN~t;g_vvODnuJg8JQDwT0mS)o)Ok}4x-AB^IW
      zgGnMUk>+KJyuvN~nnh$>TqGBd;ZZ~6aobQ<W)RAI<awVeACUdSG@(3!CzZ+urBX~4
      zw^DgZg(8vy5xH=QJd6<<ibTFeqBt&*!$5v)Nc;ppwF#tKNgN*t<mdO~-IJs;nJQDL
      zG8H9a`VfKqf~zG}eud|iN~=;Sp~@Pi@`4Ja@Wtdv=22rlH5M?ElPwx0aSbPaYow+V
      zzl$%)W~DKK8jYz-QlKTRiKwN_X_TpBD61?o6XG&jd`*6Dn_f+6(@V5cWFtj3F_yM8
      z>GcQvQHd;OAGwQM6xpCe{*<)cgwL|wT#C+#zt}EqPX<f7i>~(5)pI!?yVES~OSUTE
      z3{)<o%6_UGpvo0#R9?1K>CZsrCaT;_m0PHCTN;&DY*lt=pmHx&qEv}d<xm=xS8Y}H
      zW}xyYRUV_t<5YPvjmm3y-6n<hDU~;pQ|Lw86#6UPvT?Omk-R<N>fck!oOqqCzCl;t
      zq^oZY;p#j1x8dr$wkn%4Q2B@|A5-NMlyKPaD(~5<oRwZBYcyP01sIbxhAKsARNl8$
      z*^+@uDOF}rrHm>w)2Mu4tJ0o<$|9<qLY2i-S&~NOKej4*1}dwmQcsmNRB1?~@*zG_
      zDr<OGki81!t>749n<pK?$4BLjeemj%D|=*ZA@^1bZy}Bfd8Oem;V?4VDRP8U@z#<-
      z_R5p@fZ4W$0pw-{ErfY-!aN?QMp5RGYUk+6VI4i6j_w)4QB67O;vsGFx|O5(a+6KE
      zUyQcp+|S89VByS<bLQh6QDktA6~#8eyX}L&p26Q>AN;^QL6nGbHo<ov!|}~Cj)?KL
      zymvDAyX=F<F)_*DJ%RU#R7cm?J9?CkJ}|^8O);+lypGtdQsc0z^dud9YKT>urdDaX
      zZ8|mCJNi5wePIYkOI13}5M_$6NfDM*7KsxJ=NOFgxKHNJm#?a<SCE(WDvGnLSJaX?
      ze+eEFvkd-n+qBv=WLmw;w0bX1T2<I)LC<hmkUbJ(vPY%Kf=XN7@UXmN$y=O;ceX8W
      z|FFEQ!P#YLcu%tB-90St0`e|Q!#l^8cki&g)#R;7!#meD7tR_g7qZWQD|>yKT&S|;
      z+%hER7IJP)!#U5EvwcX;06BwcIOp^Akh*dA*>2qIJ;=@8JH*Ca$R~&-Tx9E{KBSWe
      q=;Y<YI+-O-kz>SSAz4d#gf4{;OQ<E=<!o25Jr(l*nT1#h=l=i+ZHzhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleContext$1.class b/libjava/classpath/lib/javax/swing/text/StyleContext$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4cd8a5c34eea5c519f31fa1e5f9550ebfae915b2
      GIT binary patch
      literal 995
      zcwUuKQEw7K5dM|}PT&LzRz+KD6&0@PiSey!(hxLFX#0R6QD0nOE!*7fC3lO~zvFWs
      zG$}Fhp+CSMWt_brA;i@5VfJ=rzVDlvoBj3s=NW(&9@$7SY#i}V{Md^>OLgdJajd<b
      z{^E;vsEku@*+?^#4aoC3K@J8-VyJCo8CH|%L`&c6s7W9qu4Skgm?Ya}$m+3->n(;>
      z_xvKgfcyTA){z`cwCD-FP2}fNN&S-HS>wX&W}hM54o4yfhLVFE@_ATTaZo^o!D=-7
      zCUeDsjZ1{+N+tFu!9YZB_`nwom2NoXexFCu__JWzjKi?`pLSZ*d}++%y)Y6TUj#zw
      zIH~zAhc(=?vCiOKa3TjAxXqB^6eF?f`|k2WsAxeEcUF;xYc&4_%J;%aG!(C-nP_FP
      z>SKduaCVgvQQPNnEMglE7}n2i)~GDEOFy8ahJF|mV^8RDIC8LshXg$odJf#@fuLb(
      ze;ZwXNZWWqOR~r^NYRU>T><5?*(P}wSpg1ZFVk&@5C&6nx27n%KTvk9DXQNol)@^V
      z#e_goY=j*9h^yooGEs01*OOcgH)e7#h-GqB_cXEMDQ=#9MJ9b>oy;Y(2EycmRCO-3
      zi90i?*U1Dx&3#K+nGe&spwZ5Zo_?DP=FJE!K%S`u(b`PZ!rcT}$36O1=(dLYXb{Gr
      LOr%L?nxgI>u?pv1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleContext$NamedStyle.class b/libjava/classpath/lib/javax/swing/text/StyleContext$NamedStyle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4acf9cdb1390e6d827679d71f73323c2b5039b76
      GIT binary patch
      literal 6753
      zcwUuQd0-rM75;v?wn?T((l(`S3h7C*X`9+2Vv?3Zno8>SOh`>B$0j>Tw{CXB?rhpr
      z!K-R36fZzIR1mQ$twL=#EyV&Jt#YV<3W(wXf{GX5!J**yW@dLMyF1zNM|Ngs-|ze0
      z@4fH6_nSQM#@#0XyiLJ_0)^V`{z3oFhS-i^xUa#`cNz`t#!yIaiG=0LymkJ5JzzfZ
      zph#hoST}_Hv|Zo5UGFhGC{dVVJ`F}1+VyDA9}4dBcZ>Zvg{s`>1d5raoq9ADjD#<2
      zTcx1ZD2yj>%<zYePJbw_7vHv^y0?7ao<@c8o^2%6TL<;9p>T%JiL1-QhL*HJlY$ls
      z#tc2IM}531%+ImFH1#>mxU9@?7|~#N+|Xm0ET;G8C4X+$#k|DW7L3hXlGD@~Mlo#;
      zhJ(fmg*ml(Z0kA|idrH8y$lL7G*n@xf-m1HUph1G^fBDm<g&oTpXdvQ^>y+7Zavx|
      z$x^8FMS7SIKeNK`_QN9CpMrOEZih&?(Z(@(>f%?)fIn(x_%t`GQU+z7hAEg@hC(cm
      z@SLeoSX<XwhC0-H;8mD4sskDpVi6V9ryH&P1I7?jsW7{?E>E_FxIsfDCVQlK=8i#7
      zWmtj*vhFMmlTab~JX^y%a1LuPrW+DAg{igKsgunxk{X)OY}SggNsmQBgZc(LJh?<P
      z!dp{BVUwUT8=w4rN&YGJ&PN!O;(V;~poPkIjip(qF%7L)&B7J1lm{b8txnM-Te?6)
      z8(8P1!PqLjml_OY1i-ef+alIJ4QsKE#Y|@%*b8zk$i-KP4H`CLrNTHPV(m;|+ck9H
      zLc;n30SD}vIbd@TF|aDEP{GAk%SmROU1nrfoP8;2#PuF*QK-phDB9Vo;bL4ub(2eB
      zk<-7HkUti)-HRK+&`9xFUWTZX{0>n8QN2GhsAu!{Xb1>@iDh6VB54rI=~3N9u0ApA
      z?ZLjV--t&E)!5w8*yw7zA`7{>qoZjB;dv3)wrkMQ>*(_xLjy#u$a07?Xk=%jo!#B4
      za&u6;+~&w=#3Z@)-bRh4=xe(Nw4XZ$Yu0veFsip3e!~ubKmZ0cL@*$YW2c4*nCQW-
      zjHZ?~^2#uT_e(Rp!lj@(%h81oX!syL#Hhs_j9J|zd!CA%N<-;bs38B^q~U%{YU$$&
      zfqV^VOtqB<Lt?X6gCQNicu-CVY&^~)j)_bAG+c#i6fPZ;OQW>VJioKS%4vb3>)~MW
      z2g9+q-b}WX<FmNVgKKjQEhn3XPvO&4W)@X!EW^O0xk1DA_#7iAUUS)mp2)zEGjs}H
      z5Cu&W<1cBrNv33x7|8=4o2V?bhDL?6Bez82GLtxi+r;v#8g9c^GHhfSIj1LwjaBpE
      zc)uR?8$1Crn$>Q<HG5Yy3Gf{n_Ty`EcL4`jFxGl`+#iy!-_meUb~e%KQz=qW!yyfK
      z;@b+F@&)Ow%aPTaL1^kPq2aLTZ$_=lR;8L|x%?=5wT?1(3(Rqa&0}*sn<cOJ#bGNc
      z(_B+B!`(@4zAxigBB{7v!@XD}$A|A}_`aMBCfPQQtSFq6tX$#256Pa6yEUTEj|W2m
      zJvt5#@Q{{1S~iy96dn?Ro+Ai9)^ILX%Cnzpcm$7fO8Ex{^l;{&OrEH+9@#Wa<M1;!
      zvl>DAg&;ki0g&T>F%m#lZlJ3>qCrEqta)s*A^1{cJz5_(2I2-+>i&LH0cEW_d-MSb
      zXUv0ND@;z>x2;e8Qik8)cOLwfnQ%wb@Ox>9l>xoi9}gLu({6~2p4IRNJjZG@-E%5H
      zVa2FU=4&c)#GrbrN5kMYc?~3^a(X6VTi6*C5B_4Gj2uIGUBp<;1`}`u<!|_h2Y+Wb
      zaRt-xqQs=aj>)E!52bh+|MK9U83%alU>oco2#pAlhJRx+3#E1KhK??Y<|`Ur#cO8a
      z`vW6`xoWh%Wyf-D+>ld9R!C=#g2HIFN8-^QeRWXIFBQ(Wn#Hn=lf5m>5p4!eO1msw
      zKbXy`DMSH^`Ql%U87PI+Q8~b88g|P;gZD-9ro!uo<xK~eG)Z2y_`RC8oDKXujo;3u
      zT>-D-y!A>AWBOetN;N;r%;%fP(T-WX)3}0mI2~v3Di}33#!6xo+87ISU~DGFdrXWf
      zi_6B4yV;n-XM#4<M%zoQB3>K3^+zz*JB<0>`UGl^V6pc&mUInc=@Bejc#>=j6L|X~
      zxmlFJJJY0d2n%#GG+P*&tqj7&e0~Yty%h6t8I$ifovAUMZb&)PfaO?WI@n;kRY-@}
      znQXVZ_>25DUHQC+a9#rMx&afcyLTtB-dBHT%7IGL|6YFUW7M`W)<MVar`v=Dd@h76
      zK6#V0Y1+)p0^{pXqFms)_f6@&O)z~9lORIq0SD~()IP?e(}vy5uv@S#Hf*`~FqTzz
      z5%i+WEE&AU9f0L2z;XueG85203Sf68;1I97@&M{~m}KQP6L`HH=TZSCY*6A_Xu_75
      z3cS(*S(<_@#d{Ir@BK(BRi1=R5+1>Aug@~IMhCr>T?t%%AEN23S?C{eXuZrvFOq|5
      zN}ZP0mw6M2`wExur#ug1$0<ytI)}O_*Y_R4j{54Q^7I(4EWqvpRb7AL);FI@$LDkw
      z1h9t+-Aj_IsnC6-y@tx%i={jtrq#L3cA*%HS;#TS|N83b<Zg2#eEGHA+DZ$tukw<2
      zF8>zSvpPO1MU%juO#NI-#_QM&u6Hn1r9xRnS*|t%P=!zMPMEGjv(2>8ZWvS3ObJ}=
      zLUbd0&`s<+H#>4RHAOTPpJZo}4Dm>8!>{2wS*cljIEK#@;s8eG=oW|DS_(}|xviz#
      z<}umEJ=d01xruuWpD)OQz1>BtH`-3}7;S@Xw#7g5I8>K}VHh|2>IL~2zNo-pIJ$uq
      zi96`k0oMLO2gyvEL}S0cg?B=-7VBI*zO?|EVm;*I@t4g&C^@~Sgs*Jjn@--YvUWe5
      zL-<OL>8bksdM>1Is4TDU$%)j))aKsUf$UV=pJ!tSUGw_QY_O9qU`g@u{EAVueV2>2
      zAEdS)qP8D)(e`rN*TbWi&Jh>*M+pBY;U9B>Ppa}TGndTJQIn=87tJvTO`(J4and|N
      znkQXo?!kB9?5gtQgh_mFsvI&TabLD1p3W(Wrc`8-1vQORPloDuW$NuGAa4`+K{__p
      zXnlsC&$4Kqqr=ZT9G{kQd>SXX6`zerPVhD6L<ee)<5XAWkB0Fe1M+YJKdF3-AL4rg
      zKTqI^Oy^&4IA4<*-cRC}{Co;B9u$6M4{uA1<LUm>W<NNJXEGD}A{V?wxR+gq_w)E8
      z0SoXa{MjZb;q?WZVxvt_L5jaJJTFPJ@gBv0GGp`#KVPNFUt@w_cTiQNs47VHx=Hn4
      SbM61|24Ef~6(`Y~Q2z%iJVHwV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleContext$SimpleFontSpec.class b/libjava/classpath/lib/javax/swing/text/StyleContext$SimpleFontSpec.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f05bbdfbc259c950d7764f7d69326c27f4ff264
      GIT binary patch
      literal 937
      zcwUuKU2oD*7=F&7e07y=g$<pc&P|1~jOd+#ctb*h;>YYlj8`k{C?%y#T6FW;Ke4<0
      zfZdpgCSDl5@xmWve9tM_Modg>(sSPL=Xu`t*YB_20Nlk^5}aXc;JkGXtHC?he_aj5
      zVOX`pBTqC&zH~NicX;55CVBRO=p~^sEXj_l=TQCA?m+ZHhQupp=z2#CX8Sy8hhv&q
      zV~7WGA_HqNXo35l%tYPw-S7cJzVvrTt5xn$Wn;82bi|M`pkt9CRw{SWU|2Q~M?zXz
      z14*Q$wPGNR6vJZM^~ICPuq(#9PFI4O?NQJ1I?mXY{w%14eK%m(ZvT&XQj!pFCXPp)
      zD;H@;Td0*^>L}uR64&N-6p1phhO4Au)E&%kY1Yh;>N`PSYF0{Ha@H*aH?hH>+oQ?2
      zCz`J0zI>75wj9J@w0vKT8=eycB1pnwDE?C!LuOtZZqO2A^jpZ6whQ^tZq=PucZ@1@
      zEYN9?=Yd0`J7;~tC95*Ul2w?(w2D*YK2n@xmCjX~1>S_lA0o{kA;a6q^2f+i&WieR
      z8CMiaPT?|TNo1}pi7k<7do$z@l##i5<tOe}et;e0UgbO3C!#>_XB3XH9tBJam?y|a
      zUXHxn3F6vm?DUM`n$*gl5yKrU@aHIS8y4S1jbeGFKw+J+tkb5}i3yWmX2z&aHIla(
      l;crURJqfmVj-!<E7iy*vRnKN}+*aoul<3yg>@q6Q{{RrxxQGA%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleContext$SmallAttributeSet.class b/libjava/classpath/lib/javax/swing/text/StyleContext$SmallAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a4926f9f8109091568150b18134e573807af3a9e
      GIT binary patch
      literal 4021
      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
      Kf=8YFCH@ceibKT!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyleContext.class b/libjava/classpath/lib/javax/swing/text/StyleContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0940dedc938ef8781179c9d2d21c591ffe8e6f2a
      GIT binary patch
      literal 11737
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledDocument.class b/libjava/classpath/lib/javax/swing/text/StyledDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3dc29db899be65870a5597a7dccb3e01fd8e6de1
      GIT binary patch
      literal 841
      zcwUuK%TB^T6upCwA`d|k6cJsSl*CwBccmZ+35h06T(}$BNdXIErc=OQbKwX0QO4V$
      zAWG4=XiqY89(QKW`^W1W0My}Bg9L%I0Ugt+;ZOP_*N|)~4NJaw%xQ8v7_yPnV3R;T
      zBpDt>%3XKBY+T(YP+pPFMFf)6ag-5(rr!CITT&p~?8K*<wRIZ=(t-{7m_??=7}MGV
      z=DJKql#4jZdjFEoWTQs~wIvhR68YUgGM~V?-fpkT77U9?^D&GL4en9z3i{kzHpt;j
      z9q#sR>P4ef^!6{4<ouuf6Fp{v=*BR);4UTKdTjOt)!2||+nlKu2VSVMxZ2`^xq=5H
      zhd^Eb<Lt8xgHEK;;2sy|%;SdIPje4Vd4}#+|8NTxXqK{gAZ*s^hZj-!Ue3#qj7=o4
      zf!`L^I)iQ1APHe>cOa!O4H<=5*j1Q|Fb{hQ_o1Nh0E!Ar5gx*k!g7SiP{9Oz4g4pd
      F`U&bX_GthB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$AlignmentAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$AlignmentAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b07b5f9d7e6c1bc0de41ccc4eee908e666984ee0
      GIT binary patch
      literal 1181
      zcwU86T~8B16g|@xmM#k@@}aT{2xz+?3uxj)iAh5+L5snZG|{(dJCrrsS+Y9?{7LGQ
      z3A9ENe}F&AcxT&GphzFOy|;7kIp^Lv+uwhF`~t9!=LQlCYajVBKXs!MPu5%|PL*3!
      zpL|i>u6im6-*{><?|U^_7gFUb$_u1{6vKMou6DjpN9{HS#_6-eFu3VSPrYQA$`mw=
      z>vIArs*td9JJ}LLYAdJ;6G;qPFkmrEUQ?MZrNJ<2VE}^+V+Bu&w~cyPg!{bg3x@GR
      zP~m=whn~(mKc>{77cp!U`s%+jb&eq+>l(F32$A!+W>16%L0A`6hS`o_exh7)Oek&}
      zW?RQ3-N0Rjg<cU}{m2)2MZo2T5=Eg*Oyj=Z!VE()lP#HefLQ|%iQ@VZwgMR`E>&b<
      z4)Y9FBvf}61}D=y`ffw%?OdeQ_h8a`7c4Adi6LDRs=XVA7dOv#3IBDwX^%^h(|AuT
      zWRRt+Cslhq<h76=9d?Q7W;Qeb?e7(SN%05moPk&ngME`kvH@3$$d<0LLC+0PxmgSv
      zVMV<1w1p<FIAv91(4Kds6ycW7qew&sHW=pmd5ny6#bubM9VO}QB)4f_Q<R|Czz{vt
      zl)a-|pAS3BEtrmdj*)M1(HK2P<D<{i_ys1u;ud9d?Q-14I1op7FhO8C(gYfQ5>p-c
      z1Ek`5`zNN~w{UNF#W};sci4`z+{B}mWD}47@r_e8a7N<JiK~ejv@USkT}~SgmWg4A
      Zm{;(Wx)WH9QCzIiw>Ad-rQjLTe*v;LI0XOz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$BoldAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$BoldAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26c3dd8d3b930a968c5f036d3cea08a73c03b404
      GIT binary patch
      literal 1692
      zcwU86%Tg0T6g{1U41__HcM#+iGzo-=2q=jU2q2GuRE46->?TPAV@+nPnGWDqx4vEZ
      z1+LuyYL#27{3y#iGf_Yil0`o<_nvd^?bH41_qQJa#<3y6!!Ytx*;5YU*1oFm#05VP
      z@r-z`@xnqu6^6O0iqM>)6=w57HFOC+hVhyS?tYU#xoHgkq^hgpK7%(L*<$dei~_Gm
      z14F~Mp^I3K7y|I3QAQnPhW2pUCW&hbQDlTkObI)$Ij!n^y;RI`b5qG_oS`Lc<P~j8
      zF;#nC{?jLRRf{2(uBr5-v;?6m&T503+lE=>1%|$|4rO1&`5xCr+zno^*Q6)_hBg`P
      z=%7k=xNw0PrZ3Jrqie-Y+E8?!u<^QN1kufKh45Ut^G3c@q(p{fxN2&oTCsn#3A_i_
      zB=j<LRsoUGhyF4%*SI4&BNS6O=eFF4L4+g>QD16s$r#3UhE@Vf?J6eqm75D1cZ=u^
      zFINy-{+wt;7*PokYDBdd86y~FXd?7kLFUMn1gGO32v>mp7m(q02gYzyLcD4LDMPn}
      zq6<r=>v4;0t6H{07zV>Npd(ocw;6`c<Eq7H8b2Kyzyzjjqx)?=cVyhf41;8G;c`VQ
      zaIKYuZS6CZS=WC_8TUXptHV0g?9+X@z%(_A%G!6X&M`1U&qbD|R`Ig;gH_qcMFk^I
      z2UXLm3?8mAbXT_t1IyAySA?JnhbsV{YdfU`GDgYF^F`HuB-;La3&v~=26<W6xtY=w
      z%i@-Vb%y?0uLuF3ydxN(Gx5Uyd1ytaOru1*NoNm8(U$rn1im-{O*95*23}C$OI)Ir
      z?1rHkmuaT!h?X+MPxzd9Av$u1*0t#9Av)J%G+zCR0S{(;LEl&0U^qr>s_r``o*ZFv
      z#vk;z*L{NI{S2S)7}L?wpx=9l#EF1G)YJHi1iU8lH|WA!gzyeAyhjorFprOpuqBtg
      zEX-a#z(bPer+F50gl2m=Me$z3h|%{&5*(tAjN=h?B1Zo%VVUARSaH}_k#-tDr-?N@
      GM#CSNz0i~Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$CaretTracker.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$CaretTracker.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e47402fb7039f65f38d54c40449233584fbd652
      GIT binary patch
      literal 1774
      zcwUWFSyK~15dJy@Lc%JDcpxH+qK0t9`v65TM2!YKK&yQ4VY3-!HQA+RXA%F3|H3N7
      zQmZ^({UJX1tX6rH+Os4=0tHrTc6(>KzrMbneEj|TEr6rA9YcgL^vIgG7SjF`$9<Sq
      zVnL;+)zgwFW{ZyU<aI~&Wh^PwjI`{>LdFm!v}u!c$zp>Wg-60xF*Ff+Rs)H7;i`0K
      znRk38Tp<ZfYS!`lju7_eH*-45+UFeCQDcOI$<5XK?-HUJuPEXmY%vf+a{>)$H4sM|
      zp&_XiTJw%8rh;-o$Qi3p5`^}=XIrJamUQ%YWizV7B&0X>T2mR0xW(4rcjk(gVwm3A
      zuvb+it3?huf!){>LnmSHMw$k?u$K^jDAcqUNSm=clKuJmCXB|gudWMW(AQ@8neobV
      zp37h{n1tOcw&T7pq;fnrE2Sr!v7c~i#kFs;Xo`h7#ur6Xd8X}^h50~wWz(t!9!{VK
      zeY)NU2|JQ&!_)b8<FJ7w`ngt|&4gzMWi};rSMsR|yn4)u4Xl^gayP14%@`tFnVA)4
      zb;k^Rj=AvEtZSQZI{xaE3c|F^S}@(2w1Fcy$~+7sRUwITElA<GffG1M*v<!;S&Q4R
      zgv^#iHI>{txm1ov<2a48F`OZoo3YEl2$)m}JCKr1ZwD@6&&J5-4UFLe6Wwv=0yVCb
      zbP9nIOy)yt4JQMo`TkF9TBy+kgNz%vgber4mV$|#tB1<0Gmh0D{?Ch^#fX?E?Av%k
      zxb}X9@a=2)qz9Ef@Sv^rT1!n<Z76y+p=$$@5t@D7fC;U*4rDDsbYqr>@v@`ujE=hI
      z4QqRXk#qUx%akmhGA^C5`oe(8S5*VAMo?RuzOndLj_`^j!MiOio#1c1lSmD`fRTEM
      zt<OW9ZTxIv9nfdAvutRYt+u0s-`qOvtRQ@14^8|o3@l;S<lqN%Kf{(c=(*S4`w|D<
      z4ZcVB)X)+RjYK=6ACRgZ4(h|s=zF9_8dHlfIvd%3_!W*t@B*jwj$Vt);v&v1;o?eU
      z!`d@_K_h*ILEo^GzN3qNpqGB~<p08P`hyWpE6@KvRwNQ;Ft!|JB?B!@ARE@^J}%=5
      oBX{xhDsr4pFUD~V*Ae9bNg|I)){0;%^nU|4!%7hUPU9Bv7vlErQvd(}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$FontFamilyAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$FontFamilyAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3af0af3b9ed41a925f0acfec741cc1ec51a9aebb
      GIT binary patch
      literal 1220
      zcwUWDT~8BH5IxftmM+VONQ+99LP6S6St}1dKukyjiCPS%q=~-W(hIEF?wZ|OK7N*o
      zg3-hu;EyuS-8Ou*6@0lnb7#(+nYm|w|M~F?KpATWVubQ1aV$>l@Wk;BZ6!~YT~lYS
      zY;H9j<p*yawYcqjYFo4%_iS@tIlgBg@jtMRzsI2tj4*r<RUu4OHQIIsV{0nl66+k@
      za6Cu7A}r_o!~HjfIw4W<o6<xaqZSNUgwz0Np`HX`+`<rs2@_SvlkeKCh79&Z!<D)j
      ze_yzD5jfiKUMAF$6B5>{caGV+9iAlSwU|gm?yd|D{GcV9gt=~W;zZf<SbECtAhxv4
      zZ5o&%<oXGn)@N64DxRj%R<b6Qi8LPSi60T-`9j@922Tt;W{Sb>R(vm1!c(DzIb;cA
      zp;T9W6V~(nbMCa2Ud46Zfv;flau+P*ut-QAO4Zp6;pOeq-XMI_0qqJ;uIqYFEi5BX
      zNOPZ+BN6Z_WpLREzspAcpZNYsZjA6z>t-lwh>*FhMHYcjipiD+h@kIHINhxI?O<PS
      zJ6b@~Jvv#{H3-&g&yzvL6=5ht17$+?E`<>$do_l6UQ(QYV%D0LHCr*Z4UF)aWbZxu
      zIzC!lxqw+LeZ$z7C~1PvaUG%*hA0h_W-!Tj*-kp{VG4+>`&^bHOB3kw(@1s8A0QFs
      zXMQ66;Q|kKO2w}j`;OUSapfHIrT96PuK1=n8<fQe&0~@lFiW{>oS93`3<@YR!w562
      Wpv34Ho<&twVe?ljgYX<Lko*gY$wTh|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$FontSizeAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$FontSizeAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f0040b9a786c0877aa486efd3e203c5dd303abc8
      GIT binary patch
      literal 1180
      zcwU85?@!ZE6g_VnlywDk@<XM{5YVlgRMf-|BPL{lWHJn9WQl%z+a6G}wWfUo^uIDu
      zFq-%W_}{2s6}_*W$lQc4?Y({Xo^$Sfr(aG!eg?3NhZ<rG_DjCc5AEQ<ad&Mg4y9d{
      zuUn$I)^w!jZ#Z&c-E(Etc_UUE((zmk35Mkho1%Q1j-ob(L_in}tjsXH;<%1{%rKR$
      zC?vbZ38yN3f-9DDH7YK7O`#)>lmQI}!{mU<TrCNPF#|&wW*DzHu6WvM*M+~$>n);6
      zSG)#q)wu7dy!$aB_nd$xs9ZQg@7zU(nA=vMeL9Gnhc#Qm-|_smXfn)p_3{I0i+$lr
      zJAzqLF)7z@m0`YLgVTQ1604Gc>m4boLh6{tb+v>UhIlqt({Tf{8g3HB;0a2e8%XZT
      zz(59b45>iKKcg^M+5W*dJ5ufDEUUT&ot8UqU;&E^$z36%%`iMVf3zO_CsETDcSTX*
      z-7%0wjxL@=mG-z#dlUXCG2P2b_P_o8!h00IP`()o1u>ZCNhA|+DT!=xfC>68fXel%
      z*YO)--BAXb_{S$p3WLEYyRPs{Egl3S&~Tq2bCJWyyS*O69IYr$KPP!jnVO;)#TrKF
      znWXF)<?1|T<&U9T=6j634U5L<ITjv$rN(d2@g0{a%S7e4j5H8NS1>_fDpCXreiBn%
      z_#Gs|dh-*epC9AeX2E)g(GM^!D}RJrh4>L}|K&?lHSmMP{Uojv%;47<PV<!0goQjY
      aj1Y4Hcd0vur4Yr&J$fr&&<}|RNd5+rfH|1}
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$ForegroundAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$ForegroundAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c558c7388238ac35b8d4aa375071c04b4e1e8552
      GIT binary patch
      literal 1231
      zcwUWEYflqF6g|@xmM+V~%0s0J2-UV!R>Z`Z5);xuq85WGX`<hTc3ReKcg^e+@MoDQ
      z7)|^EChAuo|HXJ`m+)vS_+@)<=iYPfxpQ{E{Q3A9z!L5oh%qd^;=6p`4)z?cX)Cd>
      z?23BhiuzjJQNDcYsQGnYil+42UVXKu9N#mL_@A~Y-=d?ajUm=(GK`jWr_J}2UGiOD
      z78&|i9M4gY7&6)D(B%YLQIfEWo#nYIL!#u@g^4%@Ef}yE#(Om8s!1>mTj)bS!${fj
      z#Its5TgWZG?Fxoe*{^Z8%B7?8qdyaB#|apg%NNS)+zRQ4c`XgwH3_lvux3-phA&&9
      z&M=)l5hiwpr|bx3O~*95fh!Di-BUQN*REJq1ial=q9T-uNnF!wm|}=$b5#@9F>T-m
      zQS{bO^1VQDPX!icFv~C$2z4Tc;bFF0{6<^p{ha3QaWN+Cd(Of<G7QP4P|>m&9-OcB
      z4BeBcX_I@RsPS%F$RfuuK~t7?xTHl2c{~SQ)k^lC{oOjw2zaTj)E5rKkUnoj@	l
      z$TB^A(RCwKZdUxZtci6;dupu1I*S^E!Fud@LY7<}1R^kSk74E_)6v`0X*<l)lH&9}
      zll`>QDT+~SV1S-U%AQlM&j<4hhcNSn_ZWH`7LCwzI6V4Fjo)D6J4Pv+iOO*aDIkn4
      zV~oIbqzN?qI3|wZ8%Tup=}(w^afquMh5S1VeLy;&UpT<cLi_-?PWVz(4g8?teiGL&
      mOyTz_&h#;78hI=b!vHZCaEH2MSPW5Y+@)Xb4EhFP8OgtIaZE7)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$ItalicAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$ItalicAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1ba3c954860d16a557d54744cf6d359b2725c835
      GIT binary patch
      literal 1704
      zcwU86*-{fh6g{1U3?zdndk|#T5C|h8pad5TK>`7(3PqK?4M_uIO=fVW1NbR^fzQ6M
      zXqB&4`B9d)XMzSHBoDo0?mg$++o${2?{7Z<Okq<&fFb!oKhjS$_t>!ZHNj7WmKUE)
      zUd$8?VLNMv7|9CVGzyCaVc3>}5W`g66o0=(pZqk2@Pc6(;w3{cKDNyeO4~)=h$e>U
      zo^6Sw;c-L|L{vosRECatPSR+mP9%BZ5LZfOw&V<pZ<I^B+}YB1P0rAovkSVptviO?
      zSN;r%1H)y|a&@&<mzN@Z-CJ#PXU}#@yvWdBQKBCUjURDKXnt@;u1Qk_4DBj9(8<uW
      z&xH@oFn4?26=kb_(xz_ll*H>+5kn8dJ;L(^FWH51i4qwW;x$vpYL$DLP2jzFprDVT
      zs|JXQehgHYxye1rd7(SPJG*QYLl{voOns@trD7Bh8QKUaeV{wkSMFp??ibM)&)y)m
      z@;Mbn90>(u)QDO!D#kIv&`juyg6y$d7Mu=zFn$B<-+(-q9hk&p1zODl(zfLa-4d=!
      zm*fdUqv84<VHk?n0Uz5@@RVWrI<iqZG<kJw1k;$6W)Dk6&s03eJQ>L4;*u?K1KWC8
      zNP}M?-SIuRpyCDShIP7C4X^IaEyk%+){eY+4W5Y^dT+Be-E>~@f2<}OIjLw<frEAJ
      z$`IftLr-n1Ft8oE?z#|E;ph#3*BVbLk-S}Y3Vhj+PeuEGFT$k6U{JG`#htXNyDoPX
      zY%mPedrM?e)oX%5I+Y;gFF-3gX&M#U&3Jo2NwhYeA@bD=Xr?hjGf<>Jjytqc{V=rP
      zF3of)(OQA{iI6vE662?6TTe`!qH7~b<NXT^1~4Crg)Z=j;T*}?hVPhue}<X)a4g)>
      z@EJ<*3qqlD%q1pb;ovD!{{#%7kw%LI*hGGaZhXWD93<gl0Rl@Xd%{+H@`^CIdWF{{
      zEll$w-VmDfbDH9Vgps80%OrS&Ix>Z~)QKehyMipm2e9g~uOa6(fX)-^c!#DxRY%lv
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$StyledTextAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$StyledTextAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..93f945cea0c50291a0b0c5340e6d528dac36ef01
      GIT binary patch
      literal 3268
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$StyledViewFactory.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$StyledViewFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..732142fa665f8df8eb75a12c40d55a42d784c29b
      GIT binary patch
      literal 1724
      zcwUuM-*XdH6#h;Lz3H-8SjulG(H5FCDG`eDBOub+Y9s`tB^p$8v$<2YZg=BmOWP;-
      z4|rg72FG__@g*7UjK28fqYC~Wfj@-t+-%}Vw#D&b_ul*6bI$$Fch9-sKl%C_07qa6
      z^bn5Dn>WnmY<<ag=dyuZ4ze@BiX*F2RXgzf^L8*Cu1mIDnl>%QRs>>%Ey^$JnCx}2
      zGB2$_pqH>O6764pgx=G(YX`3oHY8IeLTu8jN(~#ZNryn3&|k1!SzKJGNPpI>IFeu#
      zJj--Srf;it8;k|l?K<ID;s0~bF$v3;X24;_lhFWEj$Dv#kV{3kRFvE%Y{Pbe0m82J
      ze0A)=PJ)<|LD5{`a|V)Ov{0>?z-NzK9J|@Z^4x%3H0;HGfqhTO8XD>t!~rHPKVCE)
      zPI`N?(5-wfbyeVb!k!4Df?1J{;;kWpAtmxKVgIwzF2!+(&{s2kbIvzw*9DS<!HE5(
      z&VCqt1VeG8IiEVyu{~E{Y%PH%yyeh7gRCO+B8PqknY?0il-XF`Ld|m-5;(RNo5{|8
      z7=2u^InHHbTZ+m_!tRJmp0`5l6BrUW-KHDLdahoVzRF|D_dQ>L3wCGsy-Y0HPF4DG
      zyh_+{#r??jmfS>}c_LV;$x{gpXE34iob0-`b_t|Ps`jUJOyhMzoa<%MG3$KC+ny?z
      z7MRnJSB3W`H%Zr)I;NoG0*YKFX00aODq(D`^CD0?2`<J<+>?or@?{+}s(|Bx7g}k^
      z;fl(mv`+akE@YTGSK;~>%2(pHI>LyO<GmYvAFT8`ok!4SyhY!V)3$m82D)1Pu<|14
      zdDoSGOBY!eU?lNhj|5?B<eA`hVL|xY$WLVtfBZc0s*h(`9*M_|qfKaEwzhTt_bQOS
      z!)BiAp#h#lKabqh*cv+1FrzWXK2LuIgK&Y08Dm!id+wrt6^U}Xi5H4r;AX}+*a1fr
      zm|}1~V~n=IEvv|s)3GKFGdi0wj&w}NmFY_ip3N99cfb=0JjLMXDstsjoGBY;n>d$l
      z;I#(cXyCkYk$)Nf8hERT*>A`0{gcx)^9KC@K|i98eqzS=F-Q+ELO)}ie&Me96?ys%
      zm+5z0qdzc5f1*x*;TAo_ZF+=HdHxwaZfP<a=H1pr&ECd4tct)VDB~)h*oQlK7w@s`
      UJ$S#x;Tk^RQELhQAu5Rf4IpaGj{pDw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit$UnderlineAction.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit$UnderlineAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..094bd861d17995662c8204e35864b3b6be5fded8
      GIT binary patch
      literal 1722
      zcwU86SyR(c7(KUJpbenxMUbs%DU`AZD6I>YqJ@HJ0mr_D_5yLz#7S-ee~Q1rXJ1%!
      z##d+jQI21dqHLvoxJ&bW=bUf5zyEyy31A8v5<Co(AC&{;C}AC{`d&itBaz69&l)df
      zN~$o-RaHc`^b$8URp*OEp&GgbAH!5#FZaGlpIkSFKuXnB@r=P69o=T|rHvAAKqEu*
      zuAz%~<(wu6FG4c>kQq9nIh!e=Da4Z(CebBr=aw89u2;%C+}u=lG|tePGm46~t(dBP
      zum0&1`>Mq-ovSPNN{~sSP@K~SH+K!Q%u5XYRWZt;Nbm!$i-c>OvCkwc2!?hU9q43e
      z+~dMUXPCd;?~=F`*J(r1dD6z~mJvn|!(GC2H7^;(N|_uPQqh{OqqQPF_a^XO+?UYD
      z&{YFOMn49s%v|G+<h)Q!;Z!gi!Vn@7hAA&~xMYmr0Ye)BrS}z+^2*JO#@!(LqS+h7
      zRzD|0h$1FoloC<PM#dP%8JY-vQBa5MR0OA*4@Pf*{b!Kpb_OOeDIrlafV81oLeYgK
      z)3i)8gjDNan=lMT>)?+TBs^jmz7DRIKWY4;Z4fh<vs*r3i+U{M2^JV+i;D|{u^R~2
      zD#GscOS}cQ6H_vtf~Kw0x{&sZ8M>u?>O@wsN6_!IGDGie%}rC!t5XoJ$wvKDGKy5P
      zx=qXA;Tl6v?S^4s1)6(B2#Rpz2Ec2%CzoK}sF+2*tlDoz`<16*!p5LtWObdJX-%;#
      zZb?{Y7^wHC&>M2)S-~I`#tZxBp%c}cR*7!2&K;0qtqms#esc_(XbsX1ER*3YG}B3T
      z&Cr57w9|B=wF>bIK4;Iw#*Wdp78^fC*Ls}RduJH*V8Ivmo#7$FDdKbfADH=Yg4u;Y
      zIMCt$0?GRoKHn+kW8>j~_ZZ3l0*25)>jnvUOXTm+jXWaQL>ya4VH-<$?+APCl2?V<
      zr{{P<(gL(E;w7QkU7aR-FJZ*#`!WfRP)4RGG(Y{*O&D3S_h7|gUq#MI0F@MLc!S2j
      DWnbGk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/StyledEditorKit.class b/libjava/classpath/lib/javax/swing/text/StyledEditorKit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de57fff624d2af843359bab9f7f6437bc05c4bbe
      GIT binary patch
      literal 4297
      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
      AdjJ3c
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TabExpander.class b/libjava/classpath/lib/javax/swing/text/TabExpander.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ccec42d3e4480dee50534f3b9a0e2b66c0111ee
      GIT binary patch
      literal 150
      zcwRg8Z`VEs1_nb0PId++Mh2Oz#InQ+{o?Y>ymbAN)QS@Qki;a{ih{(vl++@21{OvJ
      z0gwv)oJ63!e^ORzatR{?cOFn7P+f3IegPu`tA?AWrW+#zS8#r5QF5wVW=<+l7m_i0
      dAQRXa85kLu89;y$XeuiM8;Hfg4kVcvH~`v%B&7fV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TabSet.class b/libjava/classpath/lib/javax/swing/text/TabSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f0b6405411cceb9054c07251e402eeea504dc58
      GIT binary patch
      literal 2402
      zcwT)~TXR!Y7+pI#O+tEFXlP5@BqdNTX;KIxg3=2@X)zcsQYdnjllHVtC*+jm1gg(4
      zI==DZ3?M=WhraXy6;ic|@BoZ3`Ujlx$<YV@gShrNhcr{5!(?~weZIZc`o3@N&C~yW
      zybs_FjCkP^STU}h*CrE%3z^(#!qg|t#9=KxpqpMO0?XvbL{{Uc1L<*nh`SzvdTTdh
      zBnI?+M$2YC(b8F+!3AqMsOJkABX=aZTR`j;sOdFw1yjqJgIczzS4IAK^ypjHPnQK0
      zQ%e^Ff+te1lwcYYodTY&OfF;g2((5QiEAGuT(2>#`{71FMJ<*KxTEcZel(!biy9Rx
      z&?Hbblr?gcS|4psEljO*2?SbHsHpKGB+&FaHi4z7OitflJe$_@hwa=0DPxGKYb*fQ
      z&Zc6HWtd>|t99!p(-S6B9Mw&32!x}__Sfg=#ae;Y^Qx2CtUjt`cjiZnXZ4)fH#wwF
      zm@K>x>zQCOH>^)ajG`GaMj~mWm>Vu^^kWU$WpQEx4bh4M448S+SydDn{*nUKwy2#W
      zrk<C|`WI2=XW=%fbkt^=z&>ZuJBJk>CZaFP5=nt1=x28_!;@v2UJ5j=j?GhB5R!V4
      zwlmso%F?wgrY?wX6+PHtLmxB>8CwSFD8!?mD{9%of|59%Xg@BK>s7H8+vKcI#cH%k
      z$UQ3F#ZH14>2cZrmyTNf*O-;hEGOt2(+Xp@PlMR6B86=fkk<>vtQBb3omgm4r$1f{
      z2sAF--c=kK(er*BLcj-h&~+jr7ayuPhT}xnCMNXUut3MFI{wm@jn?VINv0Or5RpPp
      zt2l@cd^kh!$SDbanzI7S-t@Zj0{#J`m><&nGx8=>+lJpLqp^y0bn{mQ7h2$jkMkvb
      zkzDX|<n`ky?_w>Ma$LsM5Wl(jcV%oAb@9iji^WT*e}IO2Xr4xO%>6ThoPJ}0ggG`6
      z9M}#8U4-xEdIwtBuU6}u1;u|6z?!WhB~2+i>kuBNKpE8<yaqKGyNl-gQ>dB4nqz@=
      zvxxp8cY>Sml=*5I59}w-0X{SbD|lMVJgtbM!{XV1jSkOg#>kWPv9=Nt-67XaREawh
      zJyd}nU>?9pcyJ2UJX3=+7DL27TV|-oo7h5R5B0o7E*IzYt;4m+;s!icIx}T-kF`5)
      zA*yzSgDCJe-f>Q!b(F4jcTXc=D~#VpRcPj-ON8tSJ^$A=4{NvJJjV;{<0R@h598ws
      z;gv1ej!qJ}XtuZ`oUe&PeU8yGzD-g$w%ObzbbWDs0sTKO(O=^DDVF0i{x@)meg3?H
      zzO78(=G4u_ofq`H+YbFRMoX+@JjQ&LnfOD9tEh6%#2-NHi<PjeC)~mDhTL;+Ri@Dr
      zYfwtq-C>O-^jpyv715xCr=I_<%!}M=dHo9Euks#TW81zY<#meviZ|m14SADK_7q~c
      zMI(RBH*5-faN9~^i!G|0L=x}u$5)JB_Hs|&tpwg@I&Q4zS|+COd#Y@R>x_{Yi8?&&
      zl6iEyd!`YNg{gYG(yTm2?XtDOv1Vqm?@ZT4w+M%(p8pk`m%o~K3;2$(cX?s&QT{CH
      zzbEkzSj+VW%vDHDI8qf#Ibhv{C0Iwt$$D24D{e_`ptMyqgOtig$B}x=u|VG(4jr4t
      z;Z!_uq=chKr6X2`uD~A;oRI7I3v-;3s|suU84rA91(cx8U#xZ3yYq-?Jf=sV@B;mc
      mCOoCkXB7X0=KqaG_`Sk3eNGbcQAzV%67+SnY?@&US^pn{v)sA>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TabStop.class b/libjava/classpath/lib/javax/swing/text/TabStop.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8c1ae34f448ca9d7120e58cc340e3aa68ba62302
      GIT binary patch
      literal 2174
      zcwTi@T~ixX7=E?^64Iq$3baM4P*jp2q)06mswIQ~DcgjPfQ7cg2DW7Bl3=p5=%q7W
      zdEt2BMSIm5oxxE?>sY{PXF7W0g;)L*e}Ut3&Tc~p^de`^^L{+<$9d10{Qcjv7XW&(
      z?!^fOXV>)m`c|a)z|5^iY-7ugr1i{<o!{`HN<o9rMl7AWRA$Xsw!NrP&?u#5J~Cqz
      zOx-d+*E5zu<D!IfMxkitbF+yN1<G{=b+LS|XzMw9PPaCV>fKaoVC~;;UMTQKwZvF*
      zQHzhJX_@daD=0YWNT(BH<7pvM6sV3U7Eh+*(?Z6)>m1ogJeIf-)r64g);hxBsI;o4
      zK#NC57L%!D{N;Wmm7XD^+>g&sj>nUPrzD(Bj>M<6L^3X%Juju{@kDGwNST@x#HVJX
      z8l5~F`6BZkRZz_ytmYKdScbl06u7x+=1lt|1y#Y(&>TOp{EFdcaqp<OfKD0&M-vI5
      zsn^V$k=$I*7=^Uc#ekMyW)pR`lGqhi*;$jpTC`W4)}S9AbPM(#W)=+1)iT;e6>s28
      zv3pNN8|uXFl8ScJF$3e%P2D1AQ&6is<iXH_NcIC2S1`b`R}FhIUo>r=sw5v3+N&x)
      z1WT-?R&(p7E+KS7DxyNCQWq7ySvPVv`;@n{!Ypt!q5@x5FJ?ubxV7^$c7Y{w)PkWh
      zV@EpZ!?*(Yz~QPXn5$X4%?C|^cbQR)0zr}-E5@?9u3JQt>|aJNw0SYD;7ldk@TO@o
      zc|X#a^J4bU%sUn;KE_Sb-xu?ny312Mu4PBl^kWJO;z({)blKI1=6txruGo5}ZAcg|
      zs#t=~qV$aoBe$ZU`#7&7BDVq=Z&^^#vz3GQN<$x5gxVH-5OD^!7!s~o6>)HyYc>kT
      zU32U3F}cBcX=n1Ag=J&Z6l1Bn)7K*mIaizj{;E-r7I=9;oDOkY;m0|ss4L-9#Pwyk
      zf%vsD93Vbjh8u~S%5XFBnF_wM6@2F^_*%;F>%^@U{O1qxL);wkAc=b;zwPoXYPx_9
      zu5S?yp^Da&hC4i-eZ2jv^bT_MOZjznVFDrUnjJfY(Iwe@l3$T*oi3Y2n<{=A!~1wQ
      z+_8&DxOEr3;q$xbJ78{Re}S8{Twu1hSo>}E>W+*OcKl0G8r>*jC+avMccKz;PVeKg
      z8~F=rgl?egFZ6f)3FRR!cKrcm5B*{OzI}vt2M!VrKE`PWT_d{o7}Zrfo}E&DEvVsY
      zGLto@n*@^wBXW?3f&N;wW-7%|xiJ{fL45sCSNho7SNfVxHsKa(`7W8l&#;w?JH
      zxv$ds%VVAS%pKz#`MJXR>tmfqN|6U>Ep!dS`705ANffYDnZ&~~o`w<+FQ3cv506JQ
      z$qI~Vg5XE)uSgrn!*A!W)0K7e*B3}=+h__*aIFvA;946<arHdM)O^?PnAyjC;PxIq
      z5qa$)BQkpgUtnw-)d7R@J*++{<#<^R`ghFXd*W?o_XB$H6aO*n;1Yg8Kc2AC-`Me|
      eya3PmI6g;~--E-o+?qT*a+6~qT6$0NTmJ*IMtrgW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TabableView.class b/libjava/classpath/lib/javax/swing/text/TabableView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff97f36977a56c88a6afd32b8963e11f6adf7d9e
      GIT binary patch
      literal 214
      zcwTLeF$%&!5Jmq+V>F_804uB57_6-g1O$bM{cJLX4NH``nw-tT19&KL7aI$w{C^(r
      zzuu20fHlSeJb`&dck1G6tLic~+?n`DlBDL7;x<5EVCFtzO}5|5igP0{E!iBXF^Y6{
      zp<2L?(sY>!Ol)C!$;CHcM9J=-VB6Wc;AZ2XFgxFxoD-$l+J5vahYkb;dT{62H9iJ#
      Ns{#ydA~13}!Vlf8H)H?+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TableView$TableCell.class b/libjava/classpath/lib/javax/swing/text/TableView$TableCell.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c34ef73e7ea4a2ccd888cb7c61482194c95ff445
      GIT binary patch
      literal 1132
      zcwUWC-Hy^w5dMbpBc%(t{;j*XvWhEoiRh(S<Aq%{B*esB!+jS{u%@)8Ey6>2V<Iu}
      z!Uymv^bLFh<4mcn%L1|KIh~m^^PTUT>G$7XzX5oJW)3Mr?VbI>p0vWT;|*GonnbNP
      z_NlA7jvCiu%TlhJLz=L4A@i9(kvxJH_`Fk_knQ>IXy~yKy>-IcLqesq`i4W!d*XOb
      z^px<pzAo|N*>hJ7l@}d0x&-}5y$@8+j#QtJw*0=zgHSSX33(kFE*sFXN!VR-$6uVb
      z0F^q9r(TVQrz(i=CTw>6p6zz+z!5(QrbQfKe+}ca=CR0>atYh3?<N!nDzf6%S^mh2
      zxTW<5x3j?EV}G2)N}-Bg22NinMUKy1&eYq?Tg2WrkU>_gJp(ypc^m<+9yez&t2&k$
      zZ6uDBj7dN7M?p`$a70#d&i;W=B^YhbQ-S5$VW`3!Oct?PF(E(Kj6Eiz@o%OfCA`>5
      z2`ivnmZ7kp<qRDKjvJ6?gVzz~OO;_BOi?tO+82~R#kE&>*ZB+lWV|1^%GUMRH*k$D
      z#MTXLag1;i+vjkb93#O=f1IOb<H)ZV$(WrcNQ9mLt><@HeFeA9)xTy>bQR2<DR#}u
      z6xB0XMLD7(GE{<2<ruI!OP@<C;7&rgfV*so$l3zQRzfmke#Y)1&&oeMGjpEz)<9Gj
      XAsR~{H0;M&_Y;shWK06mzyatF#Wl+|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TableView$TableRow.class b/libjava/classpath/lib/javax/swing/text/TableView$TableRow.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..debc2f3af5fc00cc1d8fb338b697ad4660df9f73
      GIT binary patch
      literal 2230
      zcwT)}OH&+G6#ni^4-HL2cnujIc^HTe!(&2-g9#WVJmM%XAx;cvv>7hY)X<GHJwTw!
      zM<wOjg&T39SXQO1a^WLDl_>69_#0gL7u>7o-tK7#1ZJwb&%O7Y^PThE@ARMl{<06C
      z6ZcgF7@8K16=N-)TQ#luxWm_+_#I;=!&4?-ZI;%Ay{bZCh#YggWv>Z0h9YOd%r#$O
      zXdFH{TMt8Zvysd3tYg|%ZotfmlUW8f#ZcUv&X|_z+++wwTT%>4zdg%UlrhwwoKnLX
      zRH~?8I3t|m8G~H<GX$ce3e^m?vpi>J`D|YScG5ANd`^N)m4G3vLq##g51SSr%`eUH
      ztjx|(HEgGiOv=cbV(o1f^?F5KkDk`)@w34UU*eY2(~=UX4LU+7(h$Ts9TA*oIRA`%
      zg_xw|Lr~0c`4m|Hx`^oj&k%Db=VVZ`d^uyJsi||(WODkrtL&sDC8~U0M-!SgsywQr
      z1u+JFo;$*!-_Bc(q%&Cp9c?<=(Lv;;?M!~jn&2PgiGG1dwO@D|WYS#chaGxU2nC(y
      zq9Kl}f-y~iUDNR*5)5T7*x1}$jtiW?w5;VN9oNNise3%RY*;zbLXVDKyi8#k<AI%b
      z`WHwvLWW9I5?y4=JS58`Ei&AicNQ2zE7UCIj+{gkL&?ekAIv04x%o$oMLXNKCN8f;
      z5KaG<l#189fpRtL>vJ%hwX+&-<0^yZ7+IoO6i(F{GKFdvx(ww+LkBRX<-&;j8rLz3
      zAv&Y*37UX)ewUl`3y#|)^;PLzU!OB>=S%_2&=F0_-r~lp6QAH|hYHK^o|Y3D7C0##
      zlek0Izid+_%wVW_Rtjom(#~hoe8?0-RPHObLpYO|l9t7@a&9^0DK6+3&(U=S>01@3
      zs1O4KR7AwM(vEnRKwM|3{FX6@UuBiPgYr$N%3~<OpHcIp2u3YEi=@i{&dMFoDuOyM
      ze1Jd%j2>&<Mt!U;xQoVvNKN{WQ30bex>l}rT);&Ms#BSlXpe~*aWk?`D56|!#Tpvh
      zcX2tkgBKD?><Q|hp!E+_gbVimw@3&xto(-fHd=#;&|{qS4#S~6#P98*bMjG$g+qmq
      zt^fXZ%`VF1S^Ht-8<e}5e$}?o<?eU;9^FShx?{l|+&F0S2FmIA4l(;K%5a}reUI8P
      za0N3+AWf2-!Ci1zn8O3i<1;MaOPKf?i;|X`Zo@t;TeS0vBz+67k`<6vA8rxVW%wNZ
      zw5OnpFb2p9kv)hZ??V3Z=-c=SHJgaE?-#oK3Z;9vO_U^mmq&GV%6_50qi5Ca`*eC}
      zS906bULdk79O@XWQwqy&v6MWw6T^QU5OYZi?n5--BXr|qjNlVe{X?SW5thkb$ESw~
      z*zgJ1!0R3X8+gMbU<1QMW>8uqWGNU&%qL*fC*XZrhv=;d{nRPD7(1%RFG&8I68D<x
      z>EmiXuIA%vKCb5BGQ5ci4=q7&;S~sekEiG5yF-c(_y_@+mp&$9`n?>3-VCX+hPGY2
      o^}~@wdos~Q*TqkylA_#FRlJRR6cNCbjGQJVLe4jR9!Qbwf9Ja5dH?_b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TableView.class b/libjava/classpath/lib/javax/swing/text/TableView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b847e01fb48a1680551e9659de48eaafffe3944d
      GIT binary patch
      literal 3781
      zcwVJf-E$k&75`mnCB<T68wWR5WC&>ju@x&yQtFmC*i9U}RdGzP6PMsp*hp)8U0G{Z
      zE87VzkT!gzK<W1<(8*I?I#ZZQYz9cCed<hK`v?OJ{hH|?(8s2~b9b{gj$<=Z?`Zel
      zbM8IocYf#Wx$D3D_nm71_TzUc#1ytoTXWVzp*HVSCkwv4;1^C<rz`fDW6!5xD74+A
      zKjJQkR$+6=t<-0#4^2$eY`>-u8!sx{76?aYttv$=!ED5SvhH~Hj9ry=+sB7i8Xa}c
      z+AA0IC?pR#RmbmDxU*yECjSE!y{@NoOu^`P%XS)ZG@3}GN#U+_HWWL@Qn+2AeLe3D
      zP}pK(6B-nnhMcNBT%S2@dzuu+Gvt=6%9!OjG7p7@Kjkp2_M1INR5GTRT_M}IMyHVS
      z?AeM{vL)<das1|`+EVA3#CxZSZOEnxcDsqYv4h#DSZCb2-#=wlC+#v(brgl6q^r}T
      zpqQLw#jZ~JQwoVWnj+@5TX|7vEP1x&2QiMgO!wjSa<NYAyKb21Ng=1O^E0eWqZ3_{
      z(Y(U_Yq(wJb^Y>aS`kCPU10)_{9i$c4N{XnYR`IhiI&SL98lQxS@xy*%5^bK6RtOJ
      zdF7L{W$srv_h~@(9FY``x}~~68j#tp5MPklo{g3V3kue}Ul^UTX6-d75@3T?$#=ao
      znx>dtQYdU>cohy-6yfjKXqT+B6q;9~qSv_zzOU<}TP|zeM_94DJBs6St=~fAC1J&y
      zID&pwd0ms;zeX>LcLYlZObp_y#KYISRIhOLF{kQ!hZmgMr#JL<6gP0azB-L&6is{`
      z4=QYpoSkqgcKNtlb9~2@C<iw3vO)Ypkz_XQTi&GYOE+eJac^|$L@j8~hG##?hw@e@
      zVvU~M6eJ>|MWI2uly)Rd^Q4Ick}~>+i4>B;>M0Yw=#zdmZej$Z^k{LbaPTd8z59(m
      z9z_kDS|(0|RoGxvoXM*AB&<Qv*d`{hljvu-b*4TevMCczAmcd^%D!!)BC-a)niIC?
      zNe_%OK7E%U9fjM;g_PG}{|46zdqb*qZI0L_pVeKl*J=j3;Yctw6SEM*vn~zavDS8p
      ze%{0a&M26n*M7GyVX@?jqJGN6cko>X5vqAQuw~!UZ6|bFd@7A|_<joCQ)pdtsfqJ=
      zj_sRPj|J=m*_ZQRFpU>*A%z#I*PtszTR3L<B=iS(iP%Uo%Y%s(jOXx*i64r!W?DOb
      zgIBR9${(5dapWpUPT*>j=SIPLa&+9YVP}=&A^La-_bS$dQPORD>n)F|Sc%1(9(C(p
      z$sTm%IBtwg@0CsDzgVr>UVp`^)ua$MEgxwOQFk_WFe7mmqx@LMkiS&;<i`N-lCv~!
      z<K5)!L9UGP*_7L3EMapleihAE(DD{VG2Fp>qnJ_yNUB3<RD)=x>~p~uKDTPaO=v@g
      z29+G<q2b41@B&R{+w)6k&l!ujYqi-Cq|_)(bwZoX1sfu>oAG(<q&XSw;wYv^_uyXc
      zHLx2Up{ribM3;USou_hpmayl|$WK!CtH)QsPDl3BA#4MCQJ`+0maek6Ut9dbYK!g$
      z7VpCsLv*8%OmNF`@PUarZQ{N_8JSS%#+P)^3SY+k+JVAB^yri-9Kr*dSvI85!G$o<
      zncNb-l8dWF96gxGW)iu}Xz9wojjt^`-X;sxbNnEFo~*xsE$T(I^4X>?XfVBjp$JR{
      zLtzFoI7VGekA^vl>(N83D1#t2<2W8B3`4qO2&>MygqF=^iR1)-V}fWAk4QyiSZ$B4
      zE{E6nS^GM+sW(<Ila0V+BQRNfGc1R!h85Q%fhElF01P4ghcmI^cMa$NjK+7-d};}g
      z4PQcAzUA>Ncp@Lag0kEu<u)DfHZGwrf9f(O1!=2sfTJfwOVM;Bnx<%4MCC|Srl@@0
      zP_2fDu3fx-HNRXi-J}QV5Bx9XO}<5MF~-Z-s;;1&ncAV2aIboYUsUg*PhG``x(1tb
      zPyJ~H2Y$qXuOnA_G(*Z`ygXDninFN};ZiFcu&;+43{WHdq;lD=C3vgr_^;Z{-NBN`
      zO^W6NHz}50UAy5YNMKU!rh`q?J(F9++@bgbm*C~v7jgEF=p4>3;^}T9-krFF(R^!S
      z5zib<YMK%U4yH1^NNFY+U&OO7y^ZI|Z6KT0vX=wdbRa8h*{gx9d_JLC6RpO@>%TuA
      zQ|;M{*I!+(o?dn!sP~ajA0VwhWLbZNjQSYc)hF1k{)T<(?>MUd!Ecp+;v}DssDGhC
      z{T$ant^Tbk7zsiODM;WfexfNzVV=b;)wTsC{1iVURT*}-pKGSu@hE=5QG)Gg0Kdeq
      jNb5enqrYZG_<t#WqcQ##ukqQ!Q70|F&fk9i-hlcaSBiMb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TextAction$HorizontalMovementAction.class b/libjava/classpath/lib/javax/swing/text/TextAction$HorizontalMovementAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69fb6f9eab92c49ed32606ac6bb026daec7d73ad
      GIT binary patch
      literal 1800
      zcwU`UYjYD-7=BK&?Y5hRLThi(O3?yI8i)uMZLqY&mM*5X(h%k2lAe}zHoKkO?PdHQ
      z>IY{W(Qz1O92p!9US`x!e(+!LM;M;7Nhvm=o$<q-J(u@=&hwo2^6%5%{{(OmcXT8K
      zE`MTg**p1g+ws=(k=%*$We&5|$nm}L1wU{;^}Wb;7yT_+lV0;chbD0H08fGBsuKtZ
      zOQ7?r<2li^z(BgBT=K3>hm|OxU%|>$1hk^RDh(u&GNHp1=x<}0sdPi&sEH1A3iOm5
      zPcCiN?#iHS-*u%xZ^^IPZp989wQg=|(LE;=m@NGtl?D2Hb}hzkp(D^ug|ex($Brk<
      zGFbD2np_n))s$dwM|rtL%zOiMPR%LCpqOD3CvZ~W*t(1qpQ2ye@I9UjTszpkRnN`;
      z02B<2;*^e8N#qby6Jt2t;83&!87=#v(+pucV;OiIXLO7UoM^$h9XT#dWoY6o&QT5_
      zmUvKc!cE)V#hDNMn!wrgp_DC4T{nu1i7X}rx^@}y?sOZ)@mWE=<9QPokQeCN7X_=f
      z;R=kjxw_$NsW6P<qKP+gNg!2Y8oFh_;>c}*!L*gxi@_~Mn$dS9FMJDEbWAcUT2D>9
      zjdzGd>M9)@@7SAu0chEGs5ONG-qmrHMbVy{iD_J8A%rqowAY>LzR>ig_akO1I%dgw
      zFHtQol7VNtb3xz-T`016EZ3Fmwmasptr6J33{q;CH*o_C%xG1pMSC-3%I97z!ScPp
      z-&PgX%)I@(I&KP_X;E_BUfq3#xt*%qXmIa{^O<ouD8t!0Xma|{q+y9FF*L6V481JS
      z%;mTpoNF~`$C38N^98Yu6@N3R%6Ug&^z3zx3kprZv^-A+Mb{2PN$a7P^%HH3xte6}
      z75v!6II5M7F79-5_8}7SPAWU`7)EyF7aV!SWdc1MkH$xz(eZN__yWhc8f%#2IC_D2
      z)`wSO_!RniL4xxE3^w7P(7J<vD?3rg&|>Z%%;s`+jAVbtkzeuJH0S9lEjz4@){z_5
      za{Rqf$K~HJmB0h^Fa3d;JH6K*<Gu5B%>9j-za9~|6PGXvt4VT-G=VR<`xQyvCyj5o
      z|1D|VCy}p7<vSMK1B~N)di{Vac*xZI5exV!7Bn5diuGKOh4)d4Zz*CCOT1+eBlv*p
      sByk3?%s11BavZm?f~2OYMnL;AeKr0SuiNnxR`3!3s#~ZSe5`dn1Lxh{5C8xG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TextAction$VerticalMovementAction.class b/libjava/classpath/lib/javax/swing/text/TextAction$VerticalMovementAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..46d5d0e7d910b4dc6e24b0672d2840a6ac1800b8
      GIT binary patch
      literal 1953
      zcwUuM{ZCs}7=BKBOQF3R$OOhf>2x2Z6smKgTjwTppcg4)&{gNxxRe9C%k91O_VVHX
      zW3r!@Y@NDf8a0d2n3xz%%ru%9jemvlIk#mWv_kx$x97a)eV_MvKfn3s)4Kqk$4V3-
      zffLuv4Rb3~-L#ywj4!wROo5+?l5e@rk)rf`t7O`FcSDw?(-23Y2@LFFClFq-JON<{
      zw4JdW%Rej7o19f98QY}6qVLfzYYZ0!w4A#lV+bRzBMM!hr-kNlu>%78bwto6&^c>4
      za&Eo6EWLucY)gUeS(iMEre~>pL#X*zt*XGu+5aD7me!704v?G32y`$$*@(5%3=Z?s
      zTXns%ToD**1YmCZ8M#5sOdWJeof%4uq4euGgaLuBHR&rhIk#MK9li^k+ugi5nwiG{
      zvN1e`p(vgvkv&v(Byd=uog8weC+Yi8vITzdmW|_C9F5`#OW9gO$1xmd`G}S`*Q`<?
      zoOi2MJx|>Y=pe3n*K+ER!#YwJVWZIOyh{q<<glSa7}YU`j6l51{;&&f(UO}2eM#dH
      zm<1Mrg|TI}gB|@s6esAX`BleB)i&b84vZ_Um)J^=Q&A32={OA*H@-nn1vjtU3LHr8
      zWL>BCijK32ch`3Ewj+(<RZK=P!DKe&>5^~RRFYL4Ih<z~(0GmyMXS1Q+S>@zo?8|;
      zmfW+_hM~9!OzU_JuaoPJRy4{LMljd{s9sXeUlcP;>cbW{9AA2lX-|2c>$PK+nKEo!
      zu9<eiU0tn8X39WZeJ<#j$3@P98t|OCUgfZ)A06GoRnOg2li29lozf^41&%gRn>1I{
      zFb5sKRg#r@_e6q8U@*JQ21`tp!+Yk9dL@B_|CJW@V7XLbX?Iqh4;7aiB^<1m<IVQ1
      zxYH{3;6mfrqPy;u<g}$QIv;MLF@+|e8;&EroNZRClG?qk_mh@j*~8r9f<Nv=e$_3C
      zc1k*Ux`<F9iKj+xBbFMxg?%@84WX0Y{lU{0H2e}Ve1$IF5_NSvfo>o;9l(<Td>lP=
      z5aPKPeRX&-Ms4NPOO4cUFrU7MYv~#W=SDxlGXkfze(fF-{aTv$q(BYnn|SUPUQG9E
      zHM~3?xsG`KWjvCm-I>%)?E4t!#v?tE&_@_bjrK%pn7WRhxjQf}cfWBP`OzBYK8Nwy
      z4KirMySRddMl>@4<F6_GmeG7i+4to60|xOUH^@&og`Y8j`<TQpn8vTvzmE&}4VUmc
      zQU1UZ{z3(R;sg90WMY9yWMmIA;h{iX<<&+JZw6lTcng=AgFZ~*ZM*}GizQ4}ZOrKe
      n1{$X&V!Vg<5!N&{pv1UBJdOW~`%+L36U+QpQ>+SF(%Sz8Xl4NH
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/TextAction.class b/libjava/classpath/lib/javax/swing/text/TextAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6086f9b7bade7c74e00a9e8e6f4ff929c4e672c5
      GIT binary patch
      literal 2692
      zcwUWGU3U{z6x}zObf)ddM`%j}gpY!luQq^)Kx&~zDupC~twF%AX*zAEBr|np(gIH|
      zLG;zNd{7@;_{6Ke6wxIMUvMq|fPcYXA?}$>OG?s0vpRF{J?HLo&c6Ge<nRA}dj#Mx
      zmSltkcFt>y+KsHUWSFyASHIzAC;1qyxQ1oQkOX!#JB&^_uB}x9yFkaVVH)m;KyRYp
      z`DLpby(V0n&bee+K+0RwdKbdzR1rakz~+Ks>ZN*ZO1CGqsj4mzEm#$;TGnjCn+J=M
      zJ7+io@xlh_<>+Q=H6NlSxWJZK-SwRFR&BvDb<-6%6=bO`xmkUYOW6j}8E>3Rwgx-5
      z1|ZjkZRnNJ6R^@AM@1jD3v@F4gjKgI%&#YrY|8M$)VyACb24HAdtMN-3p^qfyAT)H
      zM#M3zQg`&}rkeIAUYxf;#7|RT*G2^JJYCIZ6oGv&f!W~%<waYI6X@3Jvo$&v42O85
      ziEC>RgA;7Km~6W$<28Y;exSN*RI_I_XRfF%bm1V9p0-i~;Y6~mAVXP{D2r|k;gF0h
      z^J|4uc>#_HC@i+DRqHI`U^@l37N+2+0KBNjRJ@7fjJi-~fyWcAzO5^506nOaDsmWR
      z-i~og_v;w<mPb^a!f6t{=%vW((7&Q1pMktpt?CVOy74yNk&&m=+Syf{!5FJGT;0}O
      z%NFQcgEStj6Xz_>$rukfTWeKu-V?TDQU{)6QAG(C1mro*DRIqD{3^9p<&hs|PiT9N
      zft}>bn!m!jwl(DvoGbl=!GESAG?vvKsxuIoJ}nS3+!ep)s$#iod(6#+l|GYejXb>0
      zK|U9Jgs`bL(T3YQci~e^$zUn*)f;$Tzd2=T_OySgi<+s;>Lj@W7PFhe%-3z3wYBr&
      z1zkD7^?>|{Gb&~=$NC9(QMYTFcXfTQ3rnWntOF0G`ErM^&(zqSUJ!$aIMe7ztJFUa
      zq_{!b5a??3!!g5Se)F?NKICl_P{&Q?l&@-zqdPK~-O-jN^la0CvzBe#vP@U27Oh3y
      zQ^Cr&QvZ4;8Fhgp8-bQ}+che!kbUh9(mwX*FuXsBBYwm2DRVZ05I;aiD*XV;FC2x~
      zG`z;)t)8OiX>@bc*YJXhSA3KXY{F(@^k56N23U9bmiQhJ#q<;Oq?Zvb4gQJ#@1YDn
      zMt?E$7nIa8b`&!|uf`dG!e^1Q5-~3_)+I#o9=2l=JMljDqU^^{HIP^14`4U;FkXlr
      zd$Eu2ZrTR0pH;?i0IxQ365n#(LH~Qd<KUGCNEE{(_mND+kDQcZQZ)S#gCU%ZWMYvg
      zP-2n$h(uqHNy~WS@}01Vryl+E^dEmi`sFsHy$zXVocIGnrSLI{!?zw{RB*?A^bGb&
      zvB*QbEASXY6L%!x%?biPJpFgjV<hY|GDbeZ%cVePt+Qlf4sjSb#Q6zSd15B=u*lZ}
      zG|uN?^W&n<&uuK?8@_+UlF!;La>Cll>m{GHdt~+!nNjc^CdjaN23fLPX6z^#y^IgY
      zbDX~(Hj&8)oBfJ4ziKV5T5W!DT_IkW5!1e(gwN@B71wC}Fi=e+)<+yQY#-Cs<NZ(w
      zRC6;>P3%{EQlMt^q9|n=s>x6_rNL)n+3jz*&46EU%N=y$OO|<;seeVmeBC6JSRfP$
      qy`*lQAv!74>!iyQ$|lq(nJ~wuk8P1k5G91q=;=rb=@eL$l>Y%Fg{o=*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/Utilities.class b/libjava/classpath/lib/javax/swing/text/Utilities.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..21634649389c62397f8537cceda176526182d577
      GIT binary patch
      literal 8224
      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
      S2m8*Tm`+oLm?4=civI@=15~I0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/View.class b/libjava/classpath/lib/javax/swing/text/View.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5eaa2fcc2541b7c12c0daddfdd62824975bddc49
      GIT binary patch
      literal 12065
      zcwV(x3w&Hvng4(H&SWN&+eea4%QS6CX@Pc<G;N_l($aTBBWbBk8fbZSlDTaMl1!LP
      z`T&$yEuex5>Z%9|LTh;_R!CbaFVPApE4r($k9BojR(!KQ)^*pF{eS1)+)O7)BR|()
      zf0=vEJ?DJS|MxhzFa7z+rvWUG4@O`K;#a12rgqo&?aK6Qug|-?^Y!f+cUJ@<!9-oE
      z?@Dpu!j3E5&U^$Vf~kcETJ?8Twx=(j>dE&B#;;7JSLWQ*RTsIL?K|=UX%>td+|Zut
      z>UV82hhWm0-JNb%m)nys*w3}dD}wT-Y_8KypSVzVL@?p}Y_{mN{hFZU;wx5M+}z5+
      zW;0M0BCy>qN-(u$n1*Y*+-@>n%mclt97lpF!*{72bjy-VPbR-qFn!MGl;*YzLaVZA
      zHwGKi9Grsb<UeO_dnr{t)xjjhDSb<($6epw-QniiQXO5cprR$)nd)j!<uW?=UxxBK
      zGBjn#C2c{tH<eKV&+xd{r*`G*&(EcLcVs&I77x8@-I3~bjTohUZhnKW)zlG0Hfqgn
      zk5RC>4w9%5INRO4zFw8>*He_cS(ob^%tO5(;x8+`=DDL#)B_6~EW}w9Vf&B>i8&`b
      zvB<$0I8%*uj)TdVA}H(W?_RYd)0O6N!Y4xubn4WTl1R$a9&S!B*(Yq&58fN9OC2o6
      z64K&{)!EMeZX?O`kt7*hHs@A4ScTPs7|;2h6-*oH*r4Cb(1f)SoG&<Kv^@@%VL5|I
      zZIW}hxw)L1ZtYD`xe%?{L|AZTquZCc#vKeAU0~dVQo9uh<GH?$!|wiWJr}x==vHap
      z=HLRf=&02}Gu}$ab*FaIW=;MX;?_T-OBwz~h>cb<qEY8GH7Q!cyE5tg4x)UA&s(j$
      zqARn#M`aH!GqE~O-{teUOh<p-r9?AFGD)zZ)%EO>a&S4WAR01#?U}xe!8W0_g-kO&
      zX?M3Lr9z=8)tS%c_6Vv+1B<`Icxi_N7u%>z&h70=b-L===H^RAMLLzsZreu9Ibgoo
      zuIh$&a*djtGTJfj&GhuSIUcH-(|pn>$~nm3O1f*OiIH$BmrGHXl2mW6+e6%z=G^Y=
      zPIpCD7hif~&&8B%d?%Ax-fhaIwtHwJvr$7#VD-+|p9P-jTJxz~{z9Xg+WUG3Zy${2
      zH9hH}g_|7QpbHfmKpIOFg?T5R$r2K?eC-OeNbw6|Dn$eje?6EunmvEU394bl2xL)I
      z(j>7|0b|vmEt~CX%k;KUMa^&{oNgJaL9N7B&vpZW_d2)*x9aHq4sOQY2=1bK!P$+h
      zRXow<mf?f=y9ho+ZYL6U@L_z!OH?bF^wNDr`6Qq~c6Z`#2Oq;df@r6gX8JUKR<EAB
      zMJ4#SgZJQeP1{C`is2GddFHE0BT@Hq)L=eW3l<0wr1=;Q;9vxwD%3H^cn%)GgRGgo
      zCb_sho$jg~B<`j)b&Z0gEn7V3KI-5hJWTl*l+x?@<b?8FGN+k&f-basvlP$n(xhCn
      z%U><+(7j%1&=};_QK36~q$t{u?aL?{X0Obo`aGy~Fbj;ek-+nUb5n1c(IeP+qN46j
      z#!`^l*XV3msXTd}ncH55r|?V!PqTcFLE6Eyc+SI;XL-Q|Cu<eP5_Pt}(<5f^{=9=P
      z;!E^TzfpLoK3+Yh;ziWP+CG+D4CKG;;03(My09&q+m*_t2i<Vv-$t4@;Wd@+D-OPj
      zmx&S2SS_hN*?xkx^KUMkCUnc)$@)0vQ6`W+J;MV#S;}UdTrVZtr9Yj5`mtyiX+b-9
      zHD}OC<2t?c;LXeM9egi>@3Px_Q*<4CAOGxiHG^nekxpyUVVgBVQ5|ZSzJq^p@IyUZ
      zQE+&pkuj~y|LWk!TCSp8HiadEo-+J9UW?!-%xNdHl!Kq*XG~CDRTZ4|7sp{?stTt(
      zO{z|!hiN~I$l9{9bq+!@#s)Uf<|+J#gWsq&njXB8T#Db}KO^`(-G1^s=im=GN;|Af
      zbzY@mrr`dgR=&eZ_<tPy3IFSL=WTlwN_BJog509Nx_xme-Vlk1UIYH(LylNt)4m(m
      zth=y%jiBaD@Kfn;(x2;NWLp}M=wMYgwQ^l5&&IAzVp?0-12t1eaU2;pXuKBFy3u$t
      z!I6n-m`IbCen?a*9I2E^g31$8Qd`z5PMOgP;aKv&=>(+L74H^R);H9i5fx_U_esJW
      z5oK@aPrWrieDu9PjCBUhnmTKSBc~ecH?MD9v$0LJp6TF89MjP(2j9Xm-FCVoXP9lP
      z)~;B8{u*7J<KWvkrY#B`!Dd2g9I4eCs<zPH^-?-d=un34Q&gmz_u8&OQ?44`FOF5N
      zN9ZSGdi(FyEqxK;jq&thBvz)<Eq<>U>=mTP?jpwAFf45szlcbK;ItuVHg|Qo+f!XD
      za@##%42lz#w+L2rEU518@5@(rxYceZzr)Q{53-x5?B@9(t<DxN1Ys?Uq|w1CvRM1S
      zmLa}=`#85fD(5Mqg?}w0LSdOB^)kN{cghL}w;`&dRSvdzqcslR<&DmFa0#Mpex+GO
      z<K;5KsAOEW$D~EpM`YbdUxGH}GhJlt_BnE)Y+&i>%y#$kO1P=VcyFE|F=XzcK6u2|
      zn-#BPf!=o(>PUb3blSI2Q?zd5B&Tn3d=p#kvI8byOh(qLSX*|T0$0#5!o^~Q)Lz_-
      zs<|$6*cx9#<vaLpqXzQKF;6ni(*51Ndc4Dtt(dN(w2pR{$~M^%k?kjZTWj6Zmv_4z
      z$p|lzw&_*kp17H8{RTpS7d_Uq?!__blAefkGs}&z>_}Ey_;7E|1axT5s=4hEy?9J1
      zM%2oFrWH3AldCa}Khp1@UsF<DA^5y6ej{AK{L_o0=2kaH30$KDt}P-kh~7~N=*hS1
      z$#>{YrTJu>ZXl=HsN6(fH&*Mpy^g$7_Ay)Lv)*22uQ|gh7?a)V$ZZ;15o4LI9&@!%
      zyXNB*>&kk1usze)pXwTPV^c0m8@G?0YKlQM(npA4sABQE!@)%oi^}`xNk6$%@6>Oj
      z)vR9C#INwr&Y8N=n(fbZx=k7VdQz$>c%HHd&1509`4>hM2}JnIWdIgpoR<~M9nQxU
      z%*S&+p<q6d^YWte6$SH3{!K#Mj3;A?emdsbDcr>jz*!UDTlz^Vc^Fm6nkO*hvu1BK
      zf5$^V#jZw(yGn6BW^y*!+l|u<Egj7wbqVo`h||sIrZaG+Px}Gx4fDCM=F6x_4q(oC
      z_R<5GmYhC-+Qv{KG=TZZ{U}X@WB_OHwPpIW``&m}WoQ_Z;S8h4C6wVZjxMK6Tgfkt
      z8F0z*a?~P2jjlAZo$YZ8WLs!7R!hvnTWAxDmYs=nIkHJ(0vfp*;`&0I<x5--?Wllo
      z@^Lgg76?&dUiKI!j<>;QBKoP)KfHlYHO@q;I=_WFhvl)F0h~8Pr-JN&KAz4~sD6sG
      ztH7ueeVSpu_XHRH_~=tV+ZQcH>MM?d?OU;Y*A>VY3*=ix2M$+mM)Bbrhbu>)Hsh^^
      z$OUNei8T01TJ|GF6h2y@iWT_4!a9RS!Ftm2Xk5m(imb|t3)dv82C(5Cl<ITin%SSm
      ziMBe(jStZt4-@2%7zWke(SSjv&%mbr+OUbI8T<jOOMO-qWn*zV#@Xj-x2H(w=>kp_
      z0jCO|lLp;IKBtSZ+2^F+TFw7l3}M%^%NGlXNkB|kv^SY`A-X+cmj+^=<6GITxNJyH
      zkKDHk%xnkb?7+;I;|h$3n61MR^Su!f(}7N(Lak513Kcv1hXp6C;A9dt#V3cs<kb;R
      z&NJvd0bo)r?axL5SlZXz#WtVDTYVZ8UL+nzjB&XA01-VzGiG-DnqYsufbO8T!%Vt^
      zF_>X`@#r@5Pq8x0$8Q)CNpG>h$5$EAbkt??kB+*TNHq6n(d&~<@tmG44?P9hY}dA~
      zPgaHM25@yzDi#~162e3Y7qBZ2*p&zD%9&%P@MJ0Hd7oW>ke09X*-iG?)wHhD+`Ke7
      z-L5@>r-=(GCC?bfOBv$g6!4uK@SSY9X__5pxM`7!8d;R@PE7ato@<gVP?ofnp`5_X
      zxPuqNn3NX)q$~i)F6{QnEGHSYWRyl4iAEd|nOxw~Xdq}bfXW_R6HpTqnO3q0Zc<ec
      zw}o)K);F@ngsVOk{cevDLyoOc5&Wfk#E`pTGzvEkr*Qg+6mG`eVvULeNRp#ylnyj{
      zC-xbQZo#b>3MF;7WfjY@umB8&)Nb?hn#Ie=CV0X6ZqijSya%`Ybic(Ai}2Z!oHd(J
      zzoQ`}jp2CcZY)m575nd7U-umD{0L%o&*IJlD6Kn+4+t7d5+$>4pMCoPKKc=qb0<3q
      zbN=4Oa3VaUZ<3aQG!nW?;K+F>mt{!Ea-1nEP{(Jzti)njg=Se}v{>uO5@^v9XwedA
      z(c)`S%95%U3(*J5@d?~VP3o!B{rIG@%maAP*Kwim%P4($-T?L&`(s^!C!>KUA7Zid
      z&gaNOJDN$F#<XENj<Q53IgS0(BgJ955hc=!GHFAlY%1u6CIvc8GX0L2(H4B#=roD7
      z=hM`wgdzJGc-_!r_^i*rk1I+eZa0KZH)ZpK_aa(uzt#|n7gPjKfX%RF3&zPMsE|tw
      z1c(O$#QhqjqeH$?<M<p$Hvd)Nabr}$6BzIXXoDCU!-F$bz+rf^p`)w(glidI9^{o*
      z$iVw>aj*=7cV?7eITUa>f}<u_o@DRfQ9D9;O88u&`R!huqcPkVs!4>7;`0_1qQ{Ba
      zM7V~C{lZ7-vBt2@YB@b_1_OAhsP&Z_n9gpZU2nz|*^6nik08DUNx2PY$-4;R_ZT^s
      zdVB*pm*DU5H6!N|ykde{M_<P`sLwc7+kc?tL)<$X|A=o=YSHgcz7~)AS}gkO#6OLO
      zg51w-pJd5;faPO9s^tJ?$wAc0LpWO=E)acDAo`*}^hJT_i+s^b7-^p96M5Sh6#d(O
      zQwKap2Ru&)e31_L5*_emI^YF5;3YcXD|Eoi|1S;*>3<P<TCjSB&8=r!%~AXllU|6=
      zAMhFG^GAY)5_uN?))>)zP@4!n%_`m)u^XZXFgX#4N9z)ycy!@WylSC!Z&cz@Zn^J`
      z*Hrb=MEGfTLEM{+mvAA%@>vkb3z>@`KS5MpqsM-VQ{?BEA-|x<euWzOH5SP0SixtD
      z{03X(w@AzHjqckt+wyl%_iaWeF(b8tWk#OvQ8uVQ$1jWr+wn_|!n}>HHyO2rx4O0X
      z6<df1Ei}X2)S}E)4%@V-Ne(aIMbAdo6+AaVtF(H$Asi3iD;2dz@w%Fa${oUQ2k>7F
      zk$A-V1gg34-@?fK^L|W<mm~)ybRWAA9t@>*%iWlpj7RiR8cjrxV_G6QAmMn)Cr}YD
      zxfkQ?cqEiQA|(wGj?6P2X@~|iAH->7SbJ2;1X~Zuc;y?7M?V&D;3TxQp)_9F5MwLq
      zcuv)3w6QEvb{tiSvZwDw-1jZFalVzuV&vi+z@oSlFTD>jK4K4Gb~5g$pyLwbj$;ZZ
      zS}GgIClljp6XSWKmh!!haBK8|Hwu9KF1iMmgA!{T%B+c~w8}BVnvD6@6r5`%u)>;w
      zCaW6jt(j=GW}(BHjV|j<<gFxjTQ%5g)!`0n9^TLAhpc+sZOz9gtwlI!HQ-U}96V*c
      z1us~Qc*R<b?^?_8BWo3YZLPr{tS0=)S}S3zSteS`WvaE_0Oo!=UmGkRFdX@S;m8LJ
      zN3WQ2t0RR@h|wBna~GxKD@9v84={g{DI7%zp&4=tbi5n)OTqx=Ag-3Fe3mk&b(2oi
      z-0v<k04&1~7?27v{g0Z2DURdVS(nK)@*Pk2RLUejtsGYFd@l2xu6g8;Oy7_3%p7X;
      z>H|1~uM}T{uTDFFO5HVkKg#@9XBOo~VmNAT#Y8KGDysvttWM0c(rB<;EVZ^3WR+z>
      zWG(YsZ5<6p*0MoEapV~)igRSH*e0ud6)*cr?DM;cYJzY^-EmA!N{Ic_BifvJ%|%qD
      zOb$soRk>SvO1TpgtX+s(yD`<;gHx?*3(9YGAYFA3_tk-P)xLCbcJ_5L5229gCv1o;
      zfL^AAeWboQoBit08;$VA<X%SiSJpD99z?vBG5sLMACpC!E9IQSa_%#UkXf0`XTj1E
      zT}oCZ!nFgkw6SEmhWp2v^`|Gos^8Ma$N_epg|np>CBmlJEK7t<w;4->y>>Ht40mo$
      zL?4&s`m>T@sn69R{cSodYng;g{GEx2Pa@)zh<FR7=0u{DKOe{Z(HO-N(L{`Fo={FY
      zTKR;m)I-b7N&PX?rbP6JT<{o;+{Sx;2TkR<>KaA@tWROQbr2QSLv+<aB&>%qmwip0
      z^(Z6#5u9y(hQK<+NPiq{){~6#&!f|N7Jb%pxQ5T`tS{g$>v?>b&wH#Fu-|$S1J+B7
      z?icZl^)kL{eGT8YUcry~eAW6oBm5iqqxDS#g*zBAbX5@1mF9A!5nU;7GkubdHX>>w
      zx{|HxQPVY6nkz?`K>sFN*L`&P+t^2L;wVD>21oZ`r$4$5Go_u4b`<*=(HEJ~GiZ~G
      zIV#1gm}FM<lYKoeMD`G**q_2cTATfl371&1N})v%6m^%@FAI9V!cU!py<g0`C=tqA
      z*zZyecD}a~z(YK)rcN3hQ+UVzoko{UPOW;^QPf>JRCCS6-kyLGdm<}Mc|lxF2^dca
      zZX;8I+sG6nf_6mZa=BcgS9;kRT(!5r`>H#+-~))H4)7*o4@l=wglne(y9!}@8cOZy
      zm}sBMZoj(V_B?pa52M`wAOi9kyo>*k66pP}$3E`>#vc-Q;=BR5YOf{Js_uK^x11l7
      zt2ZB(KE`0aQg#i<9*)8Ta$Tid?@dBxa-*4G1-A{z%>!~v@U^(yd@ZgDZKd4)C*s$O
      zIy5^;`D<vsBxSF~274Yh+4b0B&xgxrx4odisy%^Kd)PjEpYtkB8L(*Cgefo<E~2j9
      zcVdxuv&AmTP4Yg!Lpxs8P!bP4WaxbkFh0_oWV1i7@t=GAXCoC+rH{z%4J8L~OI0YX
      z2GOR1)7|Et#~!4rPIH%+86wOF5$1t?`nx)m-dC5P0Wa14YfrXce^zewPU%n6)`F9M
      zs(i1e%6Q2T8dqvzw%5b9H)6iM8B6RfSY}^_3+&6W-cF&-?m(yAiEHgN-eGUYUV8`b
      zvNL$Xz7j|5E<A5%jjek%bK`hm>*GP_9QUtHI(nyHw~ovEO?Rgw#d4T$pO-sLf$v0>
      exmibW7dw7$)W-Y$WK-(*(yQJ`<Sx}hKJb5gfy)U1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ViewFactory.class b/libjava/classpath/lib/javax/swing/text/ViewFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c7095d0611499e78a5324916e05c5ca2e51d30dd
      GIT binary patch
      literal 191
      zcwRg8Z`VEs1_nb0PId++Mh2Oz#InQ+{o?Y>ymbAN)QS@Qu*}qQx5VU<{Gv*B1{OvJ
      z0gwv)oJ63!e^ORzatR{?TXIoqVo53^gRzDWhJM$a)ZEm(5^GINDUi|Dj0{}C`K3k4
      oscxA$KqCZ@?9&73U}I!pWMF0h0Y;$ptPE@*76UtwWMbd|09^kx)&Kwi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/WrappedPlainView$WrappedLine.class b/libjava/classpath/lib/javax/swing/text/WrappedPlainView$WrappedLine.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71d3cf04e1ba5f5d7bfbec0d93314aa46105d64e
      GIT binary patch
      literal 5765
      zcwVJfYjjlA75>i2%-nfgAOQy)lE?^%c|i~%+C+jRCJ+ot4Ud9WbD6nGMkh0IW|Dvp
      zd?CKAwLXe35~QXo;tPU8i%=DOReaQ{tyXR8k1k!dRr^}2OZuHVlgT6*ja{yln>qKK
      zefHUVe|vxX+?T%Evk$-t_>%@HF!Ow)%UD+)?+!&;%M<3hMER<i(a~WBmxYZ`WM#<g
      zo}QX$3`I;0HUaO5ElNzl8R=|SLU94nAmB)}h2qm^3ruSq^^7WtpAw3M64e5y7JUo(
      zks@_rv)zm&s)|<%*lMFe(*=PsIy5-l$iX-rF60UnX3;*lRqYwC!w!eQIOWS3o$YJQ
      z*m7fS*yKuMG+=~R8nKXiPfgmCn*!yd8=V<QI&3p}tia^2w@1L<!MzEA8A+?ljqXJG
      zB5G+11>#kMQ%!9~he`82D8Mlq3I)avUDGiIegRjjnW%|&MuIeWVo~v+g0sv(!icnn
      z%_=t|FjdDiOc&58UKa_T+0qg>X+%y@af4c(q2qY9JeJE%2_u$B3aF)G9VIAD?yQYQ
      z613io4Ld76U!`HDz?2d0FImq2wbAyDXoOL4qYULbX5)n9iHk$6ZDBqMrP!ZRJY;`{
      z1dlk82{=Ne(O7TB%wUG38}o3Ih6;gWM+H*H$@m_<Vlo6e!$!iaiJ8U)%cAj6A{31f
      zwW5Xw6{<O?(s2srQ`Ew7_^CvpIUBGI4a1=w>EzHLWf8E-L}l~>EYxr+vv(xgI%-s=
      zi*-usG#z!;+j<vcu}H^au!^;IGZCXv^kLAbdP2A~InRVS9ZNMd3LKSfUB?+JS5)RL
      zj0Y?{=V6(S@8c{oMlfb{t8!o&6lHpy5entPJS^9-LK)`{Q+lzfqNnn0m5v`^wLo4+
      z%xqz7BLTCvjjowNfr2cRZUtq{8pRQ!RbWDv6S+cXbB80qdW|t`^fFu3usF;J&vXSk
      zV==2H7&$erQ?vE}YmPG_Fl75+AqdEDo4|1+4IY`ON;pA9$Bvp4JdjF{`Q`#)?1Cl-
      z?Mbpr@wX!~K;$9Dd~GtlEhfq(kjt!K)2yZrgXwN7YACK(uoCQq0^3QMRiR*_O-**`
      z=*Buyac4)6rLuG&oyaCDRqkA*<Klq~Ndl|kQgV<LrZB@>-VhF(twwlZthH0oV%@rc
      z*`W$e!({@K2IZQlInr9w843r@m=jm9@EamsMmQAo8|y-Ge@isxA8vi6-;E8pN;QX#
      z>};uO%urXQtlWT2I<CRB42)ueh?QLp#Uq4MXIH5m*Xy_eH!>KBXmXL*7meIP*-LO0
      zgQ!dt@U*jYg_lQ@9ksUTTQI=@?@X@=8S$#(;TwowI%07RKVh1UP*Gz9RclisX<0WZ
      z;dUK&;7+D;C|=jzkyvk`w#JFgG;Kvh^*?_i>QB?4zl&D;1JP(K7>e*c?(c3hBYq<s
      zPAT^r%p^adFqO7hZrqByRp{?gEn;M78dU7(;XWN((8CNOcq%PxI$K&4`4?m(|0c85
      z>Ya+ww(7WFk%ptq$}2VXGaV18DSNldPbYrPrV>geNi^NY9@6nJwi6AWcv>`IrJcGu
      zWI1nOxypkbcud2i0=};m((yQ+U^uB(l`5Ox0PAJ-LAk#Z{Tg<WA4f>7NQA-!-elG7
      z##7{XrPWxw)(k4$R{aSyWg)=<_1XD6i#^m@w~oc4Qk#v9S<n$x++gro%O*TpPG-I2
      z3|K*26;Uc+Q^e^Rc(=&YqmpWQbg8Nffr_H~`r#RV_Gss;Uc3{}>Ua*%lk|tgY2b3R
      z{QnQsw~3UfCsU7VAX7A&vO`bO<Y`8`(aN?sDdT=H*ltu}2)v>rjOlK?iq|w8&TR1M
      z&Z6UW#l2e0v@Re@_DwbS8_qHHRCnc(p-9|}C01Am3!F7H5@r`ekj~(`uAu?>I#N>n
      zRc{0m(b)QwweRS75ihB>Xf^2g@D7&k9LBFDYX{3zPa%?l9y8mcUFLuj?xtvGEMV4$
      z)D_)3`~o*iDde7p2xC+mHsWz*k0;}P4nIxK;dhec!_NUAH&=a1@J)RqxS(9}@U4*&
      zN-npgbQkoJvfUV4V%vqh$F02+_<yWg7azecK7?Dmhod+*(bAg>FGsLOlW;WWNFJD+
      z)GYqN^K`C#T=q2b1<okx$FUVQ{y(n5o>QT5P*mv@l`c`~_BjurY%_X%&iyFktGgew
      zDm^~W0nFKq>wTX6m{aNM!{sGAp?mFKTR-MjIDD>yDD^tLwjNCMxk@?jum#I}ZYr+q
      zLtbhsHIdrsD4n?z)qHBz#7@-rV@Y#A&YZbAJ=N5_3$;{h?}2NhUGzcoIx6fNHK7jf
      zJ#v{>qg>t=2F$B5P9-HdG-u^txHj-p1>!Hz#3vXdKE(v_877Lqqd<I)DdG!E6<?x6
      z{F9#p|H8@Q-@MuW2aCjiu|#}@Rs5hmN7@jOc0{EE9sKQ*PHdDO+%L!ANjVmK<T&h?
      zd3a7vz#;B?RZha&(ueouWc*ncTJT(y415}%kFf@46Bac(2S22x8vcNDaUP)^gLlx(
      z1hLWjH(+pN$0~GSEk_RSKa2o>HGY}Bh#*X+&=ed*3tE{(Q}Ha?5MnZ&jBz+07Z7-<
      ziaM2C4^zLLzw>fVQRvTC;8*uy>P8_{unP+mkT$Qaum>Km&DP8{;#pl-(0k;A{O#$G
      zmhb?`8IbaLXtD_7WC_O0nJARym?meVRL;RH&YvjfTJFzH9-4Ar;zYF51(q&mS*}W`
      zFTe;#IVeOPqL%xDPG6WZyoVZ8hBxNl#iF38{fKSak<U~+E|oZk;7-nWs&q(a)B3he
      zJNDv|)qAmF_4vzo<I4PgT-}fBcH^dJ(*Dd~=pYxuCTlQ8*3y?c6v%q|vIukK5-gOb
      zV=;dRE3GjNWg~93d=dB&ZsFRGIj3yD)vCEe^pUZ`o5`B1wE38vw{6DQy|{Jt_@CzQ
      z#$C@O&AzwNK4>(H$>w$JLa)!p+TUi?sAkoxGvBNA!j<oJ_NJ8drImO!uTuf&vSe!V
      zy{@fLI6vssI1}{QpT;9L^ue~uXJdU;`vy+*+4z>!@D!e8y;b{ck6AJ-JgfX%Uabdi
      zud_nyJ94MjrG9Rqlk0IkZlbHnFh-EiFrEXaJP*0D855;}N&L;10Zf-c%$999Nro_A
      zUVvH|MuUuCg^Z$E#?dajv0h$`o8+aqSzdwL_-vI|;sJRT9+eyMguDj(<PCUU-iTM^
      z&3H{-Xu;8v3~w5aH}SLuhZ^m%Doc&_;ulOUCtkK{%*J|nly&z@Ce>`-=vG*jRZIBx
      zS(Vj5uT)w(nWh0e!;zxs{Wy>!(nFk4^?W#u+{`4pj!d93&~#1rIT*`Lcih8r(zYkx
      z)W6>5O}F2N%e_upaC;_#?$n0c??zK{=yf%#?R7~wz3yRnrjev<^|TuXu>4hp$LsOB
      z6?7h3un%^xXS>g_I;l_L>aNh#nLS4~dY#+pUL05B+BBf&vWq~HcV#c~<W_>&#~ObS
      z#quH6#lr;i5!S^HES3FOBljRK_u*Q(AJ@s}ai=_p&GHcLl`mim-?zzEu}i*=1M)3`
      zxRW5hn?a3-(*Pbu4e3l+qdJbHHBwOKSfjl-L;zh}NdlNh&=jZ++WJ%qz(PEc0<f63
      z^A#3=Ye<F)N;kG~&kGzWUf~TQ#W0(xOP#QwWH(-(uQ;S&3w$L7gDpih$bS5~566@q
      z#ANkW%3$-U<+F`XZ$I7`>^oCcbC;jME<Yuyd`43FD}3^AB$dx`y!-;y@=GfK{^YUg
      z04$)h=g}xTDlM8+P5dqVHf3fv-xZk_mL0%?&2X3P$AUh%2I!?k@ypx8?h5>yn8VMT
      z9GSt!h3Nwe@h*O6MZ7RwGKKg(-s8rJjOP1R$p|*6?_|Uz8gVp@@O=j(BtEdTeu$6w
      M>$Yfj9{vdY55&;Bi~s-t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/WrappedPlainView$WrappedLineCreator.class b/libjava/classpath/lib/javax/swing/text/WrappedPlainView$WrappedLineCreator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4584e771cc41f5eaff3811641b01acf761c77977
      GIT binary patch
      literal 889
      zcwUuKT`vPs5IxgYSJ$FG>-)12DwGf}L`Xv-X^@bL$J=$om9>@Kt@4Mwcp)K8Nc;dl
      zO3Yn-Qj~|gJ2UspnKLu@?fv-`z#`HHB8260aV4&^enq*b*+5<g*&|O}UdoewM<}<T
      zWF=h-<drLPo)kgJGY}&rb!OHPoVQmzmv&$vP8h1=(;VBv=Cm6^JUCN+dVw&RZ&-Mh
      z;cLoO!8&1T`VaV-0wI<woyY_TtriS4n~0*_LIO!bbXo)2bsxLsi=y-nMbVLj&V0!h
      zPC<A|`?X+93ni>HF8j@Vv~pXUOtkck@-0VRNH<uWslN&vG0;bt`&VTXDGcaF2MHU0
      z8P+eV^cW>Ogn^$?1oNO&_H4PW^t^h$7MRzW1Z&52rI&Mr?@Qmn1Yx|PHeN~nOfkkw
      zjq+&%C6ju${E8!d5->U1!qzhTI$~yKpI~LGXnP1T9sG?m26T%~wk>UQRu{VY&)U&j
      xW7tG2WN3Xs>NxWVYqpC1`!6JSAxZBiutuV-Aq?|<1S27Slm#P{#w}wK_yAFH>?QyJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/WrappedPlainView.class b/libjava/classpath/lib/javax/swing/text/WrappedPlainView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee618df9480597d40b9e05c4a952740962e10b4f
      GIT binary patch
      literal 8465
      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
      D9e~IJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ZoneView$Zone.class b/libjava/classpath/lib/javax/swing/text/ZoneView$Zone.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..028b41630fd37b0818183e30333c3262459bf8c1
      GIT binary patch
      literal 912
      zcwT){T~8B16g_vlbW2$(R8awoRZ-jZqmb~1F;Rj^lSWA(jpEbN4mf6+ZFUB!|H&5<
      ziO~mtfIrH3XWE*WmS&T=XYQPjnVbFn=jSf~n}`B<gtd?Hr?}tH=Te<CjOd%jVX8!1
      zit}{~0{Dc=80UrltU52#zU2|T-UeZ{HOAUYwKOtS+m^CP$Ul=xn&*Ur+BkVP5vM|#
      z?I|`>j+*s0!QV-{qKF*A5CzQh<EG@WVitreA!d-bXfZ^9Ja<}BiPvYRM<P3jj}k#B
      zx6)3WwBt<L{jlkq4^k7V;|c!_(7s(Hgq6#0!d|^pZwv~L$&dTinVN*si7@*n&di(R
      zV=W9JSF1PYa2t05R0+$M4kW}~R0y-IA4x;TyQ(|d7WdP$tRr4Y`<VIBou67q<~EfQ
      z*-jE`Ep&j|q^OaEFKi*IJi{FSSss5pQilRpZMOhB<07LT?`OD{qen~rcg#hPFHnk}
      zTwvj=)0FKQd|uzO{vARbViE6gl{;GlC9Yu!aOgU2u&+foIm>fsnNiN66|Axo;T9^x
      z^ewKIUyQz?^aE>zFaJ{W?xgFI!U1cTM7TH6VPT?!n&9AJ-L3cWz;&(1L)20D3xF`h
      Ap8x;=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/ZoneView.class b/libjava/classpath/lib/javax/swing/text/ZoneView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..875dce6d15a6f445d41fde3b39f68ca935d22d0d
      GIT binary patch
      literal 5663
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/BRView.class b/libjava/classpath/lib/javax/swing/text/html/BRView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..19fbd09ee88a35a057bb8bb0cb98681ed51b57d7
      GIT binary patch
      literal 553
      zcwTjnQA@&59L3Mo<!qWxD=V$=p+F59y%mO#)nFh!RM>0NE_!QjF=zT&`V7AGWc1Jn
      z=tD*SJ4FI(gS+$p@9cNZzP>*`0UV*ABEqo!XusGaqdydG#|Zc+FuFm{G3wV%!G|go
      zhT`82%XNgyrHdhUDqIoN7<NjH1^1=Hd)y7G<tBr2?mch~Q7k91gcw7*L6ECKuf_da
      zyXA0(Y{P5YPSf^<oM%fV=!!nW?jrqH+ba1ug)!v+Z^4l2@SyH<`{|C0PB)<TCCfC+
      zmaMg!gpLex?2*i47DM#elgcFJaF;>5@dkdIn?m+VOp^~~9Eu<h<P{-BzelG^Q;p^b
      zJ!6%F3F2?zdyP&l+#Zwj1PM~PsS8Q0gp?RkNE3s}PBYd$6uJSu@Cr4Pcpp~^d;1e)
      p$8%~b>~Kb|I^wtp$(89hbFz*#tP@eH95%vS9h;=0wA~6>`5$RuZPow)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/BlockView$PositionInfo.class b/libjava/classpath/lib/javax/swing/text/html/BlockView$PositionInfo.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0eabccb9d11e55cbbdef3491f5e5c6aa6515c260
      GIT binary patch
      literal 998
      zcwW6z%Wl&^6g|^8NfX>x+CoF22~bL6(wNt-s8SnR$&%F~5-he(m?l%4ab-_vyFxs_
      zfF(b{B0^%p2k=pdJ5GeMKms-_X6`wjIrrSTy8iy->o)**@gR#ShT5_J(m%7~Qz5&y
      z;%Cb4seWMZ24UxgC-~|5<1iLVgwl~mVHO6%yjIwOPxlYo$GoE$GR@Xb%V{t$hhe4>
      z%2@eQd44e9De?lt^pic8u6TQzGvYhD%|rKTE8$c|df$1r_ehfzgQ3n(IE8>8QSuG9
      zD+l)P%k0Fl?Q+>wy)DWSiEfVsDHWbjP3=&ruutHjkV0)Ue5yEqm+JrDs(SR?M);iP
      zkwVeLGA`3QDpfB>y}M#!4jGNsOw40Jqq2#@2wgX^I6~_tmaxDu=L*RW2K_dVT7EmA
      zP8Qs-;|HD}3C+hJ4b>AdL*4zC3E0x@J*W1vfL26{8qV4b`DQqXI(%Q~)U&_Db)B5S
      zbfn}_Bk<#x$64HCDE+~eG?Tt4(*yN*<gkJ?GQ_faaxhIiH^KA7FHCTg_{;>KrJcH|
      zr&9MaiG^`o9LJ?3GFr>HNbwS(kEGSAvh@Wk*6I+eR&9u@*5(i;t7r^y%_^pcxbZo0
      zxk>w4;`j;%UQ>l{$oVZfyh9Q1QNjmo(CPLlCvKsVIG0gPYSqZ1Dy9;2n@}o2H9|&$
      XHVLKayq@^kxI-~dN=AS7edK=vws6-J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/BlockView.class b/libjava/classpath/lib/javax/swing/text/html/BlockView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3fd6a8625248c509ea3f53e990399447184696d8
      GIT binary patch
      literal 9557
      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
      JdeVak{~gDbq>=yt
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/CSS$Attribute.class b/libjava/classpath/lib/javax/swing/text/html/CSS$Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0779b12ac5d1ce0227cb1ab04c8482da49c1d5ef
      GIT binary patch
      literal 6219
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/CSS.class b/libjava/classpath/lib/javax/swing/text/html/CSS.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f280debf7f5f3987d33c0f1c9b0f5b42fe49ab1f
      GIT binary patch
      literal 6687
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/CSSBorder.class b/libjava/classpath/lib/javax/swing/text/html/CSSBorder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35a0c37fe55876c15752c80eaf08202b21b58f10
      GIT binary patch
      literal 7458
      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
      G#Qy@G!XBvr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/CSSParser$CSSParserCallback.class b/libjava/classpath/lib/javax/swing/text/html/CSSParser$CSSParserCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..54ae9959a79024bfd12ac0b036165c21ffd92038
      GIT binary patch
      literal 390
      zcwU82!A=4(6r7@NVL=p)XD=S`V#C=Zi3y2`geKg}(g;|(r0pvHng>6?k0QSAZq@?_
      zd+5A3c{82YpTpNTfDx`aS`4F&dRKelKi2kD1icSp6}Co<rJO3~wYzJou`*_%vNw)X
      zhRY}uMv>@cvC&yz=&h7p8a>(Wa!2jW@cC~>21ovn_j87h56XpEVKl?ZFfv@*W!3j9
      z3#kn`=B^>8F5hVvJ{h_dF;}Lb`BdhG%k<N_6gNp9;=>eZVlBls%6siO1`N0VEXy!B
      rS~meGDB?+I@iP!X$k8sbQ)625-5Prl(ZYFo_i;g(k`sL$u9EgIb9iA_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/CSSParser.class b/libjava/classpath/lib/javax/swing/text/html/CSSParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d5c4bf18a2d1d5ca3d4fcef431cca46db278c8f
      GIT binary patch
      literal 4348
      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
      I-1OJ|53We)%K!iX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FormSubmitEvent$MethodType.class b/libjava/classpath/lib/javax/swing/text/html/FormSubmitEvent$MethodType.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb06e1a26e93216ad71b49d59e749919a3047fc2
      GIT binary patch
      literal 567
      zcwUuI%TB^T6g|V6S`-mf)QyQI>caZiDe3}2O;AiABre-Bk&-@4J0O0RaY3SqAK*tB
      z?~Dc#SK6jC_ntZD^xXOQe0>M7kF_*n410ZZXpW5N(edvM!AHXA3C}g^LFlyxmgk7t
      zko#ienu}i0Z9hHmG!hJXsWM!XG)=3|ZNZSZZMNDB2aW$49y7!*Y9!56Y}fG}aZ13}
      zc84shL6>V_&~@aHWk^-jd6u9#9Z95QHLoL$6d?`A=Qjh-;$hpgT+UEv1h(mR%+Qg&
      z0yV^;le6eK5rftW2BFRCj${{qMckEx(7&&IpNCb~j3OSTvBI$VrwPe@IwRI8Xq>J+
      zhO*2}RavH1NQPcHh(_HB_3|mbf!&QU^Mct)m48<B0<E*k?2IJmDB=hU>O_9IiPa(P
      ljP~Tt7{#enQ^YzFxKuLzn}pI&nnkrPVOepdMH#EeegSj5cj*8C
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FormSubmitEvent.class b/libjava/classpath/lib/javax/swing/text/html/FormSubmitEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d88b68492a924efb0abd452037ee8a0b320dc61
      GIT binary patch
      literal 1362
      zcwWU+TW=CU6#j<GuHae((L%jesRc@1HNIhdsU<Z5O$zcpz*x5K#q18Xjeo-*qKS=(
      z5BlzpGM*VWDg|TvWHvK%=FIud`OYQ#{l}ND03M)WBEhh>&ky*a9ldq@JzI)HX^*An
      z+N~h;x|4zD$n68+OA{%E&BdlWy-vFoa!>3Wy%C}7_^&mD!SI9}2P1}u?NbG*bhLes
      z+%y?dBQ7~ZL1S%~6S6BqazJm!W5;*o6NYcqKb~I<_Qg;(XMzdk*q&up(Yp>aMf*b9
      zFL&F`d79g<@W{3~PvYz;&HJeJDb1~5B(g~2f`ts07~cK2lxqD97%o~!!%$Mef{Aks
      zxwhkr=M!%r!X6*ELNz5Aa<|VzN8Mv(N{*d~Vf}QKQC*CJNjMa<J&rS0?kF3E##wS_
      zNKQhRVQIDq3<*KnmA@B*$VeXU37T5w(W0R>>Go8QV6j?TG=v#4=)@ELC^q?L+OspB
      z?dl4&996&K3DbMZA%peI_eHqn@+cCKi8{mmvqqvozb{y&)+Xr>kf4t`ttIL+ol2WQ
      zmfp{k^q$_7wp8C}Y?f2y^k-Q0vT=-Dy=)#M|4}0^(Oy7`_93B0$U|TmuTUh-?i7#9
      zxB_TtnHJMh87qWV(p6m3kxRIa8`@I|Hwl^6(k)_PXla#nCZTWRPR!7zQ+Z3*KOz6&
      o7ac<@15Lr28pISBDp*?p&Yc7wEdVEQSMTen(y6LcqqTv|Pgg@^?f?J)
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FormView$1.class b/libjava/classpath/lib/javax/swing/text/html/FormView$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e7150e51d5747de2cd9e26a649f71bfb7eaacc68
      GIT binary patch
      literal 1669
      zcwUuMTTc@~6#fP(D|L`k1g%%Vie<U1cvrkb5p)rh%L6_w+YuJGyJR~>{3XU;;FAx=
      zwnj}%jERZ<DC3za2#8pH=$^}*^PS6l)9*h%d;&0thX(2xI+mSPXU!@+^MXZ7iZy91
      z$-HlkhEaab6VK9v24V~e6=nGj#Y`?N3s)LwU`TFy9~FbZS?~ozgIw|o=|P5my9V@h
      zaUt)?nWacLxgiE))$!B0&}B&Pk~uarVUL7vF)sp132~Jma-Iw$hSav4ds*$Cassgt
      zm=|&>%u&<!X4lg)qG*a}QW1_Ty)c-4WHaoq1_eS|WN$!7Ct4J8z0+dk)3DdPz>_x^
      zUT6Mm+J6~v*MW8pu)W(_=RI=_vEeW$8o_Xo!@yppr8pW9SK1Mdec(zv#?gfRN;|>P
      zjD*rUIa;c|lN?DT;;6?dj#hLt)MpfUv+V`qK{3A|qM0fwl6L4i{+tte%3gQI6jK<w
      zYHe<i_Fo?rgE;zO85p3H+Uw&u10rFwR~U_)yx4H-7U$zQhYJSIGxYw)t#Mq$C59H4
      z3@NH7*;NhtI8$rsJI{OmGWQnnp*XH!$iP*)t6dnuaShiQTAz547<;}VBHs(1&aULB
      zONLY1nJE;e^((4cqGwJOxyf-0w~5{bA*Y;0%5BN~&YU=gku@+v)%1xMTH}-1HCL>t
      zx5F{2SkSye1IlUXxKC#y$0eXTvBuD5{~<-at?95Bxnk5)q-fe${eTK);Nw9cqG8`D
      z6hy(m1jF&aUm2xry)^138@PU0py&zx7r@brZej;ffqr{nBogWg0Ewh}09q3LwIuRu
      zNz~V}W!+9H8+G(+#Q{QTBW<2+LP4L|TSmLtSH>Z;zl_6XDptl(GqtCT<7TR%j1Dtp
      zl+k6rL;8(IIZfZVMq{MEMTRs^I$@y)ruM6zt94#b&nkAvEa6ZEeJ=^HL}f};v_yqU
      zRHlTE3eHw=`IUC6!>$T$yux0)w}LxwbfL4jK(|>f-%X<f@2HLUXvYT}#z%CLej1-C
      x>I*UdE3V?3Zmqpqe!aDeh~X~A^g74&IQMX$WRkRVu<?MT8bx^~=^G>O)K4Kgu6O_d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FormView$MouseEventListener.class b/libjava/classpath/lib/javax/swing/text/html/FormView$MouseEventListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..36bcaf90f8e5ec9d222cf3489a60b8db4d091ee1
      GIT binary patch
      literal 941
      zcwU8)-)a*<6vn?v)}~!IZ5oYQTWe}l-6Ykucq3E<sTK-p5hJ<rYSJ9ik^LjPlccCG
      zC1?aMd;lLxJTr|H8ckW)ojLoR-}&au`Stt9PXIf3SU^r-=e-=t(;yqExF2Xb)xn95
      z!eBp1qmH6c?JyZ+^lC`4ZmCRDOlbj*z^X|L<VXi({smU{q9;FSN(JWhiOOn^1*)yt
      z_+8dMQ?b&|1vdT5#PyDVvzPQ}0RmS&T)~`+Jc=F)SQN<nMzGXUF&zz}E~Rf}Hza{_
      zD>;^7N2bc`Cqc(p6nJt;&3~MqJr^SreM2G1jCum=XVx$F!=|xo7dLRLfSUp<|CM=I
      z!EJ&0KIzwqiZ$Ez>*rJ(+jX&q^#bm2#o4w!+(lKuW7<I^`}9(3DNyq-0w)zh$&|KE
      z8D?wT^RS5;_gI<a_MjUnHdOJa)u!V)8uCEQ=m2-SXAP960RnD28KlRwugtX+|DNEH
      zQSu26Vs80fD6@?Cy2{hnfejvpJWsSJmCQu&DhG!rVxHp*ynD*~9Dm(L^Bcdu!~0@2
      zOD1Oj3^^}DiB}%ynCLRfhKOspKB2s0rKwVBe1+Q_qcX<op;>Q_v2hMuw4#p;`oyW9
      iEwp-;IDwkg7Vb0FWAFp`)?VEb8fe<`f}b^P!}$YqVd{1O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FormView$SubmitThread.class b/libjava/classpath/lib/javax/swing/text/html/FormView$SubmitThread.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d165d5cc90be350f23c371a3cbce5da53f5ebf5
      GIT binary patch
      literal 5391
      zcwUuQ33yc175?vJCT}u%5C~zJfXEUc%p?R*Q4<tH5(J$jK!#wzY9Gmij7(<Y%o~<&
      zcCX#5wTpGB*4ngMTcJ7;u}alqt5s|5Vq3enT5IiQU22!l|Gf8R2~G%wFE5vS&ppe3
      z&iT)KJp8}A?**^||JC482w!6CG4?g3_r?;tnk;jl)ih`g#hcb8Q$xKmb8lTwX2(#>
      ziVmhsV?cvfVTxR6iW?Mnb``t>hGi&JM+!$hR*DK+6w0l^Sh{Yx!o0}wEs5;vSR!Vf
      zt#DfXM8a=0wX~Oxv?T}33Mfp{p}`+O8LD(tV2VOn{nB1Jsn+2`xk6PWmN2_ALp#h=
      z)YuU>#r<Tz5$`opG5NQ<=@s`C8Yl2)3`~qf5tXu3CJ{g_=4hBb1~$iG9VcNfV~(4N
      zUDlxO;D!JloTp<x7AREgGObS28cb4EP5sh01}wsLIu>EEf==Pqek+ztY}p*4v7CIu
      zw3@hM%hu~yno}G#QhWvwMx%xXg}KKMPscJeIab<|3CkdKDTNt1E5=@{DZk&MVTHoX
      zVuj~*48*KtYNL@b16YnzbexLQ6e_8%J=vcbG82}<Nv^grUgVCc^mK&<rM+Aq?Tq9E
      zMgN&Pn$hC8>sUTNMgwz88OWd0!dVIn$G4D|3}7|Z=r{+hOiV1@nz53ClU)JnG*e*b
      za+@D*ET7?I+L9vZ(6J8ZGTr8-86(b$nqFU&(e53WnEh7E(rp23!1)@^qw~f2(-A?Z
      z!sO(znIO;!(@wQQ?J;>SoY@)g*0B+r6#U{vyWOLW_2XSA)lnLH+*B4Htj)yY17<3K
      z&8U(`ua2#_fUz0F^lzYGWK3*t(C?~g@nahsW{qgNP&B>i7zH_R##JCUFV^v9DQ>@&
      zbPff{9n$;#$6#F)9Q%9T1bw|CfC20hJ#5k2CZeUWG%${Eak-9_De99F=@{G56P+*Z
      z4d4>QHSA`Y6dUQ0=N2m#k6AG@tz!r*q{>)gPja^zF)V59nZ<Z*&Lk4Tg|^0Fq%>UW
      z@`Y`y(}?e6^yUDKcI@jnhozWwq=j><hUu8qV;TLsqbZ}G&7YC`dlaVG_hZSX4c+-m
      zQnCAV?8jRaruGv-%XHxE*kcpK_7Yi~2$K>WpHEnk@)n_ux9NC0-a+4X#!}|`{ljJ|
      z9!u=rGR)z|LRmC6_oiHH%1b#~WCWEDxtv{L6!>`ZSU+Vd+5}93=w}Bi%o?vNg)!`+
      zPza7&D<qtOB<sBHL@JKLyM+!H9Y?spij>Zz;tE<kX$-WBk(yGqq2Mw1<!1c&bwRo5
      zkrJu5+3HFipTt$nJ%N$@v|7yJj*MlJE$5fw?z}*cX|+_~)A+20&k%+2<EqPF(Q!3C
      zM{qkkqU*cc6&4={jl!*#N?eQUHC)GWbzFCJd>%KrV>!1?BNOnVyG0h;>BP^-Po5xd
      znc-j5aWlT85RicvH=TJpr{uVEP8r9Saf*hou=2)}31Ag&)$vt%z0jz5t&uhb<ge-Y
      zx(!`xTXaKrm+<TX;m3oVo@0m0I4^1CPGg9!J9T7jUD4Lf=XOM8P~N5EkPvyLm5e0!
      znyEIL_2aOD@8Yx>-x<I+ai4~J`Sww|V{{zBw|G4*?-tz|Yd9laR=-X7{(&Om*(lVs
      zH5DV_Y52Cwk#gYNp}(dv<eZDmhje@g-zB9HiDC%?n47`J++}7S#3O>t_t?AjrDcRu
      z@5f^z^*Eg?NI90>^CxutK<1dw=2O}Ep^hI3!}@l{GwDIu`H7CF?4AC2GR;~mOG@B{
      zZYzq{u9>HG{6cDGvfFKL)}=6hrQ_Gqh?9z|m!;@6?27bCaT2ictE&Qkz_S{jQCNOL
      z^jqh==SIn<I{t{~Xk%k{PgG&$iP3k_ecSf)I{qwL%2-nx{z9%hAvG2F8~&l;?+T%b
      zsJ_mAIu5^xf0FH`8+u!#9psXR2`5G2I&<*?UY7j7qHtdce)xZMmFT{b`59-9P6$vj
      z&ZT=>u`mKX$xN!>To;q?r%Ab2qh%sbM%=(gO|`|1bXrPEFMeUdJWhc!ew%vummg`s
      zlqvEV#~t~pfJ})>uFmJV$W?{HcR~-1VsfbAPE0*uU!BJ1Wc&C^D)~6CU4a_@YX;AF
      z1=G2Ly_!iA9;%#$DUM?Gm~8}jFmwl|W)Zv|_fY%E5k3}n^0B0g2YMEvBUs+-3;MEH
      zc?7GP%Vl-O5v*?3f?5`5Uyc3YqgWWOUYkYx)u?S~_6Pl0tZ(*)f?iQQimnkXK8y{0
      zhq1YD6w!t(wp90JvE4DeJ&TJ*VKn;>W1ue-r2cS2W6(c}oy`@&in|aS!9qu8as)wV
      zWsRUJ=nGLWi@jOA^#EgQ#SOTLFKzPsHokm0=v>6e!TA@!HALZBqH`UB99WAe)r1>y
      zCceNMBj~~{*o0eg0f&Hz1GpUD;EhM9@lnp3$EooNj)EsKO6Iu-KPB-#g$MAojrMyn
      zNpN)0uEHI-jA--ifj8cXchQp|wZEHtWz;_j@8JzEJ-8n4!~2=HCR~LN&|*2g`4B$H
      zAC11$;KRJ@=l*PWbq#+$f{!w9H}lrVm~THV$m$bZdE`^tEt)~MXlj|qD<Z0s8JZG4
      zh)*5DH6FTN+u3k?zJ6v<14tx3JVU$B^8RzIlIQKn<~ds2$b9^LBk|&l<ju?Mit@-e
      zxoh<(qY_>1wpFKkZaRb!MU$&Knf6<{=*SW}a$C-kW^d4Y6g5&EjY01yZfC8OZ&h85
      zw^Qc|`S@f;9Y2@ZHeRBIm+8kV^y*d2#lI24YiPiK<U<^5ln3W1FV-r*?f<EcKY9Px
      zxc*Nk=7P9~T0%CuWz;c)IWK1n9{IlmH>S&7Btr!xgACw~0+L7JXK16H4G*Eb`tD+6
      z7c)~()$pll&{Pd7)eOv1GciZa!hBVWMQS$c)tn-vLwQdZ<&j=!SB@af?_1Za7ahvL
      zrm#1QdsNq9+|TZMurHj&(NR1+ibuN|>D2ex9#4)qDBDdlyV=)x6dJdG9Q57CWwk6v
      zP?_76MiP^Y*+3e<6PD+LS%;|%W-)_V!eBzERbia08u-Svj6tlxa&;<Js?)GatwOUp
      z9cOXf%5?|V>$#3_y-}S}l$K3-dfH^SgtAvYJ6H|pvB`c$Q0m<Rm$dMe*#*FK*>k3H
      z>+I)}h(N<3{8AwjKBl_WT6k0&0;(O8RR^Z4bw!xZblvdq_it>>1MJb?;&(QO@(ay1
      zc>}X4Zm+Cf8@8#g;vjy{YCVWQHG2=^g+6iQApY9m7Jg%n{$470vp~pQZAFE;09C3F
      z)m+!8ZLEmx1oJ{H<GKLQ$~-_TT}F|W!zi+H7^Q|?@G5&&0Q#40={0r*P;K*ln4RI_
      JXTAKXejQQ8nXdo<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FormView.class b/libjava/classpath/lib/javax/swing/text/html/FormView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7106e678b19679c45ab1280271b8ae8073fd8e78
      GIT binary patch
      literal 10767
      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
      PP0icf6LDpyccA_c-A0Z+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FrameSetView$FrameSetRow.class b/libjava/classpath/lib/javax/swing/text/html/FrameSetView$FrameSetRow.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f42594ba1c774cfd2d0952b5cd516aeab80444a
      GIT binary patch
      literal 1841
      zcwUWEQBxCF7(F+;n<dFs32iJvRG?r(AcSh0wqVr|p+*6%v9S`JaS0b$XOm?%8^QPf
      zkv{dgGfKzK)F057KKte`X?yM_jm#L(*_qvQzrEl0opZml``15zyaMnAHcUhW=APJ3
      z?fraf&uKo+2Xa5i?*t7uzv9~sS&>22k$aQ>FYb7ICUk+}cXF1zeYI0S^F7{0Ss)th
      zIIYQffyvePw^-!<OHR`XE(<JWJ|yAYJ<G0a$Y!uuo~{b$C2vc{An=g|69aK*IB6k<
      zL4mV<>L1EgNkbM4L<LT+I!(FWZfr{buD$6>zFGC^wp+D*N3FX-T}c&~{{Y^H&yu1e
      z(iIpvnh%fC7qDE<-YV@l?v^i`0^@xIsM;%bJ@EWzi__IOHJq_<7Uu-wk7dv;Cor0s
      zKDt>9<M_<Pguul6g;<!xl)yl<-B3%)kJQR0J{L&!C6~Z7W=v%Jxu;7&5uPRSO!*j+
      z3Cv;MM4noXI|Pdczd%#feQ5_A(Zyqi-ltn=F?EVxTKEbD0n?Yeu3eWQy>jh{4COqr
      zO^Y2rAeO6pZoARssSO`hi{!oS?Uv-!L|wqBtNGKCuKmnw2W$2d&oAyP+r<<iUdp=T
      zC|X!TiG#5>TkN5<YqeTgy;`=g629`KYX{C#se;!nlvU8&m42P45oheCg;lHxBs#si
      z^BwH=32(LVD~kuVPkU8%ZQ4?|Lpo-MHIdO`Tt(;++MP%vDfN#~uGdvVmZ*4bHePYm
      zhm<_*u<*}B^Ou`V>6cu))sjq39QuGT#tCWsnMHW<g9Qc$)z{95ipHQOm>{~xwa#ZU
      zJM#ioc2@fxC$eW=Ao*LE{4wt*!jxr}DKX_5KH+LCj3tr6DIi3jVwn3CO0%6RI)c;P
      zCU3Yh`P|4JV010}9M*G;X>)(#{5luOUSOx7YX#$1oSRMQDdW*gWFlCI=2FH?I{Fg1
      z2r54tB4zaU|MKtatfu7-aPckM^Arc%AlsW5;;<&Lh74}etG7`kzQgN2Dxr$&9acRR
      z8~7UEkh6gwyLyJW=UXgL&jjBrQkjk^<Zy||U`-3(ai5A_#+9zxzsW#xDE4?3x|FYK
      z7Z#!&c#Y8P!0!nM6g)keOH+3`nl{q|2e|Q8)QFlOeq#Ciq`E;P)-a0)xQd6NkO!TH
      zJt0M`Ged;v7EvTbw@F<K(GNsAs}*<{O2{e9@JObJ$2r=&L?-K}cnnkYOa#@C$vrYa
      L=p6oO$t3b0G3=+(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FrameSetView.class b/libjava/classpath/lib/javax/swing/text/html/FrameSetView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94563153c10bfd78203447f3f9b16804254e1894
      GIT binary patch
      literal 3609
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/FrameView.class b/libjava/classpath/lib/javax/swing/text/html/FrameView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3647ada861630da27554d95f4077756435ea0d69
      GIT binary patch
      literal 4334
      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
      LP3t{d&-?!e`KOfW
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HRuleView$Beginning.class b/libjava/classpath/lib/javax/swing/text/html/HRuleView$Beginning.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0bb2b9dd4fc3b763ff39f96b59384a2164335d94
      GIT binary patch
      literal 850
      zcwU84T~8B16g{`Q?b@=IMf?N{MR}mbxcXdzi3DPk1`<m4#TU0QZ3nm0WOpk3C|^t@
      zCO-HB{87d`L%SNm^kL@SnYriOb7tn}ukSwqyvB161w!LI{uEz^*@aYtP>V|)4)rJr
      z-yKg95lL~e`Bn_1Qhe&cC9K_EemF@IQ%zXtr6T@#)bD3P6R1rn>7mRvUlBGsb9%K1
      z{y^w`bvDC0TMcG#_r_<U48mO>MU)7O9jV0OWYiPsN!&{W;a+Ea8YfYlO0%ABx~4N>
      zdtTo^9$7(^6?Ao+>Y0Ypj#N_b65edhBWm3&*iXbrDBWr|BIDqp4-a=LaPZj2GM*4>
      zx3JDYjfmih>jh!u|Ank_Je6DNjwk7<IFRNBs=2h62Fv%`R!XFMNt|UO^RPi!pW}&8
      z&aVe`w&3vZDe&Nz0D{2y;g!QDWmI@xu)nLo8Q?X)!goJ>wvZ~%CA;0lBG3MH2?8u}
      z<TuRWAxCpoH1L1H@Bac9bMP|mPr(sayBve&_7xs9Uwp%(X6*|8mz<|+Jq#J$=avJ@
      hSGRk?l+R=<ShYR_Jmt;~=QYc)hINh=E3uAez;980zQzCm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HRuleView.class b/libjava/classpath/lib/javax/swing/text/html/HRuleView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f46068aa2e2a19dfdd4685b5b8e1592117e6f4da
      GIT binary patch
      literal 2341
      zcwU86U2_vv7=BKhWSg)pl(rQ6MM1<Q1>y%rr9g$!(qIeNVi7;PNw&$-%_eL%wBQFf
      z2#gnwUsqn}IOCOr9R#PK%y{XAzrugvo#S)PrrYmvXU^`~^S<YKpZ7h_d;a?O_dftU
      zkDD4A1om7pt{Drd>b&I?Ql7csrHWq3PK{00Y;)Q&=QV@``ZssVIJV^|FM%efX50R>
      zb9{rlGz<zv#zrz{#x4qo40jyMal7T65NM1irUgR7<-8e%K(h`FO#<7;34g9u%9`#)
      zBWs%iJIBj8!=5%=Oa9jvBgg76z448aM{KiXI^JMnI)+BH>DYl*hVqJ5RbcN%|FzkZ
      zvu64T0$p393$zqW@04pAbC*o3P^5Pxo*5lYWMa&xTSpIi1$6q1IQjFlvsKemSu67%
      z9sSZQA*MXT^_Cq%#)4$oSSj-@Mme)hM<84=EXn79pKi*S_fltEqf)eT)xnjesiILa
      znfErtk<^f2fVDOq12`xUmCVaEC(j_e;)xZ2Ni*jePQf+@qd1J`G^BU{8?8FE#KRH`
      z((6SXN7UbS`Ipx5viu9rTY0Z2S6<a|RIWsds!WlgzoDKOPT(~SL(3#>LZ>DSuc+fB
      zP7%SC3|W%+>BQM6PGeNV$m)!S%XZn-aRy^_&e}$9PGHCQTJvBGXECnfb%E9mmD4eS
      zb5tcOubc(i;_LTI5uL>a9dBTgu6fs(mlCB&;u$`PY02!OjyENXs4X)j{B@S2K)6j#
      zixy)IPyf(ZpKSd^+BZ87ZeyQ`B7<b5=KQ|vB?(Gyi|*6FNQwW^`~FjA!Ezj0r7&|k
      z@?dr`soUi)=!tI<VYv@tm_b4I7^w|y(v9o7Yipp4ybvPgdLzirm|!!MYNe@);Yb-|
      z5~Gr0Nr!{7-&(_E$75%h?m8U@>!f!TRSoWH9S2q&p6tRVB3+Vl4V~@>BSdp6u<ffs
      zOO>+Y_x=uUx!{_!rt6w{Nl-Goq2mfD!q`-~=H|>%OI}qiLGFho5_xAFA`ja}wQBOT
      zqe1<7C9vPw84Vm^MEGu!w<5pt9fgdsjeiM#<rCH(LjOf=Xi*I%H=aZYX>6~<2zmL{
      zx1HdMT#F<J9%1MDeHDhhs`l;jz0i&h6(+)!PGSh`##42y0)0aKc6NV@_T&<}IQsIT
      zAEC8wdwj3)UI5;rGP*$$9}@0k6(H$v4FYsxFY^;>whvFM@SWJtStD1U!GU_ve@IbQ
      zBX{sOJS%YS(62a@4)Og$IxOcLFU_PQa)INOJM9>p<0w4F@w+o=ZQuchmyj9g2z7*S
      zg+)iCL%XGkC7h>WYS|!HxwKN9B<llw$|JagX52*^K0_ZqXN|wWaeRsM_zKhb8d-d!
      zlAH7?2Fc}Uy`+-M;VoPys)l#*Hr`=!&9w0*WjWe#LEfTFun!}&H?itz9Kw4_0s`;j
      zgL)C>=@aI+cXicUpJ3*4l7HErN0_~zyuYsg-!atp=*AC<;t?Mppx7JKzZVu~4QjSe
      z)nCr!NrY&pxa%Y;b*1+4_;)j`J#p|)=yI}z%I(FSwZ#X}Z!ZQcx|EuKBFa7L_-C?N
      zq^RywP7f8MejhDh)K_N|rF^e3<p$0dg6KyBA$Kp~`bw0D%HhctBK8p*s6*-h5w!@_
      KQ8OH$0RI6r6YRVI
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTML$Attribute.class b/libjava/classpath/lib/javax/swing/text/html/HTML$Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25f00b39294d54e9cb62717be9e30cf7f41af1cc
      GIT binary patch
      literal 6257
      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
      XKPK10-%INLfZI9GlH*VCPtf!q-!wqg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTML$Tag.class b/libjava/classpath/lib/javax/swing/text/html/HTML$Tag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2682132d0b509bab5b793b191cee88b7411052c0
      GIT binary patch
      literal 6702
      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
      OicKd%yeZy>;{O4iZ9Jp^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTML$UnknownTag.class b/libjava/classpath/lib/javax/swing/text/html/HTML$UnknownTag.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ed609566277e9c828f5f924e5234964e00fc25d8
      GIT binary patch
      literal 546
      zcwUWB$w~u35PcOVi3y2`(YV9~1jP*;ym*PkLqv>>Ub5U2I<ZMwCp|bbG2&kdg5bdq
      z@akXq5n@e8@F0qZuC98#rHg+3czyw}i=`xDgtaSiEAH%IsC3s3<y~m^!oF)CH%^_^
      zroPtRP&Y(335&4&2i0&Agz1Q5E6=V=UkO*;i?%BX`M``V=?BWw&DtS>P6*kmr-M-F
      zuqE7qjK4p=?cJ1`2ZY4F(kiSFiW`n`bOmSDL!YC|n=OJ>^)6)^W5{QaL6(qnl$K|M
      zep~vDQD(vMIvgoDnCCCh3VSLbtULc&yUYSD`o`?XGYILrH}E_1NJY-6NV^lU2$`DJ
      z(yzKA2xO4N0-^MK9{YSJVg<xo5#oGGNMfAt6#rKYY3?Xmmg@u~6~<zGC$_eqkb5wk
      mNv`P#wayW@E>PfkX2il2rUBCx86!q#jb;w>MnxuZ5vfnMDTBrU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTML.class b/libjava/classpath/lib/javax/swing/text/html/HTML.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..26fdd6560ac670de75208da502233d0c16705383
      GIT binary patch
      literal 2647
      zcwVJd&r=&^7=FHFVUw_JX-iv*X-kE+3ABxrs-?8m5Q0QPsE|-=)w;koEQAdv8=xK>
      z4<5Wa<2X(a&Uo^|!5=e}>P)BOrK8@Rah#3^Fa8zk^KH`nAP8~1>^JZ4=X<{QefOuo
      zzIzCu5AUgP33M#zEBaa}ziL|PkZr8lp?P~L6B<p9$5ki-t<oOK=(JAEEEu!4KwBae
      zkKYa_lasNbR5E&dIvh_$1rEe3u2Xi7`342{M6y=i)-8Kl&lC&~yaJxC;pj*>6;BE@
      z4^2kHV^abm<|ZZ~&@>dEh>S^r*tF}D(UFPCah8e>OC9ler*0;aqtRq6A{8Fyu=Vt~
      zzAUh>SifMKnGh9&($`E|x?RW_0+Cwlm3px8e`lgQsiz08F{7&6cFw65`(OFOOk>Uz
      zY{SXge8sd(`<j3|5S$iJBH1~^2RDvsIEoH=Gt)8>g{2uIm(*u6hU7Xst7oS5oGIm!
      zQnBaFynug)!Yp<$ZP?*Vri@_BxXYkmAb6`Wz&@P985O4mx*PG=5I`5(XiHU=^c7X4
      zmO|Gq_2mQja2DrPoD(>{v!{k2dPtirP<2g#%Ypi53O06aF9a@VID$467X|iLUO$;L
      z40eDI{W#{M*NYmSMVF*$K*ME_a*v%Y7US#$g7pwua1}49U<2%_X(|mbBh0Q?E^z8D
      zRbwxX;$XcdSg-OSf~bn&nprMZ)-WRRwb<EscGbv5^t>UljB1GCRTd_J0;jhryiJ+n
      za3u64c4Ctp6Ta%1278JNz!Yd_xtL`eX(LxQIctN{7N}2D_L(y528S&cjJ04ANfq2V
      z$9Bx9Atfo$s(VPz<bb5}bqzNqaS9DfKHS1vD&BnB6b>n+duVtYx7h&8dM<BJCva%H
      z7L2LTIhhqhbZypHw#}@?N65=ZII+w9x$N|(GM}t5I(WS~<Bnd)*d?09O6?jiKW#H<
      z;9v<{{I3%v2UpHcM#Dk0$@w@h=Xika!o^)|7sYmVz{y=V0GGy8wvd}OMohWzywY%9
      z#_%RF%VGy-^n6|}7jL-2hMS=()&x%NkUnKCTG>_0xumZm;3N^tKaI*&+=OOIs{A>@
      zgLe4PQkFH!d#dEUl=oH1t(5my$p;usLMR_{<inJYRLSj5Ev|olpP{Cor{LMtb07Y%
      z9hc+$`goE*D9S2MP}Yi0=p=B!D>qRoLAPU}^Cr5#D#yzrP~LZ9T}}j7XMIHP)`*X)
      zB0_ks6mbuVL)P#&=zEO5@6mtrKA!&;eVce8?!NjZ+G*(ZU)aDUejnh98#g|534iay
      zFaG|Mrk)K9J-{n2Ji@6;#p9AP<zqA}pP*Iw6m809II7%3FVBn0=MIw2VqJ_8A4p>-
      z;ut5Y!;DUlb{BC@;Ccz?2b2|_{+`|kc+G{xxyNYoub<n%^agHh;*Iqi{&o7wM?8vm
      zN;o=XZsj37$|GpX57?_bCXOG`q5SM%=qcvJ3}zkP{FsB`aOlS!2ZM*m(wHY!FH9`d
      zv$j~x+Ttdbp0c*+ux4$?+F})JXScHU3t9V>to=sTo)GQtWbFxA`=f@nY?-xXyj#PX
      d3ppoa9=5}Po4+-I0$DlBbA|U<<#`w0e*mXxf9L=J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$1.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d384fcacce8baf2a043986d72d4274a2a58b7f7
      GIT binary patch
      literal 1352
      zcwUWDO>YuW6g`j9j?n1<)mp1<#X8mkZ7J1Vjfu7xQBWhKi7WGf7Z@F8%*;dU5Ap|S
      zVn|%LHg43N`eTguJ+O*x3X7S!-{+ot?|lCC;Uj<owhcrW>}UKXKgfr#9Ius^;y~ux
      zvg79O)+*&aztQaoPuc|oQHG5%B9-!3@TLeDrexa*?Ja^RkIvko_#2Mr$eRrJ*2YOF
      zl}aas*)`tU$?P*kcm1Y_fnnOjB&On+z>En4rx+4t#}f~_ow^8WyzUBy*|Oi@?miD3
      zr4Niz#e-pWjHc`Y@tC%`=X<X^em5lYtTbdP3~Ad#+BJssC`t@gn|n=HR3#52Sw@UY
      zCmr=yx>Aw5C1v2$yHZpI4K%YK!v!oESY%i}xul6@%+qLYKiqqwMw&Kp4hzIq(!-A(
      z)^U&w6EA$4t=Z>P^qQKHJ(3ais$kblT)`?syy|y@hPdOXeWm{0$fhbp042{8!LG~0
      zP!L|C=rvqFq~aAJ+kVr)Cd10;{hHVUZE&_FWXTIfASv|Exrb|GT;x%I(G~ifGbf}L
      zn~wB@`;N39@ql1=x$D+><M|G?LnEZWnI)6zx=B(RT{qcdB(=z<tf_47J>uEi;?i7n
      zVX_DFEg2)Q=pCmo6~LtN2?>&}Qz1$~k{)Pj7N>Pg3TH@~(9#@9Q7xUtJY_Jo{{iSz
      z@+e;-_YUXZDA@I-9xnccv{Vt}3k>5cEaRJo&Gu6cVH3DSg_)LCa9KByfUO%~YU=~A
      z8tJMfs}B|<jy+ucAL~0|{lJXzQ)8w38HZTbA(o{PBIM8L3R&dzh?w?*MzK!sC^nG)
      E4V~;rfdBvi
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$BlockElement.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$BlockElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6983d22edcffe21a4740bc3a87dcaaa38574683
      GIT binary patch
      literal 1326
      zcwVJcT~8B16g@L7Y^hr)ABrMY(2D(n1wWpOD56G_7K|ml>U5oy#qF-yog)4#H4zdY
      zeAL7rWxTU&pwgO>m`!$P?wot>J@@SHuixLk16aX*1DwIy6Z_)83O_hr%Tn?{S-Yz3
      zTF<xZwI{yaX-iM#AG^N&?x`#F#z3-P(t0ygfw0wSP9QvcH%?+0R=ZA^UuMYH1{bUn
      ze%0|DwZ`zKaGr!-OkBCo$+}X3)9fhOkg8hTVMuQHZ{-LWE|?g?a2g3@Oc)qtc-^P^
      zS*ib5e5~epa<kKJ%3xbGUCA&}^KIeoh``bNIGEJ)V^}%IF#fVjkMg|;A`fQ%-6#VS
      z4A%$r%aCnJ^-6}myDwkHtn-E9z%+x>Hbt9sOvPx+6@+aN%4=0eFpHdlYt%sxQ$u}p
      z<%aKtN_Z+XaUF9E8BKOlLyzo~bE~;0ZB<Q^pEpe0M4rK<@?GeKLNC17k6{4?1Gh=_
      z*)tPG%rK;sf2=^iGG!B2bTFYri~RB;xf8u&8PW~E6WH>Zqm3Q!wr)wIsoxi#CxZ=F
      zgrN)#+$AN0ZKt$u<1tSINYIDQvRVCB(<(s`11Y+X&~6J!x`0fn{1xd^xw3c!^D_lF
      z#^|1=CwLJ<ynrn2=OVHU#xVgzt4U0046QEWQbazD%Q1O{o=kJGPbZASI>J{XHuLy2
      zW@CDCai*fEu9Pc%!PP^|*I2#$1F7;MZq+M4kt!XbRIi+}=13BF6)C=oG=G3mzJ^Ku
      r5Yzk-X8C$o@42{Iin^^(jEo=!i&!Ei4l80@rvIYWuDid3dtiS6n`cqk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$AreaAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$AreaAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17a861a47201e8898acff1d01d5ac251f8d2ba67
      GIT binary patch
      literal 1106
      zcwUuL+iuf95IvK)ahn*L1}JwL+O+CLU=^tXQ3Q$#h)8K4Xw>(Ovr4vd){(u2Jo869
      zAS53606q#a>qN97h+tW=&v@pXJu@Ev`1$QSfPHMaC=i~Viw|P#Cm)sW`$mq9KQP14
      zf7dx~zm9@*D79(W;Jp+*88@1-6wSb>NV{+dPxG-mqCX)MN@k#v#y-Js=h8T2>I<cn
      zc}aM(os+wBMsSXzo?HT<;$Z=$GK#q3!NnqBxvjK3Nrzn-cSJXogjzcaM0h4*W#j2f
      z$66;m&v*Ex(Qyw8i4n0OwEoqCo!8-P{x~((NYj{DbyFixrO7%gzZnN|WDiJOtP(c+
      zI`xB4B*{pafqxR2)^HR`>r3{2*Aj?*)aTjYGC|n-KR1M;)IGw+-0m{pr%@UQ@~yJN
      zUAa8I$Cgd-T3XBa$aW&RwTFa9xkm3|gRnlI!d5Ow99(=c)Olfw{M%5qYPW`wjd*ML
      z{Su=C6!-!vyL(?y-rf5O?=y!5T;+R-i{NN1GxjV-1y!tAIn;2CtFAM4IJ%LEy_(9?
      zpAzFtqCQDZB`ms$TbV53HtsNka2NMxWDhd6zsP>dWLGE28QB8vXY~)T#?Km~I@ZzP
      J46h9~fnNn-6C(fs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$BaseAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$BaseAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cfcdfed6a1069ab29a2317986889ccaa4cda7091
      GIT binary patch
      literal 1330
      zcwUuMT~8BH5Is{$mu^=nRjA)qToGDe0Y!{8CKbO(iY9a=@$q)KDNEXIvU{uiBp<~{
      z{CF@v`=g9=+onZrihbDKxwA88X3jnL{`~drJAhSe7>E(>ABeZ&(23spLCsO}P&xam
      zQFmUr+vO)suho!&vh`v|iai<Hk3}R)p7NW4fjD7fv}{+@I?05D+V>-SmEe>|!YFd;
      zLqG7<Bf{GJh`9^9g!pE2PbNV~Sr|vc#2C(4Ffc)wEc=0c*=kf}=!$Ax5;EncC+fQ*
      z^!2*yjO*434@N6~f;ygIJW?W5gsovCXugX7{@-pX-AGBP(66?XtVqR^nV3e_zzkt&
      zq`oX%z(vA@@H`ns_6p(k$h7`Pd@+g3xN6`E!5%VkZzv1baGm$sE$uvi>JsLL@zl#I
      zrf>r{4a^RzGJrP=Hf|BDnp8bE*Xj`9)CH%$svbyBb!Ys;W#Bd;-FH_QAgCp=fP#TM
      zVfJ)ZEG%M)U{+Zht_Zmet+~G;Sueyta;Hg!!^A+Q1}TQCR+_EQlh1rD>Zy}$Eo%g(
      zWh)3|xLFrbBw6rgf6IB%mosvFn#TA}p>$dwDYjz#@R4GFlC5=KYfma)IEI-oe1>(@
      z4m!*41P3Ah9+PZa+C~a#Olde|aIOpSh70Ht+59J%UvPf$BQAYKE`}eNJH~t;&eWCS
      tA21U?YD4BaX<bNdEyHP-$zp|XLEYI}JNpjq@;AfQG;iTL#}HfhfZwHWYw-X8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3a80c00a3b0bc94dcc1111b97de8ce24a7dca685
      GIT binary patch
      literal 1103
      zcwUv0Z)?*~6vm&^bj^}xuIpUq-`Q<-Zmk+N5Rr*cE8-wiaAogr)5{i36G?7$UrW#l
      zzVHM1p@!$C!4(l}2;7`=bI$KR=iHN@7vFyX*u{>C65+`^@ll+)>8Bt%ag{t%?x`Au
      z?yLTx_agSkBN?fdcHT-clu7G(82j(Lz6#>VM49loSbATaOp*x|bsD6tU4rWsV(fG3
      z(;y1eGs50>!Q7o=Lb(?Yr3FIO!5k_!3@kV>F;7_Zf=Ip|j|MX7i$N#}buacscr21Y
      z`}t;BODF6XJAAr#T*O?eM4|`>|EfVZ>@UY0j+Iu@RVoPvV<nHI;?iuaVAVu}@Su<|
      z2iLGnum)P+n-7vNhgev1mM#txgsuORM=)eGBy7$scTz~x!8+CmcBZNq#wj=6K8nYQ
      zFJA`w7M7;Vd8nZT=OBt?(hEhJ%GAUbVPkeHn0wg_9*e1aVht>ue;2CN^sumH@D2|P
      zuNHfcP~r!uwmV;8w>#h9d}g<VE4)@X2*v^y*><#zDr#8LIMlJ6BRodxBkcAU*q!_5
      zxOz#jHQZ>xGFCH6a}t?Tv~?XfGO~@ExW&<g+gQuV-CUfNk<W4GPjD0S#(D;BOagy{
      atsGp!MwYXQ7QgFkt>7;1@fTui8}thZ+6^TD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..eac8191165e7c554f00cebc4a6917d55384ed34d
      GIT binary patch
      literal 1544
      zcwUuMYflqF6g|@gwvV+y6%-%Hqe7o7Ac$HX)}oQ5h_T35Gu=+;V%avkQ-%0{{4PNa
      ze((qQql|ajrYJNe%_h6|-kE#uxp&U&?>|3(0a(DM4j;qX0sqL4Oz)HJ?3+>?NwX{u
      zE9R@+?fhodsvinRMwRnc@RD$&xiWXTC54-{q+NA%^f9dT2C>Wco5>6VvTS?N1qL(U
      z6GnzoS8d0Z>kNyr9&_V+41Kw3Nd&+UGSH8KAT(Svpu^8Fn71AAx_(#`?k+D@1VbcW
      zwRmNZySDOM!9GQuVWYR=7w1Qf^m~%Kl3}Y`A8Kfs%j?^9sn}$tbnRkYih_{TUJxU=
      zsbiEO-4i(jw=hQS*6Lol&9fknRl8a&z8An9+|zNFVZ1w21LL^Qz_JVzS2Y#DB&Kyt
      zF+{uUY<FlNiU$nFo5G8Cn>+7w`D~%UFw?C{J2&IUEFE0Mc0Pm<M^Z<kQ`HVbHIPD@
      zs`65)9cGwqo|swTl)6(q5SGkbj;Ohfz%(!q61v}_!77Z7q&uCbqWaLl5|$alR<(BA
      zUM2ZW#^RSz{!6E0AaOBHM<|>U!}OIhYYHf1U{$GMxK^!Q6hp93t-F?ZX)9;=Up37s
      zY#P*-;|Mob;hrZv9i)S)tCdK&=USwDc;Tv$PN)a^bFrZzb!W-aC_;CZ-U0HK;iCr#
      zC6eC|OeBB6_)4x1VR{eHCTLL%l5Hp(Aq-(y!6Aa{Er`zqsY;|1rwD$>jpPY#e?d5P
      zf{Dn?8DbjL!YSsGsWU7xG(zV^Mu``+G<0nqVQm3p+7eRQa---(6S!4WS&wkPK_rb8
      z`WySmevBtABG2fndhs`jJUy=wRB>&MYOFVKN1OZFxc(Nd4{ME_b!^Z#Le>bOKBpB%
      HRu1ehhYgHD
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$ConvertAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$ConvertAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3bd220bace558857fefc604e3149b714dd56b70e
      GIT binary patch
      literal 2417
      zcwUuN+jCPz82@d$$!U@Uv_;UMU@2*7dLe*fq2baPhz+KVHl+$$;pAjVPEB&^$p*nE
      zUYzks8Aj^e@j-pJgVp-r_~e6sl;gKaCTU0{&15F~?RS3P{j&f3`^TREPNAs5#SmFD
      z?ihE&<qxe=E-b}e8P3aMAw0jlki2Z0m7*xgpt>vxBP*O>%r4y#j*ObpvP&8`!%S}q
      zmW^CZn873SRylZzA)M?<M}$PrTO~_gWH>$Eqikq}fyeBu@Pfgw!wruQeb}QzLqEg5
      zq*W4&m10IX%SNUk7>1IzX%tor$5Qt?lPlL5F7#%+HG33>yDSYyG9;cBg-ThZ{rf^i
      zDqo^fI##A4MOsJ-&W8hdR>MJt>7HEE@f-pa?0Th~kL3-=Fr{$P@}3H|Z#=Z(CB4t<
      zcmanQ`b`2Ty9{Hy^UIGHaa6-FLvS~E9V0l#u-CNL?=|?8?xW+Oc6)7xMs<wgID>9v
      zvyG1o$7?wb7Yve2W!8i#Bki18217a~FiDXbrYXwh;7NvSJvZ7e@DU%T5!P^mVWc}+
      z$4St%?8ymPtxP&E1T{~vQ&y_NO;p5-mvBbI%M3@J-f22s!3;HcJhiyYFx;&#y*P)6
      zhS^S)Z6X_G&~Y9YsPAK`WNN8n`*aYhR`rsOIYg<d6#b5>j&-PNsGX%D#xT%ir%6F6
      z=fxGgrXkL7tg|1nbh_2|d4|#d@wo*{g}sWThSw>D-D;y_0gJSGs9j0Nj@WK>Xt_?)
      zwJV2`PX-@RLwyc!=y+3=gvX<?D=Hyr9m^_Czv_US@#sP#d0hclbi7psrV}@+!0S40
      zD4@3rR9spW(#R3SkdnsLSKiU3Bi(zH`ogpewxf1#o42I(wqdH(Tedz@OG%WnRJX2+
      zvo_GTb>!538(g>7pImRgv|Vvb5x3N3aOc3CP`at*5~Y%GVg;jIR$Iu|9C8}QmX(fS
      zdQ|%8b!7ts>SZBH-RNZ@zL%&oaM2I&PfY#_-^Ao^(0`$;3w!C`Lm==^u#ae6(ePsc
      zgGwESu)n5)&4H6bU}NGjd|P-%9glHna%vk#7`74YgJS)T@hwa(PHy7#&nQf7;_Nmq
      zy6_iXo#g@kH}+501vhayz_*YfNU8yG2iz@?rGUEzxz>Pq0-hGg+W`+jn$cV(pTR$c
      z#y`U${s5!=A*T4}nB|XfiEkjqzrZU05*hv#iu`NXbUOSS+~?ooWBwf;@bB@E&PV)*
      zYDVU3QP(q~sCO_^&C&+m#bL5KiVv`g_bBDF^z9~YQKnXL76wsn+^06k5T&wgB3m!W
      z9G$8l{k3e0rvE<0=RcDFKUM7?tl=8=`|I{y$X8`7tkF3{)B#%R@6#7XQ~~%874D8~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$FormAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$FormAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9038189c2710813d4f7bf90be0b85649fbc5f789
      GIT binary patch
      literal 5253
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$FormTagAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$FormTagAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d96515e8cd757b46fb2e7c5a3aeab9f779d016a
      GIT binary patch
      literal 913
      zcwUuKTTc^F5dNlHy0+bx0t((mSQ9Og4J1Ag)I>3ON%27&-cPqD^yu~+vU^teTP6?^
      z9{d6R7axH);+)b1d6DeHZf0iZyUfh~K0p2iU<FTnlnCqJ#1F9_WqV5RL{{$GXkdp)
      z^r5@ed1vB$D76h;@<ociOv6o+4!dIKO>C9XKFWl(Vgzp!6Mw&e6DoF~vT%hEbqcYp
      zGxVj>%DyJ7J}roSwoNE+n7*unP!BMHN(~+w0esvbOm>u(pYvf)rd`oXBw@N^Vv%f%
      zRJnXyEIaFjSH;Ay?vKatr0x?I|2IR({cPHKycJ*?GgZvtj*r`f=Y_-r+{HaY(95kg
      z`h9BhU7lcOBpu~eF;HZKEwRhK$P(tSGexL<HF+A#P32ZH^{?)-!?M^%t!28Ah%A$t
      zj|IZQ^`4pc(lw!RWoek_vw8dnQ>*1}$5DwNz8%-A9KGP&RqE}fL)6+!M+kn7nwtEs
      za1*>gnB+KcG3sbx%F(&ijwwEkDVh#_vweUX9b)#9rRfZKCz$X~(eTbjY_k`LF`J9-
      b;{o%P@Nk5C#KyrICBEKcEb<rPC<Oij<n`yn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$HeadAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$HeadAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3041c702579ab653c3702f746bd04df5e4dee7ed
      GIT binary patch
      literal 1714
      zcwUuMTT|0O6#kYjL_(08^$Lnuv@K}FI~37^BGrO36nPKnPKl-|lWY`x_K*1FvonZ}
      z59pIKUPfp1)!(9?O*@qF2Axj2=WM=n&UbG4@Z<F+fDz1UXkxf>-+E}Rn!zK-E16QP
      zN^@D3U2|q(Hh-gHhh^c(gi_{(RTO?=hK{T)or<S{GmJK7J?U2L2UT;17P;&Mi4g`f
      z-;kFKnT|W2BPSTnB^$I&Ei&+_N>Q|eq0K-uT6DzFZa~8xhK{`BiMg=6B>V+y$rTLU
      z`HF41i<a*wy>`hJb%wFVf^RDx<<J~R%a;tf|D}*vuu7Rf-_M3p5y?vFJ4>My1tFu%
      z^qZ@;SWy824f`1eOI~Q&t`!6;mRvUHDl%7IafRX~id$G!fP)6Q(Zj%qQU6Ya2xc*y
      z+#N55nDB}WCw9y;wb+V&3}`scaJr$&8aROjjYS~WTtSVAN1@D6I<A@ZeQPc61Tv%J
      zB$66VG4%Z9wSg4U)Y`y#OdXCTQ#pknHgFneNG}PhOgx!ORb9Il@w&ToU)VCE;VeUE
      z{klNednKK6IcMNJE->t|Y+D3Df^hd5p4eUBDYZ+uqTw>bz|Lp`qZngor<4k+V1;F&
      zl1n826{?P+K;xLuaFwQHC#->MxXz$i#o~OZwkDp;|6U~OxthL71AREk(CUTdLam1^
      zM~@Tj$y#+0|1hS3FH}O`7SoPGbZt-aj6yRQInNXRlv)AhRIe9SDO>wUy`mn|XOVSw
      zs&4{GN~3QA-M5l-5l!?1+R{TWpr?mk!gx+<6ZX=73xUAb(Lu7IWVE3ZUCN!>Dnjie
      znUfZeoaM-Q<UTz#{1ON1j&v1+Z=!|2iJbM<SX7-U=@1S_0W=&zFQJ(#T#e%k(wphL
      zm0pLwj$`jIR+Ba`cr`Zh41+bjZv#VbVUBU7zrx4{E*|0=$UKR$zTT%lzpMPRby@>d
      z2JrXL`A5Y0CmiOVk>+18N^+Ke#WepG(Y;U&zeV>}jcy#nn8FS6b^vMIBq>H`2c`+Z
      Z>2@ZHl*4U0yGiP&X}&{tG-SvFzW@sbxLN=J
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..17488d86e2c4891f61a520770389b0b3ac40bddb
      GIT binary patch
      literal 1106
      zcwUv0e{0h~7{|X)n>9<CxvsPI_pDo;TdRf%BDf)xifoW6xU&D#<k+&Mi6j@@+Y)qw
      zfA|7?QQ~uHa8tn=0+;8xd!EmIpXctr|M>b1z!o-jR0z*c-1qL8oqh<SBU_3yX&=i;
      zXzz~potLqfO++NS%6ThXUnJe#!1qNo@MI82IyAzwa`_|oXqrr@$>SjHZV_y!6l0rH
      zcY-L8F9=UIO6G1J60~9L3j>6@g*ntrRIy+|$2?)t2_o@2n~X&=a>t<{G@aOU!$UU-
      zlwVA0N;+Yu+~&VEkE@tVrJG2?-oJ`a9oznUeLs^*%0S8_7-v!(2+6gXXyKZUHsMhz
      zWfrbunP7~=*gJjmPVngv3+v3%#bGXC{r}_<sv`0UYctE87SgeB4=V&SS2Yadlsj)8
      z#988rSAjZ)rOV|!R#1Yq7eyi&hHjdQRL44Db#^P5d(jMLTs|lk!OHo?P@|!)3tLs5
      z;p@Vq!QN9;_yg*_{%4rI{ufvu*{$FTk2Ma0R>dOQma<Vt14{~rCYB3?!$`G-+4}^u
      z|L`1FF9@cBYZeS`A*Xbvkp)FrH*hm2o4AGB98I``m4ZAd#2GpH9C!Z&w=l1@b8vea
      c_zP?l;0jjroHca$-(;(W`*^@B#MTDrCy|*B8~^|S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e203cc5efaef2e6f1acf105572548498139a09d4
      GIT binary patch
      literal 1202
      zcwUuLU2hUm5IqCiuE5p;^{ZGbEeqwN?Mk)r0X1o8jU=E(2#Jr&a?`FZyJYvG{4I^r
      zL=%62KgxLTmZXv<MPBaC%$;*)=G@uee}4P|P{pB&2%+}D{A7-e;Ir+X8k~)}amELZ
      z@v75m9(&ekz+A3N=N&Wq%-0)%?e^LD$l|u=s!#||7bEDHrx#$tGC#8ey-F~e3vtv0
      z^qKA2`~~5lxFELFB`9^T&tf1XG%R5`jwn_%sJKB`ZQ3q-JsR|w-!Xd*Bcz+2WjbBc
      zx1~P~DzbIL^TmqKswc)+3b^TWLgTtAq-3?L_pK3^y&Q4w+r1HIZN|lLG2F&o6?X`m
      z*E4FkhjoJ5XuWMVPL2uLc`c~8Psm+KYTJY1Y#VW8@IdOhNr)Cp-8iz?R<T9cTSzVq
      zIjj+4J;$>?z8NxC66G}%WHe>=`|TmKY|}Y$m_*9kqJ|R6gm{RlJ6<3jD>qkNxfCSc
      zflNZ-|D+Z*+TO^w*h^b3MC#ue_9X*BYq&1+>y8-&EKqSk*q%SX;Js9UurjkU*b++{
      z6@M=!lX7!~6%i4!x#Elo?@;&=@lBK~-w`iY&Y^t?lWvN0StLQ(z^bq{X(NFoQj!j7
      ztW7CAC}D|w`5WS2aqA~C@6WL@!9y9S>`tIhZzkBeBu@(%6dfrgkBm})uIz+`vKM62
      iLei>WJuIHbF80EH_d^x~k3yb^z*O;A<cOuj6VP9ih&V(5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$LinkAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$LinkAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13c0d25220189210a8331c1161db099c2ed2eab1
      GIT binary patch
      literal 2414
      zcwUuN-ES0C6#w1!&dzo_ly=L9ixsh~*iV*%DDI-Q(uJ<hwzOSZKoDnVFYVCnY?+yb
      zR-a6K^Dk)91fS#?Q(8X~V}e3rcr)?Eq@sapG=4-A<AWidyDi&7m*PIOd(OG%{LcBE
      zd+wR9?tbzafDXK^qJrVTIpcyc8F4RK_DIANlU`)h8_!01Qc1l#XXeL+?S-W>AdHM~
      z!n$RTb(x-(vsG}0XnD~+Rwg6trFaIPH)^@z4u*(c7EFvn4_db6y~MD$sm$2sAqIXZ
      zml0K9sMess7eFO8Xi(v2*hmCLZ+<*2oRpEy3WlJbGmY$!;aE~%HgZ`y(JwFgs_qd7
      z#q|uwV@Rw=A)GQsVr$Qnc~2J7<#~>k&U<1|c*IN+*{mUm`YLQiNX26e;dQW!;TpE#
      zablG^aWu}bYrT4kF|leqfhSdLFO{Q2eHwP)DF$sscttbiS|T6G8Wh@>J||2fveu+x
      zCqwOud5{3?5kH=0@D~!At{Xrjp3%^RW||LiK5t~{hBlYNKPlVOs-aDit{jN#Qs1p1
      zB6TGh?@n|{ONWNN1xqTC(&K(SOU_0%EAu?3;dvaO0rGNs?xJuG87`68)U>+vr5a<>
      zJ*pvwgAA%=XT)UR*$3)c_H0i0K_l&RO-BgZkCzz&t~Zqx?x+x+tmqXDhYA<fGY~(l
      zg6>KypxDBT92?LBID&+V9)|X^=2F9}c#S$~n5J;u@E(R^Wk0L`;UB9)5`8Lq85$q$
      zt>Gy8sby(uEpcP0(N}Y&zIJ0!zS<PS&Zhg%O7wO}`VUF};fHjeJd!w};Ur#X*g#`C
      zD0@FBdru?Y^e~1iUR2U)oKf)x!;VM!YIqX{jkGmBk#p|LRQCWES(gc+BEwL>QgwXN
      z6ccijXgG@zT3i#vf`ANjEaey`O=D$K^N<RQVS5oTX=KmloN<vM;35D6qqI97wS>sc
      zD7hO-?IO7$rzQ&9b4{bEGDl?TSy3GpLGn>Y(2J<dJ7la7lXN|L37!-e7|i7zQyjMB
      z3a(o{EW2d@y@rHs(__pUt}E#A2UZ4@l$GU6n~3t!N08Ol$`1fZ74%0R0J2w+w4Zco
      zscvb#ia<;2JhUqXryBb2BPZ~0u#sd<%BV&y>Li?8y-N`6Hh2MQv8A<b9-G=e#FmfI
      zP=U|U*xP;szF@ewJs6(Du4#Nphb{LGqnxz%qNb3x=bknkQf?p++!s|YBM?&Nus^DV
      z_;tJ+;!@@zCAe=6FI2pb8WLZW;w6lPc(AjO=QLq;6_I@`s(y;@6D_j{e1yZZ&_lj?
      z3`Et-*fJ~+q<T!M>M*&6)az(i_MOA=kUED`R7KPu^3NfCh1xlTE11P7t`ht;`n`#7
      zu|T7{)HMeU)U^fp_;;x1x3HCek8S)1?Buu6!SA4xFGA-(qM!eS<NRlw;lCimf5jO8
      z4Hx+Dc!&Ri_xPWf=6_*^|BYGx53cfmagE=_7YcAgsl-i1#e!0WTgpb<Q8pKD=+x3J
      zEZ>ln&S9)@Ym3NYoT{tG*RYWz1|3xY1W6p7_yFfgQZNmjYR}QF&maL8{WK=G$nGIe
      b<5GbOg}JzhN%{?vbcB}36yY<H-U9vu=dOpQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$MapAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$MapAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..81ac765d8b3d11fd4d348b2c0b89de2c424f161b
      GIT binary patch
      literal 1103
      zcwUuL+iuf95IvKdNn&UkpipiNO<MJ$Vil=Es0dUQ5RsBT(5UYlXO%2+){(u2{1y)g
      zi3dJ_k3!5kQHuy7SeEQFo;hdFjK@EIe)|sK5ZexNgl8YbM=|x{Pf8CxBd5k2nQ`E~
      z>vcP?Lq8cyZCW;XFU3Gct*)4y_(p}=K_N4_Cx$aJp=3rXZXFW5P9}|GroK>GnU{p8
      zI~lpV7lguTIFMx!sxFEsRglMZ7Y?owRys<{vt-<tQBU*(NvL;1Uj!E-QZ}ByELiJ=
      z=h+UwnjE)KjE#s4q5ZE8?6{5>^WDT)A1B5{s-GBnE=}54<;~QW6MI1HV2!Xf)QRT@
      zB914*jJ&hZw8xV`T3d2(SxX@H(O71K%LHNj|J)GrQV$5trQM~z&%-40<y&QEyZZa|
      zo>(@)ZEG!~Q`?E;)*cfMGELq=ld!p*!d9+Gg!1JFLxa~P&;Jb7YIbKB*@$<B-<KI3
      zA;%X`-P`|y%HIB0xSu)9;RfGJT!i8}Rv5b$qly|<tsLsO$yK))7dX0|ioKf4)1MN}
      zRH89U&Lu3mgS)9LVIB9FLAZ|x3$jP4+FxW3QrWdxazQqShiUyIZ1A(rsDVwiIKx|m
      GE#Mac_Yo5S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$MetaAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$MetaAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dddcb3aa39eaff7b70bc07facbd71004769defe6
      GIT binary patch
      literal 1106
      zcwUuL+iuf95IvKdX<}#^pxkL_(+XO(rbrd2MWCt$5h>{djrzWER>>k~9og$Pzr_PW
      z;(-s~qY$%BL@R;_mL>a)XU^F(<MEH5-@XIb#fF0%;ngQ`F2-Jbp>*Ffa%{YT83x{m
      zPP=s+`pHmg)3CuuDS9$$w51V;zEPoeP$0a_#_ovzgiI)zfr=Zu1h17z<AABJl~(2r
      z;l<O8+-GNm!co|h3m{Zn6j3T8kLxZRTq7*Dl$IySuq&gE=mwHdYlXfD&P1eaJbhWP
      z)(QLB4!<%w?x7eP5g9`BUoF^q9n9w2iLpiwjfqq@G4fQJw6pTNu`fsVfY`w@VZE;t
      z&ksZ#kAxX`C!uK$M}f4yWbbz^f!IfVo((P&gpL1mL&!_rBdpEsF7<sHCXp}SD?8k!
      ztK-|TY=Ya=T1H2<6UnVTA#7(Fy@NHv>U;`Yxg>FL`NdG@g~{`8L)EI?8b&tat>O0z
      zjP{V@3#e>veL;D1>nq&P9OiI??<Fom@i`V5yB4E@DweDqYPiW&w-^^Vx}A!>oyyan
      z68ot{eUh9?Sab(>Q(3}2+-C;i0UplC?xkvfkv&djmnX>?*&H6F^^dW_&l;mTR?*-L
      IuMO6LUk}p~mH+?%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d59925575ab7ce41085c9a2f9522313f13c4d02
      GIT binary patch
      literal 1086
      zcwUv0-EPxB5QWb;j!hFo(*ormN^1%vfYl-{P)boLLPSatqEYWR&MH}OY-F#YuhomH
      z5*IuG4~3XbEQ*3euq>@+c4xjhGrRur^V@d-o4D`7BE0x0zKEkB`>Nt$pyiPcMtU3t
      zZ+rXQ*GZU<WvqSUe2`)wQ~$k4#V{40N4ud`N$kQVJTHfM6(!-PX*$8tBbE7^grHlB
      z(&p4{6)U|%*m_Vh_u(PI-b)5@0ff4TDx4ZBIPby5Il^LB#qwP~?#r|%`jI3ocau;=
      zhay$RFE(u>o$#_;@!1J-Bh^fcR1-S?>cj7eVf*j%{ahP0yIQBJpKEy_HMeKFx$I#X
      z7YW4V)p=kJ6NHWb;}a?}9uU^&>YXaN<>5MR5NZcWo`&*`GSgf7b3RWDhv0SMSf+cC
      z$TFF^SR*_xHCq=xVQqd2OF2v8`<}TH+~sFc;eUi04f8hGs_+iK4PF=6dj^X?px$hq
      zpw?`i!aHWy!UbL(4uajpBHNy^QAYzy24^m$Ky(;sO1RC|qf=ZuORpKSy#>d9Izg;X
      z!wQ74R&Zs4b#WEfIGW6K3+zsz%rT;F&QjZ`+S?QA$~5XX)hVbJZclRVa9yxmi)XQp
      LdwfD{ZGe6OH@XS`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$PreAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$PreAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7e98e8c4a4baa6b7f5d8b96ef3de57f731c2e44
      GIT binary patch
      literal 1471
      zcwUuMZBr6q6g?MKmzOOS%Sz2mS4Dh5Ei=Pj6m6tHonWw+56uG4=o&80@?ie0oV2MA
      z{eXT{(|v%T#!{J`*}czQ?m6e)bC(}KzkLTVi)T7KgoQop&^n5iKibYtREi@R-Ie>r
      z=z1oVTrK4*`@)f?I=m8ALAd6YE0*)pE;%|h!eVR1E5%a&L#>?9E_dy+IZKEpTSAF(
      z>5}c(@(E!s++yu`mY~H;1>pxFXrK-40eEr6fDRv_BWXKgqq3h9ZpO+L1tF9y<*j1Y
      za&2|4Cp9IVyKjxWIXiBltt>595)$WiU}mhH*xC1~ic~t5rF89FMT)eL+?XHNaYIKB
      zVX7rr25#aO!Dl<Hj|mC%Ho#bY2Kv!W@aL3kn+L-2V*rCX?huCm%@9wg&4wxicQM36
      z-d;~+*50SLmg8%Lk^gl2S7poxli)pYMG&J1>lh=LmzjcraYP7)RVXylgt6L)qeY8L
      zH*<R;FJosjYJiiN)-gpGINuTjQOpqZL~1LUSX(6wUgROql)Wa4FnT#Vxqaajc+eNF
      z$9PtmwP4^O<_UqSS@B}2%#8=qrHY#u&uz7{U4Pm?tw4ED3C9s`yl9onqO9XFVd&!3
      zVch2O@Om`1n*C<k{MSOAo$ABl$jcf2u=wuh(>y$U0l~<`2?CLcFEBpw(SxgeZ|5ID
      zTR{iMhKdnHC%P0ILg=nT95SS$2uD66pq=2FdQME9qIdEbw?o5UG2(^F9iy6U;`gv5
      zXfNQ?UZP7&qF+m4OxvjP4c0L0d@7p7OjSb|bGXL{g!?SNrr}+^jlMe1DITcE`&$j4
      wo3tTlOq*q~+X!i|(W||wQufp!8kBu?N)HyRwT}?1R(sgoB|PCb#L-jGFR18oivR!s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a89dee3160d3b6268740241cb6ae5fba73886828
      GIT binary patch
      literal 971
      zcwUuK+fLg+5Iqx2OdL~^Q0TqfA_PgnqEgj|w3QHTRV2d$iFn^QD_C%BWUqnWLgFIz
      zp&!tXsyb^TQB<ka58geqK6B>G?Ed`q{Re;zG;Nd!og;B7&b{<ZMF*ai=h{2e!_fQI
      z+wnigK{k|;Zkk|Eih)d;-4huo5pD)r#gPq*@V=NpPaNDP6UzEfrOge3=NHoGaOwvY
      zDgBA?cBNqM>OR5RiU+a+Le<4M$_~ab>B7bYVaivL+|7o4ne;?Il!S&K2O``Ti8Ar%
      z&@$EuABz>gKRs?^Jk=u6gzbNIVMf;Z`~Oa+jh9WW6V=bO>`KkeIher{8?%J9Le^Y7
      z#WbNV27{5wFQGIX0`WKhkUypg!t(#wBskqTO9J^-nPJxd^t5gi2<~<i$z&@OX)042
      z3xvgo`(fR?jtG<Y#*GEO@G*Y*RI8a=XH?=7zI9$J9KGYX#Cx^XzJk+g-@v`dNso9f
      zGYM9JDaNkBsG^3tkwXL1BMF}im=aFw5>ETgH6Gt7I7Zw$Ld81HRpxJ*BNc<5;d!p?
      b;00dhW?tpluQA7agV79UEi#7~ErEUmnXUa_
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$StyleAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$StyleAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f8b2c596cb1dc134a6e5db27b56af81a11f82d37
      GIT binary patch
      literal 1084
      zcwUv0Z)?*~6vm&^HqDYo*L80GcXg|Cc4(L&A`_uZ)M2M$%TV9lwwLWnnm}@+^J58)
      z!Cv?Q{7~Y#X<!A1HH0MR+??|}&$;*H*YDGx0Jd<~Mv3s`v-l#8{N$?&4}2|;w123_
      zf&Z$%*L@xh)3FS7%Q)|)7|FQR)87Kw8EO@UHY$Y2#nSuYV3JIz>O+;Zwg`T=5M!HD
      zpQ=#lXM~3v1#|E16Dm8=NID?YJXol@DC2?$8*_yDt_tOwbUcu8Ukn0CXmq2Y2=+y+
      zjGr%7jC8_wvEtKv$4yv?7O^Jm{;LPGVds?DOSMtb(K=RxRLh>!+?s<WT(+@HxL-(^
      zhby>Ba8;No<dOvX#5b#J&JxFAg0TL78VO|?jtFZrdo~B<_M$W%$`{J)`NFjL2PT`~
      z?S`R@cLI?lGO^Jjtj=znxo55O5KNs4nmiR{{yC^#H>1Ip@pv?N-C^qyN_+ve_U19%
      z_T~w^@9dUvk)Kr#g7p&fY<tE=4RtIS92!{65wAJgK%MpvxRqmEIs>?dZN0^u^)7=n
      zCxJP{Sl4hp13S2Zn;cEJg_RuK$+czR@;TrS4E~sbmnVULflFM{<lM$8zZ+~VVGVcq
      J3$e8h`~lR$3RVCB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$TagAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$TagAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..aa62c081213f987d7a97cca7670f53245696c6b6
      GIT binary patch
      literal 993
      zcwUuKT}vB56g_u0X3ch6WBllMYcxnybWvJFEETbo3ekdwyiYcRj%;>ecUJSad=SA0
      ze}KQJPo;O(pi+xzSh#z?&Y649%+2qsYXGaLIj{)pC*oA}{PavkN4}Ol?H}uI=>KT$
      zHNM3`)|HX2nczT*j!bGzakL$16-N#Vgt7tqp<w9G_K6HMp{S2lT3aRfjiHz~8Tv&<
      zN`ED+)rZ6`v<QWrxFbs-Jo7Muq6-_(Jvewlu<NE_tf3;gpLN?ZX^M6z36(}1h_EFR
      zW#WFaU=|>33^&5PFuce}szt(D>^`-JL2N#*?`7J|v8{EY+L@MzQs?Ut^UVyR<2FH<
      z|36mNMMfRM+`uW#`R-wyC4u~|j7H-RRah}-g0~w*GT8}5n#$C{N5b+@3Oc9~W(Pxf
      zlzR}NbSFHjeEBv%Z7P?|3t-RYjDu0OC5}G9;ty~amoC^`!aL{4!Wi2k_rUsvGW(wK
      z;bI&W!-fe=_8GQvPR{)Wv?&M9+!p&l<4s{YCnLPXD@G7r<4vFJbI$P(GB+oizAZi?
      Yv+y?We~0({udw%l51!=;u{Q_$109+04gdfE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$TitleAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader$TitleAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..67d7bd7912557298be984d035b8668943d31337b
      GIT binary patch
      literal 1109
      zcwUuL+iuf95IvKdX<}#^pxkL_(+XOFRip}`B2ZO8L`wTWqdxJnafW1(V@LKH@>@J0
      zBp&zxJ_<4GL=e%6U|F)y?9MrRW<2}j=eO?wcCqE4KzRB=eN+=K`J}^vXLw?~p&13<
      zo9<EPW#p$L4o%AjZ&~#@ZgsT@_`o+h3LTUPPjb@LU`i%b%upw-U4qxirLiy6XFAm8
      zIpOjBoZJVegwkQu=OqwoF3PA>QN%?T4lWRuJ38d!bkyUxt9k(w8lA{j!KsS1jc1D`
      zYn`y4@9_EFNfG75sMrwN|Ej?@?3`ncQe&MQ7!&JWYWRdrR$BGd#OJX+AaSrt*c^nZ
      z=LafD#>x!6<H)o}<AAL(?*GmukoagWvLR`Tu=Rg#2t^M2gpGyOWxh|MH1_$mw%uKs
      z@82WKCb;b|<oM85!cy8j!oys>cd$WNUrZ4ze@HSRbH5Bt8JVKo9IDst+z7If%#Exs
      z3ED$J9-y|p^99xIov&~|OIW}qc~>L}<#$*X>{^T(>R7RIXyCGBT@hT8=xQeRVkS?2
      zOT5n{n$yjhghkhIJ(DHez)fKgZsGPB*}Y8d9NBRuyE@%GBU`|oEdMUn<l7L`#5!8C
      JBXfgI;1|{-6pjD@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$HTMLReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c44c2b487a7a73cd660c24ac2dde08038cef81c2
      GIT binary patch
      literal 15313
      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
      E0r`)IrvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$Iterator.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$Iterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69a2c5f896dc95f300500e70dae8a6f1f8fdc0e8
      GIT binary patch
      literal 612
      zcwUuJ%SyvQ6g{J9)7I8UeLtbng%32iRs`{Zg{X^`F5FGhu^mYhNN%*h<w|hj2lz=Y
      z#5=KypdilTo;!EWxvzP7dwK@2hcz1`0^7IpP7a*pUWZ+W)PS5G^#kX;b>W^we%e<d
      z)f=Q@Nl|RW5|}gsCy-3P@@|z+0{H_SYC04c-PmjkSjSOEl`x8889C$yCR`n=%e3#Q
      zxFx+n2~^$4mqA;`+T4dhi+VZ{*m3{S(!M~YtLTU*)?P}A^|g)7pBcUgO+~CJv*tAH
      zT;1Fxin6{N0^=NPl8osyY=tZpuyxXwf$n6yYaW+*E!h=V|E<zjuXW~dsZujaV_%(V
      zGvd_uA$E<HdufEBijM=CBr377!g>E*fI#7M1y&8*8O*WS<BhYm`Q|VR#@yB;3J>gz
      zpv2ZZL%d>){qhHau>$kC<Cw^B5>pvghd9kDgEN@Ta1QfXzJ<&#Vu`Vom0QNDReT3^
      Cjgz<l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$LeafIterator.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$LeafIterator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..352cfc6af2669df2ccaabb615fdfda00338ca093
      GIT binary patch
      literal 1732
      zcwUW@TUQcM6vzLYtHOwQ$xEqup#l_%ykucsGF_Qe53(?O8(_pK99F}@{3?BdUVN~%
      zB3HFmk3IA;`XJRlI1nKwux8GgIs5<n?|sgmAHTkQ0}#W88#Y4pm3pWiMT>8BBNr9g
      zk%;b#gM9RH@@e8xAyYcg3=v3Z>fWZ%OjQ(2Hynh?7DQD6!7kJsVKi~ED3DZhaSqHD
      zGK9c?0;_Zmw&{W}em-_RugQq2Jx994zFrL6=E<UN=wgZRI@pTGWeK;!2&D*)wL(^F
      z2f?qvi#8AJ=vJVhhbs<-QgY>r0yo;^tY3i>E;j~w$1bbQg8^KVq#?pclalJPkmwNw
      z?eGvf6S|>2D;=aYGpVNY8lgK;$f)_0YU=XYdg+kcMu@dg=06?6J5GEwlqGcJG_fj#
      zsi#XqW7b$Obe>iV*w#c`mK0PFLYUyrluVQ9grR0SYct|rOkvuM2w~u&7zH<Qlb~=q
      z>qhqZ-d<4?mCfIj;yVhW;P&wG^0rV-aTXw#<`m4xC5OQ@ncISbd4%QCeFbqWa#QI=
      zS$zffl9SepDK)Qi@h-+CW#^AK%f7MqJ==wnnb9_Mx%FN3n>#JFocyL?Xy#g8Ef%$+
      z8;_WK`N6QP{%A1DZD8lG-@zBR8RU-}uQGCP0Dix0(aKxaqJ!@~etN?SshJ2*meCnL
      zMOQddMsIkkjK1(!4D5zKqW2V6%NYK^VK!XndmmeX=Ha9m+Gz$pn&qCK<0QbBOk)CL
      z7_XR5@ZZHcISX(Cb~ffSv+TEcBpwIZX803seTUzgea0l=gidOvJ_)8J?(=2z(@Mom
      zITKrEBu~2qaEx$lJ8l3!Vel4%6HUQ0ErDm7fp-}Eg2B5@!Sm>`z&Q&XIm6xEc@J-O
      zTJ!3zdEFzt`~9==OjNW{8eYoqd89E#**eom&GZ2lEz<?d)K_zGI*#psOK{0mGU_P4
      m8f6K~7A0y?oJ{FEX%HXQiJg|%hLy^F6%TpzROD+|2mSyeHE+KF
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$RunElement.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument$RunElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0ce0da0d4e48f4011fbf751b7692e583cbfe5088
      GIT binary patch
      literal 1364
      zcwVJcZBNrs6n<{E(NPPG0iuY!IdN}Ld^edfA*gZ5hK3RJ>+QIVlCCxF9pb-I6Cv?~
      zA2snu8PDw+AZ$7k)8zKtbI*CsbDneCU%$V72XGfpbZ87K2mFv9S>XrAYgtkpNo!xW
      zUF+3$z4qL1cG|*|xvh@(!WGKYk?fbUZih19O?jG86MQdDVHlG8PMBL`$khfHt5Ez?
      z$8+Q}20MS5gx;9Aa-WlRDFesuNYN0oQmqzt7?K<Qt{4Wx6%#288AxEngpN@L-lzV>
      zR{yvBSk3XoW~Xh7V4K^nV93_|CU<vu;HZ7<Oezf-tV;-TZd^*t_dJNEF!Oh!42(0(
      z58%s?3MCH+id7jB!rNugTS9K~HW8f67ovR2<&@o^Jg-$5#!bxYm?Q8W?1ud4iVfc*
      zOizX;7O==LqQFk8DlN`1U)u+wDJuqz>XwNdZZnuv{#^8OzBjzk58)09I`Ryei)SW^
      zxWSN?ezya48_FhTlrtfDiw5CE?PhzMB{-t9B|_gl6mMeH7h_reC9Bc!J3&*tbkv~7
      z&yR9drBa(!&lACh%fnEFIvz1B4Za41dv+19NUA01vuBx%y5(dg$fF}o>oDzF<Wt`9
      zV(BZ4VyV0`m7GeQ!2C>34P&$#^oI5hDeWyXw0}TAlt51wh^z@rsu;4Sa5XA7j%i#&
      zGP16dm7;PaW?WQKw2GQ5e!=W9mTIhC`hj%m7|ZqYPo#?{DAmiKP8rM*VQ3s_&4!^h
      zF{<riLKB$Q_AslpB327s#F$l@c&tRt8^moD79laL(ciDjpiFP3@Yz|FA?4A62+i!C
      U#%LPuMeBX)UFo56AL23CAI=h1#Q*>R
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLDocument.class b/libjava/classpath/lib/javax/swing/text/html/HTMLDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ff4b4494a177e7e43952b7d0072da7da4b0b1866
      GIT binary patch
      literal 14134
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$HTMLFactory.class b/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$HTMLFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4fb846a70f8415b181662dc688117c21fe01333
      GIT binary patch
      literal 3016
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$HTMLTextAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$HTMLTextAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fb0a05c54d63750c50f11982e973f8ff541ee2f1
      GIT binary patch
      literal 3248
      zcwVhm+fx%)82_EaCJSLz#EJxn2Bn%11+i*1Q4|nMOz=i3ReNzs7KjbInrtkc_Oa8;
      zdoRNu(D9}1P}`AWZ~9VaI-R!D>HWPA?Kr*7^tJXoyURi#MA|7Cvge%d`+mRg_nmLg
      z$)|tc_y|B3uE^jFyDq9%)XC1mQ(1ki)6^!-&T(@h*Ex_HO!jB8rjbu%%{DPhk*z0f
      zW({42#L%@QZpeH(r)B1Y?D>2cgZDsI&zju~>qAKq-kDP=c*x8XMl5`WLFzLynh#Z|
      zQQ(1>VNEitYsZTdBU(PCj^s3k`lOLob7$0iR?MA6$sErX7<MQBy_gt9>*|Dsyd)<|
      zU`#Vbz!4)|oX~WW;ZUfA<(Lh8Qq{FsxB~wiK+K1ASTEx~h7HT$C}_Y2hFYSYrwxS4
      zpu3<l{0y7#%`T(a@w0Wtb2)8H&GqEREOY;4TDv5wQjGw^rn#tKwh+_}GpGg^Vs-e?
      zgc=4$wev4q6S8L*nk(eaQ0Elc-6Mv>|E<a{f>q|N3brA{pb-87?2YA0IUgybongxg
      zII6Loq1Bz1R>@uNU}&jC$FNGIm(xTs3O$rxZ)hcb6c3*-18c*O`bKmq*o6n^WfOg*
      zjjF|*dD<}Mm?*2VWpDu)_9*DUUWWZ;@|p9CS4@MUDr2M>+EyZn&Ie<3w4hOHEH2{!
      zbxj56T6E*Ej6)2K%lRniK`)_Z3rS5KrCdVcb0X}Bf_@ye-)+Y=u4lAKItfDYa9p?y
      zD2U@2gKyqNyn^ux6{F}pm6xHZl8+}tFW5LkwdQO%!&+z9XB2faWu(+GhJlr}Kn15Z
      z!im{pPAeEf%I>oslTNmgqNx#aYq<t+9fmYBR)aHmM8+_k1?7+XK0_~<D#=iA7UziK
      zI31-fMCqA&V&tNh78~~{9+&YL)w3eGf+ujnes>oDZVfF(3@=^sVFVc&)OvM`Z3;9{
      zGkCSjMKxDgbQjGbl9Vb_Y((&0B_>C`I3X?(vN1G_X7!A--Gi!`9;YyCN7esnN0)Cd
      z8Fa;NtQ^lEYjf@FBY|#jONJ%aH)Is^Y3*p%x@t?$F@a3`5!ZDs-<MMh1<^yROK(%D
      zmClVSh(DP|bcfToOtWrq`T*Yc$PB9ArV)pazI|eqKLZbc7PT~Qu)UyQm4)KPYOEm)
      z33XWOU}?l4IGQ8ZQ9ro-78<8ez5ON{r{71@+4`0lZ2Z_IsHafy=ZWA2DEvjN<u6%8
      zK^wv)YQ`p76Dc>K6`Ltq!WOiZp}b#EhHc8QO&KXe`7%+yLX@u(<!dXT++k66pwpp@
      z(@gl+wiD;hmZ}--o^~ljS;1dl09)(A*5X0z6LuQyN7O1jo#PJd2Sn$gXD_>nSX7F9
      zf_;%$9Aucnx`1@yLv%+azZ8fJ`K9UhNTg*JeH^oRh@*wfl*GK*&89=-!QX_JzXczk
      z#yWlt&HNn%`McP{ucM34U=KZ`{5>4vH>|98+gZ3-_acF$m36O^wHOW3sEX7cz;XJQ
      z=yL)m9VI`JMLdT^eWDWI>+w@+3lffcuVUwO9_IJX;uOO*JUol@96PQ<oq~70=MBHt
      z?=A5co}v_YKO^fRd7qQKFHpn3L=*oC0sb|~`v%+ix7f?S!+!ofj?sFG|7gh@uv2s8
      z4ZE8%?8+O)7{)Dmr!4UjYDi|5tRDJhbr2V6%}c9KBIii{!I7M>C9|mKDx!X=M4nJ_
      z3lmeQ^LuTnvR{fWsSQnU-@WbkEZ)VRN#-vk^A5G{ue6iDp@E(O{yRGOAK1nJB#1j0
      z;D0TUnQ&z$T$u@1X2O-(55tk!i%T@}Ab_p7jB{k;$Xl5dU_u-V^dkUa6s4Mf00DL`
      AW&i*H
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction.class b/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..86637748adbcf782c6eff9a2367e4055a3f0131c
      GIT binary patch
      literal 5648
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$LinkController.class b/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$LinkController.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8d94d0ee4830afcaf2b3ba284680d68100a3b07d
      GIT binary patch
      literal 5330
      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
      G<@qnjm6US;
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$Parser.class b/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$Parser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0024d89ae210eab62ba4778792311cd5cbe05fbf
      GIT binary patch
      literal 542
      zcwUuJO;5r=5PeGvm5PGk=h5f^iE-l@<Aq=#RxwIAc-xkZES8qEi}JTTnRxIA_@j)o
      zMNPcn9_G!*o0pl{kI%Pv0H@e<kYi|!#gmxx^jSp@T+6xUBRvUur+?+Ohf2rErP7Bt
      zB1vW9z-FizJ`V-4d;VAknxSx}BBjq6toqS_!EVJv>B2&>gggoiWlu%&dN%Q8(ieUx
      z8LD0!h;SehW#aFotw$<lIQEvGsL7C@8jqn<&-%EE`K=T~s{KQ!CBo1b!DI8@Ea0~1
      zft+d;N2!A<L+wYn+xx8$>n@%pfxJ-JLVr|GOanuy8%3lYiZqp^w8L<)#7K0{#ZdM>
      z=%g?&M;@J$tV0neWQ6&~D^^~zvP;&KVGXcKerZ7<T!Z<wb(ASnp`1;)K^?WMZxdUD
      LZYH>mUAy=NHjIcx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$ParserCallback.class b/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit$ParserCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..881a9977f2b6393891d3e8ce6832d1e2c47ae4f2
      GIT binary patch
      literal 1710
      zcwU{A%}*0S7{;IJ_KQ*lQBeE@DOjpfMbHC8qqW9r5t24sI5g9CpbOhwvO5*x(X)5|
      z0PiNogNY`djYt0=<2$oUfl@5mWV5sHyw7i*dFP$<=kKrI0o=ud7(xuQoBTE3&3Zeg
      zy^)n-S7sZsX=R_6mx}qiDINEvDN`%l^@N+_mR04otr)@#gG!gRIH{Jao1!KeVuhuZ
      zVj=&OVW`+SyTA}%tXZaQ%7+X_dU};1oO9|Tj(&!|irL(@Oi{1&f#FmV5kwgVil!}I
      zwVGAomU-0@itE(4waQ&neFwqlqNXNbU?_<}#EC2$rpGW>{P)d~(a5^h@)`_@{BBKb
      zOVhEv7%nhO9-%$qb>&E<v~$USgWGjW<eX+x*i@HjdM#H_8;;fXLZP)B6=d7-OkctZ
      z48y)GZ`YUC)y_-OrG+S-K2S|RxS(kL!md}G^$HbL94>i~#E@(w%bZB5^j`{+qLc+~
      z(~v58tXD2M2=K1!xC|p*eEQpN3eV#kWOBe4l+<YpZRtf%OGoFIT2h_-V@YdNTT+yS
      z^cPC-y$~J#)X9Vlrvp=xyHa~f_<=G>R4eIMqU5yPns{dFHayfoGin{Gb-}i&jV$hY
      zg8F5iVd4bcN6R1XKaA52FzA9ZjH+uuqXgoJ(L?uyzB2SyzvxinGm@WZ6vAnp6#@(w
      z5n~GjI;t3hZQVV3D`h0}1!p>CI|v(Zv@Gc-;VjN+z%T(q7@={PzRqjZO+7=;J|?OH
      z#@ho3)<%rtV&LHsJw`X-J1rawHtq}6=n^gmuq(Jq3WjTx<-_LpHrWY#uVEuW1@>X%
      zxUOq3fmAO)ACB=eiKz}hH<0cH`*;j&TKhQ&%TQ^3SOKcwU0~ldEaOjhb#@E4gRLv9
      oLGPK~*dPCa&GtUmU&n0yPRF^1=>JG5XQ@q9PpV^@!+rGq0V6O#rT_o{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class b/libjava/classpath/lib/javax/swing/text/html/HTMLEditorKit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6d826cf4248c1670b4358e438006294ad86cdaa0
      GIT binary patch
      literal 10214
      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
      N9Yz1w_@1YN{|2lRV!HqU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLFrameHyperlinkEvent.class b/libjava/classpath/lib/javax/swing/text/html/HTMLFrameHyperlinkEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f5bf05f036c548da3fa102323dd3a2e2ccb7dd2c
      GIT binary patch
      literal 1753
      zcwW6!U2hUW6g^XRS@~$YV*S{Pw$*A1wr)&(!}LWVJfJ2*c{K~2(#2(ImVwsz(m&vT
      z(L`h7gFnC@WxO-H-GG3$5A|jC-pf66&ixpE{`&p{z!N+)u)wg>bw<vKJves#jxG3!
      zun$Ggv#X7lwMyXhc=i1e4?Nd@R~~U+7|<Bj$01yX?a3^LtZ;%37jF;b6%4tWgxH=#
      zfVv0>S7Jy$bA4CrGJMz?`}uXN%iE$<`xnQiIvW%Vb8Vjsd+$wc5~&I*d%Q=vrD+j`
      zCWH38zt7W1Ad`iG?4`(=Ae}F;&`g10DGMD*hUJ>;^H;-Oiw6y-<*7FI+m6?C0$2J`
      zP!oslfWe-=_HTof{U7v)LHm#CMD@yRDW75cB9${FhJi;FOtyf*;9-RftMjX8(4%#6
      zE_nilrkwX(Iqy8f$4h3r=t5@p`Jf%RN5bv<41@onZc0On9&bZEVTP5h!mQ_;uB-K_
      zxN-^ebJpy!1Y(1>Izj(Av}$s-$<oO-aD~nkc_WI+Xs-BZd&kl(?HkfXOaF?+&lFw2
      zGM!86h8M`7jH{@?ByTrFk)H#Ubqy<Yr?jr)1|g+&6SovL2Mepvly#esp@w{<p-a9_
      zUsGuy1$T;;HbX(3vK!>@DFshMOsv3+6_~LCGge?KUQO|?MZBjJG2+@aOINigXE1ZB
      z{eYM{in$u1&RzSuVm|AF9(N(B)NDj*L^PlAF3g(4kg`YQACJx9{9QQHV#ag0hx?HN
      do4yjM7r$WfQ%svw!Ba(-4HF_dhE0|A;5RHXp;Q0>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class b/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..25f8193c05ac72740045d4f8a78dc36a81728e1b
      GIT binary patch
      literal 13091
      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
      JWpDoG{{UJuJfZ*q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ImageView$1.class b/libjava/classpath/lib/javax/swing/text/html/ImageView$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1785831cca1808ed8fde9c71545d76bbc2c94332
      GIT binary patch
      literal 842
      zcwU83%Wl&^6g^`*H8E~t(u6=Clu`q!i*U2%u^<8wDJ=+47TGz@G@i;COSY5rw~!K$
      zSnvUS6ylDFpyHt{X6|FoJ@?)--@bqO3ZRW+6B@(8MKB94{cJAe*w6W8?nn6~_Pdi{
      z%=?1R-L?sX!BH?j4hZySc)`Qm#0Ep{clO;>%3v6ChK)QDnR`Oiy*1oV7)rAsc4rLD
      zzp*PsSs~_Plt&C~z+kC3;$j@-)a$8`B7e^CthKh;e>w~XM|}pPlZ<#7w2}=I*OXVc
      zQHG_wn>Mb)R^BZeo3JhD*tSu@4ujrO<<*{${A@ZI^7O+`6>7aC4B~!}3Kg%ChLVQi
      zaNVqKn-<s8skCqpu8Bj2{WT>v?&ASNBMZ*?+mxU4l*^EJBKjLXV%YtMK3CSa-Y3&E
      z<gbL9vhs`cv8rLPyHfJB69-wwY5eL-8OBLQJf}R5k`Ycw8J$iEhT|yt0H>zJD=bM@
      z*iB`j(W#(HXotMl6qm?ud&f)M@E$F(<?Sue@EXPvP46>qe=KTt>9&emT2bp_k35@v
      zs>B`a7x}x`S+Tx=QM}c?1(7a@b3v2~G(X|s4?gV_TiV$bzWRz!$HM~I!cl=`#Vb&Q
      JN4KH=<p;>VytV)U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ImageView$Observer.class b/libjava/classpath/lib/javax/swing/text/html/ImageView$Observer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b919707dcfea7407b6bfc8b7e5472b96a517cd10
      GIT binary patch
      literal 1079
      zcwU84QBTuQ7(I9G)^1do=oEFz&?#dm1vGmQqYoq|OBOLvA*oN@cDI&{LfXRc#s8sy
      zz!zUkP!k_~HStFo&%J}i7?QQQ?df;V{l4>^ufPBN_z7SQYZfvBwO#+nKX#L081>y$
      z9;a@Q?hV}Lp5K?-p&VAX+KG&hWNg6{C@Qu)@X6h3@5)YUAtzAQQGb}ap*l7?e0EMC
      zmj+={T@_epO(?cO@{=$M)29N}+C=u!wt%_0-<5d?TyS8)F2KNygFK1?MokfBT45w#
      z9PYJc{Mv61q`+)zzvB<K{Ww(Lr$JMR6sS)sI`)HFr*yk-4!VBI409vF+6PVFXsT<;
      z%VQ4LEnE|rpOD<a4U`44$$=kH%;MWtKRR^JKh#MQw<V)~8f+9;;Fg1VR0K+i-;*z6
      z*^{x1I&w4MtYnunI>%0JqUR}>vbq%x`2QZb)f@PIsu4}DW3G3M4a064a9V*3`#~z;
      z=)ky|@Hmjs-Z*B&lElKR{lmB;pNGoy>2c>Psw~qqqe#Y^13yV5OWJ2<qrwRrTv>=>
      zQ4N~EaE2?70;5wzkNB-3h5GVWIQ8$C{-QY-`OJ|6+{G-Pj>ZLC!ezc`7_N*mhzv}|
      z0ncbyW%K<9%+^ofoZzal{tG#?VHpj(oc$+mj^cL7`UtyZpKhpCvP$+h+$<L>q+8}E
      zm_{RC%6}d!s_RP2?CCxgJm3IVID409mG>GRV;xOA#18vXs(T}4r>YfNz-`@$hdZe1
      z&OLTmWk!YW5t$k-5@j{25#_kQgC*9tSnnAX)am7p)={UM87fd3SEvQrTmINoguk@3
      B?wkMs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ImageView.class b/libjava/classpath/lib/javax/swing/text/html/ImageView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dfd71640a9e49bcf68df0f728108a86548365307
      GIT binary patch
      literal 8743
      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
      Db$%lG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/InlineView.class b/libjava/classpath/lib/javax/swing/text/html/InlineView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b29d69cbb1fc55ac43b225d807531e6fc1d05a86
      GIT binary patch
      literal 4798
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ListView.class b/libjava/classpath/lib/javax/swing/text/html/ListView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb6c12004e343b27da7975ecd9bb5096bb476a19
      GIT binary patch
      literal 1920
      zcwUuN?{gAI7=9K=E}@rbV`8i%kyu1R($HG_ORQ-UgQZ1{LDQx`-M|jF?QvX>#o&jw
      z-~1o?ssDj9ov|=eXWH-nQBL2zI|&UKr_8YI?mh4GJny^j9?zct^*4Zbux}v3u<!$a
      zz}vazfpls)CE6-ysk)sj$)?(s;=n+R;oNY{hTW+As6h;d%cY})$FN!&4lb*QwkTUd
      zsFdd34)A$~(W}yt>Kem*W-xTi7IopM{L(H%Y_m}naYXT&2?HisKPI54BTkg0BW|_o
      z`@*}+_ie#2RcchYy~{nR*WqSNS+dEHe2McHr68{nVKbb4xhjKM6KdU-HAk<BI#XOK
      z7&y&vUI*oDP9a6x7Bz0Kd$pEEZM7@HRkGn2IKwb|h$}0P6gFDYt_p7qXBp0fp-JAB
      z&7{jcUKdowE6F%!F{jHi&oC2|rJsZ9rxE8&B(X>(=dLT9D#IMv8vuubc^&bli4-m{
      zjHyQOkYPGA7(&<?%*EEIuPA42j)4^!M*Oy5NQajAfy&+RxNFHuGk>^Mwzw;Nk5Rm3
      zB8z1TC#h3Iq8Q@brpDvCVhksbve0v1bkm|N7?zJ$-Vqf=Y1l$H%s82U&%_8u$MFF^
      zGVmca%plan6)cg#wnkkw@v*;ps8?$yKGCa@16fs;-q|p*sdq*#A#0Y3V+%J76c|?i
      z&o$9C`IO<(uw)AK8SF^EVT(aYKQnO&?~+GOr#CEjGAx~{Xfq_5LT!5uS9nT_X2EOJ
      z*A<=ceoF~D(r6|iykp`PZpW!yWfOOCk70t^{?Ix@Dr}PD63lCYFHC%iy?~%!YH=7r
      z4^Z}_zs9!)zM+fzDkT%&;d_Qj(&#HH!|fq2kpF1BI*B7Mvv|4D@+zVr^?POF#hYVQ
      zvtW_ZjrunvqI-;HBQ!TKM&mfG*63-3evRyMtc&;`G>u?_#<;(IokF%SNwd=d3@30B
      z@Mo`Mib&|fU^*nbPvjbvO8kaoBKA8HPcgIi6tjC%Z*-AJbg<CD`7YA`OkI53Q=0S*
      z?hr$n?B45BOZC)J$Y9A=qk9^v6)7$nSYPR4<*4=hWS#qD$pF@8eHA$((X+SdKPiHk
      z?$wa?0o5i(zv=7~TwY#zg7+WMkk`XCJ*+><&UbK~MCZFG9;yauxLCkXxB$;r&IU|9
      z<#bOujn7f?eWr1fQi~Fj+B@`6ptVL#XS>+WW;@uS?`{WQ{fWy*6@RA4U+55i^%cz^
      ME>vVx1&!wa0>uE#g8%>k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class b/libjava/classpath/lib/javax/swing/text/html/MinimalHTMLWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..864c6d2597cfc47ebbdf9745187072bc5106bb7a
      GIT binary patch
      literal 9010
      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
      L0z_UhR=@fu(Y)0i
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class b/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8ed0c9e12dc05dff7668ac36b3a331004f578bcb
      GIT binary patch
      literal 1245
      zcwUW@T~8BH5Qg9Bwyd;^R6Yd-i-5ERS;5Z)f-wXQp_GskBB%-5azdAEw`O}*`!Brr
      zPH(*7LK6r<6TJ6F8Rx8PEdfn0&e`2LGtay;XZFX>ucrWJ@JL65Fu!lTvFc{+t?lla
      zQq-kcmKDcb^&M$Hk<zn^z7z!^#{x^<s)!}muL#eQcGcApB_tKWbS#cvEAESu)X_%h
      z4XnPj9kVHb5VPG~Q76zcK`;59CtOMB&t2#~M`)8}yEb-*kjb^ER0Yl3t}Pb`Q|XqY
      zGMj|xVs%%vgK)(_0!ADfx(#%ohoGf1o9d*`fR0P;xQam?1B8hd`3A1xI+tHj2ZYp%
      z^TN)^NnjW$9XAL=|8+Dlf}1ROPsoN@-BOJ(kk0(0t*VeQ1MP?tI&-!w@_wZ#ybY`9
      z2trq`TC$u?%d^#YXpE|RAS|@n&kN^;ucotX)mE#XSaL*#uf7&^b~}L>rVM0|B_v#?
      zhR1}SKSeYR*qja?h}7TO^3{T0Du*#k^^$n4vc+MdTaoV?xQ%H-yioPMl6Y#Xg8I%$
      zo>oADvFy6STXd{iO?9#7qC$}34r;t&yhqeT@Glin4F!@(H9P#R@#?^3_Uh!fjldHa
      z&Q2a7nLS2VRy#s(cJdJY+UyC22uB$G5^%<O??ROKHO{cY+*Rh}af>Ym^O%AOr1?pz
      zXJLkwKoKyKJ;dk<CJFD+$M3zolAPr<y88h!?I3#4NYWMr6q>*z4KTMX1iuTx>rLQ=
      zv*3>y&u+0Lx}$0e?aHN5*(W5v!Q48=%=h1zS;FUrkU^FLJZBNx7{W^y@d}TzgJ&o<
      YiCYiFMQ|_J@8bbK<9tT^Lq0_07eJRSRsaA1
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class b/libjava/classpath/lib/javax/swing/text/html/MultiAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..535ec932b08d237a9bcd64acc77eb6f22d6c4a50
      GIT binary patch
      literal 2791
      zcwUuNTW?fV6#n+iX{Vi@LV=btbOs8AGMyPZ(o$4<Q7lEPZNU~$iWg4XBOIIy%$z}p
      z#wYYaqw&E@N=y`D?1PQLL<S29z8DkH7kxJIjl>84g7w>b4yT8iLG<CwzODVOZ+&a+
      zHMjr1aSOmMm;v|%cAPfO8RwJv*R0IRq-~zJlc(%-Dmh+A+15VW&RH`B+nh4(05pLn
      zX`D<MG(9+T+MMNXtw5v#!h2DmCN04P+K-R@t7X4H?SPfB>>&YvwCkvVHk_R^gYctK
      zM?Hc9tH-R2IZ;T@n7PBoOv)5kJC>a_Qb&!PCD+cTW}mY10$r8<ss~5U9nlA|>pB{Q
      zK(me(tfdP{R6wNbxw%0{0CfUuX0sXFurhh~A_b0)m8;fYxzjb>fEt8#gs_p|86&M?
      ztFWV*=ZsW=hyI+@R!sAwwqlg#72c`A*64%6Ql59{h@y)ToHT9sc!Del5sH?COcrb_
      zl^n?w(q_)Et!$>h0dedMAR*9F)j&r#k^&7GdL2obX){C0&3ECvaY+ulbo8KCK=*PG
      z=&T}O6$F`_U9wj8=y({9u$IiT1tUfNE!6;~CHK8L`Z2(=I%VX?vpLh@m{;{jWrK!C
      z$;}U}UO~34_mPT_ubLMGR?TM5T<|7nOSDRv-UA%K2<x-LX39#RNts^DAoinC{ye2)
      z6i*8@8gq01uNdT`lMDs6SDIFO>@TaB;cP*snCgwnj2_Z4jtL5r31CWK;6FacZE8nW
      zpGUzUCUHcz0a8p<iQ_&mTSnAGij!tOn>uG6GIFX2>#h8L^A$FeImvTc$Mdpe>SVqr
      z)Y}VK`4L$^vaAltpO<xP!*<FeZCDyp*+OpCJYdOwv%bP_x8%oC9?fLT+;Gas=cWG5
      z)dE91(f#~t_(3)j{_6bL@wn5#SuaO<Ruj7p{TohvSjFEUM<5FgIjmNflo6V+22cQN
      z9e@M0l(s<$5Q`VFZUto(odXw$@;Yz4p^(;>tX-racj^>+i;FqrVAjUs*U(zd>Mink
      z+k;i>V%0iWLiRcb>qBy=;n?jT^6$|W5Q=?^))uWNo>)SgAM>cuhAwKNMU(rtt{@PZ
      zU;ZPq==$79RNx)1-X->XM1CJ_oG0*s;;_4f?sDix1e;Vm-Pp{Tj3mKCY*9RRU@JPP
      zhmaX}7=Gq3?9&G0OXw7sSU_aw5@G^-wRlKd!b3j9LRt~Ki|88+&qL?wqXL(fe-Ez^
      z-NgI?A93|D#r}jTn@2M)p_B7oeCi?F=aTKiAjKBE)2k@@cr$^=@Hi<oGadVgD#<>9
      zVTWv<Co-wqZ({$k>o_pxA6!6FT#6U&DdNeCJ`q+*US9qye$^$nUOB!@1+SnHU!av^
      z2fkFK+Dm{AsXFTS494g#NUfz>KF)hop-KX8a;<Uf6yyG(1+0_KB0X^>()dNch}_L%
      z;>YDXiE;*CakWUHzGirf%)wQ~AXY+jW$9FbOIfy&-6rL+U2&0*iG9c6a@G-}!#^Np
      zXl^UXu!MsGCk8xH{MojWrxKBCTop;=JC=Qs%HQxv(cuvBasOGa*cm9wT`Bly>b_mS
      zDzy5Wm^{YkcX%b*T6OTf=k3-zpaRdi$xJwp-zUm%{@}Ukb8oVfm1n^}cyAVt`7r3s
      zLU?}pPPjbypSZfs;D2ToZd2o5?vsV%o-AxB%fbup`#Iuti%_hH7voC&&(SDb(M$4m
      pFZx&9mm1QqEWzKff#XUO3At`VIN`hrL*1LfETH=3B)>WM{sDz?IY$5h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/MultiStyle.class b/libjava/classpath/lib/javax/swing/text/html/MultiStyle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3904a2c29c3b5af5750fcc259bf37439550c85f4
      GIT binary patch
      literal 1900
      zcwUW^YfsZq7{~u-7sg6)TnFNXix;+mR8+iyC?Wc4qB25ajEUViVI^&c-RZ#S3w`6~
      z(L^B8#1G(yGCn;mV;5%0()RS6=l^@I-Jicde*>7ulLR6R6FYiM-`A>phP|x`zAv=0
      zuuSc_YYL+vKA1d#7{l~`tX70@jG`-efr|vX7}9OV62uU*b&DPYdCx#IbviDP*4|!Z
      zQ1oL=mEl^x9bs6zCU5jbqOK*wHpDW+LZ+ShrXA8G&u&sgtCcOTAc~ZV9`rF>$%M<2
      zpd3^r(4D{#NzM?ff<dG`7b6VOjE^|4A_;{dl{aj@=2}JWZ0JQ(7N}Cv%}w1gy!T);
      zCdvktW~x2BmWEMXm`#^O%?(S2A+gQHnrzEZCVN_A`t_}?)iQ1Iyipb0<_`5I)5PU9
      zZVRp1NS3$TtV^cC6%>NQtxAozx>G5Hde}6Kjm>^h+~Fm$*uIn9^ol;CB7<!6%moGv
      z@tSVB1nh0(do|94l+9<)tC)jEouSbs)p%&FQ+|34sSKZziVwf1;tm!V`dT#PXe<!9
      z!Z5X`wrg=m7e>XFC69aG7#WRpupwfVi*;VDm^J=Vcc>5a9qk4SrBHF55`SiR6PG%f
      zsW}gZNt)UyU2#O{NApkrBN1<i>8a3u4^+DM(%U<-i_$Zln?1t0+{^*`bH6b7`Ut}Z
      z82v7FV{{)tjP9?9xK4xuhOvPQv@_wWaS@jQxw=f=m|Tt1X@u63m<qgU^z_c+xgY5N
      zR)=@V&9@S$`UU}zK3ZH2#0%1%_D-Vmg(WFW`-k;NX!vnm`kM|%ltU0SngJpo6ilHM
      zMrURZkvm~2Qg2eBt%l+#b)G`4n3et%+@O_LoH<z(kGvwA1tcZ;5I0-F@2Rp*L!ikz
      zIEh=hEd!-d?0~!5imMTBuLI7Hli@xdoE7(xaGyHh9%3=TbxO7k_nB~CLXuso<2p9>
      OYlp@@3J}ZE{_#J^wS$TP
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/NullView.class b/libjava/classpath/lib/javax/swing/text/html/NullView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9974854e5e8559a58a12fb252a09505d39d298c5
      GIT binary patch
      literal 1284
      zcwU8+-%b-j6vn^Pzq&1;B8muD6m+*Bi;CRTU;?40ibyQs25*Kk&@tQHW_N-5PR8hs
      zMlXB-AIf-US_`xg+RW~mnQwmQn={k?`TOfPfG2pKMS?K-Q5=bu8yzeEz>Q@qcI$D&
      zb2kn>Z(GUZEK-D#K8>CtWL_v=#mj^Vd%aJx=E;Wi<C3#YNUa8Y(n1nf^GG8@7+P1p
      z+&FCP%5Y2UdXjKsJ*Ww9TZBsYJA<jXt|CIApMJ(<iItMm5ymd|K}a`+@?*lowp&*m
      z$L_08H0!Dsl}?7Lb<vc@HXRU#&(ZP>ySmo9goh4fycx=U8HRGN+7vz;vnx)SU!tXV
      zLKQ-;!Nu^lf_4p8?Mg4Fe-E2Mq+%8L(<@3uC8s~JwbrW1rj|rmOcG}L5G!I&S6EBB
      zT0*iJXjg*U?zwe7o0-iYvFokit=<A*$u5_B&FowTaVi%05b}5go1JsXI!8npx1Ea*
      zFoz=MvX~`|UZlz6G3E(_%&f*DjNk3=N0PZo+u_1fiyNN>eIiU<YLl&1gTt^U%SvCx
      zf&Z6nUav!ew~&PXq&ea{&Ce|NmXY8ukSWgoz?E+tC1CN>GNUW3Tt$wfTWuBc7%-F!
      z1~J48zC*a)VZG$0bI=J!rvcs=M4>&|MeuJ3!)Bgv6C=EWIL+-2Y>D4GWg_>bhxY!I
      zp+uLKz$oq*Lu0thy>T8(ac{!VUUQVvs=2Q{v>ih$wr5Y#?iren3dWm`rf{G4KzM-Z
      zj>`|Gm|U*ncg*~RL-^douNnSgTh--TaIs+KE&gX)Fnr5oN}6a2PmTL$hPL<*!!r?>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ObjectView.class b/libjava/classpath/lib/javax/swing/text/html/ObjectView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b2004547c1b99a92b9757fd15e9665e9dfebeadc
      GIT binary patch
      literal 1388
      zcwU85+foxj5Iqx?Y)BS?h)B4Df(f@3FQ{3(V1$yY5FgNBm0H$jGlr!$yHqkU{1LDE
      zg5rb4v%legSoTh02yW19WiCCZPoM7T`SI)9cK|DRrXs{JwQqhj5A|x@c1yb8heF>I
      zWk-Ke*yonW+q|wqVVDS@GG6(>bGa)q4B<7~wZ$Wb@nklD-EerBkVY!cpk%xvkD?1b
      z8oCi?=*!wJ&(+EWUU_L29L^BWdY0+r&5G^sn?^<K*;R&_Ap2i>4TcbR7)CDEK|!qw
      zHwAAc!7!9eNeA7mw<Tvp!Ejl_Ag(Y(OI$Q57{;3Tjsar0iiC<`hT)4a8b&b6&`X@_
      zLR9QRO>oL@x)W^+u)~EB!8n6zIcBwL7h{;jw2CRJ`#-%j%-|Y>)*g*vu5nkoW0Fs!
      zf<`K6QZdWWe`ekx0=E>!4Wv{gshDR+8DEx$c`T5|4_+l_mMP9`dz^;%xj53x@ClbR
      zEJJ6AxxBvRR)y(W<Ug3~sA`2;C3s~jZa2HSjXdXxO|Rw_Hx4a+AZ*W7arYc*%W-(g
      zbk;44SF3HPd*@M7lCVwxu!W-Lv?x01?9@SYY6?MDJNciB{d22ZMgIu|3PwfoWacs<
      zhJio<86tM8X7OOfsDpRBTE*g<w*R8~&fd(jkHs|gdKdg(h*tDCX;f+Vi1s0x!}AMY
      z5cw?6qcldPHA~2C#Ar3tKtV&VWC`OE`iMh8KL(myKMCW{4_S8p81e1J6AUrrmf~Y4
      zm<Zt%*V9Tu`HH!8ccS|ki|KG8e2SadBWSxvh|pizUHC*YN1@{ueg3?PJ919bsv&Jz
      z3VKDmJcZjOA+HJXhF-y2r0|aX-V@d$j}i<x68*d(tSLW4_WO7sWv|LaLNxj@3>kd}
      aYlKy3?xzAhrXr-!gC|&*WqT?aGQR<c!eHhA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/Option.class b/libjava/classpath/lib/javax/swing/text/html/Option.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea2adad2814dea45f53f15669c8e23bbda497058
      GIT binary patch
      literal 1511
      zcwUWEOHUJF6g^)%eb5e2d5YyB2smw(@%<`-4c2Hfz@peFuBK&DhD=-1P7$}d_Xqe`
      zyK$jJVsK$xY2uGE-tU_-6gr4$I*;$3d+t5w-uCyOZ{Go2MkWLw!|;Z_rEjbC=Vqm(
      z+Qzo6uG?ixUEZ|KY9$1TA;uA^rBi&luwfK!hKO$4HM7vLjXJ}a)<%)p59bU!%@DBk
      zf?+ZAXa`g|LR3l=4A%{dNR2fHw#pEkH7lk)$1tIsz?;Z3NDI|9BLY9VWkeBU@GFUY
      z6g}t*p_gIgpA0hkF~HDOtZu%@v<Mnk5+{`I0K;h+0R;Ke85tpjJ1~sV5Jng#y)AvX
      zvZzhEG&06;mel96T6SS2d!J#ty{JcCnyZ_TaSoFVa>=mW2r($y(OIPv?MJ-lX&D`e
      zFm!8X#aL>T3r1~4FIWa2QnjdCdA(-x_vWEwubbq|=rJui+d{*X_+p5e+L|--ex-fr
      zd~%Fp;gSpMQxaaw(b+1H8VK7}Cq~+-Moz2_m8Qzds-PuM#H{DsouY+Ubt>g`t6}gd
      z-I0;z-Usp-?Qu4QyN7mspFgn0@x+#^HflxVfysS{I!b3a9OLAppMFYy`1mT&laDWg
      zxRbeb4-+B^nXaAmRu)Jgk^G9TWNHtm7<Mt3WV;wjrgjkD!?+JW5t2SY^6z5mv!FUp
      z*8wU3Jc0xbU06gfmY`snzC0#K>5~M+Q;M1)D{ui9o2BOn!%@Lxii#cZM#Sk8Vt?Ag
      z6?D0Rm=PivR9tFusp1_7B)?$jlS>s8hXp|+JAft)qd%JgkL1Cl$z{*vEB{w{+ap=R
      zRa|ScAb!YN$AXuX^XeE2t`mkAzJZ$_jZA$!(#UI16}Ma!&zg<Ixdl78EvEhhvs&sG
      n!d#h_I?&cb8h|&5;Vt^`4nug~(q+6!AEPasYYu8&<lg%W^@AXy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ParagraphView.class b/libjava/classpath/lib/javax/swing/text/html/ParagraphView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6666ae95454559fb8036631f9c97ca5165d31c67
      GIT binary patch
      literal 4882
      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
      RrJ<!XwCubMy>Dyz;D43P&T;?%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ResetableModel.class b/libjava/classpath/lib/javax/swing/text/html/ResetableModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b575bf74e01f10a860d747b0baf9a22d8aea7359
      GIT binary patch
      literal 153
      zcwRg8Z`VEs1_nb0PId++Mh2Cv#InQ+{o?Y>ymbAN)QS@QjFQ|O{h-w1)RM%coK)ZZ
      zl++w{1{OvJ0gy`loJ62H|D>$c<Pt^()*_HHMh0dL%`ip=uHgLAqU2P!%$!t424Pea
      d^gx=~7#M(R89;y$Xdo*C8;Hfg4kVcvH~^&lCMN&@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ResetablePlainDocument.class b/libjava/classpath/lib/javax/swing/text/html/ResetablePlainDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9094df441a824c6ae49fb53f4119d7ede92d4d8a
      GIT binary patch
      literal 1046
      zcwUuKU2hUW6g|V&mhDOlt%$9*MXAD4S?hx@Hr3i{Ld2$#24i2$0uxxX>^8fD@>}``
      z`dmNSL=%1YM;Y%7NR2cxT>{MBd(OG%p533nzJ3R=jt3ed3~TS~_x8XFKR8~;5_}-6
      zuIRbeD;{!TH(kEx+K#v5xB5Nq2@NrZr3uDAm;^)NKdLYNHg_2`$8&^Z(<xJv49m3%
      zUl#$<9x==n>@ehkaC|S^aY9LKGq3}Osg0H^xtk2pVyVFp+a^UFGe~QgWtcfv+jdFB
      zKn8OR*)|WIfVa2)$kv4|`k@jzNP^+2fh2U|*Bp=U_Iphp?8~vzpx?6Hh8;NaepF0s
      zC=)uOSTK--K}JN^A;C)RGP%;ODXLe8Y3vi4tQ03BDK(_Y6$2Wk<R}G<2U1g~M!~=;
      z?l2@fT-3PN5nZ)eRrZPoN-!z%fFHVci_AYPR;!aECVg)S>NNX;*SR1E8rB$c=e%*2
      z&w{`Ybd<56!D3jQ5PE92WrzwpXz@dNV9@J+KWOpijtq41;(RJn3oEonl)iC9=tB_z
      zvpM;^=yi_K-82m9UQsVMgS^ric8b&ywAe9X(NCB^p<)DC`b{W^g=?xJuiTh!(ZB4*
      z%`;rTm|_e8Si}uQzKNv~c~iL~v|0Xw<#V>Ks*j2DL@8v4sIfu<dD=k^zBM-Tme6ue
      z-i(^3xNUyMGA(rX7@5}}F@J>VZz#Vx!@VCT3YJ0|mC?8iMFLc*@`BF06yDxn#`B}G
      J4EL46_1`(z=FR{B
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class b/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d21f8bcf8ce18bce26d11a476a2039d0890d580
      GIT binary patch
      literal 655
      zcwUuJ%TB^T6g@**Dy51F;scE?SU@#a-MCO$Xe7~~3n47r6_`LxX%jjqzh&Yhap4E}
      zQN}w3kr<6}F>~+SIj?Eo-d|n;>|#wvjA7@-xpfA1c<1_UTkwIfJEH5^S3KmxX?VOA
      zwA&s(?h6t47eR}AI#h<uN!Ix!CjSE=&XE7ZCPFgkuI~!hp^jZM#1G}M#Gn+4bq4i>
      zKn4^{n@GT5NL5^)U-r8V-m6IwhWSd+biBILbEE9Tp(;9V$go%W?^6#L47xk}%%m2s
      zi}eH;7EI`vV$ee22y)PRQp2E|WfLn%GbHI;<sNSe-XfK1(C;;Q*_CnDe>dEg39&&s
      z3N4LROd8SeQfSeeX_BPQrpl;l)-%j|YGRn7Jsu6WkfPlj0x*j?s`O=$9+69gj!CqY
      zdqn1oZA8-};*=tV><~3lkX@FdNaMwEkbS~PpM+&SAoGN!?{cR^DNh7Sj05E&<mw0f
      CHi;Ji
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/SelectComboBoxModel.class b/libjava/classpath/lib/javax/swing/text/html/SelectComboBoxModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9811870ceaee5c7692264b74650c772b1c7f65f8
      GIT binary patch
      literal 837
      zcwU84+e!ja6kW$_PE%HPv6~t6pau;+^<YS41cnu4_&(}MPmE5C$MUlZx<C(oKpz$D
      zGb1K8)xbWNeb!og?ah3AzP$t3MLLQAL-xkJGy6vOUUZs<<b7$hWZN<-+~RdvwA(fN
      z$nKxn4Q@pdVn~m|kNLIPv&K;ohAn^5OWx(utXbSeGDJm3NMX_`RrY6G+)810@(huE
      zg)J}yGubLbs7MMLf|$|~gT@dqiw-~UwQJnDQWY5H%68qfs-`2<eUJ>vmgq8U|5DDU
      zYpR_f*Co%X2Ovufo0-2oXR9$VEa-@0g8bXJ9xc)I6H8~Z|4kt5sOf2>xvFCg>(n#d
      zJq_L{N#3Svo+raHN#mk+Lr-}%F0EqsoH{=dY6eN4E_W0SX%Y`oged~bH~l9e3Ysuw
      zCh26*&S($kUZFqIA%JOGBW}__oL1cfU<R{L-y9MHa)HnRh0bk1WB!}1x!D8a9J&gN
      z9%`r%q0EG<x`gBpBTtxr7&CI}V}xOO*u@^9)mtp5*e_Ta_i{<~DkCDXp-9R_ZhQfN
      C&b8M7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/SelectListModel.class b/libjava/classpath/lib/javax/swing/text/html/SelectListModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1145a7697349ff2ddade27f6a55beaa18d136431
      GIT binary patch
      literal 1125
      zcwTi<?M@Rx6g@+~>^joY0%D7Th|pH)ir*i^L?!4Z)dXsqKs07)M>=L{lkK(=fBO<9
      z{`apYQW8yk0H4IC5bsPkOR01>J3D*l+;h)8cYpu=@e9B*?#D2~aQU6xvG>f@d)e4A
      zJ+bGRb#K=(%fb;=uOwUE^JYyrF@zbW`=P7it=)F|5mAQulgTzjOL+FSBQ%m>w58c)
      zv*8C8OGBv3$AAwQlCmK^X*<CILrN!`ZBIJpV@W9<;i4-F_>du#%U2k}Pbl9&2nmkU
      z;4zF1bUw7Efg}=fFpP7=a4LpL5;0iNz(fypjw23(AyJYI@uI!EE!>x?aiy|ZwVjIX
      zO7-mr!(Lss2HPJx1Zpd7*J{>(4uo@7zM?c-<e0+@HBEj~SXscpEQW}yMxc6G<j8^3
      z462T>-GD@87dWoqD&@802cey_RJh1t;u?MLXi}=RrHHO`+`vupg(L+uR>Ko+$EJ}+
      za+al>XOdxzGRp%apUdTsb$#NrjdHW?R>hiBW{nTnQB>)eCD%jrL@+`(O^E*O5j6yQ
      zhv}hd)9D%7t!o^REgWF9@Ds_+1EltmrtJi6&+cRDn@-Nqn$pRuw5}n6rxbgJEJb*a
      z0@FATbzQ)WPya{@0OE!3n96oBdqigFgLTrjp-Cotz<?x<OPD7b`X>Xm9a5`MMWRc0
      zv7lJH$gg}s#xJn+30xg!X}|oD9cDit{yD0dL6p`_a%78|c}108V}bTdc+;n$=xaz&
      jBe%2$;5P2~8ceMTh^R7O1L~*_*8BX3_%sZ6HR|3!A6M}D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6541ceb6e2c4d1a104bf7e24028f664b40bdcf06
      GIT binary patch
      literal 3498
      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
      AE&u=k
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..790a40929cded2bef860ac045eb5b48faf494a2d
      GIT binary patch
      literal 1625
      zcwUWEOHUI~6#h<IDAXc~6%`*Kg0=-2-!FVntHvg!5T>$Jhv}6Lna*J67Io*!Kj0tm
      z2e{BgG;v{EyD;j;m5Fhw{s!Z@x3v^8scEM7p6B=7bI!f*e!YGJ;3%#{5hA3PtQG6N
      z5!`dUMMH}F(kRP{YnbwZE6lPGawKb-T8bh<IIzLpbSlfP$Vgdr7HU$MLPpU^=-=pA
      zPtrw5D4XG0Y{~kSWvgl}xPlO!ox7U7bt6Nd9HA%cdx5k(Id8c&5oXFDbZeKw%-nPs
      z^ymqpPb)Gviq~i6v_6v$Biu7Z*xqW%P0!BE6*Glm7?H<c3ES#W=GAqk&Vh%7*m70a
      zq9i<<DRl+H6}I%Ngk*lvs~P{UmK_9!+3=hsbjq?5j2s~h=i60Rd7pPYM_wcplI`7d
      z|H~pZPl#mwlIZ5L?Tce4cEu3JP#go;PY5Sd^U87{j_ru4-Dn*B*g@#cJDw=iDhr}o
      ztoNla@7tC;Z&e*7H<S@|M#5NI%FX%VqefJ18Jw%i?OqhJU{yF*BALpsjfBaQ<SnxI
      zR;yIXmRTk8P9TLRxC^7}Ya~{LCyn(^`siJ5Gi11Z1XHMrioYWMhU>QVe2Sva1C?wc
      zIkT|Db)HP+VmO5}QJf|m{J+k`aTezYoB8zSvap>yj_t??x+6UG<g0pbz#(+_vaA@z
      zOutsO#WhDYp?9s!6Do!f&v{Hd>smn|f+#K%hT1iVi}j~P7~(+)BZLm{Mdg|4MvOI^
      z`0j<EW~iq{-pq1ui@b&9tu1mN%iCJy1b;kh>LRO21GcD$T`YC*H-O#jxrcW**)PIt
      zB0aW>z3EpNOz&C6aQg5nMxN_T2l>BG`+VZq_ssGGv-yZatQmrODiTN{rI8XyGiFHd
      z#u$~~4UFS(18baDQaR~aGjpfbeAe0Gb!#IVVFE@Y@}$<YZjDks@QV)YuN#{*2uJwI
      zRba>3r})+;#c`Zyq`1pI>b!$vZ$Z=JFEGsC$V;5Oo#uThT^CAEn*ak00et7O{orQ(
      s<c9oUpr6>w>st8+o1lZ3#CZnm;K&QC3-Rxw&UOh?yv8)446+FQ28Lp2uK)l5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdac195155016b965962b7c2caabeea355de63b5
      GIT binary patch
      literal 2235
      zcwU`VOH&+G7(I8MFmwPR5D`Q~0`mZxpeBZypoqpG6B6w>mS$r!a|=2)JyiD{3>#OJ
      zZhh>cE?l9NXlYeQQd+Wb;liKb(uF@mJ$IPmAp=agnC^S~-tU}q&-dMLe*gQYZ2;#`
      zh$AGByJfH0x6R-K$6GR$ysgY-wc?tVT6d+jETtNnwXD6_b=wc5KWn@0qFsDHj)*|J
      zMlfBQ@z)k_$)buQCSWdk6|+8eF$he89)uEz1)3!g7`>TqSX5RZvFgjBEJ?2@1;iYI
      z)Up!{O$ZF0h{Nz$&hZ>IEijxsdHY<dAP|`?mt->p9y8DaBY`kF4V=Phfp9Wa&@0^r
      znvoD_%R8Q2sH`kX|AxKjQea2ET(sSS?K^s2`xw!R1*T6Fa9lEYmWZ}OpfymouPkLN
      zxgtG9N0T@6$LGV6E;Cp5vniIvQv#`mmFVL>Z6J=O1p4ueHeyI%p%F71*F<Ln=~7n1
      z=U^!~0*3TTyFN4{jnOzV0s|*$Gcbm6k`hv&t9lf(q8!(p@qK$e?*uBFzyv1aI496q
      zXW78Bc#Z&esYHMsGxpz+Z0cQsmXa*Gwr?w^><NtQ-(@ME+OmhgqzVbVfT=hx3iQ-J
      z1~X$IiyV)?B-M;!;9^Cw%r4epNF9+Uf(-43W;N%uffw<TKoda=wp$_K{83px7=0A$
      z0Yfy!%LZog3XP#{bDomEXEW*V)nU0>QTpoaa#*aV|Er~-3-_{t*KmcFk$RtHBXv?&
      zCz&kJrd7YZDt)!C@Ax4Sf#}+fXED|k2?WkIq?a|crcLNL%u38^%M{3*c-am#Osib+
      zi}JFgL)-TDjB5}&Fz0#fDy|&_x*PW%({eDt%OB=1%4bOT0RFRtbn64!+jVo~Ji^~8
      zv~pJ)NAp|{^WB!tY@t2<5FP2hEp+`@4LrkVYjyc!LT(V~BRtMoH`f?~9y|e5N4=y7
      z5wZ_Y)_^}GxsIGjXSRPq{}u+qmp0L#zK?;vpV9vg2krcIW%?!`V$j+MiN4JC*Z=&v
      z$J|X$;1jZbN)?}Bm~RuGR}~EGVDBoJz*(-dQZa;)nwBI^*R;4*JAh<3w}~^F`94xw
      zN$=zXm~U?g(W_^q|0^x1^uHSJ@c9MDcQA-AiT~9;7m_s%A!^dhY;<@Y=WEQrk~z+I
      zF7pT%7RE*&;nGwjd_KB~LCx3|ot%pG#Ps)>vER_bVNc`%Ufqa_u4qltAA4$s=>@P!
      zHQz9m-=YI|>HIya`i^VgW1Qcz_@S!q$`0?YLpjXhb*j>%d5%Ivxqv*bQlUZr7I2NF
      f(T36LDWb&f#C5!Z7<ax|Rbb%;-#aHv<1OG{9J)y!
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fa48de61f66e5db0d967b5cf1adc29e134b45dab
      GIT binary patch
      literal 2672
      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
      JxPe=6{0Gy>s{;T4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..10297ecac086683651cb5da38b9a92bcd42607de
      GIT binary patch
      literal 17082
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class b/libjava/classpath/lib/javax/swing/text/html/TableView$CellView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..13eb086dd277ba11c4710450b42780d2db966335
      GIT binary patch
      literal 1794
      zcwU86TUQ%Z6#jOI84?ajinOJL7O1gJhS*TG-qLbu3N$qVN-*#`#Ixw&WCkZElI4p(
      z$5-oG6!oExKKLX06ZA!WEbcQ2X^>lHW#*iHzWwd{`Qy!RuK?V`rhyP4y<>f6wQ`L;
      z+uhD7*;2XZs_x|0tu04ZZMl~!NXO9&17X7W>F7s}SNleT2u96wD!Z0Tpd#;lZ?C<J
      zsONSgHBFc-U0^ZK;0LyAs~N&f`a<+cz=9*|(pC9Pl@Km?U&|;6ae;nBW9UOtAcjkX
      zo2PIesTQ?vqGY>rxmn+meqfF;RPt(;Q?-0s?>oY<j*MVl<Y_mP9AHQ~gzIP9XYbfh
      zt?5`wmaQGnpKsZXHTiAR_5%Rhn@tyw=~wLUWiKM1IsaIvVpL!R*ZO`qJUoozCMFDw
      z6UNR{6PQGV>sq&3cD-5W=y}23kk2lkZ;&wBkZRTUcBQXu*;w?w`n*!Uz138bDf-fx
      zs&*<Z@IG$qnwbLcAQIzMR^S8NB@Av$)vGg^&YVnQ7f_KZAH_62G;oiQI=wzm*2|?-
      zS4H3>e9Z9`R!WuC`DMcGGs=2gEkA%y@R@;62{+F5N8odOK@h!hu#t8v<{XQ4R<?Fz
      zO?Aq5OccWd%oun`NdEs!U>0+Pe&tn|)!ilxr+XRNQf7FB#|8?7OK;DLu9Dl*7g)d|
      zQ|wxPL$Zu;Ien5LQ`D7tB48k*bNf`_%OGQGD;qjv2FjglqOI1RpGD8FTWX<Ile^0H
      zT-`QGH}Uud)#JwU^w^z91tC`Pntn|#+Ij}#-6^}Pp`75N>q@`iSdE5k7^t3kb#)av
      z@}mL81c%tim!$r42SWc0{Y@tIEz&uOVSsUhSC4tGCBmHA$Do-FA0Y99_aO`gxDdbp
      zVx~XwF0ZZxdx2qG4wwZ?uCgqwhq1%>RfjQQj%E*Vy__8y+sBRUPhHY@aQrvB^$!N|
      zZ$LcJR_PKaaEqO$VD%nSfe9Y1j)~X2*Z58I0C&vrJ~HM@OqHg7M($VK522j>9aqil
      zOXPpSJfHrE=tdjHuO)^RPlGKT!IoYy{}}GTL<t2f;~9V3zR$2fz#I1F5K(q7PJ|I+
      zG(})iKc;8^(-g;jN??|f+^)lTMpv*#*RVljJ+W?fVvXY|TUg=9Mlgp}wiV)MEyz{{
      N>p>B?mpH8(z<*eE!J_~G
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class b/libjava/classpath/lib/javax/swing/text/html/TableView$RowView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b16dedc8eccc57ef66ba73f0e01fc478e76f8ab3
      GIT binary patch
      literal 3261
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/TableView.class b/libjava/classpath/lib/javax/swing/text/html/TableView.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0dfa3ef4b3fb7fe1191c8ff616673a2bedfcffca
      GIT binary patch
      literal 12518
      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
      VJM;snh%Zpb>ii-1Biz0V{4X^yzF+_V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class b/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9f6957ee6b38360caaaeed4daedd6f646f965b53
      GIT binary patch
      literal 2824
      zcwU88U2_vv7=BKgc9V2VDNtacP@pZONlQTRD+Q!hkV;aJh9WI~Y}=(>NH@5<X$yXW
      zh~UQsm&FlrMu#g#Wh7V~8StXcIC`bm{uK2&n=}TRn(0jT?AiC@d7tM!@9D39|8Nh$
      zc6_M7C$RaHKB-T~oGH^9i@C<M8yj~g(y;;4nCf<2+Z@iiM!(@I@C$4yZ=1}fU9;3!
      zz&}ZUfmMkG9x`y3K*({=rj7n_Lt1ZIXyyg(FWS(fW|wK1?jC_%;YFfWj?z9rXg!%x
      zBZMl{sR&|;KvlSXAP9k_Dij3dYMF{^)F@aXuw2HBWnD8J>$YwEY{GQh5SF7ZgjLWK
      ztQKf2i$=v7tYw{JhPy9qOc)mHYznt8#8~*+Rf~0KR<K@R^<p+EHejPb9b*>hb_6z-
      z3tOs3R|qX=Q_w1~p%O<bHe(AZaBbak(z<ILNF@`gOizEmz}_;<Ka{5uj#{)Msvsh;
      z?tcwcbf8n9p|sGROjdG8wR)uhF%{deo$vbSC^g6<i=}mjJ2ZUC7$KNJN$Cz1JMlQ%
      z$8-{ge$optC~-Wg;we1+NRmE%LNclq7|jd6&&p01w(go4ixqTXw}M>-*%uh7*n?*T
      zYAu#j)P2Q#xKelux&_vkmqT*in$pLlZapfV!#)9pIFDr0hCr%}3=g@LISKP!Rz@LD
      zd#|wPRUD99)sO2=GGiMBCnty(kWg??pt-zvPsVawot7$+=wpXU9*d;1n--QYB{;0&
      zMH~@OOC{h)DktW`E!hPr6-Q;K_#N|{AvcbxcnQbJmYea;t3WtBR3==RJq1HNA43(7
      zlEBL<Ucsx(DkqXaOSqDgoICXi(=z(96T^m`(udO?E13~JJ)qmBd@pSJ-Eos0xR}I`
      z&SefpF)844=;PO2mygDh)-BE~+WCyMz?#KdgJ;A@cY7h4E7T(pkZAJ8!kQoS3y%wr
      z+i8O$_-(Iqt6Y7I99L>zfofUGb~&XFD`0&s<vlo+T8qF!$YNT>S=qt0rqgSU8@A~h
      zqf)UqRJ<ui=Tdoy3@4MGG!E;wcQ~sib@Ea(;y4E-(zZpwJ(P+F>+I4n@;11j;yqjx
      z2r|cfaIM^E_AV>w(agMO3YMY#V!*pML;aboJ!0%PC25V1YQ9xQ<W)fIyvTk0<89@w
      zcz^LJcY}~+*8<`%zK6K;XXGx_NXH%2N1}Jo@FSKVzl+AcXbvmme$79NCV_Z$<U7=B
      z)j4d6*Jw4f2n$?Cs8g%SVe2tz^q9a5dbR3VJVA5iCbntHEaF@Tw7>)Gok6n~B5)sj
      zHGdAz#)DdLPKF42A!xi`;MzaG-9%KYzKz~l9P)w2amDjf@=grqIR&IsXAb>8p*^m2
      zYDx|R_c2IgxjgZ$SM_WBwXl}IN8m?_wI9V23}7WkK@*On4THQZh7iXIbo1mMq(=%m
      zj$wqWQH<jxrZI-MxVp&wtH`iw3pa2Ex9~b{!^SL|>t{^jcTC|ATI<Yq5p|MR3^NYA
      z)hKlk-pZg7J|eis*ke?n3EwliNqlYi8mDlYnr*|ENOM&~G`lguj0*9zGJ7Arr=c?c
      zX;yOs8d2E%daJM(AeLotSd+qhoS}KG@s-yLz>Y}tF5G0tFNj1RAUlJW=zV1SNaWNE
      zRz-3+CncYQs`)!T0g@fx6sg?Il)!nyy1>S{ga%w@Ay;^pe#GnOV}$Vu|9iaZQLr<g
      zu1LWS4?No%ousqRqhKxG#yg~-g`&Jm@P2;hVJtwl3T@mZ5^R8mIjoS69L^^@<`C$}
      z;r&GPKWuBfM!&|lPl@s~V!Mt;e9rwZJUkonu?l#6+`q((yyR*90eyX3U-rIS`4<t4
      B-KYQn
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList$1.class b/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad5c0718fc548bb06e9d1047d40caf2aafeb5158
      GIT binary patch
      literal 944
      zcwUuL*>2N76g`tTvFoOd3AAiwZGj{$am)G;gp?+(WHpOO+(6l#WRw_EC$cBd-{J)%
      z9{2!0fsa94k0X{B1eQGKu4nE&mcM@g`~|=c?yE>JY`t;cxyNSs-t&j1;K#xoiKDSO
      zb%T%xW<`j=>&*nOd!g9aQK2xDhyKj`Ygag%PA7pdsjx%+{?PVC!<|lfz>t36`JQ;l
      zkjxjl3`%t};5w36$RLF@L$>buyg57S@xXC=W6qGPPx|h->jqxr&x48>c_Blo{y*cF
      z>H2=aUBNXN45@0Z;#73d6&akwDVoV03>a4PlGPl$#2GJ8whLVitJH5b9osq7aE3vX
      zwrzDZoMTAXH4SUTYS-G<o`#E5EKN#Zrh%K4hNa;u6+{*VHyG4r!)fhXO%2zHZthSj
      zA9*dO;@B<96^W^N(Ac%w8n&V)X;WEAI&+5Ys3&$h40>lW3;KM|lM4Q!Ln&I0A!GYK
      z52|A~3^^&8wfz2g64I^>E=H4qihB&je^(dVq+=4%lc1NrCHX2@w+UGkDSm?XL8f&&
      zby?PcLdiw4GI0^%5}|_Sp9J5CHp+=&E~|XRiDGUgCE;{h!dX?qc}>CvBaU7&;_wwC
      zj;|XF60aG$#2dz<#DbBLxM?g&ylE^;G>t6buX%T2(D{faYSU~TtiZt<4zP|cHu0F&
      ze1b9#QN>g2;~7;vr}G8+c!{@og%GcQ+f&T<OwxZC-EfQgBTZtdfE?~f748B*0A*yv
      AMgRZ+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class b/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20291190cf5affd100b086ba79bec85f251b44f5
      GIT binary patch
      literal 2576
      zcwVJdTUQ%Z6#fp7D^rRTkOb%jQDLZzq!(+UXv;;?2C4?4^@fLVNQX6<$(ot8)&Jmc
      zaOtxTS`BEc{s3Qn_Sq-b^3f;jK4*qd!q`PMD=V|-oV~yO?QidM^2^^3eg-gwN&;;R
      z`ZmAA?-|}*)2<l4xaS+U{i<cuxa$emxa#|^xl#8;!SwtDIvBd8zhQCmzPYh2%Cs71
      z7=I$l{ObIiV|zZgeJ_C|L$3lc9iu2*lUwGee8Un9@hY#?gv)THP_gUA6EVGdt>(DC
      zL5@Y@Xjk&KzpTQiiKM4+OTzU`$6m|NGqCFn$M#s1xK$UiKL#JgKikeeV(735p5bia
      z=weLEC|)JjJ%xQq0xGl@yCYLjN$Tk}z3RSc86}d<kvvmHvto0<?viKUA%_`#mVA;`
      zXVcs=r7SE@N&Qc1<ei);Tc&OLvkdKH<0V?3b2dc+r>Tmg7cn}O#wm<wcn-tFbw(kk
      z!0^0=6w(aG3#Khr>eUV5t_D5oDL7?PmXp5p9xnEc9oAsHltw#7B-(_A9-NTeZ<{1V
      zoUaGURU*Rj`NM06rF)u2Np-gWYbM!)r%RTmf~TaSW3u#f8U~S-)&&ijz<NbPFHT77
      zRSkXUm)5j~Zaky32^yT{>-&vQ@%2ry#p@OgX&1LF=dRdX-<vEcryAe>gRLQ$usxj>
      z;V(DAXkKWJ6129Wy3ji|9yP(rLE%n@4o8$A2we@vl&n&45>k66QO@k8R7x+{^{Q~W
      zPe+x4hyHC(wjzxcyqUnwy?f}fPHA`xHz=d9L{-p5LmB0i<pMb)Cp4eN8s15ubl_SG
      zb~U_<1(MEp*5su!$32n8d-x!M_o-X|<9gEYA&S%ml7rYvc0n7Gz7u#7ak-ic&Pd-_
      zKB7I6N?9Utnv|kbcgteYRLAo`FD7LmgO;~#D#7BOCp^0ODLdK_1Kq{Q%7ae-2U&DN
      zqn%@9x1ozHnn$vkJi6-H8$M}b>GxUXH$WCmwOSukPmM5#Fih_!>Fpf($WP}(oVvA(
      zGv8wL8x{Bh{dN%zV3}wXh{6(HR67!i4o?WMNGozJt?y!7pJ+gDjsF}S_=1Y~QpNWN
      z-Z-nsOY0?~%@pP&?FF<Ag?*o_1U*OeiCw&`4>gd}hZ{JrXF3|VsApmgT+%b~1}@8-
      z?JDO<6|qa=eNWgw;5Z(TAP=edA8`ghDGo~kYLmlA$U#~&BvPBQu8`HPtXbOaP}Xb2
      zKc=kLDK?I)fNDyxH$Zy~*Dx1qW2m}-nEoBkf7O&Ft`>h)RD$4GNQGe@3lYKk*Db-n
      zMFub8jfmjOt--%X1}{a@&b8A1Gcq_IN&8}J=D#9?uj59u@dX8v3qg_ua%l(4EjaYu
      z$4Q1bDZGthNa6x{%e~I~7}a;Mx`SISb+GQoAUg3;cy!i}BtIL7s3V1s!NcHOm_JGR
      evpd*mjUPS0KRB0d*i^p)Tad?s(I3D3^!x)j#2-Ka
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/ContentModel.class b/libjava/classpath/lib/javax/swing/text/html/parser/ContentModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..599a5cf4070c36624a6465529dc9821469b8fbb9
      GIT binary patch
      literal 2305
      zcwU`UOK%%h7(F+!Gl}EIsd2+2G!4Zmex(Cx8lZVVNgGIUQc%DMSX7f_noMiYgz>l}
      ztSVqzQP`kLs0gZxO&3KX0fAJ(f(BTCkl3>02k;9h=iZr4>=cT_!gF8WJ>NO!`>ucb
      z>+2f;9>a?oS_HCZjC01SUVYQDmvqlu_4H-0Qr1@tw`#ijq+@%g?aergW?4f-pj(FP
      zWrM*d=g*i6o`yDol-ji%ea>_(qinrp%$H3DSJkp)x>d`uU!FcDAWjJEB5Kt$Y_DXL
      zYi9J%+4F;EapOaQh|T;0`C`+YMg_D5e=U$KZYRg%h_|*vDq>ooZOpPQZ$h9olP&RN
      zk_a)hq9=|d?h!~7E!&)}Rpw3iC0{_Y=q!-GK^0sFn-Oo>s?xa3-Dw^#n-$U;&6YYK
      z@L(KWNC<Qor$W95ngbBfGt)b;#83E89NpMW(Z(s?fujLPgFicl9f%{2T?*DOR_BuG
      z1x#tm9^Vwb=2>OE#0-u*D!uNQvzBbbtGOgHerL>Bb52YUOG7~*-As542l1!|{dUvV
      z<%_fZhu8<k;^G$PdS9}y3ACG`tmK`l*is7uJ&g@Qqk|?n^8YmoM9s>Ix2F1(Jff#9
      zw@RlonQU_qvZu%6n7~sM;W=}j%Wyu@;Jz=^-(~DkOlo+h;br@0aU7E-wV7|!j51A#
      zdd^wXj^SBMYj{rJ(2`x#?@Fj58>gy!u3=YCJ8s3K@h9*++acT%c>O=#QDYMpn@wtS
      zpt>21YnT-%?Bt$6Y|g2<3+9w1Yq`6g!a)hb_F;ASiz0#tprM`f4*sjQAjTPA2<Jk+
      zcs24Na+J@9|1<oixH`m9aE#`@#GcR9)qDAkaRf}lF5^DV;(ieB4<M6F=L1YJQpUz4
      zKrX+I-Yt|ak^{~WWtC~y6jF~L9U#fsUi2vvN$d+SUuBHEnNXMoV&;0+(Z2<pBqVU2
      z-?s_;4imkr!2A7cA$S7&sadGmUhcK1G!F-9%3MpFRAZXl;5yP<xq2uYxWLHwnCl{Q
      zy-)W(Q2BEH{V-oD%$H)mgp!)V0iMb#J%S8(vI;q;7+eU14&-J&Lto(w^nQo@B_#54
      z`YrMs7<`4(^h{y%)*q5mtD@A$QUf3H@@10ygo!>yFRoDjWu$Sn&WeGM+5k&EOcE`W
      ze^^;Dg4=bKXOF8IJb@<za}EcM(U~KaO++KtTCatkw5g-(b*<4Ew#E^R{sTnX7j%6a
      z#5ex}F%&>t3=A5P1}Rr=VxJr~Fh+OAHt_T%baA7<yYR6j>AS_x=B?lA2=C|90KVty
      zCLQ~M#rctC`I!az1%uoh#;<j*jfAd^;5gltt_=sS3HgT>up0^lw&%XW)CP*%)%{+l
      Mu02$DQboP+H|M?rp#T5?
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/DTD.class b/libjava/classpath/lib/javax/swing/text/html/parser/DTD.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a73805875b5f78c0e88b581ae1f1223336824010
      GIT binary patch
      literal 9163
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/DTDConstants.class b/libjava/classpath/lib/javax/swing/text/html/parser/DTDConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8cf09fd9cad3710042d66ac4f0a5f04f4b27a21c
      GIT binary patch
      literal 1133
      zcwSx7>2lLB5C`y866b2uCM{RFq2(w?O}TGSVx{A0YzJFr$Vb!hKszC25*PYxeBc3i
      zD2Bg80il`9cz^cpN?PT|&u`y}Xp_1%DluB$%f4iX?(FOC<bzw}hlTsG_%wDuXVY0e
      zbv^0z_9wF<n-sGeRT#BZx;xI09KGMmcM3*M&*PFaVm_nRpX|5U_#iK19fkxE4CP3n
      z!>HtYDncvA_hQjka2QoJ5~V7mO2`AD;u_LatUuHl)xtnV+agqKFsdI>e{L#Al1o3*
      z-{;UZOoOh7mF88kmQHSI{_VA(YSVwc7EwD)y92+6AQ>f61dJL(9%C<3HLT!dRNE4v
      zi20z57{7Wf-lTpk^Z_wir|-WL9@6|^IPi7UOXFCCQYDnpxfg{vH7XOyV=4I--igrD
      zL79hoX3Hq^M4zVvl$G>4=-^9VBsv@62xATOs%@+qM4lKZEUDK>Dh+Wn)%fU|oaFbj
      znd~1-ck=%3IA_!`FM31WF>V2SK$lfoA&08!xawF`hZ}~Q@SNd!xMg?&UNqc>JBF9w
      zWy8nd<AzVbCk>y1R}7zq&KN!mpEG<OzF_zwe97=-c-88^W}WYf;j8d9!`I<;!#CiY
      z*1T?6^SEtz19q+X-Ldw+Y3={6;d}6X!w=wxR{uxV{vI2C0zWnU41R9S=Y=)jmsb6&
      N|L#NmM_=oh{{lWecb)(M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/DocumentParser$gnuParser.class b/libjava/classpath/lib/javax/swing/text/html/parser/DocumentParser$gnuParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..92d8752193b02f635a71e90074779676db9e9d0f
      GIT binary patch
      literal 3356
      zcwU`WTYD2#6kSt7L(<`1D}pF3!KO(e+)>J{q(uTLR2m9$lW8&}1CvacOlScGMCGD*
      zdG*;pAbhocpAY^3f0UnVPlid_P}2C&&bjQp*WPQdb58#G_piSJ?7}ZWbST(&Q@f+h
      zBr4NJDW7ok87EP2ie{p$*%jSRj9A%fQ7<{;?lh7wRcoUl0tynGCf@2^sg}!@?IdbW
      z3Ob#FQHktSusz)d><}Ff870FxqTpP#EzcIlnUSG^Nd<wVmD58|(4}HII>T6ol`4W*
      zrC?htJTJuRv{BN}REtx(ozbRDUBSAvmDS8i%{FB2Ee3=D1qa$GqRu*rP;v_TTBoF7
      zWkD<DOg(88C6a>W(aXt!$q+VRV-W8th_{h}icRQb6Kb1b#@MXl9rQ@F4^?bIuYwgU
      z);z9dZz<TjNPZ_XW9iYH;aK)*!->>FC+RgsuOXp-tBMG=k)=XL%S)Uk3(T~p6B+B4
      zUSgbn3<MEXu)BS46*0ug)pS9(b!k&uA*A7sVMz|#kqBZ3PuKqnpkgO>v4s^!vz>9P
      zV#p$Up9*6S_64z*#kEhdv}`}SNFk&|vcc?YZFF2tDp*w$%xJOf+;!<6Y$1Ibjhebd
      za8E#ZbSA5pCDTd}hZRJdoRdVz>p6bx3ElC{MNdane1d~v3?muDaRvQLL{>3^QDWzH
      zM@o0|?u!n*MSv07423DSPgR^miY(K2*l}!Qs_N)GoBeNcpD>DLQ}@l7{*d(Iw2Cyw
      zc=~JH)vVkkPAx{BpF{KhSk;kRVjhaysb!9YT&$|*b|_H2W|neX7J|>I7#D)~AS0vm
      z3L-5tbg{d<NVaY90`G~YT(5-5RwgExXerO`3&Q6rCUHR!F3aeO7&qIxF#{$qOA4^4
      zS1MZGy(^mxeL+shA@Hi0QgIyz<=V-q(6Nrx@PLVI@+t~26ohUVSrL_HaxXe?Da3rJ
      zd=o|DrN+k7snL=7cxR_>>RE?p*23)|$_m!j_l{eZscSrsHmHn1=G=LTZGF1QfMTd(
      zI*2>G!<L{O6*IWYCTY2xzbwLQ&Z>Du$lindLIi~u)*6(%ZArSNQ;paR4TRK3DjuLm
      zqCS?<etD(1#hZdBgO7<wrG@t7$&m~EsfuUlCi6Lm@6_{FZ)dx2bvxl2UQMA)!4LAH
      zuVD2PR@KhxCk%Oy*Uxv_ApmSls#M~=X=;^<@EY<%@u_2R{Pm=)StGv`I0~Ud;&MI2
      zS&}o^?~29$KsYw|C)Agmc3?IChxr9A((wY;aMa_@yRa7P0C%(=-CXOIx77=HmEpvy
      zH#Up#EZ&XJ;r-h1gE+r^v-oHhgLBwjhgs!jaE0NnGT&<rP`y4>FAm^iLUhZu%e^74
      z1vo$Cf|?wQeY6gG<TdCVj>YD1q7nO49lM9c0a;?_u#qP;!f!wF4LL;p9HKabvu+N&
      znY?nZd*w#z$e%SLH=s@|toRmDO>9N60WIRAMSL{gQXX1?e&X5Zp>1N=iyquyBi5yb
      zShpc}LN6*V)|OfnAFGed?;?hbuHg%}rPuu$e<QnMKU}X-s|~Xxc8t>-zhdR!E8KjA
      z(j1(I`sXEeubxzl+5)CYzzhq&ht0Up<i2Fl_euXl9_>ds%<nNgZb*38Pk7iPrw4I*
      zedQ+n;B6Xw_$Cd0y^y6ROz0`Wo-LxmZ(I!m-{LzDD#5R;EN9#&zx&}j-NhGf7`0|l
      t3&VvVo_o&y1P$;TjKz8IzJIyE{k-em;r_jF|Nn@eAjeWLH{fS<{0G_fPW}J@
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/DocumentParser.class b/libjava/classpath/lib/javax/swing/text/html/parser/DocumentParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6a70fbd531554a35fd0a0d96d60507c82e4dfa47
      GIT binary patch
      literal 2434
      zcwU`UU2hvj6g}fOcH(T>lDeU$P}(LT{zz+DVhT-ZA&%RcI!&pKAqgMa*i(DK-VN(D
      zgrC3<;5YP@AmT_=f(H;1AR%7)1AXU-H^iA;$4zmPC0O#z&b>3|o_p@x`Q`6#zXNa)
      zAA}JQNPVP#s&AxQpBZK??Z^!$U3Z#|^tx`hq@7-{D($8;oxAQbjG(~8fd_Urh6EA^
      zBbOGkmf3Q2(`gBWJgdO@!Xfy~2@F;AMq^&Dd@L}#&(T|@#X_!XIF^0ea3;NzS)N+s
      zDIyHi%(lSg!^EBBksgE4Rl_u#YXVboAB@t%T%s%x%vx0$!2q7pFp49?5IC+OjG-`2
      z2xR^jj|if8TEU$Z_`;9JlN$PyJ`CJ0X%c0X+A|tPpa~o;7^b|_ZmvnYq^~ukz*xaz
      z@yfbwsCCyEbm|80!=V0Q)u{@c^JmA+?n>a6mw4K+()XlZ-9NVjZ^VkKQ6#rfk?W4Z
      z8ydzW3$z2AU+Q^Ob}wicMntI}*Kh_2?(8FxC@X(T!wk*~L~GK?nboEHN{^!aq%F+~
      zxkuv(?_5JC)uLmQ@mvIHTnytyflG%^M8hS#Byggxo7IMV9MXlRJ>DNrF-;?*;bmN=
      ztoIx3R-FwJSN2yi7seId@;)Z>dR0|YNz&6s!&Q}Rgvl<-R!gt(!cX9ux}oG0vR!2a
      zj{RFJfnj|o0fAAYW?Ht))^)om9RaZ-5Re-J)BT0riv{6Ez4WtIQ{7P}6<^J&0*5O*
      zmcVLO;7C`c=DPEFNvAwBK25|;xrS5-R4t4}fq373@-}O-+NIxPMMWJIBJrOi2xz@3
      zy6i@}OWU@n;&?p2S1s904HlfT<(Y5OD}!pgzP-Kti;iwPZiI+uD3O(FN_UDBt+ri}
      zHw@LN$Di!`3ksAx^QOrw*w9-o$u=JDy#_eTZW-WzkR#M<2lZp~xHF#!jzjeGMdWyt
      zt7U``;2cY)ws9<(+`?G$A)?F4l-S1j7Gj%p25^ew7=j$XBKVgC+{8(Ijb~{Y_W<x*
      zH(U&-@jT%Ld-W`R=V%LZHQ@$)Kx%`WGs&4POeMcTEY-m@XZO2<WCs`2s)N}F7`qaD
      zh>7J`u!C2&@!I#BggHgPDRzoS>NK+iejwzJ%<3oFex~<VOyf7q;&+$etQW9HFoWxO
      zok;5I4W<%szvhu8wP~U(AV<PM+`!GQN*PxKKs;6><O2M$O99afz*iD^jzPSM+q)Df
      z91QkoAFw-Ea>4Er%!kjPJ`iu=UKipz{{wqL{N+NN@tnILiYU2$fwxiSi6Gwb<s$+<
      feBSkySd8ogvFu75z>2$n74LD5&=TeUeFXjiUKvB&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Element$1.class b/libjava/classpath/lib/javax/swing/text/html/parser/Element$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d3f745db4175f93e74bbdb6078a3feb7cefaaf9e
      GIT binary patch
      literal 653
      zcwUWAO;5r=6r7bRwW3s1{8mheK@L{q5o1CS6BLY5LZY_?Hc(Tx&2~}$mKRMt_yhb=
      z#@9mBld;Km_U)UQH@hF7Z|?vOv6I9E!|pwQ;7?BY=*pg>#glgWdf+($SD{c&)e{3D
      zb^b63gQ3)uL+4L^I1B<`X@`h6S`notb%O_iPz+PYu5|SYL!z+PVlXOxS6E13I)zD0
      zF{JCR6qmz6Tc{>)dx9ZT_dDEcapgw!_|VXOH)JT({};SOgF8xaElk)9la<qQvuuIP
      zQ&_+vrQzK!Lw4lnc%0lu(Mz?xmWeFsuVayk71CE5SIt`!Ya}dR-ZEG>{!n$qnHyzG
      zjmPdsUR2hk6sqF!FccIyU6mcr56QYAbl>kLkz>gJ=NdSmzzIa(1TA_ls*|)kB4p7?
      z@fGHC+_va%#k496YR=FuH6jtt5*nEMHn=0(sFy2d(#8wsi<u?cj&a$Zk8#yrApG&p
      ok`GWL^*PeGz%uICM&s9<+;~m`>#=GBn{lR5R3L+`IK?*b1=V(oFaQ7m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Element.class b/libjava/classpath/lib/javax/swing/text/html/parser/Element.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a068f251f6cc28c440524f30d360920c85307281
      GIT binary patch
      literal 2752
      zcwVJeOLG)e7(JcWJZM4^64W3VF+v_gS_1Jwc!W%X4o-ra5F|cgXL1dVJ>5fh4+ejU
      zj~yE<iv=nY#VU3Ni=wpLSXwUJS?(-$E-dlf+s$M$wgJjs^zHlI?|kRn?=i{Ezpq^f
      zum@)osMFAW#yn>(8UDMLvuFfjDKJh4McXKuo-aIO+!jUQ1PL@~Xpx?VZPM@f{25W8
      zwMj$oy7;l_v8?O(f$0Q(0!a<+Dv0G8Q^K=M+j`HOw}pnLqFE{lPs73dqEj~3jp>(5
      zCD#iKI!*;1U2;w^q2R+5>8rRi!t*WHIguOFpdHh&@ve#)(=Lm~3*U5n)jag)bqx(>
      z5cnE0`E@Ce1SFa-2O@9z0a?;wsbH5S1F>xiYm@`aHb$*rN+=J@S@lR1Tqj@}HT18~
      zlMVeQ+y!AXNW+2|m=%Jm%*!*!EQ+;fVK(HMJMJv-;<HSwI~AB7nHw!<K`haj<9Tqt
      zL~Qav!L}SLIHaMzr+0?-EQu3%Qp3*s>5A?>X>?<kjvnkF(*YGL1r2>VQb=pql(!r)
      zSuV~CZ#t}VTiz|OIwotxy)vdzk6lvJX^W}axqgBoX5KL+?>`t`q@(BGS?JBBu@^%L
      z?9(v(KYB{X)7ZlVEea;F$(#!rb#5z7p<yIWz=O1u%-XPy7PO{t5Qh_BP5SO1uVVzQ
      zvM1;z1B~i;1f6M&;b;QmYeqLzr{j6NK)X0wHf=w*=(wK9n*M*~l8uxySFfwFDK}SV
      zVD!A2D@i?}V-lV0w{z0M-Z$r>uZ`6RmU^J)fl|boVu0-3N!ooc^qN_c`8}bd16!!b
      z^2dv%;JoVk*)&e!wFGAG^-ESAPRHvw$t#L5Op>~C;dC)#PIA4aV>=!r7mp^@pteVP
      z*CbZDj)q>->?^r_TSu2dx<xDC7)zU_V=EqI4Wv!Yv$RsiHfc=;ZWxXknsUotK^(Q@
      ztm)CP3`kmTbB-gttZn+f@cHvkv8Y2M643FmoLBx)=)?x@SSo(kp_yOoNPcs0v01I{
      z(aKD!^&w*A%63yLb*gn+v@#27?NVzql6V|DxPOAXz2uP3hOg0mY8g8}NAIVKxL>)}
      z^F2;^W0ZCX8FeC`o~i)sMXrr~%h<gNO)JOu(SVN>Ob?wf0E24^PpR9>0E6_DXUWgd
      z+jkX%mnt!ul>Or>d=k$@cYGGlMR=RuQs(x)E7(7A5y{LI9GJ+gpt+x4N3J6K!JR)c
      zmn%`XPzCS>-^+~mCG)(@JY7>PU16k1rTof~k6p&x9%B`x(ibbtpG3?fin;#=_FY6P
      zIrBHrn7JIvxN+z9MRZBy3R<L~ycAS@{+qU{ZIJf_z9rvH=I9o8-?7%;v(i6M$1T?F
      zCno%74B;2-$B!(@uT{E7D!NB-JkmW}(ftx$j&vK9l2P|6d6@3sW6GuB6->o|r)$Bt
      zW5F{x8G#Q+;0_61!6vy}#j78pvHns+ZQ=i_3f55x_6FXJQ8HHp){?PGOw7lC3pLl!
      zT4KQqvCN{Dd21|qv66#o@abCcu2}GySnxZw;JvZn;{DxuI0jq?N4;H?AV-@2sX{(&
      F{{UlbLzVyl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class b/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6eeb20c28ea8b829edbf72d321bfbf19631b4d01
      GIT binary patch
      literal 783
      zcwUW=&2G~`6ot<uZZkM(Gfko8zd&1>1gNQ4um}Q$By9~zh_H#&<un;JMy?&%6DY64
      z8?XV11rNYOA+9GCutK#o{$}nyI&<#){Pq0@fIU1aAjh!%UVe~gPWmy3P8_Yyv@_AC
      zp)-|9suHIY=|F$l+AF|fXq-ed=fCoFHl4<ac1Y;ygd}dHdvZEe3B%&EAPV$zhJ3X)
      zWUyNCSlP(qQV9!KWGHuoNcCr@$13sVai|z7-FPI!p-h78d|tHlBuE){x);jbpnFG&
      zl3H;Hy1LmvvO&%ztl~1A<#^1nRyAf$D9LJ`yW!S`9BT{<t#;FIa$F^&!Mm4Tx5aUt
      z%HF(ulOZ>7Ic_s>&u_l<{pJD39TIo?ZL_~eik`=@m9fonpL*Vr=XZJxwinNmk=hTk
      z!HV<DyIB;5k{d-TX@xRP6^&c&M58cHDOpeHNjxs#A;abco&b+&+&r=`M~hyX&IQ^%
      zA+oGe{|5fWv~Bv^M)m?0HH)+>%|*l|qJ`x@2A|0`>kaCavRM6!m3rlhWw0)6!)u~w
      zctey7Z;2(t4Y6!^SCkDmg)rO}E5yH9c1?m7INB(qgLUj<0|(f_Aso1PidU5MHC4KJ
      cgWf-R2j_Y7q|Mx_sF~U3BLfxG%`^{y-wRKkT>t<8
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class b/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c880cf76f60d97fb71643129a8ac06e85349f8c
      GIT binary patch
      literal 1637
      zcwVJbSx*yD6#j0vp~Hw;RxKimXgdfaxS`ad7MB`a5(x?NKrS$WA=7CyGbs4rgFnDW
      z6Mgi>L@{v#5>0$H@kbfYy|*cfg_zi;bMKt<o$q{S>5rdZz5y7-O$`x-o+bW}uUNq&
      z$6K&MdnL3M!;))NxF6WQb<GQ%a8*N$VV?k6E+^RC*(G}})R17v?ixNeF;*yhLCC!@
      zU`UjBrDFRGm&O;oWoy^SV7XE$`=Ld^`=L*eq8Hwl;Uf$&kC$wQ)cBSp1rok_9&(1r
      zbb;>SYK3sD$Pf>dy&*T}I-V2e8KRl&Bw-5Wd0RsZL+?Ly;@F^$X0#b-$9^g(C#jNP
      zIAB0S1H;~N$FuJ&mu78$g3r2AWqFRfliYX2d)3&H`CEH&x{#gJ5k;FIJZvBdUEGcs
      z*n=i<>oL#>L)5kCP(ORe|3NXeB*AA?!|0+qLKoGJq;L!=V{08v*`kh<7|_tqF!CQm
      zGho4_mM_>LCFS0XEydAnXdN`Nj!8MOOjgV-=>#`y&-S@1r}Q97wL{_V$U<5&*?O~Y
      zbb@=_Cq!ubQN%<{l46u!H1Lvvz0fs`{;|%=uOp8uVz5_fTQXu6D&vG~4#}V`((jj-
      z{W<%(BWBpB8ayC~7>uGviVH3e0z0687lqI-PTvl(8IWS2%aevEPZ}$o5uu6BB%$_U
      zKiO0CcAD(s)A$w5Q=4f0gpLmqe2|_^L=KD+ah^hlk(M4o*^bUCflC%@0b0yW95VaX
      z(Peh7qucCX$I&gOHWCOd5z-|AC1Uny!ON1-RPi{5UMZyo$0-|=w-bbn$XkYriBfEq
      z@GA2y@(5q*BRb3t^yShop~YS!mR_sn)g@w;N`5SJwW$c4lC5Z<=OAUE{lE~lLh)Mi
      z9f+HsarAwSDj|(eC5@o~RmluzaJCveOlaY2qTue-xhF3WkF7=5wy`|>jisr^a-O39
      zme93b!t=TkF6<!T;tmpC)s-+(lW?1+B7A9L$$dx4{EGaP=*T86uOla{Tf)?$yrD&T
      lOD%r)8+E!yUBFnK>bke<+Ne`q1lQ#AI&J`RH<}?nsb8wNEHeNA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Parser$1.class b/libjava/classpath/lib/javax/swing/text/html/parser/Parser$1.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..85e12baf8f924ef78b4f014dbc66db5057dca509
      GIT binary patch
      literal 2671
      zcwUv1OLH4V5Xb+c$d)ayV_}SWI6z30M3SAX%_BUV2SJuWpgbiE*g(}rnvyr!hiZ4^
      zI0Y9tzyS_$fCC)h0tYw%Rf(wLzz5(%QFQMv!nMg-%R!pinVw(&r@N>B`umSR0j%Kt
      z95MpOZWuepuI}G5ovyCruF|)aZRtJ3^QEU>35McI4p{-c>-6<~&Ha9_=XxqSCNQqH
      zO~1HIUK%OftO|_n7*_EH9Xw+?raC9!mQtPE-)OD1Ho_vpls5#jRktH2A)sj(!#K|l
      zYRF+cj{_)Zn7{*cpAoXyBg1AIrXw%)?d#HO8P_c-Fxzn3hP7dMCVxkZS&oyyi8LaM
      zD-@@xqT#sCZQJep6x}1E#RyDq8&1cPRoAwqqbSs+t!jBAj|DuQ!y$pADST^q1dj^j
      z+W$f_TUEMJNUmL8uRBBhfl>%Rs^Ku6q8LU-c2C`I8C`*;5g{a_nk5+)L^5C7ZOfiA
      zUB}O%Bv88NaFslCWrqf@Db>)NMN~8tag0PM_FPWwcqqH63{TMp!*mTN8Ky-yayrq*
      z(;Aj}V=CJ4JeS_Ue5oGz(=C#xH<d?DSHswx*6<9TrSw}=B?6*Op|z#&8{ME#?m0zK
      z2+=Ll%z(2RRyiSAzQoXR%T$)+?F$;t^Y)nH6)FMS@NTY~p08S_P2c4aDfln`Ok3Ab
      z#TrSJ;j+N-bjJlI{5|n|LqnazG%kb4k^0hR=;5-41}>5Z*EW@s9SX@Nhs3xk1H-Fn
      z^`=fRdwo;GH8cgTrKE5EKm6N_=K?nUCbvhQ@0D-5eXlLoO-{>H__$6nmCCB_IMS<H
      zhVM)22{SdPZMi;qx+vAQ+o2MpI;IAmDHOOr0fkxaPPB56eiPt^m8aQj$RJB&p|W@v
      zQ<al<F<n{u9W%f2S<KRZo<;=L9v-CGeDGbs93BFK**qSmwK;zE5%mInv(;qf4yG3e
      zcr1?FAqltk;3kK-Nj!lk2{XqHA;O)eQLt>r4R9n*`+%<YVL;PDyNEW&@0l!)(>zN%
      zC+;h*9LIe`fR7WzEn+DUM{hgfuBYO-PYCzv2;6caZY7TUjBuZiz)`=5a1E*gu7f<|
      z7M2EhF3$Uc&V3p14u_UQULMcmg&?4Lyoi^A9Iqzk_)Hx96$$-1LFl<C$LAAqFUN7;
      z5boOq+$#}|I!^+w7RP-@xbG8iuhO$%Ts=kgydDStK;R!o<cIp#{d6u2a4C-aiEuwB
      z;I7~*VY1wqBHY=Sy4J5l+<1`5U-rE+qc(<}VNc~O9va}SIO|SA)r2gby+Z;sw7(gg
      T+`_xTYWSEzr1!v~T|nU<FbEIQ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Parser.class b/libjava/classpath/lib/javax/swing/text/html/parser/Parser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..724947dffe705a8b9f19e68c7e4a8c2ec66950f9
      GIT binary patch
      literal 4563
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/ParserDelegator$gnuParser.class b/libjava/classpath/lib/javax/swing/text/html/parser/ParserDelegator$gnuParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..004c1b2eefea31748ca7b736527a3ac178ab09a6
      GIT binary patch
      literal 3250
      zcwVhmYj+b>6y3L^groy44~s>LSc**_5<n<u5v56xl=J}!1t}<#WJm@kGjV1@i!XeC
      z(Ldn75LT^g`N1FHk8-*1oiGiJrH#w3)!eyv&e><5bN0P={`&imKLMP=k5P09Og_*b
      z=_^TZ*|aN3-&paJRljB>>$>Y1ZgN2lX~Qxqy6?Ed6}u5EMG+B5a+-Xpzt^bO9oKK-
      z2=wvS)U8Fs^-RaUkxdJT8G+p?$M$^P_7`=lVRR$-69PN^s_6}%6gZLVgy$4JFPOIJ
      zUlhnEI&*!wb-IwA8eJ5Kq@1!512fVPM^79(uup@A{Q}3g2>2YLH)q<$T%%Sr+=5=T
      z41s+)r^MpuED`6;#fU6{!1<1{SZ@?dA<6<nTXSL?s=8gajFeNW8MZIbomfhZF2*p3
      z*P}QhFwqGG4M*{Yz%FKFP3xtH0%tbiaHTMt%al#}Ts8gS047DRBE6<$jgM&<#&MRS
      zTF@&JXWP27oaJP}d1%<g8Np~234zm{dutfOIP0-oHC(pjTxSGiSAEKz9Nt1QiW357
      z{}X_QlQ_jTajUrgg5#NTk^Rla@ixvzafZotUSbW0Fv$(WW@n`?qowEl?^;R;><L7X
      zsnz|*s{9jM=$l3v%a904=JCu*$*4=FUKH;MB-)%)j8HMk9NfI&hvsp-k4sT}ATYAc
      zcp9cb#_@{b%Y+r%p~UD*WH(HksW>H;(Qp|bvbOZS<om8!Z1@JZ-N?VW=gnH(GD0(w
      zo{}BNYM8-QZtS39ft4aLvsuYP4(;z}8@@aMUWlUlv%{B=n`PDB1OcttLc7dm$#g-(
      z9IgorZ^=tV>}mSDuER6DKao{lNsDbu=1I@4u+tLvhKB1{lqT&K3Mpdo%%j9=hUe)O
      zb>y`fhLX!mnUjP(fbM9xi-Sy_8%GM`6AkyE3&if5B`Fr&;=9D??HE~<G?XEuWM>z0
      z*-ZMyDD%Y!M#<-1tiX(-DzJC`-L&IahR%KV06ecEh3hvm0{e4q25ff?P88gH$F`vk
      z4Rw6VHt6MYxGbgB&Z>PSD6FU9wv<*}Z_(!QZ7GvZK{*RFkXS1k9?1<KksjRlR6LJ=
      zDTXaHB`=8>FS;)^e1!qlyX^C3`RRYZUpvBUx#?u71iq2i@NQ<EcN%WVxNOQx^uPwM
      z6EXxllC^CfgqH4kvY@dLi+30E<2Ohb565oo<SeRYyZZX%eb46@XAHzQdpJvRChdF1
      z#(zWa*u?MH`&2m`;BTBGkRebSukfi~&3iZ=R3AD$cohT6_7Glc0?rXmTJ?{uqIVUC
      z$2ktI;>}e|tl{)V>@0C-TCn>=?0%fXd14;GJ9wAxrnna2{DO*dm(S9E@OhLqTpU|N
      zx;5C9^<evG4$Pw$3nV;`!`$xcK?lR2gUDf41)XEiAfao`ga%qewS<}9nA0Mwa<c_~
      zAcP+X;jbg#gug}j9WC{mXvHpU#9kuq9ff@~@M@{oO@12-^>hm#DX-gM5<jy5(ta|C
      zvcyu&GLese!S0D?C_cmeHCQbPzQDp=XK_Ty=^i^@WKl~jq=5wP<21*!sJ1Yh44F+f
      zv+lt-d^8l&qwVQsd1L+-Bh)t0%VVV%;4^&Q#7=UQE8WEW;@1#rr&{zBj20LKFnx0V
      or0G0DVp28Hv2pH-ub*ykpH}W&>i=8y`yIYlJY~#5{D7{10HoJC+yDRo
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/ParserDelegator.class b/libjava/classpath/lib/javax/swing/text/html/parser/ParserDelegator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab5aa696b3222e454a0d18dffe0e08a9455a4526
      GIT binary patch
      literal 2400
      zcwU`VYg1cA7=AY7QsO}>P_-8=t+bGUq^;N+Sd{>hHb8A?EQsQgEXl#c3Fe$s#_^jU
      z{RbV#8OIrQMxC*0L&whOH)p(kb;dv8PjGy8lZFaN#AI@I&+dD9-sgRG^YdTdeGlL?
      zRw4)p46MkTay{X_ZM%hpuh#uU(O-2EYqIRAa^k8P#+0K9(l3=G2nxh^_L!WVN{{Dl
      zT3xaIo|<C>VSz4fpRh}bj4IpGvEPwPjuP1Knb)i;dv?jao*EMnmj&9ACD-$%>u04?
      zQK3I4)44z1`ywjPlK1lh$J4vw9h)5+7TA}Qjx#EAZwd_ki~UY$lk{4m7bCP3+={^Y
      z-IHx0r-weZB@JOD=h&|8Ut+AjSXLmIEag=ckK*wN9wUh~PV5?8BU~Ihb$Y_WK^ziz
      zsG$6mp(aQ6dir9`nP`Q;5epXD1lrTKtEMZfOR79uYd}Z3M4qyeUEq6tF+5^WN6~^~
      z7LKBm$o-=22@LLu3{ns>I|7q^>H7+}revP<{GXo8YZ9a5>p8XNQ!icweFB~L1E*#h
      zJG$t&g@@6uX9E`Y<B=!^aVmm@z}dYNvDs0J=Y>58vj-$Lif8a_1Va?D0pLgmn^{^>
      zIp4xroTH(7t0En;cA#GT117_<d5!0SruU-2`+a*Owt3t46z>7m#<CjMh=m?JM{c*Z
      zt+xNXg%|K5k2Sd%ck?sLT38v@tBf$a>cXs5obk&9F&sq_;}P(PpV@osEll7gGFg;v
      z-cg$=P3SEQ*YjzlNu(@X)&dSKI~A`OMH<r)ObMLWhGA6Z^<mKRY3Rtpj4m_EGN+X1
      z$pTMrFJ9JNBbsp8a6$!aWr;3wF;~aV`^+x5rLsyEWjUjK-f{B+0ktmByS+_2!C<^L
      zkE&D4vf^m*3AE;z+*f9PqltPNdiW<l&7Gon4T}-HF3{b~*1{W*EPJh@@l8svC~$6v
      zt~5`o&v-~Knwvi8%2jhqZHvR(l@^O@Wp$HTGo?y7rzUKDdv$FQ_n`I_uu`r|Jvq|z
      z6whR9L-IJrE24$J5P~>_2=;N_%74cIqWtpWg#Pd@F(YphK0~zXKqoD`_}0%+e<F8r
      z;2RviZJeLrGs+Qo7hzn$lV%k(J=$<gaMZ4$_y)Q+-NI(E=3><ha2!t==N_D()k)5S
      zeCst~ey2x><3fDk4r1|d(f=blzs6xbtK#V@&fG$0{2m79;#?IQIDZHIdXu}u9Ah=Z
      zOI3{Ow<;z-MaRY9J@n2U3|4Vv16O~z&1|Dc@c^akC{G%eZZY!*ID!u`fR8YQk7@M@
      zZ9c;^KF6#0(o`{2!&k3D&#ob3DqFxTnGKlPb!6FzX)^u_Zm>QJbN`j&Dk<1#aBN|o
      zscVjNTxsFh-XFh<1=c?mr~klLjQ}0Y1pGvVzp$cTnf*5tsJrHdrMd#zkwe~SBMim0
      T0Kdy7N&!U!gny9y*$Dg%$OCkz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/TagElement.class b/libjava/classpath/lib/javax/swing/text/html/parser/TagElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..68799b24b0fe5ee364935a553f879a6ecd1dacd3
      GIT binary patch
      literal 1863
      zcwUWEOH<QO6#gy+5<JVc)IY=cn62WSxx<e`=VQW#-_0WJ_|Qzi|<!lg_9fHUsd
      zxX>9Xj?B1p;g51WH;JW|7Mad8H}{_JJKs6yyZQC|`wswj5R*{E(7mI-(GNqZ1H;@3
      z+5FHBZQF@>Xiv9N+zQ3?t%*2KaMPAh%upqQLvfu#XV-T4y3HVQ_ne_Cav_z+6K3$)
      z`W8cLf$-_rOr(SIQefGpv2GhlQ;##S6^7Cw!!+z+hG5`wxq?d!#pB5hu7IIZMLDV%
      zv`d0l1iCU}m^`|lSmRbqUyE}Fe<ZoC$Cq@=5bxe*vAu1iNY};8XWgXY6y03)dZ)mL
      zI-%}5H75{UDkHTwRFt4ptQu96K~d0*RtYT(9hXtB;wIW?I$PY1>IqU<9dO0D(_64D
      zLWdP}pi4q0r7JuP72OC>^NA`Z26r!To~TganPG}TG!+tL3AY$JF9=^Wcg^I1Nhk$9
      z=o5VjG1TPCN&`}j)M~a($cPFlo%rj@K;S<^$(jh^gaW6^wt~1UgH{-+Ig4*5t%Ppd
      ze8ZXEih_p-OL)Z4d@+HF2N<BVYZljcQ<L%Jfq)LH7!upEopj5T@Pwf*xA?JrBfh~c
      z1*51F?tZGGA9uy;q>3p_)4=q-J#Lby-t5-7_cnaq3?5-v#&c@ph>QpW1YcC}&F0Yj
      zGxvNn0y(c@M7U5{NbXzfe9{nCrSj|+^a(H-mHI|sBp>|3^0e{`pEyr4K0RfMD2Gb_
      zSLkhoB8%uLX+6FZRD7Xj5w1dr728upF-=gQ)(yioR0GbchR&EnR^^d>L^1t<LG1*!
      zTF)`+wZ>yKXkSsEM$<R6M|*#wT<bkX@CY^9DSDQ@vlEETv+Qk-<S4Ptk?eU?U;*`5
      zL=%?KiB}lFvZG3K^JP>GdaA_gwo^krTIlmEQ<+T6)KeOAlmjIq|L06v7y8<vR^0%P
      znr<rY=K%+E!8>`u<V_FU?}23jPGj&>4nCEImoxaGLioqI__ulSWf^?7_=a5YyS(Db
      yb{=?!qQzPJDMpu1Fs7w3p2mcr`T*Jg><A_P7ir9-F_+ty_gU2K8S0l#)WRPGXNax<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/rtf/ControlWordToken.class b/libjava/classpath/lib/javax/swing/text/rtf/ControlWordToken.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6a4d24e09135d7c6f6ee3167debdb8669f75796
      GIT binary patch
      literal 587
      zcwUW=UrPc(6vfZz`nN4@ODi+zC9)M-dNv{u3_*fY40;=NtF3h>#<hIxEA=2k4}E|>
      zRCH%t3d)CGcJAE$opbJ;kI%Pv07uwKA;z$G&!70j89jT!trNPF(2?PdQx`!fg?}aF
      zpd%jKAO(Y=v=G(*8H|7rT?VVAAjju~v_nZ`jUn;KB_A@dCPVVr3%u}zp-}mY9(2j5
      zE(UJ=g+|PRVZ}rSIfmi_x~cG7%M0A|@v!I04)6JT1kvYymrGCGqoxtwc_W7X*1y)R
      zWf4a~MHfk0p`Z-SvS}iLq^e3LQb;po+hQ#HZo^X%h2JiRDhs>B$7!1wog}A<DRI=v
      z=q;D%c1l!?&a_>%%o&znHIdivp!y9`one)#;+%tpH9%L&mua_L<aSMrO3mBJ8P@IU
      p6dQJVime}43kH2JNP9^MZBll$`|e!#?VgX^Ri)-uQ*UdR@)yZkaaRBU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/rtf/RTFEditorKit.class b/libjava/classpath/lib/javax/swing/text/rtf/RTFEditorKit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38637c8c30696e2f7c9da97e9479f16963955050
      GIT binary patch
      literal 1122
      zcwUWCYi|-k6g>mWL&UZ$t%|j^53A7E#@J6{j9S}-l&C4BNfR~MvSS?sJL@ng{a5<M
      zCYtyI{87d`15zSVyC3%6ojvEwxo76*uWvs9+=G`wjA8M;|IzPy?N1^+_B8KmPwBVb
      zetmZ*5L&7|p;K@e7Diw-ebVH?0L74eC_<qhF~p0d0|sYX20Vi}E@hEGl3}tcLjJtd
      zI^wGCA2m6HTa^vJdEhHyzWa-geka-t%hmrHD>F<SbG<D?%|l&3iHJR2ELo!0^odr}
      zirD2eat!G|8nlJte!#F*>_LU}Dq+;ogyw#$Ji75S+32)ri*m&bmf7hxc%+34+bLXS
      z$PYwb4F05Wond7}=&2u=kqu%9dV^tp+^{cw)#fUL0&bcZ^QN26;+6?C5t*M9eA^ml
      znEB^CbRdCjFwCAa7-1qwsj~{nSy@GAKK2NDu88HGMYvCy(%Sjy8T+edkRt7)EQ4X{
      zZw<=0COfLZcZInTx#2_KG*~Qx9K$>gb#%SxouaS%R2kL8>M7D+sEHv%?+jJoF@c}p
      zGIiM=i0T!pbd50C7ue_v#NDaS1A5Xf?F~`m1FDNWp{6Y=h8bM5GEEXsP<6kfaJaTU
      zcZ%5uPQm$#xieD}c7j)=^cp$5vFckrR$tw83wBo1En(S?;o>${tb-)(;I2);Me#x|
      YN@H9|Qj5sNhcPbJuzmp-8&-AmH|>Y)&j0`b
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/rtf/RTFParseException.class b/libjava/classpath/lib/javax/swing/text/rtf/RTFParseException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..94fb912eb68b58db392ee3332c23771fe785b97b
      GIT binary patch
      literal 473
      zcwUW<u};G<6h*JwG=WfBD6|6;6Kab@gpgn;3In23giu>$cY`TLX;LK)<hPhAG4KI=
      z6yiCFghUrS_`YYKcdz~R{qYIl99;`FhLacm%5x`ulhMLaB3DkLo}9^S{J@h`+~t8-
      zDH%r=42C1kIw2==l0`}`fA1O0YZ*!9GSvG6pTW3|ABBxNwwq|cWN3Rb68G71E|M9a
      zhk~Kw#Q_g}o=DwShlYBVDMR1;-@8T(-I6WeHB|`>j0V1r-qX=725TwOlrM_N4V1y2
      z##s`GvDEp!jfgWnf@9FnpjVA5`Vs9Gbr+<Jv@u*`>%F+PX}3v%OBlGq4pq$(BHbm`
      k2Cd4#B~r8I@N|v#Uk8`So5G=2Qk8?Q_R%TA4~m(?A8x#3DgXcg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/rtf/RTFParser.class b/libjava/classpath/lib/javax/swing/text/rtf/RTFParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..279e1e009afb9d95b83dd114c2ca9f0bc6dc3a11
      GIT binary patch
      literal 2582
      zcwU87TUQ%Z6#h;Um|TWSiPe@{L$x&oXoR+23T<r**jR2Q5d^U?Ne&Q5CUG+1@}!UI
      z(xq$pqRR(;5|_TH3y8JasxK~m@)ue6ITMn!xfIsSoY}MY{`R+T`RBi1?gJRajshD)
      z_lCBm?F6&i34JYS@*Oj1n5)6r$oPzAWVxZh!O$vnf=P`urlT7?W-=(*n5OI8VCb2s
      z<sodT3^Ul{=@>&trRHclmP>Kn6gru7mVt#B8b=a(!o0$8%3sGK)H}!ExRH)?H|%Ip
      z;Xx~T@%PTTz|f{bfm58GQsIJ|p=BbW^Ql}a%8iH?O>)wiNXN9~oMt4%dqL<h*Ao<n
      zuO=%iFBI?vE4pAJ9SrH2oEbI^uBC?ShwP?^Iz+6hf-YkCgxtB&iBm$|$8e%Lp2hdH
      ziUu@N?y^$KaJ;HAL$Ks!mTPfh@}z(}@w|w@&)}`F6*Xuy<eA#!@vjV?HEtexW9aht
      z)@^}?jL0p6du%7hGiD;KXBE6axJ4?{#V-nm7|v99yROAWRfR@TRpk7Fii@H@ToPhD
      zk>rBdODbN*D<l;ZBI!-8(?C=UQdC8LA9i6FmlcdKwAa>BaYeM8!`#hq1+Oxkt=mn-
      zNS(M&e)&#@W{k&uNxo|OVmTwZ>x&v%jAz}ricwLFF)DDO7;-GByySV<>aW*S+!S0r
      zlIu-b3n719#VsLklJcXxi#$xKn38$OaK0%SxG;lR1-Bm={_t+r<S7+lL}=2uVU)Mo
      z3`KC%W=>FF_=%oxTQhWu?2@lY%1ErOKhEk+EGk$iD|DGN6>kZ;N=As1R3Mu<$k17@
      zMnY#u!Ah;|7NJ9d<ualwVu*`kkyI>&imZCDigg8R3@2-LuZjdV7}SJL%fYk^87}%m
      zmF_Adzh=^xXwKweZps=aLH(V2H22b2MH(3zxg^)u%yqf$LZTGuRa%{kG(o1-#4huQ
      zV$D@nOai6L9Zu(rm>dg+=Hik&Ck)}E*0Iwsh8;GsW9VcPyH!4Ev(nQ^C)#MF*F<j%
      z^d|IM0(mqC`VMd`(0KswkJ8{c-P_=x`!wBelY?0_Q$syX5}##;XK(_LCjrCcNdVdC
      z?7_(bOpNS>A8(+)E06ZTJ#;Sg<<WhBo)T2Eba{uOUMAQT2@|l)iZEV0i{~VaR|4AP
      zNdVd<;F<b>XR82i5@3=5Q#Am4NmdK65B&weAU%avLtr1rekejTO5v7tty&5N*9-$_
      zC9QK(%SH|crK9sjM|qqt#p;&G?^1N{RdHq$3$u!|Zz)Q_ah#&+ImC+-efzlN_zF$;
      zaCM>WS{^qZ5X?ATAxmRovY#{>zNTidEavy%`3ci)ZyaL26iq<3()*N;4+!@|wBsXm
      z<71r0C-m)84B<0e#^)Hrmu1~DUWnF78+QqB6N3QlvpaOM(Lb%hLN5Dcdgv+vT6z4Y
      zj5;e)zg3m`zl9E1vX2y~NNV4c2q9tjkpAd7N|(@U@BbakQ=)owc?b5PvAf_71QrUf
      zhuB=9(b$92F|r4H#}^O3E5$cNQ2__^_A{mCF8uhF>iZl01l*_Lc|e2n2O{_r^Z1Jv
      lXr9*O-(~H#ROGUVcVG}VHztvli5Z}tHj$I<wk378{|5+gIsgCw
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/rtf/RTFScanner.class b/libjava/classpath/lib/javax/swing/text/rtf/RTFScanner.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f109f547ec79adae3a87a8420ebb3e59bd091c0e
      GIT binary patch
      literal 2952
      zcwT*0ZA?{V9REF+16MAGcOei0d?_y%@oFh1peZPI?Sd~Lh?#nT16;Y>i<g6v%&o1}
      ztgW_OFPgPxZqe3OSph9Jm(6smwpMMeT3=dU`q28+YOO8%{m;4Fi*S|gInV!jp8xCb
      z|8n`_zfZ0JSdYiua4A$CGfo)e{?U`6$bjE6$1Q)%>i6&KXld^?A`vs@hNh4wO#ZMz
      zmfbza%w9{u6^igaXg`Fa{(Yv=XT};7GJ3}P`^}g_NiZqYZpEm+$$lYEX4n|DI-)}+
      zRg?!)I$*zwy2el>WNlSQ^Hz5%XwA_+(}OhR>d1obM!rIEYC9g}AvY5WOLe%hL?JgA
      zikNL<!#!rK!{`Z{3I)MvuMzGvVj(%lFEwj0G^(&XwO>hK=v;|65q}^uGG@`dX$&`1
      zcY0_x*Nt+8(i991Rvwh0LZT>jqiQY+GCJOyeREuuSRq_16$-rz;jZqK0PoR}jtpWo
      zYO7Z$O6e9EVz!t<St^D^3bTdHPC#IIB&<;3t-f=TJUhpG%@HdUjf}dnmX0R0?@qjU
      zunzaRv0fqP)*y7;j}3%fjM`}qxKXFD?DiHt*oX%Nlg$+K1_bUrH0Wp)JsDv$GGGnL
      z)m9x3VjHje%&=)OwdLMGp!#-YDH2UOnz4ft#>j{np*v;X<~s-|wCH#UHB7d6-yDrt
      zv1qs}8tap{fR0`Aw#0^$5h$cvPSLAgt^gZh#59NEF)8fP;X{pNbf1n)c=(>kguu67
      zN2eY0un`*)cMs_3#z9)JqK;=QcJE?;8$|e!j>n+Wg_t>NT5cR+-K2zgUKDZ5hhYfX
      zJuEEmV&wvVANt)O!1>A7K*TZ!B)bC`q=zF$Y}Dl4ZFB_0$}zDr#8ybb5s>cB5;%Bj
      zGlpqQF>)<plLd<f7%6Q^H>^%wybI%OaD#1Mk-F?i#KDNcNIK$VRkQ5P(;gj*^_ndq
      znIgH#L9td;qKauv<J?VyOS+YmOU9DDGuPagkm5`uUp7xo<W$`Ad^5=L%_6UR1_e_n
      zylhJp@tb4o+Y1ft$VCT=dD0yj+=UYEN~TL(Umy8|e;M^Hn?+f7%?$2trQ*u&H8WT~
      zg;hz-1>^;e@OzZ926gn<+N&H5aqU9gi`BONY<N*kX|cF+o<)~PiN%_$s63A>UkwdS
      zBG<NCv(RoakpUu<i&D>V6k?3y@1$+J*wK}+T}6u-wB(YW;dc%1G@fh4wkoBk;_C$!
      z^nHX?)9`O8e~0I&aNXn|_iC;~T&-LaTpPJgb8Vl+#%|XPHU%efNNCNW_XwTt&^xHL
      zFik$wsGr7`E+Na$PGfr)quoi46?f!#I9T(3BJ39A^ZO)EPq7f5#s)ltEqE5&@Eiho
      z9znc-{WyyQcnO1enI-rNK{<z0xInJg@FHHvd0d>Aq6=}DT)ck-GFv><5oD+WV%uWC
      z&|oJI$oA2@-BZ|0clRb;^w@%vtkJjU)me5T8|^7nhIk`VWuodj3z=Kcr>L8H#L9dO
      zoYcR^mbgsiA7Ck_Sa#F%Vk(Op)9Hj0Qz>N~$|X~HQ4x%j7OmH`M%Aj?q!6@ebi@my
      zPAfZ)$|5b#xQG&Nr!FC1a#W<*Nt(R*EiczyL>;%ym*6M&-A+2YS{LRvt??GgbL7pL
      z<DF#HJ7immlAtG#s(P*V2J&WcSX%LDy*7z_`%wEadS?)-*Gjb{Qiq8H@HtP{8Q%>y
      z!IvBbU-9;9mh?B+gzvBu-?MUl;Bfen?fVmY@iW`$7q-){cmluS41Q<*{DC*{C*H(g
      zcng2yL;QoQ_}4~!t39BuC93E%gfUE9HGInUjPfP}S1>{<jXY=U%F?K51@m#-Zu?y+
      z@*yoLgXOf=IO(KeUOJrqL>-b1>VwmuvQNZ!X;7aHw;(skdQG%d*{e6-odbOqF~QPW
      z1bJ-|$a=yC#i^?@k*>0kt#lNrZ2rekh$giZ0ab*cDnTdT52_0O{#EkVX*nj;N*kmN
      kc5$6ffHXmP1*9TukGEP6i}r*K*AQo_l&Z}1lQ#GG|DN7<3jhEB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/rtf/TextToken.class b/libjava/classpath/lib/javax/swing/text/rtf/TextToken.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9de6ed97f5b7533c91c629c205136e53237e596
      GIT binary patch
      literal 399
      zcwT)_O-sW-5Pg%z#-=gVYCU+69{T}ZJgfB}C_?bkko&f-x*8MMZnb~Qg9sk{0sbg)
      zHWn|63=H#T-kUeOAD?gU01nUz;1Txk<fB}Q`I9bggjGu`jJ*~q7ioE~iU2-g?{AKq
      z6MWYov=c`Xxn#=38fG36>PNcJc1-B>evkVZi%-id6{3b_ga8pYdKdky0YV&M4Rt~*
      z(S^EPJWQ2I<uq5$shr6?lSVtdYWnt8&k5b+|L5>c;iO!cnL5)>7XM5}PKYi$*Z6mc
      zgY8#UfOXCdM(6N2faV~0MK~C~VB?vghZg6!k{+{gj1VW-WVHKD#}?W^Rk^ip>2{^t
      F`2u_ESMmS=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/text/rtf/Token.class b/libjava/classpath/lib/javax/swing/text/rtf/Token.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4d06562fcc88a0008d9551787df14c65b6362267
      GIT binary patch
      literal 508
      zcwTjoO;5r=5Qg8S6{LcEs3;#QN8n)NS>vTbLekI#D~K1f;HpJzO<5FwmIq_v!5`p{
      zQfI3%T-;4&=b72rcV<66-`)Z2qnbdBp)}?Xd~Qx3J^$L2VlK^4UYTxiEBpj>hOEk)
      z6HZxYI2I$xpf#Nq18Xy+t-zm3?#mvZ%!Kwuiy>}Xr(JuXkq9H|{t>CAET`jk9s8p1
      zbdOa`W6<5^nX7zK)8*5>prS+1_v8_AtzGZYVFj1MfQCW}d2CV(wR$fJhGGgi#2GTS
      z=ZntlZYV;R4=40Q-VR25(&M40_&2D_8*j=`vHu_XfWbHkX5mP*JXK;u(LGgwDk-W)
      z<0xW@EJH$#g=OO80vp6D3!EZOFYqdHW`VQh(HQE(Xy>s;cAcn2xfq>B;}si?@(Z?}
      jqx&VYt5GL?=opapIm$$ZpWCQl8;HDIq{6Th)$M)*tA<x7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/AbstractLayoutCache$NodeDimensions.class b/libjava/classpath/lib/javax/swing/tree/AbstractLayoutCache$NodeDimensions.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a0b4a990abd00b7812d70f624af0d2f475cd9250
      GIT binary patch
      literal 534
      zcwU`RJxc>Y5Pg$ej5%Yz{J>U7kyv<0u!=-NL<k%aR8rXOolCOevIln?qd&_^u<!@?
      zqr};ZO(cc5#k`p}^Om=>pI`4E0M2k&M2^szi6`;wrAwtJo=K$i`ax<E5gK2-#0xVJ
      z;Z!z9@uR#_bE#7m>$C`mP_sfW5-ht3W->H{tqY}<=@Ig+_L$%dSmh#*QW*to5vsn@
      za<rHSGPxH)Bnb^a4n;H;iL&(%>6ocX3FrPltaS<Xi8SjZ;j-obw%Z*JA6BGT8t;}F
      z?nScO-b51IyLgd=@>*GkM;nZsS{b1{)LJHkNTjLcMeP%se|ZL>vhLYA2JaE}<T&H~
      zaV&DxVI;=F$s4v`v$o68WdwR~(8msE<<$`5F6?(zP|ap*S*)XxY3x;dIB-helfR7D
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/AbstractLayoutCache.class b/libjava/classpath/lib/javax/swing/tree/AbstractLayoutCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f90286372322a97f5f18c0b677cc8d1affa1b731
      GIT binary patch
      literal 4406
      zcwU`XT~Hg>89f)RBqP=s8)OF~upMki2xF2swo`*i69PpIU<Vv%aDTj@4O&-7baw?L
      zO`86=N&27uCQUk>@l2<FNoUfjgWDwI=|jg4eQNvK=d{iAr4N0sd+yz3CB&j(3?qGa
      z@80jb=brD}?_T}+fA8N0@DSdPqe0;4Rb$0i>vvYI;$pvRn`Zyx^Nwp93+}k_e5vdX
      z8w+_e4o#p%j_fZO9Cu;<s=46C5feDL#eb@_I$<m?o3=o6v6M5Pw3f`GW0i`I!0GXw
      zOm}p0liPqmqZ~TH-hx1CYm7@9Z#i_I?3p$T1W0G!=UBMU=3#VhvP&g*#&WFrf+-;8
      zII~?^9W$-PyvygTKy1(|TJDfQB;7M3pbgVAfe4a1_F|vFo^h*aPL`MEP5Y9eqU;+l
      zEf|Fv!?xtJ->JEIi+mj45g!D$*D>A68ZsYE@5sBB&7PS?2z2U*W0yc8R~2#Z;?`Nt
      zrhD#b8iB_=eASW}$Y$rfPGi;WpJET+70iL2u+9X!aV(Cb0;lc)fQ~~rA`o3M3T2gr
      zEm)XCCYM8U=CYd?*k!IQ8^xTNW0vPj<zkMjZwmuPC2-6xro@-mp^!{eH0crkkd8(q
      zINOrvvuiPM?+T;1TGP#(YN}e9T6)fl`lycGXcmaCY`ofSIh%%3r<Ad-A_Pj-(pk^{
      zF&%r*l3?p`9Zx6$TSZc4<qX%Hwq7vFK`ifk>5H3!Fml#YX6<%MZ^K8;e)Aw?bu>Y5
      z!c&-tV_cwn2d+9MaUodMM!5+~L-2Y)ZdWPrTCfjn$NrY;u#essZSy(Pw#}T!f@JQJ
      zj%P5!;^EOVOzE&T&T{-#?IbXRq;#6oaT%Xwx@1hl&5xGsDJjM-W+oht95o<aKd<8p
      zxWdvz*C%|Pj%>rYa@z5ZYb3gP9m8m$#EblpRAEsr%ZA(_9d+jLxDD8uwQ|zqKst2p
      ztfb+KItp0gGMvgX;^{2^q%LMq(y^?7tjQ-^ha;b&t1_~rp{!#CWUQ?sSczmKR98Jl
      zROz+}h#Fcl)~qF?;3H00&PY%O>c^P#vd6SBc^4H!^&PldTKsem7fO!lxR**&wb{BU
      z7iguEzn^7~GisN}+aq=7@^~-1R-u2SSY9%1Ln>JwrPJ18(QwN)Ys1s`5Mr>7%MjzY
      zRlpACtwK(12QHjh-XM0`Wv;fbnkv+sOp#=(#;HXPla<~X&Qnb?OUE|HF;~o@TPdF-
      z^3mJ;forztn6@i@E8(WhrP7M*YLi{lu3cV`Bn7kV@lx&hxu(Jnr!Uu|?{YSd*996b
      zXQf(yq~k@rMEx#%&Z&C7Qk<NM@GNK4S~GK1RW~tRD%%U@s3nX0eIe)INg0>A&K8TN
      zJzOvxM;7ts&8MSwgqR}yMES4Ds{rqWnmnPDWkFV!XN$5tBWMqEJTE!?ZspS{T0tAl
      z+(O%L*=WFiekW+bovU%b9$-uN2H`%m)AGWI4nM#UN6N9WOz(S0)kb)cJ};>V`@K<q
      z1lj5$Tsiq61xd#055U|+>fInzOm)5z0z{M71K;@#j*HWFigPjPe+RA7^rkwKT6=UI
      z_n(Wk$0|V&ayalN>H9gczQqu4BT0J@zfcp6dBFm_oj8sM)a0E=lgI|u>R~IQS{ah8
      zsa7ve5MYFn`q+}-PpXw|Ve7$Kwth{&8{4q;FcONLQ+OnVtp{t_dN(v}r*UQrkdF6o
      zwid_-^!acbAfMnu<;3SO5CY`vJ2gP=gaR4FdEa@|2a=FLhBE8;WCcvK;`T4}`zuBL
      zw<<u108m06bPB+e7zqJ1R14_up@2s5Dc^b72b8As*d6SaM*IPvZh*|$SXFOE^;Y0|
      zlKP0k`3HB{KiT&$%Hd<m=HFG&(*g7}ld3DI7x8om^s(Bc{x=l*RIu*fP=OM{>Bu07
      zoId{nW}dx;&rC+nXgAQ2NownO_FS|h(;n?x$LDUsxH5Q66G<&~{q9E{6`t-_b>y!6
      zVTrh4(G(3x3XMA}iVWMQL|g$G@+R|vu-{KboPu9aTVxM6O^%x&!g_NACi@tL_2@Y)
      zasdK)SU&WR`7AfwY$QM}mvBaloQdARKqeWL*kgSW{;lI`radN?Fxht#MSi|?CG{)p
      z4j#_)^*Y>ZQIU)$wd;5Pl&UOFQV!9^#U*)>-_P5~0qhs;=n@BUTy)^1NMS&9@+x=)
      zPx0L|qPwad%m&Gu#TpmJlY!U9=hb2pnD7_dLNP6<#kTS~E|(o;wd+&Mj`2tM3-~hR
      zk8xfAmE|2$S)MJ*eg!Wp`&E36GkjfP{|2A0`R~8UVkqsaejHw0mF3l6S>C9WeGT7I
      z_S?Swj&Hv!EhB#q-}mW%O&uVVr1&F#FwuJlhkI{-n3#wR-9XEU&P;FT!|V9rg=-Pf
      zdE)l<yZ<>+QD&FqMf?s?aTASVoj+r4p;i2zV!1^=-&fpayx3L3|1o|7d2Ds#r+A%_
      zS{TbzwN%5;g2Hmz-waK1AO8|j?VU)?ZWh($r72M28|wQ_mUgJJ+0D;eTI2r#P?Xq-
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d07fce4d2da5b881a0f89fec000757a5fbb53020
      GIT binary patch
      literal 1311
      zcwUuK%Tg0T6g{0ZOh^U;kyk_^VhDL40TB>`f?%w&D#Qg87VL(kF@uu{&I9pNwA{0C
      zp;ZcnRH<vf#cxn=PXbarEM0W>?c3ewo^x)0|M~d~fHBM|@G;D8YTMdQ)_$p*&$5ms
      zME0TB&|Je=bRBKo5X+P**2*G2ZwamJR37P;?c`0jDlE;>Yo-Fu&?Z5$hDH!i);C4T
      zQP9lL>1AC<H?k)lFf_ezg)11k3V$vXbo03=7j)anF*MKUrtaKl=t~yP&^scOORX^Q
      z1&V_3qg6!<E;0C%sTBon3?1iT2N6bV3m7h|P!N#YP8D6~riWU&OqA;dPfE$9))>Ns
      zA&PEwU0BP~6^2NmR?>_W&C)%W>PhZYberM9S=Rq&DtW+7I%nwpivdKdqS=czOXLkv
      z6{cf*`q!ka>naA&&!FgbzPjbSVhEXH$7x(7dy=WMN);p+Vt<S))|T8-rST@eQxaQ}
      zTmVVxU9lFcQstOvl#Ur<!x;%;5NX+p%qcII9E$`{&m_5<Dn<||N|vbBwuPr&!6-xY
      zLa`xaaZANGZZiZ*72POXg1%DpNXF@3mJ6W?lPYc?E~7gt`lKD*7u;qDF4bJCL|kMa
      zd(Uszh<wbTJ~mBZEf|_@3tIvG)1iOtHxam?<A~9(^wVgf0r@#;_S0xVkTM~PR%!2}
      zHJaXsnm$B$bsz1Y5J`VTB(sN(ryuChhaQ?E-~f+<^8ti;0zG^PQObAK0dNJqfEQiG
      zHG*f-okp3v-X3U^xO<4bhT`8Pq<6>Y&GMXQJVdpAw}Hr{-wm9%L{|!!KgMZ2#NcXV
      zXdkJs_1y3`WDA)Cj4>?kqFpA34=}+X)lf9W@aET#%=_cY1JV{giXb0D2Omd2pFo07
      sBE_dLMe7`&_E^R0l^d-3iB(-^g4S_N6Pk~7O4J-?XbpOr?_m~!-@H^f1ONa4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d27efaf07cb62761d9ae1452882f383568a8789
      GIT binary patch
      literal 1720
      zcwUuM&u<$=6#mAZWF2RNQzvO?Qc@=^t$!tMLZOg^0C8Ptv0WrriOOx`OzSP{U2AvU
      z1}-239JqiGmk0#nfKV$AAVDIi1QkdAD8zf~tz$J#1(J96&CHwkee->9{r5k={{dhT
      z*EB=~R&N`3jGcma*R*dHd{?Q$C3VwiTYjbO8(WsTPD@p1Tb+5!@qEYKR&L2|H<fGn
      zrekZ60;61^U>S7&+SYAV_caU(Oa!ZK-?R!n2LuLeD&`3sD<34(e53x(ioj6Kyk#4H
      z+f@P!kMFOR4>5hjZDoxPkJKBcwe2dK;Rs-G)wE52O<*Sdgp-*K0a>IdjwnWT=r|@2
      zO=mVVj0q$j;}Ay@qeBolu0unNqo;KYBgPw3I;L@w%C*{FL*Q%&wpW;y%;BYB%pj%V
      zl)#B2S?ZX@oIvc+4JkLB>CvZ0U=kuxHf>dHH@B2~ogEZNmYup`Z5XZ@INDj1e#0c0
      z)((sFKN^7GBpWI){REMTQ^W8oj;l(RYAW0J0*&8h)$%&#krmKPuheY$?+OgtYR3-~
      z1;*2TMANV+kU9{c>eSlxMtG*QQ&%k}7sGSpRMkl}2|1-g=#-^y`m=GI$MbCW3)HH;
      zPSt#uE<k<3<X+VA5(;doQe?isijGyhOjh`=aYwlxT|AdQ!ihe-1tyP39>xG()saD#
      zqjen%C@_OdI!eqS+HzWfG<S>LCXg%?yW0mRUUS-RU0pWW>goQDF7P=4{fccXw`duj
      zr#uZ6fph<{CCHtAO@S0C6{TkY5&Ea04~60(iXw>9NS_Ohk{%r+wDS~2?@>PIE@k(T
      z$UZ>w#y-Y>#l%54nf(P5xjmfNq+l}l8=ev1+0Q}U(=<+Dkjj1tDc?szet;?Y5l+jG
      zu_!;m8QMSILBO*(3k1<QqzPZJ>LHKiU=EBj+8%Pd(4s$3#UHyUgS;<44JzuL+_0ix
      z&%!#5@IL8ooskDPe<QiHj|+eD1@>_9AqMDI&gS;9{8P7nl9iF4Aud11xcmZh^2;9f
      z=@4s<c+6sr&?4NBA?jZ=V_nN6&np7E$W!o|z(dSbm`I)l%Lmd`nZ$e`=RD(gI2AWL
      zd@oiy@8V|ufLWH^le-v_Utvssjg#^l()U~B<#$+;-(y+c!@9hWtE3h)zCivHm#*IB
      nkntE!1<G^P1TNEB6zf#`b-Y1q5nKrnui{O5#{)mgs3P_+fCZN7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..08e011a384528577aedfd524845d425b06a40323
      GIT binary patch
      literal 1623
      zcwUWETT|0O7(Gk31lk~1tB98h2yKeg8{X<2idNg|Oc@XzA3|7cG)-zQijV#bpMCWK
      zXH-U=QJ-|iALaOMS^=dvHchhG{q~%*=WO!h=f}?gj-#ZYjUo3)f2yx$y=SKVFzdTQ
      zWM{;R9$0=U@bx82%u!d_Sr(&rT;aIO!p+-3O}M&mI<^AN&?5n|mQK@eFFg{5ub`b_
      zci0>Frj^|?fq~m%)n^zgZlnE8lw;^Js;0H<3R_O~7<!AFXcb>K9#c*G1=BYDOAH57
      z|G-Mm6Xi6uVu+wyMI1d0kyLtKK_5f+U$8OsqPr8MUPUKjvb9Hrf{r)_F{EH0!{Clw
      zD)!?5L&tCJRGUf{TiTG5M2A!)ahT-Q1Fy<3)>y_?BXjBPT_n0_+M*oPmV`Se17hea
      zI)-k|>#i9F*68GZ)g<dKZa3%u^UcY;XpBg!x>s^sk+(!m*uEE<c#k12<7{>^45V5p
      zRxrVk-1MRBR05;goReQQL|syKV3HwGc9Jz>Ns1;-(h@8FWDFS`li3}oWVYH=@m*RK
      zg)IF%sp1qg>8B8sB*SSHXK<Dh@m>9?a6MYasniaEr2n}e6(exnaD{!X64|o@XdF>o
      zR56Z}Y+Y87h9;F>RdG!!jntjGe4bH}M~Y}nFJG(s&l#fOCSr(HoWM22tSJ*6Y8~99
      zBxg_ywk_OgOZPnCDY(Tj{-4P+^tZ^KHYX{hGm19)T+mAZ`J>l@uAI&|R2uD~)<de3
      zH6z+Oc4?o`ySR@2cNowz?~u^mVj%MYdl}y2;KCa!Yr`;I69f!C3(jZI&2M0U7ck6k
      zVk8_3;V_CLA?XOlh@R0wUN%Xm!e^2}1c`5m^4F2q8{qA7h?he!wNcgtV={y$#0%0L
      zp?g+Bd`H(OWET65t|R+Jb`+)Z_c-wtQTmrOZDJi$w4lt|2F*Sq0<S>fbLi#sNbtKD
      z<@a%vKM1Ll4frN?f<7YWaGuCVNzQ)c2&GMK(WabN^d##GWY-0TmpDKT`oMj~U`cA3
      z*l=-Tt)cD8LgPOD5>d9M{UMmdZVDZi>2U*{T%ez?;4rUZgj>k)I;Qv&oZ<c!!G#Uu
      c3!zNfAn3s?VMxK(L)05I2E@V;ZlZ{eU$~BU0ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77d649278f47af5d6c75ffe8611a38b11a91729c
      GIT binary patch
      literal 10962
      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%0A9{
      z^<JJD2Elg1;RP7xON^o)F%(`R^p`!5vm3aO|3K#EgYy|^T2O14&ofD=(%0qHI=}MX
      zfp-S$RRe_iE9(6<>3S8G`5N{97FE1H-F(B757S)zQ``ZfN)4VeA8K7Bo8UCtNsRjU
      zTA7|~sv@Y|bxbiT`)$9dJCNnHw`uu1MDZ>&^L><=CsA#F;9+2rMvzCny1mMOvB;tK
      zBdwRsJX3E&w%$*vcK{>U42paP%6ulOeZEuZJ<CnRJ0Vmb37JjoiZeK^jjKB(&K3;I
      zo$d99#2k5|$(Q5xAu&&2_rP188C%U4z9JaDQSkeU5%7&csjm!GzH)*nMy+q0r&Wbq
      y7u4!m+m9(?0gCygl#wXiV)EQ}u3RI|6AP7zrtlN+B5L}Czs)=w%jUHh1^)*KqTr(d
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor$DefaultTextField.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor$DefaultTextField.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1acaf40d587e844226585375854ec771852d5885
      GIT binary patch
      literal 1547
      zcwUWET~8B16g^W4OUnWUYe5h!ir6n%5D^hXrBDT{QNg}1bbvKw7q?p>{vG}RCV+_#
      zL|-6L<41h<U1R(Mny7b%r8I!rmz}wH=G=46o!h?t^<oP^FK#LDFbq7>pXe)Ee%UbR
      zHOJ;$8{>0&A?HlfKFM>r@vPxkcIRG}uQ(}#=dudC453o+Wbuq4kmt6c=Q7;R8<zQS
      zVvK=JGSnt5Gw<l8lhJbpUb*`F$Lde5={`f%jAduJ&Cr@IExDW3M&&X@*PI0--`T?u
      zNtY*EV1^CTa7GwXWrO~qA(~<ECao;@fuT`_idsJ^5L8iz;|vv%XhxhgsqmwQp+0Sx
      z{BB`!hTGHnOpX&KZOu|+bZQU9Zqh4!F$|U|@X%wBO+_DdTd2%)CuNxqLqjAgD{A_(
      zqlwgz&>B|JhIT)xJgwpkIvIR~xTo7(U_zxBdM-yN2Q~q_5LR%G43wNME?K5TdFLcy
      z{Q)}a{*qfam_Cdf+NItT-sV#O?ezmfrp@QLZS(Au@suA>J7z3$Q_P#R*{h-(nh$;G
      zS8$P`tGwQ-xP$?QYEn(CLRRd*ukygXOT2vu`*8)m3P^CIT%ZqEaZSNUX?KfmR9wdm
      z>f{19<`<}wY=Ziom-d54nP>1%Sp|ERrwlP$El1ky7C;7d!lc(t=Jb4?(*Onz4i-9S
      zOe*N_q5{pRL={B}MIKbcD<&KW1jKKEa$Y*CLp^;16y2sf0#_f4Z=fOe9LHjb4TPRa
      za5H`D<nb#ix&<Fz;siw@IwJ^L&<e=iNuuyjNg7zU@MBj{E7d%ej_*+6O?2EzY@<4{
      ziL+~LExuMHX_so>5XoC2c}Jx0(TERd!bc+fBuT@&<y_KA5)naEdZ|GSaY>)Rd6!<J
      zm5F<?b%gebs$}xBEU4~Ya0@aqg)X>2w}r!g(%zG%3JvSHu#I-H+r;G^1mkXU6NBp*
      w-oWsFyie9hy#~Gz#aANyMk>FTw6DMDqz9u&614|o5<89*t$yjC4>!U70I6+w^Z)<=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor$EditorContainer.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor$EditorContainer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d6d1d4d496dc48ae4a539cac88e4c3c16ad36a07
      GIT binary patch
      literal 2279
      zcwUWGT~8cU7=8}B%knW43Z+#_wM9hOL7-Y&EVNpder#Q^@+sC@hMmJQb(z80S-#?D
      zG^Q6ujfpX8G-{&WY66SZ#2XVX^wwYCPw>hs<8x-lWs4+oF?-(kob$ftd7ksW2Y&tg
      z$DaY5#CjYR0;g{o%f@PNe#Nr0y`C#&@35RV3OR3rc2eeY7fs7^-1cBdI<{w6wshl&
      z3N)(NUSq}UEzJuw<fUsFxhd)9Eytcr4GV~?0(IPy_YB*cGI9kOoB1vI;qQOG_J=^F
      zw_xSl`vf}E`-3vTm_f_7yz>J3zJt1^1fogDl+_?c4K=8(K?IE&G&BiBI=iN7xYDfQ
      zFpdaR=cSi6)|`STa5Ol?CmPI+7`Bm>LDKp(d5;zr=cGGf%;h9yNjn(|U{D77;bc_N
      z6zJb4-rahWbp5U=f!Goa0z6y>@Um+xEm)a6u~p+Z+Tu7N(6PTmH9UZJfm%tAJ5w3Q
      zR&2_H)!cv*szbv==%i3t>0OalcER&SOw}TR?l^RcygN?A!z!YV5y}msYS4?5aq#{R
      z_#AQucaIp}f`&)%D040vt7O`lN(H$e({LJRc&^VqfY@EeKj|zkIkvRDfju-~65jH0
      zJg(s^DCrSG8FE}xy5lk@Gad^z>Es+r+t}Gvo|AKAeGX5=!Kyp>pUfJb#07yWR!x|o
      zsdIOHP+&<7!%BrJ9zAWD-hxVdNyBAa;iTyrD`NyA5GUgRZUk2~9K(I=qb&38L5nME
      z{8Icf)P48CDz6h1t}2Of4HKB;zVMn$iU}OrOUD{aV<wJg@9y_-Rl{?*&Rk@3&6V@g
      zb)`9OtxHvuWeN^ki_%u_!GJ<=L&FOgWg9#5^HfY7Fss2(3aGvtatgMYuSNzk4zv8&
      zQW_2ODnV>TDX3DiTrAuoQ&-x&PSqWW|82Fga4#w56vah8Li>$T@Ei?GK97a4lrwPE
      zdy)?emajv^v=;Bubw>%_7E#uWI|Vl*FIno5XxXzZdsMK1ma^IP$()hT%REl7mLhz|
      zD{v2DsH7M7y{d)=^|sNDaZW=We-F^Rz_kjF^$C5GKU+AM5JepNK1=~_Qt4(Hb_3P8
      ziF@g33}y&gaFnA!E1JS|y6^MbNl@ueSY?5t6v*-o1ApN@b<p+12I@C(|2FhUqKF4W
      z_YS%Q%vkOR^qdQ)5_+Wd4o=0O{37~Cy0_7ycNa0JM^xxg)Km$gW)T+?`W8|<kUGc&
      zC{U0!v|*hu$}4RAS8*P%BZ)UKi8oolZ~2fDh$>hiWMw^tG(oqa0V5b?#<LXtX<VZv
      z@JvaGWnXBZKY%;7jlR$-Vrn`xgW-7}ZfN_Ui@3RiwuRCF?-1>~XvTZ!!}~bJ@eDpF
      z6Sco2DmyR4@E5TwQE!(p6m~GA^_dOKg{M}{&TjteWVdlFw2F9fMAtW9ck`q6o3Kmw
      z)8a3b-%qeXZ!ozq=R0%XqV6YTW+IU-yp-0zD{<=aOYtLe`k0(P;opo;`LD-k7{uq)
      z_Y2;@m+ZZ-@G`!}+xVvJCT@p3n~{abI}}{62(3ZZ<T5Q)(kuR1tGr=AJ+OkWK`X>R
      DdHN!U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..39c241a3e0635a873fa98ff25122be1c45e63cd3
      GIT binary patch
      literal 9819
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2bb653795807460858a608ecb93fc3b66d512ec2
      GIT binary patch
      literal 7763
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeModel.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5df4f0621d341711f999cd89c9a3675f893c7e99
      GIT binary patch
      literal 8345
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..03813c3bda63e331e9e06f78dd6a9840b189389b
      GIT binary patch
      literal 632
      zcwUWB%T5A85Ul1YxPsza5IA@MOe9{Fc)=J=5J?~;avPRWhK##pcM*Tf12OU72l!FO
      z9`q#9IGgUNneD26%=^dd8-QaJ;s_B=M&eOCRsE@Q?yG?(W%XR%iHQz6jN4L6J5a83
      z?GB_qXo+Ch(!!RPt{zA)jtF7Z@T*!d`=&qQXhLMnafEDRLE2~<kyAoc`As<`P>&F+
      zDMtloghJ^LPOsc$?K)SIL>Ma;5=arkrE)g`uERnUF@rJ|;#eZ28_JQ*$wOay9nsg4
      z|1?}%=&taTIe%Y9f}!#WwZ+W;9t5{TV>XA7Y`YWBmKVxM=YLf=GRX+mmE%aSu7&SQ
      zKaPDu<^NT1hd=5-k=qaR<A&IH8Ze7z!JgO>Nb<hS=$0c)T)OfCt8zGFkegxcc}`tt
      wpFxDZU~e;RfD|M)_@?+p!zQ-o;%RJi8k(aWP88yAcdoLBEbk^EA%{GYp9z7Oz5oCK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e62123a128b35a090544dee90f76940f6e35048d
      GIT binary patch
      literal 14529
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/ExpandVetoException.class b/libjava/classpath/lib/javax/swing/tree/ExpandVetoException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7a6a886c846bad65f0418097e4a1a966ea4c77cb
      GIT binary patch
      literal 675
      zcwUW>%}&BV6ot?5SNRbX1W`Ad7z1c*T%))!5H*d7fpkB>1jay1+Jd~63q#_<2k@bc
      zcLst+F=5f^y|>>vIdl8*`SuRr0tW^{498D=!l$PHES;VictV)<>4-aBTLf->+7Y8b
      zx{iSeLr#(AfD^a;zz`J^;RFmP)=winG+Sh+-F!mpYE)&2T}np=HHLC&JxSSSh}^hc
      zkw6&96bz&o!lkku2SYlAC}Ip5OFH6VJZuZE#oGhHkhR<nAK2WJs$UEvL0|g6!~S<`
      z3R_(>qxHR;X5bM@sa4#(id$gFmsSxB#!&b^@9DUI0ER@<9eW+okScp|MZ|L@!VxVZ
      zO#hVbr?x>=h-w2HbjGP`P#>aqqB5iB^c9;gn#s_a*2*hV)`-2v7IlR=jcsHBT`5<l
      rJ#!1sM`DyRSvi|wXQk;a$?iyeuT2l<_|i1FFjdtqiaPS1cG&*{Et8vc
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb3ea86b32198b5438c673ba3fb0ff1aa4ae8386
      GIT binary patch
      literal 2355
      zcwUWFZBHCk6n^f$FtDAr^o>ek`zBCWpxf5kYN4&|QeazH5God0t;6n=opzbU+1Ucd
      zXf$e!HX2P$)L7#utKT$XAxL8UB#Hhf^*OT}sNHGOP3GQn?>*1C=RD`!vw!{b+wTC5
      z<1GyVg%h`pyT(GiFmKs2an~`;c)zt^W(G}bChHCvi}|9PFw$AGC6&*ZV`e(<WHf{n
      z>IE0i8AOdt-!{{(LeR<2E2yMGIAhMaS%sQ8!!d0h?Hqbsy+<Kr)1*SgDqLEaGwh6+
      zA$p3a>3q@76cl!sQO3L*=gls`Ia6?Rh8S-es&f4*hfy9<sm9G(g_dIq9o1_75elf+
      zvMu+V!dUxLqms$$*s6CrCg^v9@zz0MuZ|tq89@+@I(A_nscY|;kdtN|VbqAUUx!wf
      z4(g~yok)juL_}&qn}$|}BTwn0jw5JSs5Lie-d^^w=vuk>xasz6K@43QIu*A5??6X4
      zjuM&9+pb~R%*md1pWvp%yJI@GKo{GVZKjH|)24IPn9iA!{e0TUO&E?P>&j+G5~OhQ
      zX^DQM0Hp?uF)6khqpw_PVI$=glV*%oN=}<G-BGVlqU}C4uu&@FdasV{s25_-={S#<
      z6zW82m?m>fia**rC36?iry-%R@5x#^E}@^?(xpV!%4HHPaQ6vZCdJ~QjwCLVOCpj?
      z*}}*z56GPRVEn9T7~%ukOeT|Z$IJ{_1vi2#Xp~_@$0%NAc8yG?-*O61@@PVc8P{<Y
      zuaIbYv{DC;RM4PN$hwl%o(NvWq=st>yL^syOyN3<ok1zI`CV1LrQtPZV8$-StLPoD
      zi;_VJ<))4|U@+-!{(|EeixNr4^=fMo+(2619GTqP?xQdz54A356x<5m0XxmEWHazw
      zx$QJO68I*mEXjZ~M<`>vSZQAkmAZSZfl0yHI<{h)1|oJ=t3;5O47H%3!$nbH2dzqd
      z_gS;1U9j@<5YPMYmrPFi-RSEE8}E3&=%melOP*ts|EoJHNCiD<+oqEsF9k_{Wb-ZJ
      zAj1jr52Y6M(z__tOXu=t_APIYRA%-E$d9pe49KJ7cD-~%uEokO?54dvl)m9wti)rT
      zB{alV@Jy_^gr-=uglMcWT*84^W2l5fvCbtt+Zb9!M*t<nfAtI>=eVD403&p2fY&E^
      z<z<>@?PCZBkirR`p5!U7z;l$~Nze1rfG3@z6!fIi#D_fT1xkW=5ogM7s&TGm=Rs@<
      zJ?pq1?4@wvPn_b^u!OU+TE&F`&NhEfXE!(b9a_ae5a*)Jq0A2mhkDm=WpV|>!?Dyu
      zobKwT!ZK3bp1C%e&V<VNvBuCcCjNj*b+2Pvm#l~g%ktm9V{5oE*|m(<n^rJgLXY_M
      z%LXYE9=C6kns*q=yX5~p9K!o(#Rm-OLtMZ|NZ=FF^eKjMj}788T*K$Mi7#N{OB8V*
      zi};F&uZg&akMS*~?>sUGJ;EPU$gCsEWWE*cAI2?@)-&9l@o2q5>seUb8>W1lh#<A2
      zUd0I2caW>pL6&=p^HByeyN=eFa3JLIYvLE>7hgl3%)Pk`r-WHi+>E%vOV5w=?ID`+
      f6WTa;;AhWcy==MSaR7I{aUKhtBRo@lgNwj_!x=p7
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..56ffb9a9990ecdd3fbb3a7b194daf1c1e23ce1b3
      GIT binary patch
      literal 7085
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/MutableTreeNode.class b/libjava/classpath/lib/javax/swing/tree/MutableTreeNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8bef869bba2241c7e2f7438a2cc8900b6202f7fb
      GIT binary patch
      literal 392
      zcwRg8Z`VEs1_nb0VRi;4Mh1nf#InQ+{o?Y>ymbANqSRD<-_nxAq@2_cAlolLC6%3l
      zg^@u3q)I<05vayLDJwO(gq?wnkwFqeFH93716yWZacWTsBZHcT4<Re8JvGCCI*L+r
      z^UHu*Sv0_WRU$Nk)bSRlmV^TBf;fzkK@_47*|lJG0ub}vit=*<5{pvvfJ&J)KoXol
      z17IRt!TF^{$*FFcIY5VqpjoE}G8gD?phh5O1%@IUFl^WvI2b@-#L2(~rMba04+Afl
      U=40Ro(*huIpgut$$;2Q80EE|N?EnA(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/RowMapper.class b/libjava/classpath/lib/javax/swing/tree/RowMapper.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5980b074d883d11005b51ae2e45649e033904e8
      GIT binary patch
      literal 177
      zcwRg8Z`VEs1_nb0PId++Mh2;@#InQ+{o?Y>ymbANqSRFVp!{;*#Dap<B6bEAMg{?p
      zynaq1P}V;wD>b=<k%2!wwFIcB*e$;(Ah9H)n2|w2BiaYUoDd)ZlDF23_GDz>3eGPr
      qN=|jl%t>Wr;Dg(t2hzsI$iT?J%m4z6Kr2}p*gz}>b|A^bzyScy+b=8t
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/TreeCellEditor.class b/libjava/classpath/lib/javax/swing/tree/TreeCellEditor.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2b597797085f89c22ba14592237f4204f2007f87
      GIT binary patch
      literal 259
      zcwRg8Z`VEs1_nb0ZgvJHMh5w;#InQ+{o?Y>ymbANqSRFV5Fp{4nv>(2l39{p#LmFN
      z$RGexq@R-rRN|kMm6}|_&cMdVAcm|Jp@We@Dm}FX)fDIa+=BeP)VvZ#273)3WPM&B
      zh1Ndk7Fb6`MR{sMgcHk4^x+0rGcs@m=a&{Gr@Ce4q%txHqgtc~(gAcEBLg!KvjRQJ
      S2y{O?0|$u3zzHOo7`OoS_e)~{
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/TreeCellRenderer.class b/libjava/classpath/lib/javax/swing/tree/TreeCellRenderer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c321ddbc1e81b4f979d013d5f32d873b531b0c67
      GIT binary patch
      literal 236
      zcwRg8Z`VEs1_nb0PId++Mh3;K#InQ+{o?Y>ymbANqSRFV5Fp{4nv)ZhnwOGVlv>2j
      zz{1EN08*x(lL%DgpOlrFT*Am8lb%|FuGTp}w;(?+H4iB5py7jTv=>OJwGX;6)=^PW
      zo>7_*@x<~HeYgqMj0{}C`K3k4scxA$sf-Mw=yvIW^sq59FfuSRfB+-VnXC+KAQl5V
      JkYr-u004#aMR@=K
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/TreeModel.class b/libjava/classpath/lib/javax/swing/tree/TreeModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c277b50cedb306647b2b55225306a8646cc303e
      GIT binary patch
      literal 564
      zcwT)`%TB{E5F8gsLZJ_63KBm+dLeM`F;b;SK}CQ#a5K%eNflx#aYDb110TRgA#5Wm
      zK>|MPSen`KtoQxn^$oxkPHc1-&epu<8^3%>^OY|PBL7~MYY|gsW0zs5c|YTdoj<K<
      zAsOry$y*`R&GjbHZ+^<)C_#{<S<G<mH3ea7Q}4Se5LK?c$1R<ckikmJi1_jk!6U<{
      z=2=BEQQUBu1c_ov1-blEHzw7hX^YVV!$2hp^O!dC<v-K3r*wH7Z$C0hOG!Bu4BpQa
      zR8ubfhR(cxTF|qosl}vwC#qsWvos@y{#J0Ioh=529q8kz?d`#W-l7f1;6Azr4{&I(
      WhrYo9h6aytY;dGeIk~EKF#ZHW@SH#Z
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/TreeNode.class b/libjava/classpath/lib/javax/swing/tree/TreeNode.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b7cc5f7407c5fbfd43252a0590febe0121af0dc0
      GIT binary patch
      literal 400
      zcwT)_u};G<5PdF?w1GkkEFEA@7c6F`ssbre1xPTlndB(0j4dS&?YA-X1NbP!*=pJ7
      z4fm{j&+ne@`{!#7;2P&CIs&7G`cx~~EVZ3WUlYk^ZuhRD6#D{$Kue>Te0W_@=>>Xo
      z@{g(}%kPVPJp0$+Mxe{u!dA2rxXgDb$Av(~+UdJC)x-yNvD>-7RZm?TlI-QdW60Bq
      zF>cvJjzdP~MIh15jMN)PD*u?#CcSLEHuBcCA5<%^on`;*$+dM!ciIpy+b+He@<f1L
      m5h~>q9UwtCRf=xJ9<qpsIEvWEam14i4lv}O0;k+NIQs=jX=J1T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/TreePath.class b/libjava/classpath/lib/javax/swing/tree/TreePath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ba99e3f7bd214a1e79746e09a96f1e4afe5ebc15
      GIT binary patch
      literal 3273
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/TreeSelectionModel.class b/libjava/classpath/lib/javax/swing/tree/TreeSelectionModel.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7c0b606c8b4a50aaf4afe2dc46d10dc88a170887
      GIT binary patch
      literal 1436
      zcwU86TT|0O6h5&?72Dd<BGi_GqL?TW@$UFoBa@k47*cqU2WDw@N|=yzvT1?8=7T@L
      zALV#<v(q+dDKGivobTLo&i?)P`wsx@!M8NrQ()_Y49T_5t{ktYhXJK}2R{~dX*YCy
      zuj$*=O~Zl$d2Xn?1kKuK7sx8GVwtV|hH=_CG>lWrXc+a5*={MIm<nX;zQ;o1g~!Al
      z&=h7=6e!o*t&X{W)IPEjPTT;iss1pnxi-8IM#ETr3M{Cmc8pAKib<)OnQ%EE;kg1e
      zwK21E&VJ{?3P~TPz=nEqhgY81b|O<Dslq_TfL{7Tny@U*(6U5Zk>$Fo%_#(PCS4fs
      zSesXU!l~{LJp9EuhjBJiQ~R#D{laP;HVR@~_QM<T6OhPtT}pxxC)7Bx49@w`ziN_x
      zp9Xxy)A2{N7;&Z-bEwT4#n>Y;J|r057wrVsVi}pH<4uxMNv`9{tiuq;Q{W4SEfoS9
      zRX@>H5&avK*zo|Rq&E7GW!#N}z{f(voBBE47Hv2zq#kc<JDP-kMv2Gt*;Zm8)o5*Q
      zi?fC~VmCdecH+aPL+XY4Ok0tt5+%AN*plTBf-e2(xOjJ~)33-bPqm1z1MovmK^gAD
      zB1&m~`tShdhZFJ=%8w@G3{>#;vyc;Sz+=b@EWonBB9sKKNcoABSEalr<uW`KSb?g*
      zbs47y8v-}snZW0;CGZ8j6u1qq1gfA3d@cRnNZf(90(YgKF7@wZzCCy^@PovU@JZlj
      Lj@aWD(c{<urrLiX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d95a1927dd03b09e09dbfed2779098712cac1e0
      GIT binary patch
      literal 2254
      zcwUuN-%}e^6#j00u#j$BEG?P>r68qY`H@yzsz9S9EhQxc%8yv6T9;%?mZqDy*%Wwk
      zbad1Q?da6e8K>$SFFxoDfx*r=KG_-lpVaSeVnGuen;G_=d++(qJ?A^$z5MpaPd@`V
      zi!}uvf%7Z+J$)@)ST(KXuwxrWIH}vFzLYh_4Rbl;#P#)D(TVD*jM0_IrHvUQm9x_d
      zd;*OU8qVqjPA#n%DM!F-=T-$oOu(Nu@=iveF0b2$#jPXpf4dJ0_$-DL2$+Q{YkA#D
      z8)>2!iCW4Pt#m=)Xc?uiI$@sd5S%q6F0aerE%B=C=lGfCCY|b>j9KV9BhXjvwr`OV
      zH)2|*6A_pXJq<7xtFEwmr6<YkqpZ3C0?(>=21f$$BB-JX$4OwQCn<MYRrpaStrIGg
      zvUO5LJsPCdsUje)E_5q6C7}KPG*z5NNTA+$!uR2Fl10bNhGz|D_y9EYDd-hA_>T=0
      z{TLuJm9re(wAh?up&Ioq$^_4-H~>|_3+#J!0|QjwIa%;|0VNdUuUzy66$f!hW@K7M
      zqIh@7u;*kEQarhop8dP1%A!y9m#C*`(jEy*73nilu66q5vR3_i!j+?<Pgg{%EE~?W
      zE48*z&wq$bW*=2?7>%+iS5%DQsz8Hunq<f<8(JIf?vnBtCKOx~IKID^iZ~|O6s8o-
      znAvocSH#(;2{9RQO2ss;lTIRH?Dg8zZ5JqTx(23J6a}-qg1ahUU+x&`xLI%lm_bl}
      zk}6)q4a!1Kr^igYuwO<=Nz9^(n|Pf>%WE$Mv`2d5dLiS;rVR)1Cf-tTOQ5O7whA3f
      zyeKS6pu5&l)k_LkbnCKJ3|G;6)hfyk%2IBtSO#0IIJrx<t*^^UdTv%n3m}CRDc?K1
      z!J!%si}I2;Wc7km;oD=S_^w$jJX?Oan)ejGODZMlvGatow$aK1*j&+F)e{()%@ysG
      zF=ooEaAIG@4@j_p8nZ0Jjxwi$BtEcv4{(y&_3}SLJsRbkL#t7~IPS>z#vKEdk(V0s
      z$7{;3M+%<Hjq(-aTt;caQN}w)>-$QSh}K&|v$l=rwAK<@w6+r3w4lF)b}i^Dp+oE4
      z#PdPl4thK&A*?;Z*#)o1>)pnSB@F)Pp7RpFoy-PolONZZO`I7_^0Wkkm_j?1K7i|Z
      znI7lp!Ba7WVK>(ZMwo}kwJy@~x>kfSe6IBhEs1y)m&%!oS<dCkLv0hIkMY1eLZkgx
      z4034R#AP|#!MFz(TfbrcyNmqm*g?XJNL#Bf{T=+ikw=(W*v8zXme|0BzJ5AvVZPrD
      z*DZ%3Um3p;^ljmdUmz0wk8!9^&gM7Zm(xFgCnu?ezAYFn+b~NQm3jT}gqWmD_dBHf
      zU6%45Tk<|S@BvQYLz3_j%la5me1ZvlO3Ln&s?Tr(pW_xDz`z$M;!CXKD<Z!p@;(s{
      zIs4WnbDU90M1{--?q(?g!T6oH>(V;JRm-Jyg3)uxb8V9L+eCO7zs(hqq}oQIB8@Od
      j!O_n`26qdoa~C(<gVnM_<zNpS_gln0jsX|mg;n4$cS{`h
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dae7a864f1cc620879adad8b3bc0385ca9c34182
      GIT binary patch
      literal 8001
      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
      CzVfL6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/AbstractUndoableEdit.class b/libjava/classpath/lib/javax/swing/undo/AbstractUndoableEdit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ea96c60ff9a60439771071147ef57d5c18e97c95
      GIT binary patch
      literal 2624
      zcwU`WOH&(15dKCIl2{f{mNy0?J2nUbRxmcifFHb^U<<I#BZ0iUk_NFvtmNGlp>oUP
      znp|?S&v{&YaH?YAimT$Pq$;V(E&m{YAgA1u^z6!ugoI7ypxvIG{=WXYdwNR0|MTNd
      z0ES@%;9)qst?sIOG4mr$Psj3lDjS<hn3ka?tyNm6i431hX;uI}hLCWLWmIxpN^J8a
      zef2YRR}ho~gAC0!P|L=axuK~U?PIY^e5Soz<A$ka_0{=V26ls?ekQA%ma1E8Y9`NX
      zg7qi9{L51pVh9T2MRkXuO8h{}vSm={i6CBK@Cg_4yu%&OAe!l;STWRXspd52`fOGw
      z2DZUaLt1vp_D^cMW?f<MM*7#te<qva61?b=(T<K<Fr1Xpf>vRLWwfD{p)s!Md@;Y1
      z;KquRjuOu%DI1k?qIL13&)U*VhQ9c*$~-}Uyq$qGx0mEOi|S$q5Mek|fuB)zJ!_*~
      zSBdmRWei}DA&^vcrx=vfhJ-$J5xGH?2;jA&`9!J8_|D51dCn&`CBy`iH>FW_0X3Bp
      zx*1MKDl;t0te@)b<F;?lOI)c{2G3>GBzL&$HFH@@>)NJ98fe{==GHBPn_Rb4A=5b$
      z&5{0UhvF&&Wzj|u5#ul{h-o^()mm{*=vv`>mV{Yc4`7a=rBwFn{DP{hX>Q1P18*|a
      zQUoU`LvN%+i8Cq_Rm6$%-jFeg%M#*P3}B&b#vCshOSnZxG{g0@wPkm6K7c!v(qYf(
      zyp~CELvXFgSQVlIyJCcvHYMD~TjDUkO<6=LmGrL(j|~~`;9ZKP=5kz5F?2;{DrFbL
      zObEpL0`UREP&LjMB2^g)T&792vd^pL-7)Fu%TbG*hKb`=*|79c4HIYEX_yyk5Zeq5
      z;gXRb4~w`Np?F86wsEw;AjBOKwr_{=Fb(5!Hg6>PbxllkN7dkh3a6-{UU*Q00R7rg
      z3(?{_x@|p>(S-&yy6X_Fm6CN6{pgCZ?Kb;ePkVIz(6f_PQ}B@mG)DJvA{zB=JVy6p
      z^n7mvPSLZ0LIW9c%aMH#r)ecS5WI>r5Mywb=sf5pTafkH#5d`S@M?(`(Ek8+Ptmu&
      zkD+H#FGV<@R|o=pLYaL^grA`qpO=JaaYNAMQ&c=jZ?UIDe?ZTD$n@&Ij~d@Y??ac>
      zZ+m=I!lbxN=gP#!D#Q-kVq+xs!n3HairBA7>^CI#TN3+SRk0&46#Jm6*g{pY7u`l(
      zC`$B;0+#egqBrm}9gJT}82m27D8`Bmqx2TOo{HFi*vM9Aw}=$h>$qg=A3p}ipD*E<
      zaBDJHtck~WnB(t~3_NZIbdeR2Lq()lx$@``^xqPw*M(klp<mEfagfK9sVA6;5Bvtd
      z5{gs1=NATlg)~^eP3p_Qqo=sNKJWy~`&bKw3s|R(_X@as5bh*(AFP@FqO?F_t*B@1
      zP*?}LStoi}mn|dggeuDL)1RWGJ(3DdN{TGeNnS<TrYo)K|4SPtY3E7W2uZt0(nd+z
      z7)iTyY-tHs+FkM%6^)A6bVF=8;T4TSi=$k?hl=jlJ!F@uv4@3SMFYErPBw*JvJZL`
      Lb$gVv5%>NB;YtGd
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/CannotRedoException.class b/libjava/classpath/lib/javax/swing/undo/CannotRedoException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7ba3fd369b8a8bf1798b38940657757a3ec50d04
      GIT binary patch
      literal 330
      zcwUW;u}%U(5QhJOgOdZrSQ$GKLeRpCG0{R}L$tbBAfaFGHaO(iHOHRvT2>|$JOB@6
      zoIQ<|g|o@b{4?K9{@v$h3*Z8WA!>yFLcOYWyn16Zk4ux;c%+Q6ZmctVzfSdwV{1YL
      zgcDE3xe{(%8plihyC*bn*|57K)Q6{2LNKzKj!;Ldg9e&}Zo)=CmdlwgCTf;z!ck&V
      zl}}Z{UjGaO_slE8Ao-808$$GC%Ocee>^~p>!JPX;=s}FZ2gwsdl0#9Kl?EDTAJ}`B
      briMszBo(+qfNQj+>wH5}_p1{J71{j)K=)3l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/CannotUndoException.class b/libjava/classpath/lib/javax/swing/undo/CannotUndoException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..dbcb3b528112091dcefc576ce7001a2ca47513ef
      GIT binary patch
      literal 330
      zcwUW;KTiTd5XIlX!O6+LSQ$GKW7NWnq0vBWh*TE~75e4a=$K>I9DB;wvNEyY1Nfl~
      zvnR2#U^kh0Z|Ap@_x<y=25^aPhzjBOMZKw2ynJW#6c=W0<B>APx{1i!RjOYdTN5H6
      z9C<R%lyLWjalFufb3%Q{hTRRJdU`e`1S31w5vpi3QA3^3N!aMSVlmVCqnc%!aFEzk
      zWmA>2_uI$7J@b-qlI)UdK!_e}k*9jh{`28K%!OZs9wZq2A-NJrYACK>dZ2dxiM<aI
      a6+}`a>A)2NTw`BU^B0odDp#~iva<nNgig=^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/CompoundEdit.class b/libjava/classpath/lib/javax/swing/undo/CompoundEdit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c4f37b5a63a6cebc7462f9c94ca08e48f16527a0
      GIT binary patch
      literal 3252
      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
      H74ho-SsRc|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/StateEdit.class b/libjava/classpath/lib/javax/swing/undo/StateEdit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a5067181d73985012a8f9e3bfb9d064ecde761c
      GIT binary patch
      literal 2261
      zcwU86TUQ%p6x|;Q373J=aH|w+N-5@oB&pICLeUDe#Zn5SO$Dz*GQvQZ!I=rt2Y-c2
      z*J>YKx_tCjU{%-h!TRK*`U}(_;JaO|`<qNdAhCVO<U42f*=L{2H@`mm;U@qo7(vtt
      z^sK2{>UP5ZNH<mzMI&z}GLGtKQ+eG9!Y^>T>ixxK+p*M~bCZU;TyUWR^$Qc3=}Cdm
      zj0{K=RKhck#i+DE%Y<pzj%qkrwNTU=&?u1ZpU#hl%ejVR)ZkV)HFP$d8W}m4NF@`=
      zRQODCG&wvvoC@2jk=HkK;i>J-aKAvnTwc?1OdFp0fBjM%lQ(Qyn(GtjEQu>RdLeN|
      zwO5}&8Z-Kep*ls2m~<`7SVdLW-PGx7&$wjTG;PPrrbsypTHc&hH)saNbVGN>1x`ht
      zB|4fF@K2a|tqDGKDF~rkz!!;Tn;`I<f*u?vK+*{eKa;I`B9i~ejBaSN#f@dnx*=h5
      zbY@O1WK~O-w&(OatGX@F`;;Us+sAnjYp~EpN<5{Y3C;3!TES5Sf_PD&y+&V~Fn}(J
      ziz!ghB2R+~+R)OBAtZxH2%LC&bqY86j6jp^nB_4ai`1O6tlFm;dD+Ba1!rYbJ1lL(
      z+|oEDQgcB)2ER-sn?Iu99J-~Nw1P32NwKubTz*R{AzxK+K{B?lXwDolnn8eW8l~ZP
      zM55JWkkwBpn8XyfV_mzQ(KyeePmr#9y3)<KjOie*@E#p_q2LW%<$mjqW~r1U&~+eo
      z+Vhj(8m<R1%Mn+<RWOHnIXi9JIjqxLY^gJ&;0A6AH0MkfrW^KE?KUq|q#7MvlK5K+
      z-ozpsz9NensD-PQ=q<bx#M=UGhu<l9SEdhW9~RYuEh~CofhrpwD2-4i%}Ljye967|
      z04oB)Rn?w#E93Q95)e9Ttkoj|)@4PZYE|5>j9IjD+9h4yh}MH2Eu7>!`S?YxM=yT?
      zT0vTMXn<ed0-pVHx9M+n{YPlG9kO{xcy6FCgmykVXk8|29siqSd+3bC#V(G0>jw1l
      z+3KeJgrT1@$!B<;R#yp*6L<k|PhtLqOM2WRooAeHpLDPW>E|T<f}~%%q~Q|0id3FX
      zQgt2CJ!SfjJ^FYozJtEl;12p@KVo2U50M>2_mA;->>i@`@lqZ3)AzVd_>N8dp6TzQ
      z6FW?{ix~DQq{Pco;$<muPl~|H==P*cx;7AErau1SZnoGiUO8Ow&m6`Bj^GzJi&Bd6
      zvIu$os~Goi-eYAAqm?z37=L3^ekbD}H5o6|WE|huS%dLUGX6!zziTqShKn9!!kssl
      zkxc#Hlt}`v^Ph^~dN0^7zk^=z*WUEzWnsH`{XQ-U%zTAWYMK$aCe?9c7VaP-5j<u+
      zS9TXmcMu}(J$}nezU5mq^8$AtKiIEk0F8Y9%Z@+fC3wWtkI^Rt&I=#Lg`Z3R5OboT
      bV&3zf&=z)U6*{GMBZ)PvyS*#8%p3m!P-WVR
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/StateEditable.class b/libjava/classpath/lib/javax/swing/undo/StateEditable.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fd5180f7de1f106f0bac61e034d07463cdf4a147
      GIT binary patch
      literal 449
      zcwTLgQBT4!6oqf6FhEe;lP1ROfd?gqGJVi(1|JY335khIcrUEMLhVe~A-~NBe}F&A
      zc$p@m@YHioPrv5gkI%Pv0Pw)E!6I-xWplQm>8nr^nyEOUkzt1SVqw@wavQb@)R!G9
      z88#k9Q$98X3Xk2We@nm_{N6=IBP1kH>n18SOqn5*881PZz)hnc2kswqYx(kQ?s~0r
      z*Yo{L+V*Mt3T1HN2PmGIo=KtH-r~h=5U6UNnnd%QLEzxz`{&FEN$*+ulrzKAA%Suv
      zCW@I%W9?{T?Yi0Q<kiY5va`86_&<HPp8U|FB-3MlCnVCG^<j$y2yEf<2^>NJig?=S
      aEGU76Yp%c!Ce=Ktq2FEcd#LKU+W!Lmfp$0m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/UndoManager.class b/libjava/classpath/lib/javax/swing/undo/UndoManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..de96e03119b535a7a5585bbd64ee1395ddf15e82
      GIT binary patch
      literal 5167
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/UndoableEdit.class b/libjava/classpath/lib/javax/swing/undo/UndoableEdit.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0a469b738dfbdaa3b2f79d329008fb9cb60bc3fc
      GIT binary patch
      literal 553
      zcwT)`Jx{|h6g-#EKtiFVh4LX5#E>pT%pFmgDnLXqu(`2`Tm`2}T<C9O;0N%d5YHh%
      zQ3R2avwipOU7p|GUtR&6;m}2c;b_XA_#!Nxl}^IB7Fl>pA3jOtNGRjNVQ5=Pm~s+a
      zO{Ow73@#VK@(jnp_+N+N;GX0$*EdpR3@gFc-il~1lq^s07`llx*SRdDHr%L8U-C!d
      zdck1)6Cg4<wHY$>No+0a1(vbqb*80?NF`c5DC$qyoxIHCjTW(-Sy|zt$8b{np>wWv
      zR<`?=GWfZir976Ob8xKC#opiLHq%nM7iIH2mKQ3eWS!-aomzt?1I-2Y@#zj$(S*GV
      u7i%T1SLnenaRaRqH!Iw#uwCgoq+{47H;1rGCp(qn?k}cK?>?;?IQRgd42Yiq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class b/libjava/classpath/lib/javax/swing/undo/UndoableEditSupport.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..494247e4249e628678bc39b4e320e329f5d56a43
      GIT binary patch
      literal 3518
      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
      BJq!Q<
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/HeuristicCommitException.class b/libjava/classpath/lib/javax/transaction/HeuristicCommitException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e72dad5e052d43fb3a3de3bf35b0f04b0d2c7f6d
      GIT binary patch
      literal 477
      zcwUW<y-ve06orr5G=WfBXek>5TN@BjVF0P9O9f(xSc<Z{!3swCL5_p^T1=G~cmN&>
      zah*mWfspXvbM5>2oa^_G*EaxT3>-8Vyhr}bm%dg!D|n=3p7}STRI<=An&oLK_0=*G
      zPp09(V(1&*Pk0vlUkwKPQf5+58JfdU$Y9O#d*Pyq%{E%F8M=YY#BG@_gu3I4L@@M%
      zJmN{nl{Dx2($WvIU^ou`Kh%U_FbuwjnrkJqcrpr2{Emt5&{Sy=o5)`ngFDYl6^UzU
      z@(=z>IWaGB2(p4%4XWs4v^#V<BW0v5Z-tGQs_oM5k^-l&2-u>ky@p7)NsU3LHkcA=
      fSlc^Vq5IR}oXCsHVSi244yM{guL|#1Z}vU`#Y<*O
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/HeuristicMixedException.class b/libjava/classpath/lib/javax/transaction/HeuristicMixedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e8e0236cafa4f741a94751f1aa94ab128b318625
      GIT binary patch
      literal 474
      zcwUW9O-sW-6r63-L}P8WwVu3qYg#a<2Zc&6qIig2D!FgdC9b52Y&Md=<*DGoAK;G?
      z-=;x95!}O@_c3qg?fb{;8-QaB95fibNB+!9Un`#GJkl~t{TopznQIx{%2F(@%1At!
      zz5|P)Z|Hu))7bwSFxVF|m3qq19C{&xb(t-MizYVPXu)Ra1~L_Q#d0pxJ)b9np%-Kk
      zPeQJwsq3btA7suj4*q@9gkdlYzHgdoCDVA~g~olyxOeENWgZ*HUo-}HmK7=z*V5P@
      z{9$rr7I6qtf_V+f=vx#Ws!j<RVQaL)#!EGJDY}Hf2`nOPQPy6Q2)7B1K&KX%64P+)
      d(RhXKPlYpLo>vO{YgVmbvR(8l^M19n_X&{XWbyz2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/HeuristicRollbackException.class b/libjava/classpath/lib/javax/transaction/HeuristicRollbackException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b0f5ecdb38450ff3a8d66b24f6f49475148c8e3c
      GIT binary patch
      literal 483
      zcwUuH!A`<J5Pb`!)rz1XUX3?EL!%xv!EiAe4~+*gy>IKLu9hv?wuayGMB>2@@S}{g
      zrO`y=!9C2I*?IHk&HKme8-OG99Ml*NANez1c)8{(<54bC<z0(H%Pg1CZJHz@kDe|U
      zk(is71B;<+CcK2J*!yZQ*ymEoe8N!g4*~}3BE1(b>R4~00h^)iOC@fKSt#@!4->)A
      z@zaPW0oT&h)u)v|$c$m+|Hsytq1X4nZB276RXiR9#=w>_&>~;6EH+Dj(HPumTIfhz
      zN#kJe?>!?ki+zw7%&SpG$5C{sIw53)jo}h&FJ;@M=n?|Qu!yihS#w1q+$1yttx8}*
      gOvAN@2TQbnDx4DYtW?-tu_^_VZKG2z@0K$=pTSaSlmGw#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/InvalidTransactionException.class b/libjava/classpath/lib/javax/transaction/InvalidTransactionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9143a2ebfd9ba4fc5d6e9175936718ea621b8faa
      GIT binary patch
      literal 491
      zcwUuHO-sW-5PjRGjmFw)wc=54ZABN+gHq{56olfzmfW}L5?7Lqq-p8j@>KBP5Aa8c
      zGigvz5ZuGO`FQi@?fb{;8-P=^T$BWkpVV9}WR@yBRY7JFEAQ-FMP@SkZrv;b{mh9A
      zM_`{<WEva!pyMRdUsHkVm9Zx43zXX(U%<IeCfY+8>ortR6=)2M)%UY_tkaPiM_Qmc
      zNCFl4Dm7deO(%OaQvo^nm${xmtDUdNNZC*hv((tI*YVlG7CWeuv3MHt)n7CLZ<x%|
      zK;Ig+aPY^W6JEw4NDcf-l+pJnx>TJJ3c^ZviM5w}>{0XxdFbFA8<f>nB*INX7N{2j
      iePS}V+C5sL@l)Y~n3uW2-ilQyaJG$Retak2+5H6I`D_aS
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/NotSupportedException.class b/libjava/classpath/lib/javax/transaction/NotSupportedException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f00d45b5da8518a40918a866a7bf28684deaabd8
      GIT binary patch
      literal 468
      zcwUW9yH3ME5S&XK8%#(bAry2}#6iLW3Xp=*AgHV~M(!`p$sBUdk$pz_EviTqd;lMX
      z*mEq9fPyP__AxuN_x|zv2H+e62MvakC;rS=zRtNSc&ufn{As4ca=FZME#`NtSS(G~
      zfyK}_WIyF9@xKNP_Kj3hPZ*j*FJiE6v$=55#C97k*bLo3Dlsh=Gm$^=St=NMK^F5g
      z;<+?+-L&+hEEv4tpBIf82E*X{qEP2jC1Wo#-h0NoLnkeY#Q6Q9F}Pt?=CQb!#{B3{
      zi!-x^V~`HaYfwgCqUca{NyrFWqcyf(s<BJaB?K;D5n+e2_J%~bOK1c-wZMd!hHH;b
      b*XaIKxFY6trEs`m)e0utN3SyPS33uv=3ipm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/RollbackException.class b/libjava/classpath/lib/javax/transaction/RollbackException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..71e854c15539f94a20393f704485896003b4035d
      GIT binary patch
      literal 456
      zcwUW9O-sW-5PjRGiN@M$YkL<F+6o5spit>W^b|Z;$$b--xSDPxNu__wQ^A8jz#k>f
      zq(Q-6+{3*2c=O)u=hyoOfD`l_)C3Nm<f~kGMJ7!yqe7>~yGxTKl+p9`B2q8habO8_
      zndl|b#NN+9z`oQ*7ZZW{U>FEkSLuUtQO9Nz4cG#0UmJBhpM@&Bmtmp=I({0-B#@cr
      zx@ua*qs|2m{eN6D7U&K9-)p8trcFE^2JE}TzAZXumdEV1MiX$S={$?njb`Kin*1@Z
      zU>~Fbel^PID-<27&IkozW3<G^TRC<qx`e<fEFx@C)?ASYw+UIGRS8Up$y|GMv_$)_
      Y!Z|T7N`?N4RVi?`i%x0YEqC_50Yvy+X#fBK
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/Status.class b/libjava/classpath/lib/javax/transaction/Status.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..320458e4d598f3bea887debf3777619470e8afaa
      GIT binary patch
      literal 541
      zcwSAB+irqD5Qb-J6%SRhR;xX{LWz$+fi^?|186VF){sU+Ad#i%v-P46(1&U|t83gl
      zzVF}6KfC<?eg6Q!3?4POK$z^<C;Kw^p5-Om@NJPB5of$AHMm63MQUU$|1g60UAo~2
      z-6%HWRg{=k?5-UIbjevoUUHW6HOs2BM&kitEDw5SICtzM3>J%L)0&GE5&AM+hR)Iq
      z9b0HxN0-_PJkO2eqpu+hq!&{h`!t6(?8#u|&;8)d7q*TtlGYEBI5ho8EE^oc#<}BI
      z?fS36Yv&HxErTY)P$?&yoa$Q$?Wm~soAhOyr3jtl%RPxlqaFlts0~x7LxV^YSA-^U
      uOJR|B6uu(vD%>OPE36X_6uu@NDttpcQg}>!tMG()s_@<6XWbvZAN~QeURkpM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/Synchronization.class b/libjava/classpath/lib/javax/transaction/Synchronization.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bf49f29ba2917ac1dc73804d0819a6df1b830960
      GIT binary patch
      literal 195
      zcwSwNF%H5o5CqpDBoGQH_yApKuy_L!5*0-xddIqeqhKRr5b!h#9>Ajzz7Db7&8>Fc
      zpXUp}5~Cc6z^qkQb(6s>dsaFaXJvJ_`rw^455;$mRA9n2*(tl1+qxwkBC4rzo>uO7
      z>WGU1y>h-27^^0b|K(}9;YU%qi`TR^9SKbTGz&Il0&xYLBwG8(!1f%2NCbw=QG5Zn
      CureV4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/SystemException.class b/libjava/classpath/lib/javax/transaction/SystemException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5a5241dcf0927297da0bc60ecbbbc6dfdc550602
      GIT binary patch
      literal 585
      zcwU8&%}&BV6ot>wLZwzw{`_G@+yEvvMqMZdO^hTYjT=n&Lv3&jv}RfiK9&nZ;=%{;
      zp^SG*0|pmvruWXA`<-+9_5JY);21Rn8HV~3f8kR*mOO~K7mF~k`>#>#k8h`*|Ezig
      zIzvgx>=6%!_Tqsd?@JlVoAAMBU_FN1r3ggaVbB^)mqAxACN!*DFtEl@a75tWO~wOX
      z-t)nTrixDJ@sZ1=P<?u-$B!anIB@>W)@G<QoMpCtEJZMEH(ljgRIXbTW*iNb(;pc*
      zHF`}q4~88JS>zZD+Q>`xG5g^}dVW`^MCBFVBgI0U1~vMZw7i<8N~4N4r87_6N%8_@
      zTQit%RAgY$Y0?)sg^n|9P-V?U*hC?LQRo!VA*IshT8A@iuM*B_<{}|f=c<&TsuIeH
      qxq(W`>ZUAHg=y8^QC;#jlQlY&=!&%0znJENX=0bSin*7}?f(GBjA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/Transaction.class b/libjava/classpath/lib/javax/transaction/Transaction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3950b6f2bb826c637d1d463bd50c76dac746e43a
      GIT binary patch
      literal 771
      zcwU8)+fD*85QhIEvVaPBL`6j7A&?k1UUTJzMiLDPYmDKplm-{euGuXHd^9h703XUY
      zi_1YE+MCY&{rb<O)6cK>4*(Z9Fc4wLxA`mYncCxy&xN*K$GjiM2BHj^05KJJT4uG;
      zmO?Ycgxl%Z6f6`=4-Cnxo{%rW1>Zn|;b_*h<|@_T;(0_GSYjy6f;Y13*}k^Lo!yho
      z34Dd&><@fSfiy#I+`A<Op}Ic-tTG(VT3UTy%gzX6NHwLR8a3&=T~A1clj7~{wH`Mg
      zFNaLIQmPx+WGIXqs3;{{Tv?iHIq5E)-|ol%yO-(=iI&uXSJxkmp~8^$WQ&}nXZ0QN
      z<hhRh#(!#@&a<4N%E2V#Uigd*X<zE$qgEZ&r!iZD>esfSE;AF~<UBBsF;F82mO;N}
      z5i!aQ%9bgPBT0J-89G_RdUz5;1RDcw3)xVMlSe#Mx3LqdQQ8A#7r8my-l*2tF+Z(Q
      Jwoh3Eg>OAz%=-WU
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/TransactionManager.class b/libjava/classpath/lib/javax/transaction/TransactionManager.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..851953b935dec573b149b52569b7e0747633cc9d
      GIT binary patch
      literal 885
      zcwU8)-EPxB5QWc#G)`Jb3neX3p!5ewBp~W_uR%m=sf4TEZ=8{}Wo<{^b(Opt7d${8
      z3Nc$k;?z~KWO?@Nw=?6jbN&10F91h)7obKsyi`|e(s#K^t%{t^(*F4(K2@oTIS)`L
      zY<RM7R2uishL;>U!pe|ioe~~&dl!V&&y$G9{+JEWBD}Ar{+7A07>~2u@n}v5SR?FJ
      z;c#jlCv%L@h_WQnE<l@bQ02d8#tc>Tqm+1q(5r%9xyZG3Iy%*pr9PezKHP)fQQ#?I
      zXW>i8k)Uo`0=5Xd3t(Uj$I66GIWGNJD`w}l!rpi}Ahbm(-Glhk?Va3vRmb8_&bCOH
      zu;2X;+q($xn((no4bm%R^r!@v`fTPi2MFty-9JChQZprV>{83;I^nF4A*pu<emVkM
      z*fFOgnUgRp@`%4^Bdu;%r|pyPszDGh;GdQZ-wGPC4rJ9p4Na_y_HeGXC3=K)JjNzE
      zH+$Q7HruPq*DKHQ;+C?5moud)m0rzG?#{D%wIdn5`ev#AUvdxow=y0q*O2#6;u_xm
      E0g{U6I{*Lx
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/TransactionRequiredException.class b/libjava/classpath/lib/javax/transaction/TransactionRequiredException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..803fbf2c4ef4e4f64c196314f3f4b3110d48cdcf
      GIT binary patch
      literal 494
      zcwUuI!A`<J5Pb`!)rz1f#w$0##A@`Q!EiBpYCHhxeJPu|rrqkcHT;$*5)XcWA7z{^
      zjV79yxQBT&J8#~+-S>~zHvp&TI;b%mKk#S1^m5Hr#=~5u%A0-X6Y*3?EfzP+P&}Fo
      z2NuJjnelWYy@^QDTzqvI>?^5cK4z%*2LXe1oi2onIyReVz-DOsQi;1FnF~GR^H?x+
      z{50foz_m1Wb!p}IGGjRL|L1PR(CwEqUd&bGO>-?(G#UiP!j7@fB4<e!nYF)Y4DK{7
      zbSQ46@zDEgQ~7P^f#hILjWT*5MTe?0LPppauCVb^wq1%Yp=nw;#};MHHHmPW&<M0D
      jfiW=+*B&0N(Eh1#LCnii;b6_G6il{@PPu%qoZ0^bOfPMG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/TransactionRolledbackException.class b/libjava/classpath/lib/javax/transaction/TransactionRolledbackException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..96f5fbd04d24279dc22f59051ba23a913f294759
      GIT binary patch
      literal 500
      zcwUuH%TB^T6g>l_)rz1f#;tJ!m{?y64Tg=;RpSCk_tP?|qkWK448P@y#DyQ=M;Y%e
      zjV79yIE#Dk<J@!4ynnpD0XRk5LPg-@Q9jFslV>uS$spHh;*7uZVH!nh;>+Oab`hv4
      zw=5U}`@H33v37<kPIL7&6)>-LqVs`3wbS(kjGJ_#Y*evcM-8Sx)76Q(pU1w+#?p_J
      zK+8=78F@0(T$fEFf6z05Gxxv#`U34vvE@WE37t`%=_KrTJvOn$CK}`|o`rn)7frw(
      zrSmLMcbZ)s{(bA1_i+Fc1iuPp^ht^qRp*3)u-02*?WGvo6m3Et8o0m)W%U(_aFdV)
      k8l}L1n9MbMM@uw+DqIrts!-Tlu}THbw$Un%?-V<`pF0R|m;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/UserTransaction.class b/libjava/classpath/lib/javax/transaction/UserTransaction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c86e0b79cad2e184ca4df7794d84a6400f5ec26b
      GIT binary patch
      literal 661
      zcwT*x-%i3X7{$+rzySY%3jRYS#tR`aE<S`tE|kQf_oFsTvD?Vj8F)1>d;lNH*dmT0
      z#3oDoo&I|It>^RW{R6-?S{8DIv!VOuj%^jWLF_Um!oYrtdDNfR7V?Ce!EEUUp4}S^
      zIa7qffO{e!thGDOgv!mB@sZ(U3uVH^vhPEvoMbc#BgJ1*+QRzECY(vExSwK#A`5+A
      zC<|MJ^JV@qlycy**NkzE&{+oWcoK<N33e~W3w`VmF8{$-Tu>)8=kMZhrcpJ?0DFYi
      z9Oz2PJy$x)RXp=!rD*0%sK#9V-qQ=@gi!XlG6#})`p{iMLo=Cl`oia7qT|T7yVD$;
      zFo_ty6_OL`f1<oH%@hgR3uY8`vIP`%ZJ7!=lu*&yMyhS;)h4Rg#x5Guz5R5rq+J?X
      dH|oKH%MW>oqnVc1vr(Ej&MNvl(d!&ezX1lptRnyb
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/xa/XAException.class b/libjava/classpath/lib/javax/transaction/xa/XAException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b029e4a49fe359fde942459b0c70ecbd2d28fb29
      GIT binary patch
      literal 1451
      zcwU8*SyR(c6oAjAh0;<MK~TU2aBGWF5f>Ch(<Y^nG{H2~;tLZ>gkVXXv^e}N9~@?U
      z@CW#Z+{JTl6M6?9e967v*R$NMU;cdh3;^?>#h{D9)V}@RKFYRy+iTjjmfP^MM|QR<
      zDMvNu9bpWj3`Qs_TerR4?CB2-;*Re({Cs1_VZc=6s<dV1a#C4g(4TL3&6e%8Dt7(Q
      ziD1Valsv#RG%Y9P*Fw%4rBXpsH41V<DJzn!8TmDmZx{@4sp^)pYO2;I*<A(+ZVjub
      zm}K@svu+xeLB?f}<i=7<im_pl+YhT*rlgluMd$V{gI;bGU2Z4oMoC>YB}<{7<L%N#
      zWy35=ugUaw3~qo-tbGDx%p8fHPDn|ulIae*D3;0h5DgAZHgt`P2v1SWEvdYz=OZU4
      zCx1d?mK4(@^P4B3(G5!?@hc2b^@^mC`5Bt_Nuc?`pf4!H&l=VDFi755S7kEa_|DPb
      zQI%C$A@`L*&$8>etrZ55RJy_-N;jT>2rMUI5gs!b)LhTe4-d8--?F#sc!$GUqh{AD
      zw(k-LGTPd6n+#^O|2?@S2BRsh^W@4c-}QEv(iLi&r=}9F<)FDsjs6M4MkzI2i35XT
      z61wRYV)#&N{Fx@ojYGfY6kJ-+kkE6E>cBK6(KSrqh?zJWhZv4{Z8-0OICA0)_X(Ut
      z?iY9fc~IaX<Z}WKBaaAt9(h#YG2{yZUql{1!xI8eB3}~tGV&FHuOd$gJdHdf@HOP?
      z0^dNsDex`il)!1^jKH(Vw*|g~JST7#`L4k8$oB+ZK)x^V1LTJSKf>E#^yu*W1kD1D
      zjQ&@dV_5pYL!RO{fg^whQ7FL*&XVmQcm~gLqykb<U<D&7wkI=t47sxvUSf{PD~z?H
      zf(kT~LE+68p%Bz61ho>hn9SrySnbps;LoapD|&^GrYh7-oYqW$%D2kk1<zai3xALC
      Al>h($
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/xa/XAResource.class b/libjava/classpath/lib/javax/transaction/xa/XAResource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..89e80143ccd4f929426674a8d72733e13d313d85
      GIT binary patch
      literal 1062
      zcwU8*T~pIQ6o$`s+olu{{6Iwos-iZ25YbC+%#;)&O~PaYgLvUAVP%48(n(ULm;Np<
      z`~m(b$Fq^4AyT}^>^$$Deb2ie`Stt9PXJhl_X<=9teo;QKGL#;M=AHSAda*V*A8@7
      zr13EEg#uLq^Rh?_d32&VN2kKi2sAy*us2=S(QN|6Brw~Fqcr1Dw$H<%pzs}lK;5&t
      zy4j;GIH!+}X;WxPn({2$>Gt$3Mj@X@OUE{Lw{>RF54qCtEZ1OrmO&di&v+K|bl1z<
      zQUd2TY_HQX7^Bs(z;-bmt^5@Z^e^tFWA{GEM!2kog0q8p{J7r_a5Ky8-qptt9B&+|
      z`xwm_`C=gDRDl+O)`U~LC?h~cbbP(DDV^(I<K#qOhNWvNW#Ix=dE+TB=!<xW>u6iW
      z({BVR<9*>;1Xd>*UEJx0dPqPSBx1l5@t@A<tt7&a&qN}3W2&Dg7h{Yh4#Okvf5W`#
      z)p@Jvf$eMfRucJ+SRSbxgqUP*oN-NdspHcEd1=$I2sNl9DM%G)AWs#zi9B848RXdl
      z-$0%#@I3O(0^dTuUEn*&3kAN5e6PUwkrxa60O{eSeog#s9>EeS%cxXwTtVeAJSizp
      pVYQ?@gXbmX1++_w3NK5_D|lT}-u&ad23kpZdpQq&>v{fne*k0I$ff`Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/transaction/xa/Xid.class b/libjava/classpath/lib/javax/transaction/xa/Xid.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..fbc1bb6efb7f895c758771e57a88422d42ca742a
      GIT binary patch
      literal 292
      zcwSXc%T5A85UggAMIMSCjQ#;!ocIT_Dr6IlLC_FAHOq)Y#+_uDHGG=~KfsSN_ACeE
      zsZ(9mT~*&dpI-nja1^6PI9>AxZ<Q}N-*D!Q%hi_E+$>|%3BAB7%lS&(FV;HqgwEY?
      zKAt_K*VFX*hCnHyd*$+t=iEQBEp;T{FL%0R@;JQR>DnvpN3M8hpDqbee;{`!vKw2s
      zU_1M>4|Kghcu5Gy!Y9IHZ<CU(c{REqw5F~sGCeX@6PgnAJY;N05(MWO&aj7uptwR!
      Z!TbMkB)wW_BlPQ_Tg`(oMRQnbdcP&rJ~#jX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/XMLConstants.class b/libjava/classpath/lib/javax/xml/XMLConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..37a98b90d9c86999000f53d66addc05325121d35
      GIT binary patch
      literal 1138
      zcwU8+ZFAB<5XbjgT97_hTU+guwrX1?2c<Jwb)1PIw9KR_lZ1+|m?J$Q9SBTv2!1SI
      zIpYgIfFH_nFCxvfb$r9}yW9QW?y}3zU*CTKKn@O*Fh*ecl6__aI%v0O_0-ThekhnP
      z!XzXJ%*#94Vt#|3)i1d#2uzt3!>E~dtzwl3EE-oHwg^1G@rJ<6Uy*ax>hToZApisx
      z3VKnk7><lBTY9lnC6LA!hgvC^A+XaFqWhZCe!s8u^GYXZ$ed{I=;#&oS(}Gl=5l;s
      z81_dd1@i>PF@LNDFYsJ-9IN!c;^-soy9Cy6Y9C~?Sy{LrQUY_=VpFh8U?RFDu=F9X
      z)#R(TcA}rEBi&U3Tes@wWa75l<ZVV^<63mdv>nyduF_j0u=hWij2AUk*1sC*l~w1Y
      zR!|+)`B=V^+WePPp5}6N&}E{TxnP2cFI|p>&C0Y2PGJ=Pn84c2c*mlau4SSo&sw^n
      zR?Xv4$P)tF!;pZt*uZZ@G1%2m1U*;u0#0*E7V|FZs#CG_nyqWnl&v#Ox9yU7oPu2f
      zFNY%0Kq~l_5+6wViL*#5<Sv>_H|V%L3~}TLOuqGePrSo1*xfrPkkC38JPqTJnT9>s
      z$KTfQd~WvIbsjjZ-r{m_J1%RTv%r%)JWPnDhdo&_ZeIx;?X=zL1uido(tRO*smK^y
      zD$D_wYZ_Kz0w$4?NMnGL0_kf!6=Uf?8{;|Tg%~d)-;41Q^8FaEAU}xlL*(@sZy;~Q
      z_!07UjCYWq#`qb28<V|5`y5a5XmN{SV*eYw_!_w=_?bp4|49;X2sA1?a)K<L$(=ul
      HJoCQ+56l0V
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/datatype/DatatypeConfigurationException.class b/libjava/classpath/lib/javax/xml/datatype/DatatypeConfigurationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0d04b2e32fad7465eac97892c64b6268d10345fa
      GIT binary patch
      literal 788
      zcwUu|OHaZ;6ot?5sv?4dAifff8w6uR(1nlS0yHrpZXoOjsC5jqq!h)U<%-0GKfoVl
      zytg!J5J~J}?wRSi-<-McAFpo!irCQ*5GX##M>*0*y{_Jou5_RKhF<kW#kTI0Idr6}
      zZ0l;&Hu@|ygalIDrgx=f>R&$uA{WY1Zdo9hJ7@}oDt5<+B8bHp!iWeYYRWQhhrO2J
      zG-Ru52qbHETXvh$QM~sLL+-sA2$X97&UP-4&eguN)m=wf=J`RBQ><``xPaC(1_Nn&
      zxBs#V<YxeWoHXto`-yY<)HG950^znC4v3ka=@rQ4=0G+Xk`;*7?V-~)t`(1AfBsvK
      z7>7O3w83A96it~{jdmrff@(NF#=;AU0HU-;sRGAjKEV>H*u+G2nJNR~KA=oa_D1rB
      zF%r{+Q*xepgv`X{6IiVx>0M4^@mV(%kwa?v!r>Te)37o%U3#$HiR}xf`7l-)tdpCu
      X*;x@crl}QjR{w~|ERMM4^=y9vL~)sf
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/datatype/DatatypeConstants$Field.class b/libjava/classpath/lib/javax/xml/datatype/DatatypeConstants$Field.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..16608fbf6a536fcadc706df6eb3a4be4b544fb8e
      GIT binary patch
      literal 717
      zcwUWBO-~|05Pda*2s;X*i{H8?9)K7pp55$WVM*AK<$xja*f1To&Cp|JTBHBT!)~H6
      z@!${eM{TycA-joi@KW`<x?a6k-LHS1UjUrqFb9uNzZ5s(Hn<%}K`4wccULlKPC+Bq
      zsS(<wM=d3zFoz7GWc!0i=uyxeT*{##cq$}Nn~>3BED7b#|DK*nlpdWC7C$Sk%ojqX
      z+Md0y^_ks>Ls`HAmVM;0LRhHQ`gyRVk1Q4~D*MP`iBRk)Eq`2(2QoPqgUD&dLlN~w
      zqU?EE%$T1lB^-C&zau-%j-+XaPM&vKGV#PCVZB<Lw^^YVUnfJ^QdY7uGxx+&2!2~@
      znKUAirZUapfN=C4S8T`m;{Ret{BIsg_B9xl>|1cQ)jSG(|AEm3ci2j?{sh0i^T^=%
      z5v#u)b&X>g8IE5$HktMfD`;VzE1xDbd_)Cs$jXpIR>)(#fz7E*z}enq>kla2{~JCb
      le0Kx=NyBs?VGG-H$g98Jkh^op9(G*Z#UAH^qwllht-pEvj86an
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/datatype/DatatypeConstants.class b/libjava/classpath/lib/javax/xml/datatype/DatatypeConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..41c07b9a1adc81efeb86d0a969583d0e9a18a201
      GIT binary patch
      literal 2609
      zcwUW`%WoT16vn?x?AURqG`J85<=wP-$9c5rBc)|(j~xeloca;sLJ1RRNSr!$uqREz
      ztL0hVZ}<n;vZ*Q&L?mFtrV?Vq1|hLw14wMxu&ID^Zf??1tIDwypZmLWzH`pK=lV{r
      z{QLDc00!`x54Q-k&0FWJmC(vUDKuj_mb1EOhazeau9RzzRd#AVcm$f+GgPw5v!T@V
      zyj^evd}F$q)6;nY5f|9G=|5qWmh1*fA_V+V<7AqBm?@t(si(uE3=IVOcsib7p!f|*
      zT{?LMJYzZ2;BliIC*-_Opi$4oa+xfXU!W;tjAxDHNh8e@O;k=QoJ}bVP--(ZvGsTd
      zal{C3u}0AnMkYh_AAP76<5W(UwSXeU(uSTj(zK|!88K*-jGHteuqzrj5|ODK%|_#<
      z5ox#}1>U@&r!xXQiS6uXTeN7GW=5!lWXjBrlFk#+^JKiEsT_y#QMz2#;8Dg1r_4x(
      z%clae@gx<o$CagQE!ee1t6+ytnKY!Jo((5YL>3%~acMFSZCOkXC>iCF52%KidgzJC
      zd4D9A*0b@HNiE+TPSKN%sKKo%SJ>T2eR7JQpH7*^R4N+H7+KoZt6%Y>xOu}PYCfs_
      z#|oulx#%3H-gk6PPyyk}jP1iofv)ZEq95%6=rA-y5u?={Qz2VA;)!b~Hse%_<=K(W
      zi6&}RTthoL{ODvzXy|0<Vn}J|V(4Z_Yv^X^VaRFdVd!O;)X<9#A5IIj-n0{bJR#6I
      z=QxW;L!ss6<-X;izDjjAG}zxi5SmOTGKD#N!P-mfv$I8Ze^St~MIKM_QY?Y?jvE(n
      zvn3TY^daPjEwHa{N{7<1XjVf%i;CM3ah)tWtI^#-q6LBOx}w><ZB>(%vNOlhiiSa!
      zK0^(zFO{;0waUtxh9Ooi3GA=0<fN=x)^LDTtF)K(Ra<2~r{N&WUf9mI%&H2{YZzwH
      zOWW%CQq^*bl`;!o(Qt@`uL<<m7h0=)Rw6F_MGc2p|E9oTUH$52JKPc8)^G$Ny4n)O
      zvTZIcOxxA0HC>{k6iieKR%ybj7MbN_01bGb59kT{y*hKn8g*n_cOG3#flOtoTCk%<
      zj@@#DM<0g~(BkE?T@9D4TFs{DUimAhGe@@sUA1j!g%^!{NAn8>e&Qw<2Z(pLSR>x)
      z;#-M#xwx75HWvqpcf0s@;yYa2LVTx-?;>t>@!dpwTzn7ly)M3w_<k2ZK>VPKA0pm+
      z-TK<DTi-qx?<c0qjK-~ek4f95Y`3yK%JwQtH-)tQ$_^+ysO*rk2b4Xi?69(jls&BM
      z5oM3M>KY+F=HiFtT8`rc%{)SHOcNgP=g)QMc~3CBhR9`%GI)by5*}q}3??O*48GvF
      zgi{RuU`9fgp}8?QA?dMo<nzJDgJ;$-bs5u=W)wXwX-?6+q>`etq(wzlNsgj(l2#Nw
      zE9rSfFG{+g=w(T-DtcYg8;ah#B=_MR`W~ZG27E#1@)DhwFR6d)wAbI!TkLzJa0O@Z
      zBhKO{tm0=}#IN`izu|NIPTqgvTl|e5@DF~$Rs2C6d{;*0zv$-PQvc{5GP2&THN1B%
      iZ9qB>(Z&x;nYQ7C5AdP%`AB|$j8CMmpmGGIZv7wCWiY}3
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00b5df1affbe010ae9c606f0bcd52ad620f3882a
      GIT binary patch
      literal 5735
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/datatype/Duration.class b/libjava/classpath/lib/javax/xml/datatype/Duration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2e89ae6a979971226c3c0d3f896ecf062da0dbfe
      GIT binary patch
      literal 3881
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/datatype/XMLGregorianCalendar.class b/libjava/classpath/lib/javax/xml/datatype/XMLGregorianCalendar.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..acf9b9f05b720f54052618dc1deb878c6283b0d6
      GIT binary patch
      literal 3296
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/namespace/NamespaceContext.class b/libjava/classpath/lib/javax/xml/namespace/NamespaceContext.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..38ffeeec9007badcce5bc975bbe80965a5d66ef5
      GIT binary patch
      literal 285
      zcwTi+%L>9k44n9?RY5QQfrwsQJbM%bK~xk!U@ft<Y`3yqrQhbk5AdVJE%*S%9FifK
      z88Wx~<qBYomWL9d7t6EEMV=_3Wy0A}1}v5@G)=YT+<K@GIt5cGsY9{a#~fHfJ7oLj
      z?lyBmf3Wz_w$?;CoD6?g1m8*5h7VCrXudILgu#D{lZ}*^TQ<_B#+fv>>B$5<ixd;O
      g-(QakO^rY(qo}eAQAG_!81Fgj@ZH5Zxn4r^0ZnyJ0ssI2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/namespace/QName.class b/libjava/classpath/lib/javax/xml/namespace/QName.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c5f6eebc3ccca7a4389f1b8f80e9a8aae1ee5d01
      GIT binary patch
      literal 2665
      zcwUWFTT@$A6#jPZ#6zK>U`vJ4O51P}a_GH4i>34yNVpa#t=62tAq2xonoGetj+Ifz
      z(b4h6OTD#I$LWg?IwN$(I<`JB<Ga7W-{EDgeIiLAI1U4QuYK0#TWfu5@!MZN{Q}?+
      za&FiJcFpTI^(Ad-A*Gr6f|1MU(}p%ONLM!;0=4{EOX+4p8;Z{x(|I>s0z2euGOdjn
      z*`%II-qPbKgOqbpoG`MvWZE1LpA!)M0@ZzKGnd!R{Dht=7|zq9jU7MV{PS-CWj*5f
      zXjs4(DFqwLXOm{4Tc9eHp4L;tdNwcM%4Ch%<dT5%1_KoE%;~wgzVr-T1vzk?N}9=h
      zkHA6yW>=eE+9m`XZ0&`>vkL04Q=s#InO1gI6G@uJU|}I{WG`D4@kJQ@gid84x%lYF
      z&n0sLyCYkczS|2sni<g^0lU9#qKXjiRj?gC51to*8~X+Jl|Y13DI=k$db5ebf??**
      zFHIYnJoUhfRy2FyCodGn3l%{(0#CKo!mpqmA*!HpqoAh<Tzz>Ntj>40UG<<tpmi>v
      z&va?p;^Jax@kl70O=wr55$#ZC=gCqY9vr4NQA{)E!BK&x%|?eiIyy9|p>cZ06)33Y
      z+ero6tXr3Y8dPsUQ(o|dkso}DLp%I!l~|;ZVx&Z*DiVh!m$>!43VLvwZ+!|*;WQO1
      z9iM-ikHr!&^-M`U>PndF8Ro8BBr4|9Ry4*PQBaF&HwFb7HljIOn4LAUUPRH%_9F^L
      z+1`~h%tU^U-!Cf|2W98dGa192A*T5IHfLq|>1Kl~Y%nDdtW>7|GQ6gsU*;Px%nIz>
      zN>#vplSg-ml(a2lY{g_1x`H^S$xG6lF_zei!yo4IwZdSMOC_S<9Fo+VTp^y5eyMo=
      zaJWK0S^X7OPcbzrY0%P<E21|yR&-UiYqAu@NehXYV3!5<j-?CPY2!kY$I~l;huA0f
      zQZw!J>x2u9G<6=jSJC#g!3!VrmF_-ft2}Guxy-$%^EQtwolLAc?4ZB(B=y5V9s!RU
      z2#SYj_(6KxCG~9d_Y6hprC30VrH9>k4v;sFC*+MI+N9r|MZdq3?4WZ*eTXL2wt|+x
      z8eG18k>DDhd4$%fhdA)KeGOH<eS;6s>^s=Linco>YLN%1@g1^6m+weK4Xogp8eG8%
      zwS5JhC4grsF`$paoT4I}CkPkl<szkai6Djva6b+Zt27Ma7=~!5hAEX%(i+16E|WAa
      z6H_gq>xqr5CpJ<{jBi{_yG*gWnBp0-v&qtlK&8@6QR%MA2o08AS?RXP2!hAE=uML{
      z;8cIavG3Pix#Z(@=|-^>if#mNi3-LiHX2V?G=8C?apy+kxeCVHc{vx2Z<99jA{6))
      z;tu?QClJx#D$Xzx*~2=L&T>*xayq`V)6aU8Mv4P0P^r=sB}4KJ1n3MRSH`-~dg($q
      zN3Ev$p)VKc%|>Ww;T6%0$`+9o#cQ$MLxXC;xMan@w7g<{D#hO>{V!2VUZohf%Cc=K
      z#@x$0sp$U+S#c|4<YZtClaCN3A`e9@_rqVKF;M&3D#j)Q*30B%p!Ri^xwKNDE?`~x
      zOV_`eCs<YktGK#?0d`&L!eK%Kyg~JOlPI`MZ*LK@x6y`o(1CZ+h4*L#-Y1M75UoGN
      zHGEV?xmYoW8bt6SUIK56>v*}C%^%cJC!IQtrHHDGJl3N!;Mj3TlkG0{*E^c-L*a3y
      zF`jv>HaTMTj#bP?)Ov>_wu<=ym9vQTu(nUNH_^8!Yw@Q?5K{p)NRv@Y=eS%&A5+**
      zD6vmzRzIWn&#?zzz>hB}-LGiA?$T`Eqo&@c$^8Zs_*SNL)B;OnVIOu%#FSIyq||EU
      ZobvyjG%Yzh`Hd2Zd^Dkg2*uH}{{Z0h4aWcg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/parsers/DocumentBuilder.class b/libjava/classpath/lib/javax/xml/parsers/DocumentBuilder.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d2c08a7c395746a7b61ba99849a9595287321780
      GIT binary patch
      literal 2261
      zcwUWF{Zku77=AVcl7<ut<)a^z2GE)>dLmjsQfX<SHX1@pN(!Bh<B@FB>)c1Yy8w06
      zQU4x)sK3BiW~#sG_(wUuyO$i7co}5|-o4%Td7o#WeRuim@7HetEa6EE5r(-J>b`oY
      z92&aPRBeabj<ROeS_U`WJ1tGGb32A8!#R<r=&IRJHuqlen#(YBQ!_Ppg<&9_sWL?G
      zT6Lbl0L~;ah#`j2l4kO9%h==gBXv*b4C5uMrs`GI*2H&vGU`6p9EOF`e+nru49X>j
      z#k5RUG)pO(&6ZnnZLS)HOv$nv%E59?sau8*CtPCvu*RFNW|>Y5;|v!>o}hAwva-74
      zFUK&!aNe)I8CaNNm_K!)sO!9;>Z^7`a`<_1Tws{cgs7AwRi!j1WwvxZfk|8v-dtvw
      zZ0nb$NW5k?3YlsQR~V*)(!9-CExSh6&fuzmr$~OE?N<{Zkx7hTfnh0K>Qkz}PZ4nx
      zlcB{KZiTak>?FLr*g-mpj4)u>;cn%n<8q@|XNWugaQxrpsMQ>)o8e;LEiq)nJPlV8
      z$Gaq9d#iYQHZ!<Ho!qiDhHIz$yr=1X-HPJ_hU7EK=v0Z}Lpr}8HsDhNH}J7IzfTy(
      zdKu{8Zek^dPpM*XC5c<OO>OU5+gl~Nh3Sk3G`XwL3|V>yYcbsIz}oXktm7Wp>RO%;
      z)R7%zx3TOQ!$`LlV$qzkYH+8i*7)jyYIAwTpAd)UR8?K8tFEj$MrXKgx|;iPi#wLS
      z&uxaQ-A&iMToCWXs6g4aW#3oLx-KwRdN6@Si5NEdLC1B``+d82qQTv@&5feb)VY{a
      z#f79Nt{2gpA|4i-lP-ocRH9OQ&J9)UB@=j*_S-wROvOte)Trj{6wR96s&|Y^c<m^h
      zBt1P3*mY4YI!AYO0ODs9QSnsLcZ|N4DKd(K*<-|ip+N)*`kSB#tWfH04AUs-B~d&}
      zk&chbL~xGALlnnwUKV>y`2u%2_Xp0NU~+eS`WP2~%bs9nH+PKLBh0<>DMqB85<$u|
      zejsV4Jb0T%jNZcAQsD@$g%Ey2HKG*fy9qmd<;DCF-pMX@@lMe;fTx7}lB#}%X{dA$
      z_auMTtLF31xB0~=iyT#$ro22BiC1X4{=ZC6f+j45m|zgZqVd;#On8r|JrkBg2*0BZ
      zi7JXu_<qNP6WkD-ACVUu`P>l-M_3h(<U<_!mPC9{6hB}VKhk^olN6KkO8a6Ie1`iZ
      zWtQlL50R*lwLmigSu|I~=MewGzi7u2He@VgQ^p5)DB~6?5DoRn@5r3|rr*<U9Fh~i
      r20D@Xow$u^8<=mma)iC=LH-^<MttOBlGcM9__+u9XDD(<e(nAPDO>Ks
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class b/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..79e8ac54944ea3a4b81f5a493b072580588a7f9f
      GIT binary patch
      literal 5298
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/parsers/FactoryConfigurationError.class b/libjava/classpath/lib/javax/xml/parsers/FactoryConfigurationError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3d5d62f3c3a05eb97ce981eb9b3dbdf2aa9e98d0
      GIT binary patch
      literal 1171
      zcwUu~-A~g{7{;Houez>+4hCZ?4Dn-Y(Z+Z=!VQ8q1rs5Qa(6aLso7d`+UfkSG*L;s
      z@KO{1DC2v&!>D7s@TTYO>GS;Fum1k?{Re<&*wm0=u-@_ad}t5*J^P%C$Q6;j$GdST
      zKJJ9UsqYO0kNq&%6(STGat!m*VE1_7*~ukC(H(Z(bE#seIH}K<*DZ#^mLK@>Hbb`2
      zY%}C`!V_0V79|53ZV=V+1NUIi@3`WKcX}>E*$KP6*XF{P@9HuapZO8P6X!pwrtFnQ
      zs;t9U_<`4Iwq^dZ%zul@>PMc;c}>PpZA|TH<X@Kl>V)X%OoSg~!6Yhzp=KbD0t2HC
      z%;~gQ^{q<&+JsFhW@Kd0JvZKWqlkNyaIw+6Zk6Z_19hzHc!&)Rj~EuF)Wx9nFF^)T
      zQy-T9;ih-3ABF?bb@zO^vDKM-c`Dslr}<>*e`LtWAyHJInEnZR7U}Idos7=Bc>(=1
      z1sNFh)ae9T$YBdNDKbVP%wax((NYy)o0L*pFs%#Ro+P{=&u&6k8mSaPMhjR>l540a
      z)=R}IN!F5SeZ|TZa4zX%pMVDhf0crk#?TV(B>hR~T?KtjKIt^fO`_hLN_|7Fx8y!f
      zsP&P4Of?i$MzZJ(#r0&el7F1c7O2q#?>p8nl+7<#`AJRC@eL0g>(e+}nFb1Q>Y+me
      mJV6zwsXl5dW1a@`SPiFvrpjZFH$~hl<fyP<>XytzW&H&M>)zu4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/parsers/ParserConfigurationException.class b/libjava/classpath/lib/javax/xml/parsers/ParserConfigurationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0c3635a4e053b60c76961990a4c07a79d8e0a284
      GIT binary patch
      literal 489
      zcwUuI!AiqG5PjRGsm9uBYrXf@Rxpa7he{QSo`MLK+_!O!E6Jv863K6QDtPb%{3vlY
      z4GIc^dzd$~^XARlegAlU18|If6E%jzC;rR}w}>Nm$#p7p>fV+(OVoo5bImiEsH-9n
      zOOrHVG4#xg8*vr7UkwKPTq>DO8S2B4&tT1xd*Pst%@!K489JU+;wFz5Lf`R4BpAA0
      z67b09TAI4Lw6aH;G8}pTGd5x954~?=^Gr(>PDZ}5uwyK=$yuC+X6-K;gELQZ9f)gb
      zJPiKYRQ?zSAUT**ql_L%u}RelAtP*zSJ-$d+YUvC5IBW}Gi*`TT9XL335`Iz5||Rx
      faP9HI3Z0({7sR|Q753MxO2K5i=$6ZS<;>nE?$~Q5
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/parsers/SAXParser.class b/libjava/classpath/lib/javax/xml/parsers/SAXParser.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4f6bd6993ff3de9cd729f094c775a33a4a8c44bd
      GIT binary patch
      literal 4329
      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
      K=2i3UwSNI88?zh$
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class b/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ae7d1d26eb2192e92be9d51590487cec1321732a
      GIT binary patch
      literal 4217
      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
      DjRprm
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/EventFilter.class b/libjava/classpath/lib/javax/xml/stream/EventFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4fb63d7eb4fb0dd647551a849a659e9d07e501aa
      GIT binary patch
      literal 177
      zcwRg8Z`VEs1_nb0PId++Mh2Oz#InQ+{fgWi{o<0M)WlqU*Rs^S61U8plGGx01{OvJ
      z0gwv)oW#6zegCAa)Z`LI2DZfH<kSKnLsi2ELw_nrf3bdquMgNHYt1M|2Cm@z(xT*4
      mpsA@q1Cead18HYtWME`qW&i<3poOdqY#<f`JCI~z-~a%?*)Jae
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/FactoryConfigurationError.class b/libjava/classpath/lib/javax/xml/stream/FactoryConfigurationError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3f466f1a94643deececf68ca50544a23f58b1cf3
      GIT binary patch
      literal 1130
      zcwUW?UvJYe6vdDGXQ6Fa$LO|>KVxGcwP{6!00}hM9?B*rbx1JOcdwXW)F#MDQTbLN
      zfhzI92jD{?uAR_^HkEjBuI+PvIrk>Ne*gFh;6CnJ$T2t{_$NMg$HRdeMoRFZd&2us
      zpgwm3|DE(kibpc=kCh6Pg#trW>)iqOJ=YvEl*G6%K57-iMmKf+_xONe<*D>#bjXlz
      zG<yt%PViQg!BDYb!KM_Al<_=L()SKBQQBSYN?*Jj4KIXx!!HJcVZ9sl`Jl&@)cfSH
      z5WSZnL%aL`9a7SIW667U+^afnZ7%LiwAh1=%c#>lwzRcQ6Uykc*((wJnvEh>Xhg%%
      z(=9E?7;H~O$Fpf~HJVH2T_)j~2t)4CAZq`}5}3|(+r};IlKMOtslGUodTcvOr*lt3
      zut!nz^aD{uotG+$Y73WWEz#}~-7<aZFg8K?E0sB1rnO8@-~m}4VwEa8mZ6F@gR^iY
      zK^zexXAmtytj{AJ6XJ<MY{s$#p{otLV+K}BV6RA{^H!Yp1e;FlJGN)QRde->8aX8R
      zk%8{U@+q{EKy`H;H^`~+c7i`8b>3ucw=%MJ$of2mO=s0GHccI4>kA`bS=bk3I9)P=
      t7|U=II|<A+d!Xoi!}gacDsJj5^)ZUmk3s*%f_Z|ydGqT`^S)8t`2)RB#4!K>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/Location.class b/libjava/classpath/lib/javax/xml/stream/Location.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b58d446e6d3f5c849d025a52834aa97aba05f6e0
      GIT binary patch
      literal 266
      zcwR-0&1wQM6opUxn>spek#2kg-59!dDHMdE3iAY+cpW221~QqVujaxB=tGqzRq0*a
      z1K+)ebH0BrR{-yLPS9bP9>te9@srWK@s5Pyc`b!kwN21tc#UVSg{}CeJd*SbSw%iq
      zmOfikl4I!3=4*zRKv%VHjeYP*BnRPy^yD`CeM7-K3UJ$&TFLc};cYh0{{sr|l&zMx
      zr{dgrGVv)b>efm6P?|#cqunC<1`Ht|ar&Wb9|OeF$z7lBIz;-Xqo~0#4!eWw7mBVx
      ALI3~&
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/StreamFilter.class b/libjava/classpath/lib/javax/xml/stream/StreamFilter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6f06644c2f688f92e8406f6017e1b8cd290d62ae
      GIT binary patch
      literal 179
      zcwRg8Z`VEs1_nb0PId++Mh4le#InQ+{fgWi{o<0M)Wlr<U@+yDnNyNl#LmFN$RGex
      zqMwtPm#*)hl$DxX!pOjun4Fwi0A#3Y_+S_i;p+o2BPca7CAG*}Gm4RcD>%QjC^;2q
      lYAPdxAhH#DApLBN42%rS3?RS=w2_s84a8z#2a-$-8~{M+FYW*U
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3c4fbd41581334e81affb7ea9f06e393e9aa69b7
      GIT binary patch
      literal 5548
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLEventReader.class b/libjava/classpath/lib/javax/xml/stream/XMLEventReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a9c00e15a10a3def37a171a8084b499c3c13989d
      GIT binary patch
      literal 555
      zcwTK$O;5r=5PhrQ3MeAr=fy;gfs2i2P988J!H)<r#@kvawYaooyO8?VJop3rQO0R8
      zSgnW6?!I~R=FQB<=i57gGwe$&2^@^nOvO$-)=p#%sj+i^+3(IMu(zb1$Ve0fY6;2F
      zD)5}^#}T<!Vnv{yqEqW@r)SA18ybO9K(S5p1&&+oeomf}ShT3p5h!<KmnPN^gGizx
      zaP*(0LHb%S1?01euDF)Ka;yCyP?!+C2vj|?T}@+_9;VUew~4uZmhl6Ri^|03P<a9s
      z&bTq*gp7R^IBDhCS%G=~9f>W0!ymY(HF-*(8*iGF&iE|4I*cfFdB?pD!l`lT!q*Hn
      zevkSzk>j~Cmrs$GBzg7{tNbhRufTViku|I%*-AAR*+A_NvYF%5(a0c8Mz*n&<?z|%
      I_Y(HL02^$CF8}}l
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLEventWriter.class b/libjava/classpath/lib/javax/xml/stream/XMLEventWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..52df63a094f2aaecbfe304ffc45d1170762e1b85
      GIT binary patch
      literal 769
      zcwUWC%TB{E5L}m*kn$>&@|HMIAh{56?h(qVJVYhnYSL{;<)oGERQWazd;lMX*fcai
      zk^_f0-to-ruDu_hZ|?wb0fz=u7#xlGl*djS2uEp&JaC?Gdfh38`bqj4r2$n2jfCU~
      z9(vB*%LrX<z#@awf;7^;$n=-vP(=Ys2DPDx)GLDp%YI}~@5U}pv`@zdEHgMRtDryI
      zWlZvL#aJPE@WFt=iPbBpFiEPi^qnMEyM#9<JRl#SoY71V^}WQQA5&MUB<+^U@I$X-
      z7a<a<AJJKfsKka+HA!`aLmmlz%L7ys?owB+vZUYaj7Ar#G1d(1-(7|CV<%5c9lSCJ
      z%d-DxLC@76N7BV>Ur?RRzr%5!c+e!!v(Q(gu`+2|3|OMbq^L^&Iw30sWEIv5$a)TG
      dz(x+)gk}!ef>sXMhMgR;3wsnX*r&Au2Vd=t#f|^~
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..66894397c533672e543cce18fc6117defca7720a
      GIT binary patch
      literal 5885
      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
      UeUZ&5$KT=iTor6fS@JLa7kznsrvLx|
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6917a3b48ab4d10ab6f3fa06e009c302aa3f18e5
      GIT binary patch
      literal 4233
      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
      Re1&8Ke}<eJpE<Q|{s-V9hhG2y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLReporter.class b/libjava/classpath/lib/javax/xml/stream/XMLReporter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3aedebbd16388780757549092e7b845b978d7cae
      GIT binary patch
      literal 288
      zcwRg8Z`VEs1_nb09(D#MMh2Oz#InQ+{fgWi{o<0M)Wlr<2w$I|)Pnq?lGGx01{OvJ
      z0gwv)oW#6zegCAa)Z`LI2DT!w0!D@q4IhMTa7j^SUb;125r_#85foc}@{<!wGV}AS
      zHNzMgxLhleQwu=cVs-{jMh0bUjtmB~;3|Q-g7Zs@l2hF>b5en>M)HOpNIM%N10w@7
      c0|+nzeZ|Va2IR8?c`QJh1BkhRY$gV701xO=e*gdg
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLResolver.class b/libjava/classpath/lib/javax/xml/stream/XMLResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9c4430404e6f7df12ee719227fbc4be1f2356c1d
      GIT binary patch
      literal 303
      zcwRg8Z`VEs1_nb09(D#MMh2Oz#InQ+{fgWi{o<0M)Wlr<2w$I|)Z+Y{veY7W1{OvJ
      z0gwv)oW#6zegCAa)Z`LI2Hqlw0@u8f%#un*h8PVWgreY*qRhN>Yw|=ieb8;QW@O-U
      ztw>HSD9OyvD`sclWMojr=H_593$7BVD>%QjC^^+FGba`32_#?XfwZ$RGB7eQGk^di
      Z(37kTY(PFckjDa~Ie?f8$Yx^T1^`SESQ7vM
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLStreamConstants.class b/libjava/classpath/lib/javax/xml/stream/XMLStreamConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d22089d1fd8e03e370336260fa9dc50b61c2b1a1
      GIT binary patch
      literal 688
      zcwS}F+fKqj5CG6w5y~Az1o5tTd9(2o*6pHApe5bK=u=ZkV<ZI<D28wI!4L4GjI&_P
      zM&IVl&UR)t{rr0W0Dv2~GGK#1dlb9{OLIAn%y~QugR%M8>xxyxrjvObOyao#n*^$=
      z(2Rn~i|Ia(!eLCHBqa5u&%3<G9Z7)Lm`iRw1koZ)VJAYMz#S_oQz`7*=zA{XLfFoo
      zZ#zPI114?PQKu;ad3H}d$|U!M%3yngxxM6inm}6gDdP$m0_F7_mdgf7i9w*Kn(DbM
      zE`gyfpL~yZxW}FK7jgu0R7%gj9mrK8PatJUON9k&#VjhRLJ<oc+T*{yO9bkUE2)~?
      zw>azK(8(5M0=1uRe@-g6pO`LY!?5!jg#?=aU;J7<Hg1N4s0+}7G-ObQdOXOYbDHz$
      zg61N+q`8c)Xs)8SG}qAEn(OEt%?)%@^Derjc@MR(`2c;W`3QZi`2>Bc`3&9Ge6Ic)
      IxLC!P-v*mxm;e9(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLStreamException.class b/libjava/classpath/lib/javax/xml/stream/XMLStreamException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2830950292d0575af237e5b507ec4284e200f1d7
      GIT binary patch
      literal 1355
      zcwUu~ZBNrs6vzLk-7^#B<`_DsB4S3FRueT*44NPYv7!kCeP_znY&BbFwxau3nn+B1
      z;Ro<T8PB<`WwD*cH@&Clp7Z;khx_B_x9<RM<9ZevVdb6u!Je3tLEjwvBgY<?Z(dmY
      z%G#c^o%g;w^s-11DiUb+ZLe!a7ld4Y*tP?+ZpBbmc)3Byc+S{&I)tiq3OeYGh9B*t
      zz9Rt-UC;G533_wwkdWFMcANqTXNt&Up0M4VO5_4vue<RV#Y7bWFIcYU>>Uq|oY8?e
      z31vy@AKD{V{zGTV@3~{bYFr{dAFjTdP@SmhgK<|BVwZ%a=FA#3zeg};H5|_<K*t4{
      zQzg$6yI4dT8L=)EkwuPh>;GmaC6v34zo%9<we4DSZN~QIINXY!LL-cu^%x5K!{brg
      zdFslfYw>~Jlw>S(2Rc7h4Jm1et(3IGXO3_3kk>KCfA`o=;x&lqD~g|0&H{f6d;)hk
      z>n=)c6@xgOMVU`wR6@pMW@w7Bp2)b*j0cLb7{rAPvCg5&6rnA~XhiD?v`wZxnnA0n
      z?u51!(sr4qhqbj5Xj@EsqG(rwxL9q!xtik6hun^uEKoAI#`8w&1a;%a2^y#Tvbx{l
      z=|5wwUG_a!I!2He>69X!lG>D}EK$^z;^lZJt)wZx<W64wvy(u9IA%HInrdP|+W3OT
      erwE!+&ev0`Pe-f2ij{=q`k%>f6O*s0sMTL2nDKr9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLStreamReader.class b/libjava/classpath/lib/javax/xml/stream/XMLStreamReader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d859604facacd84cbabcaac1915ba049cc07fd15
      GIT binary patch
      literal 1768
      zcwUWETUXOS5T4ayxRg7npj-sSRE3IHwBE23PtK``w4w)|mUKzONt2pvIpweU;1BRe
      zd7Rx$OB+CaXur(tH#6VtWq$qs@e=@6;e!E}7|b8>W8Ta*YhE^zq2RUbw~xh={@M||
      zB0>XF3`P_y>v7-7emXc3wlv@hgT;$u^MM~p?#qb5fFtB~7}P~5PZ%tj#nW8Kb$ut7
      zDJIkB81xsKwx~-N6B#hTVBwTwd7f~%w;no;n($?t$ROp5retv0%vc5t|5af}lo5*W
      z4L1}FOw&3m?;OFq42H0+f+v)KvMxGdX3jD(xsp`o4t`a6wAIqL$Dqgdf=Fl!^9^IZ
      zEnX8*o!jEej`i=YYL^&tqmtxdOAdpy8x{OYr<t$vklRv(kv6|pT`5Yc5`$4Jye=`<
      zK|_jN?lsW2c24R46w{S1A2gJJkxrj#lEJKL#o_Vk_^r;fpVd0%nM}q+vE0d4V4`jp
      zzZlruiwli)`nN-I=r$9A$|rT?O}J6pQ>qKwJ#<9{Zxoi>i@R!zpsvO`eXY#n-9%sN
      z12@g{n@uvYkF>g1$LdyTSq7T%{TijO&ZA73nf*M2UensoTUN%3!xc+k2nK^>7KQJ~
      zYWx@rz8zF>)8ZQ$Cs%&8Y4L-Y>5@w?r?s4mMa8>2b3tRRQ%qA{It={;^jDvr3h|!x
      z<M%H1qid)2W%euF3w-1aMs1@cQ0O#r+dI(eq-0lxN~%YVRpz0isJeu;!6nBMrJxbo
      zV$=21Q71;+is}I889qh)_26_|#+he8FIs(Qr4akklZL?#&ybpnFq-g;!Fa+maVBaK
      zt|mO!;CjL{1=FA=?+xTCyh%7iI7>JO^BQkq6@?41sPQ)3(YQo-m(V1fBh0`(jrS@3
      z0r{s0mtjR?mewC)e+pOO5#i&6@+ZW6O8AT-o|ED=c%ktn<TSpb_1CmMMfMxQw}kI#
      UeVy<<`SXMu3Q<D=|1ZJj9~+0Ypa1{>
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/XMLStreamWriter.class b/libjava/classpath/lib/javax/xml/stream/XMLStreamWriter.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ad0e75fb55bd6a1827e0dd43cd05db4a7df2f340
      GIT binary patch
      literal 1556
      zcwU{9U2oGc6o!w-wrpM5x_0Gb8&EdbQb0spqFqgGktzmE6af-fUU0Kaj#D`fq<@VI
      zegHoTaT2RdWd|`4sfzvh^?N>I_t)<qKLOwcJab@)K<A2nqnVdQ+)I>XH1a;bIU5zD
      zPcl?YI<QQjk*hpTMc}==xMIE{u>Cz>9w{o-fU}4RWNr7X6rxEef|Kq?0<}Trvxy30
      zkvOnU;PCH3=Sl*{6>io3FR!Jn-mB{vL=!cg*RiFU_&O&y++5q3@qX;5dSS)qal-ID
      z=4o<CV6%{%DhzOuDqMK|pSe|MtL@*?h$R#1qkX#oeKw{kR|~ve@LnA0G<S>Xxr}|5
      zBxp7i*!a}fjjm~JpDIdVO&fmb&w>qv3f1&I8xv@j-@NRAZdUJ-O6uczNeDRZm)>xg
      zr@J07buQUB%m^G+9S$4erlj1|!m(XkPUq8JEELNyk**G)&y|=hd#14HV=Jg~aNX|p
      zEC_5AmBkY#)%4%B=}U9sK$pNliHDrCfbvrr6un$H`?XP=N}s(7IhMO)T*>FT!zuwh
      zmXJRkyrC<wigO2N%lKX^NX;S}2B}+`dWFVxz6qNK*|JE(BHI>eTG5-(vWS__j<u_8
      zWq8XXw=0P0bH~!$waBhT_N==0Dl}%SeM_?s_Y86$9vGx!`8>3I4&cxrkKi%n|Kdk*
      Oys+Zp?+K2V;OQSVEKN=T
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/Attribute.class b/libjava/classpath/lib/javax/xml/stream/events/Attribute.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..58f2af2966a5a0870d6bb503f9d866758865c22e
      GIT binary patch
      literal 304
      zcwTkS%T59@7zN-{M9W2lg<BKY!N$h5D-v`C8Z*QgcV+yYl+28inGV5MbHM}fP{vaw
      zx^mI`_qRR!&yO8|D-1Lm3Zu2%*sa-Ssi}M^HZ!u3+*fAmed$)U7mcREATX2KJTdpH
      zwZvZIL}B<}@zY{{6J`oJ5r1bhQMedS=6^otURBsw%tJW7R%lT^+O#G;KhU2CBYq@L
      zC^{6g<!t$0&~#lD6%xBwCoc*|<H<8Y^j4R#+`5$D>^H$>xQpK<V>@R0CL?LI5Tdow
      R`5wE6^(lH3tY_aq{|mMBO}hX9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/Characters.class b/libjava/classpath/lib/javax/xml/stream/events/Characters.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..462083f1c21cb8a79953dfa278ce9557fea8a3ab
      GIT binary patch
      literal 285
      zcwTi+yKVwO44fr|B|K9=AEknZ6?IA;5)x60D~QsWlXWaQ4z#-<zKtRukdH!m6C`L-
      z*kemG<MGe=^bKH$wnj<ebxj94n&T!nJ~*b0;R6@Jo6(9KrGcH-C@VZip2?}m%*S%g
      zY0#)By!@yBe4kI^q@XhnV+y3u>GkI~mn1k_WN!)$>lZ5<IN4Fk3J<;hm#C~C{i(Xv
      z&$43cXqodpua<20F6F7sWoh5i4&n)kCQee1@@iS)Yg7^6ctY(L>sM?<6kbz$39Spm
      C21r8y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/Comment.class b/libjava/classpath/lib/javax/xml/stream/events/Comment.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..923f1b15254f129b5104884ad4d90be3be84bcde
      GIT binary patch
      literal 200
      zcwRg8Z`VEs1_nb0ZgvJHMh5w;#InQ+{fgWi{o<0M)Wlr<)UwpPl45=5{M=k1gPnne
      zkwE~YNIxerFJ0e1DJwM@D9Xmjpnywjgs+b)h{edjo}O9~l3D>|iD+p0AWR7^Day=C
      zw`OGE3eGPrN=|jl%t>Wr;DOqy2T};MfRTY2h*^QIWdu5coq+?yV&DXlOblEA=~y)y
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/DTD.class b/libjava/classpath/lib/javax/xml/stream/events/DTD.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..07b6954a904175ae42fca78be4f51413a5d6d069
      GIT binary patch
      literal 326
      zcwTjoy-ou$5QN7ea3KjKLR8RDLW4z3d!aghq@<uV$Li$BXCr$r3a>`N1MpCY^&y0W
      zL}AZb`ewA_kI%Pv09Tk77$}^s&Bko?wsksjB-3izkmsb!Ras!DFwcN?#y9%@X-zd3
      z*i$(B&-Qp*E%Kyr(h!%S?pk@RUSFuB+L>tB2Cr~@eo_4fFF9J@Tr14P^AJN#DbcfR
      z@E82vK)|VhcY*t~q;T{@b!?rkY|6|;n1yG{mIN6uLl<khv5pi*l6{#CQbl1$&aV8)
      ZQ0f*KA=lo=xYr4$y&hy0?ojRlW?#ifRoMUl
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/EndDocument.class b/libjava/classpath/lib/javax/xml/stream/events/EndDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d7a4aa3df7e97b71c5bdd31760e1fb8928fd1a2a
      GIT binary patch
      literal 167
      zcwRg8Z`VEs1_nb0PId++Mh4}q#InQ+{fgWi{o<0M)Wlr<)UwpPl45<=ycC!G<kDOq
      zhn<0ikwE~YP(LRzFJ0e1DJwM@D9Xmjpnywzgs+b)h{edj6`WsMl$`38nUe}M1<6=F
      YkY1n}j10^`%*p@)j125Rl8J!>008AK8UO$Q
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/EndElement.class b/libjava/classpath/lib/javax/xml/stream/events/EndElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..77dcd712dcb8894841980f6ac018c198c1145d30
      GIT binary patch
      literal 264
      zcwTjny9xq93`K8ztxvSF6U0gzgSGVvf)B*Tc3gufv#acm;<s7&0e+O25y8qL5Kd0Q
      z&GU7C02rYWAV=sO&DGra7F*6-Dkf&RO5!pOlU-;f);>Ui(DEKzlk9o9JxZjsMCkt8
      z-ppsA?+C$O+`_~{==2A(pPwkp&L$FG`SF<0_?jP@5!zp$FYaJ@>LfMpl&V-=pDt-6
      jlY`Z(&0o-=w>1?ZuT|79bDBIr8UBL`s!9ko&ryE^MC(W6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/EntityDeclaration.class b/libjava/classpath/lib/javax/xml/stream/events/EntityDeclaration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3df5bb2ee27b837933bb1b59d730f779bfa09c4e
      GIT binary patch
      literal 340
      zcwTi-O-}+b5S@Zj1r=h9XOD8R@$Air2?>6Lg~aPnC!3PCYjy{+{522!0DhElDw}vP
      z9@;na^7>|8cVC}d0Jw#LhL(ci64zLpI(SoYNf->RDRN~-ksWUy$a*Z1T@f`LC>SKU
      z@fdUSvRIO34IKqn|Czi!O-89w(94NmR}1g#_+7!p^>Fg*lyT`|ezzB8n~EtUk(TZm
      z11adIs^FhB_RP63Q~K~|DTx1!YMId$@*XRiPsh?^#j3RQ=)A};|D?G|<7IUPZ8?YX
      dBOQsS;RsU9;|9A8_8L5C@HC;kJCnNw{cp^5SH}PV
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/EntityReference.class b/libjava/classpath/lib/javax/xml/stream/events/EntityReference.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..40776384baca44e3de836cf98fe0b643610577f9
      GIT binary patch
      literal 289
      zcwT*vI|>3p5Jao}jeiV0fSDTTU~K9d`2kH#$E96Xc1IXTS+8c`0X&pAg9ajK(9krm
      zs;lmg>kYsN4S^h?yH{tG$t+Fe(Hd5%<TGn~l!3Ofy{vf0hIPmS1wzZiGEq8`%k7>+
      zD^MbIepzhhv%qhJX2f>FVWNz(@j(*?z5eX~=MQ{L5YAwsQYN(D%2$lFHL;EyP+cER
      kCgf?Hc;+ko&<k8rLf%c$)z7&$0%iDC6;$1YQ1f@xpL^y~eE<Le
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/Namespace.class b/libjava/classpath/lib/javax/xml/stream/events/Namespace.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9871cf6c8a08b0c10932da0b3ff62ce965c438c6
      GIT binary patch
      literal 278
      zcwTjnJ!=9%5Qg8;#ETk@g{`2SHd(CG8bQz~iV*C^V?0*&PTAX&`)wBa0r^ql9*9;J
      z^TEtBAMgL={0Cr&W`Gi*x91b*DvymyofVFioFs9n`r%m8BZm^;h0rQ6WjKk{e7l#>
      z1*j0Z&xU_z)9)f9R3mW<D?6PN+Wo=wv1jG1PNFZuhez($*2@W@qtlV>I5Us>NJ7Jw
      zojxRla(}QP)K-VghBDSh2+ceBS)B0CdCc3Z*IM=h0=%IRQoY3*>b^sG_r8S26`8F`
      A#sB~S
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/NotationDeclaration.class b/libjava/classpath/lib/javax/xml/stream/events/NotationDeclaration.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a55800588aa74fe2b15b8a6657b86107174c7f98
      GIT binary patch
      literal 268
      zcwTi+y9&ZU5S;UMKEcAm(ozvTtZh{gd_fx9%ejQeC4uA;^w%u>06$8+Q^7`y-JM}~
      zhS~e$dIK;;hoi(WKFLC!#W~U<GbzbPP(iWD#5OU~gh@OnrDghp92JJH69_HiK<xYz
      zDZ^1?82qz2Y}N~h7<fQtD<fj)4M*#*i)Yd>4rUB3d$7-a9jevw&AdxyC~~anC3&i7
      m8EUKV|Hw9RhBgR8*;dtlShis~>TsbOpV@TN?pwB((0&5y;z!p2
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/ProcessingInstruction.class b/libjava/classpath/lib/javax/xml/stream/events/ProcessingInstruction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4e89067fbfef29ae08137bc1f94360453d090203
      GIT binary patch
      literal 248
      zcwTi+y9&ZU5S;aOCR$inSy^hKhqbK=f}#)$+cO*?A-TZi68ts`KfsR?_bMAL_Q4E0
      zGy8f!o&Z)D3bY7|Of~8*??o;vXSFJ%ZnSZgJlitXRh61#Z<wiLmzGALLm2rJnJbgX
      z(=F4n6X+49|Ael`!`5$vAkprkEO)|qHa~oIB4^oXO%P0Olv9K-Dr+0-U7Bmc<Y$_t
      a7hr2bo2$!TwK$$YA3kQ_C*z^VG57#Y!9=bA
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/StartDocument.class b/libjava/classpath/lib/javax/xml/stream/events/StartDocument.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a5001129113bd7736a6bc670b1121ced802b6375
      GIT binary patch
      literal 349
      zcwTi-%}N6?82nPTtNqa`o;-OG+Ka)nN39@KJOo6%#q7s+%O-&&E%ntr_y9gsaZ*;r
      zgNI}?lgaQ+J~!_lM07>R1$6{nEc8mR<=Qqfroh@tUa?D2s-#1@^=4^73)&Sl%2wHE
      zSINiM1skYcLFfMkJU`5)`6Q@caZ+zFvAr(^osK87-z1en?W$`*XE5E&b<iepm^$N2
      z=*rC5G7|V(VC3zLCoh5qb;OLW)Qxwr4C4>kntI54;t*@^K$Kqw!*_K9=gFUHmw6WS
      kKrGfCzNU+=1?^Mre9&T#`db{dIBfAS-{aj8_707{0E28=UH||9
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/StartElement.class b/libjava/classpath/lib/javax/xml/stream/events/StartElement.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..4a97abaec67068bec2202ad2e1f9a2faa21daf9d
      GIT binary patch
      literal 528
      zcwT)`%SyvQ6g^Y5(Q0jL#hu_nByJpByYWGVLak^J+)l$Kq~syVO^Lte!VmDH#G8kj
      z3Ux6#lRM|!a~~g{Z|?xkv2UTJa6C5)lj}STbjk^tP}71UPPM}(;ZZ=L{8?C6=od^K
      zn8?%jvpKmEZ7UqD(m&r#M#W9R@`$G<B!xr!bn?rOB$mDym-IvNe4)@4<`r||&oZV|
      z;h^U0jQv25nG(ZsQWK}&av|<Dh1ai@+ok=FS+kJk!hiCJ&#>up6Gu$BG-R)6<1bSZ
      z^qL8t9>)qNRaMm>9kGhMx|pSqLdS`-#HCw5kX{DOb(|G!nZ3fAoDJD#TlQmN6UCmk
      Z&?#}d#vOD^+(oa%J_e$YnaQ_>;THghnVbLs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/events/XMLEvent.class b/libjava/classpath/lib/javax/xml/stream/events/XMLEvent.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..567cced337e4a51d19cf6d8127401b23ac3ebb9c
      GIT binary patch
      literal 850
      zcwT){%T8M{5FJx!3gii;Pzo(Cp=5*AH7i7egcQmn<)QA3GXzJuzLD)f_%#;&fPNHW
      z>^Ov%vapWF_ndQ&$MgT;{vQDRgpCZ0F<5Dd8`0yvq|L1}C=!l0sGa2(2eqo-Wni2^
      z(X)74=q5kBY@wvnj||q|Xh~ELyWLb<C&-6Ewuvq{{kiKPgAe7(K7(mGtff*om1+jd
      z<x1_1*WmLugS@hJCycAMF(IR1@|R4M-Eq#S%dW#v{T2z@j*wJkm96T=lc3~Fr`+8M
      zUZFwlDf7x6nN*^+N;mf@uj$Hu9un_f3nQdMLpLbI-~UQww{MpV?!!7SUIi?_cca+Z
      z=S;d>R=h~MIYK$)^>xofj?xWzq{~t3>+%{C(SMMa&DVn#@?+mk;?Lb0<#2~W%Cv!v
      zQ>{EQm@NkxS1CXD46|K1V=z_iN$mJG+6=6YoRKFcsp@IhNZeCxGR_S~Z_8_G&gi{q
      zP0-X9X%;i^3H(e>!c@R%$Og<s%ttIlEJiFvoQXIa@pHsE_!4j)76N{S#em;nDc~}E
      SrxZUZ#W>*#tu@+@!TKX^^5v5N
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/util/EventReaderDelegate.class b/libjava/classpath/lib/javax/xml/stream/util/EventReaderDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d308209e3504d3decef69d7233c84a7b3d482138
      GIT binary patch
      literal 2151
      zcwUW^-%}e^6vw|8LKc>VmSSruXrZlbLbS2PA5?0U(x7dTIt8)xMVD|5TQ|Fz%?9I(
      z`lLRo5B?c_s53fD?To(p;2-7qJ)51)5|*J4$-R5`oX_{1bI;j-|NHYV09SCwK%YYK
      zk-clT%k8>bZia!j>*ZGHxaG>O_QLzx-qyh_?dqBxY6Cfi<6>TRZLe0oxAjO@Lj!q*
      zvj-p#K3Yj36!Hx_;G@FK$`Q5;G`{Y5PIyD1zfjyz$SwKX+C)D_EDXU^IJV+=dbL&G
      z(!sjD<!Xf!D}L2>H|)TX=lC!e?l?__(m}<;Ql$2U!jS<MH-@0_f&~ME3^s^U9BS(D
      z<2cKqT6cfGP&^Vz4^Owl=tyG7@X+$EnK;tLthB4T5jwutH1HCIvQ*ZhU1B+m0i3lk
      zfinhX6sDu=jLNa<ueGW>6<60uPwY)hV}zxY=$LaHSh@ig1bNZId0bF1cI@VAWXh|1
      zC~syhTtb0_hSp!o!D|*uIHNGi62)rk8F0q!c(n+A#lmHjO-xB7hD5S%*W|^U7Ul#s
      zEY%MDh7Q876)qMIVlu)ua82P{_xQFeJ>V_|wbs50h|q$CxA3-!dAutv$j&^OB_h4*
      z+4ZO&54=?vsJebr3vbE7qBJslr|$1^vX&Jtbv-`unyp5|4??|tk4f1QM(Rc?QU`O*
      zZv|Do>`14d&gkXK!ov(ZwV%HM{`#b0Ir<~qbB_2w%%?f7itE7a9<1NE>BA`hO|HN-
      z<gkEa+*utX9LE?}0i1{d%d`|*QvkE2KQP{<j8YtUpOl;QSc*ueI@U2sb|)E@1aT^1
      z-iVp`9$qJ^JB;IQij_}T`GoZ%PRFcrlHl(cf0Cf`(c%5f<TxI*n&dvmr>O{YmnUL1
      zA(($KBFj^}tnlO+rZ@L+?(d$gAF$k;1U^hjOe7K<mpHy`@GFOdKO^{aV(d&Xr!59o
      z;>5@Ifr|={`yclpzaX+kz)lJ|o*+vZ<;aG=%BWSh#vQmvxKC6g6VB0o&RV}7m1K$~
      zx!PNjT}pgKU^}xUbI*O9ZyYZ14JE!M@ViV2ejZX1^O3}-^pp0S>`08tQhJJa`b1-X
      zv$Tiny&~UJ<Ofc{kE!mSOuBm#?{Su-?u*eR?9XT^zLBwxoYl$brb6#H{zQ?V3H>FN
      k$yk!ft>nvaH7?QMGgMfS54yp2X6M(G|6t<(VPtjtf4>@kU;qFB
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/util/ReaderDelegate.class b/libjava/classpath/lib/javax/xml/stream/util/ReaderDelegate.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..d8b79febcc42a8b7a200ed14669133f2610783b1
      GIT binary patch
      literal 6601
      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
      MdnNj@TKALx1HdR3Gynhq
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/util/XMLEventAllocator.class b/libjava/classpath/lib/javax/xml/stream/util/XMLEventAllocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..0e0b8988dcb6b7ed668ebe3bbcde563220516e87
      GIT binary patch
      literal 459
      zcwUW=-%0{O6vn@!=9-pu<qLG75jb@1RfIyI1PRjZG#+AQc2;(0ZJ(_RAHau_&M1gr
      zkpsh=`8eP2{Ml^3*8m=I6QM%rF7!&5s!XiPea1Rbg^#UzpNxkqcK*rQ)M%e(5o(0n
      zkgTkBpX&8v!NwC>j=x@9?zJ;ac<9}a&jbz#4ZZ(}anw8YiDkNr-dN8$8~lRifXokY
      zVK#@Q;iZpLmq%z3?*7IeG6|D2%KtOivs5gS(B@3Kn5IQ$cobWit#dMaKcMOaLKWdu
      dWw#foBkVXrL-b2gYw|XC%GI$V_gdl#+CSLchOPhr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/stream/util/XMLEventConsumer.class b/libjava/classpath/lib/javax/xml/stream/util/XMLEventConsumer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6457a0ac2f7fe26778de2a4cddd32af43a49d921
      GIT binary patch
      literal 253
      zcwRg8Z`VEs1_nb09(D#MMh3O4#InQ+{fgWi{o<0M)Wlr<(vr*^{Rm$l*Rs^S66gH9
      z;?msIB6bEAMg{?pTK$~FymWp4q^#8B5=I8*#FP|922~9o3}aG3+Kb@^S!;$dGH|(8
      zB&QaXWC9IkXW(RHP{z;&R2~dw!Bqlv1?QI*C8xS&=A<$*h@!hp4`c=#BLmPa3?RS=
      YbSNtW8<5Wq<goy04j|?NvY8mT0Vst<iU0rr
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/ErrorListener.class b/libjava/classpath/lib/javax/xml/transform/ErrorListener.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..714ae34591ecbfbc2fef94cb21ac88994f7ff8eb
      GIT binary patch
      literal 319
      zcwUW9y9&ZU5S-P-)A&IA13NABu(pm>z(TP<!zqz?k<F?3HVZ$%j}kASf@tBwvNOZ(
      zFnhaSt^g+J2vi9DojR#P7W-6MRwmzMyq6(!#!-@6Z8Qsbgl@SeQ)RYtzTWBB62w`t
      zNz9fo8brTbmM^3^EMk4INoJ<Q6(M-jT%bW1{CiFCbs5cBY?M`L_#}($$g!R!sV4M3
      k!jDVq8i7znSylIokDBAcG0)AqQ-Uw0`Kh>WIb1>e0bk!y@Bjb+
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/OutputKeys.class b/libjava/classpath/lib/javax/xml/transform/OutputKeys.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..f6362257941b18c459530057f125aecb288567ef
      GIT binary patch
      literal 820
      zcwT*y-%r#)5XWbagRAGkAtH)D5EK>AQjL!oliIG@&>w`>3p_P@?FviU?WNrk?$7ec
      z#0UQX|0v`1G@(zvbmlYjot@d){`&pnCjh*G*FESE*tlSq?8>;xGeeb3R$q%UH-cJC
      zYIVq`RS&uZmK%+cF?nVL;|rcB0t+6EJ_j~|756$Bs#3_a0|JXyAuGkC8nLYA8r;Bw
      zoU8L9CD0qu<Io9w4F(98ysSha324-}0^9LFX)r|MGAU9#jKFH(IZ=G#xv@<x*E}|(
      zS@8;Hid-liC)ZP+WUORrc2Yl#Oy4%$z^5AAL2f2VSyo6+V95@w==6xjM_)d;j-|mp
      zjHN}QrW3AD>TxELmMA<8BkF1Jpe3rNmEt*pHOn?5GY+ZM3=~tBdeo0X4K^^Bq)air
      z!d2l&I?s5{rK)fXj&Gw%gDv!hOfiZBdenBzxap|DHge8W!StpZs@@4H)O!MRJG&zS
      zU8_iWALd|p0MFn#fuSoT_v?Jj%ZQCL-n>YWux!Li(eS@uSDg#&zv=$}xeuE46?K{L
      zkD@6XUZ?h(O4tIN1b?4CtiwDkAoY+spdt5Ld=q)G#Y@P`Exv_(yTz->Yc0Nuyx!vb
      zNDo{52>Ee~H<6#T_$hjwW<zLSVB{@Yf_8rIJM4U$N%m&f=-@YjE^v5>-r%nYUV)C5
      J!2V2W`~jr-sHXq`
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/Result.class b/libjava/classpath/lib/javax/xml/transform/Result.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..a23f79eb6f01fdecd818c9a75c28b9740b0d42c6
      GIT binary patch
      literal 427
      zcwTK#%TB^T6g^XwRuDzh1%3f&Xv5kSVl_<&G#1!4Lm8WrVM;nvgTLm&5AdUm)0!xW
      zU7mZ-<KFZ6_5J~1fD01_!S$NH(w(#0a7SfS$d@$RIL}PxT$wl|Xcc>hQxQAU<(frG
      zOMEYU@Pgs}*bS%inLnR}ZZI19-sFj(J^m8}DoaFsN6;LlLMkfMg7TbMI3~C)b8Ve#
      z|K{4OMA9W^{WMqGT=kiZ=vF%rbabRUsY<kPLU2=M#zeJOLoyY-NyRqair}jI|KQ$2
      zv*LZ$Ww%%LS3OAcEMkudXIk;onqBZ}1Ox}VW&<4@p{9{pB1_}?9&W(UB{y-3qU<xY
      L^pxPd+_k>}k~?yJ
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/Source.class b/libjava/classpath/lib/javax/xml/transform/Source.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7bf553eb57a2511fbc1f14d534f439e4ea3d7ec3
      GIT binary patch
      literal 204
      zcwRg8Z`VEs1_nb0ZgvJHMh2;@#InQ+{fgWi{gR@@yyCR{qFnvp{L-T2RCWdyMg{?p
      zynaq%Ub?=2QdVkm2_pk{acW6$WpPPru4f7(gQ$iNLP>B*QD$DcwPqMlRXVaN5e-dD
      zWsD455S!dGb5emiARIlAIyOcIMh0dE5MTnjf|Y@d0puEX1`ePIBLgQ$oPi4fX1z1^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/SourceLocator.class b/libjava/classpath/lib/javax/xml/transform/SourceLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e5f647817f82b3c671ca50bcafbb0d9676a26fd
      GIT binary patch
      literal 250
      zcwSYGOA5j;5QhKws!tU00`A(4!L>_45Q+*tL0V&J$pd04dNmgwz(a|N55!r_&kWx%
      z-~DmD0hnVDphhq)*@>O$Sqf?mQ^$igk|w$`8IN_wtTq7}1S5}8!BkGSX~{E7(95~q
      zRjDYl^`2l7M)8kHtSMB!ctgqMXu0&zz)f+X_@<I6Hw5)CS`!T2cBw@r)py^03#<yk
      k3C4dmGykMT;Ev&|;pCcV!Al08Y@_qau1`nyT(6=31gt+kRR910
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/Templates.class b/libjava/classpath/lib/javax/xml/transform/Templates.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..01737411b8ed337957101febacad5ef09d1a6c46
      GIT binary patch
      literal 321
      zcwU8%zfJ-{5XQej<Pe3J(9lrXNW;d$%F<|Mf(g99av3g5_I59OvwF{F;RE<khTTM=
      zF>#v7H}m`E&)4_ICxAOl3iJr`y?)c3>T0VbXxHw1sMUt+#%kfVK%a1(5oNWj)M~ru
      zQV0{r@0(wo1L5X&@$%=S6ZAkBJ#{5FV!TU}F9`SlSRTFGnJNaIEk`e5TCuF6G*MoI
      zZ#anImN5IdK}9iEojQ5(+Q(4xv$33xKfbrj_<%q-Lylhh_8fzxi=_G~4^w4?%cKZb
      HnZWn}9RgiX
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/Transformer.class b/libjava/classpath/lib/javax/xml/transform/Transformer.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1c1fd8cca84721a1759926cbed439deb8850d1cf
      GIT binary patch
      literal 1269
      zcwU85+ins;82+YRz#>v89$HT=JwmH)jK-TaCdSmH39(IEdq3c~PBZM1+1ZA^j&I<V
      zi5EVA4`uv!ps*|$NS1H@!}p(N{y%?z{RZ$7&kI;!Sij^~yzlnA$~Bq?(brIS-SeB1
      z&;>XQmBh(aJn-G)_NC|;hWuL@Nb`<ivC+I>a6W`zL=lTvDj|nF!*WXo;#1sh3w_Sp
      zN-(Un!VXs#T+2irDjoApMhx}VoH9IyrICTbYs@5^g|Y4kZ>H^3M6ohnQf%?C-w{0{
      z!yqbPg`qJg`N*B26bW;}HSY=|G{fGYj=^ZojFy4#wX(yqIZOToad!r>InAUwc9h_H
      z#H3l3sf5p`N7PTKu98^WvxkxLu@#j43~#H^oJ(Y=QM%*U^kQ?O!=BJa3Myi4SbuD!
      za>oWrRKPmJ=D3q1rG(Gbd+o<v5t!60YyPartHY|MLNiperCiUwft%4%|J7`|>-pC(
      zRM7@d>O-wV-I9?JLFx*#)0^<Ji7WmTcjrH&pCmKnw4lWFVh1n#qfB<Dl6smik|<6c
      zw1-H3WjM+Hkz63@6(J+c?f=BBA9Pqik^YN>z-w}SgWGf}4V(z?AX)b^mPu0~okLh9
      zO$~Rg<sR-^d_XA@T*aEjhj?W1F`lHDPf4?Zy0vU#D`VNlPDZnfy^N-TCP@tYqm~Y=
      WOy9Vjyj6TpwZaCi5FS{sXa4{I1W=U#
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/TransformerConfigurationException.class b/libjava/classpath/lib/javax/xml/transform/TransformerConfigurationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ee92b68b1d4dd79ff3c9fea1d633009e92a7374d
      GIT binary patch
      literal 1316
      zcwU{8+iuf95QhJW)4Fofrl&wDr<Ou-lhTL_Xr&;i6i%&DKr}>fxd~gx$gz>_KpuuW
      zo`4%Falr%d0=x}k)^?(bI0SLCJ3IT&H~;S1KYo4t4&XLS9T~!%cjANSSNdJ268gdo
      zPCUO`X$&Ii*F5*cwtBt@ZO?twZ_D>8(2*sW6H13_!h9foTR2VW2fTiD@Q^@<gjuEs
      zp>V^daC&lT;pfh$&gYkcFn!N<?eIQ9Gq;+AY|VQs4G`w?Fi;>InRV5?;t1EO9EZN`
      zTGe`*onx=(w`JXHi_r6{XNnpf-}@+9j;yK%g}Uv^XT5Gq`VEyNEUFr(DcClzlVmpR
      z*a2ZTwbjH+s}hPSzEyv%8(6C6$R=UM9OK%+1zgmzN?1w}<Z%g?35F%ZBN+t3V*AVH
      zR$2$*tzv2uLTTJZr`_V-|GkPT)w=_ex)Y}f8~;#iK*Jm#GtNG?)hlgIe2E<e#yWpc
      z8vhD}RZL-;XPs9W%tWz)9FKX<+(ninV5USwr<nZ`spfe!cm{U4ZVw9_<zpQdu@rF)
      zEGLY8W@I8pIhFB%8T%3AT&znNDk^f0BHH<cR!eBPQu!-ZsGI_P!t>KJz}yg+!xdaj
      zfNKfxkbzoaZ##wdobA1cXlt=<#GZ;2HxqH!N4eW+$9~P+H)FWhhTIKYPq>AI+hA@s
      d;odsMjX$|9=C&hlDc1dkJ8-UXb~EDK{0*X|7rFod
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/TransformerException.class b/libjava/classpath/lib/javax/xml/transform/TransformerException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..5429f7122db149b46f78097cf678b84f0d39db88
      GIT binary patch
      literal 3839
      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%0Dh>>y#_vf&^w0FLz
      zS3eY`)N7}dFDnaUgH^XJVthPm7Vl}nhMhS)CN|8^-U94Q8UXyr|DOo?GaB#<!}n`Z
      yt+v>;+QOQC*r-*$ketY#E+*S&kv(5Z_8b3yC)pn)`;%mUO-Z)jAUj~_zwj^CA5ilE
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class b/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..382869061c87a94222b5054bdd607cce31336950
      GIT binary patch
      literal 4088
      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
      ad`ih*@mZDRZ^&0k3RvPu;O~CneEwgx1#4{p
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/TransformerFactoryConfigurationError.class b/libjava/classpath/lib/javax/xml/transform/TransformerFactoryConfigurationError.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e59b7858fd47e7c506a409c4c5b3e1e405ee9e90
      GIT binary patch
      literal 1174
      zcwU{7TWb?R6vzLQtKDpyHf_=xt+w@+Y{bO}L0eHYT4;$vP0WKLGL6&C%4Sz)HxfUP
      zZ$2of0Uvx+@MHKv#50>s8p#Uc%bd%c^E;QBAHTkQ1#lI$ED{XYU-H*{U=DhY8A$H>
      zN1p7Nt+6KLF7E`Md{g(_Birgr9@w6HUrJAAkz&ZJY}4VcWrj|MMPEppJ8dC-ihR6x
      zkAdwo%oD&5xEr*&(--Nt-JjiePQAr2Ck7qyN>Le#jVavNy~B{XX}flCiy>L5wi!}&
      z?}gAnwRGrMVlXPPiBryIAZ^#$QQ7&1?TUx}-l32!e&`5>Lc{A&$DH~mJ94IiuI)2y
      zH~x1&)OWEG-$JtITdM5LCBs_$C@PE5%t@S9GneLQ`ZGE-<QOzd1P_GobBo$usZ?jN
      zDsM~2S!`%HkF6{&Ff7NEVaWEzAf2dF7ps48ryoaadVSduySCa|^<Oq~MS-wMBP8h~
      zCQwEi8M3mWbpi!77wO8UW1h|hvaV4yBbhZA8zTQ93@*^Akpyl~_%@bF(??-gL6M|F
      zlp@4!LL^3rS`6Y2A?}8V(kLuKC~XyM1W~Y)Gq74*KYIk*{|l^4<BecT5$u3s)G~6$
      z<snWPwNF?-1}=nG2ehR}1aF4WjZydnnv0-HQ@tigr}vKVPe`gJ%El0zjoNn<jE`9V
      zM&(F+#<@oA{iIp}sW2mrr&z=@Vm+T4qa0OC(|Ix4$t6^xI%a6ot>PXdGojO(dY$y-
      Jb*f>M@f$HH<zxT=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/URIResolver.class b/libjava/classpath/lib/javax/xml/transform/URIResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..e3edfb132617656a3a8bc5ec8fe2aba8b04ab26c
      GIT binary patch
      literal 279
      zcwRg8Z`VEs1_nb09(D#MMh5w;#InQ+{fgWi{gR@@yyCR{qFnvZAkU!G;{2Sl)FO5U
      z7DfgEkRtt@#JqHU|D>$c<Pt^(_9BP^Mg}JhAB1#pNl|8Ax;3VVrVloYg7Zs@l2ff2
      z8Ms_4l2Z#xGV}9_*%>$)88on|4uP>!i{Q$ES|NtGW##}KBY@;|J&+k}j0}tn%nTsF
      Z2=oan0~?Uf4&<=_X$~Of0<xJHxB)7fP+kB4
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/dom/DOMLocator.class b/libjava/classpath/lib/javax/xml/transform/dom/DOMLocator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2ce1f41d5112867afaa71054f9e3928d5abea339
      GIT binary patch
      literal 218
      zcwRg8Z`VEs1_nb0ZgvJHMh2y<#InQ+{fgWi{gR@@yyCR{qFnuy{9Jt(e_x;c<iwKv
      zB6bEAMg{?pI{lo)ymWp4q^#8B5_SeQMg~P}x`Xpei;`2Jni&~{(o;+Pi!#$Q^Abxk
      z^V0qDQ&JfjL^L#g@{7{-%Z-!4wt+;g85y`BdfhT}fNJ;=PS69{1GJBkff<Ndf$nDn
      Rx`~~E1H@wB1d>b)Tmbn8JF)-(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/dom/DOMResult.class b/libjava/classpath/lib/javax/xml/transform/dom/DOMResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..00a6e954c6aa93727c49b4551a9e3841af5ca159
      GIT binary patch
      literal 1693
      zcwUW@TTc@~6vzM5mbSE|MJT9v<5Hz8r3*1J@e-op77dn!BGEUuWhsl>t=XL-zWAz-
      zKI)qvK@%GiAN&A*DC3#gWog<W_^>-?X3zPZ|2b#&&);9a0W4uDfe6FYp>bp!>&H!7
      z=dR&+`z^Pr@3orx>elmZ(`(y2ff&QEaMNwWY3N(EL$gk&afS(1uph;cSYLax^J06A
      zVPx|xy2@S4X*^^YT4^~RHyple*ljb3G{fQn=WieAx}=tgS`MjYl2i^Q>HDU^+pftF
      zb6R_*$k1{d`n$VzDZN5xlp*by$GmFQY)Z(G^xk{iY(Cv%h(EF%i!U=oi*vigSRwxu
      z81fkmV~pW`u^*>6=_^XWa+{W8R@%*)>FyXc+t*e%>|MjP#6CET@dL|anAyCr{Zz=9
      zLXXHb`(HZG^;GIVZPRKBQQQ&@xim<vnaUu8Az{sAkoB$G8RU?pL3<{z$T1`ur&hi=
      zry5CCxOPt^+vqt+lSeh26jiQNnQnA@iDZf!ma4YeZrxnBM8mUTL(9SyQ&d2do&m&g
      z6$vEC9;E*wf)qVetF*JhN_EnjCLihty+>$wk0KeZNsTdfg3%w+bDZ9S0IU;r1DDCl
      z_<p!TnIIVx0pl?-B9bw$WK@W;B^l$sU%(KS(8wh1T0nb7w5U%jsc0{W_Da$weZM}M
      zutd!f$-UmsWhDjoHF1p#xi{$Xxnlv>rhSaoymo?{+I$C-TB(C+ZJ~q0S&ng<5pY1B
      zhcux#q|e4Enlhi}$A|gyVZMA&hp<FuG3z^F-<Ro&_!gI0d+TXa#-pyT$3uQR?D{N<
      z0ZW&AU_kqc$?qX5E)PF+U4Vh`0?es}O!o@;NHL$z5t0prXi6c|y+S@Kh0LR*5>n_D
      d@`Yl)o+BhD{~d+}lodh>y+Xbzh3L|2@gIUn6;}WN
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/dom/DOMSource.class b/libjava/classpath/lib/javax/xml/transform/dom/DOMSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ac4ddc18f0fee1a680301b017256e882b60b34b3
      GIT binary patch
      literal 1180
      zcwU8)Z*S626vm&+pOyg|6WMfg;&AGK8Lr0oM$L@kmZ-?gKoX;G3UsWqw5Gl2{8pN{
      zEb)aOzz=0S_qKL~)%c?Ko_qV8=lsrTfBpXP6Tn^6bR-xmN5&`Pm>-XAE<D5W4_t4|
      zhwhj^+k4e<C*Hu+kz!bsGHx5ri0}1}%z@CMF|5WV2U!gI?#`3$oBbVzV(TosBRtC)
      zJ!F_~x{falNAwJPVrGzIxN|7P#|NA%*9N&ZBG(2XH6kQ_U>aiLQIVA64oz9X^+x>j
      zy@5h+(;ZdF_+NZsj-L-1v`3a>iEV~twbrAoCMmLDxR^%)C5FxFd4u!NGPTgM9J4(c
      z_f4;B^zESbz_5FUXUTJTnG%PV&#=+@?|2DxDW-a@mqij+B;Vp3kzUOsk9iqg%VPl<
      zny+t)w(4FV{f$c1THGXZB<)1QpmMRT<wnygX%+L?vH|t3CA(aRx@br#DukD$Cr#@L
      zbYv)=qn|B-EIq`pVxp&Ar+3sFtrzHYU**wlov~9CzbWAotuhgK3JpyxQ<M*6xP;5J
      zON*7z;xSnyl*Lw@#S5}{sVtTQS!f|6Nyd~}DKvXank4Oo`YBfHTPIkn-#$V4%(RFU
      zt*>d_rxrWZR9Bg=2WgRcAvBkfY&=2ndc?d<X9=UJ60^wfXprxxkhREFi;ye09(r+g
      z2GaHKSo<1TY3gz?HN12*ybaul11Zmfe4rfrA0P|rD>K~0tr(E<EQlWqvZ++nKk0wW
      A5C8xG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/sax/SAXResult.class b/libjava/classpath/lib/javax/xml/transform/sax/SAXResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c1df2826b6a4d2a4cb28269a59e3595bb3a924fe
      GIT binary patch
      literal 1391
      zcwU8*UvJV-7{;G77%<iWo7>b)_Xqq_m{N^*YL?77vSp1XgAs4MC~#J~l%nmyFz@_E
      znrKYC@B{dvjPGf&W2M_J+H-n%-rw`QZ_A&*zkUOFifS5D44bFMCu67$d$uNA!|_h~
      zZcp>*q`vd+h<gKDq>*GONSS6Ej;XzEo$@xFrWjV@ii0YKbZu{^aeTDLu%Mq;*M)02
      z<_m_o-M-@q!x2rx9`Foi8J={7`0!lQd}@`b)sR}HNYyZscESxYa5<TD4X0ysm*I}y
      zcTGQvOiysZ9kCz$N_IJ$53ROg@Bi0tT+s8O(DVxms>yg~p5VQM4nyjt<yc~yA)%I=
      z49VSohi8$%l7e|GFywX1;co`L7Izy)%jUA_KEaxXYsu%)VN!H0kD;VrJ9V;OSFdWR
      z+?)Y*tw6yXL)POWY%Ob!J*=tat0yy0rFvvICH1=L1okBbIpm39PBMxS<Jb|;l6gIx
      z@{&6Fr36N01qEbCZ;tC1$s*>{%GUb>x6Nyo9C<DrX;n(GNwfrA(@5er(#X($hW-#!
      z$kIi_^!L=2zmh4fQbVtq?l<V^8Lf=g>B>(me)DC^beHA8E5g3UP1-4e2)D=vK44`8
      zsF6}?vl39*`hnGRN{+$-2ShofSh`PI4%8!(+{u_S#NCj&Jz}OJydYJBavYDbQXwl9
      zvevLZVrgN6-?92NM5X-0_p!}w_;Z~IQj7*Msiu2rki2hv5BFn&6r({t#s+zShjBsF
      fXpl3i`Fu%`g8#x9D%gq%qDF&!i4F3|S3Uj*!6*vp
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/sax/SAXSource.class b/libjava/classpath/lib/javax/xml/transform/sax/SAXSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..2889f2e4b61a10f2b4f1db62df52453e2157a093
      GIT binary patch
      literal 2439
      zcwU86?N3`(82=q8Ewq>NzEMDB&bhuoJH#=CxeXB*voHi!!7t_lm#(C=<o4D~zbqQ#
      zH)H&`Xw0HUlPxAJx{|rXw-1>3M;U+T^!D~r+WFz$bIx;~=lA@cxAV`xzy1bb4Db2S
      zByeU||3JT!xU-i{Sf-vU?Bvb8M1hjk>Gjoo(cCh8@CbBDwM16Wr4u(dca1H}2d}_D
      zJ>#;KfNySgdhOQAtU!0NYQ1WinOu5GpnWEvD_DBYO6l36(Tae;h1-_3Kbc4<)HqS&
      z4r-i~;tr+6j-gvclTO;GwPNVohAD75nK#pljO4$*m@Hq=S0IzyFIp91p<{Xr)hlXx
      zFK2QY>xw{gIFb_Z%;dKXKbq02p%YyK9m!12SSs#q8s?h5nKfi^`7J%0(#?!K+d_|Z
      zJ5vxioBZGG(&u=%0r7@BBdInB3~JEOE_csq2%>}RO*<7s;b+(iXa&P^+^~#|2q@k3
      zG2Ku&(lE_I!Y;To9Zc5<25YR3CqF>@)ej4nvA3`-&=)@0Hj$JcQH=NyW4RjuX*iFt
      zKx@H43Z&h*z2tBLSi+8Jh$A7;Q&2c-`D4^Ch3gixlGTP``B|Tf8qVQmA1(=;uiFt8
      z3%4h^a4FmQF@e`LOk&ENMy0^eD<Nd^3D<>+;tkoUY~cQIT@{(Z30%`KjW;<yM6Oh}
      z+XZTuRN}oQ@i@di;o93W)Vzl4GHWu)%f-!XW@}+v+TGCbwyc9JYDFGE3&!N-k_6?Y
      zw_s;?=vm1XXv*Yd*Shi}5UD?0CsSE{0POVj)y)hax!MTXMf)~&0e=~7E+Yp#=nQaN
      z+TaYU+{~|q{}6m=<-U#2Y!m$aIHqdPA>}GNf{zLR-8_wR6<k}Qhv<2v)cTZC6aTaD
      zU>>Kq)5=OXjef2YAY=n<P_vn9hXjbm9%CRn@)$!^sBVG)N&c6}=_Xk$E6CxpnGGp-
      z&y%N6JIS<3xp~2MGsm-}<gd7Kc?c?`6g{ld!-hgXRn~UU{R&gYI;^rKF|XK|UPZe$
      zc%9*Hy0E+sme*z~@FLFISP3VOzhL0Nf$}QhZrvQd<OFw&$WSd2lQxA0L@GgXzUvSf
      zswMJKT_Sw2Y~!R&q*EFnAt0An36a`df5IO7l&(K>(du+)bz)R?ppXxmjXY!1>T)5M
      zaN$5yDVCu>C-fJD{?bLY%Z6^lE2?1$D8{MXLfOY68T}LD9)i(7AWC>O`6HGnnYf2}
      zN+uRZN_cH)^aveK5#1O)#APb<Q+RdK6Y?CPU5Z1VL(C*8oU?_oBecaro)Q+KPmmN?
      z963UN?C&zj$RQR9(i)>dBvuVz1-<-##nacM`VCL_F^F&3ao@2(-y?z_a1jqMg@?F?
      zpKt>QoP|g1*q`w}O4z|6TjdFIc*;usj=T6vCE+?#!azAY%gWbXyrarKjH~pyO369C
      f)N8oKluW5PlC!YP-Mg%Vhq!~PB66bE6~e}Ul}Q4X
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/sax/SAXTransformerFactory.class b/libjava/classpath/lib/javax/xml/transform/sax/SAXTransformerFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a4b08f7d730edc8d02ac243b8d1cb85e6492e7d
      GIT binary patch
      literal 1212
      zcwVJc+iuf95Ix(vbucNtQJ^iCmLilQ@Cu<yh*n5d<rI+1L*qt$L)&zd8aZ~fUPJgS
      zo{)Ip1NbP!teZwr;u1wX*yA}n=gjQvtbhOc`3t~HJh3sw@Zz)hBD%cWj<{ALPMe8p
      z^OTU<{%LRpNL3XLov3d%EQY5=l+joQyXx%+C&wPcl5aRX5^;;yv<l<aF2meG5~o_k
      zx-OzjmT-e%??UU&8_x3#E@g208C)vLEi8&RrO=s@42!*lpH7eb>U%%%j!P&rRR2fS
      z?6Vn0S}KOwy)X{-TZZY%cAddGNY15$X)Km8hg%Huei+M-S^G??K%7O=Y&>a*s4i4!
      z{2plOi!f#2{zSc}j;+M<>%hW05uZn<t`C($sale$hTPr0HqWRQC2_oNLw0mXhht-n
      zVQ0*7(<wH?R;GlZ^tlX2#YF|O-HC*j>7;eJl?e&UrdwCp`n`JoFPWie5-F32nWo+Z
      z?2PGjqFVWqQR~x4=JohyTt{^-#mT49St}e3*JxXtpuwc8J%v@wV3s^P_e$hD1O832
      zmKj(=<_UR4mXV!#_5%yw^N=NaJ7fWmLJzS_U**dn+{OybZ{QB@5^|3)i|lHStdAh~
      XhmZ$&ID|aH#t5=Gh|u#muWIWrkCa*=
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/sax/TemplatesHandler.class b/libjava/classpath/lib/javax/xml/transform/sax/TemplatesHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..50de551c5229ea994355c54391f4f3bf6de8c828
      GIT binary patch
      literal 321
      zcwTLgKTiTd5XIksddfd3q_ML*8aLLICPWevizD_6j2p<_p4lA@el-g}03XUYM+m5~
      znB8Re_uk8!?bpXAfID1fXb|$XeX|?0DZP<sLwc@aX_CIoxP0+eI6c^~^c*vs5c)N3
      zybaDg&eyz<3}=MvD!QFRt-G&+aFD%<&~YpWFTzbeoc<SiKt_aiVkzE}a5-5L2Kn@u
      zT1Z?4HyS=E<$h9Ed*5Fep;c6`alzx2XLb79>9$sA0YX#fRM*nfk{QlXm%Tu1cel~e
      KA3|5p272G~p;=@A
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/sax/TransformerHandler.class b/libjava/classpath/lib/javax/xml/transform/sax/TransformerHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..20c1fd5e1b0d80a0b3d9cfe703b83cb1203f220e
      GIT binary patch
      literal 514
      zcwTLh&q@P94936I>e^Q8zt)Ne1--N$Ts(Uct5_%qws;@6aoI9EE3;EsU(JIL;6sVo
      zw${bUz=R~fFA2%#*ZT*63mkYT5zfZyRb_q_Yu{OA(&xm+ekzgSkH_{-nUQAep-kA$
      zd0#6N`u9&`4xEQI!eL^=X^mWYofyZ)EmZ4-qhg*j=l3~_0;LyBm9SrAy2I`~N2sLi
      z9ypz7M>uZx{~LIgzU({_syA7{FD^<<>S2p;@;h)(YYvsZvf(6_0T&>lCM^bUspGge
      zA~a`BW}<<!kqM`zYhjUUv^&cfp)OEicZAb9_jl$3B(mxtnb?4DBh7@?^77B~60&K+
      pio8{LsK^z|a*-M~B)XY<V(a;hu!H<oyV#rB2AYzU4a;9b>l<}*lA8bk
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/stream/StreamResult.class b/libjava/classpath/lib/javax/xml/transform/stream/StreamResult.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce4646c4882cc43e8aa77ed57c6908d24cc9aa59
      GIT binary patch
      literal 2049
      zcwUW^%TE(g6vn?RrG+wrpx_fhe6@%j@vR_=Kou>L@YIFT0WW1pJ40q}1(&*Wty^P^
      z3lmqGC?=Zd-apEC?w#p$7^jJg>7AaQ^E=-?-+|wMzW)R;h^Z8IFq~X7o*J9_X1Syb
      z$FSTL+bQd=aJW&{XVo#o-AYNMkYLy)ll78e74_+*HNH&IB*TF?gjdCo%1?~W&Cg6Q
      zbQEgUL^iGB5W~(f+j50ri3Oun;Z0~^xVS3B`c++5)ErTB0X63d%Y}vME8Gwjhch&}
      z&s@RFlTR2lyCT*r!pmdm@>-j=J{^iv`{agW3hvO&f{aBKk-rU_mMKOU8Zy}hhQyft
      zgs0JfP7UqoU}!6t7Qa_1FL7tiSSoROLwngMEf|g|zx%<2ST$XSY~eo#O`Z2=;`L@1
      zn!#{L!%no4KG(n9?o3p?m)NVJ4Z9dRGyhKB%Q&h*LsM;X;|%RJSl%pgN=#GYNevks
      zXJ~P`m<^_!STW@dTenxxWGHKTn*nXbXk=d|ThEkcDqr+{X)e~@J3=M?MbkKo^C_Go
      z$HN*lT);(!Mq$s-6v*6ap~Zzx5h}Zkt0`QmmiciFLl~xM2-}+y!=7qocy=j__)G7F
      zXDXI3%Y0&UnXe1ew$iwPn<<QvGgVQO)4{JA#$=N;U2KZGu2H0=x`qk4RC$K}7_UN+
      zxmCyBkb5;GSCXyJLk4sfV*1b^TZ&<~(zABOS>}1=S$lZpa<Uvp$ma%n8j-+$q|ij~
      z&GesQ2h#M=o~U<PJ$2G%(Wy}m{V~wzZu)kPPDW>A|2ORUtkSyZQ<ekcgw12GUqngR
      zM{S@02Yf)DGG%UB0{TyV#lae-mBayei84j9?kQ52m+h0}TQ}t~#XMY(*%M{X6LXQ6
      z_v<j_RXygBdd$8k^C2-G5%X~!<}o#1$vhs<+`@?{lM}N@%+)%~EczAmR4~sGpP7uz
      z(sRTn57tAhWWY))n<Z-ir+t<lnEM3>KLx0y3U0(2n+r_XCZs1S<T=&6s3W90d>v<E
      zg!Dv(yo?o+37p#|q%SJu71g}1Bc$qBCUDFqKcp|+(yhTQTq5EJv`_uOwFd)RxIXX=
      z<G(&DDJ?Y48-A+}Dg)k7<SpIq9S-5WYT4_-f|lL5r3`H&Gj3y&su}KJIA#ic(J6e4
      Kox)v}Rrm`Wta3;I
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/transform/stream/StreamSource.class b/libjava/classpath/lib/javax/xml/transform/stream/StreamSource.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9eda514eee898174ccf289ab3224cbcb3d0bb982
      GIT binary patch
      literal 2517
      zcwUW^-E-SS6vdAc$4(sOv!9d%TtbQM28+_tLR$(YjZ463ijx}p#K?}~sMu0QT0>yq
      z4c>T$Hy-I5LuY8p#|-e?VHo}*hO?3^%c?ZPc&uGt?LGImd(ZmuzrX$t;2gGc7*Vi%
      zPybjy&<?sCO*p#c?%GaQbA@B*U2V%7w(OqMGIGc$n3apQj&8NJ&E`F$C346rIF%&f
      zXDP^4*RF5hsjn%RuMM)PY+CIr3Z_<V%N4pM8hWQ^jAK&4#XTYRFKe2oTA^wsRIT`6
      zl_;3DYv`iqu+;c|uh}tM>pPsfpSr^6%ITzO?e~PAq2QPgVcOdIAWV)d#~s7r7Q+Q~
      zFCyPvH7!$IQ!rXAH56o4?HwbJQ5;t>k0T0ZYNln}>UEojv#mEfhTN*%(mM^^G3D<d
      zm=SxXtDsc-pC``BCyR-=rN#slEUK8s4DsAxZ{_6GPaeCUe_F*9#uXeX#<%Rhe_q8b
      z<`kTH;(d}LkG7Z`pBv;?&5prXp6VqPWh}Ejt|7L<W@UCwc~sNG84PgMdbE$z?O5PM
      zv6Rx<3Fg*=?oPA^^Z7_d*lUS%JFt;FgjZCk@{lImgSdjD{nTMI%SHXY<Z&5Sb6`}B
      z?nTAxpp(XgeWzZd+xkM5Av8v=<nbon%HeuHEr_dF#U<KW*nY7b)`ENIBh-7AFuTUu
      zLCe?|rfubM6YDv=&F+SWvKhWr@s3o>6L-UKUA;{^-#|^;d1GLs=-wic?LEi-L^|4Q
      zuCmLoF?6p6b-4Mw@8zo3*14#?D>4D6dB&ssj`8ypav0})f`3mV$n(pi_vTZ<NWXg{
      zeaUf_Yk2|rJj!3^IVv2-%8zjDfw$}gpHc=`Lxv}Ek~7s`#A2s7N`a>Xfht$ZwRtH}
      zKKl?01C?n)0yV1KBHpH_blhJZD9PC~#8W)YX9LZ<Tq84QLe28ZLlg$W^OOX(`D{@5
      zeHQw_6EFB_q4-Q7E@$#IM!Yi5rJ*my(LZDbofVoX=<-B;^fPJbONr<vpC3`U!$RE@
      zbYFZJ{e?92LLA*;1;Glv6!a<2G*WXpS@RIZxaMcn{G6I!q-dVSil_Nv=#FcFW;W&w
      z-(O$SQC~&0vY}QsbVUVPprwUY{Rs;{hEiEC_;sR9UkZCY1hNzd`Gz^)rhxQ&d=4)s
      zfGov9zDoo-A9ijC<U$<ed*<9v0a1gFUBsmXkPC5;9}+>z$smO|$j{9AB?Y8!omUe<
      z3UQD>Q$YH@v*{}7u0`p&*ADRpaqeSo<2T&6yK;!?$|Jn{#{(~Yl199V=tX+W$X~R|
      f-&nvuk&Cn#@-FhvN7_<eqfOj~yh!hPi1q&f-G8n0
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/validation/Schema.class b/libjava/classpath/lib/javax/xml/validation/Schema.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..c9b0278089ee320a65db8164a18df81eb71a1a17
      GIT binary patch
      literal 423
      zcwU8&u};H442FL<*9Ou+3uQwLFf|NBs3V942{A-46lK38CwkT8B89Z{wV03?cmN&>
      z;cF_yfZ&GvZR`Im+aI5A?*Ptm;G;u0oXe$L#jDc9OKEf=8(rCWn$J`zeF(zP8Db;t
      zV|<^@Ro)PKm)h#)ir|f-lpwCFLIv=!9iodKVUTF6?iOXH>Iaz_Mc7ZOT$)tY+U1*~
      zXlD9}aFqNp!UZ9;>N#!eRZTb<N52E#9%e>AnOkWKqZp0;MK@ON5KOB@ovRz|ChfPw
      zoH<w=gBOQ;9)w$%bDy&bE3tM@U$OPVK?ec<0joQ=U_+myur;ynz}<HjgS8H^$8|o{
      HnjC!rIZbB%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class b/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..3e8f620773a2043b652224b2f655dfa9eac91f5e
      GIT binary patch
      literal 5071
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/validation/SchemaFactoryLoader.class b/libjava/classpath/lib/javax/xml/validation/SchemaFactoryLoader.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..6e360e4a922509d2fda4b36ad4bf0d2b0cbc5425
      GIT binary patch
      literal 408
      zcwUWAu};G<6g;<S1EEmp#LAX-Xh1ATMJ!02A{c_Yzc^OwDzPQwmhxFlNDO=cABA`>
      zl~@?+!RLEEpYOe|?~hLaR~W=-38YI}(<a+Ab+)EjSLC%dSs@pyp(#mk-D_^CQZ7a$
      za2nKEO=g}wmP;kQK=)P~?e7HI>2M|x-P=kfXydSl4!Q#UTpRVUYD(pvsH~O1Ah(k0
      z895#Jt{C}+eij(z`{tPlBu2gLY63TD{ui$BPMi5;xQAQtDeTHgHPs==`9FV+gH3b+
      zZW3X&5QXNL$IPx71!HIQj)S-Db;5hX2#i^Ji6cJsenpJO2(vsvpE=KT`{L{e<$GqG
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/validation/TypeInfoProvider.class b/libjava/classpath/lib/javax/xml/validation/TypeInfoProvider.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..35932f4b09ecd98063aca9bccb4d5b6f28601cd2
      GIT binary patch
      literal 487
      zcwUWBT}uK%6g{J>)~acyeLVIMsShn-^il*71;SE+;zMt<yQ7Wl?#Mct{j8pX9{K_O
      zsOZjC20_p~%(?f@IhS+qyuH7?0yxB00U3t9F`x5=vxq`x&O;e+EmiFFA19(457lj=
      z<}wgT0Tx5mP@Ry+Bj?5&3tuzjPh~9i8AG<&8ZcNFDiAiZSS=xkJVV8mvACW^o=E!K
      z3k5^XRXz^~Jdq~<Dq8wpP8s&yf0;R<E+e5YLlKEsf4?$pH(RbsM$SXWcLEhHb;Pd|
      z|6J=tdNVD46g$oCpOUhic7vscJQDYgp(v-liSXr6ih#lHsafKSD`}=^{5E=E#<6xm
      z>w!5rSY|Dh7bxoxGE;3oW95m03~ah>Lg0v~$0$-%`XmvSVSZr^l@zO3PqBuL6zc|w
      J+ekZYegJtlb@c!M
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/validation/Validator.class b/libjava/classpath/lib/javax/xml/validation/Validator.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..270ad037256fbb58fa6c27325d879514ba06cd9e
      GIT binary patch
      literal 1638
      zcwU`UX-^YD7=DHxOBbX_1yMPQQfNV074M?P81QPqSVOd*T-u>7+3qy6TSWhrUnJ2)
      zzx$(%@60yMrY+Ub4}Ir&uDSO2pYJ~b+`xSULkx2V_Mv@b9W`9*&~}}g9XP_XcEhHS
      z2I36k3S+spSGRWd4tO<SNNzZu6Fg#w<qNwE@u#B3O~jBIMFL5Nbjk7fcB`?+<y(8t
      z<qQ)gQMKJ&TRN)W9*hSc9iJgv8l0lYkdWNxWIWuSC-QtgLJOqr`TIgPtg>jyDle*7
      z=H^kAH<gxeAj2>%WL=|uVwIn~>r5M%WXR}cI>LIf)0r^AaDEhNOfwV*`t_ZA!~K>U
      z=qyQJ;}~WJsnE{RGB>3Z^11ERTrL@A^QCC+=%iLo*Si@r`NGK*S}0jiGVQ3Ud#FfD
      zq0OiDs#OyW%k`~Nxf`YZGWCA+T-$RnpU#BXTigy>lJ;UU+|uxFl>_N`^<tr7V2Sj)
      z&T3nbX;suc=L@ez4ld8I*b6PUnoS{t2+~9jE9!Qxo?xr4v1d2*RqdIj+<qkYR3Cwg
      zQb^GCY!QG}7)EHNucc^m8GP2;+v^z_3SSl(jrdX8avxeROIc6!6EnkmwdJVSHr9Di
      zYYG})pvxVD`i&y4-YxYF>a9~{R1+)582(C)A(-@UQUx9mbOR%rq(M~AKz%00NB}gJ
      z#yBC*Qaed?0_U{oW3p0wV`Y_n!&JBIO9H>rvQr@}l+~>ZxCj<k!qX%l5vH+An9=65
      znA3G0SzQ-!S%<lT#YmVOmUWni?J%hy$h}`ZM&VZ{PExPxLnKP76D5VKxTZH}4OSo7
      wXCxaNB)hL=vmvNQR<*9vmwAZVH|Z2kk=y-8?pwHhn%wd~a^KOp?`r0~zq-9<P5=M^
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/validation/ValidatorHandler.class b/libjava/classpath/lib/javax/xml/validation/ValidatorHandler.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7784273b1329b13ca4bea4ae4a3b9a00d76775e6
      GIT binary patch
      literal 1764
      zcwUWETT|0O6#f=^ft34AMG#OfEeH`&QEtjGMV;v&L$L$ANNAT5CL}RQEBH_R55D*!
      zGcqIZ{wT+@n_7EG86VQK*`Dum&hE*t-#>l=n8&LqniwWdwW4;eo}U?NQ8V<M=INHH
      zX8fh)ywS{@!JQ~V3|%5sH8eA?zB@YQSuctR!=UBlCEO*N4a@Yn>6K6n%2xWrW^#S^
      z{Z5jhC-sjY?K!%cUuI}0i0f&lN0J5Jf*8ZxiRal%svw;c<bwE^YhJ<Ou4-y$+_kkV
      zpS2x+te<n2A+n;Iy0^yA98Y8zLK{|&D`-Yn8`{v$(3#RrzEwCo;?AyiWN=}{%4$YN
      zb9C`u+6;LoI<ZZq{;MVAz1!tpZN($;RO5y$3wz!9depsm;wBiCKvGG^DXTLKR|{4C
      zDP=nIwTPh_ktzs7FG=ih*D5$!E}~Hsph;im(?V9wS!b%@s;P8smelLb2f-&wnm6Np
      z^zMbt-<rqPwqq6boIocC9e5bEsl=cV!=`^r82aP&cP(*1Ny+mpw*`e8#T41A>_>Wi
      zZ_A<@vR2;IKl5BUH;M$qcztTRVB41CRb(od!E6){tA@qbZ^Il^x~u$SK{MPMi~c;3
      zMFo?X7uWW2gCfNJ7BfJ#xD^Et1mqqhG7948Vh9(-a4|4yL5%uDZL_)KUC86D*Qhr}
      zFt-vm6#xq;CsRH2Will#&wo=FW7l6hS#tsr8UxKUJz;uoBZ?M^t@Pn)f<o;HiOHs&
      z4%%6u$S8)VFVXo;rgYP<LJ?S|)K&D*s?ASAFZv)pXZ;wE@fOjGcn5<r-o=oN!?-8o
      z2u5Wb!+pXtJis_HPtZC-agsVLOl*@`q1QLlqkPBo7lcD!uQ0hkbBRaSWltTH1!Sm@
      zJ;ZPzeGT|H-<Mo1$YL3u;Aw!;A#n(n!M{qeE5!FN@$9;h-XZB7(R)tnjr!=a-e5^j
      ztQPT{kPI)d6rj9Xs<E|RC?W|?D++2Y3$&ICTE<EM?dwuO4QcHP-}SU&wMgEC?=^{h
      F`3EOAp-cb(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPath.class b/libjava/classpath/lib/javax/xml/xpath/XPath.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..195cc03108b9fe5f45a0b3735417acb1db851ed4
      GIT binary patch
      literal 1124
      zcwUv0OHaZ;6ot<qP^_pZqWIo|3mX?ECM;YSNKA|`5@Os9&7_u;w&{cPx4G~K_@j)s
      zgPKB%07*H`ozw50+v$9My?+3>z^Q^9Lv6rEJkp|}rA00e-n5rT`d5%=sKiT}#ce}-
      z=nsS*FcduD3(}QFv&T@Udui`+&*XheJPY5kM#5t_Yusgmr=2ayF=ld_jpl-&M4V1&
      z>w)Rm^W#iAC*!0!GvlN{3{{GA&xgWyxh`%TI}lM26A}RXcUhY@${<xEi_n<J@DGAP
      z(Vd}dT7uzn+;+U1-M}+#qcvlccI477`!oy@)OMr`H=fK_ut&}3Jo0B}D2WlbLLN}}
      zZbtV+W&CxuGN*cq$NGsn;byp6h}uk>7+$j;bv#2h_bJ4!?S?_u2|Zmbo$GoTcxF6x
      zyx5Ujr^;7+9@~lxboLPc%5*>rC?Y<n3QAH}p-NptS?W4Aq;8@jbqm{4tJon<jVO82
      ZU8>ZvpQ;?BDu=1cQL;kUG2Q2I@(pDZO-%p*
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathConstants.class b/libjava/classpath/lib/javax/xml/xpath/XPathConstants.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..8421df32bceb86b0bdc0416fd38b8b72e92e8eee
      GIT binary patch
      literal 1073
      zcwUWD+iuf95Ix(Zi4$DfCfq^_^aA8k8q-1nwH2aC-3a8^kc0@Hs*P(kt{gjx9hAS|
      zTM!SGK;i@VD8#HW1XK{QwL5dhb7p2|$6vpF`T}4RkCT{TxOvLo@v$=QJIZ*#gP!u{
      zCG9oO^#kq(eiCtp1>vJO+&xi@?x|%43<>>pqpCI;^4cVT%lno;;HIU#(n;MVw^qCP
      zT(2`EtA?Se`#Nd5aiF%;HbY!!6#c+x92wOYYOQ_LAdAM3(Iy#N!O(V3DAwH1qB`6e
      zSrX<MR(nA(*ijVWUGYb5#q|0F#)IfA$6lX7+A|&7wS%V&v0|x1d28OWmBb~6+&^oV
      zaD}1t|L|+>sNc1Q60R{IjV!Lq$YY64z8B>z6we>#yrtAhfi6SFED{oyr_1e!TtQrw
      zkrc$+4CN_^UC(nY?h58z8IoWY8P=y@y41Q2-wFh^EF&eT_vnyQQU$FdQ=<|L^P25i
      zdf2`;?>d&acF*KahYxLmLt`2-Y>AdG(!B*e+h<t*ZQ}kmvNS5`mNy!j)}bw;X8-(L
      z5p1kbAu;+563B^`la>=545bvwR3y`pya1V4bEMDUA}t9ESR_k^EbkGAc<P^#eVe(Q
      zxq61&N8AX}tq84zXe~l_LR5%QDMafL+V~JAQE0DFT40y<9ZI@SWjw<Y>L}n4Wi+r2
      y4NuTQ4NbD#r&ln=%Ks|v0ZAH9%$CovISHK(9k;0R?T{w_a3c4IBpF$S=cDhCXZVc(
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathException.class b/libjava/classpath/lib/javax/xml/xpath/XPathException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..69b86dd4a1a1cb93d14b2d2c56499c55c0efdafc
      GIT binary patch
      literal 1079
      zcwT*y+iuf95QhKFu_SI&8cIqir7fo%01I)Mr~(2-K!k#l8g92{l^7B`vNtq$h&vt!
      zBv2(TcmN)R$3V<(ET`na&B!zR&$s`~`q!TyKLOmsoit($JMZ`hJ~qdLzBwLp*)!j?
      zC_Wk6VkjNYO(VgOR~oa=-L4rOFsui{cX;0ten9!rv&RhVIm2qha|6j;Y4QF@B!7S6
      z_0K0Cw;7T)9|eM8vpL0edcJqUkNcv=kg7YbBM(SWI-_Vy-*LOOvc-^ScyC1pajY9K
      zu*#5YI<9y*8XOD1qaX|$P0uDvoQzQ(78A1P1Pr^)|Bp%*(gP6$ysJTT78tfl3$2$e
      zW$KbLRX7KR%LX#YGOTokY)ob@l*&t{&J77J+mhSwJ3hBb8!t_Odj@uJb$YAgnXQS|
      z7km)jdR>Y3smUA3XtguSdBkhqk-`rVWresk*BojXGHq|<+v3nsyUhQ)v%9JVdo*;M
      z{;3#>NFqg9T4yU1X%iGxjh>9+8f6D`7E{$q^%S|UT6<n=RkcQpIyUI*;zWf!E&%##
      zlWI(}3L)!h$jU0#R;BtK#VK%2+j>C2hXj9g2AYkaS#424w{azenmPxPm2W71iEt@h
      zJk%ItA_y@|JyqCzKWaY3?(A?ckU(<@V1LniuFVo!)bnb|dT!vRzMS535vw%IIwF>}
      MlvUBJs_wb{7lFgVg#Z8m
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathExpression.class b/libjava/classpath/lib/javax/xml/xpath/XPathExpression.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..7693d7c6844930e64a81813c9c8e8fb14aacb985
      GIT binary patch
      literal 501
      zcwRg8Z`VEs1_nb0es%^XMh5w;#InQ+{fgWi{fdIbk_`Qb03hjFQBagxT%4Jo$IigQ
      z$RGexq@R<Rm#*)hl$DxX!pOjpT9%konpl#`$l$2qgD!9FgD^HPF*miiATc>rKhO`z
      zwARE_&B(yzT9KSuPy)2Dn4N)>kwJriv*5}Z8Pu>?k8DS9Nl|8AI?xUe4WIm?bg-Gl
      zK(jsb3Q9|Y^Gl18Q%QENE^ec+TFnKKbj!>EhL;GMU-Up4*ccfY8JHPBfCU)htPE^G
      dK0Am9q&dJMTo@wU7$Q8#B0$UwWHT}F0RW+=in0Iz
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathExpressionException.class b/libjava/classpath/lib/javax/xml/xpath/XPathExpressionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9417526f01a16d562f20859cfec6025b13e2d4a3
      GIT binary patch
      literal 616
      zcwUW=!A`<J5QhIjpr(Q#T0}$>Z-|MF2R#Vkf|zKCF#(C!1vgMrTGAHj&3N;5Jehd#
      z0elc2!#G<x7?s4s&dyB!`R3n!`*?W;aDbAA7@>SC?nG#YBijteA{d(2mmHhn*pt3*
      zxlS|e%W=SohB#q+j(VmcWPRyb!tP2>4PTv|5a^tcZn%yg2q)+Ydm<C>52E%sy)O}x
      zHOsMrI>9Kn6x+0gGcenMXE}rFZkG^mxHnSA0+v(Iu|&wUEJt2UMm_0uM9-FlT+8kA
      zO2Lb{o;Bma(DDhD)_>nuC1@k=i9v+?Wrk4rZm~1;+^Jf{E|tA?WzQfa`eNcU!T3{4
      z(A)0B>&sJ1ncSLZW?v0s2gGD>EFys<-x^mjEb<}s8yr*IsdF9UJ6YL#M*1nzWH{<k
      q_mF3gkmW4@rNRnwK$NXwjTwq%{Kd-uWF0fBI)_!jM#L&cGn=3E@QoM%
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class b/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bcd8cf0dc20d66ebf67ea1d78059b1f689a95b58
      GIT binary patch
      literal 3748
      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
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathFactoryConfigurationException.class b/libjava/classpath/lib/javax/xml/xpath/XPathFactoryConfigurationException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..b8ea7044ccfddf4089afd474f46ce399b2eba175
      GIT binary patch
      literal 646
      zcwUu|&n`nz5XQf$wpXgC(y9`Pm4AsFf`vBSlqRGR2^!ne>u8VM-rL+iS}U>hI#v=3
      z58y#OhM04S2o<q7-<g@r{N_97`StM$z&hp(#0VRg;!5<*e#bWZT@kd+vm@4;umab+
      zuDZ^JYK5K%l<VyEE!ow9fjD7);M`{qA>&I=3A-UZpYzlGT>>2tMw#gc!U-C}4rSuy
      zR+R60H*<t!Sve}G5OPa(%{Fb}w9MncQ%<Y2+#tlO?zv212xDoaFhUrwD@PuNou>3o
      zMAMdpY~8hZrQpS!e-z_ETls{|`u|^AA{ZU%`=S-Wf7l`vzM4I0du~rJWxv|!v^JU}
      zBrFm7OvnxFC8Uns(6eMsX}gPm+gj5YEP!|iSc^y?$+y8-48wd#{}5}MD;3UTd?!~{
      zA250!^^CKoqUsjUZX?4{{=Ewm$O2I`i794iR&Ee0|DCnNtkN&60%jssF`Aiu15WOl
      AHUIzs
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathFunction.class b/libjava/classpath/lib/javax/xml/xpath/XPathFunction.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..bb3c1bfcf25be81f01bea6bfbd6df00c9d75519b
      GIT binary patch
      literal 248
      zcwRg8Z`VEs1_nb09(D#MMh4le#InQ+{fgWi{fdIbk_`Qb03hjBnwMOXnV-kbz{1EN
      z08*l#lbDyT@1K;Fnq0!jz>!*(m{XcqlFG=SqTvIUFD=Q;(f7$LF0t11LDyi-$iU@V
      zk(^opGP9VSfs>Iz4X?d$#Xyb0`K3k4scxA$K+A+sROx}tU}I!pWMF0h0Y;!>SsB=X
      Te0Cs@1xRxMF&B`{#J~*zV}L{F
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathFunctionException.class b/libjava/classpath/lib/javax/xml/xpath/XPathFunctionException.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..1d910734fe4f08f250165a8d5784f9279b48bf2e
      GIT binary patch
      literal 620
      zcwUW=%}&Bl5QWbmKL$Y%1rgY|F{p`+3tb3dgOF$%V*(PlmwE#=r6v85?u<KM$CZf-
      zAHWCkF^qGo3!<2~=-ip<nQzX$ZyztO01i=0Ax7A_6?Y=k!ilAYQ{j)b>r0N^z&3o-
      zu{)t5rz%MyPN*-`cEYJEJ#Su3$a~T?g*A|_`f+u3N}zK>w(Z!SFKmAxtUxB-A4KzU
      zc3&eTo2G60Ekd!bt1X%(?2*><UDF;lb_axb+qscxEMYZ+G*$>X-L&OJFd0g>FNT&R
      z6m-Ynm4X*@{oRcFW7A{n`v30PAfzUI8!?K2zpN0-^9K84*O{qB>`|H9ROX6=gdqZt
      z3B`q4Lb~S!t|7aovRGYg<v@*M8^m02tRR6TpDC_lSmuw^OK{9^r^R)Q&*a|zGqO*S
      vCdV-yb&q)V7<tZ0Un;Dj07Th3HkhGU#YL>rPu2;u8h^0L*os({Xr}rJ2sVz6
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathFunctionResolver.class b/libjava/classpath/lib/javax/xml/xpath/XPathFunctionResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..9a2ca1782f7786e3b5947b674c10d5be57dc2988
      GIT binary patch
      literal 229
      zcwRg8Z`VEs1_nb0PId++Mh4Za#InQ+{fgWi{fdIbk_`Qb03hjBnwMOXnV%PwTAZI#
      zmRiKlz{1EN08*--lbDyT@1K;Fnq0!jz+VJW08`J%V5{MSFflJNH?_DRF*#K~&=1J8
      z_SE#jYn?SC16Oc<X;E^jTV_rwBZCxH$LN8~U}I!pWMF0h0Y;$PSQ*$rECzNU$;7|`
      E0IXF*<^TWy
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathVariableResolver.class b/libjava/classpath/lib/javax/xml/xpath/XPathVariableResolver.class
      new file mode 100644
      index 0000000000000000000000000000000000000000..783419cafdadba0cf1b53f3058c3f7d4824c4c38
      GIT binary patch
      literal 215
      zcwRg8Z`VEs1_nb0PId++Mh4Za#InQ+{fgWi{fdIbk_`Qb03aEbSd^KVl#?2iTAZI#
      zmRiKlz{1EN08*--lbDyT@1K;Fnq0!jz+VJW08`J%ps(SBFflJNH?_DRF*#K~&=1J8
      z*7QL)!kUqRD>%QjC^^+F6Qo@VtMz&yZETDTj10^SAixN84J!j1h{eDTB$*gE03Sa+
      A-~a#s
      
      literal 0
      HcwPel00001
      
      diff --git a/libjava/classpath/lib/jazzlib/index.html b/libjava/classpath/lib/jazzlib/index.html
      new file mode 100644
      index 00000000000..72ac81613b2
      --- /dev/null
      +++ b/libjava/classpath/lib/jazzlib/index.html
      @@ -0,0 +1,47 @@
      +<html>
      +<head>
      +<title>A pure java implementation of java.util.zip library
      +
      +
      +

      A pure java implementation of the java.util.zip library

      + +This project provides an implementation of the java.util.zip classes. +

      +The code is pure java (no native code is used), and we aim to be compatible with existing java.util.zip implementations. Some code was borrowed from libgcj, almost all the rest was written by Jochen Hoenicke. +

      +There is very similar project at http://www.jcraft.com/jzlib/index.html.
      +Another project to implement bzip2 is at http://www.aftexsw.com/aftex/products/java/bzip/. +

      +For the latest source, see the classpath CVS repository. On this page you'll find source and binary releases of the code in both the net.sf.jazzlib and java.util.zip namespaces. +

      +The net.sf.jazzlib namespace is useful for situations where native code isn't allowed (such as in applets) and you need to use zip files. Builds in the java.util.zip namespace have a -juz suffix. +
      +

      License

      +This code is released under the GPL license with a special exception: +
      +As a special exception, if you link this library with other files to
      +produce an executable, this library does not by itself cause the
      +resulting executable to be covered by the GNU General Public License.
      +This exception does not however invalidate any other reasons why the
      +executable file might be covered by the GNU General Public License. 
      +
      +

      Latest release is 0.07

      +Download source or binary packages for all releases here. +

      +There is a md5sums file in each release that you can use to check the integrity of the files. The md5sums is also signed with my public key (finger jewel at debian.org), the signature is in md5sums.asc. +

      +

      Contact information and bug notification

      +You should post a message to the jazzlib-developers list (subscribe, archives) to report a bug or contact the developers. + +
      +The CVS repository for this project is part of the classpath project. +

      +The files in the SourceForge CVS repository should be considered to be of historical interest only. +

      +John Leuner (jewel at pixie.co.za)
      +13 May 2004 + +


      + SourceForge Logo + + \ No newline at end of file diff --git a/libjava/classpath/lib/jazzlib/makeJazzlibDist.sh b/libjava/classpath/lib/jazzlib/makeJazzlibDist.sh new file mode 100755 index 00000000000..5c75960a2ab --- /dev/null +++ b/libjava/classpath/lib/jazzlib/makeJazzlibDist.sh @@ -0,0 +1,121 @@ +#!/bin/zsh + +echo "----- Run this from the classpath/java/util/zip directory -----" +echo "----- -----" +echo "----- Options: -----" +echo "----- -----" +echo "----- juz -- build .tar.gz and .zip archives in java.util.zip namespace" +echo "----- jar -- build .jar file in java.util.zip and java.util.jar namespaces" +echo "----- -- build .tar.gz. and .zip archive for net.sf.jazzlib namespace" +echo "----- -----" +echo "----- Edit this script to change the release number -----" +echo "----- Do rm -rf dist when you're finished -----" +echo "----- 30 May 2002 John Leuner -----" + +RELEASE_NUMBER=07 + +# $1 is the archive command, eg "tar czvf" or "zip" or "jar cf" +# $2 is the archive suffix, eg ".zip" or ".tar.gz" +# $3 is the "-binary" flag, which may be empty +# $4 is the "-juz" suffix, which may be empty +# $5 is the set of files that need to be md5-summed +# $6 is the set of files in addition to $5 that are to be archived + +function create_archive { + md5sum ${=5} > md5sums + gpg --clearsign md5sums + ${=1} jazzlib${3}-0.$RELEASE_NUMBER${4}${2} ${=5} ${=6} + rm -f md5sums + rm -f md5sums.asc +} + +# $1 is the package name, ie java.util.zip or net.sf.jazzlib + +function make_javadoc { + rm -rf javadoc + mkdir javadoc + javadoc -sourcepath . -d javadoc/ $1 +} + +case "$1" in + juz) + mkdir -p dist/java/util/zip + + #make source archive + cp *.java dist/java/util/zip + pushd dist + + make_javadoc java.util.zip + + cp ../../../../COPYING . + + foo=(java/util/zip/*.java) + create_archive "tar czvf" ".tar.gz" "" "-juz" "$foo" "javadoc md5sums md5sums.asc COPYING" + create_archive "zip" ".zip" "" "-juz" "$foo" "javadoc md5sums md5sums.asc COPYING" + + popd + + #make binary distro second + cp ../../../lib/java/util/zip/*.class dist/java/util/zip + pushd dist + + foo=(java/util/zip/*.class) + create_archive "tar czvf" ".tar.gz" "-binary" "-juz" "$foo" "javadoc md5sums md5sums.asc COPYING" + create_archive "zip" ".zip" "-binary" "-juz" "$foo" "javadoc md5sums md5sums.asc COPYING" + + popd + ;; + jar) + mkdir -p dist/java/util/zip + mkdir -p dist/java/util/jar + + #make binary distro second + cp ../../../lib/java/util/zip/*.class dist/java/util/zip + cp ../../../lib/java/util/zip/../jar/*.class dist/java/util/jar + pushd dist + + cp ../../../../COPYING . + foo=(java/util/zip/*.class) + foo=($foo java/util/jar/*.class) + + create_archive "fastjar cf" ".jar" "-binary" "-juz" "$foo" "md5sums md5sums.asc COPYING" + + popd + ;; + *) + #copy files to dist directory and make net.sf.jazzlib the package name + + mkdir -p dist/net/sf/jazzlib + cp *.java dist/net/sf/jazzlib + for i in dist/net/sf/jazzlib/*.java ; do + sed -e "s/java\.util\.zip/net.sf.jazzlib/" < $i > $i.tmp ; + mv $i.tmp $i; + done + + pushd dist + + make_javadoc "net.sf.jazzlib" + + cp ../../../../COPYING . + + foo=(net/sf/jazzlib/*.java) + create_archive "tar czvf" ".tar.gz" "" "" "$foo" "javadoc md5sums md5sums.asc COPYING" + create_archive "zip" ".zip" "" "" "$foo" "javadoc md5sums md5sums.asc COPYING" + + #compile the source + javac net/sf/jazzlib/*.java + + foo=(net/sf/jazzlib/*.class) + create_archive "tar czvf" ".tar.gz" "-binary" "" "$foo" "javadoc md5sums md5sums.asc COPYING" + create_archive "zip" ".zip" "-binary" "" "$foo" "javadoc md5sums md5sums.asc COPYING" + + #back to dir + popd + + ;; +esac +ls -la dist/{*.tar.gz,*.jar,*.zip} + + + + diff --git a/libjava/classpath/lib/mkdep.pl.in b/libjava/classpath/lib/mkdep.pl.in new file mode 100755 index 00000000000..b30fd7ae974 --- /dev/null +++ b/libjava/classpath/lib/mkdep.pl.in @@ -0,0 +1,336 @@ +#!@PERL@ +# +# Create a dependency file for use with make that will +# a) not have duplicate entries +# b) not include the source of a file as a dependency to separate file, +# just the class of the file +# c) use jikes .u files +# d) includes classes which need native compilation via simple parsing +# to find native methods requiring use of javah + +use strict; + +my ( $dir, $dep ) = ""; +my @dirs = ( 'java', 'javax', 'gnu' ); +my ( $depout ) = "makefile.dep"; +my ( $classout ) = "classes.dep"; +my ( $headerout ) = "headers.dep"; +my ( $javaout ) = "java.dep"; +my @deps = (); +my @natives = (); +use vars qw ( $classout $headerout @dirs @deps @natives $dir $dep $depout ); + +# main +{ + if ($#ARGV == 0) + { + if ($ARGV[0] =~ /^-h/) + { + findNativeFiles(); + writeNativeFile(); + } + elsif ($ARGV[0] =~ /^-d/) + { + foreach $dir (@dirs) + { + # find all .u files recursively and parse'm + findDepFiles($dir); + } + writeDepFile(); + } + elsif ($ARGV[0] =~ /^-c/) + { + findClassFiles(); + writeClassFile(); + } + elsif ($ARGV[0] =~ /^-j/) + { + findJavaFiles(); + writeJavaFile(); + } + } + else + { + print "Usage:\n"; + print "mkdep.pl -h \tfor header files\n"; + print "mkdep.pl -c \tfor a list of classes\n"; + print "mkdep.pl -j \tfor a list of java files\n"; + print "mkdep.pl -d \tfor dependency generation from jikes .u files\n"; + } +} + +sub writeNativeFile +{ + my ($i, $j, $k, $l) = ""; + my $top_srcdir = "../"; + if (defined $ENV{'top_srcdir'}) { + $top_srcdir = $ENV{'top_srcdir'}; + } + my $top_srcdir_regex = $top_srcdir; + if ($top_srcdir_regex !~ /.*\/$/) { + $top_srcdir_regex .= '/'; + } + $top_srcdir_regex =~ s/\./\\\./g; # replace . with \. + $top_srcdir_regex =~ s/\//\\\//g; # replace / with \/ +# print "regex is $top_srcdir_regex\n"; + open(MAKEDEP, ">$headerout") || die "Could not open file ", $headerout; + + # the HEADERS = ... stuff + if ($#natives > -1) + { + print MAKEDEP "CP_HEADERS = \\", "\n"; + foreach $i (0 .. $#natives-1) + { + $j = $natives[$i]; + $j =~ s/^$top_srcdir_regex//; # remove ../ or similar + $j =~ s/^(\.\.\/)+//g; # remove all preceding ../ + $j =~ s/^vm\/reference\///; # remove vm/reference/ + $j =~ s/\//_/g; # replace / with _ + $j =~ s/\.java$/\.h/; # replace .java with .h + print MAKEDEP " \$(top_builddir)/include/", $j, " \\", "\n"; + } + $j = $natives[$#natives]; + $j =~ s/^$top_srcdir_regex//; # remove ../ + $j =~ s/^(\.\.\/)+//g; # remove all preceding ../ + $j =~ s/^vm\/reference\///; # remove vm/reference/ + $j =~ s/\//_/g; # replace / with _ + $j =~ s/\.java/\.h/; # replace .java with .h + print MAKEDEP " \$(top_builddir)/include/", $j, "\n\n"; + + # print rules to make .h files + # y/x.h : z/x.class + # y/x.h : ../z/x.java + # javah -jni z.x + # mv y_x.h $(top_srcdir)/include + + # j = y/x.h + # k = z/x.class + # k = ../z/x.java + # l = z.x + foreach $i (0 .. $#natives-1) + { + $j = $natives[$i]; + $j =~ s/^$top_srcdir_regex//; # remove ../ + $j =~ s/^(\.\.\/)+//g; # remove all preceding ../ + $j =~ s/^vm\/reference\///; # remove vm/reference/ +# $k = $l = $j; + $l = $j; + $j =~ s/\//_/g; # replace / with _ + $j =~ s/\.java$/\.h/; # replace .java with .h + + $k = $natives[$i]; # the original .java file +# $k =~ s/\.java$/\.class/; # replace .java with .class + + $l =~ s/\.java$//; # remove .class + $l =~ s/\//\./g; # replace / with . + + print MAKEDEP "\$(top_builddir)/include/", $j, " : ", $k, "\n"; + print MAKEDEP "\t\$(JAVAH) ", $l, "\n"; + print MAKEDEP "\tmv ", $j, " \$(top_builddir)/include\n\n"; + } + $j = $natives[$#natives]; + $j =~ s/^$top_srcdir_regex//; # remove ../ + $j =~ s/^(\.\.\/)+//g; # remove all preceding ../ + $j =~ s/^vm\/reference\///; # remove vm/reference/ +# $k = $l = $j; + $l = $j; + $j =~ s/\//_/g; # replace / with _ + $j =~ s/\.java/\.h/; # replace .java with .h + + $k = $natives[$#natives]; # the original .java file +# $k =~ s/\.java$/\.class/; # replace .java with .class + + $l =~ s/\.java$//; # remove .class + $l =~ s/\//\./g; # replace / with . + + print MAKEDEP "\$(top_builddir)/include/", $j, " : ", $k, "\n"; + print MAKEDEP "\t\$(JAVAH) ", $l, "\n"; + print MAKEDEP "\tmv ", $j, " \$(top_builddir)/include\n\n"; + } + close(MAKEDEP); +} + +sub writeJavaFile +{ + my ($i, $j, $class, $depend, $source, $depend_source) = ""; + + open(MAKEDEP, ">$javaout") || die "Could not open file ", $classout; + + # the JAVA_SRCS = ... stuff + if ($#natives > -1) + { + print MAKEDEP "JAVA_SRCS = \\", "\n"; + foreach $i (0 .. $#natives-1) + { + $j = $natives[$i]; + print MAKEDEP " ", $j, " \\", "\n"; + } + $j = $natives[$#natives]; + print MAKEDEP " ", $j, "\n\n"; + } + close(MAKEDEP); +} + +sub writeClassFile +{ + my ($i, $j, $class, $depend, $source, $depend_source) = ""; + + open(MAKEDEP, ">$classout") || die "Could not open file ", $classout; + + # the CLASSES = ... stuff + if ($#natives > -1) + { + print MAKEDEP "CLASSES = \\", "\n"; + foreach $i (0 .. $#natives-1) + { + $j = $natives[$i]; + $j =~ s/\.java$/\.class/; + print MAKEDEP " ", $j, " \\", "\n"; + } + $j = $natives[$#natives]; + $j =~ s/\.java$/\.class/; + print MAKEDEP " ", $j, "\n\n"; + } + close(MAKEDEP); +} + +sub writeDepFile +{ + my ($i, $j, $class, $depend, $source, $depend_source) = ""; + + open(MAKEDEP, ">$depout") || die "Could not open file ", $depout; + + # the class dependencies + foreach $i (@deps) + { + open(FILE, "<$i") || die "Could not open file ", $i, "\n"; + while() + { + chop; + ($class, $depend) = /(.+) : (.+)$/; + $source = $class; + $source =~ s/\.class$/\.java/; + if (($source eq $depend) || ($depend !~ /\.java$/)) + { + if ($depend =~ /^\.\.\/.+\.class$/) + { + $depend =~ s/^\.\.\///; + } + if (($depend =~ /\.java$/) && ($depend !~ /^\.\.\//)) + { + $depend = "../" . $depend; + } + print MAKEDEP $class, " : ", $depend, "\n"; + } + } + print MAKEDEP "\n"; + close(FILE); + } + close(MAKEDEP); +} + +sub findJavaFiles +{ + my ($file) = ""; + open(CLASSES, ") + { + chop; + $file = $_; + push @natives, $file; + } + close(CLASSES); +} + +sub findClassFiles +{ + my ($file) = ""; + open(CLASSES, ") + { + chop; + $file = $_; + $file =~ s/^\.\.\///; + push @natives, $file; + } + close(CLASSES); +} + +sub findNativeFiles +{ + my ($file) = ""; + open(CLASSES, ") + { + chop; + $file = $_; + if (hasNativeMethod($file)) + { + push @natives, $file; + } + + } + close(CLASSES); +} + +sub hasNativeMethod +{ + my ($file) = @_; + my ($line, $one, $two) = ""; + open(FILE, "<$file") || die "Could not open file ", $file, "\n"; + while() + { + chop; + $one = $two; + $two = $_; + + $line = $one . " " . $two; + if ( ($line =~ /^\s*public\s.*native\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*public\s.*native\s+\S+\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*protected\s.*native\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*protected\s.*native\s+\S+\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*private\s.*native\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*private\s.*native\s+\S+\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*abstract\s.*native\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*final\s.*native\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*synchronized\s.*native\s+\S+\s+\S+\s*\(/) || + ($line =~ /^\s*native\s.*/) ) + { + close(FILE); + return 1; + } + } + close(FILE); + return 0; +} + +sub findDepFiles +{ + + my ($dir) = @_; + my (@dirs) = (); + my (@local_deps) = (); + my (@entries) = (); + my ($i, $local_dep) = ""; + if (opendir(DIR, $dir)) + { + @entries = grep(-d "$dir/$_" && !/^\.\.?$/, readdir(DIR)); + foreach $i (@entries) + { + push @dirs, "$dir/$i"; + } + rewinddir(DIR); + @entries= grep(/\.u$/, readdir(DIR)); + closedir(DIR); + foreach $i (@entries) + { + push @local_deps, "$dir/$i"; + } + push @deps, @local_deps; + foreach $i (@dirs) + { + findDepFiles($i); + } + } +} + diff --git a/libjava/classpath/lib/org/ietf/jgss/ChannelBinding.class b/libjava/classpath/lib/org/ietf/jgss/ChannelBinding.class new file mode 100644 index 0000000000000000000000000000000000000000..75f6b0269184a9fa3b75df7e195615c1a5d04839 GIT binary patch literal 1653 zcwT)|+in|G6kW$NzGQH2P8{RLZBw9NkCT`*P%d#p<3yDrxl{s_hxTdgOznxx*w_<9 z5tORp1%3dfZ}8HW2vUi(h)bFlDM(0AuD`%%0PCEYI-#+6@HzYJS$prb*WUi|@2__N z%%BuSNFdW}*9wm9T`sKEI-SB|-Ev*KQF7c>$E`)73kuNm zikP&H#LJ+gqjpj^#DmL31SXkn3Ub5)4>S`W?V4XRFn4s+Q+8U4I^WHYX<%vEN#^ z8U!V?hx^Z6G+<&fiu}Xju6s_Su+VN>S2}S#gDFm!q)D5|0%oFkmQwcOCec|=pjlay zDjh1t1*ukeRAvOkMQNOp$1HcIZguK%l4^d-vQ9CMm+&%ss4BNu=Fj2gyxv@ISM76- z6n*5s@=nW&I6-YS?zD!4oGPt^oT<9|)Ey;)(({b-^)5otc|T#^LBBb*hyJPC7}~|~ zP44?Pl4gDzDRXig>03mFFwS#~nSm>edk-nRj|{G|?gzX0(-4gq`2Goo`XHQ>nE?Wn3 zj&^f$oBW(YDkCR(Eq@Q<2Ey8Aei!1rOg+ipSIEuFK7WA0XKD`_{~DG~Y2L>44Ma6g zR6niDrhH`DN2YybTABxu;iDTEOzImjlHm=6^-XQF%YT~t1AIgN-*T$ov7a3r!Cf-m zMTz$k?%_4uM}xPE?^S>Eeh=NbUBfBNvcmzi@f>|2X1I*!ahlpJp@5NX`MOtAZ z`Hu)xzQr$6!3$c^*ZHJ&<|b0(@{ySxie>6U$FII~z4&2BWTbEB(|`Ull_>oZLq+DU z%gA)#NGr$qeuF004)}?$pV{C8lKh3M`T%+SO4`4X-tSn%A2^RcRdW+QouIi8{b$&) QpiC2Zg;t36S@mV%U)r58!2kdN literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/ietf/jgss/GSSContext.class b/libjava/classpath/lib/org/ietf/jgss/GSSContext.class new file mode 100644 index 0000000000000000000000000000000000000000..9781403010f0a7dbe0c81773abf5f77f3fc7aab7 GIT binary patch literal 1929 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 H`1St*e8&3a literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/ietf/jgss/GSSManager.class b/libjava/classpath/lib/org/ietf/jgss/GSSManager.class new file mode 100644 index 0000000000000000000000000000000000000000..a30da157dbe2e09d36dbd6b14b2ab6d305c04fde GIT binary patch literal 2374 zcwU`W-*XdH6#g!RZdg*cApubogVnaS7`ttOU={nc-CVKI}jMT?YK@bFL2z*Yzicnyt34B z94Avaff0c*({bf`v$ie$2iA5~3ZzZXwyK+!@2GVLOazadhQMp)F#iRCQxzE$-9})! zHZ9H@nc>PwOtf>!DREATb3L(+Nu1FzB`_T()R1=5cY?iqsWVAo8Z&K&cYUue{a{bv zvSIepF9p8iRtlLYl*BoKixsz-v;Dn#;N|Gssylt|i?w=H$Ln}Q!+92{$FNkj8jTb# z;7x(k^c}8E&nin_;GEI#tWQ+XF^jh~yd`iZRw0FV6yp>bOM8t#*7{`1_HqjE!VoxF zB^1g8F1;ezP_3Y{$fhudD=d~PzwhnN)JxH}o28&3$1U!`_nU6u)a3H6E$e~fxjL@l zJq_0dCVNU*mu5`pl#N^EGJENOXfRGVxq#x=wcj{*zv z21nwUk9l*BL~!rF5gds#$rEf%+K+fXO&giG%JMjUp|j%o?fPW~_a<~Q+*(;FYsJE? zD0xlamMf0BrN(-Pcur-Pm<2CBsNV!WEq7)#%mqV+3@)@1AM~SQ%Zl~CHO05(Bc`s&s*St+Rv!>dl*@k zF^;K-nTS6C9U_EJu(P+=(DxM3CYD v@+DRyh#5iF29R}ZM3B1?S`TY@y$ruxsY^|YVv2d}JQAf#WaqSFv=arWx z-gxVs*TxGIF#Z7li+{m*-nJSTn!ruZd!F;0^FDn}(;vTfzXQ09#}axNM!a@2=h(rE z+(y&)bMuCwS(~;5fg!zNy|QvG%WdZL)eXB5FeqBJp4W8EtmsPy!%+EPx9+S>GxQUw z`23l^SgmXMN|9lhfCb&C&gPBcT-_)x)=C9}hX}6Z3kxN!SYIm5#pFRkjp|}ao8JfW zdzYv&PUV?K%W<9H2}457))<6>w??AV44FfUQW(IXf*}kuh%<3pQe7!!YrSANsUQiF zpH3@~qSF}#GQg+l z5}DVqT+ek#l=GUv$!-OFYuW#(;>x$Tyf*D#P_rwuG(PZ*pzXL#+N+w~Cm}+qBh$2l zDB&ZjJ6kpv+kHdyt@Js5p2Y2JdL2L1OD`ZeenlfQ46oB}*iRkqpArk2;`fp5#HEi| z#3)}LokscU!YIeFH;$<|_JuJ;bpau4^z$^#w=dl=sQ=r@Z803rYY literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/ietf/jgss/MessageProp.class b/libjava/classpath/lib/org/ietf/jgss/MessageProp.class new file mode 100644 index 0000000000000000000000000000000000000000..b6db46cc1aea24f2e240c25317ea25224a465be5 GIT binary patch literal 1738 zcwTi>O;Zy=5Pg$Rve}S`1ciVgevm9mL{StFtkP0b1%d^pN^VQC#>FMO>?V|4E%gU@ z_TbHn2Q5uezVxg_jMP*IBrD|VCXgNN?zA$ zPx9*($H^~fj-ytzCEK*32r;DA)h#t|sMSh-acx~I)fgh1rd3o823BB*S+>5lTvKZr z`K#oY>z1LHgda4GGDEmtb+k?LDyqd0-_Wb3%>i|%?b&*@!q7F}F4l}qQ?(hrs@G;2 zLfO?^k+$1rS(CufEhB|A@n;L-LvmiPY7gogYnr{Ht{EEVGfS#bRBfI6ZZK4Ps#E36 z{E_FLmJmdSv-eZi*<3M3)lSI>Bf_mA8Bui57m|V6t7x@{i%TMrLqZ3Ig=eXrU*#bYbaUp3v?@nl zmJ#FaO1iUXlw0AeG9(_Bb>|VEPwT^V8F4rNo@%wi(=ucp?xBLqb;~le4Xs*J?QJo8 z60|S7O25M4_C=e^X5B7ncXd92)IP1pcsfo~fgs(<4g|Q$WCgg!Vvo7IkC?6QrEAjqt}9bs0nM4C+WNqBIQ<8oS9)5XWTM* zQ5Fa*Uoh~YMcxFw5rlFx!6jrki*r8UK`;2NFZjG~U`k1c z8yHb~BMpqUwLQfVOhTB&Au*Z$s1o$g+=&dMyUtRg;{7ITOYdRvvYD_X@d~)bUw2Sg V{C$Unl@N307JuXX6tkl8+<%A2=l=iz literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/ietf/jgss/Oid.class b/libjava/classpath/lib/org/ietf/jgss/Oid.class new file mode 100644 index 0000000000000000000000000000000000000000..a9202919bc9d2968c138397adf4cdf683657dac8 GIT binary patch literal 4656 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 KPT$p>dw&4F{K2pQ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ACTIVITY_REQUIRED.class b/libjava/classpath/lib/org/omg/CORBA/ACTIVITY_REQUIRED.class new file mode 100644 index 0000000000000000000000000000000000000000..56d40116c7c9edd44ed1fb5c495938124fd2ea3f GIT binary patch literal 972 zcwUW?-)_?|6vjXI&(f5PjnZ|%)~$m9T?a(mAfY0pEe%p2ZAaS`xSG<=DnU&$B`E^l zg@@Q~khtIhcpxN%ggADpNz)4B!a2vz=im8!?C-z7egp6jRRt-A^&lMSfj82Pc4v1- z-!Xbt-|D?N=$J3}t&Z7HkYOmF6?H#GG55?5Lw*#yfv;eWq4>^u@91uzcX{YKWA~FY z7;}cjNKX4aj7Yg}H5k})hIu3KquBA|zB8Wi>~Z>yPSNeTIw?9C8(lC@8qXuy)p&5qL*qE=+Y}C!RzauA<1G8SUntZT8H@L95MB zvH!iRo<|xb4H}ji9?dXfT?7zL7i`z(t%*0_VJ~S$!48Jh3x_&F^XXzHe(OdI8}Qlcc{3Lvvpl!+sFYg681$p~C_38^H)Q&%c(;+6!f*hG=k0=zs0_XwP!n5%8C-k-r8P`8GXTT67O+#GJp T(~3+~NXbl85S_jwId}g6XOF_H literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ARG_IN.class b/libjava/classpath/lib/org/omg/CORBA/ARG_IN.class new file mode 100644 index 0000000000000000000000000000000000000000..81eb85f17fe86022590ff353cc8c2ffd3096eb1b GIT binary patch literal 156 zcwRg8Z`VEs1_nb0ZgvJHMh21mqICWI+;n|s{~#wvea9g8cuzle1{OvJfvm)`ME#t^ zymWp4q^#8B5=I8rvc#OyR7M6yPeuk_=ls0llEl1{FpwBC&`3r`2Cm@z(xT*4x6B-% kDsG5jdLVPyfSMSz00Qa#U#sB~S literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ARG_INOUT.class b/libjava/classpath/lib/org/omg/CORBA/ARG_INOUT.class new file mode 100644 index 0000000000000000000000000000000000000000..e78243692101a57c71d13f50595873f5b365aae5 GIT binary patch literal 162 zcwRg8Z`VEs1_nb0ZgvJHMh5ZxqICWI+;n|s{~#wvea9g8cuzn7&=7V87Dfhvti-ZJ z{hY+SbbbG%tkmQZMh4ch#GKMpMg~StMh0Hz{Ji3l#JrL)kQg)2RAxp7uHgLAqU2P! o%p9O9KDc>$AfwoT`WQg!7#SoPSQ*%WG&_*T#J~X-;{>z002S{cz5oCK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ARG_OUT.class b/libjava/classpath/lib/org/omg/CORBA/ARG_OUT.class new file mode 100644 index 0000000000000000000000000000000000000000..32feb6b4e9584c30358e53d23db1244365477a1e GIT binary patch literal 158 zcwRg8Z`VEs1_nb0ZgvJHMh4ORqICWI+;n|s{~#wvea9g8c>mB4b_Nzk27#=^vPAuy z#JqHU|D>$ck1MPMp#=@>x6FnBLO#W^tA1TN)6 zg{~p0+f;LC#V}hPr_y%tu1R27UCBq)!yL=p54TT??N-N;_uq)#U*w)$f&u!pqcsT3 zsy)(M*(WeYPaIp*or-%31m;5A?h2B{vnM)jIoRBG46YJb@cX5bnM!ddTT1TciUmA) zk9o&7Oxb9>j#?6!L)ReHLJt>fN(}i>alS`Yf@58%{fSTqcc{yelF;@69tB6sQpTujgHcR-x$);h znWJ)E9XHaX@7~3_TpbajyXn|%Qn#1KUbIoe#3#m?@>hd1B7`4x;OwC>AF+q6O$dHT z|5t+UXYyw|$O$r@Ga!?KQC9nMkg}K98Tqvf_+gtwh%?DA1OxaQFe3bgWT%S7vikf5KxCD9&TQY~3Ohrw}s2CeXEz3>vW@SbV z52n0ZOy-1q>p~urH<#WHF_zxZb*D0pVysn;Tsdt-id%k9MxRLxe!$%Q%iGCP`F=9b zUfk%2O+2;@e8q~0YGg#;o0V&`Y;|m%ZW>HQL#V~utVPOIz~>wE!2rbY>N30nakRtu zNz?};@E%^{*9HDgAd)~!&<@;u36sBamrM9N$ia7E8h=Mz2bh6bU>{De!W_5rNX_g5 zT;cXLcpW|8KwkyzBL2S#*O2czus;^;4&E`Yp+8{h(M!1TS0G+ZiZ|rO!)p~*(97e! zc_F5Dm_kk zYk_F%@JRr<2O9z8Q%DAo6r=-42C@NUGsOH^i1~hqCl~6+R*3lln$}7NF?U z#yZ~hMfZlR@ZQY2K0+JpY6m_CCgBp4fn11bHIiu;2xj;Y_IRdWz?Z^4;&vat;`VF! zhTCtU!tHmU@rtUTiwriAyZ@XFbe_SY>*LFy2JYEYc+9m@h57}ndJHiWvySlV2)`q-ek`g!5q_ueOgicB5qU29_Z+8<*&pEr@6S&> H0= zTkCG!S|Lcwv;%^U6;DZ^uY;>Kn>*Zp#xRi0?J&een1W%3`GyljSfA)>bberLdc4Vf z-m?B?P;n7s3Pu^mdnByC;Z9x0I3^g9{)bR#x>u+~t!PMLQpXgg3A-8zn$DgL&h4mR zxTHhDAj5ExJJ#EvS+%_F(3H`lTQlt))8k?<4>b(nn&8)|LVuSZ5c_FA!j_OL>E6u3 ztT62j9V#@2At92Rb|tbmQK7EX85Vj&JAHfY><50>JmS)jLqS2FVfO!c9k+0snk7<% zK2BtFXZAC}MHI>GM}<%=TFa0*MR#I?l9i7h_X(9fx3*H?cNcdb4;4IMnCl}z$0N)# zs4`1fUecA{X$bqu$e@+oz^hpsTns>})5}G1v*;4ibkmbS3>h&sbTOG|Bdtl=U4Tye zA=)hwPW)0oka~BBkz=I4AoH0{Vz^BI8m+(+!Y<>AJQYk+o%nmSGFlV)V_fYGdx1D! z$}l|y;W}m_g4u{*gOCEN34(m#8|MD8q@=h_V%Z|`WyzEd(Gin)o2N&JxQT^`b1mXj z^Mxa1yC_3p74qQy2|Beyr(zL?q`M7#F4?CY9q5uE@ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/AnySeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/AnySeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..6e86ff43e8ba46777d4b5b7d210aa31dbc313b29 GIT binary patch literal 2256 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BAD_POLICY_TYPE.class b/libjava/classpath/lib/org/omg/CORBA/BAD_POLICY_TYPE.class new file mode 100644 index 0000000000000000000000000000000000000000..aef3c3c78dd18a847925819d80dda5d8394a9a04 GIT binary patch literal 174 zcwRg8Z`VEs1_nb0ZgvJHMh4mZqICWI+;n|s{~#wveJ4kk_yB(&Pv^+^kjMa6b_Nzk z27#=^vPAuy#JqHU|D>$cVXVo1L|e~sb*x5WME}r1Jdjuy$l>+F-|a>3jklVC2;@% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BAD_POLICY_VALUE.class b/libjava/classpath/lib/org/omg/CORBA/BAD_POLICY_VALUE.class new file mode 100644 index 0000000000000000000000000000000000000000..b796febb36154a9af17ec2cb14270e684ceed422 GIT binary patch literal 176 zcwRg8Z`VEs1_nb0ZgvJHMh3b3qICWI+;n|s{~#wveJ4kk_yB(&Pv^+^Fh`$IS9S&# zMh1bb#Ii*FoW#6zegCAa)Z`LI2G+8~oYGWA2F74U243gHq)$ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BAD_QOS.class b/libjava/classpath/lib/org/omg/CORBA/BAD_QOS.class new file mode 100644 index 0000000000000000000000000000000000000000..733126a4e224cf3e340484472e6bac9f94ae4b6d GIT binary patch literal 942 zcwUW?+iuf95QhKFp^k$~+mJRuPk|OlQ^4W|2?Ze~PLKjl1309Y)h1m9qu8!&2LTVk zqaeWzhzlNohk!Rh%&x6U72$BPp4r`hzxj8(-+q4i3g8ZE8Zr#4K{zo3Z(>^gXRW5$ zYPOG__8kp5hRw5E&YLI}Ugz~#oWyS6Ygk|?zvQpD=?11FLYGh7w|q1e49k(44n-J| z@_Dz-z#cIyT7e(M+>eKRIurTkkKWEZlc}H-12FYPKRyxj!+TICT9^-rGgR%rpK275#hL*F z6^6TWjCB76kWQCu*B1vfZzRG&(u|TFjHwr#IzsbwF&DpZBZi7SxBU$U%@a|?C+hrf zP8hPayxe3bNwKsKhb5-$B9B5Q}aW?qrhh9U)i-)c>Xrxwd%i{D} zs3eU%jmywbps3R;%AklGVEy0x(JRoq6Vxhjjacd5jQ@2KnTTgVS+ybtt+saH<$f!(Kke$A+ HI5&O)u)Vm9 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BAD_TYPECODE.class b/libjava/classpath/lib/org/omg/CORBA/BAD_TYPECODE.class new file mode 100644 index 0000000000000000000000000000000000000000..ea7dc21e8e531d0c9ee409faa1cda521da0bf1ce GIT binary patch literal 957 zcwUW?U2oGc6oy~-V`)mpw$g2|b)~?7uA@Y|K|)1{HZ4-Ouuk+t;;LkwRf3v$N>T*; zE4V@8f*-)&+5N<^Q%y{Cz=eH|?bnZAAN%L|_a6ZEP}Y!O*bu?k6yDghIb07~!wy5q{`;<47D=ob zFtE<>WR8*czW~zdlI{BZaOxfNpcfY-XNwWl!l8=Lcs7}e-nk(|!M^$pY7Cmk!_XNk z$RBnXlI5L21|-Gi1AB8jSc$SGrvJ-Opp` zfIbhMOD#=p0~#_Eb^25ZWRarWz#{e6X{JHr1jTG+H~AGy->~{c>2At7wNj^@4cww^ zEmjh76Hr+JTf~vP;*9rH@qufV-0drX`xFlp(1@iopv2snVGanBq^J{S^U)kgkM7i0 zkWwtXaHZoe?kTX2ZRANU!Rs?{kH9I4naXaVI)^)?YQ0t5O02u!W^iBKR%Y^qgv#Uz KveFL}=ix6yq`GMU literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BooleanHolder.class b/libjava/classpath/lib/org/omg/CORBA/BooleanHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..c02b7bd97536442c2bf2a1279774335e7b73d3b6 GIT binary patch literal 1356 zcwUWDe^1j;6g>~NmDVy45n+hRCbA8s{=^?l<5)s8PG^J=#XpvAYsSN_T}p@X5B*Gv z3W+9u06&!RzSp|3#p#+fukZHUbI(2Zy`R6n{Qz(c_Z18=%(`CPa2s`_P-lEIwu}wmv&@G0WKjKbC7@%N zE_NquzH3?qw`Q#}ME6a*MR2ywFp{g<+~NKMhT(K(iyP{<6_9?ka@jc_Y z#~a+|`_>;m6(?~@!34u(PrXjyus~X}sqhlH~46$4&Y9{@6 zaAr#dd8tFe2*X&BJJz#SqhfiRffW-)w`$s3rpLuz1~m-hyx`ZVOMi#&G0YYJF${7l zlHLvqUDTmMV;B{(xM`O|3!`Onzs9iGE3-YH$4;~52SXy!8ZuZ?kYz~zAFtywt}y7L zM8`cE6U{Bk1&)LbQdj5{BV{zdFG95vD#P@rfcsI4k1vf1WZQ68;|MZ5AFdq^mLxOce3almwva?^2>J{*kShlHw*OF-}K!;4?Yk^)N;u01^&V0zJ zW|t0;?xGBY)yapQV{~epPQ@||Nq1E`Dd?8N9wP@xd~7qtWUP6ty-2&g>(ZAlDNETe ZNFCy4uax&B9daLPMP4_=>e*nO)1Z&1!Rnw|s`g4aar-n+!v_e4Qaa?X|g% zA*2ipBf*faI4-}_TWxYtvzlGbFjDbaR<~{mM}CK!alhlNGh{0VvnVlW{IM@A8TwQ% zVm;|@mhwxBIx-m5Fv5`8b8g@SP7;R@WO>0C+*%DdT*~DmfNP%c<(b(xD`_}&P_evj zn~N02aK^w{oMRZ?u(~}$k1Z`SFpFVy0Bbtw9GJa=C9{~*W;j7a`$`Zu$F)m37~VE; z5tn2&H`gfS**yu>XkRKs)>n|%kYgAdY+)daaScUMupeqh2u~#O4%L31n62}y;Ic+p zsb03(vnO;EU`pxVWhmtKvfQ;(>j>|WDrvs1;XSJVU?%fc>!D?HbINMZIWDCi%+;uLfUrrC|m!-vgT_?FdmZU!+xpKiy1|Wmb;#7tIJuI z7+)KhLxuWZoi&60TDF9+HtA+j>gBRzJ?uy{hKq-xr(vF9+;)4Rk?g$|DY0%&O59h% zq;L;44GYx15#^?(PzLUUBJ2LcSG1@#qZ%tq>fI{7k#aQ{&O|F1+NdlZ3CHKE5BEu< z+VlH)1iF8RWewlcRXT)=fgeB@T32zxO2>2M0H$T2ElWKboJMM$@DvU;{h_!~kOi+N zTKtwH+wWxbU7V2DDn3q6z!2n5qZK{BG-~u^(#&WcE^H(DJ1t_+X-ufi>o`KA5g5>X zl;#wUAssr;&>W-rXkiP-{~=9^f8z9$*C4t&oJA641vC~I;|;t?bCMv><1KfMY798tv2xuJM{}l2-5I1I6}3d=x_8 zCu?b+-oaR-xQ*+#3s<-BX+P-zu0u`^tydIWHgLgB#aXUC$2rA0fiH-Cj8>DF+QnYx zn4yA9{}rzkibKWcTPPR%MG1oVWZomNja`Mwkoz4-fpq!zpn}ko9YPmF`Ht+M+V}%^ zxACA48p!pt0*k4%7qJvN&V`)P1xe-GkWw?6_AdnTE3JRq#V8GqAH%c*Mhv#{>--DZ Cec9ar literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BooleanSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/BooleanSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..894048b478202ded676791b5e1136f7e747d611e GIT binary patch literal 1506 zcwUWDX;afs6g{sr4Xt63wV)zPD_xX`yMkz2MXDW{v9*ryp_8_;1Ve%$#bMO{qz=oB zI{W~Cl;eF#ENw+$I(^H{yXTyH?t4FfeLDm&izgy{3}dEMlg*8qoLPR6PRVK0)K$gE ztM8Ufy{cLw{0zP8%C;iwicyo7%j;^z77<{WXwBR-En6w;s+_kiRoUQ624P##>oogT zR~S0&olUi3R%t(#s~L4K@lSM1PFa?+Q=n~zwsQ=DdCk!51%{4TyvX3^;Sf5|BjF4r z5obxni8w*@V^G8Z!$7OxLgtxfR3!{ym?31pEtTEc8HRGlotz7y7bBc{lwl-x{F!($ z2!`_#f(SA63u-FK1R1y{K3k-+Mv7y{2t3jOYH}3vxt=t**EfQxZgU za!FAMmoUu`+*0kFYSipCLX2g(V_n=oP0>qU8-xYEIv>9OIgV>$pMHJKsE?OA2ojgGe=H9l3(W(HJ79QOB#{ zEoT^w#oL?FbcagsEzPD=v47UQT(?_`p2vcS`{eN{5+pp}=7$^>r)-{|l91*F_q*Y? ziUXztzz{u^Btp-db*rK-YW%hgw%>~x{ygbHli&0g;G>c520ijVehq0BC_*oW#xB}r z;inbQpEy8w;yZd@e?{K`!h1OPg~C2ua8ms=F435x^fc|CVvHh^n~IAVrJZ9Bn zjwX`(NdE8>S&}n#cyzPJQ@bTr$e}921QNlUCdz1oGK!nHJxoiH-537!pA|HJXTWU&^MgDP6K{jepA%i3fjxKg#&F z^y0@J-n_SOc4o4lU+*6PPSJ5tVQ4EI`DzvUle_!zl|NQ_vP>OV3`ajVkEzhp*HEl8 zsS*bJQYJDRF;si~IfFG(OW~r5-3Dr~8Cro%#BIJ>2>rkpv0(5574mq_wKQ{iX=P6` zW#|U~#TYVldciY);eO1M$e(3eCeg4zH%9x$s7XPz;HgRE{be$^GnMO5+(=_q-^!jC z9(@31hdCAMC^J=urZYlDSQ~7x^H!`~sxBdL4ht8kQ`gv%2=@q$K(iDW5z}z(!SM#I Z-wM~noE8e*Evr;8-2uG9{IGb_{sz)^PPhO7 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ByteHolder.class b/libjava/classpath/lib/org/omg/CORBA/ByteHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..ec4543706310ad92b23e7bbbf64959121720cbd2 GIT binary patch literal 1339 zcwUWDYflqF6g>lNmo5uM#9E3kK%@`t`oss-NJ)ssYK;)$<3qD;H)U|!ZI)>bAM`gV zDkPft1N>3OJJW5Ujg8%8Gdp+BJ@?#mXMX?r@e9BWJk&745Ock%>DH>|df`=W&CKl! z`-$sRY)?agVQSZES*Byvt7f6JYnO$F5W{?LPQ&$tRdQ@|Q+T#jlb;NlD7s}~3#yRs zg>UUQ>~*(duQCK%meV9K%Q1{)%MPz|@rYqGk=$koNRWmI!&0^0^pgc8mnptyzVvvF z3*NFjd|{lzX${j1GkpcupYeLdzzoh%8S%a&EZQ$j;Z}7_;;exfW*I_RU(#&i-{9nS z7z}d;G>kDs^1N=pXx2)$x7D^`I`5V(XWR0)+^e9DQCyV#2K6X*_#Q(%KWGYMQXr9Q zSGjB;44q*@YT}kt^xX><$@U7va=*szV4l_+P0^kXDb|rhT0@Fq;s1C8S8!_ zX(!|=1f8>?YLXe7ZqqB<8(dB}ay+bzye)LI$RT=z7(rZ~3%YGgPL9?P?Z#oyeu8!@ zgp<$YPfWf!z|;|u5Z)W zv|YQq*J?L94|lh_t-50y$S|z_s&n5)vGDCTeQ_9jGB7a3P<+W>^QtGSt_VFo^xpCP zpz5nU)f53#>^MYebTx`wWj~v zqn-D$MA>|zB;qolvlXloNAcFiyjz+NoT?Pg{{gs5@sS2viF6E9m$2r9^n_%EUS@YOsk76iKbX3uADXz!{3U%GS!Y30y(ldak*ZM0d>1;gYUa RW$J{K&eRF2)0Z{p%1_o%!_5Ey literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/COMM_FAILURE.class b/libjava/classpath/lib/org/omg/CORBA/COMM_FAILURE.class new file mode 100644 index 0000000000000000000000000000000000000000..b290135f46946a41a828f833993cb16ad697b62b GIT binary patch literal 957 zcwUW?U2YRG6orqINhcGgv<+zkZ5jd;NK+u<1qlTqC21<9owlg?5pTgwtuQDvu4X0( zSOVK%1@MBz0}Eg)>;ZA@iKkK*Z%h7%U1voQ8tlaSe3!3D!oy)d3e;Q zQ@_7I*r~Uj-cieh!La`8dgpBz39t2LC{80+`X=TWaFq-m2SXe~X#1cdCf^+Gej)gMSiFh;#ZCpW)!KNEMb6VZj_Tb=O?JlB^2Jx80t8paB7LN5>q9!j4f(~*;4D0W=sa_PLE z2g(6`9y*s=irOknq$yhTsS?P*pxnkh^_OX;LE{9)Ol2$i2@9XG{88(!syV$PKLB?r?rESMOQ%4ExiQ7;5hh8|BFx&o8IUgB zsiz^OSa{~j!cE-LU<(__ky?TCQ*f8S2E}w`t8jk?cR()Cmcl MsS{MC?`Y25pNs6ffB*mh literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CTX_RESTRICT_SCOPE.class b/libjava/classpath/lib/org/omg/CORBA/CTX_RESTRICT_SCOPE.class new file mode 100644 index 0000000000000000000000000000000000000000..279f1c31ed6cd1582306b16609ef24e95c286e98 GIT binary patch literal 180 zcwRg8Z`VEs1_nb0ZgvJHMh1oaqICWI+;n|s{~#wvedmyf_#oHdkRVUzkoaI{{{UBZ z1{OvJfvm)`ME#t^ymWp4q^#8B5=I8rvc#OyR7M6yPeuk_=ls0llEl1{FpwBC(0G1E y2Cm@z(xT*4x6B-%DsfDM^+0B_0S#aPX<%fKWME}r1Jdk39uorxSd0_Q<^lkz%O`pO literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CharHolder.class b/libjava/classpath/lib/org/omg/CORBA/CharHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..c24adb8cac89d3df7aa1691d3035458fe17a59ce GIT binary patch literal 1331 zcwUWDe{a%I6g_VPy4H@(Igv4cZ8%pzsm|Xr%_hmBkqqM&%>0KGsO-%`Nmno?`ki#@ zmT2M!@Ix8zdsH@vM4Gg(@8;Zd&pr3OU%$Wq1aK3N6pS&%U9WDsjk=jHzI?K7=65ac zsq55iPeF)bde7=ureihhX0ftoSA7K$hK2r|mh1Ue#j(vT-?OcT_+^OrdkhL>{D`;;``4;;FdRPq<%^Cj&r%Eaq z=5;8TV3;cKroGv2RBUg%Yr;&yty)gW^0?T`poVc=68t)~=u8^Z@F!+YHx5c->KtKWyMXQTSW%Z8^#zC;#AO0V`6T!Mrd~mI_)QEw?a7a zM1LTtA@6(X);IpACmIMsCK5Jn$m zSJ)f!pnif*?a`^o!jyD3q>F+s8}t}DK;l!6DI#O;iS|Oh_Ew}XeNr;%uSg!^_Mnsx SB<14}DG$hWQ937cR{sDz`w&h5 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CharSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/CharSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..bdeee597f2a89feeb9ad57c20bd8fc2b5e9aea13 GIT binary patch literal 2058 zcwUWFZFd?)6n=&P3)^i8Nljm3mDIlQQnS{#s?=(Nslm_^8;WAoxWKqPCU5x+@tcn8__r7)vbj1#wB)t9jtL|U z#1LmlRUDV!?QJ!=s9DV}XPByZEvs9%gd@Mh&8XjTb{H;H{)0l1LF12nVad2>vO}f| z?p`ssUeb}qw1z2$^pSG|r||+22thX1e8H`)fWYN!ZU}JO6TUn%`({NAXU3Mv>$bT_ zVg~07oX0FfY}e}c2s*M}Vqg}-^a#py(ixw(!X%rB(`GnL6#D`YE625qIv8Fta0!=X z5%;z!-uWY`)M#G{L)KT3(~xDD8Es)8gE`|5jJGGAR9;#yI>Kb0B%8zEUYPB9%Ha8co_KM?D`Vsz!;p&*o zhODV%amU@^f;#2ws7_fg%* zUTYzI&e%5)t=u^ zB2fG*Y-sqJF3~Yu415E+$GVCW);O9i2QV!IZCT{W;B>IcaZiCzuOEvTMOgECqQ!4J z>cM>O6`Yq>DLO~jegg8R(TZML8a4VdX=XIX@&`yfp+y8bjd8Vk11D%S0t1>)(wxL8 zq(bKn9z+b;!w~^`?T$1TMIxILp-sm{pwP_>kB~XtjXF0roP-G!>-u zd#sW#Ocb8(qg?10B?#h^d5^$$2MUuW_q&h+>GJz-N8X yK(6ll7^T4RZJ2hzh{0BVoqqtAVb2u+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CharSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/CharSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..308a92667f97648d0d43b2d4acc4765ae82a1f93 GIT binary patch literal 1488 zcwUWDe^1j;6g_XOE1Lx-APf){*reN(ioX>^M-`balDIiz_+u$s9mUdO=`ck7PHGSm zHGBX+l<~f{jtx=BviIZm-E+=8_r0ILzU>2;#$yp7h7sGTEB1O_QJ0?2=M;5SbBg-g zMcb_Dj)*Wrd`;WZ6jQV6%F@c3UUfx87{=PuHf+b$R!m(fx{j``^Cg3@rI`(yL(3{d zr@OtOSM3_@Ckl0|5hVVJZYnv)(Y8ypRcSlJ5ScYB!<}R3kke&`Fb~JjfgTB`Ac;6l zB96t0q7P?8^fUCg3ofZo4XY+$0D}yo`=(N*!Wjk%M;)7qA&w!=JIpX7AAKfWj)LK= zgeYPRJq5$kpEcH3bf@II(Oa;qnpxHygYSc2*j+U?8Ac2L=>mBn$jhpaKOsRxC)bmb za1oOX(M{bg=vLibB{(_Hz3Sr58JbxM8X#1tDK&=4!_u2=%Uc@_*Y6z_62m1-iMY%# ze*Ad}3a*e0PEj#!tL}9y&oQn_xQ6RwhWCv-T+w)U$Z;wt?`ahb4#ki>i8Njc?=-`( zoIc!!ma9{F=NK-XlK)xoQp0VpcouUa?vcSKNRV)!J0J5{yqbA_PQpB|HtvU8%Z=Dx zHbd$}dI-8`H=L@zV0bsD?K({H_ejr|Y^J|}5RG&t=t=kTt4Fgy5qcstcF``6Fs*>T z%pSTk-w}WH1-*Mne8tFT3WqT2rG{x-q%lY7^R$10a}<&MRGh~JnmO!P0Bh3O5Y5TI zVKdpU7|-m`Vh7{<@v+vYe?SpqoCL+Apz64%Lt#kR)EWP^OxcDcrzKkMb672b7ApCuceIrzT{?3tBBs y2~DT&;BJsy3iKwjfvA}_xepE`c2i4%_teG@U$p%4{m@&YSdPJ?T@ND=h!$-5D>}PnK?7xd^6|U{rA5={sQnGzVc## zVZyRE6sx|Wq|}vULP=TmMoo7N%gj5P(`tI*W;nK~ZD~qPGdC2qys1|lFFXt&A6wPYq}RchVWs`hGjeaOv$Em8PhSGZGvoyqJnNWsn^YHnt@$ocr#_0O-D1G zf>vwk(of%PJ$3!_u*EP~N~w#>xy))NT`Fesl$~|a6rhs6lO>f08Nv4j7Zb%~hQ|ju z{$Z4G?$zVR8RUL=hM^TMmD<$X)d8K%Q9O)OqFpBEo8j2=!( zCekH!IkS>j&8kaYe8h0_Ku&qbHq4D=%cxa#+lR{xp{z;0jcT~k0}nR^dN_bfnCF~7 zVHl3&j-te)1)lM#jL(pu^=XZUZdMt_IPsUXjPr_=j5O#XeU8;RByC4tETPn2HGpTNvmhDB3?&6>%VcXhv)~xDx)s~~KC#{xQZD#IP^ah`ZA#gAr381VI z&+*(V78mErxFKT&q*|$aJ0zT}4>uY7T{OMw!y2jFw488Xs7RuyYujbLKX{8_%6RFn z4e=UQs7WAiwd{(%U~nZ3AHDMPd}R8V5E%?Wf){>-=*Q{4!QVM>RSsgP=N}{gtv)|U z{_#Hl1o@UylP^j;n9V;y^mjpEj{cve5r7-iV3}yG5y1jcxI>L@lm4nC znhGxC1Dq2T{70{Bm&gKnJQj%U;hos%GbjhRgWw;cO`=+(4s}sK(#fVJj)(yQxFFWy z$NSXb`EZiRn%zM(bfLYrkBh~9Tq*`X-a|aJiz~ZG?qMM}7rgompU?eGWqdy#T<<2MFV5Oyd_?^Fu`OtLQFwaJy?@T(2jRJ#6v- literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CompletionStatusHelper.class b/libjava/classpath/lib/org/omg/CORBA/CompletionStatusHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..dc6128212442aee0cbd5516c40bf755e29d6ce41 GIT binary patch literal 2021 zcwUWFX;TwH5Pd_A-Nf|@c;N-2n4l8zmf#UWkVqiNA{wvM62`bzvKu!WmC{mwlKKHD ztMmu>qbz%dEh9-V$%i?5=XJk+J=6L1`} zAjq&gYg&B1URmMJlCe_e43Vr|G|J0{V~V|J^t&(28pCk58!ib3g}-$jLlC$eZNen2 zwM49gpF|jY(W@ZBu(t)Rp%42QG%rMIAKNww!QoDvC;EXFVm`V zhX`G1r&}k6v1K8_DGkFyp}=dST<1c{sD>Cu788|UxTxR)!->xBG+Yvyg#-gHi-0LU(=+LY4IO{u zm@eJunQhtU>TUzjiM>#K91{x2^-vcMHQW$|2ul`T20>dMU^vwkB?8oBa8a|hD&^82 zZB}`S?Bb~>6ijXD3!9fx#WcgtRBmn|n_fy!74m6a#SFcvhG{;h;x6@vhGj09pG=34 z#k_(!h65$5?nTQvD~r5Fo{KJD)sVvil}M*JB$aKoJ{cOQ>H1DK2 zgk9L}fiHMqbz~iTHn9J56Mpg^yow_@D)FSchaZw(0AFOF89FPWJrZz29u$BiS)^^` z%sNi4<8*^@Sblg&aq<$n-vghKQN`*k&XJoCMrG2?{Li=Hzq*D0Wn7VduHxD@bgnnk zc||a13!R&|<dcVQ5 mpO^yg(TjKV$Mlgj{zUnH!~j10<=#hidyFTvV|Xf&&;9^1-`^Vm literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Context.class b/libjava/classpath/lib/org/omg/CORBA/Context.class new file mode 100644 index 0000000000000000000000000000000000000000..6ceb2a9dd26f5f9f1e84bfb462c7ed4d8cae4609 GIT binary patch literal 687 zcwU8)%}T>S6ot>U>5sM5T3faLfxA?}Ag-h;Xh9G{3s$<7X*$Fy=|qyW=wrDOT=)P! zlz1~ODjGG5`R)woa?Z@n>)Z1SfCFsjkYcF$fou6A*J^dH&d;otuOe|D@|JZ8mxgM#~?F0@9c(B7-c$qAitZk4JqGT=Tvs7%H~!aIeP$ z8SiI@MszDfhE+S!yva~>rsa*|BhpvRhW#0)8wFCiS``Q$i5urudIN?%^QWlst3_!b zJVDJ9?u`Y7sU>yO9Sg3AK13%8qRanX+dW%`v1#^>2SU+9*3CbXh2-d~Su_SS!Sq}6 znR=Lp4Znn~o5?Y>u1w$>=5uZ7+T@K0eWP?+v(}|ZFO|uI3~8Y>BDLaS=dYZ>zgb7($w;jh z9u67mzkU0(DyBScCQ`k!`DhP$_+!1yB5^Bi=ITbeGwb1;g6v^Wi8^{eRgb2CkXg3- yf~{w23h=4AIeCE{s^u>M;V$e~@1c@o75h2Xa6pPWX&k}^F-JJwWau{Y%_pD1XJGmO literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Current.class b/libjava/classpath/lib/org/omg/CORBA/Current.class new file mode 100644 index 0000000000000000000000000000000000000000..59062f75d15f540ddcf6421c34c816b48d1a028f GIT binary patch literal 216 zcwRg8Z`VEs1_nb0UUmj1Mh4ORqICWI+;n|s{~#wvedp4mqSU++b_Nzk27#=^vPAuy z#JqHU|D>$cWS}S;BZCO42AB*7BZC5}OhJB8Nn%n?s=lX-k855@W=SPG0~aHMJXQ<+ z3sQ>`OEUBGiWwQWg7Zs@l2hF>b5a=@c%TaOK#l=g&&a?Ggscqg44e!gz{tQ2B$*g^ E0P5X1N&o-= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CurrentHelper$_CurrentStub.class b/libjava/classpath/lib/org/omg/CORBA/CurrentHelper$_CurrentStub.class new file mode 100644 index 0000000000000000000000000000000000000000..6a24ac2351ec15a545294a318140781856abc99d GIT binary patch literal 736 zcwUW?+fLg+5QhJ8+&DGnOj=4>+CVNGkZSdUt5lWRR0xU%5eyHudH^nV#{cd=-^{Lj`RnWgz&q3|7z8&_p_dFouerDX>7&;iDjLJ7t9GM4%Sq2~JkA$=B+ z2m>t|^)|t5CVgR}fC&c{974gZw`~xn989A`nCy&%?)38-!n7}Au{$1gg*r%aggHOy z1yMUtGS&H}sSo9du;xGZ@(n`irc3p~;kiXe_PIsbt$*{6g71MB1##%Lw32byu<(K~ z^XImW3SL=wNvPa2mxE=zCK$3$Sa9oq!wGgP8LOVyl-UE^seYT<3C?yL3)PH*(Ma%= z&h5M64L@*!*AxCt49*rx9G|kF$63`~439b1)@%7|xhh zC1F-8iF9stDV0b!EQ=fV4X)R?CBesVWK+GbCUn)PByz<~Ua}biS2RPj7a6?KSb@Qp zHp@H=FG4c>2rwMZY6f3vREykNQ;Rxhh-A%@suxsC6W{Kl&)(4L3}>_ZNJt8^tr}UM zj>ftS*Jxc(Cqp=jV-g|^Cn`q6-OX9WRbIC(tz`4Ej1e4X2<0`SqI26c7>;$J(U1&- zAY`1xDF%;LW*8yTcKmrlGb+g-&M-)>%rMU4MG5B^j`rZm7{fR*l`O8>T+s}hTldrw zSL_nQVzd{zcV%GAR0YkbbBoGxG1_I6GPaWalbVbb!Z?qYCA`!ln7m{}5n~u`A}i18 zeX5(Fxsepb_o~KLZ!(1fr@$(?pBSKplE^=|Emcrl=odqG@Xs7Y2y-$n;T48ME<{W0 z$(}xO)r#W2CgXLyLAf(j%Q7D@BnE{xfI5hI>e$S3c7gV0giXi(!raWP1d8l6#!ajcg;L?RQsz3ZP-int_9VRpu6kE_Kads@e_z!bL>bPT4XebjYtGZr(IYdWe~Bq$ z7~D$hYQ4_s36b}9j&Ga}x)$DXyo(`Uf6D7glPuu62=_|$K!ZUVAAzoq!qCih)?fe>T#D} zg%~#+ztN@@;+S^W0=R&Sgb~7wBVS-$a>EG5cQE?|ueMb*Bl&DkBtaJ`B;GXFf700j zyphY@u3zjCPxqwj@Fj&V*5>2?z|Xehe`DbhvHyjI?Kq|4H(c@HM+`s3(t2ch7uWx! zt;`PI%|1nLeR>z~wP_|u5%3j!_?jrcp)7xk2)@HPd{0l$50vGHd-5=kHM|dz`w$BF zz{$ghSnrdE+kNuzQ%4>YeBy+qqS&t{rS6*iOf~tXqb3{BoV*3F>D0u7PaPi}RmY3b Jjm2Of{6F|3Ibi?* literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CurrentHolder.class b/libjava/classpath/lib/org/omg/CORBA/CurrentHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..04b399deb89f8a7feae84926a03bf624c3e93fc9 GIT binary patch literal 1185 zcwUW@!EVz)5QhJ4ofsR_mKIuQDNtx>;y^6Ku}~dt>D3JRM^QCf|!KlSOZet$T99Xa!7VAO8-zS3(7p;`JT#vhc*!D%B-m^nPehfY_ zY+jxxt%b6!mvV%Z+ZGsZI52UA!BLt5l|-vAoKi(ShTZAtam`23Fp+8DgtBoP8z$Cs zTg$^C7Y^=Vla#0I7qhW*`&bB+8^iW27;5|JXAwxMt(2R$k;v(y9y-{@4kgQiU(Obs z+jG(pYe$BinMmp`oYVIUI0=ShQSou#`pya?Cq8w4gJ55?my)%-sZjvk|Viju{^B`kdZe@g96UbCplR{b- zaMl=S;V$lJ+tr8h1>%lN{V5>}p&IMi#2j`87Dfhv zti-ZJ{hY+SbbbG%tkmQZMh5m=h&&^MvW5?;ewW0OME}x~g3^-UlA_eaTx-oRMh4E( zJh%=eY&tyiP&IG`=a&{Gr@Ce4q%txHp}0v8$coR80l>MJ0(zIjQC%*pjnZvw>$U;|x(0$p-7)IEY%%F9Q)zOa?@CZqvnps zpxMzWH?WAZjvEY{zdN&|;C#%bDL3`gNn+wADh#IGJACc5`|X24x5rR(uHMxwA&+Gf zCRP}p&M?yX7eG2)a74(vli-BM{j3>fCmK>OeCi0zr;A#8CK84%=gMnnGUx$M5`UyP zmmD$V>pNZ%H3l$j*Z<35ArN5{(~Wc(jA5qWr*sK1_me1OD7n!j9`YAL8m;_c>9I6H zuZT+1D9~7gjv_^aURMq!Xq20nr|)%I*{6AqVyUs4|BQt%So)-Nx8$1ob4)uutWvg| zDT%lasH}<&;z-`+l=n>WfoqNO)?a{cC=L|R%%oGG#N3`@UJ)iw(ICwF!x@k>I+IY4 zS|+@3W#A6(DzJfVR7fqsD^qZvz#7G3W4HQf1~;K@rHb3gbQjzr?y1wtOjgLLOjeMc JzOOhBegWF!y@>z- literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DataInputStream.class b/libjava/classpath/lib/org/omg/CORBA/DataInputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..7d5e2716678915c05b4933f24fdd56048ba9ff92 GIT binary patch literal 1641 zcwTjt*>2iE6o&sv7ZS2S64It=(~=#!#N9W#u?Uqa5>nlyQg5OGTteh9)Yy&aqxGT> z(1)rzKEs$`>zyAPugh~Qa4C}&a8{({OlM4`woz}KT1_{Bs|?w3u_qjtH*Cu|;C7&1;MkOk&obR^a>M>RQn3nM5yHl*9V|~}@_)sMYdE3`-Z6Sc^Mhv83{0ITdUL zZEl9mvP_1x^k~0mZ!7G5jTdQe#fo)58!ggqixo{j8x|KY>{D%Sht0!CH5KgI*vUDN z$>>(Si{3=5hf!i?{5)uRFH(*gV0rAAX@57W>G;O!_{BC}^|R4)tPW}H99JkER+Fai zoTgRn_{TdFx*qraLnZG*dGO`uio8~{^1e)98veaGgCublbHw=}7my;Ru}EARav2%o z%8=J^owz#W4XhDw;udiow~2R#%wmJMi7nzbc8I&!Bj%7N-o-uQeLNuU!yrDCe+oVy m;|cL8o)Mqp1@R?b5nrP~e1o^dcX&_yfTElMhLZfALisM5I`AEq*EqBjYq_n!y=CwA`qWKctn8(Uevn<0ic^oDB zN?g!lVpOwqDEd8RX<4~Mi%Szn>e^SXWy_@tCiguQjP`3<`<;qJHbkinOC82hppwP% z!KAM~iFQ9msn5i8=N)WJ_fZ!pYK~p)$ShOl%pR7}oSLqRmLyjoJfBAa3xl8PChaA^ zjR(9gPNjKsdjGUku^J?A{Degj8>_{S|8wyzYWiyC>eGZ4~z+ z4PDOpB8j@Z8K`k9PCw!ub-VJ#I=Cc%m*wj($ye>-D%9(qLykC)1>&ON5|)X16o@N^ zt5_oz4cBpvc-?RVH;9|KNxX$E;%&nc?hx}@~#WUiLp@-+h jUA!Q^G<=2E#5aa-@s9Z3@B=EukN6}z;NY|TpTXWgSHnfH literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DefinitionKind.class b/libjava/classpath/lib/org/omg/CORBA/DefinitionKind.class new file mode 100644 index 0000000000000000000000000000000000000000..59cc3b230064382439aec041fd98706564ffcc9f GIT binary patch literal 3590 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DomainManager.class b/libjava/classpath/lib/org/omg/CORBA/DomainManager.class new file mode 100644 index 0000000000000000000000000000000000000000..3fd23b98a0ed0ee323b6feaf3387f209d7d0c366 GIT binary patch literal 262 zcwT*uI|>3Z7=-8d72k^3+1S_`Jc3UUlm$J(?-G_QYa%fUdNd0U;Gx7_!D1Vym}cf1 z=JkF&0Zh;lC=dqLMbaK4IS+QTsa)72YqMp;k#YhhLO13s%Y;oNgF~!BFHj*2^VrEc z&xb_G^glpea~otCSmmFP;gR?y|(5|sPFB?g=(b} bMd;;f<7_-VNhqR(G6ZU9AQPdLdI9YZEg(kK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DomainManagerOperations.class b/libjava/classpath/lib/org/omg/CORBA/DomainManagerOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..a605b00d883c63507fb8a4c8e8a1492a4d6f61b2 GIT binary patch literal 197 zcwRg8Z`VEs1_nb0PId++Mh4aVqICWI+;n|s{~#wveV6>)#LPV3#Jt4x)FS_a)S|?a z%>2A!b_Nzk27#=^vPAuy#JqHU|D>$cs70`wd0fn4JpE8E34u8fz3Q?J@6g7CO-*1L8+qD2xEm- z{KmV6llLmlA|bhFyCFkpl^IKASJXvtpU|DjZW0m_q+x(CQ>}*)Ibd>`vk;3Pp0-o(yE+np)kqJe&#GBJj6LTV}UG@ki4IJ>EX zaN2~19>PFD)SahcZOidDnvEDPcxBt&w0$A>Drle^=cK;LMF!hqmoQQ2JPGboBD31e zbHRiTgU}~k3EM424NR7}^%cTwyUTbukLryuXikVd8^~f#Lyj=@f4qrHxJ>AkDdOJo zjCg2CAz|$6IBBI#IX^yknQZ4nkt)6QMZl;`$6|_M&|1w++|sZ>m_7!<#BEFwOqC_B zC*>&!AGTv9B^c{o=$D-}A=yJm2R1Kn4c{?t62D1wAuUe_-#e1i<2A**UYNY^1-w>Dqe|I`l;qb8ztY4-%to3k%#$cR zH+O(ci)7PSmHV)LL{5+8bj-t2a#vI*rQCc}V`3lakFiop#TrM-OT^_}Q+;W%GMD>; Y=>yzoxALB?eCS~14mVwn zV0OkVd;M0AFZ1sfcyEIX4RMCkYu1)!_AJ*nYppfj_8Ahl9oO;iFpT8#4Tkuf*Wo%w zkTNie1Vg&&xcq*9y~Rb{B0z?*s@Jx94NExkJv@y2U1yWwQuRm@B?gT@@r5NLpUFjx zXWZ>lex1}5+lQ3yd+mwmyl^?<_FTs{K0;R#>fnFF(uhBHT$%IkHw zNMRD^44lUWhS4pn*C+7UN|}LK4C6yc(@poN+!ZQW#hebq1koJGK+GK1F6m%+)xZ^8 zm8IO?por%Wq*JGJDGym+M_xmYVRE>Ifh?vp6iL28sCgkgk;H3M`K2DWHhETXS)r_y zF5Bwc(>e+;rS7jY6mkby?mMY>h4)w$G~dwh233DJlO?PD$g;UPYjqYKm(q{%Ck)pQ z$t+?`B}+K&CKuE#XNPsmN;%)qNv(G!>Gw#jTyT;>$-r%VKrIybztAYxqEN&7L=A)E z`kv}-OHN8x=}7NnM499cg{in3eLuho8oG?T8s-@;|G$HQkFmgzk}+0$o@=YgtVoPc z3@oBbIjOsjYOhsG2y2_hiZZWMBXfAt-Xne-yH!#*8Yg45@Q#_*{zBWH=YCUudI}cq|;Bt1dhwi(20w zq!Fn86;?HTO@nj{7X#mbrdd~U!aB!ul>nw~pd$-C7TmsA>4c|XsN;`Cjbbc&ebMH3 z9a)!&$QN;1j#PY##(xCzr_qkSyY$rP&7_slI$GF8@@Lw_pwly<4sYQEJ&nMC)|0fR za0==*8 zRk-oraCryUo-Xd8&>Xu#?56)z7YQ=E83s6|QmWHQgW#Ia*(PcCCf-tP-^M#3^h2_i z_US!LHjBHsb+2$^2k#G(4&b`vKHEX1I4DXG#3%DUfo<(8OorU=LkgtJe+CtVKGz|1F_iDb9%{{B@aZl- z8-NCKeXqb`D(x?@5;`u1oYDnJ<;###E1LEX1o9*8f7-_=4UTWav;#&Aw({%#3$anw A761SM literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DoubleSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/DoubleSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..adfa0dd621ad7ecc43bc439e2f2b205f0a559db7 GIT binary patch literal 1500 zcwUWDYg5xu5IwiF4Xxo-5DJP2w34<;#J7TIX+^3XnX$Ew!-r02V+n=?LxRJo|4AJl zGwSdI{85g3lUQ0rWjek0?q+w-*|Ycl`1$n^zziM>2r!JARzo&78gg#=`9fCCo6f4P zmejXPre0Sq0YQe|b!A(Tb;W4N%d6{Z%@z=57;jJ9G%Z`9RJmkZsE5oaI@ z=pz#UtrI~%&I%Y{7-%P4&OOzPx`;sxF+}V))w1>jV^Wm} z7|x4`Aj;5F)C~2Rv$3jLWlxV-(X1(YMX@w)`_7=frfo5d75_O2(jz3TEE@N82 z6^4ob$BU40m1uB?s%{z$cWMP*p7pVHq(rk*7{@U`gW4HG_hj{__N#au^h$5R!v>h_*EG=b}6R$%cQ4FV$(l_0IhT}=y}KZ6{I~x9(pXac9B&; zkWN5<`T*VOZ|HsX1+fFf_i*krxdRw=Q-icF(VC_71+t&u0(nF)6=S$aJ1;x#m(?jY zKzriPvgynoCepif*u})*J`zVbBM8%4YQcGdAyhDlmoDC*SJTJiCy82P^h+V_Bdb1g zGM(8+=DR>(8IIK9!_Axw?X_4Vh3be?kpy11Kqi}zN!-LO7xFgl_>i(|ld`<@r)J5p z>oi)F3N@9wi+g@@+2aQI(s|_OE&c*z CW=Jjo literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynAny.class b/libjava/classpath/lib/org/omg/CORBA/DynAny.class new file mode 100644 index 0000000000000000000000000000000000000000..aec6c1404564cd87606797c7e5abe95782b2df47 GIT binary patch literal 2088 zcwU8-X;;%g6o&6$BtWSY1!Qr@CAbjxt!}iXS_DCgsOUMIkPan~W_pqos6WjQ{s4cJ z$2-ZSgqa@w0F!w#bKg7ny_x?0^Ya$~+=K5r^bi;OaEzFsvwm0XsbnH^=4aLk49p+ev>7_g3v|d3nC`Z6 z#j^LTIyEcazU4YK0-DX5Z35%QO!vqHhV7Q`Q!m`KS)<83d?KLNXb}1gH=Z!KcHg$o z8k?4fU`$Ri$xpA-FkUjMi19T#j1e&YmGoM>Ntc|UVTJY%feeqg#h6PiFUn&B^We>9)Svh!31>Rg4oCGkjDE81hSm?bem#% zY}&1ev4MH9IoM%-ytyhe!y-CdVFY&`HAFR{d67qmr?y!Q<4-E_c}0r&E>UR331>Uc z@jTLM3HitebU)5FQgxVFrM`n5@x#JOCD9JzN=Ah~NKzeeynyrUFjF%M zoaO{g8LE74!q0RNQB}>Trn63}HEO87rgJ+ocS_dkc$-!e2ItaK;dz2YLWxh2(-TH_ zqtl^<+lfgX!!?f{@;k_<2ad;YjDXU;xXAd$^@c3|s5O2Rl&!LsZ_~2FJ^ zcEi@kzms@B&f*QILm$riai-xofMgJ|!0*OWVjO~8G!DaQY2_IhNs&<`XJK3-6EG=} zDL5yQ^Kd~T7vYjbF2faxOv6=)T!ZTpxdDbmX5gkoZozGd+)>nL6?IdId>4Ojj+6V! z*&itC506##5t1kHR3gvdxkU2tLLx8Wl|){{8;Q(8K_W#cNn{?%5_t>nBvOF|iM)qJ zi7YAV9~AXvCGrY{Aku&6$8>>^ zSnvUSL;D$Qf$Jd~VAF+tuI=;iweKHq?*Oc0F+hf}Y-}8w^Ej;RA8v1j)t=tcy#vuY z6R`|y`ciaMJ3y8&|C)H5NV{{@k{3=H9UxDbI2D&7R3@xTt626+G&?fDAYtjX^uk!@ z&%#{q*nq^}}C6{+rUuZ4w4n z%MC)dV%oBR0gM$fj1j^}q_q6mJ#R{TZWU3a##86V&C_RC-Q%AFUTN=fU7xt zK!I_He=36_5AuEST;iRtjKr8*yTRz6lrqk9ff3k778OizReT{~5>t%cV7hOx$xP49 euYJD3%v*TnukT zEW@6@7bA7umtO+p2=!I&Wg_kI*P*;~%IE+ELiI-6i%^-cFRfzbH*qzR0Ui^rM;e7HaG(K|kRi?3#-NR0N05152v-%RXKo+uw*{%if(bNOSqBV>?Az|}4u zqsaJ#zbu0i5AxmdT;ZK}jKr94&apmADbIK=G6F5+&_H!O`xF_%OsULs=8p&s#0D^fe}Q6X747}U`XuB<3xnN>Z%e# z{Q&-kA3$7Bv!Jl)VtlSW=W(z7^Y`~#0LM7UBSmN$8wF+&1-g}El&8EF7=aEl=wgSf;vEUQs4;qj`o`d#nVy?# dAKu{EzYcF%6DAI|JJ!a*S9@qA;V%-+{vY$xgwOy0 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/TypeMismatch.class b/libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/TypeMismatch.class new file mode 100644 index 0000000000000000000000000000000000000000..e704f65842201078d2811137b44c79d2fcf347ae GIT binary patch literal 604 zcwUWBO-~y!5PcJpEKO4&e71avQx$^53UQ=D4GEQKw=E(NiKE$C8$)78UI!8W4^po^ zAytAOz<=Q{R2?rll=jkt=Z)<*@6Ff`zkc2W*urXn9HDA#5}IBTHohM1)x+jc*Y)sF z#1|rw;qkC9KdZDST-*teCoDZ@pQO_6U&XTTl+gi-gxPa(DMDq!mb6NA)wMY5$^hep zwdbXMW1YVX51P@wcFGM2Q)yPzmNsR*lY=IKJ`!Fvj82`eH)o|tjrN}ZFbSoW8Q55UP`-i6pW>UI&ELaQ zA%_A2&KB_kCB~QhaXFNEk)M#`6rXG}5@Vrui^`9TGQ+XN2-K0s9%eZ!Kantpc}6d= lFcR2hrso!G8@G78U00sX3{+sd**EKyx)TqkT|S0+m?<)fJfjk3rJ|hD&5VHb%@IAQcS! E04^v@FaQ7m literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynEnum.class b/libjava/classpath/lib/org/omg/CORBA/DynEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..fc31a3ece1d50051d85380346d13f4c70296b93d GIT binary patch literal 264 zcwS{sO$&lR6r43{%St=ce^@UqojdgjLLek`l}$tnUBNWyuXX4L^rNDuL>)T3H!#f1 zoA-R(9{^@>I1GkKUL-Ql61npC%Y|Iu^hQ@1hsiKHtE-Z!(uwqs=Qt`kIt=4K!$RK} zoU2N!I8>MLQWhtjkWje0UqaBZb2=#gS@*zTe*>yCul=U*YQ800kHHG^s)*w4DUBHh ipO(`)h$@kYrcGa&RGXsw8m-@jc!t`Tcm(y6SP>E%3mNTXQfewx!>d_%01qW@BVxhg=H{N< zbMl?X^L7W&LzAPx&`yq8Bzr9e)4AUl!>bub7Zq|?49%^~q===_V!GL?Amu1Aw0<0Y zb7gR}O4pf;&x*nFIxC-~(^s;+mET!1xT8y;4r!E_6Gx4~`haGV%%zTv98fTC}S)_51^k7yqX|W&i*H literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynSequence.class b/libjava/classpath/lib/org/omg/CORBA/DynSequence.class new file mode 100644 index 0000000000000000000000000000000000000000..9f78322ef0097efc2f06a0acec8d930f5d3ade68 GIT binary patch literal 347 zcwTLgO-chn5QSgGF|9Fb{6X;oGPAL9?J63D0U=_*jSFepqMg|3(M%_ptGUPlJd{`? zE(~T-yjr{u>Z{MMk2!!->?t$|N9EY*a^&V_Gi?KnQL=Mjfk5f0Mq{(7+~wKGD~b8zvQu##puAxZP>PUvcZK1`Rv zb+L8%ZuvD9WvCQ7gyUt`+!*^}9P2zxjW3==O29!m8C$+8Jd4>M)sxy%yyPO8Re4V$ e?h0$Df3S|$Z*Kf#8=KPFs#}uVGCQ(2u=@>2wo?%R literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynStruct.class b/libjava/classpath/lib/org/omg/CORBA/DynStruct.class new file mode 100644 index 0000000000000000000000000000000000000000..db555c38b6bc194011ebead409da57f6568fc5ae GIT binary patch literal 433 zcwT*wPfr3d5XD~+T?IuH5OX;(?T9(iC>P*xe=a)jaqC{7}YO z68~a6OkUHz-*o1^zCFJHI6>1xNnkH=S|+iUo$lRPTb|Etkhwg}Jd_3MV>MGUQdZ0E za7@MRnm}_2Y1_F#Bg~y6n+;-$hvWtmV@Cq}e(UC^|Gsn0FQ?0ZRWWgQ2EM-KVT{#m zu4?))rUD0k>)}`1Tc-Oe%BiP}D}eMnaOnTs-5hE}`)bwjy%+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynUnion.class b/libjava/classpath/lib/org/omg/CORBA/DynUnion.class new file mode 100644 index 0000000000000000000000000000000000000000..0d7705f66587b9c5e35099a448c92e727060ed8a GIT binary patch literal 408 zcwTK#!A=4(6r3Wm2reRm@e_70Hl95p#)~E-q8_+x%5L2hw{6m0O!zeqet;ike2XQ< zz@eQ^-^}D?zP>*`0bF4epuuo%UCyn}`DFTdGv>Ez^K6tg0h$c`rFa*-5GLo-#ZsnK zfEL4W$1yf*hA>lQ>XcSSRMs(EMDfEuCflcfn%vWb^erv*LQ-b;_u(B| zW`vfs7Wx17omEbmoV=rG_cwlF=#{ccM44prRji7N;UJ3V49#d>PdhWaa;dyi1to{u vQZDNxYJkLa4yna9wG^O@x~(I0HrVz2*z*uQk0%@KvnjM&-L^!&ng>6CAIdnb zA^xfHuz8!z`%PxvyuH7?0ysg3qr%XMtrl^lMX!H%))nUqGn8SbII0ZIshmp@N~1-8 zJXLM;#slW?>cj{Ztu zApM!tN?e(_41baX_XcXnW3OYg&<3^& T-A0qVJGqN=mtLFx73_TgWxaU@ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynamicImplementation.class b/libjava/classpath/lib/org/omg/CORBA/DynamicImplementation.class new file mode 100644 index 0000000000000000000000000000000000000000..fa2902535acaa7ab85c74ac8a52c436ee768e9d3 GIT binary patch literal 3441 zcwUWHTXz#x6#fovGie-!7AU4I0wU5I#0#Rf${nN{TWq0PE2Pt82vd_um`qBmctH{G z$jvJv1(Yg^f|sewiumMmxqNW>qQ2>aYq|Up>USo=wz*WhIx}a^zMOA=XYYL`-~IK) zR{*ZZsDfz%3lml}kcdYEYuh{4tPZRjGPSr7ZjC2ndR#Yc%{CIIf>MD6lNFN*%hvj0 zdZ4|pUk}^TK)`dGVH)-dfs(rVE`iduiHPn)3CdNJ!6Ps|Xqb9iI^L&So29WpWiS!e zVqKbL$oK4IslCHU2`mc!4{R-5)i4JV57KUaU5-VkZVl*GhrTndr|cF9$+u2VT6$Qs z^@tCZn5AH*K+P0ZDrTcfpgfV(Eq6hIS#|Zner-St#56M+=(H`vjJEh7aHR@Ass+3u zD`PCsSeLI_pM&xeJ_WS`GoxlYJI_&DSI|h=KGdLG!kwpLJ{Ay-W<}GI0FllY(Ue6?sAx%W*Sf2wOV0EtE*x$+R6x z*?cAL#d-e5Gt<@VbQRqdZdK6?Cd_5KECwCQBC5+Ju&@KkXFYCLu|noUDN~WDy$Wj- ztY%aNcT~k%tP_}_MIs@o9|;*|h+8L7|94tsc-erB3hv0O(}EaPwBk;tP?jmfoJiEQ z#ffS)C-W3kaW~pz9S$W)P<5W=X3opncC|ODxCb39E!syek-D-dsS_6~=2mjO3Y%4I zk^Ie^$RD>~QYhv3s<=04mqx}-)}MFfo8qa~BN84;+J6;))J7HJVxu|wvP z*G^=FK6Im3R_%i-Vs0^o6KT^{Ae+v3U)W;mgGu&W*}{@wJUf|VxeKXCf&E8u_oIEg zL|y<+ix&d|qDR6RlmQG0EGd|q#RBo-VLI6ALmZDtjvf_gDBxhi%=*Ewo^)HcB(4&V ztJs4l*fGNPploNk$+kAZ-5a!9%d&63 z!seM5T(((DrPm~~*Ja*J*@!D~RK=Sz1YZV`3`4Du z6?f!U9Nf|*hqpOc+3fLq?)hPbON=RQY*7L{oSyJUcUl@D=5L%(MfyDv78 zlgAu9Ifi|tWz*$j zeqezod^v)s-~nBQc4}_MJal0(?#D)KMF+Ow0fZ1mFNUCDH^S^=5q2;gN3k7eDLDrN zU!Wfs*s_12{U6wgKamo%uuIfpw^)QnL?iq7GVBqzV6RxgUb7DSMGyzXHXIUh92UEA zMC`-MVn3e;DIaFzI*Fs=dmI-(Vp#ly6XI8#bW{5SqGjS{Q(KOXW0(n9E`G)d>P$n0 z_yMQzHWPF)KEpdW&EFeA#^a9Q7vEw8@3H`*{1$%?XIMB#{~dLp0q=7Sg>haQ{mIc; ze8^uMi|{2rV#FRsaSG?ThC=+;xO!e9&gglGc{=$$4KHzhf=?%w-gxzvTtM<%PW7HE OP`%R_guFW$C;tF29(X_i literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Environment.class b/libjava/classpath/lib/org/omg/CORBA/Environment.class new file mode 100644 index 0000000000000000000000000000000000000000..e9a2c4fe59739071051088f6e75b5fd3eb0ffc95 GIT binary patch literal 383 zcwTi-yH3ME5S&f?ASMv=kN{E9ITRRb5E4Y8vWNsI{n?z%MfM%KI1#@^g+##z@KK1p z5CjEmF|)g~t9`tGyuJZA!FGriVb9nyHFcQ|MmLui=}^y=HM*9%3E>gqiI|JD61q%B z`9u~CAvjZ7HRptO(jODNfw`9v+URuQBOvrLrRDXk&ZWH*c_j&(nJGjy7FM}_m zH6`q4|1NM!@QX?cOX$d_LOwRiXu?j?&wjQVehXZ^oBS!bEu&jAvxU4;Zgl)>$dT*t z4#4NYna3WV!5DIsG840Z_=1&Zc3OxSgGKTftBl>R0_HWikFB%nxQBSj8?5sa7TsH) DG@Mio literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ExceptionList.class b/libjava/classpath/lib/org/omg/CORBA/ExceptionList.class new file mode 100644 index 0000000000000000000000000000000000000000..11175909a623d0795c241cd4e98f02f7bfd537ee GIT binary patch literal 486 zcwT)_O-sW-5PjR`Lu0kI*3aU>TkE00b49R4p%5%+>3y3laZ8ge>89w<@+5fh2l%7J z*(hQKUD$cEk2f=K=k5LF6~GyqE=mkdmBqeFV!uDU?Opm;522WAsnS3$vHn!!1jsniz?3g|gI1c`?(4`?fipXc{mu&Pn7iMtRSg=Etr@AmSpvF>*#FPx$e-$x!-*Xl& z_81zg${sb0$eojkL@kY5>PC~iJC$dlxR%AYR=jr1rmPc?4VYt7M*E=X(#t1ghCO}8 x+7l%ucodz2>|ldpes9)Jx`!Yd%oj7_DAa9NDcnVEmS^Uv{o{qgw=fP1KG$S_ocaAXGF$ZT~F zx3|pQL(3X;td52p!^+t`=T#I7&w4o&C$Ss&8fF+O&-n{(x`FA4(B)(IH9r~)hPg;h z`yz};`J}zW!1fqQt-z0B?#F#To{0SSH=Cc{eH*@In0e^>ZoJ7bU$+%;%>9w+#G&ht zn(KXrTq`&hI_6N;aDidwmo%en2Se%wr;gA(UChPL+=yY(p5Ff^gXW1S z;v)t4%?d-dzTPjO#sG%3`hQu=d#)dZ^efs7`Y=(5W9oh=cog^yMJJeqL$T{hhoxU$ z?#k-)V5laIJdMlHP@t&OL&~6t9OVW|^gT~2+ceKmEH*Z>A29n7^Y4{zQLd?-M|5%v zmnf?yN+K=+DqF@1aU^dwPk}ge zr=Eh;65**U9oKMOfpx5*LTU+KNWnb<=O`8$8_Rd5aGz4Q28!EAbf??`Zm8SJOjgLK NOjeMczNt93egawnxp@Ep literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/FieldNameHelper.class b/libjava/classpath/lib/org/omg/CORBA/FieldNameHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..3d6c77446a0775b0f29957fbec23322712546397 GIT binary patch literal 1734 zcwUW^Yg5`l6o%ggB!cmVT3fBP-YQ^Av^Oo-3u>)YDl_8nt>XmPp>ZH#La_B;wf#Ul z{m>uKAJysEkirl`Yd-8IyZgT9*|TT!>-UeJ0Je~m;A2=Y%!*>vD$0KDbT6$OYP?!L zQEU8&SL@uA5MY?NP%l-bs_GRbSG?dQiy^qH>6-O|!5@tk7y|o7nTO#=NX8I?4C7f% z=O@itk(*~~vC0`DS)-&@3#zG!Z)Y%Ieb5>Vi`jodq$r-IH@HcGqfyt|w0@P!b^-I2 zsp*wetPsW|rX)ldCi?_3rZK}X+BQ9J*cyhJsFx7~QyHc_!rJ_*CHB^*W03eK%Tz_O z*1ecx{ThM1Ama`e8O9uS2W~p*p%4UDbxPzM&GyDPqj7O6sSsAMCSjFfwxTzk*_>HC z<-)pT@v@A2SZ4_3$+F5VL+{@%HH60ylMxqqKCL{A`=sd{RTv3uN>KXpO^r;|_K@nR zWOCKw&X&%t62p8nGZ0)jK9=zWPpO_9san<4hOI1k9G1t(0Plf8siF zcB(?s8ulc^>U9_xhCZ5_MFo=_$ee3hU4i$_I>eELHw-J+u#k}vcTKkAcDaqe+-uk3 zAn;4I+9dFB-e{U7eyEB6$F%EDkr23nB`Q=u#3Rug{g0@X=u4rVQ9l&_hT$*t;zO9) zpgp*a5o+c30_sPp4`B@Bj`#(w_KDT;jTR=l>aabUCe5DhaHGA7`dJ$xh?}@Y9wE$O zz7M2@+n-$^$2}lzn-K0|$q|cCVs7dymXG7#5shrb{VhCb;ZfJBO_fIgXC1o$?PVM5 zwjEt!$8Nazt&q&(nv-I7WVe4271#QQk#%HnHx7ERJLdb0SI(gFJ| MYiE(+ovk_f1FC?CqyPW_ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/FixedHolder.class b/libjava/classpath/lib/org/omg/CORBA/FixedHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..b06aad6c32ca8b129d121e1cdc521d7931d7e047 GIT binary patch literal 1175 zcwUW@Z%@-u6vm$m+v-YzF?2HU9|NS@luAr|gE0ZjBC&CaEHl1Z?z%EA>Dr~VsL>Cl zi9(`@AHWY~Jhv@#BQEYmdr$8@=XaiS?&+`J-+uzw#@Z}W3ReWr7^d}dlOeV5b!-*WnAMPl$}n#V*M1fD+P2?_k$Kaz zxYOjmkl)E>DmWIW3@hf?LMT^J|F?>AGYf|68Wdb(n3aMAcUp<`bc@RAFl_4Pn1T=7 zei+166H7%AD+-nwO8@uQa0|B?RGFf6B-Ju3>E&_VN(&jvus(?tDLwemrxKQlI2zEP zec9?A1#5JZT{lb)WPn8nr*ZEt{Zy2&A+ID)SJryxi-55D*pAf0V6-J=R25Vh)+Pwh z@Ia=SiLzWaCF4aN3>y>Wq?R6fp>NqWA;%*(GzeR=w>0@Qa`dF>Ve;bXZ;&<(9ldAh z>v42KyOj%QU&xrk9KBUqfdi!Q67ytfu@iDwpj86$37|%v(pQy$O7$BS|5D~CInW?V zlOo z;s;7^D_^mAf%VS=VkSCshsx9jW!}f;RY_F|IEQ{!(npf?X^fQOu)1K_mJ+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/FloatHolder.class b/libjava/classpath/lib/org/omg/CORBA/FloatHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..6eb06bc47d544b887a27e95459823f5991ceb55a GIT binary patch literal 1342 zcwUWDYi|-k6g@+ME!*wGT5F5X7HfHE*JphcO_79XL@~B$e0(4ataR$alI?);gZ?J1 z+9sO#1N>3OJHvuNB(lk7cJ7{g?z!jA{QCXUm#W#|SVIkiS z-+te)vu?%SU#};%!IR{Gc#}+t4wElLi*B$PiBZk{09t1}AnR zU^rz!!#Klqp4aWC&05L!w%az$=H0U8>{uR`dll3%hI5kNpdQ68->3Zi&@qrp!FaA+ z=7NC;bcRVOid#<6w=YyA-zyBOgCe_=c~oySMSDCXSw{jX4M~RO|Kkl@!es_smgqP~ z1EPtAxI~exQL0Lna(E2Ucw+d82p8XZTo5Wgw3k9t^fz-8w=}FX#70Oka2v}E6RJw5 zov^DAbkIhsNoH)hO|NX{xE%3J&$QO$eWA-m7SS6*08x1|=)y5MI$FcDn}9+4N!qOw zPCipVF!k~PGe?;Jg6L<81aMl$)&C4-ZW8`3&Zs|w_MZDCdNVYi1a(xr=F4W^>IqMVd;YkrTx14KV{nZhd8=xHz5ZSR`$rB6yK`4zE4 W+!&PdfuwvKBIOR5E=zByob(^ijT8(3 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/FloatSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/FloatSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..396ed94414e118f16820572d65b670e56373d540 GIT binary patch literal 2066 zcwUWFTX)+;5dPM2EL&CUIw|Ru;*?%|DG}vXz@?Ccn3%YAXk3E{5M+BRD^;Yhk<;dp zci^`a4kzhpIE80^6o=WBs1wI2@q>1?JM+yq^UcVA|MToQfE#c$#27C4!Z!Ui+nlZ4 zo0&Gtu5SfP{D*n&u5+Ow&Tw+o+O$m9@@%u#TIKD4A#uy`oZvRYNG{)Ch|l^Ru44o# z1EWYVq^pj{@AlSOT-2?W%NfS1e%o>zmT=^IbQll1&IZH9>dQEk7&QJk5S9#lIyYcD z?QNCv%VixIjB6NU$Q-yga0;&wg9v10DG=OR3mII=WXM^9>DeQSFB_S+v>@Et{J&R%gNSDE%0J%y8|H z%m%EfWC_RH;DUPP%&=ZrF6SFMiS@oD{Q-%U3r{jA8MuXysDVQNeQk1e5NcSLs7Y|V zz*miJ$ua3F9qFBnD3jcwFcojT7lc@0JAaC@hB<~y|Lx*P0pxheyH*xaz?}lBo59 zeiotT-(p3>cQi&va53;bXq0soC#rHhR|#R-20F6LnecXBofE!7p>{tKGYYZf_e7hQ z9ocx}`@e-#a-8CmH2NcuKaF2A!S>b$AoU=xKxov>vB5 zg%e0e&U3WJXgyxo#>u}(kK*q*^W+7Ht}f@1L`4BjgvPjlS7}WWqi9^Q)z#V<;Za%;*>5(D&ItuT7zl-L?A!Y{+B(B(%^Uyr5!S2u$5o;U-rV% A^8f$< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/FloatSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/FloatSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..35f1612f120b6238d671040b42c6ea050f91aab5 GIT binary patch literal 1494 zcwUWDYg5xu5Iwgv4XxpgP*72zm9$kNz7<4EwNmZKjIDJXK6FAGN-!iCQXEG8PwMcP zQHLMkk8<3b#L^;4r_+1yZtm_mdv@>7U*8S^%;2er0K<99t|`_=P01|1Tu3Wf!&04s z_HNNKs+uh#$k4m4ZmWu+nl)uz~t#O-{?Wik;rW71oQ#bgLLD*J}I_-hw zEJLTWv#C|AD%q3ynpyV)|9H2Qv~8<9MKUvF&N77NbW?Zc89L-di6O|{5p+ z`iR7-dBPaLSrLN_gRO*%ndiD$l`w>1&h2e^l~>L%lt1a-Yy`a+;lQH|Bl5|25~VOm zPzhl~7<%%$slBLgtY~)8lcPUxRaB#-+B&y=XV6*Gw;0Cq|LX&(A;`;F4`5P)h)zx@ zF5xn!7{Xhclh@3evqt&k99OH0Yp1J5*>8bRrnXcWrjB!OG%jau)*Y{VR7nI^FfHOL z!^G+LB`CN?G&n@ru*{m`ZxQze_54rRa7sV}_$EPJM@N)Y+cT2q? z%ME9Uw?&9@7p%Hn(Xu+9lY!QWnC6d?9x*9Re*pnnX)5Sp_w(_iT_6v=6I#2-${|Q6 zU?6#b?&Np$zWIv&14Q?5?hCmCxZs8cXP2meE(A@y- zvA@$MQ+t?5?$Tiw6NmeV9pQ{3L~Ef5=M{!g!X#e1ctc)JACI48Dvi-EfuxVD`N;8P zY9FZ|Ap%Qrqz)f$=45EE#0n`?MU;}nu-XI}Z$QRz3%6a!JGkpZDy~h+^3SD0L6_{ota{H=6QE&9=~ebVRY6S_*uiHhv^kJ~h#cHt0o>!DE-s6E`mV8xDR& A&j0`b literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/IDLType.class b/libjava/classpath/lib/org/omg/CORBA/IDLType.class new file mode 100644 index 0000000000000000000000000000000000000000..8c5ed030e18dc241c05363770cfd347bca046d7c GIT binary patch literal 274 zcwTLeYYM_J5QJxa#kUpIzj^|LNAL-PP*5+BmQW(KDKQFqG=F#i4<$CDKNNRiVVQ4+ zxj(Kq03);+a)hon5!d^OPyO{|%$Kv(_MA$F0>Rsfli;yPBJKw}8Cr%Cq5s$5r_u7NpeVsCNpuEaB=Cg zzd?Tm`Vi2r<>kq>{829VISeG^LdnCKnRE93_IJLs_dfaezu*4=@BrT_@G;!5oqWtL z=3}$zrI}=GelE4LSK`lkp~M{p0fx()#uB^iim+N-fEtOq;%cajE!`+e5I@FTw zxPo&mEiIR&VO#~nRSmtkCiX&68Ll_D3N}KYxZra`Sl=Yk>vwWuC3rL3((n#$GX!@W z(Dxx3 zeCAea-CN7UzzpKnBokyp8I&hiTj)UfN+->5=UiekD16s-43Y5T%`&fEhvP6}>qFuc zA8U9I6GThwpJD1;J8y*=#s`Qin56CHt+Kb6b}~zxPR7i-Jg4CarWnG@rj;*n*R~pE zqCsZuw1y9nWbm29tBX#wTH{26{No|ak^o+C6(8Z5f~O6oM1zLsn6FJ1mpdCqmg{bo zAu-a3+&I&+WJ36a+5?f8q{XN(I;F|vgXnz~3rH(?!7%W4aWyRBQ-*e#kH^idw;`dA zR-{nN8dmTb^&rb|9D9c$R)2_|ajRn^5zXV$89LATi&9Y-i)clt1vXkXcO?eHTy4#{c*g!v} znIGa8qBpufX;kPdMo&i1VB`RyU+BdLmBuzX`55gqYDWh2yg<(|F5;5s{F)#IXkVm) z%L|c1^i*(teC&`W#w+NT-*>B^Jp=-3A3;nJSb`eZG;UIh5J7Gq0bvZ|l4T$6Au5^n z636?55T-v9552$-J=P%#{O%zh?bi{1Rzp1GVTQ#O>iIwNw9tOV`-ez$&Qvg0#keR} z(}cB1-f4;DlL*w#JcL1s4fs1ht`ELm<3OFc3FXuwmg>E7rzo%DbLmg_v*({6Yk}Do z8LQxns;H`*Es#(}iO_Rog|A37$hWVhkYUkcJggsSgTiVe@(+S+Kk_$T{zSz7!pnU+ z#Kdp-#)qHL{stRs2YB@-EtnO&PQ8J>HgP$ Y_=g%&6J%MYXOzfnlcf-3S7Pn`4;J)liU0rr literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/IDLTypeOperations.class b/libjava/classpath/lib/org/omg/CORBA/IDLTypeOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..64d8b18900a45c12388fa83327b18ca731aecf8b GIT binary patch literal 213 zcwRg8Z`VEs1_nb0ZgvJHMh5x(qICWI+;n|s{~#wveNPvkkjjEo|AN$_#FEVXykd3+ z7Dfhvti-ZJ{hY+SbbbG%tkmQZb_O;^1_d;&K@d5FUPcC%5};v>3{o1JKB$U8mN@69 zq*^mFa0Ta=7A2>;W##}?ieWfF4`escHbw?!AZ7(Roe}6Fb_Na*i-8kJGBI!g00!+h AumAu6 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/IMP_LIMIT.class b/libjava/classpath/lib/org/omg/CORBA/IMP_LIMIT.class new file mode 100644 index 0000000000000000000000000000000000000000..0194e47388209ee475b5d18d32bcb3e38489356b GIT binary patch literal 948 zcwUW?&2G~`6ot>^r;daBLr5E%rX|nTYm-T(q zY99}5t8Mi(q!>0Y|LndCBkncd4*5mo3SYwlL;kh%#xY%Cc6s1BWB0vtHs%Z~p_=x2 z5R&r5I$&Uj42uonhmqq)eP=x3>5o53txq3{MTUiEuJ1=@MMk=>t6urblG-&el+pUc+iWRk+a2+df`whzWp$Rb6#fkpZ*(Mp}>35wb3Uh)f;zhd>X(%qD6>d!vytYe+B zwOC2S4M1fjY!XNEwx+zNiVs|?=5Ad9JfzrCKqHn;ff93jifIuhNl_=v#)CPK9-Zk# zLCUdk=1RvMY%8#i9pp(Z!G$TfN8l92Om(mHa1M7s-8xm=YOI@aGq|fxD>GRkp)y%P KcKV*;-2V+#7`YYz literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/INITIALIZE.class b/libjava/classpath/lib/org/omg/CORBA/INITIALIZE.class new file mode 100644 index 0000000000000000000000000000000000000000..156ba25006ddb120927ef395431af503d74e704e GIT binary patch literal 951 zcwUW?TW-@p6o&uFrH+G3N=PsCMt}lo3Rt`#p&&$>2Fa~S5H=CwfyzxsVNh&Wwu6AJ zumj%U1qq}spsaxnun5GNaa2^10uSSJX8g~0{y8&8KffFTxQ&{I48uYg4b0FVn62)U z&8BH}EZ1t<*7LT89K*`Vzs}n@;ePu~pC2S53^YtJR9<t6urv}B8bcSimmkKD8wWjpLsFFfi9&Bu$mdX%;kL%gb`ha#h~|71>dLsN8F3UfT8Gwqo~gx3hA-* z+s!RmpPmg>rIDwx2n_{_Iz6WhipWuJV4A*XX=Rh<8H&aFM)ng*pE3JU=@#Ug`tyKx zHgSQnxl~ESB|v4%SRsz&t&Vwj6(2ZLFJC+bXi?l&KqHloff93RjM*VfmZDCWr5h6< z4xPzWkZLMCcBSJot|+jMHB?9~!SiFVOW+*ELVaWT<^=8w>ejB})>GXvw}7kav@(+w OGAff5WT&qw&h=kan!B(7 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/INTERNAL.class b/libjava/classpath/lib/org/omg/CORBA/INTERNAL.class new file mode 100644 index 0000000000000000000000000000000000000000..bb0867fc0d1a65d00f4a790b1bab5981a84aadab GIT binary patch literal 945 zcwUW?TW-@p6o&uFrH+F`OGwi~F9ax%rhtWnkWdgJO@owT5>%T!QccrQFp52u?I7qf z*aHiI7bG570Q+DQJRr`DL#2vvc^IEFGyi<&pX2%ZUQplskA!}@7wZ5bSmg)-$PJekB6&ZEL$wfj$>IUTRFv)}78)SSPcY8H`2 z)q;g3hI=!NbpHiVPUjsz6un7sAR;eqM%j@=>IJ8c(0sa>OJ4dh!?H8G|4jxX5OK^$ z8t|JHhHQOvP(Y0V3>)?TvX&40P)77Cx(wzpRft3Cek6D-Lx!R&C(%$m_LalZFE6)M zb$T#VlSZD#MHnbhH0dE_P(+S$3nluVrIl@(XDAjMTiK78|AfU4TDPp$^v)wX*}?_N zs;QEQD}c^cu|^!lTc7goYd&zMQNHvCV3*>q23o0f3RIZOQ_K^>WGR}2S-Cj_;?kWw z4XLHV6IUj#;Hn0j*g%EU3cNH0dj!r=EHt)OZ_VJoplus@A)_-@ LL3R4N=G^!R{JFUZ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/INTF_REPOS.class b/libjava/classpath/lib/org/omg/CORBA/INTF_REPOS.class new file mode 100644 index 0000000000000000000000000000000000000000..404572b2f3657d4766886451b4b42b3479b831f2 GIT binary patch literal 951 zcwUW?-EPw`6vzMW$I_IHZl&AGz9=xD>wt(G1S&#oT_<&fc3Qe#QhA+Kf|__rQoi1V z$AB9oE_eW*h9^KAJJrxc2V6Mk*!lZ+{yz5ipI^TLcz~*b6hm2tLtFYoyU{t^*|uBl z?q2_}dC+kUWEj@Y|8?I-vGAMk2I4gKWME*1q4b)+;kGAjSA-rPc^~-kNHEMrdfF3V zM9QPqE(6fE?yLIr zY^W-YERAIt$Wb)uIi-+ChH?wD^u0_gJ2X#G%-6QkpHcXNg-=>nR%`mtGupY0tCTG! zN+PZRI$OmWaTITT!h5Xwz@=L8+6BNC#eEI566pk}FxMxT=Y&a9GzqhEcM8O%Gj%nj zk_gXSnYe+Q8f;<%B~mN!(gfTkaE4;8wzYb13il;-tFO7WM0du`;g&wF%2b7v&Qt}} J>D!uf=NEsRxlsTB literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/INVALID_ACTIVITY.class b/libjava/classpath/lib/org/omg/CORBA/INVALID_ACTIVITY.class new file mode 100644 index 0000000000000000000000000000000000000000..7b6b898433a210ef33a91878a065b0f6c9a52343 GIT binary patch literal 969 zcwUW?%Wl&^6o&uFrH+G3OGsLv7XlPWQ@~<_go2P#CrAc2sYo!eswU|u7{zvFI|z6N z9)T5a0GmoI`T#r>;>xvr_xWzq zv^#Fov0DdCt8cq@|Fwo3!^ZEL-iJ65e*67U93@^DXjot4j!bL>?b|ANgP` z7?xu-bww1D@`c@EU{4tqtuTla9waUwPek57+5dd}Y4;1m!Xq#6lE(~{nxlwg9*oRh z5_!R>vF$SCtng6iSVl?1g&Fr&=pT)RG}TLZGKmdbM47>`x_kRhyWegdbh->x=kL23 zMP#vJz`!cQgE>a*e*vV^CC3XyXW|b;)K8mHa>60?f>TFmK3&WuZ@hTc)7g7yFlfGr zV?I)#8A}Y=+O}Ijl>rP}wg0l1_q`yD=t^t`eV8i5A>BeGcpL@{#a=jxhT@4QomS3z zx+h)GL!#O=@-(hMLxG}B4=jTsa+Dibr0;oJ*`;}gVzIuH{f4DuRK697pm6@!N OQJJhDJAF%WZvO%w-N1za literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/INVALID_TRANSACTION.class b/libjava/classpath/lib/org/omg/CORBA/INVALID_TRANSACTION.class new file mode 100644 index 0000000000000000000000000000000000000000..5f61141d4b111cc8323fa314904e70c0a883a670 GIT binary patch literal 978 zcwUW?%Wl&^6o&uFrH+G3+cdpEFQjRKGzBa+NDzcbogle2393z&jofq;jAFak4gy|+ zXMqh83s$Vy@J5I;XsCz&P&c|q`%T^K z^qQ90>N`ixj@>jIv)fUSW7xPTv){)F_uKCV{4DXpK*0<{`L+Aj)xA)+dE~hx?}K|X z;tcb#oc4GWlk%n6Vqgahvql)ii5nz6cQoet?>`?^tBY?wGR!>o0xx;OuvD`oapVR= z-A*De7&dl$3^^k_`e!39OxcN>jAIRpC^KkA_xTH}?X+9{PM4u# z{d-rVh%A;hXjox*FvW;@89+Flv%G+J#{LP9oU|DwD;!WSTnFIf5{b*o}c z{&`9}o47{Va;hZa8X&WEY!FBAHYdD?k`G*|mu~z8Xi_|oKrNL{fC95M!5k7MOHn1v z+MOv7o6h7&NF^1XyHZibwgju#L7CJ7yfOhh1kO<`)c4l!PT?L?xB8M>Pj%@>U0y?(pHPx(PA(Mi9#Gv_d~%W88GBsISvP6-%}1}e|fp7 zs?&p^nl!RBF2X>LqDc=ag*-BpTbQNqSz6hpd5U7bx}AQHxer))r*%teP4C>NlXYC6 ztduB;xD4oQ1*^nSytN5$NArO*)x!E8fGvs#8fYcb2~c4!O)w7$lcs1AX8HOQh)Z|s zYDhT|p13lxfy)|fViQGDEAZk3+$C^^Vy?Qqa$^ej8Fj0#xz$8>!p-4|zOBksg_O=z L1=Z=RnseL$r`$K^NT?a(mAfW_n9&I^e=N$Ij>9`F!jjzfQgbxQn`m3`13fV^jEJv(SXjovVymjBXrYB5?hn_p}KDvh!&afP*>41k3 zDPLJ_26n(uYKb6<-5?&glPS+XEQwE_e?C27Sa{$CUi^q*rEV+Y#0|!#6Ng?fZte^i zaxHPhbu6Q-;XK3EX=g3rA5XY6<-~40jSO5sg~4d`p1-g={Z4z>?J?Bszwc@mk;SS3 z16785bBtL30!XJzwiod3)Ia25KWRqU79;9~OC6zkx|oaKcoD;zeZ~be88n|qkvmp| zKfEwx>pO!2Y7Ai5uK$;}yzd1fq`R;f^iiVVN7Vk1yO9VOijJ6uBmTsb78hq`?#S}= zW~eBQJdI1xP@t&OTgsq_9OVW|^j)NteVS(|78|?SuUPtql`l$nQLd>!k7?%~)+k#| zltf$yRJMUl;z-_B%Db=lz_~{G@)I$_pt&4D;{roMvI z65-61j;pw)z&f^3A+-coQ*fWaIf{kG?#Aso+}G5tq2e|Y-Hcnnb#+>q$qE^j$qKU5 IHx%dQZ*~;9yZ`_I literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/INV_OBJREF.class b/libjava/classpath/lib/org/omg/CORBA/INV_OBJREF.class new file mode 100644 index 0000000000000000000000000000000000000000..4132a243d37d5925da844db98887da8054a0e1ff GIT binary patch literal 951 zcwUW?%Wl&^6o&uFrH+G3N=PsCMt}lo3RrBAP!Q0hspMc1s6&=SZaNBsV!N^(1Uv#u zwmb!FkXY~lh&2zugCNd~qoRrwx)`4`&sUFw^7lMVps~op&58Xv(eeB zZ<|)T*YDI@d(B-98HTmvf1Ni`%)RF80Y8jI;A@y+D7|!FxuytAhlj!)iMQ_lh%?MZ zYTDyrM9OE@4g+g3%r*i)id{eMxuY@9et7r(=l2Ise=yA46TXP=Gt5_PMI5>Q&~)NZ z_`}*}k0H|t4!Djv6g8YKp5qO6qE=@VH8;>Ic=TTxX8lA^a>}I#Q({Fbe%J#o^ z)$&MV!GM89hC5S?SpNe^rv+R1ygl~zdDu;wQM7{r^}?l&(0sC(iC>6_Vc95JCE2PK5 zA2+vTeR?)jl}47vGBo5U>hzpa$Rk6!fm!;VrIk9(Qxx;nt@I}pK4bo)(k;m~_2(h& z+{OjU77`^9R{)i*VvRVGw?5(BReaz~wRrIaphdBzfJP#n043(q1oMb6X^J{wR&Gpz zICQ42f|L{Ckt-dSaYcc3Y@kGH30|Cly9CZq%vHBmZ%*Mpr*8EXx0>jVxH()^r=-WtxtHQS7N~2LTIS zf+v9uhy@ZXc__r0aa2^10*moEGydm0|D2g0Kfinha2quP8HPm}4Qv?d`=Q-x zdk1?Rx8*!DkYiXq{kQujPDIdr-51A+FGB-U43(Gs6}Nq9cSYp$q5qa24h6$Ztf!uc zVp8t6b{N=WhG|EJal*sI&q*_D0j1*eYCe7u-TUidM?l6%$-G#HFP#4#Ue z#2;oDvb9aGfGPtRHfsN6E+6=zjOa323}!!7h$HHMBzP=ChGJKaqP}?KE03k$Zf>di z^lYdqjXaGd7${IQ={aRkM2>O`)AT)0E88^BP%PHBvL8|Ugt-q|x2V?ipKaRd;38%7 zsgj7xfX-I1N*u*o8}sgJK5(vHUOxl4OVQOpE0vCc3Ug_U*(FStqDh$L8xtV=bS6(j zs;ThAm5Ix^qQNFMP$9JfFO0!G0_P|e>RT%}Cvcxrx47okQ{4%-fUEknDpM6QI#U%? Jr>|+w^HHI2!-|pX$d7IHYG+ukLJPycqlOyx)6Pfw|F!2 z&3nG?4**MyDLjIiHaXMBoNc0by<%Y;rG>~Wg-kM?KEuwujLh`1e3# literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/IRObjectOperations.class b/libjava/classpath/lib/org/omg/CORBA/IRObjectOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..5b2554c5bc97c365728b855aee3ad0a5b7ef7cc4 GIT binary patch literal 265 zcwRg8Z`VEs1_nb0K6VBsMh1oaqICWI+;n|s{~#wvea|5Oq^#8B690nKqQsKS{Jdgz z1{OvJfvm)`ME#t^ymWntJR<`~N@`ksc4l4*&#pQqwZ?GC}&ifhw#S8Q4=& zi%W{~D;XJ>H8jH*8Ms_4l2Z$y7H~5%NTcd^a&(FJ^b3pk4{~u00;&$qFD*(=b<502 wWn>V?bfX@~d2EafK+_pOfC=biRt7c(kki>2IDq1uKv5PT%>~3fAQcR}0EaR`eEl=SVK;Mk735LE1Gpy(ROl2+i5LR=B8u3 zH@Lmet2J&b2r!JC>gT#v)y;~QE1vR_!w}pwOvBk?@JC|>hQN+h=3)2|QqhMX!*JFx z`C;R%$n9gjSmg|ntX0yh1>H8pcY844d@$+^v)O-Bq$r?a*11iQqfyu5w0V)rb_ny1 zZJ3o*tPsX1#uP*tMtcM*#xcP#*fKq-OAW(B)XRv0=?r5YVdVyNM{KS~$Dr^}j;)Jq zEqgJ?dNl(1j*1!FWf*F!FX6_c9tuHlQKL*w(QJ2&V;UF7k_uq~O9~blCM#y6J)5(O zM_gE!99~v&56cXpJXuz`W0}3%rH1erVk+VS&u5hTai1aFIjb-dSXH3)B%B(R3hp6Q zQpx7J!`pj0aY_u+(ae?P!tt?+CwNK~)t2g2L$6C^!Q-?%My~L_GAPxwWf%MLjOsG8 zn@!S^gjnh>&E#5QmC{dCWrhv+3D+#!5jC!5%v!@C7OtOpANg~o51x zwKxd;T(33=Je;>0c8Tv9;ukXE{#hghZ(xpU)erF~^hW(VYn^cqSZdJI=<4xNJkx(qiND?ONSe+Rn$*PgdlF>7I}m) zh3OuUCT@RrfgE&!v}{6{#avq~LW#Mtub4lGe@8U368AUppovEvs}@xr0UTf21!ynp zSeABlkK1+&(hTrNHryodq|_$`Nu)gBH{Fs-7krv>BE&n`^~&NacNT5Z)Vs3yhSCA~ NmX%p#cq=uBe*pHTi@yK> literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/IntHolder.class b/libjava/classpath/lib/org/omg/CORBA/IntHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..775f9947967831f807a2ca3af1e5c8676eac5a1c GIT binary patch literal 1328 zcwUWDe^1j;6g>~NmDVy45ytQro5(hlD*kq8z$L`Rg&83;_|MX9bw2D`Qr<8o`kfRN z5>5O7ekkL8Z*{W8MVhp)@8;Zd&pr3OpTEBS0B{2jH4HIK`$5z4TTQD_e*SpPDth9H z?>3x3Lxf>`$KJOs*Y=uLxwhlfg@zczTyM&*9|*hVI@YEL9J?id8DgU9`d*VEQR+o+ zz1wvPe#6N#ME7mCO;}cB7+I;i+~eXA!*C{BVTeeOhB1curq>RW1tr%hzGpoPc#8|Z z@BHD@aT;edOfXFL6)ZgEUcFlleC|ThYNV zYeK^a!&r%X&PKacbAqjo2@@s1Zo3sb;Bv2m28MA_@|)D6c+K~Sy)=e0d zLWjXHDkX8-t%lx3tK@luVWD4QcPd41w=FuOA;AW+Sk#bXNc|sg;wr8&=(0p;8x4o1 z73C5{s!mc=ij;$6NM^EwPeZKwHsFF#nSrg8+oHFZ+qkRY4nz6`2`26##bBr^VK*^f z0qBgKs3c`?`t6|ZtaCZucz04u@}AI@B7f+OVhBljCg_?mIW}5jv^xcp_M^00CY*fY z-x1$F!1xiSJ|p>wB11SwUxQX)m9P(RUPUESqMLt{Rz_{@XMO?u`$hj7B>bb>3WO^t& z!d{UF&0}zgN6KRE3(|+U)i32e RN%=59%6&3jmd>l3mEWT!53B$H literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/LocalObject.class b/libjava/classpath/lib/org/omg/CORBA/LocalObject.class new file mode 100644 index 0000000000000000000000000000000000000000..f666fb8fc3240f8759d10a61fc0f02c428c60c2c GIT binary patch literal 4238 zcwV(uU3U{j7=9=HNC_!~QYjRHpnRk)w4#7Yv6_}*BWV-USfwcIG?^v~o84u0Qqybi zz2^sb1bV9v@}DPjS+05&S;3LRhzb@BUBEoGN+mZ=A*iESHWkQ{*ltxlafP8mkX$?1GA3Gc%V%$Qu4Bdg{Yw{F5* z96ms*?Os@>qMn2g;X2yT4U`{m(3ak4HYBd@Xf&eF*9jcu%(fg|SbRHIWv0+K8JB55 zFRZY>MGah(!ov$Nu`aoOoP;Gn5rgPL4JQ!IH$^sGsrlXqU7gDpf80Wgo=}IQpCtg7VtE)^DJf|`itt*hPU`U0~ z8D?QD0vcu2t#1gN*&~MRQHSv@JoPo3Gu_;>9wOyCA-X$O77Xe*UHoi|3we%X5C!P- zO|q7aPpn#2y?CSx345f?!g9n8jfr4OM1)YMsRuydLT^s!qIKwv@F_Hf-4vJtMjO$J zb7tEp4jb4w5r$dYJ#lb^{aKDf6{SWvlvsmur%nyu9B05%r116J6Ki~n$XQb_aGZY4 z;u~^&y4tHWucpJBgA%h1JdQ3#W~NiKEWm(nDpKcqaUgIbq{Y@F6C4nf;>@w}6l9BD zXWmgj3!8^hGz~nPH{G&2Cg4aQ{cn3!Cnsg1|D2(DA(+tNv=PxnH0NxY7 zz}Vf9#4|YYTL3{*2v=Pz4?#Y?4yV+90!|~jn0h(`X~dIHXWNc^Pll;~nH7TkaZM_jt{rjk22j3Eq7UvnTB* z0j#GHSRZ*B{wIBHb|b2HUf}h2 z%-SF5^|Av!<)f$I6PzW9o`+=*{Svr?7wZeE{j;MAF~15c{>biK$G<}BSU^R+X6f&U zES>hU^eL1)tR=+i+ZF2{g|#zrZLC!&dkjB=HS{3xIegJ8DoI74x(wyhU07GB_wbx@ zQLiZsbPgPJB;6sG_+SLSg8NFY248z4Fo<^wmEO`wE=Q!1!KT8k`R%Z0QOV8FqSit0 v8DS|D;Q>5^9@~PfM(8o{_?3DJVD?m&E?t%u5i8UOLPfSkyFT$zG$094tkwu=e0*q@c2fqoyUnu2_(6Y@ zqC%pHKfoVlyfa-(+t}DmCiB>H&pG$rnP0!Z{{(Oi_f-rrOnH9I^y)Qpt@z^Ms#);d z+9S`Y+P;bi!}zYXZ<&te*39Deu3ZUKC=9dRF%8cTtZm0OHv`|c>SD>D1!af0#2}GE zcf{8FhP~!h?L0$t-*TFSXB!M7%N2*aJb1t`Y-CCd5dl(>V3@DD%`iBi;0m4Zna_P* z=K=(y-8?ZLma1dOktWqSq@!I8~+Ap zN-;2;(V=35AyMG2{j6Evw*9SEF(wLL#d1oP&&6IIY8b|h;MXb5V2AH9qze6dL3N54 z8!eTKI%3cm#)KzsIpwf`(J~dk%COMuvE81>Zlf8rdPI&jWU#0r%P{wUypGGbLYhLN zqjuCKYFm^GAUPXESQr%@q;!o;|7)R?-}yWsl+ibxVl(K@=N4|OSYk*I5TN4@<{08q zr6VK7lOVcq1If}o-}IV(#a`#4&xzxf<;2UOS4Ksm5ycQv;&#x>W1@dFE3_MhPWv(1 zEfG$9@gIo4I>7i5l3$SeOeaG)E6(NrRf=38{5_nLe+1i9o8tz}jOJ+e2mo6)d b*{?_+;%2Xv4`k(IA1imM=t4R#W0wB_etsAi literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/LongLongSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/LongLongSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..3cef2568d0cf0b9d6ad7e9206f2c5d31409bf67b GIT binary patch literal 2086 zcwUWFZC4vb6n-XzY_e>d1~7e78){$jQd#R;)zm5=l|b5HNuv=JH_5nJ8g_Bm(DKpm z>ThX19`Hy{>t}zI$2+qti6OM)oZXq7x%auxz0aM=-~asi48V0b8X^oAJYk#OhHcJO z?#<4aWzV(cv%-H|;GIn_G(;Irty|lc*|A*PtTfhn(`Sg?bX>>3#W0f1)fl34UW@A( zLBhZ&VhqW$M<7KaDb!wJyQxwf8+~G#y*`L zFrRUEin-NA9Vtv`7-vWw+BYzXSBOLivbN$2Zfyi4E@yKCfSaE1<(}CyD{46X!g6_? z78ePman`^&oM#x_wmMyckE|{-FpFVg2yNPFzc_z|OLh^b#V|=!dtwkf$F++(7~U{& z372I-cQz^JxkD*cXo0!kYz{@w=j^wl!gL{*b6l;geT&7ld8Ym;no(<2rjFX zkpgBKU3*$b9;Q_PErxvdFw4G`YFl^@RZ(*_4R4bI!N{X<8E<59dl+_$E+^qYC7rlfh7GQ>6HyuQYad@iI1s`0{{Ot%auW>VZEY` zgyZ_2>TpY*m$uT8zR8F($sP$)ayPqvfE6_LXSl6lp5fxl9SnSq1%`x-vDTpmQs=WI zF%}Ihp-fG9uqU52O9*R+4j1KKDoNU-j)Y^lbR2#fmZ^Ddw;LMC=4+A^Tjq?!{ZE+$ z?xCt-h5C0ux;d$of%~Ayn*Si=oE}tInNjCf@Rby+&Tw|HexZ#@;h}JRuDbAu94cME zmqeiYw^-Bg9UY`&xES~zbe?q;C*&N>mI9cjftD=vWN){>(lJi~QO_TX97S32x}wQ% zJF@%Ihi=Acd90#SbOnq+{xq7=4NPy1zDyb!jidQJ#GlY40-fG5wRi(#^fm$m8c)!e zz)2)S=Xn|t1EA|daS5b_S9 zD%`{$xVVcekC*n5ua93NcGJ(*MvTm^hXGEil&Z8+Be?nj+c?eM!Mlp>dw4&DzE9TD zKDm!{y|9NHckRKEZj#IfhS(eS~H+nC)XPb4*b| z=AMp~^M#SZvt5)5y`ls`d@}D6*mhrGQsjOYQXpOaKd2ydWrxs(P`eV z0}bT*Nr6RF+FxTebX*EKCG(QXHzB3QVA?+u$S*YiwU1E}96y9<2aFhO<=6ffA4=OO literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/LongLongSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/LongLongSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..b086be5c6a34909cfc6f1f9ea6000a915995a8d1 GIT binary patch literal 1512 zcwUWD`%lwQ6#nj5S2oH+z%lTFz$V?MRD3Iljwv#1Byn@b@WWEJI*O&m(qV}DKdIr7 zsNoOrk20Ry)ja?MY3}2k-t&FmIp^Nre|{VSn8tGv0ftfAsVeqHRmm>Dn$IYzZB_Zm z>mL?vv!Xj9f((7@+P0>cnpIVnSJ(BjDPp^qbZvug8H8=ktkD`+ zSz_pPcQ*C1T_Jlyty(od@Sk@}$vBR-Qy?=-<_tq<*02nBj-f+N78!!v9YF_rC3Ha& zagIcsiW9~F&Wjji7;G0@$i6VFii9YJ7`oi|C6f~8gCVM(baWh$isPxe>TskHHH|gb?+n)6-=0rTABA+2Z!ed_jh{xjP#^W;*=6S}0O?PX` zA=^V>NSsL%!RPIoQ`Q#@eqo}=uErF9qx7t)&(6gbro2(py zv;ziG2k1%tMBm%*=s!Sg4;Q|XJAg}GXprVbnlltWPxcZnlSitDViZ?s<*;KutVw4B zw8oFarqX*DPwmoX7vqQfh&Opg5TZHX!t)wKC}IL{Jicfh)92$mnNnl)C6V%(b)Pwr zO7A26tBc6eoTf BO-=v+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/LongSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/LongSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..adbc98874b0820bd89550b5a1f281a91c15aed83 GIT binary patch literal 2058 zcwUWFZFd?)6n=&f7Pi|Gl1g7B+HJ=?{+sE+^<@V4riDwdrhlTvwTNdW5kwN2+0^bsG&twNo z=iJ?5Zmpyvg((e_45=gM22SH8BA`IlR|B70n<0VA+1vo&mgfiJ%^HyZ&KxlGg+~k4=kIT^HyuwaVh->f5dQg zL}mllRI-@kZgZbHpql52<}Z|9>^fl|iUsJtD7x z;|8AWYD?Uaw$zcn$%rz^j)W<>TiqbU3Y+;8+}5zjaPj{g419_uhJ=W*-k}DPcT!?} zW?&g*()93b-ST~Fmo60LT`CF63q4v_z37dZ#a{9P=ay_4=`hQG`{m>o@srM?IK* zui&h>O3@j*_G1t~jaKy1(x}mwNi(B)Jim|l6Iw)|(-@PRH*kVRBQ&7-B+Ut&LQ**| z(j1}rWPT45f07!7-*EQvA&4#ymk>uu0;NM^yo?Jp#|iQkyh;!W@rEeKJBZ3~Q@`Wl z9W6IOw0a9~OSbReT?Kugtc88@0O@*R zA2;sgukGQ3UeY04o17e4Z%DXI=z?34vsitEX~{W;kBNPRR&$u|V=r<{Q9%}->E(Q3 ztnhpfr9!VLVUU2#y9Bn=SC|yJ--QrJ7ykz`2tCsZx}fAcaezwwSA4#YFM6P%Tt7;% sh)nw{tSQH3#VMH=RK8Y}8iQ&7L?A!Y`jdrhvmy{|p__<9OUFa9l15v;Q zO5)6*Aq?Q6fI)`A&V&oum%3RIF@#|T!TC@!sBng%+-YXBVMH*(xuXmt(&;v-Vh9YE zLjQE>t~=uL#Z%KolLzsHpSeoJB`^5TcJmG~zTGz*w1TEK_A$hKR_%QgcGK@;8 zlZ(`P3E{j|x69hH?rl!nI!yETNY9trOy2-}i1L-AC(Zb3&~JbwdLnf8lBU2<5-^ZH zL|^&`BJaK-dWhIQ#=g?E594%3$p~1XbC%raNPmILbR#xgaRpahKo2Ioum;)s=r{3q z*mPzelj%JY_Aq&LfJBQkiXff&HqILiqlh@(y1b!AOpnJUiArMhNg?f#HIJN3XAY40 z875eUle#?I%<1SxiDe2`L5zYV@V*V1Y$B7mi+e8eJ|1|;f`^P{ytofLi1RHkSEt$WMWfZL literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/MARSHAL.class b/libjava/classpath/lib/org/omg/CORBA/MARSHAL.class new file mode 100644 index 0000000000000000000000000000000000000000..90b1b6119ca25500305cd765961d0679fb1152bd GIT binary patch literal 950 zcwUW?-)<5?6vn>;w9DewR-{GyPpVacs>BPM7>o%}jMQy0UF5cI>4;<4-DY<&>I3)! zK8fC#cwyqL&*C!}&kUO;jriwc_M9{G&2PRvGv9xH`3m4J$_7$|#ULEk0&iGrbq|`2 z+Fs+pdEBrKWC&|#mz=jzEWGxcfjEg};2W4F6kfTn-I@$)jtHeYlJDH3ksvHYy6lTE zV&${W4uN(FbFILSV%LxR?r1D#Ui^5TdjH|uGGX?C^kw{z-IQ%j9J&6m=ER}&hxJOI zkZA?S!o&jd1}+fR&pK-b-pNQPQ%>y05ekNuZEB2F~egS2C^JYeoZOlkm20I9DmRAOq1&r$6R$Q{R#7*vG`HzE~z=SLM52A zfy-PkO_WSr0d%&CHRdSZdcwP}`M|kq{>mSK738R@f!0Kt02O8m0MFF z_mHJ+4Jl28r>;y~#Wf8!v55k!6}XsydkoHS%vQHnZ%^SiU{F(Ys}tQRH;e1~Z&jvF PNa;+SpgMg+b8h|uzJ$4= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NO_IMPLEMENT.class b/libjava/classpath/lib/org/omg/CORBA/NO_IMPLEMENT.class new file mode 100644 index 0000000000000000000000000000000000000000..75de0f307e67b8dd2b94f124003a58dc79028382 GIT binary patch literal 957 zcwUW?-%b-j6vn^lAGTW;fm%SJKvmRI)YTgkQe)DVniQ7S(9+vFlu2FF-66YMqu%&L zChCoe7d(Iu;Nuw2%r-<~Q7>lBnVD~X^Uaz0{`1=zfX65qNHDC(U}#HkXxH0^wW{4} z_nQYVoW?<;)isb}Si891c^5{)YrGwZ)5w*+ff>5$VjejI3k>TQozi%Z(fRwXN)|~h zS+KCo@MMaS=Dz^S>73*GqBZu8MbM3lk#ppLYQd=@G@eYRqE~LnP;f4Pg9?M;i7@0t z4f(?kL$b8h%b>^rhRxD{*-Lw_F9UjxCWASM72`;9!%l(sah{Jw;b!vxf$Hiw^f-sA)zyM Lf~xdg&AImryZ5|4 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NO_MEMORY.class b/libjava/classpath/lib/org/omg/CORBA/NO_MEMORY.class new file mode 100644 index 0000000000000000000000000000000000000000..5ab11c43740114a8697a38578615a07c443df15f GIT binary patch literal 948 zcwUW?OK;Oa6ot>^QOCi35YmRy2LTFAQ@~<_gn|%l8c>RppgKfiLo`iC!6^1rwgZ%Z z1sfz52(e_#|3TatN0BO8U@^XT#%I2J=Fa^1_2nyod#D&lF_dIDw530^>z#w$9lPD> zw;HX^!Ak=fhPBf_-IFL5e&hW>9LJsv49qYT-|)BG_N48K(BmWT13w%IhJ{E^dm@ZT z`J%bU!1ftt>oSO99>hI98jI|=r|-U>{M@WD%sli0FMh$%hDHun1M4nx`b`>t9ZX)IZ= zP-3`$hLPsK0LtmS;{~EU_76qaO`1_~EN0@@Uc|8MoO1!x6vG!$#D|*j zhZlx)WviD%nE?zNmH+aV^}RrbbQetqbC4*+5w$-QJdy!J-j(BUAf9;2;@s5CT~(gm z3>Br3rEvuYauiK^ODW`$q1?hOedlOpm*y#o`RaE16Xri-@uSvVR%`mtW7@fcWy+Qk zB@tHuovmVxIEuGE;XTlN;6k-<^&DW6;=Tr2iF5)~m}?WvGs2`PnuJ-oeFns(Gj%nj zoCv3`OkBqe4K}fXBB>R)Gy!)BoS~SjZm-@sgZqlQ)z{o=qMLGaxT#O8GF2g^GgU!# J`j+Nw{suE#x&{CM literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NO_PERMISSION.class b/libjava/classpath/lib/org/omg/CORBA/NO_PERMISSION.class new file mode 100644 index 0000000000000000000000000000000000000000..c094264d35effed76620396ecfdcf95455a49dc0 GIT binary patch literal 960 zcwUW?Pj1sd6vn^FpE?dMEg@}zv?V}+GzBa+NGPbHO@rjtjjK9jNiiTf9EtqT&znC^-+y?=F!RIIlupi@Erv7g3Atb1tF5 zp!p(-_&`zq@WYU;t#=EkGJs*N_Fw+;z8A=l?!#ix`>8@4(-nk*M>1e2x^fiu#WPQN zpD^?wu|V&K3e(8bxCRXciaNck42sB6ZeW(a7indi<{65``bPE>=DuLzqtabT*3_S; zv~vqrDO*gHM63WRTgD1;65i^V_gL|P3-!|VzW^+!$l_2$Q9#6Q*)+ z3dE%|brhtU3eQ~WxQSZ|tYZyjQYYZ0F}OqE9K}L?WBL9R?hEQxPjTz1?u=W&ZFSlt RODbekmQ+YOeMfQb{s!rszOeuR literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NO_RESOURCES.class b/libjava/classpath/lib/org/omg/CORBA/NO_RESOURCES.class new file mode 100644 index 0000000000000000000000000000000000000000..b3160694b8aa98ed25f5c6395fb7286514238ae1 GIT binary patch literal 963 zcwUW?(QXn!6o&r++6B6m7HO+3tyHU0P&eL~7>tRfG(lG|Eaeubbb`~cyJUB1)H{76 zy)p5^2QV@58GI1qnOV}?y-y-S@(Xdr^;%CSq><{l~#}HTR8S{*m-#^q66#Y-{3(dqc~K0_hEF zyFG?f-9Hu?EFo`TnPKa^v%2q&M?#r$A|6db6PHn7FzfB-FYHFQvEOgC8A|rwch#~; zV%3C+HHHT>j5PlRP)>8U^h9go9*LkE7b9=`1F8k5iqLpEnTlS?kfCT_{021!!xdr3 zhZ^#S9fo9ix0gnV0Sr6k|FUQBzAHUHpa*F(Eb#syR*7SVH17w3hrY*9u zUH;wGJ>`SG5S>nKj@mj5q$y_TYbB6HigFW+)L){RJsKw{W-Ha?N8~#1_nKRYb!Xf(ZtB~r ROr4O>nL0sL`j+P0{skwwzo!5I literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NO_RESPONSE.class b/libjava/classpath/lib/org/omg/CORBA/NO_RESPONSE.class new file mode 100644 index 0000000000000000000000000000000000000000..db37168d746b1922b24755fd26f195bba656583e GIT binary patch literal 954 zcwUW?T~8B16o%jF2ivWSU@agPuqtXP>c$%rQ)5C)O$tj(*wQ;whcc;Sy1Qg|Yy9|C zcw^#)wiOU9yC@c3^X)*K#4_*=%rF#R^EcdWLN5Q}qhPCs~8i98*63Ubt^LQLtxQZf!)#&W)JI!u$yWj3Gl%2ots^yW! zq6G^}43DQ6Y5fbJoX$DY7wxfkB*Jb|jDiyks1}?mLi5RDCVnL&hLUq(3u+98C!&ZC zHRBIA4C%^7FNZP%7}hKQ^2ktbVV1s^X{Ao{6vcdXGyM^BpRjPMb=TCI{sY32 zF;Nn+1n6u9tHe>fwF&Qu<^z|ig&P+DcPQ>^pp{4`K!v$E!R!(yP0=Jw>HZW*m+o|^ zA>~AP=E}q^+}2nM_1ftM!WE`c)?bJfk22UECxs@6-*ttPrNZVq?!ZB?dDNa;+S LpelV=bME~Da7Vle literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NVList.class b/libjava/classpath/lib/org/omg/CORBA/NVList.class new file mode 100644 index 0000000000000000000000000000000000000000..982686747308238bd3cd01391cba950fa9deef09 GIT binary patch literal 595 zcwU83O-sW-5PjRGNt;$%YptIZytN(-g13s$7KK7+!Ah>OO_sPNACe|Tf0ie~gFnC@ zB~DU7siF%zZ)bMi%=kY=c>Jee!48uk&XgI_3zu{0mk+kMk7XFlHSGQnyH6B{gis^lhl^AgdNS#% zPr@X!#g$CODlcU@Nk>$UKpl`SjZUOFS&ck{kP#M+pHY0GLk>DwH4C1hOt!L2AY4QG nz3ZrESi?q!b!=wXz*dG$x@XuXjzYLYkv;5xkI+8II<-CkgSmrg literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NameValuePair.class b/libjava/classpath/lib/org/omg/CORBA/NameValuePair.class new file mode 100644 index 0000000000000000000000000000000000000000..1b9aeb7a4fafba3f8530c251aeabcb61b86d6794 GIT binary patch literal 684 zcwT*xO-oxr6o%iE53k1SN29e`t&O(On2ML;QYmO`QMqU_HR?(xafl|4-?eF(9GhX3jfb&-*B zG&}N}P)UFcVf0L#i>N7dBigN<$+`{DM;Q03%0v~JDA80uMXf0V^b-obz#k^DZZF!} zh`(s7>;)lv?i>hXaqrnReX+uZZI7(Vq^*qJ-`XJ1Hesl2blVDTeY~vr@awX5PgjJL zIw9oa$CwqHDBWOE->TBeekP=g3spjTE4I z0MEON8GEYQgg5asPsMJ<;{O?*XmFuA0EUGa#S5q2h8RGOA4TY6*GV9byU&xWm`+lc zUzJbRW4Gj-_z$@?q>x3xl^lnE_B93(@@$B83d5|}$!l_L^El44Wv;|ETe`)|Yrp-9 z#~fE+6B%q{l2!O{2vdxO2TXSXM|?8Pb;JQmA8#;ITD-yRBP!1jV4ueWPIkyijy$sP VaIK4Us=)ckt2rNlFz+ev{sH~4jfnsN literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NameValuePairHelper.class b/libjava/classpath/lib/org/omg/CORBA/NameValuePairHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e286a1f360cc371319b78ab9d7eca238630869c0 GIT binary patch literal 3134 zcwUWGX;%|h7=ErKnIw!0Q4v9`s92J;#HHF+tQrFPA^a?114B>V$b|B_ zOehkYI1>(yDLFN+WJ~I}q8aDaY(X_7I2g9fDsxIGtLT|fY*s!(_&k27|DXp98)Z1*V%Qwj zbakwhn^uh}Wjd>JkNK36jVp%6->ps83E|I+7Wiarft!4qGg^@xM%Rsy5KHR3X(&9b z!+kb|u)Z+hU(3jV7ai!7u#=&!K~+W$WiR*|chS(2YGZda#$lImgc!y4M6QVLwAxy~LUDU@|s7G!dQ}j*Yo- zfT6ukX^%Qzp!}<8FZQ92bM0r?-q%r|2s|DVdrrpl=qFS;P0t$)Y*@lUhFvwC zNLDEpBTCU6nop?(Q_Jflr7&!5k_;-UX(inlTOD$e+Q92`8*$vELS33(R1He^k!I;$ zlQe(aOGF>%k&~f4cKt@-4!k1cBu-IzRK3;}!2!F0W;Gys$ed9Ku!A-!uE?rt!+N1) zR(02@TM2^=>93RUA_AWm=Ro;7&#-rWk1}4xF@{zSGFcRCd&o#s#!S4Hic5ARyiVLS6RVcnlAH%gC=%YFqO<{ujA(jV#xzn4 z9`m|I9Ce-@xe%mza}_GDzc(3n+UvlQ@yFemVSpP)y||3)Ts+HgszH2-jK(f$*3w>F zg3fK_83vm){i@dM_vsSgM*?M!1R4pw&G;KPw47#YbLvV8O&KLll#7U>`tjlhXn!8J zBv3K!sM(1b(-SJEl20ocZ{aqvJ4q$bzeYVhpsAYJY7wa)M-l1E_)(-FC0}1ap z%z1jq_z?H#o=i~%nkvsAl~K|poL8FB)Ub2K24-a)Hnj0Ft<)MhAwm~j_nIbnKZpyv zV|823n}%jm%M7hLTVf@%)@JJtzR&TcgfHmwdJ1bYzTy{&EFf47z%6_u<6C@3iK`xn zfzjUdilz}M<(K9}?^8v<;GN8ujFfs-?nJPRmltuu&eAmklUxB}qXmNhI*q-;R2XM0lb1<`OLbNdNt7`Z4H64ypJ0Tq zqfc-lScB#x_dte%nIY~qx{zmA`02zXroc1m!)unGI4)X#exZFXHR}8mmqseMoT%Vx z;t{Tuk@jVLS{bv^KuZOe5!&OL z24%#g%$Bf&)-K$H9}5)zEu5nDG;ZTO?ohUFFT-}y&V4+fw=N>-BYZ62eu7Ue*rOIb wZGqrpj4a|azFt_w*EQBRiHg2Q@!cm@9;{%b4d3Gj!F(J4niMtqqtN^5f1%0+VgLXD literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/NamedValue.class b/libjava/classpath/lib/org/omg/CORBA/NamedValue.class new file mode 100644 index 0000000000000000000000000000000000000000..eb23677914aeb16df9ab06d700ec9fcbd862ed83 GIT binary patch literal 383 zcwTi-!AiqG5Pj1ojmBzfwIbfUwH{o0R)ks*gwTSO+&AeOw65`A_szehmi}5)#{^vXYoSE-GzkUO78+8pChP5ynnxQ{5t?qv7vDs~H zw=MTzx9c9XU)YYTA;+-#yT*ARC){tp>+_>Tgn@NF;k)d#31R{CBP_1_qapVO<(@7!` z44WH0hMW}+xQ+#sHJq7pZ-xHRh)YvW;w9tQz*$rn46FNWuhVwhTXZmnTIcV(nk8hh zXu!Y{!<`vM?0*5I)A^1F`0m(0+B$ksP{MbsF;uwMT!i+NuJVMJGAGwA(P!3T5;5%=OSU?@4^IO_8!LOQLU^mI$Q zpoc`YY2;~KfQBMPogP>QCFCeKFh}3hw9=w^hGMC)nf;9UFQ|S}x^r?({dq_`AK^S@ zi>Z=`%Ye#Ouu2@sTbuCiDL!zjQNH*G;8TjW0vf4w0+g6b6U+`_vJ`c~EZ>*`*{3r( z3Q|jj$F6i-#uWwDv5pFIEN!@y-xQ$eI%q`-oI<3rPg^bE% L1=;CqigW!J#EQRh literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/OBJ_ADAPTER.class b/libjava/classpath/lib/org/omg/CORBA/OBJ_ADAPTER.class new file mode 100644 index 0000000000000000000000000000000000000000..5f8c0a5947bf934effb678c4effb67edd0ec5bf2 GIT binary patch literal 954 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ORBPackage/InconsistentTypeCode.class b/libjava/classpath/lib/org/omg/CORBA/ORBPackage/InconsistentTypeCode.class new file mode 100644 index 0000000000000000000000000000000000000000..737416bc7f633222455931dcef742d02b45988de GIT binary patch literal 622 zcwUuJ%T6OP5UdVK2C`Y+kL9t5BM-p{aRjk~5G2q5D+0Nj!5R#~jyw(met_@cgv5c% z-VmR`cOcr6Tv)hpn69=}T~$4PetUcZu#D*dIl`i`NoX#UuySy?xe;>tE8+{0$Z$u; zMyD!uQoEy@rmUD#86Z!X{5W!)N?W~-Wz#960~84}9|=ukoj7T*;#O4EPPv-^-Gt$D zaV0`!!kV;7G}Nu<5c<>XSeG_sz2luN0__rhRyd3k+SNs)B@6$8Kd*Od%P)lDn$pUx z6S`*S>V&+HSwa^E%jiWPp)XQe?zb*aq&;do3`Qnq1Hm?Y?p)^GnMw&^^sWD~N*I}q zvPBv~Ct=N5rIXdUx=%3f6O3^}D@AIwH~z#Vlxn7BW4Wz-it(>Zmi!by7_W#N3JAEH zKo3fcKlmwgDDy{tU9SCnv%*M>h4}{z+-H;_t|dmGf;_4i=C0f(VFaU$USO;vu+B`+ gEzU1I;Me~OdpxtBDU7yR9R=S_U@|kG%4UAQ1NWSa2LJ#7 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ORBPackage/InvalidName.class b/libjava/classpath/lib/org/omg/CORBA/ORBPackage/InvalidName.class new file mode 100644 index 0000000000000000000000000000000000000000..5f37a2c7e74bc2eb7c8ecf7e577954b90666ea35 GIT binary patch literal 595 zcwUW>%}yIJ6ot7yPC>0A-@gp%pEI~*#2@=(iRs^zQV}dm`BsTImsPql` zINgBMMIV4C=+jiao@7zVri;1f+WLHs@A&cekDmax@is((uxe}?n?V{kKAyZkh`D?c zy=#%m_(kpeY@WlC%*`#J*Ab~ zCrqrZcL_nmT*?R&m@DHIrU}!D(y~1qTu6I5N|;Mbj{^k9@Or!%xX­i5M)H|!EB zYe|0pzR+phaaQSccfIR_7kzMzFJ`64jP`lYNJ7*xL)(*wDxdi;?=27WtMEW5pooyW zI$j`ReaY`tK$$=C!*QMAogG$UEp9wu_Ir-J<{GgA4FqUmp1bl0LIqV;Z%`W>>@(@v f(#GZk7XEcO<}>Zwp*o_*4!)~nDGz^>pIQC`j-!Ap literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Object.class b/libjava/classpath/lib/org/omg/CORBA/Object.class new file mode 100644 index 0000000000000000000000000000000000000000..dd1a6cf6d93574336de5c0282ca504b615ce2ed8 GIT binary patch literal 1024 zcwV(rO>fgc5Pe(HrX-{-C8aH21x}8Th&bnzwjfnXn<_y$z+tu6Q+F%J4(m;n{w00_ z2YvuQ3Nc<=L3Pq2KKNLH^A~^*cw5DqKr=C6I~j-Vlm6hi+wOn6A>UR} z5!ks=Gu4h%92Ts=w)71tOVZHyDW%L9uXi`WNfKL{+fMJFduWZ0!%j(fG3x2mF0pD% z!AM0@>aX@Z+)Kq*8&yJc9tD=DwV*Vw>>SY6E|d>#FFMbOs9R|W$Y$zT0|-(M~rf!SiN_v%HI1KnlfF?LnbpaMhBer!Yfa= zm`jNrlI<6!&$pB14k@bXY^( y;iKZ*z!v+q*;QfOVP+RkT%?IThflHZ@BoJnpW(T~7kKIL6^_`=o5b%my!i_w7#(~7 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ObjectHelper.class b/libjava/classpath/lib/org/omg/CORBA/ObjectHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..b288d39071ae4b8d51030a7bc0ca475a615618dd GIT binary patch literal 2070 zcwUWFZFdq!6n+K>8*rlr6*Y+(jZt1yw6#@B8cQ&0Dh5p=8sBh%kxmM`oMnmeUs+Ej z=jb`r&;BTncZN+N3$)?G%+8&ApZnam;p?}L{{XlGuEEDJVcFG`Rj;P9`IUuCDqq^* zW#=xhHMp%Iz;JNG*fdf#!>qb@48b{J3TK|dABz_l0$HoV!|)@dV+28l136*x9-YoLu1Is$+Ab-r+PG^8z+3+mUyvu3B2d(P4?RY87sW5XEsF6PRQe*)(b` zLXHk5s^J8~(VVR_5FdQ0? zbgF#Gs4$$!{ReT<@(EHpOeyW7Hi|0@pjHxQliO6>3xkR~IA!rdnDYCR4E$$?<6gra zt#Mq}aRa|l7j*pWs`WXq<)Bi_1`k?p;|EAg5zP%XTrwLir(-?5GjAfJ;Wvge{|};L z0a=E9(r0${Bpypj1rsL9UTp&UHG3CEU~SJHyec+1hbv zmsU8r60!|-@Av$HZ*V=mN&L=C_D2*>z!{o z-E0o;!xt!Oc*!uc2N)f%WLxXX_rEpQtewKn?uiRSc-3mzWqw=8Rv+(uR4>VC44kIv z^F#hL`l5H6R*g<6+G#W~lGw)RU-aQanAV^YUd29I^^OAVW3-2`9|v6H4TAL1elpR< z!7qsZjbrZ~f5Oyy32pU0{+P5cOJ_36^Ks}{Q*C^28#$N*;wKeqU*_RTy5i8H`=he zd_-IdJsied4)QCFNyTA~SbG!K#=Musi(QGkMgAq9+qmNzCzJzn{2q7TW4VnrF9Pq0 o<0+oGcJm~WvS1?F#&d4~b@FBQ1Q3LQlJXOje@=>US=m&+1B8m*+5i9m literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ObjectHolder.class b/libjava/classpath/lib/org/omg/CORBA/ObjectHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..7ae35d266b8585818c564b6b3f159b5c0d0e6dc2 GIT binary patch literal 1526 zcwUWEYg5xe6g>-V(}wUADpY*%lC)JKqM{U0s8$#|b_S3czgR;XYcNeZA;s~t{vbsK zM`!#2{wT-0NhZ+JPU%d#d$Z@BJ@@S0{QdXq4}f{B3+Q4nie#`CR25g@u;GIUdSRv5bF5JV2EM3k$*e;TsO-ShB3krbKY~^w)Xa{5D%CU(T9r?Mlr?^S@s2u$*sZ3ofsG{ zNe~c?;xYqx`c(tfW+lT5?9c0__M%?h)$DE0)}g#rQjHze z)_Lr{6w!?tu16wAoOk*@!+1*zy>rd95bIm)iA_m}L1gIVrRl0s^v@++q|+s_v(4GT z`EQuDy5ltgafwhcFW?rPPG`J?+gM=e;ae07e&dYF$#%UE)_E@Pt|Hf0dEth!y&ayoCI!PC7k$GeU`26Un538M=M-l+6}V7v!tj8N1AiQ-<0 zRtU#`@!#lsb%=pu#J?eNh{VwN5w3itl`c%uf1itcN;x@ws|T z7}F=Iq6^$Y2ru0<$phg!W_<$LC&&?!V?|DoO8-EzS-@*zc|(P$E>qk?`%HY6riY8T zftx<(s?QlqrH?SzK!IL!yVjp>F#0Crr&$s;^!mhy?Dd~PG<37OBg&bc|y{sZ_YN#6hf literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/OctetSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/OctetSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..92c230905c238759ebcec16f86e3dbe327af11cb GIT binary patch literal 2066 zcwUWFZFdtz6n-X6v&pg$(qefPQsgBs*abmRgGf_~4GpBy5RFyKCK)$d(%m}U6#CKc z>TdxLr{!1=`k5c)@y_f*+BC)H!_Mr?z0ZB_eeT`7{`b#U0ItB%5Memw3ET9RZF8#f zpg3t(nm+gE`Oh=Fv%-ajD8u0;Yt1q{mTQ}p#u9J(46z%I>-aYrhBDb2Lv+e(aUDZQ z7#K#3Az5}@e!sii;G$|ZI-Fso>@}@U%@U4$4-cb$+gW8eU49pb0)xh%`ofZdk7oL8 zC*AczcA=;vg;5P745?lB29Dr8Vi1BX&ijH}%K?M)nQR~6iYI(|XZFkr8jkK=D6iAv zB7rd+H*f+c8HU%aPM5GF3q=NIF^mr2OgHU!WUfHTDB`pjju6S72E@y8?Sc-54-A~c zd0EHx6$*G_S29&Pm)el^MPxN(7{&%$7)WDWL!Pwjg_;(^6LEYA(z?Ba@$F@ExaeHoY|U&kEr&8nao+u$Ck~_qScypTuMK}pE6wB zBeOnhDp|~NSGk~GIX0+Q7K+)LPGWs3NqUie@B~K=!Y8AC2A5J z*Y{LoTXIa=N=JGpBg!PRCrrs*>G}ay(9XAUN5eG3+5dMi@D*kl5;DeO$8&8pmL-XC z*T5{wG{Wl6lijsw31O|%Oi|*clH@$>NGyhP`yr=cj$zz(yP=Wnye8?eYEDYrH?kz~ z096h1)VzJVO-Y#yJOo9K`;P-s)Rz7FDm&`i3ci(6)ftZWS1+_tIXn@L&s7iZkwm5I z_p%5y{{f2{exxzlhl_znpi$OUoUqE#OeuhA8feKfr-IuZb&h!oh1z{z%qYaX*A-2E z$B~UUy7OB&A;&2?PNP2r`O|1eA6$BB^k&k^XdTXNBL18<5$N=csl)3yKu;qup!FcF z2^>N)be^U)LhHfY1`hv2dgNc=*t54Fy1JY}93=%b78v6c-lsKAkf(8mAQJLB5<=cX zRD~OTiL)EH@N9Mqx%$W@VmI-(x`>h4l`y~|l~R>XY6Mq*%QjBCtGK4vevD5-=!ax2 z?UP#=tLHay{a)_U20rg49l*88$)Wv{f=dT3xT!eH-IqA2ILB~{*hgqLiQ+c)GRG7Z zWa_VYIhP;GzuG`4-z!QG#3%DEfvs&TOp4s^LkgtJKLr(pKGh*~K9ujk7Ao~W@bxCX z>464v{i47kD(&yE5IW9=oRT?7<@=CQqd)Cm3FJ50|Gte;5*$B;X$OoLY~|Pf58ffu AApigX literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/OctetSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/OctetSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..40e881b05552ce3da0aff66b1ebc0dcc32c93e13 GIT binary patch literal 1494 zcwUWDYg5xu5Iwgv4XxpgP*72zm9$kNz7+)9DpKv(8C&Z(eCUKWmS9LQq&STFpVZ+o zqYgj7ALY0=iKRsprqg@xZtm_mdv@>7U*8S@%;1TL0K<99t}E7hUC9<+WYS8Z>S#_; zd$(j6HO&?gWawQ}w^YSY&AL)pS<|YHh!Degd)$U)JL-y|DMiQD)OCJj5VlmKL3?01 z!_et$Z)jDkM)qXBZZ`bDKi*9xZQJU0iOejSvkaj*-PE0Vh7LJVW(ab31Rdy+a0Zfy zJ|b~qo-hV*R>UB~U_0Sb_L*+hBn)Agb9-B{c;yU3`Qz@*M$n594m`>*A|HPzQ4WIy zl@LaRp(n4K+VjTxie{HQIr{TfRW-`0t#jLV2Ax%XlVL3Xzdn!}g1nsZ0461f=;Var z5-wwkA-t(MdCjaltCUa9akaX*cDia*{1ylmYDL~YS<8tOk!|}RDl|*m_(;}`i zOq_gQf`V&AgF{pd%dERS%kdo7CEUPG8Y1_bt8qo;4Pp?fqMS=s(0ML~*lD=&T6nV= zM&-oOMzl;%<-M&tbW8qc#f65`Uh*8~MLZydPZ1ztflD88QQV?=d|E<=m)qyL+v*Kj zZa72yRD>vZ(Q4RLZBgfQGSEH|)BI7=BPONkFCaiGO$9ydem;J*3*@19LTeXUIRxnh z3?%o_o&1j8*I&`UkLWJWeIa)M7u?VwtxL3~DLg~=Q;d;E@h%8=_c zTa*%-O5MYKKe*)cji!83vu$)A9#ZV4mI5EBjUP#sPc8JKO?pve@yMm~*o|BK4X4~i A`v3p{ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PERSIST_STORE.class b/libjava/classpath/lib/org/omg/CORBA/PERSIST_STORE.class new file mode 100644 index 0000000000000000000000000000000000000000..e1c3bcdbc5b9a979a952ef416de8dc689864f03a GIT binary patch literal 960 zcwUW?&2G~`6ot>^r;dY5OPaPo+7M`gGzBa+2o!{9-5{kkO%)Uq#4^h{UVW@=B&dX?420JLXZV z>$DxW@3@_AOGA!feOln0#R>OY?+5%e5n-TVj-mY4d*_)VG#wrZZzMi=$0N?L7^`WI zM=>d1wf7jR$4d-zPemY-XAH}ATMT5Ml%2~7sg=W*-} z73B{<4B7ftuYei@7&hzwnp|QPoe+Kt8b*rzqjZ}BeE#S5~t;}SFjLKvM K+37oqbN4si!o1c1 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PRIVATE_MEMBER.class b/libjava/classpath/lib/org/omg/CORBA/PRIVATE_MEMBER.class new file mode 100644 index 0000000000000000000000000000000000000000..85b6c53030a14debed6001025818328f3b862b26 GIT binary patch literal 172 zcwRg8Z`VEs1_nb0ZgvJHMh2PuqICWI+;n|s{~#wv{eU3PFvk$rcwbjvC)Xf$1{OvJ zfvm)`ME#t^ymWp4q^#8B5=I8rvc#OyR7M8IU`7UB=ls0llEl1{FpwBC&}arm2Cm@z t(xT*4x6B-%Dq&PZ^+4va0W~u)gVjnhurja#X?7rwiGc$w#tCL~0RZd{B%=TT literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PUBLIC_MEMBER.class b/libjava/classpath/lib/org/omg/CORBA/PUBLIC_MEMBER.class new file mode 100644 index 0000000000000000000000000000000000000000..fa240e5a8f1be2f6f90d5869c764ebb88d1ce32b GIT binary patch literal 170 zcwRg8Z`VEs1_nb0ZgvJHMh5BpqICWI+;n|s{~#wv{eVy>A5Z6aUsqoz*C2KV7Dfhv zti-ZJ{hY+SbbbG%tkmQZMh4ch#GKMpMh3=UMh0Hz{Ji3l#JrL)kQg)2WJX2?uHgLA sqU2P!%p9O9Arv$9K*q5F^)i6fGDtG8GOz(@b|8<5fdeeY31)Kv0DfvC>Hq)$ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ParameterMode.class b/libjava/classpath/lib/org/omg/CORBA/ParameterMode.class new file mode 100644 index 0000000000000000000000000000000000000000..e287d827552e0771d4b85bcce5e58975066bd2b7 GIT binary patch literal 1385 zcwU86SyR(c6#lMsCsIWAwTehvl_)A8i`ueiu~4K?r^7=hw4nyuq?4uy{sG7FukfIt zFe9VBJL8MLMqeDyy^Sn7VjgnO`kn8bdy+3dKYRjk19NViVdyZ-ylfQn@?>H$8j%+i zQz@#JYR(xs)eQ$j{kpQD$OT2u%Zb%>HEX%yVrUdr&5)C-sVN2Rg|b?pcn?G1Bw)!f zE$)+JQ}Jot(yT3lEQ_R+YL+!aUye;Nuvvz)lZIZl6x~WGg^KEI>iW9<k}ixs)L?)Y>f))_CA7g$m8_>)nZd1O z>~@G+jJU3uMlqx57Lg+^r*`JXFhk49h-hT0I(Ikjkn?C;l9s9I`DjHewz=sh`aKbc@reOR}jImIPN8FbXL6l~vluD|eW9a03|50#^XG}?$ z#tijn8C54OZt(9EiXFm)8#ImJkuPGJ%2rIzshf$4l~{`!6+Ks;-pr~ci?)_%lro$> zZDP`>m|1m36W4KKVgnqG`l4au44iPoOZVsnUxiw}q2QNO2mhg7Px`rIdIRa_kLiu1 z)1Hvr#Wa7emdLvrqJnt2c77m%x=;Q()lxX0G6)VN6#*Lx#$pL9~YfM?00?S z5j*HjrX4%zOQxMW=uhq<^i~kKB1*XE{g^1FsPqaoxQ1b<7^U}B5yi{XqT9u1$ii*D z@IJ1EJKjS+!m0!RRG(3Nkp`oS{N`#j{iK=&X&(l~2pF|^)5esA4miW_Aa5VSxrFh# zfRU;JHjEdyaNAB!la>2=b`WYGeDmZ0L+JyIq#H)}G2Xt1dwZDN$Aix{fC~>#uzg9E US9F=LkCo}ctQbGTBS9wq3nu&*asU7T literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ParameterModeHelper.class b/libjava/classpath/lib/org/omg/CORBA/ParameterModeHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..cc64f658952dde0541573f5367eef95a2a060e5a GIT binary patch literal 2148 zcwUWF`&SY{7`-FtK3q%D-Y-op#FDhPltpGqq9~X}FIr%t?ZB>QSt|dl>U6AAr%pfj zM|JvU*-{q-`C(?~aqoA(JKqey|9txiU=pt+bTABAb}4FAO3~R=`c6E$tlN5pJKSEh zihQ1z*SRer$k6*nf2&8!x><^*@^5&-Vd%PHn1(aM5D1U0F$8A`p&|f9Lnpcz_9qRK zFV!k}Zm;V3GG_=St%6=&(``eHy~&{S+Nd%NC))~%QB1?Ea+`u*4Ey%S&5c+qirCni zguXWUTIC|QRrI1?7biB=%(StVaFO3>4Z|3r%goas?ah^e5j;G^`xx|u; zD1%ZTr5>)zm}Kbww@4ETF5Q^7qCWs?B^pJk zXViB_zCiv+A01Gs?Q$otpqpB)zJdB4>J{w6eh)l{AngZwBHz)Q9sh#RCJttX|k?6b8pzqe3uOHXkSDx?& zTyk*`_4u=^sd#bFIolR?P*gon zybDJkgfGdk&lKE@!c@1g0lX4^v}7H%Zwvq4YjayZgx(I(5Fm`bJ;%LA+4p}8A(}}NtP0^hASDfmN5;dJi_{4$W+)1 z3Td3e8DpG*8@QR^wouG)m8?c>gj=7+q(XAmI#r%FE^imNC#95~FIXL6Z&Jz|lJfQp ODP`PAQr}HtD!%~;*$nak literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Policy.class b/libjava/classpath/lib/org/omg/CORBA/Policy.class new file mode 100644 index 0000000000000000000000000000000000000000..1f9eaa7fdfbfc63b7b64d60aefe9fc5dc5819cc5 GIT binary patch literal 241 zcwTLeOA5j;6h&`pHQM?cI2Ko6a0z}v5Gr;BX$d7IHYG+um*&6)xF|7I9EiTbo7{U2 z_x`xv08G%M@CXLlWK8cfHjj3*Dcfo#(=&xn(9ijaGsTOHMM*AFOVJ=0efLXkEKihR z>&0eSSZN*G{IP!cz$GuM)GQW8awRVnP0=P8{#z22!f-2faUcj{eKe_9NhJuvcRsFk UZWcieKI))oAw+cq9rrzSpHj#^*8l(j literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyError.class b/libjava/classpath/lib/org/omg/CORBA/PolicyError.class new file mode 100644 index 0000000000000000000000000000000000000000..23dd44b513fa309798b66f9e71d1a328e310de98 GIT binary patch literal 753 zcwTjpOK%e~6h^}${Q@n`${k1t;V+`-KX3WOzNlh7O_Vej#?hY!LhCRL-O zzO}|yP$I0H{5{B|?Y|qzL#K?cV202-2^<>h#9k`H&Go3SopMJN%n}yfh_@nCCXA(3 zB317_LzuBrWJVJxCN#4A-%#3&<%7+2p57wN^^DG(&~7Nwu`GYs+3CLgR{YG1??OX2cr^-iF81$&!1mGCpYZ-;3xn z)Q;DNRWMdZ6#-#Z?EcE$Y)AR&QlXPDc2?=6%e0Sj#Ybro7EeKZ=Bn7;mrkfO^WpwM z2tjPdb|g2HPuln^(`^s)Bl77{KpFg&Tyr#j+GW&G=g}P31)O1m{Ecus&og(qC+^Fg zW1Rn(Ba7Sy+yh%EAwrX@`UJuST;$#hmZpLYCOsQ?L1*O?mj77%X25_g&pFJC+|-=V zQ!-tKnV{Kih@skwN)GO1yV$zfFc!;VinY3(l(aWHoXd5DOeA!(v~GOgcy3>nA@gNGVP+VlzU_4U53^PZgY2%p*b4MGK3@|jApd!XhADO zcbePQVzr#J#HyJqSq!~tCvTRrrr`45+YGszyuxrH{U21444U=96{f5oiTWT@_D(XE z3F8QkYUpJ+(r~P!5B&_CUXG2*rXyS>Aj7~+hNA%~8Jc*3p)VRs@0*Zu1-FaIHVhH< z`I+=MVG$bNhzag7Y)cEytQ27;JpVp&Q3w2m`4%b@QC*C~dg8D+A&Y0@7fx*=hi zMC+12*A~S~XN`G#tLhR@%PcEfE+M8N$}oI*ypFi^DJ)CW8ECws&KS=BPesXfXN&qf zNWLA6U!{HNN>T&4GF-H)-hl+<>7Zh)&?*Y`z;;~6O$|4w3BF9J1#TB~+`?^!Huvp@ zS>h%QQ^a3U#U;ZqFeaz-4#RQ3Z(d9++Xf=v?dza~-qkUQd*npLau>}qY3q+Rj)ZI@ z!<3F=I4)5s9WxTuLa6zIhB+FTAj!*um$}Qgt-n=2)G=Szruq=ZEXHKow2sGEWay%_ zDaUp#+g(+D4>bs@+bsu(3E98HEhh_F-V5$h!q`72Y^mz*H(br{DzX}$Hry+L2p!Ml zpm(S;f2Pc-PnrKh2(C&rx6M+OXofRRRphNXE-#hA!0RI+n-w}s?P-R5H2R{eiryOi z8MHE5TjIND`%E8A2-CY&ZH}UY-uhkut(~;CqYK>);2L^9`oQ-OfFl@CV44pPd`_JJ z&Ao%4e9%V<+N1y{aMA-z(vI9~jStmuYM*OZ?XFOfjKW3sqP&vwYgiR)$9Y@`V1Cih zeEk6P%ebP5Tt&hI=MYk7(eE(UzF=e*qYLrg@fs%LUva;N>G*fd(!qmWJgQ+KzArCA z`2dUZzouKSNN#N6BKV(r9VB)M%c|ZJk`y33;}`ypa*6}OpJUAvzOIBbyik~zzX3ui Bk23%O literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyErrorHelper.class b/libjava/classpath/lib/org/omg/CORBA/PolicyErrorHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..f92d197722a1b65d72a321fea506bd75f3ef64d5 GIT binary patch literal 3053 zcwUWG`BxKH6#gCrCW)hBR1o)FNRWu#iM54*iUy&CLeaMA5XLZ=%%qbELKkaWTf5j* z`+r!ELQgqee(oRD)9+2DCL{!abKXndz3;pCes_8K=ilG|1ki(r3K|3sS#~CBBT|Yw(LuKHm}FiibwF*mK-t7Q4lzi*uagLR9(#T z#@>$3D&=vWOY^Y+c3`K1kU(3;EPB!rdwNVSIJS{?^cfYquv;LIG|Ws^cPvw2XB8Tk zn1VJMT78~$>|)v()@4L~v`|V;{+=5(IDnhZGzX*i{uu z{EA`H%fmP#;CF7O3bU3?wp*)1cJ*RG9K#6(#|3uO1fk+2PBC>E-AUzbBWF0qyq z0%tnbMyt!KG}Eafj0i(X+q&lHDJ^Sg1s86jBT+67vP5cQYn;@zg9udX;09wN;-H_L^l+3n)2Pk!^EeT_Ay`8-|``bbIPUHXCL^ zmnGIyT@`)iVl{ykRFFgk@pb2im7UQ^Sw9A4>MjTztTwS4FNjOHtYE07n(2v(D@agK z@;1ddbuCvKAt$R*^K2O@ik7uvaz-_3=3;HX%P`$Jq>+Su>o`c_^##Y)gBVD3d#{WsACk>vVhd&HlcD)X3=ISl{^2 z$W=eyVR={ha#&x;>v9+daSbV%n)d{DuTi(16O9++2n48>Rxty5*_1O(%N7tr@^VJS zEDVlQ`4q&pVu2c6l|bXOwsot-|C*-?ZVK!#OX69rP>5>c1zT%=b#%+3^Bv)1(Fpmc@DqRCa8>v%%3W}83NOR|D?c|?ZC@%_OUJ{;N;+8ch1{YyBygpT1z;|f}* zLS0>A8Qsb7Z|DiV5Lv=YkDggN3P0C4d>A115UpIsZtiILlu!Y@fiVyAHXV?`9uF@e`8WEXVDeF71=prRZ!hEB;jWPO6w_S{?#5)-UoK@q zV$XRN_mWcJ22W;bb&eKqVn4DBKldy=VtXE_3_nW=^GUi*SZ;WH={;YLx%fb1C|_o> zl(PjFuEFKVM!~x<$rE|jM(3T$6)a9IT%;79!A#?;~= K3;gWfd+;A3(E?Ba literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyErrorHolder.class b/libjava/classpath/lib/org/omg/CORBA/PolicyErrorHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..d4b90f3f2af07aa25577adeb2a701e2be3c468fc GIT binary patch literal 1217 zcwUW@-*3|}5XZmX(uRhxjSUKHurb(JnnEMQU(m~_iBxI&#T^B8Hn!L z3#FubC4(MUCJcs^6aUor0)N=|8l4l~4Nc@3wlBJlqze5`z`bUuxIfS$L+;cMBHB0V zQ{(J2te{?M1u}jt%SQ;mt8+-`%36@sx-on z;uGaHJyuc^Mci~|Bvfh_z;MlmiAxN&&Q0iGaV5E9s;&YniJZTVP_r`UBmHbB|@svnHswhh1ufn+t|S_1xuZ4 z^EuD#Kjk80V}{+iX!>5lvk`?~cd|WckzP;KzRtF6;~`3VR$^Sf?Z{U8l5k5=Godnbnk8aLZ%dynsv+ zYm!Ur9Ii0I6|jk|7rre~`3qKx3WNXv literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyHelper.class b/libjava/classpath/lib/org/omg/CORBA/PolicyHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..25393cdb4dbda43207f9d6964d05097315d6bfa4 GIT binary patch literal 2615 zcwUWGTUQ%Z6#fo@Ofns8Nn51!A~du@f~3VeK@;o;2W%--Mr_P6&whkyS4{SN@w@r8mehC$mY zCG2u3k;*R5%_f#?(ZCHjo!w?u9TVv=> z*+s4*fUt%h1Q||d42v(;%6aar>UonhL^5_kH`jE>5Wl_6Zg<0|GF-^`Ge`=n-3l2G zj*hk1t z2tvaE&M|ZuMTRpJw2}S_p;@J52}ca!17oUKUjxWjNOg ze2AhVhH(Y)wyY_%hF35_AL{gSlnB?$^?F}z1+3VPD?TL}R!PxN0o~eduaL+~HjPeM z_jl&Tpzs~n(M6ZWI|DWB z9ftEqJ?CcUbJ?YZ<=NGAb}@u^X<+I!hWJi}i+)uxjagBKIfkI_!gT3*E++!HnWjA6vLvk%c^ zU)%Z3_SW@eU04OWW=+3jBs4PL#gpdu~FEYxgio7J&E*(HmW*v?}x~ zK~F}{p4b6GKhsMWR9b^_a|$PD)#?WH?4@TIFW{u-Jnlhizu?qk^hXBwabd3oBPB7q zq~~QsJi$$-7|FUBN6h4Ct0^B^A) z8DTXP+sErqsUPCM;_bcLPcXe6nK{6FnRq1i8|LGGN?IbBTVAw5q6!+h5bo0MJxVY~ z7xjHyf-a*E$ux(&=pmBgeSAPD1N5H3hmr?f>>iJ(#0LVA#a1oMCM~FWJ%@)L@o4OC z^sv3yUs(PDq1aO_@6oclkG0Gb+z}#u+5oI`{*q+;ir&5^-rpdCZ)yL#CdHzZ$$e=Z zrd;xpX#qtq@T6D!5GlqV<6$e^@0-dWLK&7MZlmJ)&ycl<5{$+7@p)_Yek7fKYT^>a RHg=>kL2--8*t^o_(SQ5SaOeO4 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyHolder.class b/libjava/classpath/lib/org/omg/CORBA/PolicyHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..9bcec0e27bb80f050b082a3a466f6fb8b9f4d9bc GIT binary patch literal 1177 zcwUW@+iuf95QhJ4owzop=LQ68Lh0DV0~N)r zwsLpKeFIx~NU~$};cV!v9_EDfV%VL9LM?Ay`y!yq%*?d)Fi4m5)W9zGC|MF*oh>-4 z;UvS0{22CT0?7{%+zcsm(M)%uLHBZS4y4esf#)d6k%+wYGcWWz{6xqxS(zM&ikxct z2Wa+a{e+wB4Yf#AN z37j^@X?TRk5$*}L)3~zr9cv@(q;W06ooC>lVL!r|C?&W`(lTWP>+6`5kM1rex}}V} J^&;}B`~xy7`UU_1 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyListHelper.class b/libjava/classpath/lib/org/omg/CORBA/PolicyListHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..d86ee5c83e7f6f52d2886b4ae7d4fd09211903f2 GIT binary patch literal 2448 zcwUWFTUQ%Z7~Llcog@yn4FxKskQQ2Vp`=CYg#Z--g=i!Qn3iIVlW-aalbJY~wBWP4 zT>cB6e6218mR+LH{vF@d@0^Sc%}rQ~naMfdxA*>T=luEiuO|R*!&2a47%{D4+$4k%|UbR%hrs%_~7oA0Q&gnkC!hHex~+%^q{z9uw!B>W%< z6_@cEgG=9GxJ0Cl6l@ThQA~I-%;2pn-G1c96^tqvVYt`=s3L@`L{+f3X7ikG*xY)o z6?o1rFwBKpp<7ov22GXFjViaOBsarNM)Sr&V!Lf-6OpWf>)ncPmUg)1$2eXW1r3YD zcZBjIiU|d=me@&vikq0Ejk?Gjg~PRSz4kYn^;S&F7F+R#RYEkETQd$?D%D16_xG|{pX?eY`p;3#5xOU2uGhdS4RcuD>BmPTwR-$xmoR*}FIL(dbfRO1R} z8HQi>T$o?XW!9F~=QmTCRWI&RzW(d05Z|wG(Yt=kU|!T>fuX-m&qT8BtYgmcB$swXHhl<<G6@krmY=)FksoC|EcB$3|K31^FaP9w5RAh0VP60uj zE15=79%7WEEt>Rp@P2ILk%CWX2-^JhY;knz)*fA0F^r!Dg(_R2f1TW( zTDnb5dAB2bre-%ByG-(9>?)v)jGX~Tg^oQ2za)1u=?SL<%r;6Y3Mk9-?F>+fPKxM! zGo>9(+?jw#&xTpE3jCff#O&sz2evF$MxdhX_7v!kCd5F6nsc*t@mL%+@+kA?ke0T$II*?zI7-1EP9^%d))KIaX z@$R$x&oQ$Vm^;FI=~y873l?L)OIaeA6^Ctzq=E*@i%nY1Qh*QWF5JQh9!mC*3^U}g zdnpy~;{!suOy6mID0R@?>F5}f_<%dG+MEl1Di>?`$Z;qWydW4Q;p@NQLE1h01A1e@ z=rJB{eC1-n*va?*{1t0}4UhuBBK9ijtY(`=THZuv6Dk^NgRy@r;hRY3*tsq>bzf5Fy9c@w+PUC7~h@Z4Z?saqYsKJfLOdQ Lco`}Z>5G2>lCnxl literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyListHolder.class b/libjava/classpath/lib/org/omg/CORBA/PolicyListHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..684d1b430a38106b6a02a2d41b533393e39873a3 GIT binary patch literal 1197 zcwUW@-%ry}6vw|8y4BVS2m*?VARuk0YmAR5iX%Hw(&u@64kmpRP zL`UL;Vdcs&=jBkqC9@zGtD%A6mH`#l7z~+~ka3a%N=+)N!?0<(1!eE|2XU0vPADCB za973B{~FBw0S^t_!+pv>#lIL2U)ar(kY)_)<6x-y%`c&ds64YUZY_@Tb*&j##|8z< zoL`RTT-bKXBS;JxHpU{!>xj+IWhD3 z*{I4Xr*}c4NMDIQCP#tZij-*>X}wOTXUQMZ+CO1@BVhtlwCc12+feWd(8N&WLB9#-} P(S>d)qi#J(tg8P23M>Kz literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyOperations.class b/libjava/classpath/lib/org/omg/CORBA/PolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..a843bfdf950513a323db72f0d9b8a972cffb8b5f GIT binary patch literal 221 zcwRg8Z`VEs1_nb0UUmj1Mh3b3qICWI+;n|s{~#wv{eb+O%;ZY{g4CkKlFa49e32&C+N9)=$w9W4klbYz6Z zH_C^3?(7wis~Viz9~N%)eD6r65Gts%nD zU$n}#-K>+}=0~n03NGK*(Su%w(2lT*CU3_h{X&_ks466_F~ zRZO;GkRe=G8p18y)-Xiw9)YQKVG;K*Mi^S%4|`?Pwu%gW-b9oiv5#Rw!#G1%gESp? zFiGc8jju)U7Z?8F@QBljMTk(q8HocUYrN}9X;O*Sm znW<^wq{>nUO?p{Mw&ThxkVsplvP<>k#-XBJ!it7vhSC4~>sXcY!jj@lTZ@qU4C7bf zBlnMvaOqmbF4dPUyY&EdGH;O8u)#2Pg$Ny+@~qkv&6&oatvnbeu0%>Ij}5a-D#JT= z*(vZ9A)k(3?;|lK`!g^?m)8&ZY4k^L5m}992^txVE%EPY{YF1Ngvkcg;yl{O>Qx6C z+i48p8aish>$EEOdQZ@~9{+*9$UyuAH%~Eois;vKum}QVm&vZse3jm#m2=<#&F-OB z0pG_|4S1d+eNskz@Dz!@)zEzv>Qey=SZuj==L>0X RVOyySVn?OTu&ZL;{snq=fY|^5 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Principal.class b/libjava/classpath/lib/org/omg/CORBA/Principal.class new file mode 100644 index 0000000000000000000000000000000000000000..af77c83aefecdabd99ee28a8e0eb2e95b8809c21 GIT binary patch literal 521 zcwTjo-%0{O6vn?<*EP3IO-u8#J2hyDE-Rxox=AuBEbt=6b+D2BBiq_@6%;`iJwOi? zo!J$^z=4_h&Y5$5^UeJHetiQtKs^VIp%zACJM_nPr+4F=+1HT_Tsh@l4mv|=!e6-U z@nCHCh7;k&42J(0a9=QJ1Baqx8OXTJkZCmg4Cc9*M#AN>7%}Lba3oA*U|GmvjiK0; zfw-FaLlNEap+}5zH*~qz=aE$LJgLV|@|mIDUE%DAN>U4Yqd9Q$VA!&dg~5<*3>@Xd z;B%AaZ8(cuaUm7But4mqcVU-0GxQbo7S&EFLz=8ooQE1F%|psD+Ow@stiO@au#p^T zw4Ol6DGH>lvHB%Eqm RHRmW*P43Z9OL}%v<{z|gPJRFY literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PrincipalHolder.class b/libjava/classpath/lib/org/omg/CORBA/PrincipalHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..253b7e1f7066394a18e478216a5b101b1ac49c46 GIT binary patch literal 1455 zcwUW@eNWR+6vm%Bww2W~5D{U32#D-Osjv9LBmoRTUBn13@vo)pnt7pXm(rnpD@BDw z6F-0-%6RT=9b0uuljio`KIeCzbI!d#et!K9;1*UC#2BVrudcg|y1u^kYHd}2>2b&8 zO~c-F?V9B&h%*fB8V81M8%|x{s_t5*uOP`V(;e7!J>RI>mcH$KmeCNO3<Ew#%k(zv8y4C4&RVrXkT z`*(4!oC3py1_k{LgC*`*FItVN(T8cl*CDhW3oKmKkb=rEAPjTEu7qVzRH$1uhJ`4g-Or~^v*ia(C6z2ejjqB`fbd?vpCpGtaG--<{|^+*h!~ zFn5Lk4G%C&4VJrfrkZr6iVo_T_GM7F-Iixs8(bWZkw~W(#Z4s56RYW2rr}#Py2o@W z=uIGoj5ua=x0&cQjY*oFgGTcKnk|t|Jn3&pzd6Ft2}VC5^O06!m=x>s|6__Ql70zO z@{gd6wHbG4WHcu7C%AkXs!HJ|;&>**v_OO_md>4GST2HDsppg=1v9kb$u()xqq*rP{a@7NJYrO<75STMToIA0hLh vO-jnOy^i$a?euQTx^!77c}99c@U5IY%a0|x%a8^=3|v%<)IgN@gs(fx~qvZ9!%{)9D2dDxj$maIPyf8 zSVz&oMTYJ3&K&8V&V({Gh~#87sZb-&4A_#%q#lFOVVqh%SRUNfhFQdLIfN$$%k0kn?aNo_NY%A#rk7olQ@LPNb2g zaTNw~6is?UDddr%+`=k-FVISh<|&H##zFcE*1lrnv({Z!YkJ3_$~LZ0R!)>etO7dQ z#1?TBZ+pRep!q?f zfgKGtv5OL^6}Ykh4+)&1m}?wt-dV!s)UC1RHWJ+#H;0@0wklI6q;#fEP@TS|IeWhV DS?0A+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/RepositoryIdHelper.class b/libjava/classpath/lib/org/omg/CORBA/RepositoryIdHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..62dc935d93e39e4c90b8eaef834651f18847a692 GIT binary patch literal 1749 zcwUW^Yg5`l6o%ggB!cmVT3hYKYXxjUd((owpw>#IG9wP(I!=Hc8V3_51Y7@A+YhwU z5B&lCQJtP$QYj>i=EH8XyYG9RJ$p94|NQ&~U>$h{K888dswT~|YH}xkw4F&F@w(a2 zZPU8QR`z+V&MgH2hOtxaTuat8qngZ@PI=j82yW?yZog#kM`J~Xz>ZnrVfYbJF@PY$ zXihiyVe_oStz)fJ;|!6US=MSr&CJ5g4+*KTD3aJ|nZc*%Lv}bw7xJc(Z zj0M}$jcPhp3}YM<3L*^SE`f?kOfd|%O-~w9!!Q-~GGbsF!-PjzxdqJ@+jHp{6#m(^ zG?A|rFXotABarW?xQlxXBaZqKZZhhj5Cj)>%H<5rcE>oTad9x|5EiklV2NS6YBZhM zyj42l!n$npii-PKVF(q-vc_%GaBr6y!efZ3hzmTQUKzv#2KE2b3L}9v1xZ)RsZpuy z9#J)wEw0(z+0}_%W|)m;`?3qiCn}!e8C8`d)oQxdkjkRRd3lWV@$MUx>e{qQgLqE0 zncdB$Xh}jWb(d#qJ+VedKwK4u&E8Y4o0csqJ()G?O`B-AcIJKTFYrnM-KT}C4OF}q z`5zK7FKa{58*-9i={gJy1D`D2rm{)(WzIM4j==kV?O|WRTZYAJSg6Q~8>h;+9d7d< z_wuzk2>e{DH3>XiFq>AH@9E-4GVT6lBm{9_o+{Q4@hJ30|0Ze``btvIs2_-b$KY3b z@gYoYP!4Wjh+4J1fcjzTLm0uRBYsJ%ePVTdwS}>cIxI&sq}i4ZH`=SHpOy$g+{7*N z2w?`ZE|3;(f9U}^=mKfmgfNGBM=U~#xruLBIEep1G_o4^xA3rq#~rISRRIAUU)lv| zFB@2qc66H^yG3aR_#>OWBp;;ICj}{_J>a)`CDktY4CO?Kcd+Y~#W%fKv`EwF%Hlgp P2jp8$W|85&)Exc=a=VaQ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Request.class b/libjava/classpath/lib/org/omg/CORBA/Request.class new file mode 100644 index 0000000000000000000000000000000000000000..fe5507839220de671f828521ac115b6cbd7c52f8 GIT binary patch literal 1159 zcwTi=S#Q%o5FR&a(xfR(FM3~GO$yYMLqU>vc$e7Eee# z@B{c!h}rd$lqU7Vex8|cuASN6e}4V~fMa--hbaeEgbZBK3EbNG#oJT&0>360t2|^K zC||K2b0fwB_q=_Do^l}fI^>~x<3OfTZ90&x2_K7)fkFwUA?Lt+J>+S>vR#mN1ZkDpLV^l5lT7978^0j+Cn+A8a%%S#;rz#DL?1QOhND8zVeL>nbd@L_k>{^r~9?)>`w?FWFzcwivMPzz+=3cS8mZyr70 zw^~A;3V9^n$0AY&3Jljy_$jvr-0xe>?ul>|LvhdbUG^}0-!$wPjQ9D`4pge0ZE%&#Uib#U2r{L@|yKq2Rbf&6y0fdi$|f)jGmmNJ}(?XUcIL5kh8U zE=+A~+C#0~9|_BgBStveel~Sn&+Lzd)@D*T9>wH%_n`~KKZo>S>3VBao2REzus&{ycanm z6!m`^yXI=8X0KN6CO|k)5yy_79jQn_A>@rey{C=e#+8mUcP()*13OzaF8sOin7JSR zq6l&1GCX?ni?I4T+!@DRUR|*gYqau))N62@;i#|zRYXw79%t(M60*nzs3h_mz%$yOrI=vP|XpZiDk>v=Q5KuCbE@;Nhk@7{aPJ@>vl^UuG(KLD@?w_PX_*pe`! zO^LB+Q=qG-wWX<7GbZ$i)~1=N9y_MR#x=tQr@)#~bwX{5sqtu2*U+dIF$El9eORD8 zl-=ny4Lu%h7AQR!iRp3OJWMNZeZPP+kQmlVu|i;5uq||ec#RS_59WbAjl10tSgD{G zB?7BMdR*&FjSXo=pE?xNBw`|>#`;x5m%lTMB?m1$4;(00um+{XG)MF#0Ygh>NX9O0 z$~07&)?ROpLreTzbNymLnmwpOwF?^r$`-gP*oYdE&cqK>BTXH%N$>FH#vM->rrc}F znl-zyNuV|wPvuP@5gXPFH)>I*U<9hTw-h*_rjm@^;GI+Tz7ZoaX)&$OyXrU^fZNST4GMOlkqpQ5c)}16 zK^Jxl)MT9kF*TVCs7bSZDx!^>dLm9MRbXwNk_Z%OQv#bpi@DRvF{BPJRAXMQGM4P+ z3U7VBZZ6T|NzGtu?9100i^^Qz?_p^U%8ooFP?zh!(6|auDR>$!Y$Y3YUc>Cn4Un&2 ztn+4$s3h#N{^M31|0WI@Bsv+$r@HcSvFTsSVUb!kKeA#@0MB*}0p zmWW5KaS?PgQkQ~m*(+<4Hb!{Z0tuVv#x)7jqo7whyDewwE4`jk(2r9BtLA&Lyo0UM zYe2zs800jwyb=*pGsCK3sOLBUyo0U5pw!N#CoOsc+m|C7J2WN*CozHQ1t+?X>vH%t zyD@}e7a{`dvuC->80ygor<2OC0u85`QZL&srkS$&a~q!*R$_!eIh8PtRK)DikiRPS816LJX!*!Nu7Sw7S3vzH-nhxepi8-BDm>Lgu!WiP& z8nX=9Jhh7k5~wO1$~ml>d?^%98oJ3d*IsbCb*0SgIbCw}eu~ds_>3P6%ZR4n3w$ZC z!lE#HV4U8d9p`HW-^gu`y)Ad;@^=cpm(!=rUYaWwYJhXgW3WAG@8>moU5Bo z;8DxH(l*Y}kx#88Cqo6$mI-;DAth<=4B9Ed(U70I9J`NB-cBC!*Zfg>AALUmJ@h$h z(skv1=LX9owzhd3@@H%GP3e@@*9z;>sXW*(P)Vg#!DF<57-w@ z-aGF?JyHB8q9Gq;Dc5;Dlg8OJCOiC&8AJ!lFEog0TGl|%ij78 z@07pGQofgE+sL8;mx*zOc-P4AI`z4R4Yz@)=rlDeVn!m z(N4P$$+w!8VcHhadISA#FjF`EKFQ=Vk||T2)U7j(o0fhL()h|2GV|-(Y~^e%f22x3 gp$xaM9=ECGEo{cmb1GSfA7}&X$<|WPUdFifAH7UjNB{r; literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ServiceInformation.class b/libjava/classpath/lib/org/omg/CORBA/ServiceInformation.class new file mode 100644 index 0000000000000000000000000000000000000000..ce2d5376a1fe4571a794f4137aa8a81d8ead3802 GIT binary patch literal 640 zcwT*xT}uK{5Qg8Q=B93H_F>;h-Ka%NbXf$YNrEJ08R3Pjda@(BN7hy7XLTV#7yW>K zR5WLm6qGJ@X3p%)Gw+=9{qy++-~_uGJPZkGHx1co8kyq#)umD5_CVBm-g=RC$8?0W zH24^zEpuQRZPRKR#afHk9S#1O-mbJAv)1NDK3ll99O1k%M0z7&wZR=zw0jJDmBQSS zS-0S9szr9yd}{Gj@(liSVF~Ag!JAB#8GISp;6Zp1(Gh}9Z3SWR+kU6U?FXfTAy$xe zvt2fAq0Zx^&v_Mu+@CLEYHw0M_?F-iShMX)6M zcAe*h5*DA8aI9{fUW#_6Zvh^%gs0bIY9M))q3y{o(dm>tBfpUTK=|GL9VHti59Hv( z4VEd=M@5KX#YKg%ItDybrI&m}0n&#w#!h7d(ymwpu)^Z5E zq@fgL0`tRW!Z?~9>Nl(|y+3Y9x5=m;@6jz&emj$8jmoJHF8DQ6z)Q#WSu;hi;kjI9 zVkLHuanZJP8Q|_*t)|3iL(QC)8hluW6&@@XSTI9h!%9>NER0%)ZX11OVmNL0rEGo; zF(K8t)`ydpEn^FYq+mqJ(Z0Yc4Xd$+@o|P(Xw8M1SFs4}0zxOeJb??8$b2s%#ylA> zGZQJpB58Z_kv6yAnjXnowT2o5=)|EXnYO3%v$-%o9ZGTDnr#w+XDwML#7a0SfHUuoJHclwPn*n`YYz^8Ny#;^N;et7ebD`XWq9(0esB zpi#glYoKpLkEe;~Kv9)YI7+o;bS84$+@QI;nIVCVMUmjaL4h@M8TFwFejg6ubq@|R zAuq~@lZjZwIG@?9atpL_Zxd~2rrR_eL6{vSmGRt{9F|_$B1(EgJ{-j{4>}n9 z+!i$)N9QE@={SL@W*73HYX)p5%ofAe&A5coqu~VJm4l4S7a*A)Bc>Xoh0-QtpMAI#kM8 zM)H{PBFWP&cSROpoevgl4^lJwI3F6)7-9aLMy1D1J=JGN1$wGyw#Pg(h4x>e1uu^H zFo;oktX&dl$>*hjYR)`qkxQ!MoXP}wRl_?NB0 zKC7SGVn_+HMyh5t#1k?jDX^^YL39Y8%LC>Mfk1HwOK&K1aD1iVYkVUxPn}DX?Z{mn z%4GSzwECUEq2jF0+6v?m;Ym(5179SWwxY&iQ{KO-3SFz}CF}0BOsI?ZPio0)9pAkC z@8OSIo?iiu@?V+X_Zzfd`Bs9L`SfuFkGfLq!hAI=ZB$I@1vyI1(!gUZ$f}j8$&8AY z5x_z$;#iKwSmG#eca*(>aV(uc)h{{v2dC+Ku@>u;K8w=P-{63DKZKU6+cpKa92>F8 z(KtsEBn?&cxVb$rf!c8d>uM*kJy17}UF!SQY#2)j8|dUSLKt0GfNoTxN10xeG33CK zZ~L&HZc2GOIDpq^pqZRJx$9--T{|7TRx z{*LY{uAYqCbcw3U2habh%?7uQL;$Dxe2ZCln`G+r9Oe7~>NxIXpO@$Y8E=&8Q{>fC zR-#)>ygK@6Z8hJcd~*>WZ)*#eveBN2E)pwH}YKH3;J%ebIH5PM4q8|oiGfg@;W|uTS{_opiPF{ z$nztbw;J=()fn=xMIh80hOAR+GZ=?qk6Xy%mW=`|hUJC`_-QogaCx5KR~up1^V^;j zdYx_>>ZAC?;LJ^#D5S(Y^L=Zjb^#1`Y?!#gVCzbSP94k3U6AA+!`?J#awx~aFjC3M z5X!;>JT$Sf$Te_($fb=(*d%F5n)+gC=8Iy;h=5^x5u8@3z6?q2hBJ*mr+s}}H7)F! zjcpY5J;dJmi_cOhGMt%JHzPHDI*yGJ%9Jw=K3ObyzGU55*)URc>kAPXtX3GwEmlb)uY5#JiZZo_MDuZQZ4^bP?;gmooQLW}#de zHq)$ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/SetOverrideType.class b/libjava/classpath/lib/org/omg/CORBA/SetOverrideType.class new file mode 100644 index 0000000000000000000000000000000000000000..bc56a6f95a82ee9e8463c39bc86c272bcb4b3056 GIT binary patch literal 1318 zcwU84+fEZv6kUh5wA2x>mRq?MR4j;$2r2@iy+MlAYKu*XCe6?p;Xs+G(}4uzqwza@ zGf^K9l_rwtyMN%jiSYw`HSRM^Dqz%km~-~tYps1dpMQS%2w)U*Ueqyk8|JcXtS`&) zOg0vkbDEXe)J&7B+QL>@^TN&0ysB&}a!Jvb<;>EmR`j-&?j4HW5>a1udr>yyxeAVX7{>)P#&^(D<* z5QAU{q>UnVuh0z0ww->sa7Ku>3+h=3t!N@uYlT-Byh^R2ho-S!;JU@oPZ|HynHT37 z+74r4(L~`+G#kC;g-pTUyUkf9*Oy}(yrgQT52Fkru2WjBh80zn4M#X^k#g9N5sZm) z#~E58>7y!BgL#3tEa3_!Xi7@Ctm!I4m#FzKDW?QuQov>eT?2z9VB$15luC_nd}n>>;T!cce;0otV)=&RdA_6ywJWnaIBz~8C<2Yp_0JnI6j_53TgwH=z#p$8W_ZaxC z(`YALB>a79=z+~|-A5y07bUUvalK~7Z8tNkM)__o zV{+fv;htwV`1YOcZ%Uv(Q? zLky~pK@2gBmTZSV?zC&%TeoU0&X6p*b*ojeJX^d6i*f%Kdz)dlbOb3`ifTLC+@tVI zsSqOP>}EetlAWt4IL}4G$_i&=mb1$+-X~q@o<(L%A0m=L;lKHwCC+WJpK)`C z5QrQv>6pP~I>vzNlWb;FVTyj~sO0Pw9ak~MFt}s2Is6ytD3^=*LIN3D$>sAOS5&I>FBRNmnCP9k;nm7~n>gw|Z|GRW5`$_I zV~hK)6Lp#f%AesY9be-ch5@_5aDwE96=f43r$u+!?xlGI}JXnw9PO5z>G?hUu!rYiyE_Ei*=M&(LM*9K6+K>tuSrb(f2V^A-2eap literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ShortHolder.class b/libjava/classpath/lib/org/omg/CORBA/ShortHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..c8fd60130d9a93065e4e38e47ee94a80654c7e09 GIT binary patch literal 1342 zcwUWDYi|-k6g|@dTejO4YsHrODp<=yyFTlqXo@6_Mie6r@$rFdVFObamTY%1e$d~f zRog@pe}F&AcxPA;h{SHPnVq}mo_p@OGrxX+{|Vq4?kkvJShAhEZa3?CzWCx{PA@fV z$9-g5HPcZLV2JD)9YeQ_R$VXd?wM6rL5N{xIH^rJ#;#@RCD$>Hrubw~+{(TnV^}N< z!*|}d&AeSRHyMH*!}18sN(@uks>NH}eZVl8OqCe|0;FJ$VYS}!{A8Dss}$eYpF6zC zUEVQ!d|{lxNd@x^3nK;dPk5`QVF9P8jQh4HEIKMo;x<*x;R!48?-W7gXtrj`g>emI45@wh1}5+ZF$h6cD!$;>TEO69COZJQPO;^k**7a_IB{^HyiSXY z1SWCHz-gRe7~QZsJ;IJGR~VSZFg}Dc-LzkmxdJ7lh|^-2Ad-Czh?nEq1sx1;8@Par zvW}bU6!7%EWU6#7wIS=v$ZE(iOb)j&kj9jTJZaYtH7|rG;&_MZzSQAXm!}1n^+`+J z(v6-yts@6hivBJ`F0-HIu9Iq8c#l*$vo#IxQSFB_S+bfBEt{LOR%_95Dg6k4%y9XD z%m%EfWHHC>azVXva#*h{SF$yo#QIp0{)EKJ1ScsJ3|z-&)Ifp%o;JBO2sNxr)Fe2r z@2SSN7)oxj9Q4f71=|KGvDS6E<3$QUaf&$ZQ97A3|l z1B)op2&=oU?5-6{2y2sOiV`mtCFfB`VliAe3^@%;3{$q-3yoywHA#oAIU{jj%96lc zR5j25ObqBYCuK5l4-`4>KMY7wTMp{0?5J&hpe4(k3U2q*Ip!%8YWG7iqYxFZCz|}G zBO7mg@3(MTj#G4sMt=nIr_qi+xb)QM&7_slI-1)?{3&fB(CHadhu3g~orq-0 zIEG~CJWp$c)}y&C9RHj2$p3+pPhNrO>T&^b6cx~9V2rbPlh!yvp2J%Nk&xe!5b`#n zD%|*=IKPEUPZoEOtB+kFcGG{Uix`<*4FeogDOKsDMsW34Y~!?hA0H^TAL64B`W{(J z`{WKL>-lY5yPdnTg-`oQ2XJk2a%jJ*;L?E$ZYa)j_c_ie&M|yJ>?5?B!R#*fGRG7Z zWbS#Ql*^CgUu>b6?-wNq;*)ugz&3UjCPnUdAO+IppMnZPpXv}gAIf)R2j%+j_<9@n z`=EhbKP#|^O8XluhmMOOr({l2`8K4~7)<*Y0{NBpzwKg_1jmnI+5sa5TluyB1Na%# AApigX literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ShortSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/ShortSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..47d73c5b3e895fcd2c2b303a7d17cf25b0b5630c GIT binary patch literal 1494 zcwUWDe^b*y5PesghSu;Kp`fBbD`~4l{H-8bsz|jXGp5#Y_@firSb`zJG{s@m@1zdG zj5>S(Ka}HM5=)CHOs99Zo7;VF-|qeV^=%)(3?7RJF`TuXnqqI%l-%<3g{-2k*^aB~ zZK@!nN zB#zA!#Q;u=7-Sf1CtS=uHLR+HAq;bFZ_0IEIm1xlsC%<9^kReqk1~wNN8d@6q98#f zL=j`?DHxXitg*4GJ4IiP{(@c6%#!99+zy;!cg?6Xj1~UZ2U0_jS5zNhQi6z1PADni zBBmIkb=@uKR?S_bd~%+v)y1_lG_xGEKqymNsti+yxi=e^w>BHD-#w}%hD(?hahYM_ z`1=wRTp=19qHNk$&Ffj7=eR228m`k2dEY#Z%NlPGgGd$SJ+gwqb1@`N!j0F$o6RsP zrw%uwWqQi*9K)qs@;@tHZn*6w&tYD~JyQ4t0TS+W>0=&>S2T~$N?73K_WAC%dLygZ2p*W8VwDYv%L0XgUhG(AnY|SWkEtVGJ7yV0$ z3W+BE0DqM6+}oyX6Ed1KxA)%XJm)#jIsNnZ=WhVl@jya^A!9r3lHF;Ss`ZzTE2TBp zF|76z+idBMgeb$YLko)0GfsnC*?)u^m_2G<6=XYaRZ{kZ>Ejf{kIm z*0#I=>wetPn|4dz4RWp1zDoNQhS;8FdK8(e9VPWabeSkOO~W$WhYUlx{02jmM@blE z$PQ+gF^)45QVbKl($}lc46CJL0+S4~`!3X+t{n$lQIN!06;qgIh?fIF)4Aip`3)Hi z=Tt~YFpSm=OMl^YHg#v+w8ed zpLkw{425BY%QQ5z5%?QxP?uT^i~X|0K0dW}JlAg~aVf~7D4{@355}vwf~yR}JVj{c zL@s|^Ph$p;*)!cnLq zfX@*{U4*GV2$wJ$5M%>_RYG#C!U+n+ADHVG@QPU8PyufRQ`$!dO#EwsUM}J?76Z;o zz$q7s2gvnM`oh}e!&Voa9MZ{HLP^kF6HaovrJ%;>J~CfIrnoqJ-&I~TEboT!rAJD! b@EvmpxYaM^6G{1ef|Pq?I#0bKV#@yjoro^8 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/StringSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/StringSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..416407b552c746399245df661161ff0e64776797 GIT binary patch literal 2271 zcwUWFTUQ%Z7~Lm?OcI7tE)BM%5_-+0GPYi8dJ&KoN+?JGi&b$Fj+2381}76*9$m{v zm--ic>T7kmf=ia@vwz2T?RU;h6B-hPwa7U$=R14v@7v!w^Y_2M9{{+Hih=;cdD}5G zyJBcl3rmv|THbX`%gFPuXLxy=I|_mfr#JN-T`TLBp)C|PdC_GE-7+oHy~EIzOsz5m zr|b zjxLy!$(G;=Yd4#EoNH?Ic4wpL$Do1%hW;ZPR1Dz^Y4TCmX$#jYo~FymR13ql?YLr1 zYldYN3?EZFyS%}j2x2&^;v7a8x_9()jlc)n2xVY8t+YvtR!YZJN77JKz}#RMBHe9@ zz;IE;C0rK8-rXh%=Z@sJOz(w(6nzyb1xbcj`v?^Yj48;F!A+`Z$FZF--e4GBEOWie z6Al+8O9*olg_Ckm)yLoLov38Pg!!Ww1ZZZ*`zT3bX0Qel?xSeW}6!`asI`Z2d zLnhRRYza)K>O|^^HE-9PBEM&f?j35mm&XN1aEz{)E{H#cW_0`0uR>26jf}?b^d7=L z({f6YrchN(?suw_GFO3nLLZ82Rn#KT)z3Dnm|3#){e#L9g8z51+cpqWRNT8S( zj5yBI7$(TqF-i~-abNk6^9V}1!QXJ9jw{dS_K{v2xJK&6|C9?M3cKzToRTT!>CFnk zJ!+^8)9fw0E!Dn5S$NPZ6fNTW_7Pjl?BTun^tC!ZXeRB!8MLWHb5p`4ye+sRHH+C@ zj7ZHPd`Rj8G@HPrPf_tHMyViEe_%G(b^955GjV#H%YPeS@yx+b|NWC`mMBI=0IH_&LQeiJj8-5*Rc3V5m6L_Sj5MYnm!pmb;h^1XCF&zzhHR}pEhYcJHL^z z0a=#M@rA!})7KnNXAbIEmx|Mw_>DSvLvgc4p5X5Y@q0r10RuFS;KxIP<5am#DJAX; M4mSidY)Pc@3(QaxYybcN literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/StringSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/StringSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..5c89f8ec2c0cd62c6a774a8d6609437fd380dd6d GIT binary patch literal 1650 zcwUWE+fEZv6kVqm2Ff7FrCbELR@$Oez&jT$Riw~JVzI{f&52sAHOJr% zhEfb3?)JfrW*Lo;C7dT#r{-xu8#*MkGqfMAU^TX^=~)?mbTUZRi*zQhm<;|zt!vXh zw4j^g_Aqn@Yu^c_8onr!`?@ltM}|HEugjkCoSo4E>1{ zg`sZvgEhKpLk`Q3P|qm_WL&~1Lqk!u5~`lF@`MnK^Y%6IW@<_y?TF+}lWAfPA=&aS2x#hEBgPBZ8|$gF~bXhMp55#wAQ1nJ>Evp81-L>$t(tC?bl& zPm%>gwI<1{aU_P3voL318hvqIF`p5J9?E)5z^b83zcMw8ZUz6_mz9!rv@!QEFCj`g zoFPC)j0@xwD55ny{(+1IJYw;{qR$H#tu#;c*J$OVOuLsn^yFx5A}bCLoq)FRKF)=|qvhFGwCY;U!)+mL~lf8tClNT1|NJ_M$Ql)tp@*oFouRjw!zA*8$bbz|CNhPaxFra5<2LSyu1{mep%f7msq-A{ za~Y&gI5(?0=`DA17IRK;(Wxge=Fq$=su5Q2;q-?0g^T@5}B6&0=5=$9{>OV literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/StringValueHelper.class b/libjava/classpath/lib/org/omg/CORBA/StringValueHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..9912113e8cf7b0510316b38b0939f9713d4c8227 GIT binary patch literal 2938 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 S&IMe-Q(3?su8u3#fBPT)$Ps=3 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/SystemException.class b/libjava/classpath/lib/org/omg/CORBA/SystemException.class new file mode 100644 index 0000000000000000000000000000000000000000..940f799132530eaf084202cb4736f2679fb5a91a GIT binary patch literal 1174 zcwU85>rN9v6#k|Zwv^>oifC=6c)_+D-T9s;<3%Ninon4AZg+Gt1C1YnXzVPZJ4E0_J3IM0)sbWZE^)chM{JF zbj>Jla@&tnIIUoagf(ZVID-&_vMm*@ykrv5NGHT z);+${I3{^zTQK)wjKLF)Nk&P@Xq+M3D)X?e4_6s_;^WcG;ZJVJxh4-^Z&LBs8#_`l zfEy~NaFcFFSchDLv6h$IhHxhsW>oZ`S9-H5RCF`+<_wcRtW`F+{ixBift*#Omer|o zDLz>AidTliFr546Q=yjh>FYMv9m|wJCx}pk=<5ef+oi7`>vn(Ms@X-pWXNj4Cfsoe z<^rDLo0p@4T0^hKY1^V81smXov8TIhaP3u|pDjlzp>CVA)9K1N{#e(* z$Tl|<5-Ntn?ZbW{mm^Rwp?YoLPlk>k4mr7kTf$jkV|E5!R(m2;YCkz1$bDdrvkfjO3)-azd4E83}@%>-f5NUD%J~a|M_3r1YtMLbiuWeM?S!T+AGBu`t1~&z z_rf)Vl8)s=gi^hVNj^OC3X{;wyxLwb?dV-TRLNI%D)iz?P16cj8M;ZK&(IeY)*ITb z&~NBAg#klfQrKYV4uz`?-KDV6(3cfbhW0898v2UDHHN;bFl6X{g-wROrf{vHuPdYt z?N``r=o<=K41H7KIzx{sTyN-G3O5+~w!*NX0}5LWeMiAD^j(D!L(eK?41G@_Yv=_9 z*U&+QQ9~~)j2Vg)#tj`&@C+SO*k-&z1mhEWaTtM)ScAT_S`Q z-pO+pL^*!W)$;yJJ>BbuH*|08USE!1@Wr`TQA&!or{LwXZoUGq^Qe1$?$gV*>!YMS z!SqESL~}}zJ`5m%-6A>AM^F> z7sPx6`-L&z$i6A&o7uO-d@H-Qm|w(xam+7azcl9C*)NOv53&Dn%%8{pBQbwI`;W$a z2m9qQ-^u=CF@FL3kH`Fl?7L$ABK8-@{0jD;i1|;l|5VIh!hU7UU&{W|G5;C%t73jN z`_IPw8up)y`OmZOj`<$;YhzyT_hm7EIr}ff{1xo^cw}zThofkp)%8~Utqxe-VD)ON z8?C0S4qCm&>X6kF#!|s4jq?O|X)F`GS!222 zEgCBXZ`D|5B5oHpA$x>P%$>rO!gmWNh3^rr624bh3GWlG7QRooM)(2YTHyzU>x3T? zo-h2caJ}#&!V82S6>boITzH}I6T*$cPYO2)KPB8O{Iqb3@H4`#!p{k}2|q8qNcctJ z#lkNMFA+W@yj1wGaJ%r)x@E7jD~V7@rAs4BrPA{v>`JA}BHWxxmq)lIm9B_zYl>Go z!tE^Fwuglq?_{Zra5qab!aXci5$)QT&;5_#5T%FPf$V?WP*KgIZ}Xolp1E z3ffO==rOvI4$u%iOCxlUd^$om(Jbwu<8&9DrhW7}y+Uu$U+7Gtn%+#Tq_+|dy`9L> zsYJl%ot>2w(AuaZWY0Gp-~KgG}N&1r7c*Ldw` zT35WhX%;8bvpAKmKRtstT94taWBBz9e*c<@p%4tG) JR|fOme*uI+HS+)f literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TIMEOUT.class b/libjava/classpath/lib/org/omg/CORBA/TIMEOUT.class new file mode 100644 index 0000000000000000000000000000000000000000..bd13b9fa52654e6dc432dd2e4fd3b4ce91a79af1 GIT binary patch literal 942 zcwUW?%Wl&^6o&uFrH+G3OGq1_Z3u0FGzBa+NGJ$F+#rRz4I-BX8Ifm8Oj4WizecUuMAq5l{>09y%s7- zqe$Zl43sFE^onvQqd>WZMf#qnl@85w6w9sM{3k4Z#>z*nyQJ3iPKQo9xJ=nA@kqS>; znb^dZ2AkMMmDCDc%fLed7buomyX&{-a9>fkxaPJ}-6^+(>-x4TQx$SLQx#OFZ)ncV EUvHDQ)&Kwi literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TRANSACTION_MODE.class b/libjava/classpath/lib/org/omg/CORBA/TRANSACTION_MODE.class new file mode 100644 index 0000000000000000000000000000000000000000..3e80be97c8898a7362922af2f85a024550b43463 GIT binary patch literal 969 zcwUW?%Wl&^6o&uFrH+G3OGsLv7XmGirhwHA5(*%tPLM*K1l4I+R+DrTjAFa89R$1; zY(Ok{0N#X0=mv3S995zTm&N#;8UOR0f6mPJpI^TL*h57_ieWPdM`qxSOsjjiUpIS) z^^Q}wdaZ8fxZQ0uHDnkze%CnfqgZ&&cSCU+yMeD^fuZ<@zvZSIn2rctK6XFw!B{XX zM{3#^VMNNKR)c}PU|6&QKZ>~@_xX4tvU>b<@9fLj4~B&&uJ6Xr7)lje5y#vgnNA$K z{;0OoXUJH=iO{i(f`%(I?ybN(9Sdp7iFrJU3|vK#!LYjRmv*z)Y#evG3}yT8yJ~r) zv0}i$D#N2WMq2*@NT*A->x<6B8;G!%G^1b#L+S;mj?jF%n2BGz(X6M7_fTWdJP}2F zq(C#47}AxUehy^@Fl<-;%VO4Z{UD?(X))--L?KS-7DBTdcImOi8OQR%M9HTB1$oef;4 zY$Z_=aSc$}IyQ(Sd7D$-W5ow9RSP%&0JJH#70^heQ=r7$nqm$JlcuN>X6^nQNT1I1 zN^r;dY5OGsNve+Z>OngSLZBou^5ogle23B+!eL~c4VMzLMl4gwy6 zXW$iJgT#Ud;62#$1c*E1s8U6sEXMcF_{?|D+?nsczJ3F6A9V#ehOH>}^eFIjqu1YS z=}y1ZwOfW`_PWD<=f$Df@3a*Z7&gx8>~~4ZgU;I#KS}*4R4~U-eeJ$+bwAQ=9{cXt zfA1cRIm2Qirvn}*q&zg+3~Zla-iX2^b;ESvjwihM=%sui$KYh%wRJSB? z?1r9hr?DS;&7A>5!HABzibYfuTw>Tf>&%FPlQ9>j?9@#siH6IlGH6Ec*>kJoblSsi zkD+G$dsnlJJeDIluJi-q)+pD=7& z=ifz>K?!)0xSoXlVT&PO-x-uZeFPEf|7Ein_+b>&wU`X*C{yrbx`~*(Nfa`a?PwB@ z_)}lFU7h9Yo^V2sit5uS(zpr*C5kFNwj9bRP_AK~z87g_kLEdw<;HIQGZwyJ>66r5 z5o_|#6WZCrDrL)=l89@7%+|3%9KqY1@*YY)aG_DT_7|W@abE(pOgaS$%=IbefG~NA zDq+^{%z)T*CPzYQnefz=iY?rbU=`b_l3IXQreKG_1&XD{?)u#s+?Uj?q2x9)-6^+( UoAR_G6BTkY6BR_KZ%NMW-|5E06951J literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TRANSACTION_ROLLEDBACK.class b/libjava/classpath/lib/org/omg/CORBA/TRANSACTION_ROLLEDBACK.class new file mode 100644 index 0000000000000000000000000000000000000000..005c4c262bf1112e560ed9c195e1326b71394797 GIT binary patch literal 987 zcwUW?-EPxB5QWd?r;dY5OGsNF{RvP?ngSLVAVCmP;slh&Bq(-shk~1~f>CT&wu1oi zC`dd5+#qqm1Mo^nh}m^isUkox)-$_4`|a78{qgJDcK~-$QIKNT4#Ke>cw^n@^&55F z?$^6k-LTue?y%o8%~rEfH#!P33>&AF*1IU?UhD0MAIEOsD_CGCzINU?x*O;g4_#;C zzIP5MoMAbV(*X}7QXaIM3~Zla(Fpt~cKmqYOr|{h^WnWuAD(`E!Labi_1*X}!%D@J z#EIjNbt?{Ce_Y!gFl3D2h^tseLBR!v&C|||z&oCBVake~cp7QAh$4e#^qxI8TXw5C z?DiPS=D&B<@Mn^j`KL}h8@No_YN8}!36R-3Hi#p5n={@6$p_9=3tN8y?o;eYpq5ByK!LeB!*mFf zrl=C8bZZX8raK)-NI4OnxKeQq*CklRHj1Pc;I$dpCUAyguDZ8=dk%L<)p{wp)kJr~ W&EbZ;t;oa)DVd2AM5T8m=jLw}(!})u literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TRANSACTION_UNAVAILABLE.class b/libjava/classpath/lib/org/omg/CORBA/TRANSACTION_UNAVAILABLE.class new file mode 100644 index 0000000000000000000000000000000000000000..35c4ac1c6ea43e6e3ef5330e2972ed733b0cc5ff GIT binary patch literal 990 zcwUW?&2G~`6ot>^r;dY5OGsOwX$jDuGzBa+NGJ%&b%GRd6I7?}f<-k+N5LquE89W9 zTfqj21$%f6o&&_4aa5@yg)YYT-tn1l&fJ+FzrTJ1@CY>x8HUX;8k*sFXxiO_J;=QT9R_j2gT&*biO3)QD!V_oUVmqpd+G;%@{D1r<|yKb z2Sd|MB0m^5c07ih9i9jsizsQh#;|_gnH`Q#M?#u%6P`?B1J_YzFzoLBE2q_KHIF-8 zhN|=LRgEIDSTYF6A^o_Jc5@n`txXgH$0-=rSU~<1k<-y5S@m zi08gET)Dv7LurOy7g?Z@r*R7!3KVsEbr}?qqujteeXr8Y9@QC&#rkgcGZwyJ>66mk zkaOyfO)HzYN!fC$B;qQdvI^FSBYEpn-V?o84!=obfh5FRCwk}$6ef0U>zGMlUjmTrr;ida}*2p-O7U*Tu$BUD{ej2opB4; URHv1h+##bfxr6NVmf~#x0V<@%9smFU literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TRANSIENT.class b/libjava/classpath/lib/org/omg/CORBA/TRANSIENT.class new file mode 100644 index 0000000000000000000000000000000000000000..e6e2c933c27e69da33a7271f575525b4035a6a0c GIT binary patch literal 948 zcwUW?%Wl&^6o&uFrH+GpA*2nZw?GS|DPXZdLMcdT8lEA;nMzU zkZFi>u44fO4Obb~FFI=oe>mXMlpVYAC^B#jMFykMdH%v`I?eslc88&C{e4$0k2IDH z7$`A3nqs8&FMxD9Z+QW4kNh(pI!QAMmgrG0T&o1qJf@R8< z5+xB=0F|v`jX09GKIT1EeBes8uyG0Sfa0M78i{lal$e`i%pqaY6m`O^+?xV%=uF27 zQci>uS2}KCQ-O7Cp-5^8E{(wsfio0y)t%M*Q@E$pt(S^hO>`4(4!6~5WhN`6R3R z`et1OlDqOl#DQcOzix^kl)idfU1h{xFe+4h6>6^ZCU@H+`{m=;&%Zu(Y(}}KQc3-c zQD3RN$;gPZ^-~{>4$>JKVl-5fO1x@&O%ZH#9Y$-u1p^KnyeFWcw`Is^qIP_@ODMB^ zWd%ZuMw5r4p|QhgvQ$2~qJM4Q5-p83!aPkenmeBPnp?Zv5#|cFUrL3R2H~WI(uqgG z7F)dS>IOE&e%xpkacmh{f%K%}+7A+HR=jU>m(f(|q*Ud1$OV?%<1Q>ggp!y*V>C|D zKYETPfSdzhrsRy~7;!M*_tal|@uhMJ}V=jeUgG$7`PNklmGR?<3H&V_w pQ^+k^NRS-*og@?3BD(Fx?$W&!cAp-ku!pHMkB%nC^*EmGlfTTZ7+L@T literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TypeCodeHolder.class b/libjava/classpath/lib/org/omg/CORBA/TypeCodeHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..eec7eb740299dc2d0ef8be8e68c01b0c21eaf7c6 GIT binary patch literal 1376 zcwUWD{ZG?S6g>~Nm6q}$Ah3bxCdfXJs_6XKG=U{V0udu*#-En5HS=NDlG0)DuToS< zH1QAck22o(TIM#H(xiPKJ@?#m?|JX%uWvs9+(kh_AH%Hc)eW~%H%i;D)>e((;{&VY z)~x5QU9&s|5r)xy^T;%8)2SQVd;3<^R}f=JcE%mJo^S5ima*e|me~+f2F zF$Gr`Cc2W9Hn~&NF^&m_LH}KwuE}m)5?atOgh?G!m}ZC-Lsjwg#o$a?1w%rIf&qq+ zE$&z^nvFfn+YK5qw&hk$yKH(~tmUSLe#{B}K`PUK%MTgmdUPo8g8DS`SNiiF1_EyC zP=$aYA(xwWCG2aoLY~wZ7Q5qHu5CC6O+T=XxHP1ZRghsw{U5I*hb77>Qna--kG_i2*uS;%(N@2q464;0*|-drL;M;=LrVVR|^mY6F+bP6w( zmJa@o+w`i|Iv3`Tclx+2t`l89I^*<4(T9XMHgqMKaF50qeKicyTBlW>aN-&Mj-fXv z7&*h$&xn7boj%Nnefj?>MHK1C<}oY(2)3yf#|n*%#%T5o*ZzcR61af~Hf5L|fN&i* zLV{#Suue#U)dWE{_Z6vb0lUOfrUG6|rpW*uGKtwd6(vM0;8w`F8gi=H+$k12C<9?t z3aPcxsVzDcx3Mhg3@n9o%VCX?6U0BZm|}9zZYwX+D({YTp+ib8`vs{}-0PNdOj17d Okn#|ZWa`H<=E-mUOCl@) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TypeCodePackage/BadKind.class b/libjava/classpath/lib/org/omg/CORBA/TypeCodePackage/BadKind.class new file mode 100644 index 0000000000000000000000000000000000000000..1cb6527aa16e79535b88cab7c3018adf90498b81 GIT binary patch literal 593 zcwUW>!A=`76h-d~Nd`g+fd`_$ZUKD4y8s!&2V>*VoW)`D>-WY^cz8aP zP1Bd(MDJ9@GHi%`Tj_p)EMes_dXz}J`>Q91P8l5_Pk8?r7#i!u@j!EVFup%EVxc iNzdlj*01sEslx%EX{Qd$V`}2yt14E~@Hgq1xBmc=CxEvA literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TypeCodePackage/Bounds.class b/libjava/classpath/lib/org/omg/CORBA/TypeCodePackage/Bounds.class new file mode 100644 index 0000000000000000000000000000000000000000..c24c5125210be3b550de20c3d53a67944b0be85b GIT binary patch literal 590 zcwUW>KTlgR6vfXCNgfSpNon|(l&V8j1uF4Wb*U7DR6>way#_==b`z{ux51A590dIg zd>JGpqz+x!7&B{QLa}z(>3ZkRiM?HV(~k95#0Mx4wkk zv!QI5Be^H~KSeCVEi=+bNq{V&dY?Q1@?03-GCeT;H^M=uh6WaB}U?g*wf3NR8pWjvq z`3ypNvp z40XbMElT?z2pxwVXO)iYt34mQ?1LA%F)Kx4w9k7)5(*tNvVFOueE7`RcHMLQA$%8P zkVC*#1u4&8=PG;IG>}CTWv+^22=iEA^#+R* kgH0wqn_v5Ig{6lM-}p>Bbyyfv69->aP));Mr)O6F14>(fZ2$lO literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ULongLongSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/ULongLongSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e48ca17d6260f7c80e0ba27a18b629494733c1cd GIT binary patch literal 2094 zcwUWFZC4vb6n-XzY_e>d23qKgFQN7&FO{{vRZXn|QVFCDEg?0c;wBk4OT#V>8(Kd4 zUHvW9haF(+F%ldoU=Q#Gxt9Cx%as^Xzr`?=$yOPnvtEBbosBvd6|3In45KBlVYRE4aO8Km81-Au7Q@BTQ9KF^8h`8yO9r3F z^w>|kJB94(f{ql%G>kH&`t}W+#u;J}f~+n3f?FE_i_4j858$RJe7R?K%?cVO{=Z;e zyU9fY<2YyFJT5Q{Z(HpS;YU^%7?{N{Hh?$nw2r8N0w%+V(_}bJWV?D0KgYETIvCzE za0!=XO?Nga==r{+Dzq+jBI~QjYRE8*54JFn#-xTk>DUc5Cxj>Bc$@0K)aKR}PYW*V zl$IK%>m7SaM-HZJfOi;jnSPcBRw^ywJyK=ORyDj!8VqK#WHlaIHaBOi=Az?L`Vsz^ z;p!oo^;lEMVvf7T1@+9?K|Qm&kge(@*hiA|$0S%LSV^H^;3ht$Mhg7@(=Jzfp$2t} zIu(xVd#cGTd1P8jNBSls$|Q3rOwrx!_yJbX)?eVZhB@kzqa6%iN|p1I0Q8;F-+QSCp41X*B~vn%xQ`H zuQUnVM@7Rjh40aBR!U`H1r#~%KMaUbYxZia?5KCk_)5xEV>s7a!O%wK@JKj5SABR$ z66KEH%_7kKTdZmLj*ikXTnu~Tc4Pxi^xuzD@@PdT=^7Y<{Ao0!itTSCDy0goR0*#3ifx=`@8NyL_5*wv zLa&guv`_A1yq4d?jXSw(yZEG=bO6^PCx_0#6Ci^Y0Mm8 zFLO*$L1zCPDdqA*`RBVR=DS4+g7{?KA+YTOg-Mb7T}Xj+`6r=*(6t>x=R^5M_EE0= zj(dA}&;Y^me$p%dCzf+4|>;xOueQio+m z9e#j6%JIG=mKJbeI(f_OyXTyH?t8!g{5S+Kg%=_M45OA^ldX-KoLhQ5mz9?l%dGLQ zpnX`djH+gf2r~4ntJ|tR zWs#xX+1b=8R+aYSO3keMiT|Qoa@Mxhog!^>w4G)M&FH4?%rdkkQzeEV4@c03ZV4Tb zL|h;dXX1p>hXE1&4E?Qwi@BG&S(Pw|AqL5LU#=TeIsX_2mDA2nN6>>|PCmjgoIL$Z zsuTvpB?)0f7`heR)Lzv$RyDimS<+< zqMeIMNVtXxhVYi=D4JPw)(A71=dN{f4|UZj`>hbl)SfEC#Bu$N2IkGpy5n_`s)^t_ zCPmyJb!VTKAmb*<;1p%gO6pynW89K(8+WJ+?tcxh%PMacgGg27UBQCR@fhOg(Z}oI zjb|81rj9qH=_Zvw+PXuhlK-uGsqVCvJ%d>hkICh8BuIF|?T@%DZs9yXD`Ae8Jm7^- z)Eu&02!_PDL=k?$s@oN9Ugvja=;ZB~AxrO(lR5mzW8d8xRHQJOjIm=9~v z*#OP)ld$Q`9%AWTTI?crxR3Y|&j>;^7MggLF@zGv@y6vF^e}xszDiPQjD9JkeP+#P zPNXyY$o%RcvJ7Wx^XaBer}j#$kV92O2_%kpO_YfSWde6`&!xPN2R^0j?#WpW{j~uZ za)V}*Q$oY3hj`>C7k$0aj4x`sMefrhiCxrE;1jj+Gr97mNnW%eFNz$VxpJPndGmh( DA7M|j literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ULongSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/ULongSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..055547ad555503b4f69ed4be04d3f7d08cf5e911 GIT binary patch literal 2065 zcwUWFTX)+;5dPM2EL&CUIw|gz;*?%|DG}vXz@?Ccl$f}6XdHtH5M+Cil{!+`NNMxP zJMddt4kzI>J%wj}6o=WBs1wI2@q>1?JM+yq^UcVA|MT=YfE#c$#27Ak!Zy7%+nlN0 zpPn+8s-9~v@*n4TZ=DMbafXwt)~03lEY~(`tySLk84|Y~*YR&NjN}UqhWL!v;W|c; zGBAn+L%Qm?{9dru;-YS~dYoab>b0$2!xD~sj}GI0*V$mWSbZ6XGK0n+`NEQcPv-}0 zr`)Y_VY#9sgK-UG44DJ>22SA>Vi19>Ec$|5YaxRx`N9C;x+i>jXZFp?8crWxD6iMy zB84o@8aRjZ45OP?FCgsLa)p6e4C6yM(@pm!nJZ8-ia8yIQ$(__0r7HNyR3uZbpw}i zMb>d^odTXakW8J_iJAn* z^*z9=(vjZDh%(6^3R7{{13$zH+xb)6(J;$!>Hi%Je1`qXtrAsW3h_ zFpnyYu(}K6<%%VQwM8>UiB~F;^Qa@S7%m@$oQ4I43EK@KBiVUv(qY4#lDPlLlEQt| zH7ru|4(K)`Wiqe?imdq$BEs20d6gNpZ4F;ZrJ4+92a6Zks1zOw$LFdA56Phx`28e8 z$-l*lhVN*Kj^JY8d(b57Do(^Xo{wPK20F6JnecXBnG>Eup>97CGYYZj1)|OGII{1? z_kRi}b$AoU=xKxov>vB5g%e0e z&au}(kJ9fr^Y{gbt}f@0L`4B*Lt|XPtF$Hw@*-X%h?M+{M38q8SK-G0 zz@=?meLTO5Vsq>|v77u;T_nitMik(LN~umK4T5XFV4I}f+jvK@eHZUV&`V@3?bEx+ zHcLCWdAE3d8z1(Q4&l1wK7#p;*)tmV4HgilOgwekOJxQKS2edFLeZ6isU=Ci(2zHe6fQs`=Fs* wKPj-7O8aXpM~?Fmr*u(L`6i;&8ch3V0{MmZzwTj_2FDLk+94wbTlsbW1r0jVZU6uP literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ULongSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/ULongSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..de8c0a3b6b59ad3ab13b9a67d2cd4dda3365b99d GIT binary patch literal 1494 zcwUWDYg5xu5Iwgv4XxpgP*72zl|Gb+Zw1j(MWPv*v89f~hfZi?35Eniio>Y?NgWhJ^nQI30)SXxA3I=%Pq=I)-eXZQa6_3Z$_6rPF*F`T!ZnryGvKt1l>bPU}X;=scUL#gBMq)Snd zpc0~pF?6YhrN5}Jujo$Em!ns;E1Fr-9E00|GwiM!n+zlB|N1~`2&rYo2N;(iqMZ{; zO1O*(hUlj5s=8HkS1Dgg;c9ho?F`K<2Q3iF)Rrp4#8K{z#wpfD-SxXimBerblOnD% zjGcU6f{bfKgF}>k8L4Lq&v9MC4cw$5^1gW*mo?rX29YXKJhFnpb1@`N!;RO%o6Rts zN*`@R)AW?zJBCZQQva-YvF^5(JcC&g4@lut1W0(urH^?iUeP>0Ct;44+vB@i>W$c5 zI79MOgeZ5xt~(Wd-r#f6*E$iC{87>)CZ*{wAVe!o1wHIuK7O7}wkUNA6UTB!s1zK|yK1cR5jF3n2Lvaz8Xy<81gR~~y4bh(X zJ8dSri?PfO9d?#B*9r zN(l|6?%{qATnzZevjM5;7P^lPDRxpzfe+NikEF_{CVKG(y*ToC?9qAR#m)Z)3b{qr literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UNKNOWN.class b/libjava/classpath/lib/org/omg/CORBA/UNKNOWN.class new file mode 100644 index 0000000000000000000000000000000000000000..1a67fcbe4e7666dfd32de85f3eb00c4ace743a97 GIT binary patch literal 942 zcwUW?%Wl&^6o&uFrH+G3Lr5E-7XmGirhvr;34*vZ4Qi-KP@RSqplLb^gJQd~9R$1& z4*(k^7CZn89)%Ta#F?>GsUln!<8x-_pYQy0JYRo){sQ0z>IO0l^FcVW18-!vdb^ts z?7i+zxA(MbAjhzLe9L_s#lma98H&SL2EKtAhRQ4cn%gq4T@gw?mhbrfSTK|#JspTJ zBIRCZi-A32m~91q6mvfw@bN_Czr8namwtR-Wth1meHq^+H+4r7$J`&;ZX8N~)Lb7h z3fn^Hff%rSZr)$KVt3^=09lN8MUT&?$OEnI7`_= zq9o!XptB_`6G!n@Qr<1i2TnA~=l=lQrr6OyE0Lx^g}IPob_kQDXcA`e>J-Q>-O1IE zS|U7hW#S@MHQ2-&Dx_B6Y6|WXI7hM2*jTzYh5L-U^;~lsiSCG7z$JZKm8l9Dov8|{ J)0Z{p$}h$0x8?u< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UNSUPPORTED_POLICY.class b/libjava/classpath/lib/org/omg/CORBA/UNSUPPORTED_POLICY.class new file mode 100644 index 0000000000000000000000000000000000000000..165aec3b7854f2616ab6741098d3b8113a023b4a GIT binary patch literal 180 zcwRg8Z`VEs1_nb0ZgvJHMh1oaqICWI+;n|s{~#wv{ZPN)(0~B{pb%G=_yB(&Pv=N> z1{OvJfvm)`ME#t^ymWp4q^#8B5=I8rvc#OyR7M8IU`7UB=ls0llEl1{FpwBC(0E2h x2Cm@z(xT*4x6B-%DsfDM^+0B_0S#aPYhaLMU}azf((FJU69WfWj1$b}0syKcCwKq= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.class b/libjava/classpath/lib/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.class new file mode 100644 index 0000000000000000000000000000000000000000..77991d4cf18c6cfaab5cb8e459355362fc936959 GIT binary patch literal 192 zcwRg8Z`VEs1_nb0ZgvJHMh3O~qICWI+;n|s{~#wv{ZPN)(0~B{pb%G=_yB(&Pv^+^ zFh`$IS9S&#Mh1bb#Ii*FoW#6zegCAa)Z`LI2G+8~oYGWA2F74U243g1?JM+yq^UcVA|MUAZ05@SNh%sDrTvK;8OnssH zV17*NrVh?;EzMSKI5n<1r*|TejuhVHnHh8w~LUr^{80 zA*Ep)35ImVviW^~qs`sA(e87GiHg%P`VGUi#Cv!c_j=ZV;Zo&D5+w$OKlWThL_U*? z7|+?;rTkh=MFx`!CKxgY?lnx|C87|5v}&Hqjg5f9)m%OTxJj|aojx=xDL8XPshob7 zyD3cLoQCtbz%agL^nC)4t<@Nq!7w?3G~M)$%3Y$8Rm|!#OcBkY48+W`&5{a+S2bM0 zRZ+_AO^SH_Kst3g7xIwxb>tP~7^X*CXvktlL6PJehFWx8$4%ljs{Bfy8v~woxu{T9 zNSAH<=B$bWbfNp}429f5mitcXJ=b|83z}~zc!R1xn#qdMd1#nipEtV8mQCr$_+y6a zhh!G9rjjKrd%#`lmb0U}Wv!NPsHE1rg7kZ&RxUWnprqk8KA;u~{9kC4Yf-3CeIkd! zvOP!kwjm~^Cv~KEGNMd!hr*QYP2UT!f`gIt4WD3%Athq8`i^bN$t(+u zPc zeQ%gWAo|y6Dfouw=ol^CkzR))=iP3p+Ud7b#Nw6=$D32T|qa5|SuOpy|LEFXJMuNrHR@mk1&yJ|!XK zJ;Y_W$=`5!2iKk~@1f9~xIye@|CARAGP@ZDI3-i6(@BHin$OuLY4;}Hl5F3`J0bKc zSquC09;TbcUEI1?xUqxxhe-!;J#w;Wzb@gjfeY?P&SLi=E=bM^d_?SHw41~HKK3HV z3>9SIk5r{l94kKCLAf|AN)W^&bDzMr_7x^W?)M=CQpF#G3_@S)5V{!3cVZ9K<}dhc z7oQJ71G#>XU@@8YmskrOmqSkJf}rwMNU0r7`$q!#iS|G5W0VHRcVXHABL-9Y_5KCO C6xO={ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UShortSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/UShortSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..a134da240e6f52ccde775b4610697a3a8a9b3d72 GIT binary patch literal 1500 zcwUWDYg5xu5Iwgv4Xxo-5DJP2w91y_Uyesetta!FoP!|0t};;U6ZZNnw(pHv5=Klly%E? z6z%PjWmGj=M3A9(L)}(oLp5vi^4f-0aYTd|#@iFOC{0~6G+A+MP2J>224Pz@8ng#i z6^2e{XG^PCRk9}wHM8L-{`S`8tZl11MKW__&N77NbW?Zc89I`w5<`%?Bj`Yngfoyt z^bv{w)(N8@XGIJ!473w2=AP+hRl*>K7{bn*a-+^$XBaG;6gV3}FNQht2*Ysl8z?4qYfv|v?Kqomq8w|!^OS=Z|fV}*ZCg7grQtBQv(DM3Uh zXOxg|2~*TSU2_VWS##E@U^373>f-9@s!{fbAe3n^RfehKint<9J>_L{AJQpCb8)+AV4c!40_&Ceg$b4$U~2X)-JO0 z2+|4YPamK={SCdZz94#l*dES(CU*d%ZfcO$C0etTzCiX8455Tcymavfy_!BAKP9O(M!yu&KCq)-(xDiX)*7RW>sGJ%`8_hBK}fsjfHQo&HENyDzuIGKhi&bV?Mq_ES2z$5I~$T5`Tr02)|o?kyWe6i~vDH*G` zq92OHhQ%;{%0F>G;;QE#gr}mD+9)!tU2Hmwlaz;%@b~wEmnxO%$i@uAqUn{f-w=u9 zk^HP{Xym|LTOt|IuA}`u2KJiaYCTqil&iGGqoF7S@?-Ih_`1PRhhK1nb)?GDv z$}p3T&P2N_P8gOi6%d;yC8@|#yic1;!MU17nn=~tIX!@3FyyWUs-<@g`n z)5uP7pw^lN!(A68ENHau;u_{Odf;LaH#B}Un_fstXzp#YnH70kk+mn-z?<=_$`0)&}fY9diHk?5Ejrp={ug>H{2 zGKvN7JIdcodX-LxB5()`P242pW<|J#+h)`f?o0-JF+_lh9^h?`vF2@!anIWxE>O literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UnionMemberHelper.class b/libjava/classpath/lib/org/omg/CORBA/UnionMemberHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..d696e43bcba0b9e6ee568d809cae38196adff202 GIT binary patch literal 4221 zcwU`XiFXs#9{z6Ac9JlNRu%=3RcVuS0e6Z(EDDvheYQ|U)HqFtGLTNnWKyX6d+z&t zqWDnp`P{IIT8a%-R8-vkpFDo|X3`}~>EYy@xik0vmhZRTU;g;(>+b-p#h)4~1eT?o zzQ$C4Ut>#0=WWr(owk*-+sytR)7fSw2TVsprNE{8jX|R^Y1n;@9Xx3^Qo@J7HIk^h0nV^!m1y<@2(ts}Dk84q@VU575 zS;*2+hmgSKo`)=Zs)MdA@1RzDs(%(BqN5%S0zvNd#s`gLhURQ4YtB^m@-AXF8pKv2 zBUEx3%$FrI_=5S%hzndZE2j!*=3&<{WX&{{%ECflOjRXaP%9Πne>@T4CEqOdaI5qRBPBIu&}hVBvn+027dr8xLv~*fkl0G#v|)+dOA%;)k?T#uZ}ygRUpu1 z*?mdVP1(gR=0jzDtByOdU7*6EE%TWTlkJ7j$xo^_bZBTVsy;q+`~!DQ=9Xh7GESOJ zChjH#BDKZB%GQ*IF4o-iL-J%2Zq7>*#ZDdF*u@s;sY@%FO4pLw))~rmH(E8Y>s>va zqP5qwU2CtE?^1r;%k-Yyl{)X&5yt~;h@MU(X&Gsyvb%(NC3ecCez^lbdYD_b(a(O| ziC)={S!Y{HDJvtPV83-sOdhe=0_cOKVIKosz}m9ivZ-o64zN+X2jYf3#6&Dqpr}+n zu&LNcF%o^I8y|42e#^~Ay{ND}wiygQ$o7~tdd#E*nAYJ+7;^|CPvgf`K^(#o4Tl-( zlIG3Y z^3q&7qaem1N9o7YykKeNdQvt>j-n2-er-dOhGzw?EZby)cm{KWcmXeIc#*f#gr(gGCnZyi1Oj~oX|G>R8+M8|7*oiR{sDvcHtT`{uNN?C8{IEbboj^Qm0 zZ*q8MnBkbmKVrwxn zX|tfU?%3y~4oSq#btQK-j22bRPR?StA5NG9t|e~=&B_l1t7qd4LiFzc3X>JNwD5A9 zDxAckzt}mR1DfS5b5_SU_*OtyGm@8VGI2`WA8PnHr{jD4K$qkga^0%rh2AZ*>%5%7 zeiGPxQM1>yf$k7~k-~nRY4Vv#*km)N(^Gk;2fI=kCt==U$(ed#(e&IP-B7uLx3!P| z7Ag>wvjX3OavI>O@q|-5pL6)t$W?Hy3Y~#|N-ep_f9i?g^o5+28jP$Y|M)OUDN=t2qshm9(1rO<5@*UI|3Qz==V6GS{s zfO=btbyQQuiTyfUPYD6SxzSU+&O_~|;+w{C^GE^kyQTp5dot_fz@Fn54!uyxy^&FD z_!Yx78+UL2QN11=#pYv}H;UWFu`P>O==@0KX>8_qO#2p{ZDC&)JKAaC-8Fmav$(H4 z;ya7Z-8DwNIDaSQFcvJ-K11&+p+FT{Ai>}sPO;TSM|0WM2c<|uS zKT4dW6{!dwvNOB+_BY?oe0;vX0a(LK5;4M@_D(H*d1~bk4tKV#s=846R#koB74Pce zDv(+w5hvt+={g17gxOBPmG%O+))3ZS!7i#m2KPzy5Ju148`qNBst8ZI4fzmi2;CxL z5k~Az%(lAUAPoAE+7X`5<*IuH0+k7=yjFhTs=#p@O_5m1d5;tC3)hU>lu8C$gs#OU zhY-)}6JekWqb3G1L>RE868p`|n(&TV28L~2=K?O5;eGos9-K*^FmM0gBQ}{{{KNZ_ z(+h5%iC!24(^bdf`wGFR=%!Z}B^egW{DoZ&+r_iummr1&cx0S2izk>xA57k*IFF$} z`opi|b(l}qITFXj@(V_uBFPx921j5Qag>qf%xsA;jtPz-AkzkvSQ%=K5U{-RjO-7k cpX~q@rc~LC6Oqy_b(<7sll+AyrlNb(Uq{)Ao&W#< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UnknownUserExceptionHelper.class b/libjava/classpath/lib/org/omg/CORBA/UnknownUserExceptionHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..04fd69a47fc0c09049d1a9c86de84e3deab1f4b0 GIT binary patch literal 3008 zcwUWGXiL$xNI~09$JptKGh} z{UNrGLZ9+<`P?7Xr|+GlMzYxC!_4H~bKY~#dzO3u{^z$p0G!768af1qY$q4B3%O__ zHFIt(deypR*{jyol620mWo6MdZR?`U7p0@YFVM4WtQgU}VdbK!%(Be70$pcK%XHro z@C^;m3-}ZEk_^I!fR0Xd3G7Uomb_dpWTZ1^Wb#rVl(e%(e%^3Q^}o94cW;^{fpD^2 zf8t8#PLZm6hlcC4=D4o>hzHP%T^d3H139Z)-Ay@}8Ch~2GwaGF9lOyd5STTsTwc1i zC9tawjgPp70UFx6KI=N=tUE1LXaT%{eH!)(?5=YqF=bk`vL6S?m3u2~Sa$^a>mBx_ z;z1n35eh-5BLgv+ODkPU)=AmzasH zBMn!k<$s%Ayw{t#*|2gw**aUTsbLx0PDVg0c!I3R1J4B#=)7UdJj2}68nVl@7$JKl zR-dUc>rOqB%{U>g8shCWtDRqxP7pD?sj|wxJXvqFg@qvA!8r|M4aG+%btEv(jY=SC zQXq{&rEv%A;fuE8s;y{EDy}Aj&#V0U=28rJ-EWYem#iCmNqu*t(xb?#?z@Q=V!*|CR3NY zag|lo%&Eh2ttiz{3StHeDt*@k`kGYx@VxIr0)YUN+Eou;{hJBMk^bYbFpbZ zb9i*w9wOVatvCdNvv%3Z$_Z2T@}bt(h*4F&{v$lJd{94)U%a>QsqtTwZ^3tGcmv%( z^P>YnKD)fd7`E}LR|NRp&UXMiu(PUsmrn&6{slc#{@;1%^J~vK4o*jWo9JH*9Ul=J z7@Q6Nis8_Uk#$5LJ+-ixHo&3l$2c)B@)|SAb8!m8xa3(qOk_U>@iO{6t4Ht(UZve$ z-a}r)>qH6Q4Vt z(?CUGfh%flfX?R^HgS7#1Epky|J)~7i_}0uBo3_KPTVI84@maIXBZm5$N0qKC#X&U zkDuD_uy-Ma9UlwdH-)`ibs$Ab=!TB*Q7J?Oe# z+l_?!&NemqUK}&nIYiScNqW=D;aw}YOJKNaLdPWrQ)MfZd{SiLkP7czfEu-C&ktjn z_J>dgZsL}X<$TA%y^u#HZsQIWm> zYbMsQL1I~OJzsF13e><9gCvS!BNtX3nfw$|9?RBvms+&1#;>N*u9$d;vKp+!+h_)H z)aAQE4cp4(v8t+jLwAnmnVteYObrg*LuJ!M)B7@gJxTu1uKgY67c!FtZUXKBHWQqMa)zsB YEz^duKaWVoWRIWemNx3vqr|KF2f5lP>;M1& literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UserException.class b/libjava/classpath/lib/org/omg/CORBA/UserException.class new file mode 100644 index 0000000000000000000000000000000000000000..ed8baba4407f4d0f5615f64cc92b237af828213d GIT binary patch literal 571 zcwT*x-!20|6vn@)ZA+CFrT$g8D-s)#xFHRyqOu`Tt?Ow`YNTdlb}D!tFW^ez!UK2{ zFCorsoA{Tw*!|9&{hjZdlYRSmc?GbJg(PAObK10heckrUC#QS6emxYXa@P_!R%(@m z$1rilZ@J&$s_lRKkYHH+IeDXv<;{-ptNTGkS!wT+7-Yyr<5K%IVI=R!2gfjE!|2!$ zCM3Ulb)SJ9F^rV83N2T*!8=_Me|*TEzw6B$LtQElf~d`>zXxEwYQcVE^o%=<>@{~ z@K7rk^M_+B=nisJrF#%2F-7VO@_mC6k&aEQtUhD$cVXVn1L|Y|sRY{1z{$AfwoT`WV3K7$g~38Q6d{JCMi3zyTKH1hcsSC`lpk literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/VM_NONE.class b/libjava/classpath/lib/org/omg/CORBA/VM_NONE.class new file mode 100644 index 0000000000000000000000000000000000000000..3793c8251f8cf2cd71cb19dd4a349efb8c84d9af GIT binary patch literal 158 zcwRg8Z`VEs1_nb0ZgvJHMh4ORqICWI+;n|s{~#wv{V?BnKYu@0b_Nzk27#=^vPAuy z#JqHU|D>$ccHovvDY81>$ zov)cS{(@Jk+|dwZ7~D4xO`~F3Wh1}0&x3!!W~88%D<{E;96cg?AMv!&tmaEe2*XjC3Gp2#6BH=owNO zwe32>DyMsKndEJ(=avbRl31U@<)zdj*(t0VcSzkrCv}}0N))8LNgdZQ#h^DToXHrE zcLOQYO`?i*(;0NQNqScNtyFEtl_|!CRjs=ukedhHou5NOL!6v1TXnBMc74kz2wTSt zW*I_4mSLDV4~^{ls7k^n$mQ1j9g55GOKUI~rkivUP^1?%V~cjDbe0&Q*}tRVHhnT* zrR=7#N;>Z19z(DDZuhWZX3Wp1@WR55^oaI?`C7(XthSVfI`lsRvJWbla{wMgCmKi#qDNk}1g?oC5s;K>jp3(Z#1# zqbGxQMtdlEg5Ixm2p~#pSOu5SN2}gQpuL~=2rgit4SbBjFFx?I7H|xg6nG5d9{7fO z1N00}_@Q|P4Jg1BT=f7MipW?vIe(06&0eD_`kF}IC|s`Us`i@F_iZGp&uVG6zpo7L2HCPVWNOL77UmS3!Xm|C&{2AqSF+)$ihIgYG>bGkDUrDuXfMLagj#~`66h(_<;Ec@l7X@3q^X0KaFV9*6eDo;FRX&3G7K5 zTNbuak$bDMOJ^S=Kc>K*Dz=%#`Mt0$RN+w1toUHI;%SFOGD4Ndurm{g!EA*|)D_3R zyeBKU8&Q{iP@$tQ&{L#`$s0hwhm7e4(s-M`UaA$Eb$-D5O2HiFX*B5#G@#)X7AUgP zBrM`Cy(M5N0~}MP%rzyzseQ-tKgv8c2Rx#jP(@Rb%4v2+lF>bqB}J5RKVu$dOv9;- z@!%RV750uw-e18P6P$s^*ig79%Du$ZGmqLBn_niRlA7aJ>}eBwJ9wIxQggmxd5qn> Tlz^lRrbwybnQHx9)ztq2E(8Bg literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ValueMember.class b/libjava/classpath/lib/org/omg/CORBA/ValueMember.class new file mode 100644 index 0000000000000000000000000000000000000000..c317aaafbd83fbb2e58942094cff4d9bd2a11002 GIT binary patch literal 1095 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 OAm6ewiwy6j=I}2OK8@-C literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/VisibilityHelper.class b/libjava/classpath/lib/org/omg/CORBA/VisibilityHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..5f9b920ab04c31bf518a5eacb950d7e11e259a41 GIT binary patch literal 1776 zcwUW^O;Zy=5Qg7LLYAzHU=&bLFB+4FUc4xZZe!913e*gLT3&14a8wfBA6uo?+xSvlfrZ*Sn6B$t! zSy2%3@C`4NxMv{5(6#3rIEjMe<`e1c9?waJ@QiSUoMQ;a;u(g}VsVF?2qI#k4Pl1P zlyLc4Wk1WkEhk&x4AE3E=M*xIC)9UsF(h|InPD*XZ;B)Z6mFS&6uCF%GoE)3lXg5~ z;u0PkMV>dAa;nFYEgAWIY1$lD zM*hB@o*bu|hKQMx9rc&1MDpr@B$nM$MG`4@_H~E7!fOLd48#Aox9~=FqNzfh{A5Fv z^&Z2m^F(B5`{W5pEgNr1n6AjWgFc39ST~Sn7&(WBg$;EuFX%9*l*JRu+vkc(mKm8$N&HU literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/WCharSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/WCharSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..42dd65a9b972758df0450a03788aff21d059372d GIT binary patch literal 2065 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 Z6C&`mBCA$>MUp_SuF9+!6^-!u=6~|qrHudp literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/WrongTransaction.class b/libjava/classpath/lib/org/omg/CORBA/WrongTransaction.class new file mode 100644 index 0000000000000000000000000000000000000000..8bf2b631be43a43678a98093596c180b83a27f98 GIT binary patch literal 456 zcwT)_!AiqG5PjRGjmFw)G+qSp*j6xz7o}3rsHdP{Ydvq{5?9h)*`(rcc`A7D1NAo9SdM%#e>W!QjU_;n|2A zY3s$MQ#{F>VL$$VpdLfej-UA}4>PXPa8MYj(q3m|EjO%XlSVRv=XN&#FO$I==&4D> zwY0XuvcaM4pzoo5U{8fI+JmA?)iEI>taWEtc`u(miXI_w0tcs9qpUF}5v~(jf#yP> hPfW|LcMoQ0Eh|LCyet)V=B$N+%{Jke=38aY_7CkZTS@=` literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/WrongTransactionHelper.class b/libjava/classpath/lib/org/omg/CORBA/WrongTransactionHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..9c8fd65808619c3a23473d840e6c577082f3d7cb GIT binary patch literal 2642 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 Mb5p6EO&gv24`BbH+yDRo literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/_PolicyStub.class b/libjava/classpath/lib/org/omg/CORBA/_PolicyStub.class new file mode 100644 index 0000000000000000000000000000000000000000..5e9267a9fd6c906ad0754b633ac38498cbb360d4 GIT binary patch literal 2534 zcwUWF?@v=#7=BJ^xmYf!CViqJ@!ocEk_-}Aih^Stjl{rkV) z{seFWQiDgJ&9c)WYbhNXot_zqgc6smjG0`HJB0-eUV-k7pL3S&7z-I0nqF9xNhi9L z%V?+-*t^lK2%@2mUlxs9M#!{6acP@I#{5tn7uc0|m$TB&n^yK}^qhdWD9|u!W%G`a zb!LrBLHZ6h9Gd?6ul`>IYKP3M=?n|h1cI{y-cc(h{is2cjz;Vh*cmgka;mVjAnhx~ z2u(37$p8k!a9!H;IycO`!2VcO)?tC3K&%Sub21~-h9kqlSwE%>q9O3@Dj9Dl$=3-3^DUhKOb>Bb>x(4W|V9t9VCpISOJpY_hT2Ntsg< z9cM5g(3qA^1(?8*z_x?FuHy}*txsX3G*HUsjYlUVGw}+|9Q}yVuD)440i;Z+v zM=y4&*@%u&oKr1jvq6l!oRPWAvOsTD)hbg9&T1GJ2v%{OkxPc1zhPv`QjmeE&a>&a zgU@?txkVB z#vj_Aa9cyFip=Vm!n8nr&fQBm%Q@*jL(w|S`EecZYIsNB;LD@vcn@z2>`;j%GM2i< z0`KdXQ@ffior0a^J0PM0{9`UG-8@(W4}8!#YsU^KsCqu@9_Xm$ zoR1>MUEDcED`#~QVpBA_PFD_y)XL`{I&1j)j0Q*V++7N%w(;9KZCb(K4rzH0zQ%s``CV4ILLFl~f(9F9xrbTRD`B@g4AXB}8`Di~!oJoMUw3B)+-;ND?OGB=^Rutfb| zu4`#06!l9L)cc>}@}RHC&-bXB3Rl-%*2Q2!JWQy=rQgDF%(W4Q=^%|rS%z`!=D5t& zM@;!+CUl2>D=hLIdVYdVe2N}?h9K?|<#YDmJ)U2o4EKog1)sMS(*3eRiixrm(XteJ zNs7+06u}B9cw>rEh=!6BlS+#DN-5TGZTP@Ik!iEn<;d(TXltj8>*O=GsvP z>O$DHMKLa-iQ`vXeZ!=`WlGT< pUy1#II1gPxhKpp%f=rYJX)FoSOu_~`u!gwLrRlGbCh49_{SPABFr@$h literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/ApplicationException.class b/libjava/classpath/lib/org/omg/CORBA/portable/ApplicationException.class new file mode 100644 index 0000000000000000000000000000000000000000..528ebbb2a15450af867a0381b18d0ba448e89c0d GIT binary patch literal 865 zcwUWC?P?Q26g@Y|CN^xFxQ(@~UsY>KQg!jCC_;@2DWMgk5kV-^bXZ3=JIiJw;#>G8 z3Kqd1K7cRaZ}C0EJCk5Vx6mJR=iE8>>s;pBuPi$1;VDzqEL^bu(SK*{#Kak z%!vJ1hFfVGtD!JTClB8aWokhMCBous@kWHPNTTpBqD*KwLg}zCGbLj6&ekE+$Iczd zY|N3*x(^7nO_=ZKWNbuY1|ptF@2B_ve_D{ CLBRO{ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/BoxedValueHelper.class b/libjava/classpath/lib/org/omg/CORBA/portable/BoxedValueHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..43ea1b1d0c1272b7fadc6589e6298d3ee5ee38fc GIT binary patch literal 347 zcwTjo&uRiO5XQe~-ED0J5A_+;OGD3=LKVb&N2_MyeIp0`#x`h$H|!jjV6X#d0dGrwADO1q@7(w^42Klm;9A_j&!Le%~J4MYfk Ri1B!>PiT6@FXnR%FBfrSV{`xj literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/CustomValue.class b/libjava/classpath/lib/org/omg/CORBA/portable/CustomValue.class new file mode 100644 index 0000000000000000000000000000000000000000..a06f1dfb473128a854bd477ce307c63ce48f79cb GIT binary patch literal 201 zcwRg8Z`VEs1_nb0ZgvJHMh2z)qICWI+;n|s{~#wv{et|WlEkE(RDI{t;*$K_u*96w zRCWdyMh1bb#Ii*FoW#6zegCAa)Z`L&1~x_p1suA;`kWGrfqFR@8KhBFL5%iIEGo`O v%wc5U3eGPrN=|jl%t-}WgJiEB$V#9kj10^SObo0H>2JM=F?jP_MQ1{F^O~Xk~8(w^9XU@#*Z-4unJ$oj9KK<=6 zfP=UbgpXmDZsg*6F&FP2o9Ii#OS)kx=>m@r@B+^%77rr8u58T3@vT7T8eyZv=oClF|>M7ZWfeP zQpT87GCY;#vkYM|R?76>C&8r7(1QrCY5Q=gAov(Kf4dN`cO?cVHfyMF=56D2UU` zu+3{vX<5MJ1yV7h=~{}OjK=7ze+YreF{{n&{)|jl`WE#E5({aP+67KmKOzaiURgnm?+sNjS{7j zF+n64+C2;=cu_ITyi%wvr(kqRieZ0Utf^4zM%sH5YL50qAK3&As=tc4n#^?ABF?G_ zUMkSRIq{t8R_i9<8dOaNwyz!o$e(y{O?gX48$ocBxwm+(z`i5rT&Yt05X zOH>~?9gq^?@+=*G%J!(qjXAolsVtb*QktH6P9Z04jH;apIN6sS6($B>^SspF zW6LA`1;sSIPm9}cWJ!=ISrMCSkm!~%E9E(*J5LdYtOq&wCF7K7*XSg-mR>c&vG)}h zl8#kQg=~ulG@Y@$ex06kYxp2AOSc7M=BejH@UHK{bDaYbpW_Iwcp`izf-g=C&2shLOe25U7Ov zkHs#CFDrsF=BRWjr4rXD^Sf5My=#VS=7g8Vd;~Y}KHW4aHEW97pPmvm2qAn(hbk7r zN7P&rjz5mzvS7^S8TNXf+KPa*L5xb}Rxc(rP4a~&^|F!Sr&aNeUAOd5?GZMC-E`~t z>48tzIU3MNZIHfv2w^Mr>48lDBQz4HmQmZ#@eu2Nl}k3z|3*33kB#&{VlO~5q7Xj= zHes{Vw#c>>Tco3{*yezqB-cJ_!;i3iCK`H(7k_sle9AG(!g44vqbZ8v(P-#A`zVmU&sVCnPU zcX|1{Dh6N0i;sR&*)bd<41x734m((H(X8Oq)Y)|p4T1YLkpET@Z>m5x*^sjL8WHkQ z|8>0KfF5_m4s~=!k1pVt8}n%u%}@n1FmNiB0qXZIM2QXM~ zVz9kyB*tkHQHVN(q=R{i{$!@RvX`BxBFHLGtU{1}kK%2a1;ZGT-@_PnKqts5uqx4W z61~G-wPN^VQc%$w$2)|_2z7ET(s>Wk2P>qf@UB#K8fP7_Gt>$iKK8(ccC(6PO^V9i z5=kGpv3s0o%H1;(ANqkQnKXeju9L0oD=_!;kMS{?i@3DW?{2>p`cD zv8+fB)jY7f2(oVxVc*eDyzjAx-9sDu5r^4N=%xM;`x#^GKBm|&GP1)qze;2m9pxgF ff1lt}Lf(O+_zbrxlKoVwKBuxG3e^|V>zDrlny)M% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/IDLEntity.class b/libjava/classpath/lib/org/omg/CORBA/portable/IDLEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..c4f232e3a26482d593106940393ea819a224911e GIT binary patch literal 150 zcwRg8Z`VEs1_nb0PId++Mh1oaqICWI+;n|s{~#wv{et|WlEkE(RDDkuAJ@E+%#uoW z1{OvJfvm)`ME#t^ymWp4q^#8B5_SeQMg|eEXlA~CaB5LzVoqiiNGBr$S8#r5QF5wV fCWylaH%Jep8mNnrffn9?%4{Y) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/IndirectionException.class b/libjava/classpath/lib/org/omg/CORBA/portable/IndirectionException.class new file mode 100644 index 0000000000000000000000000000000000000000..3e94ecc07963e63692abdee5ed27175a4fc087f0 GIT binary patch literal 689 zcwUuK%}(1u7@SQ4A(4R)0+gT9lphJGz~aJzRF%L4$zTYoAy>2{o3NF$8`+zx(D&)F zQY%$R9QpvfM_;4jvjGVt)QW@GGxj&**;(KGz5Weg9gA6{7~biyZR<|kc4{BDx9qMC z4L=Kn?W(2>MZ-v~s$UwS8-pw|46mOG{ENtl&ZCijhSDegncGs^z6d1`2#* z7hyz`C+-dd+hZ7Xw2BN@rp|+&==*a}`uctI+ZaQ?ZnYv|Xv!t>UMgumFl3h8b>C9DhxTUP9Mt5`??o4#IB6}CZ7|m#hbxfN|&aq4=GF`ivhwp z`f*ao6Qa1e2dVOk5sJY?uCP*^FBq<>=c3X?0-zcBM7QO(jiM2^57IqZ|l!y97b TcN&!Gi%8HMdB@K4iEiN*k}9pr literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class b/libjava/classpath/lib/org/omg/CORBA/portable/InputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..a60458485e81ee2d3ac057bc73e3c586d714bbfc GIT binary patch literal 1973 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/OutputStream.class b/libjava/classpath/lib/org/omg/CORBA/portable/OutputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..6c8a629b4ee911281de57c789e4e34c83366f517 GIT binary patch literal 2185 zcwUWEZEqVz5PsHi;>1l8oLAD8m(n+k(>jDU1zG3I)!E9vv(9Id zh#v)fsss{z?~g*v&aRWSsjEcF&F;)I&pb1`-dF$r`8R+&_&J4yz?Cp+I$^u%6snK& zYfdMOVz<%qooX-c^x|3^`EEOfq`<-p_ZQcZ;Xp)S;+_m-d|zNJySgioEQI@h8e^E6 z#yBPfW-BuAw|eb{AMGe&fw@ZPxvgC{l4@_9$@oBa1+G=jASWj<@6jUm>oOp3y=$~w z&#sQjF9&w|SQs?~7XJsQ4@JihBN;1A*|KUWy?*5RomhrJH-#mt-5*4`dJ;+DZGj7e zWLwpGd2_q6zPY}&lg2Wp1VljpWr6ctp!m#DLfjZ+o<(?mK z*WD;`i6xbNwpZ47K*zlUH&QtT<$LSYXC)MLf*Iz1*wfcLTU6dT+iN8ib<#NER>pE#)k_0Cw!)x!(wy2@$g)Px zoCY;IncYzSg+afSxG~UR=*2#(%3G?~X{F=`Qo0B9OI9g0D}|j_N^M~F^eRXtZqdxK z1W z=a;0qLK*uBysbJ)UIsm7P=8lxMb9mLQ?zr)3bNxjUt;nPS|pIB?*u!)#yR>O~ z$4pBaW0=(H0xoj(OL)hqDG_Gu4NT9O>3xl{nBK*E9G|4vWhAK64{(L`Ud1(HxX!q< zX#I7B)*Hw|5br8(@+5E30iAb{mh_J~lix!?R;} celR?{Chtd+_r!Gk)O5V3c&LMC+|N({0i&nwWdHyG literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/RemarshalException.class b/libjava/classpath/lib/org/omg/CORBA/portable/RemarshalException.class new file mode 100644 index 0000000000000000000000000000000000000000..36d24fa1d73fdaa775bffa64932ab7701926a4ff GIT binary patch literal 420 zcwUWAO-jR15dNl38x5_kZMEPDtbz}5sR$Ysl%UXR_OJEPK1uV+ODf_*yn#3H4z2_j z9>61b0aso@oTM%UH!kMyn~(Ws=I!g{6~HFiE((N>u|r|TL*buw_xHra*i`l-CAw-X zZ8DP4;mtrzQf*=v4xxD^uce4&JQTkgWkM@&Xd`;cY8mOC1=}0Gp_2A#vZ4MrXrjfDu#~fwzX73QXKDZd literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/ResponseHandler.class b/libjava/classpath/lib/org/omg/CORBA/portable/ResponseHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..9d4456bde522ea46f5b852abe6607b4cc0ce4a4f GIT binary patch literal 229 zcwTjmO$x#=5QSg-X|--#cm{tq2G_1s6c<9FJwaNB(vmhIO+~Nf!UK3Hu|ZdYvl*Dj z`{sMT?hgPf1U@cg07r~{dG9D%c zrIulm8WNWF*Oau)RTYtzH-_1Kary%e8><@|+qPG(8Acz#w->~!F)1B#NiF-wVd>s` W3=Cbk>9k6HcyMaI+ify%cMRVo(mvV% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/ServantObject.class b/libjava/classpath/lib/org/omg/CORBA/portable/ServantObject.class new file mode 100644 index 0000000000000000000000000000000000000000..79efe34094d6e28f6c7825e8d69d444724c626d9 GIT binary patch literal 349 zcwUWA!AiqG5Pj38NsZCg{(&H(9$dV5Q3|%uQ?SrV@0+;9EooM^+y0j)p$9*}j}j-F zUi4HJ9`oM3nR)E@&+ZGr9R?9vgbQN}VOE70PiLbi@oub>S*gTa*{!VHG+V0NMFUp!ulzpj> z)@w{I%Z0SM=6f-4Z+cC*Ob?05XXClq*j!Dt-}t9{Tc^Z1I1>K>@#`SmR~(7)h?(#l e=-hlF{@|j8gfaBuJx&;t#(-1w{CMBH&VB*5w@Ed?{^|yW{uXYmWuf+B l9w&y^`B)!X*A9VDhOM$mQiTJX$VKfn>u8t{p=o*vttUKgOM(CZ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/StreamableValue.class b/libjava/classpath/lib/org/omg/CORBA/portable/StreamableValue.class new file mode 100644 index 0000000000000000000000000000000000000000..aac801248d27a19915ed9f2f21c2f24ea9696af3 GIT binary patch literal 283 zcwRg8Z`VEs1_nb0es%^XMh3O~qICWI+;n|s{~#wv{et|WlEkE(RQ=$RqSVA(5Hl<> zr!E#m6>@~pV+^t5ky!xPSd zdZqNSDxWk(&q%G}h%qc*Bv;=AMs&|nMj7Th{55x^cB;ac+>>uZHHN8R0PDgJhMTskm1@VMw_HQID&(Q#44I#ls_~_27yHs{2|tNx%vqQ~iXob{>mklqn8y{0z?qlcf=o9tzmLISH;k7JEtt3!h!mN2U^kitGe$u#RC}%rG8~@ zg%x0(Qi{?UK?DnkV~p$sZFU4nvM5usY0IeWNxG*9Jx7dwfu-ChOdpxgyc;OkbWe~v@Ca$_VG)m!Ba|NcBad6az}loZVU(?bpYt7$iQQKK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/ValueBase.class b/libjava/classpath/lib/org/omg/CORBA/portable/ValueBase.class new file mode 100644 index 0000000000000000000000000000000000000000..18a59c5ade0387aca9faf0d81839946d8afb6857 GIT binary patch literal 213 zcwRg8Z`VEs1_nb0ZgvJHMh1oaqICWI+;n|s{~#wv{et|WlEkE(RQ<5ToYGXM#Nt$T z1{OvJfvm)`ME#t^ymWp4q^#8B5_SeQ+w%O4En{S024YsA(;0ydVrSq0 Mu^2dkBohM{0CsXXTL1t6 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/ValueFactory.class b/libjava/classpath/lib/org/omg/CORBA/portable/ValueFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..ca077674d491be879d4d924698a79523842be7ce GIT binary patch literal 216 zcwRg8Z`VEs1_nb0PId++Mh4~lqICWI+;n|s{~#wv{et|WlEkE(RQ<5ToYGXc#N?9v zqDpoK7Dfhvti-ZJ{hY+SbbbG%tkmQZMh32;)WnqdGLT9}1_uov6rV=|S0kVZSuV zF_2+c=sVJBhM9fgi|`FYdV8nAkU5lXo<|z91!OV9FmDN;*Q2W@SLaUC;|ztD&f0(JJx`}<|S{1 zRGhDTYVjZx((f8rq&EGygYsMZqp!d?+eft%t5U1f&+}NqENM|ZkX;c< z_1P9}eWM{M3?;=~(G9suRCk<~E?{^!LivF3K&nu`i`men)n4V$^+ux@jK8h6rmR?v z{BdfFqu!YYz3fT(AqocJucsKxI2DC1jkwJ{?m8hK=$wpFcQ!sMCkVLefA@d0K9iAZ z@v6|@Dn|{UX;5Yp^hKf940+jjHz+d6GP2p-8|1!{lR`cL0k3e2_CgOpc8)B=ZOjwu z4*4017Gj!x%B0BVzGLa)2F0HPOh++OsfS6Jv{%APEMOIP6G2tNr2oTo5i@P{Fhfk* rTf;r7V7QM53FjnroeAn5Vtq=cXads)Hm79zGKT399>+{iV*J)09tr)4 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA_2_3/portable/Delegate.class b/libjava/classpath/lib/org/omg/CORBA_2_3/portable/Delegate.class new file mode 100644 index 0000000000000000000000000000000000000000..b3f57ec556cdd05d0df8a6403008ceca81da9460 GIT binary patch literal 485 zcwUW<%TB^T6o&t4%S9}rsBDcfCcwgpx^RIpL5!tN!GasLC?*NX`s=#76NYaoevycylx0n6N$>fyJlT-^olKe_WG89@? z;4tj12!D$h%I7Lp`hvl3cg76PAi0+{*jRH>LYblAsaW1DX1+}C49d{-l0Zabkt&lH zMMpoXjN#Dx$7MYRHZ+zJZGPH8|GOQ(KpFfDC6X5I7;1DRA2ITjchqDa;%ee nmjd#2m@_ueDBv^l7J0k5`TPUz=V)u$E>IISv7K++$@RNmg8^l! literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class b/libjava/classpath/lib/org/omg/CORBA_2_3/portable/InputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..707fdbe5f3bdf720d3fbe6af3db0fda8b14c622d GIT binary patch literal 2118 zcwVJc+fEZv6kVs3wv=*_yMhWR*o!g(UTHx~5jCk0Dd__*&9pt1!D*+NnG)sMkC2Zr z!51Vx7=1PImyG*N$6Cq^DRCaoJ~Ok|+H37|`T6_nHvsc^?uUnAR?|z8RxU}Y&8^jB zZXvfQRW;p|^D38KR;o2KW9nQk`{8AnK9%d3$KXpS6~$a(=mTf#d9H5@G{ZnzE68eA))nz?fApHWiop<0x2G@8FiNqQlk4I`JMcpW<2h^%F00zHeWQD^ZB8d4BrL0n=X5&+9TT)ih zLb#1Pw49L6R7&T0jtkEThK-AQKA)PQ zN9R?|P)tpKpHqtBPB?>QNV-;a>zR{>r0}rHz}xfipB3ps+_e(u(6!A)_eVyn=>@*7 zh!yQ`5;P~Oc&F$rcR)M=n$f*Vqo3X+ii~1s^a}!?Y2rbUMxXUDiEbK0^#qDN6d8Ka zXM-~oJroC{$LLRtA0j}Lp(7f`jv7=0@Y4922r}rxHo>zN?MNMJ({|GL30$?*^x~Rb zAV)bu^{^1PkAB yzm@A#6IZao6~se4vbi2RX?9Gch33Fl3%~Sd{@nR zuh@>ubC%FExf79hw@VdELV#hW1KJD5Ft}lsP4_87e>8T;5ZJT}LP0;Ss2IQ?L(nkG zVy9Nh3Fp9bW(XN}o?D09F}-_J8E}uyD#McTU+j_$L)oHmvw6yv<5da}j>e1=e#&)= zmy7zo>zL(YQUSwt6(NkY916k`MedTr969`@zO5!GDPfd=|De=DDhOj-#SKg_sGY>( z(XKR&GLk*$N|<7p>O`kgTiML+i@nsrc4kMyO@{GqzjV#C3c^uv8#59j48v_iBbka> z%rVHsY}4XZYV=4)yL=^eYXM6V7HMc*CKXWx86@)G;U%gzjyn<(9hn+jR4hXylFv&t|Uy=;#i%2;Puj+oU**>)p5LT%EhP1?m&wANI#_Ee^E zPsM#apgrZ4iYON-M6c+VRL!3HydJ4|?3FLOcEhM(5-T#E5Y>ZY5ozs|Ppm3js$XvJ zS?F^849dP;bMoS)>Fs{7z1W(E4b0Hm_QQMn=!X`qG z*ctTDS{--mczA~7HxCfn@V+i`&qAj26~*4BoUbv8H<*9{4R5LM1~qQi=QY;I-Q+cZ OXLw4lSI%=kR_YIUttUPJ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class b/libjava/classpath/lib/org/omg/CORBA_2_3/portable/OutputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..7dd148569c10c69db4726b1857beecd5ccab136c GIT binary patch literal 1870 zcwViPOH&g;6opTd$6y#hLPSu|04jMP!^3wlN@7`Bl`;xcEOC*VgfB$EJn|4N%%b~F=iKj}+dVx$et!81ULqu03IBZ z;e(%{JEIx=L3ORbtwoW}5X_iGRnMuGCZ63zuf3vG7^0cKbeLf1e_?4h&#Q%sZK*{& zuNgMCo~cEmorq*s)pb?TRimV23#+_nC!#qCJq+O%UFB50%2R5EOXy_?9aPm20T5Y6 zA5JoK)`}NQQ|GEd{v%7#oDdAiIEB*;a!pXnq~%Da8PahzMD-lInyD;s+7?~g5S|3? ztc);*89HjXb>Y&XHA_f{6OdJ7|5gMWcY>i^tNb>`mI4?NIr({%Jd+9s#N=`Fn z#1LojIn^1G^<6YSo7U!hZUcSIB@C$+owcf)GGFp#=j`rrz09qIIE67x3gc4@rK1@B zhnjQ`R-Cxu75+mSL#$P|duNu`)k?+f>Wb*!f5-9n=%OjO z3CX(!ujgiLa2uh)O?1WL-w@nJ{}wt#NXuvT3XPzh#z%ykM=#AGEMfpT4B;^%c!Ehh zbxee7g_ z>_`|BF6%y37PX~Ve0&E=J#2%LUhlIg?ZPA%CZcJ~xE3!p#a^z*z9sCtL$TLz-NoK$ WicQpGKM?lgq1YsDIoR7y_S`SY3%SGq literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/Binding.class b/libjava/classpath/lib/org/omg/CosNaming/Binding.class new file mode 100644 index 0000000000000000000000000000000000000000..d70850fe8bf18b470ab5b15c121e4ed3438deb52 GIT binary patch literal 655 zcwU83O-sW-5PjRG*0!B9*(~X(Sl7?5T4))NuTZ z;Bl7-+qZu(2t-}EBjpJ%AkNH*^ki_#klfkrG8lE$7g;1xFp-1FP_U&ZS`*h1en%T* zDB7yWhh6SVeU6Jpa4*LU<>?-2R%7RXNB=Cj+s%Ms#Y6^KovoQjW0uz7@zRt;*Ok3i z6Tc_UrM73r8VC9<=;3Hx`cghx)vG!RGRW`l=K75a` literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingHelper.class b/libjava/classpath/lib/org/omg/CosNaming/BindingHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..4638acc1cea3732d67c1ea1916cf2375ce4e6878 GIT binary patch literal 3450 zcwUuPXOfrrOaYGbwL7S~aYd6JeLqLosM1jU4w&^5H$km@_dfv~!_NXXF!bogbV$!n zha!4$M9!<)bZ9`;rf5B<JIhi&S=@}(sGB{G|6oV&L*%>npvg&7W zoyz1?O*K!Gme-eLa7Oeg#f6Ow2cmqTKkXL>>1GgPWHsBA1H9Gq~E( zc-GM8thjwOr2?L1*jw3&8KiWXPf8;dhJ($mMI`a6fXfVr>P9zy zy|9Y=1jA5k-0SC)d$fp8O1O&GRuMO8hlWEFQyOk+(L!P9ZG{W(2+MQVx(US{@-a?) zGEf9izwDaUO7?ETNRKK6rSf4R;Z01_Q6D27ImP5Bv-(uh2Q`aIKx^g1qm(h@3Lp6* z-a=kLj^<^P@;u4<8<0ilxF(>mZY0x(1OxO^@MI`fQ%Mz-Yb8a?C@C|;aNHZM7jWH7 z@J=pC=*KA+<|uWX6UV37e*-t^^<@LeIaMxND9IY5vxemV5^-TnL>9OC^mvD1uog-k z(<(W=o~_Q|GbV|=3s*&YAD3LXL%pZR<$l;Ypzm#yvEK0)GiLXUXm)m z!_kwAeg*oYfk5Bs@K1OU4Ntd5qciPmT_ppb9fO?#e*LIV+4YM1%xgK z|FXP@*ofmcMwb=FFiE0>ae=(Xu$Rhw5F-}u{<3d8hvzL8op=E+l9!!ieF7)Ri<{2~ zn@g{q0OvzU531t0yb`(_FHthe7DI4avQ7SFbWa2pab^Jn)tO6yk3Vj{v#e~>;ZJ9Y zDt9%EbGFMXq{FqkmJyv;#D!SEzl7LhT;l61k8veXq2?iYV45nCrFy6o-pneTF1$|I zyviPa3AOyw7`AbKp~~~*oPUV)g|N=PqP%~92I^ZJ-AL6&>M8!yoocowNfG{ z<>6zBgC{qPPw*-KM}yM*89uj4bRS>XtmAfeI{bl0xU_^X`Fdpu-&B&m*$V3pg?*Qj Ya&J{aI`BPyuoB;4Cxqcg%kHQD0Eg9l`2YX_ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingHolder.class b/libjava/classpath/lib/org/omg/CosNaming/BindingHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..02a9ebd176ea8af696a3030f1aeff0ecd781442b GIT binary patch literal 1204 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 XjvVMaydm`&B6!pp~Q=oO}5x6 zX1`_T{dv9sjL->CAq?20F`v_T%K1v1l}_V{(uvcBl}1=L>r0`EbsnHf=$^z)#F=o1 z>%&PNEg?u`ZVf*OUKni&zLs~p*MulsEKC0{Rc_~;CDM$e9ije%SW7}bET{g6=7z84 nC}%2jOs_Qcun6oETsjovxe_(_D9Qw=|FnUoa|kWBD`Crry$^E%IRYo1#XF{p+u z!NU-4=`CFrqh=Zv3Esx#)0ucIQm(s>B#n9VHXl=sqRuS_&l%0o>~jpA!O#?gD`6J7 z51rT~qYFNU%_+^`xyR3 z=R>XtgMMs$^YW^IdHMkVwxY*{_+!%hSw>|!|7GMX{26Kyiy zMlVB$R%F;746R*==qZ~j!|sh@Wau*Uw|K!;k|X3S7iW+tML{>ili*sfsiq|=S8cN4 zYN@GBhF8i|>g7U4L(L4+Rr|F!FAh-24Svs73?H^*K*m8FqA7l-s_ImQp2jfKPBzid zj1M7%B@8m`ZymCX!#Kj=qxYgx)lFm8X|AM%2*ZJ<6-j9od(6~}-16ZlHu=DCLdF4{ zWC#V5&HL&#jsoq*yLeB+5OrdEyvaC?_Zhki6s^rOysY1+wh6Y!rVmk^m2jppt>)%3 z&fx=wO?NHL=1Sf)b*>t;bAmIWsV+)6CL@jngL_`ptJE>ObIp^crAKi=!ughr*86)5 zN%HJ0%`g&dE4_`@4^4S-iNWi%l4)=Wml^gpwO=l5s#e$u8JBQ{G%DD9iItjm5h^RV znPlkQkdi4}lW=vzI9BMGW=OP0Lkkviw9AXUVq4~Yk=k_`IrtH%T-T>B|$T(aF&f<#KE~KFY8! zwK0%Lxq&$$4#Iuev@* z!$4bgqBzx(Sv3g2lHx20-atDDVDU;-7w8#Ma#hLKY#91lHYsf_rFH-gG)hOa zLnkT@*w1BrfrkvTgH&oK2g9y4+EZ6yajHF*@g=?z3a(m~d6yx&n#*O$ZX*bW(`(R~ zcw0~r|2HE3Z|P#v!bxLTqM%luVcR+oIx(_l)hh7wnz&HxTzhReDw@yLN1Ln@9dJXU z%a)tI=$=B)Zu*MQ$i(d6BIMubr2}u#)8kB@!Df2OH3MwHRvM|Lv8@hH!bOgOZr5Mf zKHa&59ob)3xkxxJ_SMYlF2vhzyyN`ejXl^)2-=wFtGQ)1E#{^Fp0iz_WnkL(-8yaEf8r6>#-P3m6W#0-l%na0w$XpoIMw9rUqR zND*#)*gY6_K_nc6-9qyi!Rf!@HZw6U+((f6{xI<;}Q)Mkwh{;~M zuh^(kJqC#Nd0J1R82WJ!_vznUeNI&C0Y0r4_C&oaywnw+E#cAXs@`j84DU)~JfIwE l__Jg!;_4a*V!|F{{8DAfJrct2O3Az{t3}xm;AH6Bl(wX>Dv?1dvngjy21i=SF?f^JC(EWm zo)HGuOjcDi#k@sU{=h1OGp^@k7up%d60^x^LY&~pby24$C$71{&>^A~Z4Bp94w^ zmSWLxRC^W)JZu~%;z2L^1YBY`f5KD5W%!7-9X?HElBGh0^_V|U169-wlRpbr%_0H@ zPVJSh=48W-ehi7Yf?Ht~zPwF7B$}K`7#_=A5o3|$}l}kiv{J8bXhM{j;X$I=93J6mY z)hBUPDwX0=$(-BC%0*MrH3lXzbk*q@LyNq_FpzBKPF9YLL|X1oHYo&;#RY%CAE+n! zHbpDR25D!io_3nGfS0Ks5njj{hC%;nw!OF|;uCyIQmbITC8(>l@b&b>x1=jmiAfv8 zNe?KqSVPx@RxFzp|I@a?9PS9X%`kj=C=qv&AYpLyw5n@)Yg!}(%rjhSh~dEkQUVsK zR1Iw^TUta6_ZgyRORGs%G#W_v+>BxLEWt>S3jGp%1U)NKSNcwD^A%d>LowpU7x+@Z z8beQBE89;~MrKJSNQLh+5fAZ*>a43p#lV)o)1TmB7C`TeBEDgWpN&^jTBKh6KlP5CDIBp{*2_j#zOC?)(tYA(Il=qn zyh5#a(8mOs^EWkJx#(Y@ABmOjf^_D8ZC=mM5MR+%3*Molht9wZ`P{%cYn8|7Jn{?E znR~Vd_i?`J)@ChMT*Qh2x^RKcZd^pS?Q9YyPHG^yhn_#s{|g3RCf{IW%{#V_cNfM( zdk8)l|K0NUpdAx-^lpjsSLBf;a<{l^CxtKe8B@Gmw#wszR=;1|NIrI@~h;Zqm0%mV4mu_ zPH&}+WBCu_Gc18OxrcvXSZ(jZGUdecr?F#0Ke4m%y~cy&0UpnX97G~LA3A{S&C{ha zAFRcFNpgxhbMd*&brh12$2^GJlQ)0azz z+?nG=WLMu?smZn(@;lt;VwWMS*G?Fe{h;fr$l{8IBGe)nmNXP_iLAwa_b}?W-SBvv zqHF~n$2)OCF8yRv5g+-GVKY7JzY;0`nm$jTl%z?4T;_@E$+f7)F2j~?rF7x7KZwM* z6$DUm8+Qs=xv=T3H*iA@tGG)=jB_*>%Q3&h8SXP|ECQ0niO&Nnaz(Gr1RT@8yqj%V z&$@;URAsN@)A`n?kPBMqse0{5%r-^WP=i4^li=rz1z&Vs*&q^A*FT5FpdJNL*l}NS zIXad92Baa!pZ*%c(vzcy$zh~FNv>%?>3x~J9b{+)sKyUy2K$cESMoAgrgw>Afn6wg zN)gX+l{{^H8f9D~D@oTAl1)(=vP%<^QJ=z<2?V@IaIXk|5F;z&ummYrH%O=yT*1u* zzL&s@Mty`^Q&=_rU{lDObGYIJSHwN6#kl*ZCb&lI1Ih>wzD!8@c<8qaY%conVAw<`A6Ki zH7*d9CK5GqW!Ss&zZlP*P6}ewCewRf-*>-r&OQ10@iTxa%m>iKFld-Ns!`ri7Yu7f zE9+uMP3fXY=jMKe2jFGs*wywlwWLvMHNVRXb^v~cNCUXKo=U0}!?d-0iL2?w%tK-8 z_C5hEZt7Yo%S}r+#8!Hdfh{w%E*QeHHDPD9QkDCrzkmJq>Bq}g3@tfPFoeyY+fiN>-NUoeV1NW6Ut`Z2)Z zpLO%zXgZc{q0FFyiwH?;SivQP7}_(s;49T~o|~JpX@*e7C{U*w^-I1J48nselC)bw zuPW$7tJLvKw-|hTvUk$+)HKRDU68^Ny6-;?1#q3A=l8*uRkx~mP_ zBwVVhmx|nMhRQIsC9G;iZi*Kp`8sbz&LvWyAw+^0$CMO&lc6h`InR`cWo5-J1-EgB z=A>0BTof6?Qukl3O-RIyf_u16z1l`S$F7PVWJ?s0v0%K0k@&y| zjGo6orurO7eB$7{>(#jC2$a^C+d>pEms3#ljLw<<*G|na>OUEi`GG?W9ULNjaE$o& zF~+w;6E#fsA7T0kcWX#|X($NM-9Q<=s2~iBVtbAXrOxl%EqTW<>)x%>DRaK~dyKwm T5c!?pi!)%K+XBM_r)usOg{k7% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingTypeHelper.class b/libjava/classpath/lib/org/omg/CosNaming/BindingTypeHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..49be7fbfa5ba800872f3e72b92171dc0e8529b2d GIT binary patch literal 2576 zcwUWG`&SxQ5dN;9yNerRNMfv!#P~=7tt4sEhuE};FA|hQtf@^>y1U#tH@>aGEAiA(=(KCS|o0pbmsQ-Ed>ncRCJ?<;e1**`D(S4=k~gm zH@L`Y6*OZ*vvu*^Gxp5783XVksG=V-Wp%do3Z+bUP$aRI_`YLnqO!Z;IwZ3;mxv|I zgLvfhF!2BeF(lzVh6^oV6<0A##JvnT>J-;XHR2QDNK>}5Wjo?otnL< zP;FF&Wizmpgu4vGbx_jKDwU*GaTfLqyzJjB~f=xV? z@HNAgEwk!9&Di-hPN{Tpj#NCub1F4UJPhs#(KgGKF4R7ToS2Mp85%=x19J(5V{^Ku zJ{iPJGA(y#%b*U*X2CKY8btx<_)fx3%fzCK3Io)Dz54 z=DkhG8I#FPms#EWG2l~(8doco60;r%W!D$?wCr4JXi#>*bOUIL&p9DiE zL9+gr#6(9NDN5F=+6BI-ixW4{^1hiC4f5Zh-SpAxnB2w7j_zdoljxt6K;NRYice24 z@C(#ebk~JGx&~+kW(o5#&bw9-qyHT)Myo(}M~`r!4(oA^HHcbsz(ri5Rl#Kpc;KIj zk{~r6J;as25&9L^U#8z;Y%@4J7dLe%t*A@|(V3F}vvxzQ`V8yB@L6ZI3~5O2o}* rDA9!F#Y>RIwMA(w%7?I<%c~N6x1l@*`#5kZDB_2KTh0$I=Ewg4#@}+N literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingTypeHolder.class b/libjava/classpath/lib/org/omg/CosNaming/BindingTypeHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..4457b08cf672f859da736057323f4b65e911c3f5 GIT binary patch literal 1239 zcwUW@+iuf95QhIvofsR_BLpaik{%rgVj(WeL2V(WQj|!f$_+@BldQs4jvcvn5pM+& zh=>awfQLfN+Ez${n&iUX+4amf|BPpU|M~d~z*E>NG7MXO(6#+u*FN$uYEDmhUHedY z9a>L6_xW4j?eIW_!mxbqTspSvkVCz7&fB4i97ACkUVnFZVE6qXbXqRA8)3kmo-`S< zmyR3Jx>22)Yo8(aTzDdU$*^D+n+(d4-{CqIaKnHGonfgeJYI`>EgqaE?A5B@cHE{D z2)R!WmGGmuVAz?SFR6{PZkjWM6`L9uZW>T=jlqx_g-jY(l|7?MI}Cdxl<{7ic>O3$ z8bT-?cX3a}`pnjIx6cCu_wj%#N^-oJFUQP2XN1SFJr7IP7g7+zx>=kEkTCg&_GL+1 z2DVXMafw0T9y zY0CdMGi7-d=mrs%o-92~jt1Q-Y15?A`#SBO#b4;u`T^rB85u0nTc;Ix0R^wHM3#{_ zVHqp5O2BFgsF0`h)g{0xeaG5A$|5BPUK6E45yvqppLnMvY26}OQbZoNQ|3X+)U46~ zcgB#3uo{KbM{wE@r{N(sV%#GXQd~K$Q5j(K%aD|d&l)4;DZ}!1usbQGWPQWh0DF^C T-jkFMS4b)0ah&=|98>-a$Ojd5 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/IstringHelper.class b/libjava/classpath/lib/org/omg/CosNaming/IstringHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..995487831feed0c258ed4451f0da85d296a3c899 GIT binary patch literal 1736 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NameComponentHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NameComponentHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..8d25d8407de7b6a32e8f56b29ec51ea86193c1aa GIT binary patch literal 1255 zcwUW@+iuf95QhIvoCF)wmKI7W$IzB04#YxS233@Z9;B#2v3Q5fmLYe16*3eq z9514=+?u1-U?{$F16S@ai`l7h;WO}8UCyEYXQRam5%79VCSp6gg0s=SCKt$QXQgK;dPu+R5g zb*|R_b9(CPV$h8uFg*o&m^vbK%T!FKmfqLt>t+0hX00DEzfzFH0=*3yfgNagjYW#g zBneBnNuvTRr+_`mRJn!%Sheq1`A1nGao{ac_Nn3^CaosfDM>}QsV&vSD(-=mVO@B)c*p|(i~6# literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NameHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NameHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..236803e4c25d58b1084367fd19105512d0216264 GIT binary patch literal 2941 zcwUuOTU!%X6kUe|CW&LgsEC?)LA1G0;-#$@)D|ORBoYf0Yi%2cFb#u4CQc>-y=bd^ z{U3emtJ)U$>R0P?|4!fAt}~e$g+NmHGUv>hz4uys?{&`1pMU@M0>B9@D`*plSavaG z%@M23gML*v%et+=FVHoo-Pcm4#wWSyIlbTr`0~b#KsZ}}GU3>C9TW(h zFPKKja4ym+7M~LEr>z-1fNcT?GMBUG2sI!f--J7NV&HfX0^3!zqeGxGYn1e{>io2B zPioVqF2SsVW=?6gA@9A#j`J>52tI^WbRj@EXV$0?E4x)*{GB;V8;f375fn(X%8gN^61)pjr7r2d>vrfvK{#> zRW}<{aA5Q1Smumw2NA^~6^GF)(0*SttBl>-oVJ2Kf&Fh1xHNP*pSv+UJ~WxhjRkOw zjgU@<^u;p!tr|wXFp=yLiJ@ z-$)w4AR`@Dsn3&4i~KEHKx7oW%W~A6(xz6aq_v7Oyjal7j$xH(r3vh8&`W_feNjqc zD|cG?rZuWMn%$x{GM1G7u2{U0_&bbJMYpM`GmSLWyf?CrQG6&XJtT$Fnnw@PDlTJ~ zLagDxA-7}esWeiXyHTB4jnw^IWQJEab<32>Rj20L$~IBZ8^S2AE67rx&10$)a}(eG9DQbEr<1%Xqs%w{aNpf6ym7{vJi zNXIWLC-KWF?txpp(*x2>L#wzbQwLR{Uuq1G#g^((~#y0{Xmxs3#{IQG-Gl2&xs(2`nX^mYATVtGV$DUZ8DJ-NaSUQNx;^Iyq$El8C04NKC8EFJ z;FIig9Jv)fx{9~2_a|47xY-{b_!X)CKinuGY{MxJW1pMG2v;)17-iHfBDjuT9$FIj zP%Spz!}~6a9-PJ*M(L*aS)5~(pxgo;mp-om{%261tjpu(tJH(Iz+%)qhT(VDwkMt= zdMmk#4_0t#edY25zT>)g*Ni7D6>$~_9 zwkM;BHH=Rz`$RPP;>UmfO4ex}U?+hhi#$tQgLrc+_FaDX%rP<3#ZS~CGnr2y+i_Ta zt+;xK;1*6Y(hj!hQ_g(k!lTXOG(|sIgvc5`AAN?rkF<0-S;O7%Ja4SgM4d@DBZJ$) zkNeDU5qq(~MlHP(f}d@uz;R1irA-ZE&J#i;k$ka&1>Xgxn@C1ZuHoC|HW6{teYy_g kdp740oBtSLj{C9vTGJ!=j?dxFYFP%n+}b#Qo!{}Lr_#ia0t?My2kj3F~SlAvakqbiSdDS+s!QLdYf{K@mp!4 zaq+v(s^2}LB`j?bMF8F6=@Ooqax>&LXN ze`x+cOG6Ao5%556GZbHWfhS)xV%A`E=sp)O)sk2*1>ScLzDc{6$rn1cf57}oMhoe8DX@GMFFJc+6Q1w5M$je|9Y9i>OU8jt+8N{{(Ck|RGeZ6%Gk zFb*mV^>aSue#~ieFgzClq3aCZ66zoknwv<;)WHTrW9~jUZ5_=6RT*{{cM_!yAI8G( zeeQRpiOeNKWf;kjq3M3>7pjW38YfB$X`1~aou+rjQ0-gF4h7RsBd@M<7b19WM(JByvnD-domt^+jl*dtMt8#Fk;X_H@QLF_IFIzTMhArE% z??L9m&|Rr>#X_?t)@O00_<0q(QzEvvG&qA3iqvRD$9==~&Kx{n>4-YxWHu>rlu}No zZm&SGMY)shlgk$she8+CoICZ59bct$M_c>mLfHpynWEOU$Y!^e{ao=KEm9Rv1;eM+ z8hCxKNnj!~fx|LU>^1nRCOQz^C?@Icg?!)Ii%wUYPJq6faBz#>iYh$;o7f`swq2ou z8tT|agYXAJ#53uaKWcwD?9{k&FclijW?Sw@t5ek zsfi>{_{)BYsZ)_qBzGemXd+fv#%^><*u$``CW3;!*heWiFe(*}Ym226`u%|_$h=`% z;#sI{7M8HTISGwynwws9;edi}^f0tt*Rn;z>1!ql34IKEAE$FFGO8xdjZH;nVu?u) z4l?Yi_B+6r^VB0eEu$BHAw+;-r@yvU0<*&6uz~?R%itB_MYUpq=nYg_&&->~lAU*; z?y2ic6kabyI-*d2KSxOtAH!r|F$u>Q_LZHYS*=irY6YU1;(1Fqa%813Y_Fp;LknMK z*dKqAJ6XAs8cjl1{0VguvBbFS@CWJ*j9bqYxJmssRIlHfQA$*@3$KV;M;H$IoAud^ zsDe?9QJa=HJl2c{tLfD1MSH-ld5!41bDBw_Fbr2ambON7qa$IQq37v_GA)R>f-r{L zF^O{$5>()NunJzo6m^BF7gVi5Ctj2=!?3GX!*h|T$b^h(_#~WX=x$Ju5>jk2pOrC- zIRzK-2JJ63!!0$>}KQTlI^g0<a|R+xDIV5r#M0BVreQ^#tqtr(^P{jx5S33-cIxp_TU|=e(g-W zhxaAitas52&w(xT~FGIh~3@rJS|idMN+ z&B!hm)Tg*5;WL_?CW0#X9A7XfHj@qM_cYo?Gz*fkE^vQStQq8KqiCl1XZwb18D@)^Pw`&7i( zy5Se1tMF_Ku3=l*&21l+T$GXlwqplfz1WEk$N45v5~TWqtJw7jUBBU(mG}en&iVS+ zaA;!S@G64m2YiFSBQ)^Pjv}KS&pQ~Mb{c2tWSlVK6m9a0Sml*IXp2z*Ui~CF0AE4I0X{}Hw&+3M zrB%$|N3L3!A1WG5rc|#%NMur?>k(Xbt(AMQsD8e;SMhE+#%BBJU5fQ1mFsSW$RFWj nC&CDwh%orb$_C^{<$I_H@>8tVc&Jz>N3h-_}u;y literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..557d34868b0101ca2d3eb2c992ac1e91728fb11f GIT binary patch literal 1276 zcwUW@QE$^Q5Xb-C(uRbvjSU8Dz$k1iO`#Fuv1npc8v|7m``hPVzkmD$@C2@oIR;xqeOC68xK$#4M zGcSl~-fa9oVU3~q%nyCJ!!U1`TMSxV^tg$6T(MxlWLRwYAwP@<9UdL036>k8>jf<@ z^3^)q)Z_>Ml)=f7G*wBdx9uF>wQ|bAg4yf=xOJepVGFqY~0 z5X!_Ytm|0IcO5(!^2ow%+#!K!qSyHnxh+09r^ACPUK42N=N!Hs;uc{HmQV}fBT7m>j{5^>b!`@ZV2 z^?!F#RXr7YX4Jy;73gECSLo>}o0^!$%d~o${GnavJFG8c%wd5>lV)HC8lGd3EGu=w z60Xv$0LvL*pFEYXsQ^yp8&>{O7AQHeN0gToagdN!Q}2wVtm{;kDqXs79LKQQgOawWrXeN UQrc9?`x&KF@F+?BIEktL0cyr1?f?J) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtOperations.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..15d24fda36ae304bff5f3f897a62648d2ab1073d GIT binary patch literal 783 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..27c1454b6382fcd3fadc7e4b6331a5172d93f186 GIT binary patch literal 1957 zcwU{A`%@B86vw|;kOf*F;j8ycO~e9w`piPDv`9>perd+Jzzw%>mzJgUzbc!trXTtP z`lFi8y{s_6GC9F;clX}&J?C@IJ$L#2=jSf~cd(MdmfMDWb|(XiDts6|M0E5cNC?iJQDK-%{bv~{Esd6KE_0uV zHr%AQmXnF3dAKmyUWzcz;ev+q3}@TybzHX1(G zeebfwa7)7!!;ODC&~aPV>5Pn72h@y;T4WeI4TB^$Z_~W&&V>-};em$x z3?oIe>aM2k+?J3*^NuL!c!(K>P=*jn!m-Tu9if4;o5O;J`L<1`LB}E<(Q(QXmLuGB zcAY%K#prrRv@o53$2zX!QV>Z>-fc`7Xhp{=p3=c^J@S&lE6QQkV-G!MI)v=VLPy%N zb9BZXcZT6yXWQ=2w&9S;e8*NvSDnT_dG~1w8ya3QjGn@Ujv z@K3x{CGc>@s@i$+%uw%|rZ+-d!uqe%-uUP>OQ!M_MR!5^YV@N{p{F=qV-!q-zL67;Y0EW8_PV zc(qA<8CR5;8q5`sxzzq6=&jmRoi&7Oxb7;JXhzNjVpGSs(SQxB*=>rlqjbYHD>tUR zyQ%z!FoCEC`ebYPw@v7AGL|6I^gmYc{rSc*I$uI1EJ!(D_7 zfdY;1h_Xnf+p81$si4oO#FD=U&#|VQuj7SRwl7<=Efd(srffIy+Rb)LrNNLS96Iu4;2C)-e(nElS0bpo{r1+Erb5!p}-Ml$p3 zn=U-B{JtY(->690W5PnY5)#ri-IF;iU?q=5ED@Fh70LE!crMN9G+`ysT@DZ&!~5A` z+Fq!b@H+V4UvorQD+kG)27*-`Yglzu30;{@S7w7dez~}I1^%HCaveP~UHMMAHmmdA zhmOy$#|B6t1COUIJVuW33BPL!dH%>E6QzbBMcUUQ7VTclA%iKqOO sgf*-)I)jaw!7(!(H@kmugQpK2TC91WIIK@uGY2;2Nn-@8@3$giTeMYtAw>i$C{ig>L=m;7=}w83gh{tP{>sM;I5PSH zew5?gG*awiWJ){DCcF3Cd+ynLH~sbd`%eH@@KQks!grXU1SKPoB~&|hvC-rz4Qo?iAz$g3Dq$fxe~t|0>fS% zT?jJtq%E7zR#x-eT`=+`E_pbnQCc)yOFsLP!BLNehE9Za^g<;jV#O*mjHh=e3MHwK zm1{^PGLf3M%>3Pn#Dx7Z8Erd4Qo|7(Q*e}FUxQyA$8myTzv*&A@SJ6@RYa~V=xLQ< zAQG)(vgWu#YC$2$FzeZoe}+>!PU8&eK{K?Cuj^B23fx6b49pSi=nrE4azf_y4leaSQzndt@cbQl=o(UDn^C z?%zpeGISA%3YYnRT%+MwLn|!MygY`IA&ld$f(eGhMZ4m!X59Qdm%&ZJ3p!G`#}LXA zl@b?@-B`JF@%m^=$2s(?c)-y8uMi3z5{-XR#I|CJM_e9U8q%0m@Tj57>7pZpIXZRy zE-!nqoG=-dBaL0sIJ2B?9XHuh7!vWlYY9>>-?G{=6;V^Y{Th=6zX0mNCk*Fy5K6~W zJYep^Lyu!$J52NdUT@togL9t>L6skkPevShCvZFb_vWu(Aa+VW0%w-Q3WiRezH zuR=d67kY}*C_lll_7(bPy6ZqUUAsNhC_N{Pcdooo|>7-|zf^>2=K1 wdoEJOD@3`tE#t?S_q~k!^wb#nSVy)#S({=z+c>FM!gDXK>T{z0^)N5~0FEbmvj6}9 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..cc79954250c14de952e96a1905e74c2574ff6dfb GIT binary patch literal 1431 zcwVJc+iuf95IvhX2{EQEEfiX=>4oM3u@G+r3L&Cuq^K#hig;@`@hZ4DcI2!}`74k> zL_F{Td=z5Vwn7?FDGCqvj@L8ioH?HLuirm@0(cBFg9O92=XXu7*EMV2V2}4~w`)dA z&2yzVldsR@KJR?sU18SUQ|{PS)v|ms80>nECHxFDhJ_P;%1wt;ZL@tMIx>SaLvDoJ zeEX_u_B~(nwj;~~=?mUdAw!A~16rRpW|dK4NI$b(TW&KX^Mw|JR`V>OBZ(^pvd|gk z8@4OAFKKiz#Ab(*u%|K4NnKw{CkvQYx z_H@OwTcIX8=>?Kub1EhV{lE+Sj@Yr)P_O)JM9b>D(jS13=}OVX)VR@KLB(`t=zf`= zo`i2`xA+~#7YY)Xqq|Nk@B$jDn5W2ylCXfQv?_qb7+{AoRj#f8iluK@`inA0+Y+q~$0(MpDsrlBGl}<3@~GjWM&u(hxV#K}N#%spQQVTy_MP#a-MB;qD_B!vO#)~FDuN-PTm^{)0eP~D8p0SC!)|J`LHH}hDztp? z1NvMDK(%Fb+0pVMc$dnP}Beg6Sq3VRwF7!sD9jaw(#__9^l;wOfgjhBXH z%XGwcd*jR-KbqzqGR z6;BR@y~hu8LTa!wJh#tnL%zGlKvF3P!-t5DRs>0f^WG>hBvb#N4BDJV9yXU57>!n# z(mP9w@kR4|Zmc#TVf3I^!%c>^8h;&q=x1nlNe>DN!q5@*AYx#gq1_`YLxZeFz%UEK zCTUSGX|;r7`%>GGj$w>YhD+$OhR&!LLgkTD48JWn#hk4UmA7n1)*!xN=8F#D1V8ak z%Q)_9m|z(EH-U}^GEYr1W?7(S6x1Ta@O3mu<>z_ojb2LbRsTJ*%O0Hz;Sr`aJZ9+5 znniatZ6EFk88qXFBOOmL!w}jf2|3|dW^G02LA!g3ISq-LqSHf167zJZG9=3p?sg8G z3`1XZqpq|t9fD^%?w~)2MTT&tH)X749V=L+oWTo&l^H?znS? zp88&mA8o@Smqgt@Nf(_;k-VF96R$L+7>2Gvp<_#Sv##P+dd2$FDAj%UbzCkh1&{D z4d#M}UDf^z=+)R%S!)P)G2kK=$Rcfl@rg?eR>X#tb&sOFQMj&>mm5>g?kV07MiKRp zK2{z6?G@=Ua+X3S=?||2-hf}Nbzk72?-H|{G=9TEwChCYvA>tq`?E+&{>uK+*mn2#S_x;^QJCG|F;2ky literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..d01dea9f8075b513a8cf6755f6091f1ef61d7551 GIT binary patch literal 1947 zcwU`VYflqF6g>l_+m@C0OTY&&DWEMV%A<%v0YNH7TKHr_hBDU0vfFI82>(hkLE{I1 zfIrH3XS%kb-9}=Y?##~IbMCp1ng06y<0pU_q%|}!ELe6nYMo}IajUSyPYp90Ee&zY zbi}!{e(vn@%txLT(fz$d%CTu{Q{?i(*5G4kJK<+Mn&SjZ9-WAc!_atW95ZwzDmx`q zj3Ka;$r+~MER$7u;();yw~j>s%?z_!Yl%hD5s`Z8YpIA>oQX^a!Ej4Q6Z{OV3BwdS z#nU5Ur}(B!H_U>t zNm|%TS}ozkfz&plV-#bQ;1as5p*!q_P-*1k!)FUlKIf}luqo0y{-9An0vO{A*Ji${9vkbji zv*_+7?V~**on{ecb6x{-18WwAcP7fVRcuq$uL$Vy_0mYgnhl;d1hv!3&D=z@v&DD|MXKRYPaoapw$u z^{tvd*@i* zdNn;0(&jUvs8$%4=ha*$WL=_K&QKPOQ6-yKbOB8aTju0zawsd4Ng_F?qzr~eNli2O z;-xo}hEC352KQhptL9W=h^+j9X@;h#mR8(oVK@*Qj-Q~M13Y(?yeAG19P)r+lZa-x z7&gb%oHAaVPb&J9oXjdbtCo_p)3UDeXM52#Xy){y5k3)H;HJFBtXiO?@wzG{jZJa2*T^#>gJ@|te& zccGG5Sis&oXw$N3Mfacsog%uhpP~7hoGnt4uA1-#^f2sR59D-YSW289nTSlq660?4 zG3>OQI#ZTcr?QwQNhoPAy5Z-o4>0WTZ&XHLnp+$c(T`^tJe;nmTr3c>{&MT7SzTK& z>kU*~Z9E%=$3u}0iKOM{s6IlY=?p9;;0VK>l2bG*7Yb3iV2muLl)Ry8IkJ)&wpAdP zp+Q+>*c*SEJ6Sa*WfFcz{3%`HvG{as_XjG?hfB>B6rDtNtdhuTlEmBCfm6KE5r!Ur zT@G!CiWtTS3De5HPJVq(AeGc-PO>p86L42f)`<>=<4#9wd#Gbl1e{~oSHsFn+dy1I z7=tYs$9Vw>YHFo~B3{7+DM3;Tl3Yc7mjq1F5L7ADiW8g9XT6xjw1^A1NPCc!Q4A@q zWR;9;P@}r5&*`vjM3r44S~gZDtt)NPC?>s_!RwsIH`eo5B{1hvLR`RQ27istjjZl! z+$AaEEK&@E|Cg;1lQ61(=SJ0^k4!|yyhy`Gv!NyD7+Nc5p@X5+$gY~z(y3F-rDm1X zRV6L0>aB^?NP~5@YO`Xwe9^E(Te~dUt~I#4Xx)C#eBh#o&9Pb04Iiup75Y_l`0A03QkXaKouaKO#QHClo0~NDW0&$w9v& zrxeK`!3|ZI!wQpGttJ}i1zqKGiB%;$Q8Y@8s!2E>p)c^2fG=s5>xd}gYkb2XnlRQ# z-&JjnXonQERcd?dg3REZ)QWmaIivEOxUIs6$pG(IQy1x{kv`wZfqxg#ofmEh^iQ19 zQ;@Fw&*k$zfcOjDHQ*W3s)2q_lFtcjHdlF!Eo*)ux^mCv;0m^u++60OyR%o79Y3IEC9~Xh)I3EM5Buor*aV<<&K` zS8cT270@~nt^u)F`;LHoPj`0+$Xx>R1FhdHOWbWIZZAum#k`&P2-%ow2>NE0k$VWk z$=FY2%JWjm3*g)>Qo&Y)ep4G{aUX9}V}0)}<9%n0pUYVP6rb6iL$t!zTtQOj=T5rs Zlg=NM)#1XoR4dH8E|YFXb#tFP{{iNeS7-nL literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..62e5e554afcd92ecea8907db71c7d8917e7ea32d GIT binary patch literal 1255 zcwUW@+iuf95QhIvoERI^mKI7WhZ1P1<3KFLWl%+l=s}7aM5}NaoMaVTId$MzgbY4=WfU#KWERHlIT+gH2xI0%K)^SFI1Lhg)Y$WS_W zyokn1D?_cpP=4Y1uGnEHn$-@2(hLS%M-kTyXwVrJTdvQKqEU~BCkcJI74#ji76+(7;{XBVUQiem<2#eb*|uq=H*T`q^(B= zHc^p#5NDUWA46AAU|!mEI}-D2V;ZQ!BF(h;Fkf+|V|l2GK_qD1a{(Fj;~)zAe9x8V zYVAL#r!FrB-6#UnQ=*5-BSN=K#&l}weU-kR$A4(n`T^rB1qCe7Tc;7&fr6JnVMCb zVC@1jX{=2pZ)R}X6sO@nHe%cZR8m|$^{7nn@XM4`j_2OZ*i)wVw(xkqm74VpD-&$b Ux6-9n-e1y64Nqd}r*TdFFY_53r~m)} literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextOperations.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..25c86bfaa46a0dfcedeaca127eeb5a0715b0336c GIT binary patch literal 1183 zcwUuL+fLg+5IsxXI0YJ@7kZ-?E|rp(S}lDdPb5mzNQfXR@zMvh*rUkc>_+QN3cuEe zen3B}Vm7u2RIYIR;PD*KnKLuH^XKoc-vB;i$H#&|Lz_XMhl8N4(?dCo)gZ`BTPsVK zwm%{xZLC%5!xLCNmlGKzlEeCE=M-82?<`i4K(qeipfDG;^>CyWDchU{^p9Knd4^`= zL}0OV8PX`%c_a|rQ`V6TFXVuNLv6cytRf#v0$)p#+EOWPkBkn9nE6=XOG#!=O=J>B zt}7oa0=p%7`-veLUA0`P0?Te$pDUrKzZ*l=YqSP9F zCGeo$IPvjft|RIUN0zBx5~p0#alKcd*y7sR9&pGvokV1cdd`D-)?G?%@<7-7(w(-q z>t&j%7|QN$E&G`9eM6~ECM2*o-vDplYZe%*OyFagEN%_H>#+%`8z(Hi@t;Nf_cCg3U$It*Kf%*Gc+LG`{289-xW{&#k(YP{xB0K}W@&3SKcbZ(>X@V)^3fX#nV_P5wy!1gu94NOb` literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPOA.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPOA.class new file mode 100644 index 0000000000000000000000000000000000000000..27760f42c4b52e71a5d949dfc398f3ccdcfcd8fd GIT binary patch literal 7525 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBound.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBound.class new file mode 100644 index 0000000000000000000000000000000000000000..dc87560a09462225f5bac53113c735f79d7f4b76 GIT binary patch literal 595 zcwU`R+e$(~6kWT#lxSvUH+$%4H7>9~3zK=TS)bWg*GnRf<5ClE+0rfL| zL9|CDy1ezUXUz=jvN!wnF9RTDe3T3w3XjbIgP zouU^=(dZxQuHT3wLdbmy&n^y&&UGk*a<48sMrl8e7-97%p`!yMYMyi|M{e0S%Jd1- zEK)aaCxjGdher6OD!i_YK9(2WU*Fb1i0vz1nF3*aJzph6O1dEv7{_!H zNu&sASNZa^+pfvr%4QK}TwUh?!7=iSa4|q7VPD# zwvPqdN0!^WZ}n~V9~vQXsk=d49xK~O=DYKjW%FKG&K2caMjR82lf17nB)G`V$>$XR z>@X5zbmIx>hXEzSr=P`tT`Dt%nw;3 P2YXw@(ja_!pvip#L+*uo literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..8c1dced97971ca354df26de145d56774c78fea7a GIT binary patch literal 2720 zcwU`W{a4dg7=A7-ONRbEtg zbhDK7ZW+sT_@1+*YA@6hPo@o!bFP6P~> zWHckh(5mPrU##pDxV@?t3@#*Cnrf`6wl2Q=i=jzZKokMQWV9hnBAhL~%#czVP6dS~ zk%6s>_@BnBM7ibZbTV!3rxJ~jr=qxyE(xD7T&bayaRWCgNZ)UslFZc|FUY}o;*5q} z%XY+GvTBx+aI3-kTSk%F5p<(RMlbppnqR6$g&f~+C`<_h3^z^-o=(r?b4#D6p* zF^Yb~#N{&?aU>WbqKFx_QYN1x@e{4Kx@B9h+~^W@R|9hyL?XmABI9$6l5!Gf*$gZz z;SR&iDkx*9<#I+XJF|Nl-*t4$BrBESYMt^jH1R!#Tgu1aWECi=G#lN@M`9IRVu0G? ziFzXx(#yPpn0$l#^l_9x{x_8z#AquVp+!n%dPUpG5ghrlTTMDN z^s>9jFmRC|MQZkUDV1F{^Sw&z;w()?u#8m+D-4|_v*PdO?7}h^PBn)YWqb?Da%6=h z7~BzUeYU0PLT3-dcQU@hco^R^$S1>>@B@iBjUkN{%~{~$0FL5EJeQEKIk)H{Lq&mJ z92(I%T%>|vc}H_AUDNQjE1SysepBbBg$DhVtvi&vXXo})uHsa4-B3S?A@~Vf5~#NQ z7w{rO$2R5Gm3G_}*Xra!%!OqA*DZq=3V|WIVpVL7Ki0+kb=JPOMuneXFI74~KMBZQ zyh`aQOn(ynQH${@-Ot%gv)fj?4qXV+e5;Qqt)FJJZ;C=B;5tNdFT*V zs?dy&6z0Hj{}e30VaIJEQ0RZrJ*BqZwwzIb%3dA0;29_o*X}S;T@i_FGoC0 zlQ=<@!HiEiPd37;^$4?+f;olK@??Fus>drxiITrf1TRhyw^HPbfLqpHpE!plpLmS4 zici~HeDgcjV;g}#v3Y=JRc24FLp|GhClx LUk}5Mi!uKNo|?2D literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..0a81827842541db0544ac9b765d6b57e6a6117cf GIT binary patch literal 1394 zcwU{8ZEw>s5Xb*+(}sqyjSV&!kA;o(0U9BM1S*>7D#nnibz)O_flzT{7@m55-|_~1tL`1`@`3I4 zt!S!yt`wi;9`AnSePPucU+~_^mKV6a9na|rUx&u9aLA9jc}$W$I#~M zt(rCTe91eGu=XWE2Fhf}9CIh2`EetGf+|DyneEzglObIwwivX!*AoWPxL_g&gJHg5 zyJ9yObcBBpWn64{UGB8FZ>x2@smTxa5kobJil`5yRKC3TG&M6W4KrdJ<)RJ6q;Nr8A^#mtk#| z45}CMWJo<(Efl8$4rpJUd{vcy*Tfp~>P$oLZ2OaMOEL;)7SaslbPo$AiYQUeIQZRc z!HK${E^gWjB*XelNf?ZMFYvo!+g5jX<^RiAQSXr+H*x99(8tv6q6e>RdKfgGr`4nI z5ABwI!2C)^3Uf3XGy|K^@Er4GnUNC~aFJ#OSd0PNzN(m{>}aHk;bCg=l;r!!puUm?67^(tqIJ z@F)1tH1WYVU;IxR&kUr7NWzN`JLe3X?{dD~pTEC-2k;2x3=#}aRMhoUzw6ahyuW~l<(NWsTN>YVWqF5$AJa&cus@P;OnRP%9S4jbRf?)7>DS%yu{FNm!ZEM5aS`!{b)gPOxkwij@a5blPMxAp0F+5LTx$ Z#+~Z8xQ#nj$F+(H+ZjcZ%w5ZO?+@4+^;7@= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..5a84c0138f152ac7d5c00daeee9fd99a330607b7 GIT binary patch literal 3876 zcwVhn`&Sc36#hm6o5b}M6{w1DZ6K6reN+LpA)q1&L7*T-O_yba)vy~k8-@DTzF+qJ ze*V@UtySQZ)5p*Kqk4L0vKoOzI62BOyP3K7yWf2G&Yj7>|NZe7fZg~-!4if>%N_|^ zVaK$0o!k25+;TGEBocOjg0#J_b+J8s=UsW!Tr=8fzpX4T4Y+ zGP7AU?rzxS1H&>E<)~m-5i?BQnH?MAcCR*+;(~*vYpFiXHpF*#u%cNq@S_X?6)WK- z7S5=VVQ7w(E(R@5Aq!g*3UmbXNQv&2NH}6nG}V@b-sDF$)+u<7VbwfL73;Bqmgxpg zlFnQk%Pn(9uyziKv}HSDE}S=OQn0bq8n9Bs-1eacn^kPVR)+FRS}IGC_m{R%1=|_c z&!*fGX-y`&+PWjX?TJo5wjm%so>vh>ErU-aGOA@W6tq70M7{Nn+SX;czS@GLWyhlM z`3R|A#S3U4>cq~n8Cbi5T?`xYPSKQ>$wak`(>AX2v}0H%S!oQb3uKsK2_I+J7<-yK zS(OcGv_WcOPg$$L61!+ku(r@XsxZt9x2e)%g(|Hy{cHRDl+0$aB@Qth43>^kjUy^v zMubW>$8%O;?wm`xP+iL2;EZatL=O#;5~qv0wVUazlk+WglPNgLu(uRfKiWi5wxdJA z35Kl;b5s$-0fwbwS;>sds2`o^Qjnlsy8wq=vr!SnNrq$3Mv^8Ut)WLnFJ7VA)W=El zEerbi(T@QIr)aYjH061wuQD889Mi$VVR_UVOIs#4b5u{OID@kcs?9S_(mIzk$%Ld| z*qeH^k&&?&wl9W}D8h*}fv=m_O?zov99~3e80Qp_QPqf4FD(_k$2XiiJ&H$^ihMqpGMWyR}m8?aGt#y;A`Uf=+u<2fG2HOUvup?d{ zn#9ij`as=7gzEp67=A3JfVl|k2 zcv!ku=8RoB;;n_q38*MqT}Yj5gw>`Qw2=hIVkFD){!raC;t$a+o_!B77|QdjBvpY6 zlnj#qEmAg3H@J&W1l)uqUV}(@mAIqJKy-e%0e__;5GtLx551%OPZ+UjT!@FtW?&2i z#_HJ=%${jnjMtUbPr`{4f!709>GgU%#aPuoif4%sdRz8-|~x@6Z1O1kxLO literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..f9c6a20e5f7408541877364dfd4afe475cb81931 GIT binary patch literal 1399 zcwU`T+iuf95Ix&EF)^ksEtFEOftKb1u@Djxq^c+prIn&4qE&c7giW#vE{->HHwFF* zBoGk~d;lMXn6<5tMpTOY;N98v%$YN1XMX?r`3t~9I3{Kop30!>$X?f}$m4z9bN#Lp zZ58P&@k!Nr`vdO^r^0<-s(K*XLUeYe*AamUgJI!_pK!$_@;VK$d8$8`p7zWQkJ0nJ#s*;u)CBur^Hw zEr$BsCs9^&`H6r-y4R0i*7e`Dv4*UE*3diM{1~{3jNF-p)COu&#GH*h3Y0Sremh-o zG8J_5GRd$$RSpL0Kn{Yo*l~6DuKcGROL``0!f7(-OVP)4d(qTun`VR7^K^O?{-N8# z57=MHn86&a7VW?m3_Qa;S$5=v1zeJLIW-Ee%j8e#g>3lsQTcydad96tNp3 zEl1ullC~}rElpw>S7OZV7&B8S4zY3yG9p%^kop*0W(1ePP239MZX+ARmEszWA?|z` qA*I8+*JI@wqw>~qZ<0!}@C{2tY)n#V5|wvnP$}YmnEF8&Q~C?5*;B^= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidName.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidName.class new file mode 100644 index 0000000000000000000000000000000000000000..e61c917ad0a2d603072c7f7394089a180396988e GIT binary patch literal 592 zcwUu}xlRKy6h-fYNdi%Tu!Oy!WRV!Lbf5?bAO(#A0y4cxtYDao(Tv0LRfr0Sf)C&a zC@E;*ClJq*2(eTY&(GsI_ugmu>Eq!Mz!Ii2=proZsNw2n!!7B!BAO~}xb0Tbp^?|- zK-A7fL%QYgQUt2b|6~RZVd_h_f4H^jR%03MT-W42(zwp^q@&sZds0%@Y|N+bqJ6r)wM_IEKGFhmJW_F=5sF|JBzBg<0=RTnaZ3%paME z`L#LUjxlD(DDZSwr#CkG4@Sry=~h&eyUNay|7N^sVSW@=bEUW@kwFjlUVf}DWVy)R zlGlDdS>aCHQ}g#2xJ!^hUM&U`;a~$pyvwyA3}b}5H7IlpicDHIJ-={|(ccbb*6bw? Sqiw3=V0Yt~NWv!*&D1C3?}d~A literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..75296619caef0f0b09c81b7e7ce65ee990dcbbb3 GIT binary patch literal 2711 zcwU`W{Z|u56um8V)~jR#fe|THx`N@j@-?d79&ocyXUw68sF^yXp%yUR22|liTH*!{E#6 zd4{l3omq1%!b>m&rnRDO=*|pTMWP!F{-l}b0dz9lNzE%$L?b5XoI<6R!_=+V%^(=g z$!JFhLzki(JYCw$acf=86}ezwYHD#qwRG|94R%bs@k8(-ETbC%;^6G)Hp7(CY9dIO zMDvy^)Tbg0oe1Fy`Xqe9aG?QF##LM+iC)+&Wtgjb6^WyfXdQ)p z({jXIylR$^aJ{v)H;Z|01<{WI8G{&NXs5Xn#l72#NC_hhS5MNNo1M>QRu)!g*Hf8v z2*U`A(`Pawh%yAl0w&dxO(7>DHC490W0@~qZPBKqzQrVhK|-34@i}5doVb}514~J` z$#AXelq{;Yom6dS;Xvd2j&2%cr7~P>vbGFu{D9%Q@-cU^^5s-&i+<%JS_PKqot{Xv zS@(44hRrRivB%A7td;CXH$t?K)1ndXGu(@`ig5*B%XolUD%A?d69svro^G>xbaw-1 zMe3;UUBA|L+*Wf+)rmmLxo882WF1G89ZQbP7pX+g(Z8 zEp*$RWEeS%M3I_16gf)iC1*7E6W~|&Q7eO_L=Vg2g%5iXw zC=|IPO1i$B=|sB@!*??7VKRUxM7&15gr~&eqzh3jY0fei`)&w7;F*MM!-hpC87gx0 zy3k0G!$l^@E$e6u+mXgvZyecHPLG>7H7nHPFD>1n)IB}5m@*}&n(9`HNi@KZ*pWah zJA8&9GIZ=R$S$+vnz+;?4WcI`^WRz-J(B{4(3)AYH2zQ*z1Q3Dwu*@`{y|!1AAJRo zxp;rlU4VWP{i#IgDMnXubc92{K>nHT+HjuE=UuNEdb&@3ljw411Wxy{Z=9~eyM62s z7pkru?qJ15t{C7VdgvO&CG>jEugO}37#b_%@}KB`hfm)qM;P8Z#OU(Gco{b~C&FXD zVtnF*ixEO61*}BqbA>F@NQxpX5w=2O%NRh~jXF?4rca;SE{9&+!CgY>A@48nC7}dG z;d@L*ycGD~LVi=HV)Iyd5MN=+^H_l29XmI6g#NAZLnO+WsU{%gPG%|aGuOShV(ifo zcXLEeKqWEnK`xPvuwrdn?$a^RcJbHmK!YG5+i+xS8f2!dWAcjRZ NZouQju;=<1{{VSIuEziX literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..1f46ccfd5a90fb94850f8f4d30431db879835b0e GIT binary patch literal 1386 zcwU{8?P?Q26o%hPHi=o+wze9zenwlH56vP9ijiUs))qojY>6O3oFqe>y4ele*{XM? zpcwq&1$a^7ncXF(kwVOm-8nlu=Q;0rXXe-MA3p)ygPlQw;gRR}Y_H$5Yu@1w?@PC5 zM?=kXmH4Q3dFMUv347Z;;*RXnKe6RGUEyb7Ff1JKBW^pKvKs9J(NP(s8S*1$t2UDP3}wm9ZwqSojhcCJcEeH1(NcxFhh2=*vx|AoP`WdF<81AspW;H zq*`QDmtk!TecZ}zcMzz^PePfvgv%K$&$gYy83^CP6EntV~lt zJE1-e$dTnjaUx-#=Jl>ub@R6@tRS!VGhCf+eek8Cpm1UzjX+I0Sg=q;iE75lZ>CG0 z#RPq3lU|@0R;Q}LVD5Q=-w~TqAKTnN=dhwLB3)|2(vzZx>61klUB`4K=zW^L?uUP9 zw)7p=7YY)Xqqj*Tunq%HF;9^dEy4oM(x?H8F<_Hc>b0f@l*-?*^p`S6#ewHUc|jRl zAt@KFj!8N?PqMU#94^GnjhLA&m4~=^3>gV)P|EHYE<3_yaShi)+zsSoTqW+&7~rHFW^hKGI8Mp zxblgNrvsX(D;KAyZNC5iPt&)LmsbFrSV|$rz;)2%y3^z(9o9rg`At4(CG8t|Z_b2w zBbt)ew5fEurk_Hbq3|s_JwH6)m!S+Q_nzz;rTr9=49h=(t`3Z7v?Z^Wor-Ui=`&1{ zNQt&9gOF60)iMJ+VaQT$XoPQE(eBAaojC=VY3*f9qmzopcpz2FXN`ALWWJ}pYPsg$gMip;#TmsAh>Pt5i=BV~ukez|T~lKz6ER0*m)QW&K^Mt>ATnu^)?(K=2y zThtl#MDZCDPZ2UjtHpp_#IcWQ+GPe1W-v?L8svrsdqi3`SzLd{+;4|t(o`ddxdAnF Ou)75;M&bELQ}_h7*?{^0 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..813858b497eea7bdd8cefa9ac77c3a9b4b9e0040 GIT binary patch literal 2672 zcwU`W{Z|@C6ul$J0&b!~V^R}SKT}XE+9r(^W21pc5D8W%ad{j|CsdcBjc zcsI3k83H{4?FP;5v=hov2xQdQ5RsXm@4=PRB`Xl&&JWb>s*) zYN0;ISPhY@4(LP|T?4p@Za4T9d5aVSBZs*4H+tXV!`I3&2DgqdyfQX=i2Ivkp^;xP zI`)@?5kwm$tY+wOge;LINg0+2TOr#D`jB$6_EnMTKg}l&hi-g|2ZYi^(GT$%p#(&~ zyG(}M5_sQ0eqE>H<#@ zSMlk1gRg$WW@yXv2euFKeLb>GiaAlXPbt>0G?+p;}Cki*jJSMr&FB##IWGx M^}C!HicU=FKj0~$H~;_u literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..d791bd5bf69b902b501c0394a562f968954862f5 GIT binary patch literal 1359 zcwU{8Z*LMo5XPTv50LY0YtgFpFWTAzluM(=7nsIMT5Cd}u?>x{aDfe8Jy>#Gs{K}) zXe7Sy1Nfngvv(H+k|vxl?sjf(<~PsG&i?-M^A~_kI4R6AJd=LMk=>3{mM2x-b$cBr zT*|Vi#Amh7TOWBxI8~{3x_x!FC%v}tQ!p5oj`=BfJWe6C=CNq06p{?t5wQ05)wa`@ zzT!d&2NMu7a?B((%-e8(PZM(_pw_A%zPJmafCq!h&8T z8q}XQ!^RkQvV(7W{ecSGNGKCGa5II~|2RV7^@VTY7H(4?!mLNLWsO}j19KVHW`XM# zsIxw`V%5$~1su}8KIoFJ`hkTtWc3jS-pR%%-&JJT=hjdgsOi?(7IMf_&M5fZY{9V` zpl6gxhV_~74Ca9x_${&P>LJZcPF+!7IJ&ts`}8E}VS1G4Hfx)vpWYYg>q+p3cJn`A zeI;WK3-mT=1-4+|B^JrDLMJTYGOZf0907L8Q~R14kS}~k<{xE&k^?(Lc})>}0cj=l zj!4?NO0u+w6S0VqxBMRvGtN})us60Lq*WEg_b31(*&eKm?UGmn#_dViN+t{ zv%kZKQV{e9_~4s=M?5o$m102h;KR;2vz+g8&e{F;^Yd2#t0-rXVDMGc^;N&?S5#c( z{ZMxOai}P%#YjKn?KiwD{HoHMYA8Dyq!=z8fu8O>dFsa3 zvkqLGX2=Jj6xCtBC8Ax^A44HfZEA{BYjmHyOzHhFW>}roJ2`k+o)t7{_}}d93GD$IS2)va86umnK zxcrBzKqSC(I&0)WoZnXP@3#2`D8Y`Mo+@ZlqNDAx*HzXTRFsaBT@A3PSN3H jvPJgW#L%%i-WYeJIaCTwOD&17y_zT3Y5nyn2X literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..1190bd775090d92bfd1de661330f07c895c31c81 GIT binary patch literal 3905 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..729fb72d70949b93de2883bd5ea1f4dc3de7aaae GIT binary patch literal 2858 zcwVJe`&Sc36#j+;HVG?Yq^Kx}JZu7#sIAfxunhqu7zh#yO|5P>VF`=LZrt7QXnWd! zNo@ABmgx zvRc%Qe8hdkO~cXlofS3rOwDVNWz(5A%f{xarrM^lpcP7*CBe(kxufo?k%CH!sqBuH za~M2|zR3_wR%g3)W!#NqPXk$2^)D3O9T+C|Lnwl+WoP?QE3+t+-^KnJkHYF$o;6YGECwxT1+171_ z>Es#0LGDSk#8P<-lA$V8YIPW?U`XWOXcbtmxLZEptzJ7;Y%_Jcz^ZC!{eMA7Pxh z6Ft*nU7;sw>VFj zOS(~QiY>y~R>?^(2`Ls&PE|`7rLyDdo}ts`u^{0A!@&Prk&(b66(A?36ig#8Hnl_m zNi0iPVz}EB2^lG@&{nx+nMFl69G-r3;MEU8d+dS4t&bRBR zAM5x^!Un^oyiu;qrmXC$MyB+fqixE_;A;v^ng|v&hxbcuuh5Oc&G3zk34H3qQ-+R{ z-JB&$#{kW zna+{-j;3fvxu`ffhDV|LmaCUMt{0seHQHeIEZw2dDyPm^a*8}ecR z790t5v<<$8MHyx6Qse~9N=19A_NWOZ^S>$@elPBXk~Yg$PMg8 zw~id)LRGa*2wfG~U4V<|qNg7ppu3{{1FhyJ21X8X=`ZyDg6l7mZ!nlS!tm1A=pk-y zj0H!2#pu|d0waKSGU!_95su80WPvO!681xqCDD&1VYS~yrq8fDf}_8!OPD-V1$ncLg%}G0oU!`z5oCK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..772b53b3add4feddd9aed872fc0b312dfab3af6e GIT binary patch literal 1410 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 PTGX~xg|_{|lfL>NG3_^F literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/_NamingContextExtImplBase.class b/libjava/classpath/lib/org/omg/CosNaming/_NamingContextExtImplBase.class new file mode 100644 index 0000000000000000000000000000000000000000..964365935e7d39cc08867be96b9045842acc2166 GIT binary patch literal 5393 zcwVhndvIJ;8ULMRcW)jSY15>Tqz_sM-MqR6S}mJcnuerF$)hAO7^w|6yVvBlyL*@2 zyCHyxj~3)1zMxp2fMBo`X&OyZVzKqb=s)Uoa7ITRoY6r>|8d4YoMFcCckbOJn|*Yb z8I!qt&;8E#edqT*&pE&P?`y9EXu&TO6bUq%u?e3Up73>;@qR6AL?(P=&bz~mSo*Zp zIc@cXqoMs;Tvy-{@a7X(<@N|{&*Vkf2%<0kTDU_tVB!~Xv@ZvB!)C%8M0!; z(wai)A*=~K*1DIf++$;gTx!EznIgo}76=&;!`drQ?5!UWaCMkLTD^e+S(YtB1*%kR z#5w^_n=M!hfooNiqO1fpL~fa5aa+5BO#EkloEOqV@sLP|%Q7HZS0Tox_eF9ha z8WFue5gylL!_xf%6}@Ia3yo+oLw*lCF)2nBeQ8Y^40CgDzSK^s1tx&Y$&M;-eb)R? z#tb`o1x|Rgq+HH~XB^3+YvG(cgL*t_M&iq5!Eoka97tHJ+GMh{tJseYCd-7*WVta* zvSdjO>7`B;dvU8wzym6}(ZlpNBG!l&O6Yd__mtsw^eN~S*pxL^`f|+sF+kT55u@Ji zEyN9UZ+4X(W|)4^BNC#(9V%)t$PDo2=g*RC|W%N65s>w4#1Q+HtoEO=7Ebuysxc^r&T+ z5gTL~0$`h>`}gFjszX}fm^NWIVJ&0?Q=|BC5P;jpBXBrp7}waGJt|jRu2uFp1IH8` zP2Ed!=8B4tY$@e3y^?;CsS#082UDg-7LVo67Ma`kNSnC>9W2b&{7R)|0+xy$NTl`c z%w1_2YqlPFFYZ$?EwDF#-%ayydoakp9$$^={Q~2K*_SVtITuUX{RtKIcu=4rTSU?j zthAwr@M#5~5~#^GziP#2=!^GiMe0Hl;c+~y;Do^L0&}+Cw7SehB)E#=5rNV7ilVSJ zY=DpAaRrYF_zM*7&>|7jIutVlx}Jja34tU3UzBSWB2)!W3fxqna7yVb_+tJJl{3v0 zd|AL(;Ht}xRq&L+t^$SD*vZq9b1;?1j4Wq?A|t{xZXuf;d1I42L>0RC%MC~ig~pbb z-;m`j%N^R3hr_yp0!>>q`xMBIo4<{boBmFOsJ=*N7ur>5o}_kpfvcP)SN66tEi$G# zp=6Hd)0w;52yDz=Z+Xw0su4EjH6qG@QV^ZYKhulZbkF!as;69(X>4UY^y5 zaRfs=Otxc>%?+a5xPsNkw~!VzEZ~+^bsn4Oh^P(&{Ajg>+o;$P-kB73ox|?4X|hLB zWL+z=yn#5f#Ro_&B}v-ZIFEf7QR{bAyWT)~Lt|6(0&Y7i{O)SkJi1OxUy7UI{1x-r z%4dYnV|@P5w1|U#kMJuE)t-4A@+-~fF~pAJu69=|^BA4Mzx^K4#*#G8BF1O%R?|Et z{T^E;yjErr(HUIKB6G%(v47=iQhnTCk|JATuXj9Mc4`LEEcy0_=5d@o8Rw>Yeg--WWRm*iv8{& z-3jAQc((`TRp<=ZB&u-~n|L_ihZwpLXP#NO0||^`id@s=x*uUYK1^@c&`z zdxWb$ic@$T&*2HYgeQsMY0Tmz7C3VWU&Svudl_HHoA@UF#QJ#~&*B|CkALAi_zzyh zyEr2RUJ<2is_XG8QO}Cam=kquls?Rh7A%TeaGvOwL?O`Gq#oPB3mf>tK=(N@Vf1BI5# z*_TLbu}9zIsB>ivA$N>qLH?6AxcCl?J1P*Zle|`^#li(!y%| zju!o%P2-Qajj=s|w=jUeU=V-h{rPXa75|;y{0EK^yNp(YgMT?%99?22@?^s7dyWw; RqUOVPjEYJ9nZ5SU{|6_J1El}} literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/_NamingContextExtStub.class b/libjava/classpath/lib/org/omg/CosNaming/_NamingContextExtStub.class new file mode 100644 index 0000000000000000000000000000000000000000..00551d8035b849f46c2297879623ed30260fa315 GIT binary patch literal 4329 zcwVhn`*Ryt75=U*X>E0r#(6X-ErBL-E6H{Q#U!a>TpTAMZfqr3i4(^VWi8#vo2+-$ z)yi?9Nz-?sltRO!51{2$V1^$81>4{$<~a;>hVn=7cQAZ+B`c0BBMpN!-rc)8_dDl& z-?`^r{r%s+{T+ah<7XP$1RiwULeiNnB!`_++L$%%LNZ&q4?DIe=e?uzUdAg=YX}HL zn;BOuLjrr&Th^lrY$-|CG^`2fmQ2S!Gjc>gJSwn>HYLxny$QoA%i!668H0WM-x(JO zX0v9#B(QC2^s+H$BrSum8P6r`A%V`EW6w#~ldeE~v|yK$!zafN4^{nUq&sKkq#DW7 zu3?uhIqs}_NXPLI?4GOf!;u8XaVJ9y&Y-fP=Zo;?+AJVW>Al5v=tedJ->r!YS((A@;H0@w+GkLb{`N#O2L)0XM-?6h=G8`G8)*gERuNU1?$ zIj+784fqL$(T=E&J?PT#0Htq{qcFM=RbJydHsfv*c{q`yPvq z>#5+9N2DbSh9?ijCscg&%93Nv$!y7EB_(3(@#1v>)ux7z&gW#&V=wI z-0_Y%Wjn8dMcCisq+!Fh9q*Lu;0y&alk9lDPv1!&G)y#}OPQ>sePm zR+c3$&QycM&(~*Olj3CAE0!s?D~(z5{TYmCI8Kn}t7J8(iVGFf>biLpCn(lc*HlH2 z+OUA`aNR(x36W;|lAP586OXkd%l)u=L76FQAEtW?fm zD;U_&{aWA+Dotf{R>wI^vRhIzOBy9PE{oRVT-B`sla(oaUc=`EdN!~hDi$p>XQ*#ONN)|Czyq-siJF3;V_J2@pu)(jRPs6`F0oB{Gp=*BU*O@Ea%iNrh8cmK zx4#%+nYp%M9d%uYjjVvEa(G3@K|HL1fyXy+G%jZiw=~0S(s1AF#&sP};tBR0&&gELLPj;*JnPRfmCg{xOL$qsS6KM1Bb*r@ ztz>Y!yL{EBp@qt8sK(dSDdg({gRRGKCl{;9Y{N|*-@rGi4mT6S^7rNSJ8k^D^7(BQ z_-g_eTMYbv4UP%Ep%Q$vx!4W1$<@@}z;{)=-xE0h|B1JOFIME+Wb97#v7zzI@uAT$ z-og*m3F(J*oZhk7{aDA-c!tLj!_FF&^f|~lWj7~}nd(5etKm6qpTfiaL}=%Kkk?(% z(81?U{$glDm>(WH{bwEodGFw73%Y2rm7@U!p#HW8-@~@a_9g7dOa_*4Z{}U>{)Ip5 zqr7e=E=b}QWLPT4=udqEV(h6Q9rhytwj>s@H?fTF$wfT)YsBhNF4E&9BQbmwy)p+0 z^!Rb`AX&v5qqXwUmFQVS-+uv|VcL^~Fnz##DwAq}T}a|%gcSVw^iUPL-yZ|vUt;$H zKJk0>->PAT{BKHYf(uu%gxY{;m4YI%9f$BKJfiT#eH>|gdrpicwhjdra5&x9vxH-b zz6Feq^)BI5DwOD5z(gc;E6sQ3$9TDz3M6_XG|nxfz|_o@vx%MsT)u6Z3Ra$iE2OLq z_hK)%Vs#&c<=@lvxtDUJYtg4E57_tHaE)@&moQ%$jgg7 zT)#xLmzl>a#JPzRyr=OhPVxB+8-ikCkeo2L8l&f6!yy}Om_QMa`9;UXXLKUSE@7dE5w-he7yv3uaUE}=Df4&T;Pj%qABRLdeEP5 z0D6PmC{V7!DrkuJXRG>NU_KpucSEETTc20@rUH=w6@DQS=v6u^8AsE7OZak1Q=(5q zv|GxAQm57RVk#I3F5#60y!tviX!orZHGaJ|{?5uW-kOXA7x8^n29*6rYmh>fr%wbl_Glqy?Apv?k;8#e1J`;Y01Ucs?e&j#>4^umRyZ`_I literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/_NamingContextImplBase.class b/libjava/classpath/lib/org/omg/CosNaming/_NamingContextImplBase.class new file mode 100644 index 0000000000000000000000000000000000000000..696990a037ba888f9660613d06cb2b46c58d5a2b GIT binary patch literal 8183 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 IB|$0w1Kye}d;kCd literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/_NamingContextStub.class b/libjava/classpath/lib/org/omg/CosNaming/_NamingContextStub.class new file mode 100644 index 0000000000000000000000000000000000000000..043b6f7605b5dcb54a30cbb91ff119d8a558d318 GIT binary patch literal 8173 zcwV)bd0br86~})Uh76fJv!IZWn2?1etRcGz#28lDi4chd8XVwBCJZxVm?5Dy#@$A( zMy<6P?W&^H+PD#FjMUVv)~dDEy45bWZnf>FpME~o{!u^uojb#0AdnfF^uq_vdvESN z_nhzh-E;2n;ulXm1z-jKYDbJhs@K<^7ZPP5ft*4gE@W0FG3@eW7$Q<&au`dm(Tz3Jz(d^8Mpo2EoVOx=!#XCw87_*b2RErUS8%yByzTAkm=$nxx% zM{uJbJ1`#$?O33&I0E%j)7@qI3@k#bLX4|T;f%EOgA|N<#$&N)V5NaoSj~6d z>@#--%x=m&H|==7+tSAqLQTNm6`=I!xiim!wOD7zSqf*4{St;==X&HS#O?OEL}caT z3U-9^$S+o8y#X8TI9p-%STA{a`EwLDMz`#EY7u(*1`1H9U~hJLdb}OXr6M|~xptH&WR5dBzpKmbYITZWE#(?0MVZ3XcGDl`jP)Ze>P0IIRLXvf6CZ7oXtjYF zY-UOG@9=qduTfY(Zl2-Jju%ppTdje`SRz+j44jX8sX;zg6lb?tYj(MN6_!TjKfT_L z3l!4F8Cq+0I(^+coNfyaGjKM0C>n)@k@ci7+39Ka>Nl>CG`13?EYWXjH1V<(cms5` zI4Y6Qv$;nhd%VG8z5P6CB4drg8znNXP=yQ+|WJldp`?~onkQYec~{82a- zX>=H9gDLM|IPL`z=d#=AR6XYI;c3NDq?;bmbv!(hE$c@&=+q{~RN>s{lp4{y9X)Kx z!>_K4k9{6$*XQ&490*{#K?yZpWJxY&V9 zr5RtQux5gjgXPqLxwyi>mAHz#i%rDo)~A6m6%N(RZL-ugg72#eTTczQ(J_(ZwOoFr z>#F?Py3+hg2lnH7IedL>RDdIj(~Sl$mgAYt?UHs_n^rbP3XrOGH0}gy0->~CWg+)rI2i6{ z%pgOZuN!wM6hw!9tUVKQnKv2V#&_-bPQ-O}&IZ1R@3Wuu$O)N;gA;jn;2!kZaW8v7 zWTIA9_noNvL=w~}uT1U-c+idqq6)!E@P}j(g>#YEj|?2ZP11}yc^0F{RGIEfLB%bO zN^jiwY);gJj}0*Ly4I{IBP!#fw1_*5b+2E7e!@UM4l_=lDHS#zN95^K1_p;u2CL=K z(*}-U36CJbfkTVMV=r$n-b$& zL>}eT5#LdU0(}$jNTBa3G@aT&N36zZ-;-#6r?4){`C;FShGKmWe~?)JsIcwS#u~Pk zR?eRcyo^^I_&{R*kO$-_{e*uf8w&aZd@MnKqR@D1gAQMerNB|=4ftBk5|{j&VdnAw zOjsrz5(}7JEPvzpI~#Vy(@q8u0|%z@+Q4c2JC#pX(JI=wjKi4rupTmle;u^Id9a}t z3A{3bgK#>|0Q7xg$UzB5%2tQN_Mw#<{e~rknHXxyMttRC)ph&m%AdebMxIygdNZKBiJp|^n~3q zi(OSlLYJ_s&K7c#^rkA(+a=5hB}+p&RL$o_RoQ~imXReKtBxSha2UG>x61C?Gdz@h z^;O&;*Nj05*Duz#K(kBX)&-xHYa3)(t8=}ZcYTcXKGuT!xse~>)_aiSpF}F{Qar>A z4j~(lusS?So{!OEKMFBGUr(Zjww9-bExc~P(G#*9A}DnyQ4@^iS~e=XQ*)ZFS;lgm zX_}>MdmiLNEamPinxc(k;`pRqRc0hyA{476_f3_3SXaf1qDuZLug)I8zJ6SOJK~A> z>cJz}-;jM6*O6R5ZV>I+1YupWZBSd$UZ$nJ>5RTu+qIhCM*fV{-ZQ*=o|(MBkuNgS zmsq-9rdD5JCa;p$Yn=Hy&cYj<`4%?eZTfqMY~Dr{?Pl8Z@vio?I+#s}R}5JSC02Kq zNud#0!fd)&Y$|fCQ-l3RO!p(Y9#wEwi>BlV@vgtPE+NhoZ-2OPe zl`R){KaTtRkRyZ0E7vA)nXigS2_fQ{ZQeUDvy+QRwA0`Jc1XCab+hL0LYmw`d2&`6y!a)nj;EN47&lv_by!ED+o3Cb|kk_T^ z^e`1wSSl*BR5UfDqC}=Ddo7k#az;o`N>2Kr9Tv||(yUrFqRu}#;U0O^s`EcN={m1w zlh9mDVN5er3TCSLq_Pl;R4UTd5-e9sk*m^?r!rB*8e5`r_&S%PnzoL%p0-h~h*;+* z+9QuyJ@N$Pemda}IZW=ElP7l;$>ow<9?5MWxwA>`9Fof?xk8dFBDoThD@XKJUB;(fy<^DI;{oDHfx7Pjdbt_G_1xp|)zb`Vi z@Mg$l_P5?RE{joj*g6xAWKrIS&fjqs=g*hSkz+e>?ix=91y7(`(K-)8~eYXP4c z0-nrBgP2pfse+gx{~^Kfk#0XBXArjZkLz`}0oG<&3^RpcmW41=5N25fGlvLf2|$a( zJQ0Pun+)zDgL|2OAM?MD;<}&WdO+tfKe&>W$J$Vdmn(@>I$(_zsllzbpNG%kST794 yn#5@SY(?|Ype{B?hrg*MNY3hM#&V3YJVVhx8@7IuwSJPdeo|ci~&UVH65-+z4l2H*kiMkoj@Th~u))=%1FBQxDg_N0@U^2$Xh z2`rq*_c9qs(@%E0C#vToR0JBonp(RrpKK-Xtn;!vP|0>XeQLb+;|MbXOL?!h$-Z)0 z4)ljmL&#z7c9a`xYYw;D0^+&Ag_bo#FOBcW!AO;3`T66jOE&~&r0b6|WxT**`upH5 zGkz#g%Iq8B-uNSVw#W;nSyp+ZjrNZPifii~cC{F;qKL~e>R1%0rP`>SQPx%NV8XPX z+8&8Y(xpEQmi${i6j(|Bc{tA6T>A^t|MFY!%z`__m`5#GH)AZ|qQIOq$L9yA$m7Yf z)qOj1J@rfnO7mw>_ruBgw_Fkhlo3&1!z`+d%<DiYG-_COmS0l_|gxD~r^%0MOhx#r5XBQ>>mt)d>O|QobUy c*JN{)LpCODQ^;U7_(X2qBGbV0c8+rACw1qRh5!Hn literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/AnySeqHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/AnySeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..2abdf2bb613fe8774ee32c1518f527d5699b6f1c GIT binary patch literal 1820 zcwUuM+foxj5IvI%OX4aJ5D-yBK$9Q|h&Ko#H<3#unozt*6}1UdVKCVZn+ck~QXY`< z!4L4GEPIwMBDpB0Dl@Y^eY#Jd>6xFuzW)F)g|r3_!;od?<5n>rU#Xf#QREiQYMlNV zeze95C2ni*F?1dp$40zhnE7}rd&qN=p>0l>Le4XI!;u{Z-?FvOgYY7t!;dzGj-)X8 zR;8Hb_O_8NaE4IQ${B?n!xrk>HTvX%C^HNv|3M?cpz+VrHdO9N_`-cTm0ns@o{7kZ zCdMGT(5)fFFwn4h5nIO%bWkCNS!L*M5{1Dd_8EG@kz`GXjI@QBPqgC}(O+Ll&Jrf3 zuniT=PQ@lkFkzOtP3)u1*f%2|*-`ZG=or9l2ERP8%A{CNGglJQ<_2+`tq)$ZY^kJ< zubZWcB+}d{w$^Gy$2|;FGNHT~Mz0c0ono~_)CNeP%l_MBSDldvAcAoXQHH*}S#ft$ zb~eq+q+?FQXIl3X`Hd#x#j7Kkhll*;`M@ z@uFIv;<<)r3|$Q=biBX}^?aVoy^<}8LW*O)Cvyyw_2RnGT2`&nBy`N-CAEK!#FBik z%#SME%$-M^4zIVu{v{~GD;>S)YsVs$dfsFz)v}Hiyr#S7rZNh`C_8y}!i}BV#PYvX z=+anrmVr^L^tX2Mf3k(7{+MgooT-Ye^;7G+kkqk`4XW94{29is6p$Dk8-)rn2xhE` zo#U%Qy**ujJ_0eNhHsd(^+NqLTG2yBqefqGni46f0rpF7Ze zo#udgQyRc$==@R#UbqDA!A%EDhwFkzoE^X$>aT}xI8cuRpeMow%#%gg+M?rU7_4y( zI@UBL$vC*)b1yfgTHVDE#R#Yupb7K)_33vnF(1X4L*xM-y5L>-oD_p62yaHc(G$c@ z@#GYigQ7t&EcltTlB=A>X(2L8(IS}s4aEmx zxRqKRDcS^+uW=dg7ZE#XV|iK%wq5Pk%1Y}X0m10k^#yg^<&Bq`CBjHv%BxQk1c^SG eOl+iI!Vh`ot?oC1IvQw#qJt2=2zsv9(0>8a??aXV literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactory.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..3bbc3ce7ebfe7e34bc1e69be1c2fdfc82e6dce57 GIT binary patch literal 272 zcwU8$O$x#=5QSfAHU2B&0bIK#-;Gx7s5bVlX%)DXd z%7_oq%ecSkOprr zKKm2=2R>BSGKtMv)@Of|%YBAP2$w9v17|qtN2XS#{C&3BFa{99q=a`FuC^(a zQmgi(U5!_4-885p&HOgQNcZj_ooa@*#kJ?WkZZJ301O|<2;ze1$9jdNz7meK!PjVC z^myEl5Al%%>ip57Q9E*OC1Xw`>Cp>5 z%rl&CQ*r@MBrGyq>VV7m1Zi@tSzNVwPB(0BZK@j2*&4&cE^2qv|CAJ|Zn{zB7G3k1 z_De?W;=M0eWIcdYWF&mr!JSUY$YPC>Z3M|3jg-r$U1*vwUe%~~$|%S=21PlkpY4W(d08j#C)x=o>c&AHJa}w>X!cCDXJxa$11dyVG|l zCn_sln}v3g71OfCP191mk5f43r<7|lc0jM9{<3bEglBYBJ&OhLuIrG9 ztYw-R>8>>(YanaZERE0WLiVvP@4ji_vhNyI%M0-lb)#1;eM|H!Mk}MWKe`X!@ATlI z18~fsd327x<;DS8&(rD`1J4EPv@2|r(SLC9<rteh>nW1-D7UQ%w!%pHoyzhj)e;l^S`2aI7+c@(U&PU)` z#9i<$R|feHJUBoy^k@%{+kKQBA07v}MD!ZShqNR12BMVDN>i(Vvsb zEv&&qXd9IG0r)=j*KOEePlOF(8_yjtB@(3JB}ra9J-z&PLWUp=m=4t-Dvk_3F*00# z&qy?JN)i4<>x90gmWdv9jGmqfRsV!N)r=5y%6CBjk^Z9pIj>GcQm{)!09kxgi0>VN Je{gU={tt)@l~Diy literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..86b8be5dabd47619e4aca1efb20d2437ac47b395 GIT binary patch literal 417 zcwU8&%}N6?6opS}?P%5F1L$5|7+tuko7!3s3M1-1T+{0?wUZ2K6!U5>d;lLxyaN_g zC=G=Bm)!4gKEK{S0Gy+jp`~!*L!o_D=uvW1m3H7#lS&wqjXtEj=0LIZZjqs_us@?$ z(sOc!&L3xNqr#yLOp(nrIYTa)r{F6SQ_aTuDJxtYO_q>hes?v{4>B9dsDC_JN$)Fk zuiq@!Kj>|R%XLz3$v#uT`o>xLQ!XOAxMV5x{>oH1`>(6Pu90-_UxMXvIhTb8D||X_ iEb1sIY@j(Uv27C_sWYkC61Sw&#m?`J+}-9a_Pzm7%zAPF literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.class new file mode 100644 index 0000000000000000000000000000000000000000..503b319155e03fc8d06c3b3e473fb9b0e229e855 GIT binary patch literal 649 zcwVJZ%T60H6g@X2nRc3%M|r2MSn`lMs#sN^NNEx%)u^QnWN!v*FeG;5aoSG*hYw(d z#DWj#M7p$=7WTQR0(T;6Nbh* zanfhScHGfUxjeuV!u+}TE+S>3uCz+@)i2K>%w$E|lQv_$N=}*y0g*qfmVE=CC>TdEcYS)qY=Wc8QDbcDW7QN zA&0kqivN;jP(lR(SF3o6kntJ+atSqFA44-T>5@Tia8naggvlubT z#Ym#AD`ibx)aznMw`E1O470wWs85w5k0f=~(5qV2;<}ZoS9shg@D*OFa8rVt!M~^M zE0L0-7bEHX9#<`fz6DL!th)@Z>0p+@Eq3_ef>%Z_`WOaNn$Fj2Vh9%`1Q;$A^_sJqHuIaj zYMGj9@q&zDj4*h&G`(2jmZ39TIE6-+sDw-8=;ZvCW!6+{jf`b@1X`R_g zb*3Kem_1V4F!Kyj*)}BM#?AzyGST!ZH>qAS)29qc+Gtm*M}t`jA%<&BA(zS(tG@I) z9VU|0Cwdg@)Wqg1SX`vBo zj#9vta-+U)oesNVn3h=4wR`k`f*;Ty1WOmy~KXu2ik#P9UpYhVj(dog&&> zOZ1b@{m{Gx)ZQnyK<-O&kr^JHOUv zMSk29bc(wmeiDu73xlo_Jw@ow=-wMTg69_+^uR~gK6`Q={dAQZ26TUm?q2aGa5iti zP4>X>ukf$B{=~&p=mjnZuFf3d+Vf+q0o!qmY^eiDV}W^**4*&p21abme%!<@LiOSu zOgrc+SeF{ z5Bd*!m-a$^>hm) z2L>yz^e|l8;jehK$c;iYo!b$b&CvHmH*|ZRp*tMeVCYGjc@aQ2 z{3?3U$8a^J8)CIu$_ZIr=0=S9y72KlYcw8zzz-5H%rNaSK31!j z#NAi%0Mm3Yyj&JWp5Z||f)tvUG9P{G~JXJv5 zJyI~Lr{q>HBPt|QvqfITmxwd?*GP0x*izDfS4<`mlVOu87G#oLdftacs@G`=m+-ZM zWrqG1oQiLdB1X*;+!k5gu!Xh7HIcP7hWR#SZddpYxsd?fs0fQ@c-A{ea#GG2qR2)7 z&yi8^qD3^hRjgs1;Yy7?d%7q_J54KXjc#rnv=&Z=ayA1e_|0?lP{WIT+u}0JOuJmp z+Xyn1A65K>pBaKK&6()yExqBY_Td-WR?7>iIdVGgL4n4-BYu(6GA(zDs?b4W6Qohj($p4p zt+s_HE;YGSG7Xaqy}FdnaQ8B)(eXV?w<$=nV=2;AyAC+F|EPIQ=P<*)OR-USXD2cQ z*37Dv?=Z5bEL$tr!5Q~%-G>z5}8ZJuCobLtSohq!T!u_H``B8T|s5YZz%eB&JM zA8Bul|iE$4G>p z9pWo5$F9TCLTaKB5i$Blt;Q=qkv=GqiFjMZn$;|-(tgw)Q6Y&jyU|-#P=@O zLpKE<)#!&dS^UHWyJCyZ8e{T@ak#hl$DQ)QuoPU;e>Q4fi_!n0qRflgFnC@ z<#9IIq>&9A`(?Y&W@g^ZJK5iVe*OZ0Irx@@E(xZnRaa@Vt`^&-)-?15v(5hEQfU!O za|~+QNsuMT>}dy@+R)6pTG`$sx+6hCvu&epN-(J`pO_{$y&*wr@kl2vo~&1bnG+vh z)%1O>PSo{wi>w%SQ*-oP31pqN+7e7C)29@YU{H50iza?3#uu}IHoz^h_n2?{j zTEMfQg6j)ThyVS(SIgz)z0P8*eZ5{)gQ`_x8QA_G8g?qkcIbD~YxH3tHD#DKvA8#9 z`6jeMRyNsC^l|Pdkd*?1X$}KBWTnV(KgZk>St&&`_%9$UWd;W#FgRF>=HT|oN}kaS zrxA-rkB=yKD4K-#Nmi;+)xrB`7161vwvJun$7_XdMXPbkGSMw}F+f~U(0R|hQ6=8G zXlm|XU{YwIY?32(-B{$%Fl)HC3EB6XjNeegp}x5?dzDUjt!?_en|ybfgwt;+%rp>Q z8+d`Z?DFtNDNK~AQrFT+$zaovJ$_5hviD0!fFBI7-#lKL-H^b25_dALJxEf}2kbiS z$MxTnG@SKL1|Y*v63_)bFo^6t3<)d?!vebiBLW+RF@cT4MS)Ggq`)r0Wr1CRs{)&X zYXZ9tHw1PQ6oE~{ErH#R(Q+q7%S=p-Sx^ObH>NLhFDfh|B@U{R*uoK6r<&BOpRq&5!kz!zEong ztm5plS%1%GehsSLx{hU zOObl$2k=o8S^M-m~V-jO~YCKYjvuj|~qw!aI}1z8S`TW30tcMTdIqN`?~= zU5Z%xEqyHps^1fXk@S!!tUZnd?bD+}znjXW`8ASPRvGP~NO=7>;mRadoDEp15jM3| zcI;u6uzVq|g|Cd?k%?l58^<9mq*>dONy>WNR)avtgy(_LsTJC0ISP&V&G)<8;4`7P zue7oUgqh8)9w8r?zARw|OJ&TXLa2mF%a5bsnM^)S9F{^8v4LP4?x%-&d#+M~AO6>S z>=9Nr!|Wmhp<};e6Q$$5t)5G;>JrpA*q8IMbNz=#D0R#ziR1_6A}s!?yyMvXOFWJo z3h=n9V-6+8XZ(LTlzEZ6Bkv1*vdc(}h3$JRe#Q#n2%3Dy2i{rZ$Lb*H^J^)B&mZuZ3RazI6;(qktf`kx5f6=J9yBRCL%&WGgYc?;) z=tUoce?>QnC2pGr!-ZpL^oUF7Cr3xuS8S`M*$Z5#41nQX8J97@(54p{dWlpcZe&XM zaUTX5fv6sIqslERjG3`xhLpqj`O+H?XC*`!t~N3@Q?A&%GymzIGfRbf z#G^90&>cV+6Qb~943me$vbt%R&qbxhPf{Ar2B<%7OZcEE0mM$mhqyxwtOTtDR@A!8azhW2fN%+S{|9TH|3Zk~&zga-@*M@dX4Qn}31%yMEi zomuoDP3{gK8R9z?E_ytGSm77*b9zdeNF1-=XGEP6HEW zd6jOVLFJT)(RGw#m`JCTDYBRlmQATRl7p#R6O&Z6lyHK6bYcgjjY`d~*Tq|uq6W$} z;g9@3x{N2{zU>r*a#bgn0i-Zbk=KP4!?m+;6d$LinjnnlmTprGteq${Q?nZ==M*Yx z&Ok+i$uN2bd>PL~`N|F{S1jGTrei`KdM1txffci6X?#`}ZQbAeRhVf!^ zXhvUjdP?*bqmj|r9@&TQXPUGjK+g_maSEOElV0Pj`I=DLh$8*aa4C*D9sy72aU+WLj68FI z+nktvOK$52vaY5eY08t1)H;Q#xDY*_gYPJ!-_!gD2W6;!2Aj|!^4m!iwg|C{&P-F> r1gWPexjydGyYTB1Dc(c*cou#ntDg>K!3PUfM~2Tq6J=&QXKMcfn%KSv literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.class new file mode 100644 index 0000000000000000000000000000000000000000..a0a376fe0c7b290bbc7d2a12bcaae87b496ef68a GIT binary patch literal 611 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 SVZrvOhQ(y{il*wx@BRx}y=21x literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynArray.class b/libjava/classpath/lib/org/omg/DynamicAny/DynArray.class new file mode 100644 index 0000000000000000000000000000000000000000..5020891f99ec1ed9f1fe65e274544d5f89e491d7 GIT binary patch literal 290 zcwRg8Z`VEs1_nb0L3RcvMh5BpqICWI+;n}H%Dlwf%w)&BN)Xers3@_Loq>gsK_Dx! zEKxrvF)v-;KPf9UxrCj8jgdhWk2e2;)S|?a%>2A!b_Nbc21y)B^MK}aF)}E?q@DeP zoE-HF@{39mlX6n^JzacU^GY&HfU0;H8AMQ3!Cb-zlmWXhGhaVAwJ0+&C$kEqn~{Ml uIKQ+gIn^x_#NmZGO%J3P=zK;7W(HOuWM|-H;AY@u00Bk@ejv%jAOHZ}+)um! literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynArrayHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynArrayHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..c207376dab4bc4a6e8683112241f93dd3301f7da GIT binary patch literal 2493 zcwUWFU0WJg5Ppwe3v@#g{K{vGHBqpMB&KOoNo@hO+M-yrruK^-mLsl#UAin9?t0yS z(0|a&q!;Q_pQq_{e^j5&Syqt+Q7)Ec&b;ruGiPS__rJgX2Jjd)1w9O7rd5oYzw;wz+yQ?mrOMNT(tVQq6wYsf12x=l9usaVGb!<7bq?qq4)Ja2AkgYUf4 zGoAA3z8z#bKdAT-KQRPdqEq2F+IqxQ?!(Wty_V{jKAwI=NzfJ2bfmn} zDyC)2Wf)sFDm9xfP4M!Cn~aEtTWMAj+4ZGFI)H8LC@9kKpTl6(7b!K@FBtu}`tXY~^)Md(pt^YXFGTFW{8r@#VkDuP?zm1*>{ff~yqwoHyL-^j%OAi9{ z9B_9!-2l9IB?oJE|`;5o=r~ugKMu}93!-KjG?Wm1B@Kt))B&omGF4v5kf{$wSeTOW5J(GpcW%A2~>*B|q6QDPg^Fn_+Bc4+^8h~e%wmc0UL))Uf wk01{5@~sE^` literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynArrayOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynArrayOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..5a8f1bae91781f0b6f79a40a16d9151fa472c7ae GIT binary patch literal 550 zcwUW>yH3L}6o!A7(m*LtZp{V*LP`f}F*Ajmgair#)P*5BxK>C>oG3{v{Avt501t(5 z3PUOgVzBIU`OopM@BQQT4Zsn478(o(Nfz)V4)~c?6oM%qhdMn#yY+(MI~ zJEke|h*ZG6$FUTJg%-np%>Y%AGuVMFd>P4Dsv`F(_eWa!q%^~>(|@?CopH?2sY)4o z)&5iO_Qd61eRf{AV$b<&Lx0H7K7SE1{kFQ!a9G=ZL*khN$?tV4ufsg1LOfa6_>bgL zO(_aTLy9KS*vjW@+0JjSW`Da&CYg{IVPsVHPd0-Rivhu~V9ugp+cdB&ETM$9jP~qa bLB~{AO|^vv*3dP%O>E8QOtfvH26jFHAqkui literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynEnum.class b/libjava/classpath/lib/org/omg/DynamicAny/DynEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..89403af1002912d75fb8351030142a9cd3a8d1c5 GIT binary patch literal 287 zcwTjmONs(96h-gz7rXp}6CL%yaR--R`vE~H&=tfY6p^Z=NJl}J=D-EGC^2btAn1GW zKHPKRUT^0MfH8UuCBo3yl$$)|v!fQdN+$Xk&bi*_3>89mCk}#VLZ>|5?quQ^YJ|~e zS6oOdoHF{4p-vdQC;eiG2;Wb68n1sRyfD^@Z6^70wwi0FoTr+E{wwti()P-KJZ1Ps pS|u`d3T{HQF?*ZHg$hsek?be1K0Kj}s&9rbG|)mQLdVY%x_6#zPI~|V literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynEnumHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynEnumHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..df78cb0597519cf4a0228aac13ac98cbfd9a42e6 GIT binary patch literal 2480 zcwUWFTU#4d6kUhgBypOy;npH*dV>U8Qm|?zwKd@)XdrDsD&FGBfCYC_nc(87`TGOCIJ-&e?12z1P`$&%giu^*4YC)HQT4L~W;(uq&m+ z%&x^NrjfFCtE$r?a_q$_pwPKZhl$;X1?6*#;VV83vnq)2W&K^HeUisG*+@PgGcT9n&hM>t?wq z9GUi@jvKhi5GVSgT@vP%Q3)uh71%l94ObL(e1Q~0aG8QG3s;8J>klTEPD;1aI%Z^&9cD3rIl84| z4d?Ndh6U2M1*qd|WQfvm1b0Q=v|Qn=b3^1^gW+i#o!cpYMsjpxrd1OTHS(mtnW!g{ z=QUD%HH7ELX?W2RHJRyH#tOrg27Uf$T--dXWodSFa%;C$IvIwV51in`=LJM^iXGSC z($7S@Y|fnvGMOKA{D_|z!XD3Y*f(10!;3qBpJ{3>%w(qMXk41KQcq2cKco!k`lvC| z{=llX0@J7E`(9`BWx^b!=!TQP;O8pkIMrc- znkP&hou}R{n?_?Ek6fyMNi+ka4Be)To#F0fawGF?$8^cb%$Ztb>+T8Q{34_hwv{!* zy-U%Ne>EE!Ld$mDF~ppyK1)rXnQ@tF*DY$=EsW%L0y`tbWZ9FiiU3oS-_7ASTetC$<+9CSZ#`Z9ql}7Tv0!^FX=3TPkmZk4GK5jZFDle993=xoP1(Eu0|=H;k^lez literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynEnumOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynEnumOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..485707f004ba36c0472c6d0a02b6d2b5d6b8df94 GIT binary patch literal 415 zcwTi-!Ab)$5PhkutF_gt)gREq?m-vNJqfn3AXF&yT4D?#HJg;pZn3}S!4L4G#K}^q zrFt0NF!SEb<9&U9d;+*fKSqn;#+52_g~}dRmKRz)*i~qUwl2mCS@KFd>tjR=y*Xd< z%y6r+@ylF_D#iiB_1}7ejhvyYWHsY{=BrX$#n4aEr_H%ZGaWE=*0kEVz}idFoV0#h zdztJ?(gsK_Dx! zEKxrvF)v-;KPf9UxrCj8jgdhWk2e2;)S|?a%>2A!b_Nbc21)EnffPFf7bAlLOxoE$ z$jMQ^Ait<2F)1fi-_ym%HLoPI1gMIKkwFAi70e}kKpC+6GV}F=Q;RYab26(yx)~X` ug7Zs@l2hF>K^$I~)AT@!fzD@SU}j(iLUsmD25tsk1`uFm;0KaS3<3bb=1-3R literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynFixedHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynFixedHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..d13af0faf22d4198628951cbaf16ab2bffa7ce48 GIT binary patch literal 2493 zcwUWFU0WJg5PpxS3v@#g{K{vmH4(6hB&KOoNlgK@+M*T<&18KrFx|xtQB4;3x;sU)OdN7Te|%18oTWcy~Z$_IX966#Wc8OncEDH zqsRW~Y%Y~_vr5FyqDd&Y%5d`x4+VV;L#@oIsZj@4Wy<8NQ zR6eBQ8m=?=OTtczil=Sg9sy{;8TWMo+71r&7R%S zMAgW_f#GT!QpLB(5T|AdZi~Eb*uq-pn#kK4!*qv2cPjlU>gdXJqb4kx=11OvqOnMv zIZUzDAf6+q;6+>7mA2QyOlFFXCZtOT?x}|p4@d-EAx%fx zn_AVhY`F~M3r4kW)1?VsId_v0(LgKBVluZppUecYjtvDR8vf1<^q3=QrnTGHt15KR z2!&{{^EAO_U2AOSu?tNxl}$s0p+}d=Gu*j|IC9^%ben?Ao?47--EIQT=|pN|({X3G zdm%nbz}b-u!DX{YM<+aNZ03<3#ct1sCvyWXsdgA+$Bp weE_kKt+yWRpC`hGP)5aJF<`nZDPrk5m*uY$WeA~)-<(uKu$(e5)Es~NfAS+%J^%m! literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynFixedOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynFixedOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..028007c3bde53ef539e613ef063d96b7bfc362e2 GIT binary patch literal 393 zcwRg8Z`VEs1_nb0A$A5PMh4aVqICWI+;n}H%Dlwf%w)&BN)Xd6vm!OczaX_Ju_QA; zub7>Ig^@uZE3qt5KPNFSUEe<`D>b=&!K^eONKnkIqk%2QkwIseQF{d<@kwHX5 z(+6Qxa7j^SUb;0oJco`XVaatabn4F!Mo~j>GS&-_R zS)7|#lAOWLz)y@8&pe4JPT>m9FD*(=b<4~Fa>Ox%Mi1mrU^p-`Fat3wFld>8 iVa3kC!2k*~P6jTZC^t})je&`Qhk*~s69B1U5Ci~*r*I(v literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynSequence.class b/libjava/classpath/lib/org/omg/DynamicAny/DynSequence.class new file mode 100644 index 0000000000000000000000000000000000000000..96b8ef7c37ff0d903a798f4071b8ec6b567e1bd6 GIT binary patch literal 299 zcwRg8Z`VEs1_nb0L3RcvMh3b3qICWI+;n}H%Dlwf%w)&BN)R(RwXifbFFBQ+frXJl zAS4DS(J;BJp%)knS>audCz-h-gp1`_s_ooJVaALAHyBfswB-? zB{{ce@S3irjXn8V5HFj;(8PkM)`g{DfZ_5s-{HwBH!8`M(zeiShQL$Z(Ct}<{&-@Y zVIXUkMHu}EsTf3n;ZjaF#B#G%64n|oRRu#dXKK8<&MjU3_a+DIExo}oo;#106ooao zWtqDS)A18Xb|s%ld%{wQ9!x0(R~T;o|0V@P3}fy5ne<$7HJwi{DHx%}Q%4H6r5lw@ zQ?HhVB`p|JaTV7Xf)!zBtGq$^4aF0=Q-m{_3gaETtKbHC zGfX?iV=bmh@I4jxF-6D3>vdt28SZyu>6r4&bK*Zx>4H-BLECf}!-!%+!AA@?d_HA) z!+!Qk6LniR4Z4YDX`5lR`@JBSnufL|v=^dWbT3gD441Q5JJ)msp zIH_3X{Q~QzWy?O9Tr}!Un+{O$T5rV)h-;*sX(^pAETnT`Y+_46g|u}ip<$j9G_5_i z<*Lv@MHQiHFH%icbHL z;2V1BLztccXL1%7=&8CJXuRmasT+Ayej2kUaXnOBTPhWD)e3Lb4Hi_}k73&>t=Op})3>=VXTqn5MMl zYUBvo2IYMSaexFdezdy5Sb)bY}h8iD25z|e5^+y4P> Ca%TZ$H1@KLDJeZlEAw#Y5kTBj347m5c(fq0(&Irq>ZEk6Hs7$|Q)D zHc%9(_T*SPp;W%pdhU^z7$^xG&+ozEw_Kp?Q{slC{NzPo$+DXa=_#maHSG>#*KZyT zCX(v{Ckvb3ORq0|a++!^!=T%d;fMsxOol>=NF~~p+U=&wl`0iDwCtzbh272tD$}I` zwQ2rk>*1o|{P0Y@NaD!)OTq3K*!$0m9@7Ec1v-+6$AhWpnQNKWyj$g?YsaIZM>j#p zbEwaC@ia4#En^3GE%Qexv8@JHklDM6GNWsZ7CBZJ*}!IgQpHvtx3M!}lu*EK&Z)ti L#W>sNtbl`W`C+LH literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynStruct.class b/libjava/classpath/lib/org/omg/DynamicAny/DynStruct.class new file mode 100644 index 0000000000000000000000000000000000000000..a0875fd2d00950f179ae49c8797db47976eecb52 GIT binary patch literal 293 zcwRg8Z`VEs1_nb0L3RcvMh2PuqICWI+;n}H%Dlwf%w)&BN)R)+q^LBxgq?wfkwG9U zu`E$PCowNw-#;lU6(q{W$e@N#pMODWQDRAEeqJ#<0|z66BzCnxik*RrkwF0_?d%`q zEh#>SCUx*RK>%{AcCq2<`h1l4A_C0`TD`BMVW~?nN=X&j0{}C t`K3k4scxAd4j}okR zy<_pJX=JP&^|~ybh9PG~r6wE=Jq#B%`4&%AxK&Oq7B__<8Ty`@mMJG0x)aG&hMpe&(`~t61eg=-gy?}(j zj++{89J?5APsc6XCW0+qX^6#jhS5YWczNlLlmm#Xt4lBpCffItt09b$n-Q}!y~$}K$fO>T|Rqh zh?+EQiz?7AZZZsYt_aFe!!kC6@j{deUin18@Tra{&a3*{sZpA*B$5I63azV}PKWUs zKG#5%K3ujMhvZH%FX|-IkfNmH3uG9=%OtuYq>|Jh6qC=URoE#V)5>I*Sqfo>FfCb} z#a9~U7%sL!b$pE+ks6NRQWQ)}3TK@gq96^1$qt$Bl=~Cx(VdxAT{zUzkAh7_osmAh zp^~c+EFrJqn>O8aP{%S>7|wYC3WuZP@=480bEKPFJMHOHLfl!w34ZN#NmTserF6K8 z^stkoGiHP`^rMcS@H0cyXF8I8sjW_Y?IHX^Q*3TJH$hwD>PRQ@iTmUC$Ol~`wa9c( zT+Mc*nu@78tJaW&5WISpS`EZBc${ZGlV6_A3m?3kvv*Qg|9VV!e zqSW67>f?%Ocr$wRoqCxPXCThdYby1vBmES2bbQ+}B?Xx|F&m2w*#w+bj#SRJd!FI; zI}wrscUCe)mhFaPh#6CP9tiyTj4Qi6*QtfOp*~@HqyIVj*63G?o{XNoV|xhwMK4{5 z(08A^IEnY@TlWso^PCH(>EnYrt*X8F*nhb2>iGd;YX=xu8{5UuF0SljWDldU-eFE`Doq5%QVBYVi8_o9+(K9V-N(zqg3zlnxK@glwzb=mCs1 x^1TnShZnB{*gsmrMo~f4WwBuUELmddI+NwkmNZ0B!>_K?C>%Ep40ZRs{2$}{UC;mk literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynStructOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynStructOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..8a03e810bf0bf9c8a6a6c14b571ffa79ebb804dc GIT binary patch literal 728 zcwUW?&rZTX5XQenr3(H*K}4@cgo8GoJt1mhL@`3RcxaYoQy1DTX$!Hh=D`Q>p^Q@k z0RtEgo86h+Z+^3r@B8QT3&0gl3?vweo^P9;Yn!)`=B^SI9mU5+=nq6#?@OPD%F}^? zb%sor54q`ZZJYIWSBlU;lHqi51=^-^hO8L)zSN=RO1CY2tEY5_p-?KGr ztB-VZ&5*kL5VAjprx`AmVqUoDaa)?rs4t&X;POzs8`xPz@}P&@QJofd26Dbf5>Yls zJx)JPgHhV1{_?h*JPa%zSe-~)Tt_s~Qu(d6fc#9=CUoUfh4f4XhO>WUqyEOKe6WOj zURniPZV@<`1s9j=rrcPTYIp-*$b03`R0<1Bav6__9KotB-a?&q-ZOSkU$FC hl-tGLTrPus#4bBPcC_bkIQJ%xqrW+d3KS)9{0pq*&5!^9 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynUnion.class b/libjava/classpath/lib/org/omg/DynamicAny/DynUnion.class new file mode 100644 index 0000000000000000000000000000000000000000..f97d7beeb5797d00f1fa90cea5d1c24f9170dd87 GIT binary patch literal 290 zcwRg8Z`VEs1_nb0L3RcvMh5BpqICWI+;n}H%Dlwf%w)&BN)R(NFEc-noq>gsK_Dx! zEKxrvF)v-;KPf9UxrCj8jgdhWk2e2;)S|=^AfuR_frF7j61!3$#m>OR$e;j|cJ>c) za?~%#FDgk)%1PDtbn$V`E6FSYs^Vc}5J6Q1a|s_%2JF7feEs0mqRhmc%qoy>Mh33n t{L-T2RJTkJhZp8FJ&~qn}L@B1Q;3kfg}@y008k)Puc(g literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynUnionHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynUnionHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..f624ea49059a1aecd983713fe8c712ae458a92b0 GIT binary patch literal 2493 zcwUWFU0WJg5PpxS3v@#g{K{vmHBqpMB&KOoNo@hO+M-xAruK^-mLsl#UAin9?|R*T z(0|a&v={1ApQq_{e^j5&*dSuH1K z_Y7XuwUn_ZUtbuyX)K6JO;`%L8Ln;f9iFIgqnyYUw}oai^gh=O-JW3x#Nz7=-5Ika z!U!Owq6fVUSF^eymK)Wgu-167A{e4sQ{$C&Zt3#3XY97O^g6?6_Cg^^ifM4mGItrC z#!mb*xqLe1sY=Grqe&{b&T#u24+VV;L#@o|)NElTl}{}x7@)&uAy#cmH_GXTUMUGn zWYc*k%7#?<_Xft`0bAmrosUs=%pl!N`VMH;m;6sKxz9MCK-JW}` ziJDE}sr$_0Hp5`&cAye93~ftjuSBWf_D&cKpQwo7s_ebJ8ddpLEbfD^kzMw4GK5d@ znF8wap|a69Cbx=tQ74(2ElMgrM~We|N}?;mmXiAXV)E&v44Y9gE0gTfOF_(2vdtnc z;7bLI4A5M>cXOFe&Qb}8jIw) z!xUc+V+DByU$@C7KNYK3W4Pk-7mk<4&9ml~Hb{UQd+o)OI-D)R34ZrnMb!A>wQX@3 zXsS~_=Whp@&i5*Qz>f?OkLX1BjkX@~ln3z>ZLh`I>@*!sN|z4Y(~l<~Q4(~8G#weg zw3=zzav3HTjatK|OB1|$;U*)ZfmWKORDN|Kl?`JPTMEiF{GA!-F;A(P)}FgpRp_7* ziqK#eXo4%c=5FS(OHDDAO~W`tk1oYC+`CM2ATl4&fp#TR$T{rUUA^Gbv!U9t2`T@_y^bCygWj5;|Tp56Z;t4$E`yQA7CsR-^U00 zNE~45t>fHHpeJ6Kh@&Y>mSqaLaw^<7p5h}X+{Y*3npzL>?2S)ru|?}Kcp6C${J=|J z{S(g*k&e#o;|o8>w!_ioAeTszi<}{gwDnF<9=T?X!j5%^qU}1kLDvf}u)X6f(oh*iviPPNfS%gg)G0HDnkS{{Om}Lz;epKP6DXF-cfX3yQ4=g{4oiPX z%1r`^t5?Q*lcqNaoc#LyfwC@jxY-!?_`L``s#%*rX3o&+3TYE4%ye3GXL?qkpt=qyGh+XCy*R#Cnn!Flp>c!%jvx9+85G6yKI{VmQ)sHS`4@~ zmJnDem7fXZ!hvaJ+5Cm}T|LXzR&ozaM3uw{QIY2Bly)=3C}8SPaN05 zfHer$A`S^elZZw!t|PJuTO%fgFQ!Zyk!@t=ku2mEkR8a6)CJgGsJl0h;MvDK0ta92 CGQBPU literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynValue.class b/libjava/classpath/lib/org/omg/DynamicAny/DynValue.class new file mode 100644 index 0000000000000000000000000000000000000000..2a3ac74ee5467b5cb1c213447ce85add59657da5 GIT binary patch literal 331 zcwT*v&1wQM6ot=KYpm9vs+;1bF5EWw2G~`e-hE03WKD6lNh5 z@8bS&z60mpelJ%5WAqqGgn_XsH+jmVlNPy3Ci)cCwa5;Vp+e|v#ZmA~=#%=CLd=V|@+9~I$ z7NP%06@fcm`FledzLHjnOr3+9P+ysYP2{%#)>y4}YP;!1>dsYzkKj)Wf-q3QeH_9NnaPzHOYNh%@Bw_N(xf1? zAl}9O;d}?~IezaC00wvvs1UmBa>->bCp)W3lMU@It_xLc^@u+Ot_aCWeJEKdo6B^$ z(wP^i5&D;%=~_GG4cm=CozS~LkGU+_3N#2$=dmyZZVAsPd7QqFhH}l$t7W0(bTWIj z-uOVZ36KA&)6Ypzev=rMbM1^O%vW?18gt&dOuw0UB!5D@L_TCCR8hk<1a8no3wMY` JxDUO8&JX_TU>^Vg literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynValueBoxOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynValueBoxOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..05ce9023410d2a94248976e7a14b37d69e57799a GIT binary patch literal 631 zcwUWCO-sW-6r8QqX#HsYXqAFqyrdLeJbP-Zf}liHdJWs{5>uPqkff#gYaaXo{wVQ9 z1w%=ThvmIDyqy_#_T%&I9l!;SER+~*6M5VO9=}Sp2z=SmY1a0|c%r&y=7cH|iEngl zq0CSliK*aYp*`*lMoK0Y))?ALIC>@sjLy@nGn^J*pz^oK(DYQ|4$Mpq-DyVUir5{d z+7&uwIJR4N3t281D%Ufq!e7a4hO>ps4??~QPw`t#D*o`>HA8hyoS~jm>^YC!4*yYV z#!GCT*h^ft`WE*8W9>N&)x94FB9Sj-EuOd5unU~E`t%AvieTs`)V6{k99ZasFC{&~k&;WwU9M0+%?CfgkCJYR zMGAr}?1bGJGCN=2AD;kvxD==nZhVnRpJ#Hoaw<1z->u?vqHLuHKF_@q*dw&(YN@1E zE|bY@uG1iJK)C-`oGf&qg7K~tI3!&CEnpC65U#iDLGt?8mkVD6HM3ei4_`(un82(S zp}Wi4`Z?jv#-;IctP7*8d5>y>Fy+)$))MNscW;Ddslzn*-`RxF`k5`GcS2+At0L7; rCh9x8H$B8(_o%D0C?|&KPI+SD6d1oGmz74C9NaM689) z;{Ev|Q_s<1nEtjQ`JOXyRV235nxQ$HpBVau^oe)h*^y!JnN@*+Av(A+PvuT&Y9{~4 fmH~<|$b_Oz|1}AfqlyEnbS2)ZXY}IN}(Xp~Il@tGIGo#3W7ao}5oU_(mYoEP0|Ni&a-vAz?p`eRl#I(u@vszBf z?iswQYbj$-zUFzQAr?fXCM*R#4A-{#4o_6LQBJHBw}oai^gY)N-JW6Sj>Yo~JsGnk zLg+?NMKAgou4Z*ZEH|n}VXgCGMKDCNrp7CIZt3#3x7cHE>2-$D?1e&-6w~0AW$rRO zjh&p&tmM)uPgOF09!*lgb%xvLoKVouFx<+VPR$lpQ@PZVf)$38iw4*$F zoH2=fpyDAW>2`RnCX5op!%h@!OJ3%j;EzNAVm3`3pEfl|~kv@M~%6s3Y&J0UQ9q9Tl|viA0Bl;vBoxDUQg>$0AcL41nO z6i}59myO0TxmC=GI?2>*QBv_aQVhX05?v9tl+^DRlS?OM*o=x2 zmkJgcuD2moe1$A=YL?)(DCmYQtWBC^$xZ?5`j)%t0v-*}MNH;h3+LI@BI8%ZX{O-AmsPM%r+u}0N zR3|^@PX}q|2Ngf!Cx);`bRzslTa9?i1NfPy*Wzq;nzkn8kq+F`k0&3I3A#e+j*MSg z&9rPe3=@k+tzpxp30}Q$k`d8hE6q|Wx3-YVhOmh(1!Zdf&J6UJCu^p)=gw6XI;e%h z)Yt{;;EJxflX>h?T})}yFwW4cOYsc%E@O_4?^?P|LFUd(#!AC(0xqaTDrD0+&T#)y zd?dh`kqn_VvtemsUYC~pTmNw;rP-blYTa(gPmtc|zm2{X`jwz3qi65L0RnI6r3)eY z?sFDr@D6>e?g4sUao{v{JTRwKxi>!X53ap_afHam5e7CU_A#`NTZf1qU@Q{f#|QgJ z9AN6LbGU~o5o^^}W%#}t$U*TauGJ3x1&;D`QpN<61@xPWJ5TkeLBply)v wLx=;seCxyhekyDj6;vG-1E$B4CYG)XS^hYchA?XQ#gQ6@<)ne3?wq&(2j41I+W-In literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynValueOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynValueOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..26a6dad8604beec9782c9317bd1699c8bf50a987 GIT binary patch literal 797 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/NameDynAnyPairSeqHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/NameDynAnyPairSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..dcf5a77ecd05be4f41d7028ec912854bc192aba3 GIT binary patch literal 2595 zcwUuNZC4vb6n=&TmaI$K(n68aN-b?eh(xR}Eoo~*cuN}yCXtF&<76`pi^*=-Y+Cr@ z@gMkCsz-q%=U6}cqdeZ(tOQ5`aX-xN&fNRVbDw+f%-{d~@h5;8*a~_W!j@f%T9s0C ze%Is`Lyw!g(N$g%^h=*>+_1A^ds&pLg6#ba7q|E;9xZdT6ipYlgzhl(Jv2y?7AbG%R%41+04=jC;78}i?q^gEkIjUkfio>5GC z?N-ToG&FhSmq=&k;?W$9NW+xQPgk+LkxkeVV26m zu}p@`r_gAKskn-F6^t<4J(psGpN1eVsJMpf3dR^NwP0$vf%ixc-4@&t`I^|S3sV<) zM`ySfN_GmVW2`C|ZfbZRw-|biBEuEZrJ1oT1#FgL{kTnJS~QhJ?`jBPl5*xT;$?%^ zTsrHaR-iUB|CcdUjb#@Y7!}e;XQMvDtO=WJW<#fph=1(G`85-pTvzZRsne{1)}pe? zMPaLm;v-qQ_bAb!?x0nCg3lCu+LB{3(QqFRXrU27o`e#-(kS^mr-P|lwj-CKO{YL&d}>@S~UWj=!PnTB6b{`%f5ZkPRhw{P-M7q4Rc6P?Rt180=wPPj_o1~ zkkShp7V(Ipc*VbITsEhP{L5K>OVm!JgoRt(d!sf?2f zzG4__Iwi`yR!i`jv#_I!s$sXus{k$#4R+-S?iueS(*(!9(y3()j@TK8&}ge1AHYw;;CggNsr| f#Y34Rl%8`@em*8?5GE{_YEYiQZqZa-`|W=LE?VX0 zi3=aVof{s4g^yr7Gi`zd6Bc*QnKLuL^P4+A|9t-e;02xp$PmgV?L?;6iRwcwdaAvy zhtam^$wYJq^1V=LfE;1wSe%HcD|9E?X&uY94KP8N^HpV{rc9OSs#DSG$^f_iq1JYG z->yfWOlsX))TqZB+A2F_WZxf3WZG9o?>FiMdPkV58Qr%+TQ89Ry?F8YeBsv@LjJ@R z2($53HVeNZWYiI%6klpKZK`yKS0-L7t?U~@wz8HGay4@#3&`Sbh!SQA#aL;%J?OP$ zy5}4n#XupZCH#hm@9`h?Z^rvJq)E0yaa|FK?6CP8=*Vg`3ywi03*MZT$UKsFc2 z=*oqr8KiBwsl45lZqHpKeoVd|GRPy~xQIyoyz#;F_s3rVj^P&tH3EmSRw|s$ zq{6-Prj{|1J?4CPM9b)tTDqWL&+?fmfj6hBl*x)0&wIk0x&DNn4=qv|$?d zs{)?(j!6M;G&`*a;DKL7E$Rfe#0*m(DP$75HK8TaxH}V4Q zv5jRDktgPJJlNXav3w>vI(D`vJVCq6BH~9Qwkik;Y)_d5cX!lEjOlsXGLp7FtzsLR z1pMQMnM&(+))d&f291x1g6#~n+CFYug`_>K%ffuvA#h-@H+G8q-O_JG_Wg#Qo|Yw? zI@W#Ehn)Q<#VB4A+qC6)#_wX~t-9k|K%SV&UTY&iim& zpms)zEdYTNDvsbJyF-zc#q;5mK>aFlN`6kOcm=!<4K6=&Kw%>v@5L>kj~e1`xxDg5ff?(^{{tPaox(!7Rjz?^_+{s?fi zr9;uQmd{7EyxljK)N{5WC%7l6&k5{_J)Z8_F9$#mUMi=QBO<+%Gm zexb`+E8#y<@i9IT@HxkvJJM7pKPha9^{JHG7<*^Pu>3r3gc7>XT82%*oUcmZXu&QW zSf4_v$uIG>g0BSjZvaxoH&WiJlZVTVMEFj{_xORTE^av0H&?vX93XXB2a(rvLsbX_ z#~!|ycB#nw1CK?<@nuB>=@$?qlxb=IFB8i)ravq(;wqE zbKLQ6V=i9w;taiHo@ekHdYI`BdYwg-$bRnjxw%X18m{%7OX!~pEn;8+LnQ(N&Sso} zuR7q(MQ4T_b6Bir&nDV!Iirq#;W$N{PhWqMs~}KRMi7 z_B;51Czvm>TI}j=2d>89sDK&wz$IFwt#t{rQ;V37g;>QqPjN@CA3nvsPzfhU?tstW z!+kX10aN*W1xc;kxzE){zvC`R59m>hGwjA`>*iD?$tU$a4?>2mPl!K>z>% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/NameValuePairSeqHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/NameValuePairSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..6f5a36b2cfbad29ccff93e9a65ea422ab67398b6 GIT binary patch literal 2888 zcwUuOTUQ%Z6#fng3>gR7hH@!{LJP%QkVxyLkWz&}AtfaUm=ea`&#&u<3+M)9?T28MuP zX2V848=l_L)x4IO)OW%QYMv+6T!}BLnz_t3=XkEbO$ly>iyP{e8qTSDHk?Rr@QlUK zbVt)Q>n?-KA4oE|qsAJS;etm&Bbpd4#5J8Sl=5kAuBho8XYj_2jG9ZTrY4@9MYpxC z6&XVDx(P*u(@ueWyZwPfw`gK%YBIb+>w-wcgG*?W;AQB{>LurG!b~smqGf6si?1oT zjCKakvZiNq+%j~Awqs~?iOA^06$xDoL+3H9&{NQg3o?4pE5XNbsRmNPRrHY>8I!9P zPZjxQiR&4jvN8;}{ISzAIyF@p4A&G~#{ffvw#IOoWU1C`nex@Mk!IYWG9Fh{@O)i? z9|0N~alDDq}#wAPIxfeqBbltJQU%T&d{-abjjKph|=*+~Uch*H-& zaId6wqh=0I%F9DC&nUQu3Cdwhpi7uz=y}z1YH~W2Se#j!T!|$XnsJ}u%JHi8^KyZU z5tcEFxG3BMhV~PBRn%z~2?dMzfF@n+S5dVjv>QHZy|Qi^+ZE|gTy@Px;qegCih>V8 z)oILYx?xfS$0R&r@Kv3nIki}fszqz2oZ$sa6T6Bl!^;d;<7ZiknMkWNyS?!<5+$qZ zRELV9HBDF&=TMV*I#8J}ij|rGgloc4D{o;Oo^y*(Y-OahvpabrvWluo9x9g zyhc~0VnFv6x_iWd>o~8#P4+<7&$u`rbnT;K7v1sTKKi|bpvXf1?cLiXSdj5rZyoCqz!mk6(h_At7Ox2iN{`{g`QiyuM?sBuK> zTw8F5f(ppH6tn{QjHn1QgTYu|3Q`7$)Ki4~M-=zhZg#4?A_4 zupc@RyGa`05v_bgQ9q`LPvFB-`W{Hx4EihB4g&>USS3qFcCC0!_6@{^z8xGc12#V3 z@;<3*RndOKh7;*{2>KJpA@7jyBl7C+$i`h0KcOY$Bh9ttZyJ~{bnxT9e}}4I9aK1A z8_g(_8apI+8NK-Y2-iO32o_|~DNYLtB%=*Fk~UWZ1t;`|6WSLH9qeM$4jc^mZti3I sFz}0GalfTxzN1**!%O!b{BR_$k63(RXYX_3HdEX$?YInI*+|d+1N-paO#lD@ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class b/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyFactoryStub.class new file mode 100644 index 0000000000000000000000000000000000000000..f86463f4847a02b1a1d93b2f8f4e53e13856d6a6 GIT binary patch literal 1629 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 M74A`ah0gl$e+NSB^Z)<= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class b/libjava/classpath/lib/org/omg/DynamicAny/_DynFixedStub.class new file mode 100644 index 0000000000000000000000000000000000000000..9a6d99cd3319b8104d846edbc53ce0d86e0e882d GIT binary patch literal 6558 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class b/libjava/classpath/lib/org/omg/DynamicAny/_DynStructStub.class new file mode 100644 index 0000000000000000000000000000000000000000..2cf9fa60d60454c2bad9659b92b6925eea1b7e1e GIT binary patch literal 7220 zcwU{CU2qds6vxj^)1*xcZ7I~2@9(DNBLad#L2T33wuH8jQU#Q_-E7mP$!^$eT8b!s zqu?is_=SQqjt{xXhH@z4x5oIrp6Z z-n;qvzi)2=z&7|e2tER9bR!kfGpR`Tj3#ANxl@~oB=A0N8hP1_oB6RI_zTRULx;OM zBU#-rrLnXU85%pO$Yy^gn+`&Nz;X`Fg$1FCz~YnAloV0*NL(>gDXpHN7y|V<_Bg5- zIaSw=^mh{=0|XXCbuDK~nmH<^^GfB#ovT9rPY$gnP@T}TxoBF-wPK zAW*eePOF+~-cO(++%`(UAJvme5Ec{IIA4xKS;de{Od(ed1e$7LA=DA5i>aD2n9qzU z#)y^gqL?mYx)LUh&-P$oFAEuh3RqSPEzp2r%?TA#To)@@W=z_jP?Ko9B;0nqU`c4A zYN?JOtiduB4~JkKYzV@70&C}6R-cl_h1J4FXeHoNlh}uF+uRrg8s)rUD4LnbD0H=n zNmWDRW;DKC03*=@ID-zMp3}0DWfcp;W&&IIY2am8k|(8<5*eAvDhJhEMl$7zAZ#ti zrC*yusU(>Qf^avM==N+5b{>xRb;hb;JKPh59RyZ-lpC+K*0rz`b`e-OI5d*z93GDK zM?1S>J+!NHN)mzy+((J?dJk?fl(J&;cp(dp`BiPgpw5gn|2GN$SYgkeZtY=e! zS3=4qk~3OD(q>S$^8lP`F+xqQFz&{18DZ%nd3Ql!z=mt#m@ z9~29LrE~R%Pw`GYuVc@ymJ^FDnXM=jaQ)1BNoqG#LrrO@ zo$x#kH1}om0_$WwlhrjU2U*W+R%ZRUOF1HO=Lu9Qr}9#|R7hM_)wrQ&tQt3ki%Q|7 z)yNsgf>1p%$0c)$Xjw3wj_G<@k#O}@^hutO43>8kUvN5*)bnhI!=Y~5!)UAVcH2BQZ+om>`E`R zAKaq)!^dcc2zIi@p0gnSaFk78ofp^>PO1IjZZ_3D%X3R!YY*5}_lJ9#Y40rFTA@GO z&n8fQbp;d77Nm{+yyr zT3taU1WeuPW+<-b4O!_`Y1u@L%|yS7O4OqR04jp!BVJ(5RTN~XPgh{*@Pb{ zc;5k4P!A0_vk0Hs@k;*%7BzkeOKvdRyYT-IUI89NRtGe*Q9#QU*KY@2sb^*TO;}p& zHVA$gW^T2X5iExl46qVb*?^sBL+5Jz-^1#o72m+x_~$Mrz@{E5K-9R1FtnjnJG1h^ zCfH)*DlEJ2Aae8z*me`{{hMS{RxwfOepTQ|T*m_tvmG~s^>J;4t% z@KHF%0heAh32+yE90e?dYvAG@fk(w~%elA{kPySQa&eEja=Am?b}mlB?Oh1BkBgJ> zeGtO+adAmd#BgygZX8l#xD#C51gK&-m5VzGlVUiNi%Sb0(BvE!m%)QZ2zP;t(?o@G znTyj!g>sFH%Zj#we>|Q7Lk#yd7nc*=pnl}yOi`iy!o}qUPYv>0iBn?=zx#y1e|UmV zGw=+Y5d;6_34WY`&%zTP;EMUd|9FC*WZ-k|H_V-7?5ikohZy)pcu6edh$r|017E~n3qs&Mp5Rv)_*HmK4BX=hew~5e zfZbx?VNdWb2EGJuih+-Ng5P4`%c61{FCn+LMdfy?gxs!(Ht%eS=Dh>&ih<92g5P7{ w_XW32-=z}U<_Ds3yIMkSSK&h__t%l{(-KPf2!F(s`_s>NgL_n7V^-Jy2T|m1F#rGn literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class b/libjava/classpath/lib/org/omg/DynamicAny/_DynUnionStub.class new file mode 100644 index 0000000000000000000000000000000000000000..c1428a3d7e4390512928722417de570c0ceb20a6 GIT binary patch literal 7225 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodeSets.class b/libjava/classpath/lib/org/omg/IOP/CodeSets.class new file mode 100644 index 0000000000000000000000000000000000000000..6109b883143ba05c333d3629905275d2eb2f507c GIT binary patch literal 158 zcwRg8Z`VEs1_nb0ZgvJHMh21mqICWI+;n|U{{VgG{FKz-)RJO$1{OvJfvm)`ME#t^ zymWp4q^#8B5=I8rvc#OyR7M6yPeuk_=ls0llEl1{FpwBC&`3r`2Cm@z(xT*4x6GVW kunLHAdLWb7fZ7z00MbSw-2eap literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/Codec.class b/libjava/classpath/lib/org/omg/IOP/Codec.class new file mode 100644 index 0000000000000000000000000000000000000000..e42906370ddbecd4d6662b398569e20404345b88 GIT binary patch literal 206 zcwRg8Z`VEs1_nb0UUmj1Mh3zBqICWI+;n|U{{VgG{FKyWb_Nzk27#=^vPAuy#JqHU z|D>$c&i+A8j`{`pMJ0(zIjQ=dE;W#*&;Ibh@UK+XVK%*enDgscqg44e!gz{tQ2 IB$*g^0BT<}GXMYp literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecFactory.class b/libjava/classpath/lib/org/omg/IOP/CodecFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..2e41db477f6fa2a9b64f15632c7f1564af84df5c GIT binary patch literal 227 zcwTjmOA5j;7=-7qk7!j;aN$xsfWaeZwNMZudV(~D(o&lequ|wCcmNM2Rz%Q+GccOIo%fA5e36^guTOcQE+sIg^5o3PD#(eDYJ%I6E?NS%tV_~ z+&qZ&Ol~Z)8Nw8%6@1v?GXYgZF+){ukQYu`aID=%;~*wm&Bx7y&ZJ5w+*)&jkN0+m zK@t0o&83xSw@4zru`-a)RNTiL!$ptf)aB8RuJL@9rJh&uIcQk?CbwrL`N>d$P$ zp-x!rnYVP^X#&pMBs4<IKfvjmXIQQ(mr<^-#{L+qzgWWdyZrNqLw`d3gP!_uk**hA)bI568{y_K=$=TPp;K&>?h-vP zd5lXH5)_(lOA$`BvR&| zymN#*O}iminj~u}7dPC{q8|^ljS%q>K6W`i!99;_)(aspd4x}2AlB}|W=j+Sk0~fW zavuJsmp)(ki+1Sa7UyYIdH|EcmVu8>{)71Q zFg*hmx?05i6Xo9~S(JL<*`8wK?>o-cC%hxBK`SHy&8l;Ji<2~ z_&!PH+2BiTZ5=}O9pbxV@KuG*%so)@XVF2#ao?AhN IC$4_^e+buKP5=M^ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecFactoryOperations.class b/libjava/classpath/lib/org/omg/IOP/CodecFactoryOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..c33c151e99c45aeb6d6c72e308165b98ebb1f358 GIT binary patch literal 282 zcwTjny9xq93`K8zt*#dKc2kU8;wE#In(>g8eR*P{o6$86sHIgc|?h@_T$uzcRAD}>}ujNsSL>euk<(gGW zs42%X<%P<&2%XmClQlGc9vj_nPrgp{3E}Xpc=zI02;!fQsZ<-OSl%5eRu?LH?5>N?r$E6?`rG41J$N^$CCaPbUBX literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.class b/libjava/classpath/lib/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.class new file mode 100644 index 0000000000000000000000000000000000000000..0e25aa501b69d3cf23bf523166fcfb174c63dece GIT binary patch literal 618 zcwUuJ%T8M{5Iqx;T$+YwLujEOmOLaZ)b2n?5Q3EIwxEV&Z!YFy2sZL{3gNH1Lh7O) z&_C!u@C98|9p9vj!m11V%#6;QGh_ew{p~w|Ei6YU5QKH9u-B<*9UY5?JyXe{OuTi2 zW0_pZREdtcGWOOqO=8cqNh1^qi+`IMN1yliL?=_Od6%dgudRttCanBRxUtU5)1DHo zgSctD_JauHgxaP2B89f1t(=xUeIGc4=`2sX%4MwAX&n&g17V_JP3EQXUD@laQe8d1 z|9SpvlThB#M*CgD*y>uBPz+mCFoxMGCNV{rinURn`q!t*oeUjjW1FynWE;*$#iGB^ z8DT5_&llMy%&o@xDm`gZ(e^G>*ScYbH(`c(9_{vG5PYA}2$i<&yF?x8FhuQ%_-1I} z&te4>P(sAf0$!lP_>#Y|fGQsfi}F3qm3NH9SXzI;%-5Xqith>|u!kZVsBu&sk}!ul oV-T1h3G6a6aLel(4|x4lA?BWsxk7!&8YzTm0gJi$+q`G#4`dgMwEzGB literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.class b/libjava/classpath/lib/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..c058507929d464f9952b65fd7548a1dda019d7a1 GIT binary patch literal 2785 zcwU`WZC4vb6n=&THVG?)04+j6C~YMn5>RWE)LO_3L;^twK}1bA%NQ1t-MHEC@WRZ?983#KKHrz&gSobe*Y7|3=Sl;G2A!Ie8?!~ zLy6RCC}QkzHLj?ZVIHq4>b{cap$&asHxBift{OXg-v!Iv~trI1lfO}y6@ zoz|{aW_XZ%EplN2a9kps!3qBvL?pE~KNm{Vx&R8h(Su$IK8Blly;9pvnYlGywoFa6 z_>PP|^fS2E3An&5Lucr1K%*fn;U+mczrJpn71dhiB2Et&-jp$jA%-?>hoO&1)s-Vt z!VkMJOzJd*8&Ulk_3YZ`~5;KCQh>d$znQQnjAZc_?~x{UX6pEj!DWhrW| z6srY%uQAe+VOnAUFT+-^czmyyN>DN)pP!(?Cy37ZVJ>W3l)rCg3EW$UcE$!eEjG}*z9y^~?p%eX_+T~F1z{YTnniW6bz!Kfid9Fs zcBrEAbd)3*4C7buAmdw6#IjAR7A{@HhHXO4dL@<&o^_*QsywcV4j*j!v7HiXILGL= zbwK<{G^0;FjS{_u=*j5W9yo>TXPUIZLt}@%7)B?Ja@ByIZ_v{%ZtU9OG@N7)^!)^H0h|FR|MCa_G+?T8KZ1THAFs?u*2 zjv=bxG31Hm@y#Ws2*L4-E z87bSqZMI%d$aVEVrWTKv;>l4A(JhiGzZ|Te?y~p4BQ?LL`42YAX!Q({)gbcQNfh=7 wv5U^klV*a{J_+l#3hBoG5{WL{p;PIGAs9A0&-3^ TdQMR-9TyG))JUC^a!_9Yb;y5` literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecPackage/FormatMismatch.class b/libjava/classpath/lib/org/omg/IOP/CodecPackage/FormatMismatch.class new file mode 100644 index 0000000000000000000000000000000000000000..95b341617b872b253e96e12cbc5b2b6af3ef6baf GIT binary patch literal 601 zcwUW>OHUgy6ot>tYak8f4K0thI|xWvs7op&8iJHEkcdF`X0Rr1lQHr*6!=wig~Wm% z(0%_-)$2*R05&Xq&$adW96x^leRu@0jSm5Ggf(MhVfwLXG+Ux(E>zT#(GM9babRp; zx+9%(jk*B}gysKmt$FfwPn@O7)~_RV>9k1#ln9@m0++@*dEQf^u^-kGr`=6}F~Zz; zc_oE5qOGi!J$>sL!c>|~JIbc)ch=Y^&^N+F%_OOliR;MTKowh$AM=MNf9?pSFFMg~ zmylntb_fN3`ZDsEso*Up36r5t)bXHyuI%YBVJ0*Y2S|?L`Dn4=x;iCP!&kn<4q<*h z%&yRrNi5pV>LlK&c6|1GpS{RO`q{nlc`qlCkiW+m3*#yzHgWymboGAmF+0d>rAR~bT>#{#Q2SR5JbGU?gU e#^ycVJ$GpGo>u0tFr-EfzFWd_7QT}0S^Wpdq=V)F literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecPackage/FormatMismatchHelper.class b/libjava/classpath/lib/org/omg/IOP/CodecPackage/FormatMismatchHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..68d86602f73162b88bca1585dab1e6137a51dec3 GIT binary patch literal 2710 zcwUuOYgZdp6y28uCJ7^i6#Al69&JfNN~mv1rG)?`GLRH76{*I_a1BF~nK+qH(B%)% z@BJUurO;)U+Ry$dm*-AKQu4qQ*1Ge!=j^lhdECk0|NQHI#|Y=)k@x}n>1 z44!Z#%itA20eIk-(TyI4enmIY7Y%EX>EZ=)C|)_%VPB5<(1@3P#o4O7*v-z%!K@2hYH+7>> zkF)3&Oby~c&U02r>wxQbzhE`66_kVw@tMy7U2TArvChVnQNW&x0iVelknT$lxJyFX@J9F|d?y-juP0&*(%DXIoOO zR!CK>b!SD|h<(Ixt-g~is+CGot=OkcOriD|MwRoMTnwSc4`~>b^T32zUZoRfL^&sC zboAsH!l^}NmMo@)*j8e?YS&RZmMG2@17!&&!$b$j zGQJhfDm!#snRK3-jtR|TN9-5^n`YJ0__8hr_)4oU=CnwHcZ|+X55%8Dcl4d6RidXj zT^U`wqbKnFOgCK!(Awj?oJB9Ka?OCQZ_(8+&R^F#125SFgTElS>iGi~mFNpx4qcl% z#`Wi?Sba|51+t|Hq(TbJi?ruO5H~R7VD{oBZV{>^OY1J|?&wy8DuLa`b~k#W3<1qfVd1u0tnE z5-E^N$4CF4W1G+ha2a2aFP(RkoX3RFMHJ~rgiCS4i3oT?U)8f%tBC0UcR4xxnnKnb zvaY5eY08t1#cfJeVJ+5JgYPJ#-_!jM4$5fF2Yb*V>f1{c_6f0%d=@Bgg47cf-5B@j iS;X~;5+9?~ScMZjML;Dd#VBg5yQi8iwxpX$H9J*cz* literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.class b/libjava/classpath/lib/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.class new file mode 100644 index 0000000000000000000000000000000000000000..108645b425a12417be2d6da8f29646b274653db6 GIT binary patch literal 625 zcwUuJ%WhLK5IvJ7xex*^eL@4M%RZ!96%reu63s&jx*`#2vtZ}mShsFdJMwi}!e6nf z#G)V2J>S5VFQ_`c2@4(@7WSDLojGU5zPbH&4PXy1A`}S1x>VTnRJ1!?QMUt?bY*fT zQzhEwLJsxda57RY>zXF918vd>MMCXYQ@!)?;GHuo&Bf4J6xeJ}Vae ziOvXn@qfO^Yr@KAoUbyJCKWyJLUpSjW_TKASmV(yPbR_lFB+lJvtyU2mJUPI{_U|F z`uNXS2nCc7akP&6s4za@-z=cYhr+&mFL320BQch?ukiS5PFdo+!U!}_L<`FtRi`AZ qV3jcltjz@WnHjj{?VT$;`BS08J>6Vkb;_D4glHYL-27SI^ZX8Sl8zq$ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.class b/libjava/classpath/lib/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..c66c4f4641b5a5753fbd9991a0280f1e7652dc2f GIT binary patch literal 2810 zcwU`We^VP(6g`gwHVJD9DbQL<3#CO8A_28lNv(zOE3%LX7({B*&E_>MO?K1GhQf@F zA3(oAzeRNvI(F3l?T2!_Z?lp@5`@Cc?q=V8=bm%Vy)XIupWpukFo|6WZ49?fs}M6w zg;+9`jwQ@I*V3x?L@n@G(%4mtdVYPs%;!yO&d|)fZWI=IvCJ(AUWVX~x~s;Ds!@og zaywkJ89MIjhHl?u@Qj8t3|;{kfCqjV?dV|WQgnl_R7*K-t*f~rX9y{#rWP}*rHjw* zORv4HR~YUnZ$&OH0BC{X%4qlqB9U61nU0AK0x0fBH!eyDF>NaFN@l!Eo^e8eQTNE>WW6@7HXrs@cn2=nR12T^U!<&(Nml8G49Ry>b*v z_;DWw82Xy43g9}1Bn&ciH>8(w1H(j2v$$&WEZ@_3+15=XYikT!qm79g-)t$Z$;VsP zk1RH=9D`JH0?Dm`Q-P>Abfdy8YLbP~6M@sle*C;v$HN&35r%7Z_vT7vdw=e~3M`t% ze69LX85htMKp5kq4Py)wZx&{K+cKYtzKgfg8qNf0UOtrYL4yTEUB*YaO$#-7SyIi_ zQmv0iPAV;%mMxZI^{BWQ6pw1`H@26ki!%%=Rc-Rz6(V!^o^7dOFz1`qJbZ3QQHRfD z+{5QIxi0uI#kU$Ju9;*%c`+?x1__3CN>rtty-h8VFvk!(Crt?p4E@Jx%uLT_Q|YGfo4#fK!r_2!!g`Cgfe`43C21+?hG{Xdq}aSB zV;x`72_nwKgj%hT%4qY>3%3xz!Em*{k|?T`N$twiyPM(}zF|tH$?eSd`Pi zL|9Ix6KX&?rFL{wWod$vv&s}jjEl%4TUz)rH90;(eN6Tf_(sc_NE+p;UF(v!YE2DX z0%f@I|M)T5?QE=D2AJ7VJW`88v24To>{t0W^cBXnyT7$lygfJ z=aGT31e0O-3>joR6-_KVv|PD#9-B@G&Fq<2G6dGls-^LHT@3orY2U!(qA1=WI(t13 ze-b^>_di`F`V^x(qkDVg5Wb)3p$!4Lb~rDm&`DRh7C`rR=eCnW1A?~6+CpLmlIC6lyuMt+p ze#QOQn0=wV!u)1v@ep4uM?=fMVI@j3RyU%5Ir6&*EaRpfAwb|;f_nfT9@5Gq`T?WS z&x#!Sk;f1?$$0EgijYi7=2G&}|JT?g#BN;1H`t=5ek#xdLTe*b`eEYI9Coq-p3uX3 zC2Oucb%5KPx;=vGZpgU0f}|@)T4pz?T!rQ6NguwWs(w$;KR76ZwLRE|4&iYpQP?5G w3$$m3Y9~lNLD9`|pFWGcK4J3#N++H8k)nQj!wDZOR2&&T2Tin^?d+-k3z@CX(EtDd literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecPackage/TypeMismatch.class b/libjava/classpath/lib/org/omg/IOP/CodecPackage/TypeMismatch.class new file mode 100644 index 0000000000000000000000000000000000000000..b77ba8378758db2c210c23fb90fcbda9d53c7582 GIT binary patch literal 595 zcwUW>Pft@p6vfXiZJ*RCP)boyNucPgo=DjIUz7?w` zF8ly2hL0~vqT<8LK#i<6k%v6t?PFkMVk^%EO0=5(VPv(P zcz8l6f0O4@Xd}8R)^eb)979-6(q&J@3HzP4ngsexc-AmcVr67|axhl8+h2E?t!j`X zI#TWN@Jz)gvxJgw0uGQI!|VBG*7kKmc<2Au zJJbkkRX@GJKt`eH+E_*nXBRq!Wt^9&R~6R jaKNNv^E>aSc=5Nx5%;uHhsunaJGg2Cn`!u~wCDA2r{{rV literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecPackage/TypeMismatchHelper.class b/libjava/classpath/lib/org/omg/IOP/CodecPackage/TypeMismatchHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..a22d353b1fcc138c4cc8704308a8c868680093bb GIT binary patch literal 2686 zcwUuOYgZdp6y28uCJAE+DU@1D<j*Cv!>$7E)0e$KTP?uj6JaalryVW4Q%yxojlSmRa4Hgtz?%jiQtLvYraNga)P=zCri^PCWau!q8TyD+BVS}n_=y09803>$LU;=! z5{4Oin}W(1#Te1iZLT>y&-Zm+aSY4MJ37PGL^FKzn=Q39(MDZVp0skUT<_G|XZ2Mq+Ywvw zhE+n0f=@FKnp;U^!)WEeahe12{rpUEz+&26MIs{y1a%t@DF zzF*;DhC^7wif9CtEY6t=CFgsXL@-EZ85vo8O1#U4Y1s@cC7jn~Y~V9G1;lBV)M`~y z6g$78lomoCF>T+|sPJk)2zM(|OhhnRf@MV6b_$A literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ComponentIdHelper.class b/libjava/classpath/lib/org/omg/IOP/ComponentIdHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e728dd272a66e9d42fa822487645cbd12b8880bc GIT binary patch literal 1733 zcwUWE%Tg0T6g?e6hJ;ZdVDN>=OOmJzzLh8nL1ZKnUd6%Iw*dV3w422 zF8lyL%JOz65t#%fi|(G=_nvd^BmMK&_a6XmVcS56VZ`&xmRBuXc7EN;dexfea#z}= z6<(=v-$0n5|E;s{SQW=DTlvCUUX%=x$HEnIo}nw5+F=N1y%LY13sDo@h%of!gv;0J z)dKgookE2(#B*NJsq8quP~S~sSiTW^45PV!ipVI(gBtl?Os4+0X7ihi3)VK-6?rC# z0Sp?5GYpsAdh<5#7dH8x^hHtfl8GUlV~B1Ew_M@Ua~TE$XtZQ{FieW5wW#U+dwxXdsV5SU#RE^%MMC_|5Yw_C4xZkZtwOho%-Vi?1OfpLa` zHfbg%F-7etbGcjdMO8?#&v#{!VK&(r?Zj#+nrRbBq^MU#pF5K8Iu+sUX}Fza?x^Kk zR6e(y>0mhl`$STj7SAux@CbL0`!q$vLD>uLLB>w)#4v+d16ErR=-#Bsz0F`YFk00N zCv7!{U5XCi~g3}>3oEh?ILf(VHcwVKAU ztt`Yu^`zVBAa>33rJ8%oc58J>?%b(rvPCQz$TE!o-`~V@B`T&UT8g@bx@VX?4IjC` z_l2ZCQ|d&0`MNv`(EV7&D+4)(iBm+FSW_M9)if=Q5l?$COr469RPH;KI;o6pd3C?Y zmxX#S5^Zn8jH-Wl4Ad8>pFt;jfoL`8%c7mp-ktu2o-cF=Ax3LN8|TqWtJ!d%{S56< zoJC(Vc#W*;Zs;reSJUxC{CxT=E*|3QA+CM?gOwmJP*cKKrl=Q$u!4R%x3I(XmBu-Z zeH}NN*z*(}QcBX74sr8HSxj5k33EduBpP10gS$Gt2=3uNVMOr&58IMF#G_AvBwrs( zvH=st6B5t}p3pZyS3Gf)QzNvbLqj^?DV}v;TL`kb$Jmys9MA=^JEi?HnDzn1d_0zR Qo=O3I+R$k;Z0eY;-%`_mqW}N^ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ENCODING_CDR_ENCAPS.class b/libjava/classpath/lib/org/omg/IOP/ENCODING_CDR_ENCAPS.class new file mode 100644 index 0000000000000000000000000000000000000000..978fce2d311ce4f74de4bbaef413816f39b06679 GIT binary patch literal 180 zcwRg8Z`VEs1_nb0ZgvJHMh5x(qICWI+;n|U{{VegKWBdzPe1o~XP2OOAjdHvn4N)z zkwG9Uu`E$PCowNw-#;lUHMxY5fwe3#r!; z6~;V2xA<;ZT^VLVbsAJ-2A#1nzVn$e>~>ZC2BahUslyz%kFxAPwY`8OsW%7m&G zRYN&2ap!c}Os<-8O8?2_A1JMohXR?(Zd)K*GbdpI8C>$PhLXT?L+SA8c-Rf&7t=_^ zhUqbpWG?P!WHx!LMgrx={~qT)$5dL?>TY`h0#`jOVL3%R9#*iLq8lEHSQT(P^ZZMl zf5MaaJ9(jH#&IuvtkU_5^I3c8JMyo1Avnl^AA>7cK!MCf{-OhqhyjR2I^Ncztqu_{ z&2^o-d#r*r=YK}|lRe(xT3`j5w0(}tMBY@yA)D4}4O=sVh{`N$DK+pnC)oD4Cb;Hr vPjLOWUzxqYODbP6W{1&U(?eQsf7(CuPSH&U7Z%-OWXGc0L>aPotmoZdyh4XA literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ExceptionDetailMessage.class b/libjava/classpath/lib/org/omg/IOP/ExceptionDetailMessage.class new file mode 100644 index 0000000000000000000000000000000000000000..68b7635be9e1abd33e5122ca6308d2777b3e6d23 GIT binary patch literal 186 zcwRg8Z`VEs1_nb0ZgvJHMh2z)qICWI+;n|U{{Vg0isaOSlFa-(m(-HP%pBj;;^M^g zRCWdyMh1bb#Ii*FoW#6zegCAa)Z`LI2G+8~oYGWA21ZXt243g-Ihy3fzSdC0kP^c2no_61+7Tclt`!#sk1R#S6e&UI7sD< zui$}?Ks;1PNbmuC6k_ZIinu*^JTsm-bI$ndw@+UHY@qI;z);b78tJ1nYPGlN?06_K z%pdYsJj%FAqjvvLB*w!mL+wXtv%T~9Q8d)K;r&cRt<88#8EK9^_zX*~SL&!Ea>+CK z+SU-{$c0^zkEB-5Tbm5*DZ|;ORwKie>GEtWW~#~7n|JTu5(R&l>z6VUBZif|_*as< zJWa)5d-8mr!86B0(USv)Fh1qoF}YMJJ8z1#WzB|zv#yTO1oP<(5O_t1oBoPboZ;K{s z8}&a4|4*ys@ArPno$H=H#S7Xyopk2v25FP>nzQT&X{C%E##6<;G8qC|F|Y@eVLiU+7sCYZG1 zI#%6)5NlJ|7t~p#yW(K)Sk$|Jfy~G%;;V_{&_UKFZBt0=-5}P?c{k};wznM0`gi&< Bn^*t< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/IORHelper.class b/libjava/classpath/lib/org/omg/IOP/IORHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..fd40ff58064c18eee2b89b7d591c65fc8888cf07 GIT binary patch literal 3250 zcwU`WX@Q6&;2j`3vJJxObKM6KElHcbMLwDdCz;!J@@|k_is-D?8eU$${1>O zBjML468=!6m;U;W^JIz}5}XWGtZMvZW@3aJ1IkE}Gt`9jn35b+3{`yFgHCfyO*568c5exEpoYC353o==6kh z3GKJI21C*$03qZ7wOwHy~J7Fp}Y34|qd7nCshlF@^c zG?C>KrAW9kk=^b)^QonD!xU5goK-;d6NjQr7w%FKh}AO`3bVR^775CyOhXaH39rz6Iv7&eBN zvJwS8qENXugqKi&wxVeL)Kc2XqD5HRX=&fxLT$oH@)E}Wk~I_3QW-Owg(9hyaGs8# zyiqqM;d0|Gyd&XlhOPgPEaP3#P?iZYc4K!D$VC}D@SZr;3i2f2Kag<=mnjw2vZO9f z13D=~60S0=E7>pw@^u+|@FC@4I9$>$AiD3zGE98J(D57sEk>h4QiUnQ_Gf_-?UnLV ze%??`DzO74{YNrpZdK7P@)f?3@HNA>XF!l~Q)~^{a%-nTAl#O52X`6V*@>*!PERO% zMtvva2EJzqJ_pOiDv7>Sp32&#H(@7jkLyWYAWkEr)$q(>H0sm022@$k+=$v&py3VRC2|Q(+%P zG5rV^#QXgxxbg_s9EW~EmG2?0)l-f>>c3pZ>c!X7d;k39%g@y%RN^wKa0MH1mB?SC zop6=tU0)DP8$Kn!Aj?*9auJgTy5W9~gcZyUd|`9DXme}!lDi8t_|j{+oxv@Ok@Z!- y=P|xr$S9Y~tg<)B%`Ga1+oaeXB5)f`xVwN%Gk(C2mS)X1nN{;-7=E(Q?)?jYH7*7K literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/IORHolder.class b/libjava/classpath/lib/org/omg/IOP/IORHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..5f6f159d7b6e55adf04e49b08aa0637758dbd249 GIT binary patch literal 1139 zcwUW?U2oGc6oy}KX+uKjzSsuib8KTt3XKpK2n|h)NrR$_qP6PXn9|lNnbM{*$q@ev zBoGxB`~ZFw;@An@2%Xdm+sF1f&v|`(e*OOO6Tl;QI%XJ_BhmAse$T7c-_kgI6@^_c zbZ89oC;qALh5n%D)!Qe$6YD54tp5$zuOGhH^M;X#{dUN`Ml87BmnK8u)DII{7iu~B z4ny%-FbLvZhFRNbF=+cymz$Wy6$=JThPhfW;BS(Cn~P>jTdYMLKWzCTko)XVi{A$y z7*_KcQvHqLYcUZ8#>k| zl#qu*E-c){Ez+4%pG-%cP_IHD9T+yJ0Z@65KZ+ox_t+O^tS52)AsZGpu|>(U;HT3C zPpB{{h?EP%)>I5x`S{b2lCIfKE}}{2vOjjD#5-(J0Vh^1G?yrA-}1^JUsSRyTC&euwpij2V<@HfaTRq2W2^$g)x=%wvI830TYk z2jnSzO$l(z->`H>DN%CZB~hvr@mi5qQtyl;t!0uWMXX>oWA0^4!!3_+?H^<+tU)2o zb2wv+GjJPs6z(q8^SHA66-y)B%j1p+_wEAReQYb74JX4@vXW^dxSz+QqB`T}s-=yq J^-y_L{s4%p>Mj5P literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/MultipleComponentProfileHelper.class b/libjava/classpath/lib/org/omg/IOP/MultipleComponentProfileHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..90a55f4873bf9da9682eb95278e122dbe6e4f20d GIT binary patch literal 2658 zcwUWGTUQ!a6#kB22I$x%7&TRl8cfQq5@ULkT&k!E5ydLe+Fa;>CpdPPA;aM1rB7YG z{ER;JHFmY?YF2HZ`*-@@cAsGu8ZQ73=M3lU{q1jmd!IA&_rJd%0vLrQp^YJ8n8mnJ zD#lZph4@@mv(&Q2lSZj*=v=oJOyi}h@kd-Mb5nww;nIe(sl+u!FUB+Z4PLMqF5Fdh z)w<8%3Wb*$+(~1N`{06CMmsJrTuiGvpRbnk+{`L@jWhVuMnTb*6;l=eokh2`u2vXg z>DCz~gx5})oO?szx?eK0I5`o|(z;-h@ZvH$CHNV7ih9-A&6xQ`Ua?HIVDU8>SJ1`a zT~hU;#w|l<=sbZ&L&Aq1yeHu*!_aYxS*2LyYjuJ(W-{KzMIZXmFCoBi`4pOrYZxFU z3MN-9o~!UzRjwC!&MGjBg;M7wb8eQTzG3F67^+_3CROE5=!EHnzLR*GZooVdUY0Q2 zYD*Z}8aI6i;-)C``y@)J8M+T)L?uK{=|R+F#P9)a)ad7yEYhV^YmA#GGbtOUCAQ*6 zRteF0E=AutT{@9BL%X$ZR0!-^W0DLK-?mIe^!3(xrDn6eQ$eCPE6%83)71e*;HoU13H02=ap-aZ>}29^@ek7T6qm`;m0^hu>EM2#H> z%C4KnR;?yyu1ZKV1deu+no_AGm5MdJUEpO)701t2;M-KIbR#R#@_A*Ap+DU~7P4wn z$>>Tbd^%YVvP3>Ll^!SW5rNXE<;O=yZqbE9MIyYZbDJ`ym#bE-md(563w$YImEn4G zFd0wrjC2?AbDE(S?F%<0;l;7WI3tRSqw#{h zIF5H{lxqewchKw=uPMhlL6Bmv;}=|-jkpfby@%e{br2uTzpLP~L!k%>^_L2g?3azX{oT6?#Ljcc- z@C%#4U=7=0Amb|LFi$Amq)rA4gyO~LSai4qZG6DxUpi8!Cb4S6wb^<+!Ls8}a>x%5 z`ISHLJng#oGdiMy$N_Ro-?p(p^zf(u{)rxebyIzSO?a?HYHZWj$rk#tbByZ%@+i>k zq5d7W)$*YeYnZXQa=dgxZ#ba?k?7$bigw^gG;sR>rF!7q6LG(zWWJ|ZKfq6OAAUR* VH-Iu;+1Ur2xSo1k2Gd5W{10kIno$4% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/MultipleComponentProfileHolder.class b/libjava/classpath/lib/org/omg/IOP/MultipleComponentProfileHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..3e1555937082c132704f9bc17de8774f53530ae6 GIT binary patch literal 1275 zcwUW@!EVz)5QhJ4orDGZrY}<~*2V=!uhT>z_ccUi^^Ln+zpftpQtC+_n4P~edi?$ZQYvDkftBRQQ8$ksknigC9LH=2JQts)Nl*8sk~I`Sw5-rdR}m)H^XKg8XZyh zW9UXyu|8A26-U#hZfMxV7KvrS2l;}}I}l1oB>oIrxq$MZqE7*3u%=h1BHFYs2X0p; zT+^_FsvM=nTRj$W*yjhX9IuVDN2xCF3EeW9VtNYnFgY@G^Q294Oz(^I^(gs6yT*5D zU&xrl0=-pQfu~Tgk43Vy)Co(tOsfPeXMh9pl)kD27`1O$`A1nGaiB?*7ZhP7q}9|r zBT4Hjr6rSC#kGvNmodvmZG`LpA=AWOQ%Gk5S03ZaSjU|NcNdjuT+R53l@abu|n@{wzaFGPT1HUT}*%h89G1v?9XLnH3ISuk7c! zw{7KZ&JfSK1=jAu~f$xce&x<;G(Z>+o5>CnHzUwgb1kmWnw4tB$n2XsNvQJ9?IY~3q zlT&TDMmVRYCy#K0!6H;#CWc{*Y8YYYZjhy8 z4C6G268Cq@p4b<@IOMy2fnh4y9PPqRNty{ANu+2>1&>=k-?eOE9Vob+WcF;>ThuzI zlxbqQ0Q*8x+7s8y)7l8r|{@M2|xxtBM3R0#NFry=b=L{XS;5rrUIzfa)kw#6c*w7YY zqJENhB8XjfJzs9TVLIiCPvP9!S7h^8)Ud!X^8a`pOHx!!Qq&c-3h8GUy9^(NfAWM+ zf27of`f?TjEJ4j<4R17L8AdOWp<`W6s9n+2HAY+&!7zR)Qc`(n*%eY5+j1*jfiDaB zrRWWO6((i(!^5DdK>jp(qAw4f8oe2GGrC*TKhXA_9zuxG8BxYrw9~0q1L*FcJBlml ztR=6KRr-35(Y2P2C*oJr#~3)ltrOh-c8V28n9e0Smnr)-y6CRshUqPhK81S+cWbz_ zlo^sL(t{_sccv<)tT|%cPzZ@?6dvHADlLLXcuW{kJi*h30#ESlYoNe)=L)RCMDc7MGPOb`ufS|p_G+-~Bg*-5uIwDO0qW_k LDw|0$+UXa literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/RMICustomMaxStreamFormat.class b/libjava/classpath/lib/org/omg/IOP/RMICustomMaxStreamFormat.class new file mode 100644 index 0000000000000000000000000000000000000000..c148217e5916c5a873afb9fa2ddb5c253d59c05a GIT binary patch literal 190 zcwRg8Z`VEs1_nb0ZgvJHMh2DqqICWI+;n|U{{a0UUr*=K;*$Ja-^7aGlA_eaT(|t9 z+{6-g1{OvJfvm)`ME#t^ymWp4q^#8B5=I8rvc#OyR7M6yPeuk_=ls0llEl1{FpwBC z&w!#W0~*5s(#FUj$-v6M2Bg`6JSGMXuox$p%>@8p CoGz6B literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ServiceContext.class b/libjava/classpath/lib/org/omg/IOP/ServiceContext.class new file mode 100644 index 0000000000000000000000000000000000000000..ce87e0d96cef50f1a41f9e38908b8aed6a54956f GIT binary patch literal 644 zcwTjpTTc@~6vzLk-BMXs3I#YGgz*z`Cj6d=x_-TVB15i@5K1>w)%s3l%m1QdBicRb2ivu`kx}Mb9uEjp z$*j_rt3*$Iw>^yPCuvK@eWjyjuuY)%gh#x#Z$xBTqBoGaKhEFZ?Y);51UF3e9IFm@ z1_bY>&=E!uGW!+6$QuyjGTBeI?1>=k=rpDX{w;~&ZI zX|^tVpaBO>Jmttsn=r$8B!Iag;1hRd*%vIJJa>-y^7=UzZc#;s0DEi?SlJ<~IZBYF VbZm&UQHeiFqD59}buJ~8tg_|_(4Ji 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ServiceContextListHolder.class b/libjava/classpath/lib/org/omg/IOP/ServiceContextListHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..9d8c1c9916038b4d682a625213d24b9a074dde89 GIT binary patch literal 1247 zcwUW@-EPxB5QWdSPE3qxOA7@GftLQ+3B*EN7FCppLQq5yiE@KV1|j z1R~;s2jHO)v$jb~q%^s(cf6kY&dluW?>|3(0eA#Q#~i~}5O$rQ*L5njH%^_01JUN? zz?b}!tcp|lGVnS))S)pfowx(n@m#;_)LJLJEp=oWHvYwzYj2+&IQ<}$Zp-6NU54E4 zDU%^HaJ`7u{JZL8wLOOH6X6TF&oFP3iX|CYVw0PW!Sku?5s4BUAHdG%WmetaLt5{OAMw;Q7Fy0q|7mu*+VsYAug^mhcaW!w5|Q$3B2&7Y5z3hom<2|Ma{MtAl1jBEs@Ebp zUgM^TEo_rm8vJ~=;3)?|*#xmW!}d%(bwKiSpAuNJ?6HUj?W+mfQ~4H6JbL|b)C{uNvz^V z$~;J!xk7P>oBtt`#Of5%IETxPa5>z?y%@KSjd5JD@C_?N+#kms5$^p2+zxhQoCQ0@ amC}}JLlnM@NZELgpX-)3>ej>9tMnJC5*XzG literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ServiceIdHelper.class b/libjava/classpath/lib/org/omg/IOP/ServiceIdHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..6184d2d19940ea7800609df352fc294767f59ad0 GIT binary patch literal 1719 zcwUWETT|0O7(H7`LrV}SP!vSvCT&#$-ld3gl|ZFH8D4x~(y~(*OVSA`ivA@Zln0#g z!5`p{a{PAN(jhHMA9j=Pa?bfK&F?=ye*u`rj)nlkpyL({=dfUynN1_h-D8pG=Kd-# zmbj}S$k26Q9a~1xvI|Bgcfj)=Lugjm!kc4gi6?d$f{V^RkDvu%9jyp4bf$&PH_C@O z?(SH*B4>!EoxD}twOk?JtHz-BUK}wDrT-xzCBsfi6g?16oChvuwio7&9kNU6R2bdp z(GX?mFWBX(H{<5E`H|;}yvO%-^rDX;oE3JV$UVnq=<%V^k!nLf=`okmGi0BX{tJ?3 zrYEP`a6{tMOkoUSNW)ErUZ1$dbzu|lE!<{k^FHjAi;i7ji1~|9aj6J~F{)vNp}Rqr zjxmhWAPU^uE4kuOc;cAvd3lDZcyqK%J0)o*bi|RMDdk;md3?_*3hPM0?Z(sfVP~mz zb|KZoatZdOq_iiFo1?W6_7Qh!fBOBh=k1e}nb?hB5>pzCh9;0-r;UBcpjR+z-3-P} zxq&T~ebP8liK@2DB2H#9X#A7sT5^M9%@ia|DPTrN3bPCy)!-Tx?K(jO#6FFhRSUOhq0V;yfbq!~u9kfCEkPN-ec)HH@16~QomB~ns(Y!%C-GLm)5Zl13Q z`K9RfeHA8U_k+WrsX+cTdZI56of^FvbThhJlRwb*ogM;+&>2$3IkeNMR|4qnpgW9f z=&UBMkyZM7PtmoWjK-qZlcyLs!<{qS{dSHOMUc*AI#($B4Z7&A;Rfj~i9UsU5BICM zbCem7Dw2a|cu-drQPxdj-BJj#N)#U9u_`TuCwNL2VLZe0h62y<;;XN~cNYq*z=ZLV z1XPkol?P~v#_IJ{Qn^YEsDxK|-Gpu4&*ofUTcK9S%3kxA{h4yUTqrw3t$=#k LQe`u2tDNj#&Nh17 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.class b/libjava/classpath/lib/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.class new file mode 100644 index 0000000000000000000000000000000000000000..0e25b92131139524cdaecd9fd640a114c267c450 GIT binary patch literal 194 zcwRg8Z`VEs1_nb0ZgvJHMh3O~qICWI+;n|U{{a0ENB4L~pAgp|KgST)cu$~EyrYXt zkZW)-I|B$ctimfYmZcGO#kR0cmz1kBNZ;EXE0Da{&N2Vk4UX literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TAG_INTERNET_IOP.class b/libjava/classpath/lib/org/omg/IOP/TAG_INTERNET_IOP.class new file mode 100644 index 0000000000000000000000000000000000000000..d91405894b1d5e494476127e6ec054d984565d85 GIT binary patch literal 174 zcwRg8Z`VEs1_nb0ZgvJHMh2PuqICWI+;n|U{{a0ENB4M7zYy0TKi80Wpa44q3nPO- zR$^JAeokUuy1su>R%&tyBLiz$Voqr)BLkx+BLlBMO literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TAG_JAVA_CODEBASE.class b/libjava/classpath/lib/org/omg/IOP/TAG_JAVA_CODEBASE.class new file mode 100644 index 0000000000000000000000000000000000000000..4ad70a03c559fa84a511bb02370c1f6acdb9270c GIT binary patch literal 176 zcwRg8Z`VEs1_nb0ZgvJHMh4mZqICWI+;n|U{{a0ENB4Ly$1uluXMY!0C&yq{b_Nzk z27#=^vPAuy#JqHU|D>$c;uFPB5Db0Lu0v*Z=?k literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.class b/libjava/classpath/lib/org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.class new file mode 100644 index 0000000000000000000000000000000000000000..509b595a2692838d6918b5b0bf11a7b9c4149cdb GIT binary patch literal 206 zcwRg8Z`VEs1_nb0ZgvJHMh2byqICWI+;n|U{{a0ENB8(3U(a~w(BKe%-*{igi1^@; zAXi7@9Rqc7+H literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedComponent.class b/libjava/classpath/lib/org/omg/IOP/TaggedComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..ac20714f739384ee4fb9705e9b21aedb27c216af GIT binary patch literal 637 zcwT)`O;1xn6g{^eRO*wKS`@8HQ5Mh`Ukpo(i7lEu(^$3803~Ur?c_P6oguGN68ts( z05>j(i3>OG{2TlaCW%8cj>D++KHL*= zEQbv`x&+-ev-u|nI97)@pNa{23*U-8ZcA#Fv> zl!&l2xboH;3M&YyZk@33LTP1RGI4XOL&!ADQ09@wod6}=CKQ@V%XiapUnYAq2c@PN zumQm~xSlsN_LG_r9yb4TB|E%rGwRm2I*VXxfF%?hS_@FbG9fE^-fU6yu3OEw%`_Rv zH_GiQU(pp8{V!Hk4^EDtYGnF|~;GtIf+1ZtHFJg7arz@vXsB^Ch=I3BUHF1tDQ YlGWMRT+*Q`f8^0RJ9R!EdzB}D0jtn|V*mgE literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class b/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..cc440c77942e7da9266c5427546c57a768897955 GIT binary patch literal 3538 zcwU`X`+E~b6g|_V-6Sjmffgt&ly{o6ghCM^JZ#efu}On%E!HY=n=WA?*$tabX+`jj zJQNYc_gfH^PX(l@pH=W@|0qB2Y__j7p?vm--Ob!PXU;wM&YkH$|Ne0wKof2WC}UWy z=?TA^Vk&p+2S}LunvT7WVlWAEOU}so(Od68>Nl8ukqXWm}xWQ1dOHmbL z4};B9-^*YRYJ;*1HaJC;qk>^USW)H9Y-&K(d!&J+%-{}daVgm==?edC4cd*PN`_%= zcupb#?mUvFIn|!}N%vs1tF^`7L*tx4z==gzEWpjMG@)iKYg8ZTk~4;`#0_~+#1d38 zIJ*@!k(3QhWmsH*Mvs7irL@q@@oq!U#*K)~V{%|Q!>UkQcqiF6aX(Icl5%KpXVa$5 z4y<69H*L^~TC5VVl3__f0KpDLC2nV6h|wmCSRsrgcm-_XIz&hLyk#FMar0Py`Jz?S&%j) zXrRbQ3G9-KI?zZ(Wk?AZs^I6Vv_ zIJQ%TS}|ti6Ioe}=T+P43H^^4b}&2^pGbUcP%D6315=w=p4=@NR(~-7n?L&bW%8w{=lEPb7 z8nQxBGqP@QZ3~=Q)RC$D6=?;OMFHVC`j(a)lyw(6(8;SO%24N-1Ji}4(Ji2B)_x*B zB6{!)8SwOA-l(o_;LfIdp|kd(~I0w~ifX3lJFX^TY< zws*Dkgrc1e9HCMu;8Q0Lr)A!ZU5Mi-Pm;n=S)_{Vdu{uJa5~8?DIx`G*5xTh)pQ0H z;*--NPJn(n`C$~4vKfk{VLDLHQC&Nk&qL8s0ihbWmN8?1UFASz{qJoi*~=nIruI&P>Zv z5f2wm!|B3nctgPJ3~T0IQN){gi*)BCWBId+E&?GZ0lh7v5i0*WFJcESP`m4I<>2p# zIE8m9g`WP_`jCM4DCsj-inMffA7}}?a0yPHd54p}lKf{{z%|-IW(pLIVwjena)t9^ zSobJOQRPsLRECQnaa)RR4&kDtcxyYUD+bMOFPW2Q)|gsq&ZhGfz7g;>6~rT;iTD=Z zF}O?$mg06#C=YW(#OL_lQkMEng=WsAef>y83AS6y>T!9W!ka;L(fijXu9$r_onkid zKY_mJrbkbKe);Lm=w0p|gX0c;l)**M3UhEb=FwBkJJ5SRy`6Xr3#`e%(vyQm?qXp_ z`CoMF@w%6}tG#zolf#-EJQ1I5994bph6Xl+-?7uZ$CtyC zw&F4PYu^+sJi3ro;5meIma&%%N4x*VlWGlK%qIE>Zju6_&gA;8-JI!X~+e`=t z2-Qi}r!4aAHFX0xr{dm==wh;8l5N^x}{y<9s}eK7w-MIrLkQ zXNUmTW1TmL=l@2>J-m23JdSvuTOLCq(%?QeisKCwq;{y`fvKvCurt<*)ucLboJLZ# zszxiOQA2HV4fM(I2-{*HVi~d+B9tl;cL-w< z6-vz{>kWj>F&(%;mLJJ-i>{$RV?BO>k1D?jx9LWDcN*hn+{6#2=FJx4+DXRiCmA!s I;^P1GAN;|Hc>n+a literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedComponentHolder.class b/libjava/classpath/lib/org/omg/IOP/TaggedComponentHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..f204f615b771e1cb6fe89816df5431a980a533c2 GIT binary patch literal 1235 zcwUW@QE!t_6vzK}qeT$6x#`sEbaR^nswKw9nZ?;St!Y+co4)Bn+Z$w|KoDm9R+?yR zeDDMKp^WDO=_+w;AK)G?=luTXoO|x?KRf4iIaV-qtVZjN)v+Ci59+}% z41Dg#uL5ttBN-CI%Bg*3Tb}JZR;zc)`>~AjL~ySW~AX3)32t{u7J zJKvPz5AH{X?P+RRU8K3GPfg0`Dqy&#LB=HpP2}ea!L**z3Dr1Y*gIzwy3p{$B+gnv zC>6JGTSjF@%efcwNW&d$P%W84eLjU5{Vln|nPF!h7#+vSr^t<|PW?jlRuUHr+}5yz zT@uTKU(6Rg;}j^HAa!Thor@<>q+{DcFiBqzLK$kC3>s00tb-r49jF` znG;rUl~w^*%>hT`DSTA{Fst9Oc1~F$ao{CU8Wiz5C9P-PIZ0U8DJ_x2I&S35!hH4%cK#^ UFJn?U-QyG8lE&S7lzP?v0%Ot>MF0Q* literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedProfile.class b/libjava/classpath/lib/org/omg/IOP/TaggedProfile.class new file mode 100644 index 0000000000000000000000000000000000000000..d5b79013613eb3b6fe4186555fdea771a05fa6b0 GIT binary patch literal 627 zcwTi;%T60X5Ulot1!sf7yh5A=^EiNoSRpP*M3Jybq>ZeY1h7CHtg$^T1M3~M9wWhD zaO5*`K#@4`0r{g`qV$d(MI3V2?&{v|s+yUfzaO6fY+}VhiZHL^z|-Bp^XvQGp$G!m z*^l*^3Z;V#Vd6qu3ojH=;MH3fvTYoU5K4cSs`YP`UGGZAMzlid`FpjGkx}Nx!6;$c z?kepa$XJO`-6k_k*|TLs#yzE@BY%%Tp9wFkI_en_nT81aGW+Yk`E|Q;d`Czd5%7pl zaIXf=njK*TA$3|IjJ#KoG9P$sb*(|jRCPz@kjAWw0;UN0nu_F?ezzs#!-0OGrrRtp z*aX+ZX2zVW9-&zK?{)03)~bJ6S!;}e@YcmR@(EgSF@Z@!Ry3{AanXEkGk2i-aa(>; zR{R;~Msh>^6zm=;WZ`grjWOi7^MW5K1(y*EF{VVu_9!_S$7!y%I1}e=`3Gjc+uw5> zbDV(|GU(tHBX=-_d8UUYC=Llucrwj7pAeLb4|r2vf55wcR0Sph6vs<;7P6bJr7R8B UhLi~^@kbUdveU%pl4V)`12c_#F#rGn literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedProfileHelper.class b/libjava/classpath/lib/org/omg/IOP/TaggedProfileHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..17061d4a1d6b704b06944f1d76a7f4f46e5a113a GIT binary patch literal 3718 zcwU`W>wg=?6+L6wUP)|9B8cN84&;q2$yQ9#7GemsH_&y3cwElW;*)d%g)%$;-3J@?L?{r7)9 z{tQ4LKGM)4aBtDhMT@h!XgqZ^I&S20X7;FEoU!ue5i?&hZ4Ipg>rWV`jA-5{2N-!%AS&x6@@SP4d@s|j5%H8r;1Rqo4TzeOw|!xUd7F$U>b_{w176N40%Ae ztqCO1He;E22G`jfvfV0_O`ENwuf7@w3TKvbx2gd!e;N{NcB*1NYubJcV?O5mR0 zns|PE8)F(qSDhj<(J_wiaG}OF%{WbCw$`ln))OxkZAUIem#q3_H}n{VGpjp`3{!PH zgCcBQgCK=B=N#LReRkE+l_=e7Y?iS-rQ>O&S=KJhiYWH1YM_n6@KH@e$22CH+*3xr zVrpQ1x31hdI53n>9X&icFdk2hcrnAiwSvudbFO5{#_LB0$7OOXfsG9+w|m0#SPVWN z&GI^C!N%M+YZZ#NfQZY@B^@WhkxyPbF{4suB$4GnKNi?|Yi~MUz)z{TB$%$G%`=%s3PQSHsp|Tz0gJO{7!G)i9*5w{*OTzcGg3)S%q<4$sd@$H{@wu_FTs zKi-B<9wM)gZ+ST^Nq~Rocpo1K+)?A;irE@eXjj;!RIyt{M!W1Jv=8X@Q^r?P~H7+`)gnX29ns~wom!h6$*3)wuG*stBRdf z1e0OU4RlNfA`!8G-m#E}OMPnTKr-B_mL71IKE%Pmp>P%7x^k1mUOEGgpcQexCFyts z8~NOf6z*f6K7di)?_-MOb`p_xL$r`2hj18=lICVwJw}Wc&c*S#OZ+fxTlicTx`E-z z@B)%m99@duuNKpc_!$M>Q8UH_jwuP(;k%e5ln+l}%7r{j0#b|Jp(>vI0>jtw%$39q zWF`aV0&>Yn;KV$hjWEFCvB>92Q9rTEuE#A@9LRH~K(8fwJc%yY*h!1U@QCd)(9wws zP7$SpqMXK@3Xk7NE|*;jAMgauEU8&b=~)HWqBQzGe&B9+&m~X7&rL4i`9zpe{BRyG zhQ7qP3)m12eSvdTyfTmTmk?BopLjX&JbVf3!`E@Xi&MWEf1yQm$58w*z<`F}c1-QUs vt@69#BNgTWo+nvhS8+{cD(!~3n;HEVuG33|9_G2j!(v?wT@Xcz`r-co0ertf literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedProfileHolder.class b/libjava/classpath/lib/org/omg/IOP/TaggedProfileHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..db3eb5f86834f7d5e728d531f95b3186e9f676f3 GIT binary patch literal 1219 zcwUW@-%ry}6vw|8y4BVS2#N>_f*@_DYmAQ=;#`8xERMKkZ$i55T1&chxwaVpD@`;m zKKKXtM;Xs;>%hh>d+5FAo}TkLKkm7|e*gFh;4vH(a|~Od@SL#kIkm>I({eqJ_l`yQ z&JXy@Fz9iiLSa}sbI)BTa0i~#=$!Fxq@u{M{nxeHc=NpC3_}sQoq#*dNN~3=MTWw; z8^pA4)F;L{U?@KI2Yz(OFmGCI2BjMIxQ=;TGoV3dSgiX4{yOe=xM-!^<$Bn4gSIPt zdCrtd^xpqKc}O?ot&gzcL$tYF`V!G-cSG1x43z`ce21)o4zP-H4-narX`E zVvmAl&ehqRr}m$62@_+6y_sn8UZPJ!3cqezIgb|UJ3AhK?PjDuz3|G!tri@^J T9+QfRj$i7QGVa!+#H#!U!V3%~ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TransactionService.class b/libjava/classpath/lib/org/omg/IOP/TransactionService.class new file mode 100644 index 0000000000000000000000000000000000000000..2ae3b46827657f79fca4b5b09e647170b54f3797 GIT binary patch literal 178 zcwS|UK?=e!6h!B@w$+N@PTY6|gJ%$gt}0aAe?tf@HGwqk;aqqC4<)AAx|*5C@IK$y z8^8(c0tw+@ofh_~MO9zL&9NC+`qr98xv7<^z=E*tcw*7B(V~8IN_s*zaX%^oRfNsi tn!&U2_nDwyeq1De19*1;gjz{O-)! z$`A0PEPIAckR=x6VPi$`+ZIR@ZsKXXv~uY~fEav?r2zhDgRK@)+6?)zN`YhMugj z`C_fI%H5o`TILLWS*Ku?^Oh^*cW@c;*M!F~oZXj5nnB~AeAklM7*IM5ggUf$8cniSw}yPF&qkFy!X}|*H`pS24*oFZ4r{8O%xgW6Upq31g7s2zjPM{ zi1_?$c9JmT65E3N#MiQnH*k7~gixJs~ z%Pk^xAsnkp{!&$A-mcbsV#%$F66FGt8WIdc`}^xiNtI$UMT3DRJY{1TIY>syb+byn zJw>YR_RrD19F(*MQe~)Q*8+nC6v*HiE3~`ChGP_0ab3eTYC$McWnk1F5TmtIT~4B#R(;!n_CvHsaTq;&z;*O~4uNNOf#W!?z%&^FcvxA0 z_P$eJLeQ*&wkg1AoCyF^bR+LNQv-FJ-QgNjw>e7kT;bx|UO`HE8dAxk7{O=@=3`;z zZ+9`jh)asdWsC>lRYa66@e{_YZeAT`!8h7Zkr-Bj!nmQ}uISZP(b87|zTnEtN9U*c6z_-j=-!yAQp`xk0! BiVFY$ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ACTIVE.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ACTIVE.class new file mode 100644 index 0000000000000000000000000000000000000000..f62c2bb64c55acdca982392095abb7e6cec24334 GIT binary patch literal 170 zcwQxqK?=e!6h!A&+h~j6)~yFHcmyd5T`5$$PfG}vm`F@}I2RtkLy2iz{rSVpo6q<4 z2CzrLkPx=kDQ@qIU##<@)v_{Px=ud4b^K6XtLDfsC#-uh3a*7w{M`1k^MrI1dXNOF w39HhYrx(UIlQ#G;6#mkdF0JdW3SRIEUfQZGc$a#EBDzwj0@g<+Z8K}M>~@wE6i2BGH!Yo7Be2ou58j-pO@_+m-)!R?_IrHj$jp7q;=` z>e9@#vqJmYQ7MC?IA$ToaKiID(P=fTFNt*(%7zk68^ceU)@I8j% zcs3@CER5l@g-Z-ad;HnBf~zF$3ANe|<(gD-L#(O>!$iJ6+ny!UG6fq&T%%iTgn}!v z%3G4J8@gJ)H|st-dvNb5N_`ZBb!sc=uZxiS>qOl4w7*$$3$-jJaMQwMPZ8+c#x2}t zIMC&YikZs0x0DJ0SHj!=?SmQTWGDD*D(8d)ljZ)DFO0)dH#(78%C&fw1vPUtZS8L>AM531GOq zFHJJJ!CM_NnOzP#RO~sa-@u0Wwj823@1;TX|^4=<2Q^W{rs&bPO6IzKsKPk+Fsub{KTycl|xP z))uDLD$CFQD9hVDQ^5p?%7^ahnS0MY_w?!J^OyfW0+_@z1tEqrj$7B9MqRt(xSmn5 zc)|9#Tjfp9akbf+(WKR)(clZ*YI0XWgkjeURSY4@uv0f}zSwS5xVtQhFeG)SYFK5%HN`r38Sz%l7K5h$6sbIe!vFSM zLoi9FH-hvmv0FisVYDYf#U6|i#{hMOQn=CZIi5&o zwp3^aB(-i>Ucp|5gPY_0!X^IKf@9UV8%GMisMwEjhM|{+)h6)WeTXtJgTC}>i@vNf z9MZQfLs22K#;}KY_h83xjN~rN>r<3JA#lE<_|)XYS=w&XZgH2?&h%5ePY;=Lg1S8= z+>mBSr3ZwJBC8^Y)3hgkg-yzz+*+)k@B)TmLWPF2!cc2X%G}?xXUp_nm{i)}oQOWp zFut|GMwB$QX?u?Js39D`D%GVml_q&F4J22vn{Cf$IKYTgm{ySA#xK(5Dt^ZwWEE53 zF&zJqdU0IARRyyQd+T;Ph%CC5CEgf?8<}l9?FHtFrdyd^}H5!QIbu1{j(Q{g8 zP*K25x)!Qb(&H;FNqfbs3PB6o2+yFaIE*7PEHVs#V=__fj*7cjqMIW?H7wI;Nzih- zSHnJU2JPga4|I1qZiSSnI*q1dbDK2YH#m6cm1}xrt^B}!FSfnzMhr0g6dtN5<39Px zk>PZ|{16^PqU5ycfL=Gn(Ma`NiW8z<N zBvrb8g556=w~hzh&i!q8LzLcrvkg%^!eiNSRQ&VEzMjaOr(Xd_Oy+_B literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/AdapterStateHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/AdapterStateHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..31b3082dfb77c708b0cf6f476826f8647ef978d6 GIT binary patch literal 1793 zcwUuMTT>G;6#mkdE-kA_xv6;LCT&#~yh{;{`7K_M4B=_v3OU0Nj3;sop|rQbqX;5m zq77k&&Wv#Ra&@-=Hn*5+#{h%*uh$5!;-@+h6yZp3X*`%}?`WjQw zail+tQ3E3kT}|dp+{PH4P?5{^vM;uU6gzxf7O1B2)@-NNOUWcmByoq1ui$gaVBIMR zr=sa{@#d6UtenDqswg#(=jW-Pgj?aN2K|k;XWhM&oybKof%^s~n~FgDCLZ7+6~D%D zSj|w}R;?Ly+`Z;=Rjj)G9ExN%gTX&b-%+jI*UCY{RtBa`JO?%Xg?jLz6kP(l9WSZq zi}RT&Lh4&~RxeLYj!%#Wsx_(Nu zq1QH{_8CUbqetPpzL0d$5~uphR^>53pVT{K4J%|m0Xf$g9^u0je2riFwb#3kOH0Wg=!;!V?&I14h7J(_dPEjOh{iOH^E7`& zZ`Aw|afoJj(W{B?VZ2T}L&$)#ksLUHb!;oDSC>gPs~P%gQFw&MI=3*M;3;uL@C;K; z86F_@r6I$QCo-(jMAWla2M_BVAQ*dboKFp!*U*3l%wn#ETDnoKbV6+biyHiv>ewRf aOk>)+g!z0T?e|#K?!vHj+6-$N^WiU2NSFiw literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInfo.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..fa6d2cb5423a7483a6e9e9c61cf3d09c08aa7e1f GIT binary patch literal 321 zcwRg8Z`VEs1_nb0es%^XMh4ydqICWI+;shb{GyV?q?}aGypq(S$ck__@MNG(b%$;{6y zW@q4FWDtRAcJ>c)a)cYp#mJz5DpLS8T;J2h$2G4cv!s%pfrpVn9iQb$)-p111?QIn rCEPM|QW+V$qB5rFi%3!|5J6w-=9O(943q7U5ID^Asl)sWO7*|{ds2HqO_G?|dY1fa9 zPv$CB!)B9SVF%rA_Cn8ureXD#*ibTzgS7h3bmI828Y6zD znpcupQpw1`6`WrRG}bLM oCzX*w7MG2BAfE#L#>l|Tz{0@Fz|O$Qz|8;xj10U$l8J#20I}?8^8f$< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..3f48876144657f0192d636eb5dc4eb28c84cfae5 GIT binary patch literal 497 zcwUuJ%Sr=55Uh@gYht2_KjGux5U+w4F(3$$2wr8fY1a+o_BuO>`fEA(0e+O&YghC+1dsuw%#9SzsS?9>kkVmvRtnIX}K9w65Mt ze(7$PaI#5aApX_*$*9`c@f>qHXZ4V~cS5h~xe{HOk?_Qx(EKr-i*vgCPG+h-NF5Un w|IY8Uj84NMZ0Tv}$22t12s_#}wX5sfQlza&8Fgok*;_;Q%UP|vde_kV2Ep=S(rUwl${49ELx(WV#Z~Y^sFX)>E)#d{ z5$1p3Q7MhEnN}BuK4J1fg6OzjeKS15^!HUZo;=*_x5{SrM(|F$a{jxlkOaSh7j-w+ RhR}BEf?ibL^NK8S;&!Y3cI*jTJsD1 z0qO@oYX3lV#-w9synJ%TALaO-!-ji0@L~6G&Ur5HW#51Q`~439OZZZOhaqa&^@P=| zC$=ox(W?!fH63o(c+0WuM5b-q+;rA?qs46nK8EQ%{gIw%=w>}psP6Ha!w^_DOv71W z@J6C#24BY7dNS+YtZVO`r3?*k_36CN`83 zpo11+uSTL>Sf)^1O((W#Ul>V+a2^*FXbdmZ&9-}5u&YJB@7PAo;kzm>;u1rsWSI2^ zcPx|P!VnuhQehB!~1KWKdk2VZ4M_6uiuEeuPiO9Ila4 z&E~qpD~1U2E4{`mPK{wDGRi!4<4^oq)I2A32aRaX_cx}W! zaj1wO%5b)$Q#t8{E5mY~gOq3tuWlZUrdIfo#n%abVq0O&F23kQG$Onu z6}Rvv!<0+d4dn7jN4b%RHh5dbJ9w9}Z0fdcJ!ZIbTG$gA3F0>OeReIEq??NZ@toVq zrNx^HC?^aH-^wD*1nXF{|psMx|s4F0BJS~deCD!(BtFkGL+B0-vz*4$Wm zI`u!c4Tq*u{?vdAZKp>!QNSYe0ZYRAKa=P2l95MxqfJJ_C96$@_Y66F2WIG^sIl)F zHMJMw7ortSZF(y7FF|icZ-49u-#9km4Kf?8%ZdmSakXlaSW;(YJLtH8aNb?Qi2w_oL z7hJd85Q4EI+!niWeQuI&c^U4^3jVD2ZP~L%Yw^EHYS=8Xt5udUY8S(YFJ2 zIRW3peHXk*28C(u8P<2S508<{#kKrz*o^mVP08AQN9*q~jUW25t)Yk#L@k2YrtFDq wm+^_q{VCzR1Kjxq$-OYl{S&Q!ChjMad#-~b{0<;jpUFy|sCa1oxn%g_f8;d^b^rhX literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/CurrentOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/CurrentOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..f277404f84079bc0238e5aa2ec5649df1cb2fb2a GIT binary patch literal 386 zcwT*wKT88a5XIkKG#lf;m_iE+OOrwuYpcs2VL@_ofwadaF2{v+H|%YKel?4H06&yC zhbSBoiz(hP^M3Q@Cq(q4ta z*^*1do1zWl{s^yDA({*3rjwpfDPY941_#Mfq1 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/DISCARDING.class b/libjava/classpath/lib/org/omg/PortableInterceptor/DISCARDING.class new file mode 100644 index 0000000000000000000000000000000000000000..a17951ffdcaf146347e3f8753bf814801dc84eff GIT binary patch literal 178 zcwR+~K?=e!6h!B%ZL}h~^#U#p9zj}^Zd5FEpO#Q8F_D<|a4tN6hZ2)+T+J}dy!m`z zZvZ>Y8AgPSu?;u(hF^?zqEa%~PTE>NoUuI1i*$d@^3#!FLRht;7hDP5@N?D5+7Y5& zs7?~7AS_a&pH663hHUIlJU=N+=W&Od@~!0`xDBk>4-txlH6p}bS(sruWV691KUXIx ASO5S3 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ForwardRequest.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ForwardRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..75dc5b3e8ea18bca44d48c10c4a6ccb228b4aaab GIT binary patch literal 849 zcwUW?T~8B16o%i^57sUfkdG=LieE{)C2kCt7!xft)@(#6-8+NZGL|7_2WO`u{sJ%k zD_$596ZPKzn>#L)#|4eBUwR@rw z8=*Vm*eLDSl|G5|{*HLv7m0C@BP{>c*S2>aJ@i|N&|7bxTUM&adpuH&W`c0!{+}#*&v=UlV%huFY!orw) zm9PN9wIZf4&C{G5oLZ}Y$q0pL@BCR7%l~ReaGR>n&g;_7H#h42uI2J4;YP?H5B@7y zLIE!CO!D{1pvW0J;XKP3KP9iTT&;5?j(P74b01Ub0qIbs!(2Y<8XZD9vuL!%T|5ImFkwwpLv0 e&#R81zhIMlJnPGpUK*&+>2AujGu}$?-TnoBDz;ky literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ForwardRequestHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ForwardRequestHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..1586cf727645810c4db4ad2b14ef825324578404 GIT binary patch literal 3204 zcwUuOX3>gQ-sGuTNaVc3OYPGh;E)W)}1F;aHl(uvdE@5n#iIWLSZLQVr zo7(Mn*ghJ3%G2d@e^j5IJ2MbT!j=y+lY7s7&w1Z-?z#8h|Ni(3z*+n%p^o8zGWa?|qYVCpImKo85KyoK^$fdJ-QYvT*)+FO!Vg1GH8WanRI_yP-y8JX zGkSsHoVwk(;$rP$o*)i&gjQE4lEd9yu@sGqc;W%PJ68;iHtYdq=WL&~!3Gu27QP>Jz0qw;-F11M#g=@3!4m(xJGVeKym964p3;Q%< zvAX(&CeAk1NU`X4BBr$Q1>4d@x9F-Rb!a(@rKT`)Itz?vycvF;OFLG3>9gxk952c$-?*QNEDpqKAnE?(q>8&bu{Mb5z1C!{PEwBBvD!39VrFu5=ly%nV;(IHGQ3C3;0#BjRo9 z2DzlxCr%q`n3u?+Q&?_Zdza33o}n#3HAL{k>u#q3BVV-LQrm86&tp*nQEcBFTET}R zNjpU}lLaSF5yAlz5*01sCu zR%AL@8S%=FrdC>SI=Ix7w#14-9x;nVqfZx|>|m|?PNyh-|1mn>eGos1zUZPwPl^7; z=*{T8BfNx$-{_+bGCk{^!8mr(Q*jOG-AM0%xQlp;ZF&mOQ@^9>s{c>Q?Nb~WjQEz( zJRUq8WlK0R5`Kzf!IO~^o`1B8-b`pf0)F%mULWE1qZL;iZ$}Byk9M5Ke#cuII-MXJ z>7sOoZliTHb`CFi5%iL69laaF%Q!zCS;C7Yyj-RsJCi92{kj9*>>A@WyzXexh%R&! zRDgo%@gN^kaDvpua0$Kt;QV6@JW`jTjxS?qoX9-IwIz%O$4i(fVR8xS!Duk^1XEGs zI5QUg+fhp6CL+(U|0^tZzJB%TV3z%7DOzym(#Ffc_Nhl#wI**$UW4f1l z;T?DI0bkH63+kq;;K0>6ve_tl3&vxKF#@!NrD5qkV!}2~^KcM<~ W_zZFre#B1>rzQ`X;b&*vFaHCsn@i;Y literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/HOLDING.class b/libjava/classpath/lib/org/omg/PortableInterceptor/HOLDING.class new file mode 100644 index 0000000000000000000000000000000000000000..d8523871132d6fb958d75d3515d317955b04afe6 GIT binary patch literal 172 zcwQ}yK?=e!6h!B@w$ZBK*0pEItiWgNQYfnfzp<79y xk}%&|^Yp^_YwyKj0felyZD8$hI;3WQ+PVj&p@nz|Es-D%mxV9Fc%8x<dzl$-h95V zH-H_M3=v^to#OVc_{BOe8ZArXrEBHGTgS`OzPOh4fni2ibz%@)3#0hC>168($slwu z2~-jC!kVWS#@C}4hl!YwRkjbX<4uQD{>N=cQW|O)V}vylq~WsgMVL?CV$#_Uk-;ZR literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/IORInfo.class b/libjava/classpath/lib/org/omg/PortableInterceptor/IORInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..3993e938c900ec9e26918c57610c9b6434a9a308 GIT binary patch literal 272 zcwUW;NeTin5Ji8S;;ah~Ah_1x5gegGh;*MIN^Bx+(!?m}(Oh@{4<#m|3wPF{ps4?N z|M9%t0gTb1C=d*cO_@2QY;CL)n@mR9NxPM~GnPd>j`Yq@lnA|s zAsGIF^ITftl+j0uDnb8?%y>MVu>1qEXueu#r`(02PSE>JeU(lBc^6TJCDJO9scWDK h>WMjd@lu7O`B9HT*4HE`qJ%OiYG@z~LCfy~+AryDOUeKM literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/IORInfoOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/IORInfoOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..72e5ab20d76a8e065d0fec0585bb3e33d2cbd6c6 GIT binary patch literal 623 zcwU`R%Sr<=6uqhTVSTjqQ4n0{Zo1IHjV`*Q9AG3n{Mzj+N;y1pIaKRWvf z&0I*4P@*(qu;cVNgX-Lr$>=mD!dNZHXIQq;-KzD*Hdn+a literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor.class b/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor.class new file mode 100644 index 0000000000000000000000000000000000000000..d00eb2eded8963f0afa0f9779d54d3af32a5e8a3 GIT binary patch literal 397 zcwUW=NeaS15Ji7Ewex%ccY+HW!3#J-K#1rGT4_Q{Ooz4=^k^%4qtqiR;+;LZlks(8<@5D)PUj!a^H#@nt z3^_vQLz%d%@rZ|S7I&tLSzwhtGvo=~pI%9$B4P07u^UPwtkS`Op-dS5pC_rT658Jx zKI!Vw=9O7#zLrJ_UtMA@p}5w^2sKyn(E4WgV@dQFLK-<_!B9X671R(Hp%L{Inop~% Bc$xqJ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptorOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptorOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..da1fc220df4e4b41c7ec86c58b3d92b988b328a2 GIT binary patch literal 288 zcwRg8Z`VEs1_nb0ZgvJHMh27oqICWI+;shb{GyV?q?}aGypq(SR%&tyI|CadgCSn?uo=e4Ad*@PQkq$u z5uco&TacfZnpXl8*3j@F=(x0eYt1l52Cm@zQlPk7W=<+2gDfs*>w#PhbR#1JGZ3=^ VLxBq!uNXWaj4;vomloGAO`w zJNpMYIqDZc&CvIB@o~*7$t3poPkmTl+z+&*njg*?5R!vR( zcP1OHSuM|SGX6B&!ovS%j>5DBy4NB^6B9#`&=k!JPGK*$V}}Gk!=8*@a8?s$a)ReA zQ%hMqEn_EkF?c66J(J~@p)>4Q7mXfaA1H*3R_tYH(9#S$3AB`$Ns6Xt!XE4+sg;a< zIDls)9AwyD5n4t&ItVmna@FFBCOogHDXv&4hQUB3NaajT`Lt7-p64cQ*=S&$QAEEP zt~2rB?r8~!>#rpvo93nuhw!YZj{w8*K>f%*1ko#@ry_?WM88#)og)Fc!^=(G7*`ICB{5>nG7l^we!Us z7bnSw0Yt9bjQn%gHt}{`1y<|2bV-#lydO_0-lYzyAb4Z0oILENRv=Ys#`FvE(TO*5tuO<$+d)BVTr|3GiA8n~C#TOY4#y7$d zW=WOW#DVw*DW!h#1`&x3$4`?*pRn8^M3BHD-6KArqgA(h4_<3nW7dd)L^e;qjM(?KJ3Oqm4paDL5y6wpUG}BWq z8qmANcHe@nj`Im8r2GrE-N$Z!+cNeqt;N`4uSO}>Fg)~bwpT=iPINgDM$l-_wFFmj zXr^ZcN0!lDqT#a_69heOyYDU<6YG8(xP`93$0(E+$B9faoff@hc3SK$a>yQ41;ohEQoIT(Bz!oQ@#U0E}A`4t5VwY%ig;uVTlq6jbQ#gn; zeO$TCB}f*8;&Aa$g2sp`BimMD`#OzUX*_{Rit81ZONU>VjR?5>Q>9!L^PMZp(KOCG z4xf@7F?TBX51QCg@NZoB8lK=oTv!TH)_=#v27H5-Ra~9%Cs&YuKudfX8In9NQo2xr zDQf$GnBOAE+obJ7_;H7H-9>;3wjcM(@_dR2y+!YSqGKX&=h<4LHSf^sszR$Kfi{8# zz9j-CY1MYHw+sc3oxb6TSb4u1j8+_wF-dmr=rLwB^kl0&xK5vuM mqW>US3lw*dO5o1=Vq2w+{IiUUoAUn|V2{EM_UE?G7ykp{rG#ey literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.class b/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.class new file mode 100644 index 0000000000000000000000000000000000000000..c5f0a77c16bb25bacf19220ee0ba91386fafa07b GIT binary patch literal 1371 zcwUv0&2G~`5Xb-9Ix#V(EiDu%6ezURP9QD{;u3^tD^&yqg4)V(3r@01T{*U8)3HM+q9kV$=2cn|RRS(Q)c* zxfygF&vqhLp0i6uoVXtup5_c7&7Q)j896QMrdSf7D>`mB`o1G?Gmt@0S-u0>S_{Du6)PJIc0&I1FwkEB#YMxX*Jc(NK(2= zVaXs?aV=x+X3SE#GQ{=&kZE8xnYEqnc=Eg$&?|=Uq+;2a(6OTEoD@#M~PPTFYU5O;Q#;t literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.class new file mode 100644 index 0000000000000000000000000000000000000000..63fa9892a4f9c31853feb8c160fcf072ae771ec6 GIT binary patch literal 442 zcwUW>y-ve06h=R{ltB6G0viKcSO^FPM0cb}NI@-PVX)lvHcge-k!^T5hCTofg}4r? zKnxLsePw_4v3>mU`Mw5lg`)^Pfm>sX#MDLdXslPWic;;#=G1s&lQf(B8p>;VnKfjU zFO7B)wgg5i^`??a=_1KyE6RO@ZGoHrGk1?Cbj*yh*>aX`r=R2Ffplz7V2>uX3k>^e^L*O&a KeL`4-9LWctM>whg literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/InvalidSlot.class b/libjava/classpath/lib/org/omg/PortableInterceptor/InvalidSlot.class new file mode 100644 index 0000000000000000000000000000000000000000..dead3abd784c22048c26ebaa882342022251e33b GIT binary patch literal 598 zcwUW>%}yIJ6otB`tCWt- z6V%m36w6j4*49IoF!Ku6_72vn!C@lI#+75GRvz+%+5ds_zGqNh4>y#R_S(ZBVeB-z zhytmDhA@%?x{e_flXTk@CSkwB`Z|HO2%l2+4NGO%q?VKG6^QV_E8tP*Xh&YD#{llz1kqMz3e(+DM5XKk6 zbc8rk?Vw?eRPB{=(`8S&>=Iw;^5oj(y~7B8LwDGAQ>HWjW4z>Gei-gX203_KO=Ac? z>o7lA1_l1e4aaMdPnKDUHMe++FE=Ujl~C;87~`tYgD{Q>R%cM^8&sHdY<}_Q cEhgVOY;n(a>M+rx`VOv|#!MRiE$#XK0>d+ek^lez literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/InvalidSlotHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/InvalidSlotHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..f697ce5166a62865f9f26d7d4e3922b4f30884ee GIT binary patch literal 2708 zcwUuOYgZdp6y28qlZ261f!0zgk3I-cLVZgrEd(f$Kq!f+h?-8q7zUG>IGIrRqRStk z-~1odrO;)U+Ry$dm-|je0t9FZYt7u5d(J+4pU0j2^Y0&j0l14@1x*5XEIS{ziuv%G zWjk87pvO!{w{v>QvFvcn+|>%kRpjCX zoEZV%Xecev9JRLeAbbd@XhEw$N8B*=)k-m|+bJ1DpgV5mv_e|54f*W7Y<9MdvOqZg zTBIV44=oYw~H!I$5!p^SiWydyhj=rU$2fYG; zq+#X@x?`CFmrkMa5>arOflj_pI(8-Jtmsl-5CU(ixQc#(CSyyWhoov5qbcztehdh- z9g`BoTNqL>D9}|GQ^hbw$R=m&nxkj*J(&r^GBZw2U~{w{z5dN+{CvidbCbq;T6R`I zDY}L%&A^2~Yy`tB>oz;${^%*gS#v+qXk8$OrX6id$j!vD&btio0`)e|b( z(Gf%lld{*s0#nBmlG?Vdr!rFHJdL4rki+nfg175ZPs%FZ#e3YS%F0l!t`)1zdh4{p zk|!!$vx>-R@M-3LeJ{y;xE-%CTcL(C!(!-rj;+b5n>j1TjYCP@AFG(beU76CdP3pN zx^X&7Vt~1yRWXOCKnu|;^z1#e1PT@eZZ}9z!9#)mli}xP=QD}5h4tA~EV1fGjKg)z zV^H5K>2i{TSj4jIhB%p=F&?3`?_m^y0L>CA*6@hLi-u|00wN}zlPXg9lxKlF)uLLZ zOi2@Gw^isIrH=)!)pnu=6E6xM)I<*H-uCG}?Gos|LKk!Fxa+z@GCOnrRR8{EE(H-=FA1w&5mj5jB9@81>MX7*nEmj=ex=WBfVB4{_%JQ#F=B zcRxu!sUuX{<9&SKO6|ml_{c?_M#Mw?nQSDV(AWX)z2s3m{u>^=#Qd}P3oLGQFCF5O zm5J_^-?2JD8S9TH{&wYe5G?J59fqIRCxpvzrEw?6pBp;**|kH+Q^K}OXN(dV$fM)u z|7X}BS{JV1b8K?e&*Xf8FNqtFKOsDdBW^^%*Zoy3i`9yhUEn4+XHOWq>X7y{by8E7 zI_5W+s{G2t=^A{;jDFAc4=&1J)rVva$ojUC!VVGJ=`+W?NmAdS;Kg{rXBpQoOMHOh a=_>q4tDlZl!4I2k;jZS~DhN2PPvt-QBCv7* literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/LOCATION_FORWARD.class b/libjava/classpath/lib/org/omg/PortableInterceptor/LOCATION_FORWARD.class new file mode 100644 index 0000000000000000000000000000000000000000..ed8d473c31ed90d9c6de2f69f4b2ab4b00969bba GIT binary patch literal 190 zcwRg8Z`VEs1_nb0ZgvJHMh2byqICWI+;shb{GyV?q?}aGypq(SGW1{OvJfvm)`ME#t^ymWp4q^#8B5=I8rvc#OyR7M8IU`7UB=ls0l zlEl1{FpwBC&?;s|2Cm@zQlO!3nK?jJqUgrzflOorYG(i`XJn9MU}azf((FJU69WfW Jj1$b}0ssvmEKdLc literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/NON_EXISTENT.class b/libjava/classpath/lib/org/omg/PortableInterceptor/NON_EXISTENT.class new file mode 100644 index 0000000000000000000000000000000000000000..aa3216ccdd787f21c1de12881a922a2e5eccf996 GIT binary patch literal 182 zcwRg8Z`VEs1_nb0ZgvJHMh1=iqICWI+;shb{GyV?q?}aGypq(SEl~uHgJqpn-0gIY3o{$VTdcOk)FTWdJE_8q90|!`)6U^oU E0A|E0DgXcg literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBIdHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBIdHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e2c94b8412b12ca157cec4396509e51e3c3e076b GIT binary patch literal 1753 zcwUW^Yje^-6o%ggN(xPHw6)rL>rF0I(t52>tMq2ESe&+lA8UXeOot{+2-W^8^#eM7 z@CW##9M3KpY9Wm9VK-UM`|h*noXzh)KYsyOMP7lAA!^wb%{r@S?=0KVi&dUA9d4I+ z&9Q7Pf4G?~@9}Dl+X?~V|c!43XWtDjteuPvE zAjmM9GfaNaI4g4dSlBZ}a#l&N7IfPX@9tv2`DoM`;<-L?(zLT-*11gxu~=KRMIjk2 zV_u|lm#9aMZJ3pGyb#7XCKN;%#=8V6CNae@+%i3>OAW(R%*%*@=?oJd+sc#ZjyPqP zjzQs{9a|S^i+VA~yEOv&mWtcB!!Y8i+i;UH4}~DOs8LF1V)2eWj%i)gCmq59mJ}>9 zOjpc?`)}SZ9&%w_a(G$AJwzEoM`T&$j%9Wqmj=S4nyE+#JfBe>#C?VVS*9?OSW%#L z<(dYSy6+)%Q_1GK!`)1pDgoh@8P+NbK3}jR8XhFf8^%K;fTk!=a{0^(4+WoJ)cC?b^kjg4YZSeORc-iuh}DM%sh0l(fUIlTg(!KM^%QGPtKxYL=%25HW( TWbqC5C0!6XnMH=TQgiSZ&Rdbd literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfo.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..92e62b1e80eb6f8ff48393f6cd220d61b84fdca2 GIT binary patch literal 256 zcwUW;OA5j;5QhKp6|D*`Jb*iQh91Eu1cZv7AT6=9)TG2Hcr_Ouz(a{CsOZian9a<5 z|95{}ZvaB{8ES;Fu_-r)ly8i6GA@+RPT542&R8C8XF_LA=)GZR5C*wCOI}Ew@+i(# z;uup`+ UQuI=Uy6+|!I;e`!^|OZF6Go^=lmGw# literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..f12f9228ea697c3707d3dc4bb4b42836b2dcd8d5 GIT binary patch literal 1047 zcwU`TUr!T35T8YCrHG(_2%_+Kr->UL6*#Dz zv1SNuk0Y-+j^mFE8Xvw^+PMA-gSY<(yCvjjQ6PUm9B3tl$8*s~2AdUDW!;|u`C@=c z+Mb0KIG5-~=>CgyCxrfm^M=scR+zI=Tgsa=xD&+*gB9V5VV{~+GT4sdPiNC%bi7lh zIA*XWZH_YQ2}$WL8SF>#1WA&%c(Zb!j=l7}W?eT_*rIoH((O4cR7v=Vp7Kg)qT54< zMp8FlMmIwy#hNsYcfXf}Xw_kt!JAu7FEJybRX&~_K`E^s;Y}peju&&F#PhK**qM+T zSlW)uX}5TkESy^_yuWH+SkR6glJ`{U3gXlNf9f=k*X3Tjg)Ft3ZV;}kh?Wo(~TYNIzV{= zF7OOI0|!)z0}sHP@CqCdWA6g0+8Y+3fFcW|SI62qEKV_y$re_N-9 z?$4CR$pNYakp z6CTQ#t78`D7-j;g#MXGYE7B+V?TtW3bU7yrR2Q2SvoAA-_27S=j_llAIcf6bPAjw) zm#oEQhWS%^THz!ZuGBG&8Jg|Q{vnOZU*r$r4fL2i^`sl;n1$PxL?3~AP(l^-AFzl? zc(gM`U!;UOWdx=ML4(3Feb;{jhE=dk literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..bb483a9ab5fc90eb7d4b5c785edf2247d7187eb2 GIT binary patch literal 3155 zcwVJeYgZFj6y28uhQvWJDo_>cyO2<#eV3?h2q>w6P=Ziu+jIz*Fq+K7$poPf`~2MY zr`RrquCn_0+#l7|eJ3d~B&e&&hq;qG=k9&ZKIhzf|NiH=p_*Cze$npqZ@NVV^2OrdR-2zq>Ico#3h#qsDo=aq-C01o4bhLAvi-m28T zrk&+ES#}*W=gJiwM{!IbkTI=%LAtgjaAXe}A2AL6Bx;<`xK1VKPD>SZ059N#hT{T9 z_qdX{XjUPffR%F!fxymyRagi zAjWW2WtXiRA8MB{h<7orA>LG+j7CQS6Z}w(I7_XhQLJ|T#l69oYV^^%RZMLwKEv8< z?ms1!w{;j4@>+W_Fu!ucbquwqWm@HAxIKKOP)f%%X1D{^m>RUW(6m{#5+lI0&FXj` zQ!KM}qfn6=G6E+WSB}Rgvgz5$x%hlCJ=2X_+*BI8IW0FzQf+cU%wbVg!3P4zTJ+HH zg6~EGfdI{J>-Y#CleK7Cwj&^tYH?P_r!csIsZ$_fRLYEGr?I>4Ligk@nWHw4Z6cU3PYY1_fEC%l8PrN}m}Y~h`HC_(SzJl((Lf%jF7x$L^9M-Pdo2o*pQ z@6{k5&;b?L`S2EQ{)MqeNIy*NU~VZizm0|IkUSItk^gX{1# zx`Vs51&f?fbNzI_u(*SJOWP=?BI@5`xRE+Yh{CB@J6VZ6_=aMC`-DRMxX%PDeS+#F z@D$p_XEl;kjiguQb_<_}Bah&6tm}Tzi}D9r|Hy**=?Uasd`&iZZ&hSLX0`6Se*umc BL~sBA literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.class new file mode 100644 index 0000000000000000000000000000000000000000..7e90bc1737a0d655e03902262353a681cb10ee75 GIT binary patch literal 636 zcwU`R%T60H6g@X28Jec$Q64Ris!JYHEyS)MBuGFSG!2N9>`ib7)5Jy|hnD_FKcOGM z3aN{VHJ`zUAg(7tDrLvQzV}+^W&7st&tCv5cpsra_+(uwY&RAA)_Hl-Ka$`AsOVYtFkt7+P3t5sEc?tST77conZPLKsQ3QH@^rNVzY4hw;R=*+8-l&x6CF zKhYUsJ$e4)tPv&`lKfU3X;RVjPMdUXu@&OH3vs47<@b||5a9`oP-)s8JMHNF8U7Le z7{L5}%tiqvMBL5b1u9%$^2ZiXhZgTVAaV1tnXTV7he!rT89J~OA0D@^rK1BKAdU^X|O%Q^G+1wxXL literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..06a006b5f2f9952e50d542aec44b76a9a311fa07 GIT binary patch literal 2872 zcwVJe?N%CB6x~4g=o%olm7!Yv72hTx92 ztHny1QH-T?J3MbQbj|4GdY8d79?md$lV*Vj;DKL8C%PDVRNde!wQ`PI8zL@4NHz0X zDWh4scy?cU?QOlvkWky@sR*q73PD~Q4$X+P+sj-?4uIip8P_n#(4iL? z`iN8`iDXLniVs5!-N&Q^@D4^K3^VjL#gs9MF=CUqxMuS#-xJBvO(SdP8Melo(VO3F zsjV3+Et5tiHmw|kRCWxhT0`doQE%u*m0Q##YvZR3MnZ()Mx%Q3<%+#O z|6ei|%~GMB{iuvf=m{WD#A8S6rR3hLs{_#-kbg&Fv*pn2B=j12_McfO3G)oo|DUmhdkljo871O# z+4SoCT6`mwUhyGCgL=$knD14%I28g|z>;VqmB^hjYT=CMUJ`yknWbf{;y!69>xOAD zu#|9Km$8Ab=v)zpW>TwFNoDlxehjw||A66oV<%bCs@0@cwU1h#LTxh)tLKk~nC3j+ zqY+Zi0~2OBjn1th^_+y!0hVP@QgiAwSxgGcHq(Im z?+BgK9*94QR`l6GSBaitbZ2z$j2y!Ef)*VJ(6!5XIgM_*%5?*}zeRVyIO|>KRd~rB z==%l1CC?uiP$MsKHFSOA05_f=VO??p$H_K9-bn{@fcCry;wJhX%x>JmZ9?_qU5vZv zixg9!2P3Z#-kf-ei9@`1fT;${fV00se9}j#WRH*Wi6b?LPw|<9It|4|{h8PZKHtVE=NPlzhNaxGS(hM|8nH_5Lm_yI|?6Nw+QYVT0Nwl zNA$7t7=zF-f*eW6J9Hu>kpj7NeDwb{HVLg4SIKjWR)dtBhxnFo{o(`0r8wq91U#Wf zjV#tHVmQDZPR<@vxVl5e)f6O6Inpt=NvSF>M^D#apECMAt$%P(hU-4qh7M8RZlbV5 xh?mGGL3tCTo}%Q&n5AbC*C$GRfb!`o{76RbQ- literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..34ecdd048230dafe31ae425a517c9518eea87998 GIT binary patch literal 1818 zcwVKHYg5xe6o%hzOG8Vz7DT`sH))GD;1wws3y4%IWdQq8CT-UeEJ-KbqWmlM13G^2 z2l%5L&!(|V+b}R=KI|sD=Y99tvuE@B&(B`~=8;w4V_3HAl4hNhv|Y;sg zSA=D2*}b*2X^6D>!P?aeAN3N~viW0P5b5F;FITv&Ai&Ufte@&ySvO1WEJJX~Al(Xs zKN`z11lFx055td;iVg%BdNYQ}cWNhjZXd`+83r;|K`-ZY+mPSxU_cxhRfg5fe?caR z$1tnhCa`F<;k8b}l$J8jl9`JQ>b zBL=23L_C&t_NNQE_ck4a!aoaJm&u&*VveA5P!X%~@Ofd|X%$hr!wex#iS{DQ_s<@9ChR{A)mbtLZ_U%$bcnmQWaf#zLRy`pX#1-m$(n4?1>+9El$o_oc0(b8t6 zCWw*iC*Fmyj8z46{U)w9Q1McpNS9o*Q7s*Y3}BeL4grOKvJF9Hw0J3Twk9qF-uG=2 zTMAw?OkTr6MOxlK)mgVe9kiSfhUsfz5cjEGt`T>5->T8EY#Q>X6KVc?BqVHLoQl^E z`6%>8|1fG5`qHRp)OW{bU2%#=Qn~^;9bKmKzn(P8OM$;wre-(m;wHQg;tXHj@0J}7LoLTUuu;c mHNmGSFH*dY4X-S|YRzJmG@>bsZ?Nsq1t~2f&cbgU&CXw#4yzvk literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitializer.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitializer.class new file mode 100644 index 0000000000000000000000000000000000000000..271a7d4f6b097030662aedd5325f2939dd8895e6 GIT binary patch literal 265 zcwUW;O9}!p5JaoTPyB+Q2XO7eAb0`4Fd&TR2{ICfNKA$p1wEPz58$E12rA6ZF6d2n zy{gCab_Xy*n;{|$tjoAPWPEL%7pa!9@zU*N?ycj=W*QsimC))c9YdMW*^9H_T9}L{ z>0a(ULzOW8pOWO#39qa9_&@W!{51GgF)xvn?FNDU{o6 zX_e(?f0Sj_n+%?LE5`$t%8#VEOM?sJ=1bcHT}^Qrat zTy)Mnj%~-on+jSPdav42S;0k`e_pnX9Jd2#L7ODo&d?B&m;gG^rJ$3cwJNBJJLo1u zDe+EP*j(Eyl`vGvq2QJfEqldebRwkUF7C;yj|+tC4uvbA8+0y}j7csJq<0@fPi2A& zFR47!7}~B;!O>PDjq0}J3<^IIwk8|bd7Wh8?YPVsRuRE4waWFrQs-b5+v^JTldO+b zjAD>vJt^2I!ZNEXq9rC3e5T?# zUQkhbj-j0xl_!%(5I*L^6oc=4WCEB*uYy;#hryYt0A?|#;B{5&X;Bf!JPmY~Y7~4& zGjwf#M`Rf`L)F=@IjPmVS_ZmOmYwloiLOOrAvr}Zqtf+%H)Cpibc`BK3`v$y&4Emq zg`y}mtJLyoyjAfA%hW4f+873If+hDuTNgAGk(#+uMNtNnuGciyRJ_9~U0}R3VqQVM5{voqO>#G8zQIheWi~&1Zed-hcPtL zs+JsRzeT$rO=xz(Yw(ai&>s1TmaXAa1W#}~a)zE0+%Ly!auP2RehFwM z9a8NWz#v8SV+fDj=#wtB#>fdmztQp?BVQ^Au3aM7=mzu4N5l;=O9Z8@^&6rqL~Jtn z@(i&P%#;HK93~&haqA+OhbmpbgcFSJlN+qx2?f*#7b|&W9B7>bpn0j%_6&(ih;c>R t6(k)nwciELkhcuzjSQb5RaUda_mD70mz4D4J=Ps|Uir8i8G%?!{vSanP$L*F+E&3<|mA5XPllR@WIBN5NO~kO#;^iQ`WY zA-Ob7Q+!=jKgYv2fDWDo0z%i=M4DA1-;H%@mhnhCwlS}rv2r|HaO@^LXUjU~p^E)= zFOVbD7HX$trgU;s2^0v8U)o?i3Hx$=W6BSeZ8=mM7AXF&8ofqu+NEw!sI1hIzs!Y9 zXuU-DcT;Cmo%BA#X7tFp`sfkLQ?vCEhH1ux`rjeiXP|dXctU_YgztoWt`f@U4HZ8F FR8O{#S26$q literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..77b24e7a2d752f70024f825f0279f893d850a60c GIT binary patch literal 2808 zcwU`W-&Yz(6#fQ~1-jLQB<8o#CZT{-8f%+Wtc{{5DT)OpF{U*Oj<^8MmR_>?nu?3K z#Nf~CM!CXm(_px842_0F00g1p3a&D^^fiWy6tpQ$p3sbP!iVb&z3o{mxXEz!C~`ro z)cG72S_NX&bLHY@eyv5vL%aaHecNqUaNMAp%!lC&^nVpNu8CxV<(g|}0w$b4}lG+h~!gp*- z6Pr8TuA-3+uoFVgQ56Y{(E;G#9}(_u%dTywoS!N?uHtKqFm%brS1`eF{ix^U#MEkb zVLCUln9k1okYu>ko>o8KsdBOH19*sO(J?88OKo;hq~M-O!tW=uw2DXghQe>@hG~)9 zY2iGlVjfvKIK*j~)ao@#DRvlWal8LnH<~NSidL&7wVFM>Bb3#}N#x=? z41Jl?jHrC>qDBYO&CDs9(8=_enj}4y86}G$VR`mij@}!h=J!xdD9qCn`#o(`>vp4b zowm#hzEkjwHd^zrPEO_G1>IEf1m81^oiVypOgH0sP9L3${-dM#bB5vnPmD^h3v`A% zXNgYcFD%`ret32w+icx#I&`9yIImW)uA+o8!}u8kwUtF2PF_>m(XKob5JMnu)`?l1L9e!w3QTiP-1(f;|1Wj|WbO zU!4%4=pMd&hfrqlcYO6S^BNDAgOmH1nu`Tz{=jT(a1WWsv9~g9k@SMYAVg?@Mp(}& zog%HQ5tA}5W1W6XHqZy1655o^qB8A}!^}tW2|kSMuOLTRFuHeBCQFhd{nj`fZ_B8F zJ6LFH*r>+#A>E!}*>M?99(!-+utO2Uo`o!=p&_+^FAkUq(WD?SR)p z$wh|`WF*{1d!KjY4u8i54?Dc-b!hkSc@%WH(4jFb?0W~E8+c(a_0^GQDE?t?HFh>P z+(AlqcctK7UzrTK11}iT`k?;*1ymUFPyEoAPZ?${yUCz!MO|)S7H3QpU@*+r{gA&H z_S;%RbDJg zu0=w18P<=`6H?Z~!B8f863W0OT-LFY?K*id;KIZeTqQx0#IL7IoaNwjI$tpuR;S59 zSKaz3d`YTUCl=Kh%1JqHnOMadB};?fOc$KxM5+PvQA}Z2n<|aEVtF{Ax>hWEB4UsB zRXbPIF-j)xz*dbKdmFpakgBQrs(Fk5YRs~lOqz0<5PEX-Fx6@_`O2mlq4#O}x*z|c zUFRFj&t%MCj@|~Xz%yvr#5`GM;)Dg9rBwkIQ$UqGm9L=yPU$O_jwo}K9HTaUo@Hq|Aa-8sXw!$fU4W6w*9~D~xdkT*LJkcLT*qT*>)@r4epU o;#!1zdjjq@)?=InJH?e#$+QuiPh(O(-s>GxOB<_oH})$322<}^82|tP literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplate.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplate.class new file mode 100644 index 0000000000000000000000000000000000000000..02bf2fbfb455f60392e69c5683a5d9f625aceefa GIT binary patch literal 320 zcwRg8Z`VEs1_nb0K6VBsMh4^jqICWI+;shb{GyV?q?}aGypq(SDhhBXX{cC{bd z{)7CEv@6xFX0`Qme^gh`9mb#nu9W#Ok2~k=v(G-~+?jv={o^kHw@{VfVVE?na@4Gp zqf4e`s|B4W4Vzms4+^@G+d&P+zK1T{X(C zF+=Zt&Cu*=25%^wWAMez68FOkSwRna8IGqkgD=)A1#V?UK!!ldEUJ1=wKVbUF8b_s zt;P^bbxklPK(?xcbv_h+4--!>&(1`%v@VFnWSqn)2?2(4WuxxCOTK*XEdX%bK5i+P8~v{Q_K&7P%wxg29H)^I88yD>SPGbD98G6fy_G4mT-w-=pb}X z)$4qL3$^^Xj4KjG7*4i?S8x^ANZX>t2`K+kc;)RPLoL)wqID(HNuJeIM>?^NnoGi+O&#^Y4NJYR%?F=(VU4;Nz%JrQD>0&rfsQWLLap&O1LXn zp~pQ1lbE70b^{#9{6@>@wM$*5+T2(08SXIjIL#~JbA}5CJ!fa;^690-@=P|FUhKmR z!$=2SBYd;U#qjzujkqZK9K)G5qY%z{AH*TcWcEP8LnJAFMKer`fhC3WV+AQJ(D;i@ zEw0vUl+)OLpzOM3zG~F3?W%+{!^P&CxUSY}akXYAHifpD*iYDcw;P?)*;HH)-((n0 z9TkSGyakmurc0?KWThSI36V+8rKZSYTv+}OK2x{GX##vySBkURvFVdWwQe`c-(}xP zSf!~t0H42|pJ*GxkEeL1;5qUPenG9VJu(dL?a-PT&2akq=-PK~%~XboE_hM*Xd*Df z^$*FN%wJiWaC_EKt90FNI&`I#*g4A#H;+(je-J;`pefkEw+#Iby*<5#Lha=e8&|LC zK+wQ{P$E=`j9Dk<^P1Qtt{(Xz9~V)5SLg%lg*YU-qhAR+OY{__E2C>qWCwk}(2WOv zI`=w@Q|PC&(lDUw09|Dq!*SPnn(V|8_!TF9$JxO79_IZM7q>C|<~>pXK042#4+(mn zC+|52)#G4Y#|;-NL3UzoAo32umC+r9wlUfyV@peOfLI72fr2VZr9x0dP!r__mC8w$;L5SBWmCjk zfdnGrf(PKC5VQ7@7E48uFYFy}X1439%GaKhohc^wMrc70wC zBo{p%$xt}W?ji5VJ^qdh9`tyd4f8qt6++vt5mO2c^PT1!bW^v9&0T#o2!wdMU z(Xh)!JIT1%2z##IafPS8^`;@;dmk8TS*l2MpjsXkvxL`5odOsx*f4R1!B+ivs=!#6 z+yQCTXV^Sur_`(m(MTqe63W6ATs5(h@kqHJabe>cu9GH7<~P%2&eS^f=P3xo`ZP)C zxDP%GPm(UhQ>$u@WLl8hHrBC0$#n4kbitWgQd5`@V+_N_RC&}X%TEy%wo)vmBHFaC zX1b>OsMxrRlA6}o+iHa)DreVI6TJ4{>8z>?O1GWv2|YP_m>M_w2T(TM6ndYfuLtoj zv|IiT`wJN}n4`BvE3gFvPccuHoj73u=V?`dMGe>`PvvVVK)Lb_OUINsN)9|HN}VEJ z#-!!MTa%P^k;+m10xh3yX5; zcC8Qkc;zklXv!mx=(T^xd-Z(Np@FnO4Y`>0{mwb>`QG=<{PoXoj{zLO-5?qSj@eE= zWl!Z({kG#8V+EP9TqRm~^s=Qy`+-IioOS zIHtPyA2zxZW=Y_L{wf+f1%h(cbqpn}JGOw8?i)DSmFlu?bjC;OA?OTa9o7dC5m>hf zQ^N*qWL7@$=%DLJV`@IDy|H+Wh@#J$s)lt2v8n#eu?yqU384jBG;BqyK+}v-D3kke zeW?bqO`!Ez(I>l3jrR4Q9_Y$u`g)tOLtxi)mXBO+le0y>k>g=Ru~QYnE`g0Py;?cU z+_dtY@gWtlN5fw169}m)N*m=8mA5|~ot<#(>z+;VC7%Y)rV$DeDXt-bB=es#E!zgd^7P1<>>7SK>|5BE3jREkq8wwW{eAL z(_dgaqZ&*GZHUDed)bU56q`AvALZ%}h4TOO9zD>ppRH_KCF!tr^rc#-zH(B#+=An( z4mcx@#Og;`hj%q};Us%-UgtBNwy#$5QjO*fDARInZ{8ScdQEsc#d`+P-Am7f$ymj* zJC9ZW6v?1Fi1*k&FDKEUqlbN=bd45lEALHM)^wl1p*q;ZIFG>~2Dk}zte&5*8qOdq zFtR+8>hg&FYbp?dJ7 z!WOuy;V|A(@e>+MH87h>(#?#kC)YF-FvUXP6J1()mt(0hmQf4O!`AQthE>?K1_%5D zUCpqxO`|P0>zUHJi1~>psv882-m5Re7qv0h9n&S^mFI4MU)im0O?^G0^16YKgZPO1 zwG0{!pD1_2o;I&flrJ|m%;1*5<>g7OQz^%X?ZGGym%~GygLav~XH4(w;AP)49cs`w z?qr1opngGK@uP~zAn#H<3!a-2b7+3Riw1;wT;V-Df|WdK^8q}s;yHxXSmQ7LmXHc` zU!sDwf3k#=zhLuy{Sl(Wk?nJ6>uFC`u=_%LS zx5o?wB5&WXNpZ{rZtxO2icWvQu%FnPM`#&N&f!>3qP>E5s{TYgCDYVU?!&kv~0*TXp{PyBUu>haREt>p1tnVUu3lMpzRSZ z4*!fxa~SI;wX7hY2vji1Ypa4{qRQVw%YiS*^(8I%iuhl1gT7fPla<&A7iG`Q8C>^y zCjB&{iR9x7X1yd6$>_m{_;ex32Q?huG1Gg*`<^`an8OcGA}_gsGd`u+pJL)bcI7`6h@vx9!meiaDmv^~D> zOD;M*l!35o?GxUS2mF`|?ss^D_e0N-yw2b41zwj69U8;JiF4}Mp5ylte;rwd)j!;w z+QGAJJ51mC2Afb-V$sk6%|)RI$mB-Ew_bRv2cjLX$z;3A)_CEH0SH!C;uL zx;}q7=(o9O#3>i6LC5i$j&Rj?vZ=|p?t6wxnkq(GP&rSmbd406IWSx@q2nBbsd{o% zk&!r=775m6*s!V-B;EJJfsAz}l!0rwu45(r(Q+^3!o&^SBx&O0Z>CG0u6^p!RTPHx zX|m9}70k~Y@FvT6f4F3OsTb>t~o5_~jWaJrtmO0Chnu4#y0Xc>cN1@*>%+@=l?gRWp!KW_S2oACqoZYV@Ll8%BEXG@ALHa zDEftVi{D^=CSwM3^fqV(D$wv0^JJN^6BclhRs~p00K4R=d<_LCmcC-?FJ+FB1A9by zP7yC6(sJybkd$?q%2Guv<4VHZPMEo3X^5-;AmhRs6mob5mmA@7xP{vh?haPRai!uH sEDdpY9Ct*x)&$%=Y(zKUSu|^N%OrXOU X8JK~Pm4TgslK})68MuKY69W$bHrq^T literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/PolicyFactoryOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/PolicyFactoryOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..980d6d272702ff3aeb7c472c099957f21b55fb76 GIT binary patch literal 280 zcwRg8Z`VEs1_nb09(D#MMh4^jqICWI+;shb{GyV?q?}aGypq(S{)1D9(B$XT*wnce73CKJ)duI60$u5r unUl)MAcMo5dLSpVF)}bRFf)JvBhcBb3~WF?JCMf$q&a|?3&>_-;06F08BXQ^ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/RequestInfo.class b/libjava/classpath/lib/org/omg/PortableInterceptor/RequestInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..279254ebb54e5fae85bf5ba4762b49af15048485 GIT binary patch literal 256 zcwUW;O$x#=5QX3P7p)2|Jb*iQh91FRCfgc5S?vHoRm@;=y#z7T10Ze>bWO31<4X9QOpSr*4CL=uAE)7UZ?S2H- zkE)nmCrzLcKKR))Z{K@6yLb1$egnWcymw%Q!MRkiD@U>0lS=dJ6n&vlMVM)++&=y+ zFxS2q%5H{=>qLs&fi(tOH+;<9l#AHyUf*D(88o6wF;UiWVqzFe21kp6oo@fqbH9}tcH{tw+8j!C%he!M zI7EdaLI(S-_CE`%phQ22Q4=*w%P>bZP9hAaaTuJm{P{Y++jE18(WwX~*QbYE4m26; z{q1t;U4=cb?|r4vm5-g_W2d_5=BcF5-9^(%#uMd*1G@}9{O^E#G3IG92&_s|&dz9V z(s-yb*rtgrne)bU5}NCRCcWBf2eipq>||g|KFKT0GukwUILT;`SarTLs8Od#wLQuu z+aR^P6j7K*6o!5RSy2AZNlHJ5ORv~R6SKyE48S~_bmN{t4b07Rpl-1N>lUBFhQ(*F zN&M%;UL)M1%8N&pm$1E1*`dnbRBay)EFQv<#aHm!;xU|9d;@PSzB7GVdrI#WIQs)z C8Qoj} literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/SUCCESSFUL.class b/libjava/classpath/lib/org/omg/PortableInterceptor/SUCCESSFUL.class new file mode 100644 index 0000000000000000000000000000000000000000..1e9ce342eed6e8fac4f71c6dfb3462f64ab198a0 GIT binary patch literal 178 zcwR+~K?=e!6h!B@w$X~{wij?|@C?O*ASi^oPfIA4m`F@}I2RtkLy2iOuKxUC=FR8( zdIQ*F$q*5?*0tQ;TYj<5%UY|W@ya#o;jQDMDvE;;Wp!eh5jLG1B-hfk{9Jdc@q}cM zx>p1egjHe9(@W#8qZfw}5Hex=fGcl0q}G4nZe*pQh_8q90|!`) I6U^oU04jMbnE(I) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ServerIdHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ServerIdHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..5c85fbc7d9f45b59fe2c5c39909f6f718a1a8ec2 GIT binary patch literal 1768 zcwUW^ZC4UO6vzJq$O5iUpjq0JPl;%*_Gn-hJ|#)gQ4hVe1?JFtaF??zl;5g)VVz#| z0s2s#?hG3oU@dtuv&`QAe|~fCo&ELu$4>yO$SLqKBrLnES!ZSKtz|oUp~5q!!|fuk zI+m>+al66oOlgl-s@zr(U>H8t8@g7}&9as&obsZ>5L`D*!`Wc)#~1Ppfi0`VBk&`v zq7Olap{!x@gZf#4+s9%DhG^C*>Xp218{)sa7;ruqHHM|^)rnHHxnb70O%(BXOSqLg z+)Qg}^E{Pp(;hjtVU|-1`3Oc3QxIhs=@F@REvqm}dwdk!6KDmf3q;8VHYJK}AB~`HWHsOAMjEm5N{) zD+;upbkm?x8$O_(D%xCkxO<`#r^qlF&s@qa93QE8j3?Avu2ioWdQB?x9<}mVxy1X@ zO{u#ryAZ-N>d?$~Hc27NBJ^KPnp|C8p+XR0iD9j~)>T)jWz1^bAug_;c^CgVUMQgZ zHT{1B6)!~<`o*5D4(T&Q0K@E62q^rcZ8+3A$xDfIb*C-xzGJ)CQ}Bvm<_Z=nGUC>$ za^Dtp(2^kxb63J3?uK5e6L;jus#7U;4e?cpb$&6H1#Do78rBc-Q|O64QZy>`PotU9 z+?V)<&=-2}AwpwNE+)}WquLChd4T3H1~KG{Hz?XCq7#c37;dX0a&?TlY%5t9`NhklG6_OG&ZGpi}K@<#hvaf X)=AUo$l`14OS&MkGK&mvq~_ocDyf;X literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInfo.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..a04f593007478ed184a365cf9791d38d8758aa05 GIT binary patch literal 321 zcwRg8Z`VEs1_nb0es%^XMh4ydqICWI+;shb{GyV?q?}aGypq(S$ck__@MNG(b%$;{6y zW@q4FWDtRAcJ>c)a)cYp#mJz5DpLS8T;J2h$2G4cv!s%pfrpVn9iQb$)-p111?QIn rCEPM|QW+VoF^i=zT#fd{s5Vew}sE&vfsc=|r?7>>(?7HhEg1^=S zKcGJfF}o!FjB>EwdgslXH{<#F@Z%l;j^SefD-2GwDPlb-;(<0+j7vcKVRU)MpsBqjf3;bl^}ObEcEe-=B^m|rhQX(06HL@plrkTBnYIxjCD#JGX}Vh8%y9 zC1rM&EYguvq^)7_jGpJTnr+&w0M@{5SQA~2v928n*aa+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInterceptor.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInterceptor.class new file mode 100644 index 0000000000000000000000000000000000000000..6cbd3de0cc277d22268dfc77772141619dba53b9 GIT binary patch literal 342 zcwU{4y9&ZU5Jm6!THjjO3U+obg0fJdfNC>Z+yAX#ws`DS!CIG99wPVip_z|lDB)_*|$O zzI5C*dsZMvX#e7UAo7I%KXNB#qimp~oj{S$crr%LayWRsQYN%MoA}|7v+;Zq*}xtN j#g*PC*l7?lq4~|&xi3w&5z@#Y3xNVkxF4aCWD3 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..54b98bd531841ebba652a2868379f373943328e6 GIT binary patch literal 524 zcwUuJ%T5A85bQ>95fzXx@aE&-1g|FEBr!3;NWyh94DGsP-Clc#6@JZwAK*tBdqolv zgYnRrsjivoO7+|O%PRnMp%Xv_;gTgX{1};A7H>xhU8kPJQRZ39fTSR~qo*n5{u|NH zNUV=J%>$?+v?sQ(Cb4N``lAUsAHX(3ca!q3VhD#qj^ctsS)s9wM?-e-s E0FQ>2NdN!< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/TRANSPORT_RETRY.class b/libjava/classpath/lib/org/omg/PortableInterceptor/TRANSPORT_RETRY.class new file mode 100644 index 0000000000000000000000000000000000000000..41eb816e0be9d824e4a2496ffd8e2abd599f0718 GIT binary patch literal 188 zcwRg8Z`VEs1_nb0ZgvJHMh5NtqICWI+;shb{GyV?q?}aGypq(S703T~A6{oYby7D@<0dt6lh*r)vrhA9VkZH|j+;$(*TtJU#);`BWSE4jS2Rhww?%wp-vt~tL zQ{oOt4GXLZC0dXgGxA1Gw~gWOR1g9^8t%ir%qLSZ>`c~uDA0a&*mp})3^!wD8E$td zd?=wf=JjGOmbNXkm>UjY6**peJBSCcCV6Nwj_^Vp6L2f%WUw$L6am-FU~Zu4;L zIwd!W0}UU+h(Kq~u$zntJQP~6(@_m$a)15OMmB(P7S{)tCPyaIyGIg1?80t&w&Jq< zuHP_+(q0Yy2+2`WLkbhJ;4PM~UNI((a{jbHe@kl3p@pXc_^3d*h3ceH(5=d>o^POF z;k#9sbc!&}!V`>Db8n|@b;v}Txth`w5AQ-EVW%mn?G$)$LHo_KVw@5fXr+9kjU1NU z=>{jOyMD5+IZ;EQLpN<$PMe-Ijv1CwoH6zpY}m4asAG5}2puy4OtYx(z(~C#M zbyx(BEbJ`YQP56hCqZ-8qNIS<_QYz=wv==x0BYA&^#xnxIf zM4Gu8emhP|lV>!XR3?jh!Dz=*L3{$A3gD9h58S%$HGEpOg$|ChtUl*OBJhlcr{w*B zW!P1#$V~`j8G=E>#)sxG7(lzrR zrqm5e1CeMA%dcALWEj9hRBew$G4(}bv?e7HEfLZ@ZOfxJO<_c z8n&h6b?1=(P3$_*<9`E>UfLg7LCrn$=pJf|4AhY5X}hH4Jld6fT~Y2uAKSi^LwJmG zjK6xUd(g#efwMBBJb}Am5nP2U=CB&45XNZ?;tW?ljbT>P7>i^aXR#O0u-TtQnsSQr z5S~@}?sjr&z&ngd>IgO3$L*3^agZzaGqMiqd<+MOay5M(qzxZ^1^M-Hm>VhN;dfc3 zTvl_ERi@4=dXccaoBi`x%t^QZ;R|@;S-1T*MAkGc!|_srj@Ue$Jc4)8+Zb* zz`!>#OIe^SQ&#b+B07n7nR$cg9JNeEbPmT|qIQGmpi5M0KS}a_`mD3v)5MmY$7So~ zx;9#y5XneaQL;@9@Q{>b>RXcYSexQtTXH~B^C@aRms$-K3C$l_E1~%>DJh|?Z9wZL zhV4qOQ_vpauMTaT#Rj~_*|!+jw|U^dL+$hE!FO4z-@_VwpQ~zYuNS!LO>D&vu>)^m zgmRoRPMN|*1!;$qLIctS@y#(o50VOvhaNf=8ZYg4DbC@PnTfwmAeXuJZ34MWAiw)R0b$d3 zf!yT+Ns2_I>uCujDKpxVV8S0y4KUxR%J+Pdcef>Y*_o1D1{^FkoV}_tTxgZ3AO`&S;eztPgW z?9cDf#ua`nzeh{|;D_uL+WBV_nxu=y!&WANhz1b3IbOE2!@Tw}0*S^$%Zn5mFE!6K zUQX|FF8@P)RHFGz6PkI1ThaKetdRx=C1s678#S_oPPZ%Bub{;EtHao--2RKRe>33s zaS#75Udoc~5kB+^Kl()gA+ZQCp~ceBb4J}v4XJC3A+JdR|CQ#7sAp; N>b*^=Kd-c3_%8s_&N%=8 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/AdapterActivator.class b/libjava/classpath/lib/org/omg/PortableServer/AdapterActivator.class new file mode 100644 index 0000000000000000000000000000000000000000..3386cb878953b8ef8a8dcebc59eb7ff8bb47aa94 GIT binary patch literal 261 zcwUW8I|{-;6r2}7t5Ly1dpkRq93lQd5F+LTo4AAxF&ox3;MFWVfQJ$j)Iuv~V5<4u zAJ-cI4+92=Fx4jE`k3&YHdaKL45cZh;r>AsRvJIHsuWfmh9+T{ic;`QKK V>Yvp!LZe~}3|-V9^eT1Ge*%>tOR4|> literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/AdapterActivatorOperations.class b/libjava/classpath/lib/org/omg/PortableServer/AdapterActivatorOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..522d77f99d1b5048ca0e7a1163fc84cd09bfc865 GIT binary patch literal 234 zcwTjmJr06E6ohB-2er`~*lOd3nu^AX1QI$M^T5pp#9i`S@NO0!z(W}!7FJ9#ndbX4 z@6YoEAi&axClFZH(%!U8Ej!94*02T|8n>lPHY;ip+6obhtkWtTNkjp^jy(1h(TZ4g)3h2PxaO5)mQ*q_a0Ta=7A2>;W#*(ZGVnk(>w%mFbO<8@GZ3;eurqKn OfB+){H;`mv-~j+^oI!g4 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/CurrentHelper.class b/libjava/classpath/lib/org/omg/PortableServer/CurrentHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..3a79035c1c0ebad2c2746ec8bef218cc54a01fe2 GIT binary patch literal 2186 zcwUWF+j1I55IqBk1+unfY%7xEI5@rpup(kPc5I<2K}d>}aI+wCluJWu_Tya&L=X_MkJ>QZnes+O&U z{FT>5Rn-|5;{C||mZ3FMJ1n~`B=zNCyvHeH@25won@(&*a2uZ(xYNg+!cD}HU^v%J zQGI&?rg}4VH`4kz__@8`ud1fvwwzOVY!oSyRqQFrb*=}4s!EJP&_&%dF^l^Q=RK?= z`jdS}$m6g3{=mdTd_l6>TuSFT!=quvj^Yr)V>;ezOSw66n$gaK9p`3e?i-+@ufH46 zz?XC^Pjgw!ELBUH^-Mm5uc(0qN5y!oRLsPVj^#WudM+0kt_(P7y8ZK5GO>&mnhQPH zS>9>WoK2tft~?_tG^2E4pw+-C!?oj`Y?HU!S>9I5dv(!LmL4>}Q`=^k7%V2unb;!* za__<*FMo~GI8Nn;sG!dn4H>zt^meV~X_{KITOCE^3%)bDhX&T^$~lcxC|1|BWZ#twGoL81K<)b{*(> zj-Fwh#|1BV+JiLz!uU%}M6Vv;+KV2HMHj>8Mt+Q&UgQE5ldL@LC2l(tIKJR7l^h6aQ4=Jqw7QFbI?hfFOKI#qS zC&<%%;sw}Lwk~`!`7h>PtbOI-@19D_zpQj7$>rMlEFv0izpox>+2Ts3QslwfK6AL5Po!JXZXqW|M?BglL)>5 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/CurrentOperations.class b/libjava/classpath/lib/org/omg/PortableServer/CurrentOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..992a9a1a6a941035c1271e99dd71b343e98fab9a GIT binary patch literal 345 zcwT)_u}%U(5PgG(s|ZR(iS5z2v9^K>R)o7iNkNu#vN=3&$+{4}&B71hql|M#5)z`t zWHN8&y_q+Mua8dvkLW5i2(j~4yEm&d=Yv_5JZHaSuam9!T!nPQ-h{$c?+Ov2yEZ$c zOH)~$uGX9fg-gQyQ6oubqv1J~(6Jnr?uW4~UIgS7 zPhH}w!23W@wQ!aW3H^95`GYR~Cs{UkTc7iDQ8J--cH~2CP0SE3B%1P~h8R}3lImKj RNODV%Hae$>#BDu`yKh!tT+9Ff literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/CurrentPackage/NoContext.class b/libjava/classpath/lib/org/omg/PortableServer/CurrentPackage/NoContext.class new file mode 100644 index 0000000000000000000000000000000000000000..65cc6667c7ec1198ee551df970d5bc5a3638dabc GIT binary patch literal 612 zcwUuJ%T8M{6r2;1TpGfolvjaPU6LTxLM%Z@5JCmIqJcp6CbcexU?X3LLO-ORQHd22 z3qF89VuLuo36+2q3wzG7=FE)k`^Vcm08989Ax99_CBmL1qG6qvM;+Bv?m{_H>pG{5 zZ^-tkOqAHQHEX=O^bzuex#ywU&;5;cahNJszig{>udRttBz${GIPYtV?ajDuy!KZS z1_=`<@<%7(~=`vy5SBvKu!W3Sad2 z1N58!qk0s2>{0vKALa3x&6<=XAQaA-ncaEjKKDK^v-$g<-~R+KgMA5I40lbd7&FVo z*t%)iYN5n4+}h_>ELF2CZrJOp_E;_Q*qWI#4Vxd>OT1L!mINH8$UH< zlvUFzFi2&`kPc_ZdAENb+I_nVwf-v;}^|tJe-pdVYt~$*nGKSAI|?5fhDuF zQxAAl#wGLx5XO|Kycomu%Yn)6TILhsF@BoXa4tYC@{WYJ+fqQ(WxR{Kv{9FrC)Hdn z*GugdbG6=<)y-up(+iAwC_NC!F&vrr`IJSz5+AJ|X&L-7qZ%wk!^3WMuIv zHLtk&QfjSA!lIpvEqsdJO@W6J`aK z?xA7jjBwF~l&7Xyo>OMYVoF$c&O|c>vollERJxRL0^dBf4VH~c&8`>5D^;TgE`dCZ z{Xf2puf?s~D=6iwPCf&e!wRKP7gh|n&cjlCq}u9&FrHYtP08LmRcg9sH&HGuRa`*^ zDiTbF@pE{P@r@{A*`ejir7PHUOsGxI#gZYAF>98_7j)6v11+D{DG>+nDBZ9gh(C!| z^kJt_qNfJMq6+~Udz_cE=%rDv8_@h3&3y&x;^#VbH9}fBfpQpa<1Dk_-K4YaCus(w4>246OJLO-BA=t z!mdLnLK4Z5OUFn5pJ9v8`f&}PW1Ch(6r3;cCE@zTuML;txZ@G=C)HAIQ0yf~2WHI_9=0RK?Y3YYx7ph<-=w?;Vtp`WYgtL*%!YDC`m9B|4L&xCv5^ oQF47eq-WvRCsKTba%&cTAgdo=%7PCTv4yirI$2<_oinw60pB{sg8%>k literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/DynamicImplementation.class b/libjava/classpath/lib/org/omg/PortableServer/DynamicImplementation.class new file mode 100644 index 0000000000000000000000000000000000000000..181dafec033aadd0d160f7ecb3c09a21a5ef9d22 GIT binary patch literal 400 zcwUuIJx{|h6g;v1!*Up zGCD#au=R(-lhjTiJW^V@V}WLGcOnoB%`L@fV!4eLLV-@IG+ma(lEQa5o(XNt#ZDH1=5 z1**h?B@6x%65`r3fFgp##`j+P_`By?{`TYZ7XTYr&mqOI9;&Vzo^;*4P-)&Ch^A0y zLb;7lopW_`Al?o|q;tqHEdP?$cMqOEaStP*w%>Kcsg_}o!vw?XsNggqx;tCmcA%xc z$l(gZe4n3jSB5Til6)ZF8x6xuWJ_PDhcZxJ)Waj;AdUF~W-!Yz?a4sA z7@o9+dKuf9^TH0f;pBnrpu0KVW5qXqmW`hq z3=3oKRs1{{ZWS0(?J=9Jk;9b5-%jui is*M%L_^Z~&(0gREPqV(U^ir(;O?NEQ%y`G%yZaL^^SS;2 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ForwardRequestHelper.class b/libjava/classpath/lib/org/omg/PortableServer/ForwardRequestHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..f2759d58568a266ded70fb1c9eb39cbcf37d1a97 GIT binary patch literal 2895 zcwUuOX;<4;5WNo!!ipf^gdI`>gm@uwx1@_n8ZeO12uy4Wr8Kz0JV3-qjx4iuNw@Sv z+aJ*OU!*+=KLGTIVU7p>{|& zbo(|#wLdV+;E9^cTt+p#3TjZxa9-67K9$>8;?|4^!QfNPl$M^=EM5F}H$C>6o@KbE zo`F(?LE_uCr3oHG{zKPjEIu+E9yWF&fy&?_GMaEff{&r81Vq6_G!tt#QZiv%T-(UA zzTyuQMa{Tz!UeO4gjR;$RU_xxOq*J9K4yBETVAxFT|oyr8EQ7QbdDlituO-#-3*<_ zxr_{tCS%iM@!^??*i;=}VQ4+>)x)Puz8i(t zOJ-LT4B#pe+|UivVqg=(IiMhj5QA3~LsZLUiTdDCpqVwx+;Y?il--qZjiIaXB%0Q; z*{GJa$F@^EW9z0t6{ZV6rGd)Z3ZH7zgX$Zn>Nn2*o* z7#fbNNIjq%S#HtIt#UZNkXp?7Z(8I&2JgC5%%e{6DIKd$_@HP7q0E9pxpwPwiGwEEyB< zig=R>rVu;8IT%=NB|V#e67iDX0|jv;NXL~tWYXd*+~P)xbZjZ_My;R=>J0sr2qt9S z$q-ye36B}t7vqzd%ws{qN7S%|sS&f5;#`O!8dkx_cu4J*AZgOv7Tr5tb$q0)gdlp5i6oRR~bgj42hGnDcYYHRmCHxa2a$3 zZ{miGN7#^%E}6fyC@^4BdMT36=1G3g%}G1OuuzUi$(icOc)^u>GIV(ztK~9)CE5*lkF`L@Uz1Odc1N2;`>ZpeJ zNpwfw60}P6FHBcP*P7rS>VBo0D#*0fI-7TJj#edaK-YS@deMOMuJaRu6rlaVT{QlU zmgi`DrtYI_-gjvaJ(GjJz8B~p4DG@{H~5!>A`{}E8>54w04nWF5%x5V>j(7ii=!6_ zCvHz38`p`XV9|zG>065?2QhdZZxD)CRJ+Ti&%p<(eK(&KrLpM1RXOC}#yhUV7(C8i zeQ+Nw^PxSwyNg=|1!U*pI>mkDxVPkuT{hxw7@Y*=#R#G<|!ezdXDK`d|nW*!D09lS^rGM^2?Fj8u1mrb_8s6 Lb7T0%@%#2aTA1a9 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.class b/libjava/classpath/lib/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.class new file mode 100644 index 0000000000000000000000000000000000000000..412e80bef69be0b1267b754cfa2ec881afb27a55 GIT binary patch literal 199 zcwRg8Z`VEs1_nb0ZgvJHMh3n7qICWI+;shb{GyV?q@2{?)S|M~B7IMnc*o#iPj^3G zSHF<>0Dm7(=g4?Z7j^~~Mh1bb#Ii*FoW#6zegCAa)Z`LI2G+8~oYGWA21ZXt243g< zyyB9?ypk}G7&Fi^VMYe7;QZ2}P2(~RBIF-C> zXj-+RHU!SVWiJQ_BiMwhdm7%E>&WJ|Y)9bds@JtR-K9+({@8<2>{<)PFM>TBxORH> LnqfJy)wKIR-Dxh_ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.class b/libjava/classpath/lib/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.class new file mode 100644 index 0000000000000000000000000000000000000000..f293f42156bc2494a341900f9a638ee24e14de84 GIT binary patch literal 211 zcwRg8Z`VEs1_nb0ZgvJHMh27oqICWI+;shb{GyV?q@2{?)S|M~B7INa03T0h&yaXW z=Mc{@#}H3{zxV)upipGIrwcm+3nPO-R$^JAeokUuy1su>R%&tyBLiz$Voqr)BLkx+ zBLlBK*qBH&0+xQWn_?KU}azf R((FJU69WfWj1$b}0sy7xGDiRa literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..1ea60bb3ac12d300b3a910663aae5cefb2b90d2a GIT binary patch literal 267 zcwUW;OA5j;7=-8d6|D*`1h;P87{n9!1VO0S6T})qq)jA^glC-C;ydfSI3zNXE|-pPjbsB+F!oupEypO2tAMOM@6nx}%yI zxiDF#Qc2d?<`c3Y=HaTilI*j{m*g8#>3cPP07a_2(eypH`*fe~zWVFm-~IqFhkFV} z7-k)}qdC2fw&u9Lx!JW0%iXeEO>Y-G&+hP^#r-v>Yqz%RW_MsI2s4~~WNw*S*W?|o zy7|az`3j;8rzL7T8Zp>r*M1_{6vP;^`#DP0^)8(9 z(3ct59fo&G4)=VM`!abXb8d9d{pZQw4AJJ6K*&pHh&4Bi@_JKW4v{c0D8Z58TIG21 z78nvuqhZv_cLO@c5I+DIA{HO?DDB++<1>$v65ncavuAk>r|wq{+i3W%%{$~1TWoc0 zZu?6NpncuQjH>V- z+N4G?_XiSt;5xmg&3*Er3Xj_+1)nmEzq&BR!g8~^R$edE^y;btYSY=*H5CVTw{5vG zd`63?bE?H|XZw;j+oBF;6S#?6qWaGn&g9-~eZDR{iYiK=F-OgQ-{NhCjF9k_WD6o< zMa6A=L9%^kcuDzlZ-$WX4crRdE@3QARz<~K(Y;8|=8mhN%8)w@DY&k=t@F0^xH|Bw z4~ou!x4rV?meu#^aZt~NB3h75lPbJW`JZM{t0KW%Xr1V(Bn)TZwyYIf3_0_bA}h+BfkrH2bYXScn6n_XP6`?*9ax22}#Zn zaP?Q2aF%{2sbru=2@ER3r1W1?5f2IPAPd`C0+9uxQhSMcMJ0;aGgr!qmJ zzrs2(FtMIN0oTb#aK?9Vb^1Bx=bs*Eipq3Z7=-8d6`x=s*xK3{#1r@gL0EC|0CD|UB5R`AD0nps58$E16|@i=XJD$C zkGVgtHvoM!1agF~b+NSjST3#eYLjrt?#xckw`-%1CpMg>OPlEEB2XYScj~NUqD(A< z&5k24P$INGka4gY4dtg_CJg?@2M2b_Yim-0Dxvd@JiO;}K3PnS*ZxANhW6wlp6P@M Z?O$T=^)-7($Y(A>pn{hOwJdX}KLK6!PG$fA literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicyOperations.class b/libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..f1d2686e81175d897ceec60de360c57e6c639c24 GIT binary patch literal 267 zcwRg8Z`VEs1_nb0ZgvJHMh4^jqICWI+;shb{GyV?q@2{?)S|M~B7M)4(7epT($u`v z;^Kh(oXq4(|AN$_#FEVXykd3+7Dfhvti-ZJ{hY+SbbbG%tkmQZb_O;^2055<&i+A8 zj{4|285vm15_3vZ85xW;G<}G+It--8nvsDkIKQ+gIn^yQ2WWyKJ}2sdTnBUyBLg!K WvjRQL2y`<$0|$u3zzHOo7`On(Ay6U! literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicyValue.class b/libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..be1654aa132502cb5e95d8aa36ca6c6b327e16bf GIT binary patch literal 1662 zcwUuMO>+}R5Pf5P%Nq;=1jr^91ly7gUTpF~uwx?0GFez#!m>oEI4Emr5KBq3%4+4p z$uX5ma?UN4pO6DF0awKZx#vfv(le4jfFf1CXnWptzwX!FqksPW>otHmJP2WkVb*b* zy3=mzMaT85%@!|lcZ<8a(I^Z1n;sXu+budRyS`nqT0I_upW);aYs=DGmT2mQ%_qF> zg%D&oqfpz?iNUs7_P3HPgfK&LKS!>xp3Uf;K_=Z;HuJ)>y=|iGs-OyYyS5|B#xeuD z%kV+Y5nay`o=P5=@P4fiS65>U!P=HY$je}e*2-(f{c^r$Ec-|r7$OG%!*%m`5*HY> z+G^R{FpB0rC1V&q0x<-*=(Q>R+{5Fu50fH~*M!yPU53*S&BJztxkuF2E&+?@SbD~GGax; z9ehQyJ*R(3`BU$Pknc_0_T9;0Btn*{VO4f7(6)u+hEQNg9fo9F*V;BjgFh|wyuzcb z(-Vzu{%M_eJbEP5bE$|HWYeMwFPi_;ENWF?Fc(@U`D98?&#m(nTMl{bJwuq4rQi}x z*@qznK#v&-L?G92m|n#YMuLNF6cn6nDRsRmIl%8Xfpj6ctnk}nEf=?+=pR-G1rPtIBCKL0|9_-;}bq}|yvBh01 zC0-))68T*i=1lDF3*4Leo5Ey&f>;|Qj?)SFo{%4CCO={vKVbqtA1Po8MKzUi5`7=* z#K7cw4hpzIK9V!CgR9ejVt)SFfu^9k_(f4^eW!sIh7$F!PoOJ8DoRHG{#NjBM}h+f J!DZ!D`42_MVs8Kd literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..6ca9998784957070ecb4eb1929157c2bdf7f08cf GIT binary patch literal 285 zcwUu`OA5k35Jao}jbCu#R`3K4E?xSCfRJELFbPALFlNFy2E3XJ58$E1M9jj43%j79 zisp4ap0_)I1x5@F0yj3{=9KWjSSKPaLum_Xxp&I7ij`Z%P8Gr_lLe*>t_&^0I2DE9 zT4V|Lqg2L@p+lI|sEvPIuXugmB`p7Z;^)%7?U|uZn0gNCGt}8X z$jMP3T_+<0YguAWX(}Uwg@&dNi4F(@>9l5K;0n$!ElN&x%gh0qqfXeldLWkq-Nwkk Y48*L!AYcT#pPhjN#A4tCl1vO-0Q(kKga7~l literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicyValue.class b/libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..6a947d402da38169afe0eb851aa973ebbc74bef1 GIT binary patch literal 1738 zcwU`UU2{@b6kR8L2C1>ASV?R!)dYx@8oy1{0!i$(7}9_^jMLH^xS`j9dzs6HF@5Pn zr_=Viul)&~sf|@;n$f=Z2lVH3y3T=^`1z0*?mqkMz1LoQZO%Xc{q-EcIou0iMBsw$ zG}3mfkzTbOS6^=$MZ@VCPFicVn`X^)Gd0)j>8@#8t2P~*Wxd%o0`LkPdZ738bW^t) z>B9O0qvi(S7dWE4rk!RTQ*WBz%9;TL1>!qMxx!jDlWq_3(%NEv$#PA1lO;PUscbkM z0^ZdY1;lNE_j0z?adpd8;J%Bo{?}s@|NbuEulA&eQ5un}+MU(BmeWerOs=GrGbOFC z;vrQC9Dc)6lj^TpxNU3gajgayGAi}O3JfxhTy?D z*~ElQJs-wFjIj&%8WlV8F&@G-+>{(X6*!uBU4Ud+Mr6atf&1&%+ik=oSf+{$5WlvX~BJ937;mTB2e00n`>Zc4^+ z^i9pG8xIRzx3H15yH>rk^sr{M<+M0?$%t#RuCv1v`F9M9qw)>a;ZpJM7Ao3Zr)Dgh zQtGL9N^w>;gp*Xq{8wQF5SYsPs5&layu|co~rcp-{7A~VjDX$}~vOxH_A}*U* zrbqfhsXjhQjX%NMZta7RZ%2pmT@I$F@}q-jTu?-%by1CA6qkrIsM#T588x$o>Db(( zd)v5D*~Ya>WTB56v8Tv9#Zn(yel~LZ2|l0wn`v@Jeyj|EqdWoM)AIv$`4N-&38(S% zo(5*Hs+5@|@h?c7udQ6vVFTwGBWsRs;Y{jJ%*{P|!O5>Keo>{ugP$c9%TgGcZQg3w}5ke1()Qk#-S!K=CO03J$gK^N|vfmzLb z%=2}B09ars&>+l=O{6&|GBDPuDC3arm90GJ6PJa`1C#0aCeR{`Qgu}_Q+Xo&DCO7* zbO@6#VC^4QOZn}03Gy$rU$9k9o4ge82-9C&@tMl~=CIA3b~l0-nv0Ejr!yvue`)jj UWA%#AtlWk`548yWDjOKQ0ob@nSpWb4 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/LifespanPolicyOperations.class b/libjava/classpath/lib/org/omg/PortableServer/LifespanPolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..846b5d5c70ee47f03d42255c9eaf08bf096e6977 GIT binary patch literal 255 zcwRg8Z`VEs1_nb0ZgvJHMh5--qICWI+;shb{GyV?q@2{?)S|M~B7L9CwAA8)#Jqs~ zoXq4(|AN$_#FEVXykd3+7Dfhvti-ZJ{hY+SbbbG%tkmQZb_O;^2055f&i+A8j{4|2 z85vm15_3vZ85#66G<}G&HVmZRnvsDkIKQ+gIn^yQ2dG;Xm(%n>t^&G)k%1YAS%IEp S1iF=-fdj;1-~^IP3|s&<%}W&k literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/LifespanPolicyValue.class b/libjava/classpath/lib/org/omg/PortableServer/LifespanPolicyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..368b9e4b786223339b31c4d22a3529f80f93b59f GIT binary patch literal 1640 zcwUuMU2_vv7=BLk9af3~0;Giogf>YFE5#3_1x(Tu7h_VJ5GK>n%r@E9t;ud?v*}R1 zas0aW)_>py7g&VO*irBON6t8o&)K9OfI4!Mea~~=kLP*c_vH7#e*P7}Roo9@L?B~3 z>#E&ZSC?$Z)mPg_#c(zaM=hFbMz5<|OLp6AZq@X5-w44kaBM^0)YZ0bt*hnL4WsFX z5EMA!p{A`e+SJ?TXEIX=VS(gc{(N~kmsPvNDyp_nELg7TZZT!g3#u7T&$O+3+Jb<% zEAUF*wtB8^xnA+W$`9xM{3HFU0?|fwIa{h|g;Lc=SrCZq0|GO}|1Xc3 zk2IDF%N4Cs9cB~Ee}D)C46EN^;ma#8nU^|TqhaYCqbG2DrFhW9itCuxI(@?P&9-To z?kxddDqR!s=k1merJxA~Nt~zd`Qg1krKM{T-n^zDhU3z@q#!=9rWBmQ=@8P-%xX|3 zj93_P>2+Db86*Toi>76i`kht7sY)3Fv7+7NFm#TDXAg|RhpUprxD36f;3!7P!u`ag znvlLXj_{gecN(VU3aDiGGA#<>9f7fDS0$HSXq4IgY*j0lLSTzdJ+CL%H`^`43F9VL zP_xLxY$dy1-ei;AOGa@6wDASCNJ`j%$3j0feuTVBiA zeXG?gJZKtSm(POzmWsF>t2!B;E&fNd*s8#ACR`=?NGf*UX&Q^B9PsIX7{C=t1Lrwi zA4U)WpDq%JK(5~rK7UpTRMH_wZMF<_>!Ji9`5Fp5q>#ko)L;xpDjkn0pN4 z^gPSc=kUvCi@9Bhx^D;P9^-;E{hoO-@QZ}EaiLQ8Z{uR+F(wJ6>b_WpNNk$G%#U8d zEBu`#WuU?W%cSu!%YQ@?2Jsfs_!MtrgTuQC)r$a2Cq2=U$RZJmMKe2iJu~(Mvj=&P zLjD_c>F=;Y&x?-_yzz!7Qd)0%@*{YQbp|`xG-Vc|GWz!yZmRLa0<8cT HylQ^~4C`9W literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POA.class b/libjava/classpath/lib/org/omg/PortableServer/POA.class new file mode 100644 index 0000000000000000000000000000000000000000..a6efbc9d0e248ccef2a057409f839a09cfe837ee GIT binary patch literal 222 zcwRg8Z`VEs1_nb0UUmj1Mh2<;qICWI+;shb{GyV?q@2{?)S|M~BK-h=M|K7lMh1bb z#Ii*FoW#6zegCAa)Z`L&1~x_p72LY~3sQ>`OEUBGirE=B7#S2`DxLjw&cn(gzs&C zLffB__M8|_IH&37{-~bLuEk3>B>o_+XXoCzGdr{T_rF(v1Gs}71sx1w+bPBDN-4Ht zJFby0^Bi}!xf5H-Bo=tN${hur41HV1wh=2ERwCyn}ZYj8c7kTN>WO`wR-;Z`K=Kel*V$^ndtLyIsBMq2lyYbwSWdctNcY}szu z2ve~HXi~#%Owq9z)hf4&47b~%TTEWjWZVxlYDCIfb?xS62s*|T++!H^)hA`t+=tH# zyy}{^MO|m-w-|=n_kn1u-73{^Bog&`tdd={YCMP;JWxQs!zHVJhST!?VqU=`hD$9V4GUN#x`M+Emv5Ms z%biW5z&G3i!)%)}wkzxziP3?WR*gF}qtpI5Nm#q_^JXNv7QzxT3YJ?`6I8MkfOz{cnJ^DsWi7Dy4O6M1V_^Gs_j}bi;`WK@&qj%T%9@IZ+(SZ;>yQT3yF3?kJ zI?%g^-a*j=9@rqO*c%)F2YoLdA3$F}z`*)=149jr>?6E~TY9vCi3VbOn0_stI|+2x z3)3q#&68!3LVkH7+!#K@M>5>U_{0l0>1Ck(h5P&XOiwm2_rfQ6RdRGlkhDIf_=dy{HNB8UPDbh`zORWRh&4R+xTd{|sg&lEeSGIvuyrB})nf{Z zo6y5wmpec}|G^J+Pl$g?lA3^JN?X|U1LW8B;vP2B6ME?-o=vqg0zIvQkxQE!K=CO03J$gQ4v?pz^vwD z=Ki?e0L;;6s1YXGL|h*u?rCFXkSbr9LK*G}cP}#;DZ|hp3=>&Mp2{rZB1lwd8Crzt zUs&YINE_?y#Ly;;KfqEP7B0`<7~igT>&(XX!r%}_zpd9G!SVIkglZF~iZJ+Y%&KqY S8$!Kw6AT?xB6Q2Fq4xxV4nrRR literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAManagerOperations.class b/libjava/classpath/lib/org/omg/PortableServer/POAManagerOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..91ed0cd09d1d16e434c04d73639c9048a869d600 GIT binary patch literal 444 zcwUW=!AiqG5QhJ)Y12llRZqS_ir}Ir!BYsCS@>y~9IWrPC|8q%9>cK@hOR2JKuFDST zfI-S%^nN&>xBN+(*NRNKF#NRU+SUSI*i}Xu+eK}=?z3=u^Y6t;J98m0zSqTfZjk7; zQGAsbj(GH&D<`cX0|EDWw5RV(>SN$?-({YQL#G7T-cWWh-cWY2htA@k6?gaDyN81h D=)-Tc literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/AdapterInactive.class b/libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/AdapterInactive.class new file mode 100644 index 0000000000000000000000000000000000000000..c0ea5bd5c4b3c3b76e1692856ee8d3d45249d4f5 GIT binary patch literal 636 zcwU`R!A?^_6g{`R_GvAGSg3*+mVgNp!{3zp{*SZjQEN0HVlXK5GGxO{BkDmZu;(3e`;k9*{uveMrSm$Mbpt{P9l@pz# z=7BUaQ?4V^OGeQ=mqV{y+sM@Gv5FB9R{l=6j*j0q#c8hG-se;ey|yMsg|PN7VK_Ar z?cHS0csNo^z2y=-x>Tq<`SMFruu#ni44J6xeKRt~6 zh0Y0YlDj_5Heqo+Deg3oCKFxnw8^$NdLhiy5T?NyKV4jh0RPbl)vg`6RDIAPP5qYm zRv6&#V+E8@M$FYR?xV{1fIqf`8ZQbr=6#+|UNI75dGiL3z893oyjK~4CL**@=c+a# sVG&D=L7*`e*kNYiRyJSU;K^-;1D-i76qY8esY0lhu~L{nD`r;z0MLDq^8f$< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..6e79f378b85d59bfc53c8322c3d30c8226daf9b5 GIT binary patch literal 2866 zcwVJeYgZdp6y28uCJ7^i6k3E*dGtX-B-Ce1DiQ*eNFb45DxwXO$u$g3X5wT*;e#%J zfPVCURF^`RU1~r3qgds!Gx+zEeI-&- z^kO8H-{Y#q(DgvmHEWK+H5tq@xZ_5F`{06CMkl%$dXt*Y*K6fGH#db>hCtF#l~PtQ zHSz4cbX&Vxm0>>ldMu*?>99h8LzBT1taxf;Ar{%B_kvy2i#}YD5Ma1g)N9Ue%FJ)@ zs%2`b#S1d}F~H!>XnL{4EkkFx(u78rsDx|e==A%HW!6+{jSIm(FuW;a2*V5=T7jXT zNHs!8ri35$V1&ZdB*%xhFeYJ?p|8cSjB!j5Bh}=J#dG{X4(uvCp#LrENP~>`@IGzS zb>>JuSIYI0zTGUj;;4)?tfHc4T#A0!T3{kTc3&tIzS+x%iqgdoEK?E9nmQ{B!OLTd z$b2MY4j)rnJ6=x3;8sf)o)rWyWhW+M0da=TeWg^RlLKcaNx~Atz02~I@Q`8nG@pgo zVlI_l+K6o?QtKWh7zUe8jq-yE7gNE9Wvq%KN)o*@+ANrLJ&eQaC9{-_G(IIYWlc9s z29^+qGcq>u8O;?jGUH0EN;<=5S7We^{6`Ge8$0omQmw|7s&!KMgHB+m&N4X_-;{lsE&mMo@)W!uCwXJq#7^b8d_RRVe0Y1=Rfy;8I4 z1@n64s)CAuT#f&~BN<m)9)DmyU`AgJI$Vu4H^8>RYz?Il5_%8@35G^o8g$_%cS#RQa+drohmdztz(s zEbcLy(JqKTiSFo=fvyrgMQCNTc7~4O`I&Ay;G=7o{c;xFbd~D{w7x;BSIl|ma2js1 z2l{`3f7SH|t|mjzF&MZ$b%YzwPOy4x#|vajT}!DIm{)1f4L@#Tz{c#xE!-wlFYaK{ zL0=)C0^J{af#BBEb4(rM?IX-ISo-Y!4dRnIK_z>9fDdh{e%!--8+8^@2lXdnBlrYE zM|kiO!Q|Ahn16}IXUP{>-U_T7;VC^@ohe^i9qwrt0{9XdfI&R0|p=*xd9@E_p z?d0iGr+{H_j8Qq?LD8lYB8lY4q2r=9xQomrr`2~tl`a(v9wv+(N?DLz8EISW6K)sL@a!9!fDwhWJrCd$mR&(!_}zbEJ^ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/State.class b/libjava/classpath/lib/org/omg/PortableServer/POAManagerPackage/State.class new file mode 100644 index 0000000000000000000000000000000000000000..76a3b3b6908be7666de0566cffbcbbd1228b4d14 GIT binary patch literal 1802 zcwUuMOLN;)6#j1gknD)GxUEZ^l!ihZ#|cp$JOT*;Kk`uH+9pa}OaLR>icztpj4Wr` zu3!Vh3- z35FTVuFF=lE*C7@(JBpH)$M)VmJ9jhRn64ux?Rw!AJSJ=9nH}N_!&;!(DpUCp_z3# zU%8=I9RWdxGp^OJWU63j4dXViCO~8u@AXLMw^B)Y&+8;Bne3|R7|ty!*>aPLy4^A? z^O}-jU{@HPNLyyh(M+ePHQIXMufG@X{P}bBGlpP!pIazOVGzq3`D{kXt@~&&FbJN? zFq=KzcuSOAPNuh&;wrDjs8LsA7%FEJHJ#k*^&#%UeG5aVtmOKcK0?*g83MZ5ZW7qJ zo#W#fYH^`#YE8YxaC#@(Ctr1J!>m(`xLj=*rs1qG_~MgA27lVB>0zScl7!2cpfQ#` zzdx=_7DMEjln}vbE=@^@cBSVfjC3Vg!dO?DlW-nS3s`t)@7>lSA|j$9MnsJ9*jFT6 zz&OLntYPZ8cC(_}+k8ldNY<*-dNo=y>8>#hA710|F7njZB@E*v;d4GPXih=vEm+*O zt!CLU9fk$Mep~_t5dWhOA7Cn(Dd!8TTgh!DpA$gKJNM{hskYIm>9zY(`2T3L#51-esMw}~9joi4Cl!A@ zg<><<^sT2c93ts02_?>3plO(vEntTs-cL!|wsuP~Yx>Q6+sW^ythQNet=_Eadk#G_ zV!KLrLPt~42;uqc|IkEN7VtJgCq}G!oIU_HTFY+?E7JqcXy-L5Ai4Nc$g1bwD?GdEgn8wH0 zz(?4`r>No+@~mUY%>coq=j(x9BMY~M6Ngw%jNZpezwR*jzs~0r{{?mU(#?-{qw$7I z2$zyBRUxF1_G-3>7#=mz!E9{)?)4*NN=H~LMK%s`C3b+T2YB-k*RoTQ;(c77`km4^ zmqEPkHI9-7d_|V8Y2SB?9*=sJFIOG(`zZx)6!-uDW~Zb1UYv%h~N`CuS9@E}=pqbmObMgDUa literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAOperations.class b/libjava/classpath/lib/org/omg/PortableServer/POAOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..478941c0dc141ec6953f8bd3ee51b64048df10db GIT binary patch literal 3397 zcwUWHZCBJ*5PmL2f+D^kRg0~lLc1%)v~YU%#N-k}v&l9IRQ_5& z^au1u^>psdO~}4v6FxYHVV-%OnLBfD{P(}V{{ip_dm2U<<~`r4cx|iF@cdB!;P58* zPq<%c)NAz)_w~^B+(5%9!<8fbM6WoyYgOtWj<^vrTrhmDhrC6>3`eDnvxsKs+pbmJ z$j-j0ySl~w>V6XQtiHWkqe#a#POIf1&?+&neKdGSi965mG&{PX8-EZ}rDp1#koz@< zG@GYuAMGF{>;yw4AG_|J=#Fhh+8D+UY}bscel(!!y`kbYTxM9#=Tv&PJXdPvE;anJ zZiM!UXt}43V7`>aC5-Nd)$;zThHHgdq#&wAHNnL-e9G`JAN$VtTq|zSjUJt?zwGd^ zWt$8OrTx`h#k(3lV|bEJ8VzEXUWThC?`zXJq7`Yspc5;acFPOnlvmWC`}~0W+%?E` zf55?)duBPxL*sh07k}1}2cjXxGfh}LYz0xH819xbM=frqh6RSj{F=ACW}I~*NORoF zpRiqqYbi{t9qqPk(r|2i3&<4KpcLiY65|{UBch?BC7O6z729luUi!pl#0+HhbutQ1 zs-Eu(&M2H%&Q6rjf_|nnm_n}M6NaVyqmZkl)}LXziy{%YlEsrRdNOXZl&s-LLvKgQLLiXvW-ViED0M*uegj>wU#qU5ITopT5I9Lqo zML}j9+Kx#TGtAP!4S%i11;EwYqGu$mZ`NVm$&@wp+!@)X7V8Py;E_o?d=Ik zx6}ngQ+({&e;#v}2SKZ&uH)Y`>svQ>lJMyA-qoFBo;^kV0Mc_OW^Z@MV~6oc(DR&V zu(LHNR4oA&Q<4EAJ=c{U$3EaeM?Vv>lPO|Dg%+aj4kp66U#&NiX8 zGO4#CP$R(<(vX27F|$fcyq!K59}nrX;CUOm9YYF984MyN(@IHrC?4p9{!J$RTNzl0 zG#y&)S^%BeVYzM6QfL8cNq8aNet=ltrg!Wc{Dtk%icfWYJ1>cCA7fzn1mb6oKBdoL zjDFYXw=s-h92dxU5tGU{O7@cY;KtQd)D))4cO5sBZ=CW?;imM?;8rT~bLqQ{*;GE^ znZq535Ba;emx`X3fBO<&^+cCY?(y8mVvpwm9?FbMsPyrFP5;H{^*zQnDc`d6J;k@F ziYN}t2GWb#0mS zRq5xC?~}D(gU^KWzD~6}AWUp*wh6_$>8c7QFk8h_OcACcovM@m)rGR}Mh>%)>9B!h z8?MKfMR%z)!mH?E53@&D*og9t5}C%L<*ZKQz0I~CW!aCi#1nqJ9D4gZG(x3i`nIFq zXg|yHeGc2ci~o;hP(TR*XDfJ&3gZ+0*#fG3$S=)tnr~h*5@V@$gPAWmWsYNo5eQL4 x9rK)3MAB_F)(xKhuW-ygC%MAnh&5L5*$P&3^R>L^`5(!slpp{A literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..2dfc3a1e33e9e09b129d889f3a60d43c86e17fbd GIT binary patch literal 2943 zcwVJeYjYD-7=8{ZY!Vh)BKLAB_olZ{FMtG*G?ccmZE9PCwMf|{$8<}w8#bHLI)2yj zyZSc}wPj>fzB%KMa(vEaCD0_5DU+F#v**0G=Xo!?fB*B_9{`5&m4+Px*BrN)aLUER zwBveat|VuryCU7hbS5=z<{z3xnMf7PiYMJv$(3edZFJSDdew1Rsz_Huhd|e|xnd?t zrd>>Aa?3LB35311icC8NDR9{M&p|pfGm=Wo1vg27UDqtz@~#VndgEDv4s{$w2)lJ? z2n%!?mMy1h<(zcqRAd4%!^xYatm#_nIXLX_maMA4b>nT2B$XY8CUCSj-Y(<_1m4lH z6T2cffI}J%3LGlhwLmW8=4NEobFI853px(th(Ki4vWq3@IW|={+2xYd&`p=GpU--3 zE$>ZA1w2ZZ$90^*Nr4?!L0~__YYw# zT5_A2PsXzvh6GMDQaD`Bzaf1 zOB7QjS3TEMy*=3~1M%%zR;;9Sj3CYK4t%_Z|6Ef$wjvykH zq+vqf()Oa&a7Uo~^=L*?Hy1P0qcf?wiOf_OldR=dsy%YGBGp`o;x;m>hNc-|iyn(- zLt|+~A{3j|F^5kHsBGDeDtc+zVPHYvSmP#LGON|J zS@mAlJzXsc^cY+Bg=*uxTxI_lTNzVgIg^v?xUmIu9AO+fmnUu-S1B>1B%5>7GAUPw zhc2?h)rr9Uw%syeS886pV&0}&i?B41oYVjBM#r+6+Pjs3#j2m(D8`XtLMpa2;t zWCKiH#PlU`jL-LP;Nj#zLwm1({|y=amizB~D?N1`249BC`)-C{)8bz0+#+u(D2H(B nK5p4#Y3?g8TcP literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterNonExistent.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterNonExistent.class new file mode 100644 index 0000000000000000000000000000000000000000..b09e0f4883448346a2f647482d4139dc134f4efa GIT binary patch literal 631 zcwU`RO;1xn6g{`JeON2sPz5zC`AC=$h%v#C)KU}7vs5eH4`uQgc+52OrUy*u={S1;VyoykOr`myYLFLmaX@ezuIr9YjGgHLbk;xJRLdD&BaudRttCM^F==#LD< z{$AWPUi+&ETiS|{y7#w0VPD7E#eU>jF0(G3#js;urS9dzS&|V#?sm~roZQuS&kJ(ppGIMnB%NE tBw-#4j6t9_64+&C;Fj0cukrL>g%8}*$`uxdtdT;<7O|9@KhJw!{04d6kt_fJ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..5de0e15b98681f2653b489efd43817741891f1e9 GIT binary patch literal 2915 zcwU`WYjYD-7=8{ZY!X&lBKJ}(EtjS(4Je>Ch=lY?w@qzpuokJC^q4LryK%EAt$x?> z2f*(@)RvJ^`R0s2%JDgyrGciYOlD_x&z|$%p69*n{`2qee*(CI?=&WFoa?lO~_(dx*FO9Iv$v7W};}? zg+wOzK;}Jxu(wf`X=gH?n*yP}cvhfIZATHpK^+>x z0_}!n%b98^C*1`Vmq5&L@@6q>x|VtmHru>at0Hj2XdOpVSz%xTr~2Z}0**l7T^;*z zAcCVfuHl%#@q%3q82>{C&M^PY8tUc(TnpM&IufDaIND4E;6XRD@{)> z%k{i0dzND_dwGGSzD6gFJ4;6Mz>`f`WVRhQC!m#lK_;$iPeUvd%dSY5Rb}+;5KP${ z$(FL7jAu0r37n~?Z?shQHb!63FyRzeYV=>$(SgHJT*CXREI;7R>+CG7y3QlzHrWht zJR8L|e5m1iLmn8vj*sv$4{8{f30<0{T3uh*3AY>|Ow^^4s&PW5z0p`-iX6W=Oj38f zHJX?vx$e29>glQ7*pIhnS22>(aT{qCZs6e!?B^TWa5wM~W@S{z7{&$mubIUvHIMF^ z91W8KS6hiy!<0bho3Y$ZjVxzoN9R%tlbM+?rYX><*e%z~Qq6)W?jWOTXO_|J(pm9r zXgrNbgktkL7VtU2lq}nE1;nIMzN_O4EOMHtahW!&6~Y|cy$It?&@Ty`uAiifW~Gug zE8cd!)77d#x3PCWsOHVfb@q+1moX)lGdZogj6Hbc*y5dVV6cflWnU<0gIQKT8 zs&8CFh0w+$*YcS5`%Up?s$ShnYk1Y9a>0t{Q0{#TH#(}SrgcBI05iw6hK3HYlU_{6t%6Q2fFACn?QQoMf?w_f6sG4Lx!USi^@@d9@i zW5yO{rUzr6{f4OUq3vDfzqgkrfmo3$)`?;BPqBg}{l6tV%P z4r2O-I3^Ycw(xLzu&#Z`KmUP@{>b%DzLoBp4vGw2<@_K+uxarSb;ih>3d$jrnvYw2 kSAN4P;hXq&XBHlljwi2WA&fOV@?nI1YpV3teVvW}0Q`yZ;{X5v literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/InvalidPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/InvalidPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..62e0779fc74ae54986d3179abfc1807cb15f9c74 GIT binary patch literal 1185 zcwUuL+foxj5IqwT0?P`BT$BJt1x&(aMZ5>8f&gWxXrhrQPu7x*VIb_Lb~gch^3fmh zU8@u7(cwzwJmVRCBC)v5(8UhIG3_5*E21z zU{-28G`ai!=hVBmYYZV_mG~Zk@(itW!V=y*LrW}PU*Yt+izd(2&z#869P@w1o07-twb9bT-7 zN{KsCSWL$?jA}?=GK>kDz-g?GDNIxDx@>*+HN*Jv60#dxyyzvHWY#c-NE>EIWz_Vd zN_bQTXLa1dZJL)^t#YfxFx9LlXF|Sa#d}v$++!GurT-0lpd*P3%dA{DAyHLv;p_2 zq<5KOOnFyGVL;Je_32k=FQsTwUn0_k-6WAks~08tJk4oR8?9%s284 rW9!6w{R`rUFnVqr;AY|zh7WM(0QWx}Lu5kQn@`nbC4nnx%_>chGCk=|zUK>NBMf6#x_yLuVk^C{`aBo>Q;` z%|7fyhlF;9j;v8~?c!E?f){N|&)9rc!G0WI@FjI4o8z`=(9$YgdPF50B$pe8C%a7rfn`xQiRf}u&DB}z!D8rT+`WZ1buVv+kP1*dU_M95fNvw4ayWO%{WO~c9a zM!ooIMsBE$g=$O*6}D-m8Kk^pNHuzRQy}8+rp|MeU$br$xzO}-wG4yCVuhzI7CJE~ zfwoz9rD7ANR<#+-+$^_bT)^u>xj}|gfoJd|BZgrKLp8-laVxll%QR8WEk&twEnnWk z$E(vUxE>=FtElJ^9?e*+-A{rPrw?dE*}%5LCWZKdZE2!&U8+ZTaNCfAhq!_Su2Iu+ z!8c^wThnanrR*a;k_sj7DcON_b`Wdgi`q-ZeB zrh`BmbW2GPi%GL&W%wms?CSk>E*Slyj=kM3BC z&?@Ag>7xk>J)51uD0b3QDH~uHcGKI3Htca1FAAkxgjey}3NBXClbuP8 zzS9nPd)XLQFakJVS25~9sT58b@*@gBB-;~O!T4Xe@CXwR)iqq7@lUT}W~|Tu)?>Wg zN9k$PeSbQX$!G<4J$5?W8#Gd&e~Ua8afs^vC`wP$BWyPUahJlo@F7Cv_Pk;UQQfZxL>t`pUD(k7H%!Kb0{BivoVR~6oOIa&Tda{ovY W{yhNyw;O={h^glpvM@cJkuHXyO! z1NsB~8`SYlK%%U=u+MmO=A0SN@8`!S0BiUfAVa7a8wqn3iH5OGo^(}H*$ZVwkQ8zv(V;3Mxn13m#9sbyR8o#XD7-Y^&KWc(`Ez7HvAqWv#z5P!b0;^;_5KkLv2alaVMP)U2#ExpU{7ea_zJoICT+zrX(pU>M(NI3h4?JNdX> z%*W?!$2GDAxgebl>BQ&KqjN@X-N?)MtgZG8%bk>kl5{k*2(&*mHjH?|u=4SA_MyzV z0zr4XB$M{46gZuFiJDB$kB!C`{U-^5qc=>;bZ-g-`lA_v7PTEl0LOG_2nw{NOiRvI zidpF_s&oV*DLZErGKOQSdw;XVT{Fu9*HcZWpHR-sN8n6eCwG+Y$usEerMGOjR}oFffauE?#NEV-s_ zt++XX<^Fo?`km!e<9rhh#ba%4Co7;8Jwul1?4dwx3eze}hdq?+-)A^#Z6}(kaUz=0 zFeGrUR;-C)$=#lK$$ru)Wy#cK0j-p{h+6N}fZ5^6dEhP7SaO-d7Q0t_m4wJCL26uIR( zhML#0gS3t|1*iCr>KH?kW9kFH#`IF%h#f>V#2QTKxQ#mkts6$6LeCQimO{gnz+e+8 zYM2)2em#Y;(eah^+{FCo;#7Jzh#BU-XWuKgN>WXA75y= zIu>z{sTWPlb_B$fa=x$Qb1ZRK)p?gRDrJ(29o%5i23(f~dTLLS1*2R}8fAB{mlM$^6mNj_poJ}1f7Y`tw9W+@V|9n7vZ0|I0Bv5qu%BS-r`lS z8sIqE_#aZIvhTc#7TN>7PZ9YWT~E6X_k?LEkTk@Y$0++>^us?ht

      &cq_0 z{f7A%NoDTG{_-SgBiI*y*gh%>tWnuKS0G%iVc|S%TtUf8XMmD1ke^PFzX$k| zXdV1Y`3fssbyMiCVGuW@zBc?6FL)7wKqOmJvs$I^Jz&K$#EMAYA>(suC#P@7V{&P5 z7wa>zn)h+<`43d|N3MVJPdi*#SN;0@8H}0 bRd_@>9=}qBAU3e+(Fl5Is`a)!pY8tu7=6X} literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.class new file mode 100644 index 0000000000000000000000000000000000000000..735333ac4f8e9d107efa3462ff5c26f6447f8ce1 GIT binary patch literal 634 zcwU`RO;1xn6g{`JeOQVh-+~&KfQb_!#s!8@3MP<;ZK!lVeM}yMk2hrAv|8g2F!9&0 zB4NP~aBbqhG2D4A3zQX$x#!-=x#!$F^Xu=`HGnsG5uiYLYiumcSuC2yI@w87OWB^X zqS>f5W%OCbN;EpBDsr{NDtX+mMNaorfFfb(wzb|k+^&hEOxfM9kvezUqyfr=mv;&0 zLkF?96Yi!?yMBOC!py1cNuiBkXDt)`&2tEoSzfl4%~sbGbdBmmPuEY z{(S#Y?fzc-NhrV9sdk%$k>!;(p;$M^s)7+rRq+@Tgo#k6>SOn;qwJ@F!&GP@Hjr$? z_3*OjPIN|i7e44+HVCuJVZKlz(^#~e)oHx3()N=)^^?r=fL~7f-u*usq0%y48>tW4 zkFs!&!E4{dpT{aFpoD<4MLa@K(O+Hv&kst=by3hKPVJgaVDFYST?P4U5Tc+-wj!{oYQ$ zxBVN|w&2uh>$lGIM|Jv~&1!@sl)=f&$=P$>+w;7a-GBc5{Z9ZF@wJ8>0!ha$CY*9H zG3B_PnJ>v1=`Kk(F_lS8nT1DYQ6@6^MOpAtC0CmBE2)BKEy*!isz_Huhd|e&xnw3v zrd1r8PMS|FEk^V72GxmLlG^EwXWh(Kh%5L3o>=bH#NjUvFxgJSyvN%8w6AKN^*O7 zPsXzvh6GMD5;#(>cq=2Xco=g^^YsK=(9wl`QJlwnsxsf_$(!`dF1XGU3<&QuR*Av{#xdOtItlhe__PY?CJ@ zN-le@sruSz#eaO8h7~6%9m7bou>%+D(4T2)#a8em%*%+5+ZYwtxn!1V)I88KJsQRZ zE^RAV4R-~)*9SA4x|PdJjZCLz$1{^*Ob8rnq1hvsD^g8_DDEJm>Sv1awP>$+HZ+<> zBto$n9kck9aLShLxB_BaDc{ra8Rj@s)YMFywJL!Qwl2hY8~pbfW8)@WGON|JS@mAm zJY6ja^cb7>gzDgeTxRbWn;BDLd6P5ixUmUw9A2C^m&b1zS1B>1B%3qSDkWDh4qaez zs}q5TZ5w6WuGGAGxx7WC7GY^1HNF4uMaQC=*1MH~T-DEQ6l2IRotBakIK7ov)yuA_ zMrh-SYk5q3t}Wn9&1+cMCSWzNTzDEdoKJ1RkB*uuYuyhn0L`)O_#$lNEyXGjopEYz zLEg4h_n&C{vK~^rbe!a54)HsNYU-8DoyI*s9JogKl;FSM|IYq3M1SUH2XwBx{KKo* z!&R>fU@toPA5l|2P+mX><$<1Oi2aQt&#?b)=not<`k&)itY=^qy}uyFyQi=19`!>Q zSj zXha|N?;lYA;cKguC!QqW@2=sxZ|w#?4y^t_niNs-{#D$3iSx$5uekLRV^572xHA_s z)-X9S82jWmOb-%R_TJ!MJ}sRz_Icp8m#hL7*8^4CWK#sd^lKmx2+Ks5MnjpkezDFPw%QqOUXX+c@utFKZJY=Ad4KQ^P z(^teXHaD<_M-zh$?Y;i}w`BA??!Wh~^wf12d>Jb5yBUH_i+ibao4l!@9KxylxXEYb iH>{GripLwX@FVH?>5VLev4kf+jIeJ_mEW?jv+^JNp7iPf literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectNotActive.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectNotActive.class new file mode 100644 index 0000000000000000000000000000000000000000..12158c15c5b8ac557917a48ab698f20d3405024c GIT binary patch literal 622 zcwUu}%}yIJ6otsYjnb+VVJj&kNkZ*P4y4dVaH^Jxe()Z`OqOrE%4W>FI6WrN8R2ciq?wbc>&m3BN*j;M!*f8Hz1rwO7;vJ?5)1gjPvwz)F_UkBNE;JDbNRHwC_^{|Mbw=0= z|NEcp6BahZ{4$A5W6^O|r}6$)*H5wHr&!|QZZGeB@;^30rDOUwQlGUSqxK5E;~V(F zn1BLG2)J6s6e_H5_$dph@<;xvyw32+9xJhywuhMgkz3|@t*`=h6wyG9tLn&v1uU|9 mz|t6S$WHGqZ+{wM`8DAS_cU|D;>a~7_-YkvdH8zX^Zqwm^^7F| literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..35c98fa61c836995524c31f23ffead3e48544de6 GIT binary patch literal 2879 zcwU`WZF3V<6n-u#Y!X)5M&1k9QeK+2G!#^XAQD0$fo)UU8mvX@CcUN$$!^?iN~_;> z`~mPg5Vd7wRK7Xmk8*tOW+9L?6*@b!d-vXRo^#G~UUvWa_xC>mjN>~EI|ME`ZYkkZ zN{MO5^~^$9&PsPhx{2vrYT7K`H%l^+E8LSsZ_4pfMbBE18CkAMS3{RT&pmU+Oq5N# z6bK1~y|t=LJ4;gFpz#7botwFqO3Vc(Nr7FLE!*<02!w{>d4Vpq9YqMcb!Z3+bQ_i} zr|Ol0bmx>)0x`oWn&rIdTIxO6?DCean!rV4n?WQM1icbCJQVNbZ3F`E>ez{05$wYO z4f_QSlze1HARV^3}b*ywFDN$AWmvHA<)}qSH~%wrbk6rnx0>3_G$ zEXQ8-iUJEm?H1a17L3kbCp%KeJUebdK&$wIOxe*bfmk4xU6U^BDLd36n6lTBZ=dgE zJg;F);8-(p6P2pBHt~Xkj8k4}5Pw!j4|=0GgLA4H&vWNhYUY+*=Yg`B>=bQ0AH@f_ zpy9)|B+z*sAK@Yo8UZdcZfRB;<$S6&)@l%5qA8VB{Sq?mwf4$V%=kTFlDG5Q;D`y5 ztDbABKF(~$dwd(9ii?zvYe=(+1NhgXKH1iKn}r==J|=YBz)gXjD`vS)&3&7uMMG9# z{H-0;a9g17bw{qHt}o`MCuUM}+1ykZlbmTSTK#ghDplu4aSJ(BFVpmElU9o7LpRfi zL?||^V-BA&jEZGDu7JoY^iqsA7baY%8toXcJ}E>U7kNw#OCH5He}$Ih~l znR~*|cWjERU9EeK64_>DmSAZhCCC5Yf{uG?8t+z4E!O;;Mv*~|X|$A-z==2UQ+>$V zYJ(ULT+5UG5bgkyt9wn9Z3L@^k_%4*hwtDU*w9f|rL6mo1p#v`JH7~;_Ko}$h|W57 zwZ5+X*Z)ZPcqKIJ#hxpdby*P$_OCuN!EM};$EcOgP!!vM zJ&*e53)H{+5|#3dB?(7ySY&^rQ`IxbR zsmamUr@vulltJb1jQ-_Q(oL{00<*`-D6mXsOI%qzxlfuZ=!1;`I5>@}@6IqOqoKf^ zFt5A#l4!mB!}$t}T=kLYuVE55qW)9@7YBWdKqyvdvf0Se_dc+SGQy0=Kp`K*)Wev* zVH}zHkqz9R9Bpdv@y~xCqd#)}laJEh&_S85tDNtq3pNq=Q0E4DQ%*SyrD5YL-<934 gO87dyZOy_%((&k(EQGOw2Ywh~A5E3ss;{&5ACCLsZvX%Q literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantAlreadyActive.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantAlreadyActive.class new file mode 100644 index 0000000000000000000000000000000000000000..05311dab76067c9d5865674c413b963dbf51c6fb GIT binary patch literal 637 zcwU`RO-~y!6r2~5EZqh|Dc@h>2vlNKAyt*AkU|I*)d~WE+|6PwF3TEuowVui=pX3` zsfViP9^uG;K|F85fwm_O_B=n$n;F}G?tlIQ@D@uR3WRss#DTtygQhlCoF=j*O;?(r zc~EPL=t9IYa2=7_T4JO)>(wHwy3#|DF#kAPKRDX11t*y_jjxfsvP!2O%7o>ogsXu? zu(uO7Qmbsw!!Tjuv*?OIX=kKFqP{r}VJyp!ZD}&rJK5VI&?mx3U8kAlJZ+J5WXZq% zesd>&FA&NfRI2P2VQ6KwO(@p≠J)@d`#!B~(L|%KgsesWiuZhw)HHY#`W%&x2;s zo~w-TK78K8Y!W6{!u&>wNaLVojY{Lq)wYW=>!M6^!Y}7NXa5h4;J0+gL~>WTEVKV} zSa(zWe=LInO7OUv!wdL~FZpK+sPH0pY2L@Uv%yG=rL}9k`jJy!^X@YO4HWSa6I@mL sBurw8(Fsfs1h$yzxaGAs*O>WR;gDyJa)qfrYoOq&In3wg3;E3A13hMw)c^nh literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e21d26b912cc827856fd452f92c793d3ca2acfc1 GIT binary patch literal 2943 zcwVJeYf}?f7=DgHH;JoY>K!jAUI-x3Uep?Ejo~T_p+I9PR@{Wsu$b(|%?6><@9p%v z?ccDr1*cA1zjdZRs?+CeR-+`L4o+rH&Ytt$p69*n{`2qee*(CKZ#3)>xbC=xgi|Uc zrX1HZb458L-4*F3rZTB1GylLW$b>pEZ7)@HrMbA4%6ry|9F@hgbTzaIbS#@IW};}? zg+wN|Ec2c~*jp>hw6iD$4jV5Wq%+gEQi<8%CMmG%x@BA54S`TkJS)(qj-v=+w+;j`qY`g&cvvdpdSv zR|E%eNW(#aLj}7U$YtEzw5)ipmG|VLj>9-25Sg*;LQ#5-P1Q|yxg<4o(&d}yGoD+` zdlOOtkJ9CF9Vc*7V28CRu%F@838yISC&M_!n`Y>u=*C$MX9V^&IM;Cw=NVR>@}69f zt9e=WEXQ8(@&fZcjcyuG=8e{&CtLE!j5}^lKr8uzOy2P=4Y5=#yCPjy)@08n!IZt0 z+-ByJ@vMdcffMx<4wcH@+R#fPMxEkfEd>{KbYNc;7x2C+&JTF`Bzaf2 zOB7QjS3TEMy*<$^1M%%zR;;9S+(Me&9r$zvn zq+v|p^7f+DFfP#fW;C}_gA19dq3P7@SY|Se3D$Bm)h@YOmTE3UaT^&`LsN{fNsq;| zp^-Eq5sJ;|n8oJ=RI+Tx6%b=e`Hqe+FvrQFhG*KWRtUAfc`?RYFfcE0tbUU&nw3i0 ztaz{Lp01Vzx{R&+LbY*TuCjlOt&AzLoXN>`+}MISjxY|LD`SJkHA)O9$;R9?P0F=P z0~cB0>O|mP%WfI7%T=#dG4E2X1y~wL&guVmqhnc3?cK`2LdDN+6r;#6p_Y;oIP*5a zs<&Q4mC(i`*YcS9`z;Y?s$Sj7b`h(&<-*gzA>I8Jj&xL2W$S))0cwtK#}{EYzg4gT z(HW=e=H;-ZM!?C|uk8WFOxr0==n%hYsHa}e+-cnN8-i z?omI45w2rU9or5AM=*|KnDl)eq+Ap+^zanC-GexKeQ$l}54?^t7Ui|0_c<=i^*uvk z1DDqEVLke&e}9+yU%j$QdE!X|{_Z+H@vYs!r-9YSq)8DK?_I~u7r0>b{ffaC7=2@|;1tR@kB5FZ zy`+tff^fq8-DRMB$ML)99u~OkB-!_2(r!e3-vl9c`yPQ%ELUf=mZ@)j!wO{ti;#gr zHo(+DOkWen=v?0h9!&JtwfFk>-;vSpx&Ohp(pA%8@Fl3c?`8-#E$*exFnLo!IfPU5 mag)!=Z&)RL9S=8W;YZT((`#7>V+D_V7-8ROh?7?LQ|>yzFk$+W=!sAnZ=ys;ee)c`c$yvC(x$9;dbmfRBf{&t(W&DsZPDq@AEV0YzFb^;>t{4Vsb#u0mIun`s616) z_Y?eQEP)&f2)LTZE0h>V_&0MX^CEv)-p9GK#Yl{W)jLf5$|zI3ml%N>@~C5)t8$-& q3T7C+Ky@In!%WXDuCCo-_Nl@#&onZHnLcZv;H!BoWae+OnYRzq?~f+{ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..21a32d107cafb998ca8158f7849e23d65483ac56 GIT binary patch literal 2891 zcwU`We{&O66g`g=HVG>&5elV%<#*GTh5{-!h=lZ4VB6HT220VpNuTLLvKu#>((3;@ zegOC!h}tqTD*rj-hjKh`voz2&6+4;PynTD`x%ZrV@7w+RpWprfFobV4>=C%;xW$B1 zE+(cO*E91aIV;^2=_aPLscEzD&@9S?+A(c!%JEVK&svcavQ&|-hBkqY2j+^ID4BLK zk&Wsy`EOiSQcZ@g8y5eU4iV=wka za2Q84bP60P+O@zg>*i-<)pMe4Z|=`}Zmr-= zN<})#kSBDU#CrmJtR;a%Os^p}O^Kfj;}mPKm01*La8AQnfrCwfb)3fqrc`jH>B&X8 zT96gba_mK~Ah6Ke9HMz=!DyX!vZaQswBzOlw6br=qMg_gh%I8-Rq3*$Zuf36OxbJ6 zT~s_7&uJJGIN2!OXu0C8jlL3L!YM7)rN5-30|%qHh|8)WuW;veZRVC;=aCAUY(+Po zi{gEJsNsXADlmH;*YFV^)EO?4xHQZ4jy}JYY$f2AXjmoH$b?LLt+}_9H2zqa6z=M7 zL}H2Ls^^+&mNVNaAKwkCQX{3~7Sf#L0RIi%=bFZEJK_;mWK_o(#s&7Sn57y$4{uu- z4H<#U|36a=cLciM%;Z*TWHCEEI+L2qWT(QI6zJOO)+1LdQq6x9w~m4E13~vm==S|vbiQr#TXtM zyu@y1`H6q8(U^9p8kL`&Nkx zL}#6vTaaUx8u#w)U&n(=k+xGjfkXU8p^tj$a;0(2?*d*Uyi4$3@PBXL2BJT4u?IS@ z`~1yeyu+(rH^2e3^FN|a^T2rtZL|k^o+0)Zx}M?CozU+%X7oMB@mNp)I!^zL7@s}e z#O)*wFi!jo)P%O<4vu5ekJCw;C}QYE7w_7+7e}8TsUHJD#0mPVh#h?|aB;r>IT9Nf zTF2E!=28Fo0{!oAqSBsRl7PRuj*oq`8~7wZeN2gzNb$aP+GV-D z1`5&%^LHO#5bYqpb-u(RSKSo)E11NMsBe}a#WQ|HAQa0t)T~$OJ0DoFjIbgyaL5Im zI>_m3@|c+K-@wDkfrj@1|M~Y+^arkg^ig{1J}5DDRrCE!!6xDX`ixOGm6Ss&^%ysK kui}PP!PoK4)+#)v98X@WLKrJ}hRcFU2jeA%SXxXVC$w59*F%|{j+B{Z&J>04QeKg0 z;sf|JK7n!1X-!10yg0M=OuoI=o-^Nne)$IAC7wsf5$e_@!d@n#W1W|0L)BI8N;%PK zH#)L^ArmD|oi$10T#meQ5%Pr9-#yLt`@M!ZNtN6G)K?>~t%*=1Y}^M%Q)_Y1iuaAz z{yM?~!u$t$C55(vBefjro4^pNX}0Ytm$KiCTP2DLXo-rauf z5Q?w0(SDaOQ`_tj@=bfLN|?c18Bb6lRAOz^(fIOAx#LN~Tx|OsAUTHj)5E+U=#;P> z|KAVUAuQD5>?T8L64CWen`CFR7e-hPBP{V`9|zYV_8*K;>e{jEtG7DLF#D%-J<$A4 z+>RUyh`3t8LzGw_@eAfq=8wW9d9CuvD^_AHY~5k@bA~+SwZsbSA&(a3xhhW}EMSo} n7%WWskK=z5|I> literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongAdapterHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongAdapterHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..098b707e3ae2f40bce665fa9c7588a46bb130d92 GIT binary patch literal 2843 zcwU`WZF3V<6n-u#-6X7SiBKp7EbmQQ8c;-S5J^MdU`uLS1GQ+~q}OyyvKu#>zUX%y ze*pdtL~R)vm2b}Yqa2^RSxDP7l`@&x+`W6wbI$XebMEdx|Nj0bfUEdc!vTS7j$24L zr9xuLaXm9vlrz#@k#1rtlbSN~kIaHh+;<(jkXkg$o^;1$u`FE;Edm|O=8Bmpnsy

      @OCU01*@dF?9Gk8?aCu2;=w`_6`!k+f&3ltl z5sotCDIKTrj=%wHQQ!#Es|!t2;wQs6BcN|(6~#GR&~RSha6?cX7jcQ{K%=b3JH}1?E%~MV`)sGc++?;?`@(o$6Q+oojH7vU#U3SuF?+(M1y`J1> zrIYcjhCzYT^^%R0%HI0OO9956;$ltmD>^!GIEu@7S2f{#+}Wzj?2_xOs({I6RO8tw z-p2pDGRF6#2Vwc&8XG3FY zL?Ses(J_n9NT6idjw>K0l=FQZ4=~4*LLGu>vsxjwf!&)e-h}bIz{&cPbkVF-(q_eb z)z=KQB+z5*-S=ud^Ky;zVeAE_%yK4AqEp5mit$L|VUn1*Z4A-EuSa7owiRLM>fjZ2 zE=x}AY||;2u*+4i)){ZojRja5D8||Uhu5*JPTfN)qlJoJ%_zo^VF4{=C2;H^@FBNGgYsSvR|g^{BhxF;30eNH3I0Ust(rutOB+?ejVS0Q~Fv-3Pfj| zs+*UimKyD2jj!23r9{gap0FW)bI@MBOu5py=DVKP2=5a77yLiiw~6S_TpWPTYpcIG zgtvIrYX)dTJO3l+u5RF3 zJ@csle4hRfU!l^TT#|slx`B^;iS*-xjBk}*(_ zPME)k_=0GM`3>_W7P#uB&|kqMZbW^H1Sy{LBLbmVuC8XSO5gdwie-cqk%2=t;M74* zUz5l9T>mB>O%Bw(+x+L>Q_&x|{?SM2srjJD)K$$7F$J55ZS)zXZYn8l#XgRqIk=PgBvh&dbA0b(A|-PPF%% zZJB(PsS;nDHEG*sI=QN$OlUlowDv!}Z;FFlx$VnDoq26d4OPP8--NS)ve?;*w~g1H zWu6hHPUN{1+6s2mGSkU=1S$oCj$))|ShvT}>@n}RaQcf<%ZQAP_>9M$_IOk;*I2+R%y jHklc?)s;85n0u=5k!$t}g_%BUpb(-3Gz#;VMa`?2Z95WgOtn$&g_A++ew5Ef`N zEL+~I6tmKuQwa&g3@2w6GNx;(`(U%lTd~RlSB*CykW}u>NZ@2&yiukR2)wQ1Fq$Jc zhT|GK1diwJN?@0Evoo^nxmM1T%Q{Y=Qy?;H+4+L>9GkAYaCu2;=wirM_h&t~lJlmd z;u~eiQ#wxL9f3pEvcOTMSJRoM#7~BCMxbQ}sVL6kyoPfEN9tngxPXhyCg)1ilS^_v zCrh5?*h^kcV6m?ry?$rWXq<7fp?s{b<7Nf4qHoAjo!S?OjbYhk>9UW;`gR$P*c-`% z)j1i@Xc!haT`SmFvE*%xz2raP6qc)kU((TzBT)?DUDbhCxU*B1xfR!Wq~awTF^y-U zxQY)nykA!UCa&W{e8dM;a!cea&0@8MFYM-73aBM&R!KD@A=BQd?4JUZiICh({UT)0*BYkLWQ2k_AG~n zNr9mQC8^=AK-a5D+!`5ON>7i?jLc1@?}ahNq1)lnBiBn(O?VV{kXHRM&3yJ4n|LNP zo-Y={JR{WUmoh755*ysR(c%sGE(&zlo}>z9xtub~ z-gZwj)QUilv4792$;`=h&W5ocm@>!_&q)%~ObvOIPj--HADS~&_t zXPt_hleaB3)g5&&*I}hY(;1$uA%17jT)jfM(zxaep4SNP68snZKit2C=+9gng3fER zzj+OB@v2u1(26$xN7N}DI4`4#_CU{5#QsL-Qyje;`U5A8{%7cp^$cvH_ZP(Y?8!E6 z2XTOL;!i?NV;kCY~k`I z-m7IE^`9@&|G_pY?a3tx_^a#q*hjm8PXg4(lt_sb@887D7Z@@Ie#PhuOgu53Zt$_-1z%9#f8=c2psZH9YcZgncyCdh5Q=#($m_&}#qy literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.class b/libjava/classpath/lib/org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.class new file mode 100644 index 0000000000000000000000000000000000000000..5d33c123cf5861a2199b283cb6a03d778c3ea793 GIT binary patch literal 209 zcwT)?OA3NO0DWVrWdyB)mR+DBI)YgUk>*s;N=6wZF$bp6!?oxD9V!|j&nm%$YK5XnaJmHSoW@Dy2aJWseHurH(7&bO*2R!uR`Qn9 ziq{2=vQp%lz;1cf2m%rkOnq5DHLvxx^9JT|PT(=ws9fysl}RoCU97rw$4sHC5-ecD OG3Xj)Vbpu$o_jw_h%xy9 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..69f179430e70dece3039719394494fd29d38169c GIT binary patch literal 282 zcwUu`I|{-;7=-8dwHg&HEG;~Ni=C}c5QKzyf;Ievm6(m2RmjyWJb;H16VSrK!Wo!q z_+}o@+a16ZeSsQbVr(qUDVBk;P8|~7v%RvFA)hatyTF==^IWHKU=ke_0u938sIE#T zDvhOoICA6!T7=<;wDiNpTz>j(!tB2dKVz$$Hfb*45ys!#?9Gtd)oz_S?FxdoHy0c6 cMkh=d{lHGD*X2(_y>t@-9aJK8%dDaI0)D$x@Bjb+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicyOperations.class b/libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..f9c6bdf1a2f97e97734944f29c14628fece046d9 GIT binary patch literal 282 zcwUu{u?oU47=$lst=7dSa1>n(P6|#cI0-E+xToc(q{K#(w&1Hd_y9hXm<}#3;_x5; za(CZ7U-t)qB}P6v3~Oz2uFpA-w5dd@C?V63;W1rnvQ=bsM%KzQkF=86ExeEsmDHv6 z(PJ1Fq7ht)GUs7hP*(ZqGfY02`!L>Z`L~n7YlNzaVKti{|LZ@s#tlP|=-Om-kjlkO af5I+WPDjSjb?3SL%+dQ8v>%2}I|$zN$yTfY literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicyValue.class b/libjava/classpath/lib/org/omg/PortableServer/RequestProcessingPolicyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..cf9025528a47d244ea9a459a8a7812da18ed7311 GIT binary patch literal 1862 zcwU`UT~ixX7=8}scDiXAvL0tS&{=TlkBFO4VGRx zdgbUJa60OE>5LaO*fJxd-upNF0saHW_na(+Qrin|cHi@!_v3k=_u2jH-{1ZKa222U z(8n-qTAMMmxf#owmaVNfc#&J%+=>5#?~9T?_!+_njgq-SA|7iw?PBRvMm22R-l39h znN;RhTQ`l>bc%u9WEe=AM%&g5TQ>J>T^d0C@5}!%c&ppOLs4ml(dueZt;Un3bXl$D z5;xUksd_7(ujaCuii-vY!^ra^7_Mbbz{CPgEc>R^<@jo*R4uB7ay(lS4H?7G|6Cnp zI7dQ|jjyN$k(hUd3y~_o8#}o=iu}{dDuXf*^*3HK`!fv!)ab_pCP*j9}D< zD^IDV*U*okA0a=6Mc}N03%JNIn9&WM?KIc9RT9H71T$uh6rqtW=q#N9xNuz{8WX8+ zD>#iof@FWH(`Y{JKokBA%WPJ4!)BN#xF;gchxbTWPYX8@PgQeywGc0*b6Fqa4Cjx} zmgwk>I=B2t(z4SA0n+Q?maH4D5vSn*Za@_yEHj*&e0CYpvWR$JK^mlguhwdDqt0+a z%<-IN3nC+<;1;qpyKVL^ssH4&DHOW|)wPnuU_V&}1w}!jr>PsJ<-;m%^DrfDS=vt8 zsPlWdj-A^`m>r|uR`1n#%chT%h!+!)WY#r8cro(=vPfedXE`J=`eXw|vt!lxvMx3~ z{-RA>5qL08`*xuZ9{3O-Y4t;>^OX2>Ft3ZmoP?=VLJT?xA>{x_C8p}wTJOtObF90&4@5P(u{h47ZF`d z6f5p7BE^cQi)e8d({ypU;tIydAAFPC!K>t*`9;Ebi=J~BpywL3{fNMA5GYQN?-Ga> zQL%#v?&CT>!#ntbcK;=<{&VD^;+m`g0!Ux219zD`!WWp@!`#&9Bg`N6ISuji`HJGd zCQ84N`JrAk)gF>#2CyJW>c=A9b!xVW5)l>YVtQoe;hlXfRrYbC5=`tNHS!oMkMY4C za+&F1{t<3Z|4C_rMK4ND;}D&IZ^`q3Hu@cL`#mP`!w~=xl;uvxh=e=%kSZ{ta0kFF z#fX~yUCd1Viusv`PiFGUi=SjEr5EJP!cZYTdj(>$Ab}FuKOalpJ(BEslDsCPKK>7j CGnR}1 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.class b/libjava/classpath/lib/org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.class new file mode 100644 index 0000000000000000000000000000000000000000..99eac73fb4708ce2f998d4c7661265aaa83db15c GIT binary patch literal 207 zcwT)?OA3NO0DV)bWdvhK^dbk!HphHEY2Wa&^ywB(R zdILCM>0m-|l&YrkQPWr|%}T*ju6nL$>L>Xr%!|jQ)ZdlK# zU~NsKvf-5`uzDssPCx>Jl_%S$X06T#Z)y%V1a2xjRq@MRnAGmi!+sdI%@T$t!4?*5 OgN{)X%tvoAa`y+%1~Fg& literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/Servant.class b/libjava/classpath/lib/org/omg/PortableServer/Servant.class new file mode 100644 index 0000000000000000000000000000000000000000..7baf1f12726e8fd40b63ae5853ba7df77bb82fc8 GIT binary patch literal 3457 zcwUuO+fx&F6#jnX2FWUdfCd${S{niwFIX+HRDx)+AqkL*g1RnY39Df@Y&MAYW^3=f zcgCka_QeM}qd3;K*q7SrQ~MvZGo4P`hfb%L=|iWN^V_T;A&J#YAO$MUl7vzM& zP(2~1y zRFv$2(B<5cXu6!%GK!(;mqlfQ=d!G_s-}waoRTqQ)i5i=Wb6~r3O|ETe7s{-F5I(S z)bw$#M~SXOp&&=!Eg*nB zFqPiZy!7m1T9df5kbqtunT^&wtC^yH>8R+ov|adQa7zWog2?;b3X!4BS0))18i+GH zA>cWLN%JCsV5^;SxGf(ZO1f;GZ6QRoo;IMm_WmIp9@0_4aJveMcJys0OA6k z2Sw@9HO(+9pebDLZqSWEoDy)F({IS+c!`E4>hh$l%W6V)VT@r@G0#xXQ860p8|sPo zMRx2e8WtQ@0Db3F=2)Kw8ohcJV>}j_7XyTUF*$ov57c_?T%Rc+&5^~y5 zG?jFohk<=rU++Ucg$^!u-dAI$GDE9_vd$ zZlYmf1xUISgx;I5!7|=QxA|H1U2Hsk8_i2A>|ZRfug=?V!e-0<2*p>$Z*b@SwmaBj z!;KXf^Cm`9?w*Cg-*#Z9N&Ru`vd|7#Y&<5~9XwH00`^`3A&&)C$1_*~qN55cHF>`b z1mlw}A5#vZi9_6ni+zAK7TW$&v>OFzO?g5GamYdoTWHN3;&ZIEke(u>yLg&3e`Z

      BJZNJ`QkwPiB;QY7`Tq1ZeiQz~G z?TjpR+3#YM)Hu`S@H*o5(ROL=8&)E=Fr)QtHYLI!c1#W|Y4xj;uLG~gQ|{w*o~9lZFSKC3@aMg9msej=-% z$@&+{=dYyvZxrtDh~f`I`je3UBBa0Rv-2;e7{d&!!W^^VDzoDnt1*Q;W6C_A7j7O| z%#vU&kZ}of#9|lmxr~#<^dR-s6}$jDd8((*dx_+a6N8uW3hkYzez}6Hv^Qg&I!*Z> zbn={)$~`&x1wRS)>LRW!aKXcrfx+vj^-~H47x4z)FR8v}KB1VG3ceZZ*cLRh7Hno) a;bYqiieQfwOCt@SxA3;v!S9$D@BRmnpdWw$ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantActivator.class b/libjava/classpath/lib/org/omg/PortableServer/ServantActivator.class new file mode 100644 index 0000000000000000000000000000000000000000..2e31cdcd3bbf762b3096e8378e2fe2fd850416df GIT binary patch literal 306 zcwUW9OAY}+6s+gh{w&zrh@Flj_$CrE!U>*9XEHLnrL{?1&B6g3O3VZc7NQofHm`oS z`{fE?fQCSZ&@(oWW*^9vv5vQq+9(?6bXYr)4YSS>_VfD0%bzyEgO65(NG>EKnu1KEIv~3FVDB gSzpbnwa?Lsg?l)j~tWg35t3^3eqWF_s? zD(NLhy1ZN!MIkqZOsfyK-K^vc+PvRu*zuIbnzyj>)SlTw3bCZw$KYR)ZmJyjD;d z1>CL^{#+ut56$HZGuiYq*;O!^2u|XZh8V*e6}#!L=4H7c8m_cVSFGtcjWZ09qGeaA z!gXwhQypwHWTGGn9cMAZFkr1QoF=F3j1-B@u4KYEPl@V`H;Om$mWGQAC%cGsT*75? zX-dIeQL=1T$ZxnQO0LN;o#=MaZ8=gr709w1LQ z+A-X;&2?dZE7nSTg$h#V5h~wVuezVR^t@efy3}ie*IuJ~8uAQh4pS~<3&pvt5ynGm zmwB7l>(Z&yRp`>Kxrm~=HJ1t0qwA9^fd@Gpi_o^mI-X#aVX$V|j$~l-G`CcY3|ITn zK#&@h-RKz`tqwkwmP<8$cw|QMO}9ha3;eaIG(H3TBg6n-om6=rpA%?px}? zIN$q47*}ZvUZ!pgK>Z>#qj!i#jsB(S%ji2ex{L6yG#NmY#*k;cjbk+Gtqt@&?!kv} z!Uv~(O8qwszd$^8ZU+~hcW~VGI0iiA+qmK*r^%vhq0zA&Ty6V}de%?Lo8jT&tz8(! znCB@(K5r051mj-lifh7`5FXvZyD#uwX9SN9s0jN^5%p&I_$%HD5Qu%$2`wE6o-Q&U zP$i2J9v}S+lh2Kpm|ES%^g@cH+0r@d}4Gws-vRB_dF9S3;J%+V^0V7yboB#j- literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorOperations.class b/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..6e5433d72d7a45ebbc0d5bf4837224217dba1a6b GIT binary patch literal 456 zcwU8(&rSkC42OS%=nD9UH{fI<7bl##h(=DBC6ai+QyH6e$vT5&SdEY7!3Xf6jNOET zmxV*qq|<)seEs?T`UWsSH$lT-5G1qVHM7$okroBdSV|UKCGv6PVqQ`VlCD@N=E1KM zG!42-D#;e)Gn+1!>|%l=1G^h`Po6UVhcf7Jd|_cK@=rFny?nZv)G(&$Xju2QVt*gfpndn@c(widsli3f#5l-1$@2rhZFn7ZZWcD;c$^oyN3Y)J jRi#qp860RF>TMb-IKeS0(Ji#K+RA4*~RI$K7N%Z zh>0=&0DqM6&eGKQfWn8}Irq+-bMHOV?vI~ezXMppBLgFZWmmQG?m;WR=_*e&+Oj59 zPpZ6LgyR)0&+ZA&RhyM!swvyDr2_*&!c@!Y=1Z08YLU4j&rzRKY3xhOGY}@so>QF= z_V(;fYLSpDpOeEK6`1$Lc5H8jP)T2eIOJ?0vrPz=+@_3z5I12U5<>uECZb3Xs>6yE zc2>)O`omy%X?M9${>L`mkFGaXwjKGRd(e<-ODhtRW!DnzZJ}%(_me^G6yfm&#{GSB z>=-e5dRY5}sO?xnIl|+TPt!ckDGa~+;c~HO?<{%f*{;(uaEmZ=3S-SxZ-r`B<(sbT zcv0NO9RpK@?D?lPF^vfOw6(rbi?P5x6W1|82)vf>2_rkJ3=dsFm^^DH!l?B2q>`d- ze_#(vLp&H}LA{>Y*4<=H%py%NIwu>9thN+R_mHoq&XJM_!glzQVl}s`EV*XuTc7yP zpbPt=$77fqjw4m6Ejk^^wCLcn*#{n#pAaaK(7$2+;|KVOBF5QKM(ez%Gl}fnXPDVs z;9G>~3od=)+z2l7JH{)p#ph~BGP>r+30%Qdz(?bLjav(fE9vlxHBlCCb xuNVuz!paF_P$4;}knC5`XpYAT_$Y^Y9z~-CMj_tM``U~A^@MLB@r6DFegScWRG0t& literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorPOA.class b/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorPOA.class new file mode 100644 index 0000000000000000000000000000000000000000..1d584195e8371c5342929396765d03a8a6d4138f GIT binary patch literal 1737 zcwUWFT~8B16g^W4OShFGC?W!ag0>5?eEC^yQV517g*KFs5FVOsJC?=mZnK>>`r@1M z@92Y)NTTolDC3=NsiCykm)V(}bI;s!?w#G=e}4P~u!6V(AA{z&CEY2P^o-*QBX996 zckA5M<-@Q=q9Dw=Asjc8PAKp*Oka;zFu*W(f!Rv$Zzl9g6R9Wdy7P|j7+ibcBt(>3vrjX~XhU*HwbECqKNrY?tNKU4)Tw=fFs zF-%;B?4@(b-ArnGcYE(Z#RS4+Uzv*&rzpL+B9fuslzOP}z33&+P8yOJBE5>Ivg8cQ zBC`c|-x>u@)~`jnwSX-7@n-b+YOV?%QR{RG%eA*oR@Cw;<`I@dGz1L`RQQ}(q|pi0B+_@sRcu6i) ztm3I`{AUd5t}b@ENdLjcz~7ki4vu$7aY@#M zA(XUj?rvE|wJLih(9-UorMun-ANrxtY*=1;`X2VvoIV6J-k{Y6?K66++8Ks4?Hh)_ z(#nSs8iyzvNWhOBicMgYR-pzOw>&Ot4vZ1{4$b|v8uvIe^u|xm!E;O;oni7>{I20(HXRBbs@;=|m=Psa(z13+*Cz5oi+n-(RnOgt~9eHc-nb cR)pSn&M2Rg4ImUzLKy-zG?0VP%5DMeC#ZZ_FaQ7m literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorHelper.class b/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e85bcd71bccb047b8ed09af6abd7b2ec5e45f9b7 GIT binary patch literal 2482 zcwUuNZC4XV6n=(;Y&I^4L8%~Gty&X^q}o>-L_#XQ zEhm>9>GD!V6olLoGO1qNcC(JjT}RG~N=--&L587CzQvOjZkLm}(xxz7hS0QSTkZ@) zAQoR`2xgph5kUaDfqsM-PG&7zEH$bnAy-rghN$ALta53o-@Y;EZdi4O>)HR2QcA&g zYJ?t(#Seg)Tz)p4Tp_zkC8gsOhBZVP-YVM-e>W#fc~N(zWx8VBz-gRe&C_y{t_w+Bx*cnCO4~cB-fEqSuSRec*EGD_A%Iv6 z#1Ll~XhtgTAB)lUfX$7RIwJvY?{wB!W#pX$PVj3z=Ek6jZC7#?a=M$wc#lL%;tc~g z@jkWBr#ujIw&QsDYSfwd(7;Fdm}+fvDV?VbcaD?ZV=7_XVn~wj6!}iI`cAd_=4cAI zYdLmZ1J&YcPXRRCW;oZH;%xd}F}FOIPp>TGmLiyj9(a(!uuiMAfmvi2`m2`hNCvi` z_U8=T#{-%gHT@ahsM8cCjvm*Q4JwApAr+amPDQZd+9Tcau z$uQEroHT`Eo8dzCO&sJEC~+Fr^Vv5DCazc(v!|YFJ@7(@MCQ&KKs>*)V7}1{Q2yt4XIux1&oJX#tPbMY=|yE|)=kRki7a zPHt)Hkfjo0xYA3))W|AbXxXl*&~E=zX}Q$Y+_Ca=4fl|)NBL^}LyiZeg{oqOTA=HTspLH=}p|#2&)G)1nU%dWJmX zEu5gI(R85qfCnGMNgtf>DUClc^b#Y{v0aQmZ{xV@arAk}cW~K9&X7gfLKBm_xN;ab z;#ohZXju<8()7XvCcQ`@ig}$lbWC}vE3TWqgz&^J-g}7;+B0}~L`B$V($zQ1$6xk# zfI#$h|M~T-SK1f35ea123 z1gd0lX!Qe?QPM}YPIlLea2fmoMMd!62o(no9IF+BMXTJllx literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorOperations.class b/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..1a9b35a31129e09dd70f35abc3ad99f24fe9b6d3 GIT binary patch literal 562 zcwUuK%TB{U4D^;lXnFMqI3m#tE6zCqqT&#gh)P^Ixv3SU3G3i&13$qJao_{^D1;+{ zct}yiVP(zAp7HGL+xyEa0Gz@kfPn$al3BjbY{KGkQPP~GA+c>i=Oa$hv&0n%`kY-I zz|g>Cg$>#gU1sCOic%lIRxi~xI?U(?m4Q(ul)HutGVpwScOG>xB=K1oeQVCW9(&Lj&W>r=^ z#`sq>K}?MC2l%6mcV?IJQL!~X?9QFpIrrRq?w#46zrOtdFoT5yn!0A$ zj#f5!f!llBR>h#1PR^=mj%Baqmqx4H;59J`A;55>W;WGqem%29NKK`ghsc+=dBq7K z$S~HGZ-$_=r8h>W8IrlK5EM`W&%83I|W%EMsjQxHOL1b*}@ z2qVg{-iaz*%;ZigLq=()luGB?1QYQHzW$tU@@LK6GPgH`M~0Y)*x1x;UCh13fKZ7c z)pfE*6(hA6K}R|T&k(NLTsQZu9U}Y?r)17RNG-RuJxw(G=H$%9=5brL! z{E~tZ^pfBkE31VF!EYVer>2jbZq2B2l02a%an`imJ8=Mm<)M zDwMXQ3=IFHAxTuX8qQ(;_`lchXvIynQ#91SLZB%HUm-aHCzxWThgo4 zj|1^Uu{{Xk@V!tg#kr3@WCjiZS{d4GL{Bi#d;fUg{0>dHjqWAay#~ akCIk#H+r-_Je2Q8cq~JttB)Eg4g3bRSIoQs literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorPOA.class b/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorPOA.class new file mode 100644 index 0000000000000000000000000000000000000000..7963edeab3a422a5e5db4c0dbb91b81f08b3c927 GIT binary patch literal 1719 zcwUWFZBNrs6n^d~ly#FKC@KPif_7CY0=^DOV8Jjm*us#65Yu$qWfZ%1={ll6!2hEk zltdE!?vFB_+l?6*!+zL(ea>^wdCocA?>|3&0(gRD84(86^(wkst>}5z^Ub2o3*0;6 zo-QWS@w0Bp^j$BXTah6#Ok9qZ(Z`^NV$9XJXZn`w)MfNDOrIL1b6cw`daY%uXPhJV z17A0tvdujPX?s0WV9>Im-XO1241G(MWBJPrJ!*1?DAI13E9gNYju_%mFkFoz3WXt& zwH&_Ls1~`mEl3%L1e3jEdY0I?4kiDaRN=hZew#%+etvyjc4 zk=e*+*EZHRw-t;cLGo3(f8dsd79Bw{^jabw%3qjxNwb5~OsZjnr?eQRZIjqO_x8;a zC+Qc|ZUrDxzPFm(>-1H|eJY$TX2#jVDfo?|f*B;lkc>maLrS}0mFey4>P75ST{YKa z7`x0dhG?#M$V#{$EAC@j4>UFJ5gh>e1IJQXGXjA5gz zew_{UA7o1O)YAEE(vS)p5J~5HMTX%EIH;xzZo@0_HH8OPyX+BWNT zQ6JHE)Y267cMl@yg-okK(dhK`>!md{KaE#tw?y}hW<@*3fTn%J;8)s3Fht`3Sp#WE zcuTfv4AU;&MB`e(MJ0g|Lf@dZM7x^-XP!Mx_gYVUv0*|!1`Ulq%|=uCb1gF zL~!4aJD4O3v6{kN@`B+Wrdu9o=tlSzJHZUGKll#y%ee>M2M~+Wg)|`dd7#`3whM@s_iq;(H61{Tfd;C>Z=#e zy+Mlh>RJijH!j1%kcTnZynh*Sz>qx*qCh`mn0Jd!hD=Fzg@bu4<**2cVZ{$3QHlF) zp&BDx-Y5;5Tm|Nw1~d9?@Q&fY|L-PA%ewow!eVm~4A*k7U^7@oY`{ZmsznWU8ScCO zlo6angIJH|Koko%7z%%;R;sO&)0%&DdQ@pR*u)ZH15?GYI}6pQ&>sfWe!(qXDrivL z%+idw^GEEl=PT#*gr^OqC0!s-Cf+9QORJ6k}Yf}N_LX`-Jgzj-0J`U literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantManager.class b/libjava/classpath/lib/org/omg/PortableServer/ServantManager.class new file mode 100644 index 0000000000000000000000000000000000000000..6fc2ead96d1177bde65f0d07c2e9e42b1ec2f790 GIT binary patch literal 255 zcwUW;O$x#=5QX2=pJ-JO^Z;($8a#r(ASe}kg0zItQj-#6!K=CO03J$gQ5W4g1M@cT z&G(+K`vbrn0|t*UHCAzRR{UtJ6Hz8ZX$xt2B|^J{&_YSe&?F2~Q3#$1t#}ZnGIk7Y z0{`nlkV`9EV)TWfLzw(RtKhU;@cbL)yY+sfUE*#GK4DyUeV_zCG*=tTZIVgCsLq*H U9m`gPM!798bWshVS6&bOH(zT>Gynhq literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantManagerOperations.class b/libjava/classpath/lib/org/omg/PortableServer/ServantManagerOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..e24e934d968bade1bc8531d8e7f8606bfbce6856 GIT binary patch literal 152 zcwTjj!3n}Z5Jmq)&4MQzumuO3@Fo#b!6Xbz!nz}qHN|dp!+F U3HyKdVHs-zVTB)r&DRy`54?OV761SM literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..33265730d151cd5342e8c007a9de2da124377992 GIT binary patch literal 279 zcwUu`Jqp4=5QX3Pw;B~J>}_n5f*?fn1Zx;VLfj4O8t`fs9>7D18_+_qaURSt z@aCKMc;4;+Cg=)O2qR--X-=`+8SB(B;{)4*tt^MqZqJUjON`!`EQziHH9{{{g_4=l zu?&wXM^2zY=zl*|0 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicyOperations.class b/libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..7cac545db305144f646ddba1c1b8f8245640515a GIT binary patch literal 279 zcwRg8Z`VEs1_nb0ZgvJHMh5fzqICWI+;shb{GyV?q@2{?)S|M~B7G2*m{$^%T9TSq zl9`_uke`#8T-#5Vr6!lKGq5o-$ia+s_78G$ z)JNCJ$iP~bm{Xd{$Y7?S=|htBVIY0hj0{}C`K3k4scxA$KvPr+IaLqjN}#(K8JK~X W73g_JpxfCQI6y20P9Vv|zy$!c?p0_2 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicyValue.class b/libjava/classpath/lib/org/omg/PortableServer/ServantRetentionPolicyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..1b04d6699557ff5e4415a967f75fd6e23d70d3ef GIT binary patch literal 1674 zcwU`U-*XdH6#j1WW0SB_3=kwOHXyV~i$nql(n?Lz7K1UVNeL4f&1{pUZcTPGn@xx6 zi{q$|j*s#`_<%*|j2+~izr?@7@w+!EEif`8FWGayd(QdJch0$a`p=(#0XUCa8b$;% zj=Pq2I&0}=$MuZWwplgZ4bx4_k70Wi(=%<)a_nWNZ8bM*M!Ron@CzJTH#UrP+pyQt z<<)hw>1hZG98sv{$Z*SOTi?ix8bShzU7mcolFO#ML$-8bp}0r_Z<8r|DyU|r5HRh2ht!vDzh-_a^2~;9bj+T>;oHT%c2+&tve)PnnrpT#+w!gn z_>!rbfIsiF%m~#@=t$rsRn86X{mDYA7Us=6I-)o%tus1e18YjhF}$TA_1x43G$BMo zh)J(^bsR@rV6<2s#&WqSgbS>fxnO2Y>NW6v*7F1yeuFE3WID}{1N16y_MMP0eR)oz(?2p@7O z3pVSqT8Xa8n`p9&i3qM@UMl!V;AryY_NQvnBc~$|?qSgAc1^n_FfL{M2idHQSkiGF zA5*&L3@*u^d^v=^S1|9pp2ujIR#C^NvV(z+Wjn5hvOsb#BX|2 zPw@0D{PIm>b_b&F+s4}ua7vnfWu6W^mhcu%RqOsOoUT5=B%x&87o8>&ogr}ccSU%P zzmqH(sF2_@mhmO&zhDt2@fK3}8ke!oA-bcGp&T+v|x z7w98%hPQBb`VV9>_n&DBs*7J#Dt+KI)FM#D$}mA%C1g=D`nMN?@9hf?JPW?5ylVdf DxdCbQ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/THREAD_POLICY_ID.class b/libjava/classpath/lib/org/omg/PortableServer/THREAD_POLICY_ID.class new file mode 100644 index 0000000000000000000000000000000000000000..616b5c884c4889ea6f2db3765f8067ef95c644df GIT binary patch literal 185 zcwSviO$vfQ7=52*mJzsV(Fxi$bcE0%Ay6`cRx-*U$>hK^dbk!HphHEY%U17)_w)I_ z-T=0kdvFMAr7NZ$6-$*iypSRjx)YjRj_3U@%G2Z&hqpYAJd6oJ%{$H{Zz`4)wI~h2 z?YL|OfnvfURL#@y#$0=EWM2Y;pQ%=t;&7KXwfvvm^otW)M;|Aw;9_FYv&zAA@MZ(| Ef0r*RK>z>% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ThreadPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/ThreadPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..0d67177a924b3aaf89c727a1adcba66a070ae840 GIT binary patch literal 249 zcwUW;T?&Fg9K`2uA6r&X&;f#;Yv~AmLJ%m~1y);3F;})t@M=ADfDRQIB-C3oFi$f- z=JCAU0nE^2un1$NL$1ytca=86PoyVxE;T=#v=m2IB~ef?)Cv7qBs^ TD<2VRr5j*q<1Ip`Obgu?ra?x< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ThreadPolicyOperations.class b/libjava/classpath/lib/org/omg/PortableServer/ThreadPolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..a290f224f85dd67a47dd695cdbb12c3acff5932f GIT binary patch literal 249 zcwRg8Z`VEs1_nb0ZgvJHMh4ydqICWI+;shb{GyV?q@2{?)S|M~BK?qzqSVBcfc%`y z2A!b_Nzk27#=^vPAuy#JqHU|D>$cdpbbTl-5h_Eyaq}rO1fh#z_v?w{%Ei(tGR~oys^gu2Gx`B~_8Hibd-eUy1 QlbwMB#A4tCl1vO-0RHnxfdBvi literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ThreadPolicyValue.class b/libjava/classpath/lib/org/omg/PortableServer/ThreadPolicyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..f810fd1d47a4f729d2d81fbe4e31d2b4966aa06e GIT binary patch literal 1658 zcwUuMU2_^`6n@?S;iGF(X-h3h4Xtegq!yd{QJdHbgrvl6h(PHuy}%7@(~Yo;%MueE zM=!i}9QE2;uN>Q^ADJj zehdi2Eqf(pwN_F~mhEWEO}(VsYr35(-?4SAv1B!k`bI@-c6C3z0*6<%H7(WD%#~DO zc~!4Fehdm6b-jj_Vy>YzjgKUb9|3{b4tlmw%%oH8evMRqR?V4?;cO7H<0e&fyJJ}9 zjr^>DSP*zFYndHKGaa|M@AKau{&4r#KmHULtgT58qw)g7HR9H?<)T`r|CeIZGGk7`Jg!l&WA!dsKYlQUv6pbwGoQt9kd~_8y6l^;Wtf)jM}bdr zHzjS`+D6`N=<9{9Q@EY6x@M!3Td(VFhmVEbmWsF<%NiM;RR5z{Y?ZG+5iSy+PN-yc z?Ycf^$ni!FwEw&$fm58U2Lted&lyn!Ay@AZ-@*XomT}~?Pv9`WJO1Z+=Ki_2=LBzMrIf6Q@g6?;CcRzlQQrg3)D#CeU@J(37h^8kia_Lz=s^&0#a@USUTp4 zmPF?0k-kuJ3$G+c9${)1cL?$i;Sor$?5U;aN53@tDGHPNI z*L9N`K0f}Srqldmv_ zuW=UN>>)6LC3h-g6#XuWL=bW@`vfjBMq&mxaW44~Q&abzXc}}czICCLUQl0)KndkO ZK*|LqDVhEKQ_0`$N%lQSzTrky{svywVe$X~ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class b/libjava/classpath/lib/org/omg/PortableServer/_ServantActivatorStub.class new file mode 100644 index 0000000000000000000000000000000000000000..51fbbae24d6cae4d7870dc6e7be545e47aa7f089 GIT binary patch literal 1441 zcwUuLZBG+H5Pr6AR|;CFpn|BNA}vCXf^PvrfC5QPwS+x3JE@UNBtAJGSc)NrhWY5&eGlBkp9pCPUAm z({S?^cU^{oqT;l;O-g;&B13%1uuR+ZmKnn7OobtmcaDUHL5AEv$}Kg7zU7Q9snZh(<5nMrF+d8uW0TZoi~n;ER7&K~ zJR;msI&*NL(6T2@ySAudoSJvp9mjnJy|7+fpmVbRd0lErN9v6#k|cwp0|Tpn#x7MFF7;iZ==*P#{98MT$)bB3at8EG#>9cZ-*Q#^1h+ z1``t#eE?s=H!+@>E#)Q`tr>Kj~qCO`a&sep1 zmOESA(O2YX*j`%X4No{(ue_=u#L&5upUTWnjO(QeO3$pW^Sn2+S+X?LFmxS3yPs7< zgrRBO*fMle$Ticj%y%-Kp}|$3IqtZou%FFLGO$^OvngS_9#P~BtIWf{q9XO>>Gpeu z+7(f9Qo< z_$K$(L?P~pc#(VYmt{NekrQ(0y-g6`NZvAS(;H(5cK75MLMc(;8d@0iQx%^namSF1 zZY>zv>TnMA4E1T#=1ZZh=GOs0oPB_Y+0t#f!VF%Ut|sUVLH+bD7cp&czb z+_bmE2G#qqduigR!sasL$-~}{%HD5o&d6_&qMj0B!{m>IRp3st=L9UZEjslk&r53e zG$f8b@6*D0Z8(K_{;JGfk81Mo2{oM|urxturz8x9_Ty@!-S&?nP4dbo!~c{=?n}b; zc3R8-y|ud$znqiYB<1~x9fmPzuAjjWKZ%2EXGPh`^J!DwfR?|U=Y&*1Ctar?0tiE+ zu?@9|QsfN%=mk)RR(a28-hu`+R^u_sj-Uz66uCf=UK-_76T7&L*3T;E61}4|0<)Ao zigpzRWp-3?I*k$;?){3(yRaG+^dWVA0^(#;g0JFQ1w4h2TB{F#$MwZv>_&Dm6zk4@ zs?x+L0azxw7vy_|DtW$#vc5{$i(7=~qq!vPSL6#c3ri-p%jetLQXE76YK242bPTBV z0R36qR+R>Dhk6!NvmxA7?DufLVt-jNlK#QEKPZ7Qf3YgSssgMkz^Vd_1Rkhz86IMo L%+aA&yd!@A9k#Kr literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/portable/Delegate.class b/libjava/classpath/lib/org/omg/PortableServer/portable/Delegate.class new file mode 100644 index 0000000000000000000000000000000000000000..6ceb6e0daa3b1f92e7f4bd9f70de163d0b4a8168 GIT binary patch literal 600 zcwUu}%}&BV6otWSfXHTvsMcf5<|uGLeo)j|^QQMMSUJMw2kC=an&qsV(jAQMO>X zsCGR040WmEzij!7bM70+`dS)BS3etAS=Q1C3Z6h&|RMaOSpEtXaWm*5u!VZd<%QA5ZuCPU1Kx-<(H;G)EgXkp_k9y~bb z-TQdn?f^z;Qxph##!6-ml0`!Am6lVZoj5zT&h$nd1VxFU6Y~>i3D=T^+gR)zMTMaM zHK*ZvGG?i_4NaS!T;ni6_z_?^pT?B|GYaW<7umSqON%s iK@geD?!-dnN8_UobJjN`D58WiC~Bx9AA+Xe1+-qCh)8q* literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/omg/SendingContext/RunTimeOperations.class b/libjava/classpath/lib/org/omg/SendingContext/RunTimeOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..c1ef821014c8dc9a73d3740cb21bd8a2df14a802 GIT binary patch literal 138 zcwRg8Z`VEs1_nb0c6J6PMh1=iqICWI+;sim)V!3;ymaUMypq(468)gkypYV?RR4n1 zqQsKS{Jdgz1{OvJfvm)`ME#t^ymWp4q^#8B5=I8D;QZ2}H#bfH}|1YHD1P)1NmftC`jJolqSbL)LFS2EEE75`_h))0YkW0YA|RO)e#25$Rsd_Bzae* zEiU@KmT<0y4w1bWPi$ypFW3vW`5( zn1*9mWdMUwSAC}~PNeUep48p;N9ffl3POlLr&Atr7_`sOe}s^r#r#-QQ-pBZNfeQ- zccfnf$~@I*0PZ16H8CV0hXwfdi&z>B??MZDhW3f&n{Z~O{xYR-KA~WY71jdQ`X4k{ BcbWhI literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/Datatype.class b/libjava/classpath/lib/org/relaxng/datatype/Datatype.class new file mode 100644 index 0000000000000000000000000000000000000000..727dadd61b531881a47587aeab09f3547d0b99a5 GIT binary patch literal 920 zcwVhjT`vPc6g^k5N=tp$_h+aVjpxRbRy5fliUbeM*qyXX?KZnZ>aTh51N`%$H9ujtk|(GutLmk&xUA{74C3or~JNjPVE%23vK-yk>~YKADrkz9!kk z@E5YA*%-m{BG&R;!fwX?^iWcv=T~xeSL3EZC@=8Yj*<nHVugky z>za)$OcFMJJi(7*LfQ$XP?ASVamQ1e@=*tKIo1E5momBmpdoBbZ+rp#Vb-3-Bb2Mh-EZ0=0#0Ed0Cgf zD}7~B`l3t0edx%2ug2BM)}d@`;eK9I=*{ZI4EoT|$kN+~0mkt*Jji&c4JQ~U+wd?3 w_)&}?1^qZiF~*s3qf3}zW(w0Lljc4hXEA5uJQhq`#FB~2STS#8)u^t$0gl`FX#fBK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/DatatypeBuilder.class b/libjava/classpath/lib/org/relaxng/datatype/DatatypeBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..0842ac94c345a14da32f1b21818398cfabb1013a GIT binary patch literal 375 zcwT*w!AiqG5QhJ$vC*^^559mP(q0Tb=cd(Dp+cbdF&V;^H7V;>(pT%D5737yoq)AP zf(yg$|L?c_v$NZ8wgAQ$gy;|+Dp$l#EZ1cb=j_?9ml98Y4$muNb8#U8!tH{;Ikv3a z>|-IBC-gbb-`Vk}cyWZ;aC%}=?@U=FElz9VoUKt|s`8~Oz0^J#%?Z(KoyoFszd~FS z9{=t37bXlcC+y{TL%1J~+JlcsqG@Tha+$mts}Jt}%;2f{NS8pkK(jhJl1p?|hpGbI PuhfaqJ9o7D4U3xtl|F2E literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/DatatypeException.class b/libjava/classpath/lib/org/relaxng/datatype/DatatypeException.class new file mode 100644 index 0000000000000000000000000000000000000000..05bf9ed8141796d908e81fc2fe946d7adda76a55 GIT binary patch literal 740 zcwUW>%TC)s6o&tk#28F&+`^r7>c`{c4sDDB5lUyDe0L^zQ7|NIfg zc2uPFE}>R$ww_^UI#E%u{k20V?8iOnA&+tq9x8;n`dh*Y5T=T7Fh;1fR3zJj>noX@ zi>pu)rdx4WgdLG6bIy_l{ay75_160u-X`R)`+Y{ zgYeGcLDH2+%9O6XqHh`|J~1cH|00KJ(+Wq6aCv8*%}$`eF_+=B$eB~l8U18q;{m0{ z@^4gsWpj8YiA0h?#of`t`RSq394Vy@7}}2C>sl)GA<+6RhhJHiSghjl`>2cmNM2ZXiAj!GU2O zeE-Za*W395U;@WRiO^3};3^TZEDqcq(@dZC!d(`LC%1~JlMRc|3E7dk5i{Io8w#!o zJ+1`P;z2J`8SR83%!b|z_O+66Fdun8Hx=4Bp|Q%i*lU@@2OD+5;HT~h6P(X$2-E-1 v$oKn6s<>Fo$c*TIePWystP%)iu_P5u6C;C_h7Uq1;6Gcs@m=a&{Gr@Ce4q%tx{V|S1q$apqJ21W*E1`uEbx{sBC4a8z#2a-$-8~{wI BNKgO( literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/DatatypeStreamingValidator.class b/libjava/classpath/lib/org/relaxng/datatype/DatatypeStreamingValidator.class new file mode 100644 index 0000000000000000000000000000000000000000..bf48191b22e58983290e867ac1628014fe791e77 GIT binary patch literal 306 zcwT)^K~4fe5Ud7dbP?eP-V9ur_y*8~lLrzGcxq=m%fPxzW(R^_^S}dml(Cl(IB6%H zu5@*!tByb42LR9L8#D;E44Dm*^S;Pz%8}#OM(pGaW-$nV`XZZi?v*WrL5t8|@s4fI zDtY@@iHn3Tr|EdffnAhP5zOFyJe>~bihOla6PknJf{?hSxb=0VC&|m+$tL=;s0_M< zr+-adj#W4-x53G)&xP>#x9d@DxJ}T9sH>?VZqP;@#^Cle?~o|pQMRS?Ui(3D1HE6O CV^A*u literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/ValidationContext.class b/libjava/classpath/lib/org/relaxng/datatype/ValidationContext.class new file mode 100644 index 0000000000000000000000000000000000000000..f60648d5a96050afaece53a1c24ae704e991782e GIT binary patch literal 326 zcwTLf%}xSA5QJ+0S;U`k03X5N#f@ig8a){#A#m{4F72ktIJ22)$?|F*d;lNHFuNBI z(1)&cr}Cxh_wV}$z#T3#bPTS2DD%LUYFFlKQqo<;`HHNhL%e(RPPx_$J%iDPwv<~+ z&e!)17iw@7IC{I~8GUlBsNi|v52+J(`tt8yXb@N4-yFUSh9&C*MP3Fm7*CISMiQ5< zq7Zrg{x+I1^N z*$S*+Z<`yN+}Y;BH&*Hf(=G~2?3tcb=3=bC#g1L#W1*@c#?ZZG?O29m5y+F`7B2-1 z@dewpgGGjDIo?1nRGbBx~WH}p_u%%u%#)3`T zXIM5{E;PrGsPJH&`(90yIDuxAZ)ji%Y>#{U^~XDTdQ(m1-9qrboAhYh9ni< zj9GRp-%sEodKo$iTj^mohQV~kJmy+2L`OdcH4HHHp6HOk5H2zF5Mp7^4|w&kW`@-1 zCA&N@o~@e-{c-|VBt*xNhBb^bth7L5fs#2q@LU}uNXcuw#_-~3LE+u!TDhx6lAN3x zO>jSNRn>6((Kkb+P0)Gg@ANRVJLI4|8OBfNvk6Es`s!|pZ_7#WHB2*% z9&^ci!J1cd%MCX!}+fmc|OGsaP?yYxsQ;58fADz`Yw`qjRCw-nP$~ls*x#$F^p5LIEHZ@HwdAN znn)u<>i|WE5-@=*olTMyBkw6y+Z;&|SvOT=G}DKTy;bS@LWf4WHq6L$-BP+;Z*lw( ohWMF1nIAe|GR3vhx@cANt#0r4=+4$UkFIiaor`RAs^~}>%R(1hNn1~I(Y3(EhLPf3g=0*Ck72xG9tKa!WN1mQ z=^J{~)QM-()U(;bZJfbBVpxVV#^4S0EHU^d?KD^6MYRS68bczKtXM?6XGujZ>J`*6 z)a_HE;TQr8wJY2yQ^wF1>N!Mo6&M;d9D!d&Gg=k2Fx2mbF0Kl$r!};pouMX`6M|b# z!AZD3SPR~`r0LLbLh5LeI&90~o8@v;bmEkPAl)CRNyBLgt|IVFUFM@YlZM6Ta+zf= z7WHM5GX#=$N;j8uVaRjQ>2p?%EW=dgU5?Q-y(yDYdmWx(&`8WJp0#r##VJE1R95(c zBMfULUhGBAG0f<+mCJCUJBDq=Wx2f?dJtC7PvR=jwm^AI?%0-!KAe}2YJlN>xt96m zHJ)N;J%PK+ez3tD_shci!h>L6tr^616vgIj2@8g-XYKbAQ?W(rBN5$X(tT% zvf2;qS-%9+p9|KEQF35M9eTrZEwxRXradNiz+piz* z3FpBX`aSD%J){heXdsW#gePdnQ(EI^IEUv5(|Hgt(M3_gLOyg83KZE%5q?tBf)0ep z@{pHSrKs-?e6FWaiiqS9*}44%eRmnDjqXqksFEtgiaKgt?pNe_4Ha+Pe9Z-XF`u-C zaKS}h#3j1BOqP$%SKNGK#319U{{gZl NF^%hV&&av~^*2Be*Bbx; literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$ProviderEnumeration.class b/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$ProviderEnumeration.class new file mode 100644 index 0000000000000000000000000000000000000000..6b39f8064c50b0808134a613104320700c7216b7 GIT binary patch literal 1656 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 J1%8Ck{{d4%+{*v} literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader.class b/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader.class new file mode 100644 index 0000000000000000000000000000000000000000..9662f62cdecb1db7d4b239b5e3d717b4e4f56c3b GIT binary patch literal 1250 zcwU`UTTc@~6#k}cSt)Cw1;nCOQ7mn_tRUVf;)P3MvY<%~iM~zCSe7iiWOhp6ulNUe z#Y81&Vtn$!KjA-7&$Nr0S`*}9Zs*K*&i9=;yI;S5_yk}IcTB_>rUO~CrSSN!U$fV_ z;%aYO*c-yz7BaLKBZK2sB$sU+{PsmI`ZKAcqALXBc`M*B7hxt%{J(dBr1bX(y<1Z;eY=pChB8Hr$Y5 z<`lX~??6=wu0)HQME=RHtfcGLN`>|*TCgQ8@}h-H$TCR2tMw~`k_ZNM*G1^m8)7(v`MHsXL z(#1nq#g9n7NXHM+`wo3?8g~b1PEriuF5SF`6s_mzWHnJ3#CckoE_@VmpHOlAgDAd5 z-+NqG*++K#2$vZ?BfdH@c7*FO%o-Wv3pz8#0l7vQUjO*U4t^yp5;CJk8&V?g=ZR;Z@5lZbdkMLaOrQ^h82s>Gw4Se>UVsT_AI{|cm` zNkf8neiY)`Ek#;Ohb%k3_nv#tv9I&<*VT6bFVS>SVtAFSL8L^=$JroCxaRuPP(&vp z9ST)Mhg|V9p@m9CQM{W*-;QLO2<5_IxP8jcd6aTWKIor{Si2}QG#3`Vme1hzc_EI; z!?4v|n$lq?zm}QQZy271H(*;m24^o%gpU=h1*o9PuoAX<6_DTnES7zeF=&Uc) zG4H1&VZEEjJneBMjXiZb`a~8CoyC;@b4?^Y;7KxrFdT&4zqfXzmCOd61)hbBJ)TN3 zWS;HinHFPhPwT%Q$6{!_g^Py_J4-KU2KG_M8l5pCW#;^I8mL8uR>V1?xEoIx8UE3L zd2I~USP8DhA8Lk1*t)UR{!uu`@%@3w@m$|xk_{0w3ptuu`BRty+zhO zN;Ck!eTksG`xUh>WR-A-)+%9vO*q)1jBTm_+@GLv7aM@xnW~J&JsW#KK8LKjt$s)z zhrZr7)IVP0(T`c}GGTzGt=XPnW;H!L#uFR&@RW8XyW1ocM*B7zb3Bn%0IaqzQ2Tt1 RB(x;K1TZC`pT(k{{|2J7`nmuB literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/helpers/StreamingValidatorImpl.class b/libjava/classpath/lib/org/relaxng/datatype/helpers/StreamingValidatorImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..39a497d2d74d55c4e0eb0b9ecdbaa30d3917fff0 GIT binary patch literal 1449 zcwVJcYflqF6g|_HE|f*EJVf63z_uU-d5H2#sG8I?`T>FppQhV^E-t&xb}{&${9+;y zHSq`dql{;^O-ZCQB!1}Jdw0*Ad(WKN{{Hjh7l3(e8i)uic>ZD5SB^Y&53?m1$l!BD zWy{K`D8HKB4tyn#ZTE0jIyT>We*U=P7>Eh<9LY~I>qu^UTRc)$U?47#ZA$l|o?N99 zh!;-|4iuBY!X+btL~Vs{Rt4INvZ{7SATVBN*@0lg^4vh31_G((*m`r@b8|H$H+9KU zDOZ-hv;yiTNoqfr&!=|5>yquq&C0?Fds-l5a1B(JvE$3)}_2A1U=J51Cr{W0l zHQTj=4T0C!+``6y=Y<)q7n|nX2W$<(7+3?rKHL340 z{{oWQ;xN)Q#u(ps;TG3!R_|HI7|qN#^h}S8o+J70E9(dbxh5Ea6nCa^mszHU#Sn&p zFdM-rnRGUW@epldf|;IT68Gv|Hp3d|XP5iB(>We8q`zZ2iZ6|J@enia7Ir znkVW>UBE&}o4b~FDT;qp%%P7I&8S!KtUhO%gi*$!%mtojexmoo1=h~clbJqagPAj= pFIfk8%HSX|D(}W3*_X(^9Cnzfu{6$UDD*&tnRX$Iq}^@W1@y0Z@CW##jMD~@ z;9++@-kZsr_x1hp2>@3x3!G1nop*l=b}J;cqIkh0@6lgBB5@9Hp8oj2RsG!7~Gwnlq6uY0NFRY2W|9Aeb@m zMsE^xtBfu=bQlbGW!z04w=jb?EuOA57NZn1)Rw`3WbN`d04eKM%H%6%;^{rdv7Q@R zy~qAVi0-IzOb2+8Sr!uSRZ5DRm0_2aXmW>+qjyN&a&nM^3zd^i@alNHsatSDtW#n+ Y6x-D4!dZ=+L$8kgYJ#u}`WrC#0X)rS?EnA( literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/CDATASection.class b/libjava/classpath/lib/org/w3c/dom/CDATASection.class new file mode 100644 index 0000000000000000000000000000000000000000..349b07a9f48ed36f6a5bc55a893cdef401c3ef1c GIT binary patch literal 141 zcwRg8Z`VEs1_nb0PId++Mh1!eqICUo<7EAm{9Ju!7sn9C;MC-j%=|od1{OvJfvm)` zME#t^ymWp4q%5EWI|Ca~6j@J5YDEbn16OcCt z!(?}UJKwjvGasLC?*J}wZlEGCjFoS{T)DOvKiM}6sidn(jir_bsshJL`7G^FM!r3r zFUi#g_L&w%53xrAhEFHX%Iz0x1A zuC;A7dK75zZ4-)oy%5;5Mvg!$UCq;VL9Xmsjn;E;H=84$>ad7 h5;?>X*5koR>7>0?dx}npbkQr3J_bd?G30#(XI~9>c~<}c literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/Comment.class b/libjava/classpath/lib/org/w3c/dom/Comment.class new file mode 100644 index 0000000000000000000000000000000000000000..88657114f26011e90ad01c0fa27b29ab6d5c99f0 GIT binary patch literal 140 zcwRg8Z`VEs1_nb0PId++Mh4;hqICUo<7EAm{9JwK{M_8syb^W>7Dfhvti-ZJ{hY+S zbbbG%tkh(nC>tY#B#QEk#G=IHlGGxX#F9it2Cm@z(xT*4x6GVWMg|_JS$ZI2fEpPY Sn1Ps;0R$Ks*nuPy0|x-wk0QYU literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMConfiguration.class b/libjava/classpath/lib/org/w3c/dom/DOMConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..d74b669757a29f89faac62b77aa7952b31242f85 GIT binary patch literal 445 zcwU{6yG{c!5Jm5VkPS;94+)6^TF5q7h%zOFYDth*qM$RzSdJ1Kc^#5(qu>MhD1gICZRXuPn^xU zQEYlQlfn}^we;8A@rCr#5sruDS5M`gHfmI+uSUfUAs?@We2k;(3|oZ#g#K9$4E2L? z^arE(4Iy*|H`RaEyCw9$GbbU`gu`J`CR={YD0Llqd1aSQ$V)w!guT?klgMci2pfo} h84TS-E96m$9AH0u!Cs+F1kStpAhZ_`tRuncw_(o literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMError.class b/libjava/classpath/lib/org/w3c/dom/DOMError.class new file mode 100644 index 0000000000000000000000000000000000000000..703971cf49e006dbaa1911ec462f7867e2a39ccd GIT binary patch literal 470 zcwSvl%TB^T6g^{=Y7s=i2Yvx;Y=}!&M2aEdk+coQl^M&VDXASY9Z-JFg&*KY8E*>$ zVRh%6d(S;{&(H7IH-HxECJq>CQib-%ePB=IyWJTL9Hpc(amY}a@&&hJo`m-3Z7Kpy zl;?~cx97jSKDXUrZ}`N(JciPvOj6AgJ?8OT7_^-+lsB`E>yF%v&FnU8x9zw4+n&Kt z42AZ@La0bD8H`4gR$IgkM4IwYkhsz8Z$IT}6(!*VgGn>~az+DHdbuLzT1=eJK+JR` zlYQCh7Lt{>!yT^q%D*oIzEa(iYA>6-DHUlgPtH{!x=~E7rT^IOGM55ng8U-XafAXP uGrJwfgim&`MYym{zToN=9NZ~g!c1ZA`U literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMErrorHandler.class b/libjava/classpath/lib/org/w3c/dom/DOMErrorHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..07d3c23a13c974cb13d5a63ad772d054f98f8c0e GIT binary patch literal 173 zcwRg8Z`VEs1_nb0PId++Mh5BpqICUo<7EAm{9Jt(e_z+4qWmI{#JrT8)FO5U7Dfhv zti-ZJ{hY+SbbbG%tkmQZMh5N-usm2PBZH)d4>mKbHKQ0AxPtRbi;`2_GILTH8AQ;G f*8`c%#>l|Pz{~&wj6mC18Q4H926iCH#J~XnAvP=! literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMException.class b/libjava/classpath/lib/org/w3c/dom/DOMException.class new file mode 100644 index 0000000000000000000000000000000000000000..b6ad41d6c566f2024feeb7c63d45b36db1ac22da GIT binary patch literal 1156 zcwTjqZBx@g5Xbi{P+H1Ei$xxM00Au(sff=w&K${MGm|DIcP-R6nNTt{PMbJws(vkB zIL`RO58#J#+(c3iAEq$W5!6q z@`{?#q`IcsN|jnv5zI=&aRT#(X{%IFo9eoG%+y4hAh3c`%~Z8RO`$?FjXzz|_yEHc z_MzD@M#f13`N+r{^}1<^3-1ixr5O#*Y%1_|2MsZLS{7rH8o8hs!W4llZyAD~B$gb` zB5}P`+qpg+)kJHI*Qqi}GlShpf~cY}&J$%8hZ5T_C7Hu|M61s1n#OBXDAh#B6PS4E z`Cj;nz(R@Z7jx%f-}5{BTTL9ef&@V6}S3i5S{Zy?{4_!jc2#B0d6C0<9~ka!dMj>LD7OA>G4iQri8;r}*Tj?flw zYI*xB+%K7H`{NV91=%60v&~d*czcr-DQBE}?Gu|vs1pvx`cektbOU2aC$cQ`!Vt^$>Z)S(s?AbjS~|0tSLi@`}acVca`XC1P2S& z=QO)w@Oo;v2rWz^>=2HZ+MGQTT8pL#57i9)TYbH;U@B%mo7z>SDxEp#clbePWJ_nb wpQNI5v=Z8Rpfm`C4TM#f3^&n0$TGr~;M)O}vnj|f_Lh(q_T?tI%U;9b4>I$k`~Uy| literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMImplementationList.class b/libjava/classpath/lib/org/w3c/dom/DOMImplementationList.class new file mode 100644 index 0000000000000000000000000000000000000000..2673fc36fbd95541c228c93534514d5178bb6648 GIT binary patch literal 213 zcwT*uu?oU47=-Vywbi;fyXn*}261#1p-}1I6T})~N|Q*9`fd(BfDa`myLjWl-S@pe z&li9dCMhDq-1d?^)(tyZ&9?Qv)R#_ZVH|hLno3<=ikL8M`JJ{KTRv!CE)U?v1VK}h61hDZ>6QjC1#k3)~_ E3s96cn*aa+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMImplementationSource.class b/libjava/classpath/lib/org/w3c/dom/DOMImplementationSource.class new file mode 100644 index 0000000000000000000000000000000000000000..02389cb27e24e9f4d1e7d09dcb40e454109d4692 GIT binary patch literal 317 zcwRg8Z`VEs1_nb0ZgvJHMh4~lqICUo<7EAm{9Jt(e_zksf}GUc)Vz|!lFaDHP)cnNr4FqWf8p;LnfLmrxDkFmo4)5uK3}<6xU}Rus00AbTZ&?}G7(l*e PXW#&eFfwq0#2L5%`fgrb literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMLocator.class b/libjava/classpath/lib/org/w3c/dom/DOMLocator.class new file mode 100644 index 0000000000000000000000000000000000000000..a73d8ce1aec6a7aff44f27b9badf70668668c4f0 GIT binary patch literal 306 zcwS9U!AiqG5Pe%U(P~W&;y0uhmm>7ytrkIu4Yc?Hn`9DFk}Ry7iofQeAJC5~oz;|f z4)d5d^M?0!``;~q2|^zOfk$mh`Td;9TsLx_e8f6aRvRCe0^wS1l&n=-$|PM=W(7ti z*|=(H(KRU P+dsU+h!yOS`vAcK2DC^J literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMStringList.class b/libjava/classpath/lib/org/w3c/dom/DOMStringList.class new file mode 100644 index 0000000000000000000000000000000000000000..d30c4eb087f75bb5ef14ca89336fad8e37bc8937 GIT binary patch literal 227 zcwS|W%?g4*6ot=K^RI#kTJ#3GX^56>BM=N1?%J6R(}<3sQ@vY@9-xPcv=$NF#kq^a zclaL9+a16XV+RIdUN?eWS2;V@7271cR5wzIShm`MMVJ)XC1Yi#1WOJD&o#l4npcEb z5QXu#{cvl7C%BHe68c0igD@hvd98FNRog@VNVq5XX?<>TzLg~>On)>MJzx{MHS}k8 VRs-1R?Hsu8@4@dH!mvvNqZdqcHW>f_ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/Document.class b/libjava/classpath/lib/org/w3c/dom/Document.class new file mode 100644 index 0000000000000000000000000000000000000000..8537d9d1a6247ee84e5c881035e6291f1f5bace1 GIT binary patch literal 2096 zcwU`VZBr955Z*(yQfZ+G1qB6sffkjD_<|P2Qp!vnUL0B(hi}If?=YFnQxf*qIThwa0#N#m- zG+^}9{9)$mrf28&k57q(-W%xc#P87>F(7Uej!fQa;KxiRyAvf@#c1Au6k^M6qfUg+ zki!?-D zKL#lSrnI%4hYd&vY1#|hW~LqFo4ce6Z3L!C2HYw+<3Sl0dahAm!_5_`d)3V;sHmgj zZWXG93ZALl#&U0g4m_$%2P&T#wTSN{yzKd$HI-aBLatYWNGZ%T5@afHBpo;TmC7W* zNS#nU;Bkky4#){%#IsOfrKf;KL9KCYKh+`rW~*x2d!~z0OFgB;(e60D>?_A@P^J!h zG1CRhA9Yj13aIRR6$A2p)HiJJlvYupxYmcFs&YE2GD35`56zBhB}3iKR=I|QM@$Z{ z(c~r1qBZ2=so*W^QVghH-Fk={4ICA2dNs37J*@w=O!f!^epg^HbCf;AI~Gt53G-!7 zC;W@w6HzCB7?eYNTD-&(WKR`blkywrOD54Ff6c&vFAU{UjAAS>BRxNc#ez*A|TDZ30g zX`ka8eUbS>Ay(m~7I~#OuaP6{8--j$q_A({oyN$+x{SPs57KVH$4&(P3iy8jHva>h Cf<6ua literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DocumentFragment.class b/libjava/classpath/lib/org/w3c/dom/DocumentFragment.class new file mode 100644 index 0000000000000000000000000000000000000000..8c5f4ac35747d3d9c6ad90105e0a35a173992886 GIT binary patch literal 149 zcwRg8Z`VEs1_nb0PId++Mh2PuqICUo<7EAm{9JvP{N&Qy)Vvb6qQrC%&CbBW$RLoF zSeB@tlbDyT@1K;FnhX?W1BxQ+^UF_3Wn|zA&Mz%WPIb%70dhpq&C&xI1JuaKzzoE! O3?RVBzz!st7&rjDS0;%7 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DocumentType.class b/libjava/classpath/lib/org/w3c/dom/DocumentType.class new file mode 100644 index 0000000000000000000000000000000000000000..f825c1523dd24f5d4693d826a7d7e1a79686a634 GIT binary patch literal 330 zcwSXdK~BRk5F8h1pe@iy960a*xL_fUTmh*Pw3WgK9A_1|O6)4xfciBKJb*``u4yF7 z!5+_QX0+q)pU*DW_P?i%{#wV7r<;zirl(;80<@GVexL#+Q1LugG$O zp-lHZ^H7jNQWDQiEw78~o0mUV#*OpkgThz@Po5n+Y89?T^e;rLMNE1%YY|UkT42L2 z_;%-Ac6sIOtk|(^(=yeOrNU;Osqv=Dy1XS;7-gYrEIqqQ_DT0k-NwzNfx>~DBl(A+ cv`lb}*!BdYUmW*1>F1|Co<$Vjx!eOxx2V@p_5c6? literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/Element.class b/libjava/classpath/lib/org/w3c/dom/Element.class new file mode 100644 index 0000000000000000000000000000000000000000..a7a3997fd4e31695624ad2e2ad254a1320faa731 GIT binary patch literal 1532 zcwU`U$4v1V~7fLl6gU##u~IY@^t;U*o_B@KK1_CBSCA z5`lwdd*;2FH%0UI{_+Z79qS3S7{~`T*LvJ=ta9L42UX@VKT4p@K<3tdu&t`?yVlv& zEpy1)K~@=l8kCuVq|2gn+dZ{C`YD(T$3MhURIB*zwt*C3b|d<`x{nAoXU0K#Uf95! z*YGrvE=bhDlf&+!O5leH^conDb?={@e7gKEPbo9 zYRMEYr?&quf;DZ;sUzX>in^|H$Id?zNu5sJ*x_$0c1cZ?VLWYB^>H1QB}qk1rc1H*jYzJ_Y)X}2=M=Ws-J)jo1v*&@?rRP^tW*h= zst;n7N2cRrpp~9>x?Tl3PziK`AF3`S#k(6R^7fFojoxW~!jM%gIphVlfIh`jj9L0I zAh3fNQar;LQ7oge++!G5EEBN|lbBL0)0h!CXECRE=3xrY0u~j|5|$Oq3RYzcJr;ep GVC@5g?UUXB literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/Entity.class b/libjava/classpath/lib/org/w3c/dom/Entity.class new file mode 100644 index 0000000000000000000000000000000000000000..08e290b0ff3242603cb33e492745788c6bfe680f GIT binary patch literal 298 zcwS9UO>4qH6r9!8_)#^8KSD1qrN^Ev2oi;WcwIM3SV?wEd};Bo_0S*CA60xy0(y9F z*kR`F%-{ddFMwCX5jp}hU*+=qP0P%ea_z{{HNulXd{$pd7Ru#vcRCwQ5qiu%suQ0X zfl+Q~U!MxAH<`eEvE1IBDOJ|x?~N$EUdWU|H04*~Ns;v~Q6(RVnc29{n$}MHj6DJq zrjBKCC&mqNFx7>90>jkTl{O!?2q~KAtME7H6zK9ibI%@kiO@&rG-z?y;;6-!7RLeE JH{spE^ag``M!f(4 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/EntityReference.class b/libjava/classpath/lib/org/w3c/dom/EntityReference.class new file mode 100644 index 0000000000000000000000000000000000000000..05337119a5d82dd8cbc4bc3cf077b98737a1e681 GIT binary patch literal 147 zcwRg8Z`VEs1_nb0PId++Mh5BpqICUo<7EAm{9Jw4ypqh4%AnM=)S}e9voAK@Y5I;W5$t`qD%x;Gl;A>oFD;|;)GBIEt)pQ{LeusfS`T(|OQHY( literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/NamedNodeMap.class b/libjava/classpath/lib/org/w3c/dom/NamedNodeMap.class new file mode 100644 index 0000000000000000000000000000000000000000..e90bfc641bef9bde1c340bd239dea2ef55f5a556 GIT binary patch literal 566 zcwUWBK~95E5PiR5X|d8)t$G4OHxlE)9s5GF`d_ziq(&*s7dcqrq*LV>dI zCqFZJ^XARG%-8qFCxAO#>F5bu%RIK+U>X;Gx6cKOLJzOKaNNufz;rzU3i3 zCmUiy{Q$S+l)eD3hVl*g9>?gTyo-(j<3mO@js_zmt~8NTm=$-7NfoC!Ycb9bR4$qv K{xi;dxcmWi9p)e^zV${^!rX0N@_bb$CU9ZP%Z*pWipzQ+M80-6?8cMeQ?k zLfSTQW^L{088t%zHsroMkX2)%YLYB~pbM}mx=s)hC)_7?MAwj25MZlg7$c=SHe~L} zw3w!1$WM$^u_i!WlsZOdqRXP8XliP~+zm{k7zdM)+>=MLDlU1>2vAFm3)NWxt_??; zDC@eS?oAX`H%8-C%5|(=)COtoOm_~8mo#y_qO4$5snR$YE)!P;xR_dcqt4z+Tn))o z&FHLT-4NhL8Zy*$g7d2JIrez5$FFFiIvM5W~N~yJ{_50dmZoOKxBD2xK36y3| zjIuQ89qQltrbdh%DeH4u3{Nb|Na7QvohCTm9vk=%H^pvt68Z z;>2%4fU10IQZKadQr6*p0WN3nP0|Lb86$(0$VRhB-`ZbRVf^l)*IKj1E)jJ@;!}rP z;@a|uy&JoUPc3`OaDc^>xb>|dOk8`GAH@D~TYZwkI!ox&6U&VP-8!EvV7O``EZcDmI3iF=Qg@)&mHPZt{Kg-nPP*~FwtZ#AFJ-IE2{Dd8<;sS(ek&NKr{swodVPu>8%p z>zc%lPn#8=-CGsST@u6`mrQr=;jJxJF?0hfKHx^#sPy~cT!wtBTR~1y#SSs^ zVlX8%*v^LSy1z!=qUN2l|3}$BvTg+uJtmR89L5X&U6`aECs`dEE(9*D~?nb^z zdzOt&R#@YAnHRn{c$N4$tiu&J17{JfvlkA|A+BU_6>%+tHxO@T@D}3p8N7}7wG3wb zuV?TD#ElHTi1<-$1-|9-yQH^%A_s+z)Wo7COv40!52Ku? sUYL(jU>n0ekA4hKxIBPEE`LbykBR*!_?gQI{K6%HBV-Z4B^iti%o>`Wj0{}C`K3k4 tscxA$sf-M~Fyr+=CbKaz097%7029zQRt7c(kgefYPL#%w*3Lpn)2iJ_wz`B}JKe>DCZM!Ii}& zsktCUT*3LJMaijdnK?lHyfAC^K>C1oFfuR$F)PrOOh9+AGjK3~+`|c?f#O^saRzPx D3G*;K literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ProcessingInstruction.class b/libjava/classpath/lib/org/w3c/dom/ProcessingInstruction.class new file mode 100644 index 0000000000000000000000000000000000000000..48a7bf072320578cf9d2206cb5533e1d2f640d3e GIT binary patch literal 315 zcwTK#!D<3A5Pi|Dac!#>6pA-*dNGt9dsRWuuAuZDV^~&nQgQIcK- zUDQKU(>2xIMZJH#z5%#IFG5QoaXyzXeJvl|Qr^-kL})X+P|r$QRpfH|uprIsmcVIK zJD4l4bRa)eK?%fFX-%jX2pp%^+2r@$D}l~vrKt?Y6;*^Cfs>|YIKBD)7C1B2$kLLE zFmOd+xSN|mRjD)yY^2$}KsP65ou#j%y)>KrxSj=XikxpIo=VG84dr?ISNOl*nS1h@ y#>Vo|xF#>^K~91_aBXsqZB8q~Hg|E|F?N{gVi$Fed)WWP1P4t8*CD@KI9daaH)L1< literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/TypeInfo.class b/libjava/classpath/lib/org/w3c/dom/TypeInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..b8f34b721a6c929d38dedd21f131d2900607b9a7 GIT binary patch literal 437 zcwS{t!AiqG6r8o%)YfR!TJR6ji$Oekk~W2fl0p)Tc#$<-LrRh@Nm}vOJoo{Al=!w( zT(lrC)4E9KsbtB4VF7mZ((F{iR#t;7~_JfEj-J{Wt(R&Pb zJPkfG_$iNKO?Mc2sciIufhZ&yyTj@Kf>BdtWqMDZhNxbNgp_txk7bo@KD1cU48%n literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/UserDataHandler.class b/libjava/classpath/lib/org/w3c/dom/UserDataHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..09ebf03cccfe8f61893c51f7c5b2d62f3f84ef5c GIT binary patch literal 419 zcwTLgO-{ow5JqQcNuWPapezs)rjWBV5&M1F8uw1)R|fh{C!L>=EyK+#+s!+#&9Id_a8YaSxEn9>H;aGB|Or{{tJM BRr&w` literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$1.class b/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c6cc33659b70a432929eeefc997c68cefe15b0f2 GIT binary patch literal 1248 zcwUuL&rcIU6#k|y-BMOtiy%^qfK^LDmQsy}stF<_O%|JospoAwmLc2SW_OCqf(E z88z3HzVxiN@u0F%ZnbUR;*PYWaGgiIDJZm;Eog`^B)6>{%djn{X;f<4ye>6F8D{#) zj!~FIzz~&N!p|;|vN@o1iD7idva{l^sLzlxgK9cb*hZCVaXo@Y?+8c8dkpKjfrXCq z%~cs9t8Rl2gCU_qLrhucbPOXNM;N0zMsS`XoKw(*DIET=)2earu~oCVs?n`mcGdEP zI`^Cr)eDB=pao_Nbis&_yu~n^E635R^VA3 zSCC~G=3SZfF?cy;)RB40_pdxVLIszR#(}i8ZHgyS{Lm z8(eO=4GjebW5BlSDB>o=1Qm6{aNo}LwP;g%q*waS>!`#MmS~v5w1yB$Ce?HS$&{Kc z`c=cUMxayl3|V&(3OtGY`~lA97Y>ljzeVabxk4DDJx*T`IF2KXlcf>~jtiIw{1-9V zqiPdUVW-nCkV)s?AbE)NOQe*QKE%uiT-|@d_SwFgdCE%TdQW2#QQAL}_cPg_DDs8I z<}0S~EzlhA^7b^9HHSR0FwB$PRbLLyK&&VH>h}$zf&Y77^|2mP7z+XF1{Q;xb{T*a K4B8{q#^s;)A31se literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$2.class b/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$2.class new file mode 100644 index 0000000000000000000000000000000000000000..6b7def77001cf0a9da0b6e22d87733cc3997df8f GIT binary patch literal 842 zcwUu~-%k@k5XZk$4o=F|YK3A&>n}8*i6{24#)MQbO%5SK@WH3;-R8RFdfV)65&j}y z^+k;j{sI0`#<{yD0tpX1?9R^2&Sz)8yMO-v`VC+MPhC_98`{MF=T7KHdgKqZwwX0z z?7!XJ>5s;V9LdxQt91H7#)?y?tFK%*gd0cVSon!ZV}EyWBtz?Bj?gZmnG7dJ*;9Yd zsAHALSVo&+&LGUaR;jXY2s3NzhXkjmBU!}^7CgAPMyLlWmG38`fiwqVkVrx!(4j~U zg;BXb4LWwHGD0V~a`Rn2+Dy2U#kKX|;vKqG+`^KJ#dG&N7#b-e4^1o+YJ4@r*fMw# zQ$`C+%flV45SC(Tdpfo9#P$-AWq}rvG=$ceLXRu+*Y}0?Mr2Ok=GNvews>C5G1Qx-%7(oXDW?%q#f$W#S?;mMaA(FtT>NZ z{&N)`{LJjl^Qyy^*v>xtf$Fy+?eSdAx6vjXPS)7>%1yYAI$M4j+?)bFvCWZn3Vx#T z9k+uoa6Uf&T7>7h@a`1Z%ulBtfA?+vWLxm)9ct7s@XZo2#aB4i#{Ht_2ZjF-kBX+s NUV#Q4^Xy<1t$%lR%q0K- literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$3.class b/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$3.class new file mode 100644 index 0000000000000000000000000000000000000000..d36762500e9b2b2d004bede83ebf8b9e22c4470a GIT binary patch literal 786 zcwUuKU2oGc6g^%_(`JEoW#gN|prEcuWTP)gLr7?VG^u0LiYB2wxv7vQitIp;cGzkU7!U=0s^%rUHKlSJ>kaWvFfG|<}S*6>mE za(int8>J!>%5p2U+7*eU)U?(0QDUec@(GVpu99eba42Hyqs-7O&|Ji0BkeTWF>)eP zk%-}o*l{paCOmB^o(YCV?-xbi8mW?XhVnD1qFZZXU!!tNM762?v$9-ig%tjPp@JvOm;EuH%2fAu|ftqkF& zQo?McJkJH$ti4iks&iu6681n3ecWS+&S^bF%jsVr{ilY0xWFpChezuISiRw%h5oNO zT2%yu&QtW1?hXk$k3Jyme8i>WqGrKiMTWZBJ2WT?DR$^(EEf0@uFP1T(CKoO&I!U# kxO()HqwH|D|66}$*6-nVQPsqqg7uUERC$;75|(lQJIKMmp8x;= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$4.class b/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry$4.class new file mode 100644 index 0000000000000000000000000000000000000000..4e6b46fb869ae1f1709d9909207f02d9186de157 GIT binary patch literal 1067 zcwUuLT~8BH5Iw_I7RpL%`4T^BRn)d1E5SF^NKg}!MGP3;Z?`w)lKmjNw`h&=@A#?- zsPVy96MvL(?ky1`<$;HLcV_OHGiN5VzkYxJ0bmJ>E`|t8Y1Z-IEQfwOjr~@d>Re}H z-+#8bu^#V7GM0%JTBXUB>?nTf%{_EcAe8sSf$$@dbo|ZMo(#2%VM5hLa~XCsrF;IX zOdY65c4T`sG#rG|fr#e9NaT5tinh!MGrk)5lcelAJDeWRMO%1;YTV_ z`Uzp7eg?FomjaxE%En1OP zl7=GM5t%anaj>9wRZdtA&OJ+R!^yfln8|u0_|sK#eflk$StA zYZ-6JJnd$oT+O*(DPlsSK41v_kV^gaWWTHXP+RPlhuem6f*DV9IhpBlYG5{@xNYGt zl$l8N%$^rbHo;p@5}DavB$Jk&Ct;N4tZqZ<-L&mup5UKzoJRb8!qaoC!@yqffLFrd za{)u;irEo>zq}#*-wg2?gU7EI*?P>r!{1VK{s`mEg(H-kUs3sNfm3`JZ30h+x|n9m zBr+T`xNPIIxN=ODFw$Ua%|nd;WU@n)zu{`|k;xDH?ibt)=0E-Ao@Rldw{Ynl#;J!2 sy+@Tk*g7>Ut9D$c#NHh4aHT5e_ALi@Ez>>JtxmGafC?IX7tqAQACArqI{*Lx literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry.class b/libjava/classpath/lib/org/w3c/dom/bootstrap/DOMImplementationRegistry.class new file mode 100644 index 0000000000000000000000000000000000000000..8c24a81a58dba739668a1f726e8c3fb37b0da81a GIT binary patch literal 5443 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSFontFaceRule.class b/libjava/classpath/lib/org/w3c/dom/css/CSSFontFaceRule.class new file mode 100644 index 0000000000000000000000000000000000000000..baca5f88371a0319dad295f9ad91836a52411695 GIT binary patch literal 219 zcwRg8Z`VEs1_nb0ZgvJHMh5x(qICUo<7EAm{9OIy;$nU0;9$4>yb`y>w70B9#812Yh_0zJS8bQe1V2Z+VM2_%^q FxB$VgIurl^ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSImportRule.class b/libjava/classpath/lib/org/w3c/dom/css/CSSImportRule.class new file mode 100644 index 0000000000000000000000000000000000000000..885b973b061ce8626a2c93553ffba4a3e11ed384 GIT binary patch literal 314 zcwRg8Z`VEs1_nb0es%^XMh4mZqICUo<7EAm{9OIy;$nU0;9$?(g8ZVApwgUFb_Nzk z27#=^vPAuy#JqHU|D>$csmw_&&PYuyDb@!o@yRSM0czm|Y6%9(1%u=m85Gg< zK^=fl0@TA5oL^d$oa&Yda+DB?zw|(^0(ydxffqqB_@(P_3>*i`~W{nypxIs zadElBdEMcBe7?N{ILE$^p2Bh66#Drh(|P@%GiE(Wk}2gTy;+px!&BIqr%$Oa)2h(3 zyE$dn$C|?7KR#zs=oe($1clQejJrCvuO;z4k!9UVV#9W7dj~=M`@_UGrYgo!7>VlYC8I}c>WY1AD;#x0FK5#qTBJFZWN8`b1yOh_SW+*V zjINEtM%`M@+&$?)VMS(D+VrF+AAPvK)-h=J5F5g7I#%|UYZ9X_BC{*+9`?Qfp5J8h literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSPageRule.class b/libjava/classpath/lib/org/w3c/dom/css/CSSPageRule.class new file mode 100644 index 0000000000000000000000000000000000000000..b65d865a6c1f7a158936a4befd0d6334a92ebd82 GIT binary patch literal 363 zcwTK#yG{c!5S&c{4#y(_fk5H|NE$3enUX*S3c`rqn3Z+WaYjA|!mm;A0elo7m5 z2?vYI$CIm{Hldrhr`K%cNY*ZK`Q06}t8BDcBTfnvX3_CQnPvTj0FJXA`7NO>XGLOb dOCkzgr>i55CHJKA_fuhtyt~DKA{g&Yu~oD7y?pBVv}HdMg&Y9HclIQr_pWc&X>cW8EG&oAa}uJIY+=aK7Ov-ySDSu79czU6GqtW zM~!YIGZI(>2uM?!UAMMPmm)$ymLhwmYnZlQte6zVGBt{tmPbqsc_4|^jmkL(q@d3NYR8u_Pt=e+;Sv9NfR*7>0#^hU+utOA>SLGCaUp8?;b>DF6 zwm<0WqDpa1Lr%#F$VgYV4X5VFoFzQvRuG*XzW?JG&oPlN(Ao8asN4w~kviRE-YXaO zu~PGUGdPagc(NK8u?tahtg~TUqV@k0BYCe-#^c77y{Omjwp4r}@74ZYw!zRQ?UilC zGUxJz^O*uBG0zB3x>3+miOZOH?xqehFh7I&F5YOBoVy^IhBpW8p^k-}aJcl!McFC^ zXQaLGq}L3}?GC-!xu4b=m5+B6+l-$iT!tmkAcfCkbnPLH9%s&=Cz!M7N#-f^H1iC4 zmU#|6&%A(MWX_?Nn5mv+<`wi6=Bwyy%-7MY%s0?CnQx(QGv7hqWzM4u%=ggunIE7Z zGOwX^=11st=Evv_<|pW<%+JuznO~q^GQUD^GQWlt{@c8PxAI?S3*O;K5l2SwdmAGq hFk_K2RAP}GsKz4iVK)}3ffb9`;P423_GCpL{sLoo@U8#= literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSRule.class b/libjava/classpath/lib/org/w3c/dom/css/CSSRule.class new file mode 100644 index 0000000000000000000000000000000000000000..239b88c0ee5b91e484a45777e8470244f9103878 GIT binary patch literal 663 zcwTLi%}&BV6ov1IQ27-F1jIko1#E1LOIJ-PN`#hl3dR+wby6X@5xp&UY_s{1S09?Z*2U`THj%)HCHwORWyzz$T@gk+_!eSh36DZE~cb&I% z+vJt!88dtWxsm)JE06L-9rYywgc8V$j_vun?T>Y9!4h~l5XeyNsV{}DKp|Ku-U}*~ zw6%uav%SGkQ6njVg#)S66V?h&QRphNHt7mtbX<}^dMMmQLW%%qGGANG8G%Hrjbmky zMbFdN62~sL+WqJ<)OV-0d5az|=Bc#)TiRnZNlSyx{VCp(gJS}+|0)i-@DBes=xzHF-#v^D#f`M4WeXWyPQo3Y!LHKJP`~m(b<7|Th zx(9pcWZ!%9=41Ec^X(k~F5%39Ee7X8hTiK{;60167bxYmec#uM7&{omTyh>cx=9Q)F;qbG7wSS<9s{m+38Qx@9e?o@`1I$6|)xPMf|1 z83`E~w4hcfgKJBb{~%^PIr8se66zNQ+itVVAQNdEn|*ezgBDFgTwNSq4-c%$KLmxDiYZfq{WO;8ys0=? bDh{FYi>X2_WscxDjdeI7mcc3gx1jL_w3E3r literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSStyleRule.class b/libjava/classpath/lib/org/w3c/dom/css/CSSStyleRule.class new file mode 100644 index 0000000000000000000000000000000000000000..7527c9fe278c5eb63cebf2e5f449c51e5985c00b GIT binary patch literal 365 zcwTi-yG{c!5S&c{4#y)20zpAf(qJLVl!R2ENEp!@vpQX5&dBFL_%#YXfR93~8;E!m zw&n4RXLjB{Uf%$mVppL>I0~`U&u32GhX?JNMxPsF(u?Qog=d8hp+C1zR(o5QdUiKw zmlW0s2Y=|YgwQKF8TLX9@rIX)us0lCet%+8tm<+s#O5b)fB2g>x+N4BOUI9?3U#Bf zO*mXNpUkelo(bLTp7Rrq#rD7HChWY8HftnFVZtIho>o~lSZ&}W=aF#B7%tEDY>|a#~!OfAQEuFdrXIz5);X6Tm5Su`~m(ban^#3 zpod|0-p9=HK0e>x0bJm~M@QkLZgRc2%=Dyw(iyWJ8)NKiN#>Er`tTG6({!HdGOco* zJWMGQbVK2+ZDi+Q=U}~ZEA(@+$)cj>ZdQ`QaS+CT+;ikep(o-ovzu7q^nYz!uoZo` zsF)hNTzweCt8W_H6jeTo!bnutFBv`CqORD-uEJ4!=~Z(3LyL4mC0SZ7^nxh77tGYN zCZn6eVZ&eHoV$aPguYa>!ad3Uh?1+V^S AZU6uP literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSUnknownRule.class b/libjava/classpath/lib/org/w3c/dom/css/CSSUnknownRule.class new file mode 100644 index 0000000000000000000000000000000000000000..329979cc22d2ba147c7f9c6a6d79811f9d4818bb GIT binary patch literal 156 zcwRg8Z`VEs1_nb0PId++Mh3b3qICUo<7EAm{9OIy;$nU0;NZ}_?7aN)yr9yYRCWdy zMh1bb#Ii*FoW#6zegCAa)Z`L&1~x_paV$DPS{NC)g7Zs@l2hF>K^$RJ1NA^=0d+Gn SFat3w0|+oOumedZ1`Yu7_b7J& literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSValue.class b/libjava/classpath/lib/org/w3c/dom/css/CSSValue.class new file mode 100644 index 0000000000000000000000000000000000000000..e5e1789809f90e9a45ea0218dd28b53480a339c4 GIT binary patch literal 457 zcwS{t+fKqj6r8n473AUt1-}4Z+z=mqGPTA{z#6vnmDIXvAlQ<&DE^ucet;ikJi8ig z^l|3QIcH|xKVIJe3~_2>i=mrlF@HXf_(S^0qde!1ltH*$D;pJt_9A==`7%sm?%gj` zR4~*@FcY^o?nL+uOfoc_G|7uFDa@Wl$H8!@Wp@)X7QP7FS#UX;x_ZPIntEi2*+@uV zvt*>ES!XJJZ>$-Mm{=7~p8IM;Z;$$e(XSaJl{Y*fYu`_TmfLzGQzy%ax LWZ(vgGw=Wa9aA>) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/Counter.class b/libjava/classpath/lib/org/w3c/dom/css/Counter.class new file mode 100644 index 0000000000000000000000000000000000000000..be680c49c4be2d090bf347e12cfc439f01871f45 GIT binary patch literal 204 zcwRg8Z`VEs1_nb0ZgvJHMh5ZxqICUo<7EAm{9OIy;$nU0{L;LV)FO5U7Dfhvti-ZJ z{hY+SbbbG%tkmQZMh4#W)Dq8>)Vz|+w9M2ZMg|cLO&^4+;F6-uymV_u1|Fa?pUmQt z;F8LmR0uaXwIH!5u_Pa;i7Pn2v?w{%EfXvUwNVdb3>zZ@BLg!72rvU3z{f%9jL)Mq3~np$<7;vkFae=H*f?Gu zFBJ+6LhFjne_KXPw#pq3qnHWpdn!MU1Vj>{ELN2#k;qo4N%kmNMSNZCN#YWo4{L&5 A9smFU literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/DocumentCSS.class b/libjava/classpath/lib/org/w3c/dom/css/DocumentCSS.class new file mode 100644 index 0000000000000000000000000000000000000000..c8a76c602c3e447b82e7bbe401f681f720460308 GIT binary patch literal 272 zcwSvky$*sf5WeCMii^9mi7qzAkx_IaGV}>*xgeypNhug#&A|uop^Sx?KpgIJ`EuXi z`}2GOz#bMpcm!73Wb}RzG}R>)RYfB$>JpVbGUmgWz_Q>Cr;@9TCf5Rm^O>+Gk{fPwtwI6; i)3p(J&O5_F{#`5S!V(y{nYh-(74l)$UNCptgWwC$wof4d literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/ElementCSSInlineStyle.class b/libjava/classpath/lib/org/w3c/dom/css/ElementCSSInlineStyle.class new file mode 100644 index 0000000000000000000000000000000000000000..b077d0d223b654877e63750c3f4f49ffa5577794 GIT binary patch literal 200 zcwRg8Z`VEs1_nb0PId++Mh4aVqICUo<7EAm{9OIy;$nT*oYdUZyb|Z&V9&gq%)Hd# zlFFP^b_Nzk27#=^vPAuy#JqHU|D>$c_DayP?V8@D>%QjC^^+FGY81wh1sbGvW|_Bfsuik0R)(VPGDtVV*ojY R9ZGY6XrKyCAj!nQ1pv5rFxUV9 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/Rect.class b/libjava/classpath/lib/org/w3c/dom/css/Rect.class new file mode 100644 index 0000000000000000000000000000000000000000..9bb8cbd7b5111c9dca62f52ea09eecc84393b752 GIT binary patch literal 219 zcwSvju?~Vj6zeH+fDR7+f{89(jH8<-P9z#I?uaKI0nfmJ|K{Ka_)*4p36pPlZJIXi z=lgmCSYpJ{W0>eF6VFvDF1i$HU5iMjhQnbP=SiE0BDrT`f6hr|a5HI+`oS=r&BOoT zHjWRKDwR>KJS9aV*9;y7B9+}J>l58*V|2;DiHGt^Y7pzDO65)!k}S4+VQXCmhCb{$ VG-Uu6b`tN<>(IAI&VYUo!yiuoGB*GK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/ViewCSS.class b/libjava/classpath/lib/org/w3c/dom/css/ViewCSS.class new file mode 100644 index 0000000000000000000000000000000000000000..74b7a997d6f2c6b734979d48ca5d512537bc54a5 GIT binary patch literal 257 zcwSwPyAHxI3`HGYg~Gtb#taJ)V(f%?Oce}~*h6YnttpLp&vkl!N|IlUlxidw&1EP`60v0N{9ej42HR^B-hfUe1FVQQ2-qV<6orm z>m^?vOL9_C4SOs_TG`@sCQJlfH8R*u;$Lc`u|Pvn{5>GZWhRZL@xPFld55e~Y3U?o n)jp@> literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/DocumentEvent.class b/libjava/classpath/lib/org/w3c/dom/events/DocumentEvent.class new file mode 100644 index 0000000000000000000000000000000000000000..8466c9b74dbbe104c5446c9326a29393e8348b83 GIT binary patch literal 250 zcwTLey$Zrm424hXPt`hzlcS?9Uc|AhIw=l)f_e?5rR|k^TYWYMAHataQwM**K*%}d zBRTiS^#)*$z6*yiHbtb)3#|?&Q(SRwPikp&nTcA})$wiki`ev8A?Rza~V9G-CI!>7|{0TR! apSB5v2I?Zo+Cp2rE3PTCBi$42zTjG)mB6e(S{ZlY{-CPEh%l&PBH$P3qQb*GTs>o zk{CC0a!$^jb01&dAD;kl31D`96Wdl%HPX?@XNi;sbE8RvG4mn=+fzX(UY#xP*j^&pihOH@=Rw8m6`%;>iX|vZ++N@g>`JV_p2YnHR-q=b4hIqs7kC86;-GLM|33Wz DLT7y$ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/EventException.class b/libjava/classpath/lib/org/w3c/dom/events/EventException.class new file mode 100644 index 0000000000000000000000000000000000000000..c1edb4ba3cd9b54a2262dcb695218becf9e47424 GIT binary patch literal 518 zcwU8&O-lk%6o%jHXZcy0rM5}hm_$RgG}_n*!XW0D&`Pf3#cnuvVrI1dR*MK)^aJ`) z(YaF;QPAd`bI*D2b3R_*o?ieQqn<{Lq2c*+58v9L&EW9f`QqjyX@Nov(xML%=3vkHv6N==xSh2%;AtB-|+vSf3VxuBfZXIqC)$hUSMvGEWIOJoaC iX@@{n`cgxgUV9&MY@woWOHney>u8&_x^Xok)ZPL7QFE36 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/EventListener.class b/libjava/classpath/lib/org/w3c/dom/events/EventListener.class new file mode 100644 index 0000000000000000000000000000000000000000..6630f8e6f1dbda927009aba03f032bf1208d722a GIT binary patch literal 180 zcwRg8Z`VEs1_nb0PId++Mh1oaqICUo<7EAm{9OIivedkiVtrQ-<&#-llA4!V#LmFN z$RLoFSeB@tlbDyT@1K;Fnq0!jz@3qpmy(kTR?EmBtKoyoAZyJqMh33n{L-T2RJY8W lR7M6N6btk~X0tIeFfuSRfB+-VK2`=c5Q~8wNHQ^S002_pFY5pR literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/EventTarget.class b/libjava/classpath/lib/org/w3c/dom/events/EventTarget.class new file mode 100644 index 0000000000000000000000000000000000000000..8eab3078bea5e0ae689cf5732d7886b62b9be321 GIT binary patch literal 356 zcwTi-%Sr=55UkE?V@#sp*?_m?;vl&QdrnRZ9wHuc8)ut!LNXI(C#&D)!4L4G#NOZw zVH=uix~mGR-#=d80Nmg#L5nc)p-|6rqjJAfT(OI#TGVi_L%}gYhj6~pl~!Br3U&9m zVH0Jg^ZZE5Y#G^cAly!~U*0MP>xwjMa{rd4>)8Y0BJj>v{LgTd+j6g?c{=V1m(xbO zbhai87B7bP(Rx=V7!t0U*grhcto$JuUfL~7s6WB4>nuG2p^duQ@`o;ZsQ;0CVIL=Q PAIP;Mcq%=TxrOm33DIL- literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/MouseEvent.class b/libjava/classpath/lib/org/w3c/dom/events/MouseEvent.class new file mode 100644 index 0000000000000000000000000000000000000000..53e18a10bce0e68311cca88dec587e2801319bc8 GIT binary patch literal 549 zcwU83OHacv40gt2Y=v#S9}*W%+hq~r*wa8DRcu0{Fpb`_&Xi20mC~#ee~kk_fFFf$ z(?W+diAc$p&-NEP_UG682LPPIaTO{IPGc4D`GwCX@his^Bc1R;JWKF8yH{bAL2D{f z!9x)R{BAr&pRDT)PL>EC9iw7U4^X?lLX1WXR@xnB(e#v)t58zxXp#JQvZ2#joRXrga<{p-Y96XBQg(*)7dM_MA8%xc44P&3 zZkCz)O`oE@Mx(Q6CRNygY&Nw5>jhc`Zo-zqMuE)&TLo^zj=^2nGq?{2^fH4(IxBGW E4Io{Mi~s-t literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/MutationEvent.class b/libjava/classpath/lib/org/w3c/dom/events/MutationEvent.class new file mode 100644 index 0000000000000000000000000000000000000000..1c7d925c426336bffd7f0fcdc9761c08693fccb4 GIT binary patch literal 572 zcwUW>O;5r=5Qg8iN|7%CQBf}*;X-3PdTRJcnm}u);lRliHnpT|ld`~n^WYEgM;T{p z6Crr;(9S-ScV^zqe15%u0Jz7ki6e%)I0>xn!_1n;OG|8oR4Z$=R$PU#>}xb}%urqM z4YwjL1Iv3|h#6&b49!1k(;9}-$m=-+r)xhup3A^|hH^KSE5)Un@MtXz^1vAKcCY7X zjb^fAj{75TVh=SM43$8rv52@5b2pv~hDNJB+?}ekk2H>SPl?#1t$$R%j(wGcG9Xov zRIb=&B2BhZiOZKn<&3&-R6=aD+T^(w%24gCgW;uh*n2uXbakluPsVRg7z%#8PG({d zM&zWvH@~ARX!qohz7zUi!$h9mr+R}Z5Epm2L|oqC3UYMMGgP7PT0=dJ=UHrI@dB4= Nyh2moiF)YTn{PJDinIU# literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/UIEvent.class b/libjava/classpath/lib/org/w3c/dom/events/UIEvent.class new file mode 100644 index 0000000000000000000000000000000000000000..edbc0b9d287749f652b55524224978f2aa0c5472 GIT binary patch literal 308 zcwU82y9&ZU5S;ZD-&%^LRnmBfjbJ6H5D+Xx3%fHO;Up%Ioblf*`~W{n+yp@j!D1im z&d%=a<9WLS7@=dKK DRl-qP literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLAnchorElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLAnchorElement.class new file mode 100644 index 0000000000000000000000000000000000000000..d97d1a34d2ddd1e57697c385e5911c0c74af06e9 GIT binary patch literal 737 zcwTLh%TB^j5Qe7+6c7~^P*J?$rEF}}r7L1I5K$8$?n^nekY30+1?AOT_y9hXaZWo3 z1{dx8-<*HubUI((AD;kl37QHq1u8zb^tWqM@A|H82d;Ca*V~WHnrGTRzjK(&yg-Gx z0=a=PHgw1EEd9ANU?ygh3Y7mZr$Pm?77J>o$%J@d69w{GwK?n43V7eMZqOzExC+{$ zsrsrw2Akd521hr7n1i%D@qOMEsKrdHn6GozLnWqanR2o_l9(sye==Ma`6HFY+zWG1 zh^YuO<7oy(3NtO+7@|ETexq7 z`kY9`JI;uQ-LNpx^UV>?nQ8eWZnFEngO1|D0x#t6#BE_2J_%fZ2{)=j3gl+fkO|{5 zah7<6c$IjKI7hrryg|H4oF^_27m2rsw~2R%OT@dd7sfK|hw*^U59$1f_?Wl?Ct*C5 M5$8I?cMQ&d0J?dZ?EnA( literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLAppletElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLAppletElement.class new file mode 100644 index 0000000000000000000000000000000000000000..902fc0375b046b46960fb4bba3b7b3e115faf9d2 GIT binary patch literal 658 zcwTLh%TB^j5Qe9Sl#3Tsz$@O^l#PwLbcIF(3F-oa>sn6Ql3qwp#dmYz1NczJIqeUU z;G#YMH}lV&lbP?I&o3gnq?S%OjapIcm><`+If??)O#=VQ?7lqqJClhol6zkSB20A3 zYg8RuQ_J+N&@rFi#=_=kL8IpXkPKGSMKuihwevr#~n2hn?MiwDnVOJivx z7ivyCetsK&tGv$!uSlmNsa2JzoSqf%8h9PN0p0{x!CT;M@D8{Ju2UmDcWEy@_mMw9 Z{t$cwZo+>I{|WM^D$nmexNTQ+=-!bJ4E>h~zQ_9i`Wz+*H54jOoNm4wlU3~qT2S31%vYcHO zS7A-mb+ANj%l?M!Z^D+S+pr_*uI%seKE6i>&l>E1 E0%?hO*8l(j literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLBRElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLBRElement.class new file mode 100644 index 0000000000000000000000000000000000000000..4f79f902c23b12b6913b313913ae6507456c42da GIT binary patch literal 247 zcwRg8Z`VEs1_nb0UUmj1Mh5x(qICUo<7EAm{9OHvlH434eUA`dAEzMKoYdUZyb^W> z7Dfhvti-ZJ{hY+SbbbG%tkh(nC>tY#EOxC>jf@N&>8T~oIjM<7j0_?gnm!0Kf=h}r z^U|$>DvIGML^UuKXofK|a0Ta=7A2>;W#*(ZG6$9Yd8Qwn9;+KF)h%6P=YUm#!~K l{p;mXDn6evn$w@4mzRFHb9!g$wOHrLaca1F{DnlB#6M>zlh literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLBaseFontElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLBaseFontElement.class new file mode 100644 index 0000000000000000000000000000000000000000..9425db7d5c0a211c542dda3a3436a94fb63a777a GIT binary patch literal 344 zcwRg8Z`VEs1_nb0VRi;4Mh4aVqICUo<7EAm{9OHvlH434eUA`dAE(6PRJZ)R64#v6 z+|;}hb_Nzk27#=^vPAuy#JqHU|D>$cWS}S;BZDk<1E3li8935YOPup_@{1T5L^L#g z5M~6I6lLb6TLV=T!&QiCU@FiIV`N|l8se6ioC;(W!&yMF;LIu@i&;a{6CwlQvuJpN zG;syzmlh?bx@G17#U!x!N)Kcg&sY|hue+JJkWFT?0rk}^d;lMc@x(oY z*CNUJ&Mp7^@2l50062pq4mAcR)+zCHk&4U~;?WoST-;9X;-Sr6uC*+r@fy~~Zd#Ex>^(d++h7)%*7amg@A z=gQfI$&kyR9EG|XS#2Fc`3*Q$s@=R?N0^()XJ6&2D9D^v<)DYcXlxfQl{dMTDF2r! zr$H(@z+eN<78=?>mpIfRxU~b(=etYXAZ`-x5$_YXh}*;+;sfGtVEm_tcMT3d0PJjL AIRF3v literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLButtonElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLButtonElement.class new file mode 100644 index 0000000000000000000000000000000000000000..82cd95c72364921683f7e980927ef5f55a500f4d GIT binary patch literal 527 zcwTLh&rX9t5XNUKN^McAw)OwXG=YmmJ$lk;V`J4rNe{g(utAyy47;d(H4i?34`rNP zsnxUx_&#R7-_BrUCy9tdLC+okuC+hE>f21f*nmE=WM;-L`y9tPff0shdQBuN-hbLi4tsgI9Y+v z65K>w33DVk{v;&SbHfY5&<`ikcj{JWJg^3p6g&&xKVv`oB*v!9l?eWt+Oa;DDPQH1 i69&Iz(<;Ix*nU*wSkMMsRKOmZ@7qG#Duj;RHFRIEi9UV+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLDListElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLDListElement.class new file mode 100644 index 0000000000000000000000000000000000000000..d119b0bbde196af9ceb6232a6fb96f181000ba9d GIT binary patch literal 223 zcwRg8Z`VEs1_nb0UUmj1Mh2z)qICUo<7EAm{9OHvlH434eUA`d9~Ym@;u6=K)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj0{}qsU^<&xdn;IKn}BpW)x7U z7)gjlBT6$2C>ESwT9lmXmYI{v$RLVtzaGeHpk+W4fS48NcqX8O*cmt&Kn~+%-~x&; KGH`>$8F&Dt0ya1R literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLDirectoryElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLDirectoryElement.class new file mode 100644 index 0000000000000000000000000000000000000000..8ac3813dd356bc6c991f165d2faaa9ea288124cc GIT binary patch literal 231 zcwRg8Z`VEs1_nb0UUmj1Mh3O~qICUo<7EAm{9OHvlH434eUA`dAD7Ic)Z~)rF9PcQ);#m>ON0CF5B P0~b()k%1c|&cFizT-Q13 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLDivElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLDivElement.class new file mode 100644 index 0000000000000000000000000000000000000000..b793b122f4d76daa00abf8eab2e793034ece0a21 GIT binary patch literal 249 zcwRg8Z`VEs1_nb0UUmj1Mh1oaqICUo<7EAm{9OHvlH434eUA`dAD7HB*PPVc)VvaQ z1{OvJfvm)`ME#t^ymWp4q^#6rpeP$7gDiHvP>qZX9Od5jDq8k#-`GlENs zGV{`{fhvmODnvCf6=;SrGH?awmlh?bx@G31GBOCGx=jzH1LzP&24)~;1$v7K=va0J U4hE2;IT^TsB8&{&AaMpB08%eMtN;K2 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLDocument.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLDocument.class new file mode 100644 index 0000000000000000000000000000000000000000..6ab518cf2590917ddec9c98cddb5e0d6c9ebff27 GIT binary patch literal 780 zcwU8)$xg#C5QfL4ZMv`(%D$FOg#!_AMZ1jbwL zgKKj)^zG_hi+Z@5CQuyo{L~Z3_%ym^5vQmqZ#!SE^+>YNKSYJ3g-@))E> z@2Qkj63F7}LNUY(VcVEzLI%o6La!;L>ZLdqqRp@kS@mV-PMylF*7YhATkCH`5D<;SD0%kIoQy9-#=Nlpb1fH>nj;If)b-csCAxfId{k1Qsab zV0*sV9n0(e;eAI$7c}yyCTLugiF~_?<)+Bwv&+n-yjw4#xzU-aQ@@VqEI(-z>Mtq$*qap2&^x#J5 zgtFhN1@9&;AuNjk&b3k2KBx?#!2UshRlJn3zD=tO!=n+;tA}77L3OMqzQ)JQ9<`~O ey+i)zdBPkppE7rud(0v88FRm4+&jQtqu~cGK2tjY literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLFieldSetElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLFieldSetElement.class new file mode 100644 index 0000000000000000000000000000000000000000..60c8e114261d57b8402c978b4699baa17b6b7fb5 GIT binary patch literal 232 zcwRg8Z`VEs1_nb0ZgvJHMh4aVqICUo<7EAm{9OHvlH434eUA`dAGgfZoRr|y64#v6 z+|;}hb_Nzk27#=^vPAuy#JqHU|D>$cWS}S;BZDk<1E3li8Q9ZPOWg8{a)DN9X!_u= z4JZ%QV9m(D6`WsMl$`38nUl)MAc4g-dLV}Yt!89k24YsAZy15jV`tz1u^2dkBohM{ E0BW^9KL7v# literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLFontElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLFontElement.class new file mode 100644 index 0000000000000000000000000000000000000000..041d133f9017c89b6126d5b3e3a1d724692fee9c GIT binary patch literal 323 zcwRg8Z`VEs1_nb0L3RcvMh3$cWS}S;BZDk<%}|Yu3>@jHCC>Rd`9+KjA{v@L2s469 ziZb)kt$`|v;VMKmFcoNqF*2|N4RK3MP6e`x;Vht7aAp-$48r0H&Mz%WPIb%70dhpp zJfR0N8t7t124)~;1qJ{c&{ymX91I}eaWZg$X>KT=2g>J#^7%k~pgw*e$;2Q404Kjp Aga7~l literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLFormElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLFormElement.class new file mode 100644 index 0000000000000000000000000000000000000000..6f0fc70f0104a8a33ee2bebead88ea559e3d1709 GIT binary patch literal 591 zcwTLh%}&EG49A_pR@(7VVB>p8lQ^^&D&WWoO-vwlaM;AX>!P+(+e}FY;?+3t06Y}J z34tQELu3D3{~bI2_r2#?U%=5$Lf*#9rteLU$nt+X>kd}!|39NYj zJpl_N4^cr0w6H|g$x!mFOi*HppM1s|7VCe literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLFrameElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLFrameElement.class new file mode 100644 index 0000000000000000000000000000000000000000..98027df47a87d8fb3619ef3bbd6eee0ee9cccf8d GIT binary patch literal 640 zcwTLiO;5r=5Qe9SQ~~)C6hBEkm5Ysf^rlES048EI;a1CLDQUaOZqdY_=D{D}k21b3 zi+t#zyYtMvJ2RQ-*Z0RK5nWKjq?AEtLUQ}<%C$!#u*Xs0U)r6=UbiisfZh2lU}0oZ z+Mv?Jd39{x3Aug$GGQ*f8G}y#f2|)HRNyR1Qr!qSV$z_h)$A@Z4I=4<{2Ds7rmI~Ux%_Yrc i%@xhNR88(0?IriVj@NbkK=YyIBRWPW_*ZbI==2Ain3tmf literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLFrameSetElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLFrameSetElement.class new file mode 100644 index 0000000000000000000000000000000000000000..acb6eea305053df385535598dea966bad652217c GIT binary patch literal 293 zcwRg8Z`VEs1_nb0es%^XMh4aVqICUo<7EAm{9OHvlH434eUA`dAGe~!+|=OI64#v6 z+|;}hb_Nzk27#=^vPAuy#JqHU|D>$cWS}S;BZDk<1E3li8Q9ZPOPup_iWwP1G&Fq> zMg*4>W#*+@0~Hj*6o_hI%4>!}j0nmvFNUavu(*QrON)|I-7<4h85tz7I9U&56wrN) m49q~x3iL7y&=2ek91I}8a58X#X>KT=2gC=e;{}pT4156gWl0qP literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLHRElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLHRElement.class new file mode 100644 index 0000000000000000000000000000000000000000..cb369464934b0f365f178454f82cd9288345da7f GIT binary patch literal 376 zcwRg8Z`VEs1_nb0QFaC z7Dfhvti-ZJ{hY+SbbbG%tkh(nC>tY#EOxC>jf@N&>8T}-IhpBsj0_?gnm!0Kf=h}r z^U|$>DvIGML^UuKXofK|Z~+bR%MZ>-Oi5*AVAjx#0tyu)39)EIft0ZWl?7*30R`BL zVJwjS;h8BV84!!0Os?Sk(xT*4x6B-%5+M}7>VaGU^cc`0AZ7)I5(m)p>8+|;}h zb_Nzk27#=^vPAuy#JqHU|D>$cWS}S;BZDk<%}|Yu3|#4{B>_eGX_+~xj0_?gnm!0q zf=h}r^U|$>YKoE6h-zRe(F_AB3eGPrN=|iy7=-3PJ&+clYZw`rftVHOIVPZs*%>$( SKrZKG-~x&;GH`>$8F&C?sX`n8 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLHeadingElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLHeadingElement.class new file mode 100644 index 0000000000000000000000000000000000000000..7dec3e97ba1487269db399ee5acc6f00e16169fb GIT binary patch literal 257 zcwRg8Z`VEs1_nb0UUmj1Mh2DqqICUo<7EAm{9OHvlH434eUA`dACJ_;l+3(z*PPVc z)VvaQ1{OvJfvm)`ME#t^ymWp4q^#6rpeP$7gDiIaP>qZX9Od5jDq8k#-` zGlENsfEHK-RTRTjh-zRe&8Ni~s-t literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLIFrameElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLIFrameElement.class new file mode 100644 index 0000000000000000000000000000000000000000..ad1f0ba209469c45813a81faecda41f029ea8635 GIT binary patch literal 701 zcwTLi%TB^T6o${BQf^X2K)m23ZeU}hE?uceFacd)bY072D4BMWnWFFJ!Uyo7jHht8 zyJ&m9fBu=C{--~`U*7<531=207@R9DoX=~|>8rpQM1j0=+ArPCV@taMe~>)jVPwH3 zgTm1La2@G}!g+olau3xcgWCVwX(NM_;L)x0MaZC3Z*=Bo^djwt;szaN<|x6LK+=y?u!AwGHvE{7WIw_MUxv3$t;qMYh70hKb*R4v#R80o;SZA z4JL115-fB)VJBFbX_Z5*=V>J+egUFc!eqRvv4NzaA`Xd;i_@U8i0ZuxBh0a>ywN1j zDu%ci`E&(?%=FYqd%WdKY@xC?#EUpuoEU=*yteQcDC1NuNI^W^G-SrlEOCx_n>bHw p6Bmegh>OI##3kY~afNt~xJtZFd_a6id_-J>W9*c{3EmTM`Uk3YqH_QM literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLImageElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLImageElement.class new file mode 100644 index 0000000000000000000000000000000000000000..db3786aee06c36cf41515df50926aa62bd08d553 GIT binary patch literal 703 zcwTLh$x^~V5QaO5gvA9F6c=1@3l~%B(UX>1qzd$aVimU-riM^is7%y%^WX#cP?kND z22<)G)Bo4gTc$t1-ai1~6pnSsXwV2FZoZv6<{vOoNKiZ2y$##*rKF3k(pGfU5ELzS+|t zk0mZWmj@`tROXZyJLCk30(!2(Xuu-WBBjyaVlE$I%#6{rlG}+VYgn?03KC=6VRTJe zHn&8_9;@7bG6FfWMqj3uFr*y@{F(^|Nu)_m*^QiJN+o2YN5ND9*=VZK-%Ab9OAYYk z4&q_bnq;vXzC;eYbv^lTzxQ<_-w~ICGvhal%dX)9b;yHUWC4oGmWbzw=ZP1H7m3Tn zOR%i$3RIM>60Z`kK~33p*id$p^0z3zPP|RLL%d78NA((1Z=d);GXBRQo*6j$2KdL4 AF#rGn literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLInputElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLInputElement.class new file mode 100644 index 0000000000000000000000000000000000000000..45b2f2ab94230df0c83e2f0f47c36b728008302d GIT binary patch literal 1075 zcwTK%+foxj5bec~kbnXT-tmGW8!xPYw<@13l`>@_RVMPl+hj9r7ACu?on0kC?g^DihnC!Wvyf`1 zNf-rhnW#?_m)*0x`kq6Jh2;Cb^p9lEp$l$(pELSwrsVFMq6!!7#L2*+HGcp6rcEA= zb3;|Gc<1|a$Wv5x;m;wi^=CO^sQ-gACac0AVppHIWgF$Ut1Kt`c68bTrW%o4w8*%HHiiDTca34gO$6Wmf)Wr-b&2beyH z{Y=}p6<-?%d=>gfysdVeCBEDVl{u2rx4L0&h7Xfv_&3dmzRt&6p&2qqT&0?|vovSz zMY?3|JS|we2;ODzt^h9qF9Tl%z6N|9_y%-uLiZN%ZQvEUW9?nKXYGB|ucH0|_z%Hf v1OE~D>)^ZK*O7mW{1fD#BL56{1K0z84!lWQ)^5YTfPHB!@9!0Vr|9)RWHROI literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLIsIndexElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLIsIndexElement.class new file mode 100644 index 0000000000000000000000000000000000000000..306ee6392e7c2a4eaa1e193aa1ce424c2878af16 GIT binary patch literal 317 zcwTLgI}ZU-5QWcptv3Zx=}2hYpi~o^5E7za>t>O?d*xb>-=^>b{3tOi5(UM~By-M} z$(hIVb_dW!$wG|K(8d#&zAH9biEXI-o)|Bu6Z>cf8+jf2Qpq5+kRX)z&e;*Z6L?~_ z-bC&Q68iqLGeC;!cn{s9Jr3=?ys)q&{>GvBj|(Ch*)vK+sbYU|h0 vUJnIES>5Mie%K?0e>rXN6GU9z*d3rqEN) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLLIElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLLIElement.class new file mode 100644 index 0000000000000000000000000000000000000000..e309abc009be7d17e60c396985e07ecffebdf8e0 GIT binary patch literal 296 zcwTLfOAo<76ot=F>ir5!v28adSXvWJDi)gVt0qOJtyB?z&B71xqr|OvL|Dw+dtMY)U&sv4R;*cF51 zp&G0i8F+v?9Fvn%i;KNeD;XI?fZ7l?2bUCO=B0yF6{DyU)xcDw8OF%K1vJb9Xc5o~ zAg36a6P#aKl$`38nUf0Cj_zYUkZC~gF)}a%F)J{*Sb;&n&cML{3JOjJE-=l_zyqdv Rp?p3NAE=%mNHQ@90038WTz3Ef literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLLegendElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLLegendElement.class new file mode 100644 index 0000000000000000000000000000000000000000..ead0f416bd3fb22f5699a500eda3f74662c683a3 GIT binary patch literal 359 zcwRg8Z`VEs1_nb0L3RcvMh4~lqICUo<7EAm{9OHvlH434eUA`dAD`6p)VvheoYdUZ zyb^W>7Dfhvti-ZJ{hY+SbbbG%tkh(nC>tY#EOzZsjf@QJ>8T}d`9-;m45}KMKG+q5 z}OQyJH~au^Df`bU<~eUJ); z&P3|WGY5r@jwj;4bYtsWn-09UXSwKLp(?%EOYFuJj=urb CyL*xV literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLMapElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLMapElement.class new file mode 100644 index 0000000000000000000000000000000000000000..dc90e7d09ca1e8641d285c76d0c0760025ae871e GIT binary patch literal 305 zcwRg8Z`VEs1_nb0es%^XMh1oaqICUo<7EAm{9OHvlH434eUA`dAK%0R*PPVc)VvaQ z1{OvJfvm)`ME#t^ymWp4q^#6rpeP$7gDiHvP>qZX9OTmYCu>TTvC*omkv@;3{xPgfhn&U#>l`GoL^d$oa&aD y15_l8>K8qb4xqys8JK~X6&MW6K+mx=a4>*8$;rS4rnwn-fHI5>yg-tPfe!#xh)$XS literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLMenuElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLMenuElement.class new file mode 100644 index 0000000000000000000000000000000000000000..72fff70987d842d15bb598d2290f0eb6807a62bb GIT binary patch literal 221 zcwRg8Z`VEs1_nb0UUmj1Mh3$cWS}S;BZDk<%}|Yu3|#4{CC>S|1&PT(4zq@46i}!b zNr*)wN;3>77Mx#Nl$`38nUl)MAcAJS9>`{(T|fhXm=)-BCZK!R88{d~?&4(N0*Wv) JaD&7dcmN{i?D(f+k`Rs`}`Xd=X3KOF57V)%gy z{?3`pQH4*XV$3kNJl5e$YleReOg^?9g!qZX?CGf`&Y2~tj0_?gnm!04f=h}r z^U|$>3W{M0L^UwwHNzMgxPeBvB$lLxWaa`@aTg==xPtRbi;`2_GIM|&VN_S^flLEB ok&%HJh*^OiW&wJGoq>Y^W1(DXq#Cb*<1GcVm5 zsGu08KvV-$9%KYpaDHh~a;jTq4oDHYFZDorfL;PR0fPJV literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLObjectElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLObjectElement.class new file mode 100644 index 0000000000000000000000000000000000000000..5e598bb3ed0eef2264ea8fbb89a7aa0896f0ba6d GIT binary patch literal 1035 zcwTLiTT|0e5XU!I4YXbm0r7&UfTmuEfIj&oR))@iKD6QtZ>PzbG)yj?77ec4z1=z?mle|fU#D0puxKIWlz zXr3!3O?#$@vq%!kal(RkQEwkQG|fkRNa84Cx2)Z!M2lb;pK@ulJO?wZ?BqqL3--&2 z-@+(6s^qLz`42(spN-CGmgEW@Wt5%OdeXh4gG3daaK&pM*%|6k!#k4EWt2S~M?+&r zseOr;BNf={E>uJsURR2x?`M^2+t+&1w`Wuq4$f@H8sr9jHRxuc{$X!0Avp@xI6&{ybjWuMT~%C16RgT4-a27Zow5BY8AFQC5!zXHET{s!`W T=x?BJ(iVRqhqn2Dir)SOLABt_ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLOptGroupElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLOptGroupElement.class new file mode 100644 index 0000000000000000000000000000000000000000..f761f41e011308688ffdbc025b1d7c027858f14f GIT binary patch literal 316 zcwRg8Z`VEs1_nb0L3RcvMh4aVqICUo<7EAm{9OHvlH434eUA`dAOC_9_oDpL0@s|> z+|;}hb_Nzk27#=^vPAuy#JqHU|D>$cWS}S;BZDk<1E3li8MxC^OI$LG6O(dMQy3YT zH8i7uV#UZ}EE-XoVT=qMK!rYuNvS!E3?dquJ_yT#ONuh{(yf6iis33mH82%`4B-mS zFD*(=b<502Wn_@R;uAfPHlVYCP61+8U`Vh4y~fVK!2t3iCj%Fl=4Rjl)4U9PKoyJ( K{6Lb4K>z?fZBDHK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLOptionElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLOptionElement.class new file mode 100644 index 0000000000000000000000000000000000000000..c63938392e500997ea8522bae510405491314f6d GIT binary patch literal 553 zcwTK$Jx{|h5IvVdN<*QPwtP>hQnC;MBP&!?3hI!mLpLWeA(fM$#DV@c27UlP3UPKV zg47K5yYsty@8tXb`TPQa8@Mo_LEtLOBj@8TaKbEcUPZ!hou}EeJAD&zmOgTpuv8e( zB+y;bcj|DOM$XhqY`b#Kbtu69Oa4cI%5JuN&?O^swWBz0i^ik8$*2 zA%QK+ULaM}P)%!L&(}sXwnEE38dbA;B9GGubz4|4Nkg_$Y7+vcG>QxAb17pM|1(+a zQlD`Qi@$JSZ3;_osZnKv&_R=6jky(tIBV3Wu6M*8GX)PbH6jXLvW@{1;ccgE#;H literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLOptionsCollection.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLOptionsCollection.class new file mode 100644 index 0000000000000000000000000000000000000000..ab3364ceb22414f9ae95cdb403c509902bb48b72 GIT binary patch literal 347 zcwTLgO-{ow5QU%H(9rN#kSZY#0Oquf-W9S;&F^9>2&Wbi5wjlK%{a}04HaK3%%LpJ_zv!ZfT z3-no-Zcjbil7?(<@|wzIJ#!hSoA*pyQyDefDT*fcqbcaI(j;)PGv2j#>IiTM_!V&4 eJ#^qxhuCM{^_0(u$svx`onxFZ<$vM5h0|ZYE>>#* literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLParagraphElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLParagraphElement.class new file mode 100644 index 0000000000000000000000000000000000000000..4332a69860b915941ff6b733b385332b80b484d0 GIT binary patch literal 261 zcwRg8Z`VEs1_nb0UUmj1Mh3O~qICUo<7EAm{9OHvlH434eUA`dpMb=o#Pp)Xf(+N3 z)ZEm(5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(b`zi)85uazQ%f9kGSl-I8ALQR zeGp~@mlS2@rCS446vI`BYG5kR3}a;A3eGPrN=|jl%t>Wrki_OfJ&-=2a~K(zftVHO aMJAw=*%>$(Ku+gm-~x&;GH`>$8F&Dn{Y0Js literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLParamElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLParamElement.class new file mode 100644 index 0000000000000000000000000000000000000000..de95836211acd39231fdfa9e55d430535bcc50e7 GIT binary patch literal 371 zcwRg8Z`VEs1_nb0VRi;4Mh2z)qICUo<7EAm{9OHvlH434eUA`dpMb=o#9Y^$)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj127QsU?1ixv7i{A{v@L2qS_^ ziZb)kt$_-PVG2YwFy%GFAV!2#7NkPdLRcI?v9QFPQV_Ek&g6lKLKN{7qj0%`^Gl18 zQ{6IiK$fBVQ4eG{&_j$2%s|Wv3?L4mr`Z`e7(kxqWZ(kR+)zFbl+O$0^FjIiP`&_& N4>U&*NHQ@90RYhqSC0Sy literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLPreElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLPreElement.class new file mode 100644 index 0000000000000000000000000000000000000000..df42293b04aa97d3507ce72326171d3ee07ae021 GIT binary patch literal 215 zcwRg8Z`VEs1_nb0UUmj1Mh1oaqICUo<7EAm{9OHvlH434eUA`dpMauN*PPVc)VvaQ z1{OvJfvm)`ME#t^ymWp4q^#6rpeP$7gDiHvP>qZX9O+J#L2(~6k%lG J28lE9002?NGY$X% literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLQuoteElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLQuoteElement.class new file mode 100644 index 0000000000000000000000000000000000000000..5eb553fdb65c295c68f8b3e8f16c87a67ef53acf GIT binary patch literal 251 zcwRg8Z`VEs1_nb0UUmj1Mh2z)qICUo<7EAm{9OHvlH434eUA`dpTN@ml2q56)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj127QsU^;tC8>-IA{v@L2qS_^ ziZb)kt$_-PVG2YwFy%GF7#X;N^Gl18Q{6IiK#I`arU%jkbO<8@GZ3=^J;nrdEIR`S T1IW>w3|v4FMh0$>I0Fv=CR;$b literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLScriptElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLScriptElement.class new file mode 100644 index 0000000000000000000000000000000000000000..f7b8cab2bcce41479f4b4265a309c0d51c1072f6 GIT binary patch literal 496 zcwTLg%~Ap}498PMc3l-w0l&tRm)#2;_2^MyIN*3##sjyt)@7OfV7e9I)jaqBK9plx zB07VIHu)w0ByB#w-ai1~63!f`Ft{jG%-^mBe=agU)>(SR`@{P|C{!}l-Be~W*A7$} zG$zq3;%St}{NZUL1x9NO&i^l`LIzGO^-#{yYx=?9w?(K`lE*hFD1QVke?1>OGVriP zA3OI7g;4$h7c0|}Z&Ut=_}DPcJ;A#Ir{754ZDard literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLSelectElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLSelectElement.class new file mode 100644 index 0000000000000000000000000000000000000000..1e5820d07821556406c75110b5bb86974adf1b36 GIT binary patch literal 921 zcwU84$x^~V5be=m5chq>eF<(U_2|hGD5(NDKymPvWsI>V36;g|(>(YAew1a;WCTm3 zJdj>q_v?N`e|)~Z1HdU9t1v)dI|v>9>Dh3PS|)f49p<0;)sf=1ZFrnAHl^E=3~_UEjGtS}aJ1QM=;X^qIh* zR;VBl^#F=iDYOV=v883O1WB_|$DPx9>3Q`qR#&O-#P{e&T|ZZPwrD$c13yw>mcZgq zCB=HJ1E(U&LFf_KMG=21=D1Xis&d#-Pss@!_HB|SR{`TX(Z$vgY%RKxVKQoqx46Yz z^fRYuw_F%6tR*aV+l;0q-H2~|V|d()Iv#&%_f_Unk8?B)Q@$_f=thHvjl(XrKD&R5 z{Rifo4u#YU9&wyvvLqCuFq^pxtOTDY*9el(qGgvaKHqbEC;VT8>($O$_Fqr#5K{5VVqJ1Oxg#0gAew}N&CGjlL6kOf#2b_te+U4d0$^D#C?fqP!RTjTf`3WI{-&tJ>l0l literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLStyleElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLStyleElement.class new file mode 100644 index 0000000000000000000000000000000000000000..4d63090ba3064aede268f90699477fffed3a3f7f GIT binary patch literal 346 zcwRg8Z`VEs1_nb0VRi;4Mh2z)qICUo<7EAm{9OHvlH434eUA`dpWu?poK)AG)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj11iAsU_e zK(S(EF&2#|%`ip=4xmEc)RfFbMg|cLO&^41!6ikRdFj?b6~%BBq8gYAK!&gb4GF0% zNCmQrVJxoT{L-T2RJY6=AV(D4YkDAafc^lw4TxER;lc*=D?0-R1IW*u3|wHEn}G*R W^D^*(X?`eQ0K^CC69ke>3_<`Sb5e8w literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableCaptionElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableCaptionElement.class new file mode 100644 index 0000000000000000000000000000000000000000..675127efb96878f648ad78259e97e7bd124f429c GIT binary patch literal 267 zcwRg8Z`VEs1_nb0UUmj1Mh4CNqICUo<7EAm{9OHvlH434eUA`dpOD0)oK)w;f|AVq zJlCAm+|;}hb_Nzk27#=^vPAuy#JqHU|D>$cWS}S;BZDk dm=)+zCZMa?88{d~uIFUn0*Wv)aD&7dcmTjRM&tkh literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableCellElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableCellElement.class new file mode 100644 index 0000000000000000000000000000000000000000..2dc70df30c55fa41bef2dbdc1f23b67ce3c311b8 GIT binary patch literal 816 zcwTLi+fKqj5Qe7;au5|2R8%~RMU9Pm>6H=^2)Iu&Cxs3PdpY*lfBAq||(Q zs;m31Wt$IJ;EfB?>i>Mcra)9kaLcsO^(L+q9$6kKNH31DC$r#i2j$}441~pOU9?_c zqmnC~PM}Gy=*I?qVAw(b1VU;_j3Nq(%xE*$3koI>lNrnG;v!<+jF0g*r|ud9xsgVY z9Y;cHV=Vjb45#N#K+LJPoB<2wBv**mXb(be?2GEU)%LqVHMw!!`EXn8#p2kSnfKFg z#NP1_Hy%G4KF96yls5 zbfAO%-)Eoyv;ME|k52%&hI0oR3@-CR@%P(^FY=VfCe=6mY5F{#in*4 zWYArSH^H^Y6rapjGQ!hc1{d26=ph4FNpr6gl`-h~!Fb~lnj*>69d?v|9ew|QLoj2| zLX%;PTGr}TJXtR5*Hk)q8mh7y#^ph~(mmo1@jmeZ@ga08J%Zy(Pw2i!_kH41 M%Q)u@_XZ4p04)t<6#xJL literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableElement.class new file mode 100644 index 0000000000000000000000000000000000000000..ffdb2320cf7a48f336cc4152973894ffdbc7d3ff GIT binary patch literal 1336 zcwUuLZBx@g5Z+)lEwzYB5noU#sHs9D;Op>7kPgnk;Fu16K9ZXd=8|KQ6!5S4!5`p{ za@@PyrX>iBA2Peo?mm0Z-DZFP`S}X~mf@ofV-~bz8oDQ|z8lEcJ;-CR;%@bJwtH+} z@J+#Ep5!)EESNlG$IKNh3EkcOL+)erh6S_#W)snZ@sQ^m>?n_9V!@Kr-oE5Csw3_i zlCu$V$N3L#dk@*0r#{!w%!Y;qGo$p+yE{eNf-0))ZE+S{snNrWpV3&&3hLzwOH8Fu zAKR5Or#8m5G5SrOWEL!3sAWS6Vfw9^H}0*=AmW+n`AI|}-f9Zz!=ZV38YLkqri!L> zzCb@6Hdznx5Sf}O6riRuG7Y%$v!Oqs=FElo%7Os9U?3|8sKPs9{+Ws*prm(G7IUL< z;Hu~73w^h&aFs%@AIB{HVH6fX)qjtI{J_+cTlZ7Wa!!+)yYOL$gRKW#@Pcv8QSUP7 zVg@y+FsNa2#sAtc*#g(1B;%=?Ebg51DHk?QadnF0y$3Ve-iHU; zJ|z5z@GRlSgr5+8N_dWNi|{<*1;Wn=KPUWxutT^__$A?2u&C`4bhLE|zb3p)c!lsP TyeZxAExa3z;P)Q=G5GKoj{823 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableRowElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableRowElement.class new file mode 100644 index 0000000000000000000000000000000000000000..37e60fcf2ced711f0c744eb41581d429509e9388 GIT binary patch literal 675 zcwTiM^P*e~>@dHt#Nx9glM^B0vNgyObxR)}Nl4WbURrqZl`~m(bYpu7fdz{C@`&jY7T}Ln|l499jH}GBIgc)*?Q8NA})cOo`GI?~!*YkQiBr)X&5f` zmrWWuBMG$br_0|mb)w*ep|vV_wEBy0@*Z=+Q=WU5$(yFr?C3pq`I9d=LwmysuCv9^ zz8SXYRp^X0x`~1+vfHT8a;!tCZrvZ3qKGO%f}UsQj7-KfsT&?3uLU z!XbJ6x?jKPOy~XM^$h?H!AwESfU@WJtmk9f>UfUz5IEwUQXg5}2Y%n}ouE+u z6&B6^x=Pc46k1k2-@)n8YW(@CPBWl)7CTODn@f4che+iws{GD8Aq|)?D>dZui^t8H zIxwTYp)Xlm@QxO>FeiWJ;%4h>vK!{`$RmnW^BrfMTUQLDwh>eMJMURW`Y2NR25Z;c z4u6UCBc}9?;Ul`HF`{cq%kMDW7NM^v#9&Bg;13n4-O%`$QDM*9b|0GOl%s^J-H05U~pM$){S(wu}4+V`ySkSmg`V#4vsJ=|~ j73yE5{x#z3#5bsalW>cCwqZx(E@4?A&cBE680>!nq|Bz0 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLTitleElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLTitleElement.class new file mode 100644 index 0000000000000000000000000000000000000000..19898ab8645a7f7a299368b464f8fc05acbca5f8 GIT binary patch literal 251 zcwRg8Z`VEs1_nb0UUmj1Mh2z)qICUo<7EAm{9OHvlH434eUA`dpODOwoK)AG)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj127QsU;z)6+o7VhNcg~h~Sc< z%)E4Kpn_tU0#OZ2dCf3J2Cm@z(xT*4x6GVWpdxg)>4EeB9m2@K48*KJk1+uq%g(^T T0CF@Z0~b()k%1c|&cFizH|0R! literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLUListElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLUListElement.class new file mode 100644 index 0000000000000000000000000000000000000000..4b02b5f473837edbfdb0057b5bbe650ea0e99e7a GIT binary patch literal 306 zcwRg8Z`VEs1_nb0L3RcvMh2z)qICUo<7EAm{9OHvlH434eUA`dpHQF7;u6=K)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj0{}qsU^<&xdn;IKn}BpW)x7U z7)gjlBT6%jk%1kkETpm^m61V2L(>OgQ*cR9W?s5AP(d+Ffv5(iJje*H;QZ2}fImu{ zU8xO{!!pdwn|(9yeSLp?0ysz0!3x7!oJ`!;i@<%3XKs|beSb8Z%_BLJN(&vv%Hs}7 z3_DZtBHT!*iR(X2WuU1v^815F{xI%c-}+)zQv_+p3p?{lZdmd*=Ag{tm(&`23 zcZ?Wik``7m9AOP*${d@mQ@)YQD=3j!o7kdCl`18QHDe#@Fg7-@YvUgFjWIZ|Q-?or C`G(2> literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSException.class b/libjava/classpath/lib/org/w3c/dom/ls/LSException.class new file mode 100644 index 0000000000000000000000000000000000000000..7f64d601cb8bcc2d8655e5bbe3273f85fad90469 GIT binary patch literal 521 zcwTi-%Syvg5IwgKW8byfs%^n`SBn_LWko0@LLrDI(uEtjO+&nrhvcFDmJ1PF_yK;D zI5&zG)Xm&8GiT13J8$nVuK*6vRght52ce_hA6n`n@KiTabyIt=?AurbzJeU}Z}=To zUG6)ok@&Ij?C(B9&I%Sb12Y*4XJf+moG!n43f~YPlQygFOBX? zGWxWZ{A!k7+KtdQ6nYs}31?8CyttH?2r>F+g<@6SjcRhfG~9beZPY>5z7i4=4X6ihWw)+NmR-{pm9OT(58#I~PD?j{ zu!o)eI{*21rt|ar^$h^$aGHkS#b4xZ&p^d)Y+D=c}{ae z*1-Hm&%@nht@TM8t&COqL(DK~rS3n3rA0zQ-)uwE@ITY4?h0AP)M)PfRQ;%|v{d(L zrs#d`0557!mw{mq_3F_)570$DR}Vdxhv>WXapW?FJeQC*X1OnV2D4W-g_ At^fc4 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSParser.class b/libjava/classpath/lib/org/w3c/dom/ls/LSParser.class new file mode 100644 index 0000000000000000000000000000000000000000..c12315558c41c613c61cc88b9db423dd259415c0 GIT binary patch literal 924 zcwU85O>fgc5PeH%+=QkCT4+-~`U%(^Fo{?8sh2``0+| z1Nc#hSvRCkLdC%vy?HY`Z{Lo8{r>S2z#C`^ZZT}dNuYm!>+5InSRbXj?e@JS<%xpZ z4E1yGo2QSwDA0SS=iCWZLAIecNc6vldB{hRrE$bzRdL43EuD&oL!eV%V7HjLyJxBt`1h=TDW{6^6Bd zi*`IF8DGMHVNccU;uYJy4_8!{cp{9WCPRffI^jt0gkgW7yx_=HiL6hr>kriblxrsp zt2Dq!FC(9!q-viT6iOUt=_SL;L>4o={>M31G|5DBL4NFKV;%{TQ8h1oK9P4w6+C6w zUbyCrR#)-(SBJZkhoFzUdH_4^iUvpncjb++6y Pxo3DT{}8;$=c<1I`?S>q literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSParserFilter.class b/libjava/classpath/lib/org/w3c/dom/ls/LSParserFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..28edfdcdd3f9d0f6c2dd53a91cec66a77c021aa1 GIT binary patch literal 418 zcwSYI%}&EG5QNtR8fY6Rl=5@n-d?aOj-0B$+Tk^o0!QY)oOW8}E)yK&$Fcqqi$ zibQ&`HJ`?wo&EX!`UZe8T)MDF;6|#PZtpTWmn&LSG)y9{Dxszyg%-+%eFD8D-*8&+ zGN(`POOa^;-ZThP7Qan=pG7GFk|6VCS!rJC7hbG|gBj%C7_$fFrv_qXr-sR65EJt(e`#AC+c>ScwvIuZCfB-kRT!Fuu*ROnmB@oC^YjU7vy0&Ttgq(?qUSCa^L-?eA{j)|78yL$DLUH5@<-m20ZNA?l-sZlmrrbQiVP(8u6l WsT1hga;I=+?>?NHZNb2LF8%<3pH*l8 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSProgressEvent.class b/libjava/classpath/lib/org/w3c/dom/ls/LSProgressEvent.class new file mode 100644 index 0000000000000000000000000000000000000000..5986f976f59d9993aa0cda21405fc6d098359721 GIT binary patch literal 257 zcwS|X&kBM-5XQgNN>hst9il^Ly|hHf&ILk{U@u^{h+=NIYS5!~=mC1DX!I0ynE&%J zzj?hMPXH^74QLDtStk6pj`>+$c&_+93`&`lLaA*dipoHbVUk5n#Pg^~_~Dd^n7RXo z*|$=(%Zhgz1~U$&TEx!4 z!pI7+OMF`r=}&PsB`jJbhpoT-v5%zjLV}%}}12ucq#p zuBDHjr+lm!iWXOWF}oD*i)}F+w>yKVOMi5`yz-@~Y~l783ZxkF#lUtsLyh=rQ$tDH zwE~V8;ndqnO6QRwPe#|aqqt-^iRH$+U((1p@2xeb?SDvupv*$riW=$u6%56M_mUPP zU(J2h>pamIS8roJ59anX>@hSGZrW<%=85p(@d^vg;8DtSW5DmEy^C*P4jbex;?1Z?BGU+O$ bN)uM8QbRpf*~h`El0^y)RO!^DQwpsgWI(nt literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSSerializerFilter.class b/libjava/classpath/lib/org/w3c/dom/ls/LSSerializerFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..b3aeaecdbece741fa328d78e47701a10395fe0d7 GIT binary patch literal 202 zcwS|WI|>3Z7=-8d6VttqVW(y49pB5zzDRCm4OY!Vqgc7Obi?VQ#h1 zfyO2MK`kF+tNrbgIg&ul?zGN27oGNn{vbeX0@ZyUgpvlbOZ^ecp*|3(TxTAh9w#b3N)P)N;cjA{gZ7u} zWpqAKZTEU1!%=dEc}$>=_%Lu|ttw+ONmJoI_kB7HnX9YL39M*181SGKI4qQ0!~{xV z)QP~dk#>D-c8jo1VDqMbA2VGDwHI_h(cEJ_E*OEO3}v&6dof9D^`xF=tS~8?8;8+i z$%zIdkT=d%c{yZ0ZnTmkurLkOcr1`1Hg@=6NCn&Dqrj!&*H`XozHZnjH%+u_;wh=Q zs3v1d_$#qvon1*m9XaJ2iM>AH&S-#3M}qd%8~45H_&kV7mAxQjBC_2GM?xrfv2~rV zy%1PU=+8LCpCY*}g%|Y4r*3)&#uPIOE|b*xj^Zc{B6o&6|CFdwv11kIgjZ80vm7*6t2mZRAh2fXlHLYNiUEd)K>(gfG)b zGE}emE!QU0(9D^P#PqArkaYc#$G|Lx^^;cHIq6*(?Us4j?{$rV<#bGwA%E)2Fyb<@ z`DErL$N^(m>l$`T@3tMI*X}rj%YH|ZRg;{}9|&y@ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/stylesheets/DocumentStyle.class b/libjava/classpath/lib/org/w3c/dom/stylesheets/DocumentStyle.class new file mode 100644 index 0000000000000000000000000000000000000000..6d13a34923095ab90857da66d50083c675fcb68e GIT binary patch literal 201 zcwRg8Z`VEs1_nb0PId++Mh4aVqICUo<7EAm{9OIwlFFRa;*8YPl45R%&tyBLiQ0DnvmrSQ8_ImWHMeE)x+7eKLzntQi@& ug7Zs@l2hF>b5a=@gitKh1KGvK$iT?J%m4z6K>Jx4*gz}>b|A^bzySa~H#q$O literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/stylesheets/LinkStyle.class b/libjava/classpath/lib/org/w3c/dom/stylesheets/LinkStyle.class new file mode 100644 index 0000000000000000000000000000000000000000..00082f811b58604dd817bb1b40330f10a748f9da GIT binary patch literal 183 zcwRg8Z`VEs1_nb0PId++Mh3b=PBIbbuu>Z}Fq??f4YJD{iK7bD;P6Ad- zU07!4pO2Y;=kx3R1Hd�eS+LRiotVO)iUSDXn`e$7JkN>w&P)Uwj7c0i1tgguvKWR9tR!vS1x+HVIMx)Wdt~2z0a!0F=QpeQCAt@xQoLb;$&Old&=(~&b|Tub6ooX literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/stylesheets/StyleSheet.class b/libjava/classpath/lib/org/w3c/dom/stylesheets/StyleSheet.class new file mode 100644 index 0000000000000000000000000000000000000000..f3a6907d6b5c4a66b4c387d731f7cc84dffca4ec GIT binary patch literal 436 zcwT)_K~BRk5FD4%gtpKEv-|b^@d@A(CjnXvrMG?~^~$wb7o=Z^jOK~siQ@s<48w(33SNjZ z=hOLuQo|7BWFFUV#4w8DN%Nit=+LzJqSgmX|ge#{}TT_!*~<-R?#y<=z>dA(1zYoCI!RUKSo|Mk=prm zlj>cibR%8=p!wp$ZJ@(oCxttq-P$fXaN7$IdfY?TV-J0g`#A78sCB~{4{>B2?8x?R GVe|t$BW`Q} literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/stylesheets/StyleSheetList.class b/libjava/classpath/lib/org/w3c/dom/stylesheets/StyleSheetList.class new file mode 100644 index 0000000000000000000000000000000000000000..f1ce31002a59478a0ece968271644ba3295a8db8 GIT binary patch literal 216 zcwU8$!3u&v7=-6H)3Qs@JCt5pqGR_!5IXn-Wbew?5bNOR5eI(I(J-K!d$wZ z2WcC^B+YU{*jnxhn>5dg|Jw&bQtIni^RZP-SpD8^{bNLMi0 Fd;y_;IHCXm literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/traversal/DocumentTraversal.class b/libjava/classpath/lib/org/w3c/dom/traversal/DocumentTraversal.class new file mode 100644 index 0000000000000000000000000000000000000000..fb9b6381070b590ea78f4c4baac30e8ceec0af84 GIT binary patch literal 444 zcwVhg%W6U~6r5wNx7sSjh4c@q8-sLtx3(bIx~L#XH!&VWz21}x5+O%;v~Hp{PezUHLV2gx?3OxFZEIEwPJRD?M935FXL_ww zqSJ}$jb>~-p=um!&u@0j9nVgC>j)q9Zq_!Cai{zLPl0@yCZdgpjWat3_n1(6-WvY& zQ=2X$6bTPmRlE0kq$TlhyuM=|=w!|kZg}Bvf8HV5yInaGG)$F#Le#6@<-rf|qttFB zI>PC_p6R7}K0e>x0bmEV^3cVg8pSu-%Wj}GqkAoh{pT=#^jn%0HN)C%D+%K~bTcU3 z`Om)A^4m9>eSH@O34_6!VM^h6I_IJ;888D|nGVJf5BTfXDB(ZFN zCf!q`PAbQs;2zr-o^G0$%gBA<$6z3J!W3u1!Wu(AN2GL&gN76g`cfgqWttZoEvJGX z>QeVyEN9pjMG6eYe^Ob}kXP7CO*q2hf`TP%M+uUuGMGtK-LbiFUBf!^49k^H<2U7g zr#o(+QFr8CaoW@!+PslToF?n4BRzRlr@~zrnfM>6Ir>p{uNykaEL-YX)dI?*9|Yk; zLL0)VHcWMaB=-!gI*;3NIj66<$PMQg|78 TMd4Lo_-58%on9(zq;B&YeRG9j literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/traversal/NodeIterator.class b/libjava/classpath/lib/org/w3c/dom/traversal/NodeIterator.class new file mode 100644 index 0000000000000000000000000000000000000000..fa0265be9f7026bbaddfcb3805a2d5c93c25a714 GIT binary patch literal 427 zcwS{tO;5r=5PgH#0)m2H(W~(Q7aQZzt2H4}Nx*30ZEZ&=sa>*NO8sjd`~m(bK^vZ&b;?_@;<-bKLDKL&_#`KqRrG>T?AgJUp;G7#wJy|#$|lBe7?9DD=3v}QN} literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/traversal/TreeWalker.class b/libjava/classpath/lib/org/w3c/dom/traversal/TreeWalker.class new file mode 100644 index 0000000000000000000000000000000000000000..08bdbea513590e777d651b740c2a2fe7bc7d7f0b GIT binary patch literal 574 zcwS{u%T59@6um`cc!LTG>cWMKVdKQObcvXls3brnaaU%_P#mX|PI>riF8lyL%6L0e zAUKPj_MS(3=YIcuegVKWoLi70a3Q4cEN)!K6Yq|abk1Z<17{!^8`9v7Nej{hs#7|r zPC!H7>5it%RRk=bsh$wHtJ$r`?UZNXv0DNq6bvU+4Mcw;76kU})&qeYR_}SBm?Uty zW87S?BUUO5YNDmHjA-a}LdDfbkBymRq08bV^p!vv744bCqS8(*#5;w${r`!r7Xtat z(q)n2B8)9KB+%Ga-F2VVG)g17$;*$qj8%KW0}p!&=z3p?B%5O@X#kv2-#At zPsKlem6O$^iR_D+bamT!sB8vsrT=|~05%KyE8#r$Ap?3Y7Gx95K|a9(6ca2Nz6=%g gRne73JiyA4VQL2J29FJ%7;G49YDDiTt|>VC1!nk*M*si- literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/views/AbstractView.class b/libjava/classpath/lib/org/w3c/dom/views/AbstractView.class new file mode 100644 index 0000000000000000000000000000000000000000..fc2f1fe053c1979eca1c5fad1d38d06ccd6e9074 GIT binary patch literal 182 zcwRg8Z`VEs1_nb0PId++Mh3b3qICUo<7EAm{9OIA%+&H?eaEEYlA^@qk}x2Toq>gs zK_Dx!EKxrvF)v-;KPf9UxrC8{J3Y0;B|o_|H#HB)Q_|4%!88XZ4>HG^k%22XzqBYh o)h#n8m61UZ*%CdF`D}~~j10^SAixN;la+xD#A09vl1vO70K!f%zyJUM literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/views/DocumentView.class b/libjava/classpath/lib/org/w3c/dom/views/DocumentView.class new file mode 100644 index 0000000000000000000000000000000000000000..013d17161870954b83efac7dccb0cc98bfcfff49 GIT binary patch literal 185 zcwRg8Z`VEs1_nb0PId++Mh3b3qICUo<7EAm{9OIA%+&H?eV6>?(%jU%k}x2Toq>gs zK_Dx!EKxrvF)v-;KPf9UxrC8{FFm!yB{eOvGzYAVkwHmA(+ATi$E4ztqQqpd8f!)d vuHgLAqU2P!%$!t420>(d^gvdyF)}bRFf)JvBhXq_1~w3jfgMOPF>n9?hx9S; literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/xpath/XPathEvaluator.class b/libjava/classpath/lib/org/w3c/dom/xpath/XPathEvaluator.class new file mode 100644 index 0000000000000000000000000000000000000000..4999764b45b1086e12b4a4cf6b943362a08420f2 GIT binary patch literal 569 zcwUWByH3ME5S&ZE4&fD`p`;8ACqzNv7E_r7;Rewi&dNA4KI?oj{x%9efR93~LBui0 zz!fLW?r3&)_Vw-g1;8oxUGxNww29@@StMurQC7LK5Ayb!f4@}eLRoEGtO<I+JEx0$AMm>u1O4Apfu&p>E z43!&x%O!(bGpWC{JYnjeb%uy$Pjv>SG88-A;hEAoAIqa&Usl!5Wp^z1`wW@3ZMhz| zydgK1dYA@iGOP`*d$M2m`7uN6L|DQ*C7HUad^xI~Bdl3#e@IqsvPvS1jWp8OWGK}C zYD|D3pGFihhO8niy}L9gx-;Mtg9gnhw#JPicZAPBk`Zq%T!ua6zk9S8;->Dpd=^Ok za%V`Y_R`Vx3*qbLfBru7`>{*&`8$W{r6CDzBTg@!gm4H6;>mA3MTpVD8H($axuTr^ xKh-#RM7B|VK<++h+@iQ1l!_!=B9Sr*#A@&Dlq~@PiU#sNDwA1=a3xTvz5%ivbbJ5+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/xpath/XPathExpression.class b/libjava/classpath/lib/org/w3c/dom/xpath/XPathExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..097ab47a189613563d7e753fbc45ca302a15d6de GIT binary patch literal 301 zcwTi+yAAm7wcNk`*GRH8-Ym1wlrx?wlV-Ry(?HiZxHQDP(_LQFBqnK^Uj zoZJ0!1<*rPz#_CvxRd9;Be&)t(?G?0xn6P~r$MNr$TdfSETQJ9lajtV?&M@iO~3DjTW=_mIYTP m2^~FgeRfv=3e$Z$unB|=o<*E32b-~AWWz!pMMh;t7Ag-A)Kg3V literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/w3c/dom/xpath/XPathNSResolver.class b/libjava/classpath/lib/org/w3c/dom/xpath/XPathNSResolver.class new file mode 100644 index 0000000000000000000000000000000000000000..cd69c3824f5ae25178ed9a784a6c81d6294f6f03 GIT binary patch literal 199 zcwRg8Z`VEs1_nb0PId++Mh32ClLBdXNm+zvjY$&G*mY3qTJ|4;4b!mYLeUq-t&pwO?zuP?K14s0-e#b;=$t2(6X=)GF5| zQ_*b2sq=6p>gjH1=S=8KVt+K8hW-UeJ0B{8FG`K@xKZ-s5+xxygh(`Ks%*0SX>*CYq zlW8C{xJ#gN$*!0lu+Y=3i%Z@Y1PV=h-gD2p1_9y_Sos)*6Tw39g#}Zd!+0RDOixc* zhMm}?L{M^E+oYdT3Hz5@menzuG}Uqh_D-o~w+-89_o&r2dZugGP1jmP;h}c_?^wE- z;?QQ-`E0qVC!bBZ;m`3=96^4k2!%{y@BIeMU_rR z7d%epmB?)ZC1cj-W8vd0HF!**_K&McZSy2Y#D3^qCvDanoyB#{OCJcVp|2H10cYW& zrW2{WqbHNz_w_ybe$n29KM1QYnex=ab#cruJchlidRCix~_ zxSu#V3CzlO>aILIhZ;aNs`4lgoF9X&Fy0WUL^SE)CT-D~g~wL{QV7yjNR HXFK`>=>XFg literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/AttributeList.class b/libjava/classpath/lib/org/xml/sax/AttributeList.class new file mode 100644 index 0000000000000000000000000000000000000000..d91b8884d6006b6111ad51efc45f5fec8ab4d1cc GIT binary patch literal 300 zcwTLf%?`m(5QWe6)A}b83ojtGabs;I5s9Q>LF})ZT$L)RTjA9#Jb;H1Q-lb!m@_l^ z&Sd6#J6`~FQMHj0Xl^4dkDEa5)lv41iTp)u$o2QeMn<5vRtF^m6>2$ItjRM1c}>Qp zP@9!N+G&pjY@UqOh6EbUsO^3%Q(hP9-jkS}c1+~BnyVn@vgQ1uf8B-YHjX?R`T@J@ xUq^NloQVPLBJz}>r6s_3Aqk5g$ihPMh>hGs^DiyD`{Ju-MGB=yE~AnxxC8LeMX>+? literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/Attributes.class b/libjava/classpath/lib/org/xml/sax/Attributes.class new file mode 100644 index 0000000000000000000000000000000000000000..4459cfece7ee9da485d0f5913ca21c020b0ed338 GIT binary patch literal 484 zcwUWA%TB{E5F8gs+7f7ZenLquSlp0$>IErMRRjg@ZfcoUZh}$=g)58$IvH)W+B zngc#~X2-j;*8Kc_uL0cQ(nm|+Ixmc@mR7D*C5O%x^J(ey%EzHVxKN);T9q03I9=$} z33QBhBb^!dE^rXViGWAS>obw7D2YeAi3wR{W*`vMBYCRqSS__co64s@>JxqW`e5-* z*^+6J&2%Mj6Ycx$EAe)Bvwr_Sho*1$n=G3eyOX>uQvEQu^!wf}!rQvn6QH0_pMVlQ mf`>X;AMGu67`u$ei~-{bP8oar9x|SBU&u%`Z91pBg^LY-espI5 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ContentHandler.class b/libjava/classpath/lib/org/xml/sax/ContentHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..79234c195c589ca3a299675843bcb13ac84bf7f5 GIT binary patch literal 799 zcwU{7%}&BV6ou~~QsqYxL=oMK8ylB~6+w(77&Rnn;%XSiS}Zfo%+%CZbKwK{P{!M0 z_-R=fn>3w#Gv}OpJNN7R;}ZbR;K+gufreC$9Zo!3)6ninVYo0?RE#{XEXWclkLeq= zJt`dgW;o`|5U6NwE+h*kc(gAWHBu3%H~WiDzr1yFPoSg?RWk*FwPr-~-H>tLxKd~f z3TUt>AG9B5+XM<+jOOx6YUw+{eD|k}6=boqwm~=y4A*f)9;=xJoc}W*HexSSQD(T(1gz#$r`L;c)pdkabm;Mi z7Z*c)$~ZRcE6KRlDDDYuRKTV`x};xS-{+&QFs^w=(}4^WW(y49pB5zyu5zRt7d8pB>0!0n!{m5iSO9WDy|d0jXu+1ptVRWu^cC literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/DocumentHandler.class b/libjava/classpath/lib/org/xml/sax/DocumentHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..9db19d0ede527e8552ff722501311a4f25b3f0df GIT binary patch literal 617 zcwTLh%}xR_6oqdQ8RSQiAI10pjvGhUtcYMFnZyN&nz$Y6nnBm~x2=A8@A{cR-B_+O1%m@OrIq1QU~EGrjRRFO*p`p` zuh}z$D$40bUR&7>BV1o^U4IjCY;`Du-oGe)OK_4{^h0A;fhy#e={tM$t0FPunhT5C zFmT+r`_U-HtuT;E^GSp+v(Tc6xj-_BwGwCyiAT~{orrbvt9{}2e>YZ%7WfcGWY^A3 z;wF_)%>ZMK)L5LB7*Hc2U1gfmA(SAUmIGztM?{OXSBTVhNF9!Ij$20l{WwY literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/EntityResolver.class b/libjava/classpath/lib/org/xml/sax/EntityResolver.class new file mode 100644 index 0000000000000000000000000000000000000000..1a9f63264aa0b4eb8636189e2b2ec3e79c76ac4b GIT binary patch literal 291 zcwS|Xy$ZrW5QJx==KM#n5uZRC4{HmtP!I&cG`2Au;X=HV%PH~IEPMbTN<0ntgWJu{ zx3kRcez^h|qs`zE`r5=i-={nab3RvA+Ve(aIz0))P$qPe@D%biR54%g5)oNK%M?IC z6Q+aJ2MVl_DxUmrhO6&SOLaKfKp#ycCWQJtkHo=Btulrhq4$jjv+dhvXb`%uY^nKj p{We@ik+zVjaL8|y(euJ55K4FsxndRgPBW)`c&MW8RMROBtp|upQGoye literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ErrorHandler.class b/libjava/classpath/lib/org/xml/sax/ErrorHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..5a1c65553535787294ea77d757a4f08c53640ab5 GIT binary patch literal 282 zcwRg8Z`VEs1_nb0K6VBsMh1!eqICU=+#LPl#0q`aqN4mFkHox`oYW$A1{OvJfvm)` zME#t^ymWp4q^#8B5=I90^2DON%)E3)1|rL6U&q-v;@&APLs_LmfFmwW+w>cTlfy% z^`zxN?^gK`zJ({tp4nwd!bXCJ%=S$8eBIOCGx_o7>o)+n18D;y1o|9NNFEgJq)QKy zPbtsaOsrCu84xAVxkvYD(x$wSe4g85rZk|1z+mN;G?$h1eOxn<4kNwVe!KJ z$(4yJVuqK>a>FSLQxV(J2PP{?%i*p8gEhz8Sa}nu3AC2VIomQbc@_T&C#ZK1UCD|{ zALEXsYFCPxHi5Z@!VC#qWs}pQ%2=6~sBl@{JG#ex_MhBvPeIV@o=2C-qef8Wk`9)- zKT(xSe_d}k>?5O|P#dhCE2#*W1lk$TAJ1Z1o3@!Zy&ZP8O74op#avmktmR4_K^r|< z!ZsTEhcTL>>%dh{h%3!Acd4MJWCD3cVtXx{7rn9OyNo#Cz&Wz%b_@rFvM+_s>v0z+@nJe3p!dP@aIC4tfE zqF~p)P^}WQuHH^Ch~ZQ0@I*}AY&`l7`modf#Jep|EOkpeD{kbp3KaDzRuT-W%}oW4?p?nj7Nay>`&+BaR*1 zfN`Dw1lFTArBm7>1ook#DkP}N#90tuLJ^a=p%$@(zosz6&x*Q+=jCv&wpRP0a(SY40;%*nr_uRs@Kex zbz~MBhi$LaY`ZqkAjOb9uwGbZ&1zK5hvfrqdkp=D?Q+erixr04Zs)kS~`i|3Z zyiJB)BfrOx+G^cqppj|I>_lZ@mae>*it=gXDI$|FNQ{KMQVwl-Y zD4%YcFizK(-_yV_tz!n041+E1mEv-z4P}Wz%2^$Am}MBElzUxm88hS(1O0g&3z#Q( z(r?La5%)d{$1p(Ri#qy{rg*gzXBao~rwb5rLq{f(NBAPXtfLDO;u4%uFF0ivlfhD#}UKIb`54lNU1mU0O%F>p+}TXe?6im zf2A7yRSWlYGp)mvG30+oXtz!)6ZwTN$bRr;Ir?g}0{4+Z5o7eH2O^APf>vQL85-=6 zQfM_{P+0zqsgBFAkM@*Yo)OA(-)S;Xhfd;8;4c{IiKWt zPWF6Bp06nHb%N)h-vx#XaqXL-XS%Tb35#;~-cY~Zc6p^^ue3iZ;dKd@LoYKP#78W? zkFC;v@SSo9Gis0}8RR?V{73+anx9vKEXg3hlpu5Q*_u8u6?5gGNYGlc6{8^&3p#yWa$gfv zW3DICXCWu(4JOWz=pdx&@aFQFpf+0jJko&_v4<)_KYRS__GKdzw9RoNp#%N?$YU9< zxFR?oOtL^;b{8}ZHGCT0GcgY>agrzgCFkx~xAc=YF7yVu*h2EUiJr+s`8FR9J%X+aE|7FQ&7|=cs7rjNRUj5=pecM8*wpLkg08I7 zNJAbe?laBjWded7*v~V|E1_(9&vZpoD`rwd9d@m|Xt=tErmHQqUG1RzOO#PS1^aGx Qke`|Vq3H_fr$ z;DUxc3IfYr+c94rj}A=lwQ(>s1xj6aU<~_)XUlzbnDYBlSA+27)!M6#lsds%82wPP>&G&G}Mk?23jeE(>T> zCn8=yqfg#(!FR)QS$$nYO;)Qt_t+bl9a|=~noMO|Qc!2!S-!eJMuyIn!Zja)W0AXE zo(s-u>x7^94(%&<87y&J3My|Shiz(gEOV!YYOG*2pfcNt^n_Iz&Wo+~3D#0kcWL1s zi|+@hi=jM1$yJ4CB7m+(&`tym?X^>wPigNNwa*hwHD;>V;H5+6rHJ{8n(WNztrX}U zjlN;=egLh7@;Re&CGj#rK4pa853&ZTw7l7E|3Rts4cc$E}kll_* ze@EIVagA!!G0%Rd(Oku~sE;1(`B!ph$U<=VG4WXW__1oS$xc*UKI5%ErRVyL6^8MN R*?lJOOM+RBnOlMS#($}rw-NvV literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/SAXNotRecognizedException.class b/libjava/classpath/lib/org/xml/sax/SAXNotRecognizedException.class new file mode 100644 index 0000000000000000000000000000000000000000..26692ef3bd747d05ea8cecbe4299105f0e1e164d GIT binary patch literal 477 zcwUW9!AiqG5PjRGjmFw)wc<(eP;Dz1i^obqL{FgyBf;x7UE)fTElDcDzw%V@;0O3o z;%pi`R0Q`hZ)WGsdo!P3?;ik$=$NQ5bX5}Ac@)|y&u#bmaiX$&;j18)uVQwa`(mC+ z6`L>^4%etZU55IVjAb@vsP_6EgK?u~!a^0B4b)I)XgM+#lSMQY$pfE;f}!mwpNAe# zq^`?PBYTo5!>RMHrA7>$p7YFKxE=C1u-zFY`~W{n zoK1s=ir^mR&Fs8+Z|3vs{R6-d9UB#fGo?c}Uqo)obJxFpnyAcQCW+FSnBV6!kz`WE zHY|qY4dzdmp?)J{nT;8$y?(%8-Kn{7P{nowHPjheo{Yt0xtI$5$fuEDXnShLqkwB^ z>hjado@L6=_5QQdh@sQ-Uid3_BOZsYpJ^F~qkdqF_l$9q!Cr_okYgVaXvVF7*^MhjM@EdvvV}Jkv literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/SAXParseException.class b/libjava/classpath/lib/org/xml/sax/SAXParseException.class new file mode 100644 index 0000000000000000000000000000000000000000..2e9400ca5bf7ad1830c19474b41c6122885d4827 GIT binary patch literal 1971 zcwVJc+fEZv6kVsCQfLQT3N4^=_0~=cg^GxjO9;`}q%kCDA;y=XOzN0kNH1F6eDmEG z^$U!Oi6%A#AAB^?FYpii3*$a#hM~4oL-ggGJ!kK=_S$>TIp2SM{sLeYD{eR#MoQ&e zyk5x1D{4KyxwgHbmMhxLdRE)3>ZPI^62nkSh~;JI-mC58^=xXFA&`EgK33y-wU~=< zR?B)Zmn45>zf#o--0#WjMeRp=MmdDS}$vBS@hF&^PH`VG4M^fBBCS#oYedJ$nD%}HyNf{S#k;>scV2IeYpzS1; z;vMjv*SsaVGW^lS=FeeGIe?iuJ5mM;Q(=@fu!*F^7Z9kAm_Nt)r9(SR|q(kuM>H zWlYi@#wup8hRfs~HK^z!rTWd wsX=lilE_AYnS}8N+Xg(}3jSsbrdQntyl~J0{$UFqw*@b@f`8hAmqgU^Z@@xgr2qf` literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/XMLFilter.class b/libjava/classpath/lib/org/xml/sax/XMLFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..91ce7d99acbb3874bd3fe39527b5c76d36f518be GIT binary patch literal 237 zcwRg8Z`VEs1_nb0UUmj1Mh4ORqICU=+#LPl#0vcgUmv&3oRZWcb_Nzk27#=^vPAuy z#JqHU|D>$cAKYnrAXfq1!N|Z2#H>KCFah1l&cML{ax*6b7f^(efg2>w Gzyko>EIa!E literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/XMLReader.class b/libjava/classpath/lib/org/xml/sax/XMLReader.class new file mode 100644 index 0000000000000000000000000000000000000000..b4c86d6078083e71789c23fdd67131c619f7027c GIT binary patch literal 1101 zcwT*z*-q;)5QcvjXrR!R{jl##3lb66T%iL9qyk6n5klOB){26H9XT#4JQ^1~01t(5 zTq!tCMQ%nj^MA8A_UG682Y_Q7Iw%m#apAkY=g^J4o_l}YXi~33g@a*&$tUl{b3>2$ z?(O3fZA*fZPvr&mWLHpy)*3&GmJ|W=PwEd!blz*zNCuq64#o&}%@(cG`x`Esw9S1M zywOgobudn_lb5!-QN)Ebl&V8)j4?l8jEDLi!MGaspWqP{@|9q3(6kME#S?|aCbmBS z%Tr0aDaD;L8OYZrjd}P&1;Ki)VQ!R7_bES5t<~zkVFYE>>g@m7rN=s90xW0S{G@b? zvY%BiS>+9Re~Z7INy=mjSX*S%=@vF+Z((5s)#Sj0;37pZG1x=q!$i52^(OoU)0 z@8 z9VOx-0l^TGucF@A2#U&glvhLnqbRA^1j@Ns1=U<^5>vU@G-i;z-C4|OJC8rwE?`mH jB`j;Zf>mwTu&(U}HnrWtwo!8jdpcIj#*|lAUI7Q+9P=kY literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ext/Attributes2.class b/libjava/classpath/lib/org/xml/sax/ext/Attributes2.class new file mode 100644 index 0000000000000000000000000000000000000000..d531eda55f8b0a093d73d3ff51f44469ae946510 GIT binary patch literal 297 zcwRg8Z`VEs1_nb0K6VBsMh5BpqICU=+#LPl#0ve?iV}Utl9Hm#q|%bqVk3427Dfhv zti-ZJ{hY+SbbbG%tkmQZb_O;^1~Fu92rY~ZT$#l#smVEsMX4!_3@jR+no*1lq8dI3 zLxO>7^U|$B;_6t$v8&|HEDkP6P0mcq1R2W}oL^d$oa&aDlL~Ynl7sa?nt`rkWMBqj mR-iZ8fIeVn;9y_?)0|M63rurE#kt{ppgd3?50GSH-~|BE!A6k) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ext/Attributes2Impl.class b/libjava/classpath/lib/org/xml/sax/ext/Attributes2Impl.class new file mode 100644 index 0000000000000000000000000000000000000000..5ce82fc15846902a27ff56a1c1b511abfc4f3848 GIT binary patch literal 3721 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 ODI%=2x14P;bLTG@@0Lvf literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ext/EntityResolver2.class b/libjava/classpath/lib/org/xml/sax/ext/EntityResolver2.class new file mode 100644 index 0000000000000000000000000000000000000000..5b5501339ec261b5739a20d94e10d3926a1528ed GIT binary patch literal 473 zcwUWBu}T9$5PfrMR-@5GEyTuF8y9U;1d9^_fq>W8ZjRyDuR}Tg&*KYi5m~% zML|*w%zHEQc)a=ee0v9Qhf{%saOHd<>lY(SRZFgeOl{EN^@&SomhA5Zb_xBtS}JLj zE#!1I=R62>2$${C%`?KF;E>jVy;UZwW+ey0=z8)alm)MCG5pKiOxn6*yQo6uDxdR^ z&`s-{7ePB)3LFwH+N;^a^Li}MBbYc?Hq5`yo95gkO-L4q!hB6p0FO)jGTY9E6y(l?3u literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ext/LexicalHandler.class b/libjava/classpath/lib/org/xml/sax/ext/LexicalHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..a51f26074acc0b30c15fad3736f6243e4536c99b GIT binary patch literal 474 zcwUW=O-sW-5Qg8aHQT0sRBOSL=Xi1PD4s%7u~6`kB7&ziT|!E-k+n-ETzquDDY=K`KQ8X$fG>Vl%`K{?{PGl)V{*} z#YE~RNfpE3_ew6RNe%-!L3KE7XcrFUoU%5(9U?AzTVxOWTjZcY4jZa|gB;;_lh7Sd H+``EkQ@Ldi literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ext/Locator2.class b/libjava/classpath/lib/org/xml/sax/ext/Locator2.class new file mode 100644 index 0000000000000000000000000000000000000000..4e64eb1482bcc920af6aed3bc4465fa74743b0ba GIT binary patch literal 209 zcwRg8Z`VEs1_nb09(D#MMh1!eqICU=+#LPl#0ve?iV}UF{N%)v{30WE1{OvJfvm)` zME#t^ymWp4q^#8B5_SeQMh0PIJy7+G47};7B@wB}JKe z>DG)4+(2cndCB=HKrSN#S8#r5QF5wVW=<;51eo1=AbmiK7#Wy>m=)+;CZJ>388{d~ Pj^YH-KyfaRI0H8T(k?US literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/ext/Locator2Impl.class b/libjava/classpath/lib/org/xml/sax/ext/Locator2Impl.class new file mode 100644 index 0000000000000000000000000000000000000000..f6cc7ae952956add1118a8061363296a84537d5f GIT binary patch literal 1050 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 EFLVC)MgRZ+ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/LocatorImpl.class b/libjava/classpath/lib/org/xml/sax/helpers/LocatorImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..0f54ec0b3254c3a6dc608e639e0e7104d94b0083 GIT binary patch literal 1480 zcwU8*ZBNrs6vzK}jE-#=hrn=xiXiG9fC`9+!)ZcdvSbQ6v-jPoqojMt+8KQ57w|ji zYvV&A8Zq&uCVnX6IbAnKSK^EIp5A-@zw>ZU|NK4v319^eLI?=VHdarjYN1il>_#hJYnmYh1;!4vmzrv7^{Tp4KF}+62#UZ&ztoioj5OP2)2QV41jY*| zx}x1O>eVcrTdyozukm@rH0t`3cCD~y@jXgbr zA)J>O#W{gkp{IYYl}()^QW|DSYZ?6QZU*gr!xES){HIh(E|Dzw6qQYtq8LU(;v%L6 zqE+4A?G-thObwP9fxsn+%eX@BR=;~ZIq2QNUzM2a;)`yNm~%~Hq08y+v;Pf=n@9?b zl7FGEk<_d_>(UY#EYi7k`aGD-cLFX;s0@e^V7ssJEMAdVWpT_peI^hxyEh&8?Nyl6 zcO*g>Ve76$xMSUuh#<<=mV`u{Nn z>CAUr5crB2wr1IyXX`p!DYll_x^)t08VbE1Q=lEnX%`7R#XO#25k)8PR0r+`W@`<% zot$aD+!WMa4PUVSsfSja%@@A;&-scsykgr|Orzu@-hA&7zxEZYzT&J`{Ki*IKZz^O zxoua{nIo)wFYYaA-u3lQ>Ge->rh@}7__H>=tPjNccm^x%vgqd-V9gw1)5|(0){iq- ZJf+N9^=Da1pD)ufil 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 J&Hqbi{vT$PWWfLc literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/NewInstance.class b/libjava/classpath/lib/org/xml/sax/helpers/NewInstance.class new file mode 100644 index 0000000000000000000000000000000000000000..9fa91f989ec29085ef68731bb1f612f02a81289c GIT binary patch literal 1771 zcwU86TT|0O7(H8%KpGK?TJKa;EJcWT$9e$~un>yM#c_NJ>Dop@;%rjnANh(e=;)04 z=8Qke@!M^sp)Hz+y?i-)_Izje+h4!Gd;>6!H4O=dfk2ea?M=@N?QOHdy?0!MW|6-y z_+e!G4%g7h(D&BfvQ5wS%jVMhTkb>*UH4tzjUF;|WQW%nI;VpY*U^C<1BcMXaKv(b zUaW4ebFpHtdz>L<1&-~l*}|3cdayI9xFN#@>pwE`3`xH+Wq6Ra8lt8>I}EMBE^(2M zg_k4Y`sMtv)hwUb^qFmkzl+?!4>hD1GEHp7Aes%TerXS;;n+S@!Si_8_NE+%hhYqL zVn0d=j$B**+(YR&iPIWRkxfn88aRWq4BDGO6zxsQ^K$mz38__i9p{nJFu-uUtt$pD zNZKBcW-2TdTr|*&OAN=dZ5>KFjr9!a1MDVJg{!GewTdO8l5n@UP^%b@wuoowE%RtP zzT2s6OOEyZG>q-Lk1G|y?NT?cQR0c~l8X43lk)echrh zE<^A)9$91781j<%wt*2`)iH{@1}1Qi;jmK`g8NZTSF^dbC@sB@hZ-I*oIHr$z#~jj znYsQ}utCmF#O2n{=yhwT%}Hu_%y6O+UiCNp;JrU1L_p^B0#3u6(lkV$af;JL-jO$B*`POD7v~nQ?qYCfk35A=YR9NGiFBOiH`GQs6;IQ|G@bj>no;Sk)r8OnEU>BGA}2J zB1yR|QZ^ZSiuzSQMwg`~dWd9zY9c|Gz890^!DB+q5^|1wDiCs>(y>$`8O1h%B|K9u T8hDNuB-T`;Wo7w_vSalRK#azU literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.class b/libjava/classpath/lib/org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..5bc24d0267948472fa2aabae1094bb723e3074b9 GIT binary patch literal 2443 zcwUW^T~ixX7{~u-Hzbg(AtIoZf-N9Th%{|2Et(ce(P}i(7igUEZV6|?b~X#$-8gvT zl{b!GKrfwf#+zQ$8AWj%KR~~Ltux*`egH4k=Q+DBAuJ{^JGKZix}QQ)V6>eW-Sq_e9@2{5J=hm&0*Td~Eja*zK?4Iwr=jC{0~rhn=y^66tXhs-Yc)5eyJ2qHQeddMQ#b9J z=~}!FHxn#WV6nT~*bI{PoG1MwM*@@i|4B}v#yqCs2N-3N_(j5WUzy(|+=axg^I|9S`7~cVDbjkP%(qe^qvE~oJpm-?2#RCjBx$U6oqc$ac7AGS=}>xeHH-g4nXp3xwF zy=hWf7kf)v@NZyvASmxUy>k>GhqKTbH*iHGD@Bbe<8^k`>31?y7Bi z9{;oq$4wZu8wEm7A2j->p#gF^o_YHH%hHp9L8s5r*P^lj(sRY{k)8Vixo>Hu;RW8~ z6J4TDuVa|je1~^OFbe*A5if<5rI3#|z2qVF(v zfC+&|5iiLn`X@1Js4+1W60Xvl{pdr}k2|h@-X=qjWaxMWv&!wcULap|f#f5|%`h)n zj%EA+1r7UnwUhUC8!sF2vJvmniM-chd5^pB79!qq$jgMhD;hdsKexd$5iAqI7V&xr zy8&)Gx~+8<4S)H6`b_3WxHq4%tAAyRjw fJ4oH#W8IM$JfS-RX&Tm*{RZxXN0r4cqlVnSkf6lS literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/ParserAdapter.class b/libjava/classpath/lib/org/xml/sax/helpers/ParserAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..cceb560dcec012ff9fa6bba8e29cbfebf2004d9b GIT binary patch literal 11822 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.class b/libjava/classpath/lib/org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..5bcb439192df18ceb4a49806c5d4ced32d191e7b GIT binary patch literal 1477 zcwUW@-%ry}6vw}3z{<8FW4a0APn_6oNG|gC=hiDJwxqYRCH4a86<315v+J!u`cXu~AR)UW-U`zZZo_<0-;tYvh9qI) zII)vx*?vGsiw=k|Zgo}qON3;wZTrPp!nDi~wlxl>*)#jE=fiS8g zg>)JN7}JqKjxb=bVAQf*xz^gPOK(He9ZASp%}wFdglF?U3J$Ve!eU>QHq z9P7=b(W^P78XLZ(L&Gp3)sTTD-A1q-TCQer71uRfBNV#l>zKr4f~NA;#IEw5H>xG; z{~*_u&}}R+r>Nr=rU=7I`?4)2TYc4b`o_CG$+EHz|{E2GML8gu)NU|R*J)ZodK)#gx!h5exK=V qrW>qs05b+lBzwT-a4&M!3wA#a%bf~K;6bQgz(ep@7{7?e$o>T-85bS^ literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/XMLReaderAdapter.class b/libjava/classpath/lib/org/xml/sax/helpers/XMLReaderAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..bd879f36543cc84683c0af7fe22af737eb32a9b2 GIT binary patch literal 4848 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/XMLReaderFactory.class b/libjava/classpath/lib/org/xml/sax/helpers/XMLReaderFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..25c986c9b9179564ff9871e4d5fff829fa65f6f4 GIT binary patch literal 3227 zcwUuOYj+bx7=8vqHw}SexRg7~MMzrONKr(}tyBtywqOf^Dqgn9v@C3PQ3osRAKhV5qzt0<$Wryl*a(qAk6wdP#&oOA{1cAB>7?-rPy zOl1TjolZ{1FdOsZh+(ckLyu|8zG8kzy2p$mODcCx*03^$YpVa{#fX2}^aM8cJWEat zuOaJ7!jmc0*wIQ^HYR7* zB{g#?iswm%-u=fqTDtqX(w=nBnOW(jXBI1lO-N}-3M>wdFpefPGXq9Z3aejwPSMTE z4v)U1krzlkIVRIdciV-cUs7#X&RXJVRTdZ0Vy!I=F9MH1%tv99eg_QEzrw3h{%lA&>g#G8pBjaSsR9gJ;iTbV8;`OY|YfwYd&N=|WD zU{Nvz{uuURpN0-v3UMDtr)q*ZSgkV<4M{zye=dqE0v+W) zH5z8=rZh?FoSw8DUFHj9ZlO42nOQxnE>gFsnrcrfifaO^^qeETAQ3ZPuw-7^Rb8Or zLjk>}etnMLrDCgM@AYX~-IgUs467r{v)`-I`eeFRB~l8jv_2D9S>v(O@cgQlm?gIe ztgEHfjIi33X4`bl@X!Lytu>mV;RTvJ@>kb-pBAFJ<_Cf+rpr_>ip90BhE}zk7Y3gy zd_?hRz#PR`I0Dv6%A+B}YF!@ zVRK*0Lu{BtdT1iK$ny=elk-kQY0!3i81$I)9S zCb48NF))tf_n2lK{WstwV>*Ohyw2GWvK&jfWP&))@}EUbhie7qT(0wi;_NTQ7^3U4B~G|0SCm%3p6x2l>%%f4gk!ktl* z{j7+h!S$x*3CQ~}Z}lqVCUJH!kspWCJcdHT=VuJ(HjiWUUWoY8)5VvcF1}hNW?(Ad zdV;FPB!N}q0el>c!}zqE=AnRQx2ZYF#O|;}zZ1MW+;NvM-XkgR^TlzGJOALF`~ZXa zlfeE(P#@6B-@Gdx^1OV+0zRyii68{UK`=WNKpDeoe2y>ZHO1MN_=>ZGoPCXNI2+;Y OTYMK3S(k8 literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/standard.omit b/libjava/classpath/lib/standard.omit deleted file mode 100644 index 11d05c78161..00000000000 --- a/libjava/classpath/lib/standard.omit +++ /dev/null @@ -1,2 +0,0 @@ -gnu/test/.*java$ -gnu/java/awt/peer/x/.*java$ diff --git a/libjava/classpath/lib/sun/misc/Service.class b/libjava/classpath/lib/sun/misc/Service.class new file mode 100644 index 0000000000000000000000000000000000000000..09dc5f56fc42bc90ca5c5aea004d5d1a97742660 GIT binary patch literal 715 zcwUuJ%TB^T6g|UJ5apqQZ{rRy+PJlZ4T*_Kqa+ZQCPSUzXl==~CE>4hrE%d0_)*3? z1w>I7&f-4LeVjXQ?=PT~@WO+7sF1eE0p9B-Zjr4VH zey+)o87OZkuZ1E&vue$DXgS>X&G~@kal)FlaXbv9W1Iy-@xW8MSx5F=9)ya9UNzb$ z);uNi=ZHqPZ8rZiXIzlQ3f9tCW!Ub!p<(Ny0S|7b)K0lg*ijB;8F8|JpA=~jnMf*sN%1yRA(qQa^eir)0$f6%5nI_L5 z%}6KfPgr=2(pi$JD0qlPlDRQ}^b+X|mXRk^A;K1;CKg#ST~$ALM(Kg9_?Irts7rZ_ aKn3g38YygGlk!`i6LfByG{a8Rd-ntBQ>xGa literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/sun/misc/ServiceConfigurationError.class b/libjava/classpath/lib/sun/misc/ServiceConfigurationError.class new file mode 100644 index 0000000000000000000000000000000000000000..30d7fed7c49e9859139ad6fd00671df0dcca38ea GIT binary patch literal 462 zcwU81!AiqG5PjRGjmFw)wH^hnMcnTVxUPcp3xFQrzu#%SZhVHmvd zHTN^FQon98bmvmZa>39ZPhtjVsUL-hHgRN}tMSHe8-RVEmQp-y-fb0clt zG@bHU77Q2R|BD0+qjC7XNK_iB(qIx>+XHLcXK-^-6g;i%eo+~`NLMBichY*F{%JL{ zqc{Uy2m4x-(Nz>(s%{7wVQ0F*&TIYcQS=CbYdA#MqpY_j5$+ROfqo;fAg1MZr_-7;FX2|!=PKUQWeA1Q#+Q+OF~1CA$G{$ z@s!D}a%yY;Q0N}Rg_=q;4CT)#(hPkW-83x2TW08qCw3WvYj#nD!4QceiawHOR6azZ zfhc-$fmY5NmUvyO>9 z#xbd3qOF6%vFnLS6jQiJOOQiB=rzaijyJi*%fexpC94*GdzwsVa7n`~!_>K?C@#w` z$MgfCAH8wxs&G6*xGTCYT&g?ZRv4!Lu?B6ctu}hy5N2_!RB{FF`Aob;;)s$-gp^{W z6FHLTcBRT4v0@bq?|C(Akz}$}Qa`(NE}Kp4QS0sWyls`w;pcLaKibZ348l@3MQ5lp zB0c-7HE+u)3P%)Gxf5N>l@l~@%B)w~m70^(*eSJ9Wc>e%Y%D~z?Aj*x3^|1ZG$L(* z@or{`EKM*;WpSre&5uxyT-tNpZRi{|pGqexJ5iZaS*RJKJTcGa=epW<#;7FjIQ)2( zyP`2*qpjLCle=zO^`(eet0+Dc=!F#O?Wa*Vq6u$RY#%s+7u7BX>*?P3o;s3n!LB*F zSXUKB>Tl<~6yhp<0ea~BLmc@TpnntSgGLv%N>3>SAb*h`U~f+l{(}Bb^ccV(-NP#R zh;R`x6_r=CDPAOGguTfV44su_5X7>QMe8ICtMx+|!KiPr?i<9uVQeG$3tI9krazBd2Kd5gLJ<_9fC1j!*zu>a8uze%qff`p)iTt3h&^q!g=ak;ypjU ufcpv;{rm$TA5!}gAN%;k*FE)d32B8HJX5&r<8!=FxPn!+`)jJBmwy3OSay5> literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/sun/reflect/Reflection.class b/libjava/classpath/lib/sun/reflect/Reflection.class new file mode 100644 index 0000000000000000000000000000000000000000..fb6c0c7206aeb4cf48b95d7e0ddaa2a0c25fc330 GIT binary patch literal 477 zcwTK#O;5r=6rAOwm5PFhsCe=Q99;2=@zTVEq-r7t51y8?LSb!5*&2VAo-`i(0sbiC z+d_g-_wZ)l?7Z2@`}}(U0MJI=Muwp_PeLBcdnJ9%uNN3Zp^Y3vc_JPKS0WtotHFdG z7_8GE4D=a8w$bb}4o*6aWAK literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/sun/reflect/annotation/AnnotationInvocationHandler.class b/libjava/classpath/lib/sun/reflect/annotation/AnnotationInvocationHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..e70c2bbcd7bc9690fa424e057de8da781a0544e5 GIT binary patch literal 7471 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 KM#63s?R^8L;G+-# literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.class b/libjava/classpath/lib/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.class new file mode 100644 index 0000000000000000000000000000000000000000..31adaf53825e45ce2295d53885769923e2e7af34 GIT binary patch literal 580 zcwVJYO-}+b5PgM()fGkX^QZ?6cyOcFRWAgM$%c?%xR<3u&2CF}y9R%jCle3;0DqKm ziiBv0iHSW--%Q`Unb-G^*EaxX*mqH22(n!Hsko0tWPGlaHrz<9{I<%ImR6bJ%5=2p zrXmx{w5O4n*!OO#r%x^%hNIsEeoz_87g9-c#cnp_@6Qbn=3=X95LmQ1s{qd?KEsO6cH=giX|DawXKU QMXeTXV~5xbyR+`SPa$xfGynhq literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class b/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class new file mode 100644 index 0000000000000000000000000000000000000000..7773618aacdf0e5ef52f6663e0fa0d130495a347 GIT binary patch literal 313 zcwUW8K~4fe5Uhq}R~Hn5FYsVgNSt`qcp-4w0EveC>^jPjb;b;{2A}20#Dfp;QG}k= zi#NKH>Z9sXtyeZUcU~^|T?+GG8ZzbQP zD5ZH8vwX#VLVT-@_IHHl#pQw!jqIaJ(Zpc~EyRRwrj43bFS&9LGA|XOpV>l|3+Z&w zf6K@(^_p;=?G@&Rklx$M6>6fx_sReBRfvgGa43W#ZVtnkuoATfT7ypDs#e4H+-#lhMKHuH}9AYy@K-hJS6}5UWs`O&6T`8^?;?8TcbI~||sxBL2VuXZj zCZDA+(msl-V#X#ybgZrRCxqVKXi5kt)xAp4!*Yr~BElfomILO6s&8ds6k(WGr8HAn z>sEg^L;s{5VU+)Kog+eWQ#Ey|&U8DU{jwdjTN2W9YgIil(mCZ~3<+C*g>&FfJhs6X xp?!p)y@WYtC76l1zyFG*7cK%Mj8WGdV}&tY7?@YP|FsSW$e5FEd>tD|z5pP2T#^6) literal 0 HcwPel00001 diff --git a/libjava/classpath/lib/sun/reflect/misc/ReflectUtil.class b/libjava/classpath/lib/sun/reflect/misc/ReflectUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..428a0c110cb37435e09f0cadea9c1a5357e7b224 GIT binary patch literal 1606 zcwUWET~icC6g|Bx3=9)lK}7>=q8Qx|Wc^4mx`qT1baWR~3{~buXJ?ybWIn8(*_6Ea zKjMq!i+T11Q%P0wmWTYIyd^n3y9&65a;m29?Y@2QJ@@qO{_CG#e+O_Ls|GRxlW{w& zD7o%SH>m_(>{jk|Cf_HXZy+m>d+hw^RD36FRaP30X%QH>>V;l1C(u_Yt_frpqNX&_ zhan677!Vk#d7)fx2Mww2I}Kk7jMgI8@z)&X>3MfCn{0To!13CC7^-x3H>A6H$8k5E zmYjE88Pn@fp|%5T!FS@gT3j=65Mu^L_n=;EaLOdn-(B778c|3^Q3`hfVo(Wt|)s z?4qrm$`+<^R$wS@H{x`^z>$J&e=tV{=M9__IQGA+SU7+S0*4E|?z$xoG^Oi1dYaZQ zaIl9CflM3-Ozguv;fE;|qrF)KgvZ~eQHF6_$-312_O?A%dfTISVZXjRRd2`1HFmM@ zS8d%{A|;yw#g8tF%@9OQZ{3rMjG3!ZTe)({ z(^oUM%VkDG60qzrlq#)F#s=;RocYK^jJ-3#39#v*zdmYwFE|>URVW2zf9VYdUsK7z zTIC=gmQ>2IMQ`~$zWN^uYN)9LG4dee#T&F8%J()n0)^4-xQzMr*kvg zI5n5gyuiqGUw#{2xs$U{(9eUSbXpXH~x5scP2&gkeMHms0N8~NzFRO(82^Zh+~tlijT7hxHsB` mc@{TQ%v!UliB!9V+l;KWT8cTtI(4pPtWcWVb%*~wnEwIUpoB#L literal 0 HcwPel00001 diff --git a/libjava/classpath/ltconfig b/libjava/classpath/ltconfig index 839b980fdb2..b00e0efc232 100755 --- a/libjava/classpath/ltconfig +++ b/libjava/classpath/ltconfig @@ -626,7 +626,7 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" - old_postinstall_cmds="~$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" fi # Source the script associated with the $tagname tag configuration. diff --git a/libjava/classpath/ltmain.sh b/libjava/classpath/ltmain.sh index a3c55f9a751..219823fc45d 100644 --- a/libjava/classpath/ltmain.sh +++ b/libjava/classpath/ltmain.sh @@ -3839,13 +3839,7 @@ extern \"C\" { fi # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then + if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S diff --git a/libjava/classpath/m4/acinclude.m4 b/libjava/classpath/m4/acinclude.m4 index ca1af929b1d..ead0090b4ba 100644 --- a/libjava/classpath/m4/acinclude.m4 +++ b/libjava/classpath/m4/acinclude.m4 @@ -458,16 +458,3 @@ AC_DEFUN([CLASSPATH_CHECK_ECJ], AC_PATH_PROG(ECJ, "ecj") fi ]) - -dnl ----------------------------------------------------------- -dnl GCJ LOCAL: Calculate toolexeclibdir -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_TOOLEXECLIBDIR], -[ - multi_os_directory=`$CC -print-multi-os-directory` - case $multi_os_directory in - .) toolexeclibdir=${libdir} ;; # Avoid trailing /. - *) toolexeclibdir=${libdir}/${multi_os_directory} ;; - esac - AC_SUBST(toolexeclibdir) -]) diff --git a/libjava/classpath/m4/gcc_attribute.m4 b/libjava/classpath/m4/gcc_attribute.m4 new file mode 100644 index 00000000000..f0c25722b8e --- /dev/null +++ b/libjava/classpath/m4/gcc_attribute.m4 @@ -0,0 +1,133 @@ +dnl CACHED_TRY_COMPILE(,,,,,) +AC_DEFUN([CACHED_TRY_COMPILE],[ + AC_MSG_CHECKING($1) + AC_CACHE_VAL($2,[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$3]], [[$4]])],[$2=yes],[$2=no]) + ]) + if test "x$$2" = xyes; then + true + $5 + else + true + $6 + fi +]) + +dnl GCC_ATTRIBUTE(,,,,,,[],[]) +AC_DEFUN([GCC_ATTRIBUTE],[ + CACHED_TRY_COMPILE(__attribute__(($1)),cv_c_gcc_attribute_$2,, + [extern int testfunction($3) __attribute__(($4))], + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GNUC25_$5,,$6) + $7, + AC_MSG_RESULT(no) + $8) +]) + + +AC_DEFUN([GCC_ATTRIBUTE_SUPPORTED],[ + GCC_ATTRIBUTE([,,],supported,[int x],[,,],ATTRIB,[Define if function attributes a la GCC 2.5 and higher are available.]) + AH_BOTTOM([/* GNU C attributes. */ +#ifndef FUNCATTR +#ifdef HAVE_GNUC25_ATTRIB +#define FUNCATTR(x) __attribute__(x) +#else +#define FUNCATTR(x) +#endif +#endif]) + +]) +AC_DEFUN([GCC_ATTRIBUTE_CONST],[ + AC_REQUIRE([GCC_ATTRIBUTE_SUPPORTED]) + GCC_ATTRIBUTE(const,const,[int x],const,CONST,[Define if constant functions a la GCC 2.5 and higher are available.]) + AH_BOTTOM([/* GNU C constant functions, or null. */ +#ifndef ATTRCONST +#ifdef HAVE_GNUC25_CONST +#define ATTRCONST const +#else +#define ATTRCONST +#endif +#endif +#ifndef CONSTANT +#define CONSTANT FUNCATTR((ATTRCONST)) +#endif]) +]) +AC_DEFUN([GCC_ATTRIBUTE_NORETURN],[ + AC_REQUIRE([GCC_ATTRIBUTE_SUPPORTED]) + GCC_ATTRIBUTE(noreturn,noreturn,[int x],noreturn,NORETURN,[Define if nonreturning functions a la GCC 2.5 and higher are available.]) + AH_BOTTOM([/* GNU C nonreturning functions, or null. */ +#ifndef ATTRNORETURN +#ifdef HAVE_GNUC25_NORETURN +#define ATTRNORETURN noreturn +#else /* ! HAVE_GNUC25_NORETURN */ +#define ATTRNORETURN +#endif /* HAVE_GNUC25_NORETURN */ +#endif /* ATTRNORETURN */ +#ifndef NONRETURNING +#define NONRETURNING FUNCATTR((ATTRNORETURN)) +#endif /* NONRETURNING */]) +]) +AC_DEFUN([GCC_ATTRIBUTE_UNUSED],[ + AC_REQUIRE([GCC_ATTRIBUTE_SUPPORTED]) + GCC_ATTRIBUTE(unused,unused,[int x],unused,UNUSED,[Define if unused variables la GCC 2.5 and higher are available.]) + AH_BOTTOM([/* GNU C unused functions, or null. */ +#ifndef ATTRUNUSED +#ifdef HAVE_GNUC25_UNUSED +#define ATTRUNUSED unused +#else +#define ATTRUNUSED +#endif +#endif +#ifndef UNUSED +#define UNUSED FUNCATTR((ATTRUNUSED)) +#endif]) +]) +AC_DEFUN([GCC_ATTRIBUTE_FORMAT],[ + AC_REQUIRE([GCC_ATTRIBUTE_SUPPORTED]) + GCC_ATTRIBUTE(format...,format,[char *y, ...],[format(printf,1,2)],PRINTFFORMAT,[Define if printf-format argument lists a la GCC are available.]) + AH_BOTTOM([/* GNU C printf formats, or null. */ +#ifndef ATTRPRINTF +#ifdef HAVE_GNUC25_PRINTFFORMAT +#define ATTRPRINTF(si,tc) format(printf,si,tc) +#else +#define ATTRPRINTF(si,tc) +#endif +#endif +#ifndef PRINTFFORMAT +#define PRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc))) +#endif + +#ifndef NONRETURNPRINTFFORMAT +#define NONRETURNPRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc),ATTRNORETURN)) +#endif]) +]) +AC_DEFUN([GCC_ATTRIBUTE_ALWAYS_INLINE],[ + AC_REQUIRE([GCC_ATTRIBUTE_SUPPORTED]) + GCC_ATTRIBUTE(always_inline,always_inline,[int x],always_inline,ALWAYS_INLINE,[Define if unconditional inlining of functions a la GCC 3.1 and higher are available.]) + AH_BOTTOM([/* GNU C constant functions, or null. */ +#ifndef ATTRALWAYS_INLINE +#ifdef HAVE_GNUC25_ALWAYS_INLINE +#define ATTRALWAYS_INLINE always_inline +#else +#define ATTRALWAYS_INLINE +#endif +#endif +#ifndef ALWAYS_INLINE +#define ALWAYS_INLINE FUNCATTR((ATTRALWAYS_INLINE)) +#endif]) +]) +AC_DEFUN([GCC_ATTRIBUTE_PACKED],[ + AC_REQUIRE([GCC_ATTRIBUTE_SUPPORTED]) + GCC_ATTRIBUTE(packed,packed,[int x],packed,PACKED,[Define if packing of struct members a la GCC 2.5 and higher is available.]) + AH_BOTTOM([/* GNU C constant functions, or null. */ +#ifndef ATTRPACKED +#ifdef HAVE_GNUC25_PACKED +#define ATTRPACKED packed +#else +#define ATTRPACKED +#endif +#endif +#ifndef PACKED +#define PACKED FUNCATTR((ATTRPACKED)) +#endif]) +]) diff --git a/libjava/classpath/native/.cvsignore b/libjava/classpath/native/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/Makefile.am b/libjava/classpath/native/Makefile.am index 25aa364d111..89b859eb7e9 100644 --- a/libjava/classpath/native/Makefile.am +++ b/libjava/classpath/native/Makefile.am @@ -12,6 +12,6 @@ if CREATE_PLUGIN PLUGINDIR = plugin endif -SUBDIRS = fdlibm $(JNIDIR) $(JAWTDIR) $(PLUGINDIR) target -DIST_SUBDIRS = fdlibm jni jawt plugin target +SUBDIRS = fdlibm $(JNIDIR) $(JAWTDIR) $(PLUGINDIR) +DIST_SUBDIRS = fdlibm jni jawt plugin diff --git a/libjava/classpath/native/Makefile.in b/libjava/classpath/native/Makefile.in index 73dd32becf5..907b847e82b 100644 --- a/libjava/classpath/native/Makefile.in +++ b/libjava/classpath/native/Makefile.in @@ -41,12 +41,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -165,6 +167,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -286,13 +290,12 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ @CREATE_JNI_LIBRARIES_TRUE@JNIDIR = jni @CREATE_GTK_PEER_LIBRARIES_TRUE@JAWTDIR = jawt @CREATE_PLUGIN_TRUE@PLUGINDIR = plugin -SUBDIRS = fdlibm $(JNIDIR) $(JAWTDIR) $(PLUGINDIR) target -DIST_SUBDIRS = fdlibm jni jawt plugin target +SUBDIRS = fdlibm $(JNIDIR) $(JAWTDIR) $(PLUGINDIR) +DIST_SUBDIRS = fdlibm jni jawt plugin all: all-recursive .SUFFIXES: diff --git a/libjava/classpath/native/fdlibm/.cvsignore b/libjava/classpath/native/fdlibm/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/fdlibm/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/fdlibm/Makefile.in b/libjava/classpath/native/fdlibm/Makefile.in index cbd990ebb6b..48238aef59a 100644 --- a/libjava/classpath/native/fdlibm/Makefile.in +++ b/libjava/classpath/native/fdlibm/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -184,6 +186,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -305,7 +309,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ noinst_LTLIBRARIES = libfdlibm.la libfdlibm_la_SOURCES = \ diff --git a/libjava/classpath/native/fdlibm/mprec.h b/libjava/classpath/native/fdlibm/mprec.h index 7c7471bc8a9..0efa2d98904 100644 --- a/libjava/classpath/native/fdlibm/mprec.h +++ b/libjava/classpath/native/fdlibm/mprec.h @@ -100,7 +100,7 @@ union double_union * An alternative that might be better on some machines is * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) */ -#if defined(IEEE_8087) + defined(VAX) +#if defined(__IEEE_BYTES_LITTLE_ENDIAN) + defined(IEEE_8087) + defined(VAX) #define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ ((unsigned short *)a)[0] = (unsigned short)c, a++) #else diff --git a/libjava/classpath/native/jawt/Makefile.am b/libjava/classpath/native/jawt/Makefile.am index c81e754297f..8d90352ed7d 100644 --- a/libjava/classpath/native/jawt/Makefile.am +++ b/libjava/classpath/native/jawt/Makefile.am @@ -1,8 +1,17 @@ -nativeexeclib_LTLIBRARIES = libjawt.la +## GCJ LOCAL: install this library in GCJ's versioned library +## directory +gcc_version := $(shell cat $(top_srcdir)/../../gcc/BASE-VER) +gcjversionedlibdir = $(libdir)/gcj-$(gcc_version) +gcjversionedlib_LTLIBRARIES = libjawt.la libjawt_la_SOURCES = jawt.c libjawt_la_LIBADD = $(top_builddir)/native/jni/gtk-peer/libgtkpeer.la -libjawt_la_LDFLAGS = -avoid-version +## FIXME? +## libjawt_la_LDFLAGS = -avoid-version + +## GCJ LOCAL: encode the library path and use GCJ's library version +libjawt_la_LDFLAGS = -rpath $(gcjversionedlibdir) \ + -version-info `grep -v '^\#' $(top_srcdir)/../libtool-version` AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @PANGOFT2_LIBS@ @X_LIBS@ @XTEST_LIBS@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ diff --git a/libjava/classpath/native/jawt/Makefile.in b/libjava/classpath/native/jawt/Makefile.in index 77b45d73155..8cf2873696d 100644 --- a/libjava/classpath/native/jawt/Makefile.in +++ b/libjava/classpath/native/jawt/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -59,9 +61,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" -nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(gcjversionedlibdir)" +gcjversionedlibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(gcjversionedlib_LTLIBRARIES) libjawt_la_DEPENDENCIES = \ $(top_builddir)/native/jni/gtk-peer/libgtkpeer.la am_libjawt_la_OBJECTS = jawt.lo @@ -184,6 +186,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -305,12 +309,15 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -nativeexeclib_LTLIBRARIES = libjawt.la +gcc_version := $(shell cat $(top_srcdir)/../../gcc/BASE-VER) +gcjversionedlibdir = $(libdir)/gcj-$(gcc_version) +gcjversionedlib_LTLIBRARIES = libjawt.la libjawt_la_SOURCES = jawt.c libjawt_la_LIBADD = $(top_builddir)/native/jni/gtk-peer/libgtkpeer.la -libjawt_la_LDFLAGS = -avoid-version +libjawt_la_LDFLAGS = -rpath $(gcjversionedlibdir) \ + -version-info `grep -v '^\#' $(top_srcdir)/../libtool-version` + AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @PANGOFT2_LIBS@ @X_LIBS@ @XTEST_LIBS@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ @@ -352,35 +359,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) +install-gcjversionedlibLTLIBRARIES: $(gcjversionedlib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" - @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(gcjversionedlibdir)" || $(mkdir_p) "$(DESTDIR)$(gcjversionedlibdir)" + @list='$(gcjversionedlib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(gcjversionedlibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(gcjversionedlibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(gcjversionedlibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(gcjversionedlibdir)/$$f"; \ else :; fi; \ done -uninstall-nativeexeclibLTLIBRARIES: +uninstall-gcjversionedlibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(gcjversionedlib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(gcjversionedlibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(gcjversionedlibdir)/$$p"; \ done -clean-nativeexeclibLTLIBRARIES: - -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) - @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ +clean-gcjversionedlibLTLIBRARIES: + -test -z "$(gcjversionedlib_LTLIBRARIES)" || rm -f $(gcjversionedlib_LTLIBRARIES) + @list='$(gcjversionedlib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libjawt.la: $(libjawt_la_OBJECTS) $(libjawt_la_DEPENDENCIES) - $(LINK) -rpath $(nativeexeclibdir) $(libjawt_la_LDFLAGS) $(libjawt_la_OBJECTS) $(libjawt_la_LIBADD) $(LIBS) + $(LINK) -rpath $(gcjversionedlibdir) $(libjawt_la_LDFLAGS) $(libjawt_la_OBJECTS) $(libjawt_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -500,7 +507,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ + for dir in "$(DESTDIR)$(gcjversionedlibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -529,7 +536,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ +clean-am: clean-gcjversionedlibLTLIBRARIES clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am @@ -548,9 +555,9 @@ info: info-am info-am: -install-data-am: +install-data-am: install-gcjversionedlibLTLIBRARIES -install-exec-am: install-nativeexeclibLTLIBRARIES +install-exec-am: install-info: install-info-am @@ -576,20 +583,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES +uninstall-am: uninstall-gcjversionedlibLTLIBRARIES uninstall-info-am -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-nativeexeclibLTLIBRARIES install-strip installcheck \ +.PHONY: CTAGS GTAGS all all-am check check-am clean \ + clean-gcjversionedlibLTLIBRARIES clean-generic clean-libtool \ + ctags distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am \ + install-gcjversionedlibLTLIBRARIES install-info \ + install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativeexeclibLTLIBRARIES + tags uninstall uninstall-am \ + uninstall-gcjversionedlibLTLIBRARIES uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jawt/jawt.c b/libjava/classpath/native/jawt/jawt.c index a4178685054..4ebb105d763 100644 --- a/libjava/classpath/native/jawt/jawt.c +++ b/libjava/classpath/native/jawt/jawt.c @@ -116,6 +116,8 @@ static JAWT_DrawingSurfaceInfo* surface->target); surface_info_x11->visualID = classpath_jawt_get_visualID (surface->env, surface->target); + surface_info_x11->depth = classpath_jawt_get_depth (surface->env, + surface->target); /* FIXME: also include bounding rectangle of drawing surface */ /* FIXME: also include current clipping region */ diff --git a/libjava/classpath/native/jni/.cvsignore b/libjava/classpath/native/jni/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/Makefile.am b/libjava/classpath/native/jni/Makefile.am index 2b205826c1b..1105407993f 100644 --- a/libjava/classpath/native/jni/Makefile.am +++ b/libjava/classpath/native/jni/Makefile.am @@ -1,7 +1,7 @@ ## Input file for automake to generate the Makefile.in used by configure if CREATE_CORE_JNI_LIBRARIES - JNIDIRS = java-io java-lang java-net java-nio java-util + JNIDIRS = native-lib java-io java-lang java-net java-nio java-util endif if CREATE_ALSA_LIBRARIES @@ -32,7 +32,8 @@ SUBDIRS = classpath $(JNIDIRS) \ $(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \ $(CLASSPATH_GCONF_PEER_DIR) DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \ - gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi + gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi \ + native-lib all-local: cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh diff --git a/libjava/classpath/native/jni/Makefile.in b/libjava/classpath/native/jni/Makefile.in index 61ae690f4da..705bb8107ed 100644 --- a/libjava/classpath/native/jni/Makefile.in +++ b/libjava/classpath/native/jni/Makefile.in @@ -41,12 +41,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -165,6 +167,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -286,9 +290,8 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -@CREATE_CORE_JNI_LIBRARIES_TRUE@JNIDIRS = java-io java-lang java-net java-nio java-util +@CREATE_CORE_JNI_LIBRARIES_TRUE@JNIDIRS = native-lib java-io java-lang java-net java-nio java-util @CREATE_ALSA_LIBRARIES_TRUE@ALSADIR = midi-alsa @CREATE_DSSI_LIBRARIES_TRUE@DSSIDIR = midi-dssi @CREATE_GTK_PEER_LIBRARIES_TRUE@GTKDIR = gtk-peer @@ -300,7 +303,8 @@ SUBDIRS = classpath $(JNIDIRS) \ $(CLASSPATH_GCONF_PEER_DIR) DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \ - gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi + gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi \ + native-lib all: all-recursive diff --git a/libjava/classpath/native/jni/classpath/.cvsignore b/libjava/classpath/native/jni/classpath/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/classpath/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/classpath/Makefile.in b/libjava/classpath/native/jni/classpath/Makefile.in index 435bb6d1647..681f5c1950e 100644 --- a/libjava/classpath/native/jni/classpath/Makefile.in +++ b/libjava/classpath/native/jni/classpath/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -175,6 +177,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -296,7 +300,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ # Header needed for jawt implementations such as the one found in ../gtk-peer. diff --git a/libjava/classpath/native/jni/classpath/classpath_jawt.h b/libjava/classpath/native/jni/classpath/classpath_jawt.h index 32a04dc5cd7..35c734a57a3 100644 --- a/libjava/classpath/native/jni/classpath/classpath_jawt.h +++ b/libjava/classpath/native/jni/classpath/classpath_jawt.h @@ -54,6 +54,7 @@ jint classpath_jawt_get_awt_version (void); Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas); Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas); VisualID classpath_jawt_get_visualID (JNIEnv* env, jobject canvas); +int classpath_jawt_get_depth (JNIEnv* env, jobject canvas); jint classpath_jawt_lock (void); void classpath_jawt_unlock (void); diff --git a/libjava/classpath/native/jni/classpath/jcl.c b/libjava/classpath/native/jni/classpath/jcl.c index e28c6631bad..cd3f5161d06 100644 --- a/libjava/classpath/native/jni/classpath/jcl.c +++ b/libjava/classpath/native/jni/classpath/jcl.c @@ -1,5 +1,5 @@ /* jcl.c - Copyright (C) 1998, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,6 +48,57 @@ exception statement from your version. */ #endif #endif +/* + * Cached Pointer class info. + */ +static jclass rawDataClass = NULL; +static jfieldID rawData_fid = NULL; +static jmethodID rawData_mid = NULL; + +/* + * JNI OnLoad constructor. + */ +JNIEXPORT jint JNICALL +JNI_OnLoad (JavaVM *vm, void *reserved __attribute__((unused))) +{ + JNIEnv *env; + void *envp; + + if ((*vm)->GetEnv (vm, &envp, JNI_VERSION_1_4) != JNI_OK) + { + return JNI_VERSION_1_4; + } + env = (JNIEnv *) envp; +#if SIZEOF_VOID_P == 8 + rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer64"); + if (rawDataClass != NULL) + rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); + + if (rawDataClass != NULL) + { + rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "J"); + rawData_mid = (*env)->GetMethodID (env, rawDataClass, "", "(J)V"); + } +#else +#if SIZEOF_VOID_P == 4 + rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer32"); + if (rawDataClass != NULL) + rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); + + if (rawDataClass != NULL) + { + rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "I"); + rawData_mid = (*env)->GetMethodID (env, rawDataClass, "", "(I)V"); + } +#else +#error "Pointer size is not supported." +#endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ + + return JNI_VERSION_1_4; +} + + JNIEXPORT void JNICALL JCL_ThrowException (JNIEnv * env, const char *className, const char *errMsg) { @@ -183,78 +234,17 @@ JCL_FindClass (JNIEnv * env, const char *className) /* - * Build a Pointer object. The function caches the class type + * Build a Pointer object. */ -static jclass rawDataClass; -static jfieldID rawData_fid; -static jmethodID rawData_mid; - JNIEXPORT jobject JNICALL JCL_NewRawDataObject (JNIEnv * env, void *data) { - if (rawDataClass == NULL) + if (rawDataClass == NULL || rawData_mid == NULL) { - jclass tmp; -#if SIZEOF_VOID_P == 8 - rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer64"); - if (rawDataClass == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "unable to find internal class"); - return NULL; - } - - rawData_mid = (*env)->GetMethodID (env, rawDataClass, "", "(J)V"); - if (rawData_mid == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "unable to find internal constructor"); - return NULL; - } - - rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "J"); - if (rawData_fid == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "unable to find internal field"); - return NULL; - } -#else - rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer32"); - if (rawDataClass == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "unable to find internal class"); - return NULL; - } - - rawData_mid = (*env)->GetMethodID (env, rawDataClass, "", "(I)V"); - if (rawData_mid == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "unable to find internal constructor"); - return NULL; - } - - rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "I"); - if (rawData_fid == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "unable to find internal field"); - return NULL; - } - -#endif - tmp = (*env)->NewGlobalRef (env, rawDataClass); - if (tmp == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "unable to create an internal global ref"); - return NULL; - } - (*env)->DeleteLocalRef(env, rawDataClass); - rawDataClass = tmp; + JCL_ThrowException (env, "java/lang/InternalError", + "Pointer class was not properly initialized"); + return NULL; } #if SIZEOF_VOID_P == 8 @@ -267,6 +257,13 @@ JCL_NewRawDataObject (JNIEnv * env, void *data) JNIEXPORT void * JNICALL JCL_GetRawData (JNIEnv * env, jobject rawdata) { + if (rawData_fid == NULL) + { + JCL_ThrowException (env, "java/lang/InternalError", + "Pointer class was not properly initialized"); + return NULL; + } + #if SIZEOF_VOID_P == 8 return (void *) (*env)->GetLongField (env, rawdata, rawData_fid); #else diff --git a/libjava/classpath/native/jni/gconf-peer/.cvsignore b/libjava/classpath/native/jni/gconf-peer/.cvsignore new file mode 100644 index 00000000000..799fc97856d --- /dev/null +++ b/libjava/classpath/native/jni/gconf-peer/.cvsignore @@ -0,0 +1,6 @@ +.deps +.libs +*.lo +*.la +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c b/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c index a442226cae6..42986c33a89 100644 --- a/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c +++ b/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c @@ -108,8 +108,8 @@ static jclass get_jlist_reference (JNIEnv * env, jclass jlist_class); * Method: init_class * Signature: ()V */ -JNIEXPORT void -JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class +JNIEXPORT void JNICALL +Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class (JNIEnv *env, jclass clazz) { if (reference_count == 0) @@ -127,8 +127,8 @@ JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class * Method: init_id_chache * Signature: ()V */ -JNIEXPORT void -JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache +JNIEXPORT void JNICALL +Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache (JNIEnv *env, jclass clazz __attribute__ ((unused))) { reference_count++; @@ -157,16 +157,19 @@ JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache /* * Class: gnu_java_util_prefs_gconf_GConfNativePeer - * Method: gconf_client_gconf_client_all_keys + * Method: gconf_client_all_keys * Signature: (Ljava/lang/String;)Ljava/util/List; */ JNIEXPORT jobject JNICALL -Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys +Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node) { /* TODO: check all the calls to gdk_threads_enter/leave */ const char *dir = NULL; + const char *_val = NULL; + const char *_val_unescaped = NULL; + GError *err = NULL; GSList *entries = NULL; GSList *tmp; @@ -208,12 +211,18 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all tmp = entries; while (tmp != NULL) { - const char *_val = gconf_entry_get_key (tmp->data); + _val = gconf_entry_get_key (tmp->data); _val = strrchr (_val, '/'); ++_val; + + _val_unescaped = gconf_unescape_key (_val, strlen (_val)); + (*env)->CallBooleanMethod (env, jlist, jlist_add_id, - (*env)->NewStringUTF (env, _val)); + (*env)->NewStringUTF (env, _val_unescaped)); + tmp = g_slist_next (tmp); + + g_free ((gpointer) _val_unescaped); } /* clean up things */ @@ -226,14 +235,17 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all /* * Class: gnu_java_util_prefs_gconf_GConfNativePeer - * Method: gconf_client_gconf_client_all_nodes + * Method: gconf_client_all_nodes * Signature: (Ljava/lang/String;)Ljava/util/List; */ JNIEXPORT jobject JNICALL -Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes +Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node) { const char *dir = NULL; + const char *_val = NULL; + const char *_val_unescaped = NULL; + GError *err = NULL; GSList *entries = NULL; GSList *tmp; @@ -274,12 +286,19 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all tmp = entries; while (tmp != NULL) { - const char *_val = tmp->data; + _val = tmp->data; + _val = strrchr (_val, '/'); ++_val; + + _val_unescaped = gconf_unescape_key (_val, strlen (_val)); + (*env)->CallBooleanMethod (env, jlist, jlist_add_id, - (*env)->NewStringUTF (env, _val)); + (*env)->NewStringUTF (env, _val_unescaped)); + tmp = g_slist_next (tmp); + + g_free ((gpointer) _val_unescaped); } /* clean up things */ @@ -421,7 +440,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string gdk_threads_leave (); if (err != NULL) { - g_error_free (err); + g_error_free (err); err = NULL; result = JNI_FALSE; } @@ -511,8 +530,8 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists * Method: finalize_class * Signature: ()V */ -JNIEXPORT void -JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class +JNIEXPORT void JNICALL +Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class (JNIEnv *env, jclass clazz __attribute__ ((unused))) { if (reference_count == 0) @@ -534,6 +553,74 @@ JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class reference_count--; } +/* + * Class: gnu_java_util_prefs_gconf_GConfNativePeer + * Method: Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jstring JNICALL +Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key + (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring plain) +{ + const char *escaped = NULL; + const char *_plain = NULL; + jstring result = NULL; + + _plain = JCL_jstring_to_cstring (env, plain); + if (_plain == NULL) + { + return NULL; + } + + gdk_threads_enter (); + escaped = gconf_escape_key (_plain, strlen (_plain)); + gdk_threads_leave (); + + JCL_free_cstring (env, plain, _plain); + /* check for NULL, if so prevent string creation */ + if (escaped != NULL) + { + result = (*env)->NewStringUTF (env, escaped); + g_free ((gpointer) escaped); + } + + return result; +} + +/* + * Class: gnu_java_util_prefs_gconf_GConfNativePeer + * Method: Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jstring JNICALL +Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key + (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring escaped) +{ + const char *plain = NULL; + const char *_escaped = NULL; + jstring result = NULL; + + _escaped = JCL_jstring_to_cstring (env, escaped); + if (_escaped == NULL) + { + return NULL; + } + + gdk_threads_enter (); + plain = gconf_unescape_key (_escaped, strlen (_escaped)); + gdk_threads_leave (); + + JCL_free_cstring (env, escaped, _escaped); + /* check for NULL, if so prevent string creation */ + if (plain != NULL) + { + result = (*env)->NewStringUTF (env, plain); + g_free ((gpointer) plain); + } + + return result; +} + /* ***** END: NATIVE FUNCTIONS ***** */ /* ***** PRIVATE FUNCTIONS IMPLEMENTATION ***** */ diff --git a/libjava/classpath/native/jni/gconf-peer/Makefile.in b/libjava/classpath/native/jni/gconf-peer/Makefile.in index 2e95e299d60..2e4074c778f 100644 --- a/libjava/classpath/native/jni/gconf-peer/Makefile.in +++ b/libjava/classpath/native/jni/gconf-peer/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -185,6 +187,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -306,7 +310,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libgconfpeer.la libgconfpeer_la_SOURCES = GConfNativePeer.c diff --git a/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c b/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c index 6dfbfcce4a9..62ffa1395ea 100644 --- a/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c @@ -42,7 +42,8 @@ exception statement from your version. */ #include static GtkWidget * get_widget (GtkWidget *widget); - +static void connect_signals_for_widget (GtkWidget *widget); + #define ACTION_COPY 1 #define ACTION_MOVE 2 #define ACTION_COPY_OR_MOVE 3 @@ -63,21 +64,35 @@ static GtkWidget * get_widget (GtkWidget *widget); #define AWT_HAND_CURSOR 12 #define AWT_MOVE_CURSOR 13 +static jmethodID dragEnterID; +static jmethodID dragExitID; +static jmethodID dragDropEndID; +static jmethodID dragMouseMovedID; +static jmethodID dragOverID; +static jmethodID dragActionChangedID; +static jmethodID acceptDragID; +static jmethodID rejectDragID; +static jmethodID acceptDropID; +static jmethodID rejectDropID; +static jmethodID dropCompleteID; + GtkWidget *widget; +GtkWidget *tgt; +jobject *gref; +jobject javaObj; JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create (JNIEnv *env, jobject obj, jobject comp) -{ - void *ptr; - +{ gdk_threads_enter (); - + + javaObj = obj; NSA_SET_GLOBAL_REF (env, obj); NSA_SET_GLOBAL_REF (env, comp); - ptr = NSA_GET_PTR (env, comp); - widget = get_widget (GTK_WIDGET (ptr)); + gref = NSA_GET_PTR (env, comp); + widget = get_widget (GTK_WIDGET (gref)); gdk_threads_leave (); } @@ -93,6 +108,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor gdk_threads_enter (); + javaObj = obj; ptr = NSA_GET_GLOBAL_REF (env, obj); switch (type) @@ -158,31 +174,81 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals (JNIEnv *env, jobject obj, jobject comp) { - jobject *gref; - void *ptr; + jclass gtkdragsourcecontextpeer; + jclass gtkdroptargetcontextpeer; gdk_threads_enter (); - ptr = NSA_GET_GLOBAL_REF (env, obj); + javaObj = obj; gref = NSA_GET_GLOBAL_REF (env, comp); + + connect_signals_for_widget (widget); + + gtkdragsourcecontextpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(), + "gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer"); + + dragEnterID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdragsourcecontextpeer, + "dragEnter", "(II)V"); + dragExitID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdragsourcecontextpeer, + "dragExit", "(III)V"); + dragDropEndID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdragsourcecontextpeer, + "dragDropEnd", "(IZII)V"); + dragMouseMovedID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdragsourcecontextpeer, + "dragMouseMoved", "(II)V"); + dragOverID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdragsourcecontextpeer, + "dragOver", "(II)V"); + dragActionChangedID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdragsourcecontextpeer, + "dragActionChanged", "(II)V"); + + + gtkdroptargetcontextpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(), + "gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer"); + + acceptDragID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdroptargetcontextpeer, + "acceptDrag", "(I)V"); + rejectDragID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdroptargetcontextpeer, + "rejectDrag", "()V"); + acceptDropID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdroptargetcontextpeer, + "acceptDrop", "(I)V"); + rejectDropID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdroptargetcontextpeer, + "rejectDrop", "()V"); + dropCompleteID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkdroptargetcontextpeer, + "dropComplete", "(Z)V"); + + gdk_threads_leave (); +} + +static void +connect_signals_for_widget (GtkWidget *w) +{ + /* FIXME: Not implemented. */ + w = NULL; +} + +JNIEXPORT void JNICALL +Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget + (JNIEnv *env, jobject obj, jobject target) +{ + void *ptr; + + gdk_threads_enter (); + + javaObj = obj; + ptr = NSA_GET_PTR (env, target); + tgt = get_widget (GTK_WIDGET (ptr)); + connect_signals_for_widget (tgt); - /* Uncomment when needed: - g_signal_connect (G_OBJECT (widget), "drag_motion", - G_CALLBACK (drag_motion_cb), *gref); - g_signal_connect (G_OBJECT (widget), "drag_begin", - G_CALLBACK (drag_begin_cb), *gref); - g_signal_connect (G_OBJECT (widget), "drag_end", - G_CALLBACK (drag_end_cb), *gref); - g_signal_connect (G_OBJECT (widget), "drag_data_get", - G_CALLBACK (drag_data_get_cb), *gref); - g_signal_connect (G_OBJECT (widget), "drag_drop", - G_CALLBACK (drag_drop_cb), *gref); - g_signal_connect (G_OBJECT (widget), "drag_data_delete", - G_CALLBACK (drag_data_delete_cb), *gref); - g_signal_connect (G_OBJECT (widget), "drag_data_received", - G_CALLBACK (drag_data_received_cb), *gref); - */ - gdk_threads_leave (); } @@ -200,7 +266,8 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag GdkDragAction action = GDK_ACTION_DEFAULT; gdk_threads_enter (); - + + javaObj = obj; ptr = NSA_GET_GLOBAL_REF (env, obj); data = (*env)->GetStringUTFChars (env, target, NULL); @@ -225,7 +292,9 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag action = GDK_ACTION_DEFAULT; } - gtk_drag_highlight (widget); + gtk_drag_dest_set (widget, GTK_DEST_DEFAULT_ALL, tar, + sizeof (tar) / sizeof (GtkTargetEntry), + action); context = gtk_drag_begin (widget, gtk_target_list_new (tar, sizeof (tar) / sizeof (GtkTargetEntry)), action, GDK_BUTTON1_MASK | GDK_BUTTON2_MASK, event); @@ -235,6 +304,11 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag image = cp_gtk_image_get_pixbuf (env, img); gtk_drag_set_icon_pixbuf (context, image, x, y); } + + if (tgt != NULL) + gtk_drag_dest_set (tgt, GTK_DEST_DEFAULT_ALL, tar, + sizeof (tar) / sizeof (GtkTargetEntry), + action); gdk_event_free (event); (*env)->ReleaseStringUTFChars (env, target, data); diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.am b/libjava/classpath/native/jni/gtk-peer/Makefile.am index b7e84144e7d..f925c18afce 100644 --- a/libjava/classpath/native/jni/gtk-peer/Makefile.am +++ b/libjava/classpath/native/jni/gtk-peer/Makefile.am @@ -1,4 +1,8 @@ -nativeexeclib_LTLIBRARIES = libgtkpeer.la +## GCJ LOCAL: install this library in GCJ's versioned library +## directory +gcc_version := $(shell cat $(top_srcdir)/../../gcc/BASE-VER) +gcjversionedlibdir = $(libdir)/gcj-$(gcc_version) +gcjversionedlib_LTLIBRARIES = libgtkpeer.la # GTK JNI sources. libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \ @@ -49,9 +53,13 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \ gtk_jawt.c \ gtkpeer.h +## GCJ LOCAL: encode the library path and use GCJ's library version +libgtkpeer_la_LDFLAGS = -rpath $(gcjversionedlibdir) \ + -version-info `grep -v '^\#' $(top_srcdir)/../libtool-version` + libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \ $(top_builddir)/native/jni/classpath/jcl.lo -libgtkpeer_la_LDFLAGS = -avoid-version +## libgtkpeer_la_LDFLAGS = -avoid-version AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \ @PANGOFT2_LIBS@ @X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ @XTEST_LIBS@ diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in index fbc85e99295..a7f523f2d8a 100644 --- a/libjava/classpath/native/jni/gtk-peer/Makefile.in +++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -59,9 +61,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" -nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(gcjversionedlibdir)" +gcjversionedlibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(gcjversionedlib_LTLIBRARIES) libgtkpeer_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/native_state.lo \ $(top_builddir)/native/jni/classpath/jcl.lo @@ -224,6 +226,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -345,9 +349,10 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -nativeexeclib_LTLIBRARIES = libgtkpeer.la +gcc_version := $(shell cat $(top_srcdir)/../../gcc/BASE-VER) +gcjversionedlibdir = $(libdir)/gcj-$(gcc_version) +gcjversionedlib_LTLIBRARIES = libgtkpeer.la # GTK JNI sources. libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \ @@ -398,10 +403,12 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \ gtk_jawt.c \ gtkpeer.h +libgtkpeer_la_LDFLAGS = -rpath $(gcjversionedlibdir) \ + -version-info `grep -v '^\#' $(top_srcdir)/../libtool-version` + libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \ $(top_builddir)/native/jni/classpath/jcl.lo -libgtkpeer_la_LDFLAGS = -avoid-version AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \ @PANGOFT2_LIBS@ @X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ @XTEST_LIBS@ @@ -446,35 +453,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) +install-gcjversionedlibLTLIBRARIES: $(gcjversionedlib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" - @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(gcjversionedlibdir)" || $(mkdir_p) "$(DESTDIR)$(gcjversionedlibdir)" + @list='$(gcjversionedlib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(gcjversionedlibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(gcjversionedlibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(gcjversionedlibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(gcjversionedlibdir)/$$f"; \ else :; fi; \ done -uninstall-nativeexeclibLTLIBRARIES: +uninstall-gcjversionedlibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(gcjversionedlib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(gcjversionedlibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(gcjversionedlibdir)/$$p"; \ done -clean-nativeexeclibLTLIBRARIES: - -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) - @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ +clean-gcjversionedlibLTLIBRARIES: + -test -z "$(gcjversionedlib_LTLIBRARIES)" || rm -f $(gcjversionedlib_LTLIBRARIES) + @list='$(gcjversionedlib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libgtkpeer.la: $(libgtkpeer_la_OBJECTS) $(libgtkpeer_la_DEPENDENCIES) - $(LINK) -rpath $(nativeexeclibdir) $(libgtkpeer_la_LDFLAGS) $(libgtkpeer_la_OBJECTS) $(libgtkpeer_la_LIBADD) $(LIBS) + $(LINK) -rpath $(gcjversionedlibdir) $(libgtkpeer_la_LDFLAGS) $(libgtkpeer_la_OBJECTS) $(libgtkpeer_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -635,7 +642,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ + for dir in "$(DESTDIR)$(gcjversionedlibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -664,7 +671,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ +clean-am: clean-gcjversionedlibLTLIBRARIES clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am @@ -683,9 +690,9 @@ info: info-am info-am: -install-data-am: +install-data-am: install-gcjversionedlibLTLIBRARIES -install-exec-am: install-nativeexeclibLTLIBRARIES +install-exec-am: install-info: install-info-am @@ -711,20 +718,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES +uninstall-am: uninstall-gcjversionedlibLTLIBRARIES uninstall-info-am -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-nativeexeclibLTLIBRARIES install-strip installcheck \ +.PHONY: CTAGS GTAGS all all-am check check-am clean \ + clean-gcjversionedlibLTLIBRARIES clean-generic clean-libtool \ + ctags distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am \ + install-gcjversionedlibLTLIBRARIES install-info \ + install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativeexeclibLTLIBRARIES + tags uninstall uninstall-am \ + uninstall-gcjversionedlibLTLIBRARIES uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/gtk-peer/cairographics2d.h b/libjava/classpath/native/jni/gtk-peer/cairographics2d.h index 675bc0b1744..fc564a86a99 100644 --- a/libjava/classpath/native/jni/gtk-peer/cairographics2d.h +++ b/libjava/classpath/native/jni/gtk-peer/cairographics2d.h @@ -97,7 +97,8 @@ enum java_awt_rendering_hints_filter java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR = 1, java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED = 2, java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY = 3, - java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT = 4 + java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT = 4, + java_awt_rendering_hints_VALUE_INTERPOLATION_BICUBIC = 5 }; diff --git a/libjava/classpath/native/jni/gtk-peer/gdkfont.h b/libjava/classpath/native/jni/gtk-peer/gdkfont.h index cf233301547..5545bccaaf4 100644 --- a/libjava/classpath/native/jni/gtk-peer/gdkfont.h +++ b/libjava/classpath/native/jni/gtk-peer/gdkfont.h @@ -92,7 +92,10 @@ extern struct state_table *cp_gtk_native_text_layout_state_table; #define FONT_METRICS_DESCENT 2 #define FONT_METRICS_MAX_DESCENT 3 #define FONT_METRICS_MAX_ADVANCE 4 -#define NUM_FONT_METRICS 5 +#define FONT_METRICS_HEIGHT 5 +#define FONT_METRICS_UNDERLINE_OFFSET 6 +#define FONT_METRICS_UNDERLINE_THICKNESS 7 +#define NUM_FONT_METRICS 8 #define TEXT_METRICS_X_BEARING 0 #define TEXT_METRICS_Y_BEARING 1 diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c index 45cf4fbdaca..bd63ac36667 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c @@ -49,7 +49,6 @@ exception statement from your version. */ #include #include -static void install_font_peer(cairo_t *cr, struct peerfont *pfont); static void update_pattern_transform (struct cairographics2d *gr); /** @@ -134,7 +133,11 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setGradient cairo_pattern_add_color_stop_rgba(pattern, 1.0, r2 / 255.0, g2 / 255.0, b2 / 255.0, a2 / 255.0); - extend = (cyclic == JNI_TRUE) ? CAIRO_EXTEND_REFLECT : CAIRO_EXTEND_NONE; + #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 2, 0) + extend = (cyclic == JNI_TRUE) ? CAIRO_EXTEND_REFLECT : CAIRO_EXTEND_PAD; + #else + extend = (cyclic == JNI_TRUE) ? CAIRO_EXTEND_REFLECT : CAIRO_EXTEND_NONE; + #endif cairo_pattern_set_extend( pattern, extend ); @@ -143,9 +146,10 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setGradient } JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setTexturePixels +Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), - jlong pointer, jintArray jarr, jint w, jint h, jint stride) + jlong pointer, jintArray jarr, jint w, jint h, jint stride, jboolean repeat, + jint x, jint y) { struct cairographics2d *gr = NULL; jint *jpixels = NULL; @@ -180,15 +184,21 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setTexturePixels g_assert (gr->pattern_surface != NULL); gr->pattern = cairo_pattern_create_for_surface (gr->pattern_surface); g_assert (gr->pattern != NULL); - cairo_pattern_set_extend (gr->pattern, CAIRO_EXTEND_REPEAT); - cairo_set_source (gr->cr, gr->pattern); + + cairo_set_source_surface(gr->cr, gr->pattern_surface, x, y); + + if (repeat) + cairo_pattern_set_extend(cairo_get_source(gr->cr), CAIRO_EXTEND_REPEAT); + else + cairo_pattern_set_extend(cairo_get_source(gr->cr), CAIRO_EXTEND_NONE); } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jlong pointer, jintArray java_pixels, - jint w, jint h, jint stride, jdoubleArray java_matrix, jdouble alpha) + jint w, jint h, jint stride, jdoubleArray java_matrix, jdouble alpha, + jint interpolation) { jint *native_pixels = NULL; jdouble *native_matrix = NULL; @@ -215,8 +225,28 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels p = cairo_pattern_create_for_surface (surf); cairo_pattern_set_matrix (p, &mat); - if (gr->pattern) - cairo_pattern_set_filter (p, cairo_pattern_get_filter (gr->pattern)); + switch ((enum java_awt_rendering_hints_filter) interpolation) + { + case java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR: + cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST); + break; + case java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR: + cairo_pattern_set_filter (p, CAIRO_FILTER_BILINEAR); + break; + case java_awt_rendering_hints_VALUE_INTERPOLATION_BICUBIC: + cairo_pattern_set_filter (p, CAIRO_FILTER_GAUSSIAN); + break; + case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED: + cairo_pattern_set_filter (p, CAIRO_FILTER_FAST); + break; + case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT: + cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST); + break; + case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY: + cairo_pattern_set_filter (p, CAIRO_FILTER_BEST); + break; + } + cairo_set_source (gr->cr, p); if (alpha == 1.) cairo_paint (gr->cr); @@ -297,8 +327,6 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font); g_assert (pfont != NULL); - install_font_peer(gr->cr, pfont); - glyphs = g_malloc( sizeof(cairo_glyph_t) * n); g_assert (glyphs != NULL); @@ -324,6 +352,37 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont +(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)), + jlong pointer, jobject font) +{ + struct cairographics2d *gr = NULL; + struct peerfont *pfont = NULL; + FT_Face face = NULL; + cairo_font_face_t *ft = NULL; + + gr = JLONG_TO_PTR(struct cairographics2d, pointer); + g_assert (gr != NULL); + + pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font); + g_assert (pfont != NULL); + + face = pango_fc_font_lock_face( (PangoFcFont *)pfont->font ); + g_assert (face != NULL); + + ft = cairo_ft_font_face_create_for_ft_face (face, 0); + g_assert (ft != NULL); + + cairo_set_font_face (gr->cr, ft); + cairo_set_font_size (gr->cr, + (pango_font_description_get_size (pfont->desc) / + (double)PANGO_SCALE)); + + cairo_font_face_destroy (ft); + pango_fc_font_unlock_face((PangoFcFont *)pfont->font); +} + +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetOperator (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jlong pointer, jint op) @@ -679,37 +738,6 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip } JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter -(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), - jlong pointer, jint filter) -{ - struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer); - g_assert (gr != NULL); - - if (gr->pattern == NULL) - return; - - switch ((enum java_awt_rendering_hints_filter) filter) - { - case java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR: - cairo_pattern_set_filter (gr->pattern, CAIRO_FILTER_NEAREST); - break; - case java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR: - cairo_pattern_set_filter (gr->pattern, CAIRO_FILTER_BILINEAR); - break; - case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED: - cairo_pattern_set_filter (gr->pattern, CAIRO_FILTER_FAST); - break; - case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT: - cairo_pattern_set_filter (gr->pattern, CAIRO_FILTER_NEAREST); - break; - case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY: - cairo_pattern_set_filter (gr->pattern, CAIRO_FILTER_BEST); - break; - } -} - -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawLine (JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)), jlong pointer, jdouble x1, jdouble y1, jdouble x2, jdouble y2) @@ -749,45 +777,6 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFillRect cairo_fill(gr->cr); } - -/************************** FONT STUFF ****************************/ -static void -install_font_peer(cairo_t *cr, - struct peerfont *pfont) -{ - cairo_font_face_t *ft; - FT_Face face = NULL; - - g_assert(cr != NULL); - g_assert(pfont != NULL); - - if (pfont->graphics_resource == NULL) - { - face = pango_fc_font_lock_face( (PangoFcFont *)pfont->font ); - g_assert (face != NULL); - - ft = cairo_ft_font_face_create_for_ft_face (face, 0); - g_assert (ft != NULL); - - cairo_set_font_face (cr, ft); - /* cairo_font_face_destroy (ft);*/ - cairo_set_font_size (cr, - (pango_font_description_get_size (pfont->desc) / - (double)PANGO_SCALE)); - ft = cairo_get_font_face (cr); - pango_fc_font_unlock_face( (PangoFcFont *)pfont->font ); - pfont->graphics_resource = ft; - } - else - { - ft = (cairo_font_face_t *) pfont->graphics_resource; - cairo_set_font_face (cr, ft); - cairo_set_font_size (cr, - (pango_font_description_get_size (pfont->desc) / - (double)PANGO_SCALE)); - } -} - static void update_pattern_transform (struct cairographics2d *gr) { diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c index a25f764b4dd..350cd345a1d 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c @@ -181,7 +181,8 @@ Java_gnu_java_awt_peer_gtk_CairoSurface_nativeSetPixels JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), - jlong surfacePointer, jlong context, jdoubleArray java_matrix, double alpha) + jlong surfacePointer, jlong context, jdoubleArray java_matrix, double alpha, + jint interpolation) { struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, context); cairo_t *cr = gr->cr; @@ -205,6 +206,27 @@ Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface p = cairo_pattern_create_for_surface (surface); cairo_pattern_set_matrix (p, &mat); + switch ((enum java_awt_rendering_hints_filter) interpolation) + { + case java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR: + cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST); + break; + case java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR: + cairo_pattern_set_filter (p, CAIRO_FILTER_BILINEAR); + break; + case java_awt_rendering_hints_VALUE_INTERPOLATION_BICUBIC: + cairo_pattern_set_filter (p, CAIRO_FILTER_GAUSSIAN); + break; + case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED: + cairo_pattern_set_filter (p, CAIRO_FILTER_FAST); + break; + case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT: + cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST); + break; + case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY: + cairo_pattern_set_filter (p, CAIRO_FILTER_BEST); + break; + } cairo_set_source(cr, p); if (alpha == 1.0) diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c index ddaece1b278..0837ee13cdd 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c @@ -129,94 +129,48 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_releasePeerGraphicsResource JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics - (JNIEnv *env, jobject java_font, jdoubleArray java_metrics) +(JNIEnv *env, jobject java_font, jdoubleArray java_metrics) { + FT_Face face; struct peerfont *pfont = NULL; jdouble *native_metrics = NULL; - PangoFontMetrics *pango_metrics = NULL; - PangoLayout* layout = NULL; - PangoRectangle ink_rect; - PangoRectangle logical_rect; - PangoLayoutIter* iter = NULL; - int pango_ascent = 0; - int pango_descent = 0; - int pango_ink_ascent = 0; - int pango_ink_descent = 0; - int baseline = 0; - int java_ascent = 0; - int java_descent = 0; + short x_ppem; + short y_ppem; + short units_per_em; + double factorx; + double factory; gdk_threads_enter(); pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font); g_assert (pfont != NULL); - - pango_metrics - = pango_context_get_metrics (pfont->ctx, pfont->desc, - gtk_get_default_language ()); + face = pango_fc_font_lock_face ((PangoFcFont *)pfont->font); native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL); g_assert (native_metrics != NULL); - pango_ascent = PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics)); - pango_descent = PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics)); - - layout = pango_layout_new (pfont->ctx); - - /* Pango seems to produce ascent and descent values larger than - those that Sun produces for the same-sized font. It turns out - that an average of the "ink ascent" and "logical ascent" closely - approximates Sun's ascent values. Likewise for descent values. - This is expensive but we cache GdkFontMetrics so this should only - run once per Font instance. */ - pango_layout_set_text (layout, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL" - "MNOPQRSTUVWXYZ0123456789", -1); - pango_layout_set_font_description (layout, pfont->desc); - - pango_layout_get_pixel_extents (layout, &ink_rect, &logical_rect); - - iter = pango_layout_get_iter (layout); - - baseline = PANGO_PIXELS (pango_layout_iter_get_baseline (iter)); - - pango_ink_ascent = baseline - ink_rect.y; - pango_ink_descent = ink_rect.y + ink_rect.height - baseline; + x_ppem = face->size->metrics.x_ppem; + y_ppem = face->size->metrics.y_ppem; + units_per_em = face->units_per_EM; + factorx = units_per_em / x_ppem; + factory = units_per_em / y_ppem; + native_metrics[FONT_METRICS_ASCENT] = face->ascender / factory; + native_metrics[FONT_METRICS_MAX_ASCENT] = face->bbox.yMax / factory; + native_metrics[FONT_METRICS_DESCENT] = - face->descender / factory; + native_metrics[FONT_METRICS_MAX_DESCENT] = - face->bbox.yMin / factory; + native_metrics[FONT_METRICS_MAX_ADVANCE] = face->max_advance_width / factorx; + native_metrics[FONT_METRICS_HEIGHT] = face->height / factory; + native_metrics[FONT_METRICS_UNDERLINE_OFFSET] = + face->underline_position / factory; + native_metrics[FONT_METRICS_UNDERLINE_THICKNESS] = + face->underline_thickness / factory; - java_ascent = (pango_ascent + pango_ink_ascent) >> 1; - java_descent = (pango_descent + pango_ink_descent) >> 1; - - java_ascent = MAX(0, java_ascent); - java_descent = MAX(0, java_descent); - - pango_ascent = MAX(0, pango_ascent); - pango_descent = MAX(0, pango_descent); - - /* Pango monospaced fonts have smaller ascent metrics than Sun's so - we return the logical ascent for monospaced fonts. */ - if (!strcmp (pango_font_description_get_family (pfont->desc), - "Courier")) - native_metrics[FONT_METRICS_ASCENT] = pango_ascent; - else - native_metrics[FONT_METRICS_ASCENT] = java_ascent; - - native_metrics[FONT_METRICS_MAX_ASCENT] = pango_ascent; - - native_metrics[FONT_METRICS_DESCENT] = java_descent; - - native_metrics[FONT_METRICS_MAX_DESCENT] = pango_descent; - - native_metrics[FONT_METRICS_MAX_ADVANCE] - = PANGO_PIXELS (pango_font_metrics_get_approximate_char_width - (pango_metrics)); - (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0); - pango_font_metrics_unref (pango_metrics); - gdk_threads_leave(); } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c index c8d9fb5512c..b92d017a5d4 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c @@ -210,7 +210,8 @@ query_formats (JNIEnv *env, jclass clazz) jobject jformat; GSList *formats, *f; GdkPixbufFormat *format; - char **ch, *name; + gchar **ch, *name; + gint count; jclass formatClass; jmethodID addExtensionID; @@ -240,14 +241,16 @@ query_formats (JNIEnv *env, jclass clazz) string = (*env)->NewStringUTF(env, name); g_assert(string != NULL); - jformat = (*env)->CallStaticObjectMethod + jformat = (*env)->CallStaticObjectMethod (env, clazz, registerFormatID, string, (jboolean) gdk_pixbuf_format_is_writable(format)); (*env)->DeleteLocalRef(env, string); + g_free(name); g_assert(jformat != NULL); - + ch = gdk_pixbuf_format_get_extensions(format); + count = 0; while (*ch) { string = (*env)->NewStringUTF(env, *ch); @@ -255,9 +258,12 @@ query_formats (JNIEnv *env, jclass clazz) (*env)->CallVoidMethod (env, jformat, addExtensionID, string); (*env)->DeleteLocalRef(env, string); ++ch; + ++count; } - + g_strfreev(ch - count); + ch = gdk_pixbuf_format_get_mime_types(format); + count = 0; while (*ch) { string = (*env)->NewStringUTF(env, *ch); @@ -265,12 +271,13 @@ query_formats (JNIEnv *env, jclass clazz) (*env)->CallVoidMethod (env, jformat, addMimeTypeID, string); (*env)->DeleteLocalRef(env, string); ++ch; + ++count; } - + g_strfreev(ch - count); (*env)->DeleteLocalRef(env, jformat); } - - g_slist_free(formats); + + g_slist_free(formats); } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c index 6a9066cbe53..1099287e2ff 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c @@ -353,7 +353,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds /* ...and the label's size request. */ gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (child)), width, height); - if (widget->parent != NULL) + if (widget->parent != NULL && GTK_IS_FIXED (widget->parent)) gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y); } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c index 39524eea02c..d2025bb701f 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c @@ -659,16 +659,16 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds width = width < 0 ? 0 : width; height = height < 0 ? 0 : height; - if (GTK_IS_VIEWPORT (widget->parent)) - gtk_widget_set_size_request (widget, width, height); - else + if (!(width == 0 && height == 0)) { - if (!(width == 0 && height == 0)) - { - gtk_widget_set_size_request (widget, width, height); - if (widget->parent != NULL) - gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y); - } + gtk_widget_set_size_request (widget, width, height); + /* The GTK_IS_FIXED check here prevents gtk_fixed_move being + called when our parent is a GtkScrolledWindow. In that + case though, moving the child widget is invalid since a + ScrollPane only has one child and that child is always + located at (0, 0) in viewport coordinates. */ + if (widget->parent != NULL && GTK_IS_FIXED (widget->parent)) + gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y); } gdk_threads_leave (); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c index 76696431424..144ca0e8a95 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c @@ -188,3 +188,47 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImage gdk_threads_leave (); } + +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkFramePeer_maximize +(JNIEnv *env, jobject obj) +{ + void *ptr; + gdk_threads_enter (); + ptr = NSA_GET_PTR (env, obj); + gtk_window_maximize (GTK_WINDOW (ptr)); + gdk_threads_leave (); +} + +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkFramePeer_unmaximize +(JNIEnv *env, jobject obj) +{ + void *ptr; + gdk_threads_enter (); + ptr = NSA_GET_PTR (env, obj); + gtk_window_unmaximize (GTK_WINDOW (ptr)); + gdk_threads_leave (); +} + +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkFramePeer_iconify +(JNIEnv *env, jobject obj) +{ + void *ptr; + gdk_threads_enter (); + ptr = NSA_GET_PTR (env, obj); + gtk_window_iconify (GTK_WINDOW (ptr)); + gdk_threads_leave (); +} + +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkFramePeer_deiconify +(JNIEnv *env, jobject obj) +{ + void *ptr; + gdk_threads_enter (); + ptr = NSA_GET_PTR (env, obj); + gtk_window_deiconify (GTK_WINDOW (ptr)); + gdk_threads_leave (); +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c index 77021ceec0a..13473a9a8db 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c @@ -213,7 +213,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeBounds gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (widget)), width, height); - if (widget->parent != NULL) + if (widget->parent != NULL && GTK_IS_FIXED (widget->parent)) gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y); } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c index 8949fa92762..0f868eaed6a 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c @@ -77,8 +77,10 @@ struct state_table *cp_gtk_native_state_table; struct state_table *cp_gtk_native_global_ref_table; static jclass gtkgenericpeer; +static jclass gtktoolkit; static JavaVM *java_vm; static jmethodID printCurrentThreadID; +static jmethodID setRunningID; union env_union { @@ -99,7 +101,9 @@ GtkWindowGroup *cp_gtk_global_window_group; double cp_gtk_dpi_conversion_factor; static void init_glib_threads(JNIEnv *, jint); - +static gboolean post_set_running_flag (gpointer); +static gboolean set_running_flag (gpointer); +static gboolean clear_running_flag (gpointer); static void init_dpi_conversion_factor (void); static void dpi_changed_cb (GtkSettings *settings, GParamSpec *pspec); @@ -199,6 +203,10 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env, cp_gtk_global_window_group = gtk_window_group_new (); init_dpi_conversion_factor (); + + gtktoolkit = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkMainThread"); + setRunningID = (*env)->GetStaticMethodID (env, gtktoolkit, + "setRunning", "(Z)V"); } @@ -324,11 +332,25 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMain { gdk_threads_enter (); + gtk_init_add (post_set_running_flag, NULL); + gtk_quit_add (gtk_main_level (), clear_running_flag, NULL); + gtk_main (); gdk_threads_leave (); } +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkQuit +(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused))) +{ + gdk_threads_enter (); + + gtk_main_quit (); + + gdk_threads_leave (); +} + static jint gdk_color_to_java_color (GdkColor color); @@ -491,3 +513,28 @@ gdk_color_to_java_color (GdkColor gdk_color) return (jint) (0xff000000 | (red << 16) | (green << 8) | blue); } + +static gboolean +post_set_running_flag (gpointer data __attribute__((unused))) +{ + g_idle_add (set_running_flag, NULL); + return FALSE; +} + +static gboolean +set_running_flag (gpointer data __attribute__((unused))) +{ + (*cp_gtk_gdk_env ())->CallStaticVoidMethod (cp_gtk_gdk_env (), + gtktoolkit, + setRunningID, TRUE); + return FALSE; +} + +static gboolean +clear_running_flag (gpointer data __attribute__((unused))) +{ + (*cp_gtk_gdk_env ())->CallStaticVoidMethod (cp_gtk_gdk_env (), + gtktoolkit, + setRunningID, FALSE); + return FALSE; +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c index e391d64ecdd..3fb5331a23e 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c @@ -88,7 +88,7 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_init (JNIEnv *env, */ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkVolatileImage_destroy -(JNIEnv *env __attribute__((unused)), jobject obj __attribute((unused)), +(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jlong pointer) { GdkPixmap* pixmap = JLONG_TO_PTR(GdkPixmap, pointer); @@ -110,10 +110,12 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels /* jint *pixeldata, *jpixdata; */ jint *jpixdata; GdkPixmap *pixmap; + GdkPixbuf *pixbuf; jintArray jpixels; int width, height, depth, size; jclass cls; jfieldID field; + guchar *pixels; cls = (*env)->GetObjectClass (env, obj); field = (*env)->GetFieldID (env, cls, "width", "I"); @@ -131,11 +133,19 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels /* get depth in bytes */ depth = gdk_drawable_get_depth( pixmap ) >> 3; - size = width * height * 4; + size = width * height; jpixels = (*env)->NewIntArray ( env, size ); jpixdata = (*env)->GetIntArrayElements (env, jpixels, NULL); - /* memcpy (jpixdata, pixeldata, size * sizeof( jint )); */ - + + pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, TRUE, 8, width, height ); + gdk_pixbuf_get_from_drawable( pixbuf, pixmap, NULL, 0, 0, 0, 0, width, height ); + + if (pixbuf != NULL) + { + pixels = gdk_pixbuf_get_pixels(pixbuf); + memcpy (jpixdata, pixels, size * sizeof(jint)); + } + (*env)->ReleaseIntArrayElements (env, jpixels, jpixdata, 0); gdk_threads_leave(); @@ -148,7 +158,7 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels */ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeCopyArea -(JNIEnv *env __attribute__((unused)), jobject obj __attribute((unused)), +(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jlong pointer, jint x, jint y, jint w, jint h, jint dx, jint dy) { GdkPixbuf *pixbuf; @@ -169,7 +179,7 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeCopyArea JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeDrawVolatile -(JNIEnv *env __attribute__((unused)), jobject obj __attribute((unused)), +(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jlong pointer, jlong srcptr, jint x, jint y, jint w, jint h) { GdkPixmap *dst, *src; diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c index 3f288af5ce1..aa70b9d2dca 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c @@ -44,7 +44,6 @@ exception statement from your version. */ #include #include -#define AWT_WINDOW_OPENED 200 #define AWT_WINDOW_CLOSING 201 #define AWT_WINDOW_CLOSED 202 #define AWT_WINDOW_ICONIFIED 203 @@ -55,6 +54,10 @@ exception statement from your version. */ #define AWT_WINDOW_LOST_FOCUS 208 #define AWT_WINDOW_STATE_CHANGED 209 +#define AWT_FRAME_NORMAL 0 +#define AWT_FRAME_ICONIFIED 1 +#define AWT_FRAME_MAXIMIZED_BOTH 6 + /* Virtual Keys */ /* This list should be kept in the same order as the VK_ field declarations in KeyEvent.java. */ @@ -1046,7 +1049,6 @@ static gboolean window_delete_cb (GtkWidget *widget, GdkEvent *event, jobject peer); static void window_destroy_cb (GtkWidget *widget, GdkEvent *event, jobject peer); -static void window_show_cb (GtkWidget *widget, jobject peer); static void window_focus_state_change_cb (GtkWidget *widget, GParamSpec *pspec, jobject peer); @@ -1322,9 +1324,6 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals g_signal_connect (G_OBJECT (ptr), "destroy-event", G_CALLBACK (window_destroy_cb), *gref); - g_signal_connect (G_OBJECT (ptr), "show", - G_CALLBACK (window_show_cb), *gref); - g_signal_connect (G_OBJECT (ptr), "notify::has-toplevel-focus", G_CALLBACK (window_focus_state_change_cb), *gref); @@ -1661,16 +1660,6 @@ window_destroy_cb (GtkWidget *widget __attribute__((unused)), } static void -window_show_cb (GtkWidget *widget __attribute__((unused)), - jobject peer) -{ - (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, - postWindowEventID, - (jint) AWT_WINDOW_OPENED, - (jobject) NULL, (jint) 0); -} - -static void window_focus_state_change_cb (GtkWidget *widget, GParamSpec *pspec __attribute__((unused)), jobject peer) @@ -1718,41 +1707,24 @@ window_window_state_cb (GtkWidget *widget __attribute__((unused)), GdkEvent *event, jobject peer) { - jint new_state; - - /* Handle WINDOW_ICONIFIED and WINDOW_DEICONIFIED events. */ - if (event->window_state.changed_mask & GDK_WINDOW_STATE_ICONIFIED) - { - /* We've either been iconified or deiconified. */ - if (event->window_state.new_window_state & GDK_WINDOW_STATE_ICONIFIED) - { - /* We've been iconified. */ - (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, - postWindowEventID, - (jint) AWT_WINDOW_ICONIFIED, - (jobject) NULL, (jint) 0); - } - else - { - /* We've been deiconified. */ - (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, - postWindowEventID, - (jint) AWT_WINDOW_DEICONIFIED, - (jobject) NULL, (jint) 0); - } - } - - /* Post a WINDOW_STATE_CHANGED event, passing the new frame state to - GtkWindowPeer. */ - new_state = AWT_FRAME_STATE_NORMAL; - - if (event->window_state.new_window_state & GDK_WINDOW_STATE_ICONIFIED) - new_state |= AWT_FRAME_STATE_ICONIFIED; + jint new_java_state = 0; + /* Put together the new state and let the java side figure out what + * to post */ + GdkWindowState new_state = event->window_state.new_window_state; + /* The window can be either iconfified, maximized, iconified + maximized + * or normal. */ + if ((new_state & GDK_WINDOW_STATE_ICONIFIED) != 0) + new_java_state |= AWT_FRAME_ICONIFIED; + if ((new_state & GDK_WINDOW_STATE_MAXIMIZED) != 0) + new_java_state |= AWT_FRAME_MAXIMIZED_BOTH; + if ((new_state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_ICONIFIED)) + == 0) + new_java_state = AWT_FRAME_NORMAL; (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, postWindowEventID, (jint) AWT_WINDOW_STATE_CHANGED, - (jobject) NULL, new_state); + (jobject) NULL, new_java_state); return TRUE; } diff --git a/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c b/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c index 763db8d1e8b..2348a63fb04 100644 --- a/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c +++ b/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c @@ -122,6 +122,41 @@ classpath_jawt_get_visualID (JNIEnv* env, jobject canvas) /* Does not require locking: meant to be called after the drawing surface is locked. */ +int +classpath_jawt_get_depth (JNIEnv* env, jobject canvas) +{ + GtkWidget *widget; + GdkVisual *visual; + void *ptr; + jobject peer; + jclass class_id; + jmethodID method_id; + + class_id = (*env)->GetObjectClass (env, canvas); + + method_id = (*env)->GetMethodID (env, class_id, + "getPeer", + "()Ljava/awt/peer/ComponentPeer;"); + + peer = (*env)->CallObjectMethod (env, canvas, method_id); + + ptr = NSA_GET_PTR (env, peer); + + widget = GTK_WIDGET (ptr); + + if (GTK_WIDGET_REALIZED (widget)) + { + visual = gtk_widget_get_visual (widget); + g_assert (visual != NULL); + + return visual->depth; + } + else + return (VisualID) NULL; +} + +/* Does not require locking: meant to be called after the drawing + surface is locked. */ Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas) { diff --git a/libjava/classpath/native/jni/java-io/.cvsignore b/libjava/classpath/native/jni/java-io/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/java-io/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/java-io/Makefile.am b/libjava/classpath/native/jni/java-io/Makefile.am index ac7cf287247..637c74c61f3 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.am +++ b/libjava/classpath/native/jni/java-io/Makefile.am @@ -4,7 +4,8 @@ libjavaio_la_SOURCES = java_io_VMFile.c \ java_io_VMObjectInputStream.c \ java_io_VMObjectStreamClass.c -libjavaio_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo +libjavaio_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in index bf8d17a71a7..88f39846aa9 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.in +++ b/libjava/classpath/native/jni/java-io/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -63,7 +65,8 @@ am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libjavaio_la_DEPENDENCIES = \ - $(top_builddir)/native/jni/classpath/jcl.lo + $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la am_libjavaio_la_OBJECTS = java_io_VMFile.lo \ java_io_VMObjectInputStream.lo java_io_VMObjectStreamClass.lo libjavaio_la_OBJECTS = $(am_libjavaio_la_OBJECTS) @@ -185,6 +188,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -306,14 +311,15 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libjavaio.la libjavaio_la_SOURCES = java_io_VMFile.c \ java_io_VMObjectInputStream.c \ java_io_VMObjectStreamClass.c -libjavaio_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo +libjavaio_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la + AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ diff --git a/libjava/classpath/native/jni/java-io/java_io_VMFile.c b/libjava/classpath/native/jni/java-io/java_io_VMFile.c index 7a3fdaf43a8..de1320b0cab 100644 --- a/libjava/classpath/native/jni/java-io/java_io_VMFile.c +++ b/libjava/classpath/native/jni/java-io/java_io_VMFile.c @@ -38,17 +38,20 @@ exception statement from your version. */ /* do not move; needed here because of some macro definitions */ #include +#include #include #include +#if defined (HAVE_LSTAT) && defined (HAVE_READLINK) +#include +#include +#include +#endif + #include #include - -#include "target_native.h" -#ifndef WITHOUT_FILESYSTEM -#include "target_native_file.h" -#endif -#include "target_native_math_int.h" +#include "cpio.h" +#include "cpnative.h" #include "java_io_VMFile.h" @@ -75,26 +78,25 @@ Java_java_io_VMFile_create (JNIEnv * env, filename = JCL_jstring_to_cstring (env, name); if (filename == NULL) { - return (0); + return 0; } - TARGET_NATIVE_FILE_OPEN_CREATE (filename, fd, result); - if (result != TARGET_NATIVE_OK) + result = cpio_openFile (filename, &fd, CPFILE_FLAG_CREATE|CPFILE_FLAG_WRITE, CPFILE_PERMISSION_NORMAL); + if (result != CPNATIVE_OK) { - /* XXX ??? NYI */ - if (errno != EEXIST) + if (result != EEXIST) JCL_ThrowException (env, "java/io/IOException", - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); JCL_free_cstring (env, name, filename); - return (0); + return 0; } - TARGET_NATIVE_FILE_CLOSE (fd, result); + cpio_closeFile (fd); JCL_free_cstring (env, name, filename); - return (1); + return 1; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -123,22 +125,20 @@ Java_java_io_VMFile_canRead (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } /* The lazy man's way out. We actually do open the file for reading briefly to verify it can be done */ - TARGET_NATIVE_FILE_OPEN_READ (filename, fd, result); + result = cpio_openFile (filename, &fd, CPFILE_FLAG_READ, 0); (*env)->ReleaseStringUTFChars (env, name, filename); - if (result != TARGET_NATIVE_OK) - { - return (0); - } - TARGET_NATIVE_FILE_CLOSE (fd, result); + if (result != CPNATIVE_OK) + return 0; + cpio_closeFile (fd); - return (1); + return 1; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -167,22 +167,22 @@ Java_java_io_VMFile_canWrite (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } /* The lazy man's way out. We actually do open the file for writing briefly to verify it can be done */ - TARGET_NATIVE_FILE_OPEN_READWRITE (filename, fd, result); + result = cpio_openFile (filename, &fd, CPFILE_FLAG_READWRITE, 0); (*env)->ReleaseStringUTFChars (env, name, filename); - if (result != TARGET_NATIVE_OK) + if (result != CPNATIVE_OK) { - return (0); + return 0; } - TARGET_NATIVE_FILE_CLOSE (fd, result); + cpio_closeFile (fd); - return (1); + return 1; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -210,15 +210,15 @@ Java_java_io_VMFile_setReadOnly (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } - TARGET_NATIVE_FILE_SET_MODE_READONLY (filename, result); + result = cpio_setFileReadonly (filename); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return result == CPNATIVE_OK ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -246,15 +246,15 @@ Java_java_io_VMFile_exists (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } - TARGET_NATIVE_FILE_EXISTS (filename, result); + result = cpio_isFileExists (filename); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return result == CPNATIVE_OK ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -277,21 +277,22 @@ Java_java_io_VMFile_isFile (JNIEnv * env, #ifndef WITHOUT_FILESYSTEM const char *filename; int result; + jint entryType; /* Don't use the JCL convert function because it throws an exception on failure */ filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } - TARGET_NATIVE_FILE_IS_FILE (filename, result); + result = cpio_checkType (filename, &entryType); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return result == CPNATIVE_OK && entryType == CPFILE_FILE ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -313,21 +314,22 @@ Java_java_io_VMFile_isDirectory (JNIEnv * env, #ifndef WITHOUT_FILESYSTEM const char *filename; int result; + jint entryType; /* Don't use the JCL convert function because it throws an exception on failure */ filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } - - TARGET_NATIVE_FILE_IS_DIRECTORY (filename, result); + + result = cpio_checkType (filename, &entryType); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return result == CPNATIVE_OK && entryType == CPFILE_DIRECTORY ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -356,29 +358,26 @@ Java_java_io_VMFile_length (JNIEnv * env, on failure */ filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) - { - return (TARGET_NATIVE_MATH_INT_INT64_CONST_0); - } + return 0; /* open file for reading, get size and close file */ - TARGET_NATIVE_FILE_OPEN_READ (filename, tmpfd, result); - if (result != TARGET_NATIVE_OK) - { - return (TARGET_NATIVE_MATH_INT_INT64_CONST_0); - } - TARGET_NATIVE_FILE_SIZE (tmpfd, length, result); - if (result != TARGET_NATIVE_OK) + result = cpio_openFile (filename, &tmpfd, CPFILE_FLAG_READ, 0); + if (result != CPNATIVE_OK) + return 0; + + result = cpio_getFileSize (tmpfd, &length); + if (result != CPNATIVE_OK) { - TARGET_NATIVE_FILE_CLOSE (tmpfd, result); - return (TARGET_NATIVE_MATH_INT_INT64_CONST_0); + cpio_closeFile (tmpfd); + return 0; } - TARGET_NATIVE_FILE_CLOSE (tmpfd, result); + + result = cpio_closeFile (tmpfd); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == - TARGET_NATIVE_OK) ? length : TARGET_NATIVE_MATH_INT_INT64_CONST_0); + return result == CPNATIVE_OK ? length : 0; #else /* not WITHOUT_FILESYSTEM */ - return (TARGET_NATIVE_MATH_INT_INT64_CONST_0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -407,16 +406,15 @@ Java_java_io_VMFile_lastModified (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (TARGET_NATIVE_MATH_INT_INT64_CONST_0); + return 0; } - TARGET_NATIVE_FILE_GET_LAST_MODIFIED (filename, mtime, result); + result = cpio_getModificationTime (filename, &mtime); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == - TARGET_NATIVE_OK) ? mtime : TARGET_NATIVE_MATH_INT_INT64_CONST_0); + return result == CPNATIVE_OK ? mtime : 0; #else /* not WITHOUT_FILESYSTEM */ - return (TARGET_NATIVE_MATH_INT_INT64_CONST_0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -444,15 +442,15 @@ Java_java_io_VMFile_setLastModified (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } - TARGET_NATIVE_FILE_SET_LAST_MODIFIED (filename, newtime, result); + result = cpio_setModificationTime (filename, newtime); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return result == CPNATIVE_OK ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -481,15 +479,15 @@ Java_java_io_VMFile_delete (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return (0); + return 0; } - TARGET_NATIVE_FILE_DELETE (filename, result); + result = cpio_removeFile (filename); (*env)->ReleaseStringUTFChars (env, name, filename); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return result == CPNATIVE_OK ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -517,15 +515,15 @@ Java_java_io_VMFile_mkdir (JNIEnv * env, pathname = (*env)->GetStringUTFChars (env, name, 0); if (pathname == NULL) { - return (0); + return 0; } - TARGET_NATIVE_FILE_MAKE_DIR (pathname, result); + result = cpio_mkdir (pathname); (*env)->ReleaseStringUTFChars (env, name, pathname); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return (result == CPNATIVE_OK) ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -553,23 +551,23 @@ Java_java_io_VMFile_renameTo (JNIEnv * env, old_filename = (*env)->GetStringUTFChars (env, t, 0); if (old_filename == NULL) { - return (0); + return 0; } new_filename = (*env)->GetStringUTFChars (env, d, 0); if (new_filename == NULL) { (*env)->ReleaseStringUTFChars (env, t, old_filename); - return (0); + return 0; } - TARGET_NATIVE_FILE_RENAME (old_filename, new_filename, result); + result = cpio_rename (old_filename, new_filename); (*env)->ReleaseStringUTFChars (env, d, new_filename); (*env)->ReleaseStringUTFChars (env, t, old_filename); - return ((result == TARGET_NATIVE_OK) ? 1 : 0); + return (result == CPNATIVE_OK) ? 1 : 0; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } @@ -595,7 +593,7 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj int result; char **filelist; void *handle; - const char *filename; + char *filename = (char *) JCL_malloc (env, FILENAME_MAX); unsigned long int filelist_count, max_filelist_count; char **tmp_filelist; jclass str_clazz; @@ -608,32 +606,32 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj dirname = (*env)->GetStringUTFChars (env, name, 0); if (dirname == NULL) { - return (0); + return 0; } /* open directory for reading */ - TARGET_NATIVE_FILE_OPEN_DIR (dirname, handle, result); + result = cpio_openDir (dirname, &handle); (*env)->ReleaseStringUTFChars (env, name, dirname); - if (result != TARGET_NATIVE_OK) + if (result != CPNATIVE_OK) { - return (0); + return 0; } /* allocate filelist */ filelist = (char **) JCL_malloc (env, sizeof (char *) * REALLOC_SIZE); if (filelist == NULL) { - TARGET_NATIVE_FILE_CLOSE_DIR (handle, result); - return (0); + result = cpio_closeDir (handle); + return 0; } filelist_count = 0; max_filelist_count = REALLOC_SIZE; /* read the files from the directory */ - TARGET_NATIVE_FILE_READ_DIR (handle, filename, result); - while (result == TARGET_NATIVE_OK) + result = cpio_readDir (handle, filename); + while (result == CPNATIVE_OK) { if ((strcmp (filename, ".") != 0) && (strcmp (filename, "..") != 0)) { @@ -652,8 +650,8 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj JCL_free (env, filelist[i]); } JCL_free (env, filelist); - TARGET_NATIVE_FILE_CLOSE_DIR (handle, result); - return (0); + result = cpio_closeDir (handle); + return 0; } filelist = tmp_filelist; max_filelist_count += REALLOC_SIZE; @@ -668,11 +666,13 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj } /* read next directory entry */ - TARGET_NATIVE_FILE_READ_DIR (handle, filename, result); + result = cpio_readDir (handle, filename); } + JCL_free (env, filename); + /* close directory */ - TARGET_NATIVE_FILE_CLOSE_DIR (handle, result); + result = cpio_closeDir (handle); /* put the list of files into a Java String array and return it */ str_clazz = (*env)->FindClass (env, "java/lang/String"); @@ -683,7 +683,7 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj JCL_free (env, filelist[i]); } JCL_free (env, filelist); - return (0); + return 0; } filearray = (*env)->NewObjectArray (env, filelist_count, str_clazz, 0); if (filearray == NULL) @@ -693,8 +693,11 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj JCL_free (env, filelist[i]); } JCL_free (env, filelist); - return (0); + return 0; } + + (*env)->DeleteLocalRef (env, str_clazz); + for (i = 0; i < filelist_count; i++) { /* create new string */ @@ -708,7 +711,7 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj JCL_free (env, filelist[i]); } JCL_free (env, filelist); - return (0); + return 0; } /* save into array */ @@ -725,9 +728,9 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj } JCL_free (env, filelist); - return (filearray); + return filearray; #else /* not WITHOUT_FILESYSTEM */ - return (0); + return 0; #endif /* not WITHOUT_FILESYSTEM */ } diff --git a/libjava/classpath/native/jni/java-lang/.cvsignore b/libjava/classpath/native/jni/java-lang/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/java-lang/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/java-lang/Makefile.am b/libjava/classpath/native/jni/java-lang/Makefile.am index 06deb62b810..366d72e4c12 100644 --- a/libjava/classpath/native/jni/java-lang/Makefile.am +++ b/libjava/classpath/native/jni/java-lang/Makefile.am @@ -7,7 +7,8 @@ libjavalang_la_SOURCES = java_lang_VMSystem.c \ java_lang_VMProcess.c libjavalang_la_LIBADD = $(wildcard $(top_builddir)/native/fdlibm/*.lo) \ - $(top_builddir)/native/jni/classpath/jcl.lo + $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la libjavalangreflect_la_SOURCES = java_lang_reflect_VMArray.c diff --git a/libjava/classpath/native/jni/java-lang/Makefile.in b/libjava/classpath/native/jni/java-lang/Makefile.in index c8f3dabb291..4a99863f30b 100644 --- a/libjava/classpath/native/jni/java-lang/Makefile.in +++ b/libjava/classpath/native/jni/java-lang/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -64,7 +66,8 @@ nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libjavalang_la_DEPENDENCIES = $(wildcard \ $(top_builddir)/native/fdlibm/*.lo) \ - $(top_builddir)/native/jni/classpath/jcl.lo + $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la am_libjavalang_la_OBJECTS = java_lang_VMSystem.lo java_lang_VMFloat.lo \ java_lang_VMDouble.lo java_lang_VMMath.lo \ java_lang_VMProcess.lo @@ -191,6 +194,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -312,7 +317,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la libjavalang_la_SOURCES = java_lang_VMSystem.c \ @@ -322,7 +326,8 @@ libjavalang_la_SOURCES = java_lang_VMSystem.c \ java_lang_VMProcess.c libjavalang_la_LIBADD = $(wildcard $(top_builddir)/native/fdlibm/*.lo) \ - $(top_builddir)/native/jni/classpath/jcl.lo + $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la libjavalangreflect_la_SOURCES = java_lang_reflect_VMArray.c AM_LDFLAGS = @CLASSPATH_MODULE@ diff --git a/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c b/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c index 8435c3fdba7..2ee1f31466b 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c @@ -37,6 +37,7 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ +#include #include #include #include @@ -121,17 +122,8 @@ Java_java_lang_VMDouble_doubleToLongBits { jvalue val; jlong e, f; - val.d = doubleValue; - -#if defined(__IEEE_BYTES_LITTLE_ENDIAN) - /* On little endian ARM processors when using FPA, word order of - doubles is still big endian. So take that into account here. When - using VFP, word order of doubles follows byte order. */ - -#define SWAP_DOUBLE(a) (((a) << 32) | (((a) >> 32) & 0x00000000ffffffff)) - val.j = SWAP_DOUBLE(val.j); -#endif + val.d = doubleValue; e = val.j & 0x7ff0000000000000LL; f = val.j & 0x000fffffffffffffLL; @@ -153,11 +145,8 @@ Java_java_lang_VMDouble_doubleToRawLongBits jclass cls __attribute__ ((__unused__)), jdouble doubleValue) { jvalue val; - val.d = doubleValue; -#if defined(__IEEE_BYTES_LITTLE_ENDIAN) - val.j = SWAP_DOUBLE(val.j); -#endif + val.d = doubleValue; return val.j; } @@ -173,52 +162,139 @@ Java_java_lang_VMDouble_longBitsToDouble jclass cls __attribute__ ((__unused__)), jlong longValue) { jvalue val; - val.j = longValue; -#if defined(__IEEE_BYTES_LITTLE_ENDIAN) - val.j = SWAP_DOUBLE(val.j); -#endif + val.j = longValue; return val.d; } -/* - * Class: java_lang_VMDouble - * Method: toString - * Signature: (DZ)Ljava/lang/String; +/** + * Parse a double from a char array. */ -JNIEXPORT jstring JNICALL -Java_java_lang_VMDouble_toString - (JNIEnv * env, jclass cls __attribute__ ((__unused__)), jdouble value, jboolean isFloat) +static jdouble +parseDoubleFromChars(JNIEnv * env, const char * buf) { - char buffer[50], result[50]; - int decpt, sign; - char *s, *d; - int i; + char *endptr; + jdouble val = 0.0; + const char *p = buf, *end, *last_non_ws, *temp; + int ok = 1; #ifdef DEBUG - fprintf (stderr, "java.lang.VMDouble.toString (%g)\n", value); + fprintf (stderr, "java.lang.VMDouble.parseDouble (%s)\n", buf); #endif - if ((*env)->CallStaticBooleanMethod (env, clsDouble, isNaNID, value)) - return (*env)->NewStringUTF (env, "NaN"); + /* Trim the buffer, similar to String.trim(). First the leading + characters. */ + while (*p && *p <= ' ') + ++p; - if (value == POSITIVE_INFINITY) - return (*env)->NewStringUTF (env, "Infinity"); + /* Find the last non-whitespace character. This method is safe + even with multi-byte UTF-8 characters. */ + end = p; + last_non_ws = NULL; + while (*end) + { + if (*end > ' ') + last_non_ws = end; + ++end; + } - if (value == NEGATIVE_INFINITY) - return (*env)->NewStringUTF (env, "-Infinity"); + if (last_non_ws == NULL) + last_non_ws = p + strlen (p); + else + { + /* Skip past the last non-whitespace character. */ + ++last_non_ws; + } - _dtoa (value, 0, 20, &decpt, &sign, NULL, buffer, (int) isFloat); + /* Check for infinity and NaN */ + temp = p; + if (temp[0] == '+' || temp[0] == '-') + temp++; + if (strncmp ("Infinity", temp, (size_t) 8) == 0) + { + if (p[0] == '-') + return NEGATIVE_INFINITY; + return POSITIVE_INFINITY; + } + if (strncmp ("NaN", temp, (size_t) 3) == 0) + return NaN; + + /* Skip a trailing `f' or `d'. */ + if (last_non_ws > p + && (last_non_ws[-1] == 'f' + || last_non_ws[-1] == 'F' + || last_non_ws[-1] == 'd' || last_non_ws[-1] == 'D')) + --last_non_ws; + + if (last_non_ws > p) + { + struct _Jv_reent reent; + memset (&reent, 0, sizeof reent); + + val = _strtod_r (&reent, p, &endptr); + +#ifdef DEBUG + fprintf (stderr, "java.lang.VMDouble.parseDouble val = %g\n", val); + fprintf (stderr, "java.lang.VMDouble.parseDouble %i != %i ???\n", + endptr, last_non_ws); +#endif + if (endptr != last_non_ws) + ok = 0; + } + else + ok = 0; + + if (!ok) + { + val = 0.0; + JCL_ThrowException (env, + "java/lang/NumberFormatException", + "unable to parse double"); + } + + return val; +} + +#define MAXIMAL_DECIMAL_STRING_LENGTH 64 + +/** + * Use _dtoa to print a double or a float as a string with the given precision. + */ +static void +dtoa_toString +(char * buffer, jdouble value, jint precision, jboolean isFloat) +{ + const int DTOA_MODE = 2; + char result[MAXIMAL_DECIMAL_STRING_LENGTH]; + int decpt, sign; + char *s, *d; + int i; + + /* use mode 2 to get at the digit stream, all other modes are useless + * + * since mode 2 only gives us as many digits as we need in precision, we need to + * add the digits in front of the floating point to it, if there is more than one + * to be printed. That's the case if the value is going to be printed using the + * normal notation, i.e. if it is 0 or >= 1.0e-3 and < 1.0e7. + */ + int digits_in_front_of_floating_point = ceil(log10(value)); + + if (digits_in_front_of_floating_point > 1 && digits_in_front_of_floating_point < 7) + precision += digits_in_front_of_floating_point; + + _dtoa (value, DTOA_MODE, precision, &decpt, &sign, NULL, buffer, (int) isFloat); value = fabs (value); s = buffer; d = result; + /* Handle negative sign */ if (sign) *d++ = '-'; + /* Handle normal represenation */ if ((value >= 1e-3 && value < 1e7) || (value == 0)) { if (decpt <= 0) @@ -248,46 +324,111 @@ Java_java_lang_VMDouble_toString *d = 0; - return (*env)->NewStringUTF (env, result); } + /* Handle scientific representaiton */ + else + { + *d++ = *s++; + decpt--; + *d++ = '.'; + + if (*s == 0) + *d++ = '0'; - *d++ = *s++; - decpt--; - *d++ = '.'; + while (*s) + *d++ = *s++; - if (*s == 0) - *d++ = '0'; + *d++ = 'E'; - while (*s) - *d++ = *s++; + if (decpt < 0) + { + *d++ = '-'; + decpt = -decpt; + } - *d++ = 'E'; + { + char exp[4]; + char *e = exp + sizeof exp; + + *--e = 0; + do + { + *--e = '0' + decpt % 10; + decpt /= 10; + } + while (decpt > 0); + + while (*e) + *d++ = *e++; + } - if (decpt < 0) - { - *d++ = '-'; - decpt = -decpt; + *d = 0; } - { - char exp[4]; - char *e = exp + sizeof exp; + /* copy the result into the buffer */ + memcpy(buffer, result, MAXIMAL_DECIMAL_STRING_LENGTH); +} - *--e = 0; - do - { - *--e = '0' + decpt % 10; - decpt /= 10; - } - while (decpt > 0); +/* + * Class: java_lang_VMDouble + * Method: toString + * Signature: (DZ)Ljava/lang/String; + */ +JNIEXPORT jstring JNICALL +Java_java_lang_VMDouble_toString + (JNIEnv * env, jclass cls __attribute__ ((__unused__)), jdouble value, jboolean isFloat) +{ + char buf[MAXIMAL_DECIMAL_STRING_LENGTH]; + const jint MAXIMAL_FLOAT_PRECISION = 10; + const jint MAXIMAL_DOUBLE_PRECISION = 19; - while (*e) - *d++ = *e++; - } + jint maximal_precision; + jint least_necessary_precision = 2; + jboolean parsed_value_unequal; + + if ((*env)->CallStaticBooleanMethod (env, clsDouble, isNaNID, value)) + return (*env)->NewStringUTF (env, "NaN"); + + if (value == POSITIVE_INFINITY) + return (*env)->NewStringUTF (env, "Infinity"); + + if (value == NEGATIVE_INFINITY) + return (*env)->NewStringUTF (env, "-Infinity"); + + if (isFloat) + maximal_precision = MAXIMAL_FLOAT_PRECISION; + else + maximal_precision = MAXIMAL_DOUBLE_PRECISION; + + /* Try to find the 'good enough' precision, + * that results in enough digits being printed to be able to + * convert the number back into the original double, but no + * further digits. + */ + + do { + jdouble parsed_value; - *d = 0; + assert(least_necessary_precision <= maximal_precision); - return (*env)->NewStringUTF (env, result); + /* Convert the value to a string and back. */ + dtoa_toString(buf, value, least_necessary_precision, isFloat); + + parsed_value = parseDoubleFromChars(env, buf); + + /* Check whether the original value, and the value after conversion match. */ + /* We need to cast floats to float to make sure that our ineqality check works + * well for floats as well as for doubles. + */ + parsed_value_unequal = ( isFloat ? + (float) parsed_value != (float) value : + parsed_value != value); + + least_necessary_precision++; + } + while (parsed_value_unequal); + + return (*env)->NewStringUTF (env, buf); } /* @@ -301,7 +442,6 @@ Java_java_lang_VMDouble_parseDouble { jboolean isCopy; const char *buf; - char *endptr; jdouble val = 0.0; if (str == NULL) @@ -317,83 +457,7 @@ Java_java_lang_VMDouble_parseDouble } else { - const char *p = buf, *end, *last_non_ws, *temp; - int ok = 1; - -#ifdef DEBUG - fprintf (stderr, "java.lang.VMDouble.parseDouble (%s)\n", buf); -#endif - - /* Trim the buffer, similar to String.trim(). First the leading - characters. */ - while (*p && *p <= ' ') - ++p; - - /* Find the last non-whitespace character. This method is safe - even with multi-byte UTF-8 characters. */ - end = p; - last_non_ws = NULL; - while (*end) - { - if (*end > ' ') - last_non_ws = end; - ++end; - } - - if (last_non_ws == NULL) - last_non_ws = p + strlen (p); - else - { - /* Skip past the last non-whitespace character. */ - ++last_non_ws; - } - - /* Check for infinity and NaN */ - temp = p; - if (temp[0] == '+' || temp[0] == '-') - temp++; - if (strncmp ("Infinity", temp, (size_t) 8) == 0) - { - if (p[0] == '-') - return NEGATIVE_INFINITY; - return POSITIVE_INFINITY; - } - if (strncmp ("NaN", temp, (size_t) 3) == 0) - return NaN; - - /* Skip a trailing `f' or `d'. */ - if (last_non_ws > p - && (last_non_ws[-1] == 'f' - || last_non_ws[-1] == 'F' - || last_non_ws[-1] == 'd' || last_non_ws[-1] == 'D')) - --last_non_ws; - - if (last_non_ws > p) - { - struct _Jv_reent reent; - memset (&reent, 0, sizeof reent); - - val = _strtod_r (&reent, p, &endptr); - -#ifdef DEBUG - fprintf (stderr, "java.lang.VMDouble.parseDouble val = %g\n", val); - fprintf (stderr, "java.lang.VMDouble.parseDouble %i != %i ???\n", - endptr, last_non_ws); -#endif - if (endptr != last_non_ws) - ok = 0; - } - else - ok = 0; - - if (!ok) - { - val = 0.0; - JCL_ThrowException (env, - "java/lang/NumberFormatException", - "unable to parse double"); - } - + val = parseDoubleFromChars(env, buf); (*env)->ReleaseStringUTFChars (env, str, buf); } diff --git a/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c b/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c index f13a94f1889..a6076f2aea9 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c @@ -38,7 +38,7 @@ exception statement from your version. */ #include #include "java_lang_VMProcess.h" -#include "gnu_java_nio_channels_FileChannelImpl.h" +#include "gnu_java_nio_FileChannelImpl.h" #include #include @@ -50,10 +50,8 @@ exception statement from your version. */ #include #include -#include - -#include "target_native.h" -#include "target_native_misc.h" +#include "cpnative.h" +#include "cpproc.h" /* Internal functions */ static char *copy_string (JNIEnv * env, jobject string); @@ -65,7 +63,6 @@ static char *copy_elem (JNIEnv * env, jobject stringArray, jint i); static char * copy_string (JNIEnv * env, jobject string) { - char errbuf[64]; const char *utf; jclass clazz; char *copy; @@ -89,12 +86,10 @@ copy_string (JNIEnv * env, jobject string) /* Copy it */ if ((copy = strdup (utf)) == NULL) { - TARGET_NATIVE_MISC_FORMAT_STRING1 (errbuf, sizeof (errbuf), - "strdup: %s", strerror (errno)); clazz = (*env)->FindClass (env, "java/lang/InternalError"); if ((*env)->ExceptionOccurred (env)) return NULL; - (*env)->ThrowNew (env, clazz, errbuf); + (*env)->ThrowNew (env, clazz, "strdup returned NULL"); (*env)->DeleteLocalRef (env, clazz); } @@ -131,8 +126,8 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, jobjectArray envArray, jobject dirFile, jboolean redirect) { - int fds[3][2] = { {-1, -1}, {-1, -1}, {-1, -1} }; - jobject streams[3] = { NULL, NULL, NULL }; + int fds[CPIO_EXEC_NUM_PIPES]; + jobject streams[CPIO_EXEC_NUM_PIPES] = { NULL, NULL, NULL }; jobject dirString = NULL; char **newEnviron = NULL; jsize cmdArrayLen = 0; @@ -142,10 +137,11 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, char *dir = NULL; pid_t pid = -1; char errbuf[64]; - jmethodID method; - jclass clazz; + jmethodID method, vmmethod; + jclass clazz, vmclazz; int i; int pipe_count = redirect ? 2 : 3; + int err; /* Check for null */ if (cmdArray == NULL) @@ -182,9 +178,7 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, + (dirString != NULL ? 1 : 0)) * sizeof (*strings))) == NULL) { - TARGET_NATIVE_MISC_FORMAT_STRING1 (errbuf, - sizeof (errbuf), "malloc: %s", - strerror (errno)); + strncpy (errbuf, "malloc failed", sizeof(errbuf)); goto out_of_memory; } @@ -209,125 +203,43 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, { if ((dir = copy_string (env, dirString)) == NULL) goto done; - strings[num_strings++] = dir; } /* Create inter-process pipes */ - for (i = 0; i < pipe_count; i++) - { - if (pipe (fds[i]) == -1) - { - TARGET_NATIVE_MISC_FORMAT_STRING1 (errbuf, - sizeof (errbuf), "pipe: %s", - strerror (errno)); - goto system_error; - } - } - - /* Set close-on-exec flag for parent's ends of pipes */ - (void) fcntl (fds[0][1], F_SETFD, 1); - (void) fcntl (fds[1][0], F_SETFD, 1); - if (pipe_count == 3) - (void) fcntl (fds[2][0], F_SETFD, 1); - - /* Fork into parent and child processes */ - if ((pid = fork ()) == (pid_t) - 1) + err = cpproc_forkAndExec(strings, newEnviron, fds, pipe_count, &pid, dir); + if (err != 0) { - TARGET_NATIVE_MISC_FORMAT_STRING1 (errbuf, - sizeof (errbuf), "fork: %s", - strerror (errno)); + strncpy(errbuf, cpnative_getErrorString (err), sizeof(errbuf)); goto system_error; } - /* Child becomes the new process */ - if (pid == 0) - { - char *const path = strings[0]; - - /* Move file descriptors to standard locations */ - if (fds[0][0] != 0) - { - if (dup2 (fds[0][0], 0) == -1) - { - fprintf (stderr, "dup2: %s", strerror (errno)); - exit (127); - } - close (fds[0][0]); - } - if (fds[1][1] != 1) - { - if (dup2 (fds[1][1], 1) == -1) - { - fprintf (stderr, "dup2: %s", strerror (errno)); - exit (127); - } - close (fds[1][1]); - } - if (pipe_count == 2) - { - /* Duplicate stdout to stderr. */ - if (dup2 (1, 2) == -1) - { - fprintf (stderr, "dup2: %s", strerror (errno)); - exit (127); - } - } - else if (fds[2][1] != 2) - { - if (dup2 (fds[2][1], 2) == -1) - { - fprintf (stderr, "dup2: %s", strerror (errno)); - exit (127); - } - close (fds[2][1]); - } - - /* Change into destination directory */ - if (dir != NULL && chdir (dir) == -1) - { - fprintf (stderr, "%s: %s", dir, strerror (errno)); - exit (127); - } - - /* Make argv[0] last component of executable pathname */ - /* XXX should use "file.separator" property here XXX */ - for (i = strlen (path); i > 0 && path[i - 1] != '/'; i--); - strings[0] = path + i; - - /* Set new environment */ - if (newEnviron != NULL) - environ = newEnviron; - - /* Execute new program (this will close the parent end of the pipes) */ - execvp (path, strings); - - /* Failed */ - fprintf (stderr, "%s: %s", path, strerror (errno)); - exit (127); - } - /* Create Input/OutputStream objects around parent file descriptors */ - clazz = (*env)->FindClass (env, "gnu/java/nio/channels/FileChannelImpl"); + vmclazz = (*env)->FindClass (env, "gnu/java/nio/VMChannel"); + clazz = (*env)->FindClass (env, "gnu/java/nio/FileChannelImpl"); if ((*env)->ExceptionOccurred (env)) goto done; - method = (*env)->GetMethodID (env, clazz, "", "(II)V"); + vmmethod = (*env)->GetMethodID (env, vmclazz, "", "(I)V"); + method = (*env)->GetMethodID (env, clazz, "", "(Lgnu/java/nio/VMChannel;I)V"); if ((*env)->ExceptionOccurred (env)) goto done; for (i = 0; i < pipe_count; i++) { /* Mode is WRITE (2) for in and READ (1) for out and err. */ - const int fd = fds[i][i == 0]; - const int mode = ((i == 0) - ? gnu_java_nio_channels_FileChannelImpl_WRITE - : gnu_java_nio_channels_FileChannelImpl_READ); + const int fd = fds[i]; + const int mode = ((i == CPIO_EXEC_STDIN) ? 2 : 1); jclass sclazz; jmethodID smethod; - jobject channel = (*env)->NewObject (env, clazz, method, fd, mode); + jobject vmchannel; + jobject channel; + vmchannel = (*env)->NewObject (env, vmclazz, vmmethod, fd); + if ((*env)->ExceptionOccurred (env)) + goto done; + channel = (*env)->NewObject (env, clazz, method, vmchannel, mode); if ((*env)->ExceptionOccurred (env)) goto done; - if (mode == gnu_java_nio_channels_FileChannelImpl_WRITE) + if (mode == gnu_java_nio_FileChannelImpl_WRITE) sclazz = (*env)->FindClass (env, "java/io/FileOutputStream"); else sclazz = (*env)->FindClass (env, "java/io/FileInputStream"); @@ -335,7 +247,7 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, goto done; smethod = (*env)->GetMethodID (env, sclazz, "", - "(Lgnu/java/nio/channels/FileChannelImpl;)V"); + "(Lgnu/java/nio/FileChannelImpl;)V"); if ((*env)->ExceptionOccurred (env)) goto done; @@ -355,7 +267,10 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, if ((*env)->ExceptionOccurred (env)) goto done; (*env)->CallVoidMethod (env, this, method, - streams[0], streams[1], streams[2], (jlong) pid); + streams[CPIO_EXEC_STDIN], + streams[CPIO_EXEC_STDOUT], + streams[CPIO_EXEC_STDERR], + (jlong) pid); if ((*env)->ExceptionOccurred (env)) goto done; @@ -365,15 +280,6 @@ done: * parent process. Our goal is to clean up the mess we created. */ - /* Close child's ends of pipes */ - for (i = 0; i < pipe_count; i++) - { - const int fd = fds[i][i != 0]; - - if (fd != -1) - close (fd); - } - /* * Close parent's ends of pipes if Input/OutputStreams never got created. * This can only happen in a failure case. If a Stream object @@ -382,7 +288,7 @@ done: */ for (i = 0; i < pipe_count; i++) { - const int fd = fds[i][i == 0]; + const int fd = fds[i]; if (fd != -1 && streams[i] == NULL) close (fd); @@ -392,7 +298,8 @@ done: while (num_strings > 0) free (strings[--num_strings]); free (strings); - + if (dir != NULL) + free(dir); /* Done */ return; @@ -431,19 +338,20 @@ Java_java_lang_VMProcess_nativeReap (JNIEnv * env, jclass clazz) jfieldID field; jint status; pid_t pid; + int err; /* Try to reap a child process, but don't block */ - if ((pid = waitpid ((pid_t) - 1, &status, WNOHANG)) == 0) + err = cpproc_waitpid((pid_t)-1, &status, &pid, WNOHANG); + if (err == 0 && pid == 0) return JNI_FALSE; /* Check result from waitpid() */ - if (pid == (pid_t) - 1) + if (err != 0) { - if (errno == ECHILD || errno == EINTR) + if (err == ECHILD || err == EINTR) return JNI_FALSE; - TARGET_NATIVE_MISC_FORMAT_STRING2 (ebuf, - sizeof (ebuf), "waitpid(%ld): %s", - (long) pid, strerror (errno)); + snprintf(ebuf, sizeof (ebuf), "waitpid(%ld): %s", + (long) pid, cpnative_getErrorString(errno)); clazz = (*env)->FindClass (env, "java/lang/InternalError"); if ((*env)->ExceptionOccurred (env)) return JNI_FALSE; @@ -485,12 +393,13 @@ JNIEXPORT void JNICALL Java_java_lang_VMProcess_nativeKill (JNIEnv * env, jclass clazz, jlong pid) { char ebuf[64]; - - if (kill ((pid_t) pid, SIGKILL) == -1) + int err; + + err = cpproc_kill((pid_t) pid, SIGKILL); + if (err != 0) { - TARGET_NATIVE_MISC_FORMAT_STRING2 (ebuf, - sizeof (ebuf), "kill(%ld): %s", - (long) pid, strerror (errno)); + snprintf (ebuf, sizeof (ebuf), "kill(%ld): %s", + (long) pid, cpnative_getErrorString (err)); clazz = (*env)->FindClass (env, "java/lang/InternalError"); if ((*env)->ExceptionOccurred (env)) return; diff --git a/libjava/classpath/native/jni/java-net/.cvsignore b/libjava/classpath/native/jni/java-net/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/java-net/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/java-net/Makefile.am b/libjava/classpath/native/jni/java-net/Makefile.am index 26bb64f73bf..1278b946c63 100644 --- a/libjava/classpath/native/jni/java-net/Makefile.am +++ b/libjava/classpath/native/jni/java-net/Makefile.am @@ -13,11 +13,12 @@ libjavanet_la_SOURCES = javanet.c \ java_net_VMInetAddress.c \ java_net_VMNetworkInterface.c \ java_net_VMURLConnection.c \ - gnu_java_net_VMPlainDatagramSocketImpl.c \ gnu_java_net_VMPlainSocketImpl.c \ $(local_sources) -libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo $(LIBMAGIC) +libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ + $(LIBMAGIC) AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ diff --git a/libjava/classpath/native/jni/java-net/Makefile.in b/libjava/classpath/native/jni/java-net/Makefile.in index c427f8cd5bb..ec8f6a858d7 100644 --- a/libjava/classpath/native/jni/java-net/Makefile.in +++ b/libjava/classpath/native/jni/java-net/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -65,19 +67,17 @@ LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) am__DEPENDENCIES_1 = libjavanet_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ $(am__DEPENDENCIES_1) am__libjavanet_la_SOURCES_DIST = javanet.c javanet.h \ java_net_VMInetAddress.c java_net_VMNetworkInterface.c \ - java_net_VMURLConnection.c \ - gnu_java_net_VMPlainDatagramSocketImpl.c \ - gnu_java_net_VMPlainSocketImpl.c \ + java_net_VMURLConnection.c gnu_java_net_VMPlainSocketImpl.c \ gnu_java_net_local_LocalSocketImpl.c local.c local.h @ENABLE_LOCAL_SOCKETS_FALSE@am__objects_1 = gnu_java_net_local_LocalSocketImpl.lo @ENABLE_LOCAL_SOCKETS_TRUE@am__objects_1 = gnu_java_net_local_LocalSocketImpl.lo \ @ENABLE_LOCAL_SOCKETS_TRUE@ local.lo am_libjavanet_la_OBJECTS = javanet.lo java_net_VMInetAddress.lo \ java_net_VMNetworkInterface.lo java_net_VMURLConnection.lo \ - gnu_java_net_VMPlainDatagramSocketImpl.lo \ gnu_java_net_VMPlainSocketImpl.lo $(am__objects_1) libjavanet_la_OBJECTS = $(am_libjavanet_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include @@ -198,6 +198,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -319,7 +321,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libjavanet.la @ENABLE_LOCAL_SOCKETS_FALSE@local_sources = gnu_java_net_local_LocalSocketImpl.c @@ -332,11 +333,13 @@ libjavanet_la_SOURCES = javanet.c \ java_net_VMInetAddress.c \ java_net_VMNetworkInterface.c \ java_net_VMURLConnection.c \ - gnu_java_net_VMPlainDatagramSocketImpl.c \ gnu_java_net_VMPlainSocketImpl.c \ $(local_sources) -libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo $(LIBMAGIC) +libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ + $(LIBMAGIC) + AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ @@ -409,7 +412,6 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_VMPlainDatagramSocketImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_VMPlainSocketImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_local_LocalSocketImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMInetAddress.Plo@am__quote@ diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c deleted file mode 100644 index 1b3cb97e0d0..00000000000 --- a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c +++ /dev/null @@ -1,399 +0,0 @@ -/* VMPlainDatagramSocketImpl.c - Native methods for PlainDatagramSocketImpl - 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. */ - -/* do not move; needed here because of some macro definitions */ -#include - -#include -#include -#include - -#include -#include - -#include "javanet.h" - -#include "target_native.h" -#ifndef WITHOUT_NETWORK - #include "target_native_network.h" -#endif /* WITHOUT_NETWORK */ - - -#include "gnu_java_net_VMPlainDatagramSocketImpl.h" - -/* - * Note that most of the functions in this module simply redirect to another - * internal function. Why? Because many of these functions are shared - * with PlainSocketImpl. - */ - -/*************************************************************************/ - -/* - * Creates a new datagram socket - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_create(JNIEnv *env, - jclass klass __attribute__ ((__unused__)) - , jobject obj) -{ - -#ifndef WITHOUT_NETWORK - _javanet_create(env, obj, 0); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Close the socket. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_close(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj) -{ - -#ifndef WITHOUT_NETWORK - _javanet_close(env, obj, 0); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Connects to the specified destination. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_connect(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jobject addr, jint port) -{ -#ifndef WITHOUT_NETWORK - - _javanet_connect(env, obj, addr, port, 0); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * This method binds the specified address to the specified local port. - * Note that we have to set the local address and local port public instance - * variables. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_bind(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jint port, jobject addr) -{ - -#ifndef WITHOUT_NETWORK - _javanet_bind(env, obj, addr, port, 0); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * This method sets the specified option for a socket - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_setOption(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jint option_id, - jobject val) -{ - -#ifndef WITHOUT_NETWORK - _javanet_set_option(env, obj, option_id, val); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * This method sets the specified option for a socket - */ -JNIEXPORT jobject JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_getOption(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jint option_id) -{ - -#ifndef WITHOUT_NETWORK - return(_javanet_get_option(env, obj, option_id)); -#else /* not WITHOUT_NETWORK */ - return NULL; -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Reads a buffer from a remote host - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeReceive(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jbyteArray arr, - jint offset, - jint length, - jbyteArray receivedFromAddress, - jintArray receivedFromPort, - jintArray receivedLength) -{ -#ifndef WITHOUT_NETWORK - int addr, *port, *bytes_read; - char *addressBytes; - - addr = 0; - - port = (int*)(*env)->GetIntArrayElements(env, receivedFromPort, NULL); - if (port == NULL) - { - JCL_ThrowException(env, IO_EXCEPTION, "Internal error: could not access receivedFromPort array"); - return; - } - - bytes_read = (int*)(*env)->GetIntArrayElements(env, receivedLength, NULL); - if (bytes_read == NULL) - { - (*env)->ReleaseIntArrayElements(env, receivedFromPort, (jint*)port, 0); - JCL_ThrowException(env, IO_EXCEPTION, "Internal error: could not access receivedLength array"); - return; - } - - /* Receive the packet */ - /* should we try some sort of validation on the length? */ - (*bytes_read) = _javanet_recvfrom(env, obj, arr, offset, length, &addr, port); - - /* Special case the strange situation where the receiver didn't want any - bytes. */ - if (length == 0 && (*bytes_read) == -1) - *bytes_read = 0; - - if ((*bytes_read) == -1) - { - (*env)->ReleaseIntArrayElements(env, receivedFromPort, (jint*)port, 0); - (*env)->ReleaseIntArrayElements(env, receivedLength, (jint*)bytes_read, 0); - JCL_ThrowException(env, IO_EXCEPTION, "Internal error: receive"); - return; - } - - (*env)->ReleaseIntArrayElements(env, receivedFromPort, (jint*)port, 0); - (*env)->ReleaseIntArrayElements(env, receivedLength, (jint*)bytes_read, 0); - - if ((*env)->ExceptionOccurred(env)) - { - return; - } - - DBG("PlainDatagramSocketImpl.receive(): Received packet\n"); - - - /* Store the address */ - addressBytes = (char*)(*env)->GetPrimitiveArrayCritical(env, receivedFromAddress, NULL); - TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES(addr, - addressBytes[0], - addressBytes[1], - addressBytes[2], - addressBytes[3] - ); - (*env)->ReleasePrimitiveArrayCritical(env, receivedFromAddress, addressBytes, 0); - -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Writes a buffer to the remote host - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeSendTo(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jobject addr, - jint port, - jarray buf, - jint offset, - jint len) -{ -#ifndef WITHOUT_NETWORK - jint netAddress; - - /* check if address given, tr 7.3.2005 */ - if (addr != NULL) - { - netAddress = _javanet_get_netaddr(env, addr); - if ((*env)->ExceptionOccurred(env)) - { - return; - } - } - else - { - netAddress = 0; - } - - DBG("PlainDatagramSocketImpl.sendto(): have addr\n"); - - _javanet_sendto(env, obj, buf, offset, len, netAddress, port); - if ((*env)->ExceptionOccurred(env)) - { - return; - } - - DBG("PlainDatagramSocketImpl.sendto(): finished\n"); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Joins a multicast group - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_join(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jobject addr) -{ -#ifndef WITHOUT_NETWORK - jint netAddress; - int fd; - int result; - - /* check if address given, tr 7.3.2005 */ - if (addr != NULL) - { - netAddress = _javanet_get_netaddr(env, addr); - if ((*env)->ExceptionOccurred(env)) - { - JCL_ThrowException(env, IO_EXCEPTION, "Internal error"); - return; - } - } - else - { - netAddress = 0; - } - - fd = _javanet_get_int_field(env, obj, "native_fd"); - if ((*env)->ExceptionOccurred(env)) - { - JCL_ThrowException(env, IO_EXCEPTION, "Internal error"); - return; - } - - DBG("PlainDatagramSocketImpl.join(): have native fd\n"); - - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP(fd,netAddress,result); - - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException(env, IO_EXCEPTION, TARGET_NATIVE_LAST_ERROR_STRING()); - return; - } - - DBG("PlainDatagramSocketImpl.join(): finished\n"); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Leaves a multicast group - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainDatagramSocketImpl_leave(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jobject addr) -{ -#ifndef WITHOUT_NETWORK - jint netAddress; - int fd; - int result; - - /* check if address given, tr 7.3.2005 */ - if (addr != NULL) - { - netAddress = _javanet_get_netaddr(env, addr); - if ((*env)->ExceptionOccurred(env)) - { - JCL_ThrowException(env, IO_EXCEPTION, "Internal error"); - return; - } - } - else - { - netAddress = 0; - } - - fd = _javanet_get_int_field(env, obj, "native_fd"); - if ((*env)->ExceptionOccurred(env)) - { JCL_ThrowException(env, IO_EXCEPTION, "Internal error"); return; } - - DBG("PlainDatagramSocketImpl.leave(): have native fd\n"); - - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP(fd,netAddress,result); - if (result!=TARGET_NATIVE_OK) - { - JCL_ThrowException(env, IO_EXCEPTION, TARGET_NATIVE_LAST_ERROR_STRING()); - return; - } - - DBG("PlainDatagramSocketImpl.leave(): finished\n"); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c dissimilarity index 72% index 3d48b9195c4..cdfbe739789 100644 --- a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c +++ b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c @@ -1,303 +1,964 @@ -/* VMPlainSocketImpl.c - Native methods for PlainSocketImpl class - 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. */ - -/* do not move; needed here because of some macro definitions */ -#include - -#include -#include -#include - -#include -#include - -#include "javanet.h" - -#include "target_native.h" -#ifndef WITHOUT_NETWORK - #include "target_native_file.h" /* Get FIONREAD on Solaris. */ - #include "target_native_network.h" -#endif /* WITHOUT_NETWORK */ - -#include "gnu_java_net_VMPlainSocketImpl.h" - -/* - * Note that the functions in this module simply redirect to another - * internal function. Why? Because many of these functions are shared - * with PlainDatagramSocketImpl. The unshared ones were done the same - * way for consistency. - */ - -/*************************************************************************/ - -/* - * Creates a new stream or datagram socket - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_create(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj) -{ -#ifndef WITHOUT_NETWORK - _javanet_create(env, obj, JNI_TRUE); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Close the socket. Any underlying streams will be closed by this - * action as well. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_close(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj) -{ -#ifndef WITHOUT_NETWORK - _javanet_close(env, obj, 1); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Connects to the specified destination. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_connect(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jobject addr, jint port) -{ -#ifndef WITHOUT_NETWORK - _javanet_connect(env, obj, addr, port, 1); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * This method binds the specified address to the specified local port. - * Note that we have to set the local address and local port public instance - * variables. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_bind(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, jobject addr, - jint port) -{ -#ifndef WITHOUT_NETWORK - _javanet_bind(env, obj, addr, port, 1); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Starts listening on a socket with the specified number of pending - * connections allowed. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_listen(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, jint queuelen) -{ -#ifndef WITHOUT_NETWORK - _javanet_listen(env, obj, queuelen); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Accepts a new connection and assigns it to the passed in SocketImpl - * object. Note that we assume this is a PlainSocketImpl just like us. - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_accept(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, jobject impl) -{ -#ifndef WITHOUT_NETWORK - _javanet_accept(env, obj, impl); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -JNIEXPORT jint JNICALL -Java_gnu_java_net_VMPlainSocketImpl_available(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj) -{ -#ifndef WITHOUT_NETWORK - jclass cls; - jfieldID fid; - int fd; - int bytesAvailable; - int result; - - cls = (*env)->GetObjectClass(env, obj); - if (cls == 0) - { - JCL_ThrowException(env, IO_EXCEPTION, "internal error"); - return 0; - } - - fid = (*env)->GetFieldID(env, cls, "native_fd", "I"); - if (fid == 0) - { - JCL_ThrowException(env, IO_EXCEPTION, "internal error"); - return 0; - } - - fd = (*env)->GetIntField(env, obj, fid); - - TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE(fd,bytesAvailable,result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException(env, IO_EXCEPTION, TARGET_NATIVE_LAST_ERROR_STRING()); - return 0; - } - - return bytesAvailable; -#else /* not WITHOUT_NETWORK */ - return 0; -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * This method sets the specified option for a socket - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_setOption(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jint option_id, jobject val) -{ -#ifndef WITHOUT_NETWORK - _javanet_set_option(env, obj, option_id, val); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * This method gets the specified option for a socket - */ -JNIEXPORT jobject JNICALL -Java_gnu_java_net_VMPlainSocketImpl_getOption(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jint option_id) -{ -#ifndef WITHOUT_NETWORK - return(_javanet_get_option(env, obj, option_id)); -#else /* not WITHOUT_NETWORK */ - return NULL; -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Reads a buffer from a remote host - */ -JNIEXPORT jint JNICALL -Java_gnu_java_net_VMPlainSocketImpl_read(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, jarray buf, - jint offset, jint len) -{ -#ifndef WITHOUT_NETWORK - return(_javanet_recvfrom(env, obj, buf, offset, len, 0, 0)); -#else /* not WITHOUT_NETWORK */ - return 0; -#endif /* not WITHOUT_NETWORK */ -} - -/*************************************************************************/ - -/* - * Writes a buffer to the remote host - */ -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_write(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, jarray buf, - jint offset, jint len) -{ -#ifndef WITHOUT_NETWORK - _javanet_sendto(env, obj, buf, offset, len, 0, 0); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv * env, - jclass klass __attribute__ ((__unused__)), - jobject this) -{ -#ifndef WITHOUT_NETWORK - _javanet_shutdownInput (env, this); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput (JNIEnv * env, - jclass klass __attribute__ ((__unused__)), - jobject this) -{ -#ifndef WITHOUT_NETWORK - _javanet_shutdownOutput (env, this); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} - -/* end of file */ +/* VMPlainSocketImpl.c - Native methods for PlainSocketImpl class + 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. */ + + +#ifdef HAVE_CONFIG_H +#include +#endif /* HAVE_CONFIG_H */ + +#include + +#include +#include +#include +#include +#ifdef HAVE_IFADDRS_H +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "cpnative.h" +#include "cpnet.h" +#include "cpio.h" +#include "javanet.h" + +#include "gnu_java_net_VMPlainSocketImpl.h" + +#define THROW_NO_NETWORK(env) JCL_ThrowException (env, "java/lang/InternalError", "this platform not configured for network support") + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: bind + * Signature: (I[BI)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_bind (JNIEnv *env, + jclass clazz __attribute__((unused)), + jint fd, jbyteArray addr, jint port) +{ + struct sockaddr_in sockaddr; + jbyte *elems = NULL; + int ret; + + if (addr != NULL) + elems = (*env)->GetByteArrayElements (env, addr, NULL); + + memset(&sockaddr, 0, sizeof (struct sockaddr_in)); + sockaddr.sin_family = AF_INET; + sockaddr.sin_port = htons (port); + /* addr is already in network byte order. */ + if (elems != NULL) + sockaddr.sin_addr.s_addr = *((uint32_t *) elems); + else + sockaddr.sin_addr.s_addr = INADDR_ANY; + + /* bind(2) from BSD says bind will never return EINTR */ + /* bind is not a blocking system call */ + ret = bind (fd, (struct sockaddr *) &sockaddr, sizeof (struct sockaddr_in)); + + if (elems != NULL) + (*env)->ReleaseByteArrayElements (env, addr, elems, JNI_ABORT); + + if (-1 == ret) + JCL_ThrowException (env, BIND_EXCEPTION, strerror (errno)); + + cpio_closeOnExec(ret); +} + + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: bind6 + * Signature: (I[BI)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_bind6 (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr, jint port) +{ + /* FIXME! Add check if we have IPv6! */ + struct sockaddr_in6 sockaddr; + jbyte *elems; + int ret; + + elems = (*env)->GetByteArrayElements (env, addr, NULL); + + memset (&sockaddr, 0, sizeof (struct sockaddr_in6)); + sockaddr.sin6_family = AF_INET6; + sockaddr.sin6_port = htons (port); + memcpy (&sockaddr.sin6_addr.s6_addr, elems, 16); + + /* bind(2) from BSD says bind will never return EINTR */ + /* bind is not a blocking system call */ + ret = bind (fd, (struct sockaddr *) &sockaddr, + sizeof (struct sockaddr_in6)); + + (*env)->ReleaseByteArrayElements (env, addr, elems, JNI_ABORT); + + if (-1 == ret) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +} + + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: listen + * Signature: (II)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_listen (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint backlog) +{ + int ret; + + /* listen(2) says that this call will never return EINTR */ + /* listen is not a blocking system call */ + if ((ret = listen (fd, backlog)) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +} + + +/* These constants are also defined in java/net/SocketOptions.java. + * Except for CPNET_IP_TTL which is defined in + * vm/reference/gnu/java/net/VMPlainSocketImpl.java . + */ +enum java_sockopt { + CPNET_SO_KEEPALIVE = 0x8, + CPNET_SO_LINGER = 0x80, + CPNET_SO_TIMEOUT = 0x1006, + CPNET_SO_BINDADDR = 0x0F, + CPNET_SO_SNDBUF = 0x1001, + CPNET_SO_RCVBUF = 0x1002, + CPNET_SO_REUSEADDR = 0x04, + CPNET_SO_BROADCAST = 0x20, + CPNET_SO_OOBINLINE = 0x1003, + CPNET_TCP_NODELAY = 0x01, + CPNET_IP_MULTICAST_IF = 0x10, + CPNET_IP_MULTICAST_IF2 = 0x1F, + CPNET_IP_MULTICAST_LOOP = 0x12, + CPNET_IP_TOS = 0x03, + CPNET_IP_TTL = 0x1E61 +}; + + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: setOption + * Signature: (III)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_setOption (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint option, jint value) +{ + enum java_sockopt joption = (enum java_sockopt) option; + int optname = -1; + int level = SOL_SOCKET; + const int _value = value; + struct linger _linger; + struct timeval _timeo; + void *optval = (void *) &_value; + socklen_t optlen = sizeof (int); + + switch (joption) + { + case CPNET_IP_MULTICAST_LOOP: + level = IPPROTO_IP; + optname = IP_MULTICAST_LOOP; + break; + + case CPNET_SO_KEEPALIVE: + optname = SO_KEEPALIVE; + break; + + case CPNET_SO_LINGER: + optname = SO_LINGER; + if (_value == -1) + _linger.l_onoff = 0; + else + _linger.l_onoff = 1; + _linger.l_linger = _value; + optval = &_linger; + optlen = sizeof (struct linger); + break; + + case CPNET_SO_TIMEOUT: + optname = SO_RCVTIMEO; + _timeo.tv_sec = value / 1000; + _timeo.tv_usec = (value % 1000) * 1000; + optval = &_timeo; + optlen = sizeof (struct timeval); + break; + + case CPNET_SO_SNDBUF: + optname = SO_SNDBUF; + break; + + case CPNET_SO_RCVBUF: + optname = SO_RCVBUF; + break; + + case CPNET_SO_REUSEADDR: + optname = SO_REUSEADDR; + break; + + case CPNET_SO_BROADCAST: + optname = SO_BROADCAST; + break; + + case CPNET_SO_OOBINLINE: + optname = SO_OOBINLINE; + break; + + case CPNET_TCP_NODELAY: + level = IPPROTO_TCP; + optname = TCP_NODELAY; + break; + + case CPNET_IP_TOS: + level = IPPROTO_IP; + optname = IP_TOS; + break; + + case CPNET_IP_TTL: + level = IPPROTO_IP; + optname = IP_TTL; + break; + + case CPNET_SO_BINDADDR: + case CPNET_IP_MULTICAST_IF: + case CPNET_IP_MULTICAST_IF2: + JCL_ThrowException (env, IO_EXCEPTION, "argument not a boolean or integer option"); + return; + } + + if (setsockopt (fd, level, optname, (const void *) optval, optlen) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +} + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: getOption + * Signature: (II)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_net_VMPlainSocketImpl_getOption (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint option) +{ + enum java_sockopt joption = (enum java_sockopt) option; + int optname = -1; + int level = SOL_SOCKET; + int value; + struct linger linger; + struct timeval timeo; + void *optval = &value; + socklen_t optlen = sizeof (int); + + switch (joption) + { + case CPNET_IP_MULTICAST_LOOP: + level = IPPROTO_IP; + optname = IP_MULTICAST_LOOP; + break; + + case CPNET_SO_KEEPALIVE: + optname = SO_KEEPALIVE; + break; + + case CPNET_SO_LINGER: + optname = SO_LINGER; + optval = &linger; + optlen = sizeof (struct linger); + break; + + case CPNET_SO_TIMEOUT: + optname = SO_RCVTIMEO; + optval = &timeo; + optlen = sizeof (struct timeval); + break; + + case CPNET_SO_SNDBUF: + optname = SO_SNDBUF; + break; + + case CPNET_SO_RCVBUF: + optname = SO_RCVBUF; + break; + + case CPNET_SO_REUSEADDR: + optname = SO_REUSEADDR; + break; + + case CPNET_SO_BROADCAST: + optname = SO_BROADCAST; + break; + + case CPNET_SO_OOBINLINE: + optname = SO_OOBINLINE; + break; + + case CPNET_TCP_NODELAY: + level = IPPROTO_TCP; + optname = TCP_NODELAY; + break; + + case CPNET_IP_TOS: + level = IPPROTO_IP; + optname = IP_TOS; + break; + + case CPNET_IP_TTL: + level = IPPROTO_IP; + optname = IP_TTL; + break; + + case CPNET_SO_BINDADDR: + case CPNET_IP_MULTICAST_IF: + case CPNET_IP_MULTICAST_IF2: + JCL_ThrowException (env, IO_EXCEPTION, "argument not a boolean or integer option"); + return -1; + } + + if (getsockopt (fd, level, optname, optval, &optlen) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + + /* Returns the linger value if it is enabled or -1 in case + * it is disabled. This is how the Java API expects it. + */ + if (joption == CPNET_SO_LINGER) + return (linger.l_onoff) ? linger.l_linger : -1; + if (joption == CPNET_SO_TIMEOUT) + return (timeo.tv_sec * 1000) + (timeo.tv_usec / 1000); + + return value; +} + +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, + jint optionId __attribute__((unused)), + jobject addr) +{ + int result; + cpnet_address *cpaddr = _javanet_get_ip_netaddr (env, addr); + + if ((*env)->ExceptionOccurred (env)) + return; + + result = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, + (struct sockaddr *) cpaddr->data, cpaddr->len); + + cpnet_freeAddress (env, cpaddr); + + if (result == -1) + JCL_ThrowException (env, SOCKET_EXCEPTION, cpnative_getErrorString (errno)); +} + +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, + jint optionId __attribute__((unused)), + jstring ifname) +{ +#ifdef HAVE_SETSOCKOPT +#ifdef HAVE_INET6 + int result; + const char *str_ifname = JCL_jstring_to_cstring (env, ifname); + u_int if_index; + + if ((*env)->ExceptionOccurred (env)) + { + JCL_free_cstring(env, ifname, str_ifname); + return; + } + + if_index = if_nametoindex(str_ifname); + if (!if_index) + { + JCL_free_cstring(env, ifname, str_ifname); + JCL_ThrowException (env, SOCKET_EXCEPTION, "interface does not exist"); + return; + } + + result = setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF, + (u_int *) &if_index, sizeof(if_index)); + + JCL_free_cstring(env, ifname, str_ifname); + + if (result == -1) + JCL_ThrowException (env, SOCKET_EXCEPTION, cpnative_getErrorString (errno)); +#else + (void) fd; + JCL_ThrowException (env, "java/lang/InternalError", + "IPv6 support not available"); +#endif /* HAVE_INET6 */ +#else + (void) fd; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +JNIEXPORT jobject JNICALL +Java_gnu_java_net_VMPlainSocketImpl_getMulticastInterface (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, + jint optionId __attribute__((unused))) +{ + jobject obj; + cpnet_address *cpaddr; + int result = cpnet_getMulticastIF (env, fd, &cpaddr); + + if (result != CPNATIVE_OK) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, + cpnative_getErrorString (result)); + return (0); + } + + obj = _javanet_create_inetaddress (env, cpaddr); + cpnet_freeAddress (env, cpaddr); + + return obj; +} + + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: shutdownInput + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ + if (shutdown (fd, SHUT_RD) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +} + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: shutdownOutput + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ + if (shutdown (fd, SHUT_WR) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +} + + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: sendUrgentData + * Signature: (II)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_sendUrgentData (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint data) +{ + const char x = (char) data; + + if (send (fd, &x, 1, MSG_OOB) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +} + + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: join + * Signature: (I[B)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_join (JNIEnv *env, + jclass clazz __attribute__((unused)), + jint fd, jbyteArray addr) +{ +#ifdef HAVE_SETSOCKOPT + struct ip_mreq maddr; + jbyte *addr_elems; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + maddr.imr_multiaddr.s_addr = * ((uint32_t *) addr_elems); + maddr.imr_interface.s_addr = INADDR_ANY; + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, + &maddr, sizeof (struct ip_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: join6 + * Signature: (I[B)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_join6 (JNIEnv *env, + jclass clazz __attribute__((unused)), + jint fd, jbyteArray addr) +{ +#ifdef HAVE_SETSOCKOPT +#ifdef HAVE_INET6 + struct ipv6_mreq maddr; + jbyte *addr_elems; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + memcpy (&(maddr.ipv6mr_multiaddr.s6_addr), addr_elems, 16); + maddr.ipv6mr_interface = 0; + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, + &maddr, sizeof (struct ipv6_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "IPv6 support not available"); +#endif /* HAVE_INET6 */ +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: leave + * Signature: (I[B)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_leave (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr) +{ +#ifdef HAVE_SETSOCKOPT + struct ip_mreq maddr; + jbyte *addr_elems; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + maddr.imr_multiaddr.s_addr = * ((uint32_t *) addr_elems); + maddr.imr_interface.s_addr = INADDR_ANY; + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, + &maddr, sizeof (struct ip_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: leave6 + * Signature: (I[B)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_leave6 (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr) +{ +#ifdef HAVE_SETSOCKOPT +#ifdef HAVE_INET6 + struct ipv6_mreq maddr; + jbyte *addr_elems; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + memcpy (&(maddr.ipv6mr_multiaddr.s6_addr), addr_elems, 16); + maddr.ipv6mr_interface = 0; + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IPV6, IPV6_LEAVE_GROUP, + &maddr, sizeof (struct ipv6_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "IPv6 support not available"); +#endif /* HAVE_INET6 */ +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +static uint32_t getif_address (JNIEnv *env, const char *ifname); +static int getif_index (JNIEnv *env, const char *ifname); + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: joinGroup + * Signature: (I[BILjava/lang/String;)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_joinGroup (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr, + jstring ifname) +{ +#ifdef HAVE_SETSOCKOPT + struct ip_mreq maddr; + jbyte *addr_elems; + const char *str_ifname; + + if (ifname != NULL) + { + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.imr_interface.s_addr = getif_address (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + + if ((*env)->ExceptionCheck (env)) + return; + } + else + maddr.imr_interface.s_addr = INADDR_ANY; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + maddr.imr_multiaddr.s_addr = * ((uint32_t *) addr_elems); + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, + &maddr, sizeof (struct ip_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + +#else + (void) fd; + (void) addr; + (void) ifname; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: joinGroup6 + * Signature: (I[BILjava/lang/String;)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_joinGroup6 (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr, + jstring ifname) +{ +#ifdef HAVE_SETSOCKOPT +#ifdef HAVE_INET6 + struct ipv6_mreq maddr; + jbyte *addr_elems; + const char *str_ifname; + + if (ifname == NULL) + { + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.ipv6mr_interface = getif_index (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + + if ((*env)->ExceptionCheck (env)) + return; + } + else + maddr.ipv6mr_interface = 0; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + memcpy (&(maddr.ipv6mr_multiaddr.s6_addr), addr_elems, 16); + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, + &maddr, sizeof (struct ipv6_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "IPv6 support not available"); +#endif /* HAVE_INET6 */ +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: leaveGroup + * Signature: (I[BILjava/lang/String;)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_leaveGroup (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr, + jstring ifname) +{ +#ifdef HAVE_SETSOCKOPT + struct ip_mreq maddr; + jbyte *addr_elems; + const char *str_ifname; + + if (ifname != NULL) + { + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.imr_interface.s_addr = getif_address (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + + if ((*env)->ExceptionCheck (env)) + return; + } + else + maddr.imr_interface.s_addr = INADDR_ANY; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + maddr.imr_multiaddr.s_addr = * ((uint32_t *) addr_elems); + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, + &maddr, sizeof (struct ip_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) addr; + (void) ifname; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +/* + * Class: gnu_java_net_VMPlainSocketImpl + * Method: leaveGroup6 + * Signature: (I[BILjava/lang/String;)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr, + jstring ifname) +{ +#ifdef HAVE_SETSOCKOPT +#ifdef HAVE_INET6 + struct ipv6_mreq maddr; + jbyte *addr_elems; + const char *str_ifname; + + if (ifname == NULL) + { + str_ifname = JCL_jstring_to_cstring(env, ifname); + maddr.ipv6mr_interface = getif_index (env, str_ifname); + JCL_free_cstring(env, ifname, str_ifname); + + if ((*env)->ExceptionCheck (env)) + return; + } + else + maddr.ipv6mr_interface = 0; + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + if (addr_elems == NULL) + return; + + memcpy (&(maddr.ipv6mr_multiaddr.s6_addr), addr_elems, 16); + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + if (-1 == setsockopt (fd, IPPROTO_IPV6, IPV6_LEAVE_GROUP, + &maddr, sizeof (struct ipv6_mreq))) + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "IPv6 support not available"); +#endif /* HAVE_INET6 */ +#else + (void) fd; + (void) addr; + JCL_ThrowException (env, "java/lang/InternalError", + "socket options not supported"); +#endif /* HAVE_SETSOCKOPT */ +} + +static uint32_t +getif_address (JNIEnv *env, const char *ifname) +{ +#if defined (HAVE_IFADDRS_H) && defined (HAVE_GETIFADDRS) + struct ifaddrs *ifaddrs, *i; + uint32_t addr = 0; + int foundaddr = 0; + + if (getifaddrs (&ifaddrs) == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return 0; + } + + for (i = ifaddrs; i != NULL; i = i->ifa_next) + { + if (strcmp (ifname, i->ifa_name) == 0) + { + /* Matched the name; see if there is an IPv4 address. */ + if (i->ifa_addr->sa_family == AF_INET) + { + foundaddr = 1; + addr = ((struct sockaddr_in *) i->ifa_addr)->sin_addr.s_addr; + break; + } + } + } + + if (!foundaddr) + JCL_ThrowException (env, SOCKET_EXCEPTION, "interface has no IPv4 address"); + + freeifaddrs (ifaddrs); + + return addr; +#else + (void) ifname; + JCL_ThrowException (env, "java/lang/InternalError", + "getifaddrs not available"); + return 0; +#endif /* HAVE_IFADDRS_H && HAVE_GETIFADDRS */ +} + +static int +getif_index (JNIEnv *env, const char *ifname) +{ +#if defined (HAVE_IFADDRS_H) && defined (HAVE_GETIFADDRS) + struct ifaddrs *ifaddrs, *i; + char *lastname = NULL; + int index = 1; + int foundname = 0; + + if (getifaddrs (&ifaddrs) == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return -1; + } + + lastname = ifaddrs->ifa_name; + for (i = ifaddrs; i != NULL; i = i->ifa_next) + { + if (strcmp (lastname, ifaddrs->ifa_name) != 0) + { + lastname = ifaddrs->ifa_name; + index++; + } + if (strcmp (ifname, ifaddrs->ifa_name) == 0) + { + foundname = 1; + break; + } + } + + if (!foundname) + JCL_ThrowException (env, SOCKET_EXCEPTION, + "no interface with that name"); + + freeifaddrs (ifaddrs); + + return index; +#else + (void) ifname; + JCL_ThrowException (env, "java/lang/InternalError", + "getifaddrs not available"); + return -1; +#endif /* HAVE_GETIFADDRS */ +} diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c index 35fb6bcdcc7..f2b2f8e63b8 100644 --- a/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c +++ b/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c @@ -38,9 +38,7 @@ exception statement from your version. */ #define _GNU_SOURCE -#ifdef HAVE_CONFIG_H #include "config.h" -#endif /* HAVE_CONFIG_H */ #include diff --git a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c index 86ac06e6f79..fc921ecef1f 100644 --- a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c +++ b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c @@ -45,13 +45,10 @@ exception statement from your version. */ #include #include +#include "cpnative.h" +#include "cpnet.h" #include "javanet.h" -#include "target_native.h" -#ifndef WITHOUT_NETWORK -#include "target_native_network.h" -#endif /* WITHOUT_NETWORK */ - #include "java_net_VMInetAddress.h" /*************************************************************************/ @@ -69,8 +66,8 @@ Java_java_net_VMInetAddress_getLocalHostname (JNIEnv * env, jstring retval; #ifndef WITHOUT_NETWORK - TARGET_NATIVE_NETWORK_GET_HOSTNAME (hostname, sizeof (hostname), result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getHostname (env, hostname, sizeof (hostname)); + if (result != CPNATIVE_OK) { strcpy (hostname, "localhost"); } @@ -94,6 +91,7 @@ Java_java_net_VMInetAddress_lookupInaddrAny (JNIEnv * env, __attribute__ ((__unused__))) { jarray IParray; + cpnet_address *addr; jbyte *octets; /* Allocate an array for the IP address */ @@ -108,11 +106,10 @@ Java_java_net_VMInetAddress_lookupInaddrAny (JNIEnv * env, octets = (*env)->GetByteArrayElements (env, IParray, 0); #ifndef WITHOUT_NETWORK - TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES (INADDR_ANY, - octets[0], - octets[1], - octets[2], octets[3]); - (*env)->ReleaseByteArrayElements (env, IParray, octets, 0); + addr = cpnet_newIPV4Address (env); + cpnet_setIPV4Any (addr); + cpnet_IPV4AddressToBytes (addr, octets); + cpnet_freeAddress (env, addr); #else /* not WITHOUT_NETWORK */ octets[0] = 0; octets[1] = 0; @@ -120,6 +117,8 @@ Java_java_net_VMInetAddress_lookupInaddrAny (JNIEnv * env, octets[3] = 0; #endif /* not WITHOUT_NETWORK */ + (*env)->ReleaseByteArrayElements (env, IParray, octets, 0); + return (IParray); } @@ -138,14 +137,14 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env, #ifndef WITHOUT_NETWORK jbyte *octets; jsize len; - int addr; + cpnet_address *addr; char hostname[255]; int result; jstring retval; /* Grab the byte[] array with the IP out of the input data */ len = (*env)->GetArrayLength (env, arr); - if (len != 4) + if (len != 4 && len != 16) { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Bad IP Address"); return (jstring) NULL; @@ -158,21 +157,31 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env, return (jstring) NULL; } - /* Convert it to a 32 bit address */ - TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT (octets[0], - octets[1], - octets[2], octets[3], addr); + switch (len) + { + case 4: + addr = cpnet_newIPV4Address(env); + cpnet_bytesToIPV4Address (addr, octets); + break; + case 16: + addr = cpnet_newIPV6Address(env); + cpnet_bytesToIPV6Address (addr, octets); + break; + default: + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Bad IP Address"); + return (jstring) NULL; + + } /* Release some memory */ (*env)->ReleaseByteArrayElements (env, arr, octets, 0); /* Resolve the address and return the name */ - TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_ADDRESS (addr, hostname, - sizeof (hostname), result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getHostByAddr (env, addr, hostname, sizeof (hostname)); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (jstring) NULL; } @@ -194,16 +203,14 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env, { #ifndef WITHOUT_NETWORK const char *hostname; -/* FIXME: limitation of max. 64 addresses - how to make it more flexibale? */ - int addresses[64]; + cpnet_address **addresses; jsize addresses_count; int result; jclass arr_class; jobjectArray addrs; - int i; + jint i; jbyte *octets; jarray ret_octets; - int max_addresses; /* Grab the hostname string */ hostname = (*env)->GetStringUTFChars (env, host, 0); @@ -213,12 +220,8 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env, return (jobjectArray) NULL; } - max_addresses = sizeof (addresses) / sizeof (addresses[0]); - TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_NAME (hostname, - addresses, - max_addresses, - addresses_count, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getHostByName (env, hostname, &addresses, &addresses_count); + if (result != CPNATIVE_OK || addresses_count == 0) { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, (char *) hostname); return (jobjectArray) NULL; @@ -242,28 +245,144 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env, /* Now loop and copy in each address */ for (i = 0; i < addresses_count; i++) { - ret_octets = (*env)->NewByteArray (env, 4); - if (!ret_octets) + if (cpnet_isIPV6Address (addresses[i])) + { + ret_octets = (*env)->NewByteArray (env, 16); + + if (!ret_octets) + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + cpnet_freeAddresses (env, addresses, addresses_count); + return (jobjectArray) NULL; + } + + octets = (*env)->GetByteArrayElements (env, ret_octets, 0); + + cpnet_IPV6AddressToBytes (addresses[i], octets); + + (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); + + (*env)->SetObjectArrayElement (env, addrs, i, ret_octets); + } + else if (cpnet_isIPV4Address (addresses[i])) + { + ret_octets = (*env)->NewByteArray (env, 4); + + if (!ret_octets) + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + cpnet_freeAddresses (env, addresses, addresses_count); + return (jobjectArray) NULL; + } + + octets = (*env)->GetByteArrayElements (env, ret_octets, 0); + + cpnet_IPV4AddressToBytes (addresses[i], octets); + + (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); + + (*env)->SetObjectArrayElement (env, addrs, i, ret_octets); + } + else { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + cpnet_freeAddresses (env, addresses, addresses_count); return (jobjectArray) NULL; } + } + + cpnet_freeAddresses (env, addresses, addresses_count); + + return (addrs); +#else /* not WITHOUT_NETWORK */ + return (jobjectArray) NULL; +#endif /* not WITHOUT_NETWORK */ +} + +/*************************************************************************/ + +/* + * Return the IP address represented by a literal address. + * Will return null if the literal address is not valid. + */ +JNIEXPORT jbyteArray JNICALL +Java_java_net_VMInetAddress_aton (JNIEnv *env, + jclass class + __attribute__ ((__unused__)), + jstring host) +{ +#ifndef WITHOUT_NETWORK + const char *hostname; + cpnet_address *address; + int result; + jbyte *octets; + jbyteArray ret_octets; + + hostname = (*env)->GetStringUTFChars (env, host, 0); + if (!hostname) + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Null hostname"); + return (jbyteArray) NULL; + } + + result = cpnet_aton (env, hostname, &address); + if (result != CPNATIVE_OK) + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + if (address) + cpnet_freeAddress (env, address); + return (jbyteArray) NULL; + } + if (!address) + return (jbyteArray) NULL; + if (cpnet_isIPV6Address (address)) + { + ret_octets = (jbyteArray) (*env)->NewByteArray (env, 16); + + if (!ret_octets) + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + cpnet_freeAddress (env, address); + return (jbyteArray) NULL; + } + octets = (*env)->GetByteArrayElements (env, ret_octets, 0); - TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES (addresses[i], - octets[0], - octets[1], - octets[2], octets[3]); + cpnet_IPV6AddressToBytes (address, octets); (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); + } + else if (cpnet_isIPV4Address (address)) + { + ret_octets = (jbyteArray) (*env)->NewByteArray (env, 4); + + if (!ret_octets) + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + cpnet_freeAddress (env, address); + return (jbyteArray) NULL; + } + + octets = (*env)->GetByteArrayElements (env, ret_octets, 0); + + cpnet_IPV4AddressToBytes (address, octets); - (*env)->SetObjectArrayElement (env, addrs, i, ret_octets); + (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); + } + else + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + cpnet_freeAddress (env, address); + return (jbyteArray) NULL; } - return (addrs); + cpnet_freeAddress (env, address); + + return (ret_octets); + #else /* not WITHOUT_NETWORK */ - return (jobjectArray) NULL; + return (jbyteArray) NULL; #endif /* not WITHOUT_NETWORK */ } diff --git a/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c b/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c index f05e9fcc5a2..b51bf68ecee 100644 --- a/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c +++ b/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c @@ -35,9 +35,17 @@ 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. */ -/* do not move; needed here because of some macro definitions */ +#ifdef HAVE_CONFIG_H #include +#endif /* HAVE_CONFIG_H */ +#include +#include +#ifdef HAVE_IFADDRS_H +#include +#endif +#include +#include #include #include #include @@ -47,19 +55,197 @@ exception statement from your version. */ #include "java_net_VMNetworkInterface.h" -#include "javanet.h" + +static jmethodID java_net_VMNetworkInterface_init; +static jmethodID java_net_VMNetworkInterface_addAddress; /* - * Returns all local network interfaces as vector + * Initialize our static method ID's. + * + * Class: java_net_VMNetworkInterface + * Method: initIds + * Signature: ()V */ -JNIEXPORT jobject JNICALL -Java_java_net_VMNetworkInterface_getInterfaces (JNIEnv * env, - jclass class - __attribute__ ((__unused__))) +JNIEXPORT void JNICALL +Java_java_net_VMNetworkInterface_initIds (JNIEnv *env, jclass clazz) +{ + java_net_VMNetworkInterface_init = + (*env)->GetMethodID (env, clazz, "", "(Ljava/lang/String;)V"); + if (java_net_VMNetworkInterface_init == NULL) + { + if (!(*env)->ExceptionCheck (env)) + JCL_ThrowException (env, "java/lang/NoSuchMethodError", + "VMNetworkinterface.addAddress"); + return; + } + java_net_VMNetworkInterface_addAddress = + (*env)->GetMethodID (env, clazz, "addAddress", "(Ljava/nio/ByteBuffer;)V"); + if (java_net_VMNetworkInterface_addAddress == NULL) + { + if (!(*env)->ExceptionCheck (env)) + JCL_ThrowException (env, "java/lang/NoSuchMethodError", + "VMNetworkinterface.addAddress"); + } +} + +struct netif_entry +{ + char *name; + jobject netif; + int numaddrs; + struct netif_entry *next; +}; + +static void +free_netif_list (JNIEnv *env, struct netif_entry *list) { - JCL_ThrowException (env, IO_EXCEPTION, - "java.net.VMNetworkInterface.getInterfaces(): not implemented"); - return 0; + while (list != NULL) + { + struct netif_entry *e = list->next; + JCL_free (env, list); + list = e; + } +} + +/* + * Returns all local network interfaces as an array. + */ +JNIEXPORT jobjectArray JNICALL +Java_java_net_VMNetworkInterface_getVMInterfaces (JNIEnv * env, jclass clazz) +{ +#if defined (HAVE_IFADDRS_H) && defined (HAVE_GETIFADDRS) + struct ifaddrs *ifaddrs, *i; + struct netif_entry *iflist = NULL, *e; + jobjectArray netifs; + int numifs = 0; + int k; + + if (getifaddrs (&ifaddrs) == -1) + { + JCL_ThrowException (env, "java/net/SocketException", strerror (errno)); + return NULL; + } + + for (i = ifaddrs; i != NULL; i = i->ifa_next) + { + if (iflist == NULL) + { + iflist = JCL_malloc (env, sizeof (struct netif_entry)); + if (iflist == NULL) + { + freeifaddrs (ifaddrs); + return NULL; + } + iflist->name = i->ifa_name; + iflist->numaddrs = 0; + iflist->next = NULL; + iflist->netif = (*env)->NewObject (env, clazz, java_net_VMNetworkInterface_init, + (*env)->NewStringUTF (env, i->ifa_name)); + if (iflist->netif == NULL) + { + freeifaddrs (ifaddrs); + JCL_free (env, iflist); + return NULL; + } + e = iflist; + } + else + { + struct netif_entry *p = NULL; + for (e = iflist; e != NULL; e = e->next) + { + if (strcmp (e->name, i->ifa_name) == 0) + break; + p = e; + } + + if (e == NULL) + { + p->next = (struct netif_entry *) JCL_malloc (env, sizeof (struct netif_entry)); + if (p->next == NULL) + { + free_netif_list (env, iflist); + freeifaddrs (ifaddrs); + return NULL; + } + e = p->next; + e->name = i->ifa_name; + e->numaddrs = 0; + e->next = NULL; + e->netif = (*env)->NewObject (env, clazz, java_net_VMNetworkInterface_init, + (*env)->NewStringUTF (env, i->ifa_name)); + if (e->netif == NULL) + { + free_netif_list (env, iflist); + freeifaddrs (ifaddrs); + return NULL; + } + } + } + + if (i->ifa_addr == NULL) + continue; + + if (i->ifa_addr->sa_family == AF_INET) + { + struct sockaddr_in *sin = (struct sockaddr_in *) i->ifa_addr; + jobject buffer = (*env)->NewDirectByteBuffer (env, &(sin->sin_addr.s_addr), 4); + (*env)->CallVoidMethod (env, e->netif, java_net_VMNetworkInterface_addAddress, + buffer); + if ((*env)->ExceptionCheck (env)) + { + free_netif_list (env, iflist); + freeifaddrs (ifaddrs); + return NULL; + } + (*env)->DeleteLocalRef (env, buffer); + e->numaddrs++; + } +#ifdef HAVE_INET6 + else if (i->ifa_addr->sa_family == AF_INET6) + { + struct sockaddr_in6 *sin = (struct sockaddr_in6 *) i->ifa_addr; + jobject buffer = (*env)->NewDirectByteBuffer (env, &(sin->sin6_addr.s6_addr), 16); + (*env)->CallVoidMethod (env, e->netif, java_net_VMNetworkInterface_addAddress, + buffer); + if ((*env)->ExceptionCheck (env)) + { + free_netif_list (env, iflist); + freeifaddrs (ifaddrs); + return NULL; + } + (*env)->DeleteLocalRef (env, buffer); + e->numaddrs++; + } +#endif /* HAVE_INET6 */ + } + + /* Count how many interfaces we have that have addresses. */ + for (e = iflist; e != NULL; e = e->next) + { + if (e->numaddrs != 0) + numifs++; + } + + netifs = (*env)->NewObjectArray (env, numifs, clazz, NULL); + k = 0; + for (e = iflist; e != NULL && k < numifs; e = e->next) + { + if (e->numaddrs != 0) + { + (*env)->SetObjectArrayElement (env, netifs, k, e->netif); + (*env)->DeleteLocalRef (env, e->netif); + k++; + } + } + + free_netif_list (env, iflist); + freeifaddrs (ifaddrs); + return netifs; +#else + JCL_ThrowException (env, "java/net/SocketException", "getifaddrs not supported"); + return NULL; +#endif /* HAVE_GETIFADDRS */ } /* end of file */ diff --git a/libjava/classpath/native/jni/java-net/javanet.c b/libjava/classpath/native/jni/java-net/javanet.c index e500c608431..1d2f7202a17 100644 --- a/libjava/classpath/native/jni/java-net/javanet.c +++ b/libjava/classpath/native/jni/java-net/javanet.c @@ -45,12 +45,10 @@ exception statement from your version. */ #include #include -#include "javanet.h" +#include "cpnative.h" +#include "cpnet.h" -#include "target_native.h" -#ifndef WITHOUT_NETWORK -#include "target_native_network.h" -#endif /* WITHOUT_NETWORK */ +#include "javanet.h" #ifndef WITHOUT_NETWORK /* Need to have some value for SO_TIMEOUT */ @@ -234,23 +232,20 @@ _javanet_create_integer (JNIEnv * env, jint val) /* * Builds an InetAddress object from a 32 bit address in host byte order */ -static jobject -_javanet_create_inetaddress (JNIEnv * env, int netaddr) +jobject +_javanet_create_inetaddress (JNIEnv * env, cpnet_address *netaddr) { #ifndef WITHOUT_NETWORK - unsigned char octets[4]; - char buf[16]; + jbyte octets[4]; + char buf[64]; jclass ia_cls; jmethodID mid; jstring ip_str; jobject ia; /* Build a string IP address */ - TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES (netaddr, - octets[0], - octets[1], - octets[2], octets[3]); - sprintf (buf, "%d.%d.%d.%d", octets[0], octets[1], octets[2], octets[3]); + cpnet_IPV4AddressToBytes(netaddr, octets); + sprintf (buf, "%d.%d.%d.%d", (int) (unsigned char)octets[0], (int)(unsigned char)octets[1], (int)(unsigned char)octets[2], (int)(unsigned char)octets[3]); DBG ("_javanet_create_inetaddress(): Created ip addr string\n"); /* Get an InetAddress object for this IP */ @@ -320,7 +315,7 @@ _javanet_set_remhost_addr (JNIEnv * env, jobject this, jobject ia) * InetAddress for the specified addr */ static void -_javanet_set_remhost (JNIEnv * env, jobject this, int netaddr) +_javanet_set_remhost (JNIEnv * env, jobject this, cpnet_address *netaddr) { jobject ia; @@ -338,19 +333,20 @@ _javanet_set_remhost (JNIEnv * env, jobject this, int netaddr) /*************************************************************************/ /* - * Returns a 32 bit Internet address for the passed in InetAddress object + * Returns an Internet address for the passed in InetAddress object */ -int -_javanet_get_netaddr (JNIEnv * env, jobject addr) +cpnet_address * +_javanet_get_ip_netaddr (JNIEnv * env, jobject addr) { #ifndef WITHOUT_NETWORK jclass cls = 0; jmethodID mid; jarray arr = 0; jbyte *octets; - int netaddr, len; + cpnet_address *netaddr; + jint len; - DBG ("_javanet_get_netaddr(): Entered _javanet_get_netaddr\n"); + DBG ("_javanet_get_ip_netaddr(): Entered _javanet_get_ip_netaddr\n"); if (addr == NULL) { @@ -368,36 +364,51 @@ _javanet_get_netaddr (JNIEnv * env, jobject addr) if (mid == NULL) return 0; - DBG ("_javanet_get_netaddr(): Got getAddress method\n"); + DBG ("_javanet_get_ip_netaddr(): Got getAddress method\n"); arr = (*env)->CallObjectMethod (env, addr, mid); if (arr == NULL) return 0; - DBG ("_javanet_get_netaddr(): Got the address\n"); + DBG ("_javanet_get_ip_netaddr(): Got the address\n"); - /* Turn the IP address into a 32 bit Internet address in network byte order */ + /* Turn the IP address into a system cpnet address. + * If the length is 4 then it is an IPV4 address, if it + * is 16 then it is an IPV6 address else it is an InternError. */ len = (*env)->GetArrayLength (env, arr); - if (len != 4) + if (len != 4 && len != 16) { JCL_ThrowException (env, IO_EXCEPTION, "Internal Error"); return 0; } - DBG ("_javanet_get_netaddr(): Length ok\n"); + DBG ("_javanet_get_ip_netaddr(): Length ok\n"); octets = (*env)->GetByteArrayElements (env, arr, 0); if (octets == NULL) return 0; - DBG ("_javanet_get_netaddr(): Grabbed bytes\n"); + DBG ("_javanet_get_ip_netaddr(): Grabbed bytes\n"); - TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT (octets[0], - octets[1], - octets[2], - octets[3], netaddr); + switch (len) + { + case 4: + netaddr = cpnet_newIPV4Address(env); + cpnet_bytesToIPV4Address(netaddr, octets); + break; + case 16: + netaddr = cpnet_newIPV6Address(env); + cpnet_bytesToIPV6Address(netaddr, octets); + break; + default: + /* This should not happen as we have checked before. + * But that way we shut the compiler warnings */ + JCL_ThrowException (env, IO_EXCEPTION, "Internal Error"); + return 0; + + } (*env)->ReleaseByteArrayElements (env, arr, octets, 0); - DBG ("_javanet_get_netaddr(): Done getting addr\n"); + DBG ("_javanet_get_ip_netaddr(): Done getting addr\n"); return netaddr; #else /* not WITHOUT_NETWORK */ @@ -419,29 +430,29 @@ _javanet_create (JNIEnv * env, jobject this, jboolean stream) if (stream) { /* create a stream socket */ - TARGET_NATIVE_NETWORK_SOCKET_OPEN_STREAM (fd, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_openSocketStream(env, &fd, AF_INET); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } } else { /* create a datagram socket, set broadcast option */ - TARGET_NATIVE_NETWORK_SOCKET_OPEN_DATAGRAM (fd, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_openSocketDatagram (env, &fd, AF_INET); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_BROADCAST (fd, 1, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_setBroadcast(env, fd, 1); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } } @@ -458,13 +469,11 @@ _javanet_create (JNIEnv * env, jobject this, jboolean stream) /* Try to make sure we close the socket since close() won't work. */ do { - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); - if (result != TARGET_NATIVE_OK - && (TARGET_NATIVE_LAST_ERROR () - != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) + result = cpnet_close(env, fd); + if (result != CPNATIVE_OK && result != CPNATIVE_EINTR) return; } - while (result != TARGET_NATIVE_OK); + while (result != CPNATIVE_OK); return; } @@ -498,18 +507,16 @@ _javanet_close (JNIEnv * env, jobject this, int stream) "native_fd", -1); do { - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_close (env, fd); + if (result != CPNATIVE_OK) { /* Only throw an error when a "real" error occurs. */ - error = TARGET_NATIVE_LAST_ERROR (); - if (error != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL - && error != ENOTCONN && error != ECONNRESET && error != EBADF) + if (result != CPNATIVE_EINTR && result != ENOTCONN && result != ECONNRESET && result != EBADF) JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); } } - while (error == TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL); + while (error == CPNATIVE_EINTR); #else /* not WITHOUT_NETWORK */ #endif /* not WITHOUT_NETWORK */ @@ -525,20 +532,24 @@ _javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port, jboolean stream) { #ifndef WITHOUT_NETWORK - int netaddr, fd; + cpnet_address *netaddr; + int fd; int result; - int local_address, local_port; - int remote_address, remote_port; + cpnet_address *local_addr; + cpnet_address *remote_addr; DBG ("_javanet_connect(): Entered _javanet_connect\n"); /* Pre-process input variables */ - netaddr = _javanet_get_netaddr (env, addr); + netaddr = _javanet_get_ip_netaddr (env, addr); if ((*env)->ExceptionOccurred (env)) return; if (port == -1) port = 0; + + cpnet_addressSetPort(netaddr, port); + DBG ("_javanet_connect(): Got network address\n"); /* Grab the real socket file descriptor */ @@ -554,29 +565,27 @@ _javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port, /* Connect up */ do { - TARGET_NATIVE_NETWORK_SOCKET_CONNECT (fd, netaddr, port, result); - if (result != TARGET_NATIVE_OK - && (TARGET_NATIVE_LAST_ERROR () - != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) + result = cpnet_connect (env, fd, netaddr); + if (result != CPNATIVE_OK && result != CPNATIVE_EINTR) { JCL_ThrowException (env, CONNECT_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } } - while (result != TARGET_NATIVE_OK); - + while (result != CPNATIVE_OK); + DBG ("_javanet_connect(): Connected successfully\n"); /* Populate instance variables */ - TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO (fd, local_address, local_port, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getLocalAddr (env, fd, &local_addr); + if (result != CPNATIVE_OK) { + cpnet_freeAddress(env, netaddr); JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); + cpnet_close (env, fd); return; } @@ -584,63 +593,72 @@ _javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port, if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); + cpnet_freeAddress(env, netaddr); + cpnet_freeAddress(env, local_addr); + cpnet_close (env, fd); return; } DBG ("_javanet_connect(): Created fd\n"); if (stream) _javanet_set_int_field (env, this, "java/net/SocketImpl", "localport", - local_port); + cpnet_addressGetPort(local_addr)); else _javanet_set_int_field (env, this, "java/net/DatagramSocketImpl", - "localPort", local_port); + "localPort", cpnet_addressGetPort(local_addr)); + cpnet_freeAddress (env, local_addr); if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); + cpnet_freeAddress(env, netaddr); + cpnet_close (env, fd); return; } DBG ("_javanet_connect(): Set the local port\n"); - TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO (fd, remote_address, - remote_port, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getRemoteAddr (env, fd, &remote_addr); + if (result != CPNATIVE_OK) { + cpnet_freeAddress(env, netaddr); JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); + cpnet_close (env, fd); return; } if (stream) { - if (remote_address == netaddr) + if (cpnet_isAddressEqual(remote_addr, netaddr)) { _javanet_set_remhost_addr (env, this, addr); } else { - _javanet_set_remhost (env, this, remote_address); + _javanet_set_remhost (env, this, remote_addr); } + cpnet_freeAddress(env, netaddr); + if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); + cpnet_freeAddress (env, remote_addr); + cpnet_close (env, fd); return; } DBG ("_javanet_connect(): Set the remote host\n"); _javanet_set_int_field (env, this, "java/net/SocketImpl", "port", - remote_port); + cpnet_addressGetPort(remote_addr)); + cpnet_freeAddress (env, remote_addr); + if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result); + cpnet_close (env, fd); return; } DBG ("_javanet_connect(): Set the remote port\n"); @@ -661,98 +679,59 @@ _javanet_bind (JNIEnv * env, jobject this, jobject addr, jint port, int stream) { #ifndef WITHOUT_NETWORK - jclass cls; - jmethodID mid; - jbyteArray arr = 0; - jbyte *octets; jint fd; - int tmpaddr; + cpnet_address *tmpaddr; + cpnet_address *local_addr; int result; - int local_address, local_port; DBG ("_javanet_bind(): Entering native bind()\n"); - - /* Get the address to connect to */ - cls = (*env)->GetObjectClass (env, addr); - if (cls == NULL) - return; - - mid = (*env)->GetMethodID (env, cls, "getAddress", "()[B"); - if (mid == NULL) - return; - - DBG ("_javanet_bind(): Past getAddress method id\n"); - - arr = (*env)->CallObjectMethod (env, addr, mid); - if ((arr == NULL) || (*env)->ExceptionOccurred (env)) - { - JCL_ThrowException (env, IO_EXCEPTION, - "Internal error: _javanet_bind()"); - return; - } - - DBG ("_javanet_bind(): Past call object method\n"); - - octets = (*env)->GetByteArrayElements (env, arr, 0); - if (octets == NULL) - return; - - DBG ("_javanet_bind(): Past grab array\n"); - - /* Get the native socket file descriptor */ + + /* Grab the real socket file descriptor */ fd = _javanet_get_int_field (env, this, "native_fd"); if (fd == -1) { - (*env)->ReleaseByteArrayElements (env, arr, octets, 0); JCL_ThrowException (env, IO_EXCEPTION, - "Internal error: _javanet_bind(): no native file descriptor"); + "Internal error: _javanet_connect(): no native file descriptor"); return; } - DBG ("_javanet_bind(): Past native_fd lookup\n"); - /* XXX NYI ??? */ - _javanet_set_option (env, this, SOCKOPT_SO_REUSEADDR, - _javanet_create_boolean (env, JNI_TRUE)); + cpnet_setReuseAddress (env, fd, 1); + /* Get the address to connect to */ + tmpaddr = _javanet_get_ip_netaddr (env, addr); + if ((*env)->ExceptionOccurred (env)) + return; - /* Bind the socket */ - TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT (octets[0], - octets[1], - octets[2], - octets[3], tmpaddr); - TARGET_NATIVE_NETWORK_SOCKET_BIND (fd, tmpaddr, port, result); - - if (result != TARGET_NATIVE_OK) + cpnet_addressSetPort (tmpaddr, port); + result = cpnet_bind(env, fd, tmpaddr); + cpnet_freeAddress (env, tmpaddr); + if (result != CPNATIVE_OK) { - char *errorstr = TARGET_NATIVE_LAST_ERROR_STRING (); - (*env)->ReleaseByteArrayElements (env, arr, octets, 0); - JCL_ThrowException (env, BIND_EXCEPTION, - errorstr); + cpnative_getErrorString (result)); return; } DBG ("_javanet_bind(): Past bind\n"); - (*env)->ReleaseByteArrayElements (env, arr, octets, 0); - /* Update instance variables, specifically the local port number */ - TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO (fd, local_address, local_port, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getLocalAddr (env, fd, &local_addr); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } if (stream) _javanet_set_int_field (env, this, "java/net/SocketImpl", - "localport", local_port); + "localport", cpnet_addressGetPort (local_addr)); else _javanet_set_int_field (env, this, "java/net/DatagramSocketImpl", - "localPort", local_port); + "localPort", cpnet_addressGetPort (local_addr)); DBG ("_javanet_bind(): Past update port number\n"); + cpnet_freeAddress (env, local_addr); + return; #else /* not WITHOUT_NETWORK */ #endif /* not WITHOUT_NETWORK */ @@ -781,11 +760,11 @@ _javanet_listen (JNIEnv * env, jobject this, jint queuelen) } /* Start listening */ - TARGET_NATIVE_NETWORK_SOCKET_LISTEN (fd, queuelen, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_listen (env, fd, queuelen); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } #else /* not WITHOUT_NETWORK */ @@ -804,8 +783,7 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl) #ifndef WITHOUT_NETWORK int fd, newfd; int result; - int local_address, local_port; - int remote_address, remote_port; + cpnet_address *remote_addr, *local_addr; /* Get the real file descriptor */ fd = _javanet_get_int_field (env, this, "native_fd"); @@ -819,24 +797,22 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl) /* Accept the connection */ do { - TARGET_NATIVE_NETWORK_SOCKET_ACCEPT (fd, newfd, result); - if (result != TARGET_NATIVE_OK - && (TARGET_NATIVE_LAST_ERROR () - != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) + result = cpnet_accept (env, fd, &newfd); + if (result != CPNATIVE_OK && result != CPNATIVE_EINTR) { - if (TARGET_NATIVE_LAST_ERROR () == EAGAIN) + if (result == ETIMEDOUT || result == EAGAIN) JCL_ThrowException (env, "java/net/SocketTimeoutException", - "Timeout"); + "Accept operation timed out"); else JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } } - while (result != TARGET_NATIVE_OK); + while (result != CPNATIVE_OK); /* Reset the inherited timeout. */ - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT (newfd, 0, result); + cpnet_setSocketTimeout (env, newfd, 0); /* Populate instance variables */ _javanet_set_int_field (env, impl, "gnu/java/net/PlainSocketImpl", @@ -847,24 +823,21 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl) /* Try to make sure we close the socket since close() won't work. */ do { - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (newfd, result); - if (result != TARGET_NATIVE_OK - && (TARGET_NATIVE_LAST_ERROR () - != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) + result = cpnet_close (env, newfd); + if (result != CPNATIVE_OK && result != CPNATIVE_EINTR) return; } - while (result != TARGET_NATIVE_OK); + while (result != CPNATIVE_OK); return; } - TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO (newfd, local_address, - local_port, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getLocalAddr (env, newfd, &local_addr); + if (result != CPNATIVE_OK) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (newfd, result); + cpnet_close (env, newfd); JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } @@ -872,44 +845,47 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl) if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (newfd, result); + cpnet_freeAddress (env, local_addr); + cpnet_close (env, newfd); return; } _javanet_set_int_field (env, impl, "java/net/SocketImpl", "localport", - local_port); + cpnet_addressGetPort (local_addr)); + cpnet_freeAddress (env, local_addr); if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (newfd, result); + cpnet_close (env, newfd); return; } - TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO (newfd, remote_address, - remote_port, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getRemoteAddr (env, newfd, &remote_addr); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (newfd, result); + cpnet_close (env, newfd); return; } - _javanet_set_remhost (env, impl, remote_address); + _javanet_set_remhost (env, impl, remote_addr); if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (newfd, result); + cpnet_close (env, newfd); + cpnet_freeAddress (env, remote_addr); return; } _javanet_set_int_field (env, impl, "java/net/SocketImpl", "port", - remote_port); + cpnet_addressGetPort (remote_addr)); + cpnet_freeAddress (env, remote_addr); if ((*env)->ExceptionOccurred (env)) { /* We don't care whether this succeeds. close() will cleanup later. */ - TARGET_NATIVE_NETWORK_SOCKET_CLOSE (newfd, result); + cpnet_close (env, newfd); return; } #else /* not WITHOUT_NETWORK */ @@ -934,13 +910,14 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl) */ int _javanet_recvfrom (JNIEnv * env, jobject this, jarray buf, int offset, - int len, int *addr, int *port) + int len, cpnet_address **addr) { #ifndef WITHOUT_NETWORK int fd; jbyte *p; - int from_address, from_port; - int received_bytes; + cpnet_address *from_addr; + jint received_bytes; + int result; DBG ("_javanet_recvfrom(): Entered _javanet_recvfrom\n"); @@ -962,36 +939,26 @@ _javanet_recvfrom (JNIEnv * env, jobject this, jarray buf, int offset, DBG ("_javanet_recvfrom(): Got buffer\n"); /* Read the data */ - from_address = 0; - from_port = 0; + from_addr = NULL; do { if (addr != NULL) { - TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_WITH_ADDRESS_PORT (fd, - p + offset, - len, - from_address, - from_port, - received_bytes); + result = cpnet_recvFrom (env, fd, p + offset, len, &from_addr, &received_bytes); } else { - TARGET_NATIVE_NETWORK_SOCKET_RECEIVE (fd, p + offset, len, - received_bytes); + result = cpnet_recv (env, fd, p + offset, len, &received_bytes); } } - while ((received_bytes == -1) && - (TARGET_NATIVE_LAST_ERROR () == - TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)); - - if (received_bytes == -1) + while (result == CPNATIVE_EINTR); + if (result != 0) { - if (TARGET_NATIVE_LAST_ERROR () == EAGAIN) - JCL_ThrowException (env, "java/net/SocketTimeoutException", "Timeout"); + if (result == EAGAIN || result == ETIMEDOUT) + JCL_ThrowException (env, "java/net/SocketTimeoutException", "Receive operation timed out"); else JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); /* Cleanup and return. */ (*env)->ReleaseByteArrayElements (env, buf, p, 0); @@ -1003,9 +970,7 @@ _javanet_recvfrom (JNIEnv * env, jobject this, jarray buf, int offset, /* Handle return addr case */ if (addr != NULL) { - (*addr) = from_address; - if (port != NULL) - (*port) = from_port; + (*addr) = from_addr; } /* zero bytes received means recv() noticed the other side orderly @@ -1013,7 +978,7 @@ _javanet_recvfrom (JNIEnv * env, jobject this, jarray buf, int offset, if (received_bytes == 0) received_bytes = -1; - return (received_bytes); + return received_bytes; #else /* not WITHOUT_NETWORK */ #endif /* not WITHOUT_NETWORK */ } @@ -1031,12 +996,13 @@ _javanet_recvfrom (JNIEnv * env, jobject this, jarray buf, int offset, */ void _javanet_sendto (JNIEnv * env, jobject this, jarray buf, int offset, int len, - int addr, int port) + cpnet_address *addr) { #ifndef WITHOUT_NETWORK int fd; jbyte *p; - int bytes_sent; + jint bytes_sent; + int result; /* Get the real file descriptor */ fd = _javanet_get_int_field (env, this, "native_fd"); @@ -1056,26 +1022,30 @@ _javanet_sendto (JNIEnv * env, jobject this, jarray buf, int offset, int len, while (len > 0) { /* Send the data */ - if (addr == 0) + if (addr == NULL) { DBG ("_javanet_sendto(): Sending....\n"); - TARGET_NATIVE_NETWORK_SOCKET_SEND (fd, p + offset, len, bytes_sent); + result = cpnet_send (env, fd, p + offset, len, &bytes_sent); } else { DBG ("_javanet_sendto(): Sending....\n"); - TARGET_NATIVE_NETWORK_SOCKET_SEND_WITH_ADDRESS_PORT (fd, p + offset, - len, addr, port, - bytes_sent); + result = cpnet_sendTo (env, fd, p + offset, len, addr, &bytes_sent); } + if (result == EDESTADDRREQ) + { + JCL_ThrowException (env, NULL_EXCEPTION, + "Socket is not connected and no address is given"); + break; + } + if (bytes_sent < 0) { - if (TARGET_NATIVE_LAST_ERROR () - != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL) + if (result != CPNATIVE_EINTR) { JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); break; } } @@ -1105,8 +1075,8 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) int optval; jclass cls; jmethodID mid; - int address; - int result; + cpnet_address * address; + int result = CPNATIVE_OK; /* Get the real file descriptor */ fd = _javanet_get_int_field (env, this, "native_fd"); @@ -1123,7 +1093,6 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) return; /* Process the option request */ - result = TARGET_NATIVE_ERROR; switch (option_id) { /* TCP_NODELAY case. val is a Boolean that tells us what to do */ @@ -1141,8 +1110,7 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) if ((*env)->ExceptionOccurred (env)) return; - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_TCP_NODELAY (fd, optval, - result); + result = cpnet_setSocketTCPNoDelay (env, fd, optval); break; /* SO_LINGER case. If val is a boolean, then it will always be set @@ -1153,8 +1121,7 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) if (mid) { /* We are disabling linger */ - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER (fd, 1, 0, - result); + result = cpnet_setLinger (env, fd, JNI_FALSE, 0); } else { @@ -1175,15 +1142,13 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) if ((*env)->ExceptionOccurred (env)) return; - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER (fd, 0, optval, - result); + result = cpnet_setLinger(env, fd, JNI_TRUE, optval); } break; /* SO_TIMEOUT case. Val will be an integer with the new value */ /* Not writable on Linux */ case SOCKOPT_SO_TIMEOUT: -#ifdef SO_TIMEOUT mid = (*env)->GetMethodID (env, cls, "intValue", "()I"); if (mid == NULL) { @@ -1196,10 +1161,7 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) if ((*env)->ExceptionOccurred (env)) return; - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT (fd, optval, result); -#else - result = TARGET_NATIVE_OK; -#endif + result = cpnet_setSocketTimeout (env, fd, optval); break; case SOCKOPT_SO_SNDBUF: @@ -1218,11 +1180,9 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) return; if (option_id == SOCKOPT_SO_SNDBUF) - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_SNDBUF (fd, optval, - result); + result = cpnet_setSendBuf (env, fd, optval); else - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_RCDBUF (fd, optval, - result); + result = cpnet_setRecvBuf (env, fd, optval); break; /* TTL case. Val with be an Integer with the new time to live value */ @@ -1239,18 +1199,18 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) if ((*env)->ExceptionOccurred (env)) return; - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_TTL (fd, optval, result); + result = cpnet_setTTL (env, fd, optval); break; /* Multicast Interface case - val is InetAddress object */ case SOCKOPT_IP_MULTICAST_IF: - address = _javanet_get_netaddr (env, val); + address = _javanet_get_ip_netaddr (env, val); if ((*env)->ExceptionOccurred (env)) return; - - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_MULTICAST_IF (fd, address, - result); + + result = cpnet_setMulticastIF (env, fd, address); + cpnet_freeAddress (env, address); break; case SOCKOPT_SO_REUSEADDR: @@ -1267,8 +1227,7 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) if ((*env)->ExceptionOccurred (env)) return; - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_REUSE_ADDRESS (fd, optval, - result); + result = cpnet_setReuseAddress (env, fd, optval); break; case SOCKOPT_SO_KEEPALIVE: @@ -1285,7 +1244,7 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) if ((*env)->ExceptionOccurred (env)) return; - TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_KEEP_ALIVE (fd, optval, result); + result = cpnet_setKeepAlive (env, fd, optval); break; case SOCKOPT_SO_BINDADDR: @@ -1298,10 +1257,10 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val) } /* Check to see if above operations succeeded */ - if (result != TARGET_NATIVE_OK) + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return; } #else /* not WITHOUT_NETWORK */ @@ -1319,8 +1278,9 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id) #ifndef WITHOUT_NETWORK int fd; int flag, optval; - int address; + cpnet_address *address; int result; + jobject obj; /* Get the real file descriptor */ fd = _javanet_get_int_field (env, this, "native_fd"); @@ -1336,12 +1296,11 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id) { /* TCP_NODELAY case. Return a Boolean indicating on or off */ case SOCKOPT_TCP_NODELAY: - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_TCP_NODELAY (fd, optval, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getSocketTCPNoDelay (env, fd, &optval); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } @@ -1355,17 +1314,17 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id) /* SO_LINGER case. If disabled, return a Boolean object that represents false, else return an Integer that is the value of SO_LINGER */ case SOCKOPT_SO_LINGER: - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_LINGER (fd, flag, optval, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getLinger (env, fd, &flag, &optval); + + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } - if (optval) - return (_javanet_create_integer (env, JNI_TRUE)); + if (flag) + return (_javanet_create_integer (env, optval)); else return (_javanet_create_boolean (env, JNI_FALSE)); @@ -1373,34 +1332,27 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id) /* SO_TIMEOUT case. Return an Integer object with the timeout value */ case SOCKOPT_SO_TIMEOUT: -#ifdef SO_TIMEOUT - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT (fd, optval, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getSocketTimeout (env, fd, &optval); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } return (_javanet_create_integer (env, optval)); -#else - JCL_ThrowException (env, SOCKET_EXCEPTION, - "SO_TIMEOUT not supported on this platform"); - return (0); -#endif /* not SO_TIMEOUT */ break; case SOCKOPT_SO_SNDBUF: case SOCKOPT_SO_RCVBUF: if (option_id == SOCKOPT_SO_SNDBUF) - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_SNDBUF (fd, optval, - result); + result = cpnet_getSendBuf (env, fd, &optval); else - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_RCDBUF (fd, optval, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getRecvBuf (env, fd, &optval); + + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } @@ -1409,11 +1361,11 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id) /* The TTL case. Return an Integer with the Time to Live value */ case SOCKOPT_IP_TTL: - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_TTL (fd, optval, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getTTL (env, fd, &optval); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } @@ -1422,61 +1374,64 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id) /* Multicast interface case */ case SOCKOPT_IP_MULTICAST_IF: - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_MULTICAST_IF (fd, address, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getMulticastIF (env, fd, &address); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } - return (_javanet_create_inetaddress (env, address)); + obj = _javanet_create_inetaddress (env, address); + cpnet_freeAddress (env, address); + + return obj; break; case SOCKOPT_SO_BINDADDR: - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BIND_ADDRESS (fd, address, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getLocalAddr (env, fd, &address); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } - return (_javanet_create_inetaddress (env, address)); + obj = _javanet_create_inetaddress (env, address); + cpnet_freeAddress (env, address); + + return obj; break; case SOCKOPT_SO_REUSEADDR: - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_REUSE_ADDRESS (fd, optval, - result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getReuseAddress (env, fd, &optval); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } if (optval) - return (_javanet_create_boolean (env, JNI_TRUE)); + return _javanet_create_boolean (env, JNI_TRUE); else - return (_javanet_create_boolean (env, JNI_FALSE)); + return _javanet_create_boolean (env, JNI_FALSE); break; case SOCKOPT_SO_KEEPALIVE: - TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_KEEP_ALIVE (fd, optval, result); - if (result != TARGET_NATIVE_OK) + result = cpnet_getKeepAlive (env, fd, &optval); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); + cpnative_getErrorString (result)); return (0); } if (optval) - return (_javanet_create_boolean (env, JNI_TRUE)); + return _javanet_create_boolean (env, JNI_TRUE); else - return (_javanet_create_boolean (env, JNI_FALSE)); + return _javanet_create_boolean (env, JNI_FALSE); break; @@ -1493,6 +1448,7 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id) void _javanet_shutdownInput (JNIEnv * env, jobject this) { + int result; int fd; /* Get the real file descriptor. */ @@ -1505,10 +1461,11 @@ _javanet_shutdownInput (JNIEnv * env, jobject this) } /* Shutdown input stream of socket. */ - if (shutdown (fd, SHUT_RD) == -1) + result = cpnet_shutdown (env, fd, CPNET_SHUTDOWN_READ); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING()); + cpnative_getErrorString (result)); return; } } @@ -1517,6 +1474,7 @@ void _javanet_shutdownOutput (JNIEnv * env, jobject this) { int fd; + int result; /* Get the real file descriptor. */ fd = _javanet_get_int_field (env, this, "native_fd"); @@ -1528,10 +1486,11 @@ _javanet_shutdownOutput (JNIEnv * env, jobject this) } /* Shutdown output stream of socket. */ - if (shutdown (fd, SHUT_WR) == -1) + result = cpnet_shutdown (env, fd, CPNET_SHUTDOWN_WRITE); + if (result != CPNATIVE_OK) { JCL_ThrowException (env, SOCKET_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING()); + cpnative_getErrorString (result)); return; } } diff --git a/libjava/classpath/native/jni/java-net/javanet.h b/libjava/classpath/native/jni/java-net/javanet.h index 030d41282ba..96dba881b54 100644 --- a/libjava/classpath/native/jni/java-net/javanet.h +++ b/libjava/classpath/native/jni/java-net/javanet.h @@ -41,6 +41,7 @@ exception statement from your version. */ #include #include "jcl.h" +#include "cpnet.h" /*************************************************************************/ @@ -54,6 +55,7 @@ exception statement from your version. */ #define CONNECT_EXCEPTION "java/net/ConnectException" #define SOCKET_EXCEPTION "java/net/SocketException" #define UNKNOWN_HOST_EXCEPTION "java/net/UnknownHostException" +#define NULL_EXCEPTION "java/lang/NullPointerException" /* Socket Option Identifiers - Don't change or binary compatibility with the JDK will be broken! These also need to @@ -78,15 +80,16 @@ exception statement from your version. */ */ extern int _javanet_get_int_field(JNIEnv *, jobject, const char *); -extern int _javanet_get_netaddr(JNIEnv *, jobject); +extern cpnet_address *_javanet_get_ip_netaddr(JNIEnv *, jobject); +extern jobject _javanet_create_inetaddress (JNIEnv *, cpnet_address *); extern void _javanet_create(JNIEnv *, jobject, jboolean); extern void _javanet_close(JNIEnv *, jobject, int); extern void _javanet_connect(JNIEnv *, jobject, jobject, jint, jboolean); extern void _javanet_bind(JNIEnv *, jobject, jobject, jint, int); extern void _javanet_listen(JNIEnv *, jobject, jint); extern void _javanet_accept(JNIEnv *, jobject, jobject); -extern int _javanet_recvfrom(JNIEnv *, jobject, jarray, int, int, int *, int *); -extern void _javanet_sendto(JNIEnv *, jobject, jarray, int, int, int, int); +extern int _javanet_recvfrom(JNIEnv *, jobject, jarray, int, int, cpnet_address **); +extern void _javanet_sendto(JNIEnv *, jobject, jarray, int, int, cpnet_address *); extern jobject _javanet_get_option(JNIEnv *, jobject, jint); extern void _javanet_set_option(JNIEnv *, jobject, jint, jobject); extern void _javanet_shutdownInput (JNIEnv *, jobject); diff --git a/libjava/classpath/native/jni/java-net/local.c b/libjava/classpath/native/jni/java-net/local.c index cdddd89efc3..c8ca91c2ab5 100644 --- a/libjava/classpath/native/jni/java-net/local.c +++ b/libjava/classpath/native/jni/java-net/local.c @@ -36,9 +36,7 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif /* HAVE_CONFIG_H */ #ifdef ENABLE_LOCAL_SOCKETS diff --git a/libjava/classpath/native/jni/java-nio/.cvsignore b/libjava/classpath/native/jni/java-nio/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/java-nio/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/java-nio/Makefile.am b/libjava/classpath/native/jni/java-nio/Makefile.am index c3f6caf6209..9f2db83f20f 100644 --- a/libjava/classpath/native/jni/java-nio/Makefile.am +++ b/libjava/classpath/native/jni/java-nio/Makefile.am @@ -3,15 +3,21 @@ nativeexeclib_LTLIBRARIES = libjavanio.la libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \ gnu_java_nio_VMChannel.c \ gnu_java_nio_VMSelector.c \ - gnu_java_nio_channels_FileChannelImpl.c \ gnu_java_nio_charset_iconv_IconvDecoder.c \ gnu_java_nio_charset_iconv_IconvEncoder.c \ java_nio_MappedByteBufferImpl.c \ - java_nio_VMDirectByteBuffer.c + java_nio_VMDirectByteBuffer.c \ + gnu_java_nio_EpollSelectorImpl.c \ + gnu_java_nio_KqueueSelectorImpl.c \ + javanio.h libjavanio_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ $(LTLIBICONV) +# Directly included through javanio.h +EXTRA_DIST = javanio.c + AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ diff --git a/libjava/classpath/native/jni/java-nio/Makefile.in b/libjava/classpath/native/jni/java-nio/Makefile.in index bb3a5833946..147455caf85 100644 --- a/libjava/classpath/native/jni/java-nio/Makefile.in +++ b/libjava/classpath/native/jni/java-nio/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -65,14 +67,16 @@ LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) am__DEPENDENCIES_1 = libjavanio_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ $(am__DEPENDENCIES_1) am_libjavanio_la_OBJECTS = gnu_java_nio_VMPipe.lo \ gnu_java_nio_VMChannel.lo gnu_java_nio_VMSelector.lo \ - gnu_java_nio_channels_FileChannelImpl.lo \ gnu_java_nio_charset_iconv_IconvDecoder.lo \ gnu_java_nio_charset_iconv_IconvEncoder.lo \ java_nio_MappedByteBufferImpl.lo \ - java_nio_VMDirectByteBuffer.lo + java_nio_VMDirectByteBuffer.lo \ + gnu_java_nio_EpollSelectorImpl.lo \ + gnu_java_nio_KqueueSelectorImpl.lo libjavanio_la_OBJECTS = $(am_libjavanio_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -192,6 +196,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -313,21 +319,26 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libjavanio.la libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \ gnu_java_nio_VMChannel.c \ gnu_java_nio_VMSelector.c \ - gnu_java_nio_channels_FileChannelImpl.c \ gnu_java_nio_charset_iconv_IconvDecoder.c \ gnu_java_nio_charset_iconv_IconvEncoder.c \ java_nio_MappedByteBufferImpl.c \ - java_nio_VMDirectByteBuffer.c + java_nio_VMDirectByteBuffer.c \ + gnu_java_nio_EpollSelectorImpl.c \ + gnu_java_nio_KqueueSelectorImpl.c \ + javanio.h libjavanio_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo \ + $(top_builddir)/native/jni/native-lib/libclasspathnative.la \ $(LTLIBICONV) + +# Directly included through javanio.h +EXTRA_DIST = javanio.c AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ @@ -400,10 +411,11 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_EpollSelectorImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_KqueueSelectorImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_VMChannel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_VMPipe.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_VMSelector.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_channels_FileChannelImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_charset_iconv_IconvDecoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_charset_iconv_IconvEncoder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_nio_MappedByteBufferImpl.Plo@am__quote@ diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c new file mode 100644 index 00000000000..d794e6d9fea --- /dev/null +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c @@ -0,0 +1,414 @@ +/* gnu_java_nio_EpollSelectorImpl.c -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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. */ + + +#ifdef HAVE_CONFIG_H +#include +#endif /* HAVE_CONFIG_H */ + +#ifdef HAVE_SYS_EPOLL_H +#include +#endif /* HAVE_SYS_EPOLL_H */ + +#include +#include +#include +#include + +#define IO_EXCEPTION "java/io/IOException" + +/* #define TRACE_EPOLL 1 */ + + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: epoll_supported + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL +Java_gnu_java_nio_EpollSelectorImpl_epoll_1supported (JNIEnv *e __attribute__((unused)), + jclass c __attribute__((unused))) +{ +#ifdef HAVE_EPOLL_CREATE + return JNI_TRUE; +#else + return JNI_FALSE; +#endif /* HAVE_EPOLL_CREATE */ +} + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: sizeof_struct + * Signature: ()I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_EpollSelectorImpl_sizeof_1struct (JNIEnv *env, + jclass c __attribute__((unused))) +{ +#ifdef HAVE_EPOLL_CREATE + (void) env; +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: sizeof is %d\n", __FUNCTION__, sizeof (struct epoll_event)); +#endif /* TRACE_EPOLL */ + return sizeof (struct epoll_event); +#else + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); + return -1; +#endif /* HAVE_EPOLL_CREATE */ +} + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: epoll_create + * Signature: (I)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_EpollSelectorImpl_epoll_1create (JNIEnv *env, + jclass c __attribute__((unused)), + jint size) +{ +#ifdef HAVE_EPOLL_CREATE + int fd = epoll_create (size); + +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: epoll_create returns %d\n", __FUNCTION__, fd); +#endif /* TRACE_EPOLL */ + + if (fd == -1) + { + if (ENOSYS == errno) + JCL_ThrowException (env, "java/lang/InternalError", + strerror (errno)); + else + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } + return fd; +#else + (void) size; + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); + return -1; +#endif /* HAVE_EPOLL_CREATE */ +} + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: epoll_add + * Signature: (III)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_EpollSelectorImpl_epoll_1add (JNIEnv *env, + jclass c __attribute__((unused)), + jint efd, jint fd, jint ops) +{ +#ifdef HAVE_EPOLL_CREATE + struct epoll_event event; + + memset (&event, 0, sizeof (struct epoll_event)); + + if ((ops & gnu_java_nio_EpollSelectorImpl_OP_ACCEPT) != 0 + || (ops & gnu_java_nio_EpollSelectorImpl_OP_READ) != 0) + event.events = EPOLLIN; + + if ((ops & gnu_java_nio_EpollSelectorImpl_OP_CONNECT) != 0 + || (ops & gnu_java_nio_EpollSelectorImpl_OP_WRITE) != 0) + event.events |= EPOLLOUT; + + event.data.fd = fd; + +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: adding struct epoll_event { events: %o; data.fd: %d } to %d\n", + __FUNCTION__, event.events, event.data.fd, efd); +#endif /* TRACE_EPOLL */ + + if (epoll_ctl (efd, EPOLL_CTL_ADD, fd, &event) == -1) + { + if (ENOSYS == errno) + JCL_ThrowException (env, "java/lang/InternalError", + strerror (errno)); + else + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } +#else + (void) efd; + (void) fd; + (void) ops; + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); +#endif /* HAVE_EPOLL_CREATE */ +} + + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: epoll_modify + * Signature: (III)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_EpollSelectorImpl_epoll_1modify (JNIEnv *env, + jclass c __attribute__((unused)), + jint efd, jint fd, jint ops) +{ +#ifdef HAVE_EPOLL_CREATE + struct epoll_event event; + + memset (&event, 0, sizeof (struct epoll_event)); + + if ((ops & gnu_java_nio_EpollSelectorImpl_OP_ACCEPT) != 0 + || (ops & gnu_java_nio_EpollSelectorImpl_OP_READ) != 0) + event.events = EPOLLIN; + + if ((ops & gnu_java_nio_EpollSelectorImpl_OP_CONNECT) != 0 + || (ops & gnu_java_nio_EpollSelectorImpl_OP_WRITE) != 0) + event.events |= EPOLLOUT; + + event.data.fd = fd; + +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: modding struct epoll_event { events: %o; data.fd: %d } on %d\n", + __FUNCTION__, event.events, event.data.fd, efd); +#endif /* TRACE_EPOLL */ + + if (epoll_ctl (efd, EPOLL_CTL_MOD, fd, &event) == -1) + { + if (ENOSYS == errno) + JCL_ThrowException (env, "java/lang/InternalError", + strerror (errno)); + else + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } +#else + (void) efd; + (void) fd; + (void) ops; + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); +#endif /* HAVE_EPOLL_CREATE */ +} + + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: epoll_delete + * Signature: (II)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete (JNIEnv *env, + jclass c __attribute__((unused)), + jint efd, jint fd) +{ +#ifdef HAVE_EPOLL_CREATE + struct epoll_event event; + + memset (&event, 0, sizeof (struct epoll_event)); + event.data.fd = fd; + +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: delete events on fd %d for %d\n", __FUNCTION__, fd, efd); +#endif /* TRACE_EPOLL */ + + /* Older kernel versions require a non-null `event' parameter, + * even though it is ignored by this call. + */ + if (epoll_ctl (efd, EPOLL_CTL_DEL, fd, &event) == -1) + { + if (ENOSYS == errno) + JCL_ThrowException (env, "java/lang/InternalError", + strerror (errno)); + /* XXX the docs here seem a little strange. If `fd' is closed, + epoll_ctl returns EBADF; but the docs say that this happens + only when efd is invalid. Go figure. + */ + else if (ENOENT == errno || EBADF == errno) + return; /* fd is closed; it's already removed. */ + else + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } +#else + (void) efd; + (void) fd; + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); +#endif /* HAVE_EPOLL_CREATE */ +} + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: epoll_wait + * Signature: (ILjava/nio/ByteBuffer;II)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_EpollSelectorImpl_epoll_1wait (JNIEnv *env, + jclass c __attribute__((unused)), + jint efd, jobject nstate, + jint num_events, jint timeout) +{ +#ifdef HAVE_EPOLL_CREATE + void *p = (*env)->GetDirectBufferAddress (env, nstate); + struct epoll_event *events = (struct epoll_event *) p; + int ret; + + if (p == NULL) + { + if (!(*env)->ExceptionCheck (env)) + JCL_ThrowException (env, IO_EXCEPTION, "getting native state failed"); + return -1; + } + +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: events: %p; num_events: %d; timeout: %d; efd: %d\n", + __FUNCTION__, p, num_events, timeout, efd); +#endif /* TRACE_EPOLL */ + + ret = epoll_wait (efd, events, num_events, timeout); + + if (ret == -1) + { + if (ENOSYS == errno) + JCL_ThrowException (env, "java/lang/InternalError", + strerror (errno)); + else if (EINTR == errno) + ret = 0; + else + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } + +#ifdef TRACE_EPOLL + fprintf (stderr, " epoll_wait returns %d\n", ret); + { + int i; + for (i = 0; i < ret; i++) + { + fprintf (stderr, " [%4i]: events: %o; data.fd: %d\n", i, events[i].events, + events[i].data.fd); + } + } + fflush (stderr); +#endif /* TRACE_EPOLL */ + + return ret; +#else + (void) efd; + (void) nstate; + (void) num_events; + (void) timeout; + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); + return -1; +#endif /* HAVE_EPOLL_CREATE */ +} + + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: selected_fd + * Signature: (Ljava/nio/ByteBuffer;)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_EpollSelectorImpl_selected_1fd (JNIEnv *env, + jclass c __attribute__((unused)), + jobject value) +{ +#ifdef HAVE_EPOLL_CREATE + void *p = (*env)->GetDirectBufferAddress (env, value); + struct epoll_event *event = (struct epoll_event *) p; + +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: event: %p\n", __FUNCTION__, p); +#endif /* TRACE_EPOLL */ + + if (p == NULL) + { + if (!(*env)->ExceptionCheck (env)) + JCL_ThrowException (env, "java/lang/InternalError", + "getting native state failed"); + return -1; + } + +#ifdef TRACE_EPOLL + fprintf (stderr, " data.fd: %d\n", event->data.fd); + fflush (stderr); +#endif /* TRACE_EPOLL */ + + return event->data.fd; +#else + (void) value; + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); + return -1; +#endif /* HAVE_EPOLL_CREATE */ +} + + +/* + * Class: gnu_java_nio_EpollSelectorImpl + * Method: selected_ops + * Signature: (Ljava/nio/ByteBuffer;)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_EpollSelectorImpl_selected_1ops (JNIEnv *env, + jclass c __attribute__((unused)), + jobject value) +{ +#ifdef HAVE_EPOLL_CREATE + void *p = (*env)->GetDirectBufferAddress (env, value); + struct epoll_event *event = (struct epoll_event *) p; + int ret = 0; + +#ifdef TRACE_EPOLL + fprintf (stderr, "%s: event: %p\n", __FUNCTION__, p); +#endif /* TRACE_EPOLL */ + + if (p == NULL) + { + if (!(*env)->ExceptionCheck (env)) + JCL_ThrowException (env, "java/lang/InternalError", + "getting native state failed"); + return -1; + } + + if ((event->events & EPOLLIN) != 0) + ret |= gnu_java_nio_EpollSelectorImpl_OP_ACCEPT | gnu_java_nio_EpollSelectorImpl_OP_READ; + if ((event->events & EPOLLOUT) != 0) + ret |= gnu_java_nio_EpollSelectorImpl_OP_CONNECT | gnu_java_nio_EpollSelectorImpl_OP_WRITE; + +#ifdef TRACE_EPOLL + fprintf (stderr, " events: %o\n", event->events); + fflush (stderr); +#endif /* TRACE_EPOLL */ + + return ret; +#else + (void) value; + JCL_ThrowException (env, "java/lang/InternalError", "epoll support not available"); + return -1; +#endif /* HAVE_EPOLL_CREATE */ +} diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_KqueueSelectorImpl.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_KqueueSelectorImpl.c new file mode 100644 index 00000000000..94e6db7f88e --- /dev/null +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_KqueueSelectorImpl.c @@ -0,0 +1,387 @@ +/* gnu_java_nio_channel_KqueueSelectorImpl.c -- + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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. */ + + +#if HAVE_CONFIG_H +#include +#endif /* HAVE_CONFIG_H */ + +#include +#if HAVE_SYS_EVENT_H +#include +#endif /* HAVE_SYS_EVENT_H */ +#include +#include +#include +#include + +#include +#include + +#include + +#define KEY_OP_ACCEPT 16 +#define KEY_OP_CONNECT 8 +#define KEY_OP_READ 1 +#define KEY_OP_WRITE 4 + +/* XXX this requires -std=gnu99 or c99 */ +/* #ifdef TRACE_KQUEUE */ +/* #define TRACE(fmt, ...) fprintf (stderr, "%s: " fmt "\n", __FUNCTION__, __VA_ARGS__); */ +/* #else */ +/* #define TRACE(fmt, ...) */ +/* #endif */ + +/* #define TRACE_KQUEUE 1 */ + + +#define throw_not_supported(env) JCL_ThrowException (env, "java/lang/UnsupportedOperationException", "kqueue/kevent support not available") + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: kqueue_supported + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_kqueue_1supported (JNIEnv *env __attribute__((unused)), + jclass clazz __attribute__((unused))) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) + return JNI_TRUE; +#else + return JNI_FALSE; +#endif /* HAVE_KQUEUE && HAVE_KEVENT */ +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: sizeof_struct_kevent + * Signature: ()I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_sizeof_1struct_1kevent +(JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused))) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) +/* TRACE("return sizeof %lu", sizeof (struct kevent)); */ + return sizeof (struct kevent); +#else + throw_not_supported (env); + return -1; +#endif /* HAVE_KQUEUE && HAVE_KEVENT */ +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: implOpen + * Signature: ()I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_implOpen +(JNIEnv *env, jclass clazz __attribute__((unused))) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) + int kq = kqueue (); +/* TRACE("kqueue returns %d", kq); */ + if (kq == -1) + JCL_ThrowException (env, "java/io/IOException", strerror (errno)); + return kq; +#else + throw_not_supported (env); + return -1; +#endif +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: implClose + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_implClose (JNIEnv *env, + jclass clazz __attribute__((unused)), + jint kq) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) +/* TRACE("closing %d", kq); */ + if (close (kq) != 0) + JCL_ThrowException (env, "java/io/IOException", strerror (errno)); +#else + (void) kq; + throw_not_supported (env); +#endif /* HAVE_KQUEUE && HAVE_KEVENT */ +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: kevent_set + * Signature: (Ljava/nio/ByteBuffer;IIIZ)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_kevent_1set (JNIEnv *env, + jclass clazz __attribute__((unused)), + jobject nstate, jint i, jint fd, + jint ops, jint active, jint key) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) + struct kevent *kev; + short ident; + + kev = (struct kevent *) (*env)->GetDirectBufferAddress (env, nstate); + +#ifdef TRACE_KQUEUE + printf ("kevent_set fd:%d p:%p i:%d ops:%x active:%x key:%x\n", + fd, (void *) kev, i, ops, active, key); +#endif /* TRACE_KQUEUE */ + + if (kev == NULL) + { + JCL_ThrowException (env, "java/lang/InternalError", + "GetDirectBufferAddress returned NULL!"); + return; + } + + ident = fd; + memset (&kev[i], 0, sizeof (struct kevent)); + + if ((ops & KEY_OP_READ) || (ops & KEY_OP_ACCEPT)) + { + /* Add event if it wasn't previously added. */ + if (!(active & KEY_OP_READ) && !(active & KEY_OP_ACCEPT)) + EV_SET(&kev[i], ident, EVFILT_READ, EV_ADD, 0, 0, (void *) key); + } + else + { + /* Delete event if it was previously added */ + if ((active & KEY_OP_READ) || (active & KEY_OP_ACCEPT)) + EV_SET(&kev[i], ident, EVFILT_READ, EV_DELETE, 0, 0, (void *) key); + } + + /* Do the same thing for the write filter. */ + if ((ops & KEY_OP_WRITE) || (ops & KEY_OP_CONNECT)) + { + if (!(active & KEY_OP_WRITE) && !(active & KEY_OP_CONNECT)) + EV_SET(&kev[i], ident, EVFILT_WRITE, EV_ADD, 0, 0, (void *) key); + } + else + { + if ((active & KEY_OP_WRITE) || (active & KEY_OP_CONNECT)) + EV_SET(&kev[i], ident, EVFILT_WRITE, EV_DELETE, 0, 0, (void *) key); + } + +#ifdef TRACE_KQUEUE + printf (" set kevent %2d: ident:%u filter:%x flags:%o fflags:%o data:%p udata:%p\n", + i, (unsigned) kev[i].ident, kev[i].filter, kev[i].flags, kev[i].fflags, + (void *) kev[i].data, kev[i].udata); +#endif /* TRACE_KQUEUE */ +#else + (void) nstate; + (void) i; + (void) fd; + (void) ops; + (void) key; + (void) active; + throw_not_supported (env); +#endif /* HAVE_KQUEUE && HAVE_KEVENT */ +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: kevent + * Signature: (ILjava/nio/ByteBuffer;IJ)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_kevent (JNIEnv *env, + jobject this __attribute__((unused)), + jint kq, jobject nstate, jint nevents, + jint maxevents, jlong timeout) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) + struct timespec tv; + struct timespec *t = NULL; + struct kevent *kev = (struct kevent *) (*env)->GetDirectBufferAddress (env, nstate); + int ret; + +#ifdef TRACE_KQUEUE + int i; + + printf ("[%d] kevent nevents:%d maxevents:%d timeout:%lld\n", kq, nevents, maxevents, timeout); + printf ("[%d] addding/deleting %d events\n", kq, nevents); + for (i = 0; i < nevents; i++) + { + printf ("[%d] kevent input [%d]: ident:%u filter:%x flags:%o fflags:%o data:%p udata:%p\n", + kq, i, (unsigned) kev[i].ident, kev[i].filter, kev[i].flags, kev[i].fflags, + (void *) kev[i].data, kev[i].udata); + } +#endif + +/* TRACE("events: %p; nevents: %d; timeout: %lld", (void *) kev, nevents, timeout); */ + + if (timeout != -1) + { + tv.tv_sec = timeout / 1000; + tv.tv_nsec = (timeout % 1000) * 1000; + t = &tv; + } + + ret = kevent (kq, (const struct kevent *) kev, nevents, kev, maxevents, t); + + if (ret == -1) + { + if (errno == EINTR) + ret = 0; + else + JCL_ThrowException (env, "java/io/IOException", strerror (errno)); + } + +#ifdef TRACE_KQUEUE + for (i = 0; i < ret; i++) + { + printf ("[%d] kevent output [%d]: ident:%u filter:%x flags:%o fflags:%o data:%p udata:%p\n", + kq, i, (unsigned) kev[i].ident, kev[i].filter, kev[i].flags, kev[i].fflags, + (void *) kev[i].data, kev[i].udata); + } +#endif + + return ret; +#else + (void) kq; + (void) nstate; + (void) nevents; + (void) maxevents; + (void) timeout; + throw_not_supported (env); + return -1; +#endif /* HAVE_KQUEUE && HAVE_KEVENT */ +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: fetch_key + * Signature: (Ljava/nio/ByteBuffer;)I; + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_fetch_1key (JNIEnv *env, + jclass clazz __attribute__((unused)), + jobject nstate) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) + struct kevent *kev = (struct kevent *) (*env)->GetDirectBufferAddress (env, nstate); +/* TRACE("return key %p\n", kev->udata); */ + return (jint) kev->udata; +#else + (void) nstate; + throw_not_supported (env); + return -1; +#endif /* HAVE_KQUEUE && HAVE_KEVENT */ +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: ready_ops + * Signature: (Ljava/nio/ByteBuffer;I)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_ready_1ops (JNIEnv *env, + jclass clazz __attribute__((unused)), + jobject nstate, jint interest) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) + struct kevent *kev = (struct kevent *) (*env)->GetDirectBufferAddress (env, nstate); + jint ready = 0; + + if ((kev->flags & EV_ERROR) == EV_ERROR) + { + printf ("!!! error selecting fd %d: %s", (int) (kev->ident), strerror ((int) (kev->data))); + return 0; + } + + /* We poll for READ for OP_READ and OP_ACCEPT. */ + if (kev->filter == EVFILT_READ) + { + ready = (interest & KEY_OP_READ) | (interest & KEY_OP_ACCEPT); +/* TRACE("filter EVFILT_READ. Ready ops set to %x", ready); */ + } + + /* Poll for WRITE for OP_WRITE and OP_CONNECT; I guess we *should* + get a WRITE event if we are connected, but I don't know if we do + for real. FIXME */ + if (kev->filter == EVFILT_WRITE) + { + ready = (interest & KEY_OP_WRITE) | (interest & KEY_OP_CONNECT); +/* TRACE("filter EVFILT_WRITE. Ready ops set to %x", ready); */ + } + + return ready; +#else + (void) nstate; + (void) interest; + throw_not_supported (env); + return -1; +#endif /* HAVE_KQUEUE && HAVE_KEVENT */ +} + + +/* + * Class: gnu_java_nio_KqueueSelectorImpl + * Method: check_eof + * Signature: (Ljava/nio/ByteBuffer;)Z + */ +JNIEXPORT jboolean JNICALL +Java_gnu_java_nio_KqueueSelectorImpl_check_1eof (JNIEnv *env, + jclass clazz __attribute__((unused)), + jobject nstate) +{ +#if defined(HAVE_KQUEUE) && defined(HAVE_KEVENT) + struct kevent *kev = (struct kevent *) (*env)->GetDirectBufferAddress (env, nstate); + if ((kev->flags & EV_EOF) == EV_EOF) + return JNI_TRUE; + return JNI_FALSE; +#else + (void) nstate; + throw_not_supported (env); + return JNI_FALSE; +#endif +} diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c index 5571bed27a5..97eb38618c3 100644 --- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c @@ -36,25 +36,48 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ +#ifdef HAVE_CONFIG_H #include +#endif + +#include + +#include +#include +#include +#include +#include +#include + +#include + #include #include #include -#include #include #include #include +#include "cpio.h" #include "gnu_java_nio_VMChannel.h" +#include "javanio.h" #ifdef HAVE_FCNTL_H #include #endif /* HAVE_FCNTL_H */ +#define CONNECT_EXCEPTION "java/net/ConnectException" #define IO_EXCEPTION "java/io/IOException" +#define SOCKET_EXCEPTION "java/net/SocketException" +#define INTERRUPTED_IO_EXCEPTION "java/io/InterruptedIOException" #define NON_READABLE_CHANNEL_EXCEPTION "java/nio/channels/NonReadableChannelException" #define NON_WRITABLE_CHANNEL_EXCEPTION "java/nio/channels/NonWritableChannelException" +#define SOCKET_TIMEOUT_EXCEPTION "java/net/SocketTimeoutException" + +/* Align a value up or down to a multiple of the pagesize. */ +#define ALIGN_DOWN(p,s) ((p) - ((p) % (s))) +#define ALIGN_UP(p,s) ((p) + ((s) - ((p) % (s)))) /* * Limit to maximum of 16 buffers @@ -66,7 +89,7 @@ extern "C" { #endif -enum JCL_buffer_type { DIRECT, ARRAY, UNKNOWN }; +enum JCL_buffer_type { DIRECT, HEAP, ARRAY, UNKNOWN }; struct JCL_buffer { @@ -83,6 +106,7 @@ void JCL_print_buffer(JNIEnv *, struct JCL_buffer *); int JCL_init_buffer(JNIEnv *, struct JCL_buffer *, jobject); void JCL_release_buffer(JNIEnv *, struct JCL_buffer *, jobject, jint); void JCL_cleanup_buffers(JNIEnv *, struct JCL_buffer *, jint, jobjectArray, jint, jlong); +int JCL_thread_interrupted(JNIEnv *); static jfieldID address_fid; static jmethodID get_position_mid; @@ -92,33 +116,37 @@ static jmethodID set_limit_mid; static jmethodID has_array_mid; static jmethodID array_mid; static jmethodID array_offset_mid; +static jmethodID thread_interrupted_mid; +static jclass vm_channel_class; jmethodID get_method_id(JNIEnv *env, jclass clazz, const char *name, const char *sig) { jmethodID mid = (*env)->GetMethodID(env, clazz, name, sig); +/* NIODBG("name: %s; sig: %s", name, sig); */ if (mid == NULL) { - JCL_ThrowException(env, "java/lang/InternalError", name); + JCL_ThrowException(env, "java/lang/InternalError", name); return NULL; } return mid; } -void +inline void JCL_print_buffer(JNIEnv *env __attribute__((__unused__)), struct JCL_buffer *buf) { - fprintf(stdout, "Buffer - type: %d, ptr: %p\n", buf->type, buf->ptr); - fflush(stdout); + fprintf (stderr, "Buffer - type: %d, ptr: %p\n", buf->type, buf->ptr); } int JCL_init_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf) { - jobject address = (*env)->GetObjectField(env, bbuf, address_fid); + void *addr = (*env)->GetDirectBufferAddress (env, bbuf); + +/* NIODBG("buf: %p; bbuf: %p; addr: %p", (void *) buf, bbuf, addr); */ buf->position = (*env)->CallIntMethod(env, bbuf, get_position_mid); buf->limit = (*env)->CallIntMethod(env, bbuf, get_limit_mid); @@ -126,11 +154,10 @@ JCL_init_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf) buf->count = 0; buf->type = UNKNOWN; - if (address != NULL) + if (addr != NULL) { - buf->ptr = (jbyte *) JCL_GetRawData(env, address); + buf->ptr = (jbyte *) addr; buf->type = DIRECT; - (*env)->DeleteLocalRef(env, address); } else { @@ -148,7 +175,12 @@ JCL_init_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf) } else { - return -1; + jobject address = (*env)->GetObjectField (env, bbuf, address_fid); + if (address == NULL) + return -1; /* XXX handle non-array, non-native buffers? */ + buf->ptr = (jbyte *) JCL_GetRawData(env, address); + buf->type = HEAP; + (*env)->DeleteLocalRef(env, address); } } @@ -160,6 +192,8 @@ JCL_release_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf, jint action) { jbyteArray arr; + +/* NIODBG("buf: %p; bbuf: %p; action: %x", (void *) buf, bbuf, action); */ /* Set the position to the appropriate value */ if (buf->count > 0) @@ -173,6 +207,7 @@ JCL_release_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf, switch (buf->type) { case DIRECT: + case HEAP: break; case ARRAY: arr = (*env)->CallObjectMethod(env, bbuf, array_mid); @@ -194,6 +229,9 @@ JCL_cleanup_buffers(JNIEnv *env, jlong num_bytes) { jint i; + +/* NIODBG("bi_list: %p; vec_len: %d; bbufs: %p; offset: %d; num_bytes: %lld", */ +/* (void *) bi_list, vec_len, bbufs, offset, num_bytes); */ /* Update all of the bbufs with the approriate information */ for (i = 0; i < vec_len; i++) @@ -217,13 +255,65 @@ JCL_cleanup_buffers(JNIEnv *env, } +int +JCL_thread_interrupted(JNIEnv *env) +{ + return (int) (*env)->CallStaticBooleanMethod(env, vm_channel_class, + thread_interrupted_mid); +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: stdin_fd + * Signature: ()I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_stdin_1fd (JNIEnv *env __attribute__((unused)), + jclass c __attribute__((unused))) +{ +/* NIODBG("%d", fileno (stdin)); */ + return fileno (stdin); +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: stdout_fd + * Signature: ()I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_stdout_1fd (JNIEnv *env __attribute__((unused)), + jclass c __attribute__((unused))) +{ +/* NIODBG("%d", fileno (stdout)); */ + return fileno (stdout); +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: stderr_fd + * Signature: ()I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_stderr_1fd (JNIEnv *env __attribute__((unused)), + jclass c __attribute__((unused))) +{ +/* NIODBG("%d", fileno (stderr)); */ + return fileno (stderr); +} + + JNIEXPORT void JNICALL Java_gnu_java_nio_VMChannel_initIDs (JNIEnv *env, - jclass clazz __attribute__ ((__unused__))) + jclass clazz) { jclass bufferClass = JCL_FindClass(env, "java/nio/Buffer"); jclass byteBufferClass = JCL_FindClass(env, "java/nio/ByteBuffer"); - + +/* NIODBG("%s", "..."); */ + address_fid = (*env)->GetFieldID(env, bufferClass, "address", "Lgnu/classpath/Pointer;"); if (address_fid == NULL) @@ -242,6 +332,11 @@ Java_gnu_java_nio_VMChannel_initIDs (JNIEnv *env, has_array_mid = get_method_id(env, byteBufferClass, "hasArray", "()Z"); array_mid = get_method_id(env, byteBufferClass, "array", "()[B"); array_offset_mid = get_method_id(env, byteBufferClass, "arrayOffset", "()I"); + + vm_channel_class = clazz; + thread_interrupted_mid = (*env)->GetStaticMethodID(env, clazz, + "isThreadInterrupted", + "()Z"); } JNIEXPORT void JNICALL @@ -252,6 +347,8 @@ Java_gnu_java_nio_VMChannel_setBlocking (JNIEnv *env, { int opts; +/* NIODBG("fd: %d; blocking: %d", fd, blocking); */ + opts = fcntl(fd, F_GETFL); if (opts < 0) { @@ -260,10 +357,10 @@ Java_gnu_java_nio_VMChannel_setBlocking (JNIEnv *env, return; } - if (blocking) - opts |= O_NONBLOCK; - else + if (blocking == JNI_TRUE) opts &= ~(O_NONBLOCK); + else + opts |= O_NONBLOCK; opts = fcntl(fd, F_SETFL, opts); @@ -275,16 +372,33 @@ Java_gnu_java_nio_VMChannel_setBlocking (JNIEnv *env, } } +/* Return true if fd is in non-blocking mode. */ +static jboolean +is_non_blocking_fd(jint fd) +{ + int opts; + opts = fcntl(fd, F_GETFL); + if (opts == -1) + { + /* Assume blocking on error. */ + return 0; + } + return (opts & O_NONBLOCK) != 0; +} JNIEXPORT jint JNICALL -Java_gnu_java_nio_VMChannel_read (JNIEnv *env, - jobject o __attribute__ ((__unused__)), - jint fd, - jobject bbuf) +Java_gnu_java_nio_VMChannel_read__ILjava_nio_ByteBuffer_2 (JNIEnv *env, + jobject o __attribute__ ((__unused__)), + jint fd, + jobject bbuf) { +#ifdef HAVE_READ jint len; ssize_t result; struct JCL_buffer buf; + int tmp_errno; + +/* NIODBG("fd: %d; bbuf: %p", fd, bbuf); */ if (JCL_init_buffer(env, &buf, bbuf) < 0) { @@ -292,26 +406,59 @@ Java_gnu_java_nio_VMChannel_read (JNIEnv *env, JCL_ThrowException (env, IO_EXCEPTION, "Buffer initialisation failed"); return -1; } - + len = buf.limit - buf.position; + + if (len == 0) + { + JCL_release_buffer (env, &buf, bbuf, JNI_ABORT); + return 0; + } - result = read(fd, &(buf.ptr[buf.position + buf.offset]), len); - buf.count = result; + do + { + result = cpnio_read (fd, &(buf.ptr[buf.position + buf.offset]), len); + tmp_errno = errno; + } + while (result == -1 && errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmp_errno; if (result == 0) - result = -1; /* End Of File */ + { + result = -1; + buf.count = 0; + } else if (result == -1) { buf.count = 0; - if (errno == EAGAIN) /* Non-blocking */ - result = 0; + if (errno == EAGAIN) + { + if (is_non_blocking_fd(fd)) + { + /* Non-blocking */ + result = 0; + } + else + { + /* Read timeout on a socket with SO_RCVTIMEO != 0. */ + JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); + JCL_ThrowException(env, SOCKET_TIMEOUT_EXCEPTION, "read timed out"); + return -1; + } + } else if (errno == EBADF) /* Bad fd */ { JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); JCL_ThrowException (env, NON_READABLE_CHANNEL_EXCEPTION, strerror(errno)); return -1; - } + } + else if (EINTR == errno) /* read interrupted */ + { + JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); + JCL_ThrowException(env, INTERRUPTED_IO_EXCEPTION, strerror (errno)); + return -1; + } else { JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); @@ -320,21 +467,32 @@ Java_gnu_java_nio_VMChannel_read (JNIEnv *env, } } else - - JCL_release_buffer(env, &buf, bbuf, JNI_COMMIT); + buf.count = result; + + JCL_release_buffer(env, &buf, bbuf, 0); return result; +#else + (void) fd; + (void) bbuf; + JCL_ThrowException (env, IO_EXCEPTION, "read not supported"); + return -1; +#endif /* HAVE_READ */ } JNIEXPORT jint JNICALL -Java_gnu_java_nio_VMChannel_write (JNIEnv *env, - jobject o __attribute__ ((__unused__)), - jint fd, - jobject bbuf) +Java_gnu_java_nio_VMChannel_write__ILjava_nio_ByteBuffer_2 (JNIEnv *env, + jobject o __attribute__ ((__unused__)), + jint fd, + jobject bbuf) { +#ifdef HAVE_WRITE jint len; ssize_t result; struct JCL_buffer buf; + int tmp_errno; + +/* NIODBG("fd: %d; bbuf: %p", fd, bbuf); */ if (JCL_init_buffer(env, &buf, bbuf) < 0) { @@ -342,16 +500,31 @@ Java_gnu_java_nio_VMChannel_write (JNIEnv *env, JCL_ThrowException (env, IO_EXCEPTION, "Buffer initialisation failed"); return -1; } - + len = buf.limit - buf.position; + + if (len == 0) + { + JCL_release_buffer (env, &buf, bbuf, JNI_ABORT); + return 0; + } - result = write(fd, &(buf.ptr[buf.position + buf.offset]), len); + do + { + result = cpnio_write (fd, &(buf.ptr[buf.position + buf.offset]), len); + tmp_errno = errno; + } + while (result == -1 && errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmp_errno; + buf.count = result; - + if (result == -1) { if (errno == EAGAIN) /* Non-blocking */ + { result = 0; + } else { JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); @@ -362,7 +535,13 @@ Java_gnu_java_nio_VMChannel_write (JNIEnv *env, JCL_release_buffer(env, &buf, bbuf, JNI_ABORT); - return result; + return result; +#else + (void) fd; + (void) bbuf; + JCL_ThrowException (env, IO_EXCEPTION, "write not supported"); + return -1; +#endif /* HAVE_WRITE */ } @@ -390,7 +569,11 @@ Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env, struct JCL_buffer bi_list[JCL_IOV_MAX]; ssize_t result; jint vec_len = length < JCL_IOV_MAX ? length : JCL_IOV_MAX; - jlong bytes_read = 0; + jlong bytes_read = 0; + int tmp_errno; + +/* NIODBG("fd: %d; bbufs: %p; offset: %d; length: %d", */ +/* fd, bbufs, offset, length); */ /* Build the vector of buffers to read into */ for (i = 0; i < vec_len; i++) @@ -401,7 +584,9 @@ Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env, buf = &bi_list[i]; bbuf = (*env)->GetObjectArrayElement(env, bbufs, offset + i); - JCL_init_buffer(env, buf, bbuf); + JCL_init_buffer(env, buf, bbuf); + +/* JCL_print_buffer (env, buf); */ buffers[i].iov_base = &(buf->ptr[buf->position + buf->offset]); buffers[i].iov_len = buf->limit - buf->position; @@ -409,14 +594,33 @@ Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env, } /* Work the scattering magic */ - result = readv(fd, buffers, vec_len); + do + { + result = cpnio_readv (fd, buffers, vec_len); + tmp_errno = errno; + } + while (result == -1 && errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmp_errno; bytes_read = (jlong) result; /* Handle the response */ if (result < 0) { - if (errno == EAGAIN) /* Non blocking */ - result = 0; + if (errno == EAGAIN) + { + if (is_non_blocking_fd(fd)) + { + /* Non-blocking */ + result = 0; + } + else + { + /* Read timeout on a socket with SO_RCVTIMEO != 0. */ + JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read); + JCL_ThrowException(env, SOCKET_TIMEOUT_EXCEPTION, "read timed out"); + return -1; + } + } else if (errno == EBADF) /* Bad fd */ { JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read); @@ -442,6 +646,7 @@ Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env, return (jlong) result; } + /* * Implementation of a gathering write. Will use the appropriate * vector based read call (currently readv on Linux). @@ -467,7 +672,10 @@ Java_gnu_java_nio_VMChannel_writeGathering (JNIEnv *env, ssize_t result; jint vec_len = length < JCL_IOV_MAX ? length : JCL_IOV_MAX; jlong bytes_written; + int tmp_errno; +/* NIODBG("fd: %d; bbufs: %p; offset: %d; length: %d", */ +/* fd, bbufs, offset, length); */ /* Build the vector of buffers to read into */ for (i = 0; i < vec_len; i++) @@ -480,13 +688,22 @@ Java_gnu_java_nio_VMChannel_writeGathering (JNIEnv *env, JCL_init_buffer(env, buf, bbuf); +/* JCL_print_buffer(env, buf); */ + buffers[i].iov_base = &(buf->ptr[buf->position + buf->offset]); buffers[i].iov_len = buf->limit - buf->position; (*env)->DeleteLocalRef(env, bbuf); } /* Work the gathering magic */ - result = writev(fd, buffers, vec_len); + do + { + result = cpnio_writev (fd, buffers, vec_len); + tmp_errno = errno; + } + while (result == -1 && tmp_errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmp_errno; + bytes_written = (jlong) result; if (result < 0) @@ -518,6 +735,1214 @@ Java_gnu_java_nio_VMChannel_writeGathering (JNIEnv *env, } +/* + * Class: gnu_java_nio_VMChannel + * Method: receive + * Signature: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_receive (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jobject dst, jobject addrPort) +{ +#ifdef HAVE_RECVFROM + char *addrPortPtr = (*env)->GetDirectBufferAddress (env, addrPort); + struct JCL_buffer buf; +#ifdef HAVE_INET6 + struct sockaddr_in6 sock_storage; + struct sockaddr_in6 *sock6; + socklen_t slen = sizeof (struct sockaddr_in6); +#else + struct sockaddr_in sock_storage; + socklen_t slen = sizeof (struct sockaddr_in); +#endif /* HAVE_INET6 */ + struct sockaddr *sockaddr = (struct sockaddr *) &sock_storage; + struct sockaddr_in *sock4; + int ret; + jint result = -1; + + if (JCL_init_buffer (env, &buf, dst) == -1) + JCL_ThrowException (env, IO_EXCEPTION, "loading buffer failed"); + + ret = cpnio_recvfrom (fd, &(buf.ptr[buf.position + buf.offset]), + buf.limit - buf.position, MSG_WAITALL, + sockaddr, &slen); + + if (-1 == ret) + { + JCL_release_buffer (env, &buf, dst, JNI_ABORT); + if (EINTR == errno) + JCL_ThrowException (env, "java/io/InterruptedIOException", strerror (errno)); + else if (EAGAIN == errno) + { + /* If the socket is in blocking mode, our timeout expired. */ + int val = fcntl (fd, F_GETFL, 0); + if (val == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + else if ((val & O_NONBLOCK) == 0) + JCL_ThrowException (env, "java/net/SocketTimeoutException", + "read timed out"); + } + else + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return 0; + } + + if (sockaddr->sa_family == AF_INET) + { + sock4 = (struct sockaddr_in *) sockaddr; + memcpy (addrPortPtr, &(sock4->sin_addr.s_addr), 4); + ;memcpy (addrPortPtr + 4, &(sock4->sin_port), 2); + result = 4; + } +#ifdef HAVE_INET6 + else if (sockaddr->sa_family == AF_INET6) + { + sock6 = (struct sockaddr_in6 *) sockaddr; + memcpy (addrPortPtr, &(sock6->sin6_addr.s6_addr), 16); + memcpy (addrPortPtr + 16, &(sock6->sin6_port), 2); + result = 16; + } +#endif /* HAVE_INET6 */ + else if (ret == 0) + { + result = 0; + } + else + { + JCL_ThrowException (env, "java/net/SocketException", + "unsupported address type returned"); + } + + buf.count += ret; + JCL_release_buffer (env, &buf, dst, 0); + return result; +#else + (void) fd; + (void) dst; + (void) addrPort; + JCL_ThrowException (env, IO_EXCEPTION, "recvfrom not supported"); +#endif /* HAVE_RECVFROM */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: send + * Signature: (Ljava/nio/ByteBuffer;[BI)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_send (JNIEnv *env, + jclass c __attribute__((unused)), + int fd, jobject src, jbyteArray addr, jint port) +{ +#ifdef HAVE_SENDTO + struct sockaddr_in sockaddr; + jbyte *elems; + struct JCL_buffer buf; + int ret; + +/* NIODBG("fd: %d; src: %p; addr: %p; port: %d", */ +/* fd, src, addr, port); */ + + if (JCL_init_buffer (env, &buf, src) == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, "loading buffer failed"); + return -1; + } + +/* JCL_print_buffer (env, &buf); */ + + elems = (*env)->GetByteArrayElements (env, addr, NULL); + + sockaddr.sin_family = AF_INET; + sockaddr.sin_addr.s_addr = *((uint32_t *) elems); + sockaddr.sin_port = htons (port); + + do + { + ret = cpnio_sendto (fd, &(buf.ptr[buf.position + buf.offset]), + buf.limit - buf.position, + 0, (const struct sockaddr *) &sockaddr, + sizeof (struct sockaddr_in)); + } + while (-1 == ret && EINTR == errno); + + (*env)->ReleaseByteArrayElements (env, addr, elems, JNI_ABORT); + + if (-1 == ret) + { + if (errno != EAGAIN) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + JCL_release_buffer (env, &buf, src, JNI_ABORT); + return 0; + } + + buf.count += ret; + JCL_release_buffer (env, &buf, src, JNI_ABORT); + return ret; +#else + (void) fd; + (void) src; + (void) addr; + (void) port; +#endif /* HAVE_SENDTO */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: send6 + * Signature: (Ljava/nio/ByteBuffer;[BI)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_send6 (JNIEnv *env, + jclass c __attribute__((unused)), + int fd, jobject src, jbyteArray addr, jint port) +{ +#if defined(HAVE_SENDTO) && defined(HAVE_INET6) + struct sockaddr_in6 sockaddr; + jbyte *elems; + struct JCL_buffer buf; + int ret; + +/* NIODBG("fd: %d; src: %p; addr: %p; port: %d", */ +/* fd, src, addr, port); */ + + if (JCL_init_buffer (env, &buf, src) == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, "loading buffer failed"); + return -1; + } + +/* JCL_print_buffer (env, &buf); */ + + elems = (*env)->GetByteArrayElements (env, addr, NULL); + + sockaddr.sin6_family = AF_INET6; + memcpy (&sockaddr.sin6_addr.s6_addr, elems, 16); + sockaddr.sin6_port = htons (port); + + do + { + ret = cpnio_sendto (fd, (const void *) (buf.ptr + buf.offset), + buf.limit - buf.position, + 0, (const struct sockaddr *) &sockaddr, + sizeof (struct sockaddr_in6)); + } + while (-1 == ret && EINTR == errno); + + (*env)->ReleaseByteArrayElements (env, addr, elems, JNI_ABORT); + + if (-1 == ret) + { + if (errno != EAGAIN) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + JCL_release_buffer (env, &buf, src, JNI_ABORT); + return 0; + } + + buf.count += ret; + JCL_release_buffer (env, &buf, src, JNI_ABORT); + return ret; +#else + (void) fd; + (void) src; + (void) addr; + (void) port; + JCL_ThrowException (env, IO_EXCEPTION, "IPv6 sendto not supported"); + return -1; +#endif /* HAVE_SENDTO && HAVE_INET6 */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: read + * Signature: (I)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_read__I (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ +#ifdef HAVE_READ + char in; + int ret; + int tmp_errno; + +/* NIODBG("fd: %d", fd); */ + + do + { + ret = cpnio_read (fd, &in, 1); + tmp_errno = errno; + } + while (ret == -1 && errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmp_errno; + + if (-1 == ret) + { + if (errno == EAGAIN && !is_non_blocking_fd(fd)) + { + /* Read timeout on a socket with SO_RCVTIMEO != 0. */ + JCL_ThrowException(env, SOCKET_TIMEOUT_EXCEPTION, "read timed out"); + } + else + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return -1; + } + + if (0 == ret) + return -1; + + return (in & 0xFF); +#else + (void) fd; + JCL_ThrowException (env, IO_EXCEPTION, "read not supported"); +#endif /* HAVE_READ */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: write + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_write__II (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint data) +{ +#ifdef HAVE_WRITE + char out = (char) data; + int ret; + int tmp_errno; + +/* NIODBG("fd: %d; data: %d", fd, data); */ + + do + { + ret = cpnio_write (fd, &out, 1); + tmp_errno = errno; + } + while (ret == -1 && errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmp_errno; + + if (-1 == ret) + JCL_ThrowException(env, IO_EXCEPTION, strerror (errno)); +#else + (void) fd; + (void) data; + JCL_ThrowException (env, IO_EXCEPTION, "write not supported"); +#endif /* HAVE_WRITE */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: socket + * Signature: (Z)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_socket (JNIEnv *env, jclass clazz __attribute__((unused)), + jboolean stream) +{ +#ifdef HAVE_SOCKET + int ret; + + do + { + ret = cpnio_socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0); + } + while (-1 == ret && EINTR == errno); + + if (ret == -1) + JCL_ThrowException (env, "java/net/SocketException", strerror (errno)); +/* NIODBG("created socket %d", ret); */ + + return ret; +#else + (void) stream; + JCL_ThrowException (env, IO_EXCEPTION, "socket not supported"); + return -1; +#endif /* HAVE_SOCKET */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: connect + * Signature: (I[BI)Z + */ +JNIEXPORT jboolean JNICALL +Java_gnu_java_nio_VMChannel_connect (JNIEnv *env, jclass clazz __attribute__((unused)), + jint fd, jbyteArray addr, jint port, jint timeout) +{ +#ifdef HAVE_CONNECT + struct sockaddr_in sockaddr; + struct timeval timeo; + int origflags = 0, flags; + jbyte *addr_elems; + int ret; + int tmpErrno; + + if ((*env)->GetArrayLength (env, addr) != 4) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, + "expecting 4-byte address"); + return JNI_FALSE; + } + + if (timeout > 0) + { + timeo.tv_sec = timeout / 1000; + timeo.tv_usec = (timeout % 1000) * 1000; + origflags = fcntl (fd, F_GETFL, 0); + if (origflags == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + /* Set nonblocking mode, if not already set. */ + if (!(origflags & O_NONBLOCK)) + { + flags = origflags | O_NONBLOCK; + if (fcntl (fd, F_SETFL, flags) == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + } + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + + memset (&sockaddr, 0, sizeof (struct sockaddr_in)); + sockaddr.sin_family = AF_INET; + sockaddr.sin_port = htons (port); + sockaddr.sin_addr.s_addr = *((uint32_t *) addr_elems); + + + do + { + ret = cpnio_connect (fd, (struct sockaddr *) &sockaddr, + sizeof (struct sockaddr_in)); + tmpErrno = errno; + } + while (ret == -1 && errno == EINTR && ! JCL_thread_interrupted(env)); + errno = tmpErrno; + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + /* If a timeout was specified, select on the file descriptor with + the timeout. */ + if (timeout > 0 && ret == -1) + { + /* Reset the non-blocking flag, if needed. */ + if (!(origflags & O_NONBLOCK)) + { + if (fcntl (fd, F_SETFL, origflags) == -1) + { + /* oops */ + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + if (EINPROGRESS == errno) + { + fd_set wrfds; + FD_ZERO(&wrfds); + FD_SET(fd, &wrfds); + ret = cpnio_select (fd + 1, NULL, &wrfds, NULL, &timeo); + if (ret == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + if (ret == 0) /* connect timed out */ + { + JCL_ThrowException (env, SOCKET_TIMEOUT_EXCEPTION, + "connect timed out"); + return JNI_FALSE; + } + return JNI_TRUE; /* Connected! */ + } + else if (ECONNREFUSED == errno) + { + JCL_ThrowException (env, CONNECT_EXCEPTION, + strerror (errno)); + return JNI_FALSE; + } + else + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + + if (ret == -1) + { + if (EINPROGRESS == errno) + return JNI_FALSE; + else if (ECONNREFUSED == errno) + { + JCL_ThrowException (env, CONNECT_EXCEPTION, + strerror (errno)); + return JNI_FALSE; + } + else + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + + return JNI_TRUE; +#else + (void) fd; + (void) addr; + (void) port; + (void) timeout; + JCL_ThrowException (env, SOCKET_EXCEPTION, "connect not supported"); + return JNI_FALSE; +#endif /* HAVE_CONNECT */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: connect6 + * Signature: (I[BI)Z + */ +JNIEXPORT jboolean JNICALL +Java_gnu_java_nio_VMChannel_connect6 (JNIEnv *env, jclass clazz __attribute__((unused)), + jint fd, jbyteArray addr, jint port, int timeout) +{ +#if defined(HAVE_CONNECT) && defined(HAVE_INET6) + struct sockaddr_in6 sockaddr; + struct timeval timeo; + int flags, origflags = 0; + jbyte *addr_elems; + int ret; + + if (timeout > 0) + { + timeo.tv_sec = timeout / 1000; + timeo.tv_usec = (timeout % 1000) * 1000; + origflags = fcntl (fd, F_GETFL, 0); + if (origflags == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + /* Set nonblocking mode, if not already set. */ + if (!(origflags & O_NONBLOCK)) + { + flags = origflags | O_NONBLOCK; + if (fcntl (fd, F_SETFL, flags) == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + } + + addr_elems = (*env)->GetByteArrayElements (env, addr, NULL); + + memset (&sockaddr, 0, sizeof (struct sockaddr_in6)); + sockaddr.sin6_family = AF_INET6; + sockaddr.sin6_port = htons (port); + memcpy (&sockaddr.sin6_addr.s6_addr, addr_elems, 16); + + ret = cpnio_connect (fd, (struct sockaddr *) &sockaddr, + sizeof (struct sockaddr_in6)); + + (*env)->ReleaseByteArrayElements (env, addr, addr_elems, JNI_ABORT); + + /* If a timeout was specified, select on the file descriptor with + the timeout. */ + if (timeout > 0 && ret == -1) + { + /* Reset the non-blocking flag, if needed. */ + if (!(origflags & O_NONBLOCK)) + { + if (fcntl (fd, F_SETFL, origflags) == -1) + { + /* oops */ + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + if (EINPROGRESS == errno) + { + fd_set wrfds; + FD_ZERO(&wrfds); + FD_SET(fd, &wrfds); + ret = cpnio_select (fd + 1, NULL, &wrfds, NULL, &timeo); + if (ret == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + if (ret == 0) /* connect timed out */ + { + JCL_ThrowException (env, SOCKET_TIMEOUT_EXCEPTION, + "connect timed out"); + return JNI_FALSE; + } + return JNI_TRUE; /* Connected! */ + } + else if (ECONNREFUSED == errno) + { + JCL_ThrowException (env, CONNECT_EXCEPTION, + strerror (errno)); + return JNI_FALSE; + } + else + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + + if (ret == -1) + { + if (EAGAIN == errno) + return JNI_FALSE; + else if (ECONNREFUSED == errno) + { + JCL_ThrowException (env, CONNECT_EXCEPTION, + strerror (errno)); + return JNI_FALSE; + } + else + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + } + + return JNI_TRUE; +#else + (void) fd; + (void) addr; + (void) port; + (void) timeout; + JCL_ThrowException (env, SOCKET_EXCEPTION, "IPv6 connect not supported"); + return JNI_FALSE; +#endif /* HAVE_CONNECT && HAVE_INET6 */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: getsockname + * Signature: (ILjava/nio/ByteBuffer;)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_getsockname (JNIEnv *env, jclass clazz __attribute__((unused)), + jint fd, jobject name) +{ +#ifdef HAVE_GETSOCKNAME +#ifdef HAVE_INET6 + struct sockaddr_in6 *addr6; + struct sockaddr_in6 sock_storage; + socklen_t socklen = sizeof (struct sockaddr_in6); +#else + struct sockaddr_in sock_storage; + socklen_t socklen = sizeof (struct sockaddr_in); +#endif /* HAVE_INET6 */ + + struct sockaddr *sockaddr = (struct sockaddr *) &sock_storage; + struct sockaddr_in *addr4; + int ret; + char *nameptr = (*env)->GetDirectBufferAddress (env, name); + + ret = getsockname (fd, sockaddr, &socklen); + if (ret == -1) + { + JCL_ThrowException (env, "java/net/SocketException", strerror (errno)); + return 0; + } + + if (sockaddr->sa_family == AF_INET) + { + addr4 = (struct sockaddr_in *) sockaddr; + memcpy (nameptr, &(addr4->sin_addr.s_addr), 4); + memcpy (nameptr + 4, &(addr4->sin_port), 2); + return 4; + } + +#ifdef HAVE_INET6 + /* IPv6 */ + if (sockaddr->sa_family == AF_INET6) + { + addr6 = (struct sockaddr_in6 *) sockaddr; + memcpy (nameptr, &(addr6->sin6_addr.s6_addr), 16); + memcpy (nameptr + 16, &(addr6->sin6_port), 2); + return 16; + } +#endif /* HAVE_INET6 */ + JCL_ThrowException (env, IO_EXCEPTION, "unsupported address format"); + return -1; +#else + (void) fd; + (void) name; + JCL_ThrowException (env, IO_EXCEPTION, "getsockname not supported"); + return -1; +#endif /* HAVE_GETSOCKNAME */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: getpeername + * Signature: (ILjava/nio/ByteBuffer;)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_getpeername (JNIEnv *env, jclass clazz __attribute__((unused)), + jint fd, jobject name) +{ +#ifdef HAVE_GETPEERNAME +#ifdef HAVE_INET6 + struct sockaddr_in6 *addr6; + struct sockaddr_in6 sock_storage; + socklen_t socklen = sizeof (struct sockaddr_in6); +#else + struct sockaddr_in sock_storage; + socklen_t socklen = sizeof (struct sockaddr_in); +#endif /* HAVE_INET6 */ + + struct sockaddr *sockaddr = (struct sockaddr *) &sock_storage; + struct sockaddr_in *addr4; + int ret; + char *nameptr = (*env)->GetDirectBufferAddress (env, name); + + ret = getpeername (fd, sockaddr, &socklen); + if (ret == -1) + { + if (ENOTCONN != errno) + JCL_ThrowException (env, "java/net/SocketException", strerror (errno)); + return 0; + } + + if (sockaddr->sa_family == AF_INET) + { + addr4 = (struct sockaddr_in *) sockaddr; + memcpy (nameptr, &(addr4->sin_addr.s_addr), 4); + memcpy (nameptr + 4, &(addr4->sin_port), 2); + return 4; + } +#ifdef HAVE_INET6 + else if (sockaddr->sa_family == AF_INET6) + { + addr6 = (struct sockaddr_in6 *) sockaddr; + memcpy (nameptr, &(addr6->sin6_addr.s6_addr), 16); + memcpy (nameptr + 16, &(addr6->sin6_port), 2); + return 16; + } +#endif /* HAVE_INET6 */ + + JCL_ThrowException (env, "java/net/SocketException", + "unsupported address type"); + return -1; +#else + (void) fd; + (void) name; + JCL_ThrowException (env, IO_EXCEPTION, "getpeername not supported"); + return -1; +#endif /* HAVE_GETPEERNAME */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: accept + * Signature: (I)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_accept (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ +#ifdef HAVE_ACCEPT + int ret; + int tmp_errno = 0; + +#ifdef HAVE_INET6 + struct sockaddr_in6 addr; + socklen_t alen = sizeof (struct sockaddr_in6); +#else + struct sockaddr_in addr; + socklen_t alen = sizeof (struct sockaddr_in); +#endif /* HAVE_INET6 */ + + do + { + ret = cpnio_accept (fd, (struct sockaddr *) &addr, &alen); + tmp_errno = errno; + + if (ret == -1) + switch (tmp_errno) + { + case EINTR: + /* Check if interrupted by Thread.interrupt(). If not then some + * other unrelated signal interrupted the system function and + * we should start over again. + */ + if (JCL_thread_interrupted(env)) + { + JCL_ThrowException (env, "java/net/SocketException", strerror (tmp_errno)); + return -1; + } + break; +#if defined(EWOULDBLOCK) && defined(EAGAIN) && EWOULDBLOCK != EAGAIN + case EWOULDBLOCK: +#endif + case EAGAIN: + /* Socket in non-blocking mode and no pending connection. */ + return -1; + default: + JCL_ThrowException (env, "java/net/SocketException", strerror (tmp_errno)); + return -1; + } + else + break; + } + while (1); + + cpio_closeOnExec(ret); + + return ret; +#else + (void) fd; + JCL_ThrowException (env, IO_EXCEPTION, "accept not supported"); + return -1; +#endif /* HAVE_ACCEPT */ +} + + + +/* + * Class: gnu_java_nio_VMChannel + * Method: disconnect + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_disconnect (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ + struct sockaddr sockaddr; + + sockaddr.sa_family = AF_UNSPEC; + if (connect (fd, &sockaddr, sizeof (struct sockaddr)) == -1) + { + /* The expected error for a successful disconnect is EAFNOSUPPORT. */ + if (errno != EAFNOSUPPORT) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: close + * Signature: (I)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_close (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ + if (close (fd) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: available + * Signature: (I)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_available (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ + jint avail = 0; + +/* NIODBG("fd: %d", fd); */ + if (ioctl (fd, FIONREAD, &avail) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +/* NIODBG("avail: %d", avail); */ + + return avail; +} + + +enum FileChannel_mode { + CPNIO_READ = 1, + CPNIO_WRITE = 2, + CPNIO_APPEND = 4, + CPNIO_EXCL = 8, + CPNIO_SYNC = 16, + CPNIO_DSYNC = 32 +}; + + +/* + * Class: gnu_java_nio_VMChannel + * Method: open + * Signature: (Ljava/lang/String;I)I + */ +JNIEXPORT jint JNICALL +Java_gnu_java_nio_VMChannel_open (JNIEnv *env, + jclass c __attribute__((unused)), + jstring path, jint mode) +{ + int nmode = 0; + int ret; + const char *npath; + mode_t mask = umask (0); + umask (mask); + + if ((mode & CPNIO_READ) && (mode & CPNIO_WRITE)) + nmode = O_RDWR; + else if (mode & CPNIO_WRITE) + nmode = O_WRONLY; + else + nmode = O_RDONLY; + + nmode = (nmode + | ((nmode == O_RDWR || nmode == O_WRONLY) ? O_CREAT : 0) + | ((mode & CPNIO_APPEND) ? O_APPEND : + ((nmode == O_RDWR || nmode == O_WRONLY) ? O_TRUNC : 0)) + | ((mode & CPNIO_EXCL) ? O_EXCL : 0) + | ((mode & CPNIO_SYNC) ? O_SYNC : 0)); + + npath = JCL_jstring_to_cstring (env, path); + +/* NIODBG("path: %s; mode: %x", npath, nmode); */ + + ret = open (npath, nmode, 0777 & ~mask); + +/* NIODBG("ret: %d\n", ret); */ + + JCL_free_cstring (env, path, npath); + + if (-1 == ret) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + + return ret; +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: position + * Signature: (I)J + */ +JNIEXPORT jlong JNICALL +Java_gnu_java_nio_VMChannel_position (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ +#ifdef HAVE_LSEEK + off_t ret; + + ret = lseek (fd, 0, SEEK_CUR); + + if (-1 == ret) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + + return (jlong) ret; +#else + JCL_ThrowException (env, IO_EXCEPTION, "position not supported"); + return -1; +#endif /* HAVE_LSEEK */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: seek + * Signature: (IJ)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_seek (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jlong pos) +{ +#ifdef HAVE_LSEEK + if (lseek (fd, (off_t) pos, SEEK_SET) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); +#else + JCL_ThrowException (env, IO_EXCEPTION, "seek not supported"); +#endif /* HAVE_LSEEK */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: truncate + * Signature: (IJ)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_truncate (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jlong len) +{ +#if defined(HAVE_FTRUNCATE) && defined(HAVE_LSEEK) + off_t pos = lseek (fd, 0, SEEK_CUR); + if (pos == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return; + } + if (ftruncate (fd, (off_t) len) == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return; + } + if (pos > len) + { + if (lseek (fd, len, SEEK_SET) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } +#else + JCL_ThrowException (env, IO_EXCEPTION, "truncate not supported"); +#endif /* HAVE_FTRUNCATE && HAVE_LSEEK */ +} + + +/* + * Class: gnu_java_nio_VMChannel + * Method: lock + * Signature: (IJJZZ)Z + */ +JNIEXPORT jboolean JNICALL +Java_gnu_java_nio_VMChannel_lock (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jlong pos, jlong len, + jboolean shared, jboolean wait) +{ +#if HAVE_FCNTL + struct flock fl; + + fl.l_start = (off_t) pos; + /* Long.MAX_VALUE means lock everything possible starting at pos. */ + if (len == 9223372036854775807LL) + fl.l_len = 0; + else + fl.l_len = (off_t) len; + fl.l_pid = getpid (); + fl.l_type = (shared ? F_RDLCK : F_WRLCK); + fl.l_whence = SEEK_SET; + + if (cpnio_fcntl (fd, (wait ? F_SETLKW : F_SETLK), (long) &fl) == -1) + { + if (errno != EAGAIN) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + + return JNI_TRUE; +#else + JCL_ThrowException (env, IO_EXCEPTION, "lock not supported"); + return JNI_FALSE; +#endif /* HAVE_FCNTL */ +} + +/* + * Class: gnu_java_nio_VMChannel + * Method: unlock + * Signature: (IJJ)V + */ +JNIEXPORT void JNICALL +Java_gnu_java_nio_VMChannel_unlock (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jlong pos, jlong len) +{ +#if HAVE_FCNTL + struct flock fl; + + fl.l_start = (off_t) pos; + fl.l_len = (off_t) len; + fl.l_pid = getpid (); + fl.l_type = F_UNLCK; + fl.l_whence = SEEK_SET; + + if (cpnio_fcntl (fd, F_SETLK, (long) &fl) == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + } +#else + JCL_ThrowException (env, IO_EXCEPTION, "unlock not supported"); +#endif /* HAVE_FCNTL */ +} + +/* + * Class: gnu_java_nio_VMChannel + * Method: size + * Signature: (I)J + */ +JNIEXPORT jlong JNICALL +Java_gnu_java_nio_VMChannel_size (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) +{ +#ifdef HAVE_FSTAT + struct stat st; + + if (fstat (fd, &st) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + + return (jlong) st.st_size; +#else + JCL_ThrowException (env, IO_EXCEPTION, "size not supported"); + return 0; +#endif +} + +/* + * Class: gnu_java_nio_VMChannel + * Method: map + * Signature: (ICJI)Lgnu/classpath/Pointer; + */ +JNIEXPORT jobject JNICALL +Java_gnu_java_nio_VMChannel_map (JNIEnv *env, + jclass clazz __attribute__((unused)), + jint fd, jchar mode, jlong position, jint size) +{ +#ifdef HAVE_MMAP + jclass MappedByteBufferImpl_class; + jmethodID MappedByteBufferImpl_init = NULL; + jobject Pointer_instance; + volatile jobject buffer; + long pagesize; + int prot, flags; + void *p; + void *address; + +/* NIODBG("fd: %d; mode: %x; position: %lld; size: %d", */ +/* fd, mode, position, size); */ + + /* FIXME: should we just assume we're on an OS modern enough to + have 'sysconf'? And not check for 'getpagesize'? */ +#if defined(HAVE_GETPAGESIZE) + pagesize = getpagesize (); +#elif defined(HAVE_SYSCONF) + pagesize = sysconf (_SC_PAGESIZE); +#else + JCL_ThrowException (env, IO_EXCEPTION, + "can't determine memory page size"); + return NULL; +#endif /* HAVE_GETPAGESIZE/HAVE_SYSCONF */ + + if ((*env)->ExceptionOccurred (env)) + { + return NULL; + } + + prot = PROT_READ; + if (mode == '+' || mode == 'c') + { + /* When writing we need to make sure the file is big enough, + otherwise the result of mmap is undefined. */ + struct stat st; + if (fstat (fd, &st) == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return NULL; + } + if (position + size > st.st_size) + { + if (ftruncate(fd, position + size) == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return NULL; + } + } + prot |= PROT_WRITE; + } + + flags = (mode == 'c' ? MAP_PRIVATE : MAP_SHARED); + p = mmap (NULL, (size_t) ALIGN_UP (size, pagesize), prot, flags, + fd, ALIGN_DOWN (position, pagesize)); + if (p == MAP_FAILED) + { + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return NULL; + } + + /* Unalign the mapped value back up, since we aligned offset + down to a multiple of the page size. */ + address = (void *) ((char *) p + (position % pagesize)); + + Pointer_instance = JCL_NewRawDataObject(env, address); + + MappedByteBufferImpl_class = (*env)->FindClass (env, + "java/nio/MappedByteBufferImpl"); + if (MappedByteBufferImpl_class != NULL) + { + MappedByteBufferImpl_init = + (*env)->GetMethodID (env, MappedByteBufferImpl_class, + "", "(Lgnu/classpath/Pointer;IZ)V"); + } + + if ((*env)->ExceptionOccurred (env)) + { + munmap (p, ALIGN_UP (size, pagesize)); + return NULL; + } + if (MappedByteBufferImpl_init == NULL) + { + JCL_ThrowException (env, "java/lang/InternalError", + "could not get MappedByteBufferImpl constructor"); + munmap (p, ALIGN_UP (size, pagesize)); + return NULL; + } + + buffer = (*env)->NewObject (env, MappedByteBufferImpl_class, + MappedByteBufferImpl_init, Pointer_instance, + (jint) size, mode == 'r'); + return buffer; +#else + (void) fd; + (void) mode; + (void) position; + (void) size; + JCL_ThrowException (env, IO_EXCEPTION, + "memory-mapped files not implemented"); + return 0; +#endif /* HAVE_MMAP */ +} + +/* + * Class: gnu_java_nio_VMChannel + * Method: flush + * Signature: (IZ)Z + */ +JNIEXPORT jboolean JNICALL +Java_gnu_java_nio_VMChannel_flush (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jboolean metadata __attribute__((unused))) +{ +#ifdef HAVE_FSYNC + /* XXX blocking? */ + if (fsync (fd) == -1) + { + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); + return JNI_FALSE; + } + return JNI_TRUE; +#else + JCL_ThrowException (env, IO_EXCEPTION, "flush not implemented"); + return JNI_TRUE; +#endif /* HAVE_FSYNC */ +} #ifdef __cplusplus diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMPipe.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMPipe.c index 369c5a3d650..cbaaa08348b 100644 --- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMPipe.c +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMPipe.c @@ -35,8 +35,14 @@ 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. */ + +#ifdef HAVE_CONFIG_H #include +#endif /* HAVE_CONFIG_H */ + #include +#include +#include #include #include @@ -45,12 +51,33 @@ exception statement from your version. */ #define IO_EXCEPTION "java/io/IOException" -JNIEXPORT void JNICALL -Java_gnu_java_nio_VMPipe_init (JNIEnv * env, - jclass cls __attribute__ ((__unused__)), - jobject self __attribute__ ((__unused__)), - jobject provider __attribute__ ((__unused__))) +/* + * Class: gnu_java_nio_VMPipe + * Method: pipe0 + * Signature: ()[I + */ +JNIEXPORT jintArray JNICALL +Java_gnu_java_nio_VMPipe_pipe0 (JNIEnv *env, + jclass c __attribute__((unused))) { - JCL_ThrowException (env, IO_EXCEPTION, - "gnu.java.nio.VMPipe.init(): not implemented"); + int fd[2]; + jintArray array; + jint* elem; + int ret; + + /* FIXME: autoconf this? */ + ret = pipe (fd); + + if (ret == -1) + { + JCL_ThrowException (env, "java/io/IOException", strerror (errno)); + return NULL; + } + + array = (*env)->NewIntArray (env, 2); + elem = (*env)->GetIntArrayElements (env, array, NULL); + elem[0] = fd[0]; + elem[1] = fd[1]; + (*env)->ReleaseIntArrayElements (env, array, elem, 0); + return array; } diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c index f8a40aa7a15..74a408c7572 100644 --- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c @@ -219,7 +219,7 @@ Java_gnu_java_nio_VMSelector_select (JNIEnv * env, fd_set except_fds; struct timeval real_time_data; struct timeval *time_data = NULL; - char message_buf[BUF_SIZE + 1]; + char *message; /* If a legal timeout value isn't given, use NULL. * This means an infinite timeout. The specification @@ -270,7 +270,8 @@ Java_gnu_java_nio_VMSelector_select (JNIEnv * env, if (result < 0) { - +#if defined(HAVE_STRERROR_R) + char message_buf[BUF_SIZE+1]; int errorcode = -result; if (strerror_r (errorcode, message_buf, BUF_SIZE)) @@ -283,7 +284,12 @@ Java_gnu_java_nio_VMSelector_select (JNIEnv * env, return 0; } - JCL_ThrowException (env, "java/io/IOException", message_buf); + message = message_buf; +#else + message = strerror(errno); +#endif + + JCL_ThrowException (env, "java/io/IOException", message); return 0; } diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c deleted file mode 100644 index 5aed63f355d..00000000000 --- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c +++ /dev/null @@ -1,902 +0,0 @@ -/* gnu_java_nio_channels_FileChannelImpl.c - - Copyright (C) 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. */ - -/* do not move; needed here because of some macro definitions */ -#include - -#include -#include - -#include -#include - -#include "target_native.h" -#ifndef WITHOUT_FILESYSTEM -#include "target_native_file.h" -#endif -#include "target_native_math_int.h" - -#include "gnu_java_nio_channels_FileChannelImpl.h" - -#ifdef HAVE_FCNTL_H -#include -#endif /* HAVE_FCNTL_H */ - -#ifdef HAVE_SYS_MMAN_H -#include -#endif /* HAVE_SYS_MMAN_H */ - -/* These values must be kept in sync with FileChannelImpl.java. */ -#define FILECHANNELIMPL_READ 1 -#define FILECHANNELIMPL_WRITE 2 -#define FILECHANNELIMPL_APPEND 4 - -/* These values must be kept in sync with FileChannelImpl.java. */ -/* #define FILECHANNELIMPL_FILESEEK_SET 0 */ -/* #define FILECHANNELIMPL_FILESEEK_CUR 1 */ -/* #define FILECHANNELIMPL_FILESEEK_END 2 */ - -#define FILECHANNELIMPL_FILEOPEN_FLAG_READ 1 -#define FILECHANNELIMPL_FILEOPEN_FLAG_WRITE 2 -#define FILECHANNELIMPL_FILEOPEN_FLAG_APPEND 4 -#define FILECHANNELIMPL_FILEOPEN_FLAG_EXCL 8 -#define FILECHANNELIMPL_FILEOPEN_FLAG_SYNC 16 -#define FILECHANNELIMPL_FILEOPEN_FLAG_DSYNC 32 - -#define IO_EXCEPTION "java/io/IOException" - -/* FIXME: This can't be right. Need converter macros. */ -#define CONVERT_JLONG_TO_INT(x) TARGET_NATIVE_MATH_INT_INT64_TO_INT32(x) -#define CONVERT_INT_TO_JLONG(x) TARGET_NATIVE_MATH_INT_INT32_TO_INT64(x) - -/* FIXME: This can't be right. Need converter macros. */ -#define CONVERT_JLONG_TO_OFF_T(x) TARGET_NATIVE_MATH_INT_INT64_TO_INT32(x) -#define CONVERT_OFF_T_TO_JLONG(x) TARGET_NATIVE_MATH_INT_INT32_TO_INT64(x) - -/* FIXME: This can't be right. Need converter macros */ -#define CONVERT_JINT_TO_INT(x) ((int)(x & 0xFFFFFFFF)) -#define CONVERT_INT_TO_JINT(x) ((int)(x & 0xFFFFFFFF)) - -/* FIXME: This can't be right. Need converter macros. */ -#define CONVERT_SSIZE_T_TO_JINT(x) ((jint)(x & 0xFFFFFFFF)) -#define CONVERT_JINT_TO_SSIZE_T(x) (x) - -/* Align a value up or down to a multiple of the pagesize. */ -#define ALIGN_DOWN(p,s) ((p) - ((p) % (s))) -#define ALIGN_UP(p,s) ((p) + ((s) - ((p) % (s)))) - -/* cached fieldID of gnu.java.nio.channels.FileChannelImpl.fd */ -static jfieldID native_fd_fieldID; - -static jint -get_native_fd (JNIEnv * env, jobject obj) -{ - return (*env)->GetIntField (env, obj, native_fd_fieldID); -} - -/* - * Library initialization routine. Called as part of java.io.FileDescriptor - * static initialization. - */ -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_init (JNIEnv * env, - jclass clazz - __attribute__ ((__unused__))) -{ - jclass clazz_fc; - jfieldID field; - - /* Initialize native_fd_fieldID so we only compute it once! */ - clazz_fc = (*env)->FindClass (env, "gnu/java/nio/channels/FileChannelImpl"); - if (!clazz_fc) - { - JCL_ThrowException (env, IO_EXCEPTION, "Internal error"); - return; - } - - field = (*env)->GetFieldID (env, clazz_fc, "fd", "I"); - if (!field) - { - JCL_ThrowException (env, IO_EXCEPTION, "Internal error"); - return; - } - - native_fd_fieldID = field; -} - -/* - * Open the specified file and return a native file descriptor - */ -JNIEXPORT jint JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_open (JNIEnv * env, - jobject obj - __attribute__ ((__unused__)), - jstring name, jint mode) -{ - const char *filename; - int flags; - int permissions; - int native_fd; - int result; - - filename = JCL_jstring_to_cstring (env, name); - if (filename == NULL) - return (-1); /* Exception will already have been thrown */ - - /* get file/permission flags for open() */ - if ((mode & FILECHANNELIMPL_FILEOPEN_FLAG_READ) - && (mode & FILECHANNELIMPL_FILEOPEN_FLAG_WRITE)) - { - /* read/write */ - flags = - TARGET_NATIVE_FILE_FILEFLAG_CREATE | - TARGET_NATIVE_FILE_FILEFLAG_READWRITE; - permissions = TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL; - } - else if ((mode & FILECHANNELIMPL_FILEOPEN_FLAG_READ)) - { - /* read */ - flags = TARGET_NATIVE_FILE_FILEFLAG_READ; - permissions = TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL; - } - else - { - /* write */ - flags = - TARGET_NATIVE_FILE_FILEFLAG_CREATE | - TARGET_NATIVE_FILE_FILEFLAG_WRITE; - if ((mode & FILECHANNELIMPL_FILEOPEN_FLAG_APPEND)) - { - flags |= TARGET_NATIVE_FILE_FILEFLAG_APPEND; - } - else - { - flags |= TARGET_NATIVE_FILE_FILEFLAG_TRUNCATE; - } - permissions = TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL; - } - - if ((mode & FILECHANNELIMPL_FILEOPEN_FLAG_SYNC)) - { - flags |= TARGET_NATIVE_FILE_FILEFLAG_SYNC; - } - - if ((mode & FILECHANNELIMPL_FILEOPEN_FLAG_DSYNC)) - { - flags |= TARGET_NATIVE_FILE_FILEFLAG_DSYNC; - } -#ifdef O_BINARY - flags |= TARGET_NATIVE_FILE_FILEFLAG_BINARY; -#endif - - TARGET_NATIVE_FILE_OPEN (filename, native_fd, flags, permissions, result); - - if (result != TARGET_NATIVE_OK) - { - char message[256]; /* Fixed size we don't need to malloc. */ - char *error_string = TARGET_NATIVE_LAST_ERROR_STRING (); - - snprintf(message, 256, "%s: %s", error_string, filename); - /* We are only allowed to throw FileNotFoundException. */ - JCL_ThrowException (env, - "java/io/FileNotFoundException", - message); - JCL_free_cstring (env, name, filename); - return TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1; - } - - JCL_free_cstring (env, name, filename); - return native_fd; -} - -/* - * Closes the specified file descriptor and return status code. - * Exception on error - */ -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_implCloseChannel (JNIEnv * env, - jobject obj) -{ - int native_fd; - int result; - - native_fd = get_native_fd (env, obj); - - do - { - TARGET_NATIVE_FILE_CLOSE (native_fd, result); - if (result != TARGET_NATIVE_OK - && (TARGET_NATIVE_LAST_ERROR () - != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - } - while (result != TARGET_NATIVE_OK); -} - -/* - * Return number of bytes that can be read from the file w/o blocking. - * Exception on error - */ -JNIEXPORT jint JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_available (JNIEnv * env, - jobject obj) -{ - int native_fd; - jlong bytes_available; - int result; - - native_fd = get_native_fd (env, obj); - - do - { - TARGET_NATIVE_FILE_AVAILABLE (native_fd, bytes_available, result); - if (result != TARGET_NATIVE_OK - && (TARGET_NATIVE_LAST_ERROR () - != TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return 0; - } - } - while (result != TARGET_NATIVE_OK); - - /* FIXME NYI ??? why only jint and not jlong? */ - return TARGET_NATIVE_MATH_INT_INT64_TO_INT32 (bytes_available); -} - -JNIEXPORT jlong JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_size (JNIEnv * env, jobject obj) -{ - int native_fd; - jlong file_size; - int result; - - native_fd = get_native_fd (env, obj); - - TARGET_NATIVE_FILE_SIZE (native_fd, file_size, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1; - } - - return file_size; -} - -/* - * Return the current position of the file pointer - * Exception on error - */ -JNIEXPORT jlong JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_implPosition (JNIEnv * env, - jobject obj) -{ - int native_fd; - jlong current_offset; - int result; - - native_fd = get_native_fd (env, obj); - - TARGET_NATIVE_FILE_TELL (native_fd, current_offset, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1; - } - - return current_offset; -} - -/* - * Wrapper around lseek call. Return new file position - * Exception on error - */ -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_seek (JNIEnv * env, jobject obj, - jlong offset) -{ - int native_fd; - jlong new_offset; - int result; - - native_fd = get_native_fd (env, obj); - -#if 0 - /* Should there be such an exception? All native layer macros should - be accepting 64bit-values if needed. It some target is not able - to handle such values it should simply operate with 32bit-values - and convert 64bit-values appriopated. In this case I assume - problems should not occurre: if some specific target is not able - to handle 64bit-values the system is limited to 32bit at all, thus - the application can not do a seek() or something else beyond the - 32bit limit. It this true? - */ - - /* FIXME: What do we do if offset > the max value of off_t on this 32bit - * system? How do we detect that and what do we do? */ - if (CONVERT_OFF_T_TO_JLONG (native_offset) != offset) - { - JCL_ThrowException (env, IO_EXCEPTION, - "Cannot represent position correctly on this system"); - } -#endif /* 0 */ - - result = TARGET_NATIVE_ERROR; - new_offset = TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1; - TARGET_NATIVE_FILE_SEEK_BEGIN (native_fd, offset, new_offset, result); - - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - } -} - -/* - * Set the length of the file - * Exception on error - */ -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_implTruncate (JNIEnv * env, - jobject obj, - jlong len) -{ - int native_fd; - jlong file_size; - int bytes_written; - jlong save_offset, new_offset; - char data; - int result; - - native_fd = get_native_fd (env, obj); - -#if 0 - /* Should there be such an exception? All native layer macros should - be accepting 64bit-values if needed. It some target is not able - to handle such values it should simply operate with 32bit-values - and convert 64bit-values appriopated. In this case I assume - problems should not occurre: if some specific target is not able - to handle 64bit-values the system is limited to 32bit at all, thus - the application can not do a seek() or something else beyond the - 32bit limit. It this true? - */ - - /* FIXME: What do we do if len > the max value of off_t on this 32bit - * system? How do we detect that and what do we do? */ - if (CONVERT_OFF_T_TO_JLONG (native_len) != len) - { - JCL_ThrowException (env, IO_EXCEPTION, - "Cannot represent position correctly on this system"); - return; - } -#endif /* 0 */ - - /* get file size */ - TARGET_NATIVE_FILE_SIZE (native_fd, file_size, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - - /* Save off current position */ - TARGET_NATIVE_FILE_TELL (native_fd, save_offset, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - - if (TARGET_NATIVE_MATH_INT_INT64_LT (file_size, len)) - { - /* File is too short -- seek to one byte short of where we want, - * then write a byte */ - - /* move to position n-1 */ - TARGET_NATIVE_FILE_SEEK_BEGIN (native_fd, - TARGET_NATIVE_MATH_INT_INT64_SUB (len, - 1), - new_offset, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - - /* write a byte - Note: This will fail if we somehow get here in read only mode - * That shouldn't happen */ - data = '\0'; - TARGET_NATIVE_FILE_WRITE (native_fd, &data, 1, bytes_written, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - - /* Reposition file pointer to where we started if not beyond new len. */ - if (TARGET_NATIVE_MATH_INT_INT64_LT (save_offset, len)) - { - TARGET_NATIVE_FILE_SEEK_BEGIN (native_fd, save_offset, - new_offset, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - } - } - else if (TARGET_NATIVE_MATH_INT_INT64_GT (file_size, len)) - { - /* File is too long - use ftruncate if available */ -#ifdef HAVE_FTRUNCATE - TARGET_NATIVE_FILE_TRUNCATE (native_fd, len, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } -#else /* HAVE_FTRUNCATE */ - /* FIXME: Probably operation isn't supported, but this exception - * is too harsh as it will probably crash the program without need - JCL_ThrowException(env, "java/lang/UnsupportedOperationException", - "not implemented - can't shorten files on this platform"); - */ - JCL_ThrowException (env, IO_EXCEPTION, "Unable to shorten file length"); -#endif /* HAVE_FTRUNCATE */ - - /* Reposition file pointer when it now is beyond the end of file. */ - if (TARGET_NATIVE_MATH_INT_INT64_GT (save_offset, len)) - { - TARGET_NATIVE_FILE_SEEK_BEGIN (native_fd, len, new_offset, result); - if (result != TARGET_NATIVE_OK) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - } - } -} - -JNIEXPORT jobject JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_mapImpl (JNIEnv *env, jobject obj, - jchar mode, jlong position, jint size) -{ -#ifdef HAVE_MMAP - jclass MappedByteBufferImpl_class; - jmethodID MappedByteBufferImpl_init = NULL; - jobject Pointer_instance; - volatile jobject buffer; - long pagesize; - int prot, flags; - int fd; - void *p; - void *address; - - /* FIXME: should we just assume we're on an OS modern enough to - have 'sysconf'? And not check for 'getpagesize'? */ -#if defined(HAVE_GETPAGESIZE) - pagesize = getpagesize (); -#elif defined(HAVE_SYSCONF) - pagesize = sysconf (_SC_PAGESIZE); -#else - JCL_ThrowException (env, IO_EXCEPTION, - "can't determine memory page size"); - return NULL; -#endif /* HAVE_GETPAGESIZE/HAVE_SYSCONF */ - - if ((*env)->ExceptionOccurred (env)) - { - return NULL; - } - - fd = get_native_fd (env, obj); - - prot = PROT_READ; - if (mode == '+' || mode == 'c') - { - /* When writing we need to make sure the file is big enough, - otherwise the result of mmap is undefined. */ - jlong filesize; - filesize = Java_gnu_java_nio_channels_FileChannelImpl_size(env, obj); - if (filesize == -1) - return NULL; - if (position + size > filesize) - if (ftruncate(fd, position + size) == -1) - { - JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); - return NULL; - } - prot |= PROT_WRITE; - } - - flags = (mode == 'c' ? MAP_PRIVATE : MAP_SHARED); - p = mmap (NULL, (size_t) ALIGN_UP (size, pagesize), prot, flags, - fd, ALIGN_DOWN (position, pagesize)); - if (p == MAP_FAILED) - { - JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); - return NULL; - } - - /* Unalign the mapped value back up, since we aligned offset - down to a multiple of the page size. */ - address = (void *) ((char *) p + (position % pagesize)); - - Pointer_instance = JCL_NewRawDataObject(env, address); - - MappedByteBufferImpl_class = (*env)->FindClass (env, - "java/nio/MappedByteBufferImpl"); - if (MappedByteBufferImpl_class != NULL) - { - MappedByteBufferImpl_init = - (*env)->GetMethodID (env, MappedByteBufferImpl_class, - "", "(Lgnu/classpath/Pointer;IZ)V"); - } - - if ((*env)->ExceptionOccurred (env)) - { - munmap (p, ALIGN_UP (size, pagesize)); - return NULL; - } - if (MappedByteBufferImpl_init == NULL) - { - JCL_ThrowException (env, "java/lang/InternalError", - "could not get MappedByteBufferImpl constructor"); - munmap (p, ALIGN_UP (size, pagesize)); - return NULL; - } - - buffer = (*env)->NewObject (env, MappedByteBufferImpl_class, - MappedByteBufferImpl_init, Pointer_instance, - (jint) size, mode == 'r'); - return buffer; -#else - (void) obj; - (void) mode; - (void) position; - (void) size; - JCL_ThrowException (env, IO_EXCEPTION, - "memory-mapped files not implemented"); - return 0; -#endif /* HAVE_MMAP */ -} - -/* - * Read a single byte from the file descriptor - * Return byte read or -1 on eof, exception on error - */ -JNIEXPORT jint JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_read__ (JNIEnv * env, jobject obj) -{ - int native_fd; - char data; - ssize_t bytes_read; - int result; - - native_fd = get_native_fd (env, obj); - - bytes_read = 0; - do - { - TARGET_NATIVE_FILE_READ (native_fd, &data, 1, bytes_read, result); - if ((result == TARGET_NATIVE_OK) && (bytes_read == 0)) - { - return (-1); - } - if ((result != TARGET_NATIVE_OK) - && (TARGET_NATIVE_LAST_ERROR () != - TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return (-1); - } - } - while (result != TARGET_NATIVE_OK); - - return ((jint) (data & 0xFF)); -} - -/* - * Reads to a byte buffer from the specified file descriptor - * Return number of bytes read or -1 on eof, exception on error - */ -JNIEXPORT jint JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_read___3BII (JNIEnv * env, - jobject obj, - jbyteArray buffer, - jint offset, - jint length) -{ - int native_fd; - jbyte *bufptr; - ssize_t bytes_read; - ssize_t n; - int result; - - native_fd = get_native_fd (env, obj); - - /* Must return 0 if an attempt is made to read 0 bytes. */ - if (length == 0) - return 0; - - if (offset < 0) - { - JCL_ThrowException (env, IO_EXCEPTION, "negative offset"); - return -1; - } - - bufptr = (*env)->GetByteArrayElements (env, buffer, 0); - if (!bufptr) - { - JCL_ThrowException (env, IO_EXCEPTION, "Unexpected JNI error"); - return (-1); - } - - if (length + offset > (*env)->GetArrayLength (env, buffer)) - { - JCL_ThrowException (env, IO_EXCEPTION, - "length + offset > buffer.length"); - return -1; - } - - bytes_read = 0; - do - { - TARGET_NATIVE_FILE_READ (native_fd, (bufptr + offset + bytes_read), - (length - bytes_read), n, result); - if ((result == TARGET_NATIVE_OK) && (n == 0)) - { - (*env)->ReleaseByteArrayElements (env, buffer, bufptr, 0); - if (bytes_read == 0) - return -1; /* Signal end of file to Java */ - else - return CONVERT_SSIZE_T_TO_JINT (bytes_read); - } - if ((result != TARGET_NATIVE_OK) - && (TARGET_NATIVE_LAST_ERROR () != - TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - (*env)->ReleaseByteArrayElements (env, buffer, bufptr, 0); - return -1; - } - if (result == TARGET_NATIVE_OK) - bytes_read += n; - } - while (bytes_read < 1); - - (*env)->ReleaseByteArrayElements (env, buffer, bufptr, 0); - return CONVERT_SSIZE_T_TO_JINT (bytes_read); -} - -/* - * Writes a single byte to the specified file descriptor - * Return status code, exception on error - */ -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_write__I (JNIEnv * env, - jobject obj, jint b) -{ - int native_fd; - char native_data; - ssize_t bytes_written; - int result; - - native_fd = get_native_fd (env, obj); - native_data = (char) (CONVERT_JINT_TO_INT (b) & 0xFF); - - do - { - TARGET_NATIVE_FILE_WRITE (native_fd, &native_data, 1, bytes_written, - result); - if ((result != TARGET_NATIVE_OK) - && (TARGET_NATIVE_LAST_ERROR () != - TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - return; - } - } - while (result != TARGET_NATIVE_OK); -} - -/* - * Copies all parts of a file to disk. - */ -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_force (JNIEnv * env, - jobject obj) -{ - int native_fd; - int result; - native_fd = get_native_fd (env, obj); - TARGET_NATIVE_FILE_FSYNC (native_fd, result); - if (result != TARGET_NATIVE_OK) - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); -} - -/* - * Writes a byte buffer to the specified file descriptor - * Return status code, exception on error - */ -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_write___3BII (JNIEnv * env, - jobject obj, - jbyteArray buffer, - jint offset, - jint length) -{ - int native_fd; - jbyte *bufptr; - ssize_t bytes_written; - ssize_t n; - int result; - - native_fd = get_native_fd (env, obj); - - /* Just return if an attempt is made to write 0 bytes. */ - if (length == 0) - return; - - bufptr = (*env)->GetByteArrayElements (env, buffer, 0); - if (!bufptr) - { - JCL_ThrowException (env, IO_EXCEPTION, "Unexpected JNI error"); - return; - } - - bytes_written = 0; - while (bytes_written < CONVERT_JINT_TO_SSIZE_T (length)) - { - TARGET_NATIVE_FILE_WRITE (native_fd, (bufptr + offset + bytes_written), - (length - bytes_written), n, result); - if ((result != TARGET_NATIVE_OK) - && (TARGET_NATIVE_LAST_ERROR () != - TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL)) - { - JCL_ThrowException (env, IO_EXCEPTION, - TARGET_NATIVE_LAST_ERROR_STRING ()); - (*env)->ReleaseByteArrayElements (env, buffer, bufptr, 0); - return; - } - if (result == TARGET_NATIVE_OK) - bytes_written += n; - } - - (*env)->ReleaseByteArrayElements (env, buffer, bufptr, 0); -} - -JNIEXPORT jboolean JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_lock (JNIEnv *env, jobject obj, - jlong position, jlong size, - jboolean shared, jboolean wait) -{ -#ifdef HAVE_FCNTL - int fd = get_native_fd (env, obj); - int cmd = wait ? F_SETLKW : F_SETLK; - struct flock flock; - int ret; - - flock.l_type = shared ? F_RDLCK : F_WRLCK; - flock.l_whence = SEEK_SET; - flock.l_start = (off_t) position; - /* Long.MAX_VALUE means lock everything possible starting at pos. */ - if (size == 9223372036854775807LL) - flock.l_len = 0; - else - flock.l_len = (off_t) size; - - ret = fcntl (fd, cmd, &flock); - /* fprintf(stderr, "fd %d, wait %d, shared %d, ret %d, position %lld, size %lld, l_start %ld, l_len %ld\n", fd, wait, shared,ret, position, size, (long) flock.l_start, (long) flock.l_len); */ - if (ret) - { - /* Linux man pages for fcntl state that errno might be either - EACCES or EAGAIN if we try F_SETLK, and another process has - an overlapping lock. We should not get an unexpected errno. */ - if (errno != EACCES && errno != EAGAIN) - { - JCL_ThrowException (env, "java/lang/InternalError", - strerror (errno)); - } - return JNI_FALSE; - } - return JNI_TRUE; -#else - (void) obj; - (void) position; - (void) size; - (void) shared; - (void) wait; - JCL_ThrowException (env, "java/lang/UnsupportedOperationException", - "file locks not implemented on this platform"); - return JNI_FALSE; -#endif /* HAVE_FCNTL */ -} - -JNIEXPORT void JNICALL -Java_gnu_java_nio_channels_FileChannelImpl_unlock (JNIEnv *env, - jobject obj, - jlong position, - jlong length) -{ -#ifdef HAVE_FCNTL - int fd = get_native_fd (env, obj); - struct flock flock; - int ret; - - flock.l_type = F_UNLCK; - flock.l_whence = SEEK_SET; - flock.l_start = (off_t) position; - /* Long.MAX_VALUE means unlock everything possible starting at pos. */ - if (length == 9223372036854775807LL) - flock.l_len = 0; - else - flock.l_len = (off_t) length; - - ret = fcntl (fd, F_SETLK, &flock); - if (ret) - { - JCL_ThrowException (env, "java/lang/InternalError", - strerror (errno)); - } -#else - (void) obj; - (void) position; - (void) length; - JCL_ThrowException (env, "java/lang/UnsupportedOperationException", - "file locks not implemented on this platform"); -#endif /* HAVE_FCNTL */ -} diff --git a/libjava/classpath/native/jni/java-nio/java_nio_MappedByteBufferImpl.c b/libjava/classpath/native/jni/java-nio/java_nio_MappedByteBufferImpl.c index b4909198267..2a87d29507e 100644 --- a/libjava/classpath/native/jni/java-nio/java_nio_MappedByteBufferImpl.c +++ b/libjava/classpath/native/jni/java-nio/java_nio_MappedByteBufferImpl.c @@ -1,5 +1,5 @@ /* java_nio_MappedByteBufferImpl.c - Native methods for MappedByteBufferImpl - Copyright (C) 2004,2005 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -7,7 +7,7 @@ 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 @@ -43,7 +43,6 @@ exception statement from your version. */ #include "java_nio_MappedByteBufferImpl.h" -#include #include #include #ifdef HAVE_UNISTD_H diff --git a/libjava/classpath/native/jni/java-nio/javanio.c b/libjava/classpath/native/jni/java-nio/javanio.c new file mode 100644 index 00000000000..d9e4d4f1d95 --- /dev/null +++ b/libjava/classpath/native/jni/java-nio/javanio.c @@ -0,0 +1,122 @@ +/* javanio.c -- implementations of functions in javanio.h. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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, because these functions are trivial, and should be inlined, + * we include this file in the header, and do not compile it. + */ + +#include +#include +#include +#include +#include + +CPNIO_EXPORT ssize_t +cpnio_read (int fd, void *buf, size_t nbytes) +{ + return read (fd, buf, nbytes); +} + +CPNIO_EXPORT ssize_t +cpnio_readv (int fd, const struct iovec *iov, int iovcnt) +{ + return readv (fd, iov, iovcnt); +} + +CPNIO_EXPORT ssize_t +cpnio_write (int fd, const void *buf, size_t nbytes) +{ + return write (fd, buf, nbytes); +} + +CPNIO_EXPORT ssize_t +cpnio_writev (int fd, const struct iovec *iov, size_t iovcnt) +{ + return writev (fd, iov, iovcnt); +} + +CPNIO_EXPORT int +cpnio_socket (int domain, int type, int protocol) +{ + return socket (domain, type, protocol); +} + +CPNIO_EXPORT int +cpnio_connect (int fd, const struct sockaddr *addr, socklen_t addrlen) +{ + return connect (fd, addr, addrlen); +} + +CPNIO_EXPORT int +cpnio_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) +{ + return accept (fd, addr, addrlen); +} + +CPNIO_EXPORT ssize_t +cpnio_sendto (int fd, const void *msg, size_t len, int flags, + const struct sockaddr *to, socklen_t tolen) +{ + return sendto (fd, msg, len, flags, to, tolen); +} + +CPNIO_EXPORT ssize_t +cpnio_recvfrom (int fd, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen) +{ + return recvfrom (fd, buf, len, flags, from, fromlen); +} + +CPNIO_EXPORT int +cpnio_fcntl (int fd, int cmd, long arg) +{ +#ifdef HAVE_FCNTL + return fcntl (fd, cmd, arg); +#else + errno = ENOSUP; + return -1; +#endif /* HAVE_FCNTL */ +} + +CPNIO_EXPORT int +cpnio_select (int nfds, fd_set *readfds, fd_set *writefds, + fd_set *excepfds, struct timeval *timeo) +{ + return select (nfds, readfds, writefds, excepfds, timeo); +} diff --git a/libjava/classpath/native/jni/java-nio/javanio.h b/libjava/classpath/native/jni/java-nio/javanio.h new file mode 100644 index 00000000000..bdd11055ea8 --- /dev/null +++ b/libjava/classpath/native/jni/java-nio/javanio.h @@ -0,0 +1,332 @@ +/* javanio.h -- reference implementation of native functions. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a 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 of the License, 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; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, 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. */ + + +#ifndef __JAVANIO_H__ +#define __JAVANIO_H__ + +/** + * This header defines functions that are called by our JNI reference + * implementation of java.nio.*. In our reference implementation, these + * functions map exactly to their counterparts in POSIX; in implementations + * that can't use these functions directly (such as systems that use user-land + * threads, and thus can't call blocking system calls directly) can provide + * their own implementations suitable for their system. + */ + +/** + * This macro is used in all function prototypes below; if any additional + * keywords need to be added to a prototype, declare them in this macro. + */ +#define CPNIO_EXPORT static inline + +/** + * Read bytes from the given file descriptor into the given memory address, which + * has sufficient space for NBYTES bytes. + * + * \param fd The file descriptor to read from. + * \param buf The memory address to read bytes into. + * \param nbytes The number of bytes available to store in BUF. + * \return The number of bytes read, possibly zero, on success; return -1 on failure, + * and set ERRNO to an appropriate value. + * \see read(2) + * + * Allowed errno values: + * [EBADF] If FD is not a valid file descriptor, or is not open for reading. + * [EFAULT] If BUF points outside the process's address space. + * [EIO] An I/O error occurrs. + * [EINTR] If the read is interrupted by a signal. + * [EINVAL] If FD is negative. + * [EAGAIN] If FD was marked for non-blocking I/O, and no data were ready to + * be read. + */ +CPNIO_EXPORT ssize_t cpnio_read (int fd, void *buf, size_t nbytes); + +/* + * Read bytes from a file descriptor into a sequence of IO buffers. + * + * The iovec structure is defined as: + * + * struct iovec { + * char *iov_base; + * size_t iov_len; + * }; + * + * The call to _cp_readv should do a scattering read, where for each struct iovec + * in the supplied list, up to IOV_LEN bytes are read into IOV_BASE. The function + * returns the total number of bytes read into all supplied buffers. + * + * \param fd The file descriptor. + * \param iov A pointer to the head of a list of iovec structures. + * \param iovcnt The number of iovec structures pointed to by IOV. + * \return The total number of bytes read accross all buffers, possibly zero. On + * error, -1 is returned and ERRNO is set. + * \see readv(2) + * + * Allowed ERRNO values include all of those listed for _cp_read, as well as the + * following: + * [EINVAL] If IOVCNT overflows the maximum number of iovec structures + * this platform supports (usually 16), if any IOV_LEN value + * is negative, or if the sum of all IOV_LEN values is too + * large to be stored in a ssize_t (usually a 32-bit integer). + * [EFAULT] If part of IOV points outside the process's address space. + */ +CPNIO_EXPORT ssize_t cpnio_readv (int fd, const struct iovec *iov, int iovcnt); + +/* + * Write NBYTES bytes from BUF to the file descriptor FD, returning the number + * of bytes successfully written. + * + * \param fd The file descriptor. + * \param buf A pointer to the bytes to write. + * \param nbytes The maximum number of bytes to write. + * \return The number of bytes written to the file descriptor, possibly zero. -1 + * is returned if an error is encountered, and ERRNO will be set. + * \see write(2) + * + * Allowed ERRNO values: + * [EBADF] If FD is not a valid file descriptor or is not open for writing. + * [EPIPE] If FD is a pipe, when the other side is disconnected; if FD is a + * socket, when the peer is not connected. + * [EFBIG] When FD is a file, and writing to it overflows the process's + * or the system's maximim file size. + * [EFAULT] If the buffer to write points outside the process's address + * space. + * [EINVAL] If the descriptor FD is negative. + * [ENOSPC] If FD is a file, and there is insufficient space on the + * filesystem. + * [EDQUOT] If FD is a file, and the user's disk quota has been exceeded. + * [EIO] If an I/O error occurs. + * [EINTR] If the call is interrupted by a signal. + * [EAGAIN] If FD is in non-blocking mode, and no bytes could be immediately + * written. + */ +CPNIO_EXPORT ssize_t cpnio_write (int fd, const void *buf, size_t nbytes); + +/* + * Write data from a sequence of IOVCNT buffers IOV to a file descriptor FD. + * + * \param fd The file descriptor. + * \param iov The list of buffers to write. + * \param iovcnt The number of iovec structures pointed to by IOV. + * \return The total number of bytes written from the given buffers, possibly + * zero. -1 if an error occurs, and ERRNO will be set. + * \see writev(2) + * + * Allowed ERRNO values include those mentioned in _cp_write, as well as: + * [EDESTADDRREQ] If the descriptor is a datagram socket, and the peer is + * no longer available. + * [EINVAL] If IOVCNT is out of range, if any IOV_LEN value is + * negative, or if the sum of all IOVCNT IOV_LEN values + * will overflow a ssize_t. + * [ENOBUFS] If the mbuf pool is exhausted (???). + */ +CPNIO_EXPORT ssize_t cpnio_writev (int fd, const struct iovec *iov, size_t iovcnt); + +/** + * Open a new, unbound and unconnected socket. + * + * \param domain The socket domain. Implementations need only handle AF_INET. + * \param type The socket type; implementations need only handle types + * SOCK_STREAM (for streaming sockets) and SOCK_DGRAM (for datagram sockets). + * \param protocol This should always be 0. It can be ignored. + * \return A new file descriptor pointing to a newly created socket, or -1 on + * error, and ERRNO set. + * + * Allowed ERRNO values: + * [EPROTONOSUPPORT] If TYPE is unrecognized. + * [EMFILE] If a new file descriptor cannot be allocated, because + * the process's descriptor table is full. + * [ENFILE] Likewise, but when the system table is full. + * [EACCES] If this operation is not allowed. + * [ENOBUFS] If there is not enough buffer space available for the + * new socket. + */ +CPNIO_EXPORT int cpnio_socket (int domain, int type, int protocol); + +/** + * Connect a socket to a remote address. + * + * \param fd The file descriptor of the socket to connect. + * \param addr The address to connect to. In practice, this should be + * either a `struct sockaddr_in' or a `struct sockaddr_in6'. + * \param addrlen The size of the address structure passed by ADDR. + * \return Zero if the connect succeeds. -1 on error, and ERRNO should be set. + * + * Allowed ERRNO values: + * [EBADF] If FD is not a valid file descriptor. + * [ENOTSOCK] If FD is not a socket descriptor. + * [EADDRNOTAVAIL] If ADDR is not available for use to this process. + * [EAFNOSUPPORT] If the address family of ADDR is not supported. + * [EISCONN] If the socket is already connected. + * [ETIMEDOUT] If the connection could not be made in a reasonable + * amount of time. + * [ECONNREFUSED] If the connection attempt was rejected. + * [ENETUNREACH] If the network ADDR is on is unreachable. + * [EADDRINUSE] If the address is already in use. + * [EFAULT] If ADDR points outside the addressable space. + * [EINPROGRESS] If FD is in non-blocking mode, and the connection could + * not be completed immediately. + * [EALREADY] If FD is in non-blocking mode, and a connection attempt + * is still pending. + * [EACCESS] If ADDR is the broadcast address, and the socket option + * SO_BROADCAST is not set. + */ +CPNIO_EXPORT int cpnio_connect (int fd, const struct sockaddr *addr, socklen_t addrlen); + +/** + * Accept an incoming connection on a socket, returning a new socket for + * the connection, and storing the peer address in ADDR. + * + * \param fd The socket file descriptor. + * \param addr The structure to store the peer address in. + * \param addrlen The size of the data available in ADDR; upon return, the + * number of bytes stored in ADDR will be placed here. + * \return The new socket file descriptor, or -1 on error, and ERRNO set. + * + * Allowed ERRNO values: + * [EBADF] If FD is not a valid file descriptor. + * [ENOTSOCK] If FD in not a socket descriptor. + * [EOPNOTSUPP] If the socket is not a SOCK_STREAM socket. + * [EFAULT] If ADDR points outside the process's addressable space. + * [EWOULDBLOCK] If the socket is in non-blocking mode, and no connection + * attempt is currently ready. + * [EMFILE] If the process's descriptor table is full. + * [ENFILE] If the system's descriptor table is full. + */ +CPNIO_EXPORT int cpnio_accept (int fd, struct sockaddr *addr, socklen_t *addrlen); + +/** + * Send a datagram to the given address. + * + * \param fd The socket file descriptor. + * \param msg A pointer to the message to send. + * \param len The size of the message to send. + * \param flags Flags for sending. + * \param to The remote address to send the message to. + * \param tolen The size of the TO address structure. + * \return The number of bytes written, possibly zero, on success. Returns + * -1 on failure, and sets ERRNO. + * \see sendto(2) + * + * Allowed ERRNO values: + * [EBADF] + * [ENOTSOCK] + * [EFAULT] + * [EMSGSIZE] + * [EAGAIN] + * [ENOBUFS] + * [EACCES] + * [EHOSTUNREACH] + */ +CPNIO_EXPORT ssize_t cpnio_sendto (int fd, const void *msg, size_t len, int flags, + const struct sockaddr *to, socklen_t tolen); + +/** + * Receive a message on a socket, storing the remote host's address in + * FROM. + * + * \param fd The socket file descriptor. + * \param buf The buffer to store received bytes in. + * \param flags Flags to control the receive. + * \param from Where to store the remote address. + * \param fromlen Pointer to the size of FROM; on return, it will contain the + * size of the structure placed in FROM. + * \return The number of bytes received on success. -1 on error, and ERRNO will + * be set. + * \see recvfrom(2) + * + * Allewed ERRNO values: + * [EBADF] FD is not a valid file descriptor. + * [ENOTCONN] If the socket is stream-oriented, and no prior call to + * connect(2) was made. + * [ENOTSOCK] FD is not a socket. + * [EAGAIN] FD is in non-blocking mode, and no message was + * immediately available. + * [EINTR] The system call was interrupted by a signal. + * [EFAULT] BUF, FROM, or FROMLEN lie outside the process's address + * space. + */ +CPNIO_EXPORT ssize_t cpnio_recvfrom (int fd, void *buf, size_t len, int flags, + struct sockaddr *from, socklen_t *fromlen); + + +/** + * Control file descriptor properties. + * + * \param fd The file descriptor to control. + * \param cmd The command to execute. + * \param arg The command argument. + * \return A value other than -1, specific to CMD. On error, -1 is + * returned, and ERRNO is set. + * + * Allowed ERRNO values: + * FIXME + */ +CPNIO_EXPORT int cpnio_fcntl (int fd, int cmd, long arg); + + +/** + * Select from one of the given file descriptor sets a descriptor that + * is ready for the given operation (read, write, etc.). + * + * \param nfds A value one larger than the largest file + * descriptor. + * \param readfds A set of file descriptors to select for + * readability. + * \param writefds A set of file descriptors to select for + * writability. + * \param exceptfds A set of file descriptors to select for + * exceptional conditions. + * \param tm The selection timeout. + * \return The number of file descriptors selected, possibly zero, or + * -1 on error (and with ERRNO set). + */ +CPNIO_EXPORT int cpnio_select (int nfds, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *tm); + +/* + * We include the implementation file here, because our reference + * implementation is trivial, and the functions are declared extern + * inline. + * + * Implementations that need different implementations of these functions + * SHOULD remove this line, and compile javanio.c as a separate unit. + */ +#include "javanio.c" + +#endif /* __JAVANIO_H__ */ diff --git a/libjava/classpath/native/jni/java-util/.cvsignore b/libjava/classpath/native/jni/java-util/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/java-util/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/java-util/Makefile.in b/libjava/classpath/native/jni/java-util/Makefile.in index a592c5c018e..c929468bd97 100644 --- a/libjava/classpath/native/jni/java-util/Makefile.in +++ b/libjava/classpath/native/jni/java-util/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -183,6 +185,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -304,7 +308,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libjavautil.la libjavautil_la_SOURCES = java_util_VMTimeZone.c diff --git a/libjava/classpath/native/jni/midi-alsa/.cvsignore b/libjava/classpath/native/jni/midi-alsa/.cvsignore new file mode 100644 index 00000000000..483b2774465 --- /dev/null +++ b/libjava/classpath/native/jni/midi-alsa/.cvsignore @@ -0,0 +1,9 @@ +*.o +*.a +*.lo +*.la +.libs +.depsMakefile +Makefile.in +Makefile +.deps diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.in b/libjava/classpath/native/jni/midi-alsa/Makefile.in index 12346cee981..b93d060db20 100644 --- a/libjava/classpath/native/jni/midi-alsa/Makefile.in +++ b/libjava/classpath/native/jni/midi-alsa/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -186,6 +188,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -307,7 +311,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libgjsmalsa.la libgjsmalsa_la_SOURCES = gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c \ diff --git a/libjava/classpath/native/jni/midi-dssi/.cvsignore b/libjava/classpath/native/jni/midi-dssi/.cvsignore new file mode 100644 index 00000000000..ac18ca27297 --- /dev/null +++ b/libjava/classpath/native/jni/midi-dssi/.cvsignore @@ -0,0 +1,9 @@ +*.o +*.a +*.lo +*.la +.libs +.depsMakefile +Makefile.in +.deps +Makefile diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.am b/libjava/classpath/native/jni/midi-dssi/Makefile.am index 48c8051ccc3..692579d46b3 100644 --- a/libjava/classpath/native/jni/midi-dssi/Makefile.am +++ b/libjava/classpath/native/jni/midi-dssi/Makefile.am @@ -9,4 +9,7 @@ libgjsmdssi_la_LDFLAGS = -avoid-version AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ -AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ +# No STRICT_WARNING_CFLAGS here as we use dlsym to load the address of +# a function,and ISO C prohibits casting void pointers, like those returned +# by dlsym, to function pointers. +AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.in b/libjava/classpath/native/jni/midi-dssi/Makefile.in index 053451be6e5..e6c42fa7782 100644 --- a/libjava/classpath/native/jni/midi-dssi/Makefile.in +++ b/libjava/classpath/native/jni/midi-dssi/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -186,6 +188,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -307,7 +311,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libgjsmdssi.la libgjsmdssi_la_SOURCES = gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c \ @@ -318,7 +321,10 @@ libgjsmdssi_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo -ljack libgjsmdssi_la_LDFLAGS = -avoid-version AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ -AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ +# No STRICT_WARNING_CFLAGS here as we use dlsym to load the address of +# a function,and ISO C prohibits casting void pointers, like those returned +# by dlsym, to function pointers. +AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ all: all-am .SUFFIXES: diff --git a/libjava/classpath/native/jni/midi-dssi/dssi_data.h b/libjava/classpath/native/jni/midi-dssi/dssi_data.h index 27a4e283119..f8243f29bd4 100644 --- a/libjava/classpath/native/jni/midi-dssi/dssi_data.h +++ b/libjava/classpath/native/jni/midi-dssi/dssi_data.h @@ -46,8 +46,6 @@ exception statement from your version. */ #include -#include "target_native.h" -#include "target_native_misc.h" #include "../classpath/jcl.h" /* Specify the size of the circular buffer. It only needs to be big diff --git a/libjava/classpath/native/jni/native-lib/.cvsignore b/libjava/classpath/native/jni/native-lib/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/native-lib/Makefile.am b/libjava/classpath/native/jni/native-lib/Makefile.am new file mode 100644 index 00000000000..beab77e5732 --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/Makefile.am @@ -0,0 +1,12 @@ +noinst_LTLIBRARIES = libclasspathnative.la +libclasspathnative_la_SOURCES = cpnet.c \ + cpnet.h \ + cpio.c \ + cpio.h \ + cpnative.h \ + cpproc.h \ + cpproc.c + +AM_LDFLAGS = @CLASSPATH_MODULE@ +AM_CPPFLAGS = @CLASSPATH_INCLUDES@ +AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ diff --git a/libjava/classpath/native/jni/native-lib/Makefile.in b/libjava/classpath/native/jni/native-lib/Makefile.in new file mode 100644 index 00000000000..5dda1263e12 --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/Makefile.in @@ -0,0 +1,570 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = native/jni/native-lib +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ + $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ + $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ + $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ + $(top_srcdir)/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/include/config.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libclasspathnative_la_LIBADD = +am_libclasspathnative_la_OBJECTS = cpnet.lo cpio.lo cpproc.lo +libclasspathnative_la_OBJECTS = $(am_libclasspathnative_la_OBJECTS) +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(libclasspathnative_la_SOURCES) +DIST_SOURCES = $(libclasspathnative_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@ +BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ +CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ +CLASSPATH_MODULE = @CLASSPATH_MODULE@ +COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ +CP = @CP@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@ +CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@ +CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@ +CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@ +CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@ +CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@ +CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@ +CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@ +CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@ +CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@ +CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@ +CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@ +CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@ +CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@ +CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@ +CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@ +CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@ +CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@ +CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@ +CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@ +CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@ +CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@ +CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@ +CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@ +CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@ +CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ +DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +ECJ = @ECJ@ +EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +EXAMPLESDIR = @EXAMPLESDIR@ +EXEEXT = @EXEEXT@ +FASTJAR = @FASTJAR@ +FIND = @FIND@ +FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@ +FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@ +FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ +FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ +FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@ +FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@ +FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ +FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ +FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ +FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ +FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ +FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ +FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ +FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GCJ = @GCJ@ +GCJX = @GCJX@ +GCONF_CFLAGS = @GCONF_CFLAGS@ +GCONF_LIBS = @GCONF_LIBS@ +GDK_CFLAGS = @GDK_CFLAGS@ +GDK_LIBS = @GDK_LIBS@ +GJDOC = @GJDOC@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@ +INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@ +INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@ +INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ +JAY = @JAY@ +JAY_SKELETON = @JAY_SKELETON@ +JIKES = @JIKES@ +JIKESENCODING = @JIKESENCODING@ +JIKESWARNINGS = @JIKESWARNINGS@ +KJC = @KJC@ +LDFLAGS = @LDFLAGS@ +LIBDEBUG = @LIBDEBUG@ +LIBICONV = @LIBICONV@ +LIBMAGIC = @LIBMAGIC@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBVERSION = @LIBVERSION@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MKDIR = @MKDIR@ +MOC = @MOC@ +MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ +MOZILLA_LIBS = @MOZILLA_LIBS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ +PANGOFT2_LIBS = @PANGOFT2_LIBS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_ESCHER = @PATH_TO_ESCHER@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGIN_DIR = @PLUGIN_DIR@ +QT_CFLAGS = @QT_CFLAGS@ +QT_LIBS = @QT_LIBS@ +RANLIB = @RANLIB@ +REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@ +REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@ +REMOVE = @REMOVE@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ +STRIP = @STRIP@ +USER_CLASSLIB = @USER_CLASSLIB@ +USER_JAVAH = @USER_JAVAH@ +USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ +USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ +USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ +USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ +USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ +VERSION = @VERSION@ +VM_BINARY = @VM_BINARY@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +XML_CFLAGS = @XML_CFLAGS@ +XML_LIBS = @XML_LIBS@ +XSLT_CFLAGS = @XSLT_CFLAGS@ +XSLT_LIBS = @XSLT_LIBS@ +XTEST_LIBS = @XTEST_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZIP = @ZIP@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +default_toolkit = @default_toolkit@ +exec_prefix = @exec_prefix@ +glibjdir = @glibjdir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +nativeexeclibdir = @nativeexeclibdir@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +vm_classes = @vm_classes@ +noinst_LTLIBRARIES = libclasspathnative.la +libclasspathnative_la_SOURCES = cpnet.c \ + cpnet.h \ + cpio.c \ + cpio.h \ + cpnative.h \ + cpproc.h \ + cpproc.c + +AM_LDFLAGS = @CLASSPATH_MODULE@ +AM_CPPFLAGS = @CLASSPATH_INCLUDES@ +AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/jni/native-lib/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu native/jni/native-lib/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libclasspathnative.la: $(libclasspathnative_la_OBJECTS) $(libclasspathnative_la_DEPENDENCIES) + $(LINK) $(libclasspathnative_la_LDFLAGS) $(libclasspathnative_la_OBJECTS) $(libclasspathnative_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpnet.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpproc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libjava/classpath/native/jni/native-lib/cpio.c b/libjava/classpath/native/jni/native-lib/cpio.c new file mode 100644 index 00000000000..2777a31b221 --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/cpio.c @@ -0,0 +1,485 @@ +/* cpio.c - Common java file IO native functions + 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. */ + +/* do not move; needed here because of some macro definitions */ +#include + +#include +#include +#include +#include +#include +#include + +#include + +#if defined(HAVE_SYS_IOCTL_H) +#define BSD_COMP /* Get FIONREAD on Solaris2 */ +#include +#endif +#if defined(HAVE_SYS_FILIO_H) /* Get FIONREAD on Solaris 2.5 */ +#include +#endif + +#if defined(HAVE_SYS_STAT_H) +#include +#endif + +#if defined(HAVE_FCNTL_H) +#include +#endif + +#if defined(HAVE_UNISTD_H) +#include +#endif + +#if defined(HAVE_SYS_SELECT_H) +#include +#endif + +#include + +#include "cpnative.h" +#include "cpio.h" + +/* Some POSIX systems don't have O_SYNC and O_DYSNC so we define them here. */ +#if !defined (O_SYNC) && defined (O_FSYNC) +#define O_SYNC O_FSYNC +#endif +#if !defined (O_DSYNC) && defined (O_FSYNC) +#define O_DSYNC O_FSYNC +#endif +/* If O_DSYNC is still not defined, use O_SYNC (needed for newlib). */ +#if !defined (O_DSYNC) +#define O_DSYNC O_SYNC +#endif + +JNIEXPORT int cpio_openFile (const char *filename, int *fd, int flags, int permissions) +{ + int sflags = 0; + int rwflags = flags & CPFILE_FLAG_READWRITE; + int perms; + + if (flags & CPFILE_FLAG_CREATE) + sflags |= O_CREAT; + if (flags & CPFILE_FLAG_APPEND) + sflags |= O_APPEND; + if (flags & CPFILE_FLAG_TRUNCATE) + sflags |= O_TRUNC; + if (flags & CPFILE_FLAG_SYNC) + sflags |= O_SYNC; + if (flags & CPFILE_FLAG_DSYNC) + sflags |= O_DSYNC; +#if defined(O_BINARY) + if (flags & CPFILE_FLAG_BINARY) + sflags |= O_BINARY; +#endif + + switch (rwflags) + { + case CPFILE_FLAG_READ: + sflags |= O_RDONLY; + break; + case CPFILE_FLAG_WRITE: + sflags |= O_WRONLY; + break; + case CPFILE_FLAG_READWRITE: + sflags |= O_RDWR; + break; + } + + if (permissions == CPFILE_PERMISSION_NORMAL) + perms = (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); + else + perms = 0; + + *fd = open (filename, sflags, perms); + + if (*fd < 0) + return errno; + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_closeFile (int fd) +{ + if (close (fd) < 0) + return errno; + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_availableBytes (int fd, jlong *bytes_available) +{ +#if defined (FIONREAD) + ssize_t n; + + if (ioctl (fd, FIONREAD, (char *)&n) != 0) + return errno; + + *bytes_available = n; + return CPNATIVE_OK; +#elif defined(HAVE_FSTAT) + struct stat statBuffer; + off_t n; + int result; + + *bytes_available = 0 + if ((fstat (fd, &statBuffer) == 0) && S_ISREG (statBuffer.st_mode)) + { + n = lseek (fd, 0, SEEK_CUR); + if (n != -1) + { + *bytes_available = statBuffer.st_size - n; + result = 0; + } + else + { + result = errno; + } + } + else + { + result = errno; + } + + return result; +#elif defined(HAVE_SELECT) + fd_set filedescriptset; + struct timeval tv; + int result; + + *bytes_available = 0; + + FD_ZERO (&filedescriptset); + FD_SET (fd,&filedescriptset); + memset (&tv, 0, sizeof(tv)); + + switch (select (fd+1, &filedescriptset, NULL, NULL, &timeval)) \ + { + case -1: + result=errno; + break; + case 0: + *bytes_available = 0; + result = CPNATIVE_OK; + break; + default: + *bytes_available = 1; + result = CPNATIVE_OK; + break; + } + return result; + +#else + *bytes_available = 0; + return ENOTSUP; +#endif +} + +JNIEXPORT int cpio_getFileSize (int fd, jlong *filesize) +{ + struct stat statBuffer; + + if (fstat(fd, &statBuffer) < 0) + return errno; + + *filesize = statBuffer.st_size; + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_getFilePosition (int fd, jlong *offset) +{ + *offset = lseek (fd, 0, SEEK_CUR); + if (*offset < 0) + return errno; + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_setFilePosition (int fd, jlong position) +{ + if (lseek (fd, position, SEEK_SET) < 0) + return errno; + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_read (int fd, void *buffer, jint length, jint *bytes_read) +{ + *bytes_read = read (fd, buffer, length); + + if (*bytes_read < 0) + { + return errno; + } + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_write (int fd, const void *buffer, jint length, jint *bytes_written) +{ + *bytes_written = write (fd, buffer, length); + + if (*bytes_written < 0) + return errno; + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_fsync (int fd) +{ + if (fsync (fd) < 0) + return errno; + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_truncate (int fd, jlong size) +{ + if (ftruncate (fd, size) < 0) + return errno; + + return CPNATIVE_OK; +} + +JNIEXPORT int cpio_setFileSize (int native_fd, jlong new_size) +{ + jlong file_size; + jlong save_offset; + int result; + char data; + jint bytes_written; + + result = cpio_getFileSize (native_fd, &file_size); + if (result != CPNATIVE_OK) + return result; + + /* Save off current position */ + result = cpio_getFilePosition (native_fd, &save_offset); + if (result != CPNATIVE_OK) + return result; + + if (file_size < new_size) + { + /* File is too short -- seek to one byte short of where we want, + * then write a byte */ + + /* move to position n-1 */ + result = cpio_setFilePosition (native_fd, new_size-1); + if (result != CPNATIVE_OK) + return result; + + /* write a byte + Note: This will fail if we somehow get here in read only mode + * That shouldn't happen */ + data = '\0'; + result = cpio_write (native_fd, &data, 1, &bytes_written); + if (result != CPNATIVE_OK) + return result; + + /* Reposition file pointer to where we started if not beyond new len. */ + if (save_offset < new_size) + { + result = cpio_setFilePosition (native_fd, save_offset); + if (result != CPNATIVE_OK) + return result; + } + } + else if (new_size < file_size) + { + /* File is too long - use ftruncate if available */ + result = cpio_truncate (native_fd, new_size); + if (result != CPNATIVE_OK) + return result; + + /* Reposition file pointer when it now is beyond the end of file. */ + if (new_size < save_offset) + { + result = cpio_setFilePosition (native_fd, new_size); + if (result != CPNATIVE_OK) + return result; + } + } + + return CPNATIVE_OK; +} + +int cpio_setFileReadonly (const char *filename) +{ + struct stat statbuf; + + if (stat(filename, &statbuf) < 0) + return errno; + + if (chmod(filename, statbuf.st_mode & ~(S_IWRITE | S_IWGRP | S_IWOTH)) < 0) + return errno; + + return 0; +} + +int cpio_isFileExists (const char *filename) +{ + struct stat statbuf; + + if (stat(filename, &statbuf) < 0) + { + return errno; + } + + return 0; +} + +int cpio_checkType (const char *filename, jint *entryType) +{ + struct stat statbuf; + + if (stat(filename, &statbuf) < 0) + return errno; + + if (S_ISDIR(statbuf.st_mode)) + *entryType = CPFILE_DIRECTORY; + else + *entryType = CPFILE_FILE; + + return 0; +} + +int cpio_getModificationTime (const char *filename, jlong *mtime) +{ + struct stat statbuf; + + if (stat(filename, &statbuf) < 0) + return errno; + + *mtime = (jlong)statbuf.st_mtime * (jlong)1000; + + return 0; +} + +int cpio_setModificationTime (const char *filename, jlong mtime) +{ + struct stat statbuf; + struct utimbuf buf; + + if (stat(filename, &statbuf) < 0) + return errno; + + buf.actime = statbuf.st_atime; + buf.modtime = mtime / 1000; + + if (utime(filename, &buf) < 0) + return errno; + + return 0; +} + +int cpio_removeFile (const char *filename) +{ + if (unlink(filename) < 0 && rmdir(filename) < 0) + return errno; + + return 0; +} + +int cpio_mkdir (const char *path) +{ + if (mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO) < 0) + return errno; + + return 0; +} + +int cpio_rename (const char *old_name, const char *new_name) +{ + if (rename(old_name, new_name) < 0) + return errno; + + return 0; +} + +int cpio_openDir (const char *dirname, void **handle) +{ + *handle = (void *)opendir(dirname); + if (*handle == NULL) + return errno; + + return 0; +} + +int cpio_closeDir (void *handle) +{ + closedir((DIR *)handle); + return 0; +} + + +int cpio_readDir (void *handle, char *filename) +{ +#ifdef HAVE_READDIR_R + struct dirent dent; +#endif /* HAVE_READDIR_R */ + struct dirent *dBuf; + +#ifdef HAVE_READDIR_R + readdir_r ((DIR *) handle, &dent, &dBuf); +#else + dBuf = readdir((DIR *)handle); +#endif /* HAVE_READDIR_R */ + + if (dBuf == NULL) + { + /* Some OS's (OS X) return NULL on end-of-dir, but + don't set errno to anything. */ + if (errno == 0) + return ENOENT; /* Whatever. */ + return errno; + } + + strncpy (filename, dBuf->d_name, FILENAME_MAX); + return 0; +} + + +int +cpio_closeOnExec(int fd) +{ + if (fcntl (fd, F_SETFD, FD_CLOEXEC) == -1) + return errno; + + return 0; +} diff --git a/libjava/classpath/native/jni/native-lib/cpio.h b/libjava/classpath/native/jni/native-lib/cpio.h new file mode 100644 index 00000000000..b388b5b501d --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/cpio.h @@ -0,0 +1,85 @@ +/* cpio.h - + Copyright (C) 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. */ + +#ifndef _CLASSPATH_IO_H_INCLUDED +#define _CLASSPATH_IO_H_INCLUDED + +#include + +#define CPFILE_FLAG_CREATE 0x0001 +#define CPFILE_FLAG_APPEND 0x0002 +#define CPFILE_FLAG_TRUNCATE 0x0004 +#define CPFILE_FLAG_SYNC 0x0008 +#define CPFILE_FLAG_DSYNC 0x0010 +#define CPFILE_FLAG_BINARY 0x0020 +#define CPFILE_FLAG_READ 0x0040 +#define CPFILE_FLAG_WRITE 0x0080 + +#define CPFILE_PERMISSION_NORMAL 1 + +#define CPFILE_FLAG_READWRITE (CPFILE_FLAG_READ|CPFILE_FLAG_WRITE) + +JNIEXPORT int cpio_openFile (const char *filename, int *fd, int flags, int permissions); +JNIEXPORT int cpio_closeFile (int fd); +JNIEXPORT int cpio_availableBytes (int fd, jlong *avail); +JNIEXPORT int cpio_getFileSize (int fd, jlong *filesize); +JNIEXPORT int cpio_setFileSize (int fd, jlong filesize); +JNIEXPORT int cpio_getFilePosition (int fd, jlong *position); +JNIEXPORT int cpio_setFilePosition (int fd, jlong position); +JNIEXPORT int cpio_read (int fd, void *data, jint len, jint *bytes_read); +JNIEXPORT int cpio_write (int fd, const void *data, jint len, jint *bytes_written); +JNIEXPORT int cpio_fsync (int fd); +JNIEXPORT int cpio_truncate (int fd, jlong size); +JNIEXPORT int cpio_closeOnExec(int fd); + +#define CPFILE_FILE 0 +#define CPFILE_DIRECTORY 1 + +JNIEXPORT int cpio_setFileReadonly (const char *filename); +JNIEXPORT int cpio_isFileExists (const char *filename); +JNIEXPORT int cpio_checkType (const char *filename, jint *entryType); +JNIEXPORT int cpio_getModificationTime (const char *filename, jlong *mtime); +JNIEXPORT int cpio_setModificationTime (const char *filename, jlong mtime); +JNIEXPORT int cpio_removeFile (const char *filename); +JNIEXPORT int cpio_mkdir (const char *filename); +JNIEXPORT int cpio_rename (const char *old_name, const char *new_name); + +JNIEXPORT int cpio_openDir (const char *dirname, void **handle); +JNIEXPORT int cpio_closeDir (void *handle); +JNIEXPORT int cpio_readDir (void *handle, char *filename); + +#endif diff --git a/libjava/classpath/native/jni/native-lib/cpnative.h b/libjava/classpath/native/jni/native-lib/cpnative.h new file mode 100644 index 00000000000..4ba7726036a --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/cpnative.h @@ -0,0 +1,49 @@ +/* cpnative.h - + Copyright (C) 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. */ + +#ifndef _CLASSPATH_NATIVE_H_INCLUDED +#define _CLASSPATH_NATIVE_H_INCLUDED + +#include +#include + +#define CPNATIVE_OK 0 +#define CPNATIVE_EINTR EINTR + +#define cpnative_getErrorString strerror + +#endif diff --git a/libjava/classpath/native/jni/native-lib/cpnet.c b/libjava/classpath/native/jni/native-lib/cpnet.c new file mode 100644 index 00000000000..85c4640e16f --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/cpnet.c @@ -0,0 +1,768 @@ +/* cpnet.c - + Copyright (C) 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. */ + +#include "config.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cpnet.h" + +#define SOCKET_DEFAULT_TIMEOUT -1 /* milliseconds */ + +#if defined (HAVE_MSG_NOSIGNAL) +#define SOCKET_NOSIGNAL MSG_NOSIGNAL +#elif defined (HAVE_SO_NOSIGPIPE) +#define SOCKET_NOSIGNAL SO_NOSIGPIPE +#else +#error "No suitable flag found to ommit a SIGPIPE on signal errors with send()." +#endif + +static int socketTimeouts[FD_SETSIZE]; + +static jint waitForWritable(jint fd) +{ + struct timeval tv; + fd_set writeset; + int ret; + + + FD_ZERO(&writeset); + FD_SET(fd, &writeset); + if (socketTimeouts[fd] > 0) + { + tv.tv_sec = socketTimeouts[fd] / 1000; + tv.tv_usec = (socketTimeouts[fd] % 1000) * 1000; + ret = select(fd+1, NULL, &writeset, NULL, &tv); + } + else + ret = select(fd+1, NULL, &writeset, NULL, NULL); + + return (ret <= 0) ? -1 : 0; +} + +static jint waitForReadable(jint fd) +{ + struct timeval tv; + fd_set readset; + int ret; + + + FD_ZERO(&readset); + FD_SET(fd, &readset); + if (socketTimeouts[fd] > 0) + { + tv.tv_sec = socketTimeouts[fd] / 1000; + tv.tv_usec = (socketTimeouts[fd] % 1000) * 1000; + ret = select(fd+1, &readset, NULL, NULL, &tv); + } + else + ret = select(fd+1, &readset, NULL, NULL, NULL); + + return (ret <= 0) ? -1 : 0; +} + +jint cpnet_openSocketStream(JNIEnv *env UNUSED, jint *fd, jint family) +{ + *fd = socket(family, SOCK_STREAM, 0); + if (*fd == -1) + return errno; + + fcntl(*fd, F_SETFD, FD_CLOEXEC); + assert(*fd < FD_SETSIZE); + socketTimeouts[*fd] = SOCKET_DEFAULT_TIMEOUT; + return 0; +} + +jint cpnet_openSocketDatagram(JNIEnv *env UNUSED, jint *fd, jint family) +{ + *fd = socket(family, SOCK_DGRAM, 0); + if (*fd == -1) + return errno; + + fcntl(*fd, F_SETFD, FD_CLOEXEC); + assert(*fd < FD_SETSIZE); + socketTimeouts[*fd] = SOCKET_DEFAULT_TIMEOUT; + return 0; +} + +jint cpnet_shutdown (JNIEnv *env UNUSED, jint fd, jbyte flag) +{ + int ret; + int shut_flag = 0; + + if (flag == CPNET_SHUTDOWN_READ) + shut_flag = SHUT_RD; + else if (flag == CPNET_SHUTDOWN_WRITE) + shut_flag = SHUT_WR; + + ret = shutdown (fd, shut_flag); + if (ret != 0) + return errno; + return 0; +} + +jint cpnet_close(JNIEnv *env UNUSED, jint fd) +{ + if (close (fd) != 0) + return errno; + return 0; +} + +jint cpnet_listen(JNIEnv *env UNUSED, jint fd, jint queuelen) +{ + if (listen (fd, queuelen) != 0) + return errno; + return 0; +} + +jint cpnet_accept(JNIEnv *env UNUSED, jint fd, jint *newfd) +{ + if (waitForReadable (fd) < 0) + return ETIMEDOUT; + + *newfd = accept(fd, NULL, 0); + if (*newfd != 0) + return errno; + + return 0; +} + +jint cpnet_bind(JNIEnv *env UNUSED, jint fd, cpnet_address *addr) +{ + int ret; + + ret = bind(fd, (struct sockaddr *)addr->data, addr->len); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_connect(JNIEnv *env UNUSED, jint fd, cpnet_address *addr) +{ + int ret; + + /* TODO: implement socket time out */ + ret = connect(fd, (struct sockaddr *)addr->data, addr->len); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getLocalAddr(JNIEnv *env, jint fd, cpnet_address **addr) +{ + socklen_t slen = 1024; + int ret; + + *addr = JCL_malloc(env, slen); + + slen -= sizeof(jint); + ret = getsockname(fd, (struct sockaddr *)(*addr)->data, &slen ); + if (ret != 0) + { + int err = errno; + JCL_free(env, *addr); + return err; + } + + (*addr)->len = slen; + + return 0; +} + +jint cpnet_getRemoteAddr(JNIEnv *env, jint fd, cpnet_address **addr) +{ + socklen_t slen = 1024; + int ret; + + *addr = JCL_malloc(env, slen); + + slen -= sizeof(jint); + ret = getpeername(fd, (struct sockaddr *)(*addr)->data, &slen ); + if (ret != 0) + { + int err = errno; + JCL_free(env, *addr); + return err; + } + + (*addr)->len = slen; + + return 0; +} + +jint cpnet_setBroadcast(JNIEnv *env UNUSED, jint fd, jint flag) +{ + int ret; + + ret = setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &flag, sizeof(flag)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_send (JNIEnv *env UNUSED, jint fd, jbyte *data, jint len, jint *bytes_sent) +{ + ssize_t ret; + + if (waitForWritable(fd) < 0) + return ETIMEDOUT; + + ret = send(fd, data, len, SOCKET_NOSIGNAL); + if (ret < 0) + return errno; + + *bytes_sent = ret; + + return 0; +} + +jint cpnet_sendTo (JNIEnv *env UNUSED, jint fd, jbyte *data, jint len, cpnet_address *addr, jint *bytes_sent) +{ + ssize_t ret; + + if (waitForWritable(fd) < 0) + return ETIMEDOUT; + + ret = sendto(fd, data, len, SOCKET_NOSIGNAL, (struct sockaddr *)addr->data, + addr->len); + if (ret < 0) + return errno; + + *bytes_sent = ret; + return 0; +} + +jint cpnet_recv (JNIEnv *env UNUSED, jint fd, jbyte *data, jint len, jint *bytes_recv) +{ + ssize_t ret; + + if (waitForReadable(fd) < 0) + return ETIMEDOUT; + + ret = recv(fd, data, len, 0); + if (ret < 0) + return errno; + + *bytes_recv = ret; + + return 0; +} + +jint cpnet_recvFrom (JNIEnv *env, jint fd, jbyte *data, jint len, cpnet_address **addr, jint *bytes_recv) +{ + socklen_t slen = 1024; + ssize_t ret; + + if (waitForReadable(fd) < 0) + return ETIMEDOUT; + + *addr = JCL_malloc(env, slen); + + slen -= sizeof(jint); + ret = recvfrom(fd, data, len, 0, (struct sockaddr *) (*addr)->data, &slen); + if (ret < 0) + { + int err = errno; + JCL_free(env, *addr); + return err; + } + + (*addr)->len = slen; + *bytes_recv = ret; + + return 0; +} + +jint cpnet_setSocketTCPNoDelay (JNIEnv *env UNUSED, jint fd, jint nodelay) +{ + socklen_t len = sizeof(jint); + int ret; + + ret = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &nodelay, len); + if (ret < 0) + return errno; + + return 0; +} + +jint cpnet_getSocketTCPNoDelay (JNIEnv *env UNUSED, jint fd, jint *nodelay) +{ + socklen_t len = sizeof(jint); + int ret; + + ret = getsockopt(fd, IPPROTO_TCP, TCP_NODELAY, nodelay, &len); + if (ret < 0) + return errno; + + return 0; +} + +jint cpnet_setLinger (JNIEnv *env UNUSED, jint fd, jint flag, jint value) +{ + socklen_t len = sizeof(struct linger); + int ret; + struct linger __linger; + + if (flag) + { + __linger.l_onoff = 0; + } + else + { + __linger.l_linger = value; + __linger.l_onoff = 1; + } + + ret = setsockopt(fd, SOL_SOCKET, SO_LINGER, &__linger, len); + if (ret < 0) + return errno; + + return 0; +} + +jint cpnet_getLinger (JNIEnv *env UNUSED, jint fd, jint *flag, jint *value) +{ + socklen_t slen = sizeof(struct linger); + struct linger __linger; + int ret; + + ret = getsockopt(fd, SOL_SOCKET, SO_LINGER, &__linger, &slen); + if (ret != 0) + return errno; + + *flag = __linger.l_onoff; + *value = __linger.l_linger; + + return ret; +} + +jint cpnet_setSocketTimeout (JNIEnv *env UNUSED, jint fd, jint value) +{ + socketTimeouts[fd] = value; + return 0; +} + +jint cpnet_getSocketTimeout (JNIEnv *env UNUSED, jint fd, jint *value) +{ + *value = socketTimeouts[fd]; + return 0; +} + +jint cpnet_setSendBuf (JNIEnv *env UNUSED, jint fd, jint value) +{ + int ret; + + ret = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &value, sizeof(value)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getSendBuf (JNIEnv *env UNUSED, jint fd, jint *value) +{ + int ret; + socklen_t slen = sizeof(*value); + + ret = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, value, &slen); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_setRecvBuf (JNIEnv *env UNUSED, jint fd, jint value) +{ + int ret; + + ret = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &value, sizeof(value)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getRecvBuf (JNIEnv *env UNUSED, jint fd, jint *value) +{ + int ret; + socklen_t slen = sizeof(*value); + + ret = getsockopt(fd, SOL_SOCKET, SO_RCVBUF, value, &slen); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_setTTL (JNIEnv *env UNUSED, jint fd, jint value) +{ + int ret; + + ret = setsockopt(fd, IPPROTO_IP, IP_TTL, &value, sizeof(value)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getTTL (JNIEnv *env UNUSED, jint fd, jint *value) +{ + int ret; + socklen_t slen = sizeof(*value); + + ret = getsockopt(fd, IPPROTO_IP, IP_TTL, value, &slen); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_setMulticastIF (JNIEnv *env UNUSED, jint fd, cpnet_address *addr) +{ + int ret; + + ret = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, (struct sockaddr *)addr->data, addr->len); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getMulticastIF (JNIEnv *env, jint fd, cpnet_address **addr) +{ + socklen_t slen = 1024; + int ret; + + *addr = JCL_malloc(env, slen); + + slen -= sizeof(jint); + ret = getsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, (struct sockaddr *)(*addr)->data, &slen); + (*addr)->len = slen; + + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_setReuseAddress (JNIEnv *env UNUSED, jint fd, jint reuse) +{ + int ret; + + ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getReuseAddress (JNIEnv *env UNUSED, jint fd, jint *reuse) +{ + int ret; + socklen_t slen = sizeof(*reuse); + + ret = getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, reuse, &slen); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_setKeepAlive (JNIEnv *env UNUSED, jint fd, jint keep) +{ + int ret; + + ret = setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &keep, sizeof(keep)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getKeepAlive (JNIEnv *env UNUSED, jint fd, jint *keep) +{ + int ret; + socklen_t slen = sizeof(*keep); + + ret = getsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, keep, &slen); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_addMembership (JNIEnv *env UNUSED, jint fd, cpnet_address *addr) +{ + struct ip_mreq req; + int ret; + + memset(&req, 0, sizeof(req)); + req.imr_multiaddr = ((struct sockaddr_in *)addr->data)->sin_addr; + req.imr_interface.s_addr = INADDR_ANY; + ret = setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &req, sizeof(req)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_dropMembership (JNIEnv *env UNUSED, jint fd, cpnet_address *addr) +{ + struct ip_mreq req; + int ret; + + memset(&req, 0, sizeof(req)); + req.imr_multiaddr = ((struct sockaddr_in *)addr->data)->sin_addr; + req.imr_interface.s_addr = INADDR_ANY; + ret = setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &req, sizeof(req)); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getAvailableBytes (JNIEnv *env UNUSED, jint fd, jint *availableBytes) +{ + int ret; + + ret = ioctl(fd, FIONREAD, availableBytes); + if (ret != 0) + return errno; + + return 0; +} + +jint cpnet_getHostname (JNIEnv *env UNUSED, char *hostname, jint hostname_len) +{ + int ret; + + ret = gethostname(hostname, hostname_len); + if (ret != 0) + return errno; + + hostname[hostname_len-1] = 0; + return 0; +} + +jint cpnet_getHostByName (JNIEnv *env, const char *hostname, cpnet_address ***addresses, jint *addresses_count) +{ + struct hostent hret; + struct hostent *result; + jint buflen = 1024; + int herr = 0; + int ret = 0; + int counter = 0; + cpnet_address **addr_arr; + int i; + char *buf; + + do + { + buf = (char *)JCL_malloc(env, buflen); +#ifdef HAVE_GETHOSTBYNAME_R + ret = gethostbyname_r (hostname, &hret, buf, buflen, &result, &herr); +#else + hret.h_addr_list = NULL; + hret.h_addrtype = 0; + + result = gethostbyname (hostname); + if (result == NULL) + return -errno; + memcpy (&hret, result, sizeof (struct hostent)); +#endif + if (ret != 0 || result == NULL) + { + if (herr == ERANGE) + { + buflen *= 2; + JCL_free(env, buf); + continue; + } + JCL_free(env, buf); + + return -herr; + } + + break; + } + while (1); + + while (hret.h_addr_list[counter] != NULL) + counter++; + + *addresses_count = counter; + addr_arr = *addresses = JCL_malloc(env, sizeof(cpnet_address *) * counter); + switch (hret.h_addrtype) + { + case AF_INET: + for (i = 0; i < counter; i++) + { + addr_arr[i] = cpnet_newIPV4Address(env); + cpnet_bytesToIPV4Address(addr_arr[i], (jbyte *)hret.h_addr_list[i]); + } + break; + case AF_INET6: + for (i = 0; i < counter; i++) + { + addr_arr[i] = cpnet_newIPV6Address(env); + cpnet_bytesToIPV6Address(addr_arr[i], (jbyte *)hret.h_addr_list[i]); + } + break; + default: + *addresses_count = 0; + JCL_free(env, addr_arr); + break; + } + + JCL_free(env, buf); + + return 0; +} + +jint cpnet_getHostByAddr (JNIEnv *env UNUSED, cpnet_address *addr, char *hostname, jint hostname_len) +{ + union + { + struct sockaddr_in *addr_v4; + struct sockaddr_in6 *addr_v6; + char *data; + } haddr; + void *raw_addr; + int addr_type; + struct hostent *ret; + int addr_len; + + haddr.data = addr->data; + + if (haddr.addr_v4->sin_family == AF_INET) + { + raw_addr = &haddr.addr_v4->sin_addr; + addr_len = sizeof(haddr.addr_v4->sin_addr); + addr_type = AF_INET; + } + else if (haddr.addr_v6->sin6_family == AF_INET6) + { + raw_addr = &haddr.addr_v6->sin6_addr; + addr_type = AF_INET6; + addr_len = sizeof(haddr.addr_v6->sin6_addr); + } + else + return EINVAL; + + /* Here we do not have any thread safe call. VM implementors will have to + * do a big lock. Or it should be put on the Classpath VM interface. + */ + ret = gethostbyaddr(raw_addr, addr_len, addr_type); + if (ret == NULL) + { + /* The trouble here is how to distinguish the two cases ? */ + if (h_errno != 0) + return h_errno; + else + return errno; + + } + strncpy(hostname, ret->h_name, hostname_len); + + return 0; +} + +jint cpnet_aton (JNIEnv *env, const char *hostname, cpnet_address **addr) +{ + jbyte *bytes = NULL; +#ifdef HAVE_INET_PTON + jbyte inet6_addr[16]; +#endif + +#ifdef HAVE_INET_ATON + struct in_addr laddr; + if (inet_aton (hostname, &laddr)) + { + bytes = (jbyte *) &laddr; + } +#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 = (jbyte *) &laddr; + } +#endif + if (bytes) + { + *addr = cpnet_newIPV4Address(env); + cpnet_bytesToIPV4Address(*addr, bytes); + return 0; + } + +#ifdef HAVE_INET_PTON + if (inet_pton (AF_INET6, hostname, inet6_addr) > 0) + { + *addr = cpnet_newIPV6Address(env); + cpnet_bytesToIPV6Address(*addr, inet6_addr); + return 0; + } +#endif + + *addr = NULL; + return 0; +} + +void cpnet_freeAddresses(JNIEnv * env, cpnet_address **addr, jint addresses_count) +{ + jint i; + + for (i = 0; i < addresses_count; i++) + cpnet_freeAddress(env, addr[i]); +} diff --git a/libjava/classpath/native/jni/native-lib/cpnet.h b/libjava/classpath/native/jni/native-lib/cpnet.h new file mode 100644 index 00000000000..3705c76ecd5 --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/cpnet.h @@ -0,0 +1,209 @@ +/* cpnet.h - + Copyright (C) 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. */ + +#ifndef _CLASSPATH_NET_H_INCLUDED +#define _CLASSPATH_NET_H_INCLUDED + +#include +#include +#include + +#include +#include +#include + +typedef struct { + jint len; + char data[1]; +} cpnet_address; + +#define CPNET_SHUTDOWN_READ 1 +#define CPNET_SHUTDOWN_WRITE 2 + +JNIEXPORT jint cpnet_openSocketStream(JNIEnv *env, jint *fd, jint family); +JNIEXPORT jint cpnet_openSocketDatagram(JNIEnv *env, jint *fd, jint family); +JNIEXPORT jint cpnet_shutdown (JNIEnv *env, jint fd, jbyte flag); +JNIEXPORT jint cpnet_close(JNIEnv *env, jint fd); +JNIEXPORT jint cpnet_listen(JNIEnv *env, jint fd, jint queuelen); +JNIEXPORT jint cpnet_accept(JNIEnv *env, jint fd, jint *newfd); +JNIEXPORT jint cpnet_bind(JNIEnv *env, jint fd, cpnet_address *addr); +JNIEXPORT jint cpnet_connect(JNIEnv *env, jint fd, cpnet_address *addr); +JNIEXPORT jint cpnet_getLocalAddr(JNIEnv *env, jint fd, cpnet_address **addr); +JNIEXPORT jint cpnet_getRemoteAddr(JNIEnv *env, jint fd, cpnet_address **addr); +JNIEXPORT jint cpnet_setBroadcast(JNIEnv *env, jint fd, jint flag); +JNIEXPORT jint cpnet_send (JNIEnv *env, jint fd, jbyte *data, jint len, jint *bytes_sent); +JNIEXPORT jint cpnet_sendTo (JNIEnv *env, jint fd, jbyte *data, jint len, cpnet_address *addr, jint *bytes_sent); +JNIEXPORT jint cpnet_recv (JNIEnv *env, jint fd, jbyte *data, jint len, jint *bytes_recv); +JNIEXPORT jint cpnet_recvFrom (JNIEnv *env, jint fd, jbyte *data, jint len, cpnet_address **addr, jint *bytes_recv); +JNIEXPORT jint cpnet_setSocketTCPNoDelay (JNIEnv *env, jint fd, jint nodelay); +JNIEXPORT jint cpnet_getSocketTCPNoDelay (JNIEnv *env, jint fd, jint *nodelay); +JNIEXPORT jint cpnet_setLinger (JNIEnv *env, jint fd, jint flag, jint value); +JNIEXPORT jint cpnet_getLinger (JNIEnv *env, jint fd, jint *flag, jint *value); +JNIEXPORT jint cpnet_setSocketTimeout (JNIEnv *env, jint fd, jint value); +JNIEXPORT jint cpnet_getSocketTimeout (JNIEnv *env, jint fd, jint *value); +JNIEXPORT jint cpnet_setSendBuf (JNIEnv *env, jint fd, jint value); +JNIEXPORT jint cpnet_getSendBuf (JNIEnv *env, jint fd, jint *value); +JNIEXPORT jint cpnet_setRecvBuf (JNIEnv *env, jint fd, jint value); +JNIEXPORT jint cpnet_getRecvBuf (JNIEnv *env, jint fd, jint *value); +JNIEXPORT jint cpnet_setTTL (JNIEnv *env, jint fd, jint value); +JNIEXPORT jint cpnet_getTTL (JNIEnv *env, jint fd, jint *value); +JNIEXPORT jint cpnet_setMulticastIF (JNIEnv *env, jint fd, cpnet_address *addr); +JNIEXPORT jint cpnet_getMulticastIF (JNIEnv *env, jint fd, cpnet_address **addr); +JNIEXPORT jint cpnet_setReuseAddress (JNIEnv *env, jint fd, jint reuse); +JNIEXPORT jint cpnet_getReuseAddress (JNIEnv *env, jint fd, jint *reuse); +JNIEXPORT jint cpnet_setKeepAlive (JNIEnv *env, jint fd, jint keep); +JNIEXPORT jint cpnet_getKeepAlive (JNIEnv *env, jint fd, jint *keep); +JNIEXPORT jint cpnet_getBindAddress (JNIEnv *env, jint fd, cpnet_address **addr); +JNIEXPORT jint cpnet_addMembership (JNIEnv *env, jint fd, cpnet_address *addr); +JNIEXPORT jint cpnet_dropMembership (JNIEnv *env, jint fd, cpnet_address *addr); +JNIEXPORT jint cpnet_getAvailableBytes (JNIEnv *env, jint fd, jint *availableBytes); +JNIEXPORT jint cpnet_getHostname (JNIEnv *env, char *hostname, jint hostname_len); +JNIEXPORT jint cpnet_getHostByName (JNIEnv *env, const char *hostname, cpnet_address ***adresses, jint *addresses_count); +JNIEXPORT jint cpnet_getHostByAddr (JNIEnv *env, cpnet_address *addr, char *hostname, jint hostname_len); +JNIEXPORT jint cpnet_aton (JNIEnv *env, const char *hostname, cpnet_address **addr); +JNIEXPORT void cpnet_freeAddresses(JNIEnv * env, cpnet_address **addr, jint addresses_count); + +static inline cpnet_address *cpnet_newIPV4Address(JNIEnv * env) +{ + cpnet_address *addr = (cpnet_address *)JCL_malloc(env, sizeof(cpnet_address) + sizeof(struct sockaddr_in)); + struct sockaddr_in *netaddr = (struct sockaddr_in *)&(addr->data[0]); + + addr->len = sizeof(struct sockaddr_in); + memset(netaddr, 0, addr->len); + netaddr->sin_family = AF_INET; + return addr; +} + +static inline void cpnet_setIPV4Any(cpnet_address *addr) +{ + struct sockaddr_in *netaddr = (struct sockaddr_in *)&(addr->data[0]); + + netaddr->sin_addr.s_addr = INADDR_ANY; +} + +static inline cpnet_address *cpnet_newIPV6Address(JNIEnv * env) +{ + cpnet_address * addr = (cpnet_address *)JCL_malloc(env, sizeof(cpnet_address) + sizeof(struct sockaddr_in6)); + struct sockaddr_in6 *netaddr = (struct sockaddr_in6 *)&(addr->data[0]); + + addr->len = sizeof(struct sockaddr_in6); + memset(netaddr, 0, addr->len); + netaddr->sin6_family = AF_INET6; + + return addr; +} + +static inline void cpnet_freeAddress(JNIEnv * env, cpnet_address *addr) +{ + JCL_free(env, addr); +} + +static inline void cpnet_addressSetPort(cpnet_address *addr, jint port) +{ + struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]); + + ipaddr->sin_port = htons(port); +} + +static inline jint cpnet_addressGetPort(cpnet_address *addr) +{ + struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]); + + return ntohs(ipaddr->sin_port); +} + +static inline jboolean cpnet_isAddressEqual(cpnet_address *addr1, cpnet_address *addr2) +{ + if (addr1->len != addr2->len) + return JNI_FALSE; + + return memcmp(addr1->data, addr2->data, addr1->len) == 0; +} + +static inline jboolean cpnet_isIPV6Address(cpnet_address *addr) +{ + struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]); + + return ipaddr->sin_family == AF_INET6; +} + +static inline jboolean cpnet_isIPV4Address(cpnet_address *addr) +{ + struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]); + + return ipaddr->sin_family == AF_INET; +} + +static inline void cpnet_IPV4AddressToBytes(cpnet_address *netaddr, jbyte *octets) +{ + struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(netaddr->data[0]); + unsigned long sysaddr = ntohl(ipaddr->sin_addr.s_addr); + + octets[0] = ((sysaddr >> 24) & 0xff); + octets[1] = ((sysaddr >> 16) & 0xff); + octets[2] = ((sysaddr >> 8) & 0xff); + octets[3] = (sysaddr & 0xff); +} + +static inline void cpnet_bytesToIPV4Address(cpnet_address *netaddr, jbyte *octets) +{ + jint sysaddr; + struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(netaddr->data[0]); + + sysaddr = ((jint)(unsigned char)octets[0]) << 24; + sysaddr |= ((jint)(unsigned char)octets[1]) << 16; + sysaddr |= ((jint)(unsigned char)octets[2]) << 8; + sysaddr |= ((jint)(unsigned char)octets[3]); + + ipaddr->sin_addr.s_addr = htonl(sysaddr); +} + +static inline void cpnet_IPV6AddressToBytes(cpnet_address *netaddr, jbyte *octets) +{ + struct sockaddr_in6 *ipaddr = (struct sockaddr_in6 *)&(netaddr->data[0]); + + memcpy(octets, &ipaddr->sin6_addr, 16); +} + +static inline void cpnet_bytesToIPV6Address(cpnet_address *netaddr, jbyte *octets) +{ + struct sockaddr_in6 *ipaddr = (struct sockaddr_in6 *)&(netaddr->data[0]); + + memcpy(&ipaddr->sin6_addr, octets, 16); +} + +#endif diff --git a/libjava/classpath/native/jni/native-lib/cpproc.c b/libjava/classpath/native/jni/native-lib/cpproc.c new file mode 100644 index 00000000000..b6e9030b562 --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/cpproc.c @@ -0,0 +1,136 @@ +/* cpproc.c - + Copyright (C) 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. */ + +#include "config.h" +#include +#include "cpproc.h" +#include +#include +#include +#include +#include +#include + +static void close_all_fds(int *fds, int numFds) +{ + int i; + + for (i = 0; i < numFds; i++) + close(fds[i]); +} + +int cpproc_forkAndExec (char * const *commandLine, char * const * newEnviron, + int *fds, int pipe_count, pid_t *out_pid, const char *wd) +{ + int local_fds[6]; + int i; + pid_t pid; + + for (i = 0; i < (pipe_count * 2); i += 2) + { + if (pipe(&local_fds[i]) < 0) + { + int err = errno; + + close_all_fds(local_fds, i); + + return err; + } + } + + pid = fork(); + + switch (pid) + { + case 0: + dup2(local_fds[0], 0); + dup2(local_fds[3], 1); + if (pipe_count == 3) + dup2(local_fds[5], 2); + else + dup2(1, 2); + + close_all_fds(local_fds, pipe_count * 2); + + chdir(wd); + if (newEnviron == NULL) + execvp(commandLine[0], commandLine); + else + execve(commandLine[0], commandLine, newEnviron); + + abort(); + + break; + case -1: + { + int err = errno; + + close_all_fds(local_fds, pipe_count * 2); + return err; + } + default: + close(local_fds[0]); + close(local_fds[3]); + if (pipe_count == 3) + close(local_fds[5]); + + fds[0] = local_fds[1]; + fds[1] = local_fds[2]; + fds[2] = local_fds[4]; + *out_pid = pid; + return 0; + } +} + +int cpproc_waitpid (pid_t pid, int *status, pid_t *outpid, int options) +{ + pid_t wp = waitpid(pid, status, options); + + if (wp < 0) + return errno; + + *outpid = wp; + return 0; +} + +int cpproc_kill (pid_t pid, int signal) +{ + if (kill(pid, signal) < 0) + return errno; + + return 0; +} diff --git a/libjava/classpath/native/jni/native-lib/cpproc.h b/libjava/classpath/native/jni/native-lib/cpproc.h new file mode 100644 index 00000000000..5e8db5800a2 --- /dev/null +++ b/libjava/classpath/native/jni/native-lib/cpproc.h @@ -0,0 +1,52 @@ +/* cpproc.h - + 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. */ +#ifndef _CLASSPATH_PROC_H_INCLUDED +#define _CLASSPATH_PROC_H_INCLUDED + +#include + +#define CPIO_EXEC_STDIN 0 +#define CPIO_EXEC_STDOUT 1 +#define CPIO_EXEC_STDERR 2 +#define CPIO_EXEC_NUM_PIPES 3 + +JNIEXPORT int cpproc_forkAndExec (char * const *commandLine, char * const * newEnviron, + int *fds, int pipe_count, pid_t *pid, const char *wd); +JNIEXPORT int cpproc_waitpid (pid_t pid, int *status, pid_t *outpid, int options); +JNIEXPORT int cpproc_kill (pid_t pid, int signal); + +#endif diff --git a/libjava/classpath/native/jni/qt-peer/Makefile.am b/libjava/classpath/native/jni/qt-peer/Makefile.am index b123ed36e6c..1728b6b530e 100644 --- a/libjava/classpath/native/jni/qt-peer/Makefile.am +++ b/libjava/classpath/native/jni/qt-peer/Makefile.am @@ -1,7 +1,8 @@ # Qt AWT backend for Classpath # -nativeexeclib_LTLIBRARIES = libqtpeer.la +## GCJ LOCAL: don't install this library +noinst_LTLIBRARIES = libqtpeer.la AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ diff --git a/libjava/classpath/native/jni/qt-peer/Makefile.in b/libjava/classpath/native/jni/qt-peer/Makefile.in index 6171542c7b7..c60ea1938a2 100644 --- a/libjava/classpath/native/jni/qt-peer/Makefile.in +++ b/libjava/classpath/native/jni/qt-peer/Makefile.in @@ -45,26 +45,20 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" -nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) +LTLIBRARIES = $(noinst_LTLIBRARIES) libqtpeer_la_LIBADD = am_libqtpeer_la_OBJECTS = componentevent.lo keybindings.lo \ mainqtthread.lo mainthreadinterface.lo nativewrapper.lo \ @@ -209,6 +203,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -330,9 +326,8 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -nativeexeclib_LTLIBRARIES = libqtpeer.la +noinst_LTLIBRARIES = libqtpeer.la AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CXXFLAGS = @QT_CFLAGS@ @@ -435,35 +430,17 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" - @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ - if test -f $$p; then \ - f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ - else :; fi; \ - done - -uninstall-nativeexeclibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ - p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ - done -clean-nativeexeclibLTLIBRARIES: - -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) - @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libqtpeer.la: $(libqtpeer_la_OBJECTS) $(libqtpeer_la_DEPENDENCIES) - $(CXXLINK) -rpath $(nativeexeclibdir) $(libqtpeer_la_LDFLAGS) $(libqtpeer_la_OBJECTS) $(libqtpeer_la_LIBADD) $(LIBS) + $(CXXLINK) $(libqtpeer_la_LDFLAGS) $(libqtpeer_la_OBJECTS) $(libqtpeer_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -624,9 +601,6 @@ check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am @@ -656,7 +630,7 @@ maintainer-clean-generic: -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am -clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -677,7 +651,7 @@ info-am: install-data-am: -install-exec-am: install-nativeexeclibLTLIBRARIES +install-exec-am: install-info: install-info-am @@ -703,20 +677,19 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES +uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ + clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativeexeclibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativeexeclibLTLIBRARIES + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-info-am slotcallbacks.moc.h: slotcallbacks.cpp diff --git a/libjava/classpath/native/jni/xmlj/.cvsignore b/libjava/classpath/native/jni/xmlj/.cvsignore new file mode 100644 index 00000000000..e9f2658a694 --- /dev/null +++ b/libjava/classpath/native/jni/xmlj/.cvsignore @@ -0,0 +1,8 @@ +*.o +*.a +*.lo +*.la +.libs +.deps +Makefile +Makefile.in diff --git a/libjava/classpath/native/jni/xmlj/Makefile.in b/libjava/classpath/native/jni/xmlj/Makefile.in index a43311b3a82..3f3a1613cc0 100644 --- a/libjava/classpath/native/jni/xmlj/Makefile.in +++ b/libjava/classpath/native/jni/xmlj/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -185,6 +187,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -306,7 +310,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libxmlj.la libxmlj_la_SOURCES = \ diff --git a/libjava/classpath/native/plugin/Makefile.am b/libjava/classpath/native/plugin/Makefile.am index 59c4cb3f388..db94bb411bc 100644 --- a/libjava/classpath/native/plugin/Makefile.am +++ b/libjava/classpath/native/plugin/Makefile.am @@ -3,7 +3,7 @@ nativeexeclib_LTLIBRARIES = libgcjwebplugin.la libgcjwebplugin_la_SOURCES = gcjwebplugin.cc libgcjwebplugin_la_CXXFLAGS = \ - -Wall -DAPPLETVIEWER_EXECUTABLE="\"$(bindir)/gappletviewer\"" \ + -Wall -DAPPLETVIEWER_EXECUTABLE="\"$(bindir)/`echo gappletviewer | sed '$(program_transform_name)'`\"" \ $(MOZILLA_CFLAGS) $(GLIB_CFLAGS) $(GTK_CFLAGS) libgcjwebplugin_la_LDFLAGS = -avoid-version \ diff --git a/libjava/classpath/native/plugin/Makefile.in b/libjava/classpath/native/plugin/Makefile.in index 4a17afd5b29..be48ed28aae 100644 --- a/libjava/classpath/native/plugin/Makefile.in +++ b/libjava/classpath/native/plugin/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -183,6 +185,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -304,12 +308,11 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libgcjwebplugin.la libgcjwebplugin_la_SOURCES = gcjwebplugin.cc libgcjwebplugin_la_CXXFLAGS = \ - -Wall -DAPPLETVIEWER_EXECUTABLE="\"$(bindir)/gappletviewer\"" \ + -Wall -DAPPLETVIEWER_EXECUTABLE="\"$(bindir)/`echo gappletviewer | sed '$(program_transform_name)'`\"" \ $(MOZILLA_CFLAGS) $(GLIB_CFLAGS) $(GTK_CFLAGS) libgcjwebplugin_la_LDFLAGS = -avoid-version \ diff --git a/libjava/classpath/native/plugin/gcjwebplugin.cc b/libjava/classpath/native/plugin/gcjwebplugin.cc index 1202c4719aa..bb2bfa22343 100644 --- a/libjava/classpath/native/plugin/gcjwebplugin.cc +++ b/libjava/classpath/native/plugin/gcjwebplugin.cc @@ -283,10 +283,6 @@ GCJ_New (NPMIMEType pluginType, NPP instance, uint16 mode, goto cleanup_done; } - // Initialize threads (needed for mutexes). - if (!g_thread_supported ()) - g_thread_init (NULL); - // data plugin_data_new (&data); if (data == NULL) @@ -1686,6 +1682,11 @@ NP_Initialize (NPNetscapeFuncs* browserTable, NPPluginFuncs* pluginTable) pluginTable->getvalue = NewNPP_GetValueProc (GCJ_GetValue); initialized = true; + + // Initialize threads (needed for mutexes). + if (!g_thread_supported ()) + g_thread_init (NULL); + plugin_instance_mutex = g_mutex_new (); PLUGIN_DEBUG ("NP_Initialize: using " APPLETVIEWER_EXECUTABLE "."); diff --git a/libjava/classpath/native/target/Linux/Makefile.am b/libjava/classpath/native/target/Linux/Makefile.am deleted file mode 100644 index bd267dc7f91..00000000000 --- a/libjava/classpath/native/target/Linux/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -## Input file for automake to generate the Makefile.in used by configure - -EXTRA_DIST = \ -target_native_io.h \ -target_native_misc.h \ -target_native.h \ -target_native_math_float.h \ -target_native_network.h \ -target_native_file.h \ -target_native_math_int.h diff --git a/libjava/classpath/native/target/Linux/Makefile.in b/libjava/classpath/native/target/Linux/Makefile.in deleted file mode 100644 index fad05c8e9d3..00000000000 --- a/libjava/classpath/native/target/Linux/Makefile.in +++ /dev/null @@ -1,454 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = native/target/Linux -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ - $(top_srcdir)/../../config/lead-dot.m4 \ - $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ - $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ - $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/include/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@ -BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ -CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ -CLASSPATH_MODULE = @CLASSPATH_MODULE@ -COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ -CP = @CP@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@ -CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@ -CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@ -CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@ -CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@ -CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@ -CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@ -CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@ -CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@ -CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@ -CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@ -CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@ -CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@ -CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@ -CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@ -CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@ -CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@ -CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@ -CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@ -CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@ -CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@ -CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@ -CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@ -CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@ -CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@ -CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATE = @DATE@ -DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECJ = @ECJ@ -EGREP = @EGREP@ -ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ -ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ -ERROR_CFLAGS = @ERROR_CFLAGS@ -EXAMPLESDIR = @EXAMPLESDIR@ -EXEEXT = @EXEEXT@ -FASTJAR = @FASTJAR@ -FIND = @FIND@ -FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@ -FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@ -FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ -FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ -FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ -GCJX = @GCJX@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GDK_CFLAGS = @GDK_CFLAGS@ -GDK_LIBS = @GDK_LIBS@ -GJDOC = @GJDOC@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@ -INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@ -INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@ -INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ -JAY = @JAY@ -JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ -LDFLAGS = @LDFLAGS@ -LIBDEBUG = @LIBDEBUG@ -LIBICONV = @LIBICONV@ -LIBMAGIC = @LIBMAGIC@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBVERSION = @LIBVERSION@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MKDIR = @MKDIR@ -MOC = @MOC@ -MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ -MOZILLA_LIBS = @MOZILLA_LIBS@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ -PANGOFT2_LIBS = @PANGOFT2_LIBS@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PATH_TO_ESCHER = @PATH_TO_ESCHER@ -PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PLUGIN_DIR = @PLUGIN_DIR@ -QT_CFLAGS = @QT_CFLAGS@ -QT_LIBS = @QT_LIBS@ -RANLIB = @RANLIB@ -REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@ -REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@ -REMOVE = @REMOVE@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ -STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ -USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ -USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ -USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ -USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ -USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ -USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ -USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ -VERSION = @VERSION@ -VM_BINARY = @VM_BINARY@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -XML_CFLAGS = @XML_CFLAGS@ -XML_LIBS = @XML_LIBS@ -XSLT_CFLAGS = @XSLT_CFLAGS@ -XSLT_LIBS = @XSLT_LIBS@ -XTEST_LIBS = @XTEST_LIBS@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -ZIP = @ZIP@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -default_toolkit = @default_toolkit@ -exec_prefix = @exec_prefix@ -glibjdir = @glibjdir@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -nativeexeclibdir = @nativeexeclibdir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ -vm_classes = @vm_classes@ -EXTRA_DIST = \ -target_native_io.h \ -target_native_misc.h \ -target_native.h \ -target_native_math_float.h \ -target_native_network.h \ -target_native_file.h \ -target_native_math_int.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/target/Linux/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu native/target/Linux/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libjava/classpath/native/target/Linux/target_native.h b/libjava/classpath/native/target/Linux/target_native.h deleted file mode 100644 index 4e1d5136d55..00000000000 --- a/libjava/classpath/native/target/Linux/target_native.h +++ /dev/null @@ -1,79 +0,0 @@ -/* ???.h - ??? - Copyright (C) 1998 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. */ - -/* -Description: Linux target global defintions -Systems : all -*/ - -#ifndef __TARGET_NATIVE__ -#define __TARGET_NATIVE__ - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -/* include rest of definitions from generic file (do not move it to - another position!) */ -#include "target_generic.h" - -#endif /* __TARGET_NATIVE__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/Linux/target_native_file.h b/libjava/classpath/native/target/Linux/target_native_file.h deleted file mode 100644 index 0c40b4471b6..00000000000 --- a/libjava/classpath/native/target/Linux/target_native_file.h +++ /dev/null @@ -1,79 +0,0 @@ -/* ???.h - ??? - Copyright (C) 1998 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. */ - -/* -Description: Linux target defintions of file functions -Systems : all -*/ - -#ifndef __TARGET_NATIVE_FILE__ -#define __TARGET_NATIVE_FILE__ - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -/* include rest of definitions from generic file (do not move it to - another position!) */ -#include "target_generic_file.h" - -#endif /* __TARGET_NATIVE_FILE__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/Linux/target_native_io.h b/libjava/classpath/native/target/Linux/target_native_io.h deleted file mode 100644 index 03f43adf579..00000000000 --- a/libjava/classpath/native/target/Linux/target_native_io.h +++ /dev/null @@ -1,78 +0,0 @@ -/* ???.h - ??? - Copyright (C) 1998 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. */ - -/* -Description: Linux target defintions of miscellaneous functions -Systems : all -*/ - -#ifndef __TARGET_NATIVE_IO__ -#define __TARGET_NATIVE_IO__ - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -/* include rest of definitions from generic file (do not move it to - another position!) */ -#include "target_generic_io.h" - -#endif /* __TARGET_NATIVE_MISC__ */ - -/* end of file */ diff --git a/libjava/classpath/native/target/Linux/target_native_math_float.h b/libjava/classpath/native/target/Linux/target_native_math_float.h deleted file mode 100644 index 0f3455d2ae9..00000000000 --- a/libjava/classpath/native/target/Linux/target_native_math_float.h +++ /dev/null @@ -1,80 +0,0 @@ -/* ???.h - ??? - Copyright (C) 1998 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. */ - -/* -Description: Linux target defintions of float/double constants/ - macros/functions -Systems : all -*/ - -#ifndef __TARGET_NATIVE_MATH_FLOAT__ -#define __TARGET_NATIVE_MATH_FLOAT__ - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -/* include rest of definitions from generic file (do not move it to - another position!) */ -#include "target_generic_math_float.h" - -#endif /* __TARGET_NATIVE_MATH_FLOAT__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/Linux/target_native_math_int.h b/libjava/classpath/native/target/Linux/target_native_math_int.h deleted file mode 100644 index 4c5fc671d05..00000000000 --- a/libjava/classpath/native/target/Linux/target_native_math_int.h +++ /dev/null @@ -1,80 +0,0 @@ -/* ???.h - ??? - Copyright (C) 1998 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. */ - -/* -Description: Linux target defintions of int/int64 constants/ - macros/functions -Systems : all -*/ - -#ifndef __TARGET_NATIVE_MATH_INT__ -#define __TARGET_NATIVE_MATH_INT__ - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -/* include rest of definitions from generic file (do not move it to - another position!) */ -#include "target_generic_math_int.h" - -#endif /* __TARGET_NATIVE_MATH_INT__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/Linux/target_native_misc.h b/libjava/classpath/native/target/Linux/target_native_misc.h deleted file mode 100644 index 00bc7ac8da8..00000000000 --- a/libjava/classpath/native/target/Linux/target_native_misc.h +++ /dev/null @@ -1,79 +0,0 @@ -/* ???.h - ??? - Copyright (C) 1998 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. */ - -/* -Description: Linux target defintions of miscellaneous functions -Systems : all -*/ - -#ifndef __TARGET_NATIVE_MISC__ -#define __TARGET_NATIVE_MISC__ - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -/* include rest of definitions from generic file (do not move it to - another position!) */ -#include "target_generic_misc.h" - -#endif /* __TARGET_NATIVE_MISC__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/Linux/target_native_network.h b/libjava/classpath/native/target/Linux/target_native_network.h deleted file mode 100644 index 23f9d0a6286..00000000000 --- a/libjava/classpath/native/target/Linux/target_native_network.h +++ /dev/null @@ -1,79 +0,0 @@ -/* ???.h - ??? - Copyright (C) 1998 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. */ - -/* -Description: Linux target defintions of network functions -Systems : all -*/ - -#ifndef __TARGET_NATIVE_NETWORK__ -#define __TARGET_NATIVE_NETWORK__ - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -/* include rest of definitions from generic file (do not move it to - another position!) */ -#include "target_generic_network.h" - -#endif /* __TARGET_NATIVE_NETWORK__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/Makefile.am b/libjava/classpath/native/target/Makefile.am deleted file mode 100644 index ba0ad791919..00000000000 --- a/libjava/classpath/native/target/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -## Input file for automake to generate the Makefile.in used by configure - -SUBDIRS = Linux generic - -EXTRA_DIST = readme.txt diff --git a/libjava/classpath/native/target/Makefile.in b/libjava/classpath/native/target/Makefile.in deleted file mode 100644 index a69acdc1cda..00000000000 --- a/libjava/classpath/native/target/Makefile.in +++ /dev/null @@ -1,604 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = native/target -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ - $(top_srcdir)/../../config/lead-dot.m4 \ - $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ - $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ - $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/include/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@ -BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ -CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ -CLASSPATH_MODULE = @CLASSPATH_MODULE@ -COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ -CP = @CP@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@ -CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@ -CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@ -CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@ -CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@ -CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@ -CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@ -CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@ -CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@ -CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@ -CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@ -CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@ -CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@ -CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@ -CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@ -CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@ -CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@ -CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@ -CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@ -CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@ -CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@ -CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@ -CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@ -CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@ -CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@ -CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATE = @DATE@ -DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECJ = @ECJ@ -EGREP = @EGREP@ -ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ -ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ -ERROR_CFLAGS = @ERROR_CFLAGS@ -EXAMPLESDIR = @EXAMPLESDIR@ -EXEEXT = @EXEEXT@ -FASTJAR = @FASTJAR@ -FIND = @FIND@ -FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@ -FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@ -FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ -FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ -FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ -GCJX = @GCJX@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GDK_CFLAGS = @GDK_CFLAGS@ -GDK_LIBS = @GDK_LIBS@ -GJDOC = @GJDOC@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@ -INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@ -INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@ -INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ -JAY = @JAY@ -JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ -LDFLAGS = @LDFLAGS@ -LIBDEBUG = @LIBDEBUG@ -LIBICONV = @LIBICONV@ -LIBMAGIC = @LIBMAGIC@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBVERSION = @LIBVERSION@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MKDIR = @MKDIR@ -MOC = @MOC@ -MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ -MOZILLA_LIBS = @MOZILLA_LIBS@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ -PANGOFT2_LIBS = @PANGOFT2_LIBS@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PATH_TO_ESCHER = @PATH_TO_ESCHER@ -PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PLUGIN_DIR = @PLUGIN_DIR@ -QT_CFLAGS = @QT_CFLAGS@ -QT_LIBS = @QT_LIBS@ -RANLIB = @RANLIB@ -REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@ -REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@ -REMOVE = @REMOVE@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ -STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ -USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ -USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ -USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ -USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ -USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ -USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ -USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ -VERSION = @VERSION@ -VM_BINARY = @VM_BINARY@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -XML_CFLAGS = @XML_CFLAGS@ -XML_LIBS = @XML_LIBS@ -XSLT_CFLAGS = @XSLT_CFLAGS@ -XSLT_LIBS = @XSLT_LIBS@ -XTEST_LIBS = @XTEST_LIBS@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -ZIP = @ZIP@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -default_toolkit = @default_toolkit@ -exec_prefix = @exec_prefix@ -glibjdir = @glibjdir@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -nativeexeclibdir = @nativeexeclibdir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ -vm_classes = @vm_classes@ -SUBDIRS = Linux generic -EXTRA_DIST = readme.txt -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/target/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu native/target/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-generic mostlyclean-libtool \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libjava/classpath/native/target/generic/Makefile.am b/libjava/classpath/native/target/generic/Makefile.am deleted file mode 100644 index bc8413c3a75..00000000000 --- a/libjava/classpath/native/target/generic/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -## Input file for automake to generate the Makefile.in used by configure - -EXTRA_DIST = \ -target_generic_io.h \ -target_generic_misc.h \ -target_generic.h \ -target_generic_math_float.h \ -target_generic_network.h \ -target_generic_file.h \ -target_generic_math_int.h diff --git a/libjava/classpath/native/target/generic/Makefile.in b/libjava/classpath/native/target/generic/Makefile.in deleted file mode 100644 index 1acabd209a3..00000000000 --- a/libjava/classpath/native/target/generic/Makefile.in +++ /dev/null @@ -1,454 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = native/target/generic -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ - $(top_srcdir)/../../config/lead-dot.m4 \ - $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ - $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ - $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/include/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@ -BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ -CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ -CLASSPATH_MODULE = @CLASSPATH_MODULE@ -COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ -CP = @CP@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@ -CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@ -CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@ -CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@ -CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@ -CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@ -CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@ -CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@ -CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@ -CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@ -CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@ -CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@ -CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@ -CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@ -CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@ -CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@ -CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@ -CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@ -CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@ -CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@ -CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@ -CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@ -CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@ -CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@ -CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@ -CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATE = @DATE@ -DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECJ = @ECJ@ -EGREP = @EGREP@ -ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ -ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ -ERROR_CFLAGS = @ERROR_CFLAGS@ -EXAMPLESDIR = @EXAMPLESDIR@ -EXEEXT = @EXEEXT@ -FASTJAR = @FASTJAR@ -FIND = @FIND@ -FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@ -FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@ -FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ -FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ -FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ -GCJX = @GCJX@ -GCONF_CFLAGS = @GCONF_CFLAGS@ -GCONF_LIBS = @GCONF_LIBS@ -GDK_CFLAGS = @GDK_CFLAGS@ -GDK_LIBS = @GDK_LIBS@ -GJDOC = @GJDOC@ -GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_LIBS = @GLIB_LIBS@ -GTK_CFLAGS = @GTK_CFLAGS@ -GTK_LIBS = @GTK_LIBS@ -INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@ -INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@ -INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@ -INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ -JAY = @JAY@ -JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ -LDFLAGS = @LDFLAGS@ -LIBDEBUG = @LIBDEBUG@ -LIBICONV = @LIBICONV@ -LIBMAGIC = @LIBMAGIC@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBVERSION = @LIBVERSION@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -MKDIR = @MKDIR@ -MOC = @MOC@ -MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ -MOZILLA_LIBS = @MOZILLA_LIBS@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ -PANGOFT2_LIBS = @PANGOFT2_LIBS@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PATH_TO_ESCHER = @PATH_TO_ESCHER@ -PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ -PERL = @PERL@ -PKG_CONFIG = @PKG_CONFIG@ -PLUGIN_DIR = @PLUGIN_DIR@ -QT_CFLAGS = @QT_CFLAGS@ -QT_LIBS = @QT_LIBS@ -RANLIB = @RANLIB@ -REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@ -REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@ -REMOVE = @REMOVE@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ -STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ -USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ -USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ -USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ -USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ -USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ -USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ -USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ -VERSION = @VERSION@ -VM_BINARY = @VM_BINARY@ -WARNING_CFLAGS = @WARNING_CFLAGS@ -XML_CFLAGS = @XML_CFLAGS@ -XML_LIBS = @XML_LIBS@ -XSLT_CFLAGS = @XSLT_CFLAGS@ -XSLT_LIBS = @XSLT_LIBS@ -XTEST_LIBS = @XTEST_LIBS@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -ZIP = @ZIP@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -default_toolkit = @default_toolkit@ -exec_prefix = @exec_prefix@ -glibjdir = @glibjdir@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -nativeexeclibdir = @nativeexeclibdir@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ -vm_classes = @vm_classes@ -EXTRA_DIST = \ -target_generic_io.h \ -target_generic_misc.h \ -target_generic.h \ -target_generic_math_float.h \ -target_generic_network.h \ -target_generic_file.h \ -target_generic_math_int.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/target/generic/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu native/target/generic/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libjava/classpath/native/target/generic/target_generic.h b/libjava/classpath/native/target/generic/target_generic.h deleted file mode 100644 index c2264330d28..00000000000 --- a/libjava/classpath/native/target/generic/target_generic.h +++ /dev/null @@ -1,171 +0,0 @@ -/* generic_math_int64.h - Native methods for 64bit math operations - Copyright (C) 1998 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. */ - -/* -Description: generic target global defintions -Systems : all -*/ - -#ifndef __TARGET_GENERIC__ -#define __TARGET_GENERIC__ - -/* check if target_native_network.h included */ -#ifndef __TARGET_NATIVE__ - #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead! -#endif - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include "config.h" - -#include -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ -#define TARGET_NATIVE_OK 1 -#define TARGET_NATIVE_ERROR 0 - -#ifndef TARGET_NATIVE_ERROR_PERMISION_DENIED - #define TARGET_NATIVE_ERROR_PERMISION_DENIED EACCES -#endif -#ifndef TARGET_NATIVE_ERROR_BAD_FILE_DESCRIPTOR - #define TARGET_NATIVE_ERROR_BAD_FILE_DESCRIPTOR EBADF -#endif -#ifndef TARGET_NATIVE_ERROR_FILE_EXISTS - #define TARGET_NATIVE_ERROR_FILE_EXISTS EEXIST -#endif -#ifndef TARGET_NATIVE_ERROR_INPUT_OUTPUT - #define TARGET_NATIVE_ERROR_INPUT_OUTPUT EIO -#endif -#ifndef TARGET_NATIVE_ERROR_TOO_MANY_OPEN_FILES - #define TARGET_NATIVE_ERROR_TOO_MANY_OPEN_FILES EMFILE -#endif -#ifndef TARGET_NATIVE_ERROR_FILENAME_TO_LONG - #define TARGET_NATIVE_ERROR_FILENAME_TO_LONG ENAMETOOLONG -#endif -#ifndef TARGET_NATIVE_ERROR_NO_SUCH_DEVICE - #define TARGET_NATIVE_ERROR_NO_SUCH_DEVICE ENODEV -#endif -#ifndef TARGET_NATIVE_ERROR_NO_SUCH_FILE - #define TARGET_NATIVE_ERROR_NO_SUCH_FILE ENOENT -#endif -#ifndef TARGET_NATIVE_ERROR_NO_SPACE_LEFT - #define TARGET_NATIVE_ERROR_NO_SPACE_LEFT ENOSPC -#endif -#ifndef TARGET_NATIVE_ERROR_DIRECTORY_NOT_EMPTY - #define TARGET_NATIVE_ERROR_DIRECTORY_NOT_EMPTY ENOTEMPTY -#endif -#ifndef TARGET_NATIVE_ERROR_OPERATION_NOT_PERMITTED - #define TARGET_NATIVE_ERROR_OPERATION_NOT_PERMITTED EPERM -#endif -#ifndef TARGET_NATIVE_ERROR_READ_ONLY_FILE_SYSTEM - #define TARGET_NATIVE_ERROR_READ_ONLY_FILE_SYSTEM EROFS -#endif -#ifndef TARGET_NATIVE_ERROR_INVALID_SEEK - #define TARGET_NATIVE_ERROR_INVALID_SEEK ESPIPE -#endif -#ifndef TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL - #define TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL EINTR -#endif - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***********************************************************************\ -* Name : TARGET_NATIVE_LAST_ERROR -* Purpose : return last error code -* Input : - -* Output : - -* Return : error code -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_LAST_ERROR - #include - #define TARGET_NATIVE_LAST_ERROR() \ - errno -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_LAST_ERROR_STRING -* Purpose : return last error string -* Input : - -* Output : - -* Return : error string (read only!) -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_LAST_ERROR_STRING - #include - #include - #define TARGET_NATIVE_LAST_ERROR_STRING() \ - strerror(errno) -#endif - -#ifndef TARGET_NATIVE_LAST_ERROR_STRING_FORMAT - #include - #include - #define TARGET_NATIVE_LAST_ERROR_STRING_FORMAT(buffer,bufferSize,format) \ - do { \ - sprintf(buffer, "%s", format); \ - strcat(" (error: "); \ - strcat(strerror(errno)); \ - strcat(")"); \ - } while (0) -#endif - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __TARGET_GENERIC__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/generic/target_generic_file.h b/libjava/classpath/native/target/generic/target_generic_file.h deleted file mode 100644 index cd90e733ced..00000000000 --- a/libjava/classpath/native/target/generic/target_generic_file.h +++ /dev/null @@ -1,844 +0,0 @@ -/* target_generic_file - Native methods for file operations - Copyright (C) 1998, 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. */ - -/* -Description: generic target defintions of file functions -Systems : all -*/ - -#ifndef __TARGET_GENERIC_FILE__ -#define __TARGET_GENERIC_FILE__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* check if target_native_file.h included */ -#ifndef __TARGET_NATIVE_FILE__ - #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead! -#endif - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include "config.h" - -#include -#include -#include - -#include "target_native.h" -#include "target_native_math_int.h" - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ -#ifndef TARGET_NATIVE_FILE_FILEFLAG_NONE - #define TARGET_NATIVE_FILE_FILEFLAG_NONE 0 -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_CREATE - #define TARGET_NATIVE_FILE_FILEFLAG_CREATE O_CREAT -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE - #define TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE (O_CREAT|O_EXCL) -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_READ - #define TARGET_NATIVE_FILE_FILEFLAG_READ O_RDONLY -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_WRITE - #define TARGET_NATIVE_FILE_FILEFLAG_WRITE O_WRONLY -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_READWRITE - #define TARGET_NATIVE_FILE_FILEFLAG_READWRITE O_RDWR -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_TRUNCATE - #define TARGET_NATIVE_FILE_FILEFLAG_TRUNCATE O_TRUNC -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_APPEND - #define TARGET_NATIVE_FILE_FILEFLAG_APPEND O_APPEND -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_SYNC - #if !defined (O_SYNC) && defined (O_FSYNC) - #define TARGET_NATIVE_FILE_FILEFLAG_SYNC O_FSYNC - #else - #define TARGET_NATIVE_FILE_FILEFLAG_SYNC O_SYNC - #endif -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_DSYNC - #ifdef O_DSYNC - #define TARGET_NATIVE_FILE_FILEFLAG_DSYNC 0 - #else - #define TARGET_NATIVE_FILE_FILEFLAG_DSYNC TARGET_NATIVE_FILE_FILEFLAG_SYNC - #endif -#endif -#ifndef TARGET_NATIVE_FILE_FILEFLAG_BINARY - #define TARGET_NATIVE_FILE_FILEFLAG_BINARY O_BINARY -#endif - -#ifndef TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL - #define TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) -#endif - -#ifndef TARGET_NATIVE_FILE_FILEPERMISSION_PRIVATE - #define TARGET_NATIVE_FILE_FILEPERMISSION_PRIVATE (S_IRUSR | S_IWUSR) -#endif - -#ifndef TARGET_NATIVE_FILE_FILEPERMISSION_READONLY - #define TARGET_NATIVE_FILE_FILEPERMISSION_READONLY (~(S_IWRITE|S_IWGRP|S_IWOTH)) -#endif - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_OPEN -* Purpose : open a file -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : file is created if it does not exist -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_OPEN - #include - #include - #include - #define TARGET_NATIVE_FILE_OPEN(filename,filedescriptor,flags,permissions,result) \ - do { \ - filedescriptor=open(filename, \ - flags, \ - permissions \ - ); \ - if (filedescriptor >= 0) \ - fcntl (filedescriptor,F_SETFD,FD_CLOEXEC); \ - result=(filedescriptor>=0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_OPEN_CREATE -* Purpose : create a file -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : file is created if it does not exist -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_OPEN_CREATE - #define TARGET_NATIVE_FILE_OPEN_CREATE(filename,filedescriptor,result) \ - TARGET_NATIVE_FILE_OPEN(filename,\ - filedescriptor,\ - TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE, \ - TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \ - result \ - ) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_OPEN_READ -* Purpose : open an existing file for reading -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_OPEN_READ - #define TARGET_NATIVE_FILE_OPEN_READ(filename,filedescriptor,result) \ - TARGET_NATIVE_FILE_OPEN(filename, \ - filedescriptor,\ - TARGET_NATIVE_FILE_FILEFLAG_READ, \ - TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \ - result \ - ) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_OPEN_WRITE -* Purpose : open an existing file for writing -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_OPEN_WRITE - #define TARGET_NATIVE_FILE_OPEN_WRITE(filename,filedescriptor,result) \ - TARGET_NATIVE_FILE_OPEN(filename, \ - filedescriptor, \ - TARGET_NATIVE_FILE_FILEFLAG_WRITE, \ - TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \ - result \ - ) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_OPEN_READWRITE -* Purpose : create/open a file for reading/writing -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : file is created if it does not exist -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_OPEN_READWRITE - #define TARGET_NATIVE_FILE_OPEN_READWRITE(filename,filedescriptor,result) \ - TARGET_NATIVE_FILE_OPEN(filename, \ - filedescriptor, \ - TARGET_NATIVE_FILE_FILEFLAG_READWRITE, \ - TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \ - result \ - ) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_OPEN_READWRITE -* Purpose : create/open a file for append -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : file is created if it does not exist -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_OPEN_APPEND - #define TARGET_NATIVE_FILE_OPEN_APPEND(filename,filedescriptor,result) \ - TARGET_NATIVE_FILE_OPEN_APPEND(filename, \ - filedescriptor, \ - TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE|TARGET_NATIVE_FILE_FILEFLAG_APPEND, \ - TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \ - result \ - ) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_CLOSE -* Purpose : close a file -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_CLOSE - #include - #define TARGET_NATIVE_FILE_CLOSE(filedescriptor,result) \ - do { \ - result=(close(filedescriptor)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR -* Purpose : check if file-descriptor is valid -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR - #if defined(HAVE_FCNTL) - #include - #include - #define TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR(filedescriptor,result) \ - do { \ - result=(fcntl(filedescriptor,F_GETFL,0)!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while(0) - #elif defined(HAVE_FSTAT) - #include - #include - #include - #define TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR(filedescriptor,result) \ - do { \ - struct stat __stat; \ - \ - result=(fstat(filedescriptor,&__stat)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while(0) - #else - #error fcntl() nor fstat() available for checking if file descriptor is valid - #endif -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_TELL -* Purpose : get current file position -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_TELL - #include - #include - #define TARGET_NATIVE_FILE_TELL(filedescriptor,offset,result) \ - do { \ - offset=lseek(filedescriptor,TARGET_NATIVE_MATH_INT_INT64_CONST_0,SEEK_CUR); \ - result=((offset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_SEEK_BEGIN|CURRENT|END -* Purpose : set file position relativ to begin/current/end -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_SEEK_BEGIN - #include - #include - #define TARGET_NATIVE_FILE_SEEK_BEGIN(filedescriptor,offset,newoffset,result) \ - do { \ - newoffset=lseek(filedescriptor,offset,SEEK_SET); \ - result=((newoffset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif -#ifndef TARGET_NATIVE_FILE_SEEK_CURRENT - #include - #include - #define TARGET_NATIVE_FILE_SEEK_CURRENT(filedescriptor,offset,newoffset,result) \ - do { \ - newoffset=lseek(filedescriptor,offset,SEEK_CUR); \ - result=((newoffset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif -#ifndef TARGET_NATIVE_FILE_SEEK_END - #include - #include - #define TARGET_NATIVE_FILE_SEEK_END(filedescriptor,offset,newoffset,result) \ - do { \ - newoffset=lseek(filedescriptor,offset,SEEK_END); \ - result=((newoffset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_TRUNCATE -* Purpose : truncate a file -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_TRUNCATE - #include - #define TARGET_NATIVE_FILE_TRUNCATE(filedescriptor,offset,result) \ - do { \ - result=(ftruncate(filedescriptor,offset)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_SIZE -* Purpose : get size of file (in bytes) -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_SIZE - #include - #include - #include - #define TARGET_NATIVE_FILE_SIZE(filedescriptor,length,result) \ - do { \ - struct stat __statBuffer; \ - \ - result=(fstat(filedescriptor,&__statBuffer)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - length=TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__statBuffer.st_size); \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_AVAILABLE -* Purpose : get available bytes for read -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_AVAILABLE - #ifdef HAVE_SYS_IOCTL_H - #define BSD_COMP /* Get FIONREAD on Solaris2 */ - #include - #endif - #ifdef HAVE_SYS_FILIO_H /* Get FIONREAD on Solaris 2.5 */ - #include - #endif - #if defined (FIONREAD) - #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \ - do { \ - ssize_t __n; \ - \ - result=(ioctl(filedescriptor,FIONREAD,(char*)&__n)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - length=TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__n); \ - } while (0) - #elif defined(HAVE_FSTAT) - #include - #include - #include - #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \ - do { \ - struct stat __statBuffer; \ - off_t __n; \ - \ - length=0; \ - \ - if ((fstat(filedescriptor,&__statBuffer)==0) && S_ISREG(__statBuffer.st_mode)) \ - { \ - __n=(lseek(filedescriptor,0,SEEK_CUR)); \ - if (__n!=-1) \ - { \ - length=TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__statBuffer.st_size-__n); \ - result=TARGET_NATIVE_OK; \ - } \ - else \ - { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } \ - else \ - { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } while (0) - #elif defined(HAVE_SELECT) - #include - #include - #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \ - do { \ - fd_set __filedescriptset; \ - struct timeval __timeval; \ - \ - length=0; \ - \ - FD_ZERO(&__filedescriptset); \ - FD_SET(filedescriptor,&__filedescriptset); \ - memset(&__timeval,0,sizeof(__timeval)); \ - switch (select(filedescriptor+1,&__filedescriptset,NULL,NULL,&__timeval)==0) \ - { \ - case -1: result=TARGET_NATIVE_ERROR; break; \ - case 0: length=JNI_JLONG_CONST_0; result=TARGET_NATIVE_OK; break; \ - default: length=JNI_JLONG_CONST_1; result=TARGET_NATIVE_OK; break; \ - } \ - } while (0) - #else - #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \ - do { \ - errno=TARGET_NATIVE_ERROR_OPERATION_NOT_PERMITTED; \ - length=0; \ - result=TARGET_NATIVE_ERROR; \ - } while (0) - #endif -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_READ|WRITE -* Purpose : read/write from/to frile -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_READ - #include - #define TARGET_NATIVE_FILE_READ(filedescriptor,buffer,length,bytesRead,result) \ - do { \ - bytesRead=read(filedescriptor,buffer,length); \ - result=(bytesRead!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif -#ifndef TARGET_NATIVE_FILE_WRITE - #include - #define TARGET_NATIVE_FILE_WRITE(filedescriptor,buffer,length,bytesWritten,result) \ - do { \ - bytesWritten=write(filedescriptor,buffer,length); \ - result=(bytesWritten!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_SET_MODE_READONLY -* Purpose : set file mode to read-only -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_SET_MODE_READONLY - #include - #include - #include - #define TARGET_NATIVE_FILE_SET_MODE_READONLY(filename,result) \ - do { \ - struct stat __statBuffer; \ - \ - if (stat(filename,&__statBuffer)==0) { \ - result=(chmod(filename,__statBuffer.st_mode & TARGET_NATIVE_FILE_FILEPERMISSION_READONLY)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } else { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_EXISTS -* Purpose : check if file exists -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_EXISTS - #include - #include - #include - #define TARGET_NATIVE_FILE_EXISTS(filename,result) \ - do { \ - struct stat __statBuffer; \ - \ - result=(stat(filename,&__statBuffer)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_IS_FILE -* Purpose : check if directory entry is a file -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_IS_FILE - #include - #include - #include - #define TARGET_NATIVE_FILE_IS_FILE(filename,result) \ - do { \ - struct stat __statBuffer; \ - \ - result=((stat(filename,&__statBuffer)==0) && (S_ISREG(__statBuffer.st_mode)))?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_IS_DIRECTORY -* Purpose : check if directory entry is a directory -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_IS_DIRECTORY - #include - #include - #include - #define TARGET_NATIVE_FILE_IS_DIRECTORY(filename,result) \ - do { \ - struct stat __statBuffer; \ - \ - result=((stat(filename,&__statBuffer)==0) && (S_ISDIR(__statBuffer.st_mode)))?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_GET_LAST_MODIFIED -* Purpose : get last modification time of file (milliseconds) -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_GET_LAST_MODIFIED - #include - #include - #include - #define TARGET_NATIVE_FILE_GET_LAST_MODIFIED(filename,time,result) \ - do { \ - struct stat __statBuffer; \ - \ - time=TARGET_NATIVE_MATH_INT_INT64_CONST_0; \ - if (stat(filename,&__statBuffer)==0) { \ - time=TARGET_NATIVE_MATH_INT_INT64_MUL(TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__statBuffer.st_mtime), \ - TARGET_NATIVE_MATH_INT_INT32_TO_INT64(1000) \ - ); \ - result=TARGET_NATIVE_OK; \ - } else { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_SET_LAST_MODIFIED -* Purpose : set last modification time of file (milliseconds) -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_SET_LAST_MODIFIED - #include - #include - #include - #ifdef HAVE_UTIME_H - #include - #elif HAVE_SYS_UTIME_H - #include - #else - #error utime.h not found. Please check configuration. - #endif - #define TARGET_NATIVE_FILE_SET_LAST_MODIFIED(filename,time,result) \ - do { \ - struct stat __statBuffer; \ - struct utimbuf __utimeBuffer; \ - \ - if (stat(filename,&__statBuffer)==0) { \ - __utimeBuffer.actime =__statBuffer.st_atime; \ - __utimeBuffer.modtime=TARGET_NATIVE_MATH_INT_INT64_TO_INT32(TARGET_NATIVE_MATH_INT_INT64_DIV(time, \ - TARGET_NATIVE_MATH_INT_INT32_TO_INT64(1000) \ - ) \ - ); \ - result=(utime(filename,&__utimeBuffer)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } else { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_DELETE -* Purpose : delete a file,link or directory -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_DELETE - #define TARGET_NATIVE_FILE_DELETE(filename,result) \ - do { \ - result=((unlink(filename)==0) || (rmdir(filename)==0))?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_RENAME -* Purpose : delete a file, link or directory -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_RENAME - #define TARGET_NATIVE_FILE_RENAME(oldfilename,newfilename,result) \ - do { \ - result=(rename(oldfilename,newfilename)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_MAKE_DIR -* Purpose : create new directory -* Input : name - directory name -* Output : result - 1 if successful, 0 otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_MAKE_DIR - #include - #define TARGET_NATIVE_FILE_MAKE_DIR(name,result) \ - do { \ - result=((mkdir(name,(S_IRWXO|S_IRWXG|S_IRWXU))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR); \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_GET_CWD -* Purpose : get current working directory -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_GET_CWD - #include - #define TARGET_NATIVE_FILE_GET_CWD(path,maxPathLength,result) \ - do {\ - result=(getcwd(path,maxPathLength)!=NULL)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_OPEN_DIR -* Purpose : open directory for reading entries. -* Input : - -* Output : handle - handle if not error, NULL otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_OPEN_DIR - #include - #include - #define TARGET_NATIVE_FILE_OPEN_DIR(filename,handle,result) \ - do { \ - handle=(void*)opendir(filename); \ - result=(handle!=NULL)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while(0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_CLOSE_DIR -* Purpose : close directory -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_CLOSE_DIR - #include - #include - #define TARGET_NATIVE_FILE_CLOSE_DIR(handle,result) \ - do { \ - closedir((DIR*)handle); \ - result=TARGET_NATIVE_OK; \ - } while(0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_READ_DIR -* Purpose : read directory entry -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -/* XXX ??? name als buffer? */ -#ifndef TARGET_NATIVE_FILE_READ_DIR - #include - #include - #define TARGET_NATIVE_FILE_READ_DIR(handle,name,result) \ - do { \ - struct dirent *__direntBuffer; \ - \ - name=NULL; \ - \ - __direntBuffer=readdir((DIR*)handle); \ - if (__direntBuffer!=NULL) { \ - name=__direntBuffer->d_name; \ - result=TARGET_NATIVE_OK; \ - } else { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FILE_FSYNC -* Purpose : do filesystem sync -* Input : - -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_FILE_FSYNC - #define TARGET_NATIVE_FILE_FSYNC(filedescriptor,result) \ - do { \ - result=(fsync(filedescriptor)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while(0) -#endif - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -} -#endif - -#endif /* __TARGET_GENERIC_FILE__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/generic/target_generic_io.h b/libjava/classpath/native/target/generic/target_generic_io.h deleted file mode 100644 index cc24915ab19..00000000000 --- a/libjava/classpath/native/target/generic/target_generic_io.h +++ /dev/null @@ -1,82 +0,0 @@ -/* generic_math_int64.h - Native methods for 64bit math operations - Copyright (C) 1998 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. */ - -/* -Description: generic target defintions of miscellaneous functions -Systems : all -*/ - -#ifndef __TARGET_GENERIC_IO__ -#define __TARGET_GENERIC_IO__ - -/* check if target_native_io.h included */ -#ifndef __TARGET_NATIVE_IO__ - #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead! -#endif - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include "config.h" - -#include -#include - -#include "target_native.h" - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __TARGET_GENERIC_IO__ */ - -/* end of file */ diff --git a/libjava/classpath/native/target/generic/target_generic_math_float.h b/libjava/classpath/native/target/generic/target_generic_math_float.h deleted file mode 100644 index e2085e08028..00000000000 --- a/libjava/classpath/native/target/generic/target_generic_math_float.h +++ /dev/null @@ -1,130 +0,0 @@ -/* generic_math_int64.h - Native methods for 64bit math operations - Copyright (C) 1998 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. */ - -/* -Description: generic target defintions of float/double constants/ - macros/functions -Systems : all -*/ - -#ifndef __TARGET_GENERIC_MATH_FLOAT__ -#define __TARGET_GENERIC_MATH_FLOAT__ - -/* check if target_native_math_float.h included */ -#ifndef __TARGET_NATIVE_MATH_FLOAT__ - #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead! -#endif - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include "config.h" - -#include -#include - -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/* test float/double values for NaN,Inf */ -#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_ISNAN - #include - #define TARGET_NATIVE_MATH_FLOAT_FLOAT_ISNAN(f) isnan(f) -#endif -#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_ISINF - #include - #define TARGET_NATIVE_MATH_FLOAT_FLOAT_ISINF(f) isinf(f) -#endif -#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_FINITE - #include - #define TARGET_NATIVE_MATH_FLOAT_FLOAT_FINITE(f) finite(f) -#endif - -#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISNAN - #include - #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISNAN(d) isnan(d) -#endif -#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISINF - #include - #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISINF(d) isinf(d) -#endif -#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_FINITE - #include - #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_FINITE(d) finite(d) -#endif - -/* division, modulo operations (used to avoid unexcepted exceptions on some - targets; generic codes are direct operations without checks) -*/ -#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_DIV - #define TARGET_NATIVE_MATH_FLOAT_FLOAT_DIV(f0,f1) ((f0)/(f1)) -#endif -#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_MOD - #include - #define TARGET_NATIVE_MATH_FLOAT_FLOAT_MOD(f0,f1) ((jfloat)fmod((jdouble)(f0),(jdouble)(f1))) -#endif - -#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_DIV - #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_DIV(d0,d1) ((d0)/(d1)) -#endif -#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_MOD - #include - #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_MOD(d0,d1) fmod(d0,d1) -#endif - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __TARGET_GENERIC_MATH_FLOAT__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/generic/target_generic_math_int.h b/libjava/classpath/native/target/generic/target_generic_math_int.h deleted file mode 100644 index c6861487efd..00000000000 --- a/libjava/classpath/native/target/generic/target_generic_math_int.h +++ /dev/null @@ -1,260 +0,0 @@ -/* generic_math_int64.h - Native methods for 64bit math operations - Copyright (C) 1998 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. */ - -/* -Description: generic target defintions of int/int64 constants/ - macros/functions -Systems : all -*/ - -#ifndef __TARGET_GENERIC_MATH_INT__ -#define __TARGET_GENERIC_MATH_INT__ - -/* check if target_native_math_int.h included */ -#ifndef __TARGET_NATIVE_MATH_INT__ - #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead! -#endif - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include "config.h" - -#include -#include - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ -#ifndef TARGET_NATIVE_MATH_INT_INT64_CONST_0 - #define TARGET_NATIVE_MATH_INT_INT64_CONST_0 0LL -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_CONST_1 - #define TARGET_NATIVE_MATH_INT_INT64_CONST_1 1LL -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1 - #define TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1 -1LL -#endif - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/* math operations */ -#ifndef TARGET_NATIVE_MATH_INT_INT64_ADD - #define TARGET_NATIVE_MATH_INT_INT64_ADD(v1,v2) ((v1)+(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_SUB - #define TARGET_NATIVE_MATH_INT_INT64_SUB(v1,v2) ((v1)-(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_MUL - #define TARGET_NATIVE_MATH_INT_INT64_MUL(v1,v2) ((v1)*(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_DIV - #define TARGET_NATIVE_MATH_INT_INT64_DIV(v1,v2) ((v1)/(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_MOD - #define TARGET_NATIVE_MATH_INT_INT64_MOD(v1,v2) ((v1)%(v2)) -#endif - -#ifndef TARGET_NATIVE_MATH_INT_UINT64_ADD - #define TARGET_NATIVE_MATH_INT_UINT64_ADD(v1,v2) ((v1)+(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_SUB - #define TARGET_NATIVE_MATH_INT_UINT64_SUB(v1,v2) ((v1)-(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_MUL - #define TARGET_NATIVE_MATH_INT_UINT64_MUL(v1,v2) ((v1)*(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_DIV - #define TARGET_NATIVE_MATH_INT_UINT64_DIV(v1,v2) ((v1)/(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_MOD - #define TARGET_NATIVE_MATH_INT_UINT64_MOD(v1,v2) ((v1)%(v2)) -#endif - -/* bit operations */ -#ifndef TARGET_NATIVE_MATH_INT_INT64_AND - #define TARGET_NATIVE_MATH_INT_INT64_AND(v1,v2) ((v1)&(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_OR - #define TARGET_NATIVE_MATH_INT_INT64_OR(v1,v2) ((v1)|(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_XOR - #define TARGET_NATIVE_MATH_INT_INT64_XOR(v1,v2) ((v1)^(v2)) -#endif - -#ifndef TARGET_NATIVE_MATH_INT_UINT64_AND - #define TARGET_NATIVE_MATH_INT_UINT64_AND(v1,v2) ((v1)&(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_OR - #define TARGET_NATIVE_MATH_INT_UINT64_OR(v1,v2) ((v1)|(v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_XOR - #define TARGET_NATIVE_MATH_INT_UINT64_XOR(v1,v2) ((v1)^(v2)) -#endif - -/* shift operations */ -#ifndef TARGET_NATIVE_MATH_INT_INT64_SHIFTL - #define TARGET_NATIVE_MATH_INT_INT64_SHIFTL(v,l) ((v)<<(l)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_SHIFTR - #define TARGET_NATIVE_MATH_INT_INT64_SHIFTR(v,l) (((v)>>(l)) | (((v)>=0) ? 0 : (0xffffFFFFffffFFFFLL << (64-(l))))) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_SHIFTR - #define TARGET_NATIVE_MATH_INT_UINT64_SHIFTR(v,l) (((v)>>(l)) & ~(((v)>=0) ? 0 : (0xffffFFFFffffFFFFLL << (64-(l))))) -#endif - -/* negation */ -#ifndef TARGET_NATIVE_MATH_INT_INT64_NEG - #define TARGET_NATIVE_MATH_INT_INT64_NEG(v) (-(v)) -#endif - -/* increment/decrement routines */ -#ifndef TARGET_NATIVE_MATH_INT_INT64_INC - #define TARGET_NATIVE_MATH_INT_INT64_INC(v) { v++; } -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_DEC - #define TARGET_NATIVE_MATH_INT_INT64_DEC(v) { v--; } -#endif - -#ifndef TARGET_NATIVE_MATH_INT_UINT64_INC - #define TARGET_NATIVE_MATH_INT_UINT64_INC(v) { v++; } -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_DEC - #define TARGET_NATIVE_MATH_INT_UINT64_DEC(v) { v--; } -#endif - -/* comparison routines */ -#ifndef TARGET_NATIVE_MATH_INT_INT64_EQ - #define TARGET_NATIVE_MATH_INT_INT64_EQ(v1,v2) ((v1) == (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_NE - #define TARGET_NATIVE_MATH_INT_INT64_NE(v1,v2) ((v1) != (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_LT - #define TARGET_NATIVE_MATH_INT_INT64_LT(v1,v2) ((v1) < (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_LE - #define TARGET_NATIVE_MATH_INT_INT64_LE(v1,v2) ((v1) <= (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_GT - #define TARGET_NATIVE_MATH_INT_INT64_GT(v1,v2) ((v1) > (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_GE - #define TARGET_NATIVE_MATH_INT_INT64_GE(v1,v2) ((v1) >= (v2)) -#endif - -#ifndef TARGET_NATIVE_MATH_INT_UINT64_EQ - #define TARGET_NATIVE_MATH_INT_UINT64_EQ(v1,v2) ((v1) == (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_NE - #define TARGET_NATIVE_MATH_INT_UINT64_NE(v1,v2) ((v1) != (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_LT - #define TARGET_NATIVE_MATH_INT_UINT64_LT(v1,v2) ((v1) < (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_LE - #define TARGET_NATIVE_MATH_INT_UINT64_LE(v1,v2) ((v1) <= (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_GT - #define TARGET_NATIVE_MATH_INT_UINT64_GT(v1,v2) ((v1) > (v2)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_GE - #define TARGET_NATIVE_MATH_INT_UINT64_GE(v1,v2) ((v1) >= (v2)) -#endif - -/* type conversion routines */ -#ifndef TARGET_NATIVE_MATH_INT_INT32_TO_INT64 - #define TARGET_NATIVE_MATH_INT_INT32_TO_INT64(v) ((jlong)(v)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT32_TO_UINT64 - #define TARGET_NATIVE_MATH_INT_UINT32_TO_UINT64(v) ((jlong)(v)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_TO_INT32 - #define TARGET_NATIVE_MATH_INT_INT64_TO_INT32(v) ((jint )(v)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32 - #define TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32(v) ((jint)(v)) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_TO_DOUBLE - #define TARGET_NATIVE_MATH_INT_INT64_TO_DOUBLE(v) ((jdouble)(v)) -#endif - -/* combine/split int32 low/high values <-> int64 values */ -#ifndef TARGET_NATIVE_MATH_INT_INT32_LOW_HIGH_TO_INT64 - #define TARGET_NATIVE_MATH_INT_INT32_LOW_HIGH_TO_INT64(low,high,v) \ - do { \ - (v)=((((jlong)(high)) << 32) | ((((jlong)(low)) << 0) & 0x00000000ffffFFFFLL)); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT32_LOW_HIGH_TO_UINT64 - #define TARGET_NATIVE_MATH_INT_UINT32_LOW_HIGH_TO_UINT64(low,high,v) \ - do { \ - (v)=((((jlong)(high)) << 32) | ((((jlong)(low)) << 0) & 0x00000000ffffFFFFLL)); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MATH_INT_INT64_TO_INT32_LOW_HIGH - #define TARGET_NATIVE_MATH_INT_INT64_TO_INT32_LOW_HIGH(v,low,high) \ - do { \ - (high)=((v) & 0xFFFFffff00000000L) >> 32; \ - (low) =((v) & 0x00000000FFFFffffL) >> 0; \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32_LOW_HIGH - #define TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32_LOW_HIGH(v,low,high) \ - do { \ - (high)=((v) & 0xFFFFffff00000000L) >> 32; \ - (low) =((v) & 0x00000000FFFFffffL) >> 0; \ - } while (0) -#endif - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __TARGET_GENERIC_MATH_INT__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/generic/target_generic_misc.h b/libjava/classpath/native/target/generic/target_generic_misc.h deleted file mode 100644 index d51be15a849..00000000000 --- a/libjava/classpath/native/target/generic/target_generic_misc.h +++ /dev/null @@ -1,203 +0,0 @@ -/* generic_math_int64.h - Native methods for 64bit math operations - Copyright (C) 1998 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. */ - -/* -Description: generic target defintions of miscellaneous functions -Systems : all -*/ - -#ifndef __TARGET_GENERIC_MISC__ -#define __TARGET_GENERIC_MISC__ - -/* check if target_native_misc.h included */ -#ifndef __TARGET_NATIVE_MISC__ - #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead! -#endif - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include "config.h" - -#include -#include - -#include "target_native.h" - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***********************************************************************\ -* Name : TARGET_NATIVE_MISC_FORMAT_STRING -* Purpose : format a string (with a fixed number of) arguments -* Input : buffer - buffer for string -* bufferSize - size of buffer -* format - format string (like printf) -* args - optional arguments (GNU CPP only!) -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - this is a "safe" macro to format string; buffer- -* overflows will be avoided. Direct usage of e. g. -* snprintf() is not permitted because it is not ANSI C -* (not portable!) -* - do not use this routine in a function without -* variable number of arguments (ellipses), because -* va_list/va_start/va_end is used! -\***********************************************************************/ - -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING0 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING0(buffer,bufferSize,format) \ - do { \ - snprintf(buffer,bufferSize, "%s", format); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING1 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING1(buffer,bufferSize,format,arg1) \ - do { \ - snprintf(buffer,bufferSize,format,arg1); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING2 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING2(buffer,bufferSize,format,arg1,arg2) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING3 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING3(buffer,bufferSize,format,arg1,arg2,arg3) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2,arg3); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING4 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING4(buffer,bufferSize,format,arg1,arg2,arg3,arg4) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING5 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING5(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING6 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING6(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING7 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING7(buffer,bufferSize,format,arg1,arg2,arg3,arg14,arg5,arg6,arg7) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING8 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING8(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); \ - } while (0) -#endif -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING9 - #include - #define TARGET_NATIVE_MISC_FORMAT_STRING9(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) \ - do { \ - snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_FORMAT_STRING_ELLIPSE -* Purpose : format a string with arguments -* Input : buffer - buffer for string -* bufferSize - size of buffer -* format - format string (like printf) -* Output : - -* Return : - -* Side-effect: unknown -* Notes : - this is a "safe" macro to format string; buffer- -* overflows will be avoided. Direct usage of e. g. -* snprintf() is not permitted because it is not ANSI C -* (not portable!) -* - do not use this routine in a function without -* variable number of arguments (ellipses), because -* va_list/va_start/va_end is used! -\***********************************************************************/ - -#ifndef TARGET_NATIVE_MISC_FORMAT_STRING_ELLIPSE - #include - #define TARGET_NATIVE_FORMAT_STRING_ELLIPSE(buffer,bufferSize,format) \ - do { \ - va_list __arguments; \ - \ - va_start(__arguments,format); \ - vsnprintf(buffer,bufferSize,format,__arguments); \ - va_end(__arguments); \ - } while (0) -#endif - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __TARGET_GENERIC_MISC__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/generic/target_generic_network.h b/libjava/classpath/native/target/generic/target_generic_network.h deleted file mode 100644 index 99bb5d76525..00000000000 --- a/libjava/classpath/native/target/generic/target_generic_network.h +++ /dev/null @@ -1,1289 +0,0 @@ -/* target_generic_network.h - Native methods for network operations. - Copyright (C) 1998, 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. */ - -/* -Description: generic target defintions of network functions -Systems : all -*/ - -#ifndef __TARGET_GENERIC_NETWORK__ -#define __TARGET_GENERIC_NETWORK__ - -/* check if target_native_network.h included */ -#ifndef __TARGET_NATIVE_NETWORK__ - #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead! -#endif - -/****************************** Includes *******************************/ -/* do not move; needed here because of some macro definitions */ -#include "config.h" - -#include - -#include "target_native.h" - -/****************** Conditional compilation switches *******************/ - -/***************************** Constants *******************************/ - -/***************************** Datatypes *******************************/ - -/***************************** Variables *******************************/ - -/****************************** Macros *********************************/ - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT -* Purpose : convert IP adddress (4 parts) into integer (host-format -* 32bit) -* Input : n0,n1,n2,n3 - IP address parts -* Output : i - integer with IP address in host-format -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT - #define TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT(n0,n1,n2,n3,i) \ - do { \ - i=(((unsigned char)n0) << 24) | \ - (((unsigned char)n1) << 16) | \ - (((unsigned char)n2) << 8) | \ - (((unsigned char)n3) << 0); \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES -* Purpose : convert IP adddress (4 parts) into integer (host-format -* 32bit) -* Input : n0,n1,n2,n3 - IP address parts -* Output : i - integer with IP address in host-format -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES - #define TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES(i,n0,n1,n2,n3) \ - do { \ - n0=(i & 0xFF000000) >> 24; \ - n1=(i & 0x00FF0000) >> 16; \ - n2=(i & 0x0000FF00) >> 8; \ - n3=(i & 0x000000FF) >> 0; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_GET_HOSTNAME -* Purpose : get hostname -* Input : maxNameLen - max. length of name -* Output : name - name (NUL terminated) -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_GET_HOSTNAME - #include - #define TARGET_NATIVE_NETWORK_GET_HOSTNAME(name,maxNameLen,result) \ - do { \ - result=(gethostname(name,maxNameLen-1)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - name[maxNameLen-1]='\0'; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_ADDRESS -* Purpose : get hostname by address -* Input : address - IP address (32bit, NOT network byte order!) -* maxNameLen - max. length of name -* Output : name - name (NUL terminated) -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -/* XXX NYI??? reentrant? */ -#ifndef TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_ADDRESS - #include - #define TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_ADDRESS(address,name,maxNameLen,result) \ - do { \ - int __networkAddress; \ - struct hostent *__hostEntry; \ - \ - __networkAddress=htonl(address); \ - __hostEntry = gethostbyaddr((char*)&__networkAddress,sizeof(__networkAddress),AF_INET); \ - if (__hostEntry!=NULL) \ - { \ - strncpy(name,__hostEntry->h_name,maxNameLen-1); \ - name[maxNameLen]='\0'; \ - result=TARGET_NATIVE_OK; \ - } \ - else \ - { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_NAME -* Purpose : get hostname by name -* Input : name - hostname -* maxAddressSize - max. size of address array -* Output : addresses - host adddresses (array, NOT in network -* byte order!) -* addressCount - number of entries in address array -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -/* XXX NYI??? reentrant? */ -#ifndef TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_NAME - #include - #define TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_NAME(name,addresses,maxAddressSize,addressCount,result) \ - do { \ - struct hostent *__hostEntry; \ - \ - addressCount=0; \ - \ - __hostEntry = gethostbyname(name); \ - if (__hostEntry!=NULL) \ - { \ - while ((addressCounth_addr_list[addressCount]!=NULL)) \ - { \ - addresses[addressCount]=ntohl(*(int*)(__hostEntry->h_addr_list[addressCount])); \ - addressCount++; \ - } \ - result=TARGET_NATIVE_OK; \ - } \ - else \ - { \ - result=TARGET_NATIVE_ERROR; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_OPEN_STREAM -* Purpose : open stream socket -* Input : - -* Output : socketDescriptor - socket descriptor -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_OPEN_STREAM - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_OPEN_STREAM(socketDescriptor,result) \ - do { \ - socketDescriptor=socket(AF_INET,SOCK_STREAM,0); \ - fcntl(socketDescriptor,F_SETFD,FD_CLOEXEC); \ - result=(socketDescriptor!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_OPEN_DATAGRAM -* Purpose : open datagram socket -* Input : - -* Output : socketDescriptor - socket descriptor -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_OPEN_DATAGRAM - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_OPEN_DATAGRAM(socketDescriptor,result) \ - do { \ - socketDescriptor=socket(AF_INET,SOCK_DGRAM,0); \ - fcntl(socketDescriptor,F_SETFD,FD_CLOEXEC); \ - result=(socketDescriptor!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_CLOSE -* Purpose : close socket -* Input : socketDescriptor - socket descriptor -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_CLOSE - #include - #define TARGET_NATIVE_NETWORK_SOCKET_CLOSE(socketDescriptor,result) \ - do { \ - result=(close(socketDescriptor)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_CONNECT -* Purpose : connect socket -* Input : socketDescriptor - socket descriptor -* address - address (network format???) -* port - port number (NOT in network byte order!) -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_CONNECT - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_CONNECT(socketDescriptor,address,port,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddress.sin_family = AF_INET; \ - __socketAddress.sin_addr.s_addr = htonl(address); \ - __socketAddress.sin_port = htons(((short)port)); \ - \ - result=(connect(socketDescriptor,(struct sockaddr*)&__socketAddress,sizeof(__socketAddress))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_BIND -* Purpose : bind socket -* Input : socketDescriptor - socket descriptor -* address - address (NOT ??? in network byte order!) -* port - port (NOT in network byte order!) -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -/* XXX ??? address in network byte order? */ -#ifndef TARGET_NATIVE_NETWORK_SOCKET_BIND - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_BIND(socketDescriptor,address,port,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddress.sin_family = AF_INET; \ - __socketAddress.sin_addr.s_addr = htonl(address); \ - __socketAddress.sin_port = htons(((short)port)); \ - \ - result=(bind(socketDescriptor,(struct sockaddr*)&__socketAddress,sizeof(__socketAddress))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_LISTEN -* Purpose : listen socket -* Input : socketDescriptor - socket descriptor -* maxQueueLength - max. number of pending connections -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -/* XXX ??? address in network byte order? */ -#ifndef TARGET_NATIVE_NETWORK_SOCKET_LISTEN - #include - #define TARGET_NATIVE_NETWORK_SOCKET_LISTEN(socketDescriptor,maxQueueLength,result) \ - do { \ - result=(listen(socketDescriptor,maxQueueLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_ACCEPT -* Purpose : accept socket -* Input : socketDescriptor - socket descriptor -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -/* XXX ??? address in network byte order? */ -#ifndef TARGET_NATIVE_NETWORK_SOCKET_ACCEPT - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_ACCEPT(socketDescriptor,newSocketDescriptor,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - socklen_t __socketAddressLength; \ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddressLength=sizeof(__socketAddress); \ - newSocketDescriptor=accept(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength); \ - result=(newSocketDescriptor!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO -* Purpose : get local socket data info -* Input : socketDescriptor - socket descriptor -* Output : localAddress - local address (NOT in network byte order!) -* localPort - local port number (NOT in network byte order!) -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO(socketDescriptor,localAddress,localPort,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - socklen_t __socketAddressLength; \ - \ - localAddress=0; \ - localPort =0; \ - \ - __socketAddressLength=sizeof(__socketAddress); \ - result=(getsockname(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - localAddress=ntohl(__socketAddress.sin_addr.s_addr); \ - localPort =ntohs(__socketAddress.sin_port); \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO -* Purpose : get remote socket data info -* Input : socketDescriptor - socket descriptor -* Output : remoteAddress - remote address (NOT in network byte order!) -* remotePort - remote port number (NOT in network byte order!) -* : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO(socketDescriptor,remoteAddress,remotePort,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - socklen_t __socketAddressLength; \ - \ - remoteAddress=0; \ - remotePort =0; \ - \ - __socketAddressLength=sizeof(__socketAddress); \ - result=(getpeername(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - remoteAddress=ntohl(__socketAddress.sin_addr.s_addr); \ - remotePort =ntohs(__socketAddress.sin_port); \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE -* Purpose : get number of available bytes for receive -* Input : socketDescriptor - socket descriptor -* Output : bytesAvailable - available bytes for receive -* : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE - #include - #define TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE(socketDescriptor,bytesAvailable,result) \ - do { \ - int __value; \ - \ - bytesAvailable=0; \ - \ - result=(ioctl(socketDescriptor,FIONREAD,&__value)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - bytesAvailable=__value; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_RECEIVE -* Purpose : receive data from socket -* Input : socketDescriptor - socket descriptor -* maxLength - max. size of bfufer -* Output : buffer - received data -* bytesReceive - length of received data -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_RECEIVE - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_RECEIVE(socketDescriptor,buffer,maxLength,bytesReceived) \ - do { \ - struct sockaddr_in __socketAddress; \ - socklen_t __socketAddressLength; \ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddressLength=sizeof(__socketAddress); \ - bytesReceived=recv(socketDescriptor,buffer,maxLength,0); \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_WITH_ADDRESS_PORT -* Purpose : receive data from socket -* Input : socketDescriptor - socket descriptor -* maxLength - max. size of bfufer -* Output : buffer - received data -* address - from address (NOT in network byte order!) -* port - from port (NOT in network byte order!) -* bytesReceive - length of received data -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_WITH_ADDRESS_PORT - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_WITH_ADDRESS_PORT(socketDescriptor,buffer,maxLength,address,port,bytesReceived) \ - do { \ - struct sockaddr_in __socketAddress; \ - socklen_t __socketAddressLength; \ - \ - port=0; \ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddressLength=sizeof(__socketAddress); \ - bytesReceived=recvfrom(socketDescriptor,buffer,maxLength,0,(struct sockaddr*)&__socketAddress,&__socketAddressLength); \ - if (__socketAddressLength==sizeof(__socketAddress)) \ - { \ - address=ntohl(__socketAddress.sin_addr.s_addr); \ - port =ntohs(__socketAddress.sin_port); \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SEND -* Purpose : send data to socket -* Input : socketDescriptor - socket descriptor -* : buffer - data to send -* length - length of data to send -* Output : bytesSent - number of bytes sent, -1 otherwise -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SEND - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SEND(socketDescriptor,buffer,length,bytesSent) \ - do { \ - bytesSent=send(socketDescriptor,buffer,length,0); \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SEND_WITH_ADDRESS_PORT -* Purpose : send data to socket -* Input : socketDescriptor - socket descriptor -* : buffer - data to send -* length - length of data to send -* Address - to address (NOT in network byte order!) -* Port - to port (NOT in network byte order!) -* Output : bytesSent - number of bytes sent, -1 otherwise -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SEND_WITH_ADDRESS_PORT - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SEND_WITH_ADDRESS_PORT(socketDescriptor,buffer,length,address,port,bytesSent) \ - do { \ - struct sockaddr_in __socketAddress; \ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddress.sin_family = AF_INET; \ - __socketAddress.sin_addr.s_addr = htonl(address); \ - __socketAddress.sin_port = htons((short)port); \ - bytesSent=sendto(socketDescriptor,buffer,length,0,(struct sockaddr*)&__socketAddress,sizeof(__socketAddress)); \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_TCP_NODELAY -* Purpose : set socket option TCP_NODELAY -* Input : socketDescriptor - socket descriptor -* flag - 1 or 0 -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_TCP_NODELAY - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_TCP_NODELAY(socketDescriptor,flag,result) \ - do { \ - int __value; \ - \ - __value=flag; \ - result=(setsockopt(socketDescriptor,IPPROTO_TCP,TCP_NODELAY,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER -* Purpose : set socket option SO_LINGER -* Input : socketDescriptor - socket descriptor -* flag - 1 or 0 -* value - linger value -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER(socketDescriptor,flag,value,result) \ - do { \ - struct linger __linger; \ - \ - memset(&__linger,0,sizeof(__linger)); \ - if (flag) \ - { \ - __linger.l_onoff=0; \ - } \ - else \ - { \ - __linger.l_linger=value; \ - __linger.l_onoff =1; \ - } \ - result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_LINGER,&__linger,sizeof(__linger))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT -* Purpose : set socket option SO_TIMEOUT -* Input : socketDescriptor - socket descriptor -* flag - 1 or 0 -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT - #include - #include -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT(socketDescriptor,flag,result) \ - do { \ - struct timeval __value; \ - \ - __value.tv_sec = flag / 1000; \ - __value.tv_usec = (flag % 1000) * 1000; \ - result = ( (setsockopt(socketDescriptor, SOL_SOCKET, SO_SNDTIMEO, &__value, sizeof(__value)) | \ - setsockopt(socketDescriptor, SOL_SOCKET, SO_RCVTIMEO, &__value, sizeof(__value))) == 0) ? TARGET_NATIVE_OK : TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_SNDBUF -* Purpose : set socket option SO_SNDBUF -* Input : socketDescriptor - socket descriptor -* size - size of send buffer -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_SNDBUF - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_SNDBUF(socketDescriptor,size,result) \ - do { \ - int __value; \ - \ - __value=size; \ - result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_SNDBUF,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_RCDBUF -* Purpose : set socket option SO_RCDBUF -* Input : socketDescriptor - socket descriptor -* size - size of receive buffer -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_RCDBUF - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_RCDBUF(socketDescriptor,size,result) \ - do { \ - int __value; \ - \ - __value=size; \ - result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_RCVBUF,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_TTL -* Purpose : set socket option IP_TTL -* Input : socketDescriptor - socket descriptor -* value - value -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_TTL - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_TTL(socketDescriptor,value,result) \ - do { \ - int __value; \ - \ - __value=value; \ - result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_TTL,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_MULTICAST_IF -* Purpose : set socket option IP_MULTICAST_IF -* Input : socketDescriptor - socket descriptor -* address - integer with IP address in host-format -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_MULTICAST_IF - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_MULTICAST_IF(socketDescriptor,address,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddress.sin_family = AF_INET; \ - __socketAddress.sin_addr.s_addr = htonl(address); \ - result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_MULTICAST_IF,&__socketAddress,sizeof(__socketAddress))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_REUSE_ADDRESS -* Purpose : set socket option REUSE_ADDRESS -* Input : socketDescriptor - socket descriptor -* flag - 1 or 0 -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_REUSE_ADDRESS - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_REUSE_ADDRESS(socketDescriptor,flag,result) \ - do { \ - int __value; \ - \ - __value=flag; \ - result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_REUSEADDR,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP -* Purpose : set socket option IP_ADD_MEMBERSHIP -* Input : socketDescriptor - socket descriptor -* address - network address (host-format) -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP(socketDescriptor,address,result) \ - do { \ - struct ip_mreq __request; \ - \ - memset(&__request,0,sizeof(__request)); \ - __request.imr_multiaddr.s_addr=htonl(address); \ - __request.imr_interface.s_addr=INADDR_ANY; \ - result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_ADD_MEMBERSHIP,&__request,sizeof(__request))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP -* Purpose : set socket option IP_DROP_MEMBERSHIP -* Input : socketDescriptor - socket descriptor -* address - network address (host-format) -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP(socketDescriptor,address,result) \ - do { \ - struct ip_mreq __request; \ - \ - memset(&__request,0,sizeof(__request)); \ - __request.imr_multiaddr.s_addr=htonl(address); \ - __request.imr_interface.s_addr=INADDR_ANY; \ - result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_DROP_MEMBERSHIP,&__request,sizeof(__request))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_KEEP_ALIVE -* Purpose : set socket option KEEP_ALIVE -* Input : socketDescriptor - socket descriptor -* flag - 1 or 0 -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_KEEP_ALIVE - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_KEEP_ALIVE(socketDescriptor,flag,result) \ - do { \ - int __value; \ - \ - __value=flag; \ - result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_KEEPALIVE,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_BROADCAST -* Purpose : set socket option SO_BROADCAST -* Input : socketDescriptor - socket descriptor -* flag - 1 or 0 -* Output : result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_BROADCAST - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_BROADCAST(socketDescriptor,flag,result) \ - do { \ - int __value; \ - \ - __value=flag; \ - result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_BROADCAST,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - } while (0) -#endif - -/*---------------------------------------------------------------------*/ - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_TCP_NODELAY -* Purpose : get socket option TCP_NODELAY -* Input : socketDescriptor - socket descriptor -* Output : flag - 1 or 0 -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_TCP_NODELAY - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_TCP_NODELAY(socketDescriptor,flag,result) \ - do { \ - int __value; \ - socklen_t __len; \ - \ - flag=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,IPPROTO_TCP,TCP_NODELAY,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - flag=__value; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_LINGER -* Purpose : get socket option SO_LINGER -* Input : socketDescriptor - socket descriptor -* Output : flag - 1 or 0 -* value - linger value -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_LINGER - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_LINGER(socketDescriptor,flag,value,result) \ - do { \ - struct linger __linger; \ - socklen_t __len; \ - \ - flag =0; \ - value=0; \ - \ - __len=sizeof(__linger); \ - result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_LINGER,&__linger,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - flag =__linger.l_onoff; \ - value=__linger.l_linger; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT -* Purpose : get socket option SO_TIMEOUT -* Input : socketDescriptor - socket descriptor -* Output : flag - 1 or 0 -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT(socketDescriptor,flag,result) \ - do { \ - struct timeval __value; \ - socklen_t __len; \ - \ - flag=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_TIMEOUT,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - flag = (__value.tv_sec * 1000LL) + (__value.tv_usec / 1000LL); \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_SNDBUF -* Purpose : get socket option SO_SNDBUF -* Input : socketDescriptor - socket descriptor -* Output : size - size of send buffer -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_SNDBUF - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_SNDBUF(socketDescriptor,size,result) \ - do { \ - int __value; \ - socklen_t __len; \ - \ - size=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_SNDBUF,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - size=__value; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_RCDBUF -* Purpose : get socket option SO_RCDBUF -* Input : socketDescriptor - socket descriptor -* Output : size - size of receive buffer -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_RCDBUF - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_RCDBUF(socketDescriptor,size,result) \ - do { \ - int __value; \ - socklen_t __len; \ - \ - size=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_RCVBUF,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - size=__value; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_TTL -* Purpose : get socket option IP_TTL -* Input : socketDescriptor - socket descriptor -* Output : flag - 1 or 0 -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_TTL - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_TTL(socketDescriptor,flag,result) \ - do { \ - int __value; \ - socklen_t __len; \ - \ - flag=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,IPPROTO_IP,IP_TTL,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - flag=__value; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_MULTICAST_IF -* Purpose : get socket option IP_MULTICAST_IF -* Input : socketDescriptor - socket descriptor -* Output : address - integer with IP address in host-format -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_MULTICAST_IF - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_MULTICAST_IF(socketDescriptor,address,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - socklen_t __socketAddressLength; \ - \ - address=0;\ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddress.sin_family = AF_INET; \ - __socketAddress.sin_addr.s_addr = htonl(address); \ - __socketAddressLength=sizeof(__socketAddress); \ - result=(getsockopt(socketDescriptor,IPPROTO_IP,IP_MULTICAST_IF,&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - address=ntohl(__socketAddress.sin_addr.s_addr); \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BIND_ADDRESS -* Purpose : get socket option SOCKOPT_SO_BINDADDR -* Input : socketDescriptor - socket descriptor -* Output : address - integer with IP address in host-format -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BIND_ADDRESS - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BIND_ADDRESS(socketDescriptor,address,result) \ - do { \ - struct sockaddr_in __socketAddress; \ - socklen_t __socketAddressLength; \ - \ - address=0;\ - \ - memset(&__socketAddress,0,sizeof(__socketAddress)); \ - __socketAddressLength=sizeof(__socketAddress); \ - result=(getsockname(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - address=ntohl(__socketAddress.sin_addr.s_addr); \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_REUSE_ADDRESS -* Purpose : get socket option REUSE_ADDRESS -* Input : socketDescriptor - socket descriptor -* Output : flag - 1 or 0 -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_REUSE_ADDRESS - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_REUSE_ADDRESS(socketDescriptor,flag,result) \ - do { \ - int __value; \ - socklen_t __len; \ - \ - flag=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_REUSEADDR,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - flag=__value; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_KEEP_ALIVE -* Purpose : get socket option KEEP_ALIVE -* Input : socketDescriptor - socket descriptor -* Output : flag - 1 or 0 -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_KEEP_ALIVE - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_KEEP_ALIVE(socketDescriptor,flag,result) \ - do { \ - int __value; \ - socklen_t __len; \ - \ - flag=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_KEEPALIVE,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - flag=__value; \ - } \ - } while (0) -#endif - -/***********************************************************************\ -* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BROADCAST -* Purpose : get socket option SO_BROADCAST -* Input : socketDescriptor - socket descriptor -* Output : flag - 1 or 0 -* result - TARGET_NATIVE_OK if no error occurred, -* TARGET_NATIVE_ERROR otherwise -* Return : - -* Side-effect: unknown -* Notes : - -\***********************************************************************/ - -#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BROADCAST - #include - #include - #include - #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BROADCAST(socketDescriptor,flag,result) \ - do { \ - int __value; \ - socklen_t __len; \ - \ - flag=0; \ - \ - __len=sizeof(__value); \ - result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_BROADCAST,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \ - if (result==TARGET_NATIVE_OK) \ - { \ - flag=__value; \ - } \ - } while (0) -#endif - -/***************************** Functions *******************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __TARGET_GENERIC_NETWORK__ */ - -/* end of file */ - diff --git a/libjava/classpath/native/target/readme.txt b/libjava/classpath/native/target/readme.txt deleted file mode 100644 index 6fee79eba63..00000000000 --- a/libjava/classpath/native/target/readme.txt +++ /dev/null @@ -1,149 +0,0 @@ -The GNU classpath native layer -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To enable GNU classpath to run on a diverse array of different hardware -platforms, a new native software layer has been added. This layer hide all -machine and hardware dependent issues except common available definitions, -which are ANSI C functions. For each targets system where the GNU classpath -library is to be used, a specific set of native layer functions have to be -provided. A generic set of functions is provided for Unix like systems -(currently tested only with Linux). For a new target system, some or -all native layer functions have to be rewritten. The following scheme -illustrate the native layer. - - Java API - ---------------------- - | Java classes | - | -------------------- | - | C native functions | - | -------------------- | - >> | C native layer | << - | -------------------- | - | operating system | - | -------------------- | - | hardware | - ---------------------- - -The C native layer is implemented as a set of C pre-processor native macros. -These macros expand to the appropriated native code. Macros are used -instead function calls to give optimal performance and small code size. -Of course in special cases, a macro can also expand to a function call -if this is needed. This approach provide a flexible and efficient -implementation of the native layer. - -The naming pattern for native macros is like follows: - - TARGET_NATIVE__ - -where is a name of a module, e. g. FILE; is -the name of the specific native macro, e. g. OPEN_READ. - -The parameters for the macro use in general (with a few exceptions) the -scheme - - ,,..., - -where is input/output parameter and is the result -code TARGET_NATIVE_OK or TARGET_NATIVE_ERROR. Specific error codes -and error strings can be gotten with - - TARGET_NATIVE_LAST_ERROR and - TARGET_NATIVE_LAST_ERROR_STRING - -(see also file target_generic.h). - -For a single target system there exists two sets of native macros in -the files - - a) /target_native_.h - b) generic/target_generic_.h - -The macros in "a" are target specific implementations of native -functions, the macros in "b" are generic implementations (for Unix) of -the same native functions. If a native macro is not defined in the file -"a", then the definition in file "b" is used (there is a check to see if -a native macros is already defined elsewhere). This technique enables -"a" to 'overwrite' single generic native macros with specific native -macros for a specific target. In the default case, where only the -generic implementation of the native macros is used, the files in the -directory '' are empty except for the mandatory include of the -generic header file in the directory 'generic' at the end. Please -look at the existing Linux target specific files. - -The directory and file structure is as follows. - - native - ... - | - |--- target - | | - | |--- Linux - | | |--- target_native_.h - | | |--- ... - | | ... - | |--- ... - | |--- generic - | | |--- target_generic_.h - | | |--- ... - ... ... ... - - -Include hierarchy is as follows. - - native file - --> include 'target_native_.h' - ... - - ... - --> include 'target_generic_.h' - ... - - ... - -When writing native code, please take care with the following. - - - Use _only_ ANSI C specific functions directly which are available - on all target systems with the same parameters, e. g. strdup() is - not an ANSI C function, thus is is not available on all systems; mkdir() - expect on some systems different parameters. - - !!!Do NOT use this functions in your native code!!! - - Instead - - * if a function is not available, create a native macro in the file - - /target_native_.h - - * if it is a generic function, include a generic implementation in - - generic/target_generic_.h - - * Then use this macro in your native code. - - - Avoid _all_ OS specific data types and constants, e. g. structures or error - numbers. Instead, wrap them in a native macro and convert the values to - basic scalar types like char, int, double or long. - - - Take care with 64 bit values; the are machine dependent. Not all - target system support 64 bit operations. The macros in - target_generic_math_int.h give a set of macros implementing 64 bit - operations and constants. - - - Avoid - if possible - non-reentrant functions. Non-reentrant functions - cause strange problems on some multitasking systems. - - - Avoid - if possible - dynamic data types created by malloc() and similar - functions. Instead use (local) static variables to avoid stack usage. - On some target systems, dynamic memory management is either slow or even - dangerous. Moreover malloc()-calls can cause fragmentation of the system - memory, which could result in a system crash or an application failure. - -For some examples, please look in the current implementation for -Linux in the directory 'target/Linux' and the generic implementation in -the directory 'target/generic'. - - - aicas GmbH, February 2003 - - diff --git a/libjava/classpath/org/omg/CORBA/AnyHolder.java b/libjava/classpath/org/omg/CORBA/AnyHolder.java index 10f828aabe5..c24855480c7 100644 --- a/libjava/classpath/org/omg/CORBA/AnyHolder.java +++ b/libjava/classpath/org/omg/CORBA/AnyHolder.java @@ -1,5 +1,5 @@ /* AnyHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -83,7 +83,7 @@ public final class AnyHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For {@link Any}, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_any}. @@ -105,7 +105,7 @@ public final class AnyHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For {@link Any} the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_any(Any) }. diff --git a/libjava/classpath/org/omg/CORBA/AnySeqHelper.java b/libjava/classpath/org/omg/CORBA/AnySeqHelper.java index 8ebae7a193f..d06e5b8545e 100644 --- a/libjava/classpath/org/omg/CORBA/AnySeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/AnySeqHelper.java @@ -1,5 +1,5 @@ /* AnySeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/AnySeqHolder.java b/libjava/classpath/org/omg/CORBA/AnySeqHolder.java index b18a1457b15..0d21ed3bba9 100644 --- a/libjava/classpath/org/omg/CORBA/AnySeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/AnySeqHolder.java @@ -1,5 +1,5 @@ /* AnySeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -83,7 +83,7 @@ public final class AnySeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA longand then all Any's. * @@ -109,7 +109,7 @@ public final class AnySeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long and then all Any's. * diff --git a/libjava/classpath/org/omg/CORBA/BooleanHolder.java b/libjava/classpath/org/omg/CORBA/BooleanHolder.java index 73cfeb29613..a5b7bd8bc9e 100644 --- a/libjava/classpath/org/omg/CORBA/BooleanHolder.java +++ b/libjava/classpath/org/omg/CORBA/BooleanHolder.java @@ -1,5 +1,5 @@ /* BooleanHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -91,7 +91,7 @@ public final class BooleanHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For boolean, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_boolean}. @@ -113,7 +113,7 @@ public final class BooleanHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For boolean, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_boolean(boolean) }. diff --git a/libjava/classpath/org/omg/CORBA/BooleanSeqHelper.java b/libjava/classpath/org/omg/CORBA/BooleanSeqHelper.java index 41f93d10d73..3cb2538c3fe 100644 --- a/libjava/classpath/org/omg/CORBA/BooleanSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/BooleanSeqHelper.java @@ -1,5 +1,5 @@ /* BooleanSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/BooleanSeqHolder.java b/libjava/classpath/org/omg/CORBA/BooleanSeqHolder.java index bdec3b79273..6144a17d6d8 100644 --- a/libjava/classpath/org/omg/CORBA/BooleanSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/BooleanSeqHolder.java @@ -1,5 +1,5 @@ /* BooleanSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class BooleanSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_boolean_array }. @@ -111,7 +111,7 @@ public final class BooleanSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_boolean_array }. diff --git a/libjava/classpath/org/omg/CORBA/ByteHolder.java b/libjava/classpath/org/omg/CORBA/ByteHolder.java index c440822e58c..c590a433e19 100644 --- a/libjava/classpath/org/omg/CORBA/ByteHolder.java +++ b/libjava/classpath/org/omg/CORBA/ByteHolder.java @@ -1,5 +1,5 @@ /* ByteHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -91,7 +91,7 @@ public final class ByteHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For octet, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_octet}. @@ -113,7 +113,7 @@ public final class ByteHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For octet, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_octet(byte) }. diff --git a/libjava/classpath/org/omg/CORBA/CharHolder.java b/libjava/classpath/org/omg/CORBA/CharHolder.java index b8d0a3d6a31..6ef5210a33d 100644 --- a/libjava/classpath/org/omg/CORBA/CharHolder.java +++ b/libjava/classpath/org/omg/CORBA/CharHolder.java @@ -1,5 +1,5 @@ /* CharHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -90,7 +90,7 @@ public final class CharHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For char, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_char}. @@ -112,7 +112,7 @@ public final class CharHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For char, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_char(char) }. diff --git a/libjava/classpath/org/omg/CORBA/CharSeqHelper.java b/libjava/classpath/org/omg/CORBA/CharSeqHelper.java index 08406058ca8..4853f3d1609 100644 --- a/libjava/classpath/org/omg/CORBA/CharSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/CharSeqHelper.java @@ -1,5 +1,5 @@ /* CharSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/CharSeqHolder.java b/libjava/classpath/org/omg/CORBA/CharSeqHolder.java index a60483b5f0f..3fa5475a0f1 100644 --- a/libjava/classpath/org/omg/CORBA/CharSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/CharSeqHolder.java @@ -1,5 +1,5 @@ /* CharSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class CharSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_char_array }. @@ -111,7 +111,7 @@ public final class CharSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_char_array }. diff --git a/libjava/classpath/org/omg/CORBA/Context.java b/libjava/classpath/org/omg/CORBA/Context.java index e3f7363f4cf..01a7e9944b7 100644 --- a/libjava/classpath/org/omg/CORBA/Context.java +++ b/libjava/classpath/org/omg/CORBA/Context.java @@ -1,5 +1,5 @@ /* Context.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,7 +45,7 @@ package org.omg.CORBA; * used to represent information about various circumstances of the * invocation. A Context if first created by * {@link org.omg.CORBA.ORB#get_default_context() } and then invoking - * {@link create_child(String)} of the default context. + * {@link #create_child(String)} of the default context. * * The contexts are named. * @@ -66,7 +66,7 @@ public abstract class Context /** * Create a child of this Context, giving it a name. - * @param name a name of the child context. + * @param child a name of the child context. * * @return the newly created context. */ diff --git a/libjava/classpath/org/omg/CORBA/CurrentHelper.java b/libjava/classpath/org/omg/CORBA/CurrentHelper.java index f292449ecd1..36c5f186329 100644 --- a/libjava/classpath/org/omg/CORBA/CurrentHelper.java +++ b/libjava/classpath/org/omg/CORBA/CurrentHelper.java @@ -1,5 +1,5 @@ /* CurrentHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,9 +42,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; -import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CORBA/CustomValue.java b/libjava/classpath/org/omg/CORBA/CustomValue.java index 0e5809fd6ea..6814ab3c59d 100644 --- a/libjava/classpath/org/omg/CORBA/CustomValue.java +++ b/libjava/classpath/org/omg/CORBA/CustomValue.java @@ -1,5 +1,5 @@ /* CustomValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,7 @@ exception statement from your version. */ package org.omg.CORBA; +import org.omg.CORBA.portable.StreamableValue; import org.omg.CORBA.portable.ValueBase; /** @@ -50,7 +51,7 @@ import org.omg.CORBA.portable.ValueBase; * in the receiving context. * * If the value base does not implement this interface, it normally implements - * {@link org.omg.CORBA.portable.StremableValue} instead. + * {@link StreamableValue} instead. * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ diff --git a/libjava/classpath/org/omg/CORBA/DataOutputStream.java b/libjava/classpath/org/omg/CORBA/DataOutputStream.java index 5e0f021fe80..20f1afbe21f 100644 --- a/libjava/classpath/org/omg/CORBA/DataOutputStream.java +++ b/libjava/classpath/org/omg/CORBA/DataOutputStream.java @@ -1,5 +1,5 @@ /* DataOutputStream.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -190,63 +190,63 @@ public interface DataOutputStream /** * Write array of Any's to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_any_array(Any[] seq, int offset, int length); /** * Write array of boolean's to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_boolean_array(boolean[] seq, int offset, int length); /** * Write array of narrow chars to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_char_array(char[] seq, int offset, int length); /** * Write array of wide chars to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_wchar_array(char[] seq, int offset, int length); /** * Write array of octets (bytes) to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_octet_array(byte[] seq, int offset, int length); /** * Write array of shorts (16 bit integers) to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_short_array(short[] seq, int offset, int length); /** * Write array of unsigned shorts (16 bit integers) to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_ushort_array(short[] seq, int offset, int length); /** * Write array of CORBA longs (java ints) to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_long_array(int[] seq, int offset, int length); /** * Write array of unsigned CORBA longs (java ints) to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_ulong_array(int[] seq, int offset, int length); @@ -254,28 +254,28 @@ public interface DataOutputStream * Write array of unsigned CORBA long longs (java longs) * to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_ulonglong_array(long[] seq, int offset, int length); /** * Write arrayo fo CORBA long longs (java ints) to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_longlong_array(long[] seq, int offset, int length); /** * Write array of floats to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_float_array(float[] seq, int offset, int length); /** * Write array of doubles to the output stream. * - * @param value a value to write. + * @param seq a value to write. */ void write_double_array(double[] seq, int offset, int length); } \ No newline at end of file diff --git a/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java b/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java index ef7e26725b3..05fe992872f 100644 --- a/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java +++ b/libjava/classpath/org/omg/CORBA/DefinitionKindHelper.java @@ -1,5 +1,5 @@ /* DefinitionKindHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,10 +40,7 @@ package org.omg.CORBA; import gnu.CORBA.DefinitionKindHolder; import gnu.CORBA.OrbRestricted; -import gnu.CORBA.gnuAny; -import gnu.CORBA.typecodes.PrimitiveTypeCode; -import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/CORBA/DomainManagerOperations.java b/libjava/classpath/org/omg/CORBA/DomainManagerOperations.java index 7dc0526a4db..6bda64d76a9 100644 --- a/libjava/classpath/org/omg/CORBA/DomainManagerOperations.java +++ b/libjava/classpath/org/omg/CORBA/DomainManagerOperations.java @@ -1,5 +1,5 @@ /* DomainManagerOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,7 +41,7 @@ package org.omg.CORBA; /** * Provides the means to access the policies of the domain, with that - * the implementing {@link DomainManage} is associated. + * the implementing {@link DomainManager} is associated. * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) */ diff --git a/libjava/classpath/org/omg/CORBA/DoubleHolder.java b/libjava/classpath/org/omg/CORBA/DoubleHolder.java index 65c8ebaf5e0..23ec513f975 100644 --- a/libjava/classpath/org/omg/CORBA/DoubleHolder.java +++ b/libjava/classpath/org/omg/CORBA/DoubleHolder.java @@ -1,5 +1,5 @@ /* DoubleHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -91,7 +91,7 @@ public final class DoubleHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For double, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_double}. @@ -113,7 +113,7 @@ public final class DoubleHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For double, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_double(double) }. diff --git a/libjava/classpath/org/omg/CORBA/DoubleSeqHelper.java b/libjava/classpath/org/omg/CORBA/DoubleSeqHelper.java index 2d9423fd095..6c971b7bea2 100644 --- a/libjava/classpath/org/omg/CORBA/DoubleSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/DoubleSeqHelper.java @@ -1,5 +1,5 @@ /* DoubleSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/DoubleSeqHolder.java b/libjava/classpath/org/omg/CORBA/DoubleSeqHolder.java index 619e9215bb9..5d7fb1aedaa 100644 --- a/libjava/classpath/org/omg/CORBA/DoubleSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/DoubleSeqHolder.java @@ -1,5 +1,5 @@ /* DoubleSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class DoubleSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_double_array }. @@ -111,7 +111,7 @@ public final class DoubleSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_double_array }. diff --git a/libjava/classpath/org/omg/CORBA/DynAny.java b/libjava/classpath/org/omg/CORBA/DynAny.java index 42b93341971..edafe435a7f 100644 --- a/libjava/classpath/org/omg/CORBA/DynAny.java +++ b/libjava/classpath/org/omg/CORBA/DynAny.java @@ -1,5 +1,5 @@ /* DynAny.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -280,7 +280,7 @@ public interface DynAny * Insert the {@link Any} value into the enclosed * {@link Any} inside this DynAny. * - * @param a_x the value being inserted. + * @param an_any the value being inserted. * @throws InvalidValue if the value type does not match the * typecode of the enclosed {@link Any}. */ @@ -458,7 +458,7 @@ public interface DynAny throws InvalidValue; /** - * Advances the internal pointer, described in the {@link current_component}, + * Advances the internal pointer, described in the {@link #current_component}, * one position forward. * * @return true if the pointer now points to the new component, @@ -468,13 +468,13 @@ public interface DynAny boolean next(); /** - * Moves the internal pointer, described in the {@link current_component}, + * Moves the internal pointer, described in the {@link #current_component}, * to the first component. */ void rewind(); /** - * Moves the internal pointer, described in the {@link current_component}, + * Moves the internal pointer, described in the {@link #current_component}, * to the given position. * * @param p the number of the internal component on that the internal diff --git a/libjava/classpath/org/omg/CORBA/DynSequence.java b/libjava/classpath/org/omg/CORBA/DynSequence.java index be7556705bb..6a5c77c0ba9 100644 --- a/libjava/classpath/org/omg/CORBA/DynSequence.java +++ b/libjava/classpath/org/omg/CORBA/DynSequence.java @@ -1,5 +1,5 @@ /* DynSequence.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -56,7 +56,7 @@ public interface DynSequence /** * Returns the number of elements, stored in the sequence. - * @return + * @return the length of the sequence */ int length(); diff --git a/libjava/classpath/org/omg/CORBA/DynValue.java b/libjava/classpath/org/omg/CORBA/DynValue.java index 24d28124651..5c67ffbbe41 100644 --- a/libjava/classpath/org/omg/CORBA/DynValue.java +++ b/libjava/classpath/org/omg/CORBA/DynValue.java @@ -1,5 +1,5 @@ /* DynValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -72,7 +72,7 @@ public interface DynValue /** * Get all members of the enclosed value type object. - * @return + * @return members, as an array of the name - value pairs. */ NameValuePair[] get_members(); diff --git a/libjava/classpath/org/omg/CORBA/DynamicImplementation.java b/libjava/classpath/org/omg/CORBA/DynamicImplementation.java index 3b1b4431905..24e6319fec5 100644 --- a/libjava/classpath/org/omg/CORBA/DynamicImplementation.java +++ b/libjava/classpath/org/omg/CORBA/DynamicImplementation.java @@ -1,5 +1,5 @@ /* DynamicImplementation.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -61,7 +61,7 @@ public class DynamicImplementation { /** * Invoke the method of the CORBA object. After converting the parameters, - * this method delegates call to the {@link ObjectImpl#invoke}. + * this method delegates call to the {@link ObjectImpl#_invoke}. * * @deprecated since 1.4. * diff --git a/libjava/classpath/org/omg/CORBA/FieldNameHelper.java b/libjava/classpath/org/omg/CORBA/FieldNameHelper.java index 6d6de43da67..1f884d72821 100644 --- a/libjava/classpath/org/omg/CORBA/FieldNameHelper.java +++ b/libjava/classpath/org/omg/CORBA/FieldNameHelper.java @@ -1,5 +1,5 @@ /* FieldNameHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -55,7 +55,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class FieldNameHelper { /** - * Insert the FieldName into Any (uses {@link Any.insert_string}). + * Insert the FieldName into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -66,7 +66,7 @@ public abstract class FieldNameHelper } /** - * Extract the FieldName from Any ((uses {@link Any.extract_string}). + * Extract the FieldName from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -104,7 +104,7 @@ public abstract class FieldNameHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param ostream the stream to write into. * @param value the string (FieldName) value to write. diff --git a/libjava/classpath/org/omg/CORBA/FixedHolder.java b/libjava/classpath/org/omg/CORBA/FixedHolder.java index 8913acc1755..a44cde52dbf 100644 --- a/libjava/classpath/org/omg/CORBA/FixedHolder.java +++ b/libjava/classpath/org/omg/CORBA/FixedHolder.java @@ -1,5 +1,5 @@ /* FixedHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,7 +39,6 @@ exception statement from your version. */ package org.omg.CORBA; import gnu.CORBA.typecodes.FixedTypeCode; -import gnu.CORBA.typecodes.PrimitiveTypeCode; import java.math.BigDecimal; @@ -88,7 +87,7 @@ public final class FixedHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For fixed, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_fixed}. @@ -112,7 +111,7 @@ public final class FixedHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For fixed, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_fixed(BigDecimal) }. diff --git a/libjava/classpath/org/omg/CORBA/FloatHolder.java b/libjava/classpath/org/omg/CORBA/FloatHolder.java index 1d6de16a192..8d765ced374 100644 --- a/libjava/classpath/org/omg/CORBA/FloatHolder.java +++ b/libjava/classpath/org/omg/CORBA/FloatHolder.java @@ -1,5 +1,5 @@ /* FloatHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -91,7 +91,7 @@ public final class FloatHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For float, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_float}. @@ -113,7 +113,7 @@ public final class FloatHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For float, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_float(float) }. diff --git a/libjava/classpath/org/omg/CORBA/FloatSeqHelper.java b/libjava/classpath/org/omg/CORBA/FloatSeqHelper.java index 1656dae440a..10850e022b4 100644 --- a/libjava/classpath/org/omg/CORBA/FloatSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/FloatSeqHelper.java @@ -1,5 +1,5 @@ /* FloatSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/FloatSeqHolder.java b/libjava/classpath/org/omg/CORBA/FloatSeqHolder.java index dbab1ec08ba..b7e8efcc0d2 100644 --- a/libjava/classpath/org/omg/CORBA/FloatSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/FloatSeqHolder.java @@ -1,5 +1,5 @@ /* FloatSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class FloatSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_float_array }. @@ -111,7 +111,7 @@ public final class FloatSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_float_array }. diff --git a/libjava/classpath/org/omg/CORBA/IdentifierHelper.java b/libjava/classpath/org/omg/CORBA/IdentifierHelper.java index 5c055f81290..deff909690e 100644 --- a/libjava/classpath/org/omg/CORBA/IdentifierHelper.java +++ b/libjava/classpath/org/omg/CORBA/IdentifierHelper.java @@ -1,5 +1,5 @@ /* IdentifierHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -55,7 +55,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class IdentifierHelper { /** - * Insert the Identifier into Any (uses {@link Any.insert_string}). + * Insert the Identifier into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -66,7 +66,7 @@ public abstract class IdentifierHelper } /** - * Extract the Identifier from Any ((uses {@link Any.extract_string}). + * Extract the Identifier from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -104,7 +104,7 @@ public abstract class IdentifierHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param ostream the stream to write into. * @param value the string (Identifier) value to write. diff --git a/libjava/classpath/org/omg/CORBA/IntHolder.java b/libjava/classpath/org/omg/CORBA/IntHolder.java index 4729535a7ec..a27cf435ce3 100644 --- a/libjava/classpath/org/omg/CORBA/IntHolder.java +++ b/libjava/classpath/org/omg/CORBA/IntHolder.java @@ -1,5 +1,5 @@ /* IntHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -90,7 +90,7 @@ public final class IntHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For long, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_long}. @@ -112,7 +112,7 @@ public final class IntHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For long, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_long(int) }. diff --git a/libjava/classpath/org/omg/CORBA/LocalObject.java b/libjava/classpath/org/omg/CORBA/LocalObject.java index 7c06e18249d..a3fd131caf6 100644 --- a/libjava/classpath/org/omg/CORBA/LocalObject.java +++ b/libjava/classpath/org/omg/CORBA/LocalObject.java @@ -1,5 +1,5 @@ /* LocalObject.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -253,12 +253,12 @@ public class LocalObject /** * This method is called from rmic generated stubs if the - * {@link Util#isLocal()}, called passing this as parameter, + * {@link Util#isLocal}, called passing this as parameter, * returns true. If the method returns null, the requested method is then * invoked on this. Else it is invoked on the returned object, * casting it into the interface that the local object implements. In this * case, the generated stub also later calls - * {@link _servant_postinvoke(ServantObject)}, passing that returned target + * {@link #_servant_postinvoke(ServantObject)}, passing that returned target * as parameter. * * @param operation the name of the method being invoked. @@ -275,7 +275,7 @@ public class LocalObject /** * This method is called from rmic generated stubs if the - * {@link Util#isLocal()}, called passing this as parameter, + * {@link Util#isLocal}, called passing this as parameter, * returns true, and the {@link #_servant_preinvoke} return non-null object. * The stub then invokes the requrested method on that returned object and * later calls _servant_postinvoke, passing that returned target as parameter. @@ -289,7 +289,7 @@ public class LocalObject /** * Invokes the operation. This method takes the OutputStream that was previously - * returned by a {@link _request()} and returns an InputStream which + * returned by a {@link #_request(String)} and returns an InputStream which * contains the reply. Up till jdk 1.5 inclusive this method is marked as * unimplemented. * @@ -304,7 +304,7 @@ public class LocalObject /** * While it may look that this should return true, the jdk 1.5 API states * that it must throw NO_IMPLEMENT instead. The rmi stubs do not call this - * method to check if the object is local; they call {@link Util#isLocal()} + * method to check if the object is local; they call {@link Util#isLocal} * instead (passing this as parameter). * * @return never. diff --git a/libjava/classpath/org/omg/CORBA/LongHolder.java b/libjava/classpath/org/omg/CORBA/LongHolder.java index ac249fed3c6..db412d96966 100644 --- a/libjava/classpath/org/omg/CORBA/LongHolder.java +++ b/libjava/classpath/org/omg/CORBA/LongHolder.java @@ -1,5 +1,5 @@ /* LongHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -91,7 +91,7 @@ public final class LongHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For long long, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_longlong}. @@ -113,7 +113,7 @@ public final class LongHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For long long, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_longlong(long) }. diff --git a/libjava/classpath/org/omg/CORBA/LongLongSeqHelper.java b/libjava/classpath/org/omg/CORBA/LongLongSeqHelper.java index 0e31c713647..1ba58d5d362 100644 --- a/libjava/classpath/org/omg/CORBA/LongLongSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/LongLongSeqHelper.java @@ -1,5 +1,5 @@ /* LongLongSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/LongLongSeqHolder.java b/libjava/classpath/org/omg/CORBA/LongLongSeqHolder.java index e56acd4ad78..ebb83cfd012 100644 --- a/libjava/classpath/org/omg/CORBA/LongLongSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/LongLongSeqHolder.java @@ -1,5 +1,5 @@ /* LongLongSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class LongLongSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_longlong_array }. @@ -111,7 +111,7 @@ public final class LongLongSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_longlong_array }. diff --git a/libjava/classpath/org/omg/CORBA/LongSeqHelper.java b/libjava/classpath/org/omg/CORBA/LongSeqHelper.java index 26b4e91c2a5..c33611da8e3 100644 --- a/libjava/classpath/org/omg/CORBA/LongSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/LongSeqHelper.java @@ -1,5 +1,5 @@ /* LongSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/LongSeqHolder.java b/libjava/classpath/org/omg/CORBA/LongSeqHolder.java index 2359eb0b2f6..79e94382d3d 100644 --- a/libjava/classpath/org/omg/CORBA/LongSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/LongSeqHolder.java @@ -1,5 +1,5 @@ /* LongSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,10 +87,10 @@ public final class LongSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA longand then calls the - * {@link org.omg.CORBA.portable.InputStream#input.read_long_array }. + * {@link org.omg.CORBA.portable.InputStream#read_long_array }. * * @param input the input stream to read from. */ @@ -102,10 +102,10 @@ public final class LongSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA longand then calls the - * {@link org.omg.CORBA.portable.OutputStream#input.write_long_array }. + * {@link org.omg.CORBA.portable.OutputStream#write_long_array }. * * @param output the output stream to write into. */ diff --git a/libjava/classpath/org/omg/CORBA/ORB.java b/libjava/classpath/org/omg/CORBA/ORB.java index af05488280f..89bc5376402 100644 --- a/libjava/classpath/org/omg/CORBA/ORB.java +++ b/libjava/classpath/org/omg/CORBA/ORB.java @@ -1,5 +1,5 @@ /* ORB.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,10 +41,8 @@ package org.omg.CORBA; import gnu.CORBA.OrbFocused; import gnu.CORBA.ObjectCreator; import gnu.CORBA.OrbRestricted; -import gnu.CORBA.gnuContext; import gnu.CORBA.typecodes.FixedTypeCode; import gnu.CORBA.typecodes.GeneralTypeCode; -import gnu.CORBA.typecodes.PrimitiveTypeCode; import gnu.CORBA.typecodes.RecordTypeCode; import gnu.CORBA.typecodes.RecursiveTypeCode; @@ -144,7 +142,7 @@ public abstract class ORB { /** * By default, {@link #init(String[], Properties)} and - * {@link #iinit(Applet, Properties)} return + * {@link #init(Applet, Properties)} return * the built-in fully functional ORB is returned. If the * props contains the property org.omg.CORBA.ORBClass, * the value of this property is used as a class name to instantiate @@ -210,6 +208,34 @@ public abstract class ORB } /** + * Create a typecode, representing a tree-like structure. + * This structure contains a member that is a sequence of the same type, + * as the structure itself. You can imagine as if the folder definition + * contains a variable-length array of the enclosed (nested) folder + * definitions. In this way, it is possible to have a tree like + * structure that can be transferred via CORBA CDR stream. + * + * @deprecated It is easier and clearler to use a combination of + * create_recursive_tc and create_sequence_tc instead. + * + * @param bound the maximal expected number of the nested components + * on each node; 0 if not limited. + * + * @param offset the position of the field in the returned structure + * that contains the sequence of the structures of the same field. + * The members before this field are intialised using parameterless + * StructMember constructor. + * + * @return a typecode, defining a stucture, where a member at the + * offset position defines an array of the identical + * structures. + * + * @see #create_recursive_tc(String) + * @see #create_sequence_tc(int, TypeCode) + */ + public abstract TypeCode create_recursive_sequence_tc(int bound, int offset); + + /** * Create alias typecode for the given typecode. */ public abstract TypeCode create_alias_tc(String id, String name, @@ -496,7 +522,7 @@ public abstract class ORB */ public abstract Request get_next_response() throws WrongTransaction; - + /** * Create a new CDR output stream, where the parameter values can be written * during the method invocation. @@ -647,33 +673,6 @@ public abstract class ORB return t; } - /** - * Create a typecode, representing a tree-like structure. - * This structure contains a member that is a sequence of the same type, - * as the structure itself. You can imagine as if the folder definition - * contains a variable-length array of the enclosed (nested) folder - * definitions. In this way, it is possible to have a tree like - * structure that can be transferred via CORBA CDR stream. - * - * @deprecated It is easier and clearler to use a combination of - * create_recursive_tc and create_sequence_tc instead. - * - * @param bound the maximal expected number of the nested components - * on each node; 0 if not limited. - * - * @param offset the position of the field in the returned structure - * that contains the sequence of the structures of the same field. - * The members before this field are intialised using parameterless - * StructMember constructor. - * - * @return a typecode, defining a stucture, where a member at the - * offset position defines an array of the identical - * structures. - * - * @see #create_recursive_tc(String) - * @see #create_sequence_tc(int, TypeCode) - */ - public abstract TypeCode create_recursive_sequence_tc(int bound, int offset); /** * Create a typecode which serves as a placeholder for typcode, containing @@ -1238,4 +1237,4 @@ public abstract class ORB why ); } -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/CORBA/ObjectHelper.java b/libjava/classpath/org/omg/CORBA/ObjectHelper.java index f662a78880c..dbf43308029 100644 --- a/libjava/classpath/org/omg/CORBA/ObjectHelper.java +++ b/libjava/classpath/org/omg/CORBA/ObjectHelper.java @@ -1,5 +1,5 @@ /* ObjectHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,7 +40,6 @@ package org.omg.CORBA; import gnu.CORBA.Minor; import gnu.CORBA.OrbRestricted; -import gnu.CORBA.typecodes.PrimitiveTypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/CORBA/ObjectHolder.java b/libjava/classpath/org/omg/CORBA/ObjectHolder.java index f79a89bef0d..235f1e66fcd 100644 --- a/libjava/classpath/org/omg/CORBA/ObjectHolder.java +++ b/libjava/classpath/org/omg/CORBA/ObjectHolder.java @@ -1,5 +1,5 @@ /* ObjectHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,7 +38,6 @@ exception statement from your version. */ package org.omg.CORBA; -import gnu.CORBA.typecodes.PrimitiveTypeCode; import gnu.CORBA.typecodes.RecordTypeCode; import org.omg.CORBA.portable.InputStream; @@ -98,10 +97,10 @@ public final class ObjectHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For org.omg.CORBA.Object, the * functionality is delegated to - * {@link org.omg.CORBA.portable.InputStream#read_Object}. + * {@link org.omg.CORBA.portable.InputStream#read_Object()}. * * @param input the input stream to read from. */ @@ -120,7 +119,7 @@ public final class ObjectHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For Object, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_Object(Object) }. diff --git a/libjava/classpath/org/omg/CORBA/OctetSeqHelper.java b/libjava/classpath/org/omg/CORBA/OctetSeqHelper.java index df7b22ff52f..e03dba07346 100644 --- a/libjava/classpath/org/omg/CORBA/OctetSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/OctetSeqHelper.java @@ -1,5 +1,5 @@ /* OctetSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/OctetSeqHolder.java b/libjava/classpath/org/omg/CORBA/OctetSeqHolder.java index 62ea7381920..8c3e9cb6ddb 100644 --- a/libjava/classpath/org/omg/CORBA/OctetSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/OctetSeqHolder.java @@ -1,5 +1,5 @@ /* OctetSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class OctetSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_octet_array }. @@ -111,7 +111,7 @@ public final class OctetSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_octet_array }. diff --git a/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java b/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java index 6feabdcfdb9..ecb9821dc35 100644 --- a/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java +++ b/libjava/classpath/org/omg/CORBA/PolicyErrorCodeHelper.java @@ -1,5 +1,5 @@ /* PolicyErrorCodeHelper.java -- -Copyright (C) 2005 Free Software Foundation, Inc. +Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -57,7 +57,7 @@ public abstract class PolicyErrorCodeHelper { /** - * Delegates call to {@link Any.extract_short()}. + * Delegates call to {@link Any#extract_short()}. */ public static short extract(Any a) { @@ -75,7 +75,7 @@ public abstract class PolicyErrorCodeHelper } /** - * Delegates call to {@link Any.insert_short(short)}. + * Delegates call to {@link Any#insert_short(short)}. */ public static void insert(Any a, short that) { @@ -83,7 +83,7 @@ public abstract class PolicyErrorCodeHelper } /** - * Delegates call to {@link InputStream.read_short()}. + * Delegates call to {@link InputStream#read_short()}. */ public static short read(InputStream istream) { @@ -106,7 +106,7 @@ public abstract class PolicyErrorCodeHelper } /** - * Delegates call to {@link OutputStream#write_short()}. + * Delegates call to {@link OutputStream#write_short(short)}. */ public static void write(OutputStream ostream, short value) { diff --git a/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java b/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java index 27b5b465e53..213acafc7e5 100644 --- a/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java +++ b/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java @@ -1,5 +1,5 @@ /* PolicyErrorHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -59,8 +59,8 @@ public abstract class PolicyErrorHelper { /** * Create the PolicyError typecode. The typecode defines a structure, named - * "PolicyError", containing the {@link PolicyErrorCode} (alias int) field, - * named "reason". + * "PolicyError", containing the PolicyErrorCode (alias int, see + * {@link PolicyErrorCodeHelper}) field, named "reason". */ public static TypeCode type() { diff --git a/libjava/classpath/org/omg/CORBA/PolicyHelper.java b/libjava/classpath/org/omg/CORBA/PolicyHelper.java index 53b56244eb2..4f88cd78396 100644 --- a/libjava/classpath/org/omg/CORBA/PolicyHelper.java +++ b/libjava/classpath/org/omg/CORBA/PolicyHelper.java @@ -1,5 +1,5 @@ /* PolicyHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,9 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; -import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CORBA/PolicyListHelper.java b/libjava/classpath/org/omg/CORBA/PolicyListHelper.java index da0135c0222..54f2036759a 100644 --- a/libjava/classpath/org/omg/CORBA/PolicyListHelper.java +++ b/libjava/classpath/org/omg/CORBA/PolicyListHelper.java @@ -1,5 +1,5 @@ /* PolicyListHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,27 +41,19 @@ package org.omg.CORBA; import gnu.CORBA.Minor; import gnu.CORBA.OrbRestricted; -import org.omg.CORBA.Any; -import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; -import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.ObjectImpl; import org.omg.CORBA.portable.OutputStream; /** * The helper operations for the -* CORBA object {@link Policy[]}. +* CORBA object {@link Policy}[]. * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public abstract class PolicyListHelper { /** - * Get the type code of the {@link Policy[]}. + * Get the type code of the {@link Policy}[]. */ public static TypeCode type() { diff --git a/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java b/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java index 7d5f9bf7656..575fe4aa309 100644 --- a/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java +++ b/libjava/classpath/org/omg/CORBA/PolicyTypeHelper.java @@ -1,5 +1,5 @@ /* PolicyTypeHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; -import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CORBA/PrincipalHolder.java b/libjava/classpath/org/omg/CORBA/PrincipalHolder.java index 270427f3fdd..56cd565aa76 100644 --- a/libjava/classpath/org/omg/CORBA/PrincipalHolder.java +++ b/libjava/classpath/org/omg/CORBA/PrincipalHolder.java @@ -1,5 +1,5 @@ /* PrincipalHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -86,7 +86,7 @@ public final class PrincipalHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For {@link Principal}, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_Principal}. @@ -108,7 +108,7 @@ public final class PrincipalHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For {@link Principal} the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_Principal(Principal)} diff --git a/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java b/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java index a392002fd23..033a96819d3 100644 --- a/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java +++ b/libjava/classpath/org/omg/CORBA/RepositoryIdHelper.java @@ -1,5 +1,5 @@ /* RepositoryIdHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -55,7 +55,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class RepositoryIdHelper { /** - * Insert the Repository Id into Any (uses {@link Any.insert_string}). + * Insert the Repository Id into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -66,7 +66,7 @@ public abstract class RepositoryIdHelper } /** - * Extract the Repository Id from Any ((uses {@link Any.extract_string}). + * Extract the Repository Id from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -104,7 +104,7 @@ public abstract class RepositoryIdHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param ostream the stream to write into. * @param value the string (Repository Id) value to write. diff --git a/libjava/classpath/org/omg/CORBA/Request.java b/libjava/classpath/org/omg/CORBA/Request.java index f299d426b8a..beec7869185 100644 --- a/libjava/classpath/org/omg/CORBA/Request.java +++ b/libjava/classpath/org/omg/CORBA/Request.java @@ -1,5 +1,5 @@ /* Request.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -137,7 +137,7 @@ public abstract class Request public abstract ContextList contexts(); /** - * Get the context, previously set using {@link #cts(Context)}. + * Get the context, previously set using {@link #ctx(Context)}. * The context contains the details about this request. */ public abstract Context ctx(); @@ -168,7 +168,7 @@ public abstract class Request /** * Allow to access the response that has been previously sent using - * {@link send_deferred()}. + * {@link #send_deferred()}. * * @throws WrongTransaction if the transaction scope mismatches. */ @@ -190,7 +190,7 @@ public abstract class Request /** * Check if the response is received to the request that was - * previously send using {@link send_deferred()}. + * previously send using {@link #send_deferred()}. * * @return true if the response has been already received, false otherwise. */ diff --git a/libjava/classpath/org/omg/CORBA/ShortHolder.java b/libjava/classpath/org/omg/CORBA/ShortHolder.java index dfc4721f3f9..59bd4cf333d 100644 --- a/libjava/classpath/org/omg/CORBA/ShortHolder.java +++ b/libjava/classpath/org/omg/CORBA/ShortHolder.java @@ -1,5 +1,5 @@ /* ShortHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -91,7 +91,7 @@ public final class ShortHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. For short, the functionality * is delegated to * {@link org.omg.CORBA.portable.InputStream#read_short}. @@ -113,7 +113,7 @@ public final class ShortHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * For short, the functionality * is delegated to * {@link org.omg.CORBA.portable.OutputStream#write_short(short) }. diff --git a/libjava/classpath/org/omg/CORBA/ShortSeqHelper.java b/libjava/classpath/org/omg/CORBA/ShortSeqHelper.java index 40124f216e9..5140bb96661 100644 --- a/libjava/classpath/org/omg/CORBA/ShortSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/ShortSeqHelper.java @@ -1,5 +1,5 @@ /* ShortSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/ShortSeqHolder.java b/libjava/classpath/org/omg/CORBA/ShortSeqHolder.java index 246d1ecf47e..b25024e9891 100644 --- a/libjava/classpath/org/omg/CORBA/ShortSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/ShortSeqHolder.java @@ -1,5 +1,5 @@ /* ShortSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class ShortSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_short_array }. @@ -111,7 +111,7 @@ public final class ShortSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_short_array }. diff --git a/libjava/classpath/org/omg/CORBA/StringSeqHelper.java b/libjava/classpath/org/omg/CORBA/StringSeqHelper.java index 4225c0bd12b..19f27292c0c 100644 --- a/libjava/classpath/org/omg/CORBA/StringSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/StringSeqHelper.java @@ -1,5 +1,5 @@ /* StringSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/StringSeqHolder.java b/libjava/classpath/org/omg/CORBA/StringSeqHolder.java index 71ac887e27b..1bc3281d353 100755 --- a/libjava/classpath/org/omg/CORBA/StringSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/StringSeqHolder.java @@ -1,5 +1,5 @@ /* StringSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class StringSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA longand then all strings. * @@ -113,7 +113,7 @@ public final class StringSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long and then all strings. * diff --git a/libjava/classpath/org/omg/CORBA/ULongLongSeqHelper.java b/libjava/classpath/org/omg/CORBA/ULongLongSeqHelper.java index 1148cb40865..b13f33cdf25 100644 --- a/libjava/classpath/org/omg/CORBA/ULongLongSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/ULongLongSeqHelper.java @@ -1,5 +1,5 @@ /* ULongLongSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/ULongLongSeqHolder.java b/libjava/classpath/org/omg/CORBA/ULongLongSeqHolder.java index 70b43bf7f45..cd9c023104b 100644 --- a/libjava/classpath/org/omg/CORBA/ULongLongSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/ULongLongSeqHolder.java @@ -1,5 +1,5 @@ /* ULongLongSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class ULongLongSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_ulonglong_array }. @@ -111,7 +111,7 @@ public final class ULongLongSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_ulonglong_array }. diff --git a/libjava/classpath/org/omg/CORBA/ULongSeqHelper.java b/libjava/classpath/org/omg/CORBA/ULongSeqHelper.java index dddc1323d7e..186350b2ce2 100644 --- a/libjava/classpath/org/omg/CORBA/ULongSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/ULongSeqHelper.java @@ -1,5 +1,5 @@ /* ULongSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/ULongSeqHolder.java b/libjava/classpath/org/omg/CORBA/ULongSeqHolder.java index 64d9db6ceee..35d9a4384ac 100644 --- a/libjava/classpath/org/omg/CORBA/ULongSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/ULongSeqHolder.java @@ -1,5 +1,5 @@ /* ULongSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class ULongSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_ulong_array }. @@ -111,7 +111,7 @@ public final class ULongSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_ulong_array }. diff --git a/libjava/classpath/org/omg/CORBA/UShortSeqHelper.java b/libjava/classpath/org/omg/CORBA/UShortSeqHelper.java index d1fc440a90d..0fcd4739fb7 100644 --- a/libjava/classpath/org/omg/CORBA/UShortSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/UShortSeqHelper.java @@ -1,5 +1,5 @@ /* UShortSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/UShortSeqHolder.java b/libjava/classpath/org/omg/CORBA/UShortSeqHolder.java index 47e33b9be02..3eb83c5242a 100644 --- a/libjava/classpath/org/omg/CORBA/UShortSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/UShortSeqHolder.java @@ -1,5 +1,5 @@ /* UShortSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class UShortSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.InputStream#read_ushort_array }. @@ -111,7 +111,7 @@ public final class UShortSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the * {@link org.omg.CORBA.portable.OutputStream#write_ushort_array }. diff --git a/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java b/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java index 1699d912d61..644666971ac 100644 --- a/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java +++ b/libjava/classpath/org/omg/CORBA/ValueBaseHelper.java @@ -1,5 +1,5 @@ /* ValueBaseHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,9 @@ import gnu.CORBA.typecodes.RecordTypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.ValueBase; +import java.io.ObjectOutputStream; import java.io.Serializable; /** @@ -105,7 +107,7 @@ public abstract class ValueBaseHelper /** * Get the typecode of the value type. - * @return + * @return the typecode of the value type */ public static TypeCode type() { diff --git a/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java b/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java index 6f57d17c3f1..58f48536ff2 100644 --- a/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java +++ b/libjava/classpath/org/omg/CORBA/ValueBaseHolder.java @@ -1,5 +1,5 @@ /* ValueBaseHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.CORBA; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.ValueBase; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java b/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java index 9845702985a..74bdb7b7a16 100644 --- a/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java +++ b/libjava/classpath/org/omg/CORBA/VersionSpecHelper.java @@ -1,5 +1,5 @@ /* VersionSpecHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -55,7 +55,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class VersionSpecHelper { /** - * Insert the VersionSpec into Any (uses {@link Any.insert_string}). + * Insert the VersionSpec into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -66,7 +66,7 @@ public abstract class VersionSpecHelper } /** - * Extract the VersionSpec from Any ((uses {@link Any.extract_string}). + * Extract the VersionSpec from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -104,7 +104,7 @@ public abstract class VersionSpecHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param ostream the stream to write into. * @param value the string (VersionSpec) value to write. diff --git a/libjava/classpath/org/omg/CORBA/WCharSeqHelper.java b/libjava/classpath/org/omg/CORBA/WCharSeqHelper.java index 4bb92989d05..fe4d41650a7 100644 --- a/libjava/classpath/org/omg/CORBA/WCharSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/WCharSeqHelper.java @@ -1,5 +1,5 @@ /* WCharSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/WCharSeqHolder.java b/libjava/classpath/org/omg/CORBA/WCharSeqHolder.java index 72a9cc8c1e3..a1b04d1efe4 100644 --- a/libjava/classpath/org/omg/CORBA/WCharSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/WCharSeqHolder.java @@ -1,5 +1,5 @@ /* WCharSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,10 +87,10 @@ public final class WCharSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA long) and then calls the - * {@link org.omg.CORBA.portable.InputStream#input.read_wchar_array }. + * {@link org.omg.CORBA.portable.InputStream#read_wchar_array }. * * @param input the input stream to read from. */ @@ -111,10 +111,10 @@ public final class WCharSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long) and then calls the - * {@link org.omg.CORBA.portable.OutputStream#input.write_wchar_array }. + * {@link org.omg.CORBA.portable.OutputStream#write_wchar_array }. * * @param output the output stream to write into. */ diff --git a/libjava/classpath/org/omg/CORBA/WStringSeqHelper.java b/libjava/classpath/org/omg/CORBA/WStringSeqHelper.java index 356cf0dd21c..ea8eac62742 100644 --- a/libjava/classpath/org/omg/CORBA/WStringSeqHelper.java +++ b/libjava/classpath/org/omg/CORBA/WStringSeqHelper.java @@ -1,5 +1,5 @@ /* WStringSeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.CORBA.typecodes.ArrayTypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; /** * Provides static helper methods for working with diff --git a/libjava/classpath/org/omg/CORBA/WStringSeqHolder.java b/libjava/classpath/org/omg/CORBA/WStringSeqHolder.java index 68b77ff6a3a..b909210f3e8 100755 --- a/libjava/classpath/org/omg/CORBA/WStringSeqHolder.java +++ b/libjava/classpath/org/omg/CORBA/WStringSeqHolder.java @@ -1,5 +1,5 @@ /* WStringSeqHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,7 +87,7 @@ public final class WStringSeqHolder } /** - * Fill in the {@link value } field by reading the required data + * Fill in the {@link #value } field by reading the required data * from the given stream. This method first reads the array size * (as CORBA longand then all strings. * @@ -113,7 +113,7 @@ public final class WStringSeqHolder } /** - * Write the {@link value } field to the given stream. + * Write the {@link #value } field to the given stream. * This method first writes the array size * (as CORBA long and then all strings. * diff --git a/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java b/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java index 27368a4c03a..96673fd5792 100644 --- a/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java +++ b/libjava/classpath/org/omg/CORBA/WrongTransactionHelper.java @@ -1,5 +1,5 @@ /* WrongTransactionHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java b/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java index 6661b0c4702..de09b89a7b0 100644 --- a/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java +++ b/libjava/classpath/org/omg/CORBA/_IDLTypeStub.java @@ -1,5 +1,5 @@ /* _IDLTypeStub.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff --git a/libjava/classpath/org/omg/CORBA/_PolicyStub.java b/libjava/classpath/org/omg/CORBA/_PolicyStub.java index 50481fe17a0..f633ccbaf65 100644 --- a/libjava/classpath/org/omg/CORBA/_PolicyStub.java +++ b/libjava/classpath/org/omg/CORBA/_PolicyStub.java @@ -1,5 +1,5 @@ /* _PolicyStub.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,8 +39,6 @@ exception statement from your version. */ package org.omg.CORBA; import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ORB; -import org.omg.CORBA.ObjectHelper; import org.omg.CORBA.portable.ApplicationException; import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CORBA/portable/BoxedValueHelper.java b/libjava/classpath/org/omg/CORBA/portable/BoxedValueHelper.java index d869bdc1851..47c2b910680 100644 --- a/libjava/classpath/org/omg/CORBA/portable/BoxedValueHelper.java +++ b/libjava/classpath/org/omg/CORBA/portable/BoxedValueHelper.java @@ -1,5 +1,5 @@ /* BoxedValueHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -63,7 +63,7 @@ public interface BoxedValueHelper /** * Read this value type from the CDR stream. * - * @param is a stream to read from. + * @param istream is a stream to read from. * * @return a loaded value type. */ @@ -72,8 +72,8 @@ public interface BoxedValueHelper /** * Write this value type to the CDR stream. * - * @param os a stream to write to. + * @param ostream a stream to write to. * @param value a value to write. */ void write_value(OutputStream ostream, Serializable value); -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/CORBA/portable/Delegate.java b/libjava/classpath/org/omg/CORBA/portable/Delegate.java index fce04887e91..2f056ac3177 100644 --- a/libjava/classpath/org/omg/CORBA/portable/Delegate.java +++ b/libjava/classpath/org/omg/CORBA/portable/Delegate.java @@ -1,5 +1,5 @@ /* Delegate.java -- -Copyright (C) 2005 Free Software Foundation, Inc. +Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -242,7 +242,7 @@ public abstract class Delegate /** * Return the hashcode for this CORBA object. The default implementation - * delegates call to {@link #hash(int)}, passing Integer.MAX_VALUE as an + * delegates call to {@link #hash(org.omg.CORBA.Object, int)}, passing Integer.MAX_VALUE as an * argument. * * @param target the object, for that the hash code must be computed. @@ -408,7 +408,7 @@ public abstract class Delegate * * @param self the CORBA object, to that the string representation must be * returned. By default, the call is delegated to - * {@link java.lang.Object.toString()}. + * {@link java.lang.Object#toString()}. * * @return the string representation. */ diff --git a/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java b/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java index f2f21a79e17..f1e348e5304 100644 --- a/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java +++ b/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java @@ -1,5 +1,5 @@ /* ObjectImpl.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,7 @@ exception statement from your version. */ package org.omg.CORBA.portable; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.Context; import org.omg.CORBA.ContextList; import org.omg.CORBA.DomainManager; @@ -156,9 +157,9 @@ public abstract class ObjectImpl * @throws BAD_PARAM if the policy of the given type is not * associated with this object, or if it is not supported by this ORB. */ - public Policy _get_policy(int type) + public Policy _get_policy(int a_policy_type) { - return delegate.get_policy(this, type); + return delegate.get_policy(this, a_policy_type); } /** @@ -173,7 +174,7 @@ public abstract class ObjectImpl * object. The returned value must not change during the object * lifetime. * - * @param maximum the maximal value to return. + * @param max the maximal value to return. * * @return the hashcode. */ @@ -204,7 +205,7 @@ public abstract class ObjectImpl /** * Check if this object can be referenced by the given repository id. * - * @param repositoryIdentifer the repository id. + * @param idl_id the repository id. * * @return true if the passed parameter is a repository id of this * CORBA object. @@ -233,8 +234,6 @@ public abstract class ObjectImpl /** * Returns true if the object is local. * - * @param self the object to check. - * * @return false, always (following 1.4 specs). Override to get * functionality. */ @@ -278,10 +277,8 @@ public abstract class ObjectImpl * Release the reply stream back to ORB after finishing reading the data * from it. * - * @param input the stream, normally returned by {@link #invoke} or + * @param stream the stream, normally returned by {@link #_invoke} or * {@link ApplicationException#getInputStream()}, can be null. - * - * @throws NO_IMPLEMENT, always (following the 1.4 specification). */ public void _releaseReply(InputStream stream) { @@ -292,7 +289,7 @@ public abstract class ObjectImpl /** * Create a request to invoke the method of this CORBA object. * - * @param operation the name of the method to invoke. + * @param method the name of the method to invoke. * * @return the request. */ @@ -304,7 +301,7 @@ public abstract class ObjectImpl /** * Create a request to invoke the method of this CORBA object. * - * @param operation the name of the method to invoke. + * @param method the name of the method to invoke. * @param response_expected specifies if this is one way message or the * response to the message is expected. * @@ -323,7 +320,6 @@ public abstract class ObjectImpl * * The default method returns without action. * - * @param self the object. * @param servant the servant. */ public void _servant_postinvoke(ServantObject servant) @@ -336,9 +332,8 @@ public abstract class ObjectImpl * The servant can also be casted to the expected type, calling the * required method directly. * - * @param self the object - * @param operation the operation - * @param expectedType the expected type of the servant. + * @param method the operation + * @param expected_type the expected type of the servant. * * This implementation always returns null; override for different * behavior. @@ -372,10 +367,10 @@ public abstract class ObjectImpl * them. */ public org.omg.CORBA.Object _set_policy_override(Policy[] policies, - SetOverrideType set_add + SetOverrideType how ) { - return delegate.set_policy_override(this, policies, set_add); + return delegate.set_policy_override(this, policies, how); } /** diff --git a/libjava/classpath/org/omg/CORBA/portable/ServantObject.java b/libjava/classpath/org/omg/CORBA/portable/ServantObject.java index b35dedc3529..253defc0a92 100644 --- a/libjava/classpath/org/omg/CORBA/portable/ServantObject.java +++ b/libjava/classpath/org/omg/CORBA/portable/ServantObject.java @@ -1,5 +1,5 @@ /* ServantObject.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,7 @@ package org.omg.CORBA.portable; * * @see ObjectImpl#_servant_preinvoke(String, Class) * @see ObjectImpl#_servant_postinvoke(ServantObject) - * @see Delegate#servant_preinvoke(org.omg.CORBA.Object, String operation, Class) + * @see Delegate#servant_preinvoke(org.omg.CORBA.Object, String, Class) * @see Delegate#servant_postinvoke(org.omg.CORBA.Object, ServantObject) * * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) diff --git a/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java b/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java index ce9b2ca2840..7ab61a6d470 100644 --- a/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java +++ b/libjava/classpath/org/omg/CORBA/portable/StreamableValue.java @@ -1,5 +1,5 @@ /* StreamableValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,7 @@ import java.io.Serializable; * If the value type does not provide the user defined methods for reading * and writing its content, it must implement this interface for reading * and writing the content in a default way. This is done by implementing - * the {@link Streamable#read} and {@link Streamable#write}. IDL compiler + * the {@link Streamable#_read} and {@link Streamable#_write}. IDL compiler * should generate the implementation of this interface automatically. * * @see CustomValue for specifying the user-defined io methods. diff --git a/libjava/classpath/org/omg/CORBA/portable/ValueFactory.java b/libjava/classpath/org/omg/CORBA/portable/ValueFactory.java index 339bcddb3f5..aaffe8684d9 100644 --- a/libjava/classpath/org/omg/CORBA/portable/ValueFactory.java +++ b/libjava/classpath/org/omg/CORBA/portable/ValueFactory.java @@ -59,4 +59,4 @@ public interface ValueFactory * the stream. */ Serializable read_value(org.omg.CORBA_2_3.portable.InputStream from_stream); -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/CORBA_2_3/ORB.java b/libjava/classpath/org/omg/CORBA_2_3/ORB.java index 82660fea705..0895b803788 100644 --- a/libjava/classpath/org/omg/CORBA_2_3/ORB.java +++ b/libjava/classpath/org/omg/CORBA_2_3/ORB.java @@ -1,5 +1,5 @@ /* ORB.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,12 +38,14 @@ exception statement from your version. */ package org.omg.CORBA_2_3; +import javax.rmi.CORBA.Tie; + import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.NO_IMPLEMENT; import org.omg.CORBA.portable.ValueFactory; /** - * This class should provide the {@link org.omg.CORBA.ORB) ORB extensions, + * This class should provide the {@link org.omg.CORBA.ORB}) ORB extensions, * defined in the OMG CORBA version 2.3 specification. However in the * Sun's API specification is written that this functionality is not * implemented at least at least till 1.4 inclusive. @@ -93,10 +95,9 @@ public abstract class ORB * * @param repository_id a repository id * - * @return never * @throws NO_IMPLEMENT, always. */ - public void unregister_value_factory(String id) + public void unregister_value_factory(String repository_id) { throw new NO_IMPLEMENT(); } @@ -117,7 +118,7 @@ public abstract class ORB } /** - * This method is called by RMI-IIOP {@link javax.rmi.Tie#orb(ORB)}, + * This method is called by RMI-IIOP {@link Tie#orb(ORB)}, * passing this as parameter. The ORB will try to connect * that tie as one of its objects. */ diff --git a/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java b/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java index 23055ef2d4d..349590eed2e 100644 --- a/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java +++ b/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java @@ -1,5 +1,5 @@ /* InputStream.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -72,7 +72,7 @@ public abstract class InputStream * * As specified in OMG specification, this reads a single * boolean and then delegates either to {@link #read_Object()} (for false) - * or to {@link #read_Value()} (for true). + * or to {@link #read_value()} (for true). * * @return an abstract interface, unmarshaled from the stream. */ @@ -93,7 +93,7 @@ public abstract class InputStream * * As specified in OMG specification, this reads a single * boolean and then delegates either to {@link #read_Object(Class)} (for false) - * or to {@link #read_Value(Class)} (for true). + * or to {@link #read_value(Class)} (for true). * * @param clz a base class for the abstract interface. * @@ -125,8 +125,6 @@ public abstract class InputStream * {@link #read_value(Class)} or {@link #read_value(Serializable)} * instead. * - * @param repository_id a repository id of the value type. - * * @return an value type structure, unmarshaled from the stream */ public Serializable read_value() diff --git a/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java b/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java index 70f9a4913ba..f1369f78246 100644 --- a/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java +++ b/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java @@ -1,5 +1,5 @@ /* OutputStream.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,8 @@ package org.omg.CORBA_2_3.portable; import gnu.CORBA.CDR.Vio; import org.omg.CORBA.portable.BoxedValueHelper; +import org.omg.CORBA.portable.CustomValue; +import org.omg.CORBA.portable.StreamableValue; import org.omg.CORBA.portable.ValueBase; import java.io.Serializable; @@ -92,7 +94,7 @@ public abstract class OutputStream * Writes a value type into the output stream. * * The value type must implement either {@link CustomValue} (for user-defined - * writing method) or {@link StramableValue} (for standard writing using code, + * writing method) or {@link StreamableValue} (for standard writing using code, * generated by IDL compiler). * * The written record will have a repository id, matching the class of the @@ -109,7 +111,7 @@ public abstract class OutputStream * Write value to the stream using the boxed value helper. * * The value type must implement either {@link CustomValue} - * (for user-defined writing method) or {@link StramableValue} + * (for user-defined writing method) or {@link StreamableValue} * (for standard writing using code, generated by IDL compiler). * * @param value a value to write. @@ -129,7 +131,7 @@ public abstract class OutputStream * writing two Id inheritance hierarchy. * * The value type must implement either {@link CustomValue} - * (for user-defined writing method) or {@link StramableValue} + * (for user-defined writing method) or {@link StreamableValue} * (for standard writing using code, generated by IDL compiler). * * @param value a value type object to write. @@ -144,7 +146,7 @@ public abstract class OutputStream * repository id. * * The value type must implement either {@link CustomValue} (for user-defined - * writing method) or {@link StramableValue} (for standard writing using code, + * writing method) or {@link StreamableValue} (for standard writing using code, * generated by IDL compiler). * * @param repository_id a repository id of the value type. diff --git a/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java b/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java index cb17d5748b3..5430905e5a0 100644 --- a/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java +++ b/libjava/classpath/org/omg/CosNaming/BindingIteratorHelper.java @@ -1,5 +1,5 @@ /* BindingIteratorHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; @@ -126,15 +125,13 @@ public abstract class BindingIteratorHelper * performed to verify that the object actually supports the requested type. * The {@link BAD_OPERATION} will be thrown if unsupported operations are * invoked on the new returned reference, but no failure is expected at the - * time of the unchecked_narrow. + * time of the unchecked_narrow. See OMG issue 4158. * * @param obj the object to cast. * * @return the casted binding iterator. * * @since 1.5 - * - * @see OMG issue 4158. */ public static BindingIterator unchecked_narrow(org.omg.CORBA.Object obj) { diff --git a/libjava/classpath/org/omg/CosNaming/BindingType.java b/libjava/classpath/org/omg/CosNaming/BindingType.java index d78990349c0..480e7bb33ed 100644 --- a/libjava/classpath/org/omg/CosNaming/BindingType.java +++ b/libjava/classpath/org/omg/CosNaming/BindingType.java @@ -1,5 +1,5 @@ /* BindingType.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -62,7 +62,7 @@ public class BindingType /** * This constant means that the binding has been created by the - * means, different from the listed in {@link _ncontext} description. + * means, different from the listed in {@link #_ncontext} description. */ public static final int _nobject = 0; @@ -75,7 +75,7 @@ public class BindingType /** * This constant means that the binding has been created by the - * means, different from the listed in {@link _ncontext} description. + * means, different from the listed in {@link #_ncontext} description. */ public static final BindingType nobject = new BindingType(_nobject); @@ -101,7 +101,7 @@ public class BindingType * @param value the binding type code. * @return the matching binding type instance. * - * @throws BAD_KIND if there is no matching binding type for + * @throws BAD_PARAM if there is no matching binding type for * the passed value. */ public static BindingType from_int(int value) diff --git a/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java b/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java index 8f456ee70da..542f3e0e97b 100644 --- a/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java +++ b/libjava/classpath/org/omg/CosNaming/BindingTypeHelper.java @@ -1,5 +1,5 @@ /* BindingTypeHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/CosNaming/IstringHelper.java b/libjava/classpath/org/omg/CosNaming/IstringHelper.java index b90b452e69f..df680f43627 100644 --- a/libjava/classpath/org/omg/CosNaming/IstringHelper.java +++ b/libjava/classpath/org/omg/CosNaming/IstringHelper.java @@ -1,5 +1,5 @@ /* IstringHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -59,7 +59,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class IstringHelper { /** - * Insert the IString into Any (uses {@link Any.insert_string}). + * Insert the IString into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -70,7 +70,7 @@ public abstract class IstringHelper } /** - * Extract the IString from Any ((uses {@link Any.extract_string}). + * Extract the IString from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -100,7 +100,7 @@ public abstract class IstringHelper /** * Calls {@link InputStream#read_string()}. * - * @param instream the stream to read from. + * @param istream the stream to read from. */ public static String read(InputStream istream) { @@ -108,7 +108,7 @@ public abstract class IstringHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param ostream the stream to write into. * @param value the string (IString) value to write. diff --git a/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java b/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java index 8127aa01d9c..0f7e73b45bd 100644 --- a/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NameComponentHelper.java @@ -1,5 +1,5 @@ /* NameComponentHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -81,7 +81,7 @@ public abstract class NameComponentHelper /** * Get the repository Id of the {@link NameComponent}. - * @return + * @return "IDL:omg.org/CosNaming/NameComponent:1.0" */ public static String id() { diff --git a/libjava/classpath/org/omg/CosNaming/NameHelper.java b/libjava/classpath/org/omg/CosNaming/NameHelper.java index f66fa4f099d..d1dafb96064 100644 --- a/libjava/classpath/org/omg/CosNaming/NameHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NameHelper.java @@ -1,5 +1,5 @@ /* NameHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java index aca0e9dfd23..98d0b4a8c42 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextExtHelper.java @@ -1,5 +1,5 @@ /* NamingContextExtHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; @@ -127,15 +126,13 @@ public abstract class NamingContextExtHelper * performed to verify that the object actually supports the requested type. * The {@link BAD_OPERATION} will be thrown if unsupported operations are * invoked on the new returned reference, but no failure is expected at the - * time of the unchecked_narrow. + * time of the unchecked_narrow. See OMG issue 4158. * * @param obj the object to cast. * * @return the casted NamingContextExt * * @since 1.5 - * - * @see OMG issue 4158. */ public static NamingContextExt unchecked_narrow(org.omg.CORBA.Object obj) { diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java index 81046074416..8333ff82633 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java @@ -1,5 +1,5 @@ /* AddressHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,7 +45,6 @@ import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.Streamable; /** * Helper operations for address. Address is directly mapped into diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java index c7f3849a0c1..ea17473e30c 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java @@ -1,5 +1,5 @@ /* InvalidAddressHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,7 +41,6 @@ package org.omg.CosNaming.NamingContextExtPackage; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java index 1149194624c..5ded186a65a 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java @@ -1,5 +1,5 @@ /* InvalidAddressHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,6 +42,7 @@ import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; import org.omg.CORBA.portable.Streamable; +import org.omg.CosNaming.NamingContextPackage.NotEmpty; /** * The holder for the exception {@link InvalidAddress}. diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java index 06faa2ff940..f020cef8244 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java @@ -1,5 +1,5 @@ /* StringNameHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,11 +41,9 @@ package org.omg.CosNaming.NamingContextExtPackage; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.Streamable; /** * Helper operations for the string name. diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java index 173bb989eb7..b565530e553 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java @@ -1,5 +1,5 @@ /* URLStringHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,7 +41,6 @@ package org.omg.CosNaming.NamingContextExtPackage; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java index 48b90c25ab0..6bbd0729f7e 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextHelper.java @@ -1,5 +1,5 @@ /* NamingContextHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; @@ -135,15 +134,11 @@ public abstract class NamingContextHelper * to verify that the object actually supports the requested type. The * {@link BAD_OPERATION} will be thrown if unsupported operations are invoked * on the new returned reference, but no failure is expected at the time of - * the unchecked_narrow. + * the unchecked_narrow. See OMG issue 4158. * * @param obj the object to cast. * * @return the casted NamingContext. - * - * @since 1.5 - * - * @see OMG issue 4158. */ public static NamingContext unchecked_narrow(org.omg.CORBA.Object obj) { diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java index f43111cb20b..1eaf50d1269 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java @@ -1,5 +1,5 @@ /* AlreadyBoundHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java index 90ca3a5c5b3..59784ea1b86 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidName.java @@ -1,5 +1,5 @@ /* InvalidName.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,7 +40,6 @@ package org.omg.CosNaming.NamingContextPackage; import org.omg.CORBA.UserException; import org.omg.CORBA.portable.IDLEntity; -import org.omg.CosNaming.NameComponent; /** * The exception is thrown if the name has the zero length or is otherwise diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java index 5893332b804..b5a428cac2e 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java @@ -1,5 +1,5 @@ /* InvalidNameHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmpty.java b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmpty.java index 3fe98d56400..c80cfcc7acc 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmpty.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmpty.java @@ -71,4 +71,4 @@ public final class NotEmpty { super(why); } -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java index a9b802f9549..c4e06c39c16 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java @@ -1,5 +1,5 @@ /* NotEmptyHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java index 9d44dcbf383..ddc7701a58b 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java @@ -1,5 +1,5 @@ /* NotFoundReasonHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java index fc41b183392..a18801c66cb 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java @@ -1,5 +1,5 @@ /* NotFoundReasonHolder.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -81,7 +81,9 @@ public final class NotFoundReasonHolder /** * Get the type code of {@link NotFoundReason}. - * @return + * + * @return the typecode of enumeration, allowed value names being + * "missing_node", "not_context" and "not_object" */ public TypeCode _type() { diff --git a/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java b/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java index 03630f8d674..617f7aec4ab 100644 --- a/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java +++ b/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java @@ -66,7 +66,7 @@ public abstract class _NamingContextExtImplBase extends _NamingContextImplBase implements NamingContextExt, InvokeHandler { - static Hashtable _methods = new Hashtable(); + static Hashtable _methods = new Hashtable(); static { @@ -234,4 +234,4 @@ public abstract class _NamingContextExtImplBase } gnu.CORBA.ServiceRequestAdapter.invoke(request, this, result); } -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java b/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java index 33bddef5d74..1c2a56be60a 100644 --- a/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java +++ b/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java @@ -82,7 +82,7 @@ public abstract class _NamingContextImplBase * As there are quite many methods, it may be sensible to use the hashtable. * This field is also reused in NamingContextPOA. */ - static Hashtable methods = new Hashtable(); + static Hashtable methods = new Hashtable(); /** * Put all methods into the table. @@ -412,4 +412,4 @@ public abstract class _NamingContextImplBase gnu.CORBA.ServiceRequestAdapter.invoke(request, this, result); } -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java b/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java index ddf1422ff17..31ed2ba0253 100644 --- a/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/AnySeqHelper.java @@ -1,5 +1,5 @@ /* AnySeqHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; +import org.omg.CORBA.AnySeqHolder; import org.omg.CORBA.ORB; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java b/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java index 97b54873fbd..612ba71c3f8 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryHelper.java @@ -1,5 +1,5 @@ /* DynAnyFactoryHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,9 +42,9 @@ package org.omg.DynamicAny; import gnu.CORBA.Minor; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -88,15 +88,13 @@ public abstract class DynAnyFactoryHelper * Narrow the given object to the DynAnyFactory. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See also OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynAnyFactory. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynAnyFactory unchecked_narrow(org.omg.CORBA.Object obj) { @@ -163,7 +161,7 @@ public abstract class DynAnyFactoryHelper * This should read DynAnyFactory from the CDR input stream, but (following * the JDK 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryOperations.java b/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryOperations.java index 058e369580d..c3cd919ade1 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryOperations.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryOperations.java @@ -1,5 +1,5 @@ /* DynAnyFactoryOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,6 +39,7 @@ exception statement from your version. */ package org.omg.DynamicAny; import org.omg.CORBA.Any; +import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode; @@ -83,7 +84,7 @@ public interface DynAnyFactoryOperations * * * {@link Any} - * {@link Any} with no value and typecode of kind {@link TCKind.tk_null} + * {@link Any} with no value and typecode of kind {@link TCKind#tk_null} * {@link DynAny} * * diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java b/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java index 96dbb5fb63d..0184172265d 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java @@ -1,5 +1,5 @@ /* InconsistentTypeCodeHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java b/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java index a238bf48baa..315cddbd2dc 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnyHelper.java @@ -1,5 +1,5 @@ /* DynAnyHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,9 +41,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -86,15 +86,13 @@ public abstract class DynAnyHelper * Narrow the given object to the DynAny. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See also OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynAny. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynAny unchecked_narrow(org.omg.CORBA.Object obj) { @@ -160,7 +158,7 @@ public abstract class DynAnyHelper * This should read DynAny from the CDR input stream, but (following the JDK * 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnyOperations.java b/libjava/classpath/org/omg/DynamicAny/DynAnyOperations.java index 0e743136d38..a009f4c8805 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnyOperations.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnyOperations.java @@ -1,5 +1,5 @@ /* DynAnyOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + 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 @@ -263,7 +263,7 @@ public interface DynAnyOperations * Insert the {@link Any} value into the enclosed {@link Any} inside this * DynAny. * - * @param a_x the value being inserted. + * @param an_any the value being inserted. * @throws InvalidValue if the value type does not match the typecode of the * enclosed {@link Any}. */ @@ -452,7 +452,7 @@ public interface DynAnyOperations throws InvalidValue, TypeMismatch; /** - * Advances the internal pointer, described in the {@link current_component}, + * Advances the internal pointer, described in the {@link #current_component}, * one position forward. * * @return true if the pointer now points to the new component, false if there @@ -462,13 +462,13 @@ public interface DynAnyOperations boolean next(); /** - * Moves the internal pointer, described in the {@link current_component}, to + * Moves the internal pointer, described in the {@link #current_component}, to * the first component. */ void rewind(); /** - * Moves the internal pointer, described in the {@link current_component}, to + * Moves the internal pointer, described in the {@link #current_component}, to * the given position. * * @param p the number of the internal component on that the internal pointer @@ -537,4 +537,4 @@ public interface DynAnyOperations */ DynAny get_dyn_any() throws TypeMismatch, InvalidValue; -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java b/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java index 0258d358919..d27ad6a6b8b 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java @@ -1,5 +1,5 @@ /* InvalidValueHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java b/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java index 244a98aa0b8..7d4fc878938 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java @@ -1,5 +1,5 @@ /* TypeMismatchHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java b/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java index 66208ea19ee..f7550fd7969 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynAnySeqHelper.java @@ -1,5 +1,5 @@ /* DynAnySeq.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -51,7 +51,7 @@ import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; /** - * A helper operations for the array of {@link DynAny} ({@link DynAnySeq}). + * A helper operations for the array of {@link DynAny} (DynAny[]). * Following the 1.5 JDK specifications, DynAny (and hence an sequence of * DynAny's) is always a local object, so the two methods of this helper * ({@link #read} and {@link #write} are not in use, always throwing @@ -133,7 +133,7 @@ public abstract class DynAnySeqHelper * The method should write this object to the CDR input stream, but * (following the JDK 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java b/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java index 26824d747ae..4cd3e3a52cf 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynArrayHelper.java @@ -1,5 +1,5 @@ /* DynArrayHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,9 +40,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -85,16 +85,14 @@ public abstract class DynArrayHelper * Narrow the given object to the DynArray. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynArray. * * @since 1.5 - * - * @see OMG issue 4158. - */ + */ public static DynArray unchecked_narrow(org.omg.CORBA.Object obj) { return narrow(obj); @@ -159,7 +157,7 @@ public abstract class DynArrayHelper * This should read DynArray from the CDR input stream, but (following the JDK * 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java b/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java index 9af2e11948e..da63e844f91 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynEnumHelper.java @@ -1,5 +1,5 @@ /* DynEnumHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,9 +41,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -86,15 +86,13 @@ public abstract class DynEnumHelper * Narrow the given object to the DynEnum. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynEnum. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynEnum unchecked_narrow(org.omg.CORBA.Object obj) { @@ -160,7 +158,7 @@ public abstract class DynEnumHelper * This should read DynEnum from the CDR input stream, but (following the JDK * 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java b/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java index 4471bb26b03..e730d43bb85 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynFixedHelper.java @@ -1,5 +1,5 @@ /* DynFixedHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,9 +41,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -86,15 +86,13 @@ public abstract class DynFixedHelper * Narrow the given object to the DynFixed. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynFixed. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynFixed unchecked_narrow(org.omg.CORBA.Object obj) { @@ -160,7 +158,7 @@ public abstract class DynFixedHelper * This should read DynFixed from the CDR input stream, but (following the JDK * 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java b/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java index 0aa7cdd2ab9..f330108b0eb 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynSequenceHelper.java @@ -1,5 +1,5 @@ /* DynSequenceHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,9 +40,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -85,15 +85,13 @@ public abstract class DynSequenceHelper * Narrow the given object to the DynSequence. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynSequence. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynSequence unchecked_narrow(org.omg.CORBA.Object obj) { @@ -159,7 +157,7 @@ public abstract class DynSequenceHelper * This should read DynSequence from the CDR input stream, but (following the * JDK 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java b/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java index c683260f67d..077b7d09824 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynStructHelper.java @@ -1,5 +1,5 @@ /* DynStructHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,9 +40,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -85,15 +85,13 @@ public abstract class DynStructHelper * Narrow the given object to the DynStruct. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynStruct. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynStruct unchecked_narrow(org.omg.CORBA.Object obj) { @@ -159,7 +157,7 @@ public abstract class DynStructHelper * This should read DynStruct from the CDR input stream, but (following the * JDK 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynStructOperations.java b/libjava/classpath/org/omg/DynamicAny/DynStructOperations.java index 3b5af171044..03524b2f9ab 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynStructOperations.java +++ b/libjava/classpath/org/omg/DynamicAny/DynStructOperations.java @@ -1,5 +1,5 @@ /* DynStructOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + 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 @@ -101,7 +101,7 @@ public interface DynStructOperations * @specnote The name-based value assignment is not supported by Sun's jdk * 1.4. * - * @param an array of NameDynValuePair's, each defining a single field in the + * @param value an array of NameDynValuePair's, each defining a single field in the * structure. * * @throws TypeMismatch if the member of the passed array has a different type @@ -125,7 +125,7 @@ public interface DynStructOperations * @specnote The name-based value assignment is not supported by Sun's jdk * 1.4. * - * @param an array of NameValuePair's, each defining a single field in the + * @param value an array of NameValuePair's, each defining a single field in the * structure. * * @throws TypeMismatch if the member of the passed array has a different type diff --git a/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java b/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java index e868ea41260..f1016d078af 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynUnionHelper.java @@ -1,5 +1,5 @@ /* DynUnionHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,9 +40,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -85,15 +85,13 @@ public abstract class DynUnionHelper * Narrow the given object to the DynUnion. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynUnion. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynUnion unchecked_narrow(org.omg.CORBA.Object obj) { @@ -159,7 +157,7 @@ public abstract class DynUnionHelper * This should read DynUnion from the CDR input stream, but (following the JDK * 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/DynUnionOperations.java b/libjava/classpath/org/omg/DynamicAny/DynUnionOperations.java index c046e69e70e..30b891a2de9 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynUnionOperations.java +++ b/libjava/classpath/org/omg/DynamicAny/DynUnionOperations.java @@ -146,4 +146,4 @@ public interface DynUnionOperations */ void set_to_no_active_member() throws TypeMismatch; -} \ No newline at end of file +} diff --git a/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java b/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java index ad75bc31fe3..17d9bbc5a8b 100644 --- a/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/DynValueHelper.java @@ -1,5 +1,5 @@ /* DynValueHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,9 +40,9 @@ package org.omg.DynamicAny; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -85,15 +85,13 @@ public abstract class DynValueHelper * Narrow the given object to the DynValue. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted DynValue. * * @since 1.5 - * - * @see OMG issue 4158. */ public static DynValue unchecked_narrow(org.omg.CORBA.Object obj) { @@ -159,7 +157,7 @@ public abstract class DynValueHelper * This should read DynValue from the CDR input stream, but (following the JDK * 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java b/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java index f15b8adfa4f..fb5ea1c7fc7 100644 --- a/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/FieldNameHelper.java @@ -59,7 +59,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class FieldNameHelper { /** - * Insert the FieldName into Any (uses {@link Any.insert_string}). + * Insert the FieldName into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -70,7 +70,7 @@ public abstract class FieldNameHelper } /** - * Extract the FieldName from Any ((uses {@link Any.extract_string}). + * Extract the FieldName from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -100,7 +100,7 @@ public abstract class FieldNameHelper /** * Calls {@link InputStream#read_string()}. * - * @param instream the stream to read from. + * @param istream the stream to read from. */ public static String read(InputStream istream) { @@ -108,7 +108,7 @@ public abstract class FieldNameHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param ostream the stream to write into. * @param value the string (FieldName) value to write. diff --git a/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java b/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java index a9d9edba71a..4e133a51344 100644 --- a/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairHelper.java @@ -1,5 +1,5 @@ /* NameDynAnyPairHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -151,7 +151,7 @@ public abstract class NameDynAnyPairHelper * The method should write this object to the CDR input stream, but * (following the JDK 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java b/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java index 56e6104eca3..817ed8a70cc 100644 --- a/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java +++ b/libjava/classpath/org/omg/DynamicAny/NameDynAnyPairSeqHelper.java @@ -1,5 +1,5 @@ /* NameDynAnyPairSeq.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -52,7 +52,7 @@ import org.omg.CORBA.portable.OutputStream; /** * A helper operations for the array of {@link NameDynAnyPair} - * ({@link NameDynAnyPairSeq}). + * (NameDynAnyPair[]). * * Following the 1.5 JDK specifications, DynAny (and hence the sequence * of structures, containing DynAny) is always a local object. @@ -132,7 +132,7 @@ public abstract class NameDynAnyPairSeqHelper * The method should write this object to the CDR input stream, but * (following the JDK 1.5 API) it does not. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java b/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java index 89404f7d584..d3dc40935ae 100644 --- a/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java +++ b/libjava/classpath/org/omg/IOP/CodecFactoryHelper.java @@ -1,5 +1,5 @@ /* CodecFactoryHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,10 +41,10 @@ package org.omg.IOP; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.CompletionStatus; import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; @@ -120,15 +120,13 @@ public abstract class CodecFactoryHelper * Narrow the given object to the CodecFactory. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted CodecFactory. * * @since 1.5 - * - * @see OMG issue 4158. */ public static CodecFactory unchecked_narrow(org.omg.CORBA.Object obj) { @@ -141,7 +139,7 @@ public abstract class CodecFactoryHelper * * @specnote Suns implementation (1.4) throws this exception either. * - * @throws {@link MARSHAL}, minor code 0 and incomplete, always. + * @throws MARSHAL, minor code 0 and incomplete, always. */ public static CodecFactory read(InputStream input) { @@ -154,7 +152,7 @@ public abstract class CodecFactoryHelper * * @specnote Suns implementation (1.4) throws this exception either. * - * @throws {@link MARSHAL}, minor code 0 and incomplete, always. + * @throws MARSHAL, minor code 0 and incomplete, always. */ public static void write(OutputStream output, CodecFactory value) { diff --git a/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java b/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java index 8861e43da5f..2110f0d5b86 100644 --- a/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java +++ b/libjava/classpath/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java @@ -1,5 +1,5 @@ /* UnknownEncodingHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,7 +45,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.TCKind; import org.omg.CORBA.StructMember; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/IOP/CodecOperations.java b/libjava/classpath/org/omg/IOP/CodecOperations.java index 3dfae1207a7..873f546072a 100644 --- a/libjava/classpath/org/omg/IOP/CodecOperations.java +++ b/libjava/classpath/org/omg/IOP/CodecOperations.java @@ -1,5 +1,5 @@ /* CodecOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -66,7 +66,7 @@ public interface CodecOperations * by this {@link Codec} (wide char and wide string are not supported * by ENCODING_CDR_ENCAPS v 1.0). * - * @see decode(byte[]) + * @see #decode(byte[]) */ byte[] encode(Any that) throws InvalidTypeForEncoding; @@ -83,7 +83,7 @@ public interface CodecOperations * * @throws FormatMismatch on the invalid structure of the byte array. * - * @see encode(Any) + * @see #encode(Any) */ Any decode(byte[] them) throws FormatMismatch; @@ -96,7 +96,7 @@ public interface CodecOperations * @return the array, containing the encoded value alone (no preceeding * typecode). * - * @see decode_value(byte[], TypeCode) + * @see #decode_value(byte[], TypeCode) */ byte[] encode_value(Any that_value) throws InvalidTypeForEncoding; @@ -119,7 +119,7 @@ public interface CodecOperations * @throws TypeMismatch if discovered that the the byte array defines a * different structure. * - * @see encode_value(Any) + * @see #encode_value(Any) */ Any decode_value(byte[] them, TypeCode type) throws FormatMismatch, TypeMismatch; diff --git a/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java b/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java index 2a9295ae877..02097561747 100644 --- a/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java +++ b/libjava/classpath/org/omg/IOP/CodecPackage/FormatMismatchHelper.java @@ -1,5 +1,5 @@ /* FormatMismatchHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java b/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java index e2a8c905793..246a1b93ff0 100644 --- a/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java +++ b/libjava/classpath/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java @@ -1,5 +1,5 @@ /* InvalidTypeForEncodingHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java b/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java index 432e84d24cb..88e00a243cb 100644 --- a/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java +++ b/libjava/classpath/org/omg/IOP/CodecPackage/TypeMismatchHelper.java @@ -1,5 +1,5 @@ /* TypeMismatchHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/IOP/ComponentIdHelper.java b/libjava/classpath/org/omg/IOP/ComponentIdHelper.java index 35ffd9a69e4..f94187698a4 100644 --- a/libjava/classpath/org/omg/IOP/ComponentIdHelper.java +++ b/libjava/classpath/org/omg/IOP/ComponentIdHelper.java @@ -1,5 +1,5 @@ /* ComponentIdHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; -import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/IOP/ExceptionDetailMessage.java b/libjava/classpath/org/omg/IOP/ExceptionDetailMessage.java index 167ab1ac7e9..92a068cbaf5 100644 --- a/libjava/classpath/org/omg/IOP/ExceptionDetailMessage.java +++ b/libjava/classpath/org/omg/IOP/ExceptionDetailMessage.java @@ -1,5 +1,5 @@ /* ExceptionDetailMessage.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,7 @@ package org.omg.IOP; * USER_EXCEPTION reply status, as the alternative to the stack trace * that might contain sensitive or unwanted information. The service * context contains the CDR-encapsulated wide string, usually - * returned by {@link Exception#getMessage}. + * returned by {@link Exception#getMessage()}. *

      * The applications may also send the more comprehensive UnknownExceptionInfo * ( = 9 ) service context that contains the thrown exception, written diff --git a/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java b/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java index 1c04ec54f9c..6a941dee6ad 100644 --- a/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java +++ b/libjava/classpath/org/omg/IOP/MultipleComponentProfileHelper.java @@ -1,5 +1,5 @@ /* MultipleComponentProfileHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.TCKind; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.portable.OutputStream; @@ -52,7 +51,7 @@ import org.omg.CORBA.portable.InputStream; /** * A helper operations for the array of {@link TaggedComponent} - * ({@link MultipleComponentProfile}). + * (MultipleComponentProfile). * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ diff --git a/libjava/classpath/org/omg/IOP/ProfileIdHelper.java b/libjava/classpath/org/omg/IOP/ProfileIdHelper.java index 340fa27d550..362b2dff35b 100644 --- a/libjava/classpath/org/omg/IOP/ProfileIdHelper.java +++ b/libjava/classpath/org/omg/IOP/ProfileIdHelper.java @@ -1,5 +1,5 @@ /* ProfileIdHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; -import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java b/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java index 7875db29e1d..9de0b6ffd0d 100644 --- a/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java +++ b/libjava/classpath/org/omg/IOP/ServiceContextListHelper.java @@ -1,5 +1,5 @@ /* ServiceContextListHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,21 +43,20 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; /** * The helper operations for the -* CORBA object {@link ServiceContext[]}. +* CORBA object {@link ServiceContext}[]. * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ public abstract class ServiceContextListHelper { /** - * Get the type code of the {@link ServiceContext[]}. + * Get the type code of the {@link ServiceContext}[]. */ public static TypeCode type() { diff --git a/libjava/classpath/org/omg/IOP/ServiceIdHelper.java b/libjava/classpath/org/omg/IOP/ServiceIdHelper.java index 084dbd06d97..9c4cbbe4a3d 100644 --- a/libjava/classpath/org/omg/IOP/ServiceIdHelper.java +++ b/libjava/classpath/org/omg/IOP/ServiceIdHelper.java @@ -1,5 +1,5 @@ /* ServiceIdHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; -import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/IOP/TAG_CODE_SETS.java b/libjava/classpath/org/omg/IOP/TAG_CODE_SETS.java index cc775248379..07c5c9c3200 100644 --- a/libjava/classpath/org/omg/IOP/TAG_CODE_SETS.java +++ b/libjava/classpath/org/omg/IOP/TAG_CODE_SETS.java @@ -1,5 +1,5 @@ /* TAG_CODE_SETS.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,7 @@ package org.omg.IOP; * profile provides information about the native and supported encodings * for the "narrow" (usually 8 bit) and "wide" (usually 16 bit) characters. * In Gnu Classpath implementation the class, responsible for providing - * this information is {@link gnu.CORBA.CharSets_OSF}. + * this information is {@link gnu.CORBA.GIOP.CharSets_OSF}. *

      *

      * If this profile is missing, it is assumed, that the "narrow" characters diff --git a/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java b/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java index 73efa122f2e..e4d70211a13 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInfoOperations.java @@ -1,5 +1,5 @@ /* ClientRequestInfoOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,6 +39,7 @@ exception statement from your version. */ package org.omg.PortableInterceptor; import org.omg.CORBA.Any; +import org.omg.CORBA.BAD_INV_ORDER; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.INV_POLICY; import org.omg.CORBA.Policy; @@ -285,8 +286,6 @@ public interface ClientRequestInfoOperations extends RequestInfoOperations * @param type the type of the policy being requested. * * @return should return the policy that applies to this operation. - * - * @throws NO_IMPLEMENT always. */ Policy get_request_policy(int type) throws INV_POLICY; diff --git a/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java b/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java index 4a60b77f5d1..efd98707bd6 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java @@ -1,5 +1,5 @@ /* ClientRequestInterceptorOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package org.omg.PortableInterceptor; +import org.omg.CORBA.SystemException; + /** * Defines operations, applicable to the client side request interceptor. The diff --git a/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java b/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java index e453f601021..88ab0e2708d 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/CurrentHelper.java @@ -1,5 +1,5 @@ /* CurrentHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,13 +42,12 @@ import gnu.CORBA.Minor; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; -import org.omg.PortableServer.ServantActivator; /** * The helper operations for the CORBA object {@link Current}. @@ -123,15 +122,13 @@ public abstract class CurrentHelper * Narrow the given object to the Current. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See also OMG issue 4158. * * @param obj the object to cast. * * @return the casted Current. * * @since 1.5 - * - * @see OMG issue 4158. */ public static Current unchecked_narrow(org.omg.CORBA.Object obj) { diff --git a/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java b/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java index 9495d79ecec..ec7235102c8 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java +++ b/libjava/classpath/org/omg/PortableInterceptor/IORInfo.java @@ -1,5 +1,5 @@ /* IORInfo.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,7 @@ import java.io.Serializable; * Provides the server-side ORB service possibility to add components to the new * IOR being created. Also, provides access to policies, applicable to the * object, referenced by that IOR. The ORB passes an instance of IORInfo as a - * parameter to {@link IORInterceptor#establish_components}. + * parameter to {@link IORInterceptorOperations#establish_components}. * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ diff --git a/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java b/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java index 926974f1ab8..71fb928f791 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java @@ -1,5 +1,5 @@ /* IORInterceptor_3_0Helper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.Delegate; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java index 8332845a662..6b73b115133 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBIdHelper.java @@ -1,5 +1,5 @@ /* ORBIdHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,7 +58,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class ORBIdHelper { /** - * Insert the ORB Id into Any (uses {@link Any.insert_string}). + * Insert the ORB Id into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -69,7 +69,7 @@ public abstract class ORBIdHelper } /** - * Extract the ORB Id from Any ((uses {@link Any.extract_string}). + * Extract the ORB Id from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -107,7 +107,7 @@ public abstract class ORBIdHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param output the stream to write into. * @param value the string (ORB Id) value to write. diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java index 7b545ff8168..16710a08ab0 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoOperations.java @@ -1,5 +1,5 @@ /* ORBInitInfoOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package org.omg.PortableInterceptor; +import org.omg.CORBA.BAD_INV_ORDER; +import org.omg.CORBA.ORB; import org.omg.IOP.CodecFactory; import org.omg.PortableInterceptor.ORBInitInfoPackage.DuplicateName; @@ -90,7 +92,7 @@ public interface ORBInitInfoOperations throws DuplicateName; /** - * Allocate a slot on a {@link PortableInterceptor.Current}. While slots can + * Allocate a slot on a {@link Current} of this interceptor. While slots can * be allocated by this method, they cannot be initialized. * {@link CurrentOperations#get_slot} and {@link CurrentOperations#set_slot} * throw {@link org.omg.CORBA.BAD_INV_ORDER} while called from the interceptor @@ -103,8 +105,8 @@ public interface ORBInitInfoOperations /** * Returns the arguments passed to the ORB.init. * - * @return the first parameter, passed to the method - * {@link org.omg.CORBA.ORB#init}. + * @return the first parameter, passed to the methods from the group + * org.omg.CORBA.ORB#init(String[], ...). */ String[] arguments(); @@ -127,7 +129,7 @@ public interface ORBInitInfoOperations /** * Register the initial reference. The registered object will be accessible by - * the {@link ORB.resolve_initial_references} under the object_name. + * the {@link ORB#resolve_initial_references} under the object_name. * * @param object_name the name of the object to register. * @param object the object to register. diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java index a87a3b747fd..329fcf56462 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java @@ -1,5 +1,5 @@ /* InvalidNameHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java index 90c2325f22b..d5dd771fd98 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitializerOperations.java @@ -1,5 +1,5 @@ /* ORBInitializerOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -67,7 +67,7 @@ public interface ORBInitializerOperations * @param info the object describing ORB being created and containing methods * to register the interceptor. * - * @see ORBInitInfoOperations#register_initial_references + * @see ORBInitInfoOperations#register_initial_reference */ void post_init(ORBInitInfo info); } \ No newline at end of file diff --git a/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java index 72c864811f7..b9a237dce77 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java @@ -1,5 +1,5 @@ /* ObjectReferenceFactoryHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.ValueMember; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java index 014c11308c2..0ea54ea5f30 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java @@ -1,5 +1,5 @@ /* ObjectReferenceTemplateHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.VM_ABSTRACT; import org.omg.CORBA.ValueMember; diff --git a/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java b/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java index f865a14d258..10b9662a634 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java +++ b/libjava/classpath/org/omg/PortableInterceptor/RequestInfoOperations.java @@ -1,5 +1,5 @@ /* RequestInfoOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,6 +40,7 @@ package org.omg.PortableInterceptor; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_PARAM; +import org.omg.CORBA.NO_RESOURCES; import org.omg.CORBA.TypeCode; import org.omg.Dynamic.Parameter; import org.omg.IOP.ServiceContext; @@ -182,7 +183,7 @@ public interface RequestInfoOperations * the client. However up till JDK 1.5 inclusive this method always returns * SYNC_WITH_TRANSPORT. * - * @return {@link org.omg.Messaging.SYNC_WITH_TRANSPORT.value (1), always. + * @return {@link org.omg.Messaging.SYNC_WITH_TRANSPORT#value} (1), always. * * @specnote as defined in the Suns 1.5 JDK API. */ diff --git a/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java index e4f8fe9c28f..84ffdfa8e66 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ServerIdHelper.java @@ -1,5 +1,5 @@ /* ServerIdHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,7 +58,7 @@ import org.omg.CORBA.portable.OutputStream; public abstract class ServerIdHelper { /** - * Insert the Server Id into Any (uses {@link Any.insert_string}). + * Insert the Server Id into Any (uses {@link Any#insert_string}). * * @param a the Any to insert into. * @param that the string to insert. @@ -69,7 +69,7 @@ public abstract class ServerIdHelper } /** - * Extract the Server Id from Any ((uses {@link Any.extract_string}). + * Extract the Server Id from Any ((uses {@link Any#extract_string}). * * @param a the Any to extract from. */ @@ -107,7 +107,7 @@ public abstract class ServerIdHelper } /** - * Calls {@link OutputStream#write_string()}. + * Calls {@link OutputStream#write_string(String)}. * * @param output the stream to write into. * @param value the string (Server Id) value to write. diff --git a/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java b/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java index a9ee7d92032..52de9d824c0 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInfoOperations.java @@ -1,5 +1,5 @@ /* ServerRequestInfoOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,6 +39,7 @@ exception statement from your version. */ package org.omg.PortableInterceptor; import org.omg.CORBA.Any; +import org.omg.CORBA.BAD_INV_ORDER; import org.omg.CORBA.INV_POLICY; import org.omg.CORBA.Policy; import org.omg.IOP.ServiceContext; @@ -287,7 +288,7 @@ public interface ServerRequestInfoOperations /** * Checks if the servant is the given repository id. * - * @param the repository id to compare. + * @param id the repository id to compare. * * @return true if the servant repository id matches the parameter, false * otherwise. diff --git a/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java b/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java index b57ca28f7ac..ccba1a76efa 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java @@ -38,6 +38,8 @@ exception statement from your version. */ package org.omg.PortableInterceptor; +import org.omg.CORBA.SystemException; + /** * Defines operations, applicable to the server side request interceptor. The @@ -50,16 +52,16 @@ public interface ServerRequestInterceptorOperations { /** * ORB calls this method before invoking the servant manager. Operation - * parameters are not available at this point. The interceptor has possibility + * parameters are not available at this point. The interceptor has possibility * to forward the request by throwing {@link ForwardRequest}. - * - * @throws SystemException if it does, the receive_request_service_contexts is - * not called for the subsequent interceptors, calling send_exception instead. - * The completion status of such exception must be COMPLETED_NO. - * + * + * @throws SystemException if it does, the receive_request_service_contexts is + * not called for the subsequent interceptors, calling + * send_exception instead. The completion status of such exception + * must be COMPLETED_NO. * @throws ForwardRequest to forward the invocation to another target. The - * receive_request_service_contexts is not called for the subsequent - * interceptors, calling send_other instead. + * receive_request_service_contexts is not called for the subsequent + * interceptors, calling send_other instead. */ void receive_request_service_contexts(ServerRequestInfo info) throws ForwardRequest; diff --git a/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java b/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java index dcf7edd0463..d1091852e7a 100644 --- a/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java +++ b/libjava/classpath/org/omg/PortableServer/AdapterActivatorOperations.java @@ -1,5 +1,5 @@ /* AdapterActivatorOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package org.omg.PortableServer; +import org.omg.CORBA.OBJECT_NOT_EXIST; + /** * Defines the operations, applicable to the AdapterActivator. diff --git a/libjava/classpath/org/omg/PortableServer/CurrentHelper.java b/libjava/classpath/org/omg/PortableServer/CurrentHelper.java index 3afbf669b4b..f201e38bc1b 100644 --- a/libjava/classpath/org/omg/PortableServer/CurrentHelper.java +++ b/libjava/classpath/org/omg/PortableServer/CurrentHelper.java @@ -1,5 +1,5 @@ /* CurrentHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,9 +41,9 @@ package org.omg.PortableServer; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.NO_IMPLEMENT; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java b/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java index 02c74c535c5..4a2a9a6a096 100644 --- a/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java +++ b/libjava/classpath/org/omg/PortableServer/CurrentPackage/NoContextHelper.java @@ -1,5 +1,5 @@ /* NoContextHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java b/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java index b30a2abebbb..d5d5751b9e7 100644 --- a/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java +++ b/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java @@ -1,5 +1,5 @@ /* ForwardRequestHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,6 +39,7 @@ exception statement from your version. */ package org.omg.PortableServer; import gnu.CORBA.Minor; +import gnu.CORBA.ObjectCreator; import gnu.CORBA.OrbRestricted; import gnu.CORBA.Poa.ForwardRequestHolder; diff --git a/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java b/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java index ac81d389cdd..cc6f3962a08 100644 --- a/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java +++ b/libjava/classpath/org/omg/PortableServer/IdAssignmentPolicyValue.java @@ -1,5 +1,5 @@ /* IdAssignmentPolicyValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java b/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java index c0f281249b0..0294ee20997 100644 --- a/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java +++ b/libjava/classpath/org/omg/PortableServer/IdUniquenessPolicyValue.java @@ -1,5 +1,5 @@ /* IdUniquenessPolicyValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java b/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java index 9d81d5fab81..6631424c47d 100644 --- a/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java +++ b/libjava/classpath/org/omg/PortableServer/ImplicitActivationPolicyValue.java @@ -1,5 +1,5 @@ /* ImplicitActivationPolicyValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java b/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java index 117eb5a3c9e..e1ab856b031 100644 --- a/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java +++ b/libjava/classpath/org/omg/PortableServer/LifespanPolicyValue.java @@ -1,5 +1,5 @@ /* LifespanPolicyValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/PortableServer/POA.java b/libjava/classpath/org/omg/PortableServer/POA.java index 863a12bf821..624d658da74 100644 --- a/libjava/classpath/org/omg/PortableServer/POA.java +++ b/libjava/classpath/org/omg/PortableServer/POA.java @@ -1,5 +1,5 @@ /* POA.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -55,8 +55,8 @@ import org.omg.CORBA.portable.IDLEntity; * strategies are possible. *

      * - * @see org.omg.CORBA.ORB.resolve_initial_references - * @see POAOperations.servant_to_reference + * @see org.omg.CORBA.ORB#resolve_initial_references + * @see POAOperations#servant_to_reference * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ diff --git a/libjava/classpath/org/omg/PortableServer/POAHelper.java b/libjava/classpath/org/omg/PortableServer/POAHelper.java index d6a951be52b..122cfb304c0 100644 --- a/libjava/classpath/org/omg/PortableServer/POAHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAHelper.java @@ -1,5 +1,5 @@ /* POAHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,9 +41,9 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import gnu.CORBA.OrbRestricted; +import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.ORB; import org.omg.CORBA.Any; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.MARSHAL; @@ -139,7 +139,7 @@ public abstract class POAHelper * it doesnot. The jdk 1.5 API specification defines that POA cannot be * exported. * - * @param input a org.omg.CORBA.portable stream to read from. + * @param output a org.omg.CORBA.portable stream to write into. * * @specenote Sun throws the same exception. * diff --git a/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java b/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java index e23d11997b4..e6a3068af0a 100644 --- a/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java b/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java index 9e856098b0b..b32d420a85c 100644 --- a/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java +++ b/libjava/classpath/org/omg/PortableServer/POAManagerPackage/State.java @@ -1,5 +1,5 @@ /* State.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,8 @@ package org.omg.PortableServer.POAManagerPackage; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; +import org.omg.CORBA.TRANSIENT; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; @@ -54,7 +56,7 @@ import java.io.Serializable; * receive and process requests. *
    • DISCARDING When the manager is in the discarding state, * the associated POAs discard all incoming requests. The sending clients - * receive the {@link org.omg.TRANSIENT} system exception, with standard + * receive the {@link TRANSIENT} system exception, with standard * minor code 1. This mode is needed for flow control, when the system is * flooded with requests. *
    • diff --git a/libjava/classpath/org/omg/PortableServer/POAOperations.java b/libjava/classpath/org/omg/PortableServer/POAOperations.java index 1c22ceed2e4..58d062d2bc6 100644 --- a/libjava/classpath/org/omg/PortableServer/POAOperations.java +++ b/libjava/classpath/org/omg/PortableServer/POAOperations.java @@ -1,5 +1,5 @@ /* POAOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,7 +38,11 @@ exception statement from your version. */ package org.omg.PortableServer; +import org.omg.CORBA.BAD_INV_ORDER; +import org.omg.CORBA.BAD_PARAM; +import org.omg.CORBA.OBJ_ADAPTER; import org.omg.CORBA.Policy; +import org.omg.CORBA.TRANSIENT; import org.omg.PortableServer.POAPackage.AdapterAlreadyExists; import org.omg.PortableServer.POAPackage.AdapterNonExistent; import org.omg.PortableServer.POAPackage.InvalidPolicy; @@ -107,7 +111,7 @@ public interface POAOperations * the Active Object Map using this Id a a key. If the servant * activator is set, its incarnate method will be called. In this case, * the passed servant in this method can be null; in this case, the servant, - * returned by {@link ServantLocatorOperations#incarnate} will + * returned by {@link ServantActivatorOperations#incarnate} will * be used. * * @param a_servant a servant that would serve the object with the @@ -129,7 +133,7 @@ public interface POAOperations * object with the provided Object Id. If the servant activator is * set, its incarnate method will be called. In this case, * the passed servant in this method can be null; in this case, the servant, - * returned by {@link ServantLocatorOperations#incarnate} will + * returned by {@link ServantActivatorOperations#incarnate} will * be used. * * @param an_Object_Id an object id for the given object. @@ -241,7 +245,7 @@ public interface POAOperations /** * Set a servant manager for this POA. * - * @param a servant manager being set. If the RETAIN policy applies, the + * @param a_manager servant manager being set. If the RETAIN policy applies, the * manager must implement a {@link ServantActivator}. If the NON_RETAIN * policy applies, the manager must implement a {@link ServantLocator}. * @@ -298,7 +302,7 @@ public interface POAOperations * @param the_Object_Id the object id. * * @throws ObjectNotActive if there is no active object with such Id. - * @throws WrongPolicy. This method requires either RETAIN or + * @throws WrongPolicy This method requires either RETAIN or * USE_DEFAULT_SERVANT policies and reaises the WrongPolicy if none of them * apply to this POA. */ @@ -328,7 +332,7 @@ public interface POAOperations * * @throws ObjectNotActive if none of the conditions above are satisfied. * @throws WrongAdapter if the object reference was not created with this POA. - * @throws WrongPolicy. This method requires either RETAIN or + * @throws WrongPolicy This method requires either RETAIN or * USE_DEFAULT_SERVANT policies and reaises the WrongPolicy if none of them * apply to this POA. */ @@ -408,7 +412,7 @@ public interface POAOperations /** * Set the adapter activator for this POA. * - * @param the activator being set. + * @param activator the activator being set. */ void the_activator(AdapterActivator activator); @@ -437,7 +441,7 @@ public interface POAOperations *

      Destroy this POA and all descendant POAs. The destroyed POAs can be * later re-created via {@link AdapterActivator} or by invoking * {@link #create_POA}. - * This differs from {@link PoaManagerOperations#deactivate} that does + * This differs from {@link POAManagerOperations#deactivate} that does * not allow recreation of the deactivated POAs. After deactivation, * recreation is only possible if the POAs were later destroyed. *

      @@ -462,7 +466,7 @@ public interface POAOperations /** * Create the IdUniquenessPolicy policy. * - * @param value states which one Id uniqueness policy will apply. + * @param a_value states which one Id uniqueness policy will apply. * * @return the created policy. */ @@ -471,7 +475,7 @@ public interface POAOperations /** * Create the ImplicitActivationPolicy policy. * - * @param value states which one activation policy will apply. + * @param a_value states which one activation policy will apply. * * @return the created policy. */ @@ -480,7 +484,7 @@ public interface POAOperations /** * Create the LifespanPolicy policy. * - * @param value states which one object lifespan policy will apply. + * @param a_value states which one object lifespan policy will apply. * * @return the created policy. */ @@ -489,7 +493,7 @@ public interface POAOperations /** * Create the RequestProcessingPolicy policy. * - * @param value states which one request processing policy will apply. + * @param a_value states which one request processing policy will apply. * * @return the created policy. */ @@ -498,7 +502,7 @@ public interface POAOperations /** * Create the ServantRetentionPolicy policy. * - * @param value states which one servant retention policy will apply. + * @param a_value states which one servant retention policy will apply. * * @return the created policy. */ @@ -507,7 +511,7 @@ public interface POAOperations /** * Create the ThreadPolicy policy. * - * @param value states which one thread policy will apply. + * @param a_value states which one thread policy will apply. * * @return the created policy. */ diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java index f616637ae26..6476eeaa5ac 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java @@ -1,5 +1,5 @@ /* AdapterAlreadyExistsHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java index bad920a5a4e..1c007fb43b9 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java @@ -1,5 +1,5 @@ /* AdapterNonExistentHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java b/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java index 51ef615fbc2..470d9af4a0c 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicy.java @@ -69,7 +69,7 @@ public final class InvalidPolicy /** * Create InvalidPolicy with no explaining - * message and leaving {@link index} with default 0 value. + * message and leaving {@link #index} with default 0 value. */ public InvalidPolicy() { @@ -77,7 +77,7 @@ public final class InvalidPolicy /** * Create the InvalidPolicy with explaining - * message and initialisintg {@link index} to the passed value. + * message and initialisintg {@link #index} to the passed value. * * @param why a string, explaining, why this exception has been thrown. * @param a_index a value for index. @@ -90,7 +90,7 @@ public final class InvalidPolicy /** * Create the InvalidPolicy without explaining - * message and initialisintg {@link index} to the passed value. + * message and initialisintg {@link #index} to the passed value. * * @param a_index a value for index. */ diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java index b9afb8ed79e..56e8c4d16d9 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/NoServantHelper.java @@ -1,5 +1,5 @@ /* NoServantHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java index bf5e9cd9ef2..7f2e1484c08 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java @@ -1,5 +1,5 @@ /* ObjectAlreadyActiveHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java index 2f5867cbdb5..4cdf80891cd 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java @@ -1,5 +1,5 @@ /* ObjectNotActiveHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java index 33ca0667482..30b0b52d021 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java @@ -1,5 +1,5 @@ /* ServantAlreadyActiveHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java index e86f4e948f7..f77ecfc50a6 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java @@ -1,5 +1,5 @@ /* ServantNotActiveHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java index 7650014c1f5..f1181fe61e5 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/WrongAdapterHelper.java @@ -1,5 +1,5 @@ /* WrongAdapterHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java index a9e7fc594d5..bd09c2e9643 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/WrongPolicyHelper.java @@ -1,5 +1,5 @@ /* WrongPolicyHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; -import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; diff --git a/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java b/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java index 0b1ce4d0bfa..2f22e309082 100644 --- a/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java +++ b/libjava/classpath/org/omg/PortableServer/RequestProcessingPolicyValue.java @@ -1,5 +1,5 @@ /* RequestProcessingPolicyValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/PortableServer/Servant.java b/libjava/classpath/org/omg/PortableServer/Servant.java index 5c99ee1a0e3..24eb715a98d 100644 --- a/libjava/classpath/org/omg/PortableServer/Servant.java +++ b/libjava/classpath/org/omg/PortableServer/Servant.java @@ -80,7 +80,7 @@ import gnu.CORBA.Poa.gnuPOA; * The Servant type is a CORBA native type. *

      * - * @see POA.servant_to_reference(Servant) + * @see POA#servant_to_reference(Servant) * * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) */ @@ -128,8 +128,7 @@ public abstract class Servant * Checks if the passed servant is an instance of the given CORBA IDL type. * By default, forwards the requet to the delegate. * - * @param a_servant a servant to check. - * @param an_id a repository ID, representing an IDL type for that the + * @param repository_id a repository ID, representing an IDL type for that the * servant must be checked. * * @return true if the servant is an instance of the given type, false @@ -166,7 +165,7 @@ public abstract class Servant * reference "RootPOA" for that orb. By default, forwards request to the * delegate. * - * @see ORB.resolve_initial_references + * @see ORB#resolve_initial_references */ public POA _default_POA() { @@ -214,7 +213,7 @@ public abstract class Servant * the given servant. This is important when the same servant serves * multiple objects. If the servant is not yet connected to the passed * orb, the method will try to connect it to that orb on POA, returned - * by the method {@link _default_POA}. That method can be overridden to + * by the method {@link #_default_POA}. That method can be overridden to * get poa where the object must be automatically connected when * calling this method. * diff --git a/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java b/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java index e1c4f09c869..48598aa20e0 100644 --- a/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java +++ b/libjava/classpath/org/omg/PortableServer/ServantActivatorHelper.java @@ -1,5 +1,5 @@ /* ServantActivatorHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,7 +45,6 @@ import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; @@ -121,15 +120,13 @@ public abstract class ServantActivatorHelper * Narrow the given object to the ServantActivator. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted ServantActivator. * * @since 1.5 - * - * @see OMG issue 4158. */ public static ServantActivator unchecked_narrow(org.omg.CORBA.Object obj) { diff --git a/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java b/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java index 7bb933f7b9f..467464791da 100644 --- a/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java +++ b/libjava/classpath/org/omg/PortableServer/ServantLocatorHelper.java @@ -1,5 +1,5 @@ /* ServantLocatorHelper.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,8 +43,8 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ORB; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; @@ -121,15 +121,13 @@ public abstract class ServantLocatorHelper * Narrow the given object to the ServantLocator. For the objects that are * always local, this operation does not differ from the ordinary * {@link #narrow} (ClassCastException will be thrown if narrowing something - * different). + * different). See OMG issue 4158. * * @param obj the object to cast. * * @return the casted ServantLocator. * * @since 1.5 - * - * @see OMG issue 4158. */ public static ServantLocator unchecked_narrow(org.omg.CORBA.Object obj) { diff --git a/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java b/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java index 6ed214e2f27..58448c1af03 100644 --- a/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java +++ b/libjava/classpath/org/omg/PortableServer/ServantLocatorOperations.java @@ -1,5 +1,5 @@ /* ServantLocatorOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -60,7 +60,7 @@ public interface ServantLocatorOperations * @param operation the name of the method or operation being invoked. * @param cookie_holder the holder where the servant manager can store * an arbitrary java.lang.Object. This object will be later passed as a - * cookie parameter for {@link postinvoke}, to create tie + * cookie parameter for {@link #postinvoke}, to create tie * between preinvoke and postinvoke. The application should not * suppose that each call of preinvoke is followed by the subsequent * postinvoke for the same invocation; under multi threaded policy these diff --git a/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java b/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java index 0b6ecf62fe1..607df1293a1 100644 --- a/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java +++ b/libjava/classpath/org/omg/PortableServer/ServantRetentionPolicyValue.java @@ -1,5 +1,5 @@ /* ServantRetentionPolicyValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java b/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java index 5c771a7d624..2ba1b8e821d 100644 --- a/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java +++ b/libjava/classpath/org/omg/PortableServer/ThreadPolicyValue.java @@ -1,5 +1,5 @@ /* ThreadPolicyValue.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ package org.omg.PortableServer; import gnu.CORBA.Minor; import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.portable.IDLEntity; import java.io.Serializable; diff --git a/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java b/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java index 6f907159380..f323f6d381c 100644 --- a/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java +++ b/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java @@ -1,5 +1,5 @@ /* _ServantActivatorStub.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,18 +38,10 @@ exception statement from your version. */ package org.omg.PortableServer; -import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ORB; -import org.omg.CORBA.ObjectHelper; -import org.omg.CORBA.portable.ApplicationException; -import org.omg.CORBA.portable.Delegate; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.ObjectImpl; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.RemarshalException; - import java.io.Serializable; +import org.omg.CORBA.portable.ObjectImpl; + /** *

      This ServantActivator stub is an optional base for the * servant activators. This stub cannot accept remote invocations, as diff --git a/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java b/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java index 8234ba2c79e..9f142e1e839 100644 --- a/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java +++ b/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java @@ -1,5 +1,5 @@ /* _ServantLocatorStub.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. diff --git a/libjava/classpath/org/omg/PortableServer/portable/Delegate.java b/libjava/classpath/org/omg/PortableServer/portable/Delegate.java index 70e05e7bf05..3c61122b70c 100644 --- a/libjava/classpath/org/omg/PortableServer/portable/Delegate.java +++ b/libjava/classpath/org/omg/PortableServer/portable/Delegate.java @@ -1,5 +1,5 @@ /* DelegateOperations.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -55,11 +55,11 @@ public interface Delegate /** * Returns the root POA of the ORB instance, associated with this servant. * It is the same POA that would be returned by resolving the initial - * reference "RootPOA" for that orb. The default {@link Servant#default_POA} + * reference "RootPOA" for that orb. The default {@link Servant#_default_POA()} * method forwards call to the delegate can be overridden to * obtain the alternative default POA. * - * @see ORB.resolve_initial_references + * @see ORB#resolve_initial_references */ POA default_POA(Servant a_servant); diff --git a/libjava/classpath/org/omg/stub/java/rmi/_Remote_Stub.java b/libjava/classpath/org/omg/stub/java/rmi/_Remote_Stub.java index da597e9173f..0d0bac661dd 100644 --- a/libjava/classpath/org/omg/stub/java/rmi/_Remote_Stub.java +++ b/libjava/classpath/org/omg/stub/java/rmi/_Remote_Stub.java @@ -75,4 +75,4 @@ public final class _Remote_Stub return new String[] { "" }; } -} \ No newline at end of file +} diff --git a/libjava/classpath/resource/.cvsignore b/libjava/classpath/resource/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/resource/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/resource/META-INF/services/.cvsignore b/libjava/classpath/resource/META-INF/services/.cvsignore new file mode 100644 index 00000000000..00abb1c136f --- /dev/null +++ b/libjava/classpath/resource/META-INF/services/.cvsignore @@ -0,0 +1 @@ +java.util.prefs.PreferencesFactory diff --git a/libjava/classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory b/libjava/classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory deleted file mode 100644 index 8d05bb13ae6..00000000000 --- a/libjava/classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory +++ /dev/null @@ -1 +0,0 @@ -gnu.java.util.prefs.GConfBasedFactory diff --git a/libjava/classpath/resource/Makefile.am b/libjava/classpath/resource/Makefile.am index 09419642eac..4369810226f 100644 --- a/libjava/classpath/resource/Makefile.am +++ b/libjava/classpath/resource/Makefile.am @@ -1,7 +1,7 @@ ## used by automake to generate Makefile.in logging_DATA = java/util/logging/logging.properties -loggingdir = $(toolexeclibdir) +loggingdir = $(prefix)/lib security_DATA = java/security/classpath.security -securitydir = $(toolexeclibdir)/security +securitydir = $(prefix)/lib/security diff --git a/libjava/classpath/resource/Makefile.in b/libjava/classpath/resource/Makefile.in index b9be08aa0b2..118fe25dc71 100644 --- a/libjava/classpath/resource/Makefile.in +++ b/libjava/classpath/resource/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -168,6 +170,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -289,12 +293,11 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ logging_DATA = java/util/logging/logging.properties -loggingdir = $(toolexeclibdir) +loggingdir = $(prefix)/lib security_DATA = java/security/classpath.security -securitydir = $(toolexeclibdir)/security +securitydir = $(prefix)/lib/security all: all-am .SUFFIXES: diff --git a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties b/libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties deleted file mode 100644 index bbd7618a6b5..00000000000 --- a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties +++ /dev/null @@ -1,70 +0,0 @@ -# MessagesBundle.properties -- English language messages -# Copyright (C) 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. - -gcjwebplugin.code_description=specify the code attribute -gcjwebplugin.codebase_description=specify the codebase attribute -gcjwebplugin.archive_description=specify the archive attribute -gcjwebplugin.width_description=specify the width attribute -gcjwebplugin.height_description=specify the height attribute -gcjwebplugin.param_description=specify the parameter arguments -gcjwebplugin.plugin_description=enable plugin mode -gcjwebplugin.verbose_description=enable verbose mode -gcjwebplugin.debug_description=enable debugging mode (not implemented) -gcjwebplugin.encoding_description=specify the HTML character encoding - -gcjwebplugin.no_input_files=appletviewer: no input files - -gcjwebplugin.menu_title=Applet -gcjwebplugin.menu_reload=Reload -gcjwebplugin.menu_restart=Restart -gcjwebplugin.menu_start=Start -gcjwebplugin.menu_stop=Stop -gcjwebplugin.menu_clone=Clone ... -gcjwebplugin.menu_quit=Quit -gcjwebplugin.menu_close=Close -gcjwebplugin.menu_tag=Tag ... -gcjwebplugin.menu_info=Info ... -gcjwebplugin.menu_edit=Edit -gcjwebplugin.menu_encoding=Character Encoding -gcjwebplugin.menu_print=Print ... -gcjwebplugin.menu_properties=Properties ... -gcjwebplugin.menu_cancel=Cancel -gcjwebplugin.menu_save=Save ... - -gcjwebplugin.console_title=GCJ web plugin console -gcjwebplugin.console_clear=Clear -gcjwebplugin.console_hide=Hide diff --git a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties b/libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties deleted file mode 100644 index 036b86f30cd..00000000000 --- a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties +++ /dev/null @@ -1,75 +0,0 @@ -# MessagesBundle_de.properties -- German language messages -# Copyright (C) 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. - -# FIXME: rewrite this: -gcjwebplugin.help.0=Syntax: appletviewer [Optionen] .class | .html... | URL... -gcjwebplugin.help.1=Optionen: -gcjwebplugin.help.2= --help Diese Hilfe anzeigen and beenden -gcjwebplugin.help.3= --version Version anzeigen und beenden -gcjwebplugin.help.4= --code=[.class] Applet mit Klassen- oder Dateiname ausführen -gcjwebplugin.help.5= --codebase= Applet-Codebasis setzen -gcjwebplugin.help.6= --archive=.jar[,...] Archive zum Klassenlader hinzufügen -gcjwebplugin.help.7= --param=, Parameter an Applet übergeben -gcjwebplugin.help.8= --width= Setze Breite des Appletfensters -gcjwebplugin.help.9= --height= Setze Höhe des Appletfensters -gcjwebplugin.help.10= --plugin=, Pluginmodus einschalten -gcjwebplugin.help.11= -debug Starten des Applet-Viewers im Java-Debugger (nicht implementiert) -gcjwebplugin.help.12= -encoding Angabe der von HTML-Dateien verwendeten Zeichencodierung -gcjwebplugin.help.13= -J Übergeben des Arguments an den Java-Interpreter - -gcjwebplugin.no_input_files=appletviewer: keine Dateien angegeben - -gcjwebplugin.menu_title=Applet -gcjwebplugin.menu_reload=Neu laden -gcjwebplugin.menu_restart=Neu starten -gcjwebplugin.menu_start=Start -gcjwebplugin.menu_stop=Stop -gcjwebplugin.menu_clone=Klonen ... -gcjwebplugin.menu_quit=Beenden -gcjwebplugin.menu_tag=Tag ... -gcjwebplugin.menu_info=Informationen ... -gcjwebplugin.menu_edit=Bearbeiten -gcjwebplugin.menu_encoding=Zeichenkodierung -gcjwebplugin.menu_print=Drucken ... -gcjwebplugin.menu_properties=Eigenschaften ... -gcjwebplugin.menu_close=Schließen -gcjwebplugin.menu_cancel=Abbrechen -gcjwebplugin.menu_save=Speichern unter ... - -gcjwebplugin.console_title=GCJ web plugin Konsole -gcjwebplugin.console_clear=Löschen -gcjwebplugin.console_hide=Schließen diff --git a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties new file mode 100644 index 00000000000..c826afa2197 --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties @@ -0,0 +1,102 @@ +# messages.properties -- English language messages +# Copyright (C) 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. + +Main.ErrorApplet=An error occurred while loading this applet. +Main.Usage=Usage: appletviewer [OPTION] -code CODE | URL... +Main.AppletTagOptions=Applet tag options +Main.CodeDescription=specify the code attribute +Main.CodeArgument=CODE +Main.CodebaseDescription=specify the codebase attribute +Main.CodebaseArgument=CODEBASE +Main.ArchiveDescription=specify the archive attribute +Main.ArchiveArgument=ARCHIVE +Main.WidthDescription=specify the width attribute +Main.WidthArgument=WIDTH +Main.HeightDescription=specify the height attribute +Main.HeightArgument=HEIGHT +Main.ParamDescription=specify the parameter arguments +Main.ParamArgument=NAME,VALUE +Main.PluginOption=Plugin option +Main.PluginDescription=enable plugin mode +Main.PluginArgument=INPUT,OUTPUT +Main.DebuggingOption=Debugging option +Main.VerboseDescription=enable verbose mode +Main.CompatibilityOptions=Compatibility options +Main.DebugDescription=enable debugging mode (not implemented) +Main.EncodingDescription=specify the HTML character encoding +Main.EncodingArgument=CHARSET +Main.SecurityWarning=WARNING: CURRENTLY GAPPLETVIEWER RUNS WITH NO\ + SECURITY MANAGER.\n\ +THIS MEANS THAT APPLETS YOU LOAD CAN DO ANYTHING A JAVA APPLICATION\n\ +THAT YOU DOWNLOAD AND RUN CAN DO. BE *VERY* CAREFUL WHICH APPLETS YOU RUN.\n\ +DO NOT USE GAPPLETVIEWER ON YOUR SYSTEM IF YOUR SYSTEM STORES IMPORTANT\ + DATA.\n\ +THIS DATA CAN BE DESTROYED OR STOLEN IF YOU LOAD A MALICIOUS APPLET. +Main.ContinuationPrompt=[press 'c' or 'C' to continue or anything else to quit] +Main.NoInputFiles=appletviewer: no input files +Main.RawArguments=Raw arguments: + +PluginAppletViewer.AppletViewerWrote=PIPE: applet viewer wrote: +PluginAppletViewer.AppletViewerRead=PIPE: applet viewer read: +PluginAppletViewer.AppletViewerExiting=appletviewer: exiting plugin applet\ + viewer + +StandaloneAppletContext.ShowDocumentError=showDocument is not implemented in\ + standalone mode + +StandaloneAppletViewer.ParsedAppletTags=Parsed applet tags: +StandaloneAppletViewer.Tag=tag +StandaloneAppletViewer.CodeOptionError=appletviewer: option '--code' requires\ + a class filename + +StandaloneAppletWindow.MenuTitle=Applet +StandaloneAppletWindow.MenuReload=Reload +StandaloneAppletWindow.MenuRestart=Restart +StandaloneAppletWindow.MenuStart=Start +StandaloneAppletWindow.MenuStop=Stop +StandaloneAppletWindow.MenuClone=Clone ... +StandaloneAppletWindow.MenuQuit=Quit +StandaloneAppletWindow.MenuClose=Close +StandaloneAppletWindow.MenuTag=Tag ... +StandaloneAppletWindow.MenuInfo=Info ... +StandaloneAppletWindow.MenuEdit=Edit +StandaloneAppletWindow.MenuEncoding=Character Encoding +StandaloneAppletWindow.MenuPrint=Print ... +StandaloneAppletWindow.MenuProperties=Properties ... +StandaloneAppletWindow.MenuCancel=Cancel +StandaloneAppletWindow.MenuSave=Save ... +StandaloneAppletWindow.WindowTitle=GNU Classpath Applet Viewer: diff --git a/libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties b/libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties new file mode 100644 index 00000000000..989fde74eee --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties @@ -0,0 +1,40 @@ +# MessagesBundle.properties -- English language messages +# 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. + +ClasspathToolParser.JArgument=pass argument to the Java runtime +ClasspathToolParser.JName=OPTION +ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2006 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions. There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties b/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties index 42827e6e33b..a747ab4b473 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties +++ b/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties @@ -38,12 +38,9 @@ Parser.StdOptions=Standard options Parser.PrintHelp=print this help, then exit Parser.PrintVersion=print version number, then exit -Parser.JArgument=pass argument to the Java runtime -Parser.JName=OPTION Parser.ArgReqd=option ''{0}'' requires an argument Parser.Unrecognized=unrecognized option ''{0}'' Parser.NoArg=option ''{0}'' doesn''t allow an argument Parser.UnrecDash=unrecognized option ''-{0}'' Parser.TryHelpShort=Try ''{0} -help'' for more information Parser.TryHelpLong=Try ''{0} --help'' for more information -ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2006 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions. There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties b/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties new file mode 100644 index 00000000000..902166d5fdb --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties @@ -0,0 +1,33 @@ +# default locale messages for gnu.classpath.tools.jarsigner package + +Main.7=jarsigner: +Main.9=jarsigner error: +Main.70=JAR file [{0}] is NOT a file object +Main.72=JAR file [{0}] is NOT readable +#Main.85=Option '-keystore' is not defined or is an empty string, and 'user.home' is unknown +Main.85=Unable to locate a valid key store +Main.92=Enter key store password: +Main.6=Designated alias [{0}] MUST be known to the key store in use +Main.95=Designated alias [{0}] MUST be an Alias of a Key Entry +Main.97=Enter key password for <{0}>: +Main.99=Key associated with [{0}] MUST be a private key + +JarSigner.1=\ \ signing: +JarSigner.2=\ updating: +JarSigner.8=\ \ \ adding: +JarSigner.11=\ \ \ adding: +JarSigner.14=jar signed. + +JarVerifier.2=jar is not signed.--no signature files found. +JarVerifier.3=jar verification failed. +JarVerifier.4=jar partially verified --{0,numer} of {1,number} signers. +JarVerifier.7=jar verified --{0,number} signer(s). +JarVerifier.13=Signature Block missing for {0} +JarVerifier.14=At least one SignerInfo element MUST be present in a Signature Block (.DSA file) +JarVerifier.16=Missing EncryptedDigest in Signature Block (.DSA file) first SignerInfo element + +SFHelper.1=Helper is NOT finished +SFHelper.4=.SF file has NOT been generated +SFHelper.6=Unknown or unsupported private key algorithm +SFHelper.9=Helper is NOT ready +SFHelper.10=Helper is NOT started diff --git a/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties b/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties new file mode 100644 index 00000000000..2dd3ce2fc67 --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties @@ -0,0 +1,95 @@ +# default locale messages for gnu.classpath.tools.keytool package + +Main.6=keytool: +Main.8=keytool error: + +Command.19=Failed creating new file at {0} +Command.20=Unable to find a suitable signature algorithm named {0}, although we found a key-pair generation algorithm named {1} +Command.21=Enter key password for <{0}>: +Command.23=A correct key password MUST be provided +Command.24=Enter key store password: +#Command.36=Option '-keystore' is undefined, or is an empty string, and 'user.home' is unknown +Command.36=Unable to locate a valid key store +Command.40=Provider fully qualified class name: +Command.42=File object [{0}] exists but is NOT a file +Command.44=File [{0}] exists but is NOT writable +Command.46=File object [{0}] MUST be an existing readable file +Command.48=Signature algorithm is missing and private key is of unknown or unsupported type +Command.51=Validity period MUST be greater than zero +Command.52=Unable to get signature algorithm name +Command.60=Unknown or unsupported signature algorithm: {0} +Command.63=Saving key store at {0} +Command.66=Owner: {0} +Command.67=Issuer: {0} +Command.68=Serial number: {0,number} +Command.69=Valid from: {0,date,full} - {0,time,full} +Command.70=\ \ \ \ \ until: {0,date,full} - {0,time,full} +Command.71=Certificate fingerprints +Command.72=\ \ \ \ \ \ MD5: {0} +Command.73=\ \ SHA-160: {0} +Command.75=Alias [{0}] MUST be knwon to the key store +Command.77=Alias [{0}] MUST be associated with a Key Entry + +CertReqCmd.27=Certification request stored in {0} +CertReqCmd.28=Submit this to your CA + +DeleteCmd.19=Enter the Alias to delete: +DeleteCmd.20=Alias MUST NOT be null or an empty string + +GenKeyCmd.0=\nYou are about to enter information that will be incorporated into\n\ +your certificate request. This information is what is called a\n\ +Distinguished Name or DN. There are quite a few fields but you\n\ +can use supplied default values, displayed between brackets, by just\n\ +hitting , or blank the field by entering the <.> character\n\ +before hitting .\n\n +GenKeyCmd.6=The Sample Company +GenKeyCmd.7=Sydney +GenKeyCmd.8=NSW +GenKeyCmd.9=AU +GenKeyCmd.10=Common Name (hostname, IP, or your name): +GenKeyCmd.11=Organization Name (company) [{0}]: +GenKeyCmd.13=Organizational Unit Name (department, division): +GenKeyCmd.14=Locality Name (city, district) [{0}]: +GenKeyCmd.16=State or Province Name (full name) [{0}]: +GenKeyCmd.18=Country Name (2 letter code) [{0}]: +GenKeyCmd.54=Key size MUST be greater than zero + +StorePasswdCmd.19=Too many failed attempts +StorePasswdCmd.20=Enter new key store password: +StorePasswdCmd.21=Password MUST be at least 6 characters. +StorePasswdCmd.22=New password MUST be different than the old one. +StorePasswdCmd.23=Re-enter new key store password: +StorePasswdCmd.24=Passwords MUST be the same in both attempts. + +KeyPasswdCmd.24=Enter new key password for <{0}>: +KeyPasswdCmd.28=Re-enter new key password for <{0}>: + +KeyCloneCmd.23=Destination Alias MUST NOT exist in key store +KeyCloneCmd.26=Enter destination alias: +KeyCloneCmd.27=Destination alias MUST NOT be null nor empty +KeyCloneCmd.28=Enter new key password for <{0}> [{1}]: + +ListCmd.21=Key store type: {0} +ListCmd.22=Key store provider: {0} +ListCmd.24=Key store contains {0,number} entry(ies) +ListCmd.30=Alias name: {0} +ListCmd.31=Creation timestamp: {0,date,full} - {0,time,full} +ListCmd.32=Entry type: trusted-certificate +ListCmd.33=Entry type: key-entry +ListCmd.34=Alias [{0}] is unknown to the key store +ListCmd.38=Certificate chain length: {0,number} +ListCmd.39=Certificate[1]: +ListCmd.40=Certificate[{0,number}]: +ListCmd.42=******************************************* +ListCmd.43=-----BEGIN CERTIFICATE----- +ListCmd.44=-----END CERTIFICATE----- +ListCmd.45=Certificate fingerprint (MD5): {0} + +ImportCmd.34=Failed to establish chain-of-trust from reply +ImportCmd.37=Unable to find anchor certificate for {0} +ImportCmd.38=Public keys, in key store and certificate, MUST be of the same type +ImportCmd.32=Can this certificate be trusted? +ImportCmd.40=Key entry associated with {0} has an unknown or unsupported public key type {1} +ImportCmd.41=Public keys, in key store and certificate, MUST be the same +ImportCmd.29=Certificate was added to the key store +ImportCmd.28=Certificate was not added to the key store diff --git a/libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties new file mode 100644 index 00000000000..b427d102bf1 --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties @@ -0,0 +1,46 @@ +# messages.properties -- English language messages +# 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. + +Main.Usage=Usage: orbd [OPTIONS] +Main.ORBInitialPort=port on which persistent naming service is to be started +Main.Port=PORT +Main.IOR=file in which to store persistent naming service's IOR reference +Main.IORFile=FILE +Main.Restart=restart persistent naming service, clearing persistent naming database +Main.Directory=directory in which to store persistent data +Main.DirectoryArgument=DIRECTORY +Main.InternalError=orbd: internal error: diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties new file mode 100644 index 00000000000..7be7cb0c732 --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties @@ -0,0 +1,61 @@ +# messages.properties -- English language messages +# 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. + +Main.Usage:rmic [OPTIONS] CLASSNAME... +Main.NoWarn:show no warnings +Main.NoWrite:check for errors and do not write any files +Main.Verbose:show verbose output +Main.DirOpt:write generated files to given directory +Main.DirArg:DIRECTORY +Main.ClasspathOpt:where to find input classes +Main.ClasspathArg:PATH +Main.BootclasspathOpt:where to find classes used to run rmic (ignored) +Main.BootclasspathArg:PATH +Main.ExtdirsOpt:where to find extension classes used to run rmic (ignored) +Main.ExtdirsArg:PATH +Main.IIOP:generate stubs and ties for IIOP +Main.Always:always overwrite generated files (ignored) +Main.AlwaysGenerate:same as -always +Main.NoLocalStubs:do not create same-process stubs (ignored) +Main.POA:generate servant-based ties +Main.Keep:keep generated stub, skeleton and tie sources +Main.KeepGenerated:same as -keep +Main.v11:generate JDK 1.1 protocol stubs and skeletons +Main.v12:generate JDK 1.2 JRMP stubs (default) +Main.vcompat:generate JDK 1.1 protocol and JDK 1.2 JRMP stubs +Main.DebugInfo:include debugging information in generated classes +Main.InternalError:rmic: internal error: diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties new file mode 100644 index 00000000000..234cea12a1e --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties @@ -0,0 +1,50 @@ +# messages.properties -- English language messages +# 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. + +Main.Usage=Usage: rmid [OPTIONS] +Main.ControlGroup=Activation process control +Main.PortOption=port on which activation system is to be started +Main.Port=PORT +Main.Restart=restart activation system, clearing persistent naming database, if any +Main.Stop=stop activation system +Main.PersistenceGroup=Persistence +Main.Persistent=make activation system persistent +Main.Directory=directory in which to store persistent data +Main.DirectoryArgument=DIRECTORY +Main.DebugGroup=Debugging +Main.Verbose=log binding events to standard out +Main.InternalError=rmid: internal error: diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties new file mode 100644 index 00000000000..46f7cfdb73f --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties @@ -0,0 +1,48 @@ +# messages.properties -- English language messages +# 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. + +Main.Usage=Usage: rmiregistry [OPTIONS] [PORT] +Main.ControlGroup=Registry process control +Main.Restart=restart RMI naming service, clearing persistent naming database, if any +Main.Stop=stop RMI naming service +Main.PersistenceGroup=Persistence +Main.Persistent=make RMI naming service persistent +Main.Directory=directory in which to store persistent data +Main.DirectoryArgument=DIRECTORY +Main.DebugGroup=Debugging +Main.Verbose=log binding events to standard out +Main.InternalError=rmiregistry: internal error: diff --git a/libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties new file mode 100644 index 00000000000..3861e24ba08 --- /dev/null +++ b/libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties @@ -0,0 +1,43 @@ +# messages.properties -- English language messages +# 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. + +Main.Usage=Usage: tnameserv [OPTIONS] +Main.ORBInitialPort=port on which naming service is to be started +Main.Port=PORT +Main.IOR=file in which to store naming service's IOR reference +Main.IORFile=FILE +Main.InternalError=tnameserv: internal error: diff --git a/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties b/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties index ae8e141321b..f43bb6f8378 100644 --- a/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties +++ b/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties @@ -1,5 +1,5 @@ # Localized error messages for gnu.regexp, in Italian. -# $Id: MessagesBundle_it.properties,v 1.1 2006/07/19 19:47:07 rabbit78 Exp $ +# $Id: MessagesBundle_it.properties,v 1.2 2006/12/10 20:25:50 gnu_andrew Exp $ # Messaggi italiani per gnu.regexp. # # Attenzione: Questa traduzione fu scritto da un italo-americano. diff --git a/libjava/classpath/scripts/.cvsignore b/libjava/classpath/scripts/.cvsignore new file mode 100644 index 00000000000..190036bb1ae --- /dev/null +++ b/libjava/classpath/scripts/.cvsignore @@ -0,0 +1,3 @@ +Makefile +Makefile.in +classpath.spec diff --git a/libjava/classpath/scripts/Makefile.in b/libjava/classpath/scripts/Makefile.in index 2c4ff902149..d8ad93bb7f9 100644 --- a/libjava/classpath/scripts/Makefile.in +++ b/libjava/classpath/scripts/Makefile.in @@ -42,12 +42,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -158,6 +160,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -279,7 +283,6 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ EXTRA_DIST = check_jni_methods.sh generate-locale-list.sh import-cacerts.sh all: all-am diff --git a/libjava/classpath/scripts/build_mathnamespace b/libjava/classpath/scripts/build_mathnamespace new file mode 100644 index 00000000000..a2e53a3284d --- /dev/null +++ b/libjava/classpath/scripts/build_mathnamespace @@ -0,0 +1,6 @@ +#!/bin/sh + +echo "/* Warning ! This is a generated file. Use build_mathnamespace to regenerate it */" +while read fun;do + echo "#define ${fun} ClasspathMath_${fun}" +done diff --git a/libjava/classpath/scripts/check_jni_methods.sh b/libjava/classpath/scripts/check_jni_methods.sh index 4cc00cc17f3..b46e378214e 100755 --- a/libjava/classpath/scripts/check_jni_methods.sh +++ b/libjava/classpath/scripts/check_jni_methods.sh @@ -35,9 +35,6 @@ cat > $TMPFILE3 << EOF -Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose -Java_java_lang_VMSystem_arraycopy -Java_java_lang_VMSystem_identityHashCode --Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class --Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache --Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class EOF # Compare again silently. diff --git a/libjava/classpath/scripts/checkstyle-config.xml b/libjava/classpath/scripts/checkstyle-config.xml new file mode 100644 index 00000000000..498e7faddd3 --- /dev/null +++ b/libjava/classpath/scripts/checkstyle-config.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libjava/classpath/scripts/checkstyle-header.regex b/libjava/classpath/scripts/checkstyle-header.regex new file mode 100644 index 00000000000..15eb29a5092 --- /dev/null +++ b/libjava/classpath/scripts/checkstyle-header.regex @@ -0,0 +1,38 @@ +^/\* .*$ +^ .*$ +^ (Copyright \(C\) .*|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. \*/$ +^ *$ diff --git a/libjava/classpath/scripts/checkstyle-suppressions.xml b/libjava/classpath/scripts/checkstyle-suppressions.xml new file mode 100644 index 00000000000..68c620ce958 --- /dev/null +++ b/libjava/classpath/scripts/checkstyle-suppressions.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + diff --git a/libjava/classpath/scripts/checkstyle.css b/libjava/classpath/scripts/checkstyle.css new file mode 100644 index 00000000000..9d1fd8b7460 --- /dev/null +++ b/libjava/classpath/scripts/checkstyle.css @@ -0,0 +1,42 @@ +body { + color: black; + font-family: sans-serif; +} +h1 { + color: #990000; + border-width: 1px; + border-style: solid; + border-color: black; + padding: 0.2em; + background-color: #cccccc; + width: 100%; +} +h2 { + color: #990000; + border-width: 1px; + border-style: solid; + border-color: black; + padding: 0.2em; + background-color: #cccccc; + width: 100%; +} +h3 { + color: #990000; + border-width: 1px; + border-style: solid; + border-color: black; + padding: 0.2em; + background-color: #cccccc; + width: 100%; +} +table { + width: 100%; +} +th { + color: white; + background-color: #999999; + text-align: left; +} +td { + background-color: #cccccc; +} diff --git a/libjava/classpath/scripts/checkstyle2html.xsl b/libjava/classpath/scripts/checkstyle2html.xsl new file mode 100644 index 00000000000..89639876ad6 --- /dev/null +++ b/libjava/classpath/scripts/checkstyle2html.xsl @@ -0,0 +1,102 @@ + + + + + + + + + + + + Checkstyle results + + + +

      Checkstyle results

      +
      + +

      Summary

      + + + + + + + + + + +
      FilesInfosWarningsErrors
      + +

      Files

      + + + + + + + + +
      FileIWE
      + + + + + + + + + + + + + + + + + # + + + + + + + + + + + + + + +

      + + + + + + +

      + + + + + +
      ErrorLine
      +
      +
      + + + + + + + + + + diff --git a/libjava/classpath/scripts/classpath-build b/libjava/classpath/scripts/classpath-build new file mode 100755 index 00000000000..cd0e7d63e24 --- /dev/null +++ b/libjava/classpath/scripts/classpath-build @@ -0,0 +1,68 @@ +#!/bin/sh + +# cvs may timeout ... +set -e + +export CVS_RSH=ssh + +CLASSPATH_CVSSRCDIR=$HOME/src/cvs/classpath +CLASSPATH_SRCDIR=$HOME/src/classpath +CLASSPATH_BUILDDIR=$HOME/src/classpath/build + +DATE=`date +"%Y%m%d"` +OUTPUTDIR=$HOME/public_html/classpath/daily +LOGFILE=$OUTPUTDIR/classpath-$DATE.log + +echo -n > $LOGFILE + +if [ -d $CLASSPATH_CVSSRCDIR ] ; then + echo "update cvs source tree" >> $LOGFILE + cd $CLASSPATH_CVSSRCDIR + cvs -z 3 update >> $LOGFILE 2>&1 +fi + +if [ -d $CLASSPATH_SRCDIR ] ; then + + # delete old sources + echo "delete old source tree" >> $LOGFILE + + # workaround for automake safety behaviour with umask + chmod u+w -R $CLASSPATH_SRCDIR + + rm -rf $CLASSPATH_SRCDIR + +fi + +echo "copy cvs tree to source tree" >> $LOGFILE +cp -a $CLASSPATH_CVSSRCDIR $CLASSPATH_SRCDIR +cd $CLASSPATH_SRCDIR + +# patch version in configure.ac +if [ -f configure.ac ] ; then + mv configure.ac configure.ac.orig + sed "s/, \[.*cvs\]/, [$DATE]/" < configure.ac.orig > configure.ac +fi + +# generate autofriends stuff +./autogen.sh >> $LOGFILE 2>&1 + +# create build directory +mkdir build +cd build + +# configure and build classpath +export LD_LIBRARY_PATH=/usr/local/lib +../configure --prefix=$HOME/local/classpath --with-jikes=/usr/bin/jikes --enable-glibj=both --enable-jni --enable-gtk-peer --enable-regen-headers >> $LOGFILE 2>&1 +make >> $LOGFILE 2>&1 +make install >> $LOGFILE 2>&1 + +make dist >> $LOGFILE 2>&1 +#make distcheck >> $LOGFILE 2>&1 +cp classpath-$DATE.tar.gz $OUTPUTDIR + +cd $OUTPUTDIR +ln -sf classpath-$DATE.tar.gz LATEST-SNAPSHOT +ln -sf classpath-$DATE.log LATEST-BUILDLOG + +exit 0 + diff --git a/libjava/classpath/scripts/classpath-daily b/libjava/classpath/scripts/classpath-daily new file mode 100755 index 00000000000..c7405277346 --- /dev/null +++ b/libjava/classpath/scripts/classpath-daily @@ -0,0 +1,17 @@ +#!/bin/sh + +DATE=`date +"%Y%m%d"` +OUTPUTDIR=$HOME/public_html/classpath/daily +LOGFILE=$OUTPUTDIR/classpath-$DATE.log +FAILEDLOG=$OUTPUTDIR/classpath-failed-$DATE.log +MAIL="konqueror@gmx.de" + +/home/mkoch/bin/classpath-build + +if test "$?" = "1" ; then + tail --lines=100 $LOGFILE > $FAILEDLOG + + mail $MAIL -s "classpath daily snapshot $DATE FAILED" < $FAILEDLOG +else + mail $MAIL -s "classpath daily snapshot $DATE SUCCESSFUL" < /dev/null > /dev/null +fi diff --git a/libjava/classpath/scripts/classpath.spec.in b/libjava/classpath/scripts/classpath.spec.in index 80522748d6e..4120d25507c 100644 --- a/libjava/classpath/scripts/classpath.spec.in +++ b/libjava/classpath/scripts/classpath.spec.in @@ -1,4 +1,4 @@ -# $Id: classpath.spec.in,v 1.2 2005/07/04 14:31:01 ziga Exp $ +# $Id: classpath.spec.in,v 1.3 2006/12/10 20:25:50 gnu_andrew Exp $ %define version_num @PACKAGE_VERSION@ %define release_num 1 diff --git a/libjava/classpath/scripts/eclipse-gnu.xml b/libjava/classpath/scripts/eclipse-gnu.xml new file mode 100644 index 00000000000..60a1082ca1e --- /dev/null +++ b/libjava/classpath/scripts/eclipse-gnu.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libjava/classpath/scripts/jalopy-gnu.xml b/libjava/classpath/scripts/jalopy-gnu.xml new file mode 100644 index 00000000000..ad5c5abdffe --- /dev/null +++ b/libjava/classpath/scripts/jalopy-gnu.xml @@ -0,0 +1,378 @@ + + + + + 14 + + + + + false + + + [A-Z][a-zA-Z0-9]+ + [A-Z][a-zA-Z0-9]+ + + + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-zA-Z][\w]+ + + [A-Z][a-zA-Z0-9]+ + \w+ + + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + [a-z][\w]+ + + [a-z]+(?:\.[a-z]+)* + + [a-z][\w]+ + [a-z][\w]+ + + [a-z][\w]* + + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + + + 6 + + + + 30000 + 30000 + 30000 + 30000 + 30000 + 30000 + + true + + + 1 + + + + true + false + true + false + false + + + bak + 0 + + + + 0 + 0 + 1 + 0 +
      1
      +
      1
      + 1 + 1 + 1 + 1 +
      + + 0 + 0 + 0 + + 1 + 0 + 0 + + 0 + 0 +
      0
      +
      0
      + 2 +
      + 1 +
      + + + false + false + + + false + false + false + false + + + true + true + true + true + true + + + true + false + + + + true + true + + + + false + + + + false + false + false + + false + + 0 + 0 + 0 + 0 + + false + + + + + + + */ + * @throws $exceptionType$ DOCUMENT ME! + * @param $paramType$ DOCUMENT ME! + * @return DOCUMENT ME! + /**| * DOCUMENT ME! + + + + + false + false + false + + + - + false + false + + Inner Classes + Constructors + Instance fields + Instance initializers + Inner Interfaces + Methods + Static fields/initializers + + + + +
      + + 0 + false +
      +
      + + 0 + false +
      + + disabled + + + + 1 + *:0|gnu:1|java:1|javax:1|org:1 + + disabled + true + + + true + + true + true + + false + + + true + + + 1 + 2 + 2 + 0 + 0 + 55 + -1 + 2 + -1 + 0 + 8 + 2 + 1 + + + true + true + + + + false + false + false + false + true + false + + + + false + false + false + false + false + static|field|initializer|constructor|method|interface|class + false + + + true + public|protected|private|abstract|static|final|synchronized|transient|volatile|native|strictfp + + + + + true + true + true + + + true + false + false + false + + true + + + false + false + true + + + + true + false + + true + true + true + true + true + true + + false + false + + + + + + 0 + true + false + false + + false + + false + false + + false + + + true + false + false + false + + + false + false + false + + + + true + true + 79 + + + + false + false + false + + false + false + false + + + + false + + false + + +
      +
      + diff --git a/libjava/classpath/scripts/japi b/libjava/classpath/scripts/japi new file mode 100755 index 00000000000..52bcbc472a5 --- /dev/null +++ b/libjava/classpath/scripts/japi @@ -0,0 +1,135 @@ +#!/bin/sh + +CLASSPATH_CVS=~/japi/classpath +JAPIZE_DIR=~/japitools-0.9 +FTPROOT=~alpha/pub/gnu/classpath/nightly/tests +LOG=/tmp/japi.log +export PATH=${PATH}:/usr/java/j2sdk1.4.1/bin + +rm -f /tmp/japi.log > /dev/null 2>&1 + +classpath_checkout () +{ + if [ ! -d "${CLASSPATH_CVS}" ]; then + mkdir --parents ${CLASSPATH_CVS} + local dir=`dirname "${CLASSPATH_CVS}"` + cd "${dir}" + cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/classpath co classpath >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out classpath" + exit 1 + fi + fi +} + +classpath_update () +{ + cd "${CLASSPATH_CVS}" && cvs update -d -P . >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out classpath" + exit 1 + fi +} + +classpath_clean () +{ + if [ -d "${CLASSPATH_CVS}/build" ]; then + rm -rf "${CLASSPATH_CVS}/build" + fi +# if [ -d "${CLASSPATH_PREFIX}" ]; then +# rm -rf "${CLASSPATH_PREFIX}" +# fi + mkdir --parents "${CLASSPATH_CVS}/build" +# mkdir --parents "${CLASSPATH_PREFIX}" +} + +classpath_configure () +{ + cd "${CLASSPATH_CVS}" + aclocal >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running aclocal" + exit 1 + fi + autoheader >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running autoheader" + exit 1 + fi + automake >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running automake" + exit 1 + fi + autoconf >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running autoconf" + exit 1 + fi + cd "${CLASSPATH_CVS}/build" && ../configure --with-gcj >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error configuring" + exit 1 + fi +} + +classpath_build () +{ + cd "${CLASSPATH_CVS}/build" && make >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error during make" + exit 1 + fi +} + + +japize_classpath () +{ + cd "${JAPIZE_DIR}/bin" && ./japize as classpath packages "${CLASSPATH_CVS}/build/lib/glibj.zip" +java +javax +org -java.awt.dnd.peer -java.awt.peer -org.apache -org.w3c.dom.css -org.w3c.dom.events -org.w3c.dom.html -org.w3c.dom.stylesheets -org.w3c.dom.traversal -org.w3c.dom.views -java.text.resources >> /tmp/japi.log 2>&1 + if [ $? -ne 0 ]; then + echo "Error running japize" + exit 1 + fi + cp -f "${JAPIZE_DIR}/bin/classpath.japi.gz" /tmp +} + +japicompat_classpath () +{ + today=`date` + echo "${today}" > /tmp/classpath-jdk11-compare.txt + cd "${JAPIZE_DIR}/bin" && ./japicompat -q jdk11.japi.gz classpath.japi.gz >> /tmp/classpath-jdk11-compare.txt + if [ $? -ne 0 ]; then + echo "Error running japicompat" + exit 1 + fi + echo "${today}" > /tmp/classpath-jdk13-compare.txt + cd "${JAPIZE_DIR}/bin" && ./japicompat -q jdk13.japi.gz classpath.japi.gz >> /tmp/classpath-jdk13-compare.txt + if [ $? -ne 0 ]; then + echo "Error running japicompat" + exit 1 + fi +} + +#-------------------------------------------------------------------- +# Update Classpath CVS +#-------------------------------------------------------------------- +classpath_checkout +classpath_update + +#-------------------------------------------------------------------- +# Build Classpath with GCJ 3.2 +#-------------------------------------------------------------------- +classpath_clean +classpath_configure +classpath_build + +#-------------------------------------------------------------------- +# Run japize on glibj.zip +#-------------------------------------------------------------------- +japize_classpath + +#-------------------------------------------------------------------- +# Run japicompat against jdk13 +#-------------------------------------------------------------------- +japicompat_classpath + diff --git a/libjava/classpath/scripts/kissme-mauve b/libjava/classpath/scripts/kissme-mauve new file mode 100755 index 00000000000..8a6ee22db66 --- /dev/null +++ b/libjava/classpath/scripts/kissme-mauve @@ -0,0 +1,346 @@ +#!/bin/sh + +CLASSPATH_CVS=~/mauve/classpath +CLASSPATH_PREFIX=~/mauve/root/classpath +MAUVE_CVS=~/mauve/mauve +KISSME_CVS=~/mauve/kissme +KISSME_PREFIX=~/mauve/root/kissme +KISSME_BIN=~/mauve/kissme/useful_scripts/kissme +LOG=/tmp/mauve.log +RESULTS=/tmp/kissme-mauve.txt +REPORT=/tmp/kissme-mauve-report.txt +TIMEOUT=30 + +rm -f ${LOG} > /dev/null 2>&1 +rm -f ${RESULTS} > /dev/null 2>&1 +today=`date` +echo "${today}" > ${LOG} +touch ${RESULTS} + + +_aclocal () +{ + aclocal "$@" >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running aclocal" + exit 1 + fi +} + +_autoheader () +{ + autoheader "$@" >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running autoheader" + exit 1 + fi +} + +_automake () +{ + automake "$@" >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running automake" + exit 1 + fi +} + +_autoconf () +{ + autoconf "$@" >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error running autoconf" + exit 1 + fi +} + +classpath_checkout () +{ + if [ ! -d "${CLASSPATH_CVS}" ]; then + mkdir --parents ${CLASSPATH_CVS} + local dir=`dirname "${CLASSPATH_CVS}"` + cd "${dir}" + cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/classpath co classpath >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out classpath" + exit 1 + fi + fi +} + +classpath_update () +{ + cd "${CLASSPATH_CVS}" && cvs update -d -P . >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out classpath" + exit 1 + fi +} + +classpath_clean () +{ + if [ -d "${CLASSPATH_CVS}/build" ]; then + rm -rf "${CLASSPATH_CVS}/build" + fi + if [ -d "${CLASSPATH_PREFIX}" ]; then + rm -rf "${CLASSPATH_PREFIX}" + fi + mkdir --parents "${CLASSPATH_CVS}/build" + mkdir --parents "${CLASSPATH_PREFIX}" +} + +classpath_configure () +{ + cd "${CLASSPATH_CVS}" + + _aclocal + _autoheader + _automake + _autoconf + + cd "${CLASSPATH_CVS}/build" && ../configure --prefix=${CLASSPATH_PREFIX} --with-gcj --enable-jni >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error configuring" + exit 1 + fi +} + +classpath_build () +{ + cd "${CLASSPATH_CVS}/build" && make >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error during make" + exit 1 + fi +} + +classpath_install () +{ + cd "${CLASSPATH_CVS}/build" && make install >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error during make" + exit 1 + fi +} + +kissme_checkout () +{ + if [ ! -d "${KISSME_CVS}" ]; then + mkdir --parents ${KISSME_CVS} + local dir=`dirname "${KISSME_CVS}"` + cd "${KISSME_CVS}" + cvs -z3 -d :pserver:anonymous@cvs.kissme.sourceforge.net:/cvsroot/kissme co . >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out kissme" + exit 1 + fi + fi +} + +kissme_update () +{ + cd "${KISSME_CVS}" && cvs update -d -P . >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out kissme" + exit 1 + fi +} + +kissme_clean () +{ + if [ -d "${KISSME_CVS}/build" ]; then + rm -rf "${KISSME_CVS}/build" + fi + if [ -d "${KISSME_PREFIX}" ]; then + rm -rf "${KISSME_PREFIX}" + fi + mkdir --parents "${KISSME_CVS}/build" + mkdir --parents "${KISSME_PREFIX}" +} + +kissme_configure () +{ + cd "${KISSME_CVS}" + + _aclocal + _autoheader + _automake -a + _autoconf + + cd "${KISSME_CVS}" && ./configure --prefix=${KISSME_PREFIX} \ + --enable-use-zips --with-gnu-classpath=${CLASSPATH_CVS} \ + --with-gnu-classpath-build=${CLASSPATH_CVS}/build \ + --with-classpath-install-dir=${CLASSPATH_PREFIX} >> ${LOG} 2>&1 + + if [ $? -ne 0 ]; then + echo "Error configuring" + exit 1 + fi +} + +kissme_build () +{ + cd "${KISSME_CVS}" && make >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error during make" + exit 1 + fi +} + +kissme_install () +{ + cd "${KISSME_CVS}" && make install >> ${LOG} 2>&1 + if [ $? -ne 0 ]; then + echo "Error during make" + exit 1 + fi +} + +mauve_checkout () +{ + if [ ! -d "${MAUVE_CVS}" ]; then + mkdir --parents ${MAUVE_CVS} + local dir=`dirname "${MAUVE_CVS}"` + cd "${dir}" + cvs -z3 -d :pserver:anoncvs@sources.redhat.com:/cvs/mauve co mauve >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out mauve" + exit 1 + fi + fi +} + +mauve_update () +{ + cd "${MAUVE_CVS}" && cvs update -d -P . >> ${LOG} 2>/dev/null + if [ $? -ne 0 ]; then + echo "Error checking out mauve" + exit 1 + fi +} + +kissme_mauve () +{ + export JAVAC="jikes -bootclasspath ${CLASSPATH_PREFIX}/share/classpath/glibj.zip" + export JAVA="${KISSME_BIN}" + +# if [ -f "${KISSME_CVS}/useful_scripts/mauve-kissme" ]; then +# cp -f "${KISSME_CVS}/useful_scripts/mauve-kissme" "${MAUVE_CVS}" +# fi + + if [ -f "${CLASSPATH_CVS}/mauve-classpath" ]; then + cp -f "${CLASSPATH_CVS}/mauve-classpath" "${MAUVE_CVS}" + fi + + cd "${MAUVE_CVS}" + if [ $? -ne 0 ]; then + echo "Error configuring mauve" + exit 1 + fi + + _aclocal + _automake + _autoconf + + ./configure >> "${LOG}" 2>&1 + if [ $? -ne 0 ]; then + echo "Error configuring mauve" + exit 1 + fi + + # create class choices from key file + if [ -f classes ]; then + rm -f classes 2>/dev/null + fi + if [ -f choices ]; then + rm -f choices 2>/dev/null + fi + /bin/sh choose "${MAUVE_CVS}" classpath + if [ $? -ne 0 ]; then + echo "Error during choose for mauve" + exit 1 + fi + + # compile classes + compile=`cat "${MAUVE_CVS}/classes" | tr '.' '/' | awk '{print $1".java"}' | xargs` + ${JAVAC} -classpath "${MAUVE_CVS}" -d "${MAUVE_CVS}" ${compile} >> "${LOG}" 2>&1 + if [ $? -ne 0 ]; then + echo "Error during compile for mauve" + exit 1 + fi + + set -m + for i in `cat "${MAUVE_CVS}/classes"`; do + echo "$i" | ${JAVA} gnu.testlet.SimpleTestHarness -verbose >> "${RESULTS}" 2>&1 & + + vm_pid=$! + sleep ${TIMEOUT} && kill -9 $vm_pid > /dev/null 2>&1 && echo "FAIL: $i execution aborted" >> "${RESULTS}" & + kill_pid=$! + fg %- 2>/dev/null + kill -9 $kill_pid >/dev/null 2>&1 # && echo Test did not time out + done +} + +mauve_summary () +{ + if [ ! -f "${RESULTS}" ]; then + echo "Error creating summary" + exit 1 + fi + + pass_cnt=`grep PASS "${RESULTS}" | wc -l` + fail_cnt=`grep FAIL "${RESULTS}" | wc -l` + total_cnt=`expr $pass_cnt + $fail_cnt` + + today=`date` + echo "Mauve test results for Kissme" > "${REPORT}" + echo "Report generated on ${today}" >> "${REPORT}" + echo "" >> "${REPORT}" + echo "${fail_cnt} of ${total_cnt} tests failed." >> "${REPORT}" + echo "" >> "${REPORT}" + cat "${RESULTS}" >> "${REPORT}" +} + +#-------------------------------------------------------------------- +# Update Classpath CVS +#-------------------------------------------------------------------- +classpath_checkout +classpath_update + +#-------------------------------------------------------------------- +# Build Classpath with GCJ 3.2 +#-------------------------------------------------------------------- +classpath_clean +classpath_configure +classpath_build +classpath_install + +#-------------------------------------------------------------------- +# Update Kissme CVS +#-------------------------------------------------------------------- +kissme_checkout +kissme_update + +#-------------------------------------------------------------------- +# Build Kissme +#-------------------------------------------------------------------- +kissme_clean +kissme_configure +kissme_build +#kissme_install + +#-------------------------------------------------------------------- +# Update Mauve CVS +#-------------------------------------------------------------------- +mauve_checkout +mauve_update + +#-------------------------------------------------------------------- +# Execute Mauve +#-------------------------------------------------------------------- +kissme_mauve + +#-------------------------------------------------------------------- +# Create report +#-------------------------------------------------------------------- +mauve_summary diff --git a/libjava/classpath/scripts/loc b/libjava/classpath/scripts/loc new file mode 100755 index 00000000000..dc2f327035f --- /dev/null +++ b/libjava/classpath/scripts/loc @@ -0,0 +1,44 @@ +#!/bin/sh +# +# loc Find a class or package +# +# Usage: loc [-l] class-pattern [dirname] + +# -l Use system locate command instead of find. In that case, loc +# will ignore any directory to be searched. + +# Example: +# +# $ loc -l org.objectweb.jonas.common.JProp +# /var/lib/jonas/demoserver/ejbjars/autoload/mejb.jar +# /var/lib/jonas/lib/common/ow_jonas_bootstrap.jar +# /var/lib/jonas/eclipseserver/ejbjars/autoload/mejb.jar +# /var/lib/jonas/ejbjars/autoload/mejb.jar +# /var/cache/jonas/work/ejbjars/jonas/mejb_2005.09.15-17.01.52.jar +# /usr/src/redhat/BUILD/jonas-4.3.3/jonas/classes/common/org/objectweb/jonas/common/JProp.class + + +MODE=$1 +if test "$MODE" == "-l"; then + COMMAND='(locate \*.jar ; locate \*.war)' + shift +else + COMMAND='(find "$FOO" -name \*.jar -follow ; find "$FOO" -name \*.war -follow)' +fi + +FOO=$2 +if test "x$FOO" == "x"; then + FOO=/usr/share/java +fi + +eval "$COMMAND" 2>/dev/null | while read i; do + if (fastjar tf $i 2>/dev/null | grep $1) > /dev/null 2>&1 ; then + echo $i + fi +done + +if test "$MODE" != "-l"; then + find "$FOO" -name '*.class' 2>/dev/null | grep $1 +else + locate \*.class | grep $1 +fi diff --git a/libjava/classpath/scripts/math_symbols b/libjava/classpath/scripts/math_symbols new file mode 100644 index 00000000000..e676a5197dc --- /dev/null +++ b/libjava/classpath/scripts/math_symbols @@ -0,0 +1,69 @@ +acos +asin +atan +atan2 +cos +sin +tan +cosh +sinh +tanh +exp +frexp +ldexp +expm1 +log +log10 +log1p +modf +pow +sqrt +ceil +fabs +floor +fmod +erf +erfc +gamma +hypot +finite +j0 +j1 +jn +lgamma +y0 +y1 +yn +acosh +asinh +cbrt +logb +nextafter +remainder +logb +scalb +significand +logbf +scalbf +significandf +copysign +ilogb +rint +rintf +scalbn +__ieee754_sqrt +__ieee754_asin +__ieee754_asin +__ieee754_atan2 +__ieee754_exp +__ieee754_fmod +__ieee754_log +__ieee754_pow +__ieee754_rem_pio2 +__ieee754_remainder +__ieee754_scalb +__ieee754_acos +__kernel_cos +__kernel_sin +__kernel_tan +__kernel_rem_pio2 diff --git a/libjava/classpath/scripts/patches.pl b/libjava/classpath/scripts/patches.pl new file mode 100755 index 00000000000..57f134d9201 --- /dev/null +++ b/libjava/classpath/scripts/patches.pl @@ -0,0 +1,164 @@ +#!/usr/bin/perl -w +# Purpose is to move patches from upload directory to +# public patches directory. Any file not matching the correct +# pattern is deleted. Any patch file without a README and the +# file was last modified more than 120 minutes ago is deleted. +# Any README file without a patch file which was last modified +# more than 120 minutes ago is deleted. +# +# notes to self: as long as this runs as root do not worry +# about quota problems or disk space + +use strict; + +my ($upload_dir) = "/home/ftp/classpath/incoming"; +my ($public_dir) = "/home/ftp/classpath/pub/patches"; +my ($user) = "classpath"; +my ($group) = "classpath"; +my ($mode_dir) = "775"; +my ($mode_file) = "664"; +my (@patches) = (); + +use vars qw($upload_dir $public_dir @patches $user $group + $mode_dir $mode_file); + +# main +{ + @patches = &getPatches(); + &movePatches(@patches); +} + +#--------------------------------------------------------------- +# Purpose: To remove files not matching the correct pattern. +# To remove README files without patches (last modified greater +# than 2 hours). To remove patches without README files (last +# modified greater than 2 hours). +#--------------------------------------------------------------- +sub getPatches +{ + my (@patches) = (); + my (@entries) = (); + my (%maybe) = (); + my ($entry, $debug, $prefix, $junk, $file, $patch, $readme) = ""; + my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, + $mtime, $ctime, $blksize, $blocks) = ""; + + $debug = 1; + + opendir(INCOMING, "$upload_dir") || die "could not open $upload_dir\n"; + @entries = grep( !/^\.\S+/, readdir(INCOMING)); # no .* + closedir(INCOMING); + foreach $entry (sort @entries) + { + if (($entry eq ".") || ($entry eq "..")) { next; } + if (-d "$upload_dir/$entry") + { + print "Directory: $upload_dir/$entry/\n"; + } + elsif (-e "$upload_dir/$entry") + { + if ($entry eq ".message") { next; } + if ($entry eq "README") { next; } + if ($entry !~ /^\w+-\d\d\d\d\d\d-\d+\.patch\.(gz|README)$/) + { + print "REGEX FAILED: $entry\n"; + unlink("$upload_dir/$entry"); + } + else + { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime, + $ctime,$blksize,$blocks) = stat("$upload_dir/$entry"); + if ($size > 512000) + { + print "LARGE PATCH: $entry\n"; + unlink("$upload_dir/$entry"); + } + else + { + ($prefix,$junk) = split(/(\.gz|\.README)/, $entry, 2); + $maybe{$prefix} += 1; + } + } + } + } + + foreach $entry (keys(%maybe)) + { + if ($maybe{$entry} == 2) + { + $patch = "$entry.gz"; + $readme = "$entry.README"; + + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime, + $ctime,$blksize,$blocks) = stat($patch); + if (time-$mtime > 900) + { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime, + $ctime,$blksize,$blocks) = stat($readme); + if (time-$mtime > 900) + { + $patches[$#patches+1] = $entry; + } + } + } + else + { + if (-e "$upload_dir/$entry.gz") + { + unlink("$upload_dir/$entry.gz"); + print "STALE PATCH: $entry.gz\n"; + } + elsif (-e "$upload_dir/$entry.README") + { + unlink("$upload_dir/$entry.README"); + print "STALE README: $entry.README\n"; + } + } + } + return (@patches); +} + +#--------------------------------------------------------------- +# Purpose: To move the patches to the proper directory and set +# the permissions correctly. +#--------------------------------------------------------------- +sub movePatches +{ + my (@patches) = @_; + my ($patch) = ""; + my ($fail) = 0; + + if (!(-d "$public_dir")) + { + system("mkdir -p $public_dir"); + system("chown $user.$group $public_dir"); + system("chmod $mode_dir $public_dir"); + } + foreach $patch (@patches) + { + if (-e "$public_dir/$patch.gz") + { + print "Patch exists: $public_dir/$patch.gz\n"; + $fail = 1; + } + if (-e "$public_dir/$patch.README") + { + print "README exists: $public_dir/$patch.README\n"; + $fail = 1; + } + if ($fail == 0) + { + system("mv $upload_dir/$patch.gz $public_dir/$patch.gz"); + system("mv $upload_dir/$patch.README $public_dir/$patch.README"); + system("chown $user.$group $public_dir/*"); + system("chmod $mode_file $public_dir/*"); + open(MAIL, "|mail -s \"Classpath: $patch uploaded\" core\@classpath.org") || die "could not open mail\n"; + print MAIL "GNU Classpath FTP Maintenance\n"; + print MAIL "\n"; + print MAIL "Added Files:\n"; + print MAIL "ftp://ftp.classpath.org/pub/patches/$patch.gz\n"; + print MAIL "ftp://ftp.classpath.org/pub/patches/$patch.README\n\n"; + close(MAIL); + } + } +} diff --git a/libjava/classpath/scripts/sanitize-jsr166 b/libjava/classpath/scripts/sanitize-jsr166 new file mode 100755 index 00000000000..d4ca8585b8b --- /dev/null +++ b/libjava/classpath/scripts/sanitize-jsr166 @@ -0,0 +1,6 @@ +#! /bin/sh + +# Sanitize a jsr166 download. + +# Remove code copyright Sun. +find . -name '*.java' -print | xargs grep -l 'Copyright.*Sun' | xargs rm diff --git a/libjava/classpath/scripts/timezones.pl b/libjava/classpath/scripts/timezones.pl new file mode 100755 index 00000000000..142ea4b7582 --- /dev/null +++ b/libjava/classpath/scripts/timezones.pl @@ -0,0 +1,366 @@ +#!/usr/bin/perl -w +# Create the timezone tables for java/util/TimeZone from the +# standard timezone sources by Arthur David Olson (as used by glibc) +# +# This needs the files from the package tzdata2000h which may be found +# at ftp://ftp.cs.mu.oz.au/pub/. + +$TIMEZONEDIR = "tzdata"; +@TIMEZONEFILES = ("africa", "antarctica", "asia", "australasia", + "europe", "northamerica", "pacificnew", "southamerica", + "../tzabbrevs"); + +# rules hash table: +# key is a rule name +# value is either "-" (no daylight savings) or a list of three elements: +# $value[0] = end savings rule (list containing MONTH, DAY and TIME) +# $value[1] = start savings rule (ditto) +# $value[2] = daylight offset in milliseconds +my %rules = ("-" => "-"); + +# timezones list, list of pairs: +# $timezones[$i][0] is a timezone name +# $timezones[$i][1] = raw offset in milliseconds +# $timezones[$i][2] = rule in the same format as the value of +# the rules table, but TIME in milliseconds +# $timezones[$i][3] = list of timezone names with this rule (aliases) +my @timezones = ( [ "GMT", 0, "-", [ "GMT", "UTC" ] ]); + + +# parse the offset of form +/-hh:mm:ss (:ss is optional) and return it +# in milliseconds against UTC +sub parseOffset($) { + my $offset = $_[0]; + $offset =~ /^([+-]?)(\d+)(:(\d+)(:(\d+))?)?$/ + or die "Can't parse offset $offset"; + my $seconds = $2 * 3600; + $seconds += $4 * 60 if ($3); + $seconds += $6 if ($3 && $5); + if ($1 eq "-") { + $seconds = - $seconds; + } + return $seconds * 1000; +} + +# parse the time of form +/-hh:mm:ss[swguz] (:ss is optional) and return it +# in milliseconds since midnight in local wall time + my $timezonename; +sub parseTime($$$) { + my ($rawoffset, $stdoffset, $time) = @_; + $time =~ /^([+-]?)(\d+):(\d+)(:(\d+))?([swguz]?)$/ + or die "Can't parse time $time"; + my ($hour, $min) = ($2, $3); + my $sec = ($4) ? $5 : 0; + my $millis = ((($hour * 60) + $min) * 60 + $sec) * 1000; + if ($1 eq "-") { + $millis = -$millis; + } + # Normally millis is in wall time, adjust for utc and standard time. + if ($6 =~ /[guz]/) { + $millis += $rawoffset + $stdoffset; + } elsif ($6 =~ /s/) { + $millis += $stdoffset; + } + return $millis; +} + +my %monthnames = + ( "Jan" => "1", + "Feb" => "2", + "Mar" => "3", + "Apr" => "4", + "May" => "5", + "Jun" => "6", + "Jul" => "7", + "Aug" => "8", + "Sep" => "9", + "Oct" => "10", + "Nov" => "11", + "Dec" => "12" ); +sub parseMonth($) { + my $month = $monthnames{"$_[0]"} or die "Unknown month $_[0]"; + return $month; +} + +my %weekdaynames = + ( "Sun" => "7", + "Mon" => "1", + "Tue" => "2", + "Wed" => "3", + "Thu" => "4", + "Fri" => "5", + "Sat" => "6" ); +sub parseWeekday($) { + my $weekday = $weekdaynames{"$_[0]"} or die "Unknown weekday $_[0]"; + return $weekday; +} + +my @weekdayjavanames = + ( "Calendar.SUNDAY", + "Calendar.MONDAY", + "Calendar.TUESDAY", + "Calendar.WEDNESDAY", + "Calendar.THURSDAY", + "Calendar.FRIDAY", + "Calendar.SATURDAY" ); +my @daysInMonths = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); +sub parseDay($$$) { + my ($dayoffset, $month, $day) = @_; + if ($day =~ /^\d+$/) { + return "$day, 0"; + } elsif ($day =~ /^last([A-Z][a-z][a-z])$/) { + my $weekday = ( parseWeekday($1) + $dayoffset + 7 ) % 7; + if ($dayoffset) { + my $day = $daysInMonths[$month - 1] + $dayoffset; + warn "Can only approximate $day with dayoffset in $file" + if ($month == 2); + return "$day, -$weekdayjavanames[$weekday]"; + } else { + return "-1, $weekdayjavanames[$weekday]"; + } + } elsif ($day =~ /^([A-Z][a-z][a-z])>=(\d+)$/) { + my $start = $2 + $dayoffset; + my $weekday = ( parseWeekday($1) + $dayoffset + 7 ) % 7; + if (($start % 7) == 1) { + $start = ($start + 6) / 7; + return "$start, $weekdayjavanames[$weekday]"; + } else { + return "$start, -$weekdayjavanames[$weekday]"; + } + } else { + die "Unknown day $day"; + } +} + +my @monthjavanames = + ( "Calendar.JANUARY", + "Calendar.FEBRUARY", + "Calendar.MARCH", + "Calendar.APRIL", + "Calendar.MAY", + "Calendar.JUNE", + "Calendar.JULY", + "Calendar.AUGUST", + "Calendar.SEPTEMBER", + "Calendar.OCTOBER", + "Calendar.NOVEMBER", + "Calendar.DECEMBER" ); + +sub parseRule($$$) { + my ($rawoffset, $stdoffset, $rule) = @_; + my $monthnr = parseMonth($rule->[0]); + my $time = parseTime($rawoffset, $stdoffset, $rule->[2]); + my $dayoffset = 0; + while ($time < 0) { + $time += 24*3600*1000; + $dayoffset--; + } + while ($time > 24*3600*1000) { + $time -= 24*3600*1000; + $dayoffset++; + } + $day = parseDay($dayoffset, $monthnr, $rule->[1]); + return [ $monthjavanames[$monthnr-1], $day, $time ]; +} + + +sub ruleEquals($$) { + my ($rule1, $rule2) = @_; + # check month names + return (($rule1->[0] eq $rule2->[0]) + && ($rule1->[1] eq $rule2->[1]) + && ($rule1->[2] == $rule2->[2])); +} + +sub findAlias($$) { + my ($rawoffset, $rule) = @_; + foreach $tz (@timezones) { + my ($key, $tzoffset, $tzrule, $aliaslist) = @{$tz}; + next if ($tzoffset != $rawoffset); + if ($rule eq "-") { + return $tz if ($tzrule eq "-"); + } elsif ($tzrule ne "-") { + next if $rule->[2] != $tzrule->[2]; + if (ruleEquals($rule->[0], $tzrule->[0]) + && ruleEquals($rule->[1], $tzrule->[1])) { + return $tz; + } + } + } + return ""; +} + +sub makePretty($) { + my ($offset) = @_; + if (($offset % 3600) == 0) { + $offset /= 3600; + return "$offset * 3600"; + } else { + return "$offset"; + } +} + +sub tzcompare($$) { + my ($a, $b) = @_; + if (($a =~ /\//) != ($b =~ /\//)) { + return ($a =~ /\//) ? 1 : -1; + } else { + return $a cmp $b; + } +} + +foreach $file (@TIMEZONEFILES) { +# print STDERR "$file\n"; + open INPUT, "$TIMEZONEDIR/$file" or die "Can't open $TIMEZONEDIR/$file"; + my $in_time_zone = 0; + while () { + $_ = $1 if /^([^\#]*)\#/; + next if /^\s*$/; + my @entries = split; +# $, = ","; print "'$_' -> [",@entries,"]\n"; + if (!$in_time_zone) { + if ($entries[0] eq "Rule") { + # check if rule still applies + # column 3 is TO entry. + if ($entries[3] eq "max") { + my $rulename = $entries[1]; + my $month = $entries[5]; + my $day = $entries[6]; + my $time = $entries[7]; + if ($entries[8] eq "0") { + # This is the end time rule + $rules{"$rulename"}[0] = [ $month, $day, $time ]; + } else { + # This is the start time rule + $rules{"$rulename"}[1] = [ $month, $day, $time ]; + $rules{"$rulename"}[2] = parseOffset($entries[8]); + } + } + } elsif ($entries[0] eq "Zone") { + $in_time_zone = 1; + shift @entries; + $timezonename = shift @entries; + } elsif ($entries[0] eq "Remove") { + my $found = 0; + foreach $tz (@timezones) { + my @newaliases; + foreach $tzname (@{$tz->[3]}) { + if ($tzname eq $entries[1]) { + $found = 1; + } else { + push @newaliases, $tzname; + } + } + if ($found) { + if ($tz->[0] eq $entries[1]) { + $tz->[0] = $newaliases[0]; + } + $tz->[3] = \@newaliases; + last; + } + } + + die "Unknown link $_" if ! $found; + } elsif ($entries[0] eq "Link") { + my $alias = 0; + foreach $tz (@timezones) { + foreach $tzname (@{$tz->[3]}) { + if ($tzname eq $entries[1]) { + $alias = $tz; + last; + } + } + } + + die "Unknown link $_" if ! $alias; + die "@entries" if $entries[1] =~ /^\d+$/; + push @{$alias->[3]}, $entries[2]; + } else { + die "Unknown command: $_"; + } + } + if ($in_time_zone) { + die "early end of Zone: $_" if ($entries[0] =~ /^[A-Za-z]+/); + if (@entries <= 3) { +# print "found ZONE $timezonename $entries[0] $entries[1] $entries[2]\n"; + # This is the last line and the only we look at. + # other lines are for historic time zones. + my $rawoffset = parseOffset($entries[0]); + my $rule = $rules{"$entries[1]"} || "-"; + if ($rule ne "-") { + if (!defined($rule->[2])) { + $rule = "-"; + } else { + # now we can parse the time since we know raw offset. + my $savings = $rule->[2]; + my $endrule = parseRule($rawoffset, $savings, + $rule->[0]); + my $startrule = parseRule($rawoffset, $savings, + $rule->[1]); + $rule = [ $endrule, $startrule, $savings ]; +# print "start",@{$rule->[1]}, "end", @{$rule->[0]}, +# "offset", $rule->[2],"\n"; + } + } + my $alias = findAlias($rawoffset, $rule); + if ($alias) { + if (($alias->[0] =~ /\//) + && ($timezonename !~ /\//)) { + # alias is of Country/City form, timezonename not + # make timezonename the real zone name + $alias->[0] = $timezonename; + } + push @{$alias->[3]}, $timezonename; + } else { + push @timezones, [ $timezonename, $rawoffset, $rule, + [ $timezonename ] ]; + } + $in_time_zone = 0; + } + } + } + close INPUT; +} + +@timezones = sort { if ($a->[1] != $b->[1]) { $a->[1] <=> $b->[1] } + else { $a->[0] cmp $b->[0] } } @timezones; +for (@timezones) { + my ($name, $rawoffset, $rule, $aliaslist) = @{$_}; + my @aliases = sort { tzcompare($a, $b); } @{$aliaslist}; + $name = $aliases[0]; + $rawoffset = makePretty($rawoffset); + if ($rule eq "-") { + print <[0]}; + my ($startmonth, $startday, $starttime) = @{$rule->[1]}; + $endtime = makePretty($endtime); + $starttime = makePretty($starttime); + my $savings = $rule->[2]; + if ($savings == 3600 * 1000) { + print < +# +# usage: unicode-blocks.pl +# where is obtained from www.unicode.org (named Blocks-3.txt +# for Unicode version 3.0.0). + + +die "Usage: $0 " unless @ARGV == 1; +open (BLOCKS, $ARGV[0]) || die "Can't open Unicode block file: $!\n"; + +# A hash of added fields and the JDK they were added in, to automatically +# print @since tags. Maintaining this is optional (and tedious), but nice. +my %additions = ("SYRIAC" => "1.4", + "THAANA" => "1.4", + "SINHALA" => "1.4", + "MYANMAR" => "1.4", + "ETHIOPIC" => "1.4", + "CHEROKEE" => "1.4", + "UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS" => "1.4", + "OGHAM" => "1.4", + "RUNIC" => "1.4", + "KHMER" => "1.4", + "MONGOLIAN" => "1.4", + "BRAILLE_PATTERNS" => "1.4", + "CJK_RADICALS_SUPPLEMENT" => "1.4", + "KANGXI_RADICALS" => "1.4", + "IDEOGRAPHIC_DESCRIPTION_CHARACTERS" => "1.4", + "BOPOMOFO_EXTENDED" => "1.4", + "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A" => "1.4", + "YI_SYLLABLES" => "1.4", + "YI_RADICALS" => "1.4", + "CYRILLIC_SUPPLEMENTARY" => "1.5", + "TAGALOG" => "1.5", + "HANUNOO" => "1.5", + "BUHID" => "1.5", + "TAGBANWA" => "1.5", + "LIMBU" => "1.5", + "TAI_LE" => "1.5", + "KHMER_SYMBOLS" => "1.5", + "PHONETIC_EXTENSIONS" => "1.5", + "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A" => "1.5", + "SUPPLEMENTAL_ARROWS_A" => "1.5", + "SUPPLEMENTAL_ARROWS_B" => "1.5", + "MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B" => "1.5", + "SUPPLEMENTAL_MATHEMATICAL_OPERATORS" => "1.5", + "MISCELLANEOUS_SYMBOLS_AND_ARROWS" => "1.5", + "KATAKANA_PHONETIC_EXTENSIONS" => "1.5", + "YIJING_HEXAGRAM_SYMBOLS" => "1.5", + "VARIATION_SELECTORS" => "1.5", + "LINEAR_B_SYLLABARY" => "1.5", + "LINEAR_B_IDEOGRAMS" => "1.5", + "AEGEAN_NUMBERS" => "1.5", + "OLD_ITALIC" => "1.5", + "GOTHIC" => "1.5", + "UGARITIC" => "1.5", + "DESERET" => "1.5", + "SHAVIAN" => "1.5", + "OSMANYA" => "1.5", + "CYPRIOT_SYLLABARY" => "1.5", + "BYZANTINE_MUSICAL_SYMBOLS" => "1.5", + "MUSICAL_SYMBOLS" => "1.5", + "TAI_XUAN_JING_SYMBOLS" => "1.5", + "MATHEMATICAL_ALPHANUMERIC_SYMBOLS" => "1.5", + "CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B" => "1.5", + "CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT" => "1.5", + "TAGS" => "1.5", + "VARIATION_SELECTORS_SUPPLEMENT" => "1.5", + "SUPPLEMENTARY_PRIVATE_USE_AREA_A" => "1.5", + "SUPPLEMENTARY_PRIVATE_USE_AREA_B" => "1.5", + "HIGH_SURROGATES" => "1.5", + "HIGH_PRIVATE_USE_SURROGATES" => "1.5", + "LOW_SURROGATES" => "1.5" + ); + +print <<'EOF'; + /** + * 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 + * $ARGV[0], by some perl scripts. + * This Unicode definition file can be found on the + * http://www.unicode.org website. + * JDK 1.5 uses Unicode version 4.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 forName() 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 + * @param canonicalName the name of the block as defined in the Unicode + * standard. + */ + 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. + * Note: This method does not support the use of + * supplementary characters. For such support, of(int) + * 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; + } + + /** + *

      + * Returns the UnicodeBlock with the given name, as defined + * by the Unicode standard. The version of Unicode in use is defined by + * the Character class, and the names are given in the + * Blocks-.txt file corresponding to that version. + * The name may be specified in one of three ways: + *

      + *
        + *
      1. 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.
      2. + *
      3. The canonical name with all spaces removed e.g. `BasicLatin'.
      4. + *
      5. 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'
      6. + *
      + *

      + * 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 of() methods + * only return one of the three new surrogate blocks). + *

      + * + * @param blockName the name of the block to look up. + * @return the specified block. + * @throws NullPointerException if the blockName is + * null. + * @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 + "."); + } +EOF + +my @names = (); +while () { + next if /^\#/; + my ($range, $block) = split(/; /); + my ($start, $end) = split /\.\./, $range; + next unless defined $block; + chomp $block; + $block =~ s/ *$//; + + # Translate new Unicode names which have the old name in Java + $block = "Greek" if $block =~ /Greek and Coptic/; + $block = "Combining Marks for Symbols" + if $block =~ /Combining Diacritical Marks for Symbols/; + + (my $name = $block) =~ tr/a-z -/A-Z__/; + push @names, $name; + my $since = (defined $additions{$name} + ? "\n * \@since $additions{$name}" : ""); + print <HIGH_SURROGATES, + * HIGH_PRIVATE_USE_SURROGATES + * and LOW_SURROGATES, as defined + * by the Unicode standard, should be used in preference to + * this. These are also returned from calls to of(int) + * and of(char). + */ + \@Deprecated + public static final UnicodeBlock SURROGATES_AREA + = new UnicodeBlock(0xD800, 0xDFFF, + "SURROGATES_AREA", + "Surrogates Area"); + + /** + * The defined subsets. + */ + private static final UnicodeBlock sets[] = { +EOF + +foreach (@names) { + print " $_,\n"; +} + +print < +# updated to Unicode 4.0.0 by Anthony Balkissoon +# +# Usage: ./unicode-muncher +# where and are .txt files obtained from +# www.unicode.org (named UnicodeData-4.0.0.txt and SpecialCasing-4.0.0.txt for +# Unicode version 4.0.0), and is the final location for the +# Java interface gnu.java.lang.CharData. +# As of JDK 1.5, use Unicode version 4.0.0 for best results. + +## +## Convert a 16-bit integer to a Java source code String literal character +## +sub javaChar($) { + my ($char) = @_; + die "Out of range: $char\n" if $char < -0x8000 or $char > 0x10ffff; + $char += 0x10000 if $char < 0; + # Special case characters that must be escaped, or are shorter as ASCII + return sprintf("\\%03o", $char) if $char < 0x20; + return "\\\"" if $char == 0x22; + return "\\\\" if $char == 0x5c; + return pack("C", $char) if $char < 0x7f; + return sprintf("\\u%04x", $char); +} + +## +## Convert the text UnicodeData file from www.unicode.org into a Java +## interface with string constants holding the compressed information. +## +my @TYPECODES = qw(Cn Lu Ll Lt Lm Lo Mn Me Mc Nd Nl No Zs Zl Zp Cc Cf + SKIPPED Co Cs Pd Ps Pe Pc Po Sm Sc Sk So Pi Pf); +my @DIRCODES = qw(L R AL EN ES ET AN CS NSM BN B S WS ON LRE LRO RLE RLO PDF); + +my $NOBREAK_FLAG = 32; +my $MIRRORED_FLAG = 64; + +my %special = (); + +# infoArray is an array where each element is a list of character information +# for characters in a plane. The index of each list is equal to the plane +# that it corresponds to even though most of these lists will currently be +# empty. This is done so that that this script can be easily modified to +# accomodate future versions of Unicode. +my @infoArray = \((), (), (), (), (), (), (), (), + (), (), (), (), (), (), (), (), ()); + +# info is a reference to one of the lists in infoArray, depending on which +# plane we're currently parsing. +my $info; + +# titlecase is a string of ordered pairs of characters to store the titlecase +# conversions of characters that have them +my $titlecase = ""; + +# count is simply used to print "." to the screen every so often +my $count = 0; + +# range is used when the UnicodeData file blocks out ranges of code points +my $range = 0; + +# largeNums is an array of numerical values that are too large to fit +# into the 16 bit char where most numerical values are stored. +# What is stored in the char then is a number N such that (-N - 3) is +# the index into largeNums where the numerical value can be found. +my @largeNums = (); + +die "Usage: $0 " + unless @ARGV == 3; +$| = 1; +print "GNU Classpath Unicode Attribute Database Generator 2.1\n"; +print "Copyright (C) 1998, 2002 Free Software Foundation, Inc.\n"; + +################################################################################ +################################################################################ +## Stage 0: Parse the special casing file +print "Parsing special casing file\n"; +open (SPECIAL, "< $ARGV[1]") || die "Can't open special casing file: $!\n"; +while () { + next if /^\#/; + my ($ch, undef, undef, $upper) = split / *; */; + + # This grabs only the special casing for multi-char uppercase. Note that + # there are no multi-char lowercase, and that Sun ignores multi-char + # titlecase rules. This script omits 3 special cases in Unicode 3.0.0, + # which must be hardcoded in java.lang.String: + # \u03a3 (Sun ignores this special case) + # \u0049 - lowercases to \u0131, but only in Turkish locale + # \u0069 - uppercases to \u0130, but only in Turkish locale + next unless defined $upper and $upper =~ / /; + $special{hex $ch} = [map {hex} split ' ', $upper]; +} +close SPECIAL; + +################################################################################ +################################################################################ +## Stage 1: Parse the attribute file +print "Parsing attributes file"; +open (UNICODE, "< $ARGV[0]") || die "Can't open Unicode attribute file: $!\n"; +while () { + print "." unless $count++ % 1000; + chomp; + s/\r//g; + my ($ch, $name, $category, undef, $bidir, $decomp, undef, undef, $numeric, + $mirrored, undef, undef, $upcase, $lowcase, $title) = split ';'; + $ch = hex($ch); + + # plane tells us which Unicode code plane we're currently in and is an + # index into infoArray. + my $plane = int($ch / 0x10000); + my $planeBase = $plane * 0x10000; + $info = \@{$infoArray[$plane]}; + + my ($type, $numValue, $upperchar, $lowerchar, $direction); + + # Set the value of the $type variable, checking to make sure that it's valid + # and setting the mirrored and nobreak bits if necessary. + $type = 0; + while ($category !~ /^$TYPECODES[$type]$/) { + if (++$type == @TYPECODES) { + die "$ch: Unknown type: $category"; + } + } + $type |= $NOBREAK_FLAG if ($decomp =~ /noBreak/); + $type |= $MIRRORED_FLAG if ($mirrored =~ /Y/); + + # Set the value of the $numeric variable checking the special cases of + # large numbers or 'a' - 'z' values. + if ($numeric =~ /^[0-9]+$/) { + $numValue = $numeric; + # If numeric takes more than 16 bits to store we want to store that + # number in a separate array and store a number N in numValue such + # that (-N - 3) is the offset into the separate array containing the + # large numerical value. + if ($numValue >= 0x7fff) { + $numValue = -3 - @largeNums; + push @largeNums, $numeric; + } + } elsif ($numeric eq "") { + # Special case sequences of 'a'-'z' + if ($ch >= 0x0041 && $ch <= 0x005a) { + $numValue = $ch - 0x0037; + } elsif ($ch >= 0x0061 && $ch <= 0x007a) { + $numValue = $ch - 0x0057; + } elsif ($ch >= 0xff21 && $ch <= 0xff3a) { + $numValue = $ch - 0xff17; + } elsif ($ch >= 0xff41 && $ch <= 0xff5a) { + $numValue = $ch - 0xff37; + } else { + $numValue = -1; + } + } else { + $numValue = -2; + } + + # Set the uppercase and lowercase expansions for the character. + $upperchar = $upcase ? hex($upcase) - $ch : 0; + $lowerchar = $lowcase ? hex($lowcase) - $ch : 0; + + # If this character has a special titlecase expansion then append it to + # the titlecase String. + if ($title ne $upcase) { + my $titlechar = $title ? hex($title) : $ch; + $titlecase .= pack("n2", $ch, $titlechar); + } + + # Set the direction variable, use the lower 2 bits as a count of how many + # characters will be added to the String if this character undergoes an + # uppercase expansion. + $direction = 0; + while ($bidir !~ /^$DIRCODES[$direction]$/) { + if (++$direction == @DIRCODES) { + $direction = -1; + last; + } + } + $direction <<= 2; + $direction += $#{$special{$ch}} if defined $special{$ch}; + + # If the UnicodeData file blocks off ranges of code points give them all + # the same character information. + if ($range) { + die "Expecting end of range at $ch\n" unless $name =~ /Last>$/; + for ($range + 1 .. $ch - 1) { + $info->[$_ - $planeBase] = pack("n5", $type, $numValue, $upperchar, + $lowerchar, $direction); + } + $range = 0; + } elsif ($name =~ /First>$/) { + $range = $ch; + } + + # Store all this parsed information into the element in infoArray that info + # points to. + $info->[$ch - $planeBase] = pack("n5", $type, $numValue, $upperchar, $lowerchar, + $direction); +} +close UNICODE; + +################################################################################ +################################################################################ +## Stage 2: Compress the data structures +printf "\nCompressing data structures"; +$count = 0; + +# data is a String that will be used to create the DATA String containing +# character information and offsets into the attribute tables. +my @data = (); + +# charhashArray is an array of hashtables used so that we can reuse character +# attributes when characters share the same attributes ... this makes our +# attribute tables smaller. charhash is a pointer into this array. +my @charhashArray = ({}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}); +my $charhash = (); + +# charinfoArray is an array of arrays, one per plane, for storing character +# information. charinfo is a pointer into this array. +my @charinfoArray = \((), (), (), (), (), (), (), (), + (), (), (), (), (), (), (), (), ()); +my $charinfo; + +# charlen is an array, one element per plane, that tells us how many unique +# character attributes there are for that plane. +my @charlen = (); + +for my $plane (0 .. 0x10) { + $info = \@{$infoArray[$plane]}; + my $planeBase = $plane * 0x10000; + $charhash = \%{$charhashArray[$plane]}; + $charinfo = \@{$charinfoArray[$plane]}; + + for my $ch ($planeBase .. $planeBase + 0xffff) { + my $index = $ch - $planeBase; + print "." unless $count++ % 0x1000; + $info->[$index] = pack("n5", 0, -1, 0, 0, -4) unless defined $info->[$index]; + + my ($type, $numVal, $upper, $lower, $direction) = unpack("n5", $info->[$index]); + if (! exists $charhash->{$info->[$index]}) { + # If we entered this loop that means the character we're looking at + # now has attributes that are unique from those that we've looked + # at so far for this plane. So we push its attributes into charinfo + # and store in charhash the offset into charinfo where these + # attributes can later be found. + push @{$charinfo}, [ $numVal, $upper, $lower, $direction ]; + $charhash->{$info->[$index]} = @{$charinfo} - 1; + # When the file is generaged, the number we just stored in charhas + # will be the upper 9 bits in the DATA String that are an offset + # into the attribute tables. + } + $data[$plane] .= pack("n", ($charhash->{$info->[$index]} << 7) | $type); + } + $charlen[$plane] = scalar(@{$charinfoArray[$plane]}); +} + +# the shift that results in the best compression of the table. This is an array +# because different shifts are better for the different tables for each plane. +my @bestshift; + +# an initial guess. +my $bestest = 1000000; +my @bestblkstr; +my @blksize = (); + +for my $plane (0 .. 0x10) { + print "\n\nplane: $plane\n"; + print "Unique character entries: $charlen[$plane]\n"; + $bestest = 1000000; + for my $i (3 .. 8) { + my $blksize = 1 << $i; + my %blocks = (); + my @blkarray = (); + my ($j, $k); + print "shift: $i"; + + for ($j = 0; $j < 0x10000; $j += $blksize) { + my $blkkey = substr $data[$plane], 2 * $j, 2 * $blksize; + if (! exists $blocks{$blkkey}) { + push @blkarray, $blkkey; + $blocks{$blkkey} = $#blkarray; + } + } + + my $blknum = @blkarray; + my $blocklen = $blknum * $blksize; + printf " before %5d", $blocklen; + + # Now we try to pack the blkarray as tight as possible by finding matching + # heads and tails. + for ($j = $blksize - 1; $j > 0; $j--) { + my %tails = (); + for $k (0 .. $#blkarray) { + next unless defined $blkarray[$k]; + my $len = length $blkarray[$k]; + my $tail = substr $blkarray[$k], $len - $j * 2; + if (exists $tails{$tail}) { + push @{$tails{$tail}}, $k; + } else { + $tails{$tail} = [ $k ]; + } + } + + # tails are calculated, now calculate the heads and merge. + BLOCK: + for $k (0 .. $#blkarray) { + next unless defined $blkarray[$k]; + my $tomerge = $k; + while (1) { + my $head = substr($blkarray[$tomerge], 0, $j * 2); + my $entry = $tails{$head}; + next BLOCK unless defined $entry; + + my $other = shift @{$entry}; + if ($other == $tomerge) { + if (@{$entry}) { + push @{$entry}, $other; + $other = shift @{$entry}; + } else { + push @{$entry}, $other; + next BLOCK; + } + } + if (@{$entry} == 0) { + delete $tails{$head}; + } + + # a match was found + my $merge = $blkarray[$other] + . substr($blkarray[$tomerge], $j * 2); + $blocklen -= $j; + $blknum--; + + if ($other < $tomerge) { + $blkarray[$tomerge] = undef; + $blkarray[$other] = $merge; + my $len = length $merge; + my $tail = substr $merge, $len - $j * 2; + $tails{$tail} = [ map { $_ == $tomerge ? $other : $_ } + @{$tails{$tail}} ]; + next BLOCK; + } + $blkarray[$tomerge] = $merge; + $blkarray[$other] = undef; + } + } + } + my $blockstr; + for $k (0 .. $#blkarray) { + $blockstr .= $blkarray[$k] if defined $blkarray[$k]; + } + + die "Unexpected $blocklen" if length($blockstr) != 2 * $blocklen; + my $estimate = 2 * $blocklen + (0x20000 >> $i); + + printf " after merge %5d: %6d bytes\n", $blocklen, $estimate; + if ($estimate < $bestest) { + $bestest = $estimate; + $bestshift[$plane] = $i; + $bestblkstr[$plane] = $blockstr; + } + } + $blksize[$plane] = 1 << $bestshift[$plane]; + print "best shift: ", $bestshift[$plane]; + print " blksize: ", $blksize[$plane]; +} +my @blocksArray = \((), (), (), (), (), (), (), (), + (), (), (), (), (), (), (), (), ()); + +for my $plane (0 .. 0x10) { + for (my $j = 0; $j < 0x10000; $j += $blksize[$plane]) { + my $blkkey = substr $data[$plane], 2 * $j, 2 * $blksize[$plane]; + my $index = index $bestblkstr[$plane], $blkkey; + while ($index & 1) { + die "not found: $j" if $index == -1; + $index = index $bestblkstr[$plane], $blkkey, $index + 1; + } + push @{$blocksArray[$plane]}, ($index / 2 - $j) & 0xffff; + } +} + +################################################################################ +################################################################################ +## Stage 3: Generate the file +for my $plane (0 .. 0x10) { + die "UTF-8 limit of blocks may be exceeded for plane $plane: " . scalar(@{$blocksArray[$plane]}) . "\n" + if @{$blocksArray[$plane]} > 0xffff / 3; + die "UTF-8 limit of data may be exceeded for plane $plane: " . length($bestblkstr[$plane]) . "\n" + if length($bestblkstr[$plane]) > 0xffff / 3; +} + +{ + print "\nGenerating $ARGV[2]."; + my ($i, $j); + + open OUTPUT, "> $ARGV[2]" or die "Failed creating output file: $!\n"; + print OUTPUT <$ARGV[0]
      and + * $ARGV[1], by some + * perl scripts. These Unicode definition files can be found on the + * http://www.unicode.org website. + * JDK 1.5 uses Unicode version 4.0.0. + * + * The data is stored as string constants, but Character will convert these + * Strings to their respective char[] components. The fields + * are stored in arrays of 17 elements each, one element per Unicode plane. + * BLOCKS stores the offset of a block of 2SHIFT + * characters within DATA. The DATA field, in turn, stores + * information about each character in the low order bits, and an offset + * into the attribute tables UPPER, LOWER, + * NUM_VALUE, and DIRECTION. Notice that the + * attribute tables are much smaller than 0xffff entries; as many characters + * in Unicode share common attributes. Numbers that are too large to fit + * into NUM_VALUE as 16 bit chars are stored in LARGENUMS and a number N is + * stored in NUM_VALUE such that (-N - 3) is the offset into LARGENUMS for + * the particular character. The DIRECTION table also contains a field for + * detecting characters with multi-character uppercase expansions. + * Next, there is a listing for TITLE exceptions (most characters + * just have the same title case as upper case). Finally, there are two + * tables for multi-character capitalization, UPPER_SPECIAL + * which lists the characters which are special cased, and + * UPPER_EXPAND, which lists their expansion. + * + * \@author scripts/unicode-muncher.pl (written by Jochen Hoenicke, + * Eric Blake) + * \@see Character + * \@see String + */ +public interface CharData +{ + /** + * The Unicode definition file that was parsed to build this database. + */ + String SOURCE = \"$ARGV[0]\"; + + /** + * The character shift amount to look up the block offset. In other words, + * (char) (BLOCKS.value[ch >> SHIFT[p]] + ch) is the index + * where ch is described in DATA if ch + * is in Unicode plane p. Note that p is simply + * the integer division of ch and 0x10000. + */ + int[] SHIFT +EOF + for ($i = 0; $i < @bestshift - 1; $i++) { + if ($i == 0){ + print OUTPUT " = new int[] {"; + } + print OUTPUT $bestshift[$i], ", "; + } + if (scalar(@bestshift) > 0){ + print OUTPUT $bestshift[-1], "}"; + } + else { + print OUTPUT " = null"; + } + print OUTPUT <DATA. + * Each entry has been adjusted so that the 16-bit sum with the desired + * character gives the actual index into DATA. + */ + String[] BLOCKS = new String[]{ +EOF + for ($plane = 0; $plane <= 0x10; $plane++) { + # The following if statement handles the cases of unassigned planes + # specially so we don't waste space with unused Strings. As of + # Unicode version 4.0.0 only planes 0, 1, 2, and 14 are used. If + # you are updating this script to work with a later version of + # Unicode you may have to alter this if statement. + if ($plane > 2 && $plane != 14) { + print OUTPUT ($plane == 0x10) ? " \"\"}" : " \"\",\n\n"; + } + else { + for ($i = 0; $i < @{$blocksArray[$plane]} / 11; $i++) { + print OUTPUT $i ? "\n + " : " "; + print OUTPUT "\""; + for $j (0 .. 10) { + last if @{$blocksArray[$plane]} <= $i * 11 + $j; + my $val = $blocksArray[$plane]->[$i * 11 + $j]; + print OUTPUT javaChar($val); + } + print OUTPUT "\""; + } + print OUTPUT ",\n\n"; + } + } + print OUTPUT < 0){ + print OUTPUT $largeNums[-1], "}"; + } + else { + print OUTPUT " = null"; + } + print OUTPUT < 2 && $plane != 14) { + print OUTPUT ($plane == 0x10) ? " \"\"}" : " \"\",\n\n"; + } + else { + my $len = length($bestblkstr[$plane]) / 2; + for ($i = 0; $i < $len / 11; $i++) { + print OUTPUT $i ? "\n + " : " "; + print OUTPUT "\""; + for $j (0 .. 10) { + last if $len <= $i * 11 + $j; + my $val = unpack "n", substr($bestblkstr[$plane], 2 * ($i * 11 + $j), 2); + print OUTPUT javaChar($val); + } + print OUTPUT "\""; + } + print OUTPUT ",\n\n"; + } + } + print OUTPUT < 2 && $plane != 14) { + print OUTPUT ($plane == 0x10) ? " \"\"}" : " \"\",\n\n"; + } + else { + $len = @{$charinfoArray[$plane]}; + for ($i = 0; $i < $len / 11; $i++) { + print OUTPUT $i ? "\n + " : " "; + print OUTPUT "\""; + for $j (0 .. 10) { + last if $len <= $i * 11 + $j; + my $val = $charinfoArray[$plane]->[$i * 11 + $j][0]; + print OUTPUT javaChar($val); + } + print OUTPUT "\""; + } + print OUTPUT ",\n\n"; + } + } + print OUTPUT < 2 && $plane != 14) { + print OUTPUT ($plane == 0x10) ? " \"\"}" : " \"\",\n\n"; + } + else { + $len = @{$charinfoArray[$plane]}; + for ($i = 0; $i < $len / 11; $i++) { + print OUTPUT $i ? "\n + " : " "; + print OUTPUT "\""; + for $j (0 .. 10) { + last if $len <= $i * 11 + $j; + my $val = $charinfoArray[$plane]->[$i * 11 + $j][1]; + print OUTPUT javaChar($val); + } + print OUTPUT "\""; + } + print OUTPUT ",\n\n"; + } + } + print OUTPUT < 2 && $plane != 14) { + print OUTPUT ($plane == 0x10) ? " \"\"}" : " \"\",\n\n"; + } + else { + $len = @{$charinfoArray[$plane]}; + for ($i = 0; $i < $len / 11; $i++) { + print OUTPUT $i ? "\n + " : " "; + print OUTPUT "\""; + for $j (0 .. 10) { + last if $len <= $i * 11 + $j; + my $val = $charinfoArray[$plane]->[$i * 11 + $j][2]; + print OUTPUT javaChar($val); + } + print OUTPUT "\""; + } + print OUTPUT ",\n\n"; + } + } + print OUTPUT < 2 && $plane != 14) { + print OUTPUT ($plane == 0x10) ? " \"\"}" : " \"\",\n\n"; + } + else { + $len = @{$charinfoArray[$plane]}; + for ($i = 0; $i < $len / 11; $i++) { + print OUTPUT $i ? "\n + " : " "; + print OUTPUT "\""; + for $j (0 .. 10) { + last if $len <= $i * 11 + $j; + my $val = $charinfoArray[$plane]->[$i * 11 + $j][3]; + print OUTPUT javaChar($val); + } + print OUTPUT "\""; + } + print OUTPUT ",\n\n"; + } + } + print OUTPUT <UPPER to determine their titlecase). The listing + * is a sorted sequence of character pairs; converting the first character + * of the pair to titlecase produces the second character. + */ + String TITLE +EOF + + $len = length($titlecase) / 2; + for ($i = 0; $i < $len / 11; $i++) { + print OUTPUT $i ? "\n + \"" : " = \""; + for $j (0 .. 10) { + last if $len <= $i * 11 + $j; + my $val = unpack "n", substr($titlecase, 2 * ($i * 11 + $j), 2); + print OUTPUT javaChar($val); + } + print OUTPUT "\""; + } + + print OUTPUT < $b} keys %special; + my $expansion = ""; + my $offset = 0; + $len = @list; + for ($i = 0; $i < $len / 5; $i++) { + print OUTPUT $i ? "\n + \"" : " = \""; + for $j (0 .. 4) { + last if $len <= $i * 5 + $j; + my $ch = $list[$i * 5 + $j]; + print OUTPUT javaChar($ch); + print OUTPUT javaChar($offset); + $offset += @{$special{$ch}}; + $expansion .= pack "n*", @{$special{$ch}}; + } + print OUTPUT "\""; + } + + print OUTPUT <null for the system class + * loader. + * @return an iterator over the service providers. + */ + public static

      Iterator

      providers(Class

      c, ClassLoader cl) + { + return (Iterator

      ) ServiceFactory.lookupProviders(c, cl); + } + +} + diff --git a/libjava/classpath/sun/misc/ServiceConfigurationError.java b/libjava/classpath/sun/misc/ServiceConfigurationError.java new file mode 100644 index 00000000000..9c29d6e8c1e --- /dev/null +++ b/libjava/classpath/sun/misc/ServiceConfigurationError.java @@ -0,0 +1,64 @@ +/* ServiceConfigurationError.java -- An error from service configuration. + Copyright (C) 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 sun.misc; + +public class ServiceConfigurationError + extends Error +{ + + /** + * Constructs a new {@link ServiceConfigurationError} + */ + public ServiceConfigurationError() + { + super(); + } + + /** + * Constructs a new {@link ServiceConfigurationError} + * with the specified message. + */ + public ServiceConfigurationError(String message) + { + super(message); + } + + +} + diff --git a/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java b/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java index ab9ad13d853..f132d81bad8 100644 --- a/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java +++ b/libjava/classpath/sun/reflect/annotation/AnnotationInvocationHandler.java @@ -39,11 +39,13 @@ exception statement from your version. */ package sun.reflect.annotation; import java.io.Serializable; +import java.lang.annotation.Annotation; import java.lang.annotation.AnnotationTypeMismatchException; import java.lang.annotation.IncompleteAnnotationException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Proxy; import java.util.Arrays; import java.util.Iterator; import java.util.Map; @@ -74,6 +76,24 @@ public final class AnnotationInvocationHandler this.memberValues = memberValues; } + public static Annotation create(Class type, Map memberValues) + { + for (Method m : type.getDeclaredMethods()) + { + String name = m.getName(); + if (! memberValues.containsKey(name)) + { + // FIXME: what to do about exceptions here? + memberValues.put(name, m.getDefaultValue()); + } + } + AnnotationInvocationHandler handler + = new AnnotationInvocationHandler(type, memberValues); + return (Annotation) Proxy.newProxyInstance(type.getClassLoader(), + new Class[] { type }, + handler); + } + /** * Compare an instance of AnnotationInvocationHandler with another object. * Note that the other object does not have to be an @@ -295,6 +315,38 @@ public final class AnnotationInvocationHandler return returnType; } + private Object arrayClone(Object obj) + { + if (obj instanceof boolean[]) + return ((boolean[]) obj).clone(); + + if (obj instanceof byte[]) + return ((byte[]) obj).clone(); + + if (obj instanceof char[]) + return ((char[]) obj).clone(); + + if (obj instanceof short[]) + return ((short[]) obj).clone(); + + if (obj instanceof int[]) + return ((int[]) obj).clone(); + + if (obj instanceof float[]) + return ((float[]) obj).clone(); + + if (obj instanceof long[]) + return ((long[]) obj).clone(); + + if (obj instanceof double[]) + return ((double[]) obj).clone(); + + if (obj instanceof Object[]) + return ((Object[]) obj).clone(); + + return obj; + } + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { @@ -325,6 +377,10 @@ public final class AnnotationInvocationHandler throw new AnnotationTypeMismatchException(method, val.getClass().getName()); } + if (val.getClass().isArray()) + { + val = arrayClone(val); + } return val; } } diff --git a/libjava/classpath/sun/reflect/annotation/AnnotationParser.java b/libjava/classpath/sun/reflect/annotation/AnnotationParser.java new file mode 100644 index 00000000000..a5452d09014 --- /dev/null +++ b/libjava/classpath/sun/reflect/annotation/AnnotationParser.java @@ -0,0 +1,57 @@ +/* sun.reflect.annotation.AnnotationParser + 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 sun.reflect.annotation; + +import gnu.classpath.NotImplementedException; + +import java.lang.annotation.Annotation; + +import java.util.Map; + +public class AnnotationParser +{ + + public static Annotation annotationForMap(Class annoType, + Map map) + throws NotImplementedException + { + return null; + } + +} diff --git a/libjava/classpath/sun/reflect/annotation/AnnotationType.java b/libjava/classpath/sun/reflect/annotation/AnnotationType.java new file mode 100644 index 00000000000..38d8aa8603c --- /dev/null +++ b/libjava/classpath/sun/reflect/annotation/AnnotationType.java @@ -0,0 +1,52 @@ +/* sun.reflect.annotation.AnnotationType + 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 sun.reflect.annotation; + +import gnu.classpath.NotImplementedException; + +public class AnnotationType +{ + + public static Class invocationHandlerReturnType(Class returnClass) + throws NotImplementedException + { + return null; + } + +} diff --git a/libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java b/libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java new file mode 100644 index 00000000000..33b0daefa35 --- /dev/null +++ b/libjava/classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java @@ -0,0 +1,52 @@ +/* sun.reflect.annotation.EnumConstantNotPresentExceptionProxy + 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 sun.reflect.annotation; + +import gnu.classpath.NotImplementedException; + +public class EnumConstantNotPresentExceptionProxy + extends ExceptionProxy +{ + + public EnumConstantNotPresentExceptionProxy(Class c, String s) + throws NotImplementedException + { + } + +} diff --git a/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java b/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java new file mode 100644 index 00000000000..8edb361533c --- /dev/null +++ b/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java @@ -0,0 +1,46 @@ +/* sun.reflect.annotation.ExceptionProxy + 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 sun.reflect.annotation; + +import gnu.classpath.NotImplementedException; + +public class ExceptionProxy +{ + +} diff --git a/libjava/classpath/tools/.cvsignore b/libjava/classpath/tools/.cvsignore index cf3688511ad..a013e8d1644 100644 --- a/libjava/classpath/tools/.cvsignore +++ b/libjava/classpath/tools/.cvsignore @@ -4,3 +4,16 @@ Makefile.in Makefile tools.zip appletviewer +.deps +gappletviewer +gjarsigner +gkeytool +gjar +gnative2ascii +gserialver +gjavah +gorbd +grmic +grmid +grmiregistry +gtnameserv diff --git a/libjava/classpath/tools/Makefile.am b/libjava/classpath/tools/Makefile.am dissimilarity index 72% index 01364f2411d..1d4cb6683ed 100755 --- a/libjava/classpath/tools/Makefile.am +++ b/libjava/classpath/tools/Makefile.am @@ -1,172 +1,192 @@ -## Input file for automake to generate the Makefile.in used by configure - -GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip' - -# Setup the compiler to use the GNU Classpath library we just build -if FOUND_GCJ -JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath $(GLIBJ_CLASSPATH) --classpath . -C -else -if FOUND_JIKES -JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(GLIBJ_CLASSPATH):. -else -if FOUND_GCJX -JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(GLIBJ_CLASSPATH):. -else -if FOUND_ECJ -JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . -else -error dunno how to setup the JCOMPILER and compile -endif -endif -endif -endif - -## GCJ LOCAL: do not build and install wrapper binaries here, since -## the build ordering will not work. Instead build them in -## gcc/libjava/Makefile.am. -# if CREATE_WRAPPERS -# bin_SCRIPTS = -# bin_PROGRAMS = gappletviewer gjarsigner gkeytool \ -# gjar gnative2ascii gserialver -# -# if FOUND_GCJ -# LIBJVM = -lgcj -# else -# if FOUND_CACAO -# LIBJVM = -ljvm -# else -# LIBJVM = -# endif -# endif -# -# AM_CPPFLAGS = -Wall \ -# -I$(top_srcdir)/include \ -# -DTOOLS_ZIP="\"$(TOOLSdir)/$(TOOLS_ZIP)\"" -# -# gappletviewer_SOURCES = toolwrapper.c -# gappletviewer_CFLAGS = \ -# -DTOOLPACKAGE="\"appletviewer\"" \ -# -DTOOLNAME="\"gappletviewer\"" -# gappletviewer_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gjarsigner_SOURCES = toolwrapper.c -# gjarsigner_CFLAGS = \ -# -DTOOLPACKAGE="\"jarsigner\"" \ -# -DTOOLNAME="\"gjarsigner\"" -# gjarsigner_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gkeytool_SOURCES = toolwrapper.c -# gkeytool_CFLAGS = \ -# -DTOOLPACKAGE="\"keytool\"" \ -# -DTOOLNAME="\"gkeytool\"" -# gkeytool_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gjar_SOURCES = toolwrapper.c -# gjar_CFLAGS = \ -# -DTOOLPACKAGE="\"jar\"" \ -# -DTOOLNAME="\"gjar\"" -# gjar_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gnative2ascii_SOURCES = toolwrapper.c -# gnative2ascii_CFLAGS = \ -# -DTOOLPACKAGE="\"native2ascii\"" \ -# -DTOOLNAME="\"gnative2ascii\"" -# gnative2ascii_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gserialver_SOURCES = toolwrapper.c -# gserialver_CFLAGS = \ -# -DTOOLPACKAGE="\"serialver\"" \ -# -DTOOLNAME="\"gserialver\"" -# gserialver_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# else -# bin_SCRIPTS = gappletviewer gjarsigner gkeytool \ -# gjar gnative2ascii gserialver -# bin_PROGRAMS = -# endif -## END GCJ LOCAL -EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \ - gjar.in gnative2ascii.in gserialver.in - -# All our example java source files -TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*.java $(srcdir)/gnu/classpath/tools/*/*.java $(srcdir)/gnu/classpath/tools/*/*/*.java - -# The zip files with classes we want to produce. - -## GCJ LOCAL: rename this tools.jar for libgcj_tools_la_SOURCES in -## gcc/libjava/Makefile.am. -TOOLS_ZIP = tools.jar - -# Extra objects that will not exist until configure-time -BUILT_SOURCES = $(TOOLS_ZIP) - -# The templates that must be included into the generated zip file. -GRMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/giop/grmic/templates/*.jav -RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmi/rmic/templates/*.jav - -TOOLS_TEMPLATES = $(GRMIC_TEMPLATES) $(RMIC_TEMPLATES) - -# This covers the built-in help texts, both for giop and rmic subpackages. -GIOP_HELPS = $(srcdir)/gnu/classpath/tools/giop/*.txt -RMI_HELPS = $(srcdir)/gnu/classpath/tools/rmi/*.txt - -TOOLS_HELPS = $(GIOP_HELPS) $(RMI_HELPS) - -# The tool specific README files. -READMES = $(srcdir)/gnu/classpath/tools/giop/README - -# All the files we find "interesting" -ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(TOOLS_TEMPLATES) $(TOOLS_HELPS) - -## GCJ LOCAL: build tools.zip but do not install it. It is installed -## in gcc/libjava/Makefile.am. -# # Some architecture independent data to be installed. -# TOOLS_DATA = $(TOOLS_ZIP) -noinst_DATA = $(TOOLS_ZIP) - -# Where we want these data files installed. -## GCJ LOCAL: install libgcj-tools.jar alongside libgcj.jar. -# TOOLSdir = $(datadir)/java - -# Make sure everything is included in the distribution. -dist-hook: - srcdir_cnt=`echo $(srcdir) | wc -c`; \ - for file in $(ALL_TOOLS_FILES); do \ - f=`echo $$file | cut -c$$srcdir_cnt-`; \ - fdir=`dirname $$f`; \ - if test ! -d $(distdir)/$$fdir; then \ - echo "$(makeinstalldirs) $(distdir)/$$fdir"; \ - $(mkinstalldirs) $(distdir)/$$fdir; \ - fi; \ - echo "cp -p $$file $(distdir)/$$f"; \ - cp -p $$file $(distdir)/$$f; \ - done - -# To generate the example zip just depend on the sources and ignore -# the class files. Always regenerate all .class files and remove them -# immediately. And copy the template files we use to the classes dir -# so they get also included. -## GCJ LOCAL: assume FASTJAR since we pass --with-fastjar to configure -$(TOOLS_ZIP): $(TOOLS_JAVA_FILES) - mkdir -p classes/gnu/classpath/tools/giop/grmic/templates - mkdir -p classes/gnu/classpath/tools/rmi/rmic/templates - mkdir -p classes/gnu/classpath/tools/appletviewer - mkdir -p classes/gnu/classpath/tools/jarsigner - mkdir -p classes/gnu/classpath/tools/keytool - cp $(RMIC_TEMPLATES) classes/gnu/classpath/tools/rmi/rmic/templates - cp $(GRMIC_TEMPLATES) classes/gnu/classpath/tools/giop/grmic/templates - cp $(RMI_HELPS) classes/gnu/classpath/tools/rmi/ - cp $(GIOP_HELPS) classes/gnu/classpath/tools/giop/ - $(JCOMPILER) -d classes $(TOOLS_JAVA_FILES) - (cd classes; \ - $(FASTJAR) cf ../$(TOOLS_ZIP) .; \ - cd ..) - rm -rf classes - -# Zip file be gone! (and make sure the classes are gone too) -clean-local: - rm -rf $(TOOLS_ZIP) classes - -# FIXME: remove this when GNU Classpath includes a bootstrap VM. -installcheck-binSCRIPTS: - : +## Input file for automake to generate the Makefile.in used by configure + +## GCJ LOCAL: use srcdir to find core classes. +GLIBJ_BOOTCLASSPATH='$(top_srcdir)/lib' +GLIBJ_CLASSPATH=$(srcdir)/asm +## END GCJ LOCAL + +# Setup the compiler to use the GNU Classpath library we just build +if FOUND_GCJ +JCOMPILER = $(GCJ) -C -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH):. +else +if FOUND_ECJ +JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH) +else +error dunno how to setup the JCOMPILER and compile +endif +endif + +if CREATE_WRAPPERS +bin_SCRIPTS = +bin_PROGRAMS = gappletviewer gjarsigner gkeytool \ + gjar gnative2ascii gserialver gjavah grmiregistry \ + gtnameserv gorbd grmid grmic + + +AM_CPPFLAGS = -Wall \ + -I$(top_srcdir)/include \ + -DLIBJVM="\"$(libdir)/libjvm\"" \ + -DTOOLS_ZIP="\"$(TOOLSdir)/$(TOOLS_ZIP)\"" + +gappletviewer_SOURCES = toolwrapper.c +gappletviewer_CFLAGS = \ + -DTOOLPACKAGE="\"appletviewer\"" \ + -DTOOLNAME="\"gappletviewer\"" + +gjarsigner_SOURCES = toolwrapper.c +gjarsigner_CFLAGS = \ + -DTOOLPACKAGE="\"jarsigner\"" \ + -DTOOLNAME="\"gjarsigner\"" + +gkeytool_SOURCES = toolwrapper.c +gkeytool_CFLAGS = \ + -DTOOLPACKAGE="\"keytool\"" \ + -DTOOLNAME="\"gkeytool\"" + +gjar_SOURCES = toolwrapper.c +gjar_CFLAGS = \ + -DTOOLPACKAGE="\"jar\"" \ + -DTOOLNAME="\"gjar\"" + +gnative2ascii_SOURCES = toolwrapper.c +gnative2ascii_CFLAGS = \ + -DTOOLPACKAGE="\"native2ascii\"" \ + -DTOOLNAME="\"gnative2ascii\"" + +gserialver_SOURCES = toolwrapper.c +gserialver_CFLAGS = \ + -DTOOLPACKAGE="\"serialver\"" \ + -DTOOLNAME="\"gserialver\"" + +grmiregistry_SOURCES = toolwrapper.c +grmiregistry_CFLAGS = \ + -DTOOLPACKAGE="\"rmiregistry\"" \ + -DTOOLNAME="\"grmiregistry\"" + +gtnameserv_SOURCES = toolwrapper.c +gtnameserv_CFLAGS = \ + -DTOOLPACKAGE="\"tnameserv\"" \ + -DTOOLNAME="\"gtnameserv\"" + +gorbd_SOURCES = toolwrapper.c +gorbd_CFLAGS = \ + -DTOOLPACKAGE="\"orbd\"" \ + -DTOOLNAME="\"gorbd\"" + +grmid_SOURCES = toolwrapper.c +grmid_CFLAGS = \ + -DTOOLPACKAGE="\"rmid\"" \ + -DTOOLNAME="\"grmid\"" + +gjavah_SOURCES = toolwrapper.c +gjavah_CFLAGS = \ + -DTOOLPACKAGE="\"javah\"" \ + -DTOOLNAME="\"gjavah\"" + +grmic_SOURCES = toolwrapper.c +grmic_CFLAGS = \ + -DTOOLPACKAGE="\"rmic\"" \ + -DTOOLNAME="\"grmic\"" + +else +bin_SCRIPTS = gappletviewer gjarsigner gkeytool \ + gjar gnative2ascii gserialver gjavah grmiregistry \ + gtnameserv gorbd grmid grmic +bin_PROGRAMS = +endif +EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \ + gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \ + gtnameserv.in gorbd.in grmid.in grmic.in + +# All our example java source files +TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/commons/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/optimizer/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/signature/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/tree/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/tree/analysis/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/util/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/util/attrs/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/xml/*.java + +# The zip files with classes we want to produce. +TOOLS_ZIP = tools.zip + +# Extra objects that will not exist until configure-time +BUILT_SOURCES = $(TOOLS_ZIP) + +# RMIC templates that must be included in the generated zip file. +RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmic/templates/*.jav + +# All the files we find "interesting" +ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) + +# Some architecture independent data to be installed. +TOOLS_DATA = $(TOOLS_ZIP) + +# Where we want these data files installed. +TOOLSdir = $(pkgdatadir) + +# Make sure everything is included in the distribution. +dist-hook: + srcdir_cnt=`echo $(srcdir) | wc -c`; \ + for file in $(ALL_TOOLS_FILES); do \ + f=`echo $$file | cut -c$$srcdir_cnt-`; \ + fdir=`dirname $$f`; \ + if test ! -d $(distdir)/$$fdir; then \ + echo "$(makeinstalldirs) $(distdir)/$$fdir"; \ + $(mkinstalldirs) $(distdir)/$$fdir; \ + fi; \ + echo "cp -p $$file $(distdir)/$$f"; \ + cp -p $$file $(distdir)/$$f; \ + done + +# To generate the example zip just depend on the sources and ignore +# the class files. Always regenerate all .class files and remove them +# immediately. And copy the template files we use to the classes dir +# so they get also included. +$(TOOLS_ZIP): $(TOOLS_JAVA_FILES) +## GCJ LOCAL: put classes in srcdir +## @rm -rf classes asm +## mkdir classes asm + find $(srcdir)/external/asm -name '*.java' -print > asm.lst + find $(srcdir)/gnu/classpath/tools -name '*.java' -print > classes.lst + cat classes.lst asm.lst > all-classes.lst +if JAVA_MAINTAINER_MODE +## Compile ASM separately as it is latin-1 encoded. + AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \ + $$AC -g -w -d $(srcdir)/asm @asm.lst + $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst +## Copy over tools resource files. + @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools -name \*.properties -print`; \ + for p in $$list; do \ + dirname=classes/`dirname $$p`; \ + if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \ + echo " cp $(top_srcdir)/resource/$$p classes/$$p"; \ + cp $(top_srcdir)/resource/$$p classes/$$p; \ + done +endif + cp -pR $(srcdir)/asm . + cp -pR $(srcdir)/classes . +## END GCJ LOCAL +## First add classpath tools stuff. + (cd classes; \ + if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \ + cd ..) +## Now add ASM classes. + (cd asm; \ + if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then $(FASTJAR) uf ../$(TOOLS_ZIP) .; fi; \ + cd ..) + rm -rf asm classes classes.lst asm.lst + +# Zip file be gone! (and make sure the classes are gone too) +clean-local: + rm -rf $(TOOLS_ZIP) classes asm asm.lst + +# FIXME: remove this when GNU Classpath includes a bootstrap VM. +installcheck-binSCRIPTS: + : diff --git a/libjava/classpath/tools/Makefile.in b/libjava/classpath/tools/Makefile.in index 9723e4235ba..a8ddc832444 100644 --- a/libjava/classpath/tools/Makefile.in +++ b/libjava/classpath/tools/Makefile.in @@ -14,6 +14,8 @@ @SET_MAKE@ + + srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ @@ -37,31 +39,134 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +@CREATE_WRAPPERS_TRUE@bin_PROGRAMS = gappletviewer$(EXEEXT) \ +@CREATE_WRAPPERS_TRUE@ gjarsigner$(EXEEXT) gkeytool$(EXEEXT) \ +@CREATE_WRAPPERS_TRUE@ gjar$(EXEEXT) gnative2ascii$(EXEEXT) \ +@CREATE_WRAPPERS_TRUE@ gserialver$(EXEEXT) gjavah$(EXEEXT) \ +@CREATE_WRAPPERS_TRUE@ grmiregistry$(EXEEXT) \ +@CREATE_WRAPPERS_TRUE@ gtnameserv$(EXEEXT) gorbd$(EXEEXT) \ +@CREATE_WRAPPERS_TRUE@ grmid$(EXEEXT) grmic$(EXEEXT) subdir = tools DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/appletviewer.in $(srcdir)/gappletviewer.in \ - $(srcdir)/gjar.in $(srcdir)/gjarsigner.in \ + $(srcdir)/gappletviewer.in $(srcdir)/gjar.in \ + $(srcdir)/gjarsigner.in $(srcdir)/gjavah.in \ $(srcdir)/gkeytool.in $(srcdir)/gnative2ascii.in \ - $(srcdir)/gserialver.in $(srcdir)/jarsigner.in \ - $(srcdir)/keytool.in + $(srcdir)/gorbd.in $(srcdir)/grmic.in $(srcdir)/grmid.in \ + $(srcdir)/grmiregistry.in $(srcdir)/gserialver.in \ + $(srcdir)/gtnameserv.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ + $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \ $(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = gappletviewer gjarsigner gkeytool gjar \ - gnative2ascii gserialver appletviewer jarsigner keytool -SOURCES = -DIST_SOURCES = -DATA = $(noinst_DATA) + gnative2ascii gserialver grmiregistry gtnameserv gorbd grmid \ + grmic gjavah +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(TOOLSdir)" +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) +am__gappletviewer_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gappletviewer_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ gappletviewer-toolwrapper.$(OBJEXT) +gappletviewer_OBJECTS = $(am_gappletviewer_OBJECTS) +gappletviewer_LDADD = $(LDADD) +am__gjar_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gjar_OBJECTS = gjar-toolwrapper.$(OBJEXT) +gjar_OBJECTS = $(am_gjar_OBJECTS) +gjar_LDADD = $(LDADD) +am__gjarsigner_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gjarsigner_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ gjarsigner-toolwrapper.$(OBJEXT) +gjarsigner_OBJECTS = $(am_gjarsigner_OBJECTS) +gjarsigner_LDADD = $(LDADD) +am__gjavah_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gjavah_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ gjavah-toolwrapper.$(OBJEXT) +gjavah_OBJECTS = $(am_gjavah_OBJECTS) +gjavah_LDADD = $(LDADD) +am__gkeytool_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gkeytool_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ gkeytool-toolwrapper.$(OBJEXT) +gkeytool_OBJECTS = $(am_gkeytool_OBJECTS) +gkeytool_LDADD = $(LDADD) +am__gnative2ascii_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gnative2ascii_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ gnative2ascii-toolwrapper.$(OBJEXT) +gnative2ascii_OBJECTS = $(am_gnative2ascii_OBJECTS) +gnative2ascii_LDADD = $(LDADD) +am__gorbd_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gorbd_OBJECTS = gorbd-toolwrapper.$(OBJEXT) +gorbd_OBJECTS = $(am_gorbd_OBJECTS) +gorbd_LDADD = $(LDADD) +am__grmic_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_grmic_OBJECTS = grmic-toolwrapper.$(OBJEXT) +grmic_OBJECTS = $(am_grmic_OBJECTS) +grmic_LDADD = $(LDADD) +am__grmid_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_grmid_OBJECTS = grmid-toolwrapper.$(OBJEXT) +grmid_OBJECTS = $(am_grmid_OBJECTS) +grmid_LDADD = $(LDADD) +am__grmiregistry_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_grmiregistry_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ grmiregistry-toolwrapper.$(OBJEXT) +grmiregistry_OBJECTS = $(am_grmiregistry_OBJECTS) +grmiregistry_LDADD = $(LDADD) +am__gserialver_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gserialver_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ gserialver-toolwrapper.$(OBJEXT) +gserialver_OBJECTS = $(am_gserialver_OBJECTS) +gserialver_LDADD = $(LDADD) +am__gtnameserv_SOURCES_DIST = toolwrapper.c +@CREATE_WRAPPERS_TRUE@am_gtnameserv_OBJECTS = \ +@CREATE_WRAPPERS_TRUE@ gtnameserv-toolwrapper.$(OBJEXT) +gtnameserv_OBJECTS = $(am_gtnameserv_OBJECTS) +gtnameserv_LDADD = $(LDADD) +binSCRIPT_INSTALL = $(INSTALL_SCRIPT) +SCRIPTS = $(bin_SCRIPTS) +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(gappletviewer_SOURCES) $(gjar_SOURCES) \ + $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gkeytool_SOURCES) \ + $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \ + $(grmid_SOURCES) $(grmiregistry_SOURCES) $(gserialver_SOURCES) \ + $(gtnameserv_SOURCES) +DIST_SOURCES = $(am__gappletviewer_SOURCES_DIST) \ + $(am__gjar_SOURCES_DIST) $(am__gjarsigner_SOURCES_DIST) \ + $(am__gjavah_SOURCES_DIST) $(am__gkeytool_SOURCES_DIST) \ + $(am__gnative2ascii_SOURCES_DIST) $(am__gorbd_SOURCES_DIST) \ + $(am__grmic_SOURCES_DIST) $(am__grmid_SOURCES_DIST) \ + $(am__grmiregistry_SOURCES_DIST) \ + $(am__gserialver_SOURCES_DIST) $(am__gtnameserv_SOURCES_DIST) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +TOOLSDATA_INSTALL = $(INSTALL_DATA) +DATA = $(TOOLS_DATA) +ETAGS = etags +CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ @@ -165,6 +270,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ JIKES = @JIKES@ @@ -286,112 +393,124 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -GLIBJ_CLASSPATH = '$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip' -@FOUND_ECJ_TRUE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . -@FOUND_GCJX_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(GLIBJ_CLASSPATH):. -@FOUND_GCJ_FALSE@@FOUND_JIKES_TRUE@JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(GLIBJ_CLASSPATH):. +GLIBJ_BOOTCLASSPATH = '$(top_srcdir)/lib' +GLIBJ_CLASSPATH = $(srcdir)/asm +@FOUND_ECJ_TRUE@@FOUND_GCJ_FALSE@JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH) # Setup the compiler to use the GNU Classpath library we just build -@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath $(GLIBJ_CLASSPATH) --classpath . -C - -# if CREATE_WRAPPERS -# bin_SCRIPTS = -# bin_PROGRAMS = gappletviewer gjarsigner gkeytool \ -# gjar gnative2ascii gserialver -# -# if FOUND_GCJ -# LIBJVM = -lgcj -# else -# if FOUND_CACAO -# LIBJVM = -ljvm -# else -# LIBJVM = -# endif -# endif -# -# AM_CPPFLAGS = -Wall \ -# -I$(top_srcdir)/include \ -# -DTOOLS_ZIP="\"$(TOOLSdir)/$(TOOLS_ZIP)\"" -# -# gappletviewer_SOURCES = toolwrapper.c -# gappletviewer_CFLAGS = \ -# -DTOOLPACKAGE="\"appletviewer\"" \ -# -DTOOLNAME="\"gappletviewer\"" -# gappletviewer_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gjarsigner_SOURCES = toolwrapper.c -# gjarsigner_CFLAGS = \ -# -DTOOLPACKAGE="\"jarsigner\"" \ -# -DTOOLNAME="\"gjarsigner\"" -# gjarsigner_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gkeytool_SOURCES = toolwrapper.c -# gkeytool_CFLAGS = \ -# -DTOOLPACKAGE="\"keytool\"" \ -# -DTOOLNAME="\"gkeytool\"" -# gkeytool_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gjar_SOURCES = toolwrapper.c -# gjar_CFLAGS = \ -# -DTOOLPACKAGE="\"jar\"" \ -# -DTOOLNAME="\"gjar\"" -# gjar_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gnative2ascii_SOURCES = toolwrapper.c -# gnative2ascii_CFLAGS = \ -# -DTOOLPACKAGE="\"native2ascii\"" \ -# -DTOOLNAME="\"gnative2ascii\"" -# gnative2ascii_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# gserialver_SOURCES = toolwrapper.c -# gserialver_CFLAGS = \ -# -DTOOLPACKAGE="\"serialver\"" \ -# -DTOOLNAME="\"gserialver\"" -# gserialver_LDFLAGS = -L$(libdir) $(LIBJVM) -# -# else -# bin_SCRIPTS = gappletviewer gjarsigner gkeytool \ -# gjar gnative2ascii gserialver -# bin_PROGRAMS = -# endif +@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -C -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH):. +@CREATE_WRAPPERS_FALSE@bin_SCRIPTS = gappletviewer gjarsigner gkeytool \ +@CREATE_WRAPPERS_FALSE@ gjar gnative2ascii gserialver gjavah grmiregistry \ +@CREATE_WRAPPERS_FALSE@ gtnameserv gorbd grmid grmic + +@CREATE_WRAPPERS_TRUE@bin_SCRIPTS = +@CREATE_WRAPPERS_TRUE@AM_CPPFLAGS = -Wall \ +@CREATE_WRAPPERS_TRUE@ -I$(top_srcdir)/include \ +@CREATE_WRAPPERS_TRUE@ -DLIBJVM="\"$(libdir)/libjvm\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLS_ZIP="\"$(TOOLSdir)/$(TOOLS_ZIP)\"" + +@CREATE_WRAPPERS_TRUE@gappletviewer_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gappletviewer_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"appletviewer\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gappletviewer\"" + +@CREATE_WRAPPERS_TRUE@gjarsigner_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gjarsigner_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"jarsigner\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gjarsigner\"" + +@CREATE_WRAPPERS_TRUE@gkeytool_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gkeytool_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"keytool\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gkeytool\"" + +@CREATE_WRAPPERS_TRUE@gjar_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gjar_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"jar\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gjar\"" + +@CREATE_WRAPPERS_TRUE@gnative2ascii_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gnative2ascii_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"native2ascii\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gnative2ascii\"" + +@CREATE_WRAPPERS_TRUE@gserialver_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gserialver_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"serialver\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gserialver\"" + +@CREATE_WRAPPERS_TRUE@grmiregistry_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@grmiregistry_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"rmiregistry\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"grmiregistry\"" + +@CREATE_WRAPPERS_TRUE@gtnameserv_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gtnameserv_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"tnameserv\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gtnameserv\"" + +@CREATE_WRAPPERS_TRUE@gorbd_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gorbd_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"orbd\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gorbd\"" + +@CREATE_WRAPPERS_TRUE@grmid_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@grmid_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"rmid\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"grmid\"" + +@CREATE_WRAPPERS_TRUE@gjavah_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@gjavah_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"javah\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gjavah\"" + +@CREATE_WRAPPERS_TRUE@grmic_SOURCES = toolwrapper.c +@CREATE_WRAPPERS_TRUE@grmic_CFLAGS = \ +@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"rmic\"" \ +@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"grmic\"" + EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \ - gjar.in gnative2ascii.in gserialver.in + gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \ + gtnameserv.in gorbd.in grmid.in grmic.in # All our example java source files -TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*.java $(srcdir)/gnu/classpath/tools/*/*.java $(srcdir)/gnu/classpath/tools/*/*/*.java +TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/commons/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/optimizer/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/signature/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/tree/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/tree/analysis/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/util/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/util/attrs/*.java \ + $(srcdir)/external/asm/org/objectweb/asm/xml/*.java + # The zip files with classes we want to produce. -TOOLS_ZIP = tools.jar +TOOLS_ZIP = tools.zip # Extra objects that will not exist until configure-time BUILT_SOURCES = $(TOOLS_ZIP) -# The templates that must be included into the generated zip file. -GRMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/giop/grmic/templates/*.jav -RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmi/rmic/templates/*.jav -TOOLS_TEMPLATES = $(GRMIC_TEMPLATES) $(RMIC_TEMPLATES) - -# This covers the built-in help texts, both for giop and rmic subpackages. -GIOP_HELPS = $(srcdir)/gnu/classpath/tools/giop/*.txt -RMI_HELPS = $(srcdir)/gnu/classpath/tools/rmi/*.txt -TOOLS_HELPS = $(GIOP_HELPS) $(RMI_HELPS) - -# The tool specific README files. -READMES = $(srcdir)/gnu/classpath/tools/giop/README +# RMIC templates that must be included in the generated zip file. +RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmic/templates/*.jav # All the files we find "interesting" -ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(TOOLS_TEMPLATES) $(TOOLS_HELPS) +ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) -# # Some architecture independent data to be installed. -# TOOLS_DATA = $(TOOLS_ZIP) -noinst_DATA = $(TOOLS_ZIP) +# Some architecture independent data to be installed. +TOOLS_DATA = $(TOOLS_ZIP) + +# Where we want these data files installed. +TOOLSdir = $(pkgdatadir) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: +.SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -433,12 +552,325 @@ gnative2ascii: $(top_builddir)/config.status $(srcdir)/gnative2ascii.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ gserialver: $(top_builddir)/config.status $(srcdir)/gserialver.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -appletviewer: $(top_builddir)/config.status $(srcdir)/appletviewer.in +grmiregistry: $(top_builddir)/config.status $(srcdir)/grmiregistry.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +gtnameserv: $(top_builddir)/config.status $(srcdir)/gtnameserv.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +gorbd: $(top_builddir)/config.status $(srcdir)/gorbd.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +grmid: $(top_builddir)/config.status $(srcdir)/grmid.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -jarsigner: $(top_builddir)/config.status $(srcdir)/jarsigner.in +grmic: $(top_builddir)/config.status $(srcdir)/grmic.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -keytool: $(top_builddir)/config.status $(srcdir)/keytool.in +gjavah: $(top_builddir)/config.status $(srcdir)/gjavah.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done + +installcheck-binPROGRAMS: $(bin_PROGRAMS) + bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \ + case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \ + *" $$p "* | *" $(srcdir)/$$p "*) continue;; \ + esac; \ + f=`echo "$$p" | \ + sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + for opt in --help --version; do \ + if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \ + 2>c$${pid}_.err &2; bad=1; fi; \ + done; \ + done; rm -f c$${pid}_.???; exit $$bad +gappletviewer$(EXEEXT): $(gappletviewer_OBJECTS) $(gappletviewer_DEPENDENCIES) + @rm -f gappletviewer$(EXEEXT) + $(LINK) $(gappletviewer_LDFLAGS) $(gappletviewer_OBJECTS) $(gappletviewer_LDADD) $(LIBS) +gjar$(EXEEXT): $(gjar_OBJECTS) $(gjar_DEPENDENCIES) + @rm -f gjar$(EXEEXT) + $(LINK) $(gjar_LDFLAGS) $(gjar_OBJECTS) $(gjar_LDADD) $(LIBS) +gjarsigner$(EXEEXT): $(gjarsigner_OBJECTS) $(gjarsigner_DEPENDENCIES) + @rm -f gjarsigner$(EXEEXT) + $(LINK) $(gjarsigner_LDFLAGS) $(gjarsigner_OBJECTS) $(gjarsigner_LDADD) $(LIBS) +gjavah$(EXEEXT): $(gjavah_OBJECTS) $(gjavah_DEPENDENCIES) + @rm -f gjavah$(EXEEXT) + $(LINK) $(gjavah_LDFLAGS) $(gjavah_OBJECTS) $(gjavah_LDADD) $(LIBS) +gkeytool$(EXEEXT): $(gkeytool_OBJECTS) $(gkeytool_DEPENDENCIES) + @rm -f gkeytool$(EXEEXT) + $(LINK) $(gkeytool_LDFLAGS) $(gkeytool_OBJECTS) $(gkeytool_LDADD) $(LIBS) +gnative2ascii$(EXEEXT): $(gnative2ascii_OBJECTS) $(gnative2ascii_DEPENDENCIES) + @rm -f gnative2ascii$(EXEEXT) + $(LINK) $(gnative2ascii_LDFLAGS) $(gnative2ascii_OBJECTS) $(gnative2ascii_LDADD) $(LIBS) +gorbd$(EXEEXT): $(gorbd_OBJECTS) $(gorbd_DEPENDENCIES) + @rm -f gorbd$(EXEEXT) + $(LINK) $(gorbd_LDFLAGS) $(gorbd_OBJECTS) $(gorbd_LDADD) $(LIBS) +grmic$(EXEEXT): $(grmic_OBJECTS) $(grmic_DEPENDENCIES) + @rm -f grmic$(EXEEXT) + $(LINK) $(grmic_LDFLAGS) $(grmic_OBJECTS) $(grmic_LDADD) $(LIBS) +grmid$(EXEEXT): $(grmid_OBJECTS) $(grmid_DEPENDENCIES) + @rm -f grmid$(EXEEXT) + $(LINK) $(grmid_LDFLAGS) $(grmid_OBJECTS) $(grmid_LDADD) $(LIBS) +grmiregistry$(EXEEXT): $(grmiregistry_OBJECTS) $(grmiregistry_DEPENDENCIES) + @rm -f grmiregistry$(EXEEXT) + $(LINK) $(grmiregistry_LDFLAGS) $(grmiregistry_OBJECTS) $(grmiregistry_LDADD) $(LIBS) +gserialver$(EXEEXT): $(gserialver_OBJECTS) $(gserialver_DEPENDENCIES) + @rm -f gserialver$(EXEEXT) + $(LINK) $(gserialver_LDFLAGS) $(gserialver_OBJECTS) $(gserialver_LDADD) $(LIBS) +gtnameserv$(EXEEXT): $(gtnameserv_OBJECTS) $(gtnameserv_DEPENDENCIES) + @rm -f gtnameserv$(EXEEXT) + $(LINK) $(gtnameserv_LDFLAGS) $(gtnameserv_OBJECTS) $(gtnameserv_LDADD) $(LIBS) +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + @list='$(bin_SCRIPTS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f $$d$$p; then \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ + else :; fi; \ + done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gappletviewer-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjar-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjarsigner-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjavah-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gkeytool-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnative2ascii-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gorbd-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grmic-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grmid-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grmiregistry-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gserialver-toolwrapper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtnameserv-toolwrapper.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +gappletviewer-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gappletviewer_CFLAGS) $(CFLAGS) -MT gappletviewer-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gappletviewer-toolwrapper.Tpo" -c -o gappletviewer-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gappletviewer-toolwrapper.Tpo" "$(DEPDIR)/gappletviewer-toolwrapper.Po"; else rm -f "$(DEPDIR)/gappletviewer-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gappletviewer-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gappletviewer_CFLAGS) $(CFLAGS) -c -o gappletviewer-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gappletviewer-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gappletviewer_CFLAGS) $(CFLAGS) -MT gappletviewer-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gappletviewer-toolwrapper.Tpo" -c -o gappletviewer-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gappletviewer-toolwrapper.Tpo" "$(DEPDIR)/gappletviewer-toolwrapper.Po"; else rm -f "$(DEPDIR)/gappletviewer-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gappletviewer-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gappletviewer_CFLAGS) $(CFLAGS) -c -o gappletviewer-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gjar-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjar_CFLAGS) $(CFLAGS) -MT gjar-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gjar-toolwrapper.Tpo" -c -o gjar-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjar-toolwrapper.Tpo" "$(DEPDIR)/gjar-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjar-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjar-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjar_CFLAGS) $(CFLAGS) -c -o gjar-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gjar-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjar_CFLAGS) $(CFLAGS) -MT gjar-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gjar-toolwrapper.Tpo" -c -o gjar-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjar-toolwrapper.Tpo" "$(DEPDIR)/gjar-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjar-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjar-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjar_CFLAGS) $(CFLAGS) -c -o gjar-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gjarsigner-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjarsigner_CFLAGS) $(CFLAGS) -MT gjarsigner-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gjarsigner-toolwrapper.Tpo" -c -o gjarsigner-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjarsigner-toolwrapper.Tpo" "$(DEPDIR)/gjarsigner-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjarsigner-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjarsigner-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjarsigner_CFLAGS) $(CFLAGS) -c -o gjarsigner-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gjarsigner-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjarsigner_CFLAGS) $(CFLAGS) -MT gjarsigner-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gjarsigner-toolwrapper.Tpo" -c -o gjarsigner-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjarsigner-toolwrapper.Tpo" "$(DEPDIR)/gjarsigner-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjarsigner-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjarsigner-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjarsigner_CFLAGS) $(CFLAGS) -c -o gjarsigner-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gjavah-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjavah_CFLAGS) $(CFLAGS) -MT gjavah-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gjavah-toolwrapper.Tpo" -c -o gjavah-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjavah-toolwrapper.Tpo" "$(DEPDIR)/gjavah-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjavah-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjavah-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjavah_CFLAGS) $(CFLAGS) -c -o gjavah-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gjavah-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjavah_CFLAGS) $(CFLAGS) -MT gjavah-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gjavah-toolwrapper.Tpo" -c -o gjavah-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjavah-toolwrapper.Tpo" "$(DEPDIR)/gjavah-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjavah-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjavah-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjavah_CFLAGS) $(CFLAGS) -c -o gjavah-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gkeytool-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkeytool_CFLAGS) $(CFLAGS) -MT gkeytool-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gkeytool-toolwrapper.Tpo" -c -o gkeytool-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo" "$(DEPDIR)/gkeytool-toolwrapper.Po"; else rm -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gkeytool-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkeytool_CFLAGS) $(CFLAGS) -c -o gkeytool-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gkeytool-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkeytool_CFLAGS) $(CFLAGS) -MT gkeytool-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gkeytool-toolwrapper.Tpo" -c -o gkeytool-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo" "$(DEPDIR)/gkeytool-toolwrapper.Po"; else rm -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gkeytool-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkeytool_CFLAGS) $(CFLAGS) -c -o gkeytool-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gnative2ascii-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gnative2ascii_CFLAGS) $(CFLAGS) -MT gnative2ascii-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gnative2ascii-toolwrapper.Tpo" -c -o gnative2ascii-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gnative2ascii-toolwrapper.Tpo" "$(DEPDIR)/gnative2ascii-toolwrapper.Po"; else rm -f "$(DEPDIR)/gnative2ascii-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gnative2ascii-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gnative2ascii_CFLAGS) $(CFLAGS) -c -o gnative2ascii-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gnative2ascii-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gnative2ascii_CFLAGS) $(CFLAGS) -MT gnative2ascii-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gnative2ascii-toolwrapper.Tpo" -c -o gnative2ascii-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gnative2ascii-toolwrapper.Tpo" "$(DEPDIR)/gnative2ascii-toolwrapper.Po"; else rm -f "$(DEPDIR)/gnative2ascii-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gnative2ascii-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gnative2ascii_CFLAGS) $(CFLAGS) -c -o gnative2ascii-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gorbd-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gorbd_CFLAGS) $(CFLAGS) -MT gorbd-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gorbd-toolwrapper.Tpo" -c -o gorbd-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gorbd-toolwrapper.Tpo" "$(DEPDIR)/gorbd-toolwrapper.Po"; else rm -f "$(DEPDIR)/gorbd-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gorbd-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gorbd_CFLAGS) $(CFLAGS) -c -o gorbd-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gorbd-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gorbd_CFLAGS) $(CFLAGS) -MT gorbd-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gorbd-toolwrapper.Tpo" -c -o gorbd-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gorbd-toolwrapper.Tpo" "$(DEPDIR)/gorbd-toolwrapper.Po"; else rm -f "$(DEPDIR)/gorbd-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gorbd-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gorbd_CFLAGS) $(CFLAGS) -c -o gorbd-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +grmic-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmic_CFLAGS) $(CFLAGS) -MT grmic-toolwrapper.o -MD -MP -MF "$(DEPDIR)/grmic-toolwrapper.Tpo" -c -o grmic-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/grmic-toolwrapper.Tpo" "$(DEPDIR)/grmic-toolwrapper.Po"; else rm -f "$(DEPDIR)/grmic-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='grmic-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmic_CFLAGS) $(CFLAGS) -c -o grmic-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +grmic-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmic_CFLAGS) $(CFLAGS) -MT grmic-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/grmic-toolwrapper.Tpo" -c -o grmic-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/grmic-toolwrapper.Tpo" "$(DEPDIR)/grmic-toolwrapper.Po"; else rm -f "$(DEPDIR)/grmic-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='grmic-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmic_CFLAGS) $(CFLAGS) -c -o grmic-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +grmid-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmid_CFLAGS) $(CFLAGS) -MT grmid-toolwrapper.o -MD -MP -MF "$(DEPDIR)/grmid-toolwrapper.Tpo" -c -o grmid-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/grmid-toolwrapper.Tpo" "$(DEPDIR)/grmid-toolwrapper.Po"; else rm -f "$(DEPDIR)/grmid-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='grmid-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmid_CFLAGS) $(CFLAGS) -c -o grmid-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +grmid-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmid_CFLAGS) $(CFLAGS) -MT grmid-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/grmid-toolwrapper.Tpo" -c -o grmid-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/grmid-toolwrapper.Tpo" "$(DEPDIR)/grmid-toolwrapper.Po"; else rm -f "$(DEPDIR)/grmid-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='grmid-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmid_CFLAGS) $(CFLAGS) -c -o grmid-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +grmiregistry-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmiregistry_CFLAGS) $(CFLAGS) -MT grmiregistry-toolwrapper.o -MD -MP -MF "$(DEPDIR)/grmiregistry-toolwrapper.Tpo" -c -o grmiregistry-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/grmiregistry-toolwrapper.Tpo" "$(DEPDIR)/grmiregistry-toolwrapper.Po"; else rm -f "$(DEPDIR)/grmiregistry-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='grmiregistry-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmiregistry_CFLAGS) $(CFLAGS) -c -o grmiregistry-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +grmiregistry-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmiregistry_CFLAGS) $(CFLAGS) -MT grmiregistry-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/grmiregistry-toolwrapper.Tpo" -c -o grmiregistry-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/grmiregistry-toolwrapper.Tpo" "$(DEPDIR)/grmiregistry-toolwrapper.Po"; else rm -f "$(DEPDIR)/grmiregistry-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='grmiregistry-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(grmiregistry_CFLAGS) $(CFLAGS) -c -o grmiregistry-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gserialver-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gserialver_CFLAGS) $(CFLAGS) -MT gserialver-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gserialver-toolwrapper.Tpo" -c -o gserialver-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gserialver-toolwrapper.Tpo" "$(DEPDIR)/gserialver-toolwrapper.Po"; else rm -f "$(DEPDIR)/gserialver-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gserialver-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gserialver_CFLAGS) $(CFLAGS) -c -o gserialver-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gserialver-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gserialver_CFLAGS) $(CFLAGS) -MT gserialver-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gserialver-toolwrapper.Tpo" -c -o gserialver-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gserialver-toolwrapper.Tpo" "$(DEPDIR)/gserialver-toolwrapper.Po"; else rm -f "$(DEPDIR)/gserialver-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gserialver-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gserialver_CFLAGS) $(CFLAGS) -c -o gserialver-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` + +gtnameserv-toolwrapper.o: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtnameserv_CFLAGS) $(CFLAGS) -MT gtnameserv-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gtnameserv-toolwrapper.Tpo" -c -o gtnameserv-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gtnameserv-toolwrapper.Tpo" "$(DEPDIR)/gtnameserv-toolwrapper.Po"; else rm -f "$(DEPDIR)/gtnameserv-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gtnameserv-toolwrapper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtnameserv_CFLAGS) $(CFLAGS) -c -o gtnameserv-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c + +gtnameserv-toolwrapper.obj: toolwrapper.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtnameserv_CFLAGS) $(CFLAGS) -MT gtnameserv-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gtnameserv-toolwrapper.Tpo" -c -o gtnameserv-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gtnameserv-toolwrapper.Tpo" "$(DEPDIR)/gtnameserv-toolwrapper.Po"; else rm -f "$(DEPDIR)/gtnameserv-toolwrapper.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gtnameserv-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtnameserv_CFLAGS) $(CFLAGS) -c -o gtnameserv-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi` mostlyclean-libtool: -rm -f *.lo @@ -449,12 +881,71 @@ clean-libtool: distclean-libtool: -rm -f libtool uninstall-info-am: +install-TOOLSDATA: $(TOOLS_DATA) + @$(NORMAL_INSTALL) + test -z "$(TOOLSdir)" || $(mkdir_p) "$(DESTDIR)$(TOOLSdir)" + @list='$(TOOLS_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(TOOLSDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(TOOLSdir)/$$f'"; \ + $(TOOLSDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(TOOLSdir)/$$f"; \ + done + +uninstall-TOOLSDATA: + @$(NORMAL_UNINSTALL) + @list='$(TOOLS_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(TOOLSdir)/$$f'"; \ + rm -f "$(DESTDIR)$(TOOLSdir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique tags: TAGS -TAGS: +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi ctags: CTAGS -CTAGS: +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ @@ -489,8 +980,11 @@ distdir: $(DISTFILES) check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(DATA) +all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) installdirs: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(TOOLSdir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am @@ -519,11 +1013,14 @@ maintainer-clean-generic: -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am -clean-am: clean-generic clean-libtool clean-local mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \ + mostlyclean-am distclean: distclean-am + -rm -rf ./$(DEPDIR) -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags dvi: dvi-am @@ -535,23 +1032,25 @@ info: info-am info-am: -install-data-am: +install-data-am: install-TOOLSDATA -install-exec-am: +install-exec-am: install-binPROGRAMS install-binSCRIPTS install-info: install-info-am install-man: -installcheck-am: +installcheck-am: installcheck-binPROGRAMS installcheck-binSCRIPTS maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic mostlyclean-libtool +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf: pdf-am @@ -561,22 +1060,25 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: uninstall-TOOLSDATA uninstall-binPROGRAMS \ + uninstall-binSCRIPTS uninstall-info-am -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - clean-local dist-hook distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool clean-local ctags dist-hook \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-TOOLSDATA install-am \ + install-binPROGRAMS install-binSCRIPTS install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installcheck-binPROGRAMS \ + installcheck-binSCRIPTS installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-info-am - -@FOUND_ECJ_FALSE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@error dunno how to setup the JCOMPILER and compile + tags uninstall uninstall-TOOLSDATA uninstall-am \ + uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am -# Where we want these data files installed. -# TOOLSdir = $(datadir)/java +@FOUND_ECJ_FALSE@@FOUND_GCJ_FALSE@error dunno how to setup the JCOMPILER and compile # Make sure everything is included in the distribution. dist-hook: @@ -597,24 +1099,34 @@ dist-hook: # immediately. And copy the template files we use to the classes dir # so they get also included. $(TOOLS_ZIP): $(TOOLS_JAVA_FILES) - mkdir -p classes/gnu/classpath/tools/giop/grmic/templates - mkdir -p classes/gnu/classpath/tools/rmi/rmic/templates - mkdir -p classes/gnu/classpath/tools/appletviewer - mkdir -p classes/gnu/classpath/tools/jarsigner - mkdir -p classes/gnu/classpath/tools/keytool - cp $(RMIC_TEMPLATES) classes/gnu/classpath/tools/rmi/rmic/templates - cp $(GRMIC_TEMPLATES) classes/gnu/classpath/tools/giop/grmic/templates - cp $(RMI_HELPS) classes/gnu/classpath/tools/rmi/ - cp $(GIOP_HELPS) classes/gnu/classpath/tools/giop/ - $(JCOMPILER) -d classes $(TOOLS_JAVA_FILES) + find $(srcdir)/external/asm -name '*.java' -print > asm.lst + find $(srcdir)/gnu/classpath/tools -name '*.java' -print > classes.lst + cat classes.lst asm.lst > all-classes.lst +@JAVA_MAINTAINER_MODE_TRUE@ AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \ +@JAVA_MAINTAINER_MODE_TRUE@ $$AC -g -w -d $(srcdir)/asm @asm.lst +@JAVA_MAINTAINER_MODE_TRUE@ $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst +@JAVA_MAINTAINER_MODE_TRUE@ @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools -name \*.properties -print`; \ +@JAVA_MAINTAINER_MODE_TRUE@ for p in $$list; do \ +@JAVA_MAINTAINER_MODE_TRUE@ dirname=classes/`dirname $$p`; \ +@JAVA_MAINTAINER_MODE_TRUE@ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \ +@JAVA_MAINTAINER_MODE_TRUE@ echo " cp $(top_srcdir)/resource/$$p classes/$$p"; \ +@JAVA_MAINTAINER_MODE_TRUE@ cp $(top_srcdir)/resource/$$p classes/$$p; \ +@JAVA_MAINTAINER_MODE_TRUE@ done + cp -pR $(srcdir)/asm . + cp -pR $(srcdir)/classes . (cd classes; \ - $(FASTJAR) cf ../$(TOOLS_ZIP) .; \ + if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \ + cd ..) + (cd asm; \ + if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then $(FASTJAR) uf ../$(TOOLS_ZIP) .; fi; \ cd ..) - rm -rf classes + rm -rf asm classes classes.lst asm.lst # Zip file be gone! (and make sure the classes are gone too) clean-local: - rm -rf $(TOOLS_ZIP) classes + rm -rf $(TOOLS_ZIP) classes asm asm.lst # FIXME: remove this when GNU Classpath includes a bootstrap VM. installcheck-binSCRIPTS: diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..acb0481dd1783dbb5ec917530d65bb1dfd581506 GIT binary patch literal 481 zcwUWBJ&OV{6r88GuC98gjep>Z)8>MuY-Qm!E?gnlM_rbPCJ>|IU$gKB_@l%m3W8s3 ziVWn<%$xUeJnatvx@d+d5Wbbpn3~MfsoACz##c+$mr@ySgpy;i5=Q9|AB4u7Z#Y|U znX!LQCj=W;C;YUNTXAHxkXfAE)8o#VQ1Oa^TrUZ|_o|mK&gaYf+=3E@x!gKQj&Wl` zbn(}k@16(EYgE1tJR=m_E_pOkYduZ>#3CiM9wfi6Q;A^da3`>v4^V>pfe>Yn6+|AZ QsClg8(=zQ+>|H?P4AE7NH2?qr literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/AnnotationWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..69dd3cf357f46c9b42d5e68f69cb7efada1d08ad GIT binary patch literal 5344 zcwUuPeQ;FO760A$-sX|`kPrwZ=7S(#n@vI>C@7Hdu`x6;KuaJ2($Z`;k7Oa)O?NkZ zC{|JYt{@b|pn#|)VnGp-#jjGWwsiVOYp4F9o#KqG9mh^*+L_jVOlP#ed*4eo!X~6M zEcd)~&-tC-J@?#mZ+`j3>lXpc#XBZ6fg2;ywz5de7CRWbvQvaAs>wh(ZZa`XAaA5(S-2VV1;%uB$Lrf8Q8J(EttlEgzb0<^O36Ag zWx$0N7GW{7K)AW(tbcFKwZT{q*C)Z`R0b-r)WR|>7f5fBwtVFz}y z*yvf^5edYlYxM}OcS_eP>3Wxi@8NFdkFHgbZgt{vy;Z~dN}t^p?!|rFEBg2&;aFVG z2$XnJoWtR8#^8PiogJH9Q(ar-ua|Z7poNEItr&5Y@dbFq!lU>;yPMqGWwJN268*A8 zvdzkFaaG!7n{akC>uN6S%WRc`8!>q}R-~lb%x&RrF6h>gTg|W<)g@b5BCJ3Kmu%bu zw~q=mRopmbeo<8V&4By_nHOVO_aNX_Wz= zweXy*Zlg6253pK!9O~5#$U{^kyKb+A@yKF@1$ckzY*@1Ojohn>8YJ)27M?+lgm}rq z1Z2s^chZhHJc&{MI<4?oiNz?DOP)%MswGW zW&v+lcpg8L9Di)#qNHuQ9A)PYgu^`DGe#ASn^zy{jt1@OkUWvuR~pQgdx<%Wsq^Q- z7-Y%ImoFquUU?j|&QMFJOG26$Z8vtAnvRi5x}_BA9|M%;0RLgNd1L z>dcs&D0vGD)ZDF&y}ICZMGvN`>E-TpMFL9_@b_VbGSYreqq-gx zbE+jUJ-W`T?VQ*JynL8;2SNX|$ndf|RC-ZP>GR34Ai1p4Y-3&$dXFKpjna!JzWlgX zd_joKJy=1A%~wOrOfFJF46Ho`)Q7#|JfYehHtoZ)sdu4nPR*u^5L+CGEyF?hU5J}f zLzEJt!-41+4x+||n4J;=eTkM70YsCxLA#AX*7= zhXZlPa1d24#M}gSrGS{KiY9@3lz-Nq(mp(pz{91k>EHnt*TYYFI}h3pwuYUUiaUAO zc3~;*!U{eTY~0ObeGfIe*&goYt#cn;#KXeEBVsZh6$QM$ z=X3O9uc*a7u^NwyChQjh91y!X?!`fI2#3TGJRwfvusDq;#k(ATgCpVtJS8sUY4I73 ziofERX5y$e5zlD3IH48dS*--mY2|octL4~;liDWmxZnjXf>T;IUeq4rcm$`l6F8%t z#7o*aysW*7v)X$cFXNo{3C?Sup-=l9{n~$#&?lf@FT`tl5nk6T@uq56@3SGY#SAno zN{?Z$Y*>``;c;ee7basrbEb363ni#mI;~J%|6S`J5s0%7xgu3XU?xfOnQ`bMJ`%LNXr0(AXI<705(ht;yaS(^xMt_(M zR<_t{w^3DWwp&fI`KY>cCzJQUB-xem4nw}nGWr?I=o0(>FH|~xPN>2DKbTHRPf*g7 zw2zV`c^FT+B%k9gA#a3rqa(R=2uWRP-+Ff zKT<3wIZ+2$*19Z(d|0{MBHRRNRZRH8pR4v>*oPB!^7}^qiZaLS+P_wP8O`#0|Jo~e z_Yb_c|H#|<6Xf&Q`|#xa>5F|Udy$n};;gZGF@=*W zOD=u+x7^eC>YL*4{Q3t;f6lLea>@T9(&xAV{~59|d2UpVdinn0>y8KW1?nWHQ+Uyd zFS4nZZ;(#C!c*y6Xo!WLUU>ItB0tA)nN;Q&3H&I>$l?3uOpdY8BWF%7G;)kfUw&B3 zd;aCd;yk%^Ii7`V!iB}I=LvlPB7t*_Qa>$^p>f$El^C5#+^iB~@GFQ{Daq&KDfV(FMO!%|(|+9W_%60LSLl_!$jS5N zmtTUZ_adEA0I#&r}ZL#PnsAZp`R3Ir~O~K z9Ef@}nba2UG{h7pvk;b;iYXkuVjAX&>9|GAVDe^SshGtCdQmNkP$PU;C5o|5lwgA> zWiq||d!~%ZoP#bgmw$qn^9q~Ct74`@$4~zU7rgWh literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Attribute.class b/libjava/classpath/tools/asm/org/objectweb/asm/Attribute.class new file mode 100644 index 0000000000000000000000000000000000000000..d9bb13a75098db365cf14a21a87925b42ace395f GIT binary patch literal 2624 zcwUWFU2_v<7(JU!cayNt@)0#a31Bg4Qi+J7Y0Fm&#g+0QfmSFen{?X-(uCP;DD}pV z@elA1R4%wdMW-!}ILvtAbjB;iuS@@h_%Vv-eRthrX#>ej^6vXS&w0){&+{hV{`2J> z06S3D5mKUfWWmdjS9!Nbr<9|NoQ6~?y@HYvg!t+!k)yL%MG(+@*-4iTrnHfqP9 zqSe3(v?);2okLNOf`Jxj3R(xtRr_dTvS>Retzt!ztCg(EkmZ!cv%eX3C(3mN(Q^G% z^}1-vMtB4rc1R;(+V;VcEjs^kGaH_DOwaNISP`GaDaB##>U9Ru|`-_b+F)aNG z^b$L8OdM+!-}v=SZMSF+2X4wKi-sLo*8X7;;Pj02nWVZzP~Ws`5AnI?^yuhjyPJi? zkVk8jAG;0g5w3*%T8pXdsFh?J0TtIztNOw^%6kct)8qyoQ2~6U$GR7jNJs zPO(7Mo;r1M;N@j*u_*?4*uYC*M7S=QsFxaKcJQ(IG`FC0Nc82bfpd6+b`ZBPQF92s zCH<(Di^TH=ERm=&(X6^+t7Kpl9~Hzu7tY85Z}QaVz;WfDqq6EOQI1GTB+I{)|r{tmWq_ ziPX#Z-OSp9b$oili$+{xiIu3rf#S)NK4zDECQA55fThWuLlVRAPJIjoPd%KeF3vo@ zL}nNXtY4g|++37-X35MA*yv|oqXOYi>Nb?qnHj9Uh4yYep|^h(nME=?gDo2q`V5k4 z`xkg7p)bI%Aq?;~LEa(kyXe4sveXF=F0d#?a?i^0DQrhh8koX!T&Z%k1J6sO6n1j2 zMXp}Ji=@Aj@^%r0|CnOJeZp6Xpz}L<8~M|>(9^9YH1bZ)qSss8nZ@3OwwUM#?BR!8 ze?;ZiB+*wqn1E;!edw1&lQ=*TA-VdGXc7mx3d_}iBpPMU4-rK}8%(_F)4S+TU|j9Z z9J!7a?<-2z3=SXZn!kTKNo^f5s{;nSz2aTBdvuf^w*;ARiVCn)lcurMz= zhg6CPuGwVtEmHSbCo0)Fv*_Y54G;~L(NDQXXH;0i#gsSH7=5Rt2 z%U;#rC=QFD!(yW6?|;2;xjl)$k-|L|`JHn9Ko)=Uy8lH9_t@6IrNpxyfk2`eNHhb9 hW+2fFB$~cNu^N*@qH@QZ=5;*T#=Qt}#wDYPe*tt}6P5q~ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ByteVector.class b/libjava/classpath/tools/asm/org/objectweb/asm/ByteVector.class new file mode 100644 index 0000000000000000000000000000000000000000..a7b9ad75e6c8ebad577e424fbe4120cdf9f5a0ad GIT binary patch literal 3259 zcwU`WYitx%6#i~^W@oyr?G{;}beBRYQny0cwpQfP7l^j3_@H12iFRAI?UH2|whLGy z%8!aDR8#->iVq&K{}fanBBH-cL?!WuqQ(b4;yd_`CM4i@?@VX6wLoHR1=+%xsBuR7HE&S2g!#VykGU(grjE-@54LXjLMb z?5?^+`3Y!iqnW5c-kN3scOsVT&h!X~78(oV$#|w-z*TYeD*7!>t&Mr$!WCZR!;=qz zLN9c~m>!Nwya-?dBgB%4Xu6vbM2CRRc;T=>Sw+j` z!jYVgu)I_Ym|V7^CzU2~qSubXX*cgJNjVv}phi;3ZV9#Zvav;izgBD2%C@ER1ga|{ z*)pxjq~po%1(ylq!5qvrP&J~$)>6qsSQW8FdewMQi))FvvnQHv%2;eKmKFO?P63Z} zirAWPQ5=NY$shea9n3!bNURg^+68J#r=xuW)OEH^r+8*K&1(F~jA1rEzI9hPT0EFZR6Znao8viOZrEKhb= z_W82IOK~4!mjX{P>yxyf;!d6>htDwkv)svZM7D>=&0ey{p!Acy(YP`xOI!3X+hV3}c(!Y*Ja3ZJR zgAPT5xSF&{igw#&4kBZhxg6^ifjXa8;u?#ryo0nUFfmYh7_%2i#`N~UFkzmM9%#21 zn_QnO-cg!$)#*c`snV|>Ms=Or@7DHUlHcvSZy$U%2kybPArbKFbq0Ut5UMNvX4ctf zIp_BqVh9ub?jqyDerdUe;O;l_`c2_C1A8uNZ8pMtjQvrp_6y3ukhaO!y7KbcFwuC`Wi;hsfi&}49~r3`IV08 zH@vIV5WM|5WfItP{*BQ>d7cFY-e!?bvR~feH`IGPFHceJAD{*wVj)gbOdqi~KE@sR zgs1MO=)q@5;d7p7U!WgnD3~wtD8Awe`VG78GwjEAIEe2lqaW}te#HCuiK~C6_gQ?4 zUwHi$=kS{_@w@Qh4^fUk#XS5aBKTXh;~%jRXT?^W6WefF?7(@k3m23ayJUZhfnhOn zG=r~Nic#$3>sI#bbdlgoSITmh=(1(mAa1l}*(z#yn$72IkMQ#}Fezc_zmOvnU*j=* zB(R7LVx3n5TqjS7uv9=Wds+oq_{z6XR2h&{>fuo|gjOrBF3wr?4w{JTI>_QRb^QAFPxhUEmg1VK=k8B!20C zYG>N%&=36q{ZSpyJ$u<;m&A;n3~=`DInVRlbDn!A|NQ&c-vBP-`wS8Sr(LgCbK9?F zC)kzkn&l5_^}gl%>s@O*kX{Ccz$dS*9jn&2oL+5&276vz^}RVOCzmmnyA1Quy4& zF&r1j>`2eIT}MDPs3TUVBYhHQIM#sm$I1n=zTI=IVCYE|54WYa$;mm}A=y7$gdk9w z!Yq*I4Lxy(UWW=UmJhRqQ12He&fz>M^mTEnE8D{!HJu^1hD6QX6S#gT*!_qWO_Wg~ ze0SH8WG164{mz(X-ErK&3bs$iAVGh$TKyAdb@2}rexs)Ziu658wZJ!2xk43JaFm{ohuJ9M zQ-C9dN`6&0h{pVd)-v>4s{W3`$@%3uV=gt99^tbL_P}!tbell$Fz|!0BmypB4krju zMJFjra5RroEUJXl6d4?yp(w@C0&O@=HFP;>DVvn7@=YaWacP7L$(V*ZW!_~C3t?`g z!Niw@EjYSJQG#N+4>b0V#IF?0gxJd?RE-$;BPwk&cr{Fpz-O?e!Do0|367R|gF;;g zn&#nqTbLi=t0aDnSkjE}!#?ttBl%y`9F=^!8Z>TQPd?AMBYc~PiEq*Gvx%|iBj`M? z;X03<&bkJaGzB$>g6_vLV}zTj80bs#)lUq%5~fF>1@433XiaydKo$u{USJy-^qx+z zrX0}z)AUH(s4tq8_0sVm;oa^ZJ%~%`j8*(ti(}x%Cc(l<18B literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassReader.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassReader.class new file mode 100644 index 0000000000000000000000000000000000000000..5fc42a0b7c0da5dd2b449a9b9d0a40cbea352e15 GIT binary patch literal 22135 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..f4345b3e50bbf19fa8c5581d8172f2b1374fc5a9 GIT binary patch literal 894 zcwU`TyH3ME5S$I<4SDdUL3B7xEJ|>N5RoheQbbAtl^v|$;M_^}CHxx&AHYW;&TGJy zVj(LoZlv9tnZ4ch=hyoOfJ>ZKQ6iklaArz(?oHL3=bBEmFmD4ViY9*KD;ZX?P3X*> zm172un3*HKNhq)4JmJBx?O~c8tI!uSt4QQ&J=B{Jnk+n)%W&!uE{q~lF|WPOeEO^E3XCYlD<9}>Ak03r1oBH>YcYRIp&E^>Rw~_JE5(& z4DLj-TmwJQgXm_Ly&oG?2>K@Cuda8$j0)m^po$t}9Sz1Nb{KcjVr-+s*u@^>J`NZU Naio<9$NDVcSp0|df|P{;Dgp(QK*t&z3Wz(q^4d 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/FieldVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/FieldVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..5f29c7b7b735199cb87e230fc4fb4d0cae230299 GIT binary patch literal 295 zcwTK!y$%6E5dOyD&Oa|8%G20rU8SIsC?pEq9-GTv&TeuR@22no9!l&ULc$a?$$URE z-|c?60vMy^qeSTIJYhOc#nzlf%=lr?=2B$4wLD0pb01|wH{~bJGOiM~ESQAO$>CF_ zwBbf-MVN$(4{c>~sgh_jT>RR9M6VkWq5ZToRu&(PAPmBP$~PVj*My+Z%+!wHg>F$_ p>0`bXbD3F#-gkaZ^Ot|uFs0ylZ;d}(etf6iZLc{hFnh&aEQfL4G literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/FieldWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/FieldWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..b316b7be210636cf00d5f8615d77cd83f8388cd8 GIT binary patch literal 3658 zcwUuOYj9L&8GgRKXM3_N!JtdRRf?P4hCo`|N(iUbL+9WPVIDL(HxXLpILiT>F0 zz307s@8x;lvoF2&+zSA<;*l_X3aj&lv5x%6F(YT6G)6k~;$%m!X-td`7EIeHgb`4P zAJfZv$AoT;b?kQ(!w4y?`7ef9vuN7+f;_6mtp8b~H z+b-~2UC)dnbEIS&63lkfGVL7-$CFD0p6RQVZ-5T0v9AA<;}*TEEz6{O@}ou+eyq~4 z5-ke;WLvfYtFbnWHFcYLRVW(PA)*jHY8HyN(*m*Fpy7?eZlGd?t8l%BFd{;|Nkapo zLbYkQ4qB8pX$?1^T_J24Cl4L$y;Y$(d2I@98L{fn&A1EZ_5mD0;C<9(y#r9eoOs6D50KJYV4Wtxsm^T~jlr|9uJ@mY$L* z_Tn7^y8{ZtOQHVA;&(1C%?PFy1~e>3Qvtl@QNZomje!{EYcS;RzQZI=B*23z6Wx7!+J%wvW< zV4gOdsm(-iOrg=iyl&Z9Sz0oV6B;H3n&GlhD6;l`;L4Q6~1i&e`alG4EXFopJ9Z=$&(gcM^F#LkMv8UQh3D z;M=RbC(Lswbs35D3|ha1>(Z%Nv_8#q2J1;~l=t&k;@vol+h}=*8!m2liXxPhMLCod#^+FtwDmhwj8wp(mXQiN zR2)4lgTgNC_R8=gy^5^=dGsE>j63$Vr)IDz&2;9F@$)zMJoX+IUZA}_cp3Y*1zInm zIT0YMe-;N*iNGxSpGK3z$yPYoMBtff=9?HP@DSsE7zuosnSKPDaS^xR5oY!nGWaO= z<6};iH@VSNv+Q^BP!4q`4%1@PRhOX$CYj3tbvG zRO>^`sn5sh=W$l+3Fp?8u0{3M7z{#&s}V=pBiC=5KZ!%tT!kFQCmk1>E3CTUI&clu z8J1YwzY>pZXGqF()@ zb)m)%{XO{cTME7xxApT{bPHzmB5xWk*n>EU6CGh30KsY$a{>Cily z<-Q?NQGTCq4%5TiTRu~*%`vRv^Rq1W=Lpl!a|WN`?0o?n@J0T0o<$etumfKrtiR0G zK8Hj23MTMX4#f)`h_4a+U&jS}gRprKkK&tb)I2_oZ_~qfsQD6~-^CB`J-m$XU)91_ zy!!j`3yzN46D~Nn6Tb881e>p(5@;j|ZXTQ6V~arD-|hA%bk3)0U1?s}m5R{mh4)hF z!17uLJV|GjVzoUgTcudV##TA!aBjFe-6}!2A*@NKDi{%FnhWNBk$4(jXd4%X*6bSP ztJ8b`U^P-tR#+&j1ir2oxTk0@RP3yVRQ`{UI=zsXU&7Ux@-&3WO>)6a*%O|r3A3J% zRalX_3QA-@SR1lWan6As5KjW_aIh+47Xa1M`nEeW)_%#Rb zH?Z(q+>PIJyZ(V&^^b(WpKu<3#)J3^cgpqyJS`d;BuIfp4WdCpAX!iZr9ay%=OX8f&KDk^MTJDc2k=pd zwPT3_irv{8&Caau>-*yqz!^dh9f7bkc~mAdO6@Zxk*wy?jnr8|#)Bg;n8_y@6;kKX zeIpWZD=Q6S82??3WkSWdK$mnT;7ylK0!~I%Dlm+H?Z(z9owL@lua6`kZh6%7!p;Z( zIJZZ!zIUOtvX>lkd@|vkt1=@WU2FyDV<6Cvm8QGJJR$QSlY;8lGL^+d8dbkr(y>!j z3Hal3VN$wQH5argr}ddQ1ZVJ9^|;)o173?OEv~|Ea1B9&>)7BfxcC;vO`amgnsG<( a7{2k)!FFR?lSkO$9xMgeZP)i2)&37~vsjt{ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Item.class b/libjava/classpath/tools/asm/org/objectweb/asm/Item.class new file mode 100644 index 0000000000000000000000000000000000000000..5c0a0d0d09c8bf3308d62d5ee4510641b95eab75 GIT binary patch literal 2190 zcwUWETTEP46kUfI7#OZC1&cFGm9`)Zx4`gdwf2G4Qk04{LNn2-NiT4PTZfr;W~eRJ z)@RbBvHGE@)So6kVw9*&oHjAW#Mg(7`lIpBM57Jy!|0Ei_#v)+?&S_3B$8a#-shaX z*WT;wIamJq;3EK?xHE(jh1yJZERh*LWRK(@wTBZ{ZX(g2wnbUGEP2Z}U9`K*&3+wO07`BpbGj$66$-I-Bx2GjO2RudUmzIrAo+u@|0e2+pP z-jZa1#Dx(+oq<|hr?7g!N!$A-Cx-3pev5@k9hng;m9(;s_}*eLKknoR@&1-%1r*jB zC`FmVx_JLe-0r~!10j@&b)$iD*J?IUfv{LD1}b5QwaLIWSS41Qfz_xID`8-bYjql^ zcCBs$HA1W$wv@B;fm3sHb5ht|-Cn%Ug*B zdG{4gZqJcPE44qP5R0!U#R18;+dwb&@Jeinpqgvr14}21M-{?DnaS*k-RFq%6_TM{ z&Y^?-2RO5p{HQ+UFXUmlhZI&LWz|SgHBwTIYdoy>u*QqK7Hf4hWGu)Nq18=P#8UGz zq8DkDAjbb;A~1m<(pX2!a1Y^nok9}a;3eqeNjV#q1ZJ#&`eK$HkIDl;N|>~aS}P`=QLa2$HoFS3N{wdDA-g$lVH4nxS&~pDcD*-t6+Np?SdTz zbO?48&{eFhON%$f+8$$VCn(zEh~gw`IE5BG!AIjs+=8cY8=gi#p259%R@cAYt<0}~ z(64_Go4F?4ZSmE)kNIUKVwOquF)6+JCX>y?4xU_8Pc=^h&oSFsYVtfU=!FG(MSQ-9 z9s{LWZuVI2XOvVGHOqyiUW9R3>Q66A^D+abNpqgzuPmU6`ZQ5JWiHKDpT=z_YKDZS zL3DR%8qO?B^D1dxW180){>BP4mELS^q1rCZ0k4}nvr3EBEcfd2G@o6T=N&5YE;GHy zd>0q+)cHJh`bXmOY;$>3kUXVanUZVaWXagH$;?E9oS4|#5_cCrVUS1@@>6uN+(Vh6 ztt>9qdI{Uz+UC7Be&fq5MT5l+zmFdNc!7^u&nMLDQ+l7V^3SmgU*K+B!9IM6B)-B! z#Dn-67QTUlZ*i1(9N+1lH@n^VJx}R}LupH%h7xVb;}Fo6JP*>_F3z~C$dGrzvzw^3 z=zRg-3%td(H$4@k;}f30li!2<2Kc4C_4&Q|?=*8YGD+hFlm=%4GjyBiHobV>_v7^A zFBN^0zIm?bx6-G4w=cA(QA4ktUc2^|o}I>qMf-BPgI-7RbYNzQ{6BDneq=L0;Q?I5 zBbepW@C(l1SDeFd9OB<`iFg@*@M8X?@PFZF+E?-Sf{~l`<)78hfxNDLn&*yx0lcq$ ANdN!< literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Label.class b/libjava/classpath/tools/asm/org/objectweb/asm/Label.class new file mode 100644 index 0000000000000000000000000000000000000000..0bd982b3cdd585213cd93919a51089346194f890 GIT binary patch literal 2561 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 qz2I8^#E<kYD40 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 bXuveyg~j+c{zJ3mKd=pw37$?;+lQY38#nQ2 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapFrame.class b/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapFrame.class new file mode 100644 index 0000000000000000000000000000000000000000..0305d04dc6c47ec418ae965f4e4c0ae72041554b GIT binary patch literal 1113 zcwTi=YflqF6g|@iE$a$cY6U?B6=}CEEBHVu`avVoWC4?!8b40kp)776*_~>Le@YWu zj3)j7f0XggY>lDNFMA&|=iGDW-u?aO$1ecuc$PqfVWs0Y?N04j)a55pvw6_6xs-lj zS0t~0*yG(DpSMH;F@~9A{*l`rZ#V4&4Pc0Sye2$`dFMQhqmD`p6JDpzy@2qJCg@4m zvmG~(bQTX(6}q$Swq5z0VLLmPX%syg=c){`mz{<%5XF=U1JexAY_2*9hASrGm{8uV zi3F0$yJ}(*Nrq|1ZHxV0t0w%nyygjpl%ph9x$mlYn2gCIm%3QJK;Q*0M$IKo~cX2O)l`})C zoCH#|OspbHdAA|j(v>H>JUCLXG(r_lw3I8WVwQrDxIER z7dx&V_?g+QDG-)vMWXblM9I?bkjK>KXgjHGgggV6=xb8sQ5++iwoY-`%J(s275Ye7 z#Xizs_3aFOGsFeFqMJL!@)}dv#VpFWMp-MwV-E9x_EcS_JykiPJylz2qArJ(KU1vE zHh*IAed^{ZmYlrx4Kv?yXMo(he5yErO^MV18x%bXqqL3&*!(gg&Y`CE$ls@>I=}|r WXmOda#88}pBA#N41Td5|e)}(>ME*Je literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapTableAttribute.class b/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapTableAttribute.class new file mode 100644 index 0000000000000000000000000000000000000000..c1eb324568e7a9bfceb5f86eeace246b7bd680c1 GIT binary patch literal 10012 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 Ag#Z8m literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/AdviceAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/AdviceAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..54a93089a8cdd479b83ee3e48d8f41ac33acac2b GIT binary patch literal 7757 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 K@H5Hd=l>7koI1Gx literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/EmptyVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/EmptyVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..47aa4b894498aed5b9ff956fe1b8f57acf59a6e7 GIT binary patch literal 5591 zcwVJe-ES0C6hC)%w#%0C4dt@}qOg3(ih>}EU@1kmECnrAp$g2--foA^$2v3HcKu9z z^wGq`#KcDv6CX4&G4X-K#KeTe2mc}CxgT?9=*}=}dDxvZckcb2-#Pbp&b^QS{rwRD zoPy6wpb6JCoBLjksozy{bzU{k|#>2%j=QvbHmv?+nD4bL>}S;M#3yByTR z1uGy>X$+R58iC>xGYL#r>h(sPt(nlb+;(k{k-7dM7D8!>`T>SWfYdQQ!!&7t)O6Qy zIQzau1j>Qcc8##>Q)YKN)Su>)hb=dx{=9(*1h%F4Be0%_G2?Z86Bit*3__f-917%; zVv9DrZA>%=y4gjCToVLd9|$ZRzUVEx6t`Dz(ZGzrl(Uk4$(@c$}7)`$K zJCekNxAWa79JLjhx_)1{xsS_jKb=Or%N#i}pNS%2tdn~K?SXrYU6CZYT_vU~bl&LNAyfaL0@}qPZW%tNA9o}v%vxHM11q!Ki7?UTPFO>W?7ADE z2ff0@FywVi{%u5llb?&&ka!>Qun!n4U@-wZo|sTrG7xy|5LV-=b{b*PKqwu_9i17&8}3e5#E+V~RnfE&gNYiFp5nb2U_E2GJo2f62WLe6E` z54#S5>jMQkXbTgy$2F0D2N)Pg+)A!mY%{hbuU{t_CL9FZPtc(VB`Cvsyy-rVBY5k> z|4sN-#V5gM@z`&$`4==a*oyx{eDDNp!~YR60k*>qe4>0|r(E2|Ux|&aURdJ`uZfRx zA+vVDZvGuB6D^Hfdto0kWY!p3I=7xftH`bWaDZbT4!KNhGb!g;)eVGeZk?rILOhZnYeU(vWG1w7RW^qHTaA6X-neX81XL4{0-p)(M zH@WF}2idW7+=h1{M>yYR2!}y1;mpE&c@W=aK)jFbfA8`C(@4@C(?bMGiJ4bN(T&<75_Z8shlMIl#zt! zKq9aplVD-z%1Oen8A(`F9BnQVW;rSeu2i819mu&@Jj%FO#K%=d$$U)7oVnMPdqM6a zjEZ6U`O^O*BSnGQ+C?e-Fkf_kW`K1S*pkfmC@klJ{gnY0r-PlI3~VL;%JVowU}?EM qtFAmf$h-3VopI%fa5dFPKZZ{v8oO3#sc8Qs>b@V1;DN&4KKl=$fEN7# literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/GeneratorAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/GeneratorAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..5c2cd66bf062196285b38d15a0b8ad5d41580b19 GIT binary patch literal 18390 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/LocalVariablesSorter.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/LocalVariablesSorter.class new file mode 100644 index 0000000000000000000000000000000000000000..de1a9db937aa41056b4421584a3a34426a58838a GIT binary patch literal 2561 zcwUWGYj+Y?6x|nQ0>LpaMT3N@txX9gK~ZCyXliQIpox!SV~w@V1V)$$1I`RFvG3Q9 zsNd`t*J}OJwd$+OcCc0FI=2?%bqJJ#~^=e8rZWBcO*hm+aqMRUnamrbXb&iO6@ z#-=xlHEVmeUv3bqb-6hh=#CLVB6Yb7guVQ zfo<3>&{eej3Ab3USdK5ZJ%OR*TFwJk)`>3t$7INufp&yt$hd(%B&Zf)bM`GuAebD; zN}rtuLI?|VPTP)kwq9AV+>5db0zEHPrMap3C7WFKtrPZj#T=vfW@V3Ul2K@2gyYAw&!ps-6O+fwtC%9~aEtnK6_0SS84z?k%J=N==n zytI|qjJfPdj|l@GN{?{GT+aDs{yH6KDp{Fwk8*xVWP$QJz41mnYm=Kc7p(HeFQ{J_ zr>O4f2(ma6!f7_^tGEWHF+)wP8+FAw`Xaq^3UzE?E{t=;nUpzSFffS|l+7_KOsCzm zi;n5nUD~?mn=VC)ZAgilTTX$Vwo|Z{DV$^7Y)-tEWGy4Of~z5XCeX3UV#f4K20oXS z4^rI-=CKfh`EoKVo^MqQ^fUnd1VBzTRhTMww$70;tfT1 zGtciVeaS4>nPenat-E>aq%DgXTW^AfB|3JqVS~I=g9ymmgw|F$zFY%x)VYS}5y2*Y z8+>{OO?jP74L!u>R9Esz}lpe#-$v)jTU89<8c`>_*y>8I0^gVxOJH$H1zC*!{> ztbP2*=WYD#<)^o~9&WB5$W&Sr3tRne3+OG{VQC1SJ@HKugu-v@k3 z85_JWHD!^y_a0R}9+%DCckdNiRf5%+`i%{=A64S$1Z@;NAb&g>K}1_~B+F9ww|<2l zzo*Abee+sD_FUJ~5iJqb?qH7|)k+C%{t@P$L`HS_Dj3s)QSA}FNX2x{r`$>mkLXeT zHWHGtHb0{L5>fq}BHt&;M|G{R%72s@0ClojVv(28gB40~i{tYpyW=aq|C)pPEvE1t zNAi2h_5<7CM-=h1%5{p8k$WrGa;wkED(e6d=U}Opj=LIj!l6vw&L98_De GTKo^fH3Xpm literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/Method.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/Method.class new file mode 100644 index 0000000000000000000000000000000000000000..508cfb5fb4f3487fca4cd12b2f63606ce2514a9e GIT binary patch literal 3964 zcwUuOTX!2*75>J$jiqs;PU<9z9qL|arIBqlrG#K7Zeu%6ojMonV8=0qjO4MTbgWUO zk>fOl-Y>L3?}emk6VlQEO=+4ovQtBoz*;O;A9#QT5Bvyz0_8h1T9Pj^4G+?sz0baW zd!K#I7ytR}a{!z1rvMrxv{{98!b%=7Qua|Jnb3>ViIg=xZRLuIJ%*jJCIj$F2p`dB z^n|JB(usYJtORdPpEe|@L$$3DyO7PLySX=M6jKsH{X0kch6nc_*f%^PVT~(Uva@Dl zkDjNPye(yBb6LAbf+rdqrCy&kX#{YCgd1zJ_v^(B<%4KKSiy}5N$_uT)EXgStpXX1 zGMcG9V`V30td}5-h7dtZ02?JVE%BR!o-tz^l#neLLuY(vH^ zbk{56HZoEfy&&W3Wc10nlVMI;rKCxj7+L)?;u3sQrls35I>;H2kzgp<9O=!Z2W5PN zR!l3Gmhnw8cFXt{Rf-v_K#^~gGa`ey1(KF!8hTE~cJdAhXtOzEZ)rMd6b|V0D9U1` zbaPZMWCdMe-Wgq4td*SDXb>KR1-N|*eDI6aP6Yw@8J(TU7A4#|^i^%cFbC?nTd8;8 zSl;NKSZzZ@vl~MJJRo6ReHjINu$P^XHf+~-KfAAx&D&Oifk*#;mn*{#5`z7r`RaR1l|$n@AR^S7R{^^_@$`N zSqUB2Ss%w$x6nK;lKho|_i>IbUoi5fQHF33g z1POY0(ahKwt#_QANg!t31qC1CdX8FfBV{5H2~x3tv10grlnpJ{OG_9I;A;lrfMM z_gKgsd7Z)tZsCdc@Im8&DlRLoRB=`DyHUIh_!TdNAVQQ=Nd3i;1|DBP)A$_Ld;;|% zRP`ox-DPa>U`!BSQ`>69t?KPH;tn-hBQ&+WMs%uo)rh;*duqfMb!(02Qn$Ip$Bdx? zJ^b%vY~U)0d$At(;dboc^Q@PgK0JVa&exqVFn|Jf;W4yRN@#-l@IIHJab$z_P{xQF2xS#s+(nZ;b|#SL(d_|TqV8s=TpzGc zHq&ba@8WT;JhcBbG4~VCUG)A0S3deO>E$V|b)K}RDHmYvcs07kmO3fpqvcbY`b-(m zoq$ifP(g6Wv;7=`@$iHLqWU61{Hgcw`1ZHI{I}-O%6K_m#_PU}0DdpKzT-09XuwrW zba^A*Kcgug@w(vN8xIc&6CL4B*7p=z;tM!2uD&&gw>!!>Q^vclTsTgNaH5R&1RW1| z3nlt^q=xPQ^9HeM#LMie*RYnDHRBCzz?-<4-wuxX9%49zw}`|kX8aEO^fVsA8Demj zTJP}|d*4C!9yf3N+Cg?LaThr8>cMmPje~3tugu?a*F$^zor5B}_5)gT4@!bx(dj=HQI>`BJU&{ke{GSzT-CpbPwMM` zx?KN@y84e+gYP3IVlN^pDYBo(9Lp)JxfNY*@UM#uMydw+h^ZKyt&FzL_%%o;;q#o2 zUxlCCmle7oa9^r`o}=X}+RJNf>`BK@7s@efYEe=eGQoz?Nwi3J`eiTiE% p19@Wd@$RWa(dE!USaW<{ar3$IWX+G8&A%396Ru`+&5`=!e*vi8j(Gq8 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder$Item.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder$Item.class new file mode 100644 index 0000000000000000000000000000000000000000..9048fab59ce54d8b80c3bc3d0b28c4e162df3097 GIT binary patch literal 946 zcwU`S%Wl&^6g@YOI&n=OX&RuUr6mROXt9tGo1#i62+2}_MN0M)XOz0KJ;-)p!JqIA zY>*m|SRmH?0xyY&_zT4KB+wTdur)LH-nn<~IcMhG&)07NT*sz?4B>`~hPLYONjG^S z`?iP!+f_lJ!r1Q0$P<1~MzN>Dht8ebgMp0JokRu(a)h}(@mSct2#59qU2kBDP(F;d zRq#keqVG#WE))STrOx4YH;KG(xJ8%}t}El1Kn^DkWbAV6mKS=-HlbcWUE-V$HF{jy zRs(4wi#ZDx<_Xz)qgMoB!GeK8YAsqQ!c48R7N$`k%yzs`-ro=UGTIqKEp?R3v;~uA ze-g|kyB;IF+4m}Ak^V#poEAdXTROSjc>!p;I{tEb7dJe&I!cazSU&OJD4YUaMKQd>{Qtnt~ zv9mn#JR`jaq#xgcUZ=I6;bGwnXU(wXv!CO&+7;Y5^%iumd4SRe zkC#~4UVg?<4p3pgqW$M5fP6uozVf5{hDG|0HTrP`NbL`h8vpBBj1^qwSO)Vb;R@1M To559mW*rS)P0k{&-$3CP1C!Bn literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.class new file mode 100644 index 0000000000000000000000000000000000000000..ae5f315b0ca1b3201416c6ba72cdc36c77c81362 GIT binary patch literal 5030 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 HZ}9yKwKvjT literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/StaticInitMerger.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/StaticInitMerger.class new file mode 100644 index 0000000000000000000000000000000000000000..53614d1f44fb02cb9fa1c3cf42596112a82f3c9d GIT binary patch literal 2143 zcwVhkZBr9h6n<{rHZQAUG)R>4qAg8AAleGHfLK7SX$fetvEb{?<`UOQcGKMr4^?My%FOn+3T=iZH!k~nla{gB;f?>Xl==RD`!{PE|nzXQ00s)hhV&UR`A zyYfsJ-VdTu;BKQ}*o}s5xrH^4d!|veOs^!Ins79P7>2t2m+IVg7plDJ35OwM@rGbX zEjffo6s?9P)jJip545Q24G$r9ZwX0>*H9gyr&P_*bn%fMTVYe*B&5Cq9 zCn@F`rZU|rdeExs-mzxORN#_b6>$X7r$fg{h6|aa!(w1Kr6Yz2!--|n5-Y7nML2hP zrLLN_4PGyE$CTfl!;tsXbQ$tJ$ls?hbsaFa7)FjNh#|ZsA;U_hSnQ$0zc{(yedPD~ zfsO&B6Bx#*hLQJ=yi<&hvp6T?F6anLeY7p%xTbB^>I=TbplZ;91ShOu5m-L1rN8MAVo z=MLrm$6)7m#F3D`U+7rCq8w1ODJ;@;FjMTN?Np}Nuj{yho1}(k`$mS-nI4tMwYjAu zhjE$lD;*l52`pnpLy2Md2*q`*;x^r|12ZpLE^X4xf1SI!@m1j(v}|JA5KWIZlO_~s z&^=?Ee#9PC`EE!df|+bt*1N7_1NUiLmB}w6L?S8ULmiLs_?@xDw}~)J7g1V=!F7~z zkMgbAEyoZyP5Ez-I(*kBWvLh?k%IJh96~@|9zp@Bn0m)L-!wDj!Dzn6=y{yJ?$Ei6 zOXTvea3VLpi{uOCe43uem1&9yrz!XfQuHZg3(UN{7>tHik6hCU$ZDaIOU;u}I8ID%UMPc0bnuKBO#6p^pd!6q4-*6&fQH zQs`qsVTCfts`_Y={F>M}vBt=@lTYUNF!>Yeeer4SH(Xw)B9pH%{R%U=^_RH15qh$V zt9!V%hozaQ>>#D3qpF8CzKmcdLTAOd=+F7K`~+jlu#2L!oWyH-ou`mCz7FGOq?8Kz zgAD1&FZ&XVsj^D+T%q}_ViLDWjBilH8Xn+VIJk%BSXa_)(m<$%eQ9=-AWR`CNI;=G z9cgy=okd<5{pKeuT#DVoie$ConcnUQ)bA>=HB3}-{Xrm wz6(I&V6cq`K?w)jc*5}aaQoFT9uo5-oWf%afzya8suSJk>~zBDR7M$p0Yzo&b^rhX literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/commons/TableSwitchGenerator.class b/libjava/classpath/tools/asm/org/objectweb/asm/commons/TableSwitchGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..3da3b099f0ceadbb98306df7b47714decbce23c6 GIT binary patch literal 234 zcwTLey$%6E6ot?DTYm|yLcf}wsFj3BBnqOxGr1O--AQH_@22no9!ks*6}S9y&bi;? zdAkD`qZ6SbkXV;Wt4^%TD=SGwCbi8nn-_9R%JAlTEcIc*IXfz?i%=8jpXfr;P@c;5 zyD893KM9^v!2-j0x%wSmkzz9$?F4$?_>A{-Hh!QQ2j1S;v(r338b31lCy<2S4FTUk TxQh3wqk-TRq3MZ0D{!=5$j(2` literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.class new file mode 100644 index 0000000000000000000000000000000000000000..ce439d21ede8d21a2c900cb85ebc7751029573a8 GIT binary patch literal 3362 zcwUWGZERCj7=BLMtxzr-Yz!4d857ohl!AP0V<51P!nSU}J~{>{+;*3)qq}#s-C)3k zM2PqUHAa6dF(gEjk(d}vq&N%&6QjWx{Xt^%kADb1O^kp1ArYT*Z`ZEdT$*Kl&wb8w zp7%ZPIq!S#5C7i14`4GcIbjp1HDY0}5ggP)i8ETztHy`C#&9As6gj8GynA)sNT`X3 zp*I?OJfZ4|c%u=Gl551Aa0o0LR7X{BRMo@Y1Ez)(`2uBgH8VHzQE)_Gb>JD-nz6;d=k+Ti2jI{zzT|3j$?W<+L^Z2UB zDVg<7tP?26tZo=fFsG$>MZtP(5Lg@}5KyBdnwj4Q8LnGF1u6wx44_3%Xkm?4slwfo zv&(9M?P=$>Oyx1h51T8G%_=pp)3KVBnH4dmTHI&d|F4oaj1>3Nl(T0d- z7BxD->=e$(&43Y0xKM)~3hJ?wTZl^}v!crhUe}d#_t8Bz%)IQv9tC^RAh0y7C7QH& zC>9wuD`|zhV(u9@(ZsSj+TeswTJB-Lv~9^2NfJbr**o1Ll4W$ zw&tAKZmHvwIspZ}I4rP;I=-l(CZv!rXQ3lfs7VSPQ}8<8U~VbYWQ>@FQsHjOQAsMC zP@p1cgkelKX##o zJ~AXww{X?|FH#YZVHpadpo*iPH-i_?6wdSufwr9F=S#%gW+@#e6r2VtKwwn%K!q3D z@)?V%WApDOcky!y&fqMMEtQ{s363i`FMF-4%NU7;G+#tshth?5;zk()I|}QI|9Pv-r_sGtpq_gTfD3xELxGIU&z182KbOI&vx%vT0 zlPF7~ymwOk%89B8tVvCf>zRPlF$ss=BHSTib7tk{B(_)+*Evy>nW#yk&YHNwiCvkA zT}kYg5lo6GCmJVEPO!1VzMW2rB*#L-4u1?~3F9*x3s;3aLBXhle=j#Ee<@KuL zMXARM?8F9keh*&5KI}#Z_TU6x0%0^@42`&iCVYTqOu&chWPFPKxJ7#pt@svgcnCj! zMmrwU{)q$l8wc?ehlGt?zJPW$oAx^Nh;jsk2fd<>)`vdP&K}%}qv9}*iGJGCY{F-8 zT#Vy{cnhj{kM?7P#3$$%H=&8oaZ=o+{T>72Cq%>}42s`yN<5+c3%d9R!?t|33t1`; zP%N+hbg6Kp;iN1Tj=~sVCa&`vBf_28af3xOh*QkRLzENq5&Mz#Y++AL-hN`wrg_|n z#9Cn&m1(Tg#Qem1(%86(br8Fh#%`KeH?hys*dr4=LhP4xEJAkLRL8i=XW0^}vr0L2 z%GSV>8t}M1Q_vkV&U+R64{(+WV^llO{9K^Faej@wY38cZ(oVOP>gil@G|Z9B9ECZO z{f+H771c$y7uk?J^GEeHMBnuNi`yabI~ch&E3C_OeuZ*xGnA|RB728lURP&yJ5M?+ zPdY45Dl8$}cPg0U)RBRfWd)OtVG3imxgivoF0OIuyA*lfbi2}$NxLmexfSxYkaAXQ hJ_9bPJ%tNmMz&q%`VZNVKQi?ci<#0B%(-M<{13?6FLwX{ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.class new file mode 100644 index 0000000000000000000000000000000000000000..d04c8cd3711420a924c9a0e2bcca7fe60e5b47f0 GIT binary patch literal 4468 zcwVhmX>$}+6g@Aqg-N3j3^*hrh)T#pOaw$mF&GjV4FQrE1Q+Z~nxtXUJ439P=LgSA5oAaId}2%-WP_nMZ`R~R2Qa)bJC#t^9OwbOcLNY9ya z?J2{~n3)&YFh9CrQj?Og34xUtLM9NIkfK0eV=C2qP@mA-GP*U|HsIt;YcyGj=FYjQ zwL>9P0o6zd#J3sQoRQWYVKouDR*H;7}7}7Qx?6%SwJ5S9H!x^(x?eu841=|@Zvn8n+oXQeH zZ$*wOtPvUHts1uCX2xb8w&d^$j~MxMDa5UoWjnf~G8=&r_wo}%`oC7fo3T&D$q}juB=Yx!LNW%{F#W8?8u9&=0dNC zNPk?$JnXE|eVlyn8N*W zJcLIjk&np-`+^Yu9g}gx$I9AK%ynC&E!60C;nNzPz>@+E=lSSZCrQF8zL+6?6Y>j0 ze(q3;Q;zXlfE~isZtCTJO;ht{h&Q!-iiIC>S%r)F_ae2mo)}!AhLH(NghSo$l z5lKXgSR2D^bT_MbI*D*Aqv=8d+provXyL2Yj_pVyg>Kx2ThWU_^kFY{Vn22v!~cgl zr;kx9E%dt)`ivY$E7mDSj-!oIm6EQZ&5)8hD20`DEv1N()|25Vr)oV}UPnYizUy9! zp5i@uv%Pr+OBF5GmuP90LW@UAZPHV(X>KXv#!y+PD`*nfL$`M@se7>uchc2exC-|W z*#5G_w)cH?tx*=y7!jF7bcnt(3Q?2m!AI1=WVnbr6rEK{>Q%%F`FeWTPLNa?OVX#P;UpF* zpgZO2l*iX@xj2J?y$W7K5x0jRH$KCj56_`4N5gq6ghS91{6?K*j;ENT$ujDaKG38B zC6u&}R7>jkVtVkpxR%gsl-nZisVd_nuC|Ww|50Unse81n-R^}>Lqa}yp23e9uPmcZ z71fB0ilw5J=R+-8UcpRT<`k!5q7HF2qleqS?XkF-SY2LEfMBEA0lr^)UknNB}~=NnF;mhjtwske_AZB za9U)T=&VX~eTy0gMdYGhww>8*_b?3LB?5Yx;k?3`@G57*Yn%zMvqRs&X1vKM@fJ(% z6eqyj%;`HU;CETT?=jf-8Po?TP$!Am;s)gtGo?ZoN-CA_lvln|D$Ru{PM1lND&!O6 zQIsMgS%=gAKSj-I;{mx0ZH$&?X{0Xd&eEu;izXs+mY%^w|0M8eiNHr@3GC-%0DMlk zMTUKb1b#^Z&yv8eNZ{8b@Ea2NEeZUN1b$BfXIRHS@QY*y58y{Uj-U9f{fsB^3v2IJ zyhxoSbGsY9Pv*2w=Cn`dv`^-=Pv$f&ZXlWWdZRVUJA5|1&e^0oiCrh-D&i?IrxSnU Sx!)B6%{}QM;5VE)dF*diBT{Yv literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassOptimizer.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ClassOptimizer.class new file mode 100644 index 0000000000000000000000000000000000000000..86a760c78b4aeae2495fd10da963df9c6803c650 GIT binary patch literal 4248 zcwU`X>37sr6#u=p)1*U$S_CZ>8AN3|b{G*5N|U=CuvXBtw!Z#RYf3 zeP6(R*W-o@t=MzqgI`=edg_P%F&^)G$z-N9t(DU=$<51qzkBcRckg@YAOHOP3xKuw zSV0X#!m@`_R%Rd1x(9hCr8|X`RdkJlaX+_HJMy~Y^p+nL)G=H#bH1FlEvFYr+Rsq8!^-g}YOzp56pI*E{U?5Fe*+lK*APKH!=f(3GaH*^BK8w=1^;Y6f3Y&L5!jC?6(>&#VUpc6r`Irb9}USkVuKA zThn6EW>|g;6AtQm}?$^*puLa23`v)Kb|p zToDgRX6DcWtiuKc>t}BVUl0u!V>uP?2)7->G8tH!3Rur(xkDvTXG)D49An7T-I6Ws zQjy!9c2UEmjvCZyGQ;8!nu$cIUY}L6v$SA!Nc3UiPza8{B$DHq5>dQJ0`->2p^TrQ zeO_SU@Db~vDfWW89Cxy1@NK4Pxw{mfm#ny<4T*DxS zL{k-u+$0W?^J-x~PU*|gun)})s%v>KRcsUq6f~Hy2$~-#>3Qd@V9N3DRdImMfEjEx zz(GlYJADT{`4uKaEF4U49hAZ z?kbtIOY)$FR6Ir7-0oo>E0!{OBO9~qSkbmz%9Q6~gQ6rT!e=OvSfS*&G3wWy16@Sk%)zJE#$DnD5R1-Kjl(Z@d^d8MQHw-hS%{1wUy)Q zw(IOM+~HY@aIb>nbn47?%6MLaQ(SQVmWCJcQWS6E9Z})$GIWRSIMd_%AD=NQ-e*`b zn_2}4ONVllm*pkuqu%+^X^35M@$@f`H6n4Wr1Q0wJ{oILBR+M=su5og^4=itQJN9O z0=jDSbQ_I}`3n+Pj^n&U+bJ}DCnq=2b)kHEjr5yOjyEU z4cQl=*@sWjUA&7Ve#Ekq0dTz>+#&%rZ-NiV#4+qI{)Hk}=)OLYJcVV6WNorBHHJ&Z zaM>xu2{6%eF%)9QT}b% zg*7z34t+A7ou1Di!S%R?C}7gsL{^Qo+KJ0rX>BH}PFfvgMWnR_TV;;d;yOQ<>i{{Q zRRZ%!*i*$S3!E}sPhd=1+sG2EZpRKEEKR?b)(FHp%XXx zu$_J_s1w*ZFpitgoQ2M-LRABFRU$EIbrZKD)L!D&!`vV-LPFgq!It{LR6@Otbb-c*!NDOrp4REur$ zdByjz1#;6Ufr{~5)BPUm7#@^m94zq5`BBy!IgKakvF9^vn}&7*D<^PdK*Ajh;GXv2 z#_{YKiPx4409d8zb`eFugVbOTQSl!}D;_4Q9;LEoatH zmi~_6H9U_`@B+qZPdr2SU-2^j!mCvcGZ_dlDJf>sDwo@&Uv9!GH_RlSBh(1RbD9uU zDJt!_z9=u!h`^niMU><;VazK2H?=jrJcd_K{68Tk@aDiAVw|Xlcpk^wCubGpy)Z!n zTwjzbpg@^^$=titTJO=nRPU1_AJB&N5r&BKB0j|-d`60Vj>qr?arOyu^d-&s3g6&s zOwj!dzQu1iiQj44`vc$OPyB$tX{@5oRG`jOpw3jF&QzezRG`ijdDu$o#PD;V&WAGM GkNyR?{T@01 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Constant.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Constant.class new file mode 100644 index 0000000000000000000000000000000000000000..c9eb21e2eeec9305af70be3b7380495853a73ad6 GIT binary patch literal 3227 zcwUWGYiyHc6n@^dqpWc{f-PjxqD{;5;Z0oNDT8i-}kL$u<4eZp7Wmf^nK2I zo^#&r!qqdc04PJ$ffNN-IMP}gZfe(?V_kYvsXy9L8r~8MbOgHfNNGhl6pi^qF$e4l z>Fxe){?ed7)LOdIh*z-3wr|lDRE5H*Kq%JW4|3sCa0J7lR&!OQFnUuk?6)?(3TZ9j z&ZeMlt}7WFjYYU9Q^=@JLe#|~fl%wB#P;ljHHRm*`J-(W;TB?#S{w)kVoMZk?!pFU zBwiOi~zM9SG^QogGbjq~1?hK?yhegAM*jK-QMi9%~Ck74oY`QVwQS=pI>Q zVM7`eax|o3lvpz~I51kQnHtjI6zdiZW1xvupkXY=iB+g!JkrG~(lEiaW@*SUtx^pW zF`DHI@ZM2fm~i_F8*DrK`}@VNGD_k0nyOONLU+ZD)g6hau)&E1SmeOMK`mhJN*;@i z+LQIvu1FxpTILN^n~I=68eJm+5gzHlGKC4r(|n*j!SM-vq7Ekp<2+&9jIleBzL{iuujzA9@(Dj zz`cX+UTHM26RS`!`|~8(1`TU)ADfh!tgiRYzb=u1V)`VuQN#TbYh*2V5$8G$>#;#$ z44t+94!zzOt%4yA8SYrWh9)$d$9e;Lutj0Ph`v7Dfx3oGXywH6z#2W)7H*L~8p-!> z^fXF`q%?PN82+a_IMe#pPJb{u43~}4j~yD?v6&MP9{g-rLEK;=oOR*ONVDz@$b^p_ zn8^}}MlQ$5#&X`aFOz2w4xks zSd0L>pdHoNY$Q9`Ovp-BtXpZx1>$og;yg^>BiG<$ zC2+C~;!T{n2^{k}#PJHwOewaBGjsQlIFA#jhd8_Gdtw-zF&6J-n0MoSDg~!N$TV>Z z_6&)$mpJ=)(ti3541*($YvSBy;wU?DQt9ayVy1hFrB`N2qh#9ICfUd2dn+h{P(krf z>MUJPnGa!%YbKXn+>7~UZUd`Xl(r#UnfByH;vP#lP{0x9^DOIrl&j}BKF6>O&$G2o zpcXHn0WV@5^+udxvz}%{o?(}q#&(=F?p$u(CUNI(W0;j;$+)H%mJF=Tuw-QAZnqQN ztjGy|gHg&QwKnb#l>->#Ar*LwQb~D=;-&OZmQ%i`_$V!uDoPh*Ab`u1TAnc$X5~)6 ztlY;iD|fc&B`jS_u-rb}(Tj>TM{tZTpSbe+u)=gbNmq@yTzyz+x^~gEN?iGUs54!W zA}-ygy~(my({8lvwX|yuo8sxk16(gjtSKaDBYmDhK3gwZ=$tgjX%}abyY-mD&sX_K zoX3NB4G-aUcKjRIgE#RsYxWE-;3VE5YwzJ@ypMDE0B_?%yo-zYgthn_pW+96hD-PY zSMVkN!B=V=zE%_Pjhcz?lKre)1KiSTBmeTO^69tO+eJ3Xtg;oIhdP8*+wr1vP&LKm zQusWKUy`);Qbt>>_E@ZTTdcNQY_71_Y_!e9<&n(}sY}4QHDE{D+@h3;`Z;sbxQg{U)QD4MWe2aekZv1pzRZ7_mB67_V sCy1~igfK(K;V*2VFNHS$544`L(!?(xe{+&a8B?hoL;mV*HKHQ_0_%8_$p8QV literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ConstantPool.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/ConstantPool.class new file mode 100644 index 0000000000000000000000000000000000000000..a23ba6570754c1255afb458d3fe1ac70b23acc15 GIT binary patch literal 4508 zcwVJf`*Rcb5&xVlAz3;608C=?GT{;VBuBv{sd<@)jj>%>A+ci@LI`L3kOk*EMLI#C zgpdabA3$|QkpdF(3$kyhE7Xo+R04+s7^n7cb1GFtvvn3+S|L`{p{{%_xts~ z{{78g0c^vUQG^sE>|!o$kDoFooU_JwS}#qf?Shk^&Yw4m=^ooEIlAQ>wrw+tu!81O z`WZc4cJgMrUoTA!=>-Mh)5f`N3btly@wChTzSIBNu3**fyp?yl71Sl#N2%?xCyhAj zuv$eu;!!jz*j$U_I2y3J9tzf|h+vgS>r_O2X}yXVRw-!A5N}qx#ePwJbC$0up;OaZ#s!LoAdaec))YDb3UG`es zp6FeHvpwRhTb%WJ&U$@Z&y4gj!p=m-n+j96a_M2Gn748(=|YeA?iDvZi~ZE15kzYi ztNnca2kBeCihbDcH>bzcOQk>*EDMr&(!*VA5>X7zEe6jzn1VPmcv8h-JjFnH%Ng~F z!Z9BZIKwLL#eGpc!>O#=daQ|K1Y;_`ha()TlcK5G_KEGYDjq>PisuwGRBeSNaU8?* zDo#LW`X&`s%R#Z6Q1KWZkAkYEs-;hgI3|%(F@?N>yCywV)w)-#PpjAo<~x0db+yE{ ziazX*;stJ;#ibiLS73|+N-7*FN|bXwY!@BTol$WXFR~QWN&SkJZf5mq#$K0bU))%V^P}>`6%}vcDvk6)!LTM3bS%lNW#a7; z7w@QeS2Bw^_FQc*;xgMXAxvGf*d1RHBIlB??^%MhQu$rMTFM(HK^? zoMi2fO47fSGwWBp4E&F#R~yG$fEfN-PL&%9x|T4k(N%odE*B?^zP#-B=K06-Bl0yi zGE5zBK6MDm4S`Zf?g!p)%=>NN7rb=v?_GR4!7mm5Zq;U?YPZmEWEM?-L~~VKTNPXW z;Q6_mf7jDH(2g*YXha7#AdM}2zK2@X_lQ<%L76Ksh<2XQ1YJV=8qN2*xL*@t78{3B z-(sD_@t?O0X{lKxQa3B{Hh9=OnZtH8bG^0Tapw92qjY&O+kC%4Op%gEF={idJ7^oC z%yqgHj!iBeT_KL$#Ic9IyNP2jaqJ_G1Iyyrz5oZ8^E@2kIUEnVcw!Dmw&PA5S*?RO zIu_#SBaTD#-A^0?#4$)5nPqY8n1@5U&NaUjj)z_BULlUd#PJk;KTRCN#4$n~qs!vh zy8s7I>;T6_vP!;BNw}s`Qc+wSSYdCDl7G(<$1%oyj+{KsnL9BLOR9n;MJxvyxuw#Z zkQ{9RmMa04PKI0CG+f29Ho&q$OS(8T79d)?6ru+>d*F$y!eEq>jGW^=Xo_+3coe7S zq3W!l>a3u;zrvV-Wl;6}AE<1iDlp0mj9etD65~2Vb*5%igZQqGN*N<6;m`Ht-;tR? zbMiJaF0y;H`&>MIlgbfaIpSjUptjk?QBfZAmB(Bh->2|ZPElr1#sg9uaEo}YHaBKKmY?9_*7}Mm{PvF7N;2{nz@FC;~Uym8C>7R3SKjMg99ZoUi0Hs z(06&56;Hb6p>N@h#9yZ&`F}b)tf-v)Bl5%|K~h!v5L1C$uHg%wn=Qh_z&p-)RX`K literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.class new file mode 100644 index 0000000000000000000000000000000000000000..fd910c9a68fb3bfb6a41c30306f1589172cef62c GIT binary patch literal 1547 zcwUWET~8BH5IxftwzLZ^peRzXC}=;B3W!ve5J_W=T0a6<18>`Q#U;xw*=|eXzwpst z;HxGgK@)#~Kgu}wwy+N^l{DRZ=g!PI=g!RTpT9qU16Y8jAV64h+`XJr**B`*kx|L% z^@E&q=$QxRN5jn(O~a}c9J}u6wpTAWmc?O?s~|*(@9RxHXX*A{?zK!;&`+4^gp(j; zvu<)GA@IIQNS1nsX&hHQBxJh8`RdMuy>T3iGy2y|+w|56FH`@6zdUTZOb8X6nh`+| zF%?n73BgplJOILo3I$=YyP{$M5kjnF+QzHKLB(*l^@?S1Ov$P0R#|sVVYd%M-UqWz zSnjFgg5vW{V@+|74cm4+-7_7Vu$n6Q?bz~M)85l|(_P^Gq_bK?kie9JNkZzfRZ(#h zNrGYD)AesE_o zqv%6Q#W-$6FpG@nZH#eFO=kIoLlWX}{rSdu)kYa%zV;-MJq$d=P^t47fjQW6&o;Jmm1rg`dv z{O?16fBYKoHzgom0$xLW9)-%!LAG}IJjiP-bAq8v_87yNxnqoelL=S(Il>8G@gXcS zz!HY=0AqZTY^C8Et^;x>Xh`k^QGoZ{xi-xwmLlS{%y*1te_-NW;xppH7?~E<7Ys_{ zwlIESc89IuY~mDmgAk4rq`#g^nqn$om1#5vUt^MW%-}KZVFN3?`tr1Mc^c-}PjWYp zoRr5MY0E3fIss8hdy2&X{0c;*tH|q92|d;dJ%^5RMV1+eM4Q@xd1-U506fJCb>KZ` R`7b1%+KO!B5gy6N)qkSHgC_t0 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/JarOptimizer.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/JarOptimizer.class new file mode 100644 index 0000000000000000000000000000000000000000..0d6c4bdb52ae1a2dd98c22557ad3951bb29791a0 GIT binary patch literal 2470 zcwUWF+jA3D82_EzHcgjaX-fpGh(g-ZMv8K2xfY5BLISk5w)M7cmv&2%jhhXHD&ht4 zj`vIP0e$L=P(eDFmdlz+iz@pm?9n>Jy_%w*5m{l4$_{l42dzx?~% zO#s{RnF5zU$h0QH=IE3@W>4#*VJ(vkn`zrf8Z){TKBigm#TNx0fto4poEA=Ksflph zu@Ug?HByGXU%(w|84&OsHple<+^A6Dg-@V5YNYg7HaV(W{n}_k7pRMxV_ITBvkduO z_~@}Gjf_BR^#AhdrcF{aQUZ;kk?1n7KHD-<6Wx+ap!fWkPJJ_#QBWsP?`RojI1*oy zC|E0?E((qs36ifzqa@!X&=4wz9DqPj#a&o0;9q1XP+L$g;5ZaKnl-_&>dP<`5N8Cc zR@zACn^fG3%>tE1=7?c25vFy)N$;?f-mhW{whB}vjEpU9GSYL)NGVQ>idM7w^0wl-DP45U^g25 zI4A>4>C^JHN5x?rVZUnWG@}q`FBd?`rve)X@u-T2WkUV7nHS1vBeGSF32a_f{c??? zAj-r!f~;*M!ZSuXJZz-%U3VNY3AJ9qNr8j8H>IDqdlPz+kgL0{P&5UjoZONqd&%KK02(&Q0CW{+Fv0mG=a__)Qi1iMXnDgz zM23nfoaJn>0VAoUcm=|DHeAY3kpYXIgsC7^d~_^}RiyC@JB)j_lM))~i9}i=l6OXh zjjVuo+A?f?Nj4y5(<;u(b1^WMFf+R2U1oJg#j|qgt0%S03DeRG*~>_iiz=R%CSJ!x zMtD(n-is<;k|w@!J)zsqxpi5^E4acA<k_`SM{4?vW z84g@iX~qhwZZpf`HkZm*^cbP^l_6iD*Y9HcHvZ~;hTdg_VGmB;}_eI_N=AgE1=%la9F0rBQ<`=jBnZr+%h3dBD z&@qdgLn(&`7qDBdp&RI$$NstlIULHNcOH*K7jS%t@t-)cfcVe?P7Srqqi-JlF(M3h zd1|-TeDCk_&LI}`e2Wo*AE0&lg1#KaX5pK|u6DT}-zJ}vT}n_1dfh?q%^VUt{SAKC zb*Sz9(%{d*;_K(P|7y?SoP^>$U%UMk-=3qROXT*#U>lz=4=$(8VsgMcMZqo>U^i2- z2Tfczqnowc%j0ezhOwVRe}E%-5Ysq>8T8-^PyDMmg7^Gfq4O8+K z-sZO{&i7Tk!&0Zo{9S5z$mlHI#|JF#6>|I#AF+(rd5?cgUJ5w{@hS2A#F=%XzV;u4 C$73x3 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.class new file mode 100644 index 0000000000000000000000000000000000000000..8928af0258b446c6465435f72604c0bb8cbbe5c7 GIT binary patch literal 4239 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 A2><{9 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/NameMapping.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/NameMapping.class new file mode 100644 index 0000000000000000000000000000000000000000..249a832f7ad23bf492ad79826a5e0f7bad7b0f42 GIT binary patch literal 2533 zcwUWFTT@e46#h1e2I3K8xCpjrm5Lz=L{Zclix)&pB_KkvfLae^14ol{;>n4ky|?y$ zf9zBB$yYnm2CXxWZ=Gpp`ZxO2zfk+_lWoC zCV@KF%CKUIp`{Z6Z?Bb-et1x;!G|pZo>2Rk4_gJcE!v+k(lTLY^A5qKp7A4qI%Qn# z2cv6f#5UrjEuB1@N@P@+WtX^uY!=wMEaI%5o1+i~@q&gI(LzPn4ZhA9X0nJHQiYc5FD_k_4Jr- z8){wJ^g43}E6_ghKg-CHcxQ|v+`4)&tr$g-^IyJUfX^^fa(-xrY(t6mggQE+;T0SesLAE0a;}3wVTV|}Aa!uDR3Ys7*lPMJtOub;jM1ubt%)*Q@ zUyXBIgcOIQhCvLm$8(NuJGqO7Ggsk7nDAp5BR*W9ruCH^y`7aBM)5kc#yp?2XY(0p zI%=B)I?4e~mT3rOA6J1cYIpn=8_A8z`4g^Nnb#Y$FWC!_tt&jUu-Z%XZwWE#X6M@oHPa<5b>A zr=(qtJiQ0}uu-QV<~7__QnnBxVLH+_^|X5BRfXQt5J6O#zN6t?yhm!h2&9>+&^PP0 zN-^Wr_<%v<3h5&acU8P<$69=Ihw+JqPw|;RElKpHfX z8r*Ui^v{hr{x*<+6t_=%sLfW?4nE$zi7OX)z!(FmvdhHs6tI?<%h=E zH0M=(wuTq5Is62H@yG=MriG#)Ns`!noVz)QcN^(UHDVGqY3oz&;ji!Odr4q!J9 zqK!L^MJVh=2ykcZ2s4yW3FoK+{y}0J_#6&L3g~!-{mJNWI2s9b7I2`arRqntM*<R6-m4AX0uCo1V24^15a+Zm!l5?&Gg>2$(Nl$s(T7X)I&AjsJ zaTLvnGb_hP?NyRJ&fh7VMjwXI?@~WlB(+3+n5T+*4bIXkOyqj(!x>t8h_i#c{caW$ zOTr!#L1FYqg0B@Y@B_Ldk8nQ8VQkQI$ol}nXoEM*f7b#gM(%n=gE#v0{`0@X9b6A~ zL?7Yu!!WINE(=I4%V~2PXe3I;l~JXxtdfjBd7`R2!}6E`|2?!mfju5{7I0Hl>{bDH3V1vCK8FH6 zB;ALuVa+{stMiYG?313J2iWF%eooJ5(K>n8BU)(m<^AV>MP1jmD#tlauxlpSS(ng* s%jm@wYP+m%MWit0stgwyE~%WsH&i5O-&QKt3G8&WdAR$n8{@lw0X~IfDF6Tf literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker$ConstantComparator.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker$ConstantComparator.class new file mode 100644 index 0000000000000000000000000000000000000000..d03748d47b5700cfafe122d43846c9b36c8f4185 GIT binary patch literal 2004 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 L%#-~8Z}|QP?^0TA literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureReader.class b/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureReader.class new file mode 100644 index 0000000000000000000000000000000000000000..b3c4b9d3efa76ca18b5f412ae70d916ef88bf832 GIT binary patch literal 2803 zcwUuNdu&r>6#t#}wjJ%==zzkYPC*pgu53)9;5LR^VOks;Y-0%c*j;zmb$0E%?FJ+e z)Zi-^iGN5UQ8tWHBhvulaAkKcFB zcOJj<_0+`^?*XVp!UhweETKgz5}mzjIJHIXtWc7D70GBMuA~MuwW8ISwWvy$s@WhB zoW07RQV~<)k&0$rjWA_ggD|ZzkGH0@XgpF)u+~K5(NrzL<+&2}wiBdaqD!^I42KLG zWP;h_ZJz={kqis0gsF|uxY{((*Qsi4N@q;JC=pg-?TQu^>)fW4>WL-^3mYd9mGDmq zht+n0gDV}VHaKxb07PnaptD>LeV2R<9T z1pj2Bkx_;MLdl?5HYBt@CDyjBUtOzcN}rliHDPw4jB-?PJ@iAtn37D^CkEnOghd|j za^Y6}NFv{fd@U#chO@SK&x#a;Ci@;p-9^0paU(-Pcf@L+Dn*s_w7Am&v$Y z;L~(`JWSz*fU9NH(D|d)UU2rjEqa3ptoHd zXp^x%?^~UwDccO)4KnT#>?qbDv1_!RKsU+QEKnoWaaGf~VQAkc<9>k`>Z|KM%E^sV+|XRg}!4bT;m^wtJZHG zh1*#(j2)JMln{DsUGkF2w0u z!)a^6EUe{Ht>eGD7A!>@ckO!qwxbi9kYvt2f{oaP4m`s<&qBou=*AEtcnLi?%;P)g z#c4c<&k@7VJpP6R{zgA8;32Z2pJb%;^0jc`xiCigc-DYBxoj3H&J&)I}c&@J){@E$tXR7tS1QK5T!Slar_(df!lTHF&-bEz$M2x zmmE1~?BcP_8Z@2dO9iKn_}sflFLdo|;_N||dX~+4Li2KP!g%nq{r?kjX7^R}jrC4{ z=@^<#aF6)h{xP)bwH@&}tKEXg7QfH!vgj;sXBJzejuCf2G6$G*w!Gtq*v_9UqN~bT z=CM@g#u}Ee%eoH>d@ji?b+N6g0+;Q16!~WtjA5e*X*l%hy(W}8tA}|th6jip%HAXe zZ0XG2YfzQ~R-b#^pVbgA0^nouvy`zcV_BFRYgxSM%yN!_@9QL_Gbep+sY9egHHjqD zq%%i3C(h*)HV&jS4j5%WsvF*ihw(C=z$$gWZv;KN znTSlh+_NcWq6bKy38IQ#N$cHUW{r#7iK0XHGnqwSSU8@45#_$LavT@9Cwuu(JdYCY TP%Hn(RANVV#uoeZT*dzbe6D_8 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..98826f133dbd2d17bbee78b2e6a459e43e1c05f3 GIT binary patch literal 808 zcwUuK$xg#C5FNMBltLFM1;7)#G!;#s)Pz6CF1G^69pws>#=8buWba#L{K&(8Yh@04h~Y1=VnI;X6=VN>t2u(1f@>b z?zOt6b=wxoC4#k~aA-#?#6fQ~Aa|JIkR*g5Xy`W+M>}CY^)3z_1XY=01~`tdqLe-% zIMWYr{xi-6g1Riyq1@>iyF?YrO55pxFjv$^Q28B)U`Yx;ZHk`9dG~~S&`im~tT&eo z5bi-DcMoVT+;SMca6WXr(#nDeg+`+nujLLLV+`lvm6vTpPS+(&gZB2 z0@V0@m7xOS&Z6D7)Q9EQ0Im#%Y8Q`k*3 z@sa2ct0uk@muOs##vjx~6JQffj2eGhqkod|+&j0o(^6dgf!;f}_k7>^&iUq)+yDIZ z3xIK)YeS2I(V~@)7c*;m*51@Jajm=_FB^GNvn!S!Pgi%#mSO8w8$1dEYubhuFKA{y zeu0Oz!K+~GKrl;2*|3Y2g4RqWr=TxY!%EwhVdfK+Tu!&96!=%Q@_f-+*9v6?%JT}^ z>ENPfY3n*ALTBxom9MPprk%F6?8|g#L4kMLFb#W_;KPw61)gMaMfal>K@}b7Y(uw# zP;*8EnX|>Qka6C@SdVfMV444ta1;kI0Ana_!*s&Fxhw2fYVpAddW75 z;;@|`CbY8dJbS3RWGDZMUd~!Zi5pl+DmcpTu{%{)R8yL>EbW>T+)=AjHJw=%D%xx6 zP2G~;Gp%zf5=^T~TIYnz%Wk^rp@MPN`2SgS-=0R8j%yy%@xR-ANlkBL*bPQhlJVW`PC59A2IFBJ*Km-># zYsf(stZerH!o;i4ji}%s>XrRKu$bM9qYpL5}; z5@$@}oDvy$siG(LAiO|ze9?vAl?W#fph0V@VO&No2@M0Bdm9s?0~1_RxIt5h`~v8d zQI0&4CxlhPTyt>@NRCsIpm$or;XmtlO zjX7T@wa6UvYJ|a(i?BX1eoFkGm zDaTkwjInT(VVAbh%UL`x5lj8_2}J9=<1l|h4!A)|w@AgOg#VeVo?%(fB%Ty}8$x63 zKl%CtGoL%H>u>0sGwN;<>leiOC9!^mb{?P3(J{?E5GE-u*>3{o6$` LB-Nkg5vhLx1*j1- literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/AbstractInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/AbstractInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..1fee9f6c35343a3af8951b7c659c54740eb30b5e GIT binary patch literal 994 zcwUW@OK;Oa5XWa5=bh3QEtCQ!rO+fmO?jM(klfT!4UQ8fj;o%~+FhltQaiFYMO^qq zT#!IW9QXiyD8#H2xvPo;^1=T7=e0Al{{83YF96ts*Lj#DuoFf@HFVFJ$3HSxrSXNz zBgRzCjd?^pZUk{)g{LeJ3W3FQdP&t04Tfqb2_c{uR^K8(3M^ZED4!)WwmmmX=E3gGS1TwX{Q^b+fD^L|@UNHTDS(6Kw zMK*Oum}1!sJvwq|j57aoQ~TKPknzs!SXdQzlSjq=G#1CCp2x;u3OM z;tKM-#3Ft{;zi^oiI$oC|^kGv`I15m`O#5Kfc z3m&3n8>xl1IdNqgKj2Yg<2%&8CjO0N24WH%{U_M_B|Je|n|i}jcm|MsRg)?Nc0rxx pR1?PA-S`HzFKN15B7RQNRHhEoH27mY#~|_EgBKwFwUsOOIUFkNHAHb^)fn^ z2cLYhDx)vzjLdkg7Dd|8sV{ZLC;tln4E1}?E(y0fsSlj|cF+F4zt8V-4uAZ8<5vKO z@q!;7f&InOM4~u0Y3A)q=2*fgPbch>X(sv$g`#cPRtw(Md_KpQv9d4Zkjs>Y~YvI-MD0(Eo7)T~)%0B3jBwx$wkt8B}? zUaMf)#|4^0n_a_M3J(x3056(!G+?`cHx$m+gQ0Zzu}z>UZ57PS?DUvfI%AAYnG&Ly zH>R>i$&%0ROU-`SBEo@mP4ytzuFytWCvJ<5dISV~b24`-ZULU&SV{W&@c>1ulKrKU zaarmH5X6HrxxJ(erNY?;wBsQ^Is_Wm6X@8Fhgkt*e0)Q}R-;^?M8TLgC7vw$`i{6? z3Dhh0!NTmcz|sHazvCO3QGDIdI2-JUQm+5KNPA-)9GoSj^jAN{!N&+>|ZLp zxi>O!zm8*gLLgn6cx~e+0Z!@|M3N&?wq7&UNlG=qhbMI$l_$$%%<;acDW-t1_?Pk{ z!=b*o8A0kkts{b{v`*_dh=k1TjLc2#W_3J*BhosrqZRjaD(%ZNX1-V`+meMH732|< z?CfZ9wv;!MmORM2)}PdaGBoy4+RHy5JY0D%@CFp}obp#5T22esd-#;(7aslwBFkuu zM1RDN@A>4xF0PH#00yApB)tZ)n@{&TU!$28lqJ;#Ee^+>H1}-OOjC21nwdLjN>b)3 z>)>j>M-S=Q8(G4h-_aVmiC~WQj@$727NKd&Xk#GfO{4rMx`KTkoRenEF{>1{+zoJnxYl4&fqt@T?-*>%^)M_2Ph=WiLVqtE#e>F5Bmz? zl#%b^&b#=v3U3>u0yA7+pkr%N26SJyBnE6m9XbJAr#O2$s^N@gAjm-#by z0Md8Q9Lz1_(cv|N;HJ^Fk^Bv=Z_<8?TawvFl zxV%w7WhJWZtWz)ERbslc>52(?3%HI;4C7mE&TaH~`xX(Fc5nr~9^67qRX?b`sGg5$ z(RhpYGajG!c!F|c1p@+~{_`i(9}=iWZ&$a#`%LjFqkq8R`jDgX5r^U`PT*sn?@tuj z5hwbZ2Bq+nx;?sZib;Fu*{o9c(%-MngT^P`(M|>;Mg=*z^ReGByuhm8!f+-Mje9%e zTIUKzG%RA0dtw2t+!L8NH`%upJmbYr7+pk~yX_0;i!h0^9%T4c`!UVi#YXRrix#cf zr*fBB`$V&^MRSw>E3T4WL_;LXUZ3->$^ST-xPD3EubBVW{I~WEI`A#|za#rK^z+*k ze!vK>^JZA$vAd2Eab9PbE4ZO*b6VAKUR4CjS{>eb_g>IB06E@kvNk($L5*>W<9v}G XUTVkGsAyE$%eyAcN(nrt7@z+amrEy0 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/ClassNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/ClassNode.class new file mode 100644 index 0000000000000000000000000000000000000000..463e22bc5955a52d72199c3f4d32c3daf0686909 GIT binary patch literal 4574 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 PuQkKYPICrBQ)ljXyV}7) literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldNode.class new file mode 100644 index 0000000000000000000000000000000000000000..92797f6197053f826b8f7674f7e7ed6219a9eb2f GIT binary patch literal 1958 zcwVhl%Wo4$9R9|;YbW+J;T4K;lLo@WF$On%q$Q@I)Zk)p!XsebkF~Qk1J0W6u8qpM zQpLTe-Vg_FRV&#bb3i>6iCeFnnp6Lamfwu+IKdksBxLQ*Z+5=<=9}*~zwyieo;?RJ zg{vV17{;qkIaMv*wo2YTtC%v~rIhDbRw^s3%Hn)=(F#Fl*s%_3&RQy3P8$|v80&{A zo`P_NS9KVIW~pSkE(6Ok=(f3JF>K1;HtS}pV%p`@g69akoTjlw%Plbsx}t2GUd99@~NJobD7KVn+9K+bcpv5N(gJ9Uo5yF6s zws8z1ETiolk#_VE2X9AX93NnaVK^^rYrZD!I%gIuY9G~-St*!~kp0d_-Mb~oo}Kx( zr6t`l^RCA*5%+;-DyHjpjHj(cum|xF_WCAiHI`!%35IZ8cGYqWciy9^K2leok+d`| z$*~^?$Ra6%d^uv& zN$51km-veMWsAHUiRUK!RfaIbuzQ^x^wh{i4B{ZRM_}MmLcw!=Kd+|^Ldoxn6z+#PByF+w|_$up;tJ7!TG{+fPK?7>`F`Ld+pj4;HZ#%q%`+gnVnv+Af zilB!K5191YyIu{g%^yt*FH~zz$;t{@fkP`Lc0eW#JIE`I9)o^N);wLFOjf*VBb}Ca zTB>zw0~8Ho1HCs=?-%L^sU1%|#im58iIGIIi4PO|n}{Z&dK0lk)M#S#4>j{+dXLdM zz&gDvjYNNQs$lIj8~lKM0iNrk$Kq(-@y3G8Ys zWIq#^WLw^sXpp)FiEEIy1}SS`w1wS4%u%%O1wz_ma2d9cVwl#o*~i!;`-J);fIo3? z#)ulpsL?=LZ{d)JC-~+kjg5}z5C4Bfz)X)L^9D!8hePw@$o4q0t2m-b`JqdaYvE)7 z-D&?OTR6qgvpB0#BM`$K`Y)_t8cS3#HVPEqz+Kev1Mb7Y1GxB=;z#tQg*u+&9{#5G z6@J7&gpjE?uF|!7K+0zB*SY7sd*=G)>Mwv#*szfyY=qHqJM>PaufI#LE#g62M^d(3 z75Hut2m9fXw2>vedjPoQ#X1tcz6BGkp@<0N60%IfX>L;mN_Po!4cBenvE60>I|@hI`V|#(3H2Dgv?+_Sf8mx zu#cra_;GGrY&6-y!ng1u^5w2FH&*^X;^V0p3aqnJ7XQu+M>dW#GPZHFIGcxYvcT0L zBMh$Es^I4zEVOE4EVk-nlz%7NRWn1Dza8G+goDqhpo=HmSxYzZ6wiPpGfI?XM$2d~ z;rT>qkI@;9rT487ON>yy#0v{|GKFNkg+**9^h+sxN?*cDykasoo266I4@u2OmGi%* TMClv8BqUBco{+HD3F`Gf1=Eu) literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/InnerClassNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/InnerClassNode.class new file mode 100644 index 0000000000000000000000000000000000000000..35008f41a02556a5bc5cca90f53f32237101c7ac GIT binary patch literal 836 zcwUW?U279T6o%iEY?>xn+iGl5ziK~ivQ-zMSB-d65CS1ZD(lzPWIMzu$*#<9(%b$e zAwld#e}F$qJTn^_MA6>tdC$!Gc;;n){JgvZ@B)n@a)jMj_x-qcCd2ex_I!~H{Zvco zx1&hvqk%}0ZhR_>a0n}BVl4cDi2DAqZ6G+27)rvO&iv{m)hg<@2&H(GO5L>uC1u8C zdO?JtOcDaMIeDofmA)bzHvXJ(laqEcV2mSXEF+I)7Zt1!@{MLt0)x3IV8N)nE{d6| zxme89nu`+3gyoKkWOp>|N&Qyz2KGU5C{C;hA#d#`gN%UZLSeqo!o8-MAs zm4QlB8tYaws9*zIMQjq*|6S{18!khSO*-F6$c1CV#{V`E$|vzihw`;DkE;Go{oELg zO*SXbKZ(PU{bNPOJsTHik)7k1V^x96-&>qra9-ee-}{CoZ-0v0-qR_n-m@uIy;Wz5 z`d8a?&(zpCZ+OQ$p7kC}_<$-t^4%xC0}irDcz}n1RfdGDGAuc(3{BoD!((_KVSPq( w%pInxzVA(#WWpd5=9r-V9gho`qm*q~h#F4q>RQ%zy}FJa?D9~;6Wg=*3zpQd&;S4c literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/InsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/InsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..0eb12d987fa6c3afc7fdd84f07e5663f375b00b6 GIT binary patch literal 994 zcwUW?+iuf95QhJ?6T5XBdI+SD0wtx81Em3OQ&oZ@q(~tMQbmGFm279#x=P~6-Ujua z7vYK8j3hzLf-MFExf~X~XJ+rgl|IhCJ{Qd0^zBEeAjN6|w!5~1UX<6?$nt$*JLaNG__&(;Ia>9m~C zmvNkAKD{*pZgcTy|5@KtE|-XL4u95T-VeFw2;L?Gfm&=qN19xS9Y12opMzpJp2zz_ zs*b6C%EeC5ZuyZfg0Na@$?mV)m_sIo8(1`vAA3fpmf5%|w`g)8L#fQ5bqC|!oz`P8 zX=66_`&=CXZIsmv_Ck+8@#XHNkK0(;bp{Ud;nNP5C-@#ty4q!LmfaNH0`1a`6M=I4YP2Vgn1eOVMmri>H^EBQ@0W*}f z<#nLUEHV^b!9`r6RawYKir%A0iW*Yp!G{skP}%B;Av1G|!Q_pKEw53vCg;lY2e|y# zk)^WF$=3@-$PTMWKc|$3EV^6d>}t$fk6EcZCA=WBsaitskw>-L<%Q(-suLib`Osl*-;uvV%t4%#w^-{7>Ep zinJH~0sT>>XJ*4zin14(ocEkF&-n=X{paT|09#mhVKKas*;!LY7a~^QMbzYZx2ZBA znqjKKG*6FZN4T&V-aV7I7v(DB@i3Xel|7O1w8Owc24^Qp6Sd1QRtv*=o59|vEDt4A ze7Nw*Q6qmD43j>_;4lQOBo)V3-AH7oJh~+0bW6tkvdyzZ>%wWP^CV|jZ;hT{oBEKw z*tA#9g*q{|t~u{xM%Q$B9E+YJTUBM!jTvQoWMkM=qjd2FQ zuVv8@gVpUbtc@&0yF3%>^twlFmuhv|ruR)=WwAI+^a7?HO}Kf%`y6XDQHee-tzNH^ zESoGB<8+oueT8M>l}7aeUSsJV6SpKS1awZC&l+=Fm34q z7TL4#3;Zr=i{4J7dXKq(WY2i_=*DM5ogZWksZK#rz(XNsH*TnCt6q3LXXorUGb{V|pP#<~Ji(3&i?EfXhpi+$mXZ1-!c@~di)h4XhJD1uT zeL~?CGdgk zgq;hjof}v;n2aMc4Rr{`OsYMjb>W*nuHiacL=?%fB5c<$fWDLJC^_iIS*((jM=7C- zbr*LC8&{Zp+{GfHJk|2FErKYx-FqLCNgB!5vA%|tvvWQ^ z7E^&5&t&r_!L#Zc<*2}si$z|Gtlq;i`BJm`9bWU{3CdqtS_pVuGO6c$uni9{u*~Y- z%#IbT0w&`7VwjF}0gK}s@N;~dwZ(6zSv^7JAK5dzyL{rUp;l(DIn~Ljgj-n4S#P+q zb_EZb-%#PF`~$ab{15GM+k0oA!5kW3gWK288a8w2BclO(+4(XDIcDpFf%vm@4&i^w HxVHZScz&$b literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LabelNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LabelNode.class new file mode 100644 index 0000000000000000000000000000000000000000..2b375e49ea1e11908f7d2c0ba31193449f135585 GIT binary patch literal 736 zcwU8(+e*Vg5QhIrYolqbTF+-If<35J@JiD%*_7t%^@G3Z|?whuwud>tOVgzIdE&zQ+LuWi|D4TLMh9RaAo~0xRfT6 zg!MkELpM^P@KmJ{HDWPgpdKd@W}Uw&nz=_v?fVU19S|1seN}}jA$i0|3kjrcn6NpJ zuN107AY^O|AVnB){DwSh-ncTn5N@68XPv+k^{NQ{*zW|B>e`P8t39gy9yV@Hc%Hmf zgtcDHol12bTvq+aS3$^4rZI&X6Vrs{f5bLsF-WjlvFo&#WOyw??%y&5^Gd3V`&%9* zkuOx3avn58Paga6beV4ZTQ$)V$nk;_{ELYXZ;7o0TP6ni9%AnV1|J|@G+tm8OV1d7 zWY@q5-x-}+;=~PD*u*G%Q*AlMkOj0AV`Ka{COXigZ)mCbgyC0A8u)=)`e~cLJAHt2 inAgAsEOvmK+UMR!&4(^1r9-PXo^`_%|C~4W=B7Neg6UAHMVV7gqLwL@?!s72I^A!o=7L2N~H99 z!=M|bQ9m9^8+pR3|Kxq}QaS|y>l@W-dIE<@7RB{)H-wK)mfMl zc6*DTr{@wuATN08-Npk2pQSpBhl4N;Rh;mc4p#BZ##6%9f@BxZQ6#uCEwh#cYceD3 zENn!uM^c?$UFe-Qnq5NqB%UUL{1oaJR_{GwUoR6oyrvxgTH?dIVk^g%jUwMAR!6Y- z0B);V`-*a_{RK-mtSv0_T`{$9xb7_+9H7c-b)JvMr~$^(T+M%im5h3rQJr?{7E9ky yx9}HQHlYrG-`@i|cR&X(ux5bk*vNo;M)UC1;`JSw_Sj9P>N~=-MBu7=(2R#ow?o(- zAvZ-l6KaKCJKSF`uC&r(w@yXA{8L7t_bdu0HrntK0TH(^A7Z|17Gbek` zn0bnTS&kXRIhHvd@mK{@IL0h@*85|a!#ogWN`|6L2`QNcEDmJO7_F(h-BOPwdYE~| dQVc^GJ-R+)`tyi>z7PLKzlJ=M5euuC!WYYyns@*J literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LocalVariableNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LocalVariableNode.class new file mode 100644 index 0000000000000000000000000000000000000000..7da757ccf66abfaf991948529f9592c970dc3d7d GIT binary patch literal 1021 zcwUW?&2G~`6ot=?@KrpM*kN5~r=jx`+)DqEaY}qI6lt_9&eywvp`w9*HfI zEd&c5fQLfd8AlY9RAu9PX6Bx`pO5|X*Y_U)p20CuV(3Nj*ooXr;iVsi>+mFS(pU&* z72%vVWm*_E!0p~>Y;^3p}H0<++t`BWhhRj zfh*#7Dq9uZ-&xN$jr2k$4E7Sf<==;Lt8&j1A1K_N-V)mzkzPdpNG39k;-mhkfv4!3 z=n>it%@%AliF2lw{|sg*1v7^28^XTucf-2MBS*1$(l42@d zU03FnlGU{_uaqj)5~)=*>A6O$&$KqF?%7|lZVz(Yw)bh3AZtBcVc9jun`g>RXEziWvToQrcBvJ)UdeL9h>?CzrZCoj(QUfXg1~vB=RsAo z+B24`u+0(yC7~d#BZ(7q7-p_A2!UZ8edyP4QsCqfhQ%PTcO{S{Mv#_y&+E`IAXle! z3}QgTX%@#7p55Fina#-AaDpVVNT)E42@Nj_r2kJ#$4i(LQ0zuSAY)iZ&t zyo|FNra6;ia6%og;2h^+hw?0evqrVc3CAa?Atx|;6i}3hHX4hb zN3jg6TP~3aoUq)cv)bCKIl(o%=277h%dgvB#SUD#?>N$r*!1hmMH#S<{Ps@27p!iTUl zd?YaO401YFkRt9KxjjBr4s>frVDgz0B1qD|w!6*2B-i~`P^{!4@j?Qh-Bv|LEgXFR_+jw@Mwv2J z`~_3@VYHEF_$M|_V3yxm0s<^TT_LPh(pbYBKIYx{1ea09r?g-5TSo;EK1Ye!Zyo~2 ztNh1Aypn`PywdPGPnN4eyg|yBFva}0pfWy(w>#wTbFb2tCHOYZ3;dQ`Q5N=)EsRUo zcpDcJ%*x)y<+a<27?)HYNg8qT?^s%mIkjYfp7}3C?J~!=^|p*(*b-AD^^89EcOQ O&=13%7J{v1R{0;tIt8FF3I+SpW4yl2THT2<0%`%vzzt9pQ6#zf{fjAqx*xB!}mhbWAWTozXUg zmzA$^oR_{XFiiC6n5ztc;i7>U;yPv+#=|HA!1WxD`!RB>zNJ@ zcjBh|=C!sUj`?iAWPg1RVpunjP_pDhVVM2r5r%|nvgMN1&`ZpdQ;)e7o{;R zL)=mN2Slk-&NO4vzp4pUHJZ`eqj8W{SE(|pvHS^)_cV!Mn8qYk;2weRBSkZ#1HuT- zDXLM71q7c6qfsrNVtlu7g30pC8!YBOVCoxE`BO~qYA2Zeh$*?X`Wf>PJbsG|t(JQM z%W^9KtiJ0iSthZ-6B>6hgetwUr9qbiJNR5d!JWL*m4CFbx-37G8AbOoewB}n*M ZH}QfBkbWUuTx}fxmNe@oy`fOoe*%qK4(0#= literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..900d812b12ce71684303b01d376d928f13d9a978 GIT binary patch literal 1000 zcwUW?+iuf95QhIv96NDMLmOx)DU_C$I&Q&2;tEhDgoG54CKs)uB7s!fS*5NLJF>Sa zyc0J_L!l-C zB%Hf@TpY*!R+L7axX%q}3|s$^KJ!zNc!BsSW+=sH5ldQo$J%T-_ye5jcVxfY03fQe?uL6dv7D~{iwP?Y} ztZNp^&>5=jFyfulk_Pq3VwDXPx>DHfb%ZHn3lx+&ngyjQB1w72Q)9;)b2yi0N5QAR)= zHvnbPSc#v#(up7~Sw&GYx15Pfb!mu!|KO=N$RyfJQ+^uD%rGpQBbkM}#1k(h>J$8#RMI?WXtnN;fn^^B+zQ~KLaDYxRAZ^cK|UXg^erDJf}tMk2~S2mmDaxu7Ohl< z?Zpp=J(5}uxzg%%uJerAV?%}lpH3Op+OeBN!qqH#?P&U)!xHY|zK44Zn+xd!JV29S zg)5~EH&Uw?;vLTuV})PiwhccDu!aVy&CDK8{vrJI8 z)t73L=uE2FFJypiJYi^@$V{5O>jGNs&OhdJ1svHro%XRy8!6B~VzruG3t3BaJlv#s ziL3$nHec@UoWt)nFA#impeo(I12Zc8f*M&3=a;d9I^e8T+@=__ZC?`ZlW$R#?iqaI tywlyez{3xJaegHM-~QmN{N}7+9Ze^C!_{o!v8$q~x_lj5bQful;ZLJXxk~^5 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode.class new file mode 100644 index 0000000000000000000000000000000000000000..d0f996e06801ab93a46ba8f8c2a99f149046c926 GIT binary patch literal 8683 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..eff4e980c1d586c317d8084f81432f3620ee273f GIT binary patch literal 828 zcwUuK&rcIU7=2&2cImQGTD7R4SS6t?fsN-PNik}glwKe`d70f#%8+)K%uY-ApS+kr zh#tIo@sBcov#oFdL%hsD=d@u9s_xB$F-eSW=jDUZ^B*JaFg034<}a9#AILN!RJtc(DuR)ShryxIDjv3M zPmNOobqIxB6)UqxsMc>IJB>br-!q>F2M>J|vBZTs*NY%5`*?tYjVeA|ED%av70cda z97=s8!jZK4NhC&np_R?&#k@IItRHm$%K(0OK}3-}HH3}&9kU1094CXmN|i};tI=P? zbF8^oC9K~A_VEH9VP$I5+vxmneVDrXSfJ@_e>< zeiuI8p^QB|=E|$tB%YuOWRX>(EV5cwdj(JDN}m{=5Z$q)W0<9pf(5x4N6=Y7sO@8x+fr@wxG`3~S39t(&uD6Y4qx`iFn2=>i_s{181 z@Jv%((+jq_x^D%>cFysg6}M;#NHC1o(a#qAz|)Q3uQEftWH}5h$C3VqAyIs72Mj&h z{~k2GVA>gmb2bM)Lz}jvmvwb7uxwSc{D9xhTaFbhFwDxiTwNcVb#GF6qOeHJM8wf1 zK|(tn$hlO$5eye3G~gUZof3oyU6gPhjRJb;`h-r_^YjDGNkljLxSxK?P>$SOmLQ@@ z#2|(R3{f7Z?0gAVFha@bK6k+|DsM)q+Pbr)J_&heQm3;QFvieva=7T)HYr-J(*zlc zfD}W^zcvykkmiAk#jI^p*=4PkeJ1ssp;faSb7ikoFukzt3`xy3bUUwm7T;G76T!Ac zy-C+7alMhDzV+5`38!Zm<}TG?M6RK=YzEtIF>m=+;Cj?Rp6pEtw=hFweCw?l7Ct9n zj+#{`2)D^dn8zIkA#lSkFvvB_UgN9@caarvk73{peiH7ZnYvWw+f$`rh?U9=Luckl z9JkD1?O>Nu6Ib0m&oGxPUi%omCZW*P4)Oz#> DOUysl literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TryCatchBlockNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/TryCatchBlockNode.class new file mode 100644 index 0000000000000000000000000000000000000000..ba882b3667c0f9f14fb96f1d109d3eaf9e38d5c2 GIT binary patch literal 904 zcwU{7U2hUW6o%h{rQ5>VZ$bR3^pkGYjY;n`Uf9IM1dB?;jb3zinZUHmZZk|Vz4I@b zK#X4a1Nx(yo*9UZ0n@}A&U<#w$8+9rdG+fzfETE`$S_n>)eh3|L`3?l2m{{h23iRb z9I1-~uA|PIIE_vZ)0S}IFf5+%J`ZA^w1c|sVaW9~R}{;&$w@UHiuff%RwOM3x5JZG zEEI#IFU|zRa_weZLo1oIsdna-Or(Cza9sW8#Q%7h*tFXujsrR@k1Q5E6tGC3)!pVC zh|EI{Ge)g?a7U`>VRoeMd6+|*h2U-V5DHTTR)MI#qN@0Z*{*qQbCtOR0gT(GTlBy<<@l! z`9^xKBJoz5>xvWj&yClpkWpFsqd64GOH#}@Y2)lTl8Y2Gqzdrp_YP&>D9=&6@BhHO zzc<8^|8$5I|Je|C{jxJe>AUSIn;JXk9qp*otPhySN37rzy*20!*dI;813Uz*G9=6@ z!;-Pe&}6MLJcjoX9*=42)M2Vhd;Wk(1_Ux7jsZ$Pv6jOPO5T=zMiF1^>f)&F&*~C3 Mu|-1}wr$VOHQ?3CDgXcg literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/TypeInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/TypeInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..577ff0aaa8ded8b14816cf21c113715740a7b06a GIT binary patch literal 858 zcwUW@+iuf95QhJ8g55YyONvN>6grZ7_qoq)UTIJq$R_RuW9ogF;-iaF| zDg+li01t(j-MFFRpmO2${B!tbW@Uf>@%0;k2iSCA5$ zQb!9n9o!(SpOft27M2K&nU<$x5v<9K&_1^l!5IltMyPbUJiWW09p{O7A@wz^oZa)j zzH+pArwV@qysN%ZwyJD7SmLwB>Mbl2ulHJ?;r6yq(D=yGg3sr&2|eV(M{u!&i>z+X z)3Jh8z*u}=4AYiwV6lA}UWwmjZSmXgwNB9dMRtw%8CN_v)aE>ELA6UN;VQ0`te4zb zXZiPfpU~u|@dei__#OI+#}3ax{RPy=I*+fRZQLoL+eS0N{;=TK#?vy;5QWb;iA@}XDHK`=lwYYyS~co*C=x;fqNX5Jl>4<=fukgj>?Nr0)SF60 zh+gyo`cPG8Hzq|0lnbxt%+7u@do2I?`|CG=kJxr#5jNxGq8t3=9r zTO`eX+CPrZrGq@-?K5?IL8=lFs{3L>ZYUB0H3{}k)Q{9Ip-^cyt8GGlpDSGCQ1alw z<3xq?MG$5@6krqlR@9frSG_*yR;ui#`!&8wLU|Br17;uG@Iyxo1vdCbIsUM0y|$90JVy?u zcrCIzg=O|jwel_8+R6>4f3URR^EzX;8hmgEEj71%9UQu$04N=w}|g o^#JORp+4SV%|O?UFBL7Y3uj#!ZPxqHvyU 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 Iato^bKbIIFLjV8( literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/AnalyzerException.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/AnalyzerException.class new file mode 100644 index 0000000000000000000000000000000000000000..1c0e6b13668d029c963711555d4d4eea9b17dcf3 GIT binary patch literal 1243 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 N4b*D9S4;`-{TodWySM-V literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicValue.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicValue.class new file mode 100644 index 0000000000000000000000000000000000000000..303e15543d693ef77acb759ebd0549a7d366e3fd GIT binary patch literal 1962 zcwUWETT@$A6#jOTkdwpa(gcu;ZEX?Ar6tnRiw0-|Ih1Ic(A*TN;z@c6r;{c%In=37 z{t9P&(iiDVAFyic=!~N;I^&OWTzl`6%g{2F3|V`vz1FwZ`qtX{=igs{2e5!0KTa@2 z8_nH#qjKM>I$v0oxY>FTcbb+JH|u8Yam#MSSIw4PEt|D{%MUNZ@O|@<8Lyf3-FQw$ z`O(KP^Ewm>zz`~B)7f+}oy?@Sjnqy#nJF0zbD94Yo?r;1v&D8)|9U2u>}Yx>m%Z6m zcq&&~%@}QUC~vGAc_X{lv4rwQv6RmyQ>naBD739!=kY@-a{LwL6zPWYYfIIdUALVT z22VIrrjWJ9T}ubUD90GyVCY+N@2A4Y!9>ad3Yg&VLknOEr~G)6VeHl39H%i%iACeZ ztxZFOzQqwxq31ZJ#kH=uXgkbs=*nS^BP<*OlAiW`l%rqWpXazB?)zQF+8%KZ4o$-X zLojo6R%$*9l#qmBqVDLRs z4@28CTYGAkrf{1hClEEKp=e|np*mk8S3`+`&1?9OL{h^RiM#-~!|^c+31Sd>Y?_q1EBjr^T{+;&K`Bp& zVUX15a}q&93z7CU;flZQ-@vxm3yl1TadCWxNvWJs%2}zrt&~}*M3fSf%Dhm5@BD&` zQoYheyY_?3{T_XvlXb+X&I=ev95eJ&cM+Fx9hZ^CRcs-Gg!BegM{m}xah)u}rbl03 zDH{73D_zV%S$_gvED;~eGJZ^X;|7wlH(hp46QF0Y>SD&F4)~%!Vdby`*C&lPBn(#$ zE)2sOQf_dHyv5z52qr$h$ACJ;4&e7af!F)=2x6)Sak7JGP-_aYgZ3d!+-~%wnC_&YRd!Q+<+8XKiyjD|*q>nEU{0X_jgzrI zz~o7$5JuPX9GTvnrzsn7i)hKxDMvMIVidP2V}WK_?%{v2!~Y`rE=ay}9SWCS{zEFi z-}8jVE7NTrTW1&uCc}l3D_FV2}qt7sYfWBbykWSacsVq)c#Ob3$g}&XLwQ6OD fzCWWCG3ilMFoG&Q(z|qbuP5tlC+jCN`qTdaQjK*l literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicVerifier.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/BasicVerifier.class new file mode 100644 index 0000000000000000000000000000000000000000..6adddec004ac69386fe2b2732e7180adb2fda238 GIT binary patch literal 7836 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 E03iG+vH$=8 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowValue.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowValue.class new file mode 100644 index 0000000000000000000000000000000000000000..41bb76b983ee622d594a5b5b65df8438966a9126 GIT binary patch literal 1356 zcwUWE+fEZv6kWTwp~K)n5l~S9Ez%B!QNc@sF(F*Ev7n~d1YXQ(9bm}N#?BO?f8v`T zz>7vg)WrDgM;Z4yoeWn44|8s__gZVOeP;gr{qYOHJv`PBBTO`!8+N0*<*r)mp- z+YXwJV~e`*KKQP0&x=5;dyU*{7U*T!4@yE0NE)*{=#Ai+J+O9RjXMFH#_CLZwZfG=sSZy zzt)Kf*cv7YUB_%TU}2oE%1-Jg2R}uefx8%U^gC!vK%EdNIez z^SHvR{&pa);u@e<5||X+UAtPWxRPvS2%;_1&<}BS;8eOAE7ZL8Z)9Xl}(Z+ zhkQt5t15w{^$kON5qL@+zE*%nJ0Juk+1)UCJ=B;T{|#D_2nBvVqmP$aUS_|e5W^=V z6MOMP?6&!D7_o9ha5fU0#a;f_$qoyhe*D(cZc DceDti literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Frame.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Frame.class new file mode 100644 index 0000000000000000000000000000000000000000..297cfd5044539cf7aca7ac8f6636659110736104 GIT binary patch literal 10023 zcwWU>34B!LwLj;(`(+4W2@(hpwLmf<#DrB=Ba1{r0t6BgmSi$>2_uu4FiS$PibVv) z_Th#LE`%zkg4PWJDJ|eq@%gM(+bUFj^|??~Y=1s&?dy9=&v)<4WHOT>!>{)D^81}T z=YIEm=lsv|t$F3!pB)8&Lin=+3}KYd-%#MIzs7I|Ta5YwN1(AF=r@c4hu7h04Y&gZ z^ZbrRLje&X{TfHJqrl_vHWZYb9T4PZhbLqN5OP+O_NJ(ki%z3H9-q_Up*~oGAOw9) z)HL1gbq8l6NI4}Xxs?dwY@f@}L4Y(H=+KYka&jvb=$`^!(~JfP18pFI%()C3D4-(r zD|LH~vQT5a;a}>g_ZSERN;#HFhu_WL!;NBat()MD>D41MG~|)uEe*RQdnKtN@y?DqMjuwioXLTr%767>$OPYDsr`42M5lph6QLc)2;LCP9U{ z2%~2^yk1{0oBC$^nhd|g>&o`6S;Ng5jZMK;%i=hy-lkAsZAzmc5*!t%KC(-^fzX;Y zZl{|7XE!=FxEn)_VK)L40Me`&8w_VCNU^9+s=T;95cE5oLDJ?eqlsi%uP92qLBrqV zH|RNyPc#b=3VZ8Q%$bdbKU#4*l*3{L7Eyjv1ZIOJkZ%o?@+K!W^ns;7=9f`n^=3W> zvJI+WIn|2SXesAe;b0J!q#mDCi-1p1H8z+BS1GU(;gTf1Xg-ao)?fv!wm~hQ4+I)# zT!X^~a>9iD3yKrJQD-GHFfAIBEJw18*FeT%;xyqHn;|8u=J~Udma8*gl*qB z!W6|W#1WdyFNdjpART-*XyTQo@cDxV5_gWuCIB=os8lwU*1S~QlUGYyn^HH+6*t?U z1vb#qLZulOwiEwfVM|dgRX0`GNSlWekH=`B^&=E8Xd293RK7@uQkbN|b+r3P{8*&I zro>)zmMv1@2ejZMw%0B%RN=-XpGezHiDu{%eb|ODxQ7p>zFU%gqkgw0Dy*m~Uc{67 zBOCl1AF64gZYfpZHd>C81g*sFb#_ezJ7Bc}cajBjT@3}@o`Pb&$0()MN{2fjO@X_U z@9!2G!L>eDm$sd7uMO^lU9{G?jDVAGY`x`=h zndHs1U&-%j`R{3uYmSaS@MCyHfrlwPUCwd8Y_Jy|rJ2v+auJA}9yU#U|Mvj=#0HPS zKAH##$r2+N@_V^nTH$+wkqm`KiXOMY6Yx`7QYydzMP0IcOz{FI}wI<#b`;$ z8+11sF}uJcl$1zK`^-gFhr=+*++hdE(WGb-{6y&E?pkySdar)QZYv^(rNRhP6k*0k z7}~I=#|M)(jUH>ODK#4Y2C9jw-Zxd&R=-!VZo8fu6<(oGmUx}M#wIEP+7E|!UTY0^ z!`fhgSIet5I03&xXz3lpzhvH}D6HYW(MslAOZnzQ6>Er^&9Ty(5-Tn%YI1A%+48qG z_#M1O!8g{2%tJ~>59gd*(k@%OYXr7}-qfJa8i@#lX#1QnJ{5SE#(I47m9(!lX#4XH zr18feZ16t(7gycXWO!Y1BRyg}LAj-68rSe4*YFX-u$3KCh7eE>N1#SDqcp0 zD@l2kX>737Ich8uE+wK+@dJF=#By?)OJ#BGf<5v$dKkXPjoJ@_-TqXZl{&KGAmH^e zR8&sv55aP27}v80 z`W}J8>H*^q!Ng-6^su6Mq|Fr47DC&aBpy@D;3MCJCKz*t6FoGEv9T5L>E24(wh?~| zY2F@_?x9hOL&Fw1Hw~tn>7LPJl;IpE@xjS_Uq1sKr z+6erQV?s3|3VcK~RK@0a;C3dM@Clz?pepGKhHmzKj8N{2!7N8H)6pdXbG69>jNy=X zg(1(0K(<#?tLUoX#n>bGXKBbDfd0@CV{lB=Ae{yi4En=$U&IZXO3kv5L~DLG(=}pU z#B^Rl){m3j=V5S30_e&ctvKedGM~L>7WZqDM!+8KZT|bMQt68=(2rg2Yn@2 ze;kI#FMuVMKPK=|s!A z6VI3SBGH>M^bygQ7U@!$cy1|Y`a(|a$|U>PyiTZKH1@08l^lAr=N*R?2VhkP)OA9= zV14Lk?|?N^MgA-!nfy$#6V{66H~CBIL+z$;S-A5g)t;f|cYr6q6KD@E(bPx{V%=Em zg!SB*CqsQm?&NJQGBj1o)LxSJWolt*d3T(2yZj>)ffR$ogpnzALP&zDcG+Wru=>{? zfzs*$t%u;+W6@@@O`hNNvRj^J%6vZ}QMuUi4_6vvDHu)uUJaK%G?yu3^(y_j*m_RMhvcs zq*{`z7mp^5toX2Lc}t?@hIq?6;v;hXd7-2b9&vQMjl9$x5 z8{|wmA~Ep1Zpattld$BUjf#-|FR4Y=nObbw?PhFmj>I-R{*#Zo?cq_EOkZ*G*^G^{ zN2aqMhNTB4m&UJYzT0sCZa3#U>X@OL)27+g(~c+OmElY0QMNBexT+oRj}h&Xqz{|h zag#k}+Q#+m=e_$ZDSpT!B{F`OtqkCVj{ zI7NH|FBjj&sp1DXO+16s#V>J&cn)VuHk>78;uX>;ES7R`jx+)1O2s%&T8LLki|}fx z21}({TqwD*O!8s5v=J9c+iS@O7h&A^`Bl7LK82g)kMRcizwrn1Iozz+ z@J3|_Zc&EeHYEpdRwm#rN-=I%%J5dD27jom!rK%l-mZA@4kd_pDx2^w3WB zd+{FSX}niCfcGoM@d4#m_@HtMA5z}MJ<4f(SUHQ2C|}@SRmMlvbo_}r93NA2ai2OC zkEum?T%C;1sdMppbv~X@tMFyD27jm4;ajSKZ>s@3sW#*9)lK-0dI!F%?!>d|Blx-6 zj$f)z;8*H1_!sp!{#AVezfpgU->PpiMLo$>^*yGkXPB;j#%$`JSep7jte^UStiO7W zWomucP%VvRY5mysX=I%!;(l^t+u+(C%UrwKg_c+s~$GhuKu^mu$NBGMlOWhRxF6Vzaf6*&OW*o2Pxn zuF}3{SL-rcplhs5&tT>H5Vlyqm@U!sS%rQ%{T8!jdKs(K7qe=86|2$f*h>8xwwfRN z@B@CZ)7M3geZ>6&j`E`@amVPG$Y=!dqvCWBX#CWKxi28y;>2P)%UfIs7KXVKbnZ7f zsTM+E?i4(2aa2837N>kcM@*AbCr50kMwELd%DqPiW|PwvL^vATgW-ANMByxCSe$q* z9hoieZD_SP$p=@2xmW0nZ*iZ%YKxN>!i+Gto4htT#R)ftxwDbJYEi_RS{LP>h;k=k zpv7tPBAjsAJX}u)NjyVZOiubcMabmjr{D>TQ-YDN@^cj37m1U#dRRjT{a=EjUrgCC zIbjDZ=Kt;mRoz5(O-?upBjF|Lp=s-275}ddaRJIIzxB{{dxWEGo`9F*kMQsZ;`z;C zEx%0Qw`P%b{NMRHF3c1riS00PEWc045R3AxpHBD>0r(Ci+`JdkEiO~47%tv0bBl-> zBENIsO6&HVdtrFjm5`mF0P{c})(9EQ2N$s>7|zzic;<&$ECBOa5K5_S6>BkXBxYLh zqBjz?@S1r?$2qe!Noqd)8eRthhQe&qSrNvQ%o{wQrrU3Vb?vjCzR)=gio<>tj?ECq z?=o+0V!Z2s-|T{cR$I8KLhSNs&$(A)+!+B1v0H$#n?Pk-;Zn8@3fax%&Q0Xbt)>eT zETd5uilZ(R!`pC@G%=VJc0q!vVHc2JEr)@>NbmfzXyp-jhZfZLN`)EiFgTB6%p$!1 znV#JNA5?8&m}Mb6lV`PXu@RP-b^Fu-A9uhXyNTQPoO_>k4WD*hOpOMO*t^J|ozR!v zP3hSQIqY62VE4fUwu{npA5^giOyBJ0MbgT!Zz?Q>&)_WZn_%nSjX@#ln-abs{@k?j Gr+)y}Ly39- literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/IntMap.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/IntMap.class new file mode 100644 index 0000000000000000000000000000000000000000..467749a1f6a973bb045876ddb3f33a025cb92850 GIT binary patch literal 1230 zcwUWCU2hUW6g>kAv=oJc+tvb#{Sv5UYi&_WTVv5G3ATwfBu!)D0#n#ZcQ>%q)(8D7 zJ{W!R#l+gg?>7@4{U`nb@y>#+Y5QPccJ9pFd+s^+-XFg|d;xG73m!Na#*BJJF^ZeK zWIf?UMQv;;R-JQ2)z#W=Lu)8G-MXim9!LyDjSPuI@Qa*Q^DKiRTgp+OkHOd*OuNhaLnNobg1V8w^1oTyP8P zj1L}k39HYCZg?5|c}?fb&8;G@KTwM`ViC+6CAC&i>zX)sE+wm~QQmm||AZ1(XN8k8 zIeuJ6A}2_m^Wi*V3|&>VQ5DQ>zB%XfR;%T~FvH+s;Qgj2A%-D!|F@l6BPVxw|Hb5p(5FVF&m_Ul^ ztC}X)%M24Ii8vPBNuLoAlRg@aDH3NH?MEto{CEiY4k1Cpsp+EdC$yaDw5qf;axjU`-MW_qwgs? zJ*0aF?PrtwIGqgdp*I=+4Cfv~$?zxd9^|)nXg_`X2oO{^2`Pe7(2Ge7P!R^~Hyeb0 zgMe*`_KN}(ZHni_xA`bnlNOQ|;p{KkkCFikmT;71xkT!oBlh~heiF^deH zmoRVhoo+KZ;JZvWGsM${97Vbb(T^MC@1}AEF-ItF(#;5Iwxi}Hy$Fo7P_xic6E%gF z9-&2;9k$jdr)tGoX&P9HE%cNhyR VV>5P9FVZ&S0M+6z<2gIi{2zV1^Ns)j literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Interpreter.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Interpreter.class new file mode 100644 index 0000000000000000000000000000000000000000..a1afe42a0126854b17d55e31eae41e09ea86f83b GIT binary patch literal 1312 zcwWVn%}T>S6ot=d+tk{h_^)rE2o7C$)rCT#SWt04i9<i1EIuaa<_^``t`qDJ8p9i*RqlYDhmoOosd-ij56_Zkn7Gp=tyK>nN_e87@`SPz)Ilb;CCdt(bemkS1Cd cX)llte2Z*h+af#Iwa6a!%^SgiS=Vs*0q@|ZNB{r; literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.class new file mode 100644 index 0000000000000000000000000000000000000000..e7e8f053346cce1fe2e461d3654c16b8b045f097 GIT binary patch literal 4833 zcwVhnZE#dq8GcT7!zRlGLQ+B!NJ*-YZ%T2g+vm5U2 z5<-=>LO-xAwXL;6YoWA4DM7as5-4grIs-Fx)IW~n==j60A38efSoMda^*QI>+$_lg zVa6Yu^WJ;jkLP{P`@Z+&ga5w!Jpe24jt>O_%aT@qB-y*eh^2>&-bgex5J_8x5s4;Co}{^kHCyO%!HZV zAm9ls?H2GhB)1uU&{%_pxdN*KS3`5P_dU|joE9@-v}Fc*4XZ2K8)vZ6mSij%?~Yog ze0E-X)7woVU7p9+wOC#!5zdzgD+D&)Fv7{a5V0Q~R7r=kis^cxhC~5LCx8oB6zJ4R!rF>Qe^3kOt`>_V=d|1nR&#$534y+fLMQ0n0RLn95(@FN$ zO?0V_J04B+M>^A%ndo0vggaUJEs0D#PRI3V@Zm0&{A4{18$k+Z7&|l3ILmZiAjeg^ zLZDJvgS$0+3e9#Zok=UL+KJDFyKH6z-^}4&W84^Et2%sbnl@k4)D!SG?v5FQX)~Ef z`LIb~#q|v9rLf1aTsz4}hlWmc2^6O?y(vY7Oujh}lQQ{kd5-r9gaT9duW_CNONzh= zG`B68u8AgUqOy`|WO4b?j;*p5KR1clzbm?D@0v(@+} zni|8hl9nHR*vd&{>>i{;V;fs?T(o&895AeYu0#KC2BxX!$Dr)4omX_1-8z!OlpLk$ zYfc1Sk{R0x8@xu?i8Pfm8Q71(pNn918$O`eIx*l|+~X5x8#)rS{YU{`({HN1$g5hF2883E1&l(t{ja7fNS zZ_3r_JgK>2$DGxL>7~$uAk`0GaQ!;1F;ux2s$2|JiZqXsBpOK)Z&nVP zUhc@f3OzW6#jT+;s5=hrA_80Z9BvI|T`Z+4-$8oaNy;shBdsvh*!C`l3M^L`X3$~< zLbUecR;+a54f9#**9G54U=*ubLzl2HG>X-w8%FWT!H<#8H$< zX|;D0_nyb*QG6!rB0Yq{VD=)~x0G%f!)M=fVJ=Yxx{qP^6Xs(C^EjD$0ylGAj3>#+ z0dnzl4&?PN$;wjhB^j zrfppNqu=UbS#xJFoDEL&VGrvG$TG#ZQGzp^1@E95XAuE$V~m7eKo{QSr1}mg$9G}i zJtXlyyY~BRnIEuSK41<05YOO8Jc1vS`k#>4pW+05mP77Im)w)8i-nTDpvW!3ORA+j zjD3*)B)J9h?&9?LRzAteQ=^~7f=eh1%5@Zb4{94{pA$bOHgmfIKblE7;p{oG^oDkm0G zK0HD02F&5#Kd@l_$V2)Q7UIvGj(_1b;IC-J-}p`ZJ7?mD{4eJp{2cs~ee*B&$%ojB zfAeGYpPZsN=rVH9VFXSA6krpUv6NmVbG;mVD^yW<-1s;8Ve8xA@xQ%YfVNu*@i zD2|-R>sdaYkZY?P9!%mbH9lkw%qQ`uIPe##)lRBh0ulu%79LcHLez*Es1?3z9$zhi OeVd(AK-vDrp7|eUs(b1H literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SmallSet.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/SmallSet.class new file mode 100644 index 0000000000000000000000000000000000000000..be09934203c7585ee739f9608fe953320971d8d4 GIT binary patch literal 1641 zcwUWDS#J|p7(F+(H?E2ln4XpB}U9Xp&FpZ?b_=de@Tg}j|TR&8S(6_6h z4)rRGbV75XXL#{`dlWg?whUF z-G&=pR!HOv%L>V#yqc4N!f+M`F{02r8^=%P_qX5gDJ=K1cr1$y1{8)$Zo^q&v$9%3eD&NMKUB4NB>kS)|b?)}bu=(ML+*x*L$H+g4*DUnuQYiN{F> z?mb5zWlkZzZU+m_olx&r8EojySgZI$9Tn?(eP`3#qLFGgT(6;UDgXImc2kml8m7X* zj_-yYtka)?f$!wB(`1yND=drSRF?OMb4=K^8ZXBul$HZ1s-SrM(b7It9w1Zpnts)} z=8DXNEn3r(iX)UW!GDTxh`x}gU$2ugDz1I}WiiOC1NvGgbDlG4vFpPw42u zINuqrz$q3On9yE%cwyr56?&xAkg5}Oo^ zH%KS8$(&F$liNt99({y&r3-JejrT2%#(3vqyaB;`ja2ec;$w&#T@V9ph+{Y&Lo6{{ zR2>tDk|AtFMMV|O&ha7{OC0PxN4LQJqQ;$wYGd3K#XF&8P zu4)ZdQN+)f#xI=cuQ-q2aTzwJU&VFQD7QoJ9|*CAEo|T~H1Ib({DT1Z>D@*Xj~Us; m9sGy8c!PU*i$A;W`CePyJ$?rR)b~EWg|qA?_xyX!=KOnd{4p*7 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Subroutine.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Subroutine.class new file mode 100644 index 0000000000000000000000000000000000000000..3767ead89dd11dddc0037e01aabd8892a8610dbf GIT binary patch literal 1836 zcwUuMT~kw66kR8|5QrCp*eGaJY^CG_h!ktBU=$EEHiaS#7M!Vbb2$Uo=7YKS#v1$B zPMzfaqzVxA;DMKk8``rG5{+imgZ&IjyOxw)l?0ru5*?Xn{`?ZaFz!YW zQbJ9D(cdxLaSxl+Vd1b_m>qSwpA)=m)p)lkdOIG*@ENw5<2Eo96zTJ zPNo(WjLGVXjv|bhi6bx-Vg+KEsg;Y`U9gHJtJuiHcfZ4sPOIKE4D+;y$G@QtDeF^M~4 zq8-sAIEV8Q^eP;ET^AE?;w?&It*j`-lZCxq7)?>u_OkUjkb=Bbo=P@kR_Oar(5abS zU9T$)B~$-LwJ71oq8PwX1cR?l$b8-Nb=gD~7m3ai(v1q~0~q8FILfCMMWJ`3^&_0H z=$Fg=;IRFxF%e3dzv`!yNo3d8Gsum#xcQWuWDc7 z@~QpGNZd^mQ!*57cD3SLPQ{bMTPALUy*E7Pi4NWnH&JhgsDf#)Y5UVAL=H;u9@m&# z%h)*boc5Jtiur2Iwe_?kZ!5Md+>pegmm?77zlwZ0_>d3BKCm2Xt_DK#d>Pll-3YCc z*z_ij{y-;$POec}`O&~79HVD8g3yKIw2BGdXeRiAr3~7BNs!KLAf8VAVr<}KdK*1U zn>f9JMEXZ02DflFgnPRsP6g;L^YSQ>jq&UnP9ul6aXl!RZlrCN6i@i5z`KCH0AN3( z`w2iHiBuENSB#V2a@$a>pDturK2BU>PrhtmqZiJ|5}f^nOh(WO&P@yxapwCyI47v# zB=6Cr&l+gyJx52wGZu{8mxhWP0r(fM{s=B)c_9%uws1X! zt1UvMr)3M1Aw0*izjxAs=3R;2!nDGRSHGS4Zij6SF|HqSo#Au;h-~L@9(T!Qp8Z*1 zZ{|?IJ)V4w2UtQG%c$c%KIhrj_#{x|HYbh@cRKeJcLGJk`+&DY%<8d5fm)o!5G(aj Vp;_i{cn^?ZUuW4zMFfIu?k~b3n_vI{ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Value.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Value.class new file mode 100644 index 0000000000000000000000000000000000000000..21de3a90e02ef0246c4055d8b1d6a3387dab4521 GIT binary patch literal 147 zcwRg8Z`VEs1_nb0PId++Mh4aVqICWIq^#8BlJe9f{lwy2{gR^8RQ<%f#GK0F%wqkp z#GKMpb_Nzk27#=^vPAuy#JqHUf3OBd2KMySlHkm$R7M774NXr*2Cm@z(xT*4x6B-% h5Eodh9!M7(BLh$g0|+nzO=4wW1F;y`fg}?H2LN*&BYXe= literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..a819e6aaa0b33a8a948d226b3535606dec07f416 GIT binary patch literal 4875 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 Z(hkRH^yF63u0XLlV>H_OPqRw?^*`|>3l#tW literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..7fe6b7e908fca52301bb0e0f0b368510bf0bf8cb GIT binary patch literal 2587 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierFieldVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierFieldVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..d988514912994c49c95c2b22496f82385b6610d9 GIT binary patch literal 437 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/AbstractVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/AbstractVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..a9aff218f1326eeffb22f02bcc9dfbf24d096fe2 GIT binary patch literal 3823 zcwUWG>vtPh5&x|uN3yFVvhyG>C8>cT%bUt^(-soPWv$i9Td#K&?aGdcTSs;jM~NdD zS#Fc?D70yzw7j8EpwN^a%;8fWtxK9y4wT2?@P+Su=ieaw?%kE#)NW7hbLTgA?%cUE zbLY0)NNSzX9zvrElJd9FE8U8*+g zjVK}t66ecLl`{+F+I+^5I}}8nLe|l9u7Yi+thHsg*{Ig$k16QzrV3&;(yUyfdcxO{ zCs@^`CN;vd%V!nrTDN&*`Rv(Bg9@>sxrJ)2+8m~Cs&9g}vh_2S7!pck-gXMAmUV2` zo3TrlrJ6oJez?UAw3xPJu*E#oVve+!hgGY!%WCa1S`yAmLP^8x*(>V%d3_kh9J5iraMY| zf{-f;uBe(N$x3Q!w(yI@bSUF6PYOm5)3mdyImoSp1_$*9O%8*DVURbtW{}s(>*RH* z#~=p9K9@x`USRo*7c5EXlH_&Cn?~*giJc>{Jd(WN@`AGjH)B#wsz}am%cQd8@@-kZ zE%Wzk?Y)}6H}80k`nX$Ei#bpAv=J-kPMThpMe8_Yr9v=aR=rZu7KxQ;1gHn71sFg+ z=eeHdnOU_^YH^eqX3o-u$Y)G@!Wqj=m_@IoS;5RLzSD2$dzVut5V? zsvIWAd5#4In}%dB?m`&-ar9wx6o=US*V?+)Xp}FD-rfZj{lb-jIAZ9GVvq^hxXX9( zb0k$Cj-w0riOIKcn-NrYFBKJ*mF+UzvD$aj{Z6;|3RVDD_d_oAo*9 zn~32!gYOkyJ{HFpp)n1zd^QdpIa-)IS8izZHb%#lIF|7gADs+9oVL-$3r{b_aam*_vQ)johZ0(Rn%Wyi%9Paa zeMN!ObdVwGm9ypLg{Ib|_1WcSg^nFe^_|+F#M>&zqWC87=wmdZcuv9Lk9Z|zYAt0n zcie53=Przw7u(yq@GSbHctODEr2yx^ES`r-om< z`=6fVSRyXB9taqx(a%=NaRO;Y&W2R3&En>%roxsjWd8R;uHboMf{wX z{VFQ>1uo#1>^8r`SMeHNz^`fLH`KmHZ+?s4)7~xo4)0<`rZerQEU0|JiQ-_V#UEsG zgn05R^kz=J9rnTCrrzYdgLpJNyn;h&@;1(fa5SU z=xvDqk4lfjw6UMDe~poK;_G-O@c5Lp037Ie58s#y-@&si*sJbT@l12ak literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckAnnotationAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckAnnotationAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..b96505315e2f3423e20f4d8a68ff55ca6363ee2a GIT binary patch literal 2766 zcwUWG-%}G;7(F*c7jPvtDr%v1(V`@X@mK3_6arW@N-LBK*49n3CXvl9O*T<%`_`FG zAN%M|`5)SuI+Qw7r%#>fAJyr(H_Ijg>hQolH#he?-*?YgD-%8XBpD$HQo?8)!n00}{%ntTm71-sNWh*Zr76m#ihqK++N>0fe6&M=Y5l3QP zAewgbRySC;4juah5<81sl)L@l&>IGXBFh15UU# zHbBG0w$;WtG+Y+w-P)14m1RcIUy+C78m>!R)Nn&$TEm#cSq*84(;6lv-qvtS;*^GI zi4z*`2pnrUhizL0(;ll7YGupuCZFf5W!dRY+!Z)H?bJ=XlsC-K0R|UpbmeW#$o>!R z!7hBN<2}4jGdZd=@vV)KUXXF^Uj~h5UzJfNomyGo^4rbwzbn!{3wWr3cP{ZZH{Z3q zqMHw#tm6wj+A!9HRn1ZOZ3^I(>cm&9enSw8wKk-X0+>4H@i_&^D~6alPV?3X+}Y8g z5<9xyGT{>)IjE~qlwH^>(A~&cshBIWg5&3fQe@jHZ zTMG9mln1A}9DDfbhS~{e$>Hc4V!x`5agN<;`7Czh9QJe8+t`K!I0&ejq!*m=84t)7 zxTk{{ORk|eIs6JolKrpH*CdT2%JBlnORVEEgRUrYqY)O8$3pU$sy@OwZ(}2kh;g^v zzsfX6lf!E`cIq#j@bNui$j5htq>nn`ln=Am!^C0Ebu7`ZbbT{tkK!&crpTP77U%be`TB!= zLOvNmmT8q0*srogU%`AB7Z9cv=d52Mv~2WDLYtM zhD8!12d+{Hpp=C?} literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckClassAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/CheckClassAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..ef09ba998f3aebb0f08b483caa71464bd351841a GIT binary patch literal 9728 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceClassVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceClassVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..65d8159b34aaa5621dfa22e2161ac59f286ba373 GIT binary patch literal 9174 zcwVhpd3;<|z5o7ZCbRXnNt34SG${~;v~6~PCJsf$J~3) z@BYp?zvcT|PV(Hxj~)OpN1`4$1U2zQZ&SQ$li8ixYIZe+l6_6-R3zHekqC90i=v@q za&;sbNyQT$xCHfMaWCjfrua_f7PtjRjb2c=sld^_MG$Nsn{6KX`nL)y+c$-_gqkAp zrsau9EY+Eaq)heE)fbAy1e0slSq#xothZ@ZiafpZYF7*VO9r~l{!}C$OL|Z$sK|5W zzHpaC@gCEQa)G;{$Lvb?`Y{QUJ*X6vjojA26ig+fd0{#fO;WO&f|HkNMdsD6^@zSOM+ux}A~8xY9$|+1=6MkmG-^sR7z*}8lC+4~*A+E;f?Fcy)?hpw zOl>rSy^$?uEZD8=)#%3ze9D8FSsjOOY2a8KC-C$uQZzO~?3}^8s1d9zn%Mgr(`ph8ttXVh`H8rW#i#l4YQInNvXB%ihqrhv% zdXk-y)W$=|vsN)5Z(t6ZDSIT=V-73}(_J-fwQU}pD42c-^sF>PJtlE@vS3Qq8fQ|R zwpf4Kwum1mVXlEwm08^LBe6)T)sGV}Pm$&erq<*`O%8SYRe^pKz_?*>D2H&1)o-2pBZ*=A=E9VvkaV#cEO}xGquAo&A(Gen0 z1?BDW?of1fC=pR}o9GH9dMRi{k#H4Aguga{FS$9=zgQuS^R>(X@y#k-FkFs4l%$r! z=P4VVuMD|CF!!)(9m3F*GPN;6DeH=CP&`HQU?;lN!QJ$GP3>wQ1u+eH;8i0g4Ili1 zk}Zl|u(YPFZL|T7gi`F6CrjFuWm=1@vmHNTpxR80XIER5G zQpyizs@;tBs`ykf$MnFIJ+Z0D4)85zBFX$2RQnAW*oKP~s`~pG)q>f@0(vZoE>SyN zDyZT~WAR#pj5aV2u}7^IhwA!U1@3jbH+$U%X`b$|Z{ybSzoy_u>mo z(WI$hP&q3a>P-d}jQ+{M7jZp5S_&;Tlii6(zph-9Yl?WUcC`opOtr^?%&JIlER;$o zOdB?S?7){4YEmBjOVJve%&ut4t+k-;$Bme)9=E7)zEv=%7~G32&mvZNbEl!7>cz#R%QhGne<+L~V6B^Y-GW6Mm0seaIl zdsvbS=erpcW-Q&u;nxTr3s+v;Kdf$ARn?2Vgk;bhNU5qprmyq3V5F}+ifAp_sS!zz}!g4|Ez+q zNKE%hNd{fxn5k%#bD1}}vf;=OVdqY|N~fn)@pPh_Ld_}?z{Oy%jQt}6FW_m~Cl%`Q z;wMyJC5d=ne?+w`;Y7Tzh3Lh589;+mjYB5V!3)Zz`#e^T#d=XNYvxu|`?s#QUC?k^4e3~%tj z_|}+7JGy!p{MmCC#A5N39S$u;&RttutXSq2Wj*A@f6+;PRX2WP;8*yy2fw4o#_Y03 zZlYxUjSs)Y{}}iK-X&B*gvzl;biTqahq@@!Yg{+MQZHN9RW~ta*;gHj6Ym@N6aK6u zd0$m`eq~oS=DMsQ+hVbt1B)5*NGQ4{eM}FwEnQmRK_&)#g#Trb#T81dAoE4kfp)-Y z3C@g|QC6zW#nSmdNXa(-MKsr^(=n^7&V}X__HUart;awIS1mJ+mWxh)dxxkyIxYil#@TS=%;;>)S@` zWF@_G%+$s>vC#K_#X_;htcV!aIe9efkYf!wPSv3CG}cO!`8cKkp}y1@Qk(sfzs7o{ zo&}57zeId1Yo0XF&dlSy33AfJPg_{6*<^Dzho8Ctbu@B}G&obm};bqLHFVzav z43Xluw~^pixwBQ48nR4X7)rv?baJDz%nC!!L^mT2T{JGbymGF(w5PkGk#0J)lalbT zE%Y8|YiN%CL_9?eSY*AjjwLi4iG`vZpU-7UmGRZG3uu_+wpceI6N_A=c|#O?OFT-3 zsM?A`_*02cEE!=Z#koqCA^VRyoc5}Ag`nWW;2!6E*J-ZSx&y8| z;j24Pat}(Jtvp4Zr7h~!=#50C_g%bW7K;V-w)PRHJ8_B zP=6b$I4oPAL6hTdl&W!)8sCG!ew?soKTcXh+8|CDL`#cn4@wnPQ%-Af1zh_fPMIOjpi>A(s;H(&~%1DtK6E*DdWOHhtWsqN*Mi7Rj{uEZ>S4h^^p zP1w#W`8Ak_Yq1E|VKJ`9I(Fc_xPdEf#20WATk)H5J8ofveG~4+tysz3Te&Okf>r3y z=iY^Lv6^;sk*gEuk>bWKtl`Lsi}+j1U0vL*${vaOV*{VGGERrS9>G&5^@CWSSH!Q$ zw{xpI^r4e2He7(u0(zv}Cwj9D_GW9y<5VuK8$_tCejj@3X758dziBy72kztZelCB2 zp5CiB4_eD|o0n>gh>Z>zw^zm6k9ZmcTbblJ(CsWOFMiT7GWOUyl5OlN}vN!l-xZ-Os00YO4`Ob>eP9=wHP^o>F6YUfVBZiPaX=Az4x&=Ms;V0Tu0Tn^J%q(BH3OvsU`5`0XM~r|M7!N-t-d`ks zUcy6onY+EhRX-)=RlJVZ@D88v;SKziy}cK|kaGM|0(etq;#bm$U&~y)Ev;<7KZAE< zCCBHp^X|p(WdMJW%h^VMiK`VNFQU{$SQe2SJ)vVvjh^Jlp+`?q1E(H+nmOvNd1octJp|n z@m+rq)76;2AJRGHKjx!8hqu`yzWzHOv-4=wPJC$>CLO}16V$7I_7Glm7Wi_ZmgFy# z`+ZvF17^6tq8cAEYCpnp_#5i*G5z=nT4D)$8XL*s1t+R5_3Xu+~*0*^U}(Qs-{S!aQq;V(OP# z>NgDG7p?;Rn>7|D!b>y-qyk4vC1%QGoGMeXNT#7ps<29`(IZD;vmA}Ba*Wou&XPZ; z?*QJk^&Qa2ap=)o8bhM4fwty5Y|R^$nB{NV64o>QytC8}y@n_8TPiA2>L_nLYWbcm4F$3_=45Nsa)=)NQP+?P){FP>u9l6rJX^M2 zeo=DI94^}+{$fcsUQ0EE4;%#soU8+44h3q)L^%;tB)C4*b%mEW z>rgq1>s2eTw-^*u&aQMZ&F1rV{%dDlB~$e-MJfNAnpe84{A#7td-E_V0E=_>i1`tL zXQBbOFJ%>bMSdtid$qkZv-pwfUMG%JJGU9&T@M-sFVx$G6*er?G=ZWqWD#%Ef#-u z>#_^!3ab^9&O*CdN>=ImIH}OkxiVR3`Kp}NRhe8q%=9I?e5%UnRF%`6ubiHMC*aOV zN#Sm)fRb2PJPS9gq8qD5`_9!+=qnZeovJvVsz?>$wdPM@(oR%cB)>YQBqN43%;pJA z>Kx0-87XaXE3%TjqR{hG1B%{LHCva$Aqlv#PpSg$d_-<%2Mk$H2%L{{*}yDv0qP{g zOxeZk(M`AaV7-KyEqj?QH)22{xJowRTG@;nBudxEahLRCk6egvNCHEW#uKsy&&yW) zgthBuvW@laB77{Dh*z$Va=B7w%2iS;SM!FpT~3#4q(iRLuvyOvLzm|&Tc-ww=#ib3 zIC{&jY@NBv)+t9zkdO=GcwM{PxRBkfs$CxDm`1$Etmh`Yc)PRV^?}`|?f(CO*Dx@6 za*f&6L&FOLQlYgjQ=1iEWFeyqCYE}EsF(4QDB^4 zv1#O0O~e&>Qllo7osp*;pWQ}tTSZBuHBiC^?S%Y+?9kj+hgMSQ9?_w>rP57)yF)uP zTATA|J$Wp&o~qC~uMn*nb|;XVh}N5l)?0|yTZz`4MC)x>E?+^Xe3fY3MYP^dwBA9q z-igcQE^L>(alPD&FUxKwsy#&P*NE8rn6U20gYp0}vKI&C>v%yP#7puJQTr`+V*A*6 zW$=+aA`Tgn@$#5VmdB-94#+HdLYn1CBKRp;C{Odc{UlL%koVVTBq86E0eOzN{(b&KTrS#-kn4DZYJmsjqXiM&lb8bu+Yt$+X|-Zrza28gSjI^m? zM$WO^W2o1VESG``GEH6h?l$CiWyR}i?ELiW&tv``Ujaq*S*RLA6{_P^`9qPY9cIED{+l6PVT=_8Q(1B5s zC#=>4Po8j|6*^^k%36!!%~RG}lwh8+VN}3&Y;+}FbGwwt0Sq#q=q6RPuWA2>b9QBD8}!p1bJFnVL&J~=3lE568pjv@&zGQ zt~3eyq2G4Xh+)Y<3TZ;7Aw2h_f9bfvneB94Lbl~7Nzgj$a`b@@^B2<8mJ*|M2B zGf?S)=lRl>!uJS!<;I0Qu&u7`b*xhv2(ME=ugs`<4Z13)dd?Zh;!X;Lf`KF!lDJE# z&9(O5I*W)Sm%=KF2G+5`KHBW#)_=9YF0|cVOF1;9f{;{dL$BzZupDWZeCqTiZVX?enB^Hbgw*W}fqU4<+n}EM`<`%%ZaU zd`4lm$wOnrntIhx5F0t};XR*d91CW3h^?rDrI3Au#~Q9BMZ_;z$Sam~h&+x$;(P?3 v5EoEJC3MA{xO6;rDaS5VBMw7_5o$C=@rLKO3_HdO-raC8H*s(`L|A_TFj@MC literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceMethodVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceMethodVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..ffd4f263539efd5f7db9cee7b91c3399bb247555 GIT binary patch literal 10058 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceSignatureVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceSignatureVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..b045ab556cfea85b6f13e9e3414f90f95ab32306 GIT binary patch literal 4781 zcwU`XdvH`&9sX{zu*-52mJI|*c!YPdfrKJxd6bl-MR}(z1QMj}&E_Uq*z7KMcX^by z&}v`WR&A{<*b#KpI5Ilzl)y}x!H(#3?0@QvI-}!re2k+r>Nw+L#_IPw_vGwNSVk+% z*?Z5q=X~Gyd)}LO-hJ~1fIIMN7*!Tl<-DQxT>nuwRXpkTw>yQA_EIsOY2WWTDL0uO z$~wi8=k}xv>0-_cBV-|V)H&g_XPoR%`(AY}jHwlI3gf5SC*xR{KH#P@j^`B9xvYh` zyULi!qL5QO~8S?EcevnYgD?Ze9cxxYO~5N+WKzm@GP}VJSc|TVPiU?5xmbr z)vBfl*3;vg#mo=bxDy*hLO$ z+&+0XMQ}Ic-{hVuQcMS3MIjhHHfA6qG7m}Ot{Nx1cf4B0Hy*YTlVq$>k2{@$>-!-@N+$XPygQLg4@BVb zuK#q=jUdIlOfEYV0r!RbbGeM`WFr`2E~T@@2+|g&6ozviZ&`Ao)Ue}4Fv7*bOwQqA zj)^glD>1o6-*FqBxG_vO>XIIC3n?$1S5<0tS(vG`$;0u|7ObKCvD6WEi8s;V9^T)6-(KxdTkDf<3G>TC57@88-v84AJ zmW^Tg>k4Qkf9oj{*o_c&l70^wu@@`Qjb`;sL81i-K;5-c0-Yg+sENBdlU=a@aq9$z zII)3!njuN^_6N{o20ez=G?;~gHneMWSEDaaTv21qc|_uCM=>S7?ke8j%5g9e8pE0d z?b|q+@*o;;2#e5*W#|h~E;p3Rv6;RU%Db>dQ*PlNz7%06;vHhlHEd11W{_*?XW$5? z;(i+QfI_wX{TkK6Jq9bOu@)q#eWTH?a4CD^ByeALiq`=K)@3XP0|W~U!M%oHnuQS$2`j4V-%dB0V4s-n8Dm`Fpp`>77@Kei=N5*Cb{nr19oWxc1$8$$Xo}GGebSh zLxBby=UNd%oXgtfZ4*bSArjFzKZ(}j-o~;@wF=QmB=5W zrDs@T57V|s=(DqY_89Z_@c{X1L%!dTpHl_P@R!MBLEea@n6IQoR?5Y6;5w{cJ~(g< z2Pdm}l4_o!ny1O}F{*i%&z{3tJReZA#i;2uY8iH?Vdk--v$}Md-E6!J`S%8g^qx+RLmXWk=OO6^e3@fA$61aY zkP?+V2TcQdICgUMad;|F_lwF=46Dh5{^YQl^!t-NYBJzYwyMdXKUt?H!~SHYnjG~f z4Qi6{Cw@X?bwcFJO<*6>5O@{4@Hq;*Nbi20weJwA)p^M5WmPfdn@0HM9^UwS7sBlQX4tnL_ z@ED#b+rLDm*LP_DJ8TZ$#YTLOHhv!m@B=Xjwj0vHm`uG>_!@B{`C5`8j_=K*mPa4l1(VkoSU*bHWsxix&f`!&pEV04?A1yUL`V_mTPqkK2vl|M*RlHa>Y^tnV(ZKnLIsX}R{w{sK zj^_`&jj%O}sN7b7strKZ8K{>lLiLrQ`YJ%hD?nArA9)&Tw|>*kNvKb%c))vn%dMI8 zA!W@a**wg&8c=V|4?xc`&|L<4gO1H~)t#h#PL|=MU|}s{44MKk(+!MgV9scm4GBS! z5U(7iT!opDjwku{imnOSaPi;2mP|Dp%B1Q|Y%L|}GSpbhF~?eg#k_B`T5zY;8W6I< Lc>RJp{n`Hj;moPt literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.class new file mode 100644 index 0000000000000000000000000000000000000000..ae2a692b57d896b0daa963459195a26c3cccac02 GIT binary patch literal 5535 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMifiable.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMifiable.class new file mode 100644 index 0000000000000000000000000000000000000000..f1556bd52c3d0e0a0b6699b35f7a71c64f87228b GIT binary patch literal 210 zcwRg8Z`VEs1_nb0PId++Mh5l#qICWIq^#8BlJe9f{lwy2{nC=m9R0+SlA>aL$6(*g zw9Le$oK$uO7Dfhvti-ZJ{hY+SbbWuY7Dfg(ppMM6N=6174IhMTa7j^SUb<6hT3Tw6 zHHJ7;1Zb$kfOxo z)WoEmRCWdyMh1bb#Ii*FoW#6zeSfeHMh4arkP1cyEe#)pWN=AQW?s5eX-?F{Nw%Al3M8oDm z+um=xcD25~>PaP}TH~_m3V)_5rKh-ZJo!w#=N(tQ>9`^dgJB^qgw9|{sVyg%S!O8J zVkTB7>5(HH^@PZ**jc3w24mH0iXkv$O$;EFK@!6z(imhIsX0=->a-ief6E(MS-$3N za(9FKj$TKbhL+3lG%js_qo{;|hG;pGVbQ8>^F406T(<1G@*UZ#gy0%3;QMw}(PpEg zL_j5EP{3FkMTWVU0!)nKBI({0VuxYWDxIKv9i~^(xWq8oi?=S+me<^H0!Mj%78AH) z;wmN?ihFvmr!o>{^*hDmzzD0N%eZFZI;ORS1 zWfwzI$mS{ND7|atyom+vPIA}VO=F2+I)?fz7O`y7mAS<*7&`G>vm~vs!z6E0o9x8z z%eaAObdoNFVVEIP_d5Qjc;Va)5SJMaFm()<(M-lC6phaz9Pg&ls%^(kW|Q5!d(S!dvHAYv%U1wb@KQs7VcD{4S*yGwD(+iR&Kgc5`>s*X z<~P?@E$IsBt{Jjg7xq+MO3O7|(~?gN+h_<^*w31Ep@B1G`UO!Q3_*9>bf#t*QpG+U zbL6yWO4D5;vSi<0sS*QUwW?wW3=tiJ2!=6$VI3Mm3?oHTipR}HS=i5wvQic+S{0*S zGHg?=eIr+L8S?$o_DU56F<2HgQ!>mXi#x^}BU?9QExYO3rmW>Wcm?Pf@3MK9jOC^) z910?YF@~YNUsw^0SZ)48zg(UV&n( z30ucGoF`C{;Rv!ZjCBJogfK}ds|u$Q!bJw{jp>+_#xO1+r6Ktj^onKGg&}pMF|Cd& zu^X=$F8xQY@0U}cGdeCK%b=HAMnB?#WNIr+U4Bi&RRZj@bULnMj^ytNvCA-;{F8LU zbI)nG!Em+{Z(X?CR<%UYx)zma9=CKXfNDOWGT{F1gm!Z<#lSGk5Z<(!c17Gb)!mPG z09;nlQ@a(U6!vP}a2!GD8}9*&SpprP|1FC~)$fO990B$FA^Q-m=4ch5ZzMha5#jXo zC+P2K8Nd;G2k8*_D~!-wS93%V#Zd)^7>@Z6-+bVeOl`IvDju#BTUQ{=)8(J7dX#fV~V~BzKt}EId0+x z-$9=5dg_*13Vd~Hb_aP+@d`bwgsRh(7{gskMjRPT(k@2=r*IMXNI%1UJn-XLqpwOy zw54+G5RVS9&d^pDR{LCHgj*haymkIJd$h$K1tt2akD8z}st`ey<7eG-9Pq}b_kNBS M9uxIG^>zudpR)(ib^rhX literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationRule.class new file mode 100644 index 0000000000000000000000000000000000000000..44cd0fd4d796ae2e1ab720b081ce933426f3de6d GIT binary patch literal 1890 zcwUWE+fvg|6kVr1CD2Bxm5ap-3W#mF6ucl(MGK0c1%yJ!K_5)%u|z|{G%4~RAHo;- z?2MxL;NYtt<+x88tk634A;~%Wvi91y{QULpJAhH-6!;j%tWq&)<==>P=bgwWHG4C; zvuPyL+4*V9bcE^5YG%O@rM|RjT8`%EmbqLugaXbm*r>1cU}$nSbh~eaA)aZ_F-1;y zbyIgHDOjvwuXv7uPg@1i0)~)^0GfjEo%?zy>-4qMu&AceBXnDyjlCjn`Bd3*g zdG~}|(q$NLH0+5A5%)k|6m^qfD3*DnZEHzGGmFWrQ_{_1%0-npwziW@J0#4P9bpsq zX0%iAg0R;^=tNY(Ifjn<)+)Mio}sxYoSbHqiFALRQ1Mz(GcGbH+q$h&szG$)ih|1w zXR3x%mSqUdRMCT8X)56tUo%|$PXNy^B|)#M=*Kk%HD3{W9R0EQS`cvzC`b@sgXL8* zh#@M>mJn|l+G2kPU3A@33X%+$YVoEG&9-xttYeiz7{;iI>$pLKAPeAB+r}_aC%d(J z<63p{a8oj)TPntITaql>8w~BST8?pAyE}DR&gjA@{9!qcQ3ZDyx@!&Rg|lH*EmIh! zh^Dsb4ss2B8bgf+h9>#kzh;hst&&jN3Rm{oO__wSr1y31z z8>m+ZPcW}y0gE)hZXX`WC^Q?iyoJVhy-~xH+bO9toMH%Ot#WBy%;<9GJ8JxfWzsal zbEYXu?jQ*&<>}*S7$Gb_{Z&~wEdMri;_%784ar;Rc8hL4`i2q%pAk$9e1ZCru0EWm zcM}2 zL<2uCyoW9+hz1TZJk-t)FyhBPZhpX|RFD6q9(UCfp1NDAQ+wzb^E}VY&i2R8uipSHq7;V0uwgq5!>;b~n)iZN4byEI z2d$=2+J3xl3y%wL(-ie4chV&xY|r#8TU5+un|HTQ+f5#Z#*hyRB{LX8-j3y_7Z|eT zfQdy)TD64btr1x!a8|a$psm|=9tA^O#{fbxs2J1{MucIgYze;AZdJMS%&baf$+BHD zn-$ZsxM8q>eshE zMz=-)akQp2*2 z8?t@sp1milzop|gR_F}<>NjMvnvp8p;Nu@O@IM191u_gW#J26WQ{(q7c`H&qF!QoB z2K}KB+*xm$uFI(>lc$1XfuL3TS7M2Tyq;ufP~`O_f0TC1v{Pt}=jJ{mmYe$m{UdD^ zoS}D!f}p*`5ZSu45k~@NB^;6%?m)aE$N^dl`Q*qEQVO>6$qT-*qUAmjC_RU`_#NrO zxORjY6^F=mNs^Qf?KPs>8w_i2k=Ne&giFVu9YSf%!|+8EsH#QEj?y`fl20Wm6PP4R zqwm*ny(4UsR#{u(Siur0IKoYaE_Y0R*WP1D``~k?j^qDuCVYIB0ClX`L7kx(+0l?} Y)@uJ|DgJZEf3M-L&&23Ag?mW;0%vNDK>z>% literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueArrayRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueArrayRule.class new file mode 100644 index 0000000000000000000000000000000000000000..862a266da6bb8446d05419a79b67cbf4ad572419 GIT binary patch literal 1497 zcwUWEYflqF6g{(DTG}p9D^z@-yo9zq79XfsL@Uu?QZW(J?^BqR#qBKaZV`WpiJItN zFi{MCFn;z&8ShN15Zfl3&F;+Hz4x4R&&=+x-`{@#xQ6=)7z__QzixZAJ+U3W7B!m( z4g0X++U2dM>z)jS3^%ykafLr!meLD(=y52qQhWV%{s)8XN?mEHr z5<{U9v9Lr%tB!QSH6qJLt}0X+%yn-^B*Boj(1&;mF$`Eppr2u=;z+UCY}ADRg4dL? zY{lE=Zk79vTDOCylFRTgDs4}%sEfXus5_EjAz#_!2i$hKtlL|m@5p*d<155~AKK-R zg0*HS0_vh4BP2uehDhTa&L=R+kn5gp;Q}r)^w&kG$r)z4P!&2uDU9Jt0+$(PBlc-w z922B#Ux=3s!}-&o&vbbyfhmTmPP|hNIe`;;ej1awYGDSm45-=CPnjC$I>cDw7z+2*qL)U7}xRi++Pf)j_7kc%2xJvCMG7mQwG{ xj~FsPX{KB&{~uFEqp}Rhmz6f^4CN@_;>wb{-7PWnUDD50+|x{qt}(13`v)ZUcnJUi literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueEnumRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueEnumRule.class new file mode 100644 index 0000000000000000000000000000000000000000..dbbce81bbc35a8590ab73f504b91e03e8dc0db49 GIT binary patch literal 1358 zcwUWDT~8B16g{(@elJoB6i^WrENy97KrvAarXdG68OVof;65KXG7Zj9j|-wB7*gR&J6PRh zsJ3DT?o!ZwTiM|rkyT&5)ek zK_~+fk-;2gp@b{*n8#uo3k;?4w@qBaWrj>&h7mVIc??x`)Rn;!aU9B^m%%b6daR>! zxQ>-HZZNFH)NW!GHwoyql&=_OE9aS>Md7Q^55M~Vd%k)C;B(mOD?@jEZ>#fiOA?c}Iurx< zm|y5<-~z2Fx&;0f(`1|4Mji!R)Nm+bW(e^aJObXX7iUjVGH_5YUWtr*yk5L|W+iK1 zk^7Eozfo>1^2OvSDjffrN|YSGm}{AC>vE*D(yj4Ijp*Bs)?2tuyM7r)qp^eHKf3f> Am;e9( literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationValueRule.class new file mode 100644 index 0000000000000000000000000000000000000000..bd4a2c2b516d81725fa052ae7ac7f1eb8a5f8ee0 GIT binary patch literal 1393 zcwUWET~8B16g{)uelJoBRH`Csv9zVIpcc_82_Z3>R7}M5eOe}UaXV{vx25`X{0AnA z!3X2BKgxJ#*+i1AWFL0s&dt5&+;iv7{{HjhCx9(HPD5j8JMO@AddH&gpNO8xy`ec7 z+UDNjt9?iMLi#VbJhFwmvL~hEbKi1gm)j%pW@L*rbcSYJ0F}Xz^50qB$|gg-6Em?* zNlz_l`MX3`i=9>PGU)rxk;sA}ZySbGyr3 zOPxcfuF7S27MC`vO(Y=M69Y>!tk*ine9TRo%Yk|5yOtcZ184>2@rk+Tle0JSg+~H1 zSfC0dABsG#p`6AdLn%7iz;)bU$P9!Z@G?{*sOr!FNO=7WmZ{LO%Ff{qDrwwh zSdFRMzzXgW&<7#jGtAd6GQAGc+i9#aRHpGRbj_!LSq6uuFA?YhJ*SCS{NJ@PSn-E6ZeZkC)w`-wGYq*yXXN(9 zb4yKZX)1X`$zU*EN-5lZn|q!h0do_ zB^zInJH_o^sIE84dO3ND+8Ndo_{UZv9Oz?Y^%KnL6D;W;(b7K!?7Qa-A-l57K$^0) zaGwyeG#LxzOHf@EERm(tTE;S2$pT37gRtHzMXQ#il-h^UYPH~N1?x5*(XMWW(JR_P F@h>x~1K& z`QoF`{tb>#&a`67OlKVNSN%2qLyqSz&=3=6@{rtfzrE)>=YHp$`}m)Sj{uxQMFVFz z=Xy2Et!&6@a936=;Ww=9M%|iQUM#pyAe~@AICtvO8!6O<@84|JrG_X&u2(nZ!O$11 z+y2NTL$=hTW1gHY*^V8|Qm{stjkFlYX_ct$xSocW8HPJG3e{Ng>_B=6oIzGY zhT%+)S{fL`ID=kw8=G|5MX}Am)^v>EtSaIJRVTBSEi2+lgWC8N2420(aI#CWjwF)T z@ao~Un}J=o7KFdPC^mIWVOkN-Fhnw{4zDq2ThjAw*HL=q)yGRJYB5_*Vis>`xXjSs zVj>m;b9j>oC}V~TM|E2Y6UuiY*-j{qx2WqywJLo-j(Ljdh=z<~flw+7X%xrXWczN@ zs}f#fNceWm5kb?V?R8SkCMms71Tkp1!En5l<(%hF5G#072bIBXZ*ZI+}`BBYkYO04iTqaan3`Ws$q!+qN$~N(Y2$Mt;q1Te7QtBxoD*~>b62cR-J5M`KYjSM- zKJ>Bi9T?xxmg6b<@1sND-{TnBhO&`F3Intbz{K%=3U-6eDdN4H`Sb$}aeRm8XLIID zhxT-I>>l)8jI65l9!7VNyANv@Q>!~Te=(MhnHP33ygC?7rM8DZ+rh;Lcs+s@!V5XG z5YjwBuH?)s?a0-fd9@uW=FDO{axG_GYeyD$u|(nD*#}f&>Dafp*}D5Q`pMjb!GA=W z|AYztGiLZNSmM7z@W=4^Z}^=5jxYHi_=^9Dhx{-6!2b@ln%&pqKr3a z5eyP$5UW&-G`_}ZvZ9#57g)plh^0UU`rx2IqjXvouus+I!|t`=;qRmH|296RRdo-& ISP(G(1uKKiEdT%j literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionRule.class new file mode 100644 index 0000000000000000000000000000000000000000..a4645efac7f1dfd5b7f22850b9ce174d7f7b0219 GIT binary patch literal 1267 zcwUWD?QhaR82??%D1)*w960COoWOY7x~Vt~#$;J$)WA%{VB)s}F08Y(q%F$7W#UWl zgV|^QDC2V#GdD14+TK0)d+8lSZVR5@}w0zgJ`}KfS(s+Dq9Qc&%jC|pd^*A!Psv*m; z6;fEo8m^Jwp%CvGR*R*7(OmAk3`^(S4b$^u$de(P4@3f6C}}7%Wal4QM;R4{7)iFdH4>L}r}tHwO(n32 zZ5=x>$T08q7&7w=zmw&i0aJB2S)lr^{jU@Z-S90JcH^Zck>#esP$62*$nA<}rtG}z z3~WapfI)v@+rmAxxaSG7p1eSYU7}Ly&t|EVY_=85z@Z_FLy$} literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionsRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$ExceptionsRule.class new file mode 100644 index 0000000000000000000000000000000000000000..27e11293a99398b3596a3e9f9657a20163bf4647 GIT binary patch literal 1802 zcwUWFYg5xu5IwgkO=$y`^3aME9|&ow1Rp4ZqEJDrEhtYFbqwvDHcXmyk`&O7`iq=V z9Gubdvp>plZ+VEcI-NGj?%nL!y=QlCe*XIU9l#Z=%J4DVu$`i2uW#_Yx5d{r-7Ra| zWmB74%%yG1- z^!-J@NS9%(*|5hLqTD5J6&SkJ?1sLnYo=}$wMEY{tRiI?LN`vz=wTRa5?{e7#0a!v zR~Wj~#1Yi_n)if^UWT^Xa@8|TEvHw4h!cl;KF?h@jML~-a1Q4QrN}*o0ks~aA?`(n z$ni~th}=sG1~ACbN^n!PAph8JCWr)4YUyPj#1KgZ?&gEIOs=j`v~;iPkU?Vz@k176 zTw!Scvz@HrdSQ&ip?61L^460V= zT7BNFRHZu#CUKX+m)~OOYtRj8Q+M4}$MC52LYP8Y#xz6xzb`7dj~QytO~W<39QR5# zbxK*y)ThwQN`uTB&DdU?6%o=FsdnRmf``Zum6fVnI##*^zG#?aZt^m9qL`GrNaVe# zo35CvzgmwBOh8jX$rw3e6on*fq4|k!_Qm5fDCUetg4$})t~z->YlzA2sq-5a$uTGy z%i>P0Oq_CV{~L{ZjJl1^P8NxXGle7xK5?eddMjz8r1|I>P7ZxWC^_^6%12UtXs3IC zUV^lY6C^7_Mi>!v(6a+kbnZd0IKc_156Mpm?V#%iPUn)T=$T!d_2CCD?4W-#6;%(^ zaepeBJXBgz(bS<5NJWSDl@a=n%Q5=x;wr;8T-e18VHh6|ia6r>gxm3$Kh_cp#DY7x zw}aU~sSk*hq-O|A&(SNrfGVwFRCKDKd%Dl|0AY!0 b1O(9wjfwWvuEpAY3Cr{p{XmV56-0jn{J_Pl literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$FieldRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$FieldRule.class new file mode 100644 index 0000000000000000000000000000000000000000..ccfe42a55edc12f9a1a1f9a54f46978d46d5ee42 GIT binary patch literal 1851 zcwUWEZBr6a6n-uXEH6tU`9`Luq9UMZW|^2pr{N&|zSPf>ty`vsVc$ z-f`4)k-?p-SGXSxK?NRo1CS6>Aj8MdRnQE+-Kdqg`Bp6nW|2a@tm;M8)Wp7d=oWMt z7CME!5{GDeO1!EW3^Vb8wqMrH0KdqU}R3RjiiF z+_Hk`M^wfDLtkru1$QvW;Hz@GsOk-3JlO(l`ub6TR2fn*j1dMuMQ0s6hTc};c^^he z3q!4OAI2%b(yE4PH%!`2(2EMU%05g{#YcjK$UQBXB^Z`k)!vrij-ztMj}&HQ%rH!K zsJ((TXs}%6V}_9y4a@1OWxY2wo2Dax`*ds1zuh7OkqjEV=R-*hYf50zYhJ$L&Gj}o!3YWG0E4UsWmDM4K;Y+rpaSq z`F~@Z$r&VWRBjlJqG0$!!5Y@d@34Nz&=YUbP8pjF!|kgLVgoM~yh4E{+EIK>;7V~( z-iOYwey5IqT~<*CLx?)PS8teQzOISe-*+u!RusmdbCgD+uPO_N z#V3a>H(cVAL+5_lEz-_K&tM|?8G%Id3zSc^b>SARUUGsoj4rYjVIznzy6M@C2yQo1 z{B+U*#Y8I7bB;b2&Tw}%6}jiw%kETU?85S-BC!k0n}~W-k;$fWd|6JM5;*-&ksOM; zqu!_|DxYEg43DnZ3=+Ugtt|!zMj71}*$z2TL0a)mBX4E`j!J*A5RT z*=lT5wat(?^3FvX3|Rw7Xc?%;8PJhp7;o9GI34sm!vDlOl9}1^y4-1V-ZC zw&SLK)FI-Y?1-N2GOVq(F8C$49Pak4v(UHQ-fk3C#tHbfbr_PdGYCaM+*2q}*}U5o zL6AiWWgXKD#nJu-X7G$5)e~WxI|HI!8Ii2|)Rdvt%o%u&d4@Eh52Jhxg;DTk3JcT_ zm-j^qiv;i}w|^R`%cR<}a;c`Vf~t;HhLxCIGf+dFLFryG%#Ubw)X&epP5FrP8Y~^_ z#QeXG1~#xsbH20#JA9Z5!_KHd#IQ8wM(M&4eIhQ`<%tIko6}Gz$MnA@%fOlp=keD# zuH)mytG4BEa}1d?Z{T;uu`SoR_yo5ut6(r5;DY#%{T+>3$>{9>ET5MTi6j+@d`M(Z zllGQ0h3;&v{tcO0{SL-gQWcERsgV=Zag38}NEun=F+ukPOiT_#+)-ei?)_TBocfNU zf?LcUG|U%~ypw2{FYl#f!(6(TwAu|aH>i{o5OEln#ie>D5+CePz$K5 zMeM1ih{(x(vLO*Ey~68=+&{Lu}D%9b)vpZl9mTWdN(Yh eLO9tcO}1crbPJT|dmo)U*ri)eiXIF0VEzFlqGojf literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfaceRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfaceRule.class new file mode 100644 index 0000000000000000000000000000000000000000..6be0d9c0fcbfa6e1acb484402a7b4b57809a21fc GIT binary patch literal 1267 zcwUWDTW=CU6#izQEQO_|Sg_Vxtw6c8+p1U%#-wS|*o0~#1{2=~80pq!Y4)Q1TP9wD z52nxl3={ns#xpCXwqUZ^+c_umU1rYNZ@<2L1+ayO8aP9J==61xZExPi#Z%GYNhFVytLNLU2VbwS{AsZ1S@_Q`h8-~SF`5(Dw0lcB%DnlwL`<`hT2jV!6>kJ9=uV*)jW!%)Uf?Euc zzVsN1rAeZx+_xF#&bXVV>%~zZL$(;mB-T*YP-4hU-?EMhstj?GYzxbm7j(zxRh}#* zv5Iva8!*VQ==B(~(+s~-?VSKqcLZ6W{x1Em6%5_*BNukzg&|Sxrp8bsT0`II$~{v} zUTy-mp*Fyv@7uO?b}iw$lB}oBkztdlBJ^jobXtu(MGHLttWFuHZ?aPTh(x9O z8TxxlIp*jcqebA~F;B6sVkD8q0(}>d!KE?9AyF!cV&wx8pRjm}<;=AaZg8ApmF`+5 zKSGgXgc`@oGxmfM=08y2KLdr8KP+Pf6%_*eD%!#w@HEKy-LYzs&}w~5dA>K@GY_76 Q@V<}jK$Fpx#RFu11GJ_@g#Z8m literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfacesRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InterfacesRule.class new file mode 100644 index 0000000000000000000000000000000000000000..b6c288bb87504e60d0f2486d0faed820c523cf85 GIT binary patch literal 1867 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 IYq$>cC)h!`=l}o! literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchLabelRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchLabelRule.class new file mode 100644 index 0000000000000000000000000000000000000000..74636c3711c4b68f03dc09635f36ff27c69d35b5 GIT binary patch literal 1460 zcwUWESx*yD6#ni^X-j8-G6Ev*$kLSo6}Pg8O%#)Yi8Yw`cH7>Rq0<@CnF9V7|A2{0 zOca9;hG&12@!X+Nq$Qcma?d^Ip6`5Tnfdkm$4>wYD8`^LEW53`=~i|`)!!EtlY33` zplO?H<&C22_`>nmxl^-6YpUeBjrMMN-}0;5C0-Hs%eF0Ih%n^BLP!sWsK0G_Q}Ybz zQb@-FIW1X^<*!h%RA{gC7DJ@y)p_1i@&33aQTCaFTGBZkU zmD^jqWyyU<8Ig1uR>OwvT_{SSuOjM}!;nvvcK9AQZSK^~vfr|tdLaOpa2`J}*L+e| z+P?58g#<=%F@`aQ*^mTujN=mV-W8(3Fp^523il##FT`+}VIWYqeakjC_--6msmiwG z>uH$4bsaZwlR>QupJ67|4bl_$7Q^5_+>+(_aZD2#hc|_WS)^k~F^u(2S4Rd}hB$@X z;&xk{iQB1Fx?7c?2IqCm!94K}%6_KOe_3~zF*sh(Fo^{nw{eHE=CvBbXfOXaaV%0o z4e{2C<31fFNsdkzDe5?<)M$3b&ucH?>~Y(Zv-n>#$j}Hs=V1??GnsP6Xc`z2Ww+g` zil>$w`>`(fIZ2U0f9^Pr#e>B!+1nhJgzmhfDtgMi;U9^w&sYgk4BOHh-bWS2WkXUHOp5tVta^v+WWp4H&}7;Ci3u26mP1jZi< C3V53U literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LookupSwitchRule.class new file mode 100644 index 0000000000000000000000000000000000000000..88dbc85d80b9ce180c47d3f042e5e1fc803b1d4a GIT binary patch literal 2474 zcwUWFTUQ%Z6#h<5$V`(dg_K+HQf(2EkdW3(rBGWbT8W0BrKBQgoxqR`3^Q>qKz;DR z<)f_SbuF)T)fb;#OR2Hi)n|W)zeC+;2<4JwnU&0(bM`rVpKpKrJ7@m-=lA;n&S6VJ zfML|KOBt)Usx7&jS}~(K>zS=}BQr5OJ!zS)X1Y_Vxol|mK+dw(yvppR?k<(Dd4?t- z$dGE)TX-;p+_LTroMlMlT67#Ir;EC&yO(IQc*|ai0z+`pTGoz%A)=rSp)fd(E07>F zoXF{>miN|+ntfd@3S`lowWJya)z-zhW(*3r3}dZsTgMThZ!2mg-DF6|bF1oxnlV(f zl$mvH-7Jm!aYZCY-O5b3WGs5F<`8-b-3*<+gXii-W=eI+(`qG*F7%2V`WSdTQIOG3 zD3@0ZH-bm;xP-?TdKw2+a0*W_$R*7!sD?+`4K_fOs5eD$8Uqr}FdW~EyoGNUnMa^&|BpFWbZ!%%q>aCpaxM3vFDkv&e!8LRF z$gX>I7ep>ED7b{nf=a8x&=qe$lPJQ3f-9J$WmLi=)oadgnDqa$f~$CCxAr-~^bs{a z^sZ;qUp_7&%h0}`mZ(VtQ+Q254%3vmqrb2Dip)xwVd!lVNcg;=;2LHbB-irm%Mgz* zGyv1UCSi`Df1xQ%5&niC=}p0QwgDRw-eTxDT81zd@s5PI_fDKYl_mX@gmP};U81g{ z+KxuHCUwjTo{I{WK$UJMp2gi$&>h{iY=$%OM%+$oZrNI{Eh6wMC`%|Yocf=o3UsUz zjtwz9c;jSE$Mlb4GlCYf&B+r7Al7u2>P06{)SdXt9ae&nzEKp?4=j*Qm`)G1E3Mzw ztuCy;U&R5Ui-{pTYkBsPc2yVmc2Aw>h=9zXWKC1ECk@qcG)H7|Bp%LEG)`Yf*3lup z8Pp3RAif!7KSrbHXcV9}k{tdO;pFgLC_mFMfOdL^Xc71}PEcPFeMHcKPHH<5#mQQT z+Y~ZL?Uj4zn!k&ld^#FSMPpSw5-Xe~t_M3rz4YeKg749cySr?^#NP`MvXao}$PY!zeCL@}1Nh-^I!@t1 zi!FC>@c~XxCw;Il2C##d@~LRb??1p4{l|i-=+MD&Ta12Hyvpz=@>RSpCa#Z#VnN^b zM|e!)=jET!ACtP}Sg>2Jq9B&c|AvK`k7Pzh>HeL6|4!~eO~<5Is0uBJ{j^7jVDPUH z;a{VVe}g#x7Nh(-DCS^NuMK%zCi@%_K2M%$Sfq|cx}7U{4{`@+WY-EkNU?;LLP91^W0?f} S$MxSHHmDVPX7o|mMD#zMXL)P@ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MaxRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MaxRule.class new file mode 100644 index 0000000000000000000000000000000000000000..e54e90e752efc48c89a2cfd27d1bfcd652b8b33d GIT binary patch literal 1312 zcwUWD%Tg0j5IvntGI>GnDh~+FYx4YA)&*|=afByRZ1Hd+_I${LN^Lv)pK9Qa9gKS$O=v%|S zV;wY)YMvWPH+(7Ft|R@GBQbnEaHI~6P>Bjs2tqPEwu6-|La7lESY^-?+qJ`eCM!lp zm0AR?=5=Kngsg!Ck{QG?Wk5%YFw?MI`D)N_OaF~%D`jTG>j2fH8MJ(yKMVP(#ugD4x>nSV~(yVnfxgf)XUNum_8ey6Rso}Tmzz#j1uw0z9@FN)>d);wTHH#9~b(9H9 z|4B7a!3J}mDwjvjD@qjWb+vO{Im8l{$+ z)D$7p^ag%MzOdCzo4W+qRPqT%-F2m3b3_oxK*uA(T0}-3#+VaZ%oyjVPPv?V32em? zQ!jzzY4i}9H)uYX3Sy#5u&Cw60)=5LadpgqM5+lI1{MGmuk&cei%afy#yGQnq| zVqQJNTnyiEbH8HVJ-7F?@)xWu=Cv~v7?psXL3KW(QkM3-NOSu)p7_A@fhZB DtYb)l literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MethodRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$MethodRule.class new file mode 100644 index 0000000000000000000000000000000000000000..85ee199f790931400cb08c6921ffe87a979692bd GIT binary patch literal 1704 zcwUWEZBH9V5PsI{aK^syau7rM5|W01ZEP;kkdT;?7$*c;LtcnnHBzLm?Ugxn+*!AG zg#N5bO(Ghp>gWE2{+Ft=wi83`O8#)SJ99fT&-2Xe{q@i9e*jp)3j;BRRX=Fje(gxs z!?&_#3w3Ot9=mqwV6W_Zq4dHX;WbN#qs2RbX=3cD^b(PtcqV3 zZdC-1w!6-_hRbkg*s|x;A>5a0vgvpXg-qp0oCw<$Uei7Z1IKF?+ZlBZB~I;9NX}Xm zN=3L0Tw$1O2SlOc+B-rW?uk|s)0oldXBl`VTOGw0_{zYS42wg8Gx0U9k(#ckNmpqN zdPS%}F@fv!Rn+TJsT97!yn&kx>A^rv+`fo1BNCyr$TG-dIIRP_W_8Ag@U^h6j1^x+OeQl8dj zD|CEM8Mw0`W`5QDG8mm`Re%_f0$i^)udz)FH!_0pRqwS^Z>b1_Vh)V$c3x z!zt~F(Cy&TYy2nqCl#w2McKq-JkbjIEr#jL0QLr+GR*alLuV?hj&edjNMRehCcf8$ zlsM78C%W*@!{4o851zjbngg|*lt1vJpf0x^eZSIuG0U11gSqQ@GAO%3DM{KSdzo;X z@^Jcdv55(Nt7#WUOy6qqkCL@UR*cqEZs{G8xup*4QKN32o0dmUR>D!j*f59)%3!q+gy?;_3b(W!N;^ZVH45Ad27al|(e@Xa=r zTnBEKiry__qfJlYJ8V+MG~VDLu90$+c!W}y=&P<)v%36yZ2gJtGwd*ElM&+{nlY_8 zFJYW-VTPC6Rnwi=&sAqTRVP5*_@P^2fzIe|jp#;H1~($se)ih$eLSO8&kCcNe-7(k DbA_8T literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Opcode.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Opcode.class new file mode 100644 index 0000000000000000000000000000000000000000..79606a85f92f9d5d5dd906eb03d3c1eff1ce1acf GIT binary patch literal 525 zcwUuIO;5r=6r6>nm0AH&QGtU86M+N8v&O`b7@MFRFeDzgWrHQ9C2jHJXL%qhCjJ0_ zl<{rx=0&r~zIn6r-emUkYxx1-7ki+Nl?K$r(egVcX3i@m-P_ z$ig(Sh7E>nqdCljp=crpO`%N_Iy7Q>ULddMQ%6QO!trTaxfi;^ABxCR{SV2LJ1=JF z^!}IPguxhu^T?GKo?27+C2XsR45l3fGV1ywj%BQ)%5d~YCyKxFLWg2y>BlovDJ3DM zGNzT$Kd9ISb+@EYx?<}E>#f=Xg;srm(sMdmrn?Ld@Kk8 Yq-rJE9-p~SoWyb3`N34(qUpA z@aVd~_QN@Uh{DaW*9jgc7LW?l@s0nXq8PGuRLa`TFb^0pGrMn)-y@3pj^w@5zDQ%`7 zQ0l56PoVaD$hhlK+jXAo;n1GSQUN=T!cFA!_DjGC)c;K3Rz8|QnF_(9X29Z@$0l45 zxcTQ8@der-4LKFrxd;u&fq^pRC?Jn6XqNSo<}$jXc^kc>xr*M^yoau7-bWv3uA>h% ZAE6tXkJWmj)>AlBH^v_g=WuBhe*n~wX%qke literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodesRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OpcodesRule.class new file mode 100644 index 0000000000000000000000000000000000000000..1417533a75abb31fb2d3b051fec5e6d8fc4174ee GIT binary patch literal 3082 zcwUuOTX0iF82&cdHfeGSZJ^~Mg>oxtnvwz*fr45}E5Woy3Xv*aPLeeoJUJ&OC%uRY zC@Kiv@PZ=BlQN@EC>AO+=!_4};P~XDFU~mn;v+APIE??Eq@<7_F*AGq-GBf4|LtzB zT>s`WfK~X|1qZ_#Gm{LNv3(+Ljfz-E&89+QDLvFZ)Zb$omN2ZXs*%t|X4zmmZYD%_ zM@|}!_0_gh=E)xCNewKn2gL9G2^NpRWq7g7nodz%g|Y=+v(+@z^h^+sTmCI{>VOc zL=EYxkqix48O=y`*(RlttU4Czwul+aSt3h;*PsD&TxeuiQK4G}b1{#>HMqTJa7*uy zOwab0vot-_uco`axC>1#EMTa;X+yz6EMjmbg~iY^J<37bYgcP2%Z0@ZD=UnwP>>ol zW2u5=ST1Wio~F{Wu!lOcLV+Kx3^OPK*{!IS)hsi^u+(1;A^pPIYbFXpUD9fsf}pfo zZQ72!Scwi7LJW)Upsf)0S2NU%$Yt2bQk%Fx+!}S`Zfcx4YKV*%Yq8FSdl(waH%q~K zY+!Ix@KIIIiCbz|=yYo-%Z-iX&QMdr4Z<}i$i!vn_bceeW-5mrRi7sGL_V|){%{!x zRlt!6ZJ~rlWPBdTR9D3`RF$qM2zG?dFFEW?Z_=*IwqQYc=b zepUXkUBK-$)zz5LWruet7{bncks^|L%W=2?w93LcdeooQ?45g>Kt-eU?L#}iXlcM>e~RvXI|TPCK`Q5jJ)Qa7$3Q7i#n z8&cJcr$|CG>|X9wph=0m^)PYsB2SY@JZs6?q$GgI;kt77!++waP&Mg?4)HU{Ohpn& z#Pdlslq)jjU`e=XsjO5TQ80=zhB^7-pb{B6NGjbn^aRbl-Frbdsmah$Y1D-anbg$E zGp$tcrsq%gi_p*D88UO3xaia5i`rPCv{GhG@C_Su<@V@mHY+G!?=(~BAVW_2x5Db` zv~Cmix2Cw>jBI%(w~>J7Ag4Nsu$0+e&KbYKR3t4RpXtC&f1Mb6BgHvb}eC-I<@wj5Ji zv^Qw)P2izP?4mvVacA?xWFD7`a#Q?0Qvb6e|H-1;nA|!hx2Ca!K2elNN(oI$+^`t* z?JESQPr{_!5zbqf+Rhf$b5cEU3FE_;uz%S1`~@6no4|{{SLhQs56?v$q1gnEU%*@6 z7TbCStEsJjqtbO1mj~H)qPuuI+s!*zg0EsGQH!r;qr8(H;cM9`qMz{f zHZ%iy_!XcjXK&+##1YNj!Ml`oEjxkt@IIV%AnczkV84ZSYVu>>c*_(Egsn OM?~e(q-z$Z;rkbis3^ez literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OuterClassRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$OuterClassRule.class new file mode 100644 index 0000000000000000000000000000000000000000..52a6cc65b6a3862c3f3b428a6121a5474c476957 GIT binary patch literal 1331 zcwUWD>uM806#ix}*<7|YO>JzdFtWxL)^02h22flSMf1~ zs^||Nz=smgYy-t6%Kn&{?;OtMJD2(O`^QfJyVy6NFzkE&*zyLaVi?ZEz~aHgI-fY! zVeie6=Z3-!UvYQj2*3Px8Vdi&;X&|j>IefGLo=?g^k7JYAMK#rW~g;zI(EqErS00` z0VS)(_Nw(6v?FgMQeeoK(2+<(#fk|7NroF;+Z89%$w2t;`9Lzub-f{X`rNmrJXdOx zF2l39X|HvNxa$Kkwq1r+wR_6XxaDwnZ1qClcE_D4s*DrxbL%i9<$&A+;-16?xq35K z_!-IDPpHm8nKip_sbg<%wb{o)#4Uzl1yP5ZjSknVX?e<+S^xrX@#za3ctgZbKZ z=k9{Iul^kkZHlGRM`zir`~ZYhDDnf4K1I?VNeaE0dgBYy^~N`tpGj1(N_T>cpwbiw zn-U{~EY|2m8&Fq z;ssShO4YHhCQwujG}UC3^x!h^JgG!YIxIpvuqZ-`c5j0umFR4tNJyhQixMF{3#zm| gr&%Fu*@=WKa(8)=N^~Aa_Y*v&SI&abkJv-*5Br}_fB*mh literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Rule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$Rule.class new file mode 100644 index 0000000000000000000000000000000000000000..080c17582662356304b7df0eab16c9b8ab4f68bf GIT binary patch literal 4962 zcwUWHdwdkt75?tsg`F$|SvC+LBoGiG$u0yc4@=|`0)fyZP@tiqpiFj$WMDG8%+7{@ zXt718^;uL9@Byeq5fu_WJF~mVCYvApu`~CabI*6q zJ+C|a>Icui0AL#PdB7Qh5wp2G(zH(klz|G*>sI)2Nx?(h!FSGR+23jpzY{FEA(%LJ8t01N8G()rIk_#nQtX0~;;I4{< z)f_Mkk}&`Sy>MZ$3=f7dxJtx^+*-|0>*K9Ws<}#O(p3h3Z6u`V4T`A=I>~ekrx~VP zsc}03Y2DzulJ z8QC8IolP~u48yY+72r~{YBeZ&oD5u>&9A;nwY}3=AtB$3u^8t;aYmLM4H@Hc6=hA` z99Q&MFHe#PrE9#Dm#bw=#3b4pRzs93hKbpn?#q%;%8=KCUqj(cw=-62(y<;iI&nr_q*(X;pYYq0Q~Z^Lqtc zO=*=E3-K}GcdcMll{QGI&y3B2NJLi^qr!{jSmD9PGftlr%2G2Ay}6g;%Ysjh_bqY)T%vDG9qmYy;v{w!kKNc zFcPN@B}H)!_XC3eDXzK8M?A7+DcV$S|xVYhW$RqQVx|X|U1B z$bOqMz5IQRdT45sL-Q=r5i%yjEsc1R&%4yHYK!a6-_QxgmO0nk2Q%KtDiWM zS-K<{C77%2423=R_3nZS=l-fynpC~Ny6f9u_V$V#T*OyA_%aQ*E4;^Lyoj%gY7zP| z@ws4|i(8srUZ+GW2H|DA;=$KwY-9*zyo#?=g2>a$hd*7q-=O~P$9FF-VX(0Fnv8Gb zI|Ln#TfOe@B+eBXqbAaw5W4gxdXDNhXf#&n6yiIoL5pejNW7{fTa4>et0fXnZle0T zh#$%LF@8cl6;;(uz56?T>Yp);y$l+47x_>b3aPQ)UlXb6MK}J>DN#|H_gY94|1V|y z3U5-8YDQRXU$#NQ+fK!{DV8eXw}crrBNmxd!xDZ^x-m|0GM6sTeVh z>Po`DX`ewlZM5&dB%*Fn%?;Ek5j2{5};wMTC}) zT4NZhXta}_`x#<4@^ZCTrG_54KX>3Zw&mn3$nInVnmIcnxqZ9H;qBwHt zIgs{%4~CD{vRK25q3{bd$N~RHZ1vnOOm8HFne`ob&wp(o#hfje*Aep#|C}^)o?uoI z^A-OBhdH7P3ma_@TnSWnVkrra`|BLxpx{|7BgR4hC(>3|r?46Y)~85%lYebmdVNZ| zUPzlrdV@cdmZ~Xfvyf^et@Lj^3%%P~lz5Z7U^RB3t@=3Upm*6lj!!aJfDLxl3^7(j;SK=4E3h(fRc%RdUG+)eQzJ!hBHLRGgW7GKc zteW0Sxnfs9nUmX81<>ktr<`bYhg~0>EybO_6WgF zm#YKb;BdD?up$9|_`~BJD62n(M@4`GXYnM3*nga&Iyr%7=tY4|;8`M0Pd-nf?>s?n z%4oqRx|W?luc5=x)e4z6V+e1-P_9v+H)1T`gz;QQDR0G8ZeTW#Vh-Po`P@V;y_fSC z8h9Jl@ph~yy-oZ^=zKfw;5XqOelzy)9d;n++QVR9x|R0X;S*lmjB2M$y-p$hBECetVR!-OlU=)=Xwl_U%1*<38W#fR@Dj%bT&fGcjDjv)YV5=} z>r%qtIeg27)xqwf$``5OJL!zKVmRN0BEB0zep`?EF(vKi6nvMGD@H&OzK8DFt^0#BiP z2T{LHQ3C|^n-t{{)bAWhD)dQ${6m`b3Gz>AvRIIR&LrPWlk)}nUMBf>hs-G)iXDP} zzZdvtK6dq5< z_y|g9xrgS%y;QpQ!N>1M0pE);d>=~q1C-YNn8^>If*+(=@gSD+hp>u2j7CBW@k40g zhhg#~*uo#hE&MU;;*V3=9>reXfkXTW9OX~q1V4rZe+n1)ajLVYX@)$5*ZH$}i=V*T z{3PDxr)ZWu$2dRDBz}hF@dO*iJJ|$&mX+~y-DSms={XW)Uc3A`D`SJG=*1k7#i`g} QHU#446NPn=<+|Pf2c&1~&;S4c literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$RuleSet.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$RuleSet.class new file mode 100644 index 0000000000000000000000000000000000000000..0b99b723f58a115f42aab41b97c049f3cbc800fd GIT binary patch literal 2077 zcwUuN+fy556#tz~U?D8wBA0?yR461_=oUq((2Gc|L_(;gf~8)%NtR@B+0fmMQvU#7 zoj&3}(APTCri0EnKKlpw;6ok98SkSrI^*r3^?aKx0g}$xhvYlocW%G)JLmiMi@TqE z24EbUG9-dlbn;p;vul^V zSHQ~T=CIQ;CjdW=vV>lP|jAalyQ^l-qE$fac_Q7G;E0~OOJoS*Aag`xG zmm`eCQdQ=bJjb;2)2V}8PREy<@DxExXb}uySjLfkj92^=j37pcxSsBK?uzLZ2;FtU z$5%y=gaQ?#OtxFfxV}PIC*!sDEjWr}GBiSTf2$M>VEjOi`+!%Q@C*ai5+c{L3Z4_t znhZPV0~3eG6+DkA?yzOpd4ZKXoD_-^0@+DIPb^s<&S}iZc!AKmZ>|))h*^%ZS>o9{ zUI$Yhl(k3PQXam7Xm?F!)`^kcuiN#LgQ4ZY-_X4*hZwF$eyyu0D5YRQaM_aOanViN zoj0zE^F;;c@G4i8H@pJ@A6$bVaY?}iyv6}7-Sv`o&e&R9WBlCUr0D00g4c18J7O|q z-77kR?)aXom<-Mt-6gy!;|;F5R;%DGyv<>4V~gQ+#p+gf3A%y|vP@AychkNp_j;8; zOco`1OibZjFFRo(_Rx1Lz8vA39ObL9R4h4JGqfR3s!QN!vD@StiOgTp5gM z1F+9#I@$Gyf$aa&n zhj~q@X|?moG6uKNtA@*nrxQ2PJGO%{2`kqzsCGVG#>6)I)sR}oWH?vGv@q!lOjzt3 z8{NUF5LT*~hPgt}cl_=69xe0(I_O6X&`*5hf5rs;g46UX=IJ*dW1@m1z$m0Mc*)0| z!dbk`5hc8WIX)BoBw6+=Al2s;xF#T|JD8WSjcBk*OSqx7Yh|22DeBn)e<{+}F~X>M z%09=?R9HRC)%Jz`>e_@`U%2AOHkSz>-TP9MdEawzucz=De1O+ibYqu>DMT6Q?`Wkz zaESh73jX2;_HRtmKR84G;vDZU(p{|4JzSB1_xW4<0q;MQ8hmQzcwo4|U23ic)C|Bu z4hCn5^O&t6&(ut!&nGF2EJlN~E9kDAwSxz(5VZaXubd1GJZNUMXN`jMU~VM;x9fgc5Pj=7apJgbNNGrc&;~-9&pIvPLJ?9G34xUMKv1}{PL|-xaU|Pmd*e4D z6%ZWw0o;-J_%DcACxS`|$On68$1`uDUt9b8bmy+3sY(oj&($d7nE~ zNtdA=wd^Hzh@RJL~kgp=_rLQ6g6x!>_lwRz-`=N zPzGlVTT7JbINbMNcy>Tz&~X<#8p;fX{{|YUph|-}wS7C7iAaQ&>9*LOoV3fw;S3kP zQk$Igq9Nx0B{{>(=zA44@bV^9`#LS*3WGj#KDOm<wC3^qsfXvksD3^6y5IAO`$VgtG|O@tABv;maYm`>7Ae;C||Kgwjph#k--%S zhb-3T5N`-FPG_-^z4{S31;>r-&CqzD)-Ir5;8t@}eUH*#;4D-!zagc3$GY+Z+seS5s`8fa2>3VCdhFGl58Q6Njrfcn{;lPOb->^C7>F_*WZgikAc?_r-# LsWz=9?jidd&VWCd literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchLabelRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchLabelRule.class new file mode 100644 index 0000000000000000000000000000000000000000..8f2d4e4ae021182d77bc546ba9bc5da1abbdc8ba GIT binary patch literal 1364 zcwUWEZBNrs6n<_yw$T+BlOf_8B8;^II(*k530Yz^8JakQiQjIwn^Ejq(ssgU6a7CX ziop+t&;BUmxn&WM$y)Qb^p|C9;_N}A7 zYi+l8n!XnaFM7_st}BA2H{5nb`_PFxdo6AY_w~RPIb;}C(=tc|LpIuT!lgQc(Mkzy z5NOl!oM?;0s;N=NE<>j2cf~ju3OdG+)u3WRM-F+0sg~o3mxI17f;csXQp@jfcb5l_ zoDYK;X_sLut!!eQD1$Lu^c;_2t=ih>AGqamuV=NR!0~#Gm|L=i{K(plC}QEB%HA%;Tnx z1>9m#dm>_}R7Xh?d2cgJp7XYxFv??@%y_&n3Rr=WLzQ7RIb9tlY7BXj+~w{-T+kiX z$`}o4w7+XQ)?uBYCPcwzS1+(@Inpyh}{R>SMOwv0`i=ckQ6peK`Mgc`k({~yr zTpCii$ixz+`4!qRW==6*x^{va3Qn;|x4BwcIzdIjF;-7dSMc^+L6hR@Cm8DISY_di wX{aJc%eWUSn`HF?lp@Id!=ZA8&~klN`hJw`TZx~?@%srHu_mLdj7^mO0C59hYybcN literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TableSwitchRule.class new file mode 100644 index 0000000000000000000000000000000000000000..c9844738e0da60fc18a0ddf0280eaa9722510cb0 GIT binary patch literal 2394 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 Y$(KluCiyb8KTPr!ny5oaz6w465BT#31poj5 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ASMContentHandlerFactory.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ASMContentHandlerFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..091b66879ff5d5ab8fa619e2994a051577fc78fe GIT binary patch literal 839 zcwU84?P?Q26g_vcW}EGrq#xFr*0yR(lL)T<5Tq4B0!1OULQ0_hH`xw#%kGZsPBgxi zLQ6rx2k@c9JKInwri5kh$J{&T+wzuEWsZptUC)1NyWqUF-I{W6rA=J<07a7DdJq->D3>Rg>%W0Ss0SQ9q zgr#nQ8R_6)Xg&{3&tys_y96)P3Fm5GjtF#2D8G)<$h;vmnv?GwxB3L9qfeBF5^6qX zQ74p|t$qcBc^@ujY_#a30*_GZMydKROa>}Dl!I7tPgjRB?#nE)`S{Q=pCTS~r#o%U z+oa=V7DJxUsGDWNTC-K4TAW;tf}8bS7psKr$+Z8Gd04@k-PvdDdU}|JYA>?$SFb00 zW@RJz@6%Leoml3%%3VAmtWQ~uuzcHcc+QHJ_`d_eA4|-yO;~{oPj(=-cR4%ayu`lN zzC^YC^a6A3)e9{AC>rmvorlBW3>;BGMR=%+SuFAS#?>|4$1+evmWGPR5(&)V0UBeP w9Y(RW`Y)^;wa=O591E9t`2CuvZ0n+0VEb3SV{C!-!fxOZdyi{`$Jj*U9~Xbg2mk;8 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ContentHandlerFactory.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ContentHandlerFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..db46833eb06ffd9fdeb233d13847af0e733ef435 GIT binary patch literal 299 zcwU8%y=p>15QWcZ;!UnUSZEuY6xw7-kt(Gi5d;OFU|a|BvUeAD*TlS93Ln6S68BmN zLcl3zV1CYb=6L!$0C-0`Lyhp^{6@J|Av*rZN^vOFzBFp#ot6-se;qp;#l|nTYa@Qb zIy(QG;epUC_?wksyHWFt0HLS7aFp8{!pm?pt2mW%;Jvz?e-iSg+j%XMtr0@!3V*8z xgx1tr@ngdwNXXD64DPrl^#AqU00?zdLFt1>qy}opF8K-1spe@T8A7X(p8?m5RW<+s literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$EntryElement.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$EntryElement.class new file mode 100644 index 0000000000000000000000000000000000000000..8f5d5c63cf5932899e92bded0df923837f176b96 GIT binary patch literal 367 zcwU8%!AiqG5QhJaHL7;7g zn{yfFoByBP|LgnX6Tky56GQ@c)|JvOS5$;IT1w?>xvsT*cD5kzt-HxgaPOI>noLO0 z6Bw=3tCCuoQs!HqK;JfGwnBm1@q8~>1Xr1II{87Bm3bSQHZUetPX*F!T~HG$YkY#f zz}25_mhU#KDzx?Vd;e%Wd117$tt;rM(j+k4{r0}|3k+t)kbBh1d*Z_*f$M)_vga^p n4Dd_nD&ok;hTy3|lH&A`Ai|*2;tWIXDKmj{T*T=H7mZ%h literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$InputSlicingHandler.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$InputSlicingHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..537603fb286b35b86adf298ecbedabfa0d1cdc19 GIT binary patch literal 2363 zcwU`UO;a035PhRrAtRO#0VaX~cCa1L0v5zJnBZW;@+Dga12*MADyfw;fXK3ocUKO{ zG5^B9fOD!KDRRg$hy0~fx!g0_l7xkg%NKQTPj}CIuY2_0+rR$-Fpd{7L>TV4-fr5> z?TdWyi^!!d{~&#IV5gsXZeIAl>)p&ahoxY{F6N8Q?y}_+Y~jVAF$~B;nd)0d={;c| z3eQi^iyf1`O@lee1QAwk>Bjy%BiSbef^bqq9m;Z??9z z={f;bho_X>UDGp+E?W7(^?qfT%w9(4e7mqvLa6D=z_ti!{XGl~4~kAPm|@r(sweU> z+@A?7waK8FZb8Js(XOKf9SnRZwb=-Ut2&yXOYaLEQ8Y-eTSp96r1zzcM#O0b*`gy> zN(VXNJ-2eUkTY=emc40tMfn{DwP3I4Gu*or=miTw`ssdPdBK7$$^x!kB+sWrY9*Wv zD3~h+!dE)P7mo7cFeti?AHz+CWNq%o?90lrWdF5}W?X5)5R4d73_Ty7jgIU1DvlA{ zj$xFc?R`)>(io%Bi&rJfCW)@ra$8kOO{cb+@D1+9aEBzkOu-9Bt>Ydh7&`NwumW*D zg`s~a^|9@eJn!q6lH1X&CNW>xW!Cq zwM*v3&~d@eV~n3J&Ktl|w+(Sla`ZKJOe#Wk|s#$QMn z{1lzW@F}{Cky9j%(NpyNp-Ow{w@0?;9_#d(JSK3;#thm_Y!}KRlb5vzKQ~0Q$pM=lc)$G@NFoBz%+Rg z6{d^mP{0F4@kC@;;5izS~qGpANSs`Lph?pUfgnajP@J;e$exi&=mqrb$ z3Z_M>zzYOMkm9@QV!d1xUYw8*^b=c~^{w}*_0QDWxv(`o=DOCuhoT#0(c6{iy?tj` z*6^OTVYGT@mmEI#>COOMyo5gf8YzBMqo+~P)1cLRqVO2V;;GWpzzTVs{8iQS8P>?g K71?z>N6$N;!U%2v literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$OutputSlicingHandler.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$OutputSlicingHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..99f66cc4326b61643558bf87b42c7b0d17f1bd05 GIT binary patch literal 3077 zcwU`VS#uOs6#i~*&yqhBil_ZP z!#S8T8Q2g*RS`leVm@Am#=c@k=7OSZ{;h^(xc4y_EoFg}uBhy`IrxX7gA7WSJuE`t z2&-6t#SFY9I#>yYJ5*Fd4I)Bi>Zay6(s`!}AN}(w3ex;L`Yh9si=ZVJ?%3r zu`82Giu67$X$sj>Ti47%Ep5o>yi;+<42NM;S=6NzCcEdjTG}miZ%@m7;oO#|xGCFQ zawapba5^PBq3%gtOt^+^IRV5N>WgCswjC_ImgTpps6lNN;#e0zf}!Eo-Bz(0YeKji z8v?k8VZqIyRBXg1QiM2?(M;lKadB<^9#x&up&;6cMN3PGDs*6L07S}?($%QA7o@D< zsBi~0GehjJEp6C|A~amCyah9*M#ACpNc zTBsP2)1lhCbK47ZPL-{8CNy2_-%Bm5H03?tMLwDuM{=uT8V*I)-|C(*RES9uMqde5 z>19Y*!-YG(<$vCB$zU8uR9LX3Mfbs#PayLx(Z`A({s1O+I`%*Y6pakz^VYLARKf}k>@Lvf4~#6W1k&ZKp*!;n+2rqHUm zgh>?kSe8h87fH~Rd6_0^nI2OkON~UVqanoU)9puv9Mfb~$RX{mG@`wg2DGc6cd%O zm_tR;IhcxFz>?Dl)6&}7wl<<Q|GuR*TU&P_7 zG1}6Y#p4XqXq5o67^a&%2T4pJ#?BM$Zj54_rbdpW5k!cjj}YJ=L*<{Knx97v{}c=8 zxt@Q975oC?M0O{iK{x*#yLlEv{1P;>$N6QL{0p4qSMVCYiZ}U}c#D69xB1t2hkt`J z^!y&bhO_*-NA}JfQ3bN62#Mb#dkSNoKBQ%k#XV~rPZ7~^97Q|%d@xBBCQ@WClvn2F zR^S@hK3aQot?14Zki~?88(oO!2qL}aL_~~dkztU;Dju@vL{ZrS&{noa`68Trc7!T0<1Ya0;)W;a|eY B?a%-K literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ProtectedInputStream.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ProtectedInputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..6abc9359ee7fc970095930e8a3c64d280f3c2ce3 GIT binary patch literal 1130 zcwU`S%Wl&^6g}5T<0N)dN*|OyD9}>!fEo~D17gvNN|vI66qHR@jxz;Uj;FF6=tr?Z zf>vU|iicE*1q*%$ac2^RD2Y_5i?Q$H%sKZl=YPL^1@I7#34`!h#%~~}jY5x@3Yp&(qXOWzBd zUK}XDAIzq2RVh#EmuZk|o$^DOFi-Kti7$@RKt_p)#o@MJ4l=C9x7xZ^SJl33;~JI- zX8B;pb$hWj6Gw3!(e%M$gay)D43(b#6hU4SMWPFHWbDF3)H+ygR9$0k6^n|B;wuBOA^7Y-zThJph=jYq>2Zunc+9bn^G%eD+fcB zz>xxbd+ZtfFILa^)IMYSBYOsB_*+sp={rBTA1KgIT;bSa4~<#ogSHeau|Ef!bMqX_ zvcI6&Yg(Dle^Lboooh0?m+X_xs=bX-JYq|s^3_k6KE?G9BTT=BnDRqRD`QLzwzK@V z6jN<=?G&q{WWP08wFevYXyFFdwSa}2xTPmx;Wk?t#%x?%^ya9}pYftOU}CGkl`TfA et>vnQ(5IrmRXypVR=tO9EdK*<7tqT9 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..ecf42b6621b9de91f8ee4f52995723f04f0458ba GIT binary patch literal 4521 zcwW6%Yj6|S75?^0LbAMITOfmN2#x_`OEv=HK!c4FBio=xm|(zQAWhct+7{8nNGmWj zX&xmZ2{g~9DKw;YL*f+LGz5@CNTE#|lBSvRt22E}JJZgzGwt*>{nH<9L(jRp$O4NA z^hfQ{-lO|C_k7>|&bh0PK6&RHfF=0Q38A1qnHmfv`*!FNW4GQH(9-e1NIVv}E0v7s z>2xwRe?!}r&8euNr<|}WsNv~6A+3!BhV{KAO1r;c}6_kc|XuGsPG#M~AYgXV*4ja*Ubg$kKA2#-M#PqnH zFw!)AtAgU>u%58G6gZ;&vQ z5!`I~R1`y{NQ|KxYM0dwX zL?<~U6KN-wD43N$mtx5cy9vxKDwE|eF> zuVM{I*F}T65!Mrf#*h?ti1FO1B8;^p7rDd45(QOt*Jjg&b(DCmZZ{TVJ?o>J_{@(j zMUN?}!OW{?tja`V{d&rUehQ~0;D&|)W+=$kkcudFkUq3w zDn2x$@w)V3`D|tvF%@wTbuJ@m4sz-ikQ5aN+Mzue$(Yi;9XnN|Sh|jZSSC#pa7L1G zlMH9wwqPj4(00*q%gv3A)x2PY)kpH)OP$q?jje7%6k+Wo2L|XF(>V;8xa}L;`FK); zi_K<<*(@cb90ZRRn;D)kq6U?#B0dYtcFU1qd)vk~@<#*GbmDQ+^JFFl2K1C0`%&Y< z0ZO}Sw!g%*KBb`HI@x3&&73vQsCX97QJQmRObE_f7b?K03tuJzR@U&suc&yD7rJO+ zj~2`5oJ)sP9Omq|>FJ0IFHv+g99@i7rTbX7*NB8BM!9-?Q^hNsr&D4wNqOz7ES=Z5 zyob0Nm*aI6-@-AjFkJf$b0p}(x9N;(wfHba`37~?#tgFFWNVPEw`fJ}&P8yl*t1*OKoGs+jvwA=--h#eC5p+rJY1!Gz|ty5*bpkVH&+#DpI+}%M1hytLGgZ?Y| z>Z2DE!FQ5u=|+<6RI8<1i`r6}Rf;lN<)Lql)bd}EXL=Uilc+i&r_Q0Ln_7tVaEUJ5 zBzr-V=c3wLdLQ-JsIBmg<7S`jH0JSRfzN*$3w^Usqkh6wC8m(s2fNseBGHR!B7*6n zAG3rmU00iq;75aurb1#+q{S!%#oLHQ)CQ=}P9uwD2!Ez^`}sU<@TI9A~k( zx56=wyUw4GafGoB8!R+SnNN`*G{Z#BPIyHM^FC+^33@c_1o zha}2YGu9l+?bw7K>3usklO?3Jg)E!2da;$Tt|un8(KiQia5p|TiGz>Hc2L`GBIxHM zIE8tKFhgRzhcL>+8Jl3}EVN!vWE?sXHOMRsW^te7qGW|#BDY^g?j}WdAryZMs5S8RnA=|Li$g?3P`73R4Hn$HH7pHJqH{6%x&>B%0TVzA;pZ*RfC>L%leT zTf`fAv^C{uYr^Mgr6R5SDS?Hw9w5tx`aIgcP(T_X`Hix6A`_>uD{)e8&#rjwb4D*+WX(2YafDPm5!NC~2Z;Ac znio(aKA@WRA<6T{l-VD_FMfg*;$z%F{UPyFY!nysq`E0b=O$UP=)Hhoyo|4t=Mr>U zQuWX;hi{N&CyU+_Ag>UmnMT;hD1-B7F*=T;Yi*QFkNGLP#+KQ=_T%ii8>WzJ=(7e~ zhgiL!-y0kSS62Eoc#bp9F?2R~zGGS~4W93s*3t&g3Dc_c+DjiiipmDhN$T+0-^OWb zOPjMeL!<5nubr)ZHf0V6G62HYJ z@jGl0zsEh|59kwrL{$6U{0$F_zvD^q4?IijUlRY!BXTrHix>WIk zMdUO*CF!$a7WPm@_?{$k`4y5g^>To0R{3%|<^?TdXsmh*Rp*XkCLcSQS)7wS{WMl) z_1UO*x2>h>$fci6D8j7u|AIsOn^f^1l!{NN-e1Ce8>!nSu$20j*&KO^wcG;Wpd0cB z6fB={Q-Kh})WgCrH}5GmcNfchY9azz#%(S*ZAB=x6~k*&^U|i=+D+g+`TQY%1jx4r K1@GenRQ?y3w3{AM)pYdLy;xn zaT14bjE-cMX|uBV{M}oltTY=Uvf7+@C=u%W;)4idk?w`B^I8vO!sAI;9i3X4+7}|- zjYoh4I%33b4yklFU|S>1>I171^--=T2liw=mI>EpoW4USKUJx+&j^j?c;QZ~M<{jl zuJlnvEx;Aj3B_isR{>!PW;rVU+WShb8-7 zG5MqJq$bA)#+@`GBZZY0+b1kGTREDm&%|+fF}~(ufzbMIIv?{`blnC7e^VctNNy;1 z^Xe%1fg2Sec$ucsbYhWZGV^ekurz^%-)Fontnv(tyf2}^i-*d;s^CVNYjPK1d6m6w z_KU1*?Q>My_s=lZUO2Z5}Ua4H%ql^-Kh?aWaIDI)mM84SbNn5FQp7 z8r?*SCsj5S`BOej1;b)j#XKGGJkjwa>6H5knYq`USHWyI$f&QzLYm4L+7qv)Gvt%h zTdn_97<3L}F)kA&3lFOdOTTryz3B>BlRPuF{{a&rPE{ey*#R!$vWIns<>QVEaYeVs zeV$guK5gu)Dv!lZqKmIj%e$kuGK9NQihMieMIp%A4TkkOeW8ZWb_Sbt4K@vzhNW+V z{yH7|2xvY*(GKM;dI#+f2-~;bq494SbJ_f6NA& cWB-Kbz;MGO-Gpo5s+q50!)P_-I&Na^7X$~+WdHyG literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SubdocumentHandlerFactory.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SubdocumentHandlerFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..1f469d18fd4f6f616a9a3821a0b8fa821628cde5 GIT binary patch literal 749 zcwU84+e!m55IspRYwOy2*VfyM4{ZfkAAArmAcdk(RH*blyA8Us-9WPS@>dFq;DaCF zM~RcI2qM~t%w#5KPR>m7{_*+-U>hqAIK!^em!9&kWsuxT-xH?q-Ss2yT&qADqx5=b z;P+H8=*u`c7I803auRhRJJjBfLn&m)==Q;vmnkGm5mS;^Y@0!?gKz8N+hh zve|kg?!2Fsdkp#gFbm+9D|Be%uVgm43Jt?vdsLf$&W?1?23m?l{*=kETC4xxZ?U5WI*_f< zDk**6wP_!M!99s%shg27Mj8i8G?oz}87hCu#1;)FLn}v%+ZoZ%;j}NHNOqi}7R8)= zvGD@8vGI)ZV~Uv~TcTRl*SzbzGyfWQoD#sN@>fhSVr{|))~E$ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$TransformerHandlerFactory.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$TransformerHandlerFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..e1b60e17940558112b7f0a96fcad58536352a58d GIT binary patch literal 1724 zcwU`UTTc@~6#ix@EG^4Lu7W^|a%s0M3o0UlD56A@dI=CBkJ~boCEH!HJC*wCFVcid zltkbCQN}admP;s9eAt;YdoJHM=Q6+l{P+oA8n09+40EoRH{9$l&xw7WHB7%?lnS=- z!EJYc!z2u9aG#4ZVt`Z2zpN%471Im@ zXOp>Fbc9vluSz+-CoI>A-~nb-JfuObnXoesbcJmzU-V4rcIvO;5oQ^hg}Wv^%gIw8 z#LKxYG`aLO(yGY8rT15nV;k%=w82i#6542O zr;|@{_uhen6lH=sBYIG1<9|O6HIL; zk8uAOkADSmhY_W|I?pT#O-W%$Nh7LEBBmGtvlt;#{0cJ-U6{uLMTn976pJJ&coy98 PIhJUT&>w~uc!`0((}?8t literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ZipEntryElement.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$ZipEntryElement.class new file mode 100644 index 0000000000000000000000000000000000000000..0ee908bf585b58771467252a9ce494883d584ac7 GIT binary patch literal 1140 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 e>c_X83U$(JKS#!8=<(7=nb`7 zsaT@7UZ8wOED^JI3PgNiX;X5gjpL!FWWpkHw~>g(%~X9cw6$1NEUAeI*qf43(*=RM zbS%Q%0tf#eOs$e?NjR1;+lB_Z%~Xfc9am>g_89Sqk&4Oxb3(h-7fTBS!wU}$Jtg`C z?z_{@1+-y$UQviv(j=7I?NKw`Be3hgJ#~p=%QG$-G*Yz7J-JYZ`=n1-39PxJ^_s{c z`hSfM4NeXB3#^^1+-JrI%~U$nV3DPJ$THKd1A}oFs<2L4UoTMRtBE+VK>$uHmmg|$ z_z@7$jc7Cv6FA~qNT|M@MDD=j#3mWO)R5`K0|Jg?Mm){s3KzEEVGR!nRLlZf>4RP~ zrDH3$2{^4}){=n7*IH9d;6$a&(mEaW*g<_Bt=%$GmOyQ(W6ky8tmjmS$_$IB_2K{Q zWaf-R<_y(0-r0A1RhrVg3yo;j&?Ior{I5E8p@lo|HLa$&k!Ff7_02t~64tx08&7Cp zf-af&Nyn22GmB&ChE&QJRdMfPz(+_6yh!H)`k* zxO>(}@qH#!pl8k%1-5Yd<%)@InvJ=l=t%Ur!7x=XD4A)5NhV_K%sH124U{g9g-B$V zyTa_A7q6_*CE4=Je_E)k7FLxqC_mNlGyI%Bku9WPh6t?o)!b>uIPsByciz5dS)}z} z%4Bsp@oT2Vd_~z)q|V1Wev50omoP1uy|P)C_R>WceutYHZZJ^aILB2yb0b{GBr-H? zCVF@w5!g_&f0fMDTRJ|KGr=V{HIt^AIkR%LCx=o!W=l*?es8Jk!zO7K_tR7v{~Y{t z%UR58q8!Y03V#>#zX3|i`M%2^2(I!vymng#`gICySi)Zy-(X$o*oJ$!+L={G1WU$g7youG*sOrpMZJp+Idf$39Rti#WdPGy$(riTGI*vK81N01YZoD1%fnsGp#rENG|zG@?KcWH4F`dYGUSW7tH{i2~3m1=^g!>G>e9 z{T99}FafvU{aT=Q3g2fy-pJtX*)*F(Eq}Wi)E?GTlmRsv+GD&|_hJM3P{;Rf^fRrV zW0J+0Oan}%I8O5S3~v-?@jTu_3Rn347#40~2-8foFPS2LfVc66xXAx6 zlToJe7u+qAY$lDllIbbb>LPx`6FS5NT*76h@lr92F}%w(u7VHmu>>4ghqd^zO5+1c zc9^n5dD&U4r%Zb0JXYsq(@L+OvfFvRuazuG+23bmJeiaYli!z@b)lNFlaw9FV+DSK z_j64zLJP9UTz>a>AXr-vrEJH0hkfdTI=MfqnJ-}1%*nZ`%oVVUK5(iYe-$6(IC@x? zvZO1fAv*n&_|QF376@kWi)(qR6{?wDBJ?s%j1l%O6XQKL%S(#7Dr+E5U6H4*$WaS< zLC+C(lF(K__^YyjC_y+*=oJ!PCF}zden`S`MYt?$pomb&%Vmyco1*0e^ZRdL^(1~X z-*pp&e5B0jS;d?=o4oktjQoikky{DRG<-+!D^z$LGyR^m_<{sCxDy&IZ|^<$V22?d9`-13@z|qyPW_ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXClassAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXClassAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..492ee2c54ea199365d3a2a7006b62ba88d832470 GIT binary patch literal 6837 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXCodeAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXCodeAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..a0656a5ef67ed78d9c8104a37d9f99f29b77962e GIT binary patch literal 7552 zcwV(w33waD8GU2RTE$TgD{+X(9Y2VDQ)+`Hd5h^1p@G9^$P*V~PFtKMy-1;#aR&^PJTy=E+4-J5mvVvIvTnwTI^STS$KCFP$)OvT!J zO(WgZ-4idyWCV(7V5%R}FkQf>cXYIwddd_CS6JJP>xs_lHoleUtj{7mXsTZBZ(MUM zVYK#kw;QSDdVAau2s9_7dVGbRiphI>(qneTsO8+|L-8dg7F}dFl2G)59*r7l8Wl|f zqc%z3NgJ8#rbIeH+=?ctRVBh2s)(NpuS9NaPn#({YT6Ot$9z-^Xvk5M}8Jz}+EW`=)kD0VU>2q!rmv8PdEZHViH049~p@r`4Fw#*OaybhG#wt5Y zV@ABgGE|q((4ovou+zA|WM9Ha`LLY03DyP%zk;xehlOF0Ke@NN$GV?J%-oo3mgPm6 zT}891*vM#FHIPB~BHXR&xIfGPjvkgxj!7zEXlb5~H@>6q1)Y?(0 zJD!%Q*VP;A>Az^&EJhbLXov}nAG%Bi^G1P*6?p@=8%YhcKWF#~5!cgcyF~cWgU>P5 zjD(eHbMr)bUYIVV{V>sMsjN&gy|XB(NiOZfW)1xez+6T$I{ny!0eYNf7BdP{u^!bs z=2YaE%Im2>u8f)RX^JJHR#KcpQF+6f#^01(UnW`!A`5F>UsF^a4gqJ{xLp0 zEElyjW`$QWxv{q=dppB#rfKBuT*+N*G&U20zob*JMiv*s2^?l+Y;W9*HMSakjj5Er zIa6kGH>Jw;wNi>$H|+#0;ZvIz>7;pLJQ-y;pEW$skMSUH?YWN0n3nC?ha0#NBhlf* zjjX&~RxkA7X4zmFl0MwRxXuvFbix+BKkdWqd_vc<%||!-a3>$~PPJ-2yo+YJEVIR| z4lWS?xGm%(?_UXiAGxJtoeACSO>s*Pka&g=g@`3OjQ&jN9Xx#au$LmldGEu1*1Ewb zbgf$3m`Ef|-Has@i;eX_Y}fV zb#NG`YClV4e*S{xuv;ArGA9w&nXD{d&2XM8v$8tU;fBaUBhc^9Ew}!8^w<| z@Fr85p*N&8W*T6wZOPtL)L0smVKE{5Q((Sa&o4p3@UMt}1@fDRUxz_nkAlp!(Y!O^;R;}GsB$;_ zq5T-QYBx$Az{IH~8qU5N<3oW-`!Si5hws9ad$_UyGx$4+Hh~8IHex&$@ff`XbMR@D zakk8|h?$rLsH@p1C!V~T!@mNQ;0R2x8C3F5J`;n+y=vlQWz26qw2hUZ0`u$_n@GJt z&V}wpXiBZa^2k9$#cDwd8MZ28ldKmUW+ga^d{{H^DJ-zf_7UF0e`nhUTf>1!;24g` z)IF%%g$4^QoCOq6ubfJOPoorVG{0N{hAdMK;A|UEUM*Hq_%MaiEu~~7ly5{5Cvki@ ziPLFvB}uFzuB!`l;TXzo#kRs<}fI87?jaF zt%|{9hru$OVl%j#47~ie!Ddib6f7c#Q#lj|b=Srb31{vUzo5q<7%a+Sc(}6H#SDny zFl=BvZlv$yIDzMA$#kKG=P+$>m^RS0ttx&R=-gHn;|+?vht`f(?2E|$v;TMYy~Nu@ z_I+gEPxhP1e#OdoXNPcSZpK<$#tg9qNOUMnJid}ML@60L*YCc+(ruL6aE5MS(@ok zn5lr-e7H&i%d!+jhs$|#eVrTF;D}W2LgyaD30;-(7^hNuu*ueBe4sX)(L#*l??pt~ zPTLn_3@+i!4&r^8VZWWpcPXahD`a>Xxm`|4zRI$ADdyt}9E&Sm?CTu%by$zjEB3Vx z`>js>*kPycf}Hv>#i}3j{%j6+Jt@JqA>OpA{5J@46^UNW;(HC_?OK;d7dV6#s9GY_ z)wy<62|FJB0={Tb6GwA?l%$xQ73Xne$f=3*IWp|j#FscCp|It3MfbMaI&UcGl}R$C zFrw{5IAhZn^f_@7^pt9~nOIpF^l^vVG*PMrJqND;?^Aq#7cLsya)jOiZY0Ha0pnpVgMS?(<1#++QN+s`7nX=Y-pgjbHM3z)(Bnu{ z>5}O7+Pb1put=5^O61)+Sd6rw=13GS_1X%l$tyS_Ri)nfc5F~JO{(S+@)sz%GJ8}0C2%jB@SN1M|#S7oFgo5PpZ8pzia2|VFpaI$j4+WcPtCVIC790l*oijVJ~a>INt?<{zBp&1@Ig#e zGxu^t!d9116P9a(9#@uGz6}<+rc{M4^=1^gU!~p9KJsTu{uj3YzjC90<7xPPI`r?{ z>^~Tm|72VJ7u)&!><|BDF#d;)^aG^uUu+R@rQCoc#DF>u2zAwB9}xy{pM69aP$A$^ zS26^O)YUGPa-(Q>iJfx0onymA_OYSH?f5+$ZpT|{WR4MmeR(oY6v8Jwm@JAgPk3>p z&|H43ap>2u+E{+9QBthI10y`Vz@}JP4M6Cx;wTf{yVYO}z@5XD2)bqB0LifFKhHG7%F* zDJF_ZDCL|4vD$pl*^76mEn3(n`;0!0bXLV*{vGFN?j2?mNd!X=;Pe8~NhS)DNf zWq#-vpr}+YS|4q~VJ4XNFY`Ab|I^<#F+f&QxNzuxOsw3CR|@bj-fF3O98=}YUc4jN zn(A8Asu2)JVuq+er8vsvk+1_FwvUZt`Q~yZjKCk1r9b`; DEN*tG&7k~)U*H$; zDpe|_R_VJRW!WryzPpWtx8e&&#j^(2(i3ZvYdkD z+v>Z17?kUFl`xS%(KK<#+bqfIjh&>Ugn-y)N%BXP%O26UYTB}{>q$!;5pEw+(5vJj z{F*`aiOm?8C8Un5q!~~zCxoknu+=yYV+M0d*XxAB@dJH;;_^v`N6&a!R7xxcUZVBY1!uDJ2c+Pp0_-W@SrtUWX*@C?9M3~o8{Pmt~L4Hr9_7F*>KO>rs zor(3tdM3Z3uN^z+Uipr5FQ>lX{2ng-+||MTeAh=1z-0~`LIfgc5PjQxI5lodQ<6dDxO|#NRkFR*h> zJc^rX-`qkjF#YgcrY41-uhm0{%{ z$U&&~NWmMyl25A{Si?HKJm4p(E9az$_$cf}uGo`_MdfoZ-$+`pNy2))7H;6?ij+@kz%s}s?%x$V>31gl#Ep3qx0r?gMwFPAX0f8!!AVf{UB3eTe6NhC|2DZC(cNXzcc80!c-7B7H zW^HLH;VkYMqNE5GLmT26IvLsnptSWRX^Ltd4c!d==TE6n3!{1&dIFTEq^V~eyCj@2 zB8D5dsiB{t<1)$#+`<5ZRuF217wO7clc`KdHswgGkdERuLlZX);kt{v!cwcA@JOJ$ zNNGsY(#0JK3}Kjb6(2lqk^*hXP|}wh+rm)kR6dIP49$ikxDpG#IvJa9`n{u9ddCt< zU$c!Jp~7{KF?3hcz49z2i=pd_;(>qko>aMI4U^}vDw&xn_Hg zA$-LM`Om%?@wcO&`n8r`5<`vOv^1-sp&?3M*>qTwLGG}8BKuyY&{ zVpoqzG?CZ-7ma4L0Kv@9N)HIv&|1#ZW zuVwHMcg~!973UNq`-qVl_1&Q_XxK+n02wbsjxj;Wr%ui&zX)i}5an4U@PtUs6RoG{ z#v*#~3cE*YO^CaJ&nZE6>W6c!=qs+?n9a**_wn BF?Rp} literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletTag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletTag.class new file mode 100644 index 0000000000000000000000000000000000000000..141d5108f1de00876a1e1cc3fb89b5b26acf7694 GIT binary patch literal 8668 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 ThB<(CUP*?ebvhxdq$mCttAo0J literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletContext.class new file mode 100644 index 0000000000000000000000000000000000000000..dbc0fb5480b04ebeea434fe734792756882858e0 GIT binary patch literal 2750 zcwU`VTXz#x7~Q8$I%ztkH(FZpQb9}8v_t{91#4>ywvv`hp$LdDO^0M)G81Mdl%nDV z{So>HeDML-l0tPY7f(F+?%z@OnVC$JG+nM`vNALIF8kZx{?0k`=ik5m0pMMHub@TX zNWrRP@}}mxWz8#QJli(ij8-n2x_95u*K{W{W0y*{HSL>bY|GOhcnV?y-FLM6TE^6@ zLgw7c9X(HLo4}B74FEEANdih>cA1;=!z!L(W^#t>W$AQ1N7qVp_SHD&G`F~*mFaIg zWmtwcDbPBaS{8`S*sFRHt>{wG0aZZ{6SwlF9YaO|3^hO)vm3s1~!2` zqq*(cWmC%?coX{->=W2kFPe(C@HX`zhCqLqT{Dkt>KbL!LipXy&;`_j?oC%#4SU8k z$^r*M7>hBNFXpnT`mAbTHi!*Pz5XtVlltzvqigPo7o0EJc`>ZHnTaEMco z8iX>9*6O(AIfhke6d{mKj%8BC2bf|HhNnB4XFCD|)nfjb=0iK9Kg6tpnW|oOUKOWt zhKtGacS%IIc9aRs$pEdSOXWXSaTd8?c;_{TRw4zrTg#(|83vx-d z>Gvv{=}OW|DlXwNw`Wmv7kz%*f7j%8*oG@0G=XFw(;`XHU_=YAUJu4aqH_Zc)v0#c zs+44$VOu2o8Ez@K$rZj8Fk_o0RiWQip4eVvnaLmK@}YX*CvN;S3fdTPj%Oz*2$!vhv7$bB@@ zglQ9A3LaL^?RrRo&WOobechE6zEtrDU$F_cvZVWCs-5VPzbn7Nq=IjmUgzL?Te2%o zUO!{Vb9=DKaePoF#D+QCR{r8>;aie#49E}P3B1Z5-!=4h^67#f2kaethFxR7qxZ=P3q%p}PgI@Y;(QuUTHF(1mH*ve-+D8bIJxyyh2r9dCs2v&@tf)UjXD zm)^v13$AS8C4Jv%(mCVf3m)L{M!$g@qcJcmxwi z2JiSVJSan$Qz5a$a~w`@;6x+R#TukUgp`PovP1}wer8OZ_et5}Cf*k~8T$zbhGLtT z7I=a5!g%jT8<<}le~F%nm*|{ey@ekTAAcfaE(-kk&tGDz{yu+NS1HPM?7|HU;UR@eb~WXbVJZ<-LP!2GipkFt@Fg zb>1KPfWtv(1lWPH-@JUf2ZzxDF1(27)+!vN`jr=0Z*2C_4l6Lg75JPe0ot)pwoZw* XfiE`kwLl}>;~MQcBkdmhQQ!Rwm(6Ko literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletStub.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/CommonAppletStub.class new file mode 100644 index 0000000000000000000000000000000000000000..13f91ee97e8f261ebd3e6d897b72ba33b0a559aa GIT binary patch literal 1891 zcwUuMTW=Fb6#m9`vW~Nq;9O`EE=!=)c1*T`ay2a^<`!5kO+uvhq0)Fg*o)S?)_R;E z9{S$?mOfCaF;XkF@BAplnc2m0oIq4X_MDtK-}jx{_}%-z{{^swH3KPzrAE-TU7vS4 zZ7!R(3`4(T^LE=8a?2CjBC@Mts}%;z+O;mbH3J!jiI;qf+ddB(_S4!+;YtIe3^Upr zqwQS;Lt63%L)kf0ECy}xMuov}!$68xl3~u-Ph5>JDQ-0OGfW*2rtWWgfhT`p_@(fF z68MbfK{~}vhDrkcjKgF&>Ue>8(rwj5 zw83k>V8}b6%l%CrdFubfnUPJe!*J>F5{3sxEy#MEWmkGzLZ|dIi8h416T01&2;>Uy zkbk03jLQnBrsr!;C5L&OGjNunbf{#%YbH*^Vi<3zX4QqF&f*&eD7K=B5*A3j9f`IG z>K`K*<_pg5Laocl3mTQ7bPQZznB9$9>ju(miMy{{(Ux8qWMMNDm!%Y~wiILqlCy|zF^4ji)RZn#eFvxycs80*xUGgjGdA!Y!>N8^kGcOMj9Q{j zl>JN?7?or>pO2!cnAD|bJmM`OMZ|Fa(@hw3PYG`wS;P@_phtnz4UPbiCI@J5pF(EpF!U01pkU zlFWXriAQi4#yUc-gx#P{Yi)XSJ2Uid{N z0gK*Pnm!}+ol?(_e)Ur7@#&ME9-Rh#j^GQ5I!cyL{tTT{rMH+UE$m>jRNldK>B0_< z|EW=5(f1570#_*V8nIm`^bJg+f?4vGVm#(>0??MyW!h58DQzijmDx$0N|eiVs;E@v zkG{^R_B_`26`E3U8c$ zQ2r^uxbPO={-<#&^GkcG=j3sz4uNBMfjphF`c5+?D&zEbnfj#iqdiOXZc~hkGL_y! z57&FRHJq~?U^Dx@G_i~o%~r*ogw0N>A0f8sVVYkDN+0Q$ei!!=@DsfnaVp2t>A4d< i+}|B@JgncSh~G7j6~_*w^OzWzww{ueBKw&}|M&rb|E9tK literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/ErrorApplet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/ErrorApplet.class new file mode 100644 index 0000000000000000000000000000000000000000..ed7bdf61ae036bac43a2f742f41a7a87ba9d3bf7 GIT binary patch literal 648 zcwUu|(QXn!6o&r+?8<_cQb8(KPKmY>8!E+^iZ(Se-w+5?7MUyX%} zEb>J>fywFeH0RFU$ojd!f{SZJT$sMxqDAn$@tC{}Ku82U48I)1lDk zd>9I{!&f674!92NdoAY7We_oR{r_>7@Xl035iMe|k8C8Dhsib!TmFLuDd?W5SdYZ_ zzz$Hl$L-o&yrspnupgtJoS@U8*OXMNH#$o^?W|C^SmN0N&sQj4d|2YeNoRk7>W`n4 ylEEuFt5ghhk;6x9;xk!!fHycqoz!NE!fWg%tr`?*P@@{PYSIW9y1z?E@BaW6w4e0= literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c02a09fb7d1087e28de9e8115dfad445cfcecafa GIT binary patch literal 828 zcwUWBO-~d-5PiKnFv~Ey0yH*se&lULQR>Q%k|@$>8)Ko9K@HHIgds**J4#uVHR6RUM@5?&O! zu*Xt-6lJoS3DIKc{MW-j1re5TC&X=r z#}n-n<1Q8$8az#fG3~B{Wmb)ZvNXrOuF6!rmd>XcM}O|-Wr*J>CCVMwT#$FoU6tnA z(D-}84)q|$Bdn6MBdTC%t-T+&Cc0pBTkfgRM^{F1Naz3oy+EV0@$}g@G`@O9ME}S$ zPl!d966##=5aXKf)4+8!>CB-UglZnm5vo&m9t)JYNx6WcMX&XekXPUMj$3~Vof7ej h7iwLO_*-ZS_q!X!V6EscCsC_o!RWpqW&zO zOnmSM_$z$%PZ;kE1VU&+XEU2~@0_{ko;$z){rm->kBtx&LMPE>6sMvnGGRxNH6|@0 zk!7j07fODSd2}F@-t6~61cZ%A>_l3V+2|;<%4kCEqteQLB7Eo!K8p(xr9vmsvCWlE zwx`K#of3i_Gn5TfG26rpYJ}E6X?a+V&t-lh&QnQP7?@b3ry^G_zDfpmqzXcJFs-d^ z!h=nrjs7+^WzlnG?=*Ca(!UkGW51cm3ppe#PVnozGgdT`r#;po(ejbiPMkfgP1M1yZuiyMY{kvy0_}}o%Kg{CkG3s9O(8Qdt zQ^!NJ_{^b4j4B?@GpcfS0gpNJgmVE$i(c#fl{(#s)O>-zUZ8z>cr8G9>IJHJ=J`ul Q_HB{B1D06vJeeiN=LzMD&k5 z^Nd(zDWT3U9%9_|eHyrhCY?ESn^4W8JA~?#oyH7hW+@j?H0QNm67uTnUvT$tq0dA- h_d>0!5q}F!;Gq|)T|d2x``f|r@c;!m{S#3BFy literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..ce530d6f994b4bec5d0bf5fa467e443e953f33fa GIT binary patch literal 828 zcwUWBO-~d-5PiKnFv~c)3bNoQpi6*77{C)jy%0=H7CAt;cxq-lvu$R(C(}KsKg1LK z2~Qdi{s4azvAP8lbQ5cBK+;tHFsVkN8P07$&2e+nYZ;(myG z42vV}6XOA<7#ciHg)!|d2g|G)2xV!GLtT}rcrBez6OO*_=4FWAC?(2W*IbZy%{`Uo z+R*s>!uEA9#uGdxX9rZl&{}>sY)x!{(QUb>Mju@n#UY_11oQ%p&g!$ZuV{SnjEMe` zXMQFYSxTt$n}--TeV+zyp-E>B-6mA?=nkPeWhXI3nY)w=D4Ofgc5Ph4tb>bL83k~I)LQ3<|)(vn$L0m$SBBkZfsuxaMXXPw%){(tw;LmV^ zAHV@oao`8=qY$$jR8$&7Y}uZfeKT*~jDP(6_8mYAEf+b4jYy4yFy>h{;(8G1B#EM4xl~fWV0c#Rz2zr7h`EY_1D#40 zwdaY{j~JXz(ia}`DEe5yB15?+mDnE-k41XOk7L2G+)F|pAMsQg|98;Q1DP?@dvmI4 zGnA@aCF=b!8D~4D>Ve(@gXkR%XaGQoP-Fp|G>bTvQku|DEAkf`?Vy zba8`WeJ(vdZs9gVfrp{Uvg#9tO07QaicfU#QVxa6sBYWCUEFtZk74Og&t0WOBvK!1 zctAz0E{gp_S+|HP9=TYjnO$V?v4I-H!bJAIt8t9l z-9Vwy+}!$#!e@){=xMj&!vHc4| Coa(v& literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..013b28f1473c724afb2eac7b9af8b856afe181c4 GIT binary patch literal 974 zcwUWCO>fgc5Ph4NI&lo4g@*D?A*K0f>juOD1#t;Qij=~kRWF>j&dOQjtSx)f!Y|?k z5(h-Zfgiw+Ld~g8isyG%!`ooDc|js^{9BxE$A60C39%AyIKlk4pzlPnZ3rP*28w7z9( zF!+6?MAkDx1?{oAqry1JiEvlwQ8M%qfR^NpDZ_|+Gi&772BSa6Tm^dQ_aWaUYab5X zK&jQ<*!+spXN&OY?OEgpLeYB3YE5zQanaT(;S#EJW~|F(6|A*LR*|AhxI&Su6m!U1 zwp=}m7*yp1*V-qz{RI#Hru#_WPnNDWg`Uz?(6n?#YQ*HUv0<~AZ2?5MX~|Zw^$U%H B>oEWT literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class new file mode 100644 index 0000000000000000000000000000000000000000..5b0fef7ce1076033d24d2303a016d53aa8b61d65 GIT binary patch literal 915 zcwUWC+iuf95IviOI!#Oig@$sckkVWLw+JDjAYP&(A*Jm@t0KYE##tp>IlGp3UEr_a zg#r(J03U^z-JnV-m543dGqY#r%$f18-#>l=*g_{jfnj5$@+eNYF)6p>$ZDOKh^J{H z?6DLdL>BFEsT$7%lo-~|1CNB&sg3qhE45-+cqx^%uNYo5`$znkM+sM>Xy0a1jk@zh zT89j!o*s${idYPB0SgSZzEom2pA1BHzz2z7SnlhXCx<+f&i@-M*|9VXt^S;@XGRPeR?d;@q*S&)#=_6W1gJB#|2xCegbG%1Bfxcr z^||zfxQSZ~Wgf@En8q`b(`-$<%B@VIzBIO5#U0!WaF=0e_9Vm_?lTnm@T{7>!I6k< zxAo4|&PMq}C`-cjb)LoIwRD4Dbo@_T3PbotDUtPDw}O^Y+g5R+4b5Xm*s&glXrWE3 znotHqz4`vUxnUF33fxtohyDTb1F{ZKq8li;JC7cpp!~%nD)g>+u|HaR_nI z*C}HOH9B+FC9(?Mx=dD)qRY5Kk*gFdk+Ni~Le8=qq-kzoVO5YPtSD!*p b>8g0(>56FhoOL|(Sz7R~B6nTL3L0=rUW4mT|w%Oex{w!ZA z(Zs~B7k`xT&R{^K#O`J{_ujqt%sFRffByRT8Nd=AnMg3qwPe?JJRU_I9=Gi{2)xMV zosK8s16RBip}oyrSy(e+FwFF8ZizVP#P&`nb_2;U{MeOl{FGt6SbxJ0xb1P-vUlUq zm933IDy0U4u^BW)21%qX3}KidTX&^+-u3rIxX1TB!7y469PTxE=&Jlr(TLk_#89da zsA_}ZQi01rzVm}_w5U+e@j277bS7ISxg8!xqRBAPN3N2R**bKD_9ilsV<`XE!;^sw zCUL{Wb%xo2^jNrwJVS~*j)h+N%nqqA;q;nv2F3EZBdKt*J0(l-^2P?XToRf>{S9mN<`#;ImdHlf$@>5JkpWgOvJWu)4}ttXXazK6RxRM?`@y1o4$9d?UE;Wcm+HXZjfGgw7O6%xbFR^y@DZLK62i(gUn$IZTrU LQCrotCb9M#3X1pw literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class new file mode 100644 index 0000000000000000000000000000000000000000..0b71b1d87b393e35c38b1167e36bfe48b2b36f4c GIT binary patch literal 831 zcwUWBO>fgc6r7j1brMVig@*D~D5RndA8t8O6}VJILQ3J#ss}i2oRzc4*|qF-fS-jp zAaURa^aOth@pfsE3XzB{Tl1dh?YtQu|NQz5z!ug*)Cl)dUByWz$}$&r6kB7mG8TEB zNjp*Uy)5E=p>+32h=8yI~bu=T)VV=XT+*N2(-j^k;OnLpawJ z+USpCQxsJcN^suW-WV#8{1M$S~ujAf5`d={%p zEck$aKzIF>s&@uNg@{CK**f>mnRDjc`Sthe8o&k?LR1JJ5?w}dDvBZ#wjWtz(jpRB zmP&i7fhxwDc!CWP3`|+9JJkp0xkuT!SAF8RnaB&-Bg_nm>!LJv&SU9kQ-o*}I*-oqZUdn%@}wL{ zZCU5QlzA+_DVKB19si^ABQ(EjE%R-sC^>s;N5`ot*nU^qzUhUSCA=SL9!<<)o`*PK zOlU714@-n~5MPXYD*W;7a2+x_M8Gdl@2sq@{Y3rJGaCGFc;;_r@$?vVZg^;7-0Rfw z3@u)B=sBZ`M-z;y+?~V}cc!@)a5dw-KHs|2f0LRQ_~Q-QH;Z=$gcshRikF`M3a|aK O$nODLyz%mH@$Mg=6Ti9u literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..b9af4c6fa5e75426a19078bc873139cbda34f0f7 GIT binary patch literal 8053 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1511a5e9b237206803b1ba5d6362ed46af544f99 GIT binary patch literal 1320 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletContext.class new file mode 100644 index 0000000000000000000000000000000000000000..a307a7af4ce0c43d27708366f62e267140982cb1 GIT binary patch literal 1397 zcwU86+foxj5IvJbmn0j&08tSYC1L`|iXyjg5d$b1&=QSRz71h2S!%PB+MN*n6@S2I zEk*Ic^4Wj!7u4QO3Ic>mr8Ya=GpGCX>7M=l_s35F6L_p4z%Wy^t46`%u3O=%WGE>u z*Wi_kCDfiNYQizL6t{P{C2g_nyR*_(;+@hEVwh};&dPFG+Q*O#vHFoWroAI;E<<;2 zm+x_-s!YqsnXbw(oS!#sQ!O&|q)u+8^9-S^+z}B35!InVX9%X!`7jtdb)3U_hOV4x zi_L0zTR5-ywj~(iIa%OVo;#*zH=H3=GKs)ku5BS_$UszewXyarBE@h_yO{BqCU8l^MJl~%_r0q`S;uAcQ$50Q82aj9QyMP_sR%E4In#jw zhV&VP#s*7gcqmFfgIvF2y)L zK05BH-KiS6mrHEh-3p(x~<5PZeKcg>x;U5o8z0dvhEN6#eub!n3CQ$;13fJff^5Hl501#m~R$M_T(2yd7MZ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.class new file mode 100644 index 0000000000000000000000000000000000000000..82bdc431b1a6fb5ac5de116faffaba853f4bb4a5 GIT binary patch literal 4309 zcwU`Xd3;n?75;9v_cD1vIxIDW(trXJ5*R^SBn$131Tr;SLr5AB+LxI}^5|q{`sPj8 zq_r)!b*WmhYH_K!p;oI+>m)Q4QR~vWRqMW^b*XDr)c?fq-dVCRk?72C-n+}W=YHp$ z@0@$*>3=_d2EYdVOGAOcrom{^ABvcXMBH?T{BA53N%+lpJYu;cwspXA{5xDT8a5-b zs1;Ddy=quPk-(};E^asNsDLLu)?*GP1QxgLH%Cl=(zPT0fa92l+U$f|FEB4H)MrP- zu>+LT8$uB~YP(wm3VqeR0!2-+u%*EeSeQqH2W6OVU;#=6N*dI{QV3jTpco~xwa|cu z5`hJ6cGT)f4i8vPk2w&r1iWprkQwPU9b5J@gG+q7(?BC;bdXMP?C4;~6~mX{gKswqyQaXKuoSLd@5&Twv`b-AK=MnNGrT zJh%c?(#jQdq%R*pDe+$rT5kt@S&RCGsEFPBqC7ZnhclMedNz*XFiM+M1tlBuG)x ziBQGDJaG{aHh)2aS0+0GwU^#0=T)xXlgF8JA5k7sj!gH>1FpZ>9=4(h<*!~Hbpr69 z0b4XQ3Y5>(W8fNGOZ3()NmCj*Ew-Hl`{{YQUB_0+tXD=!Wz7a!u#Kr=MZ<|c+Z~#P z6uU~%it984r|*0y;abB6UWqoQnB_RR+$2%EWKg-@GKcGRbO@}@AD8tqDLWORTO21w zf_9->!}S8ym-K(Tl}MO_R>Hsz^pHq{mYYV*-SU}n@sJ0-xIshTlnk2!+(5s~6HO5` z!h~zZZUe8v9&*V#XuEv*g4MkmZe(K2)V(!nN5Yn)!z7s-TH3d^G*>lsHn%jc^k6Tl zL`hv|pt&OFKfF)y?Md@N98HnL3f#L&p z*d3ApZjk^Owq-QqzidN8^{UpE;P%!YwZVvi15#1RkYx`JxjGIBlquu326oUu9YsW#&C(??0VmDh+`>^Gd;SIP~!yB`nnzq=$oA73aH)-If`a2g*aJ((y?OCs_&ChiymZ$s-0v zWlokcC%c?j+;ZGQrFaY}4WB0btfp;t#4<33aUxGxEWPQ7dM`Fx!{ga?@~GqqspAP+ zwvQS-IE^zh2A|~tF{c>JcJO^pYWcjt3SX{}rOnK&$ZW07@uCnb7tNNh0W%?+rV|>n zM=aJ~kF;gjBAwVNpIPKNAI>Hv=NIKG`t*ov4rX(tIBwd`r08^}Ge^{RIc^J7PLZ2I ze2SMi$|$Bz&djMXm1m`_x$@TYtby;~yOO7tGZ2$j3UwNM-@p%4-H#<%0DeUB&r;vj z2^pTeL&%%LPYnDNKjUJuLmoN7Jo%;J7jwDU-9C53l1|8yiAR>q;wQNdRg8WiZ~6t$=;G)x)fHXu)6P9fml{^=H!Lv)~2wQzjc#at|Ure3)O5T+GdWm z;7YcA(dY{3rh zR0fE83AV<&IfeQYsI2h@QfN8>?`?3%#de(z0V7^q1hMft*^Z`H;Yg3lC3Q|IzIH1Rmn(7(S8S z!29qxK9!ak#iJRaQW>!d&Y$l0PIxz0l#byuV>nyqVfZRMnfP5Cw!5%`&o;WZi_GXo z1+RC@`Cfq@tilag&$QiyT@2`MT+i#+jo5=>j>pjl2RGpeOx%hv?n4O2dBJ%Q`*`vU z;z_oj;@q>?kLP)fInQg-d_=_}#Ka1|S0gSq@;Y=i5~2>SqQ+quGOSr@u=NFuGwibU zBwGcl^+mP{RqIRmvLq8*U*TTG#PbxM=4=U3oyAx2HKx#UQt9jX1}SqM+wo021D!b5 z;aij|C5pw0YBC3Eb4m6LwMz2s9mTgFz^+kz&-=qPp$Z#L;aWPhGKC+X#n0P0r2=wJ zhU-^KCgeTGN2O%buhXI7I?9n&zda^IC0D2L`;!-*n2bRk^A$Kq+=q$b2z!Td8ICd@ zw=oX4^Y7suOpH6x#P>G#gE+=$9c3i$R(`8Wqs{njArnm|5)W4XyZbZ#qB7r~vu=da zQr;(xshncW1YW2eg?9{pn~L+?B+e!DF?fk7#=R(K#Fw(Yh8~{8;LBhrAa~Lj%DHD6 LgTO!3%s>AFn;3_n literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c8c976ffe6e634d954074466779ecb1c890f638c GIT binary patch literal 1119 zcwVJbO>Yx15Pfd8-FDfM5NP;lp?m~LQ>dF0pj4o$DpI8s4ynS~-L(>hw zP$~}m0Dcr=?2W{M3ZZaVd;DhnX6B9e$Ioxy0kqKaF~{(tuSYyeM4k_Y8E})PNzTP^ zm`F2Law0R{HA2TCNwwT{@H?gBbW*459>dyuF&11*43}f64KJL#u^1YeF)WyY%In*d zrZZ!nHj(Tot;|b?oyN>88$AYZFOB6A7%qjF$3lP-mP7cs%us6BfO1D^`DS!-EVCnV zoJfXhCyhkX6PdE-Dd^dz7}~QIQ*TjI%M)ksC26j7pJBbxxlqb|Yg73FYPjL!I>WOW z(}uW-TMUaLie&DF^7cRUoL1{FUbxx;)^NwiZPM*eZ-{lPw3nN7Xq&kg;=Th0DwYB2 zc;w?DL&e=pgzoe1$K1%15RcKIFnOvBZH)svsd*<6J-@$+#t?MVQ5MP9%8qUI;#RgS z14DSAwaoUc6q1Hp-q%qvnnP&@X>8vKDfa3g6f4M&M891WH!>>W9hKWDVw;{{iGDv; zsn|D2)*O94771S>>p7h*5;Qlz(DD`GCl^z;nDbEc_<#yoA=wtaf~v!>;@Xs@N4t%! zH9sRb$I2O2t#yXGrE@&^%~*v;>xekU#4^DOP91ZtxIJaI)&`oc@=bU537)#l%vE4{ KwrKSzj{gE2J1g!0 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.class new file mode 100644 index 0000000000000000000000000000000000000000..24810be38a3f0bbe1ce672a8d26315d958603f7b GIT binary patch literal 11928 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 AHvj+t literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/CallbackUtil.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/CallbackUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..970232c7ea7449ba86735ad48c5a0704d4b7e50c GIT binary patch literal 2816 zcwUuOO>h%s7=FGs&8F!BCD2L%b*obPmjn@uP(Y!AKtn+aMW|J`+ikkA*^Qe`X%SI= z6!4&DkDM4!pw5JjIE*Kp@!)uJ^x(~#C&#<`e7k8%X;Yvx-S6*tpZDi`-}lQ;|9*E5 zz>B!9phjS0)+we9TQ3yyx<8TjUDqz84L6r_ophgW+oQU1=D2U!3L*lHr}araZR<`p zeR%Y=Y4`%Qwwo1Ln+Z;e1g5!>wTQ@YG`(Jd*bc+C9LwKDbbH5;K%~zdGvjE$G6kx@ ziaFLkX^4vDSRtTfO@BbonF6cZJ2G>aLEj^NZyYPJNK&pKq zQ%7~<>ml%ziaJDTX2x>Nfnsjd^p5GHHtkAeTtl~qbkCCO@@8~L;A1`11S5@fqGgYnUJTn=Xb+i@ieoEw$aLzKvt24)#cOm* z&*x2NOdwf3tru$Ol@xna^vNoV`EGa^$6malV4py9AXkacV0ofqKMn|}%$*~iJ86-r zP(|}_Wv`%YFHj$xFYVniGF+? zX$P{7>zOfRC9iFpS>4`k7-pfc6t6{a;PHU#?~|pw6!;7qN~N%eW#h}KaNshzWEYb( z0;}2=Ml*)@i7DGpBErOothSy2AiRX8UpY%p5fSnXQ7pahlrME>l3Xrc)q{$N38k= z&54aAblgSqQtI+0l z$t*ogZ0;=KC6T#{ttS)P?x2^;oh9r()IEdO2a@;kcWqDPCjLw|MK*7*YpLrl;o$aY zOY}azY>Ad|WCq7eIQaucGBX!h3*z*_DWBiX`vd_;1}@Tqx*w-Da}%;V6#dY%pHJ zbTHn+2jzSC6s`Ok{1IlN5#wBC8SM#l!eac-pa(W~AxEh^Sv=mdk5Lr)oy2*5FJTIo zaSmUQ@dkIk;`|ma;5I(S_qd3kiTIWC-|-3lz%~4X>mr70q5+?YaqWWLON=)rHeLiRe^`3wEI5ajFCAk(h> E4+mWE0{{R3 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9c37fcc4337b83346f1862c33339ba5ccabe45e6 GIT binary patch literal 1028 zcwUuL%Wl&^6g{_f<2DV%6cSn}kAi_Th&m~-Dq<5A2@wiXqe^r)bq2@Co{8)+g3n@s zkXY~md=%n(l!Br}f-G#^IdjfE_hJA1_5BBcE?O>@2%Sh3L70d<9}6=IjMhmWggQ;N z3VP@8fYG-i%Vp+wT{wiDd8$YnJvPCcv5B=JRLm&O{SI677xOq^?Xy_L<~iYAYf*8p z|3Q2dK_XNX9Gfgw(ZMWox_d%!dU`0=Kv=I~1(hn6aiInm7YVzq|4&oz$4VX*>6y$1 z;w+JbjlK>=aw4+0JWoKU90y^4!G8QMk7L~zN~_PQE^?kH^`?++X*g5b6lH(v^q5ne z@{Gr&!I02s&C1Khs)wIKX_uM1xJhXLbLoEsgjJD6MJkoyJjc4oLir*t$FMo4$Gy^? zP@7CEa-9zd%{d+N?$F`oFZ0hpo>zVW94+zV zVwLeVj^0mDul?{Vs_pGZTTWx;8){!Hv(E3TRS@%D!Qst5=ia&V^VioO0G6<(Ai+>FoQ~eIxbL@laHI#WYx#Q1 zwQbkYD`)Oq^1kMtFFXY)hMBk=Lj-O+(4#PhL9!dd^G(;O2cGE|4D)AX|(T9EoS%$ewD%ldg&kf;caSdsPUJ@6vDHtTJ z7aDfTniQm}MA=iP&3cP#c0H(`Q($U2Rax5_~?39;8(yk(V?J4EY$ESYic5BE1@CZYhKN z43lv~v-#XJI<|1=Zgqz7*bv!I6$LCwu@4xU`KuOP`OoTPa~@{#2#*;u{NSK!I@}6h z$R$r}rybDPm*u5oEY~r19P0xE+hb7cZpUkhswt;qEUq>wf+73TafBD13m-EiA_@5= zp~{OQTOsQ$?GyAL(=w+}YsH@L7-%L7^=3*Ns-NQeCpt@DoYtF^1FX_orp#yP$2x|v zL2sr^XTV5=gIk!Oe;OJlX-Ar=zqh+=8^kW7ltM9ig6Yra;A-f8L21=Lz!c0O7m8Lw z*a&R43-%G2u%uj}SUkm@i4)u{d_$pG7~ItEQ88MHmedIrzhL=-X)4U!B*s@Hu|^Mi pi;%Z5P4*lbA^UWMd(NKgvdi5QJSC(ARzk#8DqgB*G)eN)egli3UZVg2 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..9b3d765a117b99d38298f53600c7f81799c99f36 GIT binary patch literal 1151 zcwUWD{ZG?S6g`gt-9`squ1ex=vu_c?#n3#~RdyZmhm$fDOU!f*I zH1QAck22oZGCp)9G+FoFednHY?z^|Y|NQs`U>PqZ3^2^KEl<@=&2c)KyQ{jkZ91xM z@9*1|y2TwwYja1!AVYjlJJ3{9v)XF4xyN;vVPtc=^158wsl3`MF(k_8h`QS~tahFu zRs#mvb#nMh7!jKC1J=ZYR8h323tMg6I zYMGpL!Uf$lEW=%A2xYPjhQXrU;!(trkZ^-x@~T`JH!;o-X>&ISFesV-E6H9h9s$EG z8BvUo>#||-inrh7-M3m(kR{5tu9*$3Yl!`6aJb-mjUt5GGNuqCzwWL%8L{wnansiGN{;*8TV!Lo_wkYmXubFhgSzq7Q8V zDGXtlc9Opf)1GF9)*)KUh|$TY|3NZ{Cz1%CVC*}RUw!xly+?hb6{1VEUronMRm!m6|6i~U?M*W6p^k=&MTUAFG8B5k2M;tG`DkK^ z{3R)fT0NW68^l=>$a7^^*M5B4R?Xn|w3bQNrjV(Nb%vck#bT(;f?*334fYi1Mqfeb zQpJfGacS=fmB;+qBP{35Bg_%{p9946#0(4H;=`G^_>9_**dqpx;h^)2K>^D-u3$Bv KwH9mGK=lJewRE=t literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent.class new file mode 100644 index 0000000000000000000000000000000000000000..6a1e7519db7b455360fac00ff8dec792b4b0357a GIT binary patch literal 570 zcwUWC+fLg+5IqA9PJ&S&w3I-h7g`BkaQj?T$xVX<3KtP$L|>wfS<$7=y0X`8KcVk@ zNyP(FEAat*1z%DzYd}Rjb*0&zIWwa@b9OKP{=NY47E3Nh2(OQI;m3){^RL2u_Dz~5 zxgV#)VXFOIndK@sQX3ZzVe&+L6MiD}vA;7ok+C6Ej2g;}Fx4${g;9wgTIe02*$bjh zKM4C`%b!-F8VD^96^wCLS82Ij3vK$XPEs}R?hKW=M(sVasCJMC2Ak|DR*0cq1+eotgIwFXM2g-HCI}GGynhq literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$1.class new file mode 100644 index 0000000000000000000000000000000000000000..042f455123c025fbdc5f68c5caa9c61b2044f055 GIT binary patch literal 891 zcwUWCU279T6g|_#uGy~5hc#AH>sPe-(5`(GT7*(8EJRzV_I8 zCKDz7eXXV<=K8e}NqfUVnW1(RPD4Kl<;dR~9`VRHm}gkc(UeD-7UnJS#8f1F#N+MA z2qhW3X_&N+3ps}6!7SnQW|LulOGsg!F|<18C3O!O$~!9N6);@!;NY^05~?05s4V@YT9rln4IFzd#qi)Gw& zaD$=wZ}$g9;Gu;T@=?f?Yx7%r+c2!0`{1A(xLCy<2e%pOe`^NPkjdJ^UEE`E$m5Lf zy`j>b;B0F}nl)GRG)t%!3mDu3mFbA@3hP7t>?7ALmxdNd$@Pvkg_B3s=Q2uED&*(| zH)9n$=rOEa&^Hf{@R(sCjN|=3-{3zZ4)BDATcULdtk$qIrcXOZs{)tM1&W^1*&=SQ z{{>#}D;7WHIdzNWHK;saw6=3lWOBph!#WVh*vySTu;;2<0Fx|5c3S{HCl+Qw9>t!I$232reg9e zbJA!ktGL=YZshiPE*QGQzfvP-rJn9E%s-V{x?P5q-v8Pue5~q5CgbXmTj}2o*m5&jFl-Gkygp4A*phZx?)8V~UD%0n z9cv+OFs%OT#i$7q+(gWkXtoVUA9On9$1%|3RWAH$Mp5NXz&@yH(X;U=R`hG^N(jlqDCaZt(tio>oxaO N2E@EWcMEs1_8b0fr62$R literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..a8e0e6c3152fa49a1257d5a75ffa3875f377a8d0 GIT binary patch literal 2879 zcwUuOU3U{j7=ES=-4GUO%ZE@Z1O#bX+wiGE_-Lu1!4QgtLR$-NH`8=+yBjx~Qa)5f zK~b-`@OYuIx@jbiH1oInP|h(EP0lHtr{ZjOu4BjwkpzI*0BRSDT{P`sX_@HtP_9P zkx>0qVkCxLNNDI{oU4qK~>xxn8L2&cHym?GT~sh>*e|dl7%o;=SRhx!Yt-|Qx?=i z{OYu2%ed)Djyw7Icnk+{NXbjB*4Im8L|GisaTLc`6GovRot!}L|75%f5Ct1x^-lD~ z(|O1Bq>4DG<4whC)OSN$rRYf=Zz&*=DOP9{X_ba;%e-L^n5HZi8>bP)J2Vb>&bt0d zx8&rO%UR&Gj;+WFY_24-gyK{ptzk$Y`JB}m!x_A*2ptyaY#2PPcx}UZ9V4oQH92P~ zY#J^K#A`Ix7g595Vyn6wX?SmuRef>o~Z{79ABSmXUC@Pc9bCBq(C&}VIC2_j|Y z$r*Q6R+o_cCf5AQZOeeCsO!aDsg=cDP*e!XcJZY)BsO{-h z`jk8E(~eUqT3L*2 zj6KNaDl)w(7!4y;y_4*f|BCKM*j#gK2?j$KJv6{e*us7jPnUS;EKVW9AMoHeYzS6w z-_~8mc9CKG$~=0?NIt>7%tK6Epv7Yx7;S(35e{^Gz5QJf&ZM~FVtqrxKk^-_JFQ$iQ_wB h`jOu)51uN(E+V=V*xn1;ukdx?)5H@J!PD)q{})Q9^WXpg literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/SecurityProviderInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/SecurityProviderInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..8715ab8d4754b1a701e8165d6a3c164d29ddf966 GIT binary patch literal 1215 zcwUuLT~E_s7(MSc*w`u`MaG8+L;TpvwmQER2~lIpsH3E7m$oA@h70{O z-gu#jj6@S}N&Hd9=jqBIP)xj7-)HZ8&Uwyr`u6vqAHM*Uuoy=~K&@LXwPtFr+tj>m z)w6BWRcm&mVO#3DUTZmq_kPW>ca1IGDO>OCIAQ{WJKC7 z75~@`*y<5|o>8`Ic!q5Wh_XP`^$0Ilj^)-p$FS;z>|HP{!&?-X%$_G#&Q%3sPwXu{ zi6{mnq%cUD*<7^`q$;5YyKU%9Hmbr3Yo7ERWe^7T0e32w8rR{f<(9rRBa&Q;|G)j z^ec1w7*ZzpG5n3TA{g=MOn6GqWfE9HKb|2?JDCm*qZkAHirWdl;)W5b$1xGKQEBC~ z9_2fRzIMesgy+7X)Byy70+%ouLLUBdid+pPQ)U7ABRS`@6(Ua`Vv!9TLQ>?JeN2Bw zQTd744f)yuZtzJPN*k(tn;zV(jl1##s@r%(XjVA(o~CxdD;oASh4O}4zr_-?6Lwa* Jb{2fr~j7f~jiUAgE=X?c-n8RgCy>iwe`10UO48KREO78+IU*Y9rDpyWf zQv~QT4E~risp`HPsCjD3JeBJS2fx`k_Cxt0XbteE2JXL4JRo*L$Os#Q7i>IN>5$%# f&?h-gu|-j9T|~GIzwI5gN$HTr33uu4RlWP4oOyI7 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..f86b8f70c3b811d7dcfa7626c0cef218208d34af GIT binary patch literal 1151 zcwUWDe^1j;6g`gt-AV^@g1|(DAvh3P`Qgt^qRjc%HWH8-6BAOl=P1^8Szn2ME7W8V zP5c0UDC2!CW1w3?lXdUickVgozI*%o&yQaKR`6UwAH!_j@r|l&dS1g62ZnH6+cWB1 zxD8>HxaXO5?kVVJNF16+reT{--PqbcVJ{S6NQL~quxw+Sd#>NC@=f2V z*_?EuxvFhBme^p3WELt6{du>>RV0v9aE)Q2SFVQZ7-fi&fiS?JXa28bp|^Mp3^z2W z7$Vn2%i(4J(>`y$G4~}|vglS#yJ9vixjzdI<^r!OBDkqx5^?e?4lF8ru6TuhWJAB9 zHHP`#elLdPWz1-}jXMfv8OHwwZ2Fd6<4qNFxTj$LQpZDth71-Mlq1>8tq%-inS58F zH15l?mL#H!w~9pQ8Vo$3yD%FK?$j8TuT;jF%RppRQmipdb+d61_)xCObh>1D9>v=YFMO`@hOk_RhU_E%!l3R1@z<7YYP{VZT@qlL#v(!=S|3sv zz##3EU>Bu5%?hm}wAK)(li}clWROoR89l|wcZ_`v;N$cj4v1EXW`$CgFcF-{-{g7v z8vRRxfyEP~I;m;^Tt`1$fK1au5TIjKsCLjg8+gk71)zcv{Qv*} literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Option.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Option.class new file mode 100644 index 0000000000000000000000000000000000000000..c97800034b288be7877ffbfa1b999ec7da1e827c GIT binary patch literal 2640 zcwU{BOKclO9LE0>ujAO>*1>gBlDNfjAYE@8yF3c?L8K~B(PFiSR1pc~uyIz-rt4kf zT_c2m12@Fuh){Xmp(-uZs?P zKexXnqDN^lK_iT2>rT5;vklK{8vbU*cU{}7)J@-Q`jrb!-*TMCmB?K<_~GF$B~U-ny;Q$NWlyNO7v$k#4 z4f}Lx^xSJTQ<#s@B%>)oUvS`FXtX`dT)(hx7A_r4(LQ>Rmz`oXp+)&8iP4NoaT?{b z11cqHj8UeF9h`4B*3H&MW8D_V;MNR##b{alI=rd)o0i9DuDavFT(UIkD&Ji;t zJ&l`H8TOo3ii-O<7F{$ho8ET*gc|A2;KAv>@bAT)XM10cG0Qs_z7L~Kqvi2QO6J!~ z5bEnY=0^%3UUu89nt8_J2}}o%%N$ynMLT2oJ&4l?4>V>YytiUZhGQxmkrRv=Qt)!@ zg)W0D7iz9Qpx>hLnJcvC4((gbPTZpX-{~_Qn%0kWD1Sr958``TSe!wL=TY=5W$7I4 zrxz$sReA_d3PCZ9vqWOXp_rI)oDpGO49(xhY6WBQzs&W84$XB54q|&mE6}}&daEE< z1HnrmxCGCa1%)0|l@vuuQ4A^gj2}x(@H`Uoe2D8fMr}tPeM0Hbe3z;yj(8K*E@Nhc zssSnoR4y2rbckLNWKRV3C7CA4G)bm~WPHY3rU*tYWL(7>{w%{8^}`)14YVjLHvc-l z-$2PX(doB(T9c918IcnvX5H2t4sC34O_b}m8ED3&*v>mx`7Ua_2e0?>>-#}Z6LQio zC;f7AtGS*g9El1=zP|~1-UI=&(6{Fx6dyr%1@%708GM4{{}jjn8Qeb~5{hk}ARa*| zl9Fd3DilL`rWBrveySi8U!vMI%)SEEbx_>^)z^6T4MK5qNGP_+G)bm~WZUrwLQxJG zzrYjzVwQKws87WE;yaJ(MBk(452*bkNbiF5Cy@RO(qBM&59jf#pj`}{ByCyJmL+Xj z(w0M7KI37IV`YVohTIj5Tp8DI()3k{6TA_>2|G1d5ZW>P@p&vlT)I9W{ykFsIL^#7x$L|T?O7U@4X=>KP=|C5p8{Gj-+Nbyq=zE?ayi2e8dV*CMo Tnx=5)IPNJJPvCP(=$`o(Ve`rC literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class new file mode 100644 index 0000000000000000000000000000000000000000..9cc6b62186ecd298f14e24947ac89055f63a4506 GIT binary patch literal 391 zcwUW8%TB{E5S$Gmflz2Ek2^Og2&-@`>IK0mf7W zNN~X`t!CFVv$K4EeFHE=KSe|sl)7Ps;?`E&&6zVsSyl>XD#vasCyl;(DntM&V#3Y? zf8O?fTb`D+=wxwM3n{QogWgmfXSJ&5i;Mius!q4b8L9D|H(oJo53Z)7P`T!7c|=+hSXp) literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionGroup.class new file mode 100644 index 0000000000000000000000000000000000000000..2467f78167da46d86889cf2bba7280840b545654 GIT binary patch literal 3894 zcwVhmYj9j;8GgR(<(xe^P19|cvar!`PqL&7MOH|9u`Ml4-8PYw^nz$kl9Oc1W=}kO zwotiMTPsE6TERxKlmHPgAkuErR$6t&s_3AOIwEwe;$@tU3d5)~D%1LW-)@p^62|^; zcXrQrdvDMCyzh5jK6U5_fGcrSLxsSlec61XJ7eW?gO=By@Ej+TOZ3^EGw3B+2fehD zz20^5gBtt-)tju%Rw83%`x32Po9u2+Ah@C>m0Es-KsYtA+3vaNY+tj$jAc$X=UG{= z!^-4s9U+0X+W+%Mz@N1SYyr(t?&bs{MPKq>I+Ix9y4IFdI_J@y;DU5E?JW}U)zx=U zZkf|#8}MP4i5aNUFk4{uG?E6wm=%J+IVLJ$3d~HUv-X<&K$q>VwYoC4jNa+CG98wi zmh;l0-|J7)o4VB5K}-iDbyHES?~tZzOc)3X7`=`=V0mlp+X#NVbUf`O+IZHZgl!Ep zPu0;<-(lbaT%_T`u`H?(mDje3i*X56)1~X|UMruW>N$1wsmbS>4LWj}iT9vRVBuNY zo~lQJ?{o6rc%~*Pk*V0ly-SGsLm{^MQN$;Gk(k|DoGqD^iXudb?<~+sc z7O8rri59sY%-GpJuiwB2v06iFjMituY+?cn~4ueTLHBuEw!6iD>eGF zDj}Lx#BRLa%kiWiT@sAwyW&dC8K#9rF?$+t1S(~|+pL}*1&T;ZfIZ8VeWsVCo9m|| zw>oYQE%6YW*ICq7v*dml-6lHGGpWRiU97o&qvYct&0KUA`j|Nd&q_Np$Y7_hgN;S2 zn@rq-jDVglK_F9IURmSNR3Zy@S%=6@-IYoBSXoh)JFkIoUhqHNHsB&}Vl!?PFuBv- z@3`I?)i}wXWzzf>6CcOzOme@KTcgs=osClPP7`eL+?k4L#22YHJ(i(jHl4PmsxV%Opu$JZWNB;;yH2s~na` zkB+AWDr#$WjPQ9mpU=|IMjc<}w2{xRb6P7!pEvOhX|qc8?p(K<&3Pu4;9Snkq70(629BBblD->xx`NNh zBz+C>{fJE{4O1PkvZQns<}ig)@i|4|l43bBR4@wml8F?hq)SFaJT{8jQCvEq*HH4E z2*FbNYKtdPj|QdBKwRmQqs!6A)9U6eY8HE`Swb}2IEr~q{&@I(1tgmSv1Bl;`(lC4 z0v0rBzN9{a+oOSqK0g)p#|!vC)L+1|WM~8nOkiWLt^$?dvO>w8ac zn+Ul}1$qa=x|6xO3$t)HV%Ulc*(&O=4fEI^uEq{rgL|0morLdRwBtUkW2N7W`_YdF z*`^*M?{`r85lZdi?xS3JjNh$z5<|+uc4nE-j6*p*4&`tON;$d_9fUlH$Eklk;jCf@ z*no}XL>Q*Nr^<+Bj1$X%jb7>z=pzD3pRbo*hDd|szD2&IUn(si z-4qx>O*C*20|MWM+Z2oj3-ER$ANbZWLb__G+mR4G?iRh!)wrJea)3g*jhMM?c?A##7qxj4LJP>}U zfJX{=tbm~jSA;%|D`apf2rC}`B6$^8(*nLU=G^x&U%GLzoa`Nf8LzHYyCSZ5ND?aN zl6pM+6z3xd#lz1if>w-_osOuG_3GdV{DHlvPnH5-ACGZ0{N)h@!e1FPzg6kwhUS;2 z%Yjj@sA$7qW1!M@G0@g>nBuI_8m%*;_pkuRv_8j`QM@pQ-KoD%FywD&=Kph?J{EBGo zlQk?}Ats|lsfH*WWZeXb#LCiWEs;5-s(Br8I;^VsRYp|YJ%P7NyKmr4d`s;Lyri;l F`8l^8j@mc2&pKk+~- zZsLIt;G+<;8&p6Nnpojr5T%yNQ=txP1X+4OtT9a7Y6KS^z{y376e!}oPxCFlamcQd+%w<13 z)M+I9V?6Z^gR`T0q6mhPk1Lq=P{36mE@m0lg3FSW+mRIe`S3`julZ3d7^-d6<#C6n zky-zCI;LQT)ye7CT2yeU#-)-cLzQPu!}y={Kadu6C^5l3hPg4Bn>@YU*5E1I$oGaF|2fD?6!R#h65h;+(;=ubh{!_ zgUH?IK_~*JVZvZozQOVRAo7%C$V5FabZW%f980^+Ff-)7GZaBc!3R;`$u2{w`H2s? z>vP$4M;JL~UV74tUNL+uPeA-X!z4(h#bE5Hj>v-HmW?T7v{kTSV%kC)Gd8j)F|3s* zr7JW&Dc;5XBM}_(BVXw1RGa%P9(ekE2^zX<46EZya~jl)oWrG(Cw&!%wSP`^YScjc zbr|NZNm8d|?H;#9GOf_W1BU9@sa^$S@d(Q%mKchEQJ;j7=-YUV6^68mBa$8|d&=D> z*@(mi?{8aJ#hQsH471l<+bCm^!5nDFmljD?ZLDL1x+9J~Vl~QpI{#@NbmP8|gjfeE z4%*_ir+b(iHE2t7GuV4lieN{VC8)E7UD@_kNIiHfqMquQczW|bkI3}ApEHyvn)ioF z3pLu8H2qttVo|RTP%P=?(Fi?RSahEw>yW&r=v%6;pTVv!7-z^=H#Wba_&M>NrMH#D zX#Z2(CTl5SE@2MyKw{k?=2T+cB`Zz73s@xN9$^NZ?k8Gr2+>}JFL+ozMgA+C^f@Yj qgz^dTISGCz`yvsWAB9|r6|hMXy11<*&ZSb3l*2BQsVAZhJo^o{JQm{s literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class new file mode 100644 index 0000000000000000000000000000000000000000..373cf215c78f7d53a6d5ed5bd1565f72ad1a0682 GIT binary patch literal 904 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 JM%n6&{|DcMv19-M literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Action.class new file mode 100644 index 0000000000000000000000000000000000000000..513df1ca3cf31467f441f70b374e90594ef1813c GIT binary patch literal 393 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Entry.class new file mode 100644 index 0000000000000000000000000000000000000000..d030d92ddd800119199eb9434c6d6eb4b03534c1 GIT binary patch literal 634 zcwT)`%TB^T6g>l#N39?g@rhvE@Gv$;jZusnBP*hbm?kcVTA`%0rY$CZmJ2j-;RpCp z#@nG0AH>a_d+xnw&bc%1AFpo!c2Q0u#!&1!L(QWk4Z=j z^L_rnHJdwK?XuH1jetSAvuu+g(-JMq)tZDGRCoA*>S}93X$PL=bg7p(u^cNnW!S3x zr2QSP>U7naduz&wV@^RD8HRYJs;5DA6wDwIW~zcDQViLa<(L=4LC5s2dB+w8T!Y&> z_pA^{MJec6K0~SX@5Khkl zN3?xpaDY5j%3~T9Q2<01$}o|ILSvbwNal)gEWB+ZQ-8+t6s1FoN5niv4h^AH7&E_= L)JTb8LvTxFzw)9pyZA=lR9u4OCm2~ja9!m8}B4daKh=QH&WH6a)okH<~G|J_C!VoBJwBmZARkuy~dvw$1_Lz*gblQmHRWN2SZl(LSneyE7aN|C`SC5!hB$`TR z+!oh1^knV$rnIV+iKz{T;znAQ=qQ*kFmL?Wj&Y5Gs|3mmkM790<4#qSpysEJ0Uw=!I>VYx)m zA5T~gb$(O&6DXUqVlrWQ$qLMxn43V6MQE>XoUSl=wjB1fmB0+$j`x_oh6Eyrtt_=##Wvib;C2D6 z5GD;#Y-cXrhTE(sNy7YaWiC`gPjyF#pPA}rDvfAX&?GQtvQEPe>?FR%fsCGzwS)_f z@95ZP#F=KBg1ZSyzJz`=9ceSu1^kv^7l`sb6GQYlyr>#>BTVMZl#06$laRFKA(_-B zlB#z}}u=I$KTK zkVB-;n^)d>S3^c>1IhiJrtQc+IjG?fXrlBQc87QOL|YJtdF{ui&<*uO!!NP-Y~Ht&3HuFn~3p|L5Z@+QBoVGia>N>6Ec18?TQY%<&) ztJ5Pi8pPWSoo8uOGCG4e&6g*yh^D#{l0QBSY2D`4b`6_tR&nJ)#~}TtXLhB#N;7|d zmsduy*SvlscQ4APyA^yHM(vYMw|pTlBY-TXJ$Pu-mE@|nSQ$HR?+i%}Git5ccw1gGyQ#(Mu&(Vin7s z!-usRH!#C;W*xz5)*|R>&EzVIR#3yQ@K+6EZEWS2xH*g3uTV#6Q*-r?m|a@WlpBU{ z=K$so`*EjZdmWKB-+b1ii)=^8F<1KU?)B>Lez{ z5PD8=XXMXeY>Rn2StM%wQnCiHIz)_|fsr2=yLVvZyVCxPc+mGP9*Y%+{4E!8tS0aU zo(=_u@Z8|YX=(g&O&}Eb5hZfZ*+{?(`$l>A)$>EPab!YLr2!rSEuBNSWX> zD18P!pN)B9j*|jlJE3mEd^BSjU$Qm08}(@6&K|BYu5Ek@+BvQ7MUpSWVcd_S*ozbB z;8izpl2`RKzh}^i573Qsw7fveEK>Le7QW|T{uvH_MK6BCLHvO}{EdEG;;sFLYW=hc k;uCzzmddiqv)l{dcb+=OJ%w46k4l$D?d07#@1gVAe>~jsi~s-t literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class new file mode 100644 index 0000000000000000000000000000000000000000..ddbaf6bc586169509644241502794eaba523ca4e GIT binary patch literal 4105 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Lister.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Lister.class new file mode 100644 index 0000000000000000000000000000000000000000..81cdaec2a651af5721c67b153ff49a3d3de95b5a GIT binary patch literal 2941 zcwU88X?qh@6n<};bkbpdh-qhSL;MsF}R?`f(taL*@m9D$8ybNmz5A$-PALtkLw{b9g0|)tQ&Q?p9(j33#eVk z;zmY#Wr62X1@I#Q_)#|cgZkMnafcw);*6&uka zQ_@Q4MXO2O8VS*oX^n)N`&G0fq~HdD`o%D5*o-aA!ieGa5l@%p+Q$XfG&Nu8iMJQ7 zgupfpepINq2{$X)F0ktAvKnr|t&ES`BBk{7WvqxAp+*MLeFFj$;bMp z?kh1D6@=x99u2+H%Yd6MY^pebyA&K0SU&%phPx4^@}yynxT9W;MO55_dlj(Omd%Ox z(ti#2Ax4>$X-Td|BF&LX4B~zThc8!soR!2pK7a=)ozA+YWIjlulQTYf%(#P;mXxtHq>(Am z;*cq6!7y~II09P|npyQR=KYf4Sq6?J*RYA zlJk8HAK*NLVI0ls$@%3ylkNdo1s`en81=GuTe8u8B2j+2@a@62J0-AoX0Oxh=|-YN zM!^>|ouY`SWK+fG_)41iT3|)fIcrl1e3K!)K(k2?Ix}1Ly=(lXZ9Qiorz07ANXCb}?-~N_7)E_t~ zgT`ltx3~>U`P2#mScWQZpG}g_>Y}QZo|-cpOXcfV)Zo`ZZ)Im|TMo6`{k8tG4^c4% zt+CdBTJM~?^iShAvqsht1<=8RVUBiE{VvqvcC5y3G++m@@9_ZKNaIvp1RzIiQBTtq zxR&1rY721XIt1xy6~B$t?B^=uIUlG<(RY$l;+J68_&{#>%I0BqsHx@;Dle`8?Ipj!H_l*Hz}==5TE4(kXecV3f0? zbJ^%;Sb%+;Md)-lGtkRFEq!$Q0Np=GHs8fN`ECZPpP`I#XMltsWWzlSi@%e&A5Zdq znjQZQ=s1u4tcAE2+{0e}CTD{?i4%Cl%lM?ECT*7CBlgr&4DKpChsW?Z!zryi!GQZ| zYcF*_#jp}l(T82`oH_TNbMKvBzrTJ5&_U>8fuT86MHDAI&nH}uBAup59-Z(k z+UHWWIxZZBjai(b(CI`+uO?ciieX8QWZv4Qg8g|FyTp7ZmDJA}_JaA;UjKxj@+jeI z7#-+Ls$uss(mrBvdg(xvz_8-u3YI)9;;Ii9WriU5?<$qPRN`eZJ{H*_KTZTgt)Ip` zIpUc#=PBrzMj6)UdT({8(Ulfgsd_g~i=5`ddKZw6DSyew14`DR;J;8xWIa<^(99~kDo)azyzdJ=N(Vjyv>B@AJxHF&_u{o_H)Gfg+B4@n z?c|Ks#WwAHksdRvR?XrmTA|EG50+P`i6n$;@fCPfZq-9nx2ZWCrscdX(LA%GkjJtn}{UCEc ht=QTb@m#Eg`-GW>9@v}~Hfuvx5 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..9bd0cbee854252c3c211365d8434b23f4f8c9f41 GIT binary patch literal 903 zcwU84O>fgc5PjQ(x^@jo0}WqkNg*wX5xA|m1tFoRNR^UOsi^m@vvRg_b|ZU(fPaNV zg~Wji2M|9BF}tlQ0U;c0&%S*#^X83z{QUd{zz!l03k>V2n#M`Si(g|8zRQghhgX#E0QN?5QNv1&JRBGt$ElZFCr_cD<5k^1V2;^X3ej?aoX~FGe}1 zb+JuLEz!Tps#UvLiWcbcutc~|(E;6-=^I9m&JaY6$Da^>aI6Zw1IK2R`4v@)nyyxe z71RJ1UB?Z_39*Vg-7?(7EkbS+R;JS(*X0EvmgPqu5tPo*__M_~67=1*sGk!rTllz7 Ym>uGQ%V}ZLWs$}1zJ@K=Y7Gy60WT!jU;qFB literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..ddbd7f53730c1ca1b8040b412498f97dc238ff5c GIT binary patch literal 899 zcwU84O>fgc5Pj2{x=sxVfrhWNq~Jml1a4JsK}aYn5>i@_ihAI-NmkBQ&TeEo74WZ+ zsE|1D1A2gegqYn{m4FZqwrAhInR#!M=r*?Zs;#kC~ z&`EqyWJ)KU)*->`nxPCpSP5|nOC>DgatI$+2({)va>_lW<^FWsm)TpeV+Ib4QvqnW100$&X(yNVOeC!bS!nj3J%OP8_1W+jw7%c zPpncx_)2S;b!}P6BP#FeL27aqz9);38HQ-0MX1=-Dv_#>@{RSH5jLBxnd3aSaYpN4 zix;}c|0Pu_cB>pM@Z)2d@qnX!zV-MUwjZ6K)UH4Ng7A}LmHAzAY~svQR5)t5S|P5Y z3b^PRt~*YMRn+*Fa053Pxy6{rr`xW}3q~v}Xn#h@J3;-=7T;OW57(l0M!aYd;2vYv W#C?|&Vbf*th~0e^4_vD?Jp2Wfgx3K8 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..9dfd4c5c90f370790169eb1eea18d8da86f6c6f2 GIT binary patch literal 904 zcwU84O>fgc5PjQ(x^@i-frhWNq~Jml1a76=f{;*DB&4Ju74^Vv>nzDu&TeF{`TAE# zR7f270o*vi&q2&?t4cr!2ir4m-#sjQe*v(Aj)x_Njj<}?B;|QN<7N^Yt~ zxf;j&CX;I1YacL_`+6jNFsz0+hvfhzoDbpQ0zfKZqInB)azacxe{9it3@)^%^F=AM2&9@oszDl2qs9ekjaDk3zK2W~kcxl{}U2#dAAw#<10D&)w5~Ek50?<4LkRa5p){&KOy|!SQUB)j?GB<4ONPo zu2zVPr~xjzgv*W-VhwdVWw?T?gj^%6OxbnU^8mXN&J-=!a`jKOvsA b@NtVUJH&0LiLm8Vv|@K&!yVUZ9d~~Lv+LOx literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..8050a014e649ed9fea3c5bf5a1e82cb07472964a GIT binary patch literal 1014 zcwUW?-%b-j6vn@Sm8Hwtu2s-#LBOKhR#-6Ms>YiJqDc`G42j+i?br_4&NRDQqrR1i zghUe`z$frRU&VN4N{C2Pz1Yo}Gr#klKXbnQ`ur8Z79tl@3`<=#jM_0z(*e(VQKogA zM#nsf_PA7)Z5Iy1$~dMgGCjzm{Xr(RVwlN#GOcWqU~7_MgUH8H$?OTkZa5ijwvPE* z9>rXBqk}Aws@u5isU9*oP2CYWFwFV5f*B9fxaz}2o*@kXTcyyFN<1I-k3{m4AH{;9 z*wSqtAM!++^O@5zjWR4xti7^Ljm}lL(&~L*4^x^8YhLhd8Tm_fTtFVttOh(uMTcQN z9AC7z^R6xI6QnN647Gng)p>x6B?jNBN*(RWSa?{(vKd?{hgDQu++!$DYSYIW?vqHL zEBQvGnGs>gxBe8Ro@RN{9rlIFsNMrTOxj`u=8VRMfl1?;QX*-ZM1sa!*ir3Rr_|=2 z$a=ctV;vg|fmt2NWBEb6Fq26b*23!8r#NeRgf*~9>oHAx&w{}02w79~xtJw?j;z;k z$PeUe^%Hot@_NZRh5ylV1^RoIXT*F*Kvs=-qHzsHz*^UF!!miyW5MRi<0e@SMcqP) z?rxLMobK3+PsuiXQ2PY$3l?A1PjUAID}U$wLH19Zb791v=M3~g7ETRuF7wP~DzDD=2U_Qr+OieaG`%DlBf1$(n9c8K{@Dp@>Z*okISyS*d+ zjwcycgJi!jQVlv6k@f+D*VTOyfMF@bB`lOMkINx^lo_JvzpGSwQi)fS(V;MJ_+cg( zYCWCu?0_3-&!?bg8)aCX>Akf@jV`sg(&~7mCppc9bYFAIu9DP0(2@fcG3y*N196$VwQrvj7;(bB*(eWzu zFF8IV&JR>6iiuBbTtN+R(N$b?oHCYCcUom!r^utM8(5*cn}pfZEvNXL5X%qZPbiV- o?Z3r-lDS__tbRf~6AN&cFx${Qm(#+!%c95Q?rXU3q?&l}2MXcr-2eap literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$HandleFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$HandleFile.class new file mode 100644 index 0000000000000000000000000000000000000000..16d4ed738593e836de5b068d657f1214799b6560 GIT binary patch literal 1151 zcwT)|T~8B16g>llwaX&qqo_a&6oj^XtSEj~ObBYkwEBR-;M=qv%9Lf7Os6LOMZTGs zfFzRm=z~AXcxSr?f~9G8dgt!B=bqkk`}@z2p8(cSu+YP>So521#p8{}G1mvK4g#;? z*12*^T>A5GxL@_eYv~CKF$T92xF&RPtX%`zRJG=j@bwn=yfUvGGW6>M*_gk_kS=y> zR3PMY=}Y~BVK&Dhu_2mp#ES zQVc5G+vQ4{dz6eBc?`L(9WPCRblQHP<$lZD7?Rmyoqy)8$NieSqm}e)q%V$f+_rFw zVX7OigFBdDNK_7}T2x<3B`P{lEu-~6Rtr-Msq5%o`C7Fsq#2yBQU;+PHd2@|bD1Th zJ4o#$-o_;6OwByQTvQX$U4u_y!QjVCW!6MFhT$uf?V&6=SjGy2MLVLTpvfoOu%?!t zyQvg!6=g#gY`9pnKx;GF;kASNctA$;YW0c(@5^->VIlX4=CFTh9~t^gN1E*PwN8g4 zH2&@cO;r(Xf8)ldRnveNw|!rzEmLZg+ZS7b8QR2N`ctt)!mJ}jJ@i<(LHRgE>vT66 zJHK>F#~GY&A!dlqe!>782|ArHwlRzm!-i3eMGRjFXF9yipTIsr@)s7)F}Zh+)LxWX zI>R(QnUcA)QzXA&^dE%sch9g`YD4qO-?94fLP3Uf0yXL@$;&#@^qs*WR^Vd;0k&}* qs>>s06h!Jww2leVm%#uY;t{cJU@(e$@Hpguf~VmxV)PluGvF`vFc|3o literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$JarParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$JarParser.class new file mode 100644 index 0000000000000000000000000000000000000000..5a62fdc204df6b697e82d15830e2499bc64bdff4 GIT binary patch literal 1469 zcwT)}TXRcM6#jM_PLiHhlu~tTDJtl3ztt_$q9kRs!{BL4wq%=RpV()o^vNIa%0pde zT*sRkw_%1iX8b5)?Q_ynqAxppee3ppYp;_ZKROal(Ij#et9mE(0o5dFVYSmX>b_SjxG|FLEXv#9^-_EcmH(#3}iaaEh zG)EYA4a^^!yUr)MSK+GUjTMLDU& zSiO2x=m~zcA{aVzet}mma4oIf0Ap4H!~Cp%&xxeO6t9NW{%Ok)pX3!;lcI;qqZ*pbwT*+%9 zFbwRnb?$Pp8+*uEZ8%Oy`=}ie1?hX%CguBRAYt(=6*jW(7JR*4eCZ#yo}a-DklR&GLItT;26V_CTOY*Q-M*X zgbrWdl1|KSF?#7!YNdY(mP*<0iEb@~IEd4kAS+9@^|z(ByhAd*^#j~DVbCHvlk^MR zqr|&N(QR31w_!0lf$+8jO9_jiEA%ZVEJlU9ZE0o;GeVxF-y-=IJ>QY~jP6UFy&tje z0|vfE@aAs~c(lOmsi^9!I7dQNw?iiQp4+;Mtm|8t`w; z2hl<2G-5>G^rVk*7Ef>mPf^A*)bSj*@d9`7k|y+u(AVLN+(>g{MlCoU Qo@bB?=Sk~KYnDgLFZOAD761SM literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$ModeOption.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$ModeOption.class new file mode 100644 index 0000000000000000000000000000000000000000..3630f9b3c214190028de66741938388b2264f520 GIT binary patch literal 1413 zcwVJbT~8B16g>l5mM#mFTF@dQm9KUyEGT|LOh|)?Nx=sU#>b&d+9mC7v%5u&`l3Fl zQU8kxh|xsfeDFsZ?@VhUVW|(MX?O13d+s^+%)uuD}Q1a%%( z?9lV7fxXLpd!0M()VjAL?$<-db9HD8nW*Bj2)%k}H_I5b8etfQio1M|+g0wC?Se!s zGxUTNCzx7b7%z5Wm6a=w>x6e0*0P;T3&&_SL*H@B%O{9)TcoN$s^VbiH=(1~KsN?W z#F1ba$woBEZOP)Ki5Pkq28)g>HX5~U;XmNpRT?i@^h&(C#eGM{t)wRBW5{)se9TiC zG#*quKiuFog0lic-;M}MzSHtDc~Tg|!~e46bd#hf7o;cS4B048qFiFoxnFMT@2PV? z5IYRR+2~SZ?MX?f(E=S)4Awu_sSSu@23Z}m3}c;!H<6R~)$i4X&m~Tp-HSX~DPPaa zaJA|S{&Z7>2IgSvm}i(cwWkOIUKW9g1uW8Sk+|kO3^P$fo=h2-#8v5P#-I_dnYfM& z!$2UyRlihm_QYLBu1+tx*r*9NB$qb5hF@ys<4U&d%3$7eUE!S1FF*ts(VJ5 z=SWdxL6ay9V+2sAvp7ff@|4D?LL?Qlrufdc_*{xf4N`yk(%K=$taL1b@ipOJq93mm z2=PC;DWV|BR(0fum}OH)P{mlJSn(zo*OmfO&jWVn>?o+hT3pAPl4I SP1WNTZqrj<0__c!(e(#rNKWAZ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..1c32274ee10fda7567c075e05473fef0892d0630 GIT binary patch literal 4933 zcwVhn3wRXO75*<-n9VXkSe^n!CY>Q|%(J0c|+LmgmecGp1?bF(aR;{+B{qLRKWfwLH{cOH3b7#*z z_n!Zr^WSsM96NFM5dd{U*Dy|CUNn&jM`A`goid#5VJDf4rNcW6JKSbi2@M{BsvX8o zBOEgl(Qtdu4m08iOiHFq+i6Gj&rB1B z9?!kHHZ(Kg*p`_VnBiK>I94p&VB5y-Rx9n$XjNo8A)3ACTQ<*;w0F~L5%dl&PeiFV z;XEs0Ij<9_2vm0pcp3@PhYHNrF3AuvZrC4BO2o{ovo<=cE6liarjIwphueWk#( zGDv(_h}lx_9354dDlnzhN|>86@gCFOV)V$f_*;_^Bi3oymi(O)dYtVRPdC4Hw3re8 z%|IznbP#K zoY97u4CU?)lP6t;)f&#FOGdTF0yKYJp0ca}f$GDF^#>kq@uIc^Y`|S!&KP z`${MyEUh;?j5h%qGpn#lmu)^PC%Cn#an20NKa zdC|qRpbWRC+SHBf#99rP3M?Jf2U6GF$BWDITQrh_j;Y}afwMaF6Z?B^Am|jrMw@4~=fc5>3ZA2UmSB~I$i7BU)WccIs zyILqSjD{rh#7L{8hGfhe^Um6u>Q&B4kK!y>hpRGqdbA{Z&3-R->gzs zwa8RHf0Ok2n*}a@Sw0^v3K!w6G74`K2%Uld6$@1m-cdqC=Eir9;!VZDIxpVMn_ip+ zWhwLG8dl3<@2v1)5BAEFzek|y|8er_P7UuJ3*QPa-k*=#rsOs&<->KjLBjZez^eZp zhBW%Yv5cu`cHD=1aa0`{n9SjJ5h)FK%X6qE_eE zy5YD*V0wv|A(1ma9Kc>LKEujeh?bNqPH6b-SQb}%@i`V=H}$9{gFS{9U&x~<$Y{@p zgV@W~CMB@w45|QANYtk888es*>%x++z^aNU} z8#R12U&xD8*JZ3&uS^@mxL?QD@eSD)8nKMo-Y46e#>9tp9qXkNoojeC>P<;Xp&1pnK)bJMk5yMF(OxTZ`sWKRL6Ks@Zsn9rG{Vd?wyiQ zb^HpCGA|~~T`prH=BZA|wM`m+J<4@yh`9WC3{U7dB+u?K>?kYGv@&PmEg>%!jOZJ8 zGpc#w^pYgqZ25Rf?tFVCp2lA^{JE5QyIK3^@B+Uhl=T z`DD+C>TNRk9kGocD0_~qs?`>ouik*z%4k+PFf+h8Lg%)+TkEz(oIj%3D; z4omo)PY}Rrc(9Hj*3(ooH@yI7;X*8?d?{yjcVh%lt;`1z;_4c{ zc{o$6%wIz|@_2Q@I}v^W3;cCMSn0VJ6{F41+I|-lscSGUkK_|68tpoG)`tx*C*m3`i=Ucei+SN zLI1`$RdLwT#vhOBMZ+hxQB1|<3Sw5qj(t4 z;1R(*CZ^zVF%M6OYCI|GIIhA|VhwXoA+(}C7utzpIc~$37|4ZU4!%sgGPF!pIp)d0 z9;WrILUkM2=i%5&@(;Czj@*Q$p^6n1S=?P!do$*SDu!{itEzSgUmL^&oXO&wS$wCX zCNzxWU0m~U7C$6SAIaipNAcLE+F%xspGwSUY2!IsdmhX10_vH)n(!h||B^xA6i3%^T%5;r|mHQN*X6LAydspVmuBZWU}h!=%Yq6$B7*GsPp;R6uaZT+_*nC9>|Rc-SNLf CCtjrh literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..6d26c66934a66533f42e644720961272f7686710 GIT binary patch literal 1142 zcwUWDZBNrs6n-uPx{VIz1c8alrs62hw zCjJ0_l=0klu%TPDN!xqRea?BF^KyUw`t}3BGM+0KV3@62o?bP%<21N?pu4thI{G1R z>Sf_Lye=FCgADOQe#~`~TXlVF|4>w2hLQa4=F3uXZ}UaD$dD*?5Ib(uukOgHe1&1KVAn(xaU>L6VVLUYtKurg86tJz1_lN#^LHBa{mCO>xTYeC z5mH?;EV1bw?ThAXzAu9%N_Lf-72Y)DzHJ=N`C6k0;kt@x#7M7uU{KoW(!V;94a5ez z80Pwm?Ka6uq*UC*Ed{q3CjSKFJ;SVtW)ydEPr=-!UIz#j8O$>%$FhrC?-?dCg`Pxd z+?P2mN<lFZwTc*>jQaPGK|Ya0_zYuTG4a`lPtteP541vImdRxiQ~rs3r!U-B z=`RBeEu13RagF-GH4IV#q?;OmFoPSCOHM;Oz&j$5XX!7PSZHDPK2MzGS-bsqCETE7w5PGmHjYW%`aQaLBT=Iscl;<*~$)xopOBzLgGa zxH)X4RgXYTuVq_)pFm|eGA&Rw;LNEIDp4n4;E+Il!m`y^E;Fm#Npm)>1R4`g%1lq2 zuBG1#n^pdz@saVZlUfKgOH`vKgch_JXccJM6ApnutI{xcp*d zI)pBC8;G&sy;GJri#XY$t2u#|Z3iVGdbAEgS<^K$ij0xf_Gj}$5xL6Cr3qHc{!~@E zIhz7Gi0f$$N|&d}3m*bK8MID0+0_s(n^=idK$tY!XfnI zswQnjpmiJbQoDdWf$I_pjFSGluH~x%Cqt#o=?)ySnVupS7Y+b$fA1|Amv|R92%su@ zYb_J^ke$mY*VIkZQ-=vm8JH~Vl@bGqY1|@1wp#Ir(kerj0!NGP0z}7WmsH9pgfnG& zyk}+ONh_->TGhSzp2Yk3fF$agePxgMD#O%{lq7c5^cE+SZn)d{NaACdEP`D+Mv3l> zTHrB+6qEs~ykVCgiFqt=KBgSoCuR)R6yBY8B&ow$5=;1mg<9UA<#OL~SA$`h)QDyz zY&aAflPPH-fp|Evcf}g_C>w z*$qT8GOf8>mAI$ts9!X_QO8vU&O9C9fyAeJ)>o&}46EDfp~UC-f)KgNCdQM_9@8et zO#NbWRX9w%d2jKt4psgMDis>TYB{c!505g)IF2TqoSQ1tE(_n1v)UXTETEDfPr*OV zcs?t+=C_N_TE4~k8=OVg5&DIT3P?U{g3WVyj!#**d>HloteVoE;c%5E2y>NbKPNJhw@LF^OEjsiY>v;25G&NolzoB<@ z1N}1_7@Uc%V|X3!j77V;^SHK||JbFfN9b*>`W-g~p5peUYVIdntMm9UkJ+D4^9b!x z{ko{_^&%Y{GDtQLUte4i`1!x5(LCEj!GOMnK^jqm8AnwD!pPCxt)qZ(=b literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/WorkSet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/WorkSet.class new file mode 100644 index 0000000000000000000000000000000000000000..4a71d615eac4b7ce1e51f6edb499250f69ac5887 GIT binary patch literal 1498 zcwU86T~iZh6n@@h!^*OiAO^J!MQpA4K)0e`A!v&Tx*CEM3zfTC8)tXZk^BCK zj-Bbp9XH%KW5cwa>GZ0d=|AXi=xUTAH|z*=brUo1J14ox7vA-|NCC;fG6VQs^yMgqsA=h>0d z2nG7fakv$^o^?ltb>1oo=&tWZGzCuQ4kSzmf!r*+VN}X53urUVnq!~`Z|N|JbVQzs z zkrT+M83+vI@&}5vJN{A+1~H`LU4avaqbAN`m_7K;6Lxv>UxWiPm2|u(F!(x&XZ!s2=xgt8~l6hq%l@ zwJw8cR;cCd{EUiRF>w`R0^MP2EsQag0Jfb!iZ_jGCO*Ohfn}{GkjWixGry{YDw&vy zM^%?$CDx?3?D|fn)mU?a2Xf7eTWeOOw=4r!ojXn~s=M5y;qn`HQEin&&0L4snIo4< zAmOTE95qaVl)B9o8hR~LJQ8LmsiuISkV*6#+@5fMYYJZlC)S9J>5LL;8}Sa#ou8R+c2I&dsg@b>4!Tw@goN4Iz7LI+ao_AEASi6 zRW3fq`)%aLwJmggrR`?4@6fM&8BMFTaVc$mzx%g3Co@_bqm!w^a}1nGwK2Xzj7foS zcH7TLn80;@Px74tSNOcH!o(O(VH{ap!w@E@!z4ygqIZg`RKh%OJj4xD8TarBE$|Z; zkB@mqY)#`PTgze*Gq^<-g))mdwmHhbuiLl-jVOkCIuwLM->lZUX=C(XU`d1M#b=ZtL3=qyU-<_HU_`tC literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/HashUtils.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/HashUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..4ece8879b1d093e4c05cd6b52d930d2fb73c37fc GIT binary patch literal 2539 zcwUWFTXz#x7~LmLGHD#31OjcLwjxT>HiRms(Bg&kLW60zlvYc*O_E76HJ!w{0LA-V ze}E6ZxP0?fQB#(<_yNBA?k`dInS?|ju*h1;oSgH0-`RVAm-+Lb-|qpKz&8qf0*A_` zn=Di{+pcR)CF#^^RXe$^S+-F&bt}1`*_CC-sM-qr0)6Y+buC%d%yRNfeqAp(0zK7Q zSzs{how&42a-(d}BFm?4P1D4#Xad7od6Q>m>jl>`oXuo~(UVIRZ6bAqcA*o6s$m+= zYjlalR|NbswW1!zHtbNaU0_G&_8AFSMIUwwC}rKrX&bu0?pQqAu~~8~!k7+Y7orMw z3-mt@ql!J)E6~e8%?*LWu}34tA5XFu0s|@n2oh%2F!h|fk=LyYTE0qLk!-D?RaZ32 zkpEko!4n?WFnaK;iv0*H7!eqHqDWy3<5_vv^C}dCsE|`JY=L<8DYHnG!!jNj>DmSz zTQrSYGGo?Vr@24fMMgT#-7M&J$EcYshEaiCZO=3969wY}`|cm4-BL-n^y2?QhcSl3 zl5UcMb-z3lUy(c~RJ??jsgqkTY7PZcVr%J)cQ}SuRHQIT{`4pc1b7tBNU!56ra-X4 zqEXgu)~7!fUrYDmRlKf%g|+WNp=N4k$tb&)Cc&$C11A}5b}qeqNnS`o5&KJR#L5dtxNN z>F6;#F8$9+|8oL~#}{XpIMQ=T#Rb_bA*a?nlwGl+;w=d{SYpB2P8h3LQ*g0s5qd?R z)@(g>RK+D+rk8FO*q#D=r1;$mCTO>+EZQ~C?DD)U-l6tsmwJ(5^4_+9Z!OL26l$)? zyowCJCi5%HnMRgwyH!W_S{EeSq*0nep0q4&Q`SjUR@X+WayV*yd5)-^(ri&PjS}UU zGaYMF;8+)}pGN&@1%!O?KDA}jcI)+;<>Q0gR6KC?=zbmSdx`3lh6f}Ec_4gv4W2{q1!q2QpwqnJgr&YP*Cv+3Ub<> z&(4SN8Rc49I60A+^*U&ZL&WUmVT7Zq zhc6o+2IXw@R-9XW2Kd{HFwdXizaxCgj~WpTsCN+g1^qv_{6H%oe~;6068pSe`Ptw0 zPV)}w-#5C2q0ze-UfsfTzu`b9!gdeEB>Wr>J6ciHrVkF{1ux!)l|Uu z!@qya(*}-B1#jcTcNo5n{<}!8MrOA#AN4noi7Ym7rh)SfEDr?l;O!}8K>4YSJjJ&k zFi*6n5WxbXIE{WzfgvmsYYs{NpT=3t;v84!QNj{7*z1zvB`QqpZH9GR!BuioQN%T9 zydlD!JPK4NiZ$-)t4z~1zN0nvY@VKBd+8ldL)`QqLu1 zR{aD14z&YbRoSdzhjr(&g0CZs8(3k>U%@6bam%B4v3!wh^!0zPzfY_H literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarSigner.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarSigner.class new file mode 100644 index 0000000000000000000000000000000000000000..3f0e38365e17c73d85df74f597be30ce8152f58b GIT binary patch literal 5541 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarVerifier.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/JarVerifier.class new file mode 100644 index 0000000000000000000000000000000000000000..5987cbc9756e462785bd275697481a3085cae84e GIT binary patch literal 9109 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 K@}W9Ke*Z6fw9PF5 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c74201ccaec22309985392051f3ede36e19d34ff GIT binary patch literal 1187 zcwUuLT~E_c7=BJyDC_DN6HruCpx`zb-MljxZzd*~fkt2#-W|G=?qGMiw4G7^m5D~< zg+IU_WqeOn2)cxF(e^pddEW20KYo7u4xo*e1%ts2)Y$Vwo+Kll4!ksq!o)k}aUugH zVsD>I<+d%D3@ekAfk>lK>b)4HGExlF=|CoKo5Abm@Own$OQJ-)L#B_VlIatMLG6mR z-BbRSdm&eWcbLXf1-Y1dkHPFjeNhBM$-xw+Z4_|LfrT=|qgoy(likjCr4k3@;faWk z_(>=js@=%vVUNdBpZ}1iZWhBvo^spNp_0p0q}~ssanjN*|BHP=(!OwdNDUt8cJ&z+ zCX}Yrws+t8A{%64;Wk6#(t)2D*jUCr3wIfsIf^--orC*WVVL2*FOtNivW~Ah{dx}l zP7!NZx8O3YUaoeqfq90hH_7pd;{{j(zb=>hTq|c3XFn!P!$}-O+9Z zjnqERkG5e~`C*h$m-j_Fi24q;;W1S7x=S9)58|(~P^aN5uXyH^-kjx?60^(aaaF|XY8S5JkR1S{??wwbMSzC>zZnrO`S3V V-5InpYuKbO%XC$2Wl@*W`~?*zHYET6 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$10.class new file mode 100644 index 0000000000000000000000000000000000000000..0be4ac8b9cf0812ffa7a29b949da2e0ff2ef5934 GIT binary patch literal 1136 zcwUuL%Wl&^6g`u;apM>o0xhoqZAod8Hg&QtVpCcPDJ@7TS+JWrBWEgS9N7~D{0JNP z2qY>H3qF94Lfjb@A|O)Jg*|tU&pr3)A3wi+2hc&=MUG)3Qj;Kzd6td29tJu|;w(7j zX(l5j(%_IwRqGJdVOX0*jf76dI(Rh!mF9j9I;Ih%J5MQ{HkDthah0gIqhyk`jpl#B|DsTb3u9CLfMIz? z?j}=j|4k_DTrwAT7@8N(?~j9rD(<_u$IzN1|LG`vJisc$A`e56Wi=|~(fA!&I(yo Rn#dNN%o0xhpVAEY!%n>t<>u_;ADN?W9sEZ9w*ku#Muj{HEBpJ4+Z zfJ6mi!3XeBh&!V~1Vn1Ou;Z-$R&A{I& zV+{=(j~Lc2XS-O(V+J=BfoaB}iq06=Yn^8j<|CmpYSvMlCxLh__3+BtZCf{$++HXW z+SL&R4b+*WO1rS9f+$X@;rk*R#se4I@EEFkktL7hJMo)YY_|I7(&`oI-(%IP-aoPm z^w^juyiC>seYNOx+neWb+FPA3a6cK=0=*r>W|%9yN0qDNB_GdU>ao;+}>OWBmA5bZLG*Ol=6em$ONL$y@G(Ih~>8z1e Rr15ChOcz5VdxVwQY(hZWFX^eo5Aa5aC}JQOQJ-yMW#=rlF3ts zLG7Bh-D7^jy^yQGJ4hm_f=o=k$6#&iz9@j9=wbqs4)VC+!bXYVaV?9J%iT_Qr4oDN z;gN_A`B5ksDqZdKu*V~5&Znehn#Hh|rQCLhT2!oZrPbS^9>*=?^S|I1B<%~Q4t02B z`qgKcyQDUgx3lxc7wIHp8+RERS5ExQz`-IO*tpNo%uvnw@LW8^62lbteG$i1D(lsC z$6wE&-zs1Qt2U|(%U7#iJi;u)%qY?)vM-`-qu%2~VG@mk@ldFQx^ZaFGfd>(qfDqldQxKs6(B`7 zF`H^im?M-=(L5oGtZv~p-7OGjPIuCX&xkR4xA7UyH{7GR%m2j7eLykyF^xC>M|&2} g#TxlGHPup^I%Nd9%hCF*V4c1!)m5;OMqNbnH>XWJ)Bpeg literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..b56ebdce985e9847b16e8124a96cbd9ecbbb558b GIT binary patch literal 1188 zcwUuL-%ry}6#i~kDC_E&6HruCpyDuu6MnFw8798AYTr6f@=n#R6(D)sz|n!Kx}WN@A-a^Kf+ z11;mkj#f79YsS2yYLt)dfz1vLrH*Ls5gi1q&wK1v$UOG|H?$8 z@xmYAk21ceDg<3ZxoG>G=REKC+aEu_eFxA+%ZA0^g=*vn5l@mKPy2qVb(HwWJWgb& zMC|W!sk}`aMTVtu%21?wnEKC$snm*LGVRO6Ycu$r9DWao+#^cFTV(oBDw#fF=+`c2 z+d1ZMxF2y9`uk}tRhWyZcNvP?x+h9tD7%=zq=N!3xv(+K@Sv8*$#}Oj9jU~#(cnnL z2mB}!4AqVfc+};wH0M8L(KL%;HBY&l)SUT zxiO`gw4I%Ifyf4#*to&aICtPD1`ZZ++r}-1W{zS`XXoM$mKdgZ5Qrr4sI0?_PQRW* zzg5Bt?%MDemd{taSj8;0<8`t}vbQ?!nGEA_G!QB!eqWE`Ks=FVh9zULVcN;yK2_vm z+xQkVSLZZIT8SMML^`2X?~1gqdoDKMGgQpZOCHG&;;*t$t9Q|&oh;B_$|@DJn1n2P zY)lbfBJ=`9;(_VL+GjY8_2xqH3*3*HZie1Yre~P24pAZ0AU&yZ8C4)dS1_AtrZGpT zkfC`(MY6hzYjn3joH`8 zq(lUS7|ZUMiCM7|(OBs*mKP%4={Vi?pf zXxlyJZ+H-M6$J-bB2`p~Y4jNEUELRDFjPEDVcJCrmpnL_Wq438;$*Vhxvo^=*?4#) zl0$wJ3x--(hdl1_M4Iy-(l*UvST9oUHg%}tbEVb$p&qAgJ*;D%k{XfdtxozTza$zDh03T&2YQ@@;)yg9EF1ZjX(ogBRFQ*S z<5|#D-P06lA@)=l>y#S3FS3E|d)Pw2P&FGbc`QGOzsgd*(LZ4+bJl^7O?MXZj_sF-Ysh-<3 XC?n9FMO(9m4f?WNSHor=bs4Q+&V@K3 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..5a11e01c91ca1b11defcbc0464cd3e60d99d59f6 GIT binary patch literal 1193 zcwUuL-%ry}6#i~kDC;WB2`DNmP;ncKZYDe!j4z0Z$p8~@558Txo9>eC-lgq~`d^u7 zG(PwT_(vJftqMVxP#)Tz``z#S`p)T(pWnU%=%DSuV(=q14#JqH>4;~8Ak#WdgHxWQ zGEyQ5_PJF4wga1CWfC(InI2`q;V6?@F-&Iznfe`upj#mBF@diL63Gs^K9x#l&lm>v zEBba%`CA^uTt&fAmPi#9LK-~=dsp{G84MKX64ho=9{41KLI`hV>%tZj(Y4pDV525A`^0n~?wIzCh_*I6WqTM@Ftb z!@`8tOxf<VP;H%D(b=QB)M5vpW0iBD`?M-9lW8<@{IvsfUj zlv|5r+2nN-x9Dz(Fmt+{XM9eG;d{+baKGX% literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$6.class new file mode 100644 index 0000000000000000000000000000000000000000..1415524558b9910538c2560d698872e9d628f5f2 GIT binary patch literal 1199 zcwUuLT~8B16g|@}EZwf9R6tP?ffd_AS?U9c!T5rhXbPHueeiAAPPRj~v(4@nKmL`8 zM&pA&z#nD2Gb#ja!t$`Ycg~!9&;8mTKfiqk(8iXH0)rQ-ksm}nO@}<|`&k@Esei(g zREA0<{yvw=+qPjbERSP`B8!Ka|8khgSTRgyeVKY~2EUUd?h%2n2olK-xjvRkW=|OU z^(*>zPWUPJBd$XKFiWHgb0Li`gS8v?LUn~U4?EqFN*s&^ z$09l6$B|&Db>e_WU7kpN{sUUNSqy7=%H5_8l|8Ov^?neK(k&hGKkW;Y_Jz|!YVc6E ztH&@mrZk#%reXvsP}>=&txPH_(14HlW;T;Dx+>4#-k(<`i`Nb{Wf)1 z8QkZJBJFAkLF0AKbEVDLQ$ZA`)bV|h_2Zt4P52B|z50?z@`L!xEY=%cY|&~K>1Sot zs@_ks3iQ~RBD_S_8(4$`mFD_qIL(dLg7pRNN5h+@w`2GW6NMqFWHpITY|Nkr80$J_ z4X1)RvWmu-a^bDfoBz!{({u5F eV(Xgf#-~9Uf$j>lKC4)#FEhLvHjL^bTE77JMmvcB literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$7.class new file mode 100644 index 0000000000000000000000000000000000000000..a3c1d5b6dad0c70befe41731936583248d178ba9 GIT binary patch literal 1130 zcwUuL%Wl&^6g`u;apM>o0xhoqZ82@)Hg&q{qKHi?5>i@_TC!j_bp~fDXB^p1MG+hL zBP1#i3qF94Lfjb@A|O)Jg*|tU&pr3)A3wi+2e65@jRJ!gsZkKdJj;eW?+1C3#9466 z(@aK6q`@AS%GW84`QyO;2=+>iY6ee^E z)ODiH?%Pn9v1B&xF!&da?~j9nI_}%J$IzN0{qZDRJisEuEDuAGWgZps>aw$JPQl+U zV;P=}hYZUXvt2yG3iazmr1H%v1ADDAOrz02sGQn#kc`q$Jd=8AW$mz`+sWWQS0u5c zwFOPm87E0gu&cs2$*9$PBJU?X7aIr|s(OPZkL5e@n^|l$yJ*wS73rU2)v8`RvI_Lr zm?gYS);@i;=yd(HGdTWw>kHgZhBZfT$FLb@3hz-RYtd-AxP}^Ftn0X8I4>uCJ~9-Jkr literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$8.class new file mode 100644 index 0000000000000000000000000000000000000000..a07cb626761ec10f427533479bcb64d7069e3051 GIT binary patch literal 1129 zcwUuLT~8B16g|@}UAkSRR>3b+z!lm;+44q$@dYt4DM$kL!M9;M*$&yxHoH@!KKr8o z#zdm=!5`p{GTxb>joO6ruse6oo_p@+{`mRrJAf^;T@)CCSdGFc;dwsfx*zH^P4e)R zXSs}($ijUtRj}>CVOXBTjD=2zI(#wIGF1#E-IsZ=#SnI;&^;#bkRXxmkn3Zqq<+HC ztzXi&bIM=yFySf=k8~zgJOOER8Jyj;C(2-`_?SV-LlIYexVXx&R-aa6t|OH=7!6KD zcFa!_!BFd@5l^~2ljeR7I;If}tJ9RSP1RQdu2S`OkdE@Uk^C?AUleL^X=sY?G0aa$ z-6ZPmy@`Y!OYY(hL-WG%{c-THi2E+?F|?*ge>@2v53s~A%cDr-c|e7{yzDF+Q}B1n zSV7?8A;ZeWY#)!X$}kg&Ow&ZzE0bUrj|M_%>e5j<$|CVhnxT~qf75i6!GEquVb@3t za`VPH(hlsYC`ohb^uEyjwC7_JAw$(Hu;ht+Cw?=F^+p$MTDco0xhoqZ82?FXXH%f%tW?R0YAY8 zJ_Lyh#DWjtqY!sSg$Rh$bYah(<8zv%z?2_wasbuzq zpmD^J`d z+$7`{VFkL~wppGMVp+}4aKGYi;S4MPWXXL%Irq_KSvrq6$+AwdO&@jZ(?FBXDp@s> QV}nj+c~xxMtTnWL0mq*vNdN!< literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParser.class new file mode 100644 index 0000000000000000000000000000000000000000..0c0d46acc72374f984fd9825349f3f3a8d2f1a27 GIT binary patch literal 3938 zcwV(u>w6T{8ULM=O=dETnvP;q(URIAumLtVNFZ1U;TF3|us~Aqf|K3JX5#M5Ix`yy z#@dV2UMSesHfmc@6wx9TC@j_#m6qBny=m>;_EVpyU-}RDrBB~8Gs(mfpG-eA&y#)6 z`JMOuo%eRmnK%Fa@+$zE@OKHEVR_Cfr80Tlb&I+;obqft@1{m{$2D`7;iP(W)2iP= z;5LE`M?!*O#cU=SyHK#LRM!+7*)UXj!=_u`$WWi2d$$hKUu#;X_X&o@OX3(T?Po}I z*;%6+4D(b}qDsaU4As+m3Mz1w3JEm~*Dgtq=%acnuUom)cF!@bT*q!faaG#1jNVdV z&~SF>gL#8NOWPSe->*BSn1^6O1jCSu;n|GDQB?A%o;S0)M;sMP#D>bIy&0qEnYQIh z_y|LCHpZOc*+nna=j%-yRAT{dkZ?W2jdQ!9;-gr|pbnXNqtnWE=1rXfm>;B}4DsuV>Tl!7d0sn62OAqBNaiIP%V&7aMrUxd=Eq6MwwDs3S2x@R)=4UQNY zuS3ErhMNB-5E*V)u^MZrr^xZml)PTO;CIDkn+fH$DsBe#Y}KgYm_uU>YAX$(xNb(B2*}ZXsWeIIDH+`i zjXkF85?I%n?(W=Pr#rb)!LYm)bpvKTUsrOCy4wn4cN=4O)R~s+8G2U1C($Dz%~1P6 z%qn_CUK2xfB4lhM=X?s`+^1A*7dffagEp!WN7basJ|pOK8PwWUen&JbbRa*iVwWJR zb`5VUZ7(!#o6=|!8h5C;b4p{gZF}OHx$6U3=zYgwi({9HG6tvE8Wrq8N&*$Be(qyY z-z0AKh;FkOhT~jHGmrk|{SpTe4ZH_M759Ly&;Qh)pQ&Xdi1JR6nYro(<6pweMjIR?fLE@g2@y&>d zg85c7YgKSi@ID%kca@CCMJ5E4r8ODfjksv>iD=fQU;+hkB%TswKf=%uqu~B2psLGw zCZcMW@N7K)s2DfPcz)WnnNHDB92d?00z?1*quE7={ve)r?J`c%Ws@-+k7|87@{*3^ z2^^PkHiB9toQuc0TE>s4)^t-3+Ah_4G9sZqFXOm`R~Qz>U=ls|8a?HvMc0<4=iMP0 zKZ)3=qUQzM&tkICwexd&sa<-P#AktR<;P^a5%H~7a8dC6GA17#@L!X4(XmHO|K|N| z^jgziZ$~rA=Oq-vM)g~YA$If86B)dEq2avXYcQP2dL~2fz4!p!`M(yGOoroKGl3&OBx>zX={DT*NIYS?M4r&UcO|tUZI}RU z#7FaG*o3=;m$Z8YKIY^11^77OpV2-m@X!1Bg8{yu@Q1W73;e4-{{O!1qaspc4eWsGahm9}2r= zQ+8(pyWZuKD3j7l+RHxhV^SjMJVCE&7kuca0d$d|*R@~x(3=5tiJ)I;zY(sz<>S8- zTP&w7qFTL;RvNBHHSdJRH((*}!eYJ=%lIa=(zuPMv5xm(Bkx6;#(jJz26#Vi=L5*n zILGgV&G*3LcVV2y5AYlw;=?$=O*}&530}lueh;4E4ql+~i+l`c_XdkT3G7x&Qwc|M#zWm*fZ?P5KVU-w4S<{Au(-6UgyU?hoa`P)>yMXedvF PvK-3up}ZK%OM(0kE7>w( literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParserCallback.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$ToolParserCallback.class new file mode 100644 index 0000000000000000000000000000000000000000..44284f87eafac1c98ff9f9900ff596ae67c0e3ae GIT binary patch literal 1000 zcwUWCZEF)j5PtR&bLPC-n40)jwM}E27w{AmKSYEO6om5yS|a$Nu(@on8?SriZcpgX z5~>A1_yhb=;%st7um=st&CbluJoE6({{Hjx7l5be*{~R%hbr@eh^Of>*N2{t<0$oJ zJV|A!MB=^UQnmLe`H@m08SyBZ@ZgJ$GJ{vt8VVgBYwwMW#4ri7Bcb$p6GKHG%C!B2 zq3vHjc0lznrIPv;!%k+&fs?%*zidtj7R(_thz@oOw_Gc6-;m?Zqfm#H2&SjPh!_Zij-u3bFD2Fbyv z)Bl)#n9M|=2i?!-bMg%ujV|zK*k5WZOVku8*d05x#Ybj$S4qv?I7oVk9ATw*3g;A!{tw*y^bf=_m)0g+t2GB|E{by?<87iv^gyJx ga>#9}F{CTK{u$cEgsl0$J-0jP%qKDWn&`s%3z`7b%7 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..554f50bebcb0f9c5088458e893f32d4df28af4fa GIT binary patch literal 11988 zcwU`Z34B!5)j#KEnPGT976OFL0TGf3NeDX$pdkc|h6G8125i$Ic}WH)GwI9(h_!X8 zRk2o!JJgC+YqWL|FpEaSt>9kQYD;TtU8-$utG3!&tKa{;WirW32>sxfx$oVx+;h)< z?|bU=2Oc7#B6X&N6w}O>Ku2Mt-y06Mdn2udkzmjtF5K!3g?%jnJyf{P>kBw2nJI0n zce}UH?+vsRR&Uv=H%6F}{J|Ec$(07ABjWQHVxq+dj7p4psDw#7v%J2xy1KGKewZ>U z2e{NkLO=!1n6h9X9PtJs8@>Jx-ASXFMnwexi}I?5x|)W{>axqxyoRp*RO*` z>gtNM4ul*}xrb;g;6c zZeThoW+8}ESQ>%ATRI|ocvh9SO;#O0gttYQzPhHgp{8PORcUSAhVq8$iq%XLD@Dx) z!?51i5%NVk3jqL=^bPUYsoV9Cuep*aFaRVDD zYlY33)aEiU4o89^J)YZ{dS{J5#B16I)1{gIvOeV7?v3a`jCy8_EH(`E6HNRv=)u?Q zYs5Sl`2tKcHV+{aRTakIf!NXN4K(>>zXb;J&H-$12cigW>EGgQ+*Vj-J)Cahi`@vtsyFRKjSp8BmD5@W!CNK`7xo&R zP8En@Ffu2grJQ(9xx?p;QN(nnMk$o)pmlcYiHUe8Rl`yAfRoO`SXbksN~+PQmg*2D z%dJh%Nw8)DDK^StXKSR<7zfoeO*?MXyXYL+EGwN0#V6X7!S2f%ji)Sm`ie#qD9b@x zfSxb|I0;dZUQ{r@VClkn1x54b;dfy{k&C>vSs1ivG?6Ab$p?Exv5FQfTDYvBNd61X zHjT1r5-ciyRn^h9MGw__xA=8QmZGnX-jGk;jY$_JQBZcU+(BPu%1q!qE^4QsFpg-n zjEdnokyal(ZPp36DjYAl&4{B3Ihzyf=R7*!L0@BO+fowP&T?m~?&qKo0!y5uZyV=6u&8^_9F)-K55!v2Et^DT`orJYD^NKcJ=I9wWP z3CsND8ttOxMlSM(A|k-IHM)|%0|6qfq2LZffaND7K+H_7kcu4)Ra{NG9rWEn#kHn0 z9MRh}x`wVr;Oe1JG{SvB$zXv9nCjlP5(iz6x-xXFRUJM*Qmm71L@0&GdaUfK8^L96o>tXNP@sn}cp0ydwjq(GTc$DM3=?tDA?gw9S%; z<#n{#MR(F&4(fu_#2{ELeq^a$+ZM}&+x;TY14HB(RsjQY zFg>WzA#q7(ME8c8f;$2(I!uo^=wYOg0lEr=hmnSVK#xioR>U&3fJPpFT%(`U5eTa9 z^hFFaFZ*BJIVPO0rYAIdlAb~W5Plf2@K7dJ4%4EMImSq1 zw;(Qho8A?v-a~;pA*oIPC&4;~GaREoYxEa-AL+AQpiFBMm4k#Uz$C%;NTIZu$i*FP zNcV$yGyP4Yzl(a(!+NBny)4+)77RcLZ(CT@_@PFVX^NBn!Q?sH=l8qKZrZ)W7io1z zT6K4G(C;_$x4T`4bX1dYu>{1&8hs*>o7{{->ZE^T1-Jaep7W*Ya<6dDkrn=<(HwF* z>A&#FIZpZlepGGxRaxJg^b+G&)HT@}n|fjaY<2jiw7iQ4|4tim^B^ z(8w(ai|i$g!xj9(Mp&ZJ406JWc$s9?Iw$Rtm*vv4)HxXaXzuZ&2?w=};-^034_-m9 z%g^NwUWF7gB4Lg3oWyLD0n;xYofn!|bck2<9ku9U4=O>m(@0hV-`JcHM?J_-rP3 zY+*C*5PU}a7)|yLt{;qrV`q!kU)m_0UJTaeL0IO2HyBwH>ChPE!@D38aFW#U@EF&SkBxyjcsypi+$9v@Z*+qakI%_tH#@e!DwH2 zwJ(Hl4Td_M+=jYs_ILBp;Bipnc1Ay+f$X^^7;5uIB6^eEy)8X{SwBwm#pjwbL^SRY z861t?zy{shI=tem&3 zX6Y5$i!{ENzlog(^c|*s8{^KUmhdkA7GLJzOXK{`ZW1)UoOgj0^s_#CTQPTdQQ~hf zocwJx#rCV)$v6sRxqV@zGjx4Tok+CSy@o{o)f#_S+%`pONl23EH5y-QBvT8oO5b5K zb257Q1!fI#FE?`eO5u#O>&D^Jz1*r4#$+HEDR5V`1d!y=%_bo@5ggGYg7}hL64=$p zx($lTHn8Ni5{fr#{C&O!dhs?j4d`V`&TvY|t#B~f`;!KP?R%M+Sor}u{J}_7!J3Z7 z)>3~<5U;ImF}Qai84Si9dgl^@d?(seK_2$br7jTeXm1aO5CC@H5JP@f+*)-31Qjw% zNRDOL$v|9lwz&2^8vj_j|77?_o0ESEC+I-GQ_vc0LzLgk2OPYgY5L%7W*+09wszSB z&QyF*&QzBB$s}U9+m4~7i{yl}*~xu|!}xU+Oq>v0g#~sobn=5}Hi|`_hcrISX!#w! zK$E^xj#3G4A}U<`C_nDt$Kpc5wwA^}mwkKyzUGSvx@jOJhSZybCK3OXTtYYB~i%daD0npcUa)>eZ&BE2-h zP|5E#euMvDxm5HLI5{VGbD8M=Esf?K8voHij0EMb)VStx@OyT>3h0r-x($^s zepgccyZjf8-{-%=`QW7i^FYfq(ayP2`2y`7_9cWk%ilHrfIr02{-75UOwLJ&xw%Zl zew6>A@jv-vxd#mfA~0~+zQ#=CT$`NyFZ=AgSg1eM_&-AJ@`WW*0}&~O|Bd>}BH8&D z8qLGb`BBB1QYr}ypd#Z&I5)u}5G>w@OPnet%5{lDIqdt+1eeK9H7bg_3<9Xp8Wque z5nzm_#;S4X8pJ2#ZkiV*+VY6E&$2?gMhj>mjH@y=HC|;I#;t2_ms6M=w(Pr=*smms zuWQsqO-)kS$Z6q@En%x)n2=LZkqBK)QPUi1>YxL?xRkdMO}?h4tCMgN@`WpPG#?@H z#j@N@LNr5DGX>_54yMHyk#%Pwq7_>DlpOI4&`C}`Jt)O0sl9QFT#WxuDFZbxsUzf% zmO{&|<>OG;a^it|v{=Uk-8S)!%miKlV${*L_K18jF~2jg4}XpLL*^Xi3vaZ)s9!1_|_!mgGP3gDBjaf&KcRS z&{)|VV!s-RyPc-dB3kTHtJG?TDm#AXZrj7?+*P?`Pgw@u1Z$j#KN+))F74qEalN$ZAbrVr&M=-E`pH|L z(b!A+L25RhTaD+f`;9gI_?-?55N)E-bS`w)fPH=iGJ3J@7OJ3gsLjBXzuKrgt6)XO znC9uFfTy3@>w78GP2mBqV+}it+~0upzG-mLOd9H-?HIFZ2kkWZ@owOyVD9Jv>fA%= z2ds@|e8ba27xWW@{WmL8^rfT@A|JaF=W0B-c?X zT@Ma7QWNc=t+W?P`ySqI!P`FiKHZA{`{)k*c454SZlnEjmrS?Q5zLC(7n-W2XX!bN zQ-Sjf7ywN$-A&Ka3y>%u>%2%WLFy*B>5KF-o|JrO!S5@EQ!;h{LnYNhVmO1k$=H1+ zb`J~vQuhDrJeUfuaI79i`fWG;-g6)QzK8xGLta0@{%49OoSjC~4;A9h=+QZHvkkKY&OgvF0)MV>|ww;CfG9! zc&-U97zRAg1kWD^ywC(M9tQmXw$1-w0mB0`Vm+{jmkuPLs}M_sSV*Mn4$)WXA?l>VbQ3)c>__Ms#LqkQ7$?ya?4T!k3_Z;g=owx} z&vFet$D8RFd>%c|d*}u3qZj#AdWk=#msJ+Mq88FGRTaIeTIn@)F&$Hv({I#`^jjkm zCz!EgB|v$Sm}JcELTVinYmhm~NW5najkQcJ?%@(MhBEtk1tN}5t<3A;)4C|FpG)Pv zOx{-~q>NFL2Njp-Jt*l<5bn>Yk?*6v{S^t}LsX@Ypsat=Y4kCzr%#LxxQ(oSmbHP| zJ}U-EYg8&urc_R$ z37ksPV4OKTit^b-D|mEFjag|)sN~awrC1ka+{owfCO+4wIk!R8QdR#OzwDPGT|YO} zO9=O}S5&!WFOBQxW^1bTFs6KaD65~(g>U+0wvPk791=iyuMOB91CV$)LiI*i@XlMP z+9QvBe0~pK_%K&@bETz;b#wdplB)b8lxs*fCmI4*AOz+jnlkxHE2j7=6eC!Bw?xxk znl5Q=4;fjBG$Sirhe+`xb@P~nyNprp7HOOKWGHtQlzR%zWQ<+HHm4dg*^&*NG;jq753snqr*`MP5H(pb>!<8%2ozMX%_ zT_RxeRVcIYPxV&(vUi)_KJy3~CdudgBY41GTARr~>EoYO<{hCidG=&_Kivsi--kw| zmwOI-Ow;$m^ahGp|9;c@-8{347J4j>c$240?(gA4>QLA0b^e!kMv!!IQt;#cdF@@nqqUn%lH z#NT!En-(9y-^N=%zbjrpvzPxQk@V+vczJ3re%|cizsa*lN+EwFQDf}=6PYlgrswbg z{NGXdXM^DdM@g6E-t6YjZFKy7-lM3hi}bTIRkB4;oGd%YP8R8lQwGG(PO;?APBAu+ zfX#GSp}^Qs95nwCm1+y8oUy{?Kde%_mCF;|h0?lJn&BX6;vn~_G<2I1qA0aTX|y0t z@8Jg; zdWfG_Kj#Mbj86wwMb+c>+vM^n`tl>^;P1;KkQ z6g6Khkj#d?=~nVA#3;Ee1=dadaWny@$|V0PCfTJ#dy_>8iN_2jemx=aVk%2OJpbMy z#BU}fUXqBIJ{?N@ZbIUv3B}GDD)##ciI*iLP9IAAVM5|!RT59ETtmhFBq8x~wITs= z+EC)p5)!XWsO`l=h!rOwPL^wUi?|%v0?Wk8ryeDjr%#o3t5fA|fR%BsR};vgCem1y f9m6uyu9Iqw@w--?jxhstZxgEujK?sZLF)eiOt`~) literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..154ff066f88f34c5dd0d95e77d237046755678d4 GIT binary patch literal 2620 zcwUWGYgZFj6y29ZCkewVDn2Vgt3m=vt+iD^D+xi+1T2qGu$B(VFd3Xo;>-l0wY4w% zZom64D6SQ-u6DJbT&q8-tLM&4Aknb&1GzKjp2yz%o_mIW|NG-F0O#?WfF_2sie8Ro zHOVwfl9i8H#iC}$RwTnz62pSaM`>baE;^ zJTp!4HQs5dL@vIetfuO!b(QG#^kx{miDFI;;2=5$9HNL_1_=&O#9mBHqAB20tZo3=GkpmoxS5t+pQwArbqqKY&wsQ^4uEa`kG6 zID@lJImhtoaxciq%k_v5(IOzs(6Q?{CYgCsGk{+7iRed^VgHaTs<&snH^W2U648n_ zegvv6Pm~KwvN0nqaU8)^F)L{q$x!*bZ4AJJcX+A}%3$SHI{Kc}>oxD7L(<_xt+hAF z`U5+K0TJ)vQh=}yiMRp+-=5{IYLv5=c+WSAmAFqshajvO_S_Zk&|m# zxn!wDo%-;uyiTeRiP54_kSt5iIXRj!f>8m~^(}R6EaE!GD2^gtAlv|sYZ7pS;jnGC zT7v6futlB2p?_FDUJzeobm0F&w!4@&-rov4}-{LJhiXGkvvQEvZk)@hHt zLQ=?`d?5#Hh#EuAg_hPsw*ycx%YO$`gamvpq24*;VoR)4G-9k!;~a$hl!38F5+EU{e1Mf3C78j z@3n2>T)2YE8*^c{jlm7u$SJ<>rfjt-jFIIAB}mnzZKFayJ8c|SowV#I72^yZZ6X$a zibNCs#(28#IU?b0+??nSrYe|t41YMni#@~meE$|^(%if6Dds$wi~NJzlu{!pt^;-gj@@j=%=p&gO&=)6|C_WJ3mplj3lP<8AkaS zqtzi5r!xXsTFBOcS#%s6<>jT`ig$O%j zT_O0>=lFu8Xu%pD;!CR5iPQLsc0JS~SE@3RkHvx_h8;$!&5j{Eh0?)#A6 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/SFHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/SFHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..edfb1e1a91fea9a03499242e1655854d298a7ca2 GIT binary patch literal 11138 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

      Gm;hCiEK-@ye~?$*pV!+*cnMr(o04fWoG0h z;1H-wSV9^|19h6kBrR%!$wKV0jRPS8Y)AObbackj99p7Wh^zI(3x;ya)JB7g;QlNWh{xjp@Z)t!-WJU$Rk^j0UL(MY`d=J4Kd zZ}l1--5LuI4A?O*Jc2+p)>9qrxY_PZ?6W(n!|}fAM9j8Rg3Zw`TQDl4isFrz*WDC$ z`s)P#_#l;=^@8#%$miO^b>p4>gdOV+ciLvc=IWA0m8>32IFagAu~_&(qZ3b1v~X`C z+!3K^V>)6^SC8Emj`i3HE-21furVC(ZM9W=bf2B*jdnGM`&4Q1Y}Fo1IMM$2S|_fG zx&*RA;9J%iar&J^y&%85qFvxwLje3J!6Yvx3dR}bk#K)c%61ErQ7V|&WyhVE-L)#M zwlxt>491O;9it$aYGEA4bA6-JZ#NJ2b=a}Cl>J4G(avzBJsflN+Z`-i<{B~UO6VE1 zE86|YN125gDDq;KV8Sr}{g{a|wPLP?u^6Lo5|S zl@_WnU*JtaN2&2S(3&ue#x+>zWzu2ng)U;#_G-pD@wVPrbYChV{Ok62+5;wGz1YkQHd{E+>V}rgjGsYkwa|tl$}@{^ zY1Jx>Yb@I>Y{fQ(k_DhSmvy%_5p()`>U`Ld)@p_`d;75qyS;c9!+-H23wv-A9kXv8 z3`ew9%ZCRjmHr(Tyzp`VxE<-%0oy{i8Z^oLd2yUQ@k z%7^iSPx7{cE% zY;leHyz+)i)W`548lY6c9O?_-Vz(z!RVX-W;c*nH-Y1mppA?jq=TOa>XheC7`AU~H zzE4}QFh(tWLYE)2@USkw3rPznaFQM|8CU0=o`S_A317wVYV+drf=L$-uO4(FU3N?v zJ`CoHT!W2Us89UzldMbb>6NLU$*cSd{w!fA@3*0R$Y=3 zE@PnCd)<);o4YbF%7+Ioa=QQempG!+mau zUbgTL$`*y)MuivOzI;1oc1ay(-%2IkKU(-FB@16?v_C;+jQjC@{J@KU7RVi6|8jYfv9fNY^|?c9JwG}~1A-&ppJ8AU&HUqLu*P{hH)YyCfo0sy zsp217_9Wq{|6*;32($uv>OIVm*W^?X&XBWJ!1s(-K^%hpKC$GC41zG zb}wGL;%TaiN8wfc!on}LGx8)343KI57q5HqtDGJqXDEZ$^|r2lKGV}*^^hgsV z9mX{*QoCQTD69XJ?7DPlN$65!;lJ>6wdi%9l#oP>!hlaE(c3_6U|_H#;&cX7v{Zxg zl24`*m3Qlkw{>)eh5x`y`WCS84Zg`3nQ6%^nav{Mk(KU%RN#YZ5tNOqk6$lyj$pN^$i(9VKK*rJjy#YBQ&;Pe^=afjxV|31ZtZn6UTk z36z(s&OMptsiMLs*HD#SDpOoL7>OKUn|A3+P+)rHT1&2z8aAxy7BO2v6_-C3F2dL+ zOK5y`bzp5vpt+?jux@QbTcB-YLu+7tL*u$YRlrFEoOqxw+}X=3U7*MA*G}K=3RDHF z0-d3dK7GRLOWvM6KH)7z_~4DsH;dg{m)*@ct<*2R>Uy87=GAT1KrGzT7Y;aCkk-=k zSx$dvWU$K)Eb|Fb%%9&|@0E>$>1hmBA4u57^p?TIz@UqUUpAmjV|oM6Pif4y3tW&Z zr>Ie?*^(CRbA0S`3~HJfn=Kh9<8`{#k~Ue$ron{4T%-rIXW}l>Zpl{Nz`HNTLT!us zWV>2TN^rUZgph^2-|bjCXesmQ>c%UYuGgi`{rg+=Q1G`#2V>T~>Ly_5560;MOQh#8vmh z>luP4{~1hqnuB?m#@|9Cavi3d5%6mUu6CDip)opE5y5gJsl}*pJt#3gF?$e1sk_A?*W>xYV+fr>wV-hbrF^?i@FmnW zRUX6glUQ{a1)ifE-5|LC{EzdGX7-+8uxchIEyQ6nCgDb+*os;FuA~EMMYlk1R zY2OXpcM>sdL=!a$HI(w%!g&wBHW}Mu98nKu()}BQv}*e>CeH7oEgd=7%yexk7`_5qWX+#;WTc2axVth#)M_>N3A?T99si&|% zkNECtQU#S<-CU(Ua%EK#@7a1tWU9)Y!g~duI{&h6$N6l?YngUH55d2gW=9zIeug57 zMHoOmZp9kJ8H@yh7$g9DDS0dJk_UJpyv?{DOu6H_zY>cXl9hCKGlBUtY~wCF7|uhS z)ePiq$4!?H@=I4%(xN+)_>iY-`4Fb*$Fw9q%!FwURh`5~7@lcI59OVo_Q3g{R6}wdxD}D&TWN zD4oPjLzrKgPU7Yu!Trk`Pl+e*2qvkq24v0ns#Ewx9=2Axnf-DwbON8u!W=ZU{vrN; zm`2~lEcz&6zMC0*52|Ru5{|FJeOQlA7zeIRnUQf|gMm;TSZ;DYj~dEwzj0s&;rMGh z<>Bbzj4St~0j4W`nrZq>;sH8Tly*prLl35nel=@vD*MSZ)a=6pWTXeF^WWkD;57CjM4Y${P^3gX>LhoomohF06tCdD2c}i-Q&!b&k*>dyn25YHF$yz z_mc$qY3A(^GxnJr=XPf3W^;yaYN!^>T&`K~%1Rr}7k<$eYWQf2rV zQ_=d)*%SEeaolORIW_Xs34HE2o+6263;)h6cRxigdnU-APv%0nD2H%Q;&^k_8S*`K zoyMu{iswn3K7r?$wJ#)bM!`+P^*)x18TaBO9X~}%IL%^y7Ue9D<#+)b@n!Pz zSFsgm$b&DUn->)aFOev|iT#Z1dw6|3%&|xC?Hm{%bz$swGgv4;m#Y=V{mf-vb_|Sc z`P>|Nj_b6{*U*7)rixLKX(sih6Zl)T9?g_e&oO)_iSO1Fgi1YCB?Tw(JrajBrxW`- zS?A`G$iW+`AK#;6->0iTppmaIq0f=K{sl`pwi-V)hS#UI&m{L6&i|_^!liCB zn&h5N?LWl7(c};r_1{?l1)OImJM0K}mhW2J%|Xq89GHdhj{FIjbj7`MPnWe8{8D7I$emCJ4ITX{J@vhnRZY=XT<=s@y zy=W+A8D)M(pOj+Q-n#+%CBO90-dv^p!lZhj*5j!u7{ZcLkL${-wS}dH$ME0Nj$l?v z!D0AAN&HWKO~JH+BN!Db`b`qQ4XMEIlK8zYGR}M@>r6c%27bkjU#GdhX3z8+8u$jC zdXrB4j^TWZfWM7uyaV=uSS*6&l1CnW1DmA4IJz-qWX93Wbo3q5EN#Yla~MGXdJX+A zi_u)E&U?7a8W9u5>8OxA$u}L(E1B%vVFFCJLmH@J@i0gX+m>P} zG74qlzeMk#Z>bREX@5J6Oy=-i`=5J*p~A`&G9i?d;!v?%#VtY??krY{XNovI(fy+I zWOv1sq)ZEj^3ytaRLOMxxjMwvWfYiW1PY8mvCK0Xq~fFmHGsuZr8^c&wUP3uRMy2E zbP6=yD-$qUig_QiVe@A0Lrx@Nrp?(*oX`f$UxvGUzSA04%aV77hdN9+ync1yk*jHd|YgvZ#rU zEN1d)UZw)MG&hiSsX%fx70zZi+RJlU^!M)IiVFv+k;+%Ouc?TXa%7DrebDrJzvbsT z3Y?Y=+fPVCt>?6i*%_x)liP zh89dDd~pU>$lBCoRKla63e^m?QQg!QoxKe$y{c{)8bd?WN~%U&P3wG}ce?ByJ;Ts{ zLC-Uqf()KQDnr-*_%cYAV{@_$HKpVks`Sj1PWoAb>@6#uq@?-}Y2Bu7nz~0MBYP=> zq19Wc6f{A5OCkM9fEuj%}?38m{a?wt3?^;?-rDzj;WgAMk z&d^vUBBKL0_}yq%{{)xn+@>_VfACHofCK7%m!=5~>VxiZco2>im~3qu zk4Y_M>z0|3;5{KO5-UVJ=tZ9dKSR&ukQMY}fTqt>_rzohOhYxd1Ef+nw}WonXQ(T> zV;j3#(w6Z6!xDx{Lb(bBBX~&1NPF+72A>CS^mKL5mvG}T9gSi@aFQ^_aP2hUq@x>~ zTAH^USMUUMG^KsjaJ1MK$t;I{R)vgFJmY`*^HYTKabMhx5DoCa4$quc5XKB?;9F#F z(y1(0a>kV>Dw;(U%we9vZCkk@LzA~GF@^;Ni-^&YEIlC%%VpYLdSc3+3O@YH3SMA^ zHc^bCVbZ93eQ}v4=cR%;T8@V_>=?!;Uhqo6Ixnb78dip;L|(BRx*l@(NXwa9X@ECI zHwmi*|G4N&HzBPhTD>K^ir#Xszpt~|bqMzXttudMAH9KLcxZ&K2uox_!Bv4IqXxBv z!>u~hi)FGin+Vc=I1kT|- zN9b7hAENWyDX0kn)s;&sKzYd1E#e;B!fmQxxP!a&?g8HuhI<13E7`nq*8d&8hCmjB zUr;OTM`VA7>!9}tqwC!B1HnT~G)!hOm8JYFq6>Y$DWNZmB|kk@>9D+X8>-+sl(NBh!ajC)Io{B{iy-~}Q=lr63PCkg5y7p1J zx-#}~CePRG`d%L#*hj|{>@D^KI$Usju)l_hyRhQJewZez6GZhu9p&(OP)E|g%!|Aa z>KF%|$n61>2!icjHM=C$k;>R)qjbz1kEly5F3bEq7c>5 zCknpq`CW^8@*2#xdoVqavTRXVrlVg}yltJM3MTV5$i&F&Zh;7rmr#(QD7v|3im^5G0j^Wq%Fx*}!9rC-S+>1H-nO-f3AG`w2J`M7`p?Nlyv z8mj6_6HZEYp&cyPIf$zNV> z&X|d~VR`XA_EZDA;4-Y0k<{YF)tv1SadM50by!a-En_$ljTudegoYzabVi9@DTU`U z{7}cWxQ=+FJ(DEqpi+Id%ThjAmgELT8wiT2)l9l-R}E8k-zL4n_)R))78a$kx>;tj z_G2ACk+tz$YcYq6WLgd$FK%UG7N`?$PC!P(Z8~m1i|n{V$7bBAVGr(TO&Hu__oxi- z#q90Izs&EgIy~@-t!+BaLx)J)b+n_yi+flmfyO{kPEzqXH2ZWA*96h&jW|h>VHTK8&q0|baCsjCuL#2(DIGKgQ>3BrPqcWV`#;KfNX~FQg zj{9)G7f;f|nG!;?7taug40(>_m=W;emwb1+%){mV3!|3JHXIjA4GpD|Z3M@L(+0U= zrDfVi{um0Dj%#;e{Z_~C@FJ~px2j#VUp14rE0DO za@qU3^w}G79+YY=q2VnZKf}+xc$?&?6N#|jB{CB4TAl;tGIMAhq=79P8=VH~azv1w zql{5^&(Z`)vOi*rPc@UVL?&(o=Jdw~BdTU*3^WS+AIljwK@QTt>-YqpvfS-d{;F12 zR}63TG%c~_f$qb<@E;HUJ$f5a7Z+uRm#hEcf223f9+GiW$|&O;VNSS(C@6Q})<8=H6&l7QM z^e*aJW?E@mVl|AUoHwbA6*K0Ua+$0A;x%c8m?v$_5AV<}_3wuKv2E2iuV?C;*D#=B zPq{g&ColHE1n#SlyEnh(Z=zqzV&ZyuoSWcuY{ld|xmbo8e!7*)A=pc;fKR+E=C}9J zxvcFI3~fhk(6tTw26te;CEGD|8x9CM?#J|Ps2{U6Nd_~2bQAaoZF$>NB`W9EJ8Wh?Q{D>6C0U~)WW)1jC= z8jX3ATk|Hnr&M^(nlpul_q`tTr`#g?M=7{~Q-uSDkz1P{^nWdjrcIa<^tUR(AM_uq zgz})jjY4n=sTd1vrlbH1i2LgdqJ!ZqWBAqDG$s#QkDJGI3(tt>VA`OX@63G(D z7HQ??EttF>em<|d3FCI)3}*GL2mEJmE}&Y#-!oDJ9>hp}91~%n3d>j@{iJIE2f#!f z2ARL*M4KRWL!>{+hEFj;!$fc@d9b-FQ-pS)fOY`q60xM~yaL*DnG7lTBSKkxyCduj zXYn0pJc~;@q$I*p4?A$#68{z3ab?(lmH&z?zMsVp{MYj%i;ZK!`&Cv?XG+ds;Ab;{ zb5sz4ocTf!N92QW5dwb>aJR;z^~QWSZ&6$9EOi{sfPPd_zJYa_#ipYjjhmnc{kLTC z)71{GcJGZNpK$&5_MmecwkTEK222PBDc(gLQI;OcQr`PIRH{O{TOL-Ija)nO=~yW> zE5GOS=>qohg?ze*ZFDh7zX(%t2?<}r#<`S{UQXS$ESRf#3%G_QwVv1DYj6s$GJ-Rh zi@ShxX&z@8OYdG5Ss59ch#i!q#d&1r5fAW5c2+5bA^*-S9vnqD7G;jzjb!acM!6A{ zxT(l%Rl#c&V|_^VSQQ>tUdxKS@`TEH)eh!9869iH>wdN2og3k%z?|3D&J5Si%;Fd8 zWo3edBC9($j=ZeCo$*XYCCm@7K!PaM9bRi6<1U zcGBciMa$2sOKPkjDtn2r==A_kG ziVqiUPs5-2Bm?pTV$N00B5I4>wXB9M>o7j#|Bz9#?fxnQLm+4Iw+Hc$j_}?1r?b&9 z%juZq+JyFSwQFXByTom5<)b{(oim6}(qsxomjI%hda zk$b!5TkX=ST~abztDWn3N`%BA8O&AT7*{7_GC!YVq|ft!c!53eBCF>mB6=AI;uX~M zE*RmcKOC=f?7o5H@g}?ZEgltblfQR3Xy4_KeUHQSeGb!CInO@8YJA9B;77O;9~bev vw!rV&Jih_hnyxD9K>j9`TY`iBmTP-Za#FWj^`ncvk5PFbzuE+eT&wsTvmvZ4 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniStubPrinter.class new file mode 100644 index 0000000000000000000000000000000000000000..c3cf12dda49f933cd0ab83648deb30764edc63c5 GIT binary patch literal 3940 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 RkLU&W@c~H;AG$C7=pQLvBgy~( literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..938789b9556353cf4686392eacc2581a208a024c GIT binary patch literal 2997 zcwUWG`F9gl6#ibDHj^+w2sM!z}=Xef(je74)0tYBaax!z@d-vXV-}l{nU;g~(>J0#M@w**G z0yCq@j4zT<(&+)ki1`d%Po#ZuWl)LvRwuPqH8G&3?63*Ac+!_pl2KnU99JWTKBWBZoeK;5}is)<8gk{X2i6# zz%2h`gi#3+uH^beohJ8x9-xu0Bpw^cA@1CZ^NNLF^ zId(Shh^PaGrYF;OxCO?VI-2fl3*K3AU>qjcF!v6e~nx zN{SU`%XpdobkBd>lR;u^A z9?S)Xt6xSEI)$rl%P5KTeTOXIvQfgeynQtnsud^1x9r*Ua{k4qW$qKWW0)fR2*75 z6ieybtwu<>O+dU(WfeCHvl8Cm$u}uVEX@cKW?pNO%$sMvbEFGDk9NV@MJYo z_i*j7WUB?tqnhkJAP`sm}Ge){aBeNFPkqzCNzHgK%&L9hPwfN69(&w|a`+ z=4~r)l<=8AQO{gfJI*C>LZIrgcD3A7a(}@N=1Dls@A(qW5HLOL?<@BAwLqD-@e$_V zvRRFUa}-exeVq6n7wpIijJa#mmNe8T(|r*?5Z#8}s_rP%+;}?2a1EgYmt^F)NtGtl zWYmc9)R2rT?81@GgbTTT5MkOoX;N64Qqvh`dD6oorqgNki_ou;QX;1A;44DUq#|mI z#-xq9bIVq<3(TOtR}B6XlSDTSqwE?2-4#_sSTlrmm$AXU zDTmEDC|S44w$b(~cRYv05y(~U0TK?A*HpI3Z4@Rm`N{3s3i7@)FeitXc>G${y+3;g znRhYM{KsX-JQ~lZ^Dp2#6lHXYPQxP1!eV%_gn(U28nq-XqwjJwq7E%sK^N9atU*1x z(149-qUPO#7*?Slt=LW1;73@EL)6!glGbUg#W}1)mU89_Lb!?b_=7BOVFUg`H~uCM z%upTiMcCs_yk$~+8*gJ0aT7x|-XW=oyqDtu#a>K)m*YLWPjk13&kyh+|Hq?UKeiG= zbP*@xXAdN7q2q>W z6v1Tl5{W87(nkbFiJ}tw966vj9&=aW0WAjk{*}JO*5+B{sWlY`d$D4 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class new file mode 100644 index 0000000000000000000000000000000000000000..5124ee9cbab434945b12681da057cacbd50142c4 GIT binary patch literal 4343 zcwU`WYjjjs75+{#$(;mt-w$`e}*Drtg%ResbckZ1eB$?2xX06OU zXPD{Jmy26iaBCOiHu*LRK=F$b|Z}L9H*e+cY9(ERl`t zEosBF^t1w(z|{+1$g>HQZZk~7su9>!8C{sYQ8UbNRIWotGE{FQ^l)cqRl9(zHW}AF zC`Orz5|j!oiyEfhlpW~S(`{OJLKpBxlQAvPuB8pR&l6o%pOFy=UP9+QpTYuV)2sr% zx3X72NoFl+tiaOQ#tW1fnOz3`7oA-9B-1f6Eg4E1mR@h@i8yWBcd3BXO6vZ!mP*mC zOFLm(-)g0GZ6I9LUWO~NM!{-<4U3bm;wrp@dFsiVwcPO}YZ-}9)W}%jC3q)%3f9rd z*(WNl#(DuaeM)OqlFqKGth(rSBu}S=cVUBqcQaS>PgT4Jl}wna4_g8&rX(aZvp3Y- z-LJ>2u!3r)Bbn|EC2hix-W}3110njXhwN}R5hZ1)LO?|j8|jS}i|HA9BO)HW7w=PW zjlh~2!D+oGK|!I$WZa4O2@kz4pw`O8R-=j@=~qcglH~n96^5iJ zHYH)YagbJ2P&|8@&y4|kYAZ_0tEo95nTjGqBKu0z4c1FhG%7C)O36b4#g$dd?84$nr^M1x6}RA+fG3kB66{7mmloTJ=*>arN-rtm)jk+MJiz1j|`*|0#{Z}_u|>D(T%$VHixQxyPADX z&27HAU6D3lTSKJPS09Pi`GP*f@);T5fEMeM`RLV6X_OxKRfjzI4Ehw@BXD^E+46MI zjT0=43d4C)eB1g>V`CrRy_E&6VHNl4)7Iutav!-(#aHn)_UGBD5!h3p(Jb1? zg6VMM8??Q`=&_qiSC<>#q8al0q@?Ftg4~}XRLJMB#ZrlEM*h3;UGlNA^|a|*U%TFo z@3E?mxG};0Si$aS^vG&It>TP)-IW2`S%&EQ9NQKsEGHn&Q+gHw`S|@%#WVSb(FvLx zKce2Q**w zN}@oZU@tE$A}k^NOW7lTC2&>cLR_-qU*JsVqq(&^qEWlG{zhJVNnlH%YjeU7F8m<9 z%t(hNUVg7)C04odDhWs3cuhccLhoafk-2-F?X0WI?jJGyS;b#uk1mNNk{NnjGVDC( zrA}`6bT7gp2ER3#zu^Xky9L!jEkbfm`$-$X>g}WQMF5%Zx?GLP7>6(E1 z6n91NNE*N3TvLWHmT+~g!wD6a*^)f6c~FjAEl0V{?SU7U+nPLB!Ig_thQ!e(CV3*Y zUMQ{^!%O~gTyYv}1-81zkX!9KjS4|@Rc$RdJ^nnQ2E+dsAL4tNvx zTFT48oKi6YHQ>F8Cu3MKrE3Ib0dGcf=a6;PNRx*JM&GQb>YJnf^KXXMjzE!zGf^DG zTK-QT)pZ8I9M1rbtrqY2kz4}UE*^SN%p$GQ77_Tp}|;(oN@ zQS8G>wBt$aXBi)0usZN8I`JHDzd-q~;s(6VS>_FN*%@naqCK6l3zT@w&e#Qf0=Lqp zB0}(!cE*-d+NW@w8C!=jYQ2rtTGY)!lW1|_cHEK2%pUt5Q118MnZw=w9Pagd@8fF5 zX)iB;5HCfXd!532Y=c%g7pDy>ry2KCtP7vT19|aLDwY6RdKR&c>Tx{i4@}_Ur>13> z+72AF<@p@WX?aUA${-1QC0#Az`Z0Wt-_Mig;_h*&qo|ncQUX$;@n0N;>r@^)jny+i zvQhM92R&pv`3z!B!Smz|GQUCZ*9n7QK>m2YNkj#`-=0ITxt_9*zGMH6+rPQ|8I?>< zqkrc#`p-J(|G^}lwvk;K^q!M4CGp3TcrJ%u1iim@C{*@h(ED2ooJQgqDZ1JpoWSp< zl)o}dZP5FN89V>z5dSojxRacTffR#u6F62faT$b&gH6b?{s)QFA=F@)csoSQ9wttY z5SKR-gGY(GTbS-+=x69tOza>LcG$+$aiZroCir%S{|-EXJNc~Mg>mBg3@4>?xQB1V zalD8Vc$q+W4G$8*58aP1pa3G{rCR^&Oetm literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniPrintStream.class new file mode 100644 index 0000000000000000000000000000000000000000..db0d66684382482aee614784daa5b486fe90c522 GIT binary patch literal 3119 zcwUWG`BxKH6#gD0Cd5H8vWRrSx+Mb`w^9}B!lDL4u%NN7ID`QP!%Un^P}|ztY8SiL z+C^L2+S1bg*mD%Mp5yW7{wMtl`djVyCSjAHat_0L_rCkxd%t_{d;I<1U-tp5!yi5r z34{jBY$Tb|GMTjI3`QKwN@XHL+K4t7X*Z31wqZKmj;(9MK6nHcOHIVEBGVKCC6o37 zwXwMYJ2b;=5-1(kok6QFt_|xQTAH9S7d7h`smLBJGe{v%&D(02hO1xxTESA(2$UtQVZ!R2Bf6ckw7!f$-QyCS74pKEVe0Yh zaIbFf*LqXBKrm({wNyg04Y|(?J<69P+6D(0q;o(!`6A)a7(Zf zt9@7{uIT zqj@&e?}t%8ksk>r{B88T5mfsoS7fkM^K~!LV(lQ-RN@lNqmTeiD zolW?#Jik{#3>|EM0i9{DDs-+85uFnQ;fkZCqYvnI0CBvcpbOnH1Jg-psjTkKMpUW} z$XQ9`GD=9_uPQi%!#t3d&9|w5@284Jmi4HDV>r(K8Pqayw}SLaXkoCHg?fRd$+eom z^4JqgDko$_OHE!})3cW2k(R?GP!lQuwf}5dcgHu-b|$H(9m6s+J{Z$()@bLXCV-RR zy-QEaA3ME!^pra^CM+h++Qr?bh&}n@oGZXW?IdtYfe!nT2FmN*ThyVkz>>LO-LgKJ z-a_DhoF=pFRP^}49u_^4oYxh+fpfBYJS=a!RfQs(E%M_nfuf!sIZ1CTc*mWjK0T8R z;3D4h;a%Q1j~Xd>A0Kd($fgrD`}8xN{kiUqN}~@Ie1wnr6lSu$8TY)rc%spQ&OhZF zSQ~1ON88MiT2(hkem`!I|M0}KpX;?!EB}tQ zSXtTp0ZCJ5e}6_^Bwi=yxq417H0ZXnc2eJE$TBXT`6R88@nRVxDCU1IMf~Ms3i-q5 zm0u4vC6E!$=Ptuj9{#OS>u*C*?_uGg+gNl9f&Z}Cj*?;(Du+B1%Qo)fpR ze;fx7j-hJ0(vug{%MpQV53fw6xW)~tmHf1!6uVKyH(?o~Sb=t|=Y8Ld4)kCjd28b| zb-Af;%q1|H`Z+gER*9#2aDvEHI0_BDOud;FN%Xl@V0%zEkgv(0>$%OP2Pjn;aAn;c z42>f_6<)wqCZOP;>$);`c+zz#T{;Al;MqsPMS^SD3ZrUpgs^J8`~=U)FWGOtgV*Ge zMAc2Q8gGz1j$)-6e3MEl&X9`w{r!Jjj3Olf literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniStubPrinter.class new file mode 100644 index 0000000000000000000000000000000000000000..9f82c33ee84f6d5bfc32fe597afcc6bc8e260a5c GIT binary patch literal 3407 zcwU`W`EwIT7XBJ!OI9W(m_Q&9wt-!cY|F|Wf{6(b2nHX39TS|8WGuC;aYi#@rsX4n zT$?-D%`WT(d$8;#kZY@!6eY+}TjZy$+COS{zaA+D8v(9JRWseMzkcua_l}l%sA`#+1-w-x<^OTBLcCVeqJT97%di>&@8Z|&+*hir8K63 zVSCI~0&RVM&UQ!az%lc>Fs6%6DA0Zrn{yA;EzmNH6OgxZRv_+IwDDA+b*|?EO-}fP z!^4YFjthQ}BWUSV;Api!P?WUTpB9nl%tDsQzm2p!cEdIYlp7;UQWr9AE*R=D$q}bbI;HK+NR@YV7;#awNlMAi8zWNxKwX!V?OB1vj2BPPka1?w zxYE~1YVkRoniJW6 z4`eUAqJEs`tiQztpJjCSjcH(lzi2k`Gz--$kc@I|XKi1{f;Sq6lDnpJDoU3yj?LF( zbnoEoN)lVJH4YluxG>EY9s^s{lA;|BL>1E?PSl*0*35ZYDjF-vPqs<5AW@JV*PPcj@eTNUlN**+)K-M8T= zn7zCpTIa4<(5R3VcDBIQJ^?F!U?sxz*5%YNg_$^}nTpr1T6hUBn_N}XdOol9SjTak z*S8;xXZ=VprN**$Sjv(Hm8~WJ059Ga9K)*?Uc>7q+PR!E^(uOk_&MH+<4rb(tC|B< zaH%QV@8_L@V^aKWykpK%FDW{d>NVAL4DVTZKdPp@3Yk$K;+Jv!f@i(npW&IZvhWdp zC2%{#e^BX4;29zNVZ)?rtRf2R2@|-J0;^LuLZwFx?zaZ_JAuuOaPtW2ZhTYzfh@h8 zz-fUsQl{FKH<`}#?6$S-?g|24X(>uN<@yBv#0DlkUthhoRepWCJAuDY!*LVkzgjqJ zdQ;r=CI-}a_;(8*n-p!zxqe70nx<=Q=@wr*b1yvMFgF_ImT61%_P1dH46s0k{0cvD zYTrW3=6+Un83S0yGF}Yxi}BCzIL_moy})r3-^uol&U==}E+KJ&vqeZ68Q;L8Fg0}> zM-SGJuyA{%DQT`l>M^4`urxv^(S~J_r6lg;$XHvB6?JPzh%u;D9c_12&GRSGb6xb@ zz~@!tDCu_)AeXY2c-{T@0-H!*jL-6nq@%=CifdY>h8{$2Vn<@Feql!mQ zBX*(VBDP(|&i?jq(R;Wy*>?#C+J>rls*1ye9l3(^K<3}XW~#6=ZTTt+8G|(MHm8ag zIdQ*6Szt@-Jf2w<`x=u1S8!}g)2gP6c;zzQIF07>*dFaSqIWOjgDQSqpLbUAo0{t1 zQ(30%lu=w4xBW2^{h3dr_l&^l|D7fHZ&zs#uqGmpw-^!_U|a{0#eR}-fD|0WW(+YX z!`O|dh&p7hA&l~0;B9gg&$4?S!8D%3o4hgJWp;f88z(V_Q^?^A@;C>DFNyw&`@Un9 zUx5>apr=OUYzV%Oh-c@<1$@G=FQOMG80K>f)gesaJU%7)1^VzAK4+)}zKG87<^KVQ C{GikT literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Keywords.class new file mode 100644 index 0000000000000000000000000000000000000000..7b6b063d7db547db898800114b7af6906e2ab45a GIT binary patch literal 2625 zcwUW`S9lav6vzLUgzRKlBpjM1SipcufGiy(5ksO#AcC@rt_>!;lih*I%sM-hVn?y} zUa%Lii=aV8QS80<{;WRvOJwIEFp;Vzl&m|qx%_Uc~ueCCP!q7;oFzVE{ zf0U`fx7}QWg0XJEod*5-FtDBE60?|3S%Efa%s94d2MZNSYHC+0l(u+TD~93!TC6{w zff2Ma-K>F;3S|^lTW1;=r6-G>2FB3a3h;mpHw zbaD+^azk$O2rgjt6dXHa)8a__bL9Dy7e#Vl`L2N$X4qjyu19Op@l0AA!&-IdQnb>v z!?!J6p=Au6^K{*gWm0yBffdx+E)Ry@$J51j>6@aNvCfW^ewd+ru9my)s8P;m9)ZQ4h!S4U5(Rmiy>b!P z3-Z3lLR_pTeccR~vLu1uYv6M3GUzQ>>jkC+f}$J*!d1Y$6>^2r3A z!WR93X0r-oYTEX^KpJXKQ5ez2PFo&!wp;!Qx~UYT&C8h1D$}?1cwkbo0aR-oC3r-k zy6wO3EPgZboE5b6^eksR6(-m0eMi;qJrzd+FC?%7FLGCo<>rEXbUU?b#m)p?#w%3l z5-#EeSX$Fs+oCnECh!_wXUi7D_F@!CVQfun>poZ5gf|m-OP40PEKJ+w4f~G5xIJx~ zL)*z(zFy$H1m4F7`ixB{v{rQNv7y0&?rXWX@sU2JkM}r(!5XYG@F{Cstqng<;0t`I z@7DtRkf%27e^qTD&uFc$6Zi(->Q?qr1BDn}vyZ%3JU2QR*_SS!@dpc?hO&{aQX{bUyW+I8Dn2yuU(zo&YIMfRF$sj z!>&HOaXZHCz}xA%=kV@!d?=sv;j=z`wWV&$-zy8h4`2mLbUdbFC7O_mvKZUH628Ot R{EeX@+Kf*AhsgKGzW{@xh^PPn literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ef2f2cff33eb60a5d730342d0b5450db43c1c790 GIT binary patch literal 1002 zcwU85T~8B16g|_{Zd;bNw1D4$ShXM6ZT&z^)fdocQt+V$6JE@8J86e3yJUAt;!p7p z_+V;`iD2S`KfoVlyfZXfl)%H>y>sWxx#!-w`}5cL9{`$oWFf||)c1#u>+vYs<7(ij zAn+n*hwt-&v%#fbYFbDz8UCMpBxx%31rB|?Uz8px>BAm;Yz z)GdaoeeRV)5e+>RF%;W|Z>Xf_yx`HGBNSnhkEJiwQ-;;@S%fFtuWT_S)`Ff$gCS?b zLP~oxHqyvs5J%C*6lNLXWev@>r7t#zyIm2!=3P%vjqSkY-WCs~-j9O`T_eNt8G=ep zt)IKD*i)3V+@9=LtFoQJ6)ae|%3x2P*jU68HAhD4GNfJy;X9*`@XIJ!xX!R}dSV+l zaFby=a=AajQTj*0iT%=|$~G#fGFW|~Hu)}9JX@}`|IR>1h0^c0Qdpt->PANfbu=tE z$7baSXVb9VVMqzT7rl{cz%W<-pRBS?5M7OL5@wG}Wyo}bVd&~HqtmpmvaS)-yO+K% z!Zj^I(4*v@`K}j4M7bfR=_XB0!7;TvF$U)#1J$l1x+wK_%>{Z?U-ez+1(QTStb$_ zAN&FSDC3=hkf@dVu)BBeoO|y%=kAZ6-@XIrq3vUau$Jm^oMfUXMxq?Xr7>9%e-Ni) z81D(Co4u|N?;o&KmS$AOZ$_munlM)mRnhDc8vU!AZZr0o(yDw;c-5K)?%O!dgihmw zGFLjCkZB(hyd5);0SF5bW-%9{f@=|cTqkU`{F4W{*vtuwr`8szsi%g7CnMIrmaoCjyIoYRd@GYprFz zV_Qmgr@E_?%oI#|PnJV7h_HngS1_@+R$xxpY_%s^c)|S~wv8@twZcCw)oOON9L@0K zW1jN?NBey1@i*!`Iz!lb{NyX5&kj}Pcj(Y8g(|3V)Ns8b+&~?0(M>EmOoSzlDvVvm zEzaELoX4j-ZpsVJSX9vYg3vp|y+1|}6QX%HV)-0+IU>LsH?|_yUCjoXu8Mti_jPQ# IQ7d@(3+lq(#{d8T literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..a4a19b45b9d7b57577142bfe01eb72ad170adf09 GIT binary patch literal 1106 zcwUWDTW=CU6#k}QDX;}Zi&EOUtyF4uLPo>eB1TWx)D zJTCjrZs@zR-@J%a_ZZ?W)e}iDq%B;-bP6%dT1X(nP^tWPlx*9TVka7Qg#U_nJi(A} zt1kEUxbN!w2^iPKGOSEcU*4o*(`7D|91m3#PesDha{F@Cvb;h>FQ!EETh1XR8csJ!Y8gjgS*tQde7#bFL-Zk z2SUgcN?6r>FY3VeEmX8qnw*}xp4j0-F@qW{iIU!!4q>aeHib~WU03#ykL`}IBU5Xv z=lWFHu8RDw(9V=w>sZ&47_8?~3csc03K~UrOLjdKP(!vwI8Z%{R-8JQq@rKy=258C zO7+rto%H3H*2D(wP>g;NmdoiyB5R7i1ZD_NlJy30!huX}?GsY9g?cf50PCaSW$8>A zJ|oT{a%9zrPi$OA9x&Do+%%jF=1?%XGPp%noV;$MNN@9m>08NU91}Qf_Cu-glazx_3Qu1#!n(s83A5`p5BeHOu;7nu#YlP`W WJTNipSU0870-N_d93ycF8-D@iO%8AX literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..68e8f8364051ae8715563fdfa4a36b434a9effe1 GIT binary patch literal 1111 zcwUWDT~8B16g>l#ez3H)3R()dV9`=6+sb2&FBPLn0TT>~z76fruG!8s`(f?_d(ORgzyA6789)u2aZE7S9T_<-j|V}Yhg~OB$_tz~ z{4MV~+uW5!V#OGiN3l90RQ=G|?T44uLPo|VRt8%=$1 zJT5!VUg*2BQ@@O??K8w0sx6XWn6_{YQz=Yh#zGuvhEnOjvt*jC6gyGxK=?2DfhQPp zP1WMwKKEUHJ_TdiEW^qe^~FsxJ6+^b$w5y=0dKKBFBW|%FF zmYv#q*AiwBK^zMV<*@@hzmUWd>^SZ)EM0BJ!ZPManTo=vt|xYQPb6@cT2@gu_k6+I z13M5xrcl7D?tEUSzHgzVuO;bPKMJ3?egb7$5+%I>y@ag}?MmBLzD;R*d|)34J2GAq zho@D@-kys5me6G>lNPg~bun1ar4)WcYZf$*%$96P7HN|H6PC^DZK7y`o;VVOCnMq6yY=inHLOQ`+@RH+cX literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..ef7248bf94b2036fd7e3321a91a6fb685a2cc349 GIT binary patch literal 994 zcwUWCZEMp|7(I85i^*bJtDBp;xy?-5Oid^IA`?N%1ff%5GSF{#$+eB7_m<>V^k)ga zfFJw;e)WU?8u7WeV=yi28j_s*c!)+H1!`dWPPiQsN@$;e1lw_FI{j3bzl(Ktz&K=@D%w(n?F}!L{BX)H)TnHmbpO>oLD@QSx=(Hnc~Od#VSd6` zre%NkeIo3dN*C7{qN(dV7Wi1k4Hqj6E2j?OQG)@O>66SF@y5RVeKjf) zF^+jganFbuf~Qi7qGJ*ZGOV^MlU$Y5`kv5zl?J$tCMl@B7iP?YVWZia=<3k~W7-bd zwE7DD)mgo6_D^VrZWre%?h$$ohvGmr+WZVZx^s8Q`HJA9<<;ovTRtPsPt*xT#3wc` zq5)WR370LWig`j6ixvnuq`HDd`nE(dbGm9PKBkD_d(kKOn_qDK-(tV0x!<#pp7>1~zP|W!(A;>Y4Z5 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..0bcc04437b135a2e55ca9d0439bb471bf122e874 GIT binary patch literal 1056 zcwUWDT~8B16g@*%N|&Xr6)Myg3l?n`>J}3o48|A4#H6SRh6EEIhV9s{S!SBut+7AL z1Vf^UzWLx!@X3$=VZ1XC46&hPvzs$_&OP_sJG0;ZeEbYx9nCZ*7^+=4@cfX+ai1qW zFHtIty*K+L2{AiI}}H1-&*E!7bjFibnRf=L@G%s5CR%W%Jb8IjSlxppAM)4}0^ zh+go6P%sqQ%ID!8j{?0u4O)5}49jEst8LIYrfXa(IXqN@xTWR(t9y>Jer|P-rrGCF zEIJHxBihoI?d^BIFvk?9af87fdz@zp8B}mHjYWpViyLuJ#Vmuv!|+iM2|rQMa0<%| z#U_QSJd6bI46AWp_`&NybZnGR)5kH-km6C7T<)qtA$>l;F7g5ETy zD4rqo5*EdQth@RFw!79`u#VxpH@qBuZNq28`Hnmxm-xiSRTKb&u3^@2vX~>3GN?$% zqO9wfr@aM==~c;8d_^41uee9Bk5K-KnNKL~7nY83>x+(&k@7zS1yk?`8Tm<~zfi_+ gW2AT@a%QB0724O$-Zr^+P&f7&Juo^AW1|B1FFtw)l>h($ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class new file mode 100644 index 0000000000000000000000000000000000000000..9b90b1e6838d96a6f87567931f480b107f417515 GIT binary patch literal 926 zcwUWCO>fgc5PjRYHFgb211(>rq{XF4_;7mZr3eXC1tFycsi+5T8)xNgYZFbpQ1I1F}i88S|nPLx#l(vaQH)_kAkd z&`Te;7`juJb6yZ&87n^SFsxiGJ;GhI7-maT4ag~bOQv~|k%RC+S4AqGOFM|bVjtTw zhUleIqS&#Nf=cSUD$R9CqW6Ru>0yKow5fuGy|xAmhV^!5;snpMpTf4$qovm9mt~EH z-7G~j^!T_$`GBH*y7lNAbswA{>^^+-8PP|Fs?$4kXtILuXi(I0ToD$~1YC3#*BmCo zB1JXAF5x<5Zcxsn(@odq8D%Ug=zc=zo#6K0Eq;)opRUEyDe$~SfK?*4Ce~cdJ;bhx O=IZX7Sa+?KasM}`1L8CQ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class new file mode 100644 index 0000000000000000000000000000000000000000..8d0e8b0bf47f886e22a3ef4949b464851acf6402 GIT binary patch literal 1004 zcwUWCT~8B16g@*LOP9sgDqw};f{V0;y5)%nj4uR@NkI|}i6%Zww`03xJJalLjr}S9 z3=;^6Ci?Dg@xhOGRSd;+kEx`hb_w<8CB5b-4G^R(-y zN=1o(%-`^?zsE!AZCS`NERRBUM5_9!|E!;eN-|8Q-7xVQMA^KWbDOXaLm8%z7@kzd zftxz^BQ87sVH$_BGa^$xV#w~Ow#b2D+QBtU+Q?wWfraY~YnA^c$u~nO_6NO|h@bOT zBp8ZK74YbY$D#heNM`k_3@c-_dt0>Xw8y2A!=4%>4NdpY+`k~3*-7@Vh4ig-th5M*b5 zR|b(vXw5y5c2(QKIyR_-Ryoj?#0;yI>PXKowmpY!qe0goLzkQt3i>WkG(nGrDaz+4 z+NWxkzD{lZ6n1T+eg@~gLFMUf8#JTNuP9LD8ZHMnPy|eL6SoY;!7N1?!p>oyGPfz0 zrN5Gy@`@@NRj!@DKEc8}%zQ-YMREBI_de@f<`fHm#ukmFZ#4cpk^Z2Q`f0|`os(RS bFJqPJdcpgqcMTOIn$F48i>MkIi>Unu^Jex_ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class new file mode 100644 index 0000000000000000000000000000000000000000..ba3351cf0816496c17e7ef6454fbf3d1735887e5 GIT binary patch literal 924 zcwUWCO>fgc5Pj2_8oP#sK+9JtX>n;1KAhev6(OOjAf&WKD(ZpT)>%1=+}+4_5d178 zDkKj40R9gLI3Q-XRV5&5IM{wW`{vD?8GrlrTlx%rNRzow0u!c5gu&r0Ny@IgX?o6EDsq+)sCVITm8vn4=XxP0n zn&HRCMUDrIcKO!hZ`6HojIjIg(Pu;-9jngo(6Na#zoWsZ<+LJPK@)K3Dy}(Bgn33a z<}TnmM{aP;`}SVsH9GS!MOT@KPB?673_X3Z_ezD`wIz9GDCP6BsL9A!c! z(LtG~DjAb$9TA*u-IpE+vjJ{l+D8Sq1GuoP$^20CGD)a+bu6+Y zk*DT-nRHC6gp~>2!%c2=HWW&$&!>7+bd20Tb+17-cs4_k7qU;78)Ms;^mjhR(hj|F z@rcl#xST73hea&8ctTjZ*?NGdXb{{pnfG+TEz>c#E%JnW@DKDTkLA16jKVYMSB6Lk zJ}4#gZ6hjqJk=c)XS!h9yRsbUet>l}nZedRnig}yYO^(VhL`RyU|Z<$S}Xk1Qmtlo z%h43yE@n9IakR%@9exMx=jZU-FJ68_@WrC4{PZoFnE4Aejv7`gz+Kb<8{NZwiwQ8t zQH8Pdc)*zj&N+N~Xsf*Cj6r$rukf97JpQW$0W(Cl#QX*Ds)UDS7B)?+Sk5zqmPLld MR~@Ui)FRgY0LSLxNB{r; literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..c20b0af67c8908c3dfd04e789681cb8be3f2f36f GIT binary patch literal 10324 zcwVhqd3;pW_5U6+$$ObR2uuidsLHTONC-hh!~t=METJJ$5NMz-L*^w6OlION0$TT_ zYHh1+wSp_unzq!sR3~bz(oI_J^6P3>yINb@+RfV4((ifiO=glz2!H(ez})-pa<+TU z_ndn_yzt+rp9OHDyk%gV;P~!Dwy857NvC@wnQcv(WHO#^+8((ivaM-tB$hDX6HL_a zrg$XL-PFEyyWN=)R1R(tG_;OR;~WmO_hw?r#Hv&>+q;xIli5sfHgk3?B?z<@D6h|? zVu@}psN#Z^vAEq9>9GYB@nj@wb8XOFo3JxY8`iZpE4Nl>id(EmJWhg?EScIZFfOrE zTa#(-md%3lbSAqsEhy_u#Q4>fOm%X`bmUzd=@rztl(U&wylHhLy^VvUX=LnO8E3v? zSu7FDEGLD!xf=z(=490NqYOa{wU}by?Si>SZ2>=~B3KC;-am&< zlub*5UO?h@q{ojYEL3AQ7+92FR>b_QY%I=$HnEt8(Z#)?8Gf9Eh5B=qgR8>PI6M8aP`p zC9m08*{&`-Wk=W9>Y4^t(sA>1MH;))eyqT1)w@M-j3@Tcbu_yl&3K0{YNe+Z7P%C> z`8Esfj=*}9>K}fbi}eQ94T)V>Y76J-QXfBhblFA=oA6EzG&|9);Y=@Y(TU9#w%}cy z=-d`boynN@)wRrR)|m?|T!@PpBC$l&-qqgaPC1*lTId8%p)$>w^K3VzuBD}<_0C0? zF7H;4E49Le2CU;?x_F0$IC?0MeQ`DtPY?4`7nzpM-K?>bw9t!-sS7PBSW;qLiJc>d z43JArAv(`Yr6RjqW9f_^DFjViLg+~(Lym-@w4E`ri##LIsEM$N%V?qAl&x-Q;&OG} zRLtpLNtO{(XYQbz`AxNk)F`!$%G5rzwi1 zvhV;t#>k0NU;U;nW)GE{|1ui$TZU@mM;|_6;N$sVFPJWE;gdL^;Fwk`D#0zII=-{b zF}8t+h(r&9>${v9vP9dsF{Vw@EPS5jh-2g(@*MJOOarN^5mkL{wEC8 zgW;00)7f|?Ju)Y&7 zLvAe=isnPb#Q*Vd&Td)f$BX!us`qWd>M`BCd8GcOVd)usSGD?{;Dn>l%2DY1V=Hu$ zi606U7AfQu33bUte0M0ButUkNP-8TdOobYgp`OU@&{jK?P217ACVos{S=rLM!jG5m zEdxIto7o~0Kc}Y>Y?O(KUosXH+wvgp@b=?nyrSm&wV-26^Bs-#O4-xEZ^oAQWD~Dx zQi{h-{GK&id#{~}WN4E_h+|&va^fn)tYD`K&fv$Zc*VdU$L6uvM74>(5cXH}#4;f* zxI?j?-niXEV2`-K@jBj6gZxdf>i@+cs{Y@{7VQ)h|D^ic6EPG27R+!2T+`O#2$@!& z*ycoBs4i-EMF>7~{df~^82Inlw3nEeXo}F89jeVopsFlM`7Kfw-`JE-H8I{4gNUw9 z?OkU=J$mtwGNs`cOdl&%Eif_3l<@?__Ci#!PT7{s#-lv^olFoK3OiG=OvX<5r4nyA zDO@pFu%P5AjSh}P;hLVv4!b>nzsqOeiTT<&57)fT$Ycu!OjD*XmCx6VxRCb?H+tPm z$b>f)N$cf};r&5EJ3bi_i9+@wK zOgV`xx0rG=gN;_!ifDJpm2-Y5w1MZ?=-fd=nPe!*qgC_U=lkUpIn|IQMWt8~RZGH} zAXrXvD4tMFmsxU}qiNKR+Zk$lI_sQG5shNK0V;KO#^ueBakLKezG*ou-AqH0OqbujgxQi=^8elNdX6mDWG5A84&J z^C(V<((@iQxzvHMn%Uuschu6+`%~G39`TkDCUYD@WSfPjG2oZ&5;tVWCmpUlgV!?Gj^tOqE_sE|!#A0=9aOMQ_i0Pl@Lu4RjW(epIQfmsm1M0@~YUNl*eh zd#QzqE+D+yLNz8Bas_1?-9Bp)vGv4#&)$ByT&`lO6JF&`I?7a+N5;)88x6UZ-f~24 zEs4%}Hfj$tyhg4vvhXbM`YAIlF^NFm0kh#X-eK_!BR99`GAEz*lWsd zM5Fl*Ene5fYM__ruz=J6_|4DPbzZn=k~ zc*I^fEg5#DD_!!J@Lv_}K1=SGea?NOHy+XFz$taj&81!-@sSh^?;`v}iHL*HCI z?8`sry0`p^c_Zs%gL`e9JNld2u%zL~G`%33I(mmwU zM|l)GS_2#MjNrIrs=F!aaM@{ZZHlCO+(q6SoD5*KUs~lk4cUXV^Ozw^kdp!Vyd__d zFY0}_Q{PLRM}|>2ZH%R3ing0|=kxMqLk<dtD7Klo;3%8&HL(1{aMe!}1xEP^gVGbr^&;=ydtj}^6UJY@kq3{t|&kPy_9`iCX9&@{}H@UM4vx`lG3I^}%bOLKSx zd&>Y+@n1PApnq6&J8h-c`kh%Qlshf!U#G41+KFB}$!i0saoWjFJDwbBF@?Wx!afO?H|DT5T+s((Qy=~itT+VrUkO&^a89^F zn+V+WPLg39YuUh!c00Iuq&^#?2aaZL`_Z|Xa2jS%ipnpj=L z!h3iOE78KMl6zG5I)@VD%nlxY504{>FnVzsF6PReT)7)-a2eL(a;(D@*nlhXE?mV` zS0jaMICCwo$91?BH()Pr#C^CK2XG53fcN1^ydMLcIf&cv0zQcE;6wN!K8#=CcD#l= z@CH7Df8kE?VUPH6m(0Z7vWWMOQ*f^=!~L=v`yJ^%MQ5cmI`0lZzKP5YFincVjP zWi!d)CGNPBv-)VTw6G_vMLqB&&L;?hQJqc_)-J?hrYKXFH1?x+v^Ebt2*`IS5JDo1`B_?_#eZ}IzZji6t~IRjGGQC}nFHB!+praMxpBULqG^~(eud1TNsYiJMZL0ou>nm&yn zb!@=%I0=VvGQLcweV$JHZM4(HI`AW0z&3(c=*GXNtNxA0{~tUcWysOh<~SJT*u}GG z6&{jmnMkXR)9XVKBHiR1WRGK4U}pW}QgaBC2C%QAMr!-zZLNK%)-RpV&mxhX!z58d zCNX8#V7g3pSce=CpXsp=pREJ+qj@^SR*@X6D z_5f~jV4_B55+`&Gk)lRsdw3ypp5s{EUd&@tzXvlPlX>p)g~iJkxyy61SRNtarF${0 zKzMm!rAM+z<>kbCNC=ip2W8-GZWflwY&6RptdTlgAal{pcDvLgF7uF)9gQ7o3a`L(s*(`P~R`zYv)m?SX;dlsgis` z(rWiZFnoRRl`Zzw`u4!jg;^#zHao-R!SX}!J<3(P_hJ#7%l6=y0lB=RK3HC>)~M^3 zD>Wak9FS{@2d~q?69+e3Up)67ovR&?8;b{T4p$7|;f{WJZ`k0-Eze_ez2}v;&?|#R zPTpU(*d)=$T61BI+?taQ?g7Vjkq&WDPVQh@9v?LHTR*NdrPgeGcHiNz>;8{~&3rzs z?8D7L(>d3$Kj{A)_U*yq;fH&t9#;Tf+(L zR|1w30L28XoIDV&3RVWIG`p%8j-#aNIYi*%$v{gt!mFwLlvvswAC#4K5b#mr<& znYETlD;=SYfzXZ%TB11^(|xK-YX{dAfGav>h0!+b$H@fET0J?X}4vIB4M`@fQu za$XxJ$i)PxtW1@iGD9wvxpJATl6T7nxtfl3jck`|d8xlnZj~G4POjZAH_0dEX2(%; z3ZZgfFpnOPPsk_fdgZ+M9*|E_iz;5DAL3XU<$jNRnn}e+>9Y`ISySxP|f$= zH`v=Rm0s@vi`omAlng@h5{WP?no^Djoe(f(0`8$CA4H{0#TD|fJi_d`j#M-(s)QNa z>vf`09%Tr!V3fz?GhRk*rj!Z~PI<%dc>Ewz{98bv3XME@e-V;Y4@PFS-iRC|;T>rN zl3YTyHOn49AOoyA<+E!Cq_u;A^=#X`Mq}TLa72*Rp(&Z?;kI8I6z2 zw{!B{J;ZzYz6Z-cr1v`G>c2nEgY(PJ<<~cA9atp2i*9#Q`g>@XdvToH$9vrUbkzHB zy6i)%>@U)!ZBUao`Kg1(m002EG>-N?-P1($4P}HTuX}ful!`(des?b}P?;ONNPJR$ zM%fi39HG}TF4OaJ@~gJSLt6Ld^UiBrG_R0!8gue{B7D$CqlC*H(r&Hmae15>prGvu zlo!%RxB3L;(7_il3>MMl*UCd!PeiHM;#$f@2;;-@s zHD1rGpjPl<3u&tr%4yNRjYM|VFRtTGU};9&e6zKIp7r+vcudfuKyq~devBu_g8xo% z!W3Gp%0DTS`tQGVpZr_?!*(6?|1jvE0ABRkm%R36uYJ{PU-#NKz4k4)l`^lbbld*{ DFbSXm literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/MethodHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..456519700540a9ae8620886888eb7645dde24da0 GIT binary patch literal 3041 zcwUWGTW}Lq82(P1WRrA(5@@9bBv39%CPrmx#lfLM)PdegvHYregv7Kr5Kj-}af4=|wFS|ef z`|T|NYw@*$0)gepbT%4KX_nQa*ZY(u1sQwp6by}1ulVNxgSkw z>11?Q$8kMw3wY{`v|(=+C=7+$1Y8Z7gziTnd@9`V2+V3U(t2~YyF)iywT_f75NOQA zwN#sC8giZAblF{oB@k+y9-3MKU#3?#O(UVxEEa0an8|3y!PKXBL^Z2BYMZ*AH)r+0##E zwG<;L2{k^*Z63`+6%RYtFw(eylF&_~S5F93Od}wgb!ZmR%}VO_RgjM6 z9v_s%v`ocvtRQ?X9@j0x7csdVRuREU0o6!bwwaCFMkdX};+&JLZKR@&hGo|lVHKhZ zRtwA=d!k|u)(UtHTQ@a3V+xdp!uMIn^857g2-Yijl(dgORZ)d%nHRmEan22e$5X3d zqri$u;;-)@dM$3p(pFlspnyCso06XR>n zz$OZe8YC|*5S}bM52B-qyN8+K6$4YXPea<+E!CJtUF)7sH%#SB?(R3W9@&fS;WjT~ zOj}(%K%o5Isi}9S7-w|Ut%`OWlx1eM*qUv`bGNj6ahM6SoUNdAbX3JL zspvB-;_TII=C=dO6vU?-oA;9=-EdHJN;isOZ8OqZ$_rM2x7RRj_C7B1Wb&AI>H~clGhwNC8m9#OG;HYaZ+0f*@(GbnFjzV;M~=+XDxSmh0!6%u zWuDOccXj4c6qCmBaj*9NZLKW>m?x!d zQUVxfOD1c^^=*cHanHX0wY*whj>TYPkbf>p{0iW&!c~+{!KXWN1Kw*C3gG9j$Jtzm zBL1p51wLo+>BCIS${Tl5yMWInk?Sa4$^T)L4#8b`h3f@eFBo0BuH5xpN>4yFy=*`+ zHu61MgCOdhn@V%uu!uWwq{Wn2Rg^07cYZ+~8ORpiv9x&0Y5EseDTi*NQlRlN7OlLA zbpp4sp{epa)C|FM8AX-1QF9%2S9!KcVCc@T;_6*Q5$Cs_zgrn&15rGVGPY#}w)1QU z--|J<=iX-QbWjF!_tPTiV2;qPf#@m_pw<)g>ZA4c9A5DcwdJ!Qup`gVAY9i1Pv#d@ zt_Y>2!`K-K>={OjT#TS?5NafFi0jK(QsNrI!rcCmAm2h6>>=BGSyL^ThgNdAkKZqC{MgvfsyIyEkMQ&;4shHb<`n8e9BCwAvg-Pg z0R#AngYRdY!Y^F^j%V>FPUA1mvA;RV1kO0w zJj84uagIwu(X2m7)v5RZ*c5ad{hubZR;YlhprmQ3Mx$fFC8^ zi3JfionbELzRtNb^ZE7u0pJKbbyNg8v7QD|LV2E1F$#(_P4Zw&FEk47D0-$?J{Za} zY3gtU)@&w7NXNnLa4e%jpq7!5nnAC>DAk#OqiG@qTK!+bL1C1RIafPZS``-pmz~8a z{}XjXmbprwq>Cz6Jv7i1sCK$x1AGw=OQ>1Y@=(XJfZtbI-b^P$Y3^y5l*6SFB_SDQ z{dv$SMk*I@2kF#A@>M-Mw%NAel>g=6nA=X!#3?p7visA9%{jSW%7_wKp$g-zl4biFqW^Kz literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$1.class new file mode 100644 index 0000000000000000000000000000000000000000..49e070213f70cb1dbf3ca1b97f651fd722b70431 GIT binary patch literal 939 zcwUuK%Wl&^6g^X?brMVxLL1(+&;WTgZgxmPNT?KqWLiY4AhDa+qhum?9N7~Dd+e6legn`$*ToV;d!%N581pQfay|BSlEj%m z;cxiZe?h?hRLev?O_SNQ-gA*-sF@DZ`2$ z%dEalje>+`vtSyiig0O6oDgTH|c74I?(;x^WJ~x z48?Thb2B&#LMM$VBA5sdHit>PX;F_EgBlpg-&xrmk zqyiET`~ZFwV()??wFD7t*_vC=%C3*Co zf8gV2p8~H^9V_`PQ$-qdT{sLIvjiidRjQ*2n_*Fp<2>k)dv9+0ZIV5TWvm}F3>*KU z>zQzra5;(&bQa6eT#;s&q@2LS#`aFxx`ghPVo5awbztx~io3s>gspRpID)NqT{-cCbl&w>%F70v3vs?@r zR%Uc)s`qw34us8_yST;>{&U__K^g0~>EZ@MbMBse+`z&EvJGNLM4k<2|1*?j4SkQjbdhX)nkNxSDmUf8Q0PJ1sUucyZ`_I literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8e7c07f5904f58ed05cf2bdf1b20cf1901173096 GIT binary patch literal 1103 zcwUuL-D(p-7(LT$yJovFYuZ$+Ra=dkAJa`6?;?VPC_-w5mI%F@Y}RDUb|>u4ihV4h zDtO@o_)y|ElM+Z;FkbBP&6#t)|M~sr=Pv+z*f+7nP#Z?6>xDc?#$1kEDMXmKr~ES? zxgQ8P9LqpNZ)1^;OHC67!_IYrp)bW)x)V0TiW~(=sX^Ym3%hTT>}3!I@)g5z`9E~+ zuEO1rM??2W#z8b}T}4hRJqDvK27VR{t2UOgVj+W^4HGvRD&@u9q=HLl>M1glU$ro zXU9BF`~gF;d{wS$vN~TpUuTk-c)(Eo=ai>{EVl8;#11ua;Yw{hMu{OiB~xaT#8MfA z?&~<_=iMNYEelUkHt~#M?V4*F6;v5Ad@x_yVgJ>bl}U87^q#L31rHZ9vZYp8G1*|anvr6wM3tZ8-!=c z`gDmp)!H{$)vfxbQC$83`>ST=>2GNTBc2C`tQTYvAGc5dw6%tH&2dn~hK}aoHd%(Y z?qHJ?40mylSX+b{bh@vjcL-6+T=fFh1s>MEChV!@-%b~HNsSZ&$XtG RU9F;J()R_pI@~rIe*u-d60iUO literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$4.class new file mode 100644 index 0000000000000000000000000000000000000000..1e0725da07be152f015c80aea73886b75859c695 GIT binary patch literal 1108 zcwUuLU2oGs5S(jFOzZ(sa5;(&br#FfT#;sv!P!$oQ3k`3j|*7zP{Ohg7Zrxb!8|6jZL8f_iZ{h^Uu5ri zKM@S|t{U*9$Ftb1e+M12Neu1zTW##nCM`9%RPy9l6?w-v|53sj%J!MnBiiGXXSo}PmPnK7uw`ci`I7g@v3W-l_TtXeN=rUF;r-D^NC5zSwIi$LRtMqN1VrF&CW_(E; y!>@&>l#rfN+-QBlo%1;*VP$i!P59HCHQXnE)7Jy53DC4EMz^`@RHezdfz~gJ+a00+ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup$5.class new file mode 100644 index 0000000000000000000000000000000000000000..5791d4f8269058b4a896022b3384876c5a41536b GIT binary patch literal 1107 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ad59a9af0be6b1faaf4caaee263b27d31072340d GIT binary patch literal 1030 zcwUWD+iuf95Ix(Nx^_(xLR%U`|q#c0PLXYVvb=ul6lxqc$SU19)?<} zBnwZ)#DK87*A=Pmjt2FP3x{ES7C91Hjdgf1*0GWd^LiL(^)^-R6)L?;DNkY<>!%EF z8wGQE@A!KjCR|40p-y8N6^b;E8Jw;f2oDU40WM+QM+uh$xF|C`ZWJjpyKJQwOYt%v zorv^^pCp2z)>D0+9P>0b>+_&vhQrV-X0zU*;VjmdDb>n|B=5y*}1Ul&}_#% z&BTCVd4@aFxxfFRFYMlBE^ack{=3K11P^Pt9I8C+i)XPJQ+b;5$n?w*JeN|WT_Yf9ewBUMPgF)0UI;x@RCpT=29Mf&W$dQZ zQDgRy&z+pncG0GjP@>;~RjcMW5SpXM#RA1WLa*Ua94NQ$e}>V{R^qln>qtxxbt^w!^E lKdHH2R&3>rI2H4-PKAx34V$xxy3JyAo2!N`E47Aue*lGW1+M@A literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$3.class new file mode 100644 index 0000000000000000000000000000000000000000..4884326b5abdcd347f790a22776c552979af33a7 GIT binary patch literal 1029 zcwUWD+iuf95Ix(Nx^_(xLR%?~ z353K0AHbjR1Ydxd-Bytbk+3aWXUAvG%$Z$(|NZqFfDN==%rLC?FirKGng7gdG_tui9hWot<)#qM}` zAo7>|AQKFYM0I(#&-2u*PlApa4nw<~&E_TzXTHg$l1D=|E;>f_pYo?D8>d$HX|^Mt z7ox|oIK`dm+~4`o6?X3m7nd2r|L*Z5!NUr!xwy)(R?1I+>sX+c-W(RMUL*{2JnxT( zLTc(_PmS}gc$}IkRVNwuOv?s-F37WJnHhfahp>^ zt?4s9F>*}XLWd4Qh5iOsubb0AXoemaa}@Uoy@o?^pc>x(3_rYcciH)Z;G^Z$=mQ%$dp^8OIgdEDcfQ$5PnPO&j$yVH^h~azTC-_wK%HPF) kQggp-v87|;q?m_Q5;lfz*qoba+AK!5xf)orrB-n355Zpr8~^|S literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..a58428d8c74abf98e5ea754d59faf38b54837fcb GIT binary patch literal 1034 zcwUWDO>fgc5PjR2x^_(xLR%d|MF58R2xqJ;Aie3Tg;HHs9OUbfOrrPv)0 z4~2fo4>Q3~>#82l4!BP3`ZVa-;V?9dwOQY!;mp^$RPuPJ#(CRT{YU-`W#i21Am8)_i>e>_1`_7Bm`K&4IkGT)(Z6#;U*Ty;OnD&kErjJCSP-0 zC*z@zhOF$XvF?edsU1~$lJ>y*W{93iDRjq*2%2GKNA@z6Qyb5P87L~gjs`a=rh{E<%B2bl;XOc3f6Ci~zQeQO_SGT}8Y|JA^LaT`mUQKkYB*TIp$9bnunFpm(?~>$cEMxtQ;eEHH zX7GWZ@F3wb3J!G^%cxYOcf{a?Y9u@`EY)!V3pG@6u?`mvh9})JN#>_*4q_<|iu71y zZ}@Q{7}^6h#z%q(W+{=uj2eP&|*##2Pd8BU3&@{e_fMrJzwZ_vJ8AId$_==&>S?Ep!WsFFJ{^iG{TZy)GADyjg&r4+6!!?dg+p$pb|!}t6zsFCT7 nzswkoja97K>KSon=3#>pn}+UK&0Tb?iqUPZHa4x*I_~`e$tDPO literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..61a03e7b9760a7528c57991d556ef998c3d1e73f GIT binary patch literal 972 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 Hi8KBeZBfuO literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ef1bbbd1283be946a5ba1ce9f22a12b556979f40 GIT binary patch literal 1035 zcwUWD+iuf95Ix(tb?k;DgtkziK*23ZxH#br6(ON0NC_fUA9_+ikHRoP-J`j zFcl1~NX0ze=UHObCqc)IhoM`t&!A7^Sq`{V@@T4xyl2w><9~+IKeKv3)1C1w7bAw% zIqjL!{o$ur*zL<*T%qFryUnKp4;#4d;u^ztxrS=EffcIhEl(3pgQ)UsTug=3RK~6< zvRFJ#%$yp3B==3x47F!cifmvU1PL2M8K)|z9$pANQIz;L+6*4m`P%fGF>JLvbH{wr z$}w#RJvs{&`X^YkX$}OT1$tamDee(EfJ1Sh-o5h`e)sOZb>|yupDnLJZ{PA67TFL@ zLS5n$8|TpiEV_Ud%c*0PP{pD(LJp}e;u3vZrfgc5Pj3Qb)1?e1X{idw2-z*3OG3zAyrY4kV1=E)C0FovPuljZm`#g{tzzk zE0Cy=IPe4bQHa@XRRlyL2ivo=@6DSx;~zi2eFxA+!^a$m-Zb z$P*hx9hsU#`L;72)Y>f{9$|eNd?<~cnCM_)Vyy@ZW)x?&7NOpqt@sXe9>*#+PY4Gy zle(|PI}s&94WlEI#%eev(>Nx09X*f%2#X=+u~0$*mqPehB5c)XEmH2rO77?5o=jhg zULpzAuI`KESfsH%pC>(Qov=Nl2c9Z>U#tnG)yY`rSK zIFW=}PxnP~B+}Tf&w`#E522OQXT8JYnXe0_)yYUtvbHVzkNyS9)`eAvr#lvDCI^J& zDfVpZrQJ_`>9#NPah;p{?>3(&1X#l@A2$h``3#kD8%upeJcxK8x+RDt|H`+1?4|=Ss=6YlS2ava+lCiO$%{3u%U$>)%6z5OBLMt?iVs z(P&Pc_L-wo+BVvJBntd%P_=5$1)~{$d=xnzFnR-z9rGEIVGNp1z6|8*3cc7a~E}&MSR<Kx;k#C?fu3?c-eH%?ekK;t{iXl5w6ls4v zl*({J`+A&4((bXbf0FOo_6g-DO3AciwIq94*-=rVGoI$DGy}~NH_;#j-0?Fzc}iGs zG^ZMVJk*4?jW&N31^zpzTD6}BqZxjD6geI+dIgW;z(VWRSCm?}@2q&=Q2y+A6@Hf- zpD;@=QDxL(KC^KaHNc^BSah5PEHNrLw9Lrktn;|Qdn+8XtBX$Y5l1XPXnjG6MKAv) mMz2w%H%@GMLOc-*u*QY$K-XQ)4b)v0@oldf)}7QUHhu$OEelrw literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..ed8250a9cacd34d8cac41dce4421c374d0709f1b GIT binary patch literal 1038 zcwUWDU2oGc6g^(ErRhpr$~G722#5?F0h}4 z1VZA0AHa`7Tzk{dpb|-x==kQ`bMC!%e*XIY1HcB_K4utNiJZj!jOY27n_+B}%JTS~ zIJ6+{3T0UAIEy{V2%G5k$;DwWV zZ}|rvXIv)nj?t-13Psv`3|?0aL;!~QDrPZPK?!H7@KIy9-zp+9UAEp!rFb?O9SFV4 z4>G~f?5RG__P9>%`Z(y>@i0UM`wTZ}Jo6!!N*<2XB=1<+fBa8THcqYX(R9aL=VHLH zIHf&XdS&}lU%2hdeO#jA{=3a52?17c)yEZv^T5##3R2inMQ{McP#A3)`}0SZlSX zPWrf;Bia@^bR0_bTd+pMo(V!T^!O-KJRr0WkK#Zry7d*6==Pmu?;EP09j{LBisLiP zve#%3iil5aoJA9G=o}Utr-nsBC5M&>d6ab?7wFqE#q8>$b9_V*%MYS2sF3O9zs%Sh jlv(1;mX3%gW&u`7*fwqMOmZ6rF;2m?{LnONJZu;LF7*A zy%!%v7z;HF_e~n9VXjE)kl=OoKn5TzmNAco5(>CbhK~y2aWhYm*=4J}NXfm)_(-M) z;wYAcdQbO7d??b$u1|xW9S@uhG*`ZhCL!QPUt7Z|VWZia zIp;-7``%ZS+V>x; literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..ad81c286e38bce515417c64b8ff3e0c9c9056e00 GIT binary patch literal 1035 zcwUWDT~8B16g`(NY`4_5RzOiv!Gdl5*y00;!I+o^6O)Ptlm}kS&`#Qw?M&UB8v3(L zG$uay1N>3OI|IR>P2An==FHu5@44sB?9X4{e*oA-!^aGv-dE$W8;dj@2{QVI!NNBJN;;dwPGIzT4{%@*?Svhf*1C zV_%Pxu6z;MIhFsUJhDv_iZ7LtN!uz&o?v-Lbz_~fhgZ@JG#9>yIw9ab-&ns1VZGj% zI_5Jgr?hRf_$=i3pP)*`9tcJ={P@UoJYaMPkK;h8dH*X4%?A&cy>BRfcDypb3yx2i zr34j5P3AKjmr(^Ax`GAADPfUO&Y>kn9%o&}HU75DF}u3%6rXd%@`L6V6j=1;Ut)BE jJWZU~(kby=EWj!kwuaVR&Rx`87V&MbD%PFU3O0TNJr)O^ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..1400cf48ef60bcc14b176c35a560aec0c23edb4a GIT binary patch literal 1040 zcwUWDT~8B16g@*1wp-S=RzOiv!Gdl5*y0N@7!%WAVp5Ta;lUR&w3BvaJ5y(8RpOKW zBNL5@5B>mul=03$FlZBZH@i7=_uPB#xikCo*Y_U)*3tAa#n2eYEb1jZO~>2}BcoK3 zMu+0af~X_3c_H3(M*aGR507Da5_=$w8k^|(*u+XQ%$Q-E*4tFNo3HjJ|tZ&eGX6sxkc{Ea4+O}o?(LY03KeM_|(;ai2 ziax{q1bepi($@Q)aNC#qxI)eScbiWW0xaRWk82ET`3!})fjR1M|1jMl?mMNau_D)l zY$T+iUUpTcd*VrKhgJELch7dt5I&Vs=#G^UG{(x7>?JBCBhQ2xDyn`94TgZ4-La-M z!)l{Ban>h(j%k}{(}5_^kHM-{dnyP`(c_~?@qo}PcoYZ9t=nHwYTdcJ=zT-@+3_m$ zE;&BKH2Z)mp%(Fpjq|7h4qd>UaNi7gxxPsIW(Q(Y-DNSl?N!67lUl;sZ~x{BAOHXW literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$8.class new file mode 100644 index 0000000000000000000000000000000000000000..88eea663a23d612047c2872436e2216919ca74e2 GIT binary patch literal 1047 zcwUWDO>fgc5PjRYb?k;DgtkziKucPZ@ZpqGQ4tb~ii8vjqNs;n(AHTw275Qyn~L5! z!LLCAA#vab@S_m3+o-4z3EQ&ucKqJVyxH~7U*CTK*hJgK3_~lD;~-3Uo{zX523n~k z58jGn1A?B&^h@!smkyd+E*yr{Y3xX7HPXTJk&cyQnA5{JZ+0nlzgX^V(maf1tRFG( z!lM2ge#C=>%P82>SuCSMk@h}=(^CWCfnmOaSYt%(o>|?e>5h1o zivh#p6nmz1f9HKD?Dpj@u26IT-R4t)hZS6RagAZ4n4t=8V1Z1$9%bq%9*C@GB)dGN z*_3$}jZ+~twX~wW@fcN@_WVrL*=QI6RDtS)^=o=sGR&f6MCqq$St%OJnH#{ z@t!fPx7t%jKCyK|+eVkpMT!0oR4bP%%)=@rHip)$<|dj}#ppIy1M9Zb3O0TN_H+#O literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CertReqCmd$9.class new file mode 100644 index 0000000000000000000000000000000000000000..dd012fa695679ae4cad897cee428e36d2aff2300 GIT binary patch literal 978 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command$ShutdownHook.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Command$ShutdownHook.class new file mode 100644 index 0000000000000000000000000000000000000000..d1b0f5c3c1a45661601bae702470658da1f6cccb GIT binary patch literal 780 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..2d78cdb56fe59df93991b806aea6229d6da2673e GIT binary patch literal 1030 zcwUWDU2oGs5S(jFUAra;p)C|BP;hAyKAh$a6(ONeB&1M~TJ?b!xF#pZ)VYi73nD)Y z353K0KcMOp{2#>LwTe`Tgl*ZHThH$7?46H)fByks3k?@@44bhWN4=Ei`H1U5q?JnZ z=txWqh@Oj7Xwez=!?p{DVSN@k7FvyT^m?QdB^l=RAj!iPRqhrly-g`k5}D|y4Dag& zbGje+M;@hI#?hY65*ZhYG!7V?j_L~!42uCSVBSXw7X!E`Gd!*rDKfikrJG2xJ02d2 zY@Z*df}z$`J)R!$EHUe|pks!^&?sgzY}0TSLoSt^4AnSqnX3QDpQCJ@TeWGnBcA1= z&#*kho$1`)`P373?{XK{8Jhpy<7tA2HQaJ>lVPKfp8&V9#NfU=%J(ND8pi_9;_*;O zO>OL{an=(r5;LaqH06=$nIU*7rN}x)K+yauJF=ImoGiQ&dZ4KACh80xwfV-_&8VaL z>>-~yIi+o*MJJ&|zXPjQ&2bfgc5PjR2x^_bnLR%KV3US3A8@JU;YbyE$Ef~O{sd*?#Of~1cFeO} z3>X%txHFym+aLPE?p^NUB18D!J)R_ZSiuz+ml@Vd`KjV67O15+2l=ZPJ%%}+#l=WS zO3JyfK-juwMQT|PH%Gis@V)R8d@6eB?_xix jxnH)}(h+e|%)=@P8$;J@&UFMfi_vYaCf01J72Nm(wowLV literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..f37a26d9d70aa464fde659fd8fb23775ffdc3f75 GIT binary patch literal 1034 zcwUWD+iuf95Ix(Nx^_(xLR%j|R@uC=UJ&3hZ zSrH$KBLm_mA`@D4hW&8Ug~PBqjhqOrMml~m(y5XRvwDygVVf#OPv@yjN<~`x3{FS&g$IWD0B11kqk^*mTvQnzG|Lp3UbfavrFcFb z9*F!UKga|_qpNy6+vj;|)+a&742PjruFY_hhBF^>spQd6jf=La`j7l6%EqbHeVXlv z=Y{AqEKcdpIQO?d^n~5J!o_8V=)ZeBN${|OYc8%btd;5~z;!H;!PkeyE>YjBoP5pk zJQ)v#)MRB(jq{#(nwn8nCu#SLZ-(HRlp^mK5kWJoZOdM!3Tk6V=z*f*>u54~WOdiH zoRh2O^g*9=b4=Spn@&T8ehF5unVsx9Ufi)|&f?Iz8Y~l#$ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..fb5a2c2af7ca0344a6ea55b9c72259bdae356fb0 GIT binary patch literal 1041 zcwUWD+iuf95Ix(Nx=u|JLR%* zrA7E&9Gf6~B2uA6FB=5gE*ysSS>RY`HPYdWkxrCknAgLk2)b0cU#j#DQ645T(T^D3 zwn}pP@Awf9Q!e9hU+0O8OJ&*z3{FoCga?L2A7?OMMFnSlxTrBaXq724yKKFmNU=B0 z4n_WoAEtt#*;f%y4|txK^(5(-;V`tz*$lR6IEw+7N*-rwTy#yI+b8(enqm&;X*Rez%-i&f}lng}PGmJf+ z(PS2Q9*;92HFdPF#(5;3CT3!_Df^yjpTU17<%B6{l=WR1rK%t|&xIZ;(%3|c!K02} z8s|AR*P1==iK!FV4!U$GD)eWtM#G#8istBXu|Ro`qStUJ57auhKcm{Yb9dGG0{^4M z)#+Wect)5XXi(H4JfU$8O~6Lyv1BndEK^jm(F#Qlu`b{ueOslRSzWSfgc5PjR2x^_(y0xe$!T5xF+KAc{9DMCV_NJt??D(ZpT##uQAXE(Cf75!OA zR7f270sI;+a74^*t4Kg3e6T$```*lZGyeAL%U1w9XuDWo*iK{_#ThS(Dc9pjE0q<| zdvRid=()&*7QM+R+;!nFY|aBGLaV8c4yHO)l3`Jg(<1Cr<$k5odqjDX%2YpP7_=&K z`tSHLk1{Tk=uqdWOy*?TM+{C+jf4k=<0bHz*yjImB^?oYFpqvav{)P`T z!O-lhm}f^kPtEx}=@{b-?P?anT{6BLa;fCWM3qI?RQ;#@ACMiI)RgCi7%{BQQE#;R z`yXOqH&M8_!O;2d#%2T$>$vUW7Ql(|MZhfddRmuHkQD6jJgzH^G3f4BHSf_~Z-YiGb&3lE!A X*qFF$Irk7+77f_mH?d_~t>gZ0vfuT9 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/DeleteCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..2abbe2a651b969105b29891899d374167d0936b3 GIT binary patch literal 5720 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d5642532f13cbd14fb00cc65fea9e64ba4c22e37 GIT binary patch literal 1036 zcwUWD+iuf95Ixhlb(}gELR%+I~AIdf+1U%!9+1h9veizUMDNX>#U7HK*aW*iu;<23jr z&nyV~r&FDn-elP5x^M{Fi^wBs^wb20Qxj=LSTW-$ZFIQuAXn*qPI(ro$UG-}Xy(ir zd=#HW5DPU5j!Y7%QLaeqnBesEP|I)QdA3uLq;g1D zU*OJmUh1EQGCRA}#Z5x{zh^v8@UVqDE^ZTca{2Lb7i)y_`%ot4WfaQ;G2x*UMKYRA zq%z#hk)9=?w0nfgJn@O`oZ!DwN+vxkBYBF|z6xWVvXR%)j5U|vMU&uhvu~{Fg!^hP z9`%KvbJ{*S{5=%-r=VKReiV$B_;FF>xX0)n9F7B(_QP)|wI4m+biTv?lJTniE@gbe zGOeJ-sLgz4;|l6PhOS~Q<5aNDsF0xzMh<6P!*$-<qg{`4`S!db!ULT~a+E95K4NgXYA8G~td_Bil@bcLQih8P!?RYNB8$sb`;ioHr;`(r z9`ch|Fx2~Mz~dvHMrM5xbj)xV+WBnydo-L?pGzfY6E)2`rs_ZPmngfJR!?cR2~RUI zWN0jKXF4zS&IZEnUFPBzL-5}{o+o(Nz+D%27`AiyDdQg27~JF2>~NOQIEp+SO(#NX zYU4mn(}8#unK4!7DNjt#4CU8SinMD41kJD7lY>}gWZ{j_V?~8`&|>hY&G*J`N*%Qp z5Bb8$Ic*;uItc~(9aybqjsu}3dR!DK?h*O`hvGmbc=!#a;L+oC=R3+@EU!xMlI1fj zvnpzY0^$=JS5XHnx`s8&sh~lqU{RBhLs{2xgTAd(%&cx&#g`N@d@uNl5{cgaON=#8 iWKAp9JSWb@JZw^7V`$6f+=p+o7~SToW7|q?;K3h^O$Ffq literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..7e71fa1afea883e8853e60c71f9977f6491ebaa8 GIT binary patch literal 1029 zcwUWDU279T6g{`ucC%?rVr*-xwzZntBz|lveUXYFA%YM;u-XS-beasw+RaSZok;t$ z1V!+{AK;G??@UXe8gO^n<;>l4&%Ni)?62QHegfDZL2 zmZuhkos+RnOncO??fLKsTeHXmY4q5Huf`_Qim+gYQCe%UayOIoKBqj6RAinIKGrkl zbU%sDB8-I^ga;;x)F4x&aY*pmx-SC|7K@n2LIF8kD#AyJ@Ti_eWVUR%8!7p6GCGpU zTX7UiLba=VB0dyJWY_0G&kl#s$Y!&)$HQ5y38mHPNKew1RsE;@1SLS!Y@d@*^ ziVCA9^O=pyr~(dM!II;Yu*@ju&ABAy)bG&bvtpks!^(9UPm-=X0w`&=q{HdfQDW2*ime~GevY4wz5JKpE`Gw{?n{)lIATk|Kuh1z%Aj(c6EC lu_lVFWyRLci8C<|4JvF5ZQ7js@NE{O+gx>QS*Z;?_yd7F2hacj literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..28c32f2af51a0c94da7a02fe2d09cc45fbc7c5eb GIT binary patch literal 1041 zcwUWDU279T6g|^yyV*1*F}BsJRjXT@tRI{BP>_lsA%YOAQ0ap&I!%Vn>Skuyos{-x z35wu@KfoU)-kF9#HQ?^D%bC09+lO{!xh8CLW-&ixK$9u!KwPm*V`jP-MdkFA25 z!6$yg!-UHyJk(h%qe7AP5rflHBjJHzwTfk|R8YdDDqPeUp0k9zLX*I*CUj>lwuXpU`B= zJd36iAvJY$sHWLayo}AnYIF5t(>_D>m6S83pi$QQa+s)`+`JZgtfaq9-;SeC=S$u2j5T$9zNQ1zN7lZ^6K=i zSU$rt3(z1G5TDq%j3!{w6|7lK4eNwT7Htr6NOcw0=-Vd6%<8(W_<|ya?*(5`p`thc nD#kh}v#u?+aZa2U^RP{cjiI|%a}T~%F}lsw#Evbsh5LU1ZLkWZ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..2134fb2ae22035e2adeaa957147ddb62b7ae63d6 GIT binary patch literal 968 zcwUWC+iuf95Ixhlb)1?e1X^wddP!*#E>6WmK}AR?3KCKXNJV|%ZR;$F!P$-M4Qf9N zi3*7aK7fxx%xS;*dTgRMW0Pn_STe&TueF%DI~VlhqG6yNQy$$>>;S@5FH` z3DvHSMS3K%#GWsbo;6Nr%x9st&&HQ)LTPn6(v!SpS^ts$1G2}H8jCEKeZuOD?rpE7 z&PgoYCUPG)3C;g*Y+4Xt9d~@(ChW}RAjDm45DM9cm_Y9dMUf3ABdH9xai}L*EMF#e zFe}rNN494|_)006wXJ~UiIqDlPIb-}UQ097OuUOaA>cOOTDuu{RG&T83n%BW1GIS4 z1^&6IQnBmiXn`LeMa~Bt_4wA~Z`izlhEnsv!*2+`I8>S6C5I*~(qmLO+HhPUE~5&# z=nAenOo&yE3XEODHO^e;oX4jdPUQt>EGlSzMaetEt-mDb35xX8Nvxd%rxF1+nb?}x Uay8qixhfv8yRTx$Nv-4FZyVwAsQ>@~ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd$8.class new file mode 100644 index 0000000000000000000000000000000000000000..5ac0dd1471f3f5b1ab77d07827eb7858f9593d87 GIT binary patch literal 972 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 u)_wMM2}y_Qv0|xRNvCvitb-vwUE@CSyJMLD ziKzy`6Ct08X@5NQdNwSE&3WWV9>;o0^_k+XE}6l7Dy2yK+Fy{au`9zwWz@lQk&hJlZllfMP?fKAw<#6Woq$rqRIG(BAV~`Us0o^m;Xw}KB3A! hn`CRp#91;2n`EpTx^6T#;29O8TVE|~nN%CN`3IEz1uy^r literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$10.class new file mode 100644 index 0000000000000000000000000000000000000000..029f21729414a8517bc86c5c2bbf16b31be44075 GIT binary patch literal 1036 zcwUWDU2oGs5S(k=I!;3pLR%3L!xoU4y%EL%T`Vqq$ zKW9$&Eq}+un9D)9uaig)az&a43{FS&g$IVkGUl;RLILN>a8Y4+;O8kayKJ=^N%0~Z z9f{->KZ*rIy{mdWKHy1Y)~7+o42L1e*CvgfrnA`KQpw3kWogTl{YU={rF~{~pN2c; zNhf#ES`|l=C6FjWpx{GTJo4Fb);|7+<;Nfw)N7VN!AzwwF z46>1snyl=rEa{0Sk(pIxns(3lW+*?CQY0NCB4~)!9odUjN^R^4JycYD3qFHKR`*QH z3Ayr{Gber8%?WKAEjkVb`YBkgX3hkmIeJ_aDee(^4Ts`DCAj?=rQpupRp$%JA1$v+ z?~>&+%(EY;5ekS;Y@A0Ou;>DoET@8HLIsOf2sxB>5tr!OD#gs|vQ>Oc5ySU_PbiV- p)xX5pPZZfNE4Fe%oQio^r^2S84V!Zl4V%U2Hdh^+R%#8m{s0ql2(bVF literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$11.class new file mode 100644 index 0000000000000000000000000000000000000000..562a7304da5881166d1e459cb5971a7350bf9fd0 GIT binary patch literal 1043 zcwUWDO>fgc5PjRYb)1?cgtkziKub!U@Zp3TDnde0L5NV0ihAe;w#mvd*t?NGD)O_C zKu8?;0o*ykZ$Zp%qez8F*p{ug z|6WWq@Sh6#TugfLu-Wa}uoyPyu>+B*apu1qXQ7e|OW7z)n;nLoexcmEBzYLhFnh%C z)+?y#zvCy|kGKr{gDeSUP$<$mWUzW_C>$^>yI90h1tpwwVWZ0Mz$=nue%e|;lwv=R zk45sDA4h_r(N_Z=9r7g9>uJ!^!(nI_Ym>%K(^+nEspKS9dD_uw|M5RV>7H5Lr{Ruy zl8Pb2>YVm;>6N_?17S8VwQ+@t`|l>t1P(TE-NrSB?LrN?xPcYw;mtTvC*e>eJ+0X1 zF^#6olOT_U%&4LRl_vx7B-A6T&eZpG`3&weDW^(7v#jmOL8MaZ=7q>ciad7UF*sE5 zE8TfQ#d)o{1D`f^O4~(;PDP3S4OXw~qd{na9vfwfJA{s4Q5>kYZ+}Lmedq4F^#$%n z!>iG|V)zV;><8+E+QcU|&Z7YsbO9@dQ^hKwl0j>PEK*&>CHl5bF}=EM93N9e^PTo5 rRLJz|UuNtl%IudhTRSDr%p7b|V%^Y|(cDDSs2JV)YGB(~ZQ#})`LPRz literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$12.class new file mode 100644 index 0000000000000000000000000000000000000000..05d69bf81296017cb0c042ba064e6ebb5be563c6 GIT binary patch literal 974 zcwUWC+iuf95Ixhlb?llZ4Yb?}v^1qjxH#dp2nj_6AwobZ>H}|^WR)14-N<$-@>xh! zNIdWXd;~A>9f;X&6$yxhA8gOgo|!r4jKBT*@)bY}br(y7+E7iyek{^-BC=7KX&tBG zdpR>f_)Mx7a@HOXs;!4E9Ky~b^iXDcl7+7(S)>(VB^yO)wMp3TeySg2umlqHcGF38l62~JxNqzA%kfMu-sDBwZ>7i&zfmbXc%6Dir9j(akB zBYLqUR64pZ;$x9S=6s%XjBr9Dp9Hp)m9JKX(rPx=)3j;Y{xkm%NQfgc5Pj3Qb)2S22yLN2ftHje;lpWes0gWw3PPlSRMbN+;3g}_;Os{B29Y}_ z_%%o%Bo6!leiUMMTSY2F!nSO^oqaQJ-mLxW_m7_dcF=G!N7xSK*zd(bnvMcJ@U>EL z>c0~c1N@BE0dohZep3R^qP0};!q`#9t;Wj zAPL7qAvHI1sK!Z8JdVt;O4G#qrgK8^sgxq=7#YD+Ebq%+tWq{|AoM_S`EAq*9yj~a zm`=E_`s`7k`8lQSqQ&1sj(-ZORLn=gXpSEjd5(LGj^S_|C^heVL!o*1-kS3r#V?ju z=6AvJ3G?(36-G_wGaDCB1uVLVWy>jHg;CC;RYneHUBYGFTjQ8nU9pOL95H;a`4t5g pz4n(FeL|i-Td~zs;#ADT1{XGlHf_!=)NB^iAh{H${svX@E(Se9Vvpxn1tBlu z!DJ*=%B6JmB<{(Fp&39MN{s;;$jczXVk(=96Hwz>kYO$2~?b;cy%%HE(=Fp?UMxy7L{yFP2y4 zcfs-ri}Vo{Mos238>dkPEINY~%PC=%QO=?@Mh<74#W~(v=a^ZYw~h}uV)$P3D++9S o@h>y_ggkw=W@|^pnVE-87B&rCwK><|+brVSTvgPp)dsHr0q7U*Y6)c0c@k`VvevCs&UYZMVgL;83ab_ zI1S#(i3PzUsh-G5XV~|5TsVY{S>#X}Ju<=bk%_b-ESN!*`faY<%~g7rQ|?D9G7kuE z8aZ>iZ^e5N#6pF^fk`42=87~A2~J1%r3b=d8S_{up@5|_TvQ168hMJ$E?ezJND+4OgKIE%heT1|#}oVIP%f8b~ zRry`Y_=I`-h#I37^O=n^r~?@~i{*?{!3v{7hE^FloOKT8`P&-D?CL_MxW^I8_gY_3 rV$n-~iP0w%>2oHwdQ6;(dD!5>*3h*q=Q{i>i}fgc5PjRYb)1GIgtkziK*6Pn`EZKV11ds7Q9+2bAQkn%1-8!0G1$A2KM?sf zoZyZGLgK&=;71{5w^gJ^Jdq-e*gFhU<+Lva}1lIEc_tmSvKbR$j_CE zGyk2KXy88)@|l?QlcBq9!(v#UMGi%-#<~A|oJUGBEaamob9$^>)-jKT8Y(zbhm8iq{Z1K?*|N<+B*lJ_ z9EtQLKZ*rId!PayAM!NP>yx0Rhr`eC- zvuAu_$7jx&nO*<-{o^NqEp%+mF>FS%2*QMC*_h|UAXh5M zg12I#LGVb(Ct}hY4O-haEQa-2Hfjua+hs&%%hvm`6i)IEyVVm7I)Jk#)7|KlUdmTPId`XtraX zW@5mwJfk~Zxx4!z6lU)-8y6V-|L*ZL!ND3X+qlHAQK}ygSFpt3yc!eny-KO7Do>+g zBxFv7?5iRT#lu(+sy0o!t*d769!n|Gp0*G)!TPQY6O~aDdm+ zYR?|?aW6--9dzj|ROp9bjfOrDgy!h6QKh&;=p`(Q12zA~H@N=ITdUT0cwY>!PH)%n z8RpqXGzj^`CpJ!_2^e$+ONLX!GNFn=D}*e{I*W7kZIxnrb>28Wpor!>{#UqUdhsta l_6b$?*_f>y5vOJj)=5}5bk*csL(60_y7kq>hOt`1^*?z;2Q2^q literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..46c3a8695dea6f3e2f19d8f4ec9eddb0d50a5c31 GIT binary patch literal 1035 zcwUWDU279T6g{`ucC%?rVr;8bt5y@6#E(sVDN+%nR1s4ZDt+)pr^%44Zf3&nq?n&o zP%1w71N>3qooNYF1MV)noVk0>xgRt8>-UeJ05;L|F-O?wt8v(kMVgL;8H7gbI1N9` zi3Q;csb0y+&ahY8^5GHIXOa8T=#dHEj7+2zVZjWdwAN$9L|heK#)YqPe+!&$5erPXAp$7$QT{*(S3W%JzX5zlrcl2rBx z%QL#Ol^1rubfw$7)W%V(E6$DtrO&>Q1^-TQ~aSKa?;)f#~QxC}yGB>nMF zD#Nwx>v7VR&m%jl(p2}*7S6htO37r$W|2I^@~-N}I^{n0q#0;--#~*9aIJ4`&um?9 z%%1dFJEyd5wD~yX_@AIk#hwX9bNu+ob39=59v;VmQtRF~6k7Kmta>LX9y?x{-v!4f z%+oO{j9ScRHZGzHICKe1j#I)iqntx4j67Cd#ufgy$}zjT>M}m#h~)>ZuPAWR>whJq k6XfZ;OSW=KoF)sf&c?Q(+fH)_HK!uJ?NvqHrCP(?Kf$jEc>n+a literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$8.class new file mode 100644 index 0000000000000000000000000000000000000000..f9049f20a69b573a89d11f745afdf51b91546da9 GIT binary patch literal 1030 zcwUWDO>fgc5Pj3Qb)1GIgtkziKp~}x`Ebgqs0ax~1tG$R)T#$AuuWEpsk3X@4kAAb z353)Gf-64?F}tlI6(V62Pz`cLS_cHDqx;eWVX=&PER;~dxiVZ-2oIZiip(xs?S@Le8jlWT zvM&xJNvL;qPecbI3C;R6=$PRUTKQ}?ws|;<4WYD}jPy8do2viFpP_7>Sv}y{#v(~& zpRhc`o$0)^`>7}G-lZxX0)%9F7AO|ISyG{JZy7oo^_Aw!A98OO{WV zr(@I@`OIfF&Z7=kbOB42Q^7K$f<-Hg9L~CkOZ;t>V`g>PDn8+e;d}lUlvwoYUt;tF jMfz#QR!)dhF%Rop*ciHLb8ewwvxskV)v;lv)^Pg|jUNVb literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$9.class new file mode 100644 index 0000000000000000000000000000000000000000..67b6f737b1c503d55901cdaf127d67577cab77f0 GIT binary patch literal 1029 zcwUWDO>fgc5Pj3Qb)1GIgtkziK*6O+_;AWCDnde0L5T37w)DUSw#h0nb#^1$LF8v4 zfsimWINqgAyTP_^J`Ydu^rh1eHuSRL86=5MAgo)o|p|qL|^*Cu7)ql#Lp=_O5J>c1nM4ZST zVR?o-(|KX%Q&-x(OI%zbH2%BC(*zG|xbET_VIz~DB5q)bTY7htyxHv#@*?h!hf<~7 z#hxC=UHK$5Qz}g}?wghg#b-*%xNY<$kFUI=x{*%U!3&uVH0y4nM)0`H*T!wk4b^7P z_|(V=Z5vHK2s!>6s8TVffzcd4F7h1r7`=tVaiG+=^A&~0-FvIfHxxfxUYXwo%O}j! zPgEE+n9ppSM-{N>0+uYNgk?rKi&hvpoOKbG_}ePS%<8hO_?RPx?=`-lz(ueARg8Wi jPsg^{$_a5=%)>eh8$&m3&Mo*hi}*HI6&tqH8gBmq$PESG literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..097bd1f94ccab009be13ea02b995a975f06c98b8 GIT binary patch literal 12086 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 b-r%&iI_+_%y~k-!IPH+rKIyd2*zJD+&Cz3! literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f8d2b79f0166769f9b6ec386dfcf06692d8e90b9 GIT binary patch literal 1059 zcwUuLVQbS+6g_W^%hJ`h)@?d<>a^3gbEfs1Oa!eH26YOPeejFCCXY6nyjPMJv42Vs zHUvNT1N>3qeQ#q>Ef^CL?z``td+xa}`T6Vn4*)&1T`Vwck7Vu#G0(CI*JEER6=(iO zF*Sj|9}1}>J$>=KpM=ex3x{EI9$_T3nrQ#^L`O<8Eb4KTHM>-OP`Laq(Vj#y(oY$} z)_?E@ANVKk$6Sv5L!Cx)R4CIvVsQE@6do9sE4YBgGD^5ufr~1`<5rO(^UKx-krW4c zG8E}sK8yuJW1s>aAMrFY>$9X|hQzQ_+-kE&Lt1WfspK?KdDbdy<>DqoyRfGUZexX^@;(ZOFQZr-@PuZw z#M4op5RCdcRCyW*vqyGkxDSm1;_gc+(!Nm>G|<|f3}Tg$pI1VU6)D_Di@~Fw-x%*H z!&a+3cj{-hPGP&~(x*|Pe}&cS=KG*%fgTr2l=mol2Z!=NwX=PKa_7O$y7LW{uNGIM zciG|@VZNYFQHSt^#w9cW8(qeV#Z<9MQOQPY6gkAYf~&N*PC2u>W)+`N#^AlqG0G%* n<4>_;YVO2}t(^kT#XM|MVPoiy<=jQnvKZawYGBJsZQ$N-Hd+x_ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..e94a186cb93411a6d4d80b5ab0078971c046caa6 GIT binary patch literal 1054 zcwUuL?`zXg6g_W^%aX;m)@?d<>a^3gbEfMznFv}Z4C)Wq*ayGJTk>e*()U90D)!G3 zl!4&>0RJfQzPB-`7OV*g=iQuh?>+au{QUL(6u>r`F6J0E`*IXUDKCnQ>p`fMN{jGV zj136)Vj*>+$1h)WhjG2*!eLmSCg=;TG9A9nbfP4~ydES)y-nGBGpFAn+0#TO`WZvq z_zzw0Bmcz1l*@j&uk%FqXNoir8Jw<)g$IVk0GBZDqlC)=T$CA}G-gRMJ#D3zNbzPg zJQDc+_&vhQzQnyVZJ!hO}7cQpxd9jf%F({8tMTl@hY)1oRB>>y)y)RQi{B53JIEJWmiV2D#*%fp$CeRKSYDUqjujJ+d0EV zqd9fp=Z?;3J809XDA8}is#S9|2+h&sVu9iwq4#ho4wPG)-{7|%ZLK;d2)LdYT2HC(4}s}wV<8@A$eiWt7v`U;v6k_jMRSHDH*s?XZp4r{mJOBLkGQ zdX4|kMQ`~#9wuD&!#$nGvR^3D+-Gn)swX@!%=JH6# z#M4al7#62EG~JhX-gkxF$IQh=hSop#`$XVj1y@{LW@r}nDk<6@5D9--H8C=OIw>z`0=-P%}oKEwZDc~yFs zEuRtR8)}4F#3we+pbl7c77LbB!6KoOMN5PnQk}zj`nF6lv$|j_KA?!dzJfEDEu)096}YG}+;2{kWOCYCHm;5jj42`aecy_?^)T~c}ju{fe#`LZFTQsD3pGzf2eKjoFCi7nw#weR(t9vx# z0nZB&Gb~Q%(6}$}ypM$4$HK*BhTxz3eJb#ULenDnmk&rsQwQsf;|Owc@QJ2J{tLG3&fx~HhXZ8RA?vb<+n z&l%R5t%*ZF>FSuajW(T(68$QyUN^^s&kVr^P(1QexB44Xe2c->Mkh=4xQgmRiBB-;vr8uK)l5 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..6d6bafcf38b297b317afbfaefe4daf49359be15e GIT binary patch literal 1065 zcwUuL!EVz)5PjR2x=uq9LR%Lir?T$$!EgVRxg@W3!%!UfD0QNYC#T$C9eHS!dhUbfN= zr8vmq6OkP8lSnYsx~j*cW1fU&Jx)5tB!ATac}lUD=CNN~-pS9w_Q_4-E#7 zCVyodNEp@|&8gmx#ht-+(53@Ypg)FHtLBtYG((SzIm&w!y@o@1pxoN{gktOd=Cbn{ zr4JTYp?A^Z8DYMoN>PjOgvKS*02^J#g2j}vNKwH?OB6Z8x`M0pZJBarb7(3<7kLEW+#-R7!c-L_i6-QTxz6odc( literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/IdentityDBCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..d3f2e5f281568d3c234d3c0f36c0cca71c0c0dc6 GIT binary patch literal 996 zcwUuKO>fgc5PjR2x^@i-ftIfVEx0sEDNZlF6d^$k9d@EnM4OVPh~P8(>!EwI;t-`Fw6(IfLR|ETnymi62n?!+9K6%D#czo z?1}sh?`49a-c>Qr4tbuM^J&sC1~6<)FC*L{1Li|6l^hRMS+q^%zeYF**(AqCJTF9_ zVPS#-Gq1n%Ar^Kkg^QaEt$%LsjNoAjcU;_NXilvnz+EgexJM%Ise+7PZyDxzo|HpE z(KrXH%wzE)wa%TRJ~Hz&1iMm-yknXPaE`ef{zwerMGX9z(!Ya)nWoHP*fr8BCb*9I^`TX-LPGrQpTXX)+hMRF>d|Y;s*`%)3#VV e0iLz+utJ56hWPhSlQOqmTj&#I!y(7 zAZr_x+2p$vrA(}4tJlzzC%c@x%^T|!jOV7F+PfW>di0jO>vUOJ)2$UI1yJhJjBVvC ze>v@_tZGzHR_kQVIL^ex7<2`v4``C7G@OM=RMu|#0l-<6RZ(l=n1WBlaJGW8hx1Cq zIXG8A1%U#Bg1MDZq^jY=QUL|$X&8rcnptP%%=LxNR?}@TT5TC4Cu7)+hHHuMA+da^ z^fivL__T%uCeUBM!}1iQ>PDPe5o^!%MLHBrDrIw{Fs)KU3@Rfm@Pb%rJhsVqT+?Ts zgv@LW6+))Wmx&us{-tJ*Cqx8$o`$$!k1e?NNvHEPQn1h0Fh11KpJRbgA7)vIEYhF} zk&4Vf%EwWrkXI02wJl@jeap#tF)ULsalnxioH#Kq((qZ#B%kNj=JEv^;hIKgz2O?2 zg1deQOiWezoNmA8JA=+5L9GXJQUm-mX?$=HMD_q zN0lTwE+zy9sJnCyGh@{54Ot;nXOkrBLFm0QHsg=#cTM`TyR--4>eTK8DRGU+T zIZp>-^!ppQB8G1&IAf^K8m`1u^neHCG-Oi@8h?^V<9kHuT&v+aTu*7%ohgh`Fsnq` zOI3OdH*g%5GBv|n!^s7T1i69Kz-|>cv8M;BJdW+SMO5Ie3MQA(+g#PC;&zVCLBnnC z!Z_~4w_>W3Z{K*QZ(Ezy0C&H z<`UD8-S$Al^hE;kAr0T_7hUZ*jC>4_(56$U*dY6Tjq4QhDjto%E{@}2Y>weE-V!6e zBxY2rcwCMRn+>>&wKN#CdY+0Wqtxm+c3`*2+S3ZMm7}H`iS+jeh0;ktm0@C`T`ZNN2zSO!$RSkqf)p)g`?uFDBL0y??kDr z<6}a}FGr<>2LGD3XqSrjB9Qav#c>?J73KOn1snh0teI z5G(NzF6T?2i`Uy7cmzA~=t-rx>qKCB@Ut3JuIa<} zCjG{;Uff)l(r-I}JBs*DO8>6hJlKbaoAmE<--{oto85;UO-cQS`c4w`CnWW$BAy|A zAL-BOy@LL{r1u5%gQUNx9}@IeB>g7={V?gT>PH0qHA#OXpdTas=lU-M{cTBqH=rLU z{a5;LBw^d$?l|z_)}`ni4bnbH2&Sm8rX$Nc!I6{B)jV=R`70Igr~6v z&!7%_(7^p==tT<-AdBZ=bMN2~y74k!%&)L34&eqIVYrXtZoI}M9AWU^!sB?GXzyS@ z_q})zFX4T>%JnEdz?+=W@8U!Lek9YA2vQKHCqcQ7_>KRA(!RgqZ?gLTE-n8D{>gPd Yt==IMsq={ttOvvOaJU`|*W0L-J;y#w3 z2)^(G_@Tt#-9}+rFbN6I{qj7|@6TO+{r>S2Kp$Nf3k*ABS%gu-^E~Bx5^ANAJp3rm z3<&q9smk6d+$4W9R=}DZod*nPUWxY$1=dq0S3x?xPNzL$- zf8t@nI~01WlZMVHioejZ;I)O$lmdj zL@>05D&olz&tkK_2s&ms4Bc{Vw)-@kolAycT+*$ae=F29K(IYr4&-pw9dmUo>(~ z+eMEKLWTYY)@+*7Kxly;7gdUTgxN;-Fw{?n{)lHl6B}EM13%;U8NpJs^jK!$3Q=4q< eoH$G7VUvtaLt9pJA8o5*bepS%ZJTNX5B>o27X~;0 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$10.class new file mode 100644 index 0000000000000000000000000000000000000000..23893d937476a5d7b3f7ab6409e37f23654d6253 GIT binary patch literal 974 zcwUWC+iuf95Ixhlb)1?e1X^wdT1aUUE>50{kWf^lN+BQ>^?|pIvr61LyOF)A=x2eb zig@4y_$b8ewu%HqA`iA_XV1)>bH+b^eg6TVjfRgULVc*FQJjiAp9nLGjMix$oyapA zLY-&@HUv#K}ddV8hj61ImH zue-p%I8`ck=Nv8ZH{-}CmFCe$ zab`hukWG{}{cPCm`S2LF=8;FjsELV=CMHpmVabe>yxFD7gF>bEDCJoq6Z4$meXC&3 z-~<1}qm;{0bZm4YM};Eo69%uZh9UsNa)?DNRZzl82p?63r>!DI=9jGv5-AR+*{RTP z_-QH_8Uq#c^n~lgt}lX~9S%dgn9XL7hO^w{QpvMSP4lj;`j7l2%I>9Ak7hgJIu}ER zwK?u==av1>v2bUX`?$%_`R^Ie5&~@Ej*r_6+lBmuxQkVWm3Ohw=4FzKL!Qx4%3P18 znUIE>IaX603%kcqoh3f8oil_7QVQL-GJ>X9+m~^wax(Htn6aYrJ7_Tk)a+|(T2o)G z`J=w@b57esm%fJ*{S>TTw;u(e1$umxDIO4d3yBDxF7cggV40Hm;xnICK@Oj#I@Np^`)EggnZ+hU>JqK{30!;S^s`#PWmAS5!#!)?Z>w kqs($Awth~Wi3QlA!q(6|mvbLYm&NF|R|DHlY7-Cs0K8@i0RR91 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$3.class new file mode 100644 index 0000000000000000000000000000000000000000..3aefff632e128ecfe8347c89f3df1e4ff6900938 GIT binary patch literal 1032 zcwUWDU2oGs5S(k=I!;3pLR%ld8#8N85Z;;%KaWG4@ybzP|Bl7M*1pBEj}Lhkne}PVF~ec#mTS}Brr|95Tq=2-s3Pwf)qm{IP`1vj9?)!4p5!dr(*zG|xbET_!$zro>bQX=2JdxB#1AT?s;WF27m1LX z3OP_kHWW`IGpNQi>AtC&p}r@j$oj@Y&;*;iau}FAU?5i9&Ny)3s|z829^m`ELtJtP}W6UqHn7dGpozi@d-r?-wVE?My6N)GGm`m jWuL9t$_a65=3$+LO+zfgc5PjRYb?llZ1X{idw2;yyd^nYQD?&n1kt&5ysi+5TTW6IR>|M)VBYNQi ze+Y>Ri32}?ABC9RR*`^6_+Wcx_RV|qX8rTm_a6Xu&~>rEusxAw7$v+YGOnkgRw^mN zcjD9p;X#_ITo2N5d)I}-usIJr5n5$Be3j`~Nrojojf-}ln1_|9_o(G*EMxtQVbrPE zGknY6^DyCZ5+3P1mXkS^?lFTiP-EeNVL8AemVDH3DS(R=8n088q%n-87?tUX$Y1l5 zL@>05D&om8&tsEc6dhxnp`fFdZZh=#dt=3omqJe!v2UZp;L)sy#&b?%b>{E(!p=Et z4}H4s8vWs{*)(@f(E>d#>QwhA8qujk-=O#K41Vv?<8KJQSX6`FzC|-EvX5v|v|+gd zTt*A9(G^^^m;kF3)d;(WYgD;THHWerR^>TW49e?$h3}l<)?X6r6YA`fgc5PjRYb)1?e1X{idwBXVtd^kPyRD@JTMXD46Qc(}ww#h0nIJ?$*jp!fX z0)GaH3W)*Y_U)cF^{*z_2}*MLbM-o@d-lVxv@= z$M3|c4dTOTrnKozN71eik708jcr1*{O#Cu4iINOUW|HJlmn!#5mEI%D(?llb8N;Ae zlGA_7-}5--avUESoyhT=O#7I@>#30lz_1)*5lb~xa4Ce36>6_lwn)97NHHj;CqlpG zC#hg)_SKN5$6P1&e3A65afWs|3(+naUyis`@^q?-ylboeBmW0vhbEPAor@8}>YVOv zueE~@L*X`&`?$%_`R~SNgaGTfG`h%5Z@(wBA^YqNLzU}sF%{BK zKS!$2L-9PZ6Iz*ZpV;P!dnl#QJ*y;$TR)J)RORI5g)kFE3fpKg1k~><>swQ6t@-o4 zuyhXFLzh-wp}(9p8g}m#EzskmO8J1I0o{7^4Lc9dQ0qK;{0-q3hpN-N=Fkj_>?0Z! zZMa$?E~5#!=nAenOo&yADui9bHOgG4oJXe{PGz4m78P{9qUN39)?X6r6RPa9lUO?k c&LjeCQekW2p5xp{<{9 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..8a1be6601dbfcb919fd8b3b0e6db860f6909d20b GIT binary patch literal 1030 zcwUWDU279T6g|^yyV-3_Vr;8bt5&x*i65K#P>_lsp+X^6p`{PL=rkFUwVRn`cUH`w z@JWA&pa?$r1N>3qooNYF1MV)noVk1MJ@?$1{q_6DPXJqJxtL?v9LhZG$2`jtu1BF( zD$c?aF)<+A8z(B&-SHsUcHuCr&ms?nR*4Q@COT4*VL^|gEa*_>UZK)El=38!k$%eX zwplQz_m02kVa(+)JkV(*hlL`oBL=6d2EqfwVg>V9@KM5r3S3kf9yf~=nO(Nli=^1k z$HyW)Ob=5C|l=Nk7%|D zPct!KSf1g|bnfqd=nK1dnTu--?f>raG{M6fZo0U^uu;fQ1-G!o;J!J@4krnXqs-G` zJ{D3_8wV;+`{H?I##EiAJTyHsRQ9A4Y1aq{nqO^K_G6Wig%?7P6cye?lfk1lUm3e8 zb<~_akNlB$ViPVD-8=4ut0DaZ#qYN9Z*iiUZa5y>IZ__aCe}-%#0N;xmdEzSsT=pG2?! nCB{CX%syMOl~dwW%)>erHimB7oI40?7Ngr-4QyDcHQfCJ$L! z<1{>y#}(iiTheK#&vsv5Z;mp^B(&~7q$7#!|{!{)8W#i210nc_M zl2rBxi&Na$&I{Wgy3*}k>f;Kb`QJUBBm`K&bsyIVYnl8MaRUq7(wn1n|5b;O7fF9S zl*(`yyLy~-<#n0t2)N6a)@{NK z)u+$+)W`{K3oSkfIsO}{Qn9Cj(F{L6@*EEsy@tnepwztc4Ta|2d&}N;6u&rLncoG+ zC(P1ER2Vgx&upAW6>#VR796L9MMgP?mKb@QbrF~N+cL-O>awf&gd>(8G{2(2MX&x< mj6NYxpIxz~6XK*;fK?W@hHko?Td27#;@e(TthrJvxcvtK*9NBm literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$8.class new file mode 100644 index 0000000000000000000000000000000000000000..767c99100fe97a4028fe7bb9d5ed423809607dd1 GIT binary patch literal 1034 zcwUWDO>fgc5PjRYb)1GIgtkziKub!K@ZpqGQ4tb~ic~2;rJ^3Vlx?zdOzmCEUIYC% zoZyTELgK&=;71{5w^gJ7}+vn=6y>}#c> z%s&<<2Kc*iqEg+DN3AUv4#Vm+av-!ywEr^Ep^^-9dK_l09#tL`D!ol9k3$*iCk$`e z1#<>(`8)1MTn7HWPD2?KigXSboW2?f4-E5F%wn#B5-wEXqQ>y3U8KnLvh_hI#fv;X z66q^`6bXjrKn;0xz|+vI&w`E_4nwDy&DItTXTHUyk|(jsv!1E?kNi2x=DF2Fnr*_< zOpF*7r?@knS9U%Oh26W%#WjZRfA@Hj;9&(fUEE+;FXX3+TUek550A4wqP|xt^;PC+ zkjFx5YGq&L=}1vhiH#v7+J|Xft@!>YlNj zQdjNigFbU}O4~+{PD6=)3D#(sBSC0}9v5YbdxT!Yp*T?M-u;G3_ulJp#WxQHfT(IqTcP7RBMN){~~4HjB}1t|r#4)C%tW0laAmDF6Tf literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$9.class new file mode 100644 index 0000000000000000000000000000000000000000..64b14bc9a986750e196d5050d1ac823ed3ef8b2c GIT binary patch literal 1041 zcwUWDU2oGs5S(k=I!;3pLR%zUo1z4Nc%KYjw(LC3`c!*(EZe-!a7OSqo+TB#`W z--}ZN{QWplsUF1RR^NrgusM$$2(1$BzesebB*T)PgjuUcnTLf^?~>$kC`0{(;cdI1 zX84Yua6jTQ@DFtw%AioBbHv~b)L3|6Sgv9bOBIxGp$Zo@hJL$9lKE-t!%&KYJU$lb zD}EdahUQR>cyz?m(5$CH#|(#|Q_NJiO0;b|tu z46Ae8na(SFA4bCNUFPB%L-)UXJQH}>z)cr77`6)esp1w^$itf?RVU$CqywWk;4w|6 z%+nx`h1As1p~};dcov$8)n@94rhSI$zLZm?pi$QM80=_@!~4 zQgiM3^PZYIqwS(choVG(25U6T$sn{qkBc(JJwmVHP#mar?|nn1d;h_@^BvVMmRF~D z#qt>z*+(=8b%{@GTtpMF=n_^er-oHRC5zSwIi$LbEA(xhVrF&KR(whk!}q#hQK6#O o|0>2lq0BzpVryr_Suqcrl-L-$Z8dk$vMNTmxtiFrr8aQ)52z9g{r~^~ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..1700c217067ca1dd0ad30e95bb0525a02a3d819d GIT binary patch literal 17535 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d052102e850d57acb5d542ae4ed732150ebd39b2 GIT binary patch literal 1045 zcwUWD(P|Sx6g{`ucC%?rVr;8btG1>#N!3mBCKaKC3Sz86r4PQ8Nirm>o0+gX5%XDs zBKY73_)+4WX(?6%?k>BWxqHq%_uiTP`Rn@+0DEZoSRgcpY8v)qk){)2MxoIxqf9A}pCvl-63DyPGljK8v14Dl*Rqy?SO< z_r3Ti!dR$bcx;kL4Kqa=Cj_sf2QmO*xrjw96_CS~B7BqxPwH8c%uieHMoJz{$32<6 z6}?yzs$Ja|@rg(xyFL$kc0h#Ptc}*%JfP*8P+HB#dYZOu-hT?XMA^HvYV&+2B1z?d zusWwdTYKT~Q(w9rOnuxUH2=HP7lHsAxa;E%VJBlpMcl&*d!7ztY7XK^@Hp}!8BWJi z8IB+8Y0{U^BRj3iAG*i3bVBikQZngSAIZw{q3Xvv3wXEj|)C{yV5rvFC!(0zW?T91j@1gU4~8)ZG1wLi6FHb?+OBpB=Bv?}FnK z7AZi5QIq-1##K}Shpu78aY|Talyhi}k;kg*xWV7nIc8Tko#O#VEI(*|L4i$g|7AvH j5DD9|HMgFf-Pt?;{Pq0@fL*j)ED%~lH4Xc*NYjbPMq#FPoQCh^ z%z*H@oONQYWM@3^_gpxH&3W{p%=9D+Urw?}E5cGXic-JL+TEPu`<(PBQc?Dp&}-(- z>b?^nL>LP-43DxTQo~%4)-l29=z;V=ST17`OC=O=p$r!l!oy}Bk@>RKZlvUk>9{A8 z*P<6oLcOc|B0d&LWY(ua#|((Dlh>%f#{*jSh0H*JpB9c@N z2&;4anchnWpZe17VCv#3A^7i3pCx$MzzrAI3EMdxm2nd*1n=#HsULO1eHBGAoQ|c+ zxRoP4P5Sa_WQJAyBkjKFoKSwIluSCNjO0014^%(aDH}PI*+{eaHkvHX&Au|G6T((= z{#iWrb3)rkn@>c6e-5hE%&}m!z>kX}$2~@G;BXwM1Up|*3hv%(INwnIYe#ZSHgM-Rvmpw5 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..7ec8d0cc451a58c56fe8dfa64ad17731b018f0e3 GIT binary patch literal 1047 zcwUWD(QeZ~5S(q?I!;3pLR%=MK#EI~6mW|Af{Kt(R3t=zN=1F>OLa+3iNU#xY=@H1 zLINT2zz6VAh`no7QHX?X*_vC=?C$KHfByRZ1HcX%F6Ic0ftm!pNF>Qvq{AT9I!b~M za%w>EN>1C6R4#UK6aqdpW=Tw}_%pp1_CNKc-ND4g8lm~$oxTuwSjQa~w+UMr9TjmGON8QylBWmEKGiX|mKX70 zGLkCgZVvS%?#UOSnOEfxI9GbJutpw z!e)K;aXhzlM%zP+4@Hju52{qm$zU|ckBdCVJx0fHI1ZGW+h0*=K6tq5d_(cG<(2te zuzbQit)arG$$VzxDyo1**RW(cB`h<_S+v5)Vbyiq;BTuOGpn1n;&YA|zSsPM0vEmY nS23y~PaC$_${F#Zn1>oCHikB=<{o^jBEHR4#ilK_j{Cm>2X_m_ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..156a5d747435c2ac6b08609180799627b65148db GIT binary patch literal 1042 zcwUWDVQbS+6g_v%mZqz1t=n|!)M@70R81%BgG>Y|6U0u1jeYQoyta=vE`6^gso0+- zD1smS0sbiQzPB-)7ED6Ic{k^td(V9@KYxAy0bmDB7Yl^uP));rEYfr$vQe069jD=m zoEZ?llCw^%mF$cM{;ms$usM%Dl$oAn;hRYoX+>DdMp5dwS-YE4e2ml5qgc> zS=|rfqX=W6hT&nBL~58T(mW%=|1>HUfV|-m%dk$RP4_Z z6u}Sv0DqKt-`f~Y3nn4qyqj~+z30A{pTEBU0I-F+iy1<_uf{<)5=k-==^#k8j*{S5 zP7Db40+` z--u2m36-|)is(qhp;?~>9Wx-pMpmQMZ645kRVb|{Lp@HKM)#iv&QZ3`tsd}vM8AK4kj+H5gPy9>9Yh6E4b<624Ov;BOkZ0z)ihBPTsz56Y?VNkB3sF z+{d9F$6fh6G?Oa-k#pa)P4HhRCF7QQ_n!M+fByRZ1HdNgE@lYzz8VMJNF>Qfq=O*UI!b~Q zIWZvElap4Ym23@r{+0`eusV(2m#H45!Tu->wIa-=gD~-%tliEizRgKHp$gOIgibAU zR{Op9Ac9D!esGw^q3UOf)Q<^HOZTJ)!h8|4m@6QMOGUUS5uVnvh)kC)w?if0jE5Z= zABj#R3Dvglis)Fxp;?~=9Wx-pMpmQ#77u9N7fP$iP>++Q(fy}^3zW?ZtH(Uwk%$x7 zBP>qwXL>K}e(FlQgNch9gvNh&`aHqI3U0f&MOe@1sE9jQ;1=JVBnM3XsAKLdFXH}q zC{@bM9O`l0l`lgxuF4;Yk4*1`;wzZzz7YyfVKF zmQR?aC#W!LFrV4Dj4EK!6)adz35$$!7A-MyIO{5|@wa7;nbmb$@dZZ=-)nq9fs5Y! ns~GJdPtRRMZDv&?Pw~2Kz3uor-)G z5(tS0K7fxx>|LXZLL_X<*4%n#cW3YX^Vjzu0Cv%Eu|Q}H)x__IB1y&~9r>x&Vd8(3 zQv>{0a@r2HlI>_v+jHR%Hs{fYGS%bMe?3kEtq4o$C`f88&fU$Je4j;60~Mst2)%k{ zRriB96@Dnx&_7P&Kn*iR8Ycv&tq0NrVY!G!EESN$r6OFE2v6!+lFUzA?gmO8O`@KR z--=!+3DvIdi||CmfmzRjju{YPC#%ug9uH`_CX`mwNKcZM$@@nmb=nXg+wj?tDY>v*nff zU9fz@B0WciQIq-1#${9ii>_eBa!Ocbl(T4!k;AI1xW?bsIc8SZZN(QHF?_H21qCj8 o^RHsmL7on5v9&Yec`*;0oY)w;Yc=;!vnt}-Tvcq@QX9Dc8^~!6ga7~l literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$9.class new file mode 100644 index 0000000000000000000000000000000000000000..2a7f85e20e5b243fd9b17a7747a9df390d112cf7 GIT binary patch literal 984 zcwUWC+iuf95Ixhlb?h1v0xh=!Eu=I_0jG~u5fX}uK%{A_FP9iKTfXJ&u={PrEd4w^0&2+g4?!YC10HWB$K%(YIk@S~g> z5WbbuPNJ3Uj0g2y7Y<=#7JVplJ;}qvNgiuOSjtCnR&TR*cTVv=PI?}zIDbJnYRsM0 z{UA<7m;f%HIF4zP$NA0=D~;NmJ_t1+)gr5h{RE5?19z7zdK z5^7x?iR472u{mD^9b=xbJ+F!SE}LJj3#HX`tc$E|bpL7K56TWtYa-H24hSnV`ZwMB z`=26d_mR1{LumbXZ9}aXi*#6wrOLUPV_l?? zd=;AkRewu-W_l+CZ=~mHfG8M}%1e$Ime=|M-#NqGze>;n%G9$ZR?mr-B|L1f Yurcw_<~%~(X7Pya{~9)JsWm+Q1@B|{M*si- literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..579d75e9c45c290704b3b51f353bfb04bd0e98e7 GIT binary patch literal 8733 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..3e58af399ea7d38dbc446417965fda1e0898a2de GIT binary patch literal 1050 zcwUWD-EPw`7(HIY(qy6S$~G7{NbM?dfIb!y z2#E_GfJfp2@!6Xu3Pnn!M8}`cIp2?+AHTkR2e6Bliv@=EQ08Hj@GP5fJqoo_Nfy2n zQv<^1VtPP39|pbgpwV^VFl^4_4~13}9lo0ASV@LOJ&LnNhs^s$-SABAy)aG&bwApkqeFuv56xMwdpk)ZkLd=~(4i#~A-p!3<@0X4Rz$Pk5S% z0mJH?22Jt){>MnzL(E)U`_JW=IqY+RhYj3xaf6{*w50&Iu)^RSPfSFmR9Km(!+b2H zrdkeFo<`znY{s?xr|yBNogsK8rAT`wk)Tml_hpo*j9Pgi^hlBWT{Ov^$~`b`rwrT8 z*4%lYb#zMGLx(O!iGC4QtC^cYXn|fAWr}-*-oT+aP-)-$0>8a;f8F_t;FIN5>FZlQ zBhF9M2(^h%Y%HS=Sab<1mQ%qhp^`;wgd9>`#ueIIrnhPF_kK#L1bC^)50s0ax~MM4CqRMdyQpsRCA49;C-Unu!3 zBoGo0d;lMX*t=F0fgstIt-1Bg&hFm%=dbTS0PLXYVveEJm*Xf-d7h8B9z<-r zi2>0|F*%?wr@hXw7wo!l7&d0{`$DUcj^2!Pq9ntD9wd3trsUnC+4o5GB$0`J$`FUe zW!?AuBac!p`_ZA!64@^lX&x~+9n}*a7#1s-$AXU%E>+;7%J4WWl4N$;S~rp6^>}z9 zvbX#s6%388ig|j(v&5{=gN_*y!*=0LgIyZYV!)-6lc5^tZIk$)3Z^JKQ>#Zb;StYr z(PLPd(V!{b-~SW~yNS7r>;E|%Q=5Gu@UV_sE^ab}MO&)iHkKJG@1!`jL6uQ$WuEoN zLm@SlbEw8yES@K3VoQHYADZ$>`a(*Pb&QvwY1Z~-oT{9qj zw!-Gjk)JnpM%zQ1&P9p-5>~I9!$D|{9v5YbdxVbRP#mbX?tg{f+J3O+d_(24<<;oz zTRy`)E1^!PMSNmo2@Sxa%UHIYDpm-UELtVxkm?Gq(zi8=nbkGx_>3Zk@3p?bC(|2$ mnK2J#=3BGXGvbArhYd<>8rrm)I|!_b(QU2k zkU&U0@B{c!h`no75eSlP*_vC=&hG4;fByRZ1HcZNF6IcWz8VK%EYfr&vO$n(9jC#m zoEQ+il#>Jg^0C($_UgMX9Kz--eqUyKlm%}_S)>(VAsa+#z0Km?yy|QKbTB8klUJm{Da5w>$Xt?%-P7VAQ3H5ux0+BU-fbTCEPnOZ&K36DgQ z${t~LhC$POY5!9w?Ixx!uKnk5Ol|f>f`<*KB|mb%x5;1Py;Ml#){>XvC61m(HbL%vo7Nbe_Q96SzWaipK-+Sz1A0$xajr2 mict+kTDHa3&WIPqJZ!SCF?8GJ+(F%D5#Q#jVat}A+95juQVw zP7Ls$$;knK`Pl0Wd-Yux4qLiPQ_G!9iiQ>1xBa5}mtJrEX)n8!i^Ib0~hMTzjBktNCOwB>H7`Te=e&tKnv0N6px#vDV?m*X%>c$STLJ_vKAk}NzE z6Ai*wVsc1dKK44pp0{hmV%VIe?~7cG^6T zB7MtG6T#5vs)#4YJdO4Gg0%FA7`6*{>h02q7CkPNoD9`CYir|wDwvY&OsyW%ghxEh zM2}%*MuWQe%KoQFm`%)V-2BhsnA+^i00-;1ZDWJMFWQoeJ6NU~PtG#Ksgz19^Rz!6 z3Yk+iM{1l#;zg_nw)AJ@BV9d%`%+4gc62I1!>sMgC{Y~J4vq5N%9vfxi9YXJ55f4;@2VYSMwjZup-{5{Wx*EMJ zM$a(MHc%%Nke<|7LIW`9Dwd6=iWNd7gH{Py6m<>P>DwA{dUeBOd`^tkJHZ!JDCw=g mk}(fu)-=gh&xM!C9Bh)YZfMKI+=XYN7~T46plMRAnhPF_kKp~}xY3r1i3Kb!ts7Q!VDi!sC7j$(_j={N${87ly zLINT2zz^U@A@;6OMIcDFWovFdv%9l*{`u?s4*+{;+n8hULYezP%+qwlvw@!}6{r3O zG1kC;DaOb2^JvqSPUDp_@T(uDDz*BvPemWg=`R|%?>5+70rG?swa_*vZo9| ztGKN9o}Y6+<}&n8vLupWp-B6b!Ro5MaKNxw!8{gRlyId28&!tKts+Tgr>*rODUR~t znMmI7vsf@RdMe=YDNiE3o&+sDB8Kh4PMiBQqQxecN{)vrPdhsCKOIa__NG>kXu>0& zq@vHTGQ*&5-aY&j2(yW)jhp{D98;TpDR8ikJ2q}Jw2E4);4YTQ#=B9X&ZE9ax>|I^ zhcuruPr`gCWJXP$s5}Y8^GMHa>CXha+5|)8g_IMqpqbVVWe}^BJiQXxKv9`3v=|)f z`&j!=7&cq&nS-BLyPzGQL#Lxe{|c+u^${U7M~{s%#T`O#VNo2YdJn(C^|p7`tZ%4% zHoO|WUBhRXXIrQf@`z7tETI7ybQQ~nQ^g9Ql0mD4EK*&=b^5kOF}=EBDn6r#<~!aO sxK#AkU&YuC%52vZTfHD&7IUyciM647MspucqhfUHtAR~ZY8?-L1F^;tMgRZ+ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$8.class new file mode 100644 index 0000000000000000000000000000000000000000..9a72fcc410913ce30fc0dd2fcfde6a99d96d2b27 GIT binary patch literal 990 zcwUWCT~8B16g`(NYs*5IX>WC@UD#EA$Kp`!3GPh%BLh}4e=PD}Ts2f}=SSZniZqiw!r}x2 zrd@ycb647xWG-(1XVsThcah*>8TVY=CDf)h5#T;n2=0kYJ38Yr&@rJX(r7f0D(7wv z^(gJiSFstO!tJ~wNf%|nNpI+SK3wGL}zSfPv(8i`WvVbJZ|{F7*7f7wfe*v zpL;r^?V!nPFYqr<<+9m5qZxi&6gloO+UHw`zd_^CDg4If<8KJQSXPPOzGV|;sfjY9 z6{{6s0TsZaYq)MX0Tvk*n7f1<9J$FchflX`m6sebEU)nuzH^E@f0dx8DAF@qV(E-{ cQNqJ23mX$_Hs=AVHj8I$?<-ihrIzvVHygD32><{9 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..13329d4c31b7b1c5261bc82c96cb033909bcd102 GIT binary patch literal 8305 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ec625738595f9a0a570e2f21076fdc4a47bd8404 GIT binary patch literal 1017 zcwUWD%Wl&^6g|_Jx^_bnLR%9djVcu)VOzG&y*~Hc$6SB^{q-Aw9@;(@7`9V2jgyQQ#e|ztY_!gb z_?SnuiRpTcsif zZ~1#3XI!Q6zR9IZOL^J{3|?OkMF587D$ZarL)iT`uygy)y7vXukB(QTcj)+xI6u%J z)FD2xaSlzuq4QXAoElaMRUBF)R7} gTRSG6Bnz-f!nUCsE@lgni(+)!tBGxwY6Ca_0AqjxnE(I) literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..c0b2cada66dab0ff05b44aa213e1720854410108 GIT binary patch literal 1018 zcwUWDZEMp|7(I85OOw^MtJ`$y)NP$>>r1+RlZhZ@f)Jgsu@8Pw?%GQmm);wa8?ir2 zPy|2t1N=#T5TAQj2GfEGB%J5TIp=xF&ClQ8e*oA++rkuk*>NNRRnx zEEpQ08u0jpr;&+gNyjXPVYkST%^odgsmZ01(}~KnuJQb*_$A8TrKm@HO?aA#A;apN z*-YR5!KZ<+UoCTSi=p%1uX`czuz|ZS?l5c@n5KezSYdGApJm6>gjP}J=_sEFsi}!0 zm8S#oA~Gwg%mj~3zZAZdQlx!jE@*SL138FQM(w{6daTHH7cB;lT6|+hP3g?F+H==C zo8p|dk1m~o68!?KUN;AU&;s2q%9QsAy@f-0pxSxx6@KU8qjl#SDxWQ{Mo-`J8F7B0 zPN+kCVq+N%z@lqdv79Pa36(5bBjk|kI&RRrb;_COrmgs#GKTMUzQCuVxBn`}fHGsY g*xEVqqL_zGGByKkSh2nt_F5&sSVu!18d&_F8}}l literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$3.class new file mode 100644 index 0000000000000000000000000000000000000000..a9c4006f857eb727e2f159ea4af8f5d938b04b2c GIT binary patch literal 1017 zcwUWD+iuf95Ix(tb?k;DgtkziKxs;oaB)hXP!SS}iiBheqR(CEQ=sYd7e+W9tB#dG!Kr& zi2*^Fw)N&Ws7<&Ib-Ln7>Yq;s+2E#^)ZfdxNB`WB{asKvo$WY~3T#SX(RKtNP zvPe8j%!F!F{sU7kna`yZ*}!NE8eC&fMyblF`WHfv6sc~Z!{AYcuS};Itz4%&bGp+e zPHDU7(+X7R4`9uv*#kmz^th;!-y`%64*7w4@9sDFy?ggpo$si9vAhPoeamN!}oe$;ZxGMW6QDNpB!!Re`?@W8O>V;&1NRB*|Mi#o&Oc9|rz(>D5v6t9Z$vB=)= z<5V!T`f9+_Bc3J3o;n>f7>4aKO$NI(n8kogB~Qny$h#)zKjIfCI~S}+G}j5waxr9B znbDi6ySD#%And8-F0M0#|2^IF01xZ9<>Ds8W{GZm+{QAM_x>b5AmS&LQB_r*#l=`i zO@$n)A{&V3i5ZhW4SHy5Ci8`qBI_9eLDOsO%R#DgYT>2OBSopV(Pr?d%mdSIMtj%p z%pCEwlQY^Ly0ixs`VCmKX_kS|96c_o`sdP zS%M~iMrIrrXkXZF|cA3p)?qU~aiVS6AaVVv?jA9FnnwNhyw zeiG*fgi(^~-l!k!xo{XZW>E)1tFaE>jCGYSNIu+SF zewqq~MxuJz2gJIYyVlvpH!7K(`DtSIqle}wk{!{!4W%tVJ3C(rPvt0BU znlrqazWsyGv9PLM*To%%tpaW;xQ8Wj@L`;(v!pMwp5Y(z5lyAc zv%zE}q^5q3)Fg|=%fw8pGSxmdt<&sKO3f3?6m+*0|2- z__f+ICp|TELEA@{jzfw523D_|GeKyM9v5YbdxYM@p*T?OJopB`^YGD%^Bt8hmRF;< zZ}|-Ktcg0I4)KYN>u3NL-N2INRM8|&Xt#TOJYe6RBrJ{4X2 ns~B5FnXTDk%NNAUVjeaqu`#r1HCqU*iqUPZ2DWXfb=?00Wbg#^ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..02364f5a3ad6a9985ac17802448e7206d0c0a5ce GIT binary patch literal 960 zcwUWCO>fgc5PjRYb?h1v0xe&qw8W)J_;7mZr3eW{MM5&AQc(}wHqOd1IJ=R(uISG~ zqC(=p58y{3X17r#AQCy)o*ln=Z{E!Q{Pq0@fIW0wEHUh)vWk+Nm*te}aio>X%jlCh zH$fCD_edAAU}R z-9hQ%9z*ZHySggyuz^h%4;b1D^dI0Mwiw(qQ4Cc{=Gg~^Ixo^{BBZ89PE=JS;&o;Q z6U>U9o1W?TMoLi(jDVndH4bHxtCB3d6?&|QdKVoAkJ>yob_=>io$lPB&YWDr4$!AP z*XUBSX45R2q9uA<)G6;#bVPq0`Ubrx7w~&epM68{#iAPY_AQ!WnQfv;(U#>3a04yC zMmKTGVgjsDR3q#K&N^RirZ~Bbxw*UYD literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..da2d5c9f35ef012b23f1a0e68c01ad4ad8ed88e3 GIT binary patch literal 956 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 O85cWay)&+}$A1C?JkWRm literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$NoParseOption.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$NoParseOption.class new file mode 100644 index 0000000000000000000000000000000000000000..c545200c6647985567803364ef761648c8c0df9b GIT binary patch literal 1130 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 UWqt*%9X%+^uR?AT?Q4|rKRS6MLI3~& literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..60939a6c41ec4892dce7f5f915a92c004db4e9d8 GIT binary patch literal 2614 zcwUWGYgZFj6y29ZCkcZb!(?FcaAu;=+IQ`{ z{qDb@uvWmj+SPt?t^TO4o;x#v1jEt~>7f+Sq`VTDTw0OSCWA{WC=4A5Yo}zY zT7(RWN*)PXWqpvLF*-Xjl87%(3@76Z{={CAX;UXpa%qYc@`fqp&6K2-WDgo`RN-Az zVGC8*K^4w9s2G~3;?t9}Q?dA>U8NSwlx!4AdRmT_@)=F0LPui5v9b8b;^^d5a(HH% z;;X!qQjuIdLupOTtL6fm7y=>=;jjQL^KHqGPLeFj!8zA)bybjeIoi1W;i_Li0bYc?@jU0H$@ylGd}_~ zFHe+mOR_#AEpZ(FL?JC{DM?rPyJhsjg|~UCR?1*zRXX|$iPve|L7Sq@hJp^JSbJRE z7!dI;uKEb+kcjIb=q+j9rg|xDI@uYn*2!08v9C$J3Ic92bXPT>Y8Yg%NE}~F%SBTy zsMH`O$;h+7z=IEvUuxDFi0B;Yo~am#GVYi310 zyCT+)d|?+dtFGYxD!BBnrB%11X@H;p;f%rYFSr}u&ncX^*@DQoxye z0UK<98bi(mmevFJd{8jUe{v%7C=eg1SfoIP{?}@F2f?5R4@mF(0|BlLjW&~yHm_N@ z%iB)R^9m0|JmOZ5S+HaIXj>QY2|rBtGTmhXk1MThl^EAFS&_71T`A?{yjj)SZb?^+ z+HZm*IYUE^lslO?pe4ycv{k5pn8Y_CzQq$7#Si&cWOAAJR;=#jR`5O7=?8|>^*kzS z@T5QSq|_iRN1Z)w-OW*z52>cggbDL-1n7>q=&R}`HE00SQwIci$m*r%25^;VQd)Kz zd$b;+-4?Wxho9c=SkXYIpOw+JgOgkI=-WZp7A`(V@4ROlp)Evyw~}3=Uq6)s2GEEh zw9$MzgR6MU+U0-!yNNH;%6PfpHZJdl`z*&{N)olgMB52h@D8nBKKh&lxfeNK~b5ra~SoZ4@``wCp4m;|!i`A`*OtSOfmX zc(U&WLctx}ndtW?%9wZxZ!pA*J;(Tb|2Afl+`I1?=3JNy{eyet&=)G>{zjksPq^k? zp=tgyw+ZPf&TpdgIh1+7x{XyruKA1f(^rO0OBtmy*7%E+pD0{I9Mkv|qkN3fYLkl6 z8G$TKWNXDN+L1yh=IG-&k1!S}O2SPV2BXN3$1-M+C96tLD_E!XF;*=hf;L%42>$dL zJ|`)fu!b-2B~@$3S$sviF6xl$6`9D#Wt~(s^a7_jo0hH}eC-fw=_=zpVzNP6fe+xL5VPB=A`m3ovh`;6&Age}-Jid{{{YZK+rkA+ra9ljjvL`jB4JxYq8OUVaiv+q&V<3uL<2}9H> zA2xW)-}5l#G7gV4EySff?PCU~uZF?{!*UfDu;`;qFjL-o0oBJUe9LF26N%P3U^wev#gks^h=Xfb$H@}X%x zXV_`A=g$1Bt5ez@x^yrqbWK>JVNM631^Qepk>4Zq8V>n^TIb$Z_?_MRo6a{>KU-d% z{=Vfi;!M#X)FD2xv5F>O(M7CTP7UjXDi&=JawzH&F4Nj3`HXeNDn2ET;d`Ag@JaOA n-(nxBxKCDWn}%-LnA-?!6rfgc5PjR2x^@jo11(<#T5zco3Ql`1LPAlIkV0uy)C0GTvvLg1Ze*`3dgTIt z2Z;)a13!Qtg_zw|6@?(>V0(7~FDp9-zUI(|LYnUV~%dYF}Ahs1l+s&5nPX(luMjA1{T zp4NNEk9eGOnZ^g2F475^)**w_RRiIHVLrem%=)O|asU@s7}ld{Me4mwirs3|7sVUi z&jmxXrxKnY@**?mv!r9}Gi*%lBHSYT^C6c?9*Y zRV3m?W=6E|C-aHvo*{TCr6{_ll%Vm|cVv>QlFYmkdZ%*d<)2%niypbh>G)Jg1C7dF`+8ofF*tyTm7I=(8=cbP7B# b;bE18jfwk~^8le`(TweV6Kl5AG9La0SXuk< literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..4bdc2e6eb968790da00d440fabb3ac9ea92d81c7 GIT binary patch literal 3871 zcwVhm`Fk7H6+JI;JhCzbG9e)(X%Sh#mgC4t30WK`5ECZ`ISx2D*eqczKg;8cH0sRA zj_F?ZeP04}qe}`cTL3v=poNyDw0~2-p7%!BvMtBr`|2O`p6}e{+;i`{?|t*%k3I#k z9se<~M4&O7FQziC9RvkC97%*SqqKV3F9^$FB}3 zA%G^<;4*;*I*J4W+ZyM4YFaqM1_)ekVj1cQGwtN%(PC~;`p4}-S7+;GY`4$$9rb@% zSieu_8pl$6-^2#QnQu7a1Omx)twkbfMj$n>0;{V*?o-G%n=lX~!OC4k)iRnD3j*;& zr!%q;I$l07&?K;G#>MoPI9)WG*ouw(PP?vrp%^lNv~$O7-_A8)8(Iyd1lG?6-r?nk zoovy!l^2sexPyUjICSvV!vbO;hHC_Nv=mf6syh-R>?T+GiE+nu6U9I#!V#Gm_FUH+ zXD$gZg1J`}^jZ_U6r8$Ya&2Ibz-4oDKUj3!A?e4UIxCTA874{XaqLFBVtb?79WZen zu4gIiLP4rdZdthM^F6mI7ab;UP)!&Mz35{MolKJP#@ZG2M@)37w2d+84|;)AHaDrT zX@L!m0}DG>B?@gnG|(e(wblw`rszB2L`t!hQZ3*NI~hBa6_vUfy#{U(xMap}&)}%c zgeH#TR^nuj>%+rR&N?kx*cL;#qW3lv{TQIO%!g8;B7`c`RO`1G?jZErw(V@)6USY+ z+rUYIEf>b$X=g&upDW zSzpwi0=pX*ODA0=lQtD+6@F^sXR2=udD;ne+bloLMkv>VO;lsyXqTyEKCu`kp5bu~ zWFA>%e9?60xC)fc7Pfx18A}yTnN+04!|;HCM|c-hQ_b-9^YYQLQR3s2Ms_hg#%R-H zEslrrgeudM0&A)?^ME=tPYbN59PHb6#_=qkH}D*%_l0hQZW#o2R`M=<0WU^LMt%jZ zs%e<9jn3c|11}3)xhN$jUR6`KftSD$Y3u3w>$%9URSth^;&?*%A_*SkJE1yxlUeV9U=pnXp7QG4+r)*cAH;SGXGC+d!cPU@xOR!G88M&)d zFEp<8{B3}m&&&B=D_8YrTA~E=JgoPy_T91_sI`Q@N2u9}^;)X_HcVTmxGMW)$w_=~ z#;jfoBNH=Hz!ii9?ytngvhjXuD~I*T<`1xGZqQq3)2ltKiL}Zd)NTt?P+qUnx>rLb zM>4h72lXE4N+#dOrV^6p&~gUt=djlLK?ys#PGNVywRaNxB8B}W9IW_oDEe@?gd3v| zGr-nq9{U-504s0@f!#?4?jk>TSESlC4YYd}yrUZ4$K2O(J*HtroLD8({43F>`;FG;`w7X2%HtvmQ% UI`TL8H&=_hv%2^eC!Sva2jp8NP5=M^ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..32dd134b2d6d8c68bfc5bf1483bda2ac345648ae GIT binary patch literal 1041 zcwUWD(QeZ~5S(q?I!;3pLR%~owQySYNHf-)c?Weuz?~jg#|dG(KK~$| znmM8Ep~c4`$A1P@D)vk;THwb=p5pivUWnAHJ>m0MItFGb`j#z%s{DJ}(z5Z7*IzXOY hyJBl6#Is@nHaW31wB{yHXpt^BXHG38w%6 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$10.class new file mode 100644 index 0000000000000000000000000000000000000000..1a600bfc43f52cd8c8a1bdbbd69b49c380666b36 GIT binary patch literal 986 zcwUWC%Wl&^6g{_b>)16U1X^ANT1aUU3QpEVNGK{2QYe*Db-`|u42i*+iR?*5zl9Ba z0umJx3qF94Lfn~F6@?&WVf)PWxsP-1{QUL(2Y?ppJ{Aa#p_<11ROIofI&>KQgWW(uLD#OEc z^)&0t7m0PK{72#wJ3AqIsg%sxwvlA>O1r9`>YSy#l4hj2{1$42fXCgpvNOVFZT96l zQ*=t(L6etW;OkE1vfVtR1%7-KIUX?D|p8@Sr}h5!Hn literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..bab1439cf4b680f0c233b29d0e9b098cbbc02e3b GIT binary patch literal 1048 zcwUWD?`zXg6g_v%mZt04TDR%csngE2otm!SWFm|*L8w2VGH_ocO`mBreXk_1;{Gf_ z5&YmE;2$O4_cn&pf=Ng?@8;Zl?z!*f=dbTS0PLaVVu8?#c0;@27VIA$RFr5mQk)q>xkg=)JS+BESIr}r4kBQDZ@pD@Ti%m$o#U^ek{d{*<>iv z*TFCmgnD0vL2?wNv00x59Wx-pZeF8}E)QtA5lAIZCTf;-Ox=GPxIo#vuGK2+o4DoTCSfP1qcUz|m9X+Qi=%@iQfaKm6GAaa zquE4A&Fu`-EDgoe*bJ=pN9sekX}$2~^Ja5xTB+Phy-YTtjb;e12+v*lI! zU9x<_A`MVu)Mh@jaS3(6qRUvdoC?+$6)ak3Y95btHR`Gx%hVQk%pv0m# o{t}}%DAKVNTR$b9i+R}M!p6`Yn{yWpn?-z^tB!3ewTXMb0cdgzs{jB1 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$3.class new file mode 100644 index 0000000000000000000000000000000000000000..3b60c0e86500384f0a33b1dc6e70528754563c30 GIT binary patch literal 1041 zcwUWDVQUjX5Pj2Jd$}|=F}BsJRja8@QuR{%Nh*Sb3PNm!NI!@mo6DMy&rRsAF9fo+>mey)^EJGO@8Ay)QPl<16IypU$3S$PW$LcpEAw2o84W@Gk2 zJT-Gd+e4d=LxKMcs#fipU^K^%k0QqdMz7&<99U{?e?_Tv@BW(i4du^{SK)Wb@d@+v z231Ba<}(`?Q3D*hgk{HB!V05;L#vED&bo{%{B4b6c6HTNe995a4_aSP;-c68Dn@-2 iDRRYDPl#v50&K9bHFVqM+(F%C5#RQzVbhgb$KBr*k_o&3 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..77c008e29e56d20717dfc23b78f4da7d3a5b8981 GIT binary patch literal 1044 zcwUWD(P|Sx6g{`ucC%?rVr;8btG1>#N!3lIFH#XCR1jhnB7N|sOp-BKyO{~Q6Sbcu zD1r}ufFC8^nU-QT;O?@^nY-tnd(WNOpTEBU0I-9Gk2ykPsHR~*7HK*WW)vE&<1{>$ zCl-WV8NX}G#I(nQ+O7|eus(}EltxcX_-bMztq2Qd6s5HmYj-k=?{U(TNJZu;p;ynG z)p;*Ih%gpv7ei*Nf1C!PLhMLi4{neV!0t4Yz&VB5Y-JRKy)D5rU%$Q$Om2`^t-CI2}u6 zxRtJ+CVlxlvcszUk@nDbPAI-mN+xYvM)DlX`>G%7l#RTUW~5ns3w0LfW?x&=31PE7 z`z)UMIi>BP#U~=iKL=GR_E<2QU~4;v*VTdU2uHD zJV{g-HJQ(BTt*de=n9q`r-WrjIfqsld7O0>*ZA8i$L#95tN4r~mLD{~puk0M{#A^Q kk*C-dTRA137Yne?!q(7+%ejl1%Obw*RmG+&wT64Y0sQ+5Y5)KL literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..f19ac62642e67802827afa2e4ede710a70977a67 GIT binary patch literal 1047 zcwUWDU279T6g{`ucC%@0Vr;8bt5#E+r0S+ZAEY8ks361-i1fi1nIvPfx|s>Pv&H-@ zK@oiL2l%7JJJV9E2HahCIdk`%b3bPG=dbTS0PLaZV}Z~dsVp4CB2A~lj6;?`}@>0~S4wRAinI`i{u1|xW9S~tRZ=>~n9?)`KD6M7_ouzH-`%eMqD0}Bt4|%>*k)(1+ zSew(It-W;kX&~JWrarC_TL0bYGeLk&-1KpSu#>Z+GHzj&P=0qT;%FF|85cq*ie!{c zq%vGhPiM(MK8x(Us(&aS*y36FTq&7!Y$nO0tQ@LAtW)mgg*0Q${yS(8026!`z3YSo?$MhpD-C~`bt^cEh+ftA+oSCm@!?r(VCQ2y+A6@Hf- zpRh;@RYoo5GaDCC101@9RmWMu8l!?k>x?{BUB(suw!tyGy6Q4M<%s16tuH8X((8XE lBZDGkF4_7C@hn+@EjG3d-FBKgs5=$$ZLb=(U8+so{S8!Z47LCO literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..066666937c350626f020e4ccf7ed720fa0ed404e GIT binary patch literal 1042 zcwUWDU279T6g{`ucC%@0Vr;8bt5#E+r0S+V6r>_Zs361-Na=$wGD*f{?PezIPSiZ; ze-aeI2Y-M+O1v{I#cIIaWtTH|&pr2^JF`E3eg6Sq2X!BFg!({D!d@)WbS%s;G+M`L zcqFG5gdG{bY01R2M*Zrp509`hi$0J>k4^YuY$B})3uYLl)h27VGm7tV(!)qa<`JP= z%beAIE8dAP7HSZ7OcJR zE0Y7!jU}Pd);$p)iX^h@lb~k@MA*)1w7Sa!TC57C)pVpMY18Wd)4&e?_5j=kA*K4aLunSK@cU z@d@+v9%V)i<}(}TQ2`vffMv&7!V06DL#vED&bo+8{B4b6c6HfRe9RHc4;o)k;G$Rm nDn=iXr%$ff>M`-OSbz-{wuWxHoLi{6EaKZ<6>Pdv>$v?J2Du8a literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..59ce68b19d5e0c2993a41ff5255b758ac77e28eb GIT binary patch literal 1041 zcwUWD!EVz)5Pj3Qb)1GKgtkziKp~|`3OMCbp&}#{6$vR6M4$&QXp=07sk0l|8$@rM z;CqljNF4Y8J_<3rtttwUuq|6}$8X-un_d6>_5BBcE!2I?5b6Up345_f)3Gqa&}bc} z;ekA~AneHaO-m-GHR@NleRzbmY4m|KdThd{V-smbm@~sDtu|S^ol$&;lkP_GDYh91h1w0G5}$|h*``Pki(fGd@K;|)v}08mo2p;CHE$y zu1sEtZY&9vw(f~|UnG%T9|t`-LKG4aLunSK@cU z@d>l^0cA!F<}({-Q2`t}hegL(z!IaJL(7aj&N`0^{B4C}c6HHJe8>^Y4;o)k;G&oR nDn=iXr%$ff@)7Z*Sb#MawuY{|oExaREaKZ<6|B2btGM|aJSGYp literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$8.class new file mode 100644 index 0000000000000000000000000000000000000000..ae973fbc56484106cf4a0d735d1545ed8852ee79 GIT binary patch literal 1046 zcwUWD!EVz)5Pj3Qb)AMJgtkziKp~|`3OMCdRD^`0A|ZuRDX0f7Xp=07sk0l|8=#-S z34R3$gv5al;G+<;+p3}v3EQ&ucKqheyxH~7U*CTK*h1aM452~NxleB4d|7qY1W$Vo9KF@b7 zl2rByOH=&W-t)Wfd(!P->f;Kb@!y?3O$e}x>prd#HZnRY;06}C#aD;vK9k?+ggcuT z$zU>)%5XCsJxO}Wkw!nUBo5+w!$&Hy6h@G=7{A7jW5V^ q(W`$IqmP)UPp;VVG4ZrmfHfAjhHko?Td2A$;@e&oth-XHxcwUoCJdec literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd$9.class new file mode 100644 index 0000000000000000000000000000000000000000..cb3c780c2f7f4ddc16ae5df71dc69511e4026a4c GIT binary patch literal 1053 zcwUWD!EVz)5PjRYb)1GIgtkziKp~}x3pnK#6(OOhNJybY3hIFi+Bi#Muy-SSQ_CbhKmYAr!~i#U~Uoe9!-a s5*5AvS26YxMfS-STRSD574xu3iH)J#R&xgpt73GUtBx&OY6EwF0}=`ka{vGU literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/SelfCertCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..a9f5efb0f1c369b22f454893a8214ab4b309b17f GIT binary patch literal 8750 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..56e81e0bb0c4a11a9ba6c2588f93dcd37975e267 GIT binary patch literal 1064 zcwUuL+iuf95Ix(Nx^_(x(hC$Q(2_!8N}Zy2-D36t7n9c`r*6dLF-sJhWN%tt0 zasHS=w9X^!z2R?pkZ>8%P8!Q-qDXt6!Ro5MaKJF@;R2>zRB+LQjVi;#)+9;F)7E;i z6fcV5p-5lx!$dGNdMf0}K2Kx4J`GxWObi?6=(V{;W14MpspRoc68X2^=irri~l_5S2IO;TGnp%7dfK#8gVf z&G0lThC=34&z>sMP&|$G(B{Uq8@dAq@0pY$?P@zgBdzVoFi{yb^jzcvMGkk-VsNPF zUEO@ju-0mq&i%Bn6WTU9^l?<^hhg=){z3>%(PLwV;trwLuqX~x{d=F_`s??Xtk3X1 z7+#IuuHiG{d`F#-PkdtI5*mO(bC@@rDi#P;3|b^)k?Jz8(B2Zo^y;c{d_ob;cl?iV q$@Kc4W=1R6lokXSZx&w2Mn_wE@9e5370+CC^I~+Pm*MO+Da#q zVz)?+Mf!>#$AY2OQC%J%@-))xVbIbxF>G95R)33Zn)SI<@-$IJ*3zl}>S2VkIkI|0 zE)RH`iI8Do%!s;ucjtXqn4`>W++b+__sGu$4wiA-#;t#d#t-G;4(4f)qd}@pqEMu5 zE!*V@c{Ib*UXciyQ(FhBNW0>Bq`jLPO|hW|Veno^Ig|@>wz4C;vC3$!mm=>gDs&%p z28Vjz*B+z{YxTxh`-kJ5(YDc|Z=^*34Xal5heBwI9vd?hcL=?PMRB0qeDDcwbN%6x z^%>p=!>iESHGD>#@2C=L5}(+(f*N4Z9OezDj0Hj^gBA%{q`Hc0w6{bty}E8HKBI`{ uJI#-9sp!o=i~XSHewt#7XTfgc5PjR2x^@joQ(C?XwA7_ZD0O=2r3eW{MM4UtQcw@vHqOd1IJ?o>DfDL{ zQ6X{Q2k>LKz!@>Sttu6aXb-l>Gw;pJd%NF$efbJt3r!bO3>%4@L~+LRe9VhsR4A3@ z(K~Tuf~Z$0E%vGQe$W{W!fh80!%7(=5rrBT(W`NhD#KjcxyWkMC5%A_RIJYaA-Y9Kr?%m%oEX&)6_4dCJ$!+PVQO{(2gioMCG zFZ65P&jdrgt74uVaGjd})1+f8VA#Bbj&PeSm<_p9@@S+cdE2!9Ylm}?E%I#4buI=B z3ndcF!v5}uSlENfUEF49{r3RR2p*Pj&&Az;kjiBQxQ}H9_fY7*%E=1$hGB;5WHJ)6 zpnZC3qGRzqH8#zk=WZGW48aR2h3=Sff=sOL$~aRw33@4tp`r=vXfSxR^u7_V8P*!j zQm0RKoxpa`ro*q$^=Gx3xd9YS(c@x<@*YKdRCVYZv>qM9Z*4sOjNqe1Rq5?pG$ZDB z)F@iEy#mak4%lcO*DWT%0!0 eC&0529#*Ka5%IusRuNhjxoqootl3dZc=#Li1Ol%B literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..fcd88bf5d4511d9d0ce6f78d20aade1cf40d8b98 GIT binary patch literal 7050 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 vKAkxK%Hajo4q7jUnu>n`G?Ey- literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9dfdb84bbc5fbfca2e0add7f898d3da3bf1be4b3 GIT binary patch literal 1264 zcwUuL?@tp!5PeH4M~@Rq1q9?r(SmKET#KI!#>5azND7$Lkmwg(uFG}Jb+5U*68*DG zFc?krn;-n6jI&#UHZ+0ea+le;H#6_e%>MrK?FWDwo>&-RaDCNvy@1DYhbJvJ3Bw?E z6;I@u*ygb(rF+;rylCw1?-yzo(hRGEf_#yLoy0xrBr;SCqe)A~g(_934^?7^LZ3+` zljjVr;*hcR5B!X~0aw1;NFu5HTX{;y4C&plDKcOfcW?)zHd46jz`_K>)8cKC3{E>) zmr5LV+b1G=%})ZskgJCt4~}^x_4(47*3Dw54JWryqh^g4xC+&$cG!)pI{P&meUMt; zX`6c8;ZZD_3^M~%Y6bS*M^BiU#ugqhly98>gFL1g#)R_1Ch-`< zLx$!55nFqgzZxCk$x|tsHVRm`u*OijvDSfzWA2OC!DAE|GQ_?om|=ZT7p}W(ETF8{ zV~%L@$nUm=N~l+jup4>erPMQ>>LaXEFgW{4iD*}o6EyEhk`aV4Wjqi`D{MM+Eoml> z7YUw-S9&rL!& UO%q$emQldyfyv_e}J(pVThGtujrkyvjvk2s44WaYV7-U}u7>b&jp4BNzeP$tsYE}Yo{97= zKT8BdrKe+_40$T;`XcFBBN$q%jZ$rs5t~)6wE8&JdDgVm|7znmNQ<1C@iY@7hV3O& z*q)20A7bH7DD!cLq4Cd?yd(tJ#eE<57>-t&B*X*kF>It_E*8zPceLc`IG+k-sHcI> z(^$Ne)~&5ysn6^T3}II(k#?-0ASX+wDo%7pBfS!4qDLVPQ6p5G3U0(3>p;qIP^&L> z{9?ET>=;eD1O@sZSh;L(0!3@|_}HL)KvAD|J^F@?C+8?Oo*sQc_{pJ4^e#FyBjyBU ziuPQs5L>7KF1n5z4ijRVq5@%eaFa5(DCg1Ywo^Hwj70^F&nSB5xcjF>LJduw#LfbE cDG^|w3fmzbI?f|h9gA#s`xP8Gsa-t&3G){M0{{R3 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$HandleFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$HandleFile.class new file mode 100644 index 0000000000000000000000000000000000000000..e7f6eab487cd1298aa249556d16e7dbb514ff583 GIT binary patch literal 1088 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 Pi_xvG3N}r&Dz<(D3KJLb literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..f010e80e86633474de3265e896fb9966852eadd0 GIT binary patch literal 1052 zcwUuL(QeZ~5S(jFUAra;fffpcQg9)00jCi!s0gX5iiDIFq@oJ(c5#m6kaHJo2MT|M z1OoBE2k=pdy=zse5T(VIt-1B=?C#w8*Y6)c0jwi(F~hLjSK~NId7h7WF^CJT(>&H$ zw-@hlslv7khhb$BsV@pWD&ps(LTbe@TMT3#wn(uvRdR!3}i;B4uh@W3!1;2dUslyE+Pi!#Hb##uxr%T_v4iQVzAE3%ion+k?n zM<+bp=b1F?qo8BVAm65s7q-ca`H(BEJ`VLbZyB|J%ATOCpIEiY%Ms6V(PLPcFqP@p z-#$o$-J{&aHHPTay*y6vQOB~28w~ZSa|F1F6^1#UBqGm4>ha;Gxcq3D>nf1p* zp$ck!Pmi-iJe9^$&*VKYX~cV`l*qP>x*(e?+bT(QPAWU180cPr2AT|2bIK%7Z+}{NfE>MqA&2* qzT^7e#XeAT2e#PaA@R7Fhg&3U2D)u?Laf>>Mz^_YxMNGzarY11K?^tl literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..948c2695b420c730cfe36fa38775005e97644d64 GIT binary patch literal 1048 zcwUuLVQbS+6g_W^OOwU6RyUnm=QPtcQ`0%W$V8AaLFiQ27{hO`>7#v;zE_e|bf5Gm z35wzee}F$qyzgxcrlp$+3FqCMd+xpGz5M$9<0pVML@s6+milTOCn?YK5ibUDp>>+a zI_vi0Z7x-~?!sYMo`ay1AnFsTWbu??zj+F`^OnEk zamrOc-YGJv`e%x?_86Q^-4h-d<^r6Xa zQ19r3r+Yk;W_=WNj2YzH^zp)VGGi{}N~;e;JDb?Tp9s50xr=KI(W!fRoZzE@B^Ngs8dK*8a1+Z6Wu7D=&qM0!(f@C(>9x$W{&*-< zL2d8oah8bZ(%9*loChX_A$Xyb$Tp3#Ad9P8DoJ%t3frO>=w5&(S`0OF!X!`Sfp~2U z${1Fft%*$?&3;JRK%34?iGC1PtC@pCXoemaWr}-*-oT+aP>EK*!jJCVUv$19_-uJq zdi$2oh;x7%p@{gz#s$;?i!S1l-=Ks@jPd=z4KTU7$01h4F!9iKUKW_Eu5`u+pJ7FsT57*-NhMsdpXe8h`ERA`;% zk!X6p0bE>R*lhkUNv$iDI4p-fk-g--R4_EU zI_BvK&!jn@I~`Lf^<=X2aGMI93%Szj?NFC_$FTjA_7BJwb!Nn~T=W?h#;7(L{k=D_ zupQ4`++t`?y_t&uA4|C7VwquiqVfPMSY@d4I2L&xK4w^-c1^F0v?|Y%awt?mDvx!U z#bRHYet8D+$W+4+JXcC&yM{0*kUW*|#0%4pjA5hM z8mr;F)HB!)Iy3?mnr>FFn>iqBhF%v{@_S?*(qD)6pnd-f{Pu%~UlDw=s2Y8Ji)Ix0 z9(A%-EmwefGyrQ|#Wjlwus~LYu#31(o*U$I=ycO&c}5UU=yK>35KP<%A+{pY5Id_gDBHFNh58# zz37Nb6>hmGF$CZEC65xW`qA0I2;O5TX9JmrEdq4L5_TBeOP++3V3;qo?US$jd(nyM z9_A{}q*gp3Rr!-tGTUX?X*@%G67un!q14trQ3b=Kj~6K0sOG~(#e;)aKB}lQI1MYU zb)*u<`S-3cXS|yThI&WGJUQn^+Wjb5vYj%ljCU1oQ4fyEm4|sOxOmGj_k>R$bJm1+ zs&f;ILurdtEn~xunZf^}lrU{uNl@Y1fr=BIO4UCS*+BPPtS~H&HDfD$V3=)ObpHLh z)65WqhJ+Rk#i2Ve5d?NdKv1_6vKe}+@aX&{MW1PJb+zW&5Poxgh^gjp1XqP{npUs) zfLg%~W+?J0COKYXw#ZYTBh)s%?OCPy6H~wN<}u?B8Tk7jqcUPRcvmPF@xIVLP(a)z JT1!~Q>OG2{pWpxh literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..3f402a94dd5c4f415df78c9f5b560f41673cbaac GIT binary patch literal 5449 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..f80eceb5513b29c713f68457f905f38a919a0039 GIT binary patch literal 1145 zcwUWDYflqF6g@+MZOayFrScFTEsCYWt~`9U5^SxX3QdaCn3#}lJC?;|x7i2Le}$R= z(ZnC%k22obZJ}rz-K5)@JLjHr?%caSe|`G_U@dNEhQw_~*sg?QxZ@3I&h28C!<(qvqI`kaac$jf+b7R_I&xDy~qV_ z17i#egWdLq#8sqZ+{7&j^9)me0t%jPG`StcUEGtfaH-n?LPiFQ4APP4W92iDrdTmN4y~h~Lb4 z`WpQUf|2YgW-n5sK5!kwbO9nw4nUa04WT8bp+oSFM8sM83zFFr+&+Hu9qG66)EVxa pB1@6wc-zxA{)fH*`t)kGpZf5&iS75zX4@z4^#jE literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContext.class new file mode 100644 index 0000000000000000000000000000000000000000..fef9e8bf0139a8e05e2d91b274769d9f491e3422 GIT binary patch literal 3047 zcwUWGX?GJ<7=CV>WEw`_*Uj80w`X;Y zC&z5nbo6CuhKR#$T{SYoj%8l#Kf}NV7+OidaaGgJs78^u!2b}GR?XM!vy3da88)P^ zsh6mqrbIIgfs~cyVQj`$ z30nw~XVFm2Tyk`tV#~|ehV2ZSw4!Yj_Ax!r2X({H9nZkPIxw`$kP&3qnAS}`RLoCt zdrX}&I73_7(kMQaqNH_YGkB^3;DE9Q#FZgUL^BeeVd!i;34>}u!d?cs)=&r?v{Rwa z>2l}XF!tbpjHhvsp+i~eHC;o3Yf}n)qM0yuLlN@3B*YjFHUNl_gpgoZZ%tk0TGee7 zN*K*Z3R}-I^egGd6^y?kD?JT}L^C24M`VPtUc}Zd<2f87w)5Ary6tCcLWn#sqZJ#% zIEhmds3JD4%7Kg*K$NV3#iAdA9qI7LL%J&A(ae~)1YcjdQ}>nuGDgi z%^gm@*aU6nxH}{&d5aQVor^HeVL(DZ)&KHY+A?!8&Ld59yVf~A=L<7zRR-3uK~g5a zKB-kZv4b2fg=jfGtrd2ws3nXrZ2!Nh-l8r72;l;8p}BLDVGLtTB=@3lzIG`wT#|7X zeL{9z#sn@4N(u#TW~tWKQd+fD@!KOzye{Jn^igxWmVYQbC=BZePjyyArgSqqxgzMZ z%H_3#<|!**uuRHWPkmY#!e{3+UT|rIITEPBlXX-^RPCCYqvEw_k`>LY1j^IV29-`5 zHdnLry}qK((A}V7N;OT(9kDHqbJDy<&C;M|zd5TKdR7o48i+=s35%-Fq>XHqPU?Y< z2HG@?w?HgWLiW}bmf@mEl`1@_y6K$f^9=iy`Z@FZ{JM-e0khSIS(!m$Oyh>A&WMD! z84f)G1otkiY0J)YJB*vSAs+9EQhT4_SVOh5M(=)zk0pGx@}lw1WPE~8Y3kU#V5l0E z(KaQOdW?zBWqg5KBs?o_$l+<4$F)sU9Z##3L%74x)HN#_NbU#j6ro$P|vWhzCkgymf2>AKB<&y6GNIU+6;{XDyX`ss8vU;qOEap%Mrn=CUch{ z410;3W_sfYU?*A-q?IJzKMLK`t$Pw?C4%s*2%|}Wo{D=rGX8pxOtS@7Fd;#-+ zm2s1P-x;jMnuwS1ZX_A$D&d1gd`7_AZWHcW^g~tjodW&IKrG%KDB;WYz;Yl*sF;9T zR7$sLeTOo3m$Gq>_P?f^{ys+OH$&?Qd`r3d4h1~$0`B&qFJ;Ujx%(7u4E^|qWSdB% U-6Nry^unb1fWl|^-t+v!e|nZB`Tzg` literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentContextMap.class new file mode 100644 index 0000000000000000000000000000000000000000..09d84c05e2cc87cb514cef5a232ece530a6a5171 GIT binary patch literal 1138 zcwUuM*>2NN5IxhR+3Gau7E)-TEG^kuv%Li&wUPRQyNH%Z?Mvi1SE(zTHm zK0!AoP19KRtBh3D-mN4xJUnl~d5{j~WE-ckivg0eycKd|d zt&T%Tvl`WLOt-Heh1g~qcNjmp@+?YN)^HbdguE5q+m%jFcsZ=#ej2L;?N7BD9$<~V z>!;tFOm7o@f32r=J*QiFsg+aj%pDO8uDSC3}#W_ zDnV4lT!_vD;+Y|dMJ$aO4#v#+`gfG}8W$*k!M#ua(7a_yMo6<3fv;)uEd5a^IfKV| z!ssN{u`w=ga3eu}`3j|z+6A6oVdbQLi5kb7m(Xu`QlZrMAxA07x#lS28UJ1Q%fO2e G|MC~qh!42{ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class new file mode 100644 index 0000000000000000000000000000000000000000..c37eee13d182b550984162f70db8e682f0cf81e6 GIT binary patch literal 2453 zcwUuN`*Raj6#j0rY1**Z@CcMgMc!$e2QLd+sLNt)g z{NQ7JjH5F;g9^?#1px;cNoPR)!3WOhKj2>@es?#dK+A~j?B28IoO|wfzH{!$pa0zW z8Nhaw1E>>-<;`+3ThL0SqUMYz9m^_|l9rvxB@gL#$tXFx>GWyEP2HwrPY0j~geJ6C zwPZmv^T~nCgr0Q->WrMg(%w14pko_mzC%EnG)&rjhGh%X?=?)r>Evgmb%?f_BoP)@nm&}U4tP$JF82w>z64|hfM_6ISHmt_y{l>IcSLPJJi zkyb2rm$F*X#T=jCRNm$VJ6uN0sn9V-P8dfw-CCvQ=Tr?MH;k(=+YET0sw%b-=ZvwDx=j+1)^LqZ1NSV)_uZl~lN(Rrn~cgw>K7B;0jTCkq<_&8JL z!zlpy7pSfc?pjX|jyS#-@hizyNZ;rz)bARCld#&Ncj8sBp@JXI z$&Zn*5DfdITzPnsjQy*5Ux>#6I zMk{!pmT3Gsb}5&Amurk<(9HKFGbym@Cd*eOOC@INAcASM;WhpOzs~I6WWnD;A5P;C zbt8D2{Jo1Yyax;KQ}ZF-!AJNQpWq98ii`LR-{Esy#aWlxPLHV?v)6D0FOW$;uCM{> zi6)2(I7-RKGvC0AI7X%u{69{~Pfz|vR2%C9S`@B3ZesWtX-|b3MrZL-e>BdI6Y)@@ zg6vUNA|$E#5{=P#OzJDh&$XV{2^Wa%BEt9oVu~6&G*RJE4Ymhg)mmN&y#d z6EY(fBU~lMkQ( literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap.class new file mode 100644 index 0000000000000000000000000000000000000000..93ccfd8e1fd2af8f6076e0e9d48d97669efb140b GIT binary patch literal 5523 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class new file mode 100644 index 0000000000000000000000000000000000000000..302b5d94075d798e1a79abd6a7cec299bd1bdaef GIT binary patch literal 30617 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 R@Gt2~NiwdZVD}Yx{~r(T(G36q literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/CompilationError.class new file mode 100644 index 0000000000000000000000000000000000000000..d18117c043d076f3aee3fd02d5d7b0d4a049c68a GIT binary patch literal 624 zcwUW>%}xR_6ot=4U<{(*5BR&#oeai_y2P+SO*F)f%D#*Z)C^P8&ggTwB5~mZ_)x~% zfv8ayHkr2f%(*9D+xL&xHvmW2@sJ}l25}mMk+AkrB*P%lI5U-X+}Z2V3=W~7rWwLWour52~D4%_u?e*&9) BhsFQ^ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class new file mode 100644 index 0000000000000000000000000000000000000000..5a5fec49ca53882f6e08cf8a3ac463719ff8e53e GIT binary patch literal 2992 zcwUWGYf~Im5Iq-`on;v#A%QrF4>TH=0B+P^;-YzxhbRyYNQ8)HfC~&6X4ctRBtD}t zYJA0K)I<|sC6%%&Q7g3=sZzhC$}j#6e}(bfnO$IEW2B0iJKcS6cc0VUcmMq7*WUo# zjc+xS3EVd7WRpX-naQM0e=O;{uANDG6V_02k94GG`mU!TB2YbUPMS&EbVieV2gl`* zFA#meax8y~KzX8}S0K{n4$C;oQK_Q>QGx3_EJt=_CkCb0V-DIz1^ZyDZ@3U1Maifl#aI-+n zcSEJX%0!9i6{ht%ZpCf1W%_LjBY_n~wtsxlR(@dA1P2=qQLIk0(P?HvFRsT%raNu&**wPtQ zpm5-}D~z8}#mEpNiS~xxD)^YxkQKPD$f=HJF~!Y?A9>sfuZ=Fe;2_ z4mOvB}NeA*`tgsq~+&4Ef+&ft-i(?93rM&3Q_`N z&mf(uXu1Rz)*m>W(xx$BM5@>3@ce1C8QLYhERc#$quGdF!ck?EB#IFumc#MWSfy4? zM(h&aDO0K(-cLo8uJ`cE3t5Z15D5~*Yz)(5;_6Hn9@D5`OSLgG* vL>S$tdH%MrX1>6e)Fc?q8Js0Aovf;_XvYD;j1+%S#uD2>)N(i&pK73m_2XUwFx_pwE`O#wIwZUYF0TrRan%Eu0ZUR zVHxg_z?xJ#FR*shF6lj3gYE>@Attb4(y;W4jcP%6E^7r-7f>hdqGskb$B^$$;aaz1 z)CKw{|0j){z^1b9&N_yx&$ybaS9Ob7R8o^+YNOIT7ZJ?3j$xH^|LuFmZa76(37rN32ebu9_8}$vUwt|Dz@V)I7}a*zF|r2qf+}=OGPFuS1(JZPS8oHZ`xLw z203YPswJCAA_~~XTUxaPle5xfxa9_n*$uX?f>A~ejY^)B7U!hJc*_~aO8C_FN!*R-ycBEu`+VR${M3Pa>gRyshM7eR{O zj>PlZT}t1L`1TrF3h$FycEJM{KApVO?51e%4O*Jx*mqNbWwV{q0}4KjL=VJt`7xuX zlL6rOnLv+E8J!9(^CLDcW82r*@e6j&tGgcIxqZv%SNCvP#@>g-_eJo* z4){wE{7?t{NCZFL0Y4eRPj|r2MDURg_*eu#-vOV9;FGIy^A&Hy-e&*+ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/HashFinder.class new file mode 100644 index 0000000000000000000000000000000000000000..a1f7eeeaa75f3584f232e16f99520e224f1f4909 GIT binary patch literal 1064 zcwUWCOHUI~6#g#rsMIRYDFQ7B2)5KxDA*Wz_#hG*8&FFy;A&{c_L5;rW~MCMn3%3G zCN5pL5I2p9i7_T6k=P&L(qCZQnfM#TbEhb3TsX-+@5gt}nUCM!*8xo6q7O|BLj|jx z$eFt1Z0l|@;g(9Kld!jVF0rUP#RYEV4ciBqp>s-R43+GRkg|I}F2_|9~>h z(0QLEVVN)L_N|h`U0$*nf{}ZfV~APT=2l@kn)ag&9X_=GF+jr`KqoYs!ZfUcTlA(# z`_RSE=0%oWZhD=whU-TV-D0X9f*VOkSA7WmjPoj{E!QX*w&>OuKtIk>-5lY&<~9=M z{pdxvC^HnmISf-bJ)dXLBALJUIvrgXapwbw2zau?AJCF~j)$4{)bWow8JI~gO^-7) zi_RJDxD?%a6#e@&B7B?P7QGz?f3{S%bH)M}$7ng;^_WP+00=9@*F+NCm8g%j1aU@O z8QsT;x1QTiRP~I5I7u|n2q1onIKyeQG?LjfvWg_+a(Dt#wu%4(dSc>N6C<@^STrM9L|tMW%%t2U=rgILdCt&p&A|@d@^?JWxJu&_ zlS`FO@w87FynQ_sH83oNxPrw16wih=1F6JOIX)BlYkrmqhUP#gJUivN zwC4+_XA7mC%$6SYsL-W|E3H0^by;*R+dpalfb^&{6P_1h$gn&`wbd9LyibJdc;VwN zLuc+}E&~Fr;=YeHhP9c>L#$(ip~{m)6mFth^TzbXN~`ibEyqF`QhB1wJQ00q`&F}$ zr?wh~@TF2B-?v19dRRYDNu~=b?ogPK9){RKi=koHL-I_16vwt7Im33VJypX+spqg= zbZG@DwB4-HuzNt(0zE#ekdt>WQtmB{dG literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class new file mode 100644 index 0000000000000000000000000000000000000000..1b88292d1cd5d0e6c9fb299051b953284e5e357d GIT binary patch literal 971 zcwUWC+iuf95IxhFI&lpNftFiK(>86BaB=d&OA!*PS_vsFNJV|%ZR@O(t(@J+b`bCj zyuha*fj~U)0eloS0xpN}afPtm_}?VuuF~>wJUo%Hewv2c*N&j6|Br9$|3;ZA&uP zdlO41dFJCbp*8brE&>89YP~~ znQp-@u`X zBj2OKR?X!KaTQg-S=VsgVL~jjRbcEAZm{Pj`#e6~a#fzP$D&HD&j`G4xbt_34@~Hz hE3tG2yeLt^8Yi|*th<;E)Lj(uvQHJ8uGBKNegm8B@v;B_ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class new file mode 100644 index 0000000000000000000000000000000000000000..445fbce66395fd5fcc633caa15209d6f73c8555e GIT binary patch literal 900 zcwUWCO>fgc5Pj2_xJeBOg_h6Kw4@>p1t$kiMO>;@LP`r#QSV!42|*#A|PzcLZ#B0iH%=PtTLKVwIfxudxZ7DT+UsFK37`V7leb(CD_4R@lM2< z&}n>ZbEVT6ne7uouxEy{2EtN=E2!2{!PN*Mt`Qz}{+FaNP+A_9<5QWx5vQ3XEDuZ~ zvJ;Ujcb+B#XOyrxUpkMDoi4S7Hu}TZlts_c{nPg^NS{YD5qTkpgq0bxoyhwB`$YPY z7a{Hvx|gozcL8BhQeWxnSaCEIN5>m)M;w?CA2 zWQHL&2y1h#M|g-fq3M>aM5aE<*UnT<*y?Q0oZ3|HPuMPcyvPdwq||J>ZF020Pl!d% z*El-j+kn4O_wgsxyE{)lBf9XY2EXebOtGLCP x+nfvdbjNpjHtkD)sH=PloO{~UX`5fPgnLZpgx~l0H9YWQ$k%{T>z=-a%^v__-r)cM literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class new file mode 100644 index 0000000000000000000000000000000000000000..ad7825eb9ff717da4b1e135d739ba227ac48883a GIT binary patch literal 971 zcwUWC+iuf95IxhFI&lpNftFiK(>A3^xH#d3hax0YwGvX=A{F(4x2>~E7CF0-?I7S& zc!6I)0)cqo1NbP!?6#@|L&d=wqc-{)DjCn1SuS z60b#+2;Gm4@>J>m1W)sr;O&^6EP=2P;sWLa6mT(wk4uED#{VWMca@e0O_ z$c)oi?kOu+$wD63ZV2Hst!27n6G;}aysP8HWZc}o%m=0yVhasI#mzwdd|*N! hU5TYr;CYD>);O_kV%^1TpzflGmwl?(bfuPY=Qq0c@#Fvi literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class new file mode 100644 index 0000000000000000000000000000000000000000..c7d50e665b160f7e806ef7f7cc0b03acafdf6afd GIT binary patch literal 971 zcwUWCO>fgc5Pj2_I&lpNftIh9rfo`-@Zm&UkcyB{)k;Wdi&WGDx2>~E7CF0-?I7Ui zaDgil2*iOOz>h-AZmUW_l;D-Uv*R~2Z{E(&U*CTK=%DFij!^6CaTF&a%SIv}M7c3Z z7NtWKNBctQdgq}JkFYig)t9*$<;*+vQL)2Xv`-04DHXrtc_%{Xh@bpO=-1JYq>Mk38*kFYp_wj~+t zzKNxiJo9mr(3*KQ=K%qhaofiVVPz`y5UZ#WiXx6>men5-HfG(^OG~XN(*AfTbcmFHGPYzY)Z{X0x zk?&DqtLAcrxQr^`tSh+cFd-J%Dlm2l*VuENeIB1~xGGQCV^O8nX9V6i-1@u32PX8< hl~_6jo|hMn|S*{6z4S85q|egn(g@&5n- literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class new file mode 100644 index 0000000000000000000000000000000000000000..fb17a8ae4d5d9568ce8dc601755ac6021a647205 GIT binary patch literal 971 zcwUWCU279T6g{_DyUBJnG1~go+O$n=5x}4JEkW~AS{HqfcXFgTnypk5@DNqhOH@7eIf$4?VLW5AT^Pxnd-pS`ykCd?4 zXinsC*6Jy28*QF}0?#*9Ds~Xqn&a0;k^LpM4*0Lfd)T`B1wrfH{jUf=IaHayfkP8V zzDI?vn#&d9GOB>HuHdS}gji&&z}O{RW6yQ=d3?Izsyt+cdDn9xU8 gV(AokUZR9GPHdZ4cQG5NyC~vipDH$8sb$>x4cjU582|tP literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class new file mode 100644 index 0000000000000000000000000000000000000000..e6d5530f8e2e7567d05c9a1c1ed39f90fd959786 GIT binary patch literal 1039 zcwUWDT~8B16g@*%mM*KURnRI(fdXy$*!IB(gYktxVp5O<(?s8f?W7&DooRNrM*UYB z4V4FffIrH3XJ|0QrZt=0y>s{6bI(09`|J1BPXG-BE@l`?9W@BTh$l&(r`;gcI!c1L zC&S>FOI2<>ci}Lsjze`ss{3j1rk_f!7-rM1Ov-hJmF7gweS*G}N~W(Ejw(~I%?tj4 z2N74D;4F=$>Ws-$TMW*DZi_4!=6&43tcMKl`fzcNVXN}LB)O(k;$+Y}7x7zu9tnm* zQ-?fi@mQMmDCw9%8P+CCC+ld^`7&2ped_5!Qa5z}^t}aXkTrcCC!)=;Fh;f!=^cIy zg|$3!@r0o^b!%=4JS^dvi)Du8iPC+npu{l8!%!qi`31xJw0(MCZ5j48AM2(xJ1T9| zO?Jb_=B;eQkjI@tPpFh8I@5zV6i3pSn>BQMW^xAqwNfHJFiiy+o;y@wq!TjYSfpLu z_OXjShP*jTl1K8hI5pnI3>%f|SiK`#u3`JA(|O6zzrgZ&b7&}&{v1v zer@|ZyxPw0CHyZIm7}L;(Tpm;B2Q7ta{0KA0$`&DcxW*`7AVRPb`g&#^O$lDt%|nG zJIWYTvGxs~GsIK#&J3|ST9^N}ELb_0BydPAe-P1?ZM}F+aMQYoEox|ntJvBqYF03# M3zlcwN?5|qA6XLr8UO$Q literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class new file mode 100644 index 0000000000000000000000000000000000000000..4c97c226d3f0054e3884a10cbf9f5b320329e901 GIT binary patch literal 972 zcwUWCU279T6g|_d-R^cZG1~go+O*x;Bz|o2;!8!4(t?myq0$H6rki0ivY81x8&Ut2 zpeQ1OKKi4?JJV87L*fp*bLZ~4_nv#^{`~dj8-OlaKIRx2nHnc)&W#!Ia*&i-=O!tJ zGEEM+RB`vA507De5-Jm=9+k4CsYh5tgCXE)DvXJ{L~C=_MZL7#7I=}3heDM^^GJ`2 zRP0NuSYRO!YmQ>8?)YZD1lvAUZTOJr3DyNqk(xlTThPB&bYC*-lHp#1@%_ZheTF7cfR{ct6g ePl4wp0<2SF+r);8*+lH37%ltMvE@pw;LdOFu=0KY literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class new file mode 100644 index 0000000000000000000000000000000000000000..b7a91fb5a1aea4cdc724b655a9c60ae565977ad3 GIT binary patch literal 1039 zcwUWDO>fgc5PjR2x^WE&fffQSP1}?v>4)PJLPcDvRzgZkrJ_i1+d8Xck+U1w4g&ra z5(vbB6Bi1<2{F5kiYlT6S@w>{Z{EClyFUN@^&5Z?fr}Z2N>>eoDCTK8;8`!ow2spt z>B}fM;!;(^M=l(O)p4k<$n+o!o)0pq6~k=SlWDcdu+o~yxku0^QpxNo!(nX-w)L97 z;X%w*H#p4_sk&n_^)`dEuR9_ShIt>?FzX?Q>pooEVA!nvFG-;#l{g;u&qVTqpT&Zq z)Y1`;+dPrxeUx;}pbTr1rIU3u>3o$dt={$ZFl`#TfBIg5gk;TtC#mQ#ER2zDM0y8r zBVjF1UEE`6Ox>Ex0uM`g;9{9!d7^Y5E2uEc@hB2$T7As0K5d^~)!T-B&BwYa&5ugM zrpa#jcz7in8uFw&>%TP3DN%B~}7bnKMgkhsrAFFp{%LQx?O*$_*`WINSXbufUGjzL{qkNvCWBTgQ z>NmDN!E0>qe1`wQq6+l%ESgc}cN8hASS}woQ37mq3%4!C#{xw;!Y<+tW$seWp|`T_ z@{%$JRc?HQ=X}Ba(YiWXtAAUTtehVt@SIxyB%)uo_2LD=W$Q9Fsi7IJW^3zcSiy`g MSe`8_VF}xR0Ee~zc>n+a literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class new file mode 100644 index 0000000000000000000000000000000000000000..923c3a9d4f939857e5736b5f6455cb13d3c782be GIT binary patch literal 900 zcwUWCO>fgc5Pj2_xJeC33oW0eX-U;Id^kBEAr*0{S_vsFNUeI`IxA<9vm4oK1pF%w z2#EtffCCr)4`Ox+AVidMusu8b=FNLE{__3PX8?U{hgcxAQeDPLCW>Mr>?pRzWJR2h zRT3WwrQ7`{Ap*kYEL1A3nb`Qn#44i+RXb8eyGPg<%;nr;=u@SYeMUI!T!0X1p8(vYalE|xP)pQ6^S>mGfztB09G}blRGep$ure@- z$j(Hr+{u(b|UKsZxZQ8 zUWB+s=w7&*-vxw4k*DQYYRfz)rpyz0sGOymQ~b#FBSg=&mifM8lx(wcpp(oL-2O<~ zkr{^AB&^T19^oF^gr-}v5}A4@UpiAcVY{>0=5z%{(YVf=6(ZrQs(d4M*xgsoM1@O^TT=SR+s~lAryN2tW yxxu-BPd9y+$J4&_hq}s_z&B63Hf{5ZmT;TNobWpyzmB_J4EY)`YQxjFu=N92Zr^19 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..aa66ee3fef9c7e60ddf041726043d699e311b9ae GIT binary patch literal 969 zcwUWC+iuf95Ix(NI&lpNftFiKTk6szT%7i`2nkiKR4Gj>74?C)t+R3#IlGa)M!;Vo zfj~U)0eloIpy99k9l{7CI4q7v?y|?@wk29{) z_|)W5r4u~uGX`%@4@34axz zJeT%->GW)&)RXDbqa7-AA>vA_4x%l zubPECx79F&hf0Zj&k_mhVSQgEnJ%cfBVmSm5Mm20hK3yv$us#;oY;Qk44bX?L=Bgv zUch$Ir4gvmbhAdo&H-6-^!lihzeZM{{(7{BohM%qbe=x@itv*|)#)2JG^5BvG{{HW0ZeM$0};Y`Rp-c>Eiu2JnXf literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..4e07a58019ab50a55901195f77d7780fd6f4752c GIT binary patch literal 969 zcwUWCZEw>s5PrOdrOg5@g^jn3Z7gGLc}d4U4k4jwlaRUr8Y&XsywpmKQoD*11pF%` z5Qq=_0DctW>`jw^swGz9^X0kco;%;qU*CTK*hbsO9K&j=$~eimF=Ji~<3j7q#Q8`j z@gbKg+VSBrtWN@^qR`_aem*XwRt)pSP@1SqjJ>Ipy99kKl`Nhx9JFR&dvEzW9%o#o z@o|w$l}_-q`wZTm9*7zk7D8OWe1HlrhVXHTVXO7OB=w$D;;0;*i2M~l$pk~QrxTv_ zc`ohw%<0)esVCE=M>|yLLd2C;A4a+~UCZ`Q+CL!M)R{5QjTkU2PEc(%2K(<5;W}=7 z++^s?yqWWW0L!@TV})U5s`3!4SYxR2BoW3$j~F&)UDF#Yt;+MX90^sB%41#Ti8zq9 zUo{JPXsclepD88sJxe60hxL7xWZF=1hoTtjL5MB17#emwB+ukW@xt~aXV`4DCu%q= z^%S;?E{#Birkgbyb`Hpzqt{23{57(U=&wh6*tz!wLFfL1uLwUmRGq$oLoJ-zoYe=(S6+bP7CA bQNubB+am6`m<>cOiqW!96Pqs8GVcBcx9jkt literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..bf5788f2cf47e19bcfe702808d3de2a5639f7d4a GIT binary patch literal 1048 zcwUuLVQbS+6g_W^OOwU6RyUnm=QPtcQ`2d`$V8AaLFiQ27}GEMmOk1i>3bzfMg3QT zqWHld;ExjTdmDpk>1IO0c{k^td+&KKzkdJt31AJ8iy4Ncz8c3#%JY20i$Ppyo#t^i zlu5kBr3yPP9ERmdq`oNhsEA*T3aJ&tY%!2|*e1p9RLOOsK9Winj~VuwCvdy(_!P(F~;elZ;z!}W?DB)}X7Zrww&C`fXmaTTB63@rOeUa_({Zug2 zyE@_NF3+S{9|j#`2KhF9ys$%N%!OQO^>L`jdE2P{Q}!5T?bzx*c{$=)E_w{}6Q(j9 z`Kp;CW0|4MlSJfs_<*7F{~K$1E%U5D9tu@Z z+uM4aCE}?xc6uh~o=IT{o+%}=4Wlf`;_9YKQk|2+mM8|g7odq2L(QBp$y51Byfg-7 z3@gpn#HJ2sKcKCnO=qS=KM1SU%)ucvLywCx#XUl=;ZPi?M5|xnM|bWnI^Pg{w!A96 zeamOWd4(FGi1@_DIn)7*&f|jRR4`AdWYGd4hq5l>5`9~wm|0!66`xSV@V)2@{MGNc o`ggH6)ZANJY~g@-RLsK-5;gX2Zag=iU0rr literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..963faad048eb3ec4a6d2a022ed6b72efeba5665c GIT binary patch literal 1048 zcwUuLVQbS+6g_W^OOwU6RyUnm=QPtcQ`5=zK_-HX2|}mBWQgBh(?|LweXk^`sQ*e( z6hHU_{88e4Z(}em-AqV0@8;Zd?>+D3*Y6)c0c;?0F~_iys!5z=yeP)J9LA;ASrO+W znZ$css&LDN!>~Gyl!{W1%lPHElv**&mqS^ET~h4Ll-wrjW2t2MgyBv56mIVwf6wEL zt2Ev(bE(oZMLGuz&W;`k4-5+d&SBn11?K~}s4+ZhpG9Q4Y`rIycrh9EMgE%iGr`d8 z>4awoJeOvD6m*Ok>M{k0U)Px<>7vvL`4TCsq&1%Q4RjF<@AnGL`Ar z-~EsXyGMnKYYfq;dwHDTqlFb0HyBzo=Lm2Us|;11B%&z7O@__?-&oUYmFMYXBveUl z@9RmPh-cE+>6x4dCWRq*u9V1kjItn$>$@t+bU_Mxq8#c$fHpb|4RgXI&*UfZ${3V0 zthGB+n>w2PkhYC3otX;#Ags|a2ZzucJua#g_Xxd(Lvf%Mt$&3d-Mhc+d_(Zr^6K>V zEuRsmj|QQL_{7EqGy#h);*#amut=z4(GnqtvM%EaeOsoOSzWaipHjr|z32=4_3ya; mcd;QgCvCB%L*j8U54T9z40PM(gjlm#jBax^amSWw;qD)p3JItH literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class new file mode 100644 index 0000000000000000000000000000000000000000..60254da5668d462864edeb6dcb0deb1eca227d34 GIT binary patch literal 960 zcwUWCU279T6g{_DvrW1tvD#|YTB}=0=SeVd!{E8iZZF>EVJyT#8~t%;#%0&3{bzfOvUTiqpJzD|MJfA)r72yxitBqH zQt5Y8hPXoLoVd%s350o3WaFXKmURxyxJcy_<@&3+^6xo6LiAK?S?oGR$vrpsbefxz z?f0b}n0|;Ggw>gIh!A6g&~mRriCle>FI-avVWYh{b%c|8f75o*iP3^V@d-Teufuj(fZ7v}SDMgRxac6RLKoim1nm{h5+GOns)bvd;-`J7;kF@5KiZXF{j( zq0N;}&lTA`A_Ti;AZs8jG;jgcIx4u>K!_&cY3Dp5(`8$IrRA$~bS(2X;y9Cp#lA^I zb|iA;&XZu^hQV{2-CnfK!&r!fHu_{_%A)7g{Jf4ziB(@@t!OEsHxp{%Vspk zUx;~**BHG+z;U42z5fOE?t_Ob!B;dsdtQtGbO)N30 zc(lwY;H;~-#&;_mbEoUx@yVnH`e#z*OW?#CEKdyo7!Yo= z1wIK01mb}Y;G+<;+o}=}C3t1;?D))?Gqdya*Y_U)Hqr7i!?2vGQIh7oEQj3m6Qgxr zCdELe$v&4V-tyrwtd0X^!sww%4u?i+#V~97vWz>#*qunZP0+_uN%MqZuQ>(VeZ^n% zBv??#M(Lg9eDv$K2 zNX4GC{R%APp{<4?dZv^pb}W&g9@chMn(LB^+ZU#~#BVc z8mr-~)Kl0tIy3?mnr>FF+c_X>hF%|4@&{xc&|i=CsD1AX!uI_KUlDzBs2Y7khh`M{ z9(A%-99M+PXaLT-f~yV_VV8oj6r*LI2G(7wMcn-j3zhLL literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class new file mode 100644 index 0000000000000000000000000000000000000000..a19b9b66f2241fd3ef308d86acf357800c4398a5 GIT binary patch literal 969 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�Ny%)mo_`2=pb{Vvbf+vaSok-w8OJ2U5NiS za}=k72f$!XRT`%%GiTyp&YUz(b!OY19?Y4a#+jR$^WI=iD2-E-ne*0QPIVe*US`hA zgE{lkIP)`erVi%JP2()c%$YuzQy&+`+?tG1OlWjh<}s rWQ!*|JQ?w1(v#afx!seOdUA&+cX{#}Pww{QO`hEA$^D+Z&y^nn6ol9_ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..1a73827b3604558c51e2654e66471544717c1399 GIT binary patch literal 1145 zcwUWD{ZG?S6g`gt-9`s5@gPw#+HE0n3#~RdyZmhm$fDOU!f+0 zXyPB>A7#9+9WZo@Hd*)HednHY?z^`?e|`G_U@dNEhQ%%iks@3`d*IkCO&E3k&a%r#fVyncEC|@9U+_qsg*BD|& z+j3mZa%-CD@h~ERo^r0I_o$Bs(v9uRRFr)%@&oxYSn>)7G*7>Gq zHB3$_;eu`&mf@~5gtECB!*J1V@F?O)NVviBVf2D zBZ@I{T{bLU@eb>}{aULFvP9X|HM6F*4YBVAM+?5!C_=a{V+Jwu>+Ty=_FVa&y;uv} z2F4iX2fOVJiK|GI?O zCbNBPV#qQ+S8=aIz($3F*+IdKSc)dL=xdsOngQ1vk#x5_qb2AOf*ZBvVdv-MEqvX z(^u$U5RBwckh(~X`oL8T(*=k$IRIf6H-wg$hAzQ75)o&aFG%J)xPAQQJ2G$M=~LV} pL7pOu@pK1E9jqSvIEk!0xn!_Fk#*wS=uyhx8PyJ2ulb$|zX6eE4`2WQ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..272018323c84441bfdae510dd66c174f021d35e8 GIT binary patch literal 5369 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RMICException.class new file mode 100644 index 0000000000000000000000000000000000000000..e3ebf5d1623ee0f6e7bc5b5a8fb2d83568922e0f GIT binary patch literal 555 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmicBackend.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmicBackend.class new file mode 100644 index 0000000000000000000000000000000000000000..7c08d1aa492e58e100b3cec22c7bfcbe506ecb20 GIT binary patch literal 271 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 J+|;wr{tNGH#}NPk literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class new file mode 100644 index 0000000000000000000000000000000000000000..c5a258b8202c9018c568aedfc641e55b293ae58a GIT binary patch literal 3290 zcwU`W%U2V36#fPR!8ksM4@6O;wFm)>qNsqySG7hF9|$q{Vo1g?7$!8C0BUV*tECTY zZFkyps$KNBv5THl$!R&KcIP==b=^&OF8e36{qAIvAVlfu0_M)|{(kp<_xtYsO@90P z=U)J9!&h#UDA*V?(}74_OQl9MYcOCX67f_ZIc!7%y;{=H2I6|k4VQwYL)xeoh-+pn zaAIIck5~#^my^1#U|FZ_N?S%ea70TDcI#HVf-+MZ)>Cu6$F&jhju}z$Rz!8?PU=ww z3$%DV5z#EMl|BXKdkoXCIuw-F)%P;l!9-N|pcIuV7Gbd)%M?`3N$i0al?$L?rHV3? zyRmA{E&}kND!Xfq3O6dmTB~9K%Eel*!jrW&s8|S9!IDnH)VtEd1A6j|5Td}_Nu=={ zLC&Jf8Z=narq1~pB?E4!as?~uI%jj+Uf=5>fO-|R@UxgAJAyVTLbAY_<5sZHNf08_ zZUk6ZVN)<3*JE0|+aleE#v}TOWhBfBY~!YgW||4h=N$HFmn}W%bEGlMmWCiw)GN)Q6e7l4=q9TZ+>}V^Ibt+h1H}^=p=-R2`IJ#I^4oa6k_A-@& z($XhYoDwEVwJ5>4gftF`?dnl+8ol0tdQ4Axa2Dr8xbqB97nBC8 z!bKIA(9gpoY0mTRA^=`ZL%!J*gO%s1d5K0rDP31FAf>Ch&C;Gy$Dj%WLyTgu;WR6e z6hi7}TpmGZy?r6#Fx?oYq;tJ05*U%e(8sOW3OGQ73GPb?YZZoR^=k374I!;!R9LRa z^_wh?tGFtQnh&C4UX`jmg=(ekbK@)C5EId204EX&Qye}o~WMVp#mS0 z6*J)*buJ0JJ1Z;j5$W`CDmU9BQaBJ5|Hsm}pUmpl+$g@HU#sw$ib>od^q5Z6we$3Q zp1LZ0A%yUtr#q2OM)bpm+gI zvkCHmTJwNf9YCwt4H_-!w*f>PXzed3A1x#*w+|nlN2tri0+kgBbZnkL139vkht3>5 z_q*8P|5Ih*FOg+C*7XQyn|{I-1;65Kn@eb}X030#`blu% zWmT}#iuXduKL40OuPM0y&v%c|;wbwK8l0@TgkAF9Y<)y%>-@a`v-n?mYFvg#BV`E84l#UyK2TD;Ig{E;Xiw&AH(9&%bMt?zJy+EW2p8KKZxP{bBAA#lCCzyh&G{+0YoGh_UtClATx2R|LAxT+~$k30%NMQmc1m=`dwqH05be zGO5=F26c{0e5U4Ia|4xEzJV*+ceO5m)^qa)hP2~)-K9k~KuOoYu=b7A{RPWjnY}YG zrd>(4y5?GSJQ)~BYtOhqZ-k{FeQ5>C7ch#xePjprG5g=kZtlA8!+vh4px_+{jQqQy z+kwyEObez2+H!2+o^;A8nQFm|K&$NrRXxi9hm2Lj9pdLs*{ZgC0__JCrmE?IK;o@t zsaodvl0}Blz&zVt*|*fHU74-ADVfxzva1|U=wBmG97?WnDwDh5-kko5mQOr1pp|Q^ zVjMsl*TiW6_jc|EI?x$j{=sPN+fRQ+*B6}sh*(ee3B^Dt2DP{xiYr=N3&oHYH$pM2 z#b_wTv`B>_eIib(Ma?rYFv9aFOBq8yk}NUBsYp|e^JBh=Sxhi)5(^|-#}qbceTf;o zp{EA3&&a+C%micq4r4}PrlT;oqA<6kFn6Oc_oFbGvoMc&ULedOVU`H9OqdnItg`GU dEcq$p))?`OFzbZL5@v%iTYrENcvyLT{x>1!799Wp literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/ActivationSystemImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..3633faaa8b3e641f4b14e283ea1b7dbc270695f0 GIT binary patch literal 5243 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 A)c^nh literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..420e1a69aea29d3bfa7952b92c374ca86ff15a8e GIT binary patch literal 1084 zcwUWD?@!ZE6g`hsx|O<(DF`YeGIT$HZhkWulnO zHE9O#Uqb&TeF{5%5$j2@fh)!0a_80O7TmT`|5`%@`*3HnSbX`VA2v}a)ZZ}~f(DfZ5C)1_JJ5=aG%#~IjM!G6{mhGRke?YdWGh<$qV!*ICLABKw?!Qlk>v-wo zE<<f{f|I-t0S7}myt`l8UIB6&F~q*e^G#Xy?4LyX;tlsg1{DwQmrG3+;|V7sUMj3*ga z{p6^~rRtCIw2m3PUELD_80I2e!EA^Mu14^2jbXF-za+J;RN}B4o{0Q4Kgk3`qpMS% z9rIk;^M%v1g;Gx@OOLmy(7Bi^tv(EOX*!nepR|8Kwx}~Bo*U6)SQw+)Y7F<@r^0pI z__)K+o_aHv0U?%f&&M*u@|(F>(SzH5mD^{}?5(o7pF?m!d+-HWh^CPUqhhvb?3C|=oqsV} zrJlof(4i5i&~&qU-Od47GxYkXl0P8pkp6nKN9~7S5VjvZ{)*_6L)GXTIy9rmx2Th~ z>bN4zqX9VUI&L^jgaxuHgk8i<^4ubyN2l8^%X9KrRM7s6(EEnFf2TMjLGN6O#dF|g biU4awY>T+>V%8D6C`QXZ4Q#knOL*`b>p1ZT literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..b3a9d2451818b372f4d5862e86430e363c6c9ec4 GIT binary patch literal 969 zcwUWC+iuf95Ix(NI(7{SftFiKTk6szT%4l56(OOjm5|aFsi+UUZJm{~$k~m&4gw@z z;ERwzARhPtJ_<3rtttUgf>-v=j?bJqGdn+jeg6Sq6D=Pz49l4sC27u$8S=89lv?K| zDF(8a>~pE&Egv4k>Nrp)N`tWICg@|SWch?)uQ>(VeZ^n% zBcOM%;4?lo(RA&7vTbCLsW1vf{#lK8_oYEsdc3i2cyA>C|>ZBTrf1c zI_3E>FQh%6IXzn_^<=X2c#8_1i@DP3?Ld!A$FlvC_7BJ=b!Ny5BYF(;V^mv>;qIGM zxQ-hiHyPSfZ{|E8#3F9{SYlY3s64_lRv4;0O@%S>BZjqU*Ywg#tMVcn4TLI5<&hp0 zso0aYUx9@@wAC;~&y*6yjwKS*!`iM&b8V=&eNpyxFTw_z40SsmlIQZBcy9YqFswIQ zV>O(WdJ5Y{hen`6)6MF2I|pRV(Ced0{(!6l`s>jiweNjF*uMYZE22*hRikg{(2OGA zqfXX};kTl=Q{a3I^A$to|4C+g7#;G-Z$L(JH-bQ^wFhQ fI0c@k2(U`Twun0}W(~26Vzlhjz`9Gdh`YZ50Mzj= literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..3f27513f29d5070afaf4b4c32b874cbed5e867be GIT binary patch literal 1048 zcwUuL!EVz)5PjR2I&n=B0xc8>rNxEB1)Ksspdutx6$vRVNJUk}ZR@O@Mb2(yI|#UQ zf}cSGfjIC1d=z4KTU9DVX|ZMN?fA``nYZg-zkmD$u!_*d6vINIMp2ydJRkC+9~D}s zd6W%gFWTZ#1#2!GhQ)EDL=<{hM9+tX)QVxc=*v9lkYabD?H`er8=2wM`YLIwyrKQS^1sM+uv%?Yq|DPU54(qrCF1VgQ> zBc7b_RNDPT(6dIVC$mehZNc|85Pyjc^Zj*Y1>n>?w?w9hTxS_BHgv+32IqoPeqB&$jgB+Lp|`Z z$*?lBjRBfyF;wlqNS?^|;qI6_ib6QBf2{K@q|4-kC|WOq=}S{C@N9z31L@ z?m6E%_uO+I|M0&10W22FG~@`(>5O*=!!a|NOqlMLpljQ)WYFn~MuPQbG_JuTFnO!F z-3-RecxSM&W2+T*1?Jb(wuD-1T0)Ht?Mkp> z!KCGEx13;8eW+RWn(gp5%UxrJUEA4NEihx0xTd!D4UJ7L0wN@E)R5`sw&s@A_3aHc z^{WMZb%#`IcAaRvlfpbn*G`aevp_*4>R4(MlEZc^BH&F}PBNNwtvJolSA=8Hc+@>v zAh)!vm5XZah*bcAsRr_pFMCHB(4gy>Ay6WB3(%kdHIHsL-KZT8)C_i;cT#MZ1gL|E^F1X zoKBM31~w+mPRomrp-RJv1my6xSxLDxX`mV_=yhtI5-6}R%PwW3NnV_ck83#PFuM$c z!axmHa+jp#uCvUDgm7B6U0OA)q5?;d*O-uDv(~Y@6FSxiOi^an+Hu#hV~XrWE!IiE zR%$qv{yn05OBU;>V=N?W$JNom@Kf?OaG2Uj#|G*>Nc19vCMmpGU{mQBp)=aR@leWI zr3D)ewBj_LF*6cTE*TROgp$*MYb@E{MT)i|BqT}rrvCLQNxwq0d) zba$q8zF^E9m+QEQp5Pim5s@-Wn(+Z=Zo4?5BgR9Wse$s;!bC;+w24+qJ68Mp3*t zfIbbq0{+3N%)J|wRflUerH2OkaWLh@42cJlM%9hx%q*xb!~njp;d`uZ4!_F4{rCYR z&9OS7@ksXTceE|7QuhZ9JS4T674o*zhe~-bXI=;zT9$BA_bfo-o}I*wsfI0GS-;PbrHX7`&CKfcZVqu zU^X(HPG=p{69cp4?3No78d>-Z9?d}BG**>e4OvMSemQ#&-f z-K?IbjB*k6R7 zh2IeK)q%AfM;Clu`BYsIio2E*H)E?E$9AN<7SJnVq0A*&&$LWhPm5ARl&Kqmcdnay z>qHWc-RYP_Q#Zq5CY_SwSe}ekd~TMn&kV!jL)|5Zx=RI?jU^^qQwYwqH-Y$GKJ<)~0RtjJQkh~2a{ zkF+NS5NPuq=jp?ex(eU%{Wzf)Ck>#s&9|EUKCG=@G=NZBxo^F%o&;Z`qJE+mEu?QE zeY5WjMLIJ@GD!;iB8qf2NfnEF(W&HZP04Gh96*eV;yzmu&fy}G9FkmLx7^}fMc*lz zD>KZyQp{DJV$T51=h_Q>pHietQG&FU&%!9`a1Oz9a0c6U>_mhGcLL{ebOA>f;$pU+#%FK^E@O##Id-#u1Fpo4 z9Nmela5t`Dm2oW|VEZuZ&&N0`;a`@5I1PUx=P#ukzPoWdC0s^r&!Lu=vzJR5v+-H> zJf!mUrrea%PYDHd*GdM%7wQ*P^x})BmEQ~h9`p?0>Na*u`fzOnar*Ke=xnZ+)1`Y* z*pIJOdG=yLCC3Z zjlH-uv+_?|nVx?uGym7r)(w^1;2{2iZ@K4Kikx!5Ig@u0{Nd29{{r6O=zY8_^6-k#@Tw@nYhpIrd3aqc zz#F0xZ;Aj5iWBgbIEl4G4c=A}c0G?gqaz(*?1=&)?}0pVk|<=X<D0_co(bOcqmUa~Nj|ANS3t9h1aVF^vi0QkqCm{bL@^^gMkyuxIBpbA1vCFho|eITBS$P&-z8!x+a;V2LH>NaMN+MqZe!`zNw?>x+W!H@>pJlO literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..0c639221cf743e79681528abfa026161bd051a08 GIT binary patch literal 1145 zcwUWD{cqAx6g_XS64Tz;rU)TKC~6xJ(d#f-M1uF)>*>c(TsY651~MUrkNe zqKSWif0XgQmJOyX+Jy4nednHY?z^`?e|`G_U=`0Lj4&jdrmNNs&9>W`bD%nwW!P$` zr8m?vw{5M-Z3#h!*r9f$sfK1Y)t&uAUUwMA^Sj$GOU1qI7v&;DywpcjosMocvkcLK zW!jErIyKF3c?e-&PdV39JUvC|DXpF!!(^pc-Px@aihI5U!<^6VI=Z1&xNW(eI?uai z!{DS6%GC|s)SXR+Kzgah5G+^?9zhIo30D|qF3Xj16;ll1CU^V*gOdKcj-|`R!(g~3 zBZ6^qUD8dy?Y8!L=e4#k$l@idt{FA0ql_ygh z>l4P#%cK$ez&|lWs$Tq+E?OErYmXubkffmq&?h#6 zIgDbAc9ORX(VixS)&W|}h|fgc5Ph4Nnxsyfw6wHPN`X-FQE=%ssG?LLf&xViDpKIU#$F{GIqS&YMDSDi z7X=BBI3RK5M0L=9;UIoLZpJM-qv+u2{gzyAPmA3G)z4ErtBw;hj%VUO#!t$p7M z?Vu}N`=tm%8ET>QBk9VgJZ!(>O;6+xT;9{dJr>**feC|Qy~79GmcD(|> zIuN|eFsIux%pmn~ev3avs#G>%2+djs)T8bU2JiVcRv znpEONzuOc+OqOA(<~!Uw;em|yL#Gj`$MA6G=ErY|luSr!Y2{qn44Gh@=oU}^+g*f0X0W~P;4KCAe zH3rOK4eLN`UBOlI8Q8$Ji6T|9qWDbtCpJIA{EV&B^67sC-Vr~Jc{pbZWJU!t$m4bl SvmNK%L4nq2+!=}}1AhQ9uzKK(Q@-aTfP)v|y@YD7Aww z_pW#-bv#UF^cW0{kyZR%6%CaRW8XvtGX|y^>Z3ARnAP&FCr#W8d=1DG-Mobblo)cV zC*0T*E`xa)#9>#oq#j}MAHGd}Z^U=v`yy;=A%Z3?{?Uz9T4I`h8fM#iljNo7HISox zp1d83b;exZ7?62`^_*aeWV3_;TCmAliEm;OCC!F13PXklq4k-){sQwAQ~JXOnET-= eBnnQc>lwx8zxeDSUkZzfUBYtGh0#;N3h)h-XuR?O literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable.class new file mode 100644 index 0000000000000000000000000000000000000000..ea377e91407b02dedda8a4355bcc298cc6ab5900 GIT binary patch literal 4185 zcwU`XYjjjs75>g-lABC!fe;=|Lot+BG6B*et(X*~34|t{ghE2%P_^F7oRCXy=B9V< zgrsWgyJ&qwi%|NoT4OCfK$wA!w$&o7*wPlCtxK!^=<>1r<5FDyQNMF%GMP!jYLT^= zd+#~>e0%S2e`lYQbN_krDFD~uHyV5b*Y1ub8X}evj}IH}K!a=BR=mL(GNTQ*N+)i{ zT^Vzm&8T^^5g+I_`YfrzFR(#2?5G)~Uxh^6+Cn;ZWdd2GLqll*i&3NDZ323} zk&Y#}hFQr`LdU(Vc4=59Q0ZAET+?b$u3Y6RfTdWW@|>k`YjxBi$R&eoM^u`V3p$M9 zCS|co$7;`FWbL5x-=O1K&s$Vl(q+}x3M|ZzrY$y{aJyVb8bbk!Zk_UVy+Fm3#Oiu9 zyhEURVz4>U-!B~*Em(d7-l>*13S2q4JkP>Ixlv%_JYJ?xN1R5}4PVWV>N zE`j#i%dg%gLJQy~v}kA+sG2a?*0)DS+&nWKo3TY8!1riolB%n%%OF}tYJu$SYnpdc~?K*a#i^Ut1V_ni!RjJFX zIft6cu@k)-dJ3FzLdUxi=H}$?atzmY1QrymZOe`m;5NKh!+WUZ>9acCr_%MueT;Iqie^Ra^t@-FLM@Eykm%<^GAXcrhJ|kt>NX7MFqNXU0VCeYxHJq-NZK=P zi!u0^VQq07+tDyoFv%*KvE9uH)1r<_VGAtY8B?ODaqSv2=9-4ZGSuuf-GQ2Z>b@ob z3wJ23k-_=-VP}v$*;pXm32;Z27{kLd#KMbFte9(OCZ`H3>o9;l zxI_JXNXK2cTcAvJq81~en)9lBx7`Ddz1I_b-Hf9eJ~GjByqPVd5jm_52^L)CPUwhj zMY~+XVa>!Y0bjq#%~8-8^0yF;sEw<0^E31a+7#I)JyhqcrtLA>_#{o{%_LXV`{bBv z=+pRBP1%;CtW#))q`YbAIJpF-i-jioUUeR|*fG^LG~CBdmY?mmgqzpy4q%;zFSFZE zO}NnPAPy@5JwVTsT`}LpYl{yGTvbR(A<7XPRzHvE_zE87Dd`0|(SqjBB)1-A-&Tsp z1g>c{7=2WU+*?;Oah|J@D9_%;8WP)YCm2NNQVElu#nWm##lUadYJ)EdT{;z7l?@rr z;AYct#{&2kzN6vW0(0_|KE|faR{LEXW6O&q9EZi|Hiu+~X<26G#B5iG-S>2qLobH< z=imSP0EbdK_G4B6r;*n1q`;=jJsqarNOXMPJ3k{vEFvuh{FJKZ(*oE3A4gB-dhkOX zKf<#-1zaXYMONe~UFGRCWpYC0z5t%XPc%Hw(|(GLj&t~_x_(76_peELP1<-@s&;j0 z;w>%VM(w@aS1aFI_w7+vtd~^Zeo+zoijF6|lWWAV5~?>ia>yQ$x5zPN_X{0AQ?d+n z*$F2iTfO$N=n^cfQO>y6+F~*3v?%%{i#mG>@jTHAPJP~*Sb6?0<}cL!%A<%EKJQ5( zc%wqymH0cGUmM`#8|Q*WDa;9qlc+q#Pao#HhN(lh2*h%5Odqqr&q zCElQ&a(FRVe-hQf6R1w&>O(lX=n$3#(^wi#Vfjg{oP4d%*sSRt$C)&)3)iRc_RchJ z2(M0IeWO2(rf{&zpTdU5;$T&A5}TeuD*@E&%^nKZuRM)gC~0iV!141|K>>CPG?t8G zX;sN-uq!ueob%?Zw9~lV2la>)p;yiG7&-jkSI4nw<{-zhl0oeWr(uQX#!?urPa>Yg z-V{F2=&$mxPU3^TRsN@sdAyv*EBJ7hy**?G_ySq^BKg^mO5DfW=KZ{$9>h94K(o>1W`PSQ9Ooy7{|SMoW1j#)YCXlahE@fV?;iI3rOO1ruzn;f91^Ind?81 z_A1lwmHA?}GV1N4tcUR4K8BAostv^d1U|{CZbc0D(379u`|v4zno;iKwfJ6q1|{^o z5TC{8D3uGmXMLVI6wzCNd3=d0mZ_74=CxOtQX8K0`S^zeYYYD#%jWv8rAXx+=?OkTFg0*+{Rz87lC{{60%ApTi0~ zPm6O{gBP$CFY?xV9?g7i;ddKe!Zy5&?aV^)vyquG(kwsfPmHgVU7ig5z6al+m&MHK zak5@SyiDGLD5YNBYMVTf%ljy^R`KmRg`Oj%U>HJe*15?Bp(7!`%kFM!&zMhJHs?z0TPGKpp*& ze~tVJ>+xr7VkJVXQ5b*A+oij5yYz)zErGZc$M!>e7*+!4~XMR AsQ>@~ literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..52143bbcfd6c4d4565702b9b37b933532a335fbc GIT binary patch literal 1011 zcwUWD+iuf95Ix(NI&lpNftFi=7Th)o7bnj_NT@0jQd*FT`oIIy)>%1=oZV=>L6pBj z0)cqo1NbP!?6#@|M8dXg&(5AXGiPS~^Vjzu00!uWSYp`D)jZ7#UY0X%C#luCC{r_) zM&z=z<|N(cQYC{B0mJ4ZY%Z*x+4SYiO05`{?L?MIpNL0Qn1>YcL@H^YGVFJ%g^b?u z_dG4Q%F{z@q{cCb5W!JfVEogaFDe`Pl!7C8)O~OZb09-_uvbn-or;<5r6WiCcPt%W)%4r zEwVN|SB%SO1KzrVs~!_$m8=?J*KmzI*U1;q>W0tqj64q2=zT^Me8a83Q)E=o*r!-K e1)is9V3UZQhgICJH?*l9$s$YQ?ZvjHQiwL_Da%+^32sQpw^e!?07WWbl^1 z=Sj|0mK+vFs%%cCd&J=F>XB%GVJXA~EC#6IVhA6X7`8f9Nty$x#Qtn@EX*r@oC}8b zK&L!E;zqjnv!v&2GgNaB?U3!Ih%2p5CVFOjj`W}Ie?YcrPE&5I7%?o*5$~i1dmmC! zE`#-PlOg`^a-A0hSj8P5w;7@;214A$8bh6@sjxO8ad9>0{nt)tottbn5vm}~hk9mG z@m#tgHXP)!^TrUqP)e9x$0um8%{`Uo+LG0wD8_meVhbIHmfJd#=klXCaMLji8=dZ4 zDQCt{VSV&yU)1P7V6B$h9270k<)cpd21Wby)uU$^Klp+me)#As!cQftN%x>cGpc-p z7Da0%SBT4K17&mtS4&KYWr}KqUBNZVT&J8zZ#T*=&nV+ijrcPH?;CFY-Qpby%F7lj fr@-?T4XhKfGjXr1xsRx%S2D4 z7MU!KK1qgLs(8nT$FM#Rn+a1)P4a4LWT6-q%~+OkkBA3VnEO=mR4QqnF$~+)N(S%v zd!FQ6WyyijQe|^8okIq1w-|{43`-F%U@=4u7bEz%#IV(_O41leCH7~NBcb2$qg*hw z21UyAL$0NLKTCSnHbXTB@ebKuin%J($)uQ-JxltJ`X7*On$wi)Qj8du=QM9y4fl>y z;g+HFag(9@-{m?l2(gMgK5jF_RSZP9i#3KiPg7Br@e|Uj=Dh#bHd^O8n@xl=)bl|x z)2VnN?GOVCd2GEgL@$*Rde`y^8f;@vrFl`3)uAxsViaKuZHA`ZI+Ew|qj+tnqZu~Z zow==?89#;f(W8A)qyK<4n|5c5q1UFD07{19=+XgD$glnQ9<`JLhl=H{Vnl<8aj3o fE2qG7i2&tJwSv%I5>Z literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..7548abf4f5109b2e620393078befca7dae3b17e1 GIT binary patch literal 1090 zcwUWD!EVz)5PjR2I&n=B0xc9M(BhWF1)M@JC_)+AapUqu$HJv6sKJ4F*n1=WLc`C zd?a&`NNw`NXopJ`Y`Sn5mZxzOVY0D_UXG2-6vM0;N*#15alcIF9w{D6CCw9tH|=tg z{#*WzM=4iHv}t)FQ6?j;}O&2#9f->#+xP@hgDvx8Kb?}g(SI&ojSYG9M zG8qYFsEOTdlE>niv>w;2=Dw9M_|KIR`Iapp$oIy!iqlL}h875X6SKIrFf0dJ{*bz^>FLJp}e;|hISq?lb@Eh;{xh~?M9 u&+yj2;rgG&KG5bq7R45hiKoSCSfRwWq1%Nfz-pmlbla~!ei1!R|Pgzk&u#7si+Hf&cvD+P3*|yRFofJ z10RDBLSn%O@KK0sx2gn0B8%}{U!QY)&%OTn>-!G?J7|TNW7x{nBuR5#6k~3OiPbtU z5;KxUWU{d4Ea`En;@uDd!}>IACafOYt*p5$C*$+0z3Wm7V(6NX@44@3nFixJA0ucCx25kg#L*lx}$QtL`34kx3&Ft2$( z7YvQAPI-R9jdc5qWZ-Nw%;q58CEJTJS6ZEo^rYxG(SL6L1F}PX8go;K0mJf?;$5lL zgLkR$V<u!2uo-HKDvhM9ur}iq7q?OaDy^8DHqW0mcQj0MGjRCzTnQ^@*fHK$;+>tgD&OE ZSSL|u;DP6CAoeV3uRm{K(_gcSt=|Nv^N9ce literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$6.class new file mode 100644 index 0000000000000000000000000000000000000000..92758c6ab85cabed6402cb0292b3c44babf4f9fa GIT binary patch literal 883 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/PersistentHashTable.class new file mode 100644 index 0000000000000000000000000000000000000000..92304dccb85ea147ed5eb93222c76d7afc930b04 GIT binary patch literal 4109 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 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c8ce2a57b2baefc5e8821e85ec5cbdd7660cbed7 GIT binary patch literal 1171 zcwUWDT~8B16g@*L+b#=K5JV6~tdutNPw{7% zpcqZ`-5+JVJLMyWYWlD{ckeyto^xkrfBpXU13(3j9SkuPTe9m15!brI&8}~hinOmq z9P(&S#D2p@TO!U^9Hbdm`@sX%ZY$|mkJFo!ea&O)!Z2)hL!B>^P;Ee^H6lF;WoVu< zJSz;$s=ecT+>f|y`3)0?vbDBd++s*qRa0caFyi4HhFzpE>cPPn!*t;vobg&HMZMeJ z5%DJ9i3Gz$O$8*wNsPXalIdhLhUGym<|{PXNS;e2_uHzg%Sqoe4*r5v7}z#LW{*c< zlN%CE6%vQ;`iDStOsJ%GFvn2pXQ3sG>KOl(#hnncn8#HIR~VKC^zC5**BBfN6*Tcw z&vn;?k^el7`F<_bX3fP7+;osXBq(ddYv z>0%kT9IP-b{@>|_(3-b|_OJ?{AxnezHj|ir&bW9sH1NUJ#VOP9EcZT za`t1VrV}uO_fkp`SC6-7d|d{S(!|{mW>+;mJj5d!I_}Ek;=S!Bfihjw6#bhlmrL#{ zMMLyB$WT5@QJt!3TD{WpXSk)6`9pZ0ENYzIu0=CqM#xdLV0(Euj|sp=lel0p9;PsD zdtJl~WiC-JP0U%VvOyI_>s;vo?g1`;!S#>GeaGyZiNaTu4pIJjDmrFGIvB-!qQ_R) a>(P&dQ@CT%cX7{}WVQ;b-M6yyc<=}99xS#1 literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$2.class new file mode 100644 index 0000000000000000000000000000000000000000..18583dc1e06352df08a118f04e7eec9182015fef GIT binary patch literal 1197 zcwUWDO>fgc5PjR2I&n=BLL1uB(iB3QIBlJV69RE5MM6r;A*d2?VUw&JBgc-scEsn8 zLMkc(32q$tQHb#tQdNz>iX6S2ee?Fs%p(ZGGTxYQUJLyS64y#zxaf4wqWkn_`m}kgMs9D@(C{Olx9>$}+ zzk3F%*wAsCVdLNO2SQ5j2x(#yHBu+Hrv*~xw5l(L3@pP+F2W*1mWNI}6n;d#=>&1u z6OY_vdigV#Nj`)5*!M-K>fgc6r62BO^n-wmITUI`3TfW3NGpeDF~^Gf`k<4A*e`j+BjQhi@T22>x$ku zzz;$yAaURa@S_mVn^2(=p&V?@KF`dX_trmueg6UA5gs^LU}!`t3&NPE>6n{QV3H(G zgH&kA<0GMizD0XN*S8%M8G>2#NSI`7f@d-oJ37h^g)$u;#{(X|V^}mJnbxQ3{!=j4~w#DkctDCiq4Rb&&o-S?pw8=0uo z!DWW#e-^rHd8dLB)^N?iRfdf@V|loa8w`%63L2<736&Wc2RmBxI=JGjNL zI^(m4JGe{xCULy3E&UwXc zw!YBo8@$h!Q_gGl3nSeJR0w&5^Xf&c*!n6i5u-}DNT-_h>rVZankR5iaHaJXH(#H% k{76=xtYvLNo?7Opj(axpeXH4kZ&l2;2C*8p-5Q#|0VR9xE&u=k literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer.class new file mode 100644 index 0000000000000000000000000000000000000000..f564268d81b718c4698f8fb5f4bbae31c1067df5 GIT binary patch literal 4402 zcwVJfd3+RS8GgQGli4i8wG`+UT0$>2Az`72O2Q!o(gZgNB_T0jwUcC$EScaLj0YwmFV*D4s~WwE|`1+y%n%2@b8UlSuZFpmb9r znQ*rV6h|xC1p;+;j~PNS=ISUzNW*-AMFm)gFb{LfK&CoMP%1D#o=BR_nZYj8X*0Sk zQ;M^@sl7oPxb`;#ZhwO6R>Ws%IW-I!Jw5da%iOysE>IaQXy|myD%v$%B%rHuB}8ah*o%{Nz;vSr&ij2nU2eG1yQ4NdCWZL)K=`% zuu9;P@vBXS)oVM0W)FGnJlJif+=QJZA{Gtc(3_C>%KmRkLzSMSB@u3q!+oQ-MB|cFjQ@UFfC)rsIs44(7;i zDTnt>V~}n#(Wjv|XQoTH#(W*>8ODaIqaO)+t5>ZAHWtvU5XOZ*d0F#!NKdK3l9oxjn2AQ70iwx z4l@GAO01TJ@jW^o#6tqX zglnn?Kqgehq>|L=@7K=3`|tq`?`KV$eyU>_57UjZ_~+MsKkq~M5FXX=2n)`{*`%te z0&P(ts{zq&pGBSP)XEdD7J$S4ho=C5JC?Xvn!{e+~mTeDYQUYtD)7VtR z|Lg5qSxU1yMpV(XGp>dwb9Hf&Zrd{nOJ(&K&T9BLUyVE&I-ZtKq(%od8-u2N3D4>H zB+heh$gnbIOK)C6&r~xhu+<(^mzS zM|aI6`Rg-tT{cq=dIhysMV{BsEzJ)+ zzndcj37I;DQcorp7L_$=1MhhdLlZKvEigR24~*wEw~)I5w$Rav~eCJ+hmD2q)epjU^tjiPQCmsUpt zobY_-2`rXm9ddpWWgdlEyzoqQ7L8I$_3A8|&f%K)7+R%)dmkHzs#$$^66ktD)ks)& zVHw92>~&WmPW_t+Vhe5EjU8-0ccBf}pabpLhikDP-K06d66WAK+`!gPqOnDxaKwjN zCtk0@9-`nN?9Wy(uR6)0h%(v~YQ>bYp8SH!8O%E0IeXO^u;>h4vpR4V#ht}ft)uA4 z;=qKzLkj*rvhP<4lzUfv1>~$>xkJuu&Wbo^c>0bx>POl6F*u!-VV7PQYN`q!8pRD+ zys2soN4a|&SK(vwbH@nYn#Da;tH*G>lOcG27AH8IYNitxX7TQt0G%2MJc;)ToWtgt zlIloF79XrBjg*e!qcvJYdlnnc;E6Gec1B9Gcxn`%7{N2)Pi66J_<4RJS{9$r;>+Q$ zagoJ0XzDO7t_**h(jz4!`0g;~cT|SIpIb^99x zL(GMn_*?2WY{l(pz%e@c4&Jzn4!j$^xQEU1z3dO}!>zKt;QSQsC$|UiC{FT;I>ra( zl;XI@Lu?%3^Y|HlPU$+b_yvAR>05CNeuZDt6Ad_w-{7}&YzKqncf46bd2#$6f1q=F z8GL`lpXh@!{5j_n>R6=wrH?@{8~#$6#b5LN{U9kHnv~nR(m~SvU48$7e{#Ht8aPVF MFnd66JnoJE0m|>8Y5)KL literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..bfe1d362f7eba0d338d7647e579c5f1844b3b8ed GIT binary patch literal 1136 zcwUWDZBNrs7(JI&%DTFZDJZ@J1-B09<~M^eF$l?$4NWk7F!95syXk7W+oioD>c2A4 zNc`Xr@JAV+dm$KfW^2>txu@qj&uf4F`u+nz8!a1i3|=J1L74D7A8|DZRGKDvpd=rP zTx6#~kH^w$+pri`CovYjZ~aUhIuuJbFW3R-RZi!#D5mcSUqQWSD(e9`<|cj zAmK6!j#L)QXeOj_%wX-MeNhBM$;CCyJ1F3~3mavIr}bGxCd*d3u@r~n;fcuJ@RLL^ z)VgWNlVhI6`g{Rex-ATwGt}s{sVyas%T#_GrsKS&CI5+ih0?xqdO}?t@hlg8hNTIm z>9n2w51}w4%Wd3c@TZRU(!s%fJhbtEVeyZ2M=BAC%*7+DGAx+zg#9Ohj)Qe<*zg$E zrZ>dJCLWV04?~fg-Kx*DD;-^^J4!S4B8$dDq0@1W(s34wgIEuxsA)SoJ>qqw6xp6u z6f~&Hz6_Hzr)+yd4br}g9Rv(jy{s`$;!onWE-_=+s5d4ibJ4tW+AdnOc?J6GShcFx zkE}U*Y%CC7BlSX)w-v(l>5hr`k`T>z{V#BuXSjEUwZG$aQ9{qeTR!Jr#&c08ZCz8t T`1oiVFGjb%YS=Q-*0KE?r3fUy literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..8fd28acb14f049a5978e632bfacf6dd494d1f8c6 GIT binary patch literal 1082 zcwUWDVQbS+6g_W^%aX;mRyUnGbu*i7rl##TnFwP{5IQ%QR1o~|mOk4j=}Spohx)Gs zMe&0_z#k>v_cjL8N}G^y-px7pzI)!yuirm@0%##}F~<=0)i_R4UKAs)2eHnww1~Ch zLs5wQB;Myzg>4rO!`dWfU+8S4 z!sC>yete{JsroZT8eIlwH|q%x42uCSVctgxmjk#cGd!u!l4Nq)N=GX3ay&d1`73^$ z3Wi!IOL*Glxissupkr)d*qouquuZlshFoRp<1iZ+O_TDU+7~FT3#&G{I^uaDdJIbw zS~J`B_dX=T9$Dey7DF`kXwL;cR&m$G9ftMk%>=lIHHHPAB%&z7mNk32>_27)?_?@= z^8R=zl%^(*vT>e>=h8Ur8Qo(eBi;+8M80cE2y(r$r;;=)D9gUkgRB>zjs`>3OrGSa z{3H&IT{*)>y)kijXHJ~bw$Y?9D$y^*s#P;fgy!gRu|RQ;&>J`u2g=dbSNPGxM=Q=Z z1fMOhLT}&l8F3C#B@_{#*tmikV9`}vvz#)P2$d{aCghOnI&RRn6^fbFOy+3ubl+-1Y*-be+gvql+ES}{@CPS#7zY3V literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..0b3d3c93e59633fb8617be8f2932c2580eff5ca4 GIT binary patch literal 2391 zcwUWFYgb!E6x|a7xuh40!P45+3N591ASo3eJfu<{CCaNnsZg;U!Wb@1?oIE#Ag%h< zAL19kT9*ZutmO~zN4eZH2~Ee7u>CEz9@sB zEW?d#=y}B;8@jTj0_AUKr={b@5EW?Il-n{}lx`tAySAzFp+L0k`J6Ye6Ala1B~wdO9re~#9Cc{2(TI2>1kT&2M+4_6$5k_1r8VU*%C(}> z4!yiAE=k|f`>HS+Za9HJ=hW%Y8NNkFcVy9dsph256M>t_R88B03cYfet*8yga8aPA zmR{Z~l{_~)dMI9`v|?o8J%Pp}3~{vKioWJmfwtsHa#m7H7On}zHP)Vofh>@jc3h94 zL!j%F>#0EN2R3e?lR*i-;+2*)LZwcM;^;y$hFbz1r?O!qg*2lCDx6euU9)(hR+Oa} zx|y2OGt=2?p+}&3cK%+jlAt+OlZD#?t%i-a5AHC!IndiUGU(I9ek`z>JWC;*#CjG< zYDtsysg2Lj&jOa~>xSL`p=-7rI-YBY7(5#hcPxBP-|Qd@cLgkS$=vL`g%JV!a5v!; zSsMfBV?&jzb$sItRZP$RmaEI}aqa5~Oxk!C7xYEHwDA?D1nNx$fn-gi8ZzC*Gd5zd z;+VsH3=gWUGs-lMWM^cFS_{0glUK)gi@tONN4cSm1uQaj5K8^3v?X)3@Ur`*UtssQ z)%vqNPAVSFdAOu^VF zfmu3VuGq``GZK?$3N9sULeiOAMcKx45O!4UIQl_O<}^bsM+H{)y@D@Gr zX32b>Z%OBEo$s@>k_mEX)hp0{Cac=nj4yaweqQP7KJ0I;$HLFKuJX+js{(W|lXd)R zMfl^V!mLAtu-;Pl981JJT#~5t_S8<=Wo8GU#SANCi>EH29V$IOB-p%zcoajEhSG2Rx zLkK*2tPnDtAWb=FTgoM=Kufz literal 0 HcwPel00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..c9b9175cca030124c80170f0d3dda1cb7ed00cfb GIT binary patch literal 1160 zcwUWDYflqF6g@)=+m^WztQ1-#JE$1vS+e6wbA&uekHYf9I(JySZo zDLm2MH!H&Pctdy^q711$zRyjYI}LMvXHV25!(d@+?RB}dz4oe7Vn~bQy#hIm8B(7<5i{!eD6H+dWk z*K{N>NUF=0Bi8)pj%dH-J1SVZ?AEwl|a2^x9qxTCvXq`Iiy1C`mFLUhqqRR}|eiHB4U-f9V_&M<$eG&(8+l0_9_iD9anjPt-pIv(Q*4T^M6 ziZ+t#qFlo>hU{6hE0*Vx{iNrm&o$AKmg~@*eG*?75}SejjivgUJZX=i0w6<^5uqE` zhe`BffOcB2i_xCOh1L;T>qyecP;fID)Dus~jxqclqhAB~7=4F=K#LS+fn4S=9-OFm z;?#YK{whHK>=7oLa??W)rf@@XscGm0_&_A;Ec*?kvxm5S@a`wF?^Bs$ r+&#i9S>{ujLo6I(`5?e)B<1M^fqAm5Qp}gvisit | visitEnum | + * visitAnnotation | visitArray)* visitEnd. + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +public interface AnnotationVisitor { + + /** + * Visits a primitive value of the annotation. + * + * @param name the value name. + * @param value the actual value, whose type must be {@link Byte}, + * {@link Boolean}, {@link Character}, {@link Short}, + * {@link Integer}, {@link Long}, {@link Float}, {@link Double}, + * {@link String} or {@link Type}. + */ + void visit(String name, Object value); + + /** + * Visits an enumeration value of the annotation. + * + * @param name the value name. + * @param desc the class descriptor of the enumeration class. + * @param value the actual enumeration value. + */ + void visitEnum(String name, String desc, String value); + + /** + * Visits a nested annotation value of the annotation. + * + * @param name the value name. + * @param desc the class descriptor of the nested annotation class. + * @return a non null visitor to visit the actual nested annotation value. + * The nested annotation value must be fully visited before + * calling other methods on this annotation visitor. + */ + AnnotationVisitor visitAnnotation(String name, String desc); + + /** + * Visits an array value of the annotation. + * + * @param name the value name. + * @return a non null visitor to visit the actual array value elements. The + * 'name' parameters passed to the methods of this visitor are + * ignored. All the array values must be visited before calling + * other methods on this annotation visitor. + */ + AnnotationVisitor visitArray(String name); + + /** + * Visits the end of the annotation. + */ + void visitEnd(); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java new file mode 100644 index 00000000000..918e23419bf --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationWriter.java @@ -0,0 +1,311 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * An {@link AnnotationVisitor} that generates annotations in bytecode form. + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +final class AnnotationWriter implements AnnotationVisitor { + + /** + * The class writer to which this annotation must be added. + */ + private final ClassWriter cw; + + /** + * The number of values in this annotation. + */ + private int size; + + /** + * true if values are named, false otherwise. Annotation + * writers used for annotation default and annotation arrays use unnamed + * values. + */ + private final boolean named; + + /** + * The annotation values in bytecode form. This byte vector only contains + * the values themselves, i.e. the number of values must be stored as a + * unsigned short just before these bytes. + */ + private final ByteVector bv; + + /** + * The byte vector to be used to store the number of values of this + * annotation. See {@link #bv}. + */ + private final ByteVector parent; + + /** + * Where the number of values of this annotation must be stored in + * {@link #parent}. + */ + private final int offset; + + /** + * Next annotation writer. This field is used to store annotation lists. + */ + AnnotationWriter next; + + /** + * Previous annotation writer. This field is used to store annotation lists. + */ + AnnotationWriter prev; + + // ------------------------------------------------------------------------ + // Constructor + // ------------------------------------------------------------------------ + + /** + * Constructs a new {@link AnnotationWriter}. + * + * @param cw the class writer to which this annotation must be added. + * @param named true if values are named, false otherwise. + * @param bv where the annotation values must be stored. + * @param parent where the number of annotation values must be stored. + * @param offset where in parent the number of annotation values must + * be stored. + */ + AnnotationWriter( + final ClassWriter cw, + final boolean named, + final ByteVector bv, + final ByteVector parent, + final int offset) + { + this.cw = cw; + this.named = named; + this.bv = bv; + this.parent = parent; + this.offset = offset; + } + + // ------------------------------------------------------------------------ + // Implementation of the AnnotationVisitor interface + // ------------------------------------------------------------------------ + + public void visit(final String name, final Object value) { + ++size; + if (named) { + bv.putShort(cw.newUTF8(name)); + } + if (value instanceof String) { + bv.put12('s', cw.newUTF8((String) value)); + } else if (value instanceof Byte) { + bv.put12('B', cw.newInteger(((Byte) value).byteValue()).index); + } else if (value instanceof Boolean) { + int v = ((Boolean) value).booleanValue() ? 1 : 0; + bv.put12('Z', cw.newInteger(v).index); + } else if (value instanceof Character) { + bv.put12('C', cw.newInteger(((Character) value).charValue()).index); + } else if (value instanceof Short) { + bv.put12('S', cw.newInteger(((Short) value).shortValue()).index); + } else if (value instanceof Type) { + bv.put12('c', cw.newUTF8(((Type) value).getDescriptor())); + } else if (value instanceof byte[]) { + byte[] v = (byte[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('B', cw.newInteger(v[i]).index); + } + } else if (value instanceof boolean[]) { + boolean[] v = (boolean[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('Z', cw.newInteger(v[i] ? 1 : 0).index); + } + } else if (value instanceof short[]) { + short[] v = (short[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('S', cw.newInteger(v[i]).index); + } + } else if (value instanceof char[]) { + char[] v = (char[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('C', cw.newInteger(v[i]).index); + } + } else if (value instanceof int[]) { + int[] v = (int[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('I', cw.newInteger(v[i]).index); + } + } else if (value instanceof long[]) { + long[] v = (long[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('J', cw.newLong(v[i]).index); + } + } else if (value instanceof float[]) { + float[] v = (float[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('F', cw.newFloat(v[i]).index); + } + } else if (value instanceof double[]) { + double[] v = (double[]) value; + bv.put12('[', v.length); + for (int i = 0; i < v.length; i++) { + bv.put12('D', cw.newDouble(v[i]).index); + } + } else { + Item i = cw.newConstItem(value); + bv.put12(".s.IFJDCS".charAt(i.type), i.index); + } + } + + public void visitEnum( + final String name, + final String desc, + final String value) + { + ++size; + if (named) { + bv.putShort(cw.newUTF8(name)); + } + bv.put12('e', cw.newUTF8(desc)).putShort(cw.newUTF8(value)); + } + + public AnnotationVisitor visitAnnotation( + final String name, + final String desc) + { + ++size; + if (named) { + bv.putShort(cw.newUTF8(name)); + } + // write tag and type, and reserve space for values count + bv.put12('@', cw.newUTF8(desc)).putShort(0); + return new AnnotationWriter(cw, true, bv, bv, bv.length - 2); + } + + public AnnotationVisitor visitArray(final String name) { + ++size; + if (named) { + bv.putShort(cw.newUTF8(name)); + } + // write tag, and reserve space for array size + bv.put12('[', 0); + return new AnnotationWriter(cw, false, bv, bv, bv.length - 2); + } + + public void visitEnd() { + if (parent != null) { + byte[] data = parent.data; + data[offset] = (byte) (size >>> 8); + data[offset + 1] = (byte) size; + } + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + /** + * Returns the size of this annotation writer list. + * + * @return the size of this annotation writer list. + */ + int getSize() { + int size = 0; + AnnotationWriter aw = this; + while (aw != null) { + size += aw.bv.length; + aw = aw.next; + } + return size; + } + + /** + * Puts the annotations of this annotation writer list into the given byte + * vector. + * + * @param out where the annotations must be put. + */ + void put(final ByteVector out) { + int n = 0; + int size = 2; + AnnotationWriter aw = this; + AnnotationWriter last = null; + while (aw != null) { + ++n; + size += aw.bv.length; + aw.visitEnd(); // in case user forgot to call visitEnd + aw.prev = last; + last = aw; + aw = aw.next; + } + out.putInt(size); + out.putShort(n); + aw = last; + while (aw != null) { + out.putByteArray(aw.bv.data, 0, aw.bv.length); + aw = aw.prev; + } + } + + /** + * Puts the given annotation lists into the given byte vector. + * + * @param panns an array of annotation writer lists. + * @param out where the annotations must be put. + */ + static void put(final AnnotationWriter[] panns, final ByteVector out) { + int size = 1 + 2 * panns.length; + for (int i = 0; i < panns.length; ++i) { + size += panns[i] == null ? 0 : panns[i].getSize(); + } + out.putInt(size).putByte(panns.length); + for (int i = 0; i < panns.length; ++i) { + AnnotationWriter aw = panns[i]; + AnnotationWriter last = null; + int n = 0; + while (aw != null) { + ++n; + aw.visitEnd(); // in case user forgot to call visitEnd + aw.prev = last; + last = aw; + aw = aw.next; + } + out.putShort(n); + aw = last; + while (aw != null) { + out.putByteArray(aw.bv.data, 0, aw.bv.length); + aw = aw.prev; + } + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java new file mode 100644 index 00000000000..c55eb9324d0 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/Attribute.java @@ -0,0 +1,254 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A non standard class, field, method or code attribute. + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +public class Attribute { + + /** + * The type of this attribute. + */ + public final String type; + + /** + * The raw value of this attribute, used only for unknown attributes. + */ + byte[] value; + + /** + * The next attribute in this attribute list. May be null. + */ + Attribute next; + + /** + * Constructs a new empty attribute. + * + * @param type the type of the attribute. + */ + protected Attribute(final String type) { + this.type = type; + } + + /** + * Returns true if this type of attribute is unknown. The default + * implementation of this method always returns true. + * + * @return true if this type of attribute is unknown. + */ + public boolean isUnknown() { + return true; + } + + /** + * Returns true if this type of attribute is a code attribute. + * + * @return true if this type of attribute is a code attribute. + */ + public boolean isCodeAttribute() { + return false; + } + + /** + * Returns the labels corresponding to this attribute. + * + * @return the labels corresponding to this attribute, or null if + * this attribute is not a code attribute that contains labels. + */ + protected Label[] getLabels() { + return null; + } + + /** + * Reads a {@link #type type} attribute. This method must return a new + * {@link Attribute} object, of type {@link #type type}, corresponding to + * the len bytes starting at the given offset, in the given class + * reader. + * + * @param cr the class that contains the attribute to be read. + * @param off index of the first byte of the attribute's content in {@link + * ClassReader#b cr.b}. The 6 attribute header bytes, containing the + * type and the length of the attribute, are not taken into account + * here. + * @param len the length of the attribute's content. + * @param buf buffer to be used to call + * {@link ClassReader#readUTF8 readUTF8}, + * {@link ClassReader#readClass(int,char[]) readClass} or + * {@link ClassReader#readConst readConst}. + * @param codeOff index of the first byte of code's attribute content in + * {@link ClassReader#b cr.b}, or -1 if the attribute to be read is + * not a code attribute. The 6 attribute header bytes, containing the + * type and the length of the attribute, are not taken into account + * here. + * @param labels the labels of the method's code, or null if the + * attribute to be read is not a code attribute. + * @return a new {@link Attribute} object corresponding to the given + * bytes. + */ + protected Attribute read( + ClassReader cr, + int off, + int len, + char[] buf, + int codeOff, + Label[] labels) + { + Attribute attr = new Attribute(type); + attr.value = new byte[len]; + System.arraycopy(cr.b, off, attr.value, 0, len); + return attr; + } + + /** + * Returns the byte array form of this attribute. + * + * @param cw the class to which this attribute must be added. This parameter + * can be used to add to the constant pool of this class the items + * that corresponds to this attribute. + * @param code the bytecode of the method corresponding to this code + * attribute, or null if this attribute is not a code + * attributes. + * @param len the length of the bytecode of the method corresponding to this + * code attribute, or null if this attribute is not a code + * attribute. + * @param maxStack the maximum stack size of the method corresponding to + * this code attribute, or -1 if this attribute is not a code + * attribute. + * @param maxLocals the maximum number of local variables of the method + * corresponding to this code attribute, or -1 if this attribute is + * not a code attribute. + * @return the byte array form of this attribute. + */ + protected ByteVector write( + ClassWriter cw, + byte[] code, + int len, + int maxStack, + int maxLocals) + { + ByteVector v = new ByteVector(); + v.data = value; + v.length = value.length; + return v; + } + + /** + * Returns the length of the attribute list that begins with this attribute. + * + * @return the length of the attribute list that begins with this attribute. + */ + final int getCount() { + int count = 0; + Attribute attr = this; + while (attr != null) { + count += 1; + attr = attr.next; + } + return count; + } + + /** + * Returns the size of all the attributes in this attribute list. + * + * @param cw the class writer to be used to convert the attributes into byte + * arrays, with the {@link #write write} method. + * @param code the bytecode of the method corresponding to these code + * attributes, or null if these attributes are not code + * attributes. + * @param len the length of the bytecode of the method corresponding to + * these code attributes, or null if these attributes are + * not code attributes. + * @param maxStack the maximum stack size of the method corresponding to + * these code attributes, or -1 if these attributes are not code + * attributes. + * @param maxLocals the maximum number of local variables of the method + * corresponding to these code attributes, or -1 if these attributes + * are not code attributes. + * @return the size of all the attributes in this attribute list. This size + * includes the size of the attribute headers. + */ + final int getSize( + final ClassWriter cw, + final byte[] code, + final int len, + final int maxStack, + final int maxLocals) + { + Attribute attr = this; + int size = 0; + while (attr != null) { + cw.newUTF8(attr.type); + size += attr.write(cw, code, len, maxStack, maxLocals).length + 6; + attr = attr.next; + } + return size; + } + + /** + * Writes all the attributes of this attribute list in the given byte + * vector. + * + * @param cw the class writer to be used to convert the attributes into byte + * arrays, with the {@link #write write} method. + * @param code the bytecode of the method corresponding to these code + * attributes, or null if these attributes are not code + * attributes. + * @param len the length of the bytecode of the method corresponding to + * these code attributes, or null if these attributes are + * not code attributes. + * @param maxStack the maximum stack size of the method corresponding to + * these code attributes, or -1 if these attributes are not code + * attributes. + * @param maxLocals the maximum number of local variables of the method + * corresponding to these code attributes, or -1 if these attributes + * are not code attributes. + * @param out where the attributes must be written. + */ + final void put( + final ClassWriter cw, + final byte[] code, + final int len, + final int maxStack, + final int maxLocals, + final ByteVector out) + { + Attribute attr = this; + while (attr != null) { + ByteVector b = attr.write(cw, code, len, maxStack, maxLocals); + out.putShort(cw.newUTF8(attr.type)).putInt(b.length); + out.putByteArray(b.data, 0, b.length); + attr = attr.next; + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java new file mode 100644 index 00000000000..270778b860e --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/ByteVector.java @@ -0,0 +1,293 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A dynamically extensible vector of bytes. This class is roughly equivalent to + * a DataOutputStream on top of a ByteArrayOutputStream, but is more efficient. + * + * @author Eric Bruneton + */ +public class ByteVector { + + /** + * The content of this vector. + */ + byte[] data; + + /** + * Actual number of bytes in this vector. + */ + int length; + + /** + * Constructs a new {@link ByteVector ByteVector} with a default initial + * size. + */ + public ByteVector() { + data = new byte[64]; + } + + /** + * Constructs a new {@link ByteVector ByteVector} with the given initial + * size. + * + * @param initialSize the initial size of the byte vector to be constructed. + */ + public ByteVector(final int initialSize) { + data = new byte[initialSize]; + } + + /** + * Puts a byte into this byte vector. The byte vector is automatically + * enlarged if necessary. + * + * @param b a byte. + * @return this byte vector. + */ + public ByteVector putByte(final int b) { + int length = this.length; + if (length + 1 > data.length) { + enlarge(1); + } + data[length++] = (byte) b; + this.length = length; + return this; + } + + /** + * Puts two bytes into this byte vector. The byte vector is automatically + * enlarged if necessary. + * + * @param b1 a byte. + * @param b2 another byte. + * @return this byte vector. + */ + ByteVector put11(final int b1, final int b2) { + int length = this.length; + if (length + 2 > data.length) { + enlarge(2); + } + byte[] data = this.data; + data[length++] = (byte) b1; + data[length++] = (byte) b2; + this.length = length; + return this; + } + + /** + * Puts a short into this byte vector. The byte vector is automatically + * enlarged if necessary. + * + * @param s a short. + * @return this byte vector. + */ + public ByteVector putShort(final int s) { + int length = this.length; + if (length + 2 > data.length) { + enlarge(2); + } + byte[] data = this.data; + data[length++] = (byte) (s >>> 8); + data[length++] = (byte) s; + this.length = length; + return this; + } + + /** + * Puts a byte and a short into this byte vector. The byte vector is + * automatically enlarged if necessary. + * + * @param b a byte. + * @param s a short. + * @return this byte vector. + */ + ByteVector put12(final int b, final int s) { + int length = this.length; + if (length + 3 > data.length) { + enlarge(3); + } + byte[] data = this.data; + data[length++] = (byte) b; + data[length++] = (byte) (s >>> 8); + data[length++] = (byte) s; + this.length = length; + return this; + } + + /** + * Puts an int into this byte vector. The byte vector is automatically + * enlarged if necessary. + * + * @param i an int. + * @return this byte vector. + */ + public ByteVector putInt(final int i) { + int length = this.length; + if (length + 4 > data.length) { + enlarge(4); + } + byte[] data = this.data; + data[length++] = (byte) (i >>> 24); + data[length++] = (byte) (i >>> 16); + data[length++] = (byte) (i >>> 8); + data[length++] = (byte) i; + this.length = length; + return this; + } + + /** + * Puts a long into this byte vector. The byte vector is automatically + * enlarged if necessary. + * + * @param l a long. + * @return this byte vector. + */ + public ByteVector putLong(final long l) { + int length = this.length; + if (length + 8 > data.length) { + enlarge(8); + } + byte[] data = this.data; + int i = (int) (l >>> 32); + data[length++] = (byte) (i >>> 24); + data[length++] = (byte) (i >>> 16); + data[length++] = (byte) (i >>> 8); + data[length++] = (byte) i; + i = (int) l; + data[length++] = (byte) (i >>> 24); + data[length++] = (byte) (i >>> 16); + data[length++] = (byte) (i >>> 8); + data[length++] = (byte) i; + this.length = length; + return this; + } + + /** + * Puts an UTF8 string into this byte vector. The byte vector is + * automatically enlarged if necessary. + * + * @param s a String. + * @return this byte vector. + */ + public ByteVector putUTF8(final String s) { + int charLength = s.length(); + if (length + 2 + charLength > data.length) { + enlarge(2 + charLength); + } + int len = length; + byte[] data = this.data; + // optimistic algorithm: instead of computing the byte length and then + // serializing the string (which requires two loops), we assume the byte + // length is equal to char length (which is the most frequent case), and + // we start serializing the string right away. During the serialization, + // if we find that this assumption is wrong, we continue with the + // general method. + data[len++] = (byte) (charLength >>> 8); + data[len++] = (byte) (charLength); + for (int i = 0; i < charLength; ++i) { + char c = s.charAt(i); + if (c >= '\001' && c <= '\177') { + data[len++] = (byte) c; + } else { + int byteLength = i; + for (int j = i; j < charLength; ++j) { + c = s.charAt(j); + if (c >= '\001' && c <= '\177') { + byteLength++; + } else if (c > '\u07FF') { + byteLength += 3; + } else { + byteLength += 2; + } + } + data[length] = (byte) (byteLength >>> 8); + data[length + 1] = (byte) (byteLength); + if (length + 2 + byteLength > data.length) { + length = len; + enlarge(2 + byteLength); + data = this.data; + } + for (int j = i; j < charLength; ++j) { + c = s.charAt(j); + if (c >= '\001' && c <= '\177') { + data[len++] = (byte) c; + } else if (c > '\u07FF') { + data[len++] = (byte) (0xE0 | c >> 12 & 0xF); + data[len++] = (byte) (0x80 | c >> 6 & 0x3F); + data[len++] = (byte) (0x80 | c & 0x3F); + } else { + data[len++] = (byte) (0xC0 | c >> 6 & 0x1F); + data[len++] = (byte) (0x80 | c & 0x3F); + } + } + break; + } + } + length = len; + return this; + } + + /** + * Puts an array of bytes into this byte vector. The byte vector is + * automatically enlarged if necessary. + * + * @param b an array of bytes. May be null to put len + * null bytes into this byte vector. + * @param off index of the fist byte of b that must be copied. + * @param len number of bytes of b that must be copied. + * @return this byte vector. + */ + public ByteVector putByteArray(final byte[] b, final int off, final int len) + { + if (length + len > data.length) { + enlarge(len); + } + if (b != null) { + System.arraycopy(b, off, data, length, len); + } + length += len; + return this; + } + + /** + * Enlarge this byte vector so that it can receive n more bytes. + * + * @param size number of additional bytes that this byte vector should be + * able to receive. + */ + private void enlarge(final int size) { + int length1 = 2 * data.length; + int length2 = length + size; + byte[] newData = new byte[length1 > length2 ? length1 : length2]; + System.arraycopy(data, 0, newData, 0, length); + data = newData; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java new file mode 100644 index 00000000000..5f12b08d542 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassAdapter.java @@ -0,0 +1,121 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * An empty {@link ClassVisitor} that delegates to another {@link ClassVisitor}. + * This class can be used as a super class to quickly implement usefull class + * adapter classes, just by overriding the necessary methods. + * + * @author Eric Bruneton + */ +public class ClassAdapter implements ClassVisitor { + + /** + * The {@link ClassVisitor} to which this adapter delegates calls. + */ + protected ClassVisitor cv; + + /** + * Constructs a new {@link ClassAdapter} object. + * + * @param cv the class visitor to which this adapter must delegate calls. + */ + public ClassAdapter(final ClassVisitor cv) { + this.cv = cv; + } + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + cv.visit(version, access, name, signature, superName, interfaces); + } + + public void visitSource(final String source, final String debug) { + cv.visitSource(source, debug); + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + cv.visitOuterClass(owner, name, desc); + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + return cv.visitAnnotation(desc, visible); + } + + public void visitAttribute(final Attribute attr) { + cv.visitAttribute(attr); + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + cv.visitInnerClass(name, outerName, innerName, access); + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + return cv.visitField(access, name, desc, signature, value); + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + return cv.visitMethod(access, name, desc, signature, exceptions); + } + + public void visitEnd() { + cv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java new file mode 100644 index 00000000000..6924b57dc6d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassReader.java @@ -0,0 +1,1606 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +import java.io.InputStream; +import java.io.IOException; + +/** + * A Java class parser to make a {@link ClassVisitor} visit an existing class. + * This class parses a byte array conforming to the Java class file format and + * calls the appropriate visit methods of a given class visitor for each field, + * method and bytecode instruction encountered. + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +public class ClassReader { + + /** + * The class to be parsed. The content of this array must not be + * modified. This field is intended for {@link Attribute} sub classes, and + * is normally not needed by class generators or adapters. + */ + public final byte[] b; + + /** + * The start index of each constant pool item in {@link #b b}, plus one. + * The one byte offset skips the constant pool item tag that indicates its + * type. + */ + private int[] items; + + /** + * The String objects corresponding to the CONSTANT_Utf8 items. This cache + * avoids multiple parsing of a given CONSTANT_Utf8 constant pool item, + * which GREATLY improves performances (by a factor 2 to 3). This caching + * strategy could be extended to all constant pool items, but its benefit + * would not be so great for these items (because they are much less + * expensive to parse than CONSTANT_Utf8 items). + */ + private String[] strings; + + /** + * Maximum length of the strings contained in the constant pool of the + * class. + */ + private int maxStringLength; + + /** + * Start index of the class header information (access, name...) in + * {@link #b b}. + */ + public final int header; + + // ------------------------------------------------------------------------ + // Constructors + // ------------------------------------------------------------------------ + + /** + * Constructs a new {@link ClassReader} object. + * + * @param b the bytecode of the class to be read. + */ + public ClassReader(final byte[] b) { + this(b, 0, b.length); + } + + /** + * Constructs a new {@link ClassReader} object. + * + * @param b the bytecode of the class to be read. + * @param off the start offset of the class data. + * @param len the length of the class data. + */ + public ClassReader(final byte[] b, final int off, final int len) { + this.b = b; + // parses the constant pool + items = new int[readUnsignedShort(off + 8)]; + int ll = items.length; + strings = new String[ll]; + int max = 0; + int index = off + 10; + for (int i = 1; i < ll; ++i) { + items[i] = index + 1; + int tag = b[index]; + int size; + switch (tag) { + case ClassWriter.FIELD: + case ClassWriter.METH: + case ClassWriter.IMETH: + case ClassWriter.INT: + case ClassWriter.FLOAT: + case ClassWriter.NAME_TYPE: + size = 5; + break; + case ClassWriter.LONG: + case ClassWriter.DOUBLE: + size = 9; + ++i; + break; + case ClassWriter.UTF8: + size = 3 + readUnsignedShort(index + 1); + if (size > max) { + max = size; + } + break; + // case ClassWriter.CLASS: + // case ClassWriter.STR: + default: + size = 3; + break; + } + index += size; + } + maxStringLength = max; + // the class header information starts just after the constant pool + header = index; + } + + /** + * Copies the constant pool data into the given {@link ClassWriter}. Should + * be called before the {@link #accept(ClassVisitor,boolean)} method. + * + * @param classWriter the {@link ClassWriter} to copy constant pool into. + */ + void copyPool(final ClassWriter classWriter) { + char[] buf = new char[maxStringLength]; + int ll = items.length; + Item[] items2 = new Item[ll]; + for (int i = 1; i < ll; i++) { + int index = items[i]; + int tag = b[index - 1]; + Item item = new Item(i); + int nameType; + switch (tag) { + case ClassWriter.FIELD: + case ClassWriter.METH: + case ClassWriter.IMETH: + nameType = items[readUnsignedShort(index + 2)]; + item.set(tag, + readClass(index, buf), + readUTF8(nameType, buf), + readUTF8(nameType + 2, buf)); + break; + + case ClassWriter.INT: + item.set(readInt(index)); + break; + + case ClassWriter.FLOAT: + item.set(Float.intBitsToFloat(readInt(index))); + break; + + case ClassWriter.NAME_TYPE: + item.set(tag, + readUTF8(index, buf), + readUTF8(index + 2, buf), + null); + break; + + case ClassWriter.LONG: + item.set(readLong(index)); + ++i; + break; + + case ClassWriter.DOUBLE: + item.set(Double.longBitsToDouble(readLong(index))); + ++i; + break; + + case ClassWriter.UTF8: { + String s = strings[i]; + if (s == null) { + index = items[i]; + s = strings[i] = readUTF(index + 2, + readUnsignedShort(index), + buf); + } + item.set(tag, s, null, null); + } + break; + + // case ClassWriter.STR: + // case ClassWriter.CLASS: + default: + item.set(tag, readUTF8(index, buf), null, null); + break; + } + + int index2 = item.hashCode % items2.length; + item.next = items2[index2]; + items2[index2] = item; + } + + int off = items[1] - 1; + classWriter.pool.putByteArray(b, off, header - off); + classWriter.items = items2; + classWriter.threshold = (int) (0.75d * ll); + classWriter.index = ll; + } + + /** + * Constructs a new {@link ClassReader} object. + * + * @param is an input stream from which to read the class. + * @throws IOException if a problem occurs during reading. + */ + public ClassReader(final InputStream is) throws IOException { + this(readClass(is)); + } + + /** + * Constructs a new {@link ClassReader} object. + * + * @param name the fully qualified name of the class to be read. + * @throws IOException if an exception occurs during reading. + */ + public ClassReader(final String name) throws IOException { + this(ClassLoader.getSystemResourceAsStream(name.replace('.', '/') + + ".class")); + } + + /** + * Reads the bytecode of a class. + * + * @param is an input stream from which to read the class. + * @return the bytecode read from the given input stream. + * @throws IOException if a problem occurs during reading. + */ + private static byte[] readClass(final InputStream is) throws IOException { + if (is == null) { + throw new IOException("Class not found"); + } + byte[] b = new byte[is.available()]; + int len = 0; + while (true) { + int n = is.read(b, len, b.length - len); + if (n == -1) { + if (len < b.length) { + byte[] c = new byte[len]; + System.arraycopy(b, 0, c, 0, len); + b = c; + } + return b; + } + len += n; + if (len == b.length) { + byte[] c = new byte[b.length + 1000]; + System.arraycopy(b, 0, c, 0, len); + b = c; + } + } + } + + // ------------------------------------------------------------------------ + // Public methods + // ------------------------------------------------------------------------ + + /** + * Makes the given visitor visit the Java class of this {@link ClassReader}. + * This class is the one specified in the constructor (see + * {@link #ClassReader(byte[]) ClassReader}). + * + * @param classVisitor the visitor that must visit this class. + * @param skipDebug true if the debug information of the class + * must not be visited. In this case the + * {@link MethodVisitor#visitLocalVariable visitLocalVariable} and + * {@link MethodVisitor#visitLineNumber visitLineNumber} methods will + * not be called. + */ + public void accept(final ClassVisitor classVisitor, final boolean skipDebug) + { + accept(classVisitor, new Attribute[0], skipDebug); + } + + /** + * Makes the given visitor visit the Java class of this {@link ClassReader}. + * This class is the one specified in the constructor (see + * {@link #ClassReader(byte[]) ClassReader}). + * + * @param classVisitor the visitor that must visit this class. + * @param attrs prototypes of the attributes that must be parsed during the + * visit of the class. Any attribute whose type is not equal to the + * type of one the prototypes will be ignored. + * @param skipDebug true if the debug information of the class + * must not be visited. In this case the + * {@link MethodVisitor#visitLocalVariable visitLocalVariable} and + * {@link MethodVisitor#visitLineNumber visitLineNumber} methods will + * not be called. + */ + public void accept( + final ClassVisitor classVisitor, + final Attribute[] attrs, + final boolean skipDebug) + { + byte[] b = this.b; // the bytecode array + char[] c = new char[maxStringLength]; // buffer used to read strings + int i, j, k; // loop variables + int u, v, w; // indexes in b + Attribute attr; + + int access; + String name; + String desc; + String attrName; + String signature; + int anns = 0; + int ianns = 0; + Attribute cattrs = null; + + // visits the header + u = header; + access = readUnsignedShort(u); + name = readClass(u + 2, c); + v = items[readUnsignedShort(u + 4)]; + String superClassName = v == 0 ? null : readUTF8(v, c); + String[] implementedItfs = new String[readUnsignedShort(u + 6)]; + w = 0; + u += 8; + for (i = 0; i < implementedItfs.length; ++i) { + implementedItfs[i] = readClass(u, c); + u += 2; + } + + // skips fields and methods + v = u; + i = readUnsignedShort(v); + v += 2; + for (; i > 0; --i) { + j = readUnsignedShort(v + 6); + v += 8; + for (; j > 0; --j) { + v += 6 + readInt(v + 2); + } + } + i = readUnsignedShort(v); + v += 2; + for (; i > 0; --i) { + j = readUnsignedShort(v + 6); + v += 8; + for (; j > 0; --j) { + v += 6 + readInt(v + 2); + } + } + // reads the class's attributes + signature = null; + String sourceFile = null; + String sourceDebug = null; + String enclosingOwner = null; + String enclosingName = null; + String enclosingDesc = null; + + i = readUnsignedShort(v); + v += 2; + for (; i > 0; --i) { + attrName = readUTF8(v, c); + if (attrName.equals("SourceFile")) { + sourceFile = readUTF8(v + 6, c); + } else if (attrName.equals("Deprecated")) { + access |= Opcodes.ACC_DEPRECATED; + } else if (attrName.equals("Synthetic")) { + access |= Opcodes.ACC_SYNTHETIC; + } else if (attrName.equals("Annotation")) { + access |= Opcodes.ACC_ANNOTATION; + } else if (attrName.equals("Enum")) { + access |= Opcodes.ACC_ENUM; + } else if (attrName.equals("InnerClasses")) { + w = v + 6; + } else if (attrName.equals("Signature")) { + signature = readUTF8(v + 6, c); + } else if (attrName.equals("SourceDebugExtension")) { + int len = readInt(v + 2); + sourceDebug = readUTF(v + 6, len, new char[len]); + } else if (attrName.equals("EnclosingMethod")) { + enclosingOwner = readClass(v + 6, c); + int item = readUnsignedShort(v + 8); + if (item != 0) { + enclosingName = readUTF8(items[item], c); + enclosingDesc = readUTF8(items[item] + 2, c); + } + } else if (attrName.equals("RuntimeVisibleAnnotations")) { + anns = v + 6; + } else if (attrName.equals("RuntimeInvisibleAnnotations")) { + ianns = v + 6; + } else { + attr = readAttribute(attrs, + attrName, + v + 6, + readInt(v + 2), + c, + -1, + null); + if (attr != null) { + attr.next = cattrs; + cattrs = attr; + } + } + v += 6 + readInt(v + 2); + } + // calls the visit method + classVisitor.visit(readInt(4), + access, + name, + signature, + superClassName, + implementedItfs); + + // calls the visitSource method + if (sourceFile != null || sourceDebug != null) { + classVisitor.visitSource(sourceFile, sourceDebug); + } + + // calls the visitOuterClass method + if (enclosingOwner != null) { + classVisitor.visitOuterClass(enclosingOwner, + enclosingName, + enclosingDesc); + } + + // visits the class annotations + for (i = 1; i >= 0; --i) { + v = i == 0 ? ianns : anns; + if (v != 0) { + j = readUnsignedShort(v); + v += 2; + for (; j > 0; --j) { + desc = readUTF8(v, c); + v += 2; + v = readAnnotationValues(v, + c, + classVisitor.visitAnnotation(desc, i != 0)); + } + } + } + + // visits the class attributes + while (cattrs != null) { + attr = cattrs.next; + cattrs.next = null; + classVisitor.visitAttribute(cattrs); + cattrs = attr; + } + + // class the visitInnerClass method + if (w != 0) { + i = readUnsignedShort(w); + w += 2; + for (; i > 0; --i) { + classVisitor.visitInnerClass(readUnsignedShort(w) == 0 + ? null + : readClass(w, c), readUnsignedShort(w + 2) == 0 + ? null + : readClass(w + 2, c), readUnsignedShort(w + 4) == 0 + ? null + : readUTF8(w + 4, c), readUnsignedShort(w + 6)); + w += 8; + } + } + + // visits the fields + i = readUnsignedShort(u); + u += 2; + for (; i > 0; --i) { + access = readUnsignedShort(u); + name = readUTF8(u + 2, c); + desc = readUTF8(u + 4, c); + // visits the field's attributes and looks for a ConstantValue + // attribute + int fieldValueItem = 0; + signature = null; + anns = 0; + ianns = 0; + cattrs = null; + + j = readUnsignedShort(u + 6); + u += 8; + for (; j > 0; --j) { + attrName = readUTF8(u, c); + if (attrName.equals("ConstantValue")) { + fieldValueItem = readUnsignedShort(u + 6); + } else if (attrName.equals("Synthetic")) { + access |= Opcodes.ACC_SYNTHETIC; + } else if (attrName.equals("Deprecated")) { + access |= Opcodes.ACC_DEPRECATED; + } else if (attrName.equals("Enum")) { + access |= Opcodes.ACC_ENUM; + } else if (attrName.equals("Signature")) { + signature = readUTF8(u + 6, c); + } else if (attrName.equals("RuntimeVisibleAnnotations")) { + anns = u + 6; + } else if (attrName.equals("RuntimeInvisibleAnnotations")) { + ianns = u + 6; + } else { + attr = readAttribute(attrs, + attrName, + u + 6, + readInt(u + 2), + c, + -1, + null); + if (attr != null) { + attr.next = cattrs; + cattrs = attr; + } + } + u += 6 + readInt(u + 2); + } + // reads the field's value, if any + Object value = (fieldValueItem == 0 + ? null + : readConst(fieldValueItem, c)); + // visits the field + FieldVisitor fv = classVisitor.visitField(access, + name, + desc, + signature, + value); + // visits the field annotations and attributes + if (fv != null) { + for (j = 1; j >= 0; --j) { + v = j == 0 ? ianns : anns; + if (v != 0) { + k = readUnsignedShort(v); + v += 2; + for (; k > 0; --k) { + desc = readUTF8(v, c); + v += 2; + v = readAnnotationValues(v, + c, + fv.visitAnnotation(desc, j != 0)); + } + } + } + while (cattrs != null) { + attr = cattrs.next; + cattrs.next = null; + fv.visitAttribute(cattrs); + cattrs = attr; + } + fv.visitEnd(); + } + } + + // visits the methods + i = readUnsignedShort(u); + u += 2; + for (; i > 0; --i) { + int u0 = u + 6; + access = readUnsignedShort(u); + name = readUTF8(u + 2, c); + desc = readUTF8(u + 4, c); + signature = null; + anns = 0; + ianns = 0; + int dann = 0; + int mpanns = 0; + int impanns = 0; + cattrs = null; + v = 0; + w = 0; + + // looks for Code and Exceptions attributes + j = readUnsignedShort(u + 6); + u += 8; + for (; j > 0; --j) { + attrName = readUTF8(u, c); + u += 2; + int attrSize = readInt(u); + u += 4; + if (attrName.equals("Code")) { + v = u; + } else if (attrName.equals("Exceptions")) { + w = u; + } else if (attrName.equals("Synthetic")) { + access |= Opcodes.ACC_SYNTHETIC; + } else if (attrName.equals("Varargs")) { + access |= Opcodes.ACC_VARARGS; + } else if (attrName.equals("Bridge")) { + access |= Opcodes.ACC_BRIDGE; + } else if (attrName.equals("Deprecated")) { + access |= Opcodes.ACC_DEPRECATED; + } else if (attrName.equals("Signature")) { + signature = readUTF8(u, c); + } else if (attrName.equals("AnnotationDefault")) { + dann = u; + } else if (attrName.equals("RuntimeVisibleAnnotations")) { + anns = u; + } else if (attrName.equals("RuntimeInvisibleAnnotations")) { + ianns = u; + } else if (attrName.equals("RuntimeVisibleParameterAnnotations")) + { + mpanns = u; + } else if (attrName.equals("RuntimeInvisibleParameterAnnotations")) + { + impanns = u; + } else { + attr = readAttribute(attrs, + attrName, + u, + attrSize, + c, + -1, + null); + if (attr != null) { + attr.next = cattrs; + cattrs = attr; + } + } + u += attrSize; + } + // reads declared exceptions + String[] exceptions; + if (w == 0) { + exceptions = null; + } else { + exceptions = new String[readUnsignedShort(w)]; + w += 2; + for (j = 0; j < exceptions.length; ++j) { + exceptions[j] = readClass(w, c); + w += 2; + } + } + + // visits the method's code, if any + MethodVisitor mv = classVisitor.visitMethod(access, + name, + desc, + signature, + exceptions); + + if (mv != null) { + /* + * if the returned MethodVisitor is in fact a MethodWriter, it + * means there is no method adapter between the reader and the + * writer. If, in addition, the writer's constant pool was + * copied from this reader (mw.cw.cr == this), and the signature + * and exceptions of the method have not been changed, then it + * is possible to skip all visit events and just copy the + * original code of the method to the writer (the access, name + * and descriptor can have been changed, this is not important + * since they are not copied as is from the reader). + */ + if (mv instanceof MethodWriter) { + MethodWriter mw = (MethodWriter) mv; + if (mw.cw.cr == this) { + if (signature == mw.signature) { + boolean sameExceptions = false; + if (exceptions == null) { + sameExceptions = mw.exceptionCount == 0; + } else { + if (exceptions.length == mw.exceptionCount) { + sameExceptions = true; + for (j = exceptions.length - 1; j >= 0; --j) + { + w -= 2; + if (mw.exceptions[j] != readUnsignedShort(w)) + { + sameExceptions = false; + break; + } + } + } + } + if (sameExceptions) { + /* + * we do not copy directly the code into + * MethodWriter to save a byte array copy + * operation. The real copy will be done in + * ClassWriter.toByteArray(). + */ + mw.classReaderOffset = u0; + mw.classReaderLength = u - u0; + continue; + } + } + } + } + if (dann != 0) { + AnnotationVisitor dv = mv.visitAnnotationDefault(); + readAnnotationValue(dann, c, null, dv); + dv.visitEnd(); + } + for (j = 1; j >= 0; --j) { + w = j == 0 ? ianns : anns; + if (w != 0) { + k = readUnsignedShort(w); + w += 2; + for (; k > 0; --k) { + desc = readUTF8(w, c); + w += 2; + w = readAnnotationValues(w, + c, + mv.visitAnnotation(desc, j != 0)); + } + } + } + if (mpanns != 0) { + readParameterAnnotations(mpanns, c, true, mv); + } + if (impanns != 0) { + readParameterAnnotations(impanns, c, false, mv); + } + while (cattrs != null) { + attr = cattrs.next; + cattrs.next = null; + mv.visitAttribute(cattrs); + cattrs = attr; + } + } + + if (mv != null && v != 0) { + int maxStack = readUnsignedShort(v); + int maxLocals = readUnsignedShort(v + 2); + int codeLength = readInt(v + 4); + v += 8; + + int codeStart = v; + int codeEnd = v + codeLength; + + mv.visitCode(); + + // 1st phase: finds the labels + int label; + Label[] labels = new Label[codeLength + 1]; + while (v < codeEnd) { + int opcode = b[v] & 0xFF; + switch (ClassWriter.TYPE[opcode]) { + case ClassWriter.NOARG_INSN: + case ClassWriter.IMPLVAR_INSN: + v += 1; + break; + case ClassWriter.LABEL_INSN: + label = v - codeStart + readShort(v + 1); + if (labels[label] == null) { + labels[label] = new Label(); + } + v += 3; + break; + case ClassWriter.LABELW_INSN: + label = v - codeStart + readInt(v + 1); + if (labels[label] == null) { + labels[label] = new Label(); + } + v += 5; + break; + case ClassWriter.WIDE_INSN: + opcode = b[v + 1] & 0xFF; + if (opcode == Opcodes.IINC) { + v += 6; + } else { + v += 4; + } + break; + case ClassWriter.TABL_INSN: + // skips 0 to 3 padding bytes + w = v - codeStart; + v = v + 4 - (w & 3); + // reads instruction + label = w + readInt(v); + v += 4; + if (labels[label] == null) { + labels[label] = new Label(); + } + j = readInt(v); + v += 4; + j = readInt(v) - j + 1; + v += 4; + for (; j > 0; --j) { + label = w + readInt(v); + v += 4; + if (labels[label] == null) { + labels[label] = new Label(); + } + } + break; + case ClassWriter.LOOK_INSN: + // skips 0 to 3 padding bytes + w = v - codeStart; + v = v + 4 - (w & 3); + // reads instruction + label = w + readInt(v); + v += 4; + if (labels[label] == null) { + labels[label] = new Label(); + } + j = readInt(v); + v += 4; + for (; j > 0; --j) { + v += 4; // skips key + label = w + readInt(v); + v += 4; + if (labels[label] == null) { + labels[label] = new Label(); + } + } + break; + case ClassWriter.VAR_INSN: + case ClassWriter.SBYTE_INSN: + case ClassWriter.LDC_INSN: + v += 2; + break; + case ClassWriter.SHORT_INSN: + case ClassWriter.LDCW_INSN: + case ClassWriter.FIELDORMETH_INSN: + case ClassWriter.TYPE_INSN: + case ClassWriter.IINC_INSN: + v += 3; + break; + case ClassWriter.ITFMETH_INSN: + v += 5; + break; + // case MANA_INSN: + default: + v += 4; + break; + } + } + // parses the try catch entries + j = readUnsignedShort(v); + v += 2; + for (; j > 0; --j) { + label = readUnsignedShort(v); + Label start = labels[label]; + if (start == null) { + labels[label] = start = new Label(); + } + label = readUnsignedShort(v + 2); + Label end = labels[label]; + if (end == null) { + labels[label] = end = new Label(); + } + label = readUnsignedShort(v + 4); + Label handler = labels[label]; + if (handler == null) { + labels[label] = handler = new Label(); + } + + int type = readUnsignedShort(v + 6); + if (type == 0) { + mv.visitTryCatchBlock(start, end, handler, null); + } else { + mv.visitTryCatchBlock(start, + end, + handler, + readUTF8(items[type], c)); + } + v += 8; + } + // parses the local variable, line number tables, and code + // attributes + int varTable = 0; + int varTypeTable = 0; + cattrs = null; + j = readUnsignedShort(v); + v += 2; + for (; j > 0; --j) { + attrName = readUTF8(v, c); + if (attrName.equals("LocalVariableTable")) { + if (!skipDebug) { + varTable = v + 6; + k = readUnsignedShort(v + 6); + w = v + 8; + for (; k > 0; --k) { + label = readUnsignedShort(w); + if (labels[label] == null) { + labels[label] = new Label(); + } + label += readUnsignedShort(w + 2); + if (labels[label] == null) { + labels[label] = new Label(); + } + w += 10; + } + } + } else if (attrName.equals("LocalVariableTypeTable")) { + varTypeTable = v + 6; + } else if (attrName.equals("LineNumberTable")) { + if (!skipDebug) { + k = readUnsignedShort(v + 6); + w = v + 8; + for (; k > 0; --k) { + label = readUnsignedShort(w); + if (labels[label] == null) { + labels[label] = new Label(); + } + labels[label].line = readUnsignedShort(w + 2); + w += 4; + } + } + } else { + for (k = 0; k < attrs.length; ++k) { + if (attrs[k].type.equals(attrName)) { + attr = attrs[k].read(this, + v + 6, + readInt(v + 2), + c, + codeStart - 8, + labels); + if (attr != null) { + attr.next = cattrs; + cattrs = attr; + } + } + } + } + v += 6 + readInt(v + 2); + } + + // 2nd phase: visits each instruction + v = codeStart; + Label l; + while (v < codeEnd) { + w = v - codeStart; + l = labels[w]; + if (l != null) { + mv.visitLabel(l); + if (!skipDebug && l.line > 0) { + mv.visitLineNumber(l.line, l); + } + } + int opcode = b[v] & 0xFF; + switch (ClassWriter.TYPE[opcode]) { + case ClassWriter.NOARG_INSN: + mv.visitInsn(opcode); + v += 1; + break; + case ClassWriter.IMPLVAR_INSN: + if (opcode > Opcodes.ISTORE) { + opcode -= 59; // ISTORE_0 + mv.visitVarInsn(Opcodes.ISTORE + (opcode >> 2), + opcode & 0x3); + } else { + opcode -= 26; // ILOAD_0 + mv.visitVarInsn(Opcodes.ILOAD + (opcode >> 2), + opcode & 0x3); + } + v += 1; + break; + case ClassWriter.LABEL_INSN: + mv.visitJumpInsn(opcode, labels[w + + readShort(v + 1)]); + v += 3; + break; + case ClassWriter.LABELW_INSN: + mv.visitJumpInsn(opcode - 33, labels[w + + readInt(v + 1)]); + v += 5; + break; + case ClassWriter.WIDE_INSN: + opcode = b[v + 1] & 0xFF; + if (opcode == Opcodes.IINC) { + mv.visitIincInsn(readUnsignedShort(v + 2), + readShort(v + 4)); + v += 6; + } else { + mv.visitVarInsn(opcode, + readUnsignedShort(v + 2)); + v += 4; + } + break; + case ClassWriter.TABL_INSN: + // skips 0 to 3 padding bytes + v = v + 4 - (w & 3); + // reads instruction + label = w + readInt(v); + v += 4; + int min = readInt(v); + v += 4; + int max = readInt(v); + v += 4; + Label[] table = new Label[max - min + 1]; + for (j = 0; j < table.length; ++j) { + table[j] = labels[w + readInt(v)]; + v += 4; + } + mv.visitTableSwitchInsn(min, + max, + labels[label], + table); + break; + case ClassWriter.LOOK_INSN: + // skips 0 to 3 padding bytes + v = v + 4 - (w & 3); + // reads instruction + label = w + readInt(v); + v += 4; + j = readInt(v); + v += 4; + int[] keys = new int[j]; + Label[] values = new Label[j]; + for (j = 0; j < keys.length; ++j) { + keys[j] = readInt(v); + v += 4; + values[j] = labels[w + readInt(v)]; + v += 4; + } + mv.visitLookupSwitchInsn(labels[label], + keys, + values); + break; + case ClassWriter.VAR_INSN: + mv.visitVarInsn(opcode, b[v + 1] & 0xFF); + v += 2; + break; + case ClassWriter.SBYTE_INSN: + mv.visitIntInsn(opcode, b[v + 1]); + v += 2; + break; + case ClassWriter.SHORT_INSN: + mv.visitIntInsn(opcode, readShort(v + 1)); + v += 3; + break; + case ClassWriter.LDC_INSN: + mv.visitLdcInsn(readConst(b[v + 1] & 0xFF, c)); + v += 2; + break; + case ClassWriter.LDCW_INSN: + mv.visitLdcInsn(readConst(readUnsignedShort(v + 1), + c)); + v += 3; + break; + case ClassWriter.FIELDORMETH_INSN: + case ClassWriter.ITFMETH_INSN: + int cpIndex = items[readUnsignedShort(v + 1)]; + String iowner = readClass(cpIndex, c); + cpIndex = items[readUnsignedShort(cpIndex + 2)]; + String iname = readUTF8(cpIndex, c); + String idesc = readUTF8(cpIndex + 2, c); + if (opcode < Opcodes.INVOKEVIRTUAL) { + mv.visitFieldInsn(opcode, iowner, iname, idesc); + } else { + mv.visitMethodInsn(opcode, iowner, iname, idesc); + } + if (opcode == Opcodes.INVOKEINTERFACE) { + v += 5; + } else { + v += 3; + } + break; + case ClassWriter.TYPE_INSN: + mv.visitTypeInsn(opcode, readClass(v + 1, c)); + v += 3; + break; + case ClassWriter.IINC_INSN: + mv.visitIincInsn(b[v + 1] & 0xFF, b[v + 2]); + v += 3; + break; + // case MANA_INSN: + default: + mv.visitMultiANewArrayInsn(readClass(v + 1, c), + b[v + 3] & 0xFF); + v += 4; + break; + } + } + l = labels[codeEnd - codeStart]; + if (l != null) { + mv.visitLabel(l); + } + + // visits the local variable tables + if (!skipDebug && varTable != 0) { + int[] typeTable = null; + if (varTypeTable != 0) { + w = varTypeTable; + k = readUnsignedShort(w) * 3; + w += 2; + typeTable = new int[k]; + while (k > 0) { + typeTable[--k] = w + 6; // signature + typeTable[--k] = readUnsignedShort(w + 8); // index + typeTable[--k] = readUnsignedShort(w); // start + w += 10; + } + } + w = varTable; + k = readUnsignedShort(w); + w += 2; + for (; k > 0; --k) { + int start = readUnsignedShort(w); + int length = readUnsignedShort(w + 2); + int index = readUnsignedShort(w + 8); + String vsignature = null; + if (typeTable != null) { + for (int a = 0; a < typeTable.length; a += 3) { + if (typeTable[a] == start + && typeTable[a + 1] == index) + { + vsignature = readUTF8(typeTable[a + 2], c); + break; + } + } + } + mv.visitLocalVariable(readUTF8(w + 4, c), + readUTF8(w + 6, c), + vsignature, + labels[start], + labels[start + length], + index); + w += 10; + } + } + // visits the other attributes + while (cattrs != null) { + attr = cattrs.next; + cattrs.next = null; + mv.visitAttribute(cattrs); + cattrs = attr; + } + // visits the max stack and max locals values + mv.visitMaxs(maxStack, maxLocals); + } + + if (mv != null) { + mv.visitEnd(); + } + } + + // visits the end of the class + classVisitor.visitEnd(); + } + + /** + * Reads parameter annotations and makes the given visitor visit them. + * + * @param v start offset in {@link #b b} of the annotations to be read. + * @param buf buffer to be used to call {@link #readUTF8 readUTF8}, + * {@link #readClass(int,char[]) readClass} or + * {@link #readConst readConst}. + * @param visible true if the annotations to be read are visible + * at runtime. + * @param mv the visitor that must visit the annotations. + */ + private void readParameterAnnotations( + int v, + final char[] buf, + final boolean visible, + final MethodVisitor mv) + { + int n = b[v++] & 0xFF; + for (int i = 0; i < n; ++i) { + int j = readUnsignedShort(v); + v += 2; + for (; j > 0; --j) { + String desc = readUTF8(v, buf); + v += 2; + AnnotationVisitor av = mv.visitParameterAnnotation(i, + desc, + visible); + v = readAnnotationValues(v, buf, av); + } + } + } + + /** + * Reads the values of an annotation and makes the given visitor visit them. + * + * @param v the start offset in {@link #b b} of the values to be read + * (including the unsigned short that gives the number of values). + * @param buf buffer to be used to call {@link #readUTF8 readUTF8}, + * {@link #readClass(int,char[]) readClass} or + * {@link #readConst readConst}. + * @param av the visitor that must visit the values. + * @return the end offset of the annotations values. + */ + private int readAnnotationValues( + int v, + final char[] buf, + final AnnotationVisitor av) + { + int i = readUnsignedShort(v); + v += 2; + for (; i > 0; --i) { + String name = readUTF8(v, buf); + v += 2; + v = readAnnotationValue(v, buf, name, av); + } + av.visitEnd(); + return v; + } + + /** + * Reads a value of an annotation and makes the given visitor visit it. + * + * @param v the start offset in {@link #b b} of the value to be read (not + * including the value name constant pool index). + * @param buf buffer to be used to call {@link #readUTF8 readUTF8}, + * {@link #readClass(int,char[]) readClass} or + * {@link #readConst readConst}. + * @param name the name of the value to be read. + * @param av the visitor that must visit the value. + * @return the end offset of the annotation value. + */ + private int readAnnotationValue( + int v, + final char[] buf, + final String name, + final AnnotationVisitor av) + { + int i; + switch (readByte(v++)) { + case 'I': // pointer to CONSTANT_Integer + case 'J': // pointer to CONSTANT_Long + case 'F': // pointer to CONSTANT_Float + case 'D': // pointer to CONSTANT_Double + av.visit(name, readConst(readUnsignedShort(v), buf)); + v += 2; + break; + case 'B': // pointer to CONSTANT_Byte + av.visit(name, + new Byte((byte) readInt(items[readUnsignedShort(v)]))); + v += 2; + break; + case 'Z': // pointer to CONSTANT_Boolean + boolean b = readInt(items[readUnsignedShort(v)]) == 0; + av.visit(name, b ? Boolean.FALSE : Boolean.TRUE); + v += 2; + break; + case 'S': // pointer to CONSTANT_Short + av.visit(name, + new Short((short) readInt(items[readUnsignedShort(v)]))); + v += 2; + break; + case 'C': // pointer to CONSTANT_Char + av.visit(name, + new Character((char) readInt(items[readUnsignedShort(v)]))); + v += 2; + break; + case 's': // pointer to CONSTANT_Utf8 + av.visit(name, readUTF8(v, buf)); + v += 2; + break; + case 'e': // enum_const_value + av.visitEnum(name, readUTF8(v, buf), readUTF8(v + 2, buf)); + v += 4; + break; + case 'c': // class_info + av.visit(name, Type.getType(readUTF8(v, buf))); + v += 2; + break; + case '@': // annotation_value + String desc = readUTF8(v, buf); + v += 2; + v = readAnnotationValues(v, buf, av.visitAnnotation(name, desc)); + break; + case '[': // array_value + int size = readUnsignedShort(v); + v += 2; + if (size == 0) { + av.visitArray(name).visitEnd(); + return v; + } + switch (readByte(v++)) { + case 'B': + byte[] bv = new byte[size]; + for (i = 0; i < size; i++) { + bv[i] = (byte) readInt(items[readUnsignedShort(v)]); + v += 3; + } + av.visit(name, bv); + --v; + break; + case 'Z': + boolean[] zv = new boolean[size]; + for (i = 0; i < size; i++) { + zv[i] = readInt(items[readUnsignedShort(v)]) != 0; + v += 3; + } + av.visit(name, zv); + --v; + break; + case 'S': + short[] sv = new short[size]; + for (i = 0; i < size; i++) { + sv[i] = (short) readInt(items[readUnsignedShort(v)]); + v += 3; + } + av.visit(name, sv); + --v; + break; + case 'C': + char[] cv = new char[size]; + for (i = 0; i < size; i++) { + cv[i] = (char) readInt(items[readUnsignedShort(v)]); + v += 3; + } + av.visit(name, cv); + --v; + break; + case 'I': + int[] iv = new int[size]; + for (i = 0; i < size; i++) { + iv[i] = readInt(items[readUnsignedShort(v)]); + v += 3; + } + av.visit(name, iv); + --v; + break; + case 'J': + long[] lv = new long[size]; + for (i = 0; i < size; i++) { + lv[i] = readLong(items[readUnsignedShort(v)]); + v += 3; + } + av.visit(name, lv); + --v; + break; + case 'F': + float[] fv = new float[size]; + for (i = 0; i < size; i++) { + fv[i] = Float.intBitsToFloat(readInt(items[readUnsignedShort(v)])); + v += 3; + } + av.visit(name, fv); + --v; + break; + case 'D': + double[] dv = new double[size]; + for (i = 0; i < size; i++) { + dv[i] = Double.longBitsToDouble(readLong(items[readUnsignedShort(v)])); + v += 3; + } + av.visit(name, dv); + --v; + break; + default: + v--; + AnnotationVisitor aav = av.visitArray(name); + for (i = size; i > 0; --i) { + v = readAnnotationValue(v, buf, null, aav); + } + aav.visitEnd(); + } + } + return v; + } + + /** + * Reads an attribute in {@link #b b}. + * + * @param attrs prototypes of the attributes that must be parsed during the + * visit of the class. Any attribute whose type is not equal to the + * type of one the prototypes is ignored (i.e. an empty + * {@link Attribute} instance is returned). + * @param type the type of the attribute. + * @param off index of the first byte of the attribute's content in + * {@link #b b}. The 6 attribute header bytes, containing the type + * and the length of the attribute, are not taken into account here + * (they have already been read). + * @param len the length of the attribute's content. + * @param buf buffer to be used to call {@link #readUTF8 readUTF8}, + * {@link #readClass(int,char[]) readClass} or + * {@link #readConst readConst}. + * @param codeOff index of the first byte of code's attribute content in + * {@link #b b}, or -1 if the attribute to be read is not a code + * attribute. The 6 attribute header bytes, containing the type and + * the length of the attribute, are not taken into account here. + * @param labels the labels of the method's code, or null if the + * attribute to be read is not a code attribute. + * @return the attribute that has been read, or null to skip this + * attribute. + */ + private Attribute readAttribute( + final Attribute[] attrs, + final String type, + final int off, + final int len, + final char[] buf, + final int codeOff, + final Label[] labels) + { + for (int i = 0; i < attrs.length; ++i) { + if (attrs[i].type.equals(type)) { + return attrs[i].read(this, off, len, buf, codeOff, labels); + } + } + return new Attribute(type).read(this, off, len, null, -1, null); + } + + // ------------------------------------------------------------------------ + // Utility methods: low level parsing + // ------------------------------------------------------------------------ + + /** + * Returns the start index of the constant pool item in {@link #b b}, plus + * one. This method is intended for {@link Attribute} sub classes, and is + * normally not needed by class generators or adapters. + * + * @param item the index a constant pool item. + * @return the start index of the constant pool item in {@link #b b}, plus + * one. + */ + public int getItem(final int item) { + return items[item]; + } + + /** + * Reads a byte value in {@link #b b}. This method is intended for + * {@link Attribute} sub classes, and is normally not needed by class + * generators or adapters. + * + * @param index the start index of the value to be read in {@link #b b}. + * @return the read value. + */ + public int readByte(final int index) { + return b[index] & 0xFF; + } + + /** + * Reads an unsigned short value in {@link #b b}. This method is + * intended for {@link Attribute} sub classes, and is normally not needed by + * class generators or adapters. + * + * @param index the start index of the value to be read in {@link #b b}. + * @return the read value. + */ + public int readUnsignedShort(final int index) { + byte[] b = this.b; + return ((b[index] & 0xFF) << 8) | (b[index + 1] & 0xFF); + } + + /** + * Reads a signed short value in {@link #b b}. This method is intended + * for {@link Attribute} sub classes, and is normally not needed by class + * generators or adapters. + * + * @param index the start index of the value to be read in {@link #b b}. + * @return the read value. + */ + public short readShort(final int index) { + byte[] b = this.b; + return (short) (((b[index] & 0xFF) << 8) | (b[index + 1] & 0xFF)); + } + + /** + * Reads a signed int value in {@link #b b}. This method is intended for + * {@link Attribute} sub classes, and is normally not needed by class + * generators or adapters. + * + * @param index the start index of the value to be read in {@link #b b}. + * @return the read value. + */ + public int readInt(final int index) { + byte[] b = this.b; + return ((b[index] & 0xFF) << 24) | ((b[index + 1] & 0xFF) << 16) + | ((b[index + 2] & 0xFF) << 8) | (b[index + 3] & 0xFF); + } + + /** + * Reads a signed long value in {@link #b b}. This method is intended + * for {@link Attribute} sub classes, and is normally not needed by class + * generators or adapters. + * + * @param index the start index of the value to be read in {@link #b b}. + * @return the read value. + */ + public long readLong(final int index) { + long l1 = readInt(index); + long l0 = readInt(index + 4) & 0xFFFFFFFFL; + return (l1 << 32) | l0; + } + + /** + * Reads an UTF8 string constant pool item in {@link #b b}. This method + * is intended for {@link Attribute} sub classes, and is normally not needed + * by class generators or adapters. + * + * @param index the start index of an unsigned short value in {@link #b b}, + * whose value is the index of an UTF8 constant pool item. + * @param buf buffer to be used to read the item. This buffer must be + * sufficiently large. It is not automatically resized. + * @return the String corresponding to the specified UTF8 item. + */ + public String readUTF8(int index, final char[] buf) { + int item = readUnsignedShort(index); + String s = strings[item]; + if (s != null) { + return s; + } + index = items[item]; + return strings[item] = readUTF(index + 2, readUnsignedShort(index), buf); + } + + /** + * Reads UTF8 string in {@link #b b}. + * + * @param index start offset of the UTF8 string to be read. + * @param utfLen length of the UTF8 string to be read. + * @param buf buffer to be used to read the string. This buffer must be + * sufficiently large. It is not automatically resized. + * @return the String corresponding to the specified UTF8 string. + */ + private String readUTF(int index, int utfLen, char[] buf) { + int endIndex = index + utfLen; + byte[] b = this.b; + int strLen = 0; + int c, d, e; + while (index < endIndex) { + c = b[index++] & 0xFF; + switch (c >> 4) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + // 0xxxxxxx + buf[strLen++] = (char) c; + break; + case 12: + case 13: + // 110x xxxx 10xx xxxx + d = b[index++]; + buf[strLen++] = (char) (((c & 0x1F) << 6) | (d & 0x3F)); + break; + default: + // 1110 xxxx 10xx xxxx 10xx xxxx + d = b[index++]; + e = b[index++]; + buf[strLen++] = (char) (((c & 0x0F) << 12) + | ((d & 0x3F) << 6) | (e & 0x3F)); + break; + } + } + return new String(buf, 0, strLen); + } + + /** + * Reads a class constant pool item in {@link #b b}. This method is + * intended for {@link Attribute} sub classes, and is normally not needed by + * class generators or adapters. + * + * @param index the start index of an unsigned short value in {@link #b b}, + * whose value is the index of a class constant pool item. + * @param buf buffer to be used to read the item. This buffer must be + * sufficiently large. It is not automatically resized. + * @return the String corresponding to the specified class item. + */ + public String readClass(final int index, final char[] buf) { + // computes the start index of the CONSTANT_Class item in b + // and reads the CONSTANT_Utf8 item designated by + // the first two bytes of this CONSTANT_Class item + return readUTF8(items[readUnsignedShort(index)], buf); + } + + /** + * Reads a numeric or string constant pool item in {@link #b b}. This + * method is intended for {@link Attribute} sub classes, and is normally not + * needed by class generators or adapters. + * + * @param item the index of a constant pool item. + * @param buf buffer to be used to read the item. This buffer must be + * sufficiently large. It is not automatically resized. + * @return the {@link Integer}, {@link Float}, {@link Long}, + * {@link Double}, {@link String} or {@link Type} corresponding to + * the given constant pool item. + */ + public Object readConst(final int item, final char[] buf) { + int index = items[item]; + switch (b[index - 1]) { + case ClassWriter.INT: + return new Integer(readInt(index)); + case ClassWriter.FLOAT: + return new Float(Float.intBitsToFloat(readInt(index))); + case ClassWriter.LONG: + return new Long(readLong(index)); + case ClassWriter.DOUBLE: + return new Double(Double.longBitsToDouble(readLong(index))); + case ClassWriter.CLASS: + String s = readUTF8(index, buf); + return Type.getType(s.charAt(0) == '[' ? s : "L" + s + ";"); + // case ClassWriter.STR: + default: + return readUTF8(index, buf); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java new file mode 100644 index 00000000000..749c4256b7a --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassVisitor.java @@ -0,0 +1,195 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A visitor to visit a Java class. The methods of this interface must be called + * in the following order: visit [ visitSource ] [ + * visitOuterClass ] ( visitAnnotation | + * visitAttribute )* (visitInnerClass | + * visitField | visitMethod )* visitEnd. + * + * @author Eric Bruneton + */ +public interface ClassVisitor { + + /** + * Visits the header of the class. + * + * @param version the class version. + * @param access the class's access flags (see {@link Opcodes}). This + * parameter also indicates if the class is deprecated. + * @param name the internal name of the class (see + * {@link Type#getInternalName() getInternalName}). + * @param signature the signature of this class. May be null if + * the class is not a generic one, and does not extend or implement + * generic classes or interfaces. + * @param superName the internal of name of the super class (see + * {@link Type#getInternalName() getInternalName}). For interfaces, + * the super class is {@link Object}. May be null, but + * only for the {@link Object} class. + * @param interfaces the internal names of the class's interfaces (see + * {@link Type#getInternalName() getInternalName}). May be + * null. + */ + void visit( + int version, + int access, + String name, + String signature, + String superName, + String[] interfaces); + + /** + * Visits the source of the class. + * + * @param source the name of the source file from which the class was + * compiled. May be null. + * @param debug additional debug information to compute the correspondance + * between source and compiled elements of the class. May be + * null. + */ + void visitSource(String source, String debug); + + /** + * Visits the enclosing class of the class. This method must be called only + * if the class has an enclosing class. + * + * @param owner internal name of the enclosing class of the class. + * @param name the name of the method that contains the class, or + * null if the class is not enclosed in a method of its + * enclosing class. + * @param desc the descriptor of the method that contains the class, or + * null if the class is not enclosed in a method of its + * enclosing class. + */ + void visitOuterClass(String owner, String name, String desc); + + /** + * Visits an annotation of the class. + * + * @param desc the class descriptor of the annotation class. + * @param visible true if the annotation is visible at runtime. + * @return a non null visitor to visit the annotation values. + */ + AnnotationVisitor visitAnnotation(String desc, boolean visible); + + /** + * Visits a non standard attribute of the class. + * + * @param attr an attribute. + */ + void visitAttribute(Attribute attr); + + /** + * Visits information about an inner class. This inner class is not + * necessarily a member of the class being visited. + * + * @param name the internal name of an inner class (see + * {@link Type#getInternalName() getInternalName}). + * @param outerName the internal name of the class to which the inner class + * belongs (see {@link Type#getInternalName() getInternalName}). May + * be null. + * @param innerName the (simple) name of the inner class inside its + * enclosing class. May be null for anonymous inner + * classes. + * @param access the access flags of the inner class as originally declared + * in the enclosing class. + */ + void visitInnerClass( + String name, + String outerName, + String innerName, + int access); + + /** + * Visits a field of the class. + * + * @param access the field's access flags (see {@link Opcodes}). This + * parameter also indicates if the field is synthetic and/or + * deprecated. + * @param name the field's name. + * @param desc the field's descriptor (see {@link Type Type}). + * @param signature the field's signature. May be null if the + * field's type does not use generic types. + * @param value the field's initial value. This parameter, which may be + * null if the field does not have an initial value, must + * be an {@link Integer}, a {@link Float}, a {@link Long}, a + * {@link Double} or a {@link String} (for int, + * float, long or String fields + * respectively). This parameter is only used for static fields. + * Its value is ignored for non static fields, which must be + * initialized through bytecode instructions in constructors or + * methods. + * @return a visitor to visit field annotations and attributes, or + * null if this class visitor is not interested in + * visiting these annotations and attributes. + */ + FieldVisitor visitField( + int access, + String name, + String desc, + String signature, + Object value); + + /** + * Visits a method of the class. This method must return a new + * {@link MethodVisitor} instance (or null) each time it is + * called, i.e., it should not return a previously returned visitor. + * + * @param access the method's access flags (see {@link Opcodes}). This + * parameter also indicates if the method is synthetic and/or + * deprecated. + * @param name the method's name. + * @param desc the method's descriptor (see {@link Type Type}). + * @param signature the method's signature. May be null if the + * method parameters, return type and exceptions do not use generic + * types. + * @param exceptions the internal names of the method's exception classes + * (see {@link Type#getInternalName() getInternalName}). May be + * null. + * @return an object to visit the byte code of the method, or null + * if this class visitor is not interested in visiting the code of + * this method. + */ + MethodVisitor visitMethod( + int access, + String name, + String desc, + String signature, + String[] exceptions); + + /** + * Visits the end of the class. This method, which is the last one to be + * called, is used to inform the visitor that all the fields and methods of + * the class have been visited. + */ + void visitEnd(); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java new file mode 100644 index 00000000000..22f4e5245dd --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/ClassWriter.java @@ -0,0 +1,1162 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A {@link ClassVisitor} that generates classes in bytecode form. More + * precisely this visitor generates a byte array conforming to the Java class + * file format. It can be used alone, to generate a Java class "from scratch", + * or with one or more {@link ClassReader ClassReader} and adapter class visitor + * to generate a modified class from one or more existing Java classes. + * + * @author Eric Bruneton + */ +public class ClassWriter implements ClassVisitor { + + /** + * The type of instructions without any argument. + */ + final static int NOARG_INSN = 0; + + /** + * The type of instructions with an signed byte argument. + */ + final static int SBYTE_INSN = 1; + + /** + * The type of instructions with an signed short argument. + */ + final static int SHORT_INSN = 2; + + /** + * The type of instructions with a local variable index argument. + */ + final static int VAR_INSN = 3; + + /** + * The type of instructions with an implicit local variable index argument. + */ + final static int IMPLVAR_INSN = 4; + + /** + * The type of instructions with a type descriptor argument. + */ + final static int TYPE_INSN = 5; + + /** + * The type of field and method invocations instructions. + */ + final static int FIELDORMETH_INSN = 6; + + /** + * The type of the INVOKEINTERFACE instruction. + */ + final static int ITFMETH_INSN = 7; + + /** + * The type of instructions with a 2 bytes bytecode offset label. + */ + final static int LABEL_INSN = 8; + + /** + * The type of instructions with a 4 bytes bytecode offset label. + */ + final static int LABELW_INSN = 9; + + /** + * The type of the LDC instruction. + */ + final static int LDC_INSN = 10; + + /** + * The type of the LDC_W and LDC2_W instructions. + */ + final static int LDCW_INSN = 11; + + /** + * The type of the IINC instruction. + */ + final static int IINC_INSN = 12; + + /** + * The type of the TABLESWITCH instruction. + */ + final static int TABL_INSN = 13; + + /** + * The type of the LOOKUPSWITCH instruction. + */ + final static int LOOK_INSN = 14; + + /** + * The type of the MULTIANEWARRAY instruction. + */ + final static int MANA_INSN = 15; + + /** + * The type of the WIDE instruction. + */ + final static int WIDE_INSN = 16; + + /** + * The instruction types of all JVM opcodes. + */ + static byte[] TYPE; + + /** + * The type of CONSTANT_Class constant pool items. + */ + final static int CLASS = 7; + + /** + * The type of CONSTANT_Fieldref constant pool items. + */ + final static int FIELD = 9; + + /** + * The type of CONSTANT_Methodref constant pool items. + */ + final static int METH = 10; + + /** + * The type of CONSTANT_InterfaceMethodref constant pool items. + */ + final static int IMETH = 11; + + /** + * The type of CONSTANT_String constant pool items. + */ + final static int STR = 8; + + /** + * The type of CONSTANT_Integer constant pool items. + */ + final static int INT = 3; + + /** + * The type of CONSTANT_Float constant pool items. + */ + final static int FLOAT = 4; + + /** + * The type of CONSTANT_Long constant pool items. + */ + final static int LONG = 5; + + /** + * The type of CONSTANT_Double constant pool items. + */ + final static int DOUBLE = 6; + + /** + * The type of CONSTANT_NameAndType constant pool items. + */ + final static int NAME_TYPE = 12; + + /** + * The type of CONSTANT_Utf8 constant pool items. + */ + final static int UTF8 = 1; + + /** + * The class reader from which this class writer was constructed, if any. + */ + ClassReader cr; + + /** + * Minor and major version numbers of the class to be generated. + */ + int version; + + /** + * Index of the next item to be added in the constant pool. + */ + int index; + + /** + * The constant pool of this class. + */ + ByteVector pool; + + /** + * The constant pool's hash table data. + */ + Item[] items; + + /** + * The threshold of the constant pool's hash table. + */ + int threshold; + + /** + * A reusable key used to look for items in the hash {@link #items items}. + */ + Item key; + + /** + * A reusable key used to look for items in the hash {@link #items items}. + */ + Item key2; + + /** + * A reusable key used to look for items in the hash {@link #items items}. + */ + Item key3; + + /** + * The access flags of this class. + */ + private int access; + + /** + * The constant pool item that contains the internal name of this class. + */ + private int name; + + /** + * The constant pool item that contains the signature of this class. + */ + private int signature; + + /** + * The constant pool item that contains the internal name of the super class + * of this class. + */ + private int superName; + + /** + * Number of interfaces implemented or extended by this class or interface. + */ + private int interfaceCount; + + /** + * The interfaces implemented or extended by this class or interface. More + * precisely, this array contains the indexes of the constant pool items + * that contain the internal names of these interfaces. + */ + private int[] interfaces; + + /** + * The index of the constant pool item that contains the name of the source + * file from which this class was compiled. + */ + private int sourceFile; + + /** + * The SourceDebug attribute of this class. + */ + private ByteVector sourceDebug; + + /** + * The constant pool item that contains the name of the enclosing class of + * this class. + */ + private int enclosingMethodOwner; + + /** + * The constant pool item that contains the name and descriptor of the + * enclosing method of this class. + */ + private int enclosingMethod; + + /** + * The runtime visible annotations of this class. + */ + private AnnotationWriter anns; + + /** + * The runtime invisible annotations of this class. + */ + private AnnotationWriter ianns; + + /** + * The non standard attributes of this class. + */ + private Attribute attrs; + + /** + * The number of entries in the InnerClasses attribute. + */ + private int innerClassesCount; + + /** + * The InnerClasses attribute. + */ + private ByteVector innerClasses; + + /** + * The fields of this class. These fields are stored in a linked list of + * {@link FieldWriter} objects, linked to each other by their + * {@link FieldWriter#next} field. This field stores the first element of + * this list. + */ + FieldWriter firstField; + + /** + * The fields of this class. These fields are stored in a linked list of + * {@link FieldWriter} objects, linked to each other by their + * {@link FieldWriter#next} field. This field stores the last element of + * this list. + */ + FieldWriter lastField; + + /** + * The methods of this class. These methods are stored in a linked list of + * {@link MethodWriter} objects, linked to each other by their + * {@link MethodWriter#next} field. This field stores the first element of + * this list. + */ + MethodWriter firstMethod; + + /** + * The methods of this class. These methods are stored in a linked list of + * {@link MethodWriter} objects, linked to each other by their + * {@link MethodWriter#next} field. This field stores the last element of + * this list. + */ + MethodWriter lastMethod; + + /** + * true if the maximum stack size and number of local variables + * must be automatically computed. + */ + private boolean computeMaxs; + + // ------------------------------------------------------------------------ + // Static initializer + // ------------------------------------------------------------------------ + + /** + * Computes the instruction types of JVM opcodes. + */ + static { + int i; + byte[] b = new byte[220]; + String s = "AAAAAAAAAAAAAAAABCKLLDDDDDEEEEEEEEEEEEEEEEEEEEAAAAAAAADD" + + "DDDEEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + + "AAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAIIIIIIIIIIIIIIIIDNOAA" + + "AAAAGGGGGGGHAFBFAAFFAAQPIIJJIIIIIIIIIIIIIIIIII"; + for (i = 0; i < b.length; ++i) { + b[i] = (byte) (s.charAt(i) - 'A'); + } + TYPE = b; + + // code to generate the above string + // + // // SBYTE_INSN instructions + // b[Constants.NEWARRAY] = SBYTE_INSN; + // b[Constants.BIPUSH] = SBYTE_INSN; + // + // // SHORT_INSN instructions + // b[Constants.SIPUSH] = SHORT_INSN; + // + // // (IMPL)VAR_INSN instructions + // b[Constants.RET] = VAR_INSN; + // for (i = Constants.ILOAD; i <= Constants.ALOAD; ++i) { + // b[i] = VAR_INSN; + // } + // for (i = Constants.ISTORE; i <= Constants.ASTORE; ++i) { + // b[i] = VAR_INSN; + // } + // for (i = 26; i <= 45; ++i) { // ILOAD_0 to ALOAD_3 + // b[i] = IMPLVAR_INSN; + // } + // for (i = 59; i <= 78; ++i) { // ISTORE_0 to ASTORE_3 + // b[i] = IMPLVAR_INSN; + // } + // + // // TYPE_INSN instructions + // b[Constants.NEW] = TYPE_INSN; + // b[Constants.ANEWARRAY] = TYPE_INSN; + // b[Constants.CHECKCAST] = TYPE_INSN; + // b[Constants.INSTANCEOF] = TYPE_INSN; + // + // // (Set)FIELDORMETH_INSN instructions + // for (i = Constants.GETSTATIC; i <= Constants.INVOKESTATIC; ++i) { + // b[i] = FIELDORMETH_INSN; + // } + // b[Constants.INVOKEINTERFACE] = ITFMETH_INSN; + // + // // LABEL(W)_INSN instructions + // for (i = Constants.IFEQ; i <= Constants.JSR; ++i) { + // b[i] = LABEL_INSN; + // } + // b[Constants.IFNULL] = LABEL_INSN; + // b[Constants.IFNONNULL] = LABEL_INSN; + // b[200] = LABELW_INSN; // GOTO_W + // b[201] = LABELW_INSN; // JSR_W + // // temporary opcodes used internally by ASM - see Label and + // MethodWriter + // for (i = 202; i < 220; ++i) { + // b[i] = LABEL_INSN; + // } + // + // // LDC(_W) instructions + // b[Constants.LDC] = LDC_INSN; + // b[19] = LDCW_INSN; // LDC_W + // b[20] = LDCW_INSN; // LDC2_W + // + // // special instructions + // b[Constants.IINC] = IINC_INSN; + // b[Constants.TABLESWITCH] = TABL_INSN; + // b[Constants.LOOKUPSWITCH] = LOOK_INSN; + // b[Constants.MULTIANEWARRAY] = MANA_INSN; + // b[196] = WIDE_INSN; // WIDE + // + // for (i = 0; i < b.length; ++i) { + // System.err.print((char)('A' + b[i])); + // } + // System.err.println(); + } + + // ------------------------------------------------------------------------ + // Constructor + // ------------------------------------------------------------------------ + + /** + * Constructs a new {@link ClassWriter ClassWriter} object. + * + * @param computeMaxs true if the maximum stack size and the + * maximum number of local variables must be automatically computed. + * If this flag is true, then the arguments of the + * {@link MethodVisitor#visitMaxs visitMaxs} method of the + * {@link MethodVisitor} returned by the + * {@link #visitMethod visitMethod} method will be ignored, and + * computed automatically from the signature and the bytecode of each + * method. + */ + public ClassWriter(final boolean computeMaxs) { + this(computeMaxs, false); + } + + /** + * Constructs a new {@link ClassWriter} object. + * + * @param computeMaxs true if the maximum stack size and the + * maximum number of local variables must be automatically computed. + * If this flag is true, then the arguments of the + * {@link MethodVisitor#visitMaxs visitMaxs} method of the + * {@link MethodVisitor} returned by the + * {@link #visitMethod visitMethod} method will be ignored, and + * computed automatically from the signature and the bytecode of each + * method. + * @param skipUnknownAttributes Deprecated. The value of this + * parameter is ignored. + */ + public ClassWriter( + final boolean computeMaxs, + final boolean skipUnknownAttributes) + { + index = 1; + pool = new ByteVector(); + items = new Item[256]; + threshold = (int) (0.75d * items.length); + key = new Item(); + key2 = new Item(); + key3 = new Item(); + this.computeMaxs = computeMaxs; + } + + /** + * Constructs a new {@link ClassWriter} object and enables optimizations for + * "mostly add" bytecode transformations. These optimizations are the + * following: + * + *

      + * + * @param classReader the {@link ClassReader} used to read the original + * class. It will be used to copy the entire constant pool from the + * original class and also to copy other fragments of original + * bytecode where applicable. + * @param computeMaxs true if the maximum stack size and the + * maximum number of local variables must be automatically computed. + * If this flag is true, then the arguments of the + * {@link MethodVisitor#visitMaxs visitMaxs} method of the + * {@link MethodVisitor} returned by the + * {@link #visitMethod visitMethod} method will be ignored, and + * computed automatically from the signature and the bytecode of each + * method. + */ + public ClassWriter( + final ClassReader classReader, + final boolean computeMaxs) + { + this(computeMaxs, false); + classReader.copyPool(this); + this.cr = classReader; + } + + // ------------------------------------------------------------------------ + // Implementation of the ClassVisitor interface + // ------------------------------------------------------------------------ + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + this.version = version; + this.access = access; + this.name = newClass(name); + if (signature != null) { + this.signature = newUTF8(signature); + } + this.superName = superName == null ? 0 : newClass(superName); + if (interfaces != null && interfaces.length > 0) { + interfaceCount = interfaces.length; + this.interfaces = new int[interfaceCount]; + for (int i = 0; i < interfaceCount; ++i) { + this.interfaces[i] = newClass(interfaces[i]); + } + } + } + + public void visitSource(final String file, final String debug) { + if (file != null) { + sourceFile = newUTF8(file); + } + if (debug != null) { + sourceDebug = new ByteVector().putUTF8(debug); + } + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + enclosingMethodOwner = newClass(owner); + if (name != null && desc != null) { + enclosingMethod = newNameType(name, desc); + } + } + + public AnnotationVisitor visitAnnotation(String desc, boolean visible) { + ByteVector bv = new ByteVector(); + // write type, and reserve space for values count + bv.putShort(newUTF8(desc)).putShort(0); + AnnotationWriter aw = new AnnotationWriter(this, true, bv, bv, 2); + if (visible) { + aw.next = anns; + anns = aw; + } else { + aw.next = ianns; + ianns = aw; + } + return aw; + } + + public void visitAttribute(final Attribute attr) { + attr.next = attrs; + attrs = attr; + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + if (innerClasses == null) { + innerClasses = new ByteVector(); + } + ++innerClassesCount; + innerClasses.putShort(name == null ? 0 : newClass(name)); + innerClasses.putShort(outerName == null ? 0 : newClass(outerName)); + innerClasses.putShort(innerName == null ? 0 : newUTF8(innerName)); + innerClasses.putShort(access); + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + return new FieldWriter(this, access, name, desc, signature, value); + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + return new MethodWriter(this, + access, + name, + desc, + signature, + exceptions, + computeMaxs); + } + + public void visitEnd() { + } + + // ------------------------------------------------------------------------ + // Other public methods + // ------------------------------------------------------------------------ + + /** + * Returns the bytecode of the class that was build with this class writer. + * + * @return the bytecode of the class that was build with this class writer. + */ + public byte[] toByteArray() { + // computes the real size of the bytecode of this class + int size = 24 + 2 * interfaceCount; + int nbFields = 0; + FieldWriter fb = firstField; + while (fb != null) { + ++nbFields; + size += fb.getSize(); + fb = fb.next; + } + int nbMethods = 0; + MethodWriter mb = firstMethod; + while (mb != null) { + ++nbMethods; + size += mb.getSize(); + mb = mb.next; + } + int attributeCount = 0; + if (signature != 0) { + ++attributeCount; + size += 8; + newUTF8("Signature"); + } + if (sourceFile != 0) { + ++attributeCount; + size += 8; + newUTF8("SourceFile"); + } + if (sourceDebug != null) { + ++attributeCount; + size += sourceDebug.length + 4; + newUTF8("SourceDebugExtension"); + } + if (enclosingMethodOwner != 0) { + ++attributeCount; + size += 10; + newUTF8("EnclosingMethod"); + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + ++attributeCount; + size += 6; + newUTF8("Deprecated"); + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (version & 0xffff) < Opcodes.V1_5) + { + ++attributeCount; + size += 6; + newUTF8("Synthetic"); + } + if (version == Opcodes.V1_4) { + if ((access & Opcodes.ACC_ANNOTATION) != 0) { + ++attributeCount; + size += 6; + newUTF8("Annotation"); + } + if ((access & Opcodes.ACC_ENUM) != 0) { + ++attributeCount; + size += 6; + newUTF8("Enum"); + } + } + if (innerClasses != null) { + ++attributeCount; + size += 8 + innerClasses.length; + newUTF8("InnerClasses"); + } + if (anns != null) { + ++attributeCount; + size += 8 + anns.getSize(); + newUTF8("RuntimeVisibleAnnotations"); + } + if (ianns != null) { + ++attributeCount; + size += 8 + ianns.getSize(); + newUTF8("RuntimeInvisibleAnnotations"); + } + if (attrs != null) { + attributeCount += attrs.getCount(); + size += attrs.getSize(this, null, 0, -1, -1); + } + size += pool.length; + // allocates a byte vector of this size, in order to avoid unnecessary + // arraycopy operations in the ByteVector.enlarge() method + ByteVector out = new ByteVector(size); + out.putInt(0xCAFEBABE).putInt(version); + out.putShort(index).putByteArray(pool.data, 0, pool.length); + out.putShort(access).putShort(name).putShort(superName); + out.putShort(interfaceCount); + for (int i = 0; i < interfaceCount; ++i) { + out.putShort(interfaces[i]); + } + out.putShort(nbFields); + fb = firstField; + while (fb != null) { + fb.put(out); + fb = fb.next; + } + out.putShort(nbMethods); + mb = firstMethod; + while (mb != null) { + mb.put(out); + mb = mb.next; + } + out.putShort(attributeCount); + if (signature != 0) { + out.putShort(newUTF8("Signature")).putInt(2).putShort(signature); + } + if (sourceFile != 0) { + out.putShort(newUTF8("SourceFile")).putInt(2).putShort(sourceFile); + } + if (sourceDebug != null) { + int len = sourceDebug.length - 2; + out.putShort(newUTF8("SourceDebugExtension")).putInt(len); + out.putByteArray(sourceDebug.data, 2, len); + } + if (enclosingMethodOwner != 0) { + out.putShort(newUTF8("EnclosingMethod")).putInt(4); + out.putShort(enclosingMethodOwner).putShort(enclosingMethod); + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + out.putShort(newUTF8("Deprecated")).putInt(0); + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (version & 0xffff) < Opcodes.V1_5) + { + out.putShort(newUTF8("Synthetic")).putInt(0); + } + if (version == Opcodes.V1_4) { + if ((access & Opcodes.ACC_ANNOTATION) != 0) { + out.putShort(newUTF8("Annotation")).putInt(0); + } + if ((access & Opcodes.ACC_ENUM) != 0) { + out.putShort(newUTF8("Enum")).putInt(0); + } + } + if (innerClasses != null) { + out.putShort(newUTF8("InnerClasses")); + out.putInt(innerClasses.length + 2).putShort(innerClassesCount); + out.putByteArray(innerClasses.data, 0, innerClasses.length); + } + if (anns != null) { + out.putShort(newUTF8("RuntimeVisibleAnnotations")); + anns.put(out); + } + if (ianns != null) { + out.putShort(newUTF8("RuntimeInvisibleAnnotations")); + ianns.put(out); + } + if (attrs != null) { + attrs.put(this, null, 0, -1, -1, out); + } + return out.data; + } + + // ------------------------------------------------------------------------ + // Utility methods: constant pool management + // ------------------------------------------------------------------------ + + /** + * Adds a number or string constant to the constant pool of the class being + * build. Does nothing if the constant pool already contains a similar item. + * + * @param cst the value of the constant to be added to the constant pool. + * This parameter must be an {@link Integer}, a {@link Float}, a + * {@link Long}, a {@link Double}, a {@link String} or a + * {@link Type}. + * @return a new or already existing constant item with the given value. + */ + Item newConstItem(final Object cst) { + if (cst instanceof Integer) { + int val = ((Integer) cst).intValue(); + return newInteger(val); + } else if (cst instanceof Byte) { + int val = ((Byte) cst).intValue(); + return newInteger(val); + } else if (cst instanceof Character) { + int val = ((Character) cst).charValue(); + return newInteger(val); + } else if (cst instanceof Short) { + int val = ((Short) cst).intValue(); + return newInteger(val); + } else if (cst instanceof Boolean) { + int val = ((Boolean) cst).booleanValue() ? 1 : 0; + return newInteger(val); + } else if (cst instanceof Float) { + float val = ((Float) cst).floatValue(); + return newFloat(val); + } else if (cst instanceof Long) { + long val = ((Long) cst).longValue(); + return newLong(val); + } else if (cst instanceof Double) { + double val = ((Double) cst).doubleValue(); + return newDouble(val); + } else if (cst instanceof String) { + return newString((String) cst); + } else if (cst instanceof Type) { + Type t = (Type) cst; + return newClassItem(t.getSort() == Type.OBJECT + ? t.getInternalName() + : t.getDescriptor()); + } else { + throw new IllegalArgumentException("value " + cst); + } + } + + /** + * Adds a number or string constant to the constant pool of the class being + * build. Does nothing if the constant pool already contains a similar item. + * This method is intended for {@link Attribute} sub classes, and is + * normally not needed by class generators or adapters. + * + * @param cst the value of the constant to be added to the constant pool. + * This parameter must be an {@link Integer}, a {@link Float}, a + * {@link Long}, a {@link Double} or a {@link String}. + * @return the index of a new or already existing constant item with the + * given value. + */ + public int newConst(final Object cst) { + return newConstItem(cst).index; + } + + /** + * Adds an UTF8 string to the constant pool of the class being build. Does + * nothing if the constant pool already contains a similar item. This + * method is intended for {@link Attribute} sub classes, and is normally not + * needed by class generators or adapters. + * + * @param value the String value. + * @return the index of a new or already existing UTF8 item. + */ + public int newUTF8(final String value) { + key.set(UTF8, value, null, null); + Item result = get(key); + if (result == null) { + pool.putByte(UTF8).putUTF8(value); + result = new Item(index++, key); + put(result); + } + return result.index; + } + + /** + * Adds a class reference to the constant pool of the class being build. + * Does nothing if the constant pool already contains a similar item. + * This method is intended for {@link Attribute} sub classes, and is + * normally not needed by class generators or adapters. + * + * @param value the internal name of the class. + * @return the index of a new or already existing class reference item. + */ + public int newClass(final String value) { + return newClassItem(value).index; + } + + /** + * Adds a class reference to the constant pool of the class being build. + * Does nothing if the constant pool already contains a similar item. + * This method is intended for {@link Attribute} sub classes, and is + * normally not needed by class generators or adapters. + * + * @param value the internal name of the class. + * @return a new or already existing class reference item. + */ + private Item newClassItem(final String value) { + key2.set(CLASS, value, null, null); + Item result = get(key2); + if (result == null) { + pool.put12(CLASS, newUTF8(value)); + result = new Item(index++, key2); + put(result); + } + return result; + } + + /** + * Adds a field reference to the constant pool of the class being build. + * Does nothing if the constant pool already contains a similar item. + * This method is intended for {@link Attribute} sub classes, and is + * normally not needed by class generators or adapters. + * + * @param owner the internal name of the field's owner class. + * @param name the field's name. + * @param desc the field's descriptor. + * @return the index of a new or already existing field reference item. + */ + public int newField(final String owner, final String name, final String desc) + { + key3.set(FIELD, owner, name, desc); + Item result = get(key3); + if (result == null) { + put122(FIELD, newClass(owner), newNameType(name, desc)); + result = new Item(index++, key3); + put(result); + } + return result.index; + } + + /** + * Adds a method reference to the constant pool of the class being build. + * Does nothing if the constant pool already contains a similar item. + * + * @param owner the internal name of the method's owner class. + * @param name the method's name. + * @param desc the method's descriptor. + * @param itf true if owner is an interface. + * @return a new or already existing method reference item. + */ + Item newMethodItem( + final String owner, + final String name, + final String desc, + final boolean itf) + { + int type = itf ? IMETH : METH; + key3.set(type, owner, name, desc); + Item result = get(key3); + if (result == null) { + put122(type, newClass(owner), newNameType(name, desc)); + result = new Item(index++, key3); + put(result); + } + return result; + } + + /** + * Adds a method reference to the constant pool of the class being build. + * Does nothing if the constant pool already contains a similar item. + * This method is intended for {@link Attribute} sub classes, and is + * normally not needed by class generators or adapters. + * + * @param owner the internal name of the method's owner class. + * @param name the method's name. + * @param desc the method's descriptor. + * @param itf true if owner is an interface. + * @return the index of a new or already existing method reference item. + */ + public int newMethod( + final String owner, + final String name, + final String desc, + final boolean itf) + { + return newMethodItem(owner, name, desc, itf).index; + } + + /** + * Adds an integer to the constant pool of the class being build. Does + * nothing if the constant pool already contains a similar item. + * + * @param value the int value. + * @return a new or already existing int item. + */ + Item newInteger(final int value) { + key.set(value); + Item result = get(key); + if (result == null) { + pool.putByte(INT).putInt(value); + result = new Item(index++, key); + put(result); + } + return result; + } + + /** + * Adds a float to the constant pool of the class being build. Does nothing + * if the constant pool already contains a similar item. + * + * @param value the float value. + * @return a new or already existing float item. + */ + Item newFloat(final float value) { + key.set(value); + Item result = get(key); + if (result == null) { + pool.putByte(FLOAT).putInt(Float.floatToIntBits(value)); + result = new Item(index++, key); + put(result); + } + return result; + } + + /** + * Adds a long to the constant pool of the class being build. Does nothing + * if the constant pool already contains a similar item. + * + * @param value the long value. + * @return a new or already existing long item. + */ + Item newLong(final long value) { + key.set(value); + Item result = get(key); + if (result == null) { + pool.putByte(LONG).putLong(value); + result = new Item(index, key); + put(result); + index += 2; + } + return result; + } + + /** + * Adds a double to the constant pool of the class being build. Does nothing + * if the constant pool already contains a similar item. + * + * @param value the double value. + * @return a new or already existing double item. + */ + Item newDouble(final double value) { + key.set(value); + Item result = get(key); + if (result == null) { + pool.putByte(DOUBLE).putLong(Double.doubleToLongBits(value)); + result = new Item(index, key); + put(result); + index += 2; + } + return result; + } + + /** + * Adds a string to the constant pool of the class being build. Does nothing + * if the constant pool already contains a similar item. + * + * @param value the String value. + * @return a new or already existing string item. + */ + private Item newString(final String value) { + key2.set(STR, value, null, null); + Item result = get(key2); + if (result == null) { + pool.put12(STR, newUTF8(value)); + result = new Item(index++, key2); + put(result); + } + return result; + } + + /** + * Adds a name and type to the constant pool of the class being build. Does + * nothing if the constant pool already contains a similar item. This + * method is intended for {@link Attribute} sub classes, and is normally not + * needed by class generators or adapters. + * + * @param name a name. + * @param desc a type descriptor. + * @return the index of a new or already existing name and type item. + */ + public int newNameType(final String name, final String desc) { + key2.set(NAME_TYPE, name, desc, null); + Item result = get(key2); + if (result == null) { + put122(NAME_TYPE, newUTF8(name), newUTF8(desc)); + result = new Item(index++, key2); + put(result); + } + return result.index; + } + + /** + * Returns the constant pool's hash table item which is equal to the given + * item. + * + * @param key a constant pool item. + * @return the constant pool's hash table item which is equal to the given + * item, or null if there is no such item. + */ + private Item get(final Item key) { + Item i = items[key.hashCode % items.length]; + while (i != null && !key.isEqualTo(i)) { + i = i.next; + } + return i; + } + + /** + * Puts the given item in the constant pool's hash table. The hash table + * must not already contains this item. + * + * @param i the item to be added to the constant pool's hash table. + */ + private void put(final Item i) { + if (index > threshold) { + int ll = items.length; + int nl = ll * 2 + 1; + Item[] newItems = new Item[nl]; + for (int l = ll - 1; l >= 0; --l) { + Item j = items[l]; + while (j != null) { + int index = j.hashCode % newItems.length; + Item k = j.next; + j.next = newItems[index]; + newItems[index] = j; + j = k; + } + } + items = newItems; + threshold = (int) (nl * 0.75); + } + int index = i.hashCode % items.length; + i.next = items[index]; + items[index] = i; + } + + /** + * Puts one byte and two shorts into the constant pool. + * + * @param b a byte. + * @param s1 a short. + * @param s2 another short. + */ + private void put122(final int b, final int s1, final int s2) { + pool.put12(b, s1).putShort(s2); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java new file mode 100644 index 00000000000..c0bf108cee2 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/Edge.java @@ -0,0 +1,57 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * An edge in the control flow graph of a method body. See {@link Label Label}. + * + * @author Eric Bruneton + */ +class Edge { + + /** + * The (relative) stack size in the basic block from which this edge + * originates. This size is equal to the stack size at the "jump" + * instruction to which this edge corresponds, relatively to the stack size + * at the beginning of the originating basic block. + */ + int stackSize; + + /** + * The successor block of the basic block from which this edge originates. + */ + Label successor; + + /** + * The next edge in the list of successors of the originating basic block. + * See {@link Label#successors successors}. + */ + Edge next; +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java new file mode 100644 index 00000000000..0005034ca69 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldVisitor.java @@ -0,0 +1,63 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A visitor to visit a Java field. The methods of this interface must be called + * in the following order: ( visitAnnotation | + * visitAttribute )* visitEnd. + * + * @author Eric Bruneton + */ +public interface FieldVisitor { + + /** + * Visits an annotation of the field. + * + * @param desc the class descriptor of the annotation class. + * @param visible true if the annotation is visible at runtime. + * @return a non null visitor to visit the annotation values. + */ + AnnotationVisitor visitAnnotation(String desc, boolean visible); + + /** + * Visits a non standard attribute of the field. + * + * @param attr an attribute. + */ + void visitAttribute(Attribute attr); + + /** + * Visits the end of the field. This method, which is the last one to be + * called, is used to inform the visitor that all the annotations and + * attributes of the field have been visited. + */ + void visitEnd(); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java new file mode 100644 index 00000000000..7eb3ed4fc60 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/FieldWriter.java @@ -0,0 +1,276 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * An {@link FieldVisitor} that generates Java fields in bytecode form. + * + * @author Eric Bruneton + */ +final class FieldWriter implements FieldVisitor { + + /** + * Next field writer (see {@link ClassWriter#firstField firstField}). + */ + FieldWriter next; + + /** + * The class writer to which this field must be added. + */ + private ClassWriter cw; + + /** + * Access flags of this field. + */ + private int access; + + /** + * The index of the constant pool item that contains the name of this + * method. + */ + private int name; + + /** + * The index of the constant pool item that contains the descriptor of this + * field. + */ + private int desc; + + /** + * The index of the constant pool item that contains the signature of this + * field. + */ + private int signature; + + /** + * The index of the constant pool item that contains the constant value of + * this field. + */ + private int value; + + /** + * The runtime visible annotations of this field. May be null. + */ + private AnnotationWriter anns; + + /** + * The runtime invisible annotations of this field. May be null. + */ + private AnnotationWriter ianns; + + /** + * The non standard attributes of this field. May be null. + */ + private Attribute attrs; + + // ------------------------------------------------------------------------ + // Constructor + // ------------------------------------------------------------------------ + + /** + * Constructs a new {@link FieldWriter}. + * + * @param cw the class writer to which this field must be added. + * @param access the field's access flags (see {@link Opcodes}). + * @param name the field's name. + * @param desc the field's descriptor (see {@link Type}). + * @param signature the field's signature. May be null. + * @param value the field's constant value. May be null. + */ + protected FieldWriter( + final ClassWriter cw, + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + if (cw.firstField == null) { + cw.firstField = this; + } else { + cw.lastField.next = this; + } + cw.lastField = this; + this.cw = cw; + this.access = access; + this.name = cw.newUTF8(name); + this.desc = cw.newUTF8(desc); + if (signature != null) { + this.signature = cw.newUTF8(signature); + } + if (value != null) { + this.value = cw.newConstItem(value).index; + } + } + + // ------------------------------------------------------------------------ + // Implementation of the FieldVisitor interface + // ------------------------------------------------------------------------ + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + ByteVector bv = new ByteVector(); + // write type, and reserve space for values count + bv.putShort(cw.newUTF8(desc)).putShort(0); + AnnotationWriter aw = new AnnotationWriter(cw, true, bv, bv, 2); + if (visible) { + aw.next = anns; + anns = aw; + } else { + aw.next = ianns; + ianns = aw; + } + return aw; + } + + public void visitAttribute(final Attribute attr) { + attr.next = attrs; + attrs = attr; + } + + public void visitEnd() { + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + /** + * Returns the size of this field. + * + * @return the size of this field. + */ + int getSize() { + int size = 8; + if (value != 0) { + cw.newUTF8("ConstantValue"); + size += 8; + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (cw.version & 0xffff) < Opcodes.V1_5) + { + cw.newUTF8("Synthetic"); + size += 6; + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + cw.newUTF8("Deprecated"); + size += 6; + } + if (cw.version == Opcodes.V1_4 && (access & Opcodes.ACC_ENUM) != 0) { + cw.newUTF8("Enum"); + size += 6; + } + if (signature != 0) { + cw.newUTF8("Signature"); + size += 8; + } + if (anns != null) { + cw.newUTF8("RuntimeVisibleAnnotations"); + size += 8 + anns.getSize(); + } + if (ianns != null) { + cw.newUTF8("RuntimeInvisibleAnnotations"); + size += 8 + ianns.getSize(); + } + if (attrs != null) { + size += attrs.getSize(cw, null, 0, -1, -1); + } + return size; + } + + /** + * Puts the content of this field into the given byte vector. + * + * @param out where the content of this field must be put. + */ + void put(final ByteVector out) { + out.putShort(access).putShort(name).putShort(desc); + int attributeCount = 0; + if (value != 0) { + ++attributeCount; + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (cw.version & 0xffff) < Opcodes.V1_5) + { + ++attributeCount; + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + ++attributeCount; + } + if (cw.version == Opcodes.V1_4 && (access & Opcodes.ACC_ENUM) != 0) { + ++attributeCount; + } + if (signature != 0) { + ++attributeCount; + } + if (anns != null) { + ++attributeCount; + } + if (ianns != null) { + ++attributeCount; + } + if (attrs != null) { + attributeCount += attrs.getCount(); + } + out.putShort(attributeCount); + if (value != 0) { + out.putShort(cw.newUTF8("ConstantValue")); + out.putInt(2).putShort(value); + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (cw.version & 0xffff) < Opcodes.V1_5) + { + out.putShort(cw.newUTF8("Synthetic")).putInt(0); + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + out.putShort(cw.newUTF8("Deprecated")).putInt(0); + } + if (cw.version == Opcodes.V1_4 && (access & Opcodes.ACC_ENUM) != 0) { + out.putShort(cw.newUTF8("Enum")).putInt(0); + } + if (signature != 0) { + out.putShort(cw.newUTF8("Signature")); + out.putInt(2).putShort(signature); + } + if (anns != null) { + out.putShort(cw.newUTF8("RuntimeVisibleAnnotations")); + anns.put(out); + } + if (ianns != null) { + out.putShort(cw.newUTF8("RuntimeInvisibleAnnotations")); + ianns.put(out); + } + if (attrs != null) { + attrs.put(cw, null, 0, -1, -1, out); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java new file mode 100644 index 00000000000..8bef8453114 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/Handler.java @@ -0,0 +1,70 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * Information about an exception handler block. + * + * @author Eric Bruneton + */ +class Handler { + + /** + * Beginning of the exception handler's scope (inclusive). + */ + Label start; + + /** + * End of the exception handler's scope (exclusive). + */ + Label end; + + /** + * Beginning of the exception handler's code. + */ + Label handler; + + /** + * Internal name of the type of exceptions handled by this handler, or + * null to catch any exceptions. + */ + String desc; + + /** + * Constant pool index of the internal name of the type of exceptions + * handled by this handler, or 0 to catch any exceptions. + */ + int type; + + /** + * Next exception handler block info. + */ + Handler next; +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java new file mode 100644 index 00000000000..4c5285f2f2c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/Item.java @@ -0,0 +1,252 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A constant pool item. Constant pool items can be created with the 'newXXX' + * methods in the {@link ClassWriter} class. + * + * @author Eric Bruneton + */ +final class Item { + + /** + * Index of this item in the constant pool. + */ + int index; + + /** + * Type of this constant pool item. A single class is used to represent all + * constant pool item types, in order to minimize the bytecode size of this + * package. The value of this field is one of {@link ClassWriter#INT}, + * {@link ClassWriter#LONG}, {@link ClassWriter#FLOAT}, + * {@link ClassWriter#DOUBLE}, {@link ClassWriter#UTF8}, + * {@link ClassWriter#STR}, {@link ClassWriter#CLASS}, + * {@link ClassWriter#NAME_TYPE}, {@link ClassWriter#FIELD}, + * {@link ClassWriter#METH}, {@link ClassWriter#IMETH}. + */ + int type; + + /** + * Value of this item, for an integer item. + */ + int intVal; + + /** + * Value of this item, for a long item. + */ + long longVal; + + /** + * Value of this item, for a float item. + */ + float floatVal; + + /** + * Value of this item, for a double item. + */ + double doubleVal; + + /** + * First part of the value of this item, for items that do not hold a + * primitive value. + */ + String strVal1; + + /** + * Second part of the value of this item, for items that do not hold a + * primitive value. + */ + String strVal2; + + /** + * Third part of the value of this item, for items that do not hold a + * primitive value. + */ + String strVal3; + + /** + * The hash code value of this constant pool item. + */ + int hashCode; + + /** + * Link to another constant pool item, used for collision lists in the + * constant pool's hash table. + */ + Item next; + + /** + * Constructs an uninitialized {@link Item}. + */ + Item() { + } + + Item(int index) { + this.index = index; + } + + /** + * Constructs a copy of the given item. + * + * @param index index of the item to be constructed. + * @param i the item that must be copied into the item to be constructed. + */ + Item(final int index, final Item i) { + this.index = index; + type = i.type; + intVal = i.intVal; + longVal = i.longVal; + floatVal = i.floatVal; + doubleVal = i.doubleVal; + strVal1 = i.strVal1; + strVal2 = i.strVal2; + strVal3 = i.strVal3; + hashCode = i.hashCode; + } + + /** + * Sets this item to an integer item. + * + * @param intVal the value of this item. + */ + void set(final int intVal) { + this.type = ClassWriter.INT; + this.intVal = intVal; + this.hashCode = 0x7FFFFFFF & (type + intVal); + } + + /** + * Sets this item to a long item. + * + * @param longVal the value of this item. + */ + void set(final long longVal) { + this.type = ClassWriter.LONG; + this.longVal = longVal; + this.hashCode = 0x7FFFFFFF & (type + (int) longVal); + } + + /** + * Sets this item to a float item. + * + * @param floatVal the value of this item. + */ + void set(final float floatVal) { + this.type = ClassWriter.FLOAT; + this.floatVal = floatVal; + this.hashCode = 0x7FFFFFFF & (type + (int) floatVal); + } + + /** + * Sets this item to a double item. + * + * @param doubleVal the value of this item. + */ + void set(final double doubleVal) { + this.type = ClassWriter.DOUBLE; + this.doubleVal = doubleVal; + this.hashCode = 0x7FFFFFFF & (type + (int) doubleVal); + } + + /** + * Sets this item to an item that do not hold a primitive value. + * + * @param type the type of this item. + * @param strVal1 first part of the value of this item. + * @param strVal2 second part of the value of this item. + * @param strVal3 third part of the value of this item. + */ + void set( + final int type, + final String strVal1, + final String strVal2, + final String strVal3) + { + this.type = type; + this.strVal1 = strVal1; + this.strVal2 = strVal2; + this.strVal3 = strVal3; + switch (type) { + case ClassWriter.UTF8: + case ClassWriter.STR: + case ClassWriter.CLASS: + hashCode = 0x7FFFFFFF & (type + strVal1.hashCode()); + return; + case ClassWriter.NAME_TYPE: + hashCode = 0x7FFFFFFF & (type + strVal1.hashCode() + * strVal2.hashCode()); + return; + // ClassWriter.FIELD: + // ClassWriter.METH: + // ClassWriter.IMETH: + default: + hashCode = 0x7FFFFFFF & (type + strVal1.hashCode() + * strVal2.hashCode() * strVal3.hashCode()); + } + } + + /** + * Indicates if the given item is equal to this one. + * + * @param i the item to be compared to this one. + * @return true if the given item if equal to this one, + * false otherwise. + */ + boolean isEqualTo(final Item i) { + if (i.type == type) { + switch (type) { + case ClassWriter.INT: + return i.intVal == intVal; + case ClassWriter.LONG: + return i.longVal == longVal; + case ClassWriter.FLOAT: + return i.floatVal == floatVal; + case ClassWriter.DOUBLE: + return i.doubleVal == doubleVal; + case ClassWriter.UTF8: + case ClassWriter.STR: + case ClassWriter.CLASS: + return i.strVal1.equals(strVal1); + case ClassWriter.NAME_TYPE: + return i.strVal1.equals(strVal1) + && i.strVal2.equals(strVal2); + // ClassWriter.FIELD: + // ClassWriter.METH: + // ClassWriter.IMETH: + default: + return i.strVal1.equals(strVal1) + && i.strVal2.equals(strVal2) + && i.strVal3.equals(strVal3); + } + } + return false; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java new file mode 100644 index 00000000000..79291f27cd1 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/Label.java @@ -0,0 +1,299 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A label represents a position in the bytecode of a method. Labels are used + * for jump, goto, and switch instructions, and for try catch blocks. + * + * @author Eric Bruneton + */ +public class Label { + + /** + * The line number corresponding to this label, if known. + */ + int line; + + /** + * Indicates if the position of this label is known. + */ + boolean resolved; + + /** + * The position of this label in the code, if known. + */ + int position; + + /** + * If the label position has been updated, after instruction resizing. + */ + boolean resized; + + /** + * Number of forward references to this label, times two. + */ + private int referenceCount; + + /** + * Informations about forward references. Each forward reference is + * described by two consecutive integers in this array: the first one is the + * position of the first byte of the bytecode instruction that contains the + * forward reference, while the second is the position of the first byte of + * the forward reference itself. In fact the sign of the first integer + * indicates if this reference uses 2 or 4 bytes, and its absolute value + * gives the position of the bytecode instruction. + */ + private int[] srcAndRefPositions; + + /* + * Fields for the control flow graph analysis algorithm (used to compute the + * maximum stack size). A control flow graph contains one node per "basic + * block", and one edge per "jump" from one basic block to another. Each + * node (i.e., each basic block) is represented by the Label object that + * corresponds to the first instruction of this basic block. Each node also + * stores the list of it successors in the graph, as a linked list of Edge + * objects. + */ + + /** + * The stack size at the beginning of this basic block. This size is + * initially unknown. It is computed by the control flow analysis algorithm + * (see {@link MethodWriter#visitMaxs visitMaxs}). + */ + int beginStackSize; + + /** + * The (relative) maximum stack size corresponding to this basic block. This + * size is relative to the stack size at the beginning of the basic block, + * i.e., the true maximum stack size is equal to {@link #beginStackSize + * beginStackSize} + {@link #maxStackSize maxStackSize}. + */ + int maxStackSize; + + /** + * The successors of this node in the control flow graph. These successors + * are stored in a linked list of {@link Edge Edge} objects, linked to each + * other by their {@link Edge#next} field. + */ + Edge successors; + + /** + * The next basic block in the basic block stack. See + * {@link MethodWriter#visitMaxs visitMaxs}. + */ + Label next; + + /** + * true if this basic block has been pushed in the basic block + * stack. See {@link MethodWriter#visitMaxs visitMaxs}. + */ + boolean pushed; + + // ------------------------------------------------------------------------ + // Constructor + // ------------------------------------------------------------------------ + + /** + * Constructs a new label. + */ + public Label() { + } + + // ------------------------------------------------------------------------ + // Methods to compute offsets and to manage forward references + // ------------------------------------------------------------------------ + + /** + * Returns the offset corresponding to this label. This offset is computed + * from the start of the method's bytecode. This method is intended for + * {@link Attribute} sub classes, and is normally not needed by class + * generators or adapters. + * + * @return the offset corresponding to this label. + * @throws IllegalStateException if this label is not resolved yet. + */ + public int getOffset() { + if (!resolved) { + throw new IllegalStateException("Label offset position has not been resolved yet"); + } + return position; + } + + /** + * Puts a reference to this label in the bytecode of a method. If the + * position of the label is known, the offset is computed and written + * directly. Otherwise, a null offset is written and a new forward reference + * is declared for this label. + * + * @param owner the code writer that calls this method. + * @param out the bytecode of the method. + * @param source the position of first byte of the bytecode instruction that + * contains this label. + * @param wideOffset true if the reference must be stored in 4 + * bytes, or false if it must be stored with 2 bytes. + * @throws IllegalArgumentException if this label has not been created by + * the given code writer. + */ + void put( + final MethodWriter owner, + final ByteVector out, + final int source, + final boolean wideOffset) + { + if (resolved) { + if (wideOffset) { + out.putInt(position - source); + } else { + out.putShort(position - source); + } + } else { + if (wideOffset) { + addReference(-1 - source, out.length); + out.putInt(-1); + } else { + addReference(source, out.length); + out.putShort(-1); + } + } + } + + /** + * Adds a forward reference to this label. This method must be called only + * for a true forward reference, i.e. only if this label is not resolved + * yet. For backward references, the offset of the reference can be, and + * must be, computed and stored directly. + * + * @param sourcePosition the position of the referencing instruction. This + * position will be used to compute the offset of this forward + * reference. + * @param referencePosition the position where the offset for this forward + * reference must be stored. + */ + private void addReference( + final int sourcePosition, + final int referencePosition) + { + if (srcAndRefPositions == null) { + srcAndRefPositions = new int[6]; + } + if (referenceCount >= srcAndRefPositions.length) { + int[] a = new int[srcAndRefPositions.length + 6]; + System.arraycopy(srcAndRefPositions, + 0, + a, + 0, + srcAndRefPositions.length); + srcAndRefPositions = a; + } + srcAndRefPositions[referenceCount++] = sourcePosition; + srcAndRefPositions[referenceCount++] = referencePosition; + } + + /** + * Resolves all forward references to this label. This method must be called + * when this label is added to the bytecode of the method, i.e. when its + * position becomes known. This method fills in the blanks that where left + * in the bytecode by each forward reference previously added to this label. + * + * @param owner the code writer that calls this method. + * @param position the position of this label in the bytecode. + * @param data the bytecode of the method. + * @return true if a blank that was left for this label was to + * small to store the offset. In such a case the corresponding jump + * instruction is replaced with a pseudo instruction (using unused + * opcodes) using an unsigned two bytes offset. These pseudo + * instructions will need to be replaced with true instructions with + * wider offsets (4 bytes instead of 2). This is done in + * {@link MethodWriter#resizeInstructions}. + * @throws IllegalArgumentException if this label has already been resolved, + * or if it has not been created by the given code writer. + */ + boolean resolve( + final MethodWriter owner, + final int position, + final byte[] data) + { + boolean needUpdate = false; + this.resolved = true; + this.position = position; + int i = 0; + while (i < referenceCount) { + int source = srcAndRefPositions[i++]; + int reference = srcAndRefPositions[i++]; + int offset; + if (source >= 0) { + offset = position - source; + if (offset < Short.MIN_VALUE || offset > Short.MAX_VALUE) { + /* + * changes the opcode of the jump instruction, in order to + * be able to find it later (see resizeInstructions in + * MethodWriter). These temporary opcodes are similar to + * jump instruction opcodes, except that the 2 bytes offset + * is unsigned (and can therefore represent values from 0 to + * 65535, which is sufficient since the size of a method is + * limited to 65535 bytes). + */ + int opcode = data[reference - 1] & 0xFF; + if (opcode <= Opcodes.JSR) { + // changes IFEQ ... JSR to opcodes 202 to 217 + data[reference - 1] = (byte) (opcode + 49); + } else { + // changes IFNULL and IFNONNULL to opcodes 218 and 219 + data[reference - 1] = (byte) (opcode + 20); + } + needUpdate = true; + } + data[reference++] = (byte) (offset >>> 8); + data[reference] = (byte) offset; + } else { + offset = position + source + 1; + data[reference++] = (byte) (offset >>> 24); + data[reference++] = (byte) (offset >>> 16); + data[reference++] = (byte) (offset >>> 8); + data[reference] = (byte) offset; + } + } + return needUpdate; + } + + // ------------------------------------------------------------------------ + // Overriden Object methods + // ------------------------------------------------------------------------ + + /** + * Returns a string representation of this label. + * + * @return a string representation of this label. + */ + public String toString() { + return "L" + System.identityHashCode(this); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java new file mode 100644 index 00000000000..c7e127de793 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodAdapter.java @@ -0,0 +1,185 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * An empty {@link MethodVisitor} that delegates to another + * {@link MethodVisitor}. This class can be used as a super class to quickly + * implement usefull method adapter classes, just by overriding the necessary + * methods. + * + * @author Eric Bruneton + */ +public class MethodAdapter implements MethodVisitor { + + /** + * The {@link MethodVisitor} to which this adapter delegates calls. + */ + protected MethodVisitor mv; + + /** + * Constructs a new {@link MethodAdapter} object. + * + * @param mv the code visitor to which this adapter must delegate calls. + */ + public MethodAdapter(final MethodVisitor mv) { + this.mv = mv; + } + + public AnnotationVisitor visitAnnotationDefault() { + return mv.visitAnnotationDefault(); + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + return mv.visitAnnotation(desc, visible); + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + return mv.visitParameterAnnotation(parameter, desc, visible); + } + + public void visitAttribute(final Attribute attr) { + mv.visitAttribute(attr); + } + + public void visitCode() { + mv.visitCode(); + } + + public void visitInsn(final int opcode) { + mv.visitInsn(opcode); + } + + public void visitIntInsn(final int opcode, final int operand) { + mv.visitIntInsn(opcode, operand); + } + + public void visitVarInsn(final int opcode, final int var) { + mv.visitVarInsn(opcode, var); + } + + public void visitTypeInsn(final int opcode, final String desc) { + mv.visitTypeInsn(opcode, desc); + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + mv.visitFieldInsn(opcode, owner, name, desc); + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + mv.visitMethodInsn(opcode, owner, name, desc); + } + + public void visitJumpInsn(final int opcode, final Label label) { + mv.visitJumpInsn(opcode, label); + } + + public void visitLabel(final Label label) { + mv.visitLabel(label); + } + + public void visitLdcInsn(final Object cst) { + mv.visitLdcInsn(cst); + } + + public void visitIincInsn(final int var, final int increment) { + mv.visitIincInsn(var, increment); + } + + public void visitTableSwitchInsn( + final int min, + final int max, + final Label dflt, + final Label labels[]) + { + mv.visitTableSwitchInsn(min, max, dflt, labels); + } + + public void visitLookupSwitchInsn( + final Label dflt, + final int keys[], + final Label labels[]) + { + mv.visitLookupSwitchInsn(dflt, keys, labels); + } + + public void visitMultiANewArrayInsn(final String desc, final int dims) { + mv.visitMultiANewArrayInsn(desc, dims); + } + + public void visitTryCatchBlock( + final Label start, + final Label end, + final Label handler, + final String type) + { + mv.visitTryCatchBlock(start, end, handler, type); + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + mv.visitLocalVariable(name, desc, signature, start, end, index); + } + + public void visitLineNumber(final int line, final Label start) { + mv.visitLineNumber(line, start); + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + mv.visitMaxs(maxStack, maxLocals); + } + + public void visitEnd() { + mv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java new file mode 100644 index 00000000000..3fccbdf1456 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodVisitor.java @@ -0,0 +1,334 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A visitor to visit a Java method. The methods of this interface must be + * called in the following order: [ visitAnnotationDefault ] ( + * visitAnnotation | visitParameterAnnotation | + * visitAttribute )* [ visitCode ( visitXInsn | + * visitLabel | visitTryCatchBlock | visitLocalVariable | + * visitLineNumber)* visitMaxs ] visitEnd. In + * addition, the visitXInsn and visitLabel + * methods must be called in the sequential order of the bytecode instructions + * of the visited code, and the visitLocalVariable and visitLineNumber + * methods must be called after the labels passed as arguments have been + * visited. + * + * @author Eric Bruneton + */ +public interface MethodVisitor { + + // ------------------------------------------------------------------------- + // Annotations and non standard attributes + // ------------------------------------------------------------------------- + + /** + * Visits the default value of this annotation interface method. + * + * @return a non null visitor to the visit the actual default value of this + * annotation interface method. The 'name' parameters passed to the + * methods of this annotation visitor are ignored. Moreover, exacly + * one visit method must be called on this annotation visitor, + * followed by visitEnd. + */ + AnnotationVisitor visitAnnotationDefault(); + + /** + * Visits an annotation of this method. + * + * @param desc the class descriptor of the annotation class. + * @param visible true if the annotation is visible at runtime. + * @return a non null visitor to visit the annotation values. + */ + AnnotationVisitor visitAnnotation(String desc, boolean visible); + + /** + * Visits an annotation of a parameter this method. + * + * @param parameter the parameter index. + * @param desc the class descriptor of the annotation class. + * @param visible true if the annotation is visible at runtime. + * @return a non null visitor to visit the annotation values. + */ + AnnotationVisitor visitParameterAnnotation( + int parameter, + String desc, + boolean visible); + + /** + * Visits a non standard attribute of this method. + * + * @param attr an attribute. + */ + void visitAttribute(Attribute attr); + + /** + * Starts the visit of the method's code, if any (i.e. non abstract method). + */ + void visitCode(); + + // ------------------------------------------------------------------------- + // Normal instructions + // ------------------------------------------------------------------------- + + /** + * Visits a zero operand instruction. + * + * @param opcode the opcode of the instruction to be visited. This opcode is + * either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, + * ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0, + * FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD, + * DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE, + * DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP, + * DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD, + * DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV, + * FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL, + * LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, + * I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B, + * I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, + * FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, + * MONITORENTER, or MONITOREXIT. + */ + void visitInsn(int opcode); + + /** + * Visits an instruction with a single int operand. + * + * @param opcode the opcode of the instruction to be visited. This opcode is + * either BIPUSH, SIPUSH or NEWARRAY. + * @param operand the operand of the instruction to be visited.
      + * When opcode is BIPUSH, operand value should be between + * Byte.MIN_VALUE and Byte.MAX_VALUE.
      + * When opcode is SIPUSH, operand value should be between + * Short.MIN_VALUE and Short.MAX_VALUE.
      + * When opcode is NEWARRAY, operand value should be one of + * {@link Opcodes#T_BOOLEAN}, {@link Opcodes#T_CHAR}, + * {@link Opcodes#T_FLOAT}, {@link Opcodes#T_DOUBLE}, + * {@link Opcodes#T_BYTE}, {@link Opcodes#T_SHORT}, + * {@link Opcodes#T_INT} or {@link Opcodes#T_LONG}. + */ + void visitIntInsn(int opcode, int operand); + + /** + * Visits a local variable instruction. A local variable instruction is an + * instruction that loads or stores the value of a local variable. + * + * @param opcode the opcode of the local variable instruction to be visited. + * This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, + * LSTORE, FSTORE, DSTORE, ASTORE or RET. + * @param var the operand of the instruction to be visited. This operand is + * the index of a local variable. + */ + void visitVarInsn(int opcode, int var); + + /** + * Visits a type instruction. A type instruction is an instruction that + * takes a type descriptor as parameter. + * + * @param opcode the opcode of the type instruction to be visited. This + * opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF. + * @param desc the operand of the instruction to be visited. This operand is + * must be a fully qualified class name in internal form, or the type + * descriptor of an array type (see {@link Type Type}). + */ + void visitTypeInsn(int opcode, String desc); + + /** + * Visits a field instruction. A field instruction is an instruction that + * loads or stores the value of a field of an object. + * + * @param opcode the opcode of the type instruction to be visited. This + * opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD. + * @param owner the internal name of the field's owner class (see {@link + * Type#getInternalName() getInternalName}). + * @param name the field's name. + * @param desc the field's descriptor (see {@link Type Type}). + */ + void visitFieldInsn(int opcode, String owner, String name, String desc); + + /** + * Visits a method instruction. A method instruction is an instruction that + * invokes a method. + * + * @param opcode the opcode of the type instruction to be visited. This + * opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or + * INVOKEINTERFACE. + * @param owner the internal name of the method's owner class (see {@link + * Type#getInternalName() getInternalName}). + * @param name the method's name. + * @param desc the method's descriptor (see {@link Type Type}). + */ + void visitMethodInsn(int opcode, String owner, String name, String desc); + + /** + * Visits a jump instruction. A jump instruction is an instruction that may + * jump to another instruction. + * + * @param opcode the opcode of the type instruction to be visited. This + * opcode is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, + * IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, + * IF_ACMPNE, GOTO, JSR, IFNULL or IFNONNULL. + * @param label the operand of the instruction to be visited. This operand + * is a label that designates the instruction to which the jump + * instruction may jump. + */ + void visitJumpInsn(int opcode, Label label); + + /** + * Visits a label. A label designates the instruction that will be visited + * just after it. + * + * @param label a {@link Label Label} object. + */ + void visitLabel(Label label); + + // ------------------------------------------------------------------------- + // Special instructions + // ------------------------------------------------------------------------- + + /** + * Visits a LDC instruction. + * + * @param cst the constant to be loaded on the stack. This parameter must be + * a non null {@link Integer}, a {@link Float}, a {@link Long}, a + * {@link Double} a {@link String} (or a {@link Type} for + * .class constants, for classes whose version is 49.0 or + * more). + */ + void visitLdcInsn(Object cst); + + /** + * Visits an IINC instruction. + * + * @param var index of the local variable to be incremented. + * @param increment amount to increment the local variable by. + */ + void visitIincInsn(int var, int increment); + + /** + * Visits a TABLESWITCH instruction. + * + * @param min the minimum key value. + * @param max the maximum key value. + * @param dflt beginning of the default handler block. + * @param labels beginnings of the handler blocks. labels[i] is + * the beginning of the handler block for the min + i key. + */ + void visitTableSwitchInsn(int min, int max, Label dflt, Label labels[]); + + /** + * Visits a LOOKUPSWITCH instruction. + * + * @param dflt beginning of the default handler block. + * @param keys the values of the keys. + * @param labels beginnings of the handler blocks. labels[i] is + * the beginning of the handler block for the keys[i] key. + */ + void visitLookupSwitchInsn(Label dflt, int keys[], Label labels[]); + + /** + * Visits a MULTIANEWARRAY instruction. + * + * @param desc an array type descriptor (see {@link Type Type}). + * @param dims number of dimensions of the array to allocate. + */ + void visitMultiANewArrayInsn(String desc, int dims); + + // ------------------------------------------------------------------------- + // Exceptions table entries, debug information, + // max stack size and max locals + // ------------------------------------------------------------------------- + + /** + * Visits a try catch block. + * + * @param start beginning of the exception handler's scope (inclusive). + * @param end end of the exception handler's scope (exclusive). + * @param handler beginning of the exception handler's code. + * @param type internal name of the type of exceptions handled by the + * handler, or null to catch any exceptions (for "finally" + * blocks). + */ + void visitTryCatchBlock(Label start, Label end, Label handler, String type); + + /** + * Visits a local variable declaration. + * + * @param name the name of a local variable. + * @param desc the type descriptor of this local variable. + * @param signature the type signature of this local variable. May be + * null if the local variable type does not use generic + * types. + * @param start the first instruction corresponding to the scope of this + * local variable (inclusive). + * @param end the last instruction corresponding to the scope of this local + * variable (exclusive). + * @param index the local variable's index. + * @throws IllegalArgumentException if one of the labels has not already + * been visited by this visitor (by the + * {@link #visitLabel visitLabel} method). + */ + void visitLocalVariable( + String name, + String desc, + String signature, + Label start, + Label end, + int index); + + /** + * Visits a line number declaration. + * + * @param line a line number. This number refers to the source file from + * which the class was compiled. + * @param start the first instruction corresponding to this line number. + * @throws IllegalArgumentException if start has not already been + * visited by this visitor (by the {@link #visitLabel visitLabel} + * method). + */ + void visitLineNumber(int line, Label start); + + /** + * Visits the maximum stack size and the maximum number of local variables + * of the method. + * + * @param maxStack maximum stack size of the method. + * @param maxLocals maximum number of local variables for the method. + */ + void visitMaxs(int maxStack, int maxLocals); + + /** + * Visits the end of the method. This method, which is the last one to be + * called, is used to inform the visitor that all the annotations and + * attributes of the method have been visited. + */ + void visitEnd(); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java new file mode 100644 index 00000000000..e131c69abb9 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/MethodWriter.java @@ -0,0 +1,2022 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * A {@link MethodVisitor} that generates methods in bytecode form. Each visit + * method of this class appends the bytecode corresponding to the visited + * instruction to a byte vector, in the order these methods are called. + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +class MethodWriter implements MethodVisitor { + + /** + * Next method writer (see {@link ClassWriter#firstMethod firstMethod}). + */ + MethodWriter next; + + /** + * The class writer to which this method must be added. + */ + ClassWriter cw; + + /** + * Access flags of this method. + */ + private int access; + + /** + * The index of the constant pool item that contains the name of this + * method. + */ + private int name; + + /** + * The index of the constant pool item that contains the descriptor of this + * method. + */ + private int desc; + + /** + * The descriptor of this method. + */ + private String descriptor; + + /** + * If not zero, indicates that the code of this method must be copied from + * the ClassReader associated to this writer in cw.cr. More + * precisely, this field gives the index of the first byte to copied from + * cw.cr.b. + */ + int classReaderOffset; + + /** + * If not zero, indicates that the code of this method must be copied from + * the ClassReader associated to this writer in cw.cr. More + * precisely, this field gives the number of bytes to copied from + * cw.cr.b. + */ + int classReaderLength; + + /** + * The signature of this method. + */ + String signature; + + /** + * Number of exceptions that can be thrown by this method. + */ + int exceptionCount; + + /** + * The exceptions that can be thrown by this method. More precisely, this + * array contains the indexes of the constant pool items that contain the + * internal names of these exception classes. + */ + int[] exceptions; + + /** + * The annotation default attribute of this method. May be null. + */ + private ByteVector annd; + + /** + * The runtime visible annotations of this method. May be null. + */ + private AnnotationWriter anns; + + /** + * The runtime invisible annotations of this method. May be null. + */ + private AnnotationWriter ianns; + + /** + * The runtime visible parameter annotations of this method. May be + * null. + */ + private AnnotationWriter[] panns; + + /** + * The runtime invisible parameter annotations of this method. May be + * null. + */ + private AnnotationWriter[] ipanns; + + /** + * The non standard attributes of the method. + */ + private Attribute attrs; + + /** + * The bytecode of this method. + */ + private ByteVector code = new ByteVector(); + + /** + * Maximum stack size of this method. + */ + private int maxStack; + + /** + * Maximum number of local variables for this method. + */ + private int maxLocals; + + /** + * Number of entries in the catch table of this method. + */ + private int catchCount; + + /** + * The catch table of this method. + */ + private Handler catchTable; + + /** + * The last element in the catchTable handler list. + */ + private Handler lastHandler; + + /** + * Number of entries in the LocalVariableTable attribute. + */ + private int localVarCount; + + /** + * The LocalVariableTable attribute. + */ + private ByteVector localVar; + + /** + * Number of entries in the LocalVariableTypeTable attribute. + */ + private int localVarTypeCount; + + /** + * The LocalVariableTypeTable attribute. + */ + private ByteVector localVarType; + + /** + * Number of entries in the LineNumberTable attribute. + */ + private int lineNumberCount; + + /** + * The LineNumberTable attribute. + */ + private ByteVector lineNumber; + + /** + * The non standard attributes of the method's code. + */ + private Attribute cattrs; + + /** + * Indicates if some jump instructions are too small and need to be resized. + */ + private boolean resize; + + /* + * Fields for the control flow graph analysis algorithm (used to compute the + * maximum stack size). A control flow graph contains one node per "basic + * block", and one edge per "jump" from one basic block to another. Each + * node (i.e., each basic block) is represented by the Label object that + * corresponds to the first instruction of this basic block. Each node also + * stores the list of its successors in the graph, as a linked list of Edge + * objects. + */ + + /** + * true if the maximum stack size and number of local variables + * must be automatically computed. + */ + private final boolean computeMaxs; + + /** + * The (relative) stack size after the last visited instruction. This size + * is relative to the beginning of the current basic block, i.e., the true + * stack size after the last visited instruction is equal to the {@link + * Label#beginStackSize beginStackSize} of the current basic block plus + * stackSize. + */ + private int stackSize; + + /** + * The (relative) maximum stack size after the last visited instruction. + * This size is relative to the beginning of the current basic block, i.e., + * the true maximum stack size after the last visited instruction is equal + * to the {@link Label#beginStackSize beginStackSize} of the current basic + * block plus stackSize. + */ + private int maxStackSize; + + /** + * The current basic block. This block is the basic block to which the next + * instruction to be visited must be added. + */ + private Label currentBlock; + + /** + * The basic block stack used by the control flow analysis algorithm. This + * stack is represented by a linked list of {@link Label Label} objects, + * linked to each other by their {@link Label#next} field. This stack must + * not be confused with the JVM stack used to execute the JVM instructions! + */ + private Label blockStack; + + /** + * The stack size variation corresponding to each JVM instruction. This + * stack variation is equal to the size of the values produced by an + * instruction, minus the size of the values consumed by this instruction. + */ + private final static int[] SIZE; + + // ------------------------------------------------------------------------ + // Static initializer + // ------------------------------------------------------------------------ + + /** + * Computes the stack size variation corresponding to each JVM instruction. + */ + static { + int i; + int[] b = new int[202]; + String s = "EFFFFFFFFGGFFFGGFFFEEFGFGFEEEEEEEEEEEEEEEEEEEEDEDEDDDDD" + + "CDCDEEEEEEEEEEEEEEEEEEEEBABABBBBDCFFFGGGEDCDCDCDCDCDCDCDCD" + + "CDCEEEEDDDDDDDCDCDCEFEFDDEEFFDEDEEEBDDBBDDDDDDCCCCCCCCEFED" + + "DDCDCDEEEEEEEEEEFEEEEEEDDEEDDEE"; + for (i = 0; i < b.length; ++i) { + b[i] = s.charAt(i) - 'E'; + } + SIZE = b; + + // code to generate the above string + // + // int NA = 0; // not applicable (unused opcode or variable size opcode) + // + // b = new int[] { + // 0, //NOP, // visitInsn + // 1, //ACONST_NULL, // - + // 1, //ICONST_M1, // - + // 1, //ICONST_0, // - + // 1, //ICONST_1, // - + // 1, //ICONST_2, // - + // 1, //ICONST_3, // - + // 1, //ICONST_4, // - + // 1, //ICONST_5, // - + // 2, //LCONST_0, // - + // 2, //LCONST_1, // - + // 1, //FCONST_0, // - + // 1, //FCONST_1, // - + // 1, //FCONST_2, // - + // 2, //DCONST_0, // - + // 2, //DCONST_1, // - + // 1, //BIPUSH, // visitIntInsn + // 1, //SIPUSH, // - + // 1, //LDC, // visitLdcInsn + // NA, //LDC_W, // - + // NA, //LDC2_W, // - + // 1, //ILOAD, // visitVarInsn + // 2, //LLOAD, // - + // 1, //FLOAD, // - + // 2, //DLOAD, // - + // 1, //ALOAD, // - + // NA, //ILOAD_0, // - + // NA, //ILOAD_1, // - + // NA, //ILOAD_2, // - + // NA, //ILOAD_3, // - + // NA, //LLOAD_0, // - + // NA, //LLOAD_1, // - + // NA, //LLOAD_2, // - + // NA, //LLOAD_3, // - + // NA, //FLOAD_0, // - + // NA, //FLOAD_1, // - + // NA, //FLOAD_2, // - + // NA, //FLOAD_3, // - + // NA, //DLOAD_0, // - + // NA, //DLOAD_1, // - + // NA, //DLOAD_2, // - + // NA, //DLOAD_3, // - + // NA, //ALOAD_0, // - + // NA, //ALOAD_1, // - + // NA, //ALOAD_2, // - + // NA, //ALOAD_3, // - + // -1, //IALOAD, // visitInsn + // 0, //LALOAD, // - + // -1, //FALOAD, // - + // 0, //DALOAD, // - + // -1, //AALOAD, // - + // -1, //BALOAD, // - + // -1, //CALOAD, // - + // -1, //SALOAD, // - + // -1, //ISTORE, // visitVarInsn + // -2, //LSTORE, // - + // -1, //FSTORE, // - + // -2, //DSTORE, // - + // -1, //ASTORE, // - + // NA, //ISTORE_0, // - + // NA, //ISTORE_1, // - + // NA, //ISTORE_2, // - + // NA, //ISTORE_3, // - + // NA, //LSTORE_0, // - + // NA, //LSTORE_1, // - + // NA, //LSTORE_2, // - + // NA, //LSTORE_3, // - + // NA, //FSTORE_0, // - + // NA, //FSTORE_1, // - + // NA, //FSTORE_2, // - + // NA, //FSTORE_3, // - + // NA, //DSTORE_0, // - + // NA, //DSTORE_1, // - + // NA, //DSTORE_2, // - + // NA, //DSTORE_3, // - + // NA, //ASTORE_0, // - + // NA, //ASTORE_1, // - + // NA, //ASTORE_2, // - + // NA, //ASTORE_3, // - + // -3, //IASTORE, // visitInsn + // -4, //LASTORE, // - + // -3, //FASTORE, // - + // -4, //DASTORE, // - + // -3, //AASTORE, // - + // -3, //BASTORE, // - + // -3, //CASTORE, // - + // -3, //SASTORE, // - + // -1, //POP, // - + // -2, //POP2, // - + // 1, //DUP, // - + // 1, //DUP_X1, // - + // 1, //DUP_X2, // - + // 2, //DUP2, // - + // 2, //DUP2_X1, // - + // 2, //DUP2_X2, // - + // 0, //SWAP, // - + // -1, //IADD, // - + // -2, //LADD, // - + // -1, //FADD, // - + // -2, //DADD, // - + // -1, //ISUB, // - + // -2, //LSUB, // - + // -1, //FSUB, // - + // -2, //DSUB, // - + // -1, //IMUL, // - + // -2, //LMUL, // - + // -1, //FMUL, // - + // -2, //DMUL, // - + // -1, //IDIV, // - + // -2, //LDIV, // - + // -1, //FDIV, // - + // -2, //DDIV, // - + // -1, //IREM, // - + // -2, //LREM, // - + // -1, //FREM, // - + // -2, //DREM, // - + // 0, //INEG, // - + // 0, //LNEG, // - + // 0, //FNEG, // - + // 0, //DNEG, // - + // -1, //ISHL, // - + // -1, //LSHL, // - + // -1, //ISHR, // - + // -1, //LSHR, // - + // -1, //IUSHR, // - + // -1, //LUSHR, // - + // -1, //IAND, // - + // -2, //LAND, // - + // -1, //IOR, // - + // -2, //LOR, // - + // -1, //IXOR, // - + // -2, //LXOR, // - + // 0, //IINC, // visitIincInsn + // 1, //I2L, // visitInsn + // 0, //I2F, // - + // 1, //I2D, // - + // -1, //L2I, // - + // -1, //L2F, // - + // 0, //L2D, // - + // 0, //F2I, // - + // 1, //F2L, // - + // 1, //F2D, // - + // -1, //D2I, // - + // 0, //D2L, // - + // -1, //D2F, // - + // 0, //I2B, // - + // 0, //I2C, // - + // 0, //I2S, // - + // -3, //LCMP, // - + // -1, //FCMPL, // - + // -1, //FCMPG, // - + // -3, //DCMPL, // - + // -3, //DCMPG, // - + // -1, //IFEQ, // visitJumpInsn + // -1, //IFNE, // - + // -1, //IFLT, // - + // -1, //IFGE, // - + // -1, //IFGT, // - + // -1, //IFLE, // - + // -2, //IF_ICMPEQ, // - + // -2, //IF_ICMPNE, // - + // -2, //IF_ICMPLT, // - + // -2, //IF_ICMPGE, // - + // -2, //IF_ICMPGT, // - + // -2, //IF_ICMPLE, // - + // -2, //IF_ACMPEQ, // - + // -2, //IF_ACMPNE, // - + // 0, //GOTO, // - + // 1, //JSR, // - + // 0, //RET, // visitVarInsn + // -1, //TABLESWITCH, // visiTableSwitchInsn + // -1, //LOOKUPSWITCH, // visitLookupSwitch + // -1, //IRETURN, // visitInsn + // -2, //LRETURN, // - + // -1, //FRETURN, // - + // -2, //DRETURN, // - + // -1, //ARETURN, // - + // 0, //RETURN, // - + // NA, //GETSTATIC, // visitFieldInsn + // NA, //PUTSTATIC, // - + // NA, //GETFIELD, // - + // NA, //PUTFIELD, // - + // NA, //INVOKEVIRTUAL, // visitMethodInsn + // NA, //INVOKESPECIAL, // - + // NA, //INVOKESTATIC, // - + // NA, //INVOKEINTERFACE, // - + // NA, //UNUSED, // NOT VISITED + // 1, //NEW, // visitTypeInsn + // 0, //NEWARRAY, // visitIntInsn + // 0, //ANEWARRAY, // visitTypeInsn + // 0, //ARRAYLENGTH, // visitInsn + // NA, //ATHROW, // - + // 0, //CHECKCAST, // visitTypeInsn + // 0, //INSTANCEOF, // - + // -1, //MONITORENTER, // visitInsn + // -1, //MONITOREXIT, // - + // NA, //WIDE, // NOT VISITED + // NA, //MULTIANEWARRAY, // visitMultiANewArrayInsn + // -1, //IFNULL, // visitJumpInsn + // -1, //IFNONNULL, // - + // NA, //GOTO_W, // - + // NA, //JSR_W, // - + // }; + // for (i = 0; i < b.length; ++i) { + // System.err.print((char)('E' + b[i])); + // } + // System.err.println(); + } + + // ------------------------------------------------------------------------ + // Constructor + // ------------------------------------------------------------------------ + + /** + * Constructs a new {@link MethodWriter}. + * + * @param cw the class writer in which the method must be added. + * @param access the method's access flags (see {@link Opcodes}). + * @param name the method's name. + * @param desc the method's descriptor (see {@link Type}). + * @param signature the method's signature. May be null. + * @param exceptions the internal names of the method's exceptions. May be + * null. + * @param computeMaxs true if the maximum stack size and number + * of local variables must be automatically computed. + */ + MethodWriter( + final ClassWriter cw, + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions, + final boolean computeMaxs) + { + if (cw.firstMethod == null) { + cw.firstMethod = this; + } else { + cw.lastMethod.next = this; + } + cw.lastMethod = this; + this.cw = cw; + this.access = access; + this.name = cw.newUTF8(name); + this.desc = cw.newUTF8(desc); + this.descriptor = desc; + this.signature = signature; + if (exceptions != null && exceptions.length > 0) { + exceptionCount = exceptions.length; + this.exceptions = new int[exceptionCount]; + for (int i = 0; i < exceptionCount; ++i) { + this.exceptions[i] = cw.newClass(exceptions[i]); + } + } + this.computeMaxs = computeMaxs; + if (computeMaxs) { + // updates maxLocals + int size = getArgumentsAndReturnSizes(desc) >> 2; + if ((access & Opcodes.ACC_STATIC) != 0) { + --size; + } + maxLocals = size; + // pushes the first block onto the stack of blocks to be visited + currentBlock = new Label(); + currentBlock.pushed = true; + blockStack = currentBlock; + } + } + + // ------------------------------------------------------------------------ + // Implementation of the MethodVisitor interface + // ------------------------------------------------------------------------ + + public AnnotationVisitor visitAnnotationDefault() { + annd = new ByteVector(); + return new AnnotationWriter(cw, false, annd, null, 0); + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + ByteVector bv = new ByteVector(); + // write type, and reserve space for values count + bv.putShort(cw.newUTF8(desc)).putShort(0); + AnnotationWriter aw = new AnnotationWriter(cw, true, bv, bv, 2); + if (visible) { + aw.next = anns; + anns = aw; + } else { + aw.next = ianns; + ianns = aw; + } + return aw; + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + ByteVector bv = new ByteVector(); + // write type, and reserve space for values count + bv.putShort(cw.newUTF8(desc)).putShort(0); + AnnotationWriter aw = new AnnotationWriter(cw, true, bv, bv, 2); + if (visible) { + if (panns == null) { + panns = new AnnotationWriter[Type.getArgumentTypes(descriptor).length]; + } + aw.next = panns[parameter]; + panns[parameter] = aw; + } else { + if (ipanns == null) { + ipanns = new AnnotationWriter[Type.getArgumentTypes(descriptor).length]; + } + aw.next = ipanns[parameter]; + ipanns[parameter] = aw; + } + return aw; + } + + public void visitAttribute(final Attribute attr) { + if (attr.isCodeAttribute()) { + attr.next = cattrs; + cattrs = attr; + } else { + attr.next = attrs; + attrs = attr; + } + } + + public void visitCode() { + } + + public void visitInsn(final int opcode) { + if (computeMaxs) { + // updates current and max stack sizes + int size = stackSize + SIZE[opcode]; + if (size > maxStackSize) { + maxStackSize = size; + } + stackSize = size; + // if opcode == ATHROW or xRETURN, ends current block (no successor) + if ((opcode >= Opcodes.IRETURN && opcode <= Opcodes.RETURN) + || opcode == Opcodes.ATHROW) + { + if (currentBlock != null) { + currentBlock.maxStackSize = maxStackSize; + currentBlock = null; + } + } + } + // adds the instruction to the bytecode of the method + code.putByte(opcode); + } + + public void visitIntInsn(final int opcode, final int operand) { + if (computeMaxs && opcode != Opcodes.NEWARRAY) { + // updates current and max stack sizes only if opcode == NEWARRAY + // (stack size variation = 0 for BIPUSH or SIPUSH) + int size = stackSize + 1; + if (size > maxStackSize) { + maxStackSize = size; + } + stackSize = size; + } + // adds the instruction to the bytecode of the method + if (opcode == Opcodes.SIPUSH) { + code.put12(opcode, operand); + } else { // BIPUSH or NEWARRAY + code.put11(opcode, operand); + } + } + + public void visitVarInsn(final int opcode, final int var) { + if (computeMaxs) { + // updates current and max stack sizes + if (opcode == Opcodes.RET) { + // no stack change, but end of current block (no successor) + if (currentBlock != null) { + currentBlock.maxStackSize = maxStackSize; + currentBlock = null; + } + } else { // xLOAD or xSTORE + int size = stackSize + SIZE[opcode]; + if (size > maxStackSize) { + maxStackSize = size; + } + stackSize = size; + } + // updates max locals + int n; + if (opcode == Opcodes.LLOAD || opcode == Opcodes.DLOAD + || opcode == Opcodes.LSTORE || opcode == Opcodes.DSTORE) + { + n = var + 2; + } else { + n = var + 1; + } + if (n > maxLocals) { + maxLocals = n; + } + } + // adds the instruction to the bytecode of the method + if (var < 4 && opcode != Opcodes.RET) { + int opt; + if (opcode < Opcodes.ISTORE) { + /* ILOAD_0 */ + opt = 26 + ((opcode - Opcodes.ILOAD) << 2) + var; + } else { + /* ISTORE_0 */ + opt = 59 + ((opcode - Opcodes.ISTORE) << 2) + var; + } + code.putByte(opt); + } else if (var >= 256) { + code.putByte(196 /* WIDE */).put12(opcode, var); + } else { + code.put11(opcode, var); + } + } + + public void visitTypeInsn(final int opcode, final String desc) { + if (computeMaxs && opcode == Opcodes.NEW) { + // updates current and max stack sizes only if opcode == NEW + // (stack size variation = 0 for ANEWARRAY, CHECKCAST, INSTANCEOF) + int size = stackSize + 1; + if (size > maxStackSize) { + maxStackSize = size; + } + stackSize = size; + } + // adds the instruction to the bytecode of the method + code.put12(opcode, cw.newClass(desc)); + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + if (computeMaxs) { + int size; + // computes the stack size variation + char c = desc.charAt(0); + switch (opcode) { + case Opcodes.GETSTATIC: + size = stackSize + (c == 'D' || c == 'J' ? 2 : 1); + break; + case Opcodes.PUTSTATIC: + size = stackSize + (c == 'D' || c == 'J' ? -2 : -1); + break; + case Opcodes.GETFIELD: + size = stackSize + (c == 'D' || c == 'J' ? 1 : 0); + break; + // case Constants.PUTFIELD: + default: + size = stackSize + (c == 'D' || c == 'J' ? -3 : -2); + break; + } + // updates current and max stack sizes + if (size > maxStackSize) { + maxStackSize = size; + } + stackSize = size; + } + // adds the instruction to the bytecode of the method + code.put12(opcode, cw.newField(owner, name, desc)); + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + boolean itf = opcode == Opcodes.INVOKEINTERFACE; + Item i = cw.newMethodItem(owner, name, desc, itf); + int argSize = i.intVal; + if (computeMaxs) { + /* + * computes the stack size variation. In order not to recompute + * several times this variation for the same Item, we use the intVal + * field of this item to store this variation, once it has been + * computed. More precisely this intVal field stores the sizes of + * the arguments and of the return value corresponding to desc. + */ + if (argSize == 0) { + // the above sizes have not been computed yet, so we compute + // them... + argSize = getArgumentsAndReturnSizes(desc); + // ... and we save them in order not to recompute them in the + // future + i.intVal = argSize; + } + int size; + if (opcode == Opcodes.INVOKESTATIC) { + size = stackSize - (argSize >> 2) + (argSize & 0x03) + 1; + } else { + size = stackSize - (argSize >> 2) + (argSize & 0x03); + } + // updates current and max stack sizes + if (size > maxStackSize) { + maxStackSize = size; + } + stackSize = size; + } + // adds the instruction to the bytecode of the method + if (itf) { + if (!computeMaxs) { + if (argSize == 0) { + argSize = getArgumentsAndReturnSizes(desc); + i.intVal = argSize; + } + } + code.put12(Opcodes.INVOKEINTERFACE, i.index).put11(argSize >> 2, 0); + } else { + code.put12(opcode, i.index); + } + } + + public void visitJumpInsn(final int opcode, final Label label) { + if (computeMaxs) { + if (opcode == Opcodes.GOTO) { + // no stack change, but end of current block (with one new + // successor) + if (currentBlock != null) { + currentBlock.maxStackSize = maxStackSize; + addSuccessor(stackSize, label); + currentBlock = null; + } + } else if (opcode == Opcodes.JSR) { + if (currentBlock != null) { + addSuccessor(stackSize + 1, label); + } + } else { + // updates current stack size (max stack size unchanged because + // stack size variation always negative in this case) + stackSize += SIZE[opcode]; + if (currentBlock != null) { + addSuccessor(stackSize, label); + } + } + } + // adds the instruction to the bytecode of the method + if (label.resolved && label.position - code.length < Short.MIN_VALUE) { + /* + * case of a backward jump with an offset < -32768. In this case we + * automatically replace GOTO with GOTO_W, JSR with JSR_W and IFxxx + * with IFNOTxxx GOTO_W , where IFNOTxxx is the + * "opposite" opcode of IFxxx (i.e., IFNE for IFEQ) and where + * designates the instruction just after the GOTO_W. + */ + if (opcode == Opcodes.GOTO) { + code.putByte(200); // GOTO_W + } else if (opcode == Opcodes.JSR) { + code.putByte(201); // JSR_W + } else { + code.putByte(opcode <= 166 + ? ((opcode + 1) ^ 1) - 1 + : opcode ^ 1); + code.putShort(8); // jump offset + code.putByte(200); // GOTO_W + } + label.put(this, code, code.length - 1, true); + } else { + /* + * case of a backward jump with an offset >= -32768, or of a forward + * jump with, of course, an unknown offset. In these cases we store + * the offset in 2 bytes (which will be increased in + * resizeInstructions, if needed). + */ + code.putByte(opcode); + label.put(this, code, code.length - 1, false); + } + } + + public void visitLabel(final Label label) { + if (computeMaxs) { + if (currentBlock != null) { + // ends current block (with one new successor) + currentBlock.maxStackSize = maxStackSize; + addSuccessor(stackSize, label); + } + // begins a new current block, + // resets the relative current and max stack sizes + currentBlock = label; + stackSize = 0; + maxStackSize = 0; + } + // resolves previous forward references to label, if any + resize |= label.resolve(this, code.length, code.data); + } + + public void visitLdcInsn(final Object cst) { + Item i = cw.newConstItem(cst); + if (computeMaxs) { + int size; + // computes the stack size variation + if (i.type == ClassWriter.LONG || i.type == ClassWriter.DOUBLE) { + size = stackSize + 2; + } else { + size = stackSize + 1; + } + // updates current and max stack sizes + if (size > maxStackSize) { + maxStackSize = size; + } + stackSize = size; + } + // adds the instruction to the bytecode of the method + int index = i.index; + if (i.type == ClassWriter.LONG || i.type == ClassWriter.DOUBLE) { + code.put12(20 /* LDC2_W */, index); + } else if (index >= 256) { + code.put12(19 /* LDC_W */, index); + } else { + code.put11(Opcodes.LDC, index); + } + } + + public void visitIincInsn(final int var, final int increment) { + if (computeMaxs) { + // updates max locals only (no stack change) + int n = var + 1; + if (n > maxLocals) { + maxLocals = n; + } + } + // adds the instruction to the bytecode of the method + if ((var > 255) || (increment > 127) || (increment < -128)) { + code.putByte(196 /* WIDE */) + .put12(Opcodes.IINC, var) + .putShort(increment); + } else { + code.putByte(Opcodes.IINC).put11(var, increment); + } + } + + public void visitTableSwitchInsn( + final int min, + final int max, + final Label dflt, + final Label labels[]) + { + if (computeMaxs) { + // updates current stack size (max stack size unchanged) + --stackSize; + // ends current block (with many new successors) + if (currentBlock != null) { + currentBlock.maxStackSize = maxStackSize; + addSuccessor(stackSize, dflt); + for (int i = 0; i < labels.length; ++i) { + addSuccessor(stackSize, labels[i]); + } + currentBlock = null; + } + } + // adds the instruction to the bytecode of the method + int source = code.length; + code.putByte(Opcodes.TABLESWITCH); + while (code.length % 4 != 0) { + code.putByte(0); + } + dflt.put(this, code, source, true); + code.putInt(min).putInt(max); + for (int i = 0; i < labels.length; ++i) { + labels[i].put(this, code, source, true); + } + } + + public void visitLookupSwitchInsn( + final Label dflt, + final int keys[], + final Label labels[]) + { + if (computeMaxs) { + // updates current stack size (max stack size unchanged) + --stackSize; + // ends current block (with many new successors) + if (currentBlock != null) { + currentBlock.maxStackSize = maxStackSize; + addSuccessor(stackSize, dflt); + for (int i = 0; i < labels.length; ++i) { + addSuccessor(stackSize, labels[i]); + } + currentBlock = null; + } + } + // adds the instruction to the bytecode of the method + int source = code.length; + code.putByte(Opcodes.LOOKUPSWITCH); + while (code.length % 4 != 0) { + code.putByte(0); + } + dflt.put(this, code, source, true); + code.putInt(labels.length); + for (int i = 0; i < labels.length; ++i) { + code.putInt(keys[i]); + labels[i].put(this, code, source, true); + } + } + + public void visitMultiANewArrayInsn(final String desc, final int dims) { + if (computeMaxs) { + // updates current stack size (max stack size unchanged because + // stack size variation always negative or null) + stackSize += 1 - dims; + } + // adds the instruction to the bytecode of the method + code.put12(Opcodes.MULTIANEWARRAY, cw.newClass(desc)).putByte(dims); + } + + public void visitTryCatchBlock( + final Label start, + final Label end, + final Label handler, + final String type) + { + if (computeMaxs) { + // pushes handler block onto the stack of blocks to be visited + if (!handler.pushed) { + handler.beginStackSize = 1; + handler.pushed = true; + handler.next = blockStack; + blockStack = handler; + } + } + ++catchCount; + Handler h = new Handler(); + h.start = start; + h.end = end; + h.handler = handler; + h.desc = type; + h.type = type != null ? cw.newClass(type) : 0; + if (lastHandler == null) { + catchTable = h; + } else { + lastHandler.next = h; + } + lastHandler = h; + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + if (signature != null) { + if (localVarType == null) { + localVarType = new ByteVector(); + } + ++localVarTypeCount; + localVarType.putShort(start.position) + .putShort(end.position - start.position) + .putShort(cw.newUTF8(name)) + .putShort(cw.newUTF8(signature)) + .putShort(index); + } + if (localVar == null) { + localVar = new ByteVector(); + } + ++localVarCount; + localVar.putShort(start.position) + .putShort(end.position - start.position) + .putShort(cw.newUTF8(name)) + .putShort(cw.newUTF8(desc)) + .putShort(index); + + if(computeMaxs) { + // updates max locals + char c = desc.charAt(0); + int n = index + ( c=='L' || c=='D' ? 2 : 1); + if (n > maxLocals) { + maxLocals = n; + } + } + } + + public void visitLineNumber(final int line, final Label start) { + if (lineNumber == null) { + lineNumber = new ByteVector(); + } + ++lineNumberCount; + lineNumber.putShort(start.position); + lineNumber.putShort(line); + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + if (computeMaxs) { + // true (non relative) max stack size + int max = 0; + /* + * control flow analysis algorithm: while the block stack is not + * empty, pop a block from this stack, update the max stack size, + * compute the true (non relative) begin stack size of the + * successors of this block, and push these successors onto the + * stack (unless they have already been pushed onto the stack). + * Note: by hypothesis, the {@link Label#beginStackSize} of the + * blocks in the block stack are the true (non relative) beginning + * stack sizes of these blocks. + */ + Label stack = blockStack; + while (stack != null) { + // pops a block from the stack + Label l = stack; + stack = stack.next; + // computes the true (non relative) max stack size of this block + int start = l.beginStackSize; + int blockMax = start + l.maxStackSize; + // updates the global max stack size + if (blockMax > max) { + max = blockMax; + } + // analyses the successors of the block + Edge b = l.successors; + while (b != null) { + l = b.successor; + // if this successor has not already been pushed onto the + // stack... + if (!l.pushed) { + // computes the true beginning stack size of this + // successor block + l.beginStackSize = start + b.stackSize; + // pushes this successor onto the stack + l.pushed = true; + l.next = stack; + stack = l; + } + b = b.next; + } + } + this.maxStack = max; + } else { + this.maxStack = maxStack; + this.maxLocals = maxLocals; + } + } + + public void visitEnd() { + } + + // ------------------------------------------------------------------------ + // Utility methods: control flow analysis algorithm + // ------------------------------------------------------------------------ + + /** + * Computes the size of the arguments and of the return value of a method. + * + * @param desc the descriptor of a method. + * @return the size of the arguments of the method (plus one for the + * implicit this argument), argSize, and the size of its return + * value, retSize, packed into a single int i = + * (argSize << 2) | retSize (argSize is therefore equal + * to i >> 2, and retSize to i & 0x03). + */ + private static int getArgumentsAndReturnSizes(final String desc) { + int n = 1; + int c = 1; + while (true) { + char car = desc.charAt(c++); + if (car == ')') { + car = desc.charAt(c); + return n << 2 + | (car == 'V' ? 0 : (car == 'D' || car == 'J' ? 2 : 1)); + } else if (car == 'L') { + while (desc.charAt(c++) != ';') { + } + n += 1; + } else if (car == '[') { + while ((car = desc.charAt(c)) == '[') { + ++c; + } + if (car == 'D' || car == 'J') { + n -= 1; + } + } else if (car == 'D' || car == 'J') { + n += 2; + } else { + n += 1; + } + } + } + + /** + * Adds a successor to the {@link #currentBlock currentBlock} block. + * + * @param stackSize the current (relative) stack size in the current block. + * @param successor the successor block to be added to the current block. + */ + private void addSuccessor(final int stackSize, final Label successor) { + Edge b = new Edge(); + // initializes the previous Edge object... + b.stackSize = stackSize; + b.successor = successor; + // ...and adds it to the successor list of the currentBlock block + b.next = currentBlock.successors; + currentBlock.successors = b; + } + + // ------------------------------------------------------------------------ + // Utility methods: dump bytecode array + // ------------------------------------------------------------------------ + + /** + * Returns the size of the bytecode of this method. + * + * @return the size of the bytecode of this method. + */ + final int getSize() { + if (classReaderOffset != 0) { + return 6 + classReaderLength; + } + if (resize) { + // replaces the temporary jump opcodes introduced by Label.resolve. + resizeInstructions(new int[0], new int[0], 0); + } + int size = 8; + if (code.length > 0) { + cw.newUTF8("Code"); + size += 18 + code.length + 8 * catchCount; + if (localVar != null) { + cw.newUTF8("LocalVariableTable"); + size += 8 + localVar.length; + } + if (localVarType != null) { + cw.newUTF8("LocalVariableTypeTable"); + size += 8 + localVarType.length; + } + if (lineNumber != null) { + cw.newUTF8("LineNumberTable"); + size += 8 + lineNumber.length; + } + if (cattrs != null) { + size += cattrs.getSize(cw, + code.data, + code.length, + maxStack, + maxLocals); + } + } + if (exceptionCount > 0) { + cw.newUTF8("Exceptions"); + size += 8 + 2 * exceptionCount; + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (cw.version & 0xffff) < Opcodes.V1_5) + { + cw.newUTF8("Synthetic"); + size += 6; + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + cw.newUTF8("Deprecated"); + size += 6; + } + if (cw.version == Opcodes.V1_4) { + if ((access & Opcodes.ACC_VARARGS) != 0) { + cw.newUTF8("Varargs"); + size += 6; + } + if ((access & Opcodes.ACC_BRIDGE) != 0) { + cw.newUTF8("Bridge"); + size += 6; + } + } + if (signature != null) { + cw.newUTF8("Signature"); + cw.newUTF8(signature); + size += 8; + } + if (annd != null) { + cw.newUTF8("AnnotationDefault"); + size += 6 + annd.length; + } + if (anns != null) { + cw.newUTF8("RuntimeVisibleAnnotations"); + size += 8 + anns.getSize(); + } + if (ianns != null) { + cw.newUTF8("RuntimeInvisibleAnnotations"); + size += 8 + ianns.getSize(); + } + if (panns != null) { + cw.newUTF8("RuntimeVisibleParameterAnnotations"); + size += 7 + 2 * panns.length; + for (int i = panns.length - 1; i >= 0; --i) { + size += panns[i] == null ? 0 : panns[i].getSize(); + } + } + if (ipanns != null) { + cw.newUTF8("RuntimeInvisibleParameterAnnotations"); + size += 7 + 2 * ipanns.length; + for (int i = ipanns.length - 1; i >= 0; --i) { + size += ipanns[i] == null ? 0 : ipanns[i].getSize(); + } + } + if (attrs != null) { + size += attrs.getSize(cw, null, 0, -1, -1); + } + return size; + } + + /** + * Puts the bytecode of this method in the given byte vector. + * + * @param out the byte vector into which the bytecode of this method must be + * copied. + */ + final void put(final ByteVector out) { + out.putShort(access).putShort(name).putShort(desc); + if (classReaderOffset != 0) { + out.putByteArray(cw.cr.b, classReaderOffset, classReaderLength); + return; + } + int attributeCount = 0; + if (code.length > 0) { + ++attributeCount; + } + if (exceptionCount > 0) { + ++attributeCount; + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (cw.version & 0xffff) < Opcodes.V1_5) + { + ++attributeCount; + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + ++attributeCount; + } + if (cw.version == Opcodes.V1_4) { + if ((access & Opcodes.ACC_VARARGS) != 0) { + ++attributeCount; + } + if ((access & Opcodes.ACC_BRIDGE) != 0) { + ++attributeCount; + } + } + if (signature != null) { + ++attributeCount; + } + if (annd != null) { + ++attributeCount; + } + if (anns != null) { + ++attributeCount; + } + if (ianns != null) { + ++attributeCount; + } + if (panns != null) { + ++attributeCount; + } + if (ipanns != null) { + ++attributeCount; + } + if (attrs != null) { + attributeCount += attrs.getCount(); + } + out.putShort(attributeCount); + if (code.length > 0) { + int size = 12 + code.length + 8 * catchCount; + if (localVar != null) { + size += 8 + localVar.length; + } + if (localVarType != null) { + size += 8 + localVarType.length; + } + if (lineNumber != null) { + size += 8 + lineNumber.length; + } + if (cattrs != null) { + size += cattrs.getSize(cw, + code.data, + code.length, + maxStack, + maxLocals); + } + out.putShort(cw.newUTF8("Code")).putInt(size); + out.putShort(maxStack).putShort(maxLocals); + out.putInt(code.length).putByteArray(code.data, 0, code.length); + out.putShort(catchCount); + if (catchCount > 0) { + Handler h = catchTable; + while (h != null) { + out.putShort(h.start.position) + .putShort(h.end.position) + .putShort(h.handler.position) + .putShort(h.type); + h = h.next; + } + } + attributeCount = 0; + if (localVar != null) { + ++attributeCount; + } + if (localVarType != null) { + ++attributeCount; + } + if (lineNumber != null) { + ++attributeCount; + } + if (cattrs != null) { + attributeCount += cattrs.getCount(); + } + out.putShort(attributeCount); + if (localVar != null) { + out.putShort(cw.newUTF8("LocalVariableTable")); + out.putInt(localVar.length + 2).putShort(localVarCount); + out.putByteArray(localVar.data, 0, localVar.length); + } + if (localVarType != null) { + out.putShort(cw.newUTF8("LocalVariableTypeTable")); + out.putInt(localVarType.length + 2).putShort(localVarTypeCount); + out.putByteArray(localVarType.data, 0, localVarType.length); + } + if (lineNumber != null) { + out.putShort(cw.newUTF8("LineNumberTable")); + out.putInt(lineNumber.length + 2).putShort(lineNumberCount); + out.putByteArray(lineNumber.data, 0, lineNumber.length); + } + if (cattrs != null) { + cattrs.put(cw, code.data, code.length, maxLocals, maxStack, out); + } + } + if (exceptionCount > 0) { + out.putShort(cw.newUTF8("Exceptions")) + .putInt(2 * exceptionCount + 2); + out.putShort(exceptionCount); + for (int i = 0; i < exceptionCount; ++i) { + out.putShort(exceptions[i]); + } + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0 + && (cw.version & 0xffff) < Opcodes.V1_5) + { + out.putShort(cw.newUTF8("Synthetic")).putInt(0); + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + out.putShort(cw.newUTF8("Deprecated")).putInt(0); + } + if (cw.version == Opcodes.V1_4) { + if ((access & Opcodes.ACC_VARARGS) != 0) { + out.putShort(cw.newUTF8("Varargs")).putInt(0); + } + if ((access & Opcodes.ACC_BRIDGE) != 0) { + out.putShort(cw.newUTF8("Bridge")).putInt(0); + } + } + if (signature != null) { + out.putShort(cw.newUTF8("Signature")) + .putInt(2) + .putShort(cw.newUTF8(signature)); + } + if (annd != null) { + out.putShort(cw.newUTF8("AnnotationDefault")); + out.putInt(annd.length); + out.putByteArray(annd.data, 0, annd.length); + } + if (anns != null) { + out.putShort(cw.newUTF8("RuntimeVisibleAnnotations")); + anns.put(out); + } + if (ianns != null) { + out.putShort(cw.newUTF8("RuntimeInvisibleAnnotations")); + ianns.put(out); + } + if (panns != null) { + out.putShort(cw.newUTF8("RuntimeVisibleParameterAnnotations")); + AnnotationWriter.put(panns, out); + } + if (ipanns != null) { + out.putShort(cw.newUTF8("RuntimeInvisibleParameterAnnotations")); + AnnotationWriter.put(ipanns, out); + } + if (attrs != null) { + attrs.put(cw, null, 0, -1, -1, out); + } + } + + // ------------------------------------------------------------------------ + // Utility methods: instruction resizing (used to handle GOTO_W and JSR_W) + // ------------------------------------------------------------------------ + + /** + * Resizes the designated instructions, while keeping jump offsets and + * instruction addresses consistent. This may require to resize other + * existing instructions, or even to introduce new instructions: for + * example, increasing the size of an instruction by 2 at the middle of a + * method can increases the offset of an IFEQ instruction from 32766 to + * 32768, in which case IFEQ 32766 must be replaced with IFNEQ 8 GOTO_W + * 32765. This, in turn, may require to increase the size of another jump + * instruction, and so on... All these operations are handled automatically + * by this method.

      This method must be called after all the method + * that is being built has been visited. In particular, the + * {@link Label Label} objects used to construct the method are no longer + * valid after this method has been called. + * + * @param indexes current positions of the instructions to be resized. Each + * instruction must be designated by the index of its last + * byte, plus one (or, in other words, by the index of the first + * byte of the next instruction). + * @param sizes the number of bytes to be added to the above + * instructions. More precisely, for each i < len, + * sizes[i] bytes will be added at the end of the + * instruction designated by indexes[i] or, if + * sizes[i] is negative, the last |sizes[i]| + * bytes of the instruction will be removed (the instruction size + * must not become negative or null). The gaps introduced by + * this method must be filled in "manually" in {@link #code code} + * method. + * @param len the number of instruction to be resized. Must be smaller than + * or equal to indexes.length and sizes.length. + * @return the indexes array, which now contains the new + * positions of the resized instructions (designated as above). + */ + private int[] resizeInstructions( + final int[] indexes, + final int[] sizes, + final int len) + { + byte[] b = code.data; // bytecode of the method + int u, v, label; // indexes in b + int i, j; // loop indexes + + /* + * 1st step: As explained above, resizing an instruction may require to + * resize another one, which may require to resize yet another one, and + * so on. The first step of the algorithm consists in finding all the + * instructions that need to be resized, without modifying the code. + * This is done by the following "fix point" algorithm: + * + * Parse the code to find the jump instructions whose offset will need + * more than 2 bytes to be stored (the future offset is computed from + * the current offset and from the number of bytes that will be inserted + * or removed between the source and target instructions). For each such + * instruction, adds an entry in (a copy of) the indexes and sizes + * arrays (if this has not already been done in a previous iteration!). + * + * If at least one entry has been added during the previous step, go + * back to the beginning, otherwise stop. + * + * In fact the real algorithm is complicated by the fact that the size + * of TABLESWITCH and LOOKUPSWITCH instructions depends on their + * position in the bytecode (because of padding). In order to ensure the + * convergence of the algorithm, the number of bytes to be added or + * removed from these instructions is over estimated during the previous + * loop, and computed exactly only after the loop is finished (this + * requires another pass to parse the bytecode of the method). + */ + int[] allIndexes = new int[len]; // copy of indexes + int[] allSizes = new int[len]; // copy of sizes + boolean[] resize; // instructions to be resized + int newOffset; // future offset of a jump instruction + + System.arraycopy(indexes, 0, allIndexes, 0, len); + System.arraycopy(sizes, 0, allSizes, 0, len); + resize = new boolean[code.length]; + + // 3 = loop again, 2 = loop ended, 1 = last pass, 0 = done + int state = 3; + do { + if (state == 3) { + state = 2; + } + u = 0; + while (u < b.length) { + int opcode = b[u] & 0xFF; // opcode of current instruction + int insert = 0; // bytes to be added after this instruction + + switch (ClassWriter.TYPE[opcode]) { + case ClassWriter.NOARG_INSN: + case ClassWriter.IMPLVAR_INSN: + u += 1; + break; + case ClassWriter.LABEL_INSN: + if (opcode > 201) { + // converts temporary opcodes 202 to 217, 218 and + // 219 to IFEQ ... JSR (inclusive), IFNULL and + // IFNONNULL + opcode = opcode < 218 ? opcode - 49 : opcode - 20; + label = u + readUnsignedShort(b, u + 1); + } else { + label = u + readShort(b, u + 1); + } + newOffset = getNewOffset(allIndexes, allSizes, u, label); + if (newOffset < Short.MIN_VALUE + || newOffset > Short.MAX_VALUE) + { + if (!resize[u]) { + if (opcode == Opcodes.GOTO + || opcode == Opcodes.JSR) + { + // two additional bytes will be required to + // replace this GOTO or JSR instruction with + // a GOTO_W or a JSR_W + insert = 2; + } else { + // five additional bytes will be required to + // replace this IFxxx instruction with + // IFNOTxxx GOTO_W , where IFNOTxxx + // is the "opposite" opcode of IFxxx (i.e., + // IFNE for IFEQ) and where designates + // the instruction just after the GOTO_W. + insert = 5; + } + resize[u] = true; + } + } + u += 3; + break; + case ClassWriter.LABELW_INSN: + u += 5; + break; + case ClassWriter.TABL_INSN: + if (state == 1) { + // true number of bytes to be added (or removed) + // from this instruction = (future number of padding + // bytes - current number of padding byte) - + // previously over estimated variation = + // = ((3 - newOffset%4) - (3 - u%4)) - u%4 + // = (-newOffset%4 + u%4) - u%4 + // = -(newOffset & 3) + newOffset = getNewOffset(allIndexes, allSizes, 0, u); + insert = -(newOffset & 3); + } else if (!resize[u]) { + // over estimation of the number of bytes to be + // added to this instruction = 3 - current number + // of padding bytes = 3 - (3 - u%4) = u%4 = u & 3 + insert = u & 3; + resize[u] = true; + } + // skips instruction + u = u + 4 - (u & 3); + u += 4 * (readInt(b, u + 8) - readInt(b, u + 4) + 1) + 12; + break; + case ClassWriter.LOOK_INSN: + if (state == 1) { + // like TABL_INSN + newOffset = getNewOffset(allIndexes, allSizes, 0, u); + insert = -(newOffset & 3); + } else if (!resize[u]) { + // like TABL_INSN + insert = u & 3; + resize[u] = true; + } + // skips instruction + u = u + 4 - (u & 3); + u += 8 * readInt(b, u + 4) + 8; + break; + case ClassWriter.WIDE_INSN: + opcode = b[u + 1] & 0xFF; + if (opcode == Opcodes.IINC) { + u += 6; + } else { + u += 4; + } + break; + case ClassWriter.VAR_INSN: + case ClassWriter.SBYTE_INSN: + case ClassWriter.LDC_INSN: + u += 2; + break; + case ClassWriter.SHORT_INSN: + case ClassWriter.LDCW_INSN: + case ClassWriter.FIELDORMETH_INSN: + case ClassWriter.TYPE_INSN: + case ClassWriter.IINC_INSN: + u += 3; + break; + case ClassWriter.ITFMETH_INSN: + u += 5; + break; + // case ClassWriter.MANA_INSN: + default: + u += 4; + break; + } + if (insert != 0) { + // adds a new (u, insert) entry in the allIndexes and + // allSizes arrays + int[] newIndexes = new int[allIndexes.length + 1]; + int[] newSizes = new int[allSizes.length + 1]; + System.arraycopy(allIndexes, + 0, + newIndexes, + 0, + allIndexes.length); + System.arraycopy(allSizes, 0, newSizes, 0, allSizes.length); + newIndexes[allIndexes.length] = u; + newSizes[allSizes.length] = insert; + allIndexes = newIndexes; + allSizes = newSizes; + if (insert > 0) { + state = 3; + } + } + } + if (state < 3) { + --state; + } + } while (state != 0); + + // 2nd step: + // copies the bytecode of the method into a new bytevector, updates the + // offsets, and inserts (or removes) bytes as requested. + + ByteVector newCode = new ByteVector(code.length); + + u = 0; + while (u < code.length) { + for (i = allIndexes.length - 1; i >= 0; --i) { + if (allIndexes[i] == u) { + if (i < len) { + if (sizes[i] > 0) { + newCode.putByteArray(null, 0, sizes[i]); + } else { + newCode.length += sizes[i]; + } + indexes[i] = newCode.length; + } + } + } + int opcode = b[u] & 0xFF; + switch (ClassWriter.TYPE[opcode]) { + case ClassWriter.NOARG_INSN: + case ClassWriter.IMPLVAR_INSN: + newCode.putByte(opcode); + u += 1; + break; + case ClassWriter.LABEL_INSN: + if (opcode > 201) { + // changes temporary opcodes 202 to 217 (inclusive), 218 + // and 219 to IFEQ ... JSR (inclusive), IFNULL and + // IFNONNULL + opcode = opcode < 218 ? opcode - 49 : opcode - 20; + label = u + readUnsignedShort(b, u + 1); + } else { + label = u + readShort(b, u + 1); + } + newOffset = getNewOffset(allIndexes, allSizes, u, label); + if (resize[u]) { + // replaces GOTO with GOTO_W, JSR with JSR_W and IFxxx + // with IFNOTxxx GOTO_W , where IFNOTxxx is + // the "opposite" opcode of IFxxx (i.e., IFNE for IFEQ) + // and where designates the instruction just after + // the GOTO_W. + if (opcode == Opcodes.GOTO) { + newCode.putByte(200); // GOTO_W + } else if (opcode == Opcodes.JSR) { + newCode.putByte(201); // JSR_W + } else { + newCode.putByte(opcode <= 166 + ? ((opcode + 1) ^ 1) - 1 + : opcode ^ 1); + newCode.putShort(8); // jump offset + newCode.putByte(200); // GOTO_W + // newOffset now computed from start of GOTO_W + newOffset -= 3; + } + newCode.putInt(newOffset); + } else { + newCode.putByte(opcode); + newCode.putShort(newOffset); + } + u += 3; + break; + case ClassWriter.LABELW_INSN: + label = u + readInt(b, u + 1); + newOffset = getNewOffset(allIndexes, allSizes, u, label); + newCode.putByte(opcode); + newCode.putInt(newOffset); + u += 5; + break; + case ClassWriter.TABL_INSN: + // skips 0 to 3 padding bytes + v = u; + u = u + 4 - (v & 3); + // reads and copies instruction + newCode.putByte(Opcodes.TABLESWITCH); + while (newCode.length % 4 != 0) { + newCode.putByte(0); + } + label = v + readInt(b, u); + u += 4; + newOffset = getNewOffset(allIndexes, allSizes, v, label); + newCode.putInt(newOffset); + j = readInt(b, u); + u += 4; + newCode.putInt(j); + j = readInt(b, u) - j + 1; + u += 4; + newCode.putInt(readInt(b, u - 4)); + for (; j > 0; --j) { + label = v + readInt(b, u); + u += 4; + newOffset = getNewOffset(allIndexes, allSizes, v, label); + newCode.putInt(newOffset); + } + break; + case ClassWriter.LOOK_INSN: + // skips 0 to 3 padding bytes + v = u; + u = u + 4 - (v & 3); + // reads and copies instruction + newCode.putByte(Opcodes.LOOKUPSWITCH); + while (newCode.length % 4 != 0) { + newCode.putByte(0); + } + label = v + readInt(b, u); + u += 4; + newOffset = getNewOffset(allIndexes, allSizes, v, label); + newCode.putInt(newOffset); + j = readInt(b, u); + u += 4; + newCode.putInt(j); + for (; j > 0; --j) { + newCode.putInt(readInt(b, u)); + u += 4; + label = v + readInt(b, u); + u += 4; + newOffset = getNewOffset(allIndexes, allSizes, v, label); + newCode.putInt(newOffset); + } + break; + case ClassWriter.WIDE_INSN: + opcode = b[u + 1] & 0xFF; + if (opcode == Opcodes.IINC) { + newCode.putByteArray(b, u, 6); + u += 6; + } else { + newCode.putByteArray(b, u, 4); + u += 4; + } + break; + case ClassWriter.VAR_INSN: + case ClassWriter.SBYTE_INSN: + case ClassWriter.LDC_INSN: + newCode.putByteArray(b, u, 2); + u += 2; + break; + case ClassWriter.SHORT_INSN: + case ClassWriter.LDCW_INSN: + case ClassWriter.FIELDORMETH_INSN: + case ClassWriter.TYPE_INSN: + case ClassWriter.IINC_INSN: + newCode.putByteArray(b, u, 3); + u += 3; + break; + case ClassWriter.ITFMETH_INSN: + newCode.putByteArray(b, u, 5); + u += 5; + break; + // case MANA_INSN: + default: + newCode.putByteArray(b, u, 4); + u += 4; + break; + } + } + + // updates the exception handler block labels + Handler h = catchTable; + while (h != null) { + getNewOffset(allIndexes, allSizes, h.start); + getNewOffset(allIndexes, allSizes, h.end); + getNewOffset(allIndexes, allSizes, h.handler); + h = h.next; + } + for (i = 0; i < 2; ++i) { + ByteVector bv = i == 0 ? localVar : localVarType; + if (bv != null) { + b = bv.data; + u = 0; + while (u < bv.length) { + label = readUnsignedShort(b, u); + newOffset = getNewOffset(allIndexes, allSizes, 0, label); + writeShort(b, u, newOffset); + label += readUnsignedShort(b, u + 2); + newOffset = getNewOffset(allIndexes, allSizes, 0, label) + - newOffset; + writeShort(b, u + 2, newOffset); + u += 10; + } + } + } + if (lineNumber != null) { + b = lineNumber.data; + u = 0; + while (u < lineNumber.length) { + writeShort(b, u, getNewOffset(allIndexes, + allSizes, + 0, + readUnsignedShort(b, u))); + u += 4; + } + } + // updates the labels of the other attributes + while (cattrs != null) { + Label[] labels = cattrs.getLabels(); + if (labels != null) { + for (i = labels.length - 1; i >= 0; --i) { + if (!labels[i].resized) { + labels[i].position = getNewOffset(allIndexes, + allSizes, + 0, + labels[i].position); + labels[i].resized = true; + } + } + } + } + + // replaces old bytecodes with new ones + code = newCode; + + // returns the positions of the resized instructions + return indexes; + } + + /** + * Reads an unsigned short value in the given byte array. + * + * @param b a byte array. + * @param index the start index of the value to be read. + * @return the read value. + */ + static int readUnsignedShort(final byte[] b, final int index) { + return ((b[index] & 0xFF) << 8) | (b[index + 1] & 0xFF); + } + + /** + * Reads a signed short value in the given byte array. + * + * @param b a byte array. + * @param index the start index of the value to be read. + * @return the read value. + */ + static short readShort(final byte[] b, final int index) { + return (short) (((b[index] & 0xFF) << 8) | (b[index + 1] & 0xFF)); + } + + /** + * Reads a signed int value in the given byte array. + * + * @param b a byte array. + * @param index the start index of the value to be read. + * @return the read value. + */ + static int readInt(final byte[] b, final int index) { + return ((b[index] & 0xFF) << 24) | ((b[index + 1] & 0xFF) << 16) + | ((b[index + 2] & 0xFF) << 8) | (b[index + 3] & 0xFF); + } + + /** + * Writes a short value in the given byte array. + * + * @param b a byte array. + * @param index where the first byte of the short value must be written. + * @param s the value to be written in the given byte array. + */ + static void writeShort(final byte[] b, final int index, final int s) { + b[index] = (byte) (s >>> 8); + b[index + 1] = (byte) s; + } + + /** + * Computes the future value of a bytecode offset.

      Note: it is possible + * to have several entries for the same instruction in the indexes + * and sizes: two entries (index=a,size=b) and (index=a,size=b') + * are equivalent to a single entry (index=a,size=b+b'). + * + * @param indexes current positions of the instructions to be resized. Each + * instruction must be designated by the index of its last + * byte, plus one (or, in other words, by the index of the first + * byte of the next instruction). + * @param sizes the number of bytes to be added to the above + * instructions. More precisely, for each i < len, + * sizes[i] bytes will be added at the end of the + * instruction designated by indexes[i] or, if + * sizes[i] is negative, the last |sizes[i]| + * bytes of the instruction will be removed (the instruction size + * must not become negative or null). + * @param begin index of the first byte of the source instruction. + * @param end index of the first byte of the target instruction. + * @return the future value of the given bytecode offset. + */ + static int getNewOffset( + final int[] indexes, + final int[] sizes, + final int begin, + final int end) + { + int offset = end - begin; + for (int i = 0; i < indexes.length; ++i) { + if (begin < indexes[i] && indexes[i] <= end) { + // forward jump + offset += sizes[i]; + } else if (end < indexes[i] && indexes[i] <= begin) { + // backward jump + offset -= sizes[i]; + } + } + return offset; + } + + /** + * Updates the offset of the given label. + * + * @param indexes current positions of the instructions to be resized. Each + * instruction must be designated by the index of its last + * byte, plus one (or, in other words, by the index of the first + * byte of the next instruction). + * @param sizes the number of bytes to be added to the above + * instructions. More precisely, for each i < len, + * sizes[i] bytes will be added at the end of the + * instruction designated by indexes[i] or, if + * sizes[i] is negative, the last |sizes[i]| + * bytes of the instruction will be removed (the instruction size + * must not become negative or null). + * @param label the label whose offset must be updated. + */ + static void getNewOffset( + final int[] indexes, + final int[] sizes, + final Label label) + { + if (!label.resized) { + label.position = getNewOffset(indexes, sizes, 0, label.position); + label.resized = true; + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java new file mode 100644 index 00000000000..94359a3c22d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/Opcodes.java @@ -0,0 +1,295 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +/** + * Defines the JVM opcodes, access flags and array type codes. This interface + * does not define all the JVM opcodes because some opcodes are automatically + * handled. For example, the xLOAD and xSTORE opcodes are automatically replaced + * by xLOAD_n and xSTORE_n opcodes when possible. The xLOAD_n and xSTORE_n + * opcodes are therefore not defined in this interface. Likewise for LDC, + * automatically replaced by LDC_W or LDC2_W when necessary, WIDE, GOTO_W and + * JSR_W. + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +public interface Opcodes { + + // versions + + int V1_1 = 3 << 16 | 45; + int V1_2 = 0 << 16 | 46; + int V1_3 = 0 << 16 | 47; + int V1_4 = 0 << 16 | 48; + int V1_5 = 0 << 16 | 49; + int V1_6 = 0 << 16 | 50; + + // access flags + + int ACC_PUBLIC = 0x0001; // class, field, method + int ACC_PRIVATE = 0x0002; // class, field, method + int ACC_PROTECTED = 0x0004; // class, field, method + int ACC_STATIC = 0x0008; // field, method + int ACC_FINAL = 0x0010; // class, field, method + int ACC_SUPER = 0x0020; // class + int ACC_SYNCHRONIZED = 0x0020; // method + int ACC_VOLATILE = 0x0040; // field + int ACC_BRIDGE = 0x0040; // method + int ACC_VARARGS = 0x0080; // method + int ACC_TRANSIENT = 0x0080; // field + int ACC_NATIVE = 0x0100; // method + int ACC_INTERFACE = 0x0200; // class + int ACC_ABSTRACT = 0x0400; // class, method + int ACC_STRICT = 0x0800; // method + int ACC_SYNTHETIC = 0x1000; // class, field, method + int ACC_ANNOTATION = 0x2000; // class + int ACC_ENUM = 0x4000; // class(?) field inner + + // ASM specific pseudo access flags + + int ACC_DEPRECATED = 131072; // class, field, method + + // types for NEWARRAY + + int T_BOOLEAN = 4; + int T_CHAR = 5; + int T_FLOAT = 6; + int T_DOUBLE = 7; + int T_BYTE = 8; + int T_SHORT = 9; + int T_INT = 10; + int T_LONG = 11; + + // opcodes // visit method (- = idem) + + int NOP = 0; // visitInsn + int ACONST_NULL = 1; // - + int ICONST_M1 = 2; // - + int ICONST_0 = 3; // - + int ICONST_1 = 4; // - + int ICONST_2 = 5; // - + int ICONST_3 = 6; // - + int ICONST_4 = 7; // - + int ICONST_5 = 8; // - + int LCONST_0 = 9; // - + int LCONST_1 = 10; // - + int FCONST_0 = 11; // - + int FCONST_1 = 12; // - + int FCONST_2 = 13; // - + int DCONST_0 = 14; // - + int DCONST_1 = 15; // - + int BIPUSH = 16; // visitIntInsn + int SIPUSH = 17; // - + int LDC = 18; // visitLdcInsn + // int LDC_W = 19; // - + // int LDC2_W = 20; // - + int ILOAD = 21; // visitVarInsn + int LLOAD = 22; // - + int FLOAD = 23; // - + int DLOAD = 24; // - + int ALOAD = 25; // - + // int ILOAD_0 = 26; // - + // int ILOAD_1 = 27; // - + // int ILOAD_2 = 28; // - + // int ILOAD_3 = 29; // - + // int LLOAD_0 = 30; // - + // int LLOAD_1 = 31; // - + // int LLOAD_2 = 32; // - + // int LLOAD_3 = 33; // - + // int FLOAD_0 = 34; // - + // int FLOAD_1 = 35; // - + // int FLOAD_2 = 36; // - + // int FLOAD_3 = 37; // - + // int DLOAD_0 = 38; // - + // int DLOAD_1 = 39; // - + // int DLOAD_2 = 40; // - + // int DLOAD_3 = 41; // - + // int ALOAD_0 = 42; // - + // int ALOAD_1 = 43; // - + // int ALOAD_2 = 44; // - + // int ALOAD_3 = 45; // - + int IALOAD = 46; // visitInsn + int LALOAD = 47; // - + int FALOAD = 48; // - + int DALOAD = 49; // - + int AALOAD = 50; // - + int BALOAD = 51; // - + int CALOAD = 52; // - + int SALOAD = 53; // - + int ISTORE = 54; // visitVarInsn + int LSTORE = 55; // - + int FSTORE = 56; // - + int DSTORE = 57; // - + int ASTORE = 58; // - + // int ISTORE_0 = 59; // - + // int ISTORE_1 = 60; // - + // int ISTORE_2 = 61; // - + // int ISTORE_3 = 62; // - + // int LSTORE_0 = 63; // - + // int LSTORE_1 = 64; // - + // int LSTORE_2 = 65; // - + // int LSTORE_3 = 66; // - + // int FSTORE_0 = 67; // - + // int FSTORE_1 = 68; // - + // int FSTORE_2 = 69; // - + // int FSTORE_3 = 70; // - + // int DSTORE_0 = 71; // - + // int DSTORE_1 = 72; // - + // int DSTORE_2 = 73; // - + // int DSTORE_3 = 74; // - + // int ASTORE_0 = 75; // - + // int ASTORE_1 = 76; // - + // int ASTORE_2 = 77; // - + // int ASTORE_3 = 78; // - + int IASTORE = 79; // visitInsn + int LASTORE = 80; // - + int FASTORE = 81; // - + int DASTORE = 82; // - + int AASTORE = 83; // - + int BASTORE = 84; // - + int CASTORE = 85; // - + int SASTORE = 86; // - + int POP = 87; // - + int POP2 = 88; // - + int DUP = 89; // - + int DUP_X1 = 90; // - + int DUP_X2 = 91; // - + int DUP2 = 92; // - + int DUP2_X1 = 93; // - + int DUP2_X2 = 94; // - + int SWAP = 95; // - + int IADD = 96; // - + int LADD = 97; // - + int FADD = 98; // - + int DADD = 99; // - + int ISUB = 100; // - + int LSUB = 101; // - + int FSUB = 102; // - + int DSUB = 103; // - + int IMUL = 104; // - + int LMUL = 105; // - + int FMUL = 106; // - + int DMUL = 107; // - + int IDIV = 108; // - + int LDIV = 109; // - + int FDIV = 110; // - + int DDIV = 111; // - + int IREM = 112; // - + int LREM = 113; // - + int FREM = 114; // - + int DREM = 115; // - + int INEG = 116; // - + int LNEG = 117; // - + int FNEG = 118; // - + int DNEG = 119; // - + int ISHL = 120; // - + int LSHL = 121; // - + int ISHR = 122; // - + int LSHR = 123; // - + int IUSHR = 124; // - + int LUSHR = 125; // - + int IAND = 126; // - + int LAND = 127; // - + int IOR = 128; // - + int LOR = 129; // - + int IXOR = 130; // - + int LXOR = 131; // - + int IINC = 132; // visitIincInsn + int I2L = 133; // visitInsn + int I2F = 134; // - + int I2D = 135; // - + int L2I = 136; // - + int L2F = 137; // - + int L2D = 138; // - + int F2I = 139; // - + int F2L = 140; // - + int F2D = 141; // - + int D2I = 142; // - + int D2L = 143; // - + int D2F = 144; // - + int I2B = 145; // - + int I2C = 146; // - + int I2S = 147; // - + int LCMP = 148; // - + int FCMPL = 149; // - + int FCMPG = 150; // - + int DCMPL = 151; // - + int DCMPG = 152; // - + int IFEQ = 153; // visitJumpInsn + int IFNE = 154; // - + int IFLT = 155; // - + int IFGE = 156; // - + int IFGT = 157; // - + int IFLE = 158; // - + int IF_ICMPEQ = 159; // - + int IF_ICMPNE = 160; // - + int IF_ICMPLT = 161; // - + int IF_ICMPGE = 162; // - + int IF_ICMPGT = 163; // - + int IF_ICMPLE = 164; // - + int IF_ACMPEQ = 165; // - + int IF_ACMPNE = 166; // - + int GOTO = 167; // - + int JSR = 168; // - + int RET = 169; // visitVarInsn + int TABLESWITCH = 170; // visiTableSwitchInsn + int LOOKUPSWITCH = 171; // visitLookupSwitch + int IRETURN = 172; // visitInsn + int LRETURN = 173; // - + int FRETURN = 174; // - + int DRETURN = 175; // - + int ARETURN = 176; // - + int RETURN = 177; // - + int GETSTATIC = 178; // visitFieldInsn + int PUTSTATIC = 179; // - + int GETFIELD = 180; // - + int PUTFIELD = 181; // - + int INVOKEVIRTUAL = 182; // visitMethodInsn + int INVOKESPECIAL = 183; // - + int INVOKESTATIC = 184; // - + int INVOKEINTERFACE = 185; // - + // int UNUSED = 186; // NOT VISITED + int NEW = 187; // visitTypeInsn + int NEWARRAY = 188; // visitIntInsn + int ANEWARRAY = 189; // visitTypeInsn + int ARRAYLENGTH = 190; // visitInsn + int ATHROW = 191; // - + int CHECKCAST = 192; // visitTypeInsn + int INSTANCEOF = 193; // - + int MONITORENTER = 194; // visitInsn + int MONITOREXIT = 195; // - + // int WIDE = 196; // NOT VISITED + int MULTIANEWARRAY = 197; // visitMultiANewArrayInsn + int IFNULL = 198; // visitJumpInsn + int IFNONNULL = 199; // - + // int GOTO_W = 200; // - + // int JSR_W = 201; // - +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java new file mode 100644 index 00000000000..cf8dbbf9930 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/Type.java @@ -0,0 +1,760 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm; + +import java.lang.reflect.Method; + +/** + * A Java type. This class can be used to make it easier to manipulate type and + * method descriptors. + * + * @author Eric Bruneton + * @author Chris Nokleberg + */ +public class Type { + + /** + * The sort of the void type. See {@link #getSort getSort}. + */ + public final static int VOID = 0; + + /** + * The sort of the boolean type. See {@link #getSort getSort}. + */ + public final static int BOOLEAN = 1; + + /** + * The sort of the char type. See {@link #getSort getSort}. + */ + public final static int CHAR = 2; + + /** + * The sort of the byte type. See {@link #getSort getSort}. + */ + public final static int BYTE = 3; + + /** + * The sort of the short type. See {@link #getSort getSort}. + */ + public final static int SHORT = 4; + + /** + * The sort of the int type. See {@link #getSort getSort}. + */ + public final static int INT = 5; + + /** + * The sort of the float type. See {@link #getSort getSort}. + */ + public final static int FLOAT = 6; + + /** + * The sort of the long type. See {@link #getSort getSort}. + */ + public final static int LONG = 7; + + /** + * The sort of the double type. See {@link #getSort getSort}. + */ + public final static int DOUBLE = 8; + + /** + * The sort of array reference types. See {@link #getSort getSort}. + */ + public final static int ARRAY = 9; + + /** + * The sort of object reference type. See {@link #getSort getSort}. + */ + public final static int OBJECT = 10; + + /** + * The void type. + */ + public final static Type VOID_TYPE = new Type(VOID); + + /** + * The boolean type. + */ + public final static Type BOOLEAN_TYPE = new Type(BOOLEAN); + + /** + * The char type. + */ + public final static Type CHAR_TYPE = new Type(CHAR); + + /** + * The byte type. + */ + public final static Type BYTE_TYPE = new Type(BYTE); + + /** + * The short type. + */ + public final static Type SHORT_TYPE = new Type(SHORT); + + /** + * The int type. + */ + public final static Type INT_TYPE = new Type(INT); + + /** + * The float type. + */ + public final static Type FLOAT_TYPE = new Type(FLOAT); + + /** + * The long type. + */ + public final static Type LONG_TYPE = new Type(LONG); + + /** + * The double type. + */ + public final static Type DOUBLE_TYPE = new Type(DOUBLE); + + // ------------------------------------------------------------------------ + // Fields + // ------------------------------------------------------------------------ + + /** + * The sort of this Java type. + */ + private final int sort; + + /** + * A buffer containing the descriptor of this Java type. This field is only + * used for reference types. + */ + private char[] buf; + + /** + * The offset of the descriptor of this Java type in {@link #buf buf}. This + * field is only used for reference types. + */ + private int off; + + /** + * The length of the descriptor of this Java type. + */ + private int len; + + // ------------------------------------------------------------------------ + // Constructors + // ------------------------------------------------------------------------ + + /** + * Constructs a primitive type. + * + * @param sort the sort of the primitive type to be constructed. + */ + private Type(final int sort) { + this.sort = sort; + this.len = 1; + } + + /** + * Constructs a reference type. + * + * @param sort the sort of the reference type to be constructed. + * @param buf a buffer containing the descriptor of the previous type. + * @param off the offset of this descriptor in the previous buffer. + * @param len the length of this descriptor. + */ + private Type(final int sort, final char[] buf, final int off, final int len) + { + this.sort = sort; + this.buf = buf; + this.off = off; + this.len = len; + } + + /** + * Returns the Java type corresponding to the given type descriptor. + * + * @param typeDescriptor a type descriptor. + * @return the Java type corresponding to the given type descriptor. + */ + public static Type getType(final String typeDescriptor) { + return getType(typeDescriptor.toCharArray(), 0); + } + + /** + * Returns the Java type corresponding to the given class. + * + * @param c a class. + * @return the Java type corresponding to the given class. + */ + public static Type getType(final Class c) { + if (c.isPrimitive()) { + if (c == Integer.TYPE) { + return INT_TYPE; + } else if (c == Void.TYPE) { + return VOID_TYPE; + } else if (c == Boolean.TYPE) { + return BOOLEAN_TYPE; + } else if (c == Byte.TYPE) { + return BYTE_TYPE; + } else if (c == Character.TYPE) { + return CHAR_TYPE; + } else if (c == Short.TYPE) { + return SHORT_TYPE; + } else if (c == Double.TYPE) { + return DOUBLE_TYPE; + } else if (c == Float.TYPE) { + return FLOAT_TYPE; + } else /* if (c == Long.TYPE) */{ + return LONG_TYPE; + } + } else { + return getType(getDescriptor(c)); + } + } + + /** + * Returns the Java types corresponding to the argument types of the given + * method descriptor. + * + * @param methodDescriptor a method descriptor. + * @return the Java types corresponding to the argument types of the given + * method descriptor. + */ + public static Type[] getArgumentTypes(final String methodDescriptor) { + char[] buf = methodDescriptor.toCharArray(); + int off = 1; + int size = 0; + while (true) { + char car = buf[off++]; + if (car == ')') { + break; + } else if (car == 'L') { + while (buf[off++] != ';') { + } + ++size; + } else if (car != '[') { + ++size; + } + } + Type[] args = new Type[size]; + off = 1; + size = 0; + while (buf[off] != ')') { + args[size] = getType(buf, off); + off += args[size].len; + size += 1; + } + return args; + } + + /** + * Returns the Java types corresponding to the argument types of the given + * method. + * + * @param method a method. + * @return the Java types corresponding to the argument types of the given + * method. + */ + public static Type[] getArgumentTypes(final Method method) { + Class[] classes = method.getParameterTypes(); + Type[] types = new Type[classes.length]; + for (int i = classes.length - 1; i >= 0; --i) { + types[i] = getType(classes[i]); + } + return types; + } + + /** + * Returns the Java type corresponding to the return type of the given + * method descriptor. + * + * @param methodDescriptor a method descriptor. + * @return the Java type corresponding to the return type of the given + * method descriptor. + */ + public static Type getReturnType(final String methodDescriptor) { + char[] buf = methodDescriptor.toCharArray(); + return getType(buf, methodDescriptor.indexOf(')') + 1); + } + + /** + * Returns the Java type corresponding to the return type of the given + * method. + * + * @param method a method. + * @return the Java type corresponding to the return type of the given + * method. + */ + public static Type getReturnType(final Method method) { + return getType(method.getReturnType()); + } + + /** + * Returns the Java type corresponding to the given type descriptor. + * + * @param buf a buffer containing a type descriptor. + * @param off the offset of this descriptor in the previous buffer. + * @return the Java type corresponding to the given type descriptor. + */ + private static Type getType(final char[] buf, final int off) { + int len; + switch (buf[off]) { + case 'V': + return VOID_TYPE; + case 'Z': + return BOOLEAN_TYPE; + case 'C': + return CHAR_TYPE; + case 'B': + return BYTE_TYPE; + case 'S': + return SHORT_TYPE; + case 'I': + return INT_TYPE; + case 'F': + return FLOAT_TYPE; + case 'J': + return LONG_TYPE; + case 'D': + return DOUBLE_TYPE; + case '[': + len = 1; + while (buf[off + len] == '[') { + ++len; + } + if (buf[off + len] == 'L') { + ++len; + while (buf[off + len] != ';') { + ++len; + } + } + return new Type(ARRAY, buf, off, len + 1); + // case 'L': + default: + len = 1; + while (buf[off + len] != ';') { + ++len; + } + return new Type(OBJECT, buf, off, len + 1); + } + } + + // ------------------------------------------------------------------------ + // Accessors + // ------------------------------------------------------------------------ + + /** + * Returns the sort of this Java type. + * + * @return {@link #VOID VOID}, {@link #BOOLEAN BOOLEAN}, + * {@link #CHAR CHAR}, {@link #BYTE BYTE}, {@link #SHORT SHORT}, + * {@link #INT INT}, {@link #FLOAT FLOAT}, {@link #LONG LONG}, + * {@link #DOUBLE DOUBLE}, {@link #ARRAY ARRAY} or + * {@link #OBJECT OBJECT}. + */ + public int getSort() { + return sort; + } + + /** + * Returns the number of dimensions of this array type. This method should + * only be used for an array type. + * + * @return the number of dimensions of this array type. + */ + public int getDimensions() { + int i = 1; + while (buf[off + i] == '[') { + ++i; + } + return i; + } + + /** + * Returns the type of the elements of this array type. This method should + * only be used for an array type. + * + * @return Returns the type of the elements of this array type. + */ + public Type getElementType() { + return getType(buf, off + getDimensions()); + } + + /** + * Returns the name of the class corresponding to this type. + * + * @return the fully qualified name of the class corresponding to this type. + */ + public String getClassName() { + switch (sort) { + case VOID: + return "void"; + case BOOLEAN: + return "boolean"; + case CHAR: + return "char"; + case BYTE: + return "byte"; + case SHORT: + return "short"; + case INT: + return "int"; + case FLOAT: + return "float"; + case LONG: + return "long"; + case DOUBLE: + return "double"; + case ARRAY: + StringBuffer b = new StringBuffer(getElementType().getClassName()); + for (int i = getDimensions(); i > 0; --i) { + b.append("[]"); + } + return b.toString(); + // case OBJECT: + default: + return new String(buf, off + 1, len - 2).replace('/', '.'); + } + } + + /** + * Returns the internal name of the class corresponding to this object type. + * The internal name of a class is its fully qualified name, where '.' are + * replaced by '/'. This method should only be used for an object type. + * + * @return the internal name of the class corresponding to this object type. + */ + public String getInternalName() { + return new String(buf, off + 1, len - 2); + } + + // ------------------------------------------------------------------------ + // Conversion to type descriptors + // ------------------------------------------------------------------------ + + /** + * Returns the descriptor corresponding to this Java type. + * + * @return the descriptor corresponding to this Java type. + */ + public String getDescriptor() { + StringBuffer buf = new StringBuffer(); + getDescriptor(buf); + return buf.toString(); + } + + /** + * Returns the descriptor corresponding to the given argument and return + * types. + * + * @param returnType the return type of the method. + * @param argumentTypes the argument types of the method. + * @return the descriptor corresponding to the given argument and return + * types. + */ + public static String getMethodDescriptor( + final Type returnType, + final Type[] argumentTypes) + { + StringBuffer buf = new StringBuffer(); + buf.append('('); + for (int i = 0; i < argumentTypes.length; ++i) { + argumentTypes[i].getDescriptor(buf); + } + buf.append(')'); + returnType.getDescriptor(buf); + return buf.toString(); + } + + /** + * Appends the descriptor corresponding to this Java type to the given + * string buffer. + * + * @param buf the string buffer to which the descriptor must be appended. + */ + private void getDescriptor(final StringBuffer buf) { + switch (sort) { + case VOID: + buf.append('V'); + return; + case BOOLEAN: + buf.append('Z'); + return; + case CHAR: + buf.append('C'); + return; + case BYTE: + buf.append('B'); + return; + case SHORT: + buf.append('S'); + return; + case INT: + buf.append('I'); + return; + case FLOAT: + buf.append('F'); + return; + case LONG: + buf.append('J'); + return; + case DOUBLE: + buf.append('D'); + return; + // case ARRAY: + // case OBJECT: + default: + buf.append(this.buf, off, len); + } + } + + // ------------------------------------------------------------------------ + // Direct conversion from classes to type descriptors, + // without intermediate Type objects + // ------------------------------------------------------------------------ + + /** + * Returns the internal name of the given class. The internal name of a + * class is its fully qualified name, where '.' are replaced by '/'. + * + * @param c an object class. + * @return the internal name of the given class. + */ + public static String getInternalName(final Class c) { + return c.getName().replace('.', '/'); + } + + /** + * Returns the descriptor corresponding to the given Java type. + * + * @param c an object class, a primitive class or an array class. + * @return the descriptor corresponding to the given class. + */ + public static String getDescriptor(final Class c) { + StringBuffer buf = new StringBuffer(); + getDescriptor(buf, c); + return buf.toString(); + } + + /** + * Returns the descriptor corresponding to the given method. + * + * @param m a {@link Method Method} object. + * @return the descriptor of the given method. + */ + public static String getMethodDescriptor(final Method m) { + Class[] parameters = m.getParameterTypes(); + StringBuffer buf = new StringBuffer(); + buf.append('('); + for (int i = 0; i < parameters.length; ++i) { + getDescriptor(buf, parameters[i]); + } + buf.append(')'); + getDescriptor(buf, m.getReturnType()); + return buf.toString(); + } + + /** + * Appends the descriptor of the given class to the given string buffer. + * + * @param buf the string buffer to which the descriptor must be appended. + * @param c the class whose descriptor must be computed. + */ + private static void getDescriptor(final StringBuffer buf, final Class c) { + Class d = c; + while (true) { + if (d.isPrimitive()) { + char car; + if (d == Integer.TYPE) { + car = 'I'; + } else if (d == Void.TYPE) { + car = 'V'; + } else if (d == Boolean.TYPE) { + car = 'Z'; + } else if (d == Byte.TYPE) { + car = 'B'; + } else if (d == Character.TYPE) { + car = 'C'; + } else if (d == Short.TYPE) { + car = 'S'; + } else if (d == Double.TYPE) { + car = 'D'; + } else if (d == Float.TYPE) { + car = 'F'; + } else /* if (d == Long.TYPE) */{ + car = 'J'; + } + buf.append(car); + return; + } else if (d.isArray()) { + buf.append('['); + d = d.getComponentType(); + } else { + buf.append('L'); + String name = d.getName(); + int len = name.length(); + for (int i = 0; i < len; ++i) { + char car = name.charAt(i); + buf.append(car == '.' ? '/' : car); + } + buf.append(';'); + return; + } + } + } + + // ------------------------------------------------------------------------ + // Corresponding size and opcodes + // ------------------------------------------------------------------------ + + /** + * Returns the size of values of this type. + * + * @return the size of values of this type, i.e., 2 for long and + * double, and 1 otherwise. + */ + public int getSize() { + return (sort == LONG || sort == DOUBLE ? 2 : 1); + } + + /** + * Returns a JVM instruction opcode adapted to this Java type. + * + * @param opcode a JVM instruction opcode. This opcode must be one of ILOAD, + * ISTORE, IALOAD, IASTORE, IADD, ISUB, IMUL, IDIV, IREM, INEG, ISHL, + * ISHR, IUSHR, IAND, IOR, IXOR and IRETURN. + * @return an opcode that is similar to the given opcode, but adapted to + * this Java type. For example, if this type is float and + * opcode is IRETURN, this method returns FRETURN. + */ + public int getOpcode(final int opcode) { + if (opcode == Opcodes.IALOAD || opcode == Opcodes.IASTORE) { + switch (sort) { + case BOOLEAN: + case BYTE: + return opcode + 5; + case CHAR: + return opcode + 6; + case SHORT: + return opcode + 7; + case INT: + return opcode; + case FLOAT: + return opcode + 2; + case LONG: + return opcode + 1; + case DOUBLE: + return opcode + 3; + // case ARRAY: + // case OBJECT: + default: + return opcode + 4; + } + } else { + switch (sort) { + case VOID: + return opcode + 5; + case BOOLEAN: + case CHAR: + case BYTE: + case SHORT: + case INT: + return opcode; + case FLOAT: + return opcode + 2; + case LONG: + return opcode + 1; + case DOUBLE: + return opcode + 3; + // case ARRAY: + // case OBJECT: + default: + return opcode + 4; + } + } + } + + // ------------------------------------------------------------------------ + // Equals, hashCode and toString + // ------------------------------------------------------------------------ + + /** + * Tests if the given object is equal to this type. + * + * @param o the object to be compared to this type. + * @return true if the given object is equal to this type. + */ + public boolean equals(final Object o) { + if (this == o) { + return true; + } + if (o == null || !(o instanceof Type)) { + return false; + } + Type t = (Type) o; + if (sort != t.sort) { + return false; + } + if (sort == Type.OBJECT || sort == Type.ARRAY) { + if (len != t.len) { + return false; + } + for (int i = off, j = t.off, end = i + len; i < end; i++, j++) { + if (buf[i] != t.buf[j]) { + return false; + } + } + } + return true; + } + + /** + * Returns a hash code value for this type. + * + * @return a hash code value for this type. + */ + public int hashCode() { + int hc = 13 * sort; + if (sort == Type.OBJECT || sort == Type.ARRAY) { + for (int i = off, end = i + len; i < end; i++) { + hc = 17 * (hc + buf[i]); + } + } + return hc; + } + + /** + * Returns a string representation of this type. + * + * @return the descriptor of this type. + */ + public String toString() { + return getDescriptor(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java new file mode 100644 index 00000000000..4df2f7ddec1 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java @@ -0,0 +1,378 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.attrs; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ByteVector; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Label; + +/** + * StackMapAttribute is used by CDLC preverifier. Definition is given in + * appendix "CLDC Byte Code Typechecker Specification" from CDLC 1.1 + * specification.

      Note that this implementation does not calculate + * StackMapFrame structures from the method bytecode. If method code is changed + * or generated from scratch, then developer is responsible to prepare a correct + * StackMapFrame structures.

      The format of the stack map in the class + * file is given below. In the following,

      • if the length of the + * method's byte code1 is 65535 or less, then uoffset represents the + * type u2; otherwise uoffset represents the type u4.
      • If + * the maximum number of local variables for the method is 65535 or less, then + * ulocalvar represents the type u2; otherwise ulocalvar + * represents the type u4.
      • If the maximum size of the operand stack + * is 65535 or less, then ustack represents the type u2; otherwise + * ustack represents the type u4.
      + * + *
      + * stack_map { // attribute StackMap
      + *   u2 attribute_name_index;
      + *   u4 attribute_length
      + *   uoffset number_of_entries;
      + *   stack_map_frame entries[number_of_entries];
      + * }
      + * 
      + * + * Each stack map frame has the following format: + * + *
      + * stack_map_frame {
      + *   uoffset offset;
      + *   ulocalvar number_of_locals;
      + *   verification_type_info locals[number_of_locals];
      + *   ustack number_of_stack_items;
      + *   verification_type_info stack[number_of_stack_items];
      + * }
      + * 
      + * + * The verification_type_info structure consists of a one-byte tag + * followed by zero or more bytes, giving more information about the tag. Each + * verification_type_info structure specifies the verification type + * of one or two locations. + * + *
      + * union verification_type_info {
      + *   Top_variable_info;
      + *   Integer_variable_info;
      + *   Float_variable_info;
      + *   Long_variable_info;
      + *   Double_variable_info;
      + *   Null_variable_info;
      + *   UninitializedThis_variable_info;
      + *   Object_variable_info;
      + *   Uninitialized_variable_info;
      + * }
      + *      
      + * Top_variable_info {
      + *   u1 tag = ITEM_Top; // 0
      + * }
      + *      
      + * Integer_variable_info {
      + *   u1 tag = ITEM_Integer; // 1
      + * }
      + *      
      + * Float_variable_info {
      + *   u1 tag = ITEM_Float; // 2
      + * }
      + *      
      + * Long_variable_info {
      + *   u1 tag = ITEM_Long; // 4
      + * }
      + *      
      + * Double_variable_info {
      + *   u1 tag = ITEM_Double; // 3
      + * }
      + *      
      + * Null_variable_info {
      + *  u1 tag = ITEM_Null; // 5
      + * }
      + *      
      + * UninitializedThis_variable_info {
      + *   u1 tag = ITEM_UninitializedThis; // 6
      + * }
      + *      
      + * Object_variable_info {
      + *   u1 tag = ITEM_Object; // 7
      + *   u2 cpool_index;
      + * }
      + *      
      + * Uninitialized_variable_info {
      + *   u1 tag = ITEM_Uninitialized // 8
      + *   uoffset offset;
      + * }
      + * 
      + * + * @see
      JSR 139 : Connected + * Limited Device Configuration 1.1 + * + * @author Eugene Kuleshov + */ +public class StackMapAttribute extends Attribute { + + static final int MAX_SIZE = 65535; + + /** + * A List of StackMapFrame instances. + */ + public List frames = new ArrayList(); + + public StackMapAttribute() { + super("StackMap"); + } + + public StackMapAttribute(List frames) { + this(); + this.frames = frames; + } + + public List getFrames() { + return frames; + } + + public StackMapFrame getFrame(Label label) { + for (int i = 0; i < frames.size(); i++) { + StackMapFrame frame = (StackMapFrame) frames.get(i); + if (frame.label == label) { + return frame; + } + } + return null; + } + + public boolean isUnknown() { + return false; + } + + public boolean isCodeAttribute() { + return true; + } + + protected Attribute read( + ClassReader cr, + int off, + int len, + char[] buf, + int codeOff, + Label[] labels) + { + StackMapAttribute attr = new StackMapAttribute(); + // note that this is not the size of Code attribute + boolean isExtCodeSize = cr.readInt(codeOff + 4) > MAX_SIZE; + boolean isExtLocals = cr.readUnsignedShort(codeOff + 2) > MAX_SIZE; + boolean isExtStack = cr.readUnsignedShort(codeOff) > MAX_SIZE; + + int size = 0; + if (isExtCodeSize) { + size = cr.readInt(off); + off += 4; + } else { + size = cr.readUnsignedShort(off); + off += 2; + } + for (int i = 0; i < size; i++) { + int offset; + if (isExtCodeSize) { + offset = cr.readInt(off); + off += 4; + } else { + offset = cr.readUnsignedShort(off); + off += 2; + } + + Label label = getLabel(offset, labels); + List locals = new ArrayList(); + List stack = new ArrayList(); + + off = readTypeInfo(cr, + off, + locals, + labels, + buf, + isExtLocals, + isExtCodeSize); + off = readTypeInfo(cr, + off, + stack, + labels, + buf, + isExtStack, + isExtCodeSize); + + attr.frames.add(new StackMapFrame(label, locals, stack)); + } + return attr; + } + + private int readTypeInfo( + ClassReader cr, + int off, + List info, + Label[] labels, + char[] buf, + boolean isExt, + boolean isExtCode) + { + int n = 0; + if (isExt) { + n = cr.readInt(off); + off += 4; + } else { + n = cr.readUnsignedShort(off); + off += 2; + } + for (int j = 0; j < n; j++) { + int itemType = cr.readByte(off++); + StackMapType typeInfo = StackMapType.getTypeInfo(itemType); + info.add(typeInfo); + switch (itemType) { + case StackMapType.ITEM_Object: // + typeInfo.setObject(cr.readClass(off, buf)); + off += 2; + break; + case StackMapType.ITEM_Uninitialized: // + int offset; + if (isExtCode) { + offset = cr.readInt(off); + off += 4; + } else { + offset = cr.readUnsignedShort(off); + off += 2; + } + typeInfo.setLabel(getLabel(offset, labels)); + break; + } + } + return off; + } + + private void writeTypeInfo(ByteVector bv, ClassWriter cw, List info, int max) + { + if (max > StackMapAttribute.MAX_SIZE) { + bv.putInt(info.size()); + } else { + bv.putShort(info.size()); + } + for (int j = 0; j < info.size(); j++) { + StackMapType typeInfo = (StackMapType) info.get(j); + bv.putByte(typeInfo.getType()); + switch (typeInfo.getType()) { + case StackMapType.ITEM_Object: // + bv.putShort(cw.newClass(typeInfo.getObject())); + break; + + case StackMapType.ITEM_Uninitialized: // + bv.putShort(typeInfo.getLabel().getOffset()); + break; + + } + } + } + + private Label getLabel(int offset, Label[] labels) { + Label l = labels[offset]; + if (l != null) { + return l; + } + return labels[offset] = new Label(); + } + + protected ByteVector write( + ClassWriter cw, + byte[] code, + int len, + int maxStack, + int maxLocals) + { + ByteVector bv = new ByteVector(); + if (code != null && code.length > MAX_SIZE) { // TODO verify value + bv.putInt(frames.size()); + } else { + bv.putShort(frames.size()); + } + for (int i = 0; i < frames.size(); i++) { + writeFrame((StackMapFrame) frames.get(i), + cw, + maxStack, + maxLocals, + bv); + } + return bv; + } + + protected Label[] getLabels() { + HashSet labels = new HashSet(); + for (int i = 0; i < frames.size(); i++) { + getFrameLabels((StackMapFrame) frames.get(i), labels); + } + return (Label[]) labels.toArray(new Label[labels.size()]); + } + + private void writeFrame( + StackMapFrame frame, + ClassWriter cw, + int maxStack, + int maxLocals, + ByteVector bv) + { + bv.putShort(frame.label.getOffset()); + writeTypeInfo(bv, cw, frame.locals, maxLocals); + writeTypeInfo(bv, cw, frame.stack, maxStack); + } + + private void getFrameLabels(StackMapFrame frame, Set labels) { + labels.add(frame.label); + getTypeInfoLabels(labels, frame.locals); + getTypeInfoLabels(labels, frame.stack); + } + + private void getTypeInfoLabels(Set labels, List info) { + for (Iterator it = info.iterator(); it.hasNext();) { + StackMapType typeInfo = (StackMapType) it.next(); + if (typeInfo.getType() == StackMapType.ITEM_Uninitialized) { + labels.add(typeInfo.getLabel()); + } + } + } + + public String toString() { + StringBuffer sb = new StringBuffer("StackMap["); + for (int i = 0; i < frames.size(); i++) { + sb.append('\n').append('[').append(frames.get(i)).append(']'); + } + sb.append("\n]"); + return sb.toString(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java new file mode 100644 index 00000000000..bdd464179aa --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java @@ -0,0 +1,82 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.attrs; + +import java.util.List; + +import org.objectweb.asm.Label; + +/** + * Holds the state of the stack and local variables for a single execution + * branch. + * + * Note that Long and Double types are represented by two entries in locals + * and stack. Second entry should be always of type Top. + * + * @see JSR 139 : Connected + * Limited Device Configuration 1.1 + * + * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM" + * + * @author Eugene Kuleshov + */ +public class StackMapFrame { + + /** + * A Label for frame offset within method bytecode. + */ + public Label label; + + /** + * A List of StackMapType instances that represent locals for + * this frame. + */ + public List locals; + + /** + * A List of StackMapType instances that represent stack for + * this frame. + */ + public List stack; + + public StackMapFrame(Label label, List locals, List stack) { + this.label = label; + this.locals = locals; + this.stack = stack; + } + + public String toString() { + StringBuffer sb = new StringBuffer("Frame:L"); + sb.append(System.identityHashCode(label)); + sb.append(" locals").append(locals); + sb.append(" stack").append(stack); + return sb.toString(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java new file mode 100644 index 00000000000..c0aa9c8a818 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java @@ -0,0 +1,927 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.attrs; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ByteVector; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Label; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +/** + * The stack map attribute is used during the process of verification by + * typechecking (§4.11.1).

      A stack map attribute consists of zero or + * more stack map frames. Each stack map frame specifies (either explicitly or + * implicitly) a bytecode offset, the verification types (§4.11.1) for the local + * variables, and the verification types for the operand stack.

      The + * type checker deals with and manipulates the expected types of a method's + * local variables and operand stack. Throughout this section, a location refers + * to either a single local variable or to a single operand stack entry.
      + *
      We will use the terms stack frame map and type state interchangeably to + * describe a mapping from locations in the operand stack and local variables of + * a method to verification types. We will usually use the term stack frame map + * when such a mapping is provided in the class file, and the term type state + * when the mapping is inferred by the type checker.

      If a method's + * Code attribute does not have a StackMapTable attribute, it has an implicit + * stack map attribute. This implicit stack map attribute is equivalent to a + * StackMapTable attribute with number_of_entries equal to zero. A method's Code + * attribute may have at most one StackMapTable attribute, otherwise a + * java.lang.ClassFormatError is thrown.

      The format of the stack map + * in the class file is given below. In the following, if the length of the + * method's byte code is 65535 or less, then uoffset represents the type u2; + * otherwise uoffset represents the type u4. If the maximum number of local + * variables for the method is 65535 or less, then ulocalvar + * represents the type u2; otherwise ulocalvar represents the type u4. If the + * maximum size of the operand stack is 65535 or less, then ustack + * represents the type u2; otherwise ustack represents the type u4. + * + *
      + * stack_map { // attribute StackMapTable
      + *   u2 attribute_name_index;
      + *   u4 attribute_length
      + *   uoffset number_of_entries;
      + *   stack_map_frame entries[number_of_entries];
      + * }
      + * 
      + * + * Each stack_map_frame structure specifies the type state at a particular byte + * code offset. Each frame type specifies (explicitly or implicitly) a value, + * offset_delta, that is used to calulate the actual byte code offset at which + * it applies. The byte code offset at which the frame applies is given by + * adding 1 + offset_delta to the offset of the + * previous frame, unless the previous frame is the initial frame of the method, + * in which case the byte code offset is offset_delta.

      + * Note that the length of the byte codes is not the same as the length of + * the Code attribute. The byte codes are embedded in the Code attribute, along + * with other information.

      By using an offset delta rather than + * the actual byte code offset we ensure, by definition, that stack map frames + * are in the correctly sorted order. Furthermore, by consistently using the + * formula offset_delta + 1 for all explicit frames, we guarantee + * the absence of duplicates.

      All frame types, even full_frame, rely + * on the previous frame for some of their semantics. This raises the question + * of what is the very first frame? The initial frame is implicit, and computed + * from the method descriptor. See the Prolog code for methodInitialStacFrame. + *

      The stack_map_frame structure consists of a one-byte tag followed + * by zero or more bytes, giving more information, depending upon the tag.
      + *
      A stack map frame may belong to one of several frame types + * + *
      + * union stack_map_frame {
      + *   same_frame;
      + *   same_locals_1_stack_item_frame;
      + *   chop_frame;
      + *   same_frame_extended;
      + *   append_frame;
      + *   full_frame;
      + * }
      + * 
      + * + * The frame type same_frame is represented by tags in the range [0-63]. If the + * frame type is same_frame, it means the frame has exactly the same locals as + * the previous stack map frame and that the number of stack items is zero. The + * offset_delta value for the frame is the value of the tag field, frame_type. + * The form of such a frame is then: + * + *
      + * same_frame {
      + *   u1 frame_type = SAME;  // 0-63
      + * }
      + * 
      + * + * The frame type same_locals_1_stack_item_frame is represented by tags in the + * range [64, 127]. If the frame_type is same_locals_1_stack_item_frame, it + * means the frame has exactly the same locals as the previous stack map frame + * and that the number of stack items is 1. The offset_delta value for the frame + * is the value (frame_type - 64). There is a verification_type_info following + * the frame_type for the one stack item. The form of such a frame is then: + * + *
      + * same_locals_1_stack_item_frame {
      + *   u1 frame_type = SAME_LOCALS_1_STACK_ITEM;  // 64-127
      + *    verification_type_info stack[1];
      + * }
      + * 
      + * + * Tags in the range [128-247] are reserved for future use.

      The frame + * type chop_frame is represented by tags in the range [248-250]. If the + * frame_type is chop_frame, it means that the current locals are the same as + * the locals in the previous frame, except that the k last locals are absent. + * The value of k is given by the formula 251-frame_type.

      The form of + * such a frame is then: + * + *
      + * chop_frame {
      + *   u1 frame_type=CHOP;  // 248-250
      + *   uoffset offset_delta;
      + * }
      + * 
      + * + * The frame type same_frame_extended is represented by the tag value 251. If + * the frame type is same_frame_extended, it means the frame has exactly the + * same locals as the previous stack map frame and that the number of stack + * items is zero. The form of such a frame is then: + * + *
      + * same_frame_extended {
      + *   u1 frame_type = SAME_FRAME_EXTENDED;  // 251
      + *   uoffset offset_delta;
      + * }
      + * 
      + * + * The frame type append_frame is represented by tags in the range [252-254]. If + * the frame_type is append_frame, it means that the current locals are the same + * as the locals in the previous frame, except that k additional locals are + * defined. The value of k is given by the formula frame_type-251.

      The + * form of such a frame is then: + * + *
      + * append_frame {
      + *   u1 frame_type =APPEND;  // 252-254
      + *   uoffset offset_delta;
      + *   verification_type_info locals[frame_type -251];
      + * }
      + * 
      + * + * The 0th entry in locals represents the type of the first additional local + * variable. If locals[M] represents local variable N, then locals[M+1] + * represents local variable N+1 if locals[M] is one of Top_variable_info, + * Integer_variable_info, Float_variable_info, Null_variable_info, + * UninitializedThis_variable_info, Object_variable_info, or + * Uninitialized_variable_info, otherwise locals[M+1] represents local variable + * N+2. It is an error if, for any index i, locals[i] represents a local + * variable whose index is greater than the maximum number of local variables + * for the method.

      The frame type full_frame is represented by the tag + * value 255. The form of such a frame is then: + * + *
      + * full_frame {
      + *   u1 frame_type = FULL_FRAME;  // 255
      + *   uoffset offset_delta;
      + *   ulocalvar number_of_locals;
      + *   verification_type_info locals[number_of_locals];
      + *   ustack number_of_stack_items;
      + *   verification_type_info stack[number_of_stack_items];
      + * }
      + * 
      + * + * The 0th entry in locals represents the type of local variable 0. If locals[M] + * represents local variable N, then locals[M+1] represents local variable N+1 + * if locals[M] is one of Top_variable_info, Integer_variable_info, + * Float_variable_info, Null_variable_info, UninitializedThis_variable_info, + * Object_variable_info, or Uninitialized_variable_info, otherwise locals[M+1] + * represents local variable N+2. It is an error if, for any index i, locals[i] + * represents a local variable whose index is greater than the maximum number of + * local variables for the method.

      The 0th entry in stack represents + * the type of the bottom of the stack, and subsequent entries represent types + * of stack elements closer to the top of the operand stack. We shall refer to + * the bottom element of the stack as stack element 0, and to subsequent + * elements as stack element 1, 2 etc. If stack[M] represents stack element N, + * then stack[M+1] represents stack element N+1 if stack[M] is one of + * Top_variable_info, Integer_variable_info, Float_variable_info, + * Null_variable_info, UninitializedThis_variable_info, Object_variable_info, or + * Uninitialized_variable_info, otherwise stack[M+1] represents stack element + * N+2. It is an error if, for any index i, stack[i] represents a stack entry + * whose index is greater than the maximum operand stack size for the method. + *

      We say that an instruction in the byte code has a corresponding + * stack map frame if the offset in the offset field of the stack map frame is + * the same as the offset of the instruction in the byte codes.

      The + * verification_type_info structure consists of a one-byte tag followed by zero + * or more bytes, giving more information about the tag. Each + * verification_type_info structure specifies the verification type of one or + * two locations. + * + *
      + * union verification_type_info {
      + *   Top_variable_info;
      + *   Integer_variable_info;
      + *   Float_variable_info;
      + *   Long_variable_info;
      + *   Double_variable_info;
      + *   Null_variable_info;
      + *   UninitializedThis_variable_info;
      + *   Object_variable_info;
      + *   Uninitialized_variable_info;
      + * }
      + * 
      + * + * The Top_variable_info type indicates that the local variable has the + * verification type top (T.) + * + *
      + * Top_variable_info {
      + *   u1 tag = ITEM_Top; // 0
      + * }
      + * 
      + * + * The Integer_variable_info type indicates that the location contains the + * verification type int. + * + *
      + * Integer_variable_info {
      + *   u1 tag = ITEM_Integer; // 1
      + * }
      + * 
      + * + * The Float_variable_info type indicates that the location contains the + * verification type float. + * + *
      + * Float_variable_info {
      + *   u1 tag = ITEM_Float; // 2
      + * }
      + * 
      + * + * The Long_variable_info type indicates that the location contains the + * verification type long. If the location is a local variable, then: + * + *
      • It must not be the local variable with the highest index.
      • + *
      • The next higher numbered local variable contains the verification type + * T.
      + * + * If the location is an operand stack entry, then: + * + *
      • The current location must not be the topmost location of the + * operand stack.
      • the next location closer to the top of the operand + * stack contains the verification type T.
      + * + * This structure gives the contents of two locations in the operand stack or in + * the local variables. + * + *
      + * Long_variable_info {
      + *   u1 tag = ITEM_Long; // 4
      + * }
      + * 
      + * + * The Double_variable_info type indicates that the location contains the + * verification type double. If the location is a local variable, then: + * + *
      • It must not be the local variable with the highest index.
      • + *
      • The next higher numbered local variable contains the verification type + * T.
      + * + * If the location is an operand stack entry, then: + * + *
      • The current location must not be the topmost location of the + * operand stack.
      • the next location closer to the top of the operand + * stack contains the verification type T.
      + * + * This structure gives the contents of two locations in in the operand stack or + * in the local variables. + * + *
      + * Double_variable_info {
      + *   u1 tag = ITEM_Double; // 3
      + * }
      + * 
      + * + * The Null_variable_info type indicates that location contains the verification + * type null. + * + *
      + * Null_variable_info {
      + *   u1 tag = ITEM_Null; // 5
      + * }
      + * 
      + * + * The UninitializedThis_variable_info type indicates that the location contains + * the verification type uninitializedThis. + * + *
      + * UninitializedThis_variable_info {
      + *   u1 tag = ITEM_UninitializedThis; // 6
      + * }
      + * 
      + * + * The Object_variable_info type indicates that the location contains an + * instance of the class referenced by the constant pool entry. + * + *
      + * Object_variable_info {
      + *   u1 tag = ITEM_Object; // 7
      + *   u2 cpool_index;
      + * }
      + * 
      + * + * The Uninitialized_variable_info indicates that the location contains the + * verification type uninitialized(offset). The offset item indicates the offset + * of the new instruction that created the object being stored in the location. + * + *
      + * Uninitialized_variable_info {
      + *   u1 tag = ITEM_Uninitialized // 8
      + *   uoffset offset;
      + * }
      + * 
      + * + * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM" + * + * @author Eugene Kuleshov + */ +public class StackMapTableAttribute extends Attribute { + /** + * Frame has exactly the same locals as the previous stack map frame and + * number of stack items is zero. + */ + public static final int SAME_FRAME = 0; // to 63 (0-3f) + + /** + * Frame has exactly the same locals as the previous stack map frame and + * number of stack items is 1 + */ + public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64; // to 127 + + // (40-7f) + + /** + * Reserved for future use + */ + public static final int RESERVED = 128; + + /** + * Frame has exactly the same locals as the previous stack map frame and + * number of stack items is 1. Offset is bigger then 63; + */ + public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247; // f7 + + /** + * Frame where current locals are the same as the locals in the previous + * frame, except that the k last locals are absent. The value of k is given + * by the formula 251-frame_type. + */ + public static final int CHOP_FRAME = 248; // to 250 (f8-fA) + + /** + * Frame has exactly the same locals as the previous stack map frame and + * number of stack items is zero. Offset is bigger then 63; + */ + public static final int SAME_FRAME_EXTENDED = 251; // fb + + /** + * Frame where current locals are the same as the locals in the previous + * frame, except that k additional locals are defined. The value of k is + * given by the formula frame_type-251. + */ + public static final int APPEND_FRAME = 252; // to 254 // fc-fe + + /** + * Full frame + */ + public static final int FULL_FRAME = 255; // ff + + private static final int MAX_SHORT = 65535; + + /** + * A List of StackMapFrame instances. + */ + private List frames; + + public StackMapTableAttribute() { + super("StackMapTable"); + } + + public StackMapTableAttribute(List frames) { + this(); + this.frames = frames; + } + + public List getFrames() { + return frames; + } + + public StackMapFrame getFrame(Label label) { + for (int i = 0; i < frames.size(); i++) { + StackMapFrame frame = (StackMapFrame) frames.get(i); + if (frame.label == label) { + return frame; + } + } + return null; + } + + public boolean isUnknown() { + return false; + } + + public boolean isCodeAttribute() { + return true; + } + + protected Attribute read( + ClassReader cr, + int off, + int len, + char[] buf, + int codeOff, + Label[] labels) + { + + ArrayList frames = new ArrayList(); + + // note that this is not the size of Code attribute + boolean isExtCodeSize = cr.readInt(codeOff + 4) > MAX_SHORT; + boolean isExtLocals = cr.readUnsignedShort(codeOff + 2) > MAX_SHORT; + boolean isExtStack = cr.readUnsignedShort(codeOff) > MAX_SHORT; + + int offset = 0; + + int methodOff = getMethodOff(cr, codeOff, buf); + StackMapFrame frame = new StackMapFrame(getLabel(offset, labels), + calculateLocals(cr.readClass(cr.header + 2, buf), // owner + cr.readUnsignedShort(methodOff), // method access + cr.readUTF8(methodOff + 2, buf), // method name + cr.readUTF8(methodOff + 4, buf)), // method desc + Collections.EMPTY_LIST); + frames.add(frame); + + // System.err.println( cr.readUTF8( methodOff + 2, buf)); + // System.err.println( offset +" delta:" + 0 +" : "+ frame); + + int size; + if (isExtCodeSize) { + size = cr.readInt(off); + off += 4; + } else { + size = cr.readUnsignedShort(off); + off += 2; + } + + for (; size > 0; size--) { + int tag = cr.readByte(off); // & 0xff; + off++; + + List stack; + List locals; + + int offsetDelta; + if (tag < SAME_LOCALS_1_STACK_ITEM_FRAME) { // SAME_FRAME + offsetDelta = tag; + + locals = new ArrayList(frame.locals); + stack = Collections.EMPTY_LIST; + + } else if (tag < RESERVED) { // SAME_LOCALS_1_STACK_ITEM_FRAME + offsetDelta = tag - SAME_LOCALS_1_STACK_ITEM_FRAME; + + locals = new ArrayList(frame.locals); + stack = new ArrayList(); + // read verification_type_info stack[1]; + off = readType(stack, isExtCodeSize, cr, off, labels, buf); + + } else { + if (isExtCodeSize) { + offsetDelta = cr.readInt(off); + off += 4; + } else { + offsetDelta = cr.readUnsignedShort(off); + off += 2; + } + + if (tag == SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED) { // SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED + locals = new ArrayList(frame.locals); + stack = new ArrayList(); + // read verification_type_info stack[1]; + off = readType(stack, isExtCodeSize, cr, off, labels, buf); + + } else if (tag >= CHOP_FRAME && tag < SAME_FRAME_EXTENDED) { // CHOP_FRAME + stack = Collections.EMPTY_LIST; + + int k = SAME_FRAME_EXTENDED - tag; + // copy locals from prev frame and chop last k + locals = new ArrayList(frame.locals.subList(0, + frame.locals.size() - k)); + + } else if (tag == SAME_FRAME_EXTENDED) { // SAME_FRAME_EXTENDED + stack = Collections.EMPTY_LIST; + locals = new ArrayList(frame.locals); + + } else if ( /* tag>=APPEND && */tag < FULL_FRAME) { // APPEND_FRAME + stack = Collections.EMPTY_LIST; + + // copy locals from prev frame and append new k + locals = new ArrayList(frame.locals); + for (int k = tag - SAME_FRAME_EXTENDED; k > 0; k--) { + off = readType(locals, + isExtCodeSize, + cr, + off, + labels, + buf); + } + + } else if (tag == FULL_FRAME) { // FULL_FRAME + // read verification_type_info locals[number_of_locals]; + locals = new ArrayList(); + off = readTypes(locals, + isExtLocals, + isExtCodeSize, + cr, + off, + labels, + buf); + + // read verification_type_info stack[number_of_stack_items]; + stack = new ArrayList(); + off = readTypes(stack, + isExtStack, + isExtCodeSize, + cr, + off, + labels, + buf); + + } else { + throw new RuntimeException("Unknown frame type " + tag + + " after offset " + offset); + + } + } + + offset += offsetDelta; + + Label offsetLabel = getLabel(offset, labels); + + frame = new StackMapFrame(offsetLabel, locals, stack); + frames.add(frame); + // System.err.println( tag +" " + offset +" delta:" + offsetDelta + + // " frameType:"+ frameType+" : "+ frame); + + offset++; + } + + return new StackMapTableAttribute(frames); + } + + protected ByteVector write( + ClassWriter cw, + byte[] code, + int len, + int maxStack, + int maxLocals) + { + ByteVector bv = new ByteVector(); + // TODO verify this value (MAX_SHORT) + boolean isExtCodeSize = code != null && code.length > MAX_SHORT; + writeSize(frames.size() - 1, bv, isExtCodeSize); + + if (frames.size() < 2) { + return bv; + } + + boolean isExtLocals = maxLocals > MAX_SHORT; + boolean isExtStack = maxStack > MAX_SHORT; + + // skip the first frame + StackMapFrame frame = (StackMapFrame) frames.get(0); + List locals = frame.locals; + int offset = frame.label.getOffset(); + + for (int i = 1; i < frames.size(); i++) { + frame = (StackMapFrame) frames.get(i); + + List clocals = frame.locals; + List cstack = frame.stack; + int coffset = frame.label.getOffset(); + + int clocalsSize = clocals.size(); + int cstackSize = cstack.size(); + + int localsSize = locals.size(); + + int delta = coffset - offset; + + int type = FULL_FRAME; + int k = 0; + if (cstackSize == 0) { + k = clocalsSize - localsSize; + switch (k) { + case -3: + case -2: + case -1: + type = CHOP_FRAME; // CHOP or FULL + localsSize = clocalsSize; // for full_frame check + break; + + case 0: + // SAME, SAME_EXTENDED or FULL + type = delta < 64 ? SAME_FRAME : SAME_FRAME_EXTENDED; + break; + + case 1: + case 2: + case 3: + type = APPEND_FRAME; // APPEND or FULL + break; + } + } else if (localsSize == clocalsSize && cstackSize == 1) { + // SAME_LOCAL_1_STACK or FULL + type = delta < 63 + ? SAME_LOCALS_1_STACK_ITEM_FRAME + : SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED; + } + + if (type != FULL_FRAME) { + // verify if stack and locals are the same + for (int j = 0; j < localsSize && type != FULL_FRAME; j++) { + if (!locals.get(j).equals(clocals.get(j))) + type = FULL_FRAME; + } + } + + switch (type) { + case SAME_FRAME: + bv.putByte(delta); + break; + + case SAME_LOCALS_1_STACK_ITEM_FRAME: + bv.putByte(SAME_LOCALS_1_STACK_ITEM_FRAME + delta); + writeTypeInfos(bv, cw, cstack, 0, 1); + break; + + case SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED: + bv.putByte(SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED); + writeSize(delta, bv, isExtCodeSize); + writeTypeInfos(bv, cw, cstack, 0, 1); + break; + + case SAME_FRAME_EXTENDED: + bv.putByte(SAME_FRAME_EXTENDED); + writeSize(delta, bv, isExtCodeSize); + break; + + case CHOP_FRAME: + bv.putByte(SAME_FRAME_EXTENDED + k); // negative k + writeSize(delta, bv, isExtCodeSize); + break; + + case APPEND_FRAME: + bv.putByte(SAME_FRAME_EXTENDED + k); // positive k + writeSize(delta, bv, isExtCodeSize); + writeTypeInfos(bv, + cw, + clocals, + clocalsSize - 1, + clocalsSize); + break; + + case FULL_FRAME: + bv.putByte(FULL_FRAME); + writeSize(delta, bv, isExtCodeSize); + writeSize(clocalsSize, bv, isExtLocals); + writeTypeInfos(bv, cw, clocals, 0, clocalsSize); + writeSize(cstackSize, bv, isExtStack); + writeTypeInfos(bv, cw, cstack, 0, cstackSize); + break; + + default: + throw new RuntimeException(); + } + offset = coffset + 1; // compensating non first offset + locals = clocals; + } + return bv; + } + + private void writeSize(int delta, ByteVector bv, boolean isExt) { + if (isExt) { + bv.putInt(delta); + } else { + bv.putShort(delta); + } + } + + private void writeTypeInfos( + ByteVector bv, + ClassWriter cw, + List info, + int start, + int end) + { + for (int j = start; j < end; j++) { + StackMapType typeInfo = (StackMapType) info.get(j); + bv.putByte(typeInfo.getType()); + + switch (typeInfo.getType()) { + case StackMapType.ITEM_Object: // + bv.putShort(cw.newClass(typeInfo.getObject())); + break; + + case StackMapType.ITEM_Uninitialized: // + bv.putShort(typeInfo.getLabel().getOffset()); + break; + + } + } + } + + public static int getMethodOff(ClassReader cr, int codeOff, char[] buf) { + int off = cr.header + 6; + + int interfacesCount = cr.readUnsignedShort(off); + off += 2 + interfacesCount * 2; + + int fieldsCount = cr.readUnsignedShort(off); + off += 2; + for (; fieldsCount > 0; --fieldsCount) { + int attrCount = cr.readUnsignedShort(off + 6); // field attributes + off += 8; + for (; attrCount > 0; --attrCount) { + off += 6 + cr.readInt(off + 2); + } + } + + int methodsCount = cr.readUnsignedShort(off); + off += 2; + for (; methodsCount > 0; --methodsCount) { + int methodOff = off; + int attrCount = cr.readUnsignedShort(off + 6); // method attributes + off += 8; + for (; attrCount > 0; --attrCount) { + String attrName = cr.readUTF8(off, buf); + off += 6; + if (attrName.equals("Code")) { + if (codeOff == off) { + return methodOff; + } + } + off += cr.readInt(off - 4); + } + } + + return -1; + } + + /** + * Use method signature and access flags to resolve initial locals state. + * + * @param className name of the method's owner class. + * @param access access flags of the method. + * @param methodName name of the method. + * @param methodDesc descriptor of the method. + * @return list of StackMapType instances representing locals + * for an initial frame. + */ + public static List calculateLocals( + String className, + int access, + String methodName, + String methodDesc) + { + List locals = new ArrayList(); + + // TODO + if ("".equals(methodName) + && !className.equals("java/lang/Object")) + { + StackMapType typeInfo = StackMapType.getTypeInfo(StackMapType.ITEM_UninitializedThis); + typeInfo.setObject(className); // this + locals.add(typeInfo); + } else if ((access & Opcodes.ACC_STATIC) == 0) { + StackMapType typeInfo = StackMapType.getTypeInfo(StackMapType.ITEM_Object); + typeInfo.setObject(className); // this + locals.add(typeInfo); + } + + Type[] types = Type.getArgumentTypes(methodDesc); + for (int i = 0; i < types.length; i++) { + Type t = types[i]; + StackMapType smt; + switch (t.getSort()) { + case Type.LONG: + smt = StackMapType.getTypeInfo(StackMapType.ITEM_Long); + break; + case Type.DOUBLE: + smt = StackMapType.getTypeInfo(StackMapType.ITEM_Double); + break; + + case Type.FLOAT: + smt = StackMapType.getTypeInfo(StackMapType.ITEM_Float); + break; + + case Type.ARRAY: + case Type.OBJECT: + smt = StackMapType.getTypeInfo(StackMapType.ITEM_Object); + smt.setObject(t.getDescriptor()); // TODO verify name + break; + + default: + smt = StackMapType.getTypeInfo(StackMapType.ITEM_Integer); + break; + } + } + + return locals; + } + + private int readTypes( + List info, + boolean isExt, + boolean isExtCodeSize, + ClassReader cr, + int off, + Label[] labels, + char[] buf) + { + int n = 0; + if (isExt) { + n = cr.readInt(off); + off += 4; + } else { + n = cr.readUnsignedShort(off); + off += 2; + } + + for (; n > 0; n--) { + off = readType(info, isExtCodeSize, cr, off, labels, buf); + } + return off; + } + + private int readType( + List info, + boolean isExtCodeSize, + ClassReader cr, + int off, + Label[] labels, + char[] buf) + { + int itemType = cr.readByte(off++); + StackMapType typeInfo = StackMapType.getTypeInfo(itemType); + info.add(typeInfo); + switch (itemType) { + // case StackMapType.ITEM_Long: // + // case StackMapType.ITEM_Double: // + // info.add(StackMapType.getTypeInfo(StackMapType.ITEM_Top)); + // break; + + case StackMapType.ITEM_Object: // + typeInfo.setObject(cr.readClass(off, buf)); + off += 2; + break; + + case StackMapType.ITEM_Uninitialized: // + int offset; + if (isExtCodeSize) { + offset = cr.readInt(off); + off += 4; + } else { + offset = cr.readUnsignedShort(off); + off += 2; + } + + typeInfo.setLabel(getLabel(offset, labels)); + break; + } + return off; + } + + private Label getLabel(int offset, Label[] labels) { + Label l = labels[offset]; + if (l != null) { + return l; + } + return labels[offset] = new Label(); + } + + public String toString() { + StringBuffer sb = new StringBuffer("StackMapTable["); + for (int i = 0; i < frames.size(); i++) { + sb.append('\n').append('[').append(frames.get(i)).append(']'); + } + sb.append("\n]"); + return sb.toString(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java new file mode 100644 index 00000000000..ae3b8cee7e4 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/StackMapType.java @@ -0,0 +1,114 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.objectweb.asm.attrs; + +import org.objectweb.asm.Label; + +/** + * Verification type info used by {@link StackMapAttribute}. + * + * @see JSR 139 : Connected + * Limited Device Configuration 1.1 + * + * @see "ClassFileFormat-Java6.fm Page 138 Friday, April 15, 2005 3:22 PM" + * + * @author Eugene Kuleshov + */ + +public class StackMapType { + + public static final int ITEM_Top = 0; + public static final int ITEM_Integer = 1; + public static final int ITEM_Float = 2; + public static final int ITEM_Double = 3; + public static final int ITEM_Long = 4; + public static final int ITEM_Null = 5; + public static final int ITEM_UninitializedThis = 6; + public static final int ITEM_Object = 7; + public static final int ITEM_Uninitialized = 8; + + public static final String[] ITEM_NAMES = { + "Top", + "Integer", + "Float", + "Double", + "Long", + "Null", + "UninitializedThis", + "Object", + "Uninitialized" }; + + private int type; + private Label offset; + private String object; + + private StackMapType(int type) { + this.type = type; + } + + public int getType() { + return type; + } + + public static StackMapType getTypeInfo(int itemType) { + if (itemType < ITEM_Top || itemType > ITEM_Uninitialized) { + throw new IllegalArgumentException("" + itemType); + } + return new StackMapType(itemType); + } + + public void setLabel(Label offset) { + this.offset = offset; + } + + public void setObject(String object) { + this.object = object; + } + + public Label getLabel() { + return offset; + } + + public String getObject() { + return object; + } + + public String toString() { + StringBuffer sb = new StringBuffer(ITEM_NAMES[type]); + if (type == ITEM_Object) { + sb.append(":").append(object); + } + if (type == ITEM_Uninitialized) { + sb.append(":L").append(System.identityHashCode(offset)); + } + return sb.toString(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/package.html new file mode 100644 index 00000000000..51f0a02e8d3 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/attrs/package.html @@ -0,0 +1,48 @@ + + + +Provides an implementation for optional class, field and method attributes. + +

      + +By default ASM strips optional attributes, in order to keep them in +the bytecode that is being readed you should pass an array of required attribute +instances to {@link org.objectweb.asm.ClassReader#accept(org.objectweb.asm.ClassVisitor, org.objectweb.asm.Attribute[], boolean) ClassReader.accept()} method. +In order to add custom attributes to the manually constructed bytecode concrete +subclasses of the {@link org.objectweb.asm.Attribute Attribute} can be passed to +the visitAttribute methods of the +{@link org.objectweb.asm.ClassVisitor ClassVisitor}, +{@link org.objectweb.asm.FieldVisitor FieldVisitor} and +{@link org.objectweb.asm.MethodVisitor MethodVisitor} interfaces. + +@since ASM 1.4.1 + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java new file mode 100644 index 00000000000..141c8e2113c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java @@ -0,0 +1,643 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import java.util.ArrayList; +import java.util.HashMap; + +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +/** + * A MethodAdapter to dispatch method body instruction + *

      + * The behavior is like this: + *

        + * + *
      1. as long as the INVOKESPECIAL for the object initialization has not been + * reached, every bytecode instruction is dispatched in the ctor code visitor
      2. + * + *
      3. when this one is reached, it is only added in the ctor code visitor and + * a JP invoke is added
      4. + *
      5. after that, only the other code visitor receives the instructions
      6. + * + *
      + * + * @author Eugene Kuleshov + * @author Eric Bruneton + */ +public abstract class AdviceAdapter extends GeneratorAdapter implements Opcodes { + private static final Object THIS = new Object(); + private static final Object OTHER = new Object(); + + protected int methodAccess; + protected String methodDesc; + + private boolean constructor; + private boolean superInitialized; + private ArrayList stackFrame; + private HashMap branches; + + + /** + * Creates a new {@link AdviceAdapter}. + * + * @param mv the method visitor to which this adapter delegates calls. + * @param access the method's access flags (see {@link Opcodes}). + * @param name the method's name. + * @param desc the method's descriptor (see {@link Type Type}). + */ + public AdviceAdapter(MethodVisitor mv, int access, String name, String desc) { + super(mv, access, name, desc); + methodAccess = access; + methodDesc = desc; + + constructor = "".equals(name); + if (!constructor) { + superInitialized = true; + onMethodEnter(); + } else { + stackFrame = new ArrayList(); + branches = new HashMap(); + } + } + + public void visitLabel(Label label) { + mv.visitLabel(label); + + if (constructor && branches != null) { + ArrayList frame = (ArrayList) branches.get(label); + if (frame != null) { + stackFrame = frame; + branches.remove(label); + } + } + } + + public void visitInsn(int opcode) { + if (constructor) { + switch (opcode) { + case RETURN: // empty stack + onMethodExit(opcode); + break; + + case IRETURN: // 1 before n/a after + case FRETURN: // 1 before n/a after + case ARETURN: // 1 before n/a after + case ATHROW: // 1 before n/a after + popValue(); + popValue(); + onMethodExit(opcode); + break; + + case LRETURN: // 2 before n/a after + case DRETURN: // 2 before n/a after + popValue(); + popValue(); + onMethodExit(opcode); + break; + + case NOP: + case LALOAD: // remove 2 add 2 + case DALOAD: // remove 2 add 2 + case LNEG: + case DNEG: + case FNEG: + case INEG: + case L2D: + case D2L: + case F2I: + case I2B: + case I2C: + case I2S: + case I2F: + case Opcodes.ARRAYLENGTH: + break; + + case ACONST_NULL: + case ICONST_M1: + case ICONST_0: + case ICONST_1: + case ICONST_2: + case ICONST_3: + case ICONST_4: + case ICONST_5: + case FCONST_0: + case FCONST_1: + case FCONST_2: + case F2L: // 1 before 2 after + case F2D: + case I2L: + case I2D: + pushValue(OTHER); + break; + + case LCONST_0: + case LCONST_1: + case DCONST_0: + case DCONST_1: + pushValue(OTHER); + pushValue(OTHER); + break; + + case IALOAD: // remove 2 add 1 + case FALOAD: // remove 2 add 1 + case AALOAD: // remove 2 add 1 + case BALOAD: // remove 2 add 1 + case CALOAD: // remove 2 add 1 + case SALOAD: // remove 2 add 1 + case POP: + case IADD: + case FADD: + case ISUB: + case LSHL: // 3 before 2 after + case LSHR: // 3 before 2 after + case LUSHR: // 3 before 2 after + case L2I: // 2 before 1 after + case L2F: // 2 before 1 after + case D2I: // 2 before 1 after + case D2F: // 2 before 1 after + case FSUB: + case FMUL: + case FDIV: + case FREM: + case FCMPL: // 2 before 1 after + case FCMPG: // 2 before 1 after + case IMUL: + case IDIV: + case IREM: + case ISHL: + case ISHR: + case IUSHR: + case IAND: + case IOR: + case IXOR: + case MONITORENTER: + case MONITOREXIT: + popValue(); + break; + + case POP2: + case LSUB: + case LMUL: + case LDIV: + case LREM: + case LADD: + case LAND: + case LOR: + case LXOR: + case DADD: + case DMUL: + case DSUB: + case DDIV: + case DREM: + popValue(); + popValue(); + break; + + case IASTORE: + case FASTORE: + case AASTORE: + case BASTORE: + case CASTORE: + case SASTORE: + case LCMP: // 4 before 1 after + case DCMPL: + case DCMPG: + popValue(); + popValue(); + popValue(); + break; + + case LASTORE: + case DASTORE: + popValue(); + popValue(); + popValue(); + popValue(); + break; + + case DUP: + pushValue(peekValue()); + break; + + case DUP_X1: + // TODO optimize this + { + Object o1 = popValue(); + Object o2 = popValue(); + pushValue(o1); + pushValue(o2); + pushValue(o1); + } + break; + + case DUP_X2: + // TODO optimize this + { + Object o1 = popValue(); + Object o2 = popValue(); + Object o3 = popValue(); + pushValue(o1); + pushValue(o3); + pushValue(o2); + pushValue(o1); + } + break; + + case DUP2: + // TODO optimize this + { + Object o1 = popValue(); + Object o2 = popValue(); + pushValue(o2); + pushValue(o1); + pushValue(o2); + pushValue(o1); + } + break; + + case DUP2_X1: + // TODO optimize this + { + Object o1 = popValue(); + Object o2 = popValue(); + Object o3 = popValue(); + pushValue(o2); + pushValue(o1); + pushValue(o3); + pushValue(o2); + pushValue(o1); + } + break; + + case DUP2_X2: + // TODO optimize this + { + Object o1 = popValue(); + Object o2 = popValue(); + Object o3 = popValue(); + Object o4 = popValue(); + pushValue(o2); + pushValue(o1); + pushValue(o4); + pushValue(o3); + pushValue(o2); + pushValue(o1); + } + break; + + case SWAP: { + Object o1 = popValue(); + Object o2 = popValue(); + pushValue(o1); + pushValue(o2); + } + break; + } + } else { + switch (opcode) { + case RETURN: + case IRETURN: + case FRETURN: + case ARETURN: + case LRETURN: + case DRETURN: + case ATHROW: + onMethodExit(opcode); + break; + } + } + mv.visitInsn(opcode); + } + + public void visitVarInsn(int opcode, int var) { + super.visitVarInsn(opcode, var); + + if (constructor) { + switch (opcode) { + case ILOAD: + case FLOAD: + pushValue(OTHER); + break; + case LLOAD: + case DLOAD: + pushValue(OTHER); + pushValue(OTHER); + break; + case ALOAD: + pushValue(var == 0 ? THIS : OTHER); + break; + case ASTORE: + case ISTORE: + case FSTORE: + popValue(); + break; + case LSTORE: + case DSTORE: + popValue(); + popValue(); + break; + } + } + } + + public void visitFieldInsn( + int opcode, + String owner, + String name, + String desc) + { + mv.visitFieldInsn(opcode, owner, name, desc); + + if (constructor) { + char c = desc.charAt(0); + boolean longOrDouble = c == 'J' || c == 'D'; + switch (opcode) { + case GETSTATIC: + pushValue(OTHER); + if (longOrDouble) { + pushValue(OTHER); + } + break; + case PUTSTATIC: + popValue(); + if(longOrDouble) { + popValue(); + } + break; + case PUTFIELD: + popValue(); + if(longOrDouble) { + popValue(); + popValue(); + } + break; + // case GETFIELD: + default: + if (longOrDouble) { + pushValue(OTHER); + } + } + } + } + + public void visitIntInsn(int opcode, int operand) { + mv.visitIntInsn(opcode, operand); + + if (constructor) { + switch (opcode) { + case BIPUSH: + case SIPUSH: + pushValue(OTHER); + } + } + } + + public void visitLdcInsn(Object cst) { + mv.visitLdcInsn(cst); + + if (constructor) { + pushValue(OTHER); + if (cst instanceof Double || cst instanceof Long) { + pushValue(OTHER); + } + } + } + + public void visitMultiANewArrayInsn(String desc, int dims) { + mv.visitMultiANewArrayInsn(desc, dims); + + if (constructor) { + for (int i = 0; i < dims; i++) { + popValue(); + } + pushValue(OTHER); + } + } + + public void visitTypeInsn(int opcode, String name) { + mv.visitTypeInsn(opcode, name); + + // ANEWARRAY, CHECKCAST or INSTANCEOF don't change stack + if (constructor && opcode == NEW) { + pushValue(OTHER); + } + } + + public void visitMethodInsn( + int opcode, + String owner, + String name, + String desc) + { + mv.visitMethodInsn(opcode, owner, name, desc); + + if (constructor) { + Type[] types = Type.getArgumentTypes(desc); + for (int i = 0; i < types.length; i++) { + popValue(); + if (types[i].getSize() == 2) { + popValue(); + } + } + switch (opcode) { + // case INVOKESTATIC: + // break; + + case INVOKEINTERFACE: + case INVOKEVIRTUAL: + popValue(); // objectref + break; + + case INVOKESPECIAL: + Object type = popValue(); // objectref + if (type == THIS && !superInitialized) { + onMethodEnter(); + superInitialized = true; + // once super has been initialized it is no longer + // necessary to keep track of stack state + constructor = false; + } + break; + } + + Type returnType = Type.getReturnType(desc); + if (returnType != Type.VOID_TYPE) { + pushValue(OTHER); + if (returnType.getSize() == 2) { + pushValue(OTHER); + } + } + } + } + + public void visitJumpInsn(int opcode, Label label) { + mv.visitJumpInsn(opcode, label); + + if (constructor) { + switch (opcode) { + case IFEQ: + case IFNE: + case IFLT: + case IFGE: + case IFGT: + case IFLE: + case IFNULL: + case IFNONNULL: + popValue(); + break; + + case IF_ICMPEQ: + case IF_ICMPNE: + case IF_ICMPLT: + case IF_ICMPGE: + case IF_ICMPGT: + case IF_ICMPLE: + case IF_ACMPEQ: + case IF_ACMPNE: + popValue(); + popValue(); + break; + + case JSR: + pushValue(OTHER); + break; + } + addBranch(label); + } + } + + public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) { + mv.visitLookupSwitchInsn(dflt, keys, labels); + + if (constructor) { + popValue(); + addBranches(dflt, labels); + } + } + + public void visitTableSwitchInsn( + int min, + int max, + Label dflt, + Label[] labels) + { + mv.visitTableSwitchInsn(min, max, dflt, labels); + + if (constructor) { + popValue(); + addBranches(dflt, labels); + } + } + + private void addBranches(Label dflt, Label[] labels) { + addBranch(dflt); + for (int i = 0; i < labels.length; i++) { + addBranch(labels[i]); + } + } + + private void addBranch(Label label) { + if (branches.containsKey(label)) { + return; + } + ArrayList frame = new ArrayList(); + frame.addAll(stackFrame); + branches.put(label, frame); + } + + private Object popValue() { + return stackFrame.remove(stackFrame.size()-1); + } + + private Object peekValue() { + return stackFrame.get(stackFrame.size()-1); + } + + private void pushValue(Object o) { + stackFrame.add(o); + } + + /** + * Called at the beginning of the method or after super + * class class call in the constructor. + *

      + * + * Custom code can use or change all the local variables, + * but should not change state of the stack. + */ + protected abstract void onMethodEnter(); + + /** + * Called before explicit exit from the method using either + * return or throw. Top element on the stack contains the + * return value or exception instance. For example: + * + *
      +     *   public void onMethodExit(int opcode) {
      +     *     if(opcode==RETURN) {
      +     *         visitInsn(ACONST_NULL);
      +     *     } else if(opcode==ARETURN || opcode==ATHROW) {
      +     *         dup();
      +     *     } else {
      +     *         if(opcode==LRETURN || opcode==DRETURN) {
      +     *             dup2();
      +     *         } else {
      +     *             dup();
      +     *         }
      +     *         box(Type.getReturnType(this.methodDesc));
      +     *     }
      +     *     visitIntInsn(SIPUSH, opcode);
      +     *     visitMethodInsn(INVOKESTATIC, owner, "onExit", "(Ljava/lang/Object;I)V");
      +     *   }
      +     *
      +     *   // an actual call back method
      +     *   public static void onExit(int opcode, Object param) {
      +     *     ...
      +     * 
      + * + *

      + * + * Custom code can use or change all the local variables, + * but should not change state of the stack. + * + * @param opcode one of the RETURN, IRETURN, FRETURN, + * ARETURN, LRETURN, DRETURN or ATHROW + * + */ + protected abstract void onMethodExit(int opcode); + + // TODO onException, onMethodCall + +} + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java new file mode 100644 index 00000000000..de7cdc4bf64 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java @@ -0,0 +1,211 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; + +/** + * An empty implementation of the ASM visitor interfaces. + * + * @author Eric Bruneton + */ +public class EmptyVisitor implements + ClassVisitor, + FieldVisitor, + MethodVisitor, + AnnotationVisitor +{ + + public void visit( + int version, + int access, + String name, + String signature, + String superName, + String[] interfaces) + { + } + + public void visitSource(String source, String debug) { + } + + public void visitOuterClass(String owner, String name, String desc) { + } + + public AnnotationVisitor visitAnnotation(String desc, boolean visible) { + return this; + } + + public void visitAttribute(Attribute attr) { + } + + public void visitInnerClass( + String name, + String outerName, + String innerName, + int access) + { + } + + public FieldVisitor visitField( + int access, + String name, + String desc, + String signature, + Object value) + { + return this; + } + + public MethodVisitor visitMethod( + int access, + String name, + String desc, + String signature, + String[] exceptions) + { + return this; + } + + public void visitEnd() { + } + + public AnnotationVisitor visitAnnotationDefault() { + return this; + } + + public AnnotationVisitor visitParameterAnnotation( + int parameter, + String desc, + boolean visible) + { + return this; + } + + public void visitCode() { + } + + public void visitInsn(int opcode) { + } + + public void visitIntInsn(int opcode, int operand) { + } + + public void visitVarInsn(int opcode, int var) { + } + + public void visitTypeInsn(int opcode, String desc) { + } + + public void visitFieldInsn( + int opcode, + String owner, + String name, + String desc) + { + } + + public void visitMethodInsn( + int opcode, + String owner, + String name, + String desc) + { + } + + public void visitJumpInsn(int opcode, Label label) { + } + + public void visitLabel(Label label) { + } + + public void visitLdcInsn(Object cst) { + } + + public void visitIincInsn(int var, int increment) { + } + + public void visitTableSwitchInsn( + int min, + int max, + Label dflt, + Label labels[]) + { + } + + public void visitLookupSwitchInsn(Label dflt, int keys[], Label labels[]) { + } + + public void visitMultiANewArrayInsn(String desc, int dims) { + } + + public void visitTryCatchBlock( + Label start, + Label end, + Label handler, + String type) + { + } + + public void visitLocalVariable( + String name, + String desc, + String signature, + Label start, + Label end, + int index) + { + } + + public void visitLineNumber(int line, Label start) { + } + + public void visitMaxs(int maxStack, int maxLocals) { + } + + public void visit(String name, Object value) { + } + + public void visitEnum(String name, String desc, String value) { + } + + public AnnotationVisitor visitAnnotation(String name, String desc) { + return this; + } + + public AnnotationVisitor visitArray(String name) { + return this; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java new file mode 100644 index 00000000000..40b4db57779 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java @@ -0,0 +1,1454 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +/** + * A {@link org.objectweb.asm.MethodAdapter} with convenient methods to generate + * code. For example, using this adapter, the class below + * + *
      + * public class Example {
      + *     public static void main(String[] args) {
      + *         System.out.println("Hello world!");
      + *     }
      + * }
      + * 
      + * + * can be generated as follows: + * + *
      + * ClassWriter cw = new ClassWriter(true);
      + * cw.visit(V1_1, ACC_PUBLIC, "Example", null, "java/lang/Object", null);
      + * 
      + * Method m = Method.getMethod("void <init> ()");
      + * GeneratorAdapter mg = new GeneratorAdapter(ACC_PUBLIC, m, null, null, cw);
      + * mg.loadThis();
      + * mg.invokeConstructor(Type.getType(Object.class), m);
      + * mg.returnValue();
      + * mg.endMethod();
      + * 
      + * m = Method.getMethod("void main (String[])");
      + * mg = new GeneratorAdapter(ACC_PUBLIC + ACC_STATIC, m, null, null, cw);
      + * mg.getStatic(Type.getType(System.class), "out", Type.getType(PrintStream.class));
      + * mg.push("Hello world!");
      + * mg.invokeVirtual(Type.getType(PrintStream.class), Method.getMethod("void println (String)"));
      + * mg.returnValue();
      + * mg.endMethod();
      + * 
      + * cw.visitEnd();
      + * 
      + * + * @author Juozas Baliuka + * @author Chris Nokleberg + * @author Eric Bruneton + */ +public class GeneratorAdapter extends LocalVariablesSorter { + + private final static Type BYTE_TYPE = Type.getType("Ljava/lang/Byte;"); + + private final static Type BOOLEAN_TYPE = Type.getType("Ljava/lang/Boolean;"); + + private final static Type SHORT_TYPE = Type.getType("Ljava/lang/Short;"); + + private final static Type CHARACTER_TYPE = Type.getType("Ljava/lang/Character;"); + + private final static Type INTEGER_TYPE = Type.getType("Ljava/lang/Integer;"); + + private final static Type FLOAT_TYPE = Type.getType("Ljava/lang/Float;"); + + private final static Type LONG_TYPE = Type.getType("Ljava/lang/Long;"); + + private final static Type DOUBLE_TYPE = Type.getType("Ljava/lang/Double;"); + + private final static Type NUMBER_TYPE = Type.getType("Ljava/lang/Number;"); + + private final static Type OBJECT_TYPE = Type.getType("Ljava/lang/Object;"); + + private final static Method BOOLEAN_VALUE = Method.getMethod("boolean booleanValue()"); + + private final static Method CHAR_VALUE = Method.getMethod("char charValue()"); + + private final static Method INT_VALUE = Method.getMethod("int intValue()"); + + private final static Method FLOAT_VALUE = Method.getMethod("float floatValue()"); + + private final static Method LONG_VALUE = Method.getMethod("long longValue()"); + + private final static Method DOUBLE_VALUE = Method.getMethod("double doubleValue()"); + + /** + * Constant for the {@link #math math} method. + */ + public final static int ADD = Opcodes.IADD; + + /** + * Constant for the {@link #math math} method. + */ + public final static int SUB = Opcodes.ISUB; + + /** + * Constant for the {@link #math math} method. + */ + public final static int MUL = Opcodes.IMUL; + + /** + * Constant for the {@link #math math} method. + */ + public final static int DIV = Opcodes.IDIV; + + /** + * Constant for the {@link #math math} method. + */ + public final static int REM = Opcodes.IREM; + + /** + * Constant for the {@link #math math} method. + */ + public final static int NEG = Opcodes.INEG; + + /** + * Constant for the {@link #math math} method. + */ + public final static int SHL = Opcodes.ISHL; + + /** + * Constant for the {@link #math math} method. + */ + public final static int SHR = Opcodes.ISHR; + + /** + * Constant for the {@link #math math} method. + */ + public final static int USHR = Opcodes.IUSHR; + + /** + * Constant for the {@link #math math} method. + */ + public final static int AND = Opcodes.IAND; + + /** + * Constant for the {@link #math math} method. + */ + public final static int OR = Opcodes.IOR; + + /** + * Constant for the {@link #math math} method. + */ + public final static int XOR = Opcodes.IXOR; + + /** + * Constant for the {@link #ifCmp ifCmp} method. + */ + public final static int EQ = Opcodes.IFEQ; + + /** + * Constant for the {@link #ifCmp ifCmp} method. + */ + public final static int NE = Opcodes.IFNE; + + /** + * Constant for the {@link #ifCmp ifCmp} method. + */ + public final static int LT = Opcodes.IFLT; + + /** + * Constant for the {@link #ifCmp ifCmp} method. + */ + public final static int GE = Opcodes.IFGE; + + /** + * Constant for the {@link #ifCmp ifCmp} method. + */ + public final static int GT = Opcodes.IFGT; + + /** + * Constant for the {@link #ifCmp ifCmp} method. + */ + public final static int LE = Opcodes.IFLE; + + /** + * Access flags of the method visited by this adapter. + */ + private final int access; + + /** + * Return type of the method visited by this adapter. + */ + private final Type returnType; + + /** + * Argument types of the method visited by this adapter. + */ + private final Type[] argumentTypes; + + /** + * Types of the local variables of the method visited by this adapter. + */ + private final List localTypes; + + /** + * Creates a new {@link GeneratorAdapter}. + * + * @param mv the method visitor to which this adapter delegates calls. + * @param access the method's access flags (see {@link Opcodes}). + * @param name the method's name. + * @param desc the method's descriptor (see {@link Type Type}). + */ + public GeneratorAdapter( + MethodVisitor mv, + int access, + String name, + String desc) + { + super(access, desc, mv); + this.access = access; + this.returnType = Type.getReturnType(desc); + this.argumentTypes = Type.getArgumentTypes(desc); + this.localTypes = new ArrayList(); + } + + /** + * Creates a new {@link GeneratorAdapter}. + * + * @param access access flags of the adapted method. + * @param method the adapted method. + * @param mv the method visitor to which this adapter delegates calls. + */ + public GeneratorAdapter( + final int access, + final Method method, + final MethodVisitor mv) + { + super(access, method.getDescriptor(), mv); + this.access = access; + this.returnType = method.getReturnType(); + this.argumentTypes = method.getArgumentTypes(); + this.localTypes = new ArrayList(); + } + + /** + * Creates a new {@link GeneratorAdapter}. + * + * @param access access flags of the adapted method. + * @param method the adapted method. + * @param signature the signature of the adapted method (may be + * null). + * @param exceptions the exceptions thrown by the adapted method (may be + * null). + * @param cv the class visitor to which this adapter delegates calls. + */ + public GeneratorAdapter( + final int access, + final Method method, + final String signature, + final Type[] exceptions, + final ClassVisitor cv) + { + this(access, method, cv.visitMethod(access, + method.getName(), + method.getDescriptor(), + signature, + getInternalNames(exceptions))); + } + + /** + * Returns the internal names of the given types. + * + * @param types a set of types. + * @return the internal names of the given types. + */ + private static String[] getInternalNames(final Type[] types) { + if (types == null) { + return null; + } + String[] names = new String[types.length]; + for (int i = 0; i < names.length; ++i) { + names[i] = types[i].getInternalName(); + } + return names; + } + + // ------------------------------------------------------------------------ + // Instructions to push constants on the stack + // ------------------------------------------------------------------------ + + /** + * Generates the instruction to push the given value on the stack. + * + * @param value the value to be pushed on the stack. + */ + public void push(final boolean value) { + push(value ? 1 : 0); + } + + /** + * Generates the instruction to push the given value on the stack. + * + * @param value the value to be pushed on the stack. + */ + public void push(final int value) { + if (value >= -1 && value <= 5) { + mv.visitInsn(Opcodes.ICONST_0 + value); + } else if (value >= Byte.MIN_VALUE && value <= Byte.MAX_VALUE) { + mv.visitIntInsn(Opcodes.BIPUSH, value); + } else if (value >= Short.MIN_VALUE && value <= Short.MAX_VALUE) { + mv.visitIntInsn(Opcodes.SIPUSH, value); + } else { + mv.visitLdcInsn(new Integer(value)); + } + } + + /** + * Generates the instruction to push the given value on the stack. + * + * @param value the value to be pushed on the stack. + */ + public void push(final long value) { + if (value == 0L || value == 1L) { + mv.visitInsn(Opcodes.LCONST_0 + (int) value); + } else { + mv.visitLdcInsn(new Long(value)); + } + } + + /** + * Generates the instruction to push the given value on the stack. + * + * @param value the value to be pushed on the stack. + */ + public void push(final float value) { + int bits = Float.floatToIntBits(value); + if (bits == 0L || bits == 0x3f800000 || bits == 0x40000000) { // 0..2 + mv.visitInsn(Opcodes.FCONST_0 + (int) value); + } else { + mv.visitLdcInsn(new Float(value)); + } + } + + /** + * Generates the instruction to push the given value on the stack. + * + * @param value the value to be pushed on the stack. + */ + public void push(final double value) { + long bits = Double.doubleToLongBits(value); + if (bits == 0L || bits == 0x3ff0000000000000L) { // +0.0d and 1.0d + mv.visitInsn(Opcodes.DCONST_0 + (int) value); + } else { + mv.visitLdcInsn(new Double(value)); + } + } + + /** + * Generates the instruction to push the given value on the stack. + * + * @param value the value to be pushed on the stack. May be null. + */ + public void push(final String value) { + if (value == null) { + mv.visitInsn(Opcodes.ACONST_NULL); + } else { + mv.visitLdcInsn(value); + } + } + + /** + * Generates the instruction to push the given value on the stack. + * + * @param value the value to be pushed on the stack. + */ + public void push(final Type value) { + if (value == null) { + mv.visitInsn(Opcodes.ACONST_NULL); + } else { + mv.visitLdcInsn(value); + } + } + + // ------------------------------------------------------------------------ + // Instructions to load and store method arguments + // ------------------------------------------------------------------------ + + /** + * Returns the index of the given method argument in the frame's local + * variables array. + * + * @param arg the index of a method argument. + * @return the index of the given method argument in the frame's local + * variables array. + */ + private int getArgIndex(final int arg) { + int index = ((access & Opcodes.ACC_STATIC) == 0 ? 1 : 0); + for (int i = 0; i < arg; i++) { + index += argumentTypes[i].getSize(); + } + return index; + } + + /** + * Generates the instruction to push a local variable on the stack. + * + * @param type the type of the local variable to be loaded. + * @param index an index in the frame's local variables array. + */ + private void loadInsn(final Type type, final int index) { + mv.visitVarInsn(type.getOpcode(Opcodes.ILOAD), index); + } + + /** + * Generates the instruction to store the top stack value in a local + * variable. + * + * @param type the type of the local variable to be stored. + * @param index an index in the frame's local variables array. + */ + private void storeInsn(final Type type, final int index) { + mv.visitVarInsn(type.getOpcode(Opcodes.ISTORE), index); + } + + /** + * Generates the instruction to load 'this' on the stack. + */ + public void loadThis() { + if ((access & Opcodes.ACC_STATIC) != 0) { + throw new IllegalStateException("no 'this' pointer within static method"); + } + mv.visitVarInsn(Opcodes.ALOAD, 0); + } + + /** + * Generates the instruction to load the given method argument on the stack. + * + * @param arg the index of a method argument. + */ + public void loadArg(final int arg) { + loadInsn(argumentTypes[arg], getArgIndex(arg)); + } + + /** + * Generates the instructions to load the given method arguments on the + * stack. + * + * @param arg the index of the first method argument to be loaded. + * @param count the number of method arguments to be loaded. + */ + public void loadArgs(final int arg, final int count) { + int index = getArgIndex(arg); + for (int i = 0; i < count; ++i) { + Type t = argumentTypes[arg + i]; + loadInsn(t, index); + index += t.getSize(); + } + } + + /** + * Generates the instructions to load all the method arguments on the stack. + */ + public void loadArgs() { + loadArgs(0, argumentTypes.length); + } + + /** + * Generates the instructions to load all the method arguments on the stack, + * as a single object array. + */ + public void loadArgArray() { + push(argumentTypes.length); + newArray(OBJECT_TYPE); + for (int i = 0; i < argumentTypes.length; i++) { + dup(); + push(i); + loadArg(i); + box(argumentTypes[i]); + arrayStore(OBJECT_TYPE); + } + } + + /** + * Generates the instruction to store the top stack value in the given + * method argument. + * + * @param arg the index of a method argument. + */ + public void storeArg(final int arg) { + storeInsn(argumentTypes[arg], getArgIndex(arg)); + } + + // ------------------------------------------------------------------------ + // Instructions to load and store local variables + // ------------------------------------------------------------------------ + + /** + * Creates a new local variable of the given type. + * + * @param type the type of the local variable to be created. + * @return the identifier of the newly created local variable. + */ + public int newLocal(final Type type) { + int local = super.newLocal(type.getSize()); + setLocalType(local, type); + return local; + } + + /** + * Returns the type of the given local variable. + * + * @param local a local variable identifier, as returned by {@link #newLocal + * newLocal}. + * @return the type of the given local variable. + */ + public Type getLocalType(final int local) { + return (Type) localTypes.get(local - firstLocal); + } + + /** + * Sets the current type of the given local variable. + * + * @param local a local variable identifier, as returned by {@link #newLocal + * newLocal}. + * @param type the type of the value being stored in the local variable + */ + private void setLocalType(final int local, final Type type) { + int index = local - firstLocal; + while (localTypes.size() < index + 1) + localTypes.add(null); + localTypes.set(index, type); + } + + /** + * Generates the instruction to load the given local variable on the stack. + * + * @param local a local variable identifier, as returned by {@link #newLocal + * newLocal}. + */ + public void loadLocal(final int local) { + loadInsn(getLocalType(local), local); + } + + /** + * Generates the instruction to load the given local variable on the stack. + * + * @param local a local variable identifier, as returned by {@link #newLocal + * newLocal}. + * @param type the type of this local variable. + */ + public void loadLocal(final int local, final Type type) { + setLocalType(local, type); + loadInsn(type, local); + } + + /** + * Generates the instruction to store the top stack value in the given local + * variable. + * + * @param local a local variable identifier, as returned by {@link #newLocal + * newLocal}. + */ + public void storeLocal(final int local) { + storeInsn(getLocalType(local), local); + } + + /** + * Generates the instruction to store the top stack value in the given local + * variable. + * + * @param local a local variable identifier, as returned by {@link #newLocal + * newLocal}. + * @param type the type of this local variable. + */ + public void storeLocal(final int local, final Type type) { + setLocalType(local, type); + storeInsn(type, local); + } + + /** + * Generates the instruction to load an element from an array. + * + * @param type the type of the array element to be loaded. + */ + public void arrayLoad(final Type type) { + mv.visitInsn(type.getOpcode(Opcodes.IALOAD)); + } + + /** + * Generates the instruction to store an element in an array. + * + * @param type the type of the array element to be stored. + */ + public void arrayStore(final Type type) { + mv.visitInsn(type.getOpcode(Opcodes.IASTORE)); + } + + // ------------------------------------------------------------------------ + // Instructions to manage the stack + // ------------------------------------------------------------------------ + + /** + * Generates a POP instruction. + */ + public void pop() { + mv.visitInsn(Opcodes.POP); + } + + /** + * Generates a POP2 instruction. + */ + public void pop2() { + mv.visitInsn(Opcodes.POP2); + } + + /** + * Generates a DUP instruction. + */ + public void dup() { + mv.visitInsn(Opcodes.DUP); + } + + /** + * Generates a DUP2 instruction. + */ + public void dup2() { + mv.visitInsn(Opcodes.DUP2); + } + + /** + * Generates a DUP_X1 instruction. + */ + public void dupX1() { + mv.visitInsn(Opcodes.DUP_X1); + } + + /** + * Generates a DUP_X2 instruction. + */ + public void dupX2() { + mv.visitInsn(Opcodes.DUP_X2); + } + + /** + * Generates a DUP2_X1 instruction. + */ + public void dup2X1() { + mv.visitInsn(Opcodes.DUP2_X1); + } + + /** + * Generates a DUP2_X2 instruction. + */ + public void dup2X2() { + mv.visitInsn(Opcodes.DUP2_X2); + } + + /** + * Generates a SWAP instruction. + */ + public void swap() { + mv.visitInsn(Opcodes.SWAP); + } + + /** + * Generates the instructions to swap the top two stack values. + * + * @param prev type of the top - 1 stack value. + * @param type type of the top stack value. + */ + public void swap(final Type prev, final Type type) { + if (type.getSize() == 1) { + if (prev.getSize() == 1) { + swap(); // same as dupX1(), pop(); + } else { + dupX2(); + pop(); + } + } else { + if (prev.getSize() == 1) { + dup2X1(); + pop2(); + } else { + dup2X2(); + pop2(); + } + } + } + + // ------------------------------------------------------------------------ + // Instructions to do mathematical and logical operations + // ------------------------------------------------------------------------ + + /** + * Generates the instruction to do the specified mathematical or logical + * operation. + * + * @param op a mathematical or logical operation. Must be one of ADD, SUB, + * MUL, DIV, REM, NEG, SHL, SHR, USHR, AND, OR, XOR. + * @param type the type of the operand(s) for this operation. + */ + public void math(final int op, final Type type) { + mv.visitInsn(type.getOpcode(op)); + } + + /** + * Generates the instructions to compute the bitwise negation of the top + * stack value. + */ + public void not() { + mv.visitInsn(Opcodes.ICONST_1); + mv.visitInsn(Opcodes.IXOR); + } + + /** + * Generates the instruction to increment the given local variable. + * + * @param local the local variable to be incremented. + * @param amount the amount by which the local variable must be incremented. + */ + public void iinc(final int local, final int amount) { + mv.visitIincInsn(local, amount); + } + + /** + * Generates the instructions to cast a numerical value from one type to + * another. + * + * @param from the type of the top stack value + * @param to the type into which this value must be cast. + */ + public void cast(final Type from, final Type to) { + if (from != to) { + if (from == Type.DOUBLE_TYPE) { + if (to == Type.FLOAT_TYPE) { + mv.visitInsn(Opcodes.D2F); + } else if (to == Type.LONG_TYPE) { + mv.visitInsn(Opcodes.D2L); + } else { + mv.visitInsn(Opcodes.D2I); + cast(Type.INT_TYPE, to); + } + } else if (from == Type.FLOAT_TYPE) { + if (to == Type.DOUBLE_TYPE) { + mv.visitInsn(Opcodes.F2D); + } else if (to == Type.LONG_TYPE) { + mv.visitInsn(Opcodes.F2L); + } else { + mv.visitInsn(Opcodes.F2I); + cast(Type.INT_TYPE, to); + } + } else if (from == Type.LONG_TYPE) { + if (to == Type.DOUBLE_TYPE) { + mv.visitInsn(Opcodes.L2D); + } else if (to == Type.FLOAT_TYPE) { + mv.visitInsn(Opcodes.L2F); + } else { + mv.visitInsn(Opcodes.L2I); + cast(Type.INT_TYPE, to); + } + } else { + if (to == Type.BYTE_TYPE) { + mv.visitInsn(Opcodes.I2B); + } else if (to == Type.CHAR_TYPE) { + mv.visitInsn(Opcodes.I2C); + } else if (to == Type.DOUBLE_TYPE) { + mv.visitInsn(Opcodes.I2D); + } else if (to == Type.FLOAT_TYPE) { + mv.visitInsn(Opcodes.I2F); + } else if (to == Type.LONG_TYPE) { + mv.visitInsn(Opcodes.I2L); + } else if (to == Type.SHORT_TYPE) { + mv.visitInsn(Opcodes.I2S); + } + } + } + } + + // ------------------------------------------------------------------------ + // Instructions to do boxing and unboxing operations + // ------------------------------------------------------------------------ + + /** + * Generates the instructions to box the top stack value. This value is + * replaced by its boxed equivalent on top of the stack. + * + * @param type the type of the top stack value. + */ + public void box(final Type type) { + if (type.getSort() == Type.OBJECT || type.getSort() == Type.ARRAY) { + return; + } + if (type == Type.VOID_TYPE) { + push((String) null); + } else { + Type boxed = type; + switch (type.getSort()) { + case Type.BYTE: + boxed = BYTE_TYPE; + break; + case Type.BOOLEAN: + boxed = BOOLEAN_TYPE; + break; + case Type.SHORT: + boxed = SHORT_TYPE; + break; + case Type.CHAR: + boxed = CHARACTER_TYPE; + break; + case Type.INT: + boxed = INTEGER_TYPE; + break; + case Type.FLOAT: + boxed = FLOAT_TYPE; + break; + case Type.LONG: + boxed = LONG_TYPE; + break; + case Type.DOUBLE: + boxed = DOUBLE_TYPE; + break; + } + newInstance(boxed); + if (type.getSize() == 2) { + // Pp -> Ppo -> oPpo -> ooPpo -> ooPp -> o + dupX2(); + dupX2(); + pop(); + } else { + // p -> po -> opo -> oop -> o + dupX1(); + swap(); + } + invokeConstructor(boxed, new Method("", + Type.VOID_TYPE, + new Type[] { type })); + } + } + + /** + * Generates the instructions to unbox the top stack value. This value is + * replaced by its unboxed equivalent on top of the stack. + * + * @param type the type of the top stack value. + */ + public void unbox(final Type type) { + Type t = NUMBER_TYPE; + Method sig = null; + switch (type.getSort()) { + case Type.VOID: + return; + case Type.CHAR: + t = CHARACTER_TYPE; + sig = CHAR_VALUE; + break; + case Type.BOOLEAN: + t = BOOLEAN_TYPE; + sig = BOOLEAN_VALUE; + break; + case Type.DOUBLE: + sig = DOUBLE_VALUE; + break; + case Type.FLOAT: + sig = FLOAT_VALUE; + break; + case Type.LONG: + sig = LONG_VALUE; + break; + case Type.INT: + case Type.SHORT: + case Type.BYTE: + sig = INT_VALUE; + } + if (sig == null) { + checkCast(type); + } else { + checkCast(t); + invokeVirtual(t, sig); + } + } + + // ------------------------------------------------------------------------ + // Instructions to jump to other instructions + // ------------------------------------------------------------------------ + + /** + * Creates a new {@link Label}. + * + * @return a new {@link Label}. + */ + public Label newLabel() { + return new Label(); + } + + /** + * Marks the current code position with the given label. + * + * @param label a label. + */ + public void mark(final Label label) { + mv.visitLabel(label); + } + + /** + * Marks the current code position with a new label. + * + * @return the label that was created to mark the current code position. + */ + public Label mark() { + Label label = new Label(); + mv.visitLabel(label); + return label; + } + + /** + * Generates the instructions to jump to a label based on the comparison of + * the top two stack values. + * + * @param type the type of the top two stack values. + * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT, + * LE. + * @param label where to jump if the comparison result is true. + */ + public void ifCmp(final Type type, final int mode, final Label label) { + int intOp = -1; + int jumpMode = mode; + switch (mode) { + case GE: + jumpMode = LT; + break; + case LE: + jumpMode = GT; + break; + } + switch (type.getSort()) { + case Type.LONG: + mv.visitInsn(Opcodes.LCMP); + break; + case Type.DOUBLE: + mv.visitInsn(Opcodes.DCMPG); + break; + case Type.FLOAT: + mv.visitInsn(Opcodes.FCMPG); + break; + case Type.ARRAY: + case Type.OBJECT: + switch (mode) { + case EQ: + mv.visitJumpInsn(Opcodes.IF_ACMPEQ, label); + return; + case NE: + mv.visitJumpInsn(Opcodes.IF_ACMPNE, label); + return; + } + throw new IllegalArgumentException("Bad comparison for type " + + type); + default: + switch (mode) { + case EQ: + intOp = Opcodes.IF_ICMPEQ; + break; + case NE: + intOp = Opcodes.IF_ICMPNE; + break; + case GE: + intOp = Opcodes.IF_ICMPGE; + break; + case LT: + intOp = Opcodes.IF_ICMPLT; + break; + case LE: + intOp = Opcodes.IF_ICMPLE; + break; + case GT: + intOp = Opcodes.IF_ICMPGT; + break; + } + mv.visitJumpInsn(intOp, label); + return; + } + mv.visitJumpInsn(jumpMode, label); + } + + /** + * Generates the instructions to jump to a label based on the comparison of + * the top two integer stack values. + * + * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT, + * LE. + * @param label where to jump if the comparison result is true. + */ + public void ifICmp(final int mode, final Label label) { + ifCmp(Type.INT_TYPE, mode, label); + } + + /** + * Generates the instructions to jump to a label based on the comparison of + * the top integer stack value with zero. + * + * @param mode how these values must be compared. One of EQ, NE, LT, GE, GT, + * LE. + * @param label where to jump if the comparison result is true. + */ + public void ifZCmp(final int mode, final Label label) { + mv.visitJumpInsn(mode, label); + } + + /** + * Generates the instruction to jump to the given label if the top stack + * value is null. + * + * @param label where to jump if the condition is true. + */ + public void ifNull(final Label label) { + mv.visitJumpInsn(Opcodes.IFNULL, label); + } + + /** + * Generates the instruction to jump to the given label if the top stack + * value is not null. + * + * @param label where to jump if the condition is true. + */ + public void ifNonNull(final Label label) { + mv.visitJumpInsn(Opcodes.IFNONNULL, label); + } + + /** + * Generates the instruction to jump to the given label. + * + * @param label where to jump if the condition is true. + */ + public void goTo(final Label label) { + mv.visitJumpInsn(Opcodes.GOTO, label); + } + + /** + * Generates a RET instruction. + * + * @param local a local variable identifier, as returned by {@link #newLocal + * newLocal}. + */ + public void ret(final int local) { + mv.visitVarInsn(Opcodes.RET, local); + } + + /** + * Generates the instructions for a switch statement. + * + * @param keys the switch case keys. + * @param generator a generator to generate the code for the switch cases. + */ + public void tableSwitch( + final int[] keys, + final TableSwitchGenerator generator) + { + float density; + if (keys.length == 0) { + density = 0; + } else { + density = (float) keys.length + / (keys[keys.length - 1] - keys[0] + 1); + } + tableSwitch(keys, generator, density >= 0.5f); + } + + /** + * Generates the instructions for a switch statement. + * + * @param keys the switch case keys. + * @param generator a generator to generate the code for the switch cases. + * @param useTable true to use a TABLESWITCH instruction, or + * false to use a LOOKUPSWITCH instruction. + */ + public void tableSwitch( + final int[] keys, + final TableSwitchGenerator generator, + final boolean useTable) + { + for (int i = 1; i < keys.length; ++i) { + if (keys[i] < keys[i - 1]) { + throw new IllegalArgumentException("keys must be sorted ascending"); + } + } + Label def = newLabel(); + Label end = newLabel(); + if (keys.length > 0) { + int len = keys.length; + int min = keys[0]; + int max = keys[len - 1]; + int range = max - min + 1; + if (useTable) { + Label[] labels = new Label[range]; + Arrays.fill(labels, def); + for (int i = 0; i < len; ++i) { + labels[keys[i] - min] = newLabel(); + } + mv.visitTableSwitchInsn(min, max, def, labels); + for (int i = 0; i < range; ++i) { + Label label = labels[i]; + if (label != def) { + mark(label); + generator.generateCase(i + min, end); + } + } + } else { + Label[] labels = new Label[len]; + for (int i = 0; i < len; ++i) { + labels[i] = newLabel(); + } + mv.visitLookupSwitchInsn(def, keys, labels); + for (int i = 0; i < len; ++i) { + mark(labels[i]); + generator.generateCase(keys[i], end); + } + } + } + mark(def); + generator.generateDefault(); + mark(end); + } + + /** + * Generates the instruction to return the top stack value to the caller. + */ + public void returnValue() { + mv.visitInsn(returnType.getOpcode(Opcodes.IRETURN)); + } + + // ------------------------------------------------------------------------ + // Instructions to load and store fields + // ------------------------------------------------------------------------ + + /** + * Generates a get field or set field instruction. + * + * @param opcode the instruction's opcode. + * @param ownerType the class in which the field is defined. + * @param name the name of the field. + * @param fieldType the type of the field. + */ + private void fieldInsn( + final int opcode, + final Type ownerType, + final String name, + final Type fieldType) + { + mv.visitFieldInsn(opcode, + ownerType.getInternalName(), + name, + fieldType.getDescriptor()); + } + + /** + * Generates the instruction to push the value of a static field on the + * stack. + * + * @param owner the class in which the field is defined. + * @param name the name of the field. + * @param type the type of the field. + */ + public void getStatic(final Type owner, final String name, final Type type) + { + fieldInsn(Opcodes.GETSTATIC, owner, name, type); + } + + /** + * Generates the instruction to store the top stack value in a static field. + * + * @param owner the class in which the field is defined. + * @param name the name of the field. + * @param type the type of the field. + */ + public void putStatic(final Type owner, final String name, final Type type) + { + fieldInsn(Opcodes.PUTSTATIC, owner, name, type); + } + + /** + * Generates the instruction to push the value of a non static field on the + * stack. + * + * @param owner the class in which the field is defined. + * @param name the name of the field. + * @param type the type of the field. + */ + public void getField(final Type owner, final String name, final Type type) { + fieldInsn(Opcodes.GETFIELD, owner, name, type); + } + + /** + * Generates the instruction to store the top stack value in a non static + * field. + * + * @param owner the class in which the field is defined. + * @param name the name of the field. + * @param type the type of the field. + */ + public void putField(final Type owner, final String name, final Type type) { + fieldInsn(Opcodes.PUTFIELD, owner, name, type); + } + + // ------------------------------------------------------------------------ + // Instructions to invoke methods + // ------------------------------------------------------------------------ + + /** + * Generates an invoke method instruction. + * + * @param opcode the instruction's opcode. + * @param type the class in which the method is defined. + * @param method the method to be invoked. + */ + private void invokeInsn( + final int opcode, + final Type type, + final Method method) + { + String owner = type.getSort() == Type.ARRAY + ? type.getDescriptor() + : type.getInternalName(); + mv.visitMethodInsn(opcode, + owner, + method.getName(), + method.getDescriptor()); + } + + /** + * Generates the instruction to invoke a normal method. + * + * @param owner the class in which the method is defined. + * @param method the method to be invoked. + */ + public void invokeVirtual(final Type owner, final Method method) { + invokeInsn(Opcodes.INVOKEVIRTUAL, owner, method); + } + + /** + * Generates the instruction to invoke a constructor. + * + * @param type the class in which the constructor is defined. + * @param method the constructor to be invoked. + */ + public void invokeConstructor(final Type type, final Method method) { + invokeInsn(Opcodes.INVOKESPECIAL, type, method); + } + + /** + * Generates the instruction to invoke a static method. + * + * @param owner the class in which the method is defined. + * @param method the method to be invoked. + */ + public void invokeStatic(final Type owner, final Method method) { + invokeInsn(Opcodes.INVOKESTATIC, owner, method); + } + + /** + * Generates the instruction to invoke an interface method. + * + * @param owner the class in which the method is defined. + * @param method the method to be invoked. + */ + public void invokeInterface(final Type owner, final Method method) { + invokeInsn(Opcodes.INVOKEINTERFACE, owner, method); + } + + // ------------------------------------------------------------------------ + // Instructions to create objects and arrays + // ------------------------------------------------------------------------ + + /** + * Generates a type dependent instruction. + * + * @param opcode the instruction's opcode. + * @param type the instruction's operand. + */ + private void typeInsn(final int opcode, final Type type) { + String desc; + if (type.getSort() == Type.ARRAY) { + desc = type.getDescriptor(); + } else { + desc = type.getInternalName(); + } + mv.visitTypeInsn(opcode, desc); + } + + /** + * Generates the instruction to create a new object. + * + * @param type the class of the object to be created. + */ + public void newInstance(final Type type) { + typeInsn(Opcodes.NEW, type); + } + + /** + * Generates the instruction to create a new array. + * + * @param type the type of the array elements. + */ + public void newArray(final Type type) { + int typ; + switch (type.getSort()) { + case Type.BOOLEAN: + typ = Opcodes.T_BOOLEAN; + break; + case Type.CHAR: + typ = Opcodes.T_CHAR; + break; + case Type.BYTE: + typ = Opcodes.T_BYTE; + break; + case Type.SHORT: + typ = Opcodes.T_SHORT; + break; + case Type.INT: + typ = Opcodes.T_INT; + break; + case Type.FLOAT: + typ = Opcodes.T_FLOAT; + break; + case Type.LONG: + typ = Opcodes.T_LONG; + break; + case Type.DOUBLE: + typ = Opcodes.T_DOUBLE; + break; + default: + typeInsn(Opcodes.ANEWARRAY, type); + return; + } + mv.visitIntInsn(Opcodes.NEWARRAY, typ); + } + + // ------------------------------------------------------------------------ + // Miscelaneous instructions + // ------------------------------------------------------------------------ + + /** + * Generates the instruction to compute the length of an array. + */ + public void arrayLength() { + mv.visitInsn(Opcodes.ARRAYLENGTH); + } + + /** + * Generates the instruction to throw an exception. + */ + public void throwException() { + mv.visitInsn(Opcodes.ATHROW); + } + + /** + * Generates the instructions to create and throw an exception. The + * exception class must have a constructor with a single String argument. + * + * @param type the class of the exception to be thrown. + * @param msg the detailed message of the exception. + */ + public void throwException(final Type type, final String msg) { + newInstance(type); + dup(); + push(msg); + invokeConstructor(type, Method.getMethod("void (String)")); + throwException(); + } + + /** + * Generates the instruction to check that the top stack value is of the + * given type. + * + * @param type a class or interface type. + */ + public void checkCast(final Type type) { + if (!type.equals(OBJECT_TYPE)) { + typeInsn(Opcodes.CHECKCAST, type); + } + } + + /** + * Generates the instruction to test if the top stack value is of the given + * type. + * + * @param type a class or interface type. + */ + public void instanceOf(final Type type) { + typeInsn(Opcodes.INSTANCEOF, type); + } + + /** + * Generates the instruction to get the monitor of the top stack value. + */ + public void monitorEnter() { + mv.visitInsn(Opcodes.MONITORENTER); + } + + /** + * Generates the instruction to release the monitor of the top stack value. + */ + public void monitorExit() { + mv.visitInsn(Opcodes.MONITOREXIT); + } + + // ------------------------------------------------------------------------ + // Non instructions + // ------------------------------------------------------------------------ + + /** + * Marks the end of the visited method. + */ + public void endMethod() { + if ((access & Opcodes.ACC_ABSTRACT) == 0) { + mv.visitMaxs(0, 0); + } + } + + /** + * Marks the start of an exception handler. + * + * @param start beginning of the exception handler's scope (inclusive). + * @param end end of the exception handler's scope (exclusive). + * @param exception internal name of the type of exceptions handled by the + * handler. + */ + public void catchException( + final Label start, + final Label end, + final Type exception) + { + mv.visitTryCatchBlock(start, end, mark(), exception.getInternalName()); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java new file mode 100644 index 00000000000..1253a0b5170 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java @@ -0,0 +1,136 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodAdapter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +/** + * A {@link MethodAdapter} that renumbers local variables in their order of + * appearance. This adapter allows one to easily add new local variables to a + * method. + * + * @author Chris Nokleberg + * @author Eric Bruneton + */ +public class LocalVariablesSorter extends MethodAdapter { + + /** + * Mapping from old to new local variable indexes. A local variable at index + * i of size 1 is remapped to 'mapping[2*i]', while a local variable at + * index i of size 2 is remapped to 'mapping[2*i+1]'. + */ + private int[] mapping = new int[40]; + + protected final int firstLocal; + + private int nextLocal; + + public LocalVariablesSorter( + final int access, + final String desc, + final MethodVisitor mv) + { + super(mv); + Type[] args = Type.getArgumentTypes(desc); + nextLocal = ((Opcodes.ACC_STATIC & access) != 0) ? 0 : 1; + for (int i = 0; i < args.length; i++) { + nextLocal += args[i].getSize(); + } + firstLocal = nextLocal; + } + + public void visitVarInsn(final int opcode, final int var) { + int size; + switch (opcode) { + case Opcodes.LLOAD: + case Opcodes.LSTORE: + case Opcodes.DLOAD: + case Opcodes.DSTORE: + size = 2; + break; + default: + size = 1; + } + mv.visitVarInsn(opcode, remap(var, size)); + } + + public void visitIincInsn(final int var, final int increment) { + mv.visitIincInsn(remap(var, 1), increment); + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + mv.visitMaxs(maxStack, nextLocal); + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + int size = "J".equals(desc) || "D".equals(desc) ? 2 : 1; + mv.visitLocalVariable(name, desc, signature, start, end, remap(index, size)); + } + + // ------------- + + protected int newLocal(final int size) { + int var = nextLocal; + nextLocal += size; + return var; + } + + private int remap(final int var, final int size) { + if (var < firstLocal) { + return var; + } + int key = 2 * var + size - 1; + int length = mapping.length; + if (key >= length) { + int[] newMapping = new int[Math.max(2 * length, key + 1)]; + System.arraycopy(mapping, 0, newMapping, 0, length); + mapping = newMapping; + } + int value = mapping[key]; + if (value == 0) { + value = nextLocal + 1; + mapping[key] = value; + nextLocal += size; + } + return value - 1; + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java new file mode 100644 index 00000000000..741e7b5be26 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/Method.java @@ -0,0 +1,220 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import java.util.HashMap; +import java.util.Map; + +import org.objectweb.asm.Type; + +/** + * A named method descriptor. + * + * @author Juozas Baliuka + * @author Chris Nokleberg + * @author Eric Bruneton + */ +public class Method { + + /** + * The method name. + */ + private final String name; + + /** + * The method descriptor. + */ + private final String desc; + + /** + * Maps primitive Java type names to their descriptors. + */ + private final static Map DESCRIPTORS; + + static { + DESCRIPTORS = new HashMap(); + DESCRIPTORS.put("void", "V"); + DESCRIPTORS.put("byte", "B"); + DESCRIPTORS.put("char", "C"); + DESCRIPTORS.put("double", "D"); + DESCRIPTORS.put("float", "F"); + DESCRIPTORS.put("int", "I"); + DESCRIPTORS.put("long", "J"); + DESCRIPTORS.put("short", "S"); + DESCRIPTORS.put("boolean", "Z"); + } + + /** + * Creates a new {@link Method}. + * + * @param name the method's name. + * @param desc the method's descriptor. + */ + public Method(final String name, final String desc) { + this.name = name; + this.desc = desc; + } + + /** + * Creates a new {@link Method}. + * + * @param name the method's name. + * @param returnType the method's return type. + * @param argumentTypes the method's argument types. + */ + public Method( + final String name, + final Type returnType, + final Type[] argumentTypes) + { + this(name, Type.getMethodDescriptor(returnType, argumentTypes)); + } + + /** + * Returns a {@link Method} corresponding to the given Java method + * declaration. + * + * @param method a Java method declaration, without argument names, of the + * form "returnType name (argumentType1, ... argumentTypeN)", where + * the types are in plain Java (e.g. "int", "float", + * "java.util.List", ...). + * @return a {@link Method} corresponding to the given Java method + * declaration. + * @throws IllegalArgumentException if method could not get + * parsed. + */ + public static Method getMethod(final String method) + throws IllegalArgumentException + { + int space = method.indexOf(' '); + int start = method.indexOf('(', space) + 1; + int end = method.indexOf(')', start); + if (space == -1 || start == -1 || end == -1) { + throw new IllegalArgumentException(); + } + // TODO: Check validity of returnType, methodName and arguments. + String returnType = method.substring(0, space); + String methodName = method.substring(space + 1, start - 1).trim(); + StringBuffer sb = new StringBuffer(); + sb.append('('); + int p; + do { + p = method.indexOf(',', start); + if (p == -1) { + sb.append(map(method.substring(start, end).trim())); + } else { + sb.append(map(method.substring(start, p).trim())); + start = p + 1; + } + } while (p != -1); + sb.append(')'); + sb.append(map(returnType)); + return new Method(methodName, sb.toString()); + } + + private static String map(final String type) { + if (type.equals("")) { + return type; + } + + StringBuffer sb = new StringBuffer(); + int index = 0; + while ((index = type.indexOf("[]", index) + 1) > 0) { + sb.append('['); + } + + String t = type.substring(0, type.length() - sb.length() * 2); + String desc = (String) DESCRIPTORS.get(t); + if (desc != null) { + sb.append(desc); + } else { + sb.append('L'); + if (t.indexOf('.') < 0) { + sb.append("java/lang/" + t); + } else { + sb.append(t.replace('.', '/')); + } + sb.append(';'); + } + return sb.toString(); + } + + /** + * Returns the name of the method described by this object. + * + * @return the name of the method described by this object. + */ + public String getName() { + return name; + } + + /** + * Returns the descriptor of the method described by this object. + * + * @return the descriptor of the method described by this object. + */ + public String getDescriptor() { + return desc; + } + + /** + * Returns the return type of the method described by this object. + * + * @return the return type of the method described by this object. + */ + public Type getReturnType() { + return Type.getReturnType(desc); + } + + /** + * Returns the argument types of the method described by this object. + * + * @return the argument types of the method described by this object. + */ + public Type[] getArgumentTypes() { + return Type.getArgumentTypes(desc); + } + + public String toString() { + return name + desc; + } + + public boolean equals(final Object o) { + if (!(o instanceof Method)) { + return false; + } + Method other = (Method) o; + return name.equals(other.name) && desc.equals(other.desc); + } + + public int hashCode() { + return name.hashCode() ^ desc.hashCode(); + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java new file mode 100644 index 00000000000..800ad4b3cd2 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java @@ -0,0 +1,490 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.security.MessageDigest; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +import org.objectweb.asm.ClassAdapter; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +/** + * A {@link ClassAdapter} that adds a serial version unique identifier to a + * class if missing. Here is typical usage of this class: + * + *
      + *   ClassWriter cw = new ClassWriter(...);
      + *   ClassVisitor sv = new SerialVersionUIDAdder(cw);
      + *   ClassVisitor ca = new MyClassAdapter(sv);
      + *   new ClassReader(orginalClass).accept(ca, false);
      + * 
      + * + * The SVUID algorithm can be found http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/class.html: + * + *
      + * The serialVersionUID is computed using the signature of a stream of bytes
      + * that reflect the class definition. The National Institute of Standards and
      + * Technology (NIST) Secure Hash Algorithm (SHA-1) is used to compute a
      + * signature for the stream. The first two 32-bit quantities are used to form a
      + * 64-bit hash. A java.lang.DataOutputStream is used to convert primitive data
      + * types to a sequence of bytes. The values input to the stream are defined by
      + * the Java Virtual Machine (VM) specification for classes.
      + *
      + * The sequence of items in the stream is as follows:
      + *
      + * 1. The class name written using UTF encoding.
      + * 2. The class modifiers written as a 32-bit integer.
      + * 3. The name of each interface sorted by name written using UTF encoding.
      + * 4. For each field of the class sorted by field name (except private static
      + * and private transient fields):
      + * 1. The name of the field in UTF encoding.
      + * 2. The modifiers of the field written as a 32-bit integer.
      + * 3. The descriptor of the field in UTF encoding
      + * 5. If a class initializer exists, write out the following:
      + * 1. The name of the method, <clinit>, in UTF encoding.
      + * 2. The modifier of the method, java.lang.reflect.Modifier.STATIC,
      + * written as a 32-bit integer.
      + * 3. The descriptor of the method, ()V, in UTF encoding.
      + * 6. For each non-private constructor sorted by method name and signature:
      + * 1. The name of the method, <init>, in UTF encoding.
      + * 2. The modifiers of the method written as a 32-bit integer.
      + * 3. The descriptor of the method in UTF encoding.
      + * 7. For each non-private method sorted by method name and signature:
      + * 1. The name of the method in UTF encoding.
      + * 2. The modifiers of the method written as a 32-bit integer.
      + * 3. The descriptor of the method in UTF encoding.
      + * 8. The SHA-1 algorithm is executed on the stream of bytes produced by
      + * DataOutputStream and produces five 32-bit values sha[0..4].
      + *
      + * 9. The hash value is assembled from the first and second 32-bit values of 
      + * the SHA-1 message digest. If the result of the message digest, the five
      + * 32-bit words H0 H1 H2 H3 H4, is in an array of five int values named 
      + * sha, the hash value would be computed as follows:
      + *
      + * long hash = ((sha[0] >>> 24) & 0xFF) |
      + * ((sha[0] >>> 16) & 0xFF) << 8 |
      + * ((sha[0] >>> 8) & 0xFF) << 16 |
      + * ((sha[0] >>> 0) & 0xFF) << 24 |
      + * ((sha[1] >>> 24) & 0xFF) << 32 |
      + * ((sha[1] >>> 16) & 0xFF) << 40 |
      + * ((sha[1] >>> 8) & 0xFF) << 48 |
      + * ((sha[1] >>> 0) & 0xFF) << 56;
      + * 
      + * + * @author Rajendra Inamdar, Vishal Vishnoi + */ +public class SerialVersionUIDAdder extends ClassAdapter { + + /** + * Flag that indicates if we need to compute SVUID. + */ + protected boolean computeSVUID; + + /** + * Set to true if the class already has SVUID. + */ + protected boolean hasSVUID; + + /** + * Classes access flags. + */ + protected int access; + + /** + * Internal name of the class + */ + protected String name; + + /** + * Interfaces implemented by the class. + */ + protected String[] interfaces; + + /** + * Collection of fields. (except private static and private transient + * fields) + */ + protected Collection svuidFields; + + /** + * Set to true if the class has static initializer. + */ + protected boolean hasStaticInitializer; + + /** + * Collection of non-private constructors. + */ + protected Collection svuidConstructors; + + /** + * Collection of non-private methods. + */ + protected Collection svuidMethods; + + /** + * Creates a new {@link SerialVersionUIDAdder}. + * + * @param cv a {@link ClassVisitor} to which this visitor will delegate + * calls. + */ + public SerialVersionUIDAdder(final ClassVisitor cv) { + super(cv); + svuidFields = new ArrayList(); + svuidConstructors = new ArrayList(); + svuidMethods = new ArrayList(); + } + + // ------------------------------------------------------------------------ + // Overriden methods + // ------------------------------------------------------------------------ + + /* + * Visit class header and get class name, access , and intefraces + * informatoin (step 1,2, and 3) for SVUID computation. + */ + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + computeSVUID = (access & Opcodes.ACC_INTERFACE) == 0; + + if (computeSVUID) { + this.name = name; + this.access = access; + this.interfaces = interfaces; + } + + super.visit(version, access, name, signature, superName, interfaces); + } + + /* + * Visit the methods and get constructor and method information (step 5 and + * 7). Also determince if there is a class initializer (step 6). + */ + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + if (computeSVUID) { + if (name.equals("")) { + hasStaticInitializer = true; + } + /* + * Remembers non private constructors and methods for SVUID + * computation For constructor and method modifiers, only the + * ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, + * ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT and ACC_STRICT flags + * are used. + */ + int mods = access + & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PRIVATE + | Opcodes.ACC_PROTECTED | Opcodes.ACC_STATIC + | Opcodes.ACC_FINAL | Opcodes.ACC_SYNCHRONIZED + | Opcodes.ACC_NATIVE | Opcodes.ACC_ABSTRACT | Opcodes.ACC_STRICT); + + // all non private methods + if ((access & Opcodes.ACC_PRIVATE) == 0) { + if (name.equals("")) { + svuidConstructors.add(new Item(name, mods, desc)); + } else if (!name.equals("")) { + svuidMethods.add(new Item(name, mods, desc)); + } + } + } + + return cv.visitMethod(access, name, desc, signature, exceptions); + } + + /* + * Gets class field information for step 4 of the alogrithm. Also determines + * if the class already has a SVUID. + */ + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + if (computeSVUID) { + if (name.equals("serialVersionUID")) { + // since the class already has SVUID, we won't be computing it. + computeSVUID = false; + hasSVUID = true; + } + /* + * Remember field for SVUID computation For field modifiers, only + * the ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, + * ACC_FINAL, ACC_VOLATILE, and ACC_TRANSIENT flags are used when + * computing serialVersionUID values. + */ + int mods = access + & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PRIVATE + | Opcodes.ACC_PROTECTED | Opcodes.ACC_STATIC + | Opcodes.ACC_FINAL | Opcodes.ACC_VOLATILE | Opcodes.ACC_TRANSIENT); + + if (((access & Opcodes.ACC_PRIVATE) == 0) + || ((access & (Opcodes.ACC_STATIC | Opcodes.ACC_TRANSIENT)) == 0)) + { + svuidFields.add(new Item(name, mods, desc)); + } + } + + return super.visitField(access, name, desc, signature, value); + } + + /* + * Add the SVUID if class doesn't have one + */ + public void visitEnd() { + // compute SVUID and add it to the class + if (computeSVUID && !hasSVUID) { + try { + cv.visitField(Opcodes.ACC_FINAL + Opcodes.ACC_STATIC, + "serialVersionUID", + "J", + null, + new Long(computeSVUID())); + } catch (Throwable e) { + throw new RuntimeException("Error while computing SVUID for " + + name, e); + } + } + + super.visitEnd(); + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + /** + * Returns the value of SVUID if the class doesn't have one already. Please + * note that 0 is returned if the class already has SVUID, thus use + * isHasSVUID to determine if the class already had an SVUID. + * + * @return Returns the serial version UID + * @throws IOException + */ + protected long computeSVUID() throws IOException { + if (hasSVUID) { + return 0; + } + + ByteArrayOutputStream bos = null; + DataOutputStream dos = null; + long svuid = 0; + + try { + bos = new ByteArrayOutputStream(); + dos = new DataOutputStream(bos); + + /* + * 1. The class name written using UTF encoding. + */ + dos.writeUTF(name.replace('/', '.')); + + /* + * 2. The class modifiers written as a 32-bit integer. + */ + dos.writeInt(access + & (Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL + | Opcodes.ACC_INTERFACE | Opcodes.ACC_ABSTRACT)); + + /* + * 3. The name of each interface sorted by name written using UTF + * encoding. + */ + Arrays.sort(interfaces); + for (int i = 0; i < interfaces.length; i++) { + dos.writeUTF(interfaces[i].replace('/', '.')); + } + + /* + * 4. For each field of the class sorted by field name (except + * private static and private transient fields): + * + * 1. The name of the field in UTF encoding. 2. The modifiers of the + * field written as a 32-bit integer. 3. The descriptor of the field + * in UTF encoding + * + * Note that field signatutes are not dot separated. Method and + * constructor signatures are dot separated. Go figure... + */ + writeItems(svuidFields, dos, false); + + /* + * 5. If a class initializer exists, write out the following: 1. The + * name of the method, , in UTF encoding. 2. The modifier of + * the method, java.lang.reflect.Modifier.STATIC, written as a + * 32-bit integer. 3. The descriptor of the method, ()V, in UTF + * encoding. + */ + if (hasStaticInitializer) { + dos.writeUTF(""); + dos.writeInt(Opcodes.ACC_STATIC); + dos.writeUTF("()V"); + } // if.. + + /* + * 6. For each non-private constructor sorted by method name and + * signature: 1. The name of the method, , in UTF encoding. 2. + * The modifiers of the method written as a 32-bit integer. 3. The + * descriptor of the method in UTF encoding. + */ + writeItems(svuidConstructors, dos, true); + + /* + * 7. For each non-private method sorted by method name and + * signature: 1. The name of the method in UTF encoding. 2. The + * modifiers of the method written as a 32-bit integer. 3. The + * descriptor of the method in UTF encoding. + */ + writeItems(svuidMethods, dos, true); + + dos.flush(); + + /* + * 8. The SHA-1 algorithm is executed on the stream of bytes + * produced by DataOutputStream and produces five 32-bit values + * sha[0..4]. + */ + byte[] hashBytes = computeSHAdigest(bos.toByteArray()); + + /* + * 9. The hash value is assembled from the first and second 32-bit + * values of the SHA-1 message digest. If the result of the message + * digest, the five 32-bit words H0 H1 H2 H3 H4, is in an array of + * five int values named sha, the hash value would be computed as + * follows: + * + * long hash = ((sha[0] >>> 24) & 0xFF) | ((sha[0] >>> 16) & 0xFF) << + * 8 | ((sha[0] >>> 8) & 0xFF) << 16 | ((sha[0] >>> 0) & 0xFF) << + * 24 | ((sha[1] >>> 24) & 0xFF) << 32 | ((sha[1] >>> 16) & 0xFF) << + * 40 | ((sha[1] >>> 8) & 0xFF) << 48 | ((sha[1] >>> 0) & 0xFF) << + * 56; + */ + for (int i = Math.min(hashBytes.length, 8) - 1; i >= 0; i--) { + svuid = (svuid << 8) | (hashBytes[i] & 0xFF); + } + } finally { + // close the stream (if open) + if (dos != null) { + dos.close(); + } + } + + return svuid; + } + + /** + * Returns the SHA-1 message digest of the given value. + * + * @param value the value whose SHA message digest must be computed. + * @return the SHA-1 message digest of the given value. + */ + protected byte[] computeSHAdigest(byte[] value) { + try { + return MessageDigest.getInstance("SHA").digest(value); + } catch (Exception e) { + throw new UnsupportedOperationException(e); + } + } + + /** + * Sorts the items in the collection and writes it to the data output stream + * + * @param itemCollection collection of items + * @param dos a DataOutputStream value + * @param dotted a boolean value + * @exception IOException if an error occurs + */ + private void writeItems( + final Collection itemCollection, + final DataOutputStream dos, + final boolean dotted) throws IOException + { + int size = itemCollection.size(); + Item items[] = (Item[]) itemCollection.toArray(new Item[size]); + Arrays.sort(items); + for (int i = 0; i < size; i++) { + dos.writeUTF(items[i].name); + dos.writeInt(items[i].access); + dos.writeUTF(dotted + ? items[i].desc.replace('/', '.') + : items[i].desc); + } + } + + // ------------------------------------------------------------------------ + // Inner classes + // ------------------------------------------------------------------------ + + static class Item implements Comparable { + + String name; + + int access; + + String desc; + + Item(final String name, final int access, final String desc) { + this.name = name; + this.access = access; + this.desc = desc; + } + + public int compareTo(final Object o) { + Item other = (Item) o; + int retVal = name.compareTo(other.name); + if (retVal == 0) { + retVal = desc.compareTo(other.desc); + } + return retVal; + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java new file mode 100644 index 00000000000..9aabe44cad2 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java @@ -0,0 +1,99 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import org.objectweb.asm.ClassAdapter; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +/** + * A {@link ClassAdapter} that merges clinit methods into a single one. + * + * @author Eric Bruneton + */ +public class StaticInitMerger extends ClassAdapter { + + private String name; + + private MethodVisitor clinit; + + private String prefix; + + private int counter; + + public StaticInitMerger(final String prefix, final ClassVisitor cv) { + super(cv); + this.prefix = prefix; + } + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + cv.visit(version, access, name, signature, superName, interfaces); + this.name = name; + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + MethodVisitor mv; + if (name.equals("")) { + int a = Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC; + String n = prefix + counter++; + mv = cv.visitMethod(a, n, desc, signature, exceptions); + + if (clinit == null) { + clinit = cv.visitMethod(a, name, desc, null, null); + } + clinit.visitMethodInsn(Opcodes.INVOKESTATIC, this.name, n, desc); + } else { + mv = cv.visitMethod(access, name, desc, signature, exceptions); + } + return mv; + } + + public void visitEnd() { + if (clinit != null) { + clinit.visitInsn(Opcodes.RETURN); + clinit.visitMaxs(0, 0); + } + cv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java new file mode 100644 index 00000000000..73d8d926bb7 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java @@ -0,0 +1,55 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.commons; + +import org.objectweb.asm.Label; + +/** + * A code generator for switch statements. + * + * @author Juozas Baliuka + * @author Chris Nokleberg + * @author Eric Bruneton + */ +public interface TableSwitchGenerator { + + /** + * Generates the code for a switch case. + * + * @param key the switch case key. + * @param end a label that corresponds to the end of the switch statement. + */ + void generateCase(int key, Label end); + + /** + * Generates the code for the default switch case. + */ + void generateDefault(); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/package.html new file mode 100644 index 00000000000..33c860bb31b --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/commons/package.html @@ -0,0 +1,33 @@ + + + +Provides some useful class and method adapters. + \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java new file mode 100644 index 00000000000..e35fead24cb --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java @@ -0,0 +1,150 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Type; + +/** + * An {@link AnnotationVisitor} that collects the {@link Constant}s of the + * annotations it visits. + * + * @author Eric Bruneton + */ +public class AnnotationConstantsCollector implements AnnotationVisitor { + + private AnnotationVisitor av; + + private ConstantPool cp; + + public AnnotationConstantsCollector( + final AnnotationVisitor av, + final ConstantPool cp) + { + this.av = av; + this.cp = cp; + } + + public void visit(final String name, final Object value) { + if (name != null) { + cp.newUTF8(name); + } + if (value instanceof Byte) { + cp.newInteger(((Byte) value).byteValue()); + } else if (value instanceof Boolean) { + cp.newInteger(((Boolean) value).booleanValue() ? 1 : 0); + } else if (value instanceof Character) { + cp.newInteger(((Character) value).charValue()); + } else if (value instanceof Short) { + cp.newInteger(((Short) value).shortValue()); + } else if (value instanceof Type) { + cp.newUTF8(((Type) value).getDescriptor()); + } else if (value instanceof byte[]) { + byte[] v = (byte[]) value; + for (int i = 0; i < v.length; i++) { + cp.newInteger(v[i]); + } + } else if (value instanceof boolean[]) { + boolean[] v = (boolean[]) value; + for (int i = 0; i < v.length; i++) { + cp.newInteger(v[i] ? 1 : 0); + } + } else if (value instanceof short[]) { + short[] v = (short[]) value; + for (int i = 0; i < v.length; i++) { + cp.newInteger(v[i]); + } + } else if (value instanceof char[]) { + char[] v = (char[]) value; + for (int i = 0; i < v.length; i++) { + cp.newInteger(v[i]); + } + } else if (value instanceof int[]) { + int[] v = (int[]) value; + for (int i = 0; i < v.length; i++) { + cp.newInteger(v[i]); + } + } else if (value instanceof long[]) { + long[] v = (long[]) value; + for (int i = 0; i < v.length; i++) { + cp.newLong(v[i]); + } + } else if (value instanceof float[]) { + float[] v = (float[]) value; + for (int i = 0; i < v.length; i++) { + cp.newFloat(v[i]); + } + } else if (value instanceof double[]) { + double[] v = (double[]) value; + for (int i = 0; i < v.length; i++) { + cp.newDouble(v[i]); + } + } else { + cp.newConst(value); + } + av.visit(name, value); + } + + public void visitEnum( + final String name, + final String desc, + final String value) + { + if (name != null) { + cp.newUTF8(name); + } + cp.newUTF8(desc); + cp.newUTF8(value); + av.visitEnum(name, desc, value); + } + + public AnnotationVisitor visitAnnotation( + final String name, + final String desc) + { + if (name != null) { + cp.newUTF8(name); + } + cp.newUTF8(desc); + return new AnnotationConstantsCollector(av.visitAnnotation(name, desc), + cp); + } + + public AnnotationVisitor visitArray(final String name) { + if (name != null) { + cp.newUTF8(name); + } + return new AnnotationConstantsCollector(av.visitArray(name), cp); + } + + public void visitEnd() { + av.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java new file mode 100644 index 00000000000..9cfc6de31ee --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java @@ -0,0 +1,212 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassAdapter; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +/** + * A {@link ClassVisitor} that collects the {@link Constant}s of the classes it + * visits. + * + * @author Eric Bruneton + */ +public class ClassConstantsCollector extends ClassAdapter { + + private ConstantPool cp; + + public ClassConstantsCollector(final ClassVisitor cv, final ConstantPool cp) + { + super(cv); + this.cp = cp; + } + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + cp.newUTF8("Deprecated"); + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0) { + cp.newUTF8("Synthetic"); + } + cp.newClass(name); + if (signature != null) { + cp.newUTF8("Signature"); + cp.newUTF8(signature); + } + if (superName != null) { + cp.newClass(superName); + } + if (interfaces != null) { + for (int i = 0; i < interfaces.length; ++i) { + cp.newClass(interfaces[i]); + } + } + cv.visit(version, access, name, signature, superName, interfaces); + } + + public void visitSource(final String source, final String debug) { + if (source != null) { + cp.newUTF8("SourceFile"); + cp.newUTF8(source); + } + if (debug != null) { + cp.newUTF8("SourceDebugExtension"); + } + cv.visitSource(source, debug); + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + cp.newUTF8("EnclosingMethod"); + cp.newClass(owner); + if (name != null && desc != null) { + cp.newNameType(name, desc); + } + cv.visitOuterClass(owner, name, desc); + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + cp.newUTF8(desc); + if (visible) { + cp.newUTF8("RuntimeVisibleAnnotations"); + } else { + cp.newUTF8("RuntimeInvisibleAnnotations"); + } + return new AnnotationConstantsCollector(cv.visitAnnotation(desc, + visible), cp); + } + + public void visitAttribute(final Attribute attr) { + // can do nothing + cv.visitAttribute(attr); + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + cp.newUTF8("InnerClasses"); + if (name != null) { + cp.newClass(name); + } + if (outerName != null) { + cp.newClass(outerName); + } + if (innerName != null) { + cp.newClass(innerName); + } + cv.visitInnerClass(name, outerName, innerName, access); + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + if ((access & Opcodes.ACC_SYNTHETIC) != 0) { + cp.newUTF8("Synthetic"); + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + cp.newUTF8("Deprecated"); + } + cp.newUTF8(name); + cp.newUTF8(desc); + if (signature != null) { + cp.newUTF8("Signature"); + cp.newUTF8(signature); + } + if (value != null) { + cp.newConst(value); + } + return new FieldConstantsCollector(cv.visitField(access, + name, + desc, + signature, + value), cp); + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + if ((access & Opcodes.ACC_SYNTHETIC) != 0) { + cp.newUTF8("Synthetic"); + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + cp.newUTF8("Deprecated"); + } + cp.newUTF8(name); + cp.newUTF8(desc); + if (signature != null) { + cp.newUTF8("Signature"); + cp.newUTF8(signature); + } + if (exceptions != null) { + cp.newUTF8("Exceptions"); + for (int i = 0; i < exceptions.length; ++i) { + cp.newClass(exceptions[i]); + } + } + return new MethodConstantsCollector(cv.visitMethod(access, + name, + desc, + signature, + exceptions), cp); + } + + public void visitEnd() { + cv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java new file mode 100644 index 00000000000..153b07ac286 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java @@ -0,0 +1,182 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassAdapter; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +/** + * A {@link ClassAdapter} that renames fields and methods, and removes debug + * info. + * + * @author Eric Bruneton + */ +public class ClassOptimizer extends ClassAdapter { + + private NameMapping mapping; + + private String className; + + private String pkgName; + + public ClassOptimizer(final ClassVisitor cv, final NameMapping mapping) { + super(cv); + this.mapping = mapping; + } + + public String getClassName() { + return className; + } + + // ------------------------------------------------------------------------ + // Overriden methods + // ------------------------------------------------------------------------ + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + className = name; + pkgName = name.substring(0, name.lastIndexOf('/')); + cv.visit(version, + access, + mapping.map(name), + null, + mapping.map(superName), + interfaces); + } + + public void visitSource(final String source, final String debug) { + // remove debug info + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + // remove debug info + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + throw new UnsupportedOperationException(); + } + + public void visitAttribute(final Attribute attr) { + // remove non standard attribute + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + // remove debug info + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + String s = className + "." + name; + if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) == 0) { + if ((access & Opcodes.ACC_FINAL) != 0 + && (access & Opcodes.ACC_STATIC) != 0 && desc.equals("I")) + { + return null; + } + if (pkgName.equals("org/objectweb/asm") + && mapping.map(s).equals(name)) + { + System.out.println("INFO: " + s + " could be renamed"); + } + cv.visitField(access, + mapping.map(s), + mapping.fix(desc), + null, + value); + } else { + if (!mapping.map(s).equals(name)) { + throw new RuntimeException("The public or protected field " + s + + " must not be renamed."); + } + cv.visitField(access, name, desc, null, value); + } + return null; // remove debug info + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + String s = className + "." + name + desc; + if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) == 0) { + if (pkgName.equals("org/objectweb/asm") && !name.startsWith("<") + && mapping.map(s).equals(name)) + { + System.out.println("INFO: " + s + " could be renamed"); + } + return new MethodOptimizer(cv.visitMethod(access, + mapping.map(s), + mapping.fix(desc), + null, + exceptions), mapping); + } else { + if (!mapping.map(s).equals(name)) { + throw new RuntimeException("The public or protected method " + + s + " must not be renamed."); + } + return new MethodOptimizer(cv.visitMethod(access, + name, + desc, + null, + exceptions), mapping); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java new file mode 100644 index 00000000000..b07b7c2d3f5 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Constant.java @@ -0,0 +1,265 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import org.objectweb.asm.ClassWriter; + +/** + * A constant pool item. + * + * @author Eric Bruneton + */ +class Constant { + + /** + * Type of this constant pool item. A single class is used to represent all + * constant pool item types, in order to minimize the bytecode size of this + * package. The value of this field is I, J, F, D, S, s, C, T, G, M, or N + * (for Constant Integer, Long, Float, Double, STR, UTF8, Class, NameType, + * Fieldref, Methodref, or InterfaceMethodref constant pool items + * respectively). + */ + char type; + + /** + * Value of this item, for an integer item. + */ + int intVal; + + /** + * Value of this item, for a long item. + */ + long longVal; + + /** + * Value of this item, for a float item. + */ + float floatVal; + + /** + * Value of this item, for a double item. + */ + double doubleVal; + + /** + * First part of the value of this item, for items that do not hold a + * primitive value. + */ + String strVal1; + + /** + * Second part of the value of this item, for items that do not hold a + * primitive value. + */ + String strVal2; + + /** + * Third part of the value of this item, for items that do not hold a + * primitive value. + */ + String strVal3; + + /** + * The hash code value of this constant pool item. + */ + int hashCode; + + public Constant() { + } + + public Constant(final Constant i) { + type = i.type; + intVal = i.intVal; + longVal = i.longVal; + floatVal = i.floatVal; + doubleVal = i.doubleVal; + strVal1 = i.strVal1; + strVal2 = i.strVal2; + strVal3 = i.strVal3; + hashCode = i.hashCode; + } + + /** + * Sets this item to an integer item. + * + * @param intVal the value of this item. + */ + void set(final int intVal) { + this.type = 'I'; + this.intVal = intVal; + this.hashCode = 0x7FFFFFFF & (type + intVal); + } + + /** + * Sets this item to a long item. + * + * @param longVal the value of this item. + */ + void set(final long longVal) { + this.type = 'J'; + this.longVal = longVal; + this.hashCode = 0x7FFFFFFF & (type + (int) longVal); + } + + /** + * Sets this item to a float item. + * + * @param floatVal the value of this item. + */ + void set(final float floatVal) { + this.type = 'F'; + this.floatVal = floatVal; + this.hashCode = 0x7FFFFFFF & (type + (int) floatVal); + } + + /** + * Sets this item to a double item. + * + * @param doubleVal the value of this item. + */ + void set(final double doubleVal) { + this.type = 'D'; + this.doubleVal = doubleVal; + this.hashCode = 0x7FFFFFFF & (type + (int) doubleVal); + } + + /** + * Sets this item to an item that do not hold a primitive value. + * + * @param type the type of this item. + * @param strVal1 first part of the value of this item. + * @param strVal2 second part of the value of this item. + * @param strVal3 third part of the value of this item. + */ + void set( + final char type, + final String strVal1, + final String strVal2, + final String strVal3) + { + this.type = type; + this.strVal1 = strVal1; + this.strVal2 = strVal2; + this.strVal3 = strVal3; + switch (type) { + case 's': + case 'S': + case 'C': + hashCode = 0x7FFFFFFF & (type + strVal1.hashCode()); + return; + case 'T': + hashCode = 0x7FFFFFFF & (type + strVal1.hashCode() + * strVal2.hashCode()); + return; + // case 'G': + // case 'M': + // case 'N': + default: + hashCode = 0x7FFFFFFF & (type + strVal1.hashCode() + * strVal2.hashCode() * strVal3.hashCode()); + } + } + + void write(final ClassWriter cw) { + switch (type) { + case 'I': + cw.newConst(new Integer(intVal)); + break; + case 'J': + cw.newConst(new Long(longVal)); + break; + case 'F': + cw.newConst(new Float(floatVal)); + break; + case 'D': + cw.newConst(new Double(doubleVal)); + break; + case 'S': + cw.newConst(strVal1); + break; + case 's': + cw.newUTF8(strVal1); + break; + case 'C': + cw.newClass(strVal1); + break; + case 'T': + cw.newNameType(strVal1, strVal2); + break; + case 'G': + cw.newField(strVal1, strVal2, strVal3); + break; + case 'M': + cw.newMethod(strVal1, strVal2, strVal3, false); + break; + case 'N': + cw.newMethod(strVal1, strVal2, strVal3, true); + break; + } + } + + public boolean equals(final Object o) { + if (!(o instanceof Constant)) { + return false; + } + Constant c = (Constant) o; + if (c.type == type) { + switch (type) { + case 'I': + return c.intVal == intVal; + case 'J': + return c.longVal == longVal; + case 'F': + return c.floatVal == floatVal; + case 'D': + return c.doubleVal == doubleVal; + case 's': + case 'S': + case 'C': + return c.strVal1.equals(strVal1); + case 'T': + return c.strVal1.equals(strVal1) + && c.strVal2.equals(strVal2); + // case 'G': + // case 'M': + // case 'N': + default: + return c.strVal1.equals(strVal1) + && c.strVal2.equals(strVal2) + && c.strVal3.equals(strVal3); + } + } + return false; + } + + public int hashCode() { + return hashCode; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java new file mode 100644 index 00000000000..c918bef0f8e --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java @@ -0,0 +1,198 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import java.util.HashMap; + +import org.objectweb.asm.Type; + +/** + * A constant pool. + * + * @author Eric Bruneton + */ +public class ConstantPool extends HashMap { + + private Constant key1 = new Constant(); + + private Constant key2 = new Constant(); + + private Constant key3 = new Constant(); + + public Constant newInteger(final int value) { + key1.set(value); + Constant result = get(key1); + if (result == null) { + result = new Constant(key1); + put(result); + } + return result; + } + + public Constant newFloat(final float value) { + key1.set(value); + Constant result = get(key1); + if (result == null) { + result = new Constant(key1); + put(result); + } + return result; + } + + public Constant newLong(final long value) { + key1.set(value); + Constant result = get(key1); + if (result == null) { + result = new Constant(key1); + put(result); + } + return result; + } + + public Constant newDouble(final double value) { + key1.set(value); + Constant result = get(key1); + if (result == null) { + result = new Constant(key1); + put(result); + } + return result; + } + + public Constant newUTF8(final String value) { + key1.set('s', value, null, null); + Constant result = get(key1); + if (result == null) { + result = new Constant(key1); + put(result); + } + return result; + } + + private Constant newString(final String value) { + key2.set('S', value, null, null); + Constant result = get(key2); + if (result == null) { + newUTF8(value); + result = new Constant(key2); + put(result); + } + return result; + } + + public Constant newClass(final String value) { + key2.set('C', value, null, null); + Constant result = get(key2); + if (result == null) { + newUTF8(value); + result = new Constant(key2); + put(result); + } + return result; + } + + public Constant newConst(final Object cst) { + if (cst instanceof Integer) { + int val = ((Integer) cst).intValue(); + return newInteger(val); + } else if (cst instanceof Float) { + float val = ((Float) cst).floatValue(); + return newFloat(val); + } else if (cst instanceof Long) { + long val = ((Long) cst).longValue(); + return newLong(val); + } else if (cst instanceof Double) { + double val = ((Double) cst).doubleValue(); + return newDouble(val); + } else if (cst instanceof String) { + return newString((String) cst); + } else if (cst instanceof Type) { + Type t = (Type) cst; + return newClass(t.getSort() == Type.OBJECT + ? t.getInternalName() + : t.getDescriptor()); + } else { + throw new IllegalArgumentException("value " + cst); + } + } + + public Constant newField( + final String owner, + final String name, + final String desc) + { + key3.set('G', owner, name, desc); + Constant result = get(key3); + if (result == null) { + newClass(owner); + newNameType(name, desc); + result = new Constant(key3); + put(result); + } + return result; + } + + public Constant newMethod( + final String owner, + final String name, + final String desc, + final boolean itf) + { + key3.set(itf ? 'N' : 'M', owner, name, desc); + Constant result = get(key3); + if (result == null) { + newClass(owner); + newNameType(name, desc); + result = new Constant(key3); + put(result); + } + return result; + } + + public Constant newNameType(final String name, final String desc) { + key2.set('T', name, desc, null); + Constant result = get(key2); + if (result == null) { + newUTF8(name); + newUTF8(desc); + result = new Constant(key2); + put(result); + } + return result; + } + + private Constant get(final Constant key) { + return (Constant) get((Object) key); + } + + private void put(final Constant cst) { + put(cst, cst); + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java new file mode 100644 index 00000000000..e5e9b7682ff --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java @@ -0,0 +1,76 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.FieldVisitor; + +/** + * A {@link FieldVisitor} that collects the {@link Constant}s of the fields it + * visits. + * + * @author Eric Bruneton + */ +public class FieldConstantsCollector implements FieldVisitor { + + private FieldVisitor fv; + + private ConstantPool cp; + + public FieldConstantsCollector(final FieldVisitor fv, final ConstantPool cp) + { + this.fv = fv; + this.cp = cp; + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + cp.newUTF8(desc); + if (visible) { + cp.newUTF8("RuntimeVisibleAnnotations"); + } else { + cp.newUTF8("RuntimeInvisibleAnnotations"); + } + return new AnnotationConstantsCollector(fv.visitAnnotation(desc, + visible), cp); + } + + public void visitAttribute(final Attribute attr) { + // can do nothing + fv.visitAttribute(attr); + } + + public void visitEnd() { + fv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java new file mode 100644 index 00000000000..8302d99f75f --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java @@ -0,0 +1,87 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Enumeration; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipOutputStream; + +/** + * A Jar file optimizer. + * + * @author Eric Bruneton + */ +public class JarOptimizer { + + public static void main(final String[] args) throws IOException { + File f = new File(args[0]); + optimize(f); + } + + static void optimize(final File f) throws IOException { + if (f.isDirectory()) { + File[] files = f.listFiles(); + for (int i = 0; i < files.length; ++i) { + optimize(files[i]); + } + } else if (f.getName().endsWith(".jar")) { + File g = new File(f.getParentFile(), f.getName() + ".new"); + ZipFile zf = new ZipFile(f); + ZipOutputStream out = new ZipOutputStream(new FileOutputStream(g)); + Enumeration e = zf.entries(); + byte[] buf = new byte[10000]; + while (e.hasMoreElements()) { + ZipEntry ze = (ZipEntry) e.nextElement(); + if (ze.isDirectory()) { + continue; + } + out.putNextEntry(ze); + InputStream is = zf.getInputStream(ze); + int n; + do { + n = is.read(buf, 0, buf.length); + if (n != -1) { + out.write(buf, 0, n); + } + } while (n != -1); + out.closeEntry(); + } + out.close(); + zf.close(); + f.delete(); + g.renameTo(f); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java new file mode 100644 index 00000000000..dc7b1c1d6ac --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java @@ -0,0 +1,168 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodAdapter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +/** + * An {@link MethodVisitor} that collects the {@link Constant}s of the methods + * it visits. + * + * @author Eric Bruneton + */ +public class MethodConstantsCollector extends MethodAdapter { + + private ConstantPool cp; + + public MethodConstantsCollector( + final MethodVisitor mv, + final ConstantPool cp) + { + super(mv); + this.cp = cp; + } + + public AnnotationVisitor visitAnnotationDefault() { + cp.newUTF8("AnnotationDefault"); + return new AnnotationConstantsCollector(mv.visitAnnotationDefault(), cp); + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + cp.newUTF8(desc); + if (visible) { + cp.newUTF8("RuntimeVisibleAnnotations"); + } else { + cp.newUTF8("RuntimeInvisibleAnnotations"); + } + return new AnnotationConstantsCollector(mv.visitAnnotation(desc, + visible), cp); + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + cp.newUTF8(desc); + if (visible) { + cp.newUTF8("RuntimeVisibleParameterAnnotations"); + } else { + cp.newUTF8("RuntimeInvisibleParameterAnnotations"); + } + return new AnnotationConstantsCollector(mv.visitParameterAnnotation(parameter, + desc, + visible), + cp); + } + + public void visitTypeInsn(final int opcode, final String desc) { + cp.newClass(desc); + mv.visitTypeInsn(opcode, desc); + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + cp.newField(owner, name, desc); + mv.visitFieldInsn(opcode, owner, name, desc); + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + boolean itf = opcode == Opcodes.INVOKEINTERFACE; + cp.newMethod(owner, name, desc, itf); + mv.visitMethodInsn(opcode, owner, name, desc); + } + + public void visitLdcInsn(final Object cst) { + cp.newConst(cst); + mv.visitLdcInsn(cst); + } + + public void visitMultiANewArrayInsn(final String desc, final int dims) { + cp.newClass(desc); + mv.visitMultiANewArrayInsn(desc, dims); + } + + public void visitTryCatchBlock( + final Label start, + final Label end, + final Label handler, + final String type) + { + if (type != null) { + cp.newClass(type); + } + mv.visitTryCatchBlock(start, end, handler, type); + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + if (signature != null) { + cp.newUTF8("LocalVariableTypeTable"); + cp.newUTF8(name); + cp.newUTF8(signature); + } + cp.newUTF8("LocalVariableTable"); + cp.newUTF8(name); + cp.newUTF8(desc); + mv.visitLocalVariable(name, desc, signature, start, end, index); + } + + public void visitLineNumber(final int line, final Label start) { + cp.newUTF8("LineNumberTable"); + mv.visitLineNumber(line, start); + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + cp.newUTF8("Code"); + mv.visitMaxs(maxStack, maxLocals); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java new file mode 100644 index 00000000000..91fa98b2a2f --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java @@ -0,0 +1,108 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodAdapter; +import org.objectweb.asm.MethodVisitor; + +/** + * A {@link MethodAdapter} that renames fields and methods, and removes debug + * info. + * + * @author Eric Bruneton + */ +public class MethodOptimizer extends MethodAdapter { + + private NameMapping mapping; + + public MethodOptimizer(final MethodVisitor mv, final NameMapping mapping) { + super(mv); + this.mapping = mapping; + } + + // ------------------------------------------------------------------------ + // Overriden methods + // ------------------------------------------------------------------------ + + public AnnotationVisitor visitAnnotationDefault() { + throw new UnsupportedOperationException(); + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + throw new UnsupportedOperationException(); + } + + public void visitTypeInsn(final int opcode, final String desc) { + mv.visitTypeInsn(opcode, desc.startsWith("[") + ? mapping.fix(desc) + : mapping.map(desc)); + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + mv.visitFieldInsn(opcode, mapping.map(owner), mapping.map(owner + "." + + name), mapping.fix(desc)); + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + mv.visitMethodInsn(opcode, mapping.map(owner), mapping.map(owner + "." + + name + desc), mapping.fix(desc)); + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + // remove debug info + } + + public void visitLineNumber(final int line, final Label start) { + // remove debug info + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java new file mode 100644 index 00000000000..9cefb1ffe18 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java @@ -0,0 +1,101 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.HashSet; +import java.util.Properties; +import java.util.Set; + +import org.objectweb.asm.Type; + +/** + * A mapping from names to names, used to rename classes, fields and methods. + * + * @author Eric Bruneton + */ +public class NameMapping extends Properties { + + public final Set unused; + + public NameMapping(final String file) throws IOException { + load(new FileInputStream(file)); + unused = new HashSet(keySet()); + } + + public String map(final String name) { + String s = (String) get(name); + if (s == null) { + int p = name.indexOf('.'); + if (p != -1) { + int q = name.indexOf('('); + if (q != -1) { + s = name.substring(p + 1, q); + } else { + s = name.substring(p + 1); + } + } else { + s = name; + } + } else { + unused.remove(name); + } + return s; + } + + public String fix(final String desc) { + if (desc.startsWith("(")) { + Type[] arguments = Type.getArgumentTypes(desc); + Type result = Type.getReturnType(desc); + for (int i = 0; i < arguments.length; ++i) { + arguments[i] = fix(arguments[i]); + } + result = fix(result); + return Type.getMethodDescriptor(result, arguments); + } else { + return fix(Type.getType(desc)).getDescriptor(); + } + } + + private Type fix(final Type t) { + if (t.getSort() == Type.OBJECT) { + return Type.getType("L" + map(t.getInternalName()) + ";"); + } else if (t.getSort() == Type.ARRAY) { + String s = fix(t.getElementType()).getDescriptor(); + for (int i = 0; i < t.getDimensions(); ++i) { + s = "[" + s; + } + return Type.getType(s); + } else { + return t; + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java new file mode 100644 index 00000000000..94e4068f0e5 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java @@ -0,0 +1,168 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.optimizer; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Comparator; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; + +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; + +/** + * A class file shrinker utility. + * + * @author Eric Bruneton + */ +public class Shrinker { + + public static void main(final String[] args) throws IOException { + NameMapping mapping = new NameMapping(args[0]); + File f = new File(args[1]); + File d = new File(args[2]); + optimize(f, d, mapping); + Iterator i = mapping.unused.iterator(); + while (i.hasNext()) { + System.out.println("INFO: unused mapping " + i.next()); + } + } + + static void optimize(final File f, final File d, final NameMapping mapping) + throws IOException + { + if (f.isDirectory()) { + File[] files = f.listFiles(); + for (int i = 0; i < files.length; ++i) { + optimize(files[i], d, mapping); + } + } else if (f.getName().endsWith(".class")) { + ConstantPool cp = new ConstantPool(); + ClassReader cr = new ClassReader(new FileInputStream(f)); + ClassWriter cw = new ClassWriter(false); + ClassConstantsCollector ccc = new ClassConstantsCollector(cw, cp); + ClassOptimizer co = new ClassOptimizer(ccc, mapping); + cr.accept(co, true); + + Set constants = new TreeSet(new ConstantComparator()); + constants.addAll(cp.values()); + + cr = new ClassReader(cw.toByteArray()); + cw = new ClassWriter(false); + Iterator i = constants.iterator(); + while (i.hasNext()) { + Constant c = (Constant) i.next(); + c.write(cw); + } + cr.accept(cw, true); + + String n = mapping.map(co.getClassName()); + File g = new File(d, n + ".class"); + if (!g.exists() || g.lastModified() < f.lastModified()) { + g.getParentFile().mkdirs(); + OutputStream os = new FileOutputStream(g); + os.write(cw.toByteArray()); + os.close(); + } + } + } + + static class ConstantComparator implements Comparator { + + public int compare(final Object o1, final Object o2) { + Constant c1 = (Constant) o1; + Constant c2 = (Constant) o2; + int d = getSort(c1) - getSort(c2); + if (d == 0) { + switch (c1.type) { + case 'I': + return new Integer(c1.intVal).compareTo(new Integer(c2.intVal)); + case 'J': + return new Long(c1.longVal).compareTo(new Long(c2.longVal)); + case 'F': + return new Float(c1.floatVal).compareTo(new Float(c2.floatVal)); + case 'D': + return new Double(c1.doubleVal).compareTo(new Double(c2.doubleVal)); + case 's': + case 'S': + case 'C': + return c1.strVal1.compareTo(c2.strVal1); + case 'T': + d = c1.strVal1.compareTo(c2.strVal1); + if (d == 0) { + d = c1.strVal2.compareTo(c2.strVal2); + } + break; + default: + d = c1.strVal1.compareTo(c2.strVal1); + if (d == 0) { + d = c1.strVal2.compareTo(c2.strVal2); + if (d == 0) { + d = c1.strVal3.compareTo(c2.strVal3); + } + } + } + } + return d; + } + + private int getSort(Constant c) { + switch (c.type) { + case 'I': + return 0; + case 'J': + return 1; + case 'F': + return 2; + case 'D': + return 3; + case 's': + return 4; + case 'S': + return 5; + case 'C': + return 6; + case 'T': + return 7; + case 'G': + return 8; + case 'M': + return 9; + default: + return 10; + } + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties new file mode 100644 index 00000000000..868780bdd2d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties @@ -0,0 +1,225 @@ +# class mappings + +#org/objectweb/asm/Edge=org/objectweb/asm/a +#org/objectweb/asm/Item=org/objectweb/asm/b +#org/objectweb/asm/FieldWriter=org/objectweb/asm/c +#org/objectweb/asm/MethodWriter=org/objectweb/asm/d +#org/objectweb/asm/AnnotationWriter=org/objectweb/asm/e + +# field mappings + +org/objectweb/asm/AnnotationWriter.cw=a +org/objectweb/asm/AnnotationWriter.size=b +org/objectweb/asm/AnnotationWriter.named=c +org/objectweb/asm/AnnotationWriter.bv=d +org/objectweb/asm/AnnotationWriter.parent=e +org/objectweb/asm/AnnotationWriter.offset=f +org/objectweb/asm/AnnotationWriter.next=g +org/objectweb/asm/AnnotationWriter.prev=h + +org/objectweb/asm/Attribute.next=a +org/objectweb/asm/Attribute.value=b + +org/objectweb/asm/ByteVector.data=a +org/objectweb/asm/ByteVector.length=b + +org/objectweb/asm/ClassReader.items=a +org/objectweb/asm/ClassReader.strings=c +org/objectweb/asm/ClassReader.maxStringLength=d +#org/objectweb/asm/ClassReader.header=e + +org/objectweb/asm/ClassWriter.TYPE=a +org/objectweb/asm/ClassWriter.version=b +org/objectweb/asm/ClassWriter.index=c +org/objectweb/asm/ClassWriter.pool=d +org/objectweb/asm/ClassWriter.items=e +org/objectweb/asm/ClassWriter.threshold=f +org/objectweb/asm/ClassWriter.key=g +org/objectweb/asm/ClassWriter.key2=h +org/objectweb/asm/ClassWriter.key3=i +org/objectweb/asm/ClassWriter.access=j +org/objectweb/asm/ClassWriter.name=k +org/objectweb/asm/ClassWriter.signature=l +org/objectweb/asm/ClassWriter.superName=m +org/objectweb/asm/ClassWriter.interfaceCount=n +org/objectweb/asm/ClassWriter.interfaces=o +org/objectweb/asm/ClassWriter.sourceFile=p +org/objectweb/asm/ClassWriter.sourceDebug=q +org/objectweb/asm/ClassWriter.enclosingMethodOwner=r +org/objectweb/asm/ClassWriter.enclosingMethod=s +org/objectweb/asm/ClassWriter.anns=t +org/objectweb/asm/ClassWriter.ianns=u +org/objectweb/asm/ClassWriter.attrs=v +org/objectweb/asm/ClassWriter.innerClassesCount=w +org/objectweb/asm/ClassWriter.innerClasses=x +org/objectweb/asm/ClassWriter.firstField=y +org/objectweb/asm/ClassWriter.lastField=z +org/objectweb/asm/ClassWriter.firstMethod=A +org/objectweb/asm/ClassWriter.lastMethod=B +org/objectweb/asm/ClassWriter.computeMaxs=C +org/objectweb/asm/ClassWriter.cr=D + +org/objectweb/asm/Edge.stackSize=a +org/objectweb/asm/Edge.successor=b +org/objectweb/asm/Edge.next=c + +org/objectweb/asm/Handler.start=a +org/objectweb/asm/Handler.end=b +org/objectweb/asm/Handler.handler=c +org/objectweb/asm/Handler.desc=d +org/objectweb/asm/Handler.type=e +org/objectweb/asm/Handler.next=f + +org/objectweb/asm/FieldWriter.next=a +org/objectweb/asm/FieldWriter.cw=b +org/objectweb/asm/FieldWriter.access=c +org/objectweb/asm/FieldWriter.name=d +org/objectweb/asm/FieldWriter.desc=e +org/objectweb/asm/FieldWriter.signature=f +org/objectweb/asm/FieldWriter.value=g +org/objectweb/asm/FieldWriter.anns=h +org/objectweb/asm/FieldWriter.ianns=i +org/objectweb/asm/FieldWriter.attrs=j + +org/objectweb/asm/Item.index=a +org/objectweb/asm/Item.type=b +org/objectweb/asm/Item.intVal=c +org/objectweb/asm/Item.longVal=d +org/objectweb/asm/Item.floatVal=e +org/objectweb/asm/Item.doubleVal=f +org/objectweb/asm/Item.strVal1=g +org/objectweb/asm/Item.strVal2=h +org/objectweb/asm/Item.strVal3=i +org/objectweb/asm/Item.hashCode=j +org/objectweb/asm/Item.next=k + +org/objectweb/asm/Label.resolved=a +org/objectweb/asm/Label.position=b +org/objectweb/asm/Label.resized=c +org/objectweb/asm/Label.referenceCount=d +org/objectweb/asm/Label.srcAndRefPositions=e +org/objectweb/asm/Label.beginStackSize=f +org/objectweb/asm/Label.maxStackSize=g +org/objectweb/asm/Label.successors=h +org/objectweb/asm/Label.next=i +org/objectweb/asm/Label.pushed=j +org/objectweb/asm/Label.line=k + +org/objectweb/asm/MethodWriter.next=a +org/objectweb/asm/MethodWriter.cw=b +org/objectweb/asm/MethodWriter.access=c +org/objectweb/asm/MethodWriter.name=d +org/objectweb/asm/MethodWriter.desc=e +org/objectweb/asm/MethodWriter.descriptor=f +org/objectweb/asm/MethodWriter.signature=g +org/objectweb/asm/MethodWriter.exceptionCount=h +org/objectweb/asm/MethodWriter.exceptions=i +org/objectweb/asm/MethodWriter.annd=j +org/objectweb/asm/MethodWriter.anns=k +org/objectweb/asm/MethodWriter.ianns=l +org/objectweb/asm/MethodWriter.panns=m +org/objectweb/asm/MethodWriter.ipanns=n +org/objectweb/asm/MethodWriter.attrs=o +org/objectweb/asm/MethodWriter.code=p +org/objectweb/asm/MethodWriter.maxStack=q +org/objectweb/asm/MethodWriter.maxLocals=r +org/objectweb/asm/MethodWriter.catchCount=s +org/objectweb/asm/MethodWriter.catchTable=t +org/objectweb/asm/MethodWriter.localVarCount=u +org/objectweb/asm/MethodWriter.localVar=v +org/objectweb/asm/MethodWriter.localVarTypeCount=w +org/objectweb/asm/MethodWriter.localVarType=x +org/objectweb/asm/MethodWriter.lineNumberCount=y +org/objectweb/asm/MethodWriter.lineNumber=z +org/objectweb/asm/MethodWriter.cattrs=A +org/objectweb/asm/MethodWriter.resize=B +org/objectweb/asm/MethodWriter.computeMaxs=C +org/objectweb/asm/MethodWriter.stackSize=D +org/objectweb/asm/MethodWriter.maxStackSize=E +org/objectweb/asm/MethodWriter.currentBlock=F +org/objectweb/asm/MethodWriter.blockStack=G +org/objectweb/asm/MethodWriter.SIZE=H +org/objectweb/asm/MethodWriter.classReaderOffset=I +org/objectweb/asm/MethodWriter.classReaderLength=J +org/objectweb/asm/MethodWriter.lastHandler=K + +org/objectweb/asm/Type.sort=a +org/objectweb/asm/Type.buf=b +org/objectweb/asm/Type.off=c +org/objectweb/asm/Type.len=d + +org/objectweb/asm/signature/SignatureReader.signature=a + +org/objectweb/asm/signature/SignatureWriter.buf=a +org/objectweb/asm/signature/SignatureWriter.hasFormals=b +org/objectweb/asm/signature/SignatureWriter.hasParameters=c +org/objectweb/asm/signature/SignatureWriter.argumentStack=d + +# method mappings + +org/objectweb/asm/AnnotationWriter.getSize()I=a +org/objectweb/asm/AnnotationWriter.put([Lorg/objectweb/asm/AnnotationWriter;Lorg/objectweb/asm/ByteVector;)V=a +org/objectweb/asm/AnnotationWriter.put(Lorg/objectweb/asm/ByteVector;)V=a + +org/objectweb/asm/Attribute.getCount()I=a +org/objectweb/asm/Attribute.getSize(Lorg/objectweb/asm/ClassWriter;[BIII)I=a +org/objectweb/asm/Attribute.put(Lorg/objectweb/asm/ClassWriter;[BIIILorg/objectweb/asm/ByteVector;)V=a + +org/objectweb/asm/ByteVector.enlarge(I)V=a +org/objectweb/asm/ByteVector.put11(II)Lorg/objectweb/asm/ByteVector;=a +org/objectweb/asm/ByteVector.put12(II)Lorg/objectweb/asm/ByteVector;=b + +org/objectweb/asm/ClassReader.copyPool(Lorg/objectweb/asm/ClassWriter;)V=a +org/objectweb/asm/ClassReader.readAnnotationValue(I[CLjava/lang/String;Lorg/objectweb/asm/AnnotationVisitor;)I=a +org/objectweb/asm/ClassReader.readAnnotationValues(I[CLorg/objectweb/asm/AnnotationVisitor;)I=a +org/objectweb/asm/ClassReader.readAttribute([Lorg/objectweb/asm/Attribute;Ljava/lang/String;II[CI[Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Attribute;=a +org/objectweb/asm/ClassReader.readClass(Ljava/io/InputStream;)[B=a +org/objectweb/asm/ClassReader.readParameterAnnotations(I[CZLorg/objectweb/asm/MethodVisitor;)V=a +org/objectweb/asm/ClassReader.readUTF(II[C)Ljava/lang/String;=a + +org/objectweb/asm/ClassWriter.get(Lorg/objectweb/asm/Item;)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newClassItem(Ljava/lang/String;)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newConstItem(Ljava/lang/Object;)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newDouble(D)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newFloat(F)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newInteger(I)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newLong(J)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newMethodItem(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newString(Ljava/lang/String;)Lorg/objectweb/asm/Item;=b +org/objectweb/asm/ClassWriter.put122(III)V=a +org/objectweb/asm/ClassWriter.put(Lorg/objectweb/asm/Item;)V=b + +org/objectweb/asm/FieldWriter.getSize()I=a +org/objectweb/asm/FieldWriter.put(Lorg/objectweb/asm/ByteVector;)V=a + +org/objectweb/asm/Item.isEqualTo(Lorg/objectweb/asm/Item;)Z=a +org/objectweb/asm/Item.set(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V=a +org/objectweb/asm/Item.set(D)V=a +org/objectweb/asm/Item.set(F)V=a +org/objectweb/asm/Item.set(I)V=a +org/objectweb/asm/Item.set(J)V=a + +org/objectweb/asm/Label.addReference(II)V=a +org/objectweb/asm/Label.put(Lorg/objectweb/asm/MethodWriter;Lorg/objectweb/asm/ByteVector;IZ)V=a +org/objectweb/asm/Label.resolve(Lorg/objectweb/asm/MethodWriter;I[B)Z=a + +org/objectweb/asm/MethodWriter.addSuccessor(ILorg/objectweb/asm/Label;)V=a +org/objectweb/asm/MethodWriter.getArgumentsAndReturnSizes(Ljava/lang/String;)I=a +org/objectweb/asm/MethodWriter.getNewOffset([I[III)I=a +org/objectweb/asm/MethodWriter.getSize()I=a +org/objectweb/asm/MethodWriter.put(Lorg/objectweb/asm/ByteVector;)V=a +org/objectweb/asm/MethodWriter.readInt([BI)I=a +org/objectweb/asm/MethodWriter.readShort([BI)S=b +org/objectweb/asm/MethodWriter.readUnsignedShort([BI)I=c +org/objectweb/asm/MethodWriter.resizeInstructions([I[II)[I=a +org/objectweb/asm/MethodWriter.writeShort([BII)V=a +org/objectweb/asm/MethodWriter.getNewOffset([I[ILorg/objectweb/asm/Label;)V=a + +org/objectweb/asm/Type.getType([CI)Lorg/objectweb/asm/Type;=a +org/objectweb/asm/Type.getDescriptor(Ljava/lang/StringBuffer;)V=a +org/objectweb/asm/Type.getDescriptor(Ljava/lang/StringBuffer;Ljava/lang/Class;)V=a + +org/objectweb/asm/signature/SignatureReader.parseType(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I=a + +org/objectweb/asm/signature/SignatureWriter.endFormals()V=a +org/objectweb/asm/signature/SignatureWriter.endArguments()V=b diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/package.html new file mode 100644 index 00000000000..1383dbee521 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/package.html @@ -0,0 +1,87 @@ + + + +Provides a small and fast bytecode manipulation framework. + +

      +The ASM framework is organized +around the {@link org.objectweb.asm.ClassVisitor ClassVisitor}, +{@link org.objectweb.asm.FieldVisitor FieldVisitor} and +{@link org.objectweb.asm.MethodVisitor MethodVisitor} interfaces, which allow +one to visit the fields and methods of a class, including the bytecode +instructions of each method. + +

      +In addition to these main interfaces, ASM provides a {@link +org.objectweb.asm.ClassReader ClassReader} class, that can parse an +existing class and make a given visitor visit it. ASM also provides +a {@link org.objectweb.asm.ClassWriter ClassWriter} class, which is +a visitor that generates Java class files. + +

      +In order to generate a class from scratch, only the {@link +org.objectweb.asm.ClassWriter ClassWriter} class is necessary. Indeed, +in order to generate a class, one must just call its visitXXX +methods with the appropriate arguments to generate the desired fields +and methods. See the "helloworld" example in the ASM distribution for +more details about class generation. + +

      +In order to modify existing classes, one must use a {@link +org.objectweb.asm.ClassReader ClassReader} class to analyze +the original class, a class modifier, and a {@link org.objectweb.asm.ClassWriter +ClassWriter} to construct the modified class. The class modifier +is just a {@link org.objectweb.asm.ClassVisitor ClassVisitor} +that delegates most of the work to another {@link org.objectweb.asm.ClassVisitor +ClassVisitor}, but that sometimes changes some parameter values, +or call additional methods, in order to implement the desired +modification process. In order to make it easier to implement such +class modifiers, ASM provides the {@link org.objectweb.asm.ClassAdapter +ClassAdapter} and {@link org.objectweb.asm.MethodAdapter MethodAdapter} +classes, which implement the {@link org.objectweb.asm.ClassVisitor ClassVisitor} +and {@link org.objectweb.asm.MethodVisitor MethodVisitor} interfaces by +delegating all work to other visitors. See the "adapt" example in the ASM +distribution for more details about class modification. + +

      +The size of the core ASM library, asm.jar, is only 31KB, which is much +more smaller than +the size of the BCEL library (350KB +without the class verifier), and than the size of the +SERP library (150KB). ASM is also +much more faster than these tools. Indeed the overhead of a load time class +transformation process is of the order of 60% with ASM, 700% or more with BCEL, +and 1100% or more with SERP (see the test/perf directory in the ASM +distribution)! + +@since ASM 1.3 + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java new file mode 100644 index 00000000000..363692d8607 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureReader.java @@ -0,0 +1,233 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.signature; + +/** + * A type signature parser to make a signature visitor visit an existing + * signature. + * + * @author Thomas Hallgren + * @author Eric Bruneton + */ +public class SignatureReader { + + /** + * The signature to be read. + */ + private final String signature; + + /** + * Constructs a {@link SignatureReader} for the given signature. + * + * @param signature A ClassSignature, MethodTypeSignature, + * or FieldTypeSignature. + */ + public SignatureReader(final String signature) { + this.signature = signature; + } + + /** + * Makes the given visitor visit the signature of this + * {@link SignatureReader}. This signature is the one specified in the + * constructor (see {@link #SignatureReader(String) SignatureReader}). This + * method is intended to be called on a {@link SignatureReader} that was + * created using a ClassSignature (such as the + * signature parameter of the + * {@link org.objectweb.asm.ClassVisitor#visit ClassVisitor.visit} method) + * or a MethodTypeSignature (such as the signature + * parameter of the + * {@link org.objectweb.asm.ClassVisitor#visitMethod ClassVisitor.visitMethod} + * method). + * + * @param v the visitor that must visit this signature. + */ + public void accept(final SignatureVisitor v) { + String signature = this.signature; + int len = signature.length(); + int pos; + char c; + + if (signature.charAt(0) == '<') { + pos = 2; + do { + int end = signature.indexOf(':', pos); + v.visitFormalTypeParameter(signature.substring(pos - 1, end)); + pos = end + 1; + + c = signature.charAt(pos); + if (c == 'L' || c == '[' || c == 'T') { + pos = parseType(signature, pos, v.visitClassBound()); + } + + for (;;) { + if ((c = signature.charAt(pos++)) == ':') { + pos = parseType(signature, pos, v.visitInterfaceBound()); + } else { + break; + } + } + } while (c != '>'); + } else { + pos = 0; + } + + if (signature.charAt(pos) == '(') { + pos = pos + 1; + while (signature.charAt(pos) != ')') { + pos = parseType(signature, pos, v.visitParameterType()); + } + pos = parseType(signature, pos + 1, v.visitReturnType()); + while (pos < len) { + pos = parseType(signature, pos + 1, v.visitExceptionType()); + } + } else { + pos = parseType(signature, pos, v.visitSuperclass()); + while (pos < len) { + pos = parseType(signature, pos, v.visitInterface()); + } + } + } + + /** + * Makes the given visitor visit the signature of this + * {@link SignatureReader}. This signature is the one specified in the + * constructor (see {@link #SignatureReader(String) SignatureReader}). This + * method is intended to be called on a {@link SignatureReader} that was + * created using a FieldTypeSignature, such as the + * signature parameter of the + * {@link org.objectweb.asm.ClassVisitor#visitField + * ClassVisitor.visitField} or {@link + * org.objectweb.asm.MethodVisitor#visitLocalVariable + * MethodVisitor.visitLocalVariable} methods. + * + * @param v the visitor that must visit this signature. + */ + public void acceptType(final SignatureVisitor v) { + parseType(this.signature, 0, v); + } + + /** + * Parses a field type signature and makes the given visitor visit it. + * + * @param signature a string containing the signature that must be parsed. + * @param pos index of the first character of the signature to parsed. + * @param v the visitor that must visit this signature. + * @return the index of the first character after the parsed signature. + */ + private static int parseType( + final String signature, + int pos, + final SignatureVisitor v) + { + char c; + int start, end; + boolean visited, inner; + String name; + + switch (c = signature.charAt(pos++)) { + case 'Z': + case 'C': + case 'B': + case 'S': + case 'I': + case 'F': + case 'J': + case 'D': + case 'V': + v.visitBaseType(c); + return pos; + + case '[': + return parseType(signature, pos, v.visitArrayType()); + + case 'T': + end = signature.indexOf(';', pos); + v.visitTypeVariable(signature.substring(pos, end)); + return end + 1; + + default: // case 'L': + start = pos; + visited = false; + inner = false; + for (;;) { + switch (c = signature.charAt(pos++)) { + case '.': + case ';': + if (!visited) { + name = signature.substring(start, pos - 1); + if (inner) { + v.visitInnerClassType(name); + } else { + v.visitClassType(name); + } + } + if (c == ';') { + v.visitEnd(); + return pos; + } + start = pos; + visited = false; + inner = true; + break; + + case '<': + name = signature.substring(start, pos - 1); + if (inner) { + v.visitInnerClassType(name); + } else { + v.visitClassType(name); + } + visited = true; + top: for (;;) { + switch (c = signature.charAt(pos)) { + case '>': + break top; + case '*': + ++pos; + v.visitTypeArgument(); + break; + case '+': + case '-': + pos = parseType(signature, + pos + 1, + v.visitTypeArgument(c)); + break; + default: + pos = parseType(signature, + pos, + v.visitTypeArgument('=')); + break; + } + } + } + } + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java new file mode 100644 index 00000000000..8f087bd2ef7 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java @@ -0,0 +1,185 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.signature; + +/** + * A visitor to visit a generic signature. The methods of this interface must be + * called in one of the three following orders (the last one is the only valid + * order for a {@link SignatureVisitor} that is returned by a method of this + * interface):

      • ClassSignature = ( + * visitFormalTypeParameter + * visitClassBound? + * visitInterfaceBound* )* ( visitSuperClass + * visitInterface* )
      • + *
      • MethodSignature = ( visitFormalTypeParameter + * visitClassBound? + * visitInterfaceBound* )* ( visitParameterType* + * visitReturnType + * visitExceptionType* )
      • TypeSignature = + * visitBaseType | visitTypeVariable | + * visitArrayType | ( + * visitClassType visitTypeArgument* ( + * visitInnerClassType visitTypeArgument* )* + * visitEnd ) )
      + * + * @author Thomas Hallgren + * @author Eric Bruneton + */ +public interface SignatureVisitor { + + /** + * Wildcard for an "extends" type argument. + */ + char EXTENDS = '+'; + + /** + * Wildcard for a "super" type argument. + */ + char SUPER = '-'; + + /** + * Wildcard for a normal type argument. + */ + char INSTANCEOF = '='; + + /** + * Visits a formal type parameter. + * + * @param name the name of the formal parameter. + */ + void visitFormalTypeParameter(String name); + + /** + * Visits the class bound of the last visited formal type parameter. + * + * @return a non null visitor to visit the signature of the class bound. + */ + SignatureVisitor visitClassBound(); + + /** + * Visits an interface bound of the last visited formal type parameter. + * + * @return a non null visitor to visit the signature of the interface bound. + */ + SignatureVisitor visitInterfaceBound(); + + /** + * Visits the type of the super class. + * + * @return a non null visitor to visit the signature of the super class + * type. + */ + SignatureVisitor visitSuperclass(); + + /** + * Visits the type of an interface implemented by the class. + * + * @return a non null visitor to visit the signature of the interface type. + */ + SignatureVisitor visitInterface(); + + /** + * Visits the type of a method parameter. + * + * @return a non null visitor to visit the signature of the parameter type. + */ + SignatureVisitor visitParameterType(); + + /** + * Visits the return type of the method. + * + * @return a non null visitor to visit the signature of the return type. + */ + SignatureVisitor visitReturnType(); + + /** + * Visits the type of a method exception. + * + * @return a non null visitor to visit the signature of the exception type. + */ + SignatureVisitor visitExceptionType(); + + /** + * Visits a signature corresponding to a primitive type. + * + * @param descriptor the descriptor of the primitive type, or 'V' for + * void. + */ + void visitBaseType(char descriptor); + + /** + * Visits a signature corresponding to a type variable. + * + * @param name the name of the type variable. + */ + void visitTypeVariable(String name); + + /** + * Visits a signature corresponding to an array type. + * + * @return a non null visitor to visit the signature of the array element + * type. + */ + SignatureVisitor visitArrayType(); + + /** + * Starts the visit of a signature corresponding to a class or interface + * type. + * + * @param name the internal name of the class or interface. + */ + void visitClassType(String name); + + /** + * Visits an inner class. + * + * @param name the local name of the inner class in its enclosing class. + */ + void visitInnerClassType(String name); + + /** + * Visits an unbounded type argument of the last visited class or inner + * class type. + */ + void visitTypeArgument(); + + /** + * Visits a type argument of the last visited class or inner class type. + * + * @param wildcard '+', '-' or '='. + * @return a non null visitor to visit the signature of the type argument. + */ + SignatureVisitor visitTypeArgument(char wildcard); + + /** + * Ends the visit of a signature corresponding to a class or interface type. + */ + void visitEnd(); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java new file mode 100644 index 00000000000..b78d666a59c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java @@ -0,0 +1,207 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.signature; + +/** + * A signature visitor that generates signatures in string format. + * + * @author Thomas Hallgren + * @author Eric Bruneton + */ +public class SignatureWriter implements SignatureVisitor { + + /** + * Buffer used to construct the signature. + */ + private final StringBuffer buf = new StringBuffer(); + + /** + * Indicates if the signature contains formal type parameters. + */ + private boolean hasFormals; + + /** + * Indicates if the signature contains method parameter types. + */ + private boolean hasParameters; + + /** + * Stack used to keep track of class types that have arguments. Each element + * of this stack is a boolean encoded in one bit. The top of the stack is + * the lowest order bit. Pushing false = *2, pushing true = *2+1, popping = + * /2. + */ + private int argumentStack; + + /** + * Constructs a new {@link SignatureWriter} object. + */ + public SignatureWriter() { + } + + // ------------------------------------------------------------------------ + // Implementation of the SignatureVisitor interface + // ------------------------------------------------------------------------ + + public void visitFormalTypeParameter(String name) { + if (!hasFormals) { + hasFormals = true; + buf.append('<'); + } + buf.append(name); + buf.append(':'); + } + + public SignatureVisitor visitClassBound() { + return this; + } + + public SignatureVisitor visitInterfaceBound() { + buf.append(':'); + return this; + } + + public SignatureVisitor visitSuperclass() { + endFormals(); + return this; + } + + public SignatureVisitor visitInterface() { + return this; + } + + public SignatureVisitor visitParameterType() { + endFormals(); + if (!hasParameters) { + hasParameters = true; + buf.append('('); + } + return this; + } + + public SignatureVisitor visitReturnType() { + endFormals(); + if (!hasParameters) { + buf.append('('); + } + buf.append(')'); + return this; + } + + public SignatureVisitor visitExceptionType() { + buf.append('^'); + return this; + } + + public void visitBaseType(char descriptor) { + buf.append(descriptor); + } + + public void visitTypeVariable(String name) { + buf.append('T'); + buf.append(name); + buf.append(';'); + } + + public SignatureVisitor visitArrayType() { + buf.append('['); + return this; + } + + public void visitClassType(String name) { + buf.append('L'); + buf.append(name); + argumentStack *= 2; + } + + public void visitInnerClassType(String name) { + endArguments(); + buf.append('.'); + buf.append(name); + argumentStack *= 2; + } + + public void visitTypeArgument() { + if (argumentStack % 2 == 0) { + ++argumentStack; + buf.append('<'); + } + buf.append('*'); + } + + public SignatureVisitor visitTypeArgument(char wildcard) { + if (argumentStack % 2 == 0) { + ++argumentStack; + buf.append('<'); + } + if (wildcard != '=') { + buf.append(wildcard); + } + return this; + } + + public void visitEnd() { + endArguments(); + buf.append(';'); + } + + /** + * Returns the signature that was built by this signature writer. + * + * @return the signature that was built by this signature writer. + */ + public String toString() { + return buf.toString(); + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + /** + * Ends the formal type parameters section of the signature. + */ + private void endFormals() { + if (hasFormals) { + hasFormals = false; + buf.append('>'); + } + } + + /** + * Ends the type arguments of a class or inner class type. + */ + private void endArguments() { + if (argumentStack % 2 == 1) { + buf.append('>'); + } + argumentStack /= 2; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/package.html new file mode 100644 index 00000000000..21f103a30d5 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/signature/package.html @@ -0,0 +1,36 @@ + + + +Provides support for type signatures. + +@since ASM 2.0 + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java new file mode 100644 index 00000000000..1f695e00ef9 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java @@ -0,0 +1,143 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a bytecode instruction. + * + * @author Eric Bruneton + */ +public abstract class AbstractInsnNode { + + /** + * The type of {@link InsnNode} instructions. + */ + public final static int INSN = 0; + + /** + * The type of {@link IntInsnNode} instructions. + */ + public final static int INT_INSN = 1; + + /** + * The type of {@link VarInsnNode} instructions. + */ + public final static int VAR_INSN = 2; + + /** + * The type of {@link TypeInsnNode} instructions. + */ + public final static int TYPE_INSN = 3; + + /** + * The type of {@link FieldInsnNode} instructions. + */ + public final static int FIELD_INSN = 4; + + /** + * The type of {@link MethodInsnNode} instructions. + */ + public final static int METHOD_INSN = 5; + + /** + * The type of {@link JumpInsnNode} instructions. + */ + public final static int JUMP_INSN = 6; + + /** + * The type of {@link LabelNode} "instructions". + */ + public final static int LABEL = 7; + + /** + * The type of {@link LdcInsnNode} instructions. + */ + public final static int LDC_INSN = 8; + + /** + * The type of {@link IincInsnNode} instructions. + */ + public final static int IINC_INSN = 9; + + /** + * The type of {@link TableSwitchInsnNode} instructions. + */ + public final static int TABLESWITCH_INSN = 10; + + /** + * The type of {@link LookupSwitchInsnNode} instructions. + */ + public final static int LOOKUPSWITCH_INSN = 11; + + /** + * The type of {@link MultiANewArrayInsnNode} instructions. + */ + public final static int MULTIANEWARRAY_INSN = 12; + + /** + * The opcode of this instruction. + */ + protected int opcode; + + /** + * Constructs a new {@link AbstractInsnNode}. + * + * @param opcode the opcode of the instruction to be constructed. + */ + protected AbstractInsnNode(final int opcode) { + this.opcode = opcode; + } + + /** + * Returns the opcode of this instruction. + * + * @return the opcode of this instruction. + */ + public int getOpcode() { + return opcode; + } + + /** + * Returns the type of this instruction. + * + * @return the type of this instruction, i.e. one the constants defined in + * this class. + */ + public abstract int getType(); + + /** + * Makes the given code visitor visit this instruction. + * + * @param cv a code visitor. + */ + public abstract void accept(final MethodVisitor cv); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java new file mode 100644 index 00000000000..4911e3e6e57 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java @@ -0,0 +1,187 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import java.util.ArrayList; +import java.util.List; + +import org.objectweb.asm.AnnotationVisitor; + +/** + * A node that represents an annotationn. + * + * @author Eric Bruneton + */ +public class AnnotationNode implements AnnotationVisitor { + + /** + * The class descriptor of the annotation class. + */ + public String desc; + + /** + * The name value pairs of this annotation. Each name value pair is stored + * as two consecutive elements in the list. The name is a {@link String}, + * and the value may be a {@link Byte}, {@link Boolean}, {@link Character}, + * {@link Short}, {@link Integer}, {@link Long}, {@link Float}, + * {@link Double}, {@link String} or {@link org.objectweb.asm.Type}, or an + * two elements String array (for enumeration values), a + * {@link AnnotationNode}, or a {@link List} of values of one of the + * preceding types. The list may be null if there is no name + * value pair. + */ + public List values; + + /** + * Constructs a new {@link AnnotationNode}. + * + * @param desc the class descriptor of the annotation class. + */ + public AnnotationNode(final String desc) { + this.desc = desc; + } + + /** + * Constructs a new {@link AnnotationNode} to visit an array value. + * + * @param values where the visited values must be stored. + */ + AnnotationNode(final List values) { + this.values = values; + } + + // ------------------------------------------------------------------------ + // Implementation of the AnnotationVisitor interface + // ------------------------------------------------------------------------ + + public void visit(final String name, final Object value) { + if (values == null) { + values = new ArrayList(this.desc != null ? 2 : 1); + } + if (this.desc != null) { + values.add(name); + } + values.add(value); + } + + public void visitEnum( + final String name, + final String desc, + final String value) + { + if (values == null) { + values = new ArrayList(this.desc != null ? 2 : 1); + } + if (this.desc != null) { + values.add(name); + } + values.add(new String[] { desc, value }); + } + + public AnnotationVisitor visitAnnotation( + final String name, + final String desc) + { + if (values == null) { + values = new ArrayList(this.desc != null ? 2 : 1); + } + if (this.desc != null) { + values.add(name); + } + AnnotationNode annotation = new AnnotationNode(desc); + values.add(annotation); + return annotation; + } + + public AnnotationVisitor visitArray(final String name) { + if (values == null) { + values = new ArrayList(this.desc != null ? 2 : 1); + } + if (this.desc != null) { + values.add(name); + } + List array = new ArrayList(); + values.add(array); + return new AnnotationNode(array); + } + + public void visitEnd() { + } + + // ------------------------------------------------------------------------ + // Accept methods + // ------------------------------------------------------------------------ + + /** + * Makes the given visitor visit this annotation. + * + * @param av an annotation visitor. + */ + public void accept(final AnnotationVisitor av) { + if (values != null) { + for (int i = 0; i < values.size(); i += 2) { + String name = (String) values.get(i); + Object value = values.get(i + 1); + accept(av, name, value); + } + } + av.visitEnd(); + } + + /** + * Makes the given visitor visit a given annotation value. + * + * @param av an annotation visitor. + * @param name the value name. + * @param value the actual value. + */ + static void accept( + final AnnotationVisitor av, + final String name, + final Object value) + { + if (value instanceof String[]) { + String[] typeconst = (String[]) value; + av.visitEnum(name, typeconst[0], typeconst[1]); + } else if (value instanceof AnnotationNode) { + AnnotationNode an = (AnnotationNode) value; + an.accept(av.visitAnnotation(name, an.desc)); + } else if (value instanceof List) { + AnnotationVisitor v = av.visitArray(name); + List array = (List) value; + for (int j = 0; j < array.size(); ++j) { + accept(v, null, array.get(j)); + } + v.visitEnd(); + } else { + av.visit(name, value); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java new file mode 100644 index 00000000000..0771c87dc85 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/ClassNode.java @@ -0,0 +1,283 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.FieldVisitor; + +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; + +/** + * A node that represents a class. + * + * @author Eric Bruneton + */ +public class ClassNode extends MemberNode implements ClassVisitor { + + /** + * The class version. + */ + public int version; + + /** + * The class's access flags (see {@link org.objectweb.asm.Opcodes}). This + * field also indicates if the class is deprecated. + */ + public int access; + + /** + * The internal name of the class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + */ + public String name; + + /** + * The signature of the class. Mayt be null. + */ + public String signature; + + /** + * The internal of name of the super class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). For + * interfaces, the super class is {@link Object}. May be null, + * but only for the {@link Object} class. + */ + public String superName; + + /** + * The internal names of the class's interfaces (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). This + * list is a list of {@link String} objects. + */ + public List interfaces; + + /** + * The name of the source file from which this class was compiled. May be + * null. + */ + public String sourceFile; + + /** + * Debug information to compute the correspondance between source and + * compiled elements of the class. May be null. + */ + public String sourceDebug; + + /** + * The internal name of the enclosing class of the class. May be + * null. + */ + public String outerClass; + + /** + * The name of the method that contains the class, or null if the + * class is not enclosed in a method. + */ + public String outerMethod; + + /** + * The descriptor of the method that contains the class, or null + * if the class is not enclosed in a method. + */ + public String outerMethodDesc; + + /** + * Informations about the inner classes of this class. This list is a list + * of {@link InnerClassNode} objects. + * + * @associates org.objectweb.asm.tree.InnerClassNode + */ + public List innerClasses; + + /** + * The fields of this class. This list is a list of {@link FieldNode} + * objects. + * + * @associates org.objectweb.asm.tree.FieldNode + */ + public List fields; + + /** + * The methods of this class. This list is a list of {@link MethodNode} + * objects. + * + * @associates org.objectweb.asm.tree.MethodNode + */ + public List methods; + + /** + * Constructs a new {@link ClassNode}. + */ + public ClassNode() { + this.interfaces = new ArrayList(); + this.innerClasses = new ArrayList(); + this.fields = new ArrayList(); + this.methods = new ArrayList(); + } + + // ------------------------------------------------------------------------ + // Implementation of the ClassVisitor interface + // ------------------------------------------------------------------------ + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + this.version = version; + this.access = access; + this.name = name; + this.signature = signature; + this.superName = superName; + if (interfaces != null) { + this.interfaces.addAll(Arrays.asList(interfaces)); + } + } + + public void visitSource(final String file, final String debug) { + sourceFile = file; + sourceDebug = debug; + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + outerClass = owner; + outerMethod = name; + outerMethodDesc = desc; + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + InnerClassNode icn = new InnerClassNode(name, + outerName, + innerName, + access); + innerClasses.add(icn); + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + FieldNode fn = new FieldNode(access, name, desc, signature, value); + fields.add(fn); + return fn; + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + MethodNode mn = new MethodNode(access, + name, + desc, + signature, + exceptions); + methods.add(mn); + return mn; + } + + public void visitEnd() { + } + + // ------------------------------------------------------------------------ + // Accept method + // ------------------------------------------------------------------------ + + /** + * Makes the given class visitor visit this class. + * + * @param cv a class visitor. + */ + public void accept(final ClassVisitor cv) { + // visits header + String[] interfaces = new String[this.interfaces.size()]; + this.interfaces.toArray(interfaces); + cv.visit(version, access, name, signature, superName, interfaces); + // visits source + if (sourceFile != null || sourceDebug != null) { + cv.visitSource(sourceFile, sourceDebug); + } + // visits outer class + if (outerClass != null) { + cv.visitOuterClass(outerClass, outerMethod, outerMethodDesc); + } + // visits attributes + int i, n; + n = visibleAnnotations == null ? 0 : visibleAnnotations.size(); + for (i = 0; i < n; ++i) { + AnnotationNode an = (AnnotationNode) visibleAnnotations.get(i); + an.accept(cv.visitAnnotation(an.desc, true)); + } + n = invisibleAnnotations == null ? 0 : invisibleAnnotations.size(); + for (i = 0; i < n; ++i) { + AnnotationNode an = (AnnotationNode) invisibleAnnotations.get(i); + an.accept(cv.visitAnnotation(an.desc, false)); + } + n = attrs == null ? 0 : attrs.size(); + for (i = 0; i < n; ++i) { + cv.visitAttribute((Attribute) attrs.get(i)); + } + // visits inner classes + for (i = 0; i < innerClasses.size(); ++i) { + ((InnerClassNode) innerClasses.get(i)).accept(cv); + } + // visits fields + for (i = 0; i < fields.size(); ++i) { + ((FieldNode) fields.get(i)).accept(cv); + } + // visits methods + for (i = 0; i < methods.size(); ++i) { + ((MethodNode) methods.get(i)).accept(cv); + } + // visits end + cv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java new file mode 100644 index 00000000000..4399e3a25e1 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java @@ -0,0 +1,97 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a field instruction. A field instruction is an + * instruction that loads or stores the value of a field of an object. + * + * @author Eric Bruneton + */ +public class FieldInsnNode extends AbstractInsnNode { + + /** + * The internal name of the field's owner class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + */ + public String owner; + + /** + * The field's name. + */ + public String name; + + /** + * The field's descriptor (see {@link org.objectweb.asm.Type}). + */ + public String desc; + + /** + * Constructs a new {@link FieldInsnNode}. + * + * @param opcode the opcode of the type instruction to be constructed. This + * opcode must be GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD. + * @param owner the internal name of the field's owner class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + * @param name the field's name. + * @param desc the field's descriptor (see {@link org.objectweb.asm.Type}). + */ + public FieldInsnNode( + final int opcode, + final String owner, + final String name, + final String desc) + { + super(opcode); + this.owner = owner; + this.name = name; + this.desc = desc; + } + + /** + * Sets the opcode of this instruction. + * + * @param opcode the new instruction opcode. This opcode must be GETSTATIC, + * PUTSTATIC, GETFIELD or PUTFIELD. + */ + public void setOpcode(final int opcode) { + this.opcode = opcode; + } + + public void accept(final MethodVisitor cv) { + cv.visitFieldInsn(opcode, owner, name, desc); + } + + public int getType() { + return FIELD_INSN; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java new file mode 100644 index 00000000000..c13ac9e22f1 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/FieldNode.java @@ -0,0 +1,123 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; + +/** + * A node that represents a field. + * + * @author Eric Bruneton + */ +public class FieldNode extends MemberNode implements FieldVisitor { + + /** + * The field's access flags (see {@link org.objectweb.asm.Opcodes}). This + * field also indicates if the field is synthetic and/or deprecated. + */ + public int access; + + /** + * The field's name. + */ + public String name; + + /** + * The field's descriptor (see {@link org.objectweb.asm.Type}). + */ + public String desc; + + /** + * The field's signature. May be null. + */ + public String signature; + + /** + * The field's initial value. This field, which may be null if + * the field does not have an initial value, must be an {@link Integer}, a + * {@link Float}, a {@link Long}, a {@link Double} or a {@link String}. + */ + public Object value; + + /** + * Constructs a new {@link FieldNode}. + * + * @param access the field's access flags (see + * {@link org.objectweb.asm.Opcodes}). This parameter also indicates + * if the field is synthetic and/or deprecated. + * @param name the field's name. + * @param desc the field's descriptor (see {@link org.objectweb.asm.Type}). + * @param signature the field's signature. + * @param value the field's initial value. This parameter, which may be + * null if the field does not have an initial value, must + * be an {@link Integer}, a {@link Float}, a {@link Long}, a + * {@link Double} or a {@link String}. + */ + public FieldNode( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + this.access = access; + this.name = name; + this.desc = desc; + this.signature = signature; + this.value = value; + } + + /** + * Makes the given class visitor visit this field. + * + * @param cv a class visitor. + */ + public void accept(final ClassVisitor cv) { + FieldVisitor fv = cv.visitField(access, name, desc, signature, value); + int i, n; + n = visibleAnnotations == null ? 0 : visibleAnnotations.size(); + for (i = 0; i < n; ++i) { + AnnotationNode an = (AnnotationNode) visibleAnnotations.get(i); + an.accept(fv.visitAnnotation(an.desc, true)); + } + n = invisibleAnnotations == null ? 0 : invisibleAnnotations.size(); + for (i = 0; i < n; ++i) { + AnnotationNode an = (AnnotationNode) invisibleAnnotations.get(i); + an.accept(fv.visitAnnotation(an.desc, false)); + } + n = attrs == null ? 0 : attrs.size(); + for (i = 0; i < n; ++i) { + fv.visitAttribute((Attribute) attrs.get(i)); + } + fv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java new file mode 100644 index 00000000000..e7e79dc5145 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java @@ -0,0 +1,71 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +/** + * A node that represents an IINC instruction. + * + * @author Eric Bruneton + */ +public class IincInsnNode extends AbstractInsnNode { + + /** + * Index of the local variable to be incremented. + */ + public int var; + + /** + * Amount to increment the local variable by. + */ + public int incr; + + /** + * Constructs a new {@link IincInsnNode}. + * + * @param var index of the local variable to be incremented. + * @param incr increment amount to increment the local variable by. + */ + public IincInsnNode(final int var, final int incr) { + super(Opcodes.IINC); + this.var = var; + this.incr = incr; + } + + public void accept(final MethodVisitor mv) { + mv.visitIincInsn(var, incr); + } + + public int getType() { + return IINC_INSN; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java new file mode 100644 index 00000000000..a325317b46e --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java @@ -0,0 +1,101 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.ClassVisitor; + +/** + * A node that represents an inner class. + * + * @author Eric Bruneton + */ +public class InnerClassNode { + + /** + * The internal name of an inner class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + */ + public String name; + + /** + * The internal name of the class to which the inner class belongs (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). May + * be null. + */ + public String outerName; + + /** + * The (simple) name of the inner class inside its enclosing class. May be + * null for anonymous inner classes. + */ + public String innerName; + + /** + * The access flags of the inner class as originally declared in the + * enclosing class. + */ + public int access; + + /** + * Constructs a new {@link InnerClassNode}. + * + * @param name the internal name of an inner class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + * @param outerName the internal name of the class to which the inner class + * belongs (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + * May be null. + * @param innerName the (simple) name of the inner class inside its + * enclosing class. May be null for anonymous inner + * classes. + * @param access the access flags of the inner class as originally declared + * in the enclosing class. + */ + public InnerClassNode( + final String name, + final String outerName, + final String innerName, + final int access) + { + this.name = name; + this.outerName = outerName; + this.innerName = innerName; + this.access = access; + } + + /** + * Makes the given class visitor visit this inner class. + * + * @param cv a class visitor. + */ + public void accept(final ClassVisitor cv) { + cv.visitInnerClass(name, outerName, innerName, access); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java new file mode 100644 index 00000000000..434dd5b313d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/InsnNode.java @@ -0,0 +1,96 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a zero operand instruction. + * + * @author Eric Bruneton + */ +public class InsnNode extends AbstractInsnNode { + + private final static InsnNode[] INSNS; + + static { + INSNS = new InsnNode[255]; + for (int i = 0; i < INSNS.length; ++i) { + INSNS[i] = new InsnNode(i); + } + } + + /** + * Returns the {@link InsnNode} corresponding to the given opcode. + * + * @deprecated uses the constructor instead. + * + * @param opcode an instruction opcode. + * @return the {@link InsnNode} corresponding to the given opcode. + */ + public final static InsnNode getByOpcode(final int opcode) { + return INSNS[opcode]; + } + + /** + * Constructs a new {@link InsnNode}. + * + * @param opcode the opcode of the instruction to be constructed. This + * opcode must be NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, + * ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, + * FCONST_0, FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, + * FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, + * FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, + * DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, + * FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, + * LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, + * ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, + * LXOR, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, + * I2B, I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, + * FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, + * MONITORENTER, or MONITOREXIT. + */ + public InsnNode(final int opcode) { + super(opcode); + } + + /** + * Makes the given visitor visit this instruction. + * + * @param mv a method visitor. + */ + public void accept(final MethodVisitor mv) { + mv.visitInsn(opcode); + } + + public int getType() { + return INSN; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java new file mode 100644 index 00000000000..2c200a58567 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java @@ -0,0 +1,75 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents an instruction with a single int operand. + * + * @author Eric Bruneton + */ +public class IntInsnNode extends AbstractInsnNode { + + /** + * The operand of this instruction. + */ + public int operand; + + /** + * Constructs a new {@link IntInsnNode}. + * + * @param opcode the opcode of the instruction to be constructed. This + * opcode must be BIPUSH, SIPUSH or NEWARRAY. + * @param operand the operand of the instruction to be constructed. + */ + public IntInsnNode(final int opcode, final int operand) { + super(opcode); + this.operand = operand; + } + + /** + * Sets the opcode of this instruction. + * + * @param opcode the new instruction opcode. This opcode must be BIPUSH, + * SIPUSH or NEWARRAY. + */ + public void setOpcode(final int opcode) { + this.opcode = opcode; + } + + public void accept(final MethodVisitor mv) { + mv.visitIntInsn(opcode, operand); + } + + public int getType() { + return INT_INSN; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java new file mode 100644 index 00000000000..5ab6e11ee53 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java @@ -0,0 +1,84 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a jump instruction. A jump instruction is an + * instruction that may jump to another instruction. + * + * @author Eric Bruneton + */ +public class JumpInsnNode extends AbstractInsnNode { + + /** + * The operand of this instruction. This operand is a label that designates + * the instruction to which this instruction may jump. + */ + public Label label; + + /** + * Constructs a new {@link JumpInsnNode}. + * + * @param opcode the opcode of the type instruction to be constructed. This + * opcode must be IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, + * IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, + * IF_ACMPNE, GOTO, JSR, IFNULL or IFNONNULL. + * @param label the operand of the instruction to be constructed. This + * operand is a label that designates the instruction to which the + * jump instruction may jump. + */ + public JumpInsnNode(final int opcode, final Label label) { + super(opcode); + this.label = label; + } + + /** + * Sets the opcode of this instruction. + * + * @param opcode the new instruction opcode. This opcode must be IFEQ, IFNE, + * IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, + * IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE, GOTO, JSR, + * IFNULL or IFNONNULL. + */ + public void setOpcode(final int opcode) { + this.opcode = opcode; + } + + public void accept(final MethodVisitor mv) { + mv.visitJumpInsn(opcode, label); + } + + public int getType() { + return JUMP_INSN; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java new file mode 100644 index 00000000000..5eead6e3380 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LabelNode.java @@ -0,0 +1,54 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; + +/** + * An {@link AbstractInsnNode} that encapsulates a {@link Label}. + */ +public class LabelNode extends AbstractInsnNode { + + public Label label; + + public LabelNode(final Label label) { + super(-1); + this.label = label; + } + + public void accept(final MethodVisitor cv) { + cv.visitLabel(label); + } + + public int getType() { + return LABEL; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java new file mode 100644 index 00000000000..ef955137109 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java @@ -0,0 +1,68 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +/** + * A node that represents an LDC instruction. + * + * @author Eric Bruneton + */ +public class LdcInsnNode extends AbstractInsnNode { + + /** + * The constant to be loaded on the stack. This parameter must be a non null + * {@link Integer}, a {@link Float}, a {@link Long}, a {@link Double}, a + * {@link String} or a {@link org.objectweb.asm.Type}. + */ + public Object cst; + + /** + * Constructs a new {@link LdcInsnNode}. + * + * @param cst the constant to be loaded on the stack. This parameter must be + * a non null {@link Integer}, a {@link Float}, a {@link Long}, a + * {@link Double} or a {@link String}. + */ + public LdcInsnNode(final Object cst) { + super(Opcodes.LDC); + this.cst = cst; + } + + public void accept(final MethodVisitor mv) { + mv.visitLdcInsn(cst); + } + + public int getType() { + return LDC_INSN; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java new file mode 100644 index 00000000000..0d4974749b6 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java @@ -0,0 +1,73 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a line number declaration. + * + * @author Eric Bruneton + */ +public class LineNumberNode { + + /** + * A line number. This number refers to the source file from which the class + * was compiled. + */ + public int line; + + /** + * The first instruction corresponding to this line number. + */ + public Label start; + + /** + * Constructs a new {@link LineNumberNode}. + * + * @param line a line number. This number refers to the source file from + * which the class was compiled. + * @param start the first instruction corresponding to this line number. + */ + public LineNumberNode(final int line, final Label start) { + this.line = line; + this.start = start; + } + + /** + * Makes the given visitor visit this line number declaration. + * + * @param mv a method visitor. + */ + public void accept(final MethodVisitor mv) { + mv.visitLineNumber(line, start); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java new file mode 100644 index 00000000000..b9efe44e314 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java @@ -0,0 +1,111 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Label; + +/** + * A node that represents a local variable declaration. + * + * @author Eric Bruneton + */ +public class LocalVariableNode { + + /** + * The name of a local variable. + */ + public String name; + + /** + * The type descriptor of this local variable. + */ + public String desc; + + /** + * The signature of this local variable. May be null. + */ + public String signature; + + /** + * The first instruction corresponding to the scope of this local variable + * (inclusive). + */ + public Label start; + + /** + * The last instruction corresponding to the scope of this local variable + * (exclusive). + */ + public Label end; + + /** + * The local variable's index. + */ + public int index; + + /** + * Constructs a new {@link LocalVariableNode}. + * + * @param name the name of a local variable. + * @param desc the type descriptor of this local variable. + * @param signature the signature of this local variable. May be + * null. + * @param start the first instruction corresponding to the scope of this + * local variable (inclusive). + * @param end the last instruction corresponding to the scope of this local + * variable (exclusive). + * @param index the local variable's index. + */ + public LocalVariableNode( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + this.name = name; + this.desc = desc; + this.signature = signature; + this.start = start; + this.end = end; + this.index = index; + } + + /** + * Makes the given visitor visit this local variable declaration. + * + * @param mv a method visitor. + */ + public void accept(final MethodVisitor mv) { + mv.visitLocalVariable(name, desc, signature, start, end, index); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java new file mode 100644 index 00000000000..1c8e69fcc60 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java @@ -0,0 +1,103 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Label; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.MethodVisitor; + +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; + +/** + * A node that represents a LOOKUPSWITCH instruction. + * + * @author Eric Bruneton + */ +public class LookupSwitchInsnNode extends AbstractInsnNode { + + /** + * Beginning of the default handler block. + */ + public Label dflt; + + /** + * The values of the keys. This list is a list of {@link Integer} objects. + */ + public List keys; + + /** + * Beginnings of the handler blocks. This list is a list of {@link Label} + * objects. + */ + public List labels; + + /** + * Constructs a new {@link LookupSwitchInsnNode}. + * + * @param dflt beginning of the default handler block. + * @param keys the values of the keys. + * @param labels beginnings of the handler blocks. labels[i] is + * the beginning of the handler block for the keys[i] key. + */ + public LookupSwitchInsnNode( + final Label dflt, + final int[] keys, + final Label[] labels) + { + super(Opcodes.LOOKUPSWITCH); + this.dflt = dflt; + this.keys = new ArrayList(keys == null ? 0 : keys.length); + this.labels = new ArrayList(labels == null ? 0 : labels.length); + if (keys != null) { + for (int i = 0; i < keys.length; ++i) { + this.keys.add(new Integer(keys[i])); + } + } + if (labels != null) { + this.labels.addAll(Arrays.asList(labels)); + } + } + + public void accept(final MethodVisitor mv) { + int[] keys = new int[this.keys.size()]; + for (int i = 0; i < keys.length; ++i) { + keys[i] = ((Integer) this.keys.get(i)).intValue(); + } + Label[] labels = new Label[this.labels.size()]; + this.labels.toArray(labels); + mv.visitLookupSwitchInsn(dflt, keys, labels); + } + + public int getType() { + return LOOKUPSWITCH_INSN; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java new file mode 100644 index 00000000000..86b1c5c7bf8 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MemberNode.java @@ -0,0 +1,120 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import java.util.ArrayList; +import java.util.List; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; + +/** + * An abstract class, field or method node. + * + * @author Eric Bruneton + */ +public abstract class MemberNode { + + /** + * The runtime visible annotations of this class, field or method. This list + * is a list of {@link AnnotationNode} objects. May be null. + * + * @associates org.objectweb.asm.tree.AnnotationNode + * @label visible + */ + public List visibleAnnotations; + + /** + * The runtime invisible annotations of this class, field or method. This + * list is a list of {@link AnnotationNode} objects. May be null. + * + * @associates org.objectweb.asm.tree.AnnotationNode + * @label invisible + */ + public List invisibleAnnotations; + + /** + * The non standard attributes of this class, field or method. This list is + * a list of {@link Attribute} objects. May be null. + * + * @associates org.objectweb.asm.Attribute + */ + public List attrs; + + /** + * Constructs a new {@link MemberNode}. + */ + public MemberNode() { + } + + /** + * Visits an annotation of this class, field or method. + * + * @param desc the class descriptor of the annotation class. + * @param visible true if the annotation is visible at runtime. + * @return a visitor to visit the annotation values. + */ + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + AnnotationNode an = new AnnotationNode(desc); + if (visible) { + if (visibleAnnotations == null) { + visibleAnnotations = new ArrayList(1); + } + visibleAnnotations.add(an); + } else { + if (invisibleAnnotations == null) { + invisibleAnnotations = new ArrayList(1); + } + invisibleAnnotations.add(an); + } + return an; + } + + /** + * Visits a non standard attribute of this class, field or method. + * + * @param attr an attribute. + */ + public void visitAttribute(final Attribute attr) { + if (attrs == null) { + attrs = new ArrayList(1); + } + attrs.add(attr); + } + + /** + * Visits the end of this class, field or method. + */ + public void visitEnd() { + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java new file mode 100644 index 00000000000..714aabe6e9b --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java @@ -0,0 +1,98 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a method instruction. A method instruction is an + * instruction that invokes a method. + * + * @author Eric Bruneton + */ +public class MethodInsnNode extends AbstractInsnNode { + + /** + * The internal name of the method's owner class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + */ + public String owner; + + /** + * The method's name. + */ + public String name; + + /** + * The method's descriptor (see {@link org.objectweb.asm.Type}). + */ + public String desc; + + /** + * Constructs a new {@link MethodInsnNode}. + * + * @param opcode the opcode of the type instruction to be constructed. This + * opcode must be INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or + * INVOKEINTERFACE. + * @param owner the internal name of the method's owner class (see + * {@link org.objectweb.asm.Type#getInternalName() getInternalName}). + * @param name the method's name. + * @param desc the method's descriptor (see {@link org.objectweb.asm.Type}). + */ + public MethodInsnNode( + final int opcode, + final String owner, + final String name, + final String desc) + { + super(opcode); + this.owner = owner; + this.name = name; + this.desc = desc; + } + + /** + * Sets the opcode of this instruction. + * + * @param opcode the new instruction opcode. This opcode must be + * INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or INVOKEINTERFACE. + */ + public void setOpcode(final int opcode) { + this.opcode = opcode; + } + + public void accept(final MethodVisitor mv) { + mv.visitMethodInsn(opcode, owner, name, desc); + } + + public int getType() { + return METHOD_INSN; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java new file mode 100644 index 00000000000..f746bfa3ffd --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MethodNode.java @@ -0,0 +1,439 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +import java.util.List; +import java.util.ArrayList; +import java.util.Arrays; + +/** + * A node that represents a method. + * + * @author Eric Bruneton + */ +public class MethodNode extends MemberNode implements MethodVisitor { + + /** + * The method's access flags (see {@link Opcodes}). This field also + * indicates if the method is synthetic and/or deprecated. + */ + public int access; + + /** + * The method's name. + */ + public String name; + + /** + * The method's descriptor (see {@link Type}). + */ + public String desc; + + /** + * The method's signature. May be null. + */ + public String signature; + + /** + * The internal names of the method's exception classes (see + * {@link Type#getInternalName() getInternalName}). This list is a list of + * {@link String} objects. + */ + public List exceptions; + + /** + * The default value of this annotation interface method. This field must be + * a {@link Byte}, {@link Boolean}, {@link Character}, {@link Short}, + * {@link Integer}, {@link Long}, {@link Float}, {@link Double}, + * {@link String} or {@link Type}, or an two elements String array (for + * enumeration values), a {@link AnnotationNode}, or a {@link List} of + * values of one of the preceding types. May be null. + */ + public Object annotationDefault; + + /** + * The runtime visible parameter annotations of this method. These lists are + * lists of {@link AnnotationNode} objects. May be null. + * + * @associates org.objectweb.asm.tree.AnnotationNode + * @label invisible parameters + */ + public List[] visibleParameterAnnotations; + + /** + * The runtime invisible parameter annotations of this method. These lists + * are lists of {@link AnnotationNode} objects. May be null. + * + * @associates org.objectweb.asm.tree.AnnotationNode + * @label visible parameters + */ + public List[] invisibleParameterAnnotations; + + /** + * The instructions of this method. This list is a list of + * {@link AbstractInsnNode} objects. + * + * @associates org.objectweb.asm.tree.AbstractInsnNode + * @label instructions + */ + public List instructions; + + /** + * The try catch blocks of this method. This list is a list of + * {@link TryCatchBlockNode} objects. + * + * @associates org.objectweb.asm.tree.TryCatchBlockNode + */ + public List tryCatchBlocks; + + /** + * The maximum stack size of this method. + */ + public int maxStack; + + /** + * The maximum number of local variables of this method. + */ + public int maxLocals; + + /** + * The local variables of this method. This list is a list of + * {@link LocalVariableNode} objects. May be null + * + * @associates org.objectweb.asm.tree.LocalVariableNode + */ + public List localVariables; + + /** + * The line numbers of this method. This list is a list of + * {@link LineNumberNode} objects. May be null + * + * @associates org.objectweb.asm.tree.LineNumberNode + */ + public List lineNumbers; + + /** + * Constructs a new {@link MethodNode}. + * + * @param access the method's access flags (see {@link Opcodes}). This + * parameter also indicates if the method is synthetic and/or + * deprecated. + * @param name the method's name. + * @param desc the method's descriptor (see {@link Type}). + * @param signature the method's signature. May be null. + * @param exceptions the internal names of the method's exception classes + * (see {@link Type#getInternalName() getInternalName}). May be + * null. + */ + public MethodNode( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + this.access = access; + this.name = name; + this.desc = desc; + this.signature = signature; + this.exceptions = new ArrayList(exceptions == null + ? 0 + : exceptions.length); + boolean isAbstract = (access & Opcodes.ACC_ABSTRACT) != 0; + this.instructions = new ArrayList(isAbstract ? 0 : 24); + if (!isAbstract) { + this.localVariables = new ArrayList(5); + this.lineNumbers = new ArrayList(5); + } + this.tryCatchBlocks = new ArrayList(); + if (exceptions != null) { + this.exceptions.addAll(Arrays.asList(exceptions)); + } + } + + // ------------------------------------------------------------------------ + // Implementation of the MethodVisitor interface + // ------------------------------------------------------------------------ + + public AnnotationVisitor visitAnnotationDefault() { + return new AnnotationNode(new ArrayList(0) { + public boolean add(Object o) { + annotationDefault = o; + return super.add(o); + } + }); + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + AnnotationNode an = new AnnotationNode(desc); + if (visible) { + if (visibleParameterAnnotations == null) { + int params = Type.getArgumentTypes(this.desc).length; + visibleParameterAnnotations = new List[params]; + } + if (visibleParameterAnnotations[parameter] == null) { + visibleParameterAnnotations[parameter] = new ArrayList(1); + } + visibleParameterAnnotations[parameter].add(an); + } else { + if (invisibleParameterAnnotations == null) { + int params = Type.getArgumentTypes(this.desc).length; + invisibleParameterAnnotations = new List[params]; + } + if (invisibleParameterAnnotations[parameter] == null) { + invisibleParameterAnnotations[parameter] = new ArrayList(1); + } + invisibleParameterAnnotations[parameter].add(an); + } + return an; + } + + public void visitCode() { + } + + public void visitInsn(final int opcode) { + instructions.add(new InsnNode(opcode)); + } + + public void visitIntInsn(final int opcode, final int operand) { + instructions.add(new IntInsnNode(opcode, operand)); + } + + public void visitVarInsn(final int opcode, final int var) { + instructions.add(new VarInsnNode(opcode, var)); + } + + public void visitTypeInsn(final int opcode, final String desc) { + instructions.add(new TypeInsnNode(opcode, desc)); + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + instructions.add(new FieldInsnNode(opcode, owner, name, desc)); + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + instructions.add(new MethodInsnNode(opcode, owner, name, desc)); + } + + public void visitJumpInsn(final int opcode, final Label label) { + instructions.add(new JumpInsnNode(opcode, label)); + } + + public void visitLabel(final Label label) { + instructions.add(new LabelNode(label)); + } + + public void visitLdcInsn(final Object cst) { + instructions.add(new LdcInsnNode(cst)); + } + + public void visitIincInsn(final int var, final int increment) { + instructions.add(new IincInsnNode(var, increment)); + } + + public void visitTableSwitchInsn( + final int min, + final int max, + final Label dflt, + final Label[] labels) + { + instructions.add(new TableSwitchInsnNode(min, max, dflt, labels)); + } + + public void visitLookupSwitchInsn( + final Label dflt, + final int[] keys, + final Label[] labels) + { + instructions.add(new LookupSwitchInsnNode(dflt, keys, labels)); + } + + public void visitMultiANewArrayInsn(final String desc, final int dims) { + instructions.add(new MultiANewArrayInsnNode(desc, dims)); + } + + public void visitTryCatchBlock( + final Label start, + final Label end, + final Label handler, + final String type) + { + tryCatchBlocks.add(new TryCatchBlockNode(start, end, handler, type)); + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + localVariables.add(new LocalVariableNode(name, + desc, + signature, + start, + end, + index)); + } + + public void visitLineNumber(final int line, final Label start) { + lineNumbers.add(new LineNumberNode(line, start)); + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + this.maxStack = maxStack; + this.maxLocals = maxLocals; + } + + // ------------------------------------------------------------------------ + // Accept method + // ------------------------------------------------------------------------ + + /** + * Makes the given class visitor visit this method. + * + * @param cv a class visitor. + */ + public void accept(final ClassVisitor cv) { + String[] exceptions = new String[this.exceptions.size()]; + this.exceptions.toArray(exceptions); + MethodVisitor mv = cv.visitMethod(access, + name, + desc, + signature, + exceptions); + if (mv != null) { + accept(mv); + } + } + + /** + * Makes the given method visitor visit this method. + * + * @param mv a method visitor. + */ + public void accept(final MethodVisitor mv) { + // visits the method attributes + int i, j, n; + if (annotationDefault != null) { + AnnotationVisitor av = mv.visitAnnotationDefault(); + AnnotationNode.accept(av, null, annotationDefault); + av.visitEnd(); + } + n = visibleAnnotations == null ? 0 : visibleAnnotations.size(); + for (i = 0; i < n; ++i) { + AnnotationNode an = (AnnotationNode) visibleAnnotations.get(i); + an.accept(mv.visitAnnotation(an.desc, true)); + } + n = invisibleAnnotations == null ? 0 : invisibleAnnotations.size(); + for (i = 0; i < n; ++i) { + AnnotationNode an = (AnnotationNode) invisibleAnnotations.get(i); + an.accept(mv.visitAnnotation(an.desc, false)); + } + n = visibleParameterAnnotations == null + ? 0 + : visibleParameterAnnotations.length; + for (i = 0; i < n; ++i) { + List l = visibleParameterAnnotations[i]; + if (l == null) { + continue; + } + for (j = 0; j < l.size(); ++j) { + AnnotationNode an = (AnnotationNode) l.get(j); + an.accept(mv.visitParameterAnnotation(i, an.desc, true)); + } + } + n = invisibleParameterAnnotations == null + ? 0 + : invisibleParameterAnnotations.length; + for (i = 0; i < n; ++i) { + List l = invisibleParameterAnnotations[i]; + if (l == null) { + continue; + } + for (j = 0; j < l.size(); ++j) { + AnnotationNode an = (AnnotationNode) l.get(j); + an.accept(mv.visitParameterAnnotation(i, an.desc, false)); + } + } + n = attrs == null ? 0 : attrs.size(); + for (i = 0; i < n; ++i) { + mv.visitAttribute((Attribute) attrs.get(i)); + } + // visits the method's code + if (instructions.size() > 0) { + mv.visitCode(); + // visits try catch blocks + for (i = 0; i < tryCatchBlocks.size(); ++i) { + ((TryCatchBlockNode) tryCatchBlocks.get(i)).accept(mv); + } + // visits instructions + for (i = 0; i < instructions.size(); ++i) { + ((AbstractInsnNode) instructions.get(i)).accept(mv); + } + // visits local variables + n = localVariables == null ? 0 : localVariables.size(); + for (i = 0; i < n; ++i) { + ((LocalVariableNode) localVariables.get(i)).accept(mv); + } + // visits line numbers + n = lineNumbers == null ? 0 : lineNumbers.size(); + for (i = 0; i < n; ++i) { + ((LineNumberNode) lineNumbers.get(i)).accept(mv); + } + // visits maxs + mv.visitMaxs(maxStack, maxLocals); + } + mv.visitEnd(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java new file mode 100644 index 00000000000..a9cb3c14a1c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java @@ -0,0 +1,71 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a MULTIANEWARRAY instruction. + * + * @author Eric Bruneton + */ +public class MultiANewArrayInsnNode extends AbstractInsnNode { + + /** + * An array type descriptor (see {@link org.objectweb.asm.Type}). + */ + public String desc; + + /** + * Number of dimensions of the array to allocate. + */ + public int dims; + + /** + * Constructs a new {@link MultiANewArrayInsnNode}. + * + * @param desc an array type descriptor (see {@link org.objectweb.asm.Type}). + * @param dims number of dimensions of the array to allocate. + */ + public MultiANewArrayInsnNode(final String desc, final int dims) { + super(Opcodes.MULTIANEWARRAY); + this.desc = desc; + this.dims = dims; + } + + public void accept(final MethodVisitor mv) { + mv.visitMultiANewArrayInsn(desc, dims); + } + + public int getType() { + return MULTIANEWARRAY_INSN; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java new file mode 100644 index 00000000000..fa5e3f8207b --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java @@ -0,0 +1,102 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Label; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.MethodVisitor; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * A node that represents a TABLESWITCH instruction. + * + * @author Eric Bruneton + */ +public class TableSwitchInsnNode extends AbstractInsnNode { + + /** + * The minimum key value. + */ + public int min; + + /** + * The maximum key value. + */ + public int max; + + /** + * Beginning of the default handler block. + */ + public Label dflt; + + /** + * Beginnings of the handler blocks. This list is a list of {@link Label} + * objects. + */ + public List labels; + + /** + * Constructs a new {@link TableSwitchInsnNode}. + * + * @param min the minimum key value. + * @param max the maximum key value. + * @param dflt beginning of the default handler block. + * @param labels beginnings of the handler blocks. labels[i] is + * the beginning of the handler block for the min + i key. + */ + public TableSwitchInsnNode( + final int min, + final int max, + final Label dflt, + final Label[] labels) + { + super(Opcodes.TABLESWITCH); + this.min = min; + this.max = max; + this.dflt = dflt; + this.labels = new ArrayList(); + if (labels != null) { + this.labels.addAll(Arrays.asList(labels)); + } + } + + public void accept(final MethodVisitor mv) { + Label[] labels = new Label[this.labels.size()]; + this.labels.toArray(labels); + mv.visitTableSwitchInsn(min, max, dflt, labels); + } + + public int getType() { + return TABLESWITCH_INSN; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java new file mode 100644 index 00000000000..18cd3102240 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java @@ -0,0 +1,93 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a try catch block. + * + * @author Eric Bruneton + */ +public class TryCatchBlockNode { + + /** + * Beginning of the exception handler's scope (inclusive). + */ + public Label start; + + /** + * End of the exception handler's scope (exclusive). + */ + public Label end; + + /** + * Beginning of the exception handler's code. + */ + public Label handler; + + /** + * Internal name of the type of exceptions handled by the handler. May be + * null to catch any exceptions (for "finally" blocks). + */ + public String type; + + /** + * Constructs a new {@link TryCatchBlockNode}. + * + * @param start beginning of the exception handler's scope (inclusive). + * @param end end of the exception handler's scope (exclusive). + * @param handler beginning of the exception handler's code. + * @param type internal name of the type of exceptions handled by the + * handler, or null to catch any exceptions (for "finally" + * blocks). + */ + public TryCatchBlockNode( + final Label start, + final Label end, + final Label handler, + final String type) + { + this.start = start; + this.end = end; + this.handler = handler; + this.type = type; + } + + /** + * Makes the given visitor visit this try catch block. + * + * @param mv a method visitor. + */ + public void accept(final MethodVisitor mv) { + mv.visitTryCatchBlock(start, end, handler, type); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java new file mode 100644 index 00000000000..67c6b841eae --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java @@ -0,0 +1,78 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a type instruction. A type instruction is an + * instruction that takes a type descriptor as parameter. + * + * @author Eric Bruneton + */ +public class TypeInsnNode extends AbstractInsnNode { + + /** + * The operand of this instruction. This operand is a type descriptor (see + * {@link org.objectweb.asm.Type}). + */ + public String desc; + + /** + * Constructs a new {@link TypeInsnNode}. + * + * @param opcode the opcode of the type instruction to be constructed. This + * opcode must be NEW, ANEWARRAY, CHECKCAST or INSTANCEOF. + * @param desc the operand of the instruction to be constructed. This + * operand is a type descriptor (see {@link org.objectweb.asm.Type}). + */ + public TypeInsnNode(final int opcode, final String desc) { + super(opcode); + this.desc = desc; + } + + /** + * Sets the opcode of this instruction. + * + * @param opcode the new instruction opcode. This opcode must be NEW, + * ANEWARRAY, CHECKCAST or INSTANCEOF. + */ + public void setOpcode(final int opcode) { + this.opcode = opcode; + } + + public void accept(final MethodVisitor mv) { + mv.visitTypeInsn(opcode, desc); + } + + public int getType() { + return TYPE_INSN; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java new file mode 100644 index 00000000000..2fe3a952a50 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java @@ -0,0 +1,81 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree; + +import org.objectweb.asm.MethodVisitor; + +/** + * A node that represents a local variable instruction. A local variable + * instruction is an instruction that loads or stores the value of a local + * variable. + * + * @author Eric Bruneton + */ +public class VarInsnNode extends AbstractInsnNode { + + /** + * The operand of this instruction. This operand is the index of a local + * variable. + */ + public int var; + + /** + * Constructs a new {@link VarInsnNode}. + * + * @param opcode the opcode of the local variable instruction to be + * constructed. This opcode must be ILOAD, LLOAD, FLOAD, DLOAD, + * ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET. + * @param var the operand of the instruction to be constructed. This operand + * is the index of a local variable. + */ + public VarInsnNode(final int opcode, final int var) { + super(opcode); + this.var = var; + } + + /** + * Sets the opcode of this instruction. + * + * @param opcode the new instruction opcode. This opcode must be ILOAD, + * LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE + * or RET. + */ + public void setOpcode(final int opcode) { + this.opcode = opcode; + } + + public void accept(final MethodVisitor mv) { + mv.visitVarInsn(opcode, var); + } + + public int getType() { + return VAR_INSN; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java new file mode 100644 index 00000000000..9fd402831cc --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java @@ -0,0 +1,416 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.ArrayList; +import java.util.List; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Label; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.IincInsnNode; +import org.objectweb.asm.tree.JumpInsnNode; +import org.objectweb.asm.tree.LabelNode; +import org.objectweb.asm.tree.LookupSwitchInsnNode; +import org.objectweb.asm.tree.MethodNode; +import org.objectweb.asm.tree.TableSwitchInsnNode; +import org.objectweb.asm.tree.TryCatchBlockNode; +import org.objectweb.asm.tree.VarInsnNode; + +/** + * A semantic bytecode analyzer. + * + * @author Eric Bruneton + */ +public class Analyzer implements Opcodes { + + private Interpreter interpreter; + + private int n; + + private IntMap indexes; + + private List[] handlers; + + private Frame[] frames; + + private Subroutine[] subroutines; + + private boolean[] queued; + + private int[] queue; + + private int top; + + private boolean jsr; + + /** + * Constructs a new {@link Analyzer}. + * + * @param interpreter the interpreter to be used to symbolically interpret + * the bytecode instructions. + */ + public Analyzer(final Interpreter interpreter) { + this.interpreter = interpreter; + } + + /** + * Analyzes the given method. + * + * @param owner the internal name of the class to which the method belongs. + * @param m the method to be analyzed. + * @return the symbolic state of the execution stack frame at each bytecode + * instruction of the method. The size of the returned array is + * equal to the number of instructions (and labels) of the method. A + * given frame is null if and only if the corresponding + * instruction cannot be reached (dead code). + * @throws AnalyzerException if a problem occurs during the analysis. + */ + public Frame[] analyze(final String owner, final MethodNode m) + throws AnalyzerException + { + n = m.instructions.size(); + indexes = new IntMap(2 * n); + handlers = new List[n]; + frames = new Frame[n]; + subroutines = new Subroutine[n]; + queued = new boolean[n]; + queue = new int[n]; + top = 0; + + // computes instruction indexes + for (int i = 0; i < n; ++i) { + Object insn = m.instructions.get(i); + if (insn instanceof LabelNode) { + insn = ((LabelNode) insn).label; + } + indexes.put(insn, i); + } + + // computes exception handlers for each instruction + for (int i = 0; i < m.tryCatchBlocks.size(); ++i) { + TryCatchBlockNode tcb = (TryCatchBlockNode) m.tryCatchBlocks.get(i); + int begin = indexes.get(tcb.start); + int end = indexes.get(tcb.end); + for (int j = begin; j < end; ++j) { + List insnHandlers = handlers[j]; + if (insnHandlers == null) { + insnHandlers = new ArrayList(); + handlers[j] = insnHandlers; + } + insnHandlers.add(tcb); + } + } + + // initializes the data structures for the control flow analysis + // algorithm + Frame current = newFrame(m.maxLocals, m.maxStack); + Frame handler = newFrame(m.maxLocals, m.maxStack); + Type[] args = Type.getArgumentTypes(m.desc); + int local = 0; + if ((m.access & ACC_STATIC) == 0) { + Type ctype = Type.getType("L" + owner + ";"); + current.setLocal(local++, interpreter.newValue(ctype)); + } + for (int i = 0; i < args.length; ++i) { + current.setLocal(local++, interpreter.newValue(args[i])); + if (args[i].getSize() == 2) { + current.setLocal(local++, interpreter.newValue(null)); + } + } + while (local < m.maxLocals) { + current.setLocal(local++, interpreter.newValue(null)); + } + merge(0, current, null); + + // control flow analysis + while (top > 0) { + int insn = queue[--top]; + Frame f = frames[insn]; + Subroutine subroutine = subroutines[insn]; + queued[insn] = false; + + try { + Object o = m.instructions.get(insn); + jsr = false; + + if (o instanceof LabelNode) { + merge(insn + 1, f, subroutine); + } else { + AbstractInsnNode insnNode = (AbstractInsnNode) o; + int insnOpcode = insnNode.getOpcode(); + + current.init(f).execute(insnNode, interpreter); + subroutine = subroutine == null ? null : subroutine.copy(); + + if (insnNode instanceof JumpInsnNode) { + JumpInsnNode j = (JumpInsnNode) insnNode; + if (insnOpcode != GOTO && insnOpcode != JSR) { + merge(insn + 1, current, subroutine); + } + if (insnOpcode == JSR) { + jsr = true; + merge(indexes.get(j.label), + current, + new Subroutine(j.label, m.maxLocals, j)); + } else { + merge(indexes.get(j.label), current, subroutine); + } + } else if (insnNode instanceof LookupSwitchInsnNode) { + LookupSwitchInsnNode lsi = (LookupSwitchInsnNode) insnNode; + merge(indexes.get(lsi.dflt), current, subroutine); + for (int j = 0; j < lsi.labels.size(); ++j) { + Label label = (Label) lsi.labels.get(j); + merge(indexes.get(label), current, subroutine); + } + } else if (insnNode instanceof TableSwitchInsnNode) { + TableSwitchInsnNode tsi = (TableSwitchInsnNode) insnNode; + merge(indexes.get(tsi.dflt), current, subroutine); + for (int j = 0; j < tsi.labels.size(); ++j) { + Label label = (Label) tsi.labels.get(j); + merge(indexes.get(label), current, subroutine); + } + } else if (insnOpcode == RET) { + if (subroutine == null) { + throw new AnalyzerException("RET instruction outside of a sub routine"); + } + for (int i = 0; i < subroutine.callers.size(); ++i) { + int caller = indexes.get(subroutine.callers.get(i)); + merge(caller + 1, + frames[caller], + current, + subroutines[caller], + subroutine.access); + } + } else if (insnOpcode != ATHROW + && (insnOpcode < IRETURN || insnOpcode > RETURN)) + { + if (subroutine != null) { + if (insnNode instanceof VarInsnNode) { + int var = ((VarInsnNode) insnNode).var; + subroutine.access[var] = true; + if (insnOpcode == LLOAD || insnOpcode == DLOAD + || insnOpcode == LSTORE + || insnOpcode == DSTORE) + { + subroutine.access[var + 1] = true; + } + } else if (insnNode instanceof IincInsnNode) { + int var = ((IincInsnNode) insnNode).var; + subroutine.access[var] = true; + } + } + merge(insn + 1, current, subroutine); + } + } + + List insnHandlers = handlers[insn]; + if (insnHandlers != null) { + for (int i = 0; i < insnHandlers.size(); ++i) { + TryCatchBlockNode tcb = (TryCatchBlockNode) insnHandlers.get(i); + Type type; + if (tcb.type == null) { + type = Type.getType("Ljava/lang/Throwable;"); + } else { + type = Type.getType("L" + tcb.type + ";"); + } + handler.init(f); + handler.clearStack(); + handler.push(interpreter.newValue(type)); + merge(indexes.get(tcb.handler), handler, subroutine); + } + } + } catch (AnalyzerException e) { + throw new AnalyzerException("Error at instruction " + insn + + ": " + e.getMessage(), e); + } catch(Exception e) { + throw new AnalyzerException("Error at instruction " + insn + + ": " + e.getMessage(), e); + } + } + + return frames; + } + + /** + * Returns the symbolic stack frame for each instruction of the last + * recently analyzed method. + * + * @return the symbolic state of the execution stack frame at each bytecode + * instruction of the method. The size of the returned array is + * equal to the number of instructions (and labels) of the method. A + * given frame is null if the corresponding instruction + * cannot be reached, or if an error occured during the analysis of + * the method. + */ + public Frame[] getFrames() { + return frames; + } + + /** + * Returns the index of the given instruction. + * + * @param insn a {@link Label} or {@link AbstractInsnNode} of the last + * recently analyzed method. + * @return the index of the given instruction of the last recently analyzed + * method. + */ + public int getIndex(final Object insn) { + return indexes.get(insn); + } + + /** + * Returns the exception handlers for the given instruction. + * + * @param insn the index of an instruction of the last recently analyzed + * method. + * @return a list of {@link TryCatchBlockNode} objects. + */ + public List getHandlers(final int insn) { + return handlers[insn]; + } + + /** + * Constructs a new frame with the given size. + * + * @param nLocals the maximum number of local variables of the frame. + * @param nStack the maximum stack size of the frame. + * @return the created frame. + */ + protected Frame newFrame(final int nLocals, final int nStack) { + return new Frame(nLocals, nStack); + } + + /** + * Constructs a new frame that is identical to the given frame. + * + * @param src a frame. + * @return the created frame. + */ + protected Frame newFrame(final Frame src) { + return new Frame(src); + } + + /** + * Creates a control flow graph edge. The default implementation of this + * method does nothing. It can be overriden in order to construct the + * control flow graph of a method (this method is called by the + * {@link #analyze analyze} method during its visit of the method's code). + * + * @param frame the frame corresponding to an instruction. + * @param successor the frame corresponding to a successor instruction. + */ + protected void newControlFlowEdge(final Frame frame, final Frame successor) + { + } + + // ------------------------------------------------------------------------- + + private void merge( + final int insn, + final Frame frame, + final Subroutine subroutine) throws AnalyzerException + { + if (insn > n - 1) { + throw new AnalyzerException("Execution can fall off end of the code"); + } + + Frame oldFrame = frames[insn]; + Subroutine oldSubroutine = subroutines[insn]; + boolean changes = false; + + if (oldFrame == null) { + frames[insn] = newFrame(frame); + changes = true; + } else { + changes |= oldFrame.merge(frame, interpreter); + } + + newControlFlowEdge(frame, oldFrame); + + if (oldSubroutine == null) { + if (subroutine != null) { + subroutines[insn] = subroutine.copy(); + changes = true; + } + } else { + if (subroutine != null) { + changes |= oldSubroutine.merge(subroutine, !jsr); + } + } + if (changes && !queued[insn]) { + queued[insn] = true; + queue[top++] = insn; + } + } + + private void merge( + final int insn, + final Frame beforeJSR, + final Frame afterRET, + final Subroutine subroutineBeforeJSR, + final boolean[] access) throws AnalyzerException + { + if (insn > n - 1) { + throw new AnalyzerException("Execution can fall off end of the code"); + } + + Frame oldFrame = frames[insn]; + Subroutine oldSubroutine = subroutines[insn]; + boolean changes = false; + + afterRET.merge(beforeJSR, access); + + if (oldFrame == null) { + frames[insn] = newFrame(afterRET); + changes = true; + } else { + changes |= oldFrame.merge(afterRET, access); + } + + newControlFlowEdge(afterRET, oldFrame); + + if (oldSubroutine == null) { + if (subroutineBeforeJSR != null) { + subroutines[insn] = subroutineBeforeJSR.copy(); + changes = true; + } + } else { + if (subroutineBeforeJSR != null) { + changes |= oldSubroutine.merge(subroutineBeforeJSR, !jsr); + } + } + if (changes && !queued[insn]) { + queued[insn] = true; + queue[top++] = insn; + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java new file mode 100644 index 00000000000..3e0afac9797 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java @@ -0,0 +1,56 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +/** + * Thrown if a problem occurs during the analysis of a method. + * + * @author Bing Ran + * @author Eric Bruneton + */ +public class AnalyzerException extends Exception { + + public AnalyzerException(final String msg) { + super(msg); + } + + public AnalyzerException(final String msg, final Throwable exception) { + super(msg, exception); + } + + public AnalyzerException( + final String msg, + final Object expected, + final Value encountered) + { + super((msg == null ? "Expected " : msg + ": expected ") + expected + + ", but found " + encountered); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java new file mode 100644 index 00000000000..b92b57c2fee --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java @@ -0,0 +1,335 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.List; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.FieldInsnNode; +import org.objectweb.asm.tree.IntInsnNode; +import org.objectweb.asm.tree.LdcInsnNode; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.MultiANewArrayInsnNode; +import org.objectweb.asm.tree.TypeInsnNode; + +/** + * An {@link Interpreter} for {@link BasicValue} values. + * + * @author Eric Bruneton + * @author Bing Ran + */ +public class BasicInterpreter implements Opcodes, Interpreter { + + public Value newValue(final Type type) { + if (type == null) { + return BasicValue.UNINITIALIZED_VALUE; + } + switch (type.getSort()) { + case Type.VOID: + return null; + case Type.BOOLEAN: + case Type.CHAR: + case Type.BYTE: + case Type.SHORT: + case Type.INT: + return BasicValue.INT_VALUE; + case Type.FLOAT: + return BasicValue.FLOAT_VALUE; + case Type.LONG: + return BasicValue.LONG_VALUE; + case Type.DOUBLE: + return BasicValue.DOUBLE_VALUE; + case Type.ARRAY: + case Type.OBJECT: + return BasicValue.REFERENCE_VALUE; + default: + throw new RuntimeException("Internal error."); + } + } + + public Value newOperation(final AbstractInsnNode insn) { + switch (insn.getOpcode()) { + case ACONST_NULL: + return newValue(Type.getType("Lnull;")); + case ICONST_M1: + case ICONST_0: + case ICONST_1: + case ICONST_2: + case ICONST_3: + case ICONST_4: + case ICONST_5: + return BasicValue.INT_VALUE; + case LCONST_0: + case LCONST_1: + return BasicValue.LONG_VALUE; + case FCONST_0: + case FCONST_1: + case FCONST_2: + return BasicValue.FLOAT_VALUE; + case DCONST_0: + case DCONST_1: + return BasicValue.DOUBLE_VALUE; + case BIPUSH: + case SIPUSH: + return BasicValue.INT_VALUE; + case LDC: + Object cst = ((LdcInsnNode) insn).cst; + if (cst instanceof Integer) { + return BasicValue.INT_VALUE; + } else if (cst instanceof Float) { + return BasicValue.FLOAT_VALUE; + } else if (cst instanceof Long) { + return BasicValue.LONG_VALUE; + } else if (cst instanceof Double) { + return BasicValue.DOUBLE_VALUE; + } else if (cst instanceof Type) { + return newValue(Type.getType("Ljava/lang/Class;")); + } else { + return newValue(Type.getType(cst.getClass())); + } + case JSR: + return BasicValue.RETURNADDRESS_VALUE; + case GETSTATIC: + return newValue(Type.getType(((FieldInsnNode) insn).desc)); + case NEW: + return newValue(Type.getType("L" + ((TypeInsnNode) insn).desc + + ";")); + default: + throw new RuntimeException("Internal error."); + } + } + + public Value copyOperation(final AbstractInsnNode insn, final Value value) + throws AnalyzerException + { + return value; + } + + public Value unaryOperation(final AbstractInsnNode insn, final Value value) + throws AnalyzerException + { + switch (insn.getOpcode()) { + case INEG: + case IINC: + case L2I: + case F2I: + case D2I: + case I2B: + case I2C: + case I2S: + return BasicValue.INT_VALUE; + case FNEG: + case I2F: + case L2F: + case D2F: + return BasicValue.FLOAT_VALUE; + case LNEG: + case I2L: + case F2L: + case D2L: + return BasicValue.LONG_VALUE; + case DNEG: + case I2D: + case L2D: + case F2D: + return BasicValue.DOUBLE_VALUE; + case IFEQ: + case IFNE: + case IFLT: + case IFGE: + case IFGT: + case IFLE: + case TABLESWITCH: + case LOOKUPSWITCH: + case IRETURN: + case LRETURN: + case FRETURN: + case DRETURN: + case ARETURN: + case PUTSTATIC: + return null; + case GETFIELD: + return newValue(Type.getType(((FieldInsnNode) insn).desc)); + case NEWARRAY: + switch (((IntInsnNode) insn).operand) { + case T_BOOLEAN: + return newValue(Type.getType("[Z")); + case T_CHAR: + return newValue(Type.getType("[C")); + case T_BYTE: + return newValue(Type.getType("[B")); + case T_SHORT: + return newValue(Type.getType("[S")); + case T_INT: + return newValue(Type.getType("[I")); + case T_FLOAT: + return newValue(Type.getType("[F")); + case T_DOUBLE: + return newValue(Type.getType("[D")); + case T_LONG: + return newValue(Type.getType("[J")); + default: + throw new AnalyzerException("Invalid array type"); + } + case ANEWARRAY: + String desc = ((TypeInsnNode) insn).desc; + if (desc.charAt(0) == '[') { + return newValue(Type.getType("[" + desc)); + } else { + return newValue(Type.getType("[L" + desc + ";")); + } + case ARRAYLENGTH: + return BasicValue.INT_VALUE; + case ATHROW: + return null; + case CHECKCAST: + desc = ((TypeInsnNode) insn).desc; + if (desc.charAt(0) == '[') { + return newValue(Type.getType(desc)); + } else { + return newValue(Type.getType("L" + desc + ";")); + } + case INSTANCEOF: + return BasicValue.INT_VALUE; + case MONITORENTER: + case MONITOREXIT: + case IFNULL: + case IFNONNULL: + return null; + default: + throw new RuntimeException("Internal error."); + } + } + + public Value binaryOperation( + final AbstractInsnNode insn, + final Value value1, + final Value value2) throws AnalyzerException + { + switch (insn.getOpcode()) { + case IALOAD: + case BALOAD: + case CALOAD: + case SALOAD: + case IADD: + case ISUB: + case IMUL: + case IDIV: + case IREM: + case ISHL: + case ISHR: + case IUSHR: + case IAND: + case IOR: + case IXOR: + return BasicValue.INT_VALUE; + case FALOAD: + case FADD: + case FSUB: + case FMUL: + case FDIV: + case FREM: + return BasicValue.FLOAT_VALUE; + case LALOAD: + case LADD: + case LSUB: + case LMUL: + case LDIV: + case LREM: + case LSHL: + case LSHR: + case LUSHR: + case LAND: + case LOR: + case LXOR: + return BasicValue.LONG_VALUE; + case DALOAD: + case DADD: + case DSUB: + case DMUL: + case DDIV: + case DREM: + return BasicValue.DOUBLE_VALUE; + case AALOAD: + Type t = ((BasicValue) value1).getType(); + if (t != null && t.getSort() == Type.ARRAY) { + return newValue(t.getElementType()); + } else { + return BasicValue.REFERENCE_VALUE; + } + case LCMP: + case FCMPL: + case FCMPG: + case DCMPL: + case DCMPG: + return BasicValue.INT_VALUE; + case IF_ICMPEQ: + case IF_ICMPNE: + case IF_ICMPLT: + case IF_ICMPGE: + case IF_ICMPGT: + case IF_ICMPLE: + case IF_ACMPEQ: + case IF_ACMPNE: + case PUTFIELD: + return null; + default: + throw new RuntimeException("Internal error."); + } + } + + public Value ternaryOperation( + final AbstractInsnNode insn, + final Value value1, + final Value value2, + final Value value3) throws AnalyzerException + { + return null; + } + + public Value naryOperation(final AbstractInsnNode insn, final List values) + throws AnalyzerException + { + if (insn.getOpcode() == MULTIANEWARRAY) { + return newValue(Type.getType(((MultiANewArrayInsnNode) insn).desc)); + } else { + return newValue(Type.getReturnType(((MethodInsnNode) insn).desc)); + } + } + + public Value merge(final Value v, final Value w) { + if (!v.equals(w)) { + return BasicValue.UNINITIALIZED_VALUE; + } + return v; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java new file mode 100644 index 00000000000..19cdb33a959 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java @@ -0,0 +1,105 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import org.objectweb.asm.Type; + +/** + * A {@link Value} that is represented by its type in a seven types type sytem. + * This type system distinguishes the UNINITIALZED, INT, FLOAT, LONG, DOUBLE, + * REFERENCE and RETURNADDRESS types. + * + * @author Eric Bruneton + */ +public class BasicValue implements Value { + + public final static Value UNINITIALIZED_VALUE = new BasicValue(null); + + public final static Value INT_VALUE = new BasicValue(Type.INT_TYPE); + + public final static Value FLOAT_VALUE = new BasicValue(Type.FLOAT_TYPE); + + public final static Value LONG_VALUE = new BasicValue(Type.LONG_TYPE); + + public final static Value DOUBLE_VALUE = new BasicValue(Type.DOUBLE_TYPE); + + public final static Value REFERENCE_VALUE = new BasicValue(Type.getType("Ljava/lang/Object;")); + + public final static Value RETURNADDRESS_VALUE = new BasicValue(null); + + private Type type; + + public BasicValue(final Type type) { + this.type = type; + } + + public Type getType() { + return type; + } + + public int getSize() { + return type == Type.LONG_TYPE || type == Type.DOUBLE_TYPE ? 2 : 1; + } + + public boolean isReference() { + return type != null + && (type.getSort() == Type.OBJECT || type.getSort() == Type.ARRAY); + } + + public boolean equals(final Object value) { + if (value == this) { + return true; + } else if (value instanceof BasicValue) { + if (type == null) { + return ((BasicValue) value).type == null; + } else { + return type.equals(((BasicValue) value).type); + } + } else { + return false; + } + } + + public int hashCode() { + return type == null ? 0 : type.hashCode(); + } + + public String toString() { + if (this == UNINITIALIZED_VALUE) { + return "."; + } else if (this == RETURNADDRESS_VALUE) { + return "A"; + } else if (this == REFERENCE_VALUE) { + return "R"; + } else { + return type.getDescriptor(); + } + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java new file mode 100644 index 00000000000..0a797d493e7 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java @@ -0,0 +1,428 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.List; + +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.FieldInsnNode; +import org.objectweb.asm.tree.MethodInsnNode; + +/** + * An extended {@link BasicInterpreter} that checks that bytecode instructions + * are correctly used. + * + * @author Eric Bruneton + * @author Bing Ran + */ +public class BasicVerifier extends BasicInterpreter { + + public Value copyOperation(final AbstractInsnNode insn, final Value value) + throws AnalyzerException + { + Value expected; + switch (insn.getOpcode()) { + case ILOAD: + case ISTORE: + expected = BasicValue.INT_VALUE; + break; + case FLOAD: + case FSTORE: + expected = BasicValue.FLOAT_VALUE; + break; + case LLOAD: + case LSTORE: + expected = BasicValue.LONG_VALUE; + break; + case DLOAD: + case DSTORE: + expected = BasicValue.DOUBLE_VALUE; + break; + case ALOAD: + if (!((BasicValue) value).isReference()) { + throw new AnalyzerException(null, + "an object reference", + value); + } + return value; + case ASTORE: + if (!((BasicValue) value).isReference() + && value != BasicValue.RETURNADDRESS_VALUE) + { + throw new AnalyzerException(null, + "an object reference or a return address", + value); + } + return value; + default: + return value; + } + // type is necessarily a primitive type here, + // so value must be == to expected value + if (value != expected) { + throw new AnalyzerException(null, expected, value); + } + return value; + } + + public Value unaryOperation(final AbstractInsnNode insn, Value value) + throws AnalyzerException + { + Value expected; + switch (insn.getOpcode()) { + case INEG: + case IINC: + case I2F: + case I2L: + case I2D: + case I2B: + case I2C: + case I2S: + case IFEQ: + case IFNE: + case IFLT: + case IFGE: + case IFGT: + case IFLE: + case TABLESWITCH: + case LOOKUPSWITCH: + case IRETURN: + case NEWARRAY: + case ANEWARRAY: + expected = BasicValue.INT_VALUE; + break; + case FNEG: + case F2I: + case F2L: + case F2D: + case FRETURN: + expected = BasicValue.FLOAT_VALUE; + break; + case LNEG: + case L2I: + case L2F: + case L2D: + case LRETURN: + expected = BasicValue.LONG_VALUE; + break; + case DNEG: + case D2I: + case D2F: + case D2L: + case DRETURN: + expected = BasicValue.DOUBLE_VALUE; + break; + case GETFIELD: + expected = newValue(Type.getType("L" + + ((FieldInsnNode) insn).owner + ";")); + break; + case CHECKCAST: + if (!((BasicValue) value).isReference()) { + throw new AnalyzerException(null, + "an object reference", + value); + } + return super.unaryOperation(insn, value); + case ARRAYLENGTH: + if (!isArrayValue(value)) { + throw new AnalyzerException(null, + "an array reference", + value); + } + return super.unaryOperation(insn, value); + case ARETURN: + case ATHROW: + case INSTANCEOF: + case MONITORENTER: + case MONITOREXIT: + case IFNULL: + case IFNONNULL: + if (!((BasicValue) value).isReference()) { + throw new AnalyzerException(null, + "an object reference", + value); + } + return super.unaryOperation(insn, value); + case PUTSTATIC: + expected = newValue(Type.getType(((FieldInsnNode) insn).desc)); + break; + default: + throw new RuntimeException("Internal error."); + } + if (!isSubTypeOf(value, expected)) { + throw new AnalyzerException(null, expected, value); + } + return super.unaryOperation(insn, value); + } + + public Value binaryOperation( + final AbstractInsnNode insn, + final Value value1, + final Value value2) throws AnalyzerException + { + Value expected1; + Value expected2; + switch (insn.getOpcode()) { + case IALOAD: + expected1 = newValue(Type.getType("[I")); + expected2 = BasicValue.INT_VALUE; + break; + case BALOAD: + if (!isSubTypeOf(value1, newValue(Type.getType("[Z")))) { + expected1 = newValue(Type.getType("[B")); + } else { + expected1 = newValue(Type.getType("[Z")); + } + expected2 = BasicValue.INT_VALUE; + break; + case CALOAD: + expected1 = newValue(Type.getType("[C")); + expected2 = BasicValue.INT_VALUE; + break; + case SALOAD: + expected1 = newValue(Type.getType("[S")); + expected2 = BasicValue.INT_VALUE; + break; + case LALOAD: + expected1 = newValue(Type.getType("[J")); + expected2 = BasicValue.INT_VALUE; + break; + case FALOAD: + expected1 = newValue(Type.getType("[F")); + expected2 = BasicValue.INT_VALUE; + break; + case DALOAD: + expected1 = newValue(Type.getType("[D")); + expected2 = BasicValue.INT_VALUE; + break; + case AALOAD: + expected1 = newValue(Type.getType("[Ljava/lang/Object;")); + expected2 = BasicValue.INT_VALUE; + break; + case IADD: + case ISUB: + case IMUL: + case IDIV: + case IREM: + case ISHL: + case ISHR: + case IUSHR: + case IAND: + case IOR: + case IXOR: + case IF_ICMPEQ: + case IF_ICMPNE: + case IF_ICMPLT: + case IF_ICMPGE: + case IF_ICMPGT: + case IF_ICMPLE: + expected1 = BasicValue.INT_VALUE; + expected2 = BasicValue.INT_VALUE; + break; + case FADD: + case FSUB: + case FMUL: + case FDIV: + case FREM: + case FCMPL: + case FCMPG: + expected1 = BasicValue.FLOAT_VALUE; + expected2 = BasicValue.FLOAT_VALUE; + break; + case LADD: + case LSUB: + case LMUL: + case LDIV: + case LREM: + case LAND: + case LOR: + case LXOR: + case LCMP: + expected1 = BasicValue.LONG_VALUE; + expected2 = BasicValue.LONG_VALUE; + break; + case LSHL: + case LSHR: + case LUSHR: + expected1 = BasicValue.LONG_VALUE; + expected2 = BasicValue.INT_VALUE; + break; + case DADD: + case DSUB: + case DMUL: + case DDIV: + case DREM: + case DCMPL: + case DCMPG: + expected1 = BasicValue.DOUBLE_VALUE; + expected2 = BasicValue.DOUBLE_VALUE; + break; + case IF_ACMPEQ: + case IF_ACMPNE: + expected1 = BasicValue.REFERENCE_VALUE; + expected2 = BasicValue.REFERENCE_VALUE; + break; + case PUTFIELD: + FieldInsnNode fin = (FieldInsnNode) insn; + expected1 = newValue(Type.getType("L" + fin.owner + ";")); + expected2 = newValue(Type.getType(fin.desc)); + break; + default: + throw new RuntimeException("Internal error."); + } + if (!isSubTypeOf(value1, expected1)) { + throw new AnalyzerException("First argument", expected1, value1); + } else if (!isSubTypeOf(value2, expected2)) { + throw new AnalyzerException("Second argument", expected2, value2); + } + if (insn.getOpcode() == AALOAD) { + return getElementValue(value1); + } else { + return super.binaryOperation(insn, value1, value2); + } + } + + public Value ternaryOperation( + final AbstractInsnNode insn, + final Value value1, + final Value value2, + final Value value3) throws AnalyzerException + { + Value expected1; + Value expected3; + switch (insn.getOpcode()) { + case IASTORE: + expected1 = newValue(Type.getType("[I")); + expected3 = BasicValue.INT_VALUE; + break; + case BASTORE: + if (!isSubTypeOf(value1, newValue(Type.getType("[Z")))) { + expected1 = newValue(Type.getType("[B")); + } else { + expected1 = newValue(Type.getType("[Z")); + } + expected3 = BasicValue.INT_VALUE; + break; + case CASTORE: + expected1 = newValue(Type.getType("[C")); + expected3 = BasicValue.INT_VALUE; + break; + case SASTORE: + expected1 = newValue(Type.getType("[S")); + expected3 = BasicValue.INT_VALUE; + break; + case LASTORE: + expected1 = newValue(Type.getType("[J")); + expected3 = BasicValue.LONG_VALUE; + break; + case FASTORE: + expected1 = newValue(Type.getType("[F")); + expected3 = BasicValue.FLOAT_VALUE; + break; + case DASTORE: + expected1 = newValue(Type.getType("[D")); + expected3 = BasicValue.DOUBLE_VALUE; + break; + case AASTORE: + expected1 = value1; + expected3 = BasicValue.REFERENCE_VALUE; + break; + default: + throw new RuntimeException("Internal error."); + } + if (!isSubTypeOf(value1, expected1)) { + throw new AnalyzerException("First argument", "a " + expected1 + + " array reference", value1); + } else if (value2 != BasicValue.INT_VALUE) { + throw new AnalyzerException("Second argument", + BasicValue.INT_VALUE, + value2); + } else if (!isSubTypeOf(value3, expected3)) { + throw new AnalyzerException("Third argument", expected3, value3); + } + return null; + } + + public Value naryOperation(final AbstractInsnNode insn, final List values) + throws AnalyzerException + { + int opcode = insn.getOpcode(); + if (opcode == MULTIANEWARRAY) { + for (int i = 0; i < values.size(); ++i) { + if (values.get(i) != BasicValue.INT_VALUE) { + throw new AnalyzerException(null, + BasicValue.INT_VALUE, + (Value) values.get(i)); + } + } + } else { + int i = 0; + int j = 0; + if (opcode != INVOKESTATIC) { + String own = ((MethodInsnNode) insn).owner; + if (own.charAt(0) != '[') { // can happen with JDK1.5 clone() + own = "L" + own + ";"; + } + Type owner = Type.getType(own); + if (!isSubTypeOf((Value) values.get(i++), newValue(owner))) { + throw new AnalyzerException("Method owner", + newValue(owner), + (Value) values.get(0)); + } + } + Type[] args = Type.getArgumentTypes(((MethodInsnNode) insn).desc); + while (i < values.size()) { + Value expected = newValue(args[j++]); + Value encountered = (Value) values.get(i++); + if (!isSubTypeOf(encountered, expected)) { + throw new AnalyzerException("Argument " + j, + expected, + encountered); + } + } + } + return super.naryOperation(insn, values); + } + + protected boolean isArrayValue(final Value value) { + return ((BasicValue) value).isReference(); + } + + protected Value getElementValue(final Value objectArrayValue) + throws AnalyzerException + { + return BasicValue.REFERENCE_VALUE; + } + + protected boolean isSubTypeOf(final Value value, final Value expected) { + return value == expected; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java new file mode 100644 index 00000000000..07edd74f920 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java @@ -0,0 +1,174 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.FieldInsnNode; +import org.objectweb.asm.tree.LdcInsnNode; +import org.objectweb.asm.tree.MethodInsnNode; + +/** + * An {@link Interpreter} for {@link DataflowValue} values. + * + * @author Eric Bruneton + */ +public class DataflowInterpreter implements Opcodes, Interpreter { + + public Value newValue(final Type type) { + return new DataflowValue(type == null ? 1 : type.getSize()); + } + + public Value newOperation(final AbstractInsnNode insn) { + int size; + switch (insn.getOpcode()) { + case LCONST_0: + case LCONST_1: + case DCONST_0: + case DCONST_1: + size = 2; + break; + case LDC: + Object cst = ((LdcInsnNode) insn).cst; + size = cst instanceof Long || cst instanceof Double ? 2 : 1; + break; + case GETSTATIC: + size = Type.getType(((FieldInsnNode) insn).desc).getSize(); + break; + default: + size = 1; + } + return new DataflowValue(size, insn); + } + + public Value copyOperation(final AbstractInsnNode insn, final Value value) { + return new DataflowValue(value.getSize(), insn); + } + + public Value unaryOperation(final AbstractInsnNode insn, final Value value) + { + int size; + switch (insn.getOpcode()) { + case LNEG: + case DNEG: + case I2L: + case I2D: + case L2D: + case F2L: + case F2D: + case D2L: + size = 2; + break; + case GETFIELD: + size = Type.getType(((FieldInsnNode) insn).desc).getSize(); + break; + default: + size = 1; + } + return new DataflowValue(size, insn); + } + + public Value binaryOperation( + final AbstractInsnNode insn, + final Value value1, + final Value value2) + { + int size; + switch (insn.getOpcode()) { + case LALOAD: + case DALOAD: + case LADD: + case DADD: + case LSUB: + case DSUB: + case LMUL: + case DMUL: + case LDIV: + case DDIV: + case LREM: + case DREM: + case LSHL: + case LSHR: + case LUSHR: + case LAND: + case LOR: + case LXOR: + size = 2; + break; + default: + size = 1; + } + return new DataflowValue(size, insn); + } + + public Value ternaryOperation( + final AbstractInsnNode insn, + final Value value1, + final Value value2, + final Value value3) + { + return new DataflowValue(1, insn); + } + + public Value naryOperation(final AbstractInsnNode insn, final List values) { + int size; + if (insn.getOpcode() == MULTIANEWARRAY) { + size = 1; + } else { + size = Type.getReturnType(((MethodInsnNode) insn).desc).getSize(); + } + return new DataflowValue(size, insn); + } + + public Value merge(final Value v, final Value w) { + DataflowValue dv = (DataflowValue) v; + DataflowValue dw = (DataflowValue) w; + if (dv.insns instanceof SmallSet && dw.insns instanceof SmallSet) { + Set s = ((SmallSet) dv.insns).union((SmallSet) dw.insns); + if (s == dv.insns && dv.size == dw.size) { + return v; + } else { + return new DataflowValue(Math.min(dv.size, dw.size), s); + } + } + if (dv.size != dw.size || !dv.insns.containsAll(dw.insns)) { + Set s = new HashSet(); + s.addAll(dv.insns); + s.addAll(dw.insns); + return new DataflowValue(Math.min(dv.size, dw.size), s); + } + return v; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java new file mode 100644 index 00000000000..0019d7f2c5d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java @@ -0,0 +1,92 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.Set; + +import org.objectweb.asm.tree.AbstractInsnNode; + +/** + * A {@link Value} that is represented by its type in a two types type system. + * This type system distinguishes the ONEWORD and TWOWORDS types. + * + * @author Eric Bruneton + */ +public class DataflowValue implements Value { + + /** + * The size of this value. + */ + public final int size; + + /** + * The instructions that can produce this value. For example, for the Java + * code below, the instructions that can produce the value of i + * at line 5 are the txo ISTORE instructions at line 1 and 3: + * + *
      +     * 1: i = 0;
      +     * 2: if (...) {
      +     * 3:   i = 1;
      +     * 4: }
      +     * 5: return i;
      +     * 
      + * + * This field is a set of {@link AbstractInsnNode} objects. + */ + public final Set insns; + + public DataflowValue(final int size) { + this(size, SmallSet.EMPTY_SET); + } + + public DataflowValue(final int size, final AbstractInsnNode insn) { + this.size = size; + this.insns = new SmallSet(insn, null); + } + + public DataflowValue(final int size, final Set insns) { + this.size = size; + this.insns = insns; + } + + public int getSize() { + return size; + } + + public boolean equals(final Object value) { + DataflowValue v = (DataflowValue) value; + return size == v.size && insns.equals(v.insns); + } + + public int hashCode() { + return insns.hashCode(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java new file mode 100644 index 00000000000..bc2d873e94d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java @@ -0,0 +1,670 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.ArrayList; +import java.util.List; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.IincInsnNode; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.MultiANewArrayInsnNode; +import org.objectweb.asm.tree.VarInsnNode; + +/** + * A symbolic execution stack frame. A stack frame contains a set of local + * variable slots, and an operand stack. Warning: long and double values are + * represented by two slots in local variables, and by one slot + * in the operand stack. + * + * @author Eric Bruneton + */ +public class Frame { + + /** + * The local variables and operand stack of this frame. + */ + private Value[] values; + + /** + * The number of local variables of this frame. + */ + private int locals; + + /** + * The number of elements in the operand stack. + */ + private int top; + + /** + * Constructs a new frame with the given size. + * + * @param nLocals the maximum number of local variables of the frame. + * @param nStack the maximum stack size of the frame. + */ + public Frame(final int nLocals, final int nStack) { + this.values = new Value[nLocals + nStack]; + this.locals = nLocals; + } + + /** + * Constructs a new frame that is identical to the given frame. + * + * @param src a frame. + */ + public Frame(final Frame src) { + this(src.locals, src.values.length - src.locals); + init(src); + } + + /** + * Copies the state of the given frame into this frame. + * + * @param src a frame. + * @return this frame. + */ + public Frame init(final Frame src) { + System.arraycopy(src.values, 0, values, 0, values.length); + top = src.top; + return this; + } + + /** + * Returns the maximum number of local variables of this frame. + * + * @return the maximum number of local variables of this frame. + */ + public int getLocals() { + return locals; + } + + /** + * Returns the value of the given local variable. + * + * @param i a local variable index. + * @return the value of the given local variable. + * @throws IndexOutOfBoundsException if the variable does not exist. + */ + public Value getLocal(final int i) throws IndexOutOfBoundsException { + if (i >= locals) { + throw new IndexOutOfBoundsException("Trying to access an inexistant local variable"); + } + return values[i]; + } + + /** + * Sets the value of the given local variable. + * + * @param i a local variable index. + * @param value the new value of this local variable. + * @throws IndexOutOfBoundsException if the variable does not exist. + */ + public void setLocal(final int i, final Value value) + throws IndexOutOfBoundsException + { + if (i >= locals) { + throw new IndexOutOfBoundsException("Trying to access an inexistant local variable"); + } + values[i] = value; + } + + /** + * Returns the number of values in the operand stack of this frame. Long and + * double values are treated as single values. + * + * @return the number of values in the operand stack of this frame. + */ + public int getStackSize() { + return top; + } + + /** + * Returns the value of the given operand stack slot. + * + * @param i the index of an operand stack slot. + * @return the value of the given operand stack slot. + * @throws IndexOutOfBoundsException if the operand stack slot does not + * exist. + */ + public Value getStack(final int i) throws IndexOutOfBoundsException { + if (i >= top) { + throw new IndexOutOfBoundsException("Trying to access an inexistant stack element"); + } + return values[i + locals]; + } + + /** + * Clears the operand stack of this frame. + */ + public void clearStack() { + top = 0; + } + + /** + * Pops a value from the operand stack of this frame. + * + * @return the value that has been popped from the stack. + * @throws IndexOutOfBoundsException if the operand stack is empty. + */ + public Value pop() throws IndexOutOfBoundsException { + if (top == 0) { + throw new IndexOutOfBoundsException("Cannot pop operand off an empty stack."); + } + return values[--top + locals]; + } + + /** + * Pushes a value into the operand stack of this frame. + * + * @param value the value that must be pushed into the stack. + * @throws IndexOutOfBoundsException if the operand stack is full. + */ + public void push(final Value value) throws IndexOutOfBoundsException { + if (top + locals >= values.length) { + throw new IndexOutOfBoundsException("Insufficient maximum stack size."); + } + values[top++ + locals] = value; + } + + public void execute( + final AbstractInsnNode insn, + final Interpreter interpreter) throws AnalyzerException + { + Value value1, value2, value3, value4; + List values; + int var; + + switch (insn.getOpcode()) { + case Opcodes.NOP: + break; + case Opcodes.ACONST_NULL: + case Opcodes.ICONST_M1: + case Opcodes.ICONST_0: + case Opcodes.ICONST_1: + case Opcodes.ICONST_2: + case Opcodes.ICONST_3: + case Opcodes.ICONST_4: + case Opcodes.ICONST_5: + case Opcodes.LCONST_0: + case Opcodes.LCONST_1: + case Opcodes.FCONST_0: + case Opcodes.FCONST_1: + case Opcodes.FCONST_2: + case Opcodes.DCONST_0: + case Opcodes.DCONST_1: + case Opcodes.BIPUSH: + case Opcodes.SIPUSH: + case Opcodes.LDC: + push(interpreter.newOperation(insn)); + break; + case Opcodes.ILOAD: + case Opcodes.LLOAD: + case Opcodes.FLOAD: + case Opcodes.DLOAD: + case Opcodes.ALOAD: + push(interpreter.copyOperation(insn, + getLocal(((VarInsnNode) insn).var))); + break; + case Opcodes.IALOAD: + case Opcodes.LALOAD: + case Opcodes.FALOAD: + case Opcodes.DALOAD: + case Opcodes.AALOAD: + case Opcodes.BALOAD: + case Opcodes.CALOAD: + case Opcodes.SALOAD: + value2 = pop(); + value1 = pop(); + push(interpreter.binaryOperation(insn, value1, value2)); + break; + case Opcodes.ISTORE: + case Opcodes.LSTORE: + case Opcodes.FSTORE: + case Opcodes.DSTORE: + case Opcodes.ASTORE: + value1 = interpreter.copyOperation(insn, pop()); + var = ((VarInsnNode) insn).var; + setLocal(var, value1); + if (value1.getSize() == 2) { + setLocal(var + 1, interpreter.newValue(null)); + } + if (var > 0) { + Value local = getLocal(var - 1); + if (local != null && local.getSize() == 2) { + setLocal(var + 1, interpreter.newValue(null)); + } + } + break; + case Opcodes.IASTORE: + case Opcodes.LASTORE: + case Opcodes.FASTORE: + case Opcodes.DASTORE: + case Opcodes.AASTORE: + case Opcodes.BASTORE: + case Opcodes.CASTORE: + case Opcodes.SASTORE: + value3 = pop(); + value2 = pop(); + value1 = pop(); + interpreter.ternaryOperation(insn, value1, value2, value3); + break; + case Opcodes.POP: + if (pop().getSize() == 2) { + throw new AnalyzerException("Illegal use of POP"); + } + break; + case Opcodes.POP2: + if (pop().getSize() == 1) { + if (pop().getSize() != 1) { + throw new AnalyzerException("Illegal use of POP2"); + } + } + break; + case Opcodes.DUP: + value1 = pop(); + if (value1.getSize() != 1) { + throw new AnalyzerException("Illegal use of DUP"); + } + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value1)); + break; + case Opcodes.DUP_X1: + value1 = pop(); + value2 = pop(); + if (value1.getSize() != 1 || value2.getSize() != 1) { + throw new AnalyzerException("Illegal use of DUP_X1"); + } + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + case Opcodes.DUP_X2: + value1 = pop(); + if (value1.getSize() == 1) { + value2 = pop(); + if (value2.getSize() == 1) { + value3 = pop(); + if (value3.getSize() == 1) { + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value3)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } else { + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } + throw new AnalyzerException("Illegal use of DUP_X2"); + case Opcodes.DUP2: + value1 = pop(); + if (value1.getSize() == 1) { + value2 = pop(); + if (value2.getSize() == 1) { + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } else { + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value1)); + break; + } + throw new AnalyzerException("Illegal use of DUP2"); + case Opcodes.DUP2_X1: + value1 = pop(); + if (value1.getSize() == 1) { + value2 = pop(); + if (value2.getSize() == 1) { + value3 = pop(); + if (value3.getSize() == 1) { + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value3)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } + } else { + value2 = pop(); + if (value2.getSize() == 1) { + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } + throw new AnalyzerException("Illegal use of DUP2_X1"); + case Opcodes.DUP2_X2: + value1 = pop(); + if (value1.getSize() == 1) { + value2 = pop(); + if (value2.getSize() == 1) { + value3 = pop(); + if (value3.getSize() == 1) { + value4 = pop(); + if (value4.getSize() == 1) { + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value4)); + push(interpreter.copyOperation(insn, value3)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } else { + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value3)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } + } else { + value2 = pop(); + if (value2.getSize() == 1) { + value3 = pop(); + if (value3.getSize() == 1) { + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value3)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } else { + push(interpreter.copyOperation(insn, value1)); + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + } + } + throw new AnalyzerException("Illegal use of DUP2_X2"); + case Opcodes.SWAP: + value2 = pop(); + value1 = pop(); + if (value1.getSize() != 1 || value2.getSize() != 1) { + throw new AnalyzerException("Illegal use of SWAP"); + } + push(interpreter.copyOperation(insn, value2)); + push(interpreter.copyOperation(insn, value1)); + break; + case Opcodes.IADD: + case Opcodes.LADD: + case Opcodes.FADD: + case Opcodes.DADD: + case Opcodes.ISUB: + case Opcodes.LSUB: + case Opcodes.FSUB: + case Opcodes.DSUB: + case Opcodes.IMUL: + case Opcodes.LMUL: + case Opcodes.FMUL: + case Opcodes.DMUL: + case Opcodes.IDIV: + case Opcodes.LDIV: + case Opcodes.FDIV: + case Opcodes.DDIV: + case Opcodes.IREM: + case Opcodes.LREM: + case Opcodes.FREM: + case Opcodes.DREM: + value2 = pop(); + value1 = pop(); + push(interpreter.binaryOperation(insn, value1, value2)); + break; + case Opcodes.INEG: + case Opcodes.LNEG: + case Opcodes.FNEG: + case Opcodes.DNEG: + push(interpreter.unaryOperation(insn, pop())); + break; + case Opcodes.ISHL: + case Opcodes.LSHL: + case Opcodes.ISHR: + case Opcodes.LSHR: + case Opcodes.IUSHR: + case Opcodes.LUSHR: + case Opcodes.IAND: + case Opcodes.LAND: + case Opcodes.IOR: + case Opcodes.LOR: + case Opcodes.IXOR: + case Opcodes.LXOR: + value2 = pop(); + value1 = pop(); + push(interpreter.binaryOperation(insn, value1, value2)); + break; + case Opcodes.IINC: + var = ((IincInsnNode) insn).var; + setLocal(var, interpreter.unaryOperation(insn, getLocal(var))); + break; + case Opcodes.I2L: + case Opcodes.I2F: + case Opcodes.I2D: + case Opcodes.L2I: + case Opcodes.L2F: + case Opcodes.L2D: + case Opcodes.F2I: + case Opcodes.F2L: + case Opcodes.F2D: + case Opcodes.D2I: + case Opcodes.D2L: + case Opcodes.D2F: + case Opcodes.I2B: + case Opcodes.I2C: + case Opcodes.I2S: + push(interpreter.unaryOperation(insn, pop())); + break; + case Opcodes.LCMP: + case Opcodes.FCMPL: + case Opcodes.FCMPG: + case Opcodes.DCMPL: + case Opcodes.DCMPG: + value2 = pop(); + value1 = pop(); + push(interpreter.binaryOperation(insn, value1, value2)); + break; + case Opcodes.IFEQ: + case Opcodes.IFNE: + case Opcodes.IFLT: + case Opcodes.IFGE: + case Opcodes.IFGT: + case Opcodes.IFLE: + interpreter.unaryOperation(insn, pop()); + break; + case Opcodes.IF_ICMPEQ: + case Opcodes.IF_ICMPNE: + case Opcodes.IF_ICMPLT: + case Opcodes.IF_ICMPGE: + case Opcodes.IF_ICMPGT: + case Opcodes.IF_ICMPLE: + case Opcodes.IF_ACMPEQ: + case Opcodes.IF_ACMPNE: + value2 = pop(); + value1 = pop(); + interpreter.binaryOperation(insn, value1, value2); + break; + case Opcodes.GOTO: + break; + case Opcodes.JSR: + push(interpreter.newOperation(insn)); + break; + case Opcodes.RET: + break; + case Opcodes.TABLESWITCH: + case Opcodes.LOOKUPSWITCH: + case Opcodes.IRETURN: + case Opcodes.LRETURN: + case Opcodes.FRETURN: + case Opcodes.DRETURN: + case Opcodes.ARETURN: + interpreter.unaryOperation(insn, pop()); + break; + case Opcodes.RETURN: + break; + case Opcodes.GETSTATIC: + push(interpreter.newOperation(insn)); + break; + case Opcodes.PUTSTATIC: + interpreter.unaryOperation(insn, pop()); + break; + case Opcodes.GETFIELD: + push(interpreter.unaryOperation(insn, pop())); + break; + case Opcodes.PUTFIELD: + value2 = pop(); + value1 = pop(); + interpreter.binaryOperation(insn, value1, value2); + break; + case Opcodes.INVOKEVIRTUAL: + case Opcodes.INVOKESPECIAL: + case Opcodes.INVOKESTATIC: + case Opcodes.INVOKEINTERFACE: + values = new ArrayList(); + String desc = ((MethodInsnNode) insn).desc; + for (int i = Type.getArgumentTypes(desc).length; i > 0; --i) { + values.add(0, pop()); + } + if (insn.getOpcode() != Opcodes.INVOKESTATIC) { + values.add(0, pop()); + } + if (Type.getReturnType(desc) == Type.VOID_TYPE) { + interpreter.naryOperation(insn, values); + } else { + push(interpreter.naryOperation(insn, values)); + } + break; + case Opcodes.NEW: + push(interpreter.newOperation(insn)); + break; + case Opcodes.NEWARRAY: + case Opcodes.ANEWARRAY: + case Opcodes.ARRAYLENGTH: + push(interpreter.unaryOperation(insn, pop())); + break; + case Opcodes.ATHROW: + interpreter.unaryOperation(insn, pop()); + break; + case Opcodes.CHECKCAST: + case Opcodes.INSTANCEOF: + push(interpreter.unaryOperation(insn, pop())); + break; + case Opcodes.MONITORENTER: + case Opcodes.MONITOREXIT: + interpreter.unaryOperation(insn, pop()); + break; + case Opcodes.MULTIANEWARRAY: + values = new ArrayList(); + for (int i = ((MultiANewArrayInsnNode) insn).dims; i > 0; --i) { + values.add(0, pop()); + } + push(interpreter.naryOperation(insn, values)); + break; + case Opcodes.IFNULL: + case Opcodes.IFNONNULL: + interpreter.unaryOperation(insn, pop()); + break; + default: + throw new RuntimeException("Illegal opcode"); + } + } + + /** + * Merges this frame with the given frame. + * + * @param frame a frame. + * @param interpreter the interpreter used to merge values. + * @return true if this frame has been changed as a result of the + * merge operation, or false otherwise. + * @throws AnalyzerException if the frames have incompatible sizes. + */ + public boolean merge(final Frame frame, final Interpreter interpreter) + throws AnalyzerException + { + if (top != frame.top) { + throw new AnalyzerException("Incompatible stack heights"); + } + boolean changes = false; + for (int i = 0; i < locals + top; ++i) { + Value v = interpreter.merge(values[i], frame.values[i]); + if (v != values[i]) { + values[i] = v; + changes |= true; + } + } + return changes; + } + + /** + * Merges this frame with the given frame (case of a RET instruction). + * + * @param frame a frame + * @param access the local variables that have been accessed by the + * subroutine to which the RET instruction corresponds. + * @return true if this frame has been changed as a result of the + * merge operation, or false otherwise. + */ + public boolean merge(final Frame frame, final boolean[] access) { + boolean changes = false; + for (int i = 0; i < locals; ++i) { + if (!access[i] && !values[i].equals(frame.values[i])) { + values[i] = frame.values[i]; + changes = true; + } + } + return changes; + } + + /** + * Returns a string representation of this frame. + * + * @return a string representation of this frame. + */ + public String toString() { + StringBuffer b = new StringBuffer(); + for (int i = 0; i < locals; ++i) { + b.append(values[i]).append(' '); + } + b.append(' '); + for (int i = 0; i < top; ++i) { + b.append(values[i + locals].toString()).append(' '); + } + return b.toString(); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java new file mode 100644 index 00000000000..9528482e727 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java @@ -0,0 +1,73 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +/** + * A fixed size map of integer values. + * + * @author Eric Bruneton + */ +class IntMap { + + private int size; + + private Object[] keys; + + private int[] values; + + public IntMap(final int size) { + this.size = size; + this.keys = new Object[size]; + this.values = new int[size]; + } + + public int get(final Object key) { + int n = size; + int h = (key.hashCode() & 0x7FFFFFFF) % n; + int i = h; + while (keys[i] != key) { + i = (i + 1) % n; + if (i == h) { + throw new RuntimeException("Cannot find index of " + key); + } + } + return values[i]; + } + + public void put(final Object key, final int value) { + int n = size; + int i = (key.hashCode() & 0x7FFFFFFF) % n; + while (keys[i] != null) { + i = (i + 1) % n; + } + keys[i] = key; + values[i] = value; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java new file mode 100644 index 00000000000..f7a2f5301c3 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java @@ -0,0 +1,178 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.List; + +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; + +/** + * A semantic bytecode interpreter. More precisely, this interpreter only + * manages the computation of values from other values: it does not manage the + * transfer of values to or from the stack, and to or from the local variables. + * This separation allows a generic bytecode {@link Analyzer} to work with + * various semantic interpreters, without needing to duplicate the code to + * simulate the transfer of values. + * + * @author Eric Bruneton + */ +public interface Interpreter { + + /** + * Creates a new value that represents the given type. + * + * Called for method parameters (including this), + * exception handler variable and with null type + * for variables reserved by long and double types. + * + * @param type a primitive or reference type, or null to + * represent an uninitialized value. + * @return a value that represents the given type. The size of the returned + * value must be equal to the size of the given type. + */ + Value newValue(Type type); + + /** + * Interprets a bytecode instruction without arguments. This method is + * called for the following opcodes: + * + * ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, + * ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0, + * DCONST_1, BIPUSH, SIPUSH, LDC, JSR, GETSTATIC, NEW + * + * @param insn the bytecode instruction to be interpreted. + * @return the result of the interpretation of the given instruction. + * @throws AnalyzerException if an error occured during the interpretation. + */ + Value newOperation(AbstractInsnNode insn) throws AnalyzerException; + + /** + * Interprets a bytecode instruction that moves a value on the stack or to + * or from local variables. This method is called for the following opcodes: + * + * ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, + * ASTORE, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP + * + * @param insn the bytecode instruction to be interpreted. + * @param value the value that must be moved by the instruction. + * @return the result of the interpretation of the given instruction. The + * returned value must be equal to the given value. + * @throws AnalyzerException if an error occured during the interpretation. + */ + Value copyOperation(AbstractInsnNode insn, Value value) + throws AnalyzerException; + + /** + * Interprets a bytecode instruction with a single argument. This method is + * called for the following opcodes: + * + * INEG, LNEG, FNEG, DNEG, IINC, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, + * F2D, D2I, D2L, D2F, I2B, I2C, I2S, IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, + * TABLESWITCH, LOOKUPSWITCH, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, + * PUTSTATIC, GETFIELD, NEWARRAY, ANEWARRAY, ARRAYLENGTH, ATHROW, CHECKCAST, + * INSTANCEOF, MONITORENTER, MONITOREXIT, IFNULL, IFNONNULL + * + * @param insn the bytecode instruction to be interpreted. + * @param value the argument of the instruction to be interpreted. + * @return the result of the interpretation of the given instruction. + * @throws AnalyzerException if an error occured during the interpretation. + */ + Value unaryOperation(AbstractInsnNode insn, Value value) + throws AnalyzerException; + + /** + * Interprets a bytecode instruction with two arguments. This method is + * called for the following opcodes: + * + * IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IADD, + * LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, + * LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, ISHL, LSHL, ISHR, LSHR, IUSHR, + * LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, LCMP, FCMPL, FCMPG, DCMPL, + * DCMPG, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, + * IF_ACMPEQ, IF_ACMPNE, PUTFIELD + * + * @param insn the bytecode instruction to be interpreted. + * @param value1 the first argument of the instruction to be interpreted. + * @param value2 the second argument of the instruction to be interpreted. + * @return the result of the interpretation of the given instruction. + * @throws AnalyzerException if an error occured during the interpretation. + */ + Value binaryOperation(AbstractInsnNode insn, Value value1, Value value2) + throws AnalyzerException; + + /** + * Interprets a bytecode instruction with three arguments. This method is + * called for the following opcodes: + * + * IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE + * + * @param insn the bytecode instruction to be interpreted. + * @param value1 the first argument of the instruction to be interpreted. + * @param value2 the second argument of the instruction to be interpreted. + * @param value3 the third argument of the instruction to be interpreted. + * @return the result of the interpretation of the given instruction. + * @throws AnalyzerException if an error occured during the interpretation. + */ + Value ternaryOperation( + AbstractInsnNode insn, + Value value1, + Value value2, + Value value3) throws AnalyzerException; + + /** + * Interprets a bytecode instruction with a variable number of arguments. + * This method is called for the following opcodes: + * + * INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC, INVOKEINTERFACE, + * MULTIANEWARRAY + * + * @param insn the bytecode instruction to be interpreted. + * @param values the arguments of the instruction to be interpreted. + * @return the result of the interpretation of the given instruction. + * @throws AnalyzerException if an error occured during the interpretation. + */ + Value naryOperation(AbstractInsnNode insn, List values) + throws AnalyzerException; + + /** + * Merges two values. The merge operation must return a value that + * represents both values (for instance, if the two values are two types, + * the merged value must be a common super type of the two types. If the two + * values are integer intervals, the merged value must be an interval that + * contains the previous ones. Likewise for other types of values). + * + * @param v a value. + * @param w another value. + * @return the merged value. If the merged value is equal to v, + * this method must return v. + */ + Value merge(Value v, Value w); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java new file mode 100644 index 00000000000..808b3f41cba --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java @@ -0,0 +1,266 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.List; + +import org.objectweb.asm.Type; + +/** + * An extended {@link BasicVerifier} that performs more precise verifications. + * This verifier computes exact class types, instead of using a single "object + * reference" type (as done in the {@link BasicVerifier}). + * + * @author Eric Bruneton + * @author Bing Ran + */ +public class SimpleVerifier extends BasicVerifier { + + /** + * The class that is verified. + */ + private final Type currentClass; + + /** + * The super class of the class that is verified. + */ + private final Type currentSuperClass; + + /** + * The interfaces implemented by the class that is verified. + */ + private final List currentClassInterfaces; + + /** + * If the class that is verified is an interface. + */ + private final boolean isInterface; + + /** + * Constructs a new {@link SimpleVerifier}. + */ + public SimpleVerifier() { + this(null, null, false); + } + + /** + * Constructs a new {@link SimpleVerifier} to verify a specific class. This + * class will not be loaded into the JVM since it may be incorrect. + * + * @param currentClass the class that is verified. + * @param currentSuperClass the super class of the class that is verified. + * @param isInterface if the class that is verified is an interface. + */ + public SimpleVerifier( + final Type currentClass, + final Type currentSuperClass, + final boolean isInterface) + { + this(currentClass, currentSuperClass, null, isInterface); + } + + /** + * Constructs a new {@link SimpleVerifier} to verify a specific class. This + * class will not be loaded into the JVM since it may be incorrect. + * + * @param currentClass the class that is verified. + * @param currentSuperClass the super class of the class that is verified. + * @param currentClassInterfaces the interfaces implemented by the class + * that is verified. + * @param isInterface if the class that is verified is an interface. + */ + public SimpleVerifier( + final Type currentClass, + final Type currentSuperClass, + final List currentClassInterfaces, + final boolean isInterface) + { + this.currentClass = currentClass; + this.currentSuperClass = currentSuperClass; + this.currentClassInterfaces = currentClassInterfaces; + this.isInterface = isInterface; + } + + public Value newValue(final Type type) { + Value v = super.newValue(type); + if (v == BasicValue.REFERENCE_VALUE) { + v = new BasicValue(type); + } + return v; + } + + protected boolean isArrayValue(final Value value) { + Type t = ((BasicValue) value).getType(); + if (t != null) { + return t.getDescriptor().equals("Lnull;") + || t.getSort() == Type.ARRAY; + } + return false; + } + + protected Value getElementValue(final Value objectArrayValue) + throws AnalyzerException + { + Type arrayType = ((BasicValue) objectArrayValue).getType(); + if (arrayType != null) { + if (arrayType.getSort() == Type.ARRAY) { + return newValue(Type.getType(arrayType.getDescriptor() + .substring(1))); + } else if (arrayType.getDescriptor().equals("Lnull;")) { + return objectArrayValue; + } + } + throw new AnalyzerException("Not an array type"); + } + + protected boolean isSubTypeOf(final Value value, final Value expected) { + Type expectedType = ((BasicValue) expected).getType(); + Type type = ((BasicValue) value).getType(); + if (expectedType == null) { + return type == null; + } + switch (expectedType.getSort()) { + case Type.INT: + case Type.FLOAT: + case Type.LONG: + case Type.DOUBLE: + return type == expectedType; + case Type.ARRAY: + case Type.OBJECT: + if (expectedType.getDescriptor().equals("Lnull;")) { + return type.getSort() == Type.OBJECT + || type.getSort() == Type.ARRAY; + } + if (type.getDescriptor().equals("Lnull;")) { + return true; + } else if (type.getSort() == Type.OBJECT + || type.getSort() == Type.ARRAY) + { + return isAssignableFrom(expectedType, type); + } else { + return false; + } + default: + throw new RuntimeException("Internal error"); + } + } + + public Value merge(final Value v, final Value w) { + if (!v.equals(w)) { + Type t = ((BasicValue) v).getType(); + Type u = ((BasicValue) w).getType(); + if (t != null + && (t.getSort() == Type.OBJECT || t.getSort() == Type.ARRAY)) + { + if (u != null + && (u.getSort() == Type.OBJECT || u.getSort() == Type.ARRAY)) + { + if (t.getDescriptor().equals("Lnull;")) { + return w; + } + if (u.getDescriptor().equals("Lnull;")) { + return v; + } + if (isAssignableFrom(t, u)) { + return v; + } + if (isAssignableFrom(u, t)) { + return w; + } + // TODO case of array classes of the same dimension + // TODO should we look also for a common super interface? + // problem: there may be several possible common super + // interfaces + do { + if (t == null || isInterface(t)) { + return BasicValue.REFERENCE_VALUE; + } + t = getSuperClass(t); + if (isAssignableFrom(t, u)) { + return newValue(t); + } + } while (true); + } + } + return BasicValue.UNINITIALIZED_VALUE; + } + return v; + } + + private boolean isInterface(final Type t) { + if (currentClass != null && t.equals(currentClass)) { + return isInterface; + } + return getClass(t).isInterface(); + } + + private Type getSuperClass(final Type t) { + if (currentClass != null && t.equals(currentClass)) { + return currentSuperClass; + } + Class c = getClass(t).getSuperclass(); + return c == null ? null : Type.getType(c); + } + + private boolean isAssignableFrom(final Type t, final Type u) { + if (t.equals(u)) { + return true; + } + if (currentClass != null && t.equals(currentClass)) { + return isAssignableFrom(t, getSuperClass(u)); + } + if (currentClass != null && u.equals(currentClass)) { + if (isAssignableFrom(t, currentSuperClass)) { + return true; + } + if (currentClassInterfaces != null) { + for (int i = 0; i < currentClassInterfaces.size(); ++i) { + Type v = (Type) currentClassInterfaces.get(i); + if (isAssignableFrom(t, v)) { + return true; + } + } + } + return false; + } + return getClass(t).isAssignableFrom(getClass(u)); + } + + protected Class getClass(final Type t) { + try { + if (t.getSort() == Type.ARRAY) { + return Class.forName(t.getDescriptor().replace('/', '.')); + } + return Class.forName(t.getClassName()); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e.toString()); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java new file mode 100644 index 00000000000..74bd590ef1c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java @@ -0,0 +1,126 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.AbstractSet; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +/** + * A set of at most two elements. + * + * @author Eric Bruneton + */ +class SmallSet extends AbstractSet implements Iterator { + + // if e1 is null, e2 must be null; otherwise e2 must be different from e1 + + Object e1, e2; + + final static SmallSet EMPTY_SET = new SmallSet(null, null); + + SmallSet(Object e1, Object e2) { + this.e1 = e1; + this.e2 = e2; + } + + // ------------------------------------------------------------------------- + // Implementation of inherited abstract methods + // ------------------------------------------------------------------------- + + public Iterator iterator() { + return new SmallSet(e1, e2); + } + + public int size() { + return e1 == null ? 0 : (e2 == null ? 1 : 2); + } + + // ------------------------------------------------------------------------- + // Implementation of the Iterator interface + // ------------------------------------------------------------------------- + + public boolean hasNext() { + return e1 != null; + } + + public Object next() { + Object e = e1; + e1 = e2; + e2 = null; + return e; + } + + public void remove() { + } + + // ------------------------------------------------------------------------- + // Utility methods + // ------------------------------------------------------------------------- + + Set union(SmallSet s) { + if ((s.e1 == e1 && s.e2 == e2) || (s.e1 == e2 && s.e2 == e1)) { + return this; // if the two sets are equal, return this + } + if (s.e1 == null) { + return this; // if s is empty, return this + } + if (e1 == null) { + return s; // if this is empty, return s + } + if (s.e2 == null) { // s contains exactly one element + if (e2 == null) { + return new SmallSet(e1, s.e1); // necessarily e1 != s.e1 + } else if (s.e1 == e1 || s.e1 == e2) { // s is included in this + return this; + } + } + if (e2 == null) { // this contains exactly one element + // if (s.e2 == null) { // cannot happen + // return new SmallSet(e1, s.e1); // necessarily e1 != s.e1 + // } else + if (e1 == s.e1 || e1 == s.e2) { // this in included in s + return s; + } + } + // here we know that there are at least 3 distinct elements + HashSet r = new HashSet(4); + r.add(e1); + if (e2 != null) { + r.add(e2); + } + r.add(s.e1); + if (s.e2 != null) { + r.add(s.e2); + } + return r; + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java new file mode 100644 index 00000000000..44120a7217b --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java @@ -0,0 +1,96 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +import java.util.ArrayList; +import java.util.List; + +import org.objectweb.asm.Label; +import org.objectweb.asm.tree.JumpInsnNode; + +/** + * A method subroutine (corresponds to a JSR instruction). + * + * @author Eric Bruneton + */ +class Subroutine { + + Label start; + + boolean[] access; + + List callers; + + private Subroutine() { + } + + public Subroutine( + final Label start, + final int maxLocals, + final JumpInsnNode caller) + { + this.start = start; + this.access = new boolean[maxLocals]; + this.callers = new ArrayList(); + callers.add(caller); + } + + public Subroutine copy() { + Subroutine result = new Subroutine(); + result.start = start; + result.access = new boolean[access.length]; + System.arraycopy(access, 0, result.access, 0, access.length); + result.callers = new ArrayList(callers); + return result; + } + + public boolean merge(final Subroutine subroutine, boolean checkOverlap) + throws AnalyzerException + { + if (checkOverlap && subroutine.start != start) { + throw new AnalyzerException("Overlapping sub routines"); + } + boolean changes = false; + for (int i = 0; i < access.length; ++i) { + if (subroutine.access[i] && !access[i]) { + access[i] = true; + changes = true; + } + } + for (int i = 0; i < subroutine.callers.size(); ++i) { + Object caller = subroutine.callers.get(i); + if (!callers.contains(caller)) { + callers.add(caller); + changes = true; + } + } + return changes; + } +} \ No newline at end of file diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java new file mode 100644 index 00000000000..6578b798665 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/Value.java @@ -0,0 +1,45 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.tree.analysis; + +/** + * An immutable symbolic value for semantic interpretation of bytecode. + * + * @author Eric Bruneton + */ +public interface Value { + + /** + * Returns the size of this value in words. + * + * @return either 1 or 2. + */ + int getSize(); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/package.html new file mode 100644 index 00000000000..7c20f2e754c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/analysis/package.html @@ -0,0 +1,36 @@ + + + +Provides a framework for static code analysis based on the asm.tree package. + +@since ASM 1.4.3 + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/package.html new file mode 100644 index 00000000000..d455211518e --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/tree/package.html @@ -0,0 +1,149 @@ + + + + +

      +Provides an ASM visitor that constructs a tree representation of the +classes it visits. This class adapter can be useful to implement "complex" +class manipulation operations, i.e., operations that would be very hard to +implement without using a tree representation (such as optimizing the number +of local variables used by a method). +

      + +

      +However, this class adapter has a cost: it makes ASM bigger and slower. Indeed +it requires more than twenty new classes, and multiplies the time needed to +transform a class by almost two (it is almost two times faster to read, "modify" +and write a class with a ClassAdapter than with a ClassNode). This is why +this package is bundled in an optional asm-tree.jar library that +is separated from (but requires) the asm.jar library, which contains +the core ASM framework. This is also why it is recommanded +not to use this class adapter when it is possible. +

      + +

      +The root class is the ClassNode, that can be created from scratch or +from existing bytecode. For example: +

      + +
      +  ClassReader cr = new ClassReader(source);
      +  ClassNode cn = new ClassNode();
      +  cr.accept(cn, true);
      +
      + +

      +Now content of ClassNode can be modified and then +serialized back into bytecode: +

      + +
      +  ClassWriter cw = new ClassWriter(true);
      +  cn.accept(cw);
      +
      + +

      +Several strategies can be used to construct method code from scratch. The first +possibility is to create a MethodNode, and then create and add XXXInsnNode to +the instructions list: +

      + +
      +MethodNode m = new MethodNode(...);
      +m.instructions.add(new VarInsnNode(ALOAD, 0));
      +...
      +
      + +

      +Alternatively, you can use the fact that MethodNode is a MethodVisitor, and use +that to create the XXXInsnNode and add them to the instructions list through +the standard MethodVisitor interface: +

      + +
      +MethodNode m = new MethodNode(...);
      +m.visitVarInsn(ALOAD, 0);
      +...
      +
      + +

      +If you cannot generate all the instructions in sequential order, i.e. if you +need to keep some pointers in the instruction list to insert some instructions +at these places after other instructions have been generated, you can define +an InsnListInsnNode pseudo instruction class that will in fact contain an +instruction list, will possibly implement the MethodVisitor interface, and whose +accept method will call the accept method of all the instructions of its list. +

      + +
      +MethodNode m = new MethodNode(...);
      +m.visitVarInsn(ALOAD, 0);
      +InsnListInsnNode ptr = new InsnListInsnNode();
      +m.instructions.add(ptr);
      +m.visitVarInsn(ALOAD, 1);
      +ptr.visitXXXInsn(...); // inserts an instruction between ALOAD 0 and ALOAD 1
      +
      + +

      +If you need to insert instructions while iterating over an existing instruction +list, you can also use several strategies. The first one is to use a +ListIterator over the instruction list, and use its add method to insert +instructions: +

      + +
      +ListIterator i = m.instructions.listIterator();
      +while (i.hasNext()) {
      +    AbstractInsnNode n = (AbstractInsnNode) i.next();
      +    if (...) {
      +        i.add(new VarInsnNode(ALOAD, 0));
      +    }
      +}
      +
      + +

      +If you want to insert these instructions through the MethodVisitor interface, +you can define your own InsnListIterator class, that will implement both the +ListIterator and MethodVisitor interface. +

      + +

      +Another strategy is to use ListIterator.add to insert InsnListInsnNode pseudo +instructions, and then use these inserted pseudo instructions to insert an +arbitrary number of instructions at these places. +

      + +

      +@since ASM 1.3.3 +

      + + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java new file mode 100644 index 00000000000..4ebc7fc097c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java @@ -0,0 +1,226 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import java.util.HashMap; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.Type; +import org.objectweb.asm.util.attrs.ASMifiable; + +/** + * An abstract ASMifier visitor. + * + * @author Eric Bruneton + */ +public class ASMifierAbstractVisitor extends AbstractVisitor { + + /** + * The name of the variable for this visitor in the produced code. + */ + protected String name; + + /** + * The label names. This map associates String values to Label keys. It is + * used only in ASMifierMethodVisitor. + */ + HashMap labelNames; + + /** + * Constructs a new {@link ASMifierAbstractVisitor}. + * + * @param name the name of the variable for this visitor in the produced + * code. + */ + protected ASMifierAbstractVisitor(final String name) { + this.name = name; + } + + /** + * Prints the ASM code that generates the given annotation. + * + * @param desc the class descriptor of the annotation class. + * @param visible true if the annotation is visible at runtime. + * @return a visitor to visit the annotation values. + */ + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + buf.setLength(0); + buf.append("{\n") + .append("av0 = ") + .append(name) + .append(".visitAnnotation("); + appendConstant(desc); + buf.append(", ").append(visible).append(");\n"); + text.add(buf.toString()); + ASMifierAnnotationVisitor av = new ASMifierAnnotationVisitor(0); + text.add(av.getText()); + text.add("}\n"); + return av; + } + + /** + * Prints the ASM code that generates the given attribute. + * + * @param attr an attribute. + */ + public void visitAttribute(final Attribute attr) { + buf.setLength(0); + if (attr instanceof ASMifiable) { + buf.append("{\n"); + buf.append("// ATTRIBUTE\n"); + ((ASMifiable) attr).asmify(buf, "attr", labelNames); + buf.append(name).append(".visitAttribute(attr);\n"); + buf.append("}\n"); + } else { + buf.append("// WARNING! skipped a non standard attribute of type \""); + buf.append(attr.type).append("\"\n"); + } + text.add(buf.toString()); + } + + /** + * Prints the ASM code to end the visit. + */ + public void visitEnd() { + buf.setLength(0); + buf.append(name).append(".visitEnd();\n"); + text.add(buf.toString()); + } + + /** + * Appends a string representation of the given constant to the given + * buffer. + * + * @param cst an {@link Integer}, {@link Float}, {@link Long}, + * {@link Double} or {@link String} object. May be null. + */ + void appendConstant(final Object cst) { + appendConstant(buf, cst); + } + + /** + * Appends a string representation of the given constant to the given + * buffer. + * + * @param buf a string buffer. + * @param cst an {@link Integer}, {@link Float}, {@link Long}, + * {@link Double} or {@link String} object. May be null. + */ + static void appendConstant(final StringBuffer buf, final Object cst) { + if (cst == null) { + buf.append("null"); + } else if (cst instanceof String) { + appendString(buf, (String) cst); + } else if (cst instanceof Type) { + buf.append("Type.getType(\""); + buf.append(((Type) cst).getDescriptor()); + buf.append("\")"); + } else if (cst instanceof Byte) { + buf.append("new Byte((byte)").append(cst).append(")"); + } else if (cst instanceof Boolean) { + buf.append("new Boolean(").append(cst).append(")"); + } else if (cst instanceof Short) { + buf.append("new Short((short)").append(cst).append(")"); + } else if (cst instanceof Character) { + int c = ((Character) cst).charValue(); + buf.append("new Character((char)").append(c).append(")"); + } else if (cst instanceof Integer) { + buf.append("new Integer(").append(cst).append(")"); + } else if (cst instanceof Float) { + buf.append("new Float(\"").append(cst).append("\")"); + } else if (cst instanceof Long) { + buf.append("new Long(").append(cst).append("L)"); + } else if (cst instanceof Double) { + buf.append("new Double(\"").append(cst).append("\")"); + } else if (cst instanceof byte[]) { + byte[] v = (byte[]) cst; + buf.append("new byte[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",").append(v[i]); + } + buf.append("}"); + } else if (cst instanceof boolean[]) { + boolean[] v = (boolean[]) cst; + buf.append("new boolean[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",").append(v[i]); + } + buf.append("}"); + } else if (cst instanceof short[]) { + short[] v = (short[]) cst; + buf.append("new short[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",").append("(short)").append(v[i]); + } + buf.append("}"); + } else if (cst instanceof char[]) { + char[] v = (char[]) cst; + buf.append("new char[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",") + .append("(char)") + .append((int) v[i]); + } + buf.append("}"); + } else if (cst instanceof int[]) { + int[] v = (int[]) cst; + buf.append("new int[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",").append(v[i]); + } + buf.append("}"); + } else if (cst instanceof long[]) { + long[] v = (long[]) cst; + buf.append("new long[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",").append(v[i]).append("L"); + } + buf.append("}"); + } else if (cst instanceof float[]) { + float[] v = (float[]) cst; + buf.append("new float[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",").append(v[i]).append("f"); + } + buf.append("}"); + } else if (cst instanceof double[]) { + double[] v = (double[]) cst; + buf.append("new double[] {"); + for (int i = 0; i < v.length; i++) { + buf.append(i == 0 ? "" : ",").append(v[i]).append("d"); + } + buf.append("}"); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java new file mode 100644 index 00000000000..bb48e2cdffb --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java @@ -0,0 +1,127 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; + +/** + * An {@link AnnotationVisitor} that prints the ASM code that generates the + * annotations it visits. + * + * @author Eric Bruneton + */ +public class ASMifierAnnotationVisitor extends AbstractVisitor implements + AnnotationVisitor +{ + + /** + * Identifier of the annotation visitor variable in the produced code. + */ + protected final int id; + + /** + * Constructs a new {@link ASMifierAnnotationVisitor}. + * + * @param id identifier of the annotation visitor variable in the produced + * code. + */ + public ASMifierAnnotationVisitor(final int id) { + this.id = id; + } + + // ------------------------------------------------------------------------ + // Implementation of the AnnotationVisitor interface + // ------------------------------------------------------------------------ + + public void visit(final String name, final Object value) { + buf.setLength(0); + buf.append("av").append(id).append(".visit("); + ASMifierAbstractVisitor.appendConstant(buf, name); + buf.append(", "); + ASMifierAbstractVisitor.appendConstant(buf, value); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitEnum( + final String name, + final String desc, + final String value) + { + buf.setLength(0); + buf.append("av").append(id).append(".visitEnum("); + ASMifierAbstractVisitor.appendConstant(buf, name); + buf.append(", "); + ASMifierAbstractVisitor.appendConstant(buf, desc); + buf.append(", "); + ASMifierAbstractVisitor.appendConstant(buf, value); + buf.append(");\n"); + text.add(buf.toString()); + } + + public AnnotationVisitor visitAnnotation( + final String name, + final String desc) + { + buf.setLength(0); + buf.append("{\n"); + buf.append("AnnotationVisitor av").append(id + 1).append(" = av"); + buf.append(id).append(".visitAnnotation("); + ASMifierAbstractVisitor.appendConstant(buf, name); + buf.append(", "); + ASMifierAbstractVisitor.appendConstant(buf, desc); + buf.append(");\n"); + text.add(buf.toString()); + ASMifierAnnotationVisitor av = new ASMifierAnnotationVisitor(id + 1); + text.add(av.getText()); + text.add("}\n"); + return av; + } + + public AnnotationVisitor visitArray(final String name) { + buf.setLength(0); + buf.append("{\n"); + buf.append("AnnotationVisitor av").append(id + 1).append(" = av"); + buf.append(id).append(".visitArray("); + ASMifierAbstractVisitor.appendConstant(buf, name); + buf.append(");\n"); + text.add(buf.toString()); + ASMifierAnnotationVisitor av = new ASMifierAnnotationVisitor(id + 1); + text.add(av.getText()); + text.add("}\n"); + return av; + } + + public void visitEnd() { + buf.setLength(0); + buf.append("av").append(id).append(".visitEnd();\n"); + text.add(buf.toString()); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java new file mode 100644 index 00000000000..222325f0f1d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java @@ -0,0 +1,607 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import java.io.FileInputStream; +import java.io.PrintWriter; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; + +/** + * A {@link ClassVisitor} that prints the ASM code that generates the classes it + * visits. This class visitor can be used to quickly write ASM code to generate + * some given bytecode:
      • write the Java source code equivalent to the + * bytecode you want to generate;
      • compile it with javac;
      • + *
      • make a {@link ASMifierClassVisitor} visit this compiled class (see the + * {@link #main main} method);
      • edit the generated source code, if + * necessary.
      The source code printed when visiting the + * Hello class is the following:

      + * + *
      + * import org.objectweb.asm.*;
      + * 
      + * public class HelloDump implements Opcodes {
      + * 
      + *     public static byte[] dump() throws Exception {
      + * 
      + *         ClassWriter cw = new ClassWriter(false);
      + *         FieldVisitor fv;
      + *         MethodVisitor mv;
      + *         AnnotationVisitor av0;
      + * 
      + *         cw.visit(49,
      + *                 ACC_PUBLIC + ACC_SUPER,
      + *                 "Hello",
      + *                 null,
      + *                 "java/lang/Object",
      + *                 null);
      + * 
      + *         cw.visitSource("Hello.java", null);
      + * 
      + *         {
      + *             mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
      + *             mv.visitVarInsn(ALOAD, 0);
      + *             mv.visitMethodInsn(INVOKESPECIAL,
      + *                     "java/lang/Object",
      + *                     "<init>",
      + *                     "()V");
      + *             mv.visitInsn(RETURN);
      + *             mv.visitMaxs(1, 1);
      + *             mv.visitEnd();
      + *         }
      + *         {
      + *             mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC,
      + *                     "main",
      + *                     "([Ljava/lang/String;)V",
      + *                     null,
      + *                     null);
      + *             mv.visitFieldInsn(GETSTATIC,
      + *                     "java/lang/System",
      + *                     "out",
      + *                     "Ljava/io/PrintStream;");
      + *             mv.visitLdcInsn("hello");
      + *             mv.visitMethodInsn(INVOKEVIRTUAL,
      + *                     "java/io/PrintStream",
      + *                     "println",
      + *                     "(Ljava/lang/String;)V");
      + *             mv.visitInsn(RETURN);
      + *             mv.visitMaxs(2, 1);
      + *             mv.visitEnd();
      + *         }
      + *         cw.visitEnd();
      + * 
      + *         return cw.toByteArray();
      + *     }
      + * }
      + * 
      + * 
      + * + *
      where Hello is defined by:

      + * + *
      + * public class Hello {
      + * 
      + *     public static void main(String[] args) {
      + *         System.out.println("hello");
      + *     }
      + * }
      + * 
      + * + *
      + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +public class ASMifierClassVisitor extends ASMifierAbstractVisitor implements + ClassVisitor +{ + + /** + * Pseudo access flag used to distinguish class access flags. + */ + private final static int ACCESS_CLASS = 262144; + + /** + * Pseudo access flag used to distinguish field access flags. + */ + private final static int ACCESS_FIELD = 524288; + + /** + * Pseudo access flag used to distinguish inner class flags. + */ + private static final int ACCESS_INNER = 1048576; + + /** + * The print writer to be used to print the class. + */ + protected final PrintWriter pw; + + /** + * Prints the ASM source code to generate the given class to the standard + * output.

      Usage: ASMifierClassVisitor [-debug] <fully qualified + * class name or class file name> + * + * @param args the command line arguments. + * + * @throws Exception if the class cannot be found, or if an IO exception + * occurs. + */ + public static void main(final String[] args) throws Exception { + int i = 0; + boolean skipDebug = true; + + boolean ok = true; + if (args.length < 1 || args.length > 2) { + ok = false; + } + if (ok && args[0].equals("-debug")) { + i = 1; + skipDebug = false; + if (args.length != 2) { + ok = false; + } + } + if (!ok) { + System.err.println("Prints the ASM code to generate the given class."); + System.err.println("Usage: ASMifierClassVisitor [-debug] " + + ""); + return; + } + ClassReader cr; + if (args[i].endsWith(".class") || args[i].indexOf('\\') > -1 + || args[i].indexOf('/') > -1) { + cr = new ClassReader(new FileInputStream(args[i])); + } else { + cr = new ClassReader(args[i]); + } + cr.accept(new ASMifierClassVisitor(new PrintWriter(System.out)), + getDefaultAttributes(), + skipDebug); + } + + /** + * Constructs a new {@link ASMifierClassVisitor} object. + * + * @param pw the print writer to be used to print the class. + */ + public ASMifierClassVisitor(final PrintWriter pw) { + super("cw"); + this.pw = pw; + } + + // ------------------------------------------------------------------------ + // Implementation of the ClassVisitor interface + // ------------------------------------------------------------------------ + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + String simpleName; + int n = name.lastIndexOf('/'); + if (n != -1) { + text.add("package asm." + name.substring(0, n).replace('/', '.') + + ";\n"); + simpleName = name.substring(n + 1); + } else { + simpleName = name; + } + text.add("import java.util.*;\n"); + text.add("import org.objectweb.asm.*;\n"); + text.add("import org.objectweb.asm.attrs.*;\n"); + text.add("public class " + simpleName + "Dump implements Opcodes {\n\n"); + text.add("public static byte[] dump () throws Exception {\n\n"); + text.add("ClassWriter cw = new ClassWriter(false);\n"); + text.add("FieldVisitor fv;\n"); + text.add("MethodVisitor mv;\n"); + text.add("AnnotationVisitor av0;\n\n"); + + buf.setLength(0); + buf.append("cw.visit("); + switch (version) { + case Opcodes.V1_1: + buf.append("V1_1"); + break; + case Opcodes.V1_2: + buf.append("V1_2"); + break; + case Opcodes.V1_3: + buf.append("V1_3"); + break; + case Opcodes.V1_4: + buf.append("V1_4"); + break; + case Opcodes.V1_5: + buf.append("V1_5"); + break; + case Opcodes.V1_6: + buf.append("V1_6"); + break; + default: + buf.append(version); + break; + } + buf.append(", "); + appendAccess(access | ACCESS_CLASS); + buf.append(", "); + appendConstant(name); + buf.append(", "); + appendConstant(signature); + buf.append(", "); + appendConstant(superName); + buf.append(", "); + if (interfaces != null && interfaces.length > 0) { + buf.append("new String[] {"); + for (int i = 0; i < interfaces.length; ++i) { + buf.append(i == 0 ? " " : ", "); + appendConstant(interfaces[i]); + } + buf.append(" }"); + } else { + buf.append("null"); + } + buf.append(");\n\n"); + text.add(buf.toString()); + } + + public void visitSource(final String file, final String debug) { + buf.setLength(0); + buf.append("cw.visitSource("); + appendConstant(file); + buf.append(", "); + appendConstant(debug); + buf.append(");\n\n"); + text.add(buf.toString()); + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + buf.setLength(0); + buf.append("cw.visitOuterClass("); + appendConstant(owner); + buf.append(", "); + appendConstant(name); + buf.append(", "); + appendConstant(desc); + buf.append(");\n\n"); + text.add(buf.toString()); + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + buf.setLength(0); + buf.append("cw.visitInnerClass("); + appendConstant(name); + buf.append(", "); + appendConstant(outerName); + buf.append(", "); + appendConstant(innerName); + buf.append(", "); + appendAccess(access | ACCESS_INNER); + buf.append(");\n\n"); + text.add(buf.toString()); + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + buf.setLength(0); + buf.append("{\n"); + buf.append("fv = cw.visitField("); + appendAccess(access | ACCESS_FIELD); + buf.append(", "); + appendConstant(name); + buf.append(", "); + appendConstant(desc); + buf.append(", "); + appendConstant(signature); + buf.append(", "); + appendConstant(value); + buf.append(");\n"); + text.add(buf.toString()); + ASMifierFieldVisitor aav = new ASMifierFieldVisitor(); + text.add(aav.getText()); + text.add("}\n"); + return aav; + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + buf.setLength(0); + buf.append("{\n"); + buf.append("mv = cw.visitMethod("); + appendAccess(access); + buf.append(", "); + appendConstant(name); + buf.append(", "); + appendConstant(desc); + buf.append(", "); + appendConstant(signature); + buf.append(", "); + if (exceptions != null && exceptions.length > 0) { + buf.append("new String[] {"); + for (int i = 0; i < exceptions.length; ++i) { + buf.append(i == 0 ? " " : ", "); + appendConstant(exceptions[i]); + } + buf.append(" }"); + } else { + buf.append("null"); + } + buf.append(");\n"); + text.add(buf.toString()); + ASMifierMethodVisitor acv = new ASMifierMethodVisitor(); + text.add(acv.getText()); + text.add("}\n"); + return acv; + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + buf.setLength(0); + buf.append("{\n"); + buf.append("av0 = cw.visitAnnotation("); + appendConstant(desc); + buf.append(", "); + buf.append(visible); + buf.append(");\n"); + text.add(buf.toString()); + ASMifierAnnotationVisitor av = new ASMifierAnnotationVisitor(0); + text.add(av.getText()); + text.add("}\n"); + return av; + } + + public void visitEnd() { + text.add("cw.visitEnd();\n\n"); + text.add("return cw.toByteArray();\n"); + text.add("}\n"); + text.add("}\n"); + printList(pw, text); + pw.flush(); + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + /** + * Appends a string representation of the given access modifiers to {@link + * #buf buf}. + * + * @param access some access modifiers. + */ + void appendAccess(final int access) { + boolean first = true; + if ((access & Opcodes.ACC_PUBLIC) != 0) { + buf.append("ACC_PUBLIC"); + first = false; + } + if ((access & Opcodes.ACC_PRIVATE) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_PRIVATE"); + first = false; + } + if ((access & Opcodes.ACC_PROTECTED) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_PROTECTED"); + first = false; + } + if ((access & Opcodes.ACC_FINAL) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_FINAL"); + first = false; + } + if ((access & Opcodes.ACC_STATIC) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_STATIC"); + first = false; + } + if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) { + if (!first) { + buf.append(" + "); + } + if ((access & ACCESS_CLASS) != 0) { + buf.append("ACC_SUPER"); + } else { + buf.append("ACC_SYNCHRONIZED"); + } + first = false; + } + if ((access & Opcodes.ACC_VOLATILE) != 0 + && (access & ACCESS_FIELD) != 0) + { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_VOLATILE"); + first = false; + } + if ((access & Opcodes.ACC_BRIDGE) != 0 && (access & ACCESS_CLASS) == 0 + && (access & ACCESS_FIELD) == 0) + { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_BRIDGE"); + first = false; + } + if ((access & Opcodes.ACC_VARARGS) != 0 && (access & ACCESS_CLASS) == 0 + && (access & ACCESS_FIELD) == 0) + { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_VARARGS"); + first = false; + } + if ((access & Opcodes.ACC_TRANSIENT) != 0 + && (access & ACCESS_FIELD) != 0) + { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_TRANSIENT"); + first = false; + } + if ((access & Opcodes.ACC_NATIVE) != 0 && (access & ACCESS_CLASS) == 0 + && (access & ACCESS_FIELD) == 0) + { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_NATIVE"); + first = false; + } + if ((access & Opcodes.ACC_ENUM) != 0 + && ((access & ACCESS_CLASS) != 0 + || (access & ACCESS_FIELD) != 0 || (access & ACCESS_INNER) != 0)) + { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_ENUM"); + first = false; + } + if ((access & Opcodes.ACC_ANNOTATION) != 0 + && ((access & ACCESS_CLASS) != 0)) + { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_ANNOTATION"); + first = false; + } + if ((access & Opcodes.ACC_ABSTRACT) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_ABSTRACT"); + first = false; + } + if ((access & Opcodes.ACC_INTERFACE) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_INTERFACE"); + first = false; + } + if ((access & Opcodes.ACC_STRICT) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_STRICT"); + first = false; + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_SYNTHETIC"); + first = false; + } + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + if (!first) { + buf.append(" + "); + } + buf.append("ACC_DEPRECATED"); + first = false; + } + if (first) { + buf.append("0"); + } + } + + /** + * Appends a string representation of the given constant to the given + * buffer. + * + * @param buf a string buffer. + * @param cst an {@link java.lang.Integer Integer}, {@link java.lang.Float + * Float}, {@link java.lang.Long Long}, + * {@link java.lang.Double Double} or {@link String String} object. + * May be null. + */ + static void appendConstant(final StringBuffer buf, final Object cst) { + if (cst == null) { + buf.append("null"); + } else if (cst instanceof String) { + AbstractVisitor.appendString(buf, (String) cst); + } else if (cst instanceof Type) { + buf.append("Type.getType(\"") + .append(((Type) cst).getDescriptor()) + .append("\")"); + } else if (cst instanceof Integer) { + buf.append("new Integer(").append(cst).append(")"); + } else if (cst instanceof Float) { + buf.append("new Float(\"").append(cst).append("\")"); + } else if (cst instanceof Long) { + buf.append("new Long(").append(cst).append("L)"); + } else if (cst instanceof Double) { + buf.append("new Double(\"").append(cst).append("\")"); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java new file mode 100644 index 00000000000..9da152ca357 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java @@ -0,0 +1,50 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.FieldVisitor; + +/** + * A {@link FieldVisitor} that prints the ASM code that generates the fields it + * visits. + * + * @author Eric Bruneton + */ +public class ASMifierFieldVisitor extends ASMifierAbstractVisitor implements + FieldVisitor +{ + + /** + * Constructs a new {@link ASMifierFieldVisitor}. + */ + public ASMifierFieldVisitor() { + super("fv"); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java new file mode 100644 index 00000000000..33404d97525 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java @@ -0,0 +1,347 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.Opcodes; + +import java.util.HashMap; + +/** + * A {@link MethodVisitor} that prints the ASM code that generates the methods + * it visits. + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +public class ASMifierMethodVisitor extends ASMifierAbstractVisitor implements + MethodVisitor +{ + + /** + * Constructs a new {@link ASMifierMethodVisitor} object. + */ + public ASMifierMethodVisitor() { + super("mv"); + this.labelNames = new HashMap(); + } + + public AnnotationVisitor visitAnnotationDefault() { + buf.setLength(0); + buf.append("{\n").append("av0 = mv.visitAnnotationDefault();\n"); + text.add(buf.toString()); + ASMifierAnnotationVisitor av = new ASMifierAnnotationVisitor(0); + text.add(av.getText()); + text.add("}\n"); + return av; + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + buf.setLength(0); + buf.append("{\n") + .append("av0 = mv.visitParameterAnnotation(") + .append(parameter) + .append(", "); + appendConstant(desc); + buf.append(", ").append(visible).append(");\n"); + text.add(buf.toString()); + ASMifierAnnotationVisitor av = new ASMifierAnnotationVisitor(0); + text.add(av.getText()); + text.add("}\n"); + return av; + } + + public void visitCode() { + text.add("mv.visitCode();\n"); + } + + public void visitInsn(final int opcode) { + buf.setLength(0); + buf.append("mv.visitInsn(").append(OPCODES[opcode]).append(");\n"); + text.add(buf.toString()); + } + + public void visitIntInsn(final int opcode, final int operand) { + buf.setLength(0); + buf.append("mv.visitIntInsn(") + .append(OPCODES[opcode]) + .append(", ") + .append(opcode == Opcodes.NEWARRAY + ? TYPES[operand] + : Integer.toString(operand)) + .append(");\n"); + text.add(buf.toString()); + } + + public void visitVarInsn(final int opcode, final int var) { + buf.setLength(0); + buf.append("mv.visitVarInsn(") + .append(OPCODES[opcode]) + .append(", ") + .append(var) + .append(");\n"); + text.add(buf.toString()); + } + + public void visitTypeInsn(final int opcode, final String desc) { + buf.setLength(0); + buf.append("mv.visitTypeInsn(").append(OPCODES[opcode]).append(", "); + appendConstant(desc); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + buf.setLength(0); + buf.append("mv.visitFieldInsn(").append(OPCODES[opcode]).append(", "); + appendConstant(owner); + buf.append(", "); + appendConstant(name); + buf.append(", "); + appendConstant(desc); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + buf.setLength(0); + buf.append("mv.visitMethodInsn(").append(OPCODES[opcode]).append(", "); + appendConstant(owner); + buf.append(", "); + appendConstant(name); + buf.append(", "); + appendConstant(desc); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitJumpInsn(final int opcode, final Label label) { + buf.setLength(0); + declareLabel(label); + buf.append("mv.visitJumpInsn(").append(OPCODES[opcode]).append(", "); + appendLabel(label); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitLabel(final Label label) { + buf.setLength(0); + declareLabel(label); + buf.append("mv.visitLabel("); + appendLabel(label); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitLdcInsn(final Object cst) { + buf.setLength(0); + buf.append("mv.visitLdcInsn("); + appendConstant(cst); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitIincInsn(final int var, final int increment) { + buf.setLength(0); + buf.append("mv.visitIincInsn(") + .append(var) + .append(", ") + .append(increment) + .append(");\n"); + text.add(buf.toString()); + } + + public void visitTableSwitchInsn( + final int min, + final int max, + final Label dflt, + final Label labels[]) + { + buf.setLength(0); + for (int i = 0; i < labels.length; ++i) { + declareLabel(labels[i]); + } + declareLabel(dflt); + + buf.append("mv.visitTableSwitchInsn(") + .append(min) + .append(", ") + .append(max) + .append(", "); + appendLabel(dflt); + buf.append(", new Label[] {"); + for (int i = 0; i < labels.length; ++i) { + buf.append(i == 0 ? " " : ", "); + appendLabel(labels[i]); + } + buf.append(" });\n"); + text.add(buf.toString()); + } + + public void visitLookupSwitchInsn( + final Label dflt, + final int keys[], + final Label labels[]) + { + buf.setLength(0); + for (int i = 0; i < labels.length; ++i) { + declareLabel(labels[i]); + } + declareLabel(dflt); + + buf.append("mv.visitLookupSwitchInsn("); + appendLabel(dflt); + buf.append(", new int[] {"); + for (int i = 0; i < keys.length; ++i) { + buf.append(i == 0 ? " " : ", ").append(keys[i]); + } + buf.append(" }, new Label[] {"); + for (int i = 0; i < labels.length; ++i) { + buf.append(i == 0 ? " " : ", "); + appendLabel(labels[i]); + } + buf.append(" });\n"); + text.add(buf.toString()); + } + + public void visitMultiANewArrayInsn(final String desc, final int dims) { + buf.setLength(0); + buf.append("mv.visitMultiANewArrayInsn("); + appendConstant(desc); + buf.append(", ").append(dims).append(");\n"); + text.add(buf.toString()); + } + + public void visitTryCatchBlock( + final Label start, + final Label end, + final Label handler, + final String type) + { + buf.setLength(0); + declareLabel(start); + declareLabel(end); + declareLabel(handler); + buf.append("mv.visitTryCatchBlock("); + appendLabel(start); + buf.append(", "); + appendLabel(end); + buf.append(", "); + appendLabel(handler); + buf.append(", "); + appendConstant(type); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + buf.setLength(0); + buf.append("mv.visitLocalVariable("); + appendConstant(name); + buf.append(", "); + appendConstant(desc); + buf.append(", "); + appendConstant(signature); + buf.append(", "); + appendLabel(start); + buf.append(", "); + appendLabel(end); + buf.append(", ").append(index).append(");\n"); + text.add(buf.toString()); + } + + public void visitLineNumber(final int line, final Label start) { + buf.setLength(0); + buf.append("mv.visitLineNumber(").append(line).append(", "); + appendLabel(start); + buf.append(");\n"); + text.add(buf.toString()); + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + buf.setLength(0); + buf.append("mv.visitMaxs(") + .append(maxStack) + .append(", ") + .append(maxLocals) + .append(");\n"); + text.add(buf.toString()); + } + + /** + * Appends a declaration of the given label to {@link #buf buf}. This + * declaration is of the form "Label lXXX = new Label();". Does nothing if + * the given label has already been declared. + * + * @param l a label. + */ + private void declareLabel(final Label l) { + String name = (String) labelNames.get(l); + if (name == null) { + name = "l" + labelNames.size(); + labelNames.put(l, name); + buf.append("Label ").append(name).append(" = new Label();\n"); + } + } + + /** + * Appends the name of the given label to {@link #buf buf}. The given label + * must already have a name. One way to ensure this is to always + * call {@link #declareLabel declared} before calling this method. + * + * @param l a label. + */ + private void appendLabel(final Label l) { + buf.append((String) labelNames.get(l)); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java new file mode 100644 index 00000000000..3e329f7fe4e --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java @@ -0,0 +1,201 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.util.attrs.ASMStackMapAttribute; +import org.objectweb.asm.util.attrs.ASMStackMapTableAttribute; + +/** + * An abstract visitor. + * + * @author Eric Bruneton + */ +public abstract class AbstractVisitor { + + /** + * The names of the Java Virtual Machine opcodes. + */ + public final static String[] OPCODES; + /** + * Types for operand parameter of the + * {@link org.objectweb.asm.MethodVisitor#visitIntInsn} method when + * opcode is NEWARRAY. + */ + public final static String[] TYPES; + + static { + String s = "NOP,ACONST_NULL,ICONST_M1,ICONST_0,ICONST_1,ICONST_2," + + "ICONST_3,ICONST_4,ICONST_5,LCONST_0,LCONST_1,FCONST_0," + + "FCONST_1,FCONST_2,DCONST_0,DCONST_1,BIPUSH,SIPUSH,LDC,,," + + "ILOAD,LLOAD,FLOAD,DLOAD,ALOAD,,,,,,,,,,,,,,,,,,,,,IALOAD," + + "LALOAD,FALOAD,DALOAD,AALOAD,BALOAD,CALOAD,SALOAD,ISTORE," + + "LSTORE,FSTORE,DSTORE,ASTORE,,,,,,,,,,,,,,,,,,,,,IASTORE," + + "LASTORE,FASTORE,DASTORE,AASTORE,BASTORE,CASTORE,SASTORE,POP," + + "POP2,DUP,DUP_X1,DUP_X2,DUP2,DUP2_X1,DUP2_X2,SWAP,IADD,LADD," + + "FADD,DADD,ISUB,LSUB,FSUB,DSUB,IMUL,LMUL,FMUL,DMUL,IDIV,LDIV," + + "FDIV,DDIV,IREM,LREM,FREM,DREM,INEG,LNEG,FNEG,DNEG,ISHL,LSHL," + + "ISHR,LSHR,IUSHR,LUSHR,IAND,LAND,IOR,LOR,IXOR,LXOR,IINC,I2L," + + "I2F,I2D,L2I,L2F,L2D,F2I,F2L,F2D,D2I,D2L,D2F,I2B,I2C,I2S,LCMP," + + "FCMPL,FCMPG,DCMPL,DCMPG,IFEQ,IFNE,IFLT,IFGE,IFGT,IFLE," + + "IF_ICMPEQ,IF_ICMPNE,IF_ICMPLT,IF_ICMPGE,IF_ICMPGT,IF_ICMPLE," + + "IF_ACMPEQ,IF_ACMPNE,GOTO,JSR,RET,TABLESWITCH,LOOKUPSWITCH," + + "IRETURN,LRETURN,FRETURN,DRETURN,ARETURN,RETURN,GETSTATIC," + + "PUTSTATIC,GETFIELD,PUTFIELD,INVOKEVIRTUAL,INVOKESPECIAL," + + "INVOKESTATIC,INVOKEINTERFACE,,NEW,NEWARRAY,ANEWARRAY," + + "ARRAYLENGTH,ATHROW,CHECKCAST,INSTANCEOF,MONITORENTER," + + "MONITOREXIT,,MULTIANEWARRAY,IFNULL,IFNONNULL,"; + OPCODES = new String[200]; + int i = 0; + int j = 0; + int l; + while ((l = s.indexOf(',', j)) > 0) { + OPCODES[i++] = j + 1 == l ? null : s.substring(j, l); + j = l + 1; + } + + s = "T_BOOLEAN,T_CHAR,T_FLOAT,T_DOUBLE,T_BYTE,T_SHORT,T_INT,T_LONG,"; + TYPES = new String[12]; + j = 0; + i = 4; + while ((l = s.indexOf(',', j)) > 0) { + TYPES[i++] = s.substring(j, l); + j = l + 1; + } + } + + /** + * The text to be printed. Since the code of methods is not necessarily + * visited in sequential order, one method after the other, but can be + * interlaced (some instructions from method one, then some instructions + * from method two, then some instructions from method one again...), it is + * not possible to print the visited instructions directly to a sequential + * stream. A class is therefore printed in a two steps process: a string + * tree is constructed during the visit, and printed to a sequential stream + * at the end of the visit. This string tree is stored in this field, as a + * string list that can contain other string lists, which can themselves + * contain other string lists, and so on. + */ + public final List text; + + /** + * A buffer that can be used to create strings. + */ + protected final StringBuffer buf; + + /** + * Constructs a new {@link AbstractVisitor}. + */ + protected AbstractVisitor() { + this.text = new ArrayList(); + this.buf = new StringBuffer(); + } + + /** + * Returns the text printed by this visitor. + * + * @return the text printed by this visitor. + */ + public List getText() { + return text; + } + + /** + * Appends a quoted string to a given buffer. + * + * @param buf the buffer where the string must be added. + * @param s the string to be added. + */ + public static void appendString(final StringBuffer buf, final String s) { + buf.append("\""); + for (int i = 0; i < s.length(); ++i) { + char c = s.charAt(i); + if (c == '\n') { + buf.append("\\n"); + } else if (c == '\r') { + buf.append("\\r"); + } else if (c == '\\') { + buf.append("\\\\"); + } else if (c == '"') { + buf.append("\\\""); + } else if (c < 0x20 || c > 0x7f) { + buf.append("\\u"); + if (c < 0x10) { + buf.append("000"); + } else if (c < 0x100) { + buf.append("00"); + } else if (c < 0x1000) { + buf.append("0"); + } + buf.append(Integer.toString(c, 16)); + } else { + buf.append(c); + } + } + buf.append("\""); + } + + /** + * Prints the given string tree. + * + * @param pw the writer to be used to print the tree. + * @param l a string tree, i.e., a string list that can contain other string + * lists, and so on recursively. + */ + void printList(final PrintWriter pw, final List l) { + for (int i = 0; i < l.size(); ++i) { + Object o = l.get(i); + if (o instanceof List) { + printList(pw, (List) o); + } else { + pw.print(o.toString()); + } + } + } + + /** + * Returns the default {@link ASMifiable} prototypes. + * + * @return the default {@link ASMifiable} prototypes. + */ + public static Attribute[] getDefaultAttributes() { + try { + return new Attribute[] { + new ASMStackMapAttribute(), + new ASMStackMapTableAttribute() }; + } catch (Exception e) { + return new Attribute[0]; + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java new file mode 100644 index 00000000000..d00933ca528 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java @@ -0,0 +1,125 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Type; + +/** + * An {@link AnnotationVisitor} that checks that its methods are properly used. + * + * @author Eric Bruneton + */ +public class CheckAnnotationAdapter implements AnnotationVisitor { + + private AnnotationVisitor av; + + private boolean named; + + private boolean end; + + public CheckAnnotationAdapter(final AnnotationVisitor av) { + this(av, true); + } + + CheckAnnotationAdapter( + final AnnotationVisitor av, + final boolean named) + { + this.av = av; + this.named = named; + } + + public void visit(final String name, final Object value) { + checkEnd(); + checkName(name); + if (!(value instanceof Byte || value instanceof Boolean + || value instanceof Character || value instanceof Short + || value instanceof Integer || value instanceof Long + || value instanceof Float || value instanceof Double + || value instanceof String || value instanceof Type + || value instanceof byte[] || value instanceof boolean[] + || value instanceof char[] || value instanceof short[] + || value instanceof int[] || value instanceof long[] + || value instanceof float[] || value instanceof double[])) + { + throw new IllegalArgumentException("Invalid annotation value"); + } + av.visit(name, value); + } + + public void visitEnum( + final String name, + final String desc, + final String value) + { + checkEnd(); + checkName(name); + CheckMethodAdapter.checkDesc(desc, false); + if (value == null) { + throw new IllegalArgumentException("Invalid enum value"); + } + av.visitEnum(name, desc, value); + } + + public AnnotationVisitor visitAnnotation( + final String name, + final String desc) + { + checkEnd(); + checkName(name); + CheckMethodAdapter.checkDesc(desc, false); + return new CheckAnnotationAdapter(av.visitAnnotation(name, desc)); + } + + public AnnotationVisitor visitArray(final String name) { + checkEnd(); + checkName(name); + return new CheckAnnotationAdapter(av.visitArray(name), false); + } + + public void visitEnd() { + checkEnd(); + end = true; + av.visitEnd(); + } + + private void checkEnd() { + if (end) { + throw new IllegalStateException("Cannot call a visit method after visitEnd has been called"); + } + } + + private void checkName(final String name) { + if (named && name == null) { + throw new IllegalArgumentException("Annotation value name must not be null"); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java new file mode 100644 index 00000000000..640e8b08308 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java @@ -0,0 +1,416 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import java.io.FileInputStream; +import java.io.PrintWriter; +import java.util.List; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.ClassAdapter; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.MethodNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.TryCatchBlockNode; +import org.objectweb.asm.tree.analysis.Analyzer; +import org.objectweb.asm.tree.analysis.SimpleVerifier; +import org.objectweb.asm.tree.analysis.Frame; + +/** + * A {@link ClassAdapter} that checks that its methods are properly used. More + * precisely this class adapter checks each method call individually, based + * only on its arguments, but does not check the sequence + * of method calls. For example, the invalid sequence + * visitField(ACC_PUBLIC, "i", "I", null) visitField(ACC_PUBLIC, + * "i", "D", null) + * will not be detected by this class adapter. + * + * @author Eric Bruneton + */ +public class CheckClassAdapter extends ClassAdapter { + + /** + * true if the visit method has been called. + */ + private boolean start; + + /** + * true if the visitSource method has been called. + */ + private boolean source; + + /** + * true if the visitOuterClass method has been called. + */ + private boolean outer; + + /** + * true if the visitEnd method has been called. + */ + private boolean end; + + /** + * Checks a given class.

      Usage: CheckClassAdapter <fully qualified + * class name or class file name> + * + * @param args the command line arguments. + * + * @throws Exception if the class cannot be found, or if an IO exception + * occurs. + */ + public static void main(final String[] args) throws Exception { + if (args.length != 1) { + System.err.println("Verifies the given class."); + System.err.println("Usage: CheckClassAdapter " + + ""); + return; + } + ClassReader cr; + if (args[0].endsWith(".class")) { + cr = new ClassReader(new FileInputStream(args[0])); + } else { + cr = new ClassReader(args[0]); + } + + verify(cr, false, new PrintWriter(System.err)); + } + + /** + * Checks a given class + * + * @param cr a ClassReader that contains bytecode for the analysis. + * @param dump true if bytecode should be printed out not only when errors are found. + * @param pw write where results going to be printed + */ + public static void verify(ClassReader cr, boolean dump, PrintWriter pw) { + ClassNode cn = new ClassNode(); + cr.accept(new CheckClassAdapter(cn), true); + + List methods = cn.methods; + for (int i = 0; i < methods.size(); ++i) { + MethodNode method = (MethodNode) methods.get(i); + if (method.instructions.size() > 0) { + Analyzer a = new Analyzer(new SimpleVerifier(Type.getType("L" + + cn.name + ";"), + Type.getType("L" + cn.superName + ";"), + (cn.access & Opcodes.ACC_INTERFACE) != 0)); + try { + a.analyze(cn.name, method); + if (!dump) { + continue; + } + } catch (Exception e) { + e.printStackTrace(); + } + Frame[] frames = a.getFrames(); + + TraceMethodVisitor mv = new TraceMethodVisitor(); + + pw.println(method.name + method.desc); + for (int j = 0; j < method.instructions.size(); ++j) { + ((AbstractInsnNode) method.instructions.get(j)).accept(mv); + + StringBuffer s = new StringBuffer(); + Frame f = frames[j]; + if (f == null) { + s.append('?'); + } else { + for (int k = 0; k < f.getLocals(); ++k) { + s.append(getShortName(f.getLocal(k).toString())) + .append(' '); + } + s.append(" : "); + for (int k = 0; k < f.getStackSize(); ++k) { + s.append(getShortName(f.getStack(k).toString())) + .append(' '); + } + } + while (s.length() < method.maxStack + method.maxLocals + 1) + { + s.append(' '); + } + pw.print(Integer.toString(j + 100000).substring(1)); + pw.print(" " + s + " : " + mv.buf); // mv.text.get(j)); + } + for (int j = 0; j < method.tryCatchBlocks.size(); ++j) { + ((TryCatchBlockNode) method.tryCatchBlocks.get(j)).accept(mv); + pw.print(" " + mv.buf); + } + pw.println(); + } + } + } + + private static String getShortName(String name) { + int n = name.lastIndexOf('/'); + int k = name.length(); + if(name.charAt(k-1)==';') k--; + return n==-1 ? name : name.substring(n+1, k); + } + + /** + * Constructs a new {@link CheckClassAdapter}. + * + * @param cv the class visitor to which this adapter must delegate calls. + */ + public CheckClassAdapter(final ClassVisitor cv) { + super(cv); + } + + // ------------------------------------------------------------------------ + // Implementation of the ClassVisitor interface + // ------------------------------------------------------------------------ + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + if (start) { + throw new IllegalStateException("visit must be called only once"); + } else { + start = true; + } + checkState(); + checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + + Opcodes.ACC_SUPER + Opcodes.ACC_INTERFACE + + Opcodes.ACC_ABSTRACT + Opcodes.ACC_SYNTHETIC + + Opcodes.ACC_ANNOTATION + Opcodes.ACC_ENUM + + Opcodes.ACC_DEPRECATED); + CheckMethodAdapter.checkInternalName(name, "class name"); + if ("java/lang/Object".equals(name)) { + if (superName != null) { + throw new IllegalArgumentException("The super class name of the Object class must be 'null'"); + } + } else { + CheckMethodAdapter.checkInternalName(superName, "super class name"); + } + if (signature != null) { + // TODO + } + if ((access & Opcodes.ACC_INTERFACE) != 0) { + if (!"java/lang/Object".equals(superName)) { + throw new IllegalArgumentException("The super class name of interfaces must be 'java/lang/Object'"); + } + } + if (interfaces != null) { + for (int i = 0; i < interfaces.length; ++i) { + CheckMethodAdapter.checkInternalName(interfaces[i], + "interface name at index " + i); + } + } + cv.visit(version, access, name, signature, superName, interfaces); + } + + public void visitSource(final String file, final String debug) { + checkState(); + if (source) { + throw new IllegalStateException("visitSource can be called only once."); + } + source = true; + cv.visitSource(file, debug); + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + checkState(); + if (outer) { + throw new IllegalStateException("visitSource can be called only once."); + } + outer = true; + if (owner == null) { + throw new IllegalArgumentException("Illegal outer class owner"); + } + if (desc != null) { + CheckMethodAdapter.checkMethodDesc(desc); + } + cv.visitOuterClass(owner, name, desc); + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + checkState(); + CheckMethodAdapter.checkInternalName(name, "class name"); + if (outerName != null) { + CheckMethodAdapter.checkInternalName(outerName, "outer class name"); + } + if (innerName != null) { + CheckMethodAdapter.checkIdentifier(innerName, "inner class name"); + } + checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE + + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC + + Opcodes.ACC_FINAL + Opcodes.ACC_INTERFACE + + Opcodes.ACC_ABSTRACT + Opcodes.ACC_SYNTHETIC + + Opcodes.ACC_ANNOTATION + Opcodes.ACC_ENUM); + cv.visitInnerClass(name, outerName, innerName, access); + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + checkState(); + checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE + + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC + + Opcodes.ACC_FINAL + Opcodes.ACC_VOLATILE + + Opcodes.ACC_TRANSIENT + Opcodes.ACC_SYNTHETIC + + Opcodes.ACC_ENUM + Opcodes.ACC_DEPRECATED); + CheckMethodAdapter.checkIdentifier(name, "field name"); + CheckMethodAdapter.checkDesc(desc, false); + if (signature != null) { + // TODO + } + if (value != null) { + CheckMethodAdapter.checkConstant(value); + } + FieldVisitor av = cv.visitField(access, name, desc, signature, value); + return new CheckFieldAdapter(av); + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + checkState(); + checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE + + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC + + Opcodes.ACC_FINAL + Opcodes.ACC_SYNCHRONIZED + + Opcodes.ACC_BRIDGE + Opcodes.ACC_VARARGS + Opcodes.ACC_NATIVE + + Opcodes.ACC_ABSTRACT + Opcodes.ACC_STRICT + + Opcodes.ACC_SYNTHETIC + Opcodes.ACC_DEPRECATED); + CheckMethodAdapter.checkMethodIdentifier(name, "method name"); + CheckMethodAdapter.checkMethodDesc(desc); + if (signature != null) { + // TODO + } + if (exceptions != null) { + for (int i = 0; i < exceptions.length; ++i) { + CheckMethodAdapter.checkInternalName(exceptions[i], + "exception name at index " + i); + } + } + return new CheckMethodAdapter(cv.visitMethod(access, + name, + desc, + signature, + exceptions)); + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + checkState(); + CheckMethodAdapter.checkDesc(desc, false); + return new CheckAnnotationAdapter(cv.visitAnnotation(desc, visible)); + } + + public void visitAttribute(final Attribute attr) { + checkState(); + if (attr == null) { + throw new IllegalArgumentException("Invalid attribute (must not be null)"); + } + cv.visitAttribute(attr); + } + + public void visitEnd() { + checkState(); + end = true; + cv.visitEnd(); + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + /** + * Checks that the visit method has been called and that visitEnd has not + * been called. + */ + private void checkState() { + if (!start) { + throw new IllegalStateException("Cannot visit member before visit has been called."); + } + if (end) { + throw new IllegalStateException("Cannot visit member after visitEnd has been called."); + } + } + + /** + * Checks that the given access flags do not contain invalid flags. This + * method also checks that mutually incompatible flags are not set + * simultaneously. + * + * @param access the access flags to be checked + * @param possibleAccess the valid access flags. + */ + static void checkAccess(final int access, final int possibleAccess) { + if ((access & ~possibleAccess) != 0) { + throw new IllegalArgumentException("Invalid access flags: " + + access); + } + int pub = ((access & Opcodes.ACC_PUBLIC) != 0 ? 1 : 0); + int pri = ((access & Opcodes.ACC_PRIVATE) != 0 ? 1 : 0); + int pro = ((access & Opcodes.ACC_PROTECTED) != 0 ? 1 : 0); + if (pub + pri + pro > 1) { + throw new IllegalArgumentException("public private and protected are mutually exclusive: " + + access); + } + int fin = ((access & Opcodes.ACC_FINAL) != 0 ? 1 : 0); + int abs = ((access & Opcodes.ACC_ABSTRACT) != 0 ? 1 : 0); + if (fin + abs > 1) { + throw new IllegalArgumentException("final and abstract are mutually exclusive: " + + access); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckFieldAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckFieldAdapter.java new file mode 100644 index 00000000000..3e7c113b80a --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckFieldAdapter.java @@ -0,0 +1,75 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.FieldVisitor; + +/** + * A {@link FieldVisitor} that checks that its methods are properly used. + */ +public class CheckFieldAdapter implements FieldVisitor { + + private FieldVisitor fv; + + private boolean end; + + public CheckFieldAdapter(final FieldVisitor fv) { + this.fv = fv; + } + + public AnnotationVisitor visitAnnotation(final String desc, boolean visible) + { + checkEnd(); + CheckMethodAdapter.checkDesc(desc, false); + return new CheckAnnotationAdapter(fv.visitAnnotation(desc, visible)); + } + + public void visitAttribute(final Attribute attr) { + checkEnd(); + if (attr == null) { + throw new IllegalArgumentException("Invalid attribute (must not be null)"); + } + fv.visitAttribute(attr); + } + + public void visitEnd() { + checkEnd(); + end = true; + fv.visitEnd(); + } + + private void checkEnd() { + if (end) { + throw new IllegalStateException("Cannot call a visit method after visitEnd has been called"); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java new file mode 100644 index 00000000000..1cd77c676ad --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java @@ -0,0 +1,942 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodAdapter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.Type; + +import java.util.HashMap; + +/** + * A {@link MethodAdapter} that checks that its methods are properly used. More + * precisely this code adapter checks each instruction individually (i.e., each + * visit method checks some preconditions based only on its arguments - + * such as the fact that the given opcode is correct for a given visit method), + * but does not check the sequence of instructions. For example, + * in a method whose signature is void m (), the invalid instruction + * IRETURN, or the invalid sequence IADD L2I will not be detected by + * this code adapter. + * + * @author Eric Bruneton + */ +public class CheckMethodAdapter extends MethodAdapter { + + /** + * true if the visitCode method has been called. + */ + private boolean startCode; + + /** + * true if the visitMaxs method has been called. + */ + private boolean endCode; + + /** + * true if the visitEnd method has been called. + */ + private boolean endMethod; + + /** + * The already visited labels. This map associate Integer values to Label + * keys. + */ + private HashMap labels; + + /** + * Code of the visit method to be used for each opcode. + */ + private final static int[] TYPE; + + static { + String s = "BBBBBBBBBBBBBBBBCCIAADDDDDAAAAAAAAAAAAAAAAAAAABBBBBBBBDD" + + "DDDAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" + + "BBBBBBBBBBBBBBBBBBBJBBBBBBBBBBBBBBBBBBBBHHHHHHHHHHHHHHHHD" + + "KLBBBBBBFFFFGGGGAECEBBEEBBAMHHAA"; + TYPE = new int[s.length()]; + for (int i = 0; i < TYPE.length; ++i) { + TYPE[i] = (s.charAt(i) - 'A' - 1); + } + } + + // code to generate the above string + // public static void main (String[] args) { + // int[] TYPE = new int[] { + // 0, //NOP + // 0, //ACONST_NULL + // 0, //ICONST_M1 + // 0, //ICONST_0 + // 0, //ICONST_1 + // 0, //ICONST_2 + // 0, //ICONST_3 + // 0, //ICONST_4 + // 0, //ICONST_5 + // 0, //LCONST_0 + // 0, //LCONST_1 + // 0, //FCONST_0 + // 0, //FCONST_1 + // 0, //FCONST_2 + // 0, //DCONST_0 + // 0, //DCONST_1 + // 1, //BIPUSH + // 1, //SIPUSH + // 7, //LDC + // -1, //LDC_W + // -1, //LDC2_W + // 2, //ILOAD + // 2, //LLOAD + // 2, //FLOAD + // 2, //DLOAD + // 2, //ALOAD + // -1, //ILOAD_0 + // -1, //ILOAD_1 + // -1, //ILOAD_2 + // -1, //ILOAD_3 + // -1, //LLOAD_0 + // -1, //LLOAD_1 + // -1, //LLOAD_2 + // -1, //LLOAD_3 + // -1, //FLOAD_0 + // -1, //FLOAD_1 + // -1, //FLOAD_2 + // -1, //FLOAD_3 + // -1, //DLOAD_0 + // -1, //DLOAD_1 + // -1, //DLOAD_2 + // -1, //DLOAD_3 + // -1, //ALOAD_0 + // -1, //ALOAD_1 + // -1, //ALOAD_2 + // -1, //ALOAD_3 + // 0, //IALOAD + // 0, //LALOAD + // 0, //FALOAD + // 0, //DALOAD + // 0, //AALOAD + // 0, //BALOAD + // 0, //CALOAD + // 0, //SALOAD + // 2, //ISTORE + // 2, //LSTORE + // 2, //FSTORE + // 2, //DSTORE + // 2, //ASTORE + // -1, //ISTORE_0 + // -1, //ISTORE_1 + // -1, //ISTORE_2 + // -1, //ISTORE_3 + // -1, //LSTORE_0 + // -1, //LSTORE_1 + // -1, //LSTORE_2 + // -1, //LSTORE_3 + // -1, //FSTORE_0 + // -1, //FSTORE_1 + // -1, //FSTORE_2 + // -1, //FSTORE_3 + // -1, //DSTORE_0 + // -1, //DSTORE_1 + // -1, //DSTORE_2 + // -1, //DSTORE_3 + // -1, //ASTORE_0 + // -1, //ASTORE_1 + // -1, //ASTORE_2 + // -1, //ASTORE_3 + // 0, //IASTORE + // 0, //LASTORE + // 0, //FASTORE + // 0, //DASTORE + // 0, //AASTORE + // 0, //BASTORE + // 0, //CASTORE + // 0, //SASTORE + // 0, //POP + // 0, //POP2 + // 0, //DUP + // 0, //DUP_X1 + // 0, //DUP_X2 + // 0, //DUP2 + // 0, //DUP2_X1 + // 0, //DUP2_X2 + // 0, //SWAP + // 0, //IADD + // 0, //LADD + // 0, //FADD + // 0, //DADD + // 0, //ISUB + // 0, //LSUB + // 0, //FSUB + // 0, //DSUB + // 0, //IMUL + // 0, //LMUL + // 0, //FMUL + // 0, //DMUL + // 0, //IDIV + // 0, //LDIV + // 0, //FDIV + // 0, //DDIV + // 0, //IREM + // 0, //LREM + // 0, //FREM + // 0, //DREM + // 0, //INEG + // 0, //LNEG + // 0, //FNEG + // 0, //DNEG + // 0, //ISHL + // 0, //LSHL + // 0, //ISHR + // 0, //LSHR + // 0, //IUSHR + // 0, //LUSHR + // 0, //IAND + // 0, //LAND + // 0, //IOR + // 0, //LOR + // 0, //IXOR + // 0, //LXOR + // 8, //IINC + // 0, //I2L + // 0, //I2F + // 0, //I2D + // 0, //L2I + // 0, //L2F + // 0, //L2D + // 0, //F2I + // 0, //F2L + // 0, //F2D + // 0, //D2I + // 0, //D2L + // 0, //D2F + // 0, //I2B + // 0, //I2C + // 0, //I2S + // 0, //LCMP + // 0, //FCMPL + // 0, //FCMPG + // 0, //DCMPL + // 0, //DCMPG + // 6, //IFEQ + // 6, //IFNE + // 6, //IFLT + // 6, //IFGE + // 6, //IFGT + // 6, //IFLE + // 6, //IF_ICMPEQ + // 6, //IF_ICMPNE + // 6, //IF_ICMPLT + // 6, //IF_ICMPGE + // 6, //IF_ICMPGT + // 6, //IF_ICMPLE + // 6, //IF_ACMPEQ + // 6, //IF_ACMPNE + // 6, //GOTO + // 6, //JSR + // 2, //RET + // 9, //TABLESWITCH + // 10, //LOOKUPSWITCH + // 0, //IRETURN + // 0, //LRETURN + // 0, //FRETURN + // 0, //DRETURN + // 0, //ARETURN + // 0, //RETURN + // 4, //GETSTATIC + // 4, //PUTSTATIC + // 4, //GETFIELD + // 4, //PUTFIELD + // 5, //INVOKEVIRTUAL + // 5, //INVOKESPECIAL + // 5, //INVOKESTATIC + // 5, //INVOKEINTERFACE + // -1, //UNUSED + // 3, //NEW + // 1, //NEWARRAY + // 3, //ANEWARRAY + // 0, //ARRAYLENGTH + // 0, //ATHROW + // 3, //CHECKCAST + // 3, //INSTANCEOF + // 0, //MONITORENTER + // 0, //MONITOREXIT + // -1, //WIDE + // 11, //MULTIANEWARRAY + // 6, //IFNULL + // 6, //IFNONNULL + // -1, //GOTO_W + // -1 //JSR_W + // }; + // for (int i = 0; i < TYPE.length; ++i) { + // System.out.print((char)(TYPE[i] + 1 + 'A')); + // } + // System.out.println(); + // } + + /** + * Constructs a new {@link CheckMethodAdapter} object. + * + * @param cv the code visitor to which this adapter must delegate calls. + */ + public CheckMethodAdapter(final MethodVisitor cv) { + super(cv); + this.labels = new HashMap(); + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + checkEndMethod(); + checkDesc(desc, false); + return new CheckAnnotationAdapter(mv.visitAnnotation(desc, visible)); + } + + public AnnotationVisitor visitAnnotationDefault() { + checkEndMethod(); + return new CheckAnnotationAdapter(mv.visitAnnotationDefault(), false); + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + checkEndMethod(); + checkDesc(desc, false); + return new CheckAnnotationAdapter(mv.visitParameterAnnotation(parameter, + desc, + visible)); + } + + public void visitAttribute(final Attribute attr) { + checkEndMethod(); + if (attr == null) { + throw new IllegalArgumentException("Invalid attribute (must not be null)"); + } + mv.visitAttribute(attr); + } + + public void visitCode() { + startCode = true; + mv.visitCode(); + } + + public void visitInsn(final int opcode) { + checkStartCode(); + checkEndCode(); + checkOpcode(opcode, 0); + mv.visitInsn(opcode); + } + + public void visitIntInsn(final int opcode, final int operand) { + checkStartCode(); + checkEndCode(); + checkOpcode(opcode, 1); + switch (opcode) { + case Opcodes.BIPUSH: + checkSignedByte(operand, "Invalid operand"); + break; + case Opcodes.SIPUSH: + checkSignedShort(operand, "Invalid operand"); + break; + // case Constants.NEWARRAY: + default: + if (operand < Opcodes.T_BOOLEAN || operand > Opcodes.T_LONG) { + throw new IllegalArgumentException("Invalid operand (must be an array type code T_...): " + + operand); + } + } + mv.visitIntInsn(opcode, operand); + } + + public void visitVarInsn(final int opcode, final int var) { + checkStartCode(); + checkEndCode(); + checkOpcode(opcode, 2); + checkUnsignedShort(var, "Invalid variable index"); + mv.visitVarInsn(opcode, var); + } + + public void visitTypeInsn(final int opcode, final String desc) { + checkStartCode(); + checkEndCode(); + checkOpcode(opcode, 3); + if (desc != null && desc.length() > 0 && desc.charAt(0) == '[') { + checkDesc(desc, false); + } else { + checkInternalName(desc, "type"); + } + if (opcode == Opcodes.NEW && desc.charAt(0) == '[') { + throw new IllegalArgumentException("NEW cannot be used to create arrays: " + + desc); + } + mv.visitTypeInsn(opcode, desc); + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + checkStartCode(); + checkEndCode(); + checkOpcode(opcode, 4); + checkInternalName(owner, "owner"); + checkIdentifier(name, "name"); + checkDesc(desc, false); + mv.visitFieldInsn(opcode, owner, name, desc); + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + checkStartCode(); + checkEndCode(); + checkOpcode(opcode, 5); + checkMethodIdentifier(name, "name"); + if (!name.equals("clone")) { + // In JDK1.5, clone method can be called on array class descriptors + checkInternalName(owner, "owner"); + } + checkMethodDesc(desc); + mv.visitMethodInsn(opcode, owner, name, desc); + } + + public void visitJumpInsn(final int opcode, final Label label) { + checkStartCode(); + checkEndCode(); + checkOpcode(opcode, 6); + checkLabel(label, false, "label"); + mv.visitJumpInsn(opcode, label); + } + + public void visitLabel(final Label label) { + checkStartCode(); + checkEndCode(); + checkLabel(label, false, "label"); + if (labels.get(label) != null) { + throw new IllegalArgumentException("Already visited label"); + } else { + labels.put(label, new Integer(labels.size())); + } + mv.visitLabel(label); + } + + public void visitLdcInsn(final Object cst) { + checkStartCode(); + checkEndCode(); + if (!(cst instanceof Type)) { + checkConstant(cst); + } + mv.visitLdcInsn(cst); + } + + public void visitIincInsn(final int var, final int increment) { + checkStartCode(); + checkEndCode(); + checkUnsignedShort(var, "Invalid variable index"); + checkSignedShort(increment, "Invalid increment"); + mv.visitIincInsn(var, increment); + } + + public void visitTableSwitchInsn( + final int min, + final int max, + final Label dflt, + final Label labels[]) + { + checkStartCode(); + checkEndCode(); + if (max < min) { + throw new IllegalArgumentException("Max = " + max + + " must be greater than or equal to min = " + min); + } + checkLabel(dflt, false, "default label"); + if (labels == null || labels.length != max - min + 1) { + throw new IllegalArgumentException("There must be max - min + 1 labels"); + } + for (int i = 0; i < labels.length; ++i) { + checkLabel(labels[i], false, "label at index " + i); + } + mv.visitTableSwitchInsn(min, max, dflt, labels); + } + + public void visitLookupSwitchInsn( + final Label dflt, + final int keys[], + final Label labels[]) + { + checkEndCode(); + checkStartCode(); + checkLabel(dflt, false, "default label"); + if (keys == null || labels == null || keys.length != labels.length) { + throw new IllegalArgumentException("There must be the same number of keys and labels"); + } + for (int i = 0; i < labels.length; ++i) { + checkLabel(labels[i], false, "label at index " + i); + } + mv.visitLookupSwitchInsn(dflt, keys, labels); + } + + public void visitMultiANewArrayInsn(final String desc, final int dims) { + checkStartCode(); + checkEndCode(); + checkDesc(desc, false); + if (desc.charAt(0) != '[') { + throw new IllegalArgumentException("Invalid descriptor (must be an array type descriptor): " + + desc); + } + if (dims < 1) { + throw new IllegalArgumentException("Invalid dimensions (must be greater than 0): " + + dims); + } + if (dims > desc.lastIndexOf('[') + 1) { + throw new IllegalArgumentException("Invalid dimensions (must not be greater than dims(desc)): " + + dims); + } + mv.visitMultiANewArrayInsn(desc, dims); + } + + public void visitTryCatchBlock( + final Label start, + final Label end, + final Label handler, + final String type) + { + checkStartCode(); + checkEndCode(); + if (type != null) { + checkInternalName(type, "type"); + } + mv.visitTryCatchBlock(start, end, handler, type); + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + checkStartCode(); + checkEndCode(); + checkIdentifier(name, "name"); + checkDesc(desc, false); + checkLabel(start, true, "start label"); + checkLabel(end, true, "end label"); + checkUnsignedShort(index, "Invalid variable index"); + int s = ((Integer) labels.get(start)).intValue(); + int e = ((Integer) labels.get(end)).intValue(); + if (e < s) { + throw new IllegalArgumentException("Invalid start and end labels (end must be greater than start)"); + } + mv.visitLocalVariable(name, desc, signature, start, end, index); + } + + public void visitLineNumber(final int line, final Label start) { + checkStartCode(); + checkEndCode(); + checkUnsignedShort(line, "Invalid line number"); + checkLabel(start, true, "start label"); + mv.visitLineNumber(line, start); + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + checkStartCode(); + checkEndCode(); + endCode = true; + checkUnsignedShort(maxStack, "Invalid max stack"); + checkUnsignedShort(maxLocals, "Invalid max locals"); + mv.visitMaxs(maxStack, maxLocals); + } + + public void visitEnd() { + checkEndMethod(); + endMethod = true; + mv.visitEnd(); + } + + // ------------------------------------------------------------------------- + + /** + * Checks that the visitCode method has been called. + */ + void checkStartCode() { + if (!startCode) { + throw new IllegalStateException("Cannot visit instructions before visitCode has been called."); + } + } + + /** + * Checks that the visitMaxs method has not been called. + */ + void checkEndCode() { + if (endCode) { + throw new IllegalStateException("Cannot visit instructions after visitMaxs has been called."); + } + } + + /** + * Checks that the visitEnd method has not been called. + */ + void checkEndMethod() { + if (endMethod) { + throw new IllegalStateException("Cannot visit elements after visitEnd has been called."); + } + } + + /** + * Checks that the type of the given opcode is equal to the given type. + * + * @param opcode the opcode to be checked. + * @param type the expected opcode type. + */ + static void checkOpcode(final int opcode, final int type) { + if (opcode < 0 || opcode > 199 || TYPE[opcode] != type) { + throw new IllegalArgumentException("Invalid opcode: " + opcode); + } + } + + /** + * Checks that the given value is a signed byte. + * + * @param value the value to be checked. + * @param msg an message to be used in case of error. + */ + static void checkSignedByte(final int value, final String msg) { + if (value < Byte.MIN_VALUE || value > Byte.MAX_VALUE) { + throw new IllegalArgumentException(msg + + " (must be a signed byte): " + value); + } + } + + /** + * Checks that the given value is a signed short. + * + * @param value the value to be checked. + * @param msg an message to be used in case of error. + */ + static void checkSignedShort(final int value, final String msg) { + if (value < Short.MIN_VALUE || value > Short.MAX_VALUE) { + throw new IllegalArgumentException(msg + + " (must be a signed short): " + value); + } + } + + /** + * Checks that the given value is an unsigned short. + * + * @param value the value to be checked. + * @param msg an message to be used in case of error. + */ + static void checkUnsignedShort(final int value, final String msg) { + if (value < 0 || value > 65535) { + throw new IllegalArgumentException(msg + + " (must be an unsigned short): " + value); + } + } + + /** + * Checks that the given value is an {@link Integer}, a{@link Float}, a + * {@link Long}, a {@link Double} or a {@link String}. + * + * @param cst the value to be checked. + */ + static void checkConstant(final Object cst) { + if (!(cst instanceof Integer) && !(cst instanceof Float) + && !(cst instanceof Long) && !(cst instanceof Double) + && !(cst instanceof String)) + { + throw new IllegalArgumentException("Invalid constant: " + cst); + } + } + + /** + * Checks that the given string is a valid Java identifier. + * + * @param name the string to be checked. + * @param msg a message to be used in case of error. + */ + static void checkIdentifier(final String name, final String msg) { + checkIdentifier(name, 0, -1, msg); + } + + /** + * Checks that the given substring is a valid Java identifier. + * + * @param name the string to be checked. + * @param start index of the first character of the identifier (inclusive). + * @param end index of the last character of the identifier (exclusive). -1 + * is equivalent to name.length() if name is not + * null. + * @param msg a message to be used in case of error. + */ + static void checkIdentifier( + final String name, + final int start, + final int end, + final String msg) + { + if (name == null || (end == -1 ? name.length() <= start : end <= start)) + { + throw new IllegalArgumentException("Invalid " + msg + + " (must not be null or empty)"); + } + if (!Character.isJavaIdentifierStart(name.charAt(start))) { + throw new IllegalArgumentException("Invalid " + msg + + " (must be a valid Java identifier): " + name); + } + int max = (end == -1 ? name.length() : end); + for (int i = start + 1; i < max; ++i) { + if (!Character.isJavaIdentifierPart(name.charAt(i))) { + throw new IllegalArgumentException("Invalid " + msg + + " (must be a valid Java identifier): " + name); + } + } + } + + /** + * Checks that the given string is a valid Java identifier or is equal to + * '<init>' or '<clinit>'. + * + * @param name the string to be checked. + * @param msg a message to be used in case of error. + */ + static void checkMethodIdentifier(final String name, final String msg) { + if (name == null || name.length() == 0) { + throw new IllegalArgumentException("Invalid " + msg + + " (must not be null or empty)"); + } + if (name.equals("") || name.equals("")) { + return; + } + if (!Character.isJavaIdentifierStart(name.charAt(0))) { + throw new IllegalArgumentException("Invalid " + + msg + + " (must be a '', '' or a valid Java identifier): " + + name); + } + for (int i = 1; i < name.length(); ++i) { + if (!Character.isJavaIdentifierPart(name.charAt(i))) { + throw new IllegalArgumentException("Invalid " + + msg + + " (must be '' or '' or a valid Java identifier): " + + name); + } + } + } + + /** + * Checks that the given string is a valid internal class name. + * + * @param name the string to be checked. + * @param msg a message to be used in case of error. + */ + static void checkInternalName(final String name, final String msg) { + checkInternalName(name, 0, -1, msg); + } + + /** + * Checks that the given substring is a valid internal class name. + * + * @param name the string to be checked. + * @param start index of the first character of the identifier (inclusive). + * @param end index of the last character of the identifier (exclusive). -1 + * is equivalent to name.length() if name is not + * null. + * @param msg a message to be used in case of error. + */ + static void checkInternalName( + final String name, + final int start, + final int end, + final String msg) + { + if (name == null || name.length() == 0) { + throw new IllegalArgumentException("Invalid " + msg + + " (must not be null or empty)"); + } + int max = (end == -1 ? name.length() : end); + try { + int begin = start; + int slash; + do { + slash = name.indexOf('/', begin + 1); + if (slash == -1 || slash > max) { + slash = max; + } + checkIdentifier(name, begin, slash, null); + begin = slash + 1; + } while (slash != max); + } catch (IllegalArgumentException _) { + throw new IllegalArgumentException("Invalid " + + msg + + " (must be a fully qualified class name in internal form): " + + name); + } + } + + /** + * Checks that the given string is a valid type descriptor. + * + * @param desc the string to be checked. + * @param canBeVoid true if V can be considered valid. + */ + static void checkDesc(final String desc, final boolean canBeVoid) { + int end = checkDesc(desc, 0, canBeVoid); + if (end != desc.length()) { + throw new IllegalArgumentException("Invalid descriptor: " + desc); + } + } + + /** + * Checks that a the given substring is a valid type descriptor. + * + * @param desc the string to be checked. + * @param start index of the first character of the identifier (inclusive). + * @param canBeVoid true if V can be considered valid. + * @return the index of the last character of the type decriptor, plus one. + */ + static int checkDesc( + final String desc, + final int start, + final boolean canBeVoid) + { + if (desc == null || start >= desc.length()) { + throw new IllegalArgumentException("Invalid type descriptor (must not be null or empty)"); + } + int index; + switch (desc.charAt(start)) { + case 'V': + if (canBeVoid) { + return start + 1; + } else { + throw new IllegalArgumentException("Invalid descriptor: " + + desc); + } + case 'Z': + case 'C': + case 'B': + case 'S': + case 'I': + case 'F': + case 'J': + case 'D': + return start + 1; + case '[': + index = start + 1; + while (index < desc.length() && desc.charAt(index) == '[') { + ++index; + } + if (index < desc.length()) { + return checkDesc(desc, index, false); + } else { + throw new IllegalArgumentException("Invalid descriptor: " + + desc); + } + case 'L': + index = desc.indexOf(';', start); + if (index == -1 || index - start < 2) { + throw new IllegalArgumentException("Invalid descriptor: " + + desc); + } + try { + checkInternalName(desc, start + 1, index, null); + } catch (IllegalArgumentException _) { + throw new IllegalArgumentException("Invalid descriptor: " + + desc); + } + return index + 1; + default: + throw new IllegalArgumentException("Invalid descriptor: " + + desc); + } + } + + /** + * Checks that the given string is a valid method descriptor. + * + * @param desc the string to be checked. + */ + static void checkMethodDesc(final String desc) { + if (desc == null || desc.length() == 0) { + throw new IllegalArgumentException("Invalid method descriptor (must not be null or empty)"); + } + if (desc.charAt(0) != '(' || desc.length() < 3) { + throw new IllegalArgumentException("Invalid descriptor: " + desc); + } + int start = 1; + if (desc.charAt(start) != ')') { + do { + if (desc.charAt(start) == 'V') { + throw new IllegalArgumentException("Invalid descriptor: " + + desc); + } + start = checkDesc(desc, start, false); + } while (start < desc.length() && desc.charAt(start) != ')'); + } + start = checkDesc(desc, start + 1, true); + if (start != desc.length()) { + throw new IllegalArgumentException("Invalid descriptor: " + desc); + } + } + + /** + * Checks that the given label is not null. This method can also check that + * the label has been visited. + * + * @param label the label to be checked. + * @param checkVisited true to check that the label has been + * visited. + * @param msg a message to be used in case of error. + */ + void checkLabel( + final Label label, + final boolean checkVisited, + final String msg) + { + if (label == null) { + throw new IllegalArgumentException("Invalid " + msg + + " (must not be null)"); + } + if (checkVisited && labels.get(label) == null) { + throw new IllegalArgumentException("Invalid " + msg + + " (must be visited first)"); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java new file mode 100644 index 00000000000..4250c815c9a --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java @@ -0,0 +1,180 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.util.attrs.Traceable; + +/** + * An abstract trace visitor. + * + * @author Eric Bruneton + */ +public abstract class TraceAbstractVisitor extends AbstractVisitor { + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for internal + * type names in bytecode notation. + */ + public final static int INTERNAL_NAME = 0; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for field + * descriptors, formatted in bytecode notation + */ + public final static int FIELD_DESCRIPTOR = 1; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for field + * signatures, formatted in bytecode notation + */ + public final static int FIELD_SIGNATURE = 2; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for method + * descriptors, formatted in bytecode notation + */ + public final static int METHOD_DESCRIPTOR = 3; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for method + * signatures, formatted in bytecode notation + */ + public final static int METHOD_SIGNATURE = 4; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for class + * signatures, formatted in bytecode notation + */ + public final static int CLASS_SIGNATURE = 5; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for field or + * method return value signatures, formatted in default Java notation + * (non-bytecode) + */ + public final static int TYPE_DECLARATION = 6; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for class + * signatures, formatted in default Java notation (non-bytecode) + */ + public final static int CLASS_DECLARATION = 7; + + /** + * Constant used in {@link #appendDescriptor appendDescriptor} for method + * parameter signatures, formatted in default Java notation (non-bytecode) + */ + public final static int PARAMETERS_DECLARATION = 8; + + /** + * Tab for class members. + */ + protected String tab = " "; + + /** + * Prints a disassembled view of the given annotation. + * + * @param desc the class descriptor of the annotation class. + * @param visible true if the annotation is visible at runtime. + * @return a visitor to visit the annotation values. + */ + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + buf.setLength(0); + buf.append(tab).append('@'); + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append('('); + text.add(buf.toString()); + TraceAnnotationVisitor tav = createTraceAnnotationVisitor(); + text.add(tav.getText()); + text.add(visible ? ")\n" : ") // invisible\n"); + return tav; + } + + /** + * Prints a disassembled view of the given attribute. + * + * @param attr an attribute. + */ + public void visitAttribute(final Attribute attr) { + buf.setLength(0); + buf.append(tab).append("ATTRIBUTE "); + appendDescriptor(-1, attr.type); + + if (attr instanceof Traceable) { + ((Traceable) attr).trace(buf, null); + } else { + buf.append(" : ").append(attr.toString()).append("\n"); + } + + text.add(buf.toString()); + } + + /** + * Does nothing. + */ + public void visitEnd() { + // does nothing + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + protected TraceAnnotationVisitor createTraceAnnotationVisitor() { + return new TraceAnnotationVisitor(); + } + + /** + * Appends an internal name, a type descriptor or a type signature to + * {@link #buf buf}. + * + * @param type indicates if desc is an internal name, a field descriptor, a + * method descriptor, a class signature, ... + * @param desc an internal name, type descriptor, or type signature. May be + * null. + */ + protected void appendDescriptor(final int type, final String desc) { + if (type == CLASS_SIGNATURE || type == FIELD_SIGNATURE + || type == METHOD_SIGNATURE) + { + if (desc != null) { + buf.append("// signature ").append(desc).append('\n'); + } + } else { + buf.append(desc); + } + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java new file mode 100644 index 00000000000..827225b1ca3 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java @@ -0,0 +1,272 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Type; + +/** + * An {@link AnnotationVisitor} that prints a disassembled view of the + * annotations it visits. + * + * @author Eric Bruneton + */ +public class TraceAnnotationVisitor extends TraceAbstractVisitor implements + AnnotationVisitor +{ + + /** + * The {@link AnnotationVisitor} to which this visitor delegates calls. May + * be null. + */ + protected AnnotationVisitor av; + + private int valueNumber = 0; + + /** + * Constructs a new {@link TraceAnnotationVisitor}. + */ + public TraceAnnotationVisitor() { + // ignore + } + + // ------------------------------------------------------------------------ + // Implementation of the AnnotationVisitor interface + // ------------------------------------------------------------------------ + + public void visit(final String name, final Object value) { + buf.setLength(0); + appendComa(valueNumber++); + + if (name != null) { + buf.append(name).append('='); + } + + if (value instanceof String) { + visitString((String) value); + } else if (value instanceof Type) { + visitType((Type) value); + } else if (value instanceof Byte) { + visitByte(((Byte) value).byteValue()); + } else if (value instanceof Boolean) { + visitBoolean(((Boolean) value).booleanValue()); + } else if (value instanceof Short) { + visitShort(((Short) value).shortValue()); + } else if (value instanceof Character) { + visitChar(((Character) value).charValue()); + } else if (value instanceof Integer) { + visitInt(((Integer) value).intValue()); + } else if (value instanceof Float) { + visitFloat(((Float) value).floatValue()); + } else if (value instanceof Long) { + visitLong(((Long) value).longValue()); + } else if (value instanceof Double) { + visitDouble(((Double) value).doubleValue()); + } else if (value.getClass().isArray()) { + buf.append('{'); + if (value instanceof byte[]) { + byte[] v = (byte[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitByte(v[i]); + } + } else if (value instanceof boolean[]) { + boolean[] v = (boolean[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitBoolean(v[i]); + } + } else if (value instanceof short[]) { + short[] v = (short[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitShort(v[i]); + } + } else if (value instanceof char[]) { + char[] v = (char[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitChar(v[i]); + } + } else if (value instanceof int[]) { + int[] v = (int[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitInt(v[i]); + } + } else if (value instanceof long[]) { + long[] v = (long[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitLong(v[i]); + } + } else if (value instanceof float[]) { + float[] v = (float[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitFloat(v[i]); + } + } else if (value instanceof double[]) { + double[] v = (double[]) value; + for (int i = 0; i < v.length; i++) { + appendComa(i); + visitDouble(v[i]); + } + } + buf.append('}'); + } else { + buf.append(value); + } + + text.add(buf.toString()); + + if (av != null) { + av.visit(name, value); + } + } + + private void visitInt(int value) { + buf.append(value); + } + + private void visitLong(long value) { + buf.append(value).append('L'); + } + + private void visitFloat(float value) { + buf.append(value).append('F'); + } + + private void visitDouble(double value) { + buf.append(value).append('D'); + } + + private void visitChar(char value) { + buf.append("(char)").append((int) value); + } + + private void visitShort(short value) { + buf.append("(short)").append(value); + } + + private void visitByte(byte value) { + buf.append("(byte)").append(value); + } + + private void visitBoolean(boolean value) { + buf.append(value); + } + + private void visitString(String value) { + appendString(buf, value); + } + + private void visitType(Type value) { + buf.append(value.getClassName()).append(".class"); + } + + public void visitEnum( + final String name, + final String desc, + final String value) + { + buf.setLength(0); + appendComa(valueNumber++); + if (name != null) { + buf.append(name).append('='); + } + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append('.').append(value); + text.add(buf.toString()); + + if (av != null) { + av.visitEnum(name, desc, value); + } + } + + public AnnotationVisitor visitAnnotation( + final String name, + final String desc) + { + buf.setLength(0); + appendComa(valueNumber++); + if (name != null) { + buf.append(name).append('='); + } + buf.append('@'); + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append('('); + text.add(buf.toString()); + TraceAnnotationVisitor tav = createTraceAnnotationVisitor(); + text.add(tav.getText()); + text.add(")"); + if (av != null) { + tav.av = av.visitAnnotation(name, desc); + } + return tav; + } + + public AnnotationVisitor visitArray(final String name) { + buf.setLength(0); + appendComa(valueNumber++); + if (name != null) { + buf.append(name).append('='); + } + buf.append('{'); + text.add(buf.toString()); + TraceAnnotationVisitor tav = createTraceAnnotationVisitor(); + text.add(tav.getText()); + text.add("}"); + if (av != null) { + tav.av = av.visitArray(name); + } + return tav; + } + + public void visitEnd() { + if (av != null) { + av.visitEnd(); + } + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + protected TraceAnnotationVisitor createTraceAnnotationVisitor() { + return new TraceAnnotationVisitor(); + } + + private void appendComa(int i) { + if (i != 0) { + buf.append(", "); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java new file mode 100644 index 00000000000..9a727e50f38 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java @@ -0,0 +1,534 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import java.io.FileInputStream; +import java.io.PrintWriter; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.signature.SignatureReader; + +/** + * A {@link ClassVisitor} that prints a disassembled view of the classes it + * visits. This class visitor can be used alone (see the {@link #main main} + * method) to disassemble a class. It can also be used in the middle of class + * visitor chain to trace the class that is visited at a given point in this + * chain. This may be uselful for debugging purposes.

      The trace printed when + * visiting the Hello class is the following:

      + * + *
      + * // class version 49.0 (49)
      + * // access flags 33
      + * public class Hello {
      + *
      + *  // compiled from: Hello.java
      + *
      + *   // access flags 1
      + *   public <init> ()V
      + *     ALOAD 0
      + *     INVOKESPECIAL java/lang/Object <init> ()V
      + *     RETURN
      + *     MAXSTACK = 1
      + *     MAXLOCALS = 1
      + *
      + *   // access flags 9
      + *   public static main ([Ljava/lang/String;)V
      + *     GETSTATIC java/lang/System out Ljava/io/PrintStream;
      + *     LDC "hello"
      + *     INVOKEVIRTUAL java/io/PrintStream println (Ljava/lang/String;)V
      + *     RETURN
      + *     MAXSTACK = 2
      + *     MAXLOCALS = 1
      + * }
      + * 
      + * + *
      where Hello is defined by:

      + * + *
      + * public class Hello {
      + *
      + *     public static void main(String[] args) {
      + *         System.out.println("hello");
      + *     }
      + * }
      + * 
      + * + *
      + * + * @author Eric Bruneton + * @author Eugene Kuleshov + */ +public class TraceClassVisitor extends TraceAbstractVisitor implements + ClassVisitor +{ + + /** + * The {@link ClassVisitor} to which this visitor delegates calls. May be + * null. + */ + protected final ClassVisitor cv; + + /** + * The print writer to be used to print the class. + */ + protected final PrintWriter pw; + + /** + * Prints a disassembled view of the given class to the standard output.

      + * Usage: TraceClassVisitor [-debug] <fully qualified class name or class + * file name > + * + * @param args the command line arguments. + * + * @throws Exception if the class cannot be found, or if an IO exception + * occurs. + */ + public static void main(final String[] args) throws Exception { + int i = 0; + boolean skipDebug = true; + + boolean ok = true; + if (args.length < 1 || args.length > 2) { + ok = false; + } + if (ok && args[0].equals("-debug")) { + i = 1; + skipDebug = false; + if (args.length != 2) { + ok = false; + } + } + if (!ok) { + System.err.println("Prints a disassembled view of the given class."); + System.err.println("Usage: TraceClassVisitor [-debug] " + + ""); + return; + } + ClassReader cr; + if (args[i].endsWith(".class") || args[i].indexOf('\\') > -1 + || args[i].indexOf('/') > -1) + { + cr = new ClassReader(new FileInputStream(args[i])); + } else { + cr = new ClassReader(args[i]); + } + cr.accept(new TraceClassVisitor(new PrintWriter(System.out)), + getDefaultAttributes(), + skipDebug); + } + + /** + * Constructs a new {@link TraceClassVisitor}. + * + * @param pw the print writer to be used to print the class. + */ + public TraceClassVisitor(final PrintWriter pw) { + this(null, pw); + } + + /** + * Constructs a new {@link TraceClassVisitor}. + * + * @param cv the {@link ClassVisitor} to which this visitor delegates calls. + * May be null. + * @param pw the print writer to be used to print the class. + */ + public TraceClassVisitor(final ClassVisitor cv, final PrintWriter pw) { + this.cv = cv; + this.pw = pw; + } + + // ------------------------------------------------------------------------ + // Implementation of the ClassVisitor interface + // ------------------------------------------------------------------------ + + public void visit( + final int version, + final int access, + final String name, + final String signature, + final String superName, + final String[] interfaces) + { + int major = version & 0xFFFF; + int minor = version >>> 16; + buf.setLength(0); + buf.append("// class version ") + .append(major) + .append('.') + .append(minor) + .append(" (") + .append(version) + .append(")\n"); + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + buf.append("// DEPRECATED\n"); + } + buf.append("// access flags ").append(access).append('\n'); + + appendDescriptor(CLASS_SIGNATURE, signature); + if (signature != null) { + TraceSignatureVisitor sv = new TraceSignatureVisitor(access); + SignatureReader r = new SignatureReader(signature); + r.accept(sv); + buf.append("// declaration: ") + .append(name) + .append(sv.getDeclaration()) + .append('\n'); + } + + appendAccess(access & ~Opcodes.ACC_SUPER); + if ((access & Opcodes.ACC_ANNOTATION) != 0) { + buf.append("@interface "); + } else if ((access & Opcodes.ACC_INTERFACE) != 0) { + buf.append("interface "); + } else if ((access & Opcodes.ACC_ENUM) != 0) { + buf.append("enum "); + } else { + buf.append("class "); + } + appendDescriptor(INTERNAL_NAME, name); + + if (superName != null && !superName.equals("java/lang/Object")) { + buf.append(" extends "); + appendDescriptor(INTERNAL_NAME, superName); + buf.append(' '); + } + if (interfaces != null && interfaces.length > 0) { + buf.append(" implements "); + for (int i = 0; i < interfaces.length; ++i) { + appendDescriptor(INTERNAL_NAME, interfaces[i]); + buf.append(' '); + } + } + buf.append(" {\n\n"); + + text.add(buf.toString()); + + if (cv != null) { + cv.visit(version, access, name, signature, superName, interfaces); + } + } + + public void visitSource(final String file, final String debug) { + buf.setLength(0); + if (file != null) { + buf.append(tab) + .append("// compiled from: ") + .append(file) + .append('\n'); + } + if (debug != null) { + buf.append(tab) + .append("// debug info: ") + .append(debug) + .append('\n'); + } + if (buf.length() > 0) { + text.add(buf.toString()); + } + + if (cv != null) { + cv.visitSource(file, debug); + } + } + + public void visitOuterClass( + final String owner, + final String name, + final String desc) + { + buf.setLength(0); + buf.append(tab).append("OUTERCLASS "); + appendDescriptor(INTERNAL_NAME, owner); + // if enclosing name is null, so why should we show this info? + if (name != null) { + buf.append(' ').append(name).append(' '); + } else { + buf.append(' '); + } + appendDescriptor(METHOD_DESCRIPTOR, desc); + buf.append('\n'); + text.add(buf.toString()); + + if (cv != null) { + cv.visitOuterClass(owner, name, desc); + } + } + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + text.add("\n"); + AnnotationVisitor tav = super.visitAnnotation(desc, visible); + if (cv != null) { + ((TraceAnnotationVisitor) tav).av = cv.visitAnnotation(desc, + visible); + } + return tav; + } + + public void visitAttribute(final Attribute attr) { + text.add("\n"); + super.visitAttribute(attr); + + if (cv != null) { + cv.visitAttribute(attr); + } + } + + public void visitInnerClass( + final String name, + final String outerName, + final String innerName, + final int access) + { + buf.setLength(0); + buf.append(tab).append("// access flags ").append(access + & ~Opcodes.ACC_SUPER).append('\n'); + buf.append(tab); + appendAccess(access); + buf.append("INNERCLASS "); + if ((access & Opcodes.ACC_ENUM) != 0) { + buf.append("enum "); + } + appendDescriptor(INTERNAL_NAME, name); + buf.append(' '); + appendDescriptor(INTERNAL_NAME, outerName); + buf.append(' '); + appendDescriptor(INTERNAL_NAME, innerName); + buf.append('\n'); + text.add(buf.toString()); + + if (cv != null) { + cv.visitInnerClass(name, outerName, innerName, access); + } + } + + public FieldVisitor visitField( + final int access, + final String name, + final String desc, + final String signature, + final Object value) + { + buf.setLength(0); + buf.append('\n'); + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + buf.append(tab).append("// DEPRECATED\n"); + } + buf.append(tab).append("// access flags ").append(access).append('\n'); + if (signature != null) { + buf.append(tab); + appendDescriptor(FIELD_SIGNATURE, signature); + + TraceSignatureVisitor sv = new TraceSignatureVisitor(0); + SignatureReader r = new SignatureReader(signature); + r.acceptType(sv); + buf.append(tab) + .append("// declaration: ") + .append(sv.getDeclaration()) + .append('\n'); + } + + buf.append(tab); + appendAccess(access); + if ((access & Opcodes.ACC_ENUM) != 0) { + buf.append("enum "); + } + + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append(' ').append(name); + if (value != null) { + buf.append(" = "); + if (value instanceof String) { + buf.append("\"").append(value).append("\""); + } else { + buf.append(value); + } + } + + buf.append('\n'); + text.add(buf.toString()); + + TraceFieldVisitor tav = createTraceFieldVisitor(); + text.add(tav.getText()); + + if (cv != null) { + tav.fv = cv.visitField(access, name, desc, signature, value); + } + + return tav; + } + + public MethodVisitor visitMethod( + final int access, + final String name, + final String desc, + final String signature, + final String[] exceptions) + { + buf.setLength(0); + buf.append('\n'); + if ((access & Opcodes.ACC_DEPRECATED) != 0) { + buf.append(tab).append("// DEPRECATED\n"); + } + buf.append(tab).append("// access flags ").append(access).append('\n'); + buf.append(tab); + appendDescriptor(METHOD_SIGNATURE, signature); + + if (signature != null) { + TraceSignatureVisitor v = new TraceSignatureVisitor(0); + SignatureReader r = new SignatureReader(signature); + r.accept(v); + String genericDecl = v.getDeclaration(); + String genericReturn = v.getReturnType(); + String genericExceptions = v.getExceptions(); + + buf.append(tab) + .append("// declaration: ") + .append(genericReturn) + .append(' ') + .append(name) + .append(genericDecl); + if (genericExceptions != null) { + buf.append(" throws ").append(genericExceptions); + } + buf.append('\n'); + } + + appendAccess(access); + if ((access & Opcodes.ACC_NATIVE) != 0) { + buf.append("native "); + } + if ((access & Opcodes.ACC_VARARGS) != 0) { + buf.append("varargs "); + } + if ((access & Opcodes.ACC_BRIDGE) != 0) { + buf.append("bridge "); + } + + buf.append(name); + appendDescriptor(METHOD_DESCRIPTOR, desc); + if (exceptions != null && exceptions.length > 0) { + buf.append(" throws "); + for (int i = 0; i < exceptions.length; ++i) { + appendDescriptor(INTERNAL_NAME, exceptions[i]); + buf.append(' '); + } + } + + buf.append('\n'); + text.add(buf.toString()); + + TraceMethodVisitor tcv = createTraceMethodVisitor(); + text.add(tcv.getText()); + + if (cv != null) { + tcv.mv = cv.visitMethod(access, name, desc, signature, exceptions); + } + + return tcv; + } + + public void visitEnd() { + text.add("}\n"); + + printList(pw, text); + pw.flush(); + + if (cv != null) { + cv.visitEnd(); + } + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + protected TraceFieldVisitor createTraceFieldVisitor() { + return new TraceFieldVisitor(); + } + + protected TraceMethodVisitor createTraceMethodVisitor() { + return new TraceMethodVisitor(); + } + + /** + * Appends a string representation of the given access modifiers to {@link + * #buf buf}. + * + * @param access some access modifiers. + */ + private void appendAccess(final int access) { + if ((access & Opcodes.ACC_PUBLIC) != 0) { + buf.append("public "); + } + if ((access & Opcodes.ACC_PRIVATE) != 0) { + buf.append("private "); + } + if ((access & Opcodes.ACC_PROTECTED) != 0) { + buf.append("protected "); + } + if ((access & Opcodes.ACC_FINAL) != 0) { + buf.append("final "); + } + if ((access & Opcodes.ACC_STATIC) != 0) { + buf.append("static "); + } + if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) { + buf.append("synchronized "); + } + if ((access & Opcodes.ACC_VOLATILE) != 0) { + buf.append("volatile "); + } + if ((access & Opcodes.ACC_TRANSIENT) != 0) { + buf.append("transient "); + } + // if ((access & Constants.ACC_NATIVE) != 0) { + // buf.append("native "); + // } + if ((access & Opcodes.ACC_ABSTRACT) != 0) { + buf.append("abstract "); + } + if ((access & Opcodes.ACC_STRICT) != 0) { + buf.append("strictfp "); + } + if ((access & Opcodes.ACC_SYNTHETIC) != 0) { + buf.append("synthetic "); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java new file mode 100644 index 00000000000..7546a3c925e --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java @@ -0,0 +1,78 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.FieldVisitor; + +/** + * A {@link FieldVisitor} that prints a disassembled view of the fields it + * visits. + * + * @author Eric Bruneton + */ +public class TraceFieldVisitor extends TraceAbstractVisitor implements + FieldVisitor +{ + + /** + * The {@link FieldVisitor} to which this visitor delegates calls. May be + * null. + */ + protected FieldVisitor fv; + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + AnnotationVisitor av = super.visitAnnotation(desc, visible); + if (fv != null) { + ((TraceAnnotationVisitor) av).av = fv.visitAnnotation(desc, visible); + } + return av; + } + + public void visitAttribute(final Attribute attr) { + super.visitAttribute(attr); + + if (fv != null) { + fv.visitAttribute(attr); + } + } + + public void visitEnd() { + super.visitEnd(); + + if (fv != null) { + fv.visitEnd(); + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java new file mode 100644 index 00000000000..899f52ea79d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java @@ -0,0 +1,486 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; +import org.objectweb.asm.signature.SignatureReader; +import org.objectweb.asm.util.attrs.Traceable; + +import java.util.HashMap; + +/** + * A {@link MethodVisitor} that prints a disassembled view of the methods it + * visits. + * + * @author Eric Bruneton + */ +public class TraceMethodVisitor extends TraceAbstractVisitor implements + MethodVisitor +{ + + /** + * The {@link MethodVisitor} to which this visitor delegates calls. May be + * null. + */ + protected MethodVisitor mv; + + /** + * Tab for bytecode instructions. + */ + protected String tab2 = " "; + + /** + * Tab for table and lookup switch instructions. + */ + protected String tab3 = " "; + + /** + * Tab for labels. + */ + protected String ltab = " "; + + /** + * The label names. This map associate String values to Label keys. + */ + protected final HashMap labelNames; + + /** + * Constructs a new {@link TraceMethodVisitor}. + */ + public TraceMethodVisitor() { + this(null); + } + + /** + * Constructs a new {@link TraceMethodVisitor}. + * + * @param mv the {@link MethodVisitor} to which this visitor delegates + * calls. May be null. + */ + public TraceMethodVisitor(final MethodVisitor mv) { + this.labelNames = new HashMap(); + this.mv = mv; + } + + // ------------------------------------------------------------------------ + // Implementation of the MethodVisitor interface + // ------------------------------------------------------------------------ + + public AnnotationVisitor visitAnnotation( + final String desc, + final boolean visible) + { + AnnotationVisitor av = super.visitAnnotation(desc, visible); + if (mv != null) { + ((TraceAnnotationVisitor) av).av = mv.visitAnnotation(desc, visible); + } + return av; + } + + public void visitAttribute(final Attribute attr) { + buf.setLength(0); + buf.append(tab).append("ATTRIBUTE "); + appendDescriptor(-1, attr.type); + + if (attr instanceof Traceable) { + ((Traceable) attr).trace(buf, labelNames); + } else { + buf.append(" : ").append(attr.toString()).append("\n"); + } + + text.add(buf.toString()); + if (mv != null) { + mv.visitAttribute(attr); + } + } + + public AnnotationVisitor visitAnnotationDefault() { + text.add(tab2 + "default="); + TraceAnnotationVisitor tav = new TraceAnnotationVisitor(); + text.add(tav.getText()); + text.add("\n"); + if (mv != null) { + tav.av = mv.visitAnnotationDefault(); + } + return tav; + } + + public AnnotationVisitor visitParameterAnnotation( + final int parameter, + final String desc, + final boolean visible) + { + buf.setLength(0); + buf.append(tab2).append('@'); + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append('('); + text.add(buf.toString()); + TraceAnnotationVisitor tav = new TraceAnnotationVisitor(); + text.add(tav.getText()); + text.add(visible ? ") // parameter " : ") // invisible, parameter "); + text.add(new Integer(parameter)); + text.add("\n"); + if (mv != null) { + tav.av = mv.visitParameterAnnotation(parameter, desc, visible); + } + return tav; + } + + public void visitCode() { + if (mv != null) { + mv.visitCode(); + } + } + + public void visitInsn(final int opcode) { + buf.setLength(0); + buf.append(tab2).append(OPCODES[opcode]).append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitInsn(opcode); + } + } + + public void visitIntInsn(final int opcode, final int operand) { + buf.setLength(0); + buf.append(tab2) + .append(OPCODES[opcode]) + .append(' ') + .append(opcode == Opcodes.NEWARRAY + ? TYPES[operand] + : Integer.toString(operand)) + .append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitIntInsn(opcode, operand); + } + } + + public void visitVarInsn(final int opcode, final int var) { + buf.setLength(0); + buf.append(tab2) + .append(OPCODES[opcode]) + .append(' ') + .append(var) + .append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitVarInsn(opcode, var); + } + } + + public void visitTypeInsn(final int opcode, final String desc) { + buf.setLength(0); + buf.append(tab2).append(OPCODES[opcode]).append(' '); + if (desc.startsWith("[")) { + appendDescriptor(FIELD_DESCRIPTOR, desc); + } else { + appendDescriptor(INTERNAL_NAME, desc); + } + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitTypeInsn(opcode, desc); + } + } + + public void visitFieldInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + buf.setLength(0); + buf.append(tab2).append(OPCODES[opcode]).append(' '); + appendDescriptor(INTERNAL_NAME, owner); + buf.append('.').append(name).append(" : "); + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitFieldInsn(opcode, owner, name, desc); + } + } + + public void visitMethodInsn( + final int opcode, + final String owner, + final String name, + final String desc) + { + buf.setLength(0); + buf.append(tab2).append(OPCODES[opcode]).append(' '); + appendDescriptor(INTERNAL_NAME, owner); + buf.append('.').append(name).append(' '); + appendDescriptor(METHOD_DESCRIPTOR, desc); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitMethodInsn(opcode, owner, name, desc); + } + } + + public void visitJumpInsn(final int opcode, final Label label) { + buf.setLength(0); + buf.append(tab2).append(OPCODES[opcode]).append(' '); + appendLabel(label); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitJumpInsn(opcode, label); + } + } + + public void visitLabel(final Label label) { + buf.setLength(0); + buf.append(ltab); + appendLabel(label); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitLabel(label); + } + } + + public void visitLdcInsn(final Object cst) { + buf.setLength(0); + buf.append(tab2).append("LDC "); + if (cst instanceof String) { + AbstractVisitor.appendString(buf, (String) cst); + } else if (cst instanceof Type) { + buf.append(((Type) cst).getDescriptor() + ".class"); + } else { + buf.append(cst); + } + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitLdcInsn(cst); + } + } + + public void visitIincInsn(final int var, final int increment) { + buf.setLength(0); + buf.append(tab2) + .append("IINC ") + .append(var) + .append(' ') + .append(increment) + .append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitIincInsn(var, increment); + } + } + + public void visitTableSwitchInsn( + final int min, + final int max, + final Label dflt, + final Label labels[]) + { + buf.setLength(0); + buf.append(tab2).append("TABLESWITCH\n"); + for (int i = 0; i < labels.length; ++i) { + buf.append(tab3).append(min + i).append(": "); + appendLabel(labels[i]); + buf.append('\n'); + } + buf.append(tab3).append("default: "); + appendLabel(dflt); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitTableSwitchInsn(min, max, dflt, labels); + } + } + + public void visitLookupSwitchInsn( + final Label dflt, + final int keys[], + final Label labels[]) + { + buf.setLength(0); + buf.append(tab2).append("LOOKUPSWITCH\n"); + for (int i = 0; i < labels.length; ++i) { + buf.append(tab3).append(keys[i]).append(": "); + appendLabel(labels[i]); + buf.append('\n'); + } + buf.append(tab3).append("default: "); + appendLabel(dflt); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitLookupSwitchInsn(dflt, keys, labels); + } + } + + public void visitMultiANewArrayInsn(final String desc, final int dims) { + buf.setLength(0); + buf.append(tab2).append("MULTIANEWARRAY "); + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append(' ').append(dims).append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitMultiANewArrayInsn(desc, dims); + } + } + + public void visitTryCatchBlock( + final Label start, + final Label end, + final Label handler, + final String type) + { + buf.setLength(0); + buf.append(tab2).append("TRYCATCHBLOCK "); + appendLabel(start); + buf.append(' '); + appendLabel(end); + buf.append(' '); + appendLabel(handler); + buf.append(' '); + appendDescriptor(INTERNAL_NAME, type); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitTryCatchBlock(start, end, handler, type); + } + } + + public void visitLocalVariable( + final String name, + final String desc, + final String signature, + final Label start, + final Label end, + final int index) + { + buf.setLength(0); + buf.append(tab2).append("LOCALVARIABLE ").append(name).append(' '); + appendDescriptor(FIELD_DESCRIPTOR, desc); + buf.append(' '); + appendLabel(start); + buf.append(' '); + appendLabel(end); + buf.append(' ').append(index).append('\n'); + + if (signature != null) { + buf.append(tab2); + appendDescriptor(FIELD_SIGNATURE, signature); + + TraceSignatureVisitor sv = new TraceSignatureVisitor(0); + SignatureReader r = new SignatureReader(signature); + r.acceptType(sv); + buf.append(tab2) + .append("// declaration: ") + .append(sv.getDeclaration()) + .append('\n'); + } + text.add(buf.toString()); + + if (mv != null) { + mv.visitLocalVariable(name, desc, signature, start, end, index); + } + } + + public void visitLineNumber(final int line, final Label start) { + buf.setLength(0); + buf.append(tab2).append("LINENUMBER ").append(line).append(' '); + appendLabel(start); + buf.append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitLineNumber(line, start); + } + } + + public void visitMaxs(final int maxStack, final int maxLocals) { + buf.setLength(0); + buf.append(tab2).append("MAXSTACK = ").append(maxStack).append('\n'); + text.add(buf.toString()); + + buf.setLength(0); + buf.append(tab2).append("MAXLOCALS = ").append(maxLocals).append('\n'); + text.add(buf.toString()); + + if (mv != null) { + mv.visitMaxs(maxStack, maxLocals); + } + } + + public void visitEnd() { + super.visitEnd(); + + if (mv != null) { + mv.visitEnd(); + } + } + + // ------------------------------------------------------------------------ + // Utility methods + // ------------------------------------------------------------------------ + + /** + * Appends the name of the given label to {@link #buf buf}. Creates a new + * label name if the given label does not yet have one. + * + * @param l a label. + */ + public void appendLabel(final Label l) { + String name = (String) labelNames.get(l); + if (name == null) { + name = "L" + labelNames.size(); + labelNames.put(l, name); + } + buf.append(name); + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java new file mode 100644 index 00000000000..c7145c0e86c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java @@ -0,0 +1,300 @@ +/*** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.signature.SignatureVisitor; + +/** + * A {@link SignatureVisitor} that prints a disassembled view of the signature + * it visits. + * + * @author Eugene Kuleshov + * @author Eric Bruneton + */ +public class TraceSignatureVisitor implements SignatureVisitor { + + private StringBuffer declaration; + + private boolean isInterface; + + private boolean seenFormalParameter; + + private boolean seenInterfaceBound; + + private boolean seenParameter; + + private boolean seenInterface; + + private StringBuffer returnType; + + private StringBuffer exceptions; + + /** + * Stack used to keep track of class types that have arguments. Each element + * of this stack is a boolean encoded in one bit. The top of the stack is + * the lowest order bit. Pushing false = *2, pushing true = *2+1, popping = + * /2. + */ + private int argumentStack; + + /** + * Stack used to keep track of array class types. Each element of this stack + * is a boolean encoded in one bit. The top of the stack is the lowest order + * bit. Pushing false = *2, pushing true = *2+1, popping = /2. + */ + private int arrayStack; + + private String separator = ""; + + public TraceSignatureVisitor(int access) { + isInterface = (access & Opcodes.ACC_INTERFACE) != 0; + this.declaration = new StringBuffer(); + } + + private TraceSignatureVisitor(StringBuffer buf) { + this.declaration = buf; + } + + public void visitFormalTypeParameter(String name) { + declaration.append(seenFormalParameter ? ", " : "<").append(name); + seenFormalParameter = true; + seenInterfaceBound = false; + } + + public SignatureVisitor visitClassBound() { + separator = " extends "; + startType(); + return this; + } + + public SignatureVisitor visitInterfaceBound() { + separator = seenInterfaceBound ? ", " : " extends "; + seenInterfaceBound = true; + startType(); + return this; + } + + public SignatureVisitor visitSuperclass() { + endFormals(); + separator = " extends "; + startType(); + return this; + } + + public SignatureVisitor visitInterface() { + separator = seenInterface ? ", " : (isInterface + ? " extends " + : " implements "); + seenInterface = true; + startType(); + return this; + } + + public SignatureVisitor visitParameterType() { + endFormals(); + if (!seenParameter) { + seenParameter = true; + declaration.append('('); + } else { + declaration.append(", "); + } + startType(); + return this; + } + + public SignatureVisitor visitReturnType() { + endFormals(); + if (!seenParameter) { + declaration.append('('); + } else { + seenParameter = false; + } + declaration.append(')'); + returnType = new StringBuffer(); + return new TraceSignatureVisitor(returnType); + } + + public SignatureVisitor visitExceptionType() { + if (exceptions == null) { + exceptions = new StringBuffer(); + } else { + exceptions.append(", "); + } + // startType(); + return new TraceSignatureVisitor(exceptions); + } + + public void visitBaseType(char descriptor) { + switch (descriptor) { + case 'V': + declaration.append("void"); + break; + case 'B': + declaration.append("byte"); + break; + case 'J': + declaration.append("long"); + break; + case 'Z': + declaration.append("boolean"); + break; + case 'I': + declaration.append("int"); + break; + case 'S': + declaration.append("short"); + break; + case 'C': + declaration.append("char"); + break; + case 'F': + declaration.append("float"); + break; + // case 'D': + default: + declaration.append("double"); + break; + } + endType(); + } + + public void visitTypeVariable(String name) { + declaration.append(name); + endType(); + } + + public SignatureVisitor visitArrayType() { + startType(); + arrayStack |= 1; + return this; + } + + public void visitClassType(String name) { + if (!"java/lang/Object".equals(name)) { + declaration.append(separator).append(name.replace('/', '.')); + } else { + // Map + // or + // abstract public V get(Object key); (seen in Dictionary.class) + // should have Object + // but java.lang.String extends java.lang.Object is unnecessary + boolean needObjectClass = argumentStack % 2 == 1 || seenParameter; + if (needObjectClass) { + declaration.append(separator).append(name.replace('/', '.')); + } + } + separator = ""; + argumentStack *= 2; + } + + public void visitInnerClassType(String name) { + if (argumentStack % 2 == 1) { + declaration.append('>'); + } + argumentStack /= 2; + declaration.append('.'); + declaration.append(separator).append(name.replace('/', '.')); + separator = ""; + argumentStack *= 2; + } + + public void visitTypeArgument() { + if (argumentStack % 2 == 0) { + ++argumentStack; + declaration.append('<'); + } else { + declaration.append(", "); + } + declaration.append('?'); + } + + public SignatureVisitor visitTypeArgument(char tag) { + if (argumentStack % 2 == 0) { + ++argumentStack; + declaration.append('<'); + } else { + declaration.append(", "); + } + + if (tag == SignatureVisitor.EXTENDS) { + declaration.append("? extends "); + } else if (tag == SignatureVisitor.SUPER) { + declaration.append("? super "); + } + + startType(); + return this; + } + + public void visitEnd() { + if (argumentStack % 2 == 1) { + declaration.append('>'); + } + argumentStack /= 2; + endType(); + } + + public String getDeclaration() { + return declaration.toString(); + } + + public String getReturnType() { + return returnType == null ? null : returnType.toString(); + } + + public String getExceptions() { + return exceptions == null ? null : exceptions.toString(); + } + + // ----------------------------------------------- + + private void endFormals() { + if (seenFormalParameter) { + declaration.append('>'); + seenFormalParameter = false; + } + } + + private void startType() { + arrayStack *= 2; + } + + private void endType() { + if (arrayStack % 2 == 1) { + while (arrayStack % 2 == 1) { + arrayStack /= 2; + declaration.append("[]"); + } + } else { + arrayStack /= 2; + } + } +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java new file mode 100644 index 00000000000..88c7af89900 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java @@ -0,0 +1,223 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util.attrs; + +import java.util.List; +import java.util.Map; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.Label; +import org.objectweb.asm.attrs.StackMapAttribute; +import org.objectweb.asm.attrs.StackMapFrame; +import org.objectweb.asm.attrs.StackMapType; + +/** + * An {@link ASMifiable} {@link StackMapAttribute} sub class. + * + * @author Eugene Kuleshov + */ +public class ASMStackMapAttribute extends StackMapAttribute implements + ASMifiable, + Traceable +{ + /** + * Length of the attribute used for comparison + */ + private int len; + + public ASMStackMapAttribute() { + super(); + } + + public ASMStackMapAttribute(List frames, int len) { + super(frames); + this.len = len; + } + + protected Attribute read( + ClassReader cr, + int off, + int len, + char[] buf, + int codeOff, + Label[] labels) + { + StackMapAttribute attr = (StackMapAttribute) super.read(cr, + off, + len, + buf, + codeOff, + labels); + + return new ASMStackMapAttribute(attr.getFrames(), len); + } + + public void asmify(StringBuffer buf, String varName, Map labelNames) { + List frames = getFrames(); + buf.append("{\n"); + buf.append("StackMapAttribute ").append(varName).append("Attr"); + buf.append(" = new StackMapAttribute();\n"); + if (frames.size() > 0) { + for (int i = 0; i < frames.size(); i++) { + asmify((StackMapFrame) frames.get(i), buf, varName + "frame" + + i, labelNames); + } + } + buf.append(varName).append(".visitAttribute(").append(varName); + buf.append("Attr);\n}\n"); + } + + void asmify( + StackMapFrame f, + StringBuffer buf, + String varName, + Map labelNames) + { + declareLabel(buf, labelNames, f.label); + buf.append("{\n"); + + buf.append("StackMapFrame ") + .append(varName) + .append(" = new StackMapFrame();\n"); + + buf.append(varName) + .append(".label = ") + .append(labelNames.get(f.label)) + .append(";\n"); + + asmifyTypeInfo(buf, varName, labelNames, f.locals, "locals"); + asmifyTypeInfo(buf, varName, labelNames, f.stack, "stack"); + + buf.append("cvAttr.frames.add(").append(varName).append(");\n"); + buf.append("}\n"); + } + + void asmifyTypeInfo( + StringBuffer buf, + String varName, + Map labelNames, + List infos, + String field) + { + if (infos.size() > 0) { + buf.append("{\n"); + for (int i = 0; i < infos.size(); i++) { + StackMapType typeInfo = (StackMapType) infos.get(i); + String localName = varName + "Info" + i; + int type = typeInfo.getType(); + buf.append("StackMapType ") + .append(localName) + .append(" = StackMapType.getTypeInfo( StackMapType.ITEM_") + .append(StackMapType.ITEM_NAMES[type]) + .append(");\n"); + + switch (type) { + case StackMapType.ITEM_Object: // + buf.append(localName) + .append(".setObject(\"") + .append(typeInfo.getObject()) + .append("\");\n"); + break; + + case StackMapType.ITEM_Uninitialized: // + declareLabel(buf, labelNames, typeInfo.getLabel()); + buf.append(localName) + .append(".setLabel(") + .append(labelNames.get(typeInfo.getLabel())) + .append(");\n"); + break; + } + buf.append(varName) + .append(".") + .append(field) + .append(".add(") + .append(localName) + .append(");\n"); + } + buf.append("}\n"); + } + } + + static void declareLabel(StringBuffer buf, Map labelNames, Label l) { + String name = (String) labelNames.get(l); + if (name == null) { + name = "l" + labelNames.size(); + labelNames.put(l, name); + buf.append("Label ").append(name).append(" = new Label();\n"); + } + } + + public void trace(StringBuffer buf, Map labelNames) { + List frames = getFrames(); + buf.append("[\n"); + for (int i = 0; i < frames.size(); i++) { + StackMapFrame f = (StackMapFrame) frames.get(i); + + buf.append(" Frame:"); + appendLabel(buf, labelNames, f.label); + + buf.append(" locals["); + traceTypeInfo(buf, labelNames, f.locals); + buf.append("]"); + buf.append(" stack["); + traceTypeInfo(buf, labelNames, f.stack); + buf.append("]\n"); + } + buf.append(" ] length:").append(len).append("\n"); + } + + private void traceTypeInfo(StringBuffer buf, Map labelNames, List infos) { + String sep = ""; + for (int i = 0; i < infos.size(); i++) { + StackMapType t = (StackMapType) infos.get(i); + + buf.append(sep).append(StackMapType.ITEM_NAMES[t.getType()]); + sep = ", "; + if (t.getType() == StackMapType.ITEM_Object) { + buf.append(":").append(t.getObject()); + } + if (t.getType() == StackMapType.ITEM_Uninitialized) { + buf.append(":"); + appendLabel(buf, labelNames, t.getLabel()); + } + } + } + + protected void appendLabel(StringBuffer buf, Map labelNames, Label l) { + String name = (String) labelNames.get(l); + if (name == null) { + name = "L" + labelNames.size(); + labelNames.put(l, name); + } + buf.append(name); + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java new file mode 100644 index 00000000000..b878357d6b5 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java @@ -0,0 +1,214 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util.attrs; + +import java.util.List; +import java.util.Map; + +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.Label; +import org.objectweb.asm.attrs.StackMapTableAttribute; +import org.objectweb.asm.attrs.StackMapFrame; +import org.objectweb.asm.attrs.StackMapType; + +/** + * An {@link ASMifiable} {@link StackMapTableAttribute} sub class. + * + * @author Eugene Kuleshov + */ +public class ASMStackMapTableAttribute extends StackMapTableAttribute implements + ASMifiable, + Traceable +{ + /** + * Length of the attribute used for comparison + */ + private int len; + + public ASMStackMapTableAttribute() { + super(); + } + + public ASMStackMapTableAttribute(List frames, int len) { + super(frames); + this.len = len; + } + + protected Attribute read( + ClassReader cr, + int off, + int len, + char[] buf, + int codeOff, + Label[] labels) + { + StackMapTableAttribute attr = (StackMapTableAttribute) super.read(cr, + off, + len, + buf, + codeOff, + labels); + + return new ASMStackMapTableAttribute(attr.getFrames(), len); + } + + public void asmify(StringBuffer buf, String varName, Map labelNames) { + List frames = getFrames(); + if (frames.size() == 0) { + buf.append("List frames = Collections.EMPTY_LIST;\n"); + } else { + buf.append("List frames = new ArrayList();\n"); + for (int i = 0; i < frames.size(); i++) { + buf.append("{\n"); + StackMapFrame f = (StackMapFrame) frames.get(i); + declareLabel(buf, labelNames, f.label); + + String frameVar = varName + "frame" + i; + asmifyTypeInfo(buf, frameVar, labelNames, f.locals, "locals"); + asmifyTypeInfo(buf, frameVar, labelNames, f.stack, "stack"); + + buf.append("StackMapFrame ") + .append(frameVar) + .append(" = new StackMapFrame(") + .append(labelNames.get(f.label)) + .append(", locals, stack);\n"); + buf.append("frames.add(").append(frameVar).append(");\n"); + buf.append("}\n"); + } + } + buf.append("StackMapTableAttribute ").append(varName); + buf.append(" = new StackMapTableAttribute(frames);\n"); + } + + void asmifyTypeInfo( + StringBuffer buf, + String varName, + Map labelNames, + List infos, + String field) + { + if (infos.size() == 0) { + buf.append("List ") + .append(field) + .append(" = Collections.EMPTY_LIST;\n"); + } else { + buf.append("List ").append(field).append(" = new ArrayList();\n"); + buf.append("{\n"); + for (int i = 0; i < infos.size(); i++) { + StackMapType typeInfo = (StackMapType) infos.get(i); + String localName = varName + "Info" + i; + int type = typeInfo.getType(); + buf.append("StackMapType ") + .append(localName) + .append(" = StackMapType.getTypeInfo( StackMapType.ITEM_") + .append(StackMapType.ITEM_NAMES[type]) + .append(");\n"); + + switch (type) { + case StackMapType.ITEM_Object: // + buf.append(localName) + .append(".setObject(\"") + .append(typeInfo.getObject()) + .append("\");\n"); + break; + + case StackMapType.ITEM_Uninitialized: // + declareLabel(buf, labelNames, typeInfo.getLabel()); + buf.append(localName) + .append(".setLabel(") + .append(labelNames.get(typeInfo.getLabel())) + .append(");\n"); + break; + } + buf.append(field) + .append(".add(") + .append(localName) + .append(");\n"); + } + buf.append("}\n"); + } + } + + static void declareLabel(StringBuffer buf, Map labelNames, Label l) { + String name = (String) labelNames.get(l); + if (name == null) { + name = "l" + labelNames.size(); + labelNames.put(l, name); + buf.append("Label ").append(name).append(" = new Label();\n"); + } + } + + public void trace(StringBuffer buf, Map labelNames) { + List frames = getFrames(); + buf.append("[\n"); + for (int i = 0; i < frames.size(); i++) { + StackMapFrame f = (StackMapFrame) frames.get(i); + + buf.append(" Frame:"); + appendLabel(buf, labelNames, f.label); + + buf.append(" locals["); + traceTypeInfo(buf, labelNames, f.locals); + buf.append("]"); + buf.append(" stack["); + traceTypeInfo(buf, labelNames, f.stack); + buf.append("]\n"); + } + buf.append(" ] length:").append(len).append("\n"); + } + + private void traceTypeInfo(StringBuffer buf, Map labelNames, List infos) { + String sep = ""; + for (int i = 0; i < infos.size(); i++) { + StackMapType t = (StackMapType) infos.get(i); + + buf.append(sep).append(StackMapType.ITEM_NAMES[t.getType()]); + sep = ", "; + if (t.getType() == StackMapType.ITEM_Object) { + buf.append(":").append(t.getObject()); + } + if (t.getType() == StackMapType.ITEM_Uninitialized) { + buf.append(":"); + appendLabel(buf, labelNames, t.getLabel()); + } + } + } + + protected void appendLabel(StringBuffer buf, Map labelNames, Label l) { + String name = (String) labelNames.get(l); + if (name == null) { + name = "L" + labelNames.size(); + labelNames.put(l, name); + } + buf.append(name); + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java new file mode 100644 index 00000000000..149d7daeeb1 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java @@ -0,0 +1,53 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util.attrs; + +import java.util.Map; + +/** + * An attribute that can print the ASM code to create an equivalent attribute. + * + * Implementation should print the ASM code that generates attribute data + * structures for current attribute state. + * + * @author Eugene Kuleshov + */ +public interface ASMifiable { + + /** + * Prints the ASM code to create an attribute equal to this attribute. + * + * @param buf A buffer used for printing Java code. + * @param varName name of the variable in a printed code used to store + * attribute instance. + * @param labelNames map of label instances to their names. + */ + void asmify(StringBuffer buf, String varName, Map labelNames); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java new file mode 100644 index 00000000000..c40d2a62c3b --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java @@ -0,0 +1,52 @@ +/** + * ASM: a very small and fast Java bytecode manipulation framework + * Copyright (c) 2000-2005 INRIA, France Telecom + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.util.attrs; + +import java.util.Map; + +/** + * An attribute that can print eadable representation of the attribute. + * + * Implementation should construct readable output from an attribute data + * structures for current attribute state. Such representation could be used in + * unit test assertions. + * + * @author Eugene Kuleshov + */ +public interface Traceable { + + /** + * Build a human readable representation of the attribute. + * + * @param buf A buffer used for printing Java code. + * @param labelNames map of label instances to their names. + */ + void trace(StringBuffer buf, Map labelNames); +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/package.html new file mode 100644 index 00000000000..a21cb004a26 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/attrs/package.html @@ -0,0 +1,36 @@ + + + +Provides attributes sub classes that can work with the ASMifier utility. + +@since ASM 1.4.3 + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/util/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/package.html new file mode 100644 index 00000000000..e967b8b1040 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/util/package.html @@ -0,0 +1,40 @@ + + + +Provides ASM visitors that can be useful for programming and +debugging purposes. These class visitors are normally not used by applications +at runtime. This is why they are bundled in an optional asm-util.jar +library that is separated from (but requires) the asm.jar library, +which contains the core ASM framework. + +@since ASM 1.3.2 + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java new file mode 100644 index 00000000000..1f6fee0ffab --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java @@ -0,0 +1,1215 @@ +/*** + * ASM XML Adapter + * Copyright (c) 2004, Eugene Kuleshov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.xml; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Label; +import org.objectweb.asm.Type; + +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +/** + * A {@link org.xml.sax.ContentHandler ContentHandler} that transforms XML + * document into Java class file. This class can be feeded by any kind of SAX + * 2.0 event producers, e.g. XML parser, XSLT or XPath engines, or custom code. + * + * @see org.objectweb.asm.xml.SAXClassAdapter + * @see org.objectweb.asm.xml.Processor + * + * @author Eugene Kuleshov + */ +public class ASMContentHandler extends DefaultHandler implements Opcodes { + /** + * Stack of the intermediate processing contexts. + */ + private List stack = new ArrayList(); + + /** + * Complete name of the current element. + */ + private String match = ""; + + /** + * true if the maximum stack size and number of local variables + * must be automatically computed. + */ + protected boolean computeMax; + + /** + * Output stream to write result bytecode. + */ + protected OutputStream os; + + /** + * Current instance of the {@link ClassWriter ClassWriter} used to write + * class bytecode. + */ + protected ClassWriter cw; + + /** + * Map of the active {@link Label Label} instances for current method. + */ + protected Map labels; + + private static final String BASE = "class"; + + private final RuleSet RULES = new RuleSet(); + { + RULES.add(BASE, new ClassRule()); + RULES.add(BASE + "/interfaces/interface", new InterfaceRule()); + RULES.add(BASE + "/interfaces", new InterfacesRule()); + RULES.add(BASE + "/outerclass", new OuterClassRule()); + RULES.add(BASE + "/innerclass", new InnerClassRule()); + RULES.add(BASE + "/source", new SourceRule()); + RULES.add(BASE + "/field", new FieldRule()); + + RULES.add(BASE + "/method", new MethodRule()); + RULES.add(BASE + "/method/exceptions/exception", new ExceptionRule()); + RULES.add(BASE + "/method/exceptions", new ExceptionsRule()); + + RULES.add(BASE + "/method/annotationDefault", + new AnnotationDefaultRule()); + + RULES.add(BASE + "/method/code/*", new OpcodesRule()); // opcodes + + RULES.add(BASE + "/method/code/TABLESWITCH", new TableSwitchRule()); + RULES.add(BASE + "/method/code/TABLESWITCH/label", + new TableSwitchLabelRule()); + RULES.add(BASE + "/method/code/LOOKUPSWITCH", new LookupSwitchRule()); + RULES.add(BASE + "/method/code/LOOKUPSWITCH/label", + new LookupSwitchLabelRule()); + + RULES.add(BASE + "/method/code/Label", new LabelRule()); + RULES.add(BASE + "/method/code/TryCatch", new TryCatchRule()); + RULES.add(BASE + "/method/code/LineNumber", new LineNumberRule()); + RULES.add(BASE + "/method/code/LocalVar", new LocalVarRule()); + RULES.add(BASE + "/method/code/Max", new MaxRule()); + + RULES.add("*/annotation", new AnnotationRule()); + RULES.add("*/parameterAnnotation", new AnnotationParameterRule()); + RULES.add("*/annotationValue", new AnnotationValueRule()); + RULES.add("*/annotationValueAnnotation", + new AnnotationValueAnnotationRule()); + RULES.add("*/annotationValueEnum", new AnnotationValueEnumRule()); + RULES.add("*/annotationValueArray", new AnnotationValueArrayRule()); + }; + + private static interface OpcodeGroup { + public static final int INSN = 0; + public static final int INSN_INT = 1; + public static final int INSN_VAR = 2; + public static final int INSN_TYPE = 3; + public static final int INSN_FIELD = 4; + public static final int INSN_METHOD = 5; + public static final int INSN_JUMP = 6; + public static final int INSN_LDC = 7; + public static final int INSN_IINC = 8; + public static final int INSN_MULTIANEWARRAY = 9; + } + + /** + * Map of the opcode names to opcode and opcode group + */ + static final Map OPCODES = new HashMap(); + static { + OPCODES.put("NOP", new Opcode(NOP, OpcodeGroup.INSN)); + OPCODES.put("ACONST_NULL", new Opcode(ACONST_NULL, OpcodeGroup.INSN)); + OPCODES.put("ICONST_M1", new Opcode(ICONST_M1, OpcodeGroup.INSN)); + OPCODES.put("ICONST_0", new Opcode(ICONST_0, OpcodeGroup.INSN)); + OPCODES.put("ICONST_1", new Opcode(ICONST_1, OpcodeGroup.INSN)); + OPCODES.put("ICONST_2", new Opcode(ICONST_2, OpcodeGroup.INSN)); + OPCODES.put("ICONST_3", new Opcode(ICONST_3, OpcodeGroup.INSN)); + OPCODES.put("ICONST_4", new Opcode(ICONST_4, OpcodeGroup.INSN)); + OPCODES.put("ICONST_5", new Opcode(ICONST_5, OpcodeGroup.INSN)); + OPCODES.put("LCONST_0", new Opcode(LCONST_0, OpcodeGroup.INSN)); + OPCODES.put("LCONST_1", new Opcode(LCONST_1, OpcodeGroup.INSN)); + OPCODES.put("FCONST_0", new Opcode(FCONST_0, OpcodeGroup.INSN)); + OPCODES.put("FCONST_1", new Opcode(FCONST_1, OpcodeGroup.INSN)); + OPCODES.put("FCONST_2", new Opcode(FCONST_2, OpcodeGroup.INSN)); + OPCODES.put("DCONST_0", new Opcode(DCONST_0, OpcodeGroup.INSN)); + OPCODES.put("DCONST_1", new Opcode(DCONST_1, OpcodeGroup.INSN)); + OPCODES.put("BIPUSH", new Opcode(BIPUSH, OpcodeGroup.INSN_INT)); + OPCODES.put("SIPUSH", new Opcode(SIPUSH, OpcodeGroup.INSN_INT)); + OPCODES.put("LDC", new Opcode(LDC, OpcodeGroup.INSN_LDC)); + OPCODES.put("ILOAD", new Opcode(ILOAD, OpcodeGroup.INSN_VAR)); + OPCODES.put("LLOAD", new Opcode(LLOAD, OpcodeGroup.INSN_VAR)); + OPCODES.put("FLOAD", new Opcode(FLOAD, OpcodeGroup.INSN_VAR)); + OPCODES.put("DLOAD", new Opcode(DLOAD, OpcodeGroup.INSN_VAR)); + OPCODES.put("ALOAD", new Opcode(ALOAD, OpcodeGroup.INSN_VAR)); + OPCODES.put("IALOAD", new Opcode(IALOAD, OpcodeGroup.INSN)); + OPCODES.put("LALOAD", new Opcode(LALOAD, OpcodeGroup.INSN)); + OPCODES.put("FALOAD", new Opcode(FALOAD, OpcodeGroup.INSN)); + OPCODES.put("DALOAD", new Opcode(DALOAD, OpcodeGroup.INSN)); + OPCODES.put("AALOAD", new Opcode(AALOAD, OpcodeGroup.INSN)); + OPCODES.put("BALOAD", new Opcode(BALOAD, OpcodeGroup.INSN)); + OPCODES.put("CALOAD", new Opcode(CALOAD, OpcodeGroup.INSN)); + OPCODES.put("SALOAD", new Opcode(SALOAD, OpcodeGroup.INSN)); + OPCODES.put("ISTORE", new Opcode(ISTORE, OpcodeGroup.INSN_VAR)); + OPCODES.put("LSTORE", new Opcode(LSTORE, OpcodeGroup.INSN_VAR)); + OPCODES.put("FSTORE", new Opcode(FSTORE, OpcodeGroup.INSN_VAR)); + OPCODES.put("DSTORE", new Opcode(DSTORE, OpcodeGroup.INSN_VAR)); + OPCODES.put("ASTORE", new Opcode(ASTORE, OpcodeGroup.INSN_VAR)); + OPCODES.put("IASTORE", new Opcode(IASTORE, OpcodeGroup.INSN)); + OPCODES.put("LASTORE", new Opcode(LASTORE, OpcodeGroup.INSN)); + OPCODES.put("FASTORE", new Opcode(FASTORE, OpcodeGroup.INSN)); + OPCODES.put("DASTORE", new Opcode(DASTORE, OpcodeGroup.INSN)); + OPCODES.put("AASTORE", new Opcode(AASTORE, OpcodeGroup.INSN)); + OPCODES.put("BASTORE", new Opcode(BASTORE, OpcodeGroup.INSN)); + OPCODES.put("CASTORE", new Opcode(CASTORE, OpcodeGroup.INSN)); + OPCODES.put("SASTORE", new Opcode(SASTORE, OpcodeGroup.INSN)); + OPCODES.put("POP", new Opcode(POP, OpcodeGroup.INSN)); + OPCODES.put("POP2", new Opcode(POP2, OpcodeGroup.INSN)); + OPCODES.put("DUP", new Opcode(DUP, OpcodeGroup.INSN)); + OPCODES.put("DUP_X1", new Opcode(DUP_X1, OpcodeGroup.INSN)); + OPCODES.put("DUP_X2", new Opcode(DUP_X2, OpcodeGroup.INSN)); + OPCODES.put("DUP2", new Opcode(DUP2, OpcodeGroup.INSN)); + OPCODES.put("DUP2_X1", new Opcode(DUP2_X1, OpcodeGroup.INSN)); + OPCODES.put("DUP2_X2", new Opcode(DUP2_X2, OpcodeGroup.INSN)); + OPCODES.put("SWAP", new Opcode(SWAP, OpcodeGroup.INSN)); + OPCODES.put("IADD", new Opcode(IADD, OpcodeGroup.INSN)); + OPCODES.put("LADD", new Opcode(LADD, OpcodeGroup.INSN)); + OPCODES.put("FADD", new Opcode(FADD, OpcodeGroup.INSN)); + OPCODES.put("DADD", new Opcode(DADD, OpcodeGroup.INSN)); + OPCODES.put("ISUB", new Opcode(ISUB, OpcodeGroup.INSN)); + OPCODES.put("LSUB", new Opcode(LSUB, OpcodeGroup.INSN)); + OPCODES.put("FSUB", new Opcode(FSUB, OpcodeGroup.INSN)); + OPCODES.put("DSUB", new Opcode(DSUB, OpcodeGroup.INSN)); + OPCODES.put("IMUL", new Opcode(IMUL, OpcodeGroup.INSN)); + OPCODES.put("LMUL", new Opcode(LMUL, OpcodeGroup.INSN)); + OPCODES.put("FMUL", new Opcode(FMUL, OpcodeGroup.INSN)); + OPCODES.put("DMUL", new Opcode(DMUL, OpcodeGroup.INSN)); + OPCODES.put("IDIV", new Opcode(IDIV, OpcodeGroup.INSN)); + OPCODES.put("LDIV", new Opcode(LDIV, OpcodeGroup.INSN)); + OPCODES.put("FDIV", new Opcode(FDIV, OpcodeGroup.INSN)); + OPCODES.put("DDIV", new Opcode(DDIV, OpcodeGroup.INSN)); + OPCODES.put("IREM", new Opcode(IREM, OpcodeGroup.INSN)); + OPCODES.put("LREM", new Opcode(LREM, OpcodeGroup.INSN)); + OPCODES.put("FREM", new Opcode(FREM, OpcodeGroup.INSN)); + OPCODES.put("DREM", new Opcode(DREM, OpcodeGroup.INSN)); + OPCODES.put("INEG", new Opcode(INEG, OpcodeGroup.INSN)); + OPCODES.put("LNEG", new Opcode(LNEG, OpcodeGroup.INSN)); + OPCODES.put("FNEG", new Opcode(FNEG, OpcodeGroup.INSN)); + OPCODES.put("DNEG", new Opcode(DNEG, OpcodeGroup.INSN)); + OPCODES.put("ISHL", new Opcode(ISHL, OpcodeGroup.INSN)); + OPCODES.put("LSHL", new Opcode(LSHL, OpcodeGroup.INSN)); + OPCODES.put("ISHR", new Opcode(ISHR, OpcodeGroup.INSN)); + OPCODES.put("LSHR", new Opcode(LSHR, OpcodeGroup.INSN)); + OPCODES.put("IUSHR", new Opcode(IUSHR, OpcodeGroup.INSN)); + OPCODES.put("LUSHR", new Opcode(LUSHR, OpcodeGroup.INSN)); + OPCODES.put("IAND", new Opcode(IAND, OpcodeGroup.INSN)); + OPCODES.put("LAND", new Opcode(LAND, OpcodeGroup.INSN)); + OPCODES.put("IOR", new Opcode(IOR, OpcodeGroup.INSN)); + OPCODES.put("LOR", new Opcode(LOR, OpcodeGroup.INSN)); + OPCODES.put("IXOR", new Opcode(IXOR, OpcodeGroup.INSN)); + OPCODES.put("LXOR", new Opcode(LXOR, OpcodeGroup.INSN)); + OPCODES.put("IINC", new Opcode(IINC, OpcodeGroup.INSN_IINC)); + OPCODES.put("I2L", new Opcode(I2L, OpcodeGroup.INSN)); + OPCODES.put("I2F", new Opcode(I2F, OpcodeGroup.INSN)); + OPCODES.put("I2D", new Opcode(I2D, OpcodeGroup.INSN)); + OPCODES.put("L2I", new Opcode(L2I, OpcodeGroup.INSN)); + OPCODES.put("L2F", new Opcode(L2F, OpcodeGroup.INSN)); + OPCODES.put("L2D", new Opcode(L2D, OpcodeGroup.INSN)); + OPCODES.put("F2I", new Opcode(F2I, OpcodeGroup.INSN)); + OPCODES.put("F2L", new Opcode(F2L, OpcodeGroup.INSN)); + OPCODES.put("F2D", new Opcode(F2D, OpcodeGroup.INSN)); + OPCODES.put("D2I", new Opcode(D2I, OpcodeGroup.INSN)); + OPCODES.put("D2L", new Opcode(D2L, OpcodeGroup.INSN)); + OPCODES.put("D2F", new Opcode(D2F, OpcodeGroup.INSN)); + OPCODES.put("I2B", new Opcode(I2B, OpcodeGroup.INSN)); + OPCODES.put("I2C", new Opcode(I2C, OpcodeGroup.INSN)); + OPCODES.put("I2S", new Opcode(I2S, OpcodeGroup.INSN)); + OPCODES.put("LCMP", new Opcode(LCMP, OpcodeGroup.INSN)); + OPCODES.put("FCMPL", new Opcode(FCMPL, OpcodeGroup.INSN)); + OPCODES.put("FCMPG", new Opcode(FCMPG, OpcodeGroup.INSN)); + OPCODES.put("DCMPL", new Opcode(DCMPL, OpcodeGroup.INSN)); + OPCODES.put("DCMPG", new Opcode(DCMPG, OpcodeGroup.INSN)); + OPCODES.put("IFEQ", new Opcode(IFEQ, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IFNE", new Opcode(IFNE, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IFLT", new Opcode(IFLT, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IFGE", new Opcode(IFGE, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IFGT", new Opcode(IFGT, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IFLE", new Opcode(IFLE, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ICMPEQ", new Opcode(IF_ICMPEQ, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ICMPNE", new Opcode(IF_ICMPNE, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ICMPLT", new Opcode(IF_ICMPLT, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ICMPGE", new Opcode(IF_ICMPGE, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ICMPGT", new Opcode(IF_ICMPGT, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ICMPLE", new Opcode(IF_ICMPLE, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ACMPEQ", new Opcode(IF_ACMPEQ, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IF_ACMPNE", new Opcode(IF_ACMPNE, OpcodeGroup.INSN_JUMP)); + OPCODES.put("GOTO", new Opcode(GOTO, OpcodeGroup.INSN_JUMP)); + OPCODES.put("JSR", new Opcode(JSR, OpcodeGroup.INSN_JUMP)); + OPCODES.put("RET", new Opcode(RET, OpcodeGroup.INSN_VAR)); + // OPCODES.put( "TABLESWITCH", new Opcode( TABLESWITCH, + // "visiTableSwitchInsn")); + // OPCODES.put( "LOOKUPSWITCH", new Opcode( LOOKUPSWITCH, + // "visitLookupSwitch")); + OPCODES.put("IRETURN", new Opcode(IRETURN, OpcodeGroup.INSN)); + OPCODES.put("LRETURN", new Opcode(LRETURN, OpcodeGroup.INSN)); + OPCODES.put("FRETURN", new Opcode(FRETURN, OpcodeGroup.INSN)); + OPCODES.put("DRETURN", new Opcode(DRETURN, OpcodeGroup.INSN)); + OPCODES.put("ARETURN", new Opcode(ARETURN, OpcodeGroup.INSN)); + OPCODES.put("RETURN", new Opcode(RETURN, OpcodeGroup.INSN)); + OPCODES.put("GETSTATIC", new Opcode(GETSTATIC, OpcodeGroup.INSN_FIELD)); + OPCODES.put("PUTSTATIC", new Opcode(PUTSTATIC, OpcodeGroup.INSN_FIELD)); + OPCODES.put("GETFIELD", new Opcode(GETFIELD, OpcodeGroup.INSN_FIELD)); + OPCODES.put("PUTFIELD", new Opcode(PUTFIELD, OpcodeGroup.INSN_FIELD)); + OPCODES.put("INVOKEVIRTUAL", new Opcode(INVOKEVIRTUAL, + OpcodeGroup.INSN_METHOD)); + OPCODES.put("INVOKESPECIAL", new Opcode(INVOKESPECIAL, + OpcodeGroup.INSN_METHOD)); + OPCODES.put("INVOKESTATIC", new Opcode(INVOKESTATIC, + OpcodeGroup.INSN_METHOD)); + OPCODES.put("INVOKEINTERFACE", new Opcode(INVOKEINTERFACE, + OpcodeGroup.INSN_METHOD)); + OPCODES.put("NEW", new Opcode(NEW, OpcodeGroup.INSN_TYPE)); + OPCODES.put("NEWARRAY", new Opcode(NEWARRAY, OpcodeGroup.INSN_INT)); + OPCODES.put("ANEWARRAY", new Opcode(ANEWARRAY, OpcodeGroup.INSN_TYPE)); + OPCODES.put("ARRAYLENGTH", new Opcode(ARRAYLENGTH, OpcodeGroup.INSN)); + OPCODES.put("ATHROW", new Opcode(ATHROW, OpcodeGroup.INSN)); + OPCODES.put("CHECKCAST", new Opcode(CHECKCAST, OpcodeGroup.INSN_TYPE)); + OPCODES.put("INSTANCEOF", new Opcode(INSTANCEOF, OpcodeGroup.INSN_TYPE)); + OPCODES.put("MONITORENTER", new Opcode(MONITORENTER, OpcodeGroup.INSN)); + OPCODES.put("MONITOREXIT", new Opcode(MONITOREXIT, OpcodeGroup.INSN)); + OPCODES.put("MULTIANEWARRAY", new Opcode(MULTIANEWARRAY, + OpcodeGroup.INSN_MULTIANEWARRAY)); + OPCODES.put("IFNULL", new Opcode(IFNULL, OpcodeGroup.INSN_JUMP)); + OPCODES.put("IFNONNULL", new Opcode(IFNONNULL, OpcodeGroup.INSN_JUMP)); + } + + /** + * Constructs a new {@link ASMContentHandler ASMContentHandler} object. + * + * @param os output stream to write generated class. + * @param computeMax true if the maximum stack size and the + * maximum number of local variables must be automatically computed. + * This value is passed to {@link ClassWriter ClassWriter} instance. + */ + public ASMContentHandler(OutputStream os, boolean computeMax) { + this.os = os; + this.computeMax = computeMax; + } + + /** + * Returns the bytecode of the class that was build with underneath class + * writer. + * + * @return the bytecode of the class that was build with underneath class + * writer or null if there are no classwriter created. + */ + public byte[] toByteArray() { + return cw == null ? null : cw.toByteArray(); + } + + /** + * Process notification of the start of an XML element being reached. + * + * @param ns - The Namespace URI, or the empty string if the element has no + * Namespace URI or if Namespace processing is not being performed. + * @param localName - The local name (without prefix), or the empty string + * if Namespace processing is not being performed. + * @param qName - The qualified name (with prefix), or the empty string if + * qualified names are not available. + * @param list - The attributes attached to the element. If there are no + * attributes, it shall be an empty Attributes object. + * @exception SAXException if a parsing error is to be reported + */ + public final void startElement( + String ns, + String localName, + String qName, + Attributes list) throws SAXException + { + // the actual element name is either in localName or qName, depending + // on whether the parser is namespace aware + String name = localName; + if (name == null || name.length() < 1) { + name = qName; + } + + // Compute the current matching rule + StringBuffer sb = new StringBuffer(match); + if (match.length() > 0) { + sb.append('/'); + } + sb.append(name); + match = sb.toString(); + + // Fire "begin" events for all relevant rules + Rule r = (Rule) RULES.match(match); + if (r != null) + r.begin(name, list); + } + + /** + * Process notification of the end of an XML element being reached. + * + * @param ns - The Namespace URI, or the empty string if the element has no + * Namespace URI or if Namespace processing is not being performed. + * @param localName - The local name (without prefix), or the empty string + * if Namespace processing is not being performed. + * @param qName - The qualified XML 1.0 name (with prefix), or the empty + * string if qualified names are not available. + * + * @exception SAXException if a parsing error is to be reported + */ + public final void endElement(String ns, String localName, String qName) + throws SAXException + { + // the actual element name is either in localName or qName, depending + // on whether the parser is namespace aware + String name = localName; + if (name == null || name.length() < 1) { + name = qName; + } + + // Fire "end" events for all relevant rules in reverse order + Rule r = (Rule) RULES.match(match); + if (r != null) + r.end(name); + + // Recover the previous match expression + int slash = match.lastIndexOf('/'); + if (slash >= 0) { + match = match.substring(0, slash); + } else { + match = ""; + } + } + + /** + * Process notification of the end of a document and write generated + * bytecode into output stream. + * + * @exception SAXException if parsing or writing error is to be reported. + */ + public final void endDocument() throws SAXException { + try { + os.write(cw.toByteArray()); + } catch (IOException ex) { + throw new SAXException(ex.toString(), ex); + } + } + + /** + * Return the top object on the stack without removing it. If there are no + * objects on the stack, return null. + * + * @return the top object on the stack without removing it. + */ + final Object peek() { + return stack.size() == 0 ? null : stack.get(stack.size() - 1); + } + + /** + * Return the n'th object down the stack, where 0 is the top element and + * [getCount()-1] is the bottom element. If the specified index is out of + * range, return null. + * + * @param n Index of the desired element, where 0 is the top of the stack, 1 + * is the next element down, and so on. + * @return the n'th object down the stack. + */ + final Object peek(int n) { + return stack.size() < (n + 1) ? null : stack.get(n); + } + + /** + * Pop the top object off of the stack, and return it. If there are no + * objects on the stack, return null. + * + * @return the top object off of the stack. + */ + final Object pop() { + return stack.size() == 0 ? null : stack.remove(stack.size() - 1); + } + + /** + * Push a new object onto the top of the object stack. + * + * @param object The new object + */ + final void push(Object object) { + stack.add(object); + } + + private static final class RuleSet { + private Map rules = new HashMap(); + + private List lpatterns = new ArrayList(); + + private List rpatterns = new ArrayList(); + + public void add(String path, Object rule) { + String pattern = path; + if (path.startsWith("*/")) { + pattern = path.substring(1); + lpatterns.add(pattern); + } else if (path.endsWith("/*")) { + pattern = path.substring(0, path.length() - 1); + rpatterns.add(pattern); + } + rules.put(pattern, rule); + } + + public Object match(String path) { + if (rules.containsKey(path)) { + return rules.get(path); + } + + int n = path.lastIndexOf('/'); + for (Iterator it = lpatterns.iterator(); it.hasNext();) { + String pattern = (String) it.next(); + if (path.substring(n).endsWith(pattern)) { + return rules.get(pattern); + } + } + + for (Iterator it = rpatterns.iterator(); it.hasNext();) { + String pattern = (String) it.next(); + if (path.startsWith(pattern)) { + return rules.get(pattern); + } + } + + return null; + } + + } + + /** + * Rule + */ + protected abstract class Rule { + + public void begin(String name, Attributes attrs) { + } + + public void end(String name) { + } + + protected final Object getValue(String desc, String val) { + Object value = null; + if (val != null) { + if (desc.equals("Ljava/lang/String;")) { + value = decode(val); + } else if ("Ljava/lang/Integer;".equals(desc) + || "I".equals(desc) || "S".equals(desc) + || "B".equals(desc) || "C".equals(desc) + || desc.equals("Z")) + { + value = new Integer(val); + + } else if ("Ljava/lang/Short;".equals(desc)) { + value = new Short(val); + + } else if ("Ljava/lang/Byte;".equals(desc)) { + value = new Byte(val); + + } else if ("Ljava/lang/Character;".equals(desc)) { + value = new Character(decode(val).charAt(0)); + + } else if ("Ljava/lang/Boolean;".equals(desc)) { + value = Boolean.valueOf(val); + + // } else if ("Ljava/lang/Integer;".equals(desc) + // || desc.equals("I")) + // { + // value = new Integer(val); + // } else if ("Ljava/lang/Character;".equals(desc) + // || desc.equals("C")) + // { + // value = new Character(decode(val).charAt(0)); + // } else if ("Ljava/lang/Short;".equals(desc) || + // desc.equals("S")) + // { + // value = Short.valueOf(val); + // } else if ("Ljava/lang/Byte;".equals(desc) || + // desc.equals("B")) + // { + // value = Byte.valueOf(val); + + } else if ("Ljava/lang/Long;".equals(desc) || desc.equals("J")) + { + value = new Long(val); + } else if ("Ljava/lang/Float;".equals(desc) || desc.equals("F")) + { + value = new Float(val); + } else if ("Ljava/lang/Double;".equals(desc) + || desc.equals("D")) + { + value = new Double(val); + } else if (Type.getDescriptor(Type.class).equals(desc)) { + value = Type.getType(val); + + // } else if ("[I".equals(desc)) { + // value = new int[0]; // TODO + // } else if ("[C".equals(desc)) { + // value = new char[0]; // TODO + // } else if ("[Z".equals(desc)) { + // value = new boolean[0]; // TODO + // } else if ("[S".equals(desc)) { + // value = new short[0]; // TODO + // } else if ("[B".equals(desc)) { + // value = new byte[0]; // TODO + // } else if ("[J".equals(desc)) { + // value = new long[0]; // TODO + // } else if ("[F".equals(desc)) { + // value = new float[0]; // TODO + // } else if ("[D".equals(desc)) { + // value = new double[0]; // TODO + + } else { + throw new RuntimeException("Invalid value:" + val + + " desc:" + desc + " ctx:" + this); + } + } + return value; + } + + private final String decode(String val) { + StringBuffer sb = new StringBuffer(val.length()); + try { + int n = 0; + while (n < val.length()) { + char c = val.charAt(n); + if (c == '\\') { + n++; + c = val.charAt(n); + if (c == '\\') { + sb.append('\\'); + } else { + n++; // skip 'u' + sb.append((char) Integer.parseInt(val.substring(n, + n + 4), 16)); + n += 3; + } + } else { + sb.append(c); + } + n++; + } + + } catch (RuntimeException ex) { + System.err.println(val + "\n" + ex.toString()); + ex.printStackTrace(); + throw ex; + } + return sb.toString(); + } + + protected final Label getLabel(Object label) { + Label lbl = (Label) labels.get(label); + if (lbl == null) { + lbl = new Label(); + labels.put(label, lbl); + } + return lbl; + } + + // TODO verify move to stack + protected final MethodVisitor getCodeVisitor() { + return (MethodVisitor) peek(); + } + + protected final int getAccess(String s) { + int access = 0; + if (s.indexOf("public") != -1) + access |= Opcodes.ACC_PUBLIC; + if (s.indexOf("private") != -1) + access |= Opcodes.ACC_PRIVATE; + if (s.indexOf("protected") != -1) + access |= Opcodes.ACC_PROTECTED; + if (s.indexOf("static") != -1) + access |= Opcodes.ACC_STATIC; + if (s.indexOf("final") != -1) + access |= Opcodes.ACC_FINAL; + if (s.indexOf("super") != -1) + access |= Opcodes.ACC_SUPER; + if (s.indexOf("synchronized") != -1) + access |= Opcodes.ACC_SYNCHRONIZED; + if (s.indexOf("volatile") != -1) + access |= Opcodes.ACC_VOLATILE; + if (s.indexOf("bridge") != -1) + access |= Opcodes.ACC_BRIDGE; + if (s.indexOf("varargs") != -1) + access |= Opcodes.ACC_VARARGS; + if (s.indexOf("transient") != -1) + access |= Opcodes.ACC_TRANSIENT; + if (s.indexOf("native") != -1) + access |= Opcodes.ACC_NATIVE; + if (s.indexOf("interface") != -1) + access |= Opcodes.ACC_INTERFACE; + if (s.indexOf("abstract") != -1) + access |= Opcodes.ACC_ABSTRACT; + if (s.indexOf("strict") != -1) + access |= Opcodes.ACC_STRICT; + if (s.indexOf("synthetic") != -1) + access |= Opcodes.ACC_SYNTHETIC; + if (s.indexOf("annotation") != -1) + access |= Opcodes.ACC_ANNOTATION; + if (s.indexOf("enum") != -1) + access |= Opcodes.ACC_ENUM; + if (s.indexOf("deprecated") != -1) + access |= Opcodes.ACC_DEPRECATED; + return access; + } + + } + + /** + * ClassRule + */ + private final class ClassRule extends Rule { + + public final void begin(String name, Attributes attrs) { + int major = Integer.parseInt(attrs.getValue("major")); + int minor = Integer.parseInt(attrs.getValue("minor")); + cw = new ClassWriter(computeMax); + Map vals = new HashMap(); + vals.put("version", new Integer(minor << 16 | major)); + vals.put("access", attrs.getValue("access")); + vals.put("name", attrs.getValue("name")); + vals.put("parent", attrs.getValue("parent")); + vals.put("source", attrs.getValue("source")); + vals.put("signature", attrs.getValue("signature")); + vals.put("interfaces", new ArrayList()); + push(vals); + // values will be extracted in InterfacesRule.end(); + } + + } + + private final class SourceRule extends Rule { + + public void begin(String name, Attributes attrs) { + String file = attrs.getValue("file"); + String debug = attrs.getValue("debug"); + cw.visitSource(file, debug); + } + + } + + /** + * InterfaceRule + */ + private final class InterfaceRule extends Rule { + + public final void begin(String name, Attributes attrs) { + ((List) ((Map) peek()).get("interfaces")).add(attrs.getValue("name")); + } + + } + + /** + * InterfacesRule + */ + private final class InterfacesRule extends Rule { + + public final void end(String element) { + Map vals = (Map) pop(); + int version = ((Integer) vals.get("version")).intValue(); + int access = getAccess((String) vals.get("access")); + String name = (String) vals.get("name"); + String signature = (String) vals.get("signature"); + String parent = (String) vals.get("parent"); + List infs = (List) vals.get("interfaces"); + String[] interfaces = (String[]) infs.toArray(new String[infs.size()]); + cw.visit(version, access, name, signature, parent, interfaces); + push(cw); + } + + } + + /** + * OuterClassRule + */ + private final class OuterClassRule extends Rule { + + public final void begin(String element, Attributes attrs) { + String owner = attrs.getValue("owner"); + String name = attrs.getValue("name"); + String desc = attrs.getValue("desc"); + cw.visitOuterClass(owner, name, desc); + } + + } + + /** + * InnerClassRule + */ + private final class InnerClassRule extends Rule { + + public final void begin(String element, Attributes attrs) { + int access = getAccess(attrs.getValue("access")); + String name = attrs.getValue("name"); + String outerName = attrs.getValue("outerName"); + String innerName = attrs.getValue("innerName"); + cw.visitInnerClass(name, outerName, innerName, access); + } + + } + + /** + * FieldRule + */ + private final class FieldRule extends Rule { + + public final void begin(String element, Attributes attrs) { + int access = getAccess(attrs.getValue("access")); + String name = attrs.getValue("name"); + String signature = attrs.getValue("signature"); + String desc = attrs.getValue("desc"); + Object value = getValue(desc, attrs.getValue("value")); + push(cw.visitField(access, name, desc, signature, value)); + } + + public void end(String name) { + ((FieldVisitor) pop()).visitEnd(); + } + + } + + /** + * MethodRule + */ + private final class MethodRule extends Rule { + + public final void begin(String name, Attributes attrs) { + labels = new HashMap(); + Map vals = new HashMap(); + vals.put("access", attrs.getValue("access")); + vals.put("name", attrs.getValue("name")); + vals.put("desc", attrs.getValue("desc")); + vals.put("signature", attrs.getValue("signature")); + vals.put("exceptions", new ArrayList()); + push(vals); + // values will be extracted in ExceptionsRule.end(); + } + + public final void end(String name) { + ((MethodVisitor) pop()).visitEnd(); + labels = null; + } + + } + + /** + * ExceptionRule + */ + private final class ExceptionRule extends Rule { + + public final void begin(String name, Attributes attrs) { + ((List) ((Map) peek()).get("exceptions")).add(attrs.getValue("name")); + } + + } + + /** + * ExceptionsRule + */ + private final class ExceptionsRule extends Rule { + + public final void end(String element) { + Map vals = (Map) pop(); + int access = getAccess((String) vals.get("access")); + String name = (String) vals.get("name"); + String desc = (String) vals.get("desc"); + String signature = (String) vals.get("signature"); + List excs = (List) vals.get("exceptions"); + String[] exceptions = (String[]) excs.toArray(new String[excs.size()]); + + push(cw.visitMethod(access, name, desc, signature, exceptions)); + } + + } + + /** + * TableSwitchRule + */ + private class TableSwitchRule extends Rule { + + public final void begin(String name, Attributes attrs) { + Map vals = new HashMap(); + vals.put("min", attrs.getValue("min")); + vals.put("max", attrs.getValue("max")); + vals.put("dflt", attrs.getValue("dflt")); + vals.put("labels", new ArrayList()); + push(vals); + } + + public final void end(String name) { + Map vals = (Map) pop(); + int min = Integer.parseInt((String) vals.get("min")); + int max = Integer.parseInt((String) vals.get("max")); + Label dflt = getLabel(vals.get("dflt")); + List lbls = (List) vals.get("labels"); + Label[] labels = (Label[]) lbls.toArray(new Label[lbls.size()]); + getCodeVisitor().visitTableSwitchInsn(min, max, dflt, labels); + } + + } + + /** + * TableSwitchLabelRule + */ + private final class TableSwitchLabelRule extends Rule { + + public final void begin(String name, Attributes attrs) { + ((List) ((Map) peek()).get("labels")).add(getLabel(attrs.getValue("name"))); + } + + } + + /** + * LookupSwitchRule + */ + private final class LookupSwitchRule extends Rule { + + public final void begin(String name, Attributes attrs) { + Map vals = new HashMap(); + vals.put("dflt", attrs.getValue("dflt")); + vals.put("labels", new ArrayList()); + vals.put("keys", new ArrayList()); + push(vals); + } + + public final void end(String name) { + Map vals = (Map) pop(); + Label dflt = getLabel(vals.get("dflt")); + List keyList = (List) vals.get("keys"); + List lbls = (List) vals.get("labels"); + Label[] labels = (Label[]) lbls.toArray(new Label[lbls.size()]); + int[] keys = new int[keyList.size()]; + for (int i = 0; i < keys.length; i++) { + keys[i] = Integer.parseInt((String) keyList.get(i)); + } + getCodeVisitor().visitLookupSwitchInsn(dflt, keys, labels); + } + + } + + /** + * LookupSwitchLabelRule + */ + private final class LookupSwitchLabelRule extends Rule { + + public final void begin(String name, Attributes attrs) { + Map vals = (Map) peek(); + ((List) vals.get("labels")).add(getLabel(attrs.getValue("name"))); + ((List) vals.get("keys")).add(attrs.getValue("key")); + } + + } + + /** + * LabelRule + */ + private final class LabelRule extends Rule { + + public final void begin(String name, Attributes attrs) { + getCodeVisitor().visitLabel(getLabel(attrs.getValue("name"))); + } + + } + + /** + * TryCatchRule + */ + private final class TryCatchRule extends Rule { + + public final void begin(String name, Attributes attrs) { + Label start = getLabel(attrs.getValue("start")); + Label end = getLabel(attrs.getValue("end")); + Label handler = getLabel(attrs.getValue("handler")); + String type = attrs.getValue("type"); + getCodeVisitor().visitTryCatchBlock(start, end, handler, type); + } + + } + + /** + * LineNumberRule + */ + private final class LineNumberRule extends Rule { + + public final void begin(String name, Attributes attrs) { + int line = Integer.parseInt(attrs.getValue("line")); + Label start = getLabel(attrs.getValue("start")); + getCodeVisitor().visitLineNumber(line, start); + } + + } + + /** + * LocalVarRule + */ + private final class LocalVarRule extends Rule { + + public final void begin(String element, Attributes attrs) { + String name = attrs.getValue("name"); + String desc = attrs.getValue("desc"); + String signature = attrs.getValue("signature"); + Label start = getLabel(attrs.getValue("start")); + Label end = getLabel(attrs.getValue("end")); + int var = Integer.parseInt(attrs.getValue("var")); + getCodeVisitor().visitLocalVariable(name, + desc, + signature, + start, + end, + var); + } + + } + + /** + * OpcodesRule + */ + private final class OpcodesRule extends Rule { + + // public boolean match( String match, String element) { + // return match.startsWith( path) && OPCODES.containsKey( element); + // } + + public final void begin(String element, Attributes attrs) { + Opcode o = ((Opcode) OPCODES.get(element)); + if (o == null) + return; + + switch (o.type) { + case OpcodeGroup.INSN: + getCodeVisitor().visitInsn(o.opcode); + break; + + case OpcodeGroup.INSN_FIELD: + getCodeVisitor().visitFieldInsn(o.opcode, + attrs.getValue("owner"), + attrs.getValue("name"), + attrs.getValue("desc")); + break; + + case OpcodeGroup.INSN_INT: + getCodeVisitor().visitIntInsn(o.opcode, + Integer.parseInt(attrs.getValue("value"))); + break; + + case OpcodeGroup.INSN_JUMP: + getCodeVisitor().visitJumpInsn(o.opcode, + getLabel(attrs.getValue("label"))); + break; + + case OpcodeGroup.INSN_METHOD: + getCodeVisitor().visitMethodInsn(o.opcode, + attrs.getValue("owner"), + attrs.getValue("name"), + attrs.getValue("desc")); + break; + + case OpcodeGroup.INSN_TYPE: + getCodeVisitor().visitTypeInsn(o.opcode, + attrs.getValue("desc")); + break; + + case OpcodeGroup.INSN_VAR: + getCodeVisitor().visitVarInsn(o.opcode, + Integer.parseInt(attrs.getValue("var"))); + break; + + case OpcodeGroup.INSN_IINC: + getCodeVisitor().visitIincInsn(Integer.parseInt(attrs.getValue("var")), + Integer.parseInt(attrs.getValue("inc"))); + break; + + case OpcodeGroup.INSN_LDC: + getCodeVisitor().visitLdcInsn(getValue(attrs.getValue("desc"), + attrs.getValue("cst"))); + break; + + case OpcodeGroup.INSN_MULTIANEWARRAY: + getCodeVisitor().visitMultiANewArrayInsn(attrs.getValue("desc"), + Integer.parseInt(attrs.getValue("dims"))); + break; + + default: + throw new RuntimeException("Invalid element: " + element + + " at " + match); + + } + } + } + + /** + * MaxRule + */ + private final class MaxRule extends Rule { + + public final void begin(String element, Attributes attrs) { + int maxStack = Integer.parseInt(attrs.getValue("maxStack")); + int maxLocals = Integer.parseInt(attrs.getValue("maxLocals")); + getCodeVisitor().visitMaxs(maxStack, maxLocals); + } + + } + + private final class AnnotationRule extends Rule { + + public void begin(String name, Attributes attrs) { + String desc = attrs.getValue("desc"); + boolean visible = Boolean.valueOf(attrs.getValue("visible")) + .booleanValue(); + + Object v = peek(); + if (v instanceof ClassVisitor) { + push(((ClassVisitor) v).visitAnnotation(desc, visible)); + } else if (v instanceof FieldVisitor) { + push(((FieldVisitor) v).visitAnnotation(desc, visible)); + } else if (v instanceof MethodVisitor) { + push(((MethodVisitor) v).visitAnnotation(desc, visible)); + } + } + + public void end(String name) { + ((AnnotationVisitor) pop()).visitEnd(); + } + + } + + private final class AnnotationParameterRule extends Rule { + + public void begin(String name, Attributes attrs) { + int parameter = Integer.parseInt(attrs.getValue("parameter")); + String desc = attrs.getValue("desc"); + boolean visible = Boolean.valueOf(attrs.getValue("visible")) + .booleanValue(); + + push(((MethodVisitor) peek()).visitParameterAnnotation(parameter, + desc, + visible)); + } + + public void end(String name) { + ((AnnotationVisitor) pop()).visitEnd(); + } + + } + + private final class AnnotationValueRule extends Rule { + + public void begin(String nm, Attributes attrs) { + String name = attrs.getValue("name"); + String desc = attrs.getValue("desc"); + String value = attrs.getValue("value"); + ((AnnotationVisitor) peek()).visit(name, getValue(desc, value)); + } + + } + + private final class AnnotationValueEnumRule extends Rule { + + public void begin(String nm, Attributes attrs) { + String name = attrs.getValue("name"); + String desc = attrs.getValue("desc"); + String value = attrs.getValue("value"); + ((AnnotationVisitor) peek()).visitEnum(name, desc, value); + } + + } + + private final class AnnotationValueAnnotationRule extends Rule { + + public void begin(String nm, Attributes attrs) { + String name = attrs.getValue("name"); + String desc = attrs.getValue("desc"); + push(((AnnotationVisitor) peek()).visitAnnotation(name, desc)); + } + + public void end(String name) { + ((AnnotationVisitor) pop()).visitEnd(); + } + + } + + private final class AnnotationValueArrayRule extends Rule { + + public void begin(String nm, Attributes attrs) { + String name = attrs.getValue("name"); + push(((AnnotationVisitor) peek()).visitArray(name)); + } + + public void end(String name) { + ((AnnotationVisitor) pop()).visitEnd(); + } + + } + + private final class AnnotationDefaultRule extends Rule { + + public void begin(String nm, Attributes attrs) { + push(((MethodVisitor) peek()).visitAnnotationDefault()); + } + + public void end(String name) { + ((AnnotationVisitor) pop()).visitEnd(); + } + + } + + /** + * Opcode + */ + private final static class Opcode { + public int opcode; + + public int type; + + public Opcode(int opcode, int type) { + this.opcode = opcode; + this.type = type; + } + + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java new file mode 100644 index 00000000000..2baeb0f36fe --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/Processor.java @@ -0,0 +1,1048 @@ +/*** + * ASM XML Adapter + * Copyright (c) 2004, Eugene Kuleshov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.xml; + +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; +import java.util.zip.ZipOutputStream; + +import javax.xml.transform.Source; +import javax.xml.transform.Templates; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.sax.SAXTransformerFactory; +import javax.xml.transform.sax.TransformerHandler; +import javax.xml.transform.stream.StreamSource; + +import org.objectweb.asm.ClassReader; + +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.LexicalHandler; +import org.xml.sax.helpers.AttributesImpl; +import org.xml.sax.helpers.DefaultHandler; +import org.xml.sax.helpers.XMLReaderFactory; + +/** + * Processor is a command line tool that can be used for bytecode waving + * directed by XSL transformation.

      In order to use a concrete XSLT engine, + * system property javax.xml.transform.TransformerFactory must be set + * to one of the following values. + * + *

      + * + * + * + * + * + * + * + * + * + * + *
      jd.xsltjd.xml.xslt.trax.TransformerFactoryImpl
      Saxon net.sf.saxon.TransformerFactoryImpl
      Caucho com.caucho.xsl.Xsl
      Xalan interpeter org.apache.xalan.processor.TransformerFactory
      Xalan xsltc org.apache.xalan.xsltc.trax.TransformerFactoryImpl
      + * + * @author Eugene Kuleshov + */ +public class Processor { + + public static final int BYTECODE = 1; + + public static final int MULTI_XML = 2; + + public static final int SINGLE_XML = 3; + + private static final String SINGLE_XML_NAME = "classes.xml"; + + private int inRepresentation; + + private int outRepresentation; + + private InputStream input = null; + + private OutputStream output = null; + + private Source xslt = null; + + private boolean computeMax; + + private int n = 0; + + public Processor( + int inRepresenation, + int outRepresentation, + InputStream input, + OutputStream output, + Source xslt) + { + this.inRepresentation = inRepresenation; + this.outRepresentation = outRepresentation; + this.input = input; + this.output = output; + this.xslt = xslt; + this.computeMax = true; + } + + public int process() throws TransformerException, IOException, SAXException + { + ZipInputStream zis = new ZipInputStream(input); + final ZipOutputStream zos = new ZipOutputStream(output); + final OutputStreamWriter osw = new OutputStreamWriter(zos); + + Thread.currentThread() + .setContextClassLoader(getClass().getClassLoader()); + + TransformerFactory tf = TransformerFactory.newInstance(); + if (!tf.getFeature(SAXSource.FEATURE) + || !tf.getFeature(SAXResult.FEATURE)) + return 0; + + SAXTransformerFactory saxtf = (SAXTransformerFactory) tf; + Templates templates = null; + if (xslt != null) { + templates = saxtf.newTemplates(xslt); + } + + // configuring outHandlerFactory + // /////////////////////////////////////////////////////// + + EntryElement entryElement = getEntryElement(zos); + + ContentHandler outDocHandler = null; + switch (outRepresentation) { + case BYTECODE: + outDocHandler = new OutputSlicingHandler(new ASMContentHandlerFactory(zos, + computeMax), + entryElement, + false); + break; + + case MULTI_XML: + outDocHandler = new OutputSlicingHandler(new SAXWriterFactory(osw, + true), + entryElement, + true); + break; + + case SINGLE_XML: + ZipEntry outputEntry = new ZipEntry(SINGLE_XML_NAME); + zos.putNextEntry(outputEntry); + outDocHandler = new SAXWriter(osw, false); + break; + + } + + // configuring inputDocHandlerFactory + // ///////////////////////////////////////////////// + ContentHandler inDocHandler = null; + if (templates == null) { + inDocHandler = outDocHandler; + } else { + inDocHandler = new InputSlicingHandler("class", + outDocHandler, + new TransformerHandlerFactory(saxtf, + templates, + outDocHandler)); + } + ContentHandlerFactory inDocHandlerFactory = new SubdocumentHandlerFactory(inDocHandler); + + if (inDocHandler != null && inRepresentation != SINGLE_XML) { + inDocHandler.startDocument(); + inDocHandler.startElement("", + "classes", + "classes", + new AttributesImpl()); + } + + int i = 0; + ZipEntry ze = null; + while ((ze = zis.getNextEntry()) != null) { + update(ze.getName(), n++); + if (isClassEntry(ze)) { + processEntry(zis, ze, inDocHandlerFactory); + } else { + OutputStream os = entryElement.openEntry(getName(ze)); + copyEntry(zis, os); + entryElement.closeEntry(); + } + + i++; + } + + if (inDocHandler != null && inRepresentation != SINGLE_XML) { + inDocHandler.endElement("", "classes", "classes"); + inDocHandler.endDocument(); + } + + if (outRepresentation == SINGLE_XML) { + zos.closeEntry(); + } + zos.flush(); + zos.close(); + + return i; + } + + private void copyEntry(InputStream is, OutputStream os) throws IOException { + if (outRepresentation == SINGLE_XML) + return; + + byte[] buff = new byte[2048]; + int i; + while ((i = is.read(buff)) != -1) { + os.write(buff, 0, i); + } + } + + private boolean isClassEntry(ZipEntry ze) { + String name = ze.getName(); + return inRepresentation == SINGLE_XML && name.equals(SINGLE_XML_NAME) + || name.endsWith(".class") || name.endsWith(".class.xml"); + } + + private void processEntry( + final ZipInputStream zis, + ZipEntry ze, + ContentHandlerFactory handlerFactory) + { + ContentHandler handler = handlerFactory.createContentHandler(); + try { + + // if (CODE2ASM.equals(command)) { // read bytecode and process it + // // with TraceClassVisitor + // ClassReader cr = new ClassReader(readEntry(zis, ze)); + // cr.accept(new TraceClassVisitor(null, new PrintWriter(os)), + // false); + // } + + boolean singleInputDocument = inRepresentation == SINGLE_XML; + if (inRepresentation == BYTECODE) { // read bytecode and process it + // with handler + ClassReader cr = new ClassReader(readEntry(zis, ze)); + cr.accept(new SAXClassAdapter(handler, singleInputDocument), + false); + + } else { // read XML and process it with handler + XMLReader reader = XMLReaderFactory.createXMLReader(); + reader.setContentHandler(handler); + reader.parse(new InputSource(singleInputDocument + ? (InputStream) new ProtectedInputStream(zis) + : new ByteArrayInputStream(readEntry(zis, ze)))); + + } + } catch (Exception ex) { + update(ze.getName(), 0); + update(ex, 0); + } + } + + private EntryElement getEntryElement(ZipOutputStream zos) { + if (outRepresentation == SINGLE_XML) { + return new SingleDocElement(zos); + } + return new ZipEntryElement(zos); + } + + // private ContentHandlerFactory getHandlerFactory( + // OutputStream os, + // SAXTransformerFactory saxtf, + // Templates templates) + // { + // ContentHandlerFactory factory = null; + // if (templates == null) { + // if (outputRepresentation == BYTECODE) { // factory used to write + // // bytecode + // factory = new ASMContentHandlerFactory(os, computeMax); + // } else { // factory used to write XML + // factory = new SAXWriterFactory(os, true); + // } + // } else { + // if (outputRepresentation == BYTECODE) { // factory used to transform + // // and then write bytecode + // factory = new ASMTransformerHandlerFactory(saxtf, + // templates, + // os, + // computeMax); + // } else { // factory used to transformand then write XML + // factory = new TransformerHandlerFactory(saxtf, + // templates, + // os, + // outputRepresentation == SINGLE_XML); + // } + // } + // return factory; + // } + + private String getName(ZipEntry ze) { + String name = ze.getName(); + if (isClassEntry(ze)) { + if (inRepresentation != BYTECODE && outRepresentation == BYTECODE) { + name = name.substring(0, name.length() - 4); // .class.xml to + // .class + } else if (inRepresentation == BYTECODE + && outRepresentation != BYTECODE) + { + name = name.concat(".xml"); // .class to .class.xml + } + // } else if( CODE2ASM.equals( command)) { + // name = name.substring( 0, name.length()-6).concat( ".asm"); + } + return name; + } + + private byte[] readEntry(ZipInputStream zis, ZipEntry ze) + throws IOException + { + long size = ze.getSize(); + if (size > -1) { + byte[] buff = new byte[(int) size]; + int k = 0; + int n; + while(( n = zis.read(buff, k, buff.length-k)) > 0) { + k += n; + } + return buff; + } + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + byte[] buff = new byte[4096]; + int i; + while ((i = zis.read(buff)) != -1) { + bos.write(buff, 0, i); + } + return bos.toByteArray(); + } + + /* + * (non-Javadoc) + * + * @see java.util.Observer#update(java.util.Observable, java.lang.Object) + */ + protected void update(Object arg, int n) { + if (arg instanceof Throwable) { + ((Throwable) arg).printStackTrace(); + } else { + if ((n % 100) == 0) { + System.err.println(n + " " + arg); + } + } + } + + public static void main(String[] args) throws Exception { + if (args.length < 2) { + showUsage(); + return; + } + + int inRepresentation = getRepresentation(args[0]); + int outRepresentation = getRepresentation(args[1]); + + InputStream is = System.in; + OutputStream os = new BufferedOutputStream(System.out); + + Source xslt = null; + // boolean computeMax = true; + + for (int i = 2; i < args.length; i++) { + if ("-in".equals(args[i])) { + is = new FileInputStream(args[++i]); + + } else if ("-out".equals(args[i])) { + os = new BufferedOutputStream(new FileOutputStream(args[++i])); + + } else if ("-xslt".equals(args[i])) { + xslt = new StreamSource(new FileInputStream(args[++i])); + + // } else if( "-computemax".equals( args[ i].toLowerCase())) { + // computeMax = true; + + } else { + showUsage(); + return; + + } + } + + if (inRepresentation == 0 || outRepresentation == 0) { + showUsage(); + return; + } + + Processor m = new Processor(inRepresentation, + outRepresentation, + is, + os, + xslt); + + long l1 = System.currentTimeMillis(); + int n = m.process(); + long l2 = System.currentTimeMillis(); + System.err.println(n); + System.err.println("" + (l2 - l1) + "ms " + (1000f * n / (l2 - l1)) + + " resources/sec"); + } + + private static int getRepresentation(String s) { + if ("code".equals(s)) { + return BYTECODE; + } else if ("xml".equals(s)) { + return MULTI_XML; + } else if ("singlexml".equals(s)) { + return SINGLE_XML; + } + return 0; + } + + private static void showUsage() { + System.err.println("Usage: Main [-in ] [-out ] [-xslt ]"); + System.err.println(" when -in or -out is omitted sysin and sysout would be used"); + System.err.println(" and - code | xml | singlexml"); + } + + /** + * IputStream wrapper class used to protect input streams from being closed + * by some stupid XML parsers. + */ + private static final class ProtectedInputStream extends InputStream { + private final InputStream is; + + private ProtectedInputStream(InputStream is) { + super(); + this.is = is; + } + + public final void close() throws IOException { + } + + public final int read() throws IOException { + return is.read(); + } + + public final int read(byte[] b, int off, int len) throws IOException { + return is.read(b, off, len); + } + + public final int available() throws IOException { + return is.available(); + } + } + + /** + * A {@link ContentHandlerFactory ContentHandlerFactory} is used to create + * {@link org.xml.sax.ContentHandler ContentHandler} instances for concrete + * context. + */ + private static interface ContentHandlerFactory { + + /** + * Creates an instance of the content handler. + * + * @return content handler + */ + ContentHandler createContentHandler(); + + } + + /** + * SAXWriterFactory + */ + private static final class SAXWriterFactory implements + ContentHandlerFactory + { + private Writer w; + + private boolean optimizeEmptyElements; + + public SAXWriterFactory(Writer w, boolean optimizeEmptyElements) { + this.w = w; + this.optimizeEmptyElements = optimizeEmptyElements; + } + + public final ContentHandler createContentHandler() { + return new SAXWriter(w, optimizeEmptyElements); + } + + } + + /** + * ASMContentHandlerFactory + */ + private static final class ASMContentHandlerFactory implements + ContentHandlerFactory + { + private OutputStream os; + + private boolean computeMax; + + public ASMContentHandlerFactory(OutputStream os, boolean computeMax) { + this.os = os; + this.computeMax = computeMax; + } + + public final ContentHandler createContentHandler() { + return new ASMContentHandler(os, computeMax); + } + + } + + /** + * TransformerHandlerFactory + */ + private static final class TransformerHandlerFactory implements + ContentHandlerFactory + { + private SAXTransformerFactory saxtf; + + private Templates templates; + + private ContentHandler outputHandler; + + public TransformerHandlerFactory( + SAXTransformerFactory saxtf, + Templates templates, + ContentHandler outputHandler) + { + this.saxtf = saxtf; + this.templates = templates; + this.outputHandler = outputHandler; + } + + public final ContentHandler createContentHandler() { + try { + TransformerHandler handler = saxtf.newTransformerHandler(templates); + handler.setResult(new SAXResult(outputHandler)); + return handler; + } catch (TransformerConfigurationException ex) { + throw new RuntimeException(ex.toString()); + } + } + } + + /** + * SubdocumentHandlerFactory + */ + private final static class SubdocumentHandlerFactory implements + ContentHandlerFactory + { + private ContentHandler subdocumentHandler; + + public SubdocumentHandlerFactory(ContentHandler subdocumentHandler) { + this.subdocumentHandler = subdocumentHandler; + } + + public final ContentHandler createContentHandler() { + return subdocumentHandler; + } + + } + + /** + * A {@link org.xml.sax.ContentHandler ContentHandler} and + * {@link org.xml.sax.ext.LexicalHandler LexicalHandler} that serializes XML + * from SAX 2.0 events into {@link java.io.Writer Writer}. + * + *
      This implementation does not support namespaces, entity + * definitions (uncluding DTD), CDATA and text elements.
      + */ + private final static class SAXWriter extends DefaultHandler implements + LexicalHandler + { + private static final char[] OFF = " ".toCharArray(); + + private Writer w; + + private boolean optimizeEmptyElements; + + private boolean openElement = false; + + private int ident = 0; + + /** + * Creates SAXWriter. + * + * @param w writer + * @param optimizeEmptyElements if set to true, short + * XML syntax will be used for empty elements + */ + public SAXWriter(Writer w, boolean optimizeEmptyElements) { + this.w = w; + this.optimizeEmptyElements = optimizeEmptyElements; + } + + public final void startElement( + String ns, + String localName, + String qName, + Attributes atts) throws SAXException + { + try { + closeElement(); + + writeIdent(); + w.write("<".concat(qName)); + if (atts != null && atts.getLength() > 0) + writeAttributes(atts); + + if (!optimizeEmptyElements) { + w.write(">\n"); + } else { + openElement = true; + } + ident += 2; + + } catch (IOException ex) { + throw new SAXException(ex); + + } + } + + public final void endElement(String ns, String localName, String qName) + throws SAXException + { + ident -= 2; + try { + if (openElement) { + w.write("/>\n"); + openElement = false; + } else { + writeIdent(); + w.write("\n"); + } + + } catch (IOException ex) { + throw new SAXException(ex); + + } + } + + public final void endDocument() throws SAXException { + try { + w.flush(); + + } catch (IOException ex) { + throw new SAXException(ex); + + } + } + + public final void comment(char[] ch, int off, int len) + throws SAXException + { + try { + closeElement(); + + writeIdent(); + w.write("\n"); + + } catch (IOException ex) { + throw new SAXException(ex); + + } + } + + public final void startDTD(String arg0, String arg1, String arg2) + throws SAXException + { + } + + public final void endDTD() throws SAXException { + } + + public final void startEntity(String arg0) throws SAXException { + } + + public final void endEntity(String arg0) throws SAXException { + } + + public final void startCDATA() throws SAXException { + } + + public final void endCDATA() throws SAXException { + } + + private final void writeAttributes(Attributes atts) throws IOException { + StringBuffer sb = new StringBuffer(); + int len = atts.getLength(); + for (int i = 0; i < len; i++) { + sb.append(" ") + .append(atts.getLocalName(i)) + .append("=\"") + .append(esc(atts.getValue(i))) + .append("\""); + } + w.write(sb.toString()); + } + + /** + * Encode string with escaping. + * + * @param str string to encode. + * @return encoded string + */ + private final String esc(String str) { + StringBuffer sb = new StringBuffer(str.length()); + for (int i = 0; i < str.length(); i++) { + char ch = str.charAt(i); + switch (ch) { + case '&': + sb.append("&"); + break; + + case '<': + sb.append("<"); + break; + + case '>': + sb.append(">"); + break; + + case '\"': + sb.append("""); + break; + + default: + if (ch > 0x7f) { + sb.append("&#") + .append(Integer.toString(ch)) + .append(';'); + } else { + sb.append(ch); + } + + } + } + return sb.toString(); + } + + private final void writeIdent() throws IOException { + int n = ident; + while (n > 0) { + if (n > OFF.length) { + w.write(OFF); + n -= OFF.length; + } else { + w.write(OFF, 0, n); + n = 0; + } + } + } + + private final void closeElement() throws IOException { + if (openElement) { + w.write(">\n"); + } + openElement = false; + } + + } + + /** + * A {@link org.xml.sax.ContentHandler ContentHandler} that splits XML + * documents into smaller chunks. Each chunk is processed by the nested + * {@link org.xml.sax.ContentHandler ContentHandler} obtained from + * {@link java.net.ContentHandlerFactory ContentHandlerFactory}. This is + * useful for running XSLT engine against large XML document that will + * hardly fit into the memory all together.

      TODO use complete path for + * subdocumentRoot + */ + private final static class InputSlicingHandler extends DefaultHandler { + private String subdocumentRoot; + + private ContentHandler rootHandler; + + private ContentHandlerFactory subdocumentHandlerFactory; + + private boolean subdocument = false; + + private ContentHandler subdocumentHandler; + + /** + * Constructs a new {@link InputSlicingHandler SubdocumentHandler} + * object. + * + * @param subdocumentRoot name/path to the root element of the + * subdocument + * @param rootHandler content handler for the entire document + * (subdocument envelope). + * @param subdocumentHandlerFactory a + * {@link ContentHandlerFactory ContentHandlerFactory} used to + * create {@link ContentHandler ContentHandler} instances for + * subdocuments. + */ + public InputSlicingHandler( + String subdocumentRoot, + ContentHandler rootHandler, + ContentHandlerFactory subdocumentHandlerFactory) + { + this.subdocumentRoot = subdocumentRoot; + this.rootHandler = rootHandler; + this.subdocumentHandlerFactory = subdocumentHandlerFactory; + } + + public final void startElement( + String namespaceURI, + String localName, + String qName, + Attributes list) throws SAXException + { + if (subdocument) { + subdocumentHandler.startElement(namespaceURI, + localName, + qName, + list); + } else if (localName.equals(subdocumentRoot)) { + subdocumentHandler = subdocumentHandlerFactory.createContentHandler(); + subdocumentHandler.startDocument(); + subdocumentHandler.startElement(namespaceURI, + localName, + qName, + list); + subdocument = true; + } else if (rootHandler != null) { + rootHandler.startElement(namespaceURI, localName, qName, list); + } + } + + public final void endElement( + String namespaceURI, + String localName, + String qName) throws SAXException + { + if (subdocument) { + subdocumentHandler.endElement(namespaceURI, localName, qName); + if (localName.equals(subdocumentRoot)) { + subdocumentHandler.endDocument(); + subdocument = false; + } + } else if (rootHandler != null) { + rootHandler.endElement(namespaceURI, localName, qName); + } + } + + public final void startDocument() throws SAXException { + if (rootHandler != null) { + rootHandler.startDocument(); + } + } + + public final void endDocument() throws SAXException { + if (rootHandler != null) { + rootHandler.endDocument(); + + } + } + + public final void characters(char[] buff, int offset, int size) + throws SAXException + { + if (subdocument) { + subdocumentHandler.characters(buff, offset, size); + } else if (rootHandler != null) { + rootHandler.characters(buff, offset, size); + } + } + + } + + /** + * A {@link org.xml.sax.ContentHandler ContentHandler} that splits XML + * documents into smaller chunks. Each chunk is processed by the nested + * {@link org.xml.sax.ContentHandler ContentHandler} obtained from + * {@link java.net.ContentHandlerFactory ContentHandlerFactory}. This is + * useful for running XSLT engine against large XML document that will + * hardly fit into the memory all together.

      TODO use complete path for + * subdocumentRoot + */ + private static final class OutputSlicingHandler extends DefaultHandler { + private String subdocumentRoot; + + private ContentHandlerFactory subdocumentHandlerFactory; + + private EntryElement entryElement; + + private boolean isXml; + + private boolean subdocument = false; + + private ContentHandler subdocumentHandler; + + /** + * Constructs a new {@link OutputSlicingHandler SubdocumentHandler} + * object. + * + * @param subdocumentHandlerFactory a + * {@link ContentHandlerFactory ContentHandlerFactory} used to + * create {@link ContentHandler ContentHandler} instances for + * subdocuments. + * @param entryElement TODO. + * @param isXml TODO. + */ + public OutputSlicingHandler( + ContentHandlerFactory subdocumentHandlerFactory, + EntryElement entryElement, + boolean isXml) + { + this.subdocumentRoot = "class"; + this.subdocumentHandlerFactory = subdocumentHandlerFactory; + this.entryElement = entryElement; + this.isXml = isXml; + } + + public final void startElement( + String namespaceURI, + String localName, + String qName, + Attributes list) throws SAXException + { + if (subdocument) { + subdocumentHandler.startElement(namespaceURI, + localName, + qName, + list); + } else if (localName.equals(subdocumentRoot)) { + String name = list.getValue("name"); + if (name == null || name.length() == 0) + throw new SAXException("Class element without name attribute."); + try { + entryElement.openEntry(isXml + ? name.concat(".class.xml") + : name.concat(".class")); + } catch (IOException ex) { + throw new SAXException(ex.toString(), ex); + } + subdocumentHandler = subdocumentHandlerFactory.createContentHandler(); + subdocumentHandler.startDocument(); + subdocumentHandler.startElement(namespaceURI, + localName, + qName, + list); + subdocument = true; + } + } + + public final void endElement( + String namespaceURI, + String localName, + String qName) throws SAXException + { + if (subdocument) { + subdocumentHandler.endElement(namespaceURI, localName, qName); + if (localName.equals(subdocumentRoot)) { + subdocumentHandler.endDocument(); + subdocument = false; + try { + entryElement.closeEntry(); + } catch (IOException ex) { + throw new SAXException(ex.toString(), ex); + } + } + } + } + + public final void startDocument() throws SAXException { + } + + public final void endDocument() throws SAXException { + } + + public final void characters(char[] buff, int offset, int size) + throws SAXException + { + if (subdocument) { + subdocumentHandler.characters(buff, offset, size); + } + } + + } + + private static interface EntryElement { + + OutputStream openEntry(String name) throws IOException; + + void closeEntry() throws IOException; + + } + + private static final class SingleDocElement implements EntryElement { + private OutputStream os; + + public SingleDocElement(OutputStream os) { + this.os = os; + } + + public OutputStream openEntry(String name) throws IOException { + return os; + } + + public void closeEntry() throws IOException { + os.flush(); + } + + } + + private static final class ZipEntryElement implements EntryElement { + private ZipOutputStream zos; + + public ZipEntryElement(ZipOutputStream zos) { + this.zos = zos; + } + + public OutputStream openEntry(String name) throws IOException { + ZipEntry entry = new ZipEntry(name); + zos.putNextEntry(entry); + return zos; + } + + public void closeEntry() throws IOException { + zos.flush(); + zos.closeEntry(); + } + + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java new file mode 100644 index 00000000000..c8f6ecb994b --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java @@ -0,0 +1,91 @@ +/*** + * ASM XML Adapter + * Copyright (c) 2004, Eugene Kuleshov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.xml; + +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXException; + +/** + * SAXAdapter + * + * @author Eugene Kuleshov + */ +public abstract class SAXAdapter { + private final ContentHandler h; + + public SAXAdapter(ContentHandler h) { + this.h = h; + } + + protected ContentHandler getContentHandler() { + return h; + } + + protected final void addEnd(String name) { + try { + h.endElement("", name, name); + } catch (SAXException ex) { + throw new RuntimeException(ex.toString()); + } + } + + protected final void addStart(String name, Attributes attrs) { + try { + h.startElement("", name, name, attrs); + } catch (SAXException ex) { + throw new RuntimeException(ex.toString()); + } + } + + protected final void addElement(String name, Attributes attrs) { + addStart(name, attrs); + addEnd(name); + } + + protected void addDocumentStart() { + try { + h.startDocument(); + } catch (SAXException ex) { + throw new RuntimeException(ex.getException()); + } + } + + protected void addDocumentEnd() { + try { + h.endDocument(); + } catch (SAXException ex) { + // ex.getException().printStackTrace(); + // ex.printStackTrace(); + throw new RuntimeException(ex.toString()); + } + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java new file mode 100644 index 00000000000..e7382414b2c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java @@ -0,0 +1,191 @@ +/*** + * ASM XML Adapter + * Copyright (c) 2004, Eugene Kuleshov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.xml; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Type; +import org.xml.sax.ContentHandler; +import org.xml.sax.helpers.AttributesImpl; + +/** + * SAXAnnotationAdapter + * + * @author Eugene Kuleshov + */ +public class SAXAnnotationAdapter extends SAXAdapter implements + AnnotationVisitor +{ + private final String elementName; + + public SAXAnnotationAdapter( + ContentHandler h, + String elementName, + int visible, + String name, + String desc) + { + this(h, elementName, visible, desc, name, -1); + } + + public SAXAnnotationAdapter( + ContentHandler h, + String elementName, + int visible, + int parameter, + String desc) + { + this(h, elementName, visible, desc, null, parameter); + } + + private SAXAnnotationAdapter( + ContentHandler h, + String elementName, + int visible, + String desc, + String name, + int parameter) + { + super(h); + this.elementName = elementName; + + AttributesImpl att = new AttributesImpl(); + if (name != null) + att.addAttribute("", "name", "name", "", name); + if (visible != 0) + att.addAttribute("", "visible", "visible", "", visible > 0 + ? "true" + : "false"); + if (parameter != -1) + att.addAttribute("", + "parameter", + "parameter", + "", + Integer.toString(parameter)); + if (desc != null) + att.addAttribute("", "desc", "desc", "", desc); + + addStart(elementName, att); + } + + public void visit(String name, Object value) { + Class c = value.getClass(); + if (c.isArray()) { + AnnotationVisitor av = visitArray(name); + if (value instanceof byte[]) { + byte[] b = (byte[]) value; + for (int i = 0; i < b.length; i++) + av.visit(null, new Byte(b[i])); + + } else if (value instanceof char[]) { + char[] b = (char[]) value; + for (int i = 0; i < b.length; i++) + av.visit(null, new Character(b[i])); + + } else if (value instanceof boolean[]) { + boolean[] b = (boolean[]) value; + for (int i = 0; i < b.length; i++) + av.visit(null, Boolean.valueOf(b[i])); + + } else if (value instanceof int[]) { + int[] b = (int[]) value; + for (int i = 0; i < b.length; i++) + av.visit(null, new Integer(b[i])); + + } else if (value instanceof long[]) { + long[] b = (long[]) value; + for (int i = 0; i < b.length; i++) + av.visit(null, new Long(b[i])); + + } else if (value instanceof float[]) { + float[] b = (float[]) value; + for (int i = 0; i < b.length; i++) + av.visit(null, new Float(b[i])); + + } else if (value instanceof double[]) { + double[] b = (double[]) value; + for (int i = 0; i < b.length; i++) + av.visit(null, new Double(b[i])); + + } + av.visitEnd(); + } else { + addValueElement("annotationValue", + name, + Type.getDescriptor(c), + value.toString()); + } + } + + public void visitEnum(String name, String desc, String value) { + addValueElement("annotationValueEnum", name, desc, value); + } + + public AnnotationVisitor visitAnnotation(String name, String desc) { + return new SAXAnnotationAdapter(getContentHandler(), + "annotationValueAnnotation", + 0, + name, + desc); + } + + public AnnotationVisitor visitArray(String name) { + return new SAXAnnotationAdapter(getContentHandler(), + "annotationValueArray", + 0, + name, + null); + } + + public void visitEnd() { + addEnd(elementName); + } + + private void addValueElement( + String element, + String name, + String desc, + String value) + { + AttributesImpl att = new AttributesImpl(); + if (name != null) + att.addAttribute("", "name", "name", "", name); + if (desc != null) + att.addAttribute("", "desc", "desc", "", desc); + if (value != null) + att.addAttribute("", + "value", + "value", + "", + SAXClassAdapter.encode(value)); + + addElement(element, att); + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java new file mode 100644 index 00000000000..ba362d0606d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java @@ -0,0 +1,351 @@ +/*** + * ASM XML Adapter + * Copyright (c) 2004, Eugene Kuleshov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.xml; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.xml.sax.ContentHandler; +import org.xml.sax.helpers.AttributesImpl; + +/** + * A {@link org.objectweb.asm.ClassVisitor ClassVisitor} that generates SAX 2.0 + * events from the visited class. It can feed any kind of + * {@link org.xml.sax.ContentHandler ContentHandler}, e.g. XML serializer, XSLT + * or XQuery engines. + * + * @see org.objectweb.asm.xml.Processor + * @see org.objectweb.asm.xml.ASMContentHandler + * + * @author Eugene Kuleshov + */ +public final class SAXClassAdapter extends SAXAdapter implements ClassVisitor { + private boolean singleDocument; + + /** + * Constructs a new {@link SAXClassAdapter SAXClassAdapter} object. + * + * @param h content handler that will be used to send SAX 2.0 events. + * @param singleDocument if true adapter will not produce + * {@link ContentHandler#startDocument() startDocument()} and + * {@link ContentHandler#endDocument() endDocument()} events. + */ + public SAXClassAdapter(ContentHandler h, boolean singleDocument) { + super(h); + this.singleDocument = singleDocument; + if (!singleDocument) { + addDocumentStart(); + } + } + + public void visitSource(String source, String debug) { + if (source == null && debug == null) { + return; + } + + AttributesImpl att = new AttributesImpl(); + if (source != null) + att.addAttribute("", "file", "file", "", encode(source)); + if (debug != null) + att.addAttribute("", "debug", "debug", "", encode(debug)); + + addElement("source", att); + } + + public void visitOuterClass(String owner, String name, String desc) { + AttributesImpl att = new AttributesImpl(); + att.addAttribute("", "owner", "owner", "", owner); + if (name != null) + att.addAttribute("", "name", "name", "", name); + if (desc != null) + att.addAttribute("", "desc", "desc", "", desc); + + addElement("outerclass", att); + } + + public final void visitAttribute(Attribute attr) { + // TODO Auto-generated SAXClassAdapter.visitAttribute + } + + public AnnotationVisitor visitAnnotation(String desc, boolean visible) { + return new SAXAnnotationAdapter(getContentHandler(), + "annotation", + visible ? 1 : -1, + null, + desc); + } + + public void visit( + int version, + int access, + String name, + String signature, + String superName, + String[] interfaces) + { + StringBuffer sb = new StringBuffer(); + if ((access & Opcodes.ACC_PUBLIC) != 0) + sb.append("public "); + if ((access & Opcodes.ACC_PRIVATE) != 0) + sb.append("private "); + if ((access & Opcodes.ACC_PROTECTED) != 0) + sb.append("protected "); + if ((access & Opcodes.ACC_FINAL) != 0) + sb.append("final "); + if ((access & Opcodes.ACC_SUPER) != 0) + sb.append("super "); + if ((access & Opcodes.ACC_INTERFACE) != 0) + sb.append("interface "); + if ((access & Opcodes.ACC_ABSTRACT) != 0) + sb.append("abstract "); + if ((access & Opcodes.ACC_SYNTHETIC) != 0) + sb.append("synthetic "); + if ((access & Opcodes.ACC_ANNOTATION) != 0) + sb.append("annotation "); + if ((access & Opcodes.ACC_ENUM) != 0) + sb.append("enum "); + if ((access & Opcodes.ACC_DEPRECATED) != 0) + sb.append("deprecated "); + + AttributesImpl att = new AttributesImpl(); + att.addAttribute("", "access", "access", "", sb.toString()); + if (name != null) + att.addAttribute("", "name", "name", "", name); + if (signature != null) + att.addAttribute("", + "signature", + "signature", + "", + encode(signature)); + if (superName != null) + att.addAttribute("", "parent", "parent", "", superName); + att.addAttribute("", + "major", + "major", + "", + Integer.toString(version & 0xFFFF)); + att.addAttribute("", + "minor", + "minor", + "", + Integer.toString(version >>> 16)); + addStart("class", att); + + addStart("interfaces", new AttributesImpl()); + if (interfaces != null && interfaces.length > 0) { + for (int i = 0; i < interfaces.length; i++) { + AttributesImpl att2 = new AttributesImpl(); + att2.addAttribute("", "name", "name", "", interfaces[i]); + addElement("interface", att2); + } + } + addEnd("interfaces"); + } + + public FieldVisitor visitField( + int access, + String name, + String desc, + String signature, + Object value) + { + StringBuffer sb = new StringBuffer(); + if ((access & Opcodes.ACC_PUBLIC) != 0) + sb.append("public "); + if ((access & Opcodes.ACC_PRIVATE) != 0) + sb.append("private "); + if ((access & Opcodes.ACC_PROTECTED) != 0) + sb.append("protected "); + if ((access & Opcodes.ACC_STATIC) != 0) + sb.append("static "); + if ((access & Opcodes.ACC_FINAL) != 0) + sb.append("final "); + if ((access & Opcodes.ACC_VOLATILE) != 0) + sb.append("volatile "); + if ((access & Opcodes.ACC_TRANSIENT) != 0) + sb.append("transient "); + if ((access & Opcodes.ACC_SYNTHETIC) != 0) + sb.append("synthetic "); + if ((access & Opcodes.ACC_ENUM) != 0) + sb.append("enum "); + if ((access & Opcodes.ACC_DEPRECATED) != 0) + sb.append("deprecated "); + + AttributesImpl att = new AttributesImpl(); + att.addAttribute("", "access", "access", "", sb.toString()); + att.addAttribute("", "name", "name", "", name); + att.addAttribute("", "desc", "desc", "", desc); + if (signature != null) + att.addAttribute("", + "signature", + "signature", + "", + encode(signature)); + if (value != null) { + att.addAttribute("", "value", "value", "", encode(value.toString())); + } + + return new SAXFieldAdapter(getContentHandler(), att); + } + + public MethodVisitor visitMethod( + int access, + String name, + String desc, + String signature, + String[] exceptions) + { + StringBuffer sb = new StringBuffer(); + if ((access & Opcodes.ACC_PUBLIC) != 0) + sb.append("public "); + if ((access & Opcodes.ACC_PRIVATE) != 0) + sb.append("private "); + if ((access & Opcodes.ACC_PROTECTED) != 0) + sb.append("protected "); + if ((access & Opcodes.ACC_STATIC) != 0) + sb.append("static "); + if ((access & Opcodes.ACC_FINAL) != 0) + sb.append("final "); + if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) + sb.append("synchronized "); + if ((access & Opcodes.ACC_BRIDGE) != 0) + sb.append("bridge "); + if ((access & Opcodes.ACC_VARARGS) != 0) + sb.append("varargs "); + if ((access & Opcodes.ACC_NATIVE) != 0) + sb.append("native "); + if ((access & Opcodes.ACC_ABSTRACT) != 0) + sb.append("abstract "); + if ((access & Opcodes.ACC_STRICT) != 0) + sb.append("strict "); + if ((access & Opcodes.ACC_SYNTHETIC) != 0) + sb.append("synthetic "); + if ((access & Opcodes.ACC_DEPRECATED) != 0) + sb.append("deprecated "); + + AttributesImpl att = new AttributesImpl(); + att.addAttribute("", "access", "access", "", sb.toString()); + att.addAttribute("", "name", "name", "", name); + att.addAttribute("", "desc", "desc", "", desc); + if (signature != null) { + att.addAttribute("", "signature", "signature", "", signature); + } + addStart("method", att); + + addStart("exceptions", new AttributesImpl()); + if (exceptions != null && exceptions.length > 0) { + for (int i = 0; i < exceptions.length; i++) { + AttributesImpl att2 = new AttributesImpl(); + att2.addAttribute("", "name", "name", "", exceptions[i]); + addElement("exception", att2); + } + } + addEnd("exceptions"); + + return new SAXCodeAdapter(getContentHandler(), access); + } + + public final void visitInnerClass( + String name, + String outerName, + String innerName, + int access) + { + StringBuffer sb = new StringBuffer(); + if ((access & Opcodes.ACC_PUBLIC) != 0) + sb.append("public "); + if ((access & Opcodes.ACC_PRIVATE) != 0) + sb.append("private "); + if ((access & Opcodes.ACC_PROTECTED) != 0) + sb.append("protected "); + if ((access & Opcodes.ACC_STATIC) != 0) + sb.append("static "); + if ((access & Opcodes.ACC_FINAL) != 0) + sb.append("final "); + if ((access & Opcodes.ACC_SUPER) != 0) + sb.append("super "); + if ((access & Opcodes.ACC_INTERFACE) != 0) + sb.append("interface "); + if ((access & Opcodes.ACC_ABSTRACT) != 0) + sb.append("abstract "); + if ((access & Opcodes.ACC_SYNTHETIC) != 0) + sb.append("synthetic "); + if ((access & Opcodes.ACC_ANNOTATION) != 0) + sb.append("annotation "); + if ((access & Opcodes.ACC_ENUM) != 0) + sb.append("enum "); + if ((access & Opcodes.ACC_DEPRECATED) != 0) + sb.append("deprecated "); + + AttributesImpl att = new AttributesImpl(); + att.addAttribute("", "access", "access", "", sb.toString()); + if (name != null) + att.addAttribute("", "name", "name", "", name); + if (outerName != null) + att.addAttribute("", "outerName", "outerName", "", outerName); + if (innerName != null) + att.addAttribute("", "innerName", "innerName", "", innerName); + addElement("innerclass", att); + } + + public final void visitEnd() { + addEnd("class"); + if (!singleDocument) { + addDocumentEnd(); + } + } + + static final String encode(String s) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + if (c == '\\') { + sb.append("\\\\"); + } else if (c < 0x20 || c > 0x7f) { + sb.append("\\u"); + if (c < 0x10) { + sb.append("000"); + } else if (c < 0x100) { + sb.append("00"); + } else if (c < 0x1000) { + sb.append("0"); + } + sb.append(Integer.toString(c, 16)); + } else { + sb.append(c); + } + } + return sb.toString(); + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java new file mode 100644 index 00000000000..abea7fbf41f --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java @@ -0,0 +1,310 @@ +/*** + * ASM XML Adapter + * Copyright (c) 2004, Eugene Kuleshov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.xml; + +import java.util.HashMap; +import java.util.Map; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Label; +import org.objectweb.asm.Type; +import org.objectweb.asm.util.AbstractVisitor; +import org.xml.sax.ContentHandler; +import org.xml.sax.helpers.AttributesImpl; + +/** + * A {@link MethodVisitor} that generates SAX 2.0 events from the visited + * method. + * + * @see org.objectweb.asm.xml.SAXClassAdapter + * @see org.objectweb.asm.xml.Processor + * + * @author Eugene Kuleshov + */ +public final class SAXCodeAdapter extends SAXAdapter implements MethodVisitor { + private Map labelNames; + + /** + * Constructs a new {@link SAXCodeAdapter SAXCodeAdapter} object. + * + * @param h content handler that will be used to send SAX 2.0 events. + * @param access + */ + public SAXCodeAdapter(ContentHandler h, int access) { + super(h); + labelNames = new HashMap(); + + if ((access & (Opcodes.ACC_ABSTRACT | Opcodes.ACC_INTERFACE | Opcodes.ACC_NATIVE)) == 0) + { + addStart("code", new AttributesImpl()); + } + } + + public final void visitCode() { + } + + public final void visitInsn(int opcode) { + addElement(AbstractVisitor.OPCODES[opcode], new AttributesImpl()); + } + + public final void visitIntInsn(int opcode, int operand) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "value", "value", "", Integer.toString(operand)); + addElement(AbstractVisitor.OPCODES[opcode], attrs); + } + + public final void visitVarInsn(int opcode, int var) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "var", "var", "", Integer.toString(var)); + addElement(AbstractVisitor.OPCODES[opcode], attrs); + } + + public final void visitTypeInsn(int opcode, String desc) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "desc", "desc", "", desc); + addElement(AbstractVisitor.OPCODES[opcode], attrs); + } + + public final void visitFieldInsn( + int opcode, + String owner, + String name, + String desc) + { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "owner", "owner", "", owner); + attrs.addAttribute("", "name", "name", "", name); + attrs.addAttribute("", "desc", "desc", "", desc); + addElement(AbstractVisitor.OPCODES[opcode], attrs); + } + + public final void visitMethodInsn( + int opcode, + String owner, + String name, + String desc) + { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "owner", "owner", "", owner); + attrs.addAttribute("", "name", "name", "", name); + attrs.addAttribute("", "desc", "desc", "", desc); + addElement(AbstractVisitor.OPCODES[opcode], attrs); + } + + public final void visitJumpInsn(int opcode, Label label) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "label", "label", "", getLabel(label)); + addElement(AbstractVisitor.OPCODES[opcode], attrs); + } + + public final void visitLabel(Label label) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "name", "name", "", getLabel(label)); + addElement("Label", attrs); + } + + public final void visitLdcInsn(Object cst) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", + "cst", + "cst", + "", + SAXClassAdapter.encode(cst.toString())); + attrs.addAttribute("", + "desc", + "desc", + "", + Type.getDescriptor(cst.getClass())); + addElement(AbstractVisitor.OPCODES[Opcodes.LDC], attrs); + } + + public final void visitIincInsn(int var, int increment) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "var", "var", "", Integer.toString(var)); + attrs.addAttribute("", "inc", "inc", "", Integer.toString(increment)); + addElement(AbstractVisitor.OPCODES[Opcodes.IINC], attrs); + } + + public final void visitTableSwitchInsn( + int min, + int max, + Label dflt, + Label[] labels) + { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "min", "min", "", Integer.toString(min)); + attrs.addAttribute("", "max", "max", "", Integer.toString(max)); + attrs.addAttribute("", "dflt", "dflt", "", getLabel(dflt)); + String o = AbstractVisitor.OPCODES[Opcodes.TABLESWITCH]; + addStart(o, attrs); + for (int i = 0; i < labels.length; i++) { + AttributesImpl att2 = new AttributesImpl(); + att2.addAttribute("", "name", "name", "", getLabel(labels[i])); + addElement("label", att2); + } + addEnd(o); + } + + public final void visitLookupSwitchInsn( + Label dflt, + int[] keys, + Label[] labels) + { + AttributesImpl att = new AttributesImpl(); + att.addAttribute("", "dflt", "dflt", "", getLabel(dflt)); + String o = AbstractVisitor.OPCODES[Opcodes.LOOKUPSWITCH]; + addStart(o, att); + for (int i = 0; i < labels.length; i++) { + AttributesImpl att2 = new AttributesImpl(); + att2.addAttribute("", "name", "name", "", getLabel(labels[i])); + att2.addAttribute("", "key", "key", "", Integer.toString(keys[i])); + addElement("label", att2); + } + addEnd(o); + } + + public final void visitMultiANewArrayInsn(String desc, int dims) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "desc", "desc", "", desc); + attrs.addAttribute("", "dims", "dims", "", Integer.toString(dims)); + addElement(AbstractVisitor.OPCODES[Opcodes.MULTIANEWARRAY], attrs); + } + + public final void visitTryCatchBlock( + Label start, + Label end, + Label handler, + String type) + { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "start", "start", "", getLabel(start)); + attrs.addAttribute("", "end", "end", "", getLabel(end)); + attrs.addAttribute("", "handler", "handler", "", getLabel(handler)); + if (type != null) + attrs.addAttribute("", "type", "type", "", type); + addElement("TryCatch", attrs); + } + + public final void visitMaxs(int maxStack, int maxLocals) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", + "maxStack", + "maxStack", + "", + Integer.toString(maxStack)); + attrs.addAttribute("", + "maxLocals", + "maxLocals", + "", + Integer.toString(maxLocals)); + addElement("Max", attrs); + + addEnd("code"); + } + + public void visitLocalVariable( + String name, + String desc, + String signature, + Label start, + Label end, + int index) + { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "name", "name", "", name); + attrs.addAttribute("", "desc", "desc", "", desc); + if (signature != null) + attrs.addAttribute("", + "signature", + "signature", + "", + SAXClassAdapter.encode(signature)); + attrs.addAttribute("", "start", "start", "", getLabel(start)); + attrs.addAttribute("", "end", "end", "", getLabel(end)); + attrs.addAttribute("", "var", "var", "", Integer.toString(index)); + addElement("LocalVar", attrs); + } + + public final void visitLineNumber(int line, Label start) { + AttributesImpl attrs = new AttributesImpl(); + attrs.addAttribute("", "line", "line", "", Integer.toString(line)); + attrs.addAttribute("", "start", "start", "", getLabel(start)); + addElement("LineNumber", attrs); + } + + public AnnotationVisitor visitAnnotationDefault() { + return new SAXAnnotationAdapter(getContentHandler(), + "annotationDefault", + 0, + null, + null); + } + + public AnnotationVisitor visitAnnotation(String desc, boolean visible) { + return new SAXAnnotationAdapter(getContentHandler(), + "annotation", + visible ? 1 : -1, + null, + desc); + } + + public AnnotationVisitor visitParameterAnnotation( + int parameter, + String desc, + boolean visible) + { + return new SAXAnnotationAdapter(getContentHandler(), + "parameterAnnotation", + visible ? 1 : -1, + parameter, + desc); + } + + public void visitEnd() { + addEnd("method"); + } + + public final void visitAttribute(Attribute attr) { + // TODO Auto-generated SAXCodeAdapter.visitAttribute + } + + private final String getLabel(Label label) { + String name = (String) labelNames.get(label); + if (name == null) { + name = Integer.toString(labelNames.size()); + labelNames.put(label, name); + } + return name; + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java new file mode 100644 index 00000000000..eabf00dfc66 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java @@ -0,0 +1,77 @@ +/*** + * ASM XML Adapter + * Copyright (c) 2004, Eugene Kuleshov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.objectweb.asm.xml; + +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.FieldVisitor; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; + +/** + * SAXFieldAdapter + * + * @author Eugene Kuleshov + */ +public class SAXFieldAdapter implements FieldVisitor { + private final ContentHandler h; + + public SAXFieldAdapter(ContentHandler h, AttributesImpl att) { + this.h = h; + + try { + h.startElement("", "field", "field", att); + } catch (SAXException ex) { + throw new RuntimeException(ex.toString()); + } + } + + public AnnotationVisitor visitAnnotation(String desc, boolean visible) { + return new SAXAnnotationAdapter(h, + "annotation", + visible ? 1 : -1, + null, + desc); + } + + public void visitAttribute(Attribute attr) { + // TODO Auto-generated method stub + } + + public void visitEnd() { + try { + h.endElement("", "field", "field"); + } catch (SAXException ex) { + throw new RuntimeException(ex.toString()); + } + } + +} diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/asm-xml.dtd b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/asm-xml.dtd new file mode 100644 index 00000000000..7859259e050 --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/asm-xml.dtd @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/package.html b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/package.html new file mode 100644 index 00000000000..3bbb95f8c2c --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/xml/package.html @@ -0,0 +1,96 @@ + + + +Provides SAX 2.0 adapters for ASM +visitors to convert classes to and from XML. +These adapters can be chained with other SAX compliant content handlers and +filters, eg. XSLT or XQuery engines. This package is bundled as +a separate asm-xml.jar library and requires asm.jar. +

      +ASMContentHandler and SAXClassAdapter/SAXCodeAdapter +are using asm-xml.dtd. +Here is the example of bytecode to bytecode XSLT transformation. + +

      +    SAXTransformerFactory saxtf = ( SAXTransformerFactory) TransformerFactory.newInstance();
      +    Templates templates = saxtf.newTemplates( xsltSource);
      +
      +    TransformerHandler handler = saxtf.newTransformerHandler( templates);
      +    handler.setResult( new SAXResult( new ASMContentHandler( outputStream, computeMax)));
      +
      +    ClassReader cr = new ClassReader( bytecode);
      +    cr.accept( new SAXClassAdapter( handler, cr.getVersion(), false), false);
      +
      + +See JAXP and SAX documentation for more detils. + +

      +There are few illustrations of the bytecode transformation with XSLT in +examples directory. The following XSLT procesors has been tested. + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Engine +javax.xml.transform.TransformerFactory property +
      jd.xsltjd.xml.xslt.trax.TransformerFactoryImpl
      Saxonnet.sf.saxon.TransformerFactoryImpl
      Cauchocom.caucho.xsl.Xsl
      Xalan interpeterorg.apache.xalan.processor.TransformerFactory
      Xalan xsltcorg.apache.xalan.xsltc.trax.TransformerFactoryImpl
      +
      + +@since ASM 1.4.3 + + + diff --git a/libjava/classpath/tools/gjavah.in b/libjava/classpath/tools/gjavah.in new file mode 100644 index 00000000000..3140e21e4b6 --- /dev/null +++ b/libjava/classpath/tools/gjavah.in @@ -0,0 +1,47 @@ +#!/bin/sh + +## Copyright (C) 2006 Free Software Foundation, Inc. +## +## This file is a 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 of the License, 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; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, 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. +## +## +## A simple shell script to launch the GNU Classpath javah tool. +## + +prefix=@prefix@ +tools_dir=@datadir@/@PACKAGE@ +tools_cp=${tools_dir}/tools.zip + +exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.javah.Main "$@" diff --git a/libjava/classpath/tools/gnu/classpath/tools/AbstractMethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/AbstractMethodGenerator.java deleted file mode 100644 index d82284988e9..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/AbstractMethodGenerator.java +++ /dev/null @@ -1,53 +0,0 @@ -/* AbstractMethodGenerator.java -- the abstract method generator - 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 gnu.classpath.tools; - -public interface AbstractMethodGenerator -{ - /** - * Generate this method for the Stub (remote caller) class. - */ - String generateStubMethod(); - - /** - * Generate this method for the Tie (remote servant) class. - */ - String generateTieMethod(); - -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/HelpPrinter.java b/libjava/classpath/tools/gnu/classpath/tools/HelpPrinter.java deleted file mode 100644 index 89468918a08..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/HelpPrinter.java +++ /dev/null @@ -1,116 +0,0 @@ -/* HelpPrinter -- help message printer - Copyright (C) 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 gnu.classpath.tools; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; - -/** - * The shared class to print the help message and exit, when applicable. - * Support the --help key. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class HelpPrinter -{ - /** - * Check for the --help, -help and -? keys. If one is found, print help and - * exit the program. - * - * @param args the program arguments. - * @param helpResourcePath the path to the help resource, related to the - * HelpPrinter class. - */ - public static void checkHelpKey(String[] args, String helpResourcePath) - { - for (int i = 0; i < args.length; i++) - { - String a = args[i]; - if (a.equals("-?") || a.equalsIgnoreCase("-help") - || a.equalsIgnoreCase("--help")) - printHelpAndExit(helpResourcePath); - } - } - - /** - * Prints the contents of the resource specified by the designated path. - * - * @param helpResourcePath the path to a help resource, related to the - * HelpPrinter class. - */ - public static void printHelp(String helpResourcePath) - { - InputStream in = HelpPrinter.class.getResourceAsStream(helpResourcePath); - BufferedReader br = new BufferedReader(new InputStreamReader(in)); - try - { - String s; - while ((s = br.readLine()) != null) - System.out.println(s); - } - catch (IOException x) - { - System.err.print("Resource loading is broken:"); - x.printStackTrace(System.err); - } - finally - { - try - { - br.close(); - } - catch (IOException ignored) - { - } - } - } - - /** - * Prints the help message and terminates. - * - * @param helpResourcePath the path to the help resource, related to the - * HelpPrinter class. - */ - public static void printHelpAndExit(String helpResourcePath) - { - printHelp(helpResourcePath); - System.exit(0); - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletWarning.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletWarning.java deleted file mode 100644 index b2376a4cb77..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/AppletWarning.java +++ /dev/null @@ -1,66 +0,0 @@ -/* AppletWarning -- a security warning message display dialog - Copyright (C) 2003, 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 gnu.classpath.tools.appletviewer; - -import javax.swing.JOptionPane; - -/** - * @author Michael Koch (konqueror@gmx.de) - */ -public class AppletWarning -{ - private static String TITLE = "WARNING"; - private static boolean showWarning = false; - - private static String MESSAGE = - "The current version of this applet plugin does not provide\n" + - "a security manager capable of handling Java (tm) applets. Applets\n" + - "have UNRESTRICTED access to your computer. This means they can do\n" + - "anything you can do, like deleting all your important data.\n\n" + - "Continue ?"; - - public static int show() - { - if (showWarning) - return JOptionPane.showConfirmDialog(null, MESSAGE, TITLE, - JOptionPane.YES_NO_OPTION, - JOptionPane.WARNING_MESSAGE); - else - return JOptionPane.YES_OPTION; - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java index bc0cc45e128..c41ac1d7c86 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java @@ -98,7 +98,8 @@ class CommonAppletStub } catch (MalformedURLException e) { - throw new RuntimeException("unknown codebase"); + throw new RuntimeException("Attempted to create" + + " invalid codebase URL.", e); } } diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java deleted file mode 100644 index 9c937cc779d..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java +++ /dev/null @@ -1,175 +0,0 @@ -/* ConsoleDialog -- a console dialog for applets - Copyright (C) 2003, 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 gnu.classpath.tools.appletviewer; - -import java.awt.BorderLayout; -import java.awt.Button; -import java.awt.FlowLayout; -import java.awt.Frame; -import java.awt.Panel; -import java.awt.TextArea; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.io.IOException; -import java.io.OutputStream; -import java.io.PrintStream; - - -/** - * This class is a little dialog showing standard output and standard error output. - * - * @author Michael Koch (konqueror@gmx.de) - */ -public class ConsoleDialog extends Frame - implements ActionListener -{ - static class InternalOutputStream extends OutputStream - { - private ConsoleDialog console; - - public InternalOutputStream(ConsoleDialog console) - { - super(); - this.console = console; - } - - public void write(int data) throws IOException - { - console.print(String.valueOf((char) data)); - } - } - - private TextArea textArea; - private Button buttonClear; - private Button buttonHide; - private PrintStream printStream; - - /** - * Creates a console dialog object. - */ - public ConsoleDialog() - { - super(Main.messages.getString("gcjwebplugin.console_title")); - - setSize(400, 200); - setLayout(new BorderLayout()); - addWindowListener(new WindowAdapter() - { - public void windowClosing(WindowEvent event) - { - hide(); - } - }); - - textArea = new TextArea(); - textArea.setEditable(false); - add(textArea); - - Panel panel = new Panel(); - panel.setLayout(new FlowLayout()); - add(panel, BorderLayout.SOUTH); - - buttonClear = new Button(Main.messages.getString("gcjwebplugin.console_clear")); - buttonClear.addActionListener(this); - panel.add(buttonClear); - - buttonHide = new Button(Main.messages.getString("gcjwebplugin.console_hide")); - buttonHide.addActionListener(this); - panel.add(buttonHide); - - printStream = new PrintStream(new InternalOutputStream(this)); - clearTextArea(); - } - - /** - * Clears the content of the textarea and inserts the initial text. - */ - public void clearTextArea() - { - textArea.setText(""); - - println("java.vm.version: " + System.getProperty("java.vm.version")); - println("java.vm.vendor: " + System.getProperty("java.vm.vendor")); - } - - /** - * Print a message into the console dialog. - * - * @param message the message to print. - */ - public void print(String message) - { - textArea.append(message); - } - - /** - * Print a line into the console dialog. - * - * @param message the line to print. - */ - public void println(String message) - { - print(message + "\n"); - } - - /** - * Perform actions on button clicks inside the console dialog. - * - * @param event the event. - */ - public void actionPerformed(ActionEvent event) - { - if (event.getSource() == buttonHide) - hide(); // Hide console window. - else if (event.getSource() == buttonClear) - clearTextArea(); // Clear text area and insert standard messages. - } - - /** - * Returns a PrintStream object that prints into the - * console dialog. - * - * @return the PrintStream object. - */ - public PrintStream getPrintStream() - { - return printStream; - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java index 1d9fed2b04d..a10b889bc97 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java @@ -37,17 +37,19 @@ exception statement from your version. */ package gnu.classpath.tools.appletviewer; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; import gnu.classpath.tools.getopt.Parser; import java.applet.Applet; import java.awt.Dimension; +import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.OutputStream; import java.net.URL; import java.util.ArrayList; @@ -58,12 +60,6 @@ import java.util.ResourceBundle; class Main { - /** - * The localized strings are kept in a separate file. - */ - public static final ResourceBundle messages = ResourceBundle.getBundle - ("gnu.classpath.tools.appletviewer.MessagesBundle"); - private static HashMap classLoaderCache = new HashMap(); private static ClassLoader getClassLoader(URL codebase, ArrayList archives) @@ -108,7 +104,7 @@ class Main } if (applet == null) - applet = new ErrorApplet("Error loading applet"); + applet = new ErrorApplet(Messages.getString ("Main.ErrorApplet")); return applet; } @@ -125,68 +121,72 @@ class Main public static void main(String[] args) throws IOException { parser = new ClasspathToolParser("appletviewer", true); - parser.setHeader("usage: appletviewer [OPTION] -code CODE | URL..."); + parser.setHeader(Messages.getString("Main.Usage")); - OptionGroup attributeGroup = new OptionGroup("Applet tag options"); + OptionGroup attributeGroup + = new OptionGroup(Messages.getString("Main.AppletTagOptions")); - attributeGroup.add(new Option("code", Main.messages.getString - ("gcjwebplugin.code_description"), - "CODE") + attributeGroup.add(new Option("code", + Messages.getString("Main.CodeDescription"), + Messages.getString("Main.CodeArgument")) { public void parsed(String argument) throws OptionException { code = argument; } }); - attributeGroup.add(new Option("codebase", Main.messages.getString - ("gcjwebplugin.codebase_description"), - "CODEBASE") + attributeGroup.add + (new Option("codebase", + Messages.getString("Main.CodebaseDescription"), + Messages.getString("Main.CodebaseArgument")) { public void parsed(String argument) throws OptionException { codebase = argument; } }); - attributeGroup.add(new Option("archive", Main.messages.getString - ("gcjwebplugin.archive_description"), - "ARCHIVE") + attributeGroup.add + (new Option("archive", + Messages.getString("Main.ArchiveDescription"), + Messages.getString("Main.ArchiveArgument")) { public void parsed(String argument) throws OptionException { archive = argument; } }); - attributeGroup.add(new Option("width", Main.messages.getString - ("gcjwebplugin.width_description"), - "WIDTH") + attributeGroup.add(new Option("width", + Messages.getString("Main.WidthDescription"), + Messages.getString("Main.WidthArgument")) { public void parsed(String argument) throws OptionException { dimensions.width = Integer.parseInt(argument); } }); - attributeGroup.add(new Option("height", Main.messages.getString - ("gcjwebplugin.height_description"), - "HEIGHT") + attributeGroup.add(new Option("height", + Messages.getString("Main.HeightDescription"), + Messages.getString("Main.HeightArgument")) { public void parsed(String argument) throws OptionException { dimensions.height = Integer.parseInt(argument); } }); - attributeGroup.add(new Option("param", Main.messages.getString - ("gcjwebplugin.param_description"), - "NAME,VALUE") + attributeGroup.add(new Option("param", + Messages.getString("Main.ParamDescription"), + Messages.getString("Main.ParamArgument")) { public void parsed(String argument) throws OptionException { parameters.add(argument); } }); - OptionGroup pluginGroup = new OptionGroup("Plugin option"); - pluginGroup.add(new Option("plugin", Main.messages.getString - ("gcjwebplugin.plugin_description"), - "INPUT,OUTPUT") + OptionGroup pluginGroup + = new OptionGroup(Messages.getString("Main.PluginOption")); + pluginGroup.add(new Option("plugin", + Messages.getString("Main.PluginDescription"), + Messages.getString("Main.PluginArgument")) { public void parsed(String argument) throws OptionException { @@ -196,29 +196,34 @@ class Main pipeOutName = argument.substring(comma + 1); } }); - OptionGroup debuggingGroup = new OptionGroup("Debugging option"); - debuggingGroup.add(new Option("verbose", Main.messages.getString - ("gcjwebplugin.verbose_description"), - (String) null) + OptionGroup debuggingGroup + = new OptionGroup(Messages.getString("Main.DebuggingOption")); + debuggingGroup.add + (new Option("verbose", + Messages.getString("Main.VerboseDescription"), + (String) null) { public void parsed(String argument) throws OptionException { verbose = true; } }); - OptionGroup compatibilityGroup = new OptionGroup("Compatibility options"); - compatibilityGroup.add(new Option("debug", Main.messages.getString - ("gcjwebplugin.debug_description"), - (String) null) + OptionGroup compatibilityGroup + = new OptionGroup(Messages.getString("Main.CompatibilityOptions")); + compatibilityGroup.add + (new Option("debug", + Messages.getString("Main.DebugDescription"), + (String) null) { public void parsed(String argument) throws OptionException { // Currently ignored. } }); - compatibilityGroup.add(new Option("encoding", Main.messages.getString - ("gcjwebplugin.encoding_description"), - "CHARSET") + compatibilityGroup.add + (new Option("encoding", + Messages.getString("Main.EncodingDescription"), + Messages.getString("Main.EncodingArgument")) { public void parsed(String argument) throws OptionException { @@ -249,6 +254,7 @@ class Main if (pluginMode) { + // Plugin will warn user about missing security manager. InputStream in; OutputStream out; @@ -259,13 +265,37 @@ class Main } else { + // Warn user about missing security manager. + System.err.println(Messages.getString("Main.SecurityWarning") + "\n"); + + System.err.println(Messages.getString("Main.ContinuationPrompt")); + + BufferedReader stdin + = new BufferedReader(new InputStreamReader(System.in)); + String response = null; + + try + { + response = stdin.readLine(); + } + catch (IOException e) + { + throw new RuntimeException("Failed to read response" + + " to continuation prompt.", e); + } + + if (!(response.equals("c") || response.equals("C"))) + { + System.exit(0); + } + if (code == null) { // The --code option wasn't given and there are no URL // arguments so we have nothing to work with. if (args.length == 0) { - System.err.println(Main.messages.getString("gcjwebplugin.no_input_files")); + System.err.println(Messages.getString("Main.NoInputFiles")); System.exit(1); } // Create a standalone appletviewer from a list of URLs. @@ -275,7 +305,8 @@ class Main { // Create a standalone appletviewer from the --code // option. - new StandaloneAppletViewer(code, codebase, archive, parameters, dimensions); + new StandaloneAppletViewer(code, codebase, archive, + parameters, dimensions); } } } @@ -284,7 +315,7 @@ class Main { if (verbose) { - System.out.println("raw arguments:"); + System.out.println(Messages.getString("Main.RawArguments")); for (int i = 0; i < args.length; i++) System.out.println(" " + args[i]); diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Messages.java new file mode 100644 index 00000000000..614a509fd53 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Messages.java @@ -0,0 +1,67 @@ +/* Messages.java -- localization support for appletviewer + 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 gnu.classpath.tools.appletviewer; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class Messages +{ + private static final String BUNDLE_NAME + = "gnu.classpath.tools.appletviewer.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE + = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() + { + } + + public static String getString(String key) + { + try + { + return RESOURCE_BUNDLE.getString(key); + } + catch (MissingResourceException e) + { + return '!' + key + '!'; + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java index a0e6acd124c..bc445a6b33c 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java @@ -54,7 +54,7 @@ class PluginAppletContext extends CommonAppletContext } catch(IOException e) { - System.err.println("showDocument failed: " + e); + throw new RuntimeException("showDocument failed.", e); } } @@ -66,7 +66,7 @@ class PluginAppletContext extends CommonAppletContext } catch(IOException e) { - System.err.println("showDocument failed: " + e); + throw new RuntimeException("showStatus failed.", e); } } } diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java index fdb8097b44b..d77aad39223 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java @@ -141,7 +141,9 @@ class PluginAppletViewer pluginOutputStream.newLine(); pluginOutputStream.flush(); - System.err.println(" PIPE: applet viewer wrote: " + message); + System.err.println + (" " + Messages.getString("PluginAppletViewer.AppletViewerWrote") + + message); } /** @@ -155,7 +157,9 @@ class PluginAppletViewer { String message = pluginInputStream.readLine(); - System.err.println(" PIPE: applet viewer read: " + message); + System.err.println + (" " + Messages.getString("PluginAppletViewer.AppletViewerRead") + + message); if (message == null || message.equals("shutdown")) { @@ -163,7 +167,9 @@ class PluginAppletViewer pluginInputStream.close(); pluginOutputStream.close(); - System.err.println("appletviewer: exiting plugin applet viewer"); + System.err.println + (Messages.getString("PluginAppletViewer.AppletViewerExiting")); + System.exit(0); } diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java index 6d36e1cf0b9..283d547b801 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java @@ -428,10 +428,6 @@ class PluginAppletWindow if (contexts.get(tag.getCodeBase()) == null) contexts.put(tag.getCodeBase(), new PluginAppletContext()); - int result = AppletWarning.show(); - if (result == JOptionPane.NO_OPTION) - return; - add(applet); AppletContext context = (AppletContext) contexts.get(tag.getCodeBase()); diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java index a779f068ab6..48468f84d67 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java @@ -58,7 +58,8 @@ class StandaloneAppletContext extends CommonAppletContext public void showDocument(URL url, String target) { - System.err.println("showDocument is not implemented in standalone mode"); + System.err.println + (Messages.getString("StandaloneAppletContext.ShowDocumentError")); } // In standalone mode, there are potentially several windows, each diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java index 2b58f4b87e8..cc3a65cd72c 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java @@ -79,7 +79,8 @@ class StandaloneAppletViewer extends Main { if (!(code.equals("") || code.endsWith(".class"))) { - System.err.println("appletviewer: option '--code' requires a class filename"); + System.err.println + (Messages.getString("StandaloneAppletViewer.CodeOptionError")); System.exit(1); } @@ -118,13 +119,16 @@ class StandaloneAppletViewer extends Main { if (verbose) { - System.out.println("parsed applet tags:"); + System.out.println + (Messages.getString("StandaloneAppletViewer.ParsedAppletTags")); for (int i = 0; i < appletTags.size(); i++) { AppletTag tag = (AppletTag) appletTags.get(i); - System.out.println(" tag " + i + ":"); + System.out.println + (" " + Messages.getString("StandaloneAppletViewer.Tag") + + " " + i + ":"); System.out.println(tag); } } diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java index fd2a7c0d832..3a0a442825d 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java @@ -128,57 +128,57 @@ class StandaloneAppletWindow addHierarchyListener(this); addHierarchyBoundsListener(this); - restartItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_restart")); + restartItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuRestart")); restartItem.setEnabled(false); restartItem.addActionListener(this); - reloadItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_reload")); + reloadItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuReload")); reloadItem.setEnabled(false); reloadItem.addActionListener(this); - cancelItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_cancel")); + cancelItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuCancel")); cancelItem.setEnabled(false); cancelItem.addActionListener(this); - saveItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_save")); + saveItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuSave")); saveItem.setEnabled(false); saveItem.addActionListener(this); - startItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_start")); + startItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuStart")); startItem.setEnabled(false); startItem.addActionListener(this); - cloneItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_clone")); + cloneItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuClone")); cloneItem.setEnabled(false); cloneItem.addActionListener(this); - closeItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_close")); + closeItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuClose")); closeItem.setEnabled(false); closeItem.addActionListener(this); tagItem = - new MenuItem(Main.messages.getString("gcjwebplugin.menu_tag")); + new MenuItem(Messages.getString("StandaloneAppletWindow.MenuTag")); tagItem.setEnabled(false); tagItem.addActionListener(this); infoItem = - new MenuItem(Main.messages.getString("gcjwebplugin.menu_info")); + new MenuItem(Messages.getString("StandaloneAppletWindow.MenuInfo")); infoItem.setEnabled(false); infoItem.addActionListener(this); editItem = - new MenuItem(Main.messages.getString("gcjwebplugin.menu_edit")); + new MenuItem(Messages.getString("StandaloneAppletWindow.MenuEdit")); editItem.setEnabled(false); editItem.addActionListener(this); editItem.setEnabled(false); encodingItem = - new MenuItem(Main.messages.getString("gcjwebplugin.menu_encoding")); + new MenuItem(Messages.getString("StandaloneAppletWindow.MenuEncoding")); encodingItem.setEnabled(false); encodingItem.addActionListener(this); printItem = - new MenuItem(Main.messages.getString("gcjwebplugin.menu_print")); + new MenuItem(Messages.getString("StandaloneAppletWindow.MenuPrint")); printItem.setEnabled(false); printItem.addActionListener(this); propertiesItem = - new MenuItem(Main.messages.getString("gcjwebplugin.menu_properties")); + new MenuItem(Messages.getString("StandaloneAppletWindow.MenuProperties")); propertiesItem.setEnabled(false); propertiesItem.addActionListener(this); - quitItem = new MenuItem(Main.messages.getString("gcjwebplugin.menu_quit")); + quitItem = new MenuItem(Messages.getString("StandaloneAppletWindow.MenuQuit")); quitItem.addActionListener(this); MenuBar menuBar = new MenuBar(); - Menu menuApplet = new Menu(Main.messages.getString("gcjwebplugin.menu_title")); + Menu menuApplet = new Menu(Messages.getString("StandaloneAppletWindow.MenuTitle")); menuBar.add(menuApplet); menuApplet.add(restartItem); menuApplet.add(reloadItem); @@ -199,7 +199,8 @@ class StandaloneAppletWindow menuApplet.add(closeItem); menuApplet.add(quitItem); setMenuBar(menuBar); - setTitle("GNU Classpath Applet Viewer: " + tag.code); + setTitle(Messages.getString("StandaloneAppletWindow.WindowTitle") + + " " + tag.code); AppletContext context = (AppletContext) contexts.get(tag.codebase); ((StandaloneAppletContext) context).addApplet(applet); diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java index 68dce97e0ba..b5bdca70f9b 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java @@ -230,12 +230,66 @@ public class TagParser t.archives = parseArchives(val, t); val = t.archives.toString(); } - + val = unescapeString(val); t.parameters.put(key.toLowerCase(), val); } } /** + * This method does the same thing as the g_strcompress function in glib. + * + * @param value + * @return value in its original one-byte equivalence. + */ + private static String unescapeString(String value) + { + String unescVal = ""; + for (int i = 0; i < value.length(); i++) + { + if (i == value.length() - 1) + { + unescVal = unescVal.concat(value.substring(i)); + break; + } + if (value.charAt(i) == '\\') + { + switch (value.charAt(i + 1)) + { + case 'b': + unescVal = unescVal.concat("\b"); + break; + case 'f': + unescVal = unescVal.concat("\f"); + break; + case 'n': + unescVal = unescVal.concat("\n"); + break; + case 'r': + unescVal = unescVal.concat("\r"); + break; + case 't': + unescVal = unescVal.concat("\t"); + break; + case '\\': + unescVal = unescVal.concat("\\"); + break; + case '\"': + unescVal = unescVal.concat("\""); + break; + default: + unescVal = unescVal.concat("\\"); + unescVal = unescVal.concat(value.substring(i + 1, i + 2)); + break; + } + i++; + } + else + unescVal = unescVal.concat(value.substring(i, i + 1)); + } + return unescVal; + } + + /** * Parses the archive string and returns a list. * * @param the list of archives (comma-separated) in a String. diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java b/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java new file mode 100644 index 00000000000..e44b9011cfd --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java @@ -0,0 +1,87 @@ +/* ClasspathToolParser.java -- Parser subclass for classpath tools + 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 gnu.classpath.tools.common; + +import java.text.MessageFormat; + +import gnu.classpath.Configuration; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.Parser; + +/** + * This is like the Parser class, but is specialized for use by + * tools distributed with GNU Classpath. In particular it automatically + * computes the version string using the program's name. + */ +public class ClasspathToolParser + extends Parser +{ + private static String getVersionString(String programName) + { + String fmt = (Messages.getString("ClasspathToolParser.VersionFormat")); //$NON-NLS-1$ + return MessageFormat.format(fmt, + new Object[] + { + programName, + Configuration.CLASSPATH_VERSION + }); + } + + public ClasspathToolParser(String programName) + { + this(programName, false); + } + + public ClasspathToolParser(String programName, boolean longOnly) + { + super(programName, getVersionString(programName), longOnly); + addFinal(new Option('J', + Messages.getString("ClasspathToolParser.JArgument"),//$NON-NLS-1$ + Messages.getString("ClasspathToolParser.JName"), //$NON-NLS-1$ + true) + { + public void parsed(String argument) throws OptionException + { + // -J should be handled by the wrapper binary. + // We add it here so that it shows up in the --help output. + } + }); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java new file mode 100644 index 00000000000..1c92d348d2b --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java @@ -0,0 +1,67 @@ +/* Messages.java -- i18n support for tools common code + 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 gnu.classpath.tools.common; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +class Messages +{ + private static final String BUNDLE_NAME + = "gnu.classpath.tools.common.Messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE + = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() + { + } + + public static String getString(String key) + { + try + { + return RESOURCE_BUNDLE.getString(key); + } + catch (MissingResourceException e) + { + return '!' + key + '!'; + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java b/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java new file mode 100644 index 00000000000..5a2b48a8ddc --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java @@ -0,0 +1,87 @@ +/* PersistentBidiHasthable.java -- Constants for the persistent tables. + 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 gnu.classpath.tools.common; + +import java.util.Timer; +import java.util.TimerTask; + +/** + * The static fields, shared by the multiple classes, implementing the + * persistent work. + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) + */ +public interface Persistent +{ + /** + * Sheduled termination task. + */ + static class ExitTask extends TimerTask + { + public void run() + { + System.exit(0); + } + } + + /** + * The timer, sheduling all disk database update events, shared by all + * instances. + */ + static Timer timer = new Timer(true); + + /** + * The longest time, in ms, after that the database content on the disk must + * be updated. The algorithm is written to avoid the very frequent writings to + * the disk. + */ + static long SAVE_AT_MOST_AFTER = 5000; + + /** + * States how long the database may stay not updated during the intensive + * operations, in ms. Otherwise the intensively used structure may never + * be stored to the disk. + */ + static long ALWAYS_UPDATE = 300000; + + /** + * Write the database content to the disk. + */ + void writeContent(); + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java deleted file mode 100644 index e712056ef98..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java +++ /dev/null @@ -1,73 +0,0 @@ -/* ClasspathToolParser.java -- Parser subclass for classpath tools - 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 gnu.classpath.tools.getopt; - -import java.text.MessageFormat; - -import gnu.classpath.Configuration; - -/** - * This is like the Parser class, but is specialized for use by - * tools distributed with GNU Classpath. In particular it automatically - * computes the version string using the program's name. - */ -public class ClasspathToolParser - extends Parser -{ - private static String getVersionString(String programName) - { - String fmt = (Messages.getString("ClasspathToolParser.VersionFormat")); //$NON-NLS-1$ - return MessageFormat.format(fmt, - new Object[] - { - programName, - Configuration.CLASSPATH_VERSION - }); - } - - public ClasspathToolParser(String programName) - { - super(programName, getVersionString(programName)); - } - - public ClasspathToolParser(String programName, boolean longOnly) - { - super(programName, getVersionString(programName), longOnly); - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java index 3c963d786b3..19f10174332 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java +++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java @@ -41,7 +41,7 @@ package gnu.classpath.tools.getopt; import java.util.MissingResourceException; import java.util.ResourceBundle; -public class Messages +class Messages { private static final String BUNDLE_NAME = "gnu.classpath.tools.getopt.Messages"; //$NON-NLS-1$ diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java index 6f775e4a105..53255811eb1 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java +++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/Option.java @@ -44,7 +44,10 @@ package gnu.classpath.tools.getopt; * like '--verbose'; if the parser is working in "long option only" mode, then a * long flag has a single dash, like '-verbose'. Both a long and a short form * may be specified; it is not valid to have neither. A description is mandatory - * for options; this is used to automatically generate '--help' output. + * for options; this is used to automatically generate '--help' output. An option + * which takes an argument and which has a short form can also be "joined", in + * this case the option's argument can either be separated, like "-I path" or + * joined with the short option name, like "-Ipath". */ public abstract class Option { @@ -56,6 +59,8 @@ public abstract class Option private String argumentName; + private boolean joined; + /** * Create a new option with the given short name and description. * @@ -64,6 +69,8 @@ public abstract class Option */ protected Option(char shortName, String description) { + if (shortName == 0) + throw new IllegalArgumentException("short name must not be \\0"); this.shortName = shortName; this.description = description; } @@ -78,12 +85,34 @@ public abstract class Option */ protected Option(char shortName, String description, String argumentName) { + if (shortName == 0) + throw new IllegalArgumentException("short name must not be \\0"); this.shortName = shortName; this.description = description; this.argumentName = argumentName; } /** + * Create a new option with the given short name and description. + * + * @param shortName the short name + * @param description the description + * @param argumentName the descriptive name of the argument, if this option + * takes an argument; otherwise null + * @param joined true if the short option is joined to its argument + */ + protected Option(char shortName, String description, String argumentName, + boolean joined) + { + if (shortName == 0) + throw new IllegalArgumentException("short name must not be \\0"); + this.shortName = shortName; + this.description = description; + this.argumentName = argumentName; + this.joined = joined; + } + + /** * Create a new option with the given long name and description. The long name * should be specified without any leading dashes. * @@ -122,6 +151,8 @@ public abstract class Option */ protected Option(String longName, char shortName, String description) { + if (shortName == 0) + throw new IllegalArgumentException("short name must not be \\0"); this.shortName = shortName; this.longName = longName; this.description = description; @@ -140,10 +171,35 @@ public abstract class Option protected Option(String longName, char shortName, String description, String argumentName) { + if (shortName == 0) + throw new IllegalArgumentException("short name must not be \\0"); + this.shortName = shortName; + this.longName = longName; + this.argumentName = argumentName; + this.description = description; + } + + /** + * Create a new option with the given short and long names and description. + * The long name should be specified without any leading dashes. + * + * @param longName the long name + * @param shortName the short name + * @param description the description + * @param argumentName the descriptive name of the argument, if this option + * takes an argument; otherwise null + * @param joined true if the short option is joined to its argument + */ + protected Option(String longName, char shortName, String description, + String argumentName, boolean joined) + { + if (shortName == 0) + throw new IllegalArgumentException("short name must not be \\0"); this.shortName = shortName; this.longName = longName; this.argumentName = argumentName; this.description = description; + this.joined = joined; } /** @@ -188,6 +244,16 @@ public abstract class Option } /** + * Return true if this is a "joined" option, false otherwise. + * Only the short form of an option can be joined; this will always + * return false for an option which does not have a short form. + */ + public boolean isJoined() + { + return joined; + } + + /** * This is called by the parser when this option is recognized. It may be * called multiple times during a single parse. If this option takes an * argument, the argument will be passed in. Otherwise the argument will be diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java index f7d966d9459..63853b2d0e4 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java +++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionGroup.java @@ -231,10 +231,7 @@ public class OptionGroup { if (argName != null) { - // This is a silly hack just for '-J'. We don't - // support joined options in general, but this option - // is filtered out before argument processing can see it. - if (option.getShortName() != 'J') + if (! option.isJoined()) { out.print(' '); ++column; diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java index 3c6cf6f46ac..b142836a5dc 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java +++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java @@ -72,6 +72,8 @@ public class Parser private OptionGroup defaultGroup = new OptionGroup(); + private OptionGroup finalGroup; + // These are used while parsing. private int currentIndex; @@ -166,7 +168,7 @@ public class Parser this.longOnly = longOnly; // Put standard options in their own section near the end. - OptionGroup finalGroup = new OptionGroup(Messages.getString("Parser.StdOptions")); //$NON-NLS-1$ + finalGroup = new OptionGroup(Messages.getString("Parser.StdOptions")); //$NON-NLS-1$ finalGroup.add(new Option("help", Messages.getString("Parser.PrintHelp")) //$NON-NLS-1$ //$NON-NLS-2$ { public void parsed(String argument) throws OptionException @@ -183,15 +185,6 @@ public class Parser System.exit(0); } }); - finalGroup.add(new Option('J', Messages.getString("Parser.JArgument"), Messages.getString("Parser.JName")) //$NON-NLS-1$ //$NON-NLS-2$ - { - public void parsed(String argument) throws OptionException - { - // -J should be handled by the appletviewer wrapper binary. - // We add it here so that it shows up in the --help output. - // Note that there is a special case for this in OptionGroup. - } - }); add(finalGroup); add(defaultGroup); @@ -230,6 +223,18 @@ public class Parser } /** + * This is like {@link #add(Option)}, but adds the option to the "final" + * group. This should be used sparingly, if at all; it is intended for + * other very generic options like --help or --version. + * @param opt the option to add + */ + protected synchronized void addFinal(Option opt) + { + options.add(opt); + finalGroup.add(opt); + } + + /** * Add an option group to this parser. All the options in this group will be * recognized by the parser. * @@ -314,11 +319,10 @@ public class Parser String option = real.substring(index); String justName = option; int eq = option.indexOf('='); - if (eq != - 1) + if (eq != -1) justName = option.substring(0, eq); - char shortName = 0; - if (justName.length() == 1) - shortName = justName.charAt(0); + boolean isPlainShort = justName.length() == 1; + char shortName = justName.charAt(0); Option found = null; for (int i = options.size() - 1; i >= 0; --i) { @@ -328,8 +332,14 @@ public class Parser found = opt; break; } - if (shortName != 0 && opt.getShortName() == shortName) + if ((isPlainShort || opt.isJoined()) + && opt.getShortName() == shortName) { + if (! isPlainShort) + { + // The rest of the option string is the argument. + eq = 0; + } found = opt; break; } @@ -343,7 +353,7 @@ public class Parser String argument = null; if (found.getTakesArgument()) { - if (eq == - 1) + if (eq == -1) argument = getArgument(real); else argument = option.substring(eq + 1); @@ -358,35 +368,42 @@ public class Parser found.parsed(argument); } - private void handleShortOption(char option) throws OptionException + private void handleShortOptions(String option) throws OptionException { - Option found = null; - for (int i = options.size() - 1; i >= 0; --i) + for (int charIndex = 1; charIndex < option.length(); ++charIndex) { - Option opt = (Option) options.get(i); - if (option == opt.getShortName()) + char optChar = option.charAt(charIndex); + Option found = null; + for (int i = options.size() - 1; i >= 0; --i) { - found = opt; - break; + Option opt = (Option) options.get(i); + if (optChar == opt.getShortName()) + { + found = opt; + break; + } } - } - if (found == null) - { - String msg = MessageFormat.format(Messages.getString("Parser.UnrecDash"), //$NON-NLS-1$ - new Object[] { "" + option }); //$NON-NLS-1$ - throw new OptionException(msg); - } - String argument = null; - if (found.getTakesArgument()) - argument = getArgument("-" + option); //$NON-NLS-1$ - found.parsed(argument); - } - - private void handleShortOptions(String option) throws OptionException - { - for (int i = 1; i < option.length(); ++i) - { - handleShortOption(option.charAt(i)); + if (found == null) + { + String msg = MessageFormat.format(Messages.getString("Parser.UnrecDash"), //$NON-NLS-1$ + new Object[] { "" + optChar }); //$NON-NLS-1$ + throw new OptionException(msg); + } + String argument = null; + if (found.getTakesArgument()) + { + // If this is a joined short option, and there are more + // characters left in this argument, use those as the + // argument. + if (found.isJoined() && charIndex + 1 < option.length()) + { + argument = option.substring(charIndex + 1); + charIndex = option.length(); + } + else + argument = getArgument("-" + optChar); //$NON-NLS-1$ + } + found.parsed(argument); } } diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/package.html b/libjava/classpath/tools/gnu/classpath/tools/getopt/package.html new file mode 100644 index 00000000000..ce6d34a4370 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/package.html @@ -0,0 +1,49 @@ + + + + +GNU Classpath - gnu.classpath.tools.getopt + + +

      This package contains a GNU-style command line option parser. It +handles short and long options, options with arguments (optionally +joined to the option text), and a "long option only" mode. It also +automatically handles --help output.

      + + + diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.java b/libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.java deleted file mode 100644 index c910d7083c7..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.java +++ /dev/null @@ -1,189 +0,0 @@ -/* GRMIC.java -- GIOP support for RMIC. - Copyright (C) 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. -*/ - -package gnu.classpath.tools.giop; - -import gnu.classpath.tools.HelpPrinter; -import gnu.classpath.tools.giop.grmic.GiopRmicCompiler; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; - -/** - * The main class of the GIOP compiler to generate stubs and ties for - * javax.rmi package. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class GRMIC -{ - /** - * The version of the compiler. - */ - public static String VERSION = "0.0 alpha pre"; - - /** - * The GRMIC compiler methods - * - * @param args the compiler parameters. - */ - public static void main(String[] args) - { - boolean noWrite = false; - boolean verbose = false; - - String HelpPath = "giop/GRMIC.txt"; - - HelpPrinter.checkHelpKey(args, HelpPath); - - File output = new File("."); - - if (args.length == 0) - { - HelpPrinter.printHelpAndExit(HelpPath); - } - else - { - GiopRmicCompiler compiler = new GiopRmicCompiler(); - - int cl = - 1; - - Options: for (int i = 0; i < args.length; i++) - { - String c = args[i]; - if (c.equals("-poa")) - compiler.setPoaMode(true); - else if (c.equals("-impl")) - compiler.setPoaMode(false); - else if (c.equals("-v")) - { - printVersion(); - System.exit(0); - } - else if (c.equals("-nowrite")) - noWrite = true; - else if (c.equals("-nowarn")) - compiler.setWarnings(false); - else if (c.equals("-verbose")) - { - verbose = true; - compiler.setVerbose(true); - } - else if (c.equals("-force")) - { - compiler.setForce(true); - } - else if (c.equals("-d")) - { - int f = i + 1; - if (f < args.length) - { - output = new File(args[f]); - i++; - } - else - HelpPrinter.printHelpAndExit(HelpPath); - } - else if (c.equals("-classpath")) - { - int f = i + 1; - if (f < args.length) - { - compiler.setClassPath(args[f]); - i++; - } - else - HelpPrinter.printHelpAndExit(HelpPath); - } - else if (c.charAt(0) != '-') - // No more options - start of class list. - { - cl = i; - break Options; - } - } - - if (cl < 0) - HelpPrinter.printHelpAndExit(HelpPath); - - if (verbose) - System.out.println("Compiling to " + output.getAbsolutePath()); - - // Compile classes - Compile: for (int i = cl; i < args.length; i++) - { - if (args[i].charAt(0) != '-') - { - compiler.reset(); - Class c = compiler.loadClass(args[i]); - - compiler.compile(c); - String packag = compiler.getPackageName().replace('.', '/'); - File fw = new File(output, packag); - - // Generate stub. - String stub = compiler.generateStub(); - String subName = "_" + compiler.getStubName() + "_Stub.java"; - - compiler.reset(); - compiler.compile(c); - - // Generate tie - String tie = compiler.generateTie(); - String tieName = "_" + compiler.name(c) + "_Tie.java"; - - if (noWrite) - continue Compile; - - try - { - fw.mkdirs(); - OutputStream out = new FileOutputStream(new File(fw, - subName)); - out.write(stub.getBytes()); - out.close(); - - out = new FileOutputStream(new File(fw, tieName)); - out.write(tie.getBytes()); - out.close(); - } - catch (IOException ioex) - { - System.err.println("Output path not accessible"); - ioex.printStackTrace(); - System.exit(1); - } - } - } - } - } - - /** - * Print the version information. - */ - public static void printVersion() - { - System.out.println - ("grmic v "+VERSION+" - GIOP stub and tie generator for javax.rmi.* "); - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.txt b/libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.txt deleted file mode 100644 index 875bcdbcf38..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/GRMIC.txt +++ /dev/null @@ -1,33 +0,0 @@ -GIOP stub and tie generator source code generator for javax.rmi.*, omg.org.* - -Copyright 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Please report bugs at http://www.gnu.org/software/classpath/bugs.html - -Usage: grmic - - where includes: - -poa Generate the Servant based ties (default) - -impl Generate the obsoleted ObjectImpl based ties - (for backward compatibility) - -nowarn Show no warnings - -nowrite Do not write any files (check for errors only) - -d Place generated files into the given folder - -classpath Specifies the path, where to find the classes being - compiled - - -help Print this help text - -v Print version - -verbose Verbose output - -force Try to generate code even if the input classes seem not - consistent with RMI specification. - - - and can include one or more non abstract classes that implement - Remote and are accessible via current class path. - -* This tool generates the source code that must be compiled with java compiler. -* GRMIC is invoked from RMIC if the -iiop or -giop keys are specified. - diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.java b/libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.java deleted file mode 100644 index 411b8997d49..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.java +++ /dev/null @@ -1,109 +0,0 @@ -/* IorParser.java -- IOR parser. - 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. -*/ - - -package gnu.classpath.tools.giop; - -import gnu.CORBA.IOR; -import gnu.classpath.tools.HelpPrinter; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; - -import org.omg.CORBA.BAD_PARAM; - -/** - * Parses the information, encoded in the Interoperable Object References - * (IORs). - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class IorParser -{ - /** - * Parse and print IOR reference. The system exit code is 0 if the parsed - * IOR was correct, 1 if it was invalid or missing. - * - * @param args supports -f file to read IOR from the file. - */ - public static void main(String[] args) - { - boolean ok = false; - String HelpResource = "giop/IorParser.txt"; - HelpPrinter.checkHelpKey(args, HelpResource); - if (args.length == 0) - HelpPrinter.printHelpAndExit(HelpResource); - else if (args[0].equals("-f") && args.length==2) - { - File file = new File(args[1]); - if (!file.exists()) - System.err.println("The file "+file.getAbsolutePath()+" is missing."); - // Read IOR reference from file. - String ior = null; - try - { - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - ior = br.readLine(); - br.close(); - ok = parseAndPrint(ior); - } - catch (IOException e) - { - System.err.print("Unable to read the file "+file); - e.printStackTrace(); - } - - } - else if (args.length == 1) - ok = parseAndPrint(args[0]); - else - HelpPrinter.printHelpAndExit(HelpResource); - - if (ok) - System.exit(0); - else - System.exit(1); - } - - /** - * Parse and print IOR. - * - * @param ior the IOR string to anlyse. - * @return true if the passed value is a valid IOR, false otherwise. - */ - public static boolean parseAndPrint(String ior) - { - try - { - IOR gior = IOR.parse(ior); - System.out.println(gior.toStringFormatted()); - return true; - } - catch (BAD_PARAM e) - { - System.out.println("Invalid ior: "+e.getMessage()); - return false; - } - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.txt b/libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.txt deleted file mode 100644 index 3b04224f126..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/IorParser.txt +++ /dev/null @@ -1,10 +0,0 @@ -Copyright 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Please report bugs at http://www.gnu.org/software/classpath/bugs.html - -IOR (interoperable GIOP object reference) parser, - usage: IorParser -f ior_file - or: IorParser -f ior_string - diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/NameService.java b/libjava/classpath/tools/gnu/classpath/tools/giop/NameService.java deleted file mode 100644 index 7e13185f246..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/NameService.java +++ /dev/null @@ -1,75 +0,0 @@ -/* NameService.java -- Transient GIOP naming service. - 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 gnu.classpath.tools.giop; - -import gnu.CORBA.NamingService.NamingServiceTransient; -import gnu.classpath.tools.HelpPrinter; - -/** - * The implementation of the transient naming service. The naming service - * is a kind of the network server that registers local and remote objects - * by name, and later can provide the object reference in response to the - * given name. - * - * GNU Classpath currently works with this naming service and is also - * interoperable with the Sun Microsystems naming services from releases 1.3 and - * 1.4, both transient tnameserv and persistent orbd. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class NameService -{ - /** - * Start the naming service on the current host at the given port. The - * parameter -org.omg.CORBA.ORBInitialPort NNN or -ORBInitialPort NNN, if - * present, specifies the port, on that the service must be started. If this - * key is not specified, the service starts at the port 900. - * - * The parameter -ior FILE_NAME, if present, forces to store the ior string of - * this naming service to the specified file. - * - * @param args the parameter string. - */ - public static void main(String[] args) - { - HelpPrinter.checkHelpKey(args, "giop/NamingService.txt"); - System.out.println("Please use --help for options."); - NamingServiceTransient.main(args); - } - -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.java b/libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.java deleted file mode 100644 index df0c9539d6a..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.java +++ /dev/null @@ -1,186 +0,0 @@ -/* NamingServicePersistent.java -- The persistent naming service. - 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 gnu.classpath.tools.giop; - -import gnu.CORBA.OrbFunctional; -import gnu.CORBA.IOR; -import gnu.CORBA.NamingService.Ext; -import gnu.classpath.tools.HelpPrinter; -import gnu.classpath.tools.giop.nameservice.PersistentContext; - -import org.omg.CosNaming.NamingContextExt; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.PrintStream; -import java.io.UnsupportedEncodingException; - -/** - * The server for the gnu classpath persistent naming service. - * - * GNU Classpath currently works with this naming service and is also - * interoperable with the Sun Microsystems naming services from releases 1.3 and - * 1.4, both transient tnameserv and persistent orbd. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class NameServicePersistent -{ - /** - * The default port (900), on that the naming service starts if no - * -ORBInitialPort is specified in the command line. - */ - public static final int PORT = 900; - - /** - * Get the object key for the naming service. The default key is the string - * "NameService" in ASCII. - * - * @return the byte array. - */ - public static byte[] getDefaultKey() - { - try - { // NameService - return "NameService".getBytes("UTF-8"); - } - catch (UnsupportedEncodingException ex) - { - throw new InternalError("UTF-8 unsupported"); - } - } - - /** - * Start the naming service on the current host at the given port. The - * parameter -org.omg.CORBA.ORBInitialPort NNN or -ORBInitialPort NNN, if - * present, specifies the port, on that the service must be started. If this - * key is not specified, the service starts at the port 900. The parameter - * -ior FILE_NAME, if present, forces to store the ior string of this naming - * service to the specified file. - * - * @param args the parameter string. - */ - public static void main(String[] args) - { - HelpPrinter.checkHelpKey(args, "giop/NameServicePersistent.txt"); - System.out.println("Please use --help for options."); - - int port = PORT; - String iorf = null; - boolean reset = false; - String folder = ""; - try - { - // Create and initialize the ORB - final OrbFunctional orb = new OrbFunctional(); - - for (int i = 0; i < args.length; i++) - { - if (i < args.length - 1) - { - if (args[i].endsWith("ORBInitialPort")) - port = Integer.parseInt(args[i + 1]); - - if (args[i].equals("-ior")) - iorf = args[i + 1]; - - if (args[i].equals("-folder")) - folder = args[i + 1]; - } - if (args[i].equals("-reset")) - reset = true; - } - - OrbFunctional.setPort(port); - - // Create the servant and register it with the ORB - File dataFolder = new File(folder); - System.out.println("Persistent data stored at " - + dataFolder.getAbsolutePath()); - dataFolder.mkdirs(); - - // / TODO support more starting modes. - NamingContextExt namer = new Ext( - new PersistentContext( - orb, - dataFolder, - reset)); - - // Case with the key "NameService". - orb.connect(namer, "NameService".getBytes()); - - // Storing the IOR reference. - String ior = orb.object_to_string(namer); - IOR iorr = IOR.parse(ior); - if (iorf != null) - { - FileOutputStream f = new FileOutputStream(iorf); - PrintStream p = new PrintStream(f); - p.print(ior); - p.close(); - } - - System.out.println("GNU Classpath persistent naming service " - + "started at " + iorr.Internet.host + ":" - + iorr.Internet.port + " key 'NameService'.\n\n" - + "Copyright (C) 2006 Free Software Foundation\n" - + "This tool comes with ABSOLUTELY NO WARRANTY. " - + "This is free software, and you are\nwelcome to " - + "redistribute it under conditions, defined in " - + "GNU Classpath license.\n\n" + ior); - - new Thread() - { - public void run() - { - // Wait for invocations from clients. - orb.run(); - } - }.start(); - } - catch (Exception e) - { - System.err.println("ERROR: " + e); - e.printStackTrace(System.out); - } - - // Restore the default value for allocating ports for the subsequent - // objects. - OrbFunctional.setPort(OrbFunctional.DEFAULT_INITIAL_PORT); - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.txt b/libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.txt deleted file mode 100644 index 3de15f62a96..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/NameServicePersistent.txt +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Please report bugs at http://www.gnu.org/software/classpath/bugs.html - -GNU Classpath GIOP persitent naming service. - usage: NameServicePersistent - - where includes: -* -org.omg.CORBA.ORBInitialPort NNN - or -ORBInitialPort NNN - specifies the port, on that the - service must be started. If this key - is not specified, the service starts - at the port 900. - -* -ior FILE_NAME - store the IOR reference to this naming - service to the specified file. The - IOR reference contains enough - information to locate the service - on the web. -* - folder FOLDER - store the persistent information - to the given folder -* - reset - discard any previously stored - persistent information (cold start) - - - diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/NamingService.txt b/libjava/classpath/tools/gnu/classpath/tools/giop/NamingService.txt deleted file mode 100644 index f57e4ac66a7..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/NamingService.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Please report bugs at http://www.gnu.org/software/classpath/bugs.html - -GNU Classpath GIOP naming service, usage: NameService - - where includes: -* -org.omg.CORBA.ORBInitialPort NNN or -* -ORBInitialPort NNN - specifies the port, on that the - service must be started. If this key - is not specified, the service starts - at the port 900. - -* -ior FILE_NAME - store the IOR reference to this naming - service to the specified file. The - IOR reference contains enough - information to locate the service - on the web. - diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/README b/libjava/classpath/tools/gnu/classpath/tools/giop/README deleted file mode 100644 index 94fc2f15825..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/README +++ /dev/null @@ -1,19 +0,0 @@ -This package defines GIOP tools for creating the applications that use this -protocol. It provides necessary support for org.omg.* and javax.rmi.* -packages. - -All GIOP tools support the --help option. - -The list of the currently available tools: - -* GRMIC - RMI-IIOP stub and tie generator. -* NameService - GIOP transient naming service (this tool is called - tnameserv in Sun's package). -* NameServicePersistent - - GIOP persistent naming service (this tool is called - orbd in Sun's package). -* IorParser - Parses the stringified form of the interoperable - object references (IOR's). -* RMIC - RMI stub and tie source code generator (complements - the ASM based bytecode generator in the separate - tools package). \ No newline at end of file diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/CompilationError.java b/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/CompilationError.java deleted file mode 100644 index d1fa814ee38..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/CompilationError.java +++ /dev/null @@ -1,52 +0,0 @@ -/* CompilationError.java -- Thrown on compilation error. - Copyright (C) 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. -*/ - -package gnu.classpath.tools.giop.grmic; - -/** - * This error is thrown when the target being compiled has illegal - * strutures. - * - * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) - */ -public class CompilationError extends Error -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** - * Create error with explaining message and cause. - */ - public CompilationError(String message, Throwable cause) - { - super(message, cause); - } - - /** - * Create error with explaining message - */ - public CompilationError(String message) - { - super(message); - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/Generator.java b/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/Generator.java deleted file mode 100644 index 17ab821ecc9..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/Generator.java +++ /dev/null @@ -1,128 +0,0 @@ -/* Generator.java -- Generic code generator. - Copyright (C) 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. -*/ - -package gnu.classpath.tools.giop.grmic; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.StringReader; -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; - -/** - * Contains basic methods, used in code generation. - * - * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) - */ -public class Generator -{ - /** - * Get resource with the given name, as string. - * - * @param name the resource name - * @return the resourse string (in subfolder /templates). - */ - public String getResource(String name) - { - String resourcePath = "templates/" + name; - InputStream in = getClass().getResourceAsStream(resourcePath); - - if (in == null) - throw new InternalError(getClass().getName() + ": no resource " - + resourcePath); - - BufferedReader r = new BufferedReader(new InputStreamReader(in)); - StringBuffer b = new StringBuffer(); - - String s; - try - { - while ((s = r.readLine()) != null) - { - b.append(s); - b.append('\n'); - } - r.close(); - } - catch (IOException e) - { - InternalError ierr = new InternalError("No expected resource " + name); - ierr.initCause(e); - throw ierr; - } - - return b.toString(); - } - - /** - * Replace the variable references (starting from #) in the template string by - * the values, present in the given map. The strings, not present in the - * variable map, are ignored. - * - * @param template - * the template string - * @param variables - * the map of variables (name to value) to replace. - * @return the string with replaced values. - */ - public String replaceAll(String template, Map variables) - { - BufferedReader r = new BufferedReader(new StringReader(template)); - String s; - StringBuffer b = new StringBuffer(template.length()); - try - { - Iterator iter; - Collection vars = variables.keySet(); - while ((s = r.readLine()) != null) - { - // At least one variable must appear in the string to make - // the string scan sensible. - if (s.indexOf('#') >= 0) - { - iter = vars.iterator(); - String variable; - while (iter.hasNext()) - { - variable = (String) iter.next(); - if (s.indexOf(variable) >= 0) - s = s.replaceAll(variable, - (String) variables.get(variable)); - } - } - b.append(s); - b.append('\n'); - } - r.close(); - } - catch (IOException e) - { - // This should never happen. - InternalError ierr = new InternalError(""); - ierr.initCause(e); - throw ierr; - } - return b.toString(); - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopIo.java b/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopIo.java deleted file mode 100644 index 0e0df7bc57a..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopIo.java +++ /dev/null @@ -1,112 +0,0 @@ -/* GiopIo.java -- Generates GIOP input/output statements. - Copyright (C) 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. -*/ - -package gnu.classpath.tools.giop.grmic; - -import java.rmi.Remote; - -import org.omg.CORBA.portable.ObjectImpl; - -/** - * Generates the code for reading and writing data over GIOP stream. - * - * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) - */ -public class GiopIo -{ - /** - * Get the statement for writing the variable of the given type to the GIOP ({@link org.omg.CORBA_2_3.portable.OutputStream) stream. The - * stream is always named "out". - * - * @param c - * the class of the object being written - * @param variable - * the variable, where the object value is stored - * @param r - * the parent generator, used to name the class - * @return the write statement. - */ - public static String getWriteStatement(Class c, String variable, GiopRmicCompiler r) - { - if (c.equals(boolean.class)) - return "out.write_boolean(" + variable + ");"; - if (c.equals(byte.class)) - return "out.write_octet(" + variable + ");"; - else if (c.equals(short.class)) - return "out.write_int(" + variable + ");"; - else if (c.equals(int.class)) - return "out.write_long(" + variable + ");"; - else if (c.equals(long.class)) - return "out.write_long_long(" + variable + ");"; - else if (c.equals(double.class)) - return "out.write_double(" + variable + ");"; - else if (c.equals(float.class)) - return "out.write_float(" + variable + ");"; - else if (c.equals(char.class)) - return "out.write_char(" + variable + ");"; - else if (Remote.class.isAssignableFrom(c)) - return "Util.writeRemoteObject(out, " + variable + ");"; - else if (ObjectImpl.class.isAssignableFrom(c)) - return "out.write_Object(" + variable + ");"; - else - return "out.write_value(" + variable + ", " + r.name(c) + ".class);"; - } - - /** - * Get the statement for reading the value of the given type from to the GIOP ({@link org.omg.CORBA_2_3.portable.InputStream) stream. The - * stream is always named "in". - * - * @param c - * the class of the object being written - * @param r - * the parent generator, used to name the class - * @return the right side of the read statement. - */ - public static String getReadStatement(Class c, GiopRmicCompiler r) - { - if (c.equals(boolean.class)) - return "in.read_boolean();"; - else if (c.equals(byte.class)) - return "in.read_octet();"; - else if (c.equals(short.class)) - return "in.read_int();"; - else if (c.equals(int.class)) - return "in.read_long();"; - else if (c.equals(long.class)) - return "in.read_long_long();"; - else if (c.equals(double.class)) - return "in.read_double();"; - else if (c.equals(float.class)) - return "in.read_float();"; - else if (c.equals(char.class)) - return "in.read_char();"; - else if (Remote.class.isAssignableFrom(c)) - return "(" + r.name(c) - + ") PortableRemoteObject.narrow(in.read_Object()," + r.name(c) - + ".class);"; - else if (ObjectImpl.class.isAssignableFrom(c)) - return "in.read_Object();"; - else - return "(" + r.name(c) - + ") in.read_value(" + r.name(c) + ".class);"; - } - -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java deleted file mode 100644 index 6d895a14cd3..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java +++ /dev/null @@ -1,593 +0,0 @@ -/* GiopRmicCompiler -- Central GIOP-based RMI stub and tie compiler class. - Copyright (C) 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. -*/ - -package gnu.classpath.tools.giop.grmic; - -import gnu.classpath.tools.AbstractMethodGenerator; - -import java.io.File; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLClassLoader; -import java.rmi.Remote; -import java.rmi.RemoteException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Properties; -import java.util.StringTokenizer; -import java.util.TreeSet; - -/** - * Provides the extended rmic functionality to generate the POA - based classes - * for GIOP (javax.rmi.CORBA package). - * - * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) - */ -public class GiopRmicCompiler - extends Generator implements Comparator -{ - /** The package name. */ - protected String packag; - - /** - * The "basic" name (normally, the interface name, unless several Remote - - * derived interfaces are implemented. - */ - protected String name; - - /** - * The name (without package) of the class, passed as the parameter. - */ - protected String implName; - - /** - * The proposed name for the stub. - */ - protected String stubName; - - /** - * The Remote's, implemented by this class. - */ - protected Collection implementedRemotes = new HashSet(); - - /** - * The extra classes that must be imported. - */ - protected Collection extraImports = new HashSet(); - - /** - * The methods we must implement. - */ - protected Collection methods = new HashSet(); - - /** - * The map of all code generator variables. - */ - public Properties vars = new Properties(); - - /** - * If this flag is set (true by default), the compiler generates the Servant - * based classes. If set to false, the compiler generates the old style - * ObjectImpl based classes. - */ - protected boolean poaMode = true; - - /** - * If this flag is set (true by default), the compiler emits warnings. - */ - protected boolean warnings = true; - - /** - * Verbose output - */ - protected boolean verbose = false; - - /** - * Force mode - do not check the exceptions - */ - protected boolean force = false; - - /** - * The class loader to load the class being compiled. - */ - ClassLoader classLoader; - - /** - * Clear data, preparing for the next compilation. - */ - public void reset() - { - packag = name = implName = stubName = null; - implementedRemotes.clear(); - extraImports.clear(); - methods.clear(); - vars.clear(); - } - - /** - * Set the class path (handle the -classpath key) - * - * @param classPath the class path to set. - */ - public void setClassPath(String classPath) - { - classLoader = Thread.currentThread().getContextClassLoader(); - StringTokenizer tok = new StringTokenizer(classPath, File.pathSeparator, - true); - ArrayList urls = new ArrayList(tok.countTokens()); - String s = null; - try - { - while (tok.hasMoreTokens()) - { - s = tok.nextToken(); - if (s.equals(File.pathSeparator)) - urls.add(new File(".").toURL()); - else - { - urls.add(new File(s).toURL()); - if (tok.hasMoreTokens()) - { - // Skip the separator. - tok.nextToken(); - // If the classpath ended with a separator, - // append the current directory. - if (! tok.hasMoreTokens()) - urls.add(new File(".").toURL()); - } - } - } - } - catch (MalformedURLException ex) - { - System.err.println("Malformed path '" + s + "' in classpath '" - + classPath + "'"); - System.exit(1); - } - URL[] u = new URL[urls.size()]; - for (int i = 0; i < u.length; i++) - { - u[i] = (URL) urls.get(i); - } - - classLoader = new URLClassLoader(u, classLoader); - } - - /** - * Loads the class with the given name (uses class path, if applicable) - * - * @param name the name of the class. - */ - public Class loadClass(String name) - { - ClassLoader loader = classLoader; - if (loader == null) - loader = Thread.currentThread().getContextClassLoader(); - try - { - return loader.loadClass(name); - } - catch (ClassNotFoundException e) - { - System.err.println(name+" not found on "+loader); - System.exit(1); - // Unreacheable code. - return null; - } - } - - /** - * Compile the given class (the instance of Remote), generating the stub and - * tie for it. - * - * @param remote - * the class to compile. - */ - public synchronized void compile(Class remote) - { - reset(); - String s; - - // Get the package. - s = remote.getName(); - int p = s.lastIndexOf('.'); - if (p < 0) - { - // Root package. - packag = ""; - implName = name = s; - } - else - { - packag = s.substring(0, p); - implName = name = s.substring(p + 1); - } - - name = convertStubName(name); - - stubName = name; - - vars.put("#name", name); - vars.put("#package", packag); - vars.put("#implName", implName); - - if (verbose) - System.out.println("Package " + packag + ", name " + name + " impl " - + implName); - - // Get the implemented remotes. - Class[] interfaces = remote.getInterfaces(); - - for (int i = 0; i < interfaces.length; i++) - { - if (Remote.class.isAssignableFrom(interfaces[i])) - { - if (! interfaces[i].equals(Remote.class)) - { - implementedRemotes.add(interfaces[i]); - } - } - } - - vars.put("#idList", getIdList(implementedRemotes)); - - // Collect and process methods. - Iterator iter = implementedRemotes.iterator(); - - while (iter.hasNext()) - { - Class c = (Class) iter.next(); - Method[] m = c.getMethods(); - - // Check if throws RemoteException. - for (int i = 0; i < m.length; i++) - { - Class[] exc = m[i].getExceptionTypes(); - boolean remEx = false; - - for (int j = 0; j < exc.length; j++) - { - if (RemoteException.class.isAssignableFrom(exc[j])) - { - remEx = true; - break; - } - } - if (! remEx && !force) - throw new CompilationError(m[i].getName() + ", defined in " - + c.getName() - + ", does not throw " - + RemoteException.class.getName()); - AbstractMethodGenerator mm = createMethodGenerator(m[i]); - methods.add(mm); - } - } - } - - /** - * Create the method generator for the given method. - * - * @param m the method - * - * @return the created method generator - */ - protected AbstractMethodGenerator createMethodGenerator(Method m) - { - return new MethodGenerator(m, this); - } - - /** - * Get the name of the given class. The class is added to imports, if not - * already present and not from java.lang and not from the current package. - * - * @param nameIt - * the class to name - * @return the name of class as it should appear in java language - */ - public String name(Class nameIt) - { - if (nameIt.isArray()) - { - // Mesure dimensions: - int dimension = 0; - Class finalComponent = nameIt; - while (finalComponent.isArray()) - { - finalComponent = finalComponent.getComponentType(); - dimension++; - } - - StringBuffer brackets = new StringBuffer(); - - for (int i = 0; i < dimension; i++) - { - brackets.append("[]"); - } - - return name(finalComponent) + " " + brackets; - } - else - { - String n = nameIt.getName(); - if (! nameIt.isArray() && ! nameIt.isPrimitive()) - if (! n.startsWith("java.lang") - && ! (packag != null && n.startsWith(packag))) - extraImports.add(n); - - int p = n.lastIndexOf('.'); - if (p < 0) - return n; - else - return n.substring(p + 1); - } - } - - /** - * Get the RMI-style repository Id for the given class. - * - * @param c - * the interface, for that the repository Id must be created. - * @return the repository id - */ - public String getId(Class c) - { - return "RMI:" + c.getName() + ":0000000000000000"; - } - - /** - * Get repository Id string array declaration. - * - * @param remotes - * the collection of interfaces - * @return the fully formatted string array. - */ - public String getIdList(Collection remotes) - { - StringBuffer b = new StringBuffer(); - - // Keep the Ids sorted, ensuring, that the same order will be preserved - // between compilations. - TreeSet sortedIds = new TreeSet(); - - Iterator iter = remotes.iterator(); - while (iter.hasNext()) - { - sortedIds.add(getId((Class) iter.next())); - } - - iter = sortedIds.iterator(); - while (iter.hasNext()) - { - b.append(" \"" + iter.next() + "\""); - if (iter.hasNext()) - b.append(", \n"); - } - return b.toString(); - } - - /** - * Generate stub. Can only be called from {@link #compile}. - * - * @return the string, containing the text of the generated stub. - */ - public String generateStub() - { - String template = getResource("Stub.jav"); - - // Generate methods. - StringBuffer b = new StringBuffer(); - Iterator iter = methods.iterator(); - while (iter.hasNext()) - { - AbstractMethodGenerator m = (AbstractMethodGenerator) iter.next(); - b.append(m.generateStubMethod()); - } - - vars.put("#stub_methods", b.toString()); - vars.put("#imports", getImportStatements()); - vars.put("#interfaces", getAllInterfaces()); - - String output = replaceAll(template, vars); - return output; - } - - /** - * Get the list of all interfaces, implemented by the class, that are - * derived from Remote. - * - * @return the string - all interfaces. - */ - public String getAllInterfaces() - { - StringBuffer b = new StringBuffer(); - Iterator iter = implementedRemotes.iterator(); - - while (iter.hasNext()) - { - b.append(name((Class) iter.next())); - if (iter.hasNext()) - b.append(", "); - } - - return b.toString(); - } - - /** - * Generate Tie. Can only be called from {@link #compile}. - * - * @return the string, containing the text of the generated Tie. - */ - public String generateTie() - { - String template; - if (poaMode) - template = getResource("Tie.jav"); - else - template = getResource("ImplTie.jav"); - - // Generate methods. - HashFinder hashFinder = new HashFinder(); - - // Find the hash character position: - Iterator iter = methods.iterator(); - String[] names = new String[methods.size()]; - int p = 0; - - for (int i = 0; i < names.length; i++) - names[i] = ((MethodGenerator) iter.next()).getGiopMethodName(); - - int hashCharPosition = hashFinder.findHashCharPosition(names); - - iter = methods.iterator(); - while (iter.hasNext()) - ((MethodGenerator) iter.next()).hashCharPosition = hashCharPosition; - - vars.put("#hashCharPos", Integer.toString(hashCharPosition)); - - ArrayList sortedMethods = new ArrayList(methods); - Collections.sort(sortedMethods, this); - - iter = sortedMethods.iterator(); - - StringBuffer b = new StringBuffer(); - - MethodGenerator prev = null; - - while (iter.hasNext()) - { - MethodGenerator m = (MethodGenerator) iter.next(); - m.previous = prev; - m.hashCharPosition = hashCharPosition; - prev = m; - b.append(m.generateTieMethod()); - } - - vars.put("#tie_methods", b.toString()); - - vars.put("#imports", getImportStatements()); - - String output = replaceAll(template, vars); - return output; - } - - public int compare(Object a, Object b) - { - MethodGenerator g1 = (MethodGenerator) a; - MethodGenerator g2 = (MethodGenerator) b; - - return g1.getHashChar() - g2.getHashChar(); - } - - /** - * Import the extra classes, used as the method parameters and return values. - * - * @return the additional import block. - */ - protected String getImportStatements() - { - TreeSet imp = new TreeSet(); - - Iterator it = extraImports.iterator(); - while (it.hasNext()) - { - String ic = it.next().toString(); - imp.add("import " + ic + ";\n"); - } - - StringBuffer b = new StringBuffer(); - it = imp.iterator(); - - while (it.hasNext()) - { - b.append(it.next()); - } - return b.toString(); - } - - /** - * If this flag is set (true by default), the compiler generates the Servant - * based classes. If set to false, the compiler generates the old style - * ObjectImpl based classes. - */ - public void setPoaMode(boolean mode) - { - poaMode = mode; - } - - /** - * Set the verbose output mode (false by default) - * - * @param isVerbose the verbose output mode - */ - public void setVerbose(boolean isVerbose) - { - verbose = isVerbose; - } - - /** - * If this flag is set (true by default), the compiler emits warnings. - */ - public void setWarnings(boolean warn) - { - warnings = warn; - } - - /** - * Set the error ignore mode. - */ - public void setForce(boolean isforce) - { - force = isforce; - } - - /** - * Get the package name. - */ - public String getPackageName() - { - return packag; - } - - /** - * Get the proposed stub name - */ - public String getStubName() - { - return stubName; - } - - /** - * Additional processing of the stub name. - */ - public String convertStubName(String name) - { - // Drop the Impl suffix, if one exists. - if (name.endsWith("Impl")) - return name.substring(0, name.length() - "Impl".length()); - else - return name; - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/HashFinder.java b/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/HashFinder.java deleted file mode 100644 index 2efdb1e76de..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/HashFinder.java +++ /dev/null @@ -1,84 +0,0 @@ -/* HashFinder.java -- finds the hash character. - Copyright (C) 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. -*/ - - -package gnu.classpath.tools.giop.grmic; - -import java.util.HashSet; - -/** - * This class finds the hash character (the most different character in - * the passed array of strings). This character is used to accelerate the - * method invocation by name. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class HashFinder -{ - /** - * Find the hash char position in the given collection of strings. - * - * @param strings the string collection - * - * @return the optimal hash character position, always less then the - * length of the shortest string. - */ - public int findHashCharPosition(String[] strings) - { - // Find the length of the shortest string: - - int l = strings[0].length(); - for (int i = 1; i < strings.length; i++) - { - if (strings[i].length() < l) - l = strings[i].length(); - } - - // Find the position with the smallest number of the matching characters: - HashSet[] charLists = new HashSet[l]; - - for (int i = 0; i < charLists.length; i++) - { - charLists[i] = new HashSet(strings.length); - } - - for (int i = 0; i < strings.length; i++) - for (int p = 0; p < l; p++) - { - charLists[p].add(new Integer(strings[i].charAt(p))); - } - - int m = 0; - int v = charLists[0].size(); - - for (int i = 1; i < charLists.length; i++) - { - // Replace on equality also, seeking the hash char closer to the end - // of line. - if (charLists[i].size()>=v) - { - m = i; - v = charLists[i].size(); - } - } - return m; - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java deleted file mode 100644 index 80148d51aff..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java +++ /dev/null @@ -1,285 +0,0 @@ -/* MethodGenerator.java -- Generates methods for GIOP rmic compiler. - Copyright (C) 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. -*/ - -package gnu.classpath.tools.giop.grmic; - -import gnu.classpath.tools.AbstractMethodGenerator; - -import java.lang.reflect.Method; -import java.util.Properties; - -/** - * Keeps information about the single method and generates the code fragments, - * related to that method. - * - * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) - */ -public class MethodGenerator implements AbstractMethodGenerator -{ - /** - * The method being defined. - */ - Method method; - - /** - * The parent code generator. - */ - GiopRmicCompiler rmic; - - /** - * The previous method in the list, null for the first element. - * Used to avoid repretetive inclusion of the same hash code label. - */ - MethodGenerator previous = null; - - /** - * The hash character position. - */ - int hashCharPosition; - - /** - * Create the new method generator for the given method. - * - * @param aMethod - * the related method. - * @param aRmic - * the Rmic generator instance, where more class - related - * information is defined. - */ - public MethodGenerator(Method aMethod, GiopRmicCompiler aRmic) - { - method = aMethod; - rmic = aRmic; - } - - /** - * Get the method name. - * - * @return the name of the method. - */ - public String getGiopMethodName() - { - String m = method.getName(); - if (m.startsWith("get")) - return "_get_J" + m.substring("get".length()); - else if (m.startsWith("set")) - return "_set_J" + m.substring("set".length()); - else - return m; - } - - /** - * Get the method parameter declaration. - * - * @return the string - method parameter declaration. - */ - public String getArgumentList() - { - StringBuffer b = new StringBuffer(); - - Class[] args = method.getParameterTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(rmic.name(args[i])); - b.append(" p" + i); - if (i < args.length - 1) - b.append(", "); - } - return b.toString(); - } - - /** - * Get the method parameter list only (no type declarations). This is used to - * generate the method invocations statement. - * - * @return the string - method parameter list. - */ - public String getArgumentNames() - { - StringBuffer b = new StringBuffer(); - - Class[] args = method.getParameterTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(" p" + i); - if (i < args.length - 1) - b.append(", "); - } - return b.toString(); - } - - /** - * Get the list of exceptions, thrown by this method. - * - * @return the list of exceptions. - */ - public String getThrows() - { - StringBuffer b = new StringBuffer(); - - Class[] args = method.getExceptionTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(rmic.name(args[i])); - if (i < args.length - 1) - b.append(", "); - } - return b.toString(); - } - - /** - * Generate this method for the Stub class. - * - * @return the method body for the stub class. - */ - public String generateStubMethod() - { - String templateName; - - Properties vars = new Properties(rmic.vars); - vars.put("#return_type", rmic.name(method.getReturnType())); - vars.put("#method_name", method.getName()); - vars.put("#giop_method_name", getGiopMethodName()); - vars.put("#argument_list", getArgumentList()); - vars.put("#argument_names", getArgumentNames()); - - vars.put("#argument_write", getStubParaWriteStatement()); - - if (method.getReturnType().equals(void.class)) - vars.put("#read_return", "return;"); - else - vars.put("#read_return", - "return " - + GiopIo.getReadStatement(method.getReturnType(), rmic)); - String thr = getThrows(); - if (thr.length() > 0) - vars.put("#throws", "\n throws " + thr); - else - vars.put("#throws", ""); - - if (method.getReturnType().equals(void.class)) - templateName = "StubMethodVoid.jav"; - else - { - vars.put("#write_result", - GiopIo.getWriteStatement(method.getReturnType(), "result", - rmic)); - templateName = "StubMethod.jav"; - } - - String template = rmic.getResource(templateName); - String generated = rmic.replaceAll(template, vars); - return generated; - } - - /** - * Generate this method handling fragment for the Tie class. - * - * @return the fragment to handle this method for the Tie class. - */ - public String generateTieMethod() - { - String templateName; - - Properties vars = new Properties(rmic.vars); - vars.put("#return_type", rmic.name(method.getReturnType())); - vars.put("#method_name", method.getName()); - vars.put("#giop_method_name", getGiopMethodName()); - vars.put("#argument_list", getArgumentList()); - vars.put("#argument_names", getArgumentNames()); - - vars.put("#argument_write", getStubParaWriteStatement()); - - if (previous == null || previous.getHashChar()!=getHashChar()) - vars.put("#hashCodeLabel"," case '"+getHashChar()+"':"); - else - vars.put("#hashCodeLabel"," // also '"+getHashChar()+"':"); - - if (method.getReturnType().equals(void.class)) - templateName = "TieMethodVoid.jav"; - else - { - vars.put("#write_result", - GiopIo.getWriteStatement(method.getReturnType(), "result", - rmic)); - templateName = "TieMethod.jav"; - } - vars.put("#read_and_define_args", getRda()); - - String template = rmic.getResource(templateName); - String generated = rmic.replaceAll(template, vars); - return generated; - } - - /** - * Generate sentences for Reading and Defining Arguments. - * - * @return the sequence of sentences for reading and defining arguments. - */ - public String getRda() - { - StringBuffer b = new StringBuffer(); - Class[] args = method.getParameterTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(" "); - b.append(rmic.name(args[i])); - b.append(" "); - b.append("p"+i); - b.append(" = "); - b.append(GiopIo.getReadStatement(args[i], rmic)); - if (i ior - out.write(getKey(id, kind).getBytes()); - out.write('\n'); - out.write(ior.getBytes()); - out.write('\n'); - out.close(); - } - - /** - * Read the name component from the input stream - */ - public boolean read(BufferedReader in) throws IOException - { - String key = in.readLine(); - String xior = in.readLine(); - - if (key != null && xior != null) - { - if (key.length() < 2) - { - // A single char key cannot have the kind part. - id = key; - kind = ""; - } - else - { - // Search for the id/kind splitter, dot: - int iks = - 1; - for (int i = 1; i < key.length(); i++) - { - if (key.charAt(i) == '.') - // The id is separated from kind by dot, unless preceeded by - // the - // escape character, \. - if (key.charAt(i - 1) != '\\') - { - iks = i; - break; - } - } - - // May also end by dot, if the kind field is missing. - if (iks < 0) - { - id = key; - kind = ""; - } - else if (iks == key.length() - 1) - { - id = key.substring(0, key.length() - 1); - kind = ""; - } - else - { - id = key.substring(0, iks); - kind = key.substring(iks + 1); - } - } - ior = xior; - return true; - } - else - return false; - } - - /** - * Get the key value from the name component. - * - * @param id the component id - * @param kind the component kind - * @return the key value - */ - public String getKey(String id, String kind) - { - StringBuffer b = new StringBuffer(id.length() + 8); - appEscaping(b, id); - b.append('.'); - if (kind != null && kind.length() > 0) - appEscaping(b, kind); - return b.toString(); - } - - /** - * Append the contents of the string to this string buffer, inserting the - * escape sequences, where required. - * - * @param b a buffer to append the contents to. - * @param s a string to append. - */ - void appEscaping(StringBuffer b, String s) - { - char c; - for (int i = 0; i < s.length(); i++) - { - c = s.charAt(i); - switch (c) - { - case '.': - case '/': - case '\\': - b.append('\\'); - b.append(c); - break; - - default: - b.append(c); - break; - } - } - } - } - - /** - * The file, where the persistent naming map stores the information. The - * format of this file is n*(id LF kind LF ior LFLF). - */ - public final File file; - - /** - * The naming service ORB, used to obtain and produce the object stringified - * references. - */ - ORB orb; - - /** - * If true, all existing data on the file system are discarded. - */ - boolean reset; - - /** - * Create the persistent map that stores information in the given file. - * - * @param an_orb the naming service ORB, used to obtain and produce the object - * stringified references. - * @param mapFile the file, where the persistent information is stored. - * @param a_reset if true, the previous naming data are discarded. If false - * (normally expected), they are loaded from the persistent memory to - * provide the persistence. - */ - public PersistentMap(ORB an_orb, File mapFile, boolean a_reset) - { - super(); - orb = an_orb; - file = mapFile; - reset = a_reset; - - // Initialise the persistent map with existing data. - if (file.exists() && ! reset) - { - - BufferedReader in; - try - { - FileInputStream fin = new FileInputStream(file); - in = new BufferedReader(new InputStreamReader(fin)); - Entry e = new Entry(); - boolean ok; - - while (e.read(in)) - { - org.omg.CORBA .Object object = string_to_object(e.ior); - orb.connect(object); - map.put(e.getComponent(), object); - } - } - catch (Exception ex) - { - InternalError ierr = new InternalError(file.getAbsolutePath()); - ierr.initCause(ex); - throw ierr; - } - } - } - - /** - * Restore object from its string description. - * - * @param description the string, describing the object - * - * @return the object. - */ - protected org.omg.CORBA.Object string_to_object(String description) - { - return orb.string_to_object(description); - } - - /** - * Convert the object to its string description - * - * @param object the object to convert - * @return the string description of the object - */ - protected String object_to_string(org.omg.CORBA .Object object) - { - return orb.object_to_string(object); - } - - /** - * Put the given GIOP object, specifying the given name as a key. If the entry - * with the given name already exists, or if the given object is already - * mapped under another name, the {@link AlreadyBound} exception will be - * thrown. - * - * @param name the name - * @param object the object - */ - public void bind(NameComponent name, org.omg.CORBA.Object object) - throws AlreadyBound, InvalidName - { - if (!containsKey(name)) - { - super.bind(name, object); - register(name, object); - } - else - throw new AlreadyBound(name.id + "." + name.kind); - } - - /** - * Put the given CORBA object, specifying the given name as a key. Remove all - * pre - existing mappings for the given name and object. - * - * @param name the name. - * @param object the object - */ - public void rebind(NameComponent name, org.omg.CORBA.Object object) - throws InvalidName - { - if (containsKey(name)) - { - org.omg.CORBA.Object existing = get(name); - String ior = object_to_string(object); - String xior = object_to_string(existing); - - // Same name and same ior - nothing to do. - if (ior.equals(xior)) - return; - else - remove(name); - } - - Iterator iter = entries().iterator(); - Map.Entry item; - - // Remove the existing mapping for the given object, if present. - while (iter.hasNext()) - { - item = (Map.Entry) iter.next(); - if (item.getValue().equals(object)) - iter.remove(); - } - - map.put(name, object); - register(name, object); - } - - /** - * Removes the given name, if present. - * - * @param name a name to remove. - */ - public void remove(NameComponent name) - { - super.remove(name); - unregister(name); - } - - /** - * Register this name - object pair in the persistent storage. - * - * @param name the name. - * @param object the object - */ - public void register(NameComponent name, org.omg.CORBA.Object object) - { - // If this key is already known, and this is the same object, - // then return without action. - String ior = object_to_string(object); - - synchronized (file) - { - try - { - FileOutputStream fou; - - if (! file.exists()) - fou = new FileOutputStream(file); - else - fou = new FileOutputStream(file, true); - - Entry e = new Entry(); - e.id = name.id; - e.kind = name.kind; - e.ior = ior; - e.write(fou); - fou.close(); - } - catch (Exception e) - { - InternalError ierr = new InternalError(file.getAbsolutePath()); - ierr.initCause(e); - throw ierr; - } - } - } - - /** - * Remove this name from the persistent storage. - * - * @param name the name to remove - */ - public void unregister(NameComponent name) - { - synchronized (file) - { - try - { - File nf = new File(file.getParent(), file.getName() + "_t"); - FileInputStream fin = new FileInputStream(file); - FileOutputStream fou = new FileOutputStream(nf); - BufferedOutputStream ou = new BufferedOutputStream(fou); - - BufferedReader in = new BufferedReader(new InputStreamReader(fin)); - String s; - String nk = name.kind; - if (nk == null) - nk = ""; - - Entry e = new Entry(); - - while (e.read(in)) - { - if (e.id.equals(name.id) && e.kind.equals(nk)) - { - // Do nothing - skip. - } - else - { - e.write(ou); - } - } - - File deleteIt = new File(file.getParent(), file.getName() + "_d"); - if (deleteIt.exists()) - deleteIt.delete(); - - if (! file.renameTo(deleteIt)) - throw new IOException(file.getAbsolutePath() + " rename failed"); - - if (! nf.renameTo(file)) - throw new IOException(file.getAbsolutePath() + " rename failed"); - } - catch (Exception e) - { - InternalError ierr = new InternalError(file.getAbsolutePath()); - ierr.initCause(e); - throw ierr; - } - } - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java index 55159660d46..294549327a6 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java +++ b/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java @@ -142,15 +142,18 @@ public class Creator throws IOException { boolean isDirectory = file.isDirectory(); - InputStream inputStream = null; if (isDirectory) { if (filename.charAt(filename.length() - 1) != '/') filename += '/'; + writeFile(isDirectory, null, filename, verbose); } else - inputStream = new FileInputStream(file); - writeFile(isDirectory, inputStream, filename, verbose); + { + InputStream inputStream = new FileInputStream(file); + writeFile(isDirectory, inputStream, filename, verbose); + inputStream.close(); + } } private void addEntries(ArrayList result, Entry entry) diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java index 8ea770bb63f..34f637204e7 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java @@ -38,7 +38,7 @@ package gnu.classpath.tools.jar; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; diff --git a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java index b6b50e7417a..0cff2fd856a 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/jarsigner/Main.java @@ -41,8 +41,8 @@ package gnu.classpath.tools.jarsigner; import gnu.classpath.Configuration; import gnu.classpath.SystemProperties; import gnu.classpath.tools.common.CallbackUtil; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.common.ProviderUtil; -import gnu.classpath.tools.getopt.ClasspathToolParser; import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java new file mode 100644 index 00000000000..e238065c2c0 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java @@ -0,0 +1,346 @@ +/* ClassWrapper.java - wrap ASM class objects + 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 gnu.classpath.tools.javah; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; + +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.MethodNode; + +public class ClassWrapper + extends ClassNode +{ + Main classpath; + + ClassWrapper superClass; + + ArrayList interfaceClasses; + + // The virtual table for this class. + ArrayList vtable; + + // A set of all the bridge method targets we've found. + HashSet bridgeTargets; + + // A set of all the method names in this class. + HashSet methodNames = new HashSet(); + + public ClassWrapper(Main classpath) + { + this.classpath = classpath; + } + + public boolean hasNativeMethod() + { + Iterator i = methods.iterator(); + while (i.hasNext()) + { + MethodNode method = (MethodNode) i.next(); + if (Modifier.isNative(method.access)) + return true; + } + return false; + } + + public boolean isThrowable() throws IOException + { + linkSupers(); + ClassWrapper self = this; + while (self != null) + { + if (self.name.equals("java/lang/Throwable")) + return true; + self = self.superClass; + } + return false; + } + + private void linkSupers() throws IOException + { + if (superName == null) + { + // Object, do nothing. + return; + } + if (superClass == null) + { + superClass = classpath.getClass(superName); + assert interfaceClasses == null; + interfaceClasses = new ArrayList(); + for (int i = 0; i < interfaces.size(); ++i) + { + String ifname = (String) interfaces.get(i); + ClassWrapper iface = classpath.getClass(ifname); + iface.linkSupers(); + interfaceClasses.add(iface); + } + } + superClass.linkSupers(); + } + + private int findSlot(MethodNode method) + { + for (int i = vtable.size() - 1; i >= 0; --i) + { + MethodNode base = (MethodNode) vtable.get(i); + if (MethodHelper.overrides(method, base)) + return i; + } + return - 1; + } + + private void addInterfaceMethods(ClassWrapper iface) + { + Iterator i = iface.methods.iterator(); + while (i.hasNext()) + { + MethodNode im = (MethodNode) i.next(); + int slot = findSlot(im); + if (slot == - 1) + { + vtable.add(im); + // Also add it to our local methods. + methods.add(im); + } + } + addInterfaces(iface); + } + + private void addInterfaces(ClassWrapper base) + { + if (base.interfaceClasses == null) + return; + Iterator i = base.interfaceClasses.iterator(); + while (i.hasNext()) + { + ClassWrapper iface = (ClassWrapper) i.next(); + addInterfaceMethods(iface); + } + } + + private void addLocalMethods() + { + Iterator i = methods.iterator(); + while (i.hasNext()) + { + MethodNode meth = (MethodNode) i.next(); + methodNames.add(meth.name); + if (Modifier.isStatic(meth.access)) + continue; + int slot = findSlot(meth); + if (slot == - 1) + vtable.add(meth); + else + vtable.set(slot, meth); + } + } + + private void makeVtable() throws IOException + { + if (vtable != null) + return; + if (superClass != null) + { + superClass.makeVtable(); + vtable = new ArrayList(superClass.vtable); + bridgeTargets = new HashSet(superClass.bridgeTargets); + } + else + { + // Object. + vtable = new ArrayList(); + bridgeTargets = new HashSet(); + } + addLocalMethods(); + addInterfaces(this); + + // Make a set of all the targets of bridge methods. + // We rename bridge methods to avoid problems with C++. + Iterator i = methods.iterator(); + while (i.hasNext()) + { + MethodNode m = (MethodNode) i.next(); + String desc = MethodHelper.getBridgeTarget(m); + if (desc != null) + bridgeTargets.add(m.name + desc); + } + } + + private void printFields(CniPrintStream out) + { + Iterator i = fields.iterator(); + ClassWrapper self = superClass; + while (i.hasNext()) + { + FieldNode f = (FieldNode) i.next(); + boolean hasMethodName = methodNames.contains(f.name); + if (FieldHelper.print(out, f, self, hasMethodName)) + self = null; + } + } + + private void printMethods(CniPrintStream out) throws IOException + { + makeVtable(); + + // A given method is either static, overrides a super method, or + // is already in vtable order. + Iterator i = methods.iterator(); + while (i.hasNext()) + { + MethodNode m = (MethodNode) i.next(); + boolean isTarget = bridgeTargets.contains(m.name + m.desc); + MethodHelper.print(out, m, this, isTarget); + } + } + + private void printTextList(PrintStream out, int what, ArrayList textList) + { + if (textList == null) + return; + Iterator i = textList.iterator(); + boolean first = true; + while (i.hasNext()) + { + Text item = (Text) i.next(); + if (item.type == what) + { + if (first) + { + out.println(); + first = false; + } + if (what == Text.FRIEND) + out.print(" friend "); + out.println(item.text); + } + } + } + + public void print(CniPrintStream out) + { + out.print("::" + name.replaceAll("/", "::")); + } + + // This prints the body of a class to a CxxPrintStream. + private void printContents(CniPrintStream out, ArrayList textList) + throws IOException + { + printTextList(out, Text.PREPEND, textList); + out.println(); + + out.print("class "); + // Don't use our print() -- we don't want the leading "::". + out.print(name.replaceAll("/", "::")); + if (superClass != null) + { + out.print(" : public "); + superClass.print(out); + } + out.println(); + out.println("{"); + + printTextList(out, Text.ADD, textList); + out.println(); + + // Note: methods must come first, as we build the list + // of method names while printing them. + printMethods(out); + printFields(out); + + out.setModifiers(Modifier.PUBLIC); + out.println(" static ::java::lang::Class class$;"); + + printTextList(out, Text.FRIEND, textList); + + out.print("}"); + if (Modifier.isInterface(access)) + out.print(" __attribute__ ((java_interface))"); + out.println(";"); + + printTextList(out, Text.APPEND, textList); + } + + public void printFully(PrintStream out) throws IOException + { + linkSupers(); + + ArrayList textList = classpath.getClassTextList(name); + + out.println("// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-"); + out.println(); + String xname = "__" + name.replaceAll("/", "_") + "__"; + out.println("#ifndef " + xname); + out.println("#define " + xname); + out.println(); + out.println("#pragma interface"); + out.println(); + + if (superClass != null) + { + out.print("#include <"); + out.print(superName); + out.println(".h>"); + } + + // Write the body of the stream here. This lets + // us emit the namespaces without a second pass. + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + CniPrintStream cxxOut = new CniPrintStream(bytes); + cxxOut.addClass(this); + printContents(cxxOut, textList); + cxxOut.printNamespaces(out); + bytes.writeTo(out); + + out.println(); + out.println("#endif // " + xname); + } + + public String toString() + { + return name; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java new file mode 100644 index 00000000000..fb007b13101 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java @@ -0,0 +1,80 @@ +/* CniIncludePrinter.java - generate CNI header files + 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 gnu.classpath.tools.javah; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; + +public class CniIncludePrinter + extends Printer +{ + protected CniIncludePrinter(Main classpath, File outFile, boolean isDir, + boolean force) + { + super(classpath, outFile, isDir, force); + } + + protected void writePreambleImpl(PrintStream ps) + { + // does nothing + } + + protected PrintStream getPrintStreamImpl(FileOutputStream fos, + ClassWrapper klass) + { + return new PrintStream(fos); + } + + public void printClass(ClassWrapper klass) throws IOException + { + // Never write Object or Class. This is a hack, maybe + // the user would like to see what they look like... + if (klass.name.equals("java/lang/Object") + || klass.name.equals("java/lang/Class")) + return; + PrintStream ps = getPrintStream(klass.name + ".h", klass); + if (ps == null) + return; + ps.println(); + klass.printFully(ps); + ps.close(); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java b/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java new file mode 100644 index 00000000000..64ba537d4d3 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/CniPrintStream.java @@ -0,0 +1,243 @@ +/* CniPrintStream.java - PrintStream that emits CNI declarations + 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 gnu.classpath.tools.javah; + +import java.io.OutputStream; +import java.io.PrintStream; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.HashSet; + +import org.objectweb.asm.Type; + +public class CniPrintStream + extends PrintStream +{ + int currentModifiers = Modifier.PRIVATE; + + // True if we saw an array type. + boolean sawArray; + + // All the classes referenced by this header. + HashSet allClasses = new HashSet(); + + String[] previousPackage = new String[0]; + + public CniPrintStream(OutputStream out) + { + super(out); + } + + public void addClass(ClassWrapper cw) + { + allClasses.add(cw.name); + } + + public void setModifiers(int newMods) + { + newMods &= (Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE); + if (newMods != currentModifiers) + { + switch (newMods) + { + case Modifier.PUBLIC: + println("public:"); + break; + case Modifier.PROTECTED: + println("public: // actually protected"); + break; + case Modifier.PRIVATE: + println("private:"); + break; + default: + println("public: // actually package-private"); + break; + } + currentModifiers = newMods; + } + } + + private String getName(Type type) + { + if (type == Type.BOOLEAN_TYPE) + return "jboolean"; + else if (type == Type.BYTE_TYPE) + return "jbyte"; + else if (type == Type.CHAR_TYPE) + return "jchar"; + else if (type == Type.SHORT_TYPE) + return "jshort"; + else if (type == Type.INT_TYPE) + return "jint"; + else if (type == Type.LONG_TYPE) + return "jlong"; + else if (type == Type.FLOAT_TYPE) + return "jfloat"; + else if (type == Type.DOUBLE_TYPE) + return "jdouble"; + else + { + assert type == Type.VOID_TYPE; + return "void"; + } + } + + public String getClassName(Type type) + { + String name = type.toString(); + name = name.substring(1, name.length() - 1); + // Add the plain class name; we'll handle it when + // we process namespaces. + allClasses.add(name); + return "::" + name.replaceAll("/", "::") + " *"; + } + + public void print(Type type) + { + int arrayCount = 0; + if (type.getSort() == Type.ARRAY) + { + arrayCount = type.getDimensions(); + for (int i = 0; i < arrayCount; ++i) + print("JArray< "); + type = type.getElementType(); + sawArray = true; + } + if (type.getSort() == Type.OBJECT) + { + print(getClassName(type)); + } + else + { + print(getName(type)); + } + if (arrayCount > 0) + { + while (arrayCount-- > 0) + { + print(" > *"); + } + } + } + + private void indent(PrintStream out, int n) + { + for (int i = 0; i < n; ++i) + { + out.print(" "); + } + } + + private void moveToPackage(PrintStream out, String[] pkgParts) + { + // Find greatest common part. + int commonIndex; + for (commonIndex = 0; commonIndex < previousPackage.length; ++commonIndex) + { + if (commonIndex >= pkgParts.length) + break; + if (! previousPackage[commonIndex].equals(pkgParts[commonIndex])) + break; + } + // Close old parts after the common part. + for (int j = previousPackage.length - 1; j >= commonIndex; --j) + { + indent(out, j + 1); + out.println("}"); + } + // Open new parts. + for (int j = commonIndex; j < pkgParts.length; ++j) + { + indent(out, j + 1); + out.print("namespace "); + out.println(pkgParts[j]); + indent(out, j + 1); + out.println("{"); + } + previousPackage = pkgParts; + } + + private void writeClass(PrintStream out, String klass) + { + int index = klass.lastIndexOf('/'); + String pkg = index == -1 ? "" : klass.substring(0, index); + String[] pkgParts = index == -1 ? new String[0] : pkg.split("/"); + String className = index == -1 ? klass : klass.substring(index + 1); + moveToPackage(out, pkgParts); + indent(out, pkgParts.length + 2); + out.print("class "); + out.print(className); + out.println(";"); + } + + public void printNamespaces(PrintStream out) + { + if (sawArray) + { + out.println("#include "); + out.println(); + } + + String[] classes = (String[]) allClasses.toArray(new String[0]); + Arrays.sort(classes); + + boolean first = true; + boolean seen = false; + for (int i = 0; i < classes.length; ++i) + { + String klass = classes[i]; + if (klass.startsWith("java/lang/") || klass.startsWith("java/io/") + || klass.startsWith("java/util/")) + continue; + if (first) + { + out.println("extern \"Java\""); + out.println("{"); + first = false; + seen = true; + } + writeClass(out, klass); + } + if (seen) + { + moveToPackage(out, new String[0]); + out.println("}"); + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java new file mode 100644 index 00000000000..d91f367c45c --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/CniStubPrinter.java @@ -0,0 +1,129 @@ +/* CniStubPrinter.java - Generate a CNI stub file + 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 gnu.classpath.tools.javah; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.lang.reflect.Modifier; +import java.util.Iterator; + +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.MethodNode; + +public class CniStubPrinter + extends Printer +{ + protected CniStubPrinter(Main classpath, File outFile, boolean isDir, + boolean force) + { + super(classpath, outFile, isDir, force); + } + + private void printDecl(CniPrintStream out, String className, MethodNode method) + { + out.print(className); + out.print("::"); + out.print(method.name); + out.print("("); + Type[] argTypes = Type.getArgumentTypes(method.desc); + for (int j = 0; j < argTypes.length; ++j) + { + if (j > 0) + out.print(", "); + out.print(argTypes[j]); + } + out.print(")"); + } + + protected void writePreambleImpl(PrintStream out) + { + out.println("// This file is intended to give you a head start on implementing native"); + out.println("// methods using CNI."); + out.println("// Be aware: running 'gcjh -stubs' once more for this class may"); + out.println("// overwrite any edits you have made to this file."); + out.println(); + out.println("#include "); + out.println("#include "); + } + + protected PrintStream getPrintStreamImpl(FileOutputStream fos, + ClassWrapper klass) + { + return new CniPrintStream(fos); + } + + public void printClass(ClassWrapper klass) throws IOException + { + if (! klass.hasNativeMethod()) + return; + String className = klass.name.replaceAll("/", "::"); + CniPrintStream out = (CniPrintStream) getPrintStream(klass.name + ".cc", + klass); + if (out == null) + return; + out.println(); + out.println("#include <" + klass.name + ".h>"); + out.println(); + + Iterator i = klass.methods.iterator(); + boolean first = true; + while (i.hasNext()) + { + MethodNode method = (MethodNode) i.next(); + if (! Modifier.isNative(method.access)) + continue; + if (! first) + out.println(); + first = false; + out.print(Type.getReturnType(method.desc)); + out.println(); + printDecl(out, className, method); + out.println(); + out.println("{"); + out.print(" throw new ::java::lang::UnsupportedOperationException("); + out.print("JvNewStringLatin1 (\""); + printDecl(out, className, method); + out.println("\"));"); + out.println("}"); + } + out.close(); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/FieldHelper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/FieldHelper.java new file mode 100644 index 00000000000..a9385e04d33 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/FieldHelper.java @@ -0,0 +1,99 @@ +/* FieldHelper.java - field helper methods for CNI + 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 gnu.classpath.tools.javah; + +import java.lang.reflect.Modifier; + +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.FieldNode; + +public class FieldHelper +{ + public static boolean print(CniPrintStream out, FieldNode field, + ClassWrapper superType, boolean hasMethodName) + { + out.setModifiers(field.access); + out.print(" "); + if (Modifier.isStatic(field.access)) + out.print("static "); + if (Modifier.isVolatile(field.access)) + out.print("volatile "); + if ((field.value instanceof Integer) || (field.value instanceof Long)) + out.print("const "); + out.print(Type.getType(field.desc)); + out.print(" "); + boolean result = false; + if (superType != null && ! Modifier.isStatic(field.access)) + { + out.print("__attribute__((aligned(__alignof__( "); + superType.print(out); + out.print(")))) "); + result = true; + } + out.print(Keywords.getCxxName(field.name)); + if (hasMethodName) + out.print("__"); + if (Modifier.isStatic(field.access)) + { + if (field.value instanceof Integer) + { + out.print(" = "); + int val = ((Integer) field.value).intValue(); + if (val == Integer.MIN_VALUE) + out.print("-" + Integer.MAX_VALUE + " - 1"); + else + out.print(val); + } + else if (field.value instanceof Long) + { + out.print(" = "); + long val = ((Long) field.value).longValue(); + if (val == Long.MIN_VALUE) + out.print("-" + Long.MAX_VALUE + "LL - 1"); + else + { + out.print(val); + out.print("LL"); + } + } + } + out.println(";"); + return result; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java new file mode 100644 index 00000000000..7c508997e18 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java @@ -0,0 +1,120 @@ +/* JniHelper.java - name mangling and other JNI support + 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 gnu.classpath.tools.javah; + +import java.io.IOException; + +import org.objectweb.asm.Type; + +public class JniHelper +{ + public static String getName(Main classpath, Type type) throws IOException + { + if (type == Type.BOOLEAN_TYPE) + return "jboolean"; + else if (type == Type.BYTE_TYPE) + return "jbyte"; + else if (type == Type.CHAR_TYPE) + return "jchar"; + else if (type == Type.SHORT_TYPE) + return "jshort"; + else if (type == Type.INT_TYPE) + return "jint"; + else if (type == Type.LONG_TYPE) + return "jlong"; + else if (type == Type.FLOAT_TYPE) + return "jfloat"; + else if (type == Type.DOUBLE_TYPE) + return "jdouble"; + else if (type == Type.VOID_TYPE) + return "void"; + + if (type.getSort() == Type.ARRAY) + { + Type elt = type.getElementType(); + int eltSort = elt.getSort(); + if (type.getDimensions() == 1 && eltSort != Type.OBJECT) + return getName(classpath, elt) + "Array"; + return "jobjectArray"; + } + + // assert type.getSort() == Type.OBJECT; + String className = type.getClassName(); + // FIXME: is this correct? + if (className.equals("java/lang/Class") + || className.equals("java.lang.Class")) + return "jclass"; + if (className.equals("java/lang/String") + || className.equals("java.lang.String")) + return "jstring"; + + ClassWrapper klass = classpath.getClass(className); + if (klass.isThrowable()) + return "jthrowable"; + return "jobject"; + } + + public static String mangle(String name) + { + StringBuffer result = new StringBuffer(); + for (int i = 0; i < name.length(); ++i) + { + char c = name.charAt(i); + if (c == '_') + result.append("_1"); + else if (c == ';') + result.append("_2"); + else if (c == '[') + result.append("_3"); + else if (c == '/') + result.append("_"); + else if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') + || (c >= 'A' && c <= 'Z')) + result.append(c); + else + { + result.append("_0"); + // Sigh. + String hex = "0000" + Integer.toHexString(c); + result.append(hex.substring(hex.length() - 4)); + } + } + return result.toString(); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java new file mode 100644 index 00000000000..f29bfc30050 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java @@ -0,0 +1,158 @@ +/* JniIncludePrinter.java - Generate a JNI header file + 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 gnu.classpath.tools.javah; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.lang.reflect.Modifier; +import java.util.Iterator; + +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.MethodNode; + +public class JniIncludePrinter + extends Printer +{ + protected JniIncludePrinter(Main classpath, File outFile, boolean isDir, + boolean force) + { + super(classpath, outFile, isDir, force); + } + + private void writeFields(ClassWrapper klass, JniPrintStream out) + { + boolean wroteAny = false; + for (; klass != null; klass = klass.superClass) + { + Iterator i = klass.fields.iterator(); + while (i.hasNext()) + { + FieldNode field = (FieldNode) i.next(); + if (! Modifier.isStatic(field.access) + || ! Modifier.isFinal(field.access)) + continue; + if (! (field.value instanceof Integer) + && ! (field.value instanceof Long)) + continue; + + // Note that we don't want to mangle the field name. + String name = (JniHelper.mangle(klass.name) + "_" + field.name); + out.print("#undef "); + out.println(name); + out.print("#define "); + out.print(name); + out.print(" "); + out.print(field.value); + if (field.value instanceof Integer) + out.print("L"); + else if (field.value instanceof Long) + out.print("LL"); + out.println(); + wroteAny = true; + } + } + if (wroteAny) + out.println(); + } + + protected void writePreambleImpl(PrintStream out) + { + out.println("/* DO NOT EDIT THIS FILE - it is machine generated */"); + out.println(); + out.println("#include "); + } + + protected PrintStream getPrintStreamImpl(FileOutputStream fos, + ClassWrapper klass) + { + return new JniPrintStream(classpath, fos, klass); + } + + public void printClass(ClassWrapper klass) throws IOException + { + if (! klass.hasNativeMethod()) + return; + String xname = JniHelper.mangle(klass.name); + JniPrintStream out = (JniPrintStream) getPrintStream(klass.name + ".h", klass); + if (out == null) + return; + out.println(); + out.print("#ifndef __"); + out.print(xname); + out.println("__"); + out.print("#define __"); + out.print(xname); + out.println("__"); + out.println(); + out.println("#ifdef __cplusplus"); + out.println("extern \"C\""); + out.println("{"); + out.println("#endif"); + out.println(); + + Iterator i = klass.methods.iterator(); + while (i.hasNext()) + { + MethodNode method = (MethodNode) i.next(); + if (! Modifier.isNative(method.access)) + continue; + out.print("JNIEXPORT "); + out.print(Type.getReturnType(method.desc)); + out.print(" JNICALL "); + out.print(method, xname); + out.println(";"); + } + + out.println(); + + writeFields(klass, out); + + out.println("#ifdef __cplusplus"); + out.println("}"); + out.println("#endif"); + out.println(); + out.print("#endif /* __"); + out.print(xname); + out.println("__ */"); + out.close(); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java new file mode 100644 index 00000000000..a0461f475fd --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniPrintStream.java @@ -0,0 +1,115 @@ +/* JniPrintStream.java - PrintStream that emits JNI declarations + 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 gnu.classpath.tools.javah; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.lang.reflect.Modifier; +import java.util.HashMap; +import java.util.Iterator; + +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.MethodNode; + +public class JniPrintStream + extends PrintStream +{ + Main classpath; + + // This is used to determine whether a method has an overload. + HashMap methodNameMap = new HashMap(); + + public JniPrintStream(Main classpath, OutputStream out, ClassWrapper klass) + { + super(out); + this.classpath = classpath; + computeOverloads(klass); + } + + private void computeOverloads(ClassWrapper klass) + { + Iterator i = klass.methods.iterator(); + while (i.hasNext()) + { + MethodNode method = (MethodNode) i.next(); + if (! Modifier.isNative(method.access)) + continue; + if (methodNameMap.containsKey(method.name)) + { + Integer val = (Integer) methodNameMap.get(method.name); + methodNameMap.put(method.name, new Integer(val.intValue() + 1)); + } + else + methodNameMap.put(method.name, new Integer(1)); + } + } + + public void print(Type type) throws IOException + { + print(JniHelper.getName(classpath, type)); + } + + public void print(MethodNode method, String className) throws IOException + { + print("Java_"); + print(className); + print("_"); + print(JniHelper.mangle(method.name)); + Integer overloadCount = (Integer) methodNameMap.get(method.name); + if (overloadCount.intValue() > 1) + { + print("__"); + int lastOffset = method.desc.lastIndexOf(')'); + print(JniHelper.mangle(method.desc.substring(1, lastOffset))); + } + print(" (JNIEnv *env"); + if (Modifier.isStatic(method.access)) + print(", jclass"); + else + print(", jobject"); + Type[] types = Type.getArgumentTypes(method.desc); + for (int i = 0; i < types.length; ++i) + { + print(", "); + print(types[i]); + } + print(")"); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java new file mode 100644 index 00000000000..4e7871008d7 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniStubPrinter.java @@ -0,0 +1,106 @@ +/* JniStubPrinter.java - Generate JNI stub files + 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 gnu.classpath.tools.javah; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.lang.reflect.Modifier; +import java.util.Iterator; + +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.MethodNode; + +public class JniStubPrinter + extends Printer +{ + protected JniStubPrinter(Main classpath, File outFile, boolean isDir, + boolean force) + { + super(classpath, outFile, isDir, force); + } + + protected void writePreambleImpl(PrintStream out) + { + out.println("/* This file is intended to give you a head start on implementing native"); + out.println(" methods using JNI."); + out.println(" Be aware: running gcjh or compatible tool with '-stubs' option once more"); + out.println(" for the same input may overwrite any edits you have made to this file. */"); + } + + protected PrintStream getPrintStreamImpl(FileOutputStream fos, + ClassWrapper klass) + { + return new JniPrintStream(classpath, fos, klass); + } + + public void printClass(ClassWrapper klass) throws IOException + { + if (! klass.hasNativeMethod()) + return; + String xname = JniHelper.mangle(klass.name); + JniPrintStream out = (JniPrintStream) getPrintStream(klass.name + ".c", klass); + if (out == null) + return; + out.println(); + out.print("#include <"); + out.print(klass.name); + out.println(".h>"); + + Iterator i = klass.methods.iterator(); + while (i.hasNext()) + { + MethodNode method = (MethodNode) i.next(); + if (! Modifier.isNative(method.access)) + continue; + out.println(); + out.print(Type.getReturnType(method.desc)); + out.println(); + out.print(method, xname); + out.println(); + out.println("{"); + out.print(" (*env)->FatalError (env, \""); + out.print(method, xname); + out.println(" not implemented\");"); + out.println("}"); + } + out.close(); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java b/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java new file mode 100644 index 00000000000..46543ba45df --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/Keywords.java @@ -0,0 +1,85 @@ +/* Keywords.java - List of C++ keywords + 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 gnu.classpath.tools.javah; + +import java.util.HashSet; + +public class Keywords +{ + private static final String[] words = { "and", "and_eq", "asm", "auto", + "bitand", "bitor", "bool", "break", + "case", "catch", "char", "class", + "compl", "const", "const_cast", + "continue", "default", "delete", "do", + "double", "dynamic_cast", "else", + "enum", "explicit", "export", + "extern", "false", "float", "for", + "friend", "goto", "if", "inline", + "int", "long", "mutable", "namespace", + "new", "not", "not_eq", "operator", + "or", "or_eq", "private", "protected", + "public", "register", + "reinterpret_cast", "return", "short", + "signed", "sizeof", "static", + "static_cast", "struct", "switch", + "template", "this", "throw", "true", + "try", "typedef", "typeid", + "typename", "typeof", "union", + "unsigned", "using", "virtual", + "void", "volatile", "wchar_t", + "while", "xor", "xor_eq" }; + + private static final HashSet keywords; + static + { + keywords = new HashSet(); + for (int i = 0; i < words.length; ++i) + keywords.add(words[i]); + } + + public static String getCxxName(String name) + { + int i; + for (i = name.length() - 1; i >= 0 && name.charAt(i) == '$'; --i) + ; + if (keywords.contains(name.substring(0, i + 1))) + return name + "$"; + return name; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java new file mode 100644 index 00000000000..2cddbaae750 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java @@ -0,0 +1,441 @@ +/* Main.java - javah main program + 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 gnu.classpath.tools.javah; + +import gnu.classpath.tools.common.ClasspathToolParser; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.Parser; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileFilter; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; + +import org.objectweb.asm.ClassReader; + +public class Main +{ + // This is an option group for classpath-related options, + // and also is used for loading classes. + PathOptionGroup classpath = new PathOptionGroup(); + + // The output directory. + String outputDir; + + // The output file name used if/when -o option is used. + String outFileName; + + // The loader that we use to load class files. + URLClassLoader loader; + + // In -all mode, the name of the directory to scan. + String allDirectory; + + // True for verbose mode. + boolean verbose; + + // True if we're emitting stubs. + boolean stubs; + + // True if we're emitting CNI code. + boolean cni; + + // True if output files should always be written. + boolean force; + + // Map class names to class wrappers. + HashMap classMap = new HashMap(); + + // Map class names to lists of Text objects. + HashMap textMap = new HashMap(); + + void readCommandFile(String textFileName) throws OptionException + { + FileInputStream fis; + try + { + fis = new FileInputStream(textFileName); + } + catch (FileNotFoundException ignore) + { + throw new OptionException("file \"" + textFileName + "\" not found"); + } + BufferedReader reader = new BufferedReader(new InputStreamReader(fis)); + String currentClass = null; + ArrayList currentValues = null; + while (true) + { + String line; + try + { + line = reader.readLine(); + } + catch (IOException _) + { + break; + } + if (line == null) + break; + line = line.trim(); + if (line.length() == 0 || line.charAt(0) == '#') + continue; + int index = line.indexOf(' '); + String cmd = line.substring(0, index); + String value = line.substring(index + 1); + int cmdValue; + if ("class".equals(cmd)) + { + if (currentClass != null) + { + textMap.put(currentClass, currentValues); + } + currentClass = value; + currentValues = new ArrayList(); + continue; + } + if (currentClass == null) + throw new OptionException("no class set"); + if ("add".equals(cmd)) + cmdValue = Text.ADD; + else if ("append".equals(cmd)) + cmdValue = Text.APPEND; + else if ("prepend".equals(cmd)) + cmdValue = Text.PREPEND; + else if ("friend".equals(cmd)) + cmdValue = Text.FRIEND; + else + throw new OptionException("unrecognized command: " + cmd); + currentValues.add(new Text(cmdValue, value)); + } + if (currentClass != null) + { + textMap.put(currentClass, currentValues); + } + } + + void scanDirectory(File dir, final HashSet results) + { + File[] files = dir.listFiles(new FileFilter() + { + public boolean accept(File pathname) + { + if (pathname.isDirectory()) + { + scanDirectory(pathname, results); + return false; + } + return pathname.getName().endsWith(".class"); + } + }); + if (files != null) + results.addAll(Arrays.asList(files)); + } + + private Parser getParser() + { + ClasspathToolParser result = new ClasspathToolParser("javah", true); + result.setHeader("usage: javah [OPTIONS] CLASS..."); + result.add(classpath); + result.add(new Option('d', "Set output directory", "DIR") + { + public void parsed(String dir) throws OptionException + { + if (outputDir != null) + throw new OptionException("-d already seen"); + if (outFileName != null) + throw new OptionException("only one of -d or -o may be used"); + outputDir = dir; + } + }); + result.add(new Option('o', + "Set output file (only one of -d or -o may be used)", + "FILE") + { + public void parsed(String fileName) throws OptionException + { + if (outFileName != null) + throw new OptionException("-o already seen"); + if (outputDir != null) + throw new OptionException("only one of -d or -o may be used"); + outFileName = fileName; + } + }); + result.add(new Option("cmdfile", "Read command file", "FILE") + { + public void parsed(String file) throws OptionException + { + readCommandFile(file); + } + }); + result.add(new Option("all", "Operate on all class files under directory", + "DIR") + { + public void parsed(String arg) throws OptionException + { + // FIXME: lame restriction... + if (allDirectory != null) + throw new OptionException("-all already specified"); + allDirectory = arg; + } + }); + result.add(new Option("stubs", "Emit stub implementation") + { + public void parsed(String arg0) throws OptionException + { + stubs = true; + } + }); + result.add(new Option("jni", "Emit JNI stubs or header (default)") + { + public void parsed(String arg0) throws OptionException + { + if (cni) + throw new OptionException("only one of -jni or -cni may be used"); + cni = false; + } + }); + result.add(new Option("cni", "Emit CNI stubs or header (default JNI)") + { + public void parsed(String arg0) throws OptionException + { + cni = true; + } + }); + result.add(new Option("verbose", "Set verbose mode") + { + public void parsed(String arg0) throws OptionException + { + verbose = true; + } + }); + result.add(new Option("force", "Output files should always be written") + { + public void parsed(String arg0) throws OptionException + { + force = true; + } + }); + return result; + } + + private File makeOutputDirectory() throws IOException + { + File outputFile; + if (outputDir == null) + outputFile = new File("."); + else + outputFile = new File(outputDir); + return outputFile; + } + + /** + * @return The {@link File} object where the generated code will be written. + * Returns null if the option -force was + * specified on the command line and the designated file already + * exists. + * @throws IOException if outFileName is not a writable file. + */ + private File makeOutputFile() throws IOException + { + File result = new File(outFileName); + if (result.exists()) + { + if (! result.isFile()) + throw new IOException("'" + outFileName + "' is not a file"); + if (! force) + { + if (verbose) + System.err.println("["+ outFileName + + " already exists. Use -force to overwrite]"); + return null; + } + if (! result.delete()) + throw new IOException("Was unable to delete existing file: " + + outFileName); + } + return result; + } + + private void writeHeaders(ArrayList klasses, Printer printer) + throws IOException + { + Iterator i = klasses.iterator(); + while (i.hasNext()) + { + ClassWrapper klass = (ClassWrapper) i.next(); + if (verbose) + System.err.println("[writing " + klass + "]"); + printer.printClass(klass); + } + } + + private void run(String[] args) throws IOException + { + Parser p = getParser(); + String[] classNames = p.parse(args); + loader = classpath.getLoader(); + + boolean isDirectory = outFileName == null; + File outputFile = isDirectory ? makeOutputDirectory() : makeOutputFile(); + if (outputFile == null) + return; + + Printer printer; + if (! cni) + { + if (stubs) + printer = new JniStubPrinter(this, outputFile, isDirectory, force); + else + printer = new JniIncludePrinter(this, outputFile, isDirectory, force); + } + else + { + if (stubs) + printer = new CniStubPrinter(this, outputFile, isDirectory, force); + else + printer = new CniIncludePrinter(this, outputFile, isDirectory, force); + } + + // First we load all of the files. That way if + // there are references between the files we will + // be loading the set that the user asked for. + HashSet klasses = new HashSet(); + if (allDirectory != null) + scanDirectory(new File(allDirectory), klasses); + // Add the command-line arguments. We use the type of + // an item in 'klasses' to decide how to load each class. + for (int i = 0; i < classNames.length; ++i) + { + if (classNames[i].endsWith(".class")) + { + klasses.add(new File(classNames[i])); + } + else + { + klasses.add(classNames[i]); + } + } + + Iterator i = klasses.iterator(); + ArrayList results = new ArrayList(); + while (i.hasNext()) + { + // Let user specify either kind of class name or a + // file name. + Object item = i.next(); + ClassWrapper klass; + if (item instanceof File) + { + // Load class from file. + if (verbose) + System.err.println("[reading file " + item + "]"); + klass = getClass((File) item); + } + else + { + // Load class given the class name. + String className = ((String) item).replace('.', '/'); + if (verbose) + System.err.println("[reading class " + className + "]"); + klass = getClass(className); + } + results.add(klass); + } + + writeHeaders(results, printer); + } + + public ArrayList getClassTextList(String name) + { + return (ArrayList) textMap.get(name); + } + + private ClassWrapper readClass(InputStream is) throws IOException + { + ClassReader r = new ClassReader(is); + ClassWrapper result = new ClassWrapper(this); + r.accept(result, true); + is.close(); + return result; + } + + private ClassWrapper getClass(File fileName) throws IOException + { + InputStream is = new FileInputStream(fileName); + ClassWrapper result = readClass(is); + if (classMap.containsKey(result.name)) + throw new IllegalArgumentException("class " + result.name + + " already loaded"); + classMap.put(result.name, result); + return result; + } + + public ClassWrapper getClass(String name) throws IOException + { + if (! classMap.containsKey(name)) + { + String resource = name.replace('.', '/') + ".class"; + URL url = loader.findResource(resource); + if (url == null) + throw new IOException("can't find class file " + resource); + InputStream is = url.openStream(); + ClassWrapper result = readClass(is); + classMap.put(name, result); + } + return (ClassWrapper) classMap.get(name); + } + + public static void main(String[] args) throws IOException + { + Main m = new Main(); + m.run(args); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java new file mode 100644 index 00000000000..6657f115ac4 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/MethodHelper.java @@ -0,0 +1,130 @@ +/* MethodHelper.java - helper class for manipulating methods + 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 gnu.classpath.tools.javah; + +import java.lang.reflect.Modifier; +import java.util.Iterator; + +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.MethodNode; + +public class MethodHelper +{ + + public static boolean overrides(MethodNode derived, MethodNode base) + { + if (! derived.name.equals(base.name)) + return false; + if (! derived.desc.equals(base.desc)) + return false; + // FIXME: permission madness? + return true; + } + + public static String getBridgeTarget(MethodNode meth) + { + if ((meth.access & Opcodes.ACC_BRIDGE) == 0) + return null; + Iterator i = meth.instructions.iterator(); + while (i.hasNext()) + { + AbstractInsnNode insn = (AbstractInsnNode) i.next(); + if (! (insn instanceof MethodInsnNode)) + continue; + return ((MethodInsnNode) insn).desc; + } + return null; + } + + public static void print(CniPrintStream out, MethodNode meth, + ClassWrapper declarer, boolean isBridgeTarget) + { + if ("".equals(meth.name)) + return; + boolean isInit = "".equals(meth.name); + out.setModifiers(meth.access); + out.print(" "); + if (Modifier.isStatic(meth.access)) + out.print("static "); + // If a class is final then we might as well skip 'virtual'. + // The reason here is that it is safe in this case for C++ + // ABI code to generate a direct call. The method does end + // up in the vtable (for BC code) but we don't care. Also, + // the class can't be derived from anyway. + else if (! isInit && ! Modifier.isPrivate(meth.access) + && ! Modifier.isFinal(declarer.access)) + out.print("virtual "); + if (! isInit) + { + out.print(Type.getReturnType(meth.desc)); + out.print(" "); + if (isBridgeTarget) + { + out.print("target$"); + out.print(meth.name); + } + else + { + out.print(Keywords.getCxxName(meth.name)); + } + } + else + { + String name = declarer.name; + int index = name.lastIndexOf('/'); + name = name.substring(index + 1); + out.print(name); + } + out.print("("); + Type[] argTypes = Type.getArgumentTypes(meth.desc); + for (int i = 0; i < argTypes.length; ++i) + { + if (i > 0) + out.print(", "); + out.print(argTypes[i]); + } + out.print(")"); + if (Modifier.isAbstract(meth.access)) + out.print(" = 0"); + out.println(";"); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/PackageWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/PackageWrapper.java new file mode 100644 index 00000000000..11b38b20f96 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/PackageWrapper.java @@ -0,0 +1,54 @@ +/* PackageWrapper.java - represent a package + 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 gnu.classpath.tools.javah; + +public class PackageWrapper +{ + // This is null if there is no parent package. + PackageWrapper parent; + + // Name of this package relative to its parent's name. + String name; + + public PackageWrapper(PackageWrapper parent, String name) + { + this.parent = parent; + this.name = name; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java b/libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java new file mode 100644 index 00000000000..4287354aed6 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/PathOptionGroup.java @@ -0,0 +1,135 @@ +/* PathOptionGroup.java - handle classpath-setting options + 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 gnu.classpath.tools.javah; + +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.OptionGroup; + +import java.io.File; +import java.io.FilenameFilter; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.StringTokenizer; + +public class PathOptionGroup + extends OptionGroup +{ + ArrayList classpath = new ArrayList(); + + ArrayList bootclasspath = new ArrayList(); + + void setPath(ArrayList list, String path) + { + list.clear(); + StringTokenizer st = new StringTokenizer(path, File.pathSeparator); + while (st.hasMoreTokens()) + { + list.add(st.nextToken()); + } + } + + void addExtDirs(ArrayList list, String path) + { + StringTokenizer tok = new StringTokenizer(path, File.pathSeparator); + while (tok.hasMoreTokens()) + { + File dir = new File(tok.nextToken()); + list.addAll(Arrays.asList(dir.list(new FilenameFilter() + { + public boolean accept(File dir, String name) + { + return name.endsWith(".zip") || name.endsWith(".jar"); + } + }))); + } + } + + public PathOptionGroup() + { + super("Class path options"); + + add(new Option("classpath", "Set the class path", "PATH") + { + public void parsed(String path) throws OptionException + { + setPath(classpath, path); + } + }); + add(new Option('I', "Add directory to class path", "DIR", true) + { + public void parsed(String path) throws OptionException + { + classpath.add(path); + } + }); + add(new Option("bootclasspath", "Set the boot class path", "PATH") + { + public void parsed(String path) throws OptionException + { + setPath(bootclasspath, path); + } + }); + add(new Option("extdirs", "Set the extension directory path", "PATH") + { + public void parsed(String path) throws OptionException + { + addExtDirs(classpath, path); + } + }); + } + + public URLClassLoader getLoader() throws MalformedURLException + { + ArrayList urls = new ArrayList(); + classpath.addAll(bootclasspath); + Iterator i = classpath.iterator(); + while (i.hasNext()) + { + String f = (String) i.next(); + urls.add(new File(f).toURL()); + } + URL[] urlArray = (URL[]) urls.toArray(new URL[0]); + return new URLClassLoader(urlArray); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/Printer.java b/libjava/classpath/tools/gnu/classpath/tools/javah/Printer.java new file mode 100644 index 00000000000..9c4b48d2e5c --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/Printer.java @@ -0,0 +1,138 @@ +/* Print.java - abstract base class for printing classes + 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 gnu.classpath.tools.javah; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; + +public abstract class Printer +{ + protected Main classpath; + + /** + * The {@link File} object that denotes either a directory (when the + * -d option was used), or a file (when the -o + * option was used) on the command line. + */ + protected File outputFileObject; + + /** + * Set to true if the field outputFileObject denotes + * a directory; i.e. for each input class file, one JNI header file will be + * generated in that directory. + *

      + * Set to false if the field outputFileObject + * denotes a file; i.e. all generated headers will be written to that file. + */ + protected boolean isDirectory; + + /** + * Set to true if the output file(s) should always be written. + *

      + * When set to false, the contents of the header/stub are only + * written to the file if it does not already exist. + */ + protected boolean force; + + /** + * Set to true if all output is directed to one file, and the + * common preamble text has already been generated. + */ + protected boolean wrotePreamble; + + protected Printer(Main classpath, File outFile, boolean isDir, boolean force) + { + this.classpath = classpath; + if (outFile == null) + throw new IllegalArgumentException("File argument MUST NOT be null"); + outputFileObject = outFile; + isDirectory = isDir; + if (! isDirectory) + { + File parent = outputFileObject.getParentFile(); + if (parent != null) + parent.mkdirs(); + } + this.force = force; + } + + public abstract void printClass(ClassWrapper klass) throws IOException; + + protected abstract void writePreambleImpl(PrintStream ps); + + protected abstract PrintStream getPrintStreamImpl(FileOutputStream fos, + ClassWrapper klass); + + protected PrintStream getPrintStream(String fullName, ClassWrapper klass) + throws FileNotFoundException + { + PrintStream result; + FileOutputStream fos; + if (isDirectory) + { + File outFile = new File(outputFileObject, fullName); + if (outFile.exists() && ! force) + return null; + File parent = outFile.getParentFile(); + if (parent != null) + parent.mkdirs(); + fos = new FileOutputStream(outFile); + result = getPrintStreamImpl(fos, klass); + writePreamble(result); + } + else + { + // the first time we open this file, wrotePreamble is false + fos = new FileOutputStream(outputFileObject, wrotePreamble); + result = getPrintStreamImpl(fos, klass); + if (! wrotePreamble) + writePreamble(result); + } + return result; + } + + protected void writePreamble(PrintStream out) + { + writePreambleImpl(out); + wrotePreamble = true; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/Text.java b/libjava/classpath/tools/gnu/classpath/tools/javah/Text.java new file mode 100644 index 00000000000..37a1ad66906 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/Text.java @@ -0,0 +1,60 @@ +/* Text.java - convenience class for CNI header text insertions + 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 gnu.classpath.tools.javah; + +public class Text +{ + public static final int ADD = 0; + + public static final int APPEND = 1; + + public static final int FRIEND = 2; + + public static final int PREPEND = 3; + + public int type; + + public String text; + + public Text(int type, String text) + { + this.type = type; + this.text = text; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java index 2bf832beee0..a53a8b21ae3 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/CACertCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java index 692b1f69015..bdf3aac8f9e 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/CertReqCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java index bc5cff2aaba..af91e4a7151 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/Command.java @@ -56,7 +56,6 @@ import gnu.java.security.hash.MD5; import gnu.java.security.hash.Sha160; import gnu.java.security.util.Util; import gnu.java.security.x509.X500DistinguishedName; -import gnu.javax.security.auth.callback.ConsoleCallbackHandler; import java.io.ByteArrayOutputStream; import java.io.File; @@ -1203,7 +1202,8 @@ abstract class Command *

      * If no installed providers were found, this method falls back on the GNU * provider, by-passing the Security search mechanism. The default console - * callback handler implementation is {@link ConsoleCallbackHandler}. + * callback handler implementation is + * {@link gnu.javax.security.auth.callback.ConsoleCallbackHandler}. * * @return a console-based {@link CallbackHandler}. */ diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java index 8107055d02b..53611b21cda 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/DeleteCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java index 75f71801c9a..a07edc6316f 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/ExportCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java index 03a1555a8c6..79d3824af81 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/GenKeyCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; @@ -217,7 +217,6 @@ class GenKeyCmd extends Command protected String _providerClassName; private int keySize; private X500DistinguishedName distinguishedName; - private Parser cmdOptionsParser; // default 0-arguments constructor diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java index d0de589d933..ac0ee1329e9 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/IdentityDBCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java index 3a6ed872bfb..18a21aa683d 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/ImportCmd.java @@ -40,7 +40,7 @@ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; import gnu.classpath.SystemProperties; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; @@ -207,7 +207,6 @@ class ImportCmd extends Command protected String _ksPassword; protected String _providerClassName; private CertificateFactory x509Factory; - private boolean imported; /** * Pathname to a GKR-type cacerts file to use when trustCACerts is true. This * is usually a file named "cacerts.gkr" located in lib/security in the folder diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java index 81549864b9e..973ed46ce51 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyCloneCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java index 89e6daa0249..5f91becd973 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java @@ -40,7 +40,7 @@ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; import gnu.classpath.SystemProperties; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java index 61cec01a4dc..7579c3f85c0 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/ListCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/Main.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/Main.java index 08d55556efd..2d5234ad0dd 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/Main.java @@ -39,8 +39,8 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.common.ProviderUtil; -import gnu.classpath.tools.getopt.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; @@ -296,14 +296,6 @@ public class Main log.exiting(this.getClass().getName(), "teardown"); //$NON-NLS-1$ } - private void printHelp() - { - if (helpPrinted) - return; - - helpPrinted = true; - } - // Inner class(es) // ========================================================================== diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java index 2c5461b3619..2100a60261b 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/PrintCertCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java index 75f1e8299ed..f297046c79a 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/SelfCertCmd.java @@ -39,7 +39,7 @@ exception statement from your version. */ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java b/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java index 1313ec6abe7..489ecccb070 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java +++ b/libjava/classpath/tools/gnu/classpath/tools/keytool/StorePasswdCmd.java @@ -40,7 +40,7 @@ package gnu.classpath.tools.keytool; import gnu.classpath.Configuration; import gnu.classpath.SystemProperties; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java index 9508c103e08..622de6056ce 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java +++ b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java @@ -38,7 +38,7 @@ package gnu.classpath.tools.native2ascii; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java new file mode 100644 index 00000000000..91c50d7f8c7 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java @@ -0,0 +1,228 @@ +/* NamingServicePersistent.java -- The persistent naming service. + 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 gnu.classpath.tools.orbd; + +import gnu.CORBA.OrbFunctional; +import gnu.CORBA.IOR; +import gnu.CORBA.NamingService.Ext; +import gnu.classpath.tools.common.ClasspathToolParser; +import gnu.classpath.tools.getopt.FileArgumentCallback; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.OptionGroup; +import gnu.classpath.tools.getopt.Parser; + +import org.omg.CosNaming.NamingContextExt; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.io.UnsupportedEncodingException; + +/** + * The server for the GNU Classpath persistent naming service. + * + * GNU Classpath currently works with this naming service and is also + * interoperable with the Sun Microsystems naming services from releases 1.3 and + * 1.4, both transient tnameserv and persistent orbd. + * + * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) + */ +public class Main +{ + /** + * The default port (900), on that the naming service starts if no + * -ORBInitialPort is specified in the command line. + */ + public static final int PORT = 900; + + private int port = PORT; + private String iorf; + private boolean cold; + private String directory = ""; + + /** + * Get the object key for the naming service. The default key is the string + * "NameService" in ASCII. + * + * @return the byte array. + */ + public static byte[] getDefaultKey() + { + try + { // NameService + return "NameService".getBytes("UTF-8"); + } + catch (UnsupportedEncodingException ex) + { + throw new InternalError("UTF-8 unsupported"); + } + } + + private Parser initializeParser() + { + Parser parser = new ClasspathToolParser("orbd", true); //$NON-NLS-1$ + parser.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$ + + parser.add(new Option("ORBInitialPort", //$NON-NLS-1$ + Messages.getString("Main.ORBInitialPort"), //$NON-NLS-1$ + Messages.getString("Main.Port")) //$NON-NLS-1$ + { + public void parsed(String portArgument) throws OptionException + { + port = Integer.parseInt(portArgument); + } + }); + + parser.add(new Option("ior", //$NON-NLS-1$ + Messages.getString("Main.IOR"), //$NON-NLS-1$ + Messages.getString("Main.IORFile")) //$NON-NLS-1$ + { + public void parsed(String fileArgument) throws OptionException + { + iorf = fileArgument; + } + }); + parser.add(new Option("directory", //$NON-NLS-1$ + Messages.getString("Main.Directory"), //$NON-NLS-1$ + Messages.getString("Main.DirectoryArgument")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + directory = argument; + } + }); + parser.add(new Option("restart", //$NON-NLS-1$ + Messages.getString("Main.Restart")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + cold = true; + } + }); + + return parser; + } + + private void run(String[] args) + { + Parser parser = initializeParser(); + parser.parse(args); + + try + { + // Create and initialize the ORB + final OrbFunctional orb = new OrbFunctional(); + OrbFunctional.setPort(port); + + // Create the servant and register it with the ORB + File dataDirectory = new File(directory); + System.out.println("Persistent data stored at " + + dataDirectory.getAbsolutePath()); + dataDirectory.mkdirs(); + + // / TODO support more starting modes. + NamingContextExt namer = new Ext( + new PersistentContext( + orb, + dataDirectory, + cold)); + + // Case with the key "NameService". + orb.connect(namer, "NameService".getBytes()); + + // Storing the IOR reference. + String ior = orb.object_to_string(namer); + IOR iorr = IOR.parse(ior); + if (iorf != null) + { + FileOutputStream f = new FileOutputStream(iorf); + PrintStream p = new PrintStream(f); + p.print(ior); + p.close(); + } + + System.out.println("GNU Classpath persistent naming service " + + "started at " + iorr.Internet.host + ":" + + iorr.Internet.port + " key 'NameService'.\n\n" + + "Copyright (C) 2006 Free Software Foundation\n" + + "This tool comes with ABSOLUTELY NO WARRANTY. " + + "This is free software, and you are\nwelcome to " + + "redistribute it under conditions, defined in " + + "GNU Classpath license.\n\n" + ior); + + new Thread() + { + public void run() + { + // Wait for invocations from clients. + orb.run(); + } + }.start(); + } + catch (FileNotFoundException e) + { + throw new RuntimeException(e); + } + finally + { + // Restore the default value for allocating ports for the subsequent + // objects. + OrbFunctional.setPort(OrbFunctional.DEFAULT_INITIAL_PORT); + } + } + + /** + * The persistent naming service entry point. + */ + public static void main(String[] args) + { + Main orbdprogram = new Main(); + try + { + orbdprogram.run(args); + } + catch (Exception e) + { + System.err.println(Messages.getString("Main.InternalError")); //$NON-NLS-1$ + e.printStackTrace(System.err); + System.exit(1); + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/Messages.java new file mode 100644 index 00000000000..c9bb371ad3b --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/Messages.java @@ -0,0 +1,67 @@ +/* Messages.java -- localization support for orbd + 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 gnu.classpath.tools.orbd; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class Messages +{ + private static final String BUNDLE_NAME + = "gnu.classpath.tools.orbd.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE + = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() + { + } + + public static String getString(String key) + { + try + { + return RESOURCE_BUNDLE.getString(key); + } + catch (MissingResourceException e) + { + return '!' + key + '!'; + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java new file mode 100644 index 00000000000..9b4f27a3d7d --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java @@ -0,0 +1,152 @@ +/* PersistentContext.java -- The persistent naming context. + 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 gnu.classpath.tools.orbd; + +import gnu.CORBA.NamingService.NameTransformer; +import gnu.CORBA.NamingService.TransientContext; + +import java.io.File; + +import org.omg.CORBA.ORB; +import org.omg.CosNaming.NameComponent; +import org.omg.CosNaming.NamingContext; +import org.omg.CosNaming.NamingContextPackage.AlreadyBound; +import org.omg.CosNaming.NamingContextPackage.CannotProceed; +import org.omg.CosNaming.NamingContextPackage.InvalidName; +import org.omg.CosNaming.NamingContextPackage.NotFound; + +/** + * This class implements the persistent naming service, defined by + * {@link NamingContext}. The 'persistent' means that the service remembers the + * mappings, stored between restarts. + * + * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) + */ +public class PersistentContext + extends TransientContext +{ + /** + * Use serial version UID for interoperability. + */ + private static final long serialVersionUID = 2; + + /** + * The folder, where the persistent context information is stored. + */ + File contextFolder; + + /** + * The uinque context identifier. + */ + static long num = System.currentTimeMillis(); + + /** + * The naming service orb. + */ + ORB orb; + + /** + * Create the persistent naming context that will store the files in the given + * folder of the local file system. This method also connects object to the + * passed ORB. + * + * @param an_orb the naming service ORB, used to obtain and produce the object + * stringified references. + * @param folder the folder, where the persistent information is stored. + * @param reset if true, the previous naming data are discarded. If false + * (normally expected), they are loaded from the persistent memory to + * provide the persistence. + */ + public PersistentContext(ORB an_orb, File folder, boolean reset) + { + super( + new PersistentContextMap(an_orb, new File(folder, "contexts.txt"), reset), + new PersistentMap(an_orb, new File(folder, "objects.txt"), reset)); + contextFolder = folder; + folder.mkdirs(); + orb = an_orb; + orb.connect(this); + } + + /** + * Get the unique context number; + * + * @return the context number + */ + static synchronized String getNum() + { + return Long.toHexString(num++); + } + + /** + * Create new persistent context. + */ + public NamingContext new_context() + { + File ctxFolder = new File(contextFolder, "ctx_"+getNum()); + return new PersistentContext(orb, ctxFolder, true); + } + + /** + * Create a new context and give it a given name (bound it) in the current + * context. The method benefits from passing the better readable context name. + * + * @param a_name the name being given to the new context. + * @return the newly created context. + * @throws AlreadyBound if the name is already in use. + * @throws InvalidName if the name has zero length or otherwise invalid. + */ + public NamingContext bind_new_context(NameComponent[] a_name) + throws NotFound, AlreadyBound, CannotProceed, InvalidName + { + if (named_contexts.containsKey(a_name[0]) + || named_objects.containsKey(a_name[0])) + throw new AlreadyBound(); + + NameTransformer transformer = new NameTransformer(); + + File ctxFolder = new File(contextFolder, + transformer.toString(a_name).replace('/', '.') + + ".v" + getNum()); + + NamingContext child = new PersistentContext(orb, ctxFolder, true); + bind_context(a_name, child); + return child; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java new file mode 100644 index 00000000000..e983ef30f7a --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java @@ -0,0 +1,87 @@ +/* PersistentContextMap.java -- The persistent context naming map + 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 gnu.classpath.tools.orbd; + +import java.io.File; + +import org.omg.CORBA.ORB; +import org.omg.CORBA.Object; + +/** + * The persistent context naming map for the persistent naming service. + * + * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) + */ +public class PersistentContextMap extends PersistentMap +{ + /** + * Create the persistent context map that stores information in the given + * file. + * + * @param an_orb the naming service ORB, used to obtain and produce the object + * stringified references. + * @param mapFile the file, where the persistent information is stored. + * @param reset if true, the previous naming data are discarded. If false + * (normally expected), they are loaded from the persistent memory to + * provide the persistence. + */ + public PersistentContextMap(ORB an_orb, File mapFile, boolean reset) + { + super(an_orb, mapFile, reset); + } + + /** + * This method expects the PersistentContext as its parameter. The returned + * description line is the name of the context parent folder. + */ + protected String object_to_string(Object object) + { + PersistentContext pc = (PersistentContext) object; + return pc.contextFolder.getAbsolutePath(); + } + + /** + * This method restores the PersistenContext. The description line is + * interpreted as the folder name, absolute path. + */ + protected Object string_to_object(String description) + { + return new PersistentContext(orb, new File(description), reset); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java new file mode 100644 index 00000000000..6c6164d21f4 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java @@ -0,0 +1,454 @@ +/* PersistentMap.java -- The persistent object naming map + 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 gnu.classpath.tools.orbd; + +import gnu.CORBA.NamingService.NamingMap; + +import java.io.BufferedOutputStream; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.util.Iterator; +import java.util.Map; + +import org.omg.CORBA.ORB; +import org.omg.CosNaming.NameComponent; +import org.omg.CosNaming.NamingContextPackage.AlreadyBound; +import org.omg.CosNaming.NamingContextPackage.InvalidName; + +/** + * The persistent object naming map for the persistent naming service. The + * inherited (super.) naming map implementation is transient and is used as a + * cache. During the normal work, the naming map does not read from the disk, + * just stores the changes there. Map only reads from the disk when it starts. + * + * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) + */ +public class PersistentMap + extends NamingMap +{ + /** + * The data entry. + */ + public static class Entry + { + String id; + + String kind; + + String ior; + + /** + * Get the name component node. + */ + public NameComponent getComponent() + { + return new NameComponent(id, kind); + } + + /** + * Write the naming map entry to the output stream. + */ + public void write(OutputStream out) throws IOException + { + // Format: id.kind ior + out.write(getKey(id, kind).getBytes()); + out.write('\n'); + out.write(ior.getBytes()); + out.write('\n'); + out.close(); + } + + /** + * Read the name component from the input stream + */ + public boolean read(BufferedReader in) throws IOException + { + String key = in.readLine(); + String xior = in.readLine(); + + if (key != null && xior != null) + { + if (key.length() < 2) + { + // A single char key cannot have the kind part. + id = key; + kind = ""; + } + else + { + // Search for the id/kind splitter, dot: + int iks = - 1; + for (int i = 1; i < key.length(); i++) + { + if (key.charAt(i) == '.') + // The id is separated from kind by dot, unless preceeded by + // the + // escape character, \. + if (key.charAt(i - 1) != '\\') + { + iks = i; + break; + } + } + + // May also end by dot, if the kind field is missing. + if (iks < 0) + { + id = key; + kind = ""; + } + else if (iks == key.length() - 1) + { + id = key.substring(0, key.length() - 1); + kind = ""; + } + else + { + id = key.substring(0, iks); + kind = key.substring(iks + 1); + } + } + ior = xior; + return true; + } + else + return false; + } + + /** + * Get the key value from the name component. + * + * @param id the component id + * @param kind the component kind + * @return the key value + */ + public String getKey(String id, String kind) + { + StringBuffer b = new StringBuffer(id.length() + 8); + appEscaping(b, id); + b.append('.'); + if (kind != null && kind.length() > 0) + appEscaping(b, kind); + return b.toString(); + } + + /** + * Append the contents of the string to this string buffer, inserting the + * escape sequences, where required. + * + * @param b a buffer to append the contents to. + * @param s a string to append. + */ + void appEscaping(StringBuffer b, String s) + { + char c; + for (int i = 0; i < s.length(); i++) + { + c = s.charAt(i); + switch (c) + { + case '.': + case '/': + case '\\': + b.append('\\'); + b.append(c); + break; + + default: + b.append(c); + break; + } + } + } + } + + /** + * The file, where the persistent naming map stores the information. The + * format of this file is n*(id LF kind LF ior LFLF). + */ + public final File file; + + /** + * The naming service ORB, used to obtain and produce the object stringified + * references. + */ + ORB orb; + + /** + * If true, all existing data on the file system are discarded. + */ + boolean reset; + + /** + * Create the persistent map that stores information in the given file. + * + * @param an_orb the naming service ORB, used to obtain and produce the object + * stringified references. + * @param mapFile the file, where the persistent information is stored. + * @param a_reset if true, the previous naming data are discarded. If false + * (normally expected), they are loaded from the persistent memory to + * provide the persistence. + */ + public PersistentMap(ORB an_orb, File mapFile, boolean a_reset) + { + super(); + orb = an_orb; + file = mapFile; + reset = a_reset; + + // Initialise the persistent map with existing data. + if (file.exists() && ! reset) + { + + BufferedReader in; + try + { + FileInputStream fin = new FileInputStream(file); + in = new BufferedReader(new InputStreamReader(fin)); + Entry e = new Entry(); + boolean ok; + + while (e.read(in)) + { + org.omg.CORBA .Object object = string_to_object(e.ior); + orb.connect(object); + map.put(e.getComponent(), object); + } + } + catch (Exception ex) + { + InternalError ierr = new InternalError(file.getAbsolutePath()); + ierr.initCause(ex); + throw ierr; + } + } + } + + /** + * Restore object from its string description. + * + * @param description the string, describing the object + * + * @return the object. + */ + protected org.omg.CORBA.Object string_to_object(String description) + { + return orb.string_to_object(description); + } + + /** + * Convert the object to its string description + * + * @param object the object to convert + * @return the string description of the object + */ + protected String object_to_string(org.omg.CORBA .Object object) + { + return orb.object_to_string(object); + } + + /** + * Put the given GIOP object, specifying the given name as a key. If the entry + * with the given name already exists, or if the given object is already + * mapped under another name, the {@link AlreadyBound} exception will be + * thrown. + * + * @param name the name + * @param object the object + */ + public void bind(NameComponent name, org.omg.CORBA.Object object) + throws AlreadyBound, InvalidName + { + if (!containsKey(name)) + { + super.bind(name, object); + register(name, object); + } + else + throw new AlreadyBound(name.id + "." + name.kind); + } + + /** + * Put the given CORBA object, specifying the given name as a key. Remove all + * pre - existing mappings for the given name and object. + * + * @param name the name. + * @param object the object + */ + public void rebind(NameComponent name, org.omg.CORBA.Object object) + throws InvalidName + { + if (containsKey(name)) + { + org.omg.CORBA.Object existing = get(name); + String ior = object_to_string(object); + String xior = object_to_string(existing); + + // Same name and same ior - nothing to do. + if (ior.equals(xior)) + return; + else + remove(name); + } + + Iterator iter = entries().iterator(); + Map.Entry item; + + // Remove the existing mapping for the given object, if present. + while (iter.hasNext()) + { + item = (Map.Entry) iter.next(); + if (item.getValue().equals(object)) + iter.remove(); + } + + map.put(name, object); + register(name, object); + } + + /** + * Removes the given name, if present. + * + * @param name a name to remove. + */ + public void remove(NameComponent name) + { + super.remove(name); + unregister(name); + } + + /** + * Register this name - object pair in the persistent storage. + * + * @param name the name. + * @param object the object + */ + public void register(NameComponent name, org.omg.CORBA.Object object) + { + // If this key is already known, and this is the same object, + // then return without action. + String ior = object_to_string(object); + + synchronized (file) + { + try + { + FileOutputStream fou; + + if (! file.exists()) + fou = new FileOutputStream(file); + else + fou = new FileOutputStream(file, true); + + Entry e = new Entry(); + e.id = name.id; + e.kind = name.kind; + e.ior = ior; + e.write(fou); + fou.close(); + } + catch (Exception e) + { + InternalError ierr = new InternalError(file.getAbsolutePath()); + ierr.initCause(e); + throw ierr; + } + } + } + + /** + * Remove this name from the persistent storage. + * + * @param name the name to remove + */ + public void unregister(NameComponent name) + { + synchronized (file) + { + try + { + File nf = new File(file.getParent(), file.getName() + "_t"); + FileInputStream fin = new FileInputStream(file); + FileOutputStream fou = new FileOutputStream(nf); + BufferedOutputStream ou = new BufferedOutputStream(fou); + + BufferedReader in = new BufferedReader(new InputStreamReader(fin)); + String s; + String nk = name.kind; + if (nk == null) + nk = ""; + + Entry e = new Entry(); + + while (e.read(in)) + { + if (e.id.equals(name.id) && e.kind.equals(nk)) + { + // Do nothing - skip. + } + else + { + e.write(ou); + } + } + + File deleteIt = new File(file.getParent(), file.getName() + "_d"); + if (deleteIt.exists()) + deleteIt.delete(); + + if (! file.renameTo(deleteIt)) + throw new IOException(file.getAbsolutePath() + " rename failed"); + + if (! nf.renameTo(file)) + throw new IOException(file.getAbsolutePath() + " rename failed"); + } + catch (Exception e) + { + InternalError ierr = new InternalError(file.getAbsolutePath()); + ierr.initCause(e); + throw ierr; + } + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/Persistent.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/Persistent.java deleted file mode 100644 index 5cd1efe91f7..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/Persistent.java +++ /dev/null @@ -1,87 +0,0 @@ -/* PersistentBidiHasthable.java -- Constants for the persistent tables. - 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 gnu.classpath.tools.rmi; - -import java.util.Timer; -import java.util.TimerTask; - -/** - * The static fields, shared by the multiple classes, implementing the - * persistent work. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public interface Persistent -{ - /** - * Sheduled termination task. - */ - static class ExitTask extends TimerTask - { - public void run() - { - System.exit(0); - } - } - - /** - * The timer, sheduling all disk database update events, shared by all - * instances. - */ - static Timer timer = new Timer(true); - - /** - * The longest time, in ms, after that the database content on the disk must - * be updated. The algorithm is written to avoid the very frequent writings to - * the disk. - */ - static long SAVE_AT_MOST_AFTER = 5000; - - /** - * States how long the database may stay not updated during the intensive - * operations, in ms. Otherwise the intensively used structure may never - * be stored to the disk. - */ - static long ALWAYS_UPDATE = 300000; - - /** - * Write the database content to the disk. - */ - void writeContent(); - -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java deleted file mode 100644 index 94b5bcbeeb7..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java +++ /dev/null @@ -1,268 +0,0 @@ -/* PersistentBidiHasthable.java -- Bidirectional persistent hash table. - 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 gnu.classpath.tools.rmi; - -import gnu.classpath.tools.rmi.rmid.ActivationSystemImpl; -import gnu.java.rmi.activation.BidiTable; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Map; -import java.util.TimerTask; - -/** - * The persistent bidirectional hash table, maps both a to b and b to a. The - * changes are written to dist after SAVE_AT_MOST_AFTER time from the latest - * database change or at most after ALWAYS_UPDATE, if the database is updated - * very frequently. To ensure that no information is lost, the shutdown method - * must be called before exit. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public class PersistentBidiHashTable extends BidiTable implements - Persistent -{ - class WriteToDiskTask extends TimerTask - { - /** - * Save the database. - */ - public void run() - { - writeContent(); - sheduled = null; - } - } - - /** - * Replaces instances of ActivationSystemImpl into the currently active - * instance of the ActivationSystemImpl - */ - class AdaptedReader extends ObjectInputStream - { - AdaptedReader(InputStream in) throws IOException - { - super(in); - enableResolveObject(true); - } - - protected Object resolveObject(Object obj) throws IOException - { - if (obj instanceof ActivationSystemImpl) - return ActivationSystemImpl.singleton2; - else - return obj; - } - } - - /** - * The database file. - */ - File database; - - /** - * The currently sheduled write to disk task, null if none. - */ - WriteToDiskTask sheduled = null; - - /** - * The time, when the disk database was last updated. - */ - long lastUpdated; - - /** - * Create the unitialised instance that must be initalised when - * ActivationSystemImpl.singleton2 is assigned. - */ - public PersistentBidiHashTable() - { - // Do not initalise the table fields - the initalise method must be - // called later. - super(0); - } - - /** - * Create a new persistent table that stores its information into the given - * file. The ActivationSystemImpl.singleton2 must be assigned. - * - * @param file - * the file, where the table stores its information. - * @param coldStart - * if true, the existing file with this name will be erased and - * ignored. Otherwise, it will be assumed that the file contains the - * persistent table information. - */ - public void init(File file, boolean coldStart) - { - try - { - database = file; - if (database.exists()) - { - if (coldStart) - { - k2v = new Hashtable(); - v2k = new Hashtable(); - database.delete(); - } - else - { - FileInputStream fi = new FileInputStream(file); - BufferedInputStream b = new BufferedInputStream(fi); - ObjectInputStream oin = new AdaptedReader(b); - - k2v = (Map) oin.readObject(); - oin.close(); - - v2k = new Hashtable(k2v.size()); - - // Reguild v2k from k2v: - Iterator en = k2v.keySet().iterator(); - Object key; - while (en.hasNext()) - { - key = en.next(); - v2k.put(k2v.get(key), key); - } - } - } - else - { - k2v = new Hashtable(); - v2k = new Hashtable(); - } - } - catch (Exception ioex) - { - InternalError ierr = new InternalError("Unable to intialize with file " - + file); - ierr.initCause(ioex); - throw ierr; - } - } - - /** - * Write the database content to the disk. - */ - public synchronized void writeContent() - { - try - { - FileOutputStream fou = new FileOutputStream(database); - BufferedOutputStream b = new BufferedOutputStream(fou); - ObjectOutputStream oout = new ObjectOutputStream(b); - oout.writeObject(k2v); - oout.close(); - } - catch (Exception ioex) - { - InternalError ierr = new InternalError( - "Failed to write database to disk: " - + database); - ierr.initCause(ioex); - throw ierr; - } - } - - /** - * Mark the modified database as modified. The database will be written after - * several seconds, unless another modification occurs. - */ - public void markDirty() - { - if (System.currentTimeMillis() - lastUpdated > ALWAYS_UPDATE) - { - // Force storing to disk under intensive operation. - writeContent(); - lastUpdated = System.currentTimeMillis(); - if (sheduled != null) - { - sheduled.cancel(); - sheduled = null; - } - } - else - { - // Otherwise coalesce the disk database copy update events. - if (sheduled != null) - sheduled.cancel(); - sheduled = new WriteToDiskTask(); - timer.schedule(sheduled, SAVE_AT_MOST_AFTER); - } - } - - /** - * Save the current database state to the disk before exit. - */ - public void shutdown() - { - if (sheduled != null) - { - writeContent(); - sheduled = null; - } - } - - /** - * Update the memory maps and mark as should be written to the disk. - */ - public void put(Object key, Object value) - { - super.put(key, value); - markDirty(); - } - - /** - * Update the memory maps and mark as should be written to the disk. - */ - public void removeKey(Object key) - { - super.removeKey(key); - markDirty(); - } - -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentHashTable.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentHashTable.java deleted file mode 100644 index 925e829ffd0..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentHashTable.java +++ /dev/null @@ -1,246 +0,0 @@ -/* PersistentHasthable.java -- Persistent hash table. - 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 gnu.classpath.tools.rmi; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.Hashtable; -import java.util.Map; -import java.util.TimerTask; - -/** - * The persistent hash table. The changes are written to dist after - * SAVE_AT_MOST_AFTER time from the latest database change or at most after - * ALWAYS_UPDATE, if the database is updated very frequently. To ensure that no - * information is lost, the shutdown method must be called before exit. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public class PersistentHashTable - extends Hashtable - implements Serializable, Persistent -{ - - /** - * Use serialVersionUID for interoperability - */ - private static final long serialVersionUID = 1; - - class WriteToDiskTask extends TimerTask - { - /** - * Save the database. - */ - public void run() - { - writeContent(); - sheduled = null; - } - } - - /** - * The database file. - */ - File database; - - /** - * The currently sheduled write to disk task, null if none. - */ - WriteToDiskTask sheduled = null; - - /** - * The time, when the disk database was last updated. - */ - long lastUpdated; - - /** - * Setting to false prevents the automated disk update. - * The initial value is true to prevent writing while reading and is set - * to false in createInstance. - */ - transient boolean ready; - - /** - * Use static method to obtain the instance. - */ - private PersistentHashTable(File file) - { - if (file == null) - throw new NullPointerException("Null file provided"); - database = file; - } - - /** - * Create a new persistent table that stores its information into the given - * file. - * - * @param file - * the file, where the table stores its information. - * @param coldStart - * if true, the existing file with this name will be erased and - * ignored. Otherwise, it will be assumed that the file contains the - * persistent table information. - */ - public static Map createInstance(File file, boolean coldStart) - { - try - { - PersistentHashTable k2v; - if (file.exists()) - { - if (coldStart) - { - file.delete(); - k2v = new PersistentHashTable(file); - } - else - { - FileInputStream fi = new FileInputStream(file); - BufferedInputStream b = new BufferedInputStream(fi); - ObjectInputStream oin = new ObjectInputStream(b); - - k2v = (PersistentHashTable) oin.readObject(); - oin.close(); - } - } - else - k2v = new PersistentHashTable(file); - - k2v.ready = true; - return k2v; - } - catch (Exception ioex) - { - InternalError ierr = new InternalError("Unable to intialize with file " - + file); - ierr.initCause(ioex); - throw ierr; - } - } - - - /** - * Write the database content to the disk. - */ - public synchronized void writeContent() - { - try - { - FileOutputStream fou = new FileOutputStream(database); - BufferedOutputStream b = new BufferedOutputStream(fou); - ObjectOutputStream oout = new ObjectOutputStream(b); - oout.writeObject(this); - oout.close(); - } - catch (Exception ioex) - { - InternalError ierr = new InternalError( - "Failed to write database to disk: "+ database); - ierr.initCause(ioex); - throw ierr; - } - } - - /** - * Mark the modified database as modified. The database will be written after - * several seconds, unless another modification occurs. - */ - public void markDirty() - { - if (System.currentTimeMillis() - lastUpdated > ALWAYS_UPDATE) - { - // Force storing to disk under intensive operation. - writeContent(); - lastUpdated = System.currentTimeMillis(); - if (sheduled != null) - { - sheduled.cancel(); - sheduled = null; - } - } - else - { - // Otherwise coalesce the disk database copy update events. - if (sheduled != null) - sheduled.cancel(); - sheduled = new WriteToDiskTask(); - timer.schedule(sheduled, SAVE_AT_MOST_AFTER); - } - } - - /** - * Save the current database state to the disk before exit. - */ - public void shutdown() - { - if (sheduled != null) - { - writeContent(); - sheduled = null; - } - } - - /** - * Update the memory maps and mark as should be written to the disk. - */ - public Object put(Object key, Object value) - { - super.put(key, value); - if (ready) - markDirty(); - return value; - } - - /** - * Update the memory maps and mark as should be written to the disk. - */ - public Object remove(Object key) - { - Object removed = super.remove(key); - if (ready) - markDirty(); - return removed; - } - -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.java deleted file mode 100644 index 63f633f992e..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.java +++ /dev/null @@ -1,165 +0,0 @@ -/* REGISTY.java -- RMI registry starter. - 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 gnu.classpath.tools.rmi; - -import gnu.classpath.tools.HelpPrinter; -import gnu.classpath.tools.rmi.registry.RegistryImpl; -import gnu.java.rmi.server.UnicastServerRef; - -import java.io.File; -import java.rmi.NotBoundException; -import java.rmi.RemoteException; -import java.rmi.registry.LocateRegistry; -import java.rmi.registry.Registry; -import java.rmi.server.ObjID; -import java.rmi.server.RMIServerSocketFactory; -import java.util.Hashtable; -import java.util.Map; - -/** - * The optionally persistent RMI registry implementation. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public class REGISTRY -{ - /** - * The stop command. - */ - public static String STOP = "gnu.classpath.tools.rmi.registry.command.STOP"; - - /** - * If true, the registry prints registration events to console. - */ - public static boolean verbose = false; - - /** - * The RMI registry implementation entry point. - */ - public static void main(String[] args) - { - String HelpPath = "rmi/REGISTRY.txt"; - HelpPrinter.checkHelpKey(args, HelpPath); - - // Parse parameters: - String folder = "."; - boolean cold = false; - boolean trans = false; - boolean stop = false; - - int port = Registry.REGISTRY_PORT; - RMIServerSocketFactory ssf = null; - - for (int i = 0; i < args.length; i++) - { - String a = args[i]; - if (a.equals("-restart")) - cold = true; - else if (a.equals("-transient")) - trans = true; - else if (a.equals("-verbose")) - verbose = true; - else if (a.equals("-stop")) - stop = true; - else if (i < args.length - 1) - { - // The additional key parameter is possible. - if (a.equals("-port")) - port = Integer.parseInt(args[++i]); - else if (a.equals("-folder")) - folder = args[++i]; - } - } - - if (!stop) - { - Map table; - if (trans) - table = new Hashtable(); - else - { - // Start the system. - File dataFolder = new File(folder); - if (!dataFolder.exists()) - dataFolder.mkdirs(); - table = PersistentHashTable.createInstance( - new File(dataFolder, "rmiregistry.data"), cold); - } - - RegistryImpl system = new RegistryImpl(table); - - // We must export with the specific activation id that is only - // possible when going into the gnu.java.rmi - try - { - UnicastServerRef sref = new UnicastServerRef( - new ObjID(ObjID.REGISTRY_ID), port, ssf); - - sref.exportObject(system); - System.out.println("The RMI naming service is listening at " + port); - } - catch (Exception ex) - { - System.out.println("Failed to start RMI naming service at " + port); - } - } - else - { - // Stop the naming service. - try - { - Registry r = LocateRegistry.getRegistry(port); - // Search for this specific line will command to stop the registry. - - // Our service returns null, but any other service will thrown - // NotBoundException. - r.unbind(STOP); - } - catch (RemoteException e) - { - System.out.println("Failed to stop RMI naming service at " + port); - } - catch (NotBoundException e) - { - System.out.println("The naming service at port "+port+" is not a "+ - REGISTRY.class.getName()); - } - } - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.txt b/libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.txt deleted file mode 100644 index 7d8e192329f..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/REGISTRY.txt +++ /dev/null @@ -1,28 +0,0 @@ -The persistent RMI naming service, required for the remote method invocations -(packages java.rmi.*, java.rmi.Registry.*). - -Copyright 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Please report bugs at http://www.gnu.org/software/classpath/bugs.html - -Usage: rmiregistry - - where includes: - -port N Start the registry on the given local port. If this key - is not specified, the service starts on the port 1099. - -verbose Log binding events to stdout. - -stop Stop the running naming service at the given port. - - -transient Start transient registry service that does not write any - data to the disk. Such service looses the stored bindings if - restarted. If this key is not specified, the - persistent naming service is started. - -restart "Cold start:, clear the persistent naming database, if any. - -folder Folder Store the persistent binding file in the given folder. If this - key is not specified, the file with persistent bindings is - stored into the current folder. - - - diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.java deleted file mode 100644 index fa4d87c1707..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.java +++ /dev/null @@ -1,186 +0,0 @@ -/* RMIC.java -- RMI stub generator. - 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. -*/ - - -package gnu.classpath.tools.rmi; - -import gnu.classpath.tools.HelpPrinter; -import gnu.classpath.tools.giop.GRMIC; -import gnu.classpath.tools.rmi.rmic.RmicCompiler; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; - -/** - * Generates the ordinary stubs (not GIOP based) for java.rmi.* package. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class RMIC -{ - /** - * The version of the compiler. - */ - public static String VERSION = "0.01 alpha pre"; - - /** - * The GRMIC compiler methods - * - * @param args the compiler parameters. - */ - public static void main(String[] args) - { - // Check for the -iiop or -giop keys. If one of these keys is present, - // forward all call to GRMIC. - for (int i = 0; i < args.length; i++) - { - if (args[i].equals("-giop") || args[i].equals("-iiop")) - { - GRMIC.main(args); - return; - } - } - - boolean noWrite = false; - boolean verbose = false; - - String HelpPath = "rmi/RMIC.txt"; - - HelpPrinter.checkHelpKey(args, HelpPath); - - File output = new File("."); - - if (args.length == 0) - { - HelpPrinter.printHelpAndExit(HelpPath); - } - else - { - RmicCompiler compiler = new RmicCompiler(); - - int cl = - 1; - - Options: for (int i = 0; i < args.length; i++) - { - String c = args[i]; - if (c.equals("-v")) - { - printVersion(); - System.exit(0); - } - else if (c.equals("-nowrite")) - noWrite = true; - else if (c.equals("-nowarn")) - compiler.setWarnings(false); - else if (c.equals("-verbose")) - { - verbose = true; - compiler.setVerbose(true); - } - else if (c.equals("-force")) - { - compiler.setForce(true); - } - else if (c.equals("-d")) - { - int f = i + 1; - if (f < args.length) - { - output = new File(args[f]); - i++; - } - else - HelpPrinter.printHelpAndExit(HelpPath); - } - else if (c.equals("-classpath")) - { - int f = i + 1; - if (f < args.length) - { - compiler.setClassPath(args[f]); - i++; - } - else - HelpPrinter.printHelpAndExit(HelpPath); - } - else if (c.charAt(0) != '-') - // No more options - start of class list. - { - cl = i; - break Options; - } - } - - if (cl < 0) - HelpPrinter.printHelpAndExit(HelpPath); - - if (verbose) - System.out.println("Compiling to " + output.getAbsolutePath()); - - // Compile classes - Compile: for (int i = cl; i < args.length; i++) - { - if (args[i].charAt(0) != '-') - { - compiler.reset(); - Class c = compiler.loadClass(args[i]); - - compiler.compile(c); - String packag = compiler.getPackageName().replace('.', '/'); - File fw = new File(output, packag); - - // Generate stub. - String stub = compiler.generateStub(); - String subName = compiler.getStubName() + "_Stub.java"; - - if (noWrite) - continue Compile; - - try - { - fw.mkdirs(); - OutputStream out = new FileOutputStream(new File(fw, - subName)); - out.write(stub.getBytes()); - out.close(); - } - catch (IOException ioex) - { - System.err.println("Output path not accessible"); - ioex.printStackTrace(); - System.exit(1); - } - } - } - } - } - - /** - * Print the version information. - */ - public static void printVersion() - { - System.out.println - ("rmic v "+VERSION+" - RMI stub generator for java.rmi.* "); - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.txt b/libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.txt deleted file mode 100644 index 882cca5538a..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMIC.txt +++ /dev/null @@ -1,45 +0,0 @@ -RMI stub and tie source code generator for java.rmi.*, javax.rmi.* - -Copyright 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Please report bugs at http://www.gnu.org/software/classpath/bugs.html - -Usage: rmic - - where includes: - -nowarn Show no warnings - -nowrite Do not write any files (check for errors only) - -d Place generated files into the given folder - -classpath Specifies the path, where to find the classes being - compiled - - -help Print this help text - -v Print version - -verbose Verbose output - -force Try to generate code even if the input classes seem not - consistent with RMI specification. - - -1.2 Generate v 1.2 stubs (default)* - - -iiop Generate stubs and ties for the GIOP based RMI package - extension, javax.rmi. With this key, the two additional - keys are accepted: - -poa Generate the Servant based ties (default) - -impl Generate the obsoleted ObjectImpl based ties - (for backward compatibility) - -help Show more details on the giop stub and tie generator - options. - -giop Same as -iiop* - - - and can include one or more non abstract classes that implement - Remote and are accessible via current class path. - -* This tool generates the source code that must be compiled with java compiler. -* The deprecated 1.1 version stubs are currently not supported (the v 1.2 - style stubs are always generated). -* -iiop is a standard key for this tool, but it is also a registered OMG mark - when giop is not. - diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.java deleted file mode 100644 index 81d09671a79..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.java +++ /dev/null @@ -1,189 +0,0 @@ -/* RMID.java -- the RMI activation daemon. - 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 gnu.classpath.tools.rmi; - -import gnu.classpath.tools.HelpPrinter; -import gnu.classpath.tools.rmi.rmid.ActivationSystemImpl; -import gnu.java.rmi.activation.ActivationSystemTransient; -import gnu.java.rmi.server.UnicastServerRef; - -import java.io.File; -import java.net.InetAddress; -import java.rmi.Remote; -import java.rmi.activation.ActivationSystem; -import java.rmi.registry.LocateRegistry; -import java.rmi.registry.Registry; -import java.rmi.server.ObjID; -import java.rmi.server.RMIServerSocketFactory; - - -/** - * The persistent RMI activation daemon. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public class RMID -{ - /** - * The RMI server socket factory. - */ - static RMIServerSocketFactory ACTIVATION_REGISTY_SOCKET_FACTORY = null; - - /** - * The activation registry port. - */ - static int ACTIVATION_REGISTRY_PORT = ActivationSystem.SYSTEM_PORT; - - /** - * The activation system name. - */ - static String ACTIVATION_SYSTEM_NAME = "java.rmi.activation.ActivationSystem"; - - /** - * The RMI activation daemon entry point. - */ - public static void main(String[] args) - { - String HelpPath = "rmi/RMID.txt"; - HelpPrinter.checkHelpKey(args, HelpPath); - - // Parse parameters: - boolean stop = false; - String folder = "."; - boolean cold = false; - boolean trans = false; - - for (int i = 0; i < args.length; i++) - { - String a = args[i]; - if (a.equals("-verbose")) - ActivationSystemTransient.debug = true; - else if (a.equals("-stop")) - stop = true; - else if (a.equals("-restart")) - cold = true; - else if (a.equals("-transient")) - trans = true; - else if (i < args.length - 1) - { - // The additional key parameter is possible. - if (a.equals("-port")) - ACTIVATION_REGISTRY_PORT = Integer.parseInt(args[++i]); - else if (a.equals("-folder")) - folder = args[++i]; - } - } - - try - { - if (!stop) - { - // Start the system. - File dataFolder = new File(folder); - if (!dataFolder.exists()) - dataFolder.mkdirs(); - ActivationSystem system; - - if (trans) - system = ActivationSystemTransient.getInstance(); - else - system = ActivationSystemImpl.getInstance(dataFolder, cold); - - // We must export with the specific activation id that is only - // possible when going into the gnu.java.rmi.activation. - UnicastServerRef sref = new UnicastServerRef( - new ObjID(ObjID.ACTIVATOR_ID), ACTIVATION_REGISTRY_PORT, - ACTIVATION_REGISTY_SOCKET_FACTORY); - Remote systemStub = sref.exportObject(system); - - // Start the naming system on the activation system port - // (if not already running). - - Registry r; - try - { - // Expect the naming service running first. - // The local host may want to use the shared registry - r = LocateRegistry.getRegistry(ACTIVATION_REGISTRY_PORT); - r.rebind(ACTIVATION_SYSTEM_NAME, systemStub); - } - catch (Exception ex) - { - // The naming service is not running. Start it. - r = LocateRegistry.createRegistry(ACTIVATION_REGISTRY_PORT); - r.rebind(ACTIVATION_SYSTEM_NAME, systemStub); - } - String host = InetAddress.getLocalHost().getCanonicalHostName(); - System.out.println("The RMI daemon is listening on " + host + - " (port " - + ACTIVATION_REGISTRY_PORT + ")"); - - } - else - { - // Stop the activation system. - Registry r; - try - { - System.out.print("Stopping RMI daemon at " - + ACTIVATION_REGISTRY_PORT+" ... "); - // Expect the naming service running first. - // The local host may want to use the shared registry - r = LocateRegistry.getRegistry(ACTIVATION_REGISTRY_PORT); - ActivationSystem asys = - (ActivationSystem) r.lookup(ACTIVATION_SYSTEM_NAME); - asys.shutdown(); - System.out.println("OK."); - } - catch (Exception ex) - { - System.out.println("The RMI daemon seems not running at " - + ACTIVATION_REGISTRY_PORT); - if (ActivationSystemTransient.debug) - ex.printStackTrace(); - } - } - } - catch (Exception e) - { - System.out.println("Failed to start the RMI daemon."); - if (ActivationSystemTransient.debug) - e.printStackTrace(); - } - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.txt b/libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.txt deleted file mode 100644 index a62613fd4a2..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/RMID.txt +++ /dev/null @@ -1,30 +0,0 @@ -The persistent RMI activation daemon, support RMI object activation -(package java.rmi.activation.*). - -Copyright 2006 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Please report bugs at http://www.gnu.org/software/classpath/bugs.html - -Usage: rmid - - where includes: - -port N Start the service on the given local port. If this key - is not specified, the service starts on the port 1098. - -verbose Log registration events to stdout. - -stop Stop the running activation service at the given port. - - -transient Start transient activation service that does not write any - data to the disk. Such service looses the stored activation - descriptors, if restarted. If this key is not specified, the - persistent naming service is started. - -restart "Cold start:, clear the activation descriptor database, if any. - -folder Folder Store the persistent descriptor file in the given folder. If this - key is not specified, the file with persistent activation - information is stored into the current folder. - -All activation groups are activated on the same virtual machine, where the -daemon is running. For security reasons, all the classes, required for -activation, must be available in the classpath of that machine. - \ No newline at end of file diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java deleted file mode 100644 index 90bd3a6bdac..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java +++ /dev/null @@ -1,139 +0,0 @@ -/* RegistryImpl.java -- the RMI registry implementation - Copyright (c) 1996, 1997, 1998, 1999, 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 gnu.classpath.tools.rmi.registry; - -import gnu.classpath.tools.rmi.Persistent; -import gnu.classpath.tools.rmi.REGISTRY; - -import java.rmi.AccessException; -import java.rmi.AlreadyBoundException; -import java.rmi.NotBoundException; -import java.rmi.Remote; -import java.rmi.RemoteException; -import java.rmi.registry.Registry; -import java.util.ArrayList; -import java.util.Map; - -/** - * The optionally persistent registry implementation. - * - * @author Audrius Meskauskas (audriusa@bioinformatics.org) - */ -public class RegistryImpl implements Registry -{ - /** - * The binding table. - */ - Map bindings; - - /** - * Create the registry implementation that uses the given bidirectinal - * table to keep the data. - */ - public RegistryImpl(Map aTable) - { - bindings = aTable; - } - - /** @inheritDoc */ - public Remote lookup(String name) throws RemoteException, NotBoundException, - AccessException - { - Object obj = bindings.get(name); - if (obj == null) - throw new NotBoundException(name); - return ((Remote) obj); - } - - /** @inheritDoc */ - public void bind(String name, Remote obj) throws RemoteException, - AlreadyBoundException, AccessException - { - if (REGISTRY.verbose) - System.out.println("Bind "+name); - if (bindings.containsKey(name)) - throw new AlreadyBoundException(name); - bindings.put(name, obj); - } - - /** @inheritDoc */ - public void unbind(String name) throws RemoteException, NotBoundException, - AccessException - { - if (name.equals(REGISTRY.STOP)) - { - if (bindings instanceof Persistent) - ((Persistent) bindings).writeContent(); - // Terminate in 10 seconds. - System.out.println("Shutdown command received. Will terminate in 10 s"); - Persistent.timer.schedule(new Persistent.ExitTask(), 10000); - } - else - { - if (REGISTRY.verbose) - System.out.println("Unbind "+name); - - if (!bindings.containsKey(name)) - throw new NotBoundException(name); - else - bindings.remove(name); - } - } - - /** @inheritDoc */ - public void rebind(String name, Remote obj) throws RemoteException, - AccessException - { - if (REGISTRY.verbose) - System.out.println("Rebind "+name); - bindings.put(name, obj); - } - - /** @inheritDoc */ - public String[] list() throws RemoteException, AccessException - { - // Create a separated array to prevent race conditions. - ArrayList keys = new ArrayList(bindings.keySet()); - int n = keys.size(); - String[] rt = new String[n]; - for (int i = 0; i < n; i++) - rt[i] = (String) keys.get(i); - return rt; - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java deleted file mode 100644 index 36b7d94a595..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java +++ /dev/null @@ -1,278 +0,0 @@ -/* RegistryImpl_Skel.java - Copyright (C) 2002, 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 gnu.classpath.tools.rmi.registry; - -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.rmi.MarshalException; -import java.rmi.Remote; -import java.rmi.UnmarshalException; -import java.rmi.server.Operation; -import java.rmi.server.RemoteCall; -import java.rmi.server.SkeletonMismatchException; - -/** - * This skeleton supports unlikely cases when the naming service is - * contacted from other interoperable java implementation that still uses - * the old style skeleton-dependent invocations. - */ -public final class RegistryImpl_Skel - implements java.rmi.server.Skeleton -{ - private static final long interfaceHash = 4905912898345647071L; - - /** - * Repeated multiple times. - */ - static final String EUM = "error unmarshalling arguments for Registry"; - - /** - * Repeated multiple times. - */ - static final String EMR = "error marshalling return from Registry"; - - private static final Operation[] operations = - { - new Operation("void bind(java.lang.String, Remote"), - new Operation("java.lang.String[] list("), - new Operation("Remote lookup(java.lang.String"), - new Operation("void rebind(java.lang.String, Remote"), - new Operation("void unbind(java.lang.String") - }; - - public Operation[] getOperations() - { - return ((Operation[]) operations.clone()); - } - - public void dispatch(Remote obj, RemoteCall call, - int opnum, long hash) throws java.lang.Exception - { - if (opnum < 0) - { - if (hash == 7583982177005850366L) - opnum = 0; - else if (hash == 2571371476350237748L) - opnum = 1; - else if (hash == -7538657168040752697L) - opnum = 2; - else if (hash == -8381844669958460146L) - opnum = 3; - else if (hash == 7305022919901907578L) - opnum = 4; - else - throw new SkeletonMismatchException("interface hash mismatch"); - } - else if (hash != interfaceHash) - throw new SkeletonMismatchException("interface hash mismatch"); - - RegistryImpl server = (RegistryImpl) obj; - switch (opnum) - { - case 0: - { - java.lang.String $param_0; - Remote $param_1; - try - { - ObjectInput in = call.getInputStream(); - $param_0 = (java.lang.String) in.readObject(); - $param_1 = (Remote) in.readObject(); - - } - catch (IOException e) - { - throw new UnmarshalException(EUM, e); - } - catch (java.lang.ClassCastException e) - { - throw new UnmarshalException(EUM, e); - } - finally - { - call.releaseInputStream(); - } - server.bind($param_0, $param_1); - try - { - ObjectOutput out = call.getResultStream(true); - } - catch (IOException e) - { - throw new MarshalException(EMR, e); - } - break; - } - - case 1: - { - try - { - ObjectInput in = call.getInputStream(); - - } - catch (IOException e) - { - throw new UnmarshalException(EUM, e); - } - finally - { - call.releaseInputStream(); - } - java.lang.String[] $result = server.list(); - try - { - ObjectOutput out = call.getResultStream(true); - out.writeObject($result); - } - catch (IOException e) - { - throw new MarshalException(EMR, e); - } - break; - } - - case 2: - { - java.lang.String $param_0; - try - { - ObjectInput in = call.getInputStream(); - $param_0 = (java.lang.String) in.readObject(); - - } - catch (IOException e) - { - throw new UnmarshalException(EUM, e); - } - catch (java.lang.ClassCastException e) - { - throw new UnmarshalException(EUM, e); - } - finally - { - call.releaseInputStream(); - } - Remote $result = server.lookup($param_0); - try - { - ObjectOutput out = call.getResultStream(true); - out.writeObject($result); - } - catch (IOException e) - { - throw new MarshalException(EMR, e); - } - break; - } - - case 3: - { - java.lang.String $param_0; - Remote $param_1; - try - { - ObjectInput in = call.getInputStream(); - $param_0 = (java.lang.String) in.readObject(); - $param_1 = (Remote) in.readObject(); - - } - catch (IOException e) - { - throw new UnmarshalException(EUM, e); - } - catch (java.lang.ClassCastException e) - { - throw new UnmarshalException(EUM, e); - } - finally - { - call.releaseInputStream(); - } - server.rebind($param_0, $param_1); - try - { - ObjectOutput out = call.getResultStream(true); - } - catch (IOException e) - { - throw new MarshalException(EMR, e); - } - break; - } - - case 4: - { - java.lang.String $param_0; - try - { - ObjectInput in = call.getInputStream(); - $param_0 = (java.lang.String) in.readObject(); - - } - catch (IOException e) - { - throw new UnmarshalException(EUM, e); - } - catch (java.lang.ClassCastException e) - { - throw new UnmarshalException(EUM, e); - } - finally - { - call.releaseInputStream(); - } - server.unbind($param_0); - try - { - ObjectOutput out = call.getResultStream(true); - } - catch (IOException e) - { - throw new MarshalException(EMR, e); - } - break; - } - - default: - throw new UnmarshalException("invalid method number"); - } - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java deleted file mode 100644 index d8cac5bfcb3..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java +++ /dev/null @@ -1,263 +0,0 @@ -/* RegistryImpl_Stub.java -- Registry stub. - 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 gnu.classpath.tools.rmi.registry; - -import java.rmi.AccessException; -import java.rmi.AlreadyBoundException; -import java.rmi.NotBoundException; -import java.rmi.Remote; -import java.rmi.RemoteException; -import java.rmi.registry.Registry; - -import java.lang.reflect.Method; -import java.rmi.server.RemoteRef; -import java.rmi.server.RemoteStub; -import java.rmi.UnexpectedException; - -/** - * This class delegates its method calls to the remote RMI object, referenced - * by {@link RemoteRef}. - * - * It is normally generated with rmic. - */ -public final class RegistryImpl_Stub - extends RemoteStub - implements Registry -{ - /** - * Use serialVersionUID for interoperability - */ - private static final long serialVersionUID = 3; - - /** - * The explaining message for {@ling UnexpectedException}. - */ - private static final String exception_message = - "undeclared checked exception"; - - /* All remote methods, invoked by this stub: */ - private static final Method met_list; - private static final Method met_rebind; - private static final Method met_unbind; - private static final Method met_lookup; - private static final Method met_bind; - private static final Object[] NO_ARGS = new Object[0]; - static - { - final Class[] NO_ARGSc = new Class[0]; - try - { - met_list = - Registry.class.getMethod("list", NO_ARGSc); - met_rebind = - Registry.class.getMethod("rebind", new Class[] - { - String.class, Remote.class - }); - met_unbind = - Registry.class.getMethod("unbind", new Class[] - { - String.class - }); - met_lookup = - Registry.class.getMethod("lookup", new Class[] - { - String.class - }); - met_bind = - Registry.class.getMethod("bind", new Class[] - { - String.class, Remote.class - }); - - } - catch (NoSuchMethodException nex) - { - NoSuchMethodError err = new NoSuchMethodError( - "RegistryImpl_Stub class initialization failed"); - err.initCause(nex); - throw err; - } - } - - /** - * Create the instance for _RegistryImpl_Stub that forwards method calls to the - * remote object. - * - * @para the reference to the remote object. - */ - public RegistryImpl_Stub(RemoteRef reference) - { - super(reference); - } - - /* Methods */ - /** @inheritDoc */ - public String [] list() - throws RemoteException, AccessException - { - try - { - Object result = ref.invoke(this, met_list, - NO_ARGS, - 2571371476350237748L); - return (String []) result; - } - catch (RuntimeException e) - { - throw e; - } - catch (RemoteException e) - { - throw e; - } - catch (Exception e) - { - UnexpectedException uex = new UnexpectedException(exception_message); - uex.detail = e; - throw uex; - } - } - - /** @inheritDoc */ - public void rebind(String p0, Remote p1) - throws RemoteException, AccessException - { - try - { - ref.invoke(this, met_rebind, - new Object[] {p0, p1}, - -8381844669958460146L); - } - catch (RuntimeException e) - { - throw e; - } - catch (RemoteException e) - { - throw e; - } - catch (Exception e) - { - UnexpectedException uex = new UnexpectedException(exception_message); - uex.detail = e; - throw uex; - } - } - - /** @inheritDoc */ - public void unbind(String p0) - throws RemoteException, NotBoundException, AccessException - { - try - { - ref.invoke(this, met_unbind, - new Object[] {p0}, - 7305022919901907578L); - } - catch (RuntimeException e) - { - throw e; - } - catch (RemoteException e) - { - throw e; - } - catch (Exception e) - { - UnexpectedException uex = new UnexpectedException(exception_message); - uex.detail = e; - throw uex; - } - } - - /** @inheritDoc */ - public Remote lookup(String p0) - throws RemoteException, NotBoundException, AccessException - { - try - { - Object result = ref.invoke(this, met_lookup, - new Object[] {p0}, - -7538657168040752697L); - return (Remote) result; - } - catch (RuntimeException e) - { - throw e; - } - catch (RemoteException e) - { - throw e; - } - catch (Exception e) - { - UnexpectedException uex = new UnexpectedException(exception_message); - uex.detail = e; - throw uex; - } - } - - /** @inheritDoc */ - public void bind(String p0, Remote p1) - throws RemoteException, AlreadyBoundException, AccessException - { - try - { - ref.invoke(this, met_bind, - new Object[] {p0, p1}, - 7583982177005850366L); - } - catch (RuntimeException e) - { - throw e; - } - catch (RemoteException e) - { - throw e; - } - catch (Exception e) - { - UnexpectedException uex = new UnexpectedException(exception_message); - uex.detail = e; - throw uex; - } - } - - -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java deleted file mode 100644 index 8da486571ce..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java +++ /dev/null @@ -1,287 +0,0 @@ -/* MethodGenerator.java -- Generates methods for rmi compiler. - Copyright (C) 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. -*/ - - -package gnu.classpath.tools.rmi.rmic; - -import gnu.classpath.tools.AbstractMethodGenerator; -import gnu.java.rmi.server.RMIHashes; - -import java.lang.reflect.Method; -import java.util.Properties; - -/** - * Keeps information about the single method and generates the code fragments, - * related to that method. - * - * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) - */ -public class RmiMethodGenerator - implements AbstractMethodGenerator -{ - /** - * The method being defined. - */ - Method method; - - /** - * The parent code generator. - */ - RmicCompiler rmic; - - /** - * Create the new method generator for the given method. - * - * @param aMethod the related method. - * @param aRmic the Rmic generator instance, where more class - related - * information is defined. - */ - public RmiMethodGenerator(Method aMethod, RmicCompiler aRmic) - { - method = aMethod; - rmic = aRmic; - if (method.getParameterTypes().length == 0) - rmic.addZeroSizeObjecArray = true; - } - - /** - * Get the method parameter declaration. - * - * @return the string - method parameter declaration. - */ - public String getArgumentList() - { - StringBuffer b = new StringBuffer(); - - Class[] args = method.getParameterTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(rmic.name(args[i])); - b.append(" p" + i); - if (i < args.length - 1) - b.append(", "); - } - return b.toString(); - } - - /** - * Get the method parameter list only (no type declarations). This is used to - * generate the method invocations statement. - * - * @return the string - method parameter list. - */ - public String getArgumentNames() - { - StringBuffer b = new StringBuffer(); - - Class[] args = method.getParameterTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(" p" + i); - if (i < args.length - 1) - b.append(", "); - } - return b.toString(); - } - - /** - * Get the list of exceptions, thrown by this method. - * - * @return the list of exceptions. - */ - public String getThrows() - { - StringBuffer b = new StringBuffer(); - - Class[] args = method.getExceptionTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(rmic.name(args[i])); - if (i < args.length - 1) - b.append(", "); - } - return b.toString(); - } - - /** - * Generate this method for the Stub class. - * - * @return the method body for the stub class. - */ - public String generateStubMethod() - { - String templateName; - - Properties vars = new Properties(rmic.vars); - vars.put("#return_type", rmic.name(method.getReturnType())); - vars.put("#method_name", method.getName()); - vars.put("#method_hash", getMethodHashCode()); - vars.put("#argument_list", getArgumentList()); - vars.put("#object_arg_list", getArgListAsObjectArray()); - vars.put("#declaring_class", rmic.name(method.getDeclaringClass())); - vars.put("#class_arg_list", getArgListAsClassArray()); - - String thr = getThrows(); - if (thr.length() > 0) - vars.put("#throws", "\n throws " + thr); - else - vars.put("#throws", ""); - - if (method.getReturnType().equals(void.class)) - templateName = "Stub_12MethodVoid.jav"; - else - { - templateName = "Stub_12Method.jav"; - vars.put("#return_statement", getReturnStatement()); - } - - String template = rmic.getResource(templateName); - String generated = rmic.replaceAll(template, vars); - return generated; - } - - /** - * Generate sentences for Reading and Defining Arguments. - * - * @return the sequence of sentences for reading and defining arguments. - */ - public String getStaticMethodDeclarations() - { - StringBuffer b = new StringBuffer(); - Class[] args = method.getParameterTypes(); - - for (int i = 0; i < args.length; i++) - { - b.append(" "); - b.append(rmic.name(args[i])); - b.append(" "); - b.append("p" + i); - b.append(" = "); - if (i < args.length - 1) - b.append("\n"); - } - return b.toString(); - } - - /** - * Get the write statement for writing parameters inside the stub. - * - * @return the write statement. - */ - public String getArgListAsObjectArray() - { - Class[] args = method.getParameterTypes(); - - if (args.length==0) - return "NO_ARGS"; - - StringBuffer b = new StringBuffer("new Object[] {"); - - for (int i = 0; i < args.length; i++) - { - if (!args[i].isPrimitive()) - b.append("p"+i); - else - { - b.append("new "+rmic.name(WrapUnWrapper.getWrappingClass(args[i]))); - b.append("(p"+i+")"); - } - if (i= args.length) + return false; + + for (int i = next; i < args.length; i++) + { + try + { + if (verbose) + System.out.println("[Processing class " + args[i] + ".class]"); + processClass(args[i].replace(File.separatorChar, '.')); + } + catch (IOException e) + { + errors.add(e); + } + catch (RMICException e) + { + errors.add(e); + } + } + if (errors.size() > 0) + { + for (Iterator it = errors.iterator(); it.hasNext(); ) + { + Exception ex = (Exception) it.next(); + logError(ex); + } + } + + return errorCount == 0; + } + + private void processClass(String cls) throws IOException, RMICException + { + // reset class specific vars + clazz = null; + classname = null; + classInternalName = null; + fullclassname = null; + remotemethods = null; + stubname = null; + skelname = null; + mRemoteInterfaces = new ArrayList(); + + analyzeClass(cls); + generateStub(); + if (need11Stubs) + generateSkel(); + } + + private void analyzeClass(String cname) + throws RMICException + { + if (verbose) + System.out.println("[analyze class " + cname + "]"); + int p = cname.lastIndexOf('.'); + if (p != -1) + classname = cname.substring(p + 1); + else + classname = cname; + fullclassname = cname; + + findClass(); + findRemoteMethods(); + } + + /** + * @deprecated + */ + public Exception getException() + { + return errors.size() == 0 ? null : (Exception) errors.get(0); + } + + private void findClass() + throws RMICException + { + ClassLoader cl = (loader == null + ? ClassLoader.getSystemClassLoader() + : loader); + try + { + clazz = Class.forName(fullclassname, false, cl); + } + catch (ClassNotFoundException cnfe) + { + throw new RMICException + ("Class " + fullclassname + " not found in classpath", cnfe); + } + + if (! Remote.class.isAssignableFrom(clazz)) + { + throw new RMICException + ("Class " + clazz.getName() + + " does not implement a remote interface."); + } + } + + private static Type[] typeArray(Class[] cls) + { + Type[] t = new Type[cls.length]; + for (int i = 0; i < cls.length; i++) + { + t[i] = Type.getType(cls[i]); + } + + return t; + } + + private static String[] internalNameArray(Type[] t) + { + String[] s = new String[t.length]; + for (int i = 0; i < t.length; i++) + { + s[i] = t[i].getInternalName(); + } + + return s; + } + + private static String[] internalNameArray(Class[] c) + { + return internalNameArray(typeArray(c)); + } + + private static final String forName = "class$"; + + private static Object param(Method m, int argIndex) + { + List l = new ArrayList(); + l.add(m); + l.add(new Integer(argIndex)); + return l; + } + + private static void generateClassForNamer(ClassVisitor cls) + { + MethodVisitor cv = + cls.visitMethod + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC + Opcodes.ACC_SYNTHETIC, forName, + Type.getMethodDescriptor + (Type.getType(Class.class), new Type[] { Type.getType(String.class) }), + null, null); + + Label start = new Label(); + cv.visitLabel(start); + cv.visitVarInsn(Opcodes.ALOAD, 0); + cv.visitMethodInsn + (Opcodes.INVOKESTATIC, + Type.getInternalName(Class.class), + "forName", + Type.getMethodDescriptor + (Type.getType(Class.class), new Type[] { Type.getType(String.class) })); + cv.visitInsn(Opcodes.ARETURN); + + Label handler = new Label(); + cv.visitLabel(handler); + cv.visitVarInsn(Opcodes.ASTORE, 1); + cv.visitTypeInsn(Opcodes.NEW, typeArg(NoClassDefFoundError.class)); + cv.visitInsn(Opcodes.DUP); + cv.visitVarInsn(Opcodes.ALOAD, 1); + cv.visitMethodInsn + (Opcodes.INVOKEVIRTUAL, + Type.getInternalName(ClassNotFoundException.class), + "getMessage", + Type.getMethodDescriptor(Type.getType(String.class), new Type[] {})); + cv.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(NoClassDefFoundError.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] { Type.getType(String.class) })); + cv.visitInsn(Opcodes.ATHROW); + cv.visitTryCatchBlock + (start, handler, handler, + Type.getInternalName(ClassNotFoundException.class)); + cv.visitMaxs(-1, -1); + } + + private void generateClassConstant(MethodVisitor cv, Class cls) { + if (cls.isPrimitive()) + { + Class boxCls; + if (cls.equals(Boolean.TYPE)) + boxCls = Boolean.class; + else if (cls.equals(Character.TYPE)) + boxCls = Character.class; + else if (cls.equals(Byte.TYPE)) + boxCls = Byte.class; + else if (cls.equals(Short.TYPE)) + boxCls = Short.class; + else if (cls.equals(Integer.TYPE)) + boxCls = Integer.class; + else if (cls.equals(Long.TYPE)) + boxCls = Long.class; + else if (cls.equals(Float.TYPE)) + boxCls = Float.class; + else if (cls.equals(Double.TYPE)) + boxCls = Double.class; + else if (cls.equals(Void.TYPE)) + boxCls = Void.class; + else + throw new IllegalArgumentException("unknown primitive type " + cls); + + cv.visitFieldInsn + (Opcodes.GETSTATIC, Type.getInternalName(boxCls), "TYPE", + Type.getDescriptor(Class.class)); + return; + } + cv.visitLdcInsn(cls.getName()); + cv.visitMethodInsn + (Opcodes.INVOKESTATIC, classInternalName, forName, + Type.getMethodDescriptor + (Type.getType(Class.class), + new Type[] { Type.getType(String.class) })); + } + + private void generateClassArray(MethodVisitor code, Class[] classes) + { + code.visitLdcInsn(new Integer(classes.length)); + code.visitTypeInsn(Opcodes.ANEWARRAY, typeArg(Class.class)); + for (int i = 0; i < classes.length; i++) + { + code.visitInsn(Opcodes.DUP); + code.visitLdcInsn(new Integer(i)); + generateClassConstant(code, classes[i]); + code.visitInsn(Opcodes.AASTORE); + } + } + + private void fillOperationArray(MethodVisitor clinit) + { + // Operations array + clinit.visitLdcInsn(new Integer(remotemethods.length)); + clinit.visitTypeInsn(Opcodes.ANEWARRAY, typeArg(Operation.class)); + clinit.visitFieldInsn + (Opcodes.PUTSTATIC, classInternalName, "operations", + Type.getDescriptor(Operation[].class)); + + for (int i = 0; i < remotemethods.length; i++) + { + Method m = remotemethods[i].meth; + + StringBuffer desc = new StringBuffer(); + desc.append(getPrettyName(m.getReturnType()) + " "); + desc.append(m.getName() + "("); + + // signature + Class[] sig = m.getParameterTypes(); + for (int j = 0; j < sig.length; j++) + { + desc.append(getPrettyName(sig[j])); + if (j + 1 < sig.length) + desc.append(", "); + } + + // push operations array + clinit.visitFieldInsn + (Opcodes.GETSTATIC, classInternalName, "operations", + Type.getDescriptor(Operation[].class)); + + // push array index + clinit.visitLdcInsn(new Integer(i)); + + // instantiate operation and leave a copy on the stack + clinit.visitTypeInsn(Opcodes.NEW, typeArg(Operation.class)); + clinit.visitInsn(Opcodes.DUP); + clinit.visitLdcInsn(desc.toString()); + clinit.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(Operation.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] { Type.getType(String.class) })); + + // store in operations array + clinit.visitInsn(Opcodes.AASTORE); + } + } + + private void generateStaticMethodObjs(MethodVisitor clinit) + { + for (int i = 0; i < remotemethods.length; i++) + { + Method m = remotemethods[i].meth; + + /* + * $method_m.getName()_i = + * m.getDeclaringClass().class.getMethod + * (m.getName(), m.getParameterType()) + */ + String methodVar = "$method_" + m.getName() + "_" + i; + generateClassConstant(clinit, m.getDeclaringClass()); + clinit.visitLdcInsn(m.getName()); + generateClassArray(clinit, m.getParameterTypes()); + clinit.visitMethodInsn + (Opcodes.INVOKEVIRTUAL, + Type.getInternalName(Class.class), + "getMethod", + Type.getMethodDescriptor + (Type.getType(Method.class), + new Type[] { Type.getType(String.class), + Type.getType(Class[].class) })); + + clinit.visitFieldInsn + (Opcodes.PUTSTATIC, classInternalName, methodVar, + Type.getDescriptor(Method.class)); + } + } + + private void generateStub() + throws IOException + { + stubname = fullclassname + "_Stub"; + String stubclassname = classname + "_Stub"; + File file = new File((destination == null ? "." : destination) + + File.separator + + stubname.replace('.', File.separatorChar) + + ".class"); + + if (verbose) + System.out.println("[Generating class " + stubname + "]"); + + final ClassWriter stub = new ClassWriter(true); + classInternalName = stubname.replace('.', '/'); + final String superInternalName = + Type.getType(RemoteStub.class).getInternalName(); + + String[] remoteInternalNames = + internalNameArray((Class[]) mRemoteInterfaces.toArray(new Class[] {})); + stub.visit + (Opcodes.V1_2, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL, classInternalName, + null, superInternalName, remoteInternalNames); + + if (need12Stubs) + { + stub.visitField + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL, "serialVersionUID", + Type.LONG_TYPE.getDescriptor(), null, new Long(2L)); + } + + if (need11Stubs) + { + stub.visitField + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL, + "interfaceHash", Type.LONG_TYPE.getDescriptor(), null, + new Long(RMIHashes.getInterfaceHash(clazz))); + + if (need12Stubs) + { + stub.visitField + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC, "useNewInvoke", + Type.BOOLEAN_TYPE.getDescriptor(), null, null); + } + + stub.visitField + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL, + "operations", Type.getDescriptor(Operation[].class), null, null); + } + + // Set of method references. + if (need12Stubs) + { + for (int i = 0; i < remotemethods.length; i++) + { + Method m = remotemethods[i].meth; + String slotName = "$method_" + m.getName() + "_" + i; + stub.visitField + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC, slotName, + Type.getDescriptor(Method.class), null, null); + } + } + + MethodVisitor clinit = stub.visitMethod + (Opcodes.ACC_STATIC, "", + Type.getMethodDescriptor(Type.VOID_TYPE, new Type[] {}), null, null); + + if (need11Stubs) + { + fillOperationArray(clinit); + if (! need12Stubs) + clinit.visitInsn(Opcodes.RETURN); + } + + if (need12Stubs) + { + // begin of try + Label begin = new Label(); + + // beginning of catch + Label handler = new Label(); + clinit.visitLabel(begin); + + // Initialize the methods references. + if (need11Stubs) + { + /* + * RemoteRef.class.getMethod("invoke", new Class[] { + * Remote.class, Method.class, Object[].class, long.class }) + */ + generateClassConstant(clinit, RemoteRef.class); + clinit.visitLdcInsn("invoke"); + generateClassArray + (clinit, new Class[] { Remote.class, Method.class, + Object[].class, long.class }); + clinit.visitMethodInsn + (Opcodes.INVOKEVIRTUAL, + Type.getInternalName(Class.class), + "getMethod", + Type.getMethodDescriptor + (Type.getType(Method.class), + new Type[] { Type.getType(String.class), + Type.getType(Class[].class) })); + + // useNewInvoke = true + clinit.visitInsn(Opcodes.ICONST_1); + clinit.visitFieldInsn + (Opcodes.PUTSTATIC, classInternalName, "useNewInvoke", + Type.BOOLEAN_TYPE.getDescriptor()); + } + + generateStaticMethodObjs(clinit); + + // jump past handler + clinit.visitInsn(Opcodes.RETURN); + clinit.visitLabel(handler); + if (need11Stubs) + { + // useNewInvoke = false + clinit.visitInsn(Opcodes.ICONST_0); + clinit.visitFieldInsn + (Opcodes.PUTSTATIC, classInternalName, "useNewInvoke", + Type.BOOLEAN_TYPE.getDescriptor()); + clinit.visitInsn(Opcodes.RETURN); + } + else + { + // throw NoSuchMethodError + clinit.visitTypeInsn(Opcodes.NEW, typeArg(NoSuchMethodError.class)); + clinit.visitInsn(Opcodes.DUP); + clinit.visitLdcInsn("stub class initialization failed"); + clinit.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(NoSuchMethodError.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(String.class) })); + clinit.visitInsn(Opcodes.ATHROW); + } + + clinit.visitTryCatchBlock + (begin, handler, handler, + Type.getInternalName(NoSuchMethodException.class)); + + } + + clinit.visitMaxs(-1, -1); + + generateClassForNamer(stub); + + // Constructors + if (need11Stubs) + { + // no arg public constructor + MethodVisitor code = stub.visitMethod + (Opcodes.ACC_PUBLIC, "", + Type.getMethodDescriptor(Type.VOID_TYPE, new Type[] {}), + null, null); + code.visitVarInsn(Opcodes.ALOAD, 0); + code.visitMethodInsn + (Opcodes.INVOKESPECIAL, superInternalName, "", + Type.getMethodDescriptor(Type.VOID_TYPE, new Type[] {})); + code.visitInsn(Opcodes.RETURN); + + code.visitMaxs(-1, -1); + } + + // public RemoteRef constructor + MethodVisitor constructor = stub.visitMethod + (Opcodes.ACC_PUBLIC, "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] {Type.getType(RemoteRef.class)}), + null, null); + constructor.visitVarInsn(Opcodes.ALOAD, 0); + constructor.visitVarInsn(Opcodes.ALOAD, 1); + constructor.visitMethodInsn + (Opcodes.INVOKESPECIAL, superInternalName, "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] {Type.getType(RemoteRef.class)})); + constructor.visitInsn(Opcodes.RETURN); + constructor.visitMaxs(-1, -1); + + // Method implementations + for (int i = 0; i < remotemethods.length; i++) + { + Method m = remotemethods[i].meth; + Class[] sig = m.getParameterTypes(); + Class returntype = m.getReturnType(); + Class[] except = sortExceptions + ((Class[]) remotemethods[i].exceptions.toArray(new Class[0])); + + MethodVisitor code = stub.visitMethod + (Opcodes.ACC_PUBLIC, + m.getName(), + Type.getMethodDescriptor(Type.getType(returntype), typeArray(sig)), + null, + internalNameArray(typeArray(except))); + + final Variables var = new Variables(); + + // this and parameters are the declared vars + var.declare("this"); + for (int j = 0; j < sig.length; j++) + var.declare(param(m, j), size(sig[j])); + + Label methodTryBegin = new Label(); + code.visitLabel(methodTryBegin); + + if (need12Stubs) + { + Label oldInvoke = new Label(); + if (need11Stubs) + { + // if not useNewInvoke jump to old invoke + code.visitFieldInsn + (Opcodes.GETSTATIC, classInternalName, "useNewInvoke", + Type.getDescriptor(boolean.class)); + code.visitJumpInsn(Opcodes.IFEQ, oldInvoke); + } + + // this.ref + code.visitVarInsn(Opcodes.ALOAD, var.get("this")); + code.visitFieldInsn + (Opcodes.GETFIELD, Type.getInternalName(RemoteObject.class), + "ref", Type.getDescriptor(RemoteRef.class)); + + // "this" is first arg to invoke + code.visitVarInsn(Opcodes.ALOAD, var.get("this")); + + // method object is second arg to invoke + String methName = "$method_" + m.getName() + "_" + i; + code.visitFieldInsn + (Opcodes.GETSTATIC, classInternalName, methName, + Type.getDescriptor(Method.class)); + + // args to remote method are third arg to invoke + if (sig.length == 0) + code.visitInsn(Opcodes.ACONST_NULL); + else + { + // create arg Object[] (with boxed primitives) and push it + code.visitLdcInsn(new Integer(sig.length)); + code.visitTypeInsn(Opcodes.ANEWARRAY, typeArg(Object.class)); + + var.allocate("argArray"); + code.visitVarInsn(Opcodes.ASTORE, var.get("argArray")); + + for (int j = 0; j < sig.length; j++) + { + int size = size(sig[j]); + int insn = loadOpcode(sig[j]); + Class box = sig[j].isPrimitive() ? box(sig[j]) : null; + + code.visitVarInsn(Opcodes.ALOAD, var.get("argArray")); + code.visitLdcInsn(new Integer(j)); + + // put argument on stack + if (box != null) + { + code.visitTypeInsn(Opcodes.NEW, typeArg(box)); + code.visitInsn(Opcodes.DUP); + code.visitVarInsn(insn, var.get(param(m, j))); + code.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(box), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(sig[j]) })); + } + else + code.visitVarInsn(insn, var.get(param(m, j))); + + code.visitInsn(Opcodes.AASTORE); + } + + code.visitVarInsn(Opcodes.ALOAD, var.deallocate("argArray")); + } + + // push remote operation opcode + code.visitLdcInsn(new Long(remotemethods[i].hash)); + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteRef.class), + "invoke", + Type.getMethodDescriptor + (Type.getType(Object.class), + new Type[] { Type.getType(Remote.class), + Type.getType(Method.class), + Type.getType(Object[].class), + Type.LONG_TYPE })); + + if (! returntype.equals(Void.TYPE)) + { + int retcode = returnOpcode(returntype); + Class boxCls = + returntype.isPrimitive() ? box(returntype) : null; + code.visitTypeInsn + (Opcodes.CHECKCAST, typeArg(boxCls == null ? returntype : boxCls)); + if (returntype.isPrimitive()) + { + // unbox + code.visitMethodInsn + (Opcodes.INVOKEVIRTUAL, + Type.getType(boxCls).getInternalName(), + unboxMethod(returntype), + Type.getMethodDescriptor + (Type.getType(returntype), new Type[] {})); + } + + code.visitInsn(retcode); + } + else + code.visitInsn(Opcodes.RETURN); + + + if (need11Stubs) + code.visitLabel(oldInvoke); + } + + if (need11Stubs) + { + + // this.ref.newCall(this, operations, index, interfaceHash) + code.visitVarInsn(Opcodes.ALOAD, var.get("this")); + code.visitFieldInsn + (Opcodes.GETFIELD, + Type.getInternalName(RemoteObject.class), + "ref", + Type.getDescriptor(RemoteRef.class)); + + // "this" is first arg to newCall + code.visitVarInsn(Opcodes.ALOAD, var.get("this")); + + // operations is second arg to newCall + code.visitFieldInsn + (Opcodes.GETSTATIC, classInternalName, "operations", + Type.getDescriptor(Operation[].class)); + + // method index is third arg + code.visitLdcInsn(new Integer(i)); + + // interface hash is fourth arg + code.visitFieldInsn + (Opcodes.GETSTATIC, classInternalName, "interfaceHash", + Type.LONG_TYPE.getDescriptor()); + + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteRef.class), + "newCall", + Type.getMethodDescriptor + (Type.getType(RemoteCall.class), + new Type[] { Type.getType(RemoteObject.class), + Type.getType(Operation[].class), + Type.INT_TYPE, + Type.LONG_TYPE })); + + // store call object on stack and leave copy on stack + var.allocate("call"); + code.visitInsn(Opcodes.DUP); + code.visitVarInsn(Opcodes.ASTORE, var.get("call")); + + Label beginArgumentTryBlock = new Label(); + code.visitLabel(beginArgumentTryBlock); + + // ObjectOutput out = call.getOutputStream(); + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteCall.class), + "getOutputStream", + Type.getMethodDescriptor + (Type.getType(ObjectOutput.class), new Type[] {})); + + for (int j = 0; j < sig.length; j++) + { + // dup the ObjectOutput + code.visitInsn(Opcodes.DUP); + + // get j'th arg to remote method + code.visitVarInsn(loadOpcode(sig[j]), var.get(param(m, j))); + + Class argCls = + sig[j].isPrimitive() ? sig[j] : Object.class; + + // out.writeFoo + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(ObjectOutput.class), + writeMethod(sig[j]), + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(argCls) })); + } + + // pop ObjectOutput + code.visitInsn(Opcodes.POP); + + Label iohandler = new Label(); + Label endArgumentTryBlock = new Label(); + code.visitJumpInsn(Opcodes.GOTO, endArgumentTryBlock); + code.visitLabel(iohandler); + + // throw new MarshalException(msg, ioexception); + code.visitVarInsn(Opcodes.ASTORE, var.allocate("exception")); + code.visitTypeInsn(Opcodes.NEW, typeArg(MarshalException.class)); + code.visitInsn(Opcodes.DUP); + code.visitLdcInsn("error marshalling arguments"); + code.visitVarInsn(Opcodes.ALOAD, var.deallocate("exception")); + code.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(MarshalException.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(String.class), + Type.getType(Exception.class) })); + code.visitInsn(Opcodes.ATHROW); + + code.visitLabel(endArgumentTryBlock); + code.visitTryCatchBlock + (beginArgumentTryBlock, iohandler, iohandler, + Type.getInternalName(IOException.class)); + + // this.ref.invoke(call) + code.visitVarInsn(Opcodes.ALOAD, var.get("this")); + code.visitFieldInsn + (Opcodes.GETFIELD, Type.getInternalName(RemoteObject.class), + "ref", Type.getDescriptor(RemoteRef.class)); + code.visitVarInsn(Opcodes.ALOAD, var.get("call")); + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteRef.class), + "invoke", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(RemoteCall.class) })); + + // handle return value + boolean needcastcheck = false; + + Label beginReturnTryCatch = new Label(); + code.visitLabel(beginReturnTryCatch); + + int returncode = returnOpcode(returntype); + + if (! returntype.equals(Void.TYPE)) + { + // call.getInputStream() + code.visitVarInsn(Opcodes.ALOAD, var.get("call")); + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteCall.class), + "getInputStream", + Type.getMethodDescriptor + (Type.getType(ObjectInput.class), new Type[] {})); + + Class readCls = + returntype.isPrimitive() ? returntype : Object.class; + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(ObjectInput.class), + readMethod(returntype), + Type.getMethodDescriptor + (Type.getType(readCls), new Type[] {})); + + boolean castresult = false; + + if (! returntype.isPrimitive()) + { + if (! returntype.equals(Object.class)) + castresult = true; + else + needcastcheck = true; + } + + if (castresult) + code.visitTypeInsn(Opcodes.CHECKCAST, typeArg(returntype)); + + // leave result on stack for return + } + + // this.ref.done(call) + code.visitVarInsn(Opcodes.ALOAD, var.get("this")); + code.visitFieldInsn + (Opcodes.GETFIELD, + Type.getInternalName(RemoteObject.class), + "ref", + Type.getDescriptor(RemoteRef.class)); + code.visitVarInsn(Opcodes.ALOAD, var.deallocate("call")); + code.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteRef.class), + "done", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(RemoteCall.class) })); + + // return; or return result; + code.visitInsn(returncode); + + // exception handler + Label handler = new Label(); + code.visitLabel(handler); + code.visitVarInsn(Opcodes.ASTORE, var.allocate("exception")); + + // throw new UnmarshalException(msg, e) + code.visitTypeInsn(Opcodes.NEW, typeArg(UnmarshalException.class)); + code.visitInsn(Opcodes.DUP); + code.visitLdcInsn("error unmarshalling return"); + code.visitVarInsn(Opcodes.ALOAD, var.deallocate("exception")); + code.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(UnmarshalException.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(String.class), + Type.getType(Exception.class) })); + code.visitInsn(Opcodes.ATHROW); + + Label endReturnTryCatch = new Label(); + + // catch IOException + code.visitTryCatchBlock + (beginReturnTryCatch, handler, handler, + Type.getInternalName(IOException.class)); + + if (needcastcheck) + { + // catch ClassNotFoundException + code.visitTryCatchBlock + (beginReturnTryCatch, handler, handler, + Type.getInternalName(ClassNotFoundException.class)); + } + } + + Label rethrowHandler = new Label(); + code.visitLabel(rethrowHandler); + // rethrow declared exceptions + code.visitInsn(Opcodes.ATHROW); + + boolean needgeneral = true; + for (int j = 0; j < except.length; j++) + { + if (except[j] == Exception.class) + needgeneral = false; + } + + for (int j = 0; j < except.length; j++) + { + code.visitTryCatchBlock + (methodTryBegin, rethrowHandler, rethrowHandler, + Type.getInternalName(except[j])); + } + + if (needgeneral) + { + // rethrow unchecked exceptions + code.visitTryCatchBlock + (methodTryBegin, rethrowHandler, rethrowHandler, + Type.getInternalName(RuntimeException.class)); + + Label generalHandler = new Label(); + code.visitLabel(generalHandler); + String msg = "undeclared checked exception"; + + // throw new java.rmi.UnexpectedException(msg, e) + code.visitVarInsn(Opcodes.ASTORE, var.allocate("exception")); + code.visitTypeInsn(Opcodes.NEW, typeArg(UnexpectedException.class)); + code.visitInsn(Opcodes.DUP); + code.visitLdcInsn(msg); + code.visitVarInsn(Opcodes.ALOAD, var.deallocate("exception")); + code.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(UnexpectedException.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type [] { Type.getType(String.class), + Type.getType(Exception.class) })); + code.visitInsn(Opcodes.ATHROW); + + code.visitTryCatchBlock + (methodTryBegin, rethrowHandler, generalHandler, + Type.getInternalName(Exception.class)); + } + + code.visitMaxs(-1, -1); + } + + stub.visitEnd(); + byte[] classData = stub.toByteArray(); + if (!noWrite) + { + if (file.exists()) + file.delete(); + if (file.getParentFile() != null) + file.getParentFile().mkdirs(); + FileOutputStream fos = new FileOutputStream(file); + fos.write(classData); + fos.flush(); + fos.close(); + } + } + + private void generateSkel() throws IOException + { + skelname = fullclassname + "_Skel"; + String skelclassname = classname + "_Skel"; + File file = new File(destination == null ? "" : destination + + File.separator + + skelname.replace('.', File.separatorChar) + + ".class"); + if (verbose) + System.out.println("[Generating class " + skelname + "]"); + + final ClassWriter skel = new ClassWriter(true); + classInternalName = skelname.replace('.', '/'); + skel.visit + (Opcodes.V1_1, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL, + classInternalName, Type.getInternalName(Object.class), null, + new String[] { Type.getType(Skeleton.class).getInternalName() }); + + skel.visitField + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL, "interfaceHash", + Type.LONG_TYPE.getDescriptor(), null, + new Long(RMIHashes.getInterfaceHash(clazz))); + + skel.visitField + (Opcodes.ACC_PRIVATE + Opcodes.ACC_STATIC + Opcodes.ACC_FINAL, "operations", + Type.getDescriptor(Operation[].class), null, null); + + MethodVisitor clinit = skel.visitMethod + (Opcodes.ACC_STATIC, "", + Type.getMethodDescriptor(Type.VOID_TYPE, new Type[] {}), null, null); + + fillOperationArray(clinit); + clinit.visitInsn(Opcodes.RETURN); + + clinit.visitMaxs(-1, -1); + + // no arg public constructor + MethodVisitor init = skel.visitMethod + (Opcodes.ACC_PUBLIC, "", + Type.getMethodDescriptor(Type.VOID_TYPE, new Type[] {}), null, null); + init.visitVarInsn(Opcodes.ALOAD, 0); + init.visitMethodInsn + (Opcodes.INVOKESPECIAL, Type.getInternalName(Object.class), "", + Type.getMethodDescriptor(Type.VOID_TYPE, new Type[] {})); + init.visitInsn(Opcodes.RETURN); + init.visitMaxs(-1, -1); + + /* + * public Operation[] getOperations() + * returns a clone of the operations array + */ + MethodVisitor getOp = skel.visitMethod + (Opcodes.ACC_PUBLIC, "getOperations", + Type.getMethodDescriptor + (Type.getType(Operation[].class), new Type[] {}), + null, null); + getOp.visitFieldInsn + (Opcodes.GETSTATIC, classInternalName, "operations", + Type.getDescriptor(Operation[].class)); + getOp.visitMethodInsn + (Opcodes.INVOKEVIRTUAL, Type.getInternalName(Object.class), + "clone", Type.getMethodDescriptor(Type.getType(Object.class), + new Type[] {})); + getOp.visitTypeInsn(Opcodes.CHECKCAST, typeArg(Operation[].class)); + getOp.visitInsn(Opcodes.ARETURN); + getOp.visitMaxs(-1, -1); + + // public void dispatch(Remote, RemoteCall, int opnum, long hash) + MethodVisitor dispatch = skel.visitMethod + (Opcodes.ACC_PUBLIC, + "dispatch", + Type.getMethodDescriptor + (Type.VOID_TYPE, + new Type[] { Type.getType(Remote.class), + Type.getType(RemoteCall.class), + Type.INT_TYPE, Type.LONG_TYPE }), null, + new String[] { Type.getInternalName(Exception.class) }); + + Variables var = new Variables(); + var.declare("this"); + var.declare("remoteobj"); + var.declare("remotecall"); + var.declare("opnum"); + var.declareWide("hash"); + + /* + * if opnum >= 0 + * XXX it is unclear why there is handling of negative opnums + */ + dispatch.visitVarInsn(Opcodes.ILOAD, var.get("opnum")); + Label nonNegativeOpnum = new Label(); + Label opnumSet = new Label(); + dispatch.visitJumpInsn(Opcodes.IFGE, nonNegativeOpnum); + + for (int i = 0; i < remotemethods.length; i++) + { + // assign opnum if hash matches supplied hash + dispatch.visitVarInsn(Opcodes.LLOAD, var.get("hash")); + dispatch.visitLdcInsn(new Long(remotemethods[i].hash)); + Label notIt = new Label(); + dispatch.visitInsn(Opcodes.LCMP); + dispatch.visitJumpInsn(Opcodes.IFNE, notIt); + + // opnum = + dispatch.visitLdcInsn(new Integer(i)); + dispatch.visitVarInsn(Opcodes.ISTORE, var.get("opnum")); + dispatch.visitJumpInsn(Opcodes.GOTO, opnumSet); + dispatch.visitLabel(notIt); + } + + // throw new SkeletonMismatchException + Label mismatch = new Label(); + dispatch.visitJumpInsn(Opcodes.GOTO, mismatch); + + dispatch.visitLabel(nonNegativeOpnum); + + // if opnum is already set, check that the hash matches the interface + dispatch.visitVarInsn(Opcodes.LLOAD, var.get("hash")); + dispatch.visitFieldInsn + (Opcodes.GETSTATIC, classInternalName, + "interfaceHash", Type.LONG_TYPE.getDescriptor()); + dispatch.visitInsn(Opcodes.LCMP); + dispatch.visitJumpInsn(Opcodes.IFEQ, opnumSet); + + dispatch.visitLabel(mismatch); + dispatch.visitTypeInsn + (Opcodes.NEW, typeArg(SkeletonMismatchException.class)); + dispatch.visitInsn(Opcodes.DUP); + dispatch.visitLdcInsn("interface hash mismatch"); + dispatch.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(SkeletonMismatchException.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] { Type.getType(String.class) })); + dispatch.visitInsn(Opcodes.ATHROW); + + // opnum has been set + dispatch.visitLabel(opnumSet); + + dispatch.visitVarInsn(Opcodes.ALOAD, var.get("remoteobj")); + dispatch.visitTypeInsn(Opcodes.CHECKCAST, typeArg(clazz)); + dispatch.visitVarInsn(Opcodes.ASTORE, var.get("remoteobj")); + + Label deflt = new Label(); + Label[] methLabels = new Label[remotemethods.length]; + for (int i = 0; i < methLabels.length; i++) + methLabels[i] = new Label(); + + // switch on opnum + dispatch.visitVarInsn(Opcodes.ILOAD, var.get("opnum")); + dispatch.visitTableSwitchInsn + (0, remotemethods.length - 1, deflt, methLabels); + + // Method dispatch + for (int i = 0; i < remotemethods.length; i++) + { + dispatch.visitLabel(methLabels[i]); + Method m = remotemethods[i].meth; + generateMethodSkel(dispatch, m, var); + } + + dispatch.visitLabel(deflt); + dispatch.visitTypeInsn(Opcodes.NEW, typeArg(UnmarshalException.class)); + dispatch.visitInsn(Opcodes.DUP); + dispatch.visitLdcInsn("invalid method number"); + dispatch.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(UnmarshalException.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] { Type.getType(String.class) })); + dispatch.visitInsn(Opcodes.ATHROW); + + dispatch.visitMaxs(-1, -1); + + skel.visitEnd(); + byte[] classData = skel.toByteArray(); + if (!noWrite) + { + if (file.exists()) + file.delete(); + if (file.getParentFile() != null) + file.getParentFile().mkdirs(); + FileOutputStream fos = new FileOutputStream(file); + fos.write(classData); + fos.flush(); + fos.close(); + } + } + + private void generateMethodSkel(MethodVisitor cv, Method m, Variables var) + { + Class[] sig = m.getParameterTypes(); + + Label readArgs = new Label(); + cv.visitLabel(readArgs); + + boolean needcastcheck = false; + + // ObjectInput in = call.getInputStream(); + cv.visitVarInsn(Opcodes.ALOAD, var.get("remotecall")); + cv.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteCall.class), "getInputStream", + Type.getMethodDescriptor + (Type.getType(ObjectInput.class), new Type[] {})); + cv.visitVarInsn(Opcodes.ASTORE, var.allocate("objectinput")); + + for (int i = 0; i < sig.length; i++) + { + // dup input stream + cv.visitVarInsn(Opcodes.ALOAD, var.get("objectinput")); + + Class readCls = sig[i].isPrimitive() ? sig[i] : Object.class; + + // in.readFoo() + cv.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(ObjectInput.class), + readMethod(sig[i]), + Type.getMethodDescriptor + (Type.getType(readCls), new Type [] {})); + + if (! sig[i].isPrimitive() && ! sig[i].equals(Object.class)) + { + needcastcheck = true; + cv.visitTypeInsn(Opcodes.CHECKCAST, typeArg(sig[i])); + } + + // store arg in variable + cv.visitVarInsn + (storeOpcode(sig[i]), var.allocate(param(m, i), size(sig[i]))); + } + + var.deallocate("objectinput"); + + Label doCall = new Label(); + Label closeInput = new Label(); + + cv.visitJumpInsn(Opcodes.JSR, closeInput); + cv.visitJumpInsn(Opcodes.GOTO, doCall); + + // throw new UnmarshalException + Label handler = new Label(); + cv.visitLabel(handler); + cv.visitVarInsn(Opcodes.ASTORE, var.allocate("exception")); + cv.visitTypeInsn(Opcodes.NEW, typeArg(UnmarshalException.class)); + cv.visitInsn(Opcodes.DUP); + cv.visitLdcInsn("error unmarshalling arguments"); + cv.visitVarInsn(Opcodes.ALOAD, var.deallocate("exception")); + cv.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(UnmarshalException.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] { Type.getType(String.class), + Type.getType(Exception.class) })); + cv.visitVarInsn(Opcodes.ASTORE, var.allocate("toThrow")); + cv.visitJumpInsn(Opcodes.JSR, closeInput); + cv.visitVarInsn(Opcodes.ALOAD, var.get("toThrow")); + cv.visitInsn(Opcodes.ATHROW); + + cv.visitTryCatchBlock + (readArgs, handler, handler, Type.getInternalName(IOException.class)); + if (needcastcheck) + { + cv.visitTryCatchBlock + (readArgs, handler, handler, + Type.getInternalName(ClassCastException.class)); + } + + // finally block + cv.visitLabel(closeInput); + cv.visitVarInsn(Opcodes.ASTORE, var.allocate("retAddress")); + cv.visitVarInsn(Opcodes.ALOAD, var.get("remotecall")); + cv.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteCall.class), + "releaseInputStream", + Type.getMethodDescriptor(Type.VOID_TYPE, new Type[] {})); + cv.visitVarInsn(Opcodes.RET, var.deallocate("retAddress")); + var.deallocate("toThrow"); + + // do the call using args stored as variables + cv.visitLabel(doCall); + cv.visitVarInsn(Opcodes.ALOAD, var.get("remoteobj")); + for (int i = 0; i < sig.length; i++) + cv.visitVarInsn(loadOpcode(sig[i]), var.deallocate(param(m, i))); + cv.visitMethodInsn + (Opcodes.INVOKEVIRTUAL, Type.getInternalName(clazz), m.getName(), + Type.getMethodDescriptor(m)); + + Class returntype = m.getReturnType(); + if (! returntype.equals(Void.TYPE)) + { + cv.visitVarInsn + (storeOpcode(returntype), var.allocate("result", size(returntype))); + } + + // write result to result stream + Label writeResult = new Label(); + cv.visitLabel(writeResult); + cv.visitVarInsn(Opcodes.ALOAD, var.get("remotecall")); + cv.visitInsn(Opcodes.ICONST_1); + cv.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(RemoteCall.class), + "getResultStream", + Type.getMethodDescriptor + (Type.getType(ObjectOutput.class), + new Type[] { Type.BOOLEAN_TYPE })); + + if (! returntype.equals(Void.TYPE)) + { + // out.writeFoo(result) + cv.visitVarInsn(loadOpcode(returntype), var.deallocate("result")); + Class writeCls = returntype.isPrimitive() ? returntype : Object.class; + cv.visitMethodInsn + (Opcodes.INVOKEINTERFACE, + Type.getInternalName(ObjectOutput.class), + writeMethod(returntype), + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] { Type.getType(writeCls) })); + } + + cv.visitInsn(Opcodes.RETURN); + + // throw new MarshalException + Label marshalHandler = new Label(); + cv.visitLabel(marshalHandler); + cv.visitVarInsn(Opcodes.ASTORE, var.allocate("exception")); + cv.visitTypeInsn(Opcodes.NEW, typeArg(MarshalException.class)); + cv.visitInsn(Opcodes.DUP); + cv.visitLdcInsn("error marshalling return"); + cv.visitVarInsn(Opcodes.ALOAD, var.deallocate("exception")); + cv.visitMethodInsn + (Opcodes.INVOKESPECIAL, + Type.getInternalName(MarshalException.class), + "", + Type.getMethodDescriptor + (Type.VOID_TYPE, new Type[] { Type.getType(String.class), + Type.getType(Exception.class) })); + cv.visitInsn(Opcodes.ATHROW); + cv.visitTryCatchBlock + (writeResult, marshalHandler, marshalHandler, + Type.getInternalName(IOException.class)); + } + + private static String typeArg(Class cls) + { + if (cls.isArray()) + return Type.getDescriptor(cls); + + return Type.getInternalName(cls); + } + + private static String readMethod(Class cls) + { + if (cls.equals(Void.TYPE)) + throw new IllegalArgumentException("can not read void"); + + String method; + if (cls.equals(Boolean.TYPE)) + method = "readBoolean"; + else if (cls.equals(Byte.TYPE)) + method = "readByte"; + else if (cls.equals(Character.TYPE)) + method = "readChar"; + else if (cls.equals(Short.TYPE)) + method = "readShort"; + else if (cls.equals(Integer.TYPE)) + method = "readInt"; + else if (cls.equals(Long.TYPE)) + method = "readLong"; + else if (cls.equals(Float.TYPE)) + method = "readFloat"; + else if (cls.equals(Double.TYPE)) + method = "readDouble"; + else + method = "readObject"; + + return method; + } + + private static String writeMethod(Class cls) + { + if (cls.equals(Void.TYPE)) + throw new IllegalArgumentException("can not read void"); + + String method; + if (cls.equals(Boolean.TYPE)) + method = "writeBoolean"; + else if (cls.equals(Byte.TYPE)) + method = "writeByte"; + else if (cls.equals(Character.TYPE)) + method = "writeChar"; + else if (cls.equals(Short.TYPE)) + method = "writeShort"; + else if (cls.equals(Integer.TYPE)) + method = "writeInt"; + else if (cls.equals(Long.TYPE)) + method = "writeLong"; + else if (cls.equals(Float.TYPE)) + method = "writeFloat"; + else if (cls.equals(Double.TYPE)) + method = "writeDouble"; + else + method = "writeObject"; + + return method; + } + + private static int returnOpcode(Class cls) + { + int returncode; + if (cls.equals(Boolean.TYPE)) + returncode = Opcodes.IRETURN; + else if (cls.equals(Byte.TYPE)) + returncode = Opcodes.IRETURN; + else if (cls.equals(Character.TYPE)) + returncode = Opcodes.IRETURN; + else if (cls.equals(Short.TYPE)) + returncode = Opcodes.IRETURN; + else if (cls.equals(Integer.TYPE)) + returncode = Opcodes.IRETURN; + else if (cls.equals(Long.TYPE)) + returncode = Opcodes.LRETURN; + else if (cls.equals(Float.TYPE)) + returncode = Opcodes.FRETURN; + else if (cls.equals(Double.TYPE)) + returncode = Opcodes.DRETURN; + else if (cls.equals(Void.TYPE)) + returncode = Opcodes.RETURN; + else + returncode = Opcodes.ARETURN; + + return returncode; + } + + private static int loadOpcode(Class cls) + { + if (cls.equals(Void.TYPE)) + throw new IllegalArgumentException("can not load void"); + + int loadcode; + if (cls.equals(Boolean.TYPE)) + loadcode = Opcodes.ILOAD; + else if (cls.equals(Byte.TYPE)) + loadcode = Opcodes.ILOAD; + else if (cls.equals(Character.TYPE)) + loadcode = Opcodes.ILOAD; + else if (cls.equals(Short.TYPE)) + loadcode = Opcodes.ILOAD; + else if (cls.equals(Integer.TYPE)) + loadcode = Opcodes.ILOAD; + else if (cls.equals(Long.TYPE)) + loadcode = Opcodes.LLOAD; + else if (cls.equals(Float.TYPE)) + loadcode = Opcodes.FLOAD; + else if (cls.equals(Double.TYPE)) + loadcode = Opcodes.DLOAD; + else + loadcode = Opcodes.ALOAD; + + return loadcode; + } + + private static int storeOpcode(Class cls) + { + if (cls.equals(Void.TYPE)) + throw new IllegalArgumentException("can not load void"); + + int storecode; + if (cls.equals(Boolean.TYPE)) + storecode = Opcodes.ISTORE; + else if (cls.equals(Byte.TYPE)) + storecode = Opcodes.ISTORE; + else if (cls.equals(Character.TYPE)) + storecode = Opcodes.ISTORE; + else if (cls.equals(Short.TYPE)) + storecode = Opcodes.ISTORE; + else if (cls.equals(Integer.TYPE)) + storecode = Opcodes.ISTORE; + else if (cls.equals(Long.TYPE)) + storecode = Opcodes.LSTORE; + else if (cls.equals(Float.TYPE)) + storecode = Opcodes.FSTORE; + else if (cls.equals(Double.TYPE)) + storecode = Opcodes.DSTORE; + else + storecode = Opcodes.ASTORE; + + return storecode; + } + + private static String unboxMethod(Class primitive) + { + if (! primitive.isPrimitive()) + throw new IllegalArgumentException("can not unbox nonprimitive"); + + String method; + if (primitive.equals(Boolean.TYPE)) + method = "booleanValue"; + else if (primitive.equals(Byte.TYPE)) + method = "byteValue"; + else if (primitive.equals(Character.TYPE)) + method = "charValue"; + else if (primitive.equals(Short.TYPE)) + method = "shortValue"; + else if (primitive.equals(Integer.TYPE)) + method = "intValue"; + else if (primitive.equals(Long.TYPE)) + method = "longValue"; + else if (primitive.equals(Float.TYPE)) + method = "floatValue"; + else if (primitive.equals(Double.TYPE)) + method = "doubleValue"; + else + throw new IllegalStateException("unknown primitive class " + primitive); + + return method; + } + + public static Class box(Class cls) + { + if (! cls.isPrimitive()) + throw new IllegalArgumentException("can only box primitive"); + + Class box; + if (cls.equals(Boolean.TYPE)) + box = Boolean.class; + else if (cls.equals(Byte.TYPE)) + box = Byte.class; + else if (cls.equals(Character.TYPE)) + box = Character.class; + else if (cls.equals(Short.TYPE)) + box = Short.class; + else if (cls.equals(Integer.TYPE)) + box = Integer.class; + else if (cls.equals(Long.TYPE)) + box = Long.class; + else if (cls.equals(Float.TYPE)) + box = Float.class; + else if (cls.equals(Double.TYPE)) + box = Double.class; + else + throw new IllegalStateException("unknown primitive type " + cls); + + return box; + } + + private static int size(Class cls) { + if (cls.equals(Long.TYPE) || cls.equals(Double.TYPE)) + return 2; + else + return 1; + } + + /** + * Sort exceptions so the most general go last. + */ + private Class[] sortExceptions(Class[] except) + { + for (int i = 0; i < except.length; i++) + { + for (int j = i + 1; j < except.length; j++) + { + if (except[i].isAssignableFrom(except[j])) + { + Class tmp = except[i]; + except[i] = except[j]; + except[j] = tmp; + } + } + } + return (except); + } + + public void setup(boolean keep, boolean need11Stubs, boolean need12Stubs, + boolean iiop, boolean poa, boolean debug, boolean warnings, + boolean noWrite, boolean verbose, boolean force, String classpath, + String bootclasspath, String extdirs, String outputDirectory) + { + this.keep = keep; + this.need11Stubs = need11Stubs; + this.need12Stubs = need12Stubs; + this.verbose = verbose; + this.noWrite = noWrite; + + // Set up classpath. + this.classpath = classpath; + StringTokenizer st = + new StringTokenizer(classpath, File.pathSeparator); + URL[] u = new URL[st.countTokens()]; + for (int i = 0; i < u.length; i++) + { + String path = st.nextToken(); + File f = new File(path); + try + { + u[i] = f.toURL(); + } + catch (java.net.MalformedURLException mue) + { + logError("malformed classpath component " + path); + return; + } + } + loader = new URLClassLoader(u); + + destination = outputDirectory; + } + + private void findRemoteMethods() + throws RMICException + { + List rmeths = new ArrayList(); + for (Class cur = clazz; cur != null; cur = cur.getSuperclass()) + { + Class[] interfaces = cur.getInterfaces(); + for (int i = 0; i < interfaces.length; i++) + { + if (java.rmi.Remote.class.isAssignableFrom(interfaces[i])) + { + Class remoteInterface = interfaces[i]; + if (verbose) + System.out.println + ("[implements " + remoteInterface.getName() + "]"); + + // check if the methods declare RemoteExceptions + Method[] meths = remoteInterface.getMethods(); + for (int j = 0; j < meths.length; j++) + { + Method m = meths[j]; + Class[] exs = m.getExceptionTypes(); + + boolean throwsRemote = false; + for (int k = 0; k < exs.length; k++) + { + if (exs[k].isAssignableFrom(RemoteException.class)) + throwsRemote = true; + } + + if (! throwsRemote) + { + throw new RMICException + ("Method " + m + " in interface " + remoteInterface + + " does not throw a RemoteException"); + } + + rmeths.add(m); + } + + mRemoteInterfaces.add(remoteInterface); + } + } + } + + // intersect exceptions for doubly inherited methods + boolean[] skip = new boolean[rmeths.size()]; + for (int i = 0; i < skip.length; i++) + skip[i] = false; + List methrefs = new ArrayList(); + for (int i = 0; i < rmeths.size(); i++) + { + if (skip[i]) continue; + Method current = (Method) rmeths.get(i); + MethodRef ref = new MethodRef(current); + for (int j = i+1; j < rmeths.size(); j++) + { + Method other = (Method) rmeths.get(j); + if (ref.isMatch(other)) + { + ref.intersectExceptions(other); + skip[j] = true; + } + } + methrefs.add(ref); + } + + // Convert into a MethodRef array and sort them + remotemethods = (MethodRef[]) + methrefs.toArray(new MethodRef[methrefs.size()]); + Arrays.sort(remotemethods); + } + + /** + * Prints an error to System.err and increases the error count. + */ + private void logError(Exception theError) + { + logError(theError.getMessage()); + if (verbose) + theError.printStackTrace(System.err); + } + + /** + * Prints an error to System.err and increases the error count. + */ + private void logError(String theError) + { + errorCount++; + System.err.println("error: " + theError); + } + + private static String getPrettyName(Class cls) + { + StringBuffer str = new StringBuffer(); + for (int count = 0;; count++) + { + if (! cls.isArray()) + { + str.append(cls.getName()); + for (; count > 0; count--) + str.append("[]"); + return (str.toString()); + } + cls = cls.getComponentType(); + } + } + + private static class MethodRef + implements Comparable + { + Method meth; + long hash; + List exceptions; + private String sig; + + MethodRef(Method m) { + meth = m; + sig = Type.getMethodDescriptor(meth); + hash = RMIHashes.getMethodHash(m); + // add exceptions removing subclasses + exceptions = removeSubclasses(m.getExceptionTypes()); + } + + public int compareTo(Object obj) { + MethodRef that = (MethodRef) obj; + int name = this.meth.getName().compareTo(that.meth.getName()); + if (name == 0) { + return this.sig.compareTo(that.sig); + } + return name; + } + + public boolean isMatch(Method m) + { + if (!meth.getName().equals(m.getName())) + return false; + + Class[] params1 = meth.getParameterTypes(); + Class[] params2 = m.getParameterTypes(); + if (params1.length != params2.length) + return false; + + for (int i = 0; i < params1.length; i++) + if (!params1[i].equals(params2[i])) return false; + + return true; + } + + private static List removeSubclasses(Class[] classes) + { + List list = new ArrayList(); + for (int i = 0; i < classes.length; i++) + { + Class candidate = classes[i]; + boolean add = true; + for (int j = 0; j < classes.length; j++) + { + if (classes[j].equals(candidate)) + continue; + else if (classes[j].isAssignableFrom(candidate)) + add = false; + } + if (add) list.add(candidate); + } + + return list; + } + + public void intersectExceptions(Method m) + { + List incoming = removeSubclasses(m.getExceptionTypes()); + + List updated = new ArrayList(); + + for (int i = 0; i < exceptions.size(); i++) + { + Class outer = (Class) exceptions.get(i); + boolean addOuter = false; + for (int j = 0; j < incoming.size(); j++) + { + Class inner = (Class) incoming.get(j); + + if (inner.equals(outer) || inner.isAssignableFrom(outer)) + addOuter = true; + else if (outer.isAssignableFrom(inner)) + updated.add(inner); + } + + if (addOuter) + updated.add(outer); + } + + exceptions = updated; + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java new file mode 100644 index 00000000000..176a09598d2 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java @@ -0,0 +1,52 @@ +/* CompilationError.java -- Thrown on compilation error. + Copyright (C) 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. +*/ + +package gnu.classpath.tools.rmic; + +/** + * This error is thrown when the target being compiled has illegal + * strutures. + * + * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) + */ +public class CompilationError extends Error +{ + /** + * Use serialVersionUID for interoperability. + */ + private static final long serialVersionUID = 1; + + /** + * Create error with explaining message and cause. + */ + public CompilationError(String message, Throwable cause) + { + super(message, cause); + } + + /** + * Create error with explaining message + */ + public CompilationError(String message) + { + super(message); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java new file mode 100644 index 00000000000..64eb2eaf66c --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java @@ -0,0 +1,128 @@ +/* Generator.java -- Generic code generator. + Copyright (C) 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. +*/ + +package gnu.classpath.tools.rmic; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; + +/** + * Contains basic methods, used in code generation. + * + * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) + */ +public class Generator +{ + /** + * Get resource with the given name, as string. + * + * @param name the resource name + * @return the resourse string (in subfolder /templates). + */ + public String getResource(String name) + { + String resourcePath = "templates/" + name; + InputStream in = getClass().getResourceAsStream(resourcePath); + + if (in == null) + throw new InternalError(getClass().getName() + ": no resource " + + resourcePath); + + BufferedReader r = new BufferedReader(new InputStreamReader(in)); + StringBuffer b = new StringBuffer(); + + String s; + try + { + while ((s = r.readLine()) != null) + { + b.append(s); + b.append('\n'); + } + r.close(); + } + catch (IOException e) + { + InternalError ierr = new InternalError("No expected resource " + name); + ierr.initCause(e); + throw ierr; + } + + return b.toString(); + } + + /** + * Replace the variable references (starting from #) in the template string by + * the values, present in the given map. The strings, not present in the + * variable map, are ignored. + * + * @param template + * the template string + * @param variables + * the map of variables (name to value) to replace. + * @return the string with replaced values. + */ + public String replaceAll(String template, Map variables) + { + BufferedReader r = new BufferedReader(new StringReader(template)); + String s; + StringBuffer b = new StringBuffer(template.length()); + try + { + Iterator iter; + Collection vars = variables.keySet(); + while ((s = r.readLine()) != null) + { + // At least one variable must appear in the string to make + // the string scan sensible. + if (s.indexOf('#') >= 0) + { + iter = vars.iterator(); + String variable; + while (iter.hasNext()) + { + variable = (String) iter.next(); + if (s.indexOf(variable) >= 0) + s = s.replaceAll(variable, + (String) variables.get(variable)); + } + } + b.append(s); + b.append('\n'); + } + r.close(); + } + catch (IOException e) + { + // This should never happen. + InternalError ierr = new InternalError(""); + ierr.initCause(e); + throw ierr; + } + return b.toString(); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java new file mode 100644 index 00000000000..0d77d1a787e --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java @@ -0,0 +1,112 @@ +/* GiopIo.java -- Generates GIOP input/output statements. + Copyright (C) 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. +*/ + +package gnu.classpath.tools.rmic; + +import java.rmi.Remote; + +import org.omg.CORBA.portable.ObjectImpl; + +/** + * Generates the code for reading and writing data over GIOP stream. + * + * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) + */ +public class GiopIo +{ + /** + * Get the statement for writing the variable of the given type to the GIOP ({@link org.omg.CORBA_2_3.portable.OutputStream) stream. The + * stream is always named "out". + * + * @param c + * the class of the object being written + * @param variable + * the variable, where the object value is stored + * @param r + * the parent generator, used to name the class + * @return the write statement. + */ + public static String getWriteStatement(Class c, String variable, SourceGiopRmicCompiler r) + { + if (c.equals(boolean.class)) + return "out.write_boolean(" + variable + ");"; + if (c.equals(byte.class)) + return "out.write_octet(" + variable + ");"; + else if (c.equals(short.class)) + return "out.write_int(" + variable + ");"; + else if (c.equals(int.class)) + return "out.write_long(" + variable + ");"; + else if (c.equals(long.class)) + return "out.write_long_long(" + variable + ");"; + else if (c.equals(double.class)) + return "out.write_double(" + variable + ");"; + else if (c.equals(float.class)) + return "out.write_float(" + variable + ");"; + else if (c.equals(char.class)) + return "out.write_char(" + variable + ");"; + else if (Remote.class.isAssignableFrom(c)) + return "Util.writeRemoteObject(out, " + variable + ");"; + else if (ObjectImpl.class.isAssignableFrom(c)) + return "out.write_Object(" + variable + ");"; + else + return "out.write_value(" + variable + ", " + r.name(c) + ".class);"; + } + + /** + * Get the statement for reading the value of the given type from to the GIOP ({@link org.omg.CORBA_2_3.portable.InputStream) stream. The + * stream is always named "in". + * + * @param c + * the class of the object being written + * @param r + * the parent generator, used to name the class + * @return the right side of the read statement. + */ + public static String getReadStatement(Class c, SourceGiopRmicCompiler r) + { + if (c.equals(boolean.class)) + return "in.read_boolean();"; + else if (c.equals(byte.class)) + return "in.read_octet();"; + else if (c.equals(short.class)) + return "in.read_int();"; + else if (c.equals(int.class)) + return "in.read_long();"; + else if (c.equals(long.class)) + return "in.read_long_long();"; + else if (c.equals(double.class)) + return "in.read_double();"; + else if (c.equals(float.class)) + return "in.read_float();"; + else if (c.equals(char.class)) + return "in.read_char();"; + else if (Remote.class.isAssignableFrom(c)) + return "(" + r.name(c) + + ") PortableRemoteObject.narrow(in.read_Object()," + r.name(c) + + ".class);"; + else if (ObjectImpl.class.isAssignableFrom(c)) + return "in.read_Object();"; + else + return "(" + r.name(c) + + ") in.read_value(" + r.name(c) + ".class);"; + } + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java new file mode 100644 index 00000000000..cf4d67f0cc0 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java @@ -0,0 +1,84 @@ +/* HashFinder.java -- finds the hash character. + Copyright (C) 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. +*/ + + +package gnu.classpath.tools.rmic; + +import java.util.HashSet; + +/** + * This class finds the hash character (the most different character in + * the passed array of strings). This character is used to accelerate the + * method invocation by name. + * + * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) + */ +public class HashFinder +{ + /** + * Find the hash char position in the given collection of strings. + * + * @param strings the string collection + * + * @return the optimal hash character position, always less then the + * length of the shortest string. + */ + public int findHashCharPosition(String[] strings) + { + // Find the length of the shortest string: + + int l = strings[0].length(); + for (int i = 1; i < strings.length; i++) + { + if (strings[i].length() < l) + l = strings[i].length(); + } + + // Find the position with the smallest number of the matching characters: + HashSet[] charLists = new HashSet[l]; + + for (int i = 0; i < charLists.length; i++) + { + charLists[i] = new HashSet(strings.length); + } + + for (int i = 0; i < strings.length; i++) + for (int p = 0; p < l; p++) + { + charLists[p].add(new Integer(strings[i].charAt(p))); + } + + int m = 0; + int v = charLists[0].size(); + + for (int i = 1; i < charLists.length; i++) + { + // Replace on equality also, seeking the hash char closer to the end + // of line. + if (charLists[i].size()>=v) + { + m = i; + v = charLists[i].size(); + } + } + return m; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java new file mode 100644 index 00000000000..12d1fa20eda --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java @@ -0,0 +1,282 @@ +/* Main.java -- RMI stub generator. + 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. +*/ + +package gnu.classpath.tools.rmic; + +import gnu.classpath.tools.common.ClasspathToolParser; +import gnu.classpath.tools.getopt.FileArgumentCallback; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.OptionGroup; +import gnu.classpath.tools.getopt.Parser; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; + +/** + * Generates the ordinary stubs (not GIOP based) for java.rmi.* package. + * + * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) + */ +public class Main +{ + private boolean noWrite; + private boolean warnings = true; + private boolean verbose; + private boolean force; + private String classpath = "."; + private String outputDirectory = "."; + private boolean poa; + private boolean need11Stubs = false; + private boolean need12Stubs = true; + private boolean keep; + private boolean iiop; + /** + * Specifies whether or not JRMP mode was explicitly requested. + */ + private boolean jrmp; + + private Parser initializeParser() + { + Parser parser = new ClasspathToolParser("rmic", true); //$NON-NLS-1$ + parser.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$ + + parser.add(new Option("nowarn", //$NON-NLS-1$ + Messages.getString("Main.NoWarn")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + warnings = false; + } + }); + parser.add(new Option("nowrite", //$NON-NLS-1$ + Messages.getString("Main.NoWrite")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + noWrite = true; + } + }); + parser.add(new Option("verbose", //$NON-NLS-1$ + Messages.getString("Main.Verbose")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + verbose = true; + } + }); + parser.add(new Option("d", //$NON-NLS-1$ + Messages.getString("Main.DirOpt"), //$NON-NLS-1$ + Messages.getString("Main.DirArg")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + outputDirectory = argument; + } + }); + parser.add(new Option("classpath", //$NON-NLS-1$ + Messages.getString("Main.ClasspathOpt"), //$NON-NLS-1$ + Messages.getString("Main.ClasspathArg")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + classpath = argument; + } + }); + parser.add(new Option("bootclasspath", //$NON-NLS-1$ + Messages.getString("Main.BootclasspathOpt"), //$NON-NLS-1$ + Messages.getString("Main.BootclasspathArg")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + } + }); + parser.add(new Option("extdirs", //$NON-NLS-1$ + Messages.getString("Main.ExtdirsOpt"), //$NON-NLS-1$ + Messages.getString("Main.ExtdirsArg")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + } + }); + parser.add(new Option("iiop", //$NON-NLS-1$ + Messages.getString("Main.IIOP")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + iiop = true; + } + }); + parser.add(new Option("always", //$NON-NLS-1$ + Messages.getString("Main.Always")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + force = true; + } + }); + parser.add(new Option("alwaysgenerate", //$NON-NLS-1$ + Messages.getString("Main.AlwaysGenerate")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + force = true; + } + }); + parser.add(new Option("nolocalstubs", //$NON-NLS-1$ + Messages.getString("Main.NoLocalStubs")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + } + }); + parser.add(new Option("poa", //$NON-NLS-1$ + Messages.getString("Main.POA")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + poa = true; + } + }); + parser.add(new Option("keep", //$NON-NLS-1$ + Messages.getString("Main.Keep")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + keep = true; + } + }); + parser.add(new Option("keepgenerated", //$NON-NLS-1$ + Messages.getString("Main.KeepGenerated")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + keep = true; + } + }); + parser.add(new Option("v1.1", //$NON-NLS-1$ + Messages.getString("Main.v11")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + need11Stubs = true; + need12Stubs = false; + jrmp = true; + } + }); + parser.add(new Option("v1.2", //$NON-NLS-1$ + Messages.getString("Main.v12")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + jrmp = true; + } + }); + parser.add(new Option("vcompat", //$NON-NLS-1$ + Messages.getString("Main.vcompat")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + need11Stubs = true; + need12Stubs = true; + jrmp = true; + } + }); + parser.add(new Option("g", //$NON-NLS-1$ + Messages.getString("Main.DebugInfo")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + } + }); + + return parser; + } + + private void run(String[] args) + { + Parser p = initializeParser(); + String[] files = p.parse(args); + + if (files.length == 0) + { + p.printHelp(); + System.exit(1); + } + + ArrayList backends = new ArrayList(); + + // FIXME: need an IDL RmicBackend + // FIXME: need a ClassGiopRmicCompiler RmicBackend + if (iiop) + { + backends.add(new SourceGiopRmicCompiler()); + + if (jrmp) + { + // Both IIOP and JRMP stubs were requested. + backends.add(new ClassRmicCompiler()); + // FIXME: SourceRmicCompiler should support v1.1 + if (keep) + backends.add(new SourceRmicCompiler()); + } + } + else + { + backends.add(new ClassRmicCompiler()); + if (keep) + backends.add(new SourceRmicCompiler()); + } + + for (int i = 0; i < backends.size(); i++) + { + RmicBackend b = (RmicBackend) backends.get(i); + b.setup(keep, need11Stubs, need12Stubs, + iiop, poa, false, warnings, + noWrite, verbose, force, classpath, + null, null, outputDirectory); + if (!b.run(files)) + System.exit(1); + } + } + + /** + * The RMI compiler entry point. + */ + public static void main(String[] args) + { + Main rmicprogram = new Main(); + try + { + rmicprogram.run(args); + } + catch (Exception e) + { + System.err.println(Messages.getString("Main.InternalError")); //$NON-NLS-1$ + e.printStackTrace(System.err); + System.exit(1); + } + } + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Messages.java new file mode 100644 index 00000000000..5e67dd163c4 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Messages.java @@ -0,0 +1,67 @@ +/* Messages.java -- localization support for rmic + 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 gnu.classpath.tools.rmic; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class Messages +{ + private static final String BUNDLE_NAME + = "gnu.classpath.tools.rmic.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE + = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() + { + } + + public static String getString(String key) + { + try + { + return RESOURCE_BUNDLE.getString(key); + } + catch (MissingResourceException e) + { + return '!' + key + '!'; + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java new file mode 100644 index 00000000000..335a0a65c30 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java @@ -0,0 +1,285 @@ +/* MethodGenerator.java -- Generates methods for GIOP rmic compiler. + Copyright (C) 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. +*/ + +package gnu.classpath.tools.rmic; + +import gnu.classpath.tools.rmic.AbstractMethodGenerator; + +import java.lang.reflect.Method; +import java.util.Properties; + +/** + * Keeps information about the single method and generates the code fragments, + * related to that method. + * + * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) + */ +public class MethodGenerator implements AbstractMethodGenerator +{ + /** + * The method being defined. + */ + Method method; + + /** + * The parent code generator. + */ + SourceGiopRmicCompiler rmic; + + /** + * The previous method in the list, null for the first element. + * Used to avoid repretetive inclusion of the same hash code label. + */ + MethodGenerator previous = null; + + /** + * The hash character position. + */ + int hashCharPosition; + + /** + * Create the new method generator for the given method. + * + * @param aMethod + * the related method. + * @param aRmic + * the Rmic generator instance, where more class - related + * information is defined. + */ + public MethodGenerator(Method aMethod, SourceGiopRmicCompiler aRmic) + { + method = aMethod; + rmic = aRmic; + } + + /** + * Get the method name. + * + * @return the name of the method. + */ + public String getGiopMethodName() + { + String m = method.getName(); + if (m.startsWith("get")) + return "_get_J" + m.substring("get".length()); + else if (m.startsWith("set")) + return "_set_J" + m.substring("set".length()); + else + return m; + } + + /** + * Get the method parameter declaration. + * + * @return the string - method parameter declaration. + */ + public String getArgumentList() + { + StringBuffer b = new StringBuffer(); + + Class[] args = method.getParameterTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(rmic.name(args[i])); + b.append(" p" + i); + if (i < args.length - 1) + b.append(", "); + } + return b.toString(); + } + + /** + * Get the method parameter list only (no type declarations). This is used to + * generate the method invocations statement. + * + * @return the string - method parameter list. + */ + public String getArgumentNames() + { + StringBuffer b = new StringBuffer(); + + Class[] args = method.getParameterTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(" p" + i); + if (i < args.length - 1) + b.append(", "); + } + return b.toString(); + } + + /** + * Get the list of exceptions, thrown by this method. + * + * @return the list of exceptions. + */ + public String getThrows() + { + StringBuffer b = new StringBuffer(); + + Class[] args = method.getExceptionTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(rmic.name(args[i])); + if (i < args.length - 1) + b.append(", "); + } + return b.toString(); + } + + /** + * Generate this method for the Stub class. + * + * @return the method body for the stub class. + */ + public String generateStubMethod() + { + String templateName; + + Properties vars = new Properties(rmic.vars); + vars.put("#return_type", rmic.name(method.getReturnType())); + vars.put("#method_name", method.getName()); + vars.put("#giop_method_name", getGiopMethodName()); + vars.put("#argument_list", getArgumentList()); + vars.put("#argument_names", getArgumentNames()); + + vars.put("#argument_write", getStubParaWriteStatement()); + + if (method.getReturnType().equals(void.class)) + vars.put("#read_return", "return;"); + else + vars.put("#read_return", + "return " + + GiopIo.getReadStatement(method.getReturnType(), rmic)); + String thr = getThrows(); + if (thr.length() > 0) + vars.put("#throws", "\n throws " + thr); + else + vars.put("#throws", ""); + + if (method.getReturnType().equals(void.class)) + templateName = "StubMethodVoid.jav"; + else + { + vars.put("#write_result", + GiopIo.getWriteStatement(method.getReturnType(), "result", + rmic)); + templateName = "StubMethod.jav"; + } + + String template = rmic.getResource(templateName); + String generated = rmic.replaceAll(template, vars); + return generated; + } + + /** + * Generate this method handling fragment for the Tie class. + * + * @return the fragment to handle this method for the Tie class. + */ + public String generateTieMethod() + { + String templateName; + + Properties vars = new Properties(rmic.vars); + vars.put("#return_type", rmic.name(method.getReturnType())); + vars.put("#method_name", method.getName()); + vars.put("#giop_method_name", getGiopMethodName()); + vars.put("#argument_list", getArgumentList()); + vars.put("#argument_names", getArgumentNames()); + + vars.put("#argument_write", getStubParaWriteStatement()); + + if (previous == null || previous.getHashChar()!=getHashChar()) + vars.put("#hashCodeLabel"," case '"+getHashChar()+"':"); + else + vars.put("#hashCodeLabel"," // also '"+getHashChar()+"':"); + + if (method.getReturnType().equals(void.class)) + templateName = "TieMethodVoid.jav"; + else + { + vars.put("#write_result", + GiopIo.getWriteStatement(method.getReturnType(), "result", + rmic)); + templateName = "TieMethod.jav"; + } + vars.put("#read_and_define_args", getRda()); + + String template = rmic.getResource(templateName); + String generated = rmic.replaceAll(template, vars); + return generated; + } + + /** + * Generate sentences for Reading and Defining Arguments. + * + * @return the sequence of sentences for reading and defining arguments. + */ + public String getRda() + { + StringBuffer b = new StringBuffer(); + Class[] args = method.getParameterTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(" "); + b.append(rmic.name(args[i])); + b.append(" "); + b.append("p"+i); + b.append(" = "); + b.append(GiopIo.getReadStatement(args[i], rmic)); + if (i + */ +public class RMICException + extends Exception +{ + /** + * Create an exception with a message. The cause remains uninitialized. + * + * @param message the message string + * @see #initCause(Throwable) + */ + public RMICException(String message) + { + super(message); + } + + /** + * Create an exception with a message and a cause. + * + * @param message the message string + * @param cause the cause of this exception + */ + public RMICException(String message, Throwable cause) + { + super(message, cause); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java new file mode 100644 index 00000000000..48abb8fade9 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java @@ -0,0 +1,287 @@ +/* MethodGenerator.java -- Generates methods for rmi compiler. + Copyright (C) 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. +*/ + + +package gnu.classpath.tools.rmic; + +import gnu.classpath.tools.rmic.AbstractMethodGenerator; +import gnu.java.rmi.server.RMIHashes; + +import java.lang.reflect.Method; +import java.util.Properties; + +/** + * Keeps information about the single method and generates the code fragments, + * related to that method. + * + * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) + */ +public class RmiMethodGenerator + implements AbstractMethodGenerator +{ + /** + * The method being defined. + */ + Method method; + + /** + * The parent code generator. + */ + SourceRmicCompiler rmic; + + /** + * Create the new method generator for the given method. + * + * @param aMethod the related method. + * @param aRmic the Rmic generator instance, where more class - related + * information is defined. + */ + public RmiMethodGenerator(Method aMethod, SourceRmicCompiler aRmic) + { + method = aMethod; + rmic = aRmic; + if (method.getParameterTypes().length == 0) + rmic.addZeroSizeObjecArray = true; + } + + /** + * Get the method parameter declaration. + * + * @return the string - method parameter declaration. + */ + public String getArgumentList() + { + StringBuffer b = new StringBuffer(); + + Class[] args = method.getParameterTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(rmic.name(args[i])); + b.append(" p" + i); + if (i < args.length - 1) + b.append(", "); + } + return b.toString(); + } + + /** + * Get the method parameter list only (no type declarations). This is used to + * generate the method invocations statement. + * + * @return the string - method parameter list. + */ + public String getArgumentNames() + { + StringBuffer b = new StringBuffer(); + + Class[] args = method.getParameterTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(" p" + i); + if (i < args.length - 1) + b.append(", "); + } + return b.toString(); + } + + /** + * Get the list of exceptions, thrown by this method. + * + * @return the list of exceptions. + */ + public String getThrows() + { + StringBuffer b = new StringBuffer(); + + Class[] args = method.getExceptionTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(rmic.name(args[i])); + if (i < args.length - 1) + b.append(", "); + } + return b.toString(); + } + + /** + * Generate this method for the Stub class. + * + * @return the method body for the stub class. + */ + public String generateStubMethod() + { + String templateName; + + Properties vars = new Properties(rmic.vars); + vars.put("#return_type", rmic.name(method.getReturnType())); + vars.put("#method_name", method.getName()); + vars.put("#method_hash", getMethodHashCode()); + vars.put("#argument_list", getArgumentList()); + vars.put("#object_arg_list", getArgListAsObjectArray()); + vars.put("#declaring_class", rmic.name(method.getDeclaringClass())); + vars.put("#class_arg_list", getArgListAsClassArray()); + + String thr = getThrows(); + if (thr.length() > 0) + vars.put("#throws", "\n throws " + thr); + else + vars.put("#throws", ""); + + if (method.getReturnType().equals(void.class)) + templateName = "Stub_12MethodVoid.jav"; + else + { + templateName = "Stub_12Method.jav"; + vars.put("#return_statement", getReturnStatement()); + } + + String template = rmic.getResource(templateName); + String generated = rmic.replaceAll(template, vars); + return generated; + } + + /** + * Generate sentences for Reading and Defining Arguments. + * + * @return the sequence of sentences for reading and defining arguments. + */ + public String getStaticMethodDeclarations() + { + StringBuffer b = new StringBuffer(); + Class[] args = method.getParameterTypes(); + + for (int i = 0; i < args.length; i++) + { + b.append(" "); + b.append(rmic.name(args[i])); + b.append(" "); + b.append("p" + i); + b.append(" = "); + if (i < args.length - 1) + b.append("\n"); + } + return b.toString(); + } + + /** + * Get the write statement for writing parameters inside the stub. + * + * @return the write statement. + */ + public String getArgListAsObjectArray() + { + Class[] args = method.getParameterTypes(); + + if (args.length==0) + return "NO_ARGS"; + + StringBuffer b = new StringBuffer("new Object[] {"); + + for (int i = 0; i < args.length; i++) + { + if (!args[i].isPrimitive()) + b.append("p"+i); + else + { + b.append("new "+rmic.name(WrapUnWrapper.getWrappingClass(args[i]))); + b.append("(p"+i+")"); + } + if (i 0) + { + Integer i = (Integer) free.iterator().next(); + free.remove(i); + names.put(name, i); + return i.intValue(); + } + + return allocateNew(name, size); + } + + public int deallocate(Object name) + { + if (! names.containsKey(name)) + throw new IllegalArgumentException("no variable " + name); + + if (declared.contains(name)) + throw new IllegalStateException(name + " can't be deallocated"); + + Integer i = (Integer) names.get(name); + names.remove(name); + free.add(i); + if (wides.remove(name)) + free.add(new Integer(i.intValue() + 1)); + return i.intValue(); + } + + public int get(Object name) + { + if (! names.containsKey(name)) + throw new IllegalArgumentException("no variable " + name); + + return ((Integer) names.get(name)).intValue(); + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java new file mode 100644 index 00000000000..c51925fa6b9 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java @@ -0,0 +1,83 @@ +/* WrapUnWrapper.java -- Wrapper and unwrapper for primitive types. + 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. +*/ + + +package gnu.classpath.tools.rmic; + + +public class WrapUnWrapper +{ + /** + * Get the wrapper class for the primitive type + * + * @param primitive the class of the primitive type + * + * @return the wrapper class + */ + public static Class getWrappingClass(Class primitive) + { + if (primitive.equals(byte.class)) + return Byte.class; + if (primitive.equals(int.class)) + return Integer.class; + if (primitive.equals(long.class)) + return Long.class; + if (primitive.equals(boolean.class)) + return Boolean.class; + if (primitive.equals(double.class)) + return Double.class; + if (primitive.equals(float.class)) + return Float.class; + if (primitive.equals(char.class)) + return Character.class; + else + return null; + } + + /** + * Get the method, invocation of that would return the wrapped value. + * + * @param primitive the class of the primitive type. + * + * @return the wrapper method that unwraps the value to the primitive type. + */ + public static String getUnwrappingMethod(Class primitive) + { + if (primitive.equals(byte.class)) + return "byteValue()"; + if (primitive.equals(int.class)) + return "intValue()"; + if (primitive.equals(long.class)) + return "longValue()"; + if (primitive.equals(boolean.class)) + return "booleanValue()"; + if (primitive.equals(double.class)) + return "doubleValue()"; + if (primitive.equals(float.class)) + return "floatValue()"; + if (primitive.equals(char.class)) + return "charValue()"; + else + return null; + } + + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/ImplTie.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/ImplTie.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/Stub.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/Stub.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/StubMethod.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/StubMethod.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/StubMethodVoid.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/StubMethodVoid.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12Method.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12Method.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12MethodVoid.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12MethodVoid.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/Tie.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/Tie.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/TieMethod.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/TieMethod.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav similarity index 100% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav rename to libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java new file mode 100644 index 00000000000..390117a0527 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java @@ -0,0 +1,243 @@ +/* ActivationSystemImpl.java -- implementation of the activation system. + 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 gnu.classpath.tools.rmid; + +import gnu.classpath.tools.common.Persistent; +import gnu.java.rmi.activation.ActivationSystemTransient; + +import java.io.File; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.rmi.MarshalledObject; +import java.rmi.RemoteException; +import java.rmi.activation.ActivationDesc; +import java.rmi.activation.ActivationException; +import java.rmi.activation.ActivationGroupDesc; +import java.rmi.activation.ActivationGroupID; +import java.rmi.activation.ActivationID; +import java.rmi.activation.ActivationInstantiator; +import java.rmi.activation.ActivationMonitor; +import java.rmi.activation.ActivationSystem; +import java.rmi.activation.Activator; +import java.rmi.activation.UnknownGroupException; +import java.rmi.activation.UnknownObjectException; + +/** + * Implements the rmid activation system. + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) + */ +public class ActivationSystemImpl extends ActivationSystemTransient implements + ActivationSystem, Activator, ActivationMonitor, Serializable +{ + /** + * Use for interoperability. + */ + private static final long serialVersionUID = 1; + + /** + * The singleton instance of this class. + */ + public static ActivationSystemImpl singleton2; + + /** + * Obtain the singleton instance of this class. + * + * @param folder the folder, where the activation system will keep its files. + * @param cold do the cold start if true, hot (usual) if false. + */ + public static ActivationSystem getInstance(File folder, boolean cold) + { + if (singleton2 == null) + singleton2 = new ActivationSystemImpl(folder, cold); + return singleton2; + } + + /** + * Creates the group with transient maps. + * + * @param folder + * the folder, where the activation system will keep its files. + * @param cold + * do the cold start if true, hot (usual) if false. + */ + protected ActivationSystemImpl(File folder, boolean cold) + { + super(new PersistentBidiHashTable(), new PersistentBidiHashTable()); + singleton2 = this; + ((PersistentBidiHashTable) groupDescs).init( + new File(folder, "asi_objects.data"), cold); + ((PersistentBidiHashTable) descriptions).init( + new File(folder, "asi_groups.data"), cold); + } + + /** @inheritDoc */ + public MarshalledObject activate(ActivationID id, boolean force) + throws ActivationException, UnknownObjectException, RemoteException + { + return super.activate(id, force); + } + + /** @inheritDoc */ + public ActivationMonitor activeGroup(ActivationGroupID id, + ActivationInstantiator group, + long incarnation) + throws UnknownGroupException, ActivationException, RemoteException + { + return super.activeGroup(id, group, incarnation); + } + + /** @inheritDoc */ + public void activeObject(ActivationID id, MarshalledObject obj) + throws UnknownObjectException, RemoteException + { + super.activeObject(id, obj); + } + + /** @inheritDoc */ + public ActivationDesc getActivationDesc(ActivationID id) + throws ActivationException, UnknownObjectException, RemoteException + { + return super.getActivationDesc(id); + } + + public ActivationGroupDesc getActivationGroupDesc(ActivationGroupID groupId) + throws ActivationException, UnknownGroupException, RemoteException + { + return super.getActivationGroupDesc(groupId); + } + + /** @inheritDoc */ + public void inactiveGroup(ActivationGroupID groupId, long incarnation) + throws UnknownGroupException, RemoteException + { + super.inactiveGroup(groupId, incarnation); + } + + /** @inheritDoc */ + public void inactiveObject(ActivationID id) throws UnknownObjectException, + RemoteException + { + super.inactiveObject(id); + } + + /** @inheritDoc */ + public ActivationGroupID registerGroup(ActivationGroupDesc groupDesc) + throws ActivationException, RemoteException + { + return super.registerGroup(groupDesc); + } + + /** @inheritDoc */ + public ActivationID registerObject(ActivationDesc desc) + throws ActivationException, UnknownGroupException, RemoteException + { + return super.registerObject(desc); + } + + /** @inheritDoc */ + public ActivationDesc setActivationDesc(ActivationID id, ActivationDesc desc) + throws ActivationException, UnknownObjectException, + UnknownGroupException, RemoteException + { + return super.setActivationDesc(id, desc); + } + + /** @inheritDoc */ + public ActivationGroupDesc setActivationGroupDesc( + ActivationGroupID groupId, ActivationGroupDesc groupDesc) + throws ActivationException, UnknownGroupException, RemoteException + { + return super.setActivationGroupDesc(groupId, groupDesc); + } + + /** + * This method saves the state of the activation system and then + * terminates in 10 seconds. + */ + public void shutdown() throws RemoteException + { + super.shutdown(); + System.out.println("Shutdown command received. Will terminate in 10 s"); + Persistent.timer.schedule(new Persistent.ExitTask(), 10000); + } + + /** @inheritDoc */ + public void unregisterGroup(ActivationGroupID groupId) + throws ActivationException, UnknownGroupException, RemoteException + { + super.unregisterGroup(groupId); + } + + /** @inheritDoc */ + public void unregisterObject(ActivationID id) throws ActivationException, + UnknownObjectException, RemoteException + { + super.unregisterObject(id); + } + + /** + * Read the object from the input stream. + * + * @param in the stream to read from + * + * @throws IOException if thrown by the stream + * @throws ClassNotFoundException + */ + private void readObject(ObjectInputStream in) throws IOException, + ClassNotFoundException + { + // Read no fields. + } + + /** + * Write the object to the output stream. + * + * @param out the stream to write int + * @throws IOException if thrown by the stream + * @throws ClassNotFoundException + */ + private void writeObject(ObjectOutputStream out) throws IOException, + ClassNotFoundException + { + // Write no fields. + }; + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java new file mode 100644 index 00000000000..535f8ab92ac --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java @@ -0,0 +1,556 @@ +/* ActivationSystemImpl.java -- implementation of the activation system. + 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 gnu.classpath.tools.rmid; + +import java.rmi.MarshalledObject; +import java.rmi.RemoteException; +import java.rmi.activation.ActivationDesc; +import java.rmi.activation.ActivationException; +import java.rmi.activation.ActivationGroupDesc; +import java.rmi.activation.ActivationGroupID; +import java.rmi.activation.ActivationID; +import java.rmi.activation.ActivationInstantiator; +import java.rmi.activation.ActivationMonitor; +import java.rmi.activation.ActivationSystem; +import java.rmi.activation.Activator; +import java.rmi.activation.UnknownGroupException; +import java.rmi.activation.UnknownObjectException; + +import java.lang.reflect.Method; +import java.rmi.server.RemoteRef; +import java.rmi.server.RemoteStub; +import java.rmi.UnexpectedException; + +/** + * This class delegates its method calls to the remote RMI object, referenced + * by {@link RemoteRef}. + * + * It is normally generated with rmic. + */ +public final class ActivationSystemImpl_Stub + extends RemoteStub + implements ActivationMonitor, Activator, ActivationSystem +{ + /** + * Use serialVersionUID for interoperability + */ + private static final long serialVersionUID = 2; + + /** + * The explaining message for {@ling UnexpectedException}. + */ + private static final String exception_message = + "undeclared checked exception"; + + /* All remote methods, invoked by this stub: */ + private static final Method met_setActivationGroupDesc; + private static final Method met_inactiveGroup; + private static final Method met_unregisterObject; + private static final Method met_getActivationDesc; + private static final Method met_setActivationDesc; + private static final Method met_shutdown; + private static final Method met_activate; + private static final Method met_activeGroup; + private static final Method met_registerGroup; + private static final Method met_getActivationGroupDesc; + private static final Method met_activeObject; + private static final Method met_registerObject; + private static final Method met_inactiveObject; + private static final Method met_unregisterGroup; + private static final Object[] NO_ARGS = new Object[0]; + static + { + final Class[] NO_ARGSc = new Class[0]; + try + { + met_setActivationGroupDesc = + ActivationSystem.class.getMethod("setActivationGroupDesc", new Class[] + { + ActivationGroupID.class, ActivationGroupDesc.class + }); + met_inactiveGroup = + ActivationMonitor.class.getMethod("inactiveGroup", new Class[] + { + ActivationGroupID.class, long.class + }); + met_unregisterObject = + ActivationSystem.class.getMethod("unregisterObject", new Class[] + { + ActivationID.class + }); + met_getActivationDesc = + ActivationSystem.class.getMethod("getActivationDesc", new Class[] + { + ActivationID.class + }); + met_setActivationDesc = + ActivationSystem.class.getMethod("setActivationDesc", new Class[] + { + ActivationID.class, ActivationDesc.class + }); + met_shutdown = + ActivationSystem.class.getMethod("shutdown", NO_ARGSc); + met_activate = + Activator.class.getMethod("activate", new Class[] + { + ActivationID.class, boolean.class + }); + met_activeGroup = + ActivationSystem.class.getMethod("activeGroup", new Class[] + { + ActivationGroupID.class, ActivationInstantiator.class, long.class + }); + met_registerGroup = + ActivationSystem.class.getMethod("registerGroup", new Class[] + { + ActivationGroupDesc.class + }); + met_getActivationGroupDesc = + ActivationSystem.class.getMethod("getActivationGroupDesc", new Class[] + { + ActivationGroupID.class + }); + met_activeObject = + ActivationMonitor.class.getMethod("activeObject", new Class[] + { + ActivationID.class, MarshalledObject.class + }); + met_registerObject = + ActivationSystem.class.getMethod("registerObject", new Class[] + { + ActivationDesc.class + }); + met_inactiveObject = + ActivationMonitor.class.getMethod("inactiveObject", new Class[] + { + ActivationID.class + }); + met_unregisterGroup = + ActivationSystem.class.getMethod("unregisterGroup", new Class[] + { + ActivationGroupID.class + }); + + } + catch (NoSuchMethodException nex) + { + NoSuchMethodError err = new NoSuchMethodError( + "ActivationSystemImpl_Stub class initialization failed"); + err.initCause(nex); + throw err; + } + } + + /** + * Create the instance for _ActivationSystemImpl_Stub that forwards method calls to the + * remote object. + * + * @para the reference to the remote object. + */ + public ActivationSystemImpl_Stub(RemoteRef reference) + { + super(reference); + } + + /* Methods */ + /** @inheritDoc */ + public ActivationGroupDesc setActivationGroupDesc(ActivationGroupID p0, + ActivationGroupDesc p1) + throws ActivationException, UnknownGroupException, RemoteException + { + try + { + Object result = ref.invoke(this, met_setActivationGroupDesc, + new Object[] { p0, p1 }, + 1213918527826541191L); + return (ActivationGroupDesc) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void inactiveGroup(ActivationGroupID p0, long p1) + throws UnknownGroupException, RemoteException + { + try + { + ref.invoke(this, met_inactiveGroup, new Object[] { p0, new Long(p1) }, + -399287892768650944L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void unregisterObject(ActivationID p0) throws ActivationException, + UnknownObjectException, RemoteException + { + try + { + ref.invoke(this, met_unregisterObject, new Object[] { p0 }, + -6843850585331411084L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public ActivationDesc getActivationDesc(ActivationID p0) + throws ActivationException, UnknownObjectException, RemoteException + { + try + { + Object result = ref.invoke(this, met_getActivationDesc, + new Object[] { p0 }, 4830055440982622087L); + return (ActivationDesc) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public ActivationDesc setActivationDesc(ActivationID p0, ActivationDesc p1) + throws ActivationException, UnknownObjectException, + UnknownGroupException, RemoteException + { + try + { + Object result = ref.invoke(this, met_setActivationDesc, + new Object[] { p0, p1 }, + 7128043237057180796L); + return (ActivationDesc) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void shutdown() throws RemoteException + { + try + { + ref.invoke(this, met_shutdown, NO_ARGS, -7207851917985848402L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public MarshalledObject activate(ActivationID p0, boolean p1) + throws ActivationException, UnknownObjectException, RemoteException + { + try + { + Object result = ref.invoke(this, met_activate, + new Object[] { p0, new Boolean(p1) }, + -8767355154875805558L); + return (MarshalledObject) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public ActivationMonitor activeGroup(ActivationGroupID p0, + ActivationInstantiator p1, long p2) + throws UnknownGroupException, ActivationException, RemoteException + { + try + { + Object result = ref.invoke(this, met_activeGroup, + new Object[] { p0, p1, new Long(p2) }, + -4575843150759415294L); + return (ActivationMonitor) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public ActivationGroupID registerGroup(ActivationGroupDesc p0) + throws ActivationException, RemoteException + { + try + { + Object result = ref.invoke(this, met_registerGroup, + new Object[] { p0 }, 6921515268192657754L); + return (ActivationGroupID) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public ActivationGroupDesc getActivationGroupDesc(ActivationGroupID p0) + throws ActivationException, UnknownGroupException, RemoteException + { + try + { + Object result = ref.invoke(this, met_getActivationGroupDesc, + new Object[] { p0 }, -8701843806548736528L); + return (ActivationGroupDesc) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void activeObject(ActivationID p0, MarshalledObject p1) + throws UnknownObjectException, RemoteException + { + try + { + ref.invoke(this, met_activeObject, new Object[] { p0, p1 }, + 2543984342209939736L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public ActivationID registerObject(ActivationDesc p0) + throws ActivationException, UnknownGroupException, RemoteException + { + try + { + Object result = ref.invoke(this, met_registerObject, + new Object[] { p0 }, -3006759798994351347L); + return (ActivationID) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void inactiveObject(ActivationID p0) throws UnknownObjectException, + RemoteException + { + try + { + ref.invoke(this, met_inactiveObject, new Object[] { p0 }, + -4165404120701281807L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void unregisterGroup(ActivationGroupID p0) throws ActivationException, + UnknownGroupException, RemoteException + { + try + { + ref.invoke(this, met_unregisterGroup, new Object[] { p0 }, + 3768097077835970701L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java new file mode 100644 index 00000000000..d601b13f178 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java @@ -0,0 +1,259 @@ +/* Main.java -- the RMI activation daemon. + 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 gnu.classpath.tools.rmid; + +import gnu.classpath.tools.rmid.ActivationSystemImpl; +import gnu.classpath.tools.common.ClasspathToolParser; +import gnu.classpath.tools.getopt.FileArgumentCallback; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.OptionGroup; +import gnu.classpath.tools.getopt.Parser; +import gnu.java.rmi.activation.ActivationSystemTransient; +import gnu.java.rmi.server.UnicastServerRef; + +import java.io.File; +import java.net.InetAddress; +import java.rmi.Remote; +import java.rmi.activation.ActivationSystem; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.ObjID; +import java.rmi.server.RMIServerSocketFactory; + + +/** + * The persistent RMI activation daemon. + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) + */ +public class Main +{ + /** + * The RMI server socket factory. + */ + static RMIServerSocketFactory ACTIVATION_REGISTY_SOCKET_FACTORY = null; + + /** + * The activation registry port. + */ + static int ACTIVATION_REGISTRY_PORT = ActivationSystem.SYSTEM_PORT; + + /** + * The activation system name. + */ + static String ACTIVATION_SYSTEM_NAME = "java.rmi.activation.ActivationSystem"; + + // Parse parameters: + private boolean stop = false; + private String directory = "."; + private boolean cold = false; + private boolean persistent = false; + + private Parser initializeParser() + { + Parser parser = new ClasspathToolParser("rmiregistry", true); //$NON-NLS-1$ + parser.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$ + + + OptionGroup controlGroup + = new OptionGroup(Messages.getString("Main.ControlGroup")); //$NON-NLS-1$ + controlGroup.add(new Option("port", //$NON-NLS-1$ + Messages.getString("Main.PortOption"), //$NON-NLS-1$ + Messages.getString("Main.Port")) //$NON-NLS-1$ + { + public void parsed(String portArgument) throws OptionException + { + ACTIVATION_REGISTRY_PORT = Integer.parseInt(portArgument); + } + }); + controlGroup.add(new Option("restart", //$NON-NLS-1$ + Messages.getString("Main.Restart")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + cold = true; + } + }); + controlGroup.add(new Option("stop", //$NON-NLS-1$ + Messages.getString("Main.Stop")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + stop = true; + } + }); + parser.add(controlGroup); + + OptionGroup persistenceGroup + = new OptionGroup(Messages.getString("Main.PersistenceGroup")); //$NON-NLS-1$ + persistenceGroup.add(new Option("persistent", //$NON-NLS-1$ + Messages.getString("Main.Persistent")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + persistent = true; + } + }); + persistenceGroup.add(new Option("directory", //$NON-NLS-1$ + Messages.getString("Main.Directory"), //$NON-NLS-1$ + Messages.getString("Main.DirectoryArgument")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + directory = argument; + } + }); + parser.add(persistenceGroup); + + OptionGroup debuggingGroup + = new OptionGroup(Messages.getString("Main.DebugGroup")); //$NON-NLS-1$ + debuggingGroup.add(new Option("verbose", //$NON-NLS-1$ + Messages.getString ("Main.Verbose")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + ActivationSystemTransient.debug = true; + } + }); + parser.add(debuggingGroup); + + return parser; + } + + private void run(String[] args) + { + Parser p = initializeParser(); + p.parse(args); + + try + { + if (!stop) + { + // Start the system. + File dataDirectory = new File(directory); + if (!dataDirectory.exists()) + dataDirectory.mkdirs(); + ActivationSystem system; + + if (!persistent) + system = ActivationSystemTransient.getInstance(); + else + system = ActivationSystemImpl.getInstance(dataDirectory, cold); + + // We must export with the specific activation id that is only + // possible when going into the gnu.java.rmi.activation. + UnicastServerRef sref = new UnicastServerRef( + new ObjID(ObjID.ACTIVATOR_ID), ACTIVATION_REGISTRY_PORT, + ACTIVATION_REGISTY_SOCKET_FACTORY); + Remote systemStub = sref.exportObject(system); + + // Start the naming system on the activation system port + // (if not already running). + + Registry r; + try + { + // Expect the naming service running first. + // The local host may want to use the shared registry + r = LocateRegistry.getRegistry(ACTIVATION_REGISTRY_PORT); + r.rebind(ACTIVATION_SYSTEM_NAME, systemStub); + } + catch (Exception ex) + { + // The naming service is not running. Start it. + r = LocateRegistry.createRegistry(ACTIVATION_REGISTRY_PORT); + r.rebind(ACTIVATION_SYSTEM_NAME, systemStub); + } + String host = InetAddress.getLocalHost().getCanonicalHostName(); + System.out.println("The RMI daemon is listening on " + host + + " (port " + + ACTIVATION_REGISTRY_PORT + ")"); + + } + else + { + // Stop the activation system. + Registry r; + try + { + System.out.print("Stopping RMI daemon at " + + ACTIVATION_REGISTRY_PORT+" ... "); + // Expect the naming service running first. + // The local host may want to use the shared registry + r = LocateRegistry.getRegistry(ACTIVATION_REGISTRY_PORT); + ActivationSystem asys = + (ActivationSystem) r.lookup(ACTIVATION_SYSTEM_NAME); + asys.shutdown(); + System.out.println("OK."); + } + catch (Exception ex) + { + System.out.println("The RMI daemon seems not running at " + + ACTIVATION_REGISTRY_PORT); + if (ActivationSystemTransient.debug) + ex.printStackTrace(); + } + } + } + catch (Exception e) + { + System.out.println("Failed to start the RMI daemon."); + if (ActivationSystemTransient.debug) + e.printStackTrace(); + } + } + + /** + * The activation system entry point. + */ + public static void main(String[] args) + { + Main rmidprogram = new Main(); + try + { + rmidprogram.run(args); + } + catch (Exception e) + { + System.err.println(Messages.getString("Main.InternalError")); //$NON-NLS-1$ + e.printStackTrace(System.err); + System.exit(1); + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmid/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/Messages.java new file mode 100644 index 00000000000..4365c6de7ca --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/Messages.java @@ -0,0 +1,67 @@ +/* Messages.java -- localization support for rmid + 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 gnu.classpath.tools.rmid; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class Messages +{ + private static final String BUNDLE_NAME + = "gnu.classpath.tools.rmid.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE + = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() + { + } + + public static String getString(String key) + { + try + { + return RESOURCE_BUNDLE.getString(key); + } + catch (MissingResourceException e) + { + return '!' + key + '!'; + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java new file mode 100644 index 00000000000..d213373d5ff --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java @@ -0,0 +1,269 @@ +/* PersistentBidiHasthable.java -- Bidirectional persistent hash table. + 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 gnu.classpath.tools.rmid; + +import gnu.classpath.tools.common.Persistent; +import gnu.classpath.tools.rmid.ActivationSystemImpl; +import gnu.java.rmi.activation.BidiTable; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Map; +import java.util.TimerTask; + +/** + * The persistent bidirectional hash table, maps both a to b and b to a. The + * changes are written to dist after SAVE_AT_MOST_AFTER time from the latest + * database change or at most after ALWAYS_UPDATE, if the database is updated + * very frequently. To ensure that no information is lost, the shutdown method + * must be called before exit. + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) + */ +public class PersistentBidiHashTable extends BidiTable implements + Persistent +{ + class WriteToDiskTask extends TimerTask + { + /** + * Save the database. + */ + public void run() + { + writeContent(); + sheduled = null; + } + } + + /** + * Replaces instances of ActivationSystemImpl into the currently active + * instance of the ActivationSystemImpl + */ + class AdaptedReader extends ObjectInputStream + { + AdaptedReader(InputStream in) throws IOException + { + super(in); + enableResolveObject(true); + } + + protected Object resolveObject(Object obj) throws IOException + { + if (obj instanceof ActivationSystemImpl) + return ActivationSystemImpl.singleton2; + else + return obj; + } + } + + /** + * The database file. + */ + File database; + + /** + * The currently sheduled write to disk task, null if none. + */ + WriteToDiskTask sheduled = null; + + /** + * The time, when the disk database was last updated. + */ + long lastUpdated; + + /** + * Create the unitialised instance that must be initalised when + * ActivationSystemImpl.singleton2 is assigned. + */ + public PersistentBidiHashTable() + { + // Do not initalise the table fields - the initalise method must be + // called later. + super(0); + } + + /** + * Create a new persistent table that stores its information into the given + * file. The ActivationSystemImpl.singleton2 must be assigned. + * + * @param file + * the file, where the table stores its information. + * @param coldStart + * if true, the existing file with this name will be erased and + * ignored. Otherwise, it will be assumed that the file contains the + * persistent table information. + */ + public void init(File file, boolean coldStart) + { + try + { + database = file; + if (database.exists()) + { + if (coldStart) + { + k2v = new Hashtable(); + v2k = new Hashtable(); + database.delete(); + } + else + { + FileInputStream fi = new FileInputStream(file); + BufferedInputStream b = new BufferedInputStream(fi); + ObjectInputStream oin = new AdaptedReader(b); + + k2v = (Map) oin.readObject(); + oin.close(); + + v2k = new Hashtable(k2v.size()); + + // Reguild v2k from k2v: + Iterator en = k2v.keySet().iterator(); + Object key; + while (en.hasNext()) + { + key = en.next(); + v2k.put(k2v.get(key), key); + } + } + } + else + { + k2v = new Hashtable(); + v2k = new Hashtable(); + } + } + catch (Exception ioex) + { + InternalError ierr = new InternalError("Unable to intialize with file " + + file); + ierr.initCause(ioex); + throw ierr; + } + } + + /** + * Write the database content to the disk. + */ + public synchronized void writeContent() + { + try + { + FileOutputStream fou = new FileOutputStream(database); + BufferedOutputStream b = new BufferedOutputStream(fou); + ObjectOutputStream oout = new ObjectOutputStream(b); + oout.writeObject(k2v); + oout.close(); + } + catch (Exception ioex) + { + InternalError ierr = new InternalError( + "Failed to write database to disk: " + + database); + ierr.initCause(ioex); + throw ierr; + } + } + + /** + * Mark the modified database as modified. The database will be written after + * several seconds, unless another modification occurs. + */ + public void markDirty() + { + if (System.currentTimeMillis() - lastUpdated > ALWAYS_UPDATE) + { + // Force storing to disk under intensive operation. + writeContent(); + lastUpdated = System.currentTimeMillis(); + if (sheduled != null) + { + sheduled.cancel(); + sheduled = null; + } + } + else + { + // Otherwise coalesce the disk database copy update events. + if (sheduled != null) + sheduled.cancel(); + sheduled = new WriteToDiskTask(); + timer.schedule(sheduled, SAVE_AT_MOST_AFTER); + } + } + + /** + * Save the current database state to the disk before exit. + */ + public void shutdown() + { + if (sheduled != null) + { + writeContent(); + sheduled = null; + } + } + + /** + * Update the memory maps and mark as should be written to the disk. + */ + public void put(Object key, Object value) + { + super.put(key, value); + markDirty(); + } + + /** + * Update the memory maps and mark as should be written to the disk. + */ + public void removeKey(Object key) + { + super.removeKey(key); + markDirty(); + } + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java new file mode 100644 index 00000000000..e5c41930de1 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java @@ -0,0 +1,232 @@ +/* Main.java -- RMI registry starter. + 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 gnu.classpath.tools.rmiregistry; + +import gnu.classpath.tools.common.ClasspathToolParser; +import gnu.classpath.tools.getopt.FileArgumentCallback; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.OptionGroup; +import gnu.classpath.tools.getopt.Parser; +import gnu.classpath.tools.rmiregistry.RegistryImpl; +import gnu.java.rmi.server.UnicastServerRef; + +import java.io.File; +import java.rmi.NotBoundException; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.ObjID; +import java.rmi.server.RMIServerSocketFactory; +import java.util.Hashtable; +import java.util.Map; + +/** + * The optionally persistent RMI registry implementation. + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) + */ +public class Main +{ + /** + * The stop command. + */ + public static String STOP = "gnu.classpath.tools.rmi.registry.command.STOP"; + + /** + * If true, the registry prints registration events to console. + */ + public static boolean verbose = false; + + /** + * Parsed parameters. + */ + private String directory = "."; + private boolean cold = false; + private boolean persistent = false; + private boolean stop = false; + private int port = Registry.REGISTRY_PORT; + private RMIServerSocketFactory ssf = null; + + private Parser initializeParser() + { + Parser parser = new ClasspathToolParser("rmiregistry", true); //$NON-NLS-1$ + parser.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$ + + OptionGroup controlGroup + = new OptionGroup(Messages.getString("Main.ControlGroup")); //$NON-NLS-1$ + controlGroup.add(new Option("restart", //$NON-NLS-1$ + Messages.getString("Main.Restart")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + cold = true; + } + }); + controlGroup.add(new Option("stop", //$NON-NLS-1$ + Messages.getString("Main.Stop")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + stop = true; + } + }); + parser.add(controlGroup); + + OptionGroup persistenceGroup + = new OptionGroup(Messages.getString("Main.PersistenceGroup")); //$NON-NLS-1$ + persistenceGroup.add(new Option("persistent", //$NON-NLS-1$ + Messages.getString("Main.Persistent")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + persistent = true; + } + }); + persistenceGroup.add(new Option("directory", //$NON-NLS-1$ + Messages.getString("Main.Directory"), //$NON-NLS-1$ + Messages.getString("Main.DirectoryArgument")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + directory = argument; + } + }); + parser.add(persistenceGroup); + + OptionGroup debuggingGroup + = new OptionGroup(Messages.getString("Main.DebugGroup")); //$NON-NLS-1$ + debuggingGroup.add(new Option("verbose", //$NON-NLS-1$ + Messages.getString ("Main.Verbose")) //$NON-NLS-1$ + { + public void parsed(String argument) throws OptionException + { + verbose = true; + } + }); + parser.add(debuggingGroup); + + return parser; + } + + private void run(String[] args) + { + Parser p = initializeParser(); + p.parse(args, new FileArgumentCallback() + { + public void notifyFile(String portArgument) + { + port = Integer.parseInt(portArgument); + } + }); + + if (!stop) + { + Map table; + if (!persistent) + table = new Hashtable(); + else + { + // Start the system. + File dataDirectory = new File(directory); + if (!dataDirectory.exists()) + dataDirectory.mkdirs(); + table = PersistentHashTable.createInstance( + new File(dataDirectory, "rmiregistry.data"), cold); + } + + RegistryImpl system = new RegistryImpl(table); + + // We must export with the specific activation id that is only + // possible when going into the gnu.java.rmi + try + { + UnicastServerRef sref = new UnicastServerRef( + new ObjID(ObjID.REGISTRY_ID), port, ssf); + + sref.exportObject(system); + System.out.println("The RMI naming service is listening at " + port); + } + catch (Exception ex) + { + System.out.println("Failed to start RMI naming service at " + port); + } + } + else + { + // Stop the naming service. + try + { + Registry r = LocateRegistry.getRegistry(port); + // Search for this specific line will command to stop the registry. + + // Our service returns null, but any other service will thrown + // NotBoundException. + r.unbind(STOP); + } + catch (RemoteException e) + { + System.out.println("Failed to stop RMI naming service at " + port); + } + catch (NotBoundException e) + { + System.out.println("The naming service at port " + port + " is not a " + + Main.class.getName()); + } + } + } + + /** + * The RMI registry implementation entry point. + */ + public static void main(String[] args) + { + Main rmiregistryprogram = new Main(); + try + { + rmiregistryprogram.run(args); + } + catch (Exception e) + { + System.err.println(Messages.getString("Main.InternalError")); //$NON-NLS-1$ + e.printStackTrace(System.err); + System.exit(1); + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Messages.java new file mode 100644 index 00000000000..05bfcf62d23 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Messages.java @@ -0,0 +1,67 @@ +/* Messages.java -- localization support for rmiregistry + 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 gnu.classpath.tools.rmiregistry; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class Messages +{ + private static final String BUNDLE_NAME + = "gnu.classpath.tools.rmiregistry.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE + = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() + { + } + + public static String getString(String key) + { + try + { + return RESOURCE_BUNDLE.getString(key); + } + catch (MissingResourceException e) + { + return '!' + key + '!'; + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java new file mode 100644 index 00000000000..89d66ce4ad7 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java @@ -0,0 +1,262 @@ +/* PersistentHasthable.java -- Persistent hash table. + 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 gnu.classpath.tools.rmiregistry; + +import gnu.classpath.tools.common.Persistent; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.util.Hashtable; +import java.util.Map; +import java.util.TimerTask; + +/** + * The persistent hash table. The changes are written to dist after + * SAVE_AT_MOST_AFTER time from the latest database change or at most after + * ALWAYS_UPDATE, if the database is updated very frequently. To ensure that no + * information is lost, the shutdown method must be called before exit. + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) + */ +public class PersistentHashTable + extends Hashtable + implements Serializable, Persistent +{ + + /** + * Use serialVersionUID for interoperability + */ + private static final long serialVersionUID = 1; + + class WriteToDiskTask extends TimerTask + { + /** + * Save the database. + */ + public void run() + { + writeContent(); + sheduled = null; + } + } + + /** + * The database file. + */ + File database; + + /** + * The currently sheduled write to disk task, null if none. + */ + WriteToDiskTask sheduled = null; + + /** + * The time, when the disk database was last updated. + */ + long lastUpdated; + + /** + * Setting to false prevents the automated disk update. + * The initial value is true to prevent writing while reading and is set + * to false in createInstance. + */ + transient boolean ready; + + /** + * Use static method to obtain the instance. + */ + private PersistentHashTable(File file) + { + if (file == null) + throw new NullPointerException("Null file provided"); + database = file; + } + + /** + * Create a new persistent table that stores its information into the given + * file. + * + * @param file + * the file, where the table stores its information. + * @param coldStart + * if true, the existing file with this name will be erased and + * ignored. Otherwise, it will be assumed that the file contains the + * persistent table information. + */ + public static Map createInstance(File file, boolean coldStart) + { + try + { + PersistentHashTable k2v; + System.out.println ("Here1"); + if (file.exists()) + { + System.out.println ("Here2"); + if (coldStart) + { + System.out.println ("Here2.5"); + file.delete(); + k2v = new PersistentHashTable(file); + } + else + { + System.out.println ("Here3"); + FileInputStream fi = new FileInputStream(file); + System.out.println ("Here3.1"); + BufferedInputStream b = new BufferedInputStream(fi); + System.out.println ("Here3.2"); + ObjectInputStream oin = new ObjectInputStream(b); + System.out.println ("Here3.3"); + + System.out.println ("Here4"); + k2v = (PersistentHashTable) oin.readObject(); + oin.close(); + System.out.println ("Here5"); + } + } + else + { + System.out.println ("Here6"); + k2v = new PersistentHashTable(file); + System.out.println ("Here7"); + } + + System.out.println ("Here8"); + k2v.ready = true; + return k2v; + } + catch (Exception ioex) + { + InternalError ierr = new InternalError("Unable to intialize with file " + + file); + ierr.initCause(ioex); + throw ierr; + } + } + + + /** + * Write the database content to the disk. + */ + public synchronized void writeContent() + { + try + { + FileOutputStream fou = new FileOutputStream(database); + BufferedOutputStream b = new BufferedOutputStream(fou); + ObjectOutputStream oout = new ObjectOutputStream(b); + oout.writeObject(this); + oout.close(); + } + catch (Exception ioex) + { + InternalError ierr = new InternalError( + "Failed to write database to disk: "+ database); + ierr.initCause(ioex); + throw ierr; + } + } + + /** + * Mark the modified database as modified. The database will be written after + * several seconds, unless another modification occurs. + */ + public void markDirty() + { + if (System.currentTimeMillis() - lastUpdated > ALWAYS_UPDATE) + { + // Force storing to disk under intensive operation. + writeContent(); + lastUpdated = System.currentTimeMillis(); + if (sheduled != null) + { + sheduled.cancel(); + sheduled = null; + } + } + else + { + // Otherwise coalesce the disk database copy update events. + if (sheduled != null) + sheduled.cancel(); + sheduled = new WriteToDiskTask(); + timer.schedule(sheduled, SAVE_AT_MOST_AFTER); + } + } + + /** + * Save the current database state to the disk before exit. + */ + public void shutdown() + { + if (sheduled != null) + { + writeContent(); + sheduled = null; + } + } + + /** + * Update the memory maps and mark as should be written to the disk. + */ + public Object put(Object key, Object value) + { + super.put(key, value); + if (ready) + markDirty(); + return value; + } + + /** + * Update the memory maps and mark as should be written to the disk. + */ + public Object remove(Object key) + { + Object removed = super.remove(key); + if (ready) + markDirty(); + return removed; + } + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java new file mode 100644 index 00000000000..b93d3c1169e --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java @@ -0,0 +1,138 @@ +/* RegistryImpl.java -- the RMI registry implementation + Copyright (c) 1996, 1997, 1998, 1999, 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 gnu.classpath.tools.rmiregistry; + +import gnu.classpath.tools.common.Persistent; + +import java.rmi.AccessException; +import java.rmi.AlreadyBoundException; +import java.rmi.NotBoundException; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.registry.Registry; +import java.util.ArrayList; +import java.util.Map; + +/** + * The optionally persistent registry implementation. + * + * @author Audrius Meskauskas (audriusa@bioinformatics.org) + */ +public class RegistryImpl implements Registry +{ + /** + * The binding table. + */ + Map bindings; + + /** + * Create the registry implementation that uses the given bidirectinal + * table to keep the data. + */ + public RegistryImpl(Map aTable) + { + bindings = aTable; + } + + /** @inheritDoc */ + public Remote lookup(String name) throws RemoteException, NotBoundException, + AccessException + { + Object obj = bindings.get(name); + if (obj == null) + throw new NotBoundException(name); + return ((Remote) obj); + } + + /** @inheritDoc */ + public void bind(String name, Remote obj) throws RemoteException, + AlreadyBoundException, AccessException + { + if (Main.verbose) + System.out.println("Bind "+name); + if (bindings.containsKey(name)) + throw new AlreadyBoundException(name); + bindings.put(name, obj); + } + + /** @inheritDoc */ + public void unbind(String name) throws RemoteException, NotBoundException, + AccessException + { + if (name.equals(Main.STOP)) + { + if (bindings instanceof Persistent) + ((Persistent) bindings).writeContent(); + // Terminate in 10 seconds. + System.out.println("Shutdown command received. Will terminate in 10 s"); + Persistent.timer.schedule(new Persistent.ExitTask(), 10000); + } + else + { + if (Main.verbose) + System.out.println("Unbind "+name); + + if (!bindings.containsKey(name)) + throw new NotBoundException(name); + else + bindings.remove(name); + } + } + + /** @inheritDoc */ + public void rebind(String name, Remote obj) throws RemoteException, + AccessException + { + if (Main.verbose) + System.out.println("Rebind "+name); + bindings.put(name, obj); + } + + /** @inheritDoc */ + public String[] list() throws RemoteException, AccessException + { + // Create a separated array to prevent race conditions. + ArrayList keys = new ArrayList(bindings.keySet()); + int n = keys.size(); + String[] rt = new String[n]; + for (int i = 0; i < n; i++) + rt[i] = (String) keys.get(i); + return rt; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java new file mode 100644 index 00000000000..5150debd1de --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java @@ -0,0 +1,278 @@ +/* RegistryImpl_Skel.java + Copyright (C) 2002, 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 gnu.classpath.tools.rmiregistry; + +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.rmi.MarshalException; +import java.rmi.Remote; +import java.rmi.UnmarshalException; +import java.rmi.server.Operation; +import java.rmi.server.RemoteCall; +import java.rmi.server.SkeletonMismatchException; + +/** + * This skeleton supports unlikely cases when the naming service is + * contacted from other interoperable java implementation that still uses + * the old style skeleton-dependent invocations. + */ +public final class RegistryImpl_Skel + implements java.rmi.server.Skeleton +{ + private static final long interfaceHash = 4905912898345647071L; + + /** + * Repeated multiple times. + */ + static final String EUM = "error unmarshalling arguments for Registry"; + + /** + * Repeated multiple times. + */ + static final String EMR = "error marshalling return from Registry"; + + private static final Operation[] operations = + { + new Operation("void bind(java.lang.String, Remote"), + new Operation("java.lang.String[] list("), + new Operation("Remote lookup(java.lang.String"), + new Operation("void rebind(java.lang.String, Remote"), + new Operation("void unbind(java.lang.String") + }; + + public Operation[] getOperations() + { + return ((Operation[]) operations.clone()); + } + + public void dispatch(Remote obj, RemoteCall call, + int opnum, long hash) throws java.lang.Exception + { + if (opnum < 0) + { + if (hash == 7583982177005850366L) + opnum = 0; + else if (hash == 2571371476350237748L) + opnum = 1; + else if (hash == -7538657168040752697L) + opnum = 2; + else if (hash == -8381844669958460146L) + opnum = 3; + else if (hash == 7305022919901907578L) + opnum = 4; + else + throw new SkeletonMismatchException("interface hash mismatch"); + } + else if (hash != interfaceHash) + throw new SkeletonMismatchException("interface hash mismatch"); + + RegistryImpl server = (RegistryImpl) obj; + switch (opnum) + { + case 0: + { + java.lang.String $param_0; + Remote $param_1; + try + { + ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String) in.readObject(); + $param_1 = (Remote) in.readObject(); + + } + catch (IOException e) + { + throw new UnmarshalException(EUM, e); + } + catch (java.lang.ClassCastException e) + { + throw new UnmarshalException(EUM, e); + } + finally + { + call.releaseInputStream(); + } + server.bind($param_0, $param_1); + try + { + ObjectOutput out = call.getResultStream(true); + } + catch (IOException e) + { + throw new MarshalException(EMR, e); + } + break; + } + + case 1: + { + try + { + ObjectInput in = call.getInputStream(); + + } + catch (IOException e) + { + throw new UnmarshalException(EUM, e); + } + finally + { + call.releaseInputStream(); + } + java.lang.String[] $result = server.list(); + try + { + ObjectOutput out = call.getResultStream(true); + out.writeObject($result); + } + catch (IOException e) + { + throw new MarshalException(EMR, e); + } + break; + } + + case 2: + { + java.lang.String $param_0; + try + { + ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String) in.readObject(); + + } + catch (IOException e) + { + throw new UnmarshalException(EUM, e); + } + catch (java.lang.ClassCastException e) + { + throw new UnmarshalException(EUM, e); + } + finally + { + call.releaseInputStream(); + } + Remote $result = server.lookup($param_0); + try + { + ObjectOutput out = call.getResultStream(true); + out.writeObject($result); + } + catch (IOException e) + { + throw new MarshalException(EMR, e); + } + break; + } + + case 3: + { + java.lang.String $param_0; + Remote $param_1; + try + { + ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String) in.readObject(); + $param_1 = (Remote) in.readObject(); + + } + catch (IOException e) + { + throw new UnmarshalException(EUM, e); + } + catch (java.lang.ClassCastException e) + { + throw new UnmarshalException(EUM, e); + } + finally + { + call.releaseInputStream(); + } + server.rebind($param_0, $param_1); + try + { + ObjectOutput out = call.getResultStream(true); + } + catch (IOException e) + { + throw new MarshalException(EMR, e); + } + break; + } + + case 4: + { + java.lang.String $param_0; + try + { + ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String) in.readObject(); + + } + catch (IOException e) + { + throw new UnmarshalException(EUM, e); + } + catch (java.lang.ClassCastException e) + { + throw new UnmarshalException(EUM, e); + } + finally + { + call.releaseInputStream(); + } + server.unbind($param_0); + try + { + ObjectOutput out = call.getResultStream(true); + } + catch (IOException e) + { + throw new MarshalException(EMR, e); + } + break; + } + + default: + throw new UnmarshalException("invalid method number"); + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java new file mode 100644 index 00000000000..94d35e92fb3 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java @@ -0,0 +1,263 @@ +/* RegistryImpl_Stub.java -- Registry stub. + 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 gnu.classpath.tools.rmiregistry; + +import java.rmi.AccessException; +import java.rmi.AlreadyBoundException; +import java.rmi.NotBoundException; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.registry.Registry; + +import java.lang.reflect.Method; +import java.rmi.server.RemoteRef; +import java.rmi.server.RemoteStub; +import java.rmi.UnexpectedException; + +/** + * This class delegates its method calls to the remote RMI object, referenced + * by {@link RemoteRef}. + * + * It is normally generated with rmic. + */ +public final class RegistryImpl_Stub + extends RemoteStub + implements Registry +{ + /** + * Use serialVersionUID for interoperability + */ + private static final long serialVersionUID = 3; + + /** + * The explaining message for {@ling UnexpectedException}. + */ + private static final String exception_message = + "undeclared checked exception"; + + /* All remote methods, invoked by this stub: */ + private static final Method met_list; + private static final Method met_rebind; + private static final Method met_unbind; + private static final Method met_lookup; + private static final Method met_bind; + private static final Object[] NO_ARGS = new Object[0]; + static + { + final Class[] NO_ARGSc = new Class[0]; + try + { + met_list = + Registry.class.getMethod("list", NO_ARGSc); + met_rebind = + Registry.class.getMethod("rebind", new Class[] + { + String.class, Remote.class + }); + met_unbind = + Registry.class.getMethod("unbind", new Class[] + { + String.class + }); + met_lookup = + Registry.class.getMethod("lookup", new Class[] + { + String.class + }); + met_bind = + Registry.class.getMethod("bind", new Class[] + { + String.class, Remote.class + }); + + } + catch (NoSuchMethodException nex) + { + NoSuchMethodError err = new NoSuchMethodError( + "RegistryImpl_Stub class initialization failed"); + err.initCause(nex); + throw err; + } + } + + /** + * Create the instance for _RegistryImpl_Stub that forwards method calls to the + * remote object. + * + * @para the reference to the remote object. + */ + public RegistryImpl_Stub(RemoteRef reference) + { + super(reference); + } + + /* Methods */ + /** @inheritDoc */ + public String [] list() + throws RemoteException, AccessException + { + try + { + Object result = ref.invoke(this, met_list, + NO_ARGS, + 2571371476350237748L); + return (String []) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void rebind(String p0, Remote p1) + throws RemoteException, AccessException + { + try + { + ref.invoke(this, met_rebind, + new Object[] {p0, p1}, + -8381844669958460146L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void unbind(String p0) + throws RemoteException, NotBoundException, AccessException + { + try + { + ref.invoke(this, met_unbind, + new Object[] {p0}, + 7305022919901907578L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public Remote lookup(String p0) + throws RemoteException, NotBoundException, AccessException + { + try + { + Object result = ref.invoke(this, met_lookup, + new Object[] {p0}, + -7538657168040752697L); + return (Remote) result; + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + /** @inheritDoc */ + public void bind(String p0, Remote p1) + throws RemoteException, AlreadyBoundException, AccessException + { + try + { + ref.invoke(this, met_bind, + new Object[] {p0, p1}, + 7583982177005850366L); + } + catch (RuntimeException e) + { + throw e; + } + catch (RemoteException e) + { + throw e; + } + catch (Exception e) + { + UnexpectedException uex = new UnexpectedException(exception_message); + uex.detail = e; + throw uex; + } + } + + +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java b/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java index b5a12ec927b..21e0a805a6f 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java +++ b/libjava/classpath/tools/gnu/classpath/tools/serialver/SerialVer.java @@ -21,7 +21,7 @@ package gnu.classpath.tools.serialver; -import gnu.classpath.tools.getopt.ClasspathToolParser; +import gnu.classpath.tools.common.ClasspathToolParser; import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; diff --git a/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java b/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java new file mode 100644 index 00000000000..460b7818532 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java @@ -0,0 +1,117 @@ +/* Main.java -- Transient GIOP naming service. + 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 gnu.classpath.tools.tnameserv; + +import gnu.CORBA.NamingService.NamingServiceTransient; +import gnu.classpath.tools.common.ClasspathToolParser; +import gnu.classpath.tools.getopt.FileArgumentCallback; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; +import gnu.classpath.tools.getopt.OptionGroup; +import gnu.classpath.tools.getopt.Parser; + +/** + * The implementation of the transient naming service. The naming service + * is a kind of the network server that registers local and remote objects + * by name, and later can provide the object reference in response to the + * given name. + * + * GNU Classpath currently works with this naming service and is also + * interoperable with the Sun Microsystems naming services from releases 1.3 and + * 1.4, both transient tnameserv and persistent orbd. + * + * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) + */ +public class Main +{ + private int port = -1; + private String iorf; + + private Parser initializeParser() + { + Parser parser = new ClasspathToolParser("tnameserv", true); //$NON-NLS-1$ + parser.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$ + + parser.add(new Option("ORBInitialPort", //$NON-NLS-1$ + Messages.getString("Main.ORBInitialPort"), //$NON-NLS-1$ + Messages.getString("Main.Port")) //$NON-NLS-1$ + { + public void parsed(String portArgument) throws OptionException + { + port = Integer.parseInt(portArgument); + } + }); + + parser.add(new Option("ior", //$NON-NLS-1$ + Messages.getString("Main.IOR"), //$NON-NLS-1$ + Messages.getString("Main.IORFile")) //$NON-NLS-1$ + { + public void parsed(String fileArgument) throws OptionException + { + iorf = fileArgument; + } + }); + + return parser; + } + + private void run(String[] args) + { + Parser p = initializeParser(); + p.parse(args); + NamingServiceTransient.start(port, iorf); + } + + /** + * The naming service entry point. + */ + public static void main(String[] args) + { + Main tnameservprogram = new Main(); + try + { + tnameservprogram.run(args); + } + catch (Exception e) + { + System.err.println(Messages.getString("Main.InternalError")); //$NON-NLS-1$ + e.printStackTrace(System.err); + System.exit(1); + } + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Messages.java new file mode 100644 index 00000000000..505397302b4 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Messages.java @@ -0,0 +1,67 @@ +/* Messages.java -- localization support for tnameserv + 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 gnu.classpath.tools.tnameserv; + +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +public class Messages +{ + private static final String BUNDLE_NAME + = "gnu.classpath.tools.tnameserv.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE + = ResourceBundle.getBundle(BUNDLE_NAME); + + private Messages() + { + } + + public static String getString(String key) + { + try + { + return RESOURCE_BUNDLE.getString(key); + } + catch (MissingResourceException e) + { + return '!' + key + '!'; + } + } +} diff --git a/libjava/classpath/tools/gorbd.in b/libjava/classpath/tools/gorbd.in new file mode 100644 index 00000000000..ab1a19a8602 --- /dev/null +++ b/libjava/classpath/tools/gorbd.in @@ -0,0 +1,47 @@ +#!/bin/sh + +## Copyright (C) 2006 Free Software Foundation, Inc. +## +## This file is a 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 of the License, 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; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, 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. +## +## +## A simple shell script to launch the GNU Classpath orbd tool. +## + +prefix=@prefix@ +tools_dir=@datadir@/@PACKAGE@ +tools_cp=${tools_dir}/tools.zip + +exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.orbd.Main "$@" diff --git a/libjava/classpath/tools/grmic.in b/libjava/classpath/tools/grmic.in new file mode 100644 index 00000000000..eabce0e498c --- /dev/null +++ b/libjava/classpath/tools/grmic.in @@ -0,0 +1,47 @@ +#!/bin/sh + +## Copyright (C) 2006 Free Software Foundation, Inc. +## +## This file is a 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 of the License, 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; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, 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. +## +## +## A simple shell script to launch the GNU Classpath rmic tool. +## + +prefix=@prefix@ +tools_dir=@datadir@/@PACKAGE@ +tools_cp=${tools_dir}/tools.zip + +exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmic.Main "$@" diff --git a/libjava/classpath/tools/grmid.in b/libjava/classpath/tools/grmid.in new file mode 100644 index 00000000000..aa4e1432ad1 --- /dev/null +++ b/libjava/classpath/tools/grmid.in @@ -0,0 +1,47 @@ +#!/bin/sh + +## Copyright (C) 2006 Free Software Foundation, Inc. +## +## This file is a 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 of the License, 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; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, 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. +## +## +## A simple shell script to launch the GNU Classpath rmid tool. +## + +prefix=@prefix@ +tools_dir=@datadir@/@PACKAGE@ +tools_cp=${tools_dir}/tools.zip + +exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmid.Main "$@" diff --git a/libjava/classpath/tools/grmiregistry.in b/libjava/classpath/tools/grmiregistry.in new file mode 100644 index 00000000000..5e2798fd3ad --- /dev/null +++ b/libjava/classpath/tools/grmiregistry.in @@ -0,0 +1,47 @@ +#!/bin/sh + +## Copyright (C) 2006 Free Software Foundation, Inc. +## +## This file is a 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 of the License, 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; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, 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. +## +## +## A simple shell script to launch the GNU Classpath rmiregistry tool. +## + +prefix=@prefix@ +tools_dir=@datadir@/@PACKAGE@ +tools_cp=${tools_dir}/tools.zip + +exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmiregistry.Main "$@" diff --git a/libjava/classpath/tools/gtnameserv.in b/libjava/classpath/tools/gtnameserv.in new file mode 100644 index 00000000000..c8e7484f6ff --- /dev/null +++ b/libjava/classpath/tools/gtnameserv.in @@ -0,0 +1,47 @@ +#!/bin/sh + +## Copyright (C) 2006 Free Software Foundation, Inc. +## +## This file is a 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 of the License, 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; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, 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. +## +## +## A simple shell script to launch the GNU Classpath tnameserv tool. +## + +prefix=@prefix@ +tools_dir=@datadir@/@PACKAGE@ +tools_cp=${tools_dir}/tools.zip + +exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.tnameserv.Main "$@" diff --git a/libjava/classpath/tools/toolwrapper.c b/libjava/classpath/tools/toolwrapper.c index 9ad14ac6d1b..41c07c690b8 100644 --- a/libjava/classpath/tools/toolwrapper.c +++ b/libjava/classpath/tools/toolwrapper.c @@ -37,6 +37,7 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ #include +#include #include #include #include "config.h" @@ -51,6 +52,9 @@ union env_union JNIEnv *jni_env; }; +/* Typedef for JNI_CreateJavaVM dlopen call. */ +typedef jint createVM (JavaVM **, void **, void *); + int main (int argc, const char** argv) { @@ -68,6 +72,10 @@ main (int argc, const char** argv) int non_vm_argc; int i; int classpath_found = 0; + /* Variables for JNI_CreateJavaVM dlopen call. */ + lt_dlhandle libjvm_handle = NULL; + createVM* libjvm_create = NULL; + int libjvm_error = 0; env = NULL; jvm = NULL; @@ -128,7 +136,7 @@ main (int argc, const char** argv) goto destroy; } - vm_args.options[vm_args.nOptions++].optionString = "-Djava.class.path=" TOOLS_ZIP; + vm_args.options[vm_args.nOptions++].optionString = "-Xbootclasspath/p:" TOOLS_ZIP; } /* Terminate vm_args.options with a NULL element. */ @@ -152,7 +160,27 @@ main (int argc, const char** argv) vm_args.version = JNI_VERSION_1_2; vm_args.ignoreUnrecognized = JNI_TRUE; - result = JNI_CreateJavaVM (&jvm, &tmp.void_env, &vm_args); + /* dlopen libjvm.so */ + libjvm_error = lt_dlinit (); + if (libjvm_error) + { + fprintf (stderr, TOOLNAME ": lt_dlinit failed.\n"); + goto destroy; + } + + libjvm_handle = lt_dlopenext (LIBJVM); + if (!libjvm_handle) + { + fprintf (stderr, TOOLNAME ": failed to open " LIBJVM "\n"); + goto destroy; + } + libjvm_create = (createVM*) lt_dlsym (libjvm_handle, "JNI_CreateJavaVM"); + if (!libjvm_create) + { + fprintf (stderr, TOOLNAME ": failed to load JNI_CreateJavaVM symbol from " LIBJVM "\n"); + goto destroy; + } + result = (*libjvm_create) (&jvm, &tmp.void_env, &vm_args); if (result < 0) { @@ -216,5 +244,15 @@ main (int argc, const char** argv) (*jvm)->DestroyJavaVM (jvm); } + /* libltdl cleanup */ + if (libjvm_handle) + { + if (lt_dlclose (libjvm_handle) != 0) + fprintf (stderr, TOOLNAME ": failed to close " LIBJVM "\n"); + } + + if (lt_dlexit () != 0) + fprintf (stderr, TOOLNAME ": lt_dlexit failed.\n"); + return 1; } diff --git a/libjava/classpath/vm/.cvsignore b/libjava/classpath/vm/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/vm/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/vm/reference/.cvsignore b/libjava/classpath/vm/reference/.cvsignore new file mode 100644 index 00000000000..282522db034 --- /dev/null +++ b/libjava/classpath/vm/reference/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java b/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java index e995c46341d..2214e757110 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java +++ b/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java @@ -1,5 +1,5 @@ /* VMStackWalker.java -- Reference implementation of VM hooks for stack access - Copyright (C) 2005 Free Software Foundation + Copyright (C) 2005, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -112,5 +112,20 @@ public final class VMStackWalker * is here to work around access permissions. */ public static native ClassLoader getClassLoader(Class cl); -} + /** + * Walk up the stack and return the first non-null class loader. + * If there aren't any non-null class loaders on the stack, return null. + */ + public static ClassLoader firstNonNullClassLoader() + { + Class[] stack = getClassContext(); + for (int i = 0; i < stack.length; i++) + { + ClassLoader loader = getClassLoader(stack[i]); + if (loader != null) + return loader; + } + return null; + } +} diff --git a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java index d4985bf2f2e..d8616063d19 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java +++ b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java @@ -199,7 +199,7 @@ public class VMVirtualMachine * @return an array of virtual machine methods */ public static native VMMethod[] getAllClassMethods (Class klass) - throws JdwpException; + { return null; } /** * A factory method for getting valid virtual machine methods @@ -213,7 +213,7 @@ public class VMVirtualMachine * @throws JdwpException for any other error */ public static native VMMethod getClassMethod(Class klass, long id) - throws JdwpException; + { return null; } /** * Returns the thread's call stack diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java index 193e3353517..43b9ae1a100 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java @@ -90,7 +90,7 @@ final class VMMemoryMXBeanImpl * information when memory is allocated and deallocated. The * format of the output is left up to the virtual machine. * - * @return true if verbose class loading output is on. + * @return true if verbose memory usage output is on. */ static native boolean isVerbose(); @@ -101,7 +101,7 @@ final class VMMemoryMXBeanImpl * may be called by multiple threads concurrently, but there * is only one global setting of verbosity that is affected. * - * @param verbose the new setting for verbose class loading + * @param verbose the new setting for verbose memory usage * output. */ static native void setVerbose(boolean verbose); diff --git a/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java b/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java dissimilarity index 72% index 76be558dcd4..916f9593087 100644 --- a/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java @@ -1,314 +1,512 @@ -/* VMPlainSocketImpl.java -- VM interface for default socket implementation - 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 gnu.java.net; - -import java.io.IOException; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.SocketAddress; -import java.net.SocketException; -import java.net.SocketImpl; -import java.net.SocketOptions; -import java.net.UnknownHostException; - -import gnu.classpath.Configuration; - -/** - * The VM interface for {@link gnu.java.net.PlainSocketImpl}. - * - * @author Ingo Proetel (proetel@aicas.com) - * @author Roman Kennke (kennke@aicas.com) - */ -public final class VMPlainSocketImpl -{ - /** - * Static initializer to load native library. - */ - static - { - if (Configuration.INIT_LOAD_LIBRARY) - { - System.loadLibrary("javanet"); - } - } - - /** - * Sets the specified option on a socket to the passed in object. - * The optionId parameter is one of the defined constants in - * the SocketImpl interface. - * - * @param socket the socket object - * @param optionId the identifier of the option - * @param value the value to set the option to - * - * @throws SocketException if an error occurs - */ - static native void setOption(PlainSocketImpl socket, int optionId, Object value) - throws SocketException; - - /** - * Returns the current setting of the specified option. The optionId - * is one of the defined constants in this interface. - * - * @param socket the socket object - * @param optionId the option identifier - * - * @return the current value of the option - * - * @throws SocketException ff an error occurs - */ - static native Object getOption(PlainSocketImpl socket, int optionId) - throws SocketException; - - /** - * Creates a new socket that is not bound to any local address/port and - * is not connected to any remote address/port. - * - * @param socket the socket object - * - * @throws IOException if something goes wrong while creating the socket - */ - static native void create(PlainSocketImpl socket) throws IOException; - - /** - * Connects to the remote address and port specified as arguments. - * - * @param socket the socket object - * @param addr the remote address to connect to - * @param port the remote port to connect to - * - * @throws IOException if an error occurs - */ - static native void connect(PlainSocketImpl socket, InetAddress addr, - int port) throws IOException; - - /** - * Binds to the specified port on the specified addr. Note that this addr - * must represent a local IP address. **** How bind to INADDR_ANY? **** - * - * @param socket the socket object - * @param addr the address to bind to - * @param port the port number to bind to - * - * @exception IOException If an error occurs - */ - static native void bind(PlainSocketImpl socket, InetAddress addr, int port) - throws IOException; - - /** - * Starts listening for connections on a socket. The queueLen parameter - * is how many pending connections will queue up waiting to be serviced - * before being accepted. If the queue of pending requests exceeds this - * number, additional connections will be refused. - * - * @param socket the socket object - * @param queueLen the length of the pending connection queue - * - * @exception IOException if an error occurs - */ - static native void listen(PlainSocketImpl socket, int queueLen) - throws IOException; - - /** - * Accepts a new connection on this socket. - * - * @param socket the socket object - * @param impl the socket object to accept this connection. - */ - static native void accept(PlainSocketImpl socket, SocketImpl impl) - throws IOException; - - /** - * Returns the number of bytes that the caller can read from this socket - * without blocking. - * - * @param socket the socket object - * - * @return the number of readable bytes before blocking - * - * @throws IOException If an error occurs - */ - static native int available(PlainSocketImpl socket) throws IOException; - - /** - * Closes the socket. This will cause any InputStream or OutputStream - * objects for this Socket to be closed as well. - * - *

      - * Note that if the SO_LINGER option is set on this socket, then the - * operation could block. - *

      - * - * @param socket the socket object - * - * @throws IOException if an error occurs - */ - static native void close(PlainSocketImpl socket) throws IOException; - - /** - * Internal method used by SocketInputStream for reading data from - * the connection. Reads up to len bytes of data into the buffer - * buf starting at offset bytes into the buffer. - * - * @param socket the socket object - * - * @return the actual number of bytes read or -1 if end of stream. - * - * @throws IOException if an error occurs - */ - static native int read(PlainSocketImpl socket, byte[] buf, int offset, - int len) throws IOException; - - /** - * Internal method used by SocketInputStream for reading data from - * the connection. Reads and returns one byte of data. - * - * @param socket the socket object - * - * @return read byte or -1 if end of stream. - * - * @throws IOException if an error occurs - */ - static int read(PlainSocketImpl socket) throws IOException - { - byte[] buf = new byte[1]; - if (read(socket, buf, 0, 1) > 0) - return buf[0] & 0xFF; - else - return -1; - } - - /** - * Internal method used by SocketOuputStream for writing data to - * the connection. Writes up to len bytes of data from the buffer - * buf starting at offset bytes into the buffer. - * - * @param socket the socket object - * @param buf the buffer to write to the stream - * @param offset the start offset in the buffer - * @param len the number of bytes to write - * - * @throws IOException if an error occurs - */ - static native void write(PlainSocketImpl socket, byte[] buf, int offset, - int len) throws IOException; - - /** - * Internal method used by SocketOuputStream for writing data to - * the connection. Writes exactly one byte to the socket. - * - * @param socket the socket object - * @param data the byte to write to the socket - * - * @throws IOException if an error occurs - */ - static void write(PlainSocketImpl socket, int data) - throws IOException - { - write(socket, new byte[]{ (byte) data }, 0, 1); - } - - /** - * Sets the input stream for this socket to the end of the stream. Any - * attempts to read more bytes from the stream will return an EOF. - * - * @param socket the socket object - * - * @throws IOException if I/O errors occur - */ - static native void shutdownInput(PlainSocketImpl socket) throws IOException; - - /** - * Disables the output stream for this socket. Any attempt to write more - * data to the socket will throw an IOException. - * - * @param socket the socket object - * - * @throws IOException if I/O errors occur - */ - static native void shutdownOutput(PlainSocketImpl socket) throws IOException; - - /** - * Connects to the remote socket address with a specified timeout. - * - * @param socket the socket object - * @param address the remote address to connect to - * @param timeout the timeout to use for this connect, 0 means infinite. - * - * @throws IOException if an error occurs - */ - static synchronized void connect(PlainSocketImpl socket, - SocketAddress address, int timeout) - throws IOException - { - InetSocketAddress sockAddr = (InetSocketAddress) address; - InetAddress addr = sockAddr.getAddress(); - - if (addr == null) - throw new UnknownHostException(sockAddr.getHostName()); - - int port = sockAddr.getPort(); - - if (timeout < 0) - throw new IllegalArgumentException("negative timeout"); - - Object oldTimeoutObj = null; - try - { - oldTimeoutObj = getOption(socket, SocketOptions.SO_TIMEOUT); - setOption(socket, SocketOptions.SO_TIMEOUT, new Integer(timeout)); - connect(socket, addr, port); - } - finally - { - if (oldTimeoutObj != null) - setOption(socket, SocketOptions.SO_TIMEOUT, oldTimeoutObj); - } - } - - /** - * Send one byte of urgent data over the socket. - * - * @param socket the socket object - * @param data the byte to send - */ - static void sendUrgendData(PlainSocketImpl socket, int data) - { - throw new InternalError ("PlainSocketImpl::sendUrgentData not implemented"); - } -} +/* VMPlainSocketImpl.java -- VM interface for default socket implementation + 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 gnu.java.net; + +import java.io.IOException; +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.net.SocketOptions; + +import gnu.classpath.Configuration; +import gnu.java.nio.VMChannel; + +/** + * The VM interface for {@link gnu.java.net.PlainSocketImpl}. + * + * @author Ingo Proetel (proetel@aicas.com) + * @author Roman Kennke (kennke@aicas.com) + */ +public final class VMPlainSocketImpl +{ + /** Option id for time to live + */ + private static final int CP_IP_TTL = 0x1E61; + + private final State nfd; + + /** + * Static initializer to load native library. + */ + static + { + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("javanet"); + } + } + + public VMPlainSocketImpl() + { + // XXX consider adding security check here. + nfd = new State(); + } + + public VMPlainSocketImpl(VMChannel channel) throws IOException + { + this(); + nfd.setChannelFD(channel.getState()); + } + + public State getState() + { + return nfd; + } + + /** This method exists to hide the CP_IP_TTL value from + * higher levels. + * + * Always think of JNode ... :) + */ + public void setTimeToLive(int ttl) + throws SocketException + { + try + { + setOption(nfd.getNativeFD(), CP_IP_TTL, ttl); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } + + public int getTimeToLive() + throws SocketException + { + try + { + return getOption(nfd.getNativeFD(), CP_IP_TTL); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } + + public void setOption(int optionId, Object optionValue) + throws SocketException + { + int value; + if (optionValue instanceof Integer) + value = ((Integer) optionValue).intValue(); + else if (optionValue instanceof Boolean) + // Switching off the linger behavior is done by setting + // the value to -1. This is how the Java API interprets + // it. + value = ((Boolean) optionValue).booleanValue() + ? 1 + : (optionId == SocketOptions.SO_LINGER) + ? -1 + : 0; + else + throw new IllegalArgumentException("option value type " + + optionValue.getClass().getName()); + + try + { + setOption(nfd.getNativeFD(), optionId, value); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } + + private static native void setOption(int fd, int id, int value) + throws SocketException; + + public void setMulticastInterface(int optionId, InetAddress addr) + throws SocketException + { + try + { + if (addr instanceof Inet4Address) + setMulticastInterface(nfd.getNativeFD(), optionId, (Inet4Address) addr); + else if (addr instanceof Inet6Address) + { + NetworkInterface iface = NetworkInterface.getByInetAddress(addr); + setMulticastInterface6(nfd.getNativeFD(), optionId, iface.getName()); + } + else + throw new SocketException("Unknown address format: " + addr); + } + catch (SocketException se) + { + throw se; + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } + + private static native void setMulticastInterface(int fd, + int optionId, + Inet4Address addr); + + private static native void setMulticastInterface6(int fd, + int optionId, + String ifName); + + /** + * Get a socket option. This implementation is only required to support + * socket options that are boolean values, which include: + * + * SocketOptions.IP_MULTICAST_LOOP + * SocketOptions.SO_BROADCAST + * SocketOptions.SO_KEEPALIVE + * SocketOptions.SO_OOBINLINE + * SocketOptions.SO_REUSEADDR + * SocketOptions.TCP_NODELAY + * + * and socket options that are integer values, which include: + * + * SocketOptions.IP_TOS + * SocketOptions.SO_LINGER + * SocketOptions.SO_RCVBUF + * SocketOptions.SO_SNDBUF + * SocketOptions.SO_TIMEOUT + * + * @param optionId The option ID to fetch. + * @return A {@link Boolean} or {@link Integer} containing the socket + * option. + * @throws SocketException + */ + public Object getOption(int optionId) throws SocketException + { + int value; + try + { + value = getOption(nfd.getNativeFD(), optionId); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + + switch (optionId) + { + case SocketOptions.IP_MULTICAST_LOOP: + case SocketOptions.SO_BROADCAST: + case SocketOptions.SO_KEEPALIVE: + case SocketOptions.SO_OOBINLINE: + case SocketOptions.SO_REUSEADDR: + case SocketOptions.TCP_NODELAY: + return Boolean.valueOf(value != 0); + + case SocketOptions.IP_TOS: + case SocketOptions.SO_LINGER: + case SocketOptions.SO_RCVBUF: + case SocketOptions.SO_SNDBUF: + case SocketOptions.SO_TIMEOUT: + return new Integer(value); + + default: + throw new SocketException("getting option " + optionId + + " not supported here"); + } + } + + private static native int getOption(int fd, int id) throws SocketException; + + /** + * Returns an Inet4Address or Inet6Address instance belonging to the + * interface which is set as the multicast interface. + * + * The optionId is provided to make it possible that the native + * implementation may do something different depending on whether + * the value is SocketOptions.IP_MULTICAST_IF or + * SocketOptions.IP_MULTICAST_IF2. + */ + public InetAddress getMulticastInterface(int optionId) + throws SocketException + { + try + { + return getMulticastInterface(nfd.getNativeFD(), optionId); + } + catch (IOException ioe) + { + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; + } + } + + private static native InetAddress getMulticastInterface(int fd, + int optionId); + + /** + * Binds this socket to the given local address and port. + * + * @param address The address to bind to; the InetAddress is either + * an IPv4 or IPv6 address. + * @throws IOException If binding fails; for example, if the port + * in the given InetSocketAddress is privileged, and the current + * process has insufficient privileges. + */ + public void bind(InetSocketAddress address) throws IOException + { + InetAddress addr = address.getAddress(); + if (addr instanceof Inet4Address) + { + bind (nfd.getNativeFD(), addr.getAddress(), address.getPort()); + } + else if (addr instanceof Inet6Address) + bind6 (nfd.getNativeFD(), addr.getAddress(), address.getPort()); + else + throw new SocketException ("unsupported address type"); + } + + /** + * Native bind function for IPv4 addresses. The addr array must be + * exactly four bytes long. + * + * VMs without native support need not implement this. + * + * @param fd The native file descriptor integer. + * @param addr The IPv4 address, in network byte order. + * @param port The port to bind to. + * @throws IOException + */ + private static native void bind(int fd, byte[] addr, int port) + throws IOException; + + /** + * Native bind function for IPv6 addresses. The addr array must be + * exactly sixteen bytes long. + * + * VMs without native support need not implement this. + * + * @param fd The native file descriptor integer. + * @param addr The IPv6 address, in network byte order. + * @param port The port to bind to. + * @throws IOException + */ + private static native void bind6(int fd, byte[] addr, int port) + throws IOException; + + /** + * Listen on this socket for incoming connections. + * + * @param backlog The backlog of connections. + * @throws IOException If listening fails. + * @see gnu.java.nio.VMChannel#accept() + */ + public void listen(int backlog) throws IOException + { + listen(nfd.getNativeFD(), backlog); + } + + /** + * Native listen function. VMs without native support need not implement + * this. + * + * @param fd The file descriptor integer. + * @param backlog The listen backlog size. + * @throws IOException + */ + private static native void listen(int fd, int backlog) throws IOException; + + public void join(InetAddress group) throws IOException + { + if (group instanceof Inet4Address) + join(nfd.getNativeFD(), group.getAddress()); + else if (group instanceof Inet6Address) + join6(nfd.getNativeFD(), group.getAddress()); + else + throw new IllegalArgumentException("unknown address type"); + } + + private static native void join(int fd, byte[] addr) throws IOException; + + private static native void join6(int fd, byte[] addr) throws IOException; + + public void leave(InetAddress group) throws IOException + { + if (group instanceof Inet4Address) + leave(nfd.getNativeFD(), group.getAddress()); + else if (group instanceof Inet6Address) + leave6(nfd.getNativeFD(), group.getAddress()); + else + throw new IllegalArgumentException("unknown address type"); + } + + private static native void leave(int fd, byte[] addr) throws IOException; + + private static native void leave6(int fd, byte[] addr) throws IOException; + + public void joinGroup(InetSocketAddress addr, NetworkInterface netif) + throws IOException + { + InetAddress address = addr.getAddress(); + + if (address instanceof Inet4Address) + joinGroup(nfd.getNativeFD(), address.getAddress(), + netif != null ? netif.getName() : null); + else if (address instanceof Inet6Address) + joinGroup6(nfd.getNativeFD(), address.getAddress(), + netif != null ? netif.getName() : null); + else + throw new IllegalArgumentException("unknown address type"); + } + + private static native void joinGroup(int fd, byte[] addr, String ifname) + throws IOException; + + private static native void joinGroup6(int fd, byte[] addr, String ifname) + throws IOException; + + public void leaveGroup(InetSocketAddress addr, NetworkInterface netif) + throws IOException + { + InetAddress address = addr.getAddress(); + if (address instanceof Inet4Address) + leaveGroup(nfd.getNativeFD(), address.getAddress(), + netif != null ? netif.getName() : null); + else if (address instanceof Inet6Address) + leaveGroup6(nfd.getNativeFD(), address.getAddress(), + netif != null ? netif.getName() : null); + else + throw new IllegalArgumentException("unknown address type"); + } + + private static native void leaveGroup(int fd, byte[] addr, String ifname) + throws IOException; + + private static native void leaveGroup6(int fd, byte[] addr, String ifname) + throws IOException; + + + public void shutdownInput() throws IOException + { + shutdownInput(nfd.getNativeFD()); + } + + private static native void shutdownInput(int native_fd) throws IOException; + + public void shutdownOutput() throws IOException + { + shutdownOutput(nfd.getNativeFD()); + } + + private static native void shutdownOutput(int native_fd) throws IOException; + + public void sendUrgentData(int data) throws IOException + { + sendUrgentData(nfd.getNativeFD(), data); + } + + private static native void sendUrgentData(int natfive_fd, int data) throws IOException; + + public void close() throws IOException + { + nfd.close(); + } + + // Inner classes. + + /** + * Our wrapper for the native file descriptor. In this implementation, + * it is a simple wrapper around {@link VMChannel.State}, to simplify + * management of the native state. + */ + public final class State + { + private VMChannel.State channelFd; + + State() + { + channelFd = null; + } + + public boolean isValid() + { + if (channelFd != null) + return channelFd.isValid(); + return false; + } + + public int getNativeFD() throws IOException + { + return channelFd.getNativeFD(); + } + + public void setChannelFD(final VMChannel.State nfd) throws IOException + { + if (this.channelFd != null && this.channelFd.isValid()) + throw new IOException("file descriptor already initialized"); + this.channelFd = nfd; + } + + public void close() throws IOException + { + if (channelFd == null) + throw new IOException("invalid file descriptor"); + channelFd.close(); + } + + protected void finalize() throws Throwable + { + try + { + if (isValid()) + close(); + } + finally + { + super.finalize(); + } + } + } +} + diff --git a/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java b/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java index fdea8ff6213..1f69877b6ba 100644 --- a/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java +++ b/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java @@ -39,13 +39,16 @@ exception statement from your version. */ package gnu.java.nio; import gnu.classpath.Configuration; -import gnu.java.net.PlainSocketImpl; -import gnu.java.nio.PipeImpl.SinkChannelImpl; -import gnu.java.nio.PipeImpl.SourceChannelImpl; -import gnu.java.nio.channels.FileChannelImpl; import java.io.IOException; +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.net.SocketException; import java.nio.ByteBuffer; +import java.nio.MappedByteBuffer; /** * Native interface to support configuring of channel to run in a non-blocking @@ -54,33 +57,43 @@ import java.nio.ByteBuffer; * @author Michael Barker * */ -public class VMChannel +public final class VMChannel { - private final int fd; - - private VMChannel(int fd) - { - this.fd = fd; - } + /** + * Our reference implementation uses an integer to store the native + * file descriptor. Implementations without such support + */ + private final State nfd; - public static VMChannel getVMChannel(PlainSocketImpl socket) - { - return new VMChannel(socket.getNativeFD()); - } + private Kind kind; - public static VMChannel getVMChannel(SourceChannelImpl source) + public VMChannel() { - return new VMChannel(source.getNativeFD()); + // XXX consider adding security check here, so only Classpath + // code may create instances. + this.nfd = new State(); + kind = Kind.OTHER; } - public static VMChannel getVMChannel(SinkChannelImpl sink) + /** + * This constructor is used by the POSIX reference implementation; + * other virtual machines need not support it. + * + * Important: do not call this in library code that is + * not specific to Classpath's reference implementation. + * + * @param native_fd The native file descriptor integer. + * @throws IOException + */ + VMChannel(final int native_fd) throws IOException { - return new VMChannel(sink.getNativeFD()); + this(); + this.nfd.setNativeFD(native_fd); } - public static VMChannel getVMChannel(FileChannelImpl file) + public State getState() { - return new VMChannel(file.getNativeFD()); + return nfd; } static @@ -93,81 +106,151 @@ public class VMChannel initIDs(); } + public static VMChannel getStdin() throws IOException + { + return new VMChannel(stdin_fd()); + } + + public static VMChannel getStdout() throws IOException + { + return new VMChannel(stdout_fd()); + } + + public static VMChannel getStderr() throws IOException + { + return new VMChannel(stderr_fd()); + } + + private static native int stdin_fd(); + private static native int stdout_fd(); + private static native int stderr_fd(); + /** * Set the file descriptor to have the required blocking * setting. * - * @param fd - * @param blocking + * @param blocking The blocking flag to set. */ - public native void setBlocking(int fd, boolean blocking); + public void setBlocking(boolean blocking) throws IOException + { + setBlocking(nfd.getNativeFD(), blocking); + } - public void setBlocking(boolean blocking) + private static native void setBlocking(int fd, boolean blocking) + throws IOException; + + public int available() throws IOException { - setBlocking(fd, blocking); + return available(nfd.getNativeFD()); } + private static native int available(int native_fd) throws IOException; /** * Reads a byte buffer directly using the supplied file descriptor. - * Assumes that the buffer is a DirectBuffer. * - * @param fd Native file descriptor to read from. * @param dst Direct Byte Buffer to read to. * @return Number of bytes read. * @throws IOException If an error occurs or dst is not a direct buffers. */ - native int read(int fd, ByteBuffer dst) - throws IOException; - public int read(ByteBuffer dst) throws IOException { - return read(fd, dst); + return read(nfd.getNativeFD(), dst); + } + + private static native int read(int fd, ByteBuffer dst) throws IOException; + + /** + * Read a single byte. + * + * @return The byte read, or -1 on end of file. + * @throws IOException + */ + public int read() throws IOException + { + return read(nfd.getNativeFD()); } + private static native int read(int fd) throws IOException; + /** * Reads into byte buffers directly using the supplied file descriptor. * Assumes that the buffer list contains DirectBuffers. Will perform a * scattering read. * - * @param fd Native file descriptor to read from. * @param dsts An array direct byte buffers. * @param offset Index of the first buffer to read to. * @param length The number of buffers to read to. * @return Number of bytes read. * @throws IOException If an error occurs or the dsts are not direct buffers. */ - native long readScattering(int fd, ByteBuffer[] dsts, int offset, int length) - throws IOException; - public long readScattering(ByteBuffer[] dsts, int offset, int length) throws IOException { if (offset + length > dsts.length) throw new IndexOutOfBoundsException("offset + length > dsts.length"); + + return readScattering(nfd.getNativeFD(), dsts, offset, length); + } + + private static native long readScattering(int fd, ByteBuffer[] dsts, + int offset, int length) + throws IOException; + + /** + * Receive a datagram on this channel, returning the host address + * that sent the datagram. + * + * @param dst Where to store the datagram. + * @return The host address that sent the datagram. + * @throws IOException + */ + public SocketAddress receive(ByteBuffer dst) throws IOException + { + if (kind != Kind.SOCK_DGRAM) + throw new SocketException("not a datagram socket"); + ByteBuffer hostPort = ByteBuffer.allocateDirect(18); + int hostlen = receive(nfd.getNativeFD(), dst, hostPort); + if (hostlen == 0) + return null; + if (hostlen == 4) // IPv4 + { + byte[] addr = new byte[4]; + hostPort.get(addr); + int port = hostPort.getShort() & 0xFFFF; + return new InetSocketAddress(Inet4Address.getByAddress(addr), port); + } + if (hostlen == 16) // IPv6 + { + byte[] addr = new byte[16]; + hostPort.get(addr); + int port = hostPort.getShort() & 0xFFFF; + return new InetSocketAddress(Inet6Address.getByAddress(addr), port); + } - return readScattering(fd, dsts, offset, length); + throw new SocketException("host address received with invalid length: " + + hostlen); } + private static native int receive (int fd, ByteBuffer dst, ByteBuffer address) + throws IOException; + /** * Writes from a direct byte bufer using the supplied file descriptor. * Assumes the buffer is a DirectBuffer. * - * @param fd - * @param src + * @param src The source buffer. * @return Number of bytes written. * @throws IOException */ - native int write(int fd, ByteBuffer src) - throws IOException; - - public int write(ByteBuffer src) - throws IOException + public int write(ByteBuffer src) throws IOException { - return write(fd, src); + return write(nfd.getNativeFD(), src); } + private native int write(int fd, ByteBuffer src) throws IOException; + /** * Writes from byte buffers directly using the supplied file descriptor. * Assumes the that buffer list constains DirectBuffers. Will perform @@ -180,18 +263,488 @@ public class VMChannel * @return Number of bytes written. * @throws IOException */ - native long writeGathering(int fd, ByteBuffer[] srcs, int offset, int length) - throws IOException; - public long writeGathering(ByteBuffer[] srcs, int offset, int length) throws IOException { if (offset + length > srcs.length) throw new IndexOutOfBoundsException("offset + length > srcs.length"); - return writeGathering(fd, srcs, offset, length); + // A gathering write is limited to 16 buffers; when writing, ensure + // that we have at least one buffer with something in it in the 16 + // buffer window starting at offset. + while (!srcs[offset].hasRemaining() && offset < srcs.length) + offset++; + + // There are no buffers with anything to write. + if (offset == srcs.length) + return 0; + + // If we advanced `offset' so far that we don't have `length' + // buffers left, reset length to only the remaining buffers. + if (length > srcs.length - offset) + length = srcs.length - offset; + + return writeGathering(nfd.getNativeFD(), srcs, offset, length); + } + + private native long writeGathering(int fd, ByteBuffer[] srcs, + int offset, int length) + throws IOException; + + /** + * Send a datagram to the given address. + * + * @param src The source buffer. + * @param dst The destination address. + * @return The number of bytes written. + * @throws IOException + */ + public int send(ByteBuffer src, InetSocketAddress dst) + throws IOException + { + InetAddress addr = dst.getAddress(); + if (addr == null) + throw new NullPointerException(); + if (addr instanceof Inet4Address) + return send(nfd.getNativeFD(), src, addr.getAddress(), dst.getPort()); + else if (addr instanceof Inet6Address) + return send6(nfd.getNativeFD(), src, addr.getAddress(), dst.getPort()); + else + throw new SocketException("unrecognized inet address type"); + } + + // Send to an IPv4 address. + private static native int send(int fd, ByteBuffer src, byte[] addr, int port) + throws IOException; + + // Send to an IPv6 address. + private static native int send6(int fd, ByteBuffer src, byte[] addr, int port) + throws IOException; + + /** + * Write a single byte. + * + * @param b The byte to write. + * @throws IOException + */ + public void write(int b) throws IOException + { + write(nfd.getNativeFD(), b); } + private static native void write(int fd, int b) throws IOException; + private native static void initIDs(); + // Network (socket) specific methods. + + /** + * Create a new socket. This method will initialize the native file + * descriptor state of this instance. + * + * @param stream Whether or not to create a streaming socket, or a datagram + * socket. + * @throws IOException If creating a new socket fails, or if this + * channel already has its native descriptor initialized. + */ + public void initSocket(boolean stream) throws IOException + { + if (nfd.isValid()) + throw new IOException("native FD already initialized"); + if (stream) + kind = Kind.SOCK_STREAM; + else + kind = Kind.SOCK_DGRAM; + nfd.setNativeFD(socket(stream)); + } + + /** + * Create a new socket, returning the native file descriptor. + * + * @param stream Set to true for streaming sockets; false for datagrams. + * @return The native file descriptor. + * @throws IOException If creating the socket fails. + */ + private static native int socket(boolean stream) throws IOException; + + /** + * Connect the underlying socket file descriptor to the remote host. + * + * @param saddr The address to connect to. + * @param timeout The connect timeout to use for blocking connects. + * @return True if the connection succeeded; false if the file descriptor + * is in non-blocking mode and the connection did not immediately + * succeed. + * @throws IOException If an error occurs while connecting. + */ + public boolean connect(InetSocketAddress saddr, int timeout) + throws SocketException + { + int fd; + + InetAddress addr = saddr.getAddress(); + + // Translates an IOException into a SocketException to conform + // to the throws clause. + try + { + fd = nfd.getNativeFD(); + } + catch (IOException ioe) + { + throw new SocketException(ioe.getMessage()); + } + + if (addr instanceof Inet4Address) + return connect(fd, addr.getAddress(), saddr.getPort(), + timeout); + if (addr instanceof Inet6Address) + return connect6(fd, addr.getAddress(), saddr.getPort(), + timeout); + throw new SocketException("unsupported internet address"); + } + + private static native boolean connect(int fd, byte[] addr, int port, int timeout) + throws SocketException; + + private static native boolean connect6(int fd, byte[] addr, int port, int timeout) + throws SocketException; + + /** + * Disconnect this channel, if it is a datagram socket. Disconnecting + * a datagram channel will disassociate it from any address, so the + * socket will remain open, but can send and receive datagrams from + * any address. + * + * @throws IOException If disconnecting this channel fails, or if this + * channel is not a datagram channel. + */ + public void disconnect() throws IOException + { + if (kind != Kind.SOCK_DGRAM) + throw new IOException("can only disconnect datagram channels"); + disconnect(nfd.getNativeFD()); + } + + private static native void disconnect(int fd) throws IOException; + + public InetSocketAddress getLocalAddress() throws IOException + { + if (!nfd.isValid()) + return null; + ByteBuffer name = ByteBuffer.allocateDirect(18); + int namelen = getsockname(nfd.getNativeFD(), name); + if (namelen == 0) // not bound + return null; // XXX return some wildcard? + if (namelen == 4) + { + byte[] addr = new byte[4]; + name.get(addr); + int port = name.getShort() & 0xFFFF; + return new InetSocketAddress(Inet4Address.getByAddress(addr), port); + } + if (namelen == 16) + { + byte[] addr = new byte[16]; + name.get(addr); + int port = name.getShort() & 0xFFFF; + return new InetSocketAddress(Inet6Address.getByAddress(addr), port); + } + throw new SocketException("invalid address length"); + } + + private static native int getsockname(int fd, ByteBuffer name) + throws IOException; + + /** + * Returns the socket address of the remote peer this channel is connected + * to, or null if this channel is not yet connected. + * + * @return The peer address. + * @throws IOException + */ + public InetSocketAddress getPeerAddress() throws IOException + { + if (!nfd.isValid()) + return null; + ByteBuffer name = ByteBuffer.allocateDirect(18); + int namelen = getpeername (nfd.getNativeFD(), name); + if (namelen == 0) // not connected yet + return null; + if (namelen == 4) // IPv4 + { + byte[] addr = new byte[4]; + name.get(addr); + int port = name.getShort() & 0xFFFF; + return new InetSocketAddress(Inet4Address.getByAddress(addr), port); + } + else if (namelen == 16) // IPv6 + { + byte[] addr = new byte[16]; + name.get(addr); + int port = name.getShort() & 0xFFFF; + return new InetSocketAddress(Inet6Address.getByAddress(addr), port); + } + throw new SocketException("invalid address length"); + } + + /* + * The format here is the peer address, followed by the port number. + * The returned value is the length of the peer address; thus, there + * will be LEN + 2 valid bytes put into NAME. + */ + private static native int getpeername(int fd, ByteBuffer name) + throws IOException; + + /** + * Accept an incoming connection, returning a new VMChannel, or null + * if the channel is nonblocking and no connection is pending. + * + * @return The accepted connection, or null. + * @throws IOException If an IO error occurs. + */ + public VMChannel accept() throws IOException + { + int new_fd = accept(nfd.getNativeFD()); + if (new_fd == -1) // non-blocking accept had no pending connection + return null; + return new VMChannel(new_fd); + } + + private static native int accept(int native_fd) throws IOException; + + // File-specific methods. + + /** + * Open a file at PATH, initializing the native state to operate on + * that open file. + * + * @param path The absolute file path. + * @throws IOException If the file cannot be opened, or if this + * channel was previously initialized. + */ + public void openFile(String path, int mode) throws IOException + { + if (nfd.isValid() || nfd.isClosed()) + throw new IOException("can't reinitialize this channel"); + int fd = open(path, mode); + nfd.setNativeFD(fd); + kind = Kind.FILE; + } + + private static native int open(String path, int mode) throws IOException; + + public long position() throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + return position(nfd.getNativeFD()); + } + + private static native long position(int fd) throws IOException; + + public void seek(long pos) throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + seek(nfd.getNativeFD(), pos); + } + + private static native void seek(int fd, long pos) throws IOException; + + public void truncate(long length) throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + truncate(nfd.getNativeFD(), length); + } + + private static native void truncate(int fd, long len) throws IOException; + + public boolean lock(long pos, long len, boolean shared, boolean wait) + throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + return lock(nfd.getNativeFD(), pos, len, shared, wait); + } + + private static native boolean lock(int fd, long pos, long len, + boolean shared, boolean wait) + throws IOException; + + public void unlock(long pos, long len) throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + unlock(nfd.getNativeFD(), pos, len); + } + + private static native void unlock(int fd, long pos, long len) throws IOException; + + public long size() throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + return size(nfd.getNativeFD()); + } + + private static native long size(int fd) throws IOException; + + public MappedByteBuffer map(char mode, long position, int size) + throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + return map(nfd.getNativeFD(), mode, position, size); + } + + private static native MappedByteBuffer map(int fd, char mode, + long position, int size) + throws IOException; + + public boolean flush(boolean metadata) throws IOException + { + if (kind != Kind.FILE) + throw new IOException("not a file"); + return flush(nfd.getNativeFD(), metadata); + } + + private static native boolean flush(int fd, boolean metadata) throws IOException; + + // Close. + + /** + * Close this socket. The socket is also automatically closed when this + * object is finalized. + * + * @throws IOException If closing the socket fails, or if this object has + * no open socket. + */ + public void close() throws IOException + { + nfd.close(); + } + + static native void close(int native_fd) throws IOException; + + /** + *

      Provides a simple mean for the JNI code to find out whether the + * current thread was interrupted by a call to Thread.interrupt().

      + * + * @return + */ + static boolean isThreadInterrupted() + { + return Thread.currentThread().isInterrupted(); + } + + // Inner classes. + + /** + * A wrapper for a native file descriptor integer. This tracks the state + * of an open file descriptor, and ensures that + * + * This class need not be fully supported by virtual machines; if a + * virtual machine does not use integer file descriptors, or does and + * wishes to hide that, then the methods of this class may be stubbed out. + * + * System-specific classes that depend on access to native file descriptor + * integers SHOULD declare this fact. + */ + public final class State + { + private int native_fd; + private boolean valid; + private boolean closed; + + State() + { + native_fd = -1; + valid = false; + closed = false; + } + + public boolean isValid() + { + return valid; + } + + public boolean isClosed() + { + return closed; + } + + public int getNativeFD() throws IOException + { + if (!valid) + throw new IOException("invalid file descriptor"); + return native_fd; + } + + void setNativeFD(final int native_fd) throws IOException + { + if (valid) + throw new IOException("file descriptor already initialized"); + this.native_fd = native_fd; + valid = true; + } + + public void close() throws IOException + { + if (!valid) + throw new IOException("invalid file descriptor"); + try + { + VMChannel.close(native_fd); + } + finally + { + valid = false; + closed = true; + } + } + + public String toString() + { + if (closed) + return "<>"; + if (!valid) + return "<>"; + return String.valueOf(native_fd); + } + + protected void finalize() throws Throwable + { + try + { + if (valid) + close(); + } + finally + { + super.finalize(); + } + } + } + + /** + * An enumeration of possible kinds of channel. + */ + static class Kind // XXX enum + { + /** A streaming (TCP) socket. */ + static final Kind SOCK_STREAM = new Kind(); + + /** A datagram (UDP) socket. */ + static final Kind SOCK_DGRAM = new Kind(); + + /** A file. */ + static final Kind FILE = new Kind(); + + /** Something else; not a socket or file. */ + static final Kind OTHER = new Kind(); + + private Kind() { } + } } diff --git a/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java b/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java index 11dd2aa7b4b..e5257c1cf96 100644 --- a/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java +++ b/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.java.nio; import java.io.IOException; -import java.nio.channels.spi.SelectorProvider; import gnu.classpath.Configuration; /** @@ -58,7 +57,24 @@ final class VMPipe System.loadLibrary ("javanio"); } } - - static native void init(PipeImpl self, SelectorProvider provider) - throws IOException; + + /** + * Create a pipe, consisting of a readable VMChannel and a writable + * VMChannel. The readable channel is returned is the first element + * of the array, and the writable in the second. + * + * @return A pair of VMChannels; the first readable, the second + * writable. + * @throws IOException If the pipe cannot be created. + */ + static VMChannel[] pipe() throws IOException + { + VMChannel[] pipe = new VMChannel[2]; + int[] fds = pipe0(); + pipe[0] = new VMChannel(fds[0]); + pipe[1] = new VMChannel(fds[1]); + return pipe; + } + + private static native int[] pipe0() throws IOException; } diff --git a/libjava/classpath/vm/reference/java/io/VMFile.java b/libjava/classpath/vm/reference/java/io/VMFile.java index 2f48aad71f8..13d256d424a 100644 --- a/libjava/classpath/vm/reference/java/io/VMFile.java +++ b/libjava/classpath/vm/reference/java/io/VMFile.java @@ -38,6 +38,9 @@ exception statement from your version. */ package java.io; +import java.net.MalformedURLException; +import java.net.URL; + import gnu.classpath.Configuration; import gnu.java.io.PlatformHelper; @@ -209,6 +212,108 @@ final class VMFile } /** + * Returns the path as an absolute path name. The value returned is the + * current directory plus the separatory string plus the path of the file. + * The current directory is determined from the user.dir system + * property. + * + * @param path the path to convert to absolute path + * + * @return the absolute path that corresponds to path + */ + static String getAbsolutePath(String path) + { + if (File.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 (File.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 if (path.equals("")) + return System.getProperty ("user.dir"); + else + return System.getProperty ("user.dir") + File.separatorChar + path; + } + + /** + * This method returns true if the path 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 "/". + * + * @param path the path to check + * + * @return true if path represents an absolute file name, + * false otherwise. + */ + static boolean isAbsolute(String path) + { + if (File.separatorChar == '\\') + return path.startsWith(File.separator + File.separator) + || (path.length() > 2 + && ((path.charAt(0) >= 'a' && path.charAt(0) <= 'z') + || (path.charAt(0) >= 'A' && path.charAt(0) <= 'Z')) + && path.charAt(1) == ':' + && path.charAt(2) == '\\'); + else + return path.startsWith(File.separator); + } + + /** + * Returns a URL with the file: + * protocol that represents this file. The exact form of this URL is + * system dependent. + * + * @param file the file to convert to URL + * + * @return a URL for this object. + * + * @throws MalformedURLException if the URL cannot be created + * successfully. + */ + static URL toURL(File file) + 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 (File.separatorChar == '\\') + return new URL ("file:/" + file.getAbsolutePath().replace ('\\', '/') + + (file.isDirectory() ? "/" : "")); + else + return new URL ("file:" + file.getAbsolutePath() + + (file.isDirectory() ? "/" : "")); + } + + /** * 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 diff --git a/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java b/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java index 5fb56fcd4c9..be0f8eb5235 100644 --- a/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java +++ b/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java @@ -40,10 +40,7 @@ exception statement from your version. */ package java.io; import gnu.classpath.Configuration; -import gnu.classpath.VMStackWalker; import java.lang.reflect.Constructor; -import java.security.AccessController; -import java.security.PrivilegedAction; final class VMObjectInputStream { @@ -56,42 +53,6 @@ final class VMObjectInputStream } /** - * PrivilegedAction needed for Class.getClassLoader() - */ - private static PrivilegedAction loaderAction = new PrivilegedAction() - { - /** - * Returns the first user defined class loader on the call stack, or the - * context class loader of the current thread, when no non-null class loader - * was found. - */ - public Object run() - { - Class[] ctx = VMStackWalker.getClassContext(); - - for (int i = 0; i < ctx.length; i++) - { - ClassLoader cl = ctx[i].getClassLoader(); - if (cl != null) - return cl; - } - return Thread.currentThread().getContextClassLoader(); - } - }; - - /** - * Returns the first user defined class loader on the call stack, or the - * context class loader of the current thread, when no non-null class loader - * was found. - * - * @return the class loader - */ - static ClassLoader currentClassLoader() - { - return (ClassLoader) AccessController.doPrivileged(loaderAction); - } - - /** * 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 diff --git a/libjava/classpath/vm/reference/java/lang/VMClassLoader.java b/libjava/classpath/vm/reference/java/lang/VMClassLoader.java index 897df5186b3..e56152d0126 100644 --- a/libjava/classpath/vm/reference/java/lang/VMClassLoader.java +++ b/libjava/classpath/vm/reference/java/lang/VMClassLoader.java @@ -415,8 +415,9 @@ final class VMClassLoader { byte[] modifiedData = new byte[len]; System.arraycopy(data, offset, modifiedData, 0, len); + String jvmName = name.replace('.', '/'); modifiedData = - ((InstrumentationImpl)instrumenter).callTransformers(loader, name, + ((InstrumentationImpl)instrumenter).callTransformers(loader, jvmName, null, pd, modifiedData); return defineClass(loader, name, modifiedData, 0, modifiedData.length, diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java b/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java index 521190b6656..eebee5f5d2a 100644 --- a/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java +++ b/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java @@ -77,11 +77,11 @@ import java.util.Arrays; * @since 1.1 * @status updated to 1.4 */ -public final class Constructor +public final class Constructor extends AccessibleObject implements GenericDeclaration, Member { - private Class clazz; + private Class clazz; private int slot; private static final int CONSTRUCTOR_MODIFIERS @@ -104,7 +104,7 @@ public final class Constructor * Gets the class that declared this constructor. * @return the class that declared this member */ - public Class getDeclaringClass() + public Class getDeclaringClass() { return clazz; } @@ -166,7 +166,7 @@ public final class Constructor * * @return a list of the types of the constructor's parameters */ - public native Class[] getParameterTypes(); + public native Class[] getParameterTypes(); /** * Get the exception types this constructor says it throws, in no particular @@ -175,7 +175,7 @@ public final class Constructor * * @return a list of the types in the constructor's throws clause */ - public native Class[] getExceptionTypes(); + public native Class[] getExceptionTypes(); /** * Compare two objects to see if they are semantically equivalent. @@ -244,8 +244,8 @@ public final class Constructor return sb.toString(); } - /* FIXME[GENERICS]: Add X extends GenericDeclaration and TypeVariable */ - static void addTypeParameters(StringBuilder sb, TypeVariable[] typeArgs) + static + void addTypeParameters(StringBuilder sb, TypeVariable[] typeArgs) { if (typeArgs.length == 0) return; @@ -313,15 +313,15 @@ public final class Constructor * @throws ExceptionInInitializerError if construction triggered class * initialization, which then failed */ - public Object newInstance(Object args[]) + public T newInstance(Object... args) throws InstantiationException, IllegalAccessException, InvocationTargetException { return constructNative(args, clazz, slot); } - private native Object constructNative(Object[] args, Class declaringClass, - int slot) + private native T constructNative(Object[] args, Class declaringClass, + int slot) throws InstantiationException, IllegalAccessException, InvocationTargetException; @@ -337,8 +337,7 @@ public final class Constructor * specification, version 3. * @since 1.5 */ - /* FIXME[GENERICS]: Add > */ - public TypeVariable[] getTypeParameters() + public TypeVariable>[] getTypeParameters() { String sig = getSignature(); if (sig == null) @@ -395,4 +394,3 @@ public final class Constructor return p.getGenericParameterTypes(); } } - diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Field.java b/libjava/classpath/vm/reference/java/lang/reflect/Field.java index 5121700fede..5db1fa3ecc1 100644 --- a/libjava/classpath/vm/reference/java/lang/reflect/Field.java +++ b/libjava/classpath/vm/reference/java/lang/reflect/Field.java @@ -102,7 +102,7 @@ extends AccessibleObject implements Member * is a non-inherited member. * @return the class that declared this member */ - public Class getDeclaringClass() + public Class getDeclaringClass() { return declaringClass; } @@ -159,7 +159,7 @@ extends AccessibleObject implements Member * Gets the type of this field. * @return the type of this field */ - public native Class getType(); + public native Class getType(); /** * Compare two objects to see if they are semantically equivalent. @@ -213,7 +213,7 @@ extends AccessibleObject implements Member sb.append(getName()); return sb.toString(); } - + public String toGenericString() { StringBuilder sb = new StringBuilder(64); @@ -658,5 +658,4 @@ extends AccessibleObject implements Member * is no Signature attribute, return null. */ private native String getSignature(); - } diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Method.java b/libjava/classpath/vm/reference/java/lang/reflect/Method.java index a9920241b17..c520f057024 100644 --- a/libjava/classpath/vm/reference/java/lang/reflect/Method.java +++ b/libjava/classpath/vm/reference/java/lang/reflect/Method.java @@ -104,7 +104,7 @@ extends AccessibleObject implements Member, GenericDeclaration * is a non-inherited member. * @return the class that declared this member */ - public Class getDeclaringClass() + public Class getDeclaringClass() { return declaringClass; } @@ -172,7 +172,7 @@ extends AccessibleObject implements Member, GenericDeclaration * Gets the return type of this method. * @return the type of this method */ - public native Class getReturnType(); + public native Class getReturnType(); /** * Get the parameter list for this method, in declaration order. If the @@ -180,7 +180,7 @@ extends AccessibleObject implements Member, GenericDeclaration * * @return a list of the types of the method's parameters */ - public native Class[] getParameterTypes(); + public native Class[] getParameterTypes(); /** * Get the exception types this method says it throws, in no particular @@ -189,7 +189,7 @@ extends AccessibleObject implements Member, GenericDeclaration * * @return a list of the types in the method's throws clause */ - public native Class[] getExceptionTypes(); + public native Class[] getExceptionTypes(); /** * Compare two objects to see if they are semantically equivalent. @@ -349,7 +349,7 @@ extends AccessibleObject implements Member, GenericDeclaration * @throws ExceptionInInitializerError if accessing a static method triggered * class initialization, which then failed */ - public Object invoke(Object o, Object[] args) + public Object invoke(Object o, Object... args) throws IllegalAccessException, InvocationTargetException { return invokeNative(o, args, declaringClass, slot); @@ -375,8 +375,7 @@ extends AccessibleObject implements Member, GenericDeclaration * specification, version 3. * @since 1.5 */ - /* FIXME[GENERICS]: Should be TypeVariable[] */ - public TypeVariable[] getTypeParameters() + public TypeVariable[] getTypeParameters() { String sig = getSignature(); if (sig == null) @@ -451,4 +450,3 @@ extends AccessibleObject implements Member, GenericDeclaration return p.getGenericReturnType(); } } - diff --git a/libjava/classpath/vm/reference/java/net/VMInetAddress.java b/libjava/classpath/vm/reference/java/net/VMInetAddress.java index 19f5d7d341c..a99c216b96c 100644 --- a/libjava/classpath/vm/reference/java/net/VMInetAddress.java +++ b/libjava/classpath/vm/reference/java/net/VMInetAddress.java @@ -84,4 +84,14 @@ class VMInetAddress implements Serializable */ 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/classpath/vm/reference/java/net/VMNetworkInterface.java b/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java index 47f803246d5..7f1e3ad9890 100644 --- a/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java +++ b/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java @@ -40,6 +40,9 @@ package java.net; import gnu.classpath.Configuration; +import java.nio.ByteBuffer; +import java.util.HashSet; +import java.util.Set; import java.util.Vector; /** @@ -54,22 +57,67 @@ import java.util.Vector; */ final class VMNetworkInterface { + String name; + Set addresses; + + VMNetworkInterface(String name) + { + this.name = name; + addresses = new HashSet(); + } + + /** + * Creates a dummy instance which represents any network + * interface. + */ + public VMNetworkInterface() + { + addresses = new HashSet(); + try + { + addresses.add(InetAddress.getByName("0.0.0.0")); + } + catch (UnknownHostException _) + { + // Cannot happen. + } + } + static - { - if (Configuration.INIT_LOAD_LIBRARY) - System.loadLibrary("javanet"); - } + { + if (Configuration.INIT_LOAD_LIBRARY) + System.loadLibrary("javanet"); + + initIds(); + } + + private static native void initIds(); /** - * Returns a Vector of InetAddresses. The returned value will be - * 'condensed', meaning that all elements with the same interface - * name will be collapesed into one InetAddress for that name - * containing all addresses before the returning the result to the - * user. This means the native method can be implemented in a naive - * way mapping each address/interface to a name even if that means - * that the Vector contains multiple InetAddresses with the same - * interface name. + * Return a list of VM network interface objects. + * + * @return The list of network interfaces. + * @throws SocketException */ - public static native Vector getInterfaces() + public static native VMNetworkInterface[] getVMInterfaces() throws SocketException; + + private void addAddress(ByteBuffer addr) + throws SocketException, UnknownHostException + { + if (addr.remaining() == 4) + { + byte[] ipv4 = new byte[4]; + addr.get(ipv4); + addresses.add(Inet4Address.getByAddress(ipv4)); + } + else if (addr.remaining() == 16) + { + byte[] ipv6 = new byte[16]; + addr.get(ipv6); + addresses.add(Inet6Address.getByAddress(ipv6)); + } + else + throw new SocketException("invalid interface address"); + } } diff --git a/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java b/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java index e58d7fbf92c..c833b6eecfd 100644 --- a/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java +++ b/libjava/classpath/vm/reference/java/nio/channels/VMChannels.java @@ -40,7 +40,7 @@ package java.nio.channels; import gnu.java.nio.ChannelInputStream; import gnu.java.nio.ChannelOutputStream; -import gnu.java.nio.channels.FileChannelImpl; +import gnu.java.nio.FileChannelImpl; import java.io.FileInputStream; import java.io.FileOutputStream; diff --git a/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java b/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java index aa89c50ac9b..88a6f2515bf 100644 --- a/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java +++ b/libjava/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java @@ -51,9 +51,29 @@ public class ReflectUtil { } + /** + * Check if the current thread is allowed to access the package of + * the declaringClass. + * + * @param declaringClass class name to check access to + * @throws SecurityException if permission is denied + * @throws NullPointerException if declaringClass is null + */ public static void checkPackageAccess(Class declaringClass) { - // FIXME: not sure what to check here. + SecurityManager sm; + if ((sm = System.getSecurityManager()) != null) + { + while (declaringClass.isArray()) + declaringClass = declaringClass.getComponentType(); + String name = declaringClass.getName(); + int i = name.lastIndexOf('.'); + if (i != -1) // if declaringClass is a member of a package + { + name = name.substring(0, i); + sm.checkPackageAccess(name); + } + } } /** @@ -64,6 +84,7 @@ public class ReflectUtil * @param declarer the declaring class of the member * @param ignored unknown parameter; always null * @param modifiers the modifiers on the member + * @return true if access is granted, false otherwise */ public static void ensureMemberAccess(Class caller, Class declarer, diff --git a/libjava/configure b/libjava/configure index fec6c34b9a3..f104802a83c 100755 --- a/libjava/configure +++ b/libjava/configure @@ -310,7 +310,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir libgcj_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP BASH_JAR_TRUE BASH_JAR_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE GCJH INCLTDL LIBLTDL DIRLTDL LIBTOOL CXXCPP CPPFLAGS GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME INTERPRETER LIBFFI LIBFFIINCS PLATFORM_INNER_NAT_HDRS CPP EGREP USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ac_ct_GCJ ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir dbexecdir GCJVERSION gxx_include_dir libstdcxx_incdir ALLOCA PERL SYSDEP_SOURCES LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir libgcj_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP BASH_JAR_TRUE BASH_JAR_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL CXXCPP CPPFLAGS GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME INTERPRETER LIBFFI LIBFFIINCS PLATFORM CPP EGREP USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV LIBMAGIC PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ac_ct_GCJ ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir dbexecdir GCJVERSION gxx_include_dir libstdcxx_incdir ALLOCA PERL SYSDEP_SOURCES LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -855,6 +855,8 @@ Optional Features: --enable-multilib build many library versions (default) --enable-plugin build gcjwebplugin web browser plugin --enable-gconf-peer compile GConf native peers for util.preferences + --enable-java-maintainer-mode + allow rebuilding of .class and .h files --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful @@ -887,8 +889,10 @@ Optional Packages: configure in a subdirectory --with-cross-host=HOST configure with a cross compiler from HOST --with-newlib configure with newlib + --with-escher=ABS.PATH specify path to escher dir or JAR for X peers --with-gnu-ld assume the C compiler uses GNU ld default=no --with-pic try to use only PIC/non-PIC objects default=use both + --with-ecj-jar=FILE use preinstalled ecj jar --with-java-home=DIRECTORY value of java.home system property --with-win32-nlsapi=ansi or unicows or unicode @@ -1657,6 +1661,22 @@ else fi; +# Check whether --enable-java-maintainer-mode or --disable-java-maintainer-mode was given. +if test "${enable_java_maintainer_mode+set}" = set; then + enableval="$enable_java_maintainer_mode" + +fi; + + +if test "$enable_java_maintainer_mode" = yes; then + JAVA_MAINTAINER_MODE_TRUE= + JAVA_MAINTAINER_MODE_FALSE='#' +else + JAVA_MAINTAINER_MODE_TRUE='#' + JAVA_MAINTAINER_MODE_FALSE= +fi + + # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX. @@ -1672,7 +1692,6 @@ fi; # used in later tests. This may not be necessary in libjava; I don't know. - save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-builtin" ac_ext=c @@ -2651,11 +2670,11 @@ if test -n "$ac_tool_prefix"; then set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${glibcxx_cv_prog_CXX+set}" = set; then +if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then - glibcxx_cv_prog_CXX="$CXX" # Let the user override the test. + ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -2664,7 +2683,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - glibcxx_cv_prog_CXX="$ac_tool_prefix$ac_prog" + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -2673,7 +2692,7 @@ done fi fi -CXX=$glibcxx_cv_prog_CXX +CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 @@ -4053,7 +4072,7 @@ fi test -n "$AWK" && break done -for ac_prog in jar fastjar +for ac_prog in jar fastjar gjar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -4878,6 +4897,29 @@ _ACEOF fi fi; + +# Check whether --with-escher or --without-escher was given. +if test "${with_escher+set}" = set; then + withval="$with_escher" + +fi; +case "$with_escher" in +"") + use_escher=false + ;; +"no") + use_escher=false + ;; +"yes") + { { echo "$as_me:$LINENO: error: Please supply an absolute path to Escher library" >&5 +echo "$as_me: error: Please supply an absolute path to Escher library" >&2;} + { (exit 1); exit 1; }; } + ;; +*) + use_escher=true + ;; +esac + # Determine which AWT peer libraries to build # Check whether --enable-java-awt or --disable-java-awt was given. if test "${enable_java_awt+set}" = set; then @@ -4889,6 +4931,7 @@ peerlibs="`echo ${enable_java_awt} | tr ',' ' '`" use_xlib_awt="" use_gtk_awt="" use_qt_awt="" +use_x_awt="" # The default toolkit to use is the first one specified. TOOLKIT= @@ -4929,10 +4972,17 @@ for peer in $peerlibs ; do fi fi ;; + x) + use_x_awt=yes + if test -z "$TOOLKIT"; then + TOOLKIT=gnu.java.awt.peer.x.XToolkit + fi + ;; no) use_xlib_awt= use_gtk_awt= use_qt_awt= + use_x_awt= break ;; *) @@ -4952,12 +5002,37 @@ else fi + +if test "$use_x_awt" = yes; then + X_AWT_TRUE= + X_AWT_FALSE='#' +else + X_AWT_TRUE='#' + X_AWT_FALSE= +fi + + + +cat >>confdefs.h <<_ACEOF +#define AWT_TOOLKIT "$TOOLKIT" +_ACEOF + + + +cat >>confdefs.h <<_ACEOF +#define LIBGCJ_PREFIX "$prefix" +_ACEOF + + # Create standard.omit based on decisions we just made. cp $srcdir/standard.omit.in standard.omit if test "$use_xlib_awt" != yes; then echo gnu/awt/xlib >> standard.omit echo gnu/gcj/xlib >> standard.omit fi +if test "$use_x_awt" != yes; then + echo gnu/java/awt/peer/x >> standard.omit +fi if test -z "${with_multisubdir}"; then builddotdot=. @@ -4967,19 +5042,23 @@ fi NATIVE=yes -# Which gcj do we use? +# Which gcj and host gcj (for ecjx) do we use? which_gcj=default +host_exeext=${ac_exeext} +GCJ_FOR_ECJX= built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" if test -n "${with_cross_host}"; then # We are being configured with a cross compiler. We can't # use ac_exeext, because that is for the target platform. NATIVE=no cross_host_exeext= + GCJ_FOR_ECJX="${with_cross_host}-gcj" case "${with_cross_host}" in *mingw* | *cygwin*) cross_host_exeext=.exe ;; esac + host_exeext=${cross_host_exeext} if test -x "${built_gcc_dir}/gcj${cross_host_exeext}"; then if test x"$build_noncanonical" = x"$with_cross_host"; then # Ordinary cross (host!=target and host=build) @@ -5028,6 +5107,8 @@ esac + + # Create it, so that compile/link tests don't fail test -f libgcj.spec || touch libgcj.spec @@ -5036,7 +5117,8 @@ test -f libgcj.spec || touch libgcj.spec # Set up to configure Classpath. # FIXME: no supported way to pass args in autoconf. ac_configure_args="$ac_configure_args --with-fastjar=$JAR" -ac_configure_args="$ac_configure_args --enable-tool-wrappers" +# Disable tool wrappers to avoid ltdl.h configure check. +ac_configure_args="$ac_configure_args --disable-tool-wrappers" ac_configure_args="$ac_configure_args --disable-load-library" ac_configure_args="$ac_configure_args --${LIBGCJDEBUG}-debug" ac_configure_args="$ac_configure_args --enable-default-toolkit=$TOOLKIT" @@ -5054,7 +5136,7 @@ if test "$gconf_enabled" != yes; then ac_configure_args="$ac_configure_args --enable-default-preferences-peer=gnu.java.util.prefs.FileBasedFactory" fi if test "$use_gtk_awt" != yes; then - ac_configure_args="$ac_configure_args --disable-gtk-peer" + ac_configure_args="$ac_configure_args --disable-gtk-peer --disable-plugin" fi if test "$use_qt_awt" != yes; then ac_configure_args="$ac_configure_args --disable-qt-peer" @@ -5062,6 +5144,20 @@ else # We need this as qt is disabled by default in classpath. ac_configure_args="$ac_configure_args --enable-qt-peer" fi +if test "$use_x_awt" != yes; then + ac_configure_args="$ac_configure_args --without-escher" +else + # We need this as escher is disabled by default in classpath. + if test "$use_escher" != true; then + { { echo "$as_me:$LINENO: error: Please supply an absolute path to the Escher library" >&5 +echo "$as_me: error: Please supply an absolute path to the Escher library" >&2;} + { (exit 1); exit 1; }; } + else + ac_configure_args="$ac_configure_args --with-escher=$with_escher" + fi +fi +# -Werror causes unavoidable problems in code using alsa. +ac_configure_args="$ac_configure_args --disable-Werror" # Only use libltdl for non-newlib builds. if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then @@ -5875,7 +5971,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 5878 "configure"' > conftest.$ac_ext + echo '#line 5974 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6773,6 +6869,45 @@ if test -z "$enable_hash_synchronization"; then fi +install_ecj_jar=no +ECJ_BUILD_JAR= +ECJ_JAR= + +# Check whether --with-ecj-jar or --without-ecj-jar was given. +if test "${with_ecj_jar+set}" = set; then + withval="$with_ecj_jar" + ECJ_JAR=$withval +else + if test -f $libgcj_basedir/../ecj.jar; then + ECJ_BUILD_JAR=$libgcj_basedir/../ecj.jar + ECJ_JAR='$(jardir)/ecj.jar' + install_ecj_jar=yes + fi +fi; + + + + +if test "$ECJ_JAR" != ""; then + BUILD_ECJ1_TRUE= + BUILD_ECJ1_FALSE='#' +else + BUILD_ECJ1_TRUE='#' + BUILD_ECJ1_FALSE= +fi + + + +if test $install_ecj_jar = yes; then + INSTALL_ECJ_JAR_TRUE= + INSTALL_ECJ_JAR_FALSE='#' +else + INSTALL_ECJ_JAR_TRUE='#' + INSTALL_ECJ_JAR_FALSE= +fi + + + # Check whether --with-java-home or --without-java-home was given. if test "${with_java_home+set}" = set; then withval="$with_java_home" @@ -6878,7 +7013,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then : else cat > conftest.$ac_ext << EOF -#line 6881 "configure" +#line 7016 "configure" struct S { ~S(); }; void bar(); void foo() @@ -7008,7 +7143,6 @@ if test "${with_ecos+set}" = set; then fi; -PLATFORM_INNER_NAT_HDRS= case "$TARGET_ECOS" in no) case "$host" in *mingw*) @@ -7048,7 +7182,6 @@ fi PLATFORM=Posix PLATFORMNET=Posix PLATFORMH=posix.h - PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h' ;; esac ;; @@ -7479,10 +7612,8 @@ test -d gnu || mkdir gnu ac_config_links="$ac_config_links java/io/natFile.cc:java/io/natFile${FILE-${PLATFORM}}.cc" -# Likewise for ConcreteProcess.java and natConcreteProcess.cc. +# Likewise for natConcreteProcess.cc. test -d java/lang || mkdir java/lang - ac_config_links="$ac_config_links java/lang/ConcreteProcess.java:java/lang/${PLATFORM}Process.java" - ac_config_links="$ac_config_links java/lang/natConcreteProcess.cc:java/lang/nat${PLATFORM}Process.cc" @@ -7633,7 +7764,7 @@ ac_x_header_dirs=' /usr/openwin/share/include' if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Intrinsic.h. + # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7641,7 +7772,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -7668,7 +7799,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Intrinsic.h"; then + if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi @@ -7694,11 +7825,11 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include +#include int main () { -XtMalloc (0) +XrmInitialize () ; return 0; } @@ -13736,6 +13867,88 @@ fi fi + LIBMAGIC= + echo "$as_me:$LINENO: checking for magic_open in -lmagic" >&5 +echo $ECHO_N "checking for magic_open in -lmagic... $ECHO_C" >&6 +if test "${ac_cv_lib_magic_magic_open+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmagic $LIBS" +if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char magic_open (); +int +main () +{ +magic_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_magic_magic_open=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_magic_magic_open=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_magic_magic_open" >&5 +echo "${ECHO_T}$ac_cv_lib_magic_magic_open" >&6 +if test $ac_cv_lib_magic_magic_open = yes; then + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MAGIC_OPEN 1 +_ACEOF + + LIBMAGIC="-lmagic" +fi + + + # Test for Gtk stuff, if asked for. if test "$use_gtk_awt" = yes; then @@ -15001,6 +15214,16 @@ fi +if test "$enable_shared" = yes; then + ENABLE_SHARED_TRUE= + ENABLE_SHARED_FALSE='#' +else + ENABLE_SHARED_TRUE='#' + ENABLE_SHARED_FALSE= +fi + + + if test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes; then NEEDS_DATA_START_TRUE= NEEDS_DATA_START_FALSE='#' @@ -15069,12 +15292,12 @@ _ACEOF cat >>confdefs.h <<\_ACEOF -#define JV_VERSION "1.4.2" +#define JV_VERSION "1.5.0" _ACEOF cat >>confdefs.h <<\_ACEOF -#define JV_API_VERSION "1.4" +#define JV_API_VERSION "1.5" _ACEOF @@ -15131,11 +15354,12 @@ esac + for ac_header in unistd.h bstring.h sys/time.h sys/types.h fcntl.h \ sys/ioctl.h sys/filio.h sys/stat.h sys/select.h \ sys/socket.h netinet/in.h arpa/inet.h netdb.h net/if.h \ pwd.h sys/config.h stdint.h langinfo.h locale.h \ - dirent.h sys/rw_lock.h ifaddrs.h + dirent.h sys/rw_lock.h magic.h ifaddrs.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -16549,17 +16773,12 @@ if test "${have_tls+set}" = set; then else if test "$cross_compiling" = yes; then - if test x$gcc_no_link = xyes; then - { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 -echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} - { (exit 1); exit 1; }; } -fi -cat >conftest.$ac_ext <<_ACEOF -__thread int a; int b; int main() { return a = b; } + cat >conftest.$ac_ext <<_ACEOF +__thread int foo; _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 @@ -16573,7 +16792,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' + { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -16586,8 +16805,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 have_tls=no fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext else cat >conftest.$ac_ext <<_ACEOF @@ -16906,6 +17124,13 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs +if test -z "${JAVA_MAINTAINER_MODE_TRUE}" && test -z "${JAVA_MAINTAINER_MODE_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"JAVA_MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"JAVA_MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -16948,6 +17173,13 @@ echo "$as_me: error: conditional \"XLIB_AWT\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${X_AWT_TRUE}" && test -z "${X_AWT_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"X_AWT\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"X_AWT\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${am__fastdepGCJ_TRUE}" && test -z "${am__fastdepGCJ_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepGCJ\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -16962,6 +17194,20 @@ echo "$as_me: error: conditional \"TESTSUBDIR\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${BUILD_ECJ1_TRUE}" && test -z "${BUILD_ECJ1_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"BUILD_ECJ1\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"BUILD_ECJ1\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${INSTALL_ECJ_JAR_TRUE}" && test -z "${INSTALL_ECJ_JAR_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"INSTALL_ECJ_JAR\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"INSTALL_ECJ_JAR\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${JAVA_HOME_SET_TRUE}" && test -z "${JAVA_HOME_SET_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"JAVA_HOME_SET\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -17046,6 +17292,13 @@ echo "$as_me: error: conditional \"NATIVE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${ENABLE_SHARED_TRUE}" && test -z "${ENABLE_SHARED_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SHARED\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"ENABLE_SHARED\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${NEEDS_DATA_START_TRUE}" && test -z "${NEEDS_DATA_START_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"NEEDS_DATA_START\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -17521,7 +17774,6 @@ do "scripts/jar" ) CONFIG_FILES="$CONFIG_FILES scripts/jar" ;; "include/platform.h" ) CONFIG_LINKS="$CONFIG_LINKS include/platform.h:include/$PLATFORMH" ;; "java/io/natFile.cc" ) CONFIG_LINKS="$CONFIG_LINKS java/io/natFile.cc:java/io/natFile${FILE-${PLATFORM}}.cc" ;; - "java/lang/ConcreteProcess.java" ) CONFIG_LINKS="$CONFIG_LINKS java/lang/ConcreteProcess.java:java/lang/${PLATFORM}Process.java" ;; "java/lang/natConcreteProcess.cc" ) CONFIG_LINKS="$CONFIG_LINKS java/lang/natConcreteProcess.cc:java/lang/nat${PLATFORM}Process.cc" ;; "java/net/natVMInetAddress.cc" ) CONFIG_LINKS="$CONFIG_LINKS java/net/natVMInetAddress.cc:java/net/natVMInetAddress${PLATFORMNET}.cc" ;; "java/net/natVMNetworkInterface.cc" ) CONFIG_LINKS="$CONFIG_LINKS java/net/natVMNetworkInterface.cc:java/net/natVMNetworkInterface${PLATFORMNET}.cc" ;; @@ -17647,6 +17899,8 @@ s,@target_os@,$target_os,;t t s,@target_noncanonical@,$target_noncanonical,;t t s,@LN_S@,$LN_S,;t t s,@mkinstalldirs@,$mkinstalldirs,;t t +s,@JAVA_MAINTAINER_MODE_TRUE@,$JAVA_MAINTAINER_MODE_TRUE,;t t +s,@JAVA_MAINTAINER_MODE_FALSE@,$JAVA_MAINTAINER_MODE_FALSE,;t t s,@CC@,$CC,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t @@ -17714,7 +17968,11 @@ s,@LIBGCJDEBUG@,$LIBGCJDEBUG,;t t s,@TOOLKIT@,$TOOLKIT,;t t s,@XLIB_AWT_TRUE@,$XLIB_AWT_TRUE,;t t s,@XLIB_AWT_FALSE@,$XLIB_AWT_FALSE,;t t +s,@X_AWT_TRUE@,$X_AWT_TRUE,;t t +s,@X_AWT_FALSE@,$X_AWT_FALSE,;t t +s,@GCJ_FOR_ECJX@,$GCJ_FOR_ECJX,;t t s,@GCJH@,$GCJH,;t t +s,@host_exeext@,$host_exeext,;t t s,@INCLTDL@,$INCLTDL,;t t s,@LIBLTDL@,$LIBLTDL,;t t s,@DIRLTDL@,$DIRLTDL,;t t @@ -17729,13 +17987,19 @@ s,@am__fastdepGCJ_FALSE@,$am__fastdepGCJ_FALSE,;t t s,@subdirs@,$subdirs,;t t s,@TESTSUBDIR_TRUE@,$TESTSUBDIR_TRUE,;t t s,@TESTSUBDIR_FALSE@,$TESTSUBDIR_FALSE,;t t +s,@ECJ_BUILD_JAR@,$ECJ_BUILD_JAR,;t t +s,@ECJ_JAR@,$ECJ_JAR,;t t +s,@BUILD_ECJ1_TRUE@,$BUILD_ECJ1_TRUE,;t t +s,@BUILD_ECJ1_FALSE@,$BUILD_ECJ1_FALSE,;t t +s,@INSTALL_ECJ_JAR_TRUE@,$INSTALL_ECJ_JAR_TRUE,;t t +s,@INSTALL_ECJ_JAR_FALSE@,$INSTALL_ECJ_JAR_FALSE,;t t s,@JAVA_HOME_SET_TRUE@,$JAVA_HOME_SET_TRUE,;t t s,@JAVA_HOME_SET_FALSE@,$JAVA_HOME_SET_FALSE,;t t s,@JAVA_HOME@,$JAVA_HOME,;t t s,@INTERPRETER@,$INTERPRETER,;t t s,@LIBFFI@,$LIBFFI,;t t s,@LIBFFIINCS@,$LIBFFIINCS,;t t -s,@PLATFORM_INNER_NAT_HDRS@,$PLATFORM_INNER_NAT_HDRS,;t t +s,@PLATFORM@,$PLATFORM,;t t s,@CPP@,$CPP,;t t s,@EGREP@,$EGREP,;t t s,@USING_WIN32_PLATFORM_TRUE@,$USING_WIN32_PLATFORM_TRUE,;t t @@ -17784,6 +18048,7 @@ s,@USING_GCC_TRUE@,$USING_GCC_TRUE,;t t s,@USING_GCC_FALSE@,$USING_GCC_FALSE,;t t s,@LIBICONV@,$LIBICONV,;t t s,@LTLIBICONV@,$LTLIBICONV,;t t +s,@LIBMAGIC@,$LIBMAGIC,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t s,@GTK_LIBS@,$GTK_LIBS,;t t @@ -17803,6 +18068,8 @@ s,@BACKTRACESPEC@,$BACKTRACESPEC,;t t s,@IEEESPEC@,$IEEESPEC,;t t s,@NATIVE_TRUE@,$NATIVE_TRUE,;t t s,@NATIVE_FALSE@,$NATIVE_FALSE,;t t +s,@ENABLE_SHARED_TRUE@,$ENABLE_SHARED_TRUE,;t t +s,@ENABLE_SHARED_FALSE@,$ENABLE_SHARED_FALSE,;t t s,@NEEDS_DATA_START_TRUE@,$NEEDS_DATA_START_TRUE,;t t s,@NEEDS_DATA_START_FALSE@,$NEEDS_DATA_START_FALSE,;t t s,@GCC_UNWIND_INCLUDE@,$GCC_UNWIND_INCLUDE,;t t diff --git a/libjava/configure.ac b/libjava/configure.ac index 9e6b06635e8..2b035a44e19 100644 --- a/libjava/configure.ac +++ b/libjava/configure.ac @@ -106,6 +106,11 @@ AC_ARG_ENABLE(gconf-peer, [gconf_enabled=no] ) +AC_ARG_ENABLE(java-maintainer-mode, + AS_HELP_STRING([--enable-java-maintainer-mode], + [allow rebuilding of .class and .h files])) +AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes) + # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX. GCC_NO_EXECUTABLES @@ -119,7 +124,6 @@ GCC_NO_EXECUTABLES # (5) For libstdc++-v3, -fno-builtin must be present here so that a # non-conflicting form of std::exit can be guessed by AC_PROG_CXX, and # used in later tests. This may not be necessary in libjava; I don't know. -m4_define([ac_cv_prog_CXX],[glibcxx_cv_prog_CXX]) m4_rename([_AC_ARG_VAR_PRECIOUS],[glibcxx_PRECIOUS]) m4_define([_AC_ARG_VAR_PRECIOUS],[]) save_CXXFLAGS="$CXXFLAGS" @@ -139,7 +143,7 @@ AC_CHECK_TOOL(LD, ld) AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_PROG_AWK -AC_CHECK_PROGS([JAR], [jar fastjar], no) +AC_CHECK_PROGS([JAR], [jar fastjar gjar], no) AC_PATH_PROG([ZIP], [zip], no) AC_PATH_PROG([UNZIP], [unzip], unzip) AM_CONDITIONAL(BASH_JAR, test "$JAR" = no) @@ -196,6 +200,24 @@ AC_ARG_ENABLE(libgcj-debug, LIBGCJDEBUG="enable" fi]) +AC_ARG_WITH([escher], + AS_HELP_STRING([--with-escher=ABS.PATH], + [specify path to escher dir or JAR for X peers])) +case "$with_escher" in +"") + use_escher=false + ;; +"no") + use_escher=false + ;; +"yes") + AC_MSG_ERROR([Please supply an absolute path to Escher library]) + ;; +*) + use_escher=true + ;; +esac + # Determine which AWT peer libraries to build AC_ARG_ENABLE(java-awt, AS_HELP_STRING([--enable-java-awt], @@ -205,6 +227,7 @@ peerlibs="`echo ${enable_java_awt} | tr ',' ' '`" use_xlib_awt="" use_gtk_awt="" use_qt_awt="" +use_x_awt="" # The default toolkit to use is the first one specified. TOOLKIT= AC_SUBST(TOOLKIT) @@ -245,10 +268,17 @@ for peer in $peerlibs ; do fi fi ;; + x) + use_x_awt=yes + if test -z "$TOOLKIT"; then + TOOLKIT=gnu.java.awt.peer.x.XToolkit + fi + ;; no) use_xlib_awt= use_gtk_awt= use_qt_awt= + use_x_awt= break ;; *) @@ -258,6 +288,11 @@ for peer in $peerlibs ; do done AM_CONDITIONAL(XLIB_AWT, test "$use_xlib_awt" = yes) +AM_CONDITIONAL(X_AWT, test "$use_x_awt" = yes) + +AC_DEFINE_UNQUOTED(AWT_TOOLKIT, "$TOOLKIT", [Name of default AWT toolkit]) + +AC_DEFINE_UNQUOTED(LIBGCJ_PREFIX, "$prefix", [Installation prefix]) # Create standard.omit based on decisions we just made. cp $srcdir/standard.omit.in standard.omit @@ -265,6 +300,9 @@ if test "$use_xlib_awt" != yes; then echo gnu/awt/xlib >> standard.omit echo gnu/gcj/xlib >> standard.omit fi +if test "$use_x_awt" != yes; then + echo gnu/java/awt/peer/x >> standard.omit +fi if test -z "${with_multisubdir}"; then builddotdot=. @@ -274,19 +312,23 @@ fi NATIVE=yes -# Which gcj do we use? +# Which gcj and host gcj (for ecjx) do we use? which_gcj=default +host_exeext=${ac_exeext} +GCJ_FOR_ECJX= built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" if test -n "${with_cross_host}"; then # We are being configured with a cross compiler. We can't # use ac_exeext, because that is for the target platform. NATIVE=no cross_host_exeext= + GCJ_FOR_ECJX="${with_cross_host}-gcj" case "${with_cross_host}" in *mingw* | *cygwin*) cross_host_exeext=.exe ;; esac + host_exeext=${cross_host_exeext} if test -x "${built_gcc_dir}/gcj${cross_host_exeext}"; then if test x"$build_noncanonical" = x"$with_cross_host"; then # Ordinary cross (host!=target and host=build) @@ -333,7 +375,9 @@ case "${which_gcj}" in ;; esac +AC_SUBST(GCJ_FOR_ECJX) AC_SUBST(GCJH) +AC_SUBST(host_exeext) # Create it, so that compile/link tests don't fail test -f libgcj.spec || touch libgcj.spec @@ -343,7 +387,8 @@ test -f libgcj.spec || touch libgcj.spec # Set up to configure Classpath. # FIXME: no supported way to pass args in autoconf. ac_configure_args="$ac_configure_args --with-fastjar=$JAR" -ac_configure_args="$ac_configure_args --enable-tool-wrappers" +# Disable tool wrappers to avoid ltdl.h configure check. +ac_configure_args="$ac_configure_args --disable-tool-wrappers" ac_configure_args="$ac_configure_args --disable-load-library" ac_configure_args="$ac_configure_args --${LIBGCJDEBUG}-debug" ac_configure_args="$ac_configure_args --enable-default-toolkit=$TOOLKIT" @@ -362,7 +407,7 @@ if test "$gconf_enabled" != yes; then ac_configure_args="$ac_configure_args --enable-default-preferences-peer=gnu.java.util.prefs.FileBasedFactory" fi if test "$use_gtk_awt" != yes; then - ac_configure_args="$ac_configure_args --disable-gtk-peer" + ac_configure_args="$ac_configure_args --disable-gtk-peer --disable-plugin" fi if test "$use_qt_awt" != yes; then ac_configure_args="$ac_configure_args --disable-qt-peer" @@ -370,6 +415,18 @@ else # We need this as qt is disabled by default in classpath. ac_configure_args="$ac_configure_args --enable-qt-peer" fi +if test "$use_x_awt" != yes; then + ac_configure_args="$ac_configure_args --without-escher" +else + # We need this as escher is disabled by default in classpath. + if test "$use_escher" != true; then + AC_MSG_ERROR([Please supply an absolute path to the Escher library]) + else + ac_configure_args="$ac_configure_args --with-escher=$with_escher" + fi +fi +# -Werror causes unavoidable problems in code using alsa. +ac_configure_args="$ac_configure_args --disable-Werror" dnl --with-gcj=$GCJ dnl --with-javah=$GCJH dnl gjdoc? @@ -435,6 +492,23 @@ if test -z "$enable_hash_synchronization"; then enable_hash_synchronization=$enable_hash_synchronization_default fi + +install_ecj_jar=no +ECJ_BUILD_JAR= +ECJ_JAR= +AC_ARG_WITH(ecj-jar, + AS_HELP_STRING([--with-ecj-jar=FILE], [use preinstalled ecj jar]), + [ECJ_JAR=$withval], + [if test -f $libgcj_basedir/../ecj.jar; then + ECJ_BUILD_JAR=$libgcj_basedir/../ecj.jar + ECJ_JAR='$(jardir)/ecj.jar' + install_ecj_jar=yes + fi]) +AC_SUBST(ECJ_BUILD_JAR) +AC_SUBST(ECJ_JAR) +AM_CONDITIONAL(BUILD_ECJ1, test "$ECJ_JAR" != "") +AM_CONDITIONAL(INSTALL_ECJ_JAR, test $install_ecj_jar = yes) + AC_ARG_WITH(java-home, AS_HELP_STRING([--with-java-home=DIRECTORY], [value of java.home system property]), @@ -599,7 +673,6 @@ AC_ARG_WITH(ecos, TARGET_ECOS="$with_ecos" ) -PLATFORM_INNER_NAT_HDRS= case "$TARGET_ECOS" in no) case "$host" in *mingw*) @@ -612,7 +685,6 @@ case "$TARGET_ECOS" in PLATFORM=Posix PLATFORMNET=Posix PLATFORMH=posix.h - PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h' ;; esac ;; @@ -623,7 +695,7 @@ case "$TARGET_ECOS" in PLATFORMH=posix.h ;; esac -AC_SUBST(PLATFORM_INNER_NAT_HDRS) +AC_SUBST(PLATFORM) AC_CONFIG_LINKS(include/platform.h:include/$PLATFORMH) AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, @@ -658,9 +730,8 @@ test -d java/io || mkdir java/io test -d gnu || mkdir gnu AC_CONFIG_LINKS(java/io/natFile.cc:java/io/natFile${FILE-${PLATFORM}}.cc) -# Likewise for ConcreteProcess.java and natConcreteProcess.cc. +# Likewise for natConcreteProcess.cc. test -d java/lang || mkdir java/lang -AC_CONFIG_LINKS(java/lang/ConcreteProcess.java:java/lang/${PLATFORM}Process.java) AC_CONFIG_LINKS(java/lang/natConcreteProcess.cc:java/lang/nat${PLATFORM}Process.cc) # Likewise for natVMInetAddress.cc and natVMNetworkInterface.cc. @@ -1157,6 +1228,12 @@ else AC_CHECK_LIB(z, deflate, ZLIBSPEC=-lz, ZLIBSPEC=) fi + LIBMAGIC= + AC_CHECK_LIB(magic, magic_open, [ + AC_DEFINE([HAVE_MAGIC_OPEN], 1, [Define if you have magic_open().]) + LIBMAGIC="-lmagic"]) + AC_SUBST(LIBMAGIC) + # Test for Gtk stuff, if asked for. if test "$use_gtk_awt" = yes; then PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4) @@ -1253,6 +1330,7 @@ AC_SUBST(BACKTRACESPEC) AC_SUBST(IEEESPEC) AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes) +AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = yes) AM_CONDITIONAL(NEEDS_DATA_START, test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes) AC_SUBST(GCC_UNWIND_INCLUDE) @@ -1308,8 +1386,8 @@ GCJVERSION=$gcjversion AC_SUBST(GCJVERSION) AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID]) -AC_DEFINE(JV_VERSION, "1.4.2", [Compatibility version string]) -AC_DEFINE(JV_API_VERSION, "1.4", [API compatibility version string]) +AC_DEFINE(JV_VERSION, "1.5.0", [Compatibility version string]) +AC_DEFINE(JV_API_VERSION, "1.5", [API compatibility version string]) TL_AC_GXX_INCLUDE_DIR @@ -1322,7 +1400,7 @@ AC_CHECK_HEADERS([unistd.h bstring.h sys/time.h sys/types.h fcntl.h \ sys/ioctl.h sys/filio.h sys/stat.h sys/select.h \ sys/socket.h netinet/in.h arpa/inet.h netdb.h net/if.h \ pwd.h sys/config.h stdint.h langinfo.h locale.h \ - dirent.h sys/rw_lock.h ifaddrs.h]) + dirent.h sys/rw_lock.h magic.h ifaddrs.h]) AC_CHECK_HEADERS(inttypes.h, [ AC_DEFINE(HAVE_INTTYPES_H, 1, [Define if is available]) AC_DEFINE(JV_HAVE_INTTYPES_H, 1, [Define if is available]) diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc index 03d73a2c266..12c6032862d 100644 --- a/libjava/defineclass.cc +++ b/libjava/defineclass.cc @@ -39,7 +39,11 @@ details. */ #include #include #include +#include +#include #include +#include +#include using namespace gcj; @@ -87,6 +91,10 @@ struct _Jv_ClassReader bool verify; + // original input data. + jbyteArray input_data; + jint input_offset; + // input data. unsigned char *bytes; int len; @@ -111,6 +119,10 @@ struct _Jv_ClassReader // True if this is a 1.5 class file. bool is_15; + // Buffer holding extra reflection data. + ::java::io::ByteArrayOutputStream *reflection_data; + ::java::io::DataOutputStream *data_stream; + /* check that the given number of input bytes are available */ inline void check (int num) @@ -126,7 +138,7 @@ struct _Jv_ClassReader pos += num; } - /* read an unsignend 1-byte unit */ + /* read an unsigned 1-byte unit */ inline static jint get1u (unsigned char* bytes) { return bytes[0]; @@ -226,6 +238,16 @@ struct _Jv_ClassReader throw_class_format_error ("erroneous type descriptor"); } + ::java::io::DataOutputStream *get_reflection_stream () + { + if (reflection_data == NULL) + { + reflection_data = new ::java::io::ByteArrayOutputStream(); + data_stream = new ::java::io::DataOutputStream(reflection_data); + } + return data_stream; + } + _Jv_ClassReader (jclass klass, jbyteArray data, jint offset, jint length, java::security::ProtectionDomain *pd, _Jv_Utf8Const **name_result) @@ -234,6 +256,8 @@ struct _Jv_ClassReader throw_internal_error ("arguments to _Jv_DefineClass"); verify = true; + input_data = data; + input_offset = offset; bytes = (unsigned char*) (elements (data)+offset); len = length; pos = 0; @@ -241,6 +265,8 @@ struct _Jv_ClassReader def = klass; found_name = name_result; + reflection_data = NULL; + data_stream = NULL; def->size_in_bytes = -1; def->vtable_method_count = -1; @@ -251,15 +277,26 @@ struct _Jv_ClassReader /** and here goes the parser members defined out-of-line */ void parse (); void read_constpool (); - void prepare_pool_entry (int index, unsigned char tag); + void prepare_pool_entry (int index, unsigned char tag, + bool rewrite = true); void read_fields (); void read_methods (); void read_one_class_attribute (); void read_one_method_attribute (int method); void read_one_code_attribute (int method); - void read_one_field_attribute (int field); + void read_one_field_attribute (int field, bool *); void throw_class_format_error (const char *msg); + void handleEnclosingMethod(int); + void handleGenericSignature(jv_attr_type, unsigned short, int); + void handleAnnotationElement(); + void handleAnnotation(); + void handleAnnotations(); + void handleMemberAnnotations(jv_attr_type, int, int); + void handleAnnotationDefault(int, int); + void handleParameterAnnotations(int, int); + void finish_reflection_data (); + /** check an utf8 entry, without creating a Utf8Const object */ bool is_attribute_name (int index, const char *name); @@ -269,9 +306,8 @@ struct _Jv_ClassReader void handleInterfacesBegin (int); void handleInterface (int, int); void handleFieldsBegin (int); - void handleField (int, int, int, int); - void handleFieldsEnd (); - void handleConstantValueAttribute (int,int); + void handleField (int, int, int, int, int *); + void handleConstantValueAttribute (int, int, bool *); void handleMethodsBegin (int); void handleMethod (int, int, int, int); void handleMethodsEnd (); @@ -377,13 +413,242 @@ _Jv_ClassReader::parse () if (pos != len) throw_class_format_error ("unused data before end of file"); + finish_reflection_data (); + // Tell everyone we're done. def->state = JV_STATE_READ; if (gcj::verbose_class_flag) _Jv_Linker::print_class_loaded (def); + ++gcj::loadedClasses; def->notifyAll (); } +void +_Jv_ClassReader::finish_reflection_data () +{ + if (data_stream == NULL) + return; + data_stream->writeByte(JV_DONE_ATTR); + data_stream->flush(); + int nbytes = reflection_data->count; + unsigned char *new_bytes = (unsigned char *) _Jv_AllocBytes (nbytes); + memcpy (new_bytes, elements (reflection_data->buf), nbytes); + def->reflection_data = new_bytes; +} + +void +_Jv_ClassReader::handleEnclosingMethod (int len) +{ + if (len != 4) + throw_class_format_error ("invalid EnclosingMethod attribute"); + // FIXME: only allow one... + + int class_index = read2u(); + check_tag (class_index, JV_CONSTANT_Class); + prepare_pool_entry (class_index, JV_CONSTANT_Class); + + int method_index = read2u(); + // Zero is ok and means no enclosing method. + if (method_index != 0) + { + check_tag (method_index, JV_CONSTANT_NameAndType); + prepare_pool_entry (method_index, JV_CONSTANT_NameAndType); + } + + ::java::io::DataOutputStream *stream = get_reflection_stream (); + stream->writeByte(JV_CLASS_ATTR); + stream->writeInt(5); + stream->writeByte(JV_ENCLOSING_METHOD_KIND); + stream->writeShort(class_index); + stream->writeShort(method_index); +} + +void +_Jv_ClassReader::handleGenericSignature (jv_attr_type type, + unsigned short index, + int len) +{ + if (len != 2) + throw_class_format_error ("invalid Signature attribute"); + + int cpool_idx = read2u(); + check_tag (cpool_idx, JV_CONSTANT_Utf8); + prepare_pool_entry (cpool_idx, JV_CONSTANT_Utf8, false); + + ::java::io::DataOutputStream *stream = get_reflection_stream (); + stream->writeByte(type); + int attrlen = 3; + if (type != JV_CLASS_ATTR) + attrlen += 2; + stream->writeInt(attrlen); + if (type != JV_CLASS_ATTR) + stream->writeShort(index); + stream->writeByte(JV_SIGNATURE_KIND); + stream->writeShort(cpool_idx); +} + +void +_Jv_ClassReader::handleAnnotationElement() +{ + int tag = read1u(); + switch (tag) + { + case 'B': + case 'C': + case 'S': + case 'Z': + case 'I': + { + int index = read2u(); + check_tag (index, JV_CONSTANT_Integer); + prepare_pool_entry (index, JV_CONSTANT_Integer); + } + break; + case 'D': + { + int index = read2u(); + check_tag (index, JV_CONSTANT_Double); + prepare_pool_entry (index, JV_CONSTANT_Double); + } + break; + case 'F': + { + int index = read2u(); + check_tag (index, JV_CONSTANT_Float); + prepare_pool_entry (index, JV_CONSTANT_Float); + } + break; + case 'J': + { + int index = read2u(); + check_tag (index, JV_CONSTANT_Long); + prepare_pool_entry (index, JV_CONSTANT_Long); + } + break; + case 's': + { + int index = read2u(); + // Despite what the JVM spec says, compilers generate a Utf8 + // constant here, not a String. + check_tag (index, JV_CONSTANT_Utf8); + prepare_pool_entry (index, JV_CONSTANT_Utf8, false); + } + break; + + case 'e': + { + int type_name_index = read2u(); + int const_name_index = read2u (); + check_tag (type_name_index, JV_CONSTANT_Utf8); + prepare_pool_entry (type_name_index, JV_CONSTANT_Utf8); + check_tag (const_name_index, JV_CONSTANT_Utf8); + prepare_pool_entry (const_name_index, JV_CONSTANT_Utf8, false); + } + break; + case 'c': + { + int index = read2u(); + check_tag (index, JV_CONSTANT_Utf8); + prepare_pool_entry (index, JV_CONSTANT_Utf8); + } + break; + case '@': + handleAnnotation(); + break; + case '[': + { + int n_array_elts = read2u (); + for (int i = 0; i < n_array_elts; ++i) + handleAnnotationElement(); + } + break; + default: + throw_class_format_error ("invalid annotation element"); + } +} + +void +_Jv_ClassReader::handleAnnotation() +{ + int type_index = read2u(); + check_tag (type_index, JV_CONSTANT_Utf8); + prepare_pool_entry (type_index, JV_CONSTANT_Utf8); + + int npairs = read2u(); + for (int i = 0; i < npairs; ++i) + { + int name_index = read2u(); + check_tag (name_index, JV_CONSTANT_Utf8); + prepare_pool_entry (name_index, JV_CONSTANT_Utf8, false); + handleAnnotationElement(); + } +} + +void +_Jv_ClassReader::handleAnnotations() +{ + int num = read2u(); + while (num--) + handleAnnotation(); +} + +void +_Jv_ClassReader::handleMemberAnnotations(jv_attr_type member_type, + int member_index, + int len) +{ + // We're going to copy the bytes in verbatim. But first we want to + // make sure the attribute is well-formed, and we want to prepare + // the constant pool. So, we save our starting point. + int orig_pos = pos; + + handleAnnotations(); + // FIXME: check that we read all LEN bytes? + + ::java::io::DataOutputStream *stream = get_reflection_stream (); + stream->writeByte(member_type); + int newLen = len + 1; + if (member_type != JV_CLASS_ATTR) + newLen += 2; + stream->writeInt(newLen); + stream->writeByte(JV_ANNOTATIONS_KIND); + if (member_type != JV_CLASS_ATTR) + stream->writeShort(member_index); + // Write the data as-is. + stream->write(input_data, input_offset + orig_pos, len); +} + +void +_Jv_ClassReader::handleAnnotationDefault(int member_index, int len) +{ + int orig_pos = pos; + handleAnnotationElement(); + + ::java::io::DataOutputStream *stream = get_reflection_stream (); + stream->writeByte(JV_METHOD_ATTR); + stream->writeInt(len + 3); + stream->writeByte(JV_ANNOTATION_DEFAULT_KIND); + stream->writeShort(member_index); + stream->write(input_data, input_offset + orig_pos, len); +} + +void +_Jv_ClassReader::handleParameterAnnotations(int member_index, int len) +{ + int orig_pos = pos; + + int n_params = read1u(); + for (int i = 0; i < n_params; ++i) + handleAnnotations(); + + ::java::io::DataOutputStream *stream = get_reflection_stream (); + stream->writeByte(JV_METHOD_ATTR); + stream->writeInt(len + 3); + stream->writeByte(JV_PARAMETER_ANNOTATIONS_KIND); + stream->writeShort(member_index); + stream->write(input_data, input_offset + orig_pos, len); +} + void _Jv_ClassReader::read_constpool () { tags = (unsigned char*) _Jv_AllocBytes (pool_count); @@ -444,6 +709,47 @@ void _Jv_ClassReader::read_fields () int fields_count = read2u (); handleFieldsBegin (fields_count); + // We want to sort the fields so that static fields come first, + // followed by instance fields. We do this before parsing the + // fields so that we can have the new indices available when + // creating the annotation data structures. + + // Allocate this on the heap in case there are a large number of + // fields. + int *fieldmap = (int *) _Jv_AllocBytes (fields_count * sizeof (int)); + int save_pos = pos; + int static_count = 0, instance_count = -1; + for (int i = 0; i < fields_count; ++i) + { + using namespace java::lang::reflect; + + int access_flags = read2u (); + skip (4); + int attributes_count = read2u (); + + if ((access_flags & Modifier::STATIC) != 0) + fieldmap[i] = static_count++; + else + fieldmap[i] = instance_count--; + + for (int j = 0; j < attributes_count; ++j) + { + skip (2); + int length = read4 (); + skip (length); + } + } + pos = save_pos; + + // In the loop above, instance fields are represented by negative + // numbers. Here we rewrite these to be proper offsets. + for (int i = 0; i < fields_count; ++i) + { + if (fieldmap[i] < 0) + fieldmap[i] = static_count - 1 - fieldmap[i]; + } + def->static_field_count = static_count; + for (int i = 0; i < fields_count; i++) { int access_flags = read2u (); @@ -457,15 +763,14 @@ void _Jv_ClassReader::read_fields () check_tag (descriptor_index, JV_CONSTANT_Utf8); prepare_pool_entry (descriptor_index, JV_CONSTANT_Utf8); - handleField (i, access_flags, name_index, descriptor_index); + handleField (i, access_flags, name_index, descriptor_index, fieldmap); + bool found_value = false; for (int j = 0; j < attributes_count; j++) { - read_one_field_attribute (i); + read_one_field_attribute (fieldmap[i], &found_value); } } - - handleFieldsEnd (); } bool @@ -479,7 +784,8 @@ _Jv_ClassReader::is_attribute_name (int index, const char *name) return !memcmp (bytes+offsets[index]+2, name, len); } -void _Jv_ClassReader::read_one_field_attribute (int field_index) +void _Jv_ClassReader::read_one_field_attribute (int field_index, + bool *found_value) { int name = read2u (); int length = read4 (); @@ -495,22 +801,23 @@ void _Jv_ClassReader::read_one_field_attribute (int field_index) || tags[cv] == JV_CONSTANT_Long || tags[cv] == JV_CONSTANT_Double || tags[cv] == JV_CONSTANT_String)) - { - handleConstantValueAttribute (field_index, cv); - } - else - { - throw_class_format_error ("erroneous ConstantValue attribute"); - } - - if (length != 2) + { + handleConstantValueAttribute (field_index, cv, found_value); + } + else + { throw_class_format_error ("erroneous ConstantValue attribute"); - } + } - else - { - skip (length); - } + if (length != 2) + throw_class_format_error ("erroneous ConstantValue attribute"); + } + else if (is_attribute_name (name, "Signature")) + handleGenericSignature(JV_FIELD_ATTR, field_index, length); + else if (is_attribute_name (name, "RuntimeVisibleAnnotations")) + handleMemberAnnotations(JV_FIELD_ATTR, field_index, length); + else + skip (length); } void _Jv_ClassReader::read_methods () @@ -634,7 +941,14 @@ void _Jv_ClassReader::read_one_method_attribute (int method_index) if ((pos - start_off) != length) throw_class_format_error ("code attribute too short"); } - + else if (is_attribute_name (name, "Signature")) + handleGenericSignature(JV_METHOD_ATTR, method_index, length); + else if (is_attribute_name (name, "RuntimeVisibleAnnotations")) + handleMemberAnnotations(JV_METHOD_ATTR, method_index, length); + else if (is_attribute_name (name, "RuntimeVisibleParameterAnnotations")) + handleParameterAnnotations(method_index, length); + else if (is_attribute_name (name, "AnnotationDefault")) + handleAnnotationDefault(method_index, length); else { /* ignore unknown attributes */ @@ -680,14 +994,28 @@ void _Jv_ClassReader::read_one_class_attribute () { int source_index = read2u (); check_tag (source_index, JV_CONSTANT_Utf8); - prepare_pool_entry (source_index, JV_CONSTANT_Utf8); + prepare_pool_entry (source_index, JV_CONSTANT_Utf8, false); def_interp->source_file_name = _Jv_NewStringUtf8Const (def->constants.data[source_index].utf8); } + else if (is_attribute_name (name, "Signature")) + handleGenericSignature(JV_CLASS_ATTR, 0, length); + else if (is_attribute_name (name, "EnclosingMethod")) + handleEnclosingMethod(length); + else if (is_attribute_name (name, "RuntimeVisibleAnnotations")) + handleMemberAnnotations(JV_CLASS_ATTR, 0, length); + else if (is_attribute_name (name, "InnerClasses")) + { + ::java::io::DataOutputStream *stream = get_reflection_stream (); + stream->writeByte(JV_CLASS_ATTR); + stream->writeInt(length + 1); + stream->writeByte(JV_INNER_CLASSES_KIND); + stream->write(input_data, input_offset + pos, length); + skip (length); + } else { - /* Currently, we ignore most class attributes. - FIXME: Add inner-classes attributes support. */ + /* Currently, we ignore most class attributes. */ skip (length); } } @@ -752,9 +1080,15 @@ void _Jv_ClassReader::handleConstantPool () } /* this is a recursive procedure, which will prepare pool entries as needed. - Which is how we avoid initializing those entries which go unused. */ + Which is how we avoid initializing those entries which go unused. + + REWRITE is true iff this pool entry is the Utf8 representation of a + class name or a signature. +*/ + void -_Jv_ClassReader::prepare_pool_entry (int index, unsigned char this_tag) +_Jv_ClassReader::prepare_pool_entry (int index, unsigned char this_tag, + bool rewrite) { /* these two, pool_data and pool_tags, point into the class structure we are currently defining */ @@ -775,25 +1109,29 @@ _Jv_ClassReader::prepare_pool_entry (int index, unsigned char this_tag) { case JV_CONSTANT_Utf8: { - // If we came here, it is because some other tag needs this - // utf8-entry for type information! Thus, we translate /'s to .'s in - // order to accomondate gcj's internal representation. - int len = get2u (this_data); - char *buffer = (char*) __builtin_alloca (len); char *s = ((char*) this_data)+2; + pool_tags[index] = JV_CONSTANT_Utf8; + + if (! rewrite) + { + pool_data[index].utf8 = _Jv_makeUtf8Const (s, len); + break; + } - /* FIXME: avoid using a buffer here */ + // If REWRITE is set, it is because some other tag needs this + // utf8-entry for type information: it is a class or a + // signature. Thus, we translate /'s to .'s in order to + // accomondate gcj's internal representation. + char *buffer = (char*) __builtin_alloca (len); for (int i = 0; i < len; i++) { if (s[i] == '/') buffer[i] = '.'; else - buffer[i] = (char) s[i]; + buffer[i] = s[i]; } - pool_data[index].utf8 = _Jv_makeUtf8Const (buffer, len); - pool_tags[index] = JV_CONSTANT_Utf8; } break; @@ -861,8 +1199,7 @@ _Jv_ClassReader::prepare_pool_entry (int index, unsigned char this_tag) _Jv_ushort type_index = get2u (this_data+2); check_tag (name_index, JV_CONSTANT_Utf8); - prepare_pool_entry (name_index, JV_CONSTANT_Utf8); - + prepare_pool_entry (name_index, JV_CONSTANT_Utf8, false); check_tag (type_index, JV_CONSTANT_Utf8); prepare_pool_entry (type_index, JV_CONSTANT_Utf8); @@ -1121,19 +1458,22 @@ void _Jv_ClassReader::handleFieldsBegin (int count) void _Jv_ClassReader::handleField (int field_no, int flags, int name, - int desc) + int desc, + int *fieldmap) { using namespace java::lang::reflect; _Jv_word *pool_data = def->constants.data; - _Jv_Field *field = &def->fields[field_no]; + _Jv_Field *field = &def->fields[fieldmap[field_no]]; _Jv_Utf8Const *field_name = pool_data[name].utf8; field->name = field_name; // Ignore flags we don't know about. - field->flags = flags & Modifier::ALL_FLAGS; + field->flags = flags & (Field::FIELD_MODIFIERS + | Modifier::SYNTHETIC + | Modifier::ENUM); _Jv_Utf8Const* sig = pool_data[desc].utf8; @@ -1143,7 +1483,7 @@ void _Jv_ClassReader::handleField (int field_no, for (int i = 0; i < field_no; ++i) { - if (_Jv_equalUtf8Consts (field_name, def->fields[i].name) + if (_Jv_equalUtf8Consts (field_name, def->fields[fieldmap[i]].name) && _Jv_equalUtf8Consts (sig, // We know the other fields are // unresolved. @@ -1174,7 +1514,8 @@ void _Jv_ClassReader::handleField (int field_no, void _Jv_ClassReader::handleConstantValueAttribute (int field_index, - int value) + int value, + bool *found_value) { using namespace java::lang::reflect; @@ -1189,10 +1530,10 @@ void _Jv_ClassReader::handleConstantValueAttribute (int field_index, } // do not allow multiple constant fields! - if (field->flags & _Jv_FIELD_CONSTANT_VALUE) + if (*found_value) throw_class_format_error ("field has multiple ConstantValue attributes"); - field->flags |= _Jv_FIELD_CONSTANT_VALUE; + *found_value = true; def_interp->field_initializers[field_index] = value; /* type check the initializer */ @@ -1203,53 +1544,6 @@ void _Jv_ClassReader::handleConstantValueAttribute (int field_index, /* FIXME: do the rest */ } -void _Jv_ClassReader::handleFieldsEnd () -{ - using namespace java::lang::reflect; - - // We need to reorganize the fields so that the static ones are first, - // to conform to GCJ class layout. - - int low = 0; - int high = def->field_count-1; - _Jv_Field *fields = def->fields; - _Jv_ushort *inits = def_interp->field_initializers; - - // this is kind of a raw version of quicksort. - while (low < high) - { - // go forward on low, while it's a static - while (low < high && (fields[low].flags & Modifier::STATIC) != 0) - low++; - - // go backwards on high, while it's a non-static - while (low < high && (fields[high].flags & Modifier::STATIC) == 0) - high--; - - if (low==high) - break; - - _Jv_Field tmp = fields[low]; - _Jv_ushort itmp = inits[low]; - - fields[low] = fields[high]; - inits[low] = inits[high]; - - fields[high] = tmp; - inits[high] = itmp; - - high -= 1; - low += 1; - } - - if ((fields[low].flags & Modifier::STATIC) != 0) - low += 1; - - def->static_field_count = low; -} - - - void _Jv_ClassReader::handleMethodsBegin (int count) { @@ -1278,7 +1572,7 @@ void _Jv_ClassReader::handleMethod _Jv_Method *method = &def->methods[mth_index]; check_tag (name, JV_CONSTANT_Utf8); - prepare_pool_entry (name, JV_CONSTANT_Utf8); + prepare_pool_entry (name, JV_CONSTANT_Utf8, false); method->name = pool_data[name].utf8; check_tag (desc, JV_CONSTANT_Utf8); @@ -1286,7 +1580,10 @@ void _Jv_ClassReader::handleMethod method->signature = pool_data[desc].utf8; // ignore unknown flags - method->accflags = accflags & Modifier::ALL_FLAGS; + method->accflags = accflags & (Method::METHOD_MODIFIERS + | Modifier::BRIDGE + | Modifier::SYNTHETIC + | Modifier::VARARGS); // Initialize... method->ncode = 0; diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in index 5236544a99d..356611822b5 100644 --- a/libjava/gcj/Makefile.in +++ b/libjava/gcj/Makefile.in @@ -91,6 +91,8 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BASH_JAR_FALSE = @BASH_JAR_FALSE@ BASH_JAR_TRUE = @BASH_JAR_TRUE@ +BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ +BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -110,7 +112,11 @@ DIVIDESPEC = @DIVIDESPEC@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +ECJ_BUILD_JAR = @ECJ_BUILD_JAR@ +ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ +ENABLE_SHARED_FALSE = @ENABLE_SHARED_FALSE@ +ENABLE_SHARED_TRUE = @ENABLE_SHARED_TRUE@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ @@ -121,6 +127,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ GCTESTSPEC = @GCTESTSPEC@ @@ -132,6 +139,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ INSTALL_DATA = @INSTALL_DATA@ +INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ +INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -140,6 +149,8 @@ JAR = @JAR@ JAVA_HOME = @JAVA_HOME@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JC1GCSPEC = @JC1GCSPEC@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -158,6 +169,7 @@ LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@ LIBGCJ_SPEC = @LIBGCJ_SPEC@ LIBICONV = @LIBICONV@ LIBLTDL = @LIBLTDL@ +LIBMAGIC = @LIBMAGIC@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ @@ -182,7 +194,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ -PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@ +PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -224,6 +236,8 @@ USING_WIN32_THREADS_TRUE = @USING_WIN32_THREADS_TRUE@ VERSION = @VERSION@ XLIB_AWT_FALSE = @XLIB_AWT_FALSE@ XLIB_AWT_TRUE = @XLIB_AWT_TRUE@ +X_AWT_FALSE = @X_AWT_FALSE@ +X_AWT_TRUE = @X_AWT_TRUE@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -269,6 +283,7 @@ here = @here@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ +host_exeext = @host_exeext@ host_os = @host_os@ host_subdir = @host_subdir@ host_vendor = @host_vendor@ diff --git a/libjava/gcj/field.h b/libjava/gcj/field.h index 8421bc7e046..2f483eb38eb 100644 --- a/libjava/gcj/field.h +++ b/libjava/gcj/field.h @@ -1,6 +1,6 @@ // field.h - Header file for fieldID instances. -*- c++ -*- -/* Copyright (C) 1998, 1999, 2000, 2004 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2004, 2006 Free Software Foundation This file is part of libgcj. @@ -17,7 +17,6 @@ details. */ #include #define _Jv_FIELD_UNRESOLVED_FLAG 0x8000 -#define _Jv_FIELD_CONSTANT_VALUE 0x4000 struct _Jv_Field { diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h index 61f5276c022..1e4e9488b59 100644 --- a/libjava/gcj/javaprims.h +++ b/libjava/gcj/javaprims.h @@ -133,6 +133,7 @@ extern "Java" class SyncFailedException; class UTFDataFormatException; class UnsupportedEncodingException; + class VMObjectInputStream; class VMObjectStreamClass; class WriteAbortedException; class Writer; @@ -157,15 +158,15 @@ extern "Java" class ClassCircularityError; class ClassFormatError; class ClassLoader; + class ClassLoader$AnnotationsKey; class ClassNotFoundException; class CloneNotSupportedException; class Cloneable; class Comparable; class Compiler; - class ConcreteProcess; - class ConcreteProcess$EOFInputStream; - class ConcreteProcess$ProcessManager; + class Deprecated; class Double; + class EcosProcess; class Enum; class EnumConstantNotPresentException; class Error; @@ -201,16 +202,21 @@ extern "Java" class NumberFormatException; class Object; class OutOfMemoryError; + class Override; class Package; + class PosixProcess; + class PosixProcess$EOFInputStream; + class PosixProcess$ProcessManager; class Process; + class ProcessBuilder; class Readable; class Runnable; class Runtime; class RuntimeException; class RuntimePermission; - class SecurityContext; class SecurityException; class SecurityManager; + class SecurityManager$1; class Short; class StackOverflowError; class StackTraceElement; @@ -220,8 +226,13 @@ extern "Java" class StringBuffer; class StringBuilder; class StringIndexOutOfBoundsException; + class SuppressWarnings; class System; + class System$EnvironmentCollection; + class System$EnvironmentMap; + class System$EnvironmentSet; class Thread; + class Thread$State; class Thread$UncaughtExceptionHandler; class ThreadDeath; class ThreadGroup; @@ -237,16 +248,23 @@ extern "Java" class VMCompiler; class VMDouble; class VMFloat; - class VMSecurityManager; class VMThrowable; class VerifyError; class VirtualMachineError; class Void; + class Win32Process; namespace annotation { class Annotation; class AnnotationFormatError; class AnnotationTypeMismatchException; + class Documented; + class ElementType; + class IncompleteAnnotationException; + class Inherited; + class Retention; + class RetentionPolicy; + class Target; } namespace instrument @@ -258,6 +276,26 @@ extern "Java" class UnmodifiableClassException; } + namespace management + { + class ClassLoadingMXBean; + class CompilationMXBean; + class GarbageCollectorMXBean; + class ManagementFactory; + class ManagementPermission; + class MemoryMXBean; + class MemoryManagerMXBean; + class MemoryNotificationInfo; + class MemoryPoolMXBean; + class MemoryType; + class MemoryUsage; + class OperatingSystemMXBean; + class RuntimeMXBean; + class ThreadInfo; + class ThreadMXBean; + class VMManagementFactory; + } + namespace ref { class PhantomReference; @@ -304,17 +342,22 @@ extern "Java" class AbstractList; class AbstractList$1; class AbstractList$2; + class AbstractList$3; class AbstractList$RandomAccessSubList; class AbstractList$SubList; - class AbstractList$SubList$3; class AbstractMap; class AbstractMap$1; - class AbstractMap$1$2; + class AbstractMap$2; class AbstractMap$3; - class AbstractMap$3$4; - class AbstractMap$BasicMapEntry; + class AbstractMap$4; + class AbstractMap$SimpleEntry; + class AbstractMap$SimpleImmutableEntry; + class AbstractQueue; class AbstractSequentialList; class AbstractSet; + class ArrayDeque; + class ArrayDeque$DeqIterator; + class ArrayDeque$DescendingIterator; class ArrayList; class Arrays; class Arrays$ArrayList; @@ -323,6 +366,25 @@ extern "Java" class Collection; class Collections; class Collections$1; + class Collections$1$SynchronizedMapEntry; + class Collections$2; + class Collections$3; + class Collections$4; + class Collections$5; + class Collections$6; + class Collections$7; + class Collections$8; + class Collections$9; + class Collections$CheckedCollection; + class Collections$CheckedIterator; + class Collections$CheckedList; + class Collections$CheckedListIterator; + class Collections$CheckedMap; + class Collections$CheckedMap$CheckedEntrySet; + class Collections$CheckedRandomAccessList; + class Collections$CheckedSet; + class Collections$CheckedSortedMap; + class Collections$CheckedSortedSet; class Collections$CopiesList; class Collections$EmptyList; class Collections$EmptyMap; @@ -330,17 +392,12 @@ extern "Java" class Collections$ReverseComparator; class Collections$SingletonList; class Collections$SingletonMap; - class Collections$SingletonMap$3; class Collections$SingletonSet; - class Collections$SingletonSet$2; class Collections$SynchronizedCollection; class Collections$SynchronizedIterator; class Collections$SynchronizedList; class Collections$SynchronizedListIterator; class Collections$SynchronizedMap; - class Collections$SynchronizedMap$4$SynchronizedMapEntry; - class Collections$SynchronizedMap$5; - class Collections$SynchronizedMap$5$6; class Collections$SynchronizedRandomAccessList; class Collections$SynchronizedSet; class Collections$SynchronizedSortedMap; @@ -351,8 +408,7 @@ extern "Java" class Collections$UnmodifiableListIterator; class Collections$UnmodifiableMap; class Collections$UnmodifiableMap$UnmodifiableEntrySet; - class Collections$UnmodifiableMap$UnmodifiableEntrySet$7; - class Collections$UnmodifiableMap$UnmodifiableEntrySet$7$8; + class Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry; class Collections$UnmodifiableRandomAccessList; class Collections$UnmodifiableSet; class Collections$UnmodifiableSortedMap; @@ -361,12 +417,30 @@ extern "Java" class ConcurrentModificationException; class Currency; class Date; + class Deque; class Dictionary; + class DuplicateFormatFlagsException; class EmptyStackException; + class EnumMap; + class EnumMap$1; + class EnumMap$2; + class EnumMap$3; + class EnumMap$4; + class EnumMap$5; + class EnumMap$6; + class EnumMap$7; + class EnumSet; + class EnumSet$1; class Enumeration; class EventListener; class EventListenerProxy; class EventObject; + class FormatFlagsConversionMismatchException; + class Formattable; + class FormattableFlags; + class Formatter; + class Formatter$BigDecimalLayoutForm; + class FormatterClosedException; class GregorianCalendar; class HashMap; class HashMap$1; @@ -392,6 +466,13 @@ extern "Java" class IdentityHashMap$3; class IdentityHashMap$IdentityEntry; class IdentityHashMap$IdentityIterator; + class IllegalFormatCodePointException; + class IllegalFormatConversionException; + class IllegalFormatException; + class IllegalFormatFlagsException; + class IllegalFormatPrecisionException; + class IllegalFormatWidthException; + class InputMismatchException; class InvalidPropertiesFormatException; class Iterator; class LinkedHashMap; @@ -407,17 +488,25 @@ extern "Java" class Locale; class Map; class Map$Entry; + class MissingFormatArgumentException; + class MissingFormatWidthException; class MissingResourceException; + class NavigableMap; + class NavigableSet; class NoSuchElementException; class Observable; class Observer; + class PriorityQueue; + class PriorityQueue$1; class Properties; class PropertyPermission; class PropertyPermissionCollection; class PropertyResourceBundle; + class Queue; class Random; class RandomAccess; class ResourceBundle; + class ResourceBundle$1; class ResourceBundle$BundleKey; class Set; class SimpleTimeZone; @@ -436,22 +525,205 @@ extern "Java" class TreeMap$1; class TreeMap$2; class TreeMap$3; + class TreeMap$4; + class TreeMap$5; + class TreeMap$6; class TreeMap$Node; class TreeMap$SubMap; - class TreeMap$SubMap$4; - class TreeMap$SubMap$5; - class TreeMap$SubMap$6; class TreeMap$TreeIterator; class TreeSet; + class UUID; + class UnknownFormatConversionException; + class UnknownFormatFlagsException; class VMTimeZone; class Vector; class Vector$1; class WeakHashMap; class WeakHashMap$1; + class WeakHashMap$2; class WeakHashMap$WeakBucket; class WeakHashMap$WeakBucket$WeakEntry; class WeakHashMap$WeakEntrySet; - class WeakHashMap$WeakEntrySet$2; + namespace concurrent + { + class AbstractExecutorService; + class ArrayBlockingQueue; + class ArrayBlockingQueue$Itr; + class BlockingDeque; + class BlockingQueue; + class BrokenBarrierException; + class Callable; + class CancellationException; + class CompletionService; + class ConcurrentHashMap; + class ConcurrentHashMap$EntryIterator; + class ConcurrentHashMap$EntrySet; + class ConcurrentHashMap$HashEntry; + class ConcurrentHashMap$HashIterator; + class ConcurrentHashMap$KeyIterator; + class ConcurrentHashMap$KeySet; + class ConcurrentHashMap$Segment; + class ConcurrentHashMap$ValueIterator; + class ConcurrentHashMap$Values; + class ConcurrentHashMap$WriteThroughEntry; + class ConcurrentLinkedQueue; + class ConcurrentLinkedQueue$Itr; + class ConcurrentLinkedQueue$Node; + class ConcurrentMap; + class ConcurrentNavigableMap; + class ConcurrentSkipListMap; + class ConcurrentSkipListMap$ComparableUsingComparator; + class ConcurrentSkipListMap$EntryIterator; + class ConcurrentSkipListMap$EntrySet; + class ConcurrentSkipListMap$HeadIndex; + class ConcurrentSkipListMap$Index; + class ConcurrentSkipListMap$Iter; + class ConcurrentSkipListMap$KeyIterator; + class ConcurrentSkipListMap$KeySet; + class ConcurrentSkipListMap$Node; + class ConcurrentSkipListMap$SubMap; + class ConcurrentSkipListMap$SubMap$SubMapEntryIterator; + class ConcurrentSkipListMap$SubMap$SubMapIter; + class ConcurrentSkipListMap$SubMap$SubMapKeyIterator; + class ConcurrentSkipListMap$SubMap$SubMapValueIterator; + class ConcurrentSkipListMap$ValueIterator; + class ConcurrentSkipListMap$Values; + class ConcurrentSkipListSet; + class CopyOnWriteArrayList; + class CopyOnWriteArraySet; + class CountDownLatch; + class CountDownLatch$Sync; + class CyclicBarrier; + class CyclicBarrier$Generation; + class DelayQueue; + class DelayQueue$Itr; + class Delayed; + class Exchanger; + class Exchanger$Node; + class Exchanger$Slot; + class ExecutionException; + class Executor; + class ExecutorCompletionService; + class ExecutorCompletionService$QueueingFuture; + class ExecutorService; + class Executors; + class Executors$1; + class Executors$2; + class Executors$3; + class Executors$4; + class Executors$5; + class Executors$6; + class Executors$DefaultThreadFactory; + class Executors$DelegatedExecutorService; + class Executors$DelegatedScheduledExecutorService; + class Executors$FinalizableDelegatedExecutorService; + class Executors$PrivilegedCallable; + class Executors$PrivilegedCallableUsingCurrentClassLoader; + class Executors$PrivilegedThreadFactory; + class Executors$RunnableAdapter; + class Future; + class FutureTask; + class FutureTask$Sync; + class LinkedBlockingDeque; + class LinkedBlockingDeque$AbstractItr; + class LinkedBlockingDeque$DescendingItr; + class LinkedBlockingDeque$Itr; + class LinkedBlockingDeque$Node; + class LinkedBlockingQueue; + class LinkedBlockingQueue$Itr; + class LinkedBlockingQueue$Node; + class PriorityBlockingQueue; + class PriorityBlockingQueue$Itr; + class RejectedExecutionException; + class RejectedExecutionHandler; + class RunnableFuture; + class RunnableScheduledFuture; + class ScheduledExecutorService; + class ScheduledFuture; + class ScheduledThreadPoolExecutor; + class ScheduledThreadPoolExecutor$1; + class ScheduledThreadPoolExecutor$DelayedWorkQueue; + class ScheduledThreadPoolExecutor$ScheduledFutureTask; + class Semaphore; + class Semaphore$FairSync; + class Semaphore$NonfairSync; + class Semaphore$Sync; + class SynchronousQueue; + class SynchronousQueue$EmptyIterator; + class SynchronousQueue$FifoWaitQueue; + class SynchronousQueue$LifoWaitQueue; + class SynchronousQueue$TransferQueue; + class SynchronousQueue$TransferQueue$QNode; + class SynchronousQueue$TransferStack; + class SynchronousQueue$TransferStack$SNode; + class SynchronousQueue$Transferer; + class SynchronousQueue$WaitQueue; + class ThreadFactory; + class ThreadPoolExecutor; + class ThreadPoolExecutor$AbortPolicy; + class ThreadPoolExecutor$CallerRunsPolicy; + class ThreadPoolExecutor$DiscardOldestPolicy; + class ThreadPoolExecutor$DiscardPolicy; + class ThreadPoolExecutor$Worker; + class TimeUnit; + class TimeUnit$1; + class TimeUnit$2; + class TimeUnit$3; + class TimeUnit$4; + class TimeUnit$5; + class TimeUnit$6; + class TimeUnit$7; + class TimeoutException; + namespace atomic + { + class AtomicBoolean; + class AtomicInteger; + class AtomicIntegerArray; + class AtomicIntegerFieldUpdater; + class AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl; + class AtomicLong; + class AtomicLongArray; + class AtomicLongFieldUpdater; + class AtomicLongFieldUpdater$CASUpdater; + class AtomicLongFieldUpdater$LockedUpdater; + class AtomicMarkableReference; + class AtomicMarkableReference$ReferenceBooleanPair; + class AtomicReference; + class AtomicReferenceArray; + class AtomicReferenceFieldUpdater; + class AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl; + class AtomicStampedReference; + class AtomicStampedReference$ReferenceIntegerPair; + } + + namespace locks + { + class AbstractOwnableSynchronizer; + class AbstractQueuedLongSynchronizer; + class AbstractQueuedLongSynchronizer$ConditionObject; + class AbstractQueuedLongSynchronizer$Node; + class AbstractQueuedSynchronizer; + class AbstractQueuedSynchronizer$ConditionObject; + class AbstractQueuedSynchronizer$Node; + class Condition; + class Lock; + class LockSupport; + class ReadWriteLock; + class ReentrantLock; + class ReentrantLock$FairSync; + class ReentrantLock$NonfairSync; + class ReentrantLock$Sync; + class ReentrantReadWriteLock; + class ReentrantReadWriteLock$FairSync; + class ReentrantReadWriteLock$NonfairSync; + class ReentrantReadWriteLock$ReadLock; + class ReentrantReadWriteLock$Sync; + class ReentrantReadWriteLock$Sync$HoldCounter; + class ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter; + class ReentrantReadWriteLock$WriteLock; + } + } + namespace jar { class Attributes; @@ -477,9 +749,11 @@ extern "Java" class Handler; class Level; class LogManager; + class LogManager$1; class LogRecord; class Logger; class Logger$1; + class LoggingMXBean; class LoggingPermission; class MemoryHandler; class SimpleFormatter; @@ -577,6 +851,7 @@ extern "C" jstring _Jv_NewStringLatin1(const char*, jsize) extern "C" jsize _Jv_GetStringUTFLength (jstring); extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *); extern "C" jint _Jv_hashUtf8String (const char*, int); +extern bool _Jv_is_proxy (void *pc); struct _Jv_VMOption { diff --git a/libjava/gnu/CORBA/Asynchron.h b/libjava/gnu/CORBA/Asynchron.h new file mode 100644 index 00000000000..c1b542ad287 --- /dev/null +++ b/libjava/gnu/CORBA/Asynchron.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Asynchron__ +#define __gnu_CORBA_Asynchron__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Asynchron; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Request; + } + } + } +} + +class gnu::CORBA::Asynchron : public ::java::lang::Object +{ + +public: + Asynchron(); + virtual void send_multiple_requests_oneway(JArray< ::org::omg::CORBA::Request * > *); + virtual void send_multiple_requests_deferred(JArray< ::org::omg::CORBA::Request * > *); + virtual jboolean poll_next_response(); + virtual ::org::omg::CORBA::Request * get_next_response(); +public: // actually package-private + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Asynchron__ diff --git a/libjava/gnu/CORBA/BigDecimalHelper.h b/libjava/gnu/CORBA/BigDecimalHelper.h new file mode 100644 index 00000000000..968a863f1bf --- /dev/null +++ b/libjava/gnu/CORBA/BigDecimalHelper.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_BigDecimalHelper__ +#define __gnu_CORBA_BigDecimalHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class BigDecimalHelper; + } + } + namespace java + { + namespace math + { + class BigDecimal; + } + } +} + +class gnu::CORBA::BigDecimalHelper : public ::java::lang::Object +{ + +public: + BigDecimalHelper(); + static void main(JArray< ::java::lang::String * > *); + static ::java::math::BigDecimal * read(::java::io::InputStream *, jint); + static void write(::java::io::OutputStream *, ::java::math::BigDecimal *); +private: + static ::java::math::BigDecimal * createFixed(jint, JArray< jbyte > *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_BigDecimalHelper__ diff --git a/libjava/gnu/CORBA/ByteArrayComparator.h b/libjava/gnu/CORBA/ByteArrayComparator.h new file mode 100644 index 00000000000..f619ba89f8f --- /dev/null +++ b/libjava/gnu/CORBA/ByteArrayComparator.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_ByteArrayComparator__ +#define __gnu_CORBA_ByteArrayComparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class ByteArrayComparator; + } + } +} + +class gnu::CORBA::ByteArrayComparator : public ::java::lang::Object +{ + +public: + ByteArrayComparator(); + virtual jint compare(::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_ByteArrayComparator__ diff --git a/libjava/gnu/CORBA/CDR/AbstractCdrInput.h b/libjava/gnu/CORBA/CDR/AbstractCdrInput.h new file mode 100644 index 00000000000..a9c9adcf62c --- /dev/null +++ b/libjava/gnu/CORBA/CDR/AbstractCdrInput.h @@ -0,0 +1,185 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_AbstractCdrInput__ +#define __gnu_CORBA_CDR_AbstractCdrInput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractDataInput; + class BufferredCdrInput; + class gnuRuntime; + } + namespace GIOP + { + class CodeSetServiceContext; + } + class Version; + } + } + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class AnySeqHolder; + class BooleanSeqHolder; + class CharSeqHolder; + class DoubleSeqHolder; + class FloatSeqHolder; + class LongLongSeqHolder; + class LongSeqHolder; + class ORB; + class Object; + class OctetSeqHolder; + class ShortSeqHolder; + class TypeCode; + class ULongLongSeqHolder; + class ULongSeqHolder; + class UShortSeqHolder; + class WCharSeqHolder; + } + } + } +} + +class gnu::CORBA::CDR::AbstractCdrInput : public ::org::omg::CORBA_2_3::portable::InputStream +{ + +public: + AbstractCdrInput(::java::io::InputStream *); + AbstractCdrInput(); + virtual void setBigEndian(jboolean); + virtual jboolean isBigEndian(); + virtual void cloneSettings(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual void setInputStream(::java::io::InputStream *); + virtual void setOffset(jint) = 0; + virtual void setOrb(::org::omg::CORBA::ORB *); + virtual void setVersion(::gnu::CORBA::Version *); + virtual void align(jint) = 0; + virtual jlong gnu_read_ulong(); + virtual jint gnu_read_ushort(); + virtual ::org::omg::CORBA::ORB * orb(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jbyte > *); + virtual ::org::omg::CORBA::Object * read_Object(); + virtual ::org::omg::CORBA::TypeCode * read_TypeCode(); + virtual ::org::omg::CORBA::Any * read_any(); + virtual jboolean read_boolean(); + virtual void read_boolean_array(JArray< jboolean > *, jint, jint); + virtual jchar read_char(); + virtual void read_char_array(JArray< jchar > *, jint, jint); + virtual jdouble read_double(); + virtual void read_double_array(JArray< jdouble > *, jint, jint); + virtual ::gnu::CORBA::CDR::BufferredCdrInput * read_encapsulation(); + virtual ::java::math::BigDecimal * read_fixed(); + virtual jfloat read_float(); + virtual void read_float_array(JArray< jfloat > *, jint, jint); + virtual jint read_long(); + virtual void read_long_array(JArray< jint > *, jint, jint); + virtual jlong read_longlong(); + virtual void read_longlong_array(JArray< jlong > *, jint, jint); + virtual jbyte read_octet(); + virtual void read_octet_array(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * read_sequence(); + virtual jshort read_short(); + virtual void read_short_array(JArray< jshort > *, jint, jint); + virtual ::java::lang::String * read_string(); + virtual jint read_ulong(); + virtual void read_ulong_array(JArray< jint > *, jint, jint); + virtual jlong read_ulonglong(); + virtual void read_ulonglong_array(JArray< jlong > *, jint, jint); + virtual jshort read_ushort(); + virtual void read_ushort_array(JArray< jshort > *, jint, jint); + virtual jchar read_wchar(); + virtual void read_wchar_array(JArray< jchar > *, jint, jint); + virtual ::java::lang::String * read_wstring(); + virtual ::java::lang::String * read_wstring_UTF_16(); + static jchar swap(jchar); + virtual void setCodeSet(::gnu::CORBA::GIOP::CodeSetServiceContext *); + virtual ::gnu::CORBA::GIOP::CodeSetServiceContext * getCodeSet(); + virtual ::org::omg::CORBA::Object * read_Object(::java::lang::Class *); + virtual ::java::io::Serializable * read_Value(); + virtual ::java::lang::Object * read_Abstract(); + virtual void read_char_array(::org::omg::CORBA::CharSeqHolder *, jint, jint); + virtual void read_wchar_array(::org::omg::CORBA::WCharSeqHolder *, jint, jint); +private: + JArray< jchar > * ensureArray(JArray< jchar > *, jint, jint); +public: + virtual void read_ulong_array(::org::omg::CORBA::ULongSeqHolder *, jint, jint); + virtual void read_long_array(::org::omg::CORBA::LongSeqHolder *, jint, jint); +private: + JArray< jint > * ensureArray(JArray< jint > *, jint, jint); +public: + virtual void read_float_array(::org::omg::CORBA::FloatSeqHolder *, jint, jint); +private: + JArray< jfloat > * ensureArray(JArray< jfloat > *, jint, jint); +public: + virtual void read_double_array(::org::omg::CORBA::DoubleSeqHolder *, jint, jint); +private: + JArray< jdouble > * ensureArray(JArray< jdouble > *, jint, jint); +public: + virtual void read_short_array(::org::omg::CORBA::ShortSeqHolder *, jint, jint); + virtual void read_ushort_array(::org::omg::CORBA::UShortSeqHolder *, jint, jint); +private: + JArray< jshort > * ensureArray(JArray< jshort > *, jint, jint); +public: + virtual void read_octet_array(::org::omg::CORBA::OctetSeqHolder *, jint, jint); +private: + JArray< jbyte > * ensureArray(JArray< jbyte > *, jint, jint); +public: + virtual void read_longlong_array(::org::omg::CORBA::LongLongSeqHolder *, jint, jint); + virtual void read_ulonglong_array(::org::omg::CORBA::ULongLongSeqHolder *, jint, jint); +private: + JArray< jlong > * ensureArray(JArray< jlong > *, jint, jint); +public: + virtual void read_boolean_array(::org::omg::CORBA::BooleanSeqHolder *, jint, jint); +private: + JArray< jboolean > * ensureArray(JArray< jboolean > *, jint, jint); +public: + virtual void read_any_array(::org::omg::CORBA::AnySeqHolder *, jint, jint); +private: + JArray< ::org::omg::CORBA::Any * > * ensureArray(JArray< ::org::omg::CORBA::Any * > *, jint, jint); +public: + virtual JArray< ::java::lang::String * > * _truncatable_ids(); + ::gnu::CORBA::CDR::gnuRuntime * __attribute__((aligned(__alignof__( ::org::omg::CORBA_2_3::portable::InputStream)))) runtime; +public: // actually protected + static ::java::lang::String * UNEXP_EOF; + ::gnu::CORBA::CDR::AbstractDataInput * b; + ::java::io::InputStream * actual_stream; + ::org::omg::CORBA::ORB * orb__; + ::gnu::CORBA::Version * giop; + ::gnu::CORBA::GIOP::CodeSetServiceContext * codeset; +private: + ::java::lang::String * narrow_charset; + ::java::lang::String * wide_charset; + jboolean narrow_native; + jboolean wide_native; + jboolean little_endian; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_AbstractCdrInput__ diff --git a/libjava/gnu/CORBA/CDR/AbstractCdrOutput.h b/libjava/gnu/CORBA/CDR/AbstractCdrOutput.h new file mode 100644 index 00000000000..b6d328be04a --- /dev/null +++ b/libjava/gnu/CORBA/CDR/AbstractCdrOutput.h @@ -0,0 +1,130 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_AbstractCdrOutput__ +#define __gnu_CORBA_CDR_AbstractCdrOutput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrOutput; + class AbstractDataOutput; + class BufferedCdrOutput; + class gnuRuntime; + } + namespace GIOP + { + class CodeSetServiceContext; + } + class Version; + } + } + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class ORB; + class Object; + class TypeCode; + } + } + } +} + +class gnu::CORBA::CDR::AbstractCdrOutput : public ::org::omg::CORBA_2_3::portable::OutputStream +{ + +public: + AbstractCdrOutput(::java::io::OutputStream *); + AbstractCdrOutput(); + virtual void setOffset(jint) = 0; + virtual void cloneSettings(::gnu::CORBA::CDR::AbstractCdrOutput *); + virtual void setCodeSet(::gnu::CORBA::GIOP::CodeSetServiceContext *); + virtual ::gnu::CORBA::GIOP::CodeSetServiceContext * getCodeSet(); + virtual void setOrb(::org::omg::CORBA::ORB *); + virtual void setOutputStream(::java::io::OutputStream *); + virtual void setVersion(::gnu::CORBA::Version *); + virtual void setBigEndian(jboolean); + virtual void align(jint) = 0; + virtual ::gnu::CORBA::CDR::AbstractCdrOutput * createEncapsulation(); + virtual ::org::omg::CORBA::ORB * orb(); + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write_Context(::org::omg::CORBA::Context *, ::org::omg::CORBA::ContextList *); + virtual void write_Object(::org::omg::CORBA::Object *); + virtual void write_TypeCode(::org::omg::CORBA::TypeCode *); + virtual void write_any(::org::omg::CORBA::Any *); + virtual void write_boolean(jboolean); + virtual void write_boolean_array(JArray< jboolean > *, jint, jint); + virtual void write_char(jchar); + virtual void write_char_array(JArray< jchar > *, jint, jint); + virtual void write_double(jdouble); + virtual void write_double_array(JArray< jdouble > *, jint, jint); + virtual void write_fixed(::java::math::BigDecimal *); + virtual void write_float(jfloat); + virtual void write_float_array(JArray< jfloat > *, jint, jint); + virtual void write_long(jint); + virtual void write_long_array(JArray< jint > *, jint, jint); + virtual void write_longlong(jlong); + virtual void write_longlong_array(JArray< jlong > *, jint, jint); + virtual void write_octet(jbyte); + virtual void write_octet_array(JArray< jbyte > *, jint, jint); + virtual void write_sequence(JArray< jbyte > *); + virtual void write_sequence(::gnu::CORBA::CDR::BufferedCdrOutput *); + virtual void write_short(jshort); + virtual void write_short_array(JArray< jshort > *, jint, jint); + virtual void write_string(::java::lang::String *); + virtual void write_ulong(jint); + virtual void write_ulong_array(JArray< jint > *, jint, jint); + virtual void write_ulonglong(jlong); + virtual void write_ulonglong_array(JArray< jlong > *, jint, jint); + virtual void write_ushort(jshort); + virtual void write_ushort_array(JArray< jshort > *, jint, jint); + virtual void write_wchar(jchar); + virtual void write_wchar_array(JArray< jchar > *, jint, jint); + virtual void write_wstring(::java::lang::String *); + virtual void write_any_array(JArray< ::org::omg::CORBA::Any * > *, jint, jint); + virtual JArray< ::java::lang::String * > * _truncatable_ids(); + virtual void write_Abstract(::java::lang::Object *); + virtual void write_Value(::java::io::Serializable *); + ::gnu::CORBA::CDR::gnuRuntime * __attribute__((aligned(__alignof__( ::org::omg::CORBA_2_3::portable::OutputStream)))) runtime; +public: // actually protected + ::gnu::CORBA::CDR::AbstractDataOutput * b; + ::org::omg::CORBA::ORB * orb__; + ::gnu::CORBA::Version * giop; + ::gnu::CORBA::GIOP::CodeSetServiceContext * codeset; +private: + ::java::lang::String * narrow_charset; + ::java::lang::String * wide_charset; + jboolean narrow_native; + jboolean wide_native; + jboolean little_endian; + ::java::io::OutputStream * actual_stream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_AbstractCdrOutput__ diff --git a/libjava/gnu/CORBA/CDR/AbstractDataInput.h b/libjava/gnu/CORBA/CDR/AbstractDataInput.h new file mode 100644 index 00000000000..c4c147f3a17 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/AbstractDataInput.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_AbstractDataInput__ +#define __gnu_CORBA_CDR_AbstractDataInput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractDataInput; + } + } + } +} + +class gnu::CORBA::CDR::AbstractDataInput : public ::java::lang::Object +{ + +public: + virtual jint read(JArray< jbyte > *) = 0; + virtual jint read(JArray< jbyte > *, jint, jint) = 0; + virtual jboolean readBoolean() = 0; + virtual jbyte readByte() = 0; + virtual jchar readChar() = 0; + virtual jdouble readDouble() = 0; + virtual jfloat readFloat() = 0; + virtual void readFully(JArray< jbyte > *) = 0; + virtual jint readInt() = 0; + virtual jlong readLong() = 0; + virtual jshort readShort() = 0; + virtual jint readUnsignedByte() = 0; + virtual jint readUnsignedShort() = 0; + virtual jint read() = 0; + virtual jint skipBytes(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_CDR_AbstractDataInput__ diff --git a/libjava/gnu/CORBA/CDR/AbstractDataOutput.h b/libjava/gnu/CORBA/CDR/AbstractDataOutput.h new file mode 100644 index 00000000000..08ba71438f7 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/AbstractDataOutput.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_AbstractDataOutput__ +#define __gnu_CORBA_CDR_AbstractDataOutput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractDataOutput; + } + } + } +} + +class gnu::CORBA::CDR::AbstractDataOutput : public ::java::lang::Object +{ + +public: + virtual void flush() = 0; + virtual void write(jint) = 0; + virtual void write(JArray< jbyte > *, jint, jint) = 0; + virtual void write(JArray< jbyte > *) = 0; + virtual void writeBoolean(jboolean) = 0; + virtual void writeByte(jint) = 0; + virtual void writeShort(jint) = 0; + virtual void writeChar(jint) = 0; + virtual void writeInt(jint) = 0; + virtual void writeLong(jlong) = 0; + virtual void writeFloat(jfloat) = 0; + virtual void writeDouble(jdouble) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_CDR_AbstractDataOutput__ diff --git a/libjava/gnu/CORBA/CDR/AligningInput.h b/libjava/gnu/CORBA/CDR/AligningInput.h new file mode 100644 index 00000000000..54e842019f8 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/AligningInput.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_AligningInput__ +#define __gnu_CORBA_CDR_AligningInput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AligningInput; + } + } + } +} + +class gnu::CORBA::CDR::AligningInput : public ::java::io::ByteArrayInputStream +{ + +public: + AligningInput(JArray< jbyte > *); + virtual void setOffset(jint); + virtual void align(jint); + virtual JArray< jbyte > * getBuffer(); + virtual jint getPosition(); + virtual void seek(jint); +private: + jint __attribute__((aligned(__alignof__( ::java::io::ByteArrayInputStream)))) offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_AligningInput__ diff --git a/libjava/gnu/CORBA/CDR/AligningOutput.h b/libjava/gnu/CORBA/CDR/AligningOutput.h new file mode 100644 index 00000000000..2b889783e80 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/AligningOutput.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_AligningOutput__ +#define __gnu_CORBA_CDR_AligningOutput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AligningOutput; + } + } + } +} + +class gnu::CORBA::CDR::AligningOutput : public ::java::io::ByteArrayOutputStream +{ + +public: + AligningOutput(); + AligningOutput(jint); + virtual void setOffset(jint); + virtual void align(jint); + virtual void skip(jint); + virtual jint getPosition(); + virtual void seek(jint); + virtual JArray< jbyte > * getBuffer(); +private: + jint __attribute__((aligned(__alignof__( ::java::io::ByteArrayOutputStream)))) offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_AligningOutput__ diff --git a/libjava/gnu/CORBA/CDR/ArrayValueHelper.h b/libjava/gnu/CORBA/CDR/ArrayValueHelper.h new file mode 100644 index 00000000000..2da61214017 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/ArrayValueHelper.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_ArrayValueHelper__ +#define __gnu_CORBA_CDR_ArrayValueHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class ArrayValueHelper; + } + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class ValueHandler; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::CDR::ArrayValueHelper : public ::java::lang::Object +{ + +public: // actually package-private + virtual jboolean written_as_object(); + ArrayValueHelper(::java::lang::Class *); +public: + virtual ::java::lang::String * get_id(); + virtual ::java::io::Serializable * read_value(::org::omg::CORBA::portable::InputStream *); + virtual void write_value(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); +public: // actually package-private + static ::javax::rmi::CORBA::ValueHandler * handler; + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) arrayClass; + ::java::lang::Class * component; + ::java::lang::String * componentId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_ArrayValueHelper__ diff --git a/libjava/gnu/CORBA/CDR/BigEndianInputStream.h b/libjava/gnu/CORBA/CDR/BigEndianInputStream.h new file mode 100644 index 00000000000..9feb32e9863 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/BigEndianInputStream.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_BigEndianInputStream__ +#define __gnu_CORBA_CDR_BigEndianInputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BigEndianInputStream; + } + } + } +} + +class gnu::CORBA::CDR::BigEndianInputStream : public ::java::io::DataInputStream +{ + +public: + BigEndianInputStream(::java::io::InputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_BigEndianInputStream__ diff --git a/libjava/gnu/CORBA/CDR/BigEndianOutputStream.h b/libjava/gnu/CORBA/CDR/BigEndianOutputStream.h new file mode 100644 index 00000000000..12e14d8dda2 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/BigEndianOutputStream.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_BigEndianOutputStream__ +#define __gnu_CORBA_CDR_BigEndianOutputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BigEndianOutputStream; + } + } + } +} + +class gnu::CORBA::CDR::BigEndianOutputStream : public ::java::io::DataOutputStream +{ + +public: + BigEndianOutputStream(::java::io::OutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_BigEndianOutputStream__ diff --git a/libjava/gnu/CORBA/CDR/BufferedCdrOutput.h b/libjava/gnu/CORBA/CDR/BufferedCdrOutput.h new file mode 100644 index 00000000000..373a9e2c42c --- /dev/null +++ b/libjava/gnu/CORBA/CDR/BufferedCdrOutput.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_BufferedCdrOutput__ +#define __gnu_CORBA_CDR_BufferedCdrOutput__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AligningOutput; + class BufferedCdrOutput; + class gnuRuntime; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + } + } + } + } +} + +class gnu::CORBA::CDR::BufferedCdrOutput : public ::gnu::CORBA::CDR::AbstractCdrOutput +{ + +public: + BufferedCdrOutput(jint); + BufferedCdrOutput(); + virtual void setOffset(jint); + virtual void align(jint); + virtual ::org::omg::CORBA::portable::InputStream * create_input_stream(); + virtual void reset(); + virtual jint getPosition(); + virtual ::gnu::CORBA::CDR::gnuRuntime * getRunTime(); + virtual void setRunTime(::gnu::CORBA::CDR::gnuRuntime *); + virtual void seek(jint); +private: + static const jlong serialVersionUID = 1LL; +public: + ::gnu::CORBA::CDR::AligningOutput * __attribute__((aligned(__alignof__( ::gnu::CORBA::CDR::AbstractCdrOutput)))) buffer; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_BufferedCdrOutput__ diff --git a/libjava/gnu/CORBA/CDR/BufferredCdrInput.h b/libjava/gnu/CORBA/CDR/BufferredCdrInput.h new file mode 100644 index 00000000000..71a8e20b7ae --- /dev/null +++ b/libjava/gnu/CORBA/CDR/BufferredCdrInput.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_BufferredCdrInput__ +#define __gnu_CORBA_CDR_BufferredCdrInput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AligningInput; + class BufferredCdrInput; + class gnuRuntime; + } + } + } +} + +class gnu::CORBA::CDR::BufferredCdrInput : public ::gnu::CORBA::CDR::AbstractCdrInput +{ + +public: + BufferredCdrInput(JArray< jbyte > *); + virtual void setOffset(jint); + virtual void align(jint); + virtual void mark(jint); + virtual jboolean markSupported(); + virtual void reset(); + virtual jint getPosition(); + virtual void seek(jint); + virtual ::gnu::CORBA::CDR::gnuRuntime * getRunTime(); + virtual void setRunTime(::gnu::CORBA::CDR::gnuRuntime *); +private: + static const jlong serialVersionUID = 1LL; +public: + ::gnu::CORBA::CDR::AligningInput * __attribute__((aligned(__alignof__( ::gnu::CORBA::CDR::AbstractCdrInput)))) buffer; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_BufferredCdrInput__ diff --git a/libjava/gnu/CORBA/CDR/EncapsulationStream.h b/libjava/gnu/CORBA/CDR/EncapsulationStream.h new file mode 100644 index 00000000000..9b3a2d5f2d8 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/EncapsulationStream.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_EncapsulationStream__ +#define __gnu_CORBA_CDR_EncapsulationStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AligningOutput; + class EncapsulationStream; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::CDR::EncapsulationStream : public ::gnu::CORBA::CDR::AbstractCdrOutput +{ + +public: + EncapsulationStream(::org::omg::CORBA::portable::OutputStream *, jboolean); + virtual void setOffset(jint); + virtual void align(jint); + virtual void close(); + virtual ::org::omg::CORBA::portable::InputStream * create_input_stream(); + virtual void reset(); + static const jbyte BIG_ENDIAN = 0; + static const jbyte LITTLE_ENDIAN = 1; + ::gnu::CORBA::CDR::AligningOutput * __attribute__((aligned(__alignof__( ::gnu::CORBA::CDR::AbstractCdrOutput)))) buffer; + ::org::omg::CORBA::portable::OutputStream * parent; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_EncapsulationStream__ diff --git a/libjava/gnu/CORBA/CDR/HeadlessInput.h b/libjava/gnu/CORBA/CDR/HeadlessInput.h new file mode 100644 index 00000000000..2cc8e85a5d6 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/HeadlessInput.h @@ -0,0 +1,156 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_HeadlessInput__ +#define __gnu_CORBA_CDR_HeadlessInput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferredCdrInput; + class HeadlessInput; + class gnuRuntime; + } + } + } + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class AnySeqHolder; + class BooleanSeqHolder; + class CharSeqHolder; + class Context; + class DoubleSeqHolder; + class FloatSeqHolder; + class LongLongSeqHolder; + class LongSeqHolder; + class ORB; + class Object; + class OctetSeqHolder; + class Principal; + class ShortSeqHolder; + class TypeCode; + class ULongLongSeqHolder; + class ULongSeqHolder; + class UShortSeqHolder; + class WCharSeqHolder; + namespace portable + { + class BoxedValueHelper; + class InputStream; + } + } + } + } +} + +class gnu::CORBA::CDR::HeadlessInput : public ::org::omg::CORBA_2_3::portable::InputStream +{ + +public: + HeadlessInput(::gnu::CORBA::CDR::BufferredCdrInput *, ::org::omg::CORBA::portable::InputStream *); + virtual ::java::io::Serializable * read_value(::org::omg::CORBA::portable::BoxedValueHelper *); + virtual ::java::io::Serializable * read_value(::java::lang::String *); + virtual ::java::io::Serializable * read_value(::java::io::Serializable *); + virtual ::java::io::Serializable * read_value(::java::lang::Class *); + virtual jint available(); + virtual void close(); + virtual void mark(jint); + virtual jboolean markSupported(); + virtual ::org::omg::CORBA::ORB * orb(); + virtual ::java::lang::Object * read_abstract_interface(); + virtual ::java::lang::Object * read_abstract_interface(::java::lang::Class *); + virtual ::org::omg::CORBA::Any * read_any(); + virtual void read_boolean_array(JArray< jboolean > *, jint, jint); + virtual jboolean read_boolean(); + virtual void read_char_array(JArray< jchar > *, jint, jint); + virtual jchar read_char(); + virtual ::org::omg::CORBA::Context * read_Context(); + virtual void read_double_array(JArray< jdouble > *, jint, jint); + virtual jdouble read_double(); + virtual ::java::math::BigDecimal * read_fixed(); + virtual void read_float_array(JArray< jfloat > *, jint, jint); + virtual jfloat read_float(); + virtual void read_long_array(JArray< jint > *, jint, jint); + virtual jint read_long(); + virtual void read_longlong_array(JArray< jlong > *, jint, jint); + virtual jlong read_longlong(); + virtual ::org::omg::CORBA::Object * read_Object(); + virtual ::org::omg::CORBA::Object * read_Object(::java::lang::Class *); + virtual void read_octet_array(JArray< jbyte > *, jint, jint); + virtual jbyte read_octet(); + virtual ::org::omg::CORBA::Principal * read_Principal(); + virtual void read_short_array(JArray< jshort > *, jint, jint); + virtual jshort read_short(); + virtual ::java::lang::String * read_string(); + virtual ::org::omg::CORBA::TypeCode * read_TypeCode(); + virtual void read_ulong_array(JArray< jint > *, jint, jint); + virtual jint read_ulong(); + virtual void read_ulonglong_array(JArray< jlong > *, jint, jint); + virtual jlong read_ulonglong(); + virtual void read_ushort_array(JArray< jshort > *, jint, jint); + virtual jshort read_ushort(); + virtual ::java::io::Serializable * read_value(); + virtual void read_wchar_array(JArray< jchar > *, jint, jint); + virtual jchar read_wchar(); + virtual ::java::lang::String * read_wstring(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jbyte > *); + virtual void reset(); + virtual jlong skip(jlong); + virtual ::java::lang::String * toString(); + virtual JArray< ::java::lang::String * > * _truncatable_ids(); + virtual ::java::lang::Object * read_Abstract(); + virtual void read_any_array(::org::omg::CORBA::AnySeqHolder *, jint, jint); + virtual void read_boolean_array(::org::omg::CORBA::BooleanSeqHolder *, jint, jint); + virtual void read_char_array(::org::omg::CORBA::CharSeqHolder *, jint, jint); + virtual void read_double_array(::org::omg::CORBA::DoubleSeqHolder *, jint, jint); + virtual void read_float_array(::org::omg::CORBA::FloatSeqHolder *, jint, jint); + virtual void read_long_array(::org::omg::CORBA::LongSeqHolder *, jint, jint); + virtual void read_longlong_array(::org::omg::CORBA::LongLongSeqHolder *, jint, jint); + virtual void read_octet_array(::org::omg::CORBA::OctetSeqHolder *, jint, jint); + virtual void read_short_array(::org::omg::CORBA::ShortSeqHolder *, jint, jint); + virtual void read_ulong_array(::org::omg::CORBA::ULongSeqHolder *, jint, jint); + virtual void read_ulonglong_array(::org::omg::CORBA::ULongLongSeqHolder *, jint, jint); + virtual void read_ushort_array(::org::omg::CORBA::UShortSeqHolder *, jint, jint); + virtual ::java::io::Serializable * read_Value(); + virtual void read_wchar_array(::org::omg::CORBA::WCharSeqHolder *, jint, jint); + virtual jint getPosition(); + virtual ::gnu::CORBA::CDR::gnuRuntime * getRunTime(); + virtual void setRunTime(::gnu::CORBA::CDR::gnuRuntime *); + virtual void seek(jint); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + static const jint NONE = -1; +public: + jboolean __attribute__((aligned(__alignof__( ::org::omg::CORBA_2_3::portable::InputStream)))) subsequentCalls; +public: // actually package-private + ::gnu::CORBA::CDR::BufferredCdrInput * stream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_HeadlessInput__ diff --git a/libjava/gnu/CORBA/CDR/IDLTypeHelper.h b/libjava/gnu/CORBA/CDR/IDLTypeHelper.h new file mode 100644 index 00000000000..9c97fc8169b --- /dev/null +++ b/libjava/gnu/CORBA/CDR/IDLTypeHelper.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_IDLTypeHelper__ +#define __gnu_CORBA_CDR_IDLTypeHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class IDLTypeHelper; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::CDR::IDLTypeHelper : public ::java::lang::Object +{ + +public: + IDLTypeHelper(::java::lang::Class *); + virtual ::java::lang::String * get_id(); + virtual ::java::io::Serializable * read_value(::org::omg::CORBA::portable::InputStream *); + virtual void write_value(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); +public: // actually package-private + virtual ::java::lang::String * msg(); +public: // actually protected + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) helper; +public: // actually package-private + static JArray< ::java::lang::Object * > * ARGS_ID_V; + static JArray< ::java::lang::Class * > * ARGS_ID; + static JArray< ::java::lang::Class * > * ARGS_READ; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_IDLTypeHelper__ diff --git a/libjava/gnu/CORBA/CDR/LittleEndianInputStream.h b/libjava/gnu/CORBA/CDR/LittleEndianInputStream.h new file mode 100644 index 00000000000..d6a9a6e05dc --- /dev/null +++ b/libjava/gnu/CORBA/CDR/LittleEndianInputStream.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_LittleEndianInputStream__ +#define __gnu_CORBA_CDR_LittleEndianInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class LittleEndianInputStream; + } + } + } +} + +class gnu::CORBA::CDR::LittleEndianInputStream : public ::java::io::FilterInputStream +{ + +public: + LittleEndianInputStream(::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 jint skipBytes(jint); +public: // actually protected + virtual jboolean convertToBoolean(jint); + virtual jbyte convertToByte(jint); + virtual jint convertToUnsignedByte(jint); + virtual jchar convertToChar(JArray< jbyte > *); + virtual jshort convertToShort(JArray< jbyte > *); + virtual jint convertToUnsignedShort(JArray< jbyte > *); + virtual jint convertToInt(JArray< jbyte > *); + virtual jlong convertToLong(JArray< jbyte > *); +public: + virtual ::java::lang::String * readUTF(); +public: // actually package-private + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) buf; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_LittleEndianInputStream__ diff --git a/libjava/gnu/CORBA/CDR/LittleEndianOutputStream.h b/libjava/gnu/CORBA/CDR/LittleEndianOutputStream.h new file mode 100644 index 00000000000..3fb7db57c56 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/LittleEndianOutputStream.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_LittleEndianOutputStream__ +#define __gnu_CORBA_CDR_LittleEndianOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class LittleEndianOutputStream; + } + } + } +} + +class gnu::CORBA::CDR::LittleEndianOutputStream : public ::java::io::FilterOutputStream +{ + +public: + LittleEndianOutputStream(::java::io::OutputStream *); + virtual void flush(); + 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); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_LittleEndianOutputStream__ diff --git a/libjava/gnu/CORBA/CDR/UnknownExceptionCtxHandler.h b/libjava/gnu/CORBA/CDR/UnknownExceptionCtxHandler.h new file mode 100644 index 00000000000..9f77414d40f --- /dev/null +++ b/libjava/gnu/CORBA/CDR/UnknownExceptionCtxHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_UnknownExceptionCtxHandler__ +#define __gnu_CORBA_CDR_UnknownExceptionCtxHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + class BufferredCdrInput; + class UnknownExceptionCtxHandler; + } + namespace GIOP + { + class ServiceContext; + } + } + } +} + +class gnu::CORBA::CDR::UnknownExceptionCtxHandler : public ::gnu::CORBA::CDR::Vio +{ + +public: + UnknownExceptionCtxHandler(); + static JArray< ::gnu::CORBA::GIOP::ServiceContext * > * addExceptionContext(JArray< ::gnu::CORBA::GIOP::ServiceContext * > *, ::java::lang::Throwable *, ::java::lang::Object *); + static void write(::gnu::CORBA::CDR::BufferedCdrOutput *, ::java::lang::Throwable *); + static ::java::lang::Throwable * read(::gnu::CORBA::CDR::BufferredCdrInput *, JArray< ::gnu::CORBA::GIOP::ServiceContext * > *); +public: // actually package-private + static ::java::lang::Object * createInstance(::java::lang::String *, JArray< ::java::lang::String * > *, ::java::lang::String *); + static ::java::lang::Object * _createInstance(::java::lang::String *, ::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_UnknownExceptionCtxHandler__ diff --git a/libjava/gnu/CORBA/CDR/VMVio.h b/libjava/gnu/CORBA/CDR/VMVio.h new file mode 100644 index 00000000000..e8267e80df9 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/VMVio.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_VMVio__ +#define __gnu_CORBA_CDR_VMVio__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class VMVio; + } + } + } +} + +class gnu::CORBA::CDR::VMVio : public ::java::lang::Object +{ + +public: + VMVio(); + static ::java::lang::Object * allocateObject(::java::lang::Class *, ::java::lang::Class *, ::java::lang::reflect::Constructor *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_VMVio__ diff --git a/libjava/gnu/CORBA/CDR/Vio.h b/libjava/gnu/CORBA/CDR/Vio.h new file mode 100644 index 00000000000..367a63d6cb4 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/Vio.h @@ -0,0 +1,119 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_Vio__ +#define __gnu_CORBA_CDR_Vio__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + class Vio; + } + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class ValueHandler; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class WStringValueHelper; + namespace portable + { + class BoxedValueHelper; + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::CDR::Vio : public ::java::lang::Object +{ + +public: + Vio(); + static ::java::io::Serializable * read(::org::omg::CORBA::portable::InputStream *); + static ::java::io::Serializable * read(::org::omg::CORBA::portable::InputStream *, ::java::lang::String *); + static ::java::io::Serializable * read(::org::omg::CORBA::portable::InputStream *, ::java::lang::Class *); + static ::java::lang::Object * read(::org::omg::CORBA::portable::InputStream *, ::java::lang::Object *, ::org::omg::CORBA::portable::BoxedValueHelper *); + static ::java::io::Serializable * read(::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::BoxedValueHelper *); +public: // actually package-private + static ::java::lang::Object * read_instance(::org::omg::CORBA::portable::InputStream *, jint, ::java::lang::Object *, jint, ::org::omg::CORBA::portable::BoxedValueHelper *, ::java::lang::String *, JArray< ::java::lang::String * > *, ::java::lang::String *); +private: + static ::gnu::CORBA::CDR::BufferedCdrOutput * createBuffer(::org::omg::CORBA::portable::InputStream *, jint); +public: + static jint readNestedValue(jint, ::org::omg::CORBA::portable::InputStream *, ::gnu::CORBA::CDR::BufferedCdrOutput *, jint); + static ::java::io::Serializable * readValue(::org::omg::CORBA::portable::InputStream *, jint, ::java::lang::Object *, ::org::omg::CORBA::portable::BoxedValueHelper *, ::java::lang::String *, JArray< ::java::lang::String * > *, ::java::lang::String *); +public: // actually package-private + static ::java::lang::String * list(JArray< ::java::lang::String * > *); +public: + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, ::java::lang::Class *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, JArray< ::java::lang::String * > *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, ::java::lang::String *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, ::org::omg::CORBA::portable::BoxedValueHelper *); +private: + static void writeString(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); +public: // actually package-private + static void write_instance(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, ::java::lang::Object *, ::org::omg::CORBA::portable::BoxedValueHelper *); + static void writeValue(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, ::org::omg::CORBA::portable::BoxedValueHelper *); + static jboolean writeSelf(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); + static ::java::io::Serializable * readIndirection(::org::omg::CORBA::portable::InputStream *); + static void checkTag(jint); + static void throwIt(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::Object * createInstance(::java::lang::String *, JArray< ::java::lang::String * > *, ::java::lang::String *); + static ::java::lang::Object * _createInstance(::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * read_string(::org::omg::CORBA::portable::InputStream *); + static JArray< ::java::lang::String * > * read_string_array(::org::omg::CORBA::portable::InputStream *); + static void write_string(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static void write_string_array(::org::omg::CORBA::portable::OutputStream *, JArray< ::java::lang::String * > *); +public: + static ::org::omg::CORBA::portable::BoxedValueHelper * getHelper(::java::lang::Class *, ::java::lang::Object *); + static ::org::omg::CORBA::portable::BoxedValueHelper * getHelper(::java::lang::Class *, ::java::lang::String *); +public: // actually package-private + static ::org::omg::CORBA::portable::BoxedValueHelper * locateHelper(::java::lang::String *); + static jint getCurrentPosition(::org::omg::CORBA::portable::InputStream *); +public: + static ::java::lang::Object * instantiateAnyWay(::java::lang::Class *); + static jboolean USE_CHUNKING; + static const jint vt_VALUE_TAG = 2147483392; + static const jint vf_CODEBASE = 1; + static const jint vf_ID = 2; + static const jint vf_MULTIPLE_IDS = 4; + static const jint vf_CHUNKING = 8; + static const jint vt_INDIRECTION = -1; + static const jint vt_NULL = 0; +public: // actually package-private + static const jint INT_SIZE = 4; +public: + static ::org::omg::CORBA::WStringValueHelper * m_StringValueHelper; +public: // actually package-private + static ::javax::rmi::CORBA::ValueHandler * handler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_Vio__ diff --git a/libjava/gnu/CORBA/CDR/gnuRuntime$1.h b/libjava/gnu/CORBA/CDR/gnuRuntime$1.h new file mode 100644 index 00000000000..f20890e435a --- /dev/null +++ b/libjava/gnu/CORBA/CDR/gnuRuntime$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_gnuRuntime$1__ +#define __gnu_CORBA_CDR_gnuRuntime$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class gnuRuntime; + class gnuRuntime$1; + } + } + } +} + +class gnu::CORBA::CDR::gnuRuntime$1 : public ::java::lang::Object +{ + +public: // actually package-private + gnuRuntime$1(::gnu::CORBA::CDR::gnuRuntime *); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + ::gnu::CORBA::CDR::gnuRuntime * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_gnuRuntime$1__ diff --git a/libjava/gnu/CORBA/CDR/gnuRuntime$Entry.h b/libjava/gnu/CORBA/CDR/gnuRuntime$Entry.h new file mode 100644 index 00000000000..f6e157517c7 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/gnuRuntime$Entry.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_gnuRuntime$Entry__ +#define __gnu_CORBA_CDR_gnuRuntime$Entry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class gnuRuntime$Entry; + } + } + } +} + +class gnu::CORBA::CDR::gnuRuntime$Entry : public ::java::lang::Object +{ + +public: // actually package-private + gnuRuntime$Entry(); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) at; + ::java::lang::Object * object; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_gnuRuntime$Entry__ diff --git a/libjava/gnu/CORBA/CDR/gnuRuntime$Redirection.h b/libjava/gnu/CORBA/CDR/gnuRuntime$Redirection.h new file mode 100644 index 00000000000..b9b58638822 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/gnuRuntime$Redirection.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_gnuRuntime$Redirection__ +#define __gnu_CORBA_CDR_gnuRuntime$Redirection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class gnuRuntime$Redirection; + } + } + } +} + +class gnu::CORBA::CDR::gnuRuntime$Redirection : public ::gnu::CORBA::CDR::gnuRuntime$Entry +{ + +public: // actually package-private + gnuRuntime$Redirection(); +public: + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_gnuRuntime$Redirection__ diff --git a/libjava/gnu/CORBA/CDR/gnuRuntime.h b/libjava/gnu/CORBA/CDR/gnuRuntime.h new file mode 100644 index 00000000000..a120cba09f7 --- /dev/null +++ b/libjava/gnu/CORBA/CDR/gnuRuntime.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_gnuRuntime__ +#define __gnu_CORBA_CDR_gnuRuntime__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class gnuRuntime; + } + } + } +} + +class gnu::CORBA::CDR::gnuRuntime : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuRuntime(::java::lang::String *, ::java::lang::Object *); + virtual void objectWritten(::java::lang::Object *, jint); + virtual jint isWrittenAt(::java::lang::Object *); + virtual void redirect(jint, jint); + virtual ::java::lang::Object * isObjectWrittenAt(jint, jint); + virtual void singleIdWritten(::java::lang::String *, jint); + virtual void multipleIdsWritten(JArray< ::java::lang::String * > *, jint); + virtual jint idWrittenAt(::java::lang::Object *); + virtual ::java::lang::String * getCodeBase(); + virtual void addCodeBase(::java::lang::String *); + virtual ::java::lang::String * dump(); +private: + static const jlong serialVersionUID = 1LL; + ::java::util::Map * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) sh_objects; + ::java::util::Map * sh_ids; + ::java::util::Map * positions; + ::java::lang::String * codebase; +public: + ::java::io::Serializable * target; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CDR_gnuRuntime__ diff --git a/libjava/gnu/CORBA/CDR/gnuValueStream.h b/libjava/gnu/CORBA/CDR/gnuValueStream.h new file mode 100644 index 00000000000..880cc61cdba --- /dev/null +++ b/libjava/gnu/CORBA/CDR/gnuValueStream.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CDR_gnuValueStream__ +#define __gnu_CORBA_CDR_gnuValueStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class gnuRuntime; + class gnuValueStream; + } + } + } +} + +class gnu::CORBA::CDR::gnuValueStream : public ::java::lang::Object +{ + +public: + virtual jint getPosition() = 0; + virtual void seek(jint) = 0; + virtual ::gnu::CORBA::CDR::gnuRuntime * getRunTime() = 0; + virtual void setRunTime(::gnu::CORBA::CDR::gnuRuntime *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_CDR_gnuValueStream__ diff --git a/libjava/gnu/CORBA/CdrEncapsCodecImpl.h b/libjava/gnu/CORBA/CdrEncapsCodecImpl.h new file mode 100644 index 00000000000..8bdc15b9cf4 --- /dev/null +++ b/libjava/gnu/CORBA/CdrEncapsCodecImpl.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CdrEncapsCodecImpl__ +#define __gnu_CORBA_CdrEncapsCodecImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + class BufferredCdrInput; + } + class CdrEncapsCodecImpl; + class Version; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TypeCode; + } + } + } +} + +class gnu::CORBA::CdrEncapsCodecImpl : public ::org::omg::CORBA::LocalObject +{ + +public: + CdrEncapsCodecImpl(::org::omg::CORBA::ORB *, ::gnu::CORBA::Version *); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::Any * decode(JArray< jbyte > *); +private: + ::gnu::CORBA::CDR::BufferredCdrInput * createEncapsulation(JArray< jbyte > *, ::gnu::CORBA::CDR::BufferredCdrInput *); +public: + virtual JArray< jbyte > * encode(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * decode_value(JArray< jbyte > *, ::org::omg::CORBA::TypeCode *); +private: + ::org::omg::CORBA::Any * readAny(::org::omg::CORBA::TypeCode *, ::gnu::CORBA::CDR::BufferredCdrInput *); +public: + virtual JArray< jbyte > * encode_value(::org::omg::CORBA::Any *); +private: + ::gnu::CORBA::CDR::BufferedCdrOutput * createOutput(::org::omg::CORBA::Any *); + void checkTypePossibility(::java::lang::String *, ::org::omg::CORBA::TypeCode *); + ::gnu::CORBA::CDR::BufferredCdrInput * createInput(JArray< jbyte > *); +public: + virtual jboolean hasLengthIndicator(); + virtual void setUseLengthIndicator(jboolean); +private: + static const jlong serialVersionUID = 1LL; + jboolean __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) noWide; + ::gnu::CORBA::Version * version; +public: // actually protected + ::org::omg::CORBA::ORB * orb; +private: + jboolean lengthIndicator; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CdrEncapsCodecImpl__ diff --git a/libjava/gnu/CORBA/CollocatedOrbs.h b/libjava/gnu/CORBA/CollocatedOrbs.h new file mode 100644 index 00000000000..60a47556848 --- /dev/null +++ b/libjava/gnu/CORBA/CollocatedOrbs.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CollocatedOrbs__ +#define __gnu_CORBA_CollocatedOrbs__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class CollocatedOrbs; + class IOR; + class OrbFunctional; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + } + } +} + +class gnu::CORBA::CollocatedOrbs : public ::java::lang::Object +{ + +public: // actually package-private + CollocatedOrbs(); + static void registerOrb(::gnu::CORBA::OrbFunctional *); + static void unregisterOrb(::gnu::CORBA::OrbFunctional *); + static ::org::omg::CORBA::Object * searchLocalObject(::gnu::CORBA::IOR *); + static jboolean DIRECT_CALLS_ALLOWED; +private: + static ::java::util::ArrayList * orbs; +public: // actually package-private + static ::java::lang::String * localHost; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CollocatedOrbs__ diff --git a/libjava/gnu/CORBA/Connected_objects$cObject.h b/libjava/gnu/CORBA/Connected_objects$cObject.h new file mode 100644 index 00000000000..bc4be4505a0 --- /dev/null +++ b/libjava/gnu/CORBA/Connected_objects$cObject.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Connected_objects$cObject__ +#define __gnu_CORBA_Connected_objects$cObject__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Connected_objects; + class Connected_objects$cObject; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + } + } +} + +class gnu::CORBA::Connected_objects$cObject : public ::java::lang::Object +{ + +public: // actually package-private + Connected_objects$cObject(::gnu::CORBA::Connected_objects *, ::org::omg::CORBA::Object *, jint, JArray< jbyte > *, ::java::lang::Object *); +public: + ::org::omg::CORBA::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) object; + jint port; + JArray< jbyte > * key; + ::java::lang::Object * identity; +public: // actually package-private + ::gnu::CORBA::Connected_objects * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Connected_objects$cObject__ diff --git a/libjava/gnu/CORBA/Connected_objects.h b/libjava/gnu/CORBA/Connected_objects.h new file mode 100644 index 00000000000..f22aa0c8e04 --- /dev/null +++ b/libjava/gnu/CORBA/Connected_objects.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Connected_objects__ +#define __gnu_CORBA_Connected_objects__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Connected_objects; + class Connected_objects$cObject; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + } + } +} + +class gnu::CORBA::Connected_objects : public ::java::lang::Object +{ + +public: + Connected_objects(); + virtual ::gnu::CORBA::Connected_objects$cObject * getKey(::org::omg::CORBA::Object *); + virtual ::gnu::CORBA::Connected_objects$cObject * add(::org::omg::CORBA::Object *, jint); + virtual ::gnu::CORBA::Connected_objects$cObject * add(JArray< jbyte > *, ::org::omg::CORBA::Object *, jint, ::java::lang::Object *); + virtual ::gnu::CORBA::Connected_objects$cObject * get(JArray< jbyte > *); + virtual ::java::util::Set * entrySet(); + virtual void remove(::org::omg::CORBA::Object *); + virtual void remove(JArray< jbyte > *); +public: // actually protected + virtual JArray< jbyte > * generateObjectKey(::org::omg::CORBA::Object *); +private: + static jlong getFreeInstanceNumber(); +public: + virtual jint size(); +private: + static jlong free_object_number; + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) objects; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Connected_objects__ diff --git a/libjava/gnu/CORBA/CorbaList.h b/libjava/gnu/CORBA/CorbaList.h new file mode 100644 index 00000000000..26e4cadf8b4 --- /dev/null +++ b/libjava/gnu/CORBA/CorbaList.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_CorbaList__ +#define __gnu_CORBA_CorbaList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class CorbaList; + } + } +} + +class gnu::CORBA::CorbaList : public ::java::util::ArrayList +{ + +public: + CorbaList(jint); + CorbaList(); + virtual void drop(jint); + virtual ::java::lang::Object * item(jint); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_CorbaList__ diff --git a/libjava/gnu/CORBA/DefaultSocketFactory.h b/libjava/gnu/CORBA/DefaultSocketFactory.h new file mode 100644 index 00000000000..3fe423d0543 --- /dev/null +++ b/libjava/gnu/CORBA/DefaultSocketFactory.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DefaultSocketFactory__ +#define __gnu_CORBA_DefaultSocketFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class DefaultSocketFactory; + } + } + namespace java + { + namespace net + { + class ServerSocket; + class Socket; + } + } +} + +class gnu::CORBA::DefaultSocketFactory : public ::java::lang::Object +{ + +public: + DefaultSocketFactory(); + virtual ::java::net::Socket * createClientSocket(::java::lang::String *, jint); + virtual ::java::net::ServerSocket * createServerSocket(jint); + static ::gnu::CORBA::DefaultSocketFactory * Singleton; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DefaultSocketFactory__ diff --git a/libjava/gnu/CORBA/DefinitionKindHolder.h b/libjava/gnu/CORBA/DefinitionKindHolder.h new file mode 100644 index 00000000000..3853f506a28 --- /dev/null +++ b/libjava/gnu/CORBA/DefinitionKindHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DefinitionKindHolder__ +#define __gnu_CORBA_DefinitionKindHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class DefinitionKindHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class DefinitionKind; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::DefinitionKindHolder : public ::java::lang::Object +{ + +public: + DefinitionKindHolder(::org::omg::CORBA::DefinitionKind *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::DefinitionKind * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DefinitionKindHolder__ diff --git a/libjava/gnu/CORBA/DuplicateNameHolder.h b/libjava/gnu/CORBA/DuplicateNameHolder.h new file mode 100644 index 00000000000..04e25dc76aa --- /dev/null +++ b/libjava/gnu/CORBA/DuplicateNameHolder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DuplicateNameHolder__ +#define __gnu_CORBA_DuplicateNameHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class DuplicateNameHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + namespace ORBInitInfoPackage + { + class DuplicateName; + } + } + } + } +} + +class gnu::CORBA::DuplicateNameHolder : public ::java::lang::Object +{ + +public: + DuplicateNameHolder(); + DuplicateNameHolder(::org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateName *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DuplicateNameHolder__ diff --git a/libjava/gnu/CORBA/DynAn/AbstractAny.h b/libjava/gnu/CORBA/DynAn/AbstractAny.h new file mode 100644 index 00000000000..12346310a65 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/AbstractAny.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_AbstractAny__ +#define __gnu_CORBA_DynAn_AbstractAny__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class AbstractAny; + class ValueChangeListener; + class gnuDynAnyFactory; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TypeCode; + } + } + } +} + +class gnu::CORBA::DynAn::AbstractAny : public ::org::omg::CORBA::LocalObject +{ + +public: + AbstractAny(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual ::org::omg::CORBA::Any * createAny(); +public: // actually protected + virtual void valueChanged(); +public: // actually package-private + virtual void checkType(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::java::lang::String * typeMismatch(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::java::lang::String * sizeMismatch(jint, jint); +private: + static const jlong serialVersionUID = 1LL; +public: + ::org::omg::CORBA::TypeCode * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) official_type; + ::org::omg::CORBA::TypeCode * final_type; + ::gnu::CORBA::DynAn::gnuDynAnyFactory * factory; + ::org::omg::CORBA::ORB * orb; +public: // actually package-private + jshort MINOR; + static ::java::lang::String * EMPTY; + static ::java::lang::String * SIZE; + static ::java::lang::String * ISNULL; + ::gnu::CORBA::DynAn::ValueChangeListener * listener; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_AbstractAny__ diff --git a/libjava/gnu/CORBA/DynAn/DivideableAny.h b/libjava/gnu/CORBA/DynAn/DivideableAny.h new file mode 100644 index 00000000000..1222d2ada9b --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/DivideableAny.h @@ -0,0 +1,107 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_DivideableAny__ +#define __gnu_CORBA_DynAn_DivideableAny__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class DivideableAny; + class gnuDynAnyFactory; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::DivideableAny : public ::gnu::CORBA::DynAn::AbstractAny +{ + +public: + DivideableAny(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual jboolean next(); + virtual void rewind(); + virtual jboolean seek(jint); +public: // actually protected + virtual ::org::omg::DynamicAny::DynAny * focused(); +public: + virtual jint component_count(); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual void destroy(); + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually protected + JArray< ::org::omg::DynamicAny::DynAny * > * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::AbstractAny)))) array; + jint pos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_DivideableAny__ diff --git a/libjava/gnu/CORBA/DynAn/NameValuePairHolder.h b/libjava/gnu/CORBA/DynAn/NameValuePairHolder.h new file mode 100644 index 00000000000..26a6e5b4543 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/NameValuePairHolder.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_NameValuePairHolder__ +#define __gnu_CORBA_DynAn_NameValuePairHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class NameValuePairHolder; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class NameValuePair; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::DynAn::NameValuePairHolder : public ::java::lang::Object +{ + +public: + NameValuePairHolder(); + NameValuePairHolder(::org::omg::CORBA::NameValuePair *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::NameValuePair * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_NameValuePairHolder__ diff --git a/libjava/gnu/CORBA/DynAn/RecordAny.h b/libjava/gnu/CORBA/DynAn/RecordAny.h new file mode 100644 index 00000000000..77f3f5c7486 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/RecordAny.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_RecordAny__ +#define __gnu_CORBA_DynAn_RecordAny__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class RecordAny; + class gnuDynAnyFactory; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class NameDynAnyPair; + class NameValuePair; + } + } + } +} + +class gnu::CORBA::DynAn::RecordAny : public ::gnu::CORBA::DynAn::DivideableAny +{ + +public: + RecordAny(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual ::org::omg::CORBA::TCKind * current_member_kind(); + virtual ::java::lang::String * current_member_name(); + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * gnu_get_members_as_dyn_any(); + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * gnu_get_members(); + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); +private: + void checkName(::java::lang::String *, jint); + void checkType(::org::omg::CORBA::TypeCode *, jint); +public: + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * copy(); +public: // actually protected + virtual ::gnu::CORBA::DynAn::RecordAny * newInstance(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *) = 0; +public: + virtual ::org::omg::CORBA::Any * to_any(); + virtual void from_any(::org::omg::CORBA::Any *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::DivideableAny)))) fNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_RecordAny__ diff --git a/libjava/gnu/CORBA/DynAn/RecordAny.java b/libjava/gnu/CORBA/DynAn/RecordAny.java deleted file mode 100644 index 7cfabccd7ba..00000000000 --- a/libjava/gnu/CORBA/DynAn/RecordAny.java +++ /dev/null @@ -1,416 +0,0 @@ -/* RecordAny.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 gnu.CORBA.DynAn; - -import gnu.CORBA.Unexpected; -import gnu.CORBA.HolderLocator; - -import org.omg.CORBA.Any; -import org.omg.CORBA.ORB; -import org.omg.CORBA.TCKind; -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.TypeCodePackage.BadKind; -import org.omg.CORBA.TypeCodePackage.Bounds; -import org.omg.CORBA.portable.Streamable; -import org.omg.DynamicAny.DynAny; -import org.omg.DynamicAny.DynAnyPackage.InvalidValue; -import org.omg.DynamicAny.DynAnyPackage.TypeMismatch; -import org.omg.DynamicAny.DynStruct; -import org.omg.DynamicAny.DynValueCommonOperations; -import org.omg.DynamicAny.NameDynAnyPair; -import org.omg.DynamicAny.NameValuePair; - -import java.io.Serializable; - -import java.lang.reflect.Field; - -/** - * A shared base for both dynamic structure an dynamic value final_type. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public abstract class RecordAny - extends DivideableAny - implements DynAny, Serializable -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - String[] fNames; - - /** - * Creates the structure with the given typecode. - * - * @param fields The DynAny's, representing the fields of the structure. - */ - public RecordAny(TypeCode oType, TypeCode aType, - gnuDynAnyFactory aFactory, ORB anOrb - ) - { - super(oType, aType, aFactory, anOrb); - } - - /** @inheritDoc */ - public TCKind current_member_kind() - throws TypeMismatch, InvalidValue - { - if (array.length == 0) - throw new TypeMismatch(EMPTY); - try - { - return final_type.member_type(pos).kind(); - } - catch (BadKind e) - { - TypeMismatch t = new TypeMismatch(); - t.initCause(e); - throw t; - } - catch (Bounds e) - { - InvalidValue t = new InvalidValue(); - t.initCause(e); - throw t; - } - } - - /** @inheritDoc */ - public String current_member_name() - throws TypeMismatch, InvalidValue - { - if (array.length == 0) - throw new TypeMismatch(EMPTY); - try - { - return final_type.member_name(pos); - } - catch (BadKind e) - { - TypeMismatch t = new TypeMismatch(); - t.initCause(e); - throw t; - } - catch (Bounds e) - { - InvalidValue t = new InvalidValue(); - t.initCause(e); - throw t; - } - } - - /** - * Get content of the structure. This method must be defined on a different - * name because get_members_as_dyn_any() throws exception only in some of the - * supported interfaces. - */ - public NameDynAnyPair[] gnu_get_members_as_dyn_any() - { - NameDynAnyPair[] r = new NameDynAnyPair[ array.length ]; - for (int i = 0; i < r.length; i++) - { - try - { - r [ i ] = new NameDynAnyPair(fNames [ i ], array [ i ]); - } - catch (Exception ex) - { - throw new Unexpected(ex); - } - } - return r; - } - - /** - * Get content of the structure. This method must be defined on a different - * name because get_members_as_dyn_any() throws exception only in some of the - * supported interfaces. - */ - public NameValuePair[] gnu_get_members() - { - NameValuePair[] r = new NameValuePair[ array.length ]; - for (int i = 0; i < r.length; i++) - { - try - { - r [ i ] = new NameValuePair(fNames [ i ], array [ i ].to_any()); - } - catch (Exception ex) - { - throw new Unexpected(ex); - } - } - return r; - } - - /** - * Set members from the provided array. - */ - public void set_members_as_dyn_any(NameDynAnyPair[] value) - throws TypeMismatch, InvalidValue - { - if (value.length != array.length) - throw new InvalidValue(sizeMismatch(array.length, value.length)); - - for (int i = 0; i < value.length; i++) - { - DynAny dynAny = value [ i ].value; - checkType(dynAny.type(), i); - checkName(value [ i ].id, i); - - array [ i ] = dynAny; - } - pos = 0; - } - - /** - * Check the name at the given position ("" matches everything). - */ - private void checkName(String xName, int i) - throws TypeMismatch - { - if (xName.length() > 0 && fNames [ i ].length() > 0) - if (!xName.equals(fNames [ i ])) - throw new TypeMismatch("Field name mismatch " + xName + " expected " + - fNames [ i ] - ); - } - - /** - * Check the type at the given position. - */ - private void checkType(TypeCode t, int i) - throws TypeMismatch - { - if (!array [ i ].type().equal(t)) - throw new TypeMismatch(typeMismatch(array [ i ].type(), t) + " field " + - i - ); - } - - /** - * Set members from the provided array. - */ - public void set_members(NameValuePair[] value) - throws TypeMismatch, InvalidValue - { - if (value.length != array.length) - throw new InvalidValue(sizeMismatch(array.length, value.length)); - - for (int i = 0; i < value.length; i++) - { - Any any = value [ i ].value; - checkType(any.type(), i); - checkName(value [ i ].id, i); - - array [ i ].from_any(any); - } - pos = 0; - } - - /** @inheritDoc */ - public void assign(DynAny from) - throws TypeMismatch - { - checkType(official_type, from.type()); - if (from instanceof DynStruct) - { - try - { - set_members_as_dyn_any(((DynStruct) from).get_members_as_dyn_any()); - } - catch (InvalidValue e) - { - TypeMismatch t = new TypeMismatch("Invalid value"); - t.initCause(e); - throw t; - } - } - else - throw new TypeMismatch("Not a DynStruct"); - } - - /** - * Create a copy. - */ - public DynAny copy() - { - DynAny[] c = new DynAny[ array.length ]; - for (int i = 0; i < c.length; i++) - { - c [ i ] = array [ i ].copy(); - } - - RecordAny d = newInstance(official_type, final_type, factory, orb); - d.array = c; - return d; - } - - /** - * Create a new instance when copying. - */ - protected abstract RecordAny newInstance(TypeCode oType, TypeCode aType, - gnuDynAnyFactory aFactory, - ORB anOrb - ); - - /** - * Done via reflection. - */ - public Any to_any() - { - try - { - Streamable sHolder = HolderLocator.createHolder(official_type); - - Class sHolderClass = sHolder.getClass(); - Field sHolderValue = sHolderClass.getField("value"); - Class sClass = sHolderValue.getType(); - - Object structure = sClass.newInstance(); - Object member; - Any am; - Field vread; - Field vwrite; - Streamable memberHolder; - - for (int i = 0; i < array.length; i++) - { - am = array [ i ].to_any(); - memberHolder = am.extract_Streamable(); - vwrite = structure.getClass().getField(final_type.member_name(i)); - vread = memberHolder.getClass().getField("value"); - member = vread.get(memberHolder); - vwrite.set(structure, member); - } - - Any g = createAny(); - sHolderValue.set(sHolder, structure); - g.insert_Streamable(sHolder); - g.type(official_type); - return g; - } - catch (Exception e) - { - throw new Unexpected(e); - } - } - - /** - * Done via reflection. - */ - public void from_any(Any an_any) - throws TypeMismatch, InvalidValue - { - checkType(official_type, an_any.type()); - try - { - Streamable s = an_any.extract_Streamable(); - if (s == null) - { - if (this instanceof DynValueCommonOperations) - { - ((DynValueCommonOperations) this).set_to_null(); - return; - } - else - throw new InvalidValue(ISNULL); - } - - Object structure = s.getClass().getField("value").get(s); - if (structure == null && (this instanceof DynValueCommonOperations)) - { - ((DynValueCommonOperations) this).set_to_null(); - return; - } - - Any member; - Streamable holder; - Object field; - TypeCode fType; - Field fField; - - for (int i = 0; i < array.length; i++) - { - fField = structure.getClass().getField(fNames [ i ]); - field = fField.get(structure); - fType = array [ i ].type(); - holder = HolderLocator.createHolder(fType); - - member = createAny(); - holder.getClass().getField("value").set(holder, field); - member.insert_Streamable(holder); - member.type(fType); - - array [ i ].from_any(member); - } - - if (this instanceof DynValueCommonOperations) - ((DynValueCommonOperations) this).set_to_value(); - } - catch (InvalidValue v) - { - throw v; - } - catch (NoSuchFieldException ex) - { - TypeMismatch v = - new TypeMismatch("holder value does not match typecode"); - v.initCause(ex); - throw v; - } - catch (Exception ex) - { - TypeMismatch t = new TypeMismatch(); - t.initCause(ex); - throw t; - } - } - -// GCJ LOCAL - package private delegates to work around bug in gnuDynValue. - int record_component_count() - { - return component_count(); - } - - boolean record_equal(DynAny o) - { - return equal(o); - } -} diff --git a/libjava/gnu/CORBA/DynAn/UndivideableAny.h b/libjava/gnu/CORBA/DynAn/UndivideableAny.h new file mode 100644 index 00000000000..dd827d6e8b4 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/UndivideableAny.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_UndivideableAny__ +#define __gnu_CORBA_DynAn_UndivideableAny__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class UndivideableAny; + class gnuDynAnyFactory; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::UndivideableAny : public ::gnu::CORBA::DynAn::AbstractAny +{ + +public: + UndivideableAny(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual void destroy(); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean next(); + virtual void rewind(); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean equals(::java::lang::Object *); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_UndivideableAny__ diff --git a/libjava/gnu/CORBA/DynAn/ValueChangeListener.h b/libjava/gnu/CORBA/DynAn/ValueChangeListener.h new file mode 100644 index 00000000000..3a106d61409 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/ValueChangeListener.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_ValueChangeListener__ +#define __gnu_CORBA_DynAn_ValueChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class ValueChangeListener; + } + } + } +} + +class gnu::CORBA::DynAn::ValueChangeListener : public ::java::lang::Object +{ + +public: + virtual void changed() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_DynAn_ValueChangeListener__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynAny.h b/libjava/gnu/CORBA/DynAn/gnuDynAny.h new file mode 100644 index 00000000000..f8e0c0f3dd2 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynAny.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynAny__ +#define __gnu_CORBA_DynAn_gnuDynAny__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAny; + class gnuDynAnyFactory; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class Object; + class TCKind; + class TypeCode; + namespace portable + { + class Streamable; + } + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynAny : public ::gnu::CORBA::DynAn::AbstractAny +{ + +public: + gnuDynAny(::org::omg::CORBA::portable::Streamable *, ::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual void destroy(); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean next(); + virtual void rewind(); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); + virtual ::org::omg::CORBA::TypeCode * type(); +public: // actually protected + virtual jint getHashCodeSimple(jint); +public: + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); +private: + void check(::org::omg::CORBA::TCKind *); + static const jlong serialVersionUID = 1LL; +public: // actually protected + ::org::omg::CORBA::portable::Streamable * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::AbstractAny)))) holder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynAny__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynAnyFactory.h b/libjava/gnu/CORBA/DynAn/gnuDynAnyFactory.h new file mode 100644 index 00000000000..6bfc5d55e18 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynAnyFactory.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynAnyFactory__ +#define __gnu_CORBA_DynAn_gnuDynAnyFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAnyFactory; + } + namespace Poa + { + class ORB_1_4; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynArray; + class DynEnum; + class DynFixed; + class DynSequence; + class DynStruct; + class DynUnion; + class DynValue; + class DynValueBox; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynAnyFactory : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuDynAnyFactory(::gnu::CORBA::Poa::ORB_1_4 *); + virtual ::gnu::CORBA::Poa::ORB_1_4 * getOrb(); + virtual ::org::omg::DynamicAny::DynArray * create_array(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynSequence * create_sequence(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynStruct * create_structure(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynUnion * create_union(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynValue * create_value(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynValueBox * create_value_box(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynEnum * create_enumeration(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynFixed * create_fixed(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynAny * create_alias(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynAny * create_simple(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any_from_type_code(::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any_from_type_code(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any(::org::omg::CORBA::Any *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::gnu::CORBA::Poa::ORB_1_4 * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) orb; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynAnyFactory__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynArray.h b/libjava/gnu/CORBA/DynAn/gnuDynArray.h new file mode 100644 index 00000000000..d14d9efc807 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynArray.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynArray__ +#define __gnu_CORBA_DynAn_gnuDynArray__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAnyFactory; + class gnuDynArray; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynArray : public ::gnu::CORBA::DynAn::DivideableAny +{ + +public: + gnuDynArray(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *, jboolean); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual JArray< ::org::omg::CORBA::Any * > * get_elements(); + virtual JArray< ::org::omg::DynamicAny::DynAny * > * get_elements_as_dyn_any(); + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *); + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *); + virtual ::org::omg::CORBA::Any * to_any(); + virtual void from_any(::org::omg::CORBA::Any *); +public: // actually protected + virtual void checkArrayValid(::java::lang::Object *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::org::omg::CORBA::TypeCode * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::DivideableAny)))) official_components; + ::org::omg::CORBA::TypeCode * final_components; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynArray__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynEnum.h b/libjava/gnu/CORBA/DynAn/gnuDynEnum.h new file mode 100644 index 00000000000..0aaebf60429 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynEnum.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynEnum__ +#define __gnu_CORBA_DynAn_gnuDynEnum__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAnyFactory; + class gnuDynEnum; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynEnum : public ::gnu::CORBA::DynAn::UndivideableAny +{ + +public: + gnuDynEnum(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + gnuDynEnum(::gnu::CORBA::DynAn::gnuDynEnum *); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::java::lang::String * get_as_string(); + virtual jint get_as_ulong(); + virtual void set_as_string(::java::lang::String *); + virtual void set_as_ulong(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::UndivideableAny)))) values; + jint current; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynEnum__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynFixed.h b/libjava/gnu/CORBA/DynAn/gnuDynFixed.h new file mode 100644 index 00000000000..ced924bed17 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynFixed.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynFixed__ +#define __gnu_CORBA_DynAn_gnuDynFixed__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAnyFactory; + class gnuDynFixed; + } + } + } + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynFixed : public ::gnu::CORBA::DynAn::UndivideableAny +{ + +public: + gnuDynFixed(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + gnuDynFixed(::gnu::CORBA::DynAn::gnuDynFixed *); + virtual ::java::lang::String * get_value(); + virtual jboolean set_value(::java::lang::String *); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + static ::java::math::BigDecimal * ZERO; + ::java::math::BigDecimal * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::UndivideableAny)))) value; + jint scale; + jint digits; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynFixed__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynSequence.h b/libjava/gnu/CORBA/DynAn/gnuDynSequence.h new file mode 100644 index 00000000000..cba3b1c5de0 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynSequence.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynSequence__ +#define __gnu_CORBA_DynAn_gnuDynSequence__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAnyFactory; + class gnuDynSequence; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynSequence : public ::gnu::CORBA::DynAn::gnuDynArray +{ + +public: + gnuDynSequence(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual jint get_length(); + virtual void set_length(jint); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *); + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *); + virtual ::org::omg::DynamicAny::DynAny * copy(); +public: // actually package-private + virtual void checkBound(jint); +public: // actually protected + virtual void checkArrayValid(::java::lang::Object *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::gnuDynArray)))) bound; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynSequence__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynStruct.h b/libjava/gnu/CORBA/DynAn/gnuDynStruct.h new file mode 100644 index 00000000000..76c32e28517 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynStruct.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynStruct__ +#define __gnu_CORBA_DynAn_gnuDynStruct__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class RecordAny; + class gnuDynAnyFactory; + class gnuDynStruct; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class TypeCode; + } + namespace DynamicAny + { + class NameDynAnyPair; + class NameValuePair; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynStruct : public ::gnu::CORBA::DynAn::RecordAny +{ + +public: + gnuDynStruct(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); +public: // actually protected + virtual ::gnu::CORBA::DynAn::RecordAny * newInstance(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); +public: + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any(); + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynStruct__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynUnion.h b/libjava/gnu/CORBA/DynAn/gnuDynUnion.h new file mode 100644 index 00000000000..a159c8c2b59 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynUnion.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynUnion__ +#define __gnu_CORBA_DynAn_gnuDynUnion__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAnyFactory; + class gnuDynUnion; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynUnion : public ::gnu::CORBA::DynAn::DivideableAny +{ + +public: + gnuDynUnion(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual ::org::omg::CORBA::Any * to_any(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::TCKind * discriminator_kind(); + virtual ::org::omg::DynamicAny::DynAny * get_discriminator(); + virtual jboolean has_no_active_member(); + virtual ::org::omg::CORBA::TCKind * member_kind(); + virtual ::java::lang::String * member_name(); + virtual ::org::omg::DynamicAny::DynAny * member(); + virtual void set_discriminator(::org::omg::DynamicAny::DynAny *); + virtual void set_to_default_member(); + virtual void set_to_no_active_member(); + virtual void updateMember(); + virtual void changed(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::org::omg::DynamicAny::DynAny * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::DivideableAny)))) discriminator; + static ::java::lang::String * NOAM; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynUnion__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynValue.h b/libjava/gnu/CORBA/DynAn/gnuDynValue.h new file mode 100644 index 00000000000..852e69ca9df --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynValue.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynValue__ +#define __gnu_CORBA_DynAn_gnuDynValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class RecordAny; + class gnuDynAnyFactory; + class gnuDynValue; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class NameDynAnyPair; + class NameValuePair; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynValue : public ::gnu::CORBA::DynAn::RecordAny +{ + +public: + gnuDynValue(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); +private: + void inheritFields(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); +public: + virtual ::org::omg::CORBA::TCKind * current_member_kind(); + virtual ::java::lang::String * current_member_name(); + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any(); + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members(); + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *); + virtual jboolean is_null(); + virtual void set_to_null(); + virtual void set_to_value(); +public: // actually protected + virtual ::gnu::CORBA::DynAn::RecordAny * newInstance(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); +public: + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); +public: // actually protected + virtual ::org::omg::DynamicAny::DynAny * focused(); +public: + virtual ::org::omg::CORBA::Any * to_any(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::java::io::Serializable * get_val(); + virtual void insert_val(::java::io::Serializable *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::RecordAny)))) isNull; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynValue__ diff --git a/libjava/gnu/CORBA/DynAn/gnuDynValue.java b/libjava/gnu/CORBA/DynAn/gnuDynValue.java deleted file mode 100644 index df952412512..00000000000 --- a/libjava/gnu/CORBA/DynAn/gnuDynValue.java +++ /dev/null @@ -1,386 +0,0 @@ -/* gnuDynValue.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 gnu.CORBA.DynAn; - -import gnu.CORBA.Minor; -import gnu.CORBA.Unexpected; - -import org.omg.CORBA.Any; -import org.omg.CORBA.BAD_PARAM; -import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.ORB; -import org.omg.CORBA.TCKind; -import org.omg.CORBA.TypeCode; -import org.omg.CORBA.VM_TRUNCATABLE; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.ValueFactory; -import org.omg.DynamicAny.DynAny; -import org.omg.DynamicAny.DynAnyPackage.InvalidValue; -import org.omg.DynamicAny.DynAnyPackage.TypeMismatch; -import org.omg.DynamicAny.DynStruct; -import org.omg.DynamicAny.DynValue; -import org.omg.DynamicAny.DynValueCommon; -import org.omg.DynamicAny.DynValueOperations; -import org.omg.DynamicAny.NameDynAnyPair; -import org.omg.DynamicAny.NameValuePair; - -import java.io.Serializable; - -/** - * Implementation of DynValue. - * - * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) - */ -public class gnuDynValue extends RecordAny implements DynValue, - Serializable -{ - /** - * Use serialVersionUID for interoperability. - */ - private static final long serialVersionUID = 1; - - /** - * If true, the value of this ValueType is set to null. - */ - boolean isNull; - - /** - * Create an instance. - */ - public gnuDynValue(TypeCode oType, TypeCode aType, - gnuDynAnyFactory aFactory, ORB anOrb - ) - { - super(oType, aType, aFactory, anOrb); - - // Initialise fields. The array of fields also includes all inherited - // fields. - try - { - array = new DynAny[ final_type.member_count() ]; - fNames = new String[ array.length ]; - for (int i = 0; i < array.length; i++) - { - array [ i ] = - factory.create_dyn_any_from_type_code(final_type.member_type(i)); - fNames [ i ] = final_type.member_name(i); - } - - // Search of inherited members. - if (final_type.type_modifier() == VM_TRUNCATABLE.value) - { - TypeCode parent = final_type.concrete_base_type(); - DynAny ancestor = factory.create_dyn_any_from_type_code(parent); - - if (ancestor instanceof DynValue) - { - // Add members of ancestor in front of the curren members. - DynValue anc = (DynValue) ancestor; - anc.set_to_value(); - - NameDynAnyPair[] aar = anc.get_members_as_dyn_any(); - inheritFields(aar); - } - else if (ancestor instanceof DynStruct) - { - // Add members of ancestor in front of the curren members. - DynStruct anc = (DynStruct) ancestor; - NameDynAnyPair[] aar = anc.get_members_as_dyn_any(); - inheritFields(aar); - } - else - throw new BAD_PARAM("The parent of " + final_type.id() + ", " + - parent.id() + ", is not structure nor value." - ); - } - } - catch (Exception e) - { - throw new Unexpected(e); - } - - set_to_null(); - } - - /** - * Inherit the provided fields. - */ - private void inheritFields(NameDynAnyPair[] aar) - { - DynAny[] nArray = new DynAny[ array.length + aar.length ]; - String[] nNames = new String[ array.length + aar.length ]; - int p = 0; - for (int i = 0; i < aar.length; i++) - { - nArray [ p ] = aar [ i ].value; - nNames [ p ] = aar [ i ].id; - p++; - } - - for (int i = 0; i < array.length; i++) - { - nArray [ p ] = array [ i ]; - nNames [ p ] = fNames [ i ]; - p++; - } - - array = nArray; - fNames = nNames; - } - - /** @inheritDoc */ - public TCKind current_member_kind() throws TypeMismatch, InvalidValue - { - if (isNull) - throw new TypeMismatch(ISNULL); - else - return super.current_member_kind(); - } - ; - - /** @inheritDoc */ - public String current_member_name() throws TypeMismatch, InvalidValue - { - if (isNull) - throw new TypeMismatch(ISNULL); - else - return super.current_member_name(); - } - ; - - /** @inheritDoc */ - public NameDynAnyPair[] get_members_as_dyn_any() throws InvalidValue - { - if (isNull) - throw new InvalidValue(ISNULL); - return super.gnu_get_members_as_dyn_any(); - } - ; - - /** @inheritDoc */ - public NameValuePair[] get_members() throws InvalidValue - { - if (isNull) - throw new InvalidValue(ISNULL); - else - return super.gnu_get_members(); - } - ; - - /** @inheritDoc */ - public void set_members_as_dyn_any(NameDynAnyPair[] value) - throws TypeMismatch, InvalidValue - { - super.set_members_as_dyn_any(value); - isNull = false; - } - ; - - /** @inheritDoc */ - public void set_members(NameValuePair[] value) - throws TypeMismatch, InvalidValue - { - super.set_members(value); - isNull = false; - } - ; - - /** @inheritDoc */ - public boolean is_null() - { - return isNull; - } - - /** @inheritDoc */ - public void set_to_null() - { - isNull = true; - valueChanged(); - } - - /** @inheritDoc */ - public void set_to_value() - { - isNull = false; - valueChanged(); - } - - /** - * Create a new instance. - */ - protected RecordAny newInstance(TypeCode oType, TypeCode aType, - gnuDynAnyFactory aFactory, ORB anOrb - ) - { - gnuDynValue v = new gnuDynValue(oType, aType, aFactory, anOrb); - if (isNull) - v.set_to_null(); - else - v.set_to_value(); - return v; - } - - /** - * Compare for equality, minding null values. - */ - public boolean equal(DynAny other) - { - if (other instanceof DynValueOperations) - { - DynValueCommon o = (DynValueCommon) other; - if (isNull) - return o.is_null() && o.type().equal(official_type); - else - return !o.is_null() && record_equal(other); // GCJ LOCAL bug #24938 - } - else - return false; - } - - /** - * Get the focused component, throwing exception if the current value is null. - */ - protected DynAny focused() throws InvalidValue, TypeMismatch - { - if (isNull) - throw new TypeMismatch(ISNULL); - else - return super.focused(); - } - - /** - * Convert into Any. - */ - public Any to_any() - { - if (isNull) - { - Any a0 = createAny(); - a0.type(orb.get_primitive_tc(TCKind.tk_null)); - return a0; - } - else - { - try - { - ValueFactory factory = - ((org.omg.CORBA_2_3.ORB) orb).lookup_value_factory(official_type.id()); - if (factory == null) - { - MARSHAL m = new MARSHAL("Factory for " + official_type.id() + - " not registered."); - m.minor = Minor.Factory; - throw m; - } - - OutputStream out = orb.create_output_stream(); - - for (int i = 0; i < array.length; i++) - array [ i ].to_any().write_value(out); - - org.omg.CORBA_2_3.portable.InputStream in = - (org.omg.CORBA_2_3.portable.InputStream) out.create_input_stream(); - Serializable v = factory.read_value(in); - - Any g = createAny(); - g.type(official_type); - g.insert_Value(v, official_type); - - return g; - } - catch (Exception e) - { - throw new Unexpected(e); - } - } - } - - /** @inheritDoc */ - public void assign(DynAny from) throws TypeMismatch - { - checkType(official_type, from.type()); - - if (from instanceof DynValue) - { - DynValue other = (DynValue) from; - if (other.is_null()) - set_to_null(); - else - { - set_to_value(); - try - { - DynValueOperations src = (DynValueOperations) from; - set_members_as_dyn_any(src.get_members_as_dyn_any()); - } - catch (InvalidValue e) - { - TypeMismatch t = new TypeMismatch("Invalid value"); - t.initCause(e); - throw t; - } - } - } - else - throw new TypeMismatch("Not a DynValue"); - } - - /** - * Get the number of components. - */ - public int component_count() - { - return isNull ? 0 : record_component_count(); // GCJ LOCAL bug #24938 - } - - /** {@inheritDoc} */ - public Serializable get_val() throws TypeMismatch, InvalidValue - { - return to_any().extract_Value(); - } - - /** {@inheritDoc} */ - public void insert_val(Serializable a_x) throws InvalidValue, TypeMismatch - { - Any a = to_any(); - a.insert_Value(a_x); - from_any(a); - valueChanged(); - } -} diff --git a/libjava/gnu/CORBA/DynAn/gnuDynValueBox.h b/libjava/gnu/CORBA/DynAn/gnuDynValueBox.h new file mode 100644 index 00000000000..da79ceba0b7 --- /dev/null +++ b/libjava/gnu/CORBA/DynAn/gnuDynValueBox.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAn_gnuDynValueBox__ +#define __gnu_CORBA_DynAn_gnuDynValueBox__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace DynAn + { + class gnuDynAnyFactory; + class gnuDynValueBox; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAn::gnuDynValueBox : public ::gnu::CORBA::DynAn::DivideableAny +{ + +public: + gnuDynValueBox(::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::TypeCode *, ::gnu::CORBA::DynAn::gnuDynAnyFactory *, ::org::omg::CORBA::ORB *); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_boxed_value(); + virtual ::org::omg::DynamicAny::DynAny * get_boxed_value_as_dyn_any(); + virtual ::java::io::Serializable * get_val(); + virtual void insert_val(::java::io::Serializable *); + virtual jboolean is_null(); + virtual void set_boxed_value(::org::omg::CORBA::Any *); + virtual void set_boxed_value_as_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void set_to_null(); + virtual void set_to_value(); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::org::omg::CORBA::TypeCode * __attribute__((aligned(__alignof__( ::gnu::CORBA::DynAn::DivideableAny)))) content; + ::java::lang::String * CONTENT; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAn_gnuDynValueBox__ diff --git a/libjava/gnu/CORBA/DynAnySeqHolder.h b/libjava/gnu/CORBA/DynAnySeqHolder.h new file mode 100644 index 00000000000..838733302a6 --- /dev/null +++ b/libjava/gnu/CORBA/DynAnySeqHolder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_DynAnySeqHolder__ +#define __gnu_CORBA_DynAnySeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class DynAnySeqHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class gnu::CORBA::DynAnySeqHolder : public ::java::lang::Object +{ + +public: + DynAnySeqHolder(); + DynAnySeqHolder(JArray< ::org::omg::DynamicAny::DynAny * > *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + JArray< ::org::omg::DynamicAny::DynAny * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_DynAnySeqHolder__ diff --git a/libjava/gnu/CORBA/EmptyExceptionHolder.h b/libjava/gnu/CORBA/EmptyExceptionHolder.h new file mode 100644 index 00000000000..d8799999aed --- /dev/null +++ b/libjava/gnu/CORBA/EmptyExceptionHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_EmptyExceptionHolder__ +#define __gnu_CORBA_EmptyExceptionHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class EmptyExceptionHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::EmptyExceptionHolder : public ::java::lang::Object +{ + +public: + EmptyExceptionHolder(::java::lang::Throwable *, ::org::omg::CORBA::TypeCode *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + ::org::omg::CORBA::TypeCode * typecode; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_EmptyExceptionHolder__ diff --git a/libjava/gnu/CORBA/ForwardRequestHelper.h b/libjava/gnu/CORBA/ForwardRequestHelper.h new file mode 100644 index 00000000000..db527896ae7 --- /dev/null +++ b/libjava/gnu/CORBA/ForwardRequestHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_ForwardRequestHelper__ +#define __gnu_CORBA_ForwardRequestHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class ForwardRequestHelper; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + class ForwardRequest; + } + } + } +} + +class gnu::CORBA::ForwardRequestHelper : public ::java::lang::Object +{ + +public: + ForwardRequestHelper(); + static ::org::omg::PortableServer::ForwardRequest * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::ForwardRequest *); + static ::org::omg::PortableServer::ForwardRequest * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::ForwardRequest *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_ForwardRequestHelper__ diff --git a/libjava/gnu/CORBA/GIOP/CancelHeader.h b/libjava/gnu/CORBA/GIOP/CancelHeader.h new file mode 100644 index 00000000000..14aeabf01c2 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/CancelHeader.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_CancelHeader__ +#define __gnu_CORBA_GIOP_CancelHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class CancelHeader; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::GIOP::CancelHeader : public ::java::lang::Object +{ + +public: + CancelHeader(); + virtual void read(::org::omg::CORBA::portable::InputStream *) = 0; + virtual void write(::org::omg::CORBA::portable::OutputStream *) = 0; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) request_id; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_CancelHeader__ diff --git a/libjava/gnu/CORBA/GIOP/CharSets_OSF.h b/libjava/gnu/CORBA/GIOP/CharSets_OSF.h new file mode 100644 index 00000000000..afac0d36a24 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/CharSets_OSF.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_CharSets_OSF__ +#define __gnu_CORBA_GIOP_CharSets_OSF__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class CharSets_OSF; + } + } + } +} + +class gnu::CORBA::GIOP::CharSets_OSF : public ::java::lang::Object +{ + +public: + CharSets_OSF(); + static jint getCode(::java::lang::String *); + static ::java::lang::String * getName(jint); + static JArray< jint > * getSupportedCharSets(); +private: + static void makeMap(); + static void put(jint, ::java::lang::String *); +public: + static const jint ASCII = 65568; + static const jint ISO8859_1 = 65537; + static const jint ISO8859_2 = 65538; + static const jint ISO8859_3 = 65539; + static const jint ISO8859_4 = 65540; + static const jint ISO8859_5 = 65541; + static const jint ISO8859_6 = 65542; + static const jint ISO8859_7 = 65543; + static const jint ISO8859_8 = 65544; + static const jint ISO8859_9 = 65545; + static const jint ISO8859_15_FDIS = 65551; + static const jint UTF8 = 83951617; + static const jint UTF16 = 65801; + static const jint UCS2 = 65792; + static const jint Cp1047 = 268567575; + static const jint Cp1250 = 268567778; + static const jint Cp1251 = 268567779; + static const jint Cp1252 = 268567780; + static const jint Cp1253 = 268567781; + static const jint Cp1254 = 268567782; + static const jint Cp1255 = 268567783; + static const jint Cp1256 = 268567784; + static const jint Cp1257 = 268567785; + static const jint Cp1363 = 268567891; + static const jint Cp1363C = 268567891; + static const jint Cp1381 = 268567909; + static const jint Cp1383 = 268567911; + static const jint Cp1386 = 268567914; + static const jint Cp33722 = 268600250; + static const jint Cp33722C = 268600250; + static const jint Cp930 = 268567458; + static const jint Cp943 = 268567471; + static const jint Cp943C = 268567471; + static const jint Cp949 = 268567477; + static const jint Cp949C = 268567477; + static const jint Cp950 = 268567478; + static const jint Cp964 = 268567492; + static const jint Cp970 = 268567498; + static const jint EUC_JP = 196624; + static const jint EUC_KR = 262154; + static const jint EUC_TW = 327696; + static const jint NATIVE_CHARACTER = 65537; + static const jint NATIVE_WIDE_CHARACTER = 65801; +private: + static ::java::util::Hashtable * code_to_string; + static ::java::util::Hashtable * string_to_code; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_CharSets_OSF__ diff --git a/libjava/gnu/CORBA/GIOP/CloseMessage.h b/libjava/gnu/CORBA/GIOP/CloseMessage.h new file mode 100644 index 00000000000..b9700f871d1 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/CloseMessage.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_CloseMessage__ +#define __gnu_CORBA_GIOP_CloseMessage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class CloseMessage; + } + } + } +} + +class gnu::CORBA::GIOP::CloseMessage : public ::gnu::CORBA::GIOP::MessageHeader +{ + +public: + CloseMessage(); + static void close(::java::io::OutputStream *); +private: + static const jlong serialVersionUID = 1LL; + static ::gnu::CORBA::GIOP::CloseMessage * Singleton; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_CloseMessage__ diff --git a/libjava/gnu/CORBA/GIOP/CodeSetServiceContext.h b/libjava/gnu/CORBA/GIOP/CodeSetServiceContext.h new file mode 100644 index 00000000000..6b3f1510dc7 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/CodeSetServiceContext.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_CodeSetServiceContext__ +#define __gnu_CORBA_GIOP_CodeSetServiceContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + class CodeSetServiceContext; + class ServiceContext; + } + class IOR$CodeSets_profile; + class IOR$CodeSets_profile$CodeSet_component; + } + } +} + +class gnu::CORBA::GIOP::CodeSetServiceContext : public ::gnu::CORBA::GIOP::ServiceContext +{ + +public: + CodeSetServiceContext(); + static ::gnu::CORBA::GIOP::CodeSetServiceContext * find(JArray< ::gnu::CORBA::GIOP::ServiceContext * > *); + static ::gnu::CORBA::GIOP::CodeSetServiceContext * negotiate(::gnu::CORBA::IOR$CodeSets_profile *); + virtual void readContext(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual ::java::lang::String * toString(); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); +public: // actually protected + static jint negotiate(::gnu::CORBA::IOR$CodeSets_profile$CodeSet_component *, jint, jint); +private: + ::java::lang::String * name(jint); +public: + static const jint ID = 1; + static ::gnu::CORBA::GIOP::CodeSetServiceContext * STANDARD; + jint __attribute__((aligned(__alignof__( ::gnu::CORBA::GIOP::ServiceContext)))) char_data; + jint wide_char_data; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_CodeSetServiceContext__ diff --git a/libjava/gnu/CORBA/GIOP/ContextHandler.h b/libjava/gnu/CORBA/GIOP/ContextHandler.h new file mode 100644 index 00000000000..80ec2afd52f --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/ContextHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_ContextHandler__ +#define __gnu_CORBA_GIOP_ContextHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class ContextHandler; + class ServiceContext; + } + } + } + namespace org + { + namespace omg + { + namespace IOP + { + class ServiceContext; + } + } + } +} + +class gnu::CORBA::GIOP::ContextHandler : public ::java::lang::Object +{ + +public: + ContextHandler(); + virtual void addContext(::org::omg::IOP::ServiceContext *, jboolean); +public: // actually protected + static JArray< ::gnu::CORBA::GIOP::ServiceContext * > * NO_CONTEXT; +public: + JArray< ::gnu::CORBA::GIOP::ServiceContext * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) service_context; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_ContextHandler__ diff --git a/libjava/gnu/CORBA/GIOP/ErrorMessage.h b/libjava/gnu/CORBA/GIOP/ErrorMessage.h new file mode 100644 index 00000000000..321991ab426 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/ErrorMessage.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_ErrorMessage__ +#define __gnu_CORBA_GIOP_ErrorMessage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class ErrorMessage; + } + class IOR; + class Version; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class gnu::CORBA::GIOP::ErrorMessage : public ::gnu::CORBA::GIOP::MessageHeader +{ + +public: + ErrorMessage(::gnu::CORBA::Version *); + virtual void send(::gnu::CORBA::IOR *, ::org::omg::CORBA::ORB *); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_ErrorMessage__ diff --git a/libjava/gnu/CORBA/GIOP/MessageHeader.h b/libjava/gnu/CORBA/GIOP/MessageHeader.h new file mode 100644 index 00000000000..232a5b36478 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/MessageHeader.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_MessageHeader__ +#define __gnu_CORBA_GIOP_MessageHeader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class CancelHeader; + class ErrorMessage; + class MessageHeader; + class ReplyHeader; + class RequestHeader; + } + class Version; + } + } + namespace java + { + namespace net + { + class Socket; + } + } +} + +class gnu::CORBA::GIOP::MessageHeader : public ::java::lang::Object +{ + +public: + MessageHeader(); + MessageHeader(jint, jint); + virtual jboolean isBigEndian(); + virtual jboolean moreFragmentsFollow(); + virtual void setBigEndian(jboolean); + virtual jint getHeaderSize(); + virtual ::java::lang::String * getTypeString(jint); + virtual ::gnu::CORBA::GIOP::ReplyHeader * create_reply_header(); + virtual ::gnu::CORBA::GIOP::RequestHeader * create_request_header(); + virtual ::gnu::CORBA::GIOP::CancelHeader * create_cancel_header(); + virtual ::gnu::CORBA::GIOP::ErrorMessage * create_error_message(); + virtual void read(::java::io::InputStream *); + virtual ::java::lang::String * toString(); + virtual void write(::java::io::OutputStream *); + virtual JArray< jbyte > * readMessage(::java::io::InputStream *, ::java::net::Socket *, jint, jint); +private: + static const jlong serialVersionUID = 1LL; +public: + static const jbyte REQUEST = 0; + static const jbyte REPLY = 1; + static const jbyte CANCEL_REQUEST = 2; + static const jbyte LOCATE_REQUEST = 3; + static const jbyte LOCATE_REPLY = 4; + static const jbyte CLOSE_CONNECTION = 5; + static const jbyte MESSAGE_ERROR = 6; + static const jbyte FRAGMENT = 7; + static JArray< jbyte > * MAGIC; +public: // actually protected + static JArray< ::java::lang::String * > * types; +public: + ::gnu::CORBA::Version * __attribute__((aligned(__alignof__( ::java::lang::Object)))) version; + jbyte flags; + jbyte message_type; + jint message_size; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_MessageHeader__ diff --git a/libjava/gnu/CORBA/GIOP/ReplyHeader.h b/libjava/gnu/CORBA/GIOP/ReplyHeader.h new file mode 100644 index 00000000000..5c10ad8967a --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/ReplyHeader.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_ReplyHeader__ +#define __gnu_CORBA_GIOP_ReplyHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + class ReplyHeader; + } + } + } +} + +class gnu::CORBA::GIOP::ReplyHeader : public ::gnu::CORBA::GIOP::ContextHandler +{ + +public: + ReplyHeader(); + virtual ::java::lang::String * getStatusString(); + virtual void read(::gnu::CORBA::CDR::AbstractCdrInput *) = 0; + virtual ::java::lang::String * toString(); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *) = 0; + static const jint NO_EXCEPTION = 0; + static const jint USER_EXCEPTION = 1; + static const jint SYSTEM_EXCEPTION = 2; + static const jint LOCATION_FORWARD = 3; + static const jint LOCATION_FORWARD_PERM = 4; + static const jint NEEDS_ADDRESSING_MODE = 5; + jint __attribute__((aligned(__alignof__( ::gnu::CORBA::GIOP::ContextHandler)))) reply_status; + jint request_id; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_ReplyHeader__ diff --git a/libjava/gnu/CORBA/GIOP/RequestHeader.h b/libjava/gnu/CORBA/GIOP/RequestHeader.h new file mode 100644 index 00000000000..69135b39f28 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/RequestHeader.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_RequestHeader__ +#define __gnu_CORBA_GIOP_RequestHeader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + class RequestHeader; + } + } + } +} + +class gnu::CORBA::GIOP::RequestHeader : public ::gnu::CORBA::GIOP::ContextHandler +{ + +public: + RequestHeader(); + static jint getNextId(); + virtual void setResponseExpected(jboolean) = 0; + virtual jboolean isResponseExpected() = 0; + virtual ::java::lang::String * bytes(JArray< jbyte > *); + virtual void read(::gnu::CORBA::CDR::AbstractCdrInput *) = 0; + virtual ::java::lang::String * toString() = 0; + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *) = 0; +private: + static jint freeId; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::CORBA::GIOP::ContextHandler)))) operation; + JArray< jbyte > * object_key; + JArray< jbyte > * requesting_principal; + jint request_id; +public: // actually protected + jboolean response_expected; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_RequestHeader__ diff --git a/libjava/gnu/CORBA/GIOP/ServiceContext.h b/libjava/gnu/CORBA/GIOP/ServiceContext.h new file mode 100644 index 00000000000..7cde097f684 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/ServiceContext.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_ServiceContext__ +#define __gnu_CORBA_GIOP_ServiceContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + class ServiceContext; + } + } + } + namespace org + { + namespace omg + { + namespace IOP + { + class ServiceContext; + } + } + } +} + +class gnu::CORBA::GIOP::ServiceContext : public ::java::lang::Object +{ + +public: + ServiceContext(); + ServiceContext(::org::omg::IOP::ServiceContext *); + static ::gnu::CORBA::GIOP::ServiceContext * read(::gnu::CORBA::CDR::AbstractCdrInput *); + static JArray< ::gnu::CORBA::GIOP::ServiceContext * > * readSequence(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); + static void writeSequence(::gnu::CORBA::CDR::AbstractCdrOutput *, JArray< ::gnu::CORBA::GIOP::ServiceContext * > *); + static void add(JArray< ::org::omg::IOP::ServiceContext * > *, ::org::omg::IOP::ServiceContext *, jboolean); + static JArray< ::gnu::CORBA::GIOP::ServiceContext * > * add(JArray< ::gnu::CORBA::GIOP::ServiceContext * > *, ::org::omg::IOP::ServiceContext *, jboolean); + static ::org::omg::IOP::ServiceContext * findContext(jint, JArray< ::org::omg::IOP::ServiceContext * > *); + static ::org::omg::IOP::ServiceContext * findContext(jint, JArray< ::gnu::CORBA::GIOP::ServiceContext * > *); + static ::gnu::CORBA::GIOP::ServiceContext * find(jint, JArray< ::gnu::CORBA::GIOP::ServiceContext * > *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 1LL; +public: + static const jint TransactionService = 0; + static const jint CodeSets = 1; + static const jint ChainBypassCheck = 2; + static const jint ChainBypassInfo = 3; + static const jint LogicalThreadId = 4; + static const jint BI_DIR_IIOP = 5; + static const jint SendingContextRunTime = 6; + static const jint INVOCATION_POLICIES = 7; + static const jint FORWARDED_IDENTITY = 8; + static const jint UnknownExceptionInfo = 9; + static const jint RTCorbaPriority = 10; + static const jint RTCorbaPriorityRange = 11; + static const jint FT_GROUP_VERSION = 12; + static const jint FT_REQUEST = 13; + static const jint ExceptionDetailMessage = 14; + static const jint SecurityAttributeService = 15; + static const jint ActivityService = 16; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) context_id; + JArray< jbyte > * context_data; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_ServiceContext__ diff --git a/libjava/gnu/CORBA/GIOP/v1_0/CancelHeader.h b/libjava/gnu/CORBA/GIOP/v1_0/CancelHeader.h new file mode 100644 index 00000000000..455da24217f --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/v1_0/CancelHeader.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_v1_0_CancelHeader__ +#define __gnu_CORBA_GIOP_v1_0_CancelHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + namespace v1_0 + { + class CancelHeader; + } + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::GIOP::v1_0::CancelHeader : public ::gnu::CORBA::GIOP::CancelHeader +{ + +public: + CancelHeader(); + virtual void read(::org::omg::CORBA::portable::InputStream *); + virtual void write(::org::omg::CORBA::portable::OutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_v1_0_CancelHeader__ diff --git a/libjava/gnu/CORBA/GIOP/v1_0/ReplyHeader.h b/libjava/gnu/CORBA/GIOP/v1_0/ReplyHeader.h new file mode 100644 index 00000000000..9c5755ed021 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/v1_0/ReplyHeader.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_v1_0_ReplyHeader__ +#define __gnu_CORBA_GIOP_v1_0_ReplyHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + namespace v1_0 + { + class ReplyHeader; + } + } + } + } +} + +class gnu::CORBA::GIOP::v1_0::ReplyHeader : public ::gnu::CORBA::GIOP::ReplyHeader +{ + +public: + ReplyHeader(); + virtual ::java::lang::String * getStatusString(); + virtual ::java::lang::String * contexts(); + virtual void read(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual ::java::lang::String * toString(); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_v1_0_ReplyHeader__ diff --git a/libjava/gnu/CORBA/GIOP/v1_0/RequestHeader.h b/libjava/gnu/CORBA/GIOP/v1_0/RequestHeader.h new file mode 100644 index 00000000000..0b732776b0c --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/v1_0/RequestHeader.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_v1_0_RequestHeader__ +#define __gnu_CORBA_GIOP_v1_0_RequestHeader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + namespace v1_0 + { + class RequestHeader; + } + } + } + } +} + +class gnu::CORBA::GIOP::v1_0::RequestHeader : public ::gnu::CORBA::GIOP::RequestHeader +{ + +public: + RequestHeader(); + virtual void setResponseExpected(jboolean); + virtual jboolean isResponseExpected(); + virtual ::java::lang::String * bytes(JArray< jbyte > *); + virtual ::java::lang::String * contexts(); + virtual void read(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual ::java::lang::String * toString(); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_v1_0_RequestHeader__ diff --git a/libjava/gnu/CORBA/GIOP/v1_2/ReplyHeader.h b/libjava/gnu/CORBA/GIOP/v1_2/ReplyHeader.h new file mode 100644 index 00000000000..633c59c7559 --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/v1_2/ReplyHeader.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_v1_2_ReplyHeader__ +#define __gnu_CORBA_GIOP_v1_2_ReplyHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + namespace v1_2 + { + class ReplyHeader; + } + } + } + } +} + +class gnu::CORBA::GIOP::v1_2::ReplyHeader : public ::gnu::CORBA::GIOP::v1_0::ReplyHeader +{ + +public: + ReplyHeader(); + virtual ::java::lang::String * getStatusString(); + virtual void read(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_v1_2_ReplyHeader__ diff --git a/libjava/gnu/CORBA/GIOP/v1_2/RequestHeader.h b/libjava/gnu/CORBA/GIOP/v1_2/RequestHeader.h new file mode 100644 index 00000000000..368275c11ff --- /dev/null +++ b/libjava/gnu/CORBA/GIOP/v1_2/RequestHeader.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GIOP_v1_2_RequestHeader__ +#define __gnu_CORBA_GIOP_v1_2_RequestHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + namespace v1_2 + { + class RequestHeader; + } + } + } + } +} + +class gnu::CORBA::GIOP::v1_2::RequestHeader : public ::gnu::CORBA::GIOP::v1_0::RequestHeader +{ + +public: + RequestHeader(); + virtual void setResponseExpected(jboolean); + virtual jboolean isResponseExpected(); + virtual void read(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual ::java::lang::String * toString(); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); +private: + static const jlong serialVersionUID = 1LL; +public: + static const jshort KeyAddr = 0; + static const jshort ProfileAddr = 1; + static const jshort ReferenceAddr = 2; + jbyte __attribute__((aligned(__alignof__( ::gnu::CORBA::GIOP::v1_0::RequestHeader)))) response_flags; + jshort AddressingDisposition; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GIOP_v1_2_RequestHeader__ diff --git a/libjava/gnu/CORBA/GeneralHolder.h b/libjava/gnu/CORBA/GeneralHolder.h new file mode 100644 index 00000000000..fd3d4821e5c --- /dev/null +++ b/libjava/gnu/CORBA/GeneralHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_GeneralHolder__ +#define __gnu_CORBA_GeneralHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + } + class GeneralHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::GeneralHolder : public ::java::lang::Object +{ + +public: + GeneralHolder(::gnu::CORBA::CDR::BufferedCdrOutput *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); +public: // actually package-private + virtual ::org::omg::CORBA::portable::InputStream * getInputStream(); +public: + virtual ::gnu::CORBA::GeneralHolder * Clone(); +private: + ::gnu::CORBA::CDR::BufferedCdrOutput * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_GeneralHolder__ diff --git a/libjava/gnu/CORBA/HolderLocator.h b/libjava/gnu/CORBA/HolderLocator.h new file mode 100644 index 00000000000..78c96d71974 --- /dev/null +++ b/libjava/gnu/CORBA/HolderLocator.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_HolderLocator__ +#define __gnu_CORBA_HolderLocator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class HolderLocator; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class Streamable; + } + } + } + } +} + +class gnu::CORBA::HolderLocator : public ::java::lang::Object +{ + +public: + HolderLocator(); + static ::org::omg::CORBA::portable::Streamable * createHolder(::org::omg::CORBA::TypeCode *); +private: + static JArray< ::java::lang::Class * > * holders; + static JArray< ::java::lang::Class * > * seqHolders; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_HolderLocator__ diff --git a/libjava/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.h b/libjava/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.h new file mode 100644 index 00000000000..394d8a8930c --- /dev/null +++ b/libjava/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_IOR$CodeSets_profile$CodeSet_component__ +#define __gnu_CORBA_IOR$CodeSets_profile$CodeSet_component__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR$CodeSets_profile$CodeSet_component; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::IOR$CodeSets_profile$CodeSet_component : public ::java::lang::Object +{ + +public: + IOR$CodeSets_profile$CodeSet_component(); + virtual void read(::org::omg::CORBA::portable::InputStream *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toStringFormatted(); + virtual void write(::org::omg::CORBA::portable::OutputStream *); +private: + ::java::lang::String * name(jint); +public: + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) conversion; + jint native_set; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_IOR$CodeSets_profile$CodeSet_component__ diff --git a/libjava/gnu/CORBA/IOR$CodeSets_profile.h b/libjava/gnu/CORBA/IOR$CodeSets_profile.h new file mode 100644 index 00000000000..e38bdc4a32c --- /dev/null +++ b/libjava/gnu/CORBA/IOR$CodeSets_profile.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_IOR$CodeSets_profile__ +#define __gnu_CORBA_IOR$CodeSets_profile__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + namespace GIOP + { + class CodeSetServiceContext; + } + class IOR$CodeSets_profile; + class IOR$CodeSets_profile$CodeSet_component; + } + } +} + +class gnu::CORBA::IOR$CodeSets_profile : public ::java::lang::Object +{ + +public: + IOR$CodeSets_profile(); + virtual void read(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual ::java::lang::String * toString(); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); + static const jint TAG_CODE_SETS = 1; + ::gnu::CORBA::IOR$CodeSets_profile$CodeSet_component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) narrow; + ::gnu::CORBA::IOR$CodeSets_profile$CodeSet_component * wide; + ::gnu::CORBA::GIOP::CodeSetServiceContext * negotiated; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_IOR$CodeSets_profile__ diff --git a/libjava/gnu/CORBA/IOR$Internet_profile.h b/libjava/gnu/CORBA/IOR$Internet_profile.h new file mode 100644 index 00000000000..93e149e03d7 --- /dev/null +++ b/libjava/gnu/CORBA/IOR$Internet_profile.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_IOR$Internet_profile__ +#define __gnu_CORBA_IOR$Internet_profile__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrOutput; + } + class IOR; + class IOR$CodeSets_profile; + class IOR$Internet_profile; + class Version; + } + } +} + +class gnu::CORBA::IOR$Internet_profile : public ::java::lang::Object +{ + +public: + IOR$Internet_profile(::gnu::CORBA::IOR *); + virtual ::java::lang::String * toString(); + virtual void write(::gnu::CORBA::CDR::AbstractCdrOutput *); + static const jint TAG_INTERNET_IOP = 0; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) host; + ::gnu::CORBA::Version * version; + jint port; + ::gnu::CORBA::IOR$CodeSets_profile * CodeSets; +public: // actually package-private + ::java::util::ArrayList * components; + ::gnu::CORBA::IOR * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_IOR$Internet_profile__ diff --git a/libjava/gnu/CORBA/IOR.h b/libjava/gnu/CORBA/IOR.h new file mode 100644 index 00000000000..22cb1e1db74 --- /dev/null +++ b/libjava/gnu/CORBA/IOR.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_IOR__ +#define __gnu_CORBA_IOR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class AbstractCdrInput; + class AbstractCdrOutput; + } + class IOR; + class IOR$Internet_profile; + } + } + namespace org + { + namespace omg + { + namespace IOP + { + class TaggedComponent; + class TaggedProfile; + } + } + } +} + +class gnu::CORBA::IOR : public ::java::lang::Object +{ + +public: + IOR(); + static ::gnu::CORBA::IOR * parse(::java::lang::String *); + virtual void _read(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual void _read_no_endian(::gnu::CORBA::CDR::AbstractCdrInput *); + virtual void _write(::gnu::CORBA::CDR::AbstractCdrOutput *); + static void write_null(::gnu::CORBA::CDR::AbstractCdrOutput *); + virtual void _write_no_endian(::gnu::CORBA::CDR::AbstractCdrOutput *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toStringFormatted(); + virtual ::java::lang::String * toStringifiedReference(); + virtual void add_ior_component(::org::omg::IOP::TaggedComponent *); + virtual void add_ior_component_to_profile(::org::omg::IOP::TaggedComponent *, jint); +private: + static void addComponentTo(::org::omg::IOP::TaggedProfile *, ::org::omg::IOP::TaggedComponent *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + static const jint FAILED = 10; + ::gnu::CORBA::IOR$Internet_profile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) Internet; + ::java::lang::String * Id; + JArray< jbyte > * key; +public: // actually package-private + ::java::util::ArrayList * profiles; +public: + jboolean Big_Endian; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_IOR__ diff --git a/libjava/gnu/CORBA/Interceptor/ClientRequestInterceptors.h b/libjava/gnu/CORBA/Interceptor/ClientRequestInterceptors.h new file mode 100644 index 00000000000..d5dc4b1ce1b --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/ClientRequestInterceptors.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_ClientRequestInterceptors__ +#define __gnu_CORBA_Interceptor_ClientRequestInterceptors__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Interceptor + { + class ClientRequestInterceptors; + class Registrator; + } + } + } + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class ClientRequestInfo; + class ClientRequestInterceptor; + } + } + } +} + +class gnu::CORBA::Interceptor::ClientRequestInterceptors : public ::java::lang::Object +{ + +public: + ClientRequestInterceptors(::gnu::CORBA::Interceptor::Registrator *); + virtual void receive_exception(::org::omg::PortableInterceptor::ClientRequestInfo *); + virtual void receive_other(::org::omg::PortableInterceptor::ClientRequestInfo *); + virtual void receive_reply(::org::omg::PortableInterceptor::ClientRequestInfo *); + virtual void send_poll(::org::omg::PortableInterceptor::ClientRequestInfo *); + virtual void send_request(::org::omg::PortableInterceptor::ClientRequestInfo *); + virtual void destroy(); + virtual ::java::lang::String * name(); +private: + JArray< ::org::omg::PortableInterceptor::ClientRequestInterceptor * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) interceptors; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_ClientRequestInterceptors__ diff --git a/libjava/gnu/CORBA/Interceptor/ForwardRequestHolder.h b/libjava/gnu/CORBA/Interceptor/ForwardRequestHolder.h new file mode 100644 index 00000000000..c58ee59986c --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/ForwardRequestHolder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_ForwardRequestHolder__ +#define __gnu_CORBA_Interceptor_ForwardRequestHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Interceptor + { + class ForwardRequestHolder; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ForwardRequest; + } + } + } +} + +class gnu::CORBA::Interceptor::ForwardRequestHolder : public ::java::lang::Object +{ + +public: + ForwardRequestHolder(); + ForwardRequestHolder(::org::omg::PortableInterceptor::ForwardRequest *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::PortableInterceptor::ForwardRequest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_ForwardRequestHolder__ diff --git a/libjava/gnu/CORBA/Interceptor/IORInterceptors.h b/libjava/gnu/CORBA/Interceptor/IORInterceptors.h new file mode 100644 index 00000000000..6a2a45a7538 --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/IORInterceptors.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_IORInterceptors__ +#define __gnu_CORBA_Interceptor_IORInterceptors__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Interceptor + { + class IORInterceptors; + class Registrator; + } + } + } + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class IORInfo; + class IORInterceptor; + class ObjectReferenceTemplate; + } + } + } +} + +class gnu::CORBA::Interceptor::IORInterceptors : public ::java::lang::Object +{ + +public: + IORInterceptors(::gnu::CORBA::Interceptor::Registrator *); + virtual void establish_components(::org::omg::PortableInterceptor::IORInfo *); + virtual void destroy(); + virtual ::java::lang::String * name(); + virtual void adapter_manager_state_changed(jint, jshort); + virtual void adapter_state_changed(JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > *, jshort); + virtual void components_established(::org::omg::PortableInterceptor::IORInfo *); +private: + JArray< ::org::omg::PortableInterceptor::IORInterceptor * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) interceptors; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_IORInterceptors__ diff --git a/libjava/gnu/CORBA/Interceptor/Registrator.h b/libjava/gnu/CORBA/Interceptor/Registrator.h new file mode 100644 index 00000000000..8a5a3b03264 --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/Registrator.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_Registrator__ +#define __gnu_CORBA_Interceptor_Registrator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Interceptor + { + class Registrator; + } + namespace Poa + { + class ORB_1_4; + } + class gnuCodecFactory; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace IOP + { + class CodecFactory; + } + namespace PortableInterceptor + { + class ClientRequestInterceptor; + class IORInterceptor; + class Interceptor; + class PolicyFactory; + class ServerRequestInterceptor; + } + } + } +} + +class gnu::CORBA::Interceptor::Registrator : public ::org::omg::CORBA::LocalObject +{ + +public: + Registrator(::gnu::CORBA::Poa::ORB_1_4 *, ::java::util::Properties *, JArray< ::java::lang::String * > *); +private: + void checkProperties(::java::util::Properties *); + void checkFile(::java::lang::String *, ::java::lang::String *); +public: + virtual void pre_init(); + virtual ::java::util::Map * getRegisteredReferences(); + virtual void post_init(); + virtual JArray< ::org::omg::PortableInterceptor::ServerRequestInterceptor * > * getServerRequestInterceptors(); + virtual JArray< ::org::omg::PortableInterceptor::ClientRequestInterceptor * > * getClientRequestInterceptors(); + virtual JArray< ::org::omg::PortableInterceptor::IORInterceptor * > * getIORInterceptors(); + virtual void add_client_request_interceptor(::org::omg::PortableInterceptor::ClientRequestInterceptor *); + virtual void add_ior_interceptor(::org::omg::PortableInterceptor::IORInterceptor *); + virtual void add_server_request_interceptor(::org::omg::PortableInterceptor::ServerRequestInterceptor *); + virtual jint allocate_slot_id(); +private: + void add(::java::util::ArrayList *, ::org::omg::PortableInterceptor::Interceptor *); +public: + virtual JArray< ::java::lang::String * > * arguments(); + virtual ::org::omg::IOP::CodecFactory * codec_factory(); + virtual ::java::lang::String * orb_id(); + virtual void register_initial_reference(::java::lang::String *, ::org::omg::CORBA::Object *); + virtual void register_policy_factory(jint, ::org::omg::PortableInterceptor::PolicyFactory *); + virtual ::org::omg::CORBA::Object * resolve_initial_references(::java::lang::String *); + virtual jboolean hasClientRequestInterceptors(); + virtual jboolean hasServerRequestInterceptors(); + virtual jboolean hasIorInterceptors(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::String * m_prefix; +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) m_server; + ::java::util::ArrayList * m_client; + ::java::util::ArrayList * m_ior; +public: + ::java::util::Hashtable * m_policyFactories; + ::java::util::TreeMap * m_references; + ::java::util::ArrayList * m_initializers; +public: // actually package-private + ::gnu::CORBA::Poa::ORB_1_4 * orb; + JArray< ::java::lang::String * > * m_args; + ::gnu::CORBA::gnuCodecFactory * m_codecFactory; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_Registrator__ diff --git a/libjava/gnu/CORBA/Interceptor/ServerRequestInterceptors.h b/libjava/gnu/CORBA/Interceptor/ServerRequestInterceptors.h new file mode 100644 index 00000000000..fb78c57b968 --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/ServerRequestInterceptors.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_ServerRequestInterceptors__ +#define __gnu_CORBA_Interceptor_ServerRequestInterceptors__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Interceptor + { + class Registrator; + class ServerRequestInterceptors; + } + } + } + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class ServerRequestInfo; + class ServerRequestInterceptor; + } + } + } +} + +class gnu::CORBA::Interceptor::ServerRequestInterceptors : public ::java::lang::Object +{ + +public: + ServerRequestInterceptors(::gnu::CORBA::Interceptor::Registrator *); + virtual void receive_request_service_contexts(::org::omg::PortableInterceptor::ServerRequestInfo *); + virtual void receive_request(::org::omg::PortableInterceptor::ServerRequestInfo *); + virtual void send_exception(::org::omg::PortableInterceptor::ServerRequestInfo *); + virtual void send_other(::org::omg::PortableInterceptor::ServerRequestInfo *); + virtual void send_reply(::org::omg::PortableInterceptor::ServerRequestInfo *); + virtual void destroy(); + virtual ::java::lang::String * name(); +private: + JArray< ::org::omg::PortableInterceptor::ServerRequestInterceptor * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) interceptors; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_ServerRequestInterceptors__ diff --git a/libjava/gnu/CORBA/Interceptor/gnuClientRequestInfo.h b/libjava/gnu/CORBA/Interceptor/gnuClientRequestInfo.h new file mode 100644 index 00000000000..32dac2c45fb --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/gnuClientRequestInfo.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_gnuClientRequestInfo__ +#define __gnu_CORBA_Interceptor_gnuClientRequestInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Interceptor + { + class gnuClientRequestInfo; + } + class gnuRequest; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class Policy; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + class TaggedComponent; + class TaggedProfile; + } + } + } +} + +class gnu::CORBA::Interceptor::gnuClientRequestInfo : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuClientRequestInfo(::gnu::CORBA::gnuRequest *); + virtual void add_request_service_context(::org::omg::IOP::ServiceContext *, jboolean); + virtual ::org::omg::IOP::TaggedProfile * effective_profile(); + virtual ::org::omg::CORBA::Object * effective_target(); + virtual ::org::omg::IOP::TaggedComponent * get_effective_component(jint); + virtual JArray< ::org::omg::IOP::TaggedComponent * > * get_effective_components(jint); + virtual ::org::omg::CORBA::Policy * get_request_policy(jint); + virtual ::java::lang::String * received_exception_id(); + virtual ::org::omg::CORBA::Any * received_exception(); + virtual ::org::omg::CORBA::Object * target(); + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments(); + virtual ::org::omg::CORBA::Any * result(); + virtual JArray< ::java::lang::String * > * contexts(); + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions(); + virtual ::org::omg::CORBA::Object * forward_reference(); + virtual JArray< ::java::lang::String * > * operation_context(); + virtual ::org::omg::CORBA::Any * get_slot(jint); + virtual ::java::lang::String * operation(); + virtual jshort reply_status(); + virtual jint request_id(); + virtual jboolean response_expected(); + virtual jshort sync_scope(); + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint); + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint); +private: + static const jlong serialVersionUID = 1LL; + ::gnu::CORBA::gnuRequest * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) request; +public: + ::org::omg::CORBA::Any * m_wrapped_exception; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_gnuClientRequestInfo__ diff --git a/libjava/gnu/CORBA/Interceptor/gnuIcCurrent.h b/libjava/gnu/CORBA/Interceptor/gnuIcCurrent.h new file mode 100644 index 00000000000..65d85eb9d7c --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/gnuIcCurrent.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_gnuIcCurrent__ +#define __gnu_CORBA_Interceptor_gnuIcCurrent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Interceptor + { + class gnuIcCurrent; + } + namespace Poa + { + class ORB_1_4; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + } + } + } +} + +class gnu::CORBA::Interceptor::gnuIcCurrent : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + gnuIcCurrent(::gnu::CORBA::Poa::ORB_1_4 *); + virtual JArray< ::java::lang::String * > * _ids(); + virtual void put(::java::lang::Thread *, JArray< ::org::omg::CORBA::Any * > *); + virtual jboolean has(::java::lang::Thread *); + virtual void remove(::java::lang::Thread *); +public: // actually package-private + virtual JArray< ::org::omg::CORBA::Any * > * get_slots(); +public: + virtual JArray< ::org::omg::CORBA::Any * > * clone_slots(); + virtual ::org::omg::CORBA::Any * get_slot(jint); + virtual void set_slot(jint, ::org::omg::CORBA::Any *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::gnu::CORBA::Poa::ORB_1_4 * __attribute__((aligned(__alignof__( ::org::omg::CORBA::portable::ObjectImpl)))) orb; +private: + ::java::util::Hashtable * threads; +public: // actually package-private + static JArray< ::org::omg::CORBA::Any * > * NO_SLOTS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_gnuIcCurrent__ diff --git a/libjava/gnu/CORBA/Interceptor/gnuIorInfo.h b/libjava/gnu/CORBA/Interceptor/gnuIorInfo.h new file mode 100644 index 00000000000..8e1adcf8126 --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/gnuIorInfo.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_gnuIorInfo__ +#define __gnu_CORBA_Interceptor_gnuIorInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + namespace Interceptor + { + class gnuIorInfo; + } + namespace Poa + { + class ORB_1_4; + class gnuPOA; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace IOP + { + class TaggedComponent; + } + namespace PortableInterceptor + { + class ObjectReferenceFactory; + class ObjectReferenceTemplate; + } + } + } +} + +class gnu::CORBA::Interceptor::gnuIorInfo : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuIorInfo(::gnu::CORBA::Poa::ORB_1_4 *, ::gnu::CORBA::Poa::gnuPOA *, ::gnu::CORBA::IOR *); + virtual void add_ior_component_to_profile(::org::omg::IOP::TaggedComponent *, jint); + virtual void add_ior_component(::org::omg::IOP::TaggedComponent *); + virtual ::org::omg::CORBA::Policy * get_effective_policy(jint); + virtual jshort state(); + virtual ::org::omg::PortableInterceptor::ObjectReferenceTemplate * adapter_template(); + virtual ::org::omg::PortableInterceptor::ObjectReferenceFactory * current_factory(); + virtual void current_factory(::org::omg::PortableInterceptor::ObjectReferenceFactory *); + virtual jint manager_id(); +private: + static const jlong serialVersionUID = 1LL; +public: + ::gnu::CORBA::Poa::ORB_1_4 * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) orb; + ::gnu::CORBA::Poa::gnuPOA * poa; +private: + ::gnu::CORBA::IOR * ior; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_gnuIorInfo__ diff --git a/libjava/gnu/CORBA/Interceptor/gnuServerRequestInfo.h b/libjava/gnu/CORBA/Interceptor/gnuServerRequestInfo.h new file mode 100644 index 00000000000..8164ea7233a --- /dev/null +++ b/libjava/gnu/CORBA/Interceptor/gnuServerRequestInfo.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Interceptor_gnuServerRequestInfo__ +#define __gnu_CORBA_Interceptor_gnuServerRequestInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class ReplyHeader; + class RequestHeader; + } + namespace Interceptor + { + class gnuServerRequestInfo; + } + namespace Poa + { + class gnuServantObject; + } + class gnuRequest; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class Policy; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + } + } + } +} + +class gnu::CORBA::Interceptor::gnuServerRequestInfo : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuServerRequestInfo(::gnu::CORBA::Poa::gnuServantObject *, ::gnu::CORBA::GIOP::RequestHeader *, ::gnu::CORBA::GIOP::ReplyHeader *); + virtual void set_slot(jint, ::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_slot(jint); + virtual void reset(); + virtual JArray< jbyte > * object_id(); + virtual jboolean target_is_a(::java::lang::String *); + virtual JArray< jbyte > * adapter_id(); + virtual ::org::omg::CORBA::Policy * get_server_policy(jint); + virtual ::java::lang::String * target_most_derived_interface(); + virtual ::java::lang::String * operation(); + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions(); + virtual jshort reply_status(); + virtual jint request_id(); + virtual jboolean response_expected(); + virtual void add_reply_service_context(::org::omg::IOP::ServiceContext *, jboolean); + virtual ::org::omg::CORBA::Any * sending_exception(); + virtual ::org::omg::CORBA::Object * forward_reference(); + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint); + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint); + virtual JArray< ::java::lang::String * > * operation_context(); + virtual ::org::omg::CORBA::Any * result(); + virtual JArray< ::java::lang::String * > * contexts(); + virtual jshort sync_scope(); + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments(); + virtual JArray< ::java::lang::String * > * adapter_name(); + virtual ::java::lang::String * orb_id(); + virtual ::java::lang::String * server_id(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::gnu::CORBA::Poa::gnuServantObject * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) m_object; + static ::java::lang::String * not_available; + JArray< ::org::omg::CORBA::Any * > * m_slots; +public: + ::gnu::CORBA::GIOP::RequestHeader * m_request_header; + ::gnu::CORBA::GIOP::ReplyHeader * m_reply_header; + ::org::omg::CORBA::Object * m_forward_reference; + ::java::lang::Exception * m_sys_exception; + ::org::omg::CORBA::Any * m_usr_exception; + ::gnu::CORBA::gnuRequest * m_request; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Interceptor_gnuServerRequestInfo__ diff --git a/libjava/gnu/CORBA/IorDelegate.h b/libjava/gnu/CORBA/IorDelegate.h new file mode 100644 index 00000000000..176cac068dc --- /dev/null +++ b/libjava/gnu/CORBA/IorDelegate.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_IorDelegate__ +#define __gnu_CORBA_IorDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferredCdrInput; + } + class IOR; + class IorDelegate; + class StreamBasedRequest; + class gnuRequest; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Request; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::IorDelegate : public ::gnu::CORBA::SimpleDelegate +{ + +public: + IorDelegate(::org::omg::CORBA::ORB *, ::gnu::CORBA::IOR *); + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *); + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *); +public: // actually protected + virtual ::gnu::CORBA::gnuRequest * getRequestInstance(::org::omg::CORBA::Object *); +public: + virtual ::org::omg::CORBA::portable::InputStream * invoke(::org::omg::CORBA::Object *, ::org::omg::CORBA::portable::OutputStream *); +public: // actually package-private + virtual void showException(::gnu::CORBA::StreamBasedRequest *, ::gnu::CORBA::CDR::BufferredCdrInput *); +public: + virtual ::org::omg::CORBA::Request * request(::org::omg::CORBA::Object *, ::java::lang::String *); + virtual ::org::omg::CORBA::portable::OutputStream * request(::org::omg::CORBA::Object *, ::java::lang::String *, jboolean); + virtual void release(::org::omg::CORBA::Object *); + virtual void setIor(::gnu::CORBA::IOR *); + virtual jboolean is_local(::org::omg::CORBA::Object *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_IorDelegate__ diff --git a/libjava/gnu/CORBA/IorObject.h b/libjava/gnu/CORBA/IorObject.h new file mode 100644 index 00000000000..c3fca11db19 --- /dev/null +++ b/libjava/gnu/CORBA/IorObject.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_IorObject__ +#define __gnu_CORBA_IorObject__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + class IorObject; + class OrbFunctional; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class gnu::CORBA::IorObject : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + IorObject(::org::omg::CORBA::ORB *, ::gnu::CORBA::IOR *); + IorObject(::gnu::CORBA::OrbFunctional *, ::java::lang::String *); + virtual ::gnu::CORBA::IOR * getIor(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::java::lang::String * toString(); +public: // actually protected + virtual void finalize(); + ::gnu::CORBA::IOR * __attribute__((aligned(__alignof__( ::org::omg::CORBA::portable::ObjectImpl)))) ior; + JArray< ::java::lang::String * > * id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_IorObject__ diff --git a/libjava/gnu/CORBA/IorProvider.h b/libjava/gnu/CORBA/IorProvider.h new file mode 100644 index 00000000000..b2440380831 --- /dev/null +++ b/libjava/gnu/CORBA/IorProvider.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_IorProvider__ +#define __gnu_CORBA_IorProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + class IorProvider; + } + } +} + +class gnu::CORBA::IorProvider : public ::java::lang::Object +{ + +public: + virtual ::gnu::CORBA::IOR * getIor() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_IorProvider__ diff --git a/libjava/gnu/CORBA/Minor.h b/libjava/gnu/CORBA/Minor.h new file mode 100644 index 00000000000..e37bd4cdf7d --- /dev/null +++ b/libjava/gnu/CORBA/Minor.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Minor__ +#define __gnu_CORBA_Minor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Minor; + } + } +} + +class gnu::CORBA::Minor : public ::java::lang::Object +{ + +public: + static const jint vendor = 1195573248; + static const jint Giop = 1195573249; + static const jint Header = 1195573250; + static const jint EOF = 1195573251; + static const jint CDR = 1195573253; + static const jint Value = 1195573254; + static const jint Forwarding = 1195573255; + static const jint Encapsulation = 1195573256; + static const jint Any = 1195573257; + static const jint UserException = 1195573258; + static const jint Inappropriate = 1195573259; + static const jint Negative = 1195573260; + static const jint Graph = 1195573262; + static const jint Boxed = 1195573263; + static const jint Instantiation = 1195573264; + static const jint ValueHeaderTag = 1195573265; + static const jint ValueHeaderFlags = 1195573266; + static const jint ClassCast = 1195573267; + static const jint Offset = 1195573268; + static const jint Chunks = 1195573269; + static const jint UnsupportedValue = 1195573270; + static const jint Factory = 1195573271; + static const jint UnsupportedAddressing = 1195573272; + static const jint IOR = 1195573273; + static const jint TargetConversion = 1195573274; + static const jint ValueFields = 1195573275; + static const jint NonSerializable = 1195573276; + static const jint Method = 1195573248; + static const jint Activation = 1195573258; + static const jint Policy = 1195573259; + static const jint Socket = 1195573260; + static const jint Enumeration = 1195573262; + static const jint PolicyType = 1195573263; + static const jint Ports = 1195573268; + static const jint Threads = 1195573269; + static const jint Missing_IOR = 1195573270; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_Minor__ diff --git a/libjava/gnu/CORBA/NameDynAnyPairHolder.h b/libjava/gnu/CORBA/NameDynAnyPairHolder.h new file mode 100644 index 00000000000..ca7a5a5de7e --- /dev/null +++ b/libjava/gnu/CORBA/NameDynAnyPairHolder.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NameDynAnyPairHolder__ +#define __gnu_CORBA_NameDynAnyPairHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class NameDynAnyPairHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameDynAnyPair; + } + } + } +} + +class gnu::CORBA::NameDynAnyPairHolder : public ::java::lang::Object +{ + +public: + NameDynAnyPairHolder(); + NameDynAnyPairHolder(::org::omg::DynamicAny::NameDynAnyPair *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::DynamicAny::NameDynAnyPair * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NameDynAnyPairHolder__ diff --git a/libjava/gnu/CORBA/NameDynAnyPairSeqHolder.h b/libjava/gnu/CORBA/NameDynAnyPairSeqHolder.h new file mode 100644 index 00000000000..0ffdb8704df --- /dev/null +++ b/libjava/gnu/CORBA/NameDynAnyPairSeqHolder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NameDynAnyPairSeqHolder__ +#define __gnu_CORBA_NameDynAnyPairSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class NameDynAnyPairSeqHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameDynAnyPair; + } + } + } +} + +class gnu::CORBA::NameDynAnyPairSeqHolder : public ::java::lang::Object +{ + +public: + NameDynAnyPairSeqHolder(); + NameDynAnyPairSeqHolder(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NameDynAnyPairSeqHolder__ diff --git a/libjava/gnu/CORBA/NameValuePairHolder.h b/libjava/gnu/CORBA/NameValuePairHolder.h new file mode 100644 index 00000000000..a8c14d0704a --- /dev/null +++ b/libjava/gnu/CORBA/NameValuePairHolder.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NameValuePairHolder__ +#define __gnu_CORBA_NameValuePairHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class NameValuePairHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameValuePair; + } + } + } +} + +class gnu::CORBA::NameValuePairHolder : public ::java::lang::Object +{ + +public: + NameValuePairHolder(); + NameValuePairHolder(::org::omg::DynamicAny::NameValuePair *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::DynamicAny::NameValuePair * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NameValuePairHolder__ diff --git a/libjava/gnu/CORBA/NameValuePairSeqHolder.h b/libjava/gnu/CORBA/NameValuePairSeqHolder.h new file mode 100644 index 00000000000..4b5ef47e2a9 --- /dev/null +++ b/libjava/gnu/CORBA/NameValuePairSeqHolder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NameValuePairSeqHolder__ +#define __gnu_CORBA_NameValuePairSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class NameValuePairSeqHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameValuePair; + } + } + } +} + +class gnu::CORBA::NameValuePairSeqHolder : public ::java::lang::Object +{ + +public: + NameValuePairSeqHolder(); + NameValuePairSeqHolder(JArray< ::org::omg::DynamicAny::NameValuePair * > *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + JArray< ::org::omg::DynamicAny::NameValuePair * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NameValuePairSeqHolder__ diff --git a/libjava/gnu/CORBA/NamingService/Binding_iterator_impl.h b/libjava/gnu/CORBA/NamingService/Binding_iterator_impl.h new file mode 100644 index 00000000000..68caf386fdb --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/Binding_iterator_impl.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_Binding_iterator_impl__ +#define __gnu_CORBA_NamingService_Binding_iterator_impl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class Binding_iterator_impl; + } + } + } + namespace org + { + namespace omg + { + namespace CosNaming + { + class Binding; + class BindingHolder; + class BindingListHolder; + } + } + } +} + +class gnu::CORBA::NamingService::Binding_iterator_impl : public ::org::omg::CosNaming::_BindingIteratorImplBase +{ + +public: + Binding_iterator_impl(JArray< ::org::omg::CosNaming::Binding * > *); + virtual void destroy(); + virtual jboolean next_n(jint, ::org::omg::CosNaming::BindingListHolder *); + virtual jboolean next_one(::org::omg::CosNaming::BindingHolder *); +private: + static ::org::omg::CosNaming::Binding * no_more_bindings; + JArray< ::org::omg::CosNaming::Binding * > * __attribute__((aligned(__alignof__( ::org::omg::CosNaming::_BindingIteratorImplBase)))) bindings; + jint p; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_Binding_iterator_impl__ diff --git a/libjava/gnu/CORBA/NamingService/Ext.h b/libjava/gnu/CORBA/NamingService/Ext.h new file mode 100644 index 00000000000..ec385a0b8c6 --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/Ext.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_Ext__ +#define __gnu_CORBA_NamingService_Ext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class Ext; + class NameTransformer; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + namespace portable + { + class Delegate; + } + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + } + } + } +} + +class gnu::CORBA::NamingService::Ext : public ::org::omg::CosNaming::_NamingContextExtImplBase +{ + +public: + Ext(::org::omg::CosNaming::NamingContext *); + virtual void _set_delegate(::org::omg::CORBA::portable::Delegate *); + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *); + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *); + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual void destroy(); + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *); + virtual ::org::omg::CosNaming::NamingContext * new_context(); + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *); + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *); + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual ::org::omg::CORBA::Object * resolve_str(::java::lang::String *); + virtual JArray< ::org::omg::CosNaming::NameComponent * > * to_name(::java::lang::String *); + virtual ::java::lang::String * to_string(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual ::java::lang::String * to_url(::java::lang::String *, ::java::lang::String *); + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *); +private: + ::org::omg::CosNaming::NamingContext * __attribute__((aligned(__alignof__( ::org::omg::CosNaming::_NamingContextExtImplBase)))) classic; + ::gnu::CORBA::NamingService::NameTransformer * converter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_Ext__ diff --git a/libjava/gnu/CORBA/NamingService/NameComponentComparator.h b/libjava/gnu/CORBA/NamingService/NameComponentComparator.h new file mode 100644 index 00000000000..dbf3186fa38 --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/NameComponentComparator.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_NameComponentComparator__ +#define __gnu_CORBA_NamingService_NameComponentComparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameComponentComparator; + } + } + } +} + +class gnu::CORBA::NamingService::NameComponentComparator : public ::java::lang::Object +{ + + NameComponentComparator(); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); + jboolean equals(::java::lang::Object *); + static ::gnu::CORBA::NamingService::NameComponentComparator * singleton; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_NameComponentComparator__ diff --git a/libjava/gnu/CORBA/NamingService/NameParser.h b/libjava/gnu/CORBA/NamingService/NameParser.h new file mode 100644 index 00000000000..d5bff788e3f --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/NameParser.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_NameParser__ +#define __gnu_CORBA_NamingService_NameParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameParser; + class NameTransformer; + } + class OrbFunctional; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + } + } +} + +class gnu::CORBA::NamingService::NameParser : public ::gnu::CORBA::NamingService::NameTransformer +{ + +public: + NameParser(); + virtual ::org::omg::CORBA::Object * corbaloc(::java::lang::String *, ::gnu::CORBA::OrbFunctional *); +private: + ::org::omg::CORBA::Object * corbaloc(::java::lang::String *, ::gnu::CORBA::OrbFunctional *, jint); +public: // actually package-private + virtual ::java::lang::String * readFile(::java::lang::String *); + virtual ::java::lang::String * readUrl(::java::lang::String *); +private: + ::org::omg::CORBA::Object * resolve(::org::omg::CORBA::Object *); + ::java::lang::String * readKey(::java::lang::String *); +public: // actually package-private + static void corbalocT(::java::lang::String *, ::gnu::CORBA::OrbFunctional *); +public: + static void main(JArray< ::java::lang::String * > *); + static ::java::lang::String * pxCORBALOC; + static ::java::lang::String * pxCORBANAME; + static ::java::lang::String * pxIOR; + static ::java::lang::String * pxFILE; + static ::java::lang::String * pxFTP; + static ::java::lang::String * pxHTTP; + static ::java::lang::String * IIOP; + static ::java::lang::String * RIR; + static const jint DEFAULT_PORT = 2809; + static ::java::lang::String * DEFAULT_NAME; +public: // actually package-private + static ::gnu::CORBA::NamingService::NameTransformer * converter; + jint __attribute__((aligned(__alignof__( ::gnu::CORBA::NamingService::NameTransformer)))) p; + JArray< ::java::lang::String * > * t; + static ::gnu::CORBA::NamingService::NameParser * n; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_NameParser__ diff --git a/libjava/gnu/CORBA/NamingService/NameTransformer.h b/libjava/gnu/CORBA/NamingService/NameTransformer.h new file mode 100644 index 00000000000..c628e17a990 --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/NameTransformer.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_NameTransformer__ +#define __gnu_CORBA_NamingService_NameTransformer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameTransformer; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class IntHolder; + } + namespace CosNaming + { + class NameComponent; + } + } + } +} + +class gnu::CORBA::NamingService::NameTransformer : public ::java::lang::Object +{ + +public: + NameTransformer(); + virtual JArray< ::org::omg::CosNaming::NameComponent * > * toName(::java::lang::String *); + virtual ::java::lang::String * toString(JArray< ::org::omg::CosNaming::NameComponent * > *); +private: + void appEscaping(::java::lang::StringBuffer *, ::java::lang::String *); + void assertEndOfNode(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *); + ::org::omg::CosNaming::NameComponent * readNode(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *); + ::java::lang::String * readPart(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *); +public: + static void main(JArray< ::java::lang::String * > *); + static ::java::lang::String * ESCAPE; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_NameTransformer__ diff --git a/libjava/gnu/CORBA/NamingService/NameValidator.h b/libjava/gnu/CORBA/NamingService/NameValidator.h new file mode 100644 index 00000000000..6ec06279cca --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/NameValidator.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_NameValidator__ +#define __gnu_CORBA_NamingService_NameValidator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameValidator; + } + } + } + namespace org + { + namespace omg + { + namespace CosNaming + { + class NameComponent; + } + } + } +} + +class gnu::CORBA::NamingService::NameValidator : public ::java::lang::Object +{ + +public: + NameValidator(); + static void check(JArray< ::org::omg::CosNaming::NameComponent * > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_NameValidator__ diff --git a/libjava/gnu/CORBA/NamingService/NamingMap.h b/libjava/gnu/CORBA/NamingService/NamingMap.h new file mode 100644 index 00000000000..601a891c45b --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/NamingMap.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_NamingMap__ +#define __gnu_CORBA_NamingService_NamingMap__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NamingMap; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace CosNaming + { + class NameComponent; + } + } + } +} + +class gnu::CORBA::NamingService::NamingMap : public ::java::lang::Object +{ + +public: + NamingMap(); + virtual void bind(::org::omg::CosNaming::NameComponent *, ::org::omg::CORBA::Object *); + virtual jboolean containsKey(::org::omg::CosNaming::NameComponent *); + virtual jboolean containsValue(::org::omg::CORBA::Object *); + virtual ::java::util::Set * entries(); + virtual ::org::omg::CORBA::Object * get(::org::omg::CosNaming::NameComponent *); + virtual void rebind(::org::omg::CosNaming::NameComponent *, ::org::omg::CORBA::Object *); + virtual void remove(::org::omg::CosNaming::NameComponent *); + virtual jint size(); +public: // actually protected + ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) map; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_NamingMap__ diff --git a/libjava/gnu/CORBA/NamingService/NamingServiceTransient$1.h b/libjava/gnu/CORBA/NamingService/NamingServiceTransient$1.h new file mode 100644 index 00000000000..118f7f02618 --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/NamingServiceTransient$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_NamingServiceTransient$1__ +#define __gnu_CORBA_NamingService_NamingServiceTransient$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NamingServiceTransient$1; + } + class OrbFunctional; + } + } +} + +class gnu::CORBA::NamingService::NamingServiceTransient$1 : public ::java::lang::Thread +{ + +public: // actually package-private + NamingServiceTransient$1(::gnu::CORBA::OrbFunctional *); +public: + void run(); +private: + ::gnu::CORBA::OrbFunctional * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) val$orb; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_NamingServiceTransient$1__ diff --git a/libjava/gnu/CORBA/NamingService/NamingServiceTransient.h b/libjava/gnu/CORBA/NamingService/NamingServiceTransient.h new file mode 100644 index 00000000000..78e2b46f1a0 --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/NamingServiceTransient.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_NamingServiceTransient__ +#define __gnu_CORBA_NamingService_NamingServiceTransient__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NamingServiceTransient; + } + } + } +} + +class gnu::CORBA::NamingService::NamingServiceTransient : public ::java::lang::Object +{ + +public: + NamingServiceTransient(); + static JArray< jbyte > * getDefaultKey(); + static void start(jint, ::java::lang::String *); + static const jint PORT = 900; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_NamingServiceTransient__ diff --git a/libjava/gnu/CORBA/NamingService/TransientContext.h b/libjava/gnu/CORBA/NamingService/TransientContext.h new file mode 100644 index 00000000000..1cdfe919132 --- /dev/null +++ b/libjava/gnu/CORBA/NamingService/TransientContext.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_NamingService_TransientContext__ +#define __gnu_CORBA_NamingService_TransientContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NamingMap; + class TransientContext; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace CosNaming + { + class Binding; + class BindingIteratorHolder; + class BindingListHolder; + class BindingType; + class NameComponent; + class NamingContext; + } + } + } +} + +class gnu::CORBA::NamingService::TransientContext : public ::org::omg::CosNaming::_NamingContextImplBase +{ + +public: + TransientContext(); + TransientContext(::gnu::CORBA::NamingService::NamingMap *, ::gnu::CORBA::NamingService::NamingMap *); + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *); + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *); + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual void destroy(); + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *); + virtual ::org::omg::CosNaming::NamingContext * new_context(); + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *); + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *); + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *); +private: + JArray< ::org::omg::CosNaming::NameComponent * > * getSuffix(JArray< ::org::omg::CosNaming::NameComponent * > *); + ::org::omg::CosNaming::Binding * mkBinding(::java::lang::Object *, ::org::omg::CosNaming::BindingType *); + ::org::omg::CORBA::Object * resolveSubContext(JArray< ::org::omg::CosNaming::NameComponent * > *); + static const jlong serialVersionUID = 2LL; +public: // actually protected + ::gnu::CORBA::NamingService::NamingMap * __attribute__((aligned(__alignof__( ::org::omg::CosNaming::_NamingContextImplBase)))) named_contexts; + ::gnu::CORBA::NamingService::NamingMap * named_objects; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_NamingService_TransientContext__ diff --git a/libjava/gnu/CORBA/ObjectCreator.h b/libjava/gnu/CORBA/ObjectCreator.h new file mode 100644 index 00000000000..5d6613265b9 --- /dev/null +++ b/libjava/gnu/CORBA/ObjectCreator.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_ObjectCreator__ +#define __gnu_CORBA_ObjectCreator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace GIOP + { + class ServiceContext; + } + class ObjectCreator; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class SystemException; + class UserException; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::ObjectCreator : public ::java::lang::Object +{ + +public: + ObjectCreator(); + static ::java::lang::Object * createObject(::java::lang::String *, ::java::lang::String *); + static ::org::omg::CORBA::SystemException * readSystemException(::org::omg::CORBA::portable::InputStream *, JArray< ::gnu::CORBA::GIOP::ServiceContext * > *); + static ::org::omg::CORBA::UserException * readUserException(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *); + static ::java::lang::String * toHelperName(::java::lang::String *); + static void writeSystemException(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::SystemException *); +public: // actually protected + static ::java::lang::String * toClassName(::java::lang::String *, ::java::lang::String *); +public: + static ::java::lang::Class * Idl2class(::java::lang::String *); + static ::java::lang::Object * Idl2Object(::java::lang::String *); + static ::java::lang::String * getRepositoryId(::java::lang::Class *); + static jboolean insertWithHelper(::org::omg::CORBA::Any *, ::java::lang::Object *); + static jboolean insertSysException(::org::omg::CORBA::Any *, ::org::omg::CORBA::SystemException *); + static ::java::lang::String * getDefaultName(::java::lang::String *); + static void insertException(::org::omg::CORBA::Any *, ::java::lang::Throwable *); + static ::java::lang::Class * findHelper(::java::lang::String *); + static ::java::lang::Class * forName(::java::lang::String *); + static ::java::lang::String * OMG_PREFIX; + static ::java::lang::String * JAVA_PREFIX; + static ::java::lang::String * CLASSPATH_PREFIX; + static ::java::util::Map * m_names; + static ::java::util::Map * m_classes; + static ::java::util::Map * m_helpers; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_ObjectCreator__ diff --git a/libjava/gnu/CORBA/ObjectCreator.java b/libjava/gnu/CORBA/ObjectCreator.java deleted file mode 100644 index 9f215fc64ee..00000000000 --- a/libjava/gnu/CORBA/ObjectCreator.java +++ /dev/null @@ -1,596 +0,0 @@ -/* ObjectCreator.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 gnu.CORBA; - -import gnu.CORBA.CDR.UnknownExceptionCtxHandler; -import gnu.CORBA.CDR.BufferredCdrInput; -import gnu.CORBA.CDR.BufferedCdrOutput; -import gnu.CORBA.CDR.AbstractCdrInput; -import gnu.CORBA.GIOP.ServiceContext; -import gnu.CORBA.typecodes.RecordTypeCode; -// GCJ LOCAL - We don't have this yet. -// import gnu.classpath.VMStackWalker; - -import org.omg.CORBA.Any; -import org.omg.CORBA.CompletionStatus; -import org.omg.CORBA.CompletionStatusHelper; -import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.SystemException; -import org.omg.CORBA.TCKind; -import org.omg.CORBA.UNKNOWN; -import org.omg.CORBA.UserException; -import org.omg.CORBA.portable.IDLEntity; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.ValueBase; - -import java.lang.reflect.Method; -import java.util.Map; -import java.util.WeakHashMap; - -import javax.rmi.CORBA.Util; - -/** - * Creates java objects from the agreed IDL names for the simple case when the - * CORBA object is directly mapped into the locally defined java class. - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class ObjectCreator -{ - /** - * The standard OMG prefix. - */ - public static final String OMG_PREFIX = "omg.org/"; - - /** - * The standard java prefix. - */ - public static final String JAVA_PREFIX = "org.omg."; - - /** - * The prefix for classes that are placed instide the gnu.CORBA namespace. - */ - public static final String CLASSPATH_PREFIX = "gnu.CORBA."; - - /** - * Maps classes to they IDL or RMI names. Computing RMI name is an expensive - * operations, so frequently used RMI keys are reused. The map must be weak to - * ensure that the class can be unloaded, when applicable. - */ - public static Map m_names = new WeakHashMap(); - - /** - * Maps IDL strings into known classes. The map must be weak to ensure that - * the class can be unloaded, when applicable. - */ - public static Map m_classes = new WeakHashMap(); - - /** - * Maps IDL types to they helpers. - */ - public static Map m_helpers = new WeakHashMap(); - - /** - * Try to instantiate an object with the given IDL name. The object must be - * mapped to the local java class. The omg.org domain must be mapped into the - * object in either org/omg or gnu/CORBA namespace. - * - * @param IDL name - * @return instantiated object instance or null if no such available. - */ - public static java.lang.Object createObject(String idl, String suffix) - { - synchronized (m_classes) - { - Class known = (Class) (suffix == null ? m_classes.get(idl) - : m_classes.get(idl + 0xff + suffix)); - Object object; - - if (known != null) - { - try - { - return known.newInstance(); - } - catch (Exception ex) - { - RuntimeException rex = new RuntimeException(idl + " suffix " - + suffix, ex); - throw rex; - } - } - else - { - if (suffix == null) - suffix = ""; - try - { - known = forName(toClassName(JAVA_PREFIX, idl) + suffix); - object = known.newInstance(); - } - catch (Exception ex) - { - try - { - known = forName(toClassName(CLASSPATH_PREFIX, idl) - + suffix); - object = known.newInstance(); - } - catch (Exception exex) - { - return null; - } - } - m_classes.put(idl + 0xff + suffix, known); - return object; - } - } - } - - /** - * Read the system exception from the given stream. - * - * @param input the CDR stream to read from. - * @param contexts the service contexts in request/reply header/ - * - * @return the exception that has been stored in the stream (IDL name, minor - * code and completion status). - */ - public static SystemException readSystemException(InputStream input, - ServiceContext[] contexts) - { - SystemException exception; - - String idl = input.read_string(); - int minor = input.read_ulong(); - CompletionStatus completed = CompletionStatusHelper.read(input); - - try - { - exception = (SystemException) createObject(idl, null); - exception.minor = minor; - exception.completed = completed; - } - catch (Exception ex) - { - UNKNOWN u = new UNKNOWN("Unsupported system exception " + idl, minor, - completed); - u.initCause(ex); - throw u; - } - - try - { - // If UnknownExceptionInfo is present in the contexts, read it and - // set as a cause of this exception. - ServiceContext uEx = ServiceContext.find( - ServiceContext.UnknownExceptionInfo, contexts); - - if (uEx != null) - { - BufferredCdrInput in = new BufferredCdrInput(uEx.context_data); - in.setOrb(in.orb()); - if (input instanceof AbstractCdrInput) - { - ((AbstractCdrInput) input).cloneSettings(in); - } - - Throwable t = UnknownExceptionCtxHandler.read(in, contexts); - exception.initCause(t); - } - } - catch (Exception ex) - { - // Unsupported context format. Do not terminate as the user program may - // not need it. - } - - return exception; - } - - /** - * Reads the user exception, having the given Id, from the input stream. The - * id is expected to be in the form like - * 'IDL:test/org/omg/CORBA/ORB/communication/ourUserException:1.0' - * - * @param idl the exception idl name. - * @param input the stream to read from. - * - * @return the loaded exception. - * @return null if the helper class cannot be found. - */ - public static UserException readUserException(String idl, InputStream input) - { - try - { - Class helperClass = findHelper(idl); - - Method read = helperClass.getMethod("read", - new Class[] { org.omg.CORBA.portable.InputStream.class }); - - return (UserException) read.invoke(null, new Object[] { input }); - } - catch (MARSHAL mex) - { - // This one is ok to throw - throw mex; - } - catch (Exception ex) - { - ex.printStackTrace(); - return null; - } - } - - /** - * Gets the helper class name from the string like - * 'IDL:test/org/omg/CORBA/ORB/communication/ourUserException:1.0' - * - * @param IDL the idl name. - */ - public static String toHelperName(String IDL) - { - String s = IDL; - int a = s.indexOf(':') + 1; - int b = s.lastIndexOf(':'); - - s = IDL.substring(a, b); - - if (s.startsWith(OMG_PREFIX)) - s = JAVA_PREFIX + s.substring(OMG_PREFIX.length()); - - return s.replace('/', '.') + "Helper"; - } - - /** - * Writes the system exception data to CDR output stream. - * - * @param output a stream to write data to. - * @param ex an exception to write. - */ - public static void writeSystemException(OutputStream output, - SystemException ex) - { - String exIDL = getRepositoryId(ex.getClass()); - output.write_string(exIDL); - output.write_ulong(ex.minor); - CompletionStatusHelper.write(output, ex.completed); - } - - /** - * Converts the given IDL name to class name. - * - * @param IDL the idl name. - * - */ - protected static String toClassName(String prefix, String IDL) - { - String s = IDL; - int a = s.indexOf(':') + 1; - int b = s.lastIndexOf(':'); - - s = IDL.substring(a, b); - - if (s.startsWith(OMG_PREFIX)) - s = prefix + s.substring(OMG_PREFIX.length()); - - return s.replace('/', '.'); - } - - /** - * Converts the given IDL name to class name and tries to load the matching - * class. The OMG prefix (omg.org) is replaced by the java prefix org.omg. No - * other prefixes are added. - * - * @param IDL the idl name. - * - * @return the matching class or null if no such is available. - */ - public static Class Idl2class(String IDL) - { - synchronized (m_classes) - { - Class c = (Class) m_classes.get(IDL); - - if (c != null) - return c; - else - { - String s = IDL; - int a = s.indexOf(':') + 1; - int b = s.lastIndexOf(':'); - - s = IDL.substring(a, b); - - if (s.startsWith(OMG_PREFIX)) - s = JAVA_PREFIX + s.substring(OMG_PREFIX.length()); - - String cn = s.replace('/', '.'); - - try - { - c = forName(cn); - m_classes.put(IDL, c); - return c; - } - catch (ClassNotFoundException ex) - { - return null; - } - } - } - } - - /** - * Converts the given IDL name to class name, tries to load the matching class - * and create an object instance with parameterless constructor. The OMG - * prefix (omg.org) is replaced by the java prefix org.omg. No other prefixes - * are added. - * - * @param IDL the idl name. - * - * @return instantiated object instance or null if such attempt was not - * successful. - */ - public static java.lang.Object Idl2Object(String IDL) - { - Class cx = Idl2class(IDL); - - try - { - if (cx != null) - return cx.newInstance(); - else - return null; - } - catch (Exception ex) - { - return null; - } - } - - /** - * Convert the class name to IDL or RMI name (repository id). If the class - * inherits from IDLEntity, ValueBase or SystemException, returns repository - * Id in the IDL:(..) form. If it does not, returns repository Id in the - * RMI:(..) form. - * - * @param cx the class for that the name must be computed. - * - * @return the idl or rmi name. - */ - public static synchronized String getRepositoryId(Class cx) - { - String name = (String) m_names.get(cx); - if (name != null) - return name; - - String cn = cx.getName(); - if (!(IDLEntity.class.isAssignableFrom(cx) - || ValueBase.class.isAssignableFrom(cx) || SystemException.class.isAssignableFrom(cx))) - { - // Not an IDL entity. - name = Util.createValueHandler().getRMIRepositoryID(cx); - } - else - { - if (cn.startsWith(JAVA_PREFIX)) - cn = OMG_PREFIX - + cn.substring(JAVA_PREFIX.length()).replace('.', '/'); - else if (cn.startsWith(CLASSPATH_PREFIX)) - cn = OMG_PREFIX - + cn.substring(CLASSPATH_PREFIX.length()).replace('.', '/'); - - name = "IDL:" + cn + ":1.0"; - } - m_names.put(cx, name); - return name; - } - - /** - * Insert the passed parameter into the given Any, assuming that the helper - * class is available. The helper class must have the "Helper" suffix and be - * in the same package as the class of the object being inserted. - * - * @param into the target to insert. - * - * @param object the object to insert. It can be any object as far as the - * corresponding helper is provided. - * - * @return true on success, false otherwise. - */ - public static boolean insertWithHelper(Any into, Object object) - { - try - { - String helperClassName = object.getClass().getName() + "Helper"; - Class helperClass = forName(helperClassName); - - Method insert = helperClass.getMethod("insert", new Class[] { - Any.class, object.getClass() }); - - insert.invoke(null, new Object[] { into, object }); - - return true; - } - catch (Exception exc) - { - // Failed due some reason. - return false; - } - } - - /** - * Insert the system exception into the given Any. - */ - public static boolean insertSysException(Any into, SystemException exception) - { - try - { - BufferedCdrOutput output = new BufferedCdrOutput(); - - String m_exception_id = getRepositoryId(exception.getClass()); - output.write_string(m_exception_id); - output.write_ulong(exception.minor); - CompletionStatusHelper.write(output, exception.completed); - - String name = getDefaultName(m_exception_id); - - GeneralHolder h = new GeneralHolder(output); - - into.insert_Streamable(h); - - RecordTypeCode r = new RecordTypeCode(TCKind.tk_except); - r.setId(m_exception_id); - r.setName(name); - into.type(r); - - return true; - } - catch (Exception ex) - { - ex.printStackTrace(); - return false; - } - } - - /** - * Get the type name from the IDL string. - */ - public static String getDefaultName(String idl) - { - int f1 = idl.lastIndexOf("/"); - int p1 = (f1 < 0) ? 0 : f1; - int p2 = idl.indexOf(":", p1); - if (p2 < 0) - p2 = idl.length(); - - String name = idl.substring(f1 + 1, p2); - return name; - } - - /** - * Insert this exception into the given Any. On failure, insert the UNKNOWN - * exception. - */ - public static void insertException(Any into, Throwable exception) - { - boolean ok = false; - if (exception instanceof SystemException) - ok = insertSysException(into, (SystemException) exception); - else if (exception instanceof UserException) - ok = insertWithHelper(into, exception); - - if (!ok) - ok = insertSysException(into, new UNKNOWN()); - if (!ok) - throw new InternalError("Exception wrapping broken"); - } - - /** - * Find helper for the class with the given name. - */ - public static Class findHelper(String idl) - { - synchronized (m_helpers) - { - Class c = (Class) m_helpers.get(idl); - if (c != null) - return c; - try - { - String helper = toHelperName(idl); - c = forName(helper); - - m_helpers.put(idl, c); - return c; - } - catch (Exception ex) - { - return null; - } - } - } - - /** - * Load the class with the given name. This method tries to use the context - * class loader first. If this fails, it searches for the suitable class - * loader in the caller stack trace. This method is a central point where all - * requests to find a class by name are delegated. - */ - public static Class forName(String className) throws ClassNotFoundException - { - try - { - return Class.forName(className, true, - Thread.currentThread().getContextClassLoader()); - } - catch (ClassNotFoundException nex) - { - /** - * Returns the first user defined class loader on the call stack, or - * null when no non-null class loader was found. - */ - -// GCJ LOCAL - We don't have VMStackWalker yet. -// We only try the SystemClassLoader for now. -// Class[] ctx = VMStackWalker.getClassContext(); -// for (int i = 0; i < ctx.length; i++) -// { -// // Since we live in a class loaded by the bootstrap -// // class loader, getClassLoader is safe to call without -// // needing to be wrapped in a privileged action. -// ClassLoader cl = ctx[i].getClassLoader(); - ClassLoader cl = ClassLoader.getSystemClassLoader(); - try - { - if (cl != null) - return Class.forName(className, true, cl); - } - catch (ClassNotFoundException nex2) - { - // Try next. - } -// } - - } - throw new ClassNotFoundException(className); - } -} diff --git a/libjava/gnu/CORBA/OctetHolder.h b/libjava/gnu/CORBA/OctetHolder.h new file mode 100644 index 00000000000..bfa0ca621b8 --- /dev/null +++ b/libjava/gnu/CORBA/OctetHolder.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OctetHolder__ +#define __gnu_CORBA_OctetHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class OctetHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::OctetHolder : public ::java::lang::Object +{ + +public: + OctetHolder(); + OctetHolder(jbyte); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_octet; +public: + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OctetHolder__ diff --git a/libjava/gnu/CORBA/OrbFocused.h b/libjava/gnu/CORBA/OrbFocused.h new file mode 100644 index 00000000000..ec756ea4918 --- /dev/null +++ b/libjava/gnu/CORBA/OrbFocused.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OrbFocused__ +#define __gnu_CORBA_OrbFocused__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + class OrbFocused; + class OrbFunctional$portServer; + } + } + namespace java + { + namespace applet + { + class Applet; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + } + } +} + +class gnu::CORBA::OrbFocused : public ::gnu::CORBA::Poa::ORB_1_4 +{ + +public: + OrbFocused(); + virtual void setPortRange(::java::lang::String *); + virtual void setPortRange(jint, jint); +public: // actually package-private + virtual jint getPortFromRange(jint); +public: // actually protected + virtual ::gnu::CORBA::OrbFunctional$portServer * getPortServer(jint); +public: + virtual void run(); + virtual jint getFreePort(); + virtual void connect_1_thread(::org::omg::CORBA::Object *, JArray< jbyte > *, ::java::lang::Object *); + virtual void startService(::gnu::CORBA::IOR *); +public: // actually protected + virtual void set_parameters(::java::applet::Applet *, ::java::util::Properties *); + virtual void set_parameters(JArray< ::java::lang::String * > *, ::java::util::Properties *); + virtual void useProperties(::java::util::Properties *); +public: + static ::java::lang::String * LISTENER_PORT; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::CORBA::Poa::ORB_1_4)))) m_ports_from; + jint m_ports_to; + static const jint PARALLEL = 0; + static const jint SEQUENTIAL = 1; + ::java::util::Random * m_random; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OrbFocused__ diff --git a/libjava/gnu/CORBA/OrbFunctional$1.h b/libjava/gnu/CORBA/OrbFunctional$1.h new file mode 100644 index 00000000000..28a1b7ec78a --- /dev/null +++ b/libjava/gnu/CORBA/OrbFunctional$1.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OrbFunctional$1__ +#define __gnu_CORBA_OrbFunctional$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class OrbFunctional; + class OrbFunctional$1; + } + } +} + +class gnu::CORBA::OrbFunctional$1 : public ::java::lang::Thread +{ + +public: // actually package-private + OrbFunctional$1(::gnu::CORBA::OrbFunctional *, ::gnu::CORBA::OrbFunctional *); +public: + void run(); +public: // actually package-private + ::gnu::CORBA::OrbFunctional * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0; +private: + ::gnu::CORBA::OrbFunctional * val$THIS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OrbFunctional$1__ diff --git a/libjava/gnu/CORBA/OrbFunctional$2.h b/libjava/gnu/CORBA/OrbFunctional$2.h new file mode 100644 index 00000000000..eff695f189f --- /dev/null +++ b/libjava/gnu/CORBA/OrbFunctional$2.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OrbFunctional$2__ +#define __gnu_CORBA_OrbFunctional$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class OrbFunctional; + class OrbFunctional$2; + class OrbFunctional$portServer; + } + } + namespace java + { + namespace net + { + class Socket; + } + } +} + +class gnu::CORBA::OrbFunctional$2 : public ::java::lang::Thread +{ + +public: // actually package-private + OrbFunctional$2(::gnu::CORBA::OrbFunctional *, ::gnu::CORBA::OrbFunctional$portServer *, ::java::net::Socket *); +public: + void run(); +public: // actually package-private + ::gnu::CORBA::OrbFunctional * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0; +private: + ::gnu::CORBA::OrbFunctional$portServer * val$p; + ::java::net::Socket * val$service; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OrbFunctional$2__ diff --git a/libjava/gnu/CORBA/OrbFunctional$portServer.h b/libjava/gnu/CORBA/OrbFunctional$portServer.h new file mode 100644 index 00000000000..0ea05cb9186 --- /dev/null +++ b/libjava/gnu/CORBA/OrbFunctional$portServer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OrbFunctional$portServer__ +#define __gnu_CORBA_OrbFunctional$portServer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class OrbFunctional; + class OrbFunctional$portServer; + } + } + namespace java + { + namespace net + { + class ServerSocket; + } + } +} + +class gnu::CORBA::OrbFunctional$portServer : public ::java::lang::Thread +{ + +public: // actually package-private + OrbFunctional$portServer(::gnu::CORBA::OrbFunctional *, jint); +public: + virtual void run(); +public: // actually package-private + virtual void tick(); +public: + virtual void close_now(); +public: // actually protected + virtual void finalize(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Thread)))) running_threads; + jint s_port; + ::java::net::ServerSocket * service; + jboolean terminated; + ::gnu::CORBA::OrbFunctional * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OrbFunctional$portServer__ diff --git a/libjava/gnu/CORBA/OrbFunctional$sharedPortServer.h b/libjava/gnu/CORBA/OrbFunctional$sharedPortServer.h new file mode 100644 index 00000000000..c0658968cdc --- /dev/null +++ b/libjava/gnu/CORBA/OrbFunctional$sharedPortServer.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OrbFunctional$sharedPortServer__ +#define __gnu_CORBA_OrbFunctional$sharedPortServer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class OrbFunctional; + class OrbFunctional$sharedPortServer; + } + } +} + +class gnu::CORBA::OrbFunctional$sharedPortServer : public ::gnu::CORBA::OrbFunctional$portServer +{ + +public: // actually package-private + OrbFunctional$sharedPortServer(::gnu::CORBA::OrbFunctional *, jint); + virtual void tick(); + ::gnu::CORBA::OrbFunctional * __attribute__((aligned(__alignof__( ::gnu::CORBA::OrbFunctional$portServer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OrbFunctional$sharedPortServer__ diff --git a/libjava/gnu/CORBA/OrbFunctional.h b/libjava/gnu/CORBA/OrbFunctional.h new file mode 100644 index 00000000000..de005430f9d --- /dev/null +++ b/libjava/gnu/CORBA/OrbFunctional.h @@ -0,0 +1,167 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OrbFunctional__ +#define __gnu_CORBA_OrbFunctional__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Asynchron; + class Connected_objects; + class Connected_objects$cObject; + namespace GIOP + { + class MessageHeader; + class RequestHeader; + } + class IOR; + namespace NamingService + { + class NameParser; + } + class OrbFunctional; + class OrbFunctional$portServer; + namespace Poa + { + class gnuForwardRequest; + } + class ResponseHandlerImpl; + class Version; + namespace interfaces + { + class SocketFactory; + } + } + } + namespace java + { + namespace applet + { + class Applet; + } + namespace net + { + class ServerSocket; + class Socket; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + class Request; + class SystemException; + } + } + } +} + +class gnu::CORBA::OrbFunctional : public ::gnu::CORBA::OrbRestricted +{ + +public: + OrbFunctional(); + virtual void setMaxVersion(::gnu::CORBA::Version *); + virtual ::gnu::CORBA::Version * getMaxVersion(); + virtual jint getFreePort(); + static void setPort(jint); + virtual void connect(::org::omg::CORBA::Object *); + virtual void connect(::org::omg::CORBA::Object *, JArray< jbyte > *); + virtual void connect_1_thread(::org::omg::CORBA::Object *, JArray< jbyte > *, ::java::lang::Object *); + virtual void startService(::gnu::CORBA::IOR *); + virtual void destroy(); + virtual void disconnect(::org::omg::CORBA::Object *); + virtual void identityDestroyed(::java::lang::Object *); + virtual ::org::omg::CORBA::Object * find_local_object(::gnu::CORBA::IOR *); + virtual JArray< ::java::lang::String * > * list_initial_services(); + virtual ::java::lang::String * object_to_string(::org::omg::CORBA::Object *); + virtual ::gnu::CORBA::IOR * getLocalIor(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::Object * resolve_initial_references(::java::lang::String *); + virtual void run(); + virtual void ensureRunning(); + virtual void shutdown(jboolean); + virtual ::org::omg::CORBA::Object * string_to_object(::java::lang::String *); + virtual ::org::omg::CORBA::Object * ior_to_object(::gnu::CORBA::IOR *); +public: // actually protected + virtual ::org::omg::CORBA::Object * getDefaultNameService(); + virtual ::org::omg::CORBA::Object * find_connected_object(JArray< jbyte > *, jint); + virtual void set_parameters(::java::applet::Applet *, ::java::util::Properties *); + virtual void set_parameters(JArray< ::java::lang::String * > *, ::java::util::Properties *); + virtual ::gnu::CORBA::IOR * createIOR(::gnu::CORBA::Connected_objects$cObject *); + virtual void prepareObject(::org::omg::CORBA::Object *, ::gnu::CORBA::IOR *); +private: + void respond_to_client(::java::io::OutputStream *, ::gnu::CORBA::GIOP::MessageHeader *, ::gnu::CORBA::GIOP::RequestHeader *, ::gnu::CORBA::ResponseHandlerImpl *, ::org::omg::CORBA::SystemException *); + void forward_request(::java::io::OutputStream *, ::gnu::CORBA::GIOP::MessageHeader *, ::gnu::CORBA::GIOP::RequestHeader *, ::gnu::CORBA::Poa::gnuForwardRequest *); +public: // actually package-private + virtual void serve(::gnu::CORBA::OrbFunctional$portServer *, ::java::net::ServerSocket *); + virtual void serveStep(::java::net::Socket *, jboolean); +public: // actually protected + virtual void useProperties(::java::util::Properties *); +public: + virtual ::org::omg::CORBA::Request * get_next_response(); + virtual jboolean poll_next_response(); + virtual void send_multiple_requests_deferred(JArray< ::org::omg::CORBA::Request * > *); + virtual void send_multiple_requests_oneway(JArray< ::org::omg::CORBA::Request * > *); +public: // actually protected + virtual void finalize(); +public: + virtual jint countConnectedObjects(); + static jint DEFAULT_INITIAL_PORT; + static jint RANDOM_PORT_FROM; + static jint RANDOM_PORT_TO; + static jint RANDOM_PORT_ATTEMPTS; + static ::java::lang::String * LISTEN_ON; + static ::java::lang::String * REFERENCE; + static ::java::lang::String * NS_PORT; + static ::java::lang::String * NS_HOST; + static ::java::lang::String * NAME_SERVICE; + static ::java::lang::String * ORB_ID; + static ::java::lang::String * SERVER_ID; + static ::java::lang::String * START_READING_MESSAGE; + static ::java::lang::String * WHILE_READING; + static ::java::lang::String * AFTER_RECEIVING; + static ::java::lang::String * SERVER_ERROR_PAUSE; + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::CORBA::OrbRestricted)))) LOCAL_HOST; + jint TOUT_START_READING_MESSAGE; + jint TOUT_WHILE_READING; + jint TOUT_AFTER_RECEIVING; + jint TWAIT_SERVER_ERROR_PAUSE; + static jint TANDEM_REQUESTS; + ::java::lang::String * orb_id; + static ::java::lang::String * server_id; +public: // actually protected + ::gnu::CORBA::Connected_objects * connected_objects; + ::gnu::CORBA::Version * max_version; + jboolean running; + ::java::util::Map * initial_references; + ::java::util::ArrayList * portServers; +private: + ::java::lang::String * ns_host; + static jint Port; + jint ns_port; +public: // actually package-private + ::gnu::CORBA::NamingService::NameParser * nameParser; +public: // actually protected + ::gnu::CORBA::Asynchron * asynchron; + ::java::util::LinkedList * freed_ports; + ::java::util::Hashtable * identities; +private: + jint MAX_RUNNING_THREADS; +public: + ::gnu::CORBA::interfaces::SocketFactory * socketFactory; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OrbFunctional__ diff --git a/libjava/gnu/CORBA/OrbRestricted.h b/libjava/gnu/CORBA/OrbRestricted.h new file mode 100644 index 00000000000..5f8d51e110a --- /dev/null +++ b/libjava/gnu/CORBA/OrbRestricted.h @@ -0,0 +1,122 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_OrbRestricted__ +#define __gnu_CORBA_OrbRestricted__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class OrbRestricted; + } + } + namespace java + { + namespace applet + { + class Applet; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class Environment; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Request; + class StructMember; + class TCKind; + class TypeCode; + class UnionMember; + namespace portable + { + class OutputStream; + class ValueFactory; + } + } + namespace PortableInterceptor + { + class ClientRequestInterceptorOperations; + class IORInterceptor_3_0Operations; + class ServerRequestInterceptorOperations; + } + } + } +} + +class gnu::CORBA::OrbRestricted : public ::org::omg::CORBA_2_3::ORB +{ + +public: // actually protected + OrbRestricted(); +public: + virtual ::org::omg::CORBA::TypeCode * create_alias_tc(::java::lang::String *, ::java::lang::String *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::Any * create_any(); + virtual ::org::omg::CORBA::TypeCode * create_array_tc(jint, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::ContextList * create_context_list(); + virtual ::org::omg::CORBA::TypeCode * create_enum_tc(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *); + virtual ::org::omg::CORBA::Environment * create_environment(); + virtual ::org::omg::CORBA::ExceptionList * create_exception_list(); + virtual ::org::omg::CORBA::TypeCode * create_exception_tc(::java::lang::String *, ::java::lang::String *, JArray< ::org::omg::CORBA::StructMember * > *); + virtual ::org::omg::CORBA::TypeCode * create_interface_tc(::java::lang::String *, ::java::lang::String *); + virtual ::org::omg::CORBA::NVList * create_list(jint); + virtual ::org::omg::CORBA::NamedValue * create_named_value(::java::lang::String *, ::org::omg::CORBA::Any *, jint); + virtual ::org::omg::CORBA::portable::OutputStream * create_output_stream(); + virtual ::org::omg::CORBA::TypeCode * create_sequence_tc(jint, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::TypeCode * create_string_tc(jint); + virtual ::org::omg::CORBA::TypeCode * create_struct_tc(::java::lang::String *, ::java::lang::String *, JArray< ::org::omg::CORBA::StructMember * > *); + virtual ::org::omg::CORBA::TypeCode * create_union_tc(::java::lang::String *, ::java::lang::String *, ::org::omg::CORBA::TypeCode *, JArray< ::org::omg::CORBA::UnionMember * > *); + virtual ::org::omg::CORBA::TypeCode * create_wstring_tc(jint); + virtual ::org::omg::CORBA::TypeCode * get_primitive_tc(::org::omg::CORBA::TCKind *); + virtual JArray< ::java::lang::String * > * list_initial_services(); + virtual ::java::lang::String * object_to_string(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::Object * resolve_initial_references(::java::lang::String *); + virtual void run(); + virtual void shutdown(jboolean); + virtual ::org::omg::CORBA::Object * string_to_object(::java::lang::String *); +public: // actually protected + virtual void set_parameters(::java::applet::Applet *, ::java::util::Properties *); + virtual void set_parameters(JArray< ::java::lang::String * > *, ::java::util::Properties *); +private: + void no(); +public: + virtual ::org::omg::CORBA::Request * get_next_response(); + virtual jboolean poll_next_response(); + virtual void send_multiple_requests_deferred(JArray< ::org::omg::CORBA::Request * > *); + virtual void send_multiple_requests_oneway(JArray< ::org::omg::CORBA::Request * > *); + virtual ::org::omg::CORBA::portable::ValueFactory * register_value_factory(::java::lang::String *, ::org::omg::CORBA::portable::ValueFactory *); + virtual void unregister_value_factory(::java::lang::String *); + virtual ::org::omg::CORBA::portable::ValueFactory * lookup_value_factory(::java::lang::String *); + virtual void destroy(); + virtual ::org::omg::CORBA::TypeCode * create_recursive_sequence_tc(jint, jint); + virtual ::org::omg::CORBA::Context * get_default_context(); + static ::org::omg::CORBA::ORB * Singleton; + ::org::omg::PortableInterceptor::IORInterceptor_3_0Operations * __attribute__((aligned(__alignof__( ::org::omg::CORBA_2_3::ORB)))) iIor; + ::org::omg::PortableInterceptor::ServerRequestInterceptorOperations * iServer; + ::org::omg::PortableInterceptor::ClientRequestInterceptorOperations * iClient; + jint icSlotSize; +public: // actually protected + ::java::util::Hashtable * factories; + ::java::util::Hashtable * policyFactories; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_OrbRestricted__ diff --git a/libjava/gnu/CORBA/Poa/AOM$Obj.h b/libjava/gnu/CORBA/Poa/AOM$Obj.h new file mode 100644 index 00000000000..67ee7df990c --- /dev/null +++ b/libjava/gnu/CORBA/Poa/AOM$Obj.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_AOM$Obj__ +#define __gnu_CORBA_Poa_AOM$Obj__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class AOM; + class AOM$Obj; + class gnuPOA; + class gnuServantObject; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class Servant; + } + } + } +} + +class gnu::CORBA::Poa::AOM$Obj : public ::java::lang::Object +{ + +public: // actually package-private + AOM$Obj(::gnu::CORBA::Poa::AOM *, ::gnu::CORBA::Poa::gnuServantObject *, JArray< jbyte > *, ::org::omg::PortableServer::Servant *, ::gnu::CORBA::Poa::gnuPOA *); +public: + virtual void setServant(::org::omg::PortableServer::Servant *); + virtual ::org::omg::PortableServer::Servant * getServant(); + virtual jboolean isDeactiveted(); + virtual void setDeactivated(jboolean); + ::gnu::CORBA::Poa::gnuServantObject * __attribute__((aligned(__alignof__( ::java::lang::Object)))) object; + ::org::omg::PortableServer::Servant * servant; +public: // actually package-private + ::org::omg::PortableServer::Servant * primary_servant; +public: + ::gnu::CORBA::Poa::gnuPOA * poa; + JArray< jbyte > * key; + jboolean deactivated; +public: // actually package-private + ::gnu::CORBA::Poa::AOM * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_AOM$Obj__ diff --git a/libjava/gnu/CORBA/Poa/AOM.h b/libjava/gnu/CORBA/Poa/AOM.h new file mode 100644 index 00000000000..3c19649c0e9 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/AOM.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_AOM__ +#define __gnu_CORBA_Poa_AOM__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class AOM; + class AOM$Obj; + class ServantDelegateImpl; + class gnuPOA; + class gnuServantObject; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace PortableServer + { + class Servant; + } + } + } +} + +class gnu::CORBA::Poa::AOM : public ::java::lang::Object +{ + +public: + AOM(); + virtual ::gnu::CORBA::Poa::AOM$Obj * findObject(::org::omg::CORBA::Object *); + virtual ::gnu::CORBA::Poa::AOM$Obj * findServant(::org::omg::PortableServer::Servant *); + virtual ::gnu::CORBA::Poa::AOM$Obj * findServant(::org::omg::PortableServer::Servant *, jboolean); + virtual ::gnu::CORBA::Poa::AOM$Obj * add(::gnu::CORBA::Poa::gnuServantObject *, ::org::omg::PortableServer::Servant *, ::gnu::CORBA::Poa::gnuPOA *); + virtual ::gnu::CORBA::Poa::AOM$Obj * add(JArray< jbyte > *, ::gnu::CORBA::Poa::gnuServantObject *, ::org::omg::PortableServer::Servant *, ::gnu::CORBA::Poa::gnuPOA *); + virtual ::gnu::CORBA::Poa::AOM$Obj * add(::gnu::CORBA::Poa::ServantDelegateImpl *); + virtual void put(::gnu::CORBA::Poa::AOM$Obj *); + virtual ::gnu::CORBA::Poa::AOM$Obj * get(JArray< jbyte > *); + virtual ::java::util::Set * keySet(); + virtual void remove(JArray< jbyte > *); +public: // actually protected + virtual JArray< jbyte > * generateObjectKey(::org::omg::CORBA::Object *); +public: + static JArray< jbyte > * getFreeId(); +private: + static jlong free_id; +public: // actually package-private + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) objects; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_AOM__ diff --git a/libjava/gnu/CORBA/Poa/AccessiblePolicy.h b/libjava/gnu/CORBA/Poa/AccessiblePolicy.h new file mode 100644 index 00000000000..54d1421227e --- /dev/null +++ b/libjava/gnu/CORBA/Poa/AccessiblePolicy.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_AccessiblePolicy__ +#define __gnu_CORBA_Poa_AccessiblePolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class AccessiblePolicy; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + } + } +} + +class gnu::CORBA::Poa::AccessiblePolicy : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getValue() = 0; + virtual jint getCode() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_Poa_AccessiblePolicy__ diff --git a/libjava/gnu/CORBA/Poa/DynamicImpHandler.h b/libjava/gnu/CORBA/Poa/DynamicImpHandler.h new file mode 100644 index 00000000000..e5750aa7fff --- /dev/null +++ b/libjava/gnu/CORBA/Poa/DynamicImpHandler.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_DynamicImpHandler__ +#define __gnu_CORBA_Poa_DynamicImpHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class DynamicImpHandler; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace PortableServer + { + class DynamicImplementation; + } + } + } +} + +class gnu::CORBA::Poa::DynamicImpHandler : public ::java::lang::Object +{ + +public: + DynamicImpHandler(::org::omg::PortableServer::DynamicImplementation *); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + ::org::omg::PortableServer::DynamicImplementation * __attribute__((aligned(__alignof__( ::java::lang::Object)))) servant; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_DynamicImpHandler__ diff --git a/libjava/gnu/CORBA/Poa/ForwardRequestHolder.h b/libjava/gnu/CORBA/Poa/ForwardRequestHolder.h new file mode 100644 index 00000000000..5280da19d30 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/ForwardRequestHolder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_ForwardRequestHolder__ +#define __gnu_CORBA_Poa_ForwardRequestHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class ForwardRequestHolder; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + class ForwardRequest; + } + } + } +} + +class gnu::CORBA::Poa::ForwardRequestHolder : public ::java::lang::Object +{ + +public: + ForwardRequestHolder(); + ForwardRequestHolder(::org::omg::PortableServer::ForwardRequest *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::PortableServer::ForwardRequest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_ForwardRequestHolder__ diff --git a/libjava/gnu/CORBA/Poa/ForwardedServant.h b/libjava/gnu/CORBA/Poa/ForwardedServant.h new file mode 100644 index 00000000000..46b24050a4e --- /dev/null +++ b/libjava/gnu/CORBA/Poa/ForwardedServant.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_ForwardedServant__ +#define __gnu_CORBA_Poa_ForwardedServant__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class ForwardedServant; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + namespace portable + { + class InputStream; + class ObjectImpl; + class OutputStream; + class ResponseHandler; + } + } + namespace PortableServer + { + class POA; + class Servant; + } + } + } +} + +class gnu::CORBA::Poa::ForwardedServant : public ::org::omg::PortableServer::Servant +{ + +public: // actually package-private + ForwardedServant(::org::omg::CORBA::portable::ObjectImpl *); +public: + static ::org::omg::PortableServer::Servant * create(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual JArray< ::java::lang::String * > * _all_interfaces(::org::omg::PortableServer::POA *, JArray< jbyte > *); + ::org::omg::CORBA::portable::ObjectImpl * __attribute__((aligned(__alignof__( ::org::omg::PortableServer::Servant)))) ref; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_ForwardedServant__ diff --git a/libjava/gnu/CORBA/Poa/InvalidPolicyHolder.h b/libjava/gnu/CORBA/Poa/InvalidPolicyHolder.h new file mode 100644 index 00000000000..80b1533af91 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/InvalidPolicyHolder.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_InvalidPolicyHolder__ +#define __gnu_CORBA_Poa_InvalidPolicyHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class InvalidPolicyHolder; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class InvalidPolicy; + } + } + } + } +} + +class gnu::CORBA::Poa::InvalidPolicyHolder : public ::java::lang::Object +{ + +public: + InvalidPolicyHolder(); + InvalidPolicyHolder(::org::omg::PortableServer::POAPackage::InvalidPolicy *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::PortableServer::POAPackage::InvalidPolicy * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_InvalidPolicyHolder__ diff --git a/libjava/gnu/CORBA/Poa/LocalDelegate.h b/libjava/gnu/CORBA/Poa/LocalDelegate.h new file mode 100644 index 00000000000..4baca2ea637 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/LocalDelegate.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_LocalDelegate__ +#define __gnu_CORBA_Poa_LocalDelegate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + namespace Poa + { + class LocalDelegate; + class gnuPOA; + class gnuServantObject; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Request; + namespace portable + { + class InputStream; + class InvokeHandler; + class OutputStream; + } + } + namespace PortableServer + { + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class gnu::CORBA::Poa::LocalDelegate : public ::org::omg::CORBA_2_3::portable::Delegate +{ + +public: + LocalDelegate(::gnu::CORBA::Poa::gnuServantObject *, ::gnu::CORBA::Poa::gnuPOA *, JArray< jbyte > *); + virtual ::gnu::CORBA::IOR * getIor(); + virtual ::org::omg::CORBA::Request * request(::org::omg::CORBA::Object *, ::java::lang::String *); + virtual void release(::org::omg::CORBA::Object *); + virtual jboolean is_equivalent(::org::omg::CORBA::Object *, ::org::omg::CORBA::Object *); + virtual jboolean non_existent(::org::omg::CORBA::Object *); + virtual jint hash(::org::omg::CORBA::Object *, jint); + virtual jboolean is_a(::org::omg::CORBA::Object *, ::java::lang::String *); + virtual ::org::omg::CORBA::Object * duplicate(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *); + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *); + virtual ::org::omg::CORBA::Object * get_interface_def(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::portable::OutputStream * request(::org::omg::CORBA::Object *, ::java::lang::String *, jboolean); + virtual ::org::omg::CORBA::portable::InvokeHandler * getHandler(::java::lang::String *, ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder *); + virtual ::org::omg::CORBA::ORB * orb(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::portable::InputStream * invoke(::org::omg::CORBA::Object *, ::org::omg::CORBA::portable::OutputStream *); + virtual void releaseReply(::org::omg::CORBA::Object *, ::org::omg::CORBA::portable::InputStream *); +public: // actually package-private + ::gnu::CORBA::Poa::gnuServantObject * __attribute__((aligned(__alignof__( ::org::omg::CORBA_2_3::portable::Delegate)))) object; + ::java::lang::String * operation; +public: + ::gnu::CORBA::Poa::gnuPOA * poa; +public: // actually package-private + JArray< jbyte > * Id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_LocalDelegate__ diff --git a/libjava/gnu/CORBA/Poa/LocalRequest.h b/libjava/gnu/CORBA/Poa/LocalRequest.h new file mode 100644 index 00000000000..8d78931cbe9 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/LocalRequest.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_LocalRequest__ +#define __gnu_CORBA_Poa_LocalRequest__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + } + namespace GIOP + { + class MessageHeader; + } + namespace Poa + { + class LocalRequest; + class LocalServerRequest; + class gnuPOA; + class gnuServantObject; + } + class StreamBasedRequest; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class InvokeHandler; + class OutputStream; + } + } + namespace PortableServer + { + class POA; + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class gnu::CORBA::Poa::LocalRequest : public ::gnu::CORBA::gnuRequest +{ + +public: + LocalRequest(::gnu::CORBA::Poa::gnuServantObject *, ::gnu::CORBA::Poa::gnuPOA *, JArray< jbyte > *); +public: // actually package-private + virtual ::org::omg::CORBA::portable::InputStream * s_invoke(::org::omg::CORBA::portable::InvokeHandler *); +public: + virtual ::org::omg::CORBA::portable::InputStream * v_invoke(::org::omg::CORBA::portable::InvokeHandler *); + virtual void invoke(); + virtual ::org::omg::CORBA::portable::OutputStream * createExceptionReply(); + virtual ::org::omg::CORBA::portable::OutputStream * createReply(); +public: // actually package-private + virtual ::gnu::CORBA::CDR::BufferedCdrOutput * getBuffer(); + virtual jboolean isExceptionReply(); +private: + void prepareStream(); +public: + virtual ::gnu::CORBA::StreamBasedRequest * getParameterStream(); + virtual JArray< jbyte > * get_object_id(); + virtual ::org::omg::PortableServer::POA * get_POA(); +public: // actually package-private + ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder * __attribute__((aligned(__alignof__( ::gnu::CORBA::gnuRequest)))) cookie; + JArray< jbyte > * Id; +private: + static ::gnu::CORBA::GIOP::MessageHeader * header; +public: // actually package-private + jboolean exceptionReply; + ::gnu::CORBA::CDR::BufferedCdrOutput * buffer; + ::gnu::CORBA::Poa::gnuPOA * poa; + ::gnu::CORBA::Poa::gnuServantObject * object; + ::gnu::CORBA::Poa::LocalServerRequest * serverRequest; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_LocalRequest__ diff --git a/libjava/gnu/CORBA/Poa/LocalServerRequest.h b/libjava/gnu/CORBA/Poa/LocalServerRequest.h new file mode 100644 index 00000000000..a779429ec8f --- /dev/null +++ b/libjava/gnu/CORBA/Poa/LocalServerRequest.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_LocalServerRequest__ +#define __gnu_CORBA_Poa_LocalServerRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class LocalRequest; + class LocalServerRequest; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class NVList; + } + } + } +} + +class gnu::CORBA::Poa::LocalServerRequest : public ::org::omg::CORBA::ServerRequest +{ + +public: + LocalServerRequest(::gnu::CORBA::Poa::LocalRequest *); + virtual void params(::org::omg::CORBA::NVList *); + virtual ::org::omg::CORBA::Context * ctx(); + virtual ::java::lang::String * operation(); + virtual void arguments(::org::omg::CORBA::NVList *); + virtual void set_result(::org::omg::CORBA::Any *); + virtual ::java::lang::String * op_name(); + virtual void set_exception(::org::omg::CORBA::Any *); + virtual void result(::org::omg::CORBA::Any *); + virtual void except(::org::omg::CORBA::Any *); +public: // actually package-private + ::gnu::CORBA::Poa::LocalRequest * __attribute__((aligned(__alignof__( ::org::omg::CORBA::ServerRequest)))) request; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_LocalServerRequest__ diff --git a/libjava/gnu/CORBA/Poa/ORB_1_4.h b/libjava/gnu/CORBA/Poa/ORB_1_4.h new file mode 100644 index 00000000000..8e62bbe2e07 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/ORB_1_4.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_ORB_1_4__ +#define __gnu_CORBA_Poa_ORB_1_4__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Connected_objects$cObject; + namespace DynAn + { + class gnuDynAnyFactory; + } + class IOR; + namespace Interceptor + { + class gnuIcCurrent; + } + namespace Poa + { + class ORB_1_4; + class gnuPOA; + class gnuPoaCurrent; + } + } + } + namespace java + { + namespace applet + { + class Applet; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class Policy; + } + } + } +} + +class gnu::CORBA::Poa::ORB_1_4 : public ::gnu::CORBA::OrbFunctional +{ + +public: + ORB_1_4(); + virtual ::java::lang::String * object_to_string(::org::omg::CORBA::Object *); + virtual void destroy(); +public: // actually protected + virtual void registerInterceptors(::java::util::Properties *, JArray< ::java::lang::String * > *); + virtual ::gnu::CORBA::IOR * createIOR(::gnu::CORBA::Connected_objects$cObject *); +public: + virtual ::org::omg::CORBA::Policy * create_policy(jint, ::org::omg::CORBA::Any *); +public: // actually protected + virtual void set_parameters(::java::applet::Applet *, ::java::util::Properties *); + virtual void set_parameters(JArray< ::java::lang::String * > *, ::java::util::Properties *); +public: + virtual void set_delegate(::java::lang::Object *); + ::gnu::CORBA::Poa::gnuPOA * __attribute__((aligned(__alignof__( ::gnu::CORBA::OrbFunctional)))) rootPOA; + ::gnu::CORBA::Poa::gnuPoaCurrent * currents; + ::gnu::CORBA::Interceptor::gnuIcCurrent * ic_current; + ::gnu::CORBA::DynAn::gnuDynAnyFactory * factory; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_ORB_1_4__ diff --git a/libjava/gnu/CORBA/Poa/ServantDelegateImpl.h b/libjava/gnu/CORBA/Poa/ServantDelegateImpl.h new file mode 100644 index 00000000000..e5fbd569667 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/ServantDelegateImpl.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_ServantDelegateImpl__ +#define __gnu_CORBA_Poa_ServantDelegateImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class ServantDelegateImpl; + class gnuPOA; + class gnuServantObject; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + } + namespace PortableServer + { + class POA; + class Servant; + } + } + } +} + +class gnu::CORBA::Poa::ServantDelegateImpl : public ::java::lang::Object +{ + +public: + ServantDelegateImpl(::org::omg::PortableServer::Servant *, ::gnu::CORBA::Poa::gnuPOA *, JArray< jbyte > *); + virtual jboolean is_a(::org::omg::PortableServer::Servant *, ::java::lang::String *); + virtual ::org::omg::PortableServer::POA * default_POA(::org::omg::PortableServer::Servant *); + virtual ::org::omg::CORBA::ORB * orb(::org::omg::PortableServer::Servant *); + virtual ::org::omg::CORBA::Object * this_object(::org::omg::PortableServer::Servant *); + virtual ::org::omg::CORBA::Object * get_interface_def(::org::omg::PortableServer::Servant *); + virtual JArray< jbyte > * object_id(::org::omg::PortableServer::Servant *); + virtual jboolean non_existent(::org::omg::PortableServer::Servant *); + virtual ::org::omg::PortableServer::POA * poa(::org::omg::PortableServer::Servant *); +public: // actually package-private + virtual void same(::org::omg::PortableServer::Servant *); + ::org::omg::PortableServer::Servant * __attribute__((aligned(__alignof__( ::java::lang::Object)))) servant; + JArray< jbyte > * servant_id; + ::gnu::CORBA::Poa::gnuPOA * poa__; + ::gnu::CORBA::Poa::gnuServantObject * object; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_ServantDelegateImpl__ diff --git a/libjava/gnu/CORBA/Poa/StandardPolicies.h b/libjava/gnu/CORBA/Poa/StandardPolicies.h new file mode 100644 index 00000000000..6b7f9202fa7 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/StandardPolicies.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_StandardPolicies__ +#define __gnu_CORBA_Poa_StandardPolicies__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class AccessiblePolicy; + class StandardPolicies; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + } + } +} + +class gnu::CORBA::Poa::StandardPolicies : public ::java::lang::Object +{ + +public: + StandardPolicies(); + static JArray< ::org::omg::CORBA::Policy * > * rootPoa(); + static JArray< ::org::omg::CORBA::Policy * > * withDefault(JArray< ::org::omg::CORBA::Policy * > *); +private: + static JArray< ::gnu::CORBA::Poa::AccessiblePolicy * > * rootPOASet; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_StandardPolicies__ diff --git a/libjava/gnu/CORBA/Poa/gnuAdapterActivator.h b/libjava/gnu/CORBA/Poa/gnuAdapterActivator.h new file mode 100644 index 00000000000..b190e4815f9 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuAdapterActivator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuAdapterActivator__ +#define __gnu_CORBA_Poa_gnuAdapterActivator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuAdapterActivator; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class POA; + } + } + } +} + +class gnu::CORBA::Poa::gnuAdapterActivator : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuAdapterActivator(); + virtual jboolean unknown_adapter(::org::omg::PortableServer::POA *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuAdapterActivator__ diff --git a/libjava/gnu/CORBA/Poa/gnuForwardRequest.h b/libjava/gnu/CORBA/Poa/gnuForwardRequest.h new file mode 100644 index 00000000000..4609dcdd503 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuForwardRequest.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuForwardRequest__ +#define __gnu_CORBA_Poa_gnuForwardRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuForwardRequest; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + namespace portable + { + class ObjectImpl; + } + } + } + } +} + +class gnu::CORBA::Poa::gnuForwardRequest : public ::java::lang::RuntimeException +{ + +public: + gnuForwardRequest(::org::omg::CORBA::Object *); +private: + static const jlong serialVersionUID = -1LL; +public: + ::org::omg::CORBA::portable::ObjectImpl * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) forward_reference; + jbyte forwarding_code; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuForwardRequest__ diff --git a/libjava/gnu/CORBA/Poa/gnuIdAssignmentPolicy.h b/libjava/gnu/CORBA/Poa/gnuIdAssignmentPolicy.h new file mode 100644 index 00000000000..fd54bd3da5f --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuIdAssignmentPolicy.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuIdAssignmentPolicy__ +#define __gnu_CORBA_Poa_gnuIdAssignmentPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuIdAssignmentPolicy; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class IdAssignmentPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuIdAssignmentPolicy : public ::gnu::CORBA::_PolicyImplBase +{ + +public: + gnuIdAssignmentPolicy(::org::omg::PortableServer::IdAssignmentPolicyValue *); + virtual ::org::omg::PortableServer::IdAssignmentPolicyValue * value(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuIdAssignmentPolicy__ diff --git a/libjava/gnu/CORBA/Poa/gnuIdUniquenessPolicy.h b/libjava/gnu/CORBA/Poa/gnuIdUniquenessPolicy.h new file mode 100644 index 00000000000..563f1e37eb8 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuIdUniquenessPolicy.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuIdUniquenessPolicy__ +#define __gnu_CORBA_Poa_gnuIdUniquenessPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuIdUniquenessPolicy; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class IdUniquenessPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuIdUniquenessPolicy : public ::gnu::CORBA::_PolicyImplBase +{ + +public: + gnuIdUniquenessPolicy(::org::omg::PortableServer::IdUniquenessPolicyValue *); + virtual ::org::omg::PortableServer::IdUniquenessPolicyValue * value(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuIdUniquenessPolicy__ diff --git a/libjava/gnu/CORBA/Poa/gnuImplicitActivationPolicy.h b/libjava/gnu/CORBA/Poa/gnuImplicitActivationPolicy.h new file mode 100644 index 00000000000..229a10aa34c --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuImplicitActivationPolicy.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuImplicitActivationPolicy__ +#define __gnu_CORBA_Poa_gnuImplicitActivationPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuImplicitActivationPolicy; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class ImplicitActivationPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuImplicitActivationPolicy : public ::gnu::CORBA::_PolicyImplBase +{ + +public: + gnuImplicitActivationPolicy(::org::omg::PortableServer::ImplicitActivationPolicyValue *); + virtual ::org::omg::PortableServer::ImplicitActivationPolicyValue * value(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuImplicitActivationPolicy__ diff --git a/libjava/gnu/CORBA/Poa/gnuLifespanPolicy.h b/libjava/gnu/CORBA/Poa/gnuLifespanPolicy.h new file mode 100644 index 00000000000..6abc75b4221 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuLifespanPolicy.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuLifespanPolicy__ +#define __gnu_CORBA_Poa_gnuLifespanPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuLifespanPolicy; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class LifespanPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuLifespanPolicy : public ::gnu::CORBA::_PolicyImplBase +{ + +public: + gnuLifespanPolicy(::org::omg::PortableServer::LifespanPolicyValue *); + virtual ::org::omg::PortableServer::LifespanPolicyValue * value(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuLifespanPolicy__ diff --git a/libjava/gnu/CORBA/Poa/gnuPOA$RefTemplate.h b/libjava/gnu/CORBA/Poa/gnuPOA$RefTemplate.h new file mode 100644 index 00000000000..b7a34b05cca --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuPOA$RefTemplate.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuPOA$RefTemplate__ +#define __gnu_CORBA_Poa_gnuPOA$RefTemplate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuPOA; + class gnuPOA$RefTemplate; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + } + } +} + +class gnu::CORBA::Poa::gnuPOA$RefTemplate : public ::java::lang::Object +{ + +public: // actually package-private + gnuPOA$RefTemplate(::gnu::CORBA::Poa::gnuPOA *); +public: + virtual JArray< ::java::lang::String * > * adapter_name(); + virtual ::java::lang::String * orb_id(); + virtual ::java::lang::String * server_id(); + virtual ::org::omg::CORBA::Object * make_object(::java::lang::String *, JArray< jbyte > *); + virtual JArray< ::java::lang::String * > * _truncatable_ids(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) m_adapter_name; + ::gnu::CORBA::Poa::gnuPOA * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuPOA$RefTemplate__ diff --git a/libjava/gnu/CORBA/Poa/gnuPOA.h b/libjava/gnu/CORBA/Poa/gnuPOA.h new file mode 100644 index 00000000000..85af4246799 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuPOA.h @@ -0,0 +1,187 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuPOA__ +#define __gnu_CORBA_Poa_gnuPOA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class AOM; + class AOM$Obj; + class ORB_1_4; + class ServantDelegateImpl; + class gnuPOA; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + class Policy; + class SetOverrideType; + } + namespace PortableInterceptor + { + class ObjectReferenceFactory; + class ObjectReferenceTemplate; + } + namespace PortableServer + { + class AdapterActivator; + class IdAssignmentPolicy; + class IdAssignmentPolicyValue; + class IdUniquenessPolicy; + class IdUniquenessPolicyValue; + class ImplicitActivationPolicy; + class ImplicitActivationPolicyValue; + class LifespanPolicy; + class LifespanPolicyValue; + class POA; + class POAManager; + class RequestProcessingPolicy; + class RequestProcessingPolicyValue; + class Servant; + class ServantActivator; + class ServantLocator; + class ServantManager; + class ServantRetentionPolicy; + class ServantRetentionPolicyValue; + class ThreadPolicy; + class ThreadPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuPOA : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuPOA(::gnu::CORBA::Poa::gnuPOA *, ::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *, ::gnu::CORBA::Poa::ORB_1_4 *); + virtual void waitWhileRunning(); +public: // actually protected + virtual void etherealizeAll(); + virtual ::org::omg::PortableServer::POA * createPoaInstance(::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *, ::gnu::CORBA::Poa::ORB_1_4 *); +public: + virtual jboolean applies(::java::lang::Object *); + virtual void required(::java::lang::Object *); + virtual void excluding(::java::lang::Object *); + virtual ::org::omg::PortableServer::POA * find_POA(::java::lang::String *, jboolean); + virtual JArray< jbyte > * activate_object(::org::omg::PortableServer::Servant *); + virtual void activate_object_with_id(JArray< jbyte > *, ::org::omg::PortableServer::Servant *); + virtual void activate_object_with_id(JArray< jbyte > *, ::org::omg::PortableServer::Servant *, jboolean); +private: + void locateServant(JArray< jbyte > *, ::org::omg::PortableServer::Servant *, ::gnu::CORBA::Poa::AOM$Obj *, jboolean); +public: + virtual void deactivate_object(JArray< jbyte > *); + virtual ::org::omg::CORBA::Object * create_reference(::java::lang::String *); + virtual ::org::omg::CORBA::Object * create_reference_with_id(JArray< jbyte > *, ::java::lang::String *); + virtual ::org::omg::PortableServer::POA * create_POA(::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *); + virtual ::org::omg::PortableServer::Servant * get_servant(); + virtual void set_servant(::org::omg::PortableServer::Servant *); + virtual void set_servant_manager(::org::omg::PortableServer::ServantManager *); + virtual ::org::omg::PortableServer::ServantManager * get_servant_manager(); + virtual JArray< jbyte > * id(); + virtual ::org::omg::CORBA::Object * id_to_reference(JArray< jbyte > *); + virtual ::org::omg::PortableServer::Servant * id_to_servant(JArray< jbyte > *); + virtual JArray< jbyte > * reference_to_id(::org::omg::CORBA::Object *); + virtual ::org::omg::PortableServer::Servant * reference_to_servant(::org::omg::CORBA::Object *); + virtual JArray< jbyte > * servant_to_id(::org::omg::PortableServer::Servant *); + virtual ::org::omg::CORBA::Object * servant_to_reference(::org::omg::PortableServer::Servant *); +private: + ::org::omg::PortableServer::Servant * incarnate(::gnu::CORBA::Poa::AOM$Obj *, JArray< jbyte > *, ::org::omg::PortableServer::Servant *, jboolean); +public: + virtual ::org::omg::PortableServer::POAManager * the_POAManager(); + virtual ::org::omg::PortableServer::AdapterActivator * the_activator(); + virtual void the_activator(::org::omg::PortableServer::AdapterActivator *); + virtual JArray< ::org::omg::PortableServer::POA * > * the_children(); + virtual ::java::lang::String * the_name(); + virtual ::org::omg::PortableServer::POA * the_parent(); + virtual ::org::omg::PortableServer::IdAssignmentPolicy * create_id_assignment_policy(::org::omg::PortableServer::IdAssignmentPolicyValue *); + virtual ::org::omg::PortableServer::IdUniquenessPolicy * create_id_uniqueness_policy(::org::omg::PortableServer::IdUniquenessPolicyValue *); + virtual ::org::omg::PortableServer::ImplicitActivationPolicy * create_implicit_activation_policy(::org::omg::PortableServer::ImplicitActivationPolicyValue *); + virtual ::org::omg::PortableServer::LifespanPolicy * create_lifespan_policy(::org::omg::PortableServer::LifespanPolicyValue *); + virtual ::org::omg::PortableServer::RequestProcessingPolicy * create_request_processing_policy(::org::omg::PortableServer::RequestProcessingPolicyValue *); + virtual ::org::omg::PortableServer::ServantRetentionPolicy * create_servant_retention_policy(::org::omg::PortableServer::ServantRetentionPolicyValue *); + virtual ::org::omg::PortableServer::ThreadPolicy * create_thread_policy(::org::omg::PortableServer::ThreadPolicyValue *); + virtual void destroy(jboolean, jboolean); +public: // actually protected + virtual void finalize(); +private: + void unregisterFromManager(); +public: + virtual ::org::omg::CORBA::Policy * _get_policy(jint); + virtual JArray< ::org::omg::CORBA::Policy * > * getPolicyArray(); + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *); + virtual ::org::omg::CORBA::ORB * orb(); +private: + void create_and_connect(JArray< jbyte > *, ::java::lang::String *, ::gnu::CORBA::Poa::ServantDelegateImpl *); +public: // actually package-private + virtual void checkDiscarding(); +public: // actually protected + virtual void connect_to_orb(JArray< jbyte > *, ::org::omg::CORBA::Object *); +public: + virtual ::java::lang::String * toString(); +public: // actually protected + virtual jboolean validatePolicies(JArray< ::org::omg::CORBA::Policy * > *); +public: + virtual ::gnu::CORBA::Poa::AOM$Obj * findObject(::org::omg::CORBA::Object *); + virtual ::gnu::CORBA::Poa::AOM$Obj * findKey(JArray< jbyte > *, JArray< jbyte > *); + virtual ::gnu::CORBA::Poa::AOM$Obj * findIorKey(JArray< jbyte > *); + virtual JArray< jbyte > * toIORKey(JArray< jbyte > *); + virtual JArray< jbyte > * idFormIor(JArray< jbyte > *); + virtual ::gnu::CORBA::Poa::AOM$Obj * findServant(::org::omg::PortableServer::Servant *); + virtual ::org::omg::PortableInterceptor::ObjectReferenceTemplate * getReferenceTemplate(); + virtual ::org::omg::PortableInterceptor::ObjectReferenceFactory * getReferenceFactory(); + virtual void setReferenceFactory(::org::omg::PortableInterceptor::ObjectReferenceFactory *); + virtual ::org::omg::CORBA::Object * make_object(::java::lang::String *, JArray< jbyte > *); + virtual JArray< ::java::lang::String * > * _truncatable_ids(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::org::omg::PortableInterceptor::ObjectReferenceTemplate * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) refTemplate; + static JArray< ::java::lang::String * > * ref_template_ids; +public: + ::gnu::CORBA::Poa::AOM * aom; +public: // actually package-private + ::java::util::ArrayList * children; + ::java::lang::String * name; + ::org::omg::PortableServer::POA * parent; + static const jint SIGNATURE = 1718773093; + ::org::omg::PortableServer::AdapterActivator * m_activator; + ::org::omg::PortableServer::POAManager * m_manager; + ::org::omg::PortableServer::ServantActivator * servant_activator; + ::org::omg::PortableServer::ServantLocator * servant_locator; + ::org::omg::PortableServer::Servant * default_servant; +private: + JArray< jbyte > * m_poa_id; + ::java::util::HashSet * m_policies; +public: // actually package-private + JArray< ::org::omg::CORBA::Policy * > * s_policies; + ::gnu::CORBA::Poa::ORB_1_4 * m_orb; + jboolean m_inDestruction; +public: + jboolean retain_servant; +public: // actually package-private + ::org::omg::PortableInterceptor::ObjectReferenceFactory * m_object_factory; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuPOA__ diff --git a/libjava/gnu/CORBA/Poa/gnuPOAManager.h b/libjava/gnu/CORBA/Poa/gnuPOAManager.h new file mode 100644 index 00000000000..b94576b3c6e --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuPOAManager.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuPOAManager__ +#define __gnu_CORBA_Poa_gnuPOAManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuPOA; + class gnuPOAManager; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAManagerPackage + { + class State; + } + } + } + } +} + +class gnu::CORBA::Poa::gnuPOAManager : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuPOAManager(); + virtual ::org::omg::PortableServer::POAManagerPackage::State * get_state(); + virtual void activate(); + virtual void hold_requests(jboolean); + virtual void deactivate(jboolean, jboolean); + virtual void discard_requests(jboolean); + virtual void waitForIdle(); + virtual void addPoa(::gnu::CORBA::Poa::gnuPOA *); + virtual void removePOA(::gnu::CORBA::Poa::gnuPOA *); + virtual void poaDestroyed(::gnu::CORBA::Poa::gnuPOA *); + virtual void notifyInterceptors(jint); +private: + static const jlong serialVersionUID = 1LL; + ::java::util::HashSet * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) POAs; +public: // actually package-private + ::org::omg::PortableServer::POAManagerPackage::State * state; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuPOAManager__ diff --git a/libjava/gnu/CORBA/Poa/gnuPoaCurrent.h b/libjava/gnu/CORBA/Poa/gnuPoaCurrent.h new file mode 100644 index 00000000000..63c88c6923b --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuPoaCurrent.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuPoaCurrent__ +#define __gnu_CORBA_Poa_gnuPoaCurrent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuPoaCurrent; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class CurrentOperations; + class POA; + } + } + } +} + +class gnu::CORBA::Poa::gnuPoaCurrent : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + gnuPoaCurrent(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual JArray< jbyte > * get_object_id(); + virtual ::org::omg::PortableServer::POA * get_POA(); + virtual void put(::java::lang::Thread *, ::org::omg::PortableServer::CurrentOperations *); + virtual jboolean has(::org::omg::PortableServer::POA *); + virtual jboolean has(::java::lang::Thread *); + virtual void remove(::java::lang::Thread *); +private: + ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::org::omg::CORBA::portable::ObjectImpl)))) threads; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuPoaCurrent__ diff --git a/libjava/gnu/CORBA/Poa/gnuRequestProcessingPolicy.h b/libjava/gnu/CORBA/Poa/gnuRequestProcessingPolicy.h new file mode 100644 index 00000000000..661a49b28b2 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuRequestProcessingPolicy.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuRequestProcessingPolicy__ +#define __gnu_CORBA_Poa_gnuRequestProcessingPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuRequestProcessingPolicy; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class RequestProcessingPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuRequestProcessingPolicy : public ::gnu::CORBA::_PolicyImplBase +{ + +public: + gnuRequestProcessingPolicy(::org::omg::PortableServer::RequestProcessingPolicyValue *); + virtual ::org::omg::PortableServer::RequestProcessingPolicyValue * value(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuRequestProcessingPolicy__ diff --git a/libjava/gnu/CORBA/Poa/gnuServantObject.h b/libjava/gnu/CORBA/Poa/gnuServantObject.h new file mode 100644 index 00000000000..8b5d761d1e5 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuServantObject.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuServantObject__ +#define __gnu_CORBA_Poa_gnuServantObject__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + namespace Poa + { + class ORB_1_4; + class gnuPOA; + class gnuServantObject; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + namespace portable + { + class InputStream; + class InvokeHandler; + class OutputStream; + class ResponseHandler; + } + } + namespace PortableServer + { + class POA; + class POAManager; + class Servant; + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class gnu::CORBA::Poa::gnuServantObject : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + gnuServantObject(JArray< ::java::lang::String * > *, JArray< jbyte > *, ::gnu::CORBA::Poa::gnuPOA *, ::gnu::CORBA::Poa::ORB_1_4 *); + virtual ::gnu::CORBA::IOR * getIor(); + gnuServantObject(::org::omg::PortableServer::Servant *, JArray< jbyte > *, ::gnu::CORBA::Poa::ORB_1_4 *, ::gnu::CORBA::Poa::gnuPOA *); + virtual void setServant(::org::omg::PortableServer::Servant *); + virtual ::org::omg::PortableServer::Servant * getServant(); + virtual ::org::omg::CORBA::portable::InvokeHandler * getHandler(::java::lang::String *, ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder *, jboolean); + virtual ::org::omg::CORBA::portable::InvokeHandler * servantToHandler(::org::omg::PortableServer::Servant *); + gnuServantObject(::org::omg::PortableServer::Servant *, ::gnu::CORBA::Poa::gnuPOA *); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::java::lang::String * toString(); + virtual jboolean _is_local(); + virtual jboolean _is_a(::java::lang::String *); + virtual ::org::omg::CORBA::ORB * _orb(); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual JArray< jbyte > * get_object_id(); + virtual ::org::omg::PortableServer::POA * get_POA(); + virtual void _release(); + virtual void _releaseReply(::org::omg::CORBA::portable::InputStream *); + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *); +private: + ::org::omg::PortableServer::Servant * __attribute__((aligned(__alignof__( ::org::omg::CORBA::portable::ObjectImpl)))) servant; +public: + JArray< jbyte > * Id; + ::gnu::CORBA::Poa::gnuPOA * poa; + ::org::omg::PortableServer::POAManager * manager; + ::gnu::CORBA::Poa::ORB_1_4 * orb; + JArray< ::java::lang::String * > * repository_ids; +public: // actually package-private + jboolean noRetain; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuServantObject__ diff --git a/libjava/gnu/CORBA/Poa/gnuServantRetentionPolicy.h b/libjava/gnu/CORBA/Poa/gnuServantRetentionPolicy.h new file mode 100644 index 00000000000..9ac884715b3 --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuServantRetentionPolicy.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuServantRetentionPolicy__ +#define __gnu_CORBA_Poa_gnuServantRetentionPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuServantRetentionPolicy; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class ServantRetentionPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuServantRetentionPolicy : public ::gnu::CORBA::_PolicyImplBase +{ + +public: + gnuServantRetentionPolicy(::org::omg::PortableServer::ServantRetentionPolicyValue *); + virtual ::org::omg::PortableServer::ServantRetentionPolicyValue * value(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuServantRetentionPolicy__ diff --git a/libjava/gnu/CORBA/Poa/gnuThreadPolicy.h b/libjava/gnu/CORBA/Poa/gnuThreadPolicy.h new file mode 100644 index 00000000000..a52147d923e --- /dev/null +++ b/libjava/gnu/CORBA/Poa/gnuThreadPolicy.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Poa_gnuThreadPolicy__ +#define __gnu_CORBA_Poa_gnuThreadPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace Poa + { + class gnuThreadPolicy; + } + } + } + namespace org + { + namespace omg + { + namespace PortableServer + { + class ThreadPolicyValue; + } + } + } +} + +class gnu::CORBA::Poa::gnuThreadPolicy : public ::gnu::CORBA::_PolicyImplBase +{ + +public: + gnuThreadPolicy(::org::omg::PortableServer::ThreadPolicyValue *); + virtual ::org::omg::PortableServer::ThreadPolicyValue * value(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Poa_gnuThreadPolicy__ diff --git a/libjava/gnu/CORBA/RawReply.h b/libjava/gnu/CORBA/RawReply.h new file mode 100644 index 00000000000..65e6d4c04bc --- /dev/null +++ b/libjava/gnu/CORBA/RawReply.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_RawReply__ +#define __gnu_CORBA_RawReply__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferredCdrInput; + } + namespace GIOP + { + class MessageHeader; + } + class RawReply; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class gnu::CORBA::RawReply : public ::java::lang::Object +{ + +public: // actually package-private + RawReply(::org::omg::CORBA::ORB *, ::gnu::CORBA::GIOP::MessageHeader *, JArray< jbyte > *); + virtual ::gnu::CORBA::CDR::BufferredCdrInput * getStream(); + ::gnu::CORBA::GIOP::MessageHeader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) header; + ::org::omg::CORBA::ORB * orb; + JArray< jbyte > * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_RawReply__ diff --git a/libjava/gnu/CORBA/ResponseHandlerImpl.h b/libjava/gnu/CORBA/ResponseHandlerImpl.h new file mode 100644 index 00000000000..99ca581b6aa --- /dev/null +++ b/libjava/gnu/CORBA/ResponseHandlerImpl.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_ResponseHandlerImpl__ +#define __gnu_CORBA_ResponseHandlerImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + } + namespace GIOP + { + class MessageHeader; + class ReplyHeader; + class RequestHeader; + } + class ResponseHandlerImpl; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + namespace portable + { + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::ResponseHandlerImpl : public ::java::lang::Object +{ + +public: // actually package-private + ResponseHandlerImpl(::org::omg::CORBA::ORB *, ::gnu::CORBA::GIOP::MessageHeader *, ::gnu::CORBA::GIOP::ReplyHeader *, ::gnu::CORBA::GIOP::RequestHeader *); +public: + virtual ::org::omg::CORBA::portable::OutputStream * createExceptionReply(); + virtual ::org::omg::CORBA::portable::OutputStream * createReply(); + virtual ::gnu::CORBA::CDR::BufferedCdrOutput * getBuffer(); + virtual jboolean isExceptionReply(); +private: + void prepareStream(); +public: + ::gnu::CORBA::GIOP::MessageHeader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) message_header; + ::org::omg::CORBA::ORB * orb; + ::gnu::CORBA::GIOP::ReplyHeader * reply_header; + ::gnu::CORBA::GIOP::RequestHeader * request_header; +private: + jboolean exceptionReply; + ::gnu::CORBA::CDR::BufferedCdrOutput * buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_ResponseHandlerImpl__ diff --git a/libjava/gnu/CORBA/SafeForDirectCalls.h b/libjava/gnu/CORBA/SafeForDirectCalls.h new file mode 100644 index 00000000000..23f774c195c --- /dev/null +++ b/libjava/gnu/CORBA/SafeForDirectCalls.h @@ -0,0 +1,28 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_SafeForDirectCalls__ +#define __gnu_CORBA_SafeForDirectCalls__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class SafeForDirectCalls; + } + } +} + +class gnu::CORBA::SafeForDirectCalls : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_SafeForDirectCalls__ diff --git a/libjava/gnu/CORBA/ServiceDetailHolder.h b/libjava/gnu/CORBA/ServiceDetailHolder.h new file mode 100644 index 00000000000..8181666a41f --- /dev/null +++ b/libjava/gnu/CORBA/ServiceDetailHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_ServiceDetailHolder__ +#define __gnu_CORBA_ServiceDetailHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class ServiceDetailHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ServiceDetail; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::ServiceDetailHolder : public ::java::lang::Object +{ + +public: + ServiceDetailHolder(::org::omg::CORBA::ServiceDetail *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::ServiceDetail * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_ServiceDetailHolder__ diff --git a/libjava/gnu/CORBA/ServiceRequestAdapter.h b/libjava/gnu/CORBA/ServiceRequestAdapter.h new file mode 100644 index 00000000000..2fd7a379569 --- /dev/null +++ b/libjava/gnu/CORBA/ServiceRequestAdapter.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_ServiceRequestAdapter__ +#define __gnu_CORBA_ServiceRequestAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + } + class ServiceRequestAdapter; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ServerRequest; + namespace portable + { + class InvokeHandler; + class OutputStream; + class Streamable; + } + } + } + } +} + +class gnu::CORBA::ServiceRequestAdapter : public ::java::lang::Object +{ + +public: + ServiceRequestAdapter(); + virtual ::org::omg::CORBA::portable::OutputStream * createExceptionReply(); + virtual ::org::omg::CORBA::portable::OutputStream * createReply(); + static void invoke(::org::omg::CORBA::ServerRequest *, ::org::omg::CORBA::portable::InvokeHandler *, ::org::omg::CORBA::portable::Streamable *); +public: // actually package-private + ::gnu::CORBA::CDR::BufferedCdrOutput * __attribute__((aligned(__alignof__( ::java::lang::Object)))) reply; + jboolean isException; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_ServiceRequestAdapter__ diff --git a/libjava/gnu/CORBA/SetOverrideTypeHolder.h b/libjava/gnu/CORBA/SetOverrideTypeHolder.h new file mode 100644 index 00000000000..40aec98c9eb --- /dev/null +++ b/libjava/gnu/CORBA/SetOverrideTypeHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_SetOverrideTypeHolder__ +#define __gnu_CORBA_SetOverrideTypeHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class SetOverrideTypeHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class SetOverrideType; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::SetOverrideTypeHolder : public ::java::lang::Object +{ + +public: + SetOverrideTypeHolder(::org::omg::CORBA::SetOverrideType *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::SetOverrideType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_SetOverrideTypeHolder__ diff --git a/libjava/gnu/CORBA/SimpleDelegate.h b/libjava/gnu/CORBA/SimpleDelegate.h new file mode 100644 index 00000000000..2efe2b84361 --- /dev/null +++ b/libjava/gnu/CORBA/SimpleDelegate.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_SimpleDelegate__ +#define __gnu_CORBA_SimpleDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + class SimpleDelegate; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Request; + } + } + } +} + +class gnu::CORBA::SimpleDelegate : public ::org::omg::CORBA::portable::Delegate +{ + +public: + SimpleDelegate(::org::omg::CORBA::ORB *, ::gnu::CORBA::IOR *); + virtual void setIor(::gnu::CORBA::IOR *); + virtual ::gnu::CORBA::IOR * getIor(); + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *); + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *); + virtual ::org::omg::CORBA::Object * duplicate(::org::omg::CORBA::Object *); + virtual jboolean equals(::org::omg::CORBA::Object *, ::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::Object * get_interface_def(::org::omg::CORBA::Object *); + virtual jint hash(::org::omg::CORBA::Object *, jint); + virtual jint hashCode(::org::omg::CORBA::Object *); + virtual jboolean is_a(::org::omg::CORBA::Object *, ::java::lang::String *); + virtual jboolean is_equivalent(::org::omg::CORBA::Object *, ::org::omg::CORBA::Object *); + virtual jboolean is_local(::org::omg::CORBA::Object *); + virtual jboolean non_existent(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::ORB * orb(::org::omg::CORBA::Object *); + virtual void release(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::Request * request(::org::omg::CORBA::Object *, ::java::lang::String *); +public: // actually protected + ::org::omg::CORBA::ORB * __attribute__((aligned(__alignof__( ::org::omg::CORBA::portable::Delegate)))) orb__; + ::gnu::CORBA::IOR * ior; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_SimpleDelegate__ diff --git a/libjava/gnu/CORBA/SocketRepository.h b/libjava/gnu/CORBA/SocketRepository.h new file mode 100644 index 00000000000..158fe4df10d --- /dev/null +++ b/libjava/gnu/CORBA/SocketRepository.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_SocketRepository__ +#define __gnu_CORBA_SocketRepository__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class SocketRepository; + } + } + namespace java + { + namespace net + { + class Socket; + } + } +} + +class gnu::CORBA::SocketRepository : public ::java::lang::Object +{ + +public: + SocketRepository(); + static void put_socket(::java::lang::Object *, ::java::net::Socket *); +private: + static void gc(); +public: // actually package-private + static jboolean not_reusable(::java::net::Socket *); +public: + static ::java::net::Socket * get_socket(::java::lang::Object *); +private: + static ::java::util::HashMap * sockets; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_SocketRepository__ diff --git a/libjava/gnu/CORBA/StreamBasedRequest.h b/libjava/gnu/CORBA/StreamBasedRequest.h new file mode 100644 index 00000000000..7afb2dad309 --- /dev/null +++ b/libjava/gnu/CORBA/StreamBasedRequest.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_StreamBasedRequest__ +#define __gnu_CORBA_StreamBasedRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class StreamBasedRequest; + class gnuRequest; + } + } +} + +class gnu::CORBA::StreamBasedRequest : public ::gnu::CORBA::CDR::BufferedCdrOutput +{ + +public: + StreamBasedRequest(); + ::gnu::CORBA::gnuRequest * __attribute__((aligned(__alignof__( ::gnu::CORBA::CDR::BufferedCdrOutput)))) request; + jboolean response_expected; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_StreamBasedRequest__ diff --git a/libjava/gnu/CORBA/StreamHolder.h b/libjava/gnu/CORBA/StreamHolder.h new file mode 100644 index 00000000000..f71e4ad6d07 --- /dev/null +++ b/libjava/gnu/CORBA/StreamHolder.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_StreamHolder__ +#define __gnu_CORBA_StreamHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class StreamHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::StreamHolder : public ::java::lang::Object +{ + +public: + StreamHolder(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); +public: // actually package-private + virtual ::org::omg::CORBA::portable::InputStream * getInputStream(); +public: // actually protected + ::org::omg::CORBA::portable::InputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) stream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_StreamHolder__ diff --git a/libjava/gnu/CORBA/StubLocator.h b/libjava/gnu/CORBA/StubLocator.h new file mode 100644 index 00000000000..591e30fe554 --- /dev/null +++ b/libjava/gnu/CORBA/StubLocator.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_StubLocator__ +#define __gnu_CORBA_StubLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class IOR; + class StubLocator; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + namespace portable + { + class ObjectImpl; + } + } + } + } +} + +class gnu::CORBA::StubLocator : public ::java::lang::Object +{ + +public: + StubLocator(); + static ::org::omg::CORBA::portable::ObjectImpl * search(::org::omg::CORBA::ORB *, ::gnu::CORBA::IOR *); +public: // actually protected + static ::org::omg::CORBA::portable::ObjectImpl * createDefaultStub(::org::omg::CORBA::ORB *, ::gnu::CORBA::IOR *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_StubLocator__ diff --git a/libjava/gnu/CORBA/TypeCodeHelper.h b/libjava/gnu/CORBA/TypeCodeHelper.h new file mode 100644 index 00000000000..eac0736adac --- /dev/null +++ b/libjava/gnu/CORBA/TypeCodeHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_TypeCodeHelper__ +#define __gnu_CORBA_TypeCodeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class TypeCodeHelper; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::TypeCodeHelper : public ::java::lang::Object +{ + +public: + TypeCodeHelper(); + static ::org::omg::CORBA::TypeCode * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::TypeCode *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_TypeCodeHelper__ diff --git a/libjava/gnu/CORBA/TypeKindNamer.h b/libjava/gnu/CORBA/TypeKindNamer.h new file mode 100644 index 00000000000..da2c87fd6d0 --- /dev/null +++ b/libjava/gnu/CORBA/TypeKindNamer.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_TypeKindNamer__ +#define __gnu_CORBA_TypeKindNamer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class TypeKindNamer; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TCKind; + class TypeCode; + } + } + } +} + +class gnu::CORBA::TypeKindNamer : public ::java::lang::Object +{ + +public: + TypeKindNamer(); + static ::org::omg::CORBA::TypeCode * getPrimitveTC(::org::omg::CORBA::TCKind *); + static ::java::lang::String * nameIt(jint); + static ::java::lang::String * nameIt(::org::omg::CORBA::TypeCode *); +public: // actually protected + static JArray< ::java::lang::String * > * tk; + static JArray< ::org::omg::CORBA::TypeCode * > * primitveCodes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_TypeKindNamer__ diff --git a/libjava/gnu/CORBA/Unexpected.h b/libjava/gnu/CORBA/Unexpected.h new file mode 100644 index 00000000000..cadcd6159f0 --- /dev/null +++ b/libjava/gnu/CORBA/Unexpected.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Unexpected__ +#define __gnu_CORBA_Unexpected__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Unexpected; + } + } +} + +class gnu::CORBA::Unexpected : public ::java::lang::InternalError +{ + +public: + Unexpected(::java::lang::String *, ::java::lang::Exception *); + Unexpected(::java::lang::Exception *); + Unexpected(); + static void error(::java::lang::String *, ::java::lang::Exception *); + static void error(::java::lang::Exception *); + static void error(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::String * SHARED_MESSAGE; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Unexpected__ diff --git a/libjava/gnu/CORBA/Version.h b/libjava/gnu/CORBA/Version.h new file mode 100644 index 00000000000..0c8d910b9b2 --- /dev/null +++ b/libjava/gnu/CORBA/Version.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_Version__ +#define __gnu_CORBA_Version__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class Version; + } + } +} + +class gnu::CORBA::Version : public ::java::lang::Object +{ + +public: + Version(jint, jint); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + static ::gnu::CORBA::Version * read_version(::java::io::InputStream *); + virtual jboolean same(::gnu::CORBA::Version *); + virtual jboolean since_inclusive(jint, jint); + virtual ::java::lang::String * toString(); + virtual jboolean until_inclusive(jint, jint); + virtual void write(::java::io::OutputStream *); +private: + static const jlong serialVersionUID = 1LL; +public: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) major; + jint minor; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_Version__ diff --git a/libjava/gnu/CORBA/WCharHolder.h b/libjava/gnu/CORBA/WCharHolder.h new file mode 100644 index 00000000000..b5a66def959 --- /dev/null +++ b/libjava/gnu/CORBA/WCharHolder.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_WCharHolder__ +#define __gnu_CORBA_WCharHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class WCharHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::WCharHolder : public ::java::lang::Object +{ + +public: + WCharHolder(); + WCharHolder(jchar); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_char; +public: + jchar __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_WCharHolder__ diff --git a/libjava/gnu/CORBA/WStringHolder.h b/libjava/gnu/CORBA/WStringHolder.h new file mode 100644 index 00000000000..5d26fdaa830 --- /dev/null +++ b/libjava/gnu/CORBA/WStringHolder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_WStringHolder__ +#define __gnu_CORBA_WStringHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class WStringHolder; + namespace typecodes + { + class StringTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::WStringHolder : public ::java::lang::Object +{ + +public: + WStringHolder(); + WStringHolder(::java::lang::String *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::gnu::CORBA::typecodes::StringTypeCode * t_string; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_WStringHolder__ diff --git a/libjava/gnu/CORBA/_PolicyImplBase.h b/libjava/gnu/CORBA/_PolicyImplBase.h new file mode 100644 index 00000000000..3cd33d7d43b --- /dev/null +++ b/libjava/gnu/CORBA/_PolicyImplBase.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA__PolicyImplBase__ +#define __gnu_CORBA__PolicyImplBase__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class _PolicyImplBase; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + } + } +} + +class gnu::CORBA::_PolicyImplBase : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _PolicyImplBase(jint, ::java::lang::Object *, jint, ::java::lang::String *); + virtual jint policy_type(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual ::java::lang::Object * getValue(); + virtual jint getCode(); + virtual void destroy(); + virtual ::java::lang::String * toString(); + virtual ::org::omg::CORBA::Policy * copy(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); +private: + static const jlong serialVersionUID = 1LL; + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::org::omg::CORBA::portable::ObjectImpl)))) ids; + jint type; + ::java::lang::Object * value; + jint policyCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA__PolicyImplBase__ diff --git a/libjava/gnu/CORBA/gnuAny.h b/libjava/gnu/CORBA/gnuAny.h new file mode 100644 index 00000000000..5047b420925 --- /dev/null +++ b/libjava/gnu/CORBA/gnuAny.h @@ -0,0 +1,126 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuAny__ +#define __gnu_CORBA_gnuAny__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuAny; + } + } + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ORB; + class Object; + class Principal; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + class Streamable; + } + } + } + } +} + +class gnu::CORBA::gnuAny : public ::org::omg::CORBA::Any +{ + +public: + gnuAny(); + virtual void setOrb(::org::omg::CORBA::ORB *); + virtual ::gnu::CORBA::gnuAny * Clone(); + virtual ::org::omg::CORBA::portable::InputStream * create_input_stream(); + virtual ::org::omg::CORBA::portable::OutputStream * create_output_stream(); + virtual jboolean equal(::org::omg::CORBA::Any *); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::org::omg::CORBA::Object * extract_Object(); + virtual ::org::omg::CORBA::Principal * extract_Principal(); + virtual ::org::omg::CORBA::portable::Streamable * extract_Streamable(); + virtual ::org::omg::CORBA::TypeCode * extract_TypeCode(); + virtual ::java::io::Serializable * extract_Value(); + virtual ::org::omg::CORBA::Any * extract_any(); + virtual jboolean extract_boolean(); + virtual jchar extract_char(); + virtual jdouble extract_double(); + virtual ::java::math::BigDecimal * extract_fixed(); + virtual jfloat extract_float(); + virtual jint extract_long(); + virtual jlong extract_longlong(); + virtual jbyte extract_octet(); + virtual jshort extract_short(); + virtual ::java::lang::String * extract_string(); + virtual jint extract_ulong(); + virtual jlong extract_ulonglong(); + virtual jshort extract_ushort(); + virtual jchar extract_wchar(); + virtual ::java::lang::String * extract_wstring(); + virtual void insert_Object(::org::omg::CORBA::Object *, ::org::omg::CORBA::TypeCode *); + virtual void insert_Object(::org::omg::CORBA::Object *); + virtual void insert_Principal(::org::omg::CORBA::Principal *); + virtual void insert_Streamable(::org::omg::CORBA::portable::Streamable *); + virtual void insert_TypeCode(::org::omg::CORBA::TypeCode *); + virtual void insert_Value(::java::io::Serializable *, ::org::omg::CORBA::TypeCode *); + virtual void insert_Value(::java::io::Serializable *); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_fixed(::java::math::BigDecimal *, ::org::omg::CORBA::TypeCode *); + virtual void insert_fixed(::java::math::BigDecimal *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual ::org::omg::CORBA::ORB * orb(); + virtual void read_value(::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual void type(::org::omg::CORBA::TypeCode *); + virtual void write_value(::org::omg::CORBA::portable::OutputStream *); +public: // actually protected + virtual void check(jint); +private: + void resetTypes(); + static const jlong serialVersionUID = 1LL; +public: // actually protected + static ::org::omg::CORBA::TypeCode * nullType; + ::org::omg::CORBA::portable::Streamable * __attribute__((aligned(__alignof__( ::org::omg::CORBA::Any)))) has; + ::org::omg::CORBA::TypeCode * typecode; + jint xKind; +private: + ::org::omg::CORBA::ORB * orb__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuAny__ diff --git a/libjava/gnu/CORBA/gnuCodecFactory.h b/libjava/gnu/CORBA/gnuCodecFactory.h new file mode 100644 index 00000000000..51d52b3f511 --- /dev/null +++ b/libjava/gnu/CORBA/gnuCodecFactory.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuCodecFactory__ +#define __gnu_CORBA_gnuCodecFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuCodecFactory; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + namespace IOP + { + class Codec; + class Encoding; + } + } + } +} + +class gnu::CORBA::gnuCodecFactory : public ::org::omg::CORBA::LocalObject +{ + +public: + gnuCodecFactory(::org::omg::CORBA::ORB *); + virtual ::org::omg::IOP::Codec * create_codec(::org::omg::IOP::Encoding *); +private: + ::org::omg::CORBA::ORB * __attribute__((aligned(__alignof__( ::org::omg::CORBA::LocalObject)))) orb; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuCodecFactory__ diff --git a/libjava/gnu/CORBA/gnuContext.h b/libjava/gnu/CORBA/gnuContext.h new file mode 100644 index 00000000000..4d55ac54ac7 --- /dev/null +++ b/libjava/gnu/CORBA/gnuContext.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuContext__ +#define __gnu_CORBA_gnuContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuContext; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class NVList; + } + } + } +} + +class gnu::CORBA::gnuContext : public ::org::omg::CORBA::Context +{ + +public: + gnuContext(::java::lang::String *, ::org::omg::CORBA::Context *); + virtual ::java::lang::String * context_name(); + virtual ::org::omg::CORBA::Context * create_child(::java::lang::String *); + virtual void delete_values(::java::lang::String *); + virtual ::org::omg::CORBA::NVList * get_values(::java::lang::String *, jint, ::java::lang::String *); + virtual ::org::omg::CORBA::Context * parent(); + virtual void set_one_value(::java::lang::String *, ::org::omg::CORBA::Any *); + virtual void set_values(::org::omg::CORBA::NVList *); +public: // actually package-private + ::org::omg::CORBA::Context * __attribute__((aligned(__alignof__( ::org::omg::CORBA::Context)))) parent__; + ::java::util::Map * properties; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuContext__ diff --git a/libjava/gnu/CORBA/gnuContextList.h b/libjava/gnu/CORBA/gnuContextList.h new file mode 100644 index 00000000000..914d5029c2a --- /dev/null +++ b/libjava/gnu/CORBA/gnuContextList.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuContextList__ +#define __gnu_CORBA_gnuContextList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class CorbaList; + class gnuContextList; + } + } +} + +class gnu::CORBA::gnuContextList : public ::org::omg::CORBA::ContextList +{ + +public: + gnuContextList(); + virtual void add(::java::lang::String *); + virtual jint count(); + virtual ::java::lang::String * item(jint); + virtual void remove(jint); +public: // actually package-private + ::gnu::CORBA::CorbaList * __attribute__((aligned(__alignof__( ::org::omg::CORBA::ContextList)))) strings; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuContextList__ diff --git a/libjava/gnu/CORBA/gnuEnvironment.h b/libjava/gnu/CORBA/gnuEnvironment.h new file mode 100644 index 00000000000..1557180ecf2 --- /dev/null +++ b/libjava/gnu/CORBA/gnuEnvironment.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuEnvironment__ +#define __gnu_CORBA_gnuEnvironment__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuEnvironment; + } + } +} + +class gnu::CORBA::gnuEnvironment : public ::org::omg::CORBA::Environment +{ + +public: + gnuEnvironment(); + virtual void clear(); + virtual void exception(::java::lang::Exception *); + virtual ::java::lang::Exception * exception(); +public: // actually protected + ::java::lang::Exception * __attribute__((aligned(__alignof__( ::org::omg::CORBA::Environment)))) exception__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuEnvironment__ diff --git a/libjava/gnu/CORBA/gnuExceptionList.h b/libjava/gnu/CORBA/gnuExceptionList.h new file mode 100644 index 00000000000..dd1b138604b --- /dev/null +++ b/libjava/gnu/CORBA/gnuExceptionList.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuExceptionList__ +#define __gnu_CORBA_gnuExceptionList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class CorbaList; + class gnuExceptionList; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + } + } + } +} + +class gnu::CORBA::gnuExceptionList : public ::org::omg::CORBA::ExceptionList +{ + +public: + gnuExceptionList(); + virtual void add(::org::omg::CORBA::TypeCode *); + virtual jint count(); + virtual ::org::omg::CORBA::TypeCode * item(jint); + virtual void remove(jint); +public: // actually protected + ::gnu::CORBA::CorbaList * __attribute__((aligned(__alignof__( ::org::omg::CORBA::ExceptionList)))) list; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuExceptionList__ diff --git a/libjava/gnu/CORBA/gnuNVList.h b/libjava/gnu/CORBA/gnuNVList.h new file mode 100644 index 00000000000..25d5e08b6c9 --- /dev/null +++ b/libjava/gnu/CORBA/gnuNVList.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuNVList__ +#define __gnu_CORBA_gnuNVList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class CorbaList; + class gnuNVList; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class NamedValue; + } + } + } +} + +class gnu::CORBA::gnuNVList : public ::org::omg::CORBA::NVList +{ + +public: + gnuNVList(); + gnuNVList(jint); + virtual ::org::omg::CORBA::NamedValue * add(jint); + virtual ::org::omg::CORBA::NamedValue * add_item(::java::lang::String *, jint); + virtual ::org::omg::CORBA::NamedValue * add_value(::java::lang::String *, ::org::omg::CORBA::Any *, jint); + virtual void add(::org::omg::CORBA::NamedValue *); + virtual jint count(); + virtual ::org::omg::CORBA::NamedValue * item(jint); + virtual void remove(jint); +public: // actually protected + ::gnu::CORBA::CorbaList * __attribute__((aligned(__alignof__( ::org::omg::CORBA::NVList)))) list; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuNVList__ diff --git a/libjava/gnu/CORBA/gnuNamedValue.h b/libjava/gnu/CORBA/gnuNamedValue.h new file mode 100644 index 00000000000..17386a3cc82 --- /dev/null +++ b/libjava/gnu/CORBA/gnuNamedValue.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuNamedValue__ +#define __gnu_CORBA_gnuNamedValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuNamedValue; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + } + } + } +} + +class gnu::CORBA::gnuNamedValue : public ::org::omg::CORBA::NamedValue +{ + +public: + gnuNamedValue(); + virtual void setFlags(jint); + virtual void setName(::java::lang::String *); + virtual void setValue(::org::omg::CORBA::Any *); + virtual jint flags(); + virtual ::java::lang::String * name(); + virtual ::org::omg::CORBA::Any * value(); +private: + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::org::omg::CORBA::NamedValue)))) m_value; + ::java::lang::String * m_name; + jint m_flags; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuNamedValue__ diff --git a/libjava/gnu/CORBA/gnuRequest$1.h b/libjava/gnu/CORBA/gnuRequest$1.h new file mode 100644 index 00000000000..821bf514e6e --- /dev/null +++ b/libjava/gnu/CORBA/gnuRequest$1.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuRequest$1__ +#define __gnu_CORBA_gnuRequest$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuRequest; + class gnuRequest$1; + } + } +} + +class gnu::CORBA::gnuRequest$1 : public ::java::lang::Thread +{ + +public: // actually package-private + gnuRequest$1(::gnu::CORBA::gnuRequest *); +public: + void run(); +public: // actually package-private + ::gnu::CORBA::gnuRequest * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuRequest$1__ diff --git a/libjava/gnu/CORBA/gnuRequest$2.h b/libjava/gnu/CORBA/gnuRequest$2.h new file mode 100644 index 00000000000..3b1663fdee2 --- /dev/null +++ b/libjava/gnu/CORBA/gnuRequest$2.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuRequest$2__ +#define __gnu_CORBA_gnuRequest$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuRequest; + class gnuRequest$2; + } + } +} + +class gnu::CORBA::gnuRequest$2 : public ::java::lang::Thread +{ + +public: // actually package-private + gnuRequest$2(::gnu::CORBA::gnuRequest *, ::gnu::CORBA::gnuRequest *); +public: + void run(); +public: // actually package-private + ::gnu::CORBA::gnuRequest * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0; +private: + ::gnu::CORBA::gnuRequest * val$cloned; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuRequest$2__ diff --git a/libjava/gnu/CORBA/gnuRequest.h b/libjava/gnu/CORBA/gnuRequest.h new file mode 100644 index 00000000000..70ebd77b9e0 --- /dev/null +++ b/libjava/gnu/CORBA/gnuRequest.h @@ -0,0 +1,184 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuRequest__ +#define __gnu_CORBA_gnuRequest__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class BufferedCdrOutput; + class BufferredCdrInput; + } + namespace GIOP + { + class MessageHeader; + class ReplyHeader; + class RequestHeader; + } + class IOR; + class RawReply; + class StreamBasedRequest; + class Version; + class gnuNVList; + class gnuRequest; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class Environment; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Policy; + class SystemException; + class TypeCode; + } + namespace IOP + { + class ServiceContext; + class TaggedComponent; + class TaggedProfile; + } + namespace PortableInterceptor + { + class ClientRequestInfo; + class ClientRequestInterceptorOperations; + } + } + } +} + +class gnu::CORBA::gnuRequest : public ::org::omg::CORBA::Request +{ + +public: + gnuRequest(); + virtual void setIor(::gnu::CORBA::IOR *); + virtual ::gnu::CORBA::IOR * getIor(); + virtual void setORB(::org::omg::CORBA::ORB *); + virtual void setBigEndian(jboolean); + virtual void setOperation(::java::lang::String *); + virtual ::gnu::CORBA::StreamBasedRequest * getParameterStream(); + virtual ::gnu::CORBA::gnuRequest * Clone(); + virtual ::org::omg::CORBA::Any * add_in_arg(); + virtual ::org::omg::CORBA::Any * add_inout_arg(); + virtual ::org::omg::CORBA::Any * add_named_in_arg(::java::lang::String *); + virtual ::org::omg::CORBA::Any * add_named_inout_arg(::java::lang::String *); + virtual ::org::omg::CORBA::Any * add_named_out_arg(::java::lang::String *); + virtual ::org::omg::CORBA::Any * add_out_arg(); + virtual ::org::omg::CORBA::NVList * arguments(); + virtual ::org::omg::CORBA::ContextList * contexts(); + virtual ::org::omg::CORBA::Context * ctx(); + virtual void ctx(::org::omg::CORBA::Context *); + virtual ::org::omg::CORBA::Environment * env(); + virtual ::org::omg::CORBA::ExceptionList * exceptions(); + virtual void get_response(); + virtual void invoke(); + virtual ::java::lang::String * operation(); + virtual ::org::omg::CORBA::ORB * orb(); + virtual jboolean poll_response(); + virtual ::org::omg::CORBA::NamedValue * result(); + virtual ::org::omg::CORBA::Any * return_value(); + virtual void send_deferred(); + virtual void send_oneway(); + virtual void set_args(::org::omg::CORBA::NVList *); + virtual void set_context_list(::org::omg::CORBA::ContextList *); + virtual void set_environment(::org::omg::CORBA::Environment *); + virtual void set_exceptions(::org::omg::CORBA::ExceptionList *); + virtual void set_operation(::java::lang::String *); + virtual void set_result(::org::omg::CORBA::NamedValue *); + virtual void set_return_type(::org::omg::CORBA::TypeCode *); + virtual void set_target(::org::omg::CORBA::Object *); + virtual ::gnu::CORBA::RawReply * submit(); + virtual ::org::omg::CORBA::Object * target(); + virtual ::gnu::CORBA::Version * useVersion(::gnu::CORBA::Version *); + virtual void waitWhileBusy(); +private: + void p_invoke(); +public: // actually package-private + virtual void readExceptionId(::gnu::CORBA::CDR::BufferredCdrInput *); +public: // actually protected + virtual void write_parameter_buffer(::gnu::CORBA::GIOP::MessageHeader *, ::gnu::CORBA::CDR::BufferedCdrOutput *); + virtual void write_parameters(::gnu::CORBA::GIOP::MessageHeader *, ::gnu::CORBA::CDR::BufferedCdrOutput *); +public: + virtual void add_request_service_context(::org::omg::IOP::ServiceContext *, jboolean); + virtual ::org::omg::IOP::TaggedProfile * effective_profile(); + virtual ::org::omg::CORBA::Object * effective_target(); + virtual ::org::omg::IOP::TaggedComponent * get_effective_component(jint); + virtual JArray< ::org::omg::IOP::TaggedComponent * > * get_effective_components(jint); + virtual ::org::omg::CORBA::Policy * get_request_policy(jint); + virtual ::java::lang::String * received_exception_id(); + virtual ::org::omg::CORBA::Any * received_exception(); + virtual ::org::omg::CORBA::Object * forward_reference(); + virtual ::org::omg::CORBA::Any * get_slot(jint); + virtual jshort reply_status(); + virtual jint request_id(); + virtual jboolean response_expected(); + virtual jshort sync_scope(); + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint); + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint); + virtual JArray< ::java::lang::String * > * operation_context(); + virtual JArray< ::java::lang::String * > * ice_contexts(); + virtual void checkDii(); + static ::gnu::CORBA::Version * MAX_SUPPORTED; + static jint PAUSE_INITIAL; + static jint PAUSE_STEPS; + static jint PAUSE_MAX; +public: // actually package-private + ::org::omg::PortableInterceptor::ClientRequestInterceptorOperations * __attribute__((aligned(__alignof__( ::org::omg::CORBA::Request)))) m_interceptor; + ::org::omg::PortableInterceptor::ClientRequestInfo * m_info; +private: + static ::gnu::CORBA::RawReply * EMPTY; +public: // actually protected + ::org::omg::CORBA::Context * m_context; + ::org::omg::CORBA::ContextList * m_context_list; + ::org::omg::CORBA::Environment * m_environment; + ::org::omg::CORBA::ExceptionList * m_exceptions; + ::org::omg::CORBA::NamedValue * m_result; + ::java::lang::String * m_exception_id; + ::org::omg::CORBA::SystemException * m_sys_ex; + ::org::omg::CORBA::Object * m_target; + ::java::lang::String * m_operation; +public: + ::gnu::CORBA::IOR * m_forward_ior; + ::org::omg::CORBA::Object * m_forwarding_target; +public: // actually protected + jboolean complete; + jboolean oneWay; + jboolean running; + ::gnu::CORBA::gnuNVList * m_args; + ::gnu::CORBA::StreamBasedRequest * m_parameter_buffer; + JArray< ::org::omg::CORBA::Any * > * m_slots; + ::gnu::CORBA::GIOP::RequestHeader * m_rqh; + ::gnu::CORBA::GIOP::ReplyHeader * m_rph; +private: + ::gnu::CORBA::IOR * ior; + ::org::omg::CORBA::ORB * orb__; + jboolean Big_endian; +public: // actually package-private + ::gnu::CORBA::gnuRequest * redirected; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuRequest__ diff --git a/libjava/gnu/CORBA/gnuValueHolder.h b/libjava/gnu/CORBA/gnuValueHolder.h new file mode 100644 index 00000000000..d26dc33bb80 --- /dev/null +++ b/libjava/gnu/CORBA/gnuValueHolder.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_gnuValueHolder__ +#define __gnu_CORBA_gnuValueHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class gnuValueHolder; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class BoxedValueHelper; + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::CORBA::gnuValueHolder : public ::org::omg::CORBA::ValueBaseHolder +{ + +public: + gnuValueHolder(::java::io::Serializable *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); +public: // actually package-private + virtual void findHelper(); + ::org::omg::CORBA::TypeCode * __attribute__((aligned(__alignof__( ::org::omg::CORBA::ValueBaseHolder)))) type; + ::org::omg::CORBA::portable::BoxedValueHelper * helper; + jboolean helper_NA; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_gnuValueHolder__ diff --git a/libjava/gnu/CORBA/interfaces/SocketFactory.h b/libjava/gnu/CORBA/interfaces/SocketFactory.h new file mode 100644 index 00000000000..b6c1cea3307 --- /dev/null +++ b/libjava/gnu/CORBA/interfaces/SocketFactory.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_interfaces_SocketFactory__ +#define __gnu_CORBA_interfaces_SocketFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace interfaces + { + class SocketFactory; + } + } + } + namespace java + { + namespace net + { + class ServerSocket; + class Socket; + } + } +} + +class gnu::CORBA::interfaces::SocketFactory : public ::java::lang::Object +{ + +public: + virtual ::java::net::ServerSocket * createServerSocket(jint) = 0; + virtual ::java::net::Socket * createClientSocket(::java::lang::String *, jint) = 0; + static ::java::lang::String * PROPERTY; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_CORBA_interfaces_SocketFactory__ diff --git a/libjava/gnu/CORBA/typecodes/AliasTypeCode.h b/libjava/gnu/CORBA/typecodes/AliasTypeCode.h new file mode 100644 index 00000000000..1615821829c --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/AliasTypeCode.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_AliasTypeCode__ +#define __gnu_CORBA_typecodes_AliasTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class AliasTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + } + } + } +} + +class gnu::CORBA::typecodes::AliasTypeCode : public ::gnu::CORBA::typecodes::PrimitiveTypeCode +{ + +public: + AliasTypeCode(::org::omg::CORBA::TypeCode *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::omg::CORBA::TypeCode * content_type(); + virtual jboolean equal(::org::omg::CORBA::TypeCode *); + virtual jboolean equivalent(::org::omg::CORBA::TypeCode *); + virtual ::java::lang::String * id(); + virtual ::java::lang::String * name(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::CORBA::typecodes::PrimitiveTypeCode)))) id__; + ::java::lang::String * name__; + ::org::omg::CORBA::TypeCode * aliasFor; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_AliasTypeCode__ diff --git a/libjava/gnu/CORBA/typecodes/ArrayTypeCode.h b/libjava/gnu/CORBA/typecodes/ArrayTypeCode.h new file mode 100644 index 00000000000..4565632d22a --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/ArrayTypeCode.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_ArrayTypeCode__ +#define __gnu_CORBA_typecodes_ArrayTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TCKind; + class TypeCode; + } + } + } +} + +class gnu::CORBA::typecodes::ArrayTypeCode : public ::gnu::CORBA::typecodes::PrimitiveTypeCode +{ + +public: + ArrayTypeCode(::org::omg::CORBA::TCKind *); + ArrayTypeCode(::org::omg::CORBA::TCKind *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::TypeCode * content_type(); + virtual jboolean equal(::org::omg::CORBA::TypeCode *); + virtual ::java::lang::String * id(); + virtual jint length(); + virtual void setLength(jint); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::org::omg::CORBA::TypeCode * __attribute__((aligned(__alignof__( ::gnu::CORBA::typecodes::PrimitiveTypeCode)))) of; +private: + jint length__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_ArrayTypeCode__ diff --git a/libjava/gnu/CORBA/typecodes/FixedTypeCode.h b/libjava/gnu/CORBA/typecodes/FixedTypeCode.h new file mode 100644 index 00000000000..2acd5e917d4 --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/FixedTypeCode.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_FixedTypeCode__ +#define __gnu_CORBA_typecodes_FixedTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class FixedTypeCode; + } + } + } + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + } + } + } +} + +class gnu::CORBA::typecodes::FixedTypeCode : public ::gnu::CORBA::typecodes::PrimitiveTypeCode +{ + +public: + FixedTypeCode(); + FixedTypeCode(::java::math::BigDecimal *); + virtual void setDigits(jint); + virtual void setScale(jint); + static jint countDigits(::java::math::BigDecimal *); + virtual jboolean equal(::org::omg::CORBA::TypeCode *); + virtual jshort fixed_digits(); + virtual jshort fixed_scale(); +private: + static const jlong serialVersionUID = 1LL; + jshort __attribute__((aligned(__alignof__( ::gnu::CORBA::typecodes::PrimitiveTypeCode)))) digits; + jshort scale; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_FixedTypeCode__ diff --git a/libjava/gnu/CORBA/typecodes/GeneralTypeCode.h b/libjava/gnu/CORBA/typecodes/GeneralTypeCode.h new file mode 100644 index 00000000000..a522ad08794 --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/GeneralTypeCode.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_GeneralTypeCode__ +#define __gnu_CORBA_typecodes_GeneralTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class GeneralTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TCKind; + class TypeCode; + } + } + } +} + +class gnu::CORBA::typecodes::GeneralTypeCode : public ::gnu::CORBA::typecodes::PrimitiveTypeCode +{ + +public: + GeneralTypeCode(::org::omg::CORBA::TCKind *); + virtual void setConcreteBase_type(::org::omg::CORBA::TypeCode *); + virtual void setContentType(::org::omg::CORBA::TypeCode *); + virtual void setId(::java::lang::String *); + virtual void setLength(jint); + virtual void setName(::java::lang::String *); + virtual void setTypeModifier(jint); + virtual ::org::omg::CORBA::TypeCode * concrete_base_type(); + virtual ::org::omg::CORBA::TypeCode * content_type(); + virtual jboolean equal(::org::omg::CORBA::TypeCode *); + virtual jboolean equivalent(::org::omg::CORBA::TypeCode *); + virtual ::java::lang::String * id(); + virtual jint length(); + virtual ::java::lang::String * name(); + virtual jshort type_modifier(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually protected + static jint UNSET; +private: + static ::java::util::BitSet * lengthAllowed; + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::CORBA::typecodes::PrimitiveTypeCode)))) id__; + ::java::lang::String * name__; + ::org::omg::CORBA::TypeCode * concrete_base_type__; + ::org::omg::CORBA::TypeCode * content_type__; + jint len; + jint type_modifier__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_GeneralTypeCode__ diff --git a/libjava/gnu/CORBA/typecodes/PrimitiveTypeCode.h b/libjava/gnu/CORBA/typecodes/PrimitiveTypeCode.h new file mode 100644 index 00000000000..dda2b7fc83e --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/PrimitiveTypeCode.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_PrimitiveTypeCode__ +#define __gnu_CORBA_typecodes_PrimitiveTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class PrimitiveTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TCKind; + class TypeCode; + } + } + } +} + +class gnu::CORBA::typecodes::PrimitiveTypeCode : public ::org::omg::CORBA::TypeCode +{ + +public: + PrimitiveTypeCode(::org::omg::CORBA::TCKind *); + virtual ::org::omg::CORBA::TypeCode * concrete_base_type(); + virtual ::org::omg::CORBA::TypeCode * content_type(); + virtual jint default_index(); + virtual ::org::omg::CORBA::TypeCode * discriminator_type(); + virtual jboolean equal(::org::omg::CORBA::TypeCode *); + virtual jboolean equivalent(::org::omg::CORBA::TypeCode *); + virtual jshort fixed_digits(); + virtual jshort fixed_scale(); + virtual ::org::omg::CORBA::TypeCode * get_compact_typecode(); + virtual ::java::lang::String * id(); + virtual ::org::omg::CORBA::TCKind * kind(); + virtual jint length(); + virtual jint member_count(); + virtual ::org::omg::CORBA::Any * member_label(jint); + virtual ::java::lang::String * member_name(jint); + virtual ::org::omg::CORBA::TypeCode * member_type(jint); + virtual jshort member_visibility(jint); + virtual ::java::lang::String * name(); + virtual jshort type_modifier(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually protected + ::org::omg::CORBA::TCKind * __attribute__((aligned(__alignof__( ::org::omg::CORBA::TypeCode)))) kind__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_PrimitiveTypeCode__ diff --git a/libjava/gnu/CORBA/typecodes/RecordTypeCode$Field.h b/libjava/gnu/CORBA/typecodes/RecordTypeCode$Field.h new file mode 100644 index 00000000000..d5de501d0da --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/RecordTypeCode$Field.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_RecordTypeCode$Field__ +#define __gnu_CORBA_typecodes_RecordTypeCode$Field__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class RecordTypeCode$Field; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + } + } + } +} + +class gnu::CORBA::typecodes::RecordTypeCode$Field : public ::java::lang::Object +{ + +public: + RecordTypeCode$Field(); + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::java::lang::Object)))) label; + ::java::lang::String * name; + ::org::omg::CORBA::TypeCode * type; + jint visibility; + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_RecordTypeCode$Field__ diff --git a/libjava/gnu/CORBA/typecodes/RecordTypeCode.h b/libjava/gnu/CORBA/typecodes/RecordTypeCode.h new file mode 100644 index 00000000000..be711a89ea5 --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/RecordTypeCode.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_RecordTypeCode__ +#define __gnu_CORBA_typecodes_RecordTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + class CorbaList; + namespace typecodes + { + class RecordTypeCode; + class RecordTypeCode$Field; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class StructMember; + class TCKind; + class TypeCode; + class UnionMember; + class ValueMember; + } + } + } +} + +class gnu::CORBA::typecodes::RecordTypeCode : public ::gnu::CORBA::typecodes::GeneralTypeCode +{ + +public: + RecordTypeCode(::org::omg::CORBA::TCKind *); + virtual void setDefaultIndex(jint); + virtual void setDiscriminator_type(::org::omg::CORBA::TypeCode *); + virtual ::gnu::CORBA::typecodes::RecordTypeCode$Field * getField(jint); + virtual void add(::gnu::CORBA::typecodes::RecordTypeCode$Field *); + virtual void add(::org::omg::CORBA::StructMember *); + virtual void add(::org::omg::CORBA::ValueMember *); + virtual void add(::org::omg::CORBA::UnionMember *); + virtual jint default_index(); + virtual ::org::omg::CORBA::TypeCode * discriminator_type(); + virtual ::gnu::CORBA::typecodes::RecordTypeCode$Field * field(); + virtual jint member_count(); + virtual ::org::omg::CORBA::Any * member_label(jint); + virtual ::java::lang::String * member_name(jint); + virtual ::org::omg::CORBA::TypeCode * member_type(jint); + virtual jshort member_visibility(jint); +private: + static const jlong serialVersionUID = 1LL; +public: // actually protected + ::gnu::CORBA::CorbaList * __attribute__((aligned(__alignof__( ::gnu::CORBA::typecodes::GeneralTypeCode)))) members; +private: + ::org::omg::CORBA::TypeCode * discriminator_type__; + jint default_index__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_RecordTypeCode__ diff --git a/libjava/gnu/CORBA/typecodes/RecursiveTypeCode.h b/libjava/gnu/CORBA/typecodes/RecursiveTypeCode.h new file mode 100644 index 00000000000..4fcc4febadd --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/RecursiveTypeCode.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_RecursiveTypeCode__ +#define __gnu_CORBA_typecodes_RecursiveTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class RecursiveTypeCode; + } + } + } +} + +class gnu::CORBA::typecodes::RecursiveTypeCode : public ::gnu::CORBA::typecodes::PrimitiveTypeCode +{ + +public: + RecursiveTypeCode(::java::lang::String *); + virtual ::java::lang::String * id(); +private: + static const jlong serialVersionUID = 1LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::CORBA::typecodes::PrimitiveTypeCode)))) the_id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_RecursiveTypeCode__ diff --git a/libjava/gnu/CORBA/typecodes/StringTypeCode.h b/libjava/gnu/CORBA/typecodes/StringTypeCode.h new file mode 100644 index 00000000000..6513b3cdd33 --- /dev/null +++ b/libjava/gnu/CORBA/typecodes/StringTypeCode.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_CORBA_typecodes_StringTypeCode__ +#define __gnu_CORBA_typecodes_StringTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class StringTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TCKind; + } + } + } +} + +class gnu::CORBA::typecodes::StringTypeCode : public ::gnu::CORBA::typecodes::PrimitiveTypeCode +{ + +public: + StringTypeCode(::org::omg::CORBA::TCKind *); + virtual void setLength(jint); + virtual jint length(); +private: + static const jlong serialVersionUID = 1LL; + jint __attribute__((aligned(__alignof__( ::gnu::CORBA::typecodes::PrimitiveTypeCode)))) len; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_CORBA_typecodes_StringTypeCode__ diff --git a/libjava/gnu/awt/LightweightRedirector.h b/libjava/gnu/awt/LightweightRedirector.h new file mode 100644 index 00000000000..03474c0da41 --- /dev/null +++ b/libjava/gnu/awt/LightweightRedirector.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_awt_LightweightRedirector__ +#define __gnu_awt_LightweightRedirector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace awt + { + class LightweightRedirector; + } + } + namespace java + { + namespace awt + { + class AWTEvent; + class Component; + namespace event + { + class InputEvent; + class MouseEvent; + } + } + } +} + +class gnu::awt::LightweightRedirector : public ::java::lang::Object +{ + +public: + LightweightRedirector(); + virtual ::java::awt::AWTEvent * redirect(::java::awt::AWTEvent *); +public: // actually package-private + virtual ::java::awt::event::MouseEvent * redirectMouse(::java::awt::event::MouseEvent *); + virtual jint getButtonNumber(::java::awt::event::InputEvent *); + static const jint LAST_BUTTON_NUMBER = 3; + JArray< ::java::awt::Component * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) releaseTargets; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_awt_LightweightRedirector__ diff --git a/libjava/gnu/awt/j2d/AbstractGraphicsState.h b/libjava/gnu/awt/j2d/AbstractGraphicsState.h new file mode 100644 index 00000000000..973d9106a1f --- /dev/null +++ b/libjava/gnu/awt/j2d/AbstractGraphicsState.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_awt_j2d_AbstractGraphicsState__ +#define __gnu_awt_j2d_AbstractGraphicsState__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace awt + { + namespace j2d + { + class AbstractGraphicsState; + class Graphics2DImpl; + } + } + } + namespace java + { + namespace awt + { + class Color; + class Font; + class FontMetrics; + class Image; + class Rectangle; + class Shape; + namespace image + { + class ImageObserver; + } + } + } +} + +class gnu::awt::j2d::AbstractGraphicsState : public ::java::lang::Object +{ + +public: + AbstractGraphicsState(); + virtual void setFrontend(::gnu::awt::j2d::Graphics2DImpl *); + virtual void dispose(); + virtual void setColor(::java::awt::Color *) = 0; + virtual void setPaintMode() = 0; + virtual void setXORMode(::java::awt::Color *) = 0; + virtual void setFont(::java::awt::Font *) = 0; + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0; + virtual void setClip(::java::awt::Shape *) = 0; + virtual ::java::awt::Shape * getClip() = 0; + virtual ::java::awt::Rectangle * getClipBounds() = 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 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 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 fillPolygon(JArray< jint > *, JArray< jint > *, jint) = 0; + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0; + virtual void draw(::java::awt::Shape *) = 0; + virtual void fill(::java::awt::Shape *) = 0; + virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean) = 0; + virtual void drawString(::java::lang::String *, jint, jint) = 0; + virtual void drawString(::java::lang::String *, jfloat, jfloat) = 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 ::java::lang::Object * clone(); +public: // actually package-private + ::gnu::awt::j2d::Graphics2DImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) frontend; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_awt_j2d_AbstractGraphicsState__ diff --git a/libjava/gnu/awt/j2d/DirectRasterGraphics.h b/libjava/gnu/awt/j2d/DirectRasterGraphics.h new file mode 100644 index 00000000000..4cb63f7f7d3 --- /dev/null +++ b/libjava/gnu/awt/j2d/DirectRasterGraphics.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_awt_j2d_DirectRasterGraphics__ +#define __gnu_awt_j2d_DirectRasterGraphics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace awt + { + namespace j2d + { + class DirectRasterGraphics; + class MappedRaster; + } + } + } + namespace java + { + namespace awt + { + class Color; + class Font; + class FontMetrics; + class Image; + class Rectangle; + class Shape; + namespace image + { + class ImageObserver; + } + } + } +} + +class gnu::awt::j2d::DirectRasterGraphics : public ::java::lang::Object +{ + +public: + virtual void dispose() = 0; + virtual void setColor(::java::awt::Color *) = 0; + virtual void setPaintMode() = 0; + virtual void setXORMode(::java::awt::Color *) = 0; + virtual void setFont(::java::awt::Font *) = 0; + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 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 drawRect(jint, jint, jint, jint) = 0; + virtual void fillRect(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 fillPolygon(JArray< jint > *, JArray< jint > *, jint, jint, jint) = 0; + virtual void drawString(::java::lang::String *, jint, jint) = 0; + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *) = 0; + virtual ::gnu::awt::j2d::MappedRaster * mapRaster(::java::awt::Rectangle *) = 0; + virtual void unmapRaster(::gnu::awt::j2d::MappedRaster *) = 0; + virtual ::java::lang::Object * clone() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_awt_j2d_DirectRasterGraphics__ diff --git a/libjava/gnu/awt/j2d/Graphics2DImpl.h b/libjava/gnu/awt/j2d/Graphics2DImpl.h new file mode 100644 index 00000000000..c7e8a8c1da0 --- /dev/null +++ b/libjava/gnu/awt/j2d/Graphics2DImpl.h @@ -0,0 +1,157 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_awt_j2d_Graphics2DImpl__ +#define __gnu_awt_j2d_Graphics2DImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace awt + { + namespace j2d + { + class AbstractGraphicsState; + class Graphics2DImpl; + } + } + } + namespace java + { + namespace awt + { + class Color; + class Composite; + class Font; + class FontMetrics; + class Graphics; + 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 gnu::awt::j2d::Graphics2DImpl : public ::java::awt::Graphics2D +{ + +public: + Graphics2DImpl(::java::awt::GraphicsConfiguration *); + virtual void setState(::gnu::awt::j2d::AbstractGraphicsState *); + virtual ::java::lang::Object * clone(); + virtual ::java::awt::Graphics * create(); + virtual ::java::awt::Color * getColor(); + virtual void setColor(::java::awt::Color *); + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual ::java::awt::Font * getFont(); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Rectangle * getClipBounds(); + virtual void clipRect(jint, jint, jint, jint); + virtual void setClip(jint, jint, jint, jint); + virtual ::java::awt::Shape * getClip(); + virtual void setClip(::java::awt::Shape *); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual void drawLine(jint, jint, jint, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void clearRect(jint, jint, jint, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual void drawOval(jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual void dispose(); + virtual void draw(::java::awt::Shape *); + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::lang::String *, jfloat, jfloat); + virtual void fill(::java::awt::Shape *); + virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); + virtual void setPaint(::java::awt::Paint *); + virtual void setRenderingHint(::java::awt::RenderingHints$Key *, ::java::lang::Object *); + virtual ::java::lang::Object * getRenderingHint(::java::awt::RenderingHints$Key *); + virtual ::java::awt::RenderingHints * getRenderingHints(); + virtual void translate(jint, jint); + 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 transform(::java::awt::geom::AffineTransform *); + virtual void setTransform(::java::awt::geom::AffineTransform *); + virtual ::java::awt::geom::AffineTransform * getTransform(); + virtual ::java::awt::Paint * getPaint(); + virtual void setBackground(::java::awt::Color *); + virtual ::java::awt::Color * getBackground(); + virtual void clip(::java::awt::Shape *); + virtual void drawImage(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImageOp *, jint, jint); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); + virtual void drawRenderableImage(::java::awt::image::renderable::RenderableImage *, ::java::awt::geom::AffineTransform *); + virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint); + virtual void drawString(::java::text::AttributedCharacterIterator *, jfloat, jfloat); + virtual void setComposite(::java::awt::Composite *); + virtual void setStroke(::java::awt::Stroke *); + virtual void setRenderingHints(::java::util::Map *); + virtual void addRenderingHints(::java::util::Map *); + virtual ::java::awt::Composite * getComposite(); + virtual ::java::awt::Stroke * getStroke(); + virtual ::java::awt::font::FontRenderContext * getFontRenderContext(); + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); +public: // actually package-private + ::java::awt::GraphicsConfiguration * __attribute__((aligned(__alignof__( ::java::awt::Graphics2D)))) config; + ::gnu::awt::j2d::AbstractGraphicsState * state; + ::java::awt::Color * fg; + ::java::awt::Color * bg; + ::java::awt::Font * font; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_awt_j2d_Graphics2DImpl__ diff --git a/libjava/gnu/awt/j2d/IntegerGraphicsState$ScreenCoupledImage.h b/libjava/gnu/awt/j2d/IntegerGraphicsState$ScreenCoupledImage.h new file mode 100644 index 00000000000..eaa7c93a8f6 --- /dev/null +++ b/libjava/gnu/awt/j2d/IntegerGraphicsState$ScreenCoupledImage.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_awt_j2d_IntegerGraphicsState$ScreenCoupledImage__ +#define __gnu_awt_j2d_IntegerGraphicsState$ScreenCoupledImage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace awt + { + namespace j2d + { + class IntegerGraphicsState$ScreenCoupledImage; + } + } + } + namespace java + { + namespace awt + { + class GraphicsConfiguration; + } + } +} + +class gnu::awt::j2d::IntegerGraphicsState$ScreenCoupledImage : public ::java::lang::Object +{ + +public: + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_awt_j2d_IntegerGraphicsState$ScreenCoupledImage__ diff --git a/libjava/gnu/awt/j2d/IntegerGraphicsState.h b/libjava/gnu/awt/j2d/IntegerGraphicsState.h new file mode 100644 index 00000000000..9a226099355 --- /dev/null +++ b/libjava/gnu/awt/j2d/IntegerGraphicsState.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_awt_j2d_IntegerGraphicsState__ +#define __gnu_awt_j2d_IntegerGraphicsState__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace awt + { + namespace j2d + { + class DirectRasterGraphics; + class IntegerGraphicsState; + } + } + } + namespace java + { + namespace awt + { + class Color; + class Font; + class FontMetrics; + class Image; + class Rectangle; + class Shape; + namespace image + { + class ImageObserver; + } + } + } +} + +class gnu::awt::j2d::IntegerGraphicsState : public ::gnu::awt::j2d::AbstractGraphicsState +{ + +public: + IntegerGraphicsState(::gnu::awt::j2d::DirectRasterGraphics *); + virtual ::java::lang::Object * clone(); + virtual void dispose(); + virtual void setColor(::java::awt::Color *); + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual void setClip(::java::awt::Shape *); + virtual ::java::awt::Shape * getClip(); + virtual ::java::awt::Rectangle * getClipBounds(); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual void drawLine(jint, jint, jint, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void clearRect(jint, jint, jint, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual void drawOval(jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::lang::String *, jfloat, jfloat); + virtual void translate(jint, jint); + 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); +private: + void needAffineTransform(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::awt::j2d::AbstractGraphicsState)))) tx; + jint ty; + ::gnu::awt::j2d::DirectRasterGraphics * directGfx; + ::java::awt::Shape * clip; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_awt_j2d_IntegerGraphicsState__ diff --git a/libjava/gnu/awt/j2d/MappedRaster.h b/libjava/gnu/awt/j2d/MappedRaster.h new file mode 100644 index 00000000000..ab5a81e4b83 --- /dev/null +++ b/libjava/gnu/awt/j2d/MappedRaster.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_awt_j2d_MappedRaster__ +#define __gnu_awt_j2d_MappedRaster__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace awt + { + namespace j2d + { + class MappedRaster; + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ColorModel; + class WritableRaster; + } + } + } +} + +class gnu::awt::j2d::MappedRaster : public ::java::lang::Object +{ + +public: + MappedRaster(::java::awt::image::WritableRaster *, ::java::awt::image::ColorModel *); + virtual ::java::awt::image::WritableRaster * getRaster(); + virtual ::java::awt::image::ColorModel * getColorModel(); +public: // actually package-private + ::java::awt::image::WritableRaster * __attribute__((aligned(__alignof__( ::java::lang::Object)))) raster; + ::java::awt::image::ColorModel * cm; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_awt_j2d_MappedRaster__ diff --git a/libjava/gnu/classpath/Configuration.h b/libjava/gnu/classpath/Configuration.h new file mode 100644 index 00000000000..e53026bb453 --- /dev/null +++ b/libjava/gnu/classpath/Configuration.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_Configuration__ +#define __gnu_classpath_Configuration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Configuration; + } + } +} + +class gnu::classpath::Configuration : public ::java::lang::Object +{ + + Configuration(); + static ::java::lang::String * classpath_home(); + static jboolean debug(); + static ::java::lang::String * toolkit(); +public: + static ::java::lang::String * CLASSPATH_HOME; + static ::java::lang::String * CLASSPATH_VERSION; + static jboolean DEBUG; + static const jboolean INIT_LOAD_LIBRARY = 0; + static ::java::lang::String * default_awt_peer_toolkit; + static const jboolean JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_Configuration__ diff --git a/libjava/gnu/classpath/Configuration.java b/libjava/gnu/classpath/Configuration.java new file mode 100644 index 00000000000..7c829539f17 --- /dev/null +++ b/libjava/gnu/classpath/Configuration.java @@ -0,0 +1,105 @@ +/* Configuration.java -- + Copyright (C) 1998, 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 gnu.classpath; + +/** + * This file defines compile-time constants that can be accessed by + * java code. It is pre-processed by configure. + */ +public final class Configuration +{ + private Configuration() + { + } + + private static native String classpath_home(); + private static native boolean debug(); + private static native String toolkit(); + + /** + * The value of CLASSPATH_HOME is the location that the classpath + * libraries and support files where installed in. It is set according to + * the argument for --prefix given to configure and used to set the + * System property gnu.classpath.home. + */ + public static final String CLASSPATH_HOME = classpath_home(); + + /** + * The release version number of GNU Classpath. + * It is set according to the value of 'version' in the configure[.in] file + * and used to set the System property gnu.classpath.version. + */ + public static final String CLASSPATH_VERSION = "0.93"; + + /** + * The value of DEBUG is substituted according to whether the + * "--enable-debug" argument was passed to configure. Code + * which is made conditional based on the value of this flag - typically + * code that generates debugging output - will be removed by the optimizer + * in a non-debug build. + */ + public static final boolean DEBUG = debug(); + + /** + * The value of LOAD_LIBRARY is substituted according to whether the + * "--enable-load-library" or "--disable-load-library" argument was passed + * to configure. By default, configure should define this is as true. + * If set to false, loadLibrary() calls to load native function + * implementations, typically found in static initializers of classes + * which contain native functions, will be omitted. This is useful for + * runtimes which pre-link their native function implementations and do + * not require additional shared libraries to be loaded. + */ + public static final boolean INIT_LOAD_LIBRARY = false; + + /** + * Name of default AWT peer library. + */ + public static final String default_awt_peer_toolkit = toolkit(); + + /** + * Whether to automatically run the init* methods in java.lang.System + * (the default) at class initialization time or whether to have the VM + * explicitly invoke them. + * + * The default is false, meaning the VM does not explicitly run the + * initializers. + * + */ + public static final boolean JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = false; +} diff --git a/libjava/gnu/classpath/ListenerData.h b/libjava/gnu/classpath/ListenerData.h new file mode 100644 index 00000000000..03be1ce5d87 --- /dev/null +++ b/libjava/gnu/classpath/ListenerData.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_ListenerData__ +#define __gnu_classpath_ListenerData__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class ListenerData; + } + } + namespace javax + { + namespace management + { + class NotificationFilter; + class NotificationListener; + } + } +} + +class gnu::classpath::ListenerData : public ::java::lang::Object +{ + +public: + ListenerData(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual ::javax::management::NotificationListener * getListener(); + virtual ::javax::management::NotificationFilter * getFilter(); + virtual ::java::lang::Object * getPassback(); + virtual jboolean equals(::java::lang::Object *); +private: + ::javax::management::NotificationListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listener; + ::javax::management::NotificationFilter * filter; + ::java::lang::Object * passback; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_ListenerData__ diff --git a/libjava/gnu/classpath/NotImplementedException.h b/libjava/gnu/classpath/NotImplementedException.h new file mode 100644 index 00000000000..b81e112555f --- /dev/null +++ b/libjava/gnu/classpath/NotImplementedException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_NotImplementedException__ +#define __gnu_classpath_NotImplementedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class NotImplementedException; + } + } +} + +class gnu::classpath::NotImplementedException : public ::java::lang::RuntimeException +{ + + NotImplementedException(); + static const jlong serialVersionUID = 5112972057211125814LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_NotImplementedException__ diff --git a/libjava/gnu/classpath/Pointer.h b/libjava/gnu/classpath/Pointer.h new file mode 100644 index 00000000000..79d0eccc719 --- /dev/null +++ b/libjava/gnu/classpath/Pointer.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_Pointer__ +#define __gnu_classpath_Pointer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Pointer; + } + } +} + +class gnu::classpath::Pointer : public ::java::lang::Object +{ + +public: + Pointer(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_Pointer__ diff --git a/libjava/gnu/classpath/Pointer32.h b/libjava/gnu/classpath/Pointer32.h new file mode 100644 index 00000000000..d704ee02e29 --- /dev/null +++ b/libjava/gnu/classpath/Pointer32.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_Pointer32__ +#define __gnu_classpath_Pointer32__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Pointer32; + } + } +} + +class gnu::classpath::Pointer32 : public ::gnu::classpath::Pointer +{ + +public: + Pointer32(jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::classpath::Pointer)))) data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_Pointer32__ diff --git a/libjava/gnu/classpath/Pointer64.h b/libjava/gnu/classpath/Pointer64.h new file mode 100644 index 00000000000..b44950cd56a --- /dev/null +++ b/libjava/gnu/classpath/Pointer64.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_Pointer64__ +#define __gnu_classpath_Pointer64__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Pointer64; + } + } +} + +class gnu::classpath::Pointer64 : public ::gnu::classpath::Pointer +{ + +public: + Pointer64(jlong); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::gnu::classpath::Pointer)))) data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_Pointer64__ diff --git a/libjava/gnu/classpath/ServiceFactory$ServiceIterator.h b/libjava/gnu/classpath/ServiceFactory$ServiceIterator.h new file mode 100644 index 00000000000..a64ca4ff668 --- /dev/null +++ b/libjava/gnu/classpath/ServiceFactory$ServiceIterator.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_ServiceFactory$ServiceIterator__ +#define __gnu_classpath_ServiceFactory$ServiceIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class ServiceFactory$ServiceIterator; + } + } + namespace java + { + namespace net + { + class URL; + } + namespace security + { + class AccessControlContext; + } + } +} + +class gnu::classpath::ServiceFactory$ServiceIterator : public ::java::lang::Object +{ + +public: // actually package-private + ServiceFactory$ServiceIterator(::java::lang::Class *, ::java::util::Enumeration *, ::java::lang::ClassLoader *, ::java::security::AccessControlContext *); +public: + ::java::lang::Object * next(); + jboolean hasNext(); + void remove(); +private: + ::java::lang::Object * loadNextServiceProvider(); + void advanceReader(); + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) spi; + ::java::util::Enumeration * urls; + ::java::lang::ClassLoader * loader; + ::java::security::AccessControlContext * securityContext; + ::java::io::BufferedReader * reader; + ::java::net::URL * currentURL; + ::java::lang::Object * nextProvider; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_ServiceFactory$ServiceIterator__ diff --git a/libjava/gnu/classpath/ServiceFactory.h b/libjava/gnu/classpath/ServiceFactory.h new file mode 100644 index 00000000000..fddad85b14f --- /dev/null +++ b/libjava/gnu/classpath/ServiceFactory.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_ServiceFactory__ +#define __gnu_classpath_ServiceFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class ServiceFactory; + } + } +} + +class gnu::classpath::ServiceFactory : public ::java::lang::Object +{ + + ServiceFactory(); +public: + static ::java::util::Iterator * lookupProviders(::java::lang::Class *, ::java::lang::ClassLoader *); + static ::java::util::Iterator * lookupProviders(::java::lang::Class *); +public: // actually package-private + static void log(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::Object *, ::java::lang::Throwable *); +private: + static ::java::util::logging::Logger * LOGGER; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_ServiceFactory__ diff --git a/libjava/gnu/classpath/ServiceProviderLoadingAction.h b/libjava/gnu/classpath/ServiceProviderLoadingAction.h new file mode 100644 index 00000000000..d6abfe5b6fd --- /dev/null +++ b/libjava/gnu/classpath/ServiceProviderLoadingAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_ServiceProviderLoadingAction__ +#define __gnu_classpath_ServiceProviderLoadingAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class ServiceProviderLoadingAction; + } + } +} + +class gnu::classpath::ServiceProviderLoadingAction : public ::java::lang::Object +{ + +public: // actually package-private + ServiceProviderLoadingAction(::java::lang::Class *, ::java::lang::String *, ::java::lang::ClassLoader *); +public: + ::java::lang::Object * run(); +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) spi; + ::java::lang::String * providerName; + ::java::lang::ClassLoader * loader; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_ServiceProviderLoadingAction__ diff --git a/libjava/gnu/classpath/SystemProperties.h b/libjava/gnu/classpath/SystemProperties.h new file mode 100644 index 00000000000..290300af8fe --- /dev/null +++ b/libjava/gnu/classpath/SystemProperties.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_SystemProperties__ +#define __gnu_classpath_SystemProperties__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class SystemProperties; + } + } +} + +class gnu::classpath::SystemProperties : public ::java::lang::Object +{ + +public: + SystemProperties(); +private: + static void insertSystemProperties(::java::util::Properties *); +public: + 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::util::Properties * getProperties(); + static void setProperties(::java::util::Properties *); +private: + static jboolean isWordsBigEndian(); +public: + static ::java::lang::String * remove(::java::lang::String *); +private: + static ::java::util::Properties * properties; + static ::java::util::Properties * defaultProperties; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_SystemProperties__ diff --git a/libjava/gnu/classpath/SystemProperties.java b/libjava/gnu/classpath/SystemProperties.java index 001663f0b71..e5ecdf77242 100644 --- a/libjava/gnu/classpath/SystemProperties.java +++ b/libjava/gnu/classpath/SystemProperties.java @@ -1,5 +1,5 @@ /* SystemProperties.java -- Manage the System properties. - Copyright (C) 2004, 2005 Free Software Foundation + Copyright (C) 2004, 2005, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -154,4 +154,18 @@ public class SystemProperties * @return true if the system is big-endian. */ private static native boolean isWordsBigEndian(); + + /** + * Removes the supplied system property and its current value. + * If the specified property does not exist, nothing happens. + * + * @throws NullPointerException if the property name is null. + * @return the value of the removed property, or null if no + * such property exists. + */ + public static String remove(String name) + { + return (String) properties.remove(name); + } + } diff --git a/libjava/gnu/classpath/VMStackWalker.h b/libjava/gnu/classpath/VMStackWalker.h new file mode 100644 index 00000000000..bfe1845f810 --- /dev/null +++ b/libjava/gnu/classpath/VMStackWalker.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_VMStackWalker__ +#define __gnu_classpath_VMStackWalker__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class VMStackWalker; + } + namespace gcj + { + class RawData; + } + } +} + +class gnu::classpath::VMStackWalker : public ::java::lang::Object +{ + +public: + VMStackWalker(); + static JArray< ::java::lang::Class * > * getClassContext(); + static ::java::lang::Class * getCallingClass(); +private: + static ::java::lang::Class * getCallingClass(::gnu::gcj::RawData *); +public: + static ::java::lang::ClassLoader * getCallingClassLoader(); +private: + static ::java::lang::ClassLoader * getCallingClassLoader(::gnu::gcj::RawData *); +public: + static ::java::lang::ClassLoader * getClassLoader(::java::lang::Class *); + static ::java::lang::ClassLoader * firstNonNullClassLoader(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_VMStackWalker__ diff --git a/libjava/gnu/classpath/VMStackWalker.java b/libjava/gnu/classpath/VMStackWalker.java new file mode 100644 index 00000000000..0cf6ecdba6d --- /dev/null +++ b/libjava/gnu/classpath/VMStackWalker.java @@ -0,0 +1,138 @@ +/* VMStackWalker.java -- Reference implementation of VM hooks for stack access + Copyright (C) 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 gnu.classpath; + +import gnu.gcj.RawData; + +/** + * This class provides access to the classes on the Java stack + * for reflection and security purposes. + * + *

      + * This class is only available to privileged code (i.e., code loaded + * by the bootstrap loader). + * + * @author John Keiser + * @author Eric Blake + * @author Archie Cobbs + * @author Andrew Haley + * @author Gary Benson + */ +public final class VMStackWalker +{ + /** + * Get a list of all the classes currently executing methods on the + * Java stack. getClassContext()[0] is the class associated + * with the currently executing method, i.e., the method that called + * VMStackWalker.getClassContext() (possibly through + * reflection). So you may need to pop off these stack frames from + * the top of the stack: + *

        + *
      • VMStackWalker.getClassContext() + *
      • Method.invoke() + *
      + * + * @return an array of the declaring classes of each stack frame + */ + public static native Class[] getClassContext(); + + /** + * Get the class associated with the method invoking the method + * invoking this method, or null if the stack is not + * that deep (e.g., invoked via JNI invocation API). This method + * is an optimization for the expression getClassContext()[1] + * and should return the same result. + * + *

      + * When compiling to native code gcj translates calls to this + * method into calls to getCallingClass(addr), with + * addr being the address of the method calling this + * method. getCallingClass(addr) does not unwind the + * stack, so is therefore more efficient. + */ + public static native Class getCallingClass(); + + /** + * Get the class associated with the method invoking the method + * invoking this method, or null if the stack is not + * that deep (e.g., invoked via JNI invocation API). + * + * @param addr The address of the method invoking this method. + */ + private static native Class getCallingClass(RawData addr); + + /** + * Get the class loader associated with the Class returned by + * getCallingClass(), or null if no such class + * exists or it is the boot loader. This method is an optimization for the + * expression VMStackWalker.getClassLoader(getClassContext()[1]) + * and should return the same result. + * + *

      + * When compiling to native code gcj translates calls to this + * method into calls to getCallingClassLoader(addr), + * with addr being the address of the method calling + * this method. getCallingClassLoader(addr) does not + * unwind the stack, so is therefore more efficient. + */ + public static native ClassLoader getCallingClassLoader(); + + /** + * Get the class loader associated with the Class returned by + * getCallingClass(), or null if no + * such class exists or it is the boot loader. + * + * @param addr The address of the method invoking this method. + */ + private static native ClassLoader getCallingClassLoader(RawData addr); + + /** + * Retrieve the class's ClassLoader, or null if loaded + * by the bootstrap loader. I.e., this should return the same thing + * as {@link java.lang.VMClass#getClassLoader}. This duplicate version + * is here to work around access permissions. + */ + public static native ClassLoader getClassLoader(Class cl); + + /** + * Walk up the stack and return the first non-null class loader. + * If there aren't any non-null class loaders on the stack, return null. + */ + public static native ClassLoader firstNonNullClassLoader(); +} + diff --git a/libjava/gnu/classpath/debug/Component.h b/libjava/gnu/classpath/debug/Component.h new file mode 100644 index 00000000000..b6dd87e96b7 --- /dev/null +++ b/libjava/gnu/classpath/debug/Component.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_Component__ +#define __gnu_classpath_debug_Component__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class Component; + } + } + } +} + +class gnu::classpath::debug::Component : public ::java::util::logging::Level +{ + + Component(::java::lang::String *, jint); + Component(::java::lang::String *, jint, jint); +public: + static ::gnu::classpath::debug::Component * forName(::java::lang::String *); + jint startIndex(); + jint endIndex(); + static ::gnu::classpath::debug::Component * EVERYTHING; + static ::gnu::classpath::debug::Component * SSL; + static ::gnu::classpath::debug::Component * SSL_HANDSHAKE; + static ::gnu::classpath::debug::Component * SSL_RECORD_LAYER; + static ::gnu::classpath::debug::Component * SSL_KEY_EXCHANGE; + static ::gnu::classpath::debug::Component * SSL_DELEGATED_TASK; + static ::gnu::classpath::debug::Component * CRYPTO; + static ::gnu::classpath::debug::Component * X509; + static ::gnu::classpath::debug::Component * POLICY; + static ::gnu::classpath::debug::Component * IPP; +private: + jint __attribute__((aligned(__alignof__( ::java::util::logging::Level)))) startIndex__; + jint endIndex__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_Component__ diff --git a/libjava/gnu/classpath/debug/PreciseFilter.h b/libjava/gnu/classpath/debug/PreciseFilter.h new file mode 100644 index 00000000000..14fdfdb7cf1 --- /dev/null +++ b/libjava/gnu/classpath/debug/PreciseFilter.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_PreciseFilter__ +#define __gnu_classpath_debug_PreciseFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class Component; + class PreciseFilter; + } + } + } +} + +class gnu::classpath::debug::PreciseFilter : public ::java::lang::Object +{ + + PreciseFilter(); +public: + void disable(::gnu::classpath::debug::Component *); + void enable(::gnu::classpath::debug::Component *); + jboolean isEnabled(::gnu::classpath::debug::Component *); + jboolean isLoggable(::java::util::logging::LogRecord *); + static ::gnu::classpath::debug::PreciseFilter * GLOBAL; +private: + ::java::util::BitSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_PreciseFilter__ diff --git a/libjava/gnu/classpath/debug/Simple1LineFormatter.h b/libjava/gnu/classpath/debug/Simple1LineFormatter.h new file mode 100644 index 00000000000..237dfac08b9 --- /dev/null +++ b/libjava/gnu/classpath/debug/Simple1LineFormatter.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_Simple1LineFormatter__ +#define __gnu_classpath_debug_Simple1LineFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class Simple1LineFormatter; + } + } + } + namespace java + { + namespace text + { + class DateFormat; + class NumberFormat; + } + } +} + +class gnu::classpath::debug::Simple1LineFormatter : public ::java::util::logging::Formatter +{ + +public: + Simple1LineFormatter(); + virtual ::java::lang::String * format(::java::util::logging::LogRecord *); +private: + static ::java::lang::String * DAT_PATTERN; + static ::java::lang::String * THREAD_PATTERN; + static ::java::lang::String * SPACES_32; + static ::java::lang::String * SPACES_6; + static ::java::lang::String * LS; + ::java::text::DateFormat * __attribute__((aligned(__alignof__( ::java::util::logging::Formatter)))) dateFormat; + ::java::text::NumberFormat * threadFormat; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_Simple1LineFormatter__ diff --git a/libjava/gnu/classpath/debug/SystemLogger.h b/libjava/gnu/classpath/debug/SystemLogger.h new file mode 100644 index 00000000000..dc367e39107 --- /dev/null +++ b/libjava/gnu/classpath/debug/SystemLogger.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_SystemLogger__ +#define __gnu_classpath_debug_SystemLogger__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + } +} + +class gnu::classpath::debug::SystemLogger : public ::java::util::logging::Logger +{ + +public: + static ::gnu::classpath::debug::SystemLogger * getSystemLogger(); +private: + SystemLogger(); +public: + void logv(::java::util::logging::Level *, ::java::lang::String *, JArray< ::java::lang::Object * > *); + static ::gnu::classpath::debug::SystemLogger * SYSTEM; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_SystemLogger__ diff --git a/libjava/gnu/classpath/debug/TeeInputStream.h b/libjava/gnu/classpath/debug/TeeInputStream.h new file mode 100644 index 00000000000..293f0576388 --- /dev/null +++ b/libjava/gnu/classpath/debug/TeeInputStream.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_TeeInputStream__ +#define __gnu_classpath_debug_TeeInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class TeeInputStream; + } + } + } +} + +class gnu::classpath::debug::TeeInputStream : public ::java::io::InputStream +{ + +public: + TeeInputStream(::java::io::InputStream *, ::java::io::OutputStream *); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void close(); + virtual jboolean markSupported(); +private: + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) in; + ::java::io::OutputStream * out; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_TeeInputStream__ diff --git a/libjava/gnu/classpath/debug/TeeOutputStream.h b/libjava/gnu/classpath/debug/TeeOutputStream.h new file mode 100644 index 00000000000..24357808f4b --- /dev/null +++ b/libjava/gnu/classpath/debug/TeeOutputStream.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_TeeOutputStream__ +#define __gnu_classpath_debug_TeeOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class TeeOutputStream; + } + } + } +} + +class gnu::classpath::debug::TeeOutputStream : public ::java::io::OutputStream +{ + +public: + TeeOutputStream(::java::io::OutputStream *, ::java::io::OutputStream *); + virtual void write(jint); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void flush(); + virtual void close(); +private: + ::java::io::OutputStream * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) out; + ::java::io::OutputStream * sink; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_TeeOutputStream__ diff --git a/libjava/gnu/classpath/debug/TeeReader.h b/libjava/gnu/classpath/debug/TeeReader.h new file mode 100644 index 00000000000..5da674baa2d --- /dev/null +++ b/libjava/gnu/classpath/debug/TeeReader.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_TeeReader__ +#define __gnu_classpath_debug_TeeReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class TeeReader; + } + } + } +} + +class gnu::classpath::debug::TeeReader : public ::java::io::Reader +{ + +public: + TeeReader(::java::io::Reader *, ::java::io::Writer *); + virtual jint read(); + virtual jint read(JArray< jchar > *, jint, jint); + virtual void close(); + virtual jboolean markSupported(); +private: + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::io::Reader)))) in; + ::java::io::Writer * out; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_TeeReader__ diff --git a/libjava/gnu/classpath/debug/TeeWriter.h b/libjava/gnu/classpath/debug/TeeWriter.h new file mode 100644 index 00000000000..ee34cf0cd01 --- /dev/null +++ b/libjava/gnu/classpath/debug/TeeWriter.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_debug_TeeWriter__ +#define __gnu_classpath_debug_TeeWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class TeeWriter; + } + } + } +} + +class gnu::classpath::debug::TeeWriter : public ::java::io::Writer +{ + +public: + TeeWriter(::java::io::Writer *, ::java::io::Writer *); + virtual void write(jint); + virtual void write(JArray< jchar > *, jint, jint); + virtual void flush(); + virtual void close(); +private: + ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::io::Writer)))) out; + ::java::io::Writer * sink; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_debug_TeeWriter__ diff --git a/libjava/gnu/classpath/jdwp/Jdwp$1.h b/libjava/gnu/classpath/jdwp/Jdwp$1.h new file mode 100644 index 00000000000..7de29f0690c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/Jdwp$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_Jdwp$1__ +#define __gnu_classpath_jdwp_Jdwp$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class Jdwp; + class Jdwp$1; + } + } + } +} + +class gnu::classpath::jdwp::Jdwp$1 : public ::java::lang::Object +{ + +public: // actually package-private + Jdwp$1(::gnu::classpath::jdwp::Jdwp *); +public: + void run(); +public: // actually package-private + ::gnu::classpath::jdwp::Jdwp * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_Jdwp$1__ diff --git a/libjava/gnu/classpath/jdwp/Jdwp.h b/libjava/gnu/classpath/jdwp/Jdwp.h new file mode 100644 index 00000000000..0d851371f88 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/Jdwp.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_Jdwp__ +#define __gnu_classpath_jdwp_Jdwp__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class Jdwp; + namespace event + { + class Event; + class EventRequest; + } + namespace processor + { + class PacketProcessor; + } + namespace transport + { + class JdwpConnection; + } + } + } + } +} + +class gnu::classpath::jdwp::Jdwp : public ::java::lang::Thread +{ + +public: + Jdwp(); + static ::gnu::classpath::jdwp::Jdwp * getDefault(); + virtual ::java::lang::ThreadGroup * getJdwpThreadGroup(); + static jboolean suspendOnStartup(); + virtual void configure(::java::lang::String *); +private: + void _doInitialization(); +public: + virtual void shutdown(); + static void notify(::gnu::classpath::jdwp::event::Event *); + static void sendEvent(::gnu::classpath::jdwp::event::EventRequest *, ::gnu::classpath::jdwp::event::Event *); +private: + void _enforceSuspendPolicy(jbyte); +public: + virtual void subcomponentInitialized(); + virtual void run(); +private: + void _processConfigury(::java::lang::String *); +public: // actually package-private + static ::gnu::classpath::jdwp::processor::PacketProcessor * access$0(::gnu::classpath::jdwp::Jdwp *); +private: + static ::gnu::classpath::jdwp::Jdwp * _instance; +public: + static jboolean isDebugging; +private: + ::gnu::classpath::jdwp::processor::PacketProcessor * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) _packetProcessor; + ::java::lang::Thread * _ppThread; + ::java::util::HashMap * _properties; + static ::java::lang::String * _PROPERTY_SUSPEND; + ::gnu::classpath::jdwp::transport::JdwpConnection * _connection; + jboolean _shutdown; + ::java::lang::ThreadGroup * _group; + ::java::lang::Object * _initLock; + jint _initCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_Jdwp__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$ClassStatus.h b/libjava/gnu/classpath/jdwp/JdwpConstants$ClassStatus.h new file mode 100644 index 00000000000..4cc150269ee --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$ClassStatus.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$ClassStatus__ +#define __gnu_classpath_jdwp_JdwpConstants$ClassStatus__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$ClassStatus; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$ClassStatus : public ::java::lang::Object +{ + +public: + JdwpConstants$ClassStatus(); + static const jint VERIFIED = 1; + static const jint PREPARED = 2; + static const jint INITIALIZED = 4; + static const jint ERROR = 8; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$ClassStatus__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.h new file mode 100644 index 00000000000..940ada8884f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ArrayReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ArrayReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ArrayReference(); + static const jbyte CS_VALUE = 13; + static const jbyte LENGTH = 1; + static const jbyte GET_VALUES = 2; + static const jbyte SET_VALUES = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.h new file mode 100644 index 00000000000..0115eb22f80 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ArrayType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ArrayType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ArrayType(); + static const jbyte CS_VALUE = 4; + static const jbyte NEW_INSTANCE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.h new file mode 100644 index 00000000000..372555093a0 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassLoaderReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassLoaderReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ClassLoaderReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ClassLoaderReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ClassLoaderReference(); + static const jbyte CS_VALUE = 14; + static const jbyte VISIBLE_CLASSES = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassLoaderReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.h new file mode 100644 index 00000000000..73f215251ef --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassObjectReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassObjectReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ClassObjectReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ClassObjectReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ClassObjectReference(); + static const jbyte CS_VALUE = 17; + static const jbyte REFLECTED_TYPE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassObjectReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.h new file mode 100644 index 00000000000..4d905545b8b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ClassType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ClassType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ClassType(); + static const jbyte CS_VALUE = 3; + static const jbyte SUPERCLASS = 1; + static const jbyte SET_VALUES = 2; + static const jbyte INVOKE_METHOD = 3; + static const jbyte NEW_INSTANCE = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.h new file mode 100644 index 00000000000..74eba427212 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$Event__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$Event__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$Event; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$Event : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$Event(); + static const jbyte CS_VALUE = 64; + static const jbyte COMPOSITE = 100; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$Event__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.h new file mode 100644 index 00000000000..c486a61c1d7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$EventRequest__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$EventRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$EventRequest; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$EventRequest : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$EventRequest(); + static const jbyte CS_VALUE = 15; + static const jbyte SET = 1; + static const jbyte CLEAR = 2; + static const jbyte CLEAR_ALL_BREAKPOINTS = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$EventRequest__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.h new file mode 100644 index 00000000000..07949aadca5 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$Field__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$Field__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$Field; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$Field : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$Field(); + static const jbyte CS_VALUE = 8; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$Field__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.h new file mode 100644 index 00000000000..608072d09dc --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$InterfaceType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$InterfaceType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$InterfaceType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$InterfaceType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$InterfaceType(); + static const jbyte CS_VALUE = 5; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$InterfaceType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.h new file mode 100644 index 00000000000..8b406651445 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$Method__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$Method__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$Method; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$Method : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$Method(); + static const jbyte CS_VALUE = 6; + static const jbyte LINE_TABLE = 1; + static const jbyte VARIABLE_TABLE = 2; + static const jbyte BYTE_CODES = 3; + static const jbyte IS_OBSOLETE = 4; + static const jbyte VARIABLE_TABLE_WITH_GENERIC = 5; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$Method__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.h new file mode 100644 index 00000000000..3d9f5c4bdc9 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ObjectReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ObjectReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ObjectReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ObjectReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ObjectReference(); + static const jbyte CS_VALUE = 9; + static const jbyte REFERENCE_TYPE = 1; + static const jbyte GET_VALUES = 2; + static const jbyte SET_VALUES = 3; + static const jbyte MONITOR_INFO = 5; + static const jbyte INVOKE_METHOD = 6; + static const jbyte DISABLE_COLLECTION = 7; + static const jbyte ENABLE_COLLECTION = 8; + static const jbyte IS_COLLECTED = 9; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ObjectReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.h new file mode 100644 index 00000000000..dc4bd002a7c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ReferenceType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ReferenceType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ReferenceType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ReferenceType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ReferenceType(); + static const jbyte CS_VALUE = 2; + static const jbyte SIGNATURE = 1; + static const jbyte CLASS_LOADER = 2; + static const jbyte MODIFIERS = 3; + static const jbyte FIELDS = 4; + static const jbyte METHODS = 5; + static const jbyte GET_VALUES = 6; + static const jbyte SOURCE_FILE = 7; + static const jbyte NESTED_TYPES = 8; + static const jbyte STATUS = 9; + static const jbyte INTERFACES = 10; + static const jbyte CLASS_OBJECT = 11; + static const jbyte SOURCE_DEBUG_EXTENSION = 12; + static const jbyte SIGNATURE_WITH_GENERIC = 13; + static const jbyte FIELDS_WITH_GENERIC = 14; + static const jbyte METHODS_WITH_GENERIC = 15; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ReferenceType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.h new file mode 100644 index 00000000000..60f4072c655 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$StackFrame__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$StackFrame__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$StackFrame; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$StackFrame : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$StackFrame(); + static const jbyte CS_VALUE = 16; + static const jbyte GET_VALUES = 1; + static const jbyte SET_VALUES = 2; + static const jbyte THIS_OBJECT = 3; + static const jbyte POP_FRAMES = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$StackFrame__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.h new file mode 100644 index 00000000000..f795c3a8df3 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$StringReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$StringReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$StringReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$StringReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$StringReference(); + static const jbyte CS_VALUE = 10; + static const jbyte VALUE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$StringReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.h new file mode 100644 index 00000000000..3cf1f553c0c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadGroupReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadGroupReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ThreadGroupReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ThreadGroupReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ThreadGroupReference(); + static const jbyte CS_VALUE = 12; + static const jbyte NAME = 1; + static const jbyte PARENT = 2; + static const jbyte CHILDREN = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadGroupReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.h new file mode 100644 index 00000000000..603c6d1c4d5 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ThreadReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ThreadReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ThreadReference(); + static const jbyte CS_VALUE = 11; + static const jbyte NAME = 1; + static const jbyte SUSPEND = 2; + static const jbyte RESUME = 3; + static const jbyte STATUS = 4; + static const jbyte THREAD_GROUP = 5; + static const jbyte FRAMES = 6; + static const jbyte FRAME_COUNT = 7; + static const jbyte OWNED_MONITORS = 8; + static const jbyte CURRENT_CONTENDED_MONITOR = 9; + static const jbyte STOP = 10; + static const jbyte INTERRUPT = 11; + static const jbyte SUSPEND_COUNT = 12; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.h new file mode 100644 index 00000000000..a6f69331d6f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$VirtualMachine__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$VirtualMachine__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$VirtualMachine; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$VirtualMachine : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$VirtualMachine(); + static const jbyte CS_VALUE = 1; + static const jbyte VERSION = 1; + static const jbyte CLASSES_BY_SIGNATURE = 2; + static const jbyte ALL_CLASSES = 3; + static const jbyte ALL_THREADS = 4; + static const jbyte TOP_LEVEL_THREAD_GROUPS = 5; + static const jbyte DISPOSE = 6; + static const jbyte IDSIZES = 7; + static const jbyte SUSPEND = 8; + static const jbyte RESUME = 9; + static const jbyte EXIT = 10; + static const jbyte CREATE_STRING = 11; + static const jbyte CAPABILITIES = 12; + static const jbyte CLASS_PATHS = 13; + static const jbyte DISPOSE_OBJECTS = 14; + static const jbyte HOLD_EVENTS = 15; + static const jbyte RELEASE_EVENTS = 16; + static const jbyte CAPABILITIES_NEW = 17; + static const jbyte REDEFINE_CLASSES = 18; + static const jbyte SET_DEFAULT_STRATUM = 19; + static const jbyte ALL_CLASSES_WITH_GENERIC = 20; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$VirtualMachine__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet.h new file mode 100644 index 00000000000..3dc0bf1a226 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet(); + static const jint MAXIMUM = 17; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$Error.h b/libjava/gnu/classpath/jdwp/JdwpConstants$Error.h new file mode 100644 index 00000000000..138a9160b5b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$Error.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$Error__ +#define __gnu_classpath_jdwp_JdwpConstants$Error__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$Error; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$Error : public ::java::lang::Object +{ + +public: + JdwpConstants$Error(); + static const jshort NONE = 0; + static const jshort INVALID_THREAD = 10; + static const jshort INVALID_THREAD_GROUP = 11; + static const jshort INVALID_PRIORITY = 12; + static const jshort THREAD_NOT_SUSPENDED = 13; + static const jshort THREAD_SUSPENDED = 14; + static const jshort INVALID_OBJECT = 20; + static const jshort INVALID_CLASS = 21; + static const jshort CLASS_NOT_PREPARED = 22; + static const jshort INVALID_METHODID = 23; + static const jshort INVALID_LOCATION = 24; + static const jshort INVALID_FIELDID = 25; + static const jshort INVALID_FRAMEID = 30; + static const jshort NO_MORE_FRAMES = 31; + static const jshort OPAQUE_FRAME = 32; + static const jshort NOT_CURRENT_FRAME = 33; + static const jshort TYPE_MISMATCH = 34; + static const jshort INVALID_SLOT = 35; + static const jshort DUPLICATE = 40; + static const jshort NOT_FOUND = 41; + static const jshort INVALID_MONITOR = 50; + static const jshort NOT_MONITOR_OWNER = 51; + static const jshort INTERRUPT = 52; + static const jshort INVALID_CLASS_FORMAT = 60; + static const jshort CIRCULAR_CLASS_DEFINITION = 61; + static const jshort FAILS_VERIFICATION = 62; + static const jshort ADD_METHOD_NOT_IMPLEMENTED = 63; + static const jshort SCHEMA_CHANGE_NOT_IMPLEMENTED = 64; + static const jshort INVALID_TYPESTATE = 65; + static const jshort HIERARCHY_CHANGE_NOT_IMPLEMENTED = 66; + static const jshort DELETE_METHOD_NOT_IMPLEMENTED = 67; + static const jshort UNSUPPORTED_VERSION = 68; + static const jshort NAMES_DONT_MATCH = 69; + static const jshort CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 70; + static const jshort METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 71; + static const jshort NOT_IMPLEMENTED = 99; + static const jshort NULL_POINTER = 100; + static const jshort ABSENT_INFORMATION = 101; + static const jshort INVALID_EVENT_TYPE = 102; + static const jshort ILLEGAL_ARGUMENT = 103; + static const jshort OUT_OF_MEMORY = 110; + static const jshort ACCESS_DENIED = 111; + static const jshort VM_DEAD = 112; + static const jshort INTERNAL = 113; + static const jshort UNATTACHED_THREAD = 115; + static const jshort INVALID_TAG = 500; + static const jshort ALREADY_INVOKING = 502; + static const jshort INVALID_INDEX = 503; + static const jshort INVALID_LENGTH = 504; + static const jshort INVALID_STRING = 506; + static const jshort INVALID_CLASS_LOADER = 507; + static const jshort INVALID_ARRAY = 508; + static const jshort TRANSPORT_LOAD = 509; + static const jshort TRANSPORT_INIT = 510; + static const jshort NATIVE_METHOD = 511; + static const jshort INVALID_COUNT = 512; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$Error__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$EventKind.h b/libjava/gnu/classpath/jdwp/JdwpConstants$EventKind.h new file mode 100644 index 00000000000..bdb501c1b01 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$EventKind.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$EventKind__ +#define __gnu_classpath_jdwp_JdwpConstants$EventKind__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$EventKind; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$EventKind : public ::java::lang::Object +{ + +public: + JdwpConstants$EventKind(); + static const jbyte SINGLE_STEP = 1; + static const jbyte BREAKPOINT = 2; + static const jbyte FRAME_POP = 3; + static const jbyte EXCEPTION = 4; + static const jbyte USER_DEFINED = 5; + static const jbyte THREAD_START = 6; + static const jbyte THREAD_END = 7; + static const jbyte CLASS_PREPARE = 8; + static const jbyte CLASS_UNLOAD = 9; + static const jbyte CLASS_LOAD = 10; + static const jbyte FIELD_ACCESS = 20; + static const jbyte FIELD_MODIFICATION = 21; + static const jbyte EXCEPTION_CATCH = 30; + static const jbyte METHOD_ENTRY = 40; + static const jbyte METHOD_EXIT = 41; + static const jbyte VM_INIT = 90; + static const jbyte VM_DEATH = 99; + static const jbyte VM_DISCONNECTED = 100; + static const jbyte VM_START = 90; + static const jbyte THREAD_DEATH = 7; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$EventKind__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.h b/libjava/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.h new file mode 100644 index 00000000000..bcd412b9783 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$InvokeOptions__ +#define __gnu_classpath_jdwp_JdwpConstants$InvokeOptions__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$InvokeOptions; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$InvokeOptions : public ::java::lang::Object +{ + +public: + JdwpConstants$InvokeOptions(); + static const jint INVOKE_SINGLE_THREADED = 1; + static const jint INVOKE_NONVIRTUAL = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$InvokeOptions__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h b/libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h new file mode 100644 index 00000000000..f2f087a7a54 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$ModKind__ +#define __gnu_classpath_jdwp_JdwpConstants$ModKind__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$ModKind; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$ModKind : public ::java::lang::Object +{ + +public: + JdwpConstants$ModKind(); + static const jbyte COUNT = 1; + static const jbyte CONDITIONAL = 2; + static const jbyte THREAD_ONLY = 3; + static const jbyte CLASS_ONLY = 4; + static const jbyte CLASS_MATCH = 5; + static const jbyte CLASS_EXCLUDE = 6; + static const jbyte LOCATION_ONLY = 7; + static const jbyte EXCEPTION_ONLY = 8; + static const jbyte FIELD_ONLY = 9; + static const jbyte STEP = 10; + static const jbyte INSTANCE_ONLY = 11; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$ModKind__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$StepDepth.h b/libjava/gnu/classpath/jdwp/JdwpConstants$StepDepth.h new file mode 100644 index 00000000000..55d1b6227a1 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$StepDepth.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$StepDepth__ +#define __gnu_classpath_jdwp_JdwpConstants$StepDepth__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$StepDepth; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$StepDepth : public ::java::lang::Object +{ + +public: + JdwpConstants$StepDepth(); + static const jint INTO = 0; + static const jint OVER = 1; + static const jint OUT = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$StepDepth__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$StepSize.h b/libjava/gnu/classpath/jdwp/JdwpConstants$StepSize.h new file mode 100644 index 00000000000..abd3a2507d6 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$StepSize.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$StepSize__ +#define __gnu_classpath_jdwp_JdwpConstants$StepSize__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$StepSize; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$StepSize : public ::java::lang::Object +{ + +public: + JdwpConstants$StepSize(); + static const jint MIN = 0; + static const jint LINE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$StepSize__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.h b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.h new file mode 100644 index 00000000000..8facf579536 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$SuspendPolicy__ +#define __gnu_classpath_jdwp_JdwpConstants$SuspendPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$SuspendPolicy; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$SuspendPolicy : public ::java::lang::Object +{ + +public: + JdwpConstants$SuspendPolicy(); + static const jbyte NONE = 0; + static const jbyte EVENT_THREAD = 1; + static const jbyte ALL = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$SuspendPolicy__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.h b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.h new file mode 100644 index 00000000000..6c578097dfa --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$SuspendStatus__ +#define __gnu_classpath_jdwp_JdwpConstants$SuspendStatus__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$SuspendStatus; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$SuspendStatus : public ::java::lang::Object +{ + +public: + JdwpConstants$SuspendStatus(); + static const jbyte SUSPENDED = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$SuspendStatus__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h b/libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h new file mode 100644 index 00000000000..99c3df9bbaa --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$Tag__ +#define __gnu_classpath_jdwp_JdwpConstants$Tag__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$Tag; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$Tag : public ::java::lang::Object +{ + +public: + JdwpConstants$Tag(); + static const jbyte ARRAY = 91; + static const jbyte BYTE = 66; + static const jbyte CHAR = 67; + static const jbyte OBJECT = 76; + static const jbyte FLOAT = 70; + static const jbyte DOUBLE = 68; + static const jbyte INT = 73; + static const jbyte LONG = 74; + static const jbyte SHORT = 83; + static const jbyte VOID = 86; + static const jbyte BOOLEAN = 90; + static const jbyte STRING = 115; + static const jbyte THREAD = 116; + static const jbyte THREAD_GROUP = 103; + static const jbyte CLASS_LOADER = 108; + static const jbyte CLASS_OBJECT = 99; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$Tag__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h b/libjava/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h new file mode 100644 index 00000000000..411abad0c4b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$ThreadStatus__ +#define __gnu_classpath_jdwp_JdwpConstants$ThreadStatus__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$ThreadStatus; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$ThreadStatus : public ::java::lang::Object +{ + +public: + JdwpConstants$ThreadStatus(); + static const jint ZOMBIE = 0; + static const jint RUNNING = 1; + static const jint SLEEPING = 2; + static const jint MONITOR = 3; + static const jint WAIT = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$ThreadStatus__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h b/libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h new file mode 100644 index 00000000000..426d3d23c39 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$TypeTag__ +#define __gnu_classpath_jdwp_JdwpConstants$TypeTag__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$TypeTag; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$TypeTag : public ::java::lang::Object +{ + +public: + JdwpConstants$TypeTag(); + static const jbyte CLASS = 1; + static const jbyte INTERFACE = 2; + static const jbyte ARRAY = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$TypeTag__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$Version.h b/libjava/gnu/classpath/jdwp/JdwpConstants$Version.h new file mode 100644 index 00000000000..293652fab44 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$Version.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$Version__ +#define __gnu_classpath_jdwp_JdwpConstants$Version__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$Version; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$Version : public ::java::lang::Object +{ + +public: + JdwpConstants$Version(); + static const jint MAJOR = 1; + static const jint MINOR = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$Version__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants.h b/libjava/gnu/classpath/jdwp/JdwpConstants.h new file mode 100644 index 00000000000..98f0b888e1e --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants__ +#define __gnu_classpath_jdwp_JdwpConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants : public ::java::lang::Object +{ + +public: + JdwpConstants(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants__ diff --git a/libjava/gnu/classpath/jdwp/VMFrame.h b/libjava/gnu/classpath/jdwp/VMFrame.h new file mode 100644 index 00000000000..5278a192c6a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMFrame.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMFrame__ +#define __gnu_classpath_jdwp_VMFrame__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMFrame; + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::VMFrame : public ::java::lang::Object +{ + +public: + VMFrame(); + virtual ::gnu::classpath::jdwp::util::Location * getLocation(); + virtual ::java::lang::Object * getValue(jint); + virtual void setValue(jint, ::java::lang::Object *); + virtual ::java::lang::Object * getObject(); + virtual jlong getId(); + static const jint SIZE = 8; +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) obj; + ::gnu::classpath::jdwp::util::Location * loc; + jlong id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMFrame__ diff --git a/libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h b/libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h new file mode 100644 index 00000000000..f24d6b368c1 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMIdManager$IdFactory__ +#define __gnu_classpath_jdwp_VMIdManager$IdFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager$IdFactory; + namespace id + { + class ObjectId; + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::VMIdManager$IdFactory : public ::java::lang::Object +{ + + VMIdManager$IdFactory(); +public: + static ::gnu::classpath::jdwp::id::ObjectId * newObjectId(::java::lang::ref::SoftReference *); + static ::gnu::classpath::jdwp::id::ReferenceTypeId * newReferenceTypeId(::java::lang::ref::SoftReference *); +private: + static ::java::lang::Object * _idLock; + static ::java::lang::Object * _ridLock; + static jlong _lastId; + static jlong _lastRid; + static ::java::util::HashMap * _idList; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMIdManager$IdFactory__ diff --git a/libjava/gnu/classpath/jdwp/VMIdManager$ReferenceKey.h b/libjava/gnu/classpath/jdwp/VMIdManager$ReferenceKey.h new file mode 100644 index 00000000000..7acd047a6c7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMIdManager$ReferenceKey.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMIdManager$ReferenceKey__ +#define __gnu_classpath_jdwp_VMIdManager$ReferenceKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager; + class VMIdManager$ReferenceKey; + } + } + } +} + +class gnu::classpath::jdwp::VMIdManager$ReferenceKey : public ::java::lang::ref::SoftReference +{ + +public: + VMIdManager$ReferenceKey(::gnu::classpath::jdwp::VMIdManager *, ::java::lang::Object *); + VMIdManager$ReferenceKey(::gnu::classpath::jdwp::VMIdManager *, ::java::lang::Object *, ::java::lang::ref::ReferenceQueue *); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::ref::SoftReference)))) _hash; +public: // actually package-private + ::gnu::classpath::jdwp::VMIdManager * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMIdManager$ReferenceKey__ diff --git a/libjava/gnu/classpath/jdwp/VMIdManager.h b/libjava/gnu/classpath/jdwp/VMIdManager.h new file mode 100644 index 00000000000..22fc42f821c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMIdManager.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMIdManager__ +#define __gnu_classpath_jdwp_VMIdManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager; + namespace id + { + class ObjectId; + class ReferenceTypeId; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::VMIdManager : public ::java::lang::Object +{ + +public: + static ::gnu::classpath::jdwp::VMIdManager * getDefault(); +private: + VMIdManager(); + void _update(); +public: + virtual ::gnu::classpath::jdwp::id::ObjectId * getObjectId(::java::lang::Object *); + virtual ::gnu::classpath::jdwp::id::ObjectId * get(jlong); + virtual ::gnu::classpath::jdwp::id::ObjectId * readObjectId(::java::nio::ByteBuffer *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getReferenceTypeId(::java::lang::Class *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getReferenceType(jlong); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * readReferenceTypeId(::java::nio::ByteBuffer *); +private: + static ::gnu::classpath::jdwp::VMIdManager * _idm; + ::java::lang::ref::ReferenceQueue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _refQueue; + ::java::util::Hashtable * _oidTable; + ::java::util::Hashtable * _idTable; + ::java::util::Hashtable * _classTable; + ::java::util::Hashtable * _ridTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMIdManager__ diff --git a/libjava/gnu/classpath/jdwp/VMMethod.h b/libjava/gnu/classpath/jdwp/VMMethod.h new file mode 100644 index 00000000000..f1bf3d76cfd --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMMethod.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMMethod__ +#define __gnu_classpath_jdwp_VMMethod__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMMethod; + namespace util + { + class LineTable; + class VariableTable; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::VMMethod : public ::java::lang::Object +{ + +public: // actually protected + VMMethod(::java::lang::Class *, jlong); +public: + virtual jlong getId(); + virtual ::java::lang::Class * getDeclaringClass(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getSignature(); + virtual jint getModifiers(); + virtual ::gnu::classpath::jdwp::util::LineTable * getLineTable(); + virtual ::gnu::classpath::jdwp::util::VariableTable * getVariableTable(); + virtual ::java::lang::String * toString(); + virtual void writeId(::java::io::DataOutputStream *); + static ::gnu::classpath::jdwp::VMMethod * readId(::java::lang::Class *, ::java::nio::ByteBuffer *); + static const jint SIZE = 8; +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _class; + jlong _methodId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMMethod__ diff --git a/libjava/gnu/classpath/jdwp/VMVirtualMachine.h b/libjava/gnu/classpath/jdwp/VMVirtualMachine.h new file mode 100644 index 00000000000..a9a3b6df8e1 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMVirtualMachine.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMVirtualMachine__ +#define __gnu_classpath_jdwp_VMVirtualMachine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMFrame; + class VMMethod; + class VMVirtualMachine; + namespace event + { + class EventRequest; + } + namespace util + { + class MethodResult; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::VMVirtualMachine : public ::java::lang::Object +{ + +public: + VMVirtualMachine(); + static void initialize(); + static void suspendThread(::java::lang::Thread *); + static void suspendAllThreads(); + static void resumeThread(::java::lang::Thread *); + static void resumeAllThreads(); + static jint getSuspendCount(::java::lang::Thread *); + static jint getAllLoadedClassesCount(); + static ::java::util::Iterator * getAllLoadedClasses(); + static jint getClassStatus(::java::lang::Class *); + static JArray< ::gnu::classpath::jdwp::VMMethod * > * getAllClassMethods(::java::lang::Class *); + static ::gnu::classpath::jdwp::VMMethod * getClassMethod(::java::lang::Class *, jlong); + static ::java::util::ArrayList * getFrames(::java::lang::Thread *, jint, jint); + static ::gnu::classpath::jdwp::VMFrame * getFrame(::java::lang::Thread *, ::java::nio::ByteBuffer *); + static jint getFrameCount(::java::lang::Thread *); + static jint getThreadStatus(::java::lang::Thread *); + static ::java::util::ArrayList * getLoadRequests(::java::lang::ClassLoader *); + static ::gnu::classpath::jdwp::util::MethodResult * executeMethod(::java::lang::Object *, ::java::lang::Thread *, ::java::lang::Class *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *, jboolean); + static ::java::lang::String * getSourceFile(::java::lang::Class *); + static void registerEvent(::gnu::classpath::jdwp::event::EventRequest *); + static void unregisterEvent(::gnu::classpath::jdwp::event::EventRequest *); + static void clearEvents(jbyte); +private: + static ::java::util::Hashtable * _jdwp_suspend_counts; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMVirtualMachine__ diff --git a/libjava/gnu/classpath/jdwp/event/BreakpointEvent.h b/libjava/gnu/classpath/jdwp/event/BreakpointEvent.h new file mode 100644 index 00000000000..3a8bfd13fec --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/BreakpointEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_BreakpointEvent__ +#define __gnu_classpath_jdwp_event_BreakpointEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class BreakpointEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::BreakpointEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + BreakpointEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_BreakpointEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ClassPrepareEvent.h b/libjava/gnu/classpath/jdwp/event/ClassPrepareEvent.h new file mode 100644 index 00000000000..35d24ea99a4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ClassPrepareEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ClassPrepareEvent__ +#define __gnu_classpath_jdwp_event_ClassPrepareEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ClassPrepareEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ClassPrepareEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ClassPrepareEvent(::java::lang::Thread *, ::java::lang::Class *, jint); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::java::lang::Class * _class; + jint _status; +public: + static const jint STATUS_VERIFIED = 1; + static const jint STATUS_PREPARED = 2; + static const jint STATUS_INITIALIZED = 4; + static const jint STATUS_ERROR = 8; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ClassPrepareEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ClassUnloadEvent.h b/libjava/gnu/classpath/jdwp/event/ClassUnloadEvent.h new file mode 100644 index 00000000000..35447905d43 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ClassUnloadEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ClassUnloadEvent__ +#define __gnu_classpath_jdwp_event_ClassUnloadEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ClassUnloadEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ClassUnloadEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ClassUnloadEvent(::java::lang::String *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _signature; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ClassUnloadEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/Event.h b/libjava/gnu/classpath/jdwp/event/Event.h new file mode 100644 index 00000000000..19dc07847c3 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/Event.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_Event__ +#define __gnu_classpath_jdwp_event_Event__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventRequest; + } + namespace transport + { + class JdwpPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::event::Event : public ::java::lang::Object +{ + +public: + Event(jbyte); + virtual jbyte getEventKind(); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *) = 0; +public: + virtual ::java::lang::Object * getParameter(jint) = 0; + virtual ::gnu::classpath::jdwp::transport::JdwpPacket * toPacket(::java::io::DataOutputStream *, ::gnu::classpath::jdwp::event::EventRequest *); + static const jint EVENT_CLASS = 1; + static const jint EVENT_THREAD = 2; + static const jint EVENT_LOCATION = 3; + static const jint EVENT_INSTANCE = 4; + static const jint EVENT_FIELD = 5; + static const jint EVENT_EXCEPTION_CLASS = 6; + static const jint EVENT_EXCEPTION_CAUGHT = 7; +private: + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) _eventKind; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_Event__ diff --git a/libjava/gnu/classpath/jdwp/event/EventManager.h b/libjava/gnu/classpath/jdwp/event/EventManager.h new file mode 100644 index 00000000000..081371148ee --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/EventManager.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_EventManager__ +#define __gnu_classpath_jdwp_event_EventManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventManager; + class EventRequest; + } + } + } + } +} + +class gnu::classpath::jdwp::event::EventManager : public ::java::lang::Object +{ + +public: + static ::gnu::classpath::jdwp::event::EventManager * getDefault(); +private: + EventManager(); +public: + virtual ::gnu::classpath::jdwp::event::EventRequest * getEventRequest(::gnu::classpath::jdwp::event::Event *); + virtual void requestEvent(::gnu::classpath::jdwp::event::EventRequest *); + virtual void deleteRequest(jbyte, jint); + virtual void clearRequests(jbyte); + virtual ::gnu::classpath::jdwp::event::EventRequest * getRequest(jbyte, jint); + virtual ::java::util::Collection * getRequests(jbyte); +private: + static ::gnu::classpath::jdwp::event::EventManager * _instance; + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _requests; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_EventManager__ diff --git a/libjava/gnu/classpath/jdwp/event/EventRequest.h b/libjava/gnu/classpath/jdwp/event/EventRequest.h new file mode 100644 index 00000000000..3a493a7c876 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/EventRequest.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_EventRequest__ +#define __gnu_classpath_jdwp_event_EventRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventRequest; + namespace filters + { + class IEventFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::EventRequest : public ::java::lang::Object +{ + +public: + EventRequest(jbyte, jbyte); + EventRequest(jint, jbyte, jbyte); + virtual void addFilter(::gnu::classpath::jdwp::event::filters::IEventFilter *); + virtual ::java::util::Collection * getFilters(); + virtual jbyte getSuspendPolicy(); + virtual jint getId(); + virtual void setId(jint); + virtual jbyte getEventKind(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); + static const jbyte EVENT_SINGLE_STEP = 1; + static const jbyte EVENT_BREAKPOINT = 2; + static const jbyte EVENT_FRAME_POP = 3; + static const jbyte EVENT_EXCEPTION = 4; + static const jbyte EVENT_USER_DEFINED = 5; + static const jbyte EVENT_THREAD_START = 6; + static const jbyte EVENT_THREAD_END = 7; + static const jbyte EVENT_CLASS_PREPARE = 8; + static const jbyte EVENT_CLASS_UNLOAD = 9; + static const jbyte EVENT_CLASS_LOAD = 10; + static const jbyte EVENT_FIELD_ACCESS = 20; + static const jbyte EVENT_FIELD_MODIFY = 21; + static const jbyte EVENT_METHOD_ENTRY = 40; + static const jbyte EVENT_METHOD_EXIT = 41; + static const jbyte EVENT_VM_INIT = 90; + static const jbyte EVENT_VM_DEATH = 99; + static const jbyte SUSPEND_NONE = 0; + static const jbyte SUSPEND_THREAD = 1; + static const jbyte SUSPEND_ALL = 2; +private: + static jint _last_id; + static ::java::lang::Object * _idLock; + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _filters; + jint _id; + jbyte _suspendPolicy; + jbyte _kind; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_EventRequest__ diff --git a/libjava/gnu/classpath/jdwp/event/ExceptionEvent.h b/libjava/gnu/classpath/jdwp/event/ExceptionEvent.h new file mode 100644 index 00000000000..02745b63129 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ExceptionEvent.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ExceptionEvent__ +#define __gnu_classpath_jdwp_event_ExceptionEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ExceptionEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ExceptionEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ExceptionEvent(::java::lang::Throwable *, ::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Class *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); + virtual void setCatchLoc(::gnu::classpath::jdwp::util::Location *); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _instance; + ::java::lang::Throwable * _exception; + ::java::lang::Thread * _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::gnu::classpath::jdwp::util::Location * _catchLocation; + ::java::lang::Class * _klass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ExceptionEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/MethodEntryEvent.h b/libjava/gnu/classpath/jdwp/event/MethodEntryEvent.h new file mode 100644 index 00000000000..cb9c272b701 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/MethodEntryEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_MethodEntryEvent__ +#define __gnu_classpath_jdwp_event_MethodEntryEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class MethodEntryEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::MethodEntryEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + MethodEntryEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_MethodEntryEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/MethodExitEvent.h b/libjava/gnu/classpath/jdwp/event/MethodExitEvent.h new file mode 100644 index 00000000000..89b01537e9c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/MethodExitEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_MethodExitEvent__ +#define __gnu_classpath_jdwp_event_MethodExitEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class MethodExitEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::MethodExitEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + MethodExitEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_MethodExitEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/SingleStepEvent.h b/libjava/gnu/classpath/jdwp/event/SingleStepEvent.h new file mode 100644 index 00000000000..48190588836 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/SingleStepEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_SingleStepEvent__ +#define __gnu_classpath_jdwp_event_SingleStepEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class SingleStepEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::SingleStepEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + SingleStepEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_SingleStepEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h b/libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h new file mode 100644 index 00000000000..b5b964eedde --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ThreadEndEvent__ +#define __gnu_classpath_jdwp_event_ThreadEndEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ThreadEndEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ThreadEndEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ThreadEndEvent(::java::lang::Thread *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ThreadEndEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ThreadStartEvent.h b/libjava/gnu/classpath/jdwp/event/ThreadStartEvent.h new file mode 100644 index 00000000000..f4f7afd6c44 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ThreadStartEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ThreadStartEvent__ +#define __gnu_classpath_jdwp_event_ThreadStartEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ThreadStartEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ThreadStartEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ThreadStartEvent(::java::lang::Thread *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ThreadStartEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/VmDeathEvent.h b/libjava/gnu/classpath/jdwp/event/VmDeathEvent.h new file mode 100644 index 00000000000..ae0b24ec235 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/VmDeathEvent.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_VmDeathEvent__ +#define __gnu_classpath_jdwp_event_VmDeathEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class VmDeathEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::VmDeathEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + VmDeathEvent(); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_VmDeathEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/VmInitEvent.h b/libjava/gnu/classpath/jdwp/event/VmInitEvent.h new file mode 100644 index 00000000000..3a7db8811b9 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/VmInitEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_VmInitEvent__ +#define __gnu_classpath_jdwp_event_VmInitEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class VmInitEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::VmInitEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + VmInitEvent(::java::lang::Thread *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _initialThread; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_VmInitEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.h new file mode 100644 index 00000000000..7a6796417b2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ClassExcludeFilter__ +#define __gnu_classpath_jdwp_event_filters_ClassExcludeFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ClassExcludeFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ClassExcludeFilter : public ::gnu::classpath::jdwp::event::filters::ClassMatchFilter +{ + +public: + ClassExcludeFilter(::java::lang::String *); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ClassExcludeFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ClassMatchFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ClassMatchFilter.h new file mode 100644 index 00000000000..3670c26a6ee --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ClassMatchFilter.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ClassMatchFilter__ +#define __gnu_classpath_jdwp_event_filters_ClassMatchFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ClassMatchFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ClassMatchFilter : public ::java::lang::Object +{ + +public: + ClassMatchFilter(::java::lang::String *); + virtual ::java::lang::String * getPattern(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _pattern; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ClassMatchFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.h new file mode 100644 index 00000000000..6c887abeb1a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ClassOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_ClassOnlyFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ClassOnlyFilter; + } + } + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ClassOnlyFilter : public ::java::lang::Object +{ + +public: + ClassOnlyFilter(::gnu::classpath::jdwp::id::ReferenceTypeId *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getType(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ReferenceTypeId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ClassOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ConditionalFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ConditionalFilter.h new file mode 100644 index 00000000000..23c5a14a2e8 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ConditionalFilter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ConditionalFilter__ +#define __gnu_classpath_jdwp_event_filters_ConditionalFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ConditionalFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ConditionalFilter : public ::java::lang::Object +{ + +public: + ConditionalFilter(::java::lang::Object *); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ConditionalFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/CountFilter.h b/libjava/gnu/classpath/jdwp/event/filters/CountFilter.h new file mode 100644 index 00000000000..c3db4aeb8b8 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/CountFilter.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_CountFilter__ +#define __gnu_classpath_jdwp_event_filters_CountFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class CountFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::CountFilter : public ::java::lang::Object +{ + +public: + CountFilter(jint); + virtual jint getCount(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _count; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_CountFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.h new file mode 100644 index 00000000000..4a84d43ef6a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ExceptionOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_ExceptionOnlyFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ExceptionOnlyFilter; + } + } + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ExceptionOnlyFilter : public ::java::lang::Object +{ + +public: + ExceptionOnlyFilter(::gnu::classpath::jdwp::id::ReferenceTypeId *, jboolean, jboolean); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getType(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ReferenceTypeId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _refId; + jboolean _caught; + jboolean _uncaught; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ExceptionOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.h new file mode 100644 index 00000000000..2f6d577725d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_FieldOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_FieldOnlyFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class FieldOnlyFilter; + } + } + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::FieldOnlyFilter : public ::java::lang::Object +{ + +public: + FieldOnlyFilter(::gnu::classpath::jdwp::id::ReferenceTypeId *, ::gnu::classpath::jdwp::id::ReferenceTypeId *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getType(); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getField(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ReferenceTypeId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _refId; + ::gnu::classpath::jdwp::id::ReferenceTypeId * _fieldId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_FieldOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/IEventFilter.h b/libjava/gnu/classpath/jdwp/event/filters/IEventFilter.h new file mode 100644 index 00000000000..0723bad2d73 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/IEventFilter.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_IEventFilter__ +#define __gnu_classpath_jdwp_event_filters_IEventFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class IEventFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::IEventFilter : public ::java::lang::Object +{ + +public: + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_classpath_jdwp_event_filters_IEventFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.h new file mode 100644 index 00000000000..3b5aedf4b53 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_InstanceOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_InstanceOnlyFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class InstanceOnlyFilter; + } + } + namespace id + { + class ObjectId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::InstanceOnlyFilter : public ::java::lang::Object +{ + +public: + InstanceOnlyFilter(::gnu::classpath::jdwp::id::ObjectId *); + virtual ::gnu::classpath::jdwp::id::ObjectId * getInstance(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ObjectId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_InstanceOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h new file mode 100644 index 00000000000..e5e0da92cc1 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_LocationOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_LocationOnlyFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class LocationOnlyFilter; + } + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::LocationOnlyFilter : public ::java::lang::Object +{ + +public: + LocationOnlyFilter(::gnu::classpath::jdwp::util::Location *); + virtual ::gnu::classpath::jdwp::util::Location * getLocation(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::util::Location * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _location; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_LocationOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/StepFilter.h b/libjava/gnu/classpath/jdwp/event/filters/StepFilter.h new file mode 100644 index 00000000000..c434ae1421e --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/StepFilter.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_StepFilter__ +#define __gnu_classpath_jdwp_event_filters_StepFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class StepFilter; + } + } + namespace id + { + class ThreadId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::StepFilter : public ::java::lang::Object +{ + +public: + StepFilter(::gnu::classpath::jdwp::id::ThreadId *, jint, jint); + virtual ::gnu::classpath::jdwp::id::ThreadId * getThread(); + virtual jint getSize(); + virtual jint getDepth(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ThreadId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _tid; + jint _size; + jint _depth; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_StepFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.h new file mode 100644 index 00000000000..0c1a6eec402 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ThreadOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_ThreadOnlyFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ThreadOnlyFilter; + } + } + namespace id + { + class ThreadId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ThreadOnlyFilter : public ::java::lang::Object +{ + +public: + ThreadOnlyFilter(::gnu::classpath::jdwp::id::ThreadId *); + virtual ::gnu::classpath::jdwp::id::ThreadId * getThread(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ThreadId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _tid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ThreadOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidClassException.h b/libjava/gnu/classpath/jdwp/exception/InvalidClassException.h new file mode 100644 index 00000000000..fb6028f7943 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidClassException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidClassException__ +#define __gnu_classpath_jdwp_exception_InvalidClassException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidClassException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidClassException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidClassException(jlong); + InvalidClassException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidClassException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidClassLoaderException.h b/libjava/gnu/classpath/jdwp/exception/InvalidClassLoaderException.h new file mode 100644 index 00000000000..201b5db3b6f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidClassLoaderException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidClassLoaderException__ +#define __gnu_classpath_jdwp_exception_InvalidClassLoaderException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidClassLoaderException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidClassLoaderException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidClassLoaderException(jlong); + InvalidClassLoaderException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidClassLoaderException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidCountException.h b/libjava/gnu/classpath/jdwp/exception/InvalidCountException.h new file mode 100644 index 00000000000..b5bfea3d77c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidCountException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidCountException__ +#define __gnu_classpath_jdwp_exception_InvalidCountException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidCountException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidCountException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidCountException(jint); + InvalidCountException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidCountException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidEventTypeException.h b/libjava/gnu/classpath/jdwp/exception/InvalidEventTypeException.h new file mode 100644 index 00000000000..e5e7d129298 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidEventTypeException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidEventTypeException__ +#define __gnu_classpath_jdwp_exception_InvalidEventTypeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidEventTypeException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidEventTypeException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidEventTypeException(jbyte); + InvalidEventTypeException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidEventTypeException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidFieldException.h b/libjava/gnu/classpath/jdwp/exception/InvalidFieldException.h new file mode 100644 index 00000000000..31ebf4ac148 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidFieldException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidFieldException__ +#define __gnu_classpath_jdwp_exception_InvalidFieldException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidFieldException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidFieldException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidFieldException(jlong); + InvalidFieldException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidFieldException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidLocationException.h b/libjava/gnu/classpath/jdwp/exception/InvalidLocationException.h new file mode 100644 index 00000000000..8d44f50bccf --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidLocationException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidLocationException__ +#define __gnu_classpath_jdwp_exception_InvalidLocationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidLocationException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidLocationException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidLocationException(); + InvalidLocationException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidLocationException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidMethodException.h b/libjava/gnu/classpath/jdwp/exception/InvalidMethodException.h new file mode 100644 index 00000000000..c6d44ca5766 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidMethodException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidMethodException__ +#define __gnu_classpath_jdwp_exception_InvalidMethodException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidMethodException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidMethodException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidMethodException(jlong); + InvalidMethodException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidMethodException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidObjectException.h b/libjava/gnu/classpath/jdwp/exception/InvalidObjectException.h new file mode 100644 index 00000000000..20ea14f4f9e --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidObjectException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidObjectException__ +#define __gnu_classpath_jdwp_exception_InvalidObjectException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidObjectException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidObjectException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidObjectException(jlong); + InvalidObjectException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidObjectException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidStringException.h b/libjava/gnu/classpath/jdwp/exception/InvalidStringException.h new file mode 100644 index 00000000000..b31ef702bde --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidStringException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidStringException__ +#define __gnu_classpath_jdwp_exception_InvalidStringException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidStringException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidStringException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidStringException(::java::lang::String *); + InvalidStringException(jlong); + InvalidStringException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidStringException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidThreadException.h b/libjava/gnu/classpath/jdwp/exception/InvalidThreadException.h new file mode 100644 index 00000000000..72951401c2d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidThreadException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidThreadException__ +#define __gnu_classpath_jdwp_exception_InvalidThreadException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidThreadException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidThreadException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidThreadException(jlong); + InvalidThreadException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidThreadException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidThreadGroupException.h b/libjava/gnu/classpath/jdwp/exception/InvalidThreadGroupException.h new file mode 100644 index 00000000000..c95db022066 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidThreadGroupException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidThreadGroupException__ +#define __gnu_classpath_jdwp_exception_InvalidThreadGroupException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidThreadGroupException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidThreadGroupException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidThreadGroupException(jlong); + InvalidThreadGroupException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidThreadGroupException__ diff --git a/libjava/gnu/classpath/jdwp/exception/JdwpException.h b/libjava/gnu/classpath/jdwp/exception/JdwpException.h new file mode 100644 index 00000000000..04869f2e48a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/JdwpException.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_JdwpException__ +#define __gnu_classpath_jdwp_exception_JdwpException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class JdwpException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::JdwpException : public ::java::lang::Exception +{ + +public: + JdwpException(jshort, ::java::lang::Throwable *); + JdwpException(jshort, ::java::lang::String *); + virtual jshort getErrorCode(); +private: + jshort __attribute__((aligned(__alignof__( ::java::lang::Exception)))) _errorCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_JdwpException__ diff --git a/libjava/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.h b/libjava/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.h new file mode 100644 index 00000000000..035f3973853 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_JdwpIllegalArgumentException__ +#define __gnu_classpath_jdwp_exception_JdwpIllegalArgumentException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class JdwpIllegalArgumentException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::JdwpIllegalArgumentException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + JdwpIllegalArgumentException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_JdwpIllegalArgumentException__ diff --git a/libjava/gnu/classpath/jdwp/exception/JdwpInternalErrorException.h b/libjava/gnu/classpath/jdwp/exception/JdwpInternalErrorException.h new file mode 100644 index 00000000000..6829e26e6c4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/JdwpInternalErrorException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_JdwpInternalErrorException__ +#define __gnu_classpath_jdwp_exception_JdwpInternalErrorException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class JdwpInternalErrorException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::JdwpInternalErrorException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + JdwpInternalErrorException(::java::lang::Throwable *); + JdwpInternalErrorException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_JdwpInternalErrorException__ diff --git a/libjava/gnu/classpath/jdwp/exception/NativeMethodException.h b/libjava/gnu/classpath/jdwp/exception/NativeMethodException.h new file mode 100644 index 00000000000..4f7a55c1f3c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/NativeMethodException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_NativeMethodException__ +#define __gnu_classpath_jdwp_exception_NativeMethodException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class NativeMethodException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::NativeMethodException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + NativeMethodException(jlong); + NativeMethodException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_NativeMethodException__ diff --git a/libjava/gnu/classpath/jdwp/exception/NotImplementedException.h b/libjava/gnu/classpath/jdwp/exception/NotImplementedException.h new file mode 100644 index 00000000000..4a99592fcc2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/NotImplementedException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_NotImplementedException__ +#define __gnu_classpath_jdwp_exception_NotImplementedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class NotImplementedException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::NotImplementedException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + NotImplementedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_NotImplementedException__ diff --git a/libjava/gnu/classpath/jdwp/exception/VmDeadException.h b/libjava/gnu/classpath/jdwp/exception/VmDeadException.h new file mode 100644 index 00000000000..616f735b557 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/VmDeadException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_VmDeadException__ +#define __gnu_classpath_jdwp_exception_VmDeadException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class VmDeadException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::VmDeadException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + VmDeadException(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_VmDeadException__ diff --git a/libjava/gnu/classpath/jdwp/id/ArrayId.h b/libjava/gnu/classpath/jdwp/id/ArrayId.h new file mode 100644 index 00000000000..7e971e0bd6e --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ArrayId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ArrayId__ +#define __gnu_classpath_jdwp_id_ArrayId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ArrayId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ArrayId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ArrayId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ArrayId__ diff --git a/libjava/gnu/classpath/jdwp/id/ArrayReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/ArrayReferenceTypeId.h new file mode 100644 index 00000000000..e52b1098fb5 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ArrayReferenceTypeId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ArrayReferenceTypeId__ +#define __gnu_classpath_jdwp_id_ArrayReferenceTypeId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ArrayReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ArrayReferenceTypeId : public ::gnu::classpath::jdwp::id::ReferenceTypeId +{ + +public: + ArrayReferenceTypeId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ArrayReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/ClassLoaderId.h b/libjava/gnu/classpath/jdwp/id/ClassLoaderId.h new file mode 100644 index 00000000000..16210026457 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ClassLoaderId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ClassLoaderId__ +#define __gnu_classpath_jdwp_id_ClassLoaderId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ClassLoaderId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ClassLoaderId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ClassLoaderId(); + virtual ::java::lang::ClassLoader * getClassLoader(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ClassLoaderId__ diff --git a/libjava/gnu/classpath/jdwp/id/ClassObjectId.h b/libjava/gnu/classpath/jdwp/id/ClassObjectId.h new file mode 100644 index 00000000000..5f628a46535 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ClassObjectId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ClassObjectId__ +#define __gnu_classpath_jdwp_id_ClassObjectId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ClassObjectId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ClassObjectId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ClassObjectId(); + virtual ::java::lang::Class * getClassObject(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ClassObjectId__ diff --git a/libjava/gnu/classpath/jdwp/id/ClassReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/ClassReferenceTypeId.h new file mode 100644 index 00000000000..f159722e388 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ClassReferenceTypeId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ClassReferenceTypeId__ +#define __gnu_classpath_jdwp_id_ClassReferenceTypeId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ClassReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ClassReferenceTypeId : public ::gnu::classpath::jdwp::id::ReferenceTypeId +{ + +public: + ClassReferenceTypeId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ClassReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.h new file mode 100644 index 00000000000..e1f2a9179d7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_InterfaceReferenceTypeId__ +#define __gnu_classpath_jdwp_id_InterfaceReferenceTypeId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class InterfaceReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::InterfaceReferenceTypeId : public ::gnu::classpath::jdwp::id::ReferenceTypeId +{ + +public: + InterfaceReferenceTypeId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_InterfaceReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/JdwpId.h b/libjava/gnu/classpath/jdwp/id/JdwpId.h new file mode 100644 index 00000000000..67e8c2c5323 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/JdwpId.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_JdwpId__ +#define __gnu_classpath_jdwp_id_JdwpId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class JdwpId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::JdwpId : public ::java::lang::Object +{ + +public: + JdwpId(jbyte); + virtual void setId(jlong); + virtual jlong getId(); + virtual ::java::lang::ref::SoftReference * getReference(); + virtual void setReference(::java::lang::ref::SoftReference *); + virtual jboolean equals(::gnu::classpath::jdwp::id::JdwpId *); + virtual void write(::java::io::DataOutputStream *) = 0; + virtual void writeTagged(::java::io::DataOutputStream *); + static const jint SIZE = 8; +public: // actually protected + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) _id; +private: + jbyte _tag; +public: // actually protected + ::java::lang::ref::SoftReference * _reference; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_JdwpId__ diff --git a/libjava/gnu/classpath/jdwp/id/ObjectId.h b/libjava/gnu/classpath/jdwp/id/ObjectId.h new file mode 100644 index 00000000000..724d92103a5 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ObjectId.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ObjectId__ +#define __gnu_classpath_jdwp_id_ObjectId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ObjectId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ObjectId : public ::gnu::classpath::jdwp::id::JdwpId +{ + +public: + ObjectId(); + ObjectId(jbyte); + virtual ::java::lang::Object * getObject(); + virtual void write(::java::io::DataOutputStream *); + virtual void disableCollection(); + virtual void enableCollection(); + static ::java::lang::Class * typeClass; +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::id::JdwpId)))) _handle; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ObjectId__ diff --git a/libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h new file mode 100644 index 00000000000..0d8a884814d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ReferenceTypeId__ +#define __gnu_classpath_jdwp_id_ReferenceTypeId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ReferenceTypeId : public ::gnu::classpath::jdwp::id::JdwpId +{ + +public: + ReferenceTypeId(jbyte); + virtual ::java::lang::Class * getType(); + virtual void write(::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/StringId.h b/libjava/gnu/classpath/jdwp/id/StringId.h new file mode 100644 index 00000000000..901df280933 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/StringId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_StringId__ +#define __gnu_classpath_jdwp_id_StringId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class StringId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::StringId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + StringId(); + virtual ::java::lang::String * getString(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_StringId__ diff --git a/libjava/gnu/classpath/jdwp/id/ThreadGroupId.h b/libjava/gnu/classpath/jdwp/id/ThreadGroupId.h new file mode 100644 index 00000000000..3f6b8f9e4eb --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ThreadGroupId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ThreadGroupId__ +#define __gnu_classpath_jdwp_id_ThreadGroupId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ThreadGroupId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ThreadGroupId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ThreadGroupId(); + virtual ::java::lang::ThreadGroup * getThreadGroup(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ThreadGroupId__ diff --git a/libjava/gnu/classpath/jdwp/id/ThreadId.h b/libjava/gnu/classpath/jdwp/id/ThreadId.h new file mode 100644 index 00000000000..ed625920507 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ThreadId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ThreadId__ +#define __gnu_classpath_jdwp_id_ThreadId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ThreadId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ThreadId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ThreadId(); + virtual ::java::lang::Thread * getThread(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ThreadId__ diff --git a/libjava/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.h new file mode 100644 index 00000000000..4bf187cda8f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ArrayReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ArrayReferenceCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ArrayReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ArrayReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ArrayReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeLength(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ArrayReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.h new file mode 100644 index 00000000000..6d7864aa4f9 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ArrayTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_ArrayTypeCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ArrayTypeCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ArrayTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ArrayTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + virtual void executeNewInstance(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ArrayTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.h new file mode 100644 index 00000000000..3395a0eedef --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ClassLoaderReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ClassLoaderReferenceCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ClassLoaderReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ClassLoaderReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ClassLoaderReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + virtual void executeVisibleClasses(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ClassLoaderReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.h new file mode 100644 index 00000000000..67b4583a78d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ClassObjectReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ClassObjectReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ClassObjectReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + virtual void executeReflectedType(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ClassTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ClassTypeCommandSet.h new file mode 100644 index 00000000000..6967d32d747 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ClassTypeCommandSet.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ClassTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_ClassTypeCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ClassTypeCommandSet; + } + namespace util + { + class MethodResult; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ClassTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ClassTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeSuperclass(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInvokeMethod(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeNewInstance(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + ::gnu::classpath::jdwp::util::MethodResult * invokeMethod(::java::nio::ByteBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ClassTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/CommandSet.h b/libjava/gnu/classpath/jdwp/processor/CommandSet.h new file mode 100644 index 00000000000..6833202dba2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/CommandSet.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_CommandSet__ +#define __gnu_classpath_jdwp_processor_CommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager; + namespace processor + { + class CommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::CommandSet : public ::java::lang::Object +{ + +public: + CommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte) = 0; +public: // actually protected + ::gnu::classpath::jdwp::VMIdManager * __attribute__((aligned(__alignof__( ::java::lang::Object)))) idMan; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_CommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/EventRequestCommandSet.h b/libjava/gnu/classpath/jdwp/processor/EventRequestCommandSet.h new file mode 100644 index 00000000000..8a86b7bc983 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/EventRequestCommandSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_EventRequestCommandSet__ +#define __gnu_classpath_jdwp_processor_EventRequestCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class EventRequestCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::EventRequestCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + EventRequestCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeSet(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClear(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClearAllBreakpoints(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_EventRequestCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/FieldCommandSet.h b/libjava/gnu/classpath/jdwp/processor/FieldCommandSet.h new file mode 100644 index 00000000000..443cede87be --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/FieldCommandSet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_FieldCommandSet__ +#define __gnu_classpath_jdwp_processor_FieldCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class FieldCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::FieldCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + FieldCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_FieldCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.h new file mode 100644 index 00000000000..2348e7966ba --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_InterfaceTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_InterfaceTypeCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class InterfaceTypeCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::InterfaceTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + InterfaceTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_InterfaceTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/MethodCommandSet.h b/libjava/gnu/classpath/jdwp/processor/MethodCommandSet.h new file mode 100644 index 00000000000..3dc3a67fa9b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/MethodCommandSet.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_MethodCommandSet__ +#define __gnu_classpath_jdwp_processor_MethodCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class MethodCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::MethodCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + MethodCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeLineTable(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeVariableTable(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeByteCodes(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeIsObsolete(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeVariableTableWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_MethodCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.h new file mode 100644 index 00000000000..74a7aaa2406 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ObjectReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ObjectReferenceCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ObjectReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ObjectReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ObjectReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeReferenceType(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeMonitorInfo(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInvokeMethod(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeDisableCollection(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeEnableCollection(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeIsCollected(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ObjectReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/PacketProcessor.h b/libjava/gnu/classpath/jdwp/processor/PacketProcessor.h new file mode 100644 index 00000000000..d2e5057e362 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/PacketProcessor.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_PacketProcessor__ +#define __gnu_classpath_jdwp_processor_PacketProcessor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class CommandSet; + class PacketProcessor; + } + namespace transport + { + class JdwpConnection; + } + } + } + } +} + +class gnu::classpath::jdwp::processor::PacketProcessor : public ::java::lang::Object +{ + +public: + PacketProcessor(::gnu::classpath::jdwp::transport::JdwpConnection *); + virtual ::java::lang::Object * run(); + virtual void shutdown(); +private: + void _processOnePacket(); + ::gnu::classpath::jdwp::transport::JdwpConnection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _connection; + jboolean _shutdown; + JArray< ::gnu::classpath::jdwp::processor::CommandSet * > * _sets; + ::java::io::ByteArrayOutputStream * _outputBytes; + ::java::io::DataOutputStream * _os; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_PacketProcessor__ diff --git a/libjava/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.h new file mode 100644 index 00000000000..056a5ca9c05 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ReferenceTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_ReferenceTypeCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ReferenceTypeCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ReferenceTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ReferenceTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeSignature(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassLoader(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeModifiers(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFields(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeMethods(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSourceFile(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeNestedTypes(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeStatus(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInterfaces(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassObject(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSourceDebugExtension(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSignatureWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFieldWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeMethodsWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ReferenceTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/StackFrameCommandSet.h b/libjava/gnu/classpath/jdwp/processor/StackFrameCommandSet.h new file mode 100644 index 00000000000..be634561094 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/StackFrameCommandSet.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_StackFrameCommandSet__ +#define __gnu_classpath_jdwp_processor_StackFrameCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class StackFrameCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::StackFrameCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + StackFrameCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeThisObject(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executePopFrames(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_StackFrameCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/StringReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/StringReferenceCommandSet.h new file mode 100644 index 00000000000..4904cbc0705 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/StringReferenceCommandSet.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_StringReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_StringReferenceCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class StringReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::StringReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + StringReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeValue(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_StringReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.h new file mode 100644 index 00000000000..b7040d44d08 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ThreadGroupReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ThreadGroupReferenceCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ThreadGroupReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ThreadGroupReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ThreadGroupReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeName(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeParent(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeChildren(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ThreadGroupReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.h new file mode 100644 index 00000000000..c3248e91323 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ThreadReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ThreadReferenceCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ThreadReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ThreadReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ThreadReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeName(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSuspend(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeResume(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeStatus(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeThreadGroup(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFrames(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFrameCount(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeOwnedMonitors(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCurrentContendedMonitor(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeStop(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInterrupt(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSuspendCount(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ThreadReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.h b/libjava/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.h new file mode 100644 index 00000000000..c2eaf87873d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_VirtualMachineCommandSet__ +#define __gnu_classpath_jdwp_processor_VirtualMachineCommandSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class VirtualMachineCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::VirtualMachineCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + VirtualMachineCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeVersion(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassesBySignature(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeAllClasses(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeAllThreads(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeTopLevelThreadGroups(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeDispose(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeIDsizes(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSuspend(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeResume(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeExit(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCreateString(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCapabilities(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassPaths(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeDisposeObjects(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeHoldEvents(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeReleaseEvents(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCapabilitiesNew(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeRedefineClasses(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetDefaultStratum(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeAllClassesWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + ::java::lang::ThreadGroup * getRootThreadGroup(::java::lang::ThreadGroup *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_VirtualMachineCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/transport/ITransport.h b/libjava/gnu/classpath/jdwp/transport/ITransport.h new file mode 100644 index 00000000000..572b61517c2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/ITransport.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_ITransport__ +#define __gnu_classpath_jdwp_transport_ITransport__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class ITransport; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::ITransport : public ::java::lang::Object +{ + +public: + virtual void configure(::java::util::HashMap *) = 0; + virtual void initialize() = 0; + virtual void shutdown() = 0; + virtual ::java::io::InputStream * getInputStream() = 0; + virtual ::java::io::OutputStream * getOutputStream() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_classpath_jdwp_transport_ITransport__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpCommandPacket.h b/libjava/gnu/classpath/jdwp/transport/JdwpCommandPacket.h new file mode 100644 index 00000000000..6d67ad48c52 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpCommandPacket.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpCommandPacket__ +#define __gnu_classpath_jdwp_transport_JdwpCommandPacket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class JdwpCommandPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpCommandPacket : public ::gnu::classpath::jdwp::transport::JdwpPacket +{ + +public: + JdwpCommandPacket(); + JdwpCommandPacket(jbyte, jbyte); + virtual jint getLength(); + virtual jbyte getCommandSet(); + virtual void setCommandSet(jbyte); + virtual jbyte getCommand(); + virtual void setCommand(jbyte); +public: // actually protected + virtual jint myFromBytes(JArray< jbyte > *, jint); + virtual void myWrite(::java::io::DataOutputStream *); + jbyte __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::transport::JdwpPacket)))) _commandSet; + jbyte _command; +private: + static const jint MINIMUM_LENGTH = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpCommandPacket__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpConnection.h b/libjava/gnu/classpath/jdwp/transport/JdwpConnection.h new file mode 100644 index 00000000000..aa6a0272a6f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpConnection.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpConnection__ +#define __gnu_classpath_jdwp_transport_JdwpConnection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventRequest; + } + namespace transport + { + class ITransport; + class JdwpConnection; + class JdwpPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpConnection : public ::java::lang::Thread +{ + +public: + JdwpConnection(::java::lang::ThreadGroup *, ::gnu::classpath::jdwp::transport::ITransport *); + virtual void initialize(); +private: + void _doHandshake(); +public: + virtual void run(); +private: + void _readOnePacket(); +public: + virtual ::gnu::classpath::jdwp::transport::JdwpPacket * getPacket(); + virtual void sendPacket(::gnu::classpath::jdwp::transport::JdwpPacket *); + virtual void sendEvent(::gnu::classpath::jdwp::event::EventRequest *, ::gnu::classpath::jdwp::event::Event *); + virtual void shutdown(); +private: + static JArray< jbyte > * _HANDSHAKE; + ::gnu::classpath::jdwp::transport::ITransport * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) _transport; + ::java::util::ArrayList * _commandQueue; + jboolean _shutdown; + ::java::io::DataInputStream * _inStream; + ::java::io::DataOutputStream * _outStream; + ::java::io::ByteArrayOutputStream * _bytes; + ::java::io::DataOutputStream * _doStream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpConnection__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpPacket.h b/libjava/gnu/classpath/jdwp/transport/JdwpPacket.h new file mode 100644 index 00000000000..bace85265bd --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpPacket.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpPacket__ +#define __gnu_classpath_jdwp_transport_JdwpPacket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class JdwpPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpPacket : public ::java::lang::Object +{ + +public: + JdwpPacket(); + JdwpPacket(::gnu::classpath::jdwp::transport::JdwpPacket *); + virtual jint getId(); + virtual void setId(jint); + virtual jbyte getFlags(); + virtual void setFlags(jbyte); + virtual JArray< jbyte > * getData(); + virtual void setData(JArray< jbyte > *); + virtual jint getLength(); +public: // actually protected + virtual jint myFromBytes(JArray< jbyte > *, jint) = 0; +public: + static ::gnu::classpath::jdwp::transport::JdwpPacket * fromBytes(JArray< jbyte > *); +public: // actually protected + virtual void myWrite(::java::io::DataOutputStream *) = 0; +public: + virtual void write(::java::io::DataOutputStream *); +public: // actually protected + static jint _last_id; + static const jint JDWP_FLAG_REPLY = 128; + static const jint MINIMUM_SIZE = 9; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _id; + jbyte _flags; + JArray< jbyte > * _data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpPacket__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpReplyPacket.h b/libjava/gnu/classpath/jdwp/transport/JdwpReplyPacket.h new file mode 100644 index 00000000000..0235334683a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpReplyPacket.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpReplyPacket__ +#define __gnu_classpath_jdwp_transport_JdwpReplyPacket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class JdwpPacket; + class JdwpReplyPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpReplyPacket : public ::gnu::classpath::jdwp::transport::JdwpPacket +{ + +public: + JdwpReplyPacket(); + JdwpReplyPacket(::gnu::classpath::jdwp::transport::JdwpPacket *, jshort); + JdwpReplyPacket(::gnu::classpath::jdwp::transport::JdwpPacket *); + virtual jint getLength(); + virtual jshort getErrorCode(); + virtual void setErrorCode(jshort); +public: // actually protected + virtual jint myFromBytes(JArray< jbyte > *, jint); + virtual void myWrite(::java::io::DataOutputStream *); + jshort __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::transport::JdwpPacket)))) _errorCode; +private: + static const jint MINIMUM_LENGTH = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpReplyPacket__ diff --git a/libjava/gnu/classpath/jdwp/transport/SocketTransport.h b/libjava/gnu/classpath/jdwp/transport/SocketTransport.h new file mode 100644 index 00000000000..b5fe5c327cd --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/SocketTransport.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_SocketTransport__ +#define __gnu_classpath_jdwp_transport_SocketTransport__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class SocketTransport; + } + } + } + } + namespace java + { + namespace net + { + class Socket; + } + } +} + +class gnu::classpath::jdwp::transport::SocketTransport : public ::java::lang::Object +{ + +public: // actually package-private + SocketTransport(); +public: + virtual void configure(::java::util::HashMap *); + virtual void initialize(); + virtual void shutdown(); + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::io::OutputStream * getOutputStream(); + static ::java::lang::String * NAME; +private: + static ::java::lang::String * _PROPERTY_ADDRESS; + static ::java::lang::String * _PROPERTY_SERVER; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _port; + ::java::lang::String * _host; + jboolean _server; + ::java::net::Socket * _socket; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_SocketTransport__ diff --git a/libjava/gnu/classpath/jdwp/transport/TransportException.h b/libjava/gnu/classpath/jdwp/transport/TransportException.h new file mode 100644 index 00000000000..18c405ceb0c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/TransportException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_TransportException__ +#define __gnu_classpath_jdwp_transport_TransportException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class TransportException; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::TransportException : public ::java::lang::Exception +{ + +public: + TransportException(::java::lang::String *); + TransportException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_TransportException__ diff --git a/libjava/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.h b/libjava/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.h new file mode 100644 index 00000000000..4900baa669c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_TransportFactory$TransportMethod__ +#define __gnu_classpath_jdwp_transport_TransportFactory$TransportMethod__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class TransportFactory$TransportMethod; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::TransportFactory$TransportMethod : public ::java::lang::Object +{ + +public: + TransportFactory$TransportMethod(::java::lang::String *, ::java::lang::Class *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::Class * clazz; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_TransportFactory$TransportMethod__ diff --git a/libjava/gnu/classpath/jdwp/transport/TransportFactory.h b/libjava/gnu/classpath/jdwp/transport/TransportFactory.h new file mode 100644 index 00000000000..e3e01986b6f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/TransportFactory.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_TransportFactory__ +#define __gnu_classpath_jdwp_transport_TransportFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class ITransport; + class TransportFactory; + class TransportFactory$TransportMethod; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::TransportFactory : public ::java::lang::Object +{ + +public: + TransportFactory(); + static ::gnu::classpath::jdwp::transport::ITransport * newInstance(::java::util::HashMap *); +private: + static ::java::lang::String * _TRANSPORT_PROPERTY; + static JArray< ::gnu::classpath::jdwp::transport::TransportFactory$TransportMethod * > * _transportMethods; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_TransportFactory__ diff --git a/libjava/gnu/classpath/jdwp/util/JdwpString.h b/libjava/gnu/classpath/jdwp/util/JdwpString.h new file mode 100644 index 00000000000..0845ca8ce6c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/JdwpString.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_JdwpString__ +#define __gnu_classpath_jdwp_util_JdwpString__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class JdwpString; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::util::JdwpString : public ::java::lang::Object +{ + +public: + JdwpString(); + static void writeString(::java::io::DataOutputStream *, ::java::lang::String *); + static ::java::lang::String * readString(::java::nio::ByteBuffer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_JdwpString__ diff --git a/libjava/gnu/classpath/jdwp/util/LineTable.h b/libjava/gnu/classpath/jdwp/util/LineTable.h new file mode 100644 index 00000000000..6ca678c3a16 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/LineTable.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_LineTable__ +#define __gnu_classpath_jdwp_util_LineTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class LineTable; + } + } + } + } +} + +class gnu::classpath::jdwp::util::LineTable : public ::java::lang::Object +{ + +public: + LineTable(jlong, jlong, JArray< jint > *, JArray< jlong > *); + virtual void write(::java::io::DataOutputStream *); +private: + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) start; + jlong end; + JArray< jint > * lineNum; + JArray< jlong > * lineCI; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_LineTable__ diff --git a/libjava/gnu/classpath/jdwp/util/Location.h b/libjava/gnu/classpath/jdwp/util/Location.h new file mode 100644 index 00000000000..4b742748250 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/Location.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_Location__ +#define __gnu_classpath_jdwp_util_Location__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMMethod; + namespace util + { + class Location; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::util::Location : public ::java::lang::Object +{ + +public: + Location(::gnu::classpath::jdwp::VMMethod *, jlong); + Location(::java::nio::ByteBuffer *); + virtual void write(::java::io::DataOutputStream *); + static ::gnu::classpath::jdwp::util::Location * getEmptyLocation(); + virtual ::gnu::classpath::jdwp::VMMethod * getMethod(); + virtual jlong getIndex(); + virtual ::java::lang::String * toString(); +private: + ::gnu::classpath::jdwp::VMMethod * __attribute__((aligned(__alignof__( ::java::lang::Object)))) method; + jlong index; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_Location__ diff --git a/libjava/gnu/classpath/jdwp/util/MethodResult.h b/libjava/gnu/classpath/jdwp/util/MethodResult.h new file mode 100644 index 00000000000..c83d2c105a9 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/MethodResult.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_MethodResult__ +#define __gnu_classpath_jdwp_util_MethodResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class MethodResult; + } + } + } + } +} + +class gnu::classpath::jdwp::util::MethodResult : public ::java::lang::Object +{ + +public: + MethodResult(); + virtual ::java::lang::Object * getReturnedValue(); + virtual void setReturnedValue(::java::lang::Object *); + virtual ::java::lang::Exception * getThrownException(); + virtual void setThrownException(::java::lang::Exception *); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) returnedValue; + ::java::lang::Exception * thrownException; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_MethodResult__ diff --git a/libjava/gnu/classpath/jdwp/util/Signature.h b/libjava/gnu/classpath/jdwp/util/Signature.h new file mode 100644 index 00000000000..4ec84ce100a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/Signature.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_Signature__ +#define __gnu_classpath_jdwp_util_Signature__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class Signature; + } + } + } + } +} + +class gnu::classpath::jdwp::util::Signature : public ::java::lang::Object +{ + +public: + Signature(); + static ::java::lang::String * computeClassSignature(::java::lang::Class *); + static ::java::lang::String * computeFieldSignature(::java::lang::reflect::Field *); + static ::java::lang::String * computeMethodSignature(::java::lang::reflect::Method *); +private: + static ::java::lang::String * _computeSignature(::java::lang::Class *, JArray< ::java::lang::Class * > *); + static void _addToSignature(::java::lang::StringBuffer *, ::java::lang::Class *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_Signature__ diff --git a/libjava/gnu/classpath/jdwp/util/Value.h b/libjava/gnu/classpath/jdwp/util/Value.h new file mode 100644 index 00000000000..01dda3fa878 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/Value.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_Value__ +#define __gnu_classpath_jdwp_util_Value__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class Value; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::util::Value : public ::java::lang::Object +{ + +public: + Value(); + static void writeUntaggedValue(::java::io::DataOutputStream *, ::java::lang::Object *); + static void writeTaggedValue(::java::io::DataOutputStream *, ::java::lang::Object *); +private: + static void writeValue(::java::io::DataOutputStream *, ::java::lang::Object *, jboolean); +public: + static ::java::lang::Object * getObj(::java::nio::ByteBuffer *); + static ::java::lang::Object * getUntaggedObj(::java::nio::ByteBuffer *, ::java::lang::Class *); + static ::java::lang::Object * getUntaggedObj(::java::nio::ByteBuffer *, jbyte); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_Value__ diff --git a/libjava/gnu/classpath/jdwp/util/VariableTable.h b/libjava/gnu/classpath/jdwp/util/VariableTable.h new file mode 100644 index 00000000000..05b0477fed7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/VariableTable.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_VariableTable__ +#define __gnu_classpath_jdwp_util_VariableTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class VariableTable; + } + } + } + } +} + +class gnu::classpath::jdwp::util::VariableTable : public ::java::lang::Object +{ + +public: + VariableTable(jint, jint, JArray< jlong > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< jint > *, JArray< jint > *); + virtual void write(::java::io::DataOutputStream *); +private: + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) argCnt; + jlong slots; + JArray< jlong > * lineCI; + JArray< jint > * slot; + JArray< jint > * lengths; + JArray< ::java::lang::String * > * sigs; + JArray< ::java::lang::String * > * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_VariableTable__ diff --git a/libjava/gnu/classpath/natConfiguration.cc b/libjava/gnu/classpath/natConfiguration.cc new file mode 100644 index 00000000000..7e1593cd6e5 --- /dev/null +++ b/libjava/gnu/classpath/natConfiguration.cc @@ -0,0 +1,39 @@ +// natConfiguration.cc - native code for configuration. + +/* 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 +#include + +#include +#include + +#include + +jstring +gnu::classpath::Configuration::classpath_home() +{ + return JvNewStringLatin1(LIBGCJ_PREFIX); +} + +jboolean +gnu::classpath::Configuration::debug() +{ +#ifdef DEBUG + return true; +#else + return false; +#endif +} + +jstring +gnu::classpath::Configuration::toolkit() +{ + return JvNewStringLatin1(AWT_TOOLKIT); +} diff --git a/libjava/gnu/classpath/natSystemProperties.cc b/libjava/gnu/classpath/natSystemProperties.cc index 8196ea33f9f..089a14e5b4e 100644 --- a/libjava/gnu/classpath/natSystemProperties.cc +++ b/libjava/gnu/classpath/natSystemProperties.cc @@ -142,7 +142,7 @@ PrependVersionedLibdir (::java::lang::String* libpath) } void -gnu::classpath::SystemProperties::insertSystemProperties (java::util::Properties *newprops) +gnu::classpath::SystemProperties::insertSystemProperties (::java::util::Properties *newprops) { // A convenience define. #define SET(Prop,Val) \ @@ -156,7 +156,7 @@ gnu::classpath::SystemProperties::insertSystemProperties (java::util::Properties SET ("java.runtime.version", JV_VERSION); SET ("java.vendor", "Free Software Foundation, Inc."); SET ("java.vendor.url", "http://gcc.gnu.org/java/"); - SET ("java.class.version", "48.0"); + SET ("java.class.version", "49.0"); SET ("java.vm.specification.version", "1.0"); SET ("java.vm.specification.name", "Java(tm) Virtual Machine Specification"); SET ("java.vm.specification.vendor", "Sun Microsystems Inc."); diff --git a/libjava/gnu/classpath/natVMStackWalker.cc b/libjava/gnu/classpath/natVMStackWalker.cc new file mode 100644 index 00000000000..07ec48c030a --- /dev/null +++ b/libjava/gnu/classpath/natVMStackWalker.cc @@ -0,0 +1,80 @@ +// natVMStackWalker.cc + +/* 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 +#include + +#include +#include +#include +#include +#include +#include + +JArray * +gnu::classpath::VMStackWalker::getClassContext(void) +{ + return _Jv_StackTrace::GetStackWalkerStack (); +} + +jclass +gnu::classpath::VMStackWalker::getCallingClass(void) +{ + return _Jv_StackTrace::GetStackWalkerCallingClass (); +} + +jclass +gnu::classpath::VMStackWalker::getCallingClass(::gnu::gcj::RawData *pc) +{ + void *f = _Unwind_FindEnclosingFunction (pc); + + // FIXME: it might well be a good idea to cache pc values here in + // order to avoid repeated invocations of + // _Unwind_FindEnclosingFunction, which is quite expensive. On the + // other hand, which not simply write a caching version of + // _Unwind_FindEnclosingFunction itself? That would probably be + // worthwhile. + + _Jv_StackTrace::UpdateNCodeMap (); + jclass klass = (jclass) _Jv_StackTrace::ncodeMap->get ((jobject) f); + + // If the caller is a compiled frame and the caller of the caller + // is an interpreted frame then klass will be null and we need to + // unwind the stack. + if (klass == NULL) + klass = _Jv_StackTrace::GetStackWalkerCallingClass (); + + return klass; +} + +::java::lang::ClassLoader * +gnu::classpath::VMStackWalker::getClassLoader(::java::lang::Class *c) +{ + return c->getClassLoaderInternal (); +} + +::java::lang::ClassLoader * +gnu::classpath::VMStackWalker::getCallingClassLoader(void) +{ + return + _Jv_StackTrace::GetStackWalkerCallingClass ()->getClassLoaderInternal (); +} + +::java::lang::ClassLoader * +gnu::classpath::VMStackWalker::getCallingClassLoader(::gnu::gcj::RawData *pc) +{ + return getCallingClass (pc)->getClassLoaderInternal (); +} + +::java::lang::ClassLoader * +gnu::classpath::VMStackWalker::firstNonNullClassLoader(void) +{ + return _Jv_StackTrace::GetStackWalkerFirstNonNullLoader (); +} diff --git a/libjava/gnu/gcj/Core.h b/libjava/gnu/gcj/Core.h new file mode 100644 index 00000000000..ba28bf11da3 --- /dev/null +++ b/libjava/gnu/gcj/Core.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_Core__ +#define __gnu_gcj_Core__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class Core; + class RawData; + } + } +} + +class gnu::gcj::Core : public ::java::lang::Object +{ + +public: + static ::gnu::gcj::Core * create(::java::lang::String *); + static ::gnu::gcj::Core * find(::java::lang::String *); +public: // actually package-private + Core(); +public: + ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ptr; + jint length; + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_Core__ diff --git a/libjava/gnu/gcj/RawData.h b/libjava/gnu/gcj/RawData.h new file mode 100644 index 00000000000..8cb1188d7aa --- /dev/null +++ b/libjava/gnu/gcj/RawData.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_RawData__ +#define __gnu_gcj_RawData__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawData; + } + } +} + +class gnu::gcj::RawData : public ::java::lang::Object +{ + + RawData(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_RawData__ diff --git a/libjava/gnu/gcj/RawDataManaged.h b/libjava/gnu/gcj/RawDataManaged.h new file mode 100644 index 00000000000..cb9673e2618 --- /dev/null +++ b/libjava/gnu/gcj/RawDataManaged.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_RawDataManaged__ +#define __gnu_gcj_RawDataManaged__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawDataManaged; + } + } +} + +class gnu::gcj::RawDataManaged : public ::java::lang::Object +{ + + RawDataManaged(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_RawDataManaged__ diff --git a/libjava/gnu/gcj/convert/BytesToCharsetAdaptor.h b/libjava/gnu/gcj/convert/BytesToCharsetAdaptor.h new file mode 100644 index 00000000000..f9d4a8830e8 --- /dev/null +++ b/libjava/gnu/gcj/convert/BytesToCharsetAdaptor.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_BytesToCharsetAdaptor__ +#define __gnu_gcj_convert_BytesToCharsetAdaptor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class BytesToCharsetAdaptor; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + namespace charset + { + class Charset; + class CharsetDecoder; + } + } + } +} + +class gnu::gcj::convert::BytesToCharsetAdaptor : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + BytesToCharsetAdaptor(::java::nio::charset::Charset *); + BytesToCharsetAdaptor(::java::nio::charset::CharsetDecoder *); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); + virtual void done(); +private: + ::java::nio::charset::CharsetDecoder * __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) decoder; + ::java::nio::ByteBuffer * inBuf; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_BytesToCharsetAdaptor__ diff --git a/libjava/gnu/gcj/convert/BytesToUnicode.h b/libjava/gnu/gcj/convert/BytesToUnicode.h new file mode 100644 index 00000000000..15ff3ec55b9 --- /dev/null +++ b/libjava/gnu/gcj/convert/BytesToUnicode.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_BytesToUnicode__ +#define __gnu_gcj_convert_BytesToUnicode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class BytesToUnicode; + } + } + } +} + +class gnu::gcj::convert::BytesToUnicode : public ::gnu::gcj::convert::IOConverter +{ + +public: + BytesToUnicode(); + virtual ::java::lang::String * getName() = 0; + static ::gnu::gcj::convert::BytesToUnicode * getDefaultDecoder(); + static ::gnu::gcj::convert::BytesToUnicode * getDecoder(::java::lang::String *); + virtual void setInput(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jchar > *, jint, jint) = 0; + virtual void done(); + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::gcj::convert::IOConverter)))) inbuffer; + jint inpos; + jint inlength; +public: // actually package-private + static ::java::lang::String * defaultEncoding; +private: + static const jint CACHE_SIZE = 4; + static JArray< ::gnu::gcj::convert::BytesToUnicode * > * decoderCache; + static jint currCachePos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_BytesToUnicode__ diff --git a/libjava/gnu/gcj/convert/CharsetToBytesAdaptor.h b/libjava/gnu/gcj/convert/CharsetToBytesAdaptor.h new file mode 100644 index 00000000000..4115ef4907d --- /dev/null +++ b/libjava/gnu/gcj/convert/CharsetToBytesAdaptor.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_CharsetToBytesAdaptor__ +#define __gnu_gcj_convert_CharsetToBytesAdaptor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class CharsetToBytesAdaptor; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CharsetEncoder; + } + } + } +} + +class gnu::gcj::convert::CharsetToBytesAdaptor : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + CharsetToBytesAdaptor(::java::nio::charset::Charset *); + CharsetToBytesAdaptor(::java::nio::charset::CharsetEncoder *); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); + virtual jint write(::java::lang::String *, jint, jint, jchar); +private: + void write(::java::nio::CharBuffer *); +public: + virtual jboolean havePendingBytes(); + virtual void setFinished(); + virtual void done(); +private: + ::java::nio::charset::CharsetEncoder * __attribute__((aligned(__alignof__( ::gnu::gcj::convert::UnicodeToBytes)))) encoder; + ::java::nio::ByteBuffer * outBuf; + jboolean closedEncoder; + jboolean hasBytes; + jboolean finished; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_CharsetToBytesAdaptor__ diff --git a/libjava/gnu/gcj/convert/Convert.h b/libjava/gnu/gcj/convert/Convert.h new file mode 100644 index 00000000000..8a77702240e --- /dev/null +++ b/libjava/gnu/gcj/convert/Convert.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Convert__ +#define __gnu_gcj_convert_Convert__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Convert; + } + } + } +} + +class gnu::gcj::convert::Convert : public ::java::lang::Object +{ + +public: + Convert(); +public: // actually package-private + static void error(::java::lang::String *); + static void help(); + static void version(); + static void missing(::java::lang::String *); +public: + static void main(JArray< ::java::lang::String * > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Convert__ diff --git a/libjava/gnu/gcj/convert/IOConverter.h b/libjava/gnu/gcj/convert/IOConverter.h new file mode 100644 index 00000000000..66548598bc1 --- /dev/null +++ b/libjava/gnu/gcj/convert/IOConverter.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_IOConverter__ +#define __gnu_gcj_convert_IOConverter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class IOConverter; + } + } + } +} + +class gnu::gcj::convert::IOConverter : public ::java::lang::Object +{ + +public: + IOConverter(); +private: + static jboolean iconv_init(); +public: // actually protected + static ::java::lang::String * canonicalize(::java::lang::String *); +private: + static ::java::util::Hashtable * hash; +public: // actually protected + static jboolean iconv_byte_swap; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_IOConverter__ diff --git a/libjava/gnu/gcj/convert/Input_8859_1.h b/libjava/gnu/gcj/convert/Input_8859_1.h new file mode 100644 index 00000000000..eccb4b34c13 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_8859_1.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_8859_1__ +#define __gnu_gcj_convert_Input_8859_1__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_8859_1; + } + } + } +} + +class gnu::gcj::convert::Input_8859_1 : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_8859_1(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_8859_1__ diff --git a/libjava/gnu/gcj/convert/Input_ASCII.h b/libjava/gnu/gcj/convert/Input_ASCII.h new file mode 100644 index 00000000000..fcc8c65a367 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_ASCII.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_ASCII__ +#define __gnu_gcj_convert_Input_ASCII__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_ASCII; + } + } + } +} + +class gnu::gcj::convert::Input_ASCII : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_ASCII(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_ASCII__ diff --git a/libjava/gnu/gcj/convert/Input_EUCJIS.h b/libjava/gnu/gcj/convert/Input_EUCJIS.h new file mode 100644 index 00000000000..3a93c52db51 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_EUCJIS.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_EUCJIS__ +#define __gnu_gcj_convert_Input_EUCJIS__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_EUCJIS; + } + } + } +} + +class gnu::gcj::convert::Input_EUCJIS : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_EUCJIS(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) codeset; + jint first_byte; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_EUCJIS__ diff --git a/libjava/gnu/gcj/convert/Input_JavaSrc.h b/libjava/gnu/gcj/convert/Input_JavaSrc.h new file mode 100644 index 00000000000..4509cf64a1e --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_JavaSrc.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_JavaSrc__ +#define __gnu_gcj_convert_Input_JavaSrc__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_JavaSrc; + } + } + } +} + +class gnu::gcj::convert::Input_JavaSrc : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_JavaSrc(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) state; + jint value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_JavaSrc__ diff --git a/libjava/gnu/gcj/convert/Input_SJIS.h b/libjava/gnu/gcj/convert/Input_SJIS.h new file mode 100644 index 00000000000..d2cacbe4388 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_SJIS.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_SJIS__ +#define __gnu_gcj_convert_Input_SJIS__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_SJIS; + } + } + } +} + +class gnu::gcj::convert::Input_SJIS : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_SJIS(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) first_byte; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_SJIS__ diff --git a/libjava/gnu/gcj/convert/Input_UTF8.h b/libjava/gnu/gcj/convert/Input_UTF8.h new file mode 100644 index 00000000000..347513bda8f --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_UTF8.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_UTF8__ +#define __gnu_gcj_convert_Input_UTF8__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_UTF8; + } + } + } +} + +class gnu::gcj::convert::Input_UTF8 : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_UTF8(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) partial; + jint partial_bytes_expected; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_UTF8__ diff --git a/libjava/gnu/gcj/convert/Input_UnicodeBig.h b/libjava/gnu/gcj/convert/Input_UnicodeBig.h new file mode 100644 index 00000000000..ec834edecf8 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_UnicodeBig.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_UnicodeBig__ +#define __gnu_gcj_convert_Input_UnicodeBig__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_UnicodeBig; + } + } + } +} + +class gnu::gcj::convert::Input_UnicodeBig : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_UnicodeBig(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); +public: // actually package-private + jchar __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) partial; + jint partial_count; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_UnicodeBig__ diff --git a/libjava/gnu/gcj/convert/Input_UnicodeLittle.h b/libjava/gnu/gcj/convert/Input_UnicodeLittle.h new file mode 100644 index 00000000000..ddc3c0620bd --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_UnicodeLittle.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_UnicodeLittle__ +#define __gnu_gcj_convert_Input_UnicodeLittle__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Input_UnicodeLittle; + } + } + } +} + +class gnu::gcj::convert::Input_UnicodeLittle : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_UnicodeLittle(); + virtual ::java::lang::String * getName(); + virtual jint read(JArray< jchar > *, jint, jint); +public: // actually package-private + jchar __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) partial; + jint partial_count; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_UnicodeLittle__ diff --git a/libjava/gnu/gcj/convert/Input_iconv.h b/libjava/gnu/gcj/convert/Input_iconv.h new file mode 100644 index 00000000000..7fd8893f133 --- /dev/null +++ b/libjava/gnu/gcj/convert/Input_iconv.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Input_iconv__ +#define __gnu_gcj_convert_Input_iconv__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawData; + namespace convert + { + class Input_iconv; + } + } + } +} + +class gnu::gcj::convert::Input_iconv : public ::gnu::gcj::convert::BytesToUnicode +{ + +public: + Input_iconv(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual void finalize(); +private: + void init(::java::lang::String *); +public: + virtual jint read(JArray< jchar > *, jint, jint); + virtual void done(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::gcj::convert::BytesToUnicode)))) encoding; + ::gnu::gcj::RawData * handle; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Input_iconv__ diff --git a/libjava/gnu/gcj/convert/Output_8859_1.h b/libjava/gnu/gcj/convert/Output_8859_1.h new file mode 100644 index 00000000000..8dcd92d4548 --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_8859_1.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_8859_1__ +#define __gnu_gcj_convert_Output_8859_1__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Output_8859_1; + } + } + } +} + +class gnu::gcj::convert::Output_8859_1 : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_8859_1(); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); + virtual jint write(::java::lang::String *, jint, jint, JArray< jchar > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_8859_1__ diff --git a/libjava/gnu/gcj/convert/Output_ASCII.h b/libjava/gnu/gcj/convert/Output_ASCII.h new file mode 100644 index 00000000000..3dc551cbcb6 --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_ASCII.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_ASCII__ +#define __gnu_gcj_convert_Output_ASCII__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Output_ASCII; + } + } + } +} + +class gnu::gcj::convert::Output_ASCII : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_ASCII(); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); + virtual jint write(::java::lang::String *, jint, jint, JArray< jchar > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_ASCII__ diff --git a/libjava/gnu/gcj/convert/Output_EUCJIS.h b/libjava/gnu/gcj/convert/Output_EUCJIS.h new file mode 100644 index 00000000000..f1d925857fe --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_EUCJIS.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_EUCJIS__ +#define __gnu_gcj_convert_Output_EUCJIS__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Output_EUCJIS; + } + } + } +} + +class gnu::gcj::convert::Output_EUCJIS : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_EUCJIS(); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); + virtual jint write(::java::lang::String *, jint, jint, JArray< jchar > *); + virtual jboolean havePendingBytes(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::gcj::convert::UnicodeToBytes)))) pending1; + jint pending2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_EUCJIS__ diff --git a/libjava/gnu/gcj/convert/Output_JavaSrc.h b/libjava/gnu/gcj/convert/Output_JavaSrc.h new file mode 100644 index 00000000000..8cea3739017 --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_JavaSrc.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_JavaSrc__ +#define __gnu_gcj_convert_Output_JavaSrc__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Output_JavaSrc; + } + } + } +} + +class gnu::gcj::convert::Output_JavaSrc : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_JavaSrc(); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::gcj::convert::UnicodeToBytes)))) todo; + jint pending_char; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_JavaSrc__ diff --git a/libjava/gnu/gcj/convert/Output_SJIS.h b/libjava/gnu/gcj/convert/Output_SJIS.h new file mode 100644 index 00000000000..5175d201631 --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_SJIS.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_SJIS__ +#define __gnu_gcj_convert_Output_SJIS__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Output_SJIS; + } + } + } +} + +class gnu::gcj::convert::Output_SJIS : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_SJIS(); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); + virtual jint write(::java::lang::String *, jint, jint, JArray< jchar > *); + virtual jboolean havePendingBytes(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::gcj::convert::UnicodeToBytes)))) pending; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_SJIS__ diff --git a/libjava/gnu/gcj/convert/Output_UTF8.h b/libjava/gnu/gcj/convert/Output_UTF8.h new file mode 100644 index 00000000000..167b62dba7e --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_UTF8.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_UTF8__ +#define __gnu_gcj_convert_Output_UTF8__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Output_UTF8; + } + } + } +} + +class gnu::gcj::convert::Output_UTF8 : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_UTF8(); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); + virtual jboolean havePendingBytes(); + jboolean __attribute__((aligned(__alignof__( ::gnu::gcj::convert::UnicodeToBytes)))) standardUTF8; +public: // actually package-private + jchar hi_part; + jint value; + jint bytes_todo; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_UTF8__ diff --git a/libjava/gnu/gcj/convert/Output_UnicodeLittleUnmarked.h b/libjava/gnu/gcj/convert/Output_UnicodeLittleUnmarked.h new file mode 100644 index 00000000000..747846bd0a9 --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_UnicodeLittleUnmarked.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_UnicodeLittleUnmarked__ +#define __gnu_gcj_convert_Output_UnicodeLittleUnmarked__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class Output_UnicodeLittleUnmarked; + } + } + } +} + +class gnu::gcj::convert::Output_UnicodeLittleUnmarked : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_UnicodeLittleUnmarked(); + virtual ::java::lang::String * getName(); + virtual jint write(JArray< jchar > *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_UnicodeLittleUnmarked__ diff --git a/libjava/gnu/gcj/convert/Output_iconv.h b/libjava/gnu/gcj/convert/Output_iconv.h new file mode 100644 index 00000000000..a06f96b0d9f --- /dev/null +++ b/libjava/gnu/gcj/convert/Output_iconv.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_Output_iconv__ +#define __gnu_gcj_convert_Output_iconv__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawData; + namespace convert + { + class Output_iconv; + } + } + } +} + +class gnu::gcj::convert::Output_iconv : public ::gnu::gcj::convert::UnicodeToBytes +{ + +public: + Output_iconv(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual void finalize(); +private: + void init(::java::lang::String *); +public: + virtual jint write(JArray< jchar > *, jint, jint); + virtual void done(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::gcj::convert::UnicodeToBytes)))) encoding; + ::gnu::gcj::RawData * handle; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_Output_iconv__ diff --git a/libjava/gnu/gcj/convert/UnicodeToBytes.h b/libjava/gnu/gcj/convert/UnicodeToBytes.h new file mode 100644 index 00000000000..ea3a38ca507 --- /dev/null +++ b/libjava/gnu/gcj/convert/UnicodeToBytes.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_convert_UnicodeToBytes__ +#define __gnu_gcj_convert_UnicodeToBytes__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace convert + { + class UnicodeToBytes; + } + } + } +} + +class gnu::gcj::convert::UnicodeToBytes : public ::gnu::gcj::convert::IOConverter +{ + +public: + UnicodeToBytes(); + virtual ::java::lang::String * getName() = 0; + static ::gnu::gcj::convert::UnicodeToBytes * getDefaultEncoder(); + static ::gnu::gcj::convert::UnicodeToBytes * getEncoder(::java::lang::String *); + virtual void setOutput(JArray< jbyte > *, jint); + virtual jint write(JArray< jchar > *, jint, jint) = 0; + virtual jint write(::java::lang::String *, jint, jint, JArray< jchar > *); + virtual jboolean havePendingBytes(); + virtual void setFinished(); + virtual void done(); + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::gcj::convert::IOConverter)))) buf; + jint count; +public: // actually package-private + static ::java::lang::String * defaultEncoding; +private: + static const jint CACHE_SIZE = 4; + static JArray< ::gnu::gcj::convert::UnicodeToBytes * > * encoderCache; + static jint currCachePos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_convert_UnicodeToBytes__ diff --git a/libjava/gnu/gcj/convert/Unicode_to_JIS.cc b/libjava/gnu/gcj/convert/Unicode_to_JIS.cc index ad99bb726af..10b3b7003db 100644 --- a/libjava/gnu/gcj/convert/Unicode_to_JIS.cc +++ b/libjava/gnu/gcj/convert/Unicode_to_JIS.cc @@ -1,5 +1,4 @@ /* This file is automatically generated. */ -#pragma GCC java_exceptions unsigned short Unicode_to_JIS[] = { /* branch: 0x0XXX */ 16, /* branch: 0x1XXX */ 0, diff --git a/libjava/gnu/gcj/convert/natIconv.cc b/libjava/gnu/gcj/convert/natIconv.cc index 6c64e2b4bf9..ad75a505ff8 100644 --- a/libjava/gnu/gcj/convert/natIconv.cc +++ b/libjava/gnu/gcj/convert/natIconv.cc @@ -1,6 +1,6 @@ // natIconv.cc -- Java side of iconv() reader. -/* Copyright (C) 2000, 2001, 2003 Free Software Foundation +/* Copyright (C) 2000, 2001, 2003, 2006 Free Software Foundation This file is part of libgcj. @@ -47,13 +47,13 @@ gnu::gcj::convert::Input_iconv::init (jstring encoding) iconv_t h = iconv_open ("UCS-2", buffer); if (h == (iconv_t) -1) - throw new java::io::UnsupportedEncodingException (encoding); + throw new ::java::io::UnsupportedEncodingException (encoding); JvAssert (h != NULL); handle = reinterpret_cast (h); #else /* HAVE_ICONV */ // If no iconv, just throw an exception. - throw new java::io::UnsupportedEncodingException (encoding); + throw new ::java::io::UnsupportedEncodingException (encoding); #endif /* HAVE_ICONV */ } @@ -96,7 +96,7 @@ gnu::gcj::convert::Input_iconv::read (jcharArray outbuffer, // some conversion might have taken place. So we fall through // to the normal case. if (errno != EINVAL && errno != E2BIG) - throw new java::io::CharConversionException (); + throw new ::java::io::CharConversionException (); } if (iconv_byte_swap) @@ -147,13 +147,13 @@ gnu::gcj::convert::Output_iconv::init (jstring encoding) iconv_t h = iconv_open (buffer, "UCS-2"); if (h == (iconv_t) -1) - throw new java::io::UnsupportedEncodingException (encoding); + throw new ::java::io::UnsupportedEncodingException (encoding); JvAssert (h != NULL); handle = reinterpret_cast (h); #else /* HAVE_ICONV */ // If no iconv, just throw an exception. - throw new java::io::UnsupportedEncodingException (encoding); + throw new ::java::io::UnsupportedEncodingException (encoding); #endif /* HAVE_ICONV */ } diff --git a/libjava/gnu/gcj/io/DefaultMimeTypes.h b/libjava/gnu/gcj/io/DefaultMimeTypes.h new file mode 100644 index 00000000000..5c09838b685 --- /dev/null +++ b/libjava/gnu/gcj/io/DefaultMimeTypes.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_io_DefaultMimeTypes__ +#define __gnu_gcj_io_DefaultMimeTypes__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace io + { + class DefaultMimeTypes; + } + } + } +} + +class gnu::gcj::io::DefaultMimeTypes : public ::java::lang::Object +{ + +public: + DefaultMimeTypes(); + static JArray< ::java::lang::String * > * types; + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_io_DefaultMimeTypes__ diff --git a/libjava/gnu/gcj/io/MimeTypes.h b/libjava/gnu/gcj/io/MimeTypes.h new file mode 100644 index 00000000000..8ff48701261 --- /dev/null +++ b/libjava/gnu/gcj/io/MimeTypes.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_io_MimeTypes__ +#define __gnu_gcj_io_MimeTypes__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace io + { + class MimeTypes; + } + } + } +} + +class gnu::gcj::io::MimeTypes : public ::java::lang::Object +{ + +public: + MimeTypes(); + static void fillFromFile(::java::util::Hashtable *, ::java::lang::String *); + static ::java::lang::String * getMimeTypeFromExtension(::java::lang::String *); +private: + static ::java::util::Hashtable * mime_types; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_io_MimeTypes__ diff --git a/libjava/gnu/gcj/io/SimpleSHSStream.h b/libjava/gnu/gcj/io/SimpleSHSStream.h new file mode 100644 index 00000000000..3cabc4aa046 --- /dev/null +++ b/libjava/gnu/gcj/io/SimpleSHSStream.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_io_SimpleSHSStream__ +#define __gnu_gcj_io_SimpleSHSStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace io + { + class SimpleSHSStream; + } + } + } +} + +class gnu::gcj::io::SimpleSHSStream : public ::java::io::DataOutputStream +{ + +public: // actually package-private + static JArray< jbyte > * shsFinal(JArray< jbyte > *); + static void shsUpdate(JArray< jbyte > *, JArray< jbyte > *, jint); + static JArray< jbyte > * shsInit(); +private: + void update(jbyte); +public: + virtual void write(jint); + virtual void write(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * digest(); + SimpleSHSStream(::java::io::OutputStream *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::io::DataOutputStream)))) counter; + const jint SHS_BLOCKSIZE; + const jint SHS_DIGESTSIZE; + JArray< jbyte > * buf; + JArray< jbyte > * shs_info; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_io_SimpleSHSStream__ diff --git a/libjava/gnu/gcj/jvmti/Breakpoint.h b/libjava/gnu/gcj/jvmti/Breakpoint.h new file mode 100644 index 00000000000..ebdd8555366 --- /dev/null +++ b/libjava/gnu/gcj/jvmti/Breakpoint.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_jvmti_Breakpoint__ +#define __gnu_gcj_jvmti_Breakpoint__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawDataManaged; + namespace jvmti + { + class Breakpoint; + } + } + } +} + +class gnu::gcj::jvmti::Breakpoint : public ::java::lang::Object +{ + +public: + Breakpoint(jlong, jlong); +private: + void initialize_native(); +public: + virtual void install(); + virtual void remove(); + virtual ::gnu::gcj::RawDataManaged * getInsn(); +private: + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) method; + jlong location; + ::gnu::gcj::RawDataManaged * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_jvmti_Breakpoint__ diff --git a/libjava/gnu/gcj/jvmti/BreakpointManager.h b/libjava/gnu/gcj/jvmti/BreakpointManager.h new file mode 100644 index 00000000000..d53be50d24b --- /dev/null +++ b/libjava/gnu/gcj/jvmti/BreakpointManager.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_jvmti_BreakpointManager__ +#define __gnu_gcj_jvmti_BreakpointManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace jvmti + { + class Breakpoint; + class BreakpointManager; + } + } + } +} + +class gnu::gcj::jvmti::BreakpointManager : public ::java::lang::Object +{ + + BreakpointManager(); +public: + static ::gnu::gcj::jvmti::Breakpoint * newBreakpoint(jlong, jlong); + static void deleteBreakpoint(jlong, jlong); + static ::gnu::gcj::jvmti::Breakpoint * getBreakpoint(jlong, jlong); +private: + static ::gnu::gcj::jvmti::BreakpointManager * _instance; + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _breakpoints; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_jvmti_BreakpointManager__ diff --git a/libjava/gnu/gcj/jvmti/Location.h b/libjava/gnu/gcj/jvmti/Location.h new file mode 100644 index 00000000000..7a00a2d2662 --- /dev/null +++ b/libjava/gnu/gcj/jvmti/Location.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_jvmti_Location__ +#define __gnu_gcj_jvmti_Location__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace jvmti + { + class Location; + } + } + } +} + +class gnu::gcj::jvmti::Location : public ::java::lang::Object +{ + +public: + Location(jlong, jlong); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) method; + jlong location; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_jvmti_Location__ diff --git a/libjava/gnu/gcj/natCore.cc b/libjava/gnu/gcj/natCore.cc index 714e539085a..2d650f7101d 100644 --- a/libjava/gnu/gcj/natCore.cc +++ b/libjava/gnu/gcj/natCore.cc @@ -1,6 +1,6 @@ // natCore -- C++ side of Core -/* Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation +/* Copyright (C) 2001, 2002, 2003, 2005, 2006 Free Software Foundation This file is part of libgcj. @@ -115,6 +115,6 @@ gnu::gcj::Core::create (jstring name) { gnu::gcj::Core *core = _Jv_create_core (root, name); if (core == NULL) - throw new java::io::IOException (JvNewStringLatin1 ("can't open core")); + throw new ::java::io::IOException (JvNewStringLatin1 ("can't open core")); return core; } diff --git a/libjava/gnu/gcj/runtime/BootClassLoader.h b/libjava/gnu/gcj/runtime/BootClassLoader.h new file mode 100644 index 00000000000..dbfd1567162 --- /dev/null +++ b/libjava/gnu/gcj/runtime/BootClassLoader.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_BootClassLoader__ +#define __gnu_gcj_runtime_BootClassLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class BootClassLoader; + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::gcj::runtime::BootClassLoader : public ::gnu::gcj::runtime::HelperClassLoader +{ + +public: // actually package-private + BootClassLoader(::java::lang::String *); +public: + ::java::lang::Class * bootLoadClass(::java::lang::String *); + ::java::net::URL * bootGetResource(::java::lang::String *); + ::java::util::Enumeration * bootGetResources(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_BootClassLoader__ diff --git a/libjava/gnu/gcj/runtime/ExtensionClassLoader.h b/libjava/gnu/gcj/runtime/ExtensionClassLoader.h new file mode 100644 index 00000000000..ee17c2d845c --- /dev/null +++ b/libjava/gnu/gcj/runtime/ExtensionClassLoader.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_ExtensionClassLoader__ +#define __gnu_gcj_runtime_ExtensionClassLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class ExtensionClassLoader; + class SystemClassLoader; + } + } + } +} + +class gnu::gcj::runtime::ExtensionClassLoader : public ::gnu::gcj::runtime::HelperClassLoader +{ + + ExtensionClassLoader(); + void init(); +public: // actually package-private + static void initialize(); + static ::gnu::gcj::runtime::ExtensionClassLoader * instance; + static ::gnu::gcj::runtime::SystemClassLoader * system_instance; +public: + static ::java::lang::Class class$; + + friend class ::java::lang::ClassLoader; +}; + +#endif // __gnu_gcj_runtime_ExtensionClassLoader__ diff --git a/libjava/gnu/gcj/runtime/FinalizerThread.h b/libjava/gnu/gcj/runtime/FinalizerThread.h new file mode 100644 index 00000000000..572f89d598d --- /dev/null +++ b/libjava/gnu/gcj/runtime/FinalizerThread.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_FinalizerThread__ +#define __gnu_gcj_runtime_FinalizerThread__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class FinalizerThread; + } + } + } +} + +class gnu::gcj::runtime::FinalizerThread : public ::java::lang::Thread +{ + +public: + FinalizerThread(); +private: + void init(); +public: // actually package-private + static void finalizerReady(); +public: + void run(); +private: + static jboolean finalizer_ready; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_FinalizerThread__ diff --git a/libjava/gnu/gcj/runtime/HelperClassLoader$1.h b/libjava/gnu/gcj/runtime/HelperClassLoader$1.h new file mode 100644 index 00000000000..8b53b5afc4d --- /dev/null +++ b/libjava/gnu/gcj/runtime/HelperClassLoader$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_HelperClassLoader$1__ +#define __gnu_gcj_runtime_HelperClassLoader$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class HelperClassLoader; + class HelperClassLoader$1; + } + } + } +} + +class gnu::gcj::runtime::HelperClassLoader$1 : public ::java::lang::Object +{ + +public: // actually package-private + HelperClassLoader$1(::gnu::gcj::runtime::HelperClassLoader *); +public: + jboolean accept(::java::io::File *, ::java::lang::String *); +public: // actually package-private + ::gnu::gcj::runtime::HelperClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_HelperClassLoader$1__ diff --git a/libjava/gnu/gcj/runtime/HelperClassLoader.h b/libjava/gnu/gcj/runtime/HelperClassLoader.h new file mode 100644 index 00000000000..30311d3f861 --- /dev/null +++ b/libjava/gnu/gcj/runtime/HelperClassLoader.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_HelperClassLoader__ +#define __gnu_gcj_runtime_HelperClassLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class HelperClassLoader; + } + } + } +} + +class gnu::gcj::runtime::HelperClassLoader : public ::java::net::URLClassLoader +{ + +public: // actually package-private + HelperClassLoader(); + HelperClassLoader(::java::lang::ClassLoader *); + virtual void addDirectoriesFromProperty(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_HelperClassLoader__ diff --git a/libjava/gnu/gcj/runtime/JNIWeakRef.h b/libjava/gnu/gcj/runtime/JNIWeakRef.h new file mode 100644 index 00000000000..e23a59f6dbd --- /dev/null +++ b/libjava/gnu/gcj/runtime/JNIWeakRef.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_JNIWeakRef__ +#define __gnu_gcj_runtime_JNIWeakRef__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class JNIWeakRef; + } + } + } +} + +class gnu::gcj::runtime::JNIWeakRef : public ::java::lang::ref::WeakReference +{ + +public: + JNIWeakRef(::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_JNIWeakRef__ diff --git a/libjava/gnu/gcj/runtime/NameFinder$Addr2Line.h b/libjava/gnu/gcj/runtime/NameFinder$Addr2Line.h new file mode 100644 index 00000000000..7d5b5a34264 --- /dev/null +++ b/libjava/gnu/gcj/runtime/NameFinder$Addr2Line.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_NameFinder$Addr2Line__ +#define __gnu_gcj_runtime_NameFinder$Addr2Line__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class NameFinder; + class NameFinder$Addr2Line; + } + } + } +} + +class gnu::gcj::runtime::NameFinder$Addr2Line : public ::java::lang::Object +{ + +public: // actually package-private + NameFinder$Addr2Line(::gnu::gcj::runtime::NameFinder *, ::java::lang::String *); + virtual void close(); + ::java::lang::Process * __attribute__((aligned(__alignof__( ::java::lang::Object)))) proc; + ::java::io::BufferedWriter * out; + ::java::io::BufferedReader * in; + ::gnu::gcj::runtime::NameFinder * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_NameFinder$Addr2Line__ diff --git a/libjava/gnu/gcj/runtime/NameFinder.h b/libjava/gnu/gcj/runtime/NameFinder.h new file mode 100644 index 00000000000..38fd98babe4 --- /dev/null +++ b/libjava/gnu/gcj/runtime/NameFinder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_NameFinder__ +#define __gnu_gcj_runtime_NameFinder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class NameFinder; + } + } + } +} + +class gnu::gcj::runtime::NameFinder : public ::java::lang::Object +{ + +public: // actually package-private + static jboolean showRaw(); + static jboolean removeUnknown(); +public: + NameFinder(); + virtual ::java::lang::String * getSourceFile(); + virtual jint getLineNum(); + virtual void lookup(::java::lang::String *, jlong); + static ::java::lang::String * demangleInterpreterMethod(::java::lang::String *, ::java::lang::String *); + virtual void close(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) binaryFile; + ::java::lang::String * sourceFile; + jint lineNum; + ::java::util::HashMap * procs; + static ::java::util::Set * blacklist; + static jboolean use_addr2line; + static jboolean show_raw; + static jboolean remove_unknown; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_NameFinder__ diff --git a/libjava/gnu/gcj/runtime/PersistentByteMap$AccessMode.h b/libjava/gnu/gcj/runtime/PersistentByteMap$AccessMode.h new file mode 100644 index 00000000000..2cd93fad80b --- /dev/null +++ b/libjava/gnu/gcj/runtime/PersistentByteMap$AccessMode.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_PersistentByteMap$AccessMode__ +#define __gnu_gcj_runtime_PersistentByteMap$AccessMode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class PersistentByteMap$AccessMode; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class FileChannel$MapMode; + } + } + } +} + +class gnu::gcj::runtime::PersistentByteMap$AccessMode : public ::java::lang::Object +{ + + PersistentByteMap$AccessMode(::java::nio::channels::FileChannel$MapMode *); +public: // actually package-private + static ::java::nio::channels::FileChannel$MapMode * access$0(::gnu::gcj::runtime::PersistentByteMap$AccessMode *); +private: + ::java::nio::channels::FileChannel$MapMode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mapMode; +public: + static ::gnu::gcj::runtime::PersistentByteMap$AccessMode * READ_ONLY; + static ::gnu::gcj::runtime::PersistentByteMap$AccessMode * READ_WRITE; + static ::gnu::gcj::runtime::PersistentByteMap$AccessMode * PRIVATE; + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_PersistentByteMap$AccessMode__ diff --git a/libjava/gnu/gcj/runtime/PersistentByteMap$ByteWrapper.h b/libjava/gnu/gcj/runtime/PersistentByteMap$ByteWrapper.h new file mode 100644 index 00000000000..39cad37d302 --- /dev/null +++ b/libjava/gnu/gcj/runtime/PersistentByteMap$ByteWrapper.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_PersistentByteMap$ByteWrapper__ +#define __gnu_gcj_runtime_PersistentByteMap$ByteWrapper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class PersistentByteMap; + class PersistentByteMap$ByteWrapper; + } + } + } +} + +class gnu::gcj::runtime::PersistentByteMap$ByteWrapper : public ::java::lang::Object +{ + +public: + PersistentByteMap$ByteWrapper(::gnu::gcj::runtime::PersistentByteMap *, JArray< jbyte > *); + jint hashCode(); + jboolean equals(::java::lang::Object *); +public: // actually package-private + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) bytes; + jint hash; + ::gnu::gcj::runtime::PersistentByteMap * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_PersistentByteMap$ByteWrapper__ diff --git a/libjava/gnu/gcj/runtime/PersistentByteMap$HashIterator.h b/libjava/gnu/gcj/runtime/PersistentByteMap$HashIterator.h new file mode 100644 index 00000000000..65df6ceea3b --- /dev/null +++ b/libjava/gnu/gcj/runtime/PersistentByteMap$HashIterator.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_PersistentByteMap$HashIterator__ +#define __gnu_gcj_runtime_PersistentByteMap$HashIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class PersistentByteMap; + class PersistentByteMap$HashIterator; + } + } + } +} + +class gnu::gcj::runtime::PersistentByteMap$HashIterator : public ::java::lang::Object +{ + +public: // actually package-private + PersistentByteMap$HashIterator(::gnu::gcj::runtime::PersistentByteMap *, jint); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + void remove(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) idx; + jint count; + jint type; +public: // actually package-private + ::gnu::gcj::runtime::PersistentByteMap * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_PersistentByteMap$HashIterator__ diff --git a/libjava/gnu/gcj/runtime/PersistentByteMap$MapEntry.h b/libjava/gnu/gcj/runtime/PersistentByteMap$MapEntry.h new file mode 100644 index 00000000000..7cb8b63f0f9 --- /dev/null +++ b/libjava/gnu/gcj/runtime/PersistentByteMap$MapEntry.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_PersistentByteMap$MapEntry__ +#define __gnu_gcj_runtime_PersistentByteMap$MapEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class PersistentByteMap$MapEntry; + } + } + } +} + +class gnu::gcj::runtime::PersistentByteMap$MapEntry : public ::java::lang::Object +{ + +public: + PersistentByteMap$MapEntry(jint, ::java::lang::Object *, ::java::lang::Object *); + ::java::lang::Object * getKey(); + ::java::lang::Object * getValue(); + jint getBucket(); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; + ::java::lang::Object * value; + jint bucket; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_PersistentByteMap$MapEntry__ diff --git a/libjava/gnu/gcj/runtime/PersistentByteMap.h b/libjava/gnu/gcj/runtime/PersistentByteMap.h new file mode 100644 index 00000000000..1bac1d2c086 --- /dev/null +++ b/libjava/gnu/gcj/runtime/PersistentByteMap.h @@ -0,0 +1,115 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_PersistentByteMap__ +#define __gnu_gcj_runtime_PersistentByteMap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class PersistentByteMap; + class PersistentByteMap$AccessMode; + } + } + } + namespace java + { + namespace nio + { + class MappedByteBuffer; + namespace channels + { + class FileChannel; + } + } + } +} + +class gnu::gcj::runtime::PersistentByteMap : public ::java::lang::Object +{ + + PersistentByteMap(::java::io::File *); +public: + PersistentByteMap(::java::lang::String *, ::gnu::gcj::runtime::PersistentByteMap$AccessMode *); + PersistentByteMap(::java::io::File *, ::gnu::gcj::runtime::PersistentByteMap$AccessMode *); +private: + void init(::gnu::gcj::runtime::PersistentByteMap *, ::java::io::File *, jint, jint); +public: + static ::gnu::gcj::runtime::PersistentByteMap * emptyPersistentByteMap(::java::io::File *, jint, jint); +private: + jint getWord(jint); + void putWord(jint, jint); +public: + virtual ::java::util::Set * entrySet(); +private: + jint getBucket(jint); + jint getKeyPos(jint); + jint getValuePos(jint); + void putKeyPos(jint, jint); + void putValuePos(jint, jint); + JArray< jbyte > * getBytes(jint); + jint hash(JArray< jbyte > *); +public: + virtual JArray< jbyte > * get(JArray< jbyte > *); + virtual void put(JArray< jbyte > *, JArray< jbyte > *); +private: + jint addBytes(JArray< jbyte > *); +public: + virtual ::java::util::Iterator * iterator(jint); + virtual jint size(); + virtual jint stringTableSize(); + virtual jint capacity(); + virtual void force(); + virtual ::java::io::File * getFile(); + virtual void close(); + virtual void putAll(::gnu::gcj::runtime::PersistentByteMap *); +public: // actually package-private + static jint access$0(::gnu::gcj::runtime::PersistentByteMap *); + static jint access$1(::gnu::gcj::runtime::PersistentByteMap *); + static jint access$2(::gnu::gcj::runtime::PersistentByteMap *, jint); + static jint access$3(::gnu::gcj::runtime::PersistentByteMap *, jint); + static JArray< jbyte > * access$4(::gnu::gcj::runtime::PersistentByteMap *, jint); +private: + ::java::nio::MappedByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buf; + static const jint MAGIC = 0; + static const jint VERSION = 4; + static const jint CAPACITY = 8; + static const jint TABLE_BASE = 12; + static const jint STRING_BASE = 16; + static const jint STRING_SIZE = 20; + static const jint FILE_SIZE = 24; + static const jint ELEMENTS = 28; + static const jint INT_SIZE = 4; + static const jint TABLE_ENTRY_SIZE = 8; + jint capacity__; + jint table_base; + jint string_base; + jint string_size; + jint file_size; + jint elements; + jlong length; + ::java::io::File * name; + static const jint UNUSED_ENTRY = -1; +public: + static const jint KEYS = 0; + static const jint VALUES = 1; + static const jint ENTRIES = 2; +private: + ::java::util::HashMap * values; +public: // actually package-private + ::java::nio::channels::FileChannel * fc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_PersistentByteMap__ diff --git a/libjava/gnu/gcj/runtime/SharedLibHelper.h b/libjava/gnu/gcj/runtime/SharedLibHelper.h new file mode 100644 index 00000000000..b2900b7e0df --- /dev/null +++ b/libjava/gnu/gcj/runtime/SharedLibHelper.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_SharedLibHelper__ +#define __gnu_gcj_runtime_SharedLibHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class Core; + class RawData; + namespace runtime + { + class SharedLibHelper; + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace security + { + class CodeSource; + class ProtectionDomain; + } + } +} + +class gnu::gcj::runtime::SharedLibHelper : public ::java::lang::Object +{ + +public: // actually package-private + SharedLibHelper(::java::lang::String *, ::java::lang::ClassLoader *, ::java::security::CodeSource *, ::java::security::ProtectionDomain *, jint); +public: + static ::gnu::gcj::runtime::SharedLibHelper * findHelper(::java::lang::String *); +public: // actually package-private + static void copyFile(::java::io::File *, ::java::io::File *); +public: + static ::gnu::gcj::runtime::SharedLibHelper * findHelper(::java::lang::ClassLoader *, ::java::lang::String *, ::java::security::CodeSource *, jboolean); + static ::gnu::gcj::runtime::SharedLibHelper * findHelper(::java::lang::ClassLoader *, ::java::lang::String *, ::java::security::CodeSource *, ::java::security::ProtectionDomain *, jboolean); + virtual void finalize(); + virtual ::java::lang::Class * findClass(::java::lang::String *); + virtual ::java::net::URL * findResource(::java::lang::String *); + virtual ::gnu::gcj::Core * findCore(::java::lang::String *); +public: // actually package-private + virtual void ensureInit(); + virtual jboolean hasResource(::java::lang::String *); + virtual void init(); + virtual void ensureSupersLinked(::java::lang::Class *); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + virtual void registerClass(::java::lang::String *, ::java::lang::Class *); + ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) handler; + ::gnu::gcj::RawData * core_chain; + ::java::util::HashMap * classMap; + ::java::lang::ClassLoader * loader; + ::java::lang::String * baseName; + ::java::security::ProtectionDomain * domain; + jint flags; + jboolean initialized; + static ::java::util::HashMap * map; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_SharedLibHelper__ diff --git a/libjava/gnu/gcj/runtime/SharedLibLoader.h b/libjava/gnu/gcj/runtime/SharedLibLoader.h new file mode 100644 index 00000000000..8a439d3d3d7 --- /dev/null +++ b/libjava/gnu/gcj/runtime/SharedLibLoader.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_SharedLibLoader__ +#define __gnu_gcj_runtime_SharedLibLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class SharedLibHelper; + class SharedLibLoader; + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::gcj::runtime::SharedLibLoader : public ::java::lang::ClassLoader +{ + +public: + SharedLibLoader(::java::lang::String *, ::java::lang::ClassLoader *, jint); + SharedLibLoader(::java::lang::String *); + virtual ::java::lang::Class * findClass(::java::lang::String *); + virtual ::java::net::URL * findResource(::java::lang::String *); + virtual ::java::util::Enumeration * findResources(::java::lang::String *); +public: // actually package-private + ::gnu::gcj::runtime::SharedLibHelper * __attribute__((aligned(__alignof__( ::java::lang::ClassLoader)))) helper; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_SharedLibLoader__ diff --git a/libjava/gnu/gcj/runtime/StringBuffer.h b/libjava/gnu/gcj/runtime/StringBuffer.h new file mode 100644 index 00000000000..27a3a7e30fb --- /dev/null +++ b/libjava/gnu/gcj/runtime/StringBuffer.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_StringBuffer__ +#define __gnu_gcj_runtime_StringBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class StringBuffer; + } + } + } +} + +class gnu::gcj::runtime::StringBuffer : public ::java::lang::Object +{ + +public: + ::gnu::gcj::runtime::StringBuffer * append(jboolean); + ::gnu::gcj::runtime::StringBuffer * append(jchar); + ::gnu::gcj::runtime::StringBuffer * append(jint); + ::gnu::gcj::runtime::StringBuffer * append(jlong); + ::gnu::gcj::runtime::StringBuffer * append(jfloat); + ::gnu::gcj::runtime::StringBuffer * append(jdouble); + ::gnu::gcj::runtime::StringBuffer * append(::java::lang::Object *); + ::gnu::gcj::runtime::StringBuffer * append(::java::lang::String *); +private: + void ensureCapacity_unsynchronized(jint); +public: + StringBuffer(); + StringBuffer(jint); + StringBuffer(::java::lang::String *); + ::java::lang::String * toString(); +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 // __gnu_gcj_runtime_StringBuffer__ diff --git a/libjava/gnu/gcj/runtime/SystemClassLoader.h b/libjava/gnu/gcj/runtime/SystemClassLoader.h new file mode 100644 index 00000000000..58c709659e8 --- /dev/null +++ b/libjava/gnu/gcj/runtime/SystemClassLoader.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_runtime_SystemClassLoader__ +#define __gnu_gcj_runtime_SystemClassLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class SystemClassLoader; + } + } + } +} + +class gnu::gcj::runtime::SystemClassLoader : public ::java::net::URLClassLoader +{ + +public: // actually package-private + SystemClassLoader(::java::lang::ClassLoader *); + void addClass(::java::lang::Class *); +public: // actually protected + ::java::lang::Class * findClass(::java::lang::String *); +public: // actually package-private + void init(); +private: + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader)))) nativeClasses; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_runtime_SystemClassLoader__ diff --git a/libjava/gnu/gcj/runtime/natSharedLibLoader.cc b/libjava/gnu/gcj/runtime/natSharedLibLoader.cc index e20ccb9e336..0d8d0e8341b 100644 --- a/libjava/gnu/gcj/runtime/natSharedLibLoader.cc +++ b/libjava/gnu/gcj/runtime/natSharedLibLoader.cc @@ -87,9 +87,9 @@ gnu::gcj::runtime::SharedLibHelper::init(void) if (flags==0) flags = RTLD_GLOBAL | RTLD_LAZY; - JvSynchronize dummy1(&java::lang::Class::class$); + JvSynchronize dummy1(&::java::lang::Class::class$); SharedLibDummy dummy2; - curLoader = ((void*)loader == java::lang::VMClassLoader::bootLoader + curLoader = ((void*)loader == ::java::lang::VMClassLoader::bootLoader ? NULL : loader); curHelper = this; _Jv_RegisterClassHook = _Jv_sharedlib_register_hook; @@ -98,13 +98,13 @@ gnu::gcj::runtime::SharedLibHelper::init(void) if (h == NULL) { const char *msg = dlerror(); - throw new java::lang::UnknownError(JvNewStringLatin1(msg)); + throw new ::java::lang::UnknownError(JvNewStringLatin1(msg)); } handler = (gnu::gcj::RawData*) h; #else const char *msg = "shared library class loading is not supported on this platform"; - throw new java::lang::UnsupportedOperationException(JvNewStringLatin1(msg)); + throw new ::java::lang::UnsupportedOperationException(JvNewStringLatin1(msg)); #endif } diff --git a/libjava/gnu/gcj/tools/gcj_dbtool/Fileset.h b/libjava/gnu/gcj/tools/gcj_dbtool/Fileset.h new file mode 100644 index 00000000000..fb9b2d69eed --- /dev/null +++ b/libjava/gnu/gcj/tools/gcj_dbtool/Fileset.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_tools_gcj_dbtool_Fileset__ +#define __gnu_gcj_tools_gcj_dbtool_Fileset__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace tools + { + namespace gcj_dbtool + { + class Fileset; + } + } + } + } +} + +class gnu::gcj::tools::gcj_dbtool::Fileset : public ::java::lang::Object +{ + +public: // actually package-private + Fileset(JArray< ::java::lang::String * > *, jint, jint); + Fileset(::java::io::InputStream *, jchar); + virtual ::java::util::Iterator * iterator(); + virtual jint size(); + ::java::util::LinkedHashSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) files; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_tools_gcj_dbtool_Fileset__ diff --git a/libjava/gnu/gcj/tools/gcj_dbtool/Main.h b/libjava/gnu/gcj/tools/gcj_dbtool/Main.h new file mode 100644 index 00000000000..4052bb34c00 --- /dev/null +++ b/libjava/gnu/gcj/tools/gcj_dbtool/Main.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_tools_gcj_dbtool_Main__ +#define __gnu_gcj_tools_gcj_dbtool_Main__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class PersistentByteMap; + } + namespace tools + { + namespace gcj_dbtool + { + class Fileset; + class Main; + } + } + } + } +} + +class gnu::gcj::tools::gcj_dbtool::Main : public ::java::lang::Object +{ + +public: + Main(); + static void main(JArray< ::java::lang::String * > *); +private: + static ::java::lang::String * getDbPathTail(); + static void insist(jboolean); + static void usage(::java::io::PrintStream *); + static ::gnu::gcj::runtime::PersistentByteMap * addJar(::java::io::File *, ::gnu::gcj::runtime::PersistentByteMap *, ::java::io::File *); +public: // actually package-private + static ::gnu::gcj::runtime::PersistentByteMap * resizeMap(::gnu::gcj::runtime::PersistentByteMap *, jint, jboolean); + static ::java::lang::String * bytesToString(JArray< jbyte > *); +private: + static ::gnu::gcj::tools::gcj_dbtool::Fileset * getFiles(JArray< ::java::lang::String * > *, jint, jboolean, jchar); + static jboolean verbose; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_tools_gcj_dbtool_Main__ diff --git a/libjava/gnu/gcj/tools/gcj_dbtool/Tokenizer.h b/libjava/gnu/gcj/tools/gcj_dbtool/Tokenizer.h new file mode 100644 index 00000000000..7c5c411bb94 --- /dev/null +++ b/libjava/gnu/gcj/tools/gcj_dbtool/Tokenizer.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_tools_gcj_dbtool_Tokenizer__ +#define __gnu_gcj_tools_gcj_dbtool_Tokenizer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace tools + { + namespace gcj_dbtool + { + class Tokenizer; + } + } + } + } +} + +class gnu::gcj::tools::gcj_dbtool::Tokenizer : public ::java::lang::Object +{ + +public: // actually package-private + Tokenizer(::java::io::Reader *, jchar); + virtual jboolean isSeparator(jint); + virtual ::java::lang::String * nextToken(); + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) r; + jchar separator; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_tools_gcj_dbtool_Tokenizer__ diff --git a/libjava/gnu/gcj/util/Debug.h b/libjava/gnu/gcj/util/Debug.h new file mode 100644 index 00000000000..3ad59ef6d60 --- /dev/null +++ b/libjava/gnu/gcj/util/Debug.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_gcj_util_Debug__ +#define __gnu_gcj_util_Debug__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace util + { + class Debug; + } + } + } +} + +class gnu::gcj::util::Debug : public ::java::lang::Object +{ + +public: // actually package-private + Debug(::java::io::PrintStream *, jint, jint, jboolean); + Debug(::java::io::PrintStream *); + Debug(jint, jboolean); + Debug(jint); + Debug(); +private: + void indent(); + static JArray< ::java::lang::reflect::Field * > * getDeclaredFields(::java::lang::Class *); + static ::java::lang::Object * getField(::java::lang::Object *, ::java::lang::reflect::Field *); + static jlong getAddr(::java::lang::Object *); + JArray< ::java::lang::reflect::Field * > * internalGetFields(::java::lang::Class *); + static ::java::lang::Class * getItsClass(::java::lang::Object *); + void print(::java::lang::Object *); + void print0(::java::lang::Object *, ::java::lang::Class *); +public: + virtual void write(::java::lang::Object *); +private: + ::java::io::PrintStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p; + jint maxdepth; + jint maxArrayLength; + jboolean printStaticFields; + jint depth; + ::java::util::IdentityHashMap * h; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_gcj_util_Debug__ diff --git a/libjava/gnu/java/awt/AWTUtilities$VisibleComponentList$VisibleComponentIterator.h b/libjava/gnu/java/awt/AWTUtilities$VisibleComponentList$VisibleComponentIterator.h new file mode 100644 index 00000000000..27344b59b04 --- /dev/null +++ b/libjava/gnu/java/awt/AWTUtilities$VisibleComponentList$VisibleComponentIterator.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_AWTUtilities$VisibleComponentList$VisibleComponentIterator__ +#define __gnu_java_awt_AWTUtilities$VisibleComponentList$VisibleComponentIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class AWTUtilities$VisibleComponentList; + class AWTUtilities$VisibleComponentList$VisibleComponentIterator; + } + } + } +} + +class gnu::java::awt::AWTUtilities$VisibleComponentList$VisibleComponentIterator : public ::java::lang::Object +{ + +public: // actually package-private + AWTUtilities$VisibleComponentList$VisibleComponentIterator(::gnu::java::awt::AWTUtilities$VisibleComponentList *, jint); +public: + virtual jboolean hasNext(); + virtual ::java::lang::Object * next(); + virtual jboolean hasPrevious(); + 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 *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; + jint listIndex; + ::gnu::java::awt::AWTUtilities$VisibleComponentList * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_AWTUtilities$VisibleComponentList$VisibleComponentIterator__ diff --git a/libjava/gnu/java/awt/AWTUtilities$VisibleComponentList.h b/libjava/gnu/java/awt/AWTUtilities$VisibleComponentList.h new file mode 100644 index 00000000000..53a5eb34024 --- /dev/null +++ b/libjava/gnu/java/awt/AWTUtilities$VisibleComponentList.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_AWTUtilities$VisibleComponentList__ +#define __gnu_java_awt_AWTUtilities$VisibleComponentList__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class AWTUtilities$VisibleComponentList; + } + } + } + namespace java + { + namespace awt + { + class Component; + } + } +} + +class gnu::java::awt::AWTUtilities$VisibleComponentList : public ::java::util::AbstractSequentialList +{ + +public: // actually package-private + AWTUtilities$VisibleComponentList(JArray< ::java::awt::Component * > *); +public: + virtual ::java::util::ListIterator * listIterator(jint); + virtual jint size(); +public: // actually package-private + JArray< ::java::awt::Component * > * __attribute__((aligned(__alignof__( ::java::util::AbstractSequentialList)))) components; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_AWTUtilities$VisibleComponentList__ diff --git a/libjava/gnu/java/awt/AWTUtilities.h b/libjava/gnu/java/awt/AWTUtilities.h new file mode 100644 index 00000000000..36db9855831 --- /dev/null +++ b/libjava/gnu/java/awt/AWTUtilities.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_AWTUtilities__ +#define __gnu_java_awt_AWTUtilities__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class AWTUtilities; + } + } + } + namespace java + { + namespace awt + { + class Component; + class Container; + class Font; + class FontMetrics; + class Insets; + class Point; + class Rectangle; + class Window; + namespace event + { + class MouseEvent; + } + } + } +} + +class gnu::java::awt::AWTUtilities : public ::java::lang::Object +{ + +public: + AWTUtilities(); + static ::java::util::List * getVisibleChildren(::java::awt::Container *); + static ::java::awt::Rectangle * calculateInsetArea(::java::awt::Rectangle *, ::java::awt::Insets *, ::java::awt::Rectangle *); + static ::java::awt::Rectangle * getLocalBounds(::java::awt::Component *); + static ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + static ::java::awt::Container * getAncestorNamed(::java::lang::String *, ::java::awt::Component *); + static ::java::awt::Container * getAncestorOfClass(::java::lang::Class *, ::java::awt::Component *); + static ::java::awt::Window * windowForComponent(::java::awt::Component *); + static ::java::awt::Component * getRoot(::java::awt::Component *); + static jboolean isDescendingFrom(::java::awt::Component *, ::java::awt::Component *); + static ::java::awt::Component * getDeepestComponentAt(::java::awt::Component *, jint, jint); + static void convertPointToScreen(::java::awt::Point *, ::java::awt::Component *); + static void convertPointFromScreen(::java::awt::Point *, ::java::awt::Component *); + static ::java::awt::Point * convertPoint(::java::awt::Component *, jint, jint, ::java::awt::Component *); + static ::java::awt::Rectangle * convertRectangle(::java::awt::Component *, ::java::awt::Rectangle *, ::java::awt::Component *); + static ::java::awt::event::MouseEvent * convertMouseEvent(::java::awt::Component *, ::java::awt::event::MouseEvent *, ::java::awt::Component *); + static void invokeLater(::java::lang::Runnable *); + static void invokeAndWait(::java::lang::Runnable *); + static jboolean isEventDispatchThread(); +public: // actually package-private + static ::java::util::WeakHashMap * visibleChildrenCache; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_AWTUtilities__ diff --git a/libjava/gnu/java/awt/BitMaskExtent.h b/libjava/gnu/java/awt/BitMaskExtent.h new file mode 100644 index 00000000000..5d3fd637277 --- /dev/null +++ b/libjava/gnu/java/awt/BitMaskExtent.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_BitMaskExtent__ +#define __gnu_java_awt_BitMaskExtent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class BitMaskExtent; + } + } + } +} + +class gnu::java::awt::BitMaskExtent : public ::java::lang::Object +{ + +public: + BitMaskExtent(); + void setMask(jlong); + jlong toMask(); + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) leastSignificantBit; + jbyte bitWidth; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_BitMaskExtent__ diff --git a/libjava/gnu/java/awt/BitwiseXORComposite$GeneralContext.h b/libjava/gnu/java/awt/BitwiseXORComposite$GeneralContext.h new file mode 100644 index 00000000000..d67d1409df4 --- /dev/null +++ b/libjava/gnu/java/awt/BitwiseXORComposite$GeneralContext.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_BitwiseXORComposite$GeneralContext__ +#define __gnu_java_awt_BitwiseXORComposite$GeneralContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class BitwiseXORComposite$GeneralContext; + } + } + } + namespace java + { + namespace awt + { + class Color; + namespace image + { + class ColorModel; + class Raster; + class WritableRaster; + } + } + } +} + +class gnu::java::awt::BitwiseXORComposite$GeneralContext : public ::java::lang::Object +{ + +public: + BitwiseXORComposite$GeneralContext(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *, ::java::awt::Color *); + virtual void compose(::java::awt::image::Raster *, ::java::awt::image::Raster *, ::java::awt::image::WritableRaster *); + virtual void dispose(); +public: // actually package-private + ::java::awt::image::ColorModel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) srcColorModel; + ::java::awt::image::ColorModel * dstColorModel; + ::java::awt::Color * xorColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_BitwiseXORComposite$GeneralContext__ diff --git a/libjava/gnu/java/awt/BitwiseXORComposite$IntContext.h b/libjava/gnu/java/awt/BitwiseXORComposite$IntContext.h new file mode 100644 index 00000000000..25d67e74a19 --- /dev/null +++ b/libjava/gnu/java/awt/BitwiseXORComposite$IntContext.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_BitwiseXORComposite$IntContext__ +#define __gnu_java_awt_BitwiseXORComposite$IntContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class BitwiseXORComposite$IntContext; + } + } + } + namespace java + { + namespace awt + { + class Color; + class RenderingHints; + namespace image + { + class ColorModel; + class Raster; + class WritableRaster; + } + } + } +} + +class gnu::java::awt::BitwiseXORComposite$IntContext : public ::gnu::java::awt::BitwiseXORComposite$GeneralContext +{ + +public: + BitwiseXORComposite$IntContext(::java::awt::image::ColorModel *, ::java::awt::Color *); + virtual void compose(::java::awt::image::Raster *, ::java::awt::image::Raster *, ::java::awt::image::WritableRaster *); + static jboolean isSupported(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *, ::java::awt::RenderingHints *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_BitwiseXORComposite$IntContext__ diff --git a/libjava/gnu/java/awt/BitwiseXORComposite.h b/libjava/gnu/java/awt/BitwiseXORComposite.h new file mode 100644 index 00000000000..2dd89d6e5a4 --- /dev/null +++ b/libjava/gnu/java/awt/BitwiseXORComposite.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_BitwiseXORComposite__ +#define __gnu_java_awt_BitwiseXORComposite__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class BitwiseXORComposite; + } + } + } + namespace java + { + namespace awt + { + class Color; + class CompositeContext; + class RenderingHints; + namespace image + { + class ColorModel; + } + } + } +} + +class gnu::java::awt::BitwiseXORComposite : public ::java::lang::Object +{ + +public: + BitwiseXORComposite(::java::awt::Color *); + virtual ::java::awt::CompositeContext * createContext(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *, ::java::awt::RenderingHints *); +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::java::lang::Object)))) xorColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_BitwiseXORComposite__ diff --git a/libjava/gnu/java/awt/Buffers.h b/libjava/gnu/java/awt/Buffers.h new file mode 100644 index 00000000000..9456b130e36 --- /dev/null +++ b/libjava/gnu/java/awt/Buffers.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_Buffers__ +#define __gnu_java_awt_Buffers__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class Buffers; + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class DataBuffer; + } + } + } +} + +class gnu::java::awt::Buffers : public ::java::lang::Object +{ + +public: + Buffers(); + static ::java::awt::image::DataBuffer * createBuffer(jint, ::java::lang::Object *, jint); + static ::java::awt::image::DataBuffer * createBuffer(jint, jint); + static ::java::awt::image::DataBuffer * createBuffer(jint, jint, jint); + static ::java::awt::image::DataBuffer * createBufferFromData(jint, ::java::lang::Object *, jint); + static ::java::lang::Object * getData(::java::awt::image::DataBuffer *); + static ::java::lang::Object * getData(::java::awt::image::DataBuffer *, jint, ::java::lang::Object *, jint, jint); + static jint smallestAppropriateTransferType(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_Buffers__ diff --git a/libjava/gnu/java/awt/ClasspathToolkit.h b/libjava/gnu/java/awt/ClasspathToolkit.h new file mode 100644 index 00000000000..f3acd663871 --- /dev/null +++ b/libjava/gnu/java/awt/ClasspathToolkit.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_ClasspathToolkit__ +#define __gnu_java_awt_ClasspathToolkit__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class ClasspathToolkit; + class EmbeddedWindow; + namespace peer + { + class ClasspathFontPeer; + class EmbeddedWindowPeer; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class GraphicsDevice; + class GraphicsEnvironment; + namespace peer + { + class RobotPeer; + } + } + } + namespace javax + { + namespace imageio + { + namespace spi + { + class IIORegistry; + } + } + } +} + +class gnu::java::awt::ClasspathToolkit : public ::java::awt::Toolkit +{ + +public: + ClasspathToolkit(); + virtual ::java::awt::GraphicsEnvironment * getLocalGraphicsEnvironment() = 0; + virtual ::gnu::java::awt::peer::ClasspathFontPeer * getClasspathFontPeer(::java::lang::String *, ::java::util::Map *) = 0; + virtual ::java::awt::Font * getFont(::java::lang::String *, ::java::util::Map *); + virtual ::java::awt::Font * createFont(jint, ::java::io::InputStream *) = 0; + virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *) = 0; + virtual ::gnu::java::awt::peer::EmbeddedWindowPeer * createEmbeddedWindow(::gnu::java::awt::EmbeddedWindow *) = 0; + virtual void registerImageIOSpis(::javax::imageio::spi::IIORegistry *); + virtual jint getMouseNumberOfButtons(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_ClasspathToolkit__ diff --git a/libjava/gnu/java/awt/ComponentDataBlitOp.h b/libjava/gnu/java/awt/ComponentDataBlitOp.h new file mode 100644 index 00000000000..0db1e05798f --- /dev/null +++ b/libjava/gnu/java/awt/ComponentDataBlitOp.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_ComponentDataBlitOp__ +#define __gnu_java_awt_ComponentDataBlitOp__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class ComponentDataBlitOp; + } + } + } + namespace java + { + namespace awt + { + class RenderingHints; + namespace geom + { + class Point2D; + class Rectangle2D; + } + namespace image + { + class Raster; + class WritableRaster; + } + } + } +} + +class gnu::java::awt::ComponentDataBlitOp : public ::java::lang::Object +{ + +public: + ComponentDataBlitOp(); + 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(); + static ::gnu::java::awt::ComponentDataBlitOp * INSTANCE; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_ComponentDataBlitOp__ diff --git a/libjava/gnu/java/awt/ComponentReshapeEvent.h b/libjava/gnu/java/awt/ComponentReshapeEvent.h new file mode 100644 index 00000000000..bfd6f830927 --- /dev/null +++ b/libjava/gnu/java/awt/ComponentReshapeEvent.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_ComponentReshapeEvent__ +#define __gnu_java_awt_ComponentReshapeEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class ComponentReshapeEvent; + } + } + } + namespace java + { + namespace awt + { + class Component; + } + } +} + +class gnu::java::awt::ComponentReshapeEvent : public ::java::awt::AWTEvent +{ + +public: + ComponentReshapeEvent(::java::awt::Component *, jint, jint, jint, jint); + jint __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) x; + jint y; + jint width; + jint height; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_ComponentReshapeEvent__ diff --git a/libjava/gnu/java/awt/EmbeddedWindow.h b/libjava/gnu/java/awt/EmbeddedWindow.h new file mode 100644 index 00000000000..5a251bfd3e9 --- /dev/null +++ b/libjava/gnu/java/awt/EmbeddedWindow.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_EmbeddedWindow__ +#define __gnu_java_awt_EmbeddedWindow__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class EmbeddedWindow; + } + } + } +} + +class gnu::java::awt::EmbeddedWindow : public ::java::awt::Frame +{ + +public: + EmbeddedWindow(); + EmbeddedWindow(jlong); + virtual void addNotify(); + virtual void setHandle(jlong); + virtual jlong getHandle(); +private: + jlong __attribute__((aligned(__alignof__( ::java::awt::Frame)))) handle; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_EmbeddedWindow__ diff --git a/libjava/gnu/java/awt/EventModifier.h b/libjava/gnu/java/awt/EventModifier.h new file mode 100644 index 00000000000..b6c21935f46 --- /dev/null +++ b/libjava/gnu/java/awt/EventModifier.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_EventModifier__ +#define __gnu_java_awt_EventModifier__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class EventModifier; + } + } + } +} + +class gnu::java::awt::EventModifier : public ::java::lang::Object +{ + + EventModifier(); +public: + static jint extend(jint); + static jint revert(jint); + static const jint OLD_MASK = 63; + static const jint NEW_MASK = 16320; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_EventModifier__ diff --git a/libjava/gnu/java/awt/GradientPaintContext.h b/libjava/gnu/java/awt/GradientPaintContext.h new file mode 100644 index 00000000000..a3aacbb6a07 --- /dev/null +++ b/libjava/gnu/java/awt/GradientPaintContext.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_GradientPaintContext__ +#define __gnu_java_awt_GradientPaintContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class GradientPaintContext; + } + } + } + namespace java + { + namespace awt + { + class Color; + namespace image + { + class ColorModel; + class Raster; + } + } + } +} + +class gnu::java::awt::GradientPaintContext : public ::java::lang::Object +{ + +public: + GradientPaintContext(jfloat, jfloat, ::java::awt::Color *, jfloat, jfloat, ::java::awt::Color *, jboolean); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::image::Raster * getRaster(jint, jint, jint, jint); + virtual void dispose(); +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; + jdouble length; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_GradientPaintContext__ diff --git a/libjava/gnu/java/awt/LowPriorityEvent.h b/libjava/gnu/java/awt/LowPriorityEvent.h new file mode 100644 index 00000000000..edec5345dfd --- /dev/null +++ b/libjava/gnu/java/awt/LowPriorityEvent.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_LowPriorityEvent__ +#define __gnu_java_awt_LowPriorityEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class LowPriorityEvent; + } + } + } +} + +class gnu::java::awt::LowPriorityEvent : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_awt_LowPriorityEvent__ diff --git a/libjava/gnu/java/awt/color/CieXyzConverter.h b/libjava/gnu/java/awt/color/CieXyzConverter.h new file mode 100644 index 00000000000..95419637f33 --- /dev/null +++ b/libjava/gnu/java/awt/color/CieXyzConverter.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_CieXyzConverter__ +#define __gnu_java_awt_color_CieXyzConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class CieXyzConverter; + } + } + } + } +} + +class gnu::java::awt::color::CieXyzConverter : public ::java::lang::Object +{ + +public: + CieXyzConverter(); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_CieXyzConverter__ diff --git a/libjava/gnu/java/awt/color/ClutProfileConverter.h b/libjava/gnu/java/awt/color/ClutProfileConverter.h new file mode 100644 index 00000000000..0b8ba5c8e14 --- /dev/null +++ b/libjava/gnu/java/awt/color/ClutProfileConverter.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_ClutProfileConverter__ +#define __gnu_java_awt_color_ClutProfileConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class ClutProfileConverter; + class ColorLookUpTable; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ICC_Profile; + } + } + } +} + +class gnu::java::awt::color::ClutProfileConverter : public ::java::lang::Object +{ + +public: + ClutProfileConverter(::java::awt::color::ICC_Profile *); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); +private: + ::gnu::java::awt::color::ColorLookUpTable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) toPCS; + ::gnu::java::awt::color::ColorLookUpTable * fromPCS; + jint nChannels; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_ClutProfileConverter__ diff --git a/libjava/gnu/java/awt/color/ColorLookUpTable.h b/libjava/gnu/java/awt/color/ColorLookUpTable.h new file mode 100644 index 00000000000..b61fc84f505 --- /dev/null +++ b/libjava/gnu/java/awt/color/ColorLookUpTable.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_ColorLookUpTable__ +#define __gnu_java_awt_color_ColorLookUpTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class ColorLookUpTable; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ICC_Profile; + } + } + } +} + +class gnu::java::awt::color::ColorLookUpTable : public ::java::lang::Object +{ + +public: + ColorLookUpTable(::java::awt::color::ICC_Profile *, jint); +private: + void readClut16(JArray< jbyte > *); + void readClut8(JArray< jbyte > *); +public: // actually package-private + virtual JArray< jfloat > * lookup(JArray< jfloat > *); +private: + JArray< jfloat > * LabtoXYZ(JArray< jfloat > *); + JArray< jfloat > * XYZtoLab(JArray< jfloat > *); + static JArray< jfloat > * D50; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) nIn; + jint nOut; + jint nInTableEntries; + jint nOutTableEntries; + jint gridpoints; + jint nClut; + JArray< JArray< jdouble > * > * inTable; + JArray< JArray< jshort > * > * outTable; + JArray< jdouble > * clut; + JArray< JArray< jfloat > * > * inMatrix; + jboolean useMatrix; + JArray< jint > * multiplier; + JArray< jint > * offsets; + jboolean inputLab; + jboolean outputLab; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_ColorLookUpTable__ diff --git a/libjava/gnu/java/awt/color/ColorSpaceConverter.h b/libjava/gnu/java/awt/color/ColorSpaceConverter.h new file mode 100644 index 00000000000..cc3b19ff47f --- /dev/null +++ b/libjava/gnu/java/awt/color/ColorSpaceConverter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_ColorSpaceConverter__ +#define __gnu_java_awt_color_ColorSpaceConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class ColorSpaceConverter; + } + } + } + } +} + +class gnu::java::awt::color::ColorSpaceConverter : public ::java::lang::Object +{ + +public: + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *) = 0; + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *) = 0; + virtual JArray< jfloat > * toRGB(JArray< jfloat > *) = 0; + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_awt_color_ColorSpaceConverter__ diff --git a/libjava/gnu/java/awt/color/GrayProfileConverter.h b/libjava/gnu/java/awt/color/GrayProfileConverter.h new file mode 100644 index 00000000000..b79d2b743a1 --- /dev/null +++ b/libjava/gnu/java/awt/color/GrayProfileConverter.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_GrayProfileConverter__ +#define __gnu_java_awt_color_GrayProfileConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class ColorLookUpTable; + class GrayProfileConverter; + class GrayScaleConverter; + class ToneReproductionCurve; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ICC_ProfileGray; + } + } + } +} + +class gnu::java::awt::color::GrayProfileConverter : public ::java::lang::Object +{ + +public: + GrayProfileConverter(::java::awt::color::ICC_ProfileGray *); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); +private: + ::gnu::java::awt::color::GrayScaleConverter * __attribute__((aligned(__alignof__( ::java::lang::Object)))) gc; + ::gnu::java::awt::color::ToneReproductionCurve * trc; + ::gnu::java::awt::color::ColorLookUpTable * toPCS; + ::gnu::java::awt::color::ColorLookUpTable * fromPCS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_GrayProfileConverter__ diff --git a/libjava/gnu/java/awt/color/GrayScaleConverter.h b/libjava/gnu/java/awt/color/GrayScaleConverter.h new file mode 100644 index 00000000000..bcd8d26066c --- /dev/null +++ b/libjava/gnu/java/awt/color/GrayScaleConverter.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_GrayScaleConverter__ +#define __gnu_java_awt_color_GrayScaleConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class GrayScaleConverter; + } + } + } + } +} + +class gnu::java::awt::color::GrayScaleConverter : public ::java::lang::Object +{ + +public: + GrayScaleConverter(); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); +public: // actually package-private + JArray< jdouble > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) coeff; +private: + static JArray< jfloat > * D50; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_GrayScaleConverter__ diff --git a/libjava/gnu/java/awt/color/LinearRGBConverter.h b/libjava/gnu/java/awt/color/LinearRGBConverter.h new file mode 100644 index 00000000000..bff63b79115 --- /dev/null +++ b/libjava/gnu/java/awt/color/LinearRGBConverter.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_LinearRGBConverter__ +#define __gnu_java_awt_color_LinearRGBConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class LinearRGBConverter; + } + } + } + } +} + +class gnu::java::awt::color::LinearRGBConverter : public ::java::lang::Object +{ + +public: + LinearRGBConverter(); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_LinearRGBConverter__ diff --git a/libjava/gnu/java/awt/color/ProfileHeader.h b/libjava/gnu/java/awt/color/ProfileHeader.h new file mode 100644 index 00000000000..744dc78298e --- /dev/null +++ b/libjava/gnu/java/awt/color/ProfileHeader.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_ProfileHeader__ +#define __gnu_java_awt_color_ProfileHeader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class ProfileHeader; + } + } + } + } +} + +class gnu::java::awt::color::ProfileHeader : public ::java::lang::Object +{ + +public: + ProfileHeader(); + ProfileHeader(JArray< jbyte > *); + virtual void verifyHeader(jint); + virtual JArray< jbyte > * getData(jint); + virtual jint getSize(); + virtual void setSize(jint); + virtual jint getMajorVersion(); + virtual jint getMinorVersion(); + virtual jint getProfileClass(); + virtual void setProfileClass(jint); + virtual jint getColorSpace(); + virtual jint getProfileColorSpace(); + virtual void setColorSpace(jint); + virtual void setProfileColorSpace(jint); +private: + static const jint icMagicNumber = 1633907568; + static JArray< jint > * csTypeMap; +public: + static const jint HEADERSIZE = 128; +private: + static JArray< jint > * classMap; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) size; + jint cmmId; + jint majorVersion; + jint minorVersion; + jint profileClass; + jint colorSpace; + jint profileColorSpace; + JArray< jbyte > * timestamp; + jint platform; + jint flags; + jint magic; + jint manufacturerSig; + jint modelSig; + JArray< jbyte > * attributes; + jint intent; + JArray< jbyte > * illuminant; + jint creatorSig; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_ProfileHeader__ diff --git a/libjava/gnu/java/awt/color/PyccConverter.h b/libjava/gnu/java/awt/color/PyccConverter.h new file mode 100644 index 00000000000..ef9caebca8f --- /dev/null +++ b/libjava/gnu/java/awt/color/PyccConverter.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_PyccConverter__ +#define __gnu_java_awt_color_PyccConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class PyccConverter; + } + } + } + } +} + +class gnu::java::awt::color::PyccConverter : public ::java::lang::Object +{ + +public: + PyccConverter(); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_PyccConverter__ diff --git a/libjava/gnu/java/awt/color/RgbProfileConverter.h b/libjava/gnu/java/awt/color/RgbProfileConverter.h new file mode 100644 index 00000000000..2998894b1c6 --- /dev/null +++ b/libjava/gnu/java/awt/color/RgbProfileConverter.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_RgbProfileConverter__ +#define __gnu_java_awt_color_RgbProfileConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class ColorLookUpTable; + class RgbProfileConverter; + class ToneReproductionCurve; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ICC_ProfileRGB; + } + } + } +} + +class gnu::java::awt::color::RgbProfileConverter : public ::java::lang::Object +{ + +public: + RgbProfileConverter(::java::awt::color::ICC_ProfileRGB *); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); +private: + JArray< JArray< jfloat > * > * invertMatrix(JArray< JArray< jfloat > * > *); + JArray< JArray< jfloat > * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) matrix; + JArray< JArray< jfloat > * > * inv_matrix; + ::gnu::java::awt::color::ToneReproductionCurve * rTRC; + ::gnu::java::awt::color::ToneReproductionCurve * gTRC; + ::gnu::java::awt::color::ToneReproductionCurve * bTRC; + ::gnu::java::awt::color::ColorLookUpTable * toPCS; + ::gnu::java::awt::color::ColorLookUpTable * fromPCS; + static JArray< jfloat > * D50; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_RgbProfileConverter__ diff --git a/libjava/gnu/java/awt/color/SrgbConverter.h b/libjava/gnu/java/awt/color/SrgbConverter.h new file mode 100644 index 00000000000..2debe680450 --- /dev/null +++ b/libjava/gnu/java/awt/color/SrgbConverter.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_SrgbConverter__ +#define __gnu_java_awt_color_SrgbConverter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class SrgbConverter; + } + } + } + } +} + +class gnu::java::awt::color::SrgbConverter : public ::java::lang::Object +{ + +public: + SrgbConverter(); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); + static JArray< jfloat > * XYZtoRGB(JArray< jfloat > *); + static JArray< jfloat > * RGBtoXYZ(JArray< jfloat > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_SrgbConverter__ diff --git a/libjava/gnu/java/awt/color/TagEntry.h b/libjava/gnu/java/awt/color/TagEntry.h new file mode 100644 index 00000000000..a464b32e6e1 --- /dev/null +++ b/libjava/gnu/java/awt/color/TagEntry.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_TagEntry__ +#define __gnu_java_awt_color_TagEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class TagEntry; + } + } + } + } +} + +class gnu::java::awt::color::TagEntry : public ::java::lang::Object +{ + +public: + TagEntry(jint, jint, jint, JArray< jbyte > *); + TagEntry(jint, JArray< jbyte > *); + virtual JArray< jbyte > * getData(); + virtual ::java::lang::String * hashKey(); + virtual ::java::lang::String * toString(); + virtual jint getSignature(); + virtual jint getSize(); + virtual jint getOffset(); + virtual void setOffset(jint); + static ::java::lang::String * tagHashKey(jint); + static const jint entrySize = 12; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) signature; + jint size; + jint offset; + JArray< jbyte > * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_TagEntry__ diff --git a/libjava/gnu/java/awt/color/ToneReproductionCurve.h b/libjava/gnu/java/awt/color/ToneReproductionCurve.h new file mode 100644 index 00000000000..7c0edecb4a6 --- /dev/null +++ b/libjava/gnu/java/awt/color/ToneReproductionCurve.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_color_ToneReproductionCurve__ +#define __gnu_java_awt_color_ToneReproductionCurve__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace color + { + class ToneReproductionCurve; + } + } + } + } +} + +class gnu::java::awt::color::ToneReproductionCurve : public ::java::lang::Object +{ + +public: + ToneReproductionCurve(jfloat); + ToneReproductionCurve(JArray< jfloat > *); + ToneReproductionCurve(JArray< jshort > *); + virtual jfloat lookup(jfloat); + virtual jfloat reverseLookup(jfloat); + virtual void setupReverseTrc(); +private: + JArray< jfloat > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) trc; + jfloat gamma; + JArray< jfloat > * reverseTrc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_color_ToneReproductionCurve__ diff --git a/libjava/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.h b/libjava/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.h new file mode 100644 index 00000000000..13cf4aacee0 --- /dev/null +++ b/libjava/gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_dnd_GtkMouseDragGestureRecognizer__ +#define __gnu_java_awt_dnd_GtkMouseDragGestureRecognizer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace dnd + { + class GtkMouseDragGestureRecognizer; + } + } + } + } + namespace java + { + namespace awt + { + class Component; + namespace dnd + { + class DragGestureListener; + class DragSource; + } + namespace event + { + class MouseEvent; + } + } + } +} + +class gnu::java::awt::dnd::GtkMouseDragGestureRecognizer : public ::java::awt::dnd::MouseDragGestureRecognizer +{ + +public: + GtkMouseDragGestureRecognizer(::java::awt::dnd::DragSource *); + GtkMouseDragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *); + GtkMouseDragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *, jint); + GtkMouseDragGestureRecognizer(::java::awt::dnd::DragSource *, ::java::awt::Component *, jint, ::java::awt::dnd::DragGestureListener *); + virtual void registerListeners(); + virtual void unregisterListeners(); + 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 *); +private: + jint getDropActionFromEvent(::java::awt::event::MouseEvent *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_dnd_GtkMouseDragGestureRecognizer__ diff --git a/libjava/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.h b/libjava/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.h new file mode 100644 index 00000000000..a53f91664d7 --- /dev/null +++ b/libjava/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__ +#define __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace dnd + { + namespace peer + { + namespace gtk + { + class GtkDragSourceContextPeer; + class GtkDropTargetContextPeer; + } + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Cursor; + class Image; + class Point; + namespace dnd + { + class DragGestureEvent; + class DragSourceContext; + } + namespace peer + { + class ComponentPeer; + } + } + } +} + +class gnu::java::awt::dnd::peer::gtk::GtkDragSourceContextPeer : public ::gnu::java::awt::peer::gtk::GtkGenericPeer +{ + +public: // actually package-private + virtual void nativeStartDrag(::java::awt::Image *, jint, jint, jint, ::java::lang::String *); + virtual void connectSignals(::java::awt::peer::ComponentPeer *); + virtual void create(::java::awt::peer::ComponentPeer *); + virtual void nativeSetCursor(jint); + virtual void setTarget(::gnu::java::awt::dnd::peer::gtk::GtkDropTargetContextPeer *); +public: + GtkDragSourceContextPeer(::java::awt::dnd::DragGestureEvent *); +public: // actually package-private + virtual ::java::awt::peer::ComponentPeer * getComponentPeer(::java::awt::Component *); +public: + virtual void startDrag(::java::awt::dnd::DragSourceContext *, ::java::awt::Cursor *, ::java::awt::Image *, ::java::awt::Point *); + virtual ::java::awt::Cursor * getCursor(); + virtual void setCursor(::java::awt::Cursor *); + virtual void transferablesFlavorsChanged(); + virtual void dragEnter(jint, jint); + virtual void dragExit(jint, jint, jint); + virtual void dragDropEnd(jint, jboolean, jint, jint); + virtual void dragMouseMoved(jint, jint); + virtual void dragOver(jint, jint); + virtual void dragActionChanged(jint, jint); +private: + ::java::awt::peer::ComponentPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkGenericPeer)))) peer; + ::java::awt::Cursor * cursor; + ::java::awt::dnd::DragSourceContext * context; +public: + static ::java::awt::Component * target; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__ diff --git a/libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.h b/libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.h new file mode 100644 index 00000000000..2ddfeb536be --- /dev/null +++ b/libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_dnd_peer_gtk_GtkDropTargetContextPeer__ +#define __gnu_java_awt_dnd_peer_gtk_GtkDropTargetContextPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace dnd + { + namespace peer + { + namespace gtk + { + class GtkDropTargetContextPeer; + } + } + } + } + } + } + namespace java + { + namespace awt + { + namespace datatransfer + { + class DataFlavor; + class Transferable; + } + namespace dnd + { + class DropTarget; + } + } + } +} + +class gnu::java::awt::dnd::peer::gtk::GtkDropTargetContextPeer : public ::gnu::java::awt::peer::gtk::GtkGenericPeer +{ + +public: + GtkDropTargetContextPeer(::java::lang::Object *); + virtual void setTargetActions(jint); + virtual jint getTargetActions(); + virtual ::java::awt::dnd::DropTarget * getDropTarget(); + virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors(); + virtual ::java::awt::datatransfer::Transferable * getTransferable(); + virtual jboolean isTransferableJVMLocal(); + virtual void acceptDrag(jint); + virtual void rejectDrag(); + virtual void acceptDrop(jint); + virtual void rejectDrop(); + virtual void dropComplete(jboolean); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_dnd_peer_gtk_GtkDropTargetContextPeer__ diff --git a/libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.h b/libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.h new file mode 100644 index 00000000000..a5797f2522e --- /dev/null +++ b/libjava/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_dnd_peer_gtk_GtkDropTargetPeer__ +#define __gnu_java_awt_dnd_peer_gtk_GtkDropTargetPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace dnd + { + namespace peer + { + namespace gtk + { + class GtkDropTargetPeer; + } + } + } + } + } + } + namespace java + { + namespace awt + { + namespace dnd + { + class DropTarget; + } + } + } +} + +class gnu::java::awt::dnd::peer::gtk::GtkDropTargetPeer : public ::gnu::java::awt::peer::gtk::GtkGenericPeer +{ + +public: + GtkDropTargetPeer(); + virtual void addDropTarget(::java::awt::dnd::DropTarget *); + virtual void removeDropTarget(::java::awt::dnd::DropTarget *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_dnd_peer_gtk_GtkDropTargetPeer__ diff --git a/libjava/gnu/java/awt/font/FontDelegate.h b/libjava/gnu/java/awt/font/FontDelegate.h new file mode 100644 index 00000000000..202529b547a --- /dev/null +++ b/libjava/gnu/java/awt/font/FontDelegate.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_FontDelegate__ +#define __gnu_java_awt_font_FontDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + class FontDelegate; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + namespace font + { + class FontRenderContext; + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class GeneralPath; + class Point2D; + } + } + namespace text + { + class CharacterIterator; + } + } +} + +class gnu::java::awt::font::FontDelegate : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getFullName(::java::util::Locale *) = 0; + virtual ::java::lang::String * getFamilyName(::java::util::Locale *) = 0; + virtual ::java::lang::String * getSubFamilyName(::java::util::Locale *) = 0; + virtual ::java::lang::String * getPostScriptName() = 0; + virtual jint getNumGlyphs() = 0; + virtual jint getMissingGlyphCode() = 0; + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *) = 0; + virtual void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *) = 0; + virtual ::java::awt::geom::GeneralPath * getGlyphOutline(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean) = 0; + virtual ::java::lang::String * getGlyphName(jint) = 0; + virtual jfloat getAscent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean) = 0; + virtual jfloat getDescent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_awt_font_FontDelegate__ diff --git a/libjava/gnu/java/awt/font/FontFactory.h b/libjava/gnu/java/awt/font/FontFactory.h new file mode 100644 index 00000000000..660ca220962 --- /dev/null +++ b/libjava/gnu/java/awt/font/FontFactory.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_FontFactory__ +#define __gnu_java_awt_font_FontFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + class FontDelegate; + class FontFactory; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::FontFactory : public ::java::lang::Object +{ + + FontFactory(); +public: + static JArray< ::gnu::java::awt::font::FontDelegate * > * createFonts(::java::nio::ByteBuffer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_FontFactory__ diff --git a/libjava/gnu/java/awt/font/GNUGlyphVector.h b/libjava/gnu/java/awt/font/GNUGlyphVector.h new file mode 100644 index 00000000000..4d47e2addc2 --- /dev/null +++ b/libjava/gnu/java/awt/font/GNUGlyphVector.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_GNUGlyphVector__ +#define __gnu_java_awt_font_GNUGlyphVector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + class FontDelegate; + class GNUGlyphVector; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Shape; + namespace font + { + class FontRenderContext; + class GlyphJustificationInfo; + class GlyphMetrics; + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class Point2D; + class Rectangle2D; + } + } + } +} + +class gnu::java::awt::font::GNUGlyphVector : public ::java::awt::font::GlyphVector +{ + +public: + GNUGlyphVector(::gnu::java::awt::font::FontDelegate *, ::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *); + virtual ::java::awt::Font * getFont(); + virtual ::java::awt::font::FontRenderContext * getFontRenderContext(); + virtual void performDefaultLayout(); + virtual jint getNumGlyphs(); + virtual jint getGlyphCode(jint); + virtual JArray< jint > * getGlyphCodes(jint, jint, JArray< jint > *); + virtual ::java::awt::geom::Rectangle2D * getLogicalBounds(); + virtual ::java::awt::geom::Rectangle2D * getVisualBounds(); + virtual ::java::awt::Shape * getOutline(); + virtual ::java::awt::Shape * getOutline(jfloat, jfloat); + virtual ::java::awt::Shape * getGlyphOutline(jint); + virtual ::java::awt::geom::Point2D * getGlyphPosition(jint); + virtual void setGlyphPosition(jint, ::java::awt::geom::Point2D *); + virtual ::java::awt::geom::AffineTransform * getGlyphTransform(jint); + virtual void setGlyphTransform(jint, ::java::awt::geom::AffineTransform *); + virtual jint getLayoutFlags(); + virtual JArray< jfloat > * getGlyphPositions(jint, jint, JArray< jfloat > *); +private: + jfloat getAscent(); + jfloat getDescent(); +public: + virtual ::java::awt::Shape * getGlyphLogicalBounds(jint); + virtual ::java::awt::Shape * getGlyphVisualBounds(jint); + virtual ::java::awt::font::GlyphMetrics * getGlyphMetrics(jint); + virtual ::java::awt::font::GlyphJustificationInfo * getGlyphJustificationInfo(jint); + virtual jboolean equals(::java::awt::font::GlyphVector *); +private: + void validate(); + ::gnu::java::awt::font::FontDelegate * __attribute__((aligned(__alignof__( ::java::awt::font::GlyphVector)))) fontDelegate; + ::java::awt::Font * font; + ::java::awt::font::FontRenderContext * renderContext; + JArray< jint > * glyphs; + jfloat fontSize; + ::java::awt::geom::AffineTransform * transform; + jboolean valid; + JArray< jfloat > * pos; + JArray< ::java::awt::geom::AffineTransform * > * transforms; + jint layoutFlags; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_GNUGlyphVector__ diff --git a/libjava/gnu/java/awt/font/autofit/AxisHints.h b/libjava/gnu/java/awt/font/autofit/AxisHints.h new file mode 100644 index 00000000000..29dad47f239 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/AxisHints.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_AxisHints__ +#define __gnu_java_awt_font_autofit_AxisHints__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class AxisHints; + class Segment; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::AxisHints : public ::java::lang::Object +{ + +public: // actually package-private + AxisHints(); + JArray< ::gnu::java::awt::font::autofit::Segment * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) segments; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_AxisHints__ diff --git a/libjava/gnu/java/awt/font/autofit/Constants.h b/libjava/gnu/java/awt/font/autofit/Constants.h new file mode 100644 index 00000000000..ae103683e0d --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/Constants.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_Constants__ +#define __gnu_java_awt_font_autofit_Constants__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class Constants; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::Constants : public ::java::lang::Object +{ + +public: + static const jint DIMENSION_HORZ = 0; + static const jint DIMENSION_VERT = 1; + static const jint DIMENSION_MAX = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_awt_font_autofit_Constants__ diff --git a/libjava/gnu/java/awt/font/autofit/GlyphHints.h b/libjava/gnu/java/awt/font/autofit/GlyphHints.h new file mode 100644 index 00000000000..6a878d56c81 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/GlyphHints.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_GlyphHints__ +#define __gnu_java_awt_font_autofit_GlyphHints__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class AxisHints; + class GlyphHints; + class ScriptMetrics; + } + namespace opentype + { + namespace truetype + { + class Zone; + } + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::GlyphHints : public ::java::lang::Object +{ + +public: // actually package-private + GlyphHints(); + virtual void rescale(::gnu::java::awt::font::autofit::ScriptMetrics *); + virtual void reload(::gnu::java::awt::font::opentype::truetype::Zone *); + virtual void computeSegments(jint); + virtual void linkSegments(jint); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xScale; + jint xDelta; + jint yScale; + jint yDelta; + JArray< ::gnu::java::awt::font::autofit::AxisHints * > * axis; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_GlyphHints__ diff --git a/libjava/gnu/java/awt/font/autofit/Latin.h b/libjava/gnu/java/awt/font/autofit/Latin.h new file mode 100644 index 00000000000..af4c300d943 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/Latin.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_Latin__ +#define __gnu_java_awt_font_autofit_Latin__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class GlyphHints; + class Latin; + class LatinMetrics; + class ScriptMetrics; + } + namespace opentype + { + class OpenTypeFont; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::Latin : public ::java::lang::Object +{ + +public: // actually package-private + Latin(); +public: + virtual void applyHints(::gnu::java::awt::font::autofit::GlyphHints *, ::gnu::java::awt::font::autofit::ScriptMetrics *); + virtual void doneMetrics(::gnu::java::awt::font::autofit::ScriptMetrics *); + virtual void initHints(::gnu::java::awt::font::autofit::GlyphHints *, ::gnu::java::awt::font::autofit::ScriptMetrics *); + virtual void initMetrics(::gnu::java::awt::font::autofit::ScriptMetrics *, ::gnu::java::awt::font::opentype::OpenTypeFont *); + virtual void scaleMetrics(::gnu::java::awt::font::autofit::ScriptMetrics *); +private: + void initWidths(::gnu::java::awt::font::autofit::LatinMetrics *, ::gnu::java::awt::font::opentype::OpenTypeFont *, jchar); + void initBlues(::gnu::java::awt::font::autofit::LatinMetrics *, ::gnu::java::awt::font::opentype::OpenTypeFont *); + jint constant(::gnu::java::awt::font::autofit::LatinMetrics *, jint); + static const jint MAX_WIDTHS = 16; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_Latin__ diff --git a/libjava/gnu/java/awt/font/autofit/LatinAxis.h b/libjava/gnu/java/awt/font/autofit/LatinAxis.h new file mode 100644 index 00000000000..631cd794a57 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/LatinAxis.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_LatinAxis__ +#define __gnu_java_awt_font_autofit_LatinAxis__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class LatinAxis; + class Width; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::LatinAxis : public ::java::lang::Object +{ + +public: // actually package-private + LatinAxis(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) scale; + jint delta; + jint widthCount; + JArray< ::gnu::java::awt::font::autofit::Width * > * widths; + jfloat edgeDistanceTreshold; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_LatinAxis__ diff --git a/libjava/gnu/java/awt/font/autofit/LatinMetrics.h b/libjava/gnu/java/awt/font/autofit/LatinMetrics.h new file mode 100644 index 00000000000..a7a12fd4c7e --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/LatinMetrics.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_LatinMetrics__ +#define __gnu_java_awt_font_autofit_LatinMetrics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class LatinAxis; + class LatinMetrics; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::LatinMetrics : public ::gnu::java::awt::font::autofit::ScriptMetrics +{ + +public: // actually package-private + LatinMetrics(); + JArray< ::gnu::java::awt::font::autofit::LatinAxis * > * __attribute__((aligned(__alignof__( ::gnu::java::awt::font::autofit::ScriptMetrics)))) axis; + jint unitsPerEm; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_LatinMetrics__ diff --git a/libjava/gnu/java/awt/font/autofit/Scaler.h b/libjava/gnu/java/awt/font/autofit/Scaler.h new file mode 100644 index 00000000000..ffebc5a30dd --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/Scaler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_Scaler__ +#define __gnu_java_awt_font_autofit_Scaler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class Scaler; + } + namespace opentype + { + class OpenTypeFont; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::Scaler : public ::java::lang::Object +{ + +public: // actually package-private + Scaler(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xScale; + jint xDelta; + jint yScale; + jint yDelta; + ::gnu::java::awt::font::opentype::OpenTypeFont * face; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_Scaler__ diff --git a/libjava/gnu/java/awt/font/autofit/Script.h b/libjava/gnu/java/awt/font/autofit/Script.h new file mode 100644 index 00000000000..5a722896a80 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/Script.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_Script__ +#define __gnu_java_awt_font_autofit_Script__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class GlyphHints; + class Script; + class ScriptMetrics; + } + namespace opentype + { + class OpenTypeFont; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::Script : public ::java::lang::Object +{ + +public: + virtual void initMetrics(::gnu::java::awt::font::autofit::ScriptMetrics *, ::gnu::java::awt::font::opentype::OpenTypeFont *) = 0; + virtual void scaleMetrics(::gnu::java::awt::font::autofit::ScriptMetrics *) = 0; + virtual void doneMetrics(::gnu::java::awt::font::autofit::ScriptMetrics *) = 0; + virtual void initHints(::gnu::java::awt::font::autofit::GlyphHints *, ::gnu::java::awt::font::autofit::ScriptMetrics *) = 0; + virtual void applyHints(::gnu::java::awt::font::autofit::GlyphHints *, ::gnu::java::awt::font::autofit::ScriptMetrics *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_awt_font_autofit_Script__ diff --git a/libjava/gnu/java/awt/font/autofit/ScriptMetrics.h b/libjava/gnu/java/awt/font/autofit/ScriptMetrics.h new file mode 100644 index 00000000000..79ab128b5a5 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/ScriptMetrics.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_ScriptMetrics__ +#define __gnu_java_awt_font_autofit_ScriptMetrics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class Scaler; + class Script; + class ScriptMetrics; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::ScriptMetrics : public ::java::lang::Object +{ + +public: // actually package-private + ScriptMetrics(); + ::gnu::java::awt::font::autofit::Script * __attribute__((aligned(__alignof__( ::java::lang::Object)))) script; + ::gnu::java::awt::font::autofit::Scaler * scaler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_ScriptMetrics__ diff --git a/libjava/gnu/java/awt/font/autofit/Segment.h b/libjava/gnu/java/awt/font/autofit/Segment.h new file mode 100644 index 00000000000..4b2adef67b0 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/Segment.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_Segment__ +#define __gnu_java_awt_font_autofit_Segment__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class Segment; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::Segment : public ::java::lang::Object +{ + +public: // actually package-private + Segment(); + ::gnu::java::awt::font::autofit::Segment * __attribute__((aligned(__alignof__( ::java::lang::Object)))) link; + jint index; + jint pos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_Segment__ diff --git a/libjava/gnu/java/awt/font/autofit/Width.h b/libjava/gnu/java/awt/font/autofit/Width.h new file mode 100644 index 00000000000..23d21fe07c5 --- /dev/null +++ b/libjava/gnu/java/awt/font/autofit/Width.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_autofit_Width__ +#define __gnu_java_awt_font_autofit_Width__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace autofit + { + class Width; + } + } + } + } + } +} + +class gnu::java::awt::font::autofit::Width : public ::java::lang::Object +{ + +public: + Width(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) org; + jint cur; + jint fit; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_autofit_Width__ diff --git a/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Dummy.h b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Dummy.h new file mode 100644 index 00000000000..a5f784d7a7c --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Dummy.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_CharGlyphMap$Dummy__ +#define __gnu_java_awt_font_opentype_CharGlyphMap$Dummy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class CharGlyphMap$Dummy; + } + } + } + } + } +} + +class gnu::java::awt::font::opentype::CharGlyphMap$Dummy : public ::gnu::java::awt::font::opentype::CharGlyphMap +{ + + CharGlyphMap$Dummy(); +public: + jint getGlyph(jint); +public: // actually package-private + CharGlyphMap$Dummy(::gnu::java::awt::font::opentype::CharGlyphMap$Dummy *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_CharGlyphMap$Dummy__ diff --git a/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type0.h b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type0.h new file mode 100644 index 00000000000..0b5a45f9d99 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type0.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_CharGlyphMap$Type0__ +#define __gnu_java_awt_font_opentype_CharGlyphMap$Type0__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class CharGlyphMap$Type0; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::CharGlyphMap$Type0 : public ::gnu::java::awt::font::opentype::CharGlyphMap +{ + +public: + CharGlyphMap$Type0(::java::nio::ByteBuffer *); +private: + void readSingleTable(::java::nio::ByteBuffer *, jint, jint, jint); +public: + jint getGlyph(jint); +private: + static ::java::lang::String * getUpper129(jint, jint, jint); + JArray< jchar > * __attribute__((aligned(__alignof__( ::gnu::java::awt::font::opentype::CharGlyphMap)))) glyphToUCS2; + static ::java::lang::String * UPPER_ARABIC; + static ::java::lang::String * UPPER_EAST_EUROPEAN_ROMAN; + static ::java::lang::String * UPPER_CROATIAN; + static ::java::lang::String * UPPER_CYRILLIC; + static ::java::lang::String * UPPER_FARSI; + static ::java::lang::String * UPPER_GREEK; + static ::java::lang::String * UPPER_HEBREW; + static ::java::lang::String * UPPER_ICELANDIC; + static ::java::lang::String * UPPER_ROMAN; + static ::java::lang::String * UPPER_ROMANIAN; + static ::java::lang::String * UPPER_TURKISH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_CharGlyphMap$Type0__ diff --git a/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type12.h b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type12.h new file mode 100644 index 00000000000..d1250fcbe8b --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type12.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_CharGlyphMap$Type12__ +#define __gnu_java_awt_font_opentype_CharGlyphMap$Type12__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class CharGlyphMap$Type12; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class IntBuffer; + } + } +} + +class gnu::java::awt::font::opentype::CharGlyphMap$Type12 : public ::gnu::java::awt::font::opentype::CharGlyphMap +{ + +public: // actually package-private + static jboolean isSupported(jint, jint); + CharGlyphMap$Type12(::java::nio::ByteBuffer *, jint, jint); +public: + jint getGlyph(jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::java::awt::font::opentype::CharGlyphMap)))) numGroups; + ::java::nio::IntBuffer * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_CharGlyphMap$Type12__ diff --git a/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type4.h b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type4.h new file mode 100644 index 00000000000..30092003607 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/CharGlyphMap$Type4.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_CharGlyphMap$Type4__ +#define __gnu_java_awt_font_opentype_CharGlyphMap$Type4__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class CharGlyphMap$Type4; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + class ShortBuffer; + } + } +} + +class gnu::java::awt::font::opentype::CharGlyphMap$Type4 : public ::gnu::java::awt::font::opentype::CharGlyphMap +{ + +public: // actually package-private + static jboolean isSupported(jint, jint, jint); + static ::gnu::java::awt::font::opentype::CharGlyphMap$Type4 * readTable(::java::nio::ByteBuffer *, jint, jint); +private: + CharGlyphMap$Type4(jint, ::java::nio::CharBuffer *, ::java::nio::CharBuffer *, ::java::nio::ShortBuffer *, ::java::nio::CharBuffer *); +public: + jint getGlyph(jint); +private: + jint find(jchar); + ::java::nio::CharBuffer * __attribute__((aligned(__alignof__( ::gnu::java::awt::font::opentype::CharGlyphMap)))) lastChar; + ::java::nio::CharBuffer * firstChar; + ::java::nio::ShortBuffer * idDelta; + ::java::nio::CharBuffer * rangeID; + jint numSegments; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_CharGlyphMap$Type4__ diff --git a/libjava/gnu/java/awt/font/opentype/CharGlyphMap.h b/libjava/gnu/java/awt/font/opentype/CharGlyphMap.h new file mode 100644 index 00000000000..d5baafb7231 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/CharGlyphMap.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_CharGlyphMap__ +#define __gnu_java_awt_font_opentype_CharGlyphMap__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class CharGlyphMap; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::CharGlyphMap : public ::java::lang::Object +{ + +public: + CharGlyphMap(); + virtual jint getGlyph(jint) = 0; + static ::gnu::java::awt::font::opentype::CharGlyphMap * forTable(::java::nio::ByteBuffer *); +private: + static const jint PLATFORM_UNICODE = 0; + static const jint PLATFORM_MACINTOSH = 1; + static const jint PLATFORM_MICROSOFT = 3; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_CharGlyphMap__ diff --git a/libjava/gnu/java/awt/font/opentype/GlyphNamer.h b/libjava/gnu/java/awt/font/opentype/GlyphNamer.h new file mode 100644 index 00000000000..55e47902f4d --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/GlyphNamer.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_GlyphNamer__ +#define __gnu_java_awt_font_opentype_GlyphNamer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class GlyphNamer; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + class IntBuffer; + } + } +} + +class gnu::java::awt::font::opentype::GlyphNamer : public ::java::lang::Object +{ + + GlyphNamer(jint, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); +public: + static ::gnu::java::awt::font::opentype::GlyphNamer * forTables(jint, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); +public: // actually package-private + ::java::lang::String * getGlyphName(jint); +private: + void readZapf(jint); + void readPost(); + static ::java::lang::String * getAGLFNName(jchar); + static ::java::lang::String * getGlyphName(JArray< jchar > *); + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) postTable; + ::java::nio::ByteBuffer * zapfTable; + ::java::nio::IntBuffer * zapfOffsets; + jint zapfExtraInfo; + jint postFormat; + JArray< ::java::lang::String * > * glyphNames; + ::java::nio::CharBuffer * glyphCharacterCodes; + static JArray< ::java::lang::String * > * STANDARD_POSTSCRIPT_GLYPH_NAMES; + static ::java::lang::String * AGLFN_GLYPHS; + static ::java::lang::String * AGLFN_NAME_OFFSET; + static ::java::lang::String * AGLFN_NAMES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_GlyphNamer__ diff --git a/libjava/gnu/java/awt/font/opentype/MacResourceFork$Resource.h b/libjava/gnu/java/awt/font/opentype/MacResourceFork$Resource.h new file mode 100644 index 00000000000..d6ba8363450 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/MacResourceFork$Resource.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_MacResourceFork$Resource__ +#define __gnu_java_awt_font_opentype_MacResourceFork$Resource__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class MacResourceFork$Resource; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::MacResourceFork$Resource : public ::java::lang::Object +{ + + MacResourceFork$Resource(::java::nio::ByteBuffer *, jint, jshort, jint, jint); +public: + jint getType(); + jshort getID(); + ::java::nio::ByteBuffer * getContent(); + jint getLength(); +public: // actually package-private + MacResourceFork$Resource(::java::nio::ByteBuffer *, jint, jshort, jint, jint, ::gnu::java::awt::font::opentype::MacResourceFork$Resource *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + jshort id; + jbyte attribute; + jint nameOffset; + jint dataOffset; + ::java::nio::ByteBuffer * buf; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_MacResourceFork$Resource__ diff --git a/libjava/gnu/java/awt/font/opentype/MacResourceFork.h b/libjava/gnu/java/awt/font/opentype/MacResourceFork.h new file mode 100644 index 00000000000..76ad0a65353 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/MacResourceFork.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_MacResourceFork__ +#define __gnu_java_awt_font_opentype_MacResourceFork__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class MacResourceFork; + class MacResourceFork$Resource; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::MacResourceFork : public ::java::lang::Object +{ + +public: + MacResourceFork(::java::nio::ByteBuffer *); + JArray< ::gnu::java::awt::font::opentype::MacResourceFork$Resource * > * getResources(jint); + ::gnu::java::awt::font::opentype::MacResourceFork$Resource * getResource(jint, jshort); +public: // actually package-private + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) types; + JArray< JArray< ::gnu::java::awt::font::opentype::MacResourceFork$Resource * > * > * resources; + ::java::nio::ByteBuffer * buf; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_MacResourceFork__ diff --git a/libjava/gnu/java/awt/font/opentype/NameDecoder.h b/libjava/gnu/java/awt/font/opentype/NameDecoder.h new file mode 100644 index 00000000000..a33ffa3ed6a --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/NameDecoder.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_NameDecoder__ +#define __gnu_java_awt_font_opentype_NameDecoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class NameDecoder; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::NameDecoder : public ::java::lang::Object +{ + +public: + NameDecoder(); + static ::java::lang::String * getName(::java::nio::ByteBuffer *, jint, ::java::util::Locale *); +private: + static jint getMacLanguageCode(::java::util::Locale *); + static jint getMicrosoftLanguageCode(::java::util::Locale *); + static jint findLanguageCode(::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * decodeName(jint, jint, jint, ::java::nio::ByteBuffer *, jint, jint); + static ::java::lang::String * decodeName(::java::lang::String *, ::java::nio::ByteBuffer *, jint, jint); + static ::java::util::Locale * getMacLocale(jint); + static ::java::util::Locale * getWindowsLocale(jint); + static ::java::lang::String * getMacCharsetName(jint); + static ::java::lang::String * getMicrosoftCharsetName(jint); +public: + static ::java::util::Locale * getLocale(jint, jint, jint); + static ::java::lang::String * getCharsetName(jint, jint, jint); + static const jint NAME_COPYRIGHT = 0; + static const jint NAME_FAMILY = 1; + static const jint NAME_SUBFAMILY = 2; + static const jint NAME_UNIQUE = 3; + static const jint NAME_FULL = 4; + static const jint NAME_VERSION = 5; + static const jint NAME_POSTSCRIPT = 6; + static const jint NAME_TRADEMARK = 7; + static const jint NAME_MANUFACTURER = 8; + static const jint NAME_DESIGNER = 9; + static const jint NAME_DESCRIPTION = 10; + static const jint NAME_VENDOR_URL = 11; + static const jint NAME_DESIGNER_URL = 12; + static const jint NAME_LICENSE = 13; + static const jint NAME_LICENSE_URL = 14; + static const jint NAME_PREFERRED_FAMILY = 16; + static const jint NAME_PREFERRED_SUBFAMILY = 17; + static const jint NAME_FULL_MACCOMPATIBLE = 18; + static const jint NAME_SAMPLE_TEXT = 19; + static const jint NAME_POSTSCRIPT_CID = 20; +private: + static const jint PLATFORM_MACINTOSH = 1; + static const jint PLATFORM_MICROSOFT = 3; + static ::java::lang::String * macLanguageCodes; + static ::java::lang::String * microsoftLanguageCodes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_NameDecoder__ diff --git a/libjava/gnu/java/awt/font/opentype/OpenTypeFont.h b/libjava/gnu/java/awt/font/opentype/OpenTypeFont.h new file mode 100644 index 00000000000..149337c4c8a --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/OpenTypeFont.h @@ -0,0 +1,122 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_OpenTypeFont__ +#define __gnu_java_awt_font_opentype_OpenTypeFont__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class CharGlyphMap; + class GlyphNamer; + class OpenTypeFont; + class Scaler; + namespace truetype + { + class Zone; + } + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + namespace font + { + class FontRenderContext; + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class GeneralPath; + class Point2D; + } + } + namespace nio + { + class ByteBuffer; + } + namespace text + { + class CharacterIterator; + } + } +} + +class gnu::java::awt::font::opentype::OpenTypeFont : public ::java::lang::Object +{ + +public: // actually package-private + OpenTypeFont(::java::nio::ByteBuffer *, jint); +private: + jint getTableIndex(jint); +public: + ::java::lang::String * getFamilyName(::java::util::Locale *); + ::java::lang::String * getSubFamilyName(::java::util::Locale *); + ::java::lang::String * getFullName(::java::util::Locale *); + ::java::lang::String * getPostScriptName(); + jint getNumGlyphs(); + jint getMissingGlyphCode(); +private: + ::java::lang::String * getName(jint, ::java::util::Locale *); +public: + jint getVersion(); + ::java::nio::ByteBuffer * getFontTable(jint); + jint getFontTableSize(jint); +private: + ::gnu::java::awt::font::opentype::CharGlyphMap * getCharGlyphMap(); +public: + jint getGlyph(jint); + ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *); + void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *); + ::java::awt::geom::GeneralPath * getGlyphOutline(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean); + ::gnu::java::awt::font::opentype::truetype::Zone * getRawGlyphOutline(jint, ::java::awt::geom::AffineTransform *); + ::java::lang::String * getGlyphName(jint); + jfloat getAscent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean); + jfloat getDescent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean); +public: // actually package-private + static ::java::lang::String * tagToString(jint); + static const jint TAG_OTTO = 1330926671; + static const jint TAG_SFNT = 1936092788; + static const jint TAG_TRUE = 1953658213; + static const jint TAG_TTCF = 1953784678; + static const jint TAG_ZAPF = 1516335206; + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buf; + jint numGlyphs; + JArray< jint > * tableTag; + JArray< jint > * tableStart; + JArray< jint > * tableLength; +private: + jint version; +public: + jint unitsPerEm; +private: + jfloat emsPerUnit; + ::gnu::java::awt::font::opentype::Scaler * scaler; + ::gnu::java::awt::font::opentype::CharGlyphMap * cmap; + ::gnu::java::awt::font::opentype::GlyphNamer * glyphNamer; + ::java::nio::ByteBuffer * nameTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_OpenTypeFont__ diff --git a/libjava/gnu/java/awt/font/opentype/OpenTypeFontFactory.h b/libjava/gnu/java/awt/font/opentype/OpenTypeFontFactory.h new file mode 100644 index 00000000000..d3562506d32 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/OpenTypeFontFactory.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_OpenTypeFontFactory__ +#define __gnu_java_awt_font_opentype_OpenTypeFontFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + class FontDelegate; + namespace opentype + { + class OpenTypeFontFactory; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::OpenTypeFontFactory : public ::java::lang::Object +{ + + OpenTypeFontFactory(); +public: + static JArray< ::gnu::java::awt::font::FontDelegate * > * createFonts(::java::nio::ByteBuffer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_OpenTypeFontFactory__ diff --git a/libjava/gnu/java/awt/font/opentype/Scaler.h b/libjava/gnu/java/awt/font/opentype/Scaler.h new file mode 100644 index 00000000000..a9118288ba2 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/Scaler.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_Scaler__ +#define __gnu_java_awt_font_opentype_Scaler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + class Scaler; + namespace truetype + { + class Zone; + } + } + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class AffineTransform; + class GeneralPath; + class Point2D; + } + } + } +} + +class gnu::java::awt::font::opentype::Scaler : public ::java::lang::Object +{ + +public: + Scaler(); + virtual ::java::awt::geom::GeneralPath * getOutline(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean) = 0; + virtual void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *) = 0; + virtual jfloat getAscent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean) = 0; + virtual jfloat getDescent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean) = 0; + virtual ::gnu::java::awt::font::opentype::truetype::Zone * getRawOutline(jint, ::java::awt::geom::AffineTransform *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_Scaler__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/Fixed.h b/libjava/gnu/java/awt/font/opentype/truetype/Fixed.h new file mode 100644 index 00000000000..e93546aca72 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/Fixed.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_Fixed__ +#define __gnu_java_awt_font_opentype_truetype_Fixed__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class Fixed; + } + } + } + } + } + } +} + +class gnu::java::awt::font::opentype::truetype::Fixed : public ::java::lang::Object +{ + + Fixed(); +public: + static jint mul(jint, jint); + static jint div(jint, jint); + static jint ceil(jint); + static jint floor(jint); + static jint vectorLength(jint, jint); + static jint intValue(jint); + static jfloat floatValue(jint); + static jdouble doubleValue(jint); + static jint valueOf(jfloat); + static jint valueOf(jdouble); + static ::java::lang::String * toString(jint); + static ::java::lang::String * toString(jint, jint); + static const jint ONE = 64; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_Fixed__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/GlyphLoader.h b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLoader.h new file mode 100644 index 00000000000..2b0dd072428 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLoader.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_GlyphLoader__ +#define __gnu_java_awt_font_opentype_truetype_GlyphLoader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class GlyphLoader; + class GlyphLocator; + class GlyphMeasurer; + class VirtualMachine; + class Zone; + } + } + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class AffineTransform; + } + } + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::truetype::GlyphLoader : public ::java::lang::Object +{ + +public: // actually package-private + GlyphLoader(::gnu::java::awt::font::opentype::truetype::GlyphLocator *, ::gnu::java::awt::font::opentype::truetype::VirtualMachine *, jint, jint, jint, ::gnu::java::awt::font::opentype::truetype::GlyphMeasurer *); +public: + void loadGlyph(jint, jdouble, ::java::awt::geom::AffineTransform *, jboolean, ::gnu::java::awt::font::opentype::truetype::Zone *); + void loadGlyph(jint, ::java::awt::geom::AffineTransform *, ::gnu::java::awt::font::opentype::truetype::Zone *); +private: + void loadSubGlyph(jint, jdouble, ::java::awt::geom::AffineTransform *, jboolean, ::gnu::java::awt::font::opentype::truetype::Zone *, jint, jint); + void loadSimpleGlyph(jint, jdouble, ::java::awt::geom::AffineTransform *, jboolean, jint, ::java::nio::ByteBuffer *, ::gnu::java::awt::font::opentype::truetype::Zone *, jint, jint); + void loadCompoundGlyph(jint, jdouble, ::java::awt::geom::AffineTransform *, jboolean, ::java::nio::ByteBuffer *, ::gnu::java::awt::font::opentype::truetype::Zone *, jint, jint); + jdouble getDouble214(::java::nio::ByteBuffer *); + void loadFlags(jint, ::java::nio::ByteBuffer *); + void loadCoordinates(jint, ::java::nio::ByteBuffer *, ::gnu::java::awt::font::opentype::truetype::Zone *); + void setPhantomPoints(jint, jint, ::gnu::java::awt::font::opentype::truetype::Zone *); + ::gnu::java::awt::font::opentype::truetype::GlyphLocator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) glyphLocator; + ::gnu::java::awt::font::opentype::truetype::GlyphMeasurer * glyphMeasurer; + ::gnu::java::awt::font::opentype::truetype::VirtualMachine * vm; + jint unitsPerEm; + JArray< jint > * contourEndPoints; + JArray< jbyte > * pointFlags; + static const jshort ARGS_ARE_WORDS = 1; + static const jshort ARGS_ARE_XY_VALUES = 2; + static const jshort ROUND_XY_TO_GRID = 4; + static const jshort WE_HAVE_A_SCALE = 8; + static const jshort MORE_COMPONENTS = 32; + static const jshort WE_HAVE_AN_X_AND_Y_SCALE = 64; + static const jshort WE_HAVE_A_TWO_BY_TWO = 128; + static const jshort WE_HAVE_INSTRUCTIONS = 256; + static const jshort USE_MY_METRICS = 512; + static const jshort OVERLAP_COMPOUND = 1024; + static const jshort SCALED_COMPONENT_OFFSET = 2048; + static const jshort UNSCALED_COMPONENT_OFFSET = 4096; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_GlyphLoader__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$FourByte.h b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$FourByte.h new file mode 100644 index 00000000000..1e06f695361 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$FourByte.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_GlyphLocator$FourByte__ +#define __gnu_java_awt_font_opentype_truetype_GlyphLocator$FourByte__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class GlyphLocator$FourByte; + } + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class IntBuffer; + } + } +} + +class gnu::java::awt::font::opentype::truetype::GlyphLocator$FourByte : public ::gnu::java::awt::font::opentype::truetype::GlyphLocator +{ + +public: // actually package-private + GlyphLocator$FourByte(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); +public: + ::java::nio::ByteBuffer * getGlyphData(jint); +public: // actually package-private + ::java::nio::IntBuffer * __attribute__((aligned(__alignof__( ::gnu::java::awt::font::opentype::truetype::GlyphLocator)))) indexToLoc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_GlyphLocator$FourByte__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$TwoByte.h b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$TwoByte.h new file mode 100644 index 00000000000..7489c5e4e91 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator$TwoByte.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_GlyphLocator$TwoByte__ +#define __gnu_java_awt_font_opentype_truetype_GlyphLocator$TwoByte__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class GlyphLocator$TwoByte; + } + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + } + } +} + +class gnu::java::awt::font::opentype::truetype::GlyphLocator$TwoByte : public ::gnu::java::awt::font::opentype::truetype::GlyphLocator +{ + +public: // actually package-private + GlyphLocator$TwoByte(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); +public: + ::java::nio::ByteBuffer * getGlyphData(jint); +public: // actually package-private + ::java::nio::CharBuffer * __attribute__((aligned(__alignof__( ::gnu::java::awt::font::opentype::truetype::GlyphLocator)))) indexToLoc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_GlyphLocator$TwoByte__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator.h b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator.h new file mode 100644 index 00000000000..aa93b65be1f --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/GlyphLocator.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_GlyphLocator__ +#define __gnu_java_awt_font_opentype_truetype_GlyphLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class GlyphLocator; + } + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::truetype::GlyphLocator : public ::java::lang::Object +{ + +public: // actually package-private + GlyphLocator(); +public: + static ::gnu::java::awt::font::opentype::truetype::GlyphLocator * forTable(jint, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + virtual ::java::nio::ByteBuffer * getGlyphData(jint) = 0; +public: // actually protected + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) glyfTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_GlyphLocator__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.h b/libjava/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.h new file mode 100644 index 00000000000..558584d4f98 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/GlyphMeasurer.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_GlyphMeasurer__ +#define __gnu_java_awt_font_opentype_truetype_GlyphMeasurer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class GlyphMeasurer; + } + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class ShortBuffer; + } + } +} + +class gnu::java::awt::font::opentype::truetype::GlyphMeasurer : public ::java::lang::Object +{ + +public: // actually package-private + GlyphMeasurer(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); +public: + jint getAscent(jboolean); + jint getDescent(jboolean); + jint getLineGap(jboolean); + jint getAdvanceWidth(jint, jboolean); + jint getAdvanceHeight(jint, jboolean); +private: + ::java::nio::ShortBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) horizontalGlyphMetrics; + ::java::nio::ShortBuffer * verticalGlyphMetrics; + jint numLongHorizontalMetricsEntries; + jint numLongVerticalMetricsEntries; + jint horizontalAscent; + jint verticalAscent; + jint horizontalDescent; + jint verticalDescent; + jint horizontalLineGap; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_GlyphMeasurer__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.h b/libjava/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.h new file mode 100644 index 00000000000..77ae20fb3ad --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/TrueTypeScaler.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_TrueTypeScaler__ +#define __gnu_java_awt_font_opentype_truetype_TrueTypeScaler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class GlyphLoader; + class GlyphMeasurer; + class TrueTypeScaler; + class Zone; + } + } + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class AffineTransform; + class GeneralPath; + class Point2D; + } + } + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::awt::font::opentype::truetype::TrueTypeScaler : public ::gnu::java::awt::font::opentype::Scaler +{ + +public: + TrueTypeScaler(jint, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, jint, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + ::java::awt::geom::GeneralPath * getOutline(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean); + ::gnu::java::awt::font::opentype::truetype::Zone * getRawOutline(jint, ::java::awt::geom::AffineTransform *); + void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *); +private: + jfloat scaleFromFUnits(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean); +public: + jfloat getAscent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean); + jfloat getDescent(jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::java::awt::font::opentype::Scaler)))) glyfTable; + ::gnu::java::awt::font::opentype::truetype::GlyphLoader * glyphLoader; + ::gnu::java::awt::font::opentype::truetype::GlyphMeasurer * glyphMeasurer; + ::gnu::java::awt::font::opentype::truetype::Zone * glyphZone; + jint unitsPerEm; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_TrueTypeScaler__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/VirtualMachine.h b/libjava/gnu/java/awt/font/opentype/truetype/VirtualMachine.h new file mode 100644 index 00000000000..6193a6d4c93 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/VirtualMachine.h @@ -0,0 +1,153 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_VirtualMachine__ +#define __gnu_java_awt_font_opentype_truetype_VirtualMachine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class VirtualMachine; + class Zone; + } + } + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class AffineTransform; + } + } + namespace nio + { + class ByteBuffer; + class ShortBuffer; + } + } +} + +class gnu::java::awt::font::opentype::truetype::VirtualMachine : public ::java::lang::Object +{ + +public: // actually package-private + VirtualMachine(jint, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); +private: + void resetGraphicsState(); + void reloadControlValueTable(); + jint funitsToPixels(jint); +public: + virtual jboolean setup(jdouble, ::java::awt::geom::AffineTransform *, jboolean); +private: + void execute(::java::nio::ByteBuffer *, jint); + void dumpInstruction(::java::nio::ByteBuffer *); + static jchar getNibble(jint, jint); + static ::java::lang::String * getHex(jbyte); + static ::java::lang::String * getHex(jshort); + static void skipAfter(::java::nio::ByteBuffer *, jint, jint, jint, jint, jboolean); + static jint getInstructionLength(jint); + jboolean executeInstruction(::java::nio::ByteBuffer *); + void setRoundingMode(jint, jint); + void deltaC(JArray< jint > *, jint, jint, jint); + ::gnu::java::awt::font::opentype::truetype::Zone * getZone(jint); + jint getProjection(jint, jint); + jint getDualProjection(jint, jint); + jint getProjection(::gnu::java::awt::font::opentype::truetype::Zone *, jint); + jint getOriginalProjection(::gnu::java::awt::font::opentype::truetype::Zone *, jint); + void handleISECT(jint, jint, jint, jint, jint); + static jint muldiv(jint, jint, jint); + jint getFreeDotProj(); + void movePoint(::gnu::java::awt::font::opentype::truetype::Zone *, jint, jint); + void dumpVectors(); + void handleIP(); + void handleMDAP(jint, jboolean); + void handleMIAP(jint, jint, jboolean); + void handleMIRP(jint, jint, jint); + jint round(jint, jint); + static jint nround(jint, jint); + jboolean isRotated(); + jboolean isStretched(); + jint getPixelsPerEM(); + void setProjectionVector(jshort, jshort); + void setFreedomVector(jshort, jshort); + void setDualVector(jshort, jshort); + jint applyCTM_x(jint, jint); + jint applyCTM_y(jint, jint); + static const jboolean PATENTED_HINTING = 0; + static const jboolean TRACE_EXECUTION = 0; + static const jshort ONE_214 = 16384; + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) storage; + JArray< jint > * stack; + jint maxStackElements; + jint sp; + JArray< ::java::nio::ByteBuffer * > * fdefBuffer; + JArray< jint > * fdefEntryPoint; + ::java::nio::ShortBuffer * controlValueTable; + JArray< jint > * cvt; + jint engineCompensation; + ::java::nio::ByteBuffer * fontProgram; + ::java::nio::ByteBuffer * preProgram; + jint numTwilightPoints; + jint pointSize; + ::java::awt::geom::AffineTransform * deviceTransform; + jint scaleX; + jint scaleY; + jint shearX; + jint shearY; + jboolean antialiased; + jint cvtCutIn; + jint deltaBase; + jint deltaShift; + jshort freeX; + jshort freeY; + jint loop; + jint minimumDistance; + jshort projX; + jshort projY; + jshort dualX; + jshort dualY; + jint rp0; + jint rp1; + jint rp2; + jboolean scanControl; + jint scanType; + jint singleWidthValue; + ::gnu::java::awt::font::opentype::truetype::Zone * zp0; + ::gnu::java::awt::font::opentype::truetype::Zone * zp1; + ::gnu::java::awt::font::opentype::truetype::Zone * zp2; + ::gnu::java::awt::font::opentype::truetype::Zone * twilightZone; + ::gnu::java::awt::font::opentype::truetype::Zone * glyphZone; + jboolean executeGlyphInstructions; + jboolean ignoreCVTProgram; + jint roundPeriod; + jint roundPhase; + jint roundThreshold; + jint cachedPixelsPerEM; + jint unitsPerEm; + static JArray< ::java::lang::String * > * INST_NAME; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_VirtualMachine__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/Zone.h b/libjava/gnu/java/awt/font/opentype/truetype/Zone.h new file mode 100644 index 00000000000..b3ff4f05959 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/Zone.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_Zone__ +#define __gnu_java_awt_font_opentype_truetype_Zone__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class Zone; + } + } + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class AffineTransform; + class GeneralPath; + class PathIterator; + } + } + } +} + +class gnu::java::awt::font::opentype::truetype::Zone : public ::java::lang::Object +{ + +public: + Zone(jint); + jint getCapacity(); + jint getSize(); + jint getX(jint); + void setX(jint, jint, jboolean); + void setY(jint, jint, jboolean); + jint getY(jint); + jint getOriginalX(jint); + jint getOriginalY(jint); + void setOriginalX(jint, jint); + void setOriginalY(jint, jint); + void setNumPoints(jint); + jboolean isOnCurve(jint); + void setOnCurve(jint, jboolean); + jboolean isContourEnd(jint); + void setContourEnd(jint, jboolean); +public: // actually package-private + void transform(jdouble, ::java::awt::geom::AffineTransform *, jint, jint, jint); + void combineWithSubGlyph(::gnu::java::awt::font::opentype::truetype::Zone *, jint); +private: + void dump(); +public: + ::java::awt::geom::PathIterator * getPathIterator(); + ::java::awt::geom::GeneralPath * getPath(); +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pos; + JArray< jint > * origPos; + JArray< jbyte > * flags; + jint numPoints; + static const jint FLAG_TOUCHED_X = 1; + static const jint FLAG_TOUCHED_Y = 2; + static const jint FLAG_ON_CURVE = 4; + static const jint FLAG_CONTOUR_END = 8; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_Zone__ diff --git a/libjava/gnu/java/awt/font/opentype/truetype/ZonePathIterator.h b/libjava/gnu/java/awt/font/opentype/truetype/ZonePathIterator.h new file mode 100644 index 00000000000..fe610037981 --- /dev/null +++ b/libjava/gnu/java/awt/font/opentype/truetype/ZonePathIterator.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_opentype_truetype_ZonePathIterator__ +#define __gnu_java_awt_font_opentype_truetype_ZonePathIterator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + namespace opentype + { + namespace truetype + { + class Zone; + class ZonePathIterator; + } + } + } + } + } + } +} + +class gnu::java::awt::font::opentype::truetype::ZonePathIterator : public ::java::lang::Object +{ + +public: // actually package-private + ZonePathIterator(::gnu::java::awt::font::opentype::truetype::Zone *); +public: + jint getWindingRule(); + jboolean isDone(); + void next(); +private: + jint getSuccessor(jint); +public: + jint currentSegment(JArray< jfloat > *); + jint currentSegment(JArray< jdouble > *); +private: + jint getSegment(jint, JArray< jfloat > *); + jint getStartSegment(jint, JArray< jfloat > *); + static const jint EMIT_SEGMENT = 0; + static const jint EMIT_CLOSE = 1; + static const jint EMIT_MOVETO = 2; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) state; + ::gnu::java::awt::font::opentype::truetype::Zone * zone; + jint numPoints; + jint curPoint; + jint contourStart; +public: // actually package-private + JArray< jfloat > * floats; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_opentype_truetype_ZonePathIterator__ diff --git a/libjava/gnu/java/awt/image/ImageDecoder$DataInputStreamWrapper.h b/libjava/gnu/java/awt/image/ImageDecoder$DataInputStreamWrapper.h new file mode 100644 index 00000000000..611ead3b16e --- /dev/null +++ b/libjava/gnu/java/awt/image/ImageDecoder$DataInputStreamWrapper.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_image_ImageDecoder$DataInputStreamWrapper__ +#define __gnu_java_awt_image_ImageDecoder$DataInputStreamWrapper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace image + { + class ImageDecoder$DataInputStreamWrapper; + } + } + } + } +} + +class gnu::java::awt::image::ImageDecoder$DataInputStreamWrapper : public ::java::io::InputStream +{ + +public: // actually package-private + ImageDecoder$DataInputStreamWrapper(::java::io::DataInput *); +public: + virtual jint read(); +private: + ::java::io::DataInput * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) datainput; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_image_ImageDecoder$DataInputStreamWrapper__ diff --git a/libjava/gnu/java/awt/image/ImageDecoder.h b/libjava/gnu/java/awt/image/ImageDecoder.h new file mode 100644 index 00000000000..69af2a54eb2 --- /dev/null +++ b/libjava/gnu/java/awt/image/ImageDecoder.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_image_ImageDecoder__ +#define __gnu_java_awt_image_ImageDecoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace image + { + class ImageDecoder; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ImageConsumer; + } + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::image::ImageDecoder : public ::java::lang::Object +{ + +public: + ImageDecoder(::java::lang::String *); + ImageDecoder(::java::net::URL *); + ImageDecoder(::java::io::InputStream *); + ImageDecoder(::java::io::DataInput *); + ImageDecoder(JArray< jbyte > *, 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 produce(::java::util::Vector *, ::java::io::InputStream *) = 0; +public: // actually package-private + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) consumers; + ::java::lang::String * filename; + ::java::net::URL * url; + JArray< jbyte > * data; + jint offset; + jint length; + ::java::io::InputStream * input; + ::java::io::DataInput * datainput; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_image_ImageDecoder__ diff --git a/libjava/gnu/java/awt/image/XBMDecoder.h b/libjava/gnu/java/awt/image/XBMDecoder.h new file mode 100644 index 00000000000..0d33850d1eb --- /dev/null +++ b/libjava/gnu/java/awt/image/XBMDecoder.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_image_XBMDecoder__ +#define __gnu_java_awt_image_XBMDecoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace image + { + class XBMDecoder; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ColorModel; + } + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::image::XBMDecoder : public ::gnu::java::awt::image::ImageDecoder +{ + +public: + XBMDecoder(::java::lang::String *); + XBMDecoder(::java::net::URL *); + virtual void produce(::java::util::Vector *, ::java::io::InputStream *); + static JArray< jint > * getScanline(::java::io::Reader *, jint); +public: // actually package-private + ::java::io::BufferedReader * __attribute__((aligned(__alignof__( ::gnu::java::awt::image::ImageDecoder)))) reader; + static ::java::awt::image::ColorModel * cm; + static const jint black = -16777216; + static const jint transparent = 0; + static JArray< jint > * masktable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_image_XBMDecoder__ diff --git a/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h new file mode 100644 index 00000000000..b8933b32db9 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h @@ -0,0 +1,214 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_AbstractGraphics2D__ +#define __gnu_java_awt_java2d_AbstractGraphics2D__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class AbstractGraphics2D; + class ShapeCache; + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Composite; + class Font; + class FontMetrics; + class Graphics; + class Image; + class Paint; + class PaintContext; + class Rectangle; + class RenderingHints; + class RenderingHints$Key; + class Shape; + class Stroke; + namespace font + { + class FontRenderContext; + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + namespace image + { + class BufferedImage; + class BufferedImageOp; + class ColorModel; + class ImageObserver; + class Raster; + class RenderedImage; + class WritableRaster; + namespace renderable + { + class RenderableImage; + } + } + } + namespace text + { + class AttributedCharacterIterator; + } + } +} + +class gnu::java::awt::java2d::AbstractGraphics2D : public ::java::awt::Graphics2D +{ + +public: // actually protected + AbstractGraphics2D(); +public: + virtual void draw(::java::awt::Shape *); + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *); +private: + jboolean drawImageImpl(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *, ::java::awt::Rectangle *); +public: + virtual void drawImage(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImageOp *, jint, jint); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); +private: + void drawRenderedImageImpl(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *, ::java::awt::Rectangle *); +public: + virtual void drawRenderableImage(::java::awt::image::renderable::RenderableImage *, ::java::awt::geom::AffineTransform *); +private: + void drawRenderableImageImpl(::java::awt::image::renderable::RenderableImage *, ::java::awt::geom::AffineTransform *, ::java::awt::Rectangle *); +public: + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::lang::String *, jfloat, jfloat); + virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint); + virtual void drawString(::java::text::AttributedCharacterIterator *, jfloat, jfloat); + virtual void fill(::java::awt::Shape *); + virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean); + virtual void setComposite(::java::awt::Composite *); + virtual void setPaint(::java::awt::Paint *); + virtual void setStroke(::java::awt::Stroke *); + virtual void setRenderingHint(::java::awt::RenderingHints$Key *, ::java::lang::Object *); + virtual ::java::lang::Object * getRenderingHint(::java::awt::RenderingHints$Key *); + virtual void setRenderingHints(::java::util::Map *); + virtual void addRenderingHints(::java::util::Map *); + virtual ::java::awt::RenderingHints * getRenderingHints(); + virtual void translate(jint, jint); + 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 transform(::java::awt::geom::AffineTransform *); + virtual void setTransform(::java::awt::geom::AffineTransform *); + virtual ::java::awt::geom::AffineTransform * getTransform(); + virtual ::java::awt::Paint * getPaint(); + virtual ::java::awt::Composite * getComposite(); + virtual void setBackground(::java::awt::Color *); + virtual ::java::awt::Color * getBackground(); + virtual ::java::awt::Stroke * getStroke(); + virtual void clip(::java::awt::Shape *); + virtual ::java::awt::font::FontRenderContext * getFontRenderContext(); + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); + virtual ::java::awt::Graphics * create(); +public: // actually protected + virtual ::java::lang::Object * clone(); +public: + virtual ::java::awt::Color * getColor(); + virtual void setColor(::java::awt::Color *); + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual ::java::awt::Font * getFont(); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Rectangle * getClipBounds(); + virtual void clipRect(jint, jint, jint, jint); + virtual void setClip(jint, jint, jint, jint); + virtual ::java::awt::Shape * getClip(); + virtual void setClip(::java::awt::Shape *); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual void drawLine(jint, jint, jint, jint); + virtual void drawRect(jint, jint, jint, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void clearRect(jint, jint, jint, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual void drawOval(jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual void dispose(); +public: // actually protected + virtual void fillShape(::java::awt::Shape *, jboolean); + virtual ::java::awt::image::ColorModel * getColorModel() = 0; + virtual ::java::awt::Rectangle * getDeviceBounds(); + virtual void rawDrawLine(jint, jint, jint, jint); + virtual void rawDrawRect(jint, jint, jint, jint); + virtual void rawDrawString(::java::lang::String *, jint, jint); + virtual void rawClearRect(jint, jint, jint, jint); + virtual void rawFillRect(jint, jint, jint, jint); + virtual jboolean rawDrawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void rawCopyArea(jint, jint, jint, jint, jint, jint); +private: + void copyAreaImpl(jint, jint, jint, jint, jint, jint); + void fillShapeImpl(::java::util::ArrayList *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *); +public: // actually protected + virtual void fillScanline(::java::awt::PaintContext *, jint, jint, jint); +private: + void fillShapeAntialias(::java::util::ArrayList *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::Rectangle2D *); + void fillScanlineAA(JArray< jint > *, jint, jint, jint, ::java::awt::PaintContext *, jint); +public: // actually protected + virtual void init(); + virtual ::java::awt::image::WritableRaster * getDestinationRaster(); + virtual void updateRaster(::java::awt::image::Raster *, jint, jint, jint, jint); +private: + void updateOptimization(); + static ::java::awt::Rectangle * computeIntersection(jint, jint, jint, jint, ::java::awt::Rectangle *); + void updateClip(::java::awt::geom::AffineTransform *); + ::java::util::ArrayList * getSegments(::java::awt::Shape *, ::java::awt::geom::AffineTransform *, ::java::awt::geom::Rectangle2D *, jboolean); + ::gnu::java::awt::java2d::ShapeCache * getShapeCache(); + static const jint AA_SAMPLING = 8; + static ::java::lang::ThreadLocal * shapeCache; +public: // actually protected + ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::awt::Graphics2D)))) transform__; +private: + ::java::awt::Paint * paint; + ::java::awt::Color * background; + ::java::awt::Font * font; + ::java::awt::Composite * composite; + ::java::awt::Stroke * stroke; + ::java::awt::Shape * clip__; + ::java::awt::RenderingHints * renderingHints; + ::java::awt::image::WritableRaster * destinationRaster; + JArray< jint > * alpha; + JArray< ::java::util::ArrayList * > * edgeTable; + jboolean isOptimized; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_AbstractGraphics2D__ diff --git a/libjava/gnu/java/awt/java2d/AlphaCompositeContext.h b/libjava/gnu/java/awt/java2d/AlphaCompositeContext.h new file mode 100644 index 00000000000..9c591a4d9c8 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/AlphaCompositeContext.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_AlphaCompositeContext__ +#define __gnu_java_awt_java2d_AlphaCompositeContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class AlphaCompositeContext; + } + } + } + } + namespace java + { + namespace awt + { + class AlphaComposite; + namespace image + { + class ColorModel; + class Raster; + class WritableRaster; + } + } + } +} + +class gnu::java::awt::java2d::AlphaCompositeContext : public ::java::lang::Object +{ + +public: + AlphaCompositeContext(::java::awt::AlphaComposite *, ::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *); + virtual void dispose(); + virtual void compose(::java::awt::image::Raster *, ::java::awt::image::Raster *, ::java::awt::image::WritableRaster *); +private: + ::java::awt::AlphaComposite * __attribute__((aligned(__alignof__( ::java::lang::Object)))) composite; + ::java::awt::image::ColorModel * srcColorModel; + ::java::awt::image::ColorModel * dstColorModel; + jfloat fs; + jfloat fd; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_AlphaCompositeContext__ diff --git a/libjava/gnu/java/awt/java2d/CubicSegment.h b/libjava/gnu/java/awt/java2d/CubicSegment.h new file mode 100644 index 00000000000..c7ef3b29cbc --- /dev/null +++ b/libjava/gnu/java/awt/java2d/CubicSegment.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_CubicSegment__ +#define __gnu_java_awt_java2d_CubicSegment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class CubicSegment; + class Segment; + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class Point2D; + } + } + } +} + +class gnu::java::awt::java2d::CubicSegment : public ::gnu::java::awt::java2d::Segment +{ + +public: + CubicSegment(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble); + CubicSegment(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *); + virtual ::java::lang::Object * clone(); + virtual JArray< ::gnu::java::awt::java2d::Segment * > * getDisplacedSegments(jdouble); + virtual void reverse(); + virtual JArray< jdouble > * cp1(); + virtual JArray< jdouble > * cp2(); + ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::gnu::java::awt::java2d::Segment)))) cp1__; + ::java::awt::geom::Point2D * cp2__; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_CubicSegment__ diff --git a/libjava/gnu/java/awt/java2d/ImagePaint$ImagePaintContext.h b/libjava/gnu/java/awt/java2d/ImagePaint$ImagePaintContext.h new file mode 100644 index 00000000000..b0a1d087d8a --- /dev/null +++ b/libjava/gnu/java/awt/java2d/ImagePaint$ImagePaintContext.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_ImagePaint$ImagePaintContext__ +#define __gnu_java_awt_java2d_ImagePaint$ImagePaintContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class ImagePaint; + class ImagePaint$ImagePaintContext; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ColorModel; + class Raster; + class WritableRaster; + } + } + } +} + +class gnu::java::awt::java2d::ImagePaint$ImagePaintContext : public ::java::lang::Object +{ + + ImagePaint$ImagePaintContext(::gnu::java::awt::java2d::ImagePaint *); +public: + virtual void dispose(); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::image::Raster * getRaster(jint, jint, jint, jint); +private: + void ensureRasterSize(jint, jint); +public: // actually package-private + ImagePaint$ImagePaintContext(::gnu::java::awt::java2d::ImagePaint *, ::gnu::java::awt::java2d::ImagePaint$ImagePaintContext *); +private: + ::java::awt::image::WritableRaster * __attribute__((aligned(__alignof__( ::java::lang::Object)))) target; +public: // actually package-private + ::gnu::java::awt::java2d::ImagePaint * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_ImagePaint$ImagePaintContext__ diff --git a/libjava/gnu/java/awt/java2d/ImagePaint.h b/libjava/gnu/java/awt/java2d/ImagePaint.h new file mode 100644 index 00000000000..e9e2ea2519d --- /dev/null +++ b/libjava/gnu/java/awt/java2d/ImagePaint.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_ImagePaint__ +#define __gnu_java_awt_java2d_ImagePaint__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class ImagePaint; + } + } + } + } + namespace java + { + namespace awt + { + class PaintContext; + class Rectangle; + class RenderingHints; + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + namespace image + { + class ColorModel; + class RenderedImage; + } + } + } +} + +class gnu::java::awt::java2d::ImagePaint : public ::java::lang::Object +{ + +public: // actually package-private + ImagePaint(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); +public: + 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(); +public: // actually package-private + ::java::awt::image::RenderedImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) image; + ::java::awt::geom::AffineTransform * transform; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_ImagePaint__ diff --git a/libjava/gnu/java/awt/java2d/LineSegment.h b/libjava/gnu/java/awt/java2d/LineSegment.h new file mode 100644 index 00000000000..50f51e04bf3 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/LineSegment.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_LineSegment__ +#define __gnu_java_awt_java2d_LineSegment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class LineSegment; + class Segment; + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class Point2D; + } + } + } +} + +class gnu::java::awt::java2d::LineSegment : public ::gnu::java::awt::java2d::Segment +{ + +public: + LineSegment(jdouble, jdouble, jdouble, jdouble); + LineSegment(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *); + virtual ::java::lang::Object * clone(); + virtual JArray< ::gnu::java::awt::java2d::Segment * > * getDisplacedSegments(jdouble); + virtual void reverse(); + virtual JArray< jdouble > * cp1(); + virtual JArray< jdouble > * cp2(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_LineSegment__ diff --git a/libjava/gnu/java/awt/java2d/PolyEdge.h b/libjava/gnu/java/awt/java2d/PolyEdge.h new file mode 100644 index 00000000000..6698599d6ac --- /dev/null +++ b/libjava/gnu/java/awt/java2d/PolyEdge.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_PolyEdge__ +#define __gnu_java_awt_java2d_PolyEdge__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class PolyEdge; + } + } + } + } +} + +class gnu::java::awt::java2d::PolyEdge : public ::java::lang::Object +{ + +public: // actually package-private + PolyEdge(jdouble, jdouble, jdouble, jdouble, jboolean); +public: + virtual jint compareTo(::java::lang::Object *); + virtual ::java::lang::String * toString(); + jdouble __attribute__((aligned(__alignof__( ::java::lang::Object)))) x0; + jdouble y0; + jdouble x1; + jdouble y1; +public: // actually package-private + jdouble slope; + jdouble xIntersection; + jboolean isClip; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_PolyEdge__ diff --git a/libjava/gnu/java/awt/java2d/PolyEdgeComparator.h b/libjava/gnu/java/awt/java2d/PolyEdgeComparator.h new file mode 100644 index 00000000000..b27bdaf906f --- /dev/null +++ b/libjava/gnu/java/awt/java2d/PolyEdgeComparator.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_PolyEdgeComparator__ +#define __gnu_java_awt_java2d_PolyEdgeComparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class PolyEdgeComparator; + } + } + } + } +} + +class gnu::java::awt::java2d::PolyEdgeComparator : public ::java::lang::Object +{ + +public: + PolyEdgeComparator(); + virtual jint compare(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) y; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_PolyEdgeComparator__ diff --git a/libjava/gnu/java/awt/java2d/QuadSegment.h b/libjava/gnu/java/awt/java2d/QuadSegment.h new file mode 100644 index 00000000000..10752415374 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/QuadSegment.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_QuadSegment__ +#define __gnu_java_awt_java2d_QuadSegment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class QuadSegment; + class Segment; + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class Point2D; + class QuadCurve2D; + } + } + } +} + +class gnu::java::awt::java2d::QuadSegment : public ::gnu::java::awt::java2d::Segment +{ + +public: + QuadSegment(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble); + QuadSegment(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *); + QuadSegment(::java::awt::geom::QuadCurve2D *); + virtual ::java::lang::Object * clone(); + virtual JArray< ::gnu::java::awt::java2d::Segment * > * getDisplacedSegments(jdouble); +private: + ::gnu::java::awt::java2d::QuadSegment * offsetSubdivided(::java::awt::geom::QuadCurve2D *, jboolean); + ::java::awt::geom::Point2D * lineIntersection(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jboolean); +public: + virtual void reverse(); + virtual JArray< jdouble > * cp1(); + virtual JArray< jdouble > * cp2(); + ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::gnu::java::awt::java2d::Segment)))) cp; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_QuadSegment__ diff --git a/libjava/gnu/java/awt/java2d/RasterGraphics.h b/libjava/gnu/java/awt/java2d/RasterGraphics.h new file mode 100644 index 00000000000..41ab8d7dceb --- /dev/null +++ b/libjava/gnu/java/awt/java2d/RasterGraphics.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_RasterGraphics__ +#define __gnu_java_awt_java2d_RasterGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class RasterGraphics; + } + } + } + } + namespace java + { + namespace awt + { + class GraphicsConfiguration; + namespace image + { + class ColorModel; + class WritableRaster; + } + } + } +} + +class gnu::java::awt::java2d::RasterGraphics : public ::gnu::java::awt::java2d::AbstractGraphics2D +{ + +public: + RasterGraphics(::java::awt::image::WritableRaster *, ::java::awt::image::ColorModel *); +public: // actually protected + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::image::WritableRaster * getDestinationRaster(); +public: + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); +private: + ::java::awt::image::WritableRaster * __attribute__((aligned(__alignof__( ::gnu::java::awt::java2d::AbstractGraphics2D)))) raster; + ::java::awt::image::ColorModel * colorModel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_RasterGraphics__ diff --git a/libjava/gnu/java/awt/java2d/Segment.h b/libjava/gnu/java/awt/java2d/Segment.h new file mode 100644 index 00000000000..3e771bbbc32 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/Segment.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_Segment__ +#define __gnu_java_awt_java2d_Segment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class Segment; + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class Point2D; + } + } + } +} + +class gnu::java::awt::java2d::Segment : public ::java::lang::Object +{ + +public: + Segment(); + virtual void add(::gnu::java::awt::java2d::Segment *); + virtual void reverseAll(); + virtual ::java::lang::String * toString(); +public: // actually protected + virtual JArray< jdouble > * normal(jdouble, jdouble, jdouble, jdouble); +public: + virtual void reverse() = 0; + virtual JArray< ::gnu::java::awt::java2d::Segment * > * getDisplacedSegments(jdouble) = 0; + virtual JArray< jdouble > * cp1() = 0; + virtual JArray< jdouble > * cp2() = 0; + ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::java::lang::Object)))) P1; + ::java::awt::geom::Point2D * P2; + ::gnu::java::awt::java2d::Segment * first; + ::gnu::java::awt::java2d::Segment * next; + ::gnu::java::awt::java2d::Segment * last; +public: // actually protected + jdouble radius; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_Segment__ diff --git a/libjava/gnu/java/awt/java2d/ShapeCache.h b/libjava/gnu/java/awt/java2d/ShapeCache.h new file mode 100644 index 00000000000..ac7f3dacdba --- /dev/null +++ b/libjava/gnu/java/awt/java2d/ShapeCache.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_ShapeCache__ +#define __gnu_java_awt_java2d_ShapeCache__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class ShapeCache; + } + } + } + } + namespace java + { + namespace awt + { + class Polygon; + class Rectangle; + namespace geom + { + class Arc2D; + class Ellipse2D; + class Line2D; + class RoundRectangle2D; + } + } + } +} + +class gnu::java::awt::java2d::ShapeCache : public ::java::lang::Object +{ + +public: + ShapeCache(); + ::java::awt::geom::Line2D * __attribute__((aligned(__alignof__( ::java::lang::Object)))) line; + ::java::awt::Rectangle * rect; + ::java::awt::geom::RoundRectangle2D * roundRect; + ::java::awt::geom::Ellipse2D * ellipse; + ::java::awt::geom::Arc2D * arc; + ::java::awt::Polygon * polygon; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_ShapeCache__ diff --git a/libjava/gnu/java/awt/java2d/TexturePaintContext.h b/libjava/gnu/java/awt/java2d/TexturePaintContext.h new file mode 100644 index 00000000000..5074e62c16c --- /dev/null +++ b/libjava/gnu/java/awt/java2d/TexturePaintContext.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_TexturePaintContext__ +#define __gnu_java_awt_java2d_TexturePaintContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class TexturePaintContext; + } + } + } + } + namespace java + { + namespace awt + { + class Rectangle; + class TexturePaint; + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + namespace image + { + class BufferedImage; + class ColorModel; + class Raster; + class WritableRaster; + } + } + } +} + +class gnu::java::awt::java2d::TexturePaintContext : public ::java::lang::Object +{ + +public: + TexturePaintContext(::java::awt::TexturePaint *, ::java::awt::Rectangle *, ::java::awt::geom::Rectangle2D *, ::java::awt::geom::AffineTransform *); + virtual void dispose(); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::image::Raster * getRaster(jint, jint, jint, jint); +private: + void ensureRasterSize(jint, jint); + ::java::awt::image::BufferedImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) image; + ::java::awt::image::WritableRaster * paintRaster; + ::java::awt::geom::AffineTransform * transform; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_TexturePaintContext__ diff --git a/libjava/gnu/java/awt/peer/ClasspathFontPeer.h b/libjava/gnu/java/awt/peer/ClasspathFontPeer.h new file mode 100644 index 00000000000..80a09c17b90 --- /dev/null +++ b/libjava/gnu/java/awt/peer/ClasspathFontPeer.h @@ -0,0 +1,123 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_ClasspathFontPeer__ +#define __gnu_java_awt_peer_ClasspathFontPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class ClasspathToolkit; + namespace peer + { + class ClasspathFontPeer; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class FontMetrics; + namespace font + { + class FontRenderContext; + class GlyphVector; + class LineMetrics; + } + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + } + namespace text + { + class AttributedCharacterIterator$Attribute; + class CharacterIterator; + } + } +} + +class gnu::java::awt::peer::ClasspathFontPeer : public ::java::lang::Object +{ + +public: // actually protected + static ::gnu::java::awt::ClasspathToolkit * tk(); + static jboolean isLogicalFontName(::java::lang::String *); + static ::java::lang::String * logicalFontNameToFaceName(::java::lang::String *); + static ::java::lang::String * faceNameToFamilyName(::java::lang::String *); +public: + static void copyStyleToAttrs(jint, ::java::util::Map *); +public: // actually protected + static void copyFamilyToAttrs(::java::lang::String *, ::java::util::Map *); +public: + static void copySizeToAttrs(jfloat, ::java::util::Map *); +public: // actually protected + static void copyTransformToAttrs(::java::awt::geom::AffineTransform *, ::java::util::Map *); + virtual void setStandardAttributes(::java::lang::String *, ::java::lang::String *, jint, jfloat, ::java::awt::geom::AffineTransform *); + virtual void setStandardAttributes(::java::lang::String *, ::java::util::Map *); + virtual void getStandardAttributes(::java::util::Map *); +public: + ClasspathFontPeer(::java::lang::String *, ::java::util::Map *); + ClasspathFontPeer(::java::lang::String *, jint, jint); + virtual ::java::lang::String * getName(::java::awt::Font *); + virtual ::java::lang::String * getFamily(::java::awt::Font *); + virtual ::java::lang::String * getFamily(::java::awt::Font *, ::java::util::Locale *); + virtual ::java::lang::String * getFontName(::java::awt::Font *); + virtual ::java::lang::String * getFontName(::java::awt::Font *, ::java::util::Locale *); + virtual jfloat getSize(::java::awt::Font *); + virtual jboolean isPlain(::java::awt::Font *); + virtual jboolean isBold(::java::awt::Font *); + virtual jboolean isItalic(::java::awt::Font *); + virtual ::java::awt::Font * deriveFont(::java::awt::Font *, jint, jfloat); + virtual ::java::awt::Font * deriveFont(::java::awt::Font *, jfloat); + virtual ::java::awt::Font * deriveFont(::java::awt::Font *, jint); + virtual ::java::awt::Font * deriveFont(::java::awt::Font *, jint, ::java::awt::geom::AffineTransform *); + virtual ::java::awt::Font * deriveFont(::java::awt::Font *, ::java::awt::geom::AffineTransform *); + virtual ::java::awt::Font * deriveFont(::java::awt::Font *, ::java::util::Map *); + virtual ::java::util::Map * getAttributes(::java::awt::Font *); + virtual JArray< ::java::text::AttributedCharacterIterator$Attribute * > * getAvailableAttributes(::java::awt::Font *); + virtual ::java::awt::geom::AffineTransform * getTransform(::java::awt::Font *); + virtual jboolean isTransformed(::java::awt::Font *); + virtual jfloat getItalicAngle(::java::awt::Font *); + virtual jint getStyle(::java::awt::Font *); + virtual jboolean canDisplay(::java::awt::Font *, jchar) = 0; + virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint) = 0; + virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *) = 0; + virtual ::java::lang::String * getPostScriptName(::java::awt::Font *) = 0; + virtual jint getNumGlyphs(::java::awt::Font *) = 0; + virtual jint getMissingGlyphCode(::java::awt::Font *) = 0; + virtual jbyte getBaselineFor(::java::awt::Font *, jchar) = 0; + virtual ::java::lang::String * getGlyphName(::java::awt::Font *, jint) = 0; + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *) = 0; + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *) = 0; + virtual ::java::awt::font::GlyphVector * layoutGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jchar > *, jint, jint, jint) = 0; + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0; + virtual jboolean hasUniformLineMetrics(::java::awt::Font *) = 0; + virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *) = 0; + virtual ::java::awt::geom::Rectangle2D * getMaxCharBounds(::java::awt::Font *, ::java::awt::font::FontRenderContext *) = 0; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) logicalName; + ::java::lang::String * familyName; + ::java::lang::String * faceName; + jint style; + jfloat size; + ::java::awt::geom::AffineTransform * transform; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_ClasspathFontPeer__ diff --git a/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h b/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h new file mode 100644 index 00000000000..53715c43b5a --- /dev/null +++ b/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h @@ -0,0 +1,146 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_EmbeddedWindowPeer__ +#define __gnu_java_awt_peer_EmbeddedWindowPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + class EmbeddedWindowPeer; + } + } + } + } + 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 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 gnu::java::awt::peer::EmbeddedWindowPeer : public ::java::lang::Object +{ + +public: + virtual void embed(jlong) = 0; + 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 void toBack() = 0; + virtual void toFront() = 0; + virtual void updateAlwaysOnTop() = 0; + virtual jboolean requestWindowFocus() = 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; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_awt_peer_EmbeddedWindowPeer__ diff --git a/libjava/gnu/java/awt/peer/GLightweightPeer.h b/libjava/gnu/java/awt/peer/GLightweightPeer.h new file mode 100644 index 00000000000..d9e6e58e6b1 --- /dev/null +++ b/libjava/gnu/java/awt/peer/GLightweightPeer.h @@ -0,0 +1,133 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_GLightweightPeer__ +#define __gnu_java_awt_peer_GLightweightPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + class GLightweightPeer; + } + } + } + } + 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 gnu::java::awt::peer::GLightweightPeer : public ::java::lang::Object +{ + +public: + GLightweightPeer(); + virtual ::java::awt::Insets * insets(); + virtual ::java::awt::Insets * getInsets(); + virtual void beginValidate(); + virtual void endValidate(); + virtual void beginLayout(); + virtual void endLayout(); + virtual jboolean isPaintPending(); + virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *); + virtual ::java::awt::Image * createImage(jint, jint); + virtual void disable(); + virtual void dispose(); + virtual void enable(); + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Point * getLocationOnScreen(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Toolkit * getToolkit(); + virtual void handleEvent(::java::awt::AWTEvent *); + virtual void hide(); + virtual jboolean isFocusable(); + virtual jboolean isFocusTraversable(); + virtual ::java::awt::Dimension * minimumSize(); + virtual ::java::awt::Dimension * preferredSize(); + virtual void paint(::java::awt::Graphics *); + virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void print(::java::awt::Graphics *); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void requestFocus(); + virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong); + virtual void reshape(jint, jint, jint, jint); + virtual void setBackground(::java::awt::Color *); + virtual void setBounds(jint, jint, jint, jint); + virtual void setCursor(::java::awt::Cursor *); + virtual void setEnabled(jboolean); + virtual void setEventMask(jlong); + virtual void setFont(::java::awt::Font *); + virtual void setForeground(::java::awt::Color *); + virtual void setVisible(jboolean); + virtual void show(); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual jboolean isObscured(); + virtual jboolean canDetermineObscurity(); + virtual void coalescePaintEvent(::java::awt::event::PaintEvent *); + virtual void updateCursorImmediately(); + virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint); + virtual jboolean handlesWheelScrolling(); + virtual void createBuffers(jint, ::java::awt::BufferCapabilities *); + virtual ::java::awt::Image * getBackBuffer(); + virtual void flip(::java::awt::BufferCapabilities$FlipContents *); + virtual void destroyBuffers(); + virtual jboolean isRestackSupported(); + virtual void cancelPendingPaint(jint, jint, jint, jint); + virtual void restack(); + virtual ::java::awt::Rectangle * getBounds(); + virtual void reparent(::java::awt::peer::ContainerPeer *); + virtual void setBounds(jint, jint, jint, jint, jint); + virtual jboolean isReparentSupported(); + virtual void layout(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_GLightweightPeer__ diff --git a/libjava/gnu/java/awt/peer/NativeEventLoopRunningEvent.h b/libjava/gnu/java/awt/peer/NativeEventLoopRunningEvent.h new file mode 100644 index 00000000000..48a10a74b2f --- /dev/null +++ b/libjava/gnu/java/awt/peer/NativeEventLoopRunningEvent.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_NativeEventLoopRunningEvent__ +#define __gnu_java_awt_peer_NativeEventLoopRunningEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + class NativeEventLoopRunningEvent; + } + } + } + } +} + +class gnu::java::awt::peer::NativeEventLoopRunningEvent : public ::java::awt::AWTEvent +{ + +public: + NativeEventLoopRunningEvent(::java::lang::Object *); + virtual jboolean isRunning(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) running; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_NativeEventLoopRunningEvent__ diff --git a/libjava/gnu/java/awt/peer/gtk/AsyncImage$Loader.h b/libjava/gnu/java/awt/peer/gtk/AsyncImage$Loader.h new file mode 100644 index 00000000000..aa276f4e655 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/AsyncImage$Loader.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_AsyncImage$Loader__ +#define __gnu_java_awt_peer_gtk_AsyncImage$Loader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class AsyncImage; + class AsyncImage$Loader; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::peer::gtk::AsyncImage$Loader : public ::java::lang::Object +{ + +public: // actually package-private + AsyncImage$Loader(::gnu::java::awt::peer::gtk::AsyncImage *, ::java::net::URL *); +public: + virtual void run(); +private: + ::java::net::URL * __attribute__((aligned(__alignof__( ::java::lang::Object)))) url; +public: // actually package-private + ::gnu::java::awt::peer::gtk::AsyncImage * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_AsyncImage$Loader__ diff --git a/libjava/gnu/java/awt/peer/gtk/AsyncImage$NullImageSource.h b/libjava/gnu/java/awt/peer/gtk/AsyncImage$NullImageSource.h new file mode 100644 index 00000000000..86bfeae7a1b --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/AsyncImage$NullImageSource.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_AsyncImage$NullImageSource__ +#define __gnu_java_awt_peer_gtk_AsyncImage$NullImageSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class AsyncImage; + class AsyncImage$NullImageSource; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ImageConsumer; + } + } + } +} + +class gnu::java::awt::peer::gtk::AsyncImage$NullImageSource : public ::java::lang::Object +{ + +public: // actually package-private + AsyncImage$NullImageSource(::gnu::java::awt::peer::gtk::AsyncImage *); +public: + virtual void addConsumer(::java::awt::image::ImageConsumer *); + virtual jboolean isConsumer(::java::awt::image::ImageConsumer *); + virtual void removeConsumer(::java::awt::image::ImageConsumer *); + virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *); + virtual void startProduction(::java::awt::image::ImageConsumer *); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) consumers; +public: // actually package-private + ::gnu::java::awt::peer::gtk::AsyncImage * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_AsyncImage$NullImageSource__ diff --git a/libjava/gnu/java/awt/peer/gtk/AsyncImage.h b/libjava/gnu/java/awt/peer/gtk/AsyncImage.h new file mode 100644 index 00000000000..d1735ea4c4b --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/AsyncImage.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_AsyncImage__ +#define __gnu_java_awt_peer_gtk_AsyncImage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class AsyncImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Image; + namespace image + { + class ImageObserver; + class ImageProducer; + } + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::peer::gtk::AsyncImage : public ::java::awt::Image +{ + +public: // actually package-private + AsyncImage(::java::net::URL *); +public: + virtual void flush(); + virtual ::java::awt::Graphics * getGraphics(); + virtual jint getHeight(::java::awt::image::ImageObserver *); + virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *); + virtual ::java::awt::image::ImageProducer * getSource(); + virtual jint getWidth(::java::awt::image::ImageObserver *); +public: // actually package-private + virtual void addObserver(::java::awt::image::ImageObserver *); + static ::java::awt::Image * realImage(::java::awt::Image *, ::java::awt::image::ImageObserver *); + virtual void notifyObservers(jint); + virtual jint checkImage(::java::awt::image::ImageObserver *); + ::java::awt::Image * __attribute__((aligned(__alignof__( ::java::awt::Image)))) realImage__; + ::java::util::HashSet * observers; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_AsyncImage__ diff --git a/libjava/gnu/java/awt/peer/gtk/BufferedImageGraphics.h b/libjava/gnu/java/awt/peer/gtk/BufferedImageGraphics.h new file mode 100644 index 00000000000..ef29b9b8060 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/BufferedImageGraphics.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_BufferedImageGraphics__ +#define __gnu_java_awt_peer_gtk_BufferedImageGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class BufferedImageGraphics; + class CairoSurface; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Graphics; + class GraphicsConfiguration; + class Image; + class Shape; + namespace font + { + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + namespace image + { + class BufferedImage; + class ColorModel; + class ImageObserver; + class RenderedImage; + } + } + } +} + +class gnu::java::awt::peer::gtk::BufferedImageGraphics : public ::gnu::java::awt::peer::gtk::CairoGraphics2D +{ + +public: + BufferedImageGraphics(::java::awt::image::BufferedImage *); +public: // actually package-private + BufferedImageGraphics(::gnu::java::awt::peer::gtk::BufferedImageGraphics *); +private: + void updateBufferedImage(jint, jint, jint, jint); +public: + virtual ::java::awt::Graphics * create(); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); +public: // actually protected + virtual ::java::awt::geom::Rectangle2D * getRealBounds(); +public: + virtual void copyAreaImpl(jint, jint, jint, jint, jint, jint); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); +public: // actually protected + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::Color *, ::java::awt::image::ImageObserver *); +public: + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); +private: + jboolean drawComposite(::java::awt::geom::Rectangle2D *, ::java::awt::image::ImageObserver *); + void createBuffer(); +public: // actually protected + virtual ::java::awt::image::ColorModel * getNativeCM(); + virtual ::java::awt::image::ColorModel * getBufferCM(); +private: + ::java::awt::image::BufferedImage * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::CairoGraphics2D)))) image; + ::java::awt::image::BufferedImage * buffer; + jboolean locked; + jint imageWidth; + jint imageHeight; +public: // actually package-private + ::gnu::java::awt::peer::gtk::CairoSurface * surface; + static ::java::util::WeakHashMap * bufferedImages; +private: + jlong cairo_t; + jboolean hasFastCM; + jboolean hasAlpha; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_BufferedImageGraphics__ diff --git a/libjava/gnu/java/awt/peer/gtk/CairoGraphics2D.h b/libjava/gnu/java/awt/peer/gtk/CairoGraphics2D.h new file mode 100644 index 00000000000..a20f47212dd --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/CairoGraphics2D.h @@ -0,0 +1,279 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_CairoGraphics2D__ +#define __gnu_java_awt_peer_gtk_CairoGraphics2D__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class CairoGraphics2D; + class GdkFontPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class BasicStroke; + class Color; + class Composite; + class CompositeContext; + class Font; + class FontMetrics; + class Graphics; + 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; + class PathIterator; + class Rectangle2D; + } + namespace image + { + class BufferedImage; + class BufferedImageOp; + class ColorModel; + class ImageObserver; + class Raster; + class RenderedImage; + namespace renderable + { + class RenderableImage; + } + } + } + namespace text + { + class AttributedCharacterIterator; + } + } +} + +class gnu::java::awt::peer::gtk::CairoGraphics2D : public ::java::awt::Graphics2D +{ + +public: + CairoGraphics2D(); + virtual void setup(jlong); + virtual void copy(::gnu::java::awt::peer::gtk::CairoGraphics2D *, jlong); + virtual void finalize(); + virtual void dispose(); +private: + jlong init(jlong); +public: + virtual ::java::awt::Graphics * create() = 0; + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration() = 0; +public: // actually protected + virtual void copyAreaImpl(jint, jint, jint, jint, jint, jint) = 0; + virtual ::java::awt::geom::Rectangle2D * getRealBounds() = 0; +public: + virtual void disposeNative(jlong); +private: + void drawPixels(jlong, JArray< jint > *, jint, jint, jint, JArray< jdouble > *, jdouble, jint); + void setGradient(jlong, jdouble, jdouble, jdouble, jdouble, jint, jint, jint, jint, jint, jint, jint, jint, jboolean); + void setPaintPixels(jlong, JArray< jint > *, jint, jint, jint, jboolean, jint, jint); + void cairoSetMatrix(jlong, JArray< jdouble > *); + void cairoScale(jlong, jdouble, jdouble); + void cairoSetOperator(jlong, jint); + void cairoSetRGBAColor(jlong, jdouble, jdouble, jdouble, jdouble); + void cairoSetFillRule(jlong, jint); + void cairoSetLine(jlong, jdouble, jint, jint, jdouble); + void cairoSetDash(jlong, JArray< jdouble > *, jint, jdouble); +public: // actually package-private + virtual void cairoDrawGlyphVector(jlong, ::gnu::java::awt::peer::gtk::GdkFontPeer *, jfloat, jfloat, jint, JArray< jint > *, JArray< jfloat > *); +private: + void cairoSetFont(jlong, ::gnu::java::awt::peer::gtk::GdkFontPeer *); + void cairoRelCurveTo(jlong, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble); + void cairoRectangle(jlong, jdouble, jdouble, jdouble, jdouble); + void cairoArc(jlong, jdouble, jdouble, jdouble, jdouble, jdouble); + void cairoSave(jlong); + void cairoRestore(jlong); + void cairoNewPath(jlong); + void cairoClosePath(jlong); + void cairoMoveTo(jlong, jdouble, jdouble); + void cairoRelMoveTo(jlong, jdouble, jdouble); + void cairoLineTo(jlong, jdouble, jdouble); + void cairoRelLineTo(jlong, jdouble, jdouble); + void cairoCurveTo(jlong, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble); + void cairoStroke(jlong); + void cairoFill(jlong, jdouble); + void cairoClip(jlong); + void cairoPreserveClip(jlong); + void cairoResetClip(jlong); + void cairoDrawLine(jlong, jdouble, jdouble, jdouble, jdouble); + void cairoDrawRect(jlong, jdouble, jdouble, jdouble, jdouble); + void cairoFillRect(jlong, jdouble, jdouble, jdouble, jdouble); +public: + virtual void setTransform(::java::awt::geom::AffineTransform *); +private: + void setTransformImpl(::java::awt::geom::AffineTransform *); +public: + virtual void transform(::java::awt::geom::AffineTransform *); + virtual void rotate(jdouble); + virtual void rotate(jdouble, jdouble, jdouble); + virtual void scale(jdouble, jdouble); + virtual void translate(jdouble, jdouble); + virtual void translate(jint, jint); + virtual void shear(jdouble, jdouble); + virtual void clip(::java::awt::Shape *); + virtual ::java::awt::Paint * getPaint(); + virtual ::java::awt::geom::AffineTransform * getTransform(); + virtual void setPaint(::java::awt::Paint *); +public: // actually protected + virtual void setCustomPaint(::java::awt::Rectangle *); +public: + virtual ::java::awt::Stroke * getStroke(); + virtual void setStroke(::java::awt::Stroke *); +public: // actually protected + virtual ::java::awt::Rectangle * findStrokedBounds(::java::awt::Shape *); +public: + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual void setColor(::java::awt::Color *); +public: // actually package-private + virtual void updateColor(); +public: + virtual ::java::awt::Color * getColor(); + virtual void clipRect(jint, jint, jint, jint); + virtual ::java::awt::Shape * getClip(); + virtual ::java::awt::Rectangle * getClipBounds(); +public: // actually protected + virtual ::java::awt::geom::Rectangle2D * getClipInDevSpace(); +public: + virtual void setClip(jint, jint, jint, jint); + virtual void setClip(::java::awt::Shape *); + virtual void setBackground(::java::awt::Color *); + virtual ::java::awt::Color * getBackground(); + virtual ::java::awt::Composite * getComposite(); + virtual void setComposite(::java::awt::Composite *); +public: // actually protected + virtual ::java::awt::image::ColorModel * getNativeCM() = 0; + virtual ::java::awt::image::ColorModel * getBufferCM(); +public: + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); +private: + void createPath(::java::awt::Shape *, jboolean); +public: + virtual void clearRect(jint, jint, jint, jint); + virtual void draw3DRect(jint, jint, jint, jint, jboolean); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual void drawLine(jint, jint, jint, jint); + virtual void drawRect(jint, jint, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawOval(jint, jint, jint, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual void setRenderingHint(::java::awt::RenderingHints$Key *, ::java::lang::Object *); + virtual ::java::lang::Object * getRenderingHint(::java::awt::RenderingHints$Key *); + virtual void setRenderingHints(::java::util::Map *); + virtual void addRenderingHints(::java::util::Map *); + virtual ::java::awt::RenderingHints * getRenderingHints(); +private: + jint getInterpolation(); +public: // actually protected + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::Color *, ::java::awt::image::ImageObserver *); +public: + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); + virtual void drawRenderableImage(::java::awt::image::renderable::RenderableImage *, ::java::awt::geom::AffineTransform *); + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *); + virtual void drawImage(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImageOp *, jint, jint); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual void drawString(::java::lang::String *, jfloat, jfloat); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint); + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); + virtual void drawString(::java::text::AttributedCharacterIterator *, jfloat, jfloat); + virtual ::java::awt::font::FontRenderContext * getFontRenderContext(); + virtual ::java::awt::FontMetrics * getFontMetrics(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::Font * getFont(); + virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean); + virtual ::java::lang::String * toString(); +private: + jboolean drawRaster(::java::awt::image::ColorModel *, ::java::awt::image::Raster *, ::java::awt::geom::AffineTransform *, ::java::awt::Color *); + jdouble shiftX(jdouble, jboolean); + jdouble shiftY(jdouble, jboolean); + void walkPath(::java::awt::geom::PathIterator *, jboolean); + ::java::util::Map * getDefaultHints(); +public: + static JArray< jint > * findSimpleIntegerArray(::java::awt::image::ColorModel *, ::java::awt::image::Raster *); +private: + void updateClip(::java::awt::geom::AffineTransform *); + static ::java::awt::Rectangle * computeIntersection(jint, jint, jint, jint, ::java::awt::Rectangle *); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::java::awt::Graphics2D)))) nativePointer; + ::java::awt::Paint * paint; + jboolean customPaint; + ::java::awt::Stroke * stroke; + ::java::awt::Color * fg; + ::java::awt::Color * bg; + ::java::awt::Shape * clip__; + ::java::awt::geom::AffineTransform * transform__; + ::java::awt::Font * font; + ::java::awt::Composite * comp; + ::java::awt::CompositeContext * compCtx; +private: + ::java::awt::RenderingHints * hints; +public: // actually protected + jboolean shiftDrawCalls; +private: + jboolean firstClip; + ::java::awt::Shape * originalClip; + static ::java::awt::BasicStroke * draw3DRectStroke; +public: // actually package-private + static ::java::awt::image::ColorModel * rgb32; + static ::java::awt::image::ColorModel * argb32; +public: + static const jint INTERPOLATION_NEAREST = 0; + static const jint INTERPOLATION_BILINEAR = 1; + static const jint INTERPOLATION_BICUBIC = 5; + static const jint ALPHA_INTERPOLATION_SPEED = 2; + static const jint ALPHA_INTERPOLATION_QUALITY = 3; + static const jint ALPHA_INTERPOLATION_DEFAULT = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_CairoGraphics2D__ diff --git a/libjava/gnu/java/awt/peer/gtk/CairoSurface$CairoDataBuffer.h b/libjava/gnu/java/awt/peer/gtk/CairoSurface$CairoDataBuffer.h new file mode 100644 index 00000000000..3373a83bdbd --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/CairoSurface$CairoDataBuffer.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_CairoSurface$CairoDataBuffer__ +#define __gnu_java_awt_peer_gtk_CairoSurface$CairoDataBuffer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class CairoSurface; + class CairoSurface$CairoDataBuffer; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::CairoSurface$CairoDataBuffer : public ::java::awt::image::DataBuffer +{ + +public: + CairoSurface$CairoDataBuffer(::gnu::java::awt::peer::gtk::CairoSurface *); + virtual jint getElem(jint, jint); + virtual void setElem(jint, jint, jint); +public: // actually package-private + ::gnu::java::awt::peer::gtk::CairoSurface * __attribute__((aligned(__alignof__( ::java::awt::image::DataBuffer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_CairoSurface$CairoDataBuffer__ diff --git a/libjava/gnu/java/awt/peer/gtk/CairoSurface.h b/libjava/gnu/java/awt/peer/gtk/CairoSurface.h new file mode 100644 index 00000000000..bc33bdb6391 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/CairoSurface.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_CairoSurface__ +#define __gnu_java_awt_peer_gtk_CairoSurface__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class CairoSurface; + class GtkImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics2D; + namespace image + { + class BufferedImage; + class ColorModel; + class SampleModel; + } + } + } +} + +class gnu::java::awt::peer::gtk::CairoSurface : public ::java::awt::image::WritableRaster +{ + + void create(jint, jint, jint); + void destroy(jlong, jlong); + jint nativeGetElem(jlong, jint); + void nativeSetElem(jlong, jint, jint); +public: + virtual void nativeDrawSurface(jlong, jlong, JArray< jdouble > *, jdouble, jint); + virtual void drawSurface(jlong, JArray< jdouble > *, jdouble, jint); +public: // actually package-private + virtual JArray< jint > * nativeGetPixels(jlong, jint); +public: + virtual JArray< jint > * getPixels(jint); +public: // actually package-private + virtual void nativeSetPixels(jlong, JArray< jint > *); +public: + virtual void setPixels(JArray< jint > *); +public: // actually package-private + virtual jlong getFlippedBuffer(jlong, jint); +public: + CairoSurface(jint, jint); +public: // actually package-private + CairoSurface(::gnu::java::awt::peer::gtk::GtkImage *); +public: + virtual void dispose(); +public: // actually protected + virtual void finalize(); +public: + virtual ::gnu::java::awt::peer::gtk::GtkImage * getGtkImage(); + static ::java::awt::image::BufferedImage * getBufferedImage(jint, jint); + static ::java::awt::image::BufferedImage * getBufferedImage(::gnu::java::awt::peer::gtk::GtkImage *); + static ::java::awt::image::BufferedImage * getBufferedImage(::gnu::java::awt::peer::gtk::CairoSurface *); + virtual ::java::awt::Graphics2D * getGraphics(); +public: // actually package-private + virtual jlong nativeNewCairoContext(jlong); +public: + virtual jlong newCairoContext(); +public: // actually package-private + virtual void copyAreaNative2(jlong, jint, jint, jint, jint, jint, jint, jint); +public: + virtual void copyAreaNative(jint, jint, jint, jint, jint, jint, jint); +public: // actually protected + static ::java::awt::image::SampleModel * createCairoSampleModel(jint, jint); +public: // actually package-private + static jint access$0(::gnu::java::awt::peer::gtk::CairoSurface *, jlong, jint); + static void access$1(::gnu::java::awt::peer::gtk::CairoSurface *, jlong, jint, jint); + jint __attribute__((aligned(__alignof__( ::java::awt::image::WritableRaster)))) width; + jint height; + jlong surfacePointer; + jlong bufferPointer; + static ::java::awt::image::ColorModel * cairoColorModel; + static ::java::awt::image::ColorModel * cairoCM_pre; + static ::java::awt::image::ColorModel * cairoCM_opaque; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_CairoSurface__ diff --git a/libjava/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.h b/libjava/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.h new file mode 100644 index 00000000000..938da7be0a7 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/CairoSurfaceGraphics.h @@ -0,0 +1,93 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_CairoSurfaceGraphics__ +#define __gnu_java_awt_peer_gtk_CairoSurfaceGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class CairoSurface; + class CairoSurfaceGraphics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Graphics; + class GraphicsConfiguration; + class Image; + class Shape; + namespace font + { + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + namespace image + { + class BufferedImage; + class ColorModel; + class ImageObserver; + class RenderedImage; + } + } + } +} + +class gnu::java::awt::peer::gtk::CairoSurfaceGraphics : public ::gnu::java::awt::peer::gtk::CairoGraphics2D +{ + +public: + CairoSurfaceGraphics(::gnu::java::awt::peer::gtk::CairoSurface *); +private: + CairoSurfaceGraphics(::gnu::java::awt::peer::gtk::CairoSurfaceGraphics *); +public: + virtual ::java::awt::Graphics * create(); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); +public: // actually protected + virtual ::java::awt::geom::Rectangle2D * getRealBounds(); +public: + virtual void copyAreaImpl(jint, jint, jint, jint, jint, jint); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); +public: // actually protected + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::Color *, ::java::awt::image::ImageObserver *); +public: + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); +private: + jboolean drawComposite(::java::awt::geom::Rectangle2D *, ::java::awt::image::ImageObserver *); + void createBuffer(); +public: // actually protected + virtual ::java::awt::image::ColorModel * getNativeCM(); + virtual ::java::awt::image::ColorModel * getBufferCM(); + ::gnu::java::awt::peer::gtk::CairoSurface * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::CairoGraphics2D)))) surface; +private: + ::java::awt::image::BufferedImage * buffer; + jlong cairo_t; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_CairoSurfaceGraphics__ diff --git a/libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h b/libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h new file mode 100644 index 00000000000..fbc87a85658 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h @@ -0,0 +1,128 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_ComponentGraphics__ +#define __gnu_java_awt_peer_gtk_ComponentGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Pointer; + } + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class ComponentGraphics; + class GtkComponentPeer; + class GtkImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Graphics; + class Graphics2D; + class GraphicsConfiguration; + class Image; + class Shape; + namespace font + { + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + namespace image + { + class BufferedImage; + class ColorModel; + class ImageObserver; + class RenderedImage; + } + } + } +} + +class gnu::java::awt::peer::gtk::ComponentGraphics : public ::gnu::java::awt::peer::gtk::CairoGraphics2D +{ + +public: // actually package-private + ComponentGraphics(); +private: + ComponentGraphics(::gnu::java::awt::peer::gtk::GtkComponentPeer *); + ComponentGraphics(::gnu::java::awt::peer::gtk::ComponentGraphics *); + jlong initState(::gnu::java::awt::peer::gtk::GtkComponentPeer *); + void lock(); + void unlock(); +public: + virtual void dispose(); +private: + void disposeSurface(jlong); +public: // actually protected + virtual jlong initFromVolatile(jlong, jint, jint); +private: + void start_gdk_drawing(); + void end_gdk_drawing(); +public: + static jboolean hasXRender(); +private: + static ::gnu::classpath::Pointer * nativeGrab(::gnu::java::awt::peer::gtk::GtkComponentPeer *); + void copyAreaNative(::gnu::java::awt::peer::gtk::GtkComponentPeer *, jint, jint, jint, jint, jint, jint); + void drawVolatile(::gnu::java::awt::peer::gtk::GtkComponentPeer *, jlong, jint, jint, jint, jint, jint, jint, jint, jint); +public: + static ::gnu::java::awt::peer::gtk::GtkImage * grab(::gnu::java::awt::peer::gtk::GtkComponentPeer *); + static ::java::awt::Graphics2D * getComponentGraphics(::gnu::java::awt::peer::gtk::GtkComponentPeer *); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); + virtual ::java::awt::Graphics * create(); +public: // actually protected + virtual ::java::awt::geom::Rectangle2D * getRealBounds(); +public: + virtual void copyAreaImpl(jint, jint, jint, jint, jint, jint); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); +public: // actually protected + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::Color *, ::java::awt::image::ImageObserver *); +public: + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual void setClip(::java::awt::Shape *); +private: + jboolean drawComposite(::java::awt::geom::Rectangle2D *, ::java::awt::image::ImageObserver *); + void createBuffer(); +public: // actually protected + virtual ::java::awt::image::ColorModel * getNativeCM(); +private: + static jboolean hasXRenderExtension; + ::gnu::java::awt::peer::gtk::GtkComponentPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::CairoGraphics2D)))) component; +public: // actually protected + jlong cairo_t; +private: + ::java::awt::image::BufferedImage * buffer; + ::java::awt::image::BufferedImage * componentBuffer; + static ::java::lang::ThreadLocal * hasLock; + static ::java::lang::Integer * ONE; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_ComponentGraphics__ diff --git a/libjava/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.h b/libjava/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.h new file mode 100644 index 00000000000..7ba10f86f07 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_ComponentGraphicsCopy__ +#define __gnu_java_awt_peer_gtk_ComponentGraphicsCopy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class ComponentGraphicsCopy; + class GtkComponentPeer; + class GtkImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Image; + class Shape; + namespace font + { + class GlyphVector; + } + namespace geom + { + class AffineTransform; + } + namespace image + { + class ImageObserver; + class RenderedImage; + } + } + } +} + +class gnu::java::awt::peer::gtk::ComponentGraphicsCopy : public ::gnu::java::awt::peer::gtk::CairoSurfaceGraphics +{ + +public: // actually package-private + virtual void getPixbuf(::gnu::java::awt::peer::gtk::GtkComponentPeer *, ::gnu::java::awt::peer::gtk::GtkImage *); + virtual void copyPixbuf(::gnu::java::awt::peer::gtk::GtkComponentPeer *, ::gnu::java::awt::peer::gtk::GtkImage *, jint, jint, jint, jint); +public: + ComponentGraphicsCopy(jint, jint, ::gnu::java::awt::peer::gtk::GtkComponentPeer *); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); +public: // actually protected + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::Color *, ::java::awt::image::ImageObserver *); +public: + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); +private: + ::gnu::java::awt::peer::gtk::GtkComponentPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::CairoSurfaceGraphics)))) component; + ::gnu::java::awt::peer::gtk::GtkImage * gtkimage; + jint width; + jint height; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_ComponentGraphicsCopy__ diff --git a/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h b/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h new file mode 100644 index 00000000000..312e69c0076 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_FreetypeGlyphVector__ +#define __gnu_java_awt_peer_gtk_FreetypeGlyphVector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class FreetypeGlyphVector; + class GdkFontPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Shape; + namespace font + { + class FontRenderContext; + class GlyphJustificationInfo; + class GlyphMetrics; + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class GeneralPath; + class Point2D; + class Rectangle2D; + } + } + } +} + +class gnu::java::awt::peer::gtk::FreetypeGlyphVector : public ::java::awt::font::GlyphVector +{ + +public: + FreetypeGlyphVector(::java::awt::Font *, ::java::lang::String *, ::java::awt::font::FontRenderContext *); + FreetypeGlyphVector(::java::awt::Font *, JArray< jchar > *, jint, jint, ::java::awt::font::FontRenderContext *, jint); + FreetypeGlyphVector(::java::awt::Font *, JArray< jint > *, ::java::awt::font::FontRenderContext *); +private: + FreetypeGlyphVector(::gnu::java::awt::peer::gtk::FreetypeGlyphVector *); + void getGlyphs(); +public: + virtual JArray< jint > * getGlyphs(JArray< jint > *); +private: + ::java::awt::geom::Point2D * getKerning(jint, jint); + JArray< jdouble > * getMetricsNative(jint); + ::java::awt::geom::GeneralPath * getGlyphOutlineNative(jint); +public: + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::awt::font::GlyphVector *); + virtual ::java::awt::Font * getFont(); + virtual ::java::awt::font::FontRenderContext * getFontRenderContext(); + virtual void performDefaultLayout(); + virtual jint getGlyphCode(jint); + virtual JArray< jint > * getGlyphCodes(jint, jint, JArray< jint > *); + virtual ::java::awt::Shape * getGlyphLogicalBounds(jint); + virtual void setupGlyphMetrics(); + virtual ::java::awt::font::GlyphMetrics * getGlyphMetrics(jint); + virtual ::java::awt::Shape * getGlyphOutline(jint); + virtual ::java::awt::geom::Point2D * getGlyphPosition(jint); + virtual JArray< jfloat > * getGlyphPositions(jint, jint, JArray< jfloat > *); + virtual ::java::awt::geom::AffineTransform * getGlyphTransform(jint); + virtual ::java::awt::Shape * getGlyphVisualBounds(jint); + virtual ::java::awt::geom::Rectangle2D * getLogicalBounds(); + virtual jint getNumGlyphs(); + virtual ::java::awt::Shape * getOutline(); + virtual ::java::awt::font::GlyphJustificationInfo * getGlyphJustificationInfo(jint); + virtual ::java::awt::Shape * getOutline(jfloat, jfloat); + virtual ::java::awt::geom::Rectangle2D * getVisualBounds(); + virtual void setGlyphPosition(jint, ::java::awt::geom::Point2D *); + virtual void setGlyphTransform(jint, ::java::awt::geom::AffineTransform *); +private: + ::java::awt::Font * __attribute__((aligned(__alignof__( ::java::awt::font::GlyphVector)))) font; + ::gnu::java::awt::peer::gtk::GdkFontPeer * peer; + ::java::awt::geom::Rectangle2D * logicalBounds; + JArray< jfloat > * glyphPositions; + ::java::lang::String * s; + ::java::awt::font::FontRenderContext * frc; + jint nGlyphs; + JArray< jint > * glyphCodes; + JArray< ::java::awt::geom::AffineTransform * > * glyphTransforms; + JArray< ::java::awt::font::GlyphMetrics * > * metricsCache; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_FreetypeGlyphVector__ diff --git a/libjava/gnu/java/awt/peer/gtk/GThreadMutex.h b/libjava/gnu/java/awt/peer/gtk/GThreadMutex.h new file mode 100644 index 00000000000..9380a5dda27 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GThreadMutex.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GThreadMutex__ +#define __gnu_java_awt_peer_gtk_GThreadMutex__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GThreadMutex; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GThreadMutex : public ::java::lang::Object +{ + +public: // actually package-private + GThreadMutex(); + volatile jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) potentialLockers; + ::java::lang::Object * lockForPotentialLockers; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GThreadMutex__ diff --git a/libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.h b/libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.h new file mode 100644 index 00000000000..803f173cf77 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GThreadNativeMethodRunner__ +#define __gnu_java_awt_peer_gtk_GThreadNativeMethodRunner__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GThreadNativeMethodRunner; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GThreadNativeMethodRunner : public ::java::lang::Thread +{ + +public: // actually package-private + GThreadNativeMethodRunner(jlong, jlong, jboolean); +public: + virtual void run(); +private: + void nativeRun(jlong, jlong); + static jint registerThread(::java::lang::Thread *); +public: // actually package-private + static jint threadToThreadID(::java::lang::Thread *); + static ::java::lang::Thread * threadIDToThread(jint); +private: + void registerSelfJoinable(); +public: // actually package-private + static void deRegisterJoinable(::java::lang::Thread *); +private: + jlong __attribute__((aligned(__alignof__( ::java::lang::Thread)))) funcPtr; + jlong funcArg; + static JArray< ::java::lang::ref::WeakReference * > * threads; + static ::java::util::Set * joinable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GThreadNativeMethodRunner__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.h b/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.h new file mode 100644 index 00000000000..65ca7a2dea3 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkFontMetrics__ +#define __gnu_java_awt_peer_gtk_GdkFontMetrics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkFontMetrics; + class GdkFontPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + } + } +} + +class gnu::java::awt::peer::gtk::GdkFontMetrics : public ::java::awt::FontMetrics +{ + + static ::java::awt::Font * initFont(::java::awt::Font *); +public: + GdkFontMetrics(::java::awt::Font *); + virtual jint stringWidth(::java::lang::String *); + virtual jint charWidth(jchar); + virtual jint charsWidth(JArray< jchar > *, jint, jint); + virtual jint getLeading(); + virtual jint getAscent(); + virtual jint getMaxAscent(); + virtual jint getDescent(); + virtual jint getMaxDescent(); + virtual jint getMaxAdvance(); +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::java::awt::FontMetrics)))) font_metrics; +public: // actually package-private + ::gnu::java::awt::peer::gtk::GdkFontPeer * peer; + static const jint FONT_METRICS_ASCENT = 0; + static const jint FONT_METRICS_MAX_ASCENT = 1; + static const jint FONT_METRICS_DESCENT = 2; + static const jint FONT_METRICS_MAX_DESCENT = 3; + static const jint FONT_METRICS_MAX_ADVANCE = 4; + static const jint TEXT_METRICS_X_BEARING = 0; + static const jint TEXT_METRICS_Y_BEARING = 1; + static const jint TEXT_METRICS_WIDTH = 2; + static const jint TEXT_METRICS_HEIGHT = 3; + static const jint TEXT_METRICS_X_ADVANCE = 4; + static const jint TEXT_METRICS_Y_ADVANCE = 5; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkFontMetrics__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.h b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.h new file mode 100644 index 00000000000..508a37d8d04 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkFontPeer$GdkFontLineMetrics__ +#define __gnu_java_awt_peer_gtk_GdkFontPeer$GdkFontLineMetrics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkFontPeer; + class GdkFontPeer$GdkFontLineMetrics; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkFontPeer$GdkFontLineMetrics : public ::java::awt::font::LineMetrics +{ + +public: + GdkFontPeer$GdkFontLineMetrics(::gnu::java::awt::peer::gtk::GdkFontPeer *, ::gnu::java::awt::peer::gtk::GdkFontPeer *, jint); + virtual jfloat getAscent(); + virtual jint getBaselineIndex(); + virtual JArray< jfloat > * getBaselineOffsets(); + virtual jfloat getDescent(); + virtual jfloat getHeight(); + virtual jfloat getLeading(); + virtual jint getNumChars(); + virtual jfloat getStrikethroughOffset(); + virtual jfloat getStrikethroughThickness(); + virtual jfloat getUnderlineOffset(); + virtual jfloat getUnderlineThickness(); +private: + jint __attribute__((aligned(__alignof__( ::java::awt::font::LineMetrics)))) nchars; +public: // actually package-private + ::gnu::java::awt::peer::gtk::GdkFontPeer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkFontPeer$GdkFontLineMetrics__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.h b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.h new file mode 100644 index 00000000000..0c9961ba311 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkFontPeer$GdkFontMetrics__ +#define __gnu_java_awt_peer_gtk_GdkFontPeer$GdkFontMetrics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkFontPeer; + class GdkFontPeer$GdkFontMetrics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + } + } +} + +class gnu::java::awt::peer::gtk::GdkFontPeer$GdkFontMetrics : public ::java::awt::FontMetrics +{ + +public: + GdkFontPeer$GdkFontMetrics(::gnu::java::awt::peer::gtk::GdkFontPeer *, ::java::awt::Font *); + virtual jint stringWidth(::java::lang::String *); + virtual jint charWidth(jchar); + virtual jint charsWidth(JArray< jchar > *, jint, jint); + virtual jint getHeight(); + virtual jint getLeading(); + virtual jint getAscent(); + virtual jint getMaxAscent(); + virtual jint getDescent(); + virtual jint getMaxDescent(); + virtual jint getMaxAdvance(); +public: // actually package-private + ::gnu::java::awt::peer::gtk::GdkFontPeer * __attribute__((aligned(__alignof__( ::java::awt::FontMetrics)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkFontPeer$GdkFontMetrics__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h new file mode 100644 index 00000000000..903210aca3a --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h @@ -0,0 +1,142 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkFontPeer__ +#define __gnu_java_awt_peer_gtk_GdkFontPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkFontPeer; + class GdkFontPeer$GdkFontMetrics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class FontMetrics; + namespace font + { + class FontRenderContext; + class GlyphMetrics; + class GlyphVector; + class LineMetrics; + } + namespace geom + { + class Rectangle2D; + } + } + namespace nio + { + class ByteBuffer; + } + namespace text + { + class CharacterIterator; + } + } +} + +class gnu::java::awt::peer::gtk::GdkFontPeer : public ::gnu::java::awt::peer::ClasspathFontPeer +{ + +public: // actually package-private + static void initStaticState(); +private: + void initState(); + void dispose(); + void setFont(::java::lang::String *, jint, jint); +public: // actually package-private + virtual void getFontMetrics(JArray< jdouble > *); + virtual void getTextMetrics(::java::lang::String *, JArray< jdouble > *); + virtual void releasePeerGraphicsResource(); +public: // actually protected + virtual void finalize(); +private: + ::java::lang::String * buildString(::java::text::CharacterIterator *); + ::java::lang::String * buildString(::java::text::CharacterIterator *, jint, jint); + ::java::lang::String * buildString(JArray< jchar > *, jint, jint); +public: + GdkFontPeer(::java::lang::String *, jint); + GdkFontPeer(::java::lang::String *, jint, jint); + GdkFontPeer(::java::lang::String *, ::java::util::Map *); +public: // actually package-private + static ::java::awt::Font * initFont(::java::awt::Font *); +private: + void setupMetrics(); +public: + virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *); +private: + JArray< jbyte > * getTrueTypeTable(jbyte, jbyte, jbyte, jbyte); +public: + virtual ::java::lang::String * getPostScriptName(::java::awt::Font *); +private: + ::java::lang::String * getName(jint, ::java::util::Locale *); +public: + virtual jboolean canDisplay(::java::awt::Font *, jchar); + virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint); + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *); + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *); + virtual jbyte getBaselineFor(::java::awt::Font *, jchar); + virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *); + virtual ::java::awt::geom::Rectangle2D * getMaxCharBounds(::java::awt::Font *, ::java::awt::font::FontRenderContext *); + virtual jint getMissingGlyphCode(::java::awt::Font *); + virtual ::java::lang::String * getGlyphName(::java::awt::Font *, jint); + virtual jint getNumGlyphs(::java::awt::Font *); + virtual jboolean hasUniformLineMetrics(::java::awt::Font *); + virtual ::java::awt::font::GlyphVector * layoutGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jchar > *, jint, jint, jint); + virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::awt::Font *, ::java::lang::String *, ::java::awt::font::FontRenderContext *); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); +public: // actually package-private + virtual ::java::awt::font::GlyphMetrics * getGlyphMetrics(jint); + virtual void putGlyphMetrics(jint, ::java::lang::Object *); + static ::java::awt::font::FontRenderContext * DEFAULT_CTX; + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::ClasspathFontPeer)))) textLayoutCache; +private: + jint native_state; + ::java::util::HashMap * metricsCache; + static const jint FONT_METRICS_ASCENT = 0; + static const jint FONT_METRICS_MAX_ASCENT = 1; + static const jint FONT_METRICS_DESCENT = 2; + static const jint FONT_METRICS_MAX_DESCENT = 3; + static const jint FONT_METRICS_MAX_ADVANCE = 4; + static const jint FONT_METRICS_HEIGHT = 5; + static const jint FONT_METRICS_UNDERLINE_OFFSET = 6; + static const jint FONT_METRICS_UNDERLINE_THICKNESS = 7; +public: // actually package-private + jfloat ascent; + jfloat descent; + jfloat maxAscent; + jfloat maxDescent; + jfloat maxAdvance; + jfloat height; + jfloat underlineOffset; + jfloat underlineThickness; + ::gnu::java::awt::peer::gtk::GdkFontPeer$GdkFontMetrics * metrics; +private: + ::java::nio::ByteBuffer * nameTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkFontPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.h b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.h new file mode 100644 index 00000000000..d36580f0f58 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkGraphicsConfiguration__ +#define __gnu_java_awt_peer_gtk_GdkGraphicsConfiguration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkGraphicsConfiguration; + class GdkScreenGraphicsDevice; + } + } + } + } + } + namespace java + { + namespace awt + { + class BufferCapabilities; + class GraphicsDevice; + class ImageCapabilities; + class Rectangle; + namespace geom + { + class AffineTransform; + } + namespace image + { + class BufferedImage; + class ColorModel; + class VolatileImage; + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkGraphicsConfiguration : public ::java::awt::GraphicsConfiguration +{ + +public: + GdkGraphicsConfiguration(::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice *); + virtual ::java::awt::GraphicsDevice * getDevice(); + virtual ::java::awt::image::BufferedImage * createCompatibleImage(jint, jint); + virtual ::java::awt::image::BufferedImage * createCompatibleImage(jint, jint, jint); + virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint); + virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint, ::java::awt::ImageCapabilities *); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::image::ColorModel * getColorModel(jint); + virtual ::java::awt::geom::AffineTransform * getDefaultTransform(); + virtual ::java::awt::geom::AffineTransform * getNormalizingTransform(); + virtual ::java::awt::Rectangle * getBounds(); + virtual ::java::awt::BufferCapabilities * getBufferCapabilities(); + virtual ::java::awt::ImageCapabilities * getImageCapabilities(); + virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint, jint); +public: // actually package-private + ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * __attribute__((aligned(__alignof__( ::java::awt::GraphicsConfiguration)))) gdkScreenGraphicsDevice; + ::java::awt::image::ColorModel * opaqueColorModel; + ::java::awt::image::ColorModel * bitmaskColorModel; + ::java::awt::image::ColorModel * translucentColorModel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkGraphicsConfiguration__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h new file mode 100644 index 00000000000..8249a1e9a3e --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkGraphicsEnvironment__ +#define __gnu_java_awt_peer_gtk_GdkGraphicsEnvironment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkGraphicsEnvironment; + class GdkScreenGraphicsDevice; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Graphics2D; + class GraphicsDevice; + namespace image + { + class BufferedImage; + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkGraphicsEnvironment : public ::java::awt::GraphicsEnvironment +{ + +public: // actually package-private + static void initStaticState(); +public: + GdkGraphicsEnvironment(); +public: // actually package-private + virtual void nativeInitState(); +public: + virtual JArray< ::java::awt::GraphicsDevice * > * getScreenDevices(); +private: + JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * > * nativeGetScreenDevices(); +public: + virtual ::java::awt::GraphicsDevice * getDefaultScreenDevice(); +private: + ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * nativeGetDefaultScreenDevice(); +public: + virtual ::java::awt::Graphics2D * createGraphics(::java::awt::image::BufferedImage *); +private: + jint nativeGetNumFontFamilies(); + void nativeGetFontFamilies(JArray< ::java::lang::String * > *); +public: + virtual JArray< ::java::awt::Font * > * getAllFonts(); + virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(); + virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *); +public: // actually package-private + virtual JArray< jint > * getMouseCoordinates(); +private: + jint __attribute__((aligned(__alignof__( ::java::awt::GraphicsEnvironment)))) native_state; + ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * defaultDevice; + JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * > * devices; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkGraphicsEnvironment__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.h b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.h new file mode 100644 index 00000000000..197639f331e --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufReader__ +#define __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkPixbufDecoder; + class GdkPixbufDecoder$GdkPixbufReader; + class GdkPixbufDecoder$GdkPixbufReaderSpi; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + class ColorModel; + } + } + } + namespace javax + { + namespace imageio + { + class ImageReadParam; + namespace metadata + { + class IIOMetadata; + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufReader : public ::javax::imageio::ImageReader +{ + +public: + GdkPixbufDecoder$GdkPixbufReader(::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufReaderSpi *, ::java::lang::Object *); + GdkPixbufDecoder$GdkPixbufReader(::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufReaderSpi *, ::java::lang::Object *, ::gnu::java::awt::peer::gtk::GdkPixbufDecoder *); + 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 ::java::awt::image::BufferedImage * getBufferedImage(); + virtual jint getNumImages(jboolean); + virtual ::javax::imageio::metadata::IIOMetadata * getImageMetadata(jint); + virtual ::javax::imageio::metadata::IIOMetadata * getStreamMetadata(); + virtual ::java::util::Iterator * getImageTypes(jint); + virtual jint getHeight(jint); + virtual jint getWidth(jint); + virtual void setInput(::java::lang::Object *, jboolean, jboolean); + virtual ::java::awt::image::BufferedImage * read(jint, ::javax::imageio::ImageReadParam *); +public: // actually package-private + ::gnu::java::awt::peer::gtk::GdkPixbufDecoder * __attribute__((aligned(__alignof__( ::javax::imageio::ImageReader)))) dec; + ::java::awt::image::BufferedImage * bufferedImage; + ::java::awt::image::ColorModel * defaultModel; + jint width; + jint height; + ::java::lang::String * ext; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufReader__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.h b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.h new file mode 100644 index 00000000000..11816710361 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufReaderSpi__ +#define __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufReaderSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkPixbufDecoder$GdkPixbufReaderSpi; + } + } + } + } + } + namespace javax + { + namespace imageio + { + class ImageReader; + } + } +} + +class gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufReaderSpi : public ::javax::imageio::spi::ImageReaderSpi +{ + +public: + GdkPixbufDecoder$GdkPixbufReaderSpi(); + virtual jboolean canDecodeInput(::java::lang::Object *); + virtual ::javax::imageio::ImageReader * createReaderInstance(::java::lang::Object *); + virtual ::java::lang::String * getDescription(::java::util::Locale *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufReaderSpi__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.h b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.h new file mode 100644 index 00000000000..d88b2ae8a86 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufWriter__ +#define __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkPixbufDecoder$GdkPixbufWriter; + class GdkPixbufDecoder$GdkPixbufWriterSpi; + } + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageTypeSpecifier; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufWriter : public ::javax::imageio::ImageWriter +{ + +public: + GdkPixbufDecoder$GdkPixbufWriter(::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufWriterSpi *, ::java::lang::Object *); + virtual ::javax::imageio::metadata::IIOMetadata * convertImageMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *); + virtual ::javax::imageio::metadata::IIOMetadata * convertStreamMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageWriteParam *); + virtual ::javax::imageio::metadata::IIOMetadata * getDefaultImageMetadata(::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *); + virtual ::javax::imageio::metadata::IIOMetadata * getDefaultStreamMetadata(::javax::imageio::ImageWriteParam *); + virtual void write(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +private: + void write(JArray< jbyte > *); +public: + virtual void run(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::imageio::ImageWriter)))) ext; +private: + static ::java::lang::Object * DATADONE; + ::java::util::ArrayList * data; + ::java::io::IOException * exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufWriter__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.h b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.h new file mode 100644 index 00000000000..d8ac5af3bfd --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufWriterSpi__ +#define __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufWriterSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkPixbufDecoder$GdkPixbufWriterSpi; + } + } + } + } + } + namespace javax + { + namespace imageio + { + class ImageTypeSpecifier; + class ImageWriter; + } + } +} + +class gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufWriterSpi : public ::javax::imageio::spi::ImageWriterSpi +{ + +public: + GdkPixbufDecoder$GdkPixbufWriterSpi(); + virtual jboolean canEncodeImage(::javax::imageio::ImageTypeSpecifier *); + virtual ::javax::imageio::ImageWriter * createWriterInstance(::java::lang::Object *); + virtual ::java::lang::String * getDescription(::java::util::Locale *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkPixbufDecoder$GdkPixbufWriterSpi__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.h b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.h new file mode 100644 index 00000000000..03316f5395e --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder$ImageFormatSpec__ +#define __gnu_java_awt_peer_gtk_GdkPixbufDecoder$ImageFormatSpec__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkPixbufDecoder$ImageFormatSpec; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkPixbufDecoder$ImageFormatSpec : public ::java::lang::Object +{ + +public: + GdkPixbufDecoder$ImageFormatSpec(::java::lang::String *, jboolean); + virtual void addMimeType(::java::lang::String *); + virtual void addExtension(::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + jboolean writable; + ::java::util::ArrayList * mimeTypes; + ::java::util::ArrayList * extensions; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkPixbufDecoder$ImageFormatSpec__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h new file mode 100644 index 00000000000..8f7066551cb --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder__ +#define __gnu_java_awt_peer_gtk_GdkPixbufDecoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkPixbufDecoder; + class GdkPixbufDecoder$GdkPixbufReaderSpi; + class GdkPixbufDecoder$GdkPixbufWriter; + class GdkPixbufDecoder$GdkPixbufWriterSpi; + class GdkPixbufDecoder$ImageFormatSpec; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ColorModel; + } + } + namespace net + { + class URL; + } + } + namespace javax + { + namespace imageio + { + namespace spi + { + class IIORegistry; + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkPixbufDecoder : public ::gnu::java::awt::image::ImageDecoder +{ + +public: // actually package-private + static void initStaticState(); + virtual void initState(); + virtual void pumpBytes(JArray< jbyte > *, jint); + virtual void pumpDone(); + virtual void finish(jboolean); + static void streamImage(JArray< jint > *, ::java::lang::String *, jint, jint, jboolean, ::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufWriter *); +public: + GdkPixbufDecoder(::java::io::DataInput *); + GdkPixbufDecoder(::java::io::InputStream *); + GdkPixbufDecoder(::java::lang::String *); + GdkPixbufDecoder(::java::net::URL *); + GdkPixbufDecoder(JArray< jbyte > *, jint, jint); +public: // actually package-private + virtual void areaPrepared(jint, jint); + virtual void areaUpdated(jint, jint, jint, jint, JArray< jint > *, jint); +public: + virtual void produce(::java::util::Vector *, ::java::io::InputStream *); + virtual void finalize(); + static ::gnu::java::awt::peer::gtk::GdkPixbufDecoder$ImageFormatSpec * registerFormat(::java::lang::String *, jboolean); +public: // actually package-private + static JArray< ::java::lang::String * > * getFormatNames(jboolean); + static JArray< ::java::lang::String * > * getFormatExtensions(jboolean); + static JArray< ::java::lang::String * > * getFormatMimeTypes(jboolean); + static ::java::lang::String * findFormatName(::java::lang::Object *, jboolean); +public: + static ::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufReaderSpi * getReaderSpi(); + static ::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufWriterSpi * getWriterSpi(); + static void registerSpis(::javax::imageio::spi::IIORegistry *); +public: // actually package-private + static ::java::lang::Object * pixbufLock; +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::awt::image::ImageDecoder)))) native_state; + jboolean needsClose; +public: // actually package-private + ::java::util::Vector * curr; + static ::java::awt::image::ColorModel * cm; + static ::java::util::ArrayList * imageFormatSpecs; +private: + static ::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufReaderSpi * readerSpi; + static ::gnu::java::awt::peer::gtk::GdkPixbufDecoder$GdkPixbufWriterSpi * writerSpi; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkPixbufDecoder__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h b/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h new file mode 100644 index 00000000000..d961df32f29 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkRobotPeer__ +#define __gnu_java_awt_peer_gtk_GdkRobotPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkRobotPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class GraphicsDevice; + class Rectangle; + namespace image + { + class ColorModel; + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkRobotPeer : public ::java::lang::Object +{ + +public: + GdkRobotPeer(::java::awt::GraphicsDevice *); +public: // actually package-private + virtual jboolean initXTest(); +public: + 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); +public: // actually package-private + virtual JArray< jint > * nativeGetRGBPixels(jint, jint, jint, jint); +public: + virtual jint getRGBPixel(jint, jint); + virtual JArray< jint > * getRGBPixels(::java::awt::Rectangle *); +public: // actually package-private + static ::java::awt::image::ColorModel * cm; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkRobotPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.h b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.h new file mode 100644 index 00000000000..5c27e4c255a --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice$X11DisplayMode__ +#define __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice$X11DisplayMode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkScreenGraphicsDevice$X11DisplayMode; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice$X11DisplayMode : public ::java::lang::Object +{ + +public: // actually package-private + GdkScreenGraphicsDevice$X11DisplayMode(jint, jint, JArray< jshort > *); + JArray< jshort > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) rates; + jint width; + jint height; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice$X11DisplayMode__ diff --git a/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h new file mode 100644 index 00000000000..30c165f6e7e --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice__ +#define __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkGraphicsConfiguration; + class GdkGraphicsEnvironment; + class GdkScreenGraphicsDevice; + class GdkScreenGraphicsDevice$X11DisplayMode; + } + } + } + } + } + namespace java + { + namespace awt + { + class DisplayMode; + class GraphicsConfiguration; + class Rectangle; + class Window; + } + } +} + +class gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice : public ::java::awt::GraphicsDevice +{ + +public: // actually package-private + static void initStaticState(); + GdkScreenGraphicsDevice(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *); + virtual void init(); + virtual ::java::awt::DisplayMode * nativeGetFixedDisplayMode(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *); +public: + virtual jint getType(); + virtual ::java::lang::String * getIDstring(); +private: + ::java::lang::String * nativeGetIDString(); +public: + virtual JArray< ::java::awt::GraphicsConfiguration * > * getConfigurations(); + virtual ::java::awt::GraphicsConfiguration * getDefaultConfiguration(); + virtual ::java::awt::DisplayMode * getDisplayMode(); +public: // actually package-private + virtual jint nativeGetDisplayModeIndex(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *); + virtual jint nativeGetDisplayModeRate(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *); +public: + virtual JArray< ::java::awt::DisplayMode * > * getDisplayModes(); +public: // actually package-private + virtual JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice$X11DisplayMode * > * nativeGetDisplayModes(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *); +public: + virtual jboolean isFullScreenSupported(); + virtual jboolean isDisplayChangeSupported(); + virtual void setDisplayMode(::java::awt::DisplayMode *); +public: // actually package-private + virtual void nativeSetDisplayMode(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *, jint, jshort); +public: + virtual void setFullScreenWindow(::java::awt::Window *); + virtual ::java::awt::Window * getFullScreenWindow(); +public: // actually package-private + virtual ::java::awt::Rectangle * getBounds(); + virtual ::java::awt::Rectangle * nativeGetBounds(); +private: + jint __attribute__((aligned(__alignof__( ::java::awt::GraphicsDevice)))) native_state; + ::java::awt::Window * fullscreenWindow; + jboolean oldWindowDecorationState; + ::java::awt::Rectangle * oldWindowBounds; + ::java::awt::Rectangle * bounds; + JArray< ::gnu::java::awt::peer::gtk::GdkGraphicsConfiguration * > * configurations; +public: // actually package-private + ::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment * env; + ::java::lang::String * idString; + JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice$X11DisplayMode * > * displayModes; + ::java::awt::DisplayMode * fixedDisplayMode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.h new file mode 100644 index 00000000000..6abd2674147 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkButtonPeer__ +#define __gnu_java_awt_peer_gtk_GtkButtonPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkButtonPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + } + } +} + +class gnu::java::awt::peer::gtk::GtkButtonPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: // actually package-private + virtual void create(::java::lang::String *); +public: + virtual void connectSignals(); +public: // actually protected + virtual void gtkWidgetModifyFont(::java::lang::String *, jint, jint); +public: // actually package-private + virtual void gtkSetLabel(::java::lang::String *); + virtual void gtkWidgetSetForeground(jint, jint, jint); + virtual void gtkWidgetSetBackground(jint, jint, jint); + virtual void gtkActivate(); + virtual void gtkWidgetRequestFocus(); + virtual void setNativeBounds(jint, jint, jint, jint); + virtual void gtkWidgetGetPreferredDimensions(JArray< jint > *); +public: + GtkButtonPeer(::java::awt::Button *); +public: // actually package-private + virtual void create(); +public: + virtual void setLabel(::java::lang::String *); +public: // actually package-private + virtual void postActionEvent(jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkButtonPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkCanvasPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkCanvasPeer.h new file mode 100644 index 00000000000..3808c2faebe --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkCanvasPeer.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkCanvasPeer__ +#define __gnu_java_awt_peer_gtk_GtkCanvasPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkCanvasPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Canvas; + class Dimension; + } + } +} + +class gnu::java::awt::peer::gtk::GtkCanvasPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: // actually package-private + virtual void create(); +public: + GtkCanvasPeer(::java::awt::Canvas *); + virtual ::java::awt::Dimension * preferredSize(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkCanvasPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.h new file mode 100644 index 00000000000..2a2f4559ca7 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__ +#define __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkCheckboxMenuItemPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class CheckboxMenuItem; + } + } +} + +class gnu::java::awt::peer::gtk::GtkCheckboxMenuItemPeer : public ::gnu::java::awt::peer::gtk::GtkMenuItemPeer +{ + +public: // actually protected + virtual void create(::java::lang::String *); +public: + GtkCheckboxMenuItemPeer(::java::awt::CheckboxMenuItem *); + virtual void setState(jboolean); +public: // actually protected + virtual void postMenuActionEvent(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.h new file mode 100644 index 00000000000..e97d21f9d63 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkCheckboxPeer__ +#define __gnu_java_awt_peer_gtk_GtkCheckboxPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkCheckboxPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Checkbox; + class CheckboxGroup; + } + } +} + +class gnu::java::awt::peer::gtk::GtkCheckboxPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: + virtual void createCheckButton(); + virtual void createRadioButton(jlong); + virtual void addToGroup(jlong); + virtual void removeFromGroup(); + virtual void switchToGroup(jlong); + virtual void connectSignals(); +public: // actually protected + virtual void gtkWidgetModifyFont(::java::lang::String *, jint, jint); +public: // actually package-private + virtual void gtkButtonSetLabel(::java::lang::String *); + virtual void gtkToggleButtonSetActive(jboolean); +public: + GtkCheckboxPeer(::java::awt::Checkbox *); + virtual void create(); + virtual void setState(jboolean); + virtual void setLabel(::java::lang::String *); + virtual void setCheckboxGroup(::java::awt::CheckboxGroup *); + virtual void postItemEvent(::java::lang::Object *, jboolean); + virtual void addToGroupMap(jlong); + virtual void dispose(); + ::java::awt::CheckboxGroup * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkComponentPeer)))) current_group; +private: + jboolean currentState; + static ::java::util::WeakHashMap * groupMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkCheckboxPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.h b/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.h new file mode 100644 index 00000000000..632fb406335 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkChoicePeer__ +#define __gnu_java_awt_peer_gtk_GtkChoicePeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkChoicePeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class AWTEvent; + class Choice; + } + } +} + +class gnu::java::awt::peer::gtk::GtkChoicePeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: + GtkChoicePeer(::java::awt::Choice *); +public: // actually package-private + virtual void create(); + virtual jint nativeGetSelected(); + virtual void connectSignals(); + virtual void selectNative(jint); + virtual void selectNativeUnlocked(jint); +public: + virtual void add(::java::lang::String *, jint); +public: // actually package-private + virtual void nativeRemove(jint); + virtual void nativeRemoveAll(); +public: + virtual void select(jint); + virtual void remove(jint); + virtual void removeAll(); + virtual void addItem(::java::lang::String *, jint); +public: // actually protected + virtual void postChoiceItemEvent(jint); +public: + virtual void handleEvent(::java::awt::AWTEvent *); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkComponentPeer)))) selected; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkChoicePeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkClipboard.h b/libjava/gnu/java/awt/peer/gtk/GtkClipboard.h new file mode 100644 index 00000000000..24b275a7848 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkClipboard.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkClipboard__ +#define __gnu_java_awt_peer_gtk_GtkClipboard__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkClipboard; + class GtkImage; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace datatransfer + { + class ClipboardOwner; + class Transferable; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkClipboard : public ::java::awt::datatransfer::Clipboard +{ + + GtkClipboard(::java::lang::String *); +public: // actually package-private + static ::gnu::java::awt::peer::gtk::GtkClipboard * getClipboardInstance(); + static ::gnu::java::awt::peer::gtk::GtkClipboard * getSelectionInstance(); +private: + void setSystemContents(jboolean); +public: + virtual void setContents(::java::awt::datatransfer::Transferable *, ::java::awt::datatransfer::ClipboardOwner *); +private: + void advertiseContent(JArray< ::java::lang::String * > *, jboolean, jboolean, jboolean); + ::java::lang::String * provideText(); + ::gnu::java::awt::peer::gtk::GtkImage * provideImage(); + JArray< ::java::lang::String * > * provideURIs(); + JArray< jbyte > * provideContent(::java::lang::String *); + static jboolean initNativeState(::gnu::java::awt::peer::gtk::GtkClipboard *, ::gnu::java::awt::peer::gtk::GtkClipboard *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + static ::gnu::java::awt::peer::gtk::GtkClipboard * clipboard; + static ::gnu::java::awt::peer::gtk::GtkClipboard * selection; + static ::java::lang::String * stringMimeType; + static ::java::lang::String * imageMimeType; + static ::java::lang::String * filesMimeType; + static jboolean canCache; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkClipboard__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkClipboardNotifier.h b/libjava/gnu/java/awt/peer/gtk/GtkClipboardNotifier.h new file mode 100644 index 00000000000..59d04d0f849 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkClipboardNotifier.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkClipboardNotifier__ +#define __gnu_java_awt_peer_gtk_GtkClipboardNotifier__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkClipboard; + class GtkClipboardNotifier; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkClipboardNotifier : public ::java::lang::Thread +{ + + GtkClipboardNotifier(); +public: // actually package-private + static void announce(::gnu::java::awt::peer::gtk::GtkClipboard *); +public: + virtual void run(); +private: + static jboolean announceClipboardChange; + static jboolean announcePrimaryChange; + static ::gnu::java::awt::peer::gtk::GtkClipboardNotifier * notifier; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkClipboardNotifier__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.h b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.h new file mode 100644 index 00000000000..c556b525095 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkComponentPeer$RepaintTimerTask__ +#define __gnu_java_awt_peer_gtk_GtkComponentPeer$RepaintTimerTask__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkComponentPeer$RepaintTimerTask; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + } + } +} + +class gnu::java::awt::peer::gtk::GtkComponentPeer$RepaintTimerTask : public ::java::util::TimerTask +{ + +public: // actually package-private + GtkComponentPeer$RepaintTimerTask(::java::awt::Component *, jint, jint, jint, jint); +public: + virtual void run(); +public: // actually package-private + static void schedule(jlong, jint, jint, jint, jint, ::java::awt::Component *); +private: + static ::java::util::Timer * repaintTimer; + jint __attribute__((aligned(__alignof__( ::java::util::TimerTask)))) x; + jint y; + jint width; + jint height; + ::java::awt::Component * awtComponent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkComponentPeer$RepaintTimerTask__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h new file mode 100644 index 00000000000..d29f0366f40 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h @@ -0,0 +1,198 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkComponentPeer__ +#define __gnu_java_awt_peer_gtk_GtkComponentPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkComponentPeer; + class GtkImage; + } + } + } + } + } + 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; + class Window; + namespace event + { + class PaintEvent; + } + namespace image + { + class ColorModel; + class ImageObserver; + class ImageProducer; + class VolatileImage; + } + namespace peer + { + class ComponentPeer; + class ContainerPeer; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkComponentPeer : public ::gnu::java::awt::peer::gtk::GtkGenericPeer +{ + +public: // actually package-private + virtual jboolean isEnabled(); + static jboolean modalHasGrab(); + virtual JArray< jint > * gtkWidgetGetForeground(); + virtual JArray< jint > * gtkWidgetGetBackground(); + virtual void gtkWidgetGetDimensions(JArray< jint > *); + virtual void gtkWidgetGetPreferredDimensions(JArray< jint > *); + virtual void gtkWindowGetLocationOnScreen(JArray< jint > *); + virtual void gtkWidgetGetLocationOnScreen(JArray< jint > *); + virtual void gtkWidgetSetCursor(jint, ::gnu::java::awt::peer::gtk::GtkImage *, jint, jint); + virtual void gtkWidgetSetCursorUnlocked(jint, ::gnu::java::awt::peer::gtk::GtkImage *, jint, jint); + virtual void gtkWidgetSetBackground(jint, jint, jint); + virtual void gtkWidgetSetForeground(jint, jint, jint); + virtual void gtkWidgetSetSensitive(jboolean); + virtual void gtkWidgetSetParent(::java::awt::peer::ComponentPeer *); + virtual void gtkWidgetRequestFocus(); + virtual void gtkWidgetDispatchKeyEvent(jint, jlong, jint, jint, jint); + virtual jboolean gtkWidgetHasFocus(); + virtual jboolean gtkWidgetCanFocus(); + virtual void realize(); + virtual void setNativeEventMask(); + virtual void create(); + virtual void connectSignals(); +public: // actually protected + GtkComponentPeer(::java::awt::Component *); +public: // actually package-private + virtual void setParentAndBounds(); + virtual void setParent(); + virtual void setComponentBounds(); + virtual void setVisibleAndEnabled(); +public: + virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *); + virtual ::java::awt::Image * createImage(jint, jint); + virtual void disable(); + virtual void enable(); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Point * getLocationOnScreen(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Toolkit * getToolkit(); + virtual void handleEvent(::java::awt::AWTEvent *); +public: // actually protected + virtual void paintComponent(::java::awt::event::PaintEvent *); + virtual void updateComponent(::java::awt::event::PaintEvent *); +public: + virtual jboolean isFocusTraversable(); + virtual ::java::awt::Dimension * minimumSize(); + virtual void paint(::java::awt::Graphics *); + virtual ::java::awt::Dimension * preferredSize(); + virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void print(::java::awt::Graphics *); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void requestFocus(); + virtual void reshape(jint, jint, jint, jint); + virtual void setBackground(::java::awt::Color *); +public: // actually package-private + virtual void setNativeBounds(jint, jint, jint, jint); +public: + virtual void setBounds(jint, jint, jint, jint); +public: // actually package-private + virtual void setCursor(); +public: + virtual void setCursor(::java::awt::Cursor *); + virtual void setEnabled(jboolean); + virtual void setFont(::java::awt::Font *); + virtual void setForeground(::java::awt::Color *); + virtual ::java::awt::Color * getForeground(); + virtual ::java::awt::Color * getBackground(); + virtual void setVisibleNative(jboolean); + virtual void setVisibleNativeUnlocked(jboolean); + virtual void setVisible(jboolean); + virtual void hide(); + virtual void show(); +public: // actually protected + virtual void postMouseEvent(jint, jlong, jint, jint, jint, jint, jboolean); + virtual void postMouseWheelEvent(jint, jlong, jint, jint, jint, jint, jboolean, jint, jint, jint); + virtual void postExposeEvent(jint, jint, jint, jint); + virtual void postKeyEvent(jint, jlong, jint, jint, jchar, jint); + virtual void postFocusEvent(jint, jboolean); + virtual void postItemEvent(::java::lang::Object *, jint); + virtual void postTextEvent(); +public: + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration(); + virtual void setEventMask(jlong); + virtual jboolean isFocusable(); + virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong); +private: + ::java::awt::Window * getWindowFor(::java::awt::Component *); +public: // actually protected + virtual jboolean isLightweightDescendant(::java::awt::Component *); +public: + virtual jboolean isObscured(); + virtual jboolean canDetermineObscurity(); + virtual void coalescePaintEvent(::java::awt::event::PaintEvent *); + virtual void updateCursorImmediately(); + virtual jboolean handlesWheelScrolling(); + virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint); + virtual void createBuffers(jint, ::java::awt::BufferCapabilities *); + virtual ::java::awt::Image * getBackBuffer(); + virtual void flip(::java::awt::BufferCapabilities$FlipContents *); + virtual void destroyBuffers(); + virtual ::java::lang::String * toString(); + virtual ::java::awt::Rectangle * getBounds(); + virtual void reparent(::java::awt::peer::ContainerPeer *); + virtual void setBounds(jint, jint, jint, jint, jint); + virtual jboolean isReparentSupported(); + virtual void layout(); +public: // actually package-private + ::java::awt::image::VolatileImage * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkGenericPeer)))) backBuffer; + ::java::awt::BufferCapabilities * caps; + ::java::awt::Component * awtComponent; + ::java::awt::Insets * insets; +private: + ::java::awt::Rectangle * currentPaintArea; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkComponentPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.h new file mode 100644 index 00000000000..6097fc88c7c --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkContainerPeer__ +#define __gnu_java_awt_peer_gtk_GtkContainerPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkContainerPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Container; + class Font; + class Insets; + } + } +} + +class gnu::java::awt::peer::gtk::GtkContainerPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: + GtkContainerPeer(::java::awt::Container *); + virtual void beginValidate(); + virtual void endValidate(); + virtual ::java::awt::Insets * getInsets(); + virtual ::java::awt::Insets * insets(); + virtual void setBounds(jint, jint, jint, jint); + virtual void setFont(::java::awt::Font *); + virtual void beginLayout(); + virtual void endLayout(); + virtual jboolean isPaintPending(); + virtual void setBackground(::java::awt::Color *); + virtual jboolean isRestackSupported(); + virtual void cancelPendingPaint(jint, jint, jint, jint); + virtual void restack(); +public: // actually package-private + ::java::awt::Container * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkComponentPeer)))) c; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkContainerPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkCursor.h b/libjava/gnu/java/awt/peer/gtk/GtkCursor.h new file mode 100644 index 00000000000..c0e63758557 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkCursor.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkCursor__ +#define __gnu_java_awt_peer_gtk_GtkCursor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkCursor; + class GtkImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Image; + class Point; + } + } +} + +class gnu::java::awt::peer::gtk::GtkCursor : public ::java::awt::Cursor +{ + +public: // actually package-private + GtkCursor(::java::awt::Image *, ::java::awt::Point *, ::java::lang::String *); + virtual ::gnu::java::awt::peer::gtk::GtkImage * getGtkImage(); + virtual ::java::awt::Point * getHotspot(); +private: + ::gnu::java::awt::peer::gtk::GtkImage * __attribute__((aligned(__alignof__( ::java::awt::Cursor)))) image; + ::java::awt::Point * hotspot; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkCursor__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.h new file mode 100644 index 00000000000..d143f4775ad --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkDialogPeer__ +#define __gnu_java_awt_peer_gtk_GtkDialogPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkDialogPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dialog; + } + } +} + +class gnu::java::awt::peer::gtk::GtkDialogPeer : public ::gnu::java::awt::peer::gtk::GtkWindowPeer +{ + +public: + GtkDialogPeer(::java::awt::Dialog *); +public: // actually package-private + virtual void create(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkDialogPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.h new file mode 100644 index 00000000000..6dea24e1715 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer__ +#define __gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class EmbeddedWindow; + namespace peer + { + namespace gtk + { + class GtkEmbeddedWindowPeer; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkEmbeddedWindowPeer : public ::gnu::java::awt::peer::gtk::GtkFramePeer +{ + +public: // actually package-private + virtual void create(jlong); + virtual void create(); + virtual void construct(jlong); +public: + virtual void embed(jlong); + GtkEmbeddedWindowPeer(::gnu::java::awt::EmbeddedWindow *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.h new file mode 100644 index 00000000000..7bf3529ce37 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkFileDialogPeer__ +#define __gnu_java_awt_peer_gtk_GtkFileDialogPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkContainerPeer; + class GtkFileDialogPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class FileDialog; + namespace event + { + class PaintEvent; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkFileDialogPeer : public ::gnu::java::awt::peer::gtk::GtkDialogPeer +{ + +public: // actually package-private + virtual void create(::gnu::java::awt::peer::gtk::GtkContainerPeer *, jint); + virtual void connectSignals(); + virtual void nativeSetFile(::java::lang::String *); +public: + virtual ::java::lang::String * nativeGetDirectory(); + virtual void nativeSetDirectory(::java::lang::String *); +public: // actually package-private + virtual void nativeSetFilenameFilter(::java::io::FilenameFilter *); +public: + virtual void create(); + GtkFileDialogPeer(::java::awt::FileDialog *); +public: // actually package-private + virtual void setComponentBounds(); +public: + virtual void setFile(::java::lang::String *); + virtual void setDirectory(::java::lang::String *); + virtual void setFilenameFilter(::java::io::FilenameFilter *); +public: // actually package-private + virtual jboolean filenameFilterCallback(::java::lang::String *); +public: // actually protected + virtual void updateComponent(::java::awt::event::PaintEvent *); +public: // actually package-private + virtual void gtkHideFileDialog(); + virtual void gtkDisposeFileDialog(); + virtual void gtkSetFilename(::java::lang::String *); + static ::java::lang::String * FS; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkDialogPeer)))) currentFile; + ::java::lang::String * currentDirectory; + ::java::io::FilenameFilter * filter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkFileDialogPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h b/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h new file mode 100644 index 00000000000..c136fa917ca --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkFramePeer__ +#define __gnu_java_awt_peer_gtk_GtkFramePeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkFramePeer; + class GtkImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Frame; + class Image; + class MenuBar; + class Rectangle; + namespace peer + { + class MenuBarPeer; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkFramePeer : public ::gnu::java::awt::peer::gtk::GtkWindowPeer +{ + +public: // actually package-private + virtual jint getMenuBarHeight(::java::awt::peer::MenuBarPeer *); + virtual void setMenuBarWidthUnlocked(::java::awt::peer::MenuBarPeer *, jint); + virtual void setMenuBarWidth(::java::awt::peer::MenuBarPeer *, jint); + virtual void setMenuBarPeer(::java::awt::peer::MenuBarPeer *); + virtual void removeMenuBarPeer(); + virtual void gtkFixedSetVisible(jboolean); +private: + void maximize(); + void unmaximize(); + void iconify(); + void deiconify(); +public: // actually package-private + virtual jint getMenuBarHeight(); +public: + virtual void setMenuBar(::java::awt::MenuBar *); + virtual void setBounds(jint, jint, jint, jint); + virtual void setResizable(jboolean); +public: // actually protected + virtual void postInsetsChangedEvent(jint, jint, jint, jint); +public: + GtkFramePeer(::java::awt::Frame *); +public: // actually package-private + virtual void create(); + virtual void nativeSetIconImage(::gnu::java::awt::peer::gtk::GtkImage *); +public: + virtual void setIconImage(::java::awt::Image *); +public: // actually protected + virtual void postConfigureEvent(jint, jint, jint, jint); +public: + virtual jint getState(); + virtual void setState(jint); + virtual void setMaximizedBounds(::java::awt::Rectangle *); + virtual void setBoundsPrivate(jint, jint, jint, jint); + virtual jboolean requestWindowFocus(); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkWindowPeer)))) menuBarHeight; + ::java::awt::peer::MenuBarPeer * menuBar; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkFramePeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h new file mode 100644 index 00000000000..6c9c87dc1ef --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkGenericPeer__ +#define __gnu_java_awt_peer_gtk_GtkGenericPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkGenericPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class EventQueue; + class Font; + } + } +} + +class gnu::java::awt::peer::gtk::GtkGenericPeer : public ::java::lang::Object +{ + +public: + virtual void dispose(); +public: // actually package-private + static ::java::awt::EventQueue * q(); +public: // actually protected + GtkGenericPeer(::java::lang::Object *); + virtual void postActionEvent(::java::lang::String *, jint); +public: // actually package-private + static jint getUniqueInteger(); +public: // actually protected + virtual void gtkWidgetModifyFont(::java::awt::Font *); + virtual void gtkWidgetModifyFont(::java::lang::String *, jint, jint); +public: // actually package-private + static void printCurrentThread(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) native_state; +private: + static jint next_native_state; +public: // actually protected + ::java::lang::Object * awtWidget; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkGenericPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkImage.h b/libjava/gnu/java/awt/peer/gtk/GtkImage.h new file mode 100644 index 00000000000..4028d93f57d --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkImage.h @@ -0,0 +1,113 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkImage__ +#define __gnu_java_awt_peer_gtk_GtkImage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Pointer; + } + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Image; + namespace image + { + class ColorModel; + class ImageObserver; + class ImageProducer; + } + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::peer::gtk::GtkImage : public ::java::awt::Image +{ + + void initFromBuffer(jlong); +public: // actually package-private + virtual JArray< jint > * getPixels(); +private: + void setPixels(JArray< jint > *); + jboolean loadPixbuf(::java::lang::String *); + jboolean loadImageFromData(JArray< jbyte > *); + void createPixbuf(); + void freePixbuf(); + void createScaledPixbuf(::gnu::java::awt::peer::gtk::GtkImage *, jint); +public: + GtkImage(::java::awt::image::ImageProducer *); + GtkImage(); + GtkImage(::java::lang::String *); + GtkImage(JArray< jbyte > *); + GtkImage(::java::net::URL *); +private: + GtkImage(::gnu::java::awt::peer::gtk::GtkImage *, jint, jint, jint); +public: // actually package-private + GtkImage(::gnu::classpath::Pointer *); + GtkImage(jint, jint, jlong); + static ::gnu::java::awt::peer::gtk::GtkImage * getErrorImage(); +private: + void createFromPixbuf(); +public: + virtual void setImage(jint, jint, JArray< jint > *, ::java::util::Hashtable *); + virtual jint getWidth(::java::awt::image::ImageObserver *); + virtual jint getHeight(::java::awt::image::ImageObserver *); + virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *); + virtual ::java::awt::image::ImageProducer * getSource(); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Image * getScaledInstance(jint, jint, jint); + virtual void flush(); + virtual void finalize(); + virtual jint checkImage(::java::awt::image::ImageObserver *); +private: + void deliver(); + jboolean addObserver(::java::awt::image::ImageObserver *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::awt::Image)))) width; + jint height; + ::java::util::Hashtable * props; + jboolean isLoaded; + ::gnu::classpath::Pointer * pixbuf; + ::java::util::Vector * observers; + jboolean errorLoading; + ::java::awt::image::ImageProducer * source; + static ::java::awt::image::ColorModel * nativeModel; +private: + static ::gnu::java::awt::peer::gtk::GtkImage * errorImage; +public: // actually package-private + static ::java::lang::Object * pixbufLock; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkImage__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkImageConsumer.h b/libjava/gnu/java/awt/peer/gtk/GtkImageConsumer.h new file mode 100644 index 00000000000..aeccd061da2 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkImageConsumer.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkImageConsumer__ +#define __gnu_java_awt_peer_gtk_GtkImageConsumer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkImage; + class GtkImageConsumer; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ColorModel; + class ImageProducer; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkImageConsumer : public ::java::lang::Object +{ + +public: + GtkImageConsumer(::gnu::java::awt::peer::gtk::GtkImage *, ::java::awt::image::ImageProducer *); + virtual void imageComplete(jint); + virtual void setColorModel(::java::awt::image::ColorModel *); + virtual void setDimensions(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< jint > * convertPixels(JArray< jbyte > *); +public: + virtual void setProperties(::java::util::Hashtable *); +private: + ::gnu::java::awt::peer::gtk::GtkImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) target; + jint width; + jint height; + ::java::util::Hashtable * properties; + JArray< jint > * pixelCache; + ::java::awt::image::ImageProducer * source; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkImageConsumer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.h new file mode 100644 index 00000000000..c80c6f47a13 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkLabelPeer__ +#define __gnu_java_awt_peer_gtk_GtkLabelPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkLabelPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Label; + } + } +} + +class gnu::java::awt::peer::gtk::GtkLabelPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: // actually package-private + virtual void create(::java::lang::String *, jfloat); +public: // actually protected + virtual void gtkWidgetModifyFont(::java::lang::String *, jint, jint); +public: // actually package-private + virtual void nativeSetAlignment(jfloat); +public: + virtual void setNativeText(::java::lang::String *); +public: // actually package-private + virtual void setNativeBounds(jint, jint, jint, jint); + virtual void gtkWidgetGetPreferredDimensions(JArray< jint > *); + virtual void create(); +public: + virtual void setText(::java::lang::String *); + GtkLabelPeer(::java::awt::Label *); + virtual void setAlignment(jint); +public: // actually package-private + virtual jfloat getGtkAlignment(jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkLabelPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkListPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkListPeer.h new file mode 100644 index 00000000000..8d8a7a0ac37 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkListPeer.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkListPeer__ +#define __gnu_java_awt_peer_gtk_GtkListPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkListPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class AWTEvent; + class Dimension; + class List; + } + } +} + +class gnu::java::awt::peer::gtk::GtkListPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: // actually package-private + virtual void create(); + virtual void create(jint); + virtual void connectSignals(); +public: // actually protected + virtual void gtkWidgetModifyFont(::java::lang::String *, jint, jint); +public: // actually package-private + virtual void gtkWidgetRequestFocus(); + virtual void getSize(jint, jint, JArray< jint > *); +public: + GtkListPeer(::java::awt::List *); +public: // actually package-private + virtual void append(JArray< ::java::lang::String * > *); +public: + virtual void add(::java::lang::String *, jint); + virtual void addItem(::java::lang::String *, jint); + virtual void clear(); + virtual void delItems(jint, jint); + virtual void deselect(jint); + virtual ::java::awt::Dimension * getMinimumSize(jint); + virtual ::java::awt::Dimension * getPreferredSize(jint); + virtual JArray< jint > * getSelectedIndexes(); + virtual void makeVisible(jint); + virtual ::java::awt::Dimension * minimumSize(jint); + virtual ::java::awt::Dimension * preferredSize(jint); + virtual void removeAll(); + virtual void select(jint); + virtual void setMultipleMode(jboolean); + virtual void setMultipleSelections(jboolean); + virtual void handleEvent(::java::awt::AWTEvent *); +public: // actually protected + virtual void postItemEvent(jint, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkListPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMainThread.h b/libjava/gnu/java/awt/peer/gtk/GtkMainThread.h new file mode 100644 index 00000000000..159ec7838c2 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkMainThread.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkMainThread__ +#define __gnu_java_awt_peer_gtk_GtkMainThread__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkMainThread; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkMainThread : public ::java::lang::Thread +{ + + GtkMainThread(); +public: + virtual void run(); +private: + static void setRunning(jboolean); + static void startMainThread(); + static void endMainThread(); +public: + static void createWindow(); + static void destroyWindow(); +private: + static jint numberOfWindows; + static ::java::lang::Object * nWindowsLock; + static jboolean running; + static ::java::lang::Object * runningLock; +public: + static ::gnu::java::awt::peer::gtk::GtkMainThread * mainThread; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkMainThread__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.h new file mode 100644 index 00000000000..916d6dd93ea --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkMenuBarPeer__ +#define __gnu_java_awt_peer_gtk_GtkMenuBarPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkMenuBarPeer; + class GtkMenuPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Menu; + class MenuBar; + } + } +} + +class gnu::java::awt::peer::gtk::GtkMenuBarPeer : public ::gnu::java::awt::peer::gtk::GtkMenuComponentPeer +{ + +public: // actually protected + virtual void create(); +private: + void addMenu(::gnu::java::awt::peer::gtk::GtkMenuPeer *); +public: + GtkMenuBarPeer(::java::awt::MenuBar *); + virtual void addHelpMenu(::java::awt::Menu *); + virtual void delMenu(jint); + virtual void addMenu(::java::awt::Menu *); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkMenuComponentPeer)))) hasHelpMenu; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkMenuBarPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.h new file mode 100644 index 00000000000..500f5a94d3f --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkMenuComponentPeer__ +#define __gnu_java_awt_peer_gtk_GtkMenuComponentPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkMenuComponentPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class MenuComponent; + } + } +} + +class gnu::java::awt::peer::gtk::GtkMenuComponentPeer : public ::gnu::java::awt::peer::gtk::GtkGenericPeer +{ + +public: // actually protected + virtual void create() = 0; +private: + void setFont(); +public: + GtkMenuComponentPeer(::java::awt::MenuComponent *); + virtual void dispose(); + virtual void setFont(::java::awt::Font *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkMenuComponentPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.h new file mode 100644 index 00000000000..e84841cc3df --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkMenuItemPeer__ +#define __gnu_java_awt_peer_gtk_GtkMenuItemPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkMenuItemPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class MenuItem; + } + } +} + +class gnu::java::awt::peer::gtk::GtkMenuItemPeer : public ::gnu::java::awt::peer::gtk::GtkMenuComponentPeer +{ + +public: // actually protected + virtual void create(::java::lang::String *); + virtual void connectSignals(); + virtual void gtkWidgetModifyFont(::java::lang::String *, jint, jint); + virtual void create(); +public: + GtkMenuItemPeer(::java::awt::MenuItem *); + virtual void disable(); + virtual void enable(); + virtual void setEnabled(jboolean); + virtual void setLabel(::java::lang::String *); +public: // actually protected + virtual void postMenuActionEvent(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkMenuItemPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.h new file mode 100644 index 00000000000..1d1f84a90e8 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkMenuPeer__ +#define __gnu_java_awt_peer_gtk_GtkMenuPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkGenericPeer; + class GtkMenuPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Menu; + class MenuItem; + class MenuShortcut; + namespace peer + { + class MenuItemPeer; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkMenuPeer : public ::gnu::java::awt::peer::gtk::GtkMenuItemPeer +{ + +public: // actually protected + virtual void create(::java::lang::String *); +private: + void addItem(::java::awt::peer::MenuItemPeer *, jint, jboolean); +public: // actually package-private + virtual void setupAccelGroup(::gnu::java::awt::peer::gtk::GtkGenericPeer *); +private: + void addTearOff(); +public: // actually protected + virtual void connectSignals(); +public: + GtkMenuPeer(::java::awt::Menu *); + virtual void addItem(::java::awt::MenuItem *); + virtual void addItem(::java::awt::peer::MenuItemPeer *, ::java::awt::MenuShortcut *); + virtual void delItem(jint); + virtual void addSeparator(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkMenuPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.h new file mode 100644 index 00000000000..8edc663497e --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkMouseInfoPeer__ +#define __gnu_java_awt_peer_gtk_GtkMouseInfoPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GdkGraphicsEnvironment; + class GtkMouseInfoPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Point; + class Window; + } + } +} + +class gnu::java::awt::peer::gtk::GtkMouseInfoPeer : public ::java::lang::Object +{ + +public: + GtkMouseInfoPeer(); + virtual jint fillPointWithCoords(::java::awt::Point *); + virtual jboolean isWindowUnderMouse(::java::awt::Window *); +private: + static ::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment * gde; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkMouseInfoPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkPanelPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkPanelPeer.h new file mode 100644 index 00000000000..b4349ee5d06 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkPanelPeer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkPanelPeer__ +#define __gnu_java_awt_peer_gtk_GtkPanelPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkPanelPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class AWTEvent; + class Panel; + } + } +} + +class gnu::java::awt::peer::gtk::GtkPanelPeer : public ::gnu::java::awt::peer::gtk::GtkContainerPeer +{ + +public: // actually package-private + virtual void create(); +public: + GtkPanelPeer(::java::awt::Panel *); + virtual void handleEvent(::java::awt::AWTEvent *); +public: // actually package-private + virtual void connectSignals(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkPanelPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.h new file mode 100644 index 00000000000..f62b014d77c --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__ +#define __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkGenericPeer; + class GtkPopupMenuPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Event; + class PopupMenu; + } + } +} + +class gnu::java::awt::peer::gtk::GtkPopupMenuPeer : public ::gnu::java::awt::peer::gtk::GtkMenuPeer +{ + +public: + GtkPopupMenuPeer(::java::awt::PopupMenu *); +public: // actually package-private + virtual void setupAccelGroup(::gnu::java::awt::peer::gtk::GtkGenericPeer *); + virtual void show(jint, jint, jlong); +public: + virtual void show(::java::awt::Component *, jint, jint); + virtual void show(::java::awt::Event *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.h b/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.h new file mode 100644 index 00000000000..051fd8334cb --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkScrollPanePeer__ +#define __gnu_java_awt_peer_gtk_GtkScrollPanePeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkScrollPanePeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Adjustable; + class Dimension; + class ScrollPane; + } + } +} + +class gnu::java::awt::peer::gtk::GtkScrollPanePeer : public ::gnu::java::awt::peer::gtk::GtkContainerPeer +{ + +public: // actually package-private + virtual void create(jint, jint); + virtual void create(); + virtual void gtkScrolledWindowSetHScrollIncrement(jint); + virtual void gtkScrolledWindowSetVScrollIncrement(jint); +public: + GtkScrollPanePeer(::java::awt::ScrollPane *); +public: // actually package-private + virtual void setPolicy(jint); +public: + virtual void childResized(jint, jint); + virtual jint getHScrollbarHeight(); + virtual jint getVScrollbarWidth(); + virtual void setScrollPosition(jint, jint); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual void setUnitIncrement(::java::awt::Adjustable *, jint); + virtual void setValue(::java::awt::Adjustable *, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkScrollPanePeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.h new file mode 100644 index 00000000000..3557d624a07 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkScrollbarPeer__ +#define __gnu_java_awt_peer_gtk_GtkScrollbarPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkScrollbarPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Scrollbar; + } + } +} + +class gnu::java::awt::peer::gtk::GtkScrollbarPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: // actually package-private + virtual void create(); + virtual void create(jint, jint, jint, jint, jint, jint, jint); + virtual void connectSignals(); +public: + GtkScrollbarPeer(::java::awt::Scrollbar *); + virtual void setLineIncrement(jint); + virtual void setPageIncrement(jint); + virtual void setValues(jint, jint, jint, jint); +private: + void setBarValues(jint, jint, jint, jint); +public: // actually protected + virtual void postAdjustmentEvent(jint, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkScrollbarPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkSelection.h b/libjava/gnu/java/awt/peer/gtk/GtkSelection.h new file mode 100644 index 00000000000..5ed45d00c91 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkSelection.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkSelection__ +#define __gnu_java_awt_peer_gtk_GtkSelection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Pointer; + } + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkClipboard; + class GtkSelection; + } + } + } + } + } + namespace java + { + namespace awt + { + class Image; + namespace datatransfer + { + class DataFlavor; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkSelection : public ::java::lang::Object +{ + +public: // actually package-private + GtkSelection(::gnu::java::awt::peer::gtk::GtkClipboard *); +public: + virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors(); +private: + void mimeTypesAvailable(JArray< ::java::lang::String * > *); +public: + virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *); +private: + ::java::lang::String * getText(); + void textAvailable(::java::lang::String *); + ::java::awt::Image * getImage(); + void imageAvailable(::gnu::classpath::Pointer *); + ::java::util::List * getURIs(); + void urisAvailable(JArray< ::java::lang::String * > *); + JArray< jbyte > * getBytes(::java::lang::String *); + void bytesAvailable(JArray< jbyte > *); +public: + virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *); +private: + void requestText(jboolean); + void requestImage(jboolean); + void requestURIs(jboolean); + void requestBytes(jboolean, ::java::lang::String *); + void requestMimeTypes(jboolean); + static ::java::lang::Object * requestLock; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) clipboard; + jboolean requestInProgress; + jboolean mimeTypesDelivered; + JArray< ::java::awt::datatransfer::DataFlavor * > * dataFlavors; + jboolean textDelivered; + ::java::lang::String * text; + jboolean imageDelivered; + ::gnu::classpath::Pointer * imagePointer; + ::java::awt::Image * image; + jboolean urisDelivered; + ::java::util::List * uris; + jboolean bytesDelivered; + JArray< jbyte > * bytes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkSelection__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.h new file mode 100644 index 00000000000..5d4b14ee5e7 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkTextAreaPeer__ +#define __gnu_java_awt_peer_gtk_GtkTextAreaPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkTextAreaPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + class TextArea; + namespace im + { + class InputMethodRequests; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkTextAreaPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: // actually package-private + virtual void create(jint, jint, jint); +public: // actually protected + virtual void gtkWidgetModifyFont(::java::lang::String *, jint, jint); +public: // actually package-private + virtual void gtkWidgetRequestFocus(); +public: + virtual void connectSignals(); + virtual jint getCaretPosition(); + virtual void setCaretPosition(jint); + virtual jint getSelectionStart(); + virtual jint getSelectionEnd(); + virtual ::java::lang::String * getText(); + virtual void select(jint, jint); + virtual void setEditable(jboolean); + virtual void setText(::java::lang::String *); + virtual jint getIndexAtPoint(jint, jint); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); + virtual jlong filterEvents(jlong); +public: // actually package-private + virtual void create(); +public: + GtkTextAreaPeer(::java::awt::TextArea *); + virtual void insert(::java::lang::String *, jint); + virtual void replaceRange(::java::lang::String *, jint, jint); + virtual ::java::awt::Dimension * getMinimumSize(jint, jint); + virtual ::java::awt::Dimension * getPreferredSize(jint, jint); +public: // actually package-private + virtual jint getHScrollbarHeight(); + virtual jint getVScrollbarWidth(); +public: + virtual ::java::awt::Dimension * minimumSize(jint, jint); + virtual ::java::awt::Dimension * preferredSize(jint, jint); + virtual void replaceText(::java::lang::String *, jint, jint); + virtual void insertText(::java::lang::String *, jint); + virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests(); +private: + static jint DEFAULT_ROWS; + static jint DEFAULT_COLS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkTextAreaPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.h new file mode 100644 index 00000000000..ddcf366aaa5 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkTextFieldPeer__ +#define __gnu_java_awt_peer_gtk_GtkTextFieldPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkTextFieldPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class AWTEvent; + class Dimension; + class Rectangle; + class TextField; + namespace im + { + class InputMethodRequests; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkTextFieldPeer : public ::gnu::java::awt::peer::gtk::GtkComponentPeer +{ + +public: // actually package-private + virtual void create(jint); + virtual void gtkWidgetSetBackground(jint, jint, jint); + virtual void gtkWidgetSetForeground(jint, jint, jint); +public: + virtual void connectSignals(); + virtual jint getCaretPosition(); + virtual void setCaretPosition(jint); + virtual jint getSelectionStart(); + virtual jint getSelectionEnd(); + virtual ::java::lang::String * getText(); + virtual void select(jint, jint); + virtual void setEditable(jboolean); + virtual void setText(::java::lang::String *); + virtual jint getIndexAtPoint(jint, jint); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); + virtual jlong filterEvents(jlong); +public: // actually package-private + virtual void create(); + virtual jint gtkEntryGetBorderWidth(); +public: + GtkTextFieldPeer(::java::awt::TextField *); + virtual ::java::awt::Dimension * getMinimumSize(jint); + virtual ::java::awt::Dimension * getPreferredSize(jint); + virtual void setEchoChar(jchar); + virtual ::java::awt::Dimension * minimumSize(jint); + virtual ::java::awt::Dimension * preferredSize(jint); + virtual void setEchoCharacter(jchar); + virtual void handleEvent(::java::awt::AWTEvent *); + virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkTextFieldPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkToolkit$1.h b/libjava/gnu/java/awt/peer/gtk/GtkToolkit$1.h new file mode 100644 index 00000000000..94bac6c75cc --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkToolkit$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkToolkit$1__ +#define __gnu_java_awt_peer_gtk_GtkToolkit$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkToolkit$1; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkToolkit$1 : public ::java::lang::Thread +{ + +public: // actually package-private + GtkToolkit$1(::java::lang::String *); +public: + void run(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkToolkit$1__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.h b/libjava/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.h new file mode 100644 index 00000000000..c8d404bd4f2 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkToolkit$LRUCache__ +#define __gnu_java_awt_peer_gtk_GtkToolkit$LRUCache__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkToolkit$LRUCache; + } + } + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkToolkit$LRUCache : public ::java::util::LinkedHashMap +{ + +public: + GtkToolkit$LRUCache(jint); +public: // actually protected + virtual jboolean removeEldestEntry(::java::util::Map$Entry *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::util::LinkedHashMap)))) max_entries; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkToolkit$LRUCache__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkToolkit.h b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.h new file mode 100644 index 00000000000..e02c3b6a9ed --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.h @@ -0,0 +1,235 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkToolkit__ +#define __gnu_java_awt_peer_gtk_GtkToolkit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class EmbeddedWindow; + namespace peer + { + class ClasspathFontPeer; + class EmbeddedWindowPeer; + namespace gtk + { + class GtkComponentPeer; + class GtkToolkit; + class GtkToolkit$LRUCache; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + class Canvas; + class Checkbox; + class CheckboxMenuItem; + class Choice; + class Component; + class Cursor; + class Dialog; + class Dimension; + class EventQueue; + class FileDialog; + class Font; + class FontMetrics; + class Frame; + class GraphicsDevice; + class GraphicsEnvironment; + class Image; + class Label; + class List; + class Menu; + class MenuBar; + class MenuItem; + class Panel; + class Point; + class PopupMenu; + class PrintJob; + class Rectangle; + class ScrollPane; + class Scrollbar; + class TextArea; + class TextField; + class Window; + namespace datatransfer + { + class Clipboard; + } + namespace dnd + { + class DragGestureEvent; + class DragGestureListener; + class DragGestureRecognizer; + class DragSource; + namespace peer + { + class DragSourceContextPeer; + } + } + 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 DialogPeer; + class FileDialogPeer; + class FontPeer; + class FramePeer; + class LabelPeer; + class ListPeer; + class MenuBarPeer; + class MenuItemPeer; + class MenuPeer; + class MouseInfoPeer; + class PanelPeer; + class PopupMenuPeer; + class RobotPeer; + class ScrollPanePeer; + class ScrollbarPeer; + class TextAreaPeer; + class TextFieldPeer; + class WindowPeer; + } + } + namespace net + { + class URL; + } + } + namespace javax + { + namespace imageio + { + namespace spi + { + class IIORegistry; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkToolkit : public ::gnu::java::awt::ClasspathToolkit +{ + +public: // actually package-private + static void gtkInit(jint); + static void gtkMain(); + static void gtkQuit(); +public: + GtkToolkit(); + virtual void beep(); +private: + void getScreenSizeDimensions(JArray< jint > *); +public: + virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); +public: // actually package-private + static ::java::awt::Image * imageOrError(::java::awt::Image *); +public: + virtual ::java::awt::Image * createImage(::java::lang::String *); + virtual ::java::awt::Image * createImage(::java::net::URL *); + virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *); + virtual ::java::awt::Image * createImage(JArray< jbyte > *, jint, jint); + virtual ::java::awt::image::ImageProducer * createImageProducer(::java::net::URL *); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual JArray< ::java::lang::String * > * getFontList(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Image * getImage(::java::lang::String *); + virtual ::java::awt::Image * getImage(::java::net::URL *); + virtual ::java::awt::PrintJob * getPrintJob(::java::awt::Frame *, ::java::lang::String *, ::java::util::Properties *); + virtual jint getScreenResolution(); + virtual ::java::awt::Dimension * getScreenSize(); + virtual ::java::awt::datatransfer::Clipboard * getSystemClipboard(); + virtual ::java::awt::datatransfer::Clipboard * getSystemSelection(); + virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void sync(); +public: // actually protected + virtual void setComponentState(::java::awt::Component *, ::gnu::java::awt::peer::gtk::GtkComponentPeer *); + virtual ::java::awt::peer::ButtonPeer * createButton(::java::awt::Button *); + virtual ::java::awt::peer::CanvasPeer * createCanvas(::java::awt::Canvas *); + virtual ::java::awt::peer::CheckboxPeer * createCheckbox(::java::awt::Checkbox *); + virtual ::java::awt::peer::CheckboxMenuItemPeer * createCheckboxMenuItem(::java::awt::CheckboxMenuItem *); + virtual ::java::awt::peer::ChoicePeer * createChoice(::java::awt::Choice *); + virtual ::java::awt::peer::DialogPeer * createDialog(::java::awt::Dialog *); + virtual ::java::awt::peer::FileDialogPeer * createFileDialog(::java::awt::FileDialog *); + virtual ::java::awt::peer::FramePeer * createFrame(::java::awt::Frame *); + virtual ::java::awt::peer::LabelPeer * createLabel(::java::awt::Label *); + virtual ::java::awt::peer::ListPeer * createList(::java::awt::List *); + virtual ::java::awt::peer::MenuPeer * createMenu(::java::awt::Menu *); + virtual ::java::awt::peer::MenuBarPeer * createMenuBar(::java::awt::MenuBar *); + virtual ::java::awt::peer::MenuItemPeer * createMenuItem(::java::awt::MenuItem *); + virtual ::java::awt::peer::PanelPeer * createPanel(::java::awt::Panel *); + virtual ::java::awt::peer::PopupMenuPeer * createPopupMenu(::java::awt::PopupMenu *); + virtual ::java::awt::peer::ScrollPanePeer * createScrollPane(::java::awt::ScrollPane *); + virtual ::java::awt::peer::ScrollbarPeer * createScrollbar(::java::awt::Scrollbar *); + virtual ::java::awt::peer::TextAreaPeer * createTextArea(::java::awt::TextArea *); + virtual ::java::awt::peer::TextFieldPeer * createTextField(::java::awt::TextField *); + virtual ::java::awt::peer::WindowPeer * createWindow(::java::awt::Window *); +public: + virtual ::gnu::java::awt::peer::EmbeddedWindowPeer * createEmbeddedWindow(::gnu::java::awt::EmbeddedWindow *); +public: // actually protected + virtual ::java::awt::peer::FontPeer * getFontPeer(::java::lang::String *, jint); +private: + ::java::awt::peer::FontPeer * getFontPeer(::java::lang::String *, jint, jint); +public: + virtual ::gnu::java::awt::peer::ClasspathFontPeer * getClasspathFontPeer(::java::lang::String *, ::java::util::Map *); +public: // actually protected + virtual ::java::awt::EventQueue * getSystemEventQueueImpl(); +public: + virtual ::java::awt::Cursor * createCustomCursor(::java::awt::Image *, ::java::awt::Point *, ::java::lang::String *); +public: // actually protected + virtual void loadSystemColors(JArray< jint > *); +public: + virtual ::java::awt::dnd::peer::DragSourceContextPeer * createDragSourceContextPeer(::java::awt::dnd::DragGestureEvent *); + virtual ::java::awt::dnd::DragGestureRecognizer * createDragGestureRecognizer(::java::lang::Class *, ::java::awt::dnd::DragSource *, ::java::awt::Component *, jint, ::java::awt::dnd::DragGestureListener *); + virtual ::java::util::Map * mapInputMethodHighlight(::java::awt::im::InputMethodHighlight *); + virtual ::java::awt::Rectangle * getBounds(); + virtual ::java::awt::GraphicsEnvironment * getLocalGraphicsEnvironment(); + virtual ::java::awt::Font * createFont(jint, ::java::io::InputStream *); + virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *); + virtual void registerImageIOSpis(::javax::imageio::spi::IIORegistry *); +public: // actually protected + virtual ::java::awt::peer::MouseInfoPeer * getMouseInfoPeer(); +public: + virtual jboolean isFrameStateSupported(jint); +private: + void checkHeadless(); +public: + virtual jint getMouseNumberOfButtons(); +private: + static ::java::awt::EventQueue * q; + ::gnu::java::awt::peer::gtk::GtkToolkit$LRUCache * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) fontCache; + ::gnu::java::awt::peer::gtk::GtkToolkit$LRUCache * imageCache; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkToolkit__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkVolatileImage.h b/libjava/gnu/java/awt/peer/gtk/GtkVolatileImage.h new file mode 100644 index 00000000000..308bc8e7df9 --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkVolatileImage.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkVolatileImage__ +#define __gnu_java_awt_peer_gtk_GtkVolatileImage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkComponentPeer; + class GtkVolatileImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Graphics2D; + class GraphicsConfiguration; + class ImageCapabilities; + namespace image + { + class BufferedImage; + class ColorModel; + class ImageObserver; + class SampleModel; + } + } + } +} + +class gnu::java::awt::peer::gtk::GtkVolatileImage : public ::java::awt::image::VolatileImage +{ + +public: // actually package-private + virtual jlong init(::gnu::java::awt::peer::gtk::GtkComponentPeer *, jint, jint); + virtual void destroy(jlong); + virtual JArray< jint > * nativeGetPixels(jlong); +public: + virtual JArray< jint > * getPixels(); +public: // actually package-private + virtual void nativeCopyArea(jlong, jint, jint, jint, jint, jint, jint); +public: + virtual void copyArea(jint, jint, jint, jint, jint, jint); +public: // actually package-private + virtual void nativeDrawVolatile(jlong, jlong, jint, jint, jint, jint); +public: + virtual void drawVolatile(jlong, jint, jint, jint, jint); + GtkVolatileImage(::gnu::java::awt::peer::gtk::GtkComponentPeer *, jint, jint, ::java::awt::ImageCapabilities *); + GtkVolatileImage(jint, jint, ::java::awt::ImageCapabilities *); + GtkVolatileImage(jint, jint); + virtual void finalize(); + virtual void dispose(); + virtual ::java::awt::image::BufferedImage * getSnapshot(); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Graphics2D * createGraphics(); + virtual jint validate(::java::awt::GraphicsConfiguration *); + virtual jboolean contentsLost(); + virtual ::java::awt::ImageCapabilities * getCapabilities(); + virtual jint getWidth(); + virtual jint getHeight(); + virtual jint getWidth(::java::awt::image::ImageObserver *); + virtual jint getHeight(::java::awt::image::ImageObserver *); + virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *); +public: // actually protected + static ::java::awt::image::SampleModel * createGdkSampleModel(jint, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::awt::image::VolatileImage)))) width; + jint height; +private: + ::java::awt::ImageCapabilities * caps; +public: // actually package-private + ::gnu::java::awt::peer::gtk::GtkComponentPeer * component; + static ::java::awt::image::ColorModel * gdkColorModel; + jlong nativePointer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkVolatileImage__ diff --git a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h new file mode 100644 index 00000000000..da0c32556ae --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_GtkWindowPeer__ +#define __gnu_java_awt_peer_gtk_GtkWindowPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkWindowPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Rectangle; + class Window; + } + } +} + +class gnu::java::awt::peer::gtk::GtkWindowPeer : public ::gnu::java::awt::peer::gtk::GtkContainerPeer +{ + +public: // actually package-private + virtual void gtkWindowSetTitle(::java::lang::String *); + virtual void gtkWindowSetResizable(jboolean); + virtual void gtkWindowSetModal(jboolean); + virtual void gtkWindowSetAlwaysOnTop(jboolean); + virtual jboolean gtkWindowHasFocus(); + virtual void realize(); +public: + virtual void dispose(); +public: // actually package-private + virtual jint getX(); + virtual jint getY(); + virtual jint getWidth(); + virtual jint getHeight(); + virtual void create(jint, jboolean, ::gnu::java::awt::peer::gtk::GtkWindowPeer *); + virtual void create(jint, jboolean); + virtual void create(); + virtual void setParent(); + virtual void setVisibleAndEnabled(); +public: + virtual void setVisibleNative(jboolean); + virtual void setVisibleNativeUnlocked(jboolean); +public: // actually package-private + virtual void connectSignals(); +public: + GtkWindowPeer(::java::awt::Window *); + virtual void toBack(); + virtual void toFront(); +public: // actually package-private + virtual void nativeSetBounds(jint, jint, jint, jint); + virtual void nativeSetBoundsUnlocked(jint, jint, jint, jint); + virtual void nativeSetLocation(jint, jint); + virtual void nativeSetLocationUnlocked(jint, jint); +public: // actually protected + virtual void setLocation(jint, jint); +public: + virtual void setBounds(jint, jint, jint, jint); + virtual void setTitle(::java::lang::String *); +public: // actually protected + virtual void setSize(jint, jint); +public: + virtual void setResizable(jboolean); +public: // actually protected + virtual void postInsetsChangedEvent(jint, jint, jint, jint); + virtual void postConfigureEvent(jint, jint, jint, jint); +public: + virtual void show(); +public: // actually package-private + virtual void postWindowEvent(jint, ::java::awt::Window *, jint); +public: + virtual void updateAlwaysOnTop(); +public: // actually protected + virtual void postExposeEvent(jint, jint, jint, jint); +public: + virtual jboolean requestWindowFocus(); + virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong); + virtual ::java::awt::Graphics * getGraphics(); +public: // actually protected + virtual void postMouseEvent(jint, jlong, jint, jint, jint, jint, jboolean); +public: + virtual ::java::awt::Rectangle * getBounds(); +public: // actually protected + static const jint GDK_WINDOW_TYPE_HINT_NORMAL = 0; + static const jint GDK_WINDOW_TYPE_HINT_DIALOG = 1; + static const jint GDK_WINDOW_TYPE_HINT_MENU = 2; + static const jint GDK_WINDOW_TYPE_HINT_TOOLBAR = 3; + static const jint GDK_WINDOW_TYPE_HINT_SPLASHSCREEN = 4; + static const jint GDK_WINDOW_TYPE_HINT_UTILITY = 5; + static const jint GDK_WINDOW_TYPE_HINT_DOCK = 6; + static const jint GDK_WINDOW_TYPE_HINT_DESKTOP = 7; + jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkContainerPeer)))) windowState; +private: + jint x; + jint y; + jint width; + jint height; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_GtkWindowPeer__ diff --git a/libjava/gnu/java/awt/peer/gtk/VolatileImageGraphics.h b/libjava/gnu/java/awt/peer/gtk/VolatileImageGraphics.h new file mode 100644 index 00000000000..b7f0121d95a --- /dev/null +++ b/libjava/gnu/java/awt/peer/gtk/VolatileImageGraphics.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_gtk_VolatileImageGraphics__ +#define __gnu_java_awt_peer_gtk_VolatileImageGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace gtk + { + class GtkVolatileImage; + class VolatileImageGraphics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Graphics; + class GraphicsConfiguration; + class Image; + class Shape; + namespace font + { + class GlyphVector; + } + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + namespace image + { + class BufferedImage; + class ColorModel; + class ImageObserver; + } + } + } +} + +class gnu::java::awt::peer::gtk::VolatileImageGraphics : public ::gnu::java::awt::peer::gtk::ComponentGraphics +{ + +public: + VolatileImageGraphics(::gnu::java::awt::peer::gtk::GtkVolatileImage *); +private: + VolatileImageGraphics(::gnu::java::awt::peer::gtk::VolatileImageGraphics *); +public: + virtual void copyAreaImpl(jint, jint, jint, jint, jint, jint); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); + virtual ::java::awt::Graphics * create(); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); +public: // actually protected + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::Color *, ::java::awt::image::ImageObserver *); +public: + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); +public: // actually protected + virtual ::java::awt::geom::Rectangle2D * getRealBounds(); +private: + jboolean drawComposite(::java::awt::geom::Rectangle2D *, ::java::awt::image::ImageObserver *); + void createBuffer(); +public: // actually protected + virtual ::java::awt::image::ColorModel * getNativeCM(); +private: + ::gnu::java::awt::peer::gtk::GtkVolatileImage * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::ComponentGraphics)))) owner; + ::java::awt::image::BufferedImage * buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_gtk_VolatileImageGraphics__ diff --git a/libjava/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.h b/libjava/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.h new file mode 100644 index 00000000000..fc1b98df6b7 --- /dev/null +++ b/libjava/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_headless_HeadlessGraphicsEnvironment__ +#define __gnu_java_awt_peer_headless_HeadlessGraphicsEnvironment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace headless + { + class HeadlessGraphicsEnvironment; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Graphics2D; + class GraphicsDevice; + namespace image + { + class BufferedImage; + } + } + } +} + +class gnu::java::awt::peer::headless::HeadlessGraphicsEnvironment : public ::java::awt::GraphicsEnvironment +{ + +public: + HeadlessGraphicsEnvironment(); + virtual ::java::awt::Graphics2D * createGraphics(::java::awt::image::BufferedImage *); + virtual JArray< ::java::awt::Font * > * getAllFonts(); + virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(); + virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *); + virtual ::java::awt::GraphicsDevice * getDefaultScreenDevice(); + virtual JArray< ::java::awt::GraphicsDevice * > * getScreenDevices(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_headless_HeadlessGraphicsEnvironment__ diff --git a/libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h b/libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h new file mode 100644 index 00000000000..d7a72173ef2 --- /dev/null +++ b/libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h @@ -0,0 +1,188 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_headless_HeadlessToolkit__ +#define __gnu_java_awt_peer_headless_HeadlessToolkit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class EmbeddedWindow; + namespace peer + { + class ClasspathFontPeer; + class EmbeddedWindowPeer; + namespace headless + { + class HeadlessGraphicsEnvironment; + class HeadlessToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + class Canvas; + class Checkbox; + class CheckboxMenuItem; + class Choice; + class Dialog; + class Dimension; + class EventQueue; + class FileDialog; + class Font; + class FontMetrics; + class Frame; + class GraphicsDevice; + class GraphicsEnvironment; + class Image; + class Label; + class List; + class Menu; + class MenuBar; + class MenuItem; + class Panel; + class PopupMenu; + class PrintJob; + class ScrollPane; + class Scrollbar; + class TextArea; + class TextField; + class Window; + namespace datatransfer + { + class Clipboard; + } + namespace dnd + { + class DragGestureEvent; + namespace peer + { + class DragSourceContextPeer; + } + } + 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 DialogPeer; + class FileDialogPeer; + class FontPeer; + class FramePeer; + class LabelPeer; + class ListPeer; + class MenuBarPeer; + class MenuItemPeer; + class MenuPeer; + class PanelPeer; + class PopupMenuPeer; + class RobotPeer; + class ScrollPanePeer; + class ScrollbarPeer; + class TextAreaPeer; + class TextFieldPeer; + class WindowPeer; + } + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::peer::headless::HeadlessToolkit : public ::gnu::java::awt::ClasspathToolkit +{ + +public: + HeadlessToolkit(); + virtual void beep(); + virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); +public: // actually protected + virtual ::java::awt::peer::ButtonPeer * createButton(::java::awt::Button *); + virtual ::java::awt::peer::CanvasPeer * createCanvas(::java::awt::Canvas *); + virtual ::java::awt::peer::CheckboxPeer * createCheckbox(::java::awt::Checkbox *); + virtual ::java::awt::peer::CheckboxMenuItemPeer * createCheckboxMenuItem(::java::awt::CheckboxMenuItem *); + virtual ::java::awt::peer::ChoicePeer * createChoice(::java::awt::Choice *); + virtual ::java::awt::peer::DialogPeer * createDialog(::java::awt::Dialog *); +public: + virtual ::java::awt::dnd::peer::DragSourceContextPeer * createDragSourceContextPeer(::java::awt::dnd::DragGestureEvent *); +public: // actually protected + virtual ::java::awt::peer::FileDialogPeer * createFileDialog(::java::awt::FileDialog *); + virtual ::java::awt::peer::FramePeer * createFrame(::java::awt::Frame *); +public: + virtual ::java::awt::Image * createImage(::java::lang::String *); + virtual ::java::awt::Image * createImage(::java::net::URL *); + virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *); + virtual ::java::awt::Image * createImage(JArray< jbyte > *, jint, jint); +public: // actually protected + virtual ::java::awt::peer::LabelPeer * createLabel(::java::awt::Label *); + virtual ::java::awt::peer::ListPeer * createList(::java::awt::List *); + virtual ::java::awt::peer::MenuPeer * createMenu(::java::awt::Menu *); + virtual ::java::awt::peer::MenuBarPeer * createMenuBar(::java::awt::MenuBar *); + virtual ::java::awt::peer::MenuItemPeer * createMenuItem(::java::awt::MenuItem *); + virtual ::java::awt::peer::PanelPeer * createPanel(::java::awt::Panel *); + virtual ::java::awt::peer::PopupMenuPeer * createPopupMenu(::java::awt::PopupMenu *); + virtual ::java::awt::peer::ScrollPanePeer * createScrollPane(::java::awt::ScrollPane *); + virtual ::java::awt::peer::ScrollbarPeer * createScrollbar(::java::awt::Scrollbar *); + virtual ::java::awt::peer::TextAreaPeer * createTextArea(::java::awt::TextArea *); + virtual ::java::awt::peer::TextFieldPeer * createTextField(::java::awt::TextField *); + virtual ::java::awt::peer::WindowPeer * createWindow(::java::awt::Window *); +public: + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual JArray< ::java::lang::String * > * getFontList(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); +public: // actually protected + virtual ::java::awt::peer::FontPeer * getFontPeer(::java::lang::String *, jint); +public: + virtual ::java::awt::Image * getImage(::java::lang::String *); + virtual ::java::awt::Image * getImage(::java::net::URL *); + virtual ::java::awt::PrintJob * getPrintJob(::java::awt::Frame *, ::java::lang::String *, ::java::util::Properties *); + virtual jint getScreenResolution(); + virtual ::java::awt::Dimension * getScreenSize(); + virtual ::java::awt::datatransfer::Clipboard * getSystemClipboard(); +public: // actually protected + virtual ::java::awt::EventQueue * getSystemEventQueueImpl(); +public: + virtual ::java::util::Map * mapInputMethodHighlight(::java::awt::im::InputMethodHighlight *); + virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void sync(); + virtual ::gnu::java::awt::peer::EmbeddedWindowPeer * createEmbeddedWindow(::gnu::java::awt::EmbeddedWindow *); + virtual ::java::awt::Font * createFont(jint, ::java::io::InputStream *); + virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *); + virtual ::gnu::java::awt::peer::ClasspathFontPeer * getClasspathFontPeer(::java::lang::String *, ::java::util::Map *); + virtual ::java::awt::GraphicsEnvironment * getLocalGraphicsEnvironment(); +private: + ::gnu::java::awt::peer::headless::HeadlessGraphicsEnvironment * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) graphicsEnv; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_headless_HeadlessToolkit__ diff --git a/libjava/gnu/java/awt/peer/qt/MainQtThread.h b/libjava/gnu/java/awt/peer/qt/MainQtThread.h new file mode 100644 index 00000000000..9d3b746356a --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/MainQtThread.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_MainQtThread__ +#define __gnu_java_awt_peer_qt_MainQtThread__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class MainQtThread; + } + } + } + } + } +} + +class gnu::java::awt::peer::qt::MainQtThread : public ::java::lang::Thread +{ + +public: + MainQtThread(::java::lang::String *, jboolean); + virtual jboolean isRunning(); + virtual jlong init(::java::lang::String *, jboolean); + virtual void exec(jlong); + virtual void run(); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::java::lang::Thread)))) QApplicationPointer; + jlong mainThreadInterface; + ::java::lang::String * theme; +private: + jboolean running; + jboolean doublebuffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_MainQtThread__ diff --git a/libjava/gnu/java/awt/peer/qt/NativeWrapper.h b/libjava/gnu/java/awt/peer/qt/NativeWrapper.h new file mode 100644 index 00000000000..0bf62e0d3de --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/NativeWrapper.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_NativeWrapper__ +#define __gnu_java_awt_peer_qt_NativeWrapper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class NativeWrapper; + } + } + } + } + } +} + +class gnu::java::awt::peer::qt::NativeWrapper : public ::java::lang::Object +{ + +public: + NativeWrapper(); +public: // actually protected + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) nativeObject; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_NativeWrapper__ diff --git a/libjava/gnu/java/awt/peer/qt/QMatrix.h b/libjava/gnu/java/awt/peer/qt/QMatrix.h new file mode 100644 index 00000000000..7ff6bfbcafe --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QMatrix.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QMatrix__ +#define __gnu_java_awt_peer_qt_QMatrix__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QMatrix; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace geom + { + class AffineTransform; + } + } + } +} + +class gnu::java::awt::peer::qt::QMatrix : public ::gnu::java::awt::peer::qt::NativeWrapper +{ + +public: + QMatrix(::java::awt::geom::AffineTransform *); +private: + void init(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble); + JArray< jdouble > * getMatrix(); +public: + virtual ::java::awt::geom::AffineTransform * getTransform(); + virtual void dispose(); + virtual void finalize(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QMatrix__ diff --git a/libjava/gnu/java/awt/peer/qt/QPainterPath.h b/libjava/gnu/java/awt/peer/qt/QPainterPath.h new file mode 100644 index 00000000000..ffc104ea67e --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QPainterPath.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QPainterPath__ +#define __gnu_java_awt_peer_qt_QPainterPath__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QPainterPath; + } + } + } + } + } + namespace java + { + namespace awt + { + class Shape; + namespace geom + { + class GeneralPath; + } + } + } +} + +class gnu::java::awt::peer::qt::QPainterPath : public ::gnu::java::awt::peer::qt::NativeWrapper +{ + +public: // actually package-private + QPainterPath(); +public: + QPainterPath(::java::awt::Shape *); + QPainterPath(jdouble, jdouble, jdouble, jdouble); + QPainterPath(jdouble, jdouble, jdouble, jdouble, jboolean); + virtual ::java::awt::geom::GeneralPath * getPath(); +private: + void init(jint); + void moveTo(jdouble, jdouble); + void close(); + void lineTo(jdouble, jdouble); + void quadTo(jdouble, jdouble, jdouble, jdouble); + void cubicTo(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble); +public: + virtual void dispose(); + virtual void finalize(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QPainterPath__ diff --git a/libjava/gnu/java/awt/peer/qt/QPen.h b/libjava/gnu/java/awt/peer/qt/QPen.h new file mode 100644 index 00000000000..973e24c313f --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QPen.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QPen__ +#define __gnu_java_awt_peer_qt_QPen__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QPen; + } + } + } + } + } + namespace java + { + namespace awt + { + class Stroke; + } + } +} + +class gnu::java::awt::peer::qt::QPen : public ::gnu::java::awt::peer::qt::NativeWrapper +{ + +public: + QPen(::java::awt::Stroke *); +private: + void init(jdouble, jint, jint, jdouble); +public: + virtual void dispose(); + virtual void finalize(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QPen__ diff --git a/libjava/gnu/java/awt/peer/qt/QtAudioClip.h b/libjava/gnu/java/awt/peer/qt/QtAudioClip.h new file mode 100644 index 00000000000..4e74b63a6e6 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtAudioClip.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtAudioClip__ +#define __gnu_java_awt_peer_qt_QtAudioClip__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtAudioClip; + } + } + } + } + } + namespace java + { + namespace awt + { + class Toolkit; + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::peer::qt::QtAudioClip : public ::gnu::java::awt::peer::qt::NativeWrapper +{ + +public: + QtAudioClip(::java::lang::String *); + QtAudioClip(::java::net::URL *); +private: + void loadClip(::java::lang::String *); + void play(jboolean); + jboolean isAvailable(); + void checkForQt(); +public: + virtual void loop(); + virtual void play(); + virtual void stop(); + virtual void dispose(); + virtual void finalize(); +private: + static ::java::awt::Toolkit * t; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtAudioClip__ diff --git a/libjava/gnu/java/awt/peer/qt/QtButtonPeer.h b/libjava/gnu/java/awt/peer/qt/QtButtonPeer.h new file mode 100644 index 00000000000..5476a04ba60 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtButtonPeer.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtButtonPeer__ +#define __gnu_java_awt_peer_qt_QtButtonPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtButtonPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + } + } +} + +class gnu::java::awt::peer::qt::QtButtonPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtButtonPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Button *); + virtual void init(); +public: // actually protected + virtual void setup(); +public: // actually package-private + virtual void fireClick(jint); +public: + virtual void setLabel(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtButtonPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtCanvasPeer.h b/libjava/gnu/java/awt/peer/qt/QtCanvasPeer.h new file mode 100644 index 00000000000..1d8be8c36a6 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtCanvasPeer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtCanvasPeer__ +#define __gnu_java_awt_peer_qt_QtCanvasPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtCanvasPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Canvas; + class Dimension; + } + } +} + +class gnu::java::awt::peer::qt::QtCanvasPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtCanvasPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Canvas *); + virtual void init(); +public: // actually protected + virtual void setup(); +public: + virtual ::java::awt::Dimension * getPreferredSize(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtCanvasPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtCheckboxPeer.h b/libjava/gnu/java/awt/peer/qt/QtCheckboxPeer.h new file mode 100644 index 00000000000..f90ce36e341 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtCheckboxPeer.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtCheckboxPeer__ +#define __gnu_java_awt_peer_qt_QtCheckboxPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtCheckboxPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Checkbox; + class CheckboxGroup; + } + } +} + +class gnu::java::awt::peer::qt::QtCheckboxPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtCheckboxPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Checkbox *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + void fireToggle(jboolean); +public: + virtual void setCheckboxGroup(::java::awt::CheckboxGroup *); + virtual void setLabel(::java::lang::String *); + virtual void setState(jboolean); +private: + ::java::awt::CheckboxGroup * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtComponentPeer)))) group; + static ::java::util::WeakHashMap * groupMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtCheckboxPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtChoicePeer.h b/libjava/gnu/java/awt/peer/qt/QtChoicePeer.h new file mode 100644 index 00000000000..46a12c255e6 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtChoicePeer.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtChoicePeer__ +#define __gnu_java_awt_peer_qt_QtChoicePeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtChoicePeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Choice; + } + } +} + +class gnu::java::awt::peer::qt::QtChoicePeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtChoicePeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Choice *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + void fireChoice(jint); +public: + virtual void add(::java::lang::String *, jint); + virtual void addItem(::java::lang::String *, jint); + virtual void remove(jint); + virtual void removeAll(); + virtual void select(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtChoicePeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtComponentGraphics.h b/libjava/gnu/java/awt/peer/qt/QtComponentGraphics.h new file mode 100644 index 00000000000..733247abfec --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtComponentGraphics.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtComponentGraphics__ +#define __gnu_java_awt_peer_qt_QtComponentGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtComponentGraphics; + class QtComponentPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class GraphicsConfiguration; + } + } +} + +class gnu::java::awt::peer::qt::QtComponentGraphics : public ::gnu::java::awt::peer::qt::QtGraphics +{ + +public: + QtComponentGraphics(jlong, ::gnu::java::awt::peer::qt::QtComponentPeer *, jint, jint, jint, jint); +public: // actually package-private + QtComponentGraphics(::gnu::java::awt::peer::qt::QtComponentGraphics *); +public: + virtual ::java::awt::Graphics * create(); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); +private: + ::gnu::java::awt::peer::qt::QtComponentPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtGraphics)))) peer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtComponentGraphics__ diff --git a/libjava/gnu/java/awt/peer/qt/QtComponentPeer$RepaintTimerTask.h b/libjava/gnu/java/awt/peer/qt/QtComponentPeer$RepaintTimerTask.h new file mode 100644 index 00000000000..90f962941d8 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtComponentPeer$RepaintTimerTask.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtComponentPeer$RepaintTimerTask__ +#define __gnu_java_awt_peer_qt_QtComponentPeer$RepaintTimerTask__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtComponentPeer; + class QtComponentPeer$RepaintTimerTask; + } + } + } + } + } +} + +class gnu::java::awt::peer::qt::QtComponentPeer$RepaintTimerTask : public ::java::util::TimerTask +{ + +public: // actually package-private + QtComponentPeer$RepaintTimerTask(::gnu::java::awt::peer::qt::QtComponentPeer *, ::gnu::java::awt::peer::qt::QtComponentPeer *, jint, jint, jint, jint); +public: + virtual void run(); +private: + jint __attribute__((aligned(__alignof__( ::java::util::TimerTask)))) x; + jint y; + jint w; + jint h; + ::gnu::java::awt::peer::qt::QtComponentPeer * peer; +public: // actually package-private + ::gnu::java::awt::peer::qt::QtComponentPeer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtComponentPeer$RepaintTimerTask__ diff --git a/libjava/gnu/java/awt/peer/qt/QtComponentPeer.h b/libjava/gnu/java/awt/peer/qt/QtComponentPeer.h new file mode 100644 index 00000000000..f596e809c2a --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtComponentPeer.h @@ -0,0 +1,189 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtComponentPeer__ +#define __gnu_java_awt_peer_qt_QtComponentPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtComponentPeer; + class QtContainerPeer; + class QtFontPeer; + class QtImage; + class QtToolkit; + } + } + } + } + } + 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 gnu::java::awt::peer::qt::QtComponentPeer : public ::gnu::java::awt::peer::qt::NativeWrapper +{ + +public: // actually package-private + QtComponentPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Component *); +public: // actually protected + virtual void callInit(); + virtual void init(); + virtual void setup(); +public: // actually package-private + virtual void QtUpdate(); + virtual void QtUpdateArea(jint, jint, jint, jint); +private: + void disposeNative(); + void setGround(jint, jint, jint, jboolean); + void setBoundsNative(jint, jint, jint, jint); + void setCursor(jint); + ::java::awt::Color * getNativeBackground(); + void setFontNative(::gnu::java::awt::peer::qt::QtFontPeer *); + jint whichScreen(); + void reparentNative(::gnu::java::awt::peer::qt::QtContainerPeer *); + void getLocationOnScreenNative(::java::awt::Point *); + jboolean drawableComponent(); +public: // actually package-private + virtual void updateBounds(); + virtual void updateBackBuffer(jint, jint); +public: // actually protected + virtual void closeEvent(); + virtual void enterEvent(jint, jint, jint, jint); + virtual void focusInEvent(); + virtual void focusOutEvent(); + virtual void keyPressEvent(jint, jint, jint, jint); + virtual void keyReleaseEvent(jint, jint, jint, jint); + virtual void leaveEvent(jint, jint, jint, jint); + virtual void mouseDoubleClickEvent(jint, jint, jint, jint); + virtual void mouseMoveEvent(jint, jint, jint, jint); + virtual void mousePressEvent(jint, jint, jint, jint); + virtual void mouseReleaseEvent(jint, jint, jint, jint); + virtual void moveEvent(jint, jint, jint, jint); + virtual void resizeEvent(jint, jint, jint, jint); + virtual void showEvent(); + virtual void hideEvent(); +public: + virtual void setEventMask(jlong); + virtual jboolean canDetermineObscurity(); + virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void createBuffers(jint, ::java::awt::BufferCapabilities *); + virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *); + virtual ::java::awt::Image * createImage(jint, jint); + virtual void coalescePaintEvent(::java::awt::event::PaintEvent *); + virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint); + virtual void destroyBuffers(); + virtual void disable(); + virtual void dispose(); + virtual void enable(); + virtual void finalize(); + virtual void flip(::java::awt::BufferCapabilities$FlipContents *); + virtual ::java::awt::Image * getBackBuffer(); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration(); + virtual ::java::awt::Point * getLocationOnScreen(); +private: + void getSizeNative(::java::awt::Dimension *, jboolean); + ::java::awt::Dimension * getSize(jboolean); +public: + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Toolkit * getToolkit(); + virtual jboolean handlesWheelScrolling(); + virtual void hide(); + virtual jboolean isFocusable(); + virtual jboolean isFocusTraversable(); + virtual jboolean isObscured(); + virtual ::java::awt::Dimension * minimumSize(); + virtual ::java::awt::Dimension * preferredSize(); + virtual void requestFocus(); + virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong); + virtual void reshape(jint, jint, jint, jint); + virtual void setBackground(::java::awt::Color *); + virtual void setBounds(jint, jint, jint, jint); + virtual void setCursor(::java::awt::Cursor *); + virtual void setEnabled(jboolean); + virtual void setFont(::java::awt::Font *); + virtual void setForeground(::java::awt::Color *); + virtual void setVisible(jboolean); + virtual void show(); + virtual void handleEvent(::java::awt::AWTEvent *); + virtual void paint(::java::awt::Graphics *); + virtual void paintBackBuffer(); + virtual void paintBackBuffer(jint, jint, jint, jint); + virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void print(::java::awt::Graphics *); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void updateCursorImmediately(); + virtual ::java::awt::Rectangle * getBounds(); + virtual void reparent(::java::awt::peer::ContainerPeer *); + virtual void setBounds(jint, jint, jint, jint, jint); + virtual jboolean isReparentSupported(); + virtual void layout(); +public: // actually protected + static const jint POPUP_TRIGGER = 3; + ::gnu::java::awt::peer::qt::QtToolkit * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::NativeWrapper)))) toolkit; +public: // actually package-private + ::java::awt::Component * owner; +private: + jlong eventMask; + jboolean hasMotionListeners; +public: // actually protected + ::gnu::java::awt::peer::qt::QtImage * backBuffer; + jlong qtApp; +private: + jboolean settingUp; + jboolean ignoreResize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtComponentPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtContainerPeer.h b/libjava/gnu/java/awt/peer/qt/QtContainerPeer.h new file mode 100644 index 00000000000..f9e60b3cc4d --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtContainerPeer.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtContainerPeer__ +#define __gnu_java_awt_peer_qt_QtContainerPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtContainerPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Insets; + } + } +} + +class gnu::java::awt::peer::qt::QtContainerPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtContainerPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Component *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: + virtual void beginLayout(); + virtual void beginValidate(); + virtual void endLayout(); + virtual void endValidate(); + virtual ::java::awt::Insets * getInsets(); + virtual ::java::awt::Insets * insets(); + virtual jboolean isPaintPending(); + virtual jboolean isRestackSupported(); + virtual void cancelPendingPaint(jint, jint, jint, jint); + virtual void restack(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtContainerPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtDialogPeer.h b/libjava/gnu/java/awt/peer/qt/QtDialogPeer.h new file mode 100644 index 00000000000..483aa8e51c2 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtDialogPeer.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtDialogPeer__ +#define __gnu_java_awt_peer_qt_QtDialogPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtDialogPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dialog; + } + } +} + +class gnu::java::awt::peer::qt::QtDialogPeer : public ::gnu::java::awt::peer::qt::QtWindowPeer +{ + +public: + QtDialogPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Dialog *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: // actually package-private + virtual void setModal(jboolean); +private: + void setBoundsNative(jint, jint, jint, jint, jboolean); +public: + virtual void setResizable(jboolean); + virtual void setBounds(jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtDialogPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.h b/libjava/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.h new file mode 100644 index 00000000000..5ee942d6f71 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtEmbeddedWindowPeer__ +#define __gnu_java_awt_peer_qt_QtEmbeddedWindowPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtEmbeddedWindowPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + } + } +} + +class gnu::java::awt::peer::qt::QtEmbeddedWindowPeer : public ::gnu::java::awt::peer::qt::QtFramePeer +{ + +public: + QtEmbeddedWindowPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Component *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: + virtual void embed(jlong); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtEmbeddedWindowPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtFileDialogPeer.h b/libjava/gnu/java/awt/peer/qt/QtFileDialogPeer.h new file mode 100644 index 00000000000..a87e72f1b6b --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtFileDialogPeer.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtFileDialogPeer__ +#define __gnu_java_awt_peer_qt_QtFileDialogPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtFileDialogPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class FileDialog; + } + } +} + +class gnu::java::awt::peer::qt::QtFileDialogPeer : public ::gnu::java::awt::peer::qt::QtDialogPeer +{ + +public: + QtFileDialogPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::FileDialog *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + void setMode(jint); + void fileDialogDone(::java::lang::String *, ::java::lang::String *); +public: + virtual void setFile(::java::lang::String *); + virtual void setDirectory(::java::lang::String *); + virtual void setFilenameFilter(::java::io::FilenameFilter *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtFileDialogPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtFontMetrics.h b/libjava/gnu/java/awt/peer/qt/QtFontMetrics.h new file mode 100644 index 00000000000..a0655f2111f --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtFontMetrics.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtFontMetrics__ +#define __gnu_java_awt_peer_qt_QtFontMetrics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtFontMetrics; + class QtFontPeer; + class QtGraphics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Graphics; + namespace geom + { + class Rectangle2D; + } + } + } +} + +class gnu::java::awt::peer::qt::QtFontMetrics : public ::java::awt::FontMetrics +{ + +public: + QtFontMetrics(::java::awt::Font *); + QtFontMetrics(::java::awt::Font *, ::java::awt::Graphics *); +public: // actually package-private + QtFontMetrics(::gnu::java::awt::peer::qt::QtFontPeer *, ::java::awt::Graphics *); +public: + QtFontMetrics(::gnu::java::awt::peer::qt::QtFontPeer *); +private: + void init(::gnu::java::awt::peer::qt::QtFontPeer *); + void initGraphics(::gnu::java::awt::peer::qt::QtFontPeer *, ::gnu::java::awt::peer::qt::QtGraphics *); + void dispose(); +public: // actually package-private + virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *); + virtual jboolean canDisplay(jchar); +public: + virtual jint getAscent(); + virtual jint getDescent(); + virtual jint getHeight(); + virtual jint getLeading(); + virtual jint getMaxAdvance(); + virtual jint charWidth(jchar); + virtual jint charsWidth(JArray< jchar > *, jint, jint); + virtual jint stringWidth(::java::lang::String *); + virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *, ::java::awt::Graphics *); +private: + jlong __attribute__((aligned(__alignof__( ::java::awt::FontMetrics)))) nativeObject; + ::gnu::java::awt::peer::qt::QtFontPeer * peer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtFontMetrics__ diff --git a/libjava/gnu/java/awt/peer/qt/QtFontPeer.h b/libjava/gnu/java/awt/peer/qt/QtFontPeer.h new file mode 100644 index 00000000000..11ca6ccf6c6 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtFontPeer.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtFontPeer__ +#define __gnu_java_awt_peer_qt_QtFontPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtFontMetrics; + class QtFontPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class FontMetrics; + namespace font + { + class FontRenderContext; + class GlyphVector; + class LineMetrics; + } + namespace geom + { + class Rectangle2D; + } + } + namespace text + { + class CharacterIterator; + } + } +} + +class gnu::java::awt::peer::qt::QtFontPeer : public ::gnu::java::awt::peer::ClasspathFontPeer +{ + +public: + QtFontPeer(::java::lang::String *, jint); + QtFontPeer(::java::lang::String *, jint, jint); + QtFontPeer(::java::lang::String *, ::java::util::Map *); + virtual void init(); +private: + void create(::java::lang::String *, jint, jint); +public: + virtual void dispose(); + virtual jboolean canDisplay(::java::awt::Font *, jchar); + virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint); + virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *); + virtual ::java::lang::String * getPostScriptName(::java::awt::Font *); + virtual jint getNumGlyphs(::java::awt::Font *); + virtual jint getMissingGlyphCode(::java::awt::Font *); + virtual jbyte getBaselineFor(::java::awt::Font *, jchar); + virtual ::java::lang::String * getGlyphName(::java::awt::Font *, jint); + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *); + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *); + virtual ::java::awt::font::GlyphVector * layoutGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jchar > *, jint, jint, jint); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual jboolean hasUniformLineMetrics(::java::awt::Font *); + virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *); + virtual ::java::awt::geom::Rectangle2D * getMaxCharBounds(::java::awt::Font *, ::java::awt::font::FontRenderContext *); +private: + jlong __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::ClasspathFontPeer)))) nativeObject; + ::gnu::java::awt::peer::qt::QtFontMetrics * metrics; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtFontPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtFramePeer.h b/libjava/gnu/java/awt/peer/qt/QtFramePeer.h new file mode 100644 index 00000000000..1b0f39e68d5 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtFramePeer.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtFramePeer__ +#define __gnu_java_awt_peer_qt_QtFramePeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtFramePeer; + class QtImage; + class QtMenuBarPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Image; + class Insets; + class MenuBar; + class Rectangle; + } + } +} + +class gnu::java::awt::peer::qt::QtFramePeer : public ::gnu::java::awt::peer::qt::QtWindowPeer +{ + +public: + QtFramePeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Component *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + void setIcon(::gnu::java::awt::peer::qt::QtImage *); + void setMaximizedBounds(jint, jint); + void setMenu(::gnu::java::awt::peer::qt::QtMenuBarPeer *); + jint menuBarHeight(); +public: + virtual void destroy(); + virtual jint getState(); + virtual ::java::awt::Insets * getInsets(); + virtual void setIconImage(::java::awt::Image *); + virtual void setMaximizedBounds(::java::awt::Rectangle *); + virtual void setMenuBar(::java::awt::MenuBar *); + virtual void setResizable(jboolean); + virtual void setState(jint); + virtual void setBoundsPrivate(jint, jint, jint, jint); + virtual void updateAlwaysOnTop(); + virtual jboolean requestWindowFocus(); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtWindowPeer)))) theState; +public: // actually package-private + jlong frameObject; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtFramePeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtGraphics.h b/libjava/gnu/java/awt/peer/qt/QtGraphics.h new file mode 100644 index 00000000000..710248b0a44 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtGraphics.h @@ -0,0 +1,215 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtGraphics__ +#define __gnu_java_awt_peer_qt_QtGraphics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QMatrix; + class QPainterPath; + class QPen; + class QtFontPeer; + class QtGraphics; + class QtImage; + class QtVolatileImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Composite; + class Font; + class FontMetrics; + class Graphics; + 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 gnu::java::awt::peer::qt::QtGraphics : public ::java::awt::Graphics2D +{ + +public: // actually package-private + QtGraphics(); + QtGraphics(::gnu::java::awt::peer::qt::QtGraphics *); +public: // actually protected + virtual void setup(); +public: + virtual void delete$(); + virtual void dispose(); +private: + void resetClip(); +public: // actually protected + virtual void initImage(::gnu::java::awt::peer::qt::QtImage *); + virtual void initVolatileImage(::gnu::java::awt::peer::qt::QtVolatileImage *); +private: + void cloneNativeContext(::gnu::java::awt::peer::qt::QtGraphics *); + void setColor(jint, jint, jint, jint); + void drawNative(::gnu::java::awt::peer::qt::QPainterPath *); + void fillNative(::gnu::java::awt::peer::qt::QPainterPath *); + void setClipNative(::gnu::java::awt::peer::qt::QPainterPath *); + void setClipRectNative(jint, jint, jint, jint); + void intersectClipNative(::gnu::java::awt::peer::qt::QPainterPath *); + void intersectClipRectNative(jint, jint, jint, jint); + void setQtTransform(::gnu::java::awt::peer::qt::QMatrix *); + void setNativeStroke(::gnu::java::awt::peer::qt::QPen *); + void setNativeComposite(jint); + void drawStringNative(::java::lang::String *, jdouble, jdouble); + void setLinearGradient(jint, jint, jint, jint, jint, jint, jdouble, jdouble, jdouble, jdouble, jboolean); + void setAlphaNative(jdouble); + void setFontNative(::gnu::java::awt::peer::qt::QtFontPeer *); + ::gnu::java::awt::peer::qt::QPainterPath * getClipNative(); +public: // actually package-private + virtual void setAlpha(jdouble); +public: + virtual ::java::awt::Graphics * create() = 0; + virtual void copyArea(jint, jint, jint, jint, jint, jint) = 0; + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration() = 0; + virtual ::java::awt::Color * getColor(); + virtual void setColor(::java::awt::Color *); + virtual void setBackground(::java::awt::Color *); + virtual ::java::awt::Color * getBackground(); + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean); + virtual ::java::awt::Font * getFont(); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual void clip(::java::awt::Shape *); + virtual void clipRect(jint, jint, jint, jint); + virtual void setClip(jint, jint, jint, jint); + virtual ::java::awt::Shape * getClip(); + virtual ::java::awt::Rectangle * getClipBounds(); + virtual void setClip(::java::awt::Shape *); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual void drawLine(jint, jint, jint, jint); + virtual void drawRect(jint, jint, jint, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void clearRect(jint, jint, jint, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual void drawOval(jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void fill3DRect(jint, jint, jint, jint, jboolean); + virtual void draw3DRect(jint, jint, jint, jint, jboolean); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::lang::String *, jfloat, jfloat); + virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint); + virtual void drawString(::java::text::AttributedCharacterIterator *, jfloat, jfloat); + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual ::java::awt::geom::AffineTransform * getTransform(); + virtual void setTransform(::java::awt::geom::AffineTransform *); + virtual void rotate(jdouble); + virtual void rotate(jdouble, jdouble, jdouble); + virtual void scale(jdouble, jdouble); + virtual void shear(jdouble, jdouble); + virtual void transform(::java::awt::geom::AffineTransform *); + virtual void translate(jdouble, jdouble); + virtual void translate(jint, jint); + virtual void setStroke(::java::awt::Stroke *); + virtual ::java::awt::Stroke * getStroke(); + virtual void setComposite(::java::awt::Composite *); + virtual ::java::awt::Composite * getComposite(); + virtual void setPaint(::java::awt::Paint *); + virtual ::java::awt::Paint * getPaint(); + virtual void addRenderingHints(::java::util::Map *); + virtual ::java::lang::Object * getRenderingHint(::java::awt::RenderingHints$Key *); + virtual ::java::awt::RenderingHints * getRenderingHints(); + virtual void setRenderingHints(::java::util::Map *); + virtual void setRenderingHint(::java::awt::RenderingHints$Key *, ::java::lang::Object *); +private: + void updateRenderingHints(); +public: + virtual ::java::awt::font::FontRenderContext * getFontRenderContext(); + virtual void drawRenderableImage(::java::awt::image::renderable::RenderableImage *, ::java::awt::geom::AffineTransform *); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); + virtual void drawImage(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImageOp *, jint, jint); +public: // actually protected + jlong __attribute__((aligned(__alignof__( ::java::awt::Graphics2D)))) nativeObject; +private: + static ::java::awt::geom::AffineTransform * identity; +public: // actually protected + ::java::awt::Font * font; + ::java::awt::Color * color; + ::java::awt::Color * bgcolor; + ::java::awt::Shape * clip__; + ::java::awt::Shape * initialClip; + ::java::awt::geom::AffineTransform * xform; + ::java::awt::Stroke * currentStroke; + jboolean nativeStroking; + ::java::awt::Composite * composite; + jdouble currentAlpha; + ::java::awt::Paint * currentPaint; + ::java::awt::RenderingHints * renderingHints; +public: // actually package-private + ::java::awt::Graphics * parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtGraphics__ diff --git a/libjava/gnu/java/awt/peer/qt/QtGraphicsEnvironment.h b/libjava/gnu/java/awt/peer/qt/QtGraphicsEnvironment.h new file mode 100644 index 00000000000..ec1e0c8a2ee --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtGraphicsEnvironment.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtGraphicsEnvironment__ +#define __gnu_java_awt_peer_qt_QtGraphicsEnvironment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtGraphicsEnvironment; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Graphics2D; + class GraphicsDevice; + namespace image + { + class BufferedImage; + } + } + } +} + +class gnu::java::awt::peer::qt::QtGraphicsEnvironment : public ::java::awt::GraphicsEnvironment +{ + +public: + QtGraphicsEnvironment(::gnu::java::awt::peer::qt::QtToolkit *); + virtual JArray< ::java::awt::Font * > * getAllFonts(); + virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(); + virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *); + virtual ::java::awt::GraphicsDevice * getDefaultScreenDevice(); + virtual ::java::awt::Graphics2D * createGraphics(::java::awt::image::BufferedImage *); + virtual JArray< ::java::awt::GraphicsDevice * > * getScreenDevices(); + virtual ::gnu::java::awt::peer::qt::QtToolkit * getToolkit(); +public: // actually package-private + ::gnu::java::awt::peer::qt::QtToolkit * __attribute__((aligned(__alignof__( ::java::awt::GraphicsEnvironment)))) toolkit; + JArray< ::java::awt::GraphicsDevice * > * screens; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtGraphicsEnvironment__ diff --git a/libjava/gnu/java/awt/peer/qt/QtImage.h b/libjava/gnu/java/awt/peer/qt/QtImage.h new file mode 100644 index 00000000000..4c921b22881 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtImage.h @@ -0,0 +1,128 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtImage__ +#define __gnu_java_awt_peer_qt_QtImage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QMatrix; + class QtComponentPeer; + class QtGraphics; + class QtImage; + class QtImageGraphics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Graphics; + class Image; + namespace image + { + class ColorModel; + class ImageObserver; + class ImageProducer; + } + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::peer::qt::QtImage : public ::java::awt::Image +{ + +public: + virtual void clear(); +private: + JArray< jint > * getPixels(); + void setPixels(JArray< jint > *); + jboolean loadImage(::java::lang::String *); + jboolean loadImageFromData(JArray< jbyte > *); + void createImage(); + void freeImage(); + void createScaledImage(::gnu::java::awt::peer::qt::QtImage *, jint); +public: // actually package-private + virtual void drawPixels(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, jint, jboolean); +private: + void drawPixelsScaled(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, jint, jint, jint, jboolean); + void drawPixelsTransformed(::gnu::java::awt::peer::qt::QtGraphics *, ::gnu::java::awt::peer::qt::QMatrix *); +public: // actually package-private + virtual void drawPixelsScaledFlipped(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jboolean, jboolean, jint, jint, jint, jint, jint, jint, jint, jint, jboolean); +public: + QtImage(::java::awt::image::ImageProducer *); + QtImage(::java::net::URL *); + QtImage(::java::lang::String *); + QtImage(JArray< jbyte > *); + QtImage(jint, jint); +private: + QtImage(::gnu::java::awt::peer::qt::QtImage *, jint, jint, jint); +public: + virtual void setImage(jint, jint, JArray< jint > *, ::java::util::Hashtable *); + virtual jint getWidth(::java::awt::image::ImageObserver *); + virtual jint getHeight(::java::awt::image::ImageObserver *); + virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *); + virtual ::java::awt::image::ImageProducer * getSource(); +public: // actually package-private + virtual void putPainter(::gnu::java::awt::peer::qt::QtImageGraphics *); + virtual void removePainter(::gnu::java::awt::peer::qt::QtImageGraphics *); +public: + virtual ::java::awt::Graphics * getGraphics(); +public: // actually package-private + virtual ::java::awt::Graphics * getDirectGraphics(::gnu::java::awt::peer::qt::QtComponentPeer *); +public: + virtual ::java::awt::Image * getScaledInstance(jint, jint, jint); + virtual void flush(); + virtual void finalize(); + virtual void dispose(); + virtual jint checkImage(::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, ::gnu::java::awt::peer::qt::QMatrix *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual void copyArea(jint, jint, jint, jint, jint, jint); +private: + void deliver(); + jboolean addObserver(::java::awt::image::ImageObserver *); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::awt::Image)))) width; + jint height; + ::java::util::Hashtable * props; + jboolean isLoaded; + jlong nativeObject; + ::java::util::Vector * observers; + jboolean errorLoading; + ::java::awt::image::ImageProducer * source; + static ::java::awt::image::ColorModel * nativeModel; + ::java::util::WeakHashMap * painters; + jboolean killFlag; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtImage__ diff --git a/libjava/gnu/java/awt/peer/qt/QtImageConsumer.h b/libjava/gnu/java/awt/peer/qt/QtImageConsumer.h new file mode 100644 index 00000000000..8c929d4f671 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtImageConsumer.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtImageConsumer__ +#define __gnu_java_awt_peer_qt_QtImageConsumer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtImage; + class QtImageConsumer; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ColorModel; + class ImageProducer; + } + } + } +} + +class gnu::java::awt::peer::qt::QtImageConsumer : public ::java::lang::Object +{ + +public: + QtImageConsumer(::gnu::java::awt::peer::qt::QtImage *, ::java::awt::image::ImageProducer *); + virtual void imageComplete(jint); + virtual void setColorModel(::java::awt::image::ColorModel *); + virtual void setDimensions(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< jint > * convertPixels(JArray< jbyte > *); +public: + virtual void setProperties(::java::util::Hashtable *); +private: + ::gnu::java::awt::peer::qt::QtImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) target; + jint width; + jint height; + ::java::util::Hashtable * properties; + JArray< jint > * pixelCache; + ::java::awt::image::ImageProducer * source; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtImageConsumer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtImageDirectGraphics.h b/libjava/gnu/java/awt/peer/qt/QtImageDirectGraphics.h new file mode 100644 index 00000000000..d74e3244474 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtImageDirectGraphics.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtImageDirectGraphics__ +#define __gnu_java_awt_peer_qt_QtImageDirectGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtComponentPeer; + class QtImage; + class QtImageDirectGraphics; + class QtImageGraphics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Image; + class Shape; + namespace geom + { + class AffineTransform; + } + namespace image + { + class ImageObserver; + } + } + } +} + +class gnu::java::awt::peer::qt::QtImageDirectGraphics : public ::gnu::java::awt::peer::qt::QtImageGraphics +{ + +public: + QtImageDirectGraphics(::gnu::java::awt::peer::qt::QtImage *, ::gnu::java::awt::peer::qt::QtComponentPeer *); + QtImageDirectGraphics(::gnu::java::awt::peer::qt::QtImageGraphics *); +private: + void scheduleUpdate(); +public: + virtual void dispose(); + virtual void draw(::java::awt::Shape *); + virtual void fill(::java::awt::Shape *); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::lang::String *, jfloat, jfloat); + virtual void drawLine(jint, jint, jint, jint); + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); +private: + ::gnu::java::awt::peer::qt::QtComponentPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtImageGraphics)))) peer; + jboolean modified; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtImageDirectGraphics__ diff --git a/libjava/gnu/java/awt/peer/qt/QtImageGraphics.h b/libjava/gnu/java/awt/peer/qt/QtImageGraphics.h new file mode 100644 index 00000000000..e5adb79123d --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtImageGraphics.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtImageGraphics__ +#define __gnu_java_awt_peer_qt_QtImageGraphics__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtImageGraphics; + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class GraphicsConfiguration; + class Image; + } + } +} + +class gnu::java::awt::peer::qt::QtImageGraphics : public ::gnu::java::awt::peer::qt::QtGraphics +{ + +public: + QtImageGraphics(::java::awt::Image *); +public: // actually package-private + QtImageGraphics(::gnu::java::awt::peer::qt::QtImageGraphics *); +public: + virtual void dispose(); + virtual ::java::awt::Graphics * create(); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); +public: // actually package-private + ::java::awt::Image * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtGraphics)))) parentImage; + ::java::util::Stack * owners; + ::gnu::java::awt::peer::qt::QtImageGraphics * topParent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtImageGraphics__ diff --git a/libjava/gnu/java/awt/peer/qt/QtLabelPeer.h b/libjava/gnu/java/awt/peer/qt/QtLabelPeer.h new file mode 100644 index 00000000000..af81168b4ea --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtLabelPeer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtLabelPeer__ +#define __gnu_java_awt_peer_qt_QtLabelPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtLabelPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Label; + } + } +} + +class gnu::java::awt::peer::qt::QtLabelPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtLabelPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Label *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: + virtual void setAlignment(jint); + virtual void setText(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtLabelPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtListPeer.h b/libjava/gnu/java/awt/peer/qt/QtListPeer.h new file mode 100644 index 00000000000..0d4fbee97e4 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtListPeer.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtListPeer__ +#define __gnu_java_awt_peer_qt_QtListPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtListPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + class List; + } + } +} + +class gnu::java::awt::peer::qt::QtListPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtListPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::List *); + virtual void init(); +public: // actually protected + virtual void setup(); +private: + void fireChoice(jint); + void itemDoubleClicked(jint, jint); + void select(jint, jboolean); +public: + virtual void add(::java::lang::String *, jint); + virtual void addItem(::java::lang::String *, jint); + virtual void clear(); + virtual void delItems(jint, jint); + virtual void deselect(jint); + virtual JArray< jint > * getSelectedIndexes(); + virtual void makeVisible(jint); + virtual ::java::awt::Dimension * minimumSize(jint); + virtual ::java::awt::Dimension * preferredSize(jint); + virtual void removeAll(); + virtual void select(jint); + virtual void setMultipleMode(jboolean); + virtual void setMultipleSelections(jboolean); + virtual ::java::awt::Dimension * getPreferredSize(jint); + virtual ::java::awt::Dimension * getMinimumSize(jint); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtComponentPeer)))) ignoreNextSelect; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtListPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtMenuBarPeer.h b/libjava/gnu/java/awt/peer/qt/QtMenuBarPeer.h new file mode 100644 index 00000000000..57e6d546eec --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtMenuBarPeer.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtMenuBarPeer__ +#define __gnu_java_awt_peer_qt_QtMenuBarPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtMenuBarPeer; + class QtMenuPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Menu; + class MenuBar; + } + } +} + +class gnu::java::awt::peer::qt::QtMenuBarPeer : public ::gnu::java::awt::peer::qt::QtMenuComponentPeer +{ + +public: + QtMenuBarPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::MenuBar *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: // actually package-private + virtual void addMenus(); +private: + void addMenu(::gnu::java::awt::peer::qt::QtMenuPeer *); + void addHelpMenu(::gnu::java::awt::peer::qt::QtMenuPeer *); + void delMenu(::gnu::java::awt::peer::qt::QtMenuPeer *); +public: + virtual void addMenu(::java::awt::Menu *); + virtual void addHelpMenu(::java::awt::Menu *); + virtual void delMenu(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtMenuBarPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtMenuComponentPeer.h b/libjava/gnu/java/awt/peer/qt/QtMenuComponentPeer.h new file mode 100644 index 00000000000..3cab6458952 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtMenuComponentPeer.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtMenuComponentPeer__ +#define __gnu_java_awt_peer_qt_QtMenuComponentPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtMenuComponentPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class MenuComponent; + } + } +} + +class gnu::java::awt::peer::qt::QtMenuComponentPeer : public ::gnu::java::awt::peer::qt::NativeWrapper +{ + +public: + QtMenuComponentPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::MenuComponent *); +public: // actually protected + virtual void callInit(); + virtual void init(); + virtual void setup(); +public: + virtual void finalize(); + virtual void dispose(); + virtual void setFont(::java::awt::Font *); +public: // actually protected + ::gnu::java::awt::peer::qt::QtToolkit * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::NativeWrapper)))) toolkit; + ::java::awt::MenuComponent * owner; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtMenuComponentPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtMenuItemPeer.h b/libjava/gnu/java/awt/peer/qt/QtMenuItemPeer.h new file mode 100644 index 00000000000..10eee1aa20c --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtMenuItemPeer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtMenuItemPeer__ +#define __gnu_java_awt_peer_qt_QtMenuItemPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtMenuItemPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class MenuItem; + } + } +} + +class gnu::java::awt::peer::qt::QtMenuItemPeer : public ::gnu::java::awt::peer::qt::QtMenuComponentPeer +{ + +public: + QtMenuItemPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::MenuItem *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + void create(::java::lang::String *, jboolean, jboolean); +public: + virtual void finalize(); + virtual void dispose(); +private: + void fireClick(jint); +public: + virtual void disable(); + virtual void enable(); + virtual void setEnabled(jboolean); + virtual void setLabel(::java::lang::String *); + virtual void setState(jboolean); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtMenuItemPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtMenuPeer.h b/libjava/gnu/java/awt/peer/qt/QtMenuPeer.h new file mode 100644 index 00000000000..79341a4fe2b --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtMenuPeer.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtMenuPeer__ +#define __gnu_java_awt_peer_qt_QtMenuPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtMenuItemPeer; + class QtMenuPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Menu; + class MenuItem; + } + } +} + +class gnu::java::awt::peer::qt::QtMenuPeer : public ::gnu::java::awt::peer::qt::QtMenuComponentPeer +{ + +public: + QtMenuPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Menu *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: // actually package-private + virtual void addItems(); +private: + void fireClick(); + void allowTearOff(); + void insertSeperator(); + void insertItem(::gnu::java::awt::peer::qt::QtMenuItemPeer *); + void insertMenu(::gnu::java::awt::peer::qt::QtMenuPeer *); + void delItem(jlong); + void add(jlong); +public: + virtual void addItem(::java::awt::MenuItem *); + virtual void addSeparator(); + virtual void delItem(jint); + virtual void disable(); + virtual void enable(); + virtual void setEnabled(jboolean); + virtual void setLabel(::java::lang::String *); +public: // actually package-private + ::java::util::Vector * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtMenuComponentPeer)))) items; + jboolean itemsAdded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtMenuPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtPanelPeer.h b/libjava/gnu/java/awt/peer/qt/QtPanelPeer.h new file mode 100644 index 00000000000..c0031ef50da --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtPanelPeer.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtPanelPeer__ +#define __gnu_java_awt_peer_qt_QtPanelPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtPanelPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + } + } +} + +class gnu::java::awt::peer::qt::QtPanelPeer : public ::gnu::java::awt::peer::qt::QtContainerPeer +{ + +public: + QtPanelPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Component *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtPanelPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtPopupMenuPeer.h b/libjava/gnu/java/awt/peer/qt/QtPopupMenuPeer.h new file mode 100644 index 00000000000..3b78bc97737 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtPopupMenuPeer.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtPopupMenuPeer__ +#define __gnu_java_awt_peer_qt_QtPopupMenuPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtPopupMenuPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Event; + class PopupMenu; + } + } +} + +class gnu::java::awt::peer::qt::QtPopupMenuPeer : public ::gnu::java::awt::peer::qt::QtMenuPeer +{ + +public: + QtPopupMenuPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::PopupMenu *); +private: + void showNative(jint, jint); +public: + virtual void show(::java::awt::Component *, jint, jint); + virtual void show(::java::awt::Event *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtPopupMenuPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtRepaintThread$RepaintComponent.h b/libjava/gnu/java/awt/peer/qt/QtRepaintThread$RepaintComponent.h new file mode 100644 index 00000000000..9cc516cda3e --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtRepaintThread$RepaintComponent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtRepaintThread$RepaintComponent__ +#define __gnu_java_awt_peer_qt_QtRepaintThread$RepaintComponent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtComponentPeer; + class QtRepaintThread$RepaintComponent; + } + } + } + } + } +} + +class gnu::java::awt::peer::qt::QtRepaintThread$RepaintComponent : public ::java::lang::Object +{ + +public: + QtRepaintThread$RepaintComponent(::gnu::java::awt::peer::qt::QtComponentPeer *); + QtRepaintThread$RepaintComponent(::gnu::java::awt::peer::qt::QtComponentPeer *, jint, jint, jint, jint); + ::gnu::java::awt::peer::qt::QtComponentPeer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) curr; + ::gnu::java::awt::peer::qt::QtRepaintThread$RepaintComponent * next; + jboolean paintAll; + jint x; + jint y; + jint w; + jint h; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtRepaintThread$RepaintComponent__ diff --git a/libjava/gnu/java/awt/peer/qt/QtRepaintThread.h b/libjava/gnu/java/awt/peer/qt/QtRepaintThread.h new file mode 100644 index 00000000000..e9d714cb68d --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtRepaintThread.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtRepaintThread__ +#define __gnu_java_awt_peer_qt_QtRepaintThread__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtComponentPeer; + class QtRepaintThread; + class QtRepaintThread$RepaintComponent; + } + } + } + } + } +} + +class gnu::java::awt::peer::qt::QtRepaintThread : public ::java::lang::Thread +{ + +public: + QtRepaintThread(); + virtual void run(); + virtual void queueComponent(::gnu::java::awt::peer::qt::QtComponentPeer *); + virtual void queueComponent(::gnu::java::awt::peer::qt::QtComponentPeer *, jint, jint, jint, jint); +public: // actually package-private + ::gnu::java::awt::peer::qt::QtRepaintThread$RepaintComponent * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) component; + jboolean busy; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtRepaintThread__ diff --git a/libjava/gnu/java/awt/peer/qt/QtScreenDevice.h b/libjava/gnu/java/awt/peer/qt/QtScreenDevice.h new file mode 100644 index 00000000000..179fa09bf67 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtScreenDevice.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtScreenDevice__ +#define __gnu_java_awt_peer_qt_QtScreenDevice__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtScreenDevice; + class QtScreenDeviceConfiguration; + } + } + } + } + } + namespace java + { + namespace awt + { + class DisplayMode; + class GraphicsConfigTemplate; + class GraphicsConfiguration; + class Rectangle; + class Window; + } + } +} + +class gnu::java::awt::peer::qt::QtScreenDevice : public ::java::awt::GraphicsDevice +{ + +public: + QtScreenDevice(jint); + virtual void init(jint); + virtual void dispose(); +public: // actually package-private + virtual ::java::awt::Rectangle * getBounds(); + virtual jint getDpiX(); + virtual jint getDpiY(); + virtual jint depth(); +public: + virtual ::java::awt::GraphicsConfiguration * getBestConfiguration(::java::awt::GraphicsConfigTemplate *); + virtual JArray< ::java::awt::GraphicsConfiguration * > * getConfigurations(); + virtual ::java::awt::GraphicsConfiguration * getDefaultConfiguration(); + virtual ::java::lang::String * getIDstring(); + virtual jint getType(); + virtual jboolean isDisplayChangeSupported(); + virtual jboolean isFullScreenSupported(); + virtual void setDisplayMode(::java::awt::DisplayMode *); + virtual void setFullScreenWindow(::java::awt::Window *); +private: + jlong __attribute__((aligned(__alignof__( ::java::awt::GraphicsDevice)))) nativeObject; + jint id; + ::java::lang::String * IDstring; +public: // actually package-private + ::gnu::java::awt::peer::qt::QtScreenDeviceConfiguration * config; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtScreenDevice__ diff --git a/libjava/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.h b/libjava/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.h new file mode 100644 index 00000000000..f9ec9e028cf --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtScreenDeviceConfiguration__ +#define __gnu_java_awt_peer_qt_QtScreenDeviceConfiguration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtScreenDevice; + class QtScreenDeviceConfiguration; + } + } + } + } + } + namespace java + { + namespace awt + { + class GraphicsDevice; + class ImageCapabilities; + class Rectangle; + namespace geom + { + class AffineTransform; + } + namespace image + { + class BufferedImage; + class ColorModel; + class VolatileImage; + } + } + } +} + +class gnu::java::awt::peer::qt::QtScreenDeviceConfiguration : public ::java::awt::GraphicsConfiguration +{ + +public: + QtScreenDeviceConfiguration(::gnu::java::awt::peer::qt::QtScreenDevice *); + virtual ::java::awt::image::BufferedImage * createCompatibleImage(jint, jint); + virtual ::java::awt::image::BufferedImage * createCompatibleImage(jint, jint, jint); + virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint); + virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint, ::java::awt::ImageCapabilities *); + virtual ::java::awt::Rectangle * getBounds(); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::image::ColorModel * getColorModel(jint); + virtual ::java::awt::geom::AffineTransform * getDefaultTransform(); + virtual ::java::awt::GraphicsDevice * getDevice(); + virtual ::java::awt::geom::AffineTransform * getNormalizingTransform(); + virtual ::java::awt::image::VolatileImage * createCompatibleVolatileImage(jint, jint, jint); +private: + ::gnu::java::awt::peer::qt::QtScreenDevice * __attribute__((aligned(__alignof__( ::java::awt::GraphicsConfiguration)))) owner; + ::java::awt::Rectangle * bounds; + jdouble dpiX; + jdouble dpiY; + jint depth; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtScreenDeviceConfiguration__ diff --git a/libjava/gnu/java/awt/peer/qt/QtScrollPanePeer.h b/libjava/gnu/java/awt/peer/qt/QtScrollPanePeer.h new file mode 100644 index 00000000000..23877b3b51e --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtScrollPanePeer.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtScrollPanePeer__ +#define __gnu_java_awt_peer_qt_QtScrollPanePeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtScrollPanePeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Adjustable; + class Insets; + class ScrollPane; + } + } +} + +class gnu::java::awt::peer::qt::QtScrollPanePeer : public ::gnu::java::awt::peer::qt::QtContainerPeer +{ + +public: + QtScrollPanePeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::ScrollPane *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + void setPolicy(jint); +public: + virtual void childResized(jint, jint); + virtual jint getHScrollbarHeight(); + virtual jint getVScrollbarWidth(); + virtual void setScrollPosition(jint, jint); + virtual ::java::awt::Insets * getInsets(); + virtual void setUnitIncrement(::java::awt::Adjustable *, jint); + virtual void setValue(::java::awt::Adjustable *, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtScrollPanePeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtScrollbarPeer.h b/libjava/gnu/java/awt/peer/qt/QtScrollbarPeer.h new file mode 100644 index 00000000000..3e13597639f --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtScrollbarPeer.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtScrollbarPeer__ +#define __gnu_java_awt_peer_qt_QtScrollbarPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtScrollbarPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Scrollbar; + } + } +} + +class gnu::java::awt::peer::qt::QtScrollbarPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtScrollbarPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Scrollbar *); + virtual void init(); +public: // actually protected + virtual void setup(); +private: + void setOrientation(jint); + void fireMoved(jint, jint); +public: + virtual void setLineIncrement(jint); + virtual void setPageIncrement(jint); + virtual void setValues(jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtScrollbarPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtTextAreaPeer.h b/libjava/gnu/java/awt/peer/qt/QtTextAreaPeer.h new file mode 100644 index 00000000000..42ee905580e --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtTextAreaPeer.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtTextAreaPeer__ +#define __gnu_java_awt_peer_qt_QtTextAreaPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtTextAreaPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + class TextArea; + namespace im + { + class InputMethodRequests; + } + } + } +} + +class gnu::java::awt::peer::qt::QtTextAreaPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtTextAreaPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::TextArea *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + jint getSelection(jboolean); + void textChanged(); +public: + virtual jlong filterEvents(jlong); + virtual jint getCaretPosition(); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); + virtual jint getIndexAtPoint(jint, jint); + virtual ::java::awt::Dimension * getMinimumSize(jint, jint); + virtual ::java::awt::Dimension * getPreferredSize(jint, jint); + virtual jint getSelectionEnd(); + virtual jint getSelectionStart(); + virtual ::java::lang::String * getText(); + virtual void insert(::java::lang::String *, jint); + virtual void insertText(::java::lang::String *, jint); + virtual ::java::awt::Dimension * minimumSize(jint, jint); + virtual ::java::awt::Dimension * preferredSize(jint, jint); + virtual void replaceRange(::java::lang::String *, jint, jint); + virtual void replaceText(::java::lang::String *, jint, jint); + virtual void setText(::java::lang::String *); + virtual void select(jint, jint); + virtual void setEditable(jboolean); + virtual void setCaretPosition(jint); + virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtTextAreaPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtTextFieldPeer.h b/libjava/gnu/java/awt/peer/qt/QtTextFieldPeer.h new file mode 100644 index 00000000000..123d95bb220 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtTextFieldPeer.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtTextFieldPeer__ +#define __gnu_java_awt_peer_qt_QtTextFieldPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtTextFieldPeer; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + class TextField; + namespace im + { + class InputMethodRequests; + } + } + } +} + +class gnu::java::awt::peer::qt::QtTextFieldPeer : public ::gnu::java::awt::peer::qt::QtComponentPeer +{ + +public: + QtTextFieldPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::TextField *); +public: // actually protected + virtual void init(); + virtual void setup(); +private: + void textChanged(); + jint getSelection(jboolean); + ::java::awt::Dimension * getMinimumSizeNative(jint); + ::java::awt::Dimension * getPreferredSizeNative(jint); +public: + virtual jlong filterEvents(jlong); + virtual jint getCaretPosition(); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); + virtual jint getIndexAtPoint(jint, jint); + virtual ::java::awt::Dimension * getMinimumSize(jint); + virtual ::java::awt::Dimension * getPreferredSize(jint); + virtual jint getSelectionEnd(); + virtual jint getSelectionStart(); + virtual ::java::lang::String * getText(); + virtual ::java::awt::Dimension * minimumSize(jint); + virtual ::java::awt::Dimension * preferredSize(jint); + virtual void select(jint, jint); + virtual void setCaretPosition(jint); + virtual void setEchoCharacter(jchar); + virtual void setEchoChar(jchar); + virtual void setEditable(jboolean); + virtual void setText(::java::lang::String *); + virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtTextFieldPeer__ diff --git a/libjava/gnu/java/awt/peer/qt/QtToolkit.h b/libjava/gnu/java/awt/peer/qt/QtToolkit.h new file mode 100644 index 00000000000..471794be6c9 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtToolkit.h @@ -0,0 +1,203 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtToolkit__ +#define __gnu_java_awt_peer_qt_QtToolkit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + class EmbeddedWindow; + namespace peer + { + class ClasspathFontPeer; + class EmbeddedWindowPeer; + namespace qt + { + class MainQtThread; + class QtGraphicsEnvironment; + class QtRepaintThread; + class QtToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + class Canvas; + class Checkbox; + class CheckboxMenuItem; + class Choice; + class Dialog; + class Dimension; + class EventQueue; + class FileDialog; + class Font; + class FontMetrics; + class Frame; + class GraphicsDevice; + class GraphicsEnvironment; + class Image; + class Label; + class List; + class Menu; + class MenuBar; + class MenuItem; + class Panel; + class PopupMenu; + class PrintJob; + class ScrollPane; + class Scrollbar; + class TextArea; + class TextField; + class Window; + namespace datatransfer + { + class Clipboard; + } + namespace dnd + { + class DragGestureEvent; + namespace peer + { + class DragSourceContextPeer; + } + } + namespace event + { + class AWTEventListener; + } + 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 DialogPeer; + class FileDialogPeer; + class FontPeer; + class FramePeer; + class LabelPeer; + class ListPeer; + class MenuBarPeer; + class MenuItemPeer; + class MenuPeer; + class PanelPeer; + class PopupMenuPeer; + class RobotPeer; + class ScrollPanePeer; + class ScrollbarPeer; + class TextAreaPeer; + class TextFieldPeer; + class WindowPeer; + } + } + namespace net + { + class URL; + } + } +} + +class gnu::java::awt::peer::qt::QtToolkit : public ::gnu::java::awt::ClasspathToolkit +{ + + static void initToolkit(); +public: + QtToolkit(); +public: // actually package-private + virtual JArray< ::java::lang::String * > * nativeFontFamilies(); + virtual jint numScreens(); + virtual jint defaultScreen(); +public: + virtual void beep(); + virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); +public: // actually protected + virtual ::java::awt::peer::ButtonPeer * createButton(::java::awt::Button *); + virtual ::java::awt::peer::CanvasPeer * createCanvas(::java::awt::Canvas *); + virtual ::java::awt::peer::CheckboxPeer * createCheckbox(::java::awt::Checkbox *); + virtual ::java::awt::peer::ChoicePeer * createChoice(::java::awt::Choice *); + virtual ::java::awt::peer::CheckboxMenuItemPeer * createCheckboxMenuItem(::java::awt::CheckboxMenuItem *); +public: + virtual ::java::awt::dnd::peer::DragSourceContextPeer * createDragSourceContextPeer(::java::awt::dnd::DragGestureEvent *); +public: // actually protected + virtual ::java::awt::peer::FramePeer * createFrame(::java::awt::Frame *); + virtual ::java::awt::peer::FileDialogPeer * createFileDialog(::java::awt::FileDialog *); +public: + virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *); + virtual ::java::awt::Image * createImage(JArray< jbyte > *, jint, jint); + virtual ::java::awt::Image * createImage(::java::lang::String *); + virtual ::java::awt::Image * createImage(::java::net::URL *); +public: // actually protected + virtual ::java::awt::peer::TextFieldPeer * createTextField(::java::awt::TextField *); + virtual ::java::awt::peer::LabelPeer * createLabel(::java::awt::Label *); + virtual ::java::awt::peer::ListPeer * createList(::java::awt::List *); + virtual ::java::awt::peer::ScrollbarPeer * createScrollbar(::java::awt::Scrollbar *); + virtual ::java::awt::peer::ScrollPanePeer * createScrollPane(::java::awt::ScrollPane *); + virtual ::java::awt::peer::TextAreaPeer * createTextArea(::java::awt::TextArea *); + virtual ::java::awt::peer::PanelPeer * createPanel(::java::awt::Panel *); + virtual ::java::awt::peer::WindowPeer * createWindow(::java::awt::Window *); + virtual ::java::awt::peer::DialogPeer * createDialog(::java::awt::Dialog *); + virtual ::java::awt::peer::MenuBarPeer * createMenuBar(::java::awt::MenuBar *); + virtual ::java::awt::peer::MenuPeer * createMenu(::java::awt::Menu *); + virtual ::java::awt::peer::PopupMenuPeer * createPopupMenu(::java::awt::PopupMenu *); + virtual ::java::awt::peer::MenuItemPeer * createMenuItem(::java::awt::MenuItem *); +public: + virtual JArray< ::java::awt::event::AWTEventListener * > * getAWTEventListeners(); + virtual JArray< ::java::awt::event::AWTEventListener * > * getAWTEventListeners(jlong); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual JArray< ::java::lang::String * > * getFontList(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); +public: // actually protected + virtual ::java::awt::peer::FontPeer * getFontPeer(::java::lang::String *, jint); +public: + virtual ::java::awt::Image * getImage(::java::lang::String *); + virtual ::java::awt::Image * getImage(::java::net::URL *); + virtual ::java::awt::PrintJob * getPrintJob(::java::awt::Frame *, ::java::lang::String *, ::java::util::Properties *); + virtual ::java::awt::datatransfer::Clipboard * getSystemClipboard(); +public: // actually protected + virtual ::java::awt::EventQueue * getSystemEventQueueImpl(); +public: + virtual ::java::awt::Dimension * getScreenSize(); + virtual jint getScreenResolution(); + virtual ::java::util::Map * mapInputMethodHighlight(::java::awt::im::InputMethodHighlight *); + virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void sync(); + virtual ::java::awt::GraphicsEnvironment * getLocalGraphicsEnvironment(); + virtual ::gnu::java::awt::peer::ClasspathFontPeer * getClasspathFontPeer(::java::lang::String *, ::java::util::Map *); + virtual ::java::awt::Font * createFont(jint, ::java::io::InputStream *); + virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *); + virtual ::gnu::java::awt::peer::EmbeddedWindowPeer * createEmbeddedWindow(::gnu::java::awt::EmbeddedWindow *); + static ::java::awt::EventQueue * eventQueue; + static ::gnu::java::awt::peer::qt::QtRepaintThread * repaintThread; + static ::gnu::java::awt::peer::qt::MainQtThread * guiThread; + static ::gnu::java::awt::peer::qt::QtGraphicsEnvironment * graphicsEnv; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtToolkit__ diff --git a/libjava/gnu/java/awt/peer/qt/QtVolatileImage$1.h b/libjava/gnu/java/awt/peer/qt/QtVolatileImage$1.h new file mode 100644 index 00000000000..849b3b37fd4 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtVolatileImage$1.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtVolatileImage$1__ +#define __gnu_java_awt_peer_qt_QtVolatileImage$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtVolatileImage; + class QtVolatileImage$1; + } + } + } + } + } +} + +class gnu::java::awt::peer::qt::QtVolatileImage$1 : public ::java::awt::ImageCapabilities +{ + +public: // actually package-private + QtVolatileImage$1(::gnu::java::awt::peer::qt::QtVolatileImage *, jboolean); +public: + jboolean isTrueVolatile(); +public: // actually package-private + ::gnu::java::awt::peer::qt::QtVolatileImage * __attribute__((aligned(__alignof__( ::java::awt::ImageCapabilities)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtVolatileImage$1__ diff --git a/libjava/gnu/java/awt/peer/qt/QtVolatileImage.h b/libjava/gnu/java/awt/peer/qt/QtVolatileImage.h new file mode 100644 index 00000000000..4972e9faad6 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtVolatileImage.h @@ -0,0 +1,117 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtVolatileImage__ +#define __gnu_java_awt_peer_qt_QtVolatileImage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QMatrix; + class QtGraphics; + class QtImage; + class QtImageGraphics; + class QtVolatileImage; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Graphics; + class Graphics2D; + class GraphicsConfiguration; + class Image; + class ImageCapabilities; + namespace image + { + class BufferedImage; + class ColorModel; + class ImageObserver; + class ImageProducer; + } + } + } +} + +class gnu::java::awt::peer::qt::QtVolatileImage : public ::java::awt::image::VolatileImage +{ + +public: + virtual void clear(); +private: + JArray< jint > * getPixels(); + void createImage(); + void freeImage(); +public: + virtual void blit(::gnu::java::awt::peer::qt::QtImage *); + virtual void blit(::gnu::java::awt::peer::qt::QtImage *, jint, jint, jint, jint); +private: + void createScaledImage(::gnu::java::awt::peer::qt::QtVolatileImage *, jint); + void drawPixels(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, jint, jboolean); + void drawPixelsScaled(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, jint, jint, jint, jboolean); + void drawPixelsTransformed(::gnu::java::awt::peer::qt::QtGraphics *, ::gnu::java::awt::peer::qt::QMatrix *); +public: // actually package-private + virtual void drawPixelsScaledFlipped(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jboolean, jboolean, jint, jint, jint, jint, jint, jint, jint, jint, jboolean); +public: + QtVolatileImage(jint, jint); +private: + QtVolatileImage(::gnu::java::awt::peer::qt::QtVolatileImage *, jint, jint, jint); +public: + virtual void finalize(); + virtual void dispose(); + virtual jint getWidth(::java::awt::image::ImageObserver *); + virtual jint getHeight(::java::awt::image::ImageObserver *); + virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *); + virtual ::java::awt::image::ImageProducer * getSource(); +public: // actually package-private + virtual void putPainter(::gnu::java::awt::peer::qt::QtImageGraphics *); + virtual void removePainter(::gnu::java::awt::peer::qt::QtImageGraphics *); +public: + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Image * getScaledInstance(jint, jint, jint); + virtual void flush(); + virtual jint checkImage(::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, ::gnu::java::awt::peer::qt::QMatrix *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::gnu::java::awt::peer::qt::QtGraphics *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual jboolean contentsLost(); + virtual ::java::awt::Graphics2D * createGraphics(); + virtual ::java::awt::ImageCapabilities * getCapabilities(); + virtual jint getHeight(); + virtual ::java::awt::image::BufferedImage * getSnapshot(); + virtual jint getWidth(); + virtual jint validate(::java::awt::GraphicsConfiguration *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::awt::image::VolatileImage)))) width; + jint height; + ::java::util::Hashtable * props; + jlong nativeObject; + static ::java::awt::image::ColorModel * nativeModel; + ::java::util::WeakHashMap * painters; + jboolean killFlag; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtVolatileImage__ diff --git a/libjava/gnu/java/awt/peer/qt/QtWindowPeer.h b/libjava/gnu/java/awt/peer/qt/QtWindowPeer.h new file mode 100644 index 00000000000..e451e3c6027 --- /dev/null +++ b/libjava/gnu/java/awt/peer/qt/QtWindowPeer.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_qt_QtWindowPeer__ +#define __gnu_java_awt_peer_qt_QtWindowPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace qt + { + class QtToolkit; + class QtWindowPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + } + } +} + +class gnu::java::awt::peer::qt::QtWindowPeer : public ::gnu::java::awt::peer::qt::QtContainerPeer +{ + +public: + QtWindowPeer(::gnu::java::awt::peer::qt::QtToolkit *, ::java::awt::Component *); +public: // actually protected + virtual void init(); + virtual void setup(); +public: + virtual void toBack(); + virtual void toFront(); + virtual void setTitle(::java::lang::String *); + virtual void updateAlwaysOnTop(); + virtual jboolean requestWindowFocus(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_qt_QtWindowPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h new file mode 100644 index 00000000000..1bc372511eb --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingButtonPeer$SwingButton__ +#define __gnu_java_awt_peer_swing_SwingButtonPeer$SwingButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingButtonPeer; + class SwingButtonPeer$SwingButton; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + class Container; + class Graphics; + class Image; + class Point; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + } + } +} + +class gnu::java::awt::peer::swing::SwingButtonPeer$SwingButton : public ::javax::swing::JButton +{ + +public: // actually package-private + SwingButtonPeer$SwingButton(::gnu::java::awt::peer::swing::SwingButtonPeer *, ::java::awt::Button *); +public: + virtual ::java::awt::Point * getLocationOnScreen(); + virtual jboolean isShowing(); + virtual ::java::awt::Image * createImage(jint, jint); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::javax::swing::JComponent * getJComponent(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); + virtual void handleKeyEvent(::java::awt::event::KeyEvent *); + virtual ::java::awt::Container * getParent(); +public: // actually package-private + ::java::awt::Button * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) button; + ::gnu::java::awt::peer::swing::SwingButtonPeer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingButtonPeer$SwingButton__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.h b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.h new file mode 100644 index 00000000000..c6a6f9a0f13 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingButtonPeer$SwingButtonListener__ +#define __gnu_java_awt_peer_swing_SwingButtonPeer$SwingButtonListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingButtonPeer; + class SwingButtonPeer$SwingButtonListener; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingButtonPeer$SwingButtonListener : public ::java::lang::Object +{ + +public: // actually package-private + SwingButtonPeer$SwingButtonListener(::gnu::java::awt::peer::swing::SwingButtonPeer *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::java::awt::peer::swing::SwingButtonPeer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingButtonPeer$SwingButtonListener__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingButtonPeer.h b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer.h new file mode 100644 index 00000000000..cca199f8944 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingButtonPeer__ +#define __gnu_java_awt_peer_swing_SwingButtonPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingButtonPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + } + } +} + +class gnu::java::awt::peer::swing::SwingButtonPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer +{ + +public: + SwingButtonPeer(::java::awt::Button *); + virtual void setLabel(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingButtonPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingCanvasPeer.h b/libjava/gnu/java/awt/peer/swing/SwingCanvasPeer.h new file mode 100644 index 00000000000..1fd853bb820 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingCanvasPeer.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingCanvasPeer__ +#define __gnu_java_awt_peer_swing_SwingCanvasPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingCanvasPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Canvas; + } + } +} + +class gnu::java::awt::peer::swing::SwingCanvasPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer +{ + +public: + SwingCanvasPeer(::java::awt::Canvas *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingCanvasPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingComponent.h b/libjava/gnu/java/awt/peer/swing/SwingComponent.h new file mode 100644 index 00000000000..b9777c2b13f --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingComponent.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingComponent__ +#define __gnu_java_awt_peer_swing_SwingComponent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingComponent; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + } + } +} + +class gnu::java::awt::peer::swing::SwingComponent : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::JComponent * getJComponent() = 0; + virtual void handleMouseEvent(::java::awt::event::MouseEvent *) = 0; + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *) = 0; + virtual void handleKeyEvent(::java::awt::event::KeyEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_awt_peer_swing_SwingComponent__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h b/libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h new file mode 100644 index 00000000000..af2d715d6b6 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h @@ -0,0 +1,146 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingComponentPeer__ +#define __gnu_java_awt_peer_swing_SwingComponentPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingComponent; + class SwingComponentPeer; + } + } + } + } + } + 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 KeyEvent; + class MouseEvent; + class PaintEvent; + } + namespace image + { + class ColorModel; + class ImageObserver; + class ImageProducer; + class VolatileImage; + } + namespace peer + { + class ContainerPeer; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingComponentPeer : public ::java::lang::Object +{ + +public: // actually protected + SwingComponentPeer(); + virtual void init(::java::awt::Component *, ::gnu::java::awt::peer::swing::SwingComponent *); +public: + virtual jint checkImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual ::java::awt::Image * createImage(::java::awt::image::ImageProducer *); + virtual ::java::awt::Image * createImage(jint, jint); + virtual void disable(); + virtual void dispose(); + virtual void enable(); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Point * getLocationOnScreen(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Toolkit * getToolkit(); + virtual void handleEvent(::java::awt::AWTEvent *); + virtual void hide(); + virtual jboolean isFocusTraversable(); + virtual jboolean isFocusable(); + virtual ::java::awt::Dimension * minimumSize(); + virtual ::java::awt::Dimension * preferredSize(); + virtual void paint(::java::awt::Graphics *); + virtual jboolean prepareImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual void print(::java::awt::Graphics *); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void requestFocus(); + virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong); + virtual void reshape(jint, jint, jint, jint); + virtual void setBackground(::java::awt::Color *); + virtual void setBounds(jint, jint, jint, jint); + virtual void setCursor(::java::awt::Cursor *); + virtual void setEnabled(jboolean); + virtual void setFont(::java::awt::Font *); + virtual void setForeground(::java::awt::Color *); + virtual void setVisible(jboolean); + virtual void show(); + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfiguration(); + virtual void setEventMask(jlong); + virtual jboolean isObscured(); + virtual jboolean canDetermineObscurity(); + virtual void coalescePaintEvent(::java::awt::event::PaintEvent *); + virtual void updateCursorImmediately(); + virtual jboolean handlesWheelScrolling(); + virtual ::java::awt::image::VolatileImage * createVolatileImage(jint, jint); + virtual void createBuffers(jint, ::java::awt::BufferCapabilities *); + virtual ::java::awt::Image * getBackBuffer(); + virtual void flip(::java::awt::BufferCapabilities$FlipContents *); + virtual void destroyBuffers(); + virtual ::java::awt::Rectangle * getBounds(); + virtual void reparent(::java::awt::peer::ContainerPeer *); + virtual void setBounds(jint, jint, jint, jint, jint); + virtual jboolean isReparentSupported(); + virtual void layout(); +public: // actually protected + virtual void peerPaint(::java::awt::Graphics *, jboolean); + virtual void peerPaintComponent(::java::awt::Graphics *); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); + virtual void handleKeyEvent(::java::awt::event::KeyEvent *); +public: + virtual ::java::awt::Component * getComponent(); +public: // actually protected + ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtComponent; + ::gnu::java::awt::peer::swing::SwingComponent * swingComponent; + ::java::awt::Font * peerFont; + ::java::awt::Rectangle * paintArea; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingComponentPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h b/libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h new file mode 100644 index 00000000000..40d783975bb --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingContainerPeer__ +#define __gnu_java_awt_peer_swing_SwingContainerPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingContainerPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Container; + class Graphics; + class Image; + class Insets; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingContainerPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer +{ + +public: + SwingContainerPeer(::java::awt::Container *); +public: // actually package-private + virtual void addHeavyweightDescendent(::java::awt::Component *); + virtual void removeHeavyweightDescendent(::java::awt::Component *); +public: + virtual ::java::awt::Insets * insets(); + virtual ::java::awt::Insets * getInsets(); + virtual void beginValidate(); + virtual void endValidate(); + virtual void beginLayout(); + virtual void endLayout(); + virtual jboolean isPaintPending(); + virtual jboolean isRestackSupported(); + virtual void cancelPendingPaint(jint, jint, jint, jint); + virtual void restack(); +public: // actually protected + virtual void peerPaint(::java::awt::Graphics *, jboolean); +private: + jboolean isDoubleBuffering(); +public: // actually protected + virtual void peerPaintChildren(::java::awt::Graphics *); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); + virtual void handleKeyEvent(::java::awt::event::KeyEvent *); +private: + ::java::awt::Component * getFocusOwner(); + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingComponentPeer)))) heavyweightDescendents; + ::java::awt::Image * backbuffer; + ::java::awt::Component * focusOwner; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingContainerPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingFramePeer.h b/libjava/gnu/java/awt/peer/swing/SwingFramePeer.h new file mode 100644 index 00000000000..2822fccb36f --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingFramePeer.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingFramePeer__ +#define __gnu_java_awt_peer_swing_SwingFramePeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingFramePeer; + class SwingMenuBarPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Frame; + class Graphics; + class Image; + class Insets; + class MenuBar; + class Point; + class Rectangle; + namespace event + { + class MouseEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingFramePeer : public ::gnu::java::awt::peer::swing::SwingWindowPeer +{ + +public: + SwingFramePeer(::java::awt::Frame *); + virtual void setMenuBar(::java::awt::MenuBar *); +public: // actually protected + virtual void peerPaintComponent(::java::awt::Graphics *); +public: + virtual void setBounds(jint, jint, jint, jint); + virtual ::java::awt::Insets * getInsets(); + virtual ::java::awt::Point * getMenuLocationOnScreen(); +public: // actually protected + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); +public: + virtual void setIconImage(::java::awt::Image *) = 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 void setBoundsPrivate(jint, jint, jint, jint) = 0; +public: // actually package-private + ::gnu::java::awt::peer::swing::SwingMenuBarPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingWindowPeer)))) menuBar; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingFramePeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h b/libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h new file mode 100644 index 00000000000..bc9eb617f78 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingLabelPeer$SwingLabel__ +#define __gnu_java_awt_peer_swing_SwingLabelPeer$SwingLabel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingLabelPeer; + class SwingLabelPeer$SwingLabel; + } + } + } + } + } + namespace java + { + namespace awt + { + class Container; + class Graphics; + class Image; + class Label; + class Point; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + } + } +} + +class gnu::java::awt::peer::swing::SwingLabelPeer$SwingLabel : public ::javax::swing::JLabel +{ + +public: // actually package-private + SwingLabelPeer$SwingLabel(::gnu::java::awt::peer::swing::SwingLabelPeer *, ::java::awt::Label *); +public: + virtual ::javax::swing::JComponent * getJComponent(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); + virtual void handleKeyEvent(::java::awt::event::KeyEvent *); + virtual ::java::awt::Point * getLocationOnScreen(); + virtual jboolean isShowing(); + virtual ::java::awt::Image * createImage(jint, jint); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Container * getParent(); +public: // actually package-private + ::java::awt::Label * __attribute__((aligned(__alignof__( ::javax::swing::JLabel)))) label; + ::gnu::java::awt::peer::swing::SwingLabelPeer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingLabelPeer$SwingLabel__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingLabelPeer.h b/libjava/gnu/java/awt/peer/swing/SwingLabelPeer.h new file mode 100644 index 00000000000..a400853f722 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingLabelPeer.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingLabelPeer__ +#define __gnu_java_awt_peer_swing_SwingLabelPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingLabelPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Label; + } + } +} + +class gnu::java::awt::peer::swing::SwingLabelPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer +{ + +public: + SwingLabelPeer(::java::awt::Label *); + virtual void setText(::java::lang::String *); + virtual void setAlignment(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingLabelPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h b/libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h new file mode 100644 index 00000000000..507e1e942b9 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingListPeer$SwingList__ +#define __gnu_java_awt_peer_swing_SwingListPeer$SwingList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingListPeer; + class SwingListPeer$SwingList; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Container; + class Graphics; + class Image; + class Point; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + } + } +} + +class gnu::java::awt::peer::swing::SwingListPeer$SwingList : public ::javax::swing::JScrollPane +{ + +public: // actually package-private + SwingListPeer$SwingList(::gnu::java::awt::peer::swing::SwingListPeer *, ::java::awt::Component *); +public: + virtual ::javax::swing::JComponent * getJComponent(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual jboolean isLightweight(); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); + virtual void handleKeyEvent(::java::awt::event::KeyEvent *); + virtual ::java::awt::Point * getLocationOnScreen(); + virtual jboolean isShowing(); + virtual ::java::awt::Image * createImage(jint, jint); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Container * getParent(); +public: // actually package-private + ::gnu::java::awt::peer::swing::SwingListPeer * __attribute__((aligned(__alignof__( ::javax::swing::JScrollPane)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingListPeer$SwingList__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingListPeer.h b/libjava/gnu/java/awt/peer/swing/SwingListPeer.h new file mode 100644 index 00000000000..fa6fde62453 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingListPeer.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingListPeer__ +#define __gnu_java_awt_peer_swing_SwingListPeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingListPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class List; + } + } + namespace javax + { + namespace swing + { + class DefaultListModel; + class JList; + } + } +} + +class gnu::java::awt::peer::swing::SwingListPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer +{ + +public: + SwingListPeer(::java::awt::List *); + virtual void add(::java::lang::String *, jint); + virtual void addItem(::java::lang::String *, jint); + virtual void clear(); + virtual void delItems(jint, jint); + virtual void deselect(jint); + virtual ::java::awt::Dimension * getMinimumSize(jint); + virtual ::java::awt::Dimension * getPreferredSize(jint); + virtual JArray< jint > * getSelectedIndexes(); + virtual void makeVisible(jint); + virtual ::java::awt::Dimension * minimumSize(jint); + virtual ::java::awt::Dimension * preferredSize(jint); + virtual void removeAll(); + virtual void select(jint); + virtual void setMultipleMode(jboolean); + virtual void setMultipleSelections(jboolean); + virtual void reshape(jint, jint, jint, jint); +public: // actually protected + virtual void peerPaint(::java::awt::Graphics *, jboolean); +private: + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingComponentPeer)))) jList; + ::javax::swing::DefaultListModel * listModel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingListPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.h b/libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.h new file mode 100644 index 00000000000..4ab74e8a19c --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer$SwingMenuBar.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingMenuBarPeer$SwingMenuBar__ +#define __gnu_java_awt_peer_swing_SwingMenuBarPeer$SwingMenuBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingMenuBarPeer; + class SwingMenuBarPeer$SwingMenuBar; + } + } + } + } + } + namespace java + { + namespace awt + { + class Container; + class Point; + namespace event + { + class MouseEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingMenuBarPeer$SwingMenuBar : public ::javax::swing::JMenuBar +{ + + SwingMenuBarPeer$SwingMenuBar(::gnu::java::awt::peer::swing::SwingMenuBarPeer *); +public: + virtual ::java::awt::Container * getParent(); + virtual jboolean isShowing(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual ::java::awt::Point * getLocationOnScreen(); +public: // actually package-private + SwingMenuBarPeer$SwingMenuBar(::gnu::java::awt::peer::swing::SwingMenuBarPeer *, ::gnu::java::awt::peer::swing::SwingMenuBarPeer$SwingMenuBar *); + ::gnu::java::awt::peer::swing::SwingMenuBarPeer * __attribute__((aligned(__alignof__( ::javax::swing::JMenuBar)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingMenuBarPeer$SwingMenuBar__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer.h b/libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer.h new file mode 100644 index 00000000000..35794766916 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingMenuBarPeer.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingMenuBarPeer__ +#define __gnu_java_awt_peer_swing_SwingMenuBarPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingFramePeer; + class SwingMenuBarPeer; + class SwingMenuBarPeer$SwingMenuBar; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Graphics; + class Menu; + class MenuBar; + namespace event + { + class MouseEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingMenuBarPeer : public ::java::lang::Object +{ + +public: + SwingMenuBarPeer(::java::awt::MenuBar *); + virtual void setFramePeer(::gnu::java::awt::peer::swing::SwingFramePeer *); + virtual void addMenu(::java::awt::Menu *); + virtual void addHelpMenu(::java::awt::Menu *); + virtual void delMenu(jint); + virtual void dispose(); + virtual void setFont(::java::awt::Font *); + virtual void setWidth(jint); + virtual void peerPaint(::java::awt::Graphics *); + virtual jint getHeight(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); +public: // actually package-private + ::java::awt::MenuBar * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtMenuBar; + ::gnu::java::awt::peer::swing::SwingMenuBarPeer$SwingMenuBar * menuBar; + ::gnu::java::awt::peer::swing::SwingFramePeer * framePeer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingMenuBarPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer$SwingMenuItemListener.h b/libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer$SwingMenuItemListener.h new file mode 100644 index 00000000000..1aa993ba706 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer$SwingMenuItemListener.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingMenuItemPeer$SwingMenuItemListener__ +#define __gnu_java_awt_peer_swing_SwingMenuItemPeer$SwingMenuItemListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingMenuItemPeer; + class SwingMenuItemPeer$SwingMenuItemListener; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingMenuItemPeer$SwingMenuItemListener : public ::java::lang::Object +{ + + SwingMenuItemPeer$SwingMenuItemListener(::gnu::java::awt::peer::swing::SwingMenuItemPeer *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + SwingMenuItemPeer$SwingMenuItemListener(::gnu::java::awt::peer::swing::SwingMenuItemPeer *, ::gnu::java::awt::peer::swing::SwingMenuItemPeer$SwingMenuItemListener *); + ::gnu::java::awt::peer::swing::SwingMenuItemPeer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingMenuItemPeer$SwingMenuItemListener__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer.h b/libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer.h new file mode 100644 index 00000000000..f79e2d27fcf --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingMenuItemPeer.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingMenuItemPeer__ +#define __gnu_java_awt_peer_swing_SwingMenuItemPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingMenuItemPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class MenuItem; + } + } + namespace javax + { + namespace swing + { + class JMenuItem; + } + } +} + +class gnu::java::awt::peer::swing::SwingMenuItemPeer : public ::java::lang::Object +{ + +public: + SwingMenuItemPeer(::java::awt::MenuItem *); + virtual void disable(); + virtual void enable(); + virtual void setEnabled(jboolean); + virtual void setLabel(::java::lang::String *); + virtual void dispose(); + virtual void setFont(::java::awt::Font *); +public: // actually package-private + ::java::awt::MenuItem * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtMenuItem; + ::javax::swing::JMenuItem * menuItem; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingMenuItemPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingMenuPeer$SwingMenu.h b/libjava/gnu/java/awt/peer/swing/SwingMenuPeer$SwingMenu.h new file mode 100644 index 00000000000..1de2beecc1c --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingMenuPeer$SwingMenu.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingMenuPeer$SwingMenu__ +#define __gnu_java_awt_peer_swing_SwingMenuPeer$SwingMenu__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingMenuPeer; + class SwingMenuPeer$SwingMenu; + } + } + } + } + } + namespace java + { + namespace awt + { + class Point; + namespace event + { + class MouseEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingMenuPeer$SwingMenu : public ::javax::swing::JMenu +{ + + SwingMenuPeer$SwingMenu(::gnu::java::awt::peer::swing::SwingMenuPeer *); +public: + virtual jboolean isShowing(); + virtual ::java::awt::Point * getLocationOnScreen(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); +public: // actually package-private + SwingMenuPeer$SwingMenu(::gnu::java::awt::peer::swing::SwingMenuPeer *, ::gnu::java::awt::peer::swing::SwingMenuPeer$SwingMenu *); + ::gnu::java::awt::peer::swing::SwingMenuPeer * __attribute__((aligned(__alignof__( ::javax::swing::JMenu)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingMenuPeer$SwingMenu__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingMenuPeer.h b/libjava/gnu/java/awt/peer/swing/SwingMenuPeer.h new file mode 100644 index 00000000000..988b481392c --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingMenuPeer.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingMenuPeer__ +#define __gnu_java_awt_peer_swing_SwingMenuPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingMenuPeer; + class SwingMenuPeer$SwingMenu; + } + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class Menu; + class MenuItem; + namespace event + { + class MouseEvent; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingMenuPeer : public ::java::lang::Object +{ + +public: + SwingMenuPeer(::java::awt::Menu *); + virtual void addItem(::java::awt::MenuItem *); + virtual void addSeparator(); + virtual void delItem(jint); + virtual void disable(); + virtual void enable(); + virtual void setEnabled(jboolean); + virtual void setLabel(::java::lang::String *); + virtual void dispose(); + virtual void setFont(::java::awt::Font *); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual jint getX(); + virtual jint getWidth(); +public: + virtual jint getY(); +public: // actually package-private + ::java::awt::Menu * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtMenu; + ::gnu::java::awt::peer::swing::SwingMenuPeer$SwingMenu * menu; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingMenuPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingPanelPeer.h b/libjava/gnu/java/awt/peer/swing/SwingPanelPeer.h new file mode 100644 index 00000000000..3b9f61b8a94 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingPanelPeer.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingPanelPeer__ +#define __gnu_java_awt_peer_swing_SwingPanelPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingPanelPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Panel; + } + } +} + +class gnu::java::awt::peer::swing::SwingPanelPeer : public ::gnu::java::awt::peer::swing::SwingContainerPeer +{ + +public: + SwingPanelPeer(::java::awt::Panel *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingPanelPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h new file mode 100644 index 00000000000..6b283b69ef0 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingTextArea__ +#define __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingTextArea__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingTextAreaPeer; + class SwingTextAreaPeer$SwingTextArea; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Container; + class Graphics; + class Image; + class Point; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + } + } +} + +class gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea : public ::javax::swing::JScrollPane +{ + +public: // actually package-private + SwingTextAreaPeer$SwingTextArea(::gnu::java::awt::peer::swing::SwingTextAreaPeer *, ::java::awt::Component *); +public: + virtual ::javax::swing::JComponent * getJComponent(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual jboolean isLightweight(); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); + virtual void handleKeyEvent(::java::awt::event::KeyEvent *); + virtual ::java::awt::Point * getLocationOnScreen(); + virtual jboolean isShowing(); + virtual ::java::awt::Image * createImage(jint, jint); + virtual ::java::awt::Graphics * getGraphics(); + virtual ::java::awt::Container * getParent(); +public: // actually package-private + ::gnu::java::awt::peer::swing::SwingTextAreaPeer * __attribute__((aligned(__alignof__( ::javax::swing::JScrollPane)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingTextArea__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h new file mode 100644 index 00000000000..a9d4b8f60f8 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingTextAreaPeer__ +#define __gnu_java_awt_peer_swing_SwingTextAreaPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingTextAreaPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + class TextArea; + namespace im + { + class InputMethodRequests; + } + } + } + namespace javax + { + namespace swing + { + class JTextArea; + } + } +} + +class gnu::java::awt::peer::swing::SwingTextAreaPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer +{ + +public: + SwingTextAreaPeer(::java::awt::TextArea *); + virtual ::java::awt::Dimension * getMinimumSize(jint, jint); + virtual ::java::awt::Dimension * getPreferredSize(jint, jint); + virtual void insert(::java::lang::String *, jint); + virtual void insertText(::java::lang::String *, jint); + virtual ::java::awt::Dimension * minimumSize(jint, jint); + virtual ::java::awt::Dimension * preferredSize(jint, jint); + virtual void replaceRange(::java::lang::String *, jint, jint); + virtual void replaceText(::java::lang::String *, jint, jint); + virtual jlong filterEvents(jlong); + virtual jint getCaretPosition(); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); + virtual jint getIndexAtPoint(jint, jint); + virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests(); + virtual jint getSelectionEnd(); + virtual jint getSelectionStart(); + virtual ::java::lang::String * getText(); + virtual void select(jint, jint); + virtual void setCaretPosition(jint); + virtual void setEditable(jboolean); + virtual void setText(::java::lang::String *); +private: + ::javax::swing::JTextArea * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingComponentPeer)))) jTextArea; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingTextAreaPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h b/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h new file mode 100644 index 00000000000..08ac1387f7f --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingTextFieldPeer$SwingTextField__ +#define __gnu_java_awt_peer_swing_SwingTextFieldPeer$SwingTextField__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingTextFieldPeer; + class SwingTextFieldPeer$SwingTextField; + } + } + } + } + } + namespace java + { + namespace awt + { + class Container; + class Graphics; + class Image; + class Point; + class TextField; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + } + } +} + +class gnu::java::awt::peer::swing::SwingTextFieldPeer$SwingTextField : public ::javax::swing::JTextField +{ + +public: // actually package-private + SwingTextFieldPeer$SwingTextField(::gnu::java::awt::peer::swing::SwingTextFieldPeer *, ::java::awt::TextField *); +public: + virtual ::java::awt::Point * getLocationOnScreen(); + virtual jboolean isShowing(); + virtual ::java::awt::Image * createImage(jint, jint); + virtual ::javax::swing::JComponent * getJComponent(); + virtual void handleMouseEvent(::java::awt::event::MouseEvent *); + virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *); + virtual void handleKeyEvent(::java::awt::event::KeyEvent *); + virtual ::java::awt::Container * getParent(); + virtual ::java::awt::Graphics * getGraphics(); +public: // actually package-private + ::java::awt::TextField * __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) textField; + ::gnu::java::awt::peer::swing::SwingTextFieldPeer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingTextFieldPeer$SwingTextField__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer.h b/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer.h new file mode 100644 index 00000000000..43d26d5b3a2 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingTextFieldPeer__ +#define __gnu_java_awt_peer_swing_SwingTextFieldPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingTextFieldPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + class TextField; + namespace im + { + class InputMethodRequests; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingTextFieldPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer +{ + +public: + SwingTextFieldPeer(::java::awt::TextField *); + virtual ::java::awt::Dimension * minimumSize(jint); + virtual ::java::awt::Dimension * preferredSize(jint); + virtual ::java::awt::Dimension * getMinimumSize(jint); + virtual ::java::awt::Dimension * getPreferredSize(jint); + virtual void setEchoChar(jchar); + virtual void setEchoCharacter(jchar); + virtual jint getSelectionEnd(); + virtual jint getSelectionStart(); + virtual ::java::lang::String * getText(); + virtual void setText(::java::lang::String *); + virtual void select(jint, jint); + virtual void setEditable(jboolean); + virtual jint getCaretPosition(); + virtual void setCaretPosition(jint); + virtual jint getIndexAtPoint(jint, jint); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); + virtual jlong filterEvents(jlong); + virtual ::java::awt::im::InputMethodRequests * getInputMethodRequests(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingTextFieldPeer__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingToolkit.h b/libjava/gnu/java/awt/peer/swing/SwingToolkit.h new file mode 100644 index 00000000000..c84bfe992c5 --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingToolkit.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingToolkit__ +#define __gnu_java_awt_peer_swing_SwingToolkit__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingToolkit; + } + } + } + } + } + namespace java + { + namespace awt + { + class Button; + class Canvas; + class Label; + class Menu; + class MenuBar; + class MenuItem; + class Panel; + class TextField; + namespace peer + { + class ButtonPeer; + class CanvasPeer; + class LabelPeer; + class MenuBarPeer; + class MenuItemPeer; + class MenuPeer; + class PanelPeer; + class TextFieldPeer; + } + } + } +} + +class gnu::java::awt::peer::swing::SwingToolkit : public ::gnu::java::awt::ClasspathToolkit +{ + +public: + SwingToolkit(); +public: // actually protected + virtual ::java::awt::peer::ButtonPeer * createButton(::java::awt::Button *); + virtual ::java::awt::peer::CanvasPeer * createCanvas(::java::awt::Canvas *); + virtual ::java::awt::peer::LabelPeer * createLabel(::java::awt::Label *); + virtual ::java::awt::peer::MenuPeer * createMenu(::java::awt::Menu *); + virtual ::java::awt::peer::MenuBarPeer * createMenuBar(::java::awt::MenuBar *); + virtual ::java::awt::peer::MenuItemPeer * createMenuItem(::java::awt::MenuItem *); + virtual ::java::awt::peer::PanelPeer * createPanel(::java::awt::Panel *); + virtual ::java::awt::peer::TextFieldPeer * createTextField(::java::awt::TextField *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingToolkit__ diff --git a/libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h b/libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h new file mode 100644 index 00000000000..ce4e987158b --- /dev/null +++ b/libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_peer_swing_SwingWindowPeer__ +#define __gnu_java_awt_peer_swing_SwingWindowPeer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace peer + { + namespace swing + { + class SwingWindowPeer; + } + } + } + } + } + namespace java + { + namespace awt + { + class Window; + } + } +} + +class gnu::java::awt::peer::swing::SwingWindowPeer : public ::gnu::java::awt::peer::swing::SwingContainerPeer +{ + +public: + SwingWindowPeer(::java::awt::Window *); + virtual void toBack() = 0; + virtual void toFront() = 0; + virtual void updateAlwaysOnTop() = 0; + virtual jboolean requestWindowFocus() = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_peer_swing_SwingWindowPeer__ diff --git a/libjava/gnu/java/awt/print/JavaPrinterGraphics.h b/libjava/gnu/java/awt/print/JavaPrinterGraphics.h new file mode 100644 index 00000000000..7809034719b --- /dev/null +++ b/libjava/gnu/java/awt/print/JavaPrinterGraphics.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_print_JavaPrinterGraphics__ +#define __gnu_java_awt_print_JavaPrinterGraphics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace print + { + class JavaPrinterGraphics; + class SpooledDocument; + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Font; + class FontMetrics; + class Graphics; + class Image; + class Rectangle; + class Shape; + namespace geom + { + class AffineTransform; + } + namespace image + { + class ImageObserver; + } + namespace print + { + class PageFormat; + class Pageable; + class Printable; + class PrinterJob; + } + } + namespace text + { + class AttributedCharacterIterator; + } + } +} + +class gnu::java::awt::print::JavaPrinterGraphics : public ::java::awt::Graphics +{ + +public: + JavaPrinterGraphics(::java::awt::print::PrinterJob *); + virtual ::gnu::java::awt::print::SpooledDocument * spoolPostScript(::java::awt::print::Printable *, ::java::awt::print::PageFormat *, ::java::awt::print::Pageable *); + virtual jint spoolPage(::java::io::PrintWriter *, ::java::awt::print::Printable *, ::java::awt::print::PageFormat *, jint); +private: + void initImage(::java::awt::print::PageFormat *); + void writePSHeader(::java::io::PrintWriter *); + void writePage(::java::io::PrintWriter *, ::java::awt::print::PageFormat *); + ::java::lang::String * colorTripleHex(jint); + void concatCTM(::java::io::PrintWriter *, ::java::awt::geom::AffineTransform *); +public: + virtual ::java::awt::print::PrinterJob * getPrinterJob(); + virtual void clearRect(jint, jint, jint, jint); + virtual void clipRect(jint, jint, jint, jint); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual ::java::awt::Graphics * create(); + virtual void dispose(); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual void drawLine(jint, jint, jint, jint); + virtual void drawOval(jint, jint, jint, jint); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual ::java::awt::Shape * getClip(); + virtual ::java::awt::Rectangle * getClipBounds(); + virtual ::java::awt::Color * getColor(); + virtual ::java::awt::Font * getFont(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual void setClip(jint, jint, jint, jint); + virtual void setClip(::java::awt::Shape *); + virtual void setColor(::java::awt::Color *); + virtual void setFont(::java::awt::Font *); + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual void translate(jint, jint); +private: + ::java::awt::Graphics * __attribute__((aligned(__alignof__( ::java::awt::Graphics)))) g; + ::java::awt::print::PrinterJob * printerJob; + static jdouble DPI; + jint xSize; + jint ySize; + ::java::awt::Image * image; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_print_JavaPrinterGraphics__ diff --git a/libjava/gnu/java/awt/print/JavaPrinterJob.h b/libjava/gnu/java/awt/print/JavaPrinterJob.h new file mode 100644 index 00000000000..6275b13e49b --- /dev/null +++ b/libjava/gnu/java/awt/print/JavaPrinterJob.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_print_JavaPrinterJob__ +#define __gnu_java_awt_print_JavaPrinterJob__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace print + { + class JavaPrinterJob; + } + } + } + } + namespace java + { + namespace awt + { + namespace print + { + class PageFormat; + class Pageable; + class Printable; + } + } + } + namespace javax + { + namespace print + { + class DocPrintJob; + class PrintService; + namespace attribute + { + class PrintRequestAttributeSet; + } + } + } +} + +class gnu::java::awt::print::JavaPrinterJob : public ::java::awt::print::PrinterJob +{ + +public: + JavaPrinterJob(); +private: + void getPageAttributes(); +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 void print(::javax::print::attribute::PrintRequestAttributeSet *); + virtual jboolean printDialog(); + virtual jboolean printDialog(::javax::print::attribute::PrintRequestAttributeSet *); + 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 *); + virtual void setPrintService(::javax::print::PrintService *); +private: + ::javax::print::PrintService * __attribute__((aligned(__alignof__( ::java::awt::print::PrinterJob)))) printer; + ::javax::print::attribute::PrintRequestAttributeSet * attributes; + static JArray< ::javax::print::PrintService * > * services; + ::javax::print::DocPrintJob * printJob; + ::java::awt::print::Printable * printable; + ::java::awt::print::PageFormat * pageFormat; + ::java::awt::print::Pageable * pageable; + jboolean cancelled; + static ::java::lang::Class * copyClass; + static ::java::lang::Class * jobNameClass; + static ::java::lang::Class * userNameClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_print_JavaPrinterJob__ diff --git a/libjava/gnu/java/awt/print/PostScriptGraphics2D.h b/libjava/gnu/java/awt/print/PostScriptGraphics2D.h new file mode 100644 index 00000000000..46011044ad2 --- /dev/null +++ b/libjava/gnu/java/awt/print/PostScriptGraphics2D.h @@ -0,0 +1,211 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_print_PostScriptGraphics2D__ +#define __gnu_java_awt_print_PostScriptGraphics2D__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace print + { + class PostScriptGraphics2D; + class SpooledDocument; + } + } + } + } + namespace java + { + namespace awt + { + class Color; + class Composite; + class Font; + class FontMetrics; + class Graphics; + 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 print + { + class PageFormat; + class Pageable; + class Printable; + class PrinterJob; + } + } + namespace text + { + class AttributedCharacterIterator; + } + } +} + +class gnu::java::awt::print::PostScriptGraphics2D : public ::java::awt::Graphics2D +{ + +public: + PostScriptGraphics2D(::java::awt::print::PrinterJob *); + virtual ::gnu::java::awt::print::SpooledDocument * spoolPostScript(::java::awt::print::Printable *, ::java::awt::print::PageFormat *, ::java::awt::print::Pageable *); +private: + void writePSHeader(); + void setupFonts(); +public: + virtual jint spoolPage(::java::io::PrintWriter *, ::java::awt::print::Printable *, ::java::awt::print::PageFormat *, jint); +private: + void pushCTM(); + void popCTM(); +public: + virtual ::java::awt::Graphics * create(); + virtual void drawOval(jint, jint, jint, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void drawLine(jint, jint, jint, jint); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual void drawImage(::java::awt::image::BufferedImage *, ::java::awt::image::BufferedImageOp *, jint, jint); + virtual jboolean drawImage(::java::awt::Image *, ::java::awt::geom::AffineTransform *, ::java::awt::image::ImageObserver *); + virtual void drawRenderableImage(::java::awt::image::renderable::RenderableImage *, ::java::awt::geom::AffineTransform *); + virtual void drawRenderedImage(::java::awt::image::RenderedImage *, ::java::awt::geom::AffineTransform *); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::lang::String *, jfloat, jfloat); +private: + void drawStringPSFont(::java::lang::String *, jfloat, jfloat); + void saveAndInvertAxis(); + void restoreAxis(); + void drawStringShape(::java::awt::Shape *); +public: + virtual void setColor(::java::awt::Color *); + virtual void clearRect(jint, jint, jint, jint); + virtual void clipRect(jint, jint, jint, jint); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void dispose(); + virtual void setClip(jint, jint, jint, jint); + virtual void setClip(::java::awt::Shape *); + virtual ::java::awt::Shape * getClip(); + virtual ::java::awt::Rectangle * getClipBounds(); + virtual ::java::awt::Color * getColor(); + virtual ::java::awt::Font * getFont(); + virtual ::java::awt::FontMetrics * getFontMetrics(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual void setFont(::java::awt::Font *); +private: + void setPSFont(); +public: + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual void close(); + virtual void addRenderingHints(::java::util::Map *); +private: + void writeShape(::java::awt::Shape *); +public: + virtual void clip(::java::awt::Shape *); + virtual void draw(::java::awt::Shape *); + virtual void drawGlyphVector(::java::awt::font::GlyphVector *, jfloat, jfloat); + virtual void drawString(::java::text::AttributedCharacterIterator *, jfloat, jfloat); + virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint); + virtual void fill(::java::awt::Shape *); + virtual ::java::awt::Color * getBackground(); + virtual ::java::awt::Composite * getComposite(); + virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration(); + virtual ::java::awt::font::FontRenderContext * getFontRenderContext(); + virtual ::java::awt::Paint * getPaint(); + virtual ::java::lang::Object * getRenderingHint(::java::awt::RenderingHints$Key *); + virtual ::java::awt::RenderingHints * getRenderingHints(); + virtual ::java::awt::Stroke * getStroke(); + virtual ::java::awt::geom::AffineTransform * getTransform(); + virtual jboolean hit(::java::awt::Rectangle *, ::java::awt::Shape *, jboolean); + virtual void setBackground(::java::awt::Color *); + virtual void setComposite(::java::awt::Composite *); + virtual void setPaint(::java::awt::Paint *); +private: + ::java::lang::String * colorTriple(::java::awt::Color *); + ::java::lang::String * colorTripleHex(::java::awt::Color *); + void writeGradient(); +public: + virtual void setRenderingHint(::java::awt::RenderingHints$Key *, ::java::lang::Object *); + virtual void setRenderingHints(::java::util::Map *); + virtual void setStroke(::java::awt::Stroke *); +private: + void concatCTM(::java::awt::geom::AffineTransform *); +public: + virtual void setTransform(::java::awt::geom::AffineTransform *); + virtual void transform(::java::awt::geom::AffineTransform *); + virtual void shear(jdouble, jdouble); + virtual void translate(jint, jint); + virtual void translate(jdouble, jdouble); + virtual void rotate(jdouble); + virtual void rotate(jdouble, jdouble, jdouble); + virtual void scale(jdouble, jdouble); +private: + ::java::awt::print::PrinterJob * __attribute__((aligned(__alignof__( ::java::awt::Graphics2D)))) printerJob; + ::java::io::PrintWriter * out; + ::java::awt::geom::AffineTransform * currentTransform; + ::java::awt::geom::AffineTransform * pageTransform; + ::java::awt::RenderingHints * renderingHints; + ::java::awt::Paint * currentPaint; + ::java::awt::Shape * clipShape; + ::java::awt::Font * currentFont; + ::java::awt::Color * currentColor; + ::java::awt::Color * backgroundColor; + ::java::awt::Stroke * currentStroke; + static ::java::awt::Stroke * ordinaryStroke; + jfloat cx; + jfloat cy; + jboolean currentFontIsPS; + jdouble pageX; + jdouble pageY; + jdouble Y; + jboolean gradientOn; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_print_PostScriptGraphics2D__ diff --git a/libjava/gnu/java/awt/print/SpooledDocument.h b/libjava/gnu/java/awt/print/SpooledDocument.h new file mode 100644 index 00000000000..a49bb14c144 --- /dev/null +++ b/libjava/gnu/java/awt/print/SpooledDocument.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_print_SpooledDocument__ +#define __gnu_java_awt_print_SpooledDocument__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace print + { + class SpooledDocument; + } + } + } + } + namespace javax + { + namespace print + { + class DocFlavor; + namespace attribute + { + class DocAttributeSet; + } + } + } +} + +class gnu::java::awt::print::SpooledDocument : public ::java::lang::Object +{ + +public: + SpooledDocument(::java::io::File *); + virtual ::javax::print::attribute::DocAttributeSet * getAttributes(); + virtual ::javax::print::DocFlavor * getDocFlavor(); + virtual ::java::lang::Object * getPrintData(); + virtual ::java::io::Reader * getReaderForText(); + virtual ::java::io::InputStream * getStreamForBytes(); +private: + ::java::io::FileInputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) fis; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_print_SpooledDocument__ diff --git a/libjava/gnu/java/beans/BeanInfoEmbryo.h b/libjava/gnu/java/beans/BeanInfoEmbryo.h new file mode 100644 index 00000000000..0e1fe163e8c --- /dev/null +++ b/libjava/gnu/java/beans/BeanInfoEmbryo.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_BeanInfoEmbryo__ +#define __gnu_java_beans_BeanInfoEmbryo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + class BeanInfoEmbryo; + } + } + } + namespace java + { + namespace awt + { + class Image; + } + namespace beans + { + class BeanDescriptor; + class BeanInfo; + class EventSetDescriptor; + class IndexedPropertyDescriptor; + class MethodDescriptor; + class PropertyDescriptor; + } + } +} + +class gnu::java::beans::BeanInfoEmbryo : public ::java::lang::Object +{ + +public: + BeanInfoEmbryo(); + virtual ::java::beans::BeanInfo * getBeanInfo(); + virtual void setBeanDescriptor(::java::beans::BeanDescriptor *); + virtual void setAdditionalBeanInfo(JArray< ::java::beans::BeanInfo * > *); + virtual jboolean hasProperty(::java::beans::PropertyDescriptor *); + virtual void addProperty(::java::beans::PropertyDescriptor *); + virtual void addIndexedProperty(::java::beans::IndexedPropertyDescriptor *); + virtual jboolean hasEvent(::java::beans::EventSetDescriptor *); + virtual void addEvent(::java::beans::EventSetDescriptor *); + virtual jboolean hasMethod(::java::beans::MethodDescriptor *); + virtual void addMethod(::java::beans::MethodDescriptor *); + virtual void setDefaultPropertyName(::java::lang::String *); + virtual void setDefaultEventName(::java::lang::String *); + virtual void setIcons(JArray< ::java::awt::Image * > *); +public: // actually package-private + ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) properties; + ::java::util::Hashtable * events; + ::java::util::Vector * methods; + ::java::beans::BeanDescriptor * beanDescriptor; + JArray< ::java::beans::BeanInfo * > * additionalBeanInfo; + JArray< ::java::awt::Image * > * im; + ::java::lang::String * defaultPropertyName; + ::java::lang::String * defaultEventName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_BeanInfoEmbryo__ diff --git a/libjava/gnu/java/beans/DefaultExceptionListener.h b/libjava/gnu/java/beans/DefaultExceptionListener.h new file mode 100644 index 00000000000..1815fe8f19b --- /dev/null +++ b/libjava/gnu/java/beans/DefaultExceptionListener.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_DefaultExceptionListener__ +#define __gnu_java_beans_DefaultExceptionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + class DefaultExceptionListener; + } + } + } +} + +class gnu::java::beans::DefaultExceptionListener : public ::java::lang::Object +{ + +public: + DefaultExceptionListener(); + virtual void exceptionThrown(::java::lang::Exception *); + static ::gnu::java::beans::DefaultExceptionListener * INSTANCE; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_DefaultExceptionListener__ diff --git a/libjava/gnu/java/beans/DoubleKey.h b/libjava/gnu/java/beans/DoubleKey.h new file mode 100644 index 00000000000..c20d5689cfe --- /dev/null +++ b/libjava/gnu/java/beans/DoubleKey.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_DoubleKey__ +#define __gnu_java_beans_DoubleKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + class DoubleKey; + } + } + } +} + +class gnu::java::beans::DoubleKey : public ::java::lang::Object +{ + +public: // actually package-private + DoubleKey(::java::lang::Class *, ::java::lang::String *); + virtual ::java::lang::Class * getType(); + virtual ::java::lang::String * getName(); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +public: // actually package-private + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_DoubleKey__ diff --git a/libjava/gnu/java/beans/DummyAppletContext.h b/libjava/gnu/java/beans/DummyAppletContext.h new file mode 100644 index 00000000000..095f50d476c --- /dev/null +++ b/libjava/gnu/java/beans/DummyAppletContext.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_DummyAppletContext__ +#define __gnu_java_beans_DummyAppletContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + class DummyAppletContext; + } + } + } + namespace java + { + namespace applet + { + class Applet; + class AudioClip; + } + namespace awt + { + class Image; + } + namespace net + { + class URL; + } + } +} + +class gnu::java::beans::DummyAppletContext : public ::java::lang::Object +{ + +public: // actually package-private + DummyAppletContext(); +public: + virtual ::java::applet::AudioClip * getAudioClip(::java::net::URL *); + virtual ::java::awt::Image * getImage(::java::net::URL *); + virtual ::java::applet::Applet * getApplet(::java::lang::String *); + virtual ::java::util::Enumeration * getApplets(); + virtual void showDocument(::java::net::URL *); + virtual void showDocument(::java::net::URL *, ::java::lang::String *); + virtual void showStatus(::java::lang::String *); + virtual void setStream(::java::lang::String *, ::java::io::InputStream *); + virtual ::java::io::InputStream * getStream(::java::lang::String *); + virtual ::java::util::Iterator * getStreamKeys(); +private: + static ::java::util::Enumeration * EMPTY_ENUMERATION; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_DummyAppletContext__ diff --git a/libjava/gnu/java/beans/DummyAppletStub.h b/libjava/gnu/java/beans/DummyAppletStub.h new file mode 100644 index 00000000000..10ee9ffcd20 --- /dev/null +++ b/libjava/gnu/java/beans/DummyAppletStub.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_DummyAppletStub__ +#define __gnu_java_beans_DummyAppletStub__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + class DummyAppletContext; + class DummyAppletStub; + } + } + } + namespace java + { + namespace applet + { + class AppletContext; + } + namespace net + { + class URL; + } + } +} + +class gnu::java::beans::DummyAppletStub : public ::java::lang::Object +{ + +public: + DummyAppletStub(::java::net::URL *, ::java::net::URL *); + 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 appletResize(jint, jint); +private: + ::java::net::URL * __attribute__((aligned(__alignof__( ::java::lang::Object)))) documentBase; + ::java::net::URL * codeBase; + ::gnu::java::beans::DummyAppletContext * context; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_DummyAppletStub__ diff --git a/libjava/gnu/java/beans/ExplicitBeanInfo.h b/libjava/gnu/java/beans/ExplicitBeanInfo.h new file mode 100644 index 00000000000..3fd0873958c --- /dev/null +++ b/libjava/gnu/java/beans/ExplicitBeanInfo.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_ExplicitBeanInfo__ +#define __gnu_java_beans_ExplicitBeanInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + class ExplicitBeanInfo; + } + } + } + namespace java + { + namespace awt + { + class Image; + } + namespace beans + { + class BeanDescriptor; + class BeanInfo; + class EventSetDescriptor; + class MethodDescriptor; + class PropertyDescriptor; + } + } +} + +class gnu::java::beans::ExplicitBeanInfo : public ::java::lang::Object +{ + +public: + ExplicitBeanInfo(::java::beans::BeanDescriptor *, JArray< ::java::beans::BeanInfo * > *, JArray< ::java::beans::PropertyDescriptor * > *, jint, JArray< ::java::beans::EventSetDescriptor * > *, jint, JArray< ::java::beans::MethodDescriptor * > *, JArray< ::java::awt::Image * > *); + 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); +public: // actually protected + ::java::beans::BeanDescriptor * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beanDescriptor; + JArray< ::java::beans::EventSetDescriptor * > * eventSetDescriptors; + JArray< ::java::beans::PropertyDescriptor * > * propertyDescriptors; + JArray< ::java::beans::MethodDescriptor * > * methodDescriptors; + jint defaultPropertyIndex; + jint defaultEventIndex; + JArray< ::java::beans::BeanInfo * > * additionalBeanInfo; + JArray< ::java::awt::Image * > * icons; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_ExplicitBeanInfo__ diff --git a/libjava/gnu/java/beans/IntrospectionIncubator.h b/libjava/gnu/java/beans/IntrospectionIncubator.h new file mode 100644 index 00000000000..b9f11c393fb --- /dev/null +++ b/libjava/gnu/java/beans/IntrospectionIncubator.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_IntrospectionIncubator__ +#define __gnu_java_beans_IntrospectionIncubator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + class BeanInfoEmbryo; + class IntrospectionIncubator; + } + } + } + namespace java + { + namespace beans + { + class BeanInfo; + } + } +} + +class gnu::java::beans::IntrospectionIncubator : public ::java::lang::Object +{ + +public: + IntrospectionIncubator(); + virtual void addMethod(::java::lang::reflect::Method *); + virtual void addMethods(JArray< ::java::lang::reflect::Method * > *); + virtual void setPropertyStopClass(::java::lang::Class *); + virtual void setEventStopClass(::java::lang::Class *); + virtual void setMethodStopClass(::java::lang::Class *); + virtual ::gnu::java::beans::BeanInfoEmbryo * getBeanInfoEmbryo(); + virtual ::java::beans::BeanInfo * getBeanInfo(); +public: // actually package-private + virtual void findAddRemovePairs(::gnu::java::beans::BeanInfoEmbryo *); + virtual void findXXX(::gnu::java::beans::BeanInfoEmbryo *, jint); + virtual void findXXXInt(::gnu::java::beans::BeanInfoEmbryo *, jint); + virtual void addToPropertyHash(::java::lang::String *, ::java::lang::reflect::Method *, jint); + virtual void addToListenerHash(::java::lang::String *, ::java::lang::reflect::Method *, jint); + static jboolean isReachable(::java::lang::Class *, ::java::lang::Class *); + static ::java::lang::String * capitalize(::java::lang::String *); + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) propertyMethods; + ::java::util::Hashtable * listenerMethods; + ::java::util::Vector * otherMethods; + ::java::lang::Class * propertyStopClass; + ::java::lang::Class * eventStopClass; + ::java::lang::Class * methodStopClass; + static const jint IS = 0; + static const jint GET_I = 1; + static const jint SET_I = 2; + static const jint GET = 3; + static const jint SET = 4; + static const jint ADD = 0; + static const jint REMOVE = 1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_IntrospectionIncubator__ diff --git a/libjava/gnu/java/beans/decoder/AbstractContext.h b/libjava/gnu/java/beans/decoder/AbstractContext.h new file mode 100644 index 00000000000..9b3f03c2ffd --- /dev/null +++ b/libjava/gnu/java/beans/decoder/AbstractContext.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_AbstractContext__ +#define __gnu_java_beans_decoder_AbstractContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractContext; + class Context; + } + } + } + } +} + +class gnu::java::beans::decoder::AbstractContext : public ::java::lang::Object +{ + +public: // actually package-private + AbstractContext(); +public: + virtual ::java::lang::String * getId(); + virtual void setId(::java::lang::String *); + virtual jboolean isStatement(); + virtual void setStatement(jboolean); + virtual void addParameterObject(::java::lang::Object *) = 0; + virtual void notifyStatement(::gnu::java::beans::decoder::Context *) = 0; + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *) = 0; + virtual jboolean subContextFailed() = 0; + virtual void set(jint, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * get(jint) = 0; + virtual ::java::lang::Object * getResult() = 0; +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) isStatement__; + ::java::lang::String * id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_AbstractContext__ diff --git a/libjava/gnu/java/beans/decoder/AbstractCreatableObjectContext.h b/libjava/gnu/java/beans/decoder/AbstractCreatableObjectContext.h new file mode 100644 index 00000000000..77f96ba47d5 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/AbstractCreatableObjectContext.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_AbstractCreatableObjectContext__ +#define __gnu_java_beans_decoder_AbstractCreatableObjectContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractCreatableObjectContext; + class Context; + } + } + } + } +} + +class gnu::java::beans::decoder::AbstractCreatableObjectContext : public ::gnu::java::beans::decoder::AbstractObjectContext +{ + +public: // actually package-private + AbstractCreatableObjectContext(); +public: + virtual void addParameterObject(::java::lang::Object *); +public: // actually protected + virtual void addParameterObjectImpl(::java::lang::Object *) = 0; +public: + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); +public: // actually protected + virtual ::java::lang::Object * createObject(::gnu::java::beans::decoder::Context *) = 0; +public: + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_AbstractCreatableObjectContext__ diff --git a/libjava/gnu/java/beans/decoder/AbstractElementHandler.h b/libjava/gnu/java/beans/decoder/AbstractElementHandler.h new file mode 100644 index 00000000000..e0abc31ed00 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/AbstractElementHandler.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_AbstractElementHandler__ +#define __gnu_java_beans_decoder_AbstractElementHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class Context; + class ElementHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::AbstractElementHandler : public ::java::lang::Object +{ + +public: // actually protected + AbstractElementHandler(::gnu::java::beans::decoder::ElementHandler *, jboolean); +public: + virtual void start(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *); +public: // actually protected + virtual ::gnu::java::beans::decoder::Context * startElement(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *) = 0; +public: + virtual void end(::java::beans::ExceptionListener *); + virtual void notifyStatement(::java::beans::ExceptionListener *); + virtual void notifyContextFailed(); + virtual jboolean hasFailed(); +public: // actually protected + virtual void endElement(::java::lang::String *); +public: + virtual void characters(JArray< jchar > *, jint, jint); + virtual void putObject(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getObject(::java::lang::String *); + virtual ::java::lang::Class * instantiateClass(::java::lang::String *); + virtual jboolean isSubelementAllowed(::java::lang::String *); + virtual ::gnu::java::beans::decoder::Context * getContext(); + virtual ::gnu::java::beans::decoder::ElementHandler * getParent(); +private: + ::gnu::java::beans::decoder::Context * __attribute__((aligned(__alignof__( ::java::lang::Object)))) context; + ::gnu::java::beans::decoder::ElementHandler * parent; + jboolean hasFailed__; + ::java::lang::StringBuffer * buffer; + jboolean allowsSubelements; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_AbstractElementHandler__ diff --git a/libjava/gnu/java/beans/decoder/AbstractObjectContext.h b/libjava/gnu/java/beans/decoder/AbstractObjectContext.h new file mode 100644 index 00000000000..db4bee7a0d6 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/AbstractObjectContext.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_AbstractObjectContext__ +#define __gnu_java_beans_decoder_AbstractObjectContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractObjectContext; + } + } + } + } +} + +class gnu::java::beans::decoder::AbstractObjectContext : public ::gnu::java::beans::decoder::AbstractContext +{ + +public: // actually package-private + AbstractObjectContext(); +public: // actually protected + virtual void setObject(::java::lang::Object *); +public: + virtual void set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual ::java::lang::Object * getResult(); +public: // actually protected + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractContext)))) object; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_AbstractObjectContext__ diff --git a/libjava/gnu/java/beans/decoder/ArrayContext.h b/libjava/gnu/java/beans/decoder/ArrayContext.h new file mode 100644 index 00000000000..4184ed09be9 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ArrayContext.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ArrayContext__ +#define __gnu_java_beans_decoder_ArrayContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ArrayContext; + class Context; + } + } + } + } +} + +class gnu::java::beans::decoder::ArrayContext : public ::gnu::java::beans::decoder::AbstractContext +{ + +public: // actually package-private + ArrayContext(::java::lang::String *, ::java::lang::Class *, jint); +public: + virtual void addParameterObject(::java::lang::Object *); + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); + virtual void set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual ::java::lang::Object * getResult(); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractContext)))) array; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ArrayContext__ diff --git a/libjava/gnu/java/beans/decoder/ArrayHandler.h b/libjava/gnu/java/beans/decoder/ArrayHandler.h new file mode 100644 index 00000000000..eeacde937bf --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ArrayHandler.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ArrayHandler__ +#define __gnu_java_beans_decoder_ArrayHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ArrayHandler; + class Context; + class ElementHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::ArrayHandler : public ::gnu::java::beans::decoder::AbstractElementHandler +{ + +public: // actually package-private + ArrayHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::gnu::java::beans::decoder::Context * startElement(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *); +private: + static ::java::util::HashMap * typeMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ArrayHandler__ diff --git a/libjava/gnu/java/beans/decoder/AssemblyException.h b/libjava/gnu/java/beans/decoder/AssemblyException.h new file mode 100644 index 00000000000..62f76f39cc4 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/AssemblyException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_AssemblyException__ +#define __gnu_java_beans_decoder_AssemblyException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AssemblyException; + } + } + } + } +} + +class gnu::java::beans::decoder::AssemblyException : public ::java::lang::Exception +{ + +public: // actually package-private + AssemblyException(::java::lang::Throwable *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_AssemblyException__ diff --git a/libjava/gnu/java/beans/decoder/BooleanHandler.h b/libjava/gnu/java/beans/decoder/BooleanHandler.h new file mode 100644 index 00000000000..575bac03f3a --- /dev/null +++ b/libjava/gnu/java/beans/decoder/BooleanHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_BooleanHandler__ +#define __gnu_java_beans_decoder_BooleanHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class BooleanHandler; + class ElementHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::BooleanHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + BooleanHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_BooleanHandler__ diff --git a/libjava/gnu/java/beans/decoder/ByteHandler.h b/libjava/gnu/java/beans/decoder/ByteHandler.h new file mode 100644 index 00000000000..ef77b6b77d6 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ByteHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ByteHandler__ +#define __gnu_java_beans_decoder_ByteHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ByteHandler; + class ElementHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::ByteHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + ByteHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ByteHandler__ diff --git a/libjava/gnu/java/beans/decoder/CharHandler.h b/libjava/gnu/java/beans/decoder/CharHandler.h new file mode 100644 index 00000000000..dfd1b455a40 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/CharHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_CharHandler__ +#define __gnu_java_beans_decoder_CharHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class CharHandler; + class ElementHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::CharHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + CharHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_CharHandler__ diff --git a/libjava/gnu/java/beans/decoder/ClassHandler.h b/libjava/gnu/java/beans/decoder/ClassHandler.h new file mode 100644 index 00000000000..7c8ea8844aa --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ClassHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ClassHandler__ +#define __gnu_java_beans_decoder_ClassHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ClassHandler; + class ElementHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::ClassHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + ClassHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ClassHandler__ diff --git a/libjava/gnu/java/beans/decoder/ConstructorContext.h b/libjava/gnu/java/beans/decoder/ConstructorContext.h new file mode 100644 index 00000000000..187d7408693 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ConstructorContext.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ConstructorContext__ +#define __gnu_java_beans_decoder_ConstructorContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ConstructorContext; + class Context; + } + } + } + } +} + +class gnu::java::beans::decoder::ConstructorContext : public ::gnu::java::beans::decoder::AbstractCreatableObjectContext +{ + +public: // actually package-private + ConstructorContext(::java::lang::String *, ::java::lang::Class *); +public: // actually protected + virtual void addParameterObjectImpl(::java::lang::Object *); + virtual ::java::lang::Object * createObject(::gnu::java::beans::decoder::Context *); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractCreatableObjectContext)))) arguments; + ::java::lang::Class * klass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ConstructorContext__ diff --git a/libjava/gnu/java/beans/decoder/Context.h b/libjava/gnu/java/beans/decoder/Context.h new file mode 100644 index 00000000000..fa23e802937 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/Context.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_Context__ +#define __gnu_java_beans_decoder_Context__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + } + } + } + } +} + +class gnu::java::beans::decoder::Context : public ::java::lang::Object +{ + +public: + virtual void addParameterObject(::java::lang::Object *) = 0; + virtual void notifyStatement(::gnu::java::beans::decoder::Context *) = 0; + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *) = 0; + virtual jboolean subContextFailed() = 0; + virtual void set(jint, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * get(jint) = 0; + virtual ::java::lang::Object * getResult() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual jboolean isStatement() = 0; + virtual void setStatement(jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_beans_decoder_Context__ diff --git a/libjava/gnu/java/beans/decoder/DecoderContext.h b/libjava/gnu/java/beans/decoder/DecoderContext.h new file mode 100644 index 00000000000..f1b70ef5d5b --- /dev/null +++ b/libjava/gnu/java/beans/decoder/DecoderContext.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_DecoderContext__ +#define __gnu_java_beans_decoder_DecoderContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class DecoderContext; + } + } + } + } + namespace java + { + namespace beans + { + class XMLDecoder; + } + } +} + +class gnu::java::beans::decoder::DecoderContext : public ::gnu::java::beans::decoder::AbstractContext +{ + +public: + DecoderContext(::java::beans::XMLDecoder *); + virtual void addParameterObject(::java::lang::Object *); + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); + virtual void set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual ::java::lang::Object * getResult(); + virtual ::java::util::Iterator * iterator(); +private: + ::java::beans::XMLDecoder * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractContext)))) decoder; + ::java::util::ArrayList * objects; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_DecoderContext__ diff --git a/libjava/gnu/java/beans/decoder/DoubleHandler.h b/libjava/gnu/java/beans/decoder/DoubleHandler.h new file mode 100644 index 00000000000..580b936a974 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/DoubleHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_DoubleHandler__ +#define __gnu_java_beans_decoder_DoubleHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class DoubleHandler; + class ElementHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::DoubleHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + DoubleHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_DoubleHandler__ diff --git a/libjava/gnu/java/beans/decoder/DummyContext.h b/libjava/gnu/java/beans/decoder/DummyContext.h new file mode 100644 index 00000000000..d8839a618ad --- /dev/null +++ b/libjava/gnu/java/beans/decoder/DummyContext.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_DummyContext__ +#define __gnu_java_beans_decoder_DummyContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class DummyContext; + } + } + } + } +} + +class gnu::java::beans::decoder::DummyContext : public ::gnu::java::beans::decoder::AbstractContext +{ + +public: + DummyContext(); + virtual void addParameterObject(::java::lang::Object *); + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); + virtual void set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual ::java::lang::Object * getResult(); +private: + void fail(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_DummyContext__ diff --git a/libjava/gnu/java/beans/decoder/DummyHandler.h b/libjava/gnu/java/beans/decoder/DummyHandler.h new file mode 100644 index 00000000000..29ca81bad9f --- /dev/null +++ b/libjava/gnu/java/beans/decoder/DummyHandler.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_DummyHandler__ +#define __gnu_java_beans_decoder_DummyHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class DummyHandler; + class ElementHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::DummyHandler : public ::java::lang::Object +{ + +public: // actually package-private + DummyHandler(); +public: + virtual void start(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *); + virtual void end(::java::beans::ExceptionListener *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual jboolean isSubelementAllowed(::java::lang::String *); + virtual ::java::lang::Class * instantiateClass(::java::lang::String *); + virtual void notifyStatement(::java::beans::ExceptionListener *); + virtual jboolean hasFailed(); + virtual ::gnu::java::beans::decoder::Context * getContext(); + virtual void notifyContextFailed(); + virtual void putObject(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getObject(::java::lang::String *); + virtual ::gnu::java::beans::decoder::ElementHandler * getParent(); +private: + void fail(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_DummyHandler__ diff --git a/libjava/gnu/java/beans/decoder/ElementHandler.h b/libjava/gnu/java/beans/decoder/ElementHandler.h new file mode 100644 index 00000000000..75df22500cb --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ElementHandler.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ElementHandler__ +#define __gnu_java_beans_decoder_ElementHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class ElementHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::ElementHandler : public ::java::lang::Object +{ + +public: + virtual void start(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *) = 0; + virtual void end(::java::beans::ExceptionListener *) = 0; + virtual void characters(JArray< jchar > *, jint, jint) = 0; + virtual jboolean isSubelementAllowed(::java::lang::String *) = 0; + virtual ::java::lang::Class * instantiateClass(::java::lang::String *) = 0; + virtual void notifyStatement(::java::beans::ExceptionListener *) = 0; + virtual jboolean hasFailed() = 0; + virtual ::gnu::java::beans::decoder::Context * getContext() = 0; + virtual void notifyContextFailed() = 0; + virtual void putObject(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getObject(::java::lang::String *) = 0; + virtual ::gnu::java::beans::decoder::ElementHandler * getParent() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_beans_decoder_ElementHandler__ diff --git a/libjava/gnu/java/beans/decoder/FloatHandler.h b/libjava/gnu/java/beans/decoder/FloatHandler.h new file mode 100644 index 00000000000..9045ec51e1b --- /dev/null +++ b/libjava/gnu/java/beans/decoder/FloatHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_FloatHandler__ +#define __gnu_java_beans_decoder_FloatHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ElementHandler; + class FloatHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::FloatHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + FloatHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_FloatHandler__ diff --git a/libjava/gnu/java/beans/decoder/GrowableArrayContext.h b/libjava/gnu/java/beans/decoder/GrowableArrayContext.h new file mode 100644 index 00000000000..e6b4a79b4e3 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/GrowableArrayContext.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_GrowableArrayContext__ +#define __gnu_java_beans_decoder_GrowableArrayContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class GrowableArrayContext; + } + } + } + } +} + +class gnu::java::beans::decoder::GrowableArrayContext : public ::gnu::java::beans::decoder::AbstractContext +{ + +public: // actually package-private + GrowableArrayContext(::java::lang::String *, ::java::lang::Class *); +public: + virtual void addParameterObject(::java::lang::Object *); + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); + virtual void set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual ::java::lang::Object * getResult(); +private: + static const jint INITIAL_SIZE = 16; + ::java::lang::Class * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractContext)))) klass; + ::java::lang::Object * array; + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_GrowableArrayContext__ diff --git a/libjava/gnu/java/beans/decoder/IndexContext.h b/libjava/gnu/java/beans/decoder/IndexContext.h new file mode 100644 index 00000000000..b4c3855be23 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/IndexContext.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_IndexContext__ +#define __gnu_java_beans_decoder_IndexContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class IndexContext; + } + } + } + } +} + +class gnu::java::beans::decoder::IndexContext : public ::gnu::java::beans::decoder::AbstractContext +{ + +public: // actually package-private + IndexContext(::java::lang::String *, jint); +public: + virtual void addParameterObject(::java::lang::Object *); + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); + virtual void set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual ::java::lang::Object * getResult(); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractContext)))) result; + ::java::lang::Object * argument; + jint index; + jboolean isSetter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_IndexContext__ diff --git a/libjava/gnu/java/beans/decoder/IntHandler.h b/libjava/gnu/java/beans/decoder/IntHandler.h new file mode 100644 index 00000000000..181020628b8 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/IntHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_IntHandler__ +#define __gnu_java_beans_decoder_IntHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ElementHandler; + class IntHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::IntHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + IntHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_IntHandler__ diff --git a/libjava/gnu/java/beans/decoder/JavaHandler.h b/libjava/gnu/java/beans/decoder/JavaHandler.h new file mode 100644 index 00000000000..d79c9f54436 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/JavaHandler.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_JavaHandler__ +#define __gnu_java_beans_decoder_JavaHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class DummyHandler; + class JavaHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::JavaHandler : public ::gnu::java::beans::decoder::AbstractElementHandler +{ + +public: // actually package-private + JavaHandler(::gnu::java::beans::decoder::DummyHandler *, ::gnu::java::beans::decoder::Context *, ::java::lang::ClassLoader *); +public: // actually protected + virtual ::gnu::java::beans::decoder::Context * startElement(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *); +public: + virtual ::java::lang::Object * getObject(::java::lang::String *); + virtual void putObject(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Class * instantiateClass(::java::lang::String *); +private: + ::gnu::java::beans::decoder::Context * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractElementHandler)))) context; + ::java::util::HashMap * objectMap; + ::java::lang::ClassLoader * classLoader; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_JavaHandler__ diff --git a/libjava/gnu/java/beans/decoder/LongHandler.h b/libjava/gnu/java/beans/decoder/LongHandler.h new file mode 100644 index 00000000000..ca846310bb3 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/LongHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_LongHandler__ +#define __gnu_java_beans_decoder_LongHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ElementHandler; + class LongHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::LongHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + LongHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_LongHandler__ diff --git a/libjava/gnu/java/beans/decoder/MethodContext.h b/libjava/gnu/java/beans/decoder/MethodContext.h new file mode 100644 index 00000000000..7039130960f --- /dev/null +++ b/libjava/gnu/java/beans/decoder/MethodContext.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_MethodContext__ +#define __gnu_java_beans_decoder_MethodContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class MethodContext; + } + } + } + } +} + +class gnu::java::beans::decoder::MethodContext : public ::gnu::java::beans::decoder::AbstractCreatableObjectContext +{ + +public: // actually package-private + MethodContext(::java::lang::String *, ::java::lang::String *); +public: + virtual void addParameterObjectImpl(::java::lang::Object *); +public: // actually protected + virtual ::java::lang::Object * createObject(::gnu::java::beans::decoder::Context *); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractCreatableObjectContext)))) arguments; + ::java::lang::String * methodName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_MethodContext__ diff --git a/libjava/gnu/java/beans/decoder/MethodFinder.h b/libjava/gnu/java/beans/decoder/MethodFinder.h new file mode 100644 index 00000000000..02e8736af84 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/MethodFinder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_MethodFinder__ +#define __gnu_java_beans_decoder_MethodFinder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class MethodFinder; + } + } + } + } +} + +class gnu::java::beans::decoder::MethodFinder : public ::java::lang::Object +{ + + MethodFinder(); +public: // actually package-private + static ::java::lang::reflect::Method * getMethod(::java::lang::Class *, ::java::lang::String *, JArray< ::java::lang::Object * > *); + static ::java::lang::reflect::Constructor * getConstructor(::java::lang::Class *, JArray< ::java::lang::Object * > *); +private: + static JArray< ::java::lang::Class * > * getArgumentTypes(JArray< ::java::lang::Object * > *); + static jboolean matchingArgumentTypes(JArray< ::java::lang::Class * > *, JArray< ::java::lang::Class * > *); + static ::java::util::HashMap * typeMapping; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_MethodFinder__ diff --git a/libjava/gnu/java/beans/decoder/NullHandler.h b/libjava/gnu/java/beans/decoder/NullHandler.h new file mode 100644 index 00000000000..9e76755e359 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/NullHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_NullHandler__ +#define __gnu_java_beans_decoder_NullHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ElementHandler; + class NullHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::NullHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + NullHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_NullHandler__ diff --git a/libjava/gnu/java/beans/decoder/ObjectContext.h b/libjava/gnu/java/beans/decoder/ObjectContext.h new file mode 100644 index 00000000000..7e654036f05 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ObjectContext.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ObjectContext__ +#define __gnu_java_beans_decoder_ObjectContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class ObjectContext; + } + } + } + } +} + +class gnu::java::beans::decoder::ObjectContext : public ::gnu::java::beans::decoder::AbstractObjectContext +{ + +public: // actually package-private + ObjectContext(::java::lang::Object *); + ObjectContext(::java::lang::String *, ::java::lang::Object *); + ObjectContext(); +public: + void addParameterObject(::java::lang::Object *); + void notifyStatement(::gnu::java::beans::decoder::Context *); + ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + jboolean subContextFailed(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ObjectContext__ diff --git a/libjava/gnu/java/beans/decoder/ObjectHandler.h b/libjava/gnu/java/beans/decoder/ObjectHandler.h new file mode 100644 index 00000000000..68898f25058 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ObjectHandler.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ObjectHandler__ +#define __gnu_java_beans_decoder_ObjectHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class ElementHandler; + class ObjectHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::ObjectHandler : public ::gnu::java::beans::decoder::AbstractElementHandler +{ + +public: // actually package-private + ObjectHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::gnu::java::beans::decoder::Context * startElement(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ObjectHandler__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$ArrayHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$ArrayHandlerCreator.h new file mode 100644 index 00000000000..50cecb45177 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$ArrayHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$ArrayHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$ArrayHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$ArrayHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$ArrayHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$ArrayHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$ArrayHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$BooleanHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$BooleanHandlerCreator.h new file mode 100644 index 00000000000..d877d9cd73a --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$BooleanHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$BooleanHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$BooleanHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$BooleanHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$BooleanHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$BooleanHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$BooleanHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$ByteHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$ByteHandlerCreator.h new file mode 100644 index 00000000000..d3ef830f6e0 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$ByteHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$ByteHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$ByteHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$ByteHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$ByteHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$ByteHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$ByteHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$CharHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$CharHandlerCreator.h new file mode 100644 index 00000000000..86438880146 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$CharHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$CharHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$CharHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$CharHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$CharHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$CharHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$CharHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$ClassHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$ClassHandlerCreator.h new file mode 100644 index 00000000000..38cde4cc9e5 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$ClassHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$ClassHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$ClassHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$ClassHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$ClassHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$ClassHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$ClassHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$Creator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$Creator.h new file mode 100644 index 00000000000..69af77b1fce --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$Creator.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$Creator__ +#define __gnu_java_beans_decoder_PersistenceParser$Creator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser$Creator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$Creator : public ::java::lang::Object +{ + +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_beans_decoder_PersistenceParser$Creator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$DoubleHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$DoubleHandlerCreator.h new file mode 100644 index 00000000000..c78f28fab16 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$DoubleHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$DoubleHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$DoubleHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$DoubleHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$DoubleHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$DoubleHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$DoubleHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$FloatHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$FloatHandlerCreator.h new file mode 100644 index 00000000000..e11e994d6c9 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$FloatHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$FloatHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$FloatHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$FloatHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$FloatHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$FloatHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$FloatHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$IntHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$IntHandlerCreator.h new file mode 100644 index 00000000000..a3893aef3f1 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$IntHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$IntHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$IntHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$IntHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$IntHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$IntHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$IntHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$JavaHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$JavaHandlerCreator.h new file mode 100644 index 00000000000..69e03507f41 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$JavaHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$JavaHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$JavaHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$JavaHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$JavaHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$JavaHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$JavaHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$LongHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$LongHandlerCreator.h new file mode 100644 index 00000000000..7081871c6db --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$LongHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$LongHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$LongHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$LongHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$LongHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$LongHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$LongHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$NullHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$NullHandlerCreator.h new file mode 100644 index 00000000000..1db11b4c47c --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$NullHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$NullHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$NullHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$NullHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$NullHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$NullHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$NullHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$ObjectHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$ObjectHandlerCreator.h new file mode 100644 index 00000000000..4adfc87e5d6 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$ObjectHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$ObjectHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$ObjectHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$ObjectHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$ObjectHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$ObjectHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$ObjectHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$ShortHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$ShortHandlerCreator.h new file mode 100644 index 00000000000..f217dc46c62 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$ShortHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$ShortHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$ShortHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$ShortHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$ShortHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$ShortHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$ShortHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$StringHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$StringHandlerCreator.h new file mode 100644 index 00000000000..5c9ec802af4 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$StringHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$StringHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$StringHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$StringHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$StringHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$StringHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$StringHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser$VoidHandlerCreator.h b/libjava/gnu/java/beans/decoder/PersistenceParser$VoidHandlerCreator.h new file mode 100644 index 00000000000..9b696b4ec3e --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser$VoidHandlerCreator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser$VoidHandlerCreator__ +#define __gnu_java_beans_decoder_PersistenceParser$VoidHandlerCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class AbstractElementHandler; + class ElementHandler; + class PersistenceParser; + class PersistenceParser$VoidHandlerCreator; + } + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser$VoidHandlerCreator : public ::java::lang::Object +{ + +public: // actually package-private + PersistenceParser$VoidHandlerCreator(::gnu::java::beans::decoder::PersistenceParser *); +public: + virtual ::gnu::java::beans::decoder::AbstractElementHandler * createHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually package-private + ::gnu::java::beans::decoder::PersistenceParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser$VoidHandlerCreator__ diff --git a/libjava/gnu/java/beans/decoder/PersistenceParser.h b/libjava/gnu/java/beans/decoder/PersistenceParser.h new file mode 100644 index 00000000000..eb4017ac1a1 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PersistenceParser.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PersistenceParser__ +#define __gnu_java_beans_decoder_PersistenceParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class ElementHandler; + class JavaHandler; + class PersistenceParser; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + class XMLDecoder; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::PersistenceParser : public ::org::xml::sax::helpers::DefaultHandler +{ + +public: + PersistenceParser(::java::io::InputStream *, ::java::beans::ExceptionListener *, ::java::lang::ClassLoader *, ::java::beans::XMLDecoder *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void addParameterObject(::java::lang::Object *); + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); + virtual void set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual ::java::lang::Object * getResult(); + virtual void setId(::java::lang::String *); + virtual ::java::lang::String * getId(); + virtual jboolean isStatement(); + virtual void setStatement(jboolean); + virtual ::java::util::Iterator * iterator(); +private: + ::java::beans::ExceptionListener * __attribute__((aligned(__alignof__( ::org::xml::sax::helpers::DefaultHandler)))) exceptionListener; + jint skipElement; + ::java::util::HashMap * handlerCreators; + ::gnu::java::beans::decoder::ElementHandler * currentHandler; +public: // actually package-private + ::gnu::java::beans::decoder::JavaHandler * javaHandler; +private: + ::java::util::List * objects; + ::java::beans::XMLDecoder * decoder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PersistenceParser__ diff --git a/libjava/gnu/java/beans/decoder/PropertyContext.h b/libjava/gnu/java/beans/decoder/PropertyContext.h new file mode 100644 index 00000000000..cb335b39162 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/PropertyContext.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_PropertyContext__ +#define __gnu_java_beans_decoder_PropertyContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class PropertyContext; + } + } + } + } +} + +class gnu::java::beans::decoder::PropertyContext : public ::gnu::java::beans::decoder::AbstractObjectContext +{ + +public: // actually package-private + PropertyContext(::java::lang::String *, ::java::lang::String *); +public: + virtual void addParameterObject(::java::lang::Object *); + virtual void notifyStatement(::gnu::java::beans::decoder::Context *); + virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *); + virtual jboolean subContextFailed(); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractObjectContext)))) argument; + ::java::lang::String * propertyName; + ::java::lang::String * prefix; + jboolean methodCalled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_PropertyContext__ diff --git a/libjava/gnu/java/beans/decoder/ShortHandler.h b/libjava/gnu/java/beans/decoder/ShortHandler.h new file mode 100644 index 00000000000..0d5039ad233 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/ShortHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_ShortHandler__ +#define __gnu_java_beans_decoder_ShortHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ElementHandler; + class ShortHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::ShortHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + ShortHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_ShortHandler__ diff --git a/libjava/gnu/java/beans/decoder/SimpleHandler.h b/libjava/gnu/java/beans/decoder/SimpleHandler.h new file mode 100644 index 00000000000..189b6c8e944 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/SimpleHandler.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_SimpleHandler__ +#define __gnu_java_beans_decoder_SimpleHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class ElementHandler; + class ObjectContext; + class SimpleHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::SimpleHandler : public ::gnu::java::beans::decoder::AbstractElementHandler +{ + +public: // actually package-private + SimpleHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::gnu::java::beans::decoder::Context * startElement(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *); +public: + virtual void endElement(::java::lang::String *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *) = 0; +private: + ::gnu::java::beans::decoder::ObjectContext * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractElementHandler)))) context; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_SimpleHandler__ diff --git a/libjava/gnu/java/beans/decoder/StaticMethodContext.h b/libjava/gnu/java/beans/decoder/StaticMethodContext.h new file mode 100644 index 00000000000..098d8e839a3 --- /dev/null +++ b/libjava/gnu/java/beans/decoder/StaticMethodContext.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_StaticMethodContext__ +#define __gnu_java_beans_decoder_StaticMethodContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class StaticMethodContext; + } + } + } + } +} + +class gnu::java::beans::decoder::StaticMethodContext : public ::gnu::java::beans::decoder::AbstractCreatableObjectContext +{ + +public: // actually package-private + StaticMethodContext(::java::lang::String *, ::java::lang::Class *, ::java::lang::String *); +public: + virtual void addParameterObjectImpl(::java::lang::Object *); +public: // actually protected + virtual ::java::lang::Object * createObject(::gnu::java::beans::decoder::Context *); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::gnu::java::beans::decoder::AbstractCreatableObjectContext)))) arguments; + ::java::lang::Class * klass; + ::java::lang::String * methodName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_StaticMethodContext__ diff --git a/libjava/gnu/java/beans/decoder/StringHandler.h b/libjava/gnu/java/beans/decoder/StringHandler.h new file mode 100644 index 00000000000..9c59db0807b --- /dev/null +++ b/libjava/gnu/java/beans/decoder/StringHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_StringHandler__ +#define __gnu_java_beans_decoder_StringHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class ElementHandler; + class StringHandler; + } + } + } + } +} + +class gnu::java::beans::decoder::StringHandler : public ::gnu::java::beans::decoder::SimpleHandler +{ + +public: // actually package-private + StringHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::java::lang::Object * parse(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_StringHandler__ diff --git a/libjava/gnu/java/beans/decoder/VoidHandler.h b/libjava/gnu/java/beans/decoder/VoidHandler.h new file mode 100644 index 00000000000..264d0c063fd --- /dev/null +++ b/libjava/gnu/java/beans/decoder/VoidHandler.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_decoder_VoidHandler__ +#define __gnu_java_beans_decoder_VoidHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace decoder + { + class Context; + class ElementHandler; + class VoidHandler; + } + } + } + } + namespace java + { + namespace beans + { + class ExceptionListener; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::java::beans::decoder::VoidHandler : public ::gnu::java::beans::decoder::AbstractElementHandler +{ + +public: // actually package-private + VoidHandler(::gnu::java::beans::decoder::ElementHandler *); +public: // actually protected + virtual ::gnu::java::beans::decoder::Context * startElement(::org::xml::sax::Attributes *, ::java::beans::ExceptionListener *); +private: + ::gnu::java::beans::decoder::Context * startElementImpl(::org::xml::sax::Attributes *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_decoder_VoidHandler__ diff --git a/libjava/gnu/java/beans/editors/ColorEditor.h b/libjava/gnu/java/beans/editors/ColorEditor.h new file mode 100644 index 00000000000..73322634c0b --- /dev/null +++ b/libjava/gnu/java/beans/editors/ColorEditor.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_ColorEditor__ +#define __gnu_java_beans_editors_ColorEditor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class ColorEditor; + } + } + } + } + namespace java + { + namespace awt + { + class Color; + } + } +} + +class gnu::java::beans::editors::ColorEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + ColorEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + virtual JArray< ::java::lang::String * > * getTags(); +public: // actually package-private + JArray< ::java::awt::Color * > * __attribute__((aligned(__alignof__( ::java::beans::PropertyEditorSupport)))) stdColors; + JArray< ::java::lang::String * > * stdColorNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_ColorEditor__ diff --git a/libjava/gnu/java/beans/editors/FontEditor.h b/libjava/gnu/java/beans/editors/FontEditor.h new file mode 100644 index 00000000000..da93ed5f667 --- /dev/null +++ b/libjava/gnu/java/beans/editors/FontEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_FontEditor__ +#define __gnu_java_beans_editors_FontEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class FontEditor; + } + } + } + } +} + +class gnu::java::beans::editors::FontEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + FontEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_FontEditor__ diff --git a/libjava/gnu/java/beans/editors/NativeBooleanEditor.h b/libjava/gnu/java/beans/editors/NativeBooleanEditor.h new file mode 100644 index 00000000000..7921525df2a --- /dev/null +++ b/libjava/gnu/java/beans/editors/NativeBooleanEditor.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_NativeBooleanEditor__ +#define __gnu_java_beans_editors_NativeBooleanEditor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class NativeBooleanEditor; + } + } + } + } +} + +class gnu::java::beans::editors::NativeBooleanEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + NativeBooleanEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::beans::PropertyEditorSupport)))) tags; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_NativeBooleanEditor__ diff --git a/libjava/gnu/java/beans/editors/NativeByteEditor.h b/libjava/gnu/java/beans/editors/NativeByteEditor.h new file mode 100644 index 00000000000..38dd6fe8c02 --- /dev/null +++ b/libjava/gnu/java/beans/editors/NativeByteEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_NativeByteEditor__ +#define __gnu_java_beans_editors_NativeByteEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class NativeByteEditor; + } + } + } + } +} + +class gnu::java::beans::editors::NativeByteEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + NativeByteEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_NativeByteEditor__ diff --git a/libjava/gnu/java/beans/editors/NativeDoubleEditor.h b/libjava/gnu/java/beans/editors/NativeDoubleEditor.h new file mode 100644 index 00000000000..d37c220c8a4 --- /dev/null +++ b/libjava/gnu/java/beans/editors/NativeDoubleEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_NativeDoubleEditor__ +#define __gnu_java_beans_editors_NativeDoubleEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class NativeDoubleEditor; + } + } + } + } +} + +class gnu::java::beans::editors::NativeDoubleEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + NativeDoubleEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_NativeDoubleEditor__ diff --git a/libjava/gnu/java/beans/editors/NativeFloatEditor.h b/libjava/gnu/java/beans/editors/NativeFloatEditor.h new file mode 100644 index 00000000000..6d30d762f67 --- /dev/null +++ b/libjava/gnu/java/beans/editors/NativeFloatEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_NativeFloatEditor__ +#define __gnu_java_beans_editors_NativeFloatEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class NativeFloatEditor; + } + } + } + } +} + +class gnu::java::beans::editors::NativeFloatEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + NativeFloatEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_NativeFloatEditor__ diff --git a/libjava/gnu/java/beans/editors/NativeIntEditor.h b/libjava/gnu/java/beans/editors/NativeIntEditor.h new file mode 100644 index 00000000000..eddb16c3be5 --- /dev/null +++ b/libjava/gnu/java/beans/editors/NativeIntEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_NativeIntEditor__ +#define __gnu_java_beans_editors_NativeIntEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class NativeIntEditor; + } + } + } + } +} + +class gnu::java::beans::editors::NativeIntEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + NativeIntEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_NativeIntEditor__ diff --git a/libjava/gnu/java/beans/editors/NativeLongEditor.h b/libjava/gnu/java/beans/editors/NativeLongEditor.h new file mode 100644 index 00000000000..daf81c5bf6f --- /dev/null +++ b/libjava/gnu/java/beans/editors/NativeLongEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_NativeLongEditor__ +#define __gnu_java_beans_editors_NativeLongEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class NativeLongEditor; + } + } + } + } +} + +class gnu::java::beans::editors::NativeLongEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + NativeLongEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_NativeLongEditor__ diff --git a/libjava/gnu/java/beans/editors/NativeShortEditor.h b/libjava/gnu/java/beans/editors/NativeShortEditor.h new file mode 100644 index 00000000000..3329ed709ac --- /dev/null +++ b/libjava/gnu/java/beans/editors/NativeShortEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_NativeShortEditor__ +#define __gnu_java_beans_editors_NativeShortEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class NativeShortEditor; + } + } + } + } +} + +class gnu::java::beans::editors::NativeShortEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + NativeShortEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_NativeShortEditor__ diff --git a/libjava/gnu/java/beans/editors/StringEditor.h b/libjava/gnu/java/beans/editors/StringEditor.h new file mode 100644 index 00000000000..48065824919 --- /dev/null +++ b/libjava/gnu/java/beans/editors/StringEditor.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_editors_StringEditor__ +#define __gnu_java_beans_editors_StringEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace editors + { + class StringEditor; + } + } + } + } +} + +class gnu::java::beans::editors::StringEditor : public ::java::beans::PropertyEditorSupport +{ + +public: + StringEditor(); + virtual void setAsText(::java::lang::String *); + virtual ::java::lang::String * getAsText(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_editors_StringEditor__ diff --git a/libjava/gnu/java/beans/encoder/ArrayPersistenceDelegate.h b/libjava/gnu/java/beans/encoder/ArrayPersistenceDelegate.h new file mode 100644 index 00000000000..489b404b051 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/ArrayPersistenceDelegate.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_ArrayPersistenceDelegate__ +#define __gnu_java_beans_encoder_ArrayPersistenceDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class ArrayPersistenceDelegate; + } + } + } + } + namespace java + { + namespace beans + { + class Encoder; + class Expression; + } + } +} + +class gnu::java::beans::encoder::ArrayPersistenceDelegate : public ::java::beans::PersistenceDelegate +{ + +public: + ArrayPersistenceDelegate(); +public: // actually protected + 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: + static ::java::util::HashMap * NULL_VALUES; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_ArrayPersistenceDelegate__ diff --git a/libjava/gnu/java/beans/encoder/ClassPersistenceDelegate.h b/libjava/gnu/java/beans/encoder/ClassPersistenceDelegate.h new file mode 100644 index 00000000000..4ca1df820cb --- /dev/null +++ b/libjava/gnu/java/beans/encoder/ClassPersistenceDelegate.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_ClassPersistenceDelegate__ +#define __gnu_java_beans_encoder_ClassPersistenceDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class ClassPersistenceDelegate; + } + } + } + } + namespace java + { + namespace beans + { + class Encoder; + class Expression; + } + } +} + +class gnu::java::beans::encoder::ClassPersistenceDelegate : public ::java::beans::PersistenceDelegate +{ + +public: + ClassPersistenceDelegate(); +public: // actually protected + virtual ::java::beans::Expression * instantiate(::java::lang::Object *, ::java::beans::Encoder *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_ClassPersistenceDelegate__ diff --git a/libjava/gnu/java/beans/encoder/CollectionPersistenceDelegate.h b/libjava/gnu/java/beans/encoder/CollectionPersistenceDelegate.h new file mode 100644 index 00000000000..99bd9dfb1c8 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/CollectionPersistenceDelegate.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_CollectionPersistenceDelegate__ +#define __gnu_java_beans_encoder_CollectionPersistenceDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class CollectionPersistenceDelegate; + } + } + } + } + namespace java + { + namespace beans + { + class Encoder; + class Expression; + } + } +} + +class gnu::java::beans::encoder::CollectionPersistenceDelegate : public ::java::beans::PersistenceDelegate +{ + +public: + CollectionPersistenceDelegate(); +public: // actually protected + 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 *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_CollectionPersistenceDelegate__ diff --git a/libjava/gnu/java/beans/encoder/Context.h b/libjava/gnu/java/beans/encoder/Context.h new file mode 100644 index 00000000000..420376f3edf --- /dev/null +++ b/libjava/gnu/java/beans/encoder/Context.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_Context__ +#define __gnu_java_beans_encoder_Context__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Context; + } + } + } + } +} + +class gnu::java::beans::encoder::Context : public ::java::lang::Object +{ + +public: // actually package-private + Context(::java::lang::String *, jint); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) state; + jint call; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_Context__ diff --git a/libjava/gnu/java/beans/encoder/GenericScannerState.h b/libjava/gnu/java/beans/encoder/GenericScannerState.h new file mode 100644 index 00000000000..75e54adc407 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/GenericScannerState.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_GenericScannerState__ +#define __gnu_java_beans_encoder_GenericScannerState__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Context; + class GenericScannerState; + class ObjectId; + class Root; + } + } + } + } +} + +class gnu::java::beans::encoder::GenericScannerState : public ::gnu::java::beans::encoder::ScannerState +{ + +public: // actually package-private + GenericScannerState(::gnu::java::beans::encoder::Root *); + GenericScannerState(::gnu::java::beans::encoder::Root *, jint); +public: // actually protected + virtual void enterImpl(::gnu::java::beans::encoder::Context *); +public: // actually package-private + virtual void methodInvocation(::java::lang::String *); + virtual void staticMethodInvocation(::java::lang::String *, ::java::lang::String *); + virtual void staticFieldAccess(::java::lang::String *, ::java::lang::String *); + virtual void classResolution(::java::lang::String *); + virtual void objectInstantiation(::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveInstantiation(::java::lang::String *, ::java::lang::String *); + virtual void objectArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void arraySet(::java::lang::String *); + virtual void arrayGet(::java::lang::String *); + virtual void listGet(); + virtual void listSet(); + virtual void nullObject(); + virtual void stringReference(::java::lang::String *); + virtual void objectReference(::gnu::java::beans::encoder::ObjectId *); + virtual void end(); + virtual void enter(); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::ScannerState)))) skipElements; + jint initialSkipElements; +public: // actually package-private + ::gnu::java::beans::encoder::Root * root; + ::java::util::HashMap * skipValues; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_GenericScannerState__ diff --git a/libjava/gnu/java/beans/encoder/IgnoringScannerState.h b/libjava/gnu/java/beans/encoder/IgnoringScannerState.h new file mode 100644 index 00000000000..ef44b5c6a48 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/IgnoringScannerState.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_IgnoringScannerState__ +#define __gnu_java_beans_encoder_IgnoringScannerState__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class IgnoringScannerState; + class ObjectId; + } + } + } + } +} + +class gnu::java::beans::encoder::IgnoringScannerState : public ::gnu::java::beans::encoder::ScannerState +{ + +public: // actually package-private + IgnoringScannerState(); + virtual void methodInvocation(::java::lang::String *); + virtual void staticMethodInvocation(::java::lang::String *, ::java::lang::String *); + virtual void staticFieldAccess(::java::lang::String *, ::java::lang::String *); + virtual void classResolution(::java::lang::String *); + virtual void objectInstantiation(::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveInstantiation(::java::lang::String *, ::java::lang::String *); + virtual void objectArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void arraySet(::java::lang::String *); + virtual void arrayGet(::java::lang::String *); + virtual void listGet(); + virtual void listSet(); + virtual void nullObject(); + virtual void stringReference(::java::lang::String *); + virtual void objectReference(::gnu::java::beans::encoder::ObjectId *); + virtual void end(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_IgnoringScannerState__ diff --git a/libjava/gnu/java/beans/encoder/MapPersistenceDelegate.h b/libjava/gnu/java/beans/encoder/MapPersistenceDelegate.h new file mode 100644 index 00000000000..0c99d67b6b1 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/MapPersistenceDelegate.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_MapPersistenceDelegate__ +#define __gnu_java_beans_encoder_MapPersistenceDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class MapPersistenceDelegate; + } + } + } + } + namespace java + { + namespace beans + { + class Encoder; + class Expression; + } + } +} + +class gnu::java::beans::encoder::MapPersistenceDelegate : public ::java::beans::PersistenceDelegate +{ + +public: + MapPersistenceDelegate(); +public: // actually protected + 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 *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_MapPersistenceDelegate__ diff --git a/libjava/gnu/java/beans/encoder/ObjectId.h b/libjava/gnu/java/beans/encoder/ObjectId.h new file mode 100644 index 00000000000..7447c77ce7a --- /dev/null +++ b/libjava/gnu/java/beans/encoder/ObjectId.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_ObjectId__ +#define __gnu_java_beans_encoder_ObjectId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class ObjectId; + } + } + } + } +} + +class gnu::java::beans::encoder::ObjectId : public ::java::lang::Object +{ + +public: // actually package-private + ObjectId(::java::lang::Class *); +public: + virtual jboolean isUnused(); + virtual ::java::lang::String * toString(); + virtual void init(); +private: + static ::java::util::HashMap * nameIndices; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::java::lang::Class * klass; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_ObjectId__ diff --git a/libjava/gnu/java/beans/encoder/PrimitivePersistenceDelegate.h b/libjava/gnu/java/beans/encoder/PrimitivePersistenceDelegate.h new file mode 100644 index 00000000000..7102811bc8f --- /dev/null +++ b/libjava/gnu/java/beans/encoder/PrimitivePersistenceDelegate.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_PrimitivePersistenceDelegate__ +#define __gnu_java_beans_encoder_PrimitivePersistenceDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class PrimitivePersistenceDelegate; + } + } + } + } + namespace java + { + namespace beans + { + class Encoder; + class Expression; + } + } +} + +class gnu::java::beans::encoder::PrimitivePersistenceDelegate : public ::java::beans::PersistenceDelegate +{ + +public: + PrimitivePersistenceDelegate(); +public: // actually protected + 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 *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_PrimitivePersistenceDelegate__ diff --git a/libjava/gnu/java/beans/encoder/ReportingScannerState.h b/libjava/gnu/java/beans/encoder/ReportingScannerState.h new file mode 100644 index 00000000000..b613cedba59 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/ReportingScannerState.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_ReportingScannerState__ +#define __gnu_java_beans_encoder_ReportingScannerState__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class ObjectId; + class ReportingScannerState; + } + } + } + } +} + +class gnu::java::beans::encoder::ReportingScannerState : public ::gnu::java::beans::encoder::ScannerState +{ + +public: // actually package-private + ReportingScannerState(); + virtual void methodInvocation(::java::lang::String *); + virtual void staticMethodInvocation(::java::lang::String *, ::java::lang::String *); + virtual void staticFieldAccess(::java::lang::String *, ::java::lang::String *); + virtual void classResolution(::java::lang::String *); + virtual void objectInstantiation(::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveInstantiation(::java::lang::String *, ::java::lang::String *); + virtual void objectArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void arraySet(::java::lang::String *); + virtual void arrayGet(::java::lang::String *); + virtual void listGet(); + virtual void listSet(); + virtual void nullObject(); + virtual void stringReference(::java::lang::String *); + virtual void objectReference(::gnu::java::beans::encoder::ObjectId *); + virtual void end(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_ReportingScannerState__ diff --git a/libjava/gnu/java/beans/encoder/Root$RootElement.h b/libjava/gnu/java/beans/encoder/Root$RootElement.h new file mode 100644 index 00000000000..b25191fe1f6 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/Root$RootElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_Root$RootElement__ +#define __gnu_java_beans_encoder_Root$RootElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Root$RootElement; + class Writer; + } + } + } + } +} + +class gnu::java::beans::encoder::Root$RootElement : public ::gnu::java::beans::encoder::elements::Element +{ + +public: // actually package-private + Root$RootElement(); +public: + virtual void writeStart(::gnu::java::beans::encoder::Writer *); + virtual void writeEnd(::gnu::java::beans::encoder::Writer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_Root$RootElement__ diff --git a/libjava/gnu/java/beans/encoder/Root.h b/libjava/gnu/java/beans/encoder/Root.h new file mode 100644 index 00000000000..08f587b87ff --- /dev/null +++ b/libjava/gnu/java/beans/encoder/Root.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_Root__ +#define __gnu_java_beans_encoder_Root__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Root; + class Writer; + namespace elements + { + class Element; + } + } + } + } + } +} + +class gnu::java::beans::encoder::Root : public ::java::lang::Object +{ + +public: + Root(); + virtual void addChild(::gnu::java::beans::encoder::elements::Element *); + virtual void end(); + virtual void deleteLast(); + virtual void traverse(::gnu::java::beans::encoder::Writer *); + virtual void close(::gnu::java::beans::encoder::Writer *); +private: + void traverse(::gnu::java::beans::encoder::Writer *, ::java::util::Iterator *); + ::java::util::Stack * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parents; + ::gnu::java::beans::encoder::elements::Element * rootElement; + ::gnu::java::beans::encoder::elements::Element * current; + jboolean started; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_Root__ diff --git a/libjava/gnu/java/beans/encoder/ScanEngine.h b/libjava/gnu/java/beans/encoder/ScanEngine.h new file mode 100644 index 00000000000..7d5b52d3766 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/ScanEngine.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_ScanEngine__ +#define __gnu_java_beans_encoder_ScanEngine__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class ObjectId; + class Root; + class ScanEngine; + class ScannerState; + class Writer; + } + } + } + } + namespace java + { + namespace beans + { + class Expression; + class Statement; + } + } +} + +class gnu::java::beans::encoder::ScanEngine : public ::java::lang::Object +{ + +public: + ScanEngine(::java::io::OutputStream *); +private: + ::gnu::java::beans::encoder::ScannerState * register$(::java::lang::String *, ::gnu::java::beans::encoder::ScannerState *); + ::gnu::java::beans::encoder::ObjectId * retrieveId(::java::lang::Object *); +public: + virtual void writeExpression(::java::beans::Expression *); + virtual void end(); + virtual void revoke(); + virtual void writeStatement(::java::beans::Statement *); + virtual jboolean writeObject(::java::lang::Object *); + virtual void flush(); + virtual void close(); +private: + void transition(jint); +public: // actually package-private + virtual void methodInvocation(::java::lang::String *); + virtual void staticMethodInvocation(::java::lang::String *, ::java::lang::String *); + virtual void staticFieldAccess(::java::lang::String *, ::java::lang::String *); + virtual void classResolution(::java::lang::String *); + virtual void objectInstantiation(::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveInstantiation(::java::lang::String *, ::java::lang::String *); + virtual void objectArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void primitiveArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *); + virtual void arraySet(::java::lang::String *); + virtual void arrayGet(::java::lang::String *); + virtual void listSet(); + virtual void listGet(); + virtual void nullObject(); + virtual void stringReference(::java::lang::String *); + virtual void objectReference(::gnu::java::beans::encoder::ObjectId *); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) DEBUG; + ::java::util::HashMap * states; + ::java::util::Stack * parents; + ::gnu::java::beans::encoder::ScannerState * current; + ::gnu::java::beans::encoder::Root * root; + ::gnu::java::beans::encoder::Writer * writer; + ::java::util::IdentityHashMap * objects; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_ScanEngine__ diff --git a/libjava/gnu/java/beans/encoder/ScannerState.h b/libjava/gnu/java/beans/encoder/ScannerState.h new file mode 100644 index 00000000000..77caf12325d --- /dev/null +++ b/libjava/gnu/java/beans/encoder/ScannerState.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_ScannerState__ +#define __gnu_java_beans_encoder_ScannerState__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Context; + class ObjectId; + class ScannerState; + } + } + } + } +} + +class gnu::java::beans::encoder::ScannerState : public ::java::lang::Object +{ + +public: + ScannerState(); +public: // actually package-private + virtual void init(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual void enter(::gnu::java::beans::encoder::Context *); +public: // actually protected + virtual void enterImpl(::gnu::java::beans::encoder::Context *); +public: // actually package-private + virtual ::gnu::java::beans::encoder::Context * context(); + virtual jint getCalls(); + virtual void putSuccessor(jint, ::java::lang::String *); + virtual ::java::lang::String * getSuccessor(jint); + virtual void setDefaultSuccessor(::java::lang::String *); + virtual void methodInvocation(::java::lang::String *) = 0; + virtual void staticMethodInvocation(::java::lang::String *, ::java::lang::String *) = 0; + virtual void staticFieldAccess(::java::lang::String *, ::java::lang::String *) = 0; + virtual void classResolution(::java::lang::String *) = 0; + virtual void objectInstantiation(::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *) = 0; + virtual void primitiveInstantiation(::java::lang::String *, ::java::lang::String *) = 0; + virtual void objectArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *) = 0; + virtual void primitiveArrayInstantiation(::java::lang::String *, ::java::lang::String *, ::gnu::java::beans::encoder::ObjectId *) = 0; + virtual void arraySet(::java::lang::String *) = 0; + virtual void arrayGet(::java::lang::String *) = 0; + virtual void listGet() = 0; + virtual void listSet() = 0; + virtual void nullObject() = 0; + virtual void stringReference(::java::lang::String *) = 0; + virtual void objectReference(::gnu::java::beans::encoder::ObjectId *) = 0; + virtual void end() = 0; + virtual void enter(); + static const jint TRANSITION_METHOD_INVOCATION = 0; + static const jint TRANSITION_STATIC_METHOD_INVOCATION = 1; + static const jint TRANSITION_STATIC_FIELD_ACCESS = 2; + static const jint TRANSITION_CLASS_RESOLUTION = 3; + static const jint TRANSITION_OBJECT_INSTANTIATION = 4; + static const jint TRANSITION_PRIMITIVE_INSTANTIATION = 5; + static const jint TRANSITION_OBJECT_ARRAY_INSTANTIATION = 6; + static const jint TRANSITION_PRIMITIVE_ARRAY_INSTANTIATION = 7; + static const jint TRANSITION_ARRAY_SET = 8; + static const jint TRANSITION_ARRAY_GET = 9; + static const jint TRANSITION_LIST_SET = 10; + static const jint TRANSITION_LIST_GET = 11; + static const jint TRANSITION_NULL_OBJECT = 12; + static const jint TRANSITION_STRING_REFERENCE = 13; + static const jint TRANSITION_OBJECT_REFERENCE = 14; + static const jint TRANSITION_FIRST = 0; + static const jint TRANSITION_LAST = 14; + static ::java::lang::String * DEFAULT_STATE_NAME; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) defaultSuccessor; + static JArray< ::java::lang::String * > * transitionNames; + ::java::util::HashMap * transitions; + jint calls; + ::gnu::java::beans::encoder::Context * context__; + ::java::lang::String * name; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_ScannerState__ diff --git a/libjava/gnu/java/beans/encoder/StAXWriter.h b/libjava/gnu/java/beans/encoder/StAXWriter.h new file mode 100644 index 00000000000..06298b0d779 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/StAXWriter.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_StAXWriter__ +#define __gnu_java_beans_encoder_StAXWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class StAXWriter; + } + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class XMLStreamWriter; + } + } + } +} + +class gnu::java::beans::encoder::StAXWriter : public ::java::lang::Object +{ + +public: + StAXWriter(::java::io::OutputStream *); + virtual void flush(); + virtual void close(); + virtual void writePreamble(); + virtual void writeEnd(jboolean); + virtual void writeEndNoChildren(); + virtual void write(::java::lang::String *, jboolean); + virtual void write(::java::lang::String *, ::java::lang::String *); + virtual void writeNoChildren(::java::lang::String *, ::java::lang::String *); + virtual void write(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean); + virtual void write(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean); + virtual void write(::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean); +public: // actually package-private + ::javax::xml::stream::XMLStreamWriter * __attribute__((aligned(__alignof__( ::java::lang::Object)))) writer; + jint indent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_StAXWriter__ diff --git a/libjava/gnu/java/beans/encoder/Writer.h b/libjava/gnu/java/beans/encoder/Writer.h new file mode 100644 index 00000000000..21ac47d5876 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/Writer.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_Writer__ +#define __gnu_java_beans_encoder_Writer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + } + } + } + } +} + +class gnu::java::beans::encoder::Writer : public ::java::lang::Object +{ + +public: + virtual void writePreamble() = 0; + virtual void writeEnd(jboolean) = 0; + virtual void write(::java::lang::String *, jboolean) = 0; + virtual void write(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void write(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean) = 0; + virtual void write(::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean) = 0; + virtual void write(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeNoChildren(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeEndNoChildren() = 0; + virtual void flush() = 0; + virtual void close() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_beans_encoder_Writer__ diff --git a/libjava/gnu/java/beans/encoder/elements/ArrayInstantiation.h b/libjava/gnu/java/beans/encoder/elements/ArrayInstantiation.h new file mode 100644 index 00000000000..aaf8ab1189b --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/ArrayInstantiation.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_ArrayInstantiation__ +#define __gnu_java_beans_encoder_elements_ArrayInstantiation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class ArrayInstantiation; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::ArrayInstantiation : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + ArrayInstantiation(::java::lang::String *, ::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) className; + ::java::lang::String * lengthAsString; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_ArrayInstantiation__ diff --git a/libjava/gnu/java/beans/encoder/elements/Array_Get.h b/libjava/gnu/java/beans/encoder/elements/Array_Get.h new file mode 100644 index 00000000000..73a0dd70256 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/Array_Get.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_Array_Get__ +#define __gnu_java_beans_encoder_elements_Array_Get__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class Array_Get; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::Array_Get : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + Array_Get(::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) indexAsString; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_Array_Get__ diff --git a/libjava/gnu/java/beans/encoder/elements/Array_Set.h b/libjava/gnu/java/beans/encoder/elements/Array_Set.h new file mode 100644 index 00000000000..353d5a00dd8 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/Array_Set.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_Array_Set__ +#define __gnu_java_beans_encoder_elements_Array_Set__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class Array_Set; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::Array_Set : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + Array_Set(::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) indexAsString; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_Array_Set__ diff --git a/libjava/gnu/java/beans/encoder/elements/ClassResolution.h b/libjava/gnu/java/beans/encoder/elements/ClassResolution.h new file mode 100644 index 00000000000..569602c5b1a --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/ClassResolution.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_ClassResolution__ +#define __gnu_java_beans_encoder_elements_ClassResolution__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class ClassResolution; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::ClassResolution : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + ClassResolution(::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); + virtual void writeEnd(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) className; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_ClassResolution__ diff --git a/libjava/gnu/java/beans/encoder/elements/Element.h b/libjava/gnu/java/beans/encoder/elements/Element.h new file mode 100644 index 00000000000..5c53e7d1ed9 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/Element.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_Element__ +#define __gnu_java_beans_encoder_elements_Element__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class ObjectId; + class Writer; + namespace elements + { + class Element; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::Element : public ::java::lang::Object +{ + +public: + Element(); + virtual void initId(::gnu::java::beans::encoder::ObjectId *); + virtual void addChild(::gnu::java::beans::encoder::elements::Element *); + virtual void removeLast(); + virtual ::java::util::Iterator * iterator(); + virtual void clear(); + virtual jboolean isEmpty(); + virtual ::gnu::java::beans::encoder::ObjectId * getId(); + virtual void writeStart(::gnu::java::beans::encoder::Writer *) = 0; + virtual void writeEnd(::gnu::java::beans::encoder::Writer *); +private: + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) children; + ::gnu::java::beans::encoder::ObjectId * objectId; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_Element__ diff --git a/libjava/gnu/java/beans/encoder/elements/List_Get.h b/libjava/gnu/java/beans/encoder/elements/List_Get.h new file mode 100644 index 00000000000..cdd65d17631 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/List_Get.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_List_Get__ +#define __gnu_java_beans_encoder_elements_List_Get__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class List_Get; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::List_Get : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + List_Get(); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_List_Get__ diff --git a/libjava/gnu/java/beans/encoder/elements/List_Set.h b/libjava/gnu/java/beans/encoder/elements/List_Set.h new file mode 100644 index 00000000000..444fbac3611 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/List_Set.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_List_Set__ +#define __gnu_java_beans_encoder_elements_List_Set__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class List_Set; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::List_Set : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + List_Set(); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_List_Set__ diff --git a/libjava/gnu/java/beans/encoder/elements/MethodInvocation.h b/libjava/gnu/java/beans/encoder/elements/MethodInvocation.h new file mode 100644 index 00000000000..884d2c85752 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/MethodInvocation.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_MethodInvocation__ +#define __gnu_java_beans_encoder_elements_MethodInvocation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class MethodInvocation; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::MethodInvocation : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + MethodInvocation(::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) methodName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_MethodInvocation__ diff --git a/libjava/gnu/java/beans/encoder/elements/NullObject.h b/libjava/gnu/java/beans/encoder/elements/NullObject.h new file mode 100644 index 00000000000..9c1dca7a2d0 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/NullObject.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_NullObject__ +#define __gnu_java_beans_encoder_elements_NullObject__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class NullObject; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::NullObject : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + NullObject(); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); + virtual void writeEnd(::gnu::java::beans::encoder::Writer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_NullObject__ diff --git a/libjava/gnu/java/beans/encoder/elements/ObjectInstantiation.h b/libjava/gnu/java/beans/encoder/elements/ObjectInstantiation.h new file mode 100644 index 00000000000..78881858822 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/ObjectInstantiation.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_ObjectInstantiation__ +#define __gnu_java_beans_encoder_elements_ObjectInstantiation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class ObjectInstantiation; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::ObjectInstantiation : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + ObjectInstantiation(::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) className; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_ObjectInstantiation__ diff --git a/libjava/gnu/java/beans/encoder/elements/ObjectReference.h b/libjava/gnu/java/beans/encoder/elements/ObjectReference.h new file mode 100644 index 00000000000..9ee28a604f4 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/ObjectReference.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_ObjectReference__ +#define __gnu_java_beans_encoder_elements_ObjectReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class ObjectId; + class Writer; + namespace elements + { + class ObjectReference; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::ObjectReference : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + ObjectReference(::gnu::java::beans::encoder::ObjectId *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::gnu::java::beans::encoder::ObjectId * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_ObjectReference__ diff --git a/libjava/gnu/java/beans/encoder/elements/PrimitiveInstantiation.h b/libjava/gnu/java/beans/encoder/elements/PrimitiveInstantiation.h new file mode 100644 index 00000000000..1a04f344ced --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/PrimitiveInstantiation.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_PrimitiveInstantiation__ +#define __gnu_java_beans_encoder_elements_PrimitiveInstantiation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class PrimitiveInstantiation; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::PrimitiveInstantiation : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + PrimitiveInstantiation(::java::lang::String *, ::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); + virtual void writeEnd(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) primitiveName; + ::java::lang::String * valueAsString; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_PrimitiveInstantiation__ diff --git a/libjava/gnu/java/beans/encoder/elements/StaticFieldAccess.h b/libjava/gnu/java/beans/encoder/elements/StaticFieldAccess.h new file mode 100644 index 00000000000..0761cd8503b --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/StaticFieldAccess.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_StaticFieldAccess__ +#define __gnu_java_beans_encoder_elements_StaticFieldAccess__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class StaticFieldAccess; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::StaticFieldAccess : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + StaticFieldAccess(::java::lang::String *, ::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) className; + ::java::lang::String * fieldName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_StaticFieldAccess__ diff --git a/libjava/gnu/java/beans/encoder/elements/StaticMethodInvocation.h b/libjava/gnu/java/beans/encoder/elements/StaticMethodInvocation.h new file mode 100644 index 00000000000..982c7265439 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/StaticMethodInvocation.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_StaticMethodInvocation__ +#define __gnu_java_beans_encoder_elements_StaticMethodInvocation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class StaticMethodInvocation; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::StaticMethodInvocation : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + StaticMethodInvocation(::java::lang::String *, ::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) className; + ::java::lang::String * methodName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_StaticMethodInvocation__ diff --git a/libjava/gnu/java/beans/encoder/elements/StringReference.h b/libjava/gnu/java/beans/encoder/elements/StringReference.h new file mode 100644 index 00000000000..01b10747022 --- /dev/null +++ b/libjava/gnu/java/beans/encoder/elements/StringReference.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_beans_encoder_elements_StringReference__ +#define __gnu_java_beans_encoder_elements_StringReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace beans + { + namespace encoder + { + class Writer; + namespace elements + { + class StringReference; + } + } + } + } + } +} + +class gnu::java::beans::encoder::elements::StringReference : public ::gnu::java::beans::encoder::elements::Element +{ + +public: + StringReference(::java::lang::String *); + virtual void writeStart(::gnu::java::beans::encoder::Writer *); + virtual void writeEnd(::gnu::java::beans::encoder::Writer *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) string; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_beans_encoder_elements_StringReference__ diff --git a/libjava/gnu/java/io/ASN1ParsingException.h b/libjava/gnu/java/io/ASN1ParsingException.h new file mode 100644 index 00000000000..e29e63cad03 --- /dev/null +++ b/libjava/gnu/java/io/ASN1ParsingException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_io_ASN1ParsingException__ +#define __gnu_java_io_ASN1ParsingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace io + { + class ASN1ParsingException; + } + } + } +} + +class gnu::java::io::ASN1ParsingException : public ::java::io::IOException +{ + +public: + ASN1ParsingException(); + ASN1ParsingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_io_ASN1ParsingException__ diff --git a/libjava/gnu/java/io/Base64InputStream.h b/libjava/gnu/java/io/Base64InputStream.h new file mode 100644 index 00000000000..22568f8001d --- /dev/null +++ b/libjava/gnu/java/io/Base64InputStream.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_io_Base64InputStream__ +#define __gnu_java_io_Base64InputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace io + { + class Base64InputStream; + } + } + } +} + +class gnu::java::io::Base64InputStream : public ::java::io::FilterInputStream +{ + +public: + Base64InputStream(::java::io::InputStream *); + static JArray< jbyte > * decode(::java::lang::String *); + virtual jint available(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jboolean markSupported(); + virtual void mark(jint); + virtual void reset(); + virtual jlong skip(jlong); +private: + static ::java::lang::String * BASE_64; + static const jchar BASE_64_PAD = 61; + jint __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) state; + jint temp; + jboolean eof; + JArray< jbyte > * one; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_io_Base64InputStream__ diff --git a/libjava/gnu/java/io/ClassLoaderObjectInputStream.h b/libjava/gnu/java/io/ClassLoaderObjectInputStream.h new file mode 100644 index 00000000000..e2cac0b6e8e --- /dev/null +++ b/libjava/gnu/java/io/ClassLoaderObjectInputStream.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_io_ClassLoaderObjectInputStream__ +#define __gnu_java_io_ClassLoaderObjectInputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace io + { + class ClassLoaderObjectInputStream; + } + } + } +} + +class gnu::java::io::ClassLoaderObjectInputStream : public ::java::io::ObjectInputStream +{ + +public: + ClassLoaderObjectInputStream(::java::io::InputStream *, ::java::lang::ClassLoader *); + virtual ::java::lang::Class * resolveClass(::java::lang::String *); +public: // actually package-private + ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::io::ObjectInputStream)))) myClassLoader; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_io_ClassLoaderObjectInputStream__ diff --git a/libjava/gnu/java/io/NullOutputStream.h b/libjava/gnu/java/io/NullOutputStream.h new file mode 100644 index 00000000000..d2e15e25d11 --- /dev/null +++ b/libjava/gnu/java/io/NullOutputStream.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_io_NullOutputStream__ +#define __gnu_java_io_NullOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace io + { + class NullOutputStream; + } + } + } +} + +class gnu::java::io::NullOutputStream : public ::java::io::OutputStream +{ + +public: + NullOutputStream(); + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void flush(); + virtual void close(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_io_NullOutputStream__ diff --git a/libjava/gnu/java/io/ObjectIdentityMap2Int.h b/libjava/gnu/java/io/ObjectIdentityMap2Int.h new file mode 100644 index 00000000000..7ffb5bae5f8 --- /dev/null +++ b/libjava/gnu/java/io/ObjectIdentityMap2Int.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_io_ObjectIdentityMap2Int__ +#define __gnu_java_io_ObjectIdentityMap2Int__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace io + { + class ObjectIdentityMap2Int; + } + } + } +} + +class gnu::java::io::ObjectIdentityMap2Int : public ::java::lang::Object +{ + +public: + ObjectIdentityMap2Int(); +private: + void alloc(jint); +public: + virtual void put(::java::lang::Object *, jint); +private: + jint slot(::java::lang::Object *); + void rehash(); +public: + virtual jint get(::java::lang::Object *); + virtual void clear(); +private: + static JArray< jint > * PRIMES; + static ::java::lang::Object * NIL; + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) objectTable; + JArray< jint > * intTable; + jint size; + jint cap; + jint limit; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_io_ObjectIdentityMap2Int__ diff --git a/libjava/gnu/java/io/ObjectIdentityWrapper.h b/libjava/gnu/java/io/ObjectIdentityWrapper.h new file mode 100644 index 00000000000..2718b94e29d --- /dev/null +++ b/libjava/gnu/java/io/ObjectIdentityWrapper.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_io_ObjectIdentityWrapper__ +#define __gnu_java_io_ObjectIdentityWrapper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace io + { + class ObjectIdentityWrapper; + } + } + } +} + +class gnu::java::io::ObjectIdentityWrapper : public ::java::lang::Object +{ + +public: + ObjectIdentityWrapper(::java::lang::Object *); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) object; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_io_ObjectIdentityWrapper__ diff --git a/libjava/gnu/java/io/PlatformHelper.h b/libjava/gnu/java/io/PlatformHelper.h new file mode 100644 index 00000000000..31a5fdff918 --- /dev/null +++ b/libjava/gnu/java/io/PlatformHelper.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_io_PlatformHelper__ +#define __gnu_java_io_PlatformHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace io + { + class PlatformHelper; + } + } + } +} + +class gnu::java::io::PlatformHelper : public ::java::lang::Object +{ + +public: + PlatformHelper(); + static jint beginWithRootPathPrefix(::java::lang::String *); + static jboolean isRootDirectory(::java::lang::String *); + static jboolean endWithSeparator(::java::lang::String *); + static ::java::lang::String * removeTailSeparator(::java::lang::String *); + static jint lastIndexOfSeparator(::java::lang::String *); + static jboolean isWindows; + static ::java::lang::String * separator; + static jchar separatorChar; + static ::java::lang::String * pathSeparator; + static jchar pathSeparatorChar; + static const jint INITIAL_MAX_PATH = 130; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_io_PlatformHelper__ diff --git a/libjava/gnu/java/lang/ArrayHelper.h b/libjava/gnu/java/lang/ArrayHelper.h new file mode 100644 index 00000000000..93b7578f57c --- /dev/null +++ b/libjava/gnu/java/lang/ArrayHelper.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_ArrayHelper__ +#define __gnu_java_lang_ArrayHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + class ArrayHelper; + } + } + } +} + +class gnu::java::lang::ArrayHelper : public ::java::lang::Object +{ + +public: + ArrayHelper(); + static jboolean contains(JArray< ::java::lang::Object * > *, ::java::lang::Object *); + static jint indexOf(JArray< ::java::lang::Object * > *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_ArrayHelper__ diff --git a/libjava/gnu/java/lang/CharData.h b/libjava/gnu/java/lang/CharData.h new file mode 100644 index 00000000000..0a16c891e94 --- /dev/null +++ b/libjava/gnu/java/lang/CharData.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_CharData__ +#define __gnu_java_lang_CharData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + class CharData; + } + } + } +} + +class gnu::java::lang::CharData : public ::java::lang::Object +{ + +public: + static ::java::lang::String * SOURCE; + static JArray< jint > * SHIFT; + static JArray< ::java::lang::String * > * BLOCKS; + static JArray< jint > * LARGENUMS; + static JArray< ::java::lang::String * > * DATA; + static JArray< ::java::lang::String * > * NUM_VALUE; + static JArray< ::java::lang::String * > * UPPER; + static JArray< ::java::lang::String * > * LOWER; + static JArray< ::java::lang::String * > * DIRECTION; + static ::java::lang::String * TITLE; + static ::java::lang::String * UPPER_SPECIAL; + static ::java::lang::String * UPPER_EXPAND; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_lang_CharData__ diff --git a/libjava/gnu/java/lang/ClassHelper.h b/libjava/gnu/java/lang/ClassHelper.h new file mode 100644 index 00000000000..d42070e9a00 --- /dev/null +++ b/libjava/gnu/java/lang/ClassHelper.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_ClassHelper__ +#define __gnu_java_lang_ClassHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + class ClassHelper; + } + } + } +} + +class gnu::java::lang::ClassHelper : public ::java::lang::Object +{ + +public: + ClassHelper(); + static ::java::lang::String * getTruncatedClassName(::java::lang::Class *); + static ::java::lang::String * getTruncatedName(::java::lang::String *); + static ::java::lang::String * getUserName(::java::lang::Class *); + static JArray< ::java::lang::reflect::Method * > * getAllMethods(::java::lang::Class *); + static JArray< ::java::lang::reflect::Field * > * getAllFields(::java::lang::Class *); +private: + static ::java::util::Map * allMethods; + static ::java::util::Map * allFields; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_ClassHelper__ diff --git a/libjava/gnu/java/lang/InstrumentationImpl.h b/libjava/gnu/java/lang/InstrumentationImpl.h new file mode 100644 index 00000000000..675626e9b31 --- /dev/null +++ b/libjava/gnu/java/lang/InstrumentationImpl.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_InstrumentationImpl__ +#define __gnu_java_lang_InstrumentationImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + class InstrumentationImpl; + } + } + } + namespace java + { + namespace security + { + class ProtectionDomain; + } + } +} + +class gnu::java::lang::InstrumentationImpl : public ::java::lang::Object +{ + +public: // actually package-private + InstrumentationImpl(); +public: + void addTransformer(::java::lang::instrument::ClassFileTransformer *); + jboolean removeTransformer(::java::lang::instrument::ClassFileTransformer *); + jboolean isRedefineClassesSupported(); + void redefineClasses(JArray< ::java::lang::instrument::ClassDefinition * > *); + JArray< ::java::lang::Class * > * getAllLoadedClasses(); + JArray< ::java::lang::Class * > * getInitiatedClasses(::java::lang::ClassLoader *); + jlong getObjectSize(::java::lang::Object *); + JArray< jbyte > * callTransformers(::java::lang::ClassLoader *, ::java::lang::String *, ::java::lang::Class *, ::java::security::ProtectionDomain *, JArray< jbyte > *); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) transformers; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_InstrumentationImpl__ diff --git a/libjava/gnu/java/lang/MainThread.h b/libjava/gnu/java/lang/MainThread.h new file mode 100644 index 00000000000..d92d04dc868 --- /dev/null +++ b/libjava/gnu/java/lang/MainThread.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_MainThread__ +#define __gnu_java_lang_MainThread__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + class MainThread; + } + } + } +} + +class gnu::java::lang::MainThread : public ::java::lang::Thread +{ + +public: + MainThread(::java::lang::Class *, JArray< ::java::lang::String * > *); + MainThread(::java::lang::String *, JArray< ::java::lang::String * > *, jboolean); + void run(); +private: + ::java::lang::String * getMain(::java::lang::String *); + void call_main(); +public: // actually package-private + static ::java::lang::Class * Kcert; + static ::java::lang::Class * Kfile; + static ::java::lang::Class * Khttp; + static ::java::lang::Class * Kjar; + static ::java::lang::Class * Klocale; + static ::java::lang::Class * Kcalendar; +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) klass; + ::java::lang::String * klass_name; + JArray< ::java::lang::String * > * args; + jboolean is_jar; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_MainThread__ diff --git a/libjava/gnu/java/lang/VMInstrumentationImpl.h b/libjava/gnu/java/lang/VMInstrumentationImpl.h new file mode 100644 index 00000000000..1b647a3ecfe --- /dev/null +++ b/libjava/gnu/java/lang/VMInstrumentationImpl.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_VMInstrumentationImpl__ +#define __gnu_java_lang_VMInstrumentationImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + class VMInstrumentationImpl; + } + } + } +} + +class gnu::java::lang::VMInstrumentationImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMInstrumentationImpl(); + static jboolean isRedefineClassesSupported(); + static void redefineClasses(::java::lang::instrument::Instrumentation *, JArray< ::java::lang::instrument::ClassDefinition * > *); + static JArray< ::java::lang::Class * > * getAllLoadedClasses(); + static JArray< ::java::lang::Class * > * getInitiatedClasses(::java::lang::ClassLoader *); + static jlong getObjectSize(::java::lang::Object *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_VMInstrumentationImpl__ diff --git a/libjava/gnu/java/lang/management/BeanImpl.h b/libjava/gnu/java/lang/management/BeanImpl.h new file mode 100644 index 00000000000..56b8a050cb3 --- /dev/null +++ b/libjava/gnu/java/lang/management/BeanImpl.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_BeanImpl__ +#define __gnu_java_lang_management_BeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class BeanImpl; + } + } + } + } + namespace javax + { + namespace management + { + class MBeanInfo; + class MBeanParameterInfo; + namespace openmbean + { + class OpenMBeanInfo; + class OpenMBeanParameterInfo; + class OpenType; + } + } + } +} + +class gnu::java::lang::management::BeanImpl : public ::javax::management::StandardMBean +{ + +public: // actually protected + BeanImpl(::java::lang::Class *); + virtual void cacheMBeanInfo(::javax::management::MBeanInfo *); + virtual void checkMonitorPermissions(); + virtual void checkControlPermissions(); +public: + virtual ::java::lang::Object * getAttribute(::java::lang::String *); +public: // actually protected + virtual ::javax::management::MBeanInfo * getCachedMBeanInfo(); +public: + virtual ::javax::management::MBeanInfo * getMBeanInfo(); +private: + ::javax::management::openmbean::OpenType * getTypeFromClass(::java::lang::Class *); + JArray< ::javax::management::openmbean::OpenMBeanParameterInfo * > * translateSignature(JArray< ::javax::management::MBeanParameterInfo * > *); + ::javax::management::openmbean::OpenMBeanParameterInfo * translate(::java::lang::String *); + ::javax::management::openmbean::OpenMBeanInfo * __attribute__((aligned(__alignof__( ::javax::management::StandardMBean)))) openInfo; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_BeanImpl__ diff --git a/libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h b/libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h new file mode 100644 index 00000000000..c03db232426 --- /dev/null +++ b/libjava/gnu/java/lang/management/ClassLoadingMXBeanImpl.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_ClassLoadingMXBeanImpl__ +#define __gnu_java_lang_management_ClassLoadingMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class ClassLoadingMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::ClassLoadingMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + ClassLoadingMXBeanImpl(); + jint getLoadedClassCount(); + jlong getTotalLoadedClassCount(); + jlong getUnloadedClassCount(); + jboolean isVerbose(); + void setVerbose(jboolean); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_ClassLoadingMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/CompilationMXBeanImpl.h b/libjava/gnu/java/lang/management/CompilationMXBeanImpl.h new file mode 100644 index 00000000000..c11d3fb8389 --- /dev/null +++ b/libjava/gnu/java/lang/management/CompilationMXBeanImpl.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_CompilationMXBeanImpl__ +#define __gnu_java_lang_management_CompilationMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class CompilationMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::CompilationMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + CompilationMXBeanImpl(); + ::java::lang::String * getName(); + jboolean isCompilationTimeMonitoringSupported(); + jlong getTotalCompilationTime(); +private: + static ::java::lang::String * COMPILER_NAME; + static ::java::lang::String * COMPILATION_TIME_SUPPORT; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_CompilationMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h b/libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h new file mode 100644 index 00000000000..cfefdb653e3 --- /dev/null +++ b/libjava/gnu/java/lang/management/GarbageCollectorMXBeanImpl.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_GarbageCollectorMXBeanImpl__ +#define __gnu_java_lang_management_GarbageCollectorMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class GarbageCollectorMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::GarbageCollectorMXBeanImpl : public ::gnu::java::lang::management::MemoryManagerMXBeanImpl +{ + +public: + GarbageCollectorMXBeanImpl(::java::lang::String *); + jlong getCollectionCount(); + jlong getCollectionTime(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_GarbageCollectorMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/MemoryMXBeanImpl$ListenerData.h b/libjava/gnu/java/lang/management/MemoryMXBeanImpl$ListenerData.h new file mode 100644 index 00000000000..0be0fe815ae --- /dev/null +++ b/libjava/gnu/java/lang/management/MemoryMXBeanImpl$ListenerData.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_MemoryMXBeanImpl$ListenerData__ +#define __gnu_java_lang_management_MemoryMXBeanImpl$ListenerData__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class MemoryMXBeanImpl; + class MemoryMXBeanImpl$ListenerData; + } + } + } + } + namespace javax + { + namespace management + { + class NotificationFilter; + class NotificationListener; + } + } +} + +class gnu::java::lang::management::MemoryMXBeanImpl$ListenerData : public ::java::lang::Object +{ + +public: + MemoryMXBeanImpl$ListenerData(::gnu::java::lang::management::MemoryMXBeanImpl *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual ::javax::management::NotificationListener * getListener(); + virtual ::javax::management::NotificationFilter * getFilter(); + virtual ::java::lang::Object * getPassback(); + virtual jboolean equals(::java::lang::Object *); +private: + ::javax::management::NotificationListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listener; + ::javax::management::NotificationFilter * filter; + ::java::lang::Object * passback; +public: // actually package-private + ::gnu::java::lang::management::MemoryMXBeanImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_MemoryMXBeanImpl$ListenerData__ diff --git a/libjava/gnu/java/lang/management/MemoryMXBeanImpl.h b/libjava/gnu/java/lang/management/MemoryMXBeanImpl.h new file mode 100644 index 00000000000..3c87a0f355b --- /dev/null +++ b/libjava/gnu/java/lang/management/MemoryMXBeanImpl.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_MemoryMXBeanImpl__ +#define __gnu_java_lang_management_MemoryMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class MemoryMXBeanImpl; + } + } + } + } + namespace javax + { + namespace management + { + class MBeanNotificationInfo; + class NotificationFilter; + class NotificationListener; + namespace openmbean + { + class CompositeType; + } + } + } +} + +class gnu::java::lang::management::MemoryMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + MemoryMXBeanImpl(); + void gc(); + ::java::lang::management::MemoryUsage * getHeapMemoryUsage(); + ::java::lang::management::MemoryUsage * getNonHeapMemoryUsage(); + jint getObjectPendingFinalizationCount(); + jboolean isVerbose(); + void setVerbose(jboolean); + void addNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + JArray< ::javax::management::MBeanNotificationInfo * > * getNotificationInfo(); + void removeNotificationListener(::javax::management::NotificationListener *); + void removeNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); +public: // actually package-private + void fireNotification(::java::lang::String *, ::java::lang::String *, jlong, jlong, jlong, jlong, jlong); + void fireThresholdExceededNotification(::java::lang::String *, jlong, jlong, jlong, jlong, jlong); + void fireCollectionThresholdExceededNotification(::java::lang::String *, jlong, jlong, jlong, jlong, jlong); +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) listeners; + jlong notificationCount; +public: + static ::javax::management::openmbean::CompositeType * notifType; + static ::javax::management::openmbean::CompositeType * usageType; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_MemoryMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h b/libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h new file mode 100644 index 00000000000..2ddbf70eac1 --- /dev/null +++ b/libjava/gnu/java/lang/management/MemoryManagerMXBeanImpl.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_MemoryManagerMXBeanImpl__ +#define __gnu_java_lang_management_MemoryManagerMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class MemoryManagerMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::MemoryManagerMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + MemoryManagerMXBeanImpl(::java::lang::String *); +public: // actually protected + MemoryManagerMXBeanImpl(::java::lang::String *, ::java::lang::Class *); +public: + virtual JArray< ::java::lang::String * > * getMemoryPoolNames(); + virtual ::java::lang::String * getName(); + virtual jboolean isValid(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_MemoryManagerMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h b/libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h new file mode 100644 index 00000000000..ff3734d2858 --- /dev/null +++ b/libjava/gnu/java/lang/management/MemoryPoolMXBeanImpl.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_MemoryPoolMXBeanImpl__ +#define __gnu_java_lang_management_MemoryPoolMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class MemoryPoolMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::MemoryPoolMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + MemoryPoolMXBeanImpl(::java::lang::String *); + ::java::lang::management::MemoryUsage * getCollectionUsage(); + jlong getCollectionUsageThreshold(); + jlong getCollectionUsageThresholdCount(); + JArray< ::java::lang::String * > * getMemoryManagerNames(); + ::java::lang::String * getName(); + ::java::lang::management::MemoryUsage * getPeakUsage(); + ::java::lang::management::MemoryType * getType(); + ::java::lang::management::MemoryUsage * getUsage(); + jlong getUsageThreshold(); + jlong getUsageThresholdCount(); + jboolean isCollectionUsageThresholdExceeded(); + jboolean isCollectionUsageThresholdSupported(); + jboolean isUsageThresholdExceeded(); + jboolean isUsageThresholdSupported(); + jboolean isValid(); + void resetPeakUsage(); + void setCollectionUsageThreshold(jlong); + void setUsageThreshold(jlong); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) name; + static ::java::lang::String * COLLECTION_USAGE_THRESHOLD; + static ::java::lang::String * USAGE_THRESHOLD; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_MemoryPoolMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h b/libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h new file mode 100644 index 00000000000..41385fe2542 --- /dev/null +++ b/libjava/gnu/java/lang/management/OperatingSystemMXBeanImpl.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_OperatingSystemMXBeanImpl__ +#define __gnu_java_lang_management_OperatingSystemMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class OperatingSystemMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::OperatingSystemMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + OperatingSystemMXBeanImpl(); + ::java::lang::String * getArch(); + jint getAvailableProcessors(); + ::java::lang::String * getName(); + ::java::lang::String * getVersion(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_OperatingSystemMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h b/libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h new file mode 100644 index 00000000000..f46f6df2c5a --- /dev/null +++ b/libjava/gnu/java/lang/management/RuntimeMXBeanImpl.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_RuntimeMXBeanImpl__ +#define __gnu_java_lang_management_RuntimeMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class RuntimeMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::RuntimeMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + RuntimeMXBeanImpl(); + ::java::lang::String * getBootClassPath(); + ::java::lang::String * getClassPath(); + ::java::util::List * getInputArguments(); + ::java::lang::String * getLibraryPath(); + ::java::lang::String * getManagementSpecVersion(); + ::java::lang::String * getName(); + ::java::lang::String * getSpecName(); + ::java::lang::String * getSpecVendor(); + ::java::lang::String * getSpecVersion(); + jlong getStartTime(); + ::java::util::Map * getSystemProperties(); + jlong getUptime(); + ::java::lang::String * getVmName(); + ::java::lang::String * getVmVendor(); + ::java::lang::String * getVmVersion(); + jboolean isBootClassPathSupported(); +private: + static ::java::lang::String * SUN_BOOT_CLASS_PATH; + static ::java::lang::String * JAVA_BOOT_CLASS_PATH; + jlong __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) startTime; + ::java::lang::String * bootClassPath; + jboolean bootClassPathSupported; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_RuntimeMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/ThreadMXBeanImpl.h b/libjava/gnu/java/lang/management/ThreadMXBeanImpl.h new file mode 100644 index 00000000000..3a8fd5f3033 --- /dev/null +++ b/libjava/gnu/java/lang/management/ThreadMXBeanImpl.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_ThreadMXBeanImpl__ +#define __gnu_java_lang_management_ThreadMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class ThreadMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::ThreadMXBeanImpl : public ::gnu::java::lang::management::BeanImpl +{ + +public: + ThreadMXBeanImpl(); + JArray< jlong > * findMonitorDeadlockedThreads(); + JArray< jlong > * getAllThreadIds(); + jlong getCurrentThreadCpuTime(); + jlong getCurrentThreadUserTime(); + jint getDaemonThreadCount(); + jint getPeakThreadCount(); + jint getThreadCount(); + jlong getThreadCpuTime(jlong); + ::java::lang::management::ThreadInfo * getThreadInfo(jlong); + JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *); + ::java::lang::management::ThreadInfo * getThreadInfo(jlong, jint); + JArray< ::java::lang::management::ThreadInfo * > * getThreadInfo(JArray< jlong > *, jint); + jlong getThreadUserTime(jlong); + jlong getTotalStartedThreadCount(); + jboolean isCurrentThreadCpuTimeSupported(); + jboolean isThreadContentionMonitoringEnabled(); + jboolean isThreadContentionMonitoringSupported(); + jboolean isThreadCpuTimeEnabled(); + jboolean isThreadCpuTimeSupported(); + void resetPeakThreadCount(); + void setThreadContentionMonitoringEnabled(jboolean); + void setThreadCpuTimeEnabled(jboolean); +private: + static ::java::lang::String * CURRENT_THREAD_TIME_SUPPORT; + static ::java::lang::String * THREAD_TIME_SUPPORT; + static ::java::lang::String * CONTENTION_SUPPORT; + static ::java::lang::String * TIME_ENABLED; + jboolean __attribute__((aligned(__alignof__( ::gnu::java::lang::management::BeanImpl)))) timeEnabled; + jboolean contentionEnabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_ThreadMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h new file mode 100644 index 00000000000..b381004460f --- /dev/null +++ b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMClassLoadingMXBeanImpl__ +#define __gnu_java_lang_management_VMClassLoadingMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMClassLoadingMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMClassLoadingMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMClassLoadingMXBeanImpl(); + static jint getLoadedClassCount(); + static jlong getUnloadedClassCount(); + static jboolean isVerbose(); + static void setVerbose(jboolean); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMClassLoadingMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java index 77ddbf5eb51..c1c7d13dd44 100644 --- a/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java @@ -55,10 +55,7 @@ final class VMClassLoadingMXBeanImpl * * @return the number of loaded classes. */ - static int getLoadedClassCount() - { - return -1; - } + static native int getLoadedClassCount(); /** * Returns the number of classes that have been unloaded @@ -66,10 +63,7 @@ final class VMClassLoadingMXBeanImpl * * @return the number of unloaded classes. */ - static long getUnloadedClassCount() - { - return -1; - } + static native long getUnloadedClassCount(); /** * Returns true if the virtual machine will emit additional @@ -78,10 +72,7 @@ final class VMClassLoadingMXBeanImpl * * @return true if verbose class loading output is on. */ - static boolean isVerbose() - { - return false; - } + static native boolean isVerbose(); /** * Turns on or off the emission of additional information @@ -93,8 +84,6 @@ final class VMClassLoadingMXBeanImpl * @param verbose the new setting for verbose class loading * output. */ - static void setVerbose(boolean verbose) - { - } + static native void setVerbose(boolean verbose); } diff --git a/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h new file mode 100644 index 00000000000..31967e13424 --- /dev/null +++ b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMCompilationMXBeanImpl__ +#define __gnu_java_lang_management_VMCompilationMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMCompilationMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMCompilationMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMCompilationMXBeanImpl(); + static jlong getTotalCompilationTime(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMCompilationMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java index d529cdc8c44..b9b5bbcefc7 100644 --- a/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMCompilationMXBeanImpl.java @@ -61,9 +61,6 @@ final class VMCompilationMXBeanImpl * @return the number of milliseconds spent * compiling. */ - static long getTotalCompilationTime() - { - return -1; - } + static native long getTotalCompilationTime(); } diff --git a/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h new file mode 100644 index 00000000000..b01f97cd8a4 --- /dev/null +++ b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMGarbageCollectorMXBeanImpl__ +#define __gnu_java_lang_management_VMGarbageCollectorMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMGarbageCollectorMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMGarbageCollectorMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMGarbageCollectorMXBeanImpl(); + static jlong getCollectionCount(::java::lang::String *); + static jlong getCollectionTime(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMGarbageCollectorMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java index b56efa954c1..2a202849a8f 100644 --- a/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java @@ -61,10 +61,7 @@ final class VMGarbageCollectorMXBeanImpl * @return the number of collections made, or -1 if this is * undefined. */ - static long getCollectionCount(String name) - { - return -1; - } + static native long getCollectionCount(String name); /** * Returns the accumulated number of milliseconds this garbage @@ -78,9 +75,6 @@ final class VMGarbageCollectorMXBeanImpl * @return the accumulated number of milliseconds spent collecting, * or -1 if this is undefined. */ - static long getCollectionTime(String name) - { - return -1; - } + static native long getCollectionTime(String name); } diff --git a/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h new file mode 100644 index 00000000000..a31c551c36f --- /dev/null +++ b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMMemoryMXBeanImpl__ +#define __gnu_java_lang_management_VMMemoryMXBeanImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMMemoryMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMMemoryMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMMemoryMXBeanImpl(); + static ::java::lang::management::MemoryUsage * getHeapMemoryUsage(); + static ::java::lang::management::MemoryUsage * getNonHeapMemoryUsage(); + static jint getObjectPendingFinalizationCount(); + static jboolean isVerbose(); + static void setVerbose(jboolean); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMMemoryMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java index 660de5eb707..193e3353517 100644 --- a/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMMemoryMXBeanImpl.java @@ -76,20 +76,14 @@ final class VMMemoryMXBeanImpl * @return an {@link java.lang.management.MemoryUsage} instance * for non-heap memory. */ - static MemoryUsage getNonHeapMemoryUsage() - { - return null; - } + static native MemoryUsage getNonHeapMemoryUsage(); /** * Returns the number of objects ready to be garbage collected. * * @return the number of finalizable objects. */ - static int getObjectPendingFinalizationCount() - { - return -1; - } + static native int getObjectPendingFinalizationCount(); /** * Returns true if the virtual machine will emit additional @@ -98,10 +92,7 @@ final class VMMemoryMXBeanImpl * * @return true if verbose class loading output is on. */ - static boolean isVerbose() - { - return false; - } + static native boolean isVerbose(); /** * Turns on or off the emission of additional information @@ -113,8 +104,6 @@ final class VMMemoryMXBeanImpl * @param verbose the new setting for verbose class loading * output. */ - static void setVerbose(boolean verbose) - { - } + static native void setVerbose(boolean verbose); } diff --git a/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h new file mode 100644 index 00000000000..3a174c82a8a --- /dev/null +++ b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMMemoryManagerMXBeanImpl__ +#define __gnu_java_lang_management_VMMemoryManagerMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMMemoryManagerMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMMemoryManagerMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMMemoryManagerMXBeanImpl(); + static JArray< ::java::lang::String * > * getMemoryPoolNames(::java::lang::String *); + static jboolean isValid(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMMemoryManagerMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java index 2db4cf4c14b..0a4204a6d57 100644 --- a/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java @@ -90,9 +90,6 @@ final class VMMemoryManagerMXBeanImpl * @param name the name of the memory manager. * @return true if this memory manager is valid. */ - static boolean isValid(String name) - { - return false; - } + static native boolean isValid(String name); } diff --git a/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h new file mode 100644 index 00000000000..623162ee886 --- /dev/null +++ b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMMemoryPoolMXBeanImpl__ +#define __gnu_java_lang_management_VMMemoryPoolMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMMemoryPoolMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMMemoryPoolMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMMemoryPoolMXBeanImpl(); + static ::java::lang::management::MemoryUsage * getCollectionUsage(::java::lang::String *); + static jlong getCollectionUsageThreshold(::java::lang::String *); + static jlong getCollectionUsageThresholdCount(::java::lang::String *); + static JArray< ::java::lang::String * > * getMemoryManagerNames(::java::lang::String *); + static ::java::lang::management::MemoryUsage * getPeakUsage(::java::lang::String *); + static ::java::lang::String * getType(::java::lang::String *); + static ::java::lang::management::MemoryUsage * getUsage(::java::lang::String *); + static jlong getUsageThreshold(::java::lang::String *); + static jlong getUsageThresholdCount(::java::lang::String *); + static jboolean isValid(::java::lang::String *); + static void resetPeakUsage(::java::lang::String *); + static void setCollectionUsageThreshold(::java::lang::String *, jlong); + static void setUsageThreshold(::java::lang::String *, jlong); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMMemoryPoolMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java index d0f85b68425..723d4e89713 100644 --- a/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java @@ -59,10 +59,7 @@ final class VMMemoryPoolMXBeanImpl * containing the statistics or null * if this pool does not support such statistics. */ - static MemoryUsage getCollectionUsage(String name) - { - return null; - } + static native MemoryUsage getCollectionUsage(String name); /** * Returns the collection usage threshold for the specified pool. @@ -74,10 +71,7 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to obtain statistics on. * @return the collection usage threshold. */ - static long getCollectionUsageThreshold(String name) - { - return -1; - } + static native long getCollectionUsageThreshold(String name); /** * Returns the number of times the collection usage threshold @@ -90,10 +84,7 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to obtain statistics on. * @return the collection usage threshold count. */ - static long getCollectionUsageThresholdCount(String name) - { - return -1; - } + static native long getCollectionUsageThresholdCount(String name); /** * Returns an array of names of memory managers which manage @@ -102,10 +93,7 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to obtain statistics on. * @return a list of memory managers for the pool. */ - static String[] getMemoryManagerNames(String name) - { - return new String[0]; - } + static native String[] getMemoryManagerNames(String name); /** * Returns the peak usage level of the specified pool. @@ -115,22 +103,16 @@ final class VMMemoryPoolMXBeanImpl * @return a {@link java.lang.management.MemoryUsage} object * containing the statistics. */ - static MemoryUsage getPeakUsage(String name) - { - return null; - } + static native MemoryUsage getPeakUsage(String name); /** - * Returns the type of memory used by the specified pool. + * Returns the type of memory used by the specified pool. * The value must be either "HEAP" or "NON_HEAP". * * @param name the name of the pool to obtain statistics on. * @return the type of the given pool. */ - static String getType(String name) - { - return "HEAP"; - } + static native String getType(String name); /** * Returns the current usage level of the specified pool. @@ -140,10 +122,7 @@ final class VMMemoryPoolMXBeanImpl * @return a {@link java.lang.management.MemoryUsage} object * containing the statistics. */ - static MemoryUsage getUsage(String name) - { - return null; - } + static native MemoryUsage getUsage(String name); /** * Returns the usage threshold for the specified pool. @@ -156,10 +135,7 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to obtain statistics on. * @return the usage threshold. */ - static long getUsageThreshold(String name) - { - return -1; - } + static native long getUsageThreshold(String name); /** * Returns the number of times the usage threshold @@ -172,10 +148,7 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to obtain statistics on. * @return the usage threshold count. */ - static long getUsageThresholdCount(String name) - { - return -1; - } + static native long getUsageThresholdCount(String name); /** * Returns true if the specified pool is still valid i.e. @@ -184,10 +157,7 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to check the validity of. * @return true if the pool is valid. */ - static boolean isValid(String name) - { - return false; - } + static native boolean isValid(String name); /** * Resets the peak usage level to the current usage level for @@ -195,9 +165,7 @@ final class VMMemoryPoolMXBeanImpl * * @param name the name of the pool to reset the peak usage of. */ - static void resetPeakUsage(String name) - { - } + static native void resetPeakUsage(String name); /** * Sets the collection usage threshold for the specified @@ -210,9 +178,7 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to set the threshold of. * @param threshold the new threshold level. */ - static void setCollectionUsageThreshold(String name, long threshold) - { - } + static native void setCollectionUsageThreshold(String name, long threshold); /** * Sets the usage threshold for the specified pool to the supplied value. @@ -224,8 +190,6 @@ final class VMMemoryPoolMXBeanImpl * @param name the name of the pool to set the threshold of. * @param threshold the new threshold level. */ - static void setUsageThreshold(String name, long threshold) - { - } + static native void setUsageThreshold(String name, long threshold); } diff --git a/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h new file mode 100644 index 00000000000..9bd0e442250 --- /dev/null +++ b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMRuntimeMXBeanImpl__ +#define __gnu_java_lang_management_VMRuntimeMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMRuntimeMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMRuntimeMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMRuntimeMXBeanImpl(); + static JArray< ::java::lang::String * > * getInputArguments(); + static ::java::lang::String * getName(); + static jlong getStartTime(); +private: + static jlong getPID(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMRuntimeMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java index bbfceb6ffd7..05d368a9e24 100644 --- a/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMRuntimeMXBeanImpl.java @@ -39,6 +39,9 @@ package gnu.java.lang.management; import gnu.classpath.SystemProperties; +import java.net.InetAddress; +import java.net.UnknownHostException; + /** * Provides access to information about the virtual machine. * @@ -55,10 +58,7 @@ final class VMRuntimeMXBeanImpl * * @return the command-line arguments. */ - static String[] getInputArguments() - { - return new String[0]; - } + static native String[] getInputArguments(); /** * Returns a developer-chosen name for the virtual @@ -75,8 +75,18 @@ final class VMRuntimeMXBeanImpl */ static String getName() { + String hostName; + try + { + hostName = InetAddress.getLocalHost().getHostName(); + } + catch (UnknownHostException e) + { + hostName = "Unknown host"; + } return SystemProperties.getProperty("java.vm.name") + " " + - SystemProperties.getProperty("java.vm.version"); + SystemProperties.getProperty("java.vm.version") + " [" + + getPID() + "@" + hostName + "]"; } /** @@ -87,9 +97,13 @@ final class VMRuntimeMXBeanImpl * * @return the VM start time. */ - static long getStartTime() - { - return -1; - } + static native long getStartTime(); + + /** + * The process identifier of the runtime. + * + * @return the PID of the runtime. + */ + private static native long getPID(); } diff --git a/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h new file mode 100644 index 00000000000..77577f7668e --- /dev/null +++ b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_management_VMThreadMXBeanImpl__ +#define __gnu_java_lang_management_VMThreadMXBeanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace management + { + class VMThreadMXBeanImpl; + } + } + } + } +} + +class gnu::java::lang::management::VMThreadMXBeanImpl : public ::java::lang::Object +{ + +public: // actually package-private + VMThreadMXBeanImpl(); + static JArray< jlong > * findMonitorDeadlockedThreads(); + static JArray< ::java::lang::Thread * > * getAllThreads(); + static JArray< jlong > * getAllThreadIds(); + static jlong getCurrentThreadCpuTime(); + static jlong getCurrentThreadUserTime(); + static jint getDaemonThreadCount(); + static jint getPeakThreadCount(); + static jint getThreadCount(); + static jlong getThreadCpuTime(jlong); + static ::java::lang::management::ThreadInfo * getThreadInfoForId(jlong, jint); + static jlong getThreadUserTime(jlong); + static jlong getTotalStartedThreadCount(); + static void resetPeakThreadCount(); +private: + static jint filled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_management_VMThreadMXBeanImpl__ diff --git a/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java index 3478372c6c5..c5bcb631055 100644 --- a/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java +++ b/libjava/gnu/java/lang/management/VMThreadMXBeanImpl.java @@ -64,10 +64,7 @@ final class VMThreadMXBeanImpl * * @return the ids of the deadlocked threads. */ - static long[] findMonitorDeadlockedThreads() - { - return new long[0]; - } + static native long[] findMonitorDeadlockedThreads(); /* This is the same as in Thread.getAllStackTraces() */ static Thread[] getAllThreads() @@ -110,10 +107,7 @@ final class VMThreadMXBeanImpl * @return the nanoseconds of CPU time used by * the current thread. */ - static long getCurrentThreadCpuTime() - { - return -1; - } + static native long getCurrentThreadCpuTime(); /** * Returns the number of nanoseconds of user time @@ -124,10 +118,7 @@ final class VMThreadMXBeanImpl * @return the nanoseconds of user time used by * the current thread. */ - static long getCurrentThreadUserTime() - { - return -1; - } + static native long getCurrentThreadUserTime(); /** * Returns the number of live daemon threads. @@ -151,10 +142,7 @@ final class VMThreadMXBeanImpl * * @return the peak number of live threads. */ - static int getPeakThreadCount() - { - return -1; - } + static native int getPeakThreadCount(); /** * Returns the number of live threads. @@ -177,10 +165,7 @@ final class VMThreadMXBeanImpl * @return the nanoseconds of CPU time used by * the thread. */ - static long getThreadCpuTime(long id) - { - return -1; - } + static native long getThreadCpuTime(long id); /** * Returns the {@link java.lang.management.ThreadInfo} @@ -190,10 +175,7 @@ final class VMThreadMXBeanImpl * @param maxDepth the depth of the stack trace. * @return the corresponding ThreadInfo. */ - static ThreadInfo getThreadInfoForId(long id, int maxDepth) - { - return null; - } + static native ThreadInfo getThreadInfoForId(long id, int maxDepth); /** * Returns the number of nanoseconds of user time @@ -205,10 +187,7 @@ final class VMThreadMXBeanImpl * @return the nanoseconds of user time used by * the thread. */ - static long getThreadUserTime(long id) - { - return -1; - } + static native long getThreadUserTime(long id); /** * Returns the total number of threads that have @@ -217,17 +196,12 @@ final class VMThreadMXBeanImpl * * @return the total number of threads started. */ - static long getTotalStartedThreadCount() - { - return -1; - } + static native long getTotalStartedThreadCount(); /** * Resets the peak thread count to the current * number of live threads. */ - static void resetPeakThreadCount() - { - } + static native void resetPeakThreadCount(); } diff --git a/libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc new file mode 100644 index 00000000000..5958b1f1dc9 --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc @@ -0,0 +1,49 @@ +/* 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. */ + +/** + * @author Andrew John Hughes + * @date Sun 20 Aug 2006 */ +/* Written using online API docs for JDK 1.5 beta from http://java.sun.com. + * Status: Believed complete and correct. + */ + +#include + +#include + +#include + +jint +gnu::java::lang::management::VMClassLoadingMXBeanImpl::getLoadedClassCount () +{ + /* FIXME: We never unload, so this never goes down again */ + return ::gcj::loadedClasses; +} + + +jlong +gnu::java::lang::management::VMClassLoadingMXBeanImpl::getUnloadedClassCount () +{ + /* FIXME: We never unload, so this always == 0 */ + return ::gcj::unloadedClasses; +} + + +jboolean +gnu::java::lang::management::VMClassLoadingMXBeanImpl::isVerbose () +{ + return ::gcj::verbose_class_flag; +} + + +void +gnu::java::lang::management::VMClassLoadingMXBeanImpl::setVerbose (jboolean b) +{ + ::gcj::verbose_class_flag = b; +} diff --git a/libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc new file mode 100644 index 00000000000..4ccadcb3c1b --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMCompilationMXBeanImpl.cc @@ -0,0 +1,11 @@ +#include + +#include +#include +#include + +jlong +gnu::java::lang::management::VMCompilationMXBeanImpl::getTotalCompilationTime () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMCompilationMXBeanImpl::getTotalCompilationTime () not implemented")); +} diff --git a/libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc new file mode 100644 index 00000000000..3e4f999fefa --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc @@ -0,0 +1,18 @@ +#include + +#include +#include +#include + +jlong +gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionCount (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionCount (::java::lang::String *) not implemented")); +} + + +jlong +gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionTime (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMGarbageCollectorMXBeanImpl::getCollectionTime (::java::lang::String *) not implemented")); +} diff --git a/libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc new file mode 100644 index 00000000000..8b59815f551 --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMMemoryMXBeanImpl.cc @@ -0,0 +1,47 @@ +/* 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. */ + +/** + * @author Andrew John Hughes + * @date Tue 08 Aug 2006 */ +/* + * Status: Stubbed. + */ + +#include + +#include +#include +#include + +::java::lang::management::MemoryUsage * +gnu::java::lang::management::VMMemoryMXBeanImpl::getNonHeapMemoryUsage () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::getNonHeapMemoryUsage () not implemented")); +} + + +jint +gnu::java::lang::management::VMMemoryMXBeanImpl::getObjectPendingFinalizationCount () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::getObjectPendingFinalizationCount () not implemented")); +} + + +jboolean +gnu::java::lang::management::VMMemoryMXBeanImpl::isVerbose () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::isVerbose () not implemented")); +} + + +void +gnu::java::lang::management::VMMemoryMXBeanImpl::setVerbose (jboolean) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryMXBeanImpl::setVerbose (jboolean) not implemented")); +} diff --git a/libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc new file mode 100644 index 00000000000..8d8a3e6e788 --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc @@ -0,0 +1,11 @@ +#include + +#include +#include +#include + +jboolean +gnu::java::lang::management::VMMemoryManagerMXBeanImpl::isValid (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryManagerMXBeanImpl::isValid (::java::lang::String *) not implemented")); +} diff --git a/libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc new file mode 100644 index 00000000000..b7a250955ad --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc @@ -0,0 +1,111 @@ +/* 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. */ + +/** + * @author Andrew John Hughes + * @date Tue 08 Aug 2006 */ +/* Implemented for our sole pool, the heap (we ignore the name input). + * Status: Stubbed. + */ + +#include + +#include +#include +#include + +::java::lang::management::MemoryUsage * +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsage(jstring n) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsage (::java::lang::String *) not implemented")); +} + + +jlong +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThreshold (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThreshold (::java::lang::String *) not implemented")); +} + + +jlong +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThresholdCount (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getCollectionUsageThresholdCount (::java::lang::String *) not implemented")); +} + + +JArray< ::java::lang::String *> * +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getMemoryManagerNames(jstring n) +{ + return (JArray*) + JvNewObjectArray(1, &::java::lang::String::class$, JvNewStringLatin1("BoehmGC")); +} + + +::java::lang::management::MemoryUsage * +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getPeakUsage (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getPeakUsage (::java::lang::String *) not implemented")); +} + + +::java::lang::String * +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getType (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getType (::java::lang::String *) not implemented")); +} + + +::java::lang::management::MemoryUsage * +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsage (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsage (::java::lang::String *) not implemented")); +} + + +jlong +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThreshold (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThreshold (::java::lang::String *) not implemented")); +} + + +jlong +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThresholdCount (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::getUsageThresholdCount (::java::lang::String *) not implemented")); +} + + +jboolean +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::isValid (::java::lang::String *) +{ + return true; +} + + +void +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::resetPeakUsage (::java::lang::String *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::resetPeakUsage (::java::lang::String *) not implemented")); +} + + +void +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setCollectionUsageThreshold (::java::lang::String *, jlong) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setCollectionUsageThreshold (::java::lang::String *, jlong) not implemented")); +} + + +void +gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setUsageThreshold (::java::lang::String *, jlong) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMMemoryPoolMXBeanImpl::setUsageThreshold (::java::lang::String *, jlong) not implemented")); +} diff --git a/libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc new file mode 100644 index 00000000000..331079b0ffd --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc @@ -0,0 +1,39 @@ +/* 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. */ + +/** + * @author Andrew John Hughes + * @date Wed 21 Jun 2006 */ +/* Written using online API docs for JDK 1.5 beta from http://java.sun.com. + * Status: Believed complete and correct. + */ + +#include + +#include + +#include + +#include + +JArray* gnu::java::lang::management::VMRuntimeMXBeanImpl::getInputArguments() +{ + return ::gcj::vmArgs; +} + +jlong gnu::java::lang::management::VMRuntimeMXBeanImpl::getStartTime() +{ + return ::gcj::startTime; +} + +jlong gnu::java::lang::management::VMRuntimeMXBeanImpl::getPID() +{ + return getpid(); +} + + diff --git a/libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc b/libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc new file mode 100644 index 00000000000..df05300ca2f --- /dev/null +++ b/libjava/gnu/java/lang/management/natVMThreadMXBeanImpl.cc @@ -0,0 +1,67 @@ +#include + +#include +#include +#include + +jlongArray +gnu::java::lang::management::VMThreadMXBeanImpl::findMonitorDeadlockedThreads () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::findMonitorDeadlockedThreads () not implemented")); +} + + +jlong +gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadCpuTime () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadCpuTime () not implemented")); +} + + +jlong +gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadUserTime () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getCurrentThreadUserTime () not implemented")); +} + + +jint +gnu::java::lang::management::VMThreadMXBeanImpl::getPeakThreadCount () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getPeakThreadCount () not implemented")); +} + + +jlong +gnu::java::lang::management::VMThreadMXBeanImpl::getThreadCpuTime (jlong) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getThreadCpuTime (jlong) not implemented")); +} + + +::java::lang::management::ThreadInfo * +gnu::java::lang::management::VMThreadMXBeanImpl::getThreadInfoForId (jlong, jint) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getThreadInfoForId (jlong, jint) not implemented")); +} + + +jlong +gnu::java::lang::management::VMThreadMXBeanImpl::getThreadUserTime (jlong) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getThreadUserTime (jlong) not implemented")); +} + + +jlong +gnu::java::lang::management::VMThreadMXBeanImpl::getTotalStartedThreadCount () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::getTotalStartedThreadCount () not implemented")); +} + + +void +gnu::java::lang::management::VMThreadMXBeanImpl::resetPeakThreadCount () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::lang::management::VMThreadMXBeanImpl::resetPeakThreadCount () not implemented")); +} diff --git a/libjava/gnu/java/lang/natMainThread.cc b/libjava/gnu/java/lang/natMainThread.cc index 99d5f95ffde..5cba24700a4 100644 --- a/libjava/gnu/java/lang/natMainThread.cc +++ b/libjava/gnu/java/lang/natMainThread.cc @@ -29,6 +29,10 @@ gnu::java::lang::MainThread::call_main (void) Utf8Const* main_signature = _Jv_makeUtf8Const ("([Ljava.lang.String;)V", 22); Utf8Const* main_name = _Jv_makeUtf8Const ("main", 4); + // This is one of the few places where we might have access to an + // unlinked class. + _Jv_Linker::wait_for_state (klass, JV_STATE_LOADING); + _Jv_Method *meth = _Jv_LookupDeclaredMethod (klass, main_name, main_signature); diff --git a/libjava/gnu/java/lang/reflect/ClassSignatureParser.h b/libjava/gnu/java/lang/reflect/ClassSignatureParser.h new file mode 100644 index 00000000000..10c0f4d38df --- /dev/null +++ b/libjava/gnu/java/lang/reflect/ClassSignatureParser.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_ClassSignatureParser__ +#define __gnu_java_lang_reflect_ClassSignatureParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class ClassSignatureParser; + } + } + } + } +} + +class gnu::java::lang::reflect::ClassSignatureParser : public ::gnu::java::lang::reflect::GenericSignatureParser +{ + +public: + ClassSignatureParser(::java::lang::Class *, ::java::lang::String *); + virtual JArray< ::java::lang::reflect::TypeVariable * > * getTypeParameters(); + virtual ::java::lang::reflect::Type * getSuperclassType(); + virtual JArray< ::java::lang::reflect::Type * > * getInterfaceTypes(); +private: + JArray< ::java::lang::reflect::TypeVariable * > * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::GenericSignatureParser)))) typeParameters; + ::java::lang::reflect::Type * superclassType; + JArray< ::java::lang::reflect::Type * > * interfaceTypes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_ClassSignatureParser__ diff --git a/libjava/gnu/java/lang/reflect/FieldSignatureParser.h b/libjava/gnu/java/lang/reflect/FieldSignatureParser.h new file mode 100644 index 00000000000..58b972a4381 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/FieldSignatureParser.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_FieldSignatureParser__ +#define __gnu_java_lang_reflect_FieldSignatureParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class FieldSignatureParser; + } + } + } + } +} + +class gnu::java::lang::reflect::FieldSignatureParser : public ::gnu::java::lang::reflect::GenericSignatureParser +{ + +public: + FieldSignatureParser(::java::lang::Class *, ::java::lang::String *); + ::java::lang::reflect::Type * getFieldType(); +private: + ::java::lang::reflect::Type * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::GenericSignatureParser)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_FieldSignatureParser__ diff --git a/libjava/gnu/java/lang/reflect/GenericArrayTypeImpl.h b/libjava/gnu/java/lang/reflect/GenericArrayTypeImpl.h new file mode 100644 index 00000000000..25a654d7731 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/GenericArrayTypeImpl.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_GenericArrayTypeImpl__ +#define __gnu_java_lang_reflect_GenericArrayTypeImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class GenericArrayTypeImpl; + } + } + } + } +} + +class gnu::java::lang::reflect::GenericArrayTypeImpl : public ::gnu::java::lang::reflect::TypeImpl +{ + +public: // actually package-private + GenericArrayTypeImpl(::java::lang::reflect::Type *); + ::java::lang::reflect::Type * resolve(); +public: + ::java::lang::reflect::Type * getGenericComponentType(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + ::java::lang::String * toString(); +private: + ::java::lang::reflect::Type * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::TypeImpl)))) componentType; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_GenericArrayTypeImpl__ diff --git a/libjava/gnu/java/lang/reflect/GenericSignatureParser.h b/libjava/gnu/java/lang/reflect/GenericSignatureParser.h new file mode 100644 index 00000000000..22e443b59de --- /dev/null +++ b/libjava/gnu/java/lang/reflect/GenericSignatureParser.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_GenericSignatureParser__ +#define __gnu_java_lang_reflect_GenericSignatureParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class GenericSignatureParser; + } + } + } + } +} + +class gnu::java::lang::reflect::GenericSignatureParser : public ::java::lang::Object +{ + +public: // actually package-private + GenericSignatureParser(::java::lang::reflect::GenericDeclaration *, ::java::lang::ClassLoader *, ::java::lang::String *); + virtual JArray< ::java::lang::reflect::TypeVariable * > * readFormalTypeParameters(); +private: + ::java::lang::reflect::TypeVariable * readFormalTypeParameter(); +public: // actually package-private + virtual ::java::lang::reflect::Type * readFieldTypeSignature(); + virtual ::java::lang::reflect::Type * readClassTypeSignature(); +private: + JArray< ::java::lang::reflect::Type * > * readTypeArguments(); + ::java::lang::reflect::Type * readTypeArgument(); +public: // actually package-private + virtual ::java::lang::reflect::Type * readArrayTypeSignature(); + virtual ::java::lang::reflect::Type * readTypeVariableSignature(); +private: + ::java::lang::String * readIdentifier(); +public: // actually package-private + virtual jchar peekChar(); + virtual jchar readChar(); + virtual void consume(jchar); + virtual void end(); +private: + ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loader; + ::java::lang::reflect::GenericDeclaration * container; + ::java::lang::String * signature; + jint pos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_GenericSignatureParser__ diff --git a/libjava/gnu/java/lang/reflect/MethodSignatureParser.h b/libjava/gnu/java/lang/reflect/MethodSignatureParser.h new file mode 100644 index 00000000000..3a684699573 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/MethodSignatureParser.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_MethodSignatureParser__ +#define __gnu_java_lang_reflect_MethodSignatureParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class MethodSignatureParser; + } + } + } + } +} + +class gnu::java::lang::reflect::MethodSignatureParser : public ::gnu::java::lang::reflect::GenericSignatureParser +{ + +public: + MethodSignatureParser(::java::lang::reflect::Method *, ::java::lang::String *); + MethodSignatureParser(::java::lang::reflect::Constructor *, ::java::lang::String *); +private: + MethodSignatureParser(::java::lang::reflect::GenericDeclaration *, ::java::lang::ClassLoader *, ::java::lang::String *); +public: + virtual JArray< ::java::lang::reflect::TypeVariable * > * getTypeParameters(); + virtual JArray< ::java::lang::reflect::Type * > * getGenericParameterTypes(); + virtual ::java::lang::reflect::Type * getGenericReturnType(); + virtual JArray< ::java::lang::reflect::Type * > * getGenericExceptionTypes(); +private: + ::java::lang::reflect::Type * readTypeSignature(); + JArray< ::java::lang::reflect::TypeVariable * > * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::GenericSignatureParser)))) typeParameters; + JArray< ::java::lang::reflect::Type * > * argTypes; + ::java::lang::reflect::Type * retType; + JArray< ::java::lang::reflect::Type * > * throwsSigs; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_MethodSignatureParser__ diff --git a/libjava/gnu/java/lang/reflect/ParameterizedTypeImpl.h b/libjava/gnu/java/lang/reflect/ParameterizedTypeImpl.h new file mode 100644 index 00000000000..0f43af60eb8 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/ParameterizedTypeImpl.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_ParameterizedTypeImpl__ +#define __gnu_java_lang_reflect_ParameterizedTypeImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class ParameterizedTypeImpl; + } + } + } + } +} + +class gnu::java::lang::reflect::ParameterizedTypeImpl : public ::gnu::java::lang::reflect::TypeImpl +{ + +public: // actually package-private + ParameterizedTypeImpl(::java::lang::String *, ::java::lang::ClassLoader *, ::java::lang::reflect::Type *, JArray< ::java::lang::reflect::Type * > *); + ::java::lang::reflect::Type * resolve(); +public: + JArray< ::java::lang::reflect::Type * > * getActualTypeArguments(); + ::java::lang::reflect::Type * getRawType(); + ::java::lang::reflect::Type * getOwnerType(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::TypeImpl)))) rawTypeName; + ::java::lang::ClassLoader * loader; + ::java::lang::Class * rawType; + ::java::lang::reflect::Type * owner; + JArray< ::java::lang::reflect::Type * > * typeArgs; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_ParameterizedTypeImpl__ diff --git a/libjava/gnu/java/lang/reflect/TypeImpl.h b/libjava/gnu/java/lang/reflect/TypeImpl.h new file mode 100644 index 00000000000..42c3f3af853 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/TypeImpl.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_TypeImpl__ +#define __gnu_java_lang_reflect_TypeImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class TypeImpl; + } + } + } + } +} + +class gnu::java::lang::reflect::TypeImpl : public ::java::lang::Object +{ + +public: // actually package-private + TypeImpl(); + virtual ::java::lang::reflect::Type * resolve() = 0; + static void resolve(JArray< ::java::lang::reflect::Type * > *); + static ::java::lang::reflect::Type * resolve(::java::lang::reflect::Type *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_TypeImpl__ diff --git a/libjava/gnu/java/lang/reflect/TypeSignature.h b/libjava/gnu/java/lang/reflect/TypeSignature.h new file mode 100644 index 00000000000..82260585962 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/TypeSignature.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_TypeSignature__ +#define __gnu_java_lang_reflect_TypeSignature__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class TypeSignature; + } + } + } + } +} + +class gnu::java::lang::reflect::TypeSignature : public ::java::lang::Object +{ + +public: + TypeSignature(); + static ::java::lang::String * getEncodingOfClass(::java::lang::String *, jboolean); + static ::java::lang::String * getEncodingOfClass(::java::lang::Class *, jboolean); + static ::java::lang::String * getEncodingOfClass(::java::lang::Class *); + static ::java::lang::Class * getClassForEncoding(::java::lang::String *, jboolean); + static ::java::lang::Class * getClassForEncoding(::java::lang::String *, jboolean, ::java::lang::ClassLoader *); + static ::java::lang::Class * getClassForEncoding(::java::lang::String *); + static ::java::lang::String * getEncodingOfMethod(::java::lang::reflect::Method *); + static ::java::lang::String * getEncodingOfConstructor(::java::lang::reflect::Constructor *); + static ::java::lang::String * getEncodingOfMember(::java::lang::reflect::Member *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_TypeSignature__ diff --git a/libjava/gnu/java/lang/reflect/TypeVariableImpl.h b/libjava/gnu/java/lang/reflect/TypeVariableImpl.h new file mode 100644 index 00000000000..82ac58ab82d --- /dev/null +++ b/libjava/gnu/java/lang/reflect/TypeVariableImpl.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_TypeVariableImpl__ +#define __gnu_java_lang_reflect_TypeVariableImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class TypeVariableImpl; + } + } + } + } +} + +class gnu::java::lang::reflect::TypeVariableImpl : public ::gnu::java::lang::reflect::TypeImpl +{ + +public: // actually package-private + TypeVariableImpl(::java::lang::reflect::GenericDeclaration *, JArray< ::java::lang::reflect::Type * > *, ::java::lang::String *); + ::java::lang::reflect::Type * resolve(); +public: + JArray< ::java::lang::reflect::Type * > * getBounds(); + ::java::lang::reflect::GenericDeclaration * getGenericDeclaration(); + ::java::lang::String * getName(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + ::java::lang::String * toString(); +private: + ::java::lang::reflect::GenericDeclaration * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::TypeImpl)))) decl; + JArray< ::java::lang::reflect::Type * > * bounds; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_TypeVariableImpl__ diff --git a/libjava/gnu/java/lang/reflect/UnresolvedTypeVariable.h b/libjava/gnu/java/lang/reflect/UnresolvedTypeVariable.h new file mode 100644 index 00000000000..4fec000b5c0 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/UnresolvedTypeVariable.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_UnresolvedTypeVariable__ +#define __gnu_java_lang_reflect_UnresolvedTypeVariable__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class UnresolvedTypeVariable; + } + } + } + } +} + +class gnu::java::lang::reflect::UnresolvedTypeVariable : public ::gnu::java::lang::reflect::TypeImpl +{ + +public: // actually package-private + UnresolvedTypeVariable(::java::lang::reflect::GenericDeclaration *, ::java::lang::String *); + ::java::lang::reflect::Type * resolve(); +private: + static ::java::lang::reflect::GenericDeclaration * getParent(::java::lang::reflect::GenericDeclaration *); + ::java::lang::reflect::GenericDeclaration * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::TypeImpl)))) decl; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_UnresolvedTypeVariable__ diff --git a/libjava/gnu/java/lang/reflect/WildcardTypeImpl.h b/libjava/gnu/java/lang/reflect/WildcardTypeImpl.h new file mode 100644 index 00000000000..b2eb19c3578 --- /dev/null +++ b/libjava/gnu/java/lang/reflect/WildcardTypeImpl.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_lang_reflect_WildcardTypeImpl__ +#define __gnu_java_lang_reflect_WildcardTypeImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace lang + { + namespace reflect + { + class WildcardTypeImpl; + } + } + } + } +} + +class gnu::java::lang::reflect::WildcardTypeImpl : public ::gnu::java::lang::reflect::TypeImpl +{ + +public: // actually package-private + WildcardTypeImpl(::java::lang::reflect::Type *, ::java::lang::reflect::Type *); + ::java::lang::reflect::Type * resolve(); +public: + JArray< ::java::lang::reflect::Type * > * getUpperBounds(); + JArray< ::java::lang::reflect::Type * > * getLowerBounds(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + ::java::lang::String * toString(); +private: + ::java::lang::reflect::Type * __attribute__((aligned(__alignof__( ::gnu::java::lang::reflect::TypeImpl)))) lower; + ::java::lang::reflect::Type * upper; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_lang_reflect_WildcardTypeImpl__ diff --git a/libjava/gnu/java/locale/Calendar.h b/libjava/gnu/java/locale/Calendar.h new file mode 100644 index 00000000000..b0d7eee75ff --- /dev/null +++ b/libjava/gnu/java/locale/Calendar.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_Calendar__ +#define __gnu_java_locale_Calendar__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class Calendar; + } + } + } +} + +class gnu::java::locale::Calendar : public ::java::util::ListResourceBundle +{ + +public: + Calendar(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +private: + static JArray< ::java::util::Locale * > * availableLocales; + static ::java::lang::String * calendarClass; + static ::java::lang::Integer * firstDayOfWeek; + static ::java::lang::Integer * minimalDaysInFirstWeek; + static ::java::util::Date * gregorianCutOver; + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_Calendar__ diff --git a/libjava/gnu/java/locale/Calendar_de.h b/libjava/gnu/java/locale/Calendar_de.h new file mode 100644 index 00000000000..77328560159 --- /dev/null +++ b/libjava/gnu/java/locale/Calendar_de.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_Calendar_de__ +#define __gnu_java_locale_Calendar_de__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class Calendar_de; + } + } + } +} + +class gnu::java::locale::Calendar_de : public ::java::util::ListResourceBundle +{ + +public: + Calendar_de(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_Calendar_de__ diff --git a/libjava/gnu/java/locale/Calendar_en.h b/libjava/gnu/java/locale/Calendar_en.h new file mode 100644 index 00000000000..523be552ae8 --- /dev/null +++ b/libjava/gnu/java/locale/Calendar_en.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_Calendar_en__ +#define __gnu_java_locale_Calendar_en__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class Calendar_en; + } + } + } +} + +class gnu::java::locale::Calendar_en : public ::java::util::ListResourceBundle +{ + +public: + Calendar_en(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_Calendar_en__ diff --git a/libjava/gnu/java/locale/Calendar_nl.h b/libjava/gnu/java/locale/Calendar_nl.h new file mode 100644 index 00000000000..01f75b188ff --- /dev/null +++ b/libjava/gnu/java/locale/Calendar_nl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_Calendar_nl__ +#define __gnu_java_locale_Calendar_nl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class Calendar_nl; + } + } + } +} + +class gnu::java::locale::Calendar_nl : public ::java::util::ListResourceBundle +{ + +public: + Calendar_nl(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_Calendar_nl__ diff --git a/libjava/gnu/java/locale/LocaleData.h b/libjava/gnu/java/locale/LocaleData.h new file mode 100644 index 00000000000..ab983a570f6 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleData.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleData__ +#define __gnu_java_locale_LocaleData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleData; + } + } + } +} + +class gnu::java::locale::LocaleData : public ::java::lang::Object +{ + +public: // actually package-private + LocaleData(); +public: + static JArray< ::java::lang::String * > * localeNames; + static JArray< ::java::lang::String * > * collatorLocaleNames; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleData__ diff --git a/libjava/gnu/java/locale/LocaleHelper.h b/libjava/gnu/java/locale/LocaleHelper.h new file mode 100644 index 00000000000..7a8389334ad --- /dev/null +++ b/libjava/gnu/java/locale/LocaleHelper.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleHelper__ +#define __gnu_java_locale_LocaleHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleHelper; + } + } + } +} + +class gnu::java::locale::LocaleHelper : public ::java::lang::Object +{ + +public: + LocaleHelper(); + static ::java::lang::String * getLocalizedString(::java::util::Locale *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean); + static JArray< ::java::util::Locale * > * getCollatorLocales(); + static jint getLocaleCount(); + static ::java::lang::String * getLocaleName(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleHelper__ diff --git a/libjava/gnu/java/locale/LocaleInformation.h b/libjava/gnu/java/locale/LocaleInformation.h new file mode 100644 index 00000000000..b8ccfeceb36 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation__ +#define __gnu_java_locale_LocaleInformation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation; + } + } + } +} + +class gnu::java::locale::LocaleInformation : public ::gnu::java::locale::LocaleInformation_en +{ + +public: + LocaleInformation(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation__ diff --git a/libjava/gnu/java/locale/LocaleInformation_af_ZA.h b/libjava/gnu/java/locale/LocaleInformation_af_ZA.h new file mode 100644 index 00000000000..9c5e11ffcc0 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_af_ZA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_af_ZA__ +#define __gnu_java_locale_LocaleInformation_af_ZA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_af_ZA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_af_ZA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_af_ZA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_af_ZA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_AE.h b/libjava/gnu/java/locale/LocaleInformation_ar_AE.h new file mode 100644 index 00000000000..a2cd814e9c7 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_AE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_AE__ +#define __gnu_java_locale_LocaleInformation_ar_AE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_AE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_AE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_AE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_AE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_BH.h b/libjava/gnu/java/locale/LocaleInformation_ar_BH.h new file mode 100644 index 00000000000..de1d231887a --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_BH.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_BH__ +#define __gnu_java_locale_LocaleInformation_ar_BH__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_BH; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_BH : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_BH(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_BH__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_DZ.h b/libjava/gnu/java/locale/LocaleInformation_ar_DZ.h new file mode 100644 index 00000000000..8ffc0a4ef13 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_DZ.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_DZ__ +#define __gnu_java_locale_LocaleInformation_ar_DZ__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_DZ; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_DZ : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_DZ(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_DZ__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_EG.h b/libjava/gnu/java/locale/LocaleInformation_ar_EG.h new file mode 100644 index 00000000000..d8d31d00e94 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_EG.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_EG__ +#define __gnu_java_locale_LocaleInformation_ar_EG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_EG; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_EG : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_EG(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_EG__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_IN.h b/libjava/gnu/java/locale/LocaleInformation_ar_IN.h new file mode 100644 index 00000000000..5d0d7f6581f --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_IN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_IN__ +#define __gnu_java_locale_LocaleInformation_ar_IN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_IN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_IN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_IN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_IN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_IQ.h b/libjava/gnu/java/locale/LocaleInformation_ar_IQ.h new file mode 100644 index 00000000000..55c24a508e7 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_IQ.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_IQ__ +#define __gnu_java_locale_LocaleInformation_ar_IQ__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_IQ; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_IQ : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_IQ(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_IQ__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_JO.h b/libjava/gnu/java/locale/LocaleInformation_ar_JO.h new file mode 100644 index 00000000000..c4726d0b5c1 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_JO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_JO__ +#define __gnu_java_locale_LocaleInformation_ar_JO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_JO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_JO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_JO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_JO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_KW.h b/libjava/gnu/java/locale/LocaleInformation_ar_KW.h new file mode 100644 index 00000000000..0fb530020e2 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_KW.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_KW__ +#define __gnu_java_locale_LocaleInformation_ar_KW__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_KW; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_KW : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_KW(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_KW__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_LB.h b/libjava/gnu/java/locale/LocaleInformation_ar_LB.h new file mode 100644 index 00000000000..11b7c54d3b9 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_LB.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_LB__ +#define __gnu_java_locale_LocaleInformation_ar_LB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_LB; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_LB : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_LB(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_LB__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_LY.h b/libjava/gnu/java/locale/LocaleInformation_ar_LY.h new file mode 100644 index 00000000000..1f4c4800b64 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_LY.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_LY__ +#define __gnu_java_locale_LocaleInformation_ar_LY__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_LY; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_LY : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_LY(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_LY__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_MA.h b/libjava/gnu/java/locale/LocaleInformation_ar_MA.h new file mode 100644 index 00000000000..df092d26d96 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_MA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_MA__ +#define __gnu_java_locale_LocaleInformation_ar_MA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_MA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_MA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_MA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_MA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_OM.h b/libjava/gnu/java/locale/LocaleInformation_ar_OM.h new file mode 100644 index 00000000000..692578c5b08 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_OM.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_OM__ +#define __gnu_java_locale_LocaleInformation_ar_OM__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_OM; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_OM : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_OM(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_OM__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_QA.h b/libjava/gnu/java/locale/LocaleInformation_ar_QA.h new file mode 100644 index 00000000000..9bf80ccd4f1 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_QA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_QA__ +#define __gnu_java_locale_LocaleInformation_ar_QA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_QA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_QA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_QA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_QA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_SD.h b/libjava/gnu/java/locale/LocaleInformation_ar_SD.h new file mode 100644 index 00000000000..817df472faa --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_SD.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_SD__ +#define __gnu_java_locale_LocaleInformation_ar_SD__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_SD; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_SD : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_SD(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_SD__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_SY.h b/libjava/gnu/java/locale/LocaleInformation_ar_SY.h new file mode 100644 index 00000000000..ee0df32fdd4 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_SY.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_SY__ +#define __gnu_java_locale_LocaleInformation_ar_SY__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_SY; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_SY : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_SY(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_SY__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_TN.h b/libjava/gnu/java/locale/LocaleInformation_ar_TN.h new file mode 100644 index 00000000000..248ace98d46 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_TN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_TN__ +#define __gnu_java_locale_LocaleInformation_ar_TN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_TN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_TN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_TN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_TN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ar_YE.h b/libjava/gnu/java/locale/LocaleInformation_ar_YE.h new file mode 100644 index 00000000000..8a9dbe8fdbc --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ar_YE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ar_YE__ +#define __gnu_java_locale_LocaleInformation_ar_YE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ar_YE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ar_YE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ar_YE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ar_YE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_be_BY.h b/libjava/gnu/java/locale/LocaleInformation_be_BY.h new file mode 100644 index 00000000000..51a72506f64 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_be_BY.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_be_BY__ +#define __gnu_java_locale_LocaleInformation_be_BY__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_be_BY; + } + } + } +} + +class gnu::java::locale::LocaleInformation_be_BY : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_be_BY(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_be_BY__ diff --git a/libjava/gnu/java/locale/LocaleInformation_bn_IN.h b/libjava/gnu/java/locale/LocaleInformation_bn_IN.h new file mode 100644 index 00000000000..24264ea85cc --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_bn_IN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_bn_IN__ +#define __gnu_java_locale_LocaleInformation_bn_IN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_bn_IN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_bn_IN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_bn_IN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_bn_IN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_br_FR.h b/libjava/gnu/java/locale/LocaleInformation_br_FR.h new file mode 100644 index 00000000000..251ae2f4a10 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_br_FR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_br_FR__ +#define __gnu_java_locale_LocaleInformation_br_FR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_br_FR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_br_FR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_br_FR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_br_FR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_bs_BA.h b/libjava/gnu/java/locale/LocaleInformation_bs_BA.h new file mode 100644 index 00000000000..a71855e8969 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_bs_BA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_bs_BA__ +#define __gnu_java_locale_LocaleInformation_bs_BA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_bs_BA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_bs_BA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_bs_BA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_bs_BA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ca_ES.h b/libjava/gnu/java/locale/LocaleInformation_ca_ES.h new file mode 100644 index 00000000000..659a2a1196b --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ca_ES.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ca_ES__ +#define __gnu_java_locale_LocaleInformation_ca_ES__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ca_ES; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ca_ES : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ca_ES(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ca_ES__ diff --git a/libjava/gnu/java/locale/LocaleInformation_cs_CZ.h b/libjava/gnu/java/locale/LocaleInformation_cs_CZ.h new file mode 100644 index 00000000000..a871895e977 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_cs_CZ.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_cs_CZ__ +#define __gnu_java_locale_LocaleInformation_cs_CZ__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_cs_CZ; + } + } + } +} + +class gnu::java::locale::LocaleInformation_cs_CZ : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_cs_CZ(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_cs_CZ__ diff --git a/libjava/gnu/java/locale/LocaleInformation_cy_GB.h b/libjava/gnu/java/locale/LocaleInformation_cy_GB.h new file mode 100644 index 00000000000..150a1c4f14c --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_cy_GB.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_cy_GB__ +#define __gnu_java_locale_LocaleInformation_cy_GB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_cy_GB; + } + } + } +} + +class gnu::java::locale::LocaleInformation_cy_GB : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_cy_GB(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_cy_GB__ diff --git a/libjava/gnu/java/locale/LocaleInformation_da_DK.h b/libjava/gnu/java/locale/LocaleInformation_da_DK.h new file mode 100644 index 00000000000..1f20d1bb6a1 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_da_DK.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_da_DK__ +#define __gnu_java_locale_LocaleInformation_da_DK__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_da_DK; + } + } + } +} + +class gnu::java::locale::LocaleInformation_da_DK : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_da_DK(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_da_DK__ diff --git a/libjava/gnu/java/locale/LocaleInformation_de.h b/libjava/gnu/java/locale/LocaleInformation_de.h new file mode 100644 index 00000000000..ed1bde66188 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_de.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_de__ +#define __gnu_java_locale_LocaleInformation_de__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_de; + } + } + } +} + +class gnu::java::locale::LocaleInformation_de : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_de(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +private: + static ::java::lang::String * collation_rules; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * eras; + static JArray< JArray< ::java::lang::String * > * > * zoneStrings; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * mediumDateFormat; + static ::java::lang::String * longDateFormat; + static ::java::lang::String * fullDateFormat; + static ::java::lang::String * defaultDateFormat; + static ::java::lang::String * shortTimeFormat; + static ::java::lang::String * mediumTimeFormat; + static ::java::lang::String * longTimeFormat; + static ::java::lang::String * fullTimeFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * monetarySeparator; + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_de__ diff --git a/libjava/gnu/java/locale/LocaleInformation_de_AT.h b/libjava/gnu/java/locale/LocaleInformation_de_AT.h new file mode 100644 index 00000000000..a8bdd954e9d --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_de_AT.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_de_AT__ +#define __gnu_java_locale_LocaleInformation_de_AT__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_de_AT; + } + } + } +} + +class gnu::java::locale::LocaleInformation_de_AT : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_de_AT(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_de_AT__ diff --git a/libjava/gnu/java/locale/LocaleInformation_de_BE.h b/libjava/gnu/java/locale/LocaleInformation_de_BE.h new file mode 100644 index 00000000000..1b82c400722 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_de_BE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_de_BE__ +#define __gnu_java_locale_LocaleInformation_de_BE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_de_BE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_de_BE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_de_BE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_de_BE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_de_CH.h b/libjava/gnu/java/locale/LocaleInformation_de_CH.h new file mode 100644 index 00000000000..b1294cda235 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_de_CH.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_de_CH__ +#define __gnu_java_locale_LocaleInformation_de_CH__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_de_CH; + } + } + } +} + +class gnu::java::locale::LocaleInformation_de_CH : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_de_CH(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_de_CH__ diff --git a/libjava/gnu/java/locale/LocaleInformation_de_DE.h b/libjava/gnu/java/locale/LocaleInformation_de_DE.h new file mode 100644 index 00000000000..fe3ae5e6334 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_de_DE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_de_DE__ +#define __gnu_java_locale_LocaleInformation_de_DE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_de_DE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_de_DE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_de_DE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_de_DE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_de_LU.h b/libjava/gnu/java/locale/LocaleInformation_de_LU.h new file mode 100644 index 00000000000..0a567655cd8 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_de_LU.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_de_LU__ +#define __gnu_java_locale_LocaleInformation_de_LU__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_de_LU; + } + } + } +} + +class gnu::java::locale::LocaleInformation_de_LU : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_de_LU(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_de_LU__ diff --git a/libjava/gnu/java/locale/LocaleInformation_el_GR.h b/libjava/gnu/java/locale/LocaleInformation_el_GR.h new file mode 100644 index 00000000000..da89dd3872c --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_el_GR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_el_GR__ +#define __gnu_java_locale_LocaleInformation_el_GR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_el_GR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_el_GR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_el_GR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_el_GR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en.h b/libjava/gnu/java/locale/LocaleInformation_en.h new file mode 100644 index 00000000000..0aeba5a2f8c --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en__ +#define __gnu_java_locale_LocaleInformation_en__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +private: + static ::java::lang::String * collation_rules; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * ampms; + static JArray< ::java::lang::String * > * eras; + static JArray< JArray< ::java::lang::String * > * > * zoneStrings; + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_AU.h b/libjava/gnu/java/locale/LocaleInformation_en_AU.h new file mode 100644 index 00000000000..0b6267b21ea --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_AU.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_AU__ +#define __gnu_java_locale_LocaleInformation_en_AU__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_AU; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_AU : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_AU(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_AU__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_BW.h b/libjava/gnu/java/locale/LocaleInformation_en_BW.h new file mode 100644 index 00000000000..95cd728346d --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_BW.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_BW__ +#define __gnu_java_locale_LocaleInformation_en_BW__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_BW; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_BW : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_BW(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_BW__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_CA.h b/libjava/gnu/java/locale/LocaleInformation_en_CA.h new file mode 100644 index 00000000000..d5d86f75d4f --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_CA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_CA__ +#define __gnu_java_locale_LocaleInformation_en_CA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_CA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_CA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_CA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_CA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_DK.h b/libjava/gnu/java/locale/LocaleInformation_en_DK.h new file mode 100644 index 00000000000..703921f29f2 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_DK.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_DK__ +#define __gnu_java_locale_LocaleInformation_en_DK__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_DK; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_DK : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_DK(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_DK__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_GB.h b/libjava/gnu/java/locale/LocaleInformation_en_GB.h new file mode 100644 index 00000000000..8ca4d334467 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_GB.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_GB__ +#define __gnu_java_locale_LocaleInformation_en_GB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_GB; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_GB : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_GB(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_GB__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_HK.h b/libjava/gnu/java/locale/LocaleInformation_en_HK.h new file mode 100644 index 00000000000..84b99a2badd --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_HK.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_HK__ +#define __gnu_java_locale_LocaleInformation_en_HK__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_HK; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_HK : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_HK(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_HK__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_IE.h b/libjava/gnu/java/locale/LocaleInformation_en_IE.h new file mode 100644 index 00000000000..f7aad1a9a7e --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_IE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_IE__ +#define __gnu_java_locale_LocaleInformation_en_IE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_IE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_IE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_IE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_IE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_IN.h b/libjava/gnu/java/locale/LocaleInformation_en_IN.h new file mode 100644 index 00000000000..9e38fb2d824 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_IN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_IN__ +#define __gnu_java_locale_LocaleInformation_en_IN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_IN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_IN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_IN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_IN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_NZ.h b/libjava/gnu/java/locale/LocaleInformation_en_NZ.h new file mode 100644 index 00000000000..1493f27da60 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_NZ.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_NZ__ +#define __gnu_java_locale_LocaleInformation_en_NZ__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_NZ; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_NZ : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_NZ(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_NZ__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_PH.h b/libjava/gnu/java/locale/LocaleInformation_en_PH.h new file mode 100644 index 00000000000..e9251b117ed --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_PH.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_PH__ +#define __gnu_java_locale_LocaleInformation_en_PH__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_PH; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_PH : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_PH(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_PH__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_SG.h b/libjava/gnu/java/locale/LocaleInformation_en_SG.h new file mode 100644 index 00000000000..7b46bb3e07c --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_SG.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_SG__ +#define __gnu_java_locale_LocaleInformation_en_SG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_SG; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_SG : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_SG(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_SG__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_US.h b/libjava/gnu/java/locale/LocaleInformation_en_US.h new file mode 100644 index 00000000000..9875c5b286f --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_US.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_US__ +#define __gnu_java_locale_LocaleInformation_en_US__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_US; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_US : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_US(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_US__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_ZA.h b/libjava/gnu/java/locale/LocaleInformation_en_ZA.h new file mode 100644 index 00000000000..88aef9206bc --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_ZA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_ZA__ +#define __gnu_java_locale_LocaleInformation_en_ZA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_ZA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_ZA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_ZA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_ZA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_en_ZW.h b/libjava/gnu/java/locale/LocaleInformation_en_ZW.h new file mode 100644 index 00000000000..05794a9a213 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_en_ZW.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_en_ZW__ +#define __gnu_java_locale_LocaleInformation_en_ZW__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_en_ZW; + } + } + } +} + +class gnu::java::locale::LocaleInformation_en_ZW : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_en_ZW(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_en_ZW__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_AR.h b/libjava/gnu/java/locale/LocaleInformation_es_AR.h new file mode 100644 index 00000000000..fc665e37c23 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_AR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_AR__ +#define __gnu_java_locale_LocaleInformation_es_AR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_AR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_AR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_AR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_AR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_BO.h b/libjava/gnu/java/locale/LocaleInformation_es_BO.h new file mode 100644 index 00000000000..5fc8d518570 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_BO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_BO__ +#define __gnu_java_locale_LocaleInformation_es_BO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_BO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_BO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_BO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_BO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_CL.h b/libjava/gnu/java/locale/LocaleInformation_es_CL.h new file mode 100644 index 00000000000..27d5bb4c3c9 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_CL.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_CL__ +#define __gnu_java_locale_LocaleInformation_es_CL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_CL; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_CL : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_CL(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_CL__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_CO.h b/libjava/gnu/java/locale/LocaleInformation_es_CO.h new file mode 100644 index 00000000000..2bcae306959 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_CO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_CO__ +#define __gnu_java_locale_LocaleInformation_es_CO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_CO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_CO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_CO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_CO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_CR.h b/libjava/gnu/java/locale/LocaleInformation_es_CR.h new file mode 100644 index 00000000000..c051184dec6 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_CR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_CR__ +#define __gnu_java_locale_LocaleInformation_es_CR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_CR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_CR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_CR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_CR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_DO.h b/libjava/gnu/java/locale/LocaleInformation_es_DO.h new file mode 100644 index 00000000000..76e75996cfa --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_DO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_DO__ +#define __gnu_java_locale_LocaleInformation_es_DO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_DO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_DO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_DO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_DO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_EC.h b/libjava/gnu/java/locale/LocaleInformation_es_EC.h new file mode 100644 index 00000000000..cda5b98034f --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_EC.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_EC__ +#define __gnu_java_locale_LocaleInformation_es_EC__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_EC; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_EC : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_EC(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_EC__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_ES.h b/libjava/gnu/java/locale/LocaleInformation_es_ES.h new file mode 100644 index 00000000000..c3047114501 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_ES.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_ES__ +#define __gnu_java_locale_LocaleInformation_es_ES__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_ES; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_ES : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_ES(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_ES__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_GT.h b/libjava/gnu/java/locale/LocaleInformation_es_GT.h new file mode 100644 index 00000000000..36ed4e25f07 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_GT.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_GT__ +#define __gnu_java_locale_LocaleInformation_es_GT__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_GT; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_GT : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_GT(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_GT__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_HN.h b/libjava/gnu/java/locale/LocaleInformation_es_HN.h new file mode 100644 index 00000000000..11369dd85db --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_HN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_HN__ +#define __gnu_java_locale_LocaleInformation_es_HN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_HN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_HN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_HN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_HN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_MX.h b/libjava/gnu/java/locale/LocaleInformation_es_MX.h new file mode 100644 index 00000000000..5c944f123aa --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_MX.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_MX__ +#define __gnu_java_locale_LocaleInformation_es_MX__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_MX; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_MX : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_MX(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_MX__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_NI.h b/libjava/gnu/java/locale/LocaleInformation_es_NI.h new file mode 100644 index 00000000000..e9733a2d3d6 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_NI.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_NI__ +#define __gnu_java_locale_LocaleInformation_es_NI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_NI; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_NI : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_NI(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_NI__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_PA.h b/libjava/gnu/java/locale/LocaleInformation_es_PA.h new file mode 100644 index 00000000000..3f47027613a --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_PA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_PA__ +#define __gnu_java_locale_LocaleInformation_es_PA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_PA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_PA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_PA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_PA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_PE.h b/libjava/gnu/java/locale/LocaleInformation_es_PE.h new file mode 100644 index 00000000000..e6aac1ea1c8 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_PE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_PE__ +#define __gnu_java_locale_LocaleInformation_es_PE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_PE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_PE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_PE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_PE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_PR.h b/libjava/gnu/java/locale/LocaleInformation_es_PR.h new file mode 100644 index 00000000000..8ee47388cd1 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_PR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_PR__ +#define __gnu_java_locale_LocaleInformation_es_PR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_PR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_PR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_PR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_PR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_PY.h b/libjava/gnu/java/locale/LocaleInformation_es_PY.h new file mode 100644 index 00000000000..24edae871b2 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_PY.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_PY__ +#define __gnu_java_locale_LocaleInformation_es_PY__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_PY; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_PY : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_PY(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_PY__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_SV.h b/libjava/gnu/java/locale/LocaleInformation_es_SV.h new file mode 100644 index 00000000000..8907f3d724a --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_SV.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_SV__ +#define __gnu_java_locale_LocaleInformation_es_SV__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_SV; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_SV : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_SV(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_SV__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_US.h b/libjava/gnu/java/locale/LocaleInformation_es_US.h new file mode 100644 index 00000000000..ad462d97115 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_US.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_US__ +#define __gnu_java_locale_LocaleInformation_es_US__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_US; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_US : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_US(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_US__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_UY.h b/libjava/gnu/java/locale/LocaleInformation_es_UY.h new file mode 100644 index 00000000000..7c0a1b6dbc9 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_UY.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_UY__ +#define __gnu_java_locale_LocaleInformation_es_UY__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_UY; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_UY : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_UY(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_UY__ diff --git a/libjava/gnu/java/locale/LocaleInformation_es_VE.h b/libjava/gnu/java/locale/LocaleInformation_es_VE.h new file mode 100644 index 00000000000..eafea044caa --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_es_VE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_es_VE__ +#define __gnu_java_locale_LocaleInformation_es_VE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_es_VE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_es_VE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_es_VE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_es_VE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_et_EE.h b/libjava/gnu/java/locale/LocaleInformation_et_EE.h new file mode 100644 index 00000000000..a267270629e --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_et_EE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_et_EE__ +#define __gnu_java_locale_LocaleInformation_et_EE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_et_EE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_et_EE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_et_EE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_et_EE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_eu_ES.h b/libjava/gnu/java/locale/LocaleInformation_eu_ES.h new file mode 100644 index 00000000000..107351cfa8b --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_eu_ES.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_eu_ES__ +#define __gnu_java_locale_LocaleInformation_eu_ES__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_eu_ES; + } + } + } +} + +class gnu::java::locale::LocaleInformation_eu_ES : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_eu_ES(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_eu_ES__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fa_IR.h b/libjava/gnu/java/locale/LocaleInformation_fa_IR.h new file mode 100644 index 00000000000..e0f5c813300 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fa_IR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fa_IR__ +#define __gnu_java_locale_LocaleInformation_fa_IR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fa_IR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fa_IR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fa_IR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fa_IR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fi_FI.h b/libjava/gnu/java/locale/LocaleInformation_fi_FI.h new file mode 100644 index 00000000000..ec45eccaa62 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fi_FI.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fi_FI__ +#define __gnu_java_locale_LocaleInformation_fi_FI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fi_FI; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fi_FI : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fi_FI(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fi_FI__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fo_FO.h b/libjava/gnu/java/locale/LocaleInformation_fo_FO.h new file mode 100644 index 00000000000..ad6afd8de37 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fo_FO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fo_FO__ +#define __gnu_java_locale_LocaleInformation_fo_FO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fo_FO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fo_FO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fo_FO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fo_FO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fr_BE.h b/libjava/gnu/java/locale/LocaleInformation_fr_BE.h new file mode 100644 index 00000000000..dd2430b6ec2 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fr_BE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fr_BE__ +#define __gnu_java_locale_LocaleInformation_fr_BE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fr_BE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fr_BE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fr_BE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fr_BE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fr_CA.h b/libjava/gnu/java/locale/LocaleInformation_fr_CA.h new file mode 100644 index 00000000000..151f50ba0f3 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fr_CA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fr_CA__ +#define __gnu_java_locale_LocaleInformation_fr_CA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fr_CA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fr_CA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fr_CA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fr_CA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fr_CH.h b/libjava/gnu/java/locale/LocaleInformation_fr_CH.h new file mode 100644 index 00000000000..ae0c3be4899 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fr_CH.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fr_CH__ +#define __gnu_java_locale_LocaleInformation_fr_CH__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fr_CH; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fr_CH : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fr_CH(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fr_CH__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fr_FR.h b/libjava/gnu/java/locale/LocaleInformation_fr_FR.h new file mode 100644 index 00000000000..71ce984ed4b --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fr_FR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fr_FR__ +#define __gnu_java_locale_LocaleInformation_fr_FR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fr_FR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fr_FR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fr_FR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fr_FR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_fr_LU.h b/libjava/gnu/java/locale/LocaleInformation_fr_LU.h new file mode 100644 index 00000000000..f1a51b5260d --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_fr_LU.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_fr_LU__ +#define __gnu_java_locale_LocaleInformation_fr_LU__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_fr_LU; + } + } + } +} + +class gnu::java::locale::LocaleInformation_fr_LU : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_fr_LU(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_fr_LU__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ga_IE.h b/libjava/gnu/java/locale/LocaleInformation_ga_IE.h new file mode 100644 index 00000000000..63a0703dbb8 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ga_IE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ga_IE__ +#define __gnu_java_locale_LocaleInformation_ga_IE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ga_IE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ga_IE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ga_IE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ga_IE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_gd_GB.h b/libjava/gnu/java/locale/LocaleInformation_gd_GB.h new file mode 100644 index 00000000000..4ae0fd27df9 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_gd_GB.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_gd_GB__ +#define __gnu_java_locale_LocaleInformation_gd_GB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_gd_GB; + } + } + } +} + +class gnu::java::locale::LocaleInformation_gd_GB : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_gd_GB(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_gd_GB__ diff --git a/libjava/gnu/java/locale/LocaleInformation_gl_ES.h b/libjava/gnu/java/locale/LocaleInformation_gl_ES.h new file mode 100644 index 00000000000..6daee1ba8e2 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_gl_ES.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_gl_ES__ +#define __gnu_java_locale_LocaleInformation_gl_ES__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_gl_ES; + } + } + } +} + +class gnu::java::locale::LocaleInformation_gl_ES : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_gl_ES(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_gl_ES__ diff --git a/libjava/gnu/java/locale/LocaleInformation_gv_GB.h b/libjava/gnu/java/locale/LocaleInformation_gv_GB.h new file mode 100644 index 00000000000..82b81dbbf40 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_gv_GB.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_gv_GB__ +#define __gnu_java_locale_LocaleInformation_gv_GB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_gv_GB; + } + } + } +} + +class gnu::java::locale::LocaleInformation_gv_GB : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_gv_GB(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_gv_GB__ diff --git a/libjava/gnu/java/locale/LocaleInformation_he_IL.h b/libjava/gnu/java/locale/LocaleInformation_he_IL.h new file mode 100644 index 00000000000..f53e5d47b6e --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_he_IL.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_he_IL__ +#define __gnu_java_locale_LocaleInformation_he_IL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_he_IL; + } + } + } +} + +class gnu::java::locale::LocaleInformation_he_IL : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_he_IL(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_he_IL__ diff --git a/libjava/gnu/java/locale/LocaleInformation_hi_IN.h b/libjava/gnu/java/locale/LocaleInformation_hi_IN.h new file mode 100644 index 00000000000..dcdbce454e6 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_hi_IN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_hi_IN__ +#define __gnu_java_locale_LocaleInformation_hi_IN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_hi_IN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_hi_IN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_hi_IN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_hi_IN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_hr_HR.h b/libjava/gnu/java/locale/LocaleInformation_hr_HR.h new file mode 100644 index 00000000000..ff1fd9fdd6a --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_hr_HR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_hr_HR__ +#define __gnu_java_locale_LocaleInformation_hr_HR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_hr_HR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_hr_HR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_hr_HR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_hr_HR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_hu_HU.h b/libjava/gnu/java/locale/LocaleInformation_hu_HU.h new file mode 100644 index 00000000000..e4521bb83eb --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_hu_HU.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_hu_HU__ +#define __gnu_java_locale_LocaleInformation_hu_HU__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_hu_HU; + } + } + } +} + +class gnu::java::locale::LocaleInformation_hu_HU : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_hu_HU(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_hu_HU__ diff --git a/libjava/gnu/java/locale/LocaleInformation_id_ID.h b/libjava/gnu/java/locale/LocaleInformation_id_ID.h new file mode 100644 index 00000000000..9cc9a6771bf --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_id_ID.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_id_ID__ +#define __gnu_java_locale_LocaleInformation_id_ID__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_id_ID; + } + } + } +} + +class gnu::java::locale::LocaleInformation_id_ID : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_id_ID(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_id_ID__ diff --git a/libjava/gnu/java/locale/LocaleInformation_it_CH.h b/libjava/gnu/java/locale/LocaleInformation_it_CH.h new file mode 100644 index 00000000000..9f4a532a70b --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_it_CH.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_it_CH__ +#define __gnu_java_locale_LocaleInformation_it_CH__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_it_CH; + } + } + } +} + +class gnu::java::locale::LocaleInformation_it_CH : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_it_CH(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_it_CH__ diff --git a/libjava/gnu/java/locale/LocaleInformation_it_IT.h b/libjava/gnu/java/locale/LocaleInformation_it_IT.h new file mode 100644 index 00000000000..9a609df670b --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_it_IT.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_it_IT__ +#define __gnu_java_locale_LocaleInformation_it_IT__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_it_IT; + } + } + } +} + +class gnu::java::locale::LocaleInformation_it_IT : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_it_IT(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_it_IT__ diff --git a/libjava/gnu/java/locale/LocaleInformation_iw_IL.h b/libjava/gnu/java/locale/LocaleInformation_iw_IL.h new file mode 100644 index 00000000000..4dffbed802e --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_iw_IL.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_iw_IL__ +#define __gnu_java_locale_LocaleInformation_iw_IL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_iw_IL; + } + } + } +} + +class gnu::java::locale::LocaleInformation_iw_IL : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_iw_IL(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_iw_IL__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ja_JP.h b/libjava/gnu/java/locale/LocaleInformation_ja_JP.h new file mode 100644 index 00000000000..64fcc71d3dd --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ja_JP.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ja_JP__ +#define __gnu_java_locale_LocaleInformation_ja_JP__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ja_JP; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ja_JP : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ja_JP(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ja_JP__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ka_GE.h b/libjava/gnu/java/locale/LocaleInformation_ka_GE.h new file mode 100644 index 00000000000..b897c582455 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ka_GE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ka_GE__ +#define __gnu_java_locale_LocaleInformation_ka_GE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ka_GE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ka_GE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ka_GE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ka_GE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_kl_GL.h b/libjava/gnu/java/locale/LocaleInformation_kl_GL.h new file mode 100644 index 00000000000..1d0301c7a1f --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_kl_GL.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_kl_GL__ +#define __gnu_java_locale_LocaleInformation_kl_GL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_kl_GL; + } + } + } +} + +class gnu::java::locale::LocaleInformation_kl_GL : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_kl_GL(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_kl_GL__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ko_KR.h b/libjava/gnu/java/locale/LocaleInformation_ko_KR.h new file mode 100644 index 00000000000..6521be5d65b --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ko_KR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ko_KR__ +#define __gnu_java_locale_LocaleInformation_ko_KR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ko_KR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ko_KR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ko_KR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ko_KR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_kw_GB.h b/libjava/gnu/java/locale/LocaleInformation_kw_GB.h new file mode 100644 index 00000000000..b6ee13c9136 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_kw_GB.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_kw_GB__ +#define __gnu_java_locale_LocaleInformation_kw_GB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_kw_GB; + } + } + } +} + +class gnu::java::locale::LocaleInformation_kw_GB : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_kw_GB(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_kw_GB__ diff --git a/libjava/gnu/java/locale/LocaleInformation_lt_LT.h b/libjava/gnu/java/locale/LocaleInformation_lt_LT.h new file mode 100644 index 00000000000..2cafbe194f8 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_lt_LT.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_lt_LT__ +#define __gnu_java_locale_LocaleInformation_lt_LT__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_lt_LT; + } + } + } +} + +class gnu::java::locale::LocaleInformation_lt_LT : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_lt_LT(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_lt_LT__ diff --git a/libjava/gnu/java/locale/LocaleInformation_lv_LV.h b/libjava/gnu/java/locale/LocaleInformation_lv_LV.h new file mode 100644 index 00000000000..15cb631f4f3 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_lv_LV.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_lv_LV__ +#define __gnu_java_locale_LocaleInformation_lv_LV__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_lv_LV; + } + } + } +} + +class gnu::java::locale::LocaleInformation_lv_LV : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_lv_LV(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_lv_LV__ diff --git a/libjava/gnu/java/locale/LocaleInformation_mi_NZ.h b/libjava/gnu/java/locale/LocaleInformation_mi_NZ.h new file mode 100644 index 00000000000..1b08f9b23da --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_mi_NZ.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_mi_NZ__ +#define __gnu_java_locale_LocaleInformation_mi_NZ__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_mi_NZ; + } + } + } +} + +class gnu::java::locale::LocaleInformation_mi_NZ : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_mi_NZ(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_mi_NZ__ diff --git a/libjava/gnu/java/locale/LocaleInformation_mk_MK.h b/libjava/gnu/java/locale/LocaleInformation_mk_MK.h new file mode 100644 index 00000000000..9afa2f27a22 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_mk_MK.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_mk_MK__ +#define __gnu_java_locale_LocaleInformation_mk_MK__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_mk_MK; + } + } + } +} + +class gnu::java::locale::LocaleInformation_mk_MK : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_mk_MK(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_mk_MK__ diff --git a/libjava/gnu/java/locale/LocaleInformation_mr_IN.h b/libjava/gnu/java/locale/LocaleInformation_mr_IN.h new file mode 100644 index 00000000000..2334d894204 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_mr_IN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_mr_IN__ +#define __gnu_java_locale_LocaleInformation_mr_IN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_mr_IN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_mr_IN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_mr_IN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_mr_IN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_mt_MT.h b/libjava/gnu/java/locale/LocaleInformation_mt_MT.h new file mode 100644 index 00000000000..b0fd5420573 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_mt_MT.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_mt_MT__ +#define __gnu_java_locale_LocaleInformation_mt_MT__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_mt_MT; + } + } + } +} + +class gnu::java::locale::LocaleInformation_mt_MT : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_mt_MT(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_mt_MT__ diff --git a/libjava/gnu/java/locale/LocaleInformation_nl.h b/libjava/gnu/java/locale/LocaleInformation_nl.h new file mode 100644 index 00000000000..3fa73ca0510 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_nl.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_nl__ +#define __gnu_java_locale_LocaleInformation_nl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_nl; + } + } + } +} + +class gnu::java::locale::LocaleInformation_nl : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_nl(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +private: + static ::java::lang::String * collation_rules; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * ampms; + static JArray< ::java::lang::String * > * eras; + static JArray< JArray< ::java::lang::String * > * > * zoneStrings; + static ::java::lang::String * localPatternChars; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * mediumDateFormat; + static ::java::lang::String * longDateFormat; + static ::java::lang::String * fullDateFormat; + static ::java::lang::String * defaultDateFormat; + static ::java::lang::String * shortTimeFormat; + static ::java::lang::String * mediumTimeFormat; + static ::java::lang::String * longTimeFormat; + static ::java::lang::String * fullTimeFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * exponential; + static ::java::lang::String * digit; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * infinity; + static ::java::lang::String * NaN; + static ::java::lang::String * minusSign; + static ::java::lang::String * monetarySeparator; + static ::java::lang::String * patternSeparator; + static ::java::lang::String * percent; + static ::java::lang::String * perMill; + static ::java::lang::String * zeroDigit; + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_nl__ diff --git a/libjava/gnu/java/locale/LocaleInformation_nl_BE.h b/libjava/gnu/java/locale/LocaleInformation_nl_BE.h new file mode 100644 index 00000000000..1fa50cb5eeb --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_nl_BE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_nl_BE__ +#define __gnu_java_locale_LocaleInformation_nl_BE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_nl_BE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_nl_BE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_nl_BE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_nl_BE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_nl_NL.h b/libjava/gnu/java/locale/LocaleInformation_nl_NL.h new file mode 100644 index 00000000000..370855a9a78 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_nl_NL.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_nl_NL__ +#define __gnu_java_locale_LocaleInformation_nl_NL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_nl_NL; + } + } + } +} + +class gnu::java::locale::LocaleInformation_nl_NL : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_nl_NL(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_nl_NL__ diff --git a/libjava/gnu/java/locale/LocaleInformation_nn_NO.h b/libjava/gnu/java/locale/LocaleInformation_nn_NO.h new file mode 100644 index 00000000000..752fec2eb36 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_nn_NO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_nn_NO__ +#define __gnu_java_locale_LocaleInformation_nn_NO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_nn_NO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_nn_NO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_nn_NO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_nn_NO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_no_NO.h b/libjava/gnu/java/locale/LocaleInformation_no_NO.h new file mode 100644 index 00000000000..5d3443d0b66 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_no_NO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_no_NO__ +#define __gnu_java_locale_LocaleInformation_no_NO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_no_NO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_no_NO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_no_NO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_no_NO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_oc_FR.h b/libjava/gnu/java/locale/LocaleInformation_oc_FR.h new file mode 100644 index 00000000000..62730255ed0 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_oc_FR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_oc_FR__ +#define __gnu_java_locale_LocaleInformation_oc_FR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_oc_FR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_oc_FR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_oc_FR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_oc_FR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_pl_PL.h b/libjava/gnu/java/locale/LocaleInformation_pl_PL.h new file mode 100644 index 00000000000..39e32732284 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_pl_PL.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_pl_PL__ +#define __gnu_java_locale_LocaleInformation_pl_PL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_pl_PL; + } + } + } +} + +class gnu::java::locale::LocaleInformation_pl_PL : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_pl_PL(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_pl_PL__ diff --git a/libjava/gnu/java/locale/LocaleInformation_pt_BR.h b/libjava/gnu/java/locale/LocaleInformation_pt_BR.h new file mode 100644 index 00000000000..974796c0149 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_pt_BR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_pt_BR__ +#define __gnu_java_locale_LocaleInformation_pt_BR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_pt_BR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_pt_BR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_pt_BR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_pt_BR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_pt_PT.h b/libjava/gnu/java/locale/LocaleInformation_pt_PT.h new file mode 100644 index 00000000000..891207418c0 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_pt_PT.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_pt_PT__ +#define __gnu_java_locale_LocaleInformation_pt_PT__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_pt_PT; + } + } + } +} + +class gnu::java::locale::LocaleInformation_pt_PT : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_pt_PT(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_pt_PT__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ro_RO.h b/libjava/gnu/java/locale/LocaleInformation_ro_RO.h new file mode 100644 index 00000000000..854a9fa30dc --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ro_RO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ro_RO__ +#define __gnu_java_locale_LocaleInformation_ro_RO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ro_RO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ro_RO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ro_RO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ro_RO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ru_RU.h b/libjava/gnu/java/locale/LocaleInformation_ru_RU.h new file mode 100644 index 00000000000..c57be36e44e --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ru_RU.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ru_RU__ +#define __gnu_java_locale_LocaleInformation_ru_RU__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ru_RU; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ru_RU : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ru_RU(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ru_RU__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ru_UA.h b/libjava/gnu/java/locale/LocaleInformation_ru_UA.h new file mode 100644 index 00000000000..a4d8c03845c --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ru_UA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ru_UA__ +#define __gnu_java_locale_LocaleInformation_ru_UA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ru_UA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ru_UA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ru_UA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ru_UA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_se_NO.h b/libjava/gnu/java/locale/LocaleInformation_se_NO.h new file mode 100644 index 00000000000..4ca87729e63 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_se_NO.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_se_NO__ +#define __gnu_java_locale_LocaleInformation_se_NO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_se_NO; + } + } + } +} + +class gnu::java::locale::LocaleInformation_se_NO : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_se_NO(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_se_NO__ diff --git a/libjava/gnu/java/locale/LocaleInformation_sk_SK.h b/libjava/gnu/java/locale/LocaleInformation_sk_SK.h new file mode 100644 index 00000000000..c1142289e57 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_sk_SK.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_sk_SK__ +#define __gnu_java_locale_LocaleInformation_sk_SK__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_sk_SK; + } + } + } +} + +class gnu::java::locale::LocaleInformation_sk_SK : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_sk_SK(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_sk_SK__ diff --git a/libjava/gnu/java/locale/LocaleInformation_sl_SI.h b/libjava/gnu/java/locale/LocaleInformation_sl_SI.h new file mode 100644 index 00000000000..51aa0403dc5 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_sl_SI.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_sl_SI__ +#define __gnu_java_locale_LocaleInformation_sl_SI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_sl_SI; + } + } + } +} + +class gnu::java::locale::LocaleInformation_sl_SI : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_sl_SI(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_sl_SI__ diff --git a/libjava/gnu/java/locale/LocaleInformation_sq_AL.h b/libjava/gnu/java/locale/LocaleInformation_sq_AL.h new file mode 100644 index 00000000000..493cca5518e --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_sq_AL.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_sq_AL__ +#define __gnu_java_locale_LocaleInformation_sq_AL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_sq_AL; + } + } + } +} + +class gnu::java::locale::LocaleInformation_sq_AL : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_sq_AL(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_sq_AL__ diff --git a/libjava/gnu/java/locale/LocaleInformation_sr_YU.h b/libjava/gnu/java/locale/LocaleInformation_sr_YU.h new file mode 100644 index 00000000000..42349ca2dab --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_sr_YU.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_sr_YU__ +#define __gnu_java_locale_LocaleInformation_sr_YU__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_sr_YU; + } + } + } +} + +class gnu::java::locale::LocaleInformation_sr_YU : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_sr_YU(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_sr_YU__ diff --git a/libjava/gnu/java/locale/LocaleInformation_sv_FI.h b/libjava/gnu/java/locale/LocaleInformation_sv_FI.h new file mode 100644 index 00000000000..f5df7dcba91 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_sv_FI.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_sv_FI__ +#define __gnu_java_locale_LocaleInformation_sv_FI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_sv_FI; + } + } + } +} + +class gnu::java::locale::LocaleInformation_sv_FI : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_sv_FI(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_sv_FI__ diff --git a/libjava/gnu/java/locale/LocaleInformation_sv_SE.h b/libjava/gnu/java/locale/LocaleInformation_sv_SE.h new file mode 100644 index 00000000000..0a9e89c1db5 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_sv_SE.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_sv_SE__ +#define __gnu_java_locale_LocaleInformation_sv_SE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_sv_SE; + } + } + } +} + +class gnu::java::locale::LocaleInformation_sv_SE : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_sv_SE(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_sv_SE__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ta_IN.h b/libjava/gnu/java/locale/LocaleInformation_ta_IN.h new file mode 100644 index 00000000000..8ec6e611dbc --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ta_IN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ta_IN__ +#define __gnu_java_locale_LocaleInformation_ta_IN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ta_IN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ta_IN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ta_IN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ta_IN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_te_IN.h b/libjava/gnu/java/locale/LocaleInformation_te_IN.h new file mode 100644 index 00000000000..4942cb7cd4c --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_te_IN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_te_IN__ +#define __gnu_java_locale_LocaleInformation_te_IN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_te_IN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_te_IN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_te_IN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_te_IN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_tg_TJ.h b/libjava/gnu/java/locale/LocaleInformation_tg_TJ.h new file mode 100644 index 00000000000..ff642afcb55 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_tg_TJ.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_tg_TJ__ +#define __gnu_java_locale_LocaleInformation_tg_TJ__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_tg_TJ; + } + } + } +} + +class gnu::java::locale::LocaleInformation_tg_TJ : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_tg_TJ(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_tg_TJ__ diff --git a/libjava/gnu/java/locale/LocaleInformation_tl_PH.h b/libjava/gnu/java/locale/LocaleInformation_tl_PH.h new file mode 100644 index 00000000000..e8475692964 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_tl_PH.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_tl_PH__ +#define __gnu_java_locale_LocaleInformation_tl_PH__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_tl_PH; + } + } + } +} + +class gnu::java::locale::LocaleInformation_tl_PH : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_tl_PH(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_tl_PH__ diff --git a/libjava/gnu/java/locale/LocaleInformation_tr_TR.h b/libjava/gnu/java/locale/LocaleInformation_tr_TR.h new file mode 100644 index 00000000000..19edf48cb38 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_tr_TR.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_tr_TR__ +#define __gnu_java_locale_LocaleInformation_tr_TR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_tr_TR; + } + } + } +} + +class gnu::java::locale::LocaleInformation_tr_TR : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_tr_TR(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_tr_TR__ diff --git a/libjava/gnu/java/locale/LocaleInformation_uk_UA.h b/libjava/gnu/java/locale/LocaleInformation_uk_UA.h new file mode 100644 index 00000000000..ace1c31b655 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_uk_UA.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_uk_UA__ +#define __gnu_java_locale_LocaleInformation_uk_UA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_uk_UA; + } + } + } +} + +class gnu::java::locale::LocaleInformation_uk_UA : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_uk_UA(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_uk_UA__ diff --git a/libjava/gnu/java/locale/LocaleInformation_ur_PK.h b/libjava/gnu/java/locale/LocaleInformation_ur_PK.h new file mode 100644 index 00000000000..dc7a5ccf316 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_ur_PK.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_ur_PK__ +#define __gnu_java_locale_LocaleInformation_ur_PK__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_ur_PK; + } + } + } +} + +class gnu::java::locale::LocaleInformation_ur_PK : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_ur_PK(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_ur_PK__ diff --git a/libjava/gnu/java/locale/LocaleInformation_uz_UZ.h b/libjava/gnu/java/locale/LocaleInformation_uz_UZ.h new file mode 100644 index 00000000000..ec8d3fb492f --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_uz_UZ.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_uz_UZ__ +#define __gnu_java_locale_LocaleInformation_uz_UZ__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_uz_UZ; + } + } + } +} + +class gnu::java::locale::LocaleInformation_uz_UZ : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_uz_UZ(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_uz_UZ__ diff --git a/libjava/gnu/java/locale/LocaleInformation_vi_VN.h b/libjava/gnu/java/locale/LocaleInformation_vi_VN.h new file mode 100644 index 00000000000..293c03b8179 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_vi_VN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_vi_VN__ +#define __gnu_java_locale_LocaleInformation_vi_VN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_vi_VN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_vi_VN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_vi_VN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_vi_VN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_yi_US.h b/libjava/gnu/java/locale/LocaleInformation_yi_US.h new file mode 100644 index 00000000000..613e0b2fa23 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_yi_US.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_yi_US__ +#define __gnu_java_locale_LocaleInformation_yi_US__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_yi_US; + } + } + } +} + +class gnu::java::locale::LocaleInformation_yi_US : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_yi_US(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_yi_US__ diff --git a/libjava/gnu/java/locale/LocaleInformation_zh_CN.h b/libjava/gnu/java/locale/LocaleInformation_zh_CN.h new file mode 100644 index 00000000000..cefd2446a5a --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_zh_CN.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_zh_CN__ +#define __gnu_java_locale_LocaleInformation_zh_CN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_zh_CN; + } + } + } +} + +class gnu::java::locale::LocaleInformation_zh_CN : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_zh_CN(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_zh_CN__ diff --git a/libjava/gnu/java/locale/LocaleInformation_zh_HK.h b/libjava/gnu/java/locale/LocaleInformation_zh_HK.h new file mode 100644 index 00000000000..f0e0c18a71b --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_zh_HK.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_zh_HK__ +#define __gnu_java_locale_LocaleInformation_zh_HK__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_zh_HK; + } + } + } +} + +class gnu::java::locale::LocaleInformation_zh_HK : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_zh_HK(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_zh_HK__ diff --git a/libjava/gnu/java/locale/LocaleInformation_zh_SG.h b/libjava/gnu/java/locale/LocaleInformation_zh_SG.h new file mode 100644 index 00000000000..39f28d1a823 --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_zh_SG.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_zh_SG__ +#define __gnu_java_locale_LocaleInformation_zh_SG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_zh_SG; + } + } + } +} + +class gnu::java::locale::LocaleInformation_zh_SG : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_zh_SG(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_zh_SG__ diff --git a/libjava/gnu/java/locale/LocaleInformation_zh_TW.h b/libjava/gnu/java/locale/LocaleInformation_zh_TW.h new file mode 100644 index 00000000000..32cf3db4eaf --- /dev/null +++ b/libjava/gnu/java/locale/LocaleInformation_zh_TW.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_locale_LocaleInformation_zh_TW__ +#define __gnu_java_locale_LocaleInformation_zh_TW__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace locale + { + class LocaleInformation_zh_TW; + } + } + } +} + +class gnu::java::locale::LocaleInformation_zh_TW : public ::java::util::ListResourceBundle +{ + +public: + LocaleInformation_zh_TW(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); +public: // actually package-private + static ::java::lang::String * decimalSeparator; + static ::java::lang::String * groupingSeparator; + static ::java::lang::String * numberFormat; + static ::java::lang::String * percentFormat; + static JArray< ::java::lang::String * > * weekdays; + static JArray< ::java::lang::String * > * shortWeekdays; + static JArray< ::java::lang::String * > * shortMonths; + static JArray< ::java::lang::String * > * months; + static JArray< ::java::lang::String * > * ampms; + static ::java::lang::String * shortDateFormat; + static ::java::lang::String * defaultTimeFormat; + static ::java::lang::String * currencySymbol; + static ::java::lang::String * intlCurrencySymbol; + static ::java::lang::String * currencyFormat; +private: + static JArray< JArray< ::java::lang::Object * > * > * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_locale_LocaleInformation_zh_TW__ diff --git a/libjava/gnu/java/math/MPN.h b/libjava/gnu/java/math/MPN.h new file mode 100644 index 00000000000..50289abae33 --- /dev/null +++ b/libjava/gnu/java/math/MPN.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_math_MPN__ +#define __gnu_java_math_MPN__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace math + { + class MPN; + } + } + } +} + +class gnu::java::math::MPN : public ::java::lang::Object +{ + +public: + MPN(); + static jint add_1(JArray< jint > *, JArray< jint > *, jint, jint); + static jint add_n(JArray< jint > *, JArray< jint > *, JArray< jint > *, jint); + static jint sub_n(JArray< jint > *, JArray< jint > *, JArray< jint > *, jint); + static jint mul_1(JArray< jint > *, JArray< jint > *, jint, jint); + static void mul(JArray< jint > *, JArray< jint > *, jint, JArray< jint > *, jint); + static jlong udiv_qrnnd(jlong, jint); + static jint divmod_1(JArray< jint > *, JArray< jint > *, jint, jint); + static jint submul_1(JArray< jint > *, jint, JArray< jint > *, jint, jint); + static void divide(JArray< jint > *, jint, JArray< jint > *, jint); + static jint chars_per_word(jint); + static jint count_leading_zeros(jint); + static jint set_str(JArray< jint > *, JArray< jbyte > *, jint, jint); + static jint cmp(JArray< jint > *, JArray< jint > *, jint); + static jint cmp(JArray< jint > *, jint, JArray< jint > *, jint); + static jint rshift(JArray< jint > *, JArray< jint > *, jint, jint, jint); + static void rshift0(JArray< jint > *, JArray< jint > *, jint, jint, jint); + static jlong rshift_long(JArray< jint > *, jint, jint); + static jint lshift(JArray< jint > *, jint, JArray< jint > *, jint, jint); + static jint findLowestBit(jint); + static jint findLowestBit(JArray< jint > *); + static jint gcd(JArray< jint > *, JArray< jint > *, jint); + static jint intLength(jint); + static jint intLength(JArray< jint > *, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_math_MPN__ diff --git a/libjava/gnu/java/net/BASE64.h b/libjava/gnu/java/net/BASE64.h new file mode 100644 index 00000000000..77616ba5136 --- /dev/null +++ b/libjava/gnu/java/net/BASE64.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_BASE64__ +#define __gnu_java_net_BASE64__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class BASE64; + } + } + } +} + +class gnu::java::net::BASE64 : public ::java::lang::Object +{ + + BASE64(); +public: + static JArray< jbyte > * encode(JArray< jbyte > *); + static JArray< jbyte > * decode(JArray< jbyte > *); + static void main(JArray< ::java::lang::String * > *); +private: + static JArray< jbyte > * src; + static JArray< jbyte > * dst; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_BASE64__ diff --git a/libjava/gnu/java/net/CRLFInputStream.h b/libjava/gnu/java/net/CRLFInputStream.h new file mode 100644 index 00000000000..1c4df5cccfc --- /dev/null +++ b/libjava/gnu/java/net/CRLFInputStream.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_CRLFInputStream__ +#define __gnu_java_net_CRLFInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class CRLFInputStream; + } + } + } +} + +class gnu::java::net::CRLFInputStream : public ::java::io::InputStream +{ + +public: + CRLFInputStream(::java::io::InputStream *); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + jint indexOfCRLF(JArray< jbyte > *, jint, jint); +public: + static const jint CR = 13; + static const jint LF = 10; +public: // actually protected + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) in; +private: + jboolean doReset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_CRLFInputStream__ diff --git a/libjava/gnu/java/net/CRLFOutputStream.h b/libjava/gnu/java/net/CRLFOutputStream.h new file mode 100644 index 00000000000..594d7ae6fa1 --- /dev/null +++ b/libjava/gnu/java/net/CRLFOutputStream.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_CRLFOutputStream__ +#define __gnu_java_net_CRLFOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class CRLFOutputStream; + } + } + } +} + +class gnu::java::net::CRLFOutputStream : public ::java::io::FilterOutputStream +{ + +public: + CRLFOutputStream(::java::io::OutputStream *); + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(::java::lang::String *); + virtual void writeln(); +public: // actually package-private + static ::java::lang::String * US_ASCII; +public: + static const jint CR = 13; + static const jint LF = 10; + static JArray< jbyte > * CRLF; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) last; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_CRLFOutputStream__ diff --git a/libjava/gnu/java/net/DefaultContentHandlerFactory.h b/libjava/gnu/java/net/DefaultContentHandlerFactory.h new file mode 100644 index 00000000000..06c3f6f5290 --- /dev/null +++ b/libjava/gnu/java/net/DefaultContentHandlerFactory.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_DefaultContentHandlerFactory__ +#define __gnu_java_net_DefaultContentHandlerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class DefaultContentHandlerFactory; + } + } + } + namespace java + { + namespace net + { + class ContentHandler; + } + } +} + +class gnu::java::net::DefaultContentHandlerFactory : public ::java::lang::Object +{ + +public: + DefaultContentHandlerFactory(); + virtual ::java::net::ContentHandler * createContentHandler(::java::lang::String *); +private: + static JArray< ::java::lang::String * > * known_image_types; + static ::java::util::HashSet * imageTypes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_DefaultContentHandlerFactory__ diff --git a/libjava/gnu/java/net/DefaultProxySelector.h b/libjava/gnu/java/net/DefaultProxySelector.h new file mode 100644 index 00000000000..11a4fce0968 --- /dev/null +++ b/libjava/gnu/java/net/DefaultProxySelector.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_DefaultProxySelector__ +#define __gnu_java_net_DefaultProxySelector__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class DefaultProxySelector; + } + } + } + namespace java + { + namespace net + { + class SocketAddress; + class URI; + } + } +} + +class gnu::java::net::DefaultProxySelector : public ::java::net::ProxySelector +{ + +public: + DefaultProxySelector(); + void connectFailed(::java::net::URI *, ::java::net::SocketAddress *, ::java::io::IOException *); + ::java::util::List * select(::java::net::URI *); +private: + static ::java::util::List * proxies; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_DefaultProxySelector__ diff --git a/libjava/gnu/java/net/EmptyX509TrustManager.h b/libjava/gnu/java/net/EmptyX509TrustManager.h new file mode 100644 index 00000000000..df08b8197fe --- /dev/null +++ b/libjava/gnu/java/net/EmptyX509TrustManager.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_EmptyX509TrustManager__ +#define __gnu_java_net_EmptyX509TrustManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class EmptyX509TrustManager; + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class gnu::java::net::EmptyX509TrustManager : public ::java::lang::Object +{ + +public: + EmptyX509TrustManager(); + virtual void checkClientTrusted(JArray< ::java::security::cert::X509Certificate * > *, ::java::lang::String *); + virtual void checkServerTrusted(JArray< ::java::security::cert::X509Certificate * > *, ::java::lang::String *); + virtual JArray< ::java::security::cert::X509Certificate * > * getAcceptedIssuers(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_EmptyX509TrustManager__ diff --git a/libjava/gnu/java/net/GetLocalHostAction.h b/libjava/gnu/java/net/GetLocalHostAction.h new file mode 100644 index 00000000000..7c82e46fa71 --- /dev/null +++ b/libjava/gnu/java/net/GetLocalHostAction.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_GetLocalHostAction__ +#define __gnu_java_net_GetLocalHostAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class GetLocalHostAction; + } + } + } +} + +class gnu::java::net::GetLocalHostAction : public ::java::lang::Object +{ + +public: + GetLocalHostAction(); + virtual ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_GetLocalHostAction__ diff --git a/libjava/gnu/java/net/HeaderFieldHelper.h b/libjava/gnu/java/net/HeaderFieldHelper.h new file mode 100644 index 00000000000..ace66785d40 --- /dev/null +++ b/libjava/gnu/java/net/HeaderFieldHelper.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_HeaderFieldHelper__ +#define __gnu_java_net_HeaderFieldHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class HeaderFieldHelper; + } + } + } +} + +class gnu::java::net::HeaderFieldHelper : public ::java::lang::Object +{ + +public: + HeaderFieldHelper(); + HeaderFieldHelper(jint); + virtual void addHeaderField(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getHeaderFieldKeyByIndex(jint); + virtual ::java::lang::String * getHeaderFieldValueByIndex(jint); + virtual ::java::lang::String * getHeaderFieldValueByKey(::java::lang::String *); + virtual ::java::util::Map * getHeaderFields(); + virtual jint getNumberOfEntries(); +private: + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) headerFieldKeys; + ::java::util::Vector * headerFieldValues; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_HeaderFieldHelper__ diff --git a/libjava/gnu/java/net/ImageHandler.h b/libjava/gnu/java/net/ImageHandler.h new file mode 100644 index 00000000000..41aba924a7d --- /dev/null +++ b/libjava/gnu/java/net/ImageHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_ImageHandler__ +#define __gnu_java_net_ImageHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class ImageHandler; + } + } + } + namespace java + { + namespace net + { + class URLConnection; + } + } +} + +class gnu::java::net::ImageHandler : public ::java::net::ContentHandler +{ + +public: // actually package-private + ImageHandler(); +public: + virtual ::java::lang::Object * getContent(::java::net::URLConnection *); +public: // actually package-private + static ::gnu::java::net::ImageHandler * instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_ImageHandler__ diff --git a/libjava/gnu/java/net/IndexListParser.h b/libjava/gnu/java/net/IndexListParser.h new file mode 100644 index 00000000000..2bbeec1b32e --- /dev/null +++ b/libjava/gnu/java/net/IndexListParser.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_IndexListParser__ +#define __gnu_java_net_IndexListParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class IndexListParser; + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::net::IndexListParser : public ::java::lang::Object +{ + +public: + IndexListParser(::java::util::jar::JarFile *, ::java::net::URL *, ::java::net::URL *); +public: // actually package-private + virtual void clearAll(); +public: + virtual ::java::lang::String * getVersionInfo(); + virtual jdouble getVersionNumber(); + virtual ::java::util::LinkedHashMap * getHeaders(); + static ::java::lang::String * JAR_INDEX_FILE; + static ::java::lang::String * JAR_INDEX_VERSION_KEY; +public: // actually package-private + jdouble __attribute__((aligned(__alignof__( ::java::lang::Object)))) versionNumber; + ::java::util::LinkedHashMap * prefixes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_IndexListParser__ diff --git a/libjava/gnu/java/net/LineInputStream.h b/libjava/gnu/java/net/LineInputStream.h new file mode 100644 index 00000000000..194847efc18 --- /dev/null +++ b/libjava/gnu/java/net/LineInputStream.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_LineInputStream__ +#define __gnu_java_net_LineInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class LineInputStream; + } + } + } +} + +class gnu::java::net::LineInputStream : public ::java::io::InputStream +{ + +public: + LineInputStream(::java::io::InputStream *); + LineInputStream(::java::io::InputStream *, ::java::lang::String *); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * readLine(); +private: + jint indexOf(JArray< jbyte > *, jint, jbyte); +public: // actually protected + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) in; +private: + ::java::io::ByteArrayOutputStream * buf; + ::java::lang::String * encoding; + jboolean eof; + jboolean blockReads; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_LineInputStream__ diff --git a/libjava/gnu/java/net/PlainDatagramSocketImpl.h b/libjava/gnu/java/net/PlainDatagramSocketImpl.h new file mode 100644 index 00000000000..c57296fafe2 --- /dev/null +++ b/libjava/gnu/java/net/PlainDatagramSocketImpl.h @@ -0,0 +1,93 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_PlainDatagramSocketImpl__ +#define __gnu_java_net_PlainDatagramSocketImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainDatagramSocketImpl; + } + } + } + namespace java + { + namespace net + { + class DatagramPacket; + class InetAddress; + class NetworkInterface; + class SocketAddress; + } + } +} + +class gnu::java::net::PlainDatagramSocketImpl : public ::java::net::DatagramSocketImpl +{ + +public: + PlainDatagramSocketImpl(); +public: // actually protected + void finalize(); +public: + jint getNativeFD(); +public: // actually protected + void bind(jint, ::java::net::InetAddress *); + void connect(::java::net::InetAddress *, jint); + void disconnect(); + void create(); + jint peek(::java::net::InetAddress *); + jint peekData(::java::net::DatagramPacket *); + void setTimeToLive(jint); + jint getTimeToLive(); + void send(::java::net::DatagramPacket *); + void receive(::java::net::DatagramPacket *); +public: + void setOption(jint, ::java::lang::Object *); + ::java::lang::Object * getOption(jint); +private: + void mcastGrp(::java::net::InetAddress *, ::java::net::NetworkInterface *, jboolean); +public: // actually protected + void close(); + jbyte getTTL(); + void setTTL(jbyte); + void join(::java::net::InetAddress *); + void leave(::java::net::InetAddress *); + void joinGroup(::java::net::SocketAddress *, ::java::net::NetworkInterface *); + void leaveGroup(::java::net::SocketAddress *, ::java::net::NetworkInterface *); +public: // actually package-private + static const jint _Jv_TCP_NODELAY_ = 1; + static const jint _Jv_SO_BINDADDR_ = 15; + static const jint _Jv_SO_REUSEADDR_ = 4; + static const jint _Jv_SO_BROADCAST_ = 32; + static const jint _Jv_SO_OOBINLINE_ = 4099; + static const jint _Jv_IP_MULTICAST_IF_ = 16; + static const jint _Jv_IP_MULTICAST_IF2_ = 31; + static const jint _Jv_IP_MULTICAST_LOOP_ = 18; + static const jint _Jv_IP_TOS_ = 3; + static const jint _Jv_SO_LINGER_ = 128; + static const jint _Jv_SO_TIMEOUT_ = 4102; + static const jint _Jv_SO_SNDBUF_ = 4097; + static const jint _Jv_SO_RCVBUF_ = 4098; + static const jint _Jv_SO_KEEPALIVE_ = 8; + jint __attribute__((aligned(__alignof__( ::java::net::DatagramSocketImpl)))) native_fd; +private: + ::java::lang::Object * RECEIVE_LOCK; + ::java::lang::Object * SEND_LOCK; +public: // actually package-private + ::java::net::InetAddress * localAddress; + jint timeout; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_PlainDatagramSocketImpl__ diff --git a/libjava/gnu/java/net/PlainSocketImpl$SocketInputStream.h b/libjava/gnu/java/net/PlainSocketImpl$SocketInputStream.h new file mode 100644 index 00000000000..83ac40cf5a3 --- /dev/null +++ b/libjava/gnu/java/net/PlainSocketImpl$SocketInputStream.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_PlainSocketImpl$SocketInputStream__ +#define __gnu_java_net_PlainSocketImpl$SocketInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainSocketImpl; + class PlainSocketImpl$SocketInputStream; + } + } + } +} + +class gnu::java::net::PlainSocketImpl$SocketInputStream : public ::java::io::InputStream +{ + +public: // actually package-private + PlainSocketImpl$SocketInputStream(::gnu::java::net::PlainSocketImpl *); +public: + jint available(); + void close(); + jint read(); + jint read(JArray< jbyte > *, jint, jint); +public: // actually package-private + ::gnu::java::net::PlainSocketImpl * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_PlainSocketImpl$SocketInputStream__ diff --git a/libjava/gnu/java/net/PlainSocketImpl$SocketOutputStream.h b/libjava/gnu/java/net/PlainSocketImpl$SocketOutputStream.h new file mode 100644 index 00000000000..852e894f29e --- /dev/null +++ b/libjava/gnu/java/net/PlainSocketImpl$SocketOutputStream.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_PlainSocketImpl$SocketOutputStream__ +#define __gnu_java_net_PlainSocketImpl$SocketOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainSocketImpl; + class PlainSocketImpl$SocketOutputStream; + } + } + } +} + +class gnu::java::net::PlainSocketImpl$SocketOutputStream : public ::java::io::OutputStream +{ + +public: // actually package-private + PlainSocketImpl$SocketOutputStream(::gnu::java::net::PlainSocketImpl *); +public: + void close(); + void write(jint); + void write(JArray< jbyte > *, jint, jint); +public: // actually package-private + ::gnu::java::net::PlainSocketImpl * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_PlainSocketImpl$SocketOutputStream__ diff --git a/libjava/gnu/java/net/PlainSocketImpl.h b/libjava/gnu/java/net/PlainSocketImpl.h new file mode 100644 index 00000000000..7f13ea610b6 --- /dev/null +++ b/libjava/gnu/java/net/PlainSocketImpl.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_PlainSocketImpl__ +#define __gnu_java_net_PlainSocketImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainSocketImpl; + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class SocketAddress; + class SocketImpl; + } + } +} + +class gnu::java::net::PlainSocketImpl : public ::java::net::SocketImpl +{ + +public: + jboolean isInChannelOperation(); + void setInChannelOperation(jboolean); + PlainSocketImpl(); +public: // actually protected + void finalize(); +public: + jint getNativeFD(); + void setOption(jint, ::java::lang::Object *); + ::java::lang::Object * getOption(jint); + void shutdownInput(); + void shutdownOutput(); +public: // actually protected + void create(jboolean); + void connect(::java::lang::String *, jint); + void connect(::java::net::InetAddress *, jint); + void connect(::java::net::SocketAddress *, jint); + void bind(::java::net::InetAddress *, jint); + void listen(jint); + void accept(::java::net::SocketImpl *); +private: + void accept(::gnu::java::net::PlainSocketImpl *); +public: // actually protected + jint available(); + void close(); + void sendUrgentData(jint); + ::java::io::InputStream * getInputStream(); + ::java::io::OutputStream * getOutputStream(); +public: // actually package-private + static const jint _Jv_TCP_NODELAY_ = 1; + static const jint _Jv_SO_BINDADDR_ = 15; + static const jint _Jv_SO_REUSEADDR_ = 4; + static const jint _Jv_SO_BROADCAST_ = 32; + static const jint _Jv_SO_OOBINLINE_ = 4099; + static const jint _Jv_IP_MULTICAST_IF_ = 16; + static const jint _Jv_IP_MULTICAST_IF2_ = 31; + static const jint _Jv_IP_MULTICAST_LOOP_ = 18; + static const jint _Jv_IP_TOS_ = 3; + static const jint _Jv_SO_LINGER_ = 128; + static const jint _Jv_SO_TIMEOUT_ = 4102; + static const jint _Jv_SO_SNDBUF_ = 4097; + static const jint _Jv_SO_RCVBUF_ = 4098; + static const jint _Jv_SO_KEEPALIVE_ = 8; + jint __attribute__((aligned(__alignof__( ::java::net::SocketImpl)))) native_fd; + jint timeout; + ::java::net::InetAddress * localAddress; +private: + ::java::io::InputStream * in; + ::java::io::OutputStream * out; + jboolean inChannelOperation; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_PlainSocketImpl__ diff --git a/libjava/gnu/java/net/URLParseError.h b/libjava/gnu/java/net/URLParseError.h new file mode 100644 index 00000000000..c900dc0009d --- /dev/null +++ b/libjava/gnu/java/net/URLParseError.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_URLParseError__ +#define __gnu_java_net_URLParseError__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class URLParseError; + } + } + } +} + +class gnu::java::net::URLParseError : public ::java::lang::Error +{ + +public: + URLParseError(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_URLParseError__ diff --git a/libjava/gnu/java/net/loader/FileResource.h b/libjava/gnu/java/net/loader/FileResource.h new file mode 100644 index 00000000000..37f1d12cafb --- /dev/null +++ b/libjava/gnu/java/net/loader/FileResource.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_FileResource__ +#define __gnu_java_net_loader_FileResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class FileResource; + class FileURLLoader; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::net::loader::FileResource : public ::gnu::java::net::loader::Resource +{ + +public: + FileResource(::gnu::java::net::loader::FileURLLoader *, ::java::io::File *); + ::java::io::InputStream * getInputStream(); + jint getLength(); + ::java::net::URL * getURL(); +public: // actually package-private + ::java::io::File * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::Resource)))) file; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_FileResource__ diff --git a/libjava/gnu/java/net/loader/FileURLLoader.h b/libjava/gnu/java/net/loader/FileURLLoader.h new file mode 100644 index 00000000000..4592f7f9a90 --- /dev/null +++ b/libjava/gnu/java/net/loader/FileURLLoader.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_FileURLLoader__ +#define __gnu_java_net_loader_FileURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class FileURLLoader; + class Resource; + class URLStreamHandlerCache; + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLStreamHandlerFactory; + } + } +} + +class gnu::java::net::loader::FileURLLoader : public ::gnu::java::net::loader::URLLoader +{ + +public: + FileURLLoader(::java::net::URLClassLoader *, ::gnu::java::net::loader::URLStreamHandlerCache *, ::java::net::URLStreamHandlerFactory *, ::java::net::URL *, ::java::net::URL *); + ::gnu::java::net::loader::Resource * getResource(::java::lang::String *); +private: + ::java::io::File * walkPathComponents(::java::lang::String *); +public: // actually package-private + ::java::io::File * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::URLLoader)))) dir; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_FileURLLoader__ diff --git a/libjava/gnu/java/net/loader/JarURLLoader.h b/libjava/gnu/java/net/loader/JarURLLoader.h new file mode 100644 index 00000000000..68114ab3698 --- /dev/null +++ b/libjava/gnu/java/net/loader/JarURLLoader.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_JarURLLoader__ +#define __gnu_java_net_loader_JarURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class JarURLLoader; + class Resource; + class URLStreamHandlerCache; + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLStreamHandlerFactory; + } + } +} + +class gnu::java::net::loader::JarURLLoader : public ::gnu::java::net::loader::URLLoader +{ + + JarURLLoader(::java::net::URLClassLoader *, ::gnu::java::net::loader::URLStreamHandlerCache *, ::java::net::URLStreamHandlerFactory *, ::java::net::URL *, ::java::net::URL *, ::java::util::Set *); +public: + JarURLLoader(::java::net::URLClassLoader *, ::gnu::java::net::loader::URLStreamHandlerCache *, ::java::net::URLStreamHandlerFactory *, ::java::net::URL *, ::java::net::URL *); +private: + void initialize(); +public: + ::gnu::java::net::loader::Resource * getResource(::java::lang::String *); + ::java::util::jar::Manifest * getManifest(); + ::java::util::ArrayList * getClassPath(); +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::gnu::java::net::loader::URLLoader)))) initialized; + ::java::util::jar::JarFile * jarfile; + ::java::net::URL * baseJarURL; + ::java::util::ArrayList * classPath; + ::java::util::Set * indexSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_JarURLLoader__ diff --git a/libjava/gnu/java/net/loader/JarURLResource.h b/libjava/gnu/java/net/loader/JarURLResource.h new file mode 100644 index 00000000000..e9fe6a63804 --- /dev/null +++ b/libjava/gnu/java/net/loader/JarURLResource.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_JarURLResource__ +#define __gnu_java_net_loader_JarURLResource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class JarURLLoader; + class JarURLResource; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::java::net::loader::JarURLResource : public ::gnu::java::net::loader::Resource +{ + +public: + JarURLResource(::gnu::java::net::loader::JarURLLoader *, ::java::lang::String *, ::java::util::jar::JarEntry *); + ::java::io::InputStream * getInputStream(); + jint getLength(); + JArray< ::java::security::cert::Certificate * > * getCertificates(); + ::java::net::URL * getURL(); +private: + ::java::util::jar::JarEntry * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::Resource)))) entry; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_JarURLResource__ diff --git a/libjava/gnu/java/net/loader/RemoteResource.h b/libjava/gnu/java/net/loader/RemoteResource.h new file mode 100644 index 00000000000..29ccf16a651 --- /dev/null +++ b/libjava/gnu/java/net/loader/RemoteResource.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_RemoteResource__ +#define __gnu_java_net_loader_RemoteResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class RemoteResource; + class RemoteURLLoader; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::net::loader::RemoteResource : public ::gnu::java::net::loader::Resource +{ + +public: + RemoteResource(::gnu::java::net::loader::RemoteURLLoader *, ::java::lang::String *, ::java::net::URL *, ::java::io::InputStream *, jint); + ::java::io::InputStream * getInputStream(); + jint getLength(); + ::java::net::URL * getURL(); +private: + ::java::net::URL * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::Resource)))) url; + ::java::io::InputStream * stream; +public: // actually package-private + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_RemoteResource__ diff --git a/libjava/gnu/java/net/loader/RemoteURLLoader.h b/libjava/gnu/java/net/loader/RemoteURLLoader.h new file mode 100644 index 00000000000..2c051651b2b --- /dev/null +++ b/libjava/gnu/java/net/loader/RemoteURLLoader.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_RemoteURLLoader__ +#define __gnu_java_net_loader_RemoteURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class RemoteURLLoader; + class Resource; + class URLStreamHandlerCache; + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLStreamHandlerFactory; + } + } +} + +class gnu::java::net::loader::RemoteURLLoader : public ::gnu::java::net::loader::URLLoader +{ + +public: + RemoteURLLoader(::java::net::URLClassLoader *, ::gnu::java::net::loader::URLStreamHandlerCache *, ::java::net::URLStreamHandlerFactory *, ::java::net::URL *); + ::gnu::java::net::loader::Resource * getResource(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::URLLoader)))) protocol; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_RemoteURLLoader__ diff --git a/libjava/gnu/java/net/loader/Resource.h b/libjava/gnu/java/net/loader/Resource.h new file mode 100644 index 00000000000..98b626f4ab8 --- /dev/null +++ b/libjava/gnu/java/net/loader/Resource.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_Resource__ +#define __gnu_java_net_loader_Resource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class Resource; + class URLLoader; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace security + { + class CodeSource; + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::java::net::loader::Resource : public ::java::lang::Object +{ + +public: + Resource(::gnu::java::net::loader::URLLoader *); + virtual ::java::security::CodeSource * getCodeSource(); + virtual JArray< ::java::security::cert::Certificate * > * getCertificates(); + virtual ::gnu::java::net::loader::URLLoader * getLoader(); + virtual ::java::net::URL * getURL() = 0; + virtual jint getLength() = 0; + virtual ::java::io::InputStream * getInputStream() = 0; +public: // actually package-private + ::gnu::java::net::loader::URLLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loader; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_Resource__ diff --git a/libjava/gnu/java/net/loader/URLLoader.h b/libjava/gnu/java/net/loader/URLLoader.h new file mode 100644 index 00000000000..76c294b1faa --- /dev/null +++ b/libjava/gnu/java/net/loader/URLLoader.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_URLLoader__ +#define __gnu_java_net_loader_URLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class Resource; + class URLLoader; + class URLStreamHandlerCache; + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLStreamHandlerFactory; + } + namespace security + { + class CodeSource; + } + } +} + +class gnu::java::net::loader::URLLoader : public ::java::lang::Object +{ + +public: + URLLoader(::java::net::URLClassLoader *, ::gnu::java::net::loader::URLStreamHandlerCache *, ::java::net::URLStreamHandlerFactory *, ::java::net::URL *); + URLLoader(::java::net::URLClassLoader *, ::gnu::java::net::loader::URLStreamHandlerCache *, ::java::net::URLStreamHandlerFactory *, ::java::net::URL *, ::java::net::URL *); + virtual ::java::net::URL * getBaseURL(); + virtual ::java::lang::Class * getClass(::java::lang::String *); + virtual ::gnu::java::net::loader::Resource * getResource(::java::lang::String *) = 0; + virtual ::java::util::jar::Manifest * getManifest(); + virtual ::java::util::ArrayList * getClassPath(); +public: // actually package-private + ::java::net::URLClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) classloader; + ::java::net::URL * baseURL; + ::java::net::URLStreamHandlerFactory * factory; + ::gnu::java::net::loader::URLStreamHandlerCache * cache; + ::java::security::CodeSource * noCertCodeSource; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_URLLoader__ diff --git a/libjava/gnu/java/net/loader/URLStreamHandlerCache.h b/libjava/gnu/java/net/loader/URLStreamHandlerCache.h new file mode 100644 index 00000000000..a41d1d982bc --- /dev/null +++ b/libjava/gnu/java/net/loader/URLStreamHandlerCache.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_loader_URLStreamHandlerCache__ +#define __gnu_java_net_loader_URLStreamHandlerCache__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace loader + { + class URLStreamHandlerCache; + } + } + } + } + namespace java + { + namespace net + { + class URLStreamHandler; + class URLStreamHandlerFactory; + } + } +} + +class gnu::java::net::loader::URLStreamHandlerCache : public ::java::lang::Object +{ + +public: + URLStreamHandlerCache(); + virtual void add(::java::net::URLStreamHandlerFactory *); + virtual ::java::net::URLStreamHandler * get(::java::net::URLStreamHandlerFactory *, ::java::lang::String *); +private: + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) factoryCache; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_loader_URLStreamHandlerCache__ diff --git a/libjava/gnu/java/net/local/LocalServerSocket.h b/libjava/gnu/java/net/local/LocalServerSocket.h new file mode 100644 index 00000000000..35969bc6520 --- /dev/null +++ b/libjava/gnu/java/net/local/LocalServerSocket.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_local_LocalServerSocket__ +#define __gnu_java_net_local_LocalServerSocket__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace local + { + class LocalServerSocket; + class LocalSocketImpl; + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class Socket; + class SocketAddress; + } + } +} + +class gnu::java::net::local::LocalServerSocket : public ::java::net::ServerSocket +{ + +public: + LocalServerSocket(); + LocalServerSocket(::java::net::SocketAddress *); + void bind(::java::net::SocketAddress *); + void bind(::java::net::SocketAddress *, jint); + ::java::net::InetAddress * getInetAddress(); + jint getLocalPort(); + ::java::net::SocketAddress * getLocalSocketAddress(); + ::java::net::Socket * accept(); + void close(); + jboolean isBound(); + jboolean isClosed(); + void setSoTimeout(jint); + jint getSoTimeout(); + void setReuseAddress(jboolean); + jboolean getReuseAddress(); + ::java::lang::String * toString(); + void setReceiveBufferSize(jint); + jint getReceiveBufferSize(); + void setSendBufferSize(jint); + jint getSendBufferSize(); +private: + ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::net::ServerSocket)))) myImpl; + jboolean closed; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_local_LocalServerSocket__ diff --git a/libjava/gnu/java/net/local/LocalSocket.h b/libjava/gnu/java/net/local/LocalSocket.h new file mode 100644 index 00000000000..c33f540a268 --- /dev/null +++ b/libjava/gnu/java/net/local/LocalSocket.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_local_LocalSocket__ +#define __gnu_java_net_local_LocalSocket__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace local + { + class LocalSocket; + class LocalSocketAddress; + class LocalSocketImpl; + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class SocketAddress; + } + namespace nio + { + namespace channels + { + class SocketChannel; + } + } + } +} + +class gnu::java::net::local::LocalSocket : public ::java::net::Socket +{ + +public: + LocalSocket(); + LocalSocket(::gnu::java::net::local::LocalSocketAddress *); +public: // actually package-private + LocalSocket(jboolean); +public: + void bind(::java::net::SocketAddress *); + void connect(::java::net::SocketAddress *, jint); + ::java::net::InetAddress * getInetAddress(); + ::java::net::InetAddress * getLocalAddress(); + jint getPort(); + jint getLocalPort(); + ::java::nio::channels::SocketChannel * getChannel(); + ::java::net::SocketAddress * getLocalSocketAddress(); + ::java::net::SocketAddress * getRemoteSocketAddress(); + ::java::io::InputStream * getInputStream(); + ::java::io::OutputStream * getOutputStream(); + void sendUrgentData(jint); + void close(); + void shutdownInput(); + void shutdownOutput(); + jboolean isClosed(); + jboolean isBound(); + jboolean isConnected(); + void setTcpNoDelay(jboolean); + jboolean getTcpNoDelay(); + void setSoLinger(jboolean, jint); + jint getSoLinger(); + void setOOBInline(jboolean); + jboolean getOOBInline(); + void setSoTimeout(jint); + jint getSoTimeout(); + void setSendBufferSize(jint); + jint getSendBufferSize(); + void setReceiveBufferSize(jint); + jint getReceiveBufferSize(); + void setKeepAlive(jboolean); + jboolean getKeepAlive(); + void setTrafficClass(jint); + jint getTrafficClass(); + void setReuseAddress(jboolean); + jboolean getReuseAddress(); +public: // actually package-private + ::gnu::java::net::local::LocalSocketImpl * getLocalImpl(); +private: + ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::net::Socket)))) localimpl; +public: // actually package-private + jboolean localClosed; + jboolean localConnected; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_local_LocalSocket__ diff --git a/libjava/gnu/java/net/local/LocalSocketAddress.h b/libjava/gnu/java/net/local/LocalSocketAddress.h new file mode 100644 index 00000000000..ef095f61031 --- /dev/null +++ b/libjava/gnu/java/net/local/LocalSocketAddress.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_local_LocalSocketAddress__ +#define __gnu_java_net_local_LocalSocketAddress__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace local + { + class LocalSocketAddress; + } + } + } + } +} + +class gnu::java::net::local::LocalSocketAddress : public ::java::net::SocketAddress +{ + +public: + LocalSocketAddress(::java::lang::String *); + ::java::lang::String * getPath(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::SocketAddress)))) path; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_local_LocalSocketAddress__ diff --git a/libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h b/libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h new file mode 100644 index 00000000000..8b1de381772 --- /dev/null +++ b/libjava/gnu/java/net/local/LocalSocketImpl$LocalInputStream.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_local_LocalSocketImpl$LocalInputStream__ +#define __gnu_java_net_local_LocalSocketImpl$LocalInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace local + { + class LocalSocketImpl; + class LocalSocketImpl$LocalInputStream; + } + } + } + } +} + +class gnu::java::net::local::LocalSocketImpl$LocalInputStream : public ::java::io::InputStream +{ + +public: // actually package-private + LocalSocketImpl$LocalInputStream(::gnu::java::net::local::LocalSocketImpl *, ::gnu::java::net::local::LocalSocketImpl *); +public: + virtual jint available(); + virtual jboolean markSupported(); + virtual void mark(jint); + virtual void reset(); + virtual void close(); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) impl; +public: // actually package-private + ::gnu::java::net::local::LocalSocketImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_local_LocalSocketImpl$LocalInputStream__ diff --git a/libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h b/libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h new file mode 100644 index 00000000000..e45600120a1 --- /dev/null +++ b/libjava/gnu/java/net/local/LocalSocketImpl$LocalOutputStream.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_local_LocalSocketImpl$LocalOutputStream__ +#define __gnu_java_net_local_LocalSocketImpl$LocalOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace local + { + class LocalSocketImpl; + class LocalSocketImpl$LocalOutputStream; + } + } + } + } +} + +class gnu::java::net::local::LocalSocketImpl$LocalOutputStream : public ::java::io::OutputStream +{ + +public: // actually package-private + LocalSocketImpl$LocalOutputStream(::gnu::java::net::local::LocalSocketImpl *, ::gnu::java::net::local::LocalSocketImpl *); +public: + virtual void close(); + virtual void flush(); + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); +private: + ::gnu::java::net::local::LocalSocketImpl * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) impl; +public: // actually package-private + ::gnu::java::net::local::LocalSocketImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_local_LocalSocketImpl$LocalOutputStream__ diff --git a/libjava/gnu/java/net/local/LocalSocketImpl.h b/libjava/gnu/java/net/local/LocalSocketImpl.h new file mode 100644 index 00000000000..517d9302761 --- /dev/null +++ b/libjava/gnu/java/net/local/LocalSocketImpl.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_local_LocalSocketImpl__ +#define __gnu_java_net_local_LocalSocketImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace local + { + class LocalSocketAddress; + class LocalSocketImpl; + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class SocketAddress; + class SocketImpl; + } + } +} + +class gnu::java::net::local::LocalSocketImpl : public ::java::net::SocketImpl +{ + +public: // actually package-private + LocalSocketImpl(); + LocalSocketImpl(jboolean); +public: + void setOption(jint, ::java::lang::Object *); + ::java::lang::Object * getOption(jint); +public: // actually protected + void create(jboolean); + void listen(jint); + void accept(::gnu::java::net::local::LocalSocketImpl *); + jint available(); + void close(); + void sendUrgentData(jint); + void shutdownInput(); + void shutdownOutput(); +public: // actually package-private + void unlink(); + void localBind(::gnu::java::net::local::LocalSocketAddress *); + void localConnect(::gnu::java::net::local::LocalSocketAddress *); + jint read(JArray< jbyte > *, jint, jint); + void write(JArray< jbyte > *, jint, jint); + void doCreate(); + ::gnu::java::net::local::LocalSocketAddress * getLocalAddress(); + ::gnu::java::net::local::LocalSocketAddress * getRemoteAddress(); +public: // actually protected + ::java::io::InputStream * getInputStream(); + ::java::io::OutputStream * getOutputStream(); + void accept(::java::net::SocketImpl *); + void connect(::java::lang::String *, jint); + void connect(::java::net::InetAddress *, jint); + void connect(::java::net::SocketAddress *, jint); + void bind(::java::net::InetAddress *, jint); + void bind(::java::net::SocketAddress *); +private: + jboolean __attribute__((aligned(__alignof__( ::java::net::SocketImpl)))) created; + ::java::io::InputStream * in; + ::java::io::OutputStream * out; + jint socket_fd; + ::gnu::java::net::local::LocalSocketAddress * local; + ::gnu::java::net::local::LocalSocketAddress * remote; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_local_LocalSocketImpl__ diff --git a/libjava/gnu/java/net/protocol/core/Connection.h b/libjava/gnu/java/net/protocol/core/Connection.h new file mode 100644 index 00000000000..d09908b4c7d --- /dev/null +++ b/libjava/gnu/java/net/protocol/core/Connection.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_core_Connection__ +#define __gnu_java_net_protocol_core_Connection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class Core; + } + namespace java + { + namespace net + { + namespace protocol + { + namespace core + { + class Connection; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::net::protocol::core::Connection : public ::java::net::URLConnection +{ + +public: + Connection(::java::net::URL *); + virtual void connect(); + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::lang::String * getHeaderField(::java::lang::String *); + virtual ::java::util::Map * getHeaderFields(); + virtual ::java::lang::String * getHeaderField(jint); + virtual ::java::lang::String * getHeaderFieldKey(jint); +private: + ::java::lang::String * getKey(::java::lang::String *); + ::java::lang::String * getField(::java::lang::String *); + void getHeaders(); + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::net::URLConnection)))) hdrHash; + ::java::util::Vector * hdrVec; + jboolean gotHeaders; + ::gnu::gcj::Core * core; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_core_Connection__ diff --git a/libjava/gnu/java/net/protocol/core/CoreInputStream.h b/libjava/gnu/java/net/protocol/core/CoreInputStream.h new file mode 100644 index 00000000000..d6beb396584 --- /dev/null +++ b/libjava/gnu/java/net/protocol/core/CoreInputStream.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_core_CoreInputStream__ +#define __gnu_java_net_protocol_core_CoreInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class Core; + class RawData; + } + namespace java + { + namespace net + { + namespace protocol + { + namespace core + { + class CoreInputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::core::CoreInputStream : public ::java::io::InputStream +{ + + jint unsafeGetByte(jlong); + jint copyIntoByteArray(JArray< jbyte > *, jint, jint); +public: + CoreInputStream(::gnu::gcj::Core *); + 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 + ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) ptr; + jint pos; + jint mark__; + jint count; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_core_CoreInputStream__ diff --git a/libjava/gnu/java/net/protocol/core/Handler.h b/libjava/gnu/java/net/protocol/core/Handler.h new file mode 100644 index 00000000000..364e21abb03 --- /dev/null +++ b/libjava/gnu/java/net/protocol/core/Handler.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_core_Handler__ +#define __gnu_java_net_protocol_core_Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace core + { + class Handler; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } +} + +class gnu::java::net::protocol::core::Handler : public ::java::net::URLStreamHandler +{ + +public: + Handler(); +public: // actually protected + virtual ::java::net::URLConnection * openConnection(::java::net::URL *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_core_Handler__ diff --git a/libjava/gnu/java/net/protocol/file/Connection$StaticData.h b/libjava/gnu/java/net/protocol/file/Connection$StaticData.h new file mode 100644 index 00000000000..46ed9ac9588 --- /dev/null +++ b/libjava/gnu/java/net/protocol/file/Connection$StaticData.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_file_Connection$StaticData__ +#define __gnu_java_net_protocol_file_Connection$StaticData__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace file + { + class Connection$StaticData; + } + } + } + } + } + namespace java + { + namespace text + { + class SimpleDateFormat; + } + } +} + +class gnu::java::net::protocol::file::Connection$StaticData : public ::java::lang::Object +{ + + Connection$StaticData(); +public: // actually package-private + static ::java::text::SimpleDateFormat * dateFormat; + static ::java::lang::String * lineSeparator; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_file_Connection$StaticData__ diff --git a/libjava/gnu/java/net/protocol/file/Connection.h b/libjava/gnu/java/net/protocol/file/Connection.h new file mode 100644 index 00000000000..160f80834ea --- /dev/null +++ b/libjava/gnu/java/net/protocol/file/Connection.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_file_Connection__ +#define __gnu_java_net_protocol_file_Connection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace file + { + class Connection; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace security + { + class Permission; + } + } +} + +class gnu::java::net::protocol::file::Connection : public ::java::net::URLConnection +{ + +public: + Connection(::java::net::URL *); + static ::java::lang::String * unquote(::java::lang::String *); + virtual void connect(); +public: // actually package-private + virtual JArray< jbyte > * getDirectoryListing(); +public: + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::io::OutputStream * getOutputStream(); + virtual jlong getLastModified(); + virtual ::java::lang::String * getHeaderField(::java::lang::String *); + virtual jint getContentLength(); + virtual ::java::security::Permission * getPermission(); +private: + static ::java::lang::String * DEFAULT_PERMISSION; + ::java::io::File * __attribute__((aligned(__alignof__( ::java::net::URLConnection)))) file; + JArray< jbyte > * directoryListing; + ::java::io::InputStream * inputStream; + ::java::io::OutputStream * outputStream; + ::java::io::FilePermission * permission; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_file_Connection__ diff --git a/libjava/gnu/java/net/protocol/file/Handler.h b/libjava/gnu/java/net/protocol/file/Handler.h new file mode 100644 index 00000000000..f3edf9a99f5 --- /dev/null +++ b/libjava/gnu/java/net/protocol/file/Handler.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_file_Handler__ +#define __gnu_java_net_protocol_file_Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace file + { + class Handler; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } +} + +class gnu::java::net::protocol::file::Handler : public ::java::net::URLStreamHandler +{ + +public: + Handler(); +public: // actually protected + virtual ::java::net::URLConnection * openConnection(::java::net::URL *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_file_Handler__ diff --git a/libjava/gnu/java/net/protocol/ftp/ActiveModeDTP.h b/libjava/gnu/java/net/protocol/ftp/ActiveModeDTP.h new file mode 100644 index 00000000000..4ea352a7322 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/ActiveModeDTP.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_ActiveModeDTP__ +#define __gnu_java_net_protocol_ftp_ActiveModeDTP__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class ActiveModeDTP; + class DTPInputStream; + class DTPOutputStream; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class ServerSocket; + class Socket; + } + } +} + +class gnu::java::net::protocol::ftp::ActiveModeDTP : public ::java::lang::Object +{ + +public: // actually package-private + ActiveModeDTP(::java::net::InetAddress *, jint, jint, jint); +public: + void run(); + void waitFor(); + ::java::io::InputStream * getInputStream(); + ::java::io::OutputStream * getOutputStream(); + void setTransferMode(jint); + void complete(); + jboolean abort(); + void transferComplete(); +public: // actually package-private + ::java::net::ServerSocket * __attribute__((aligned(__alignof__( ::java::lang::Object)))) server; + ::java::net::Socket * socket; + ::gnu::java::net::protocol::ftp::DTPInputStream * in; + ::gnu::java::net::protocol::ftp::DTPOutputStream * out; + jboolean completed; + jboolean inProgress; + jint transferMode; + ::java::io::IOException * exception; + ::java::lang::Thread * acceptThread; + jint connectionTimeout; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_ActiveModeDTP__ diff --git a/libjava/gnu/java/net/protocol/ftp/BlockInputStream.h b/libjava/gnu/java/net/protocol/ftp/BlockInputStream.h new file mode 100644 index 00000000000..a6c0e18bf16 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/BlockInputStream.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_BlockInputStream__ +#define __gnu_java_net_protocol_ftp_BlockInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class BlockInputStream; + class DTP; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::BlockInputStream : public ::gnu::java::net::protocol::ftp::DTPInputStream +{ + +public: // actually package-private + BlockInputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::InputStream *); +public: + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); +public: // actually package-private + virtual void readHeader(); + static const jint EOF = 64; + jint __attribute__((aligned(__alignof__( ::gnu::java::net::protocol::ftp::DTPInputStream)))) descriptor; + jint max; + jint count; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_BlockInputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/BlockOutputStream.h b/libjava/gnu/java/net/protocol/ftp/BlockOutputStream.h new file mode 100644 index 00000000000..dd712fd2afc --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/BlockOutputStream.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_BlockOutputStream__ +#define __gnu_java_net_protocol_ftp_BlockOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class BlockOutputStream; + class DTP; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::BlockOutputStream : public ::gnu::java::net::protocol::ftp::DTPOutputStream +{ + +public: // actually package-private + BlockOutputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::OutputStream *); +public: + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void close(); +public: // actually package-private + static const jbyte RECORD = -128; + static const jbyte EOF = 64; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_BlockOutputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/CompressedInputStream.h b/libjava/gnu/java/net/protocol/ftp/CompressedInputStream.h new file mode 100644 index 00000000000..75de07ded16 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/CompressedInputStream.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_CompressedInputStream__ +#define __gnu_java_net_protocol_ftp_CompressedInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class CompressedInputStream; + class DTP; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::CompressedInputStream : public ::gnu::java::net::protocol::ftp::DTPInputStream +{ + +public: // actually package-private + CompressedInputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::InputStream *); +public: + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); +public: // actually package-private + virtual void readHeader(); + virtual void readCodeHeader(); + static const jint EOF = 64; + static const jint RAW = 0; + static const jint COMPRESSED = 128; + static const jint FILLER = 192; + jint __attribute__((aligned(__alignof__( ::gnu::java::net::protocol::ftp::DTPInputStream)))) descriptor; + jint max; + jint count; + jint state; + jint rep; + jint n; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_CompressedInputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/CompressedOutputStream.h b/libjava/gnu/java/net/protocol/ftp/CompressedOutputStream.h new file mode 100644 index 00000000000..243ac7c7a59 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/CompressedOutputStream.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_CompressedOutputStream__ +#define __gnu_java_net_protocol_ftp_CompressedOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class CompressedOutputStream; + class DTP; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::CompressedOutputStream : public ::gnu::java::net::protocol::ftp::DTPOutputStream +{ + +public: // actually package-private + CompressedOutputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::OutputStream *); +public: + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); +public: // actually package-private + virtual JArray< jbyte > * compress(JArray< jbyte > *, jint, jint); + virtual jint flush_compressed(JArray< jbyte > *, jint, jint, jbyte); + virtual jint flush_raw(JArray< jbyte > *, jint, JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * realloc(JArray< jbyte > *, jint); +public: + virtual void close(); +public: // actually package-private + static const jbyte RECORD = -128; + static const jbyte EOF = 64; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_CompressedOutputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/DTP.h b/libjava/gnu/java/net/protocol/ftp/DTP.h new file mode 100644 index 00000000000..132e9020afd --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/DTP.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_DTP__ +#define __gnu_java_net_protocol_ftp_DTP__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class DTP; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::DTP : public ::java::lang::Object +{ + +public: + virtual ::java::io::InputStream * getInputStream() = 0; + virtual ::java::io::OutputStream * getOutputStream() = 0; + virtual void setTransferMode(jint) = 0; + virtual void complete() = 0; + virtual jboolean abort() = 0; + virtual void transferComplete() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_net_protocol_ftp_DTP__ diff --git a/libjava/gnu/java/net/protocol/ftp/DTPInputStream.h b/libjava/gnu/java/net/protocol/ftp/DTPInputStream.h new file mode 100644 index 00000000000..257479948dd --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/DTPInputStream.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_DTPInputStream__ +#define __gnu_java_net_protocol_ftp_DTPInputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class DTP; + class DTPInputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::DTPInputStream : public ::java::io::FilterInputStream +{ + +public: // actually package-private + DTPInputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::InputStream *); + virtual void setTransferComplete(jboolean); +public: + virtual void close(); +public: // actually package-private + ::gnu::java::net::protocol::ftp::DTP * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) dtp; + jboolean transferComplete; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_DTPInputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/DTPOutputStream.h b/libjava/gnu/java/net/protocol/ftp/DTPOutputStream.h new file mode 100644 index 00000000000..1e59c7afbd9 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/DTPOutputStream.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_DTPOutputStream__ +#define __gnu_java_net_protocol_ftp_DTPOutputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class DTP; + class DTPOutputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::DTPOutputStream : public ::java::io::FilterOutputStream +{ + +public: // actually package-private + DTPOutputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::OutputStream *); + virtual void setTransferComplete(jboolean); +public: + virtual void close(); +public: // actually package-private + ::gnu::java::net::protocol::ftp::DTP * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) dtp; + jboolean transferComplete; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_DTPOutputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/FTPConnection.h b/libjava/gnu/java/net/protocol/ftp/FTPConnection.h new file mode 100644 index 00000000000..d0b1183f910 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/FTPConnection.h @@ -0,0 +1,165 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_FTPConnection__ +#define __gnu_java_net_protocol_ftp_FTPConnection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class CRLFOutputStream; + class LineInputStream; + namespace protocol + { + namespace ftp + { + class DTP; + class FTPConnection; + class FTPResponse; + } + } + } + } + } + namespace java + { + namespace net + { + class Socket; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class TrustManager; + } + } + } +} + +class gnu::java::net::protocol::ftp::FTPConnection : public ::java::lang::Object +{ + +public: + FTPConnection(::java::lang::String *); + FTPConnection(::java::lang::String *, jint); + FTPConnection(::java::lang::String *, jint, jint, jint, jboolean); + virtual jboolean authenticate(::java::lang::String *, ::java::lang::String *); + virtual jboolean starttls(jboolean); + virtual jboolean starttls(jboolean, ::javax::net::ssl::TrustManager *); + virtual jboolean changeWorkingDirectory(::java::lang::String *); + virtual jboolean changeToParentDirectory(); + virtual void reinitialize(); + virtual void logout(); +public: // actually protected + virtual void initialiseDTP(); +public: + virtual void setPassive(jboolean); + virtual jint getRepresentationType(); + virtual void setRepresentationType(jint); + virtual jint getFileStructure(); + virtual void setFileStructure(jint); + virtual jint getTransferMode(); + virtual void setTransferMode(jint); + virtual ::java::io::InputStream * retrieve(::java::lang::String *); + virtual ::java::io::OutputStream * store(::java::lang::String *); + virtual ::java::io::OutputStream * append(::java::lang::String *); + virtual void allocate(jlong); + virtual jboolean rename(::java::lang::String *, ::java::lang::String *); + virtual jboolean abort(); + virtual jboolean delete$(::java::lang::String *); + virtual jboolean removeDirectory(::java::lang::String *); + virtual jboolean makeDirectory(::java::lang::String *); + virtual ::java::lang::String * getWorkingDirectory(); + virtual ::java::io::InputStream * list(::java::lang::String *); + virtual ::java::util::List * nameList(::java::lang::String *); + virtual ::java::lang::String * system(); + virtual void noop(); +public: // actually protected + virtual void send(::java::lang::String *); + virtual ::gnu::java::net::protocol::ftp::FTPResponse * getResponse(); + virtual ::gnu::java::net::protocol::ftp::FTPResponse * readResponse(); +public: // actually package-private + static jint parseCode(::java::lang::String *); +public: + static const jint FTP_PORT = 21; + static const jint FTP_DATA_PORT = 20; +public: // actually protected + static ::java::lang::String * USER; + static ::java::lang::String * PASS; + static ::java::lang::String * ACCT; + static ::java::lang::String * CWD; + static ::java::lang::String * CDUP; + static ::java::lang::String * SMNT; + static ::java::lang::String * REIN; + static ::java::lang::String * QUIT; + static ::java::lang::String * PORT; + static ::java::lang::String * PASV; + static ::java::lang::String * TYPE; + static ::java::lang::String * STRU; + static ::java::lang::String * MODE; + static ::java::lang::String * RETR; + static ::java::lang::String * STOR; + static ::java::lang::String * STOU; + static ::java::lang::String * APPE; + static ::java::lang::String * ALLO; + static ::java::lang::String * REST; + static ::java::lang::String * RNFR; + static ::java::lang::String * RNTO; + static ::java::lang::String * ABOR; + static ::java::lang::String * DELE; + static ::java::lang::String * RMD; + static ::java::lang::String * MKD; + static ::java::lang::String * PWD; + static ::java::lang::String * LIST; + static ::java::lang::String * NLST; + static ::java::lang::String * SITE; + static ::java::lang::String * SYST; + static ::java::lang::String * STAT; + static ::java::lang::String * HELP; + static ::java::lang::String * NOOP; + static ::java::lang::String * AUTH; + static ::java::lang::String * PBSZ; + static ::java::lang::String * PROT; + static ::java::lang::String * CCC; + static ::java::lang::String * TLS; +public: + static const jint TYPE_ASCII = 1; + static const jint TYPE_EBCDIC = 2; + static const jint TYPE_BINARY = 3; + static const jint STRUCTURE_FILE = 1; + static const jint STRUCTURE_RECORD = 2; + static const jint STRUCTURE_PAGE = 3; + static const jint MODE_STREAM = 1; + static const jint MODE_BLOCK = 2; + static const jint MODE_COMPRESSED = 3; +private: + static ::java::lang::String * US_ASCII; +public: // actually protected + ::java::net::Socket * __attribute__((aligned(__alignof__( ::java::lang::Object)))) socket; + ::gnu::java::net::LineInputStream * in; + ::gnu::java::net::CRLFOutputStream * out; + jint connectionTimeout; + jint timeout; + jboolean debug; + ::gnu::java::net::protocol::ftp::DTP * dtp; + jint representationType; + jint fileStructure; + jint transferMode; + jboolean passive; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_FTPConnection__ diff --git a/libjava/gnu/java/net/protocol/ftp/FTPException.h b/libjava/gnu/java/net/protocol/ftp/FTPException.h new file mode 100644 index 00000000000..b22c2f24ac3 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/FTPException.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_FTPException__ +#define __gnu_java_net_protocol_ftp_FTPException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class FTPException; + class FTPResponse; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::FTPException : public ::java::io::IOException +{ + +public: + FTPException(::gnu::java::net::protocol::ftp::FTPResponse *); + virtual ::gnu::java::net::protocol::ftp::FTPResponse * getResponse(); +public: // actually protected + ::gnu::java::net::protocol::ftp::FTPResponse * __attribute__((aligned(__alignof__( ::java::io::IOException)))) response; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_FTPException__ diff --git a/libjava/gnu/java/net/protocol/ftp/FTPResponse.h b/libjava/gnu/java/net/protocol/ftp/FTPResponse.h new file mode 100644 index 00000000000..b7faeb99744 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/FTPResponse.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_FTPResponse__ +#define __gnu_java_net_protocol_ftp_FTPResponse__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class FTPResponse; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::FTPResponse : public ::java::lang::Object +{ + +public: + FTPResponse(jint, ::java::lang::String *); + FTPResponse(jint, ::java::lang::String *, ::java::lang::String *); + jint getCode(); + ::java::lang::String * getMessage(); + ::java::lang::String * getData(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) code; + ::java::lang::String * message; + ::java::lang::String * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_FTPResponse__ diff --git a/libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingInputStream.h b/libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingInputStream.h new file mode 100644 index 00000000000..ab8c4e0c8da --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingInputStream.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_FTPURLConnection$ClosingInputStream__ +#define __gnu_java_net_protocol_ftp_FTPURLConnection$ClosingInputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class FTPURLConnection; + class FTPURLConnection$ClosingInputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::FTPURLConnection$ClosingInputStream : public ::java::io::FilterInputStream +{ + +public: // actually package-private + FTPURLConnection$ClosingInputStream(::gnu::java::net::protocol::ftp::FTPURLConnection *, ::java::io::InputStream *); +public: + virtual void close(); +public: // actually package-private + ::gnu::java::net::protocol::ftp::FTPURLConnection * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_FTPURLConnection$ClosingInputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingOutputStream.h b/libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingOutputStream.h new file mode 100644 index 00000000000..7cdb24cf0a2 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/FTPURLConnection$ClosingOutputStream.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_FTPURLConnection$ClosingOutputStream__ +#define __gnu_java_net_protocol_ftp_FTPURLConnection$ClosingOutputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class FTPURLConnection; + class FTPURLConnection$ClosingOutputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::FTPURLConnection$ClosingOutputStream : public ::java::io::FilterOutputStream +{ + +public: // actually package-private + FTPURLConnection$ClosingOutputStream(::gnu::java::net::protocol::ftp::FTPURLConnection *, ::java::io::OutputStream *); +public: + virtual void close(); +public: // actually package-private + ::gnu::java::net::protocol::ftp::FTPURLConnection * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_FTPURLConnection$ClosingOutputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/FTPURLConnection.h b/libjava/gnu/java/net/protocol/ftp/FTPURLConnection.h new file mode 100644 index 00000000000..a4139287e7e --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/FTPURLConnection.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_FTPURLConnection__ +#define __gnu_java_net_protocol_ftp_FTPURLConnection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class FTPConnection; + class FTPURLConnection; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::net::protocol::ftp::FTPURLConnection : public ::java::net::URLConnection +{ + +public: + FTPURLConnection(::java::net::URL *); + virtual void connect(); + virtual void setDoInput(jboolean); + virtual void setDoOutput(jboolean); + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::io::OutputStream * getOutputStream(); + virtual ::java::lang::String * getRequestProperty(::java::lang::String *); + virtual ::java::util::Map * getRequestProperties(); +private: + void addRequestPropertyValue(::java::util::Map *, ::java::lang::String *); +public: + virtual void setRequestProperty(::java::lang::String *, ::java::lang::String *); + virtual void addRequestProperty(::java::lang::String *, ::java::lang::String *); +public: // actually protected + ::gnu::java::net::protocol::ftp::FTPConnection * __attribute__((aligned(__alignof__( ::java::net::URLConnection)))) connection; + jboolean passive; + jint representationType; + jint fileStructure; + jint transferMode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_FTPURLConnection__ diff --git a/libjava/gnu/java/net/protocol/ftp/Handler.h b/libjava/gnu/java/net/protocol/ftp/Handler.h new file mode 100644 index 00000000000..05839d6ab20 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/Handler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_Handler__ +#define __gnu_java_net_protocol_ftp_Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class Handler; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } +} + +class gnu::java::net::protocol::ftp::Handler : public ::java::net::URLStreamHandler +{ + +public: + Handler(); +public: // actually protected + virtual jint getDefaultPort(); +public: + virtual ::java::net::URLConnection * openConnection(::java::net::URL *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_Handler__ diff --git a/libjava/gnu/java/net/protocol/ftp/PassiveModeDTP.h b/libjava/gnu/java/net/protocol/ftp/PassiveModeDTP.h new file mode 100644 index 00000000000..01a4a8a7882 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/PassiveModeDTP.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_PassiveModeDTP__ +#define __gnu_java_net_protocol_ftp_PassiveModeDTP__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class DTPInputStream; + class DTPOutputStream; + class PassiveModeDTP; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class Socket; + } + } +} + +class gnu::java::net::protocol::ftp::PassiveModeDTP : public ::java::lang::Object +{ + +public: // actually package-private + PassiveModeDTP(::java::lang::String *, jint, ::java::net::InetAddress *, jint, jint); +public: + ::java::io::InputStream * getInputStream(); + ::java::io::OutputStream * getOutputStream(); + void setTransferMode(jint); + void complete(); + jboolean abort(); + void transferComplete(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) address; + jint port; + ::java::net::Socket * socket; + ::gnu::java::net::protocol::ftp::DTPInputStream * in; + ::gnu::java::net::protocol::ftp::DTPOutputStream * out; + jboolean completed; + jboolean inProgress; + jint transferMode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_PassiveModeDTP__ diff --git a/libjava/gnu/java/net/protocol/ftp/StreamInputStream.h b/libjava/gnu/java/net/protocol/ftp/StreamInputStream.h new file mode 100644 index 00000000000..2a344be90aa --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/StreamInputStream.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_StreamInputStream__ +#define __gnu_java_net_protocol_ftp_StreamInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class DTP; + class StreamInputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::StreamInputStream : public ::gnu::java::net::protocol::ftp::DTPInputStream +{ + +public: // actually package-private + StreamInputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::InputStream *); +public: + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_StreamInputStream__ diff --git a/libjava/gnu/java/net/protocol/ftp/StreamOutputStream.h b/libjava/gnu/java/net/protocol/ftp/StreamOutputStream.h new file mode 100644 index 00000000000..7787c3b5e35 --- /dev/null +++ b/libjava/gnu/java/net/protocol/ftp/StreamOutputStream.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_ftp_StreamOutputStream__ +#define __gnu_java_net_protocol_ftp_StreamOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace ftp + { + class DTP; + class StreamOutputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::ftp::StreamOutputStream : public ::gnu::java::net::protocol::ftp::DTPOutputStream +{ + +public: // actually package-private + StreamOutputStream(::gnu::java::net::protocol::ftp::DTP *, ::java::io::OutputStream *); +public: + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_ftp_StreamOutputStream__ diff --git a/libjava/gnu/java/net/protocol/gcjlib/Connection.h b/libjava/gnu/java/net/protocol/gcjlib/Connection.h new file mode 100644 index 00000000000..9ecf032efe7 --- /dev/null +++ b/libjava/gnu/java/net/protocol/gcjlib/Connection.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_gcjlib_Connection__ +#define __gnu_java_net_protocol_gcjlib_Connection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class Core; + } + namespace java + { + namespace net + { + namespace protocol + { + namespace gcjlib + { + class Connection; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::net::protocol::gcjlib::Connection : public ::java::net::URLConnection +{ + +public: + Connection(::java::net::URL *); + virtual void connect(); + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::lang::String * getHeaderField(::java::lang::String *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::URLConnection)))) solib; + ::java::lang::String * name; + ::gnu::gcj::Core * core; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_gcjlib_Connection__ diff --git a/libjava/gnu/java/net/protocol/gcjlib/Handler.h b/libjava/gnu/java/net/protocol/gcjlib/Handler.h new file mode 100644 index 00000000000..40813aeb548 --- /dev/null +++ b/libjava/gnu/java/net/protocol/gcjlib/Handler.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_gcjlib_Handler__ +#define __gnu_java_net_protocol_gcjlib_Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace gcjlib + { + class Handler; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } +} + +class gnu::java::net::protocol::gcjlib::Handler : public ::java::net::URLStreamHandler +{ + +public: + Handler(); +public: // actually protected + virtual ::java::net::URLConnection * openConnection(::java::net::URL *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_gcjlib_Handler__ diff --git a/libjava/gnu/java/net/protocol/http/Authenticator.h b/libjava/gnu/java/net/protocol/http/Authenticator.h new file mode 100644 index 00000000000..c2390d2b3fc --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Authenticator.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Authenticator__ +#define __gnu_java_net_protocol_http_Authenticator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Authenticator; + class Credentials; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::Authenticator : public ::java::lang::Object +{ + +public: + virtual ::gnu::java::net::protocol::http::Credentials * getCredentials(::java::lang::String *, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_net_protocol_http_Authenticator__ diff --git a/libjava/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.h b/libjava/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.h new file mode 100644 index 00000000000..2d9b51957c1 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_ByteArrayRequestBodyWriter__ +#define __gnu_java_net_protocol_http_ByteArrayRequestBodyWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class ByteArrayRequestBodyWriter; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::ByteArrayRequestBodyWriter : public ::java::lang::Object +{ + +public: + ByteArrayRequestBodyWriter(JArray< jbyte > *); + virtual jint getContentLength(); + virtual void reset(); + virtual jint write(JArray< jbyte > *); +public: // actually protected + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) content; + jint pos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_ByteArrayRequestBodyWriter__ diff --git a/libjava/gnu/java/net/protocol/http/ChunkedInputStream.h b/libjava/gnu/java/net/protocol/http/ChunkedInputStream.h new file mode 100644 index 00000000000..16a27056bcb --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/ChunkedInputStream.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_ChunkedInputStream__ +#define __gnu_java_net_protocol_http_ChunkedInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class ChunkedInputStream; + class Headers; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::ChunkedInputStream : public ::java::io::InputStream +{ + +public: + ChunkedInputStream(::java::io::InputStream *, ::gnu::java::net::protocol::http::Headers *); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint available(); + virtual void close(); +private: + static const jbyte CR = 13; + static const jbyte LF = 10; +public: // actually package-private + ::gnu::java::net::protocol::http::Headers * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) headers; +private: + ::java::io::InputStream * in; +public: // actually package-private + jint size; + jint count; + jboolean meta; + jboolean eof; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_ChunkedInputStream__ diff --git a/libjava/gnu/java/net/protocol/http/Cookie.h b/libjava/gnu/java/net/protocol/http/Cookie.h new file mode 100644 index 00000000000..3c23640600a --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Cookie.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Cookie__ +#define __gnu_java_net_protocol_http_Cookie__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Cookie; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::Cookie : public ::java::lang::Object +{ + +public: + Cookie(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, ::java::util::Date *); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getValue(); + virtual ::java::lang::String * getComment(); + virtual ::java::lang::String * getDomain(); + virtual ::java::lang::String * getPath(); + virtual jboolean isSecure(); + virtual ::java::util::Date * getExpiryDate(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(jboolean, jboolean); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * value; + ::java::lang::String * comment; + ::java::lang::String * domain; + ::java::lang::String * path; + jboolean secure; + ::java::util::Date * expires; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_Cookie__ diff --git a/libjava/gnu/java/net/protocol/http/CookieManager.h b/libjava/gnu/java/net/protocol/http/CookieManager.h new file mode 100644 index 00000000000..f06ac974b44 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/CookieManager.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_CookieManager__ +#define __gnu_java_net_protocol_http_CookieManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Cookie; + class CookieManager; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::CookieManager : public ::java::lang::Object +{ + +public: + virtual void setCookie(::gnu::java::net::protocol::http::Cookie *) = 0; + virtual JArray< ::gnu::java::net::protocol::http::Cookie * > * getCookies(::java::lang::String *, jboolean, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_net_protocol_http_CookieManager__ diff --git a/libjava/gnu/java/net/protocol/http/Credentials.h b/libjava/gnu/java/net/protocol/http/Credentials.h new file mode 100644 index 00000000000..e877d54d998 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Credentials.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Credentials__ +#define __gnu_java_net_protocol_http_Credentials__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Credentials; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::Credentials : public ::java::lang::Object +{ + +public: + Credentials(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getUsername(); + virtual ::java::lang::String * getPassword(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) username; + ::java::lang::String * password; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_Credentials__ diff --git a/libjava/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.h b/libjava/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.h new file mode 100644 index 00000000000..727cb83aebf --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_HTTPConnection$Pool$Reaper__ +#define __gnu_java_net_protocol_http_HTTPConnection$Pool$Reaper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class HTTPConnection$Pool; + class HTTPConnection$Pool$Reaper; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::HTTPConnection$Pool$Reaper : public ::java::lang::Object +{ + +public: // actually package-private + HTTPConnection$Pool$Reaper(::gnu::java::net::protocol::http::HTTPConnection$Pool *); +public: + virtual void run(); +public: // actually package-private + ::gnu::java::net::protocol::http::HTTPConnection$Pool * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_HTTPConnection$Pool$Reaper__ diff --git a/libjava/gnu/java/net/protocol/http/HTTPConnection$Pool.h b/libjava/gnu/java/net/protocol/http/HTTPConnection$Pool.h new file mode 100644 index 00000000000..62aaa265b23 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/HTTPConnection$Pool.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_HTTPConnection$Pool__ +#define __gnu_java_net_protocol_http_HTTPConnection$Pool__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class HTTPConnection; + class HTTPConnection$Pool; + class HTTPConnection$Pool$Reaper; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::HTTPConnection$Pool : public ::java::lang::Object +{ + + HTTPConnection$Pool(); + static jboolean matches(::gnu::java::net::protocol::http::HTTPConnection *, ::java::lang::String *, jint, jboolean); +public: // actually package-private + virtual ::gnu::java::net::protocol::http::HTTPConnection * get(::java::lang::String *, jint, jboolean, jint, jint); + virtual void put(::gnu::java::net::protocol::http::HTTPConnection *); + virtual void removeOldest(); + static ::gnu::java::net::protocol::http::HTTPConnection$Pool * instance; + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) connectionPool; + jint maxConnections; + jint connectionTTL; + ::gnu::java::net::protocol::http::HTTPConnection$Pool$Reaper * reaper; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_HTTPConnection$Pool__ diff --git a/libjava/gnu/java/net/protocol/http/HTTPConnection.h b/libjava/gnu/java/net/protocol/http/HTTPConnection.h new file mode 100644 index 00000000000..e0d1c462841 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/HTTPConnection.h @@ -0,0 +1,128 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_HTTPConnection__ +#define __gnu_java_net_protocol_http_HTTPConnection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class CookieManager; + class HTTPConnection; + class HTTPConnection$Pool; + class Request; + } + } + } + } + } + namespace java + { + namespace net + { + class Socket; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class HandshakeCompletedListener; + class SSLSocketFactory; + } + } + } +} + +class gnu::java::net::protocol::http::HTTPConnection : public ::java::lang::Object +{ + +public: + HTTPConnection(::java::lang::String *); + HTTPConnection(::java::lang::String *, jboolean); + HTTPConnection(::java::lang::String *, jboolean, jint, jint); + HTTPConnection(::java::lang::String *, jint); + HTTPConnection(::java::lang::String *, jint, jboolean); + HTTPConnection(::java::lang::String *, jint, jboolean, jint, jint); + virtual ::java::lang::String * getHostName(); + virtual jint getPort(); + virtual jboolean isSecure(); + virtual ::java::lang::String * getVersion(); + virtual void setVersion(jint, jint); + virtual void setProxy(::java::lang::String *, jint); + virtual jboolean isUsingProxy(); + virtual void setCookieManager(::gnu::java::net::protocol::http::CookieManager *); + virtual ::gnu::java::net::protocol::http::CookieManager * getCookieManager(); +public: // actually package-private + virtual void setPool(::gnu::java::net::protocol::http::HTTPConnection$Pool *); + virtual void release(); +public: + virtual ::gnu::java::net::protocol::http::Request * newRequest(::java::lang::String *, ::java::lang::String *); + virtual void close(); +public: // actually protected + virtual ::java::net::Socket * getSocket(); +public: // actually package-private + virtual ::javax::net::ssl::SSLSocketFactory * getSSLSocketFactory(); + virtual void setSSLSocketFactory(::javax::net::ssl::SSLSocketFactory *); +public: // actually protected + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::io::OutputStream * getOutputStream(); + virtual void closeConnection(); + virtual ::java::lang::String * getURI(); +public: // actually package-private + virtual jint getNonceCount(::java::lang::String *); + virtual void incrementNonce(::java::lang::String *); + virtual void addHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *); + virtual void removeHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *); +public: + static const jint HTTP_PORT = 80; + static const jint HTTPS_PORT = 443; +private: + static ::java::lang::String * userAgent; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hostname; + jint port; + jboolean secure; + jint connectionTimeout; + jint timeout; + ::java::lang::String * proxyHostname; + jint proxyPort; + jint majorVersion; + jint minorVersion; +private: + ::java::util::List * handshakeCompletedListeners; +public: // actually protected + ::java::net::Socket * socket; +private: + ::javax::net::ssl::SSLSocketFactory * sslSocketFactory; +public: // actually protected + ::java::io::InputStream * in; + ::java::io::OutputStream * out; +private: + ::java::util::Map * nonceCounts; +public: // actually protected + ::gnu::java::net::protocol::http::CookieManager * cookieManager; +private: + ::gnu::java::net::protocol::http::HTTPConnection$Pool * pool; +public: // actually package-private + jint useCount; + jlong timeLastUsed; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_HTTPConnection__ diff --git a/libjava/gnu/java/net/protocol/http/HTTPDateFormat.h b/libjava/gnu/java/net/protocol/http/HTTPDateFormat.h new file mode 100644 index 00000000000..2a305bac87c --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/HTTPDateFormat.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_HTTPDateFormat__ +#define __gnu_java_net_protocol_http_HTTPDateFormat__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class HTTPDateFormat; + } + } + } + } + } + namespace java + { + namespace text + { + class FieldPosition; + class NumberFormat; + class ParsePosition; + } + } +} + +class gnu::java::net::protocol::http::HTTPDateFormat : public ::java::text::DateFormat +{ + +public: + HTTPDateFormat(); + virtual ::java::lang::StringBuffer * format(::java::util::Date *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *); + virtual ::java::util::Date * parse(::java::lang::String *, ::java::text::ParsePosition *); +private: + jint skipWhitespace(::java::lang::String *, jint); + jint skipNonWhitespace(::java::lang::String *, jint); + jint skipTo(::java::lang::String *, jint, jchar); +public: + virtual void setCalendar(::java::util::Calendar *); + virtual void setNumberFormat(::java::text::NumberFormat *); +public: // actually package-private + static JArray< ::java::lang::String * > * DAYS_OF_WEEK; + static JArray< ::java::lang::String * > * MONTHS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_HTTPDateFormat__ diff --git a/libjava/gnu/java/net/protocol/http/HTTPURLConnection$1.h b/libjava/gnu/java/net/protocol/http/HTTPURLConnection$1.h new file mode 100644 index 00000000000..1e20e4ec9e4 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/HTTPURLConnection$1.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_HTTPURLConnection$1__ +#define __gnu_java_net_protocol_http_HTTPURLConnection$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Credentials; + class HTTPURLConnection; + class HTTPURLConnection$1; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::HTTPURLConnection$1 : public ::java::lang::Object +{ + +public: // actually package-private + HTTPURLConnection$1(::gnu::java::net::protocol::http::HTTPURLConnection *, ::gnu::java::net::protocol::http::Credentials *); +public: + ::gnu::java::net::protocol::http::Credentials * getCredentials(::java::lang::String *, jint); +public: // actually package-private + ::gnu::java::net::protocol::http::HTTPURLConnection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::gnu::java::net::protocol::http::Credentials * val$creds; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_HTTPURLConnection$1__ diff --git a/libjava/gnu/java/net/protocol/http/HTTPURLConnection.h b/libjava/gnu/java/net/protocol/http/HTTPURLConnection.h new file mode 100644 index 00000000000..460928e6b92 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/HTTPURLConnection.h @@ -0,0 +1,115 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_HTTPURLConnection__ +#define __gnu_java_net_protocol_http_HTTPURLConnection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class HTTPConnection; + class HTTPURLConnection; + class Headers; + class Request; + class Response; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace security + { + namespace cert + { + class Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class HandshakeCompletedEvent; + } + } + } +} + +class gnu::java::net::protocol::http::HTTPURLConnection : public ::javax::net::ssl::HttpsURLConnection +{ + +public: + HTTPURLConnection(::java::net::URL *); + virtual void connect(); +public: // actually package-private + virtual ::gnu::java::net::protocol::http::HTTPConnection * getConnection(::java::lang::String *, jint, jboolean); +public: + virtual void disconnect(); + virtual jboolean usingProxy(); + virtual void setRequestMethod(::java::lang::String *); + virtual ::java::lang::String * getRequestProperty(::java::lang::String *); + virtual ::java::util::Map * getRequestProperties(); + virtual void setRequestProperty(::java::lang::String *, ::java::lang::String *); + virtual void addRequestProperty(::java::lang::String *, ::java::lang::String *); + virtual ::java::io::OutputStream * getOutputStream(); + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::io::InputStream * getErrorStream(); + virtual ::java::util::Map * getHeaderFields(); +public: // actually package-private + virtual ::java::lang::String * getStatusLine(::gnu::java::net::protocol::http::Response *); +public: + virtual ::java::lang::String * getHeaderField(jint); + virtual ::java::lang::String * getHeaderFieldKey(jint); + virtual ::java::lang::String * getHeaderField(::java::lang::String *); + virtual jlong getHeaderFieldDate(::java::lang::String *, jlong); + virtual ::java::lang::String * getContentType(); + virtual jint getResponseCode(); + virtual ::java::lang::String * getResponseMessage(); + virtual ::java::lang::String * getCipherSuite(); + virtual JArray< ::java::security::cert::Certificate * > * getLocalCertificates(); + virtual JArray< ::java::security::cert::Certificate * > * getServerCertificates(); + virtual void handshakeCompleted(::javax::net::ssl::HandshakeCompletedEvent *); + virtual void setReadTimeout(jint); +private: + ::gnu::java::net::protocol::http::HTTPConnection * __attribute__((aligned(__alignof__( ::javax::net::ssl::HttpsURLConnection)))) connection; +public: // actually package-private + ::java::lang::String * proxyHostname; + jint proxyPort; + ::java::lang::String * agent; + jboolean keepAlive; +private: + ::gnu::java::net::protocol::http::Request * request; + ::gnu::java::net::protocol::http::Headers * requestHeaders; + ::java::io::ByteArrayOutputStream * requestSink; + jboolean requestMethodSetExplicitly; + ::gnu::java::net::protocol::http::Response * response; + ::java::io::InputStream * responseSink; + ::java::io::InputStream * errorSink; + ::javax::net::ssl::HandshakeCompletedEvent * handshakeEvent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_HTTPURLConnection__ diff --git a/libjava/gnu/java/net/protocol/http/Handler.h b/libjava/gnu/java/net/protocol/http/Handler.h new file mode 100644 index 00000000000..bd96f2d8b1f --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Handler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Handler__ +#define __gnu_java_net_protocol_http_Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Handler; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } +} + +class gnu::java::net::protocol::http::Handler : public ::java::net::URLStreamHandler +{ + +public: + Handler(); +public: // actually protected + virtual jint getDefaultPort(); +public: + virtual ::java::net::URLConnection * openConnection(::java::net::URL *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_Handler__ diff --git a/libjava/gnu/java/net/protocol/http/Headers$HeaderElement.h b/libjava/gnu/java/net/protocol/http/Headers$HeaderElement.h new file mode 100644 index 00000000000..ecf4982f09b --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Headers$HeaderElement.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Headers$HeaderElement__ +#define __gnu_java_net_protocol_http_Headers$HeaderElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Headers$HeaderElement; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::Headers$HeaderElement : public ::java::lang::Object +{ + +public: // actually package-private + Headers$HeaderElement(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_Headers$HeaderElement__ diff --git a/libjava/gnu/java/net/protocol/http/Headers.h b/libjava/gnu/java/net/protocol/http/Headers.h new file mode 100644 index 00000000000..d7c485c2511 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Headers.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Headers__ +#define __gnu_java_net_protocol_http_Headers__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Headers; + } + } + } + } + } + namespace java + { + namespace text + { + class DateFormat; + } + } +} + +class gnu::java::net::protocol::http::Headers : public ::java::lang::Object +{ + +public: + Headers(); +public: // actually package-private + virtual ::java::util::Iterator * iterator(); +public: + virtual ::java::lang::String * getValue(::java::lang::String *); + virtual jint getIntValue(::java::lang::String *); + virtual jlong getLongValue(::java::lang::String *); + virtual ::java::util::Date * getDateValue(::java::lang::String *); + virtual void put(::java::lang::String *, ::java::lang::String *); + virtual void putAll(::gnu::java::net::protocol::http::Headers *); + virtual void remove(::java::lang::String *); + virtual void parse(::java::io::InputStream *); + virtual void addValue(::java::lang::String *, ::java::lang::String *); + virtual ::java::util::Map * getAsMap(); + virtual ::java::lang::String * getHeaderName(jint); + virtual ::java::lang::String * getHeaderValue(jint); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) headers; + static ::java::text::DateFormat * dateFormat; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_Headers__ diff --git a/libjava/gnu/java/net/protocol/http/LimitedLengthInputStream.h b/libjava/gnu/java/net/protocol/http/LimitedLengthInputStream.h new file mode 100644 index 00000000000..e70bbcc039d --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/LimitedLengthInputStream.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_LimitedLengthInputStream__ +#define __gnu_java_net_protocol_http_LimitedLengthInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class HTTPConnection; + class LimitedLengthInputStream; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::LimitedLengthInputStream : public ::java::io::InputStream +{ + + void handleClose(); +public: // actually package-private + LimitedLengthInputStream(::java::io::InputStream *, jlong, jboolean, ::gnu::java::net::protocol::http::HTTPConnection *, jboolean); +public: + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jlong skip(jlong); + virtual jint available(); + virtual void close(); +private: + jlong __attribute__((aligned(__alignof__( ::java::io::InputStream)))) remainingLen; + jboolean restrictLen; + ::gnu::java::net::protocol::http::HTTPConnection * connection; + jboolean eof; + ::java::io::InputStream * in; + jboolean doClose; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_LimitedLengthInputStream__ diff --git a/libjava/gnu/java/net/protocol/http/Request.h b/libjava/gnu/java/net/protocol/http/Request.h new file mode 100644 index 00000000000..2cf4693cf25 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Request.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Request__ +#define __gnu_java_net_protocol_http_Request__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Authenticator; + class HTTPConnection; + class Headers; + class Request; + class RequestBodyWriter; + class Response; + class ResponseHeaderHandler; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::Request : public ::java::lang::Object +{ + +public: // actually protected + Request(::gnu::java::net::protocol::http::HTTPConnection *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::gnu::java::net::protocol::http::HTTPConnection * getConnection(); + virtual ::java::lang::String * getMethod(); + virtual ::java::lang::String * getPath(); + virtual ::java::lang::String * getRequestURI(); + virtual ::gnu::java::net::protocol::http::Headers * getHeaders(); + virtual ::java::lang::String * getHeader(::java::lang::String *); + virtual jint getIntHeader(::java::lang::String *); + virtual ::java::util::Date * getDateHeader(::java::lang::String *); + virtual void setHeader(::java::lang::String *, ::java::lang::String *); + virtual void setRequestBody(JArray< jbyte > *); + virtual void setRequestBodyWriter(::gnu::java::net::protocol::http::RequestBodyWriter *); + virtual void setResponseHeaderHandler(::java::lang::String *, ::gnu::java::net::protocol::http::ResponseHeaderHandler *); + virtual void setAuthenticator(::gnu::java::net::protocol::http::Authenticator *); + virtual ::gnu::java::net::protocol::http::Response * dispatch(); +public: // actually package-private + virtual ::gnu::java::net::protocol::http::Response * readResponse(::java::io::InputStream *); + virtual void notifyHeaderHandlers(::gnu::java::net::protocol::http::Headers *); +private: + ::java::io::InputStream * createResponseBodyStream(::gnu::java::net::protocol::http::Headers *, jint, jint, ::java::io::InputStream *, jboolean); +public: // actually package-private + virtual jboolean authenticate(::gnu::java::net::protocol::http::Response *, jint); + virtual ::java::util::Properties * parseAuthParams(::java::lang::String *); + virtual ::java::lang::String * unquote(::java::lang::String *); + virtual ::java::lang::String * getNonceCount(::java::lang::String *); + virtual JArray< jbyte > * generateNonce(); + virtual ::java::lang::String * toHexString(JArray< jbyte > *); + virtual void handleSetCookie(::java::lang::String *); +public: // actually protected + ::gnu::java::net::protocol::http::HTTPConnection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) connection; + ::java::lang::String * method; + ::java::lang::String * path; + ::gnu::java::net::protocol::http::Headers * requestHeaders; + ::gnu::java::net::protocol::http::RequestBodyWriter * requestBodyWriter; + ::java::util::Map * responseHeaderHandlers; + ::gnu::java::net::protocol::http::Authenticator * authenticator; +private: + jboolean dispatched; +public: // actually package-private + JArray< jbyte > * nonce; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_Request__ diff --git a/libjava/gnu/java/net/protocol/http/RequestBodyWriter.h b/libjava/gnu/java/net/protocol/http/RequestBodyWriter.h new file mode 100644 index 00000000000..1bd32bc8637 --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/RequestBodyWriter.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_RequestBodyWriter__ +#define __gnu_java_net_protocol_http_RequestBodyWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class RequestBodyWriter; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::RequestBodyWriter : public ::java::lang::Object +{ + +public: + virtual jint getContentLength() = 0; + virtual void reset() = 0; + virtual jint write(JArray< jbyte > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_net_protocol_http_RequestBodyWriter__ diff --git a/libjava/gnu/java/net/protocol/http/Response.h b/libjava/gnu/java/net/protocol/http/Response.h new file mode 100644 index 00000000000..928b212479b --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/Response.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_Response__ +#define __gnu_java_net_protocol_http_Response__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Headers; + class Response; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::Response : public ::java::lang::Object +{ + +public: // actually protected + Response(jint, jint, jint, ::java::lang::String *, ::gnu::java::net::protocol::http::Headers *, ::java::io::InputStream *); +public: + virtual jint getMajorVersion(); + virtual jint getMinorVersion(); + virtual jint getCode(); + virtual jint getCodeClass(); + virtual ::java::lang::String * getMessage(); + virtual ::gnu::java::net::protocol::http::Headers * getHeaders(); + virtual ::java::lang::String * getHeader(::java::lang::String *); + virtual jint getIntHeader(::java::lang::String *); + virtual jlong getLongHeader(::java::lang::String *); + virtual ::java::util::Date * getDateHeader(::java::lang::String *); + virtual jboolean isRedirect(); + virtual jboolean isError(); + virtual ::java::io::InputStream * getBody(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) majorVersion; + jint minorVersion; + jint code; + ::java::lang::String * message; + ::gnu::java::net::protocol::http::Headers * headers; + ::java::io::InputStream * body; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_Response__ diff --git a/libjava/gnu/java/net/protocol/http/ResponseHeaderHandler.h b/libjava/gnu/java/net/protocol/http/ResponseHeaderHandler.h new file mode 100644 index 00000000000..055c019a1fc --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/ResponseHeaderHandler.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_ResponseHeaderHandler__ +#define __gnu_java_net_protocol_http_ResponseHeaderHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class ResponseHeaderHandler; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::ResponseHeaderHandler : public ::java::lang::Object +{ + +public: + virtual void setValue(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_net_protocol_http_ResponseHeaderHandler__ diff --git a/libjava/gnu/java/net/protocol/http/SimpleCookieManager.h b/libjava/gnu/java/net/protocol/http/SimpleCookieManager.h new file mode 100644 index 00000000000..e8259a8a2cb --- /dev/null +++ b/libjava/gnu/java/net/protocol/http/SimpleCookieManager.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_http_SimpleCookieManager__ +#define __gnu_java_net_protocol_http_SimpleCookieManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace http + { + class Cookie; + class SimpleCookieManager; + } + } + } + } + } +} + +class gnu::java::net::protocol::http::SimpleCookieManager : public ::java::lang::Object +{ + +public: + SimpleCookieManager(); + virtual void setCookie(::gnu::java::net::protocol::http::Cookie *); + virtual JArray< ::gnu::java::net::protocol::http::Cookie * > * getCookies(::java::lang::String *, jboolean, ::java::lang::String *); +private: + void addCookies(::java::util::List *, ::java::lang::String *, jboolean, ::java::lang::String *, ::java::util::Date *); +public: // actually protected + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cookies; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_http_SimpleCookieManager__ diff --git a/libjava/gnu/java/net/protocol/https/Handler.h b/libjava/gnu/java/net/protocol/https/Handler.h new file mode 100644 index 00000000000..ce077f08f8e --- /dev/null +++ b/libjava/gnu/java/net/protocol/https/Handler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_https_Handler__ +#define __gnu_java_net_protocol_https_Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace https + { + class Handler; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } +} + +class gnu::java::net::protocol::https::Handler : public ::java::net::URLStreamHandler +{ + +public: + Handler(); +public: // actually protected + virtual jint getDefaultPort(); +public: + virtual ::java::net::URLConnection * openConnection(::java::net::URL *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_https_Handler__ diff --git a/libjava/gnu/java/net/protocol/jar/Connection$JarFileCache.h b/libjava/gnu/java/net/protocol/jar/Connection$JarFileCache.h new file mode 100644 index 00000000000..03744bc671c --- /dev/null +++ b/libjava/gnu/java/net/protocol/jar/Connection$JarFileCache.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_jar_Connection$JarFileCache__ +#define __gnu_java_net_protocol_jar_Connection$JarFileCache__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace jar + { + class Connection$JarFileCache; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::net::protocol::jar::Connection$JarFileCache : public ::java::lang::Object +{ + +public: + Connection$JarFileCache(); + static ::java::util::jar::JarFile * get(::java::net::URL *, jboolean); +private: + static ::java::util::Hashtable * cache; + static const jint READBUFSIZE = 4096; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_jar_Connection$JarFileCache__ diff --git a/libjava/gnu/java/net/protocol/jar/Connection.h b/libjava/gnu/java/net/protocol/jar/Connection.h new file mode 100644 index 00000000000..5456919fbaf --- /dev/null +++ b/libjava/gnu/java/net/protocol/jar/Connection.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_jar_Connection__ +#define __gnu_java_net_protocol_jar_Connection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace jar + { + class Connection; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace text + { + class SimpleDateFormat; + } + } +} + +class gnu::java::net::protocol::jar::Connection : public ::java::net::JarURLConnection +{ + +public: // actually protected + Connection(::java::net::URL *); +public: + void connect(); + ::java::io::InputStream * getInputStream(); + ::java::util::jar::JarFile * getJarFile(); + ::java::lang::String * getHeaderField(::java::lang::String *); + jint getContentLength(); + jlong getLastModified(); +private: + static ::java::text::SimpleDateFormat * dateFormat; + ::java::util::jar::JarFile * __attribute__((aligned(__alignof__( ::java::net::JarURLConnection)))) jar_file; + ::java::util::jar::JarEntry * jar_entry; + ::java::net::URL * jar_url; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_jar_Connection__ diff --git a/libjava/gnu/java/net/protocol/jar/Handler.h b/libjava/gnu/java/net/protocol/jar/Handler.h new file mode 100644 index 00000000000..b5fb6b66e64 --- /dev/null +++ b/libjava/gnu/java/net/protocol/jar/Handler.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_net_protocol_jar_Handler__ +#define __gnu_java_net_protocol_jar_Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + namespace protocol + { + namespace jar + { + class Handler; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } +} + +class gnu::java::net::protocol::jar::Handler : public ::java::net::URLStreamHandler +{ + +public: + Handler(); +public: // actually protected + virtual ::java::net::URLConnection * openConnection(::java::net::URL *); + virtual void parseURL(::java::net::URL *, ::java::lang::String *, jint, jint); +private: + static ::java::lang::String * flat(::java::lang::String *); +public: // actually protected + virtual ::java::lang::String * toExternalForm(::java::net::URL *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_net_protocol_jar_Handler__ diff --git a/libjava/gnu/java/nio/ChannelInputStream.h b/libjava/gnu/java/nio/ChannelInputStream.h new file mode 100644 index 00000000000..bc43e23da5a --- /dev/null +++ b/libjava/gnu/java/nio/ChannelInputStream.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_ChannelInputStream__ +#define __gnu_java_nio_ChannelInputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class ChannelInputStream; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class ReadableByteChannel; + } + } + } +} + +class gnu::java::nio::ChannelInputStream : public ::java::io::InputStream +{ + +public: + ChannelInputStream(::java::nio::channels::ReadableByteChannel *); + jint read(); +private: + ::java::nio::channels::ReadableByteChannel * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) ch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_ChannelInputStream__ diff --git a/libjava/gnu/java/nio/ChannelOutputStream.h b/libjava/gnu/java/nio/ChannelOutputStream.h new file mode 100644 index 00000000000..7ff1b8d800a --- /dev/null +++ b/libjava/gnu/java/nio/ChannelOutputStream.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_ChannelOutputStream__ +#define __gnu_java_nio_ChannelOutputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class ChannelOutputStream; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class WritableByteChannel; + } + } + } +} + +class gnu::java::nio::ChannelOutputStream : public ::java::io::OutputStream +{ + +public: + ChannelOutputStream(::java::nio::channels::WritableByteChannel *); + void write(jint); +private: + ::java::nio::channels::WritableByteChannel * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) ch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_ChannelOutputStream__ diff --git a/libjava/gnu/java/nio/ChannelReader.h b/libjava/gnu/java/nio/ChannelReader.h new file mode 100644 index 00000000000..337473f4fcd --- /dev/null +++ b/libjava/gnu/java/nio/ChannelReader.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_ChannelReader__ +#define __gnu_java_nio_ChannelReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class ChannelReader; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace channels + { + class ReadableByteChannel; + } + namespace charset + { + class CharsetDecoder; + } + } + } +} + +class gnu::java::nio::ChannelReader : public ::java::io::Reader +{ + +public: + ChannelReader(::java::nio::channels::ReadableByteChannel *, ::java::nio::charset::CharsetDecoder *, jint); + virtual jint read(JArray< jchar > *, jint, jint); + virtual void close(); +private: + static const jint DEFAULT_BUFFER_CAP = 8192; + ::java::nio::channels::ReadableByteChannel * __attribute__((aligned(__alignof__( ::java::io::Reader)))) channel; + ::java::nio::charset::CharsetDecoder * decoder; + ::java::nio::ByteBuffer * byteBuffer; + ::java::nio::CharBuffer * charBuffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_ChannelReader__ diff --git a/libjava/gnu/java/nio/ChannelWriter.h b/libjava/gnu/java/nio/ChannelWriter.h new file mode 100644 index 00000000000..f78d294bd7b --- /dev/null +++ b/libjava/gnu/java/nio/ChannelWriter.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_ChannelWriter__ +#define __gnu_java_nio_ChannelWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class ChannelWriter; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace channels + { + class WritableByteChannel; + } + namespace charset + { + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::ChannelWriter : public ::java::io::Writer +{ + + void writeBuffer(); +public: + ChannelWriter(::java::nio::channels::WritableByteChannel *, ::java::nio::charset::CharsetEncoder *, jint); + virtual void flush(); + virtual void close(); + virtual void write(JArray< jchar > *, jint, jint); +private: + static const jint DEFAULT_BUFFER_CAP = 8192; + ::java::nio::channels::WritableByteChannel * __attribute__((aligned(__alignof__( ::java::io::Writer)))) byteChannel; + ::java::nio::charset::CharsetEncoder * enc; + ::java::nio::ByteBuffer * byteBuffer; + ::java::nio::CharBuffer * charBuffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_ChannelWriter__ diff --git a/libjava/gnu/java/nio/DatagramChannelImpl.h b/libjava/gnu/java/nio/DatagramChannelImpl.h new file mode 100644 index 00000000000..26595caa514 --- /dev/null +++ b/libjava/gnu/java/nio/DatagramChannelImpl.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_DatagramChannelImpl__ +#define __gnu_java_nio_DatagramChannelImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class DatagramChannelImpl; + class NIODatagramSocket; + } + } + } + namespace java + { + namespace net + { + class DatagramSocket; + class SocketAddress; + } + namespace nio + { + class ByteBuffer; + namespace channels + { + class DatagramChannel; + namespace spi + { + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::DatagramChannelImpl : public ::java::nio::channels::DatagramChannel +{ + +public: + jboolean isInChannelOperation(); + void setInChannelOperation(jboolean); +public: // actually protected + DatagramChannelImpl(::java::nio::channels::spi::SelectorProvider *); +public: + jint getNativeFD(); + ::java::net::DatagramSocket * socket(); +public: // actually protected + void implCloseSelectableChannel(); + void implConfigureBlocking(jboolean); +public: + ::java::nio::channels::DatagramChannel * connect(::java::net::SocketAddress *); + ::java::nio::channels::DatagramChannel * disconnect(); + jboolean isConnected(); + jint write(::java::nio::ByteBuffer *); + jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint); + jint read(::java::nio::ByteBuffer *); + jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint); + ::java::net::SocketAddress * receive(::java::nio::ByteBuffer *); + jint send(::java::nio::ByteBuffer *, ::java::net::SocketAddress *); +private: + ::gnu::java::nio::NIODatagramSocket * __attribute__((aligned(__alignof__( ::java::nio::channels::DatagramChannel)))) socket__; + jboolean inChannelOperation; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_DatagramChannelImpl__ diff --git a/libjava/gnu/java/nio/DatagramChannelSelectionKey.h b/libjava/gnu/java/nio/DatagramChannelSelectionKey.h new file mode 100644 index 00000000000..629eed378e2 --- /dev/null +++ b/libjava/gnu/java/nio/DatagramChannelSelectionKey.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_DatagramChannelSelectionKey__ +#define __gnu_java_nio_DatagramChannelSelectionKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class DatagramChannelSelectionKey; + class SelectorImpl; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + namespace spi + { + class AbstractSelectableChannel; + } + } + } + } +} + +class gnu::java::nio::DatagramChannelSelectionKey : public ::gnu::java::nio::SelectionKeyImpl +{ + +public: + DatagramChannelSelectionKey(::java::nio::channels::spi::AbstractSelectableChannel *, ::gnu::java::nio::SelectorImpl *); + jint getNativeFD(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_DatagramChannelSelectionKey__ diff --git a/libjava/gnu/java/nio/EpollSelectionKeyImpl.h b/libjava/gnu/java/nio/EpollSelectionKeyImpl.h new file mode 100644 index 00000000000..1674815153c --- /dev/null +++ b/libjava/gnu/java/nio/EpollSelectionKeyImpl.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_EpollSelectionKeyImpl__ +#define __gnu_java_nio_EpollSelectionKeyImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class EpollSelectionKeyImpl; + class EpollSelectorImpl; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class SelectableChannel; + class SelectionKey; + class Selector; + } + } + } +} + +class gnu::java::nio::EpollSelectionKeyImpl : public ::java::nio::channels::spi::AbstractSelectionKey +{ + +public: // actually package-private + EpollSelectionKeyImpl(::gnu::java::nio::EpollSelectorImpl *, ::java::nio::channels::SelectableChannel *, jint); +public: + virtual ::java::nio::channels::SelectableChannel * channel(); + virtual jint interestOps(); + virtual ::java::nio::channels::SelectionKey * interestOps(jint); + virtual jint readyOps(); + virtual ::java::nio::channels::Selector * selector(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::nio::channels::spi::AbstractSelectionKey)))) fd; +private: + ::gnu::java::nio::EpollSelectorImpl * selector__; + ::java::nio::channels::SelectableChannel * channel__; +public: // actually package-private + jint interestOps__; + jint selectedOps; + jint key; + jboolean valid; + jboolean cancelled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_EpollSelectionKeyImpl__ diff --git a/libjava/gnu/java/nio/FileLockImpl.h b/libjava/gnu/java/nio/FileLockImpl.h new file mode 100644 index 00000000000..ba1668be327 --- /dev/null +++ b/libjava/gnu/java/nio/FileLockImpl.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_FileLockImpl__ +#define __gnu_java_nio_FileLockImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class FileLockImpl; + namespace channels + { + class FileChannelImpl; + } + } + } + } +} + +class gnu::java::nio::FileLockImpl : public ::java::nio::channels::FileLock +{ + +public: + FileLockImpl(::gnu::java::nio::channels::FileChannelImpl *, jlong, jlong, jboolean); +public: // actually protected + void finalize(); +public: + jboolean isValid(); + void release(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::nio::channels::FileLock)))) valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_FileLockImpl__ diff --git a/libjava/classpath/gnu/java/nio/FileLockImpl.java b/libjava/gnu/java/nio/FileLockImpl.java similarity index 100% copy from libjava/classpath/gnu/java/nio/FileLockImpl.java copy to libjava/gnu/java/nio/FileLockImpl.java diff --git a/libjava/gnu/java/nio/InputStreamChannel.h b/libjava/gnu/java/nio/InputStreamChannel.h new file mode 100644 index 00000000000..b6631695d35 --- /dev/null +++ b/libjava/gnu/java/nio/InputStreamChannel.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_InputStreamChannel__ +#define __gnu_java_nio_InputStreamChannel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class InputStreamChannel; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::nio::InputStreamChannel : public ::java::lang::Object +{ + +public: + InputStreamChannel(::java::io::InputStream *); + void close(); + jboolean isOpen(); + jint read(::java::nio::ByteBuffer *); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) closed; + ::java::io::InputStream * in; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_InputStreamChannel__ diff --git a/libjava/gnu/java/nio/KqueueSelectionKeyImpl.h b/libjava/gnu/java/nio/KqueueSelectionKeyImpl.h new file mode 100644 index 00000000000..8a501b545cd --- /dev/null +++ b/libjava/gnu/java/nio/KqueueSelectionKeyImpl.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_KqueueSelectionKeyImpl__ +#define __gnu_java_nio_KqueueSelectionKeyImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class KqueueSelectionKeyImpl; + class KqueueSelectorImpl; + class VMChannelOwner; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class SelectableChannel; + class SelectionKey; + class Selector; + } + } + } +} + +class gnu::java::nio::KqueueSelectionKeyImpl : public ::java::nio::channels::spi::AbstractSelectionKey +{ + +public: + KqueueSelectionKeyImpl(::gnu::java::nio::KqueueSelectorImpl *, ::java::nio::channels::SelectableChannel *); + virtual ::java::nio::channels::SelectableChannel * channel(); + virtual jint interestOps(); + virtual ::java::nio::channels::SelectionKey * interestOps(jint); + virtual jint readyOps(); + virtual ::java::nio::channels::Selector * selector(); + virtual ::java::lang::String * toString(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); +public: // actually package-private + virtual jboolean isReadActive(); + virtual jboolean isReadInterested(); + virtual jboolean isWriteActive(); + virtual jboolean isWriteInterested(); + virtual jboolean needCommitRead(); + virtual jboolean needCommitWrite(); + jint __attribute__((aligned(__alignof__( ::java::nio::channels::spi::AbstractSelectionKey)))) interestOps__; + jint readyOps__; + jint activeOps; + jint key; + jint fd; +private: + ::gnu::java::nio::KqueueSelectorImpl * selector__; + ::java::nio::channels::SelectableChannel * channel__; + ::gnu::java::nio::VMChannelOwner * natChannel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_KqueueSelectionKeyImpl__ diff --git a/libjava/gnu/java/nio/NIOConstants.h b/libjava/gnu/java/nio/NIOConstants.h new file mode 100644 index 00000000000..a27e4286d0c --- /dev/null +++ b/libjava/gnu/java/nio/NIOConstants.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_NIOConstants__ +#define __gnu_java_nio_NIOConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class NIOConstants; + } + } + } +} + +class gnu::java::nio::NIOConstants : public ::java::lang::Object +{ + +public: + NIOConstants(); + static const jint DEFAULT_TIMEOUT = 50; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_NIOConstants__ diff --git a/libjava/gnu/java/nio/NIODatagramSocket.h b/libjava/gnu/java/nio/NIODatagramSocket.h new file mode 100644 index 00000000000..3e76ec9c4ae --- /dev/null +++ b/libjava/gnu/java/nio/NIODatagramSocket.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_NIODatagramSocket__ +#define __gnu_java_nio_NIODatagramSocket__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainDatagramSocketImpl; + } + namespace nio + { + class DatagramChannelImpl; + class NIODatagramSocket; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class DatagramChannel; + } + } + } +} + +class gnu::java::nio::NIODatagramSocket : public ::java::net::DatagramSocket +{ + +public: + NIODatagramSocket(::gnu::java::net::PlainDatagramSocketImpl *, ::gnu::java::nio::DatagramChannelImpl *); + ::gnu::java::net::PlainDatagramSocketImpl * getPlainDatagramSocketImpl(); + ::java::nio::channels::DatagramChannel * getChannel(); +private: + ::gnu::java::net::PlainDatagramSocketImpl * __attribute__((aligned(__alignof__( ::java::net::DatagramSocket)))) impl; + ::gnu::java::nio::DatagramChannelImpl * channel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_NIODatagramSocket__ diff --git a/libjava/gnu/java/nio/NIOServerSocket.h b/libjava/gnu/java/nio/NIOServerSocket.h new file mode 100644 index 00000000000..908a664af76 --- /dev/null +++ b/libjava/gnu/java/nio/NIOServerSocket.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_NIOServerSocket__ +#define __gnu_java_nio_NIOServerSocket__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainSocketImpl; + } + namespace nio + { + class NIOServerSocket; + class ServerSocketChannelImpl; + } + } + } + namespace java + { + namespace net + { + class Socket; + } + namespace nio + { + namespace channels + { + class ServerSocketChannel; + } + } + } +} + +class gnu::java::nio::NIOServerSocket : public ::java::net::ServerSocket +{ + +public: // actually protected + NIOServerSocket(::gnu::java::nio::ServerSocketChannelImpl *); +public: + ::gnu::java::net::PlainSocketImpl * getPlainSocketImpl(); + ::java::nio::channels::ServerSocketChannel * getChannel(); + ::java::net::Socket * accept(); +private: + ::gnu::java::nio::ServerSocketChannelImpl * __attribute__((aligned(__alignof__( ::java::net::ServerSocket)))) channel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_NIOServerSocket__ diff --git a/libjava/gnu/java/nio/NIOSocket.h b/libjava/gnu/java/nio/NIOSocket.h new file mode 100644 index 00000000000..b987a6c9e96 --- /dev/null +++ b/libjava/gnu/java/nio/NIOSocket.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_NIOSocket__ +#define __gnu_java_nio_NIOSocket__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainSocketImpl; + } + namespace nio + { + class NIOSocket; + class SocketChannelImpl; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class SocketChannel; + } + } + } +} + +class gnu::java::nio::NIOSocket : public ::java::net::Socket +{ + +public: // actually protected + NIOSocket(::gnu::java::net::PlainSocketImpl *, ::gnu::java::nio::SocketChannelImpl *); +public: + ::gnu::java::net::PlainSocketImpl * getPlainSocketImpl(); +public: // actually package-private + void setChannel(::gnu::java::nio::SocketChannelImpl *); +public: + ::java::nio::channels::SocketChannel * getChannel(); +private: + ::gnu::java::net::PlainSocketImpl * __attribute__((aligned(__alignof__( ::java::net::Socket)))) impl; + ::gnu::java::nio::SocketChannelImpl * channel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_NIOSocket__ diff --git a/libjava/classpath/gnu/java/nio/NIOSocket.java b/libjava/gnu/java/nio/NIOSocket.java similarity index 100% copy from libjava/classpath/gnu/java/nio/NIOSocket.java copy to libjava/gnu/java/nio/NIOSocket.java diff --git a/libjava/gnu/java/nio/OutputStreamChannel.h b/libjava/gnu/java/nio/OutputStreamChannel.h new file mode 100644 index 00000000000..3a47ab97b1a --- /dev/null +++ b/libjava/gnu/java/nio/OutputStreamChannel.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_OutputStreamChannel__ +#define __gnu_java_nio_OutputStreamChannel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class OutputStreamChannel; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::nio::OutputStreamChannel : public ::java::lang::Object +{ + +public: + OutputStreamChannel(::java::io::OutputStream *); + void close(); + jboolean isOpen(); + jint write(::java::nio::ByteBuffer *); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) closed; + ::java::io::OutputStream * out; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_OutputStreamChannel__ diff --git a/libjava/gnu/java/nio/PipeImpl$SinkChannelImpl.h b/libjava/gnu/java/nio/PipeImpl$SinkChannelImpl.h new file mode 100644 index 00000000000..648de594b8d --- /dev/null +++ b/libjava/gnu/java/nio/PipeImpl$SinkChannelImpl.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_PipeImpl$SinkChannelImpl__ +#define __gnu_java_nio_PipeImpl$SinkChannelImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class PipeImpl$SinkChannelImpl; + class VMChannel; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + namespace channels + { + namespace spi + { + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::PipeImpl$SinkChannelImpl : public ::java::nio::channels::Pipe$SinkChannel +{ + +public: + PipeImpl$SinkChannelImpl(::java::nio::channels::spi::SelectorProvider *, jint); +public: // actually protected + void implCloseSelectableChannel(); + void implConfigureBlocking(jboolean); +public: + jint write(::java::nio::ByteBuffer *); + jlong write(JArray< ::java::nio::ByteBuffer * > *); + jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint); + jint getNativeFD(); +private: + jint __attribute__((aligned(__alignof__( ::java::nio::channels::Pipe$SinkChannel)))) native_fd; + ::gnu::java::nio::VMChannel * vmch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_PipeImpl$SinkChannelImpl__ diff --git a/libjava/gnu/java/nio/PipeImpl$SourceChannelImpl.h b/libjava/gnu/java/nio/PipeImpl$SourceChannelImpl.h new file mode 100644 index 00000000000..fdc744bbf7a --- /dev/null +++ b/libjava/gnu/java/nio/PipeImpl$SourceChannelImpl.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_PipeImpl$SourceChannelImpl__ +#define __gnu_java_nio_PipeImpl$SourceChannelImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class PipeImpl$SourceChannelImpl; + class VMChannel; + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + namespace channels + { + namespace spi + { + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::PipeImpl$SourceChannelImpl : public ::java::nio::channels::Pipe$SourceChannel +{ + +public: + PipeImpl$SourceChannelImpl(::java::nio::channels::spi::SelectorProvider *, jint); +public: // actually protected + void implCloseSelectableChannel(); + void implConfigureBlocking(jboolean); +public: + jint read(::java::nio::ByteBuffer *); + jlong read(JArray< ::java::nio::ByteBuffer * > *); + jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint); + jint getNativeFD(); +private: + jint __attribute__((aligned(__alignof__( ::java::nio::channels::Pipe$SourceChannel)))) native_fd; + ::gnu::java::nio::VMChannel * vmch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_PipeImpl$SourceChannelImpl__ diff --git a/libjava/gnu/java/nio/PipeImpl.h b/libjava/gnu/java/nio/PipeImpl.h new file mode 100644 index 00000000000..63bfafb56de --- /dev/null +++ b/libjava/gnu/java/nio/PipeImpl.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_PipeImpl__ +#define __gnu_java_nio_PipeImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class PipeImpl; + class PipeImpl$SinkChannelImpl; + class PipeImpl$SourceChannelImpl; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class Pipe$SinkChannel; + class Pipe$SourceChannel; + namespace spi + { + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::PipeImpl : public ::java::nio::channels::Pipe +{ + +public: + PipeImpl(::java::nio::channels::spi::SelectorProvider *); + virtual ::java::nio::channels::Pipe$SinkChannel * sink(); + virtual ::java::nio::channels::Pipe$SourceChannel * source(); +private: + ::gnu::java::nio::PipeImpl$SinkChannelImpl * __attribute__((aligned(__alignof__( ::java::nio::channels::Pipe)))) sink__; + ::gnu::java::nio::PipeImpl$SourceChannelImpl * source__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_PipeImpl__ diff --git a/libjava/classpath/gnu/java/nio/PipeImpl.java b/libjava/gnu/java/nio/PipeImpl.java similarity index 100% copy from libjava/classpath/gnu/java/nio/PipeImpl.java copy to libjava/gnu/java/nio/PipeImpl.java diff --git a/libjava/gnu/java/nio/SelectionKeyImpl.h b/libjava/gnu/java/nio/SelectionKeyImpl.h new file mode 100644 index 00000000000..29e0dca2cc7 --- /dev/null +++ b/libjava/gnu/java/nio/SelectionKeyImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_SelectionKeyImpl__ +#define __gnu_java_nio_SelectionKeyImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class SelectionKeyImpl; + class SelectorImpl; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class SelectableChannel; + class SelectionKey; + class Selector; + } + } + } +} + +class gnu::java::nio::SelectionKeyImpl : public ::java::nio::channels::spi::AbstractSelectionKey +{ + +public: + SelectionKeyImpl(::java::nio::channels::SelectableChannel *, ::gnu::java::nio::SelectorImpl *); + virtual ::java::nio::channels::SelectableChannel * channel(); + virtual jint readyOps(); + virtual ::java::nio::channels::SelectionKey * readyOps(jint); + virtual jint interestOps(); + virtual ::java::nio::channels::SelectionKey * interestOps(jint); + virtual ::java::nio::channels::Selector * selector(); + virtual jint getNativeFD() = 0; +private: + jint __attribute__((aligned(__alignof__( ::java::nio::channels::spi::AbstractSelectionKey)))) readyOps__; + jint interestOps__; + ::gnu::java::nio::SelectorImpl * impl; +public: // actually package-private + ::java::nio::channels::SelectableChannel * ch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_SelectionKeyImpl__ diff --git a/libjava/gnu/java/nio/SelectorImpl.h b/libjava/gnu/java/nio/SelectorImpl.h new file mode 100644 index 00000000000..5db33c8aa0f --- /dev/null +++ b/libjava/gnu/java/nio/SelectorImpl.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_SelectorImpl__ +#define __gnu_java_nio_SelectorImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class SelectorImpl; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class SelectableChannel; + class SelectionKey; + class Selector; + namespace spi + { + class AbstractSelectableChannel; + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::SelectorImpl : public ::java::nio::channels::spi::AbstractSelector +{ + +public: + SelectorImpl(::java::nio::channels::spi::SelectorProvider *); +public: // actually protected + virtual void finalize(); + virtual void implCloseSelector(); +public: + virtual ::java::util::Set * keys(); + virtual jint selectNow(); + virtual jint select(); +private: + JArray< jint > * getFDsAsArray(jint); +public: + virtual jint select(jlong); + virtual ::java::util::Set * selectedKeys(); + virtual ::java::nio::channels::Selector * wakeup(); +private: + void deregisterCancelledKeys(); +public: // actually protected + virtual ::java::nio::channels::SelectionKey * register$(::java::nio::channels::SelectableChannel *, jint, ::java::lang::Object *); + virtual ::java::nio::channels::SelectionKey * register$(::java::nio::channels::spi::AbstractSelectableChannel *, jint, ::java::lang::Object *); +private: + ::java::util::Set * __attribute__((aligned(__alignof__( ::java::nio::channels::spi::AbstractSelector)))) keys__; + ::java::util::Set * selected; + ::java::lang::Object * selectThreadMutex; + ::java::lang::Thread * selectThread; + jboolean unhandledWakeup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_SelectorImpl__ diff --git a/libjava/gnu/java/nio/SelectorProviderImpl.h b/libjava/gnu/java/nio/SelectorProviderImpl.h new file mode 100644 index 00000000000..e2ad8e41d91 --- /dev/null +++ b/libjava/gnu/java/nio/SelectorProviderImpl.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_SelectorProviderImpl__ +#define __gnu_java_nio_SelectorProviderImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class SelectorProviderImpl; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + class DatagramChannel; + class Pipe; + class ServerSocketChannel; + class SocketChannel; + namespace spi + { + class AbstractSelector; + } + } + } + } +} + +class gnu::java::nio::SelectorProviderImpl : public ::java::nio::channels::spi::SelectorProvider +{ + +public: + SelectorProviderImpl(); + virtual ::java::nio::channels::DatagramChannel * openDatagramChannel(); + virtual ::java::nio::channels::Pipe * openPipe(); + virtual ::java::nio::channels::spi::AbstractSelector * openSelector(); + virtual ::java::nio::channels::ServerSocketChannel * openServerSocketChannel(); + virtual ::java::nio::channels::SocketChannel * openSocketChannel(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_SelectorProviderImpl__ diff --git a/libjava/classpath/gnu/java/nio/SelectorProviderImpl.java b/libjava/gnu/java/nio/SelectorProviderImpl.java similarity index 100% copy from libjava/classpath/gnu/java/nio/SelectorProviderImpl.java copy to libjava/gnu/java/nio/SelectorProviderImpl.java diff --git a/libjava/gnu/java/nio/ServerSocketChannelImpl.h b/libjava/gnu/java/nio/ServerSocketChannelImpl.h new file mode 100644 index 00000000000..28f6d981127 --- /dev/null +++ b/libjava/gnu/java/nio/ServerSocketChannelImpl.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_ServerSocketChannelImpl__ +#define __gnu_java_nio_ServerSocketChannelImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class NIOServerSocket; + class ServerSocketChannelImpl; + } + } + } + namespace java + { + namespace net + { + class ServerSocket; + } + namespace nio + { + namespace channels + { + class SocketChannel; + namespace spi + { + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::ServerSocketChannelImpl : public ::java::nio::channels::ServerSocketChannel +{ + +public: // actually protected + ServerSocketChannelImpl(::java::nio::channels::spi::SelectorProvider *); +public: + jint getNativeFD(); + void finalizer(); +public: // actually protected + void implCloseSelectableChannel(); + void implConfigureBlocking(jboolean); +public: + ::java::nio::channels::SocketChannel * accept(); + ::java::net::ServerSocket * socket(); +private: + ::gnu::java::nio::NIOServerSocket * __attribute__((aligned(__alignof__( ::java::nio::channels::ServerSocketChannel)))) serverSocket; + jboolean connected; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_ServerSocketChannelImpl__ diff --git a/libjava/gnu/java/nio/ServerSocketChannelSelectionKey.h b/libjava/gnu/java/nio/ServerSocketChannelSelectionKey.h new file mode 100644 index 00000000000..43e35932c9a --- /dev/null +++ b/libjava/gnu/java/nio/ServerSocketChannelSelectionKey.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_ServerSocketChannelSelectionKey__ +#define __gnu_java_nio_ServerSocketChannelSelectionKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class SelectorImpl; + class ServerSocketChannelSelectionKey; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + namespace spi + { + class AbstractSelectableChannel; + } + } + } + } +} + +class gnu::java::nio::ServerSocketChannelSelectionKey : public ::gnu::java::nio::SelectionKeyImpl +{ + +public: + ServerSocketChannelSelectionKey(::java::nio::channels::spi::AbstractSelectableChannel *, ::gnu::java::nio::SelectorImpl *); + jint getNativeFD(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_ServerSocketChannelSelectionKey__ diff --git a/libjava/gnu/java/nio/SocketChannelImpl.h b/libjava/gnu/java/nio/SocketChannelImpl.h new file mode 100644 index 00000000000..b180918d6c6 --- /dev/null +++ b/libjava/gnu/java/nio/SocketChannelImpl.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_SocketChannelImpl__ +#define __gnu_java_nio_SocketChannelImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainSocketImpl; + } + namespace nio + { + class NIOSocket; + class SocketChannelImpl; + } + } + } + namespace java + { + namespace net + { + class Socket; + class SocketAddress; + } + namespace nio + { + class ByteBuffer; + namespace channels + { + namespace spi + { + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::SocketChannelImpl : public ::java::nio::channels::SocketChannel +{ + +public: // actually package-private + SocketChannelImpl(::java::nio::channels::spi::SelectorProvider *); + SocketChannelImpl(::java::nio::channels::spi::SelectorProvider *, ::gnu::java::nio::NIOSocket *); +public: + void finalizer(); +public: // actually package-private + ::gnu::java::net::PlainSocketImpl * getPlainSocketImpl(); + jint getNativeFD(); +public: // actually protected + void implCloseSelectableChannel(); + void implConfigureBlocking(jboolean); +public: + jboolean connect(::java::net::SocketAddress *); + jboolean finishConnect(); + jboolean isConnected(); + jboolean isConnectionPending(); + ::java::net::Socket * socket(); + jint read(::java::nio::ByteBuffer *); + jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint); + jint write(::java::nio::ByteBuffer *); + jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint); +private: + ::gnu::java::net::PlainSocketImpl * __attribute__((aligned(__alignof__( ::java::nio::channels::SocketChannel)))) impl; + ::gnu::java::nio::NIOSocket * socket__; + jboolean connectionPending; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_SocketChannelImpl__ diff --git a/libjava/gnu/java/nio/SocketChannelSelectionKey.h b/libjava/gnu/java/nio/SocketChannelSelectionKey.h new file mode 100644 index 00000000000..f9d5f297f81 --- /dev/null +++ b/libjava/gnu/java/nio/SocketChannelSelectionKey.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_SocketChannelSelectionKey__ +#define __gnu_java_nio_SocketChannelSelectionKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class SelectorImpl; + class SocketChannelSelectionKey; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + namespace spi + { + class AbstractSelectableChannel; + } + } + } + } +} + +class gnu::java::nio::SocketChannelSelectionKey : public ::gnu::java::nio::SelectionKeyImpl +{ + +public: + SocketChannelSelectionKey(::java::nio::channels::spi::AbstractSelectableChannel *, ::gnu::java::nio::SelectorImpl *); + jint getNativeFD(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_SocketChannelSelectionKey__ diff --git a/libjava/gnu/java/nio/SocketChannelSelectionKey.java b/libjava/gnu/java/nio/SocketChannelSelectionKey.java index 13affef2474..75b4dfd87e5 100644 --- a/libjava/gnu/java/nio/SocketChannelSelectionKey.java +++ b/libjava/gnu/java/nio/SocketChannelSelectionKey.java @@ -51,6 +51,8 @@ public final class SocketChannelSelectionKey public int getNativeFD() { - return ((SocketChannelImpl) ch).getNativeFD(); + NIOSocket socket = + (NIOSocket) ((SocketChannelImpl) ch).socket(); + return socket.getPlainSocketImpl().getNativeFD(); } } diff --git a/libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.h b/libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.h new file mode 100644 index 00000000000..b3ab4900fe5 --- /dev/null +++ b/libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_SocketChannelSelectionKeyImpl__ +#define __gnu_java_nio_SocketChannelSelectionKeyImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class SelectorImpl; + class SocketChannelImpl; + class SocketChannelSelectionKeyImpl; + } + } + } +} + +class gnu::java::nio::SocketChannelSelectionKeyImpl : public ::gnu::java::nio::SelectionKeyImpl +{ + +public: + SocketChannelSelectionKeyImpl(::gnu::java::nio::SocketChannelImpl *, ::gnu::java::nio::SelectorImpl *); + virtual jint getNativeFD(); +public: // actually package-private + ::gnu::java::nio::SocketChannelImpl * __attribute__((aligned(__alignof__( ::gnu::java::nio::SelectionKeyImpl)))) ch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_SocketChannelSelectionKeyImpl__ diff --git a/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java b/libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.java similarity index 100% copy from libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java copy to libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.java diff --git a/libjava/gnu/java/nio/VMChannel.h b/libjava/gnu/java/nio/VMChannel.h new file mode 100644 index 00000000000..288805137e0 --- /dev/null +++ b/libjava/gnu/java/nio/VMChannel.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_VMChannel__ +#define __gnu_java_nio_VMChannel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace net + { + class PlainSocketImpl; + } + namespace nio + { + class PipeImpl$SinkChannelImpl; + class PipeImpl$SourceChannelImpl; + class VMChannel; + namespace channels + { + class FileChannelImpl; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::nio::VMChannel : public ::java::lang::Object +{ + + VMChannel(jint); +public: + static ::gnu::java::nio::VMChannel * getVMChannel(::gnu::java::net::PlainSocketImpl *); + static ::gnu::java::nio::VMChannel * getVMChannel(::gnu::java::nio::PipeImpl$SourceChannelImpl *); + static ::gnu::java::nio::VMChannel * getVMChannel(::gnu::java::nio::PipeImpl$SinkChannelImpl *); + static ::gnu::java::nio::VMChannel * getVMChannel(::gnu::java::nio::channels::FileChannelImpl *); + virtual void setBlocking(jint, jboolean); + virtual void setBlocking(jboolean); +public: // actually package-private + virtual jint read(jint, ::java::nio::ByteBuffer *); +public: + virtual jint read(::java::nio::ByteBuffer *); +public: // actually package-private + virtual jlong readScattering(jint, JArray< ::java::nio::ByteBuffer * > *, jint, jint); +public: + virtual jlong readScattering(JArray< ::java::nio::ByteBuffer * > *, jint, jint); +public: // actually package-private + virtual jint write(jint, ::java::nio::ByteBuffer *); +public: + virtual jint write(::java::nio::ByteBuffer *); +public: // actually package-private + virtual jlong writeGathering(jint, JArray< ::java::nio::ByteBuffer * > *, jint, jint); +public: + virtual jlong writeGathering(JArray< ::java::nio::ByteBuffer * > *, jint, jint); +private: + static void initIDs(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) fd; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_VMChannel__ diff --git a/libjava/gnu/java/nio/VMChannel.java b/libjava/gnu/java/nio/VMChannel.java index 23f44bbf964..fdea8ff6213 100644 --- a/libjava/gnu/java/nio/VMChannel.java +++ b/libjava/gnu/java/nio/VMChannel.java @@ -80,9 +80,19 @@ public class VMChannel public static VMChannel getVMChannel(FileChannelImpl file) { - return null; // XXX - return new VMChannel(file.getNativeFD()); + return new VMChannel(file.getNativeFD()); } + static + { + // load the shared library needed for native methods. + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary ("javanio"); + } + initIDs(); + } + /** * Set the file descriptor to have the required blocking * setting. @@ -90,10 +100,7 @@ public class VMChannel * @param fd * @param blocking */ - public void setBlocking(int fd, boolean blocking) - { - throw new RuntimeException("XXX - Implement me!"); - } + public native void setBlocking(int fd, boolean blocking); public void setBlocking(boolean blocking) { @@ -110,11 +117,8 @@ public class VMChannel * @return Number of bytes read. * @throws IOException If an error occurs or dst is not a direct buffers. */ - int read(int fd, ByteBuffer dst) - throws IOException - { - throw new IOException("XXX - Implement me!"); - } + native int read(int fd, ByteBuffer dst) + throws IOException; public int read(ByteBuffer dst) throws IOException @@ -134,11 +138,8 @@ public class VMChannel * @return Number of bytes read. * @throws IOException If an error occurs or the dsts are not direct buffers. */ - long readScattering(int fd, ByteBuffer[] dsts, int offset, int length) - throws IOException - { - throw new IOException("XXX - Implement me!"); - } + native long readScattering(int fd, ByteBuffer[] dsts, int offset, int length) + throws IOException; public long readScattering(ByteBuffer[] dsts, int offset, int length) throws IOException @@ -158,11 +159,8 @@ public class VMChannel * @return Number of bytes written. * @throws IOException */ - int write(int fd, ByteBuffer src) - throws IOException - { - throw new IOException("XXX - Implement me!"); - } + native int write(int fd, ByteBuffer src) + throws IOException; public int write(ByteBuffer src) throws IOException @@ -182,12 +180,9 @@ public class VMChannel * @return Number of bytes written. * @throws IOException */ - long writeGathering(int fd, ByteBuffer[] srcs, int offset, int length) - throws IOException - { - throw new IOException("XXX - Implement me!"); - } - + native long writeGathering(int fd, ByteBuffer[] srcs, int offset, int length) + throws IOException; + public long writeGathering(ByteBuffer[] srcs, int offset, int length) throws IOException { @@ -196,4 +191,7 @@ public class VMChannel return writeGathering(fd, srcs, offset, length); } + + private native static void initIDs(); + } diff --git a/libjava/gnu/java/nio/VMChannelOwner.h b/libjava/gnu/java/nio/VMChannelOwner.h new file mode 100644 index 00000000000..eca43b54391 --- /dev/null +++ b/libjava/gnu/java/nio/VMChannelOwner.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_VMChannelOwner__ +#define __gnu_java_nio_VMChannelOwner__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class VMChannel; + class VMChannelOwner; + } + } + } +} + +class gnu::java::nio::VMChannelOwner : public ::java::lang::Object +{ + +public: + virtual ::gnu::java::nio::VMChannel * getVMChannel() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_nio_VMChannelOwner__ diff --git a/libjava/gnu/java/nio/VMPipe.h b/libjava/gnu/java/nio/VMPipe.h new file mode 100644 index 00000000000..3a94c1e38aa --- /dev/null +++ b/libjava/gnu/java/nio/VMPipe.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_VMPipe__ +#define __gnu_java_nio_VMPipe__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class PipeImpl; + class VMPipe; + } + } + } + namespace java + { + namespace nio + { + namespace channels + { + namespace spi + { + class SelectorProvider; + } + } + } + } +} + +class gnu::java::nio::VMPipe : public ::java::lang::Object +{ + +public: // actually package-private + VMPipe(); + static void init(::gnu::java::nio::PipeImpl *, ::java::nio::channels::spi::SelectorProvider *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_VMPipe__ diff --git a/libjava/gnu/java/nio/VMSelector.h b/libjava/gnu/java/nio/VMSelector.h new file mode 100644 index 00000000000..cc177ff9e64 --- /dev/null +++ b/libjava/gnu/java/nio/VMSelector.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_VMSelector__ +#define __gnu_java_nio_VMSelector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + class VMSelector; + } + } + } +} + +class gnu::java::nio::VMSelector : public ::java::lang::Object +{ + +public: + VMSelector(); +public: // actually package-private + static jint select(JArray< jint > *, JArray< jint > *, JArray< jint > *, jlong); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_VMSelector__ diff --git a/libjava/gnu/java/nio/channels/FileChannelImpl.h b/libjava/gnu/java/nio/channels/FileChannelImpl.h new file mode 100644 index 00000000000..34099c52ffb --- /dev/null +++ b/libjava/gnu/java/nio/channels/FileChannelImpl.h @@ -0,0 +1,118 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_channels_FileChannelImpl__ +#define __gnu_java_nio_channels_FileChannelImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace channels + { + class FileChannelImpl; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class MappedByteBuffer; + namespace channels + { + class FileChannel; + class FileChannel$MapMode; + class FileLock; + class ReadableByteChannel; + class WritableByteChannel; + } + } + } +} + +class gnu::java::nio::channels::FileChannelImpl : public ::java::nio::channels::FileChannel +{ + + static void init(); +public: + FileChannelImpl(); + static ::gnu::java::nio::channels::FileChannelImpl * create(::java::io::File *, jint); +private: + FileChannelImpl(::java::io::File *, jint); +public: // actually package-private + FileChannelImpl(jint, jint); +private: + jint open(::java::lang::String *, jint); +public: + jint available(); +private: + jlong implPosition(); + void seek(jlong); + void implTruncate(jlong); +public: + void unlock(jlong, jlong); + jlong size(); +public: // actually protected + void implCloseChannel(); + void finalize(); +public: + jint read(::java::nio::ByteBuffer *); + jint read(::java::nio::ByteBuffer *, jlong); + jint read(); + jint read(JArray< jbyte > *, jint, jint); + jlong read(JArray< ::java::nio::ByteBuffer * > *, jint, jint); + jint write(::java::nio::ByteBuffer *); + jint write(::java::nio::ByteBuffer *, jlong); + void write(JArray< jbyte > *, jint, jint); + void write(jint); + jlong write(JArray< ::java::nio::ByteBuffer * > *, jint, jint); + ::java::nio::MappedByteBuffer * mapImpl(jchar, jlong, jint); + ::java::nio::MappedByteBuffer * map(::java::nio::channels::FileChannel$MapMode *, jlong, jlong); + void force(jboolean); +private: + jint smallTransferTo(jlong, jint, ::java::nio::channels::WritableByteChannel *); +public: + jlong transferTo(jlong, jlong, ::java::nio::channels::WritableByteChannel *); +private: + jint smallTransferFrom(::java::nio::channels::ReadableByteChannel *, jlong, jint); +public: + jlong transferFrom(::java::nio::channels::ReadableByteChannel *, jlong, jlong); + ::java::nio::channels::FileLock * tryLock(jlong, jlong, jboolean); +private: + jboolean lock(jlong, jlong, jboolean, jboolean); +public: + ::java::nio::channels::FileLock * lock(jlong, jlong, jboolean); + jlong position(); + ::java::nio::channels::FileChannel * position(jlong); + ::java::nio::channels::FileChannel * truncate(jlong); + jint getNativeFD(); + static const jint READ = 1; + static const jint WRITE = 2; + static const jint APPEND = 4; + static const jint EXCL = 8; + static const jint SYNC = 16; + static const jint DSYNC = 32; +private: + jint __attribute__((aligned(__alignof__( ::java::nio::channels::FileChannel)))) fd; + jlong pos; + jint mode; +public: + static ::gnu::java::nio::channels::FileChannelImpl * in; + static ::gnu::java::nio::channels::FileChannelImpl * out; + static ::gnu::java::nio::channels::FileChannelImpl * err; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_channels_FileChannelImpl__ diff --git a/libjava/gnu/java/nio/channels/FileChannelImpl.java b/libjava/gnu/java/nio/channels/FileChannelImpl.java index db68b596910..c1f79a43646 100644 --- a/libjava/gnu/java/nio/channels/FileChannelImpl.java +++ b/libjava/gnu/java/nio/channels/FileChannelImpl.java @@ -533,4 +533,12 @@ public final class FileChannelImpl extends FileChannel return this; } + + /** + * @return The native file descriptor. + */ + public int getNativeFD() + { + return fd; + } } diff --git a/libjava/gnu/java/nio/charset/ByteCharset$Decoder.h b/libjava/gnu/java/nio/charset/ByteCharset$Decoder.h new file mode 100644 index 00000000000..584b15fe5ba --- /dev/null +++ b/libjava/gnu/java/nio/charset/ByteCharset$Decoder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ByteCharset$Decoder__ +#define __gnu_java_nio_charset_ByteCharset$Decoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ByteCharset; + class ByteCharset$Decoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::ByteCharset$Decoder : public ::java::nio::charset::CharsetDecoder +{ + +public: // actually package-private + ByteCharset$Decoder(::gnu::java::nio::charset::ByteCharset *); +public: // actually protected + ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +private: + JArray< jchar > * __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetDecoder)))) lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ByteCharset$Decoder__ diff --git a/libjava/gnu/java/nio/charset/ByteCharset$Encoder.h b/libjava/gnu/java/nio/charset/ByteCharset$Encoder.h new file mode 100644 index 00000000000..cc31ae43eec --- /dev/null +++ b/libjava/gnu/java/nio/charset/ByteCharset$Encoder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ByteCharset$Encoder__ +#define __gnu_java_nio_charset_ByteCharset$Encoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ByteCharset; + class ByteCharset$Encoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::ByteCharset$Encoder : public ::java::nio::charset::CharsetEncoder +{ + +public: // actually package-private + ByteCharset$Encoder(::gnu::java::nio::charset::ByteCharset *); +public: + jboolean canEncode(jchar); + jboolean canEncode(::java::lang::CharSequence *); +public: // actually protected + ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetEncoder)))) lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ByteCharset$Encoder__ diff --git a/libjava/gnu/java/nio/charset/ByteCharset.h b/libjava/gnu/java/nio/charset/ByteCharset.h new file mode 100644 index 00000000000..045e03fde28 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ByteCharset.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ByteCharset__ +#define __gnu_java_nio_charset_ByteCharset__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ByteCharset; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::ByteCharset : public ::java::nio::charset::Charset +{ + +public: // actually package-private + ByteCharset(::java::lang::String *, JArray< ::java::lang::String * > *); +public: + virtual jboolean contains(::java::nio::charset::Charset *); +public: // actually package-private + virtual JArray< jchar > * getLookupTable(); +public: + virtual ::java::nio::charset::CharsetDecoder * newDecoder(); + virtual ::java::nio::charset::CharsetEncoder * newEncoder(); +public: // actually protected + JArray< jchar > * __attribute__((aligned(__alignof__( ::java::nio::charset::Charset)))) lookupTable; + static const jchar NONE = 65533; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ByteCharset__ diff --git a/libjava/gnu/java/nio/charset/Cp424.h b/libjava/gnu/java/nio/charset/Cp424.h new file mode 100644 index 00000000000..29ea29f6793 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp424.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp424__ +#define __gnu_java_nio_charset_Cp424__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp424; + } + } + } + } +} + +class gnu::java::nio::charset::Cp424 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp424(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp424__ diff --git a/libjava/gnu/java/nio/charset/Cp437.h b/libjava/gnu/java/nio/charset/Cp437.h new file mode 100644 index 00000000000..5593ff0ca6c --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp437.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp437__ +#define __gnu_java_nio_charset_Cp437__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp437; + } + } + } + } +} + +class gnu::java::nio::charset::Cp437 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp437(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp437__ diff --git a/libjava/gnu/java/nio/charset/Cp737.h b/libjava/gnu/java/nio/charset/Cp737.h new file mode 100644 index 00000000000..583075b7c02 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp737.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp737__ +#define __gnu_java_nio_charset_Cp737__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp737; + } + } + } + } +} + +class gnu::java::nio::charset::Cp737 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp737(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp737__ diff --git a/libjava/gnu/java/nio/charset/Cp775.h b/libjava/gnu/java/nio/charset/Cp775.h new file mode 100644 index 00000000000..995b7f6219d --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp775.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp775__ +#define __gnu_java_nio_charset_Cp775__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp775; + } + } + } + } +} + +class gnu::java::nio::charset::Cp775 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp775(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp775__ diff --git a/libjava/gnu/java/nio/charset/Cp850.h b/libjava/gnu/java/nio/charset/Cp850.h new file mode 100644 index 00000000000..e1a17dedada --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp850.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp850__ +#define __gnu_java_nio_charset_Cp850__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp850; + } + } + } + } +} + +class gnu::java::nio::charset::Cp850 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp850(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp850__ diff --git a/libjava/gnu/java/nio/charset/Cp852.h b/libjava/gnu/java/nio/charset/Cp852.h new file mode 100644 index 00000000000..e5ff8292d59 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp852.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp852__ +#define __gnu_java_nio_charset_Cp852__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp852; + } + } + } + } +} + +class gnu::java::nio::charset::Cp852 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp852(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp852__ diff --git a/libjava/gnu/java/nio/charset/Cp855.h b/libjava/gnu/java/nio/charset/Cp855.h new file mode 100644 index 00000000000..2ff372c7646 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp855.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp855__ +#define __gnu_java_nio_charset_Cp855__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp855; + } + } + } + } +} + +class gnu::java::nio::charset::Cp855 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp855(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp855__ diff --git a/libjava/gnu/java/nio/charset/Cp857.h b/libjava/gnu/java/nio/charset/Cp857.h new file mode 100644 index 00000000000..eba0a48a4fb --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp857.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp857__ +#define __gnu_java_nio_charset_Cp857__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp857; + } + } + } + } +} + +class gnu::java::nio::charset::Cp857 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp857(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp857__ diff --git a/libjava/gnu/java/nio/charset/Cp860.h b/libjava/gnu/java/nio/charset/Cp860.h new file mode 100644 index 00000000000..a93098358a8 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp860.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp860__ +#define __gnu_java_nio_charset_Cp860__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp860; + } + } + } + } +} + +class gnu::java::nio::charset::Cp860 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp860(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp860__ diff --git a/libjava/gnu/java/nio/charset/Cp861.h b/libjava/gnu/java/nio/charset/Cp861.h new file mode 100644 index 00000000000..04d202c7f45 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp861.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp861__ +#define __gnu_java_nio_charset_Cp861__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp861; + } + } + } + } +} + +class gnu::java::nio::charset::Cp861 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp861(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp861__ diff --git a/libjava/gnu/java/nio/charset/Cp862.h b/libjava/gnu/java/nio/charset/Cp862.h new file mode 100644 index 00000000000..8ddc349f5b7 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp862.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp862__ +#define __gnu_java_nio_charset_Cp862__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp862; + } + } + } + } +} + +class gnu::java::nio::charset::Cp862 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp862(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp862__ diff --git a/libjava/gnu/java/nio/charset/Cp863.h b/libjava/gnu/java/nio/charset/Cp863.h new file mode 100644 index 00000000000..76902574aa4 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp863.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp863__ +#define __gnu_java_nio_charset_Cp863__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp863; + } + } + } + } +} + +class gnu::java::nio::charset::Cp863 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp863(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp863__ diff --git a/libjava/gnu/java/nio/charset/Cp864.h b/libjava/gnu/java/nio/charset/Cp864.h new file mode 100644 index 00000000000..3f245f7ade2 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp864.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp864__ +#define __gnu_java_nio_charset_Cp864__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp864; + } + } + } + } +} + +class gnu::java::nio::charset::Cp864 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp864(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp864__ diff --git a/libjava/gnu/java/nio/charset/Cp865.h b/libjava/gnu/java/nio/charset/Cp865.h new file mode 100644 index 00000000000..78c43729e34 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp865.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp865__ +#define __gnu_java_nio_charset_Cp865__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp865; + } + } + } + } +} + +class gnu::java::nio::charset::Cp865 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp865(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp865__ diff --git a/libjava/gnu/java/nio/charset/Cp866.h b/libjava/gnu/java/nio/charset/Cp866.h new file mode 100644 index 00000000000..2c6375a9e7d --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp866.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp866__ +#define __gnu_java_nio_charset_Cp866__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp866; + } + } + } + } +} + +class gnu::java::nio::charset::Cp866 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp866(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp866__ diff --git a/libjava/gnu/java/nio/charset/Cp869.h b/libjava/gnu/java/nio/charset/Cp869.h new file mode 100644 index 00000000000..bc67408deed --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp869.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp869__ +#define __gnu_java_nio_charset_Cp869__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp869; + } + } + } + } +} + +class gnu::java::nio::charset::Cp869 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp869(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp869__ diff --git a/libjava/gnu/java/nio/charset/Cp874.h b/libjava/gnu/java/nio/charset/Cp874.h new file mode 100644 index 00000000000..590f84d7785 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Cp874.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Cp874__ +#define __gnu_java_nio_charset_Cp874__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Cp874; + } + } + } + } +} + +class gnu::java::nio::charset::Cp874 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Cp874(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Cp874__ diff --git a/libjava/gnu/java/nio/charset/EncodingHelper.h b/libjava/gnu/java/nio/charset/EncodingHelper.h new file mode 100644 index 00000000000..89cf7f1fe4c --- /dev/null +++ b/libjava/gnu/java/nio/charset/EncodingHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_EncodingHelper__ +#define __gnu_java_nio_charset_EncodingHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class EncodingHelper; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + } + } + } +} + +class gnu::java::nio::charset::EncodingHelper : public ::java::lang::Object +{ + +public: + EncodingHelper(); + static ::java::lang::String * getDefaultEncoding(); + static ::java::lang::String * getOldCanonical(::java::lang::String *); + static jboolean isISOLatin1(::java::lang::String *); + static ::java::nio::charset::Charset * getCharset(::java::lang::String *); +private: + static ::java::util::HashMap * canonicalNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_EncodingHelper__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h b/libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h new file mode 100644 index 00000000000..8adb8b83bcd --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_1$Decoder__ +#define __gnu_java_nio_charset_ISO_8859_1$Decoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_1$Decoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_1$Decoder : public ::java::nio::charset::CharsetDecoder +{ + +public: // actually package-private + ISO_8859_1$Decoder(::java::nio::charset::Charset *); +public: // actually protected + ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_1$Decoder__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h b/libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h new file mode 100644 index 00000000000..47d2280cbb5 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_1$Encoder__ +#define __gnu_java_nio_charset_ISO_8859_1$Encoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_1$Encoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_1$Encoder : public ::java::nio::charset::CharsetEncoder +{ + +public: // actually package-private + ISO_8859_1$Encoder(::java::nio::charset::Charset *); +public: + jboolean canEncode(jchar); + jboolean canEncode(::java::lang::CharSequence *); +public: // actually protected + ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_1$Encoder__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1.h b/libjava/gnu/java/nio/charset/ISO_8859_1.h new file mode 100644 index 00000000000..dc03558f989 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_1__ +#define __gnu_java_nio_charset_ISO_8859_1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_1; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_1 : public ::java::nio::charset::Charset +{ + +public: // actually package-private + ISO_8859_1(); +public: + jboolean contains(::java::nio::charset::Charset *); + ::java::nio::charset::CharsetDecoder * newDecoder(); + ::java::nio::charset::CharsetEncoder * newEncoder(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_1__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_13.h b/libjava/gnu/java/nio/charset/ISO_8859_13.h new file mode 100644 index 00000000000..dfe4240afb8 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_13.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_13__ +#define __gnu_java_nio_charset_ISO_8859_13__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_13; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_13 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_13(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_13__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_15.h b/libjava/gnu/java/nio/charset/ISO_8859_15.h new file mode 100644 index 00000000000..617e2271be8 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_15.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_15__ +#define __gnu_java_nio_charset_ISO_8859_15__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_15; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_15 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_15(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_15__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_2.h b/libjava/gnu/java/nio/charset/ISO_8859_2.h new file mode 100644 index 00000000000..e201ddc5528 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_2.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_2__ +#define __gnu_java_nio_charset_ISO_8859_2__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_2; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_2 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_2(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_2__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_3.h b/libjava/gnu/java/nio/charset/ISO_8859_3.h new file mode 100644 index 00000000000..3c468fd5228 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_3.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_3__ +#define __gnu_java_nio_charset_ISO_8859_3__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_3; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_3 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_3(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_3__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_4.h b/libjava/gnu/java/nio/charset/ISO_8859_4.h new file mode 100644 index 00000000000..f338bf002a5 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_4.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_4__ +#define __gnu_java_nio_charset_ISO_8859_4__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_4; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_4 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_4(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_4__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_5.h b/libjava/gnu/java/nio/charset/ISO_8859_5.h new file mode 100644 index 00000000000..4d626d022c2 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_5.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_5__ +#define __gnu_java_nio_charset_ISO_8859_5__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_5; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_5 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_5(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_5__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_6.h b/libjava/gnu/java/nio/charset/ISO_8859_6.h new file mode 100644 index 00000000000..0ce45f24d54 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_6.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_6__ +#define __gnu_java_nio_charset_ISO_8859_6__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_6; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_6 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_6(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_6__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_7.h b/libjava/gnu/java/nio/charset/ISO_8859_7.h new file mode 100644 index 00000000000..0c661fa92f5 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_7.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_7__ +#define __gnu_java_nio_charset_ISO_8859_7__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_7; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_7 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_7(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_7__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_8.h b/libjava/gnu/java/nio/charset/ISO_8859_8.h new file mode 100644 index 00000000000..96a255e43f6 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_8.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_8__ +#define __gnu_java_nio_charset_ISO_8859_8__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_8; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_8 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_8(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_8__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_9.h b/libjava/gnu/java/nio/charset/ISO_8859_9.h new file mode 100644 index 00000000000..a5030b7888b --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_9.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_9__ +#define __gnu_java_nio_charset_ISO_8859_9__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_9; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_9 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + ISO_8859_9(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_9__ diff --git a/libjava/gnu/java/nio/charset/KOI_8.h b/libjava/gnu/java/nio/charset/KOI_8.h new file mode 100644 index 00000000000..db07f142bd2 --- /dev/null +++ b/libjava/gnu/java/nio/charset/KOI_8.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_KOI_8__ +#define __gnu_java_nio_charset_KOI_8__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class KOI_8; + } + } + } + } +} + +class gnu::java::nio::charset::KOI_8 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + KOI_8(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_KOI_8__ diff --git a/libjava/gnu/java/nio/charset/MS874.h b/libjava/gnu/java/nio/charset/MS874.h new file mode 100644 index 00000000000..c22c860b642 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MS874.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MS874__ +#define __gnu_java_nio_charset_MS874__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MS874; + } + } + } + } +} + +class gnu::java::nio::charset::MS874 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MS874(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MS874__ diff --git a/libjava/gnu/java/nio/charset/MacCentralEurope.h b/libjava/gnu/java/nio/charset/MacCentralEurope.h new file mode 100644 index 00000000000..c91c915f0c5 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacCentralEurope.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacCentralEurope__ +#define __gnu_java_nio_charset_MacCentralEurope__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacCentralEurope; + } + } + } + } +} + +class gnu::java::nio::charset::MacCentralEurope : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacCentralEurope(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacCentralEurope__ diff --git a/libjava/gnu/java/nio/charset/MacCroatian.h b/libjava/gnu/java/nio/charset/MacCroatian.h new file mode 100644 index 00000000000..8c03767f2d8 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacCroatian.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacCroatian__ +#define __gnu_java_nio_charset_MacCroatian__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacCroatian; + } + } + } + } +} + +class gnu::java::nio::charset::MacCroatian : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacCroatian(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacCroatian__ diff --git a/libjava/gnu/java/nio/charset/MacCyrillic.h b/libjava/gnu/java/nio/charset/MacCyrillic.h new file mode 100644 index 00000000000..4190da579ce --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacCyrillic.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacCyrillic__ +#define __gnu_java_nio_charset_MacCyrillic__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacCyrillic; + } + } + } + } +} + +class gnu::java::nio::charset::MacCyrillic : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacCyrillic(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacCyrillic__ diff --git a/libjava/gnu/java/nio/charset/MacDingbat.h b/libjava/gnu/java/nio/charset/MacDingbat.h new file mode 100644 index 00000000000..05995390be0 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacDingbat.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacDingbat__ +#define __gnu_java_nio_charset_MacDingbat__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacDingbat; + } + } + } + } +} + +class gnu::java::nio::charset::MacDingbat : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacDingbat(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacDingbat__ diff --git a/libjava/gnu/java/nio/charset/MacGreek.h b/libjava/gnu/java/nio/charset/MacGreek.h new file mode 100644 index 00000000000..df1f52fbb93 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacGreek.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacGreek__ +#define __gnu_java_nio_charset_MacGreek__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacGreek; + } + } + } + } +} + +class gnu::java::nio::charset::MacGreek : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacGreek(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacGreek__ diff --git a/libjava/gnu/java/nio/charset/MacIceland.h b/libjava/gnu/java/nio/charset/MacIceland.h new file mode 100644 index 00000000000..e8878e8ee38 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacIceland.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacIceland__ +#define __gnu_java_nio_charset_MacIceland__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacIceland; + } + } + } + } +} + +class gnu::java::nio::charset::MacIceland : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacIceland(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacIceland__ diff --git a/libjava/gnu/java/nio/charset/MacRoman.h b/libjava/gnu/java/nio/charset/MacRoman.h new file mode 100644 index 00000000000..a648b80cd4b --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacRoman.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacRoman__ +#define __gnu_java_nio_charset_MacRoman__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacRoman; + } + } + } + } +} + +class gnu::java::nio::charset::MacRoman : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacRoman(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacRoman__ diff --git a/libjava/gnu/java/nio/charset/MacRomania.h b/libjava/gnu/java/nio/charset/MacRomania.h new file mode 100644 index 00000000000..ecc89ed4fa4 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacRomania.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacRomania__ +#define __gnu_java_nio_charset_MacRomania__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacRomania; + } + } + } + } +} + +class gnu::java::nio::charset::MacRomania : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacRomania(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacRomania__ diff --git a/libjava/gnu/java/nio/charset/MacSymbol.h b/libjava/gnu/java/nio/charset/MacSymbol.h new file mode 100644 index 00000000000..e9ca0b1b407 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacSymbol.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacSymbol__ +#define __gnu_java_nio_charset_MacSymbol__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacSymbol; + } + } + } + } +} + +class gnu::java::nio::charset::MacSymbol : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacSymbol(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacSymbol__ diff --git a/libjava/gnu/java/nio/charset/MacThai.h b/libjava/gnu/java/nio/charset/MacThai.h new file mode 100644 index 00000000000..dbf916687cf --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacThai.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacThai__ +#define __gnu_java_nio_charset_MacThai__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacThai; + } + } + } + } +} + +class gnu::java::nio::charset::MacThai : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacThai(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacThai__ diff --git a/libjava/gnu/java/nio/charset/MacTurkish.h b/libjava/gnu/java/nio/charset/MacTurkish.h new file mode 100644 index 00000000000..077c35d2646 --- /dev/null +++ b/libjava/gnu/java/nio/charset/MacTurkish.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_MacTurkish__ +#define __gnu_java_nio_charset_MacTurkish__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class MacTurkish; + } + } + } + } +} + +class gnu::java::nio::charset::MacTurkish : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + MacTurkish(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_MacTurkish__ diff --git a/libjava/gnu/java/nio/charset/Provider$1.h b/libjava/gnu/java/nio/charset/Provider$1.h new file mode 100644 index 00000000000..880faccf5c6 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Provider$1.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Provider$1__ +#define __gnu_java_nio_charset_Provider$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Provider$1; + } + } + } + } +} + +class gnu::java::nio::charset::Provider$1 : public ::java::lang::Object +{ + +public: // actually package-private + Provider$1(); +public: + ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Provider$1__ diff --git a/libjava/gnu/java/nio/charset/Provider.h b/libjava/gnu/java/nio/charset/Provider.h new file mode 100644 index 00000000000..04495ed8c73 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Provider.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Provider__ +#define __gnu_java_nio_charset_Provider__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Provider; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + } + } + } +} + +class gnu::java::nio::charset::Provider : public ::java::nio::charset::spi::CharsetProvider +{ + +public: // actually package-private + Provider(); +private: + void loadExtended(); +public: + ::java::util::Iterator * charsets(); + ::java::nio::charset::Charset * charsetForName(::java::lang::String *); +private: + void addCharset(::java::nio::charset::Charset *); +public: + static ::gnu::java::nio::charset::Provider * provider(); +private: + static ::gnu::java::nio::charset::Provider * singleton; + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::nio::charset::spi::CharsetProvider)))) canonicalNames; + ::java::util::HashMap * charsets__; + jboolean extendedLoaded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Provider__ diff --git a/libjava/gnu/java/nio/charset/US_ASCII$Decoder.h b/libjava/gnu/java/nio/charset/US_ASCII$Decoder.h new file mode 100644 index 00000000000..c0c09bc32f7 --- /dev/null +++ b/libjava/gnu/java/nio/charset/US_ASCII$Decoder.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_US_ASCII$Decoder__ +#define __gnu_java_nio_charset_US_ASCII$Decoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class US_ASCII$Decoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::US_ASCII$Decoder : public ::java::nio::charset::CharsetDecoder +{ + +public: // actually package-private + US_ASCII$Decoder(::java::nio::charset::Charset *); +public: // actually protected + ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_US_ASCII$Decoder__ diff --git a/libjava/gnu/java/nio/charset/US_ASCII$Encoder.h b/libjava/gnu/java/nio/charset/US_ASCII$Encoder.h new file mode 100644 index 00000000000..7a30c343c6e --- /dev/null +++ b/libjava/gnu/java/nio/charset/US_ASCII$Encoder.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_US_ASCII$Encoder__ +#define __gnu_java_nio_charset_US_ASCII$Encoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class US_ASCII$Encoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::US_ASCII$Encoder : public ::java::nio::charset::CharsetEncoder +{ + +public: // actually package-private + US_ASCII$Encoder(::java::nio::charset::Charset *); +public: + jboolean canEncode(jchar); + jboolean canEncode(::java::lang::CharSequence *); +public: // actually protected + ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_US_ASCII$Encoder__ diff --git a/libjava/gnu/java/nio/charset/US_ASCII.h b/libjava/gnu/java/nio/charset/US_ASCII.h new file mode 100644 index 00000000000..297cf111426 --- /dev/null +++ b/libjava/gnu/java/nio/charset/US_ASCII.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_US_ASCII__ +#define __gnu_java_nio_charset_US_ASCII__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class US_ASCII; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::US_ASCII : public ::java::nio::charset::Charset +{ + +public: // actually package-private + US_ASCII(); +public: + jboolean contains(::java::nio::charset::Charset *); + ::java::nio::charset::CharsetDecoder * newDecoder(); + ::java::nio::charset::CharsetEncoder * newEncoder(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_US_ASCII__ diff --git a/libjava/gnu/java/nio/charset/UTF_16.h b/libjava/gnu/java/nio/charset/UTF_16.h new file mode 100644 index 00000000000..afb0fd8faa9 --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_16.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_16__ +#define __gnu_java_nio_charset_UTF_16__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_16; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::UTF_16 : public ::java::nio::charset::Charset +{ + +public: // actually package-private + UTF_16(); +public: + jboolean contains(::java::nio::charset::Charset *); + ::java::nio::charset::CharsetDecoder * newDecoder(); + ::java::nio::charset::CharsetEncoder * newEncoder(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_16__ diff --git a/libjava/gnu/java/nio/charset/UTF_16BE.h b/libjava/gnu/java/nio/charset/UTF_16BE.h new file mode 100644 index 00000000000..8b2bccfed26 --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_16BE.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_16BE__ +#define __gnu_java_nio_charset_UTF_16BE__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_16BE; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::UTF_16BE : public ::java::nio::charset::Charset +{ + +public: // actually package-private + UTF_16BE(); +public: + jboolean contains(::java::nio::charset::Charset *); + ::java::nio::charset::CharsetDecoder * newDecoder(); + ::java::nio::charset::CharsetEncoder * newEncoder(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_16BE__ diff --git a/libjava/gnu/java/nio/charset/UTF_16Decoder.h b/libjava/gnu/java/nio/charset/UTF_16Decoder.h new file mode 100644 index 00000000000..b23c3e72b96 --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_16Decoder.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_16Decoder__ +#define __gnu_java_nio_charset_UTF_16Decoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_16Decoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::UTF_16Decoder : public ::java::nio::charset::CharsetDecoder +{ + +public: // actually package-private + UTF_16Decoder(::java::nio::charset::Charset *, jint); +public: // actually protected + ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); + void implReset(); +public: // actually package-private + static const jint BIG_ENDIAN = 0; + static const jint LITTLE_ENDIAN = 1; + static const jint UNKNOWN_ENDIAN = 2; + static const jint MAYBE_BIG_ENDIAN = 3; + static const jint MAYBE_LITTLE_ENDIAN = 4; +private: + static const jchar BYTE_ORDER_MARK = 65279; + static const jchar REVERSED_BYTE_ORDER_MARK = 65534; + jint __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetDecoder)))) originalByteOrder; + jint byteOrder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_16Decoder__ diff --git a/libjava/gnu/java/nio/charset/UTF_16Encoder.h b/libjava/gnu/java/nio/charset/UTF_16Encoder.h new file mode 100644 index 00000000000..9dc49948411 --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_16Encoder.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_16Encoder__ +#define __gnu_java_nio_charset_UTF_16Encoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_16Encoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class ByteOrder; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::UTF_16Encoder : public ::java::nio::charset::CharsetEncoder +{ + +public: // actually package-private + UTF_16Encoder(::java::nio::charset::Charset *, jint, jboolean); +public: // actually protected + ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); + void implReset(); +public: // actually package-private + static const jint BIG_ENDIAN = 0; + static const jint LITTLE_ENDIAN = 1; +private: + static const jchar BYTE_ORDER_MARK = 65279; + ::java::nio::ByteOrder * __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetEncoder)))) byteOrder; + jboolean useByteOrderMark; + jboolean needsByteOrderMark; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_16Encoder__ diff --git a/libjava/gnu/java/nio/charset/UTF_16LE.h b/libjava/gnu/java/nio/charset/UTF_16LE.h new file mode 100644 index 00000000000..8b5ee1b3566 --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_16LE.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_16LE__ +#define __gnu_java_nio_charset_UTF_16LE__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_16LE; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::UTF_16LE : public ::java::nio::charset::Charset +{ + +public: // actually package-private + UTF_16LE(); +public: + jboolean contains(::java::nio::charset::Charset *); + ::java::nio::charset::CharsetDecoder * newDecoder(); + ::java::nio::charset::CharsetEncoder * newEncoder(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_16LE__ diff --git a/libjava/gnu/java/nio/charset/UTF_8$Decoder.h b/libjava/gnu/java/nio/charset/UTF_8$Decoder.h new file mode 100644 index 00000000000..89ec73287d1 --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_8$Decoder.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_8$Decoder__ +#define __gnu_java_nio_charset_UTF_8$Decoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_8$Decoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::UTF_8$Decoder : public ::java::nio::charset::CharsetDecoder +{ + +public: // actually package-private + UTF_8$Decoder(::java::nio::charset::Charset *); +public: // actually protected + ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +private: + static jboolean isContinuation(jbyte); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_8$Decoder__ diff --git a/libjava/gnu/java/nio/charset/UTF_8$Encoder.h b/libjava/gnu/java/nio/charset/UTF_8$Encoder.h new file mode 100644 index 00000000000..13745f2931e --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_8$Encoder.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_8$Encoder__ +#define __gnu_java_nio_charset_UTF_8$Encoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_8$Encoder; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class Charset; + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::UTF_8$Encoder : public ::java::nio::charset::CharsetEncoder +{ + +public: // actually package-private + UTF_8$Encoder(::java::nio::charset::Charset *); +public: // actually protected + ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_8$Encoder__ diff --git a/libjava/gnu/java/nio/charset/UTF_8.h b/libjava/gnu/java/nio/charset/UTF_8.h new file mode 100644 index 00000000000..0be5e400a37 --- /dev/null +++ b/libjava/gnu/java/nio/charset/UTF_8.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UTF_8__ +#define __gnu_java_nio_charset_UTF_8__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UTF_8; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::UTF_8 : public ::java::nio::charset::Charset +{ + +public: // actually package-private + UTF_8(); +public: + jboolean contains(::java::nio::charset::Charset *); + ::java::nio::charset::CharsetDecoder * newDecoder(); + ::java::nio::charset::CharsetEncoder * newEncoder(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UTF_8__ diff --git a/libjava/gnu/java/nio/charset/UnicodeLittle.h b/libjava/gnu/java/nio/charset/UnicodeLittle.h new file mode 100644 index 00000000000..8086fd8a64c --- /dev/null +++ b/libjava/gnu/java/nio/charset/UnicodeLittle.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_UnicodeLittle__ +#define __gnu_java_nio_charset_UnicodeLittle__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class UnicodeLittle; + } + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetDecoder; + class CharsetEncoder; + } + } + } +} + +class gnu::java::nio::charset::UnicodeLittle : public ::java::nio::charset::Charset +{ + +public: // actually package-private + UnicodeLittle(); +public: + jboolean contains(::java::nio::charset::Charset *); + ::java::nio::charset::CharsetDecoder * newDecoder(); + ::java::nio::charset::CharsetEncoder * newEncoder(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_UnicodeLittle__ diff --git a/libjava/gnu/java/nio/charset/Windows1250.h b/libjava/gnu/java/nio/charset/Windows1250.h new file mode 100644 index 00000000000..3e0bdae7e56 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1250.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1250__ +#define __gnu_java_nio_charset_Windows1250__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1250; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1250 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1250(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1250__ diff --git a/libjava/gnu/java/nio/charset/Windows1251.h b/libjava/gnu/java/nio/charset/Windows1251.h new file mode 100644 index 00000000000..5671f5a47b6 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1251.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1251__ +#define __gnu_java_nio_charset_Windows1251__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1251; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1251 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1251(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1251__ diff --git a/libjava/gnu/java/nio/charset/Windows1252.h b/libjava/gnu/java/nio/charset/Windows1252.h new file mode 100644 index 00000000000..f1e18a51b91 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1252.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1252__ +#define __gnu_java_nio_charset_Windows1252__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1252; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1252 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1252(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1252__ diff --git a/libjava/gnu/java/nio/charset/Windows1253.h b/libjava/gnu/java/nio/charset/Windows1253.h new file mode 100644 index 00000000000..4c9199d6f6a --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1253.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1253__ +#define __gnu_java_nio_charset_Windows1253__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1253; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1253 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1253(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1253__ diff --git a/libjava/gnu/java/nio/charset/Windows1254.h b/libjava/gnu/java/nio/charset/Windows1254.h new file mode 100644 index 00000000000..d14346deb95 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1254.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1254__ +#define __gnu_java_nio_charset_Windows1254__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1254; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1254 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1254(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1254__ diff --git a/libjava/gnu/java/nio/charset/Windows1255.h b/libjava/gnu/java/nio/charset/Windows1255.h new file mode 100644 index 00000000000..e8367b4a475 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1255.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1255__ +#define __gnu_java_nio_charset_Windows1255__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1255; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1255 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1255(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1255__ diff --git a/libjava/gnu/java/nio/charset/Windows1256.h b/libjava/gnu/java/nio/charset/Windows1256.h new file mode 100644 index 00000000000..c29502bd4a9 --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1256.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1256__ +#define __gnu_java_nio_charset_Windows1256__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1256; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1256 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1256(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1256__ diff --git a/libjava/gnu/java/nio/charset/Windows1257.h b/libjava/gnu/java/nio/charset/Windows1257.h new file mode 100644 index 00000000000..6f9c0ec4a9c --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1257.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1257__ +#define __gnu_java_nio_charset_Windows1257__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1257; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1257 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1257(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1257__ diff --git a/libjava/gnu/java/nio/charset/Windows1258.h b/libjava/gnu/java/nio/charset/Windows1258.h new file mode 100644 index 00000000000..2c7ea3185ca --- /dev/null +++ b/libjava/gnu/java/nio/charset/Windows1258.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_Windows1258__ +#define __gnu_java_nio_charset_Windows1258__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class Windows1258; + } + } + } + } +} + +class gnu::java::nio::charset::Windows1258 : public ::gnu::java::nio::charset::ByteCharset +{ + +public: + Windows1258(); +private: + static JArray< jchar > * lookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_Windows1258__ diff --git a/libjava/gnu/java/nio/natVMChannel.cc b/libjava/gnu/java/nio/natVMChannel.cc new file mode 100644 index 00000000000..4b4da7896f2 --- /dev/null +++ b/libjava/gnu/java/nio/natVMChannel.cc @@ -0,0 +1,46 @@ +#include + +#include +#include +#include + +void +gnu::java::nio::VMChannel::setBlocking (jint, jboolean) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::nio::VMChannel::setBlocking (jint, jboolean) not implemented")); +} + + +jint +gnu::java::nio::VMChannel::read (jint, ::java::nio::ByteBuffer *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::nio::VMChannel::read (jint, ::java::nio::ByteBuffer *) not implemented")); +} + + +jlong +gnu::java::nio::VMChannel::readScattering (jint, JArray< ::java::nio::ByteBuffer *> *, jint, jint) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::nio::VMChannel::readScattering (jint, JArray< ::java::nio::ByteBuffer *> *, jint, jint) not implemented")); +} + + +jint +gnu::java::nio::VMChannel::write (jint, ::java::nio::ByteBuffer *) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::nio::VMChannel::write (jint, ::java::nio::ByteBuffer *) not implemented")); +} + + +jlong +gnu::java::nio::VMChannel::writeGathering (jint, JArray< ::java::nio::ByteBuffer *> *, jint, jint) +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::nio::VMChannel::writeGathering (jint, JArray< ::java::nio::ByteBuffer *> *, jint, jint) not implemented")); +} + + +void +gnu::java::nio::VMChannel::initIDs () +{ + throw new ::java::lang::UnsupportedOperationException (JvNewStringLatin1 ("gnu::java::nio::VMChannel::initIDs () not implemented")); +} diff --git a/libjava/gnu/java/rmi/RMIMarshalledObjectInputStream.h b/libjava/gnu/java/rmi/RMIMarshalledObjectInputStream.h new file mode 100644 index 00000000000..ad170da547c --- /dev/null +++ b/libjava/gnu/java/rmi/RMIMarshalledObjectInputStream.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_RMIMarshalledObjectInputStream__ +#define __gnu_java_rmi_RMIMarshalledObjectInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + class RMIMarshalledObjectInputStream; + } + } + } +} + +class gnu::java::rmi::RMIMarshalledObjectInputStream : public ::gnu::java::rmi::server::RMIObjectInputStream +{ + +public: + RMIMarshalledObjectInputStream(JArray< jbyte > *, JArray< jbyte > *); +public: // actually protected + virtual ::java::lang::Object * getAnnotation(); +private: + ::java::io::ObjectInputStream * __attribute__((aligned(__alignof__( ::gnu::java::rmi::server::RMIObjectInputStream)))) locStream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_RMIMarshalledObjectInputStream__ diff --git a/libjava/gnu/java/rmi/RMIMarshalledObjectOutputStream.h b/libjava/gnu/java/rmi/RMIMarshalledObjectOutputStream.h new file mode 100644 index 00000000000..6a1c87e367f --- /dev/null +++ b/libjava/gnu/java/rmi/RMIMarshalledObjectOutputStream.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_RMIMarshalledObjectOutputStream__ +#define __gnu_java_rmi_RMIMarshalledObjectOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + class RMIMarshalledObjectOutputStream; + } + } + } +} + +class gnu::java::rmi::RMIMarshalledObjectOutputStream : public ::gnu::java::rmi::server::RMIObjectOutputStream +{ + +public: + RMIMarshalledObjectOutputStream(::java::io::OutputStream *); +public: // actually protected + virtual void setAnnotation(::java::lang::String *); +public: + virtual void flush(); + virtual JArray< jbyte > * getLocBytes(); +private: + ::java::io::ObjectOutputStream * __attribute__((aligned(__alignof__( ::gnu::java::rmi::server::RMIObjectOutputStream)))) locStream; + ::java::io::ByteArrayOutputStream * locBytesStream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_RMIMarshalledObjectOutputStream__ diff --git a/libjava/gnu/java/rmi/activation/ActivationSystemTransient.h b/libjava/gnu/java/rmi/activation/ActivationSystemTransient.h new file mode 100644 index 00000000000..81607a34f86 --- /dev/null +++ b/libjava/gnu/java/rmi/activation/ActivationSystemTransient.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_activation_ActivationSystemTransient__ +#define __gnu_java_rmi_activation_ActivationSystemTransient__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace activation + { + class ActivationSystemTransient; + class BidiTable; + } + } + } + } + namespace java + { + namespace rmi + { + class MarshalledObject; + namespace activation + { + class ActivationDesc; + class ActivationGroupDesc; + class ActivationGroupID; + class ActivationID; + class ActivationInstantiator; + class ActivationMonitor; + class ActivationSystem; + } + } + } +} + +class gnu::java::rmi::activation::ActivationSystemTransient : public ::gnu::java::rmi::activation::DefaultActivationSystem +{ + +public: // actually protected + ActivationSystemTransient(::gnu::java::rmi::activation::BidiTable *, ::gnu::java::rmi::activation::BidiTable *); + ActivationSystemTransient(); +public: + static ::java::rmi::activation::ActivationSystem * getInstance(); + virtual ::java::rmi::MarshalledObject * activate(::java::rmi::activation::ActivationID *, jboolean); + virtual ::java::rmi::activation::ActivationMonitor * activeGroup(::java::rmi::activation::ActivationGroupID *, ::java::rmi::activation::ActivationInstantiator *, jlong); + virtual ::java::rmi::activation::ActivationDesc * getActivationDesc(::java::rmi::activation::ActivationID *); + virtual ::java::rmi::activation::ActivationGroupDesc * getActivationGroupDesc(::java::rmi::activation::ActivationGroupID *); + virtual ::java::rmi::activation::ActivationGroupID * registerGroup(::java::rmi::activation::ActivationGroupDesc *); + virtual ::java::rmi::activation::ActivationID * registerObject(::java::rmi::activation::ActivationDesc *); + virtual ::java::rmi::activation::ActivationDesc * setActivationDesc(::java::rmi::activation::ActivationID *, ::java::rmi::activation::ActivationDesc *); + virtual ::java::rmi::activation::ActivationGroupDesc * setActivationGroupDesc(::java::rmi::activation::ActivationGroupID *, ::java::rmi::activation::ActivationGroupDesc *); + virtual void shutdown(); + virtual void unregisterGroup(::java::rmi::activation::ActivationGroupID *); + virtual void unregisterObject(::java::rmi::activation::ActivationID *); + virtual void activeObject(::java::rmi::activation::ActivationID *, ::java::rmi::MarshalledObject *); + virtual void inactiveGroup(::java::rmi::activation::ActivationGroupID *, jlong); + virtual void inactiveObject(::java::rmi::activation::ActivationID *); +public: // actually protected + ::gnu::java::rmi::activation::BidiTable * __attribute__((aligned(__alignof__( ::gnu::java::rmi::activation::DefaultActivationSystem)))) groupDescs; + ::gnu::java::rmi::activation::BidiTable * descriptions; + ::java::util::Map * groupInstantiators; + ::java::util::Map * activatedObjects; +public: // actually package-private + static jlong groupIncarnations; + static ::java::rmi::activation::ActivationSystem * singleton; +public: + static jboolean debug; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_activation_ActivationSystemTransient__ diff --git a/libjava/gnu/java/rmi/activation/BidiTable.h b/libjava/gnu/java/rmi/activation/BidiTable.h new file mode 100644 index 00000000000..74a78f11ade --- /dev/null +++ b/libjava/gnu/java/rmi/activation/BidiTable.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_activation_BidiTable__ +#define __gnu_java_rmi_activation_BidiTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace activation + { + class BidiTable; + } + } + } + } +} + +class gnu::java::rmi::activation::BidiTable : public ::java::lang::Object +{ + +public: + BidiTable(); +public: // actually protected + BidiTable(jint); +public: + virtual ::java::lang::Object * getKey(::java::lang::Object *); + virtual void put(::java::lang::Object *, ::java::lang::Object *); + virtual ::java::lang::Object * get(::java::lang::Object *); + virtual void removeKey(::java::lang::Object *); + virtual jboolean containsKey(::java::lang::Object *); + virtual void shutdown(); + virtual jint size(); + virtual JArray< ::java::lang::Object * > * keys(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually protected + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) k2v; + ::java::util::Map * v2k; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_activation_BidiTable__ diff --git a/libjava/gnu/java/rmi/activation/DefaultActivationGroup.h b/libjava/gnu/java/rmi/activation/DefaultActivationGroup.h new file mode 100644 index 00000000000..2f1cb0eec97 --- /dev/null +++ b/libjava/gnu/java/rmi/activation/DefaultActivationGroup.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_activation_DefaultActivationGroup__ +#define __gnu_java_rmi_activation_DefaultActivationGroup__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace activation + { + class DefaultActivationGroup; + } + } + } + } + namespace java + { + namespace rmi + { + class MarshalledObject; + class Remote; + namespace activation + { + class ActivationDesc; + class ActivationGroupID; + class ActivationID; + } + } + } +} + +class gnu::java::rmi::activation::DefaultActivationGroup : public ::java::rmi::activation::ActivationGroup +{ + +public: + DefaultActivationGroup(::java::rmi::activation::ActivationGroupID *, ::java::rmi::MarshalledObject *); + virtual void activeObject(::java::rmi::activation::ActivationID *, ::java::rmi::Remote *); + virtual ::java::rmi::MarshalledObject * newInstance(::java::rmi::activation::ActivationID *, ::java::rmi::activation::ActivationDesc *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + static JArray< ::java::lang::Class * > * cConstructorTypes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_activation_DefaultActivationGroup__ diff --git a/libjava/gnu/java/rmi/activation/DefaultActivationSystem.h b/libjava/gnu/java/rmi/activation/DefaultActivationSystem.h new file mode 100644 index 00000000000..457c112ede1 --- /dev/null +++ b/libjava/gnu/java/rmi/activation/DefaultActivationSystem.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_activation_DefaultActivationSystem__ +#define __gnu_java_rmi_activation_DefaultActivationSystem__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace activation + { + class DefaultActivationSystem; + } + } + } + } + namespace java + { + namespace rmi + { + namespace activation + { + class ActivationSystem; + } + } + } +} + +class gnu::java::rmi::activation::DefaultActivationSystem : public ::java::lang::Object +{ + +public: + DefaultActivationSystem(); + static ::java::rmi::activation::ActivationSystem * get(); +public: // actually package-private + static ::java::rmi::activation::ActivationSystem * system; + static jint ACTIVATION_REGISTRY_PORT; + static ::java::lang::String * AS_PORT_PROPERTY; + static ::java::lang::String * ACTIVATION_SYSTEM_NAME; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_activation_DefaultActivationSystem__ diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl$RefProtector.h b/libjava/gnu/java/rmi/dgc/DGCImpl$RefProtector.h new file mode 100644 index 00000000000..ed869a29027 --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/DGCImpl$RefProtector.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_dgc_DGCImpl$RefProtector__ +#define __gnu_java_rmi_dgc_DGCImpl$RefProtector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace dgc + { + class DGCImpl; + class DGCImpl$RefProtector; + } + } + } + } + namespace java + { + namespace rmi + { + namespace server + { + class ObjID; + } + } + } +} + +class gnu::java::rmi::dgc::DGCImpl$RefProtector : public ::java::util::TimerTask +{ + +public: // actually package-private + DGCImpl$RefProtector(::gnu::java::rmi::dgc::DGCImpl *, JArray< ::java::rmi::server::ObjID * > *, jlong); +public: + virtual void run(); +public: // actually package-private + JArray< ::java::util::Collection * > * __attribute__((aligned(__alignof__( ::java::util::TimerTask)))) references; + ::gnu::java::rmi::dgc::DGCImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_dgc_DGCImpl$RefProtector__ diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl.h b/libjava/gnu/java/rmi/dgc/DGCImpl.h new file mode 100644 index 00000000000..e0f91a1990e --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/DGCImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_dgc_DGCImpl__ +#define __gnu_java_rmi_dgc_DGCImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace dgc + { + class DGCImpl; + } + } + } + } + namespace java + { + namespace rmi + { + namespace dgc + { + class Lease; + class VMID; + } + namespace server + { + class ObjID; + } + } + } +} + +class gnu::java::rmi::dgc::DGCImpl : public ::gnu::java::rmi::server::UnicastServerRef +{ + +public: + DGCImpl(); + virtual ::java::rmi::dgc::Lease * dirty(JArray< ::java::rmi::server::ObjID * > *, jlong, ::java::rmi::dgc::Lease *); + virtual void clean(JArray< ::java::rmi::server::ObjID * > *, jlong, ::java::rmi::dgc::VMID *, jboolean); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + static const jlong LEASE_VALUE = 600000LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_dgc_DGCImpl__ diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl_Skel.h b/libjava/gnu/java/rmi/dgc/DGCImpl_Skel.h new file mode 100644 index 00000000000..3133f2ca453 --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/DGCImpl_Skel.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_dgc_DGCImpl_Skel__ +#define __gnu_java_rmi_dgc_DGCImpl_Skel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace dgc + { + class DGCImpl_Skel; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace server + { + class Operation; + class RemoteCall; + } + } + } +} + +class gnu::java::rmi::dgc::DGCImpl_Skel : public ::java::lang::Object +{ + +public: + DGCImpl_Skel(); + JArray< ::java::rmi::server::Operation * > * getOperations(); + void dispatch(::java::rmi::Remote *, ::java::rmi::server::RemoteCall *, jint, jlong); +private: + static const jlong interfaceHash = -669196253586618813LL; + static JArray< ::java::rmi::server::Operation * > * operations; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_dgc_DGCImpl_Skel__ diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl_Stub.h b/libjava/gnu/java/rmi/dgc/DGCImpl_Stub.h new file mode 100644 index 00000000000..f37555ad924 --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/DGCImpl_Stub.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_dgc_DGCImpl_Stub__ +#define __gnu_java_rmi_dgc_DGCImpl_Stub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace dgc + { + class DGCImpl_Stub; + } + } + } + } + namespace java + { + namespace rmi + { + namespace dgc + { + class Lease; + class VMID; + } + namespace server + { + class ObjID; + class Operation; + class RemoteRef; + } + } + } +} + +class gnu::java::rmi::dgc::DGCImpl_Stub : public ::java::rmi::server::RemoteStub +{ + +public: + DGCImpl_Stub(); + DGCImpl_Stub(::java::rmi::server::RemoteRef *); + void clean(JArray< ::java::rmi::server::ObjID * > *, jlong, ::java::rmi::dgc::VMID *, jboolean); + ::java::rmi::dgc::Lease * dirty(JArray< ::java::rmi::server::ObjID * > *, jlong, ::java::rmi::dgc::Lease *); +private: + static const jlong serialVersionUID = 2LL; + static const jlong interfaceHash = -669196253586618813LL; + static jboolean useNewInvoke; + static JArray< ::java::rmi::server::Operation * > * operations; + static ::java::lang::reflect::Method * $method_clean_0; + static ::java::lang::reflect::Method * $method_dirty_1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_dgc_DGCImpl_Stub__ diff --git a/libjava/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.h b/libjava/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.h new file mode 100644 index 00000000000..7d31934041a --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/LeaseRenewingTask$LeaseTimerTask.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_dgc_LeaseRenewingTask$LeaseTimerTask__ +#define __gnu_java_rmi_dgc_LeaseRenewingTask$LeaseTimerTask__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace dgc + { + class LeaseRenewingTask; + class LeaseRenewingTask$LeaseTimerTask; + } + } + } + } +} + +class gnu::java::rmi::dgc::LeaseRenewingTask$LeaseTimerTask : public ::java::util::TimerTask +{ + +public: // actually package-private + LeaseRenewingTask$LeaseTimerTask(::gnu::java::rmi::dgc::LeaseRenewingTask *); +public: + virtual void run(); +public: // actually package-private + ::gnu::java::rmi::dgc::LeaseRenewingTask * __attribute__((aligned(__alignof__( ::java::util::TimerTask)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_dgc_LeaseRenewingTask$LeaseTimerTask__ diff --git a/libjava/gnu/java/rmi/dgc/LeaseRenewingTask.h b/libjava/gnu/java/rmi/dgc/LeaseRenewingTask.h new file mode 100644 index 00000000000..506bdcc14dd --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/LeaseRenewingTask.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_dgc_LeaseRenewingTask__ +#define __gnu_java_rmi_dgc_LeaseRenewingTask__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace dgc + { + class LeaseRenewingTask; + } + namespace server + { + class UnicastRef; + } + } + } + } + namespace java + { + namespace rmi + { + namespace dgc + { + class Lease; + } + } + } +} + +class gnu::java::rmi::dgc::LeaseRenewingTask : public ::java::lang::Object +{ + +public: + LeaseRenewingTask(::gnu::java::rmi::server::UnicastRef *); + static void scheduleLeases(::gnu::java::rmi::server::UnicastRef *); + virtual void schedule(::java::rmi::dgc::Lease *); + virtual void renew(); + virtual ::java::rmi::dgc::Lease * notifyDGC(::gnu::java::rmi::server::UnicastRef *); + static jlong REQUEST_LEASE_DURATION; +public: // actually package-private + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ref; + ::java::rmi::dgc::Lease * lease; + static ::java::util::Timer * timer; + static ::java::util::WeakHashMap * existingTasks; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_dgc_LeaseRenewingTask__ diff --git a/libjava/gnu/java/rmi/registry/RegistryImpl.h b/libjava/gnu/java/rmi/registry/RegistryImpl.h new file mode 100644 index 00000000000..d4ae0194564 --- /dev/null +++ b/libjava/gnu/java/rmi/registry/RegistryImpl.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_registry_RegistryImpl__ +#define __gnu_java_rmi_registry_RegistryImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace registry + { + class RegistryImpl; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace server + { + class RMIClientSocketFactory; + class RMIServerSocketFactory; + } + } + } +} + +class gnu::java::rmi::registry::RegistryImpl : public ::java::rmi::server::UnicastRemoteObject +{ + +public: + RegistryImpl(jint); + RegistryImpl(jint, ::java::rmi::server::RMIClientSocketFactory *, ::java::rmi::server::RMIServerSocketFactory *); + virtual ::java::rmi::Remote * lookup(::java::lang::String *); + virtual void bind(::java::lang::String *, ::java::rmi::Remote *); + virtual void unbind(::java::lang::String *); + virtual void rebind(::java::lang::String *, ::java::rmi::Remote *); + virtual JArray< ::java::lang::String * > * list(); + static void version(); + static void help(); + static void main(JArray< ::java::lang::String * > *); +private: + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::rmi::server::UnicastRemoteObject)))) bindings; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_registry_RegistryImpl__ diff --git a/libjava/gnu/java/rmi/registry/RegistryImpl_Skel.h b/libjava/gnu/java/rmi/registry/RegistryImpl_Skel.h new file mode 100644 index 00000000000..898d8e8887d --- /dev/null +++ b/libjava/gnu/java/rmi/registry/RegistryImpl_Skel.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_registry_RegistryImpl_Skel__ +#define __gnu_java_rmi_registry_RegistryImpl_Skel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace registry + { + class RegistryImpl_Skel; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace server + { + class Operation; + class RemoteCall; + } + } + } +} + +class gnu::java::rmi::registry::RegistryImpl_Skel : public ::java::lang::Object +{ + +public: + RegistryImpl_Skel(); + JArray< ::java::rmi::server::Operation * > * getOperations(); + void dispatch(::java::rmi::Remote *, ::java::rmi::server::RemoteCall *, jint, jlong); +private: + static const jlong interfaceHash = 4905912898345647071LL; + static JArray< ::java::rmi::server::Operation * > * operations; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_registry_RegistryImpl_Skel__ diff --git a/libjava/gnu/java/rmi/registry/RegistryImpl_Stub.h b/libjava/gnu/java/rmi/registry/RegistryImpl_Stub.h new file mode 100644 index 00000000000..89834426478 --- /dev/null +++ b/libjava/gnu/java/rmi/registry/RegistryImpl_Stub.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_registry_RegistryImpl_Stub__ +#define __gnu_java_rmi_registry_RegistryImpl_Stub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace registry + { + class RegistryImpl_Stub; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace server + { + class Operation; + class RemoteRef; + } + } + } +} + +class gnu::java::rmi::registry::RegistryImpl_Stub : public ::java::rmi::server::RemoteStub +{ + +public: + RegistryImpl_Stub(); + RegistryImpl_Stub(::java::rmi::server::RemoteRef *); + void bind(::java::lang::String *, ::java::rmi::Remote *); + JArray< ::java::lang::String * > * list(); + ::java::rmi::Remote * lookup(::java::lang::String *); + void rebind(::java::lang::String *, ::java::rmi::Remote *); + void unbind(::java::lang::String *); +private: + static const jlong serialVersionUID = 2LL; + static const jlong interfaceHash = 4905912898345647071LL; + static jboolean useNewInvoke; + static JArray< ::java::rmi::server::Operation * > * operations; + static ::java::lang::reflect::Method * $method_bind_0; + static ::java::lang::reflect::Method * $method_list_1; + static ::java::lang::reflect::Method * $method_lookup_2; + static ::java::lang::reflect::Method * $method_rebind_3; + static ::java::lang::reflect::Method * $method_unbind_4; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_registry_RegistryImpl_Stub__ diff --git a/libjava/gnu/java/rmi/rmic/Compile_gcj.java b/libjava/gnu/java/rmi/rmic/Compile_gcj.java deleted file mode 100644 index e22611bb3ad..00000000000 --- a/libjava/gnu/java/rmi/rmic/Compile_gcj.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (c) 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 gnu.java.rmi.rmic; - -/** Subclass of Compiler that can be used to invoke gcj. */ -public class Compile_gcj extends CompilerProcess -{ - private static final String [] COMPILER_ARGS = - { - "gcj", - "-C" - }; - - public String[] computeArguments (String filename) - { - return computeTypicalArguments(COMPILER_ARGS, - getClasspath(), - getDestination(), - filename); - } -} diff --git a/libjava/gnu/java/rmi/rmic/Compile_jikes.java b/libjava/gnu/java/rmi/rmic/Compile_jikes.java deleted file mode 100644 index e70b50c910b..00000000000 --- a/libjava/gnu/java/rmi/rmic/Compile_jikes.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - 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 gnu.java.rmi.rmic; - -/** Subclass of Compiler that can be used to invoke jikes. */ -public class Compile_jikes extends CompilerProcess -{ - /** Compiler arguments to invoke jikes */ - private static final String [] COMPILER_ARGS = - { - "jikes" - }; - - /** Compute the command line for the process. */ - public String[] computeArguments (String filename) - { - return computeTypicalArguments(COMPILER_ARGS, - getClasspath(), - getDestination(), - filename); - } -} diff --git a/libjava/gnu/java/rmi/rmic/Compile_kjc.java b/libjava/gnu/java/rmi/rmic/Compile_kjc.java deleted file mode 100644 index 79f1a845c36..00000000000 --- a/libjava/gnu/java/rmi/rmic/Compile_kjc.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - 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 gnu.java.rmi.rmic; - -/** Subclass of Compiler that can be used to invoke kjc. */ -public class Compile_kjc extends CompilerProcess -{ - /** Compiler arguments to invoke kjc */ - private static final String [] COMPILER_ARGS = - { - "kjc" - }; - - /** Compute the command line for the process. */ - public String[] computeArguments (String filename) - { - return computeTypicalArguments(COMPILER_ARGS, - getClasspath(), - getDestination(), - filename); - } -} diff --git a/libjava/gnu/java/rmi/rmic/Compiler.java b/libjava/gnu/java/rmi/rmic/Compiler.java deleted file mode 100644 index fc1f8464fa6..00000000000 --- a/libjava/gnu/java/rmi/rmic/Compiler.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - Copyright (c) 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 gnu.java.rmi.rmic; - -/** - * A Compiler object can be used to compile a .java file into a - * .class file. This is an abstract class; the - * getInstance() method is used to obtain the actual - * compiler object. - */ -public abstract class Compiler -{ - // Can't directly instantiate. - protected Compiler () - { - } - - /** Create a new compiler instance. */ - public static Compiler getInstance () - { - return getInstance (System.getProperty ("classpath.compiler", "gcj")); - } - - /** Create a new compiler instance given the name of the compiler. */ - public static Compiler getInstance (String name) - { - try - { - Class k = Class.forName (classPrefix + name); - return (Compiler) k.newInstance (); - } - catch (Throwable _) - { - } - return null; - } - - /** Get the directory where output files will be put. */ - public String getDestination () - { - return dest; - } - - /** Set the directory where output files will be put. */ - public void setDestination (String dest) - { - this.dest = dest; - } - - /** Get the classpath for compilation. */ - public String getClasspath () - { - return classpath; - } - - /** Set the classpath for compilation. */ - public void setClasspath (String classpath) - { - this.classpath = classpath; - } - - /** Compile the given file. Throws exception on error. */ - public abstract void compile (String name) throws Exception; - - /** The destination directory, or null if none set. */ - protected String dest; - - /** The classpath directory, or null if none set. */ - private String classpath; - - /** Class prefix used when trying to find instance. */ - private static final String classPrefix = "gnu.java.rmi.rmic.Compile_"; -} diff --git a/libjava/gnu/java/rmi/rmic/CompilerProcess.java b/libjava/gnu/java/rmi/rmic/CompilerProcess.java deleted file mode 100644 index d7b29987663..00000000000 --- a/libjava/gnu/java/rmi/rmic/CompilerProcess.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright (c) 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 gnu.java.rmi.rmic; - -import java.io.InputStream; - -/** - * Subclass of Compiler that can be subclassed to invoke a process to - * do its work. - */ -public abstract class CompilerProcess extends Compiler -{ - /** This is used to compute the command line for the process. */ - public abstract String[] computeArguments (String filename); - - /** - * This is used to compute the command line for the process. - * Most compilers typically arrange their arguments as in - * <compiler name and arguments> <optional destination> <filename>. - * This method builds an argument array out that. It should be used - * to define computeArguments for those compilers that follow the - * argument convention described above. - */ - public static String[] computeTypicalArguments(String[] compilerArgs, - String destination, String filename) - { - return computeTypicalArguments(compilerArgs, null, destination, filename); - } - /** - * This is used to compute the command line for the process. - * Most compilers typically arrange their arguments as in - * <compiler name and arguments> <optional destination> <filename>. - * This method builds an argument array out that. It should be used - * to define computeArguments for those compilers that follow the - * argument convention described above. - */ - public static String[] computeTypicalArguments(String[] compilerArgs, - String classpath, - String destination, - String filename) - { - /* length of compiler specific arguments */ - int len = compilerArgs.length; - - /* length of returned array of arguments */ - final int arglen = len + (classpath == null ? 0 : 2) + - (destination == null ? 0 : 2) + 1; - - /* Allocate String array for computed arguments. */ - String [] args = new String[arglen]; - - /* Fill in compiler arguments. */ - System.arraycopy(compilerArgs, 0, args, 0, len); - - /* Fill in classpath argument if necessary. */ - if (classpath != null) - { - args[len++] = "-classpath"; - args[len++] = classpath; - } - - /* Fill in destination argument if necessary. */ - if (destination != null) - { - args[len++] = "-d"; - args[len++] = destination; - } - - /* Fill in filename */ - args[arglen - 1] = filename; - - return args; - } - - public void compile (String name) throws Exception - { - String[] args = computeArguments (name); - Process p = Runtime.getRuntime ().exec (args); - - /* Print compiler output to System.out. Do this asynchronously so - that the compiler never blocks writing to its stdout. */ - { - final InputStream procin = p.getInputStream(); - final Thread copier = new Thread() - { - public void run() - { - try - { - for (int ch = procin.read(); ch != -1; ch = procin.read()) - System.out.print((char) ch); - } - catch (java.io.IOException _) - { - } - } - }; - - copier.start(); - } - - /* Collect compiler error output in a buffer. - * If compilation fails, it will be used for an error message. - */ - StringBuffer stderr = new StringBuffer(); - InputStream procerr = p.getErrorStream(); - for (int ch = procerr.read(); ch != -1; ch = procerr.read()) - stderr.append((char) ch); - - int result; - while (true) - { - try - { - result = p.waitFor (); - break; - } - catch (InterruptedException _) - { - } - } - if (result != 0) - { - // FIXME: wrong exception class. - throw new Exception ("compiler exited with status: " + result, - new RMICException(stderr.toString())); - } - } -} diff --git a/libjava/gnu/java/rmi/rmic/RMIC.java b/libjava/gnu/java/rmi/rmic/RMIC.java deleted file mode 100644 index 33ec9935b62..00000000000 --- a/libjava/gnu/java/rmi/rmic/RMIC.java +++ /dev/null @@ -1,1225 +0,0 @@ -/* RMIC.java -- - Copyright (c) 1996, 1997, 1998, 1999, 2001, 2002, 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 gnu.java.rmi.rmic; - -import gnu.java.rmi.server.RMIHashes; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLClassLoader; -import java.rmi.Remote; -import java.rmi.RemoteException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; -import java.util.StringTokenizer; - - -public class RMIC -{ - private String[] args; - private int next; - private Exception exception; - private boolean keep = false; - private boolean need11Stubs = true; - private boolean need12Stubs = true; - private boolean compile = true; - private boolean verbose; - private String destination; - private PrintWriter out; - private TabbedWriter ctrl; - private Class clazz; - private String classname; - private String fullclassname; - private String fullstubname; - private String fullskelname; - private MethodRef[] remotemethods; - private String stubname; - private String skelname; - private ClassLoader loader; - private String classpath; - private int errorCount = 0; - private List mRemoteInterfaces; - - public RMIC(String[] a) - { - args = a; - } - - public static void main(String[] args) - { - RMIC r = new RMIC(args); - if (r.run() == false) - { - Exception e = r.getException(); - if (e != null) - e.printStackTrace(); - else - System.exit(1); - } - } - - public boolean run() - { - parseOptions(); - if (next >= args.length) - error("no class names found"); - for (int i = next; i < args.length; i++) - { - try - { - if (verbose) - System.out.println("[Processing class " + args[i] + ".class]"); - processClass(args[i].replace(File.separatorChar, '.')); - } - catch (Exception e) - { - exception = e; - return (false); - } - } - return (true); - } - - private boolean processClass(String cls) throws Exception - { - // reset class specific vars - clazz = null; - classname = null; - fullclassname = null; - remotemethods = null; - stubname = null; - fullstubname = null; - skelname = null; - fullskelname = null; - mRemoteInterfaces = new ArrayList(); - - errorCount = 0; - - analyzeClass(cls); - - if (errorCount > 0) - System.exit(1); - generateStub(); - if (need11Stubs) - generateSkel(); - if (compile) - { - compile(fullstubname); - if (need11Stubs) - compile(fullskelname); - } - if (! keep) - { - (new File(fullstubname)).delete(); - if (need11Stubs) - (new File(fullskelname)).delete(); - } - return (true); - } - - private void analyzeClass(String cname) throws Exception - { - if (verbose) - System.out.println("[analyze class " + cname + "]"); - int p = cname.lastIndexOf('.'); - if (p != -1) - classname = cname.substring(p + 1); - else - classname = cname; - fullclassname = cname; - - findClass(); - findRemoteMethods(); - } - - public Exception getException() - { - return (exception); - } - - private void findClass() throws ClassNotFoundException - { - try - { - ClassLoader cl = (loader == null - ? ClassLoader.getSystemClassLoader() - : loader); - clazz = Class.forName(fullclassname, false, cl); - } - catch (ClassNotFoundException cnfe) - { - System.err.println(fullclassname + " not found in " + classpath); - throw new RuntimeException(cnfe); - } - - if (! Remote.class.isAssignableFrom(clazz)) - { - logError("Class " + clazz.getName() + " is not a remote object. " - + "It does not implement an interface that is a " - + "java.rmi.Remote-interface."); - throw new RuntimeException - ("Class " + clazz.getName() + " is not a remote object. " - + "It does not implement an interface that is a " - + "java.rmi.Remote-interface."); - } - } - - private void generateStub() throws IOException - { - stubname = fullclassname + "_Stub"; - String stubclassname = classname + "_Stub"; - fullstubname = (destination == null ? "" : destination + File.separator) - + stubname.replace('.', File.separatorChar) + ".java"; - File file = new File(fullstubname); - if (file.getParentFile() != null) - file.getParentFile().mkdirs(); - ctrl = - new TabbedWriter(new FileWriter(file)); - out = new PrintWriter(ctrl); - - if (verbose) - System.out.println("[Generating class " + stubname + ".java]"); - - out.println("// Stub class generated by rmic - DO NOT EDIT!"); - out.println(); - if (fullclassname != classname) - { - String pname = - fullclassname.substring(0, fullclassname.lastIndexOf('.')); - out.println("package " + pname + ";"); - out.println(); - } - - out.print("public final class " + stubclassname); - ctrl.indent(); - out.println("extends java.rmi.server.RemoteStub"); - - // Output interfaces we implement - out.print("implements "); - Iterator iter = mRemoteInterfaces.iterator(); - while (iter.hasNext()) - { - /* Print remote interface. */ - Class iface = (Class) iter.next(); - out.print(iface.getName()); - - /* Print ", " if more remote interfaces follow. */ - if (iter.hasNext()) - out.print(", "); - } - ctrl.unindent(); - out.print("{"); - ctrl.indent(); - - // UID - if (need12Stubs) - { - out.println("private static final long serialVersionUID = 2L;"); - out.println(); - } - - // InterfaceHash - don't know how to calculate this - XXX - if (need11Stubs) - { - out.println("private static final long interfaceHash = " - + RMIHashes.getInterfaceHash(clazz) + "L;"); - out.println(); - if (need12Stubs) - { - out.println("private static boolean useNewInvoke;"); - out.println(); - } - - // Operation table - out.print("private static final java.rmi.server.Operation[] operations = {"); - - ctrl.indent(); - for (int i = 0; i < remotemethods.length; i++) - { - Method m = remotemethods[i].meth; - out.print("new java.rmi.server.Operation(\""); - out.print(getPrettyName(m.getReturnType()) + " "); - out.print(m.getName() + "("); - // Output signature - Class[] sig = m.getParameterTypes(); - for (int j = 0; j < sig.length; j++) - { - out.print(getPrettyName(sig[j])); - if (j + 1 < sig.length) - out.print(", "); - } - out.print(")\")"); - if (i + 1 < remotemethods.length) - out.println(","); - } - ctrl.unindent(); - out.println("};"); - out.println(); - } - - // Set of method references. - if (need12Stubs) - { - for (int i = 0; i < remotemethods.length; i++) - { - Method m = remotemethods[i].meth; - out.println("private static java.lang.reflect.Method $method_" - + m.getName() + "_" + i + ";"); - } - - // Initialize the methods references. - out.println(); - out.print("static {"); - ctrl.indent(); - - out.print("try {"); - ctrl.indent(); - - if (need11Stubs) - { - out.println("java.rmi.server.RemoteRef.class.getMethod(\"invoke\", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class });"); - out.println("useNewInvoke = true;"); - } - - for (int i = 0; i < remotemethods.length; i++) - { - Method m = remotemethods[i].meth; - out.print("$method_" + m.getName() + "_" + i + " = "); - out.print(m.getDeclaringClass().getName() + ".class.getMethod(\"" - + m.getName() + "\""); - out.print(", new java.lang.Class[] {"); - // Output signature - Class[] sig = m.getParameterTypes(); - for (int j = 0; j < sig.length; j++) - { - out.print(getPrettyName(sig[j]) + ".class"); - if (j + 1 < sig.length) - out.print(", "); - } - out.println("});"); - } - ctrl.unindent(); - out.println("}"); - out.print("catch (java.lang.NoSuchMethodException e) {"); - ctrl.indent(); - if (need11Stubs) - out.print("useNewInvoke = false;"); - else - out.print("throw new java.lang.NoSuchMethodError(\"stub class initialization failed\");"); - - ctrl.unindent(); - out.print("}"); - - ctrl.unindent(); - out.println("}"); - out.println(); - } - - // Constructors - if (need11Stubs) - { - out.print("public " + stubclassname + "() {"); - ctrl.indent(); - out.print("super();"); - ctrl.unindent(); - out.println("}"); - } - - if (need12Stubs) - { - out.print("public " + stubclassname - + "(java.rmi.server.RemoteRef ref) {"); - ctrl.indent(); - out.print("super(ref);"); - ctrl.unindent(); - out.println("}"); - } - - // Method implementations - for (int i = 0; i < remotemethods.length; i++) - { - Method m = remotemethods[i].meth; - Class[] sig = m.getParameterTypes(); - Class returntype = m.getReturnType(); - Class[] except = sortExceptions(m.getExceptionTypes()); - - out.println(); - out.print("public " + getPrettyName(returntype) + " " + m.getName() - + "("); - for (int j = 0; j < sig.length; j++) - { - out.print(getPrettyName(sig[j])); - out.print(" $param_" + j); - if (j + 1 < sig.length) - out.print(", "); - } - out.print(") "); - out.print("throws "); - for (int j = 0; j < except.length; j++) - { - out.print(getPrettyName(except[j])); - if (j + 1 < except.length) - out.print(", "); - } - out.print(" {"); - ctrl.indent(); - - out.print("try {"); - ctrl.indent(); - - if (need12Stubs) - { - if (need11Stubs) - { - out.print("if (useNewInvoke) {"); - ctrl.indent(); - } - if (returntype != Void.TYPE) - out.print("java.lang.Object $result = "); - out.print("ref.invoke(this, $method_" + m.getName() + "_" + i - + ", "); - if (sig.length == 0) - out.print("null, "); - else - { - out.print("new java.lang.Object[] {"); - for (int j = 0; j < sig.length; j++) - { - if (sig[j] == Boolean.TYPE) - out.print("new java.lang.Boolean($param_" + j + ")"); - else if (sig[j] == Byte.TYPE) - out.print("new java.lang.Byte($param_" + j + ")"); - else if (sig[j] == Character.TYPE) - out.print("new java.lang.Character($param_" + j + ")"); - else if (sig[j] == Short.TYPE) - out.print("new java.lang.Short($param_" + j + ")"); - else if (sig[j] == Integer.TYPE) - out.print("new java.lang.Integer($param_" + j + ")"); - else if (sig[j] == Long.TYPE) - out.print("new java.lang.Long($param_" + j + ")"); - else if (sig[j] == Float.TYPE) - out.print("new java.lang.Float($param_" + j + ")"); - else if (sig[j] == Double.TYPE) - out.print("new java.lang.Double($param_" + j + ")"); - else - out.print("$param_" + j); - if (j + 1 < sig.length) - out.print(", "); - } - out.print("}, "); - } - out.print(Long.toString(remotemethods[i].hash) + "L"); - out.print(");"); - - if (returntype != Void.TYPE) - { - out.println(); - out.print("return ("); - if (returntype == Boolean.TYPE) - out.print("((java.lang.Boolean)$result).booleanValue()"); - else if (returntype == Byte.TYPE) - out.print("((java.lang.Byte)$result).byteValue()"); - else if (returntype == Character.TYPE) - out.print("((java.lang.Character)$result).charValue()"); - else if (returntype == Short.TYPE) - out.print("((java.lang.Short)$result).shortValue()"); - else if (returntype == Integer.TYPE) - out.print("((java.lang.Integer)$result).intValue()"); - else if (returntype == Long.TYPE) - out.print("((java.lang.Long)$result).longValue()"); - else if (returntype == Float.TYPE) - out.print("((java.lang.Float)$result).floatValue()"); - else if (returntype == Double.TYPE) - out.print("((java.lang.Double)$result).doubleValue()"); - else - out.print("(" + getPrettyName(returntype) + ")$result"); - out.print(");"); - } - - if (need11Stubs) - { - ctrl.unindent(); - out.println("}"); - out.print("else {"); - ctrl.indent(); - } - } - - if (need11Stubs) - { - out.println("java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, " - + i + ", interfaceHash);"); - out.print("try {"); - ctrl.indent(); - out.print("java.io.ObjectOutput out = call.getOutputStream();"); - for (int j = 0; j < sig.length; j++) - { - out.println(); - if (sig[j] == Boolean.TYPE) - out.print("out.writeBoolean("); - else if (sig[j] == Byte.TYPE) - out.print("out.writeByte("); - else if (sig[j] == Character.TYPE) - out.print("out.writeChar("); - else if (sig[j] == Short.TYPE) - out.print("out.writeShort("); - else if (sig[j] == Integer.TYPE) - out.print("out.writeInt("); - else if (sig[j] == Long.TYPE) - out.print("out.writeLong("); - else if (sig[j] == Float.TYPE) - out.print("out.writeFloat("); - else if (sig[j] == Double.TYPE) - out.print("out.writeDouble("); - else - out.print("out.writeObject("); - out.print("$param_" + j + ");"); - } - ctrl.unindent(); - out.println("}"); - out.print("catch (java.io.IOException e) {"); - ctrl.indent(); - out.print("throw new java.rmi.MarshalException(\"error marshalling arguments\", e);"); - ctrl.unindent(); - out.println("}"); - out.println("ref.invoke(call);"); - if (returntype != Void.TYPE) - out.println(getPrettyName(returntype) + " $result;"); - out.print("try {"); - ctrl.indent(); - out.print("java.io.ObjectInput in = call.getInputStream();"); - boolean needcastcheck = false; - if (returntype != Void.TYPE) - { - out.println(); - out.print("$result = "); - if (returntype == Boolean.TYPE) - out.print("in.readBoolean();"); - else if (returntype == Byte.TYPE) - out.print("in.readByte();"); - else if (returntype == Character.TYPE) - out.print("in.readChar();"); - else if (returntype == Short.TYPE) - out.print("in.readShort();"); - else if (returntype == Integer.TYPE) - out.print("in.readInt();"); - else if (returntype == Long.TYPE) - out.print("in.readLong();"); - else if (returntype == Float.TYPE) - out.print("in.readFloat();"); - else if (returntype == Double.TYPE) - out.print("in.readDouble();"); - else - { - if (returntype != Object.class) - out.print("(" + getPrettyName(returntype) + ")"); - else - needcastcheck = true; - out.print("in.readObject();"); - } - out.println(); - out.print("return ($result);"); - } - ctrl.unindent(); - out.println("}"); - out.print("catch (java.io.IOException e) {"); - ctrl.indent(); - out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling return\", e);"); - ctrl.unindent(); - out.println("}"); - if (needcastcheck) - { - out.print("catch (java.lang.ClassNotFoundException e) {"); - ctrl.indent(); - out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling return\", e);"); - ctrl.unindent(); - out.println("}"); - } - out.print("finally {"); - ctrl.indent(); - out.print("ref.done(call);"); - ctrl.unindent(); - out.print("}"); - - if (need12Stubs && need11Stubs) - { - ctrl.unindent(); - out.print("}"); - } - } - - ctrl.unindent(); - out.print("}"); - - boolean needgeneral = true; - for (int j = 0; j < except.length; j++) - { - out.println(); - out.print("catch (" + getPrettyName(except[j]) + " e) {"); - ctrl.indent(); - out.print("throw e;"); - ctrl.unindent(); - out.print("}"); - if (except[j] == Exception.class) - needgeneral = false; - } - if (needgeneral) - { - out.println(); - out.print("catch (java.lang.Exception e) {"); - ctrl.indent(); - out.print("throw new java.rmi.UnexpectedException(\"undeclared checked exception\", e);"); - ctrl.unindent(); - out.print("}"); - } - - ctrl.unindent(); - out.print("}"); - out.println(); - } - - ctrl.unindent(); - out.println("}"); - - out.close(); - } - - private void generateSkel() throws IOException - { - skelname = fullclassname + "_Skel"; - String skelclassname = classname + "_Skel"; - fullskelname = (destination == null ? "" : destination + File.separator) - + skelname.replace('.', File.separatorChar) + ".java"; - File file = new File(fullskelname); - if (file.getParentFile() != null) - file.getParentFile().mkdirs(); - ctrl = - new TabbedWriter(new FileWriter(file)); - out = new PrintWriter(ctrl); - - if (verbose) - System.out.println("[Generating class " + skelname + ".java]"); - - out.println("// Skel class generated by rmic - DO NOT EDIT!"); - out.println(); - if (fullclassname != classname) - { - String pname = - fullclassname.substring(0, fullclassname.lastIndexOf('.')); - out.println("package " + pname + ";"); - out.println(); - } - - out.print("public final class " + skelclassname); - ctrl.indent(); - - // Output interfaces we implement - out.print("implements java.rmi.server.Skeleton"); - - ctrl.unindent(); - out.print("{"); - ctrl.indent(); - - // Interface hash - don't know how to calculate this - XXX - out.println("private static final long interfaceHash = " - + RMIHashes.getInterfaceHash(clazz) + "L;"); - out.println(); - - // Operation table - out.print("private static final java.rmi.server.Operation[] operations = {"); - - ctrl.indent(); - for (int i = 0; i < remotemethods.length; i++) - { - Method m = remotemethods[i].meth; - out.print("new java.rmi.server.Operation(\""); - out.print(getPrettyName(m.getReturnType()) + " "); - out.print(m.getName() + "("); - // Output signature - Class[] sig = m.getParameterTypes(); - for (int j = 0; j < sig.length; j++) - { - out.print(getPrettyName(sig[j])); - if (j + 1 < sig.length) - out.print(", "); - } - out.print("\")"); - if (i + 1 < remotemethods.length) - out.println(","); - } - ctrl.unindent(); - out.println("};"); - - out.println(); - - // getOperations method - out.print("public java.rmi.server.Operation[] getOperations() {"); - ctrl.indent(); - out.print("return ((java.rmi.server.Operation[]) operations.clone());"); - ctrl.unindent(); - out.println("}"); - - out.println(); - - // Dispatch method - out.print("public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception {"); - ctrl.indent(); - - out.print("if (opnum < 0) {"); - ctrl.indent(); - - for (int i = 0; i < remotemethods.length; i++) - { - out.print("if (hash == " + Long.toString(remotemethods[i].hash) - + "L) {"); - ctrl.indent(); - out.print("opnum = " + i + ";"); - ctrl.unindent(); - out.println("}"); - out.print("else "); - } - out.print("{"); - ctrl.indent(); - out.print("throw new java.rmi.server.SkeletonMismatchException(\"interface hash mismatch\");"); - ctrl.unindent(); - out.print("}"); - - ctrl.unindent(); - out.println("}"); - out.print("else if (hash != interfaceHash) {"); - ctrl.indent(); - out.print("throw new java.rmi.server.SkeletonMismatchException(\"interface hash mismatch\");"); - ctrl.unindent(); - out.println("}"); - - out.println(); - - out.println(fullclassname + " server = (" + fullclassname + ")obj;"); - out.println("switch (opnum) {"); - - // Method dispatch - for (int i = 0; i < remotemethods.length; i++) - { - Method m = remotemethods[i].meth; - out.println("case " + i + ":"); - out.print("{"); - ctrl.indent(); - - Class[] sig = m.getParameterTypes(); - for (int j = 0; j < sig.length; j++) - { - out.print(getPrettyName(sig[j])); - out.println(" $param_" + j + ";"); - } - - out.print("try {"); - boolean needcastcheck = false; - ctrl.indent(); - out.println("java.io.ObjectInput in = call.getInputStream();"); - for (int j = 0; j < sig.length; j++) - { - out.print("$param_" + j + " = "); - if (sig[j] == Boolean.TYPE) - out.print("in.readBoolean();"); - else if (sig[j] == Byte.TYPE) - out.print("in.readByte();"); - else if (sig[j] == Character.TYPE) - out.print("in.readChar();"); - else if (sig[j] == Short.TYPE) - out.print("in.readShort();"); - else if (sig[j] == Integer.TYPE) - out.print("in.readInt();"); - else if (sig[j] == Long.TYPE) - out.print("in.readLong();"); - else if (sig[j] == Float.TYPE) - out.print("in.readFloat();"); - else if (sig[j] == Double.TYPE) - out.print("in.readDouble();"); - else - { - if (sig[j] != Object.class) - { - out.print("(" + getPrettyName(sig[j]) + ")"); - needcastcheck = true; - } - out.print("in.readObject();"); - } - out.println(); - } - ctrl.unindent(); - out.println("}"); - out.print("catch (java.io.IOException e) {"); - ctrl.indent(); - out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling arguments\", e);"); - ctrl.unindent(); - out.println("}"); - if (needcastcheck) - { - out.print("catch (java.lang.ClassCastException e) {"); - ctrl.indent(); - out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling arguments\", e);"); - ctrl.unindent(); - out.println("}"); - } - out.print("finally {"); - ctrl.indent(); - out.print("call.releaseInputStream();"); - ctrl.unindent(); - out.println("}"); - - Class returntype = m.getReturnType(); - if (returntype != Void.TYPE) - out.print(getPrettyName(returntype) + " $result = "); - out.print("server." + m.getName() + "("); - for (int j = 0; j < sig.length; j++) - { - out.print("$param_" + j); - if (j + 1 < sig.length) - out.print(", "); - } - out.println(");"); - - out.print("try {"); - ctrl.indent(); - out.print("java.io.ObjectOutput out = call.getResultStream(true);"); - if (returntype != Void.TYPE) - { - out.println(); - if (returntype == Boolean.TYPE) - out.print("out.writeBoolean($result);"); - else if (returntype == Byte.TYPE) - out.print("out.writeByte($result);"); - else if (returntype == Character.TYPE) - out.print("out.writeChar($result);"); - else if (returntype == Short.TYPE) - out.print("out.writeShort($result);"); - else if (returntype == Integer.TYPE) - out.print("out.writeInt($result);"); - else if (returntype == Long.TYPE) - out.print("out.writeLong($result);"); - else if (returntype == Float.TYPE) - out.print("out.writeFloat($result);"); - else if (returntype == Double.TYPE) - out.print("out.writeDouble($result);"); - else - out.print("out.writeObject($result);"); - } - ctrl.unindent(); - out.println("}"); - out.print("catch (java.io.IOException e) {"); - ctrl.indent(); - out.print("throw new java.rmi.MarshalException(\"error marshalling return\", e);"); - ctrl.unindent(); - out.println("}"); - out.print("break;"); - - ctrl.unindent(); - out.println("}"); - out.println(); - } - - out.print("default:"); - ctrl.indent(); - out.print("throw new java.rmi.UnmarshalException(\"invalid method number\");"); - ctrl.unindent(); - out.print("}"); - - ctrl.unindent(); - out.print("}"); - - ctrl.unindent(); - out.println("}"); - - out.close(); - } - - private void compile(String name) throws Exception - { - Compiler comp = Compiler.getInstance(); - if (verbose) - System.out.println("[Compiling class " + name + "]"); - comp.setDestination(destination); - if (classpath != null) - comp.setClasspath(classpath); - comp.compile(name); - } - - private static String getPrettyName(Class cls) - { - StringBuffer str = new StringBuffer(); - for (int count = 0;; count++) - { - if (! cls.isArray()) - { - str.append(cls.getName()); - for (; count > 0; count--) - str.append("[]"); - return (str.toString()); - } - cls = cls.getComponentType(); - } - } - -/** - * Sort exceptions so the most general go last. - */ - private Class[] sortExceptions(Class[] except) - { - for (int i = 0; i < except.length; i++) - { - for (int j = i + 1; j < except.length; j++) - { - if (except[i].isAssignableFrom(except[j])) - { - Class tmp = except[i]; - except[i] = except[j]; - except[j] = tmp; - } - } - } - return (except); - } - -/** - * Process the options until we find the first argument. - */ - private void parseOptions() - { - for (;;) - { - if (next >= args.length || args[next].charAt(0) != '-') - break; - String arg = args[next]; - next++; - - // Accept `--' options if they look long enough. - if (arg.length() > 3 && arg.charAt(0) == '-' && arg.charAt(1) == '-') - arg = arg.substring(1); - - if (arg.equals("-keep")) - keep = true; - else if (arg.equals("-keepgenerated")) - keep = true; - else if (arg.equals("-v1.1")) - { - need11Stubs = true; - need12Stubs = false; - } - else if (arg.equals("-vcompat")) - { - need11Stubs = true; - need12Stubs = true; - } - else if (arg.equals("-v1.2")) - { - need11Stubs = false; - need12Stubs = true; - } - else if (arg.equals("-g")) - { - } - else if (arg.equals("-depend")) - { - } - else if (arg.equals("-nowarn")) - { - } - else if (arg.equals("-verbose")) - verbose = true; - else if (arg.equals("-nocompile")) - compile = false; - else if (arg.equals("-classpath")) - { - classpath = args[next]; - next++; - StringTokenizer st = - new StringTokenizer(classpath, File.pathSeparator); - URL[] u = new URL[st.countTokens()]; - for (int i = 0; i < u.length; i++) - { - String path = st.nextToken(); - File f = new File(path); - try - { - u[i] = f.toURL(); - } - catch (MalformedURLException mue) - { - error("malformed classpath component " + path); - } - } - loader = new URLClassLoader(u); - } - else if (arg.equals("-help")) - usage(); - else if (arg.equals("-version")) - { - System.out.println("rmic (" + System.getProperty("java.vm.name") - + ") " + System.getProperty("java.vm.version")); - System.out.println(); - System.out.println("Copyright 2006 Free Software Foundation, Inc."); - System.out.println("This is free software; see the source for copying conditions. There is NO"); - System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); - System.exit(0); - } - else if (arg.equals("-d")) - { - destination = args[next]; - next++; - } - else if (arg.charAt(1) == 'J') - { - } - else - error("unrecognized option `" + arg + "'"); - } - } - - private void findRemoteMethods() { - List rmeths = new ArrayList(); - for (Class cur = clazz; cur != null; cur = cur.getSuperclass()) - { - Class[] interfaces = cur.getInterfaces(); - for (int i = 0; i < interfaces.length; i++) - { - if (java.rmi.Remote.class.isAssignableFrom(interfaces[i])) - { - Class remoteInterface = interfaces[i]; - if (verbose) - System.out.println - ("[implements " + remoteInterface.getName() + "]"); - - // check if the methods declare RemoteExceptions - Method[] meths = remoteInterface.getMethods(); - for (int j = 0; j < meths.length; j++) - { - Method m = meths[j]; - Class[] exs = m.getExceptionTypes(); - - boolean throwsRemote = false; - for (int k = 0; k < exs.length; k++) - { - if (exs[k].isAssignableFrom(RemoteException.class)) - throwsRemote = true; - } - - if (! throwsRemote) - { - logError("Method " + m - + " does not throw a RemoteException"); - continue; - } - - rmeths.add(m); - } - - mRemoteInterfaces.add(remoteInterface); - } - } - } - - // intersect exceptions for doubly inherited methods - boolean[] skip = new boolean[rmeths.size()]; - for (int i = 0; i < skip.length; i++) - skip[i] = false; - List methrefs = new ArrayList(); - for (int i = 0; i < rmeths.size(); i++) - { - if (skip[i]) continue; - Method current = (Method) rmeths.get(i); - MethodRef ref = new MethodRef(current); - for (int j = i+1; j < rmeths.size(); j++) - { - Method other = (Method) rmeths.get(j); - if (ref.isMatch(other)) - { - ref.intersectExceptions(other); - skip[j] = true; - } - } - methrefs.add(ref); - } - - // Convert into a MethodRef array and sort them - remotemethods = (MethodRef[]) - methrefs.toArray(new MethodRef[methrefs.size()]); - Arrays.sort(remotemethods); - } - -/** - * Prints an error to System.err and increases the error count. - * @param theError - */ - private void logError(String theError) - { - errorCount++; - System.err.println("error:" + theError); - } - - private static void error(String message) - { - System.err.println("rmic: " + message); - System.err.println("Try `rmic --help' for more information."); - System.exit(1); - } - - private static void usage() - { - System.out.println("Usage: rmic [OPTION]... CLASS...\n" + "\n" - + " -keep Don't delete any intermediate files\n" - + " -keepgenerated Same as -keep\n" - + " -v1.1 Java 1.1 style stubs only\n" - + " -vcompat Java 1.1 & Java 1.2 stubs\n" - + " -v1.2 Java 1.2 style stubs only\n" - + " -g * Generated debugging information\n" - + " -depend * Recompile out-of-date files\n" - + " -nowarn * Suppress warning messages\n" - + " -nocompile Don't compile the generated files\n" - + " -verbose Output what's going on\n" - + " -classpath * Use given path as classpath\n" - + " -d Specify where to place generated classes\n" - + " -J * Pass flag to Java\n" - + " -help Print this help, then exit\n" - + " -version Print version number, then exit\n" + "\n" - + " * Option currently ignored\n" - + "Long options can be used with `--option' form as well."); - System.exit(0); - } - - private static class MethodRef - implements Comparable - { - Method meth; - long hash; - List exceptions; - private String sig; - - MethodRef(Method m) - { - meth = m; - sig = m.getName(); // XXX should be full signature used to compute hash - hash = RMIHashes.getMethodHash(m); - // add exceptions removing subclasses - exceptions = removeSubclasses(m.getExceptionTypes()); - } - - public int compareTo(Object obj) - { - MethodRef that = (MethodRef) obj; - int name = this.meth.getName().compareTo(that.meth.getName()); - if (name == 0) { - return this.sig.compareTo(that.sig); - } - return name; - } - - public boolean isMatch(Method m) - { - if (!meth.getName().equals(m.getName())) - return false; - - Class[] params1 = meth.getParameterTypes(); - Class[] params2 = m.getParameterTypes(); - if (params1.length != params2.length) - return false; - - for (int i = 0; i < params1.length; i++) - if (!params1[i].equals(params2[i])) return false; - - return true; - } - - private static List removeSubclasses(Class[] classes) - { - List list = new ArrayList(); - for (int i = 0; i < classes.length; i++) - { - Class candidate = classes[i]; - boolean add = true; - for (int j = 0; j < classes.length; j++) - { - if (classes[j].equals(candidate)) - continue; - else if (classes[j].isAssignableFrom(candidate)) - add = false; - } - if (add) list.add(candidate); - } - - return list; - } - - public void intersectExceptions(Method m) - { - List incoming = removeSubclasses(m.getExceptionTypes()); - - List updated = new ArrayList(); - - for (int i = 0; i < exceptions.size(); i++) - { - Class outer = (Class) exceptions.get(i); - boolean addOuter = false; - for (int j = 0; j < incoming.size(); j++) - { - Class inner = (Class) incoming.get(j); - - if (inner.equals(outer) || inner.isAssignableFrom(outer)) - addOuter = true; - else if (outer.isAssignableFrom(inner)) - updated.add(inner); - } - - if (addOuter) - updated.add(outer); - } - - exceptions = updated; - } - } -} diff --git a/libjava/gnu/java/rmi/rmic/RMICException.java b/libjava/gnu/java/rmi/rmic/RMICException.java deleted file mode 100644 index 8d0387e07af..00000000000 --- a/libjava/gnu/java/rmi/rmic/RMICException.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - 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 gnu.java.rmi.rmic; - -/** - * Thrown by the underlying compiler used by RMIC when it fails to compile a file. - * - * @author Dalibor Topic - */ - -public class RMICException extends Exception { - /** - * Create an exception with a message. The cause remains uninitialized. - * - * @param s the message string - * @see #initCause(Throwable) - */ - public RMICException(String message) { - super(message); - } - - /** - * Create an exception with a message and a cause. - * - * @param s the message string - * @param cause the cause of this exception - */ - public RMICException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/libjava/gnu/java/rmi/rmic/TabbedWriter.java b/libjava/gnu/java/rmi/rmic/TabbedWriter.java deleted file mode 100644 index 31107a5756e..00000000000 --- a/libjava/gnu/java/rmi/rmic/TabbedWriter.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (c) 1996, 1997, 1998, 1999 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 gnu.java.rmi.rmic; - -import java.io.FilterWriter; -import java.io.Writer; -import java.io.IOException; - -public class TabbedWriter - extends FilterWriter { - -private static final String defaultTabstring = " "; -private char[] tabstring; -private int tabs; - -public TabbedWriter(Writer o) { - this(o, defaultTabstring); -} - -public TabbedWriter(Writer o, String str) { - super(o); - tabs = 0; - tabstring = str.toCharArray(); -} - -public void write(int c) throws IOException { - out.write(c); - if (c == '\n') { - for (int i = 0; i < tabs; i++) { - out.write(tabstring, 0, tabstring.length); - } - } -} - -public void write(char cbuf[], int off, int len) throws IOException { - for (int i = 0; i < len; i++) { - write((int)cbuf[i+off]); - } -} - -public void write(String str, int off, int len) throws IOException { - write(str.toCharArray(), off, len); -} - -public void unindent() throws IOException { - unindent(1); -} - -public void unindent(int nr) throws IOException { - indent(-nr); -} - -public void indent() throws IOException { - indent(1); -} - -public void indent(int nr) throws IOException { - tabs += nr; - if (tabs < 0) { - tabs = 0; - } - write((int)'\n'); -} - -} diff --git a/libjava/gnu/java/rmi/server/ActivatableRef.h b/libjava/gnu/java/rmi/server/ActivatableRef.h new file mode 100644 index 00000000000..6a9025ae76b --- /dev/null +++ b/libjava/gnu/java/rmi/server/ActivatableRef.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_ActivatableRef__ +#define __gnu_java_rmi_server_ActivatableRef__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class ActivatableRef; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace activation + { + class ActivationID; + } + namespace server + { + class ObjID; + class RMIClientSocketFactory; + } + } + } +} + +class gnu::java::rmi::server::ActivatableRef : public ::gnu::java::rmi::server::UnicastRef +{ + +public: + ActivatableRef(); + ActivatableRef(::java::rmi::server::ObjID *, ::java::lang::String *, jint, ::java::rmi::server::RMIClientSocketFactory *); + ActivatableRef(::java::rmi::server::ObjID *); + virtual ::java::lang::String * getRefClass(::java::io::ObjectOutput *); + virtual void readExternal(::java::io::ObjectInput *); + virtual void writeExternal(::java::io::ObjectOutput *); +public: // actually protected + virtual ::java::lang::Object * invokeCommon(::java::rmi::Remote *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *, jint, jlong); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::java::rmi::activation::ActivationID * __attribute__((aligned(__alignof__( ::gnu::java::rmi::server::UnicastRef)))) actId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_ActivatableRef__ diff --git a/libjava/gnu/java/rmi/server/ActivatableServerRef.h b/libjava/gnu/java/rmi/server/ActivatableServerRef.h new file mode 100644 index 00000000000..5241331e966 --- /dev/null +++ b/libjava/gnu/java/rmi/server/ActivatableServerRef.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_ActivatableServerRef__ +#define __gnu_java_rmi_server_ActivatableServerRef__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class ActivatableServerRef; + class UnicastConnection; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace activation + { + class ActivationID; + } + namespace server + { + class ObjID; + class RMIServerSocketFactory; + } + } + } +} + +class gnu::java::rmi::server::ActivatableServerRef : public ::gnu::java::rmi::server::UnicastServerRef +{ + +public: + ActivatableServerRef(); + ActivatableServerRef(::java::rmi::server::ObjID *, ::java::rmi::activation::ActivationID *, jint, ::java::rmi::server::RMIServerSocketFactory *); + virtual void inactivate(); +public: // actually protected + virtual void activate(); +public: + virtual ::java::lang::Object * incomingMessageCall(::gnu::java::rmi::server::UnicastConnection *, jint, jlong); + virtual ::java::rmi::Remote * exportObject(::java::rmi::Remote *); + virtual ::java::rmi::Remote * exportClass(::java::lang::Class *); + virtual ::java::lang::String * getRefClass(::java::io::ObjectOutput *); + virtual void readExternal(::java::io::ObjectInput *); + virtual void writeExternal(::java::io::ObjectOutput *); +private: + static const jlong serialVersionUID = 1LL; +public: + ::java::rmi::activation::ActivationID * __attribute__((aligned(__alignof__( ::gnu::java::rmi::server::UnicastServerRef)))) actId; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_ActivatableServerRef__ diff --git a/libjava/gnu/java/rmi/server/CombinedClassLoader.h b/libjava/gnu/java/rmi/server/CombinedClassLoader.h new file mode 100644 index 00000000000..5d4c6c9e624 --- /dev/null +++ b/libjava/gnu/java/rmi/server/CombinedClassLoader.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_CombinedClassLoader__ +#define __gnu_java_rmi_server_CombinedClassLoader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class CombinedClassLoader; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::rmi::server::CombinedClassLoader : public ::java::lang::ClassLoader +{ + +public: + CombinedClassLoader(::java::util::Collection *); +public: // actually protected + virtual ::java::lang::Class * findClass(::java::lang::String *); + virtual ::java::net::URL * findResource(::java::lang::String *); + virtual ::java::util::Enumeration * findResources(::java::lang::String *); +public: // actually package-private + JArray< ::java::lang::ClassLoader * > * __attribute__((aligned(__alignof__( ::java::lang::ClassLoader)))) loaders; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_CombinedClassLoader__ diff --git a/libjava/gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h b/libjava/gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h new file mode 100644 index 00000000000..9b98afc9e13 --- /dev/null +++ b/libjava/gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_ConnectionRunnerPool$ConnectionRunner__ +#define __gnu_java_rmi_server_ConnectionRunnerPool$ConnectionRunner__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class ConnectionRunnerPool$ConnectionRunner; + class UnicastConnection; + } + } + } + } +} + +class gnu::java::rmi::server::ConnectionRunnerPool$ConnectionRunner : public ::java::lang::Thread +{ + +public: + ConnectionRunnerPool$ConnectionRunner(::java::lang::ThreadGroup *, ::java::lang::String *); + virtual void run(); + virtual void dispatch(::gnu::java::rmi::server::UnicastConnection *); +public: // actually package-private + virtual void exit(); +private: + ::gnu::java::rmi::server::UnicastConnection * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) conn; + volatile jboolean exiting; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_ConnectionRunnerPool$ConnectionRunner__ diff --git a/libjava/gnu/java/rmi/server/ConnectionRunnerPool.h b/libjava/gnu/java/rmi/server/ConnectionRunnerPool.h new file mode 100644 index 00000000000..eccfb38360b --- /dev/null +++ b/libjava/gnu/java/rmi/server/ConnectionRunnerPool.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_ConnectionRunnerPool__ +#define __gnu_java_rmi_server_ConnectionRunnerPool__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class ConnectionRunnerPool; + class ConnectionRunnerPool$ConnectionRunner; + class UnicastConnection; + } + } + } + } +} + +class gnu::java::rmi::server::ConnectionRunnerPool : public ::java::lang::Object +{ + +public: // actually package-private + ConnectionRunnerPool(); +public: + static void setSize(jint); + static void setMaxSize(jint); +private: + static ::gnu::java::rmi::server::ConnectionRunnerPool$ConnectionRunner * getConnectionRunner(); +public: + static void dispatchConnection(::gnu::java::rmi::server::UnicastConnection *); + static void exit(); +private: + static jint size; + static jint max_size; +public: // actually package-private + static ::java::util::ArrayList * freelist; +private: + static ::java::lang::ThreadGroup * group; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_ConnectionRunnerPool__ diff --git a/libjava/gnu/java/rmi/server/ProtocolConstants.h b/libjava/gnu/java/rmi/server/ProtocolConstants.h new file mode 100644 index 00000000000..d9b08e7f9df --- /dev/null +++ b/libjava/gnu/java/rmi/server/ProtocolConstants.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_ProtocolConstants__ +#define __gnu_java_rmi_server_ProtocolConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class ProtocolConstants; + } + } + } + } +} + +class gnu::java::rmi::server::ProtocolConstants : public ::java::lang::Object +{ + +public: + static const jint PROTOCOL_HEADER = 1246907721; + static const jint PROTOCOL_VERSION = 2; + static const jint STREAM_PROTOCOL = 75; + static const jint SINGLE_OP_PROTOCOL = 76; + static const jint MULTIPLEX_PROTOCOL = 77; + static const jint PROTOCOL_ACK = 78; + static const jint PROTOCOL_NACK = 79; + static const jint MESSAGE_CALL = 80; + static const jint MESSAGE_CALL_ACK = 81; + static const jint MESSAGE_PING = 82; + static const jint MESSAGE_PING_ACK = 83; + static const jint MESSAGE_DGCACK = 84; + static const jint RETURN_ACK = 1; + static const jint RETURN_NACK = 2; + static const jint DEFAULT_PROTOCOL = 75; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_rmi_server_ProtocolConstants__ diff --git a/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.h b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.h new file mode 100644 index 00000000000..4afe1703993 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIClassLoaderImpl$CacheKey__ +#define __gnu_java_rmi_server_RMIClassLoaderImpl$CacheKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIClassLoaderImpl$CacheKey; + } + } + } + } +} + +class gnu::java::rmi::server::RMIClassLoaderImpl$CacheKey : public ::java::lang::Object +{ + +public: + RMIClassLoaderImpl$CacheKey(::java::lang::String *, ::java::lang::ClassLoader *); + virtual jboolean equals(::java::lang::Object *); +private: + jboolean equals(::java::lang::Object *, ::java::lang::Object *); +public: + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mCodeBase; + ::java::lang::ClassLoader * mContextClassLoader; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIClassLoaderImpl$CacheKey__ diff --git a/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h new file mode 100644 index 00000000000..b1078ffb464 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIClassLoaderImpl$MyClassLoader__ +#define __gnu_java_rmi_server_RMIClassLoaderImpl$MyClassLoader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIClassLoaderImpl$MyClassLoader; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } +} + +class gnu::java::rmi::server::RMIClassLoaderImpl$MyClassLoader : public ::java::net::URLClassLoader +{ + +public: // actually package-private + RMIClassLoaderImpl$MyClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *, ::java::lang::String *); +private: + RMIClassLoaderImpl$MyClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *); +public: + static ::java::lang::String * urlToAnnotation(JArray< ::java::net::URL * > *); + virtual ::java::lang::String * getClassAnnotation(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader)))) annotation; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIClassLoaderImpl$MyClassLoader__ diff --git a/libjava/gnu/java/rmi/server/RMIClassLoaderImpl.h b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl.h new file mode 100644 index 00000000000..abcb8fc6981 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIClassLoaderImpl__ +#define __gnu_java_rmi_server_RMIClassLoaderImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIClassLoaderImpl; + class RMIClassLoaderImpl$MyClassLoader; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace rmi + { + namespace server + { + class RMIClassLoaderSpi; + } + } + } +} + +class gnu::java::rmi::server::RMIClassLoaderImpl : public ::java::rmi::server::RMIClassLoaderSpi +{ + + RMIClassLoaderImpl(); +public: + static ::java::rmi::server::RMIClassLoaderSpi * getInstance(); + virtual ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *); + virtual ::java::lang::Class * loadProxyClass(::java::lang::String *, JArray< ::java::lang::String * > *, ::java::lang::ClassLoader *); + virtual ::java::lang::ClassLoader * getClassLoader(::java::lang::String *); + virtual ::java::lang::String * getClassAnnotation(::java::lang::Class *); +private: + static ::gnu::java::rmi::server::RMIClassLoaderImpl * instance; + static ::java::util::Map * cacheLoaders; + static ::java::util::Map * cacheAnnotations; + static ::gnu::java::rmi::server::RMIClassLoaderImpl$MyClassLoader * defaultClassLoader; + static ::java::lang::String * defaultAnnotation; + static ::java::net::URL * defaultCodebase; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIClassLoaderImpl__ diff --git a/libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.h b/libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.h new file mode 100644 index 00000000000..32da2951278 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIDefaultSocketFactory__ +#define __gnu_java_rmi_server_RMIDefaultSocketFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIDefaultSocketFactory; + } + } + } + } + namespace java + { + namespace net + { + class ServerSocket; + class Socket; + } + } +} + +class gnu::java::rmi::server::RMIDefaultSocketFactory : public ::java::rmi::server::RMISocketFactory +{ + +public: + RMIDefaultSocketFactory(); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint); + virtual ::java::net::ServerSocket * createServerSocket(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIDefaultSocketFactory__ diff --git a/libjava/gnu/java/rmi/server/RMIHashes.h b/libjava/gnu/java/rmi/server/RMIHashes.h new file mode 100644 index 00000000000..0bb00ec1159 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIHashes.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIHashes__ +#define __gnu_java_rmi_server_RMIHashes__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIHashes; + } + } + } + } +} + +class gnu::java::rmi::server::RMIHashes : public ::java::lang::Object +{ + +public: + RMIHashes(); + static jlong getMethodHash(::java::lang::reflect::Method *); + static jlong getInterfaceHash(::java::lang::Class *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIHashes__ diff --git a/libjava/gnu/java/rmi/server/RMIIncomingThread.h b/libjava/gnu/java/rmi/server/RMIIncomingThread.h new file mode 100644 index 00000000000..5938877f22a --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIIncomingThread.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIIncomingThread__ +#define __gnu_java_rmi_server_RMIIncomingThread__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIIncomingThread; + } + } + } + } +} + +class gnu::java::rmi::server::RMIIncomingThread : public ::java::lang::Thread +{ + +public: + RMIIncomingThread(::java::lang::Runnable *, ::java::lang::String *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * getClientHost(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) clientHost; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIIncomingThread__ diff --git a/libjava/gnu/java/rmi/server/RMIObjectInputStream.h b/libjava/gnu/java/rmi/server/RMIObjectInputStream.h new file mode 100644 index 00000000000..3af69a2889b --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIObjectInputStream.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIObjectInputStream__ +#define __gnu_java_rmi_server_RMIObjectInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIObjectInputStream; + } + } + } + } +} + +class gnu::java::rmi::server::RMIObjectInputStream : public ::java::io::ObjectInputStream +{ + +public: + RMIObjectInputStream(::java::io::InputStream *); +public: // actually protected + virtual ::java::lang::Class * resolveClass(::java::io::ObjectStreamClass *); + virtual ::java::lang::Object * getAnnotation(); + virtual ::java::lang::Class * resolveProxyClass(JArray< ::java::lang::String * > *); + virtual ::java::lang::Object * readValue(::java::lang::Class *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIObjectInputStream__ diff --git a/libjava/gnu/java/rmi/server/RMIObjectOutputStream.h b/libjava/gnu/java/rmi/server/RMIObjectOutputStream.h new file mode 100644 index 00000000000..6f6382d94b3 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIObjectOutputStream.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIObjectOutputStream__ +#define __gnu_java_rmi_server_RMIObjectOutputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIObjectOutputStream; + } + } + } + } +} + +class gnu::java::rmi::server::RMIObjectOutputStream : public ::java::io::ObjectOutputStream +{ + +public: + RMIObjectOutputStream(::java::io::OutputStream *); +public: // actually protected + virtual void setAnnotation(::java::lang::String *); + virtual void annotateClass(::java::lang::Class *); + virtual void annotateProxyClass(::java::lang::Class *); + virtual ::java::lang::Object * replaceObject(::java::lang::Object *); + virtual void writeValue(::java::lang::Object *, ::java::lang::Class *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIObjectOutputStream__ diff --git a/libjava/gnu/java/rmi/server/RMIVoidValue.h b/libjava/gnu/java/rmi/server/RMIVoidValue.h new file mode 100644 index 00000000000..fab4664a9d4 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIVoidValue.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_RMIVoidValue__ +#define __gnu_java_rmi_server_RMIVoidValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class RMIVoidValue; + } + } + } + } +} + +class gnu::java::rmi::server::RMIVoidValue : public ::java::lang::Object +{ + + RMIVoidValue(); +public: // actually package-private + static ::gnu::java::rmi::server::RMIVoidValue * INSTANCE; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_RMIVoidValue__ diff --git a/libjava/gnu/java/rmi/server/TripleKey.h b/libjava/gnu/java/rmi/server/TripleKey.h new file mode 100644 index 00000000000..dbc2d429b05 --- /dev/null +++ b/libjava/gnu/java/rmi/server/TripleKey.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_TripleKey__ +#define __gnu_java_rmi_server_TripleKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class TripleKey; + } + } + } + } +} + +class gnu::java::rmi::server::TripleKey : public ::java::lang::Object +{ + +public: // actually package-private + TripleKey(::java::lang::String *, jint, ::java::lang::Object *); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) host; + jint port; + ::java::lang::Object * other; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_TripleKey__ diff --git a/libjava/gnu/java/rmi/server/UnicastConnection.h b/libjava/gnu/java/rmi/server/UnicastConnection.h new file mode 100644 index 00000000000..98f5d0d7b14 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastConnection.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastConnection__ +#define __gnu_java_rmi_server_UnicastConnection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastConnection; + class UnicastConnectionManager; + } + } + } + } + namespace java + { + namespace net + { + class Socket; + } + } +} + +class gnu::java::rmi::server::UnicastConnection : public ::java::lang::Object +{ + +public: // actually package-private + UnicastConnection(::gnu::java::rmi::server::UnicastConnectionManager *, ::java::net::Socket *); + virtual void acceptConnection(); + virtual void makeConnection(jint); + virtual ::java::io::DataInputStream * getDataInputStream(); + virtual ::java::io::DataOutputStream * getDataOutputStream(); + virtual ::java::io::ObjectInputStream * getObjectInputStream(); + virtual ::java::io::ObjectInputStream * startObjectInputStream(); + virtual ::java::io::ObjectOutputStream * getObjectOutputStream(); + virtual ::java::io::ObjectOutputStream * startObjectOutputStream(); + virtual void disconnect(); + static jboolean isExpired(::gnu::java::rmi::server::UnicastConnection *, jlong); + static void resetTime(::gnu::java::rmi::server::UnicastConnection *); +public: + virtual void run(); +public: // actually package-private + ::gnu::java::rmi::server::UnicastConnectionManager * __attribute__((aligned(__alignof__( ::java::lang::Object)))) manager; + ::java::net::Socket * sock; + ::java::io::DataInputStream * din; + ::java::io::DataOutputStream * dout; + ::java::io::ObjectInputStream * oin; + ::java::io::ObjectOutputStream * oout; + jlong reviveTime; + jlong expireTime; +public: + static const jlong CONNECTION_TIMEOUT = 10000LL; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastConnection__ diff --git a/libjava/gnu/java/rmi/server/UnicastConnectionManager$1.h b/libjava/gnu/java/rmi/server/UnicastConnectionManager$1.h new file mode 100644 index 00000000000..cbfd5826f7c --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastConnectionManager$1.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastConnectionManager$1__ +#define __gnu_java_rmi_server_UnicastConnectionManager$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastConnectionManager$1; + } + } + } + } +} + +class gnu::java::rmi::server::UnicastConnectionManager$1 : public ::java::lang::Object +{ + +public: // actually package-private + UnicastConnectionManager$1(); +public: + void run(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastConnectionManager$1__ diff --git a/libjava/gnu/java/rmi/server/UnicastConnectionManager.h b/libjava/gnu/java/rmi/server/UnicastConnectionManager.h new file mode 100644 index 00000000000..dd6b828317d --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastConnectionManager.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastConnectionManager__ +#define __gnu_java_rmi_server_UnicastConnectionManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastConnection; + class UnicastConnectionManager; + } + } + } + } + namespace java + { + namespace net + { + class ServerSocket; + } + namespace rmi + { + namespace server + { + class RMIClientSocketFactory; + class RMIServerSocketFactory; + class RMISocketFactory; + } + } + } +} + +class gnu::java::rmi::server::UnicastConnectionManager : public ::java::lang::Object +{ + + static void startScavenger(); + UnicastConnectionManager(::java::lang::String *, jint, ::java::rmi::server::RMIClientSocketFactory *); + UnicastConnectionManager(jint, ::java::rmi::server::RMIServerSocketFactory *); +public: + static ::gnu::java::rmi::server::UnicastConnectionManager * getInstance(::java::lang::String *, jint, ::java::rmi::server::RMIClientSocketFactory *); + static ::gnu::java::rmi::server::UnicastConnectionManager * getInstance(jint, ::java::rmi::server::RMIServerSocketFactory *); + virtual ::gnu::java::rmi::server::UnicastConnection * getConnection(); +private: + ::gnu::java::rmi::server::UnicastConnection * getServerConnection(); + ::gnu::java::rmi::server::UnicastConnection * getClientConnection(); +public: + virtual ::java::lang::String * toString(); + virtual void discardConnection(::gnu::java::rmi::server::UnicastConnection *); + virtual void startServer(); + virtual void stopServer(); + virtual void run(); +public: // actually package-private + virtual void write(::java::io::ObjectOutput *); + static ::gnu::java::rmi::server::UnicastConnectionManager * read(::java::io::ObjectInput *); +private: + static ::java::lang::String * localhost; + static ::java::util::Hashtable * servers; +public: // actually package-private + static ::java::util::Hashtable * clients; + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) connections; +private: + volatile ::java::lang::Thread * serverThread; + ::java::net::ServerSocket * ssock; +public: // actually package-private + ::java::lang::String * serverName; + jint serverPort; + static ::java::lang::Thread * scavenger; + ::java::lang::Object * serverobj; +private: + static ::java::rmi::server::RMISocketFactory * defaultSocketFactory; + ::java::rmi::server::RMIServerSocketFactory * serverFactory; + ::java::rmi::server::RMIClientSocketFactory * clientFactory; + static jint ncsock; + static jint nssock; + static jint ncmanager; + static jint nsmanager; + static const jboolean debug = 0; + static ::java::lang::Object * GLOBAL_LOCK; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastConnectionManager__ diff --git a/libjava/gnu/java/rmi/server/UnicastRef.h b/libjava/gnu/java/rmi/server/UnicastRef.h new file mode 100644 index 00000000000..089b35df924 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRef.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastRef__ +#define __gnu_java_rmi_server_UnicastRef__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastConnection; + class UnicastConnectionManager; + class UnicastRef; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace dgc + { + class Lease; + } + namespace server + { + class ObjID; + class Operation; + class RMIClientSocketFactory; + class RemoteCall; + class RemoteObject; + class RemoteRef; + } + } + } +} + +class gnu::java::rmi::server::UnicastRef : public ::java::lang::Object +{ + +public: + UnicastRef(); + UnicastRef(::java::rmi::server::ObjID *, ::java::lang::String *, jint, ::java::rmi::server::RMIClientSocketFactory *); + UnicastRef(::java::rmi::server::ObjID *); + virtual ::java::lang::Object * invoke(::java::rmi::Remote *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *, jlong); + virtual ::java::rmi::dgc::Lease * notifyDGC(::java::rmi::dgc::Lease *); +public: // actually protected + virtual ::java::lang::Object * invokeCommon(::java::rmi::Remote *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *, jint, jlong); + virtual ::java::lang::Object * invokeCommon(::gnu::java::rmi::server::UnicastConnection *, ::java::rmi::Remote *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *, jint, jlong); +public: + virtual ::java::rmi::server::RemoteCall * newCall(::java::rmi::server::RemoteObject *, JArray< ::java::rmi::server::Operation * > *, jint, jlong); + virtual void invoke(::java::rmi::server::RemoteCall *); + virtual void done(::java::rmi::server::RemoteCall *); + virtual void writeExternal(::java::io::ObjectOutput *); + virtual void readExternal(::java::io::ObjectInput *); + virtual jboolean remoteEquals(::java::rmi::server::RemoteRef *); + virtual jint remoteHashCode(); + virtual ::java::lang::String * getRefClass(::java::io::ObjectOutput *); + virtual ::java::lang::String * remoteToString(); + virtual void dump(::gnu::java::rmi::server::UnicastConnection *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + static const jlong serialVersionUID = 1LL; +public: + ::java::rmi::server::ObjID * __attribute__((aligned(__alignof__( ::java::lang::Object)))) objid; +public: // actually package-private + ::gnu::java::rmi::server::UnicastConnectionManager * manager; + static jlong dgcSequence; + static ::java::rmi::server::ObjID * dgcId; + JArray< ::java::rmi::server::ObjID * > * this_id; + static jint DIRTY; + static const jlong dgcInterfaceHash = -669196253586618813LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastRef__ diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectInputStream.h b/libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectInputStream.h new file mode 100644 index 00000000000..acf348091ca --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectInputStream.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastRemoteCall$DummyObjectInputStream__ +#define __gnu_java_rmi_server_UnicastRemoteCall$DummyObjectInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastRemoteCall; + class UnicastRemoteCall$DummyObjectInputStream; + } + } + } + } +} + +class gnu::java::rmi::server::UnicastRemoteCall$DummyObjectInputStream : public ::java::lang::Object +{ + +public: // actually package-private + UnicastRemoteCall$DummyObjectInputStream(::gnu::java::rmi::server::UnicastRemoteCall *); +public: + virtual jboolean readBoolean(); + virtual jbyte readByte(); + virtual jchar readChar(); + virtual jdouble readDouble(); + virtual jfloat readFloat(); + virtual jint readInt(); + virtual jlong readLong(); + virtual jshort readShort(); + virtual ::java::lang::Object * readObject(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(); + virtual jlong skip(jlong); + virtual jint available(); + virtual void readFully(JArray< jbyte > *); + virtual void readFully(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * readLine(); + virtual ::java::lang::String * readUTF(); + virtual jint readUnsignedByte(); + virtual jint readUnsignedShort(); + virtual jint skipBytes(jint); + virtual void close(); +public: // actually package-private + ::gnu::java::rmi::server::UnicastRemoteCall * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastRemoteCall$DummyObjectInputStream__ diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectOutputStream.h b/libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectOutputStream.h new file mode 100644 index 00000000000..7a903b64631 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRemoteCall$DummyObjectOutputStream.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastRemoteCall$DummyObjectOutputStream__ +#define __gnu_java_rmi_server_UnicastRemoteCall$DummyObjectOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastRemoteCall; + class UnicastRemoteCall$DummyObjectOutputStream; + } + } + } + } +} + +class gnu::java::rmi::server::UnicastRemoteCall$DummyObjectOutputStream : public ::java::lang::Object +{ + +public: // actually package-private + UnicastRemoteCall$DummyObjectOutputStream(::gnu::java::rmi::server::UnicastRemoteCall *); +public: + virtual void writeBoolean(jboolean); + virtual void writeByte(jint); + virtual void writeChar(jint); + virtual void writeDouble(jdouble); + virtual void writeFloat(jfloat); + virtual void writeInt(jint); + virtual void writeLong(jlong); + virtual void writeShort(jint); + virtual void writeObject(::java::lang::Object *); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(jint); + virtual void writeBytes(::java::lang::String *); + virtual void writeChars(::java::lang::String *); + virtual void writeUTF(::java::lang::String *); + virtual void flush(); + virtual void close(); +public: // actually package-private + ::gnu::java::rmi::server::UnicastRemoteCall * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastRemoteCall$DummyObjectOutputStream__ diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteCall.h b/libjava/gnu/java/rmi/server/UnicastRemoteCall.h new file mode 100644 index 00000000000..d6808a6e32e --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRemoteCall.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastRemoteCall__ +#define __gnu_java_rmi_server_UnicastRemoteCall__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastConnection; + class UnicastRemoteCall; + } + } + } + } + namespace java + { + namespace rmi + { + namespace server + { + class ObjID; + } + } + } +} + +class gnu::java::rmi::server::UnicastRemoteCall : public ::java::lang::Object +{ + +public: // actually package-private + UnicastRemoteCall(::gnu::java::rmi::server::UnicastConnection *); + UnicastRemoteCall(::gnu::java::rmi::server::UnicastConnection *, ::java::rmi::server::ObjID *, jint, jlong); + virtual ::gnu::java::rmi::server::UnicastConnection * getConnection(); +public: + virtual ::java::io::ObjectOutput * getOutputStream(); + virtual void releaseOutputStream(); + virtual ::java::io::ObjectInput * startInputStream(); + virtual ::java::io::ObjectInput * getInputStream(); + virtual void releaseInputStream(); + virtual ::java::io::ObjectOutput * getResultStream(jboolean); + virtual void executeCall(); + virtual void done(); +public: // actually package-private + virtual jboolean isReturnValue(); + virtual ::java::lang::Object * returnValue(); + virtual JArray< ::java::lang::Object * > * getArguments(); + virtual ::java::lang::Object * getObject(); + virtual jint getOpnum(); + virtual jlong getHash(); + virtual void setReturnValue(::java::lang::Object *); +private: + ::gnu::java::rmi::server::UnicastConnection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) conn; + ::java::lang::Object * result; + ::java::lang::Object * object; + jint opnum; + jlong hash; +public: // actually package-private + ::java::util::Vector * vec; + jint ptr; +private: + ::java::rmi::server::ObjID * objid; + ::java::io::ObjectOutput * oout; + ::java::io::ObjectInput * oin; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastRemoteCall__ diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteStub.h b/libjava/gnu/java/rmi/server/UnicastRemoteStub.h new file mode 100644 index 00000000000..14c9e5a5a3d --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRemoteStub.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastRemoteStub__ +#define __gnu_java_rmi_server_UnicastRemoteStub__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastRemoteStub; + } + } + } + } + namespace java + { + namespace rmi + { + namespace server + { + class RemoteRef; + class RemoteStub; + } + } + } +} + +class gnu::java::rmi::server::UnicastRemoteStub : public ::java::rmi::server::RemoteStub +{ + +public: + UnicastRemoteStub(); + static void setStubRef(::java::rmi::server::RemoteStub *, ::java::rmi::server::RemoteRef *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastRemoteStub__ diff --git a/libjava/gnu/java/rmi/server/UnicastServer.h b/libjava/gnu/java/rmi/server/UnicastServer.h new file mode 100644 index 00000000000..5ebf3633c9a --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastServer.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastServer__ +#define __gnu_java_rmi_server_UnicastServer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace dgc + { + class DGCImpl; + } + namespace server + { + class ActivatableServerRef; + class UnicastConnection; + class UnicastServer; + class UnicastServerRef; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace activation + { + class ActivationID; + } + } + } +} + +class gnu::java::rmi::server::UnicastServer : public ::java::lang::Object +{ + +public: + UnicastServer(); + static void exportObject(::gnu::java::rmi::server::UnicastServerRef *); + static void registerActivatable(::gnu::java::rmi::server::ActivatableServerRef *); + static void exportActivatableObject(::gnu::java::rmi::server::ActivatableServerRef *); + static ::gnu::java::rmi::server::ActivatableServerRef * getActivatableRef(::java::rmi::activation::ActivationID *); + static void unregisterActivatable(::java::rmi::activation::ActivationID *); + static jboolean unexportObject(::gnu::java::rmi::server::UnicastServerRef *, jboolean); + static ::gnu::java::rmi::server::UnicastServerRef * getExportedRef(::java::rmi::Remote *); + static ::java::util::Collection * getExported(::java::lang::Object *); +private: + static void startDGC(); +public: + static void dispatch(::gnu::java::rmi::server::UnicastConnection *); +private: + static void incomingMessageCall(::gnu::java::rmi::server::UnicastConnection *); + static ::java::util::Map * objects; + static ::java::util::Map * refcache; +public: + static ::java::util::Map * actIds; +private: + static ::gnu::java::rmi::dgc::DGCImpl * dgc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastServer__ diff --git a/libjava/gnu/java/rmi/server/UnicastServerRef.h b/libjava/gnu/java/rmi/server/UnicastServerRef.h new file mode 100644 index 00000000000..62299d9cde2 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastServerRef.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_rmi_server_UnicastServerRef__ +#define __gnu_java_rmi_server_UnicastServerRef__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace rmi + { + namespace server + { + class UnicastConnection; + class UnicastServerRef; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + namespace server + { + class ObjID; + class RMIServerSocketFactory; + class RemoteRef; + class Skeleton; + } + } + } +} + +class gnu::java::rmi::server::UnicastServerRef : public ::gnu::java::rmi::server::UnicastRef +{ + +public: // actually package-private + UnicastServerRef(); +public: + UnicastServerRef(::java::rmi::server::ObjID *, jint, ::java::rmi::server::RMIServerSocketFactory *); + virtual ::java::rmi::Remote * exportObject(::java::rmi::Remote *); + virtual ::java::rmi::Remote * getStub(); + virtual jboolean unexportObject(::java::rmi::Remote *, jboolean); +public: // actually protected + virtual ::java::lang::Class * findStubSkelClass(::java::lang::Class *); + virtual ::java::lang::Object * getHelperClass(::java::lang::Class *, ::java::lang::String *); +public: + virtual ::java::lang::String * getClientHost(); +public: // actually protected + virtual void buildMethodHash(::java::lang::Class *, jboolean); +public: // actually package-private + virtual ::java::lang::Class * getMethodReturnType(jint, jlong); +public: + virtual ::java::lang::Object * incomingMessageCall(::gnu::java::rmi::server::UnicastConnection *, jint, jlong); +public: // actually package-private + virtual ::java::rmi::Remote * createProxyStub(::java::lang::Class *, ::java::rmi::server::RemoteRef *); +private: + static const jlong serialVersionUID = -5585608108300801246LL; + static JArray< ::java::lang::Class * > * stubprototype; +public: // actually package-private + ::java::rmi::Remote * __attribute__((aligned(__alignof__( ::gnu::java::rmi::server::UnicastRef)))) myself; +public: // actually protected + ::java::rmi::server::Skeleton * skel; + ::java::rmi::Remote * stub; + ::java::util::Hashtable * methods; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_rmi_server_UnicastServerRef__ diff --git a/libjava/gnu/java/security/Configuration.h b/libjava/gnu/java/security/Configuration.h new file mode 100644 index 00000000000..ea2bb7049a6 --- /dev/null +++ b/libjava/gnu/java/security/Configuration.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_Configuration__ +#define __gnu_java_security_Configuration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class Configuration; + } + } + } +} + +class gnu::java::security::Configuration : public ::java::lang::Object +{ + +public: + static const jboolean DEBUG = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_Configuration__ diff --git a/libjava/gnu/java/security/Engine.h b/libjava/gnu/java/security/Engine.h new file mode 100644 index 00000000000..53447ecb370 --- /dev/null +++ b/libjava/gnu/java/security/Engine.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_Engine__ +#define __gnu_java_security_Engine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class Engine; + } + } + } + namespace java + { + namespace security + { + class Provider; + } + } +} + +class gnu::java::security::Engine : public ::java::lang::Object +{ + + Engine(); +public: + static ::java::lang::Object * getInstance(::java::lang::String *, ::java::lang::String *, ::java::security::Provider *); + static ::java::lang::Object * getInstance(::java::lang::String *, ::java::lang::String *, ::java::security::Provider *, JArray< ::java::lang::Object * > *); +private: + static ::java::lang::reflect::Constructor * getCompatibleConstructor(::java::lang::Class *, JArray< ::java::lang::Object * > *); + static ::java::lang::String * ALG_ALIAS; + static const jint MAX_ALIASES = 5; + static JArray< ::java::lang::Object * > * NO_ARGS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_Engine__ diff --git a/libjava/gnu/java/security/OID.h b/libjava/gnu/java/security/OID.h new file mode 100644 index 00000000000..40347732d08 --- /dev/null +++ b/libjava/gnu/java/security/OID.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_OID__ +#define __gnu_java_security_OID__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + } + } + } +} + +class gnu::java::security::OID : public ::java::lang::Object +{ + +public: + OID(JArray< jint > *); + OID(JArray< jint > *, jboolean); + OID(::java::lang::String *); + OID(::java::lang::String *, jboolean); + OID(::java::io::InputStream *, jint); + OID(::java::io::InputStream *, jint, jboolean); + OID(JArray< jbyte > *); + OID(JArray< jbyte > *, jboolean); + virtual JArray< jint > * getIDs(); + virtual JArray< jbyte > * getDER(); + virtual ::gnu::java::security::OID * getParent(); + virtual ::gnu::java::security::OID * getChild(jint); + virtual ::gnu::java::security::OID * getRoot(); + virtual jboolean isRelative(); + virtual ::java::lang::Object * clone(); + virtual ::java::lang::String * toString(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +private: + static JArray< jint > * fromDER(JArray< jbyte > *, jboolean); + static JArray< jint > * fromString(::java::lang::String *); + static void encodeSubID(::java::io::ByteArrayOutputStream *, jint); +public: // actually package-private + static const jlong serialVersionUID = 5722492029044597779LL; +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) components; + ::java::lang::String * strRep; + JArray< jbyte > * der; + jboolean relative; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_OID__ diff --git a/libjava/gnu/java/security/PolicyFile$1.h b/libjava/gnu/java/security/PolicyFile$1.h new file mode 100644 index 00000000000..22eb4898ef1 --- /dev/null +++ b/libjava/gnu/java/security/PolicyFile$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_PolicyFile$1__ +#define __gnu_java_security_PolicyFile$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class PolicyFile; + class PolicyFile$1; + } + } + } +} + +class gnu::java::security::PolicyFile$1 : public ::java::lang::Object +{ + +public: // actually package-private + PolicyFile$1(::gnu::java::security::PolicyFile *, ::java::util::List *); +public: + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::java::security::PolicyFile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::java::util::List * val$policyFiles; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_PolicyFile$1__ diff --git a/libjava/gnu/java/security/PolicyFile.h b/libjava/gnu/java/security/PolicyFile.h new file mode 100644 index 00000000000..768e3d98cb0 --- /dev/null +++ b/libjava/gnu/java/security/PolicyFile.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_PolicyFile__ +#define __gnu_java_security_PolicyFile__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class PolicyFile; + namespace action + { + class GetPropertyAction; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + namespace security + { + class CodeSource; + class PermissionCollection; + } + } +} + +class gnu::java::security::PolicyFile : public ::java::security::Policy +{ + +public: + PolicyFile(); + ::java::security::PermissionCollection * getPermissions(::java::security::CodeSource *); + void refresh(); + ::java::lang::String * toString(); +private: + void parse(::java::net::URL *); + static ::java::lang::String * expand(::java::lang::String *); + static void error(::java::net::URL *, ::java::io::StreamTokenizer *, ::java::lang::String *); +public: // actually protected + static ::java::util::logging::Logger * logger; +private: + static ::gnu::java::security::action::GetPropertyAction * prop; + static ::java::lang::String * fs; + static ::java::lang::String * DEFAULT_POLICY; + static ::java::lang::String * DEFAULT_USER_POLICY; + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::security::Policy)))) cs2pc; + static const jint STATE_BEGIN = 0; + static const jint STATE_GRANT = 1; + static const jint STATE_PERMS = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_PolicyFile__ diff --git a/libjava/gnu/java/security/Properties$1.h b/libjava/gnu/java/security/Properties$1.h new file mode 100644 index 00000000000..43e0b2a8609 --- /dev/null +++ b/libjava/gnu/java/security/Properties$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_Properties$1__ +#define __gnu_java_security_Properties$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class Properties; + class Properties$1; + } + } + } +} + +class gnu::java::security::Properties$1 : public ::java::lang::Object +{ + +public: // actually package-private + Properties$1(::gnu::java::security::Properties *); +public: + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::java::security::Properties * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_Properties$1__ diff --git a/libjava/gnu/java/security/Properties.h b/libjava/gnu/java/security/Properties.h new file mode 100644 index 00000000000..d28d18e9c13 --- /dev/null +++ b/libjava/gnu/java/security/Properties.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_Properties__ +#define __gnu_java_security_Properties__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class Properties; + } + } + } +} + +class gnu::java::security::Properties : public ::java::lang::Object +{ + + Properties(); +public: + static ::java::lang::String * getProperty(::java::lang::String *); + static void setProperty(::java::lang::String *, ::java::lang::String *); + static jboolean isReproducible(); + static jboolean checkForWeakKeys(); + static jboolean doRSABlinding(); + static void setReproducible(jboolean); + static void setCheckForWeakKeys(jboolean); + static void setDoRSABlinding(jboolean); +private: + static ::gnu::java::security::Properties * instance(); + void init(); + void handleBooleanProperty(::java::lang::String *); + static ::java::util::logging::Logger * log; +public: + static ::java::lang::String * VERSION; + static ::java::lang::String * PROPERTIES_FILE; + static ::java::lang::String * REPRODUCIBLE_PRNG; + static ::java::lang::String * CHECK_WEAK_KEYS; + static ::java::lang::String * DO_RSA_BLINDING; +private: + static ::java::lang::String * TRUE; + static ::java::lang::String * FALSE; + static ::java::util::HashMap * props; + static ::gnu::java::security::Properties * singleton; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) reproducible; + jboolean checkForWeakKeys__; + jboolean doRSABlinding__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_Properties__ diff --git a/libjava/gnu/java/security/Registry.h b/libjava/gnu/java/security/Registry.h new file mode 100644 index 00000000000..164bb9f8ebd --- /dev/null +++ b/libjava/gnu/java/security/Registry.h @@ -0,0 +1,187 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_Registry__ +#define __gnu_java_security_Registry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class Registry; + } + } + } +} + +class gnu::java::security::Registry : public ::java::lang::Object +{ + +public: + static ::java::lang::String * GNU_SECURITY; + static ::java::lang::String * GNU_CRYPTO; + static ::java::lang::String * GNU_SASL; + static ::java::lang::String * VERSION_STRING; + static ::java::lang::String * ANUBIS_CIPHER; + static ::java::lang::String * BLOWFISH_CIPHER; + static ::java::lang::String * DES_CIPHER; + static ::java::lang::String * KHAZAD_CIPHER; + static ::java::lang::String * RIJNDAEL_CIPHER; + static ::java::lang::String * SERPENT_CIPHER; + static ::java::lang::String * SQUARE_CIPHER; + static ::java::lang::String * TRIPLEDES_CIPHER; + static ::java::lang::String * TWOFISH_CIPHER; + static ::java::lang::String * CAST5_CIPHER; + static ::java::lang::String * NULL_CIPHER; + static ::java::lang::String * AES_CIPHER; + static ::java::lang::String * DESEDE_CIPHER; + static ::java::lang::String * CAST128_CIPHER; + static ::java::lang::String * CAST_128_CIPHER; + static ::java::lang::String * KWA_PREFIX; + static ::java::lang::String * AES_KWA; + static ::java::lang::String * AES128_KWA; + static ::java::lang::String * AES192_KWA; + static ::java::lang::String * AES256_KWA; + static ::java::lang::String * RIJNDAEL_KWA; + static ::java::lang::String * TRIPLEDES_KWA; + static ::java::lang::String * DESEDE_KWA; + static ::java::lang::String * WHIRLPOOL_HASH; + static ::java::lang::String * RIPEMD128_HASH; + static ::java::lang::String * RIPEMD160_HASH; + static ::java::lang::String * SHA160_HASH; + static ::java::lang::String * SHA256_HASH; + static ::java::lang::String * SHA384_HASH; + static ::java::lang::String * SHA512_HASH; + static ::java::lang::String * TIGER_HASH; + static ::java::lang::String * HAVAL_HASH; + static ::java::lang::String * MD5_HASH; + static ::java::lang::String * MD4_HASH; + static ::java::lang::String * MD2_HASH; + static ::java::lang::String * RIPEMD_128_HASH; + static ::java::lang::String * RIPEMD_160_HASH; + static ::java::lang::String * SHA_1_HASH; + static ::java::lang::String * SHA1_HASH; + static ::java::lang::String * SHA_HASH; + static ::java::lang::String * ECB_MODE; + static ::java::lang::String * CTR_MODE; + static ::java::lang::String * ICM_MODE; + static ::java::lang::String * OFB_MODE; + static ::java::lang::String * CBC_MODE; + static ::java::lang::String * CFB_MODE; + static ::java::lang::String * EAX_MODE; + static ::java::lang::String * PKCS5_PAD; + static ::java::lang::String * PKCS7_PAD; + static ::java::lang::String * TBC_PAD; + static ::java::lang::String * EME_PKCS1_V1_5_PAD; + static ::java::lang::String * SSL3_PAD; + static ::java::lang::String * TLS1_PAD; + static ::java::lang::String * ISO10126_PAD; + static ::java::lang::String * ARCFOUR_PRNG; + static ::java::lang::String * RC4_PRNG; + static ::java::lang::String * ICM_PRNG; + static ::java::lang::String * MD_PRNG; + static ::java::lang::String * UMAC_PRNG; + static ::java::lang::String * PBKDF2_PRNG_PREFIX; + static ::java::lang::String * CSPRNG_PRNG; + static ::java::lang::String * FORTUNA_PRNG; + static ::java::lang::String * FORTUNA_GENERATOR_PRNG; + static ::java::lang::String * DSS_KPG; + static ::java::lang::String * RSA_KPG; + static ::java::lang::String * DH_KPG; + static ::java::lang::String * SRP_KPG; + static ::java::lang::String * DSA_KPG; + static ::java::lang::String * DSS_SIG; + static ::java::lang::String * RSA_SIG_PREFIX; + static ::java::lang::String * RSA_PSS_ENCODING; + static ::java::lang::String * RSA_PSS_SIG; + static ::java::lang::String * RSA_PKCS1_V1_5_ENCODING; + static ::java::lang::String * RSA_PKCS1_V1_5_SIG; + static ::java::lang::String * DSA_SIG; + static ::java::lang::String * DH_KA; + static ::java::lang::String * ELGAMAL_KA; + static ::java::lang::String * SRP6_KA; + static ::java::lang::String * SRP_SASL_KA; + static ::java::lang::String * SRP_TLS_KA; + static ::java::lang::String * HMAC_NAME_PREFIX; + static ::java::lang::String * OMAC_PREFIX; + static ::java::lang::String * UHASH32; + static ::java::lang::String * UMAC32; + static ::java::lang::String * TMMH16; + static ::java::lang::String * RAW_ENCODING; + static ::java::lang::String * X509_ENCODING; + static ::java::lang::String * PKCS8_ENCODING; + static ::java::lang::String * ASN1_ENCODING; + static ::java::lang::String * RAW_ENCODING_SHORT_NAME; + static ::java::lang::String * X509_ENCODING_SORT_NAME; + static ::java::lang::String * PKCS8_ENCODING_SHORT_NAME; + static ::java::lang::String * ASN1_ENCODING_SHORT_NAME; + static const jint RAW_ENCODING_ID = 1; + static const jint X509_ENCODING_ID = 2; + static const jint PKCS8_ENCODING_ID = 3; + static const jint ASN1_ENCODING_ID = 4; + static ::java::lang::String * DSA_OID_STRING; + static ::java::lang::String * RSA_OID_STRING; + static ::java::lang::String * DH_OID_STRING; + static JArray< jbyte > * MAGIC_RAW_DSS_PUBLIC_KEY; + static JArray< jbyte > * MAGIC_RAW_DSS_PRIVATE_KEY; + static JArray< jbyte > * MAGIC_RAW_DSS_SIGNATURE; + static JArray< jbyte > * MAGIC_RAW_RSA_PUBLIC_KEY; + static JArray< jbyte > * MAGIC_RAW_RSA_PRIVATE_KEY; + static JArray< jbyte > * MAGIC_RAW_RSA_PSS_SIGNATURE; + static JArray< jbyte > * MAGIC_RAW_RSA_PKCS1V1_5_SIGNATURE; + static JArray< jbyte > * MAGIC_RAW_DH_PUBLIC_KEY; + static JArray< jbyte > * MAGIC_RAW_DH_PRIVATE_KEY; + static JArray< jbyte > * MAGIC_RAW_SRP_PUBLIC_KEY; + static JArray< jbyte > * MAGIC_RAW_SRP_PRIVATE_KEY; + static ::java::lang::String * SASL_PREFIX; + static ::java::lang::String * SASL_USERNAME; + static ::java::lang::String * SASL_PASSWORD; + static ::java::lang::String * SASL_AUTH_INFO_PROVIDER_PKGS; + static ::java::lang::String * SASL_AUTHORISATION_ID; + static ::java::lang::String * SASL_PROTOCOL; + static ::java::lang::String * SASL_SERVER_NAME; + static ::java::lang::String * SASL_CALLBACK_HANDLER; + static ::java::lang::String * SASL_CHANNEL_BINDING; + static const jint SASL_ONE_BYTE_MAX_LIMIT = 255; + static const jint SASL_TWO_BYTE_MAX_LIMIT = 65535; + static const jint SASL_FOUR_BYTE_MAX_LIMIT = 2147483383; + static const jint SASL_BUFFER_MAX_LIMIT = 2147483643; + static ::java::lang::String * SASL_ANONYMOUS_MECHANISM; + static ::java::lang::String * SASL_CRAM_MD5_MECHANISM; + static ::java::lang::String * SASL_PLAIN_MECHANISM; + static ::java::lang::String * SASL_SRP_MECHANISM; + static ::java::lang::String * SASL_HMAC_MD5_IALG; + static ::java::lang::String * SASL_HMAC_SHA_IALG; + static ::java::lang::String * QOP_AUTH; + static ::java::lang::String * QOP_AUTH_INT; + static ::java::lang::String * QOP_AUTH_CONF; + static ::java::lang::String * STRENGTH_HIGH; + static ::java::lang::String * STRENGTH_MEDIUM; + static ::java::lang::String * STRENGTH_LOW; + static ::java::lang::String * SERVER_AUTH_TRUE; + static ::java::lang::String * SERVER_AUTH_FALSE; + static ::java::lang::String * REUSE_TRUE; + static ::java::lang::String * REUSE_FALSE; + static JArray< jbyte > * GKR_MAGIC; + static const jint GKR_PRIVATE_KEYS = 1; + static const jint GKR_PUBLIC_CREDENTIALS = 2; + static const jint GKR_CERTIFICATES = 4; + static const jint GKR_HMAC_MD5_128 = 0; + static const jint GKR_HMAC_SHA_160 = 1; + static const jint GKR_HMAC_MD5_96 = 2; + static const jint GKR_HMAC_SHA_96 = 3; + static const jint GKR_CIPHER_AES_128_OFB = 0; + static const jint GKR_CIPHER_AES_128_CBC = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_Registry__ diff --git a/libjava/gnu/java/security/Requires.h b/libjava/gnu/java/security/Requires.h new file mode 100644 index 00000000000..879a873a259 --- /dev/null +++ b/libjava/gnu/java/security/Requires.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_Requires__ +#define __gnu_java_security_Requires__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class Requires; + } + } + } +} + +class gnu::java::security::Requires : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * permissionClass() = 0; + virtual ::java::lang::String * target() = 0; + virtual ::java::lang::String * action() = 0; + virtual ::java::lang::Class * annotationType() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_Requires__ diff --git a/libjava/gnu/java/security/action/GetPropertyAction.h b/libjava/gnu/java/security/action/GetPropertyAction.h new file mode 100644 index 00000000000..ce401be9db8 --- /dev/null +++ b/libjava/gnu/java/security/action/GetPropertyAction.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_action_GetPropertyAction__ +#define __gnu_java_security_action_GetPropertyAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace action + { + class GetPropertyAction; + } + } + } + } +} + +class gnu::java::security::action::GetPropertyAction : public ::java::lang::Object +{ + +public: + GetPropertyAction(); + GetPropertyAction(::java::lang::String *); + GetPropertyAction(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * target$run(); + virtual ::gnu::java::security::action::GetPropertyAction * setParameters(::java::lang::String *); + virtual ::gnu::java::security::action::GetPropertyAction * setParameters(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * run(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_action_GetPropertyAction__ diff --git a/libjava/gnu/java/security/action/GetSecurityPropertyAction.h b/libjava/gnu/java/security/action/GetSecurityPropertyAction.h new file mode 100644 index 00000000000..7308876d7cb --- /dev/null +++ b/libjava/gnu/java/security/action/GetSecurityPropertyAction.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_action_GetSecurityPropertyAction__ +#define __gnu_java_security_action_GetSecurityPropertyAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace action + { + class GetSecurityPropertyAction; + } + } + } + } +} + +class gnu::java::security::action::GetSecurityPropertyAction : public ::java::lang::Object +{ + +public: + GetSecurityPropertyAction(); + GetSecurityPropertyAction(::java::lang::String *); + GetSecurityPropertyAction(::java::lang::String *, ::java::lang::String *); + virtual ::gnu::java::security::action::GetSecurityPropertyAction * setParameters(::java::lang::String *); + virtual ::gnu::java::security::action::GetSecurityPropertyAction * setParameters(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * target$run(); + virtual ::java::lang::Object * run(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_action_GetSecurityPropertyAction__ diff --git a/libjava/gnu/java/security/action/SetAccessibleAction.h b/libjava/gnu/java/security/action/SetAccessibleAction.h new file mode 100644 index 00000000000..312a6161691 --- /dev/null +++ b/libjava/gnu/java/security/action/SetAccessibleAction.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_action_SetAccessibleAction__ +#define __gnu_java_security_action_SetAccessibleAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace action + { + class SetAccessibleAction; + } + } + } + } +} + +class gnu::java::security::action::SetAccessibleAction : public ::java::lang::Object +{ + +public: + SetAccessibleAction(); + SetAccessibleAction(::java::lang::reflect::AccessibleObject *); + virtual ::java::lang::Object * run(); + virtual ::gnu::java::security::action::SetAccessibleAction * setMember(::java::lang::reflect::AccessibleObject *); +public: // actually package-private + ::java::lang::reflect::AccessibleObject * __attribute__((aligned(__alignof__( ::java::lang::Object)))) member; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_action_SetAccessibleAction__ diff --git a/libjava/gnu/java/security/ber/BER.h b/libjava/gnu/java/security/ber/BER.h new file mode 100644 index 00000000000..ab1a66cce30 --- /dev/null +++ b/libjava/gnu/java/security/ber/BER.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_ber_BER__ +#define __gnu_java_security_ber_BER__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace ber + { + class BER; + class BERValue; + } + } + } + } +} + +class gnu::java::security::ber::BER : public ::java::lang::Object +{ + +public: + static ::gnu::java::security::ber::BERValue * END_OF_SEQUENCE; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_ber_BER__ diff --git a/libjava/gnu/java/security/ber/BEREncodingException.h b/libjava/gnu/java/security/ber/BEREncodingException.h new file mode 100644 index 00000000000..8eae41ecd72 --- /dev/null +++ b/libjava/gnu/java/security/ber/BEREncodingException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_ber_BEREncodingException__ +#define __gnu_java_security_ber_BEREncodingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace ber + { + class BEREncodingException; + } + } + } + } +} + +class gnu::java::security::ber::BEREncodingException : public ::gnu::java::security::der::DEREncodingException +{ + +public: + BEREncodingException(); + BEREncodingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_ber_BEREncodingException__ diff --git a/libjava/gnu/java/security/ber/BERReader.h b/libjava/gnu/java/security/ber/BERReader.h new file mode 100644 index 00000000000..06c0242ceb6 --- /dev/null +++ b/libjava/gnu/java/security/ber/BERReader.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_ber_BERReader__ +#define __gnu_java_security_ber_BERReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace ber + { + class BERReader; + } + namespace der + { + class DERValue; + } + } + } + } +} + +class gnu::java::security::ber::BERReader : public ::gnu::java::security::der::DERReader +{ + +public: + BERReader(JArray< jbyte > *); + BERReader(JArray< jbyte > *, jint, jint); + BERReader(::java::io::InputStream *); + virtual ::gnu::java::security::der::DERValue * read(); + virtual jint peek(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_ber_BERReader__ diff --git a/libjava/gnu/java/security/ber/BERValue.h b/libjava/gnu/java/security/ber/BERValue.h new file mode 100644 index 00000000000..34c3e7a80cc --- /dev/null +++ b/libjava/gnu/java/security/ber/BERValue.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_ber_BERValue__ +#define __gnu_java_security_ber_BERValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace ber + { + class BERValue; + } + namespace der + { + class DERValue; + } + } + } + } +} + +class gnu::java::security::ber::BERValue : public ::gnu::java::security::der::DERValue +{ + +public: + BERValue(jint, ::java::lang::Object *, JArray< jbyte > *); + BERValue(jint, jint, ::java::lang::Object *, JArray< jbyte > *); + BERValue(jint, ::java::lang::Object *); + static jboolean isIndefinite(::gnu::java::security::der::DERValue *); + virtual jboolean getIndefinite(); + virtual jint getLength(); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::java::security::der::DERValue)))) indefinite; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_ber_BERValue__ diff --git a/libjava/gnu/java/security/der/BitString.h b/libjava/gnu/java/security/der/BitString.h new file mode 100644 index 00000000000..1bc7cbd60a9 --- /dev/null +++ b/libjava/gnu/java/security/der/BitString.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_der_BitString__ +#define __gnu_java_security_der_BitString__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace der + { + class BitString; + } + } + } + } +} + +class gnu::java::security::der::BitString : public ::java::lang::Object +{ + +public: + BitString(JArray< jbyte > *, jint, jboolean); + BitString(JArray< jbyte > *, jint, jint, jint, jboolean); + BitString(JArray< jbyte > *, jint, jint, jint); + BitString(JArray< jbyte > *, jint); + BitString(JArray< jbyte > *, jint, jint); + BitString(JArray< jbyte > *); + virtual JArray< jbyte > * toByteArray(); + virtual JArray< jbyte > * getShiftedByteArray(); + virtual jint getIgnoredBits(); + virtual jint size(); + virtual JArray< jboolean > * toBooleanArray(); + virtual ::java::lang::Object * clone(); + virtual jint compareTo(::java::lang::Object *); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) bytes; + JArray< jbyte > * externBytes; + jint ignoredBits; + JArray< jboolean > * boolVal; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_der_BitString__ diff --git a/libjava/gnu/java/security/der/DER.h b/libjava/gnu/java/security/der/DER.h new file mode 100644 index 00000000000..1b59badbf3c --- /dev/null +++ b/libjava/gnu/java/security/der/DER.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_der_DER__ +#define __gnu_java_security_der_DER__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace der + { + class DER; + } + } + } + } +} + +class gnu::java::security::der::DER : public ::java::lang::Object +{ + +public: + static const jint UNIVERSAL = 0; + static const jint APPLICATION = 64; + static const jint CONTEXT = 128; + static const jint PRIVATE = 192; + static const jint CONSTRUCTED = 32; + static const jint ANY = 0; + static const jint BOOLEAN = 1; + static const jint INTEGER = 2; + static const jint BIT_STRING = 3; + static const jint OCTET_STRING = 4; + static const jint NULL = 5; + static const jint OBJECT_IDENTIFIER = 6; + static const jint REAL = 9; + static const jint ENUMERATED = 10; + static const jint RELATIVE_OID = 13; + static const jint SEQUENCE = 16; + static const jint SET = 17; + static ::java::lang::Object * CONSTRUCTED_VALUE; + static const jint NUMERIC_STRING = 18; + static const jint PRINTABLE_STRING = 19; + static const jint T61_STRING = 20; + static const jint VIDEOTEX_STRING = 21; + static const jint IA5_STRING = 22; + static const jint GRAPHIC_STRING = 25; + static const jint ISO646_STRING = 26; + static const jint GENERAL_STRING = 27; + static const jint UTF8_STRING = 12; + static const jint UNIVERSAL_STRING = 28; + static const jint BMP_STRING = 30; + static const jint UTC_TIME = 23; + static const jint GENERALIZED_TIME = 24; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_der_DER__ diff --git a/libjava/gnu/java/security/der/DEREncodingException.h b/libjava/gnu/java/security/der/DEREncodingException.h new file mode 100644 index 00000000000..dc417bf76e0 --- /dev/null +++ b/libjava/gnu/java/security/der/DEREncodingException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_der_DEREncodingException__ +#define __gnu_java_security_der_DEREncodingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace der + { + class DEREncodingException; + } + } + } + } +} + +class gnu::java::security::der::DEREncodingException : public ::java::io::IOException +{ + +public: + DEREncodingException(); + DEREncodingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_der_DEREncodingException__ diff --git a/libjava/gnu/java/security/der/DERReader.h b/libjava/gnu/java/security/der/DERReader.h new file mode 100644 index 00000000000..7e59f85db35 --- /dev/null +++ b/libjava/gnu/java/security/der/DERReader.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_der_DERReader__ +#define __gnu_java_security_der_DERReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace der + { + class DERReader; + class DERValue; + } + } + } + } +} + +class gnu::java::security::der::DERReader : public ::java::lang::Object +{ + +public: + DERReader(JArray< jbyte > *); + DERReader(JArray< jbyte > *, jint, jint); + DERReader(::java::io::InputStream *); + static ::gnu::java::security::der::DERValue * read(JArray< jbyte > *); + virtual void skip(jint); + virtual ::gnu::java::security::der::DERValue * read(); +public: // actually protected + virtual jint readLength(); +private: + ::java::lang::Object * readUniversal(jint, jint); + static ::java::lang::String * makeString(jint, JArray< jbyte > *); + static ::java::lang::String * fromIso88591(JArray< jbyte > *); + static ::java::lang::String * fromUtf16Be(JArray< jbyte > *); + static ::java::lang::String * fromUtf8(JArray< jbyte > *); + ::java::util::Date * makeTime(jint, JArray< jbyte > *); +public: // actually protected + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; + ::java::io::ByteArrayOutputStream * encBuf; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_der_DERReader__ diff --git a/libjava/gnu/java/security/der/DERValue.h b/libjava/gnu/java/security/der/DERValue.h new file mode 100644 index 00000000000..a9572543bc5 --- /dev/null +++ b/libjava/gnu/java/security/der/DERValue.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_der_DERValue__ +#define __gnu_java_security_der_DERValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace der + { + class DERValue; + } + } + } + } +} + +class gnu::java::security::der::DERValue : public ::java::lang::Object +{ + +public: + DERValue(jint, jint, ::java::lang::Object *, JArray< jbyte > *); + DERValue(jint, ::java::lang::Object *); + virtual jint getExternalTag(); + virtual jint getTag(); + virtual jint getTagClass(); + virtual jboolean isConstructed(); + virtual jint getLength(); + virtual ::java::lang::Object * getValue(); + virtual ::java::lang::Object * getValueAs(jint); + virtual JArray< jbyte > * getEncoded(); + virtual jint getEncodedLength(); + virtual ::java::lang::String * toString(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) tagClass; + jboolean constructed; + jint tag; + jint length; + ::java::lang::Object * value; + JArray< jbyte > * encoded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_der_DERValue__ diff --git a/libjava/gnu/java/security/der/DERWriter.h b/libjava/gnu/java/security/der/DERWriter.h new file mode 100644 index 00000000000..a7ea52c783c --- /dev/null +++ b/libjava/gnu/java/security/der/DERWriter.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_der_DERWriter__ +#define __gnu_java_security_der_DERWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace der + { + class BitString; + class DERValue; + class DERWriter; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::der::DERWriter : public ::java::lang::Object +{ + + DERWriter(); +public: + static jint write(::java::io::OutputStream *, ::gnu::java::security::der::DERValue *); + static jint definiteEncodingSize(jint); +private: + static jint writeBoolean(::java::io::OutputStream *, ::java::lang::Boolean *); + static jint writeInteger(::java::io::OutputStream *, ::java::math::BigInteger *); + static jint writeSequence(::java::io::OutputStream *, ::java::util::List *); + static jint writeSet(::java::io::OutputStream *, ::java::util::Set *); + static jint writeOID(::java::io::OutputStream *, ::gnu::java::security::OID *); + static jint writeBitString(::java::io::OutputStream *, ::gnu::java::security::der::BitString *); + static jint writeString(::java::io::OutputStream *, jint, ::java::lang::String *); + static JArray< jbyte > * toIso88591(::java::lang::String *); + static JArray< jbyte > * toUtf16Be(::java::lang::String *); + static JArray< jbyte > * toUtf8(::java::lang::String *); + static jint writeDate(::java::io::OutputStream *, jint, ::java::util::Date *); +public: // actually package-private + static void writeLength(::java::io::OutputStream *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_der_DERWriter__ diff --git a/libjava/gnu/java/security/hash/BaseHash.h b/libjava/gnu/java/security/hash/BaseHash.h new file mode 100644 index 00000000000..f2ec075509e --- /dev/null +++ b/libjava/gnu/java/security/hash/BaseHash.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_BaseHash__ +#define __gnu_java_security_hash_BaseHash__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class BaseHash; + } + } + } + } +} + +class gnu::java::security::hash::BaseHash : public ::java::lang::Object +{ + +public: // actually protected + BaseHash(::java::lang::String *, jint, jint); +public: + virtual ::java::lang::String * name(); + virtual jint hashSize(); + virtual jint blockSize(); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *); + virtual void update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * digest(); + virtual void reset(); + virtual ::java::lang::Object * clone() = 0; + virtual jboolean selfTest() = 0; +public: // actually protected + virtual JArray< jbyte > * padBuffer() = 0; + virtual JArray< jbyte > * getResult() = 0; + virtual void resetContext() = 0; + virtual void transform(JArray< jbyte > *, jint) = 0; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; + jint hashSize__; + jint blockSize__; + jlong count; + JArray< jbyte > * buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_BaseHash__ diff --git a/libjava/gnu/java/security/hash/HashFactory.h b/libjava/gnu/java/security/hash/HashFactory.h new file mode 100644 index 00000000000..265d03a4222 --- /dev/null +++ b/libjava/gnu/java/security/hash/HashFactory.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_HashFactory__ +#define __gnu_java_security_hash_HashFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class HashFactory; + class IMessageDigest; + } + } + } + } +} + +class gnu::java::security::hash::HashFactory : public ::java::lang::Object +{ + + HashFactory(); +public: + static ::gnu::java::security::hash::IMessageDigest * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_HashFactory__ diff --git a/libjava/gnu/java/security/hash/Haval.h b/libjava/gnu/java/security/hash/Haval.h new file mode 100644 index 00000000000..648a293ca7f --- /dev/null +++ b/libjava/gnu/java/security/hash/Haval.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_Haval__ +#define __gnu_java_security_hash_Haval__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Haval; + } + } + } + } +} + +class gnu::java::security::hash::Haval : public ::gnu::java::security::hash::BaseHash +{ + +public: + Haval(); + Haval(jint); + Haval(jint, jint); +private: + Haval(::gnu::java::security::hash::Haval *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + void tailorDigestBits(); + jint FF1(jint, jint, jint, jint, jint, jint, jint, jint, jint); + jint FF2(jint, jint, jint, jint, jint, jint, jint, jint, jint, jint); + jint FF3(jint, jint, jint, jint, jint, jint, jint, jint, jint, jint); + jint FF4(jint, jint, jint, jint, jint, jint, jint, jint, jint, jint); + jint FF5(jint, jint, jint, jint, jint, jint, jint, jint, jint, jint); + jint f1(jint, jint, jint, jint, jint, jint, jint); + jint f2(jint, jint, jint, jint, jint, jint, jint); + jint f3(jint, jint, jint, jint, jint, jint, jint); + jint f4(jint, jint, jint, jint, jint, jint, jint); + jint f5(jint, jint, jint, jint, jint, jint, jint); +public: + static const jint HAVAL_VERSION = 1; + static const jint HAVAL_128_BIT = 16; + static const jint HAVAL_160_BIT = 20; + static const jint HAVAL_192_BIT = 24; + static const jint HAVAL_224_BIT = 28; + static const jint HAVAL_256_BIT = 32; + static const jint HAVAL_3_ROUND = 3; + static const jint HAVAL_4_ROUND = 4; + static const jint HAVAL_5_ROUND = 5; +private: + static const jint BLOCK_SIZE = 128; + static ::java::lang::String * DIGEST0; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) rounds; + jint h0; + jint h1; + jint h2; + jint h3; + jint h4; + jint h5; + jint h6; + jint h7; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_Haval__ diff --git a/libjava/gnu/java/security/hash/IMessageDigest.h b/libjava/gnu/java/security/hash/IMessageDigest.h new file mode 100644 index 00000000000..044a202705f --- /dev/null +++ b/libjava/gnu/java/security/hash/IMessageDigest.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_IMessageDigest__ +#define __gnu_java_security_hash_IMessageDigest__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + } +} + +class gnu::java::security::hash::IMessageDigest : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual jint hashSize() = 0; + virtual jint blockSize() = 0; + virtual void update(jbyte) = 0; + virtual void update(JArray< jbyte > *) = 0; + virtual void update(JArray< jbyte > *, jint, jint) = 0; + virtual JArray< jbyte > * digest() = 0; + virtual void reset() = 0; + virtual jboolean selfTest() = 0; + virtual ::java::lang::Object * clone() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_hash_IMessageDigest__ diff --git a/libjava/gnu/java/security/hash/MD2.h b/libjava/gnu/java/security/hash/MD2.h new file mode 100644 index 00000000000..f8a735a748f --- /dev/null +++ b/libjava/gnu/java/security/hash/MD2.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_MD2__ +#define __gnu_java_security_hash_MD2__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class MD2; + } + } + } + } +} + +class gnu::java::security::hash::MD2 : public ::gnu::java::security::hash::BaseHash +{ + +public: + MD2(); +private: + MD2(::gnu::java::security::hash::MD2 *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +public: // actually protected + virtual JArray< jbyte > * padBuffer(); + virtual void transform(JArray< jbyte > *, jint); +private: + void encryptBlock(JArray< jbyte > *, jint); + void updateCheckSumAndEncryptBlock(JArray< jbyte > *, jint); + static const jint DIGEST_LENGTH = 16; + static const jint BLOCK_LENGTH = 16; + static JArray< jbyte > * PI; + static ::java::lang::String * DIGEST0; + static ::java::lang::Boolean * valid; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) checksum; + JArray< jbyte > * work; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_MD2__ diff --git a/libjava/gnu/java/security/hash/MD4.h b/libjava/gnu/java/security/hash/MD4.h new file mode 100644 index 00000000000..64ea5922a62 --- /dev/null +++ b/libjava/gnu/java/security/hash/MD4.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_MD4__ +#define __gnu_java_security_hash_MD4__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class MD4; + } + } + } + } +} + +class gnu::java::security::hash::MD4 : public ::gnu::java::security::hash::BaseHash +{ + +public: + MD4(); +private: + MD4(::gnu::java::security::hash::MD4 *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +public: // actually protected + virtual JArray< jbyte > * padBuffer(); + virtual void transform(JArray< jbyte > *, jint); +private: + static const jint DIGEST_LENGTH = 16; + static const jint BLOCK_LENGTH = 64; + static const jint A = 1732584193; + static const jint B = -271733879; + static const jint C = -1732584194; + static const jint D = 271733878; + static ::java::lang::String * DIGEST0; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) a; + jint b; + jint c; + jint d; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_MD4__ diff --git a/libjava/gnu/java/security/hash/MD5.h b/libjava/gnu/java/security/hash/MD5.h new file mode 100644 index 00000000000..8f6376efeae --- /dev/null +++ b/libjava/gnu/java/security/hash/MD5.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_MD5__ +#define __gnu_java_security_hash_MD5__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class MD5; + } + } + } + } +} + +class gnu::java::security::hash::MD5 : public ::gnu::java::security::hash::BaseHash +{ + +public: + MD5(); +private: + MD5(::gnu::java::security::hash::MD5 *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + static const jint BLOCK_SIZE = 64; + static ::java::lang::String * DIGEST0; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) h0; + jint h1; + jint h2; + jint h3; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_MD5__ diff --git a/libjava/gnu/java/security/hash/RipeMD128.h b/libjava/gnu/java/security/hash/RipeMD128.h new file mode 100644 index 00000000000..e2d3274d9f9 --- /dev/null +++ b/libjava/gnu/java/security/hash/RipeMD128.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_RipeMD128__ +#define __gnu_java_security_hash_RipeMD128__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class RipeMD128; + } + } + } + } +} + +class gnu::java::security::hash::RipeMD128 : public ::gnu::java::security::hash::BaseHash +{ + +public: + RipeMD128(); +private: + RipeMD128(::gnu::java::security::hash::RipeMD128 *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + static const jint BLOCK_SIZE = 64; + static ::java::lang::String * DIGEST0; + static JArray< jint > * R; + static JArray< jint > * Rp; + static JArray< jint > * S; + static JArray< jint > * Sp; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) h0; + jint h1; + jint h2; + jint h3; + JArray< jint > * X; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_RipeMD128__ diff --git a/libjava/gnu/java/security/hash/RipeMD160.h b/libjava/gnu/java/security/hash/RipeMD160.h new file mode 100644 index 00000000000..f24e3fbd22f --- /dev/null +++ b/libjava/gnu/java/security/hash/RipeMD160.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_RipeMD160__ +#define __gnu_java_security_hash_RipeMD160__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class RipeMD160; + } + } + } + } +} + +class gnu::java::security::hash::RipeMD160 : public ::gnu::java::security::hash::BaseHash +{ + +public: + RipeMD160(); +private: + RipeMD160(::gnu::java::security::hash::RipeMD160 *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + static const jint BLOCK_SIZE = 64; + static ::java::lang::String * DIGEST0; + static JArray< jint > * R; + static JArray< jint > * Rp; + static JArray< jint > * S; + static JArray< jint > * Sp; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) h0; + jint h1; + jint h2; + jint h3; + jint h4; + JArray< jint > * X; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_RipeMD160__ diff --git a/libjava/gnu/java/security/hash/Sha160.h b/libjava/gnu/java/security/hash/Sha160.h new file mode 100644 index 00000000000..96f261d5dd7 --- /dev/null +++ b/libjava/gnu/java/security/hash/Sha160.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_Sha160__ +#define __gnu_java_security_hash_Sha160__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha160; + } + } + } + } +} + +class gnu::java::security::hash::Sha160 : public ::gnu::java::security::hash::BaseHash +{ + +public: + Sha160(); +private: + Sha160(::gnu::java::security::hash::Sha160 *); +public: + static JArray< jint > * G(jint, jint, jint, jint, jint, JArray< jbyte > *, jint); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + static JArray< jint > * sha(jint, jint, jint, jint, jint, JArray< jbyte > *, jint); + static const jint BLOCK_SIZE = 64; + static ::java::lang::String * DIGEST0; + static JArray< jint > * w; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) h0; + jint h1; + jint h2; + jint h3; + jint h4; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_Sha160__ diff --git a/libjava/gnu/java/security/hash/Sha256.h b/libjava/gnu/java/security/hash/Sha256.h new file mode 100644 index 00000000000..628a43af1d5 --- /dev/null +++ b/libjava/gnu/java/security/hash/Sha256.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_Sha256__ +#define __gnu_java_security_hash_Sha256__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha256; + } + } + } + } +} + +class gnu::java::security::hash::Sha256 : public ::gnu::java::security::hash::BaseHash +{ + +public: + Sha256(); +private: + Sha256(::gnu::java::security::hash::Sha256 *); +public: + static JArray< jint > * G(jint, jint, jint, jint, jint, jint, jint, jint, JArray< jbyte > *, jint); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + static JArray< jint > * sha(jint, jint, jint, jint, jint, jint, jint, jint, JArray< jbyte > *, jint); + static JArray< jint > * k; + static const jint BLOCK_SIZE = 64; + static ::java::lang::String * DIGEST0; + static JArray< jint > * w; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) h0; + jint h1; + jint h2; + jint h3; + jint h4; + jint h5; + jint h6; + jint h7; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_Sha256__ diff --git a/libjava/gnu/java/security/hash/Sha384.h b/libjava/gnu/java/security/hash/Sha384.h new file mode 100644 index 00000000000..503da66b54d --- /dev/null +++ b/libjava/gnu/java/security/hash/Sha384.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_Sha384__ +#define __gnu_java_security_hash_Sha384__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha384; + } + } + } + } +} + +class gnu::java::security::hash::Sha384 : public ::gnu::java::security::hash::BaseHash +{ + +public: + Sha384(); +private: + Sha384(::gnu::java::security::hash::Sha384 *); +public: + static JArray< jlong > * G(jlong, jlong, jlong, jlong, jlong, jlong, jlong, jlong, JArray< jbyte > *, jint); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + static JArray< jlong > * sha(jlong, jlong, jlong, jlong, jlong, jlong, jlong, jlong, JArray< jbyte > *, jint); + static JArray< jlong > * k; + static const jint BLOCK_SIZE = 128; + static ::java::lang::String * DIGEST0; + static JArray< jlong > * w; + static ::java::lang::Boolean * valid; + jlong __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) h0; + jlong h1; + jlong h2; + jlong h3; + jlong h4; + jlong h5; + jlong h6; + jlong h7; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_Sha384__ diff --git a/libjava/gnu/java/security/hash/Sha512.h b/libjava/gnu/java/security/hash/Sha512.h new file mode 100644 index 00000000000..764ed786904 --- /dev/null +++ b/libjava/gnu/java/security/hash/Sha512.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_Sha512__ +#define __gnu_java_security_hash_Sha512__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha512; + } + } + } + } +} + +class gnu::java::security::hash::Sha512 : public ::gnu::java::security::hash::BaseHash +{ + +public: + Sha512(); +private: + Sha512(::gnu::java::security::hash::Sha512 *); +public: + static JArray< jlong > * G(jlong, jlong, jlong, jlong, jlong, jlong, jlong, jlong, JArray< jbyte > *, jint); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void transform(JArray< jbyte > *, jint); + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); +public: + virtual jboolean selfTest(); +private: + static JArray< jlong > * sha(jlong, jlong, jlong, jlong, jlong, jlong, jlong, jlong, JArray< jbyte > *, jint); + static JArray< jlong > * k; + static const jint BLOCK_SIZE = 128; + static ::java::lang::String * DIGEST0; + static JArray< jlong > * w; + static ::java::lang::Boolean * valid; + jlong __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) h0; + jlong h1; + jlong h2; + jlong h3; + jlong h4; + jlong h5; + jlong h6; + jlong h7; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_Sha512__ diff --git a/libjava/gnu/java/security/hash/Tiger.h b/libjava/gnu/java/security/hash/Tiger.h new file mode 100644 index 00000000000..93136ce9042 --- /dev/null +++ b/libjava/gnu/java/security/hash/Tiger.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_Tiger__ +#define __gnu_java_security_hash_Tiger__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Tiger; + } + } + } + } +} + +class gnu::java::security::hash::Tiger : public ::gnu::java::security::hash::BaseHash +{ + +public: + Tiger(); +private: + Tiger(::gnu::java::security::hash::Tiger *); +public: + virtual ::java::lang::Object * clone(); + virtual jboolean selfTest(); +public: // actually protected + virtual JArray< jbyte > * padBuffer(); + virtual JArray< jbyte > * getResult(); + virtual void resetContext(); + virtual void transform(JArray< jbyte > *, jint); +private: + static const jint HASH_SIZE = 24; + static const jint BLOCK_SIZE = 64; + static ::java::lang::String * DIGEST0; + static const jlong A = 81985529216486895LL; + static const jlong B = -81985529216486896LL; + static const jlong C = -1110518062304271993LL; + static JArray< jlong > * T1; + static JArray< jlong > * T2; + static JArray< jlong > * T3; + static JArray< jlong > * T4; + static ::java::lang::Boolean * valid; + jlong __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) a; + jlong b; + jlong c; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_Tiger__ diff --git a/libjava/gnu/java/security/hash/Whirlpool.h b/libjava/gnu/java/security/hash/Whirlpool.h new file mode 100644 index 00000000000..436ff6b70c2 --- /dev/null +++ b/libjava/gnu/java/security/hash/Whirlpool.h @@ -0,0 +1,113 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_hash_Whirlpool__ +#define __gnu_java_security_hash_Whirlpool__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Whirlpool; + } + } + } + } +} + +class gnu::java::security::hash::Whirlpool : public ::gnu::java::security::hash::BaseHash +{ + +public: + Whirlpool(); +private: + Whirlpool(::gnu::java::security::hash::Whirlpool *); +public: + ::java::lang::Object * clone(); +public: // actually protected + void transform(JArray< jbyte > *, jint); + JArray< jbyte > * padBuffer(); + JArray< jbyte > * getResult(); + void resetContext(); +public: + jboolean selfTest(); +private: + static ::java::util::logging::Logger * log; + static const jint BLOCK_SIZE = 64; + static ::java::lang::String * DIGEST0; + static const jint R = 10; + static ::java::lang::String * S_box; + static JArray< jlong > * T0; + static JArray< jlong > * T1; + static JArray< jlong > * T2; + static JArray< jlong > * T3; + static JArray< jlong > * T4; + static JArray< jlong > * T5; + static JArray< jlong > * T6; + static JArray< jlong > * T7; + static JArray< jlong > * rc; + static ::java::lang::Boolean * valid; + jlong __attribute__((aligned(__alignof__( ::gnu::java::security::hash::BaseHash)))) H0; + jlong H1; + jlong H2; + jlong H3; + jlong H4; + jlong H5; + jlong H6; + jlong H7; + jlong k00; + jlong k01; + jlong k02; + jlong k03; + jlong k04; + jlong k05; + jlong k06; + jlong k07; + jlong Kr0; + jlong Kr1; + jlong Kr2; + jlong Kr3; + jlong Kr4; + jlong Kr5; + jlong Kr6; + jlong Kr7; + jlong n0; + jlong n1; + jlong n2; + jlong n3; + jlong n4; + jlong n5; + jlong n6; + jlong n7; + jlong nn0; + jlong nn1; + jlong nn2; + jlong nn3; + jlong nn4; + jlong nn5; + jlong nn6; + jlong nn7; + jlong w0; + jlong w1; + jlong w2; + jlong w3; + jlong w4; + jlong w5; + jlong w6; + jlong w7; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_hash_Whirlpool__ diff --git a/libjava/gnu/java/security/jce/hash/HavalSpi.h b/libjava/gnu/java/security/jce/hash/HavalSpi.h new file mode 100644 index 00000000000..71d304a0f50 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/HavalSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_HavalSpi__ +#define __gnu_java_security_jce_hash_HavalSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class HavalSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::HavalSpi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + HavalSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_HavalSpi__ diff --git a/libjava/gnu/java/security/jce/hash/MD2Spi.h b/libjava/gnu/java/security/jce/hash/MD2Spi.h new file mode 100644 index 00000000000..88aeccdea71 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/MD2Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_MD2Spi__ +#define __gnu_java_security_jce_hash_MD2Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class MD2Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::MD2Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + MD2Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_MD2Spi__ diff --git a/libjava/gnu/java/security/jce/hash/MD4Spi.h b/libjava/gnu/java/security/jce/hash/MD4Spi.h new file mode 100644 index 00000000000..0bc60f7a383 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/MD4Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_MD4Spi__ +#define __gnu_java_security_jce_hash_MD4Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class MD4Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::MD4Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + MD4Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_MD4Spi__ diff --git a/libjava/gnu/java/security/jce/hash/MD5Spi.h b/libjava/gnu/java/security/jce/hash/MD5Spi.h new file mode 100644 index 00000000000..06e97fc9d09 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/MD5Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_MD5Spi__ +#define __gnu_java_security_jce_hash_MD5Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class MD5Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::MD5Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + MD5Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_MD5Spi__ diff --git a/libjava/gnu/java/security/jce/hash/MessageDigestAdapter.h b/libjava/gnu/java/security/jce/hash/MessageDigestAdapter.h new file mode 100644 index 00000000000..f12d4caa22f --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/MessageDigestAdapter.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_MessageDigestAdapter__ +#define __gnu_java_security_jce_hash_MessageDigestAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace jce + { + namespace hash + { + class MessageDigestAdapter; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::MessageDigestAdapter : public ::java::security::MessageDigestSpi +{ + +public: // actually protected + MessageDigestAdapter(::java::lang::String *); +private: + MessageDigestAdapter(::gnu::java::security::hash::IMessageDigest *); +public: + virtual ::java::lang::Object * clone(); + virtual jint engineGetDigestLength(); + virtual void engineUpdate(jbyte); + virtual void engineUpdate(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineDigest(); + virtual jint engineDigest(JArray< jbyte > *, jint, jint); + virtual void engineReset(); +private: + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::security::MessageDigestSpi)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_MessageDigestAdapter__ diff --git a/libjava/gnu/java/security/jce/hash/RipeMD128Spi.h b/libjava/gnu/java/security/jce/hash/RipeMD128Spi.h new file mode 100644 index 00000000000..35f1979fed8 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/RipeMD128Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_RipeMD128Spi__ +#define __gnu_java_security_jce_hash_RipeMD128Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class RipeMD128Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::RipeMD128Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + RipeMD128Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_RipeMD128Spi__ diff --git a/libjava/gnu/java/security/jce/hash/RipeMD160Spi.h b/libjava/gnu/java/security/jce/hash/RipeMD160Spi.h new file mode 100644 index 00000000000..79f5e496064 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/RipeMD160Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_RipeMD160Spi__ +#define __gnu_java_security_jce_hash_RipeMD160Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class RipeMD160Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::RipeMD160Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + RipeMD160Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_RipeMD160Spi__ diff --git a/libjava/gnu/java/security/jce/hash/Sha160Spi.h b/libjava/gnu/java/security/jce/hash/Sha160Spi.h new file mode 100644 index 00000000000..d4fc3924e95 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/Sha160Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_Sha160Spi__ +#define __gnu_java_security_jce_hash_Sha160Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class Sha160Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::Sha160Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + Sha160Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_Sha160Spi__ diff --git a/libjava/gnu/java/security/jce/hash/Sha256Spi.h b/libjava/gnu/java/security/jce/hash/Sha256Spi.h new file mode 100644 index 00000000000..206ff8220ec --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/Sha256Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_Sha256Spi__ +#define __gnu_java_security_jce_hash_Sha256Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class Sha256Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::Sha256Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + Sha256Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_Sha256Spi__ diff --git a/libjava/gnu/java/security/jce/hash/Sha384Spi.h b/libjava/gnu/java/security/jce/hash/Sha384Spi.h new file mode 100644 index 00000000000..2270ffe824c --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/Sha384Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_Sha384Spi__ +#define __gnu_java_security_jce_hash_Sha384Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class Sha384Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::Sha384Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + Sha384Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_Sha384Spi__ diff --git a/libjava/gnu/java/security/jce/hash/Sha512Spi.h b/libjava/gnu/java/security/jce/hash/Sha512Spi.h new file mode 100644 index 00000000000..f193304e1af --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/Sha512Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_Sha512Spi__ +#define __gnu_java_security_jce_hash_Sha512Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class Sha512Spi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::Sha512Spi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + Sha512Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_Sha512Spi__ diff --git a/libjava/gnu/java/security/jce/hash/TigerSpi.h b/libjava/gnu/java/security/jce/hash/TigerSpi.h new file mode 100644 index 00000000000..42897e8a5d0 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/TigerSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_TigerSpi__ +#define __gnu_java_security_jce_hash_TigerSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class TigerSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::TigerSpi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + TigerSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_TigerSpi__ diff --git a/libjava/gnu/java/security/jce/hash/WhirlpoolSpi.h b/libjava/gnu/java/security/jce/hash/WhirlpoolSpi.h new file mode 100644 index 00000000000..a8d883e9019 --- /dev/null +++ b/libjava/gnu/java/security/jce/hash/WhirlpoolSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_hash_WhirlpoolSpi__ +#define __gnu_java_security_jce_hash_WhirlpoolSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace hash + { + class WhirlpoolSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::hash::WhirlpoolSpi : public ::gnu::java::security::jce::hash::MessageDigestAdapter +{ + +public: + WhirlpoolSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_hash_WhirlpoolSpi__ diff --git a/libjava/gnu/java/security/jce/prng/HavalRandomSpi.h b/libjava/gnu/java/security/jce/prng/HavalRandomSpi.h new file mode 100644 index 00000000000..727d444e92d --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/HavalRandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_HavalRandomSpi__ +#define __gnu_java_security_jce_prng_HavalRandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class HavalRandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::HavalRandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + HavalRandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_HavalRandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/MD2RandomSpi.h b/libjava/gnu/java/security/jce/prng/MD2RandomSpi.h new file mode 100644 index 00000000000..053a305aa12 --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/MD2RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_MD2RandomSpi__ +#define __gnu_java_security_jce_prng_MD2RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class MD2RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::MD2RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + MD2RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_MD2RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/MD4RandomSpi.h b/libjava/gnu/java/security/jce/prng/MD4RandomSpi.h new file mode 100644 index 00000000000..0f11deb53bf --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/MD4RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_MD4RandomSpi__ +#define __gnu_java_security_jce_prng_MD4RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class MD4RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::MD4RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + MD4RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_MD4RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/MD5RandomSpi.h b/libjava/gnu/java/security/jce/prng/MD5RandomSpi.h new file mode 100644 index 00000000000..8e5cc27f880 --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/MD5RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_MD5RandomSpi__ +#define __gnu_java_security_jce_prng_MD5RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class MD5RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::MD5RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + MD5RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_MD5RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/RipeMD128RandomSpi.h b/libjava/gnu/java/security/jce/prng/RipeMD128RandomSpi.h new file mode 100644 index 00000000000..51afaea58a9 --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/RipeMD128RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_RipeMD128RandomSpi__ +#define __gnu_java_security_jce_prng_RipeMD128RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class RipeMD128RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::RipeMD128RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + RipeMD128RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_RipeMD128RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/RipeMD160RandomSpi.h b/libjava/gnu/java/security/jce/prng/RipeMD160RandomSpi.h new file mode 100644 index 00000000000..f590267fde4 --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/RipeMD160RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_RipeMD160RandomSpi__ +#define __gnu_java_security_jce_prng_RipeMD160RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class RipeMD160RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::RipeMD160RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + RipeMD160RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_RipeMD160RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/SecureRandomAdapter.h b/libjava/gnu/java/security/jce/prng/SecureRandomAdapter.h new file mode 100644 index 00000000000..71b29f7734d --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/SecureRandomAdapter.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_SecureRandomAdapter__ +#define __gnu_java_security_jce_prng_SecureRandomAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class SecureRandomAdapter; + } + } + namespace prng + { + class MDGenerator; + } + } + } + } +} + +class gnu::java::security::jce::prng::SecureRandomAdapter : public ::java::security::SecureRandomSpi +{ + +public: // actually protected + SecureRandomAdapter(::java::lang::String *); +public: + virtual JArray< jbyte > * engineGenerateSeed(jint); + virtual void engineNextBytes(JArray< jbyte > *); + virtual void engineSetSeed(JArray< jbyte > *); +private: + ::gnu::java::security::prng::MDGenerator * __attribute__((aligned(__alignof__( ::java::security::SecureRandomSpi)))) adaptee; + ::java::lang::String * mdName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_SecureRandomAdapter__ diff --git a/libjava/gnu/java/security/jce/prng/Sha160RandomSpi.h b/libjava/gnu/java/security/jce/prng/Sha160RandomSpi.h new file mode 100644 index 00000000000..dc896ab567a --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/Sha160RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_Sha160RandomSpi__ +#define __gnu_java_security_jce_prng_Sha160RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class Sha160RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::Sha160RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + Sha160RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_Sha160RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/Sha256RandomSpi.h b/libjava/gnu/java/security/jce/prng/Sha256RandomSpi.h new file mode 100644 index 00000000000..73e676cea01 --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/Sha256RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_Sha256RandomSpi__ +#define __gnu_java_security_jce_prng_Sha256RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class Sha256RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::Sha256RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + Sha256RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_Sha256RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/Sha384RandomSpi.h b/libjava/gnu/java/security/jce/prng/Sha384RandomSpi.h new file mode 100644 index 00000000000..2f76f6903ba --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/Sha384RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_Sha384RandomSpi__ +#define __gnu_java_security_jce_prng_Sha384RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class Sha384RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::Sha384RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + Sha384RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_Sha384RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/Sha512RandomSpi.h b/libjava/gnu/java/security/jce/prng/Sha512RandomSpi.h new file mode 100644 index 00000000000..0209fec8333 --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/Sha512RandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_Sha512RandomSpi__ +#define __gnu_java_security_jce_prng_Sha512RandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class Sha512RandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::Sha512RandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + Sha512RandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_Sha512RandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/TigerRandomSpi.h b/libjava/gnu/java/security/jce/prng/TigerRandomSpi.h new file mode 100644 index 00000000000..238685cc6ee --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/TigerRandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_TigerRandomSpi__ +#define __gnu_java_security_jce_prng_TigerRandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class TigerRandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::TigerRandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + TigerRandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_TigerRandomSpi__ diff --git a/libjava/gnu/java/security/jce/prng/WhirlpoolRandomSpi.h b/libjava/gnu/java/security/jce/prng/WhirlpoolRandomSpi.h new file mode 100644 index 00000000000..4d31a5e8d40 --- /dev/null +++ b/libjava/gnu/java/security/jce/prng/WhirlpoolRandomSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_prng_WhirlpoolRandomSpi__ +#define __gnu_java_security_jce_prng_WhirlpoolRandomSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace prng + { + class WhirlpoolRandomSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::prng::WhirlpoolRandomSpi : public ::gnu::java::security::jce::prng::SecureRandomAdapter +{ + +public: + WhirlpoolRandomSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_prng_WhirlpoolRandomSpi__ diff --git a/libjava/gnu/java/security/jce/sig/DSSKeyFactory.h b/libjava/gnu/java/security/jce/sig/DSSKeyFactory.h new file mode 100644 index 00000000000..139ee5ddf15 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/DSSKeyFactory.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_DSSKeyFactory__ +#define __gnu_java_security_jce_sig_DSSKeyFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class DSSKeyFactory; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + class PrivateKey; + class PublicKey; + namespace spec + { + class KeySpec; + } + } + } +} + +class gnu::java::security::jce::sig::DSSKeyFactory : public ::java::security::KeyFactorySpi +{ + +public: + DSSKeyFactory(); +public: // actually protected + virtual ::java::security::PublicKey * engineGeneratePublic(::java::security::spec::KeySpec *); + virtual ::java::security::PrivateKey * engineGeneratePrivate(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::java::security::Key *, ::java::lang::Class *); + virtual ::java::security::Key * engineTranslateKey(::java::security::Key *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_DSSKeyFactory__ diff --git a/libjava/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.h b/libjava/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.h new file mode 100644 index 00000000000..38a6a941920 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_DSSKeyPairGeneratorSpi__ +#define __gnu_java_security_jce_sig_DSSKeyPairGeneratorSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class DSSKeyPairGeneratorSpi; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + namespace interfaces + { + class DSAParams; + } + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::java::security::jce::sig::DSSKeyPairGeneratorSpi : public ::gnu::java::security::jce::sig::KeyPairGeneratorAdapter +{ + +public: + DSSKeyPairGeneratorSpi(); + virtual void initialize(jint, ::java::security::SecureRandom *); + virtual void initialize(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void initialize(::java::security::interfaces::DSAParams *, ::java::security::SecureRandom *); + virtual void initialize(jint, jboolean, ::java::security::SecureRandom *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_DSSKeyPairGeneratorSpi__ diff --git a/libjava/gnu/java/security/jce/sig/DSSParameters.h b/libjava/gnu/java/security/jce/sig/DSSParameters.h new file mode 100644 index 00000000000..6d6f612bdcc --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/DSSParameters.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_DSSParameters__ +#define __gnu_java_security_jce_sig_DSSParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class DSSParameters; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::java::security::jce::sig::DSSParameters : public ::java::security::AlgorithmParametersSpi +{ + +public: + DSSParameters(); +public: // actually protected + virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *); + virtual void engineInit(JArray< jbyte > *); + virtual void engineInit(JArray< jbyte > *, ::java::lang::String *); + virtual ::java::security::spec::AlgorithmParameterSpec * engineGetParameterSpec(::java::lang::Class *); + virtual JArray< jbyte > * engineGetEncoded(); + virtual JArray< jbyte > * engineGetEncoded(::java::lang::String *); + virtual ::java::lang::String * engineToString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::security::AlgorithmParametersSpi)))) p; + ::java::math::BigInteger * q; + ::java::math::BigInteger * g; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_DSSParameters__ diff --git a/libjava/gnu/java/security/jce/sig/DSSParametersGenerator.h b/libjava/gnu/java/security/jce/sig/DSSParametersGenerator.h new file mode 100644 index 00000000000..292069400ff --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/DSSParametersGenerator.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_DSSParametersGenerator__ +#define __gnu_java_security_jce_sig_DSSParametersGenerator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class DSSParametersGenerator; + } + } + namespace key + { + namespace dss + { + class FIPS186; + } + } + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + class Provider; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::java::security::jce::sig::DSSParametersGenerator : public ::java::security::AlgorithmParameterGeneratorSpi +{ + +public: + DSSParametersGenerator(); +public: // actually protected + virtual void engineInit(jint, ::java::security::SecureRandom *); + virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual ::java::security::AlgorithmParameters * engineGenerateParameters(); +private: + static ::java::security::Provider * GNU; + jint __attribute__((aligned(__alignof__( ::java::security::AlgorithmParameterGeneratorSpi)))) modulusLength; + ::java::security::SecureRandom * rnd; + ::gnu::java::security::key::dss::FIPS186 * fips; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_DSSParametersGenerator__ diff --git a/libjava/gnu/java/security/jce/sig/DSSRawSignatureSpi.h b/libjava/gnu/java/security/jce/sig/DSSRawSignatureSpi.h new file mode 100644 index 00000000000..d135b61f9b9 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/DSSRawSignatureSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_DSSRawSignatureSpi__ +#define __gnu_java_security_jce_sig_DSSRawSignatureSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class DSSRawSignatureSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::DSSRawSignatureSpi : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + DSSRawSignatureSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_DSSRawSignatureSpi__ diff --git a/libjava/gnu/java/security/jce/sig/EncodedKeyFactory.h b/libjava/gnu/java/security/jce/sig/EncodedKeyFactory.h new file mode 100644 index 00000000000..23dced6dbe8 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/EncodedKeyFactory.h @@ -0,0 +1,106 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_EncodedKeyFactory__ +#define __gnu_java_security_jce_sig_EncodedKeyFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class EncodedKeyFactory; + } + } + namespace key + { + namespace dss + { + class DSSPublicKey; + } + namespace rsa + { + class GnuRSAPublicKey; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + class PrivateKey; + class PublicKey; + namespace spec + { + class DSAPrivateKeySpec; + class DSAPublicKeySpec; + class KeySpec; + class RSAPrivateCrtKeySpec; + class RSAPublicKeySpec; + } + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPrivateKey; + class DHPublicKey; + } + namespace spec + { + class DHPrivateKeySpec; + class DHPublicKeySpec; + } + } + } +} + +class gnu::java::security::jce::sig::EncodedKeyFactory : public ::java::security::KeyFactorySpi +{ + +public: + EncodedKeyFactory(); +private: + static ::java::lang::Object * invokeConstructor(::java::lang::String *, JArray< ::java::lang::Object * > *); + static ::java::lang::Class * getConcreteClass(::java::lang::String *); + static ::java::lang::reflect::Constructor * getConcreteCtor(::java::lang::Class *); + static ::java::lang::Object * invokeValueOf(::java::lang::String *, JArray< jbyte > *); + static ::java::lang::reflect::Method * getValueOfMethod(::java::lang::Class *); +public: // actually protected + virtual ::java::security::PublicKey * engineGeneratePublic(::java::security::spec::KeySpec *); + virtual ::java::security::PrivateKey * engineGeneratePrivate(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::java::security::Key *, ::java::lang::Class *); + virtual ::java::security::Key * engineTranslateKey(::java::security::Key *); +private: + ::gnu::java::security::key::dss::DSSPublicKey * decodeDSSPublicKey(::java::security::spec::DSAPublicKeySpec *); + ::gnu::java::security::key::rsa::GnuRSAPublicKey * decodeRSAPublicKey(::java::security::spec::RSAPublicKeySpec *); + ::javax::crypto::interfaces::DHPublicKey * decodeDHPublicKey(::javax::crypto::spec::DHPublicKeySpec *); + ::javax::crypto::interfaces::DHPublicKey * decodeDHPublicKey(JArray< jbyte > *); + ::java::security::PrivateKey * decodeDSSPrivateKey(::java::security::spec::DSAPrivateKeySpec *); + ::java::security::PrivateKey * decodeRSAPrivateKey(::java::security::spec::RSAPrivateCrtKeySpec *); + ::javax::crypto::interfaces::DHPrivateKey * decodeDHPrivateKey(::javax::crypto::spec::DHPrivateKeySpec *); + ::javax::crypto::interfaces::DHPrivateKey * decodeDHPrivateKey(JArray< jbyte > *); + static ::java::util::logging::Logger * log; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_EncodedKeyFactory__ diff --git a/libjava/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.h b/libjava/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.h new file mode 100644 index 00000000000..9a7778408cb --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/KeyPairGeneratorAdapter.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_KeyPairGeneratorAdapter__ +#define __gnu_java_security_jce_sig_KeyPairGeneratorAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class KeyPairGeneratorAdapter; + } + } + namespace key + { + class IKeyPairGenerator; + } + } + } + } + namespace java + { + namespace security + { + class KeyPair; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::java::security::jce::sig::KeyPairGeneratorAdapter : public ::java::security::KeyPairGenerator +{ + +public: // actually protected + KeyPairGeneratorAdapter(::java::lang::String *); +public: + virtual void initialize(jint, ::java::security::SecureRandom *) = 0; + virtual void initialize(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *) = 0; + virtual ::java::security::KeyPair * generateKeyPair(); +public: // actually protected + ::gnu::java::security::key::IKeyPairGenerator * __attribute__((aligned(__alignof__( ::java::security::KeyPairGenerator)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_KeyPairGeneratorAdapter__ diff --git a/libjava/gnu/java/security/jce/sig/MD2withRSA.h b/libjava/gnu/java/security/jce/sig/MD2withRSA.h new file mode 100644 index 00000000000..68ae75f3230 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/MD2withRSA.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_MD2withRSA__ +#define __gnu_java_security_jce_sig_MD2withRSA__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class MD2withRSA; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::MD2withRSA : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + MD2withRSA(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_MD2withRSA__ diff --git a/libjava/gnu/java/security/jce/sig/MD5withRSA.h b/libjava/gnu/java/security/jce/sig/MD5withRSA.h new file mode 100644 index 00000000000..919b74feafb --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/MD5withRSA.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_MD5withRSA__ +#define __gnu_java_security_jce_sig_MD5withRSA__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class MD5withRSA; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::MD5withRSA : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + MD5withRSA(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_MD5withRSA__ diff --git a/libjava/gnu/java/security/jce/sig/RSAKeyFactory.h b/libjava/gnu/java/security/jce/sig/RSAKeyFactory.h new file mode 100644 index 00000000000..8c10a0a125b --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/RSAKeyFactory.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_RSAKeyFactory__ +#define __gnu_java_security_jce_sig_RSAKeyFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class RSAKeyFactory; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + class PrivateKey; + class PublicKey; + namespace spec + { + class KeySpec; + } + } + } +} + +class gnu::java::security::jce::sig::RSAKeyFactory : public ::java::security::KeyFactorySpi +{ + +public: + RSAKeyFactory(); +public: // actually protected + virtual ::java::security::PublicKey * engineGeneratePublic(::java::security::spec::KeySpec *); + virtual ::java::security::PrivateKey * engineGeneratePrivate(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::java::security::Key *, ::java::lang::Class *); + virtual ::java::security::Key * engineTranslateKey(::java::security::Key *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_RSAKeyFactory__ diff --git a/libjava/gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.h b/libjava/gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.h new file mode 100644 index 00000000000..97f6aced88f --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_RSAKeyPairGeneratorSpi__ +#define __gnu_java_security_jce_sig_RSAKeyPairGeneratorSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class RSAKeyPairGeneratorSpi; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::java::security::jce::sig::RSAKeyPairGeneratorSpi : public ::gnu::java::security::jce::sig::KeyPairGeneratorAdapter +{ + +public: + RSAKeyPairGeneratorSpi(); + virtual void initialize(jint, ::java::security::SecureRandom *); + virtual void initialize(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_RSAKeyPairGeneratorSpi__ diff --git a/libjava/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.h b/libjava/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.h new file mode 100644 index 00000000000..56ad41681f0 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_RSAPSSRawSignatureSpi__ +#define __gnu_java_security_jce_sig_RSAPSSRawSignatureSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class RSAPSSRawSignatureSpi; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::RSAPSSRawSignatureSpi : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + RSAPSSRawSignatureSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_RSAPSSRawSignatureSpi__ diff --git a/libjava/gnu/java/security/jce/sig/SHA160withDSS.h b/libjava/gnu/java/security/jce/sig/SHA160withDSS.h new file mode 100644 index 00000000000..fc595d46520 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/SHA160withDSS.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_SHA160withDSS__ +#define __gnu_java_security_jce_sig_SHA160withDSS__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class SHA160withDSS; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::SHA160withDSS : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + SHA160withDSS(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_SHA160withDSS__ diff --git a/libjava/gnu/java/security/jce/sig/SHA160withRSA.h b/libjava/gnu/java/security/jce/sig/SHA160withRSA.h new file mode 100644 index 00000000000..93a886c271c --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/SHA160withRSA.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_SHA160withRSA__ +#define __gnu_java_security_jce_sig_SHA160withRSA__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class SHA160withRSA; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::SHA160withRSA : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + SHA160withRSA(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_SHA160withRSA__ diff --git a/libjava/gnu/java/security/jce/sig/SHA256withRSA.h b/libjava/gnu/java/security/jce/sig/SHA256withRSA.h new file mode 100644 index 00000000000..9b736522ad8 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/SHA256withRSA.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_SHA256withRSA__ +#define __gnu_java_security_jce_sig_SHA256withRSA__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class SHA256withRSA; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::SHA256withRSA : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + SHA256withRSA(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_SHA256withRSA__ diff --git a/libjava/gnu/java/security/jce/sig/SHA384withRSA.h b/libjava/gnu/java/security/jce/sig/SHA384withRSA.h new file mode 100644 index 00000000000..db01a6e1452 --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/SHA384withRSA.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_SHA384withRSA__ +#define __gnu_java_security_jce_sig_SHA384withRSA__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class SHA384withRSA; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::SHA384withRSA : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + SHA384withRSA(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_SHA384withRSA__ diff --git a/libjava/gnu/java/security/jce/sig/SHA512withRSA.h b/libjava/gnu/java/security/jce/sig/SHA512withRSA.h new file mode 100644 index 00000000000..13ea935437c --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/SHA512withRSA.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_SHA512withRSA__ +#define __gnu_java_security_jce_sig_SHA512withRSA__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class SHA512withRSA; + } + } + } + } + } +} + +class gnu::java::security::jce::sig::SHA512withRSA : public ::gnu::java::security::jce::sig::SignatureAdapter +{ + +public: + SHA512withRSA(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_SHA512withRSA__ diff --git a/libjava/gnu/java/security/jce/sig/SignatureAdapter.h b/libjava/gnu/java/security/jce/sig/SignatureAdapter.h new file mode 100644 index 00000000000..68fdd64cb0f --- /dev/null +++ b/libjava/gnu/java/security/jce/sig/SignatureAdapter.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_jce_sig_SignatureAdapter__ +#define __gnu_java_security_jce_sig_SignatureAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace jce + { + namespace sig + { + class SignatureAdapter; + } + } + namespace sig + { + class ISignature; + class ISignatureCodec; + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::java::security::jce::sig::SignatureAdapter : public ::java::security::SignatureSpi +{ + +public: // actually protected + SignatureAdapter(::java::lang::String *, ::gnu::java::security::sig::ISignatureCodec *); +private: + SignatureAdapter(::gnu::java::security::sig::ISignature *, ::gnu::java::security::sig::ISignatureCodec *); +public: + virtual ::java::lang::Object * clone(); + virtual void engineInitVerify(::java::security::PublicKey *); + virtual void engineInitSign(::java::security::PrivateKey *); + virtual void engineInitSign(::java::security::PrivateKey *, ::java::security::SecureRandom *); + virtual void engineUpdate(jbyte); + virtual void engineUpdate(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineSign(); + virtual jint engineSign(JArray< jbyte > *, jint, jint); + virtual jboolean engineVerify(JArray< jbyte > *); + virtual void engineSetParameter(::java::lang::String *, ::java::lang::Object *); + virtual void engineSetParameter(::java::security::spec::AlgorithmParameterSpec *); + virtual ::java::lang::Object * engineGetParameter(::java::lang::String *); +private: + static ::java::util::logging::Logger * log; + ::gnu::java::security::sig::ISignature * __attribute__((aligned(__alignof__( ::java::security::SignatureSpi)))) adaptee; + ::gnu::java::security::sig::ISignatureCodec * codec; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_jce_sig_SignatureAdapter__ diff --git a/libjava/gnu/java/security/key/IKeyPairCodec.h b/libjava/gnu/java/security/key/IKeyPairCodec.h new file mode 100644 index 00000000000..61a4f1849ab --- /dev/null +++ b/libjava/gnu/java/security/key/IKeyPairCodec.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_IKeyPairCodec__ +#define __gnu_java_security_key_IKeyPairCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + class IKeyPairCodec; + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::key::IKeyPairCodec : public ::java::lang::Object +{ + +public: + virtual jint getFormatID() = 0; + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *) = 0; + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *) = 0; + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *) = 0; + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *) = 0; + static const jint RAW_FORMAT = 1; + static const jint X509_FORMAT = 2; + static const jint PKCS8_FORMAT = 3; + static const jint ASN1_FORMAT = 4; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_key_IKeyPairCodec__ diff --git a/libjava/gnu/java/security/key/IKeyPairGenerator.h b/libjava/gnu/java/security/key/IKeyPairGenerator.h new file mode 100644 index 00000000000..1ae2a486190 --- /dev/null +++ b/libjava/gnu/java/security/key/IKeyPairGenerator.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_IKeyPairGenerator__ +#define __gnu_java_security_key_IKeyPairGenerator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + class IKeyPairGenerator; + } + } + } + } + namespace java + { + namespace security + { + class KeyPair; + } + } +} + +class gnu::java::security::key::IKeyPairGenerator : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual void setup(::java::util::Map *) = 0; + virtual ::java::security::KeyPair * generate() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_key_IKeyPairGenerator__ diff --git a/libjava/gnu/java/security/key/KeyPairCodecFactory.h b/libjava/gnu/java/security/key/KeyPairCodecFactory.h new file mode 100644 index 00000000000..e6ac55fa93e --- /dev/null +++ b/libjava/gnu/java/security/key/KeyPairCodecFactory.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_KeyPairCodecFactory__ +#define __gnu_java_security_key_KeyPairCodecFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + class IKeyPairCodec; + class KeyPairCodecFactory; + } + } + } + } + namespace java + { + namespace security + { + class Key; + } + } +} + +class gnu::java::security::key::KeyPairCodecFactory : public ::java::lang::Object +{ + + KeyPairCodecFactory(); +public: + static ::gnu::java::security::key::IKeyPairCodec * getInstance(::java::lang::String *); + static ::gnu::java::security::key::IKeyPairCodec * getInstance(::java::lang::String *, ::java::lang::String *); + static ::gnu::java::security::key::IKeyPairCodec * getInstance(::java::lang::String *, jint); + static ::gnu::java::security::key::IKeyPairCodec * getInstance(::java::security::Key *); + static ::java::util::Set * getNames(); +private: + static ::gnu::java::security::key::IKeyPairCodec * makeInstance(::java::lang::String *); + static jboolean matches(::java::lang::Object *, ::java::lang::String *); + static ::gnu::java::security::key::IKeyPairCodec * getRawCodec(::java::lang::String *); + static ::gnu::java::security::key::IKeyPairCodec * getX509Codec(::java::lang::String *); + static ::gnu::java::security::key::IKeyPairCodec * getPKCS8Codec(::java::lang::String *); + static ::gnu::java::security::key::IKeyPairCodec * getRawCodec(::java::security::Key *); + static ::gnu::java::security::key::IKeyPairCodec * getX509Codec(::java::security::Key *); + static ::gnu::java::security::key::IKeyPairCodec * getPKCS8Codec(::java::security::Key *); + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_KeyPairCodecFactory__ diff --git a/libjava/gnu/java/security/key/KeyPairGeneratorFactory.h b/libjava/gnu/java/security/key/KeyPairGeneratorFactory.h new file mode 100644 index 00000000000..4d877a3154b --- /dev/null +++ b/libjava/gnu/java/security/key/KeyPairGeneratorFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_KeyPairGeneratorFactory__ +#define __gnu_java_security_key_KeyPairGeneratorFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + class IKeyPairGenerator; + class KeyPairGeneratorFactory; + } + } + } + } +} + +class gnu::java::security::key::KeyPairGeneratorFactory : public ::java::lang::Object +{ + + KeyPairGeneratorFactory(); +public: + static ::gnu::java::security::key::IKeyPairGenerator * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); +private: + static ::gnu::java::security::key::IKeyPairGenerator * makeInstance(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_KeyPairGeneratorFactory__ diff --git a/libjava/gnu/java/security/key/dss/DSSKey.h b/libjava/gnu/java/security/key/dss/DSSKey.h new file mode 100644 index 00000000000..de8ebb2500e --- /dev/null +++ b/libjava/gnu/java/security/key/dss/DSSKey.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_DSSKey__ +#define __gnu_java_security_key_dss_DSSKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace dss + { + class DSSKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + namespace interfaces + { + class DSAParams; + } + } + } +} + +class gnu::java::security::key::dss::DSSKey : public ::java::lang::Object +{ + +public: // actually protected + DSSKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); +public: + virtual ::java::security::interfaces::DSAParams * getParams(); + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * getFormat(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual JArray< jbyte > * getEncoded(jint) = 0; + virtual jboolean hasInheritedParameters(); +public: // actually protected + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p; + ::java::math::BigInteger * q; + ::java::math::BigInteger * g; + jint defaultFormat; +private: + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_DSSKey__ diff --git a/libjava/gnu/java/security/key/dss/DSSKeyPairGenerator.h b/libjava/gnu/java/security/key/dss/DSSKeyPairGenerator.h new file mode 100644 index 00000000000..e78abe027a5 --- /dev/null +++ b/libjava/gnu/java/security/key/dss/DSSKeyPairGenerator.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_DSSKeyPairGenerator__ +#define __gnu_java_security_key_dss_DSSKeyPairGenerator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace dss + { + class DSSKeyPairGenerator; + } + } + namespace util + { + class PRNG; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class KeyPair; + class SecureRandom; + namespace spec + { + class DSAParameterSpec; + } + } + } +} + +class gnu::java::security::key::dss::DSSKeyPairGenerator : public ::java::lang::Object +{ + +public: + DSSKeyPairGenerator(); + virtual ::java::lang::String * name(); + virtual void setup(::java::util::Map *); + virtual ::java::security::KeyPair * generate(); +private: + ::java::math::BigInteger * nextX(); + void nextRandomBytes(JArray< jbyte > *); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); + static ::java::util::logging::Logger * log; + static ::java::math::BigInteger * TWO; +public: + static ::java::lang::String * MODULUS_LENGTH; + static ::java::lang::String * USE_DEFAULTS; + static ::java::lang::String * STRICT_DEFAULTS; + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::String * DSS_PARAMETERS; + static ::java::lang::String * PREFERRED_ENCODING_FORMAT; + static const jint DEFAULT_MODULUS_LENGTH = 1024; +private: + static const jint DEFAULT_ENCODING_FORMAT = 1; + static JArray< jint > * T_SHS; +public: + static ::java::security::spec::DSAParameterSpec * KEY_PARAMS_512; + static ::java::security::spec::DSAParameterSpec * KEY_PARAMS_768; + static ::java::security::spec::DSAParameterSpec * KEY_PARAMS_1024; +private: + static ::java::math::BigInteger * TWO_POW_160; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) L; + ::java::security::SecureRandom * rnd; + ::java::math::BigInteger * seed; + ::java::math::BigInteger * counter; + ::java::math::BigInteger * p; + ::java::math::BigInteger * q; + ::java::math::BigInteger * e; + ::java::math::BigInteger * g; + ::java::math::BigInteger * XKEY; + ::gnu::java::security::util::PRNG * prng; + jint preferredFormat; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_DSSKeyPairGenerator__ diff --git a/libjava/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.h b/libjava/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.h new file mode 100644 index 00000000000..98813dc7103 --- /dev/null +++ b/libjava/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_DSSKeyPairPKCS8Codec__ +#define __gnu_java_security_key_dss_DSSKeyPairPKCS8Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace key + { + namespace dss + { + class DSSKeyPairPKCS8Codec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::key::dss::DSSKeyPairPKCS8Codec : public ::java::lang::Object +{ + +public: + DSSKeyPairPKCS8Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); +private: + static ::java::util::logging::Logger * log; + static ::gnu::java::security::OID * DSA_ALG_OID; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_DSSKeyPairPKCS8Codec__ diff --git a/libjava/gnu/java/security/key/dss/DSSKeyPairRawCodec.h b/libjava/gnu/java/security/key/dss/DSSKeyPairRawCodec.h new file mode 100644 index 00000000000..cc22055d6dc --- /dev/null +++ b/libjava/gnu/java/security/key/dss/DSSKeyPairRawCodec.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_DSSKeyPairRawCodec__ +#define __gnu_java_security_key_dss_DSSKeyPairRawCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace dss + { + class DSSKeyPairRawCodec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::key::dss::DSSKeyPairRawCodec : public ::java::lang::Object +{ + +public: + DSSKeyPairRawCodec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_DSSKeyPairRawCodec__ diff --git a/libjava/gnu/java/security/key/dss/DSSKeyPairX509Codec.h b/libjava/gnu/java/security/key/dss/DSSKeyPairX509Codec.h new file mode 100644 index 00000000000..c56ba1cf956 --- /dev/null +++ b/libjava/gnu/java/security/key/dss/DSSKeyPairX509Codec.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_DSSKeyPairX509Codec__ +#define __gnu_java_security_key_dss_DSSKeyPairX509Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace key + { + namespace dss + { + class DSSKeyPairX509Codec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::key::dss::DSSKeyPairX509Codec : public ::java::lang::Object +{ + +public: + DSSKeyPairX509Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); +private: + static ::gnu::java::security::OID * DSA_ALG_OID; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_DSSKeyPairX509Codec__ diff --git a/libjava/gnu/java/security/key/dss/DSSPrivateKey.h b/libjava/gnu/java/security/key/dss/DSSPrivateKey.h new file mode 100644 index 00000000000..b7816b86ac2 --- /dev/null +++ b/libjava/gnu/java/security/key/dss/DSSPrivateKey.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_DSSPrivateKey__ +#define __gnu_java_security_key_dss_DSSPrivateKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace dss + { + class DSSPrivateKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::key::dss::DSSPrivateKey : public ::gnu::java::security::key::dss::DSSKey +{ + +public: + DSSPrivateKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + DSSPrivateKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + static ::gnu::java::security::key::dss::DSSPrivateKey * valueOf(JArray< jbyte > *); + virtual ::java::math::BigInteger * getX(); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::java::security::key::dss::DSSKey)))) x; + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_DSSPrivateKey__ diff --git a/libjava/gnu/java/security/key/dss/DSSPublicKey.h b/libjava/gnu/java/security/key/dss/DSSPublicKey.h new file mode 100644 index 00000000000..bffd46237b6 --- /dev/null +++ b/libjava/gnu/java/security/key/dss/DSSPublicKey.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_DSSPublicKey__ +#define __gnu_java_security_key_dss_DSSPublicKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace dss + { + class DSSPublicKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::key::dss::DSSPublicKey : public ::gnu::java::security::key::dss::DSSKey +{ + +public: + DSSPublicKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + DSSPublicKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + static ::gnu::java::security::key::dss::DSSPublicKey * valueOf(JArray< jbyte > *); + virtual ::java::math::BigInteger * getY(); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::java::security::key::dss::DSSKey)))) y; + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_DSSPublicKey__ diff --git a/libjava/gnu/java/security/key/dss/FIPS186.h b/libjava/gnu/java/security/key/dss/FIPS186.h new file mode 100644 index 00000000000..1b972d44843 --- /dev/null +++ b/libjava/gnu/java/security/key/dss/FIPS186.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_dss_FIPS186__ +#define __gnu_java_security_key_dss_FIPS186__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha160; + } + namespace key + { + namespace dss + { + class FIPS186; + } + } + namespace util + { + class PRNG; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class SecureRandom; + } + } +} + +class gnu::java::security::key::dss::FIPS186 : public ::java::lang::Object +{ + +public: + FIPS186(jint, ::java::security::SecureRandom *); + virtual JArray< ::java::math::BigInteger * > * generateParameters(); +private: + void nextRandomBytes(JArray< jbyte > *); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); +public: + static const jint DSA_PARAMS_SEED = 0; + static const jint DSA_PARAMS_COUNTER = 1; + static const jint DSA_PARAMS_Q = 2; + static const jint DSA_PARAMS_P = 3; + static const jint DSA_PARAMS_E = 4; + static const jint DSA_PARAMS_G = 5; +private: + static ::java::math::BigInteger * TWO; + static ::java::math::BigInteger * TWO_POW_160; + ::gnu::java::security::hash::Sha160 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sha; + jint L; + ::java::security::SecureRandom * rnd; + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_dss_FIPS186__ diff --git a/libjava/gnu/java/security/key/rsa/GnuRSAKey.h b/libjava/gnu/java/security/key/rsa/GnuRSAKey.h new file mode 100644 index 00000000000..77a57b0a654 --- /dev/null +++ b/libjava/gnu/java/security/key/rsa/GnuRSAKey.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_rsa_GnuRSAKey__ +#define __gnu_java_security_key_rsa_GnuRSAKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace rsa + { + class GnuRSAKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::key::rsa::GnuRSAKey : public ::java::lang::Object +{ + +public: // actually protected + GnuRSAKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *); +public: + virtual ::java::math::BigInteger * getModulus(); + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * getFormat(); + virtual ::java::math::BigInteger * getN(); + virtual ::java::math::BigInteger * getPublicExponent(); + virtual ::java::math::BigInteger * getE(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual JArray< jbyte > * getEncoded(jint) = 0; +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) n; + ::java::math::BigInteger * e; +public: // actually protected + jint defaultFormat; +private: + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_rsa_GnuRSAKey__ diff --git a/libjava/gnu/java/security/key/rsa/GnuRSAPrivateKey.h b/libjava/gnu/java/security/key/rsa/GnuRSAPrivateKey.h new file mode 100644 index 00000000000..3033418ae07 --- /dev/null +++ b/libjava/gnu/java/security/key/rsa/GnuRSAPrivateKey.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_rsa_GnuRSAPrivateKey__ +#define __gnu_java_security_key_rsa_GnuRSAPrivateKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace rsa + { + class GnuRSAPrivateKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::key::rsa::GnuRSAPrivateKey : public ::gnu::java::security::key::rsa::GnuRSAKey +{ + +public: + GnuRSAPrivateKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + GnuRSAPrivateKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + GnuRSAPrivateKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + static ::gnu::java::security::key::rsa::GnuRSAPrivateKey * valueOf(JArray< jbyte > *); + 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 ::java::math::BigInteger * getPrivateExponent(); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::java::security::key::rsa::GnuRSAKey)))) p; + ::java::math::BigInteger * q; + ::java::math::BigInteger * d; + ::java::math::BigInteger * dP; + ::java::math::BigInteger * dQ; + ::java::math::BigInteger * qInv; + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_rsa_GnuRSAPrivateKey__ diff --git a/libjava/gnu/java/security/key/rsa/GnuRSAPublicKey.h b/libjava/gnu/java/security/key/rsa/GnuRSAPublicKey.h new file mode 100644 index 00000000000..149a685788e --- /dev/null +++ b/libjava/gnu/java/security/key/rsa/GnuRSAPublicKey.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_rsa_GnuRSAPublicKey__ +#define __gnu_java_security_key_rsa_GnuRSAPublicKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace rsa + { + class GnuRSAPublicKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::key::rsa::GnuRSAPublicKey : public ::gnu::java::security::key::rsa::GnuRSAKey +{ + +public: + GnuRSAPublicKey(::java::math::BigInteger *, ::java::math::BigInteger *); + GnuRSAPublicKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *); + static ::gnu::java::security::key::rsa::GnuRSAPublicKey * valueOf(JArray< jbyte > *); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::security::key::rsa::GnuRSAKey)))) str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_rsa_GnuRSAPublicKey__ diff --git a/libjava/gnu/java/security/key/rsa/RSAKeyPairGenerator.h b/libjava/gnu/java/security/key/rsa/RSAKeyPairGenerator.h new file mode 100644 index 00000000000..b59d0be30a2 --- /dev/null +++ b/libjava/gnu/java/security/key/rsa/RSAKeyPairGenerator.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_rsa_RSAKeyPairGenerator__ +#define __gnu_java_security_key_rsa_RSAKeyPairGenerator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace rsa + { + class RSAKeyPairGenerator; + } + } + namespace util + { + class PRNG; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class KeyPair; + class SecureRandom; + } + } +} + +class gnu::java::security::key::rsa::RSAKeyPairGenerator : public ::java::lang::Object +{ + +public: + RSAKeyPairGenerator(); + virtual ::java::lang::String * name(); + virtual void setup(::java::util::Map *); + virtual ::java::security::KeyPair * generate(); +private: + void nextRandomBytes(JArray< jbyte > *); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); + static ::java::util::logging::Logger * log; + static ::java::math::BigInteger * ONE; + static ::java::math::BigInteger * TWO; +public: + static ::java::lang::String * MODULUS_LENGTH; + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::String * RSA_PARAMETERS; + static ::java::lang::String * PREFERRED_ENCODING_FORMAT; +private: + static const jint DEFAULT_MODULUS_LENGTH = 1024; + static const jint DEFAULT_ENCODING_FORMAT = 1; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) L; + ::java::math::BigInteger * e; + ::java::security::SecureRandom * rnd; + ::gnu::java::security::util::PRNG * prng; + jint preferredFormat; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_rsa_RSAKeyPairGenerator__ diff --git a/libjava/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.h b/libjava/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.h new file mode 100644 index 00000000000..174fea9d432 --- /dev/null +++ b/libjava/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_rsa_RSAKeyPairPKCS8Codec__ +#define __gnu_java_security_key_rsa_RSAKeyPairPKCS8Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace key + { + namespace rsa + { + class RSAKeyPairPKCS8Codec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::key::rsa::RSAKeyPairPKCS8Codec : public ::java::lang::Object +{ + +public: + RSAKeyPairPKCS8Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); +private: + static ::java::util::logging::Logger * log; + static ::gnu::java::security::OID * RSA_ALG_OID; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_rsa_RSAKeyPairPKCS8Codec__ diff --git a/libjava/gnu/java/security/key/rsa/RSAKeyPairRawCodec.h b/libjava/gnu/java/security/key/rsa/RSAKeyPairRawCodec.h new file mode 100644 index 00000000000..0715d81519d --- /dev/null +++ b/libjava/gnu/java/security/key/rsa/RSAKeyPairRawCodec.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_rsa_RSAKeyPairRawCodec__ +#define __gnu_java_security_key_rsa_RSAKeyPairRawCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + namespace rsa + { + class RSAKeyPairRawCodec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::key::rsa::RSAKeyPairRawCodec : public ::java::lang::Object +{ + +public: + RSAKeyPairRawCodec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_rsa_RSAKeyPairRawCodec__ diff --git a/libjava/gnu/java/security/key/rsa/RSAKeyPairX509Codec.h b/libjava/gnu/java/security/key/rsa/RSAKeyPairX509Codec.h new file mode 100644 index 00000000000..53abc9e9f5d --- /dev/null +++ b/libjava/gnu/java/security/key/rsa/RSAKeyPairX509Codec.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_key_rsa_RSAKeyPairX509Codec__ +#define __gnu_java_security_key_rsa_RSAKeyPairX509Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace key + { + namespace rsa + { + class RSAKeyPairX509Codec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::key::rsa::RSAKeyPairX509Codec : public ::java::lang::Object +{ + +public: + RSAKeyPairX509Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); +private: + static ::java::util::logging::Logger * log; + static ::gnu::java::security::OID * RSA_ALG_OID; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_key_rsa_RSAKeyPairX509Codec__ diff --git a/libjava/gnu/java/security/pkcs/PKCS7Data.h b/libjava/gnu/java/security/pkcs/PKCS7Data.h new file mode 100644 index 00000000000..5ec26a05f13 --- /dev/null +++ b/libjava/gnu/java/security/pkcs/PKCS7Data.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_pkcs_PKCS7Data__ +#define __gnu_java_security_pkcs_PKCS7Data__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace pkcs + { + class PKCS7Data; + } + } + } + } +} + +class gnu::java::security::pkcs::PKCS7Data : public ::java::lang::Object +{ + +public: + PKCS7Data(JArray< jbyte > *); + virtual JArray< jbyte > * getEncoded(); + static ::gnu::java::security::OID * PKCS7_DATA; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) content; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_pkcs_PKCS7Data__ diff --git a/libjava/gnu/java/security/pkcs/PKCS7SignedData.h b/libjava/gnu/java/security/pkcs/PKCS7SignedData.h new file mode 100644 index 00000000000..65b0b11e1c2 --- /dev/null +++ b/libjava/gnu/java/security/pkcs/PKCS7SignedData.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_pkcs_PKCS7SignedData__ +#define __gnu_java_security_pkcs_PKCS7SignedData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace ber + { + class BERReader; + } + namespace pkcs + { + class PKCS7Data; + class PKCS7SignedData; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + namespace cert + { + class CRL; + class Certificate; + class X509CRL; + } + } + } +} + +class gnu::java::security::pkcs::PKCS7SignedData : public ::java::lang::Object +{ + +public: + PKCS7SignedData(::java::io::InputStream *); + PKCS7SignedData(::gnu::java::security::ber::BERReader *); + PKCS7SignedData(::java::util::Set *, ::gnu::java::security::pkcs::PKCS7Data *, JArray< ::java::security::cert::Certificate * > *, JArray< ::java::security::cert::X509CRL * > *, ::java::util::Set *); + virtual ::java::math::BigInteger * getVersion(); + virtual JArray< ::java::security::cert::Certificate * > * getCertificates(); + virtual ::gnu::java::security::OID * getContentType(); + virtual JArray< jbyte > * getContent(); + virtual ::java::util::Set * getDigestAlgorithms(); + virtual ::java::util::Set * getSignerInfos(); + virtual void encode(::java::io::OutputStream *); +private: + static ::java::util::logging::Logger * log; +public: + static ::gnu::java::security::OID * PKCS7_SIGNED_DATA; +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) version; + ::java::util::Set * digestAlgorithms; + ::gnu::java::security::OID * contentType; + JArray< jbyte > * content; + JArray< ::java::security::cert::Certificate * > * certificates; + JArray< ::java::security::cert::CRL * > * crls; + ::java::util::Set * signerInfos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_pkcs_PKCS7SignedData__ diff --git a/libjava/gnu/java/security/pkcs/SignerInfo.h b/libjava/gnu/java/security/pkcs/SignerInfo.h new file mode 100644 index 00000000000..5a020cff7d4 --- /dev/null +++ b/libjava/gnu/java/security/pkcs/SignerInfo.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_pkcs_SignerInfo__ +#define __gnu_java_security_pkcs_SignerInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace ber + { + class BERReader; + } + namespace pkcs + { + class SignerInfo; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500Principal; + } + } + } + } +} + +class gnu::java::security::pkcs::SignerInfo : public ::java::lang::Object +{ + +public: + SignerInfo(::gnu::java::security::ber::BERReader *); + SignerInfo(::javax::security::auth::x500::X500Principal *, ::java::math::BigInteger *, ::gnu::java::security::OID *, JArray< jbyte > *, ::gnu::java::security::OID *, JArray< jbyte > *, JArray< jbyte > *); + virtual ::java::math::BigInteger * getVersion(); + virtual ::java::math::BigInteger * getSerialNumber(); + virtual ::javax::security::auth::x500::X500Principal * getIssuer(); + virtual ::gnu::java::security::OID * getDigestAlgorithmId(); + virtual JArray< jbyte > * getDigestAlgorithmParams(); + virtual JArray< jbyte > * getAuthenticatedAttributes(); + virtual ::gnu::java::security::OID * getDigestEncryptionAlgorithmId(); + virtual JArray< jbyte > * getDigestEncryptionAlgorithmParams(); + virtual JArray< jbyte > * getEncryptedDigest(); + virtual JArray< jbyte > * getUnauthenticatedAttributes(); + virtual void encode(::java::io::OutputStream *); +private: + static ::java::util::logging::Logger * log; + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) version; + ::java::math::BigInteger * serialNumber; + ::javax::security::auth::x500::X500Principal * issuer; + ::gnu::java::security::OID * digestAlgorithmId; + JArray< jbyte > * digestAlgorithmParams; + JArray< jbyte > * authenticatedAttributes; + ::gnu::java::security::OID * digestEncryptionAlgorithmId; + JArray< jbyte > * digestEncryptionAlgorithmParams; + JArray< jbyte > * encryptedDigest; + JArray< jbyte > * unauthenticatedAttributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_pkcs_SignerInfo__ diff --git a/libjava/gnu/java/security/prng/BasePRNG.h b/libjava/gnu/java/security/prng/BasePRNG.h new file mode 100644 index 00000000000..4b20623ef84 --- /dev/null +++ b/libjava/gnu/java/security/prng/BasePRNG.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_BasePRNG__ +#define __gnu_java_security_prng_BasePRNG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class BasePRNG; + } + } + } + } +} + +class gnu::java::security::prng::BasePRNG : public ::java::lang::Object +{ + +public: // actually protected + BasePRNG(::java::lang::String *); +public: + virtual ::java::lang::String * name(); + virtual void init(::java::util::Map *); + virtual jbyte nextByte(); + virtual void nextBytes(JArray< jbyte > *); + virtual void nextBytes(JArray< jbyte > *, jint, jint); + virtual void addRandomByte(jbyte); + virtual void addRandomBytes(JArray< jbyte > *); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); + virtual jboolean isInitialised(); +private: + jbyte nextByteInternal(); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(::java::util::Map *) = 0; + virtual void fillBlock() = 0; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; + jboolean initialised; + JArray< jbyte > * buffer; + jint ndx; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_prng_BasePRNG__ diff --git a/libjava/gnu/java/security/prng/EntropySource.h b/libjava/gnu/java/security/prng/EntropySource.h new file mode 100644 index 00000000000..8f7377ac8a4 --- /dev/null +++ b/libjava/gnu/java/security/prng/EntropySource.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_EntropySource__ +#define __gnu_java_security_prng_EntropySource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class EntropySource; + } + } + } + } +} + +class gnu::java::security::prng::EntropySource : public ::java::lang::Object +{ + +public: + virtual jdouble quality() = 0; + virtual JArray< jbyte > * nextBytes() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_prng_EntropySource__ diff --git a/libjava/gnu/java/security/prng/IRandom.h b/libjava/gnu/java/security/prng/IRandom.h new file mode 100644 index 00000000000..54a7373f64c --- /dev/null +++ b/libjava/gnu/java/security/prng/IRandom.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_IRandom__ +#define __gnu_java_security_prng_IRandom__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + } +} + +class gnu::java::security::prng::IRandom : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual void init(::java::util::Map *) = 0; + virtual jbyte nextByte() = 0; + virtual void nextBytes(JArray< jbyte > *, jint, jint) = 0; + virtual void addRandomByte(jbyte) = 0; + virtual void addRandomBytes(JArray< jbyte > *) = 0; + virtual void addRandomBytes(JArray< jbyte > *, jint, jint) = 0; + virtual ::java::lang::Object * clone() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_prng_IRandom__ diff --git a/libjava/gnu/java/security/prng/LimitReachedException.h b/libjava/gnu/java/security/prng/LimitReachedException.h new file mode 100644 index 00000000000..3dede836ce9 --- /dev/null +++ b/libjava/gnu/java/security/prng/LimitReachedException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_LimitReachedException__ +#define __gnu_java_security_prng_LimitReachedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class LimitReachedException; + } + } + } + } +} + +class gnu::java::security::prng::LimitReachedException : public ::java::lang::Exception +{ + +public: + LimitReachedException(); + LimitReachedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_prng_LimitReachedException__ diff --git a/libjava/gnu/java/security/prng/MDGenerator.h b/libjava/gnu/java/security/prng/MDGenerator.h new file mode 100644 index 00000000000..d14566c8943 --- /dev/null +++ b/libjava/gnu/java/security/prng/MDGenerator.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_MDGenerator__ +#define __gnu_java_security_prng_MDGenerator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace prng + { + class MDGenerator; + } + } + } + } +} + +class gnu::java::security::prng::MDGenerator : public ::gnu::java::security::prng::BasePRNG +{ + +public: + MDGenerator(); + virtual void setup(::java::util::Map *); + virtual void fillBlock(); + virtual void addRandomByte(jbyte); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); + virtual ::java::lang::Object * clone(); + static ::java::lang::String * MD_NAME; + static ::java::lang::String * SEEED; +private: + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) md; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_prng_MDGenerator__ diff --git a/libjava/gnu/java/security/prng/PRNGFactory.h b/libjava/gnu/java/security/prng/PRNGFactory.h new file mode 100644 index 00000000000..a1e3f28cd79 --- /dev/null +++ b/libjava/gnu/java/security/prng/PRNGFactory.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_PRNGFactory__ +#define __gnu_java_security_prng_PRNGFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + class PRNGFactory; + } + } + } + } +} + +class gnu::java::security::prng::PRNGFactory : public ::java::lang::Object +{ + +public: // actually protected + PRNGFactory(); +public: + static ::gnu::java::security::prng::IRandom * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_prng_PRNGFactory__ diff --git a/libjava/gnu/java/security/prng/RandomEvent.h b/libjava/gnu/java/security/prng/RandomEvent.h new file mode 100644 index 00000000000..2b26396339f --- /dev/null +++ b/libjava/gnu/java/security/prng/RandomEvent.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_RandomEvent__ +#define __gnu_java_security_prng_RandomEvent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class RandomEvent; + } + } + } + } +} + +class gnu::java::security::prng::RandomEvent : public ::java::util::EventObject +{ + +public: + RandomEvent(::java::lang::Object *, jbyte, jbyte, JArray< jbyte > *); + virtual jbyte getSourceNumber(); + virtual jbyte getPoolNumber(); + virtual JArray< jbyte > * getData(); +private: + jbyte __attribute__((aligned(__alignof__( ::java::util::EventObject)))) sourceNumber; + jbyte poolNumber; + JArray< jbyte > * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_prng_RandomEvent__ diff --git a/libjava/gnu/java/security/prng/RandomEventListener.h b/libjava/gnu/java/security/prng/RandomEventListener.h new file mode 100644 index 00000000000..5aef74becb3 --- /dev/null +++ b/libjava/gnu/java/security/prng/RandomEventListener.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_prng_RandomEventListener__ +#define __gnu_java_security_prng_RandomEventListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class RandomEvent; + class RandomEventListener; + } + } + } + } +} + +class gnu::java::security::prng::RandomEventListener : public ::java::lang::Object +{ + +public: + virtual void addRandomEvent(::gnu::java::security::prng::RandomEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_prng_RandomEventListener__ diff --git a/libjava/gnu/java/security/provider/CollectionCertStoreImpl.h b/libjava/gnu/java/security/provider/CollectionCertStoreImpl.h new file mode 100644 index 00000000000..947bfe5bef9 --- /dev/null +++ b/libjava/gnu/java/security/provider/CollectionCertStoreImpl.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_provider_CollectionCertStoreImpl__ +#define __gnu_java_security_provider_CollectionCertStoreImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace provider + { + class CollectionCertStoreImpl; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class CRLSelector; + class CertSelector; + class CertStoreParameters; + } + } + } +} + +class gnu::java::security::provider::CollectionCertStoreImpl : public ::java::security::cert::CertStoreSpi +{ + +public: + CollectionCertStoreImpl(::java::security::cert::CertStoreParameters *); + ::java::util::Collection * engineGetCertificates(::java::security::cert::CertSelector *); + ::java::util::Collection * engineGetCRLs(::java::security::cert::CRLSelector *); +private: + ::java::util::Collection * __attribute__((aligned(__alignof__( ::java::security::cert::CertStoreSpi)))) store; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_provider_CollectionCertStoreImpl__ diff --git a/libjava/gnu/java/security/provider/DefaultPolicy.h b/libjava/gnu/java/security/provider/DefaultPolicy.h new file mode 100644 index 00000000000..b2259548494 --- /dev/null +++ b/libjava/gnu/java/security/provider/DefaultPolicy.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_provider_DefaultPolicy__ +#define __gnu_java_security_provider_DefaultPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace provider + { + class DefaultPolicy; + } + } + } + } + namespace java + { + namespace security + { + class CodeSource; + class Permission; + class PermissionCollection; + } + } +} + +class gnu::java::security::provider::DefaultPolicy : public ::java::security::Policy +{ + +public: + DefaultPolicy(); + virtual ::java::security::PermissionCollection * getPermissions(::java::security::CodeSource *); + virtual void refresh(); +public: // actually package-private + static ::java::security::Permission * allPermission; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_provider_DefaultPolicy__ diff --git a/libjava/gnu/java/security/provider/Gnu$1.h b/libjava/gnu/java/security/provider/Gnu$1.h new file mode 100644 index 00000000000..6bcea38e593 --- /dev/null +++ b/libjava/gnu/java/security/provider/Gnu$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_provider_Gnu$1__ +#define __gnu_java_security_provider_Gnu$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace provider + { + class Gnu; + class Gnu$1; + } + } + } + } +} + +class gnu::java::security::provider::Gnu$1 : public ::java::lang::Object +{ + +public: // actually package-private + Gnu$1(::gnu::java::security::provider::Gnu *); +public: + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::java::security::provider::Gnu * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_provider_Gnu$1__ diff --git a/libjava/gnu/java/security/provider/Gnu.h b/libjava/gnu/java/security/provider/Gnu.h new file mode 100644 index 00000000000..78c78faa771 --- /dev/null +++ b/libjava/gnu/java/security/provider/Gnu.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_provider_Gnu__ +#define __gnu_java_security_provider_Gnu__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace provider + { + class Gnu; + } + } + } + } +} + +class gnu::java::security::provider::Gnu : public ::java::security::Provider +{ + +public: + Gnu(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_provider_Gnu__ diff --git a/libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.h b/libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.h new file mode 100644 index 00000000000..196a93a9acd --- /dev/null +++ b/libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_provider_PKIXCertPathValidatorImpl__ +#define __gnu_java_security_provider_PKIXCertPathValidatorImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace provider + { + class PKIXCertPathValidatorImpl; + } + namespace x509 + { + class PolicyNodeImpl; + } + } + } + } + namespace java + { + namespace security + { + class PublicKey; + namespace cert + { + class CertPath; + class CertPathParameters; + class CertPathValidatorResult; + class PKIXParameters; + class X509CRL; + class X509Certificate; + } + } + } +} + +class gnu::java::security::provider::PKIXCertPathValidatorImpl : public ::java::security::cert::CertPathValidatorSpi +{ + +public: + PKIXCertPathValidatorImpl(); + virtual ::java::security::cert::CertPathValidatorResult * engineValidate(::java::security::cert::CertPath *, ::java::security::cert::CertPathParameters *); +private: + static jboolean checkCRL(::java::security::cert::X509CRL *, JArray< ::java::security::cert::X509Certificate * > *, ::java::util::Date *, ::java::security::cert::X509Certificate *, ::java::security::PublicKey *, ::java::util::List *); + static ::java::util::Set * getCritExts(::java::security::cert::X509Certificate *); + static void basicSanity(JArray< ::java::security::cert::X509Certificate * > *, jint); + static void updatePolicyTree(::java::security::cert::X509Certificate *, ::gnu::java::security::x509::PolicyNodeImpl *, jint, ::java::security::cert::PKIXParameters *, jboolean); + jboolean checkExplicitPolicy(jint, ::java::util::List *); + static ::java::util::logging::Logger * log; +public: + static ::java::lang::String * ANY_POLICY; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_provider_PKIXCertPathValidatorImpl__ diff --git a/libjava/gnu/java/security/provider/X509CertificateFactory.h b/libjava/gnu/java/security/provider/X509CertificateFactory.h new file mode 100644 index 00000000000..67fdd90676a --- /dev/null +++ b/libjava/gnu/java/security/provider/X509CertificateFactory.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_provider_X509CertificateFactory__ +#define __gnu_java_security_provider_X509CertificateFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace provider + { + class X509CertificateFactory; + } + namespace x509 + { + class X509CRL; + class X509Certificate; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class CRL; + class CertPath; + class Certificate; + } + } + } +} + +class gnu::java::security::provider::X509CertificateFactory : public ::java::security::cert::CertificateFactorySpi +{ + +public: + X509CertificateFactory(); + virtual ::java::security::cert::Certificate * engineGenerateCertificate(::java::io::InputStream *); + virtual ::java::util::Collection * engineGenerateCertificates(::java::io::InputStream *); + virtual ::java::security::cert::CRL * engineGenerateCRL(::java::io::InputStream *); + virtual ::java::util::Collection * engineGenerateCRLs(::java::io::InputStream *); + virtual ::java::security::cert::CertPath * engineGenerateCertPath(::java::util::List *); + virtual ::java::security::cert::CertPath * engineGenerateCertPath(::java::io::InputStream *); + virtual ::java::security::cert::CertPath * engineGenerateCertPath(::java::io::InputStream *, ::java::lang::String *); + virtual ::java::util::Iterator * engineGetCertPathEncodings(); +private: + ::gnu::java::security::x509::X509Certificate * generateCert(::java::io::InputStream *); + ::gnu::java::security::x509::X509CRL * generateCRL(::java::io::InputStream *); +public: + static ::java::lang::String * BEGIN_CERTIFICATE; + static ::java::lang::String * END_CERTIFICATE; + static ::java::lang::String * BEGIN_X509_CRL; + static ::java::lang::String * END_X509_CRL; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_provider_X509CertificateFactory__ diff --git a/libjava/gnu/java/security/sig/BaseSignature.h b/libjava/gnu/java/security/sig/BaseSignature.h new file mode 100644 index 00000000000..2f4ab0e9844 --- /dev/null +++ b/libjava/gnu/java/security/sig/BaseSignature.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_BaseSignature__ +#define __gnu_java_security_sig_BaseSignature__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace prng + { + class IRandom; + } + namespace sig + { + class BaseSignature; + } + namespace util + { + class PRNG; + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::sig::BaseSignature : public ::java::lang::Object +{ + +public: // actually protected + BaseSignature(::java::lang::String *, ::gnu::java::security::hash::IMessageDigest *); +public: + virtual ::java::lang::String * name(); + virtual void setupVerify(::java::util::Map *); + virtual void setupSign(::java::util::Map *); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); + virtual ::java::lang::Object * sign(); + virtual jboolean verify(::java::lang::Object *); + virtual ::java::lang::Object * clone() = 0; +public: // actually protected + virtual void setupForVerification(::java::security::PublicKey *) = 0; + virtual void setupForSigning(::java::security::PrivateKey *) = 0; + virtual ::java::lang::Object * generateSignature() = 0; + virtual jboolean verifySignature(::java::lang::Object *) = 0; + virtual void init(); + virtual void nextRandomBytes(JArray< jbyte > *); +private: + void setup(::java::util::Map *); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) schemeName; + ::gnu::java::security::hash::IMessageDigest * md; + ::java::security::PublicKey * publicKey; + ::java::security::PrivateKey * privateKey; +private: + ::java::util::Random * rnd; + ::gnu::java::security::prng::IRandom * irnd; + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_BaseSignature__ diff --git a/libjava/gnu/java/security/sig/ISignature.h b/libjava/gnu/java/security/sig/ISignature.h new file mode 100644 index 00000000000..b02f28f5f3e --- /dev/null +++ b/libjava/gnu/java/security/sig/ISignature.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_ISignature__ +#define __gnu_java_security_sig_ISignature__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + class ISignature; + } + } + } + } +} + +class gnu::java::security::sig::ISignature : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual void setupVerify(::java::util::Map *) = 0; + virtual void setupSign(::java::util::Map *) = 0; + virtual void update(jbyte) = 0; + virtual void update(JArray< jbyte > *, jint, jint) = 0; + virtual ::java::lang::Object * sign() = 0; + virtual jboolean verify(::java::lang::Object *) = 0; + virtual ::java::lang::Object * clone() = 0; + static ::java::lang::String * VERIFIER_KEY; + static ::java::lang::String * SIGNER_KEY; + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_sig_ISignature__ diff --git a/libjava/gnu/java/security/sig/ISignatureCodec.h b/libjava/gnu/java/security/sig/ISignatureCodec.h new file mode 100644 index 00000000000..8924c122493 --- /dev/null +++ b/libjava/gnu/java/security/sig/ISignatureCodec.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_ISignatureCodec__ +#define __gnu_java_security_sig_ISignatureCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + class ISignatureCodec; + } + } + } + } +} + +class gnu::java::security::sig::ISignatureCodec : public ::java::lang::Object +{ + +public: + virtual jint getFormatID() = 0; + virtual JArray< jbyte > * encodeSignature(::java::lang::Object *) = 0; + virtual ::java::lang::Object * decodeSignature(JArray< jbyte > *) = 0; + static const jint RAW_FORMAT = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_sig_ISignatureCodec__ diff --git a/libjava/gnu/java/security/sig/SignatureCodecFactory.h b/libjava/gnu/java/security/sig/SignatureCodecFactory.h new file mode 100644 index 00000000000..56295cbe340 --- /dev/null +++ b/libjava/gnu/java/security/sig/SignatureCodecFactory.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_SignatureCodecFactory__ +#define __gnu_java_security_sig_SignatureCodecFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + class ISignatureCodec; + class SignatureCodecFactory; + } + } + } + } +} + +class gnu::java::security::sig::SignatureCodecFactory : public ::java::lang::Object +{ + + SignatureCodecFactory(); +public: + static ::gnu::java::security::sig::ISignatureCodec * getInstance(::java::lang::String *); + static ::gnu::java::security::sig::ISignatureCodec * getInstance(::java::lang::String *, ::java::lang::String *); + static ::gnu::java::security::sig::ISignatureCodec * getInstance(::java::lang::String *, jint); + static ::java::util::Set * getNames(); +private: + static ::gnu::java::security::sig::ISignatureCodec * getRawCodec(::java::lang::String *); + static ::gnu::java::security::sig::ISignatureCodec * getX509Codec(::java::lang::String *); + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_SignatureCodecFactory__ diff --git a/libjava/gnu/java/security/sig/SignatureFactory.h b/libjava/gnu/java/security/sig/SignatureFactory.h new file mode 100644 index 00000000000..344c34c84da --- /dev/null +++ b/libjava/gnu/java/security/sig/SignatureFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_SignatureFactory__ +#define __gnu_java_security_sig_SignatureFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + class ISignature; + class SignatureFactory; + } + } + } + } +} + +class gnu::java::security::sig::SignatureFactory : public ::java::lang::Object +{ + + SignatureFactory(); +public: + static ::gnu::java::security::sig::ISignature * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); +private: + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_SignatureFactory__ diff --git a/libjava/gnu/java/security/sig/dss/DSSSignature.h b/libjava/gnu/java/security/sig/dss/DSSSignature.h new file mode 100644 index 00000000000..96781ef3d1b --- /dev/null +++ b/libjava/gnu/java/security/sig/dss/DSSSignature.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_dss_DSSSignature__ +#define __gnu_java_security_sig_dss_DSSSignature__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + namespace sig + { + namespace dss + { + class DSSSignature; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class PrivateKey; + class PublicKey; + namespace interfaces + { + class DSAPrivateKey; + class DSAPublicKey; + } + } + } +} + +class gnu::java::security::sig::dss::DSSSignature : public ::gnu::java::security::sig::BaseSignature +{ + +public: + DSSSignature(); +private: + DSSSignature(::gnu::java::security::sig::dss::DSSSignature *); +public: + static JArray< ::java::math::BigInteger * > * sign(::java::security::interfaces::DSAPrivateKey *, JArray< jbyte > *); + static JArray< ::java::math::BigInteger * > * sign(::java::security::interfaces::DSAPrivateKey *, JArray< jbyte > *, ::java::util::Random *); + static JArray< ::java::math::BigInteger * > * sign(::java::security::interfaces::DSAPrivateKey *, JArray< jbyte > *, ::gnu::java::security::prng::IRandom *); + static jboolean verify(::java::security::interfaces::DSAPublicKey *, JArray< jbyte > *, JArray< ::java::math::BigInteger * > *); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void setupForVerification(::java::security::PublicKey *); + virtual void setupForSigning(::java::security::PrivateKey *); + virtual ::java::lang::Object * generateSignature(); + virtual jboolean verifySignature(::java::lang::Object *); +private: + ::java::lang::Object * encodeSignature(::java::math::BigInteger *, ::java::math::BigInteger *); + JArray< ::java::math::BigInteger * > * decodeSignature(::java::lang::Object *); + JArray< ::java::math::BigInteger * > * computeRS(JArray< jbyte > *); + jboolean checkRS(JArray< ::java::math::BigInteger * > *, JArray< jbyte > *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_dss_DSSSignature__ diff --git a/libjava/gnu/java/security/sig/dss/DSSSignatureRawCodec.h b/libjava/gnu/java/security/sig/dss/DSSSignatureRawCodec.h new file mode 100644 index 00000000000..5229cdd311a --- /dev/null +++ b/libjava/gnu/java/security/sig/dss/DSSSignatureRawCodec.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_dss_DSSSignatureRawCodec__ +#define __gnu_java_security_sig_dss_DSSSignatureRawCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + namespace dss + { + class DSSSignatureRawCodec; + } + } + } + } + } +} + +class gnu::java::security::sig::dss::DSSSignatureRawCodec : public ::java::lang::Object +{ + +public: + DSSSignatureRawCodec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodeSignature(::java::lang::Object *); + virtual ::java::lang::Object * decodeSignature(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_dss_DSSSignatureRawCodec__ diff --git a/libjava/gnu/java/security/sig/dss/DSSSignatureX509Codec.h b/libjava/gnu/java/security/sig/dss/DSSSignatureX509Codec.h new file mode 100644 index 00000000000..d7428b37c8c --- /dev/null +++ b/libjava/gnu/java/security/sig/dss/DSSSignatureX509Codec.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_dss_DSSSignatureX509Codec__ +#define __gnu_java_security_sig_dss_DSSSignatureX509Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + namespace dss + { + class DSSSignatureX509Codec; + } + } + } + } + } +} + +class gnu::java::security::sig::dss::DSSSignatureX509Codec : public ::java::lang::Object +{ + +public: + DSSSignatureX509Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodeSignature(::java::lang::Object *); + virtual ::java::lang::Object * decodeSignature(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_dss_DSSSignatureX509Codec__ diff --git a/libjava/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.h b/libjava/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.h new file mode 100644 index 00000000000..a0c3987ab31 --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/EME_PKCS1_V1_5.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_EME_PKCS1_V1_5__ +#define __gnu_java_security_sig_rsa_EME_PKCS1_V1_5__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + namespace sig + { + namespace rsa + { + class EME_PKCS1_V1_5; + } + } + namespace util + { + class PRNG; + } + } + } + } + namespace java + { + namespace security + { + namespace interfaces + { + class RSAKey; + } + } + } +} + +class gnu::java::security::sig::rsa::EME_PKCS1_V1_5 : public ::java::lang::Object +{ + + EME_PKCS1_V1_5(jint); +public: + static ::gnu::java::security::sig::rsa::EME_PKCS1_V1_5 * getInstance(jint); + static ::gnu::java::security::sig::rsa::EME_PKCS1_V1_5 * getInstance(::java::security::interfaces::RSAKey *); + virtual JArray< jbyte > * encode(JArray< jbyte > *); + virtual JArray< jbyte > * encode(JArray< jbyte > *, ::gnu::java::security::prng::IRandom *); + virtual JArray< jbyte > * encode(JArray< jbyte > *, ::java::util::Random *); + virtual JArray< jbyte > * decode(JArray< jbyte > *); +private: + JArray< jbyte > * assembleEM(JArray< jbyte > *, JArray< jbyte > *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) k; + ::java::io::ByteArrayOutputStream * baos; + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_EME_PKCS1_V1_5__ diff --git a/libjava/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.h b/libjava/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.h new file mode 100644 index 00000000000..780e29d8a6b --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_EMSA_PKCS1_V1_5__ +#define __gnu_java_security_sig_rsa_EMSA_PKCS1_V1_5__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace sig + { + namespace rsa + { + class EMSA_PKCS1_V1_5; + } + } + } + } + } +} + +class gnu::java::security::sig::rsa::EMSA_PKCS1_V1_5 : public ::java::lang::Object +{ + + EMSA_PKCS1_V1_5(::gnu::java::security::hash::IMessageDigest *); +public: + static ::gnu::java::security::sig::rsa::EMSA_PKCS1_V1_5 * getInstance(::java::lang::String *); + virtual ::java::lang::Object * clone(); + virtual JArray< jbyte > * encode(JArray< jbyte > *, jint); +private: + static JArray< jbyte > * MD2_PREFIX; + static JArray< jbyte > * MD5_PREFIX; + static JArray< jbyte > * SHA160_PREFIX; + static JArray< jbyte > * SHA256_PREFIX; + static JArray< jbyte > * SHA384_PREFIX; + static JArray< jbyte > * SHA512_PREFIX; + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hash; + jint hLen; + JArray< jbyte > * prefix; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_EMSA_PKCS1_V1_5__ diff --git a/libjava/gnu/java/security/sig/rsa/EMSA_PSS.h b/libjava/gnu/java/security/sig/rsa/EMSA_PSS.h new file mode 100644 index 00000000000..3a850323316 --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/EMSA_PSS.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_EMSA_PSS__ +#define __gnu_java_security_sig_rsa_EMSA_PSS__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace sig + { + namespace rsa + { + class EMSA_PSS; + } + } + } + } + } +} + +class gnu::java::security::sig::rsa::EMSA_PSS : public ::java::lang::Object +{ + + EMSA_PSS(::gnu::java::security::hash::IMessageDigest *); +public: + static ::gnu::java::security::sig::rsa::EMSA_PSS * getInstance(::java::lang::String *); + virtual ::java::lang::Object * clone(); + virtual JArray< jbyte > * encode(JArray< jbyte > *, jint, JArray< jbyte > *); + virtual jboolean decode(JArray< jbyte > *, JArray< jbyte > *, jint, jint); +private: + JArray< jbyte > * MGF(JArray< jbyte > *, jint); + static ::java::util::logging::Logger * log; + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hash; + jint hLen; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_EMSA_PSS__ diff --git a/libjava/gnu/java/security/sig/rsa/RSA.h b/libjava/gnu/java/security/sig/rsa/RSA.h new file mode 100644 index 00000000000..5ad5114911c --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/RSA.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_RSA__ +#define __gnu_java_security_sig_rsa_RSA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + namespace rsa + { + class RSA; + } + } + namespace util + { + class PRNG; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class PrivateKey; + class PublicKey; + namespace interfaces + { + class RSAPrivateKey; + class RSAPublicKey; + } + } + } +} + +class gnu::java::security::sig::rsa::RSA : public ::java::lang::Object +{ + + RSA(); +public: + static ::java::math::BigInteger * sign(::java::security::PrivateKey *, ::java::math::BigInteger *); + static ::java::math::BigInteger * verify(::java::security::PublicKey *, ::java::math::BigInteger *); + static ::java::math::BigInteger * encrypt(::java::security::PublicKey *, ::java::math::BigInteger *); + static ::java::math::BigInteger * decrypt(::java::security::PrivateKey *, ::java::math::BigInteger *); + static JArray< jbyte > * I2OSP(::java::math::BigInteger *, jint); +private: + static ::java::math::BigInteger * RSAEP(::java::security::interfaces::RSAPublicKey *, ::java::math::BigInteger *); + static ::java::math::BigInteger * RSADP(::java::security::interfaces::RSAPrivateKey *, ::java::math::BigInteger *); + static ::java::math::BigInteger * newR(::java::math::BigInteger *); + static ::java::math::BigInteger * ZERO; + static ::java::math::BigInteger * ONE; + static ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_RSA__ diff --git a/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.h b/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.h new file mode 100644 index 00000000000..082229302bb --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_RSAPKCS1V1_5Signature__ +#define __gnu_java_security_sig_rsa_RSAPKCS1V1_5Signature__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace sig + { + namespace rsa + { + class EMSA_PKCS1_V1_5; + class RSAPKCS1V1_5Signature; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::sig::rsa::RSAPKCS1V1_5Signature : public ::gnu::java::security::sig::BaseSignature +{ + +public: + RSAPKCS1V1_5Signature(); + RSAPKCS1V1_5Signature(::java::lang::String *); + RSAPKCS1V1_5Signature(::gnu::java::security::hash::IMessageDigest *); +private: + RSAPKCS1V1_5Signature(::gnu::java::security::sig::rsa::RSAPKCS1V1_5Signature *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void setupForVerification(::java::security::PublicKey *); + virtual void setupForSigning(::java::security::PrivateKey *); + virtual ::java::lang::Object * generateSignature(); + virtual jboolean verifySignature(::java::lang::Object *); +private: + ::gnu::java::security::sig::rsa::EMSA_PKCS1_V1_5 * __attribute__((aligned(__alignof__( ::gnu::java::security::sig::BaseSignature)))) pkcs1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_RSAPKCS1V1_5Signature__ diff --git a/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.h b/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.h new file mode 100644 index 00000000000..2fe018f9ef5 --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_RSAPKCS1V1_5SignatureRawCodec__ +#define __gnu_java_security_sig_rsa_RSAPKCS1V1_5SignatureRawCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + namespace rsa + { + class RSAPKCS1V1_5SignatureRawCodec; + } + } + } + } + } +} + +class gnu::java::security::sig::rsa::RSAPKCS1V1_5SignatureRawCodec : public ::java::lang::Object +{ + +public: + RSAPKCS1V1_5SignatureRawCodec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodeSignature(::java::lang::Object *); + virtual ::java::lang::Object * decodeSignature(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_RSAPKCS1V1_5SignatureRawCodec__ diff --git a/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.h b/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.h new file mode 100644 index 00000000000..4e9da2abc32 --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_RSAPKCS1V1_5SignatureX509Codec__ +#define __gnu_java_security_sig_rsa_RSAPKCS1V1_5SignatureX509Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + namespace rsa + { + class RSAPKCS1V1_5SignatureX509Codec; + } + } + } + } + } +} + +class gnu::java::security::sig::rsa::RSAPKCS1V1_5SignatureX509Codec : public ::java::lang::Object +{ + +public: + RSAPKCS1V1_5SignatureX509Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodeSignature(::java::lang::Object *); + virtual ::java::lang::Object * decodeSignature(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_RSAPKCS1V1_5SignatureX509Codec__ diff --git a/libjava/gnu/java/security/sig/rsa/RSAPSSSignature.h b/libjava/gnu/java/security/sig/rsa/RSAPSSSignature.h new file mode 100644 index 00000000000..4360889721c --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/RSAPSSSignature.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_RSAPSSSignature__ +#define __gnu_java_security_sig_rsa_RSAPSSSignature__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace sig + { + namespace rsa + { + class EMSA_PSS; + class RSAPSSSignature; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::java::security::sig::rsa::RSAPSSSignature : public ::gnu::java::security::sig::BaseSignature +{ + +public: + RSAPSSSignature(); + RSAPSSSignature(::java::lang::String *); + RSAPSSSignature(::java::lang::String *, jint); + RSAPSSSignature(::gnu::java::security::hash::IMessageDigest *, jint); +private: + RSAPSSSignature(::gnu::java::security::sig::rsa::RSAPSSSignature *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void setupForVerification(::java::security::PublicKey *); + virtual void setupForSigning(::java::security::PrivateKey *); + virtual ::java::lang::Object * generateSignature(); + virtual jboolean verifySignature(::java::lang::Object *); +private: + static ::java::util::logging::Logger * log; + ::gnu::java::security::sig::rsa::EMSA_PSS * __attribute__((aligned(__alignof__( ::gnu::java::security::sig::BaseSignature)))) pss; + jint sLen; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_RSAPSSSignature__ diff --git a/libjava/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.h b/libjava/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.h new file mode 100644 index 00000000000..a7efde3400f --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_RSAPSSSignatureRawCodec__ +#define __gnu_java_security_sig_rsa_RSAPSSSignatureRawCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + namespace rsa + { + class RSAPSSSignatureRawCodec; + } + } + } + } + } +} + +class gnu::java::security::sig::rsa::RSAPSSSignatureRawCodec : public ::java::lang::Object +{ + +public: + RSAPSSSignatureRawCodec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodeSignature(::java::lang::Object *); + virtual ::java::lang::Object * decodeSignature(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_RSAPSSSignatureRawCodec__ diff --git a/libjava/gnu/java/security/sig/rsa/RSASignatureFactory.h b/libjava/gnu/java/security/sig/rsa/RSASignatureFactory.h new file mode 100644 index 00000000000..c8b9b24973d --- /dev/null +++ b/libjava/gnu/java/security/sig/rsa/RSASignatureFactory.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_sig_rsa_RSASignatureFactory__ +#define __gnu_java_security_sig_rsa_RSASignatureFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + class ISignature; + namespace rsa + { + class RSASignatureFactory; + } + } + } + } + } +} + +class gnu::java::security::sig::rsa::RSASignatureFactory : public ::java::lang::Object +{ + + RSASignatureFactory(); +public: + static ::gnu::java::security::sig::ISignature * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); +private: + static ::gnu::java::security::sig::ISignature * getPSSSignature(::java::lang::String *); + static ::gnu::java::security::sig::ISignature * getPKCS1Signature(::java::lang::String *); + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_sig_rsa_RSASignatureFactory__ diff --git a/libjava/gnu/java/security/util/Base64.h b/libjava/gnu/java/security/util/Base64.h new file mode 100644 index 00000000000..e75b6b57b06 --- /dev/null +++ b/libjava/gnu/java/security/util/Base64.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_Base64__ +#define __gnu_java_security_util_Base64__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class Base64; + } + } + } + } +} + +class gnu::java::security::util::Base64 : public ::java::lang::Object +{ + + Base64(); +public: + static ::java::lang::String * encode(JArray< jbyte > *); + static ::java::lang::String * encode(JArray< jbyte > *, jint, jint, jboolean); + static JArray< jbyte > * decode(::java::lang::String *); + static JArray< jbyte > * decode(JArray< jbyte > *, jint, jint); +private: + static JArray< jbyte > * encode3to4(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + static jint decode4to3(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + static ::java::util::logging::Logger * log; + static const jint MAX_LINE_LENGTH = 76; + static const jbyte NEW_LINE = 10; + static const jbyte EQUALS_SIGN = 61; + static const jbyte WHITE_SPACE_ENC = -5; + static const jbyte EQUALS_SIGN_ENC = -1; + static JArray< jbyte > * ALPHABET; + static JArray< jbyte > * DECODABET; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_Base64__ diff --git a/libjava/gnu/java/security/util/ByteArray.h b/libjava/gnu/java/security/util/ByteArray.h new file mode 100644 index 00000000000..6eef185dc4f --- /dev/null +++ b/libjava/gnu/java/security/util/ByteArray.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_ByteArray__ +#define __gnu_java_security_util_ByteArray__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class ByteArray; + } + } + } + } +} + +class gnu::java::security::util::ByteArray : public ::java::lang::Object +{ + +public: + ByteArray(JArray< jbyte > *); + JArray< jbyte > * getValue(); + ::java::lang::String * toString(); + static ::java::lang::String * toHexString(JArray< jbyte > *, jint, jint, jchar); + static ::java::lang::String * formatInt(jint, jint, jint); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_ByteArray__ diff --git a/libjava/gnu/java/security/util/ByteBufferOutputStream.h b/libjava/gnu/java/security/util/ByteBufferOutputStream.h new file mode 100644 index 00000000000..cfb43d39953 --- /dev/null +++ b/libjava/gnu/java/security/util/ByteBufferOutputStream.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_ByteBufferOutputStream__ +#define __gnu_java_security_util_ByteBufferOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class ByteBufferOutputStream; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::java::security::util::ByteBufferOutputStream : public ::java::io::OutputStream +{ + +public: + ByteBufferOutputStream(); + ByteBufferOutputStream(jint); + virtual void write(jint); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(JArray< jbyte > *); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::lang::String * toString(); +private: + void growBuffer(); + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_ByteBufferOutputStream__ diff --git a/libjava/gnu/java/security/util/DerUtil.h b/libjava/gnu/java/security/util/DerUtil.h new file mode 100644 index 00000000000..42ec67e7e5a --- /dev/null +++ b/libjava/gnu/java/security/util/DerUtil.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_DerUtil__ +#define __gnu_java_security_util_DerUtil__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace der + { + class DERValue; + } + namespace util + { + class DerUtil; + } + } + } + } +} + +class gnu::java::security::util::DerUtil : public ::java::lang::Object +{ + +public: + DerUtil(); + static void checkIsConstructed(::gnu::java::security::der::DERValue *, ::java::lang::String *); + static void checkIsBigInteger(::gnu::java::security::der::DERValue *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_DerUtil__ diff --git a/libjava/gnu/java/security/util/ExpirableObject$Destroyer.h b/libjava/gnu/java/security/util/ExpirableObject$Destroyer.h new file mode 100644 index 00000000000..8d39fbb7d6c --- /dev/null +++ b/libjava/gnu/java/security/util/ExpirableObject$Destroyer.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_ExpirableObject$Destroyer__ +#define __gnu_java_security_util_ExpirableObject$Destroyer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class ExpirableObject; + class ExpirableObject$Destroyer; + } + } + } + } +} + +class gnu::java::security::util::ExpirableObject$Destroyer : public ::java::util::TimerTask +{ + +public: // actually package-private + ExpirableObject$Destroyer(::gnu::java::security::util::ExpirableObject *, ::gnu::java::security::util::ExpirableObject *); +public: + void run(); +private: + ::gnu::java::security::util::ExpirableObject * __attribute__((aligned(__alignof__( ::java::util::TimerTask)))) target; +public: // actually package-private + ::gnu::java::security::util::ExpirableObject * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_ExpirableObject$Destroyer__ diff --git a/libjava/gnu/java/security/util/ExpirableObject.h b/libjava/gnu/java/security/util/ExpirableObject.h new file mode 100644 index 00000000000..094dc718acb --- /dev/null +++ b/libjava/gnu/java/security/util/ExpirableObject.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_ExpirableObject__ +#define __gnu_java_security_util_ExpirableObject__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class ExpirableObject; + class ExpirableObject$Destroyer; + } + } + } + } +} + +class gnu::java::security::util::ExpirableObject : public ::java::lang::Object +{ + +public: // actually protected + ExpirableObject(); + ExpirableObject(jlong); +public: + virtual void destroy(); +public: // actually protected + virtual void doDestroy() = 0; +public: + virtual jboolean isDestroyed() = 0; + static const jlong DEFAULT_TIMEOUT = 3600000LL; +private: + static ::java::util::Timer * EXPIRER; + ::gnu::java::security::util::ExpirableObject$Destroyer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) destroyer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_ExpirableObject__ diff --git a/libjava/gnu/java/security/util/FormatUtil.h b/libjava/gnu/java/security/util/FormatUtil.h new file mode 100644 index 00000000000..019395d1999 --- /dev/null +++ b/libjava/gnu/java/security/util/FormatUtil.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_FormatUtil__ +#define __gnu_java_security_util_FormatUtil__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class FormatUtil; + } + } + } + } +} + +class gnu::java::security::util::FormatUtil : public ::java::lang::Object +{ + + FormatUtil(); +public: + static ::java::lang::String * getEncodingName(jint); + static ::java::lang::String * getEncodingShortName(jint); + static jint getFormatID(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_FormatUtil__ diff --git a/libjava/gnu/java/security/util/IntegerUtil$1.h b/libjava/gnu/java/security/util/IntegerUtil$1.h new file mode 100644 index 00000000000..8c13f14dfe1 --- /dev/null +++ b/libjava/gnu/java/security/util/IntegerUtil$1.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_IntegerUtil$1__ +#define __gnu_java_security_util_IntegerUtil$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class IntegerUtil$1; + } + } + } + } +} + +class gnu::java::security::util::IntegerUtil$1 : public ::java::util::LinkedHashMap +{ + +public: // actually package-private + IntegerUtil$1(jint, jfloat, jboolean); +public: + jboolean removeEldestEntry(::java::util::Map$Entry *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_IntegerUtil$1__ diff --git a/libjava/gnu/java/security/util/IntegerUtil.h b/libjava/gnu/java/security/util/IntegerUtil.h new file mode 100644 index 00000000000..96a7b24b2fd --- /dev/null +++ b/libjava/gnu/java/security/util/IntegerUtil.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_IntegerUtil__ +#define __gnu_java_security_util_IntegerUtil__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class IntegerUtil; + } + } + } + } +} + +class gnu::java::security::util::IntegerUtil : public ::java::lang::Object +{ + + IntegerUtil(); +public: + static ::java::lang::Integer * valueOf(::java::lang::String *); + static ::java::lang::Integer * valueOf(jint); +private: + static const jint CACHE_SIZE = 100; + static ::java::util::Map * cache; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_IntegerUtil__ diff --git a/libjava/gnu/java/security/util/PRNG.h b/libjava/gnu/java/security/util/PRNG.h new file mode 100644 index 00000000000..48b45d749d0 --- /dev/null +++ b/libjava/gnu/java/security/util/PRNG.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_PRNG__ +#define __gnu_java_security_util_PRNG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + namespace util + { + class PRNG; + } + } + } + } +} + +class gnu::java::security::util::PRNG : public ::java::lang::Object +{ + + PRNG(::gnu::java::security::prng::IRandom *); +public: + static ::gnu::java::security::util::PRNG * getInstance(); + virtual void nextBytes(JArray< jbyte > *); + virtual void nextBytes(JArray< jbyte > *, jint, jint); +private: + ::gnu::java::security::prng::IRandom * __attribute__((aligned(__alignof__( ::java::lang::Object)))) delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_PRNG__ diff --git a/libjava/gnu/java/security/util/Prime.h b/libjava/gnu/java/security/util/Prime.h new file mode 100644 index 00000000000..3dd531300d7 --- /dev/null +++ b/libjava/gnu/java/security/util/Prime.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_Prime__ +#define __gnu_java_security_util_Prime__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class Prime; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::util::Prime : public ::java::lang::Object +{ + +public: + Prime(); + static ::java::math::BigInteger * generateRandomPrime(jint, jint, ::java::math::BigInteger *); + static ::java::math::BigInteger * generateRandomPrime(::java::math::BigInteger *, ::java::math::BigInteger *, jint, jint, ::java::math::BigInteger *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_Prime__ diff --git a/libjava/gnu/java/security/util/Sequence.h b/libjava/gnu/java/security/util/Sequence.h new file mode 100644 index 00000000000..881c5ff90e5 --- /dev/null +++ b/libjava/gnu/java/security/util/Sequence.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_Sequence__ +#define __gnu_java_security_util_Sequence__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class Sequence; + } + } + } + } +} + +class gnu::java::security::util::Sequence : public ::java::util::AbstractList +{ + +public: + Sequence(jint); + Sequence(jint, jint); + Sequence(jint, jint, jint); + ::java::lang::Object * get(jint); + jint size(); + JArray< ::java::lang::Object * > * toArray(); +private: + JArray< ::java::lang::Integer * > * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) sequence; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_Sequence__ diff --git a/libjava/gnu/java/security/util/SimpleList.h b/libjava/gnu/java/security/util/SimpleList.h new file mode 100644 index 00000000000..dc3c1c77d84 --- /dev/null +++ b/libjava/gnu/java/security/util/SimpleList.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_SimpleList__ +#define __gnu_java_security_util_SimpleList__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class SimpleList; + } + } + } + } +} + +class gnu::java::security::util::SimpleList : public ::java::util::AbstractList +{ + +public: + SimpleList(::java::lang::Object *); + SimpleList(::java::lang::Object *, ::java::lang::Object *); + SimpleList(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *); + SimpleList(::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *, ::java::lang::Object *); + SimpleList(); + SimpleList(::java::util::Collection *); + jint size(); + ::java::lang::Object * get(jint); + ::java::lang::String * toString(); +private: + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) elements; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_SimpleList__ diff --git a/libjava/gnu/java/security/util/Util.h b/libjava/gnu/java/security/util/Util.h new file mode 100644 index 00000000000..5e7764e137c --- /dev/null +++ b/libjava/gnu/java/security/util/Util.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_util_Util__ +#define __gnu_java_security_util_Util__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class Util; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::util::Util : public ::java::lang::Object +{ + + Util(); +public: + static ::java::lang::String * toString(JArray< jbyte > *); + static ::java::lang::String * toString(JArray< jbyte > *, jint, jint); + static ::java::lang::String * toReversedString(JArray< jbyte > *); + static ::java::lang::String * toReversedString(JArray< jbyte > *, jint, jint); + static JArray< jbyte > * toBytesFromString(::java::lang::String *); + static JArray< jbyte > * toReversedBytesFromString(::java::lang::String *); + static jint fromDigit(jchar); + static ::java::lang::String * toString(jint); + static ::java::lang::String * toString(JArray< jint > *); + static ::java::lang::String * toString(jlong); + static ::java::lang::String * toUnicodeString(JArray< jbyte > *); + static ::java::lang::String * toUnicodeString(JArray< jbyte > *, jint, jint); + static ::java::lang::String * toUnicodeString(JArray< jint > *); + static JArray< jbyte > * toBytesFromUnicode(::java::lang::String *); + static ::java::lang::String * dumpString(JArray< jbyte > *, jint, jint, ::java::lang::String *); + static ::java::lang::String * dumpString(JArray< jbyte > *); + static ::java::lang::String * dumpString(JArray< jbyte > *, ::java::lang::String *); + static ::java::lang::String * dumpString(JArray< jbyte > *, jint, jint); + static ::java::lang::String * byteToString(jint); + static ::java::lang::String * toBase64(JArray< jbyte > *); + static JArray< jbyte > * fromBase64(::java::lang::String *); + static JArray< jbyte > * trim(::java::math::BigInteger *); + static ::java::lang::String * dump(::java::math::BigInteger *); +private: + static JArray< jchar > * HEX_DIGITS; + static ::java::lang::String * BASE64_CHARS; + static JArray< jchar > * BASE64_CHARSET; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_util_Util__ diff --git a/libjava/gnu/java/security/x509/GnuPKIExtension.h b/libjava/gnu/java/security/x509/GnuPKIExtension.h new file mode 100644 index 00000000000..d91dc7b03bd --- /dev/null +++ b/libjava/gnu/java/security/x509/GnuPKIExtension.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_GnuPKIExtension__ +#define __gnu_java_security_x509_GnuPKIExtension__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + class GnuPKIExtension; + namespace ext + { + class Extension; + } + } + } + } + } +} + +class gnu::java::security::x509::GnuPKIExtension : public ::java::lang::Object +{ + +public: + virtual ::gnu::java::security::x509::ext::Extension * getExtension(::gnu::java::security::OID *) = 0; + virtual ::java::util::Collection * getExtensions() = 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$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_security_x509_GnuPKIExtension__ diff --git a/libjava/gnu/java/security/x509/PolicyNodeImpl.h b/libjava/gnu/java/security/x509/PolicyNodeImpl.h new file mode 100644 index 00000000000..1786e4b2acc --- /dev/null +++ b/libjava/gnu/java/security/x509/PolicyNodeImpl.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_PolicyNodeImpl__ +#define __gnu_java_security_x509_PolicyNodeImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace x509 + { + class PolicyNodeImpl; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class PolicyNode; + class PolicyQualifierInfo; + } + } + } +} + +class gnu::java::security::x509::PolicyNodeImpl : public ::java::lang::Object +{ + +public: + PolicyNodeImpl(); + void addChild(::gnu::java::security::x509::PolicyNodeImpl *); + ::java::util::Iterator * getChildren(); + jint getDepth(); + void setDepth(jint); + void addAllExpectedPolicies(::java::util::Set *); + void addExpectedPolicy(::java::lang::String *); + ::java::util::Set * getExpectedPolicies(); + ::java::security::cert::PolicyNode * getParent(); + void addAllPolicyQualifiers(::java::util::Collection *); + void addPolicyQualifier(::java::security::cert::PolicyQualifierInfo *); + ::java::util::Set * getPolicyQualifiers(); + ::java::lang::String * getValidPolicy(); + void setValidPolicy(::java::lang::String *); + jboolean isCritical(); + void setCritical(jboolean); + void setReadOnly(); + ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) policy; + ::java::util::Set * expectedPolicies; + ::java::util::Set * qualifiers; + ::java::util::Set * children; + ::gnu::java::security::x509::PolicyNodeImpl * parent; + jint depth; + jboolean critical; + jboolean readOnly; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_PolicyNodeImpl__ diff --git a/libjava/gnu/java/security/x509/Util.h b/libjava/gnu/java/security/x509/Util.h new file mode 100644 index 00000000000..4a6d4c2f219 --- /dev/null +++ b/libjava/gnu/java/security/x509/Util.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_Util__ +#define __gnu_java_security_x509_Util__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace x509 + { + class Util; + } + } + } + } +} + +class gnu::java::security::x509::Util : public ::java::lang::Object +{ + +public: + Util(); + static ::java::lang::String * toHexString(JArray< jbyte > *, jint, jint); + static ::java::lang::String * toHexString(JArray< jbyte > *); + static ::java::lang::String * toHexString(JArray< jbyte > *, jint, jint, jchar); + static ::java::lang::String * toHexString(JArray< jbyte > *, jchar); + static ::java::lang::String * hexDump(JArray< jbyte > *, jint, jint, ::java::lang::String *); + static ::java::lang::String * hexDump(JArray< jbyte > *, ::java::lang::String *); + static ::java::lang::String * formatInt(jint, jint, jint); + static JArray< jbyte > * toByteArray(::java::lang::String *); + static ::java::lang::String * HEX; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_Util__ diff --git a/libjava/gnu/java/security/x509/X500DistinguishedName.h b/libjava/gnu/java/security/x509/X500DistinguishedName.h new file mode 100644 index 00000000000..c2e94966269 --- /dev/null +++ b/libjava/gnu/java/security/x509/X500DistinguishedName.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_X500DistinguishedName__ +#define __gnu_java_security_x509_X500DistinguishedName__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace der + { + class DERReader; + } + namespace x509 + { + class X500DistinguishedName; + } + } + } + } +} + +class gnu::java::security::x509::X500DistinguishedName : public ::java::lang::Object +{ + +public: + X500DistinguishedName(); + X500DistinguishedName(::java::lang::String *); + X500DistinguishedName(JArray< jbyte > *); + X500DistinguishedName(::java::io::InputStream *); + virtual ::java::lang::String * getName(); + virtual void newRelativeDistinguishedName(); + virtual jint size(); + virtual jint countComponents(); + virtual jboolean containsComponent(::gnu::java::security::OID *, ::java::lang::String *); + virtual ::java::lang::String * getComponent(::gnu::java::security::OID *); + virtual ::java::lang::String * getComponent(::gnu::java::security::OID *, jint); + virtual void putComponent(::gnu::java::security::OID *, ::java::lang::String *); + virtual void putComponent(::java::lang::String *, ::java::lang::String *); + virtual void setUnmodifiable(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual JArray< jbyte > * getDer(); +private: + void parseString(::java::lang::String *); + ::java::lang::String * readAttributeType(::java::io::Reader *); + ::java::lang::String * readAttributeValue(::java::io::Reader *); + void parseDer(::gnu::java::security::der::DERReader *); + static ::java::lang::String * compressWS(::java::lang::String *); +public: + static ::gnu::java::security::OID * CN; + static ::gnu::java::security::OID * C; + static ::gnu::java::security::OID * L; + static ::gnu::java::security::OID * ST; + static ::gnu::java::security::OID * STREET; + static ::gnu::java::security::OID * O; + static ::gnu::java::security::OID * OU; + static ::gnu::java::security::OID * T; + static ::gnu::java::security::OID * DNQ; + static ::gnu::java::security::OID * NAME; + static ::gnu::java::security::OID * GIVENNAME; + static ::gnu::java::security::OID * INITIALS; + static ::gnu::java::security::OID * GENERATION; + static ::gnu::java::security::OID * EMAIL; + static ::gnu::java::security::OID * DC; + static ::gnu::java::security::OID * UID; +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) components; + ::java::util::Map * currentRdn; + jboolean fixed; + ::java::lang::String * stringRep; + JArray< jbyte > * encoded; + jint sep; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_X500DistinguishedName__ diff --git a/libjava/gnu/java/security/x509/X509CRL.h b/libjava/gnu/java/security/x509/X509CRL.h new file mode 100644 index 00000000000..76d5e1e3181 --- /dev/null +++ b/libjava/gnu/java/security/x509/X509CRL.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_X509CRL__ +#define __gnu_java_security_x509_X509CRL__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + class X500DistinguishedName; + class X509CRL; + namespace ext + { + class Extension; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class Principal; + class PublicKey; + class Signature; + namespace cert + { + class Certificate; + class X509CRLEntry; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500Principal; + } + } + } + } +} + +class gnu::java::security::x509::X509CRL : public ::java::security::cert::X509CRL +{ + +public: + X509CRL(::java::io::InputStream *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual JArray< jbyte > * getEncoded(); + virtual void verify(::java::security::PublicKey *); + virtual void verify(::java::security::PublicKey *, ::java::lang::String *); + virtual jint getVersion(); + virtual ::java::security::Principal * getIssuerDN(); + virtual ::javax::security::auth::x500::X500Principal * getIssuerX500Principal(); + virtual ::java::util::Date * getThisUpdate(); + virtual ::java::util::Date * getNextUpdate(); + virtual ::java::security::cert::X509CRLEntry * getRevokedCertificate(::java::math::BigInteger *); + virtual ::java::util::Set * getRevokedCertificates(); + virtual JArray< jbyte > * getTBSCertList(); + virtual JArray< jbyte > * getSignature(); + virtual ::java::lang::String * getSigAlgName(); + virtual ::java::lang::String * getSigAlgOID(); + virtual JArray< jbyte > * getSigAlgParams(); + virtual jboolean hasUnsupportedCriticalExtension(); + virtual ::java::util::Set * getCriticalExtensionOIDs(); + virtual ::java::util::Set * getNonCriticalExtensionOIDs(); + virtual JArray< jbyte > * getExtensionValue(::java::lang::String *); + virtual ::gnu::java::security::x509::ext::Extension * getExtension(::gnu::java::security::OID *); + virtual ::java::util::Collection * getExtensions(); + virtual ::java::lang::String * toString(); + virtual jboolean isRevoked(::java::security::cert::Certificate *); +private: + void doVerify(::java::security::Signature *, ::java::security::PublicKey *); + void parse(::java::io::InputStream *); + static ::java::util::logging::Logger * log; + static ::gnu::java::security::OID * ID_DSA; + static ::gnu::java::security::OID * ID_DSA_WITH_SHA1; + static ::gnu::java::security::OID * ID_RSA; + static ::gnu::java::security::OID * ID_RSA_WITH_MD2; + static ::gnu::java::security::OID * ID_RSA_WITH_MD5; + static ::gnu::java::security::OID * ID_RSA_WITH_SHA1; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::security::cert::X509CRL)))) encoded; + JArray< jbyte > * tbsCRLBytes; + jint version; + ::gnu::java::security::OID * algId; + JArray< jbyte > * algParams; + ::java::util::Date * thisUpdate; + ::java::util::Date * nextUpdate; + ::gnu::java::security::x509::X500DistinguishedName * issuerDN; + ::java::util::HashMap * revokedCerts; + ::java::util::HashMap * extensions; + ::gnu::java::security::OID * sigAlg; + JArray< jbyte > * sigAlgParams; + JArray< jbyte > * rawSig; + JArray< jbyte > * signature; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_X509CRL__ diff --git a/libjava/gnu/java/security/x509/X509CRLEntry.h b/libjava/gnu/java/security/x509/X509CRLEntry.h new file mode 100644 index 00000000000..7b272f75e02 --- /dev/null +++ b/libjava/gnu/java/security/x509/X509CRLEntry.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_X509CRLEntry__ +#define __gnu_java_security_x509_X509CRLEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace der + { + class DERReader; + } + namespace x509 + { + class X509CRLEntry; + namespace ext + { + class Extension; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::x509::X509CRLEntry : public ::java::security::cert::X509CRLEntry +{ + +public: // actually package-private + X509CRLEntry(jint, ::gnu::java::security::der::DERReader *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::math::BigInteger * getSerialNumber(); + virtual ::java::util::Date * getRevocationDate(); + virtual jboolean hasExtensions(); + virtual ::java::lang::String * toString(); + virtual jboolean hasUnsupportedCriticalExtension(); + virtual ::java::util::Set * getCriticalExtensionOIDs(); + virtual ::java::util::Set * getNonCriticalExtensionOIDs(); + virtual JArray< jbyte > * getExtensionValue(::java::lang::String *); + virtual ::gnu::java::security::x509::ext::Extension * getExtension(::gnu::java::security::OID *); + virtual ::java::util::Collection * getExtensions(); +private: + void parse(jint, ::gnu::java::security::der::DERReader *); + static ::java::util::logging::Logger * log; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::security::cert::X509CRLEntry)))) encoded; + ::java::math::BigInteger * serialNo; + ::java::util::Date * revocationDate; + ::java::util::HashMap * extensions; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_X509CRLEntry__ diff --git a/libjava/gnu/java/security/x509/X509CRLSelectorImpl.h b/libjava/gnu/java/security/x509/X509CRLSelectorImpl.h new file mode 100644 index 00000000000..2fc953759ee --- /dev/null +++ b/libjava/gnu/java/security/x509/X509CRLSelectorImpl.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_X509CRLSelectorImpl__ +#define __gnu_java_security_x509_X509CRLSelectorImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace x509 + { + class X509CRLSelectorImpl; + } + } + } + } + namespace java + { + namespace security + { + class Principal; + namespace cert + { + class CRL; + } + } + } +} + +class gnu::java::security::x509::X509CRLSelectorImpl : public ::java::lang::Object +{ + +public: + X509CRLSelectorImpl(); + virtual void addIssuerName(JArray< jbyte > *); + virtual void addIssuerName(::java::lang::String *); + virtual void addIssuerName(::java::security::Principal *); + virtual ::java::util::Collection * getIssuerNames(); + virtual ::java::lang::Object * clone(); + virtual jboolean match(::java::security::cert::CRL *); +private: + ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) issuerNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_X509CRLSelectorImpl__ diff --git a/libjava/gnu/java/security/x509/X509CertPath.h b/libjava/gnu/java/security/x509/X509CertPath.h new file mode 100644 index 00000000000..5aaadc6dcbc --- /dev/null +++ b/libjava/gnu/java/security/x509/X509CertPath.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_X509CertPath__ +#define __gnu_java_security_x509_X509CertPath__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + class X509CertPath; + } + } + } + } +} + +class gnu::java::security::x509::X509CertPath : public ::java::security::cert::CertPath +{ + +public: + X509CertPath(::java::util::List *); + X509CertPath(::java::io::InputStream *); + X509CertPath(::java::io::InputStream *, ::java::lang::String *); + virtual ::java::util::List * getCertificates(); + virtual JArray< jbyte > * getEncoded(); + virtual JArray< jbyte > * getEncoded(::java::lang::String *); + virtual ::java::util::Iterator * getEncodings(); +private: + void parse(::java::io::InputStream *, ::java::lang::String *); + JArray< jbyte > * encodePki(); + JArray< jbyte > * encodePKCS(); +public: + static ::java::util::List * ENCODINGS; +private: + static ::gnu::java::security::OID * PKCS7_SIGNED_DATA; + static ::gnu::java::security::OID * PKCS7_DATA; + ::java::util::List * __attribute__((aligned(__alignof__( ::java::security::cert::CertPath)))) path; + JArray< jbyte > * pkcs_encoded; + JArray< jbyte > * pki_encoded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_X509CertPath__ diff --git a/libjava/gnu/java/security/x509/X509CertSelectorImpl.h b/libjava/gnu/java/security/x509/X509CertSelectorImpl.h new file mode 100644 index 00000000000..12a12af5a4e --- /dev/null +++ b/libjava/gnu/java/security/x509/X509CertSelectorImpl.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_X509CertSelectorImpl__ +#define __gnu_java_security_x509_X509CertSelectorImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace x509 + { + class X509CertSelectorImpl; + } + } + } + } + namespace java + { + namespace security + { + class Principal; + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::java::security::x509::X509CertSelectorImpl : public ::java::lang::Object +{ + +public: + X509CertSelectorImpl(); + virtual void addIssuerName(JArray< jbyte > *); + virtual void addIssuerName(::java::lang::String *); + virtual void addIssuerName(::java::security::Principal *); + virtual ::java::util::Collection * getIssuerNames(); + virtual void addSubjectName(JArray< jbyte > *); + virtual void addSubjectName(::java::lang::String *); + virtual void addSubjectName(::java::security::Principal *); + virtual ::java::util::Collection * getSubjectNames(); + virtual ::java::lang::Object * clone(); + virtual jboolean match(::java::security::cert::Certificate *); +private: + ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) issuerNames; + ::java::util::Set * subjectNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_X509CertSelectorImpl__ diff --git a/libjava/gnu/java/security/x509/X509Certificate.h b/libjava/gnu/java/security/x509/X509Certificate.h new file mode 100644 index 00000000000..024e4031255 --- /dev/null +++ b/libjava/gnu/java/security/x509/X509Certificate.h @@ -0,0 +1,140 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_X509Certificate__ +#define __gnu_java_security_x509_X509Certificate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace der + { + class BitString; + } + namespace x509 + { + class X500DistinguishedName; + class X509Certificate; + namespace ext + { + class Extension; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class Principal; + class PublicKey; + class Signature; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500Principal; + } + } + } + } +} + +class gnu::java::security::x509::X509Certificate : public ::java::security::cert::X509Certificate +{ + +public: + X509Certificate(::java::io::InputStream *); +public: // actually protected + X509Certificate(); +public: + virtual void checkValidity(); + virtual void checkValidity(::java::util::Date *); + virtual jint getVersion(); + virtual ::java::math::BigInteger * getSerialNumber(); + virtual ::java::security::Principal * getIssuerDN(); + virtual ::javax::security::auth::x500::X500Principal * getIssuerX500Principal(); + virtual ::java::security::Principal * getSubjectDN(); + virtual ::javax::security::auth::x500::X500Principal * getSubjectX500Principal(); + virtual ::java::util::Date * getNotBefore(); + virtual ::java::util::Date * getNotAfter(); + virtual JArray< jbyte > * getTBSCertificate(); + virtual JArray< jbyte > * getSignature(); + virtual ::java::lang::String * getSigAlgName(); + virtual ::java::lang::String * getSigAlgOID(); + virtual JArray< jbyte > * getSigAlgParams(); + virtual JArray< jboolean > * getIssuerUniqueID(); + virtual JArray< jboolean > * getSubjectUniqueID(); + virtual JArray< jboolean > * getKeyUsage(); + virtual ::java::util::List * getExtendedKeyUsage(); + virtual jint getBasicConstraints(); + virtual ::java::util::Collection * getSubjectAlternativeNames(); + virtual ::java::util::Collection * getIssuerAlternativeNames(); + virtual jboolean hasUnsupportedCriticalExtension(); + virtual ::java::util::Set * getCriticalExtensionOIDs(); + virtual ::java::util::Set * getNonCriticalExtensionOIDs(); + virtual JArray< jbyte > * getExtensionValue(::java::lang::String *); + virtual ::gnu::java::security::x509::ext::Extension * getExtension(::gnu::java::security::OID *); + virtual ::java::util::Collection * getExtensions(); + virtual JArray< jbyte > * getEncoded(); + virtual void verify(::java::security::PublicKey *); + virtual void verify(::java::security::PublicKey *, ::java::lang::String *); + virtual ::java::lang::String * toString(); + virtual ::java::security::PublicKey * getPublicKey(); + virtual jboolean equals(::java::lang::Object *); +private: + void doVerify(::java::security::Signature *, ::java::security::PublicKey *); + void parse(::java::io::InputStream *); + static ::java::util::logging::Logger * logger; +public: // actually protected + static ::gnu::java::security::OID * ID_DSA; + static ::gnu::java::security::OID * ID_DSA_WITH_SHA1; + static ::gnu::java::security::OID * ID_RSA; + static ::gnu::java::security::OID * ID_RSA_WITH_MD2; + static ::gnu::java::security::OID * ID_RSA_WITH_MD5; + static ::gnu::java::security::OID * ID_RSA_WITH_SHA1; + static ::gnu::java::security::OID * ID_ECDSA_WITH_SHA1; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::security::cert::X509Certificate)))) encoded; + JArray< jbyte > * tbsCertBytes; + jint version; + ::java::math::BigInteger * serialNo; + ::gnu::java::security::OID * algId; + JArray< jbyte > * algVal; + ::gnu::java::security::x509::X500DistinguishedName * issuer; + ::java::util::Date * notBefore; + ::java::util::Date * notAfter; + ::gnu::java::security::x509::X500DistinguishedName * subject; + ::java::security::PublicKey * subjectKey; + ::gnu::java::security::der::BitString * issuerUniqueId; + ::gnu::java::security::der::BitString * subjectUniqueId; + ::java::util::Map * extensions; + ::gnu::java::security::OID * sigAlgId; + JArray< jbyte > * sigAlgVal; + JArray< jbyte > * signature; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_X509Certificate__ diff --git a/libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.h b/libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.h new file mode 100644 index 00000000000..71b6f602182 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_AuthorityKeyIdentifier__ +#define __gnu_java_security_x509_ext_AuthorityKeyIdentifier__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class AuthorityKeyIdentifier; + class GeneralNames; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::x509::ext::AuthorityKeyIdentifier : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + AuthorityKeyIdentifier(JArray< jbyte > *); + virtual JArray< jbyte > * getKeyIdentifier(); + virtual ::gnu::java::security::x509::ext::GeneralNames * getAuthorityCertIssuer(); + virtual ::java::math::BigInteger * getAuthorityCertSerialNumber(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) keyIdentifier; + ::gnu::java::security::x509::ext::GeneralNames * authorityCertIssuer; + ::java::math::BigInteger * authorityCertSerialNumber; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_AuthorityKeyIdentifier__ diff --git a/libjava/gnu/java/security/x509/ext/BasicConstraints.h b/libjava/gnu/java/security/x509/ext/BasicConstraints.h new file mode 100644 index 00000000000..96fffb51210 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/BasicConstraints.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_BasicConstraints__ +#define __gnu_java_security_x509_ext_BasicConstraints__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class BasicConstraints; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::BasicConstraints : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + BasicConstraints(JArray< jbyte > *); + BasicConstraints(jboolean, jint); + virtual jboolean isCA(); + virtual jint getPathLengthConstraint(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) ca; + jint pathLenConstraint; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_BasicConstraints__ diff --git a/libjava/gnu/java/security/x509/ext/CRLNumber.h b/libjava/gnu/java/security/x509/ext/CRLNumber.h new file mode 100644 index 00000000000..ef56baae8ec --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/CRLNumber.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_CRLNumber__ +#define __gnu_java_security_x509_ext_CRLNumber__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class CRLNumber; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::java::security::x509::ext::CRLNumber : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + CRLNumber(JArray< jbyte > *); + CRLNumber(::java::math::BigInteger *); + virtual ::java::math::BigInteger * getNumber(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) number; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_CRLNumber__ diff --git a/libjava/gnu/java/security/x509/ext/CertificatePolicies.h b/libjava/gnu/java/security/x509/ext/CertificatePolicies.h new file mode 100644 index 00000000000..3e6724e6c46 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/CertificatePolicies.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_CertificatePolicies__ +#define __gnu_java_security_x509_ext_CertificatePolicies__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class CertificatePolicies; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::CertificatePolicies : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + CertificatePolicies(JArray< jbyte > *); + CertificatePolicies(::java::util::List *, ::java::util::Map *); + virtual ::java::util::List * getPolicies(); + virtual ::java::util::List * getPolicyQualifierInfos(::gnu::java::security::OID *); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) policies; + ::java::util::Map * policyQualifierInfos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_CertificatePolicies__ diff --git a/libjava/gnu/java/security/x509/ext/ExtendedKeyUsage.h b/libjava/gnu/java/security/x509/ext/ExtendedKeyUsage.h new file mode 100644 index 00000000000..61f5f1d0572 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/ExtendedKeyUsage.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_ExtendedKeyUsage__ +#define __gnu_java_security_x509_ext_ExtendedKeyUsage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class ExtendedKeyUsage; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::ExtendedKeyUsage : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + ExtendedKeyUsage(JArray< jbyte > *); + virtual ::java::util::List * getPurposeIds(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) purposeIds; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_ExtendedKeyUsage__ diff --git a/libjava/gnu/java/security/x509/ext/Extension$Value.h b/libjava/gnu/java/security/x509/ext/Extension$Value.h new file mode 100644 index 00000000000..04f069ea5b8 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/Extension$Value.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_Extension$Value__ +#define __gnu_java_security_x509_ext_Extension$Value__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace x509 + { + namespace ext + { + class Extension$Value; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::Extension$Value : public ::java::lang::Object +{ + +public: + Extension$Value(JArray< jbyte > *); +public: // actually protected + Extension$Value(); +public: + virtual JArray< jbyte > * getEncoded(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +public: // actually protected + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) encoded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_Extension$Value__ diff --git a/libjava/gnu/java/security/x509/ext/Extension.h b/libjava/gnu/java/security/x509/ext/Extension.h new file mode 100644 index 00000000000..0e660f918a8 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/Extension.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_Extension__ +#define __gnu_java_security_x509_ext_Extension__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace der + { + class DERValue; + } + namespace x509 + { + namespace ext + { + class Extension; + class Extension$Value; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::Extension : public ::java::lang::Object +{ + +public: + Extension(JArray< jbyte > *); + Extension(::gnu::java::security::OID *, ::gnu::java::security::x509::ext::Extension$Value *, jboolean); + virtual ::gnu::java::security::OID * getOid(); + virtual jboolean isCritical(); + virtual jboolean isSupported(); + virtual ::gnu::java::security::x509::ext::Extension$Value * getValue(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * toString(); + virtual ::gnu::java::security::der::DERValue * getDerValue(); +private: + void encode(); + static ::java::util::logging::Logger * log; +public: // actually protected + ::gnu::java::security::OID * __attribute__((aligned(__alignof__( ::java::lang::Object)))) oid; + jboolean critical; + jboolean isSupported__; + ::gnu::java::security::x509::ext::Extension$Value * value; + JArray< jbyte > * encoded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_Extension__ diff --git a/libjava/gnu/java/security/x509/ext/GeneralNames.h b/libjava/gnu/java/security/x509/ext/GeneralNames.h new file mode 100644 index 00000000000..8765d18e71a --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/GeneralNames.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_GeneralNames__ +#define __gnu_java_security_x509_ext_GeneralNames__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace x509 + { + namespace ext + { + class GeneralNames; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::GeneralNames : public ::java::lang::Object +{ + +public: + GeneralNames(JArray< jbyte > *); + virtual ::java::util::List * getNames(); + virtual ::java::lang::String * toString(); + static const jint OTHER_NAME = 0; + static const jint RFC822_NAME = 1; + static const jint DNS_NAME = 2; + static const jint X400_ADDRESS = 3; + static const jint DIRECTORY_NAME = 4; + static const jint EDI_PARTY_NAME = 5; + static const jint URI = 6; + static const jint IP_ADDRESS = 7; + static const jint REGISTERED_ID = 8; +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_GeneralNames__ diff --git a/libjava/gnu/java/security/x509/ext/IssuerAlternativeNames.h b/libjava/gnu/java/security/x509/ext/IssuerAlternativeNames.h new file mode 100644 index 00000000000..50b3f35a687 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/IssuerAlternativeNames.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_IssuerAlternativeNames__ +#define __gnu_java_security_x509_ext_IssuerAlternativeNames__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class GeneralNames; + class IssuerAlternativeNames; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::IssuerAlternativeNames : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + IssuerAlternativeNames(JArray< jbyte > *); + virtual ::java::util::List * getNames(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + ::gnu::java::security::x509::ext::GeneralNames * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_IssuerAlternativeNames__ diff --git a/libjava/gnu/java/security/x509/ext/KeyUsage.h b/libjava/gnu/java/security/x509/ext/KeyUsage.h new file mode 100644 index 00000000000..4293755ad27 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/KeyUsage.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_KeyUsage__ +#define __gnu_java_security_x509_ext_KeyUsage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace der + { + class BitString; + } + namespace x509 + { + namespace ext + { + class KeyUsage; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::KeyUsage : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + KeyUsage(JArray< jbyte > *); + virtual ::gnu::java::security::der::BitString * getKeyUsage(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; + static const jint DIGITAL_SIGNATURE = 0; + static const jint NON_REPUDIATION = 1; + static const jint KEY_ENCIPHERMENT = 2; + static const jint DATA_ENCIPHERMENT = 3; + static const jint KEY_AGREEMENT = 4; + static const jint KEY_CERT_SIGN = 5; + static const jint CRL_SIGN = 6; + static const jint ENCIPHER_ONLY = 7; + static const jint DECIPHER_ONLY = 8; +private: + ::gnu::java::security::der::BitString * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) keyUsage; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_KeyUsage__ diff --git a/libjava/gnu/java/security/x509/ext/PolicyConstraint.h b/libjava/gnu/java/security/x509/ext/PolicyConstraint.h new file mode 100644 index 00000000000..1846d461fd6 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/PolicyConstraint.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_PolicyConstraint__ +#define __gnu_java_security_x509_ext_PolicyConstraint__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class PolicyConstraint; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::PolicyConstraint : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + PolicyConstraint(JArray< jbyte > *); + virtual jint getRequireExplicitPolicy(); + virtual jint getInhibitPolicyMapping(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) requireExplicitPolicy; + jint inhibitPolicyMapping; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_PolicyConstraint__ diff --git a/libjava/gnu/java/security/x509/ext/PolicyMappings.h b/libjava/gnu/java/security/x509/ext/PolicyMappings.h new file mode 100644 index 00000000000..2741db3fa9a --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/PolicyMappings.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_PolicyMappings__ +#define __gnu_java_security_x509_ext_PolicyMappings__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class PolicyMappings; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::PolicyMappings : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + PolicyMappings(JArray< jbyte > *); + virtual ::gnu::java::security::OID * getSubjectDomainPolicy(::gnu::java::security::OID *); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + ::java::util::Map * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) mappings; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_PolicyMappings__ diff --git a/libjava/gnu/java/security/x509/ext/PrivateKeyUsagePeriod.h b/libjava/gnu/java/security/x509/ext/PrivateKeyUsagePeriod.h new file mode 100644 index 00000000000..0d14162b786 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/PrivateKeyUsagePeriod.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_PrivateKeyUsagePeriod__ +#define __gnu_java_security_x509_ext_PrivateKeyUsagePeriod__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class PrivateKeyUsagePeriod; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::PrivateKeyUsagePeriod : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + PrivateKeyUsagePeriod(JArray< jbyte > *); + virtual ::java::util::Date * getNotBefore(); + virtual ::java::util::Date * getNotAfter(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + ::java::util::Date * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) notBefore; + ::java::util::Date * notAfter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_PrivateKeyUsagePeriod__ diff --git a/libjava/gnu/java/security/x509/ext/ReasonCode.h b/libjava/gnu/java/security/x509/ext/ReasonCode.h new file mode 100644 index 00000000000..03a3c454a2f --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/ReasonCode.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_ReasonCode__ +#define __gnu_java_security_x509_ext_ReasonCode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class ReasonCode; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::ReasonCode : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + ReasonCode(JArray< jbyte > *); + virtual jint getReasonCode(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; + jint __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) reason; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_ReasonCode__ diff --git a/libjava/gnu/java/security/x509/ext/SubjectAlternativeNames.h b/libjava/gnu/java/security/x509/ext/SubjectAlternativeNames.h new file mode 100644 index 00000000000..80e9ac05516 --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/SubjectAlternativeNames.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_SubjectAlternativeNames__ +#define __gnu_java_security_x509_ext_SubjectAlternativeNames__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class GeneralNames; + class SubjectAlternativeNames; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::SubjectAlternativeNames : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + SubjectAlternativeNames(JArray< jbyte > *); + virtual ::java::util::List * getNames(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + ::gnu::java::security::x509::ext::GeneralNames * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_SubjectAlternativeNames__ diff --git a/libjava/gnu/java/security/x509/ext/SubjectKeyIdentifier.h b/libjava/gnu/java/security/x509/ext/SubjectKeyIdentifier.h new file mode 100644 index 00000000000..46cb0f4d6af --- /dev/null +++ b/libjava/gnu/java/security/x509/ext/SubjectKeyIdentifier.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_security_x509_ext_SubjectKeyIdentifier__ +#define __gnu_java_security_x509_ext_SubjectKeyIdentifier__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + namespace x509 + { + namespace ext + { + class SubjectKeyIdentifier; + } + } + } + } + } +} + +class gnu::java::security::x509::ext::SubjectKeyIdentifier : public ::gnu::java::security::x509::ext::Extension$Value +{ + +public: + SubjectKeyIdentifier(JArray< jbyte > *); + virtual JArray< jbyte > * getKeyIdentifier(); + virtual ::java::lang::String * toString(); + static ::gnu::java::security::OID * ID; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::java::security::x509::ext::Extension$Value)))) keyIdentifier; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_security_x509_ext_SubjectKeyIdentifier__ diff --git a/libjava/gnu/java/text/AttributedFormatBuffer.h b/libjava/gnu/java/text/AttributedFormatBuffer.h new file mode 100644 index 00000000000..a37b3996749 --- /dev/null +++ b/libjava/gnu/java/text/AttributedFormatBuffer.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_AttributedFormatBuffer__ +#define __gnu_java_text_AttributedFormatBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class AttributedFormatBuffer; + } + } + } + namespace java + { + namespace text + { + class AttributedCharacterIterator$Attribute; + } + } +} + +class gnu::java::text::AttributedFormatBuffer : public ::java::lang::Object +{ + +public: + AttributedFormatBuffer(::java::lang::StringBuffer *); + AttributedFormatBuffer(jint); + AttributedFormatBuffer(); +private: + void addAttribute(jint, ::java::text::AttributedCharacterIterator$Attribute *); +public: + virtual void append(::java::lang::String *); + virtual void append(::java::lang::String *, ::java::text::AttributedCharacterIterator$Attribute *); + virtual void append(::java::lang::String *, JArray< jint > *, JArray< ::java::util::HashMap * > *); + virtual void append(jchar); + virtual void append(jchar, ::java::text::AttributedCharacterIterator$Attribute *); + virtual void setDefaultAttribute(::java::text::AttributedCharacterIterator$Attribute *); + virtual ::java::text::AttributedCharacterIterator$Attribute * getDefaultAttribute(); + virtual void cutTail(jint); + virtual jint length(); + virtual void clear(); + virtual void sync(); + virtual ::java::lang::StringBuffer * getBuffer(); + virtual JArray< jint > * getRanges(); + virtual JArray< ::java::util::HashMap * > * getAttributes(); +private: + ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::java::util::ArrayList * ranges; + ::java::util::ArrayList * attributes; + JArray< jint > * a_ranges; + JArray< ::java::util::HashMap * > * a_attributes; + jint startingRange; +public: // actually package-private + ::java::text::AttributedCharacterIterator$Attribute * defaultAttr; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_AttributedFormatBuffer__ diff --git a/libjava/gnu/java/text/BaseBreakIterator.h b/libjava/gnu/java/text/BaseBreakIterator.h new file mode 100644 index 00000000000..50998950fcc --- /dev/null +++ b/libjava/gnu/java/text/BaseBreakIterator.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_BaseBreakIterator__ +#define __gnu_java_text_BaseBreakIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class BaseBreakIterator; + } + } + } + namespace java + { + namespace text + { + class CharacterIterator; + } + } +} + +class gnu::java::text::BaseBreakIterator : public ::java::text::BreakIterator +{ + +public: + BaseBreakIterator(); + virtual jint current(); + virtual jint first(); + virtual jint following(jint); + virtual ::java::text::CharacterIterator * getText(); + virtual jint last(); + virtual jint next(jint); + virtual void setText(::java::text::CharacterIterator *); +public: // actually protected + ::java::text::CharacterIterator * __attribute__((aligned(__alignof__( ::java::text::BreakIterator)))) iter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_BaseBreakIterator__ diff --git a/libjava/gnu/java/text/CharacterBreakIterator.h b/libjava/gnu/java/text/CharacterBreakIterator.h new file mode 100644 index 00000000000..39d681cbc7a --- /dev/null +++ b/libjava/gnu/java/text/CharacterBreakIterator.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_CharacterBreakIterator__ +#define __gnu_java_text_CharacterBreakIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class CharacterBreakIterator; + } + } + } +} + +class gnu::java::text::CharacterBreakIterator : public ::gnu::java::text::BaseBreakIterator +{ + +public: + virtual ::java::lang::Object * clone(); + CharacterBreakIterator(); +private: + CharacterBreakIterator(::gnu::java::text::CharacterBreakIterator *); + jboolean isL(jchar); + jboolean isV(jchar); + jboolean isT(jchar); + jboolean isLVT(jchar); + jboolean isHighSurrogate(jchar); + jboolean isLowSurrogate(jchar); +public: + virtual jint next(); + virtual jint previous(); +private: + static const jint LBase = 4352; + static const jint VBase = 4449; + static const jint TBase = 4519; + static const jint LCount = 19; + static const jint VCount = 21; + static const jint TCount = 28; + static const jint highSurrogateStart = 55296; + static const jint highSurrogateEnd = 56319; + static const jint lowSurrogateStart = 56320; + static const jint lowSurrogateEnd = 57343; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_CharacterBreakIterator__ diff --git a/libjava/gnu/java/text/FormatBuffer.h b/libjava/gnu/java/text/FormatBuffer.h new file mode 100644 index 00000000000..267cf6fb013 --- /dev/null +++ b/libjava/gnu/java/text/FormatBuffer.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_FormatBuffer__ +#define __gnu_java_text_FormatBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class FormatBuffer; + } + } + } + namespace java + { + namespace text + { + class AttributedCharacterIterator$Attribute; + } + } +} + +class gnu::java::text::FormatBuffer : public ::java::lang::Object +{ + +public: + virtual void append(::java::lang::String *) = 0; + virtual void append(::java::lang::String *, ::java::text::AttributedCharacterIterator$Attribute *) = 0; + virtual void append(::java::lang::String *, JArray< jint > *, JArray< ::java::util::HashMap * > *) = 0; + virtual void append(jchar) = 0; + virtual void append(jchar, ::java::text::AttributedCharacterIterator$Attribute *) = 0; + virtual void setDefaultAttribute(::java::text::AttributedCharacterIterator$Attribute *) = 0; + virtual ::java::text::AttributedCharacterIterator$Attribute * getDefaultAttribute() = 0; + virtual void cutTail(jint) = 0; + virtual void clear() = 0; + virtual jint length() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_text_FormatBuffer__ diff --git a/libjava/gnu/java/text/FormatCharacterIterator.h b/libjava/gnu/java/text/FormatCharacterIterator.h new file mode 100644 index 00000000000..82c7fa02e4d --- /dev/null +++ b/libjava/gnu/java/text/FormatCharacterIterator.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_FormatCharacterIterator__ +#define __gnu_java_text_FormatCharacterIterator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class FormatCharacterIterator; + } + } + } + namespace java + { + namespace text + { + class AttributedCharacterIterator; + class AttributedCharacterIterator$Attribute; + } + } +} + +class gnu::java::text::FormatCharacterIterator : public ::java::lang::Object +{ + +public: + FormatCharacterIterator(); + FormatCharacterIterator(::java::lang::String *, JArray< jint > *, JArray< ::java::util::HashMap * > *); + virtual ::java::util::Set * getAllAttributeKeys(); + virtual ::java::util::Map * getAttributes(); + virtual ::java::lang::Object * getAttribute(::java::text::AttributedCharacterIterator$Attribute *); + virtual jint getRunLimit(::java::util::Set *); + virtual jint getRunLimit(::java::text::AttributedCharacterIterator$Attribute *); + virtual jint getRunLimit(); + virtual jint getRunStart(::java::util::Set *); + virtual jint getRunStart(); + virtual jint getRunStart(::java::text::AttributedCharacterIterator$Attribute *); + virtual ::java::lang::Object * clone(); + virtual jchar current(); + virtual jchar first(); + virtual jint getBeginIndex(); + virtual jint getEndIndex(); + virtual jint getIndex(); + virtual jchar last(); + virtual jchar next(); + virtual jchar previous(); + virtual jchar setIndex(jint); + virtual void mergeAttributes(JArray< ::java::util::HashMap * > *, JArray< jint > *); + virtual void append(::java::text::AttributedCharacterIterator *); + virtual void append(::java::lang::String *, ::java::util::HashMap *); + virtual void append(::java::lang::String *); + virtual void addAttributes(::java::util::HashMap *, jint, jint); +private: + void debug(::java::lang::String *); + void dumpTable(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) formattedString; + jint charIndex; + jint attributeIndex; + JArray< jint > * ranges; + JArray< ::java::util::HashMap * > * attributes; + static const jboolean DEBUG = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_FormatCharacterIterator__ diff --git a/libjava/gnu/java/text/LineBreakIterator.h b/libjava/gnu/java/text/LineBreakIterator.h new file mode 100644 index 00000000000..0c4c428c564 --- /dev/null +++ b/libjava/gnu/java/text/LineBreakIterator.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_LineBreakIterator__ +#define __gnu_java_text_LineBreakIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class LineBreakIterator; + } + } + } +} + +class gnu::java::text::LineBreakIterator : public ::gnu::java::text::BaseBreakIterator +{ + +public: + virtual ::java::lang::Object * clone(); + LineBreakIterator(); +private: + LineBreakIterator(::gnu::java::text::LineBreakIterator *); + jboolean isNb(jchar); + jboolean isClose(jint); + jboolean isIdeo(jchar); +public: + virtual jint next(); + virtual jint previous(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_LineBreakIterator__ diff --git a/libjava/gnu/java/text/SentenceBreakIterator.h b/libjava/gnu/java/text/SentenceBreakIterator.h new file mode 100644 index 00000000000..ae54389004a --- /dev/null +++ b/libjava/gnu/java/text/SentenceBreakIterator.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_SentenceBreakIterator__ +#define __gnu_java_text_SentenceBreakIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class SentenceBreakIterator; + } + } + } +} + +class gnu::java::text::SentenceBreakIterator : public ::gnu::java::text::BaseBreakIterator +{ + +public: + virtual ::java::lang::Object * clone(); + SentenceBreakIterator(); +private: + SentenceBreakIterator(::gnu::java::text::SentenceBreakIterator *); +public: + virtual jint next(); +private: + jint previous_internal(); +public: + virtual jint previous(); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::text::BaseBreakIterator)))) period; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_SentenceBreakIterator__ diff --git a/libjava/gnu/java/text/StringFormatBuffer.h b/libjava/gnu/java/text/StringFormatBuffer.h new file mode 100644 index 00000000000..9ee5bf8cb7e --- /dev/null +++ b/libjava/gnu/java/text/StringFormatBuffer.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_StringFormatBuffer__ +#define __gnu_java_text_StringFormatBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class StringFormatBuffer; + } + } + } + namespace java + { + namespace text + { + class AttributedCharacterIterator$Attribute; + } + } +} + +class gnu::java::text::StringFormatBuffer : public ::java::lang::Object +{ + +public: + StringFormatBuffer(jint); + StringFormatBuffer(::java::lang::StringBuffer *); + virtual void append(::java::lang::String *); + virtual void append(::java::lang::String *, ::java::text::AttributedCharacterIterator$Attribute *); + virtual void append(::java::lang::String *, JArray< jint > *, JArray< ::java::util::HashMap * > *); + virtual void append(jchar); + virtual void append(jchar, ::java::text::AttributedCharacterIterator$Attribute *); + virtual void setDefaultAttribute(::java::text::AttributedCharacterIterator$Attribute *); + virtual ::java::text::AttributedCharacterIterator$Attribute * getDefaultAttribute(); + virtual void cutTail(jint); + virtual jint length(); + virtual void clear(); + virtual ::java::lang::StringBuffer * getBuffer(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::java::text::AttributedCharacterIterator$Attribute * defaultAttr; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_StringFormatBuffer__ diff --git a/libjava/gnu/java/text/WordBreakIterator.h b/libjava/gnu/java/text/WordBreakIterator.h new file mode 100644 index 00000000000..bcf75bdd937 --- /dev/null +++ b/libjava/gnu/java/text/WordBreakIterator.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_text_WordBreakIterator__ +#define __gnu_java_text_WordBreakIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace text + { + class WordBreakIterator; + } + } + } +} + +class gnu::java::text::WordBreakIterator : public ::gnu::java::text::BaseBreakIterator +{ + +public: + virtual ::java::lang::Object * clone(); + WordBreakIterator(); +private: + WordBreakIterator(::gnu::java::text::WordBreakIterator *); + jboolean isHira(jchar); + jboolean isKata(jchar); + jboolean isHan(jchar); +public: + virtual jint next(); + virtual jint previous(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_text_WordBreakIterator__ diff --git a/libjava/gnu/java/util/DoubleEnumeration.h b/libjava/gnu/java/util/DoubleEnumeration.h new file mode 100644 index 00000000000..d1ec0ca3525 --- /dev/null +++ b/libjava/gnu/java/util/DoubleEnumeration.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_DoubleEnumeration__ +#define __gnu_java_util_DoubleEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class DoubleEnumeration; + } + } + } +} + +class gnu::java::util::DoubleEnumeration : public ::java::lang::Object +{ + +public: + DoubleEnumeration(::java::util::Enumeration *, ::java::util::Enumeration *); + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) hasMore; + jboolean hasChecked; + ::java::util::Enumeration * e1; + ::java::util::Enumeration * e2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_DoubleEnumeration__ diff --git a/libjava/gnu/java/util/EmptyEnumeration.h b/libjava/gnu/java/util/EmptyEnumeration.h new file mode 100644 index 00000000000..78ab0fc1e78 --- /dev/null +++ b/libjava/gnu/java/util/EmptyEnumeration.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_EmptyEnumeration__ +#define __gnu_java_util_EmptyEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class EmptyEnumeration; + } + } + } +} + +class gnu::java::util::EmptyEnumeration : public ::java::lang::Object +{ + + EmptyEnumeration(); +public: + static ::gnu::java::util::EmptyEnumeration * getInstance(); + jboolean hasMoreElements(); + ::java::lang::Object * nextElement(); +private: + static ::gnu::java::util::EmptyEnumeration * instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_EmptyEnumeration__ diff --git a/libjava/gnu/java/util/WeakIdentityHashMap$1.h b/libjava/gnu/java/util/WeakIdentityHashMap$1.h new file mode 100644 index 00000000000..d71175c869f --- /dev/null +++ b/libjava/gnu/java/util/WeakIdentityHashMap$1.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_WeakIdentityHashMap$1__ +#define __gnu_java_util_WeakIdentityHashMap$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class WeakIdentityHashMap$1; + class WeakIdentityHashMap$WeakBucket$WeakEntry; + class WeakIdentityHashMap$WeakEntrySet; + } + } + } +} + +class gnu::java::util::WeakIdentityHashMap$1 : public ::java::lang::Object +{ + +public: // actually package-private + WeakIdentityHashMap$1(::gnu::java::util::WeakIdentityHashMap$WeakEntrySet *); +private: + void checkMod(); + ::gnu::java::util::WeakIdentityHashMap$WeakBucket$WeakEntry * findNext(::gnu::java::util::WeakIdentityHashMap$WeakBucket$WeakEntry *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + void remove(); +public: // actually package-private + ::gnu::java::util::WeakIdentityHashMap$WeakBucket$WeakEntry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastEntry; + ::gnu::java::util::WeakIdentityHashMap$WeakBucket$WeakEntry * nextEntry; + jint knownMod; + ::gnu::java::util::WeakIdentityHashMap$WeakEntrySet * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_WeakIdentityHashMap$1__ diff --git a/libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry.h b/libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry.h new file mode 100644 index 00000000000..5a7c0dda2ae --- /dev/null +++ b/libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_WeakIdentityHashMap$WeakBucket$WeakEntry__ +#define __gnu_java_util_WeakIdentityHashMap$WeakBucket$WeakEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class WeakIdentityHashMap$WeakBucket; + class WeakIdentityHashMap$WeakBucket$WeakEntry; + } + } + } +} + +class gnu::java::util::WeakIdentityHashMap$WeakBucket$WeakEntry : public ::java::lang::Object +{ + +public: + WeakIdentityHashMap$WeakBucket$WeakEntry(::gnu::java::util::WeakIdentityHashMap$WeakBucket *, ::java::lang::Object *); + virtual ::gnu::java::util::WeakIdentityHashMap$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; + ::gnu::java::util::WeakIdentityHashMap$WeakBucket * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_WeakIdentityHashMap$WeakBucket$WeakEntry__ diff --git a/libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket.h b/libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket.h new file mode 100644 index 00000000000..ec84addc698 --- /dev/null +++ b/libjava/gnu/java/util/WeakIdentityHashMap$WeakBucket.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_WeakIdentityHashMap$WeakBucket__ +#define __gnu_java_util_WeakIdentityHashMap$WeakBucket__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class WeakIdentityHashMap$WeakBucket; + class WeakIdentityHashMap$WeakBucket$WeakEntry; + } + } + } +} + +class gnu::java::util::WeakIdentityHashMap$WeakBucket : public ::java::lang::ref::WeakReference +{ + +public: + WeakIdentityHashMap$WeakBucket(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *, ::java::lang::Object *, jint); +public: // actually package-private + virtual ::gnu::java::util::WeakIdentityHashMap$WeakBucket$WeakEntry * getEntry(); + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::ref::WeakReference)))) value; + ::gnu::java::util::WeakIdentityHashMap$WeakBucket * next; + jint slot; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_WeakIdentityHashMap$WeakBucket__ diff --git a/libjava/gnu/java/util/WeakIdentityHashMap$WeakEntrySet.h b/libjava/gnu/java/util/WeakIdentityHashMap$WeakEntrySet.h new file mode 100644 index 00000000000..136c1dec243 --- /dev/null +++ b/libjava/gnu/java/util/WeakIdentityHashMap$WeakEntrySet.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_WeakIdentityHashMap$WeakEntrySet__ +#define __gnu_java_util_WeakIdentityHashMap$WeakEntrySet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class WeakIdentityHashMap; + class WeakIdentityHashMap$WeakEntrySet; + } + } + } +} + +class gnu::java::util::WeakIdentityHashMap$WeakEntrySet : public ::java::util::AbstractSet +{ + +public: // actually package-private + WeakIdentityHashMap$WeakEntrySet(::gnu::java::util::WeakIdentityHashMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); +public: // actually package-private + static ::gnu::java::util::WeakIdentityHashMap * access$0(::gnu::java::util::WeakIdentityHashMap$WeakEntrySet *); + ::gnu::java::util::WeakIdentityHashMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_WeakIdentityHashMap$WeakEntrySet__ diff --git a/libjava/gnu/java/util/WeakIdentityHashMap.h b/libjava/gnu/java/util/WeakIdentityHashMap.h new file mode 100644 index 00000000000..6bf3aeb7f85 --- /dev/null +++ b/libjava/gnu/java/util/WeakIdentityHashMap.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_WeakIdentityHashMap__ +#define __gnu_java_util_WeakIdentityHashMap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class WeakIdentityHashMap; + class WeakIdentityHashMap$WeakBucket; + class WeakIdentityHashMap$WeakBucket$WeakEntry; + class WeakIdentityHashMap$WeakEntrySet; + } + } + } +} + +class gnu::java::util::WeakIdentityHashMap : public ::java::util::AbstractMap +{ + +public: + WeakIdentityHashMap(); + WeakIdentityHashMap(jint); + WeakIdentityHashMap(jint, jfloat); + WeakIdentityHashMap(::java::util::Map *); +private: + jint hash(::java::lang::Object *); +public: // actually package-private + virtual void cleanQueue(); +private: + void rehash(); + ::gnu::java::util::WeakIdentityHashMap$WeakBucket$WeakEntry * internalGet(::java::lang::Object *); + void internalAdd(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + virtual void internalRemove(::gnu::java::util::WeakIdentityHashMap$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: + ::gnu::java::util::WeakIdentityHashMap$WeakEntrySet * theEntrySet; +public: // actually package-private + JArray< ::gnu::java::util::WeakIdentityHashMap$WeakBucket * > * buckets; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_WeakIdentityHashMap__ diff --git a/libjava/gnu/java/util/jar/JarUtils.h b/libjava/gnu/java/util/jar/JarUtils.h new file mode 100644 index 00000000000..4704582d0db --- /dev/null +++ b/libjava/gnu/java/util/jar/JarUtils.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_jar_JarUtils__ +#define __gnu_java_util_jar_JarUtils__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace jar + { + class JarUtils; + } + } + } + } +} + +class gnu::java::util::jar::JarUtils : public ::java::lang::Object +{ + +public: + JarUtils(); + static void readMFManifest(::java::util::jar::Attributes *, ::java::util::Map *, ::java::io::InputStream *); + static void readSFManifest(::java::util::jar::Attributes *, ::java::util::Map *, ::java::io::InputStream *); +private: + static void readMainSection(::java::util::jar::Attributes *, ::java::io::BufferedReader *); + static void readIndividualSections(::java::util::Map *, ::java::io::BufferedReader *); + static void readVersionInfo(::java::util::jar::Attributes *, ::java::io::BufferedReader *); + static ::java::lang::String * expectHeader(::java::lang::String *, ::java::io::BufferedReader *); + static void read_attributes(::java::util::jar::Attributes *, ::java::io::BufferedReader *); + static void readAttribute(::java::util::jar::Attributes *, ::java::lang::String *, ::java::io::BufferedReader *); + static ::java::lang::String * readHeaderValue(::java::lang::String *, ::java::io::BufferedReader *); + static ::java::util::jar::Attributes * readSectionName(::java::lang::String *, ::java::io::BufferedReader *, ::java::util::Map *); + static ::java::lang::String * expectHeader(::java::lang::String *, ::java::io::BufferedReader *, ::java::lang::String *); +public: + static void writeMFManifest(::java::util::jar::Attributes *, ::java::util::Map *, ::java::io::OutputStream *); + static void writeSFManifest(::java::util::jar::Attributes *, ::java::util::Map *, ::java::io::OutputStream *); +private: + static void writeVersionInfo(::java::util::jar::Attributes *, ::java::io::OutputStream *); + static void writeAttributeEntry(::java::util::Map$Entry *, ::java::io::OutputStream *); + static void writeHeader(::java::lang::String *, ::java::lang::String *, ::java::io::OutputStream *); + static ::java::util::logging::Logger * log; +public: + static ::java::lang::String * META_INF; + static ::java::lang::String * DSA_SUFFIX; + static ::java::lang::String * SF_SUFFIX; + static ::java::lang::String * NAME; + static ::java::lang::String * MANIFEST_VERSION; + static ::java::lang::String * SIGNATURE_VERSION; + static JArray< jbyte > * CRLF; +private: + static ::java::lang::String * DEFAULT_MF_VERSION; + static ::java::lang::String * DEFAULT_SF_VERSION; + static ::java::util::jar::Attributes$Name * CREATED_BY; + static ::java::lang::String * CREATOR; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_jar_JarUtils__ diff --git a/libjava/gnu/java/util/prefs/EventDispatcher.h b/libjava/gnu/java/util/prefs/EventDispatcher.h new file mode 100644 index 00000000000..235aabb5ccf --- /dev/null +++ b/libjava/gnu/java/util/prefs/EventDispatcher.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_EventDispatcher__ +#define __gnu_java_util_prefs_EventDispatcher__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class EventDispatcher; + } + } + } + } +} + +class gnu::java::util::prefs::EventDispatcher : public ::java::lang::Thread +{ + + EventDispatcher(); +public: + virtual void run(); + static void dispatch(::java::lang::Runnable *); +private: + static ::java::lang::Thread * dispatchThread; + static ::java::util::ArrayList * queue; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_EventDispatcher__ diff --git a/libjava/gnu/java/util/prefs/FileBasedFactory.h b/libjava/gnu/java/util/prefs/FileBasedFactory.h new file mode 100644 index 00000000000..9dfcca3512b --- /dev/null +++ b/libjava/gnu/java/util/prefs/FileBasedFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_FileBasedFactory__ +#define __gnu_java_util_prefs_FileBasedFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class FileBasedFactory; + } + } + } + } +} + +class gnu::java::util::prefs::FileBasedFactory : public ::java::lang::Object +{ + +public: + FileBasedFactory(); + virtual ::java::util::prefs::Preferences * systemRoot(); + virtual ::java::util::prefs::Preferences * userRoot(); +private: + static ::java::util::prefs::Preferences * systemPreferences; + static ::java::util::prefs::Preferences * userPreferences; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_FileBasedFactory__ diff --git a/libjava/gnu/java/util/prefs/FileBasedPreferences$1.h b/libjava/gnu/java/util/prefs/FileBasedPreferences$1.h new file mode 100644 index 00000000000..279738084ad --- /dev/null +++ b/libjava/gnu/java/util/prefs/FileBasedPreferences$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_FileBasedPreferences$1__ +#define __gnu_java_util_prefs_FileBasedPreferences$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class FileBasedPreferences; + class FileBasedPreferences$1; + } + } + } + } +} + +class gnu::java::util::prefs::FileBasedPreferences$1 : public ::java::lang::Object +{ + +public: // actually package-private + FileBasedPreferences$1(::gnu::java::util::prefs::FileBasedPreferences *); +public: + jboolean accept(::java::io::File *, ::java::lang::String *); +public: // actually package-private + ::gnu::java::util::prefs::FileBasedPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_FileBasedPreferences$1__ diff --git a/libjava/gnu/java/util/prefs/FileBasedPreferences.h b/libjava/gnu/java/util/prefs/FileBasedPreferences.h new file mode 100644 index 00000000000..0b699989fb0 --- /dev/null +++ b/libjava/gnu/java/util/prefs/FileBasedPreferences.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_FileBasedPreferences__ +#define __gnu_java_util_prefs_FileBasedPreferences__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class FileBasedPreferences; + } + } + } + } +} + +class gnu::java::util::prefs::FileBasedPreferences : public ::java::util::prefs::AbstractPreferences +{ + +public: // actually package-private + FileBasedPreferences(); + FileBasedPreferences(::gnu::java::util::prefs::FileBasedPreferences *, ::java::lang::String *); +private: + void load(); +public: + virtual jboolean isUserNode(); +public: // actually protected + virtual JArray< ::java::lang::String * > * childrenNamesSpi(); + virtual ::java::util::prefs::AbstractPreferences * childSpi(::java::lang::String *); + virtual JArray< ::java::lang::String * > * keysSpi(); + virtual ::java::lang::String * getSpi(::java::lang::String *); + virtual void putSpi(::java::lang::String *, ::java::lang::String *); + virtual void removeSpi(::java::lang::String *); + virtual void flushSpi(); + virtual void syncSpi(); + virtual void removeNodeSpi(); +private: + static ::java::lang::String * DATA_FILE; + ::java::io::File * __attribute__((aligned(__alignof__( ::java::util::prefs::AbstractPreferences)))) directory; + ::java::io::File * dataFile; + ::java::util::Properties * properties; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_FileBasedPreferences__ diff --git a/libjava/gnu/java/util/prefs/GConfBasedFactory.h b/libjava/gnu/java/util/prefs/GConfBasedFactory.h new file mode 100644 index 00000000000..eca98e33c1e --- /dev/null +++ b/libjava/gnu/java/util/prefs/GConfBasedFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_GConfBasedFactory__ +#define __gnu_java_util_prefs_GConfBasedFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class GConfBasedFactory; + } + } + } + } +} + +class gnu::java::util::prefs::GConfBasedFactory : public ::java::lang::Object +{ + +public: + GConfBasedFactory(); + virtual ::java::util::prefs::Preferences * systemRoot(); + virtual ::java::util::prefs::Preferences * userRoot(); +private: + static ::java::util::prefs::Preferences * systemPreferences; + static ::java::util::prefs::Preferences * userPreferences; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_GConfBasedFactory__ diff --git a/libjava/gnu/java/util/prefs/GConfBasedPreferences.h b/libjava/gnu/java/util/prefs/GConfBasedPreferences.h new file mode 100644 index 00000000000..54f9f011104 --- /dev/null +++ b/libjava/gnu/java/util/prefs/GConfBasedPreferences.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_GConfBasedPreferences__ +#define __gnu_java_util_prefs_GConfBasedPreferences__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class GConfBasedPreferences; + namespace gconf + { + class GConfNativePeer; + } + } + } + } + } + namespace java + { + namespace security + { + class Permission; + } + } +} + +class gnu::java::util::prefs::GConfBasedPreferences : public ::java::util::prefs::AbstractPreferences +{ + +public: + GConfBasedPreferences(); + GConfBasedPreferences(jboolean); + GConfBasedPreferences(::java::util::prefs::AbstractPreferences *, ::java::lang::String *, jboolean); +public: // actually protected + virtual ::java::util::prefs::AbstractPreferences * childSpi(::java::lang::String *); + virtual JArray< ::java::lang::String * > * childrenNamesSpi(); +public: + virtual void flush(); +public: // actually protected + virtual void flushSpi(); + virtual JArray< ::java::lang::String * > * keysSpi(); +private: + void postorderRemove(::java::lang::String *); +public: // actually protected + virtual void putSpi(::java::lang::String *, ::java::lang::String *); + virtual void removeNodeSpi(); + virtual void removeSpi(::java::lang::String *); +public: + virtual void sync(); +public: // actually protected + virtual void syncSpi(); + virtual ::java::lang::String * getSpi(::java::lang::String *); +public: + virtual jboolean isUserNode(); +private: + ::java::lang::String * getGConfKey(::java::lang::String *); + ::java::lang::String * getRealRoot(jboolean); + static ::java::security::Permission * PERMISSION; + static ::gnu::java::util::prefs::gconf::GConfNativePeer * backend; + static ::java::lang::String * DEFAULT_USER_ROOT; + static ::java::lang::String * DEFAULT_SYSTEM_ROOT; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::prefs::AbstractPreferences)))) node; + jboolean isUser; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_GConfBasedPreferences__ diff --git a/libjava/gnu/java/util/prefs/MemoryBasedFactory.h b/libjava/gnu/java/util/prefs/MemoryBasedFactory.h new file mode 100644 index 00000000000..7eb4c3d4b19 --- /dev/null +++ b/libjava/gnu/java/util/prefs/MemoryBasedFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_MemoryBasedFactory__ +#define __gnu_java_util_prefs_MemoryBasedFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class MemoryBasedFactory; + } + } + } + } +} + +class gnu::java::util::prefs::MemoryBasedFactory : public ::java::lang::Object +{ + +public: + MemoryBasedFactory(); + virtual ::java::util::prefs::Preferences * systemRoot(); + virtual ::java::util::prefs::Preferences * userRoot(); +private: + static ::java::util::prefs::Preferences * systemPreferences; + static ::java::util::prefs::Preferences * userPreferences; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_MemoryBasedFactory__ diff --git a/libjava/gnu/java/util/prefs/MemoryBasedPreferences.h b/libjava/gnu/java/util/prefs/MemoryBasedPreferences.h new file mode 100644 index 00000000000..5e73aa0eddd --- /dev/null +++ b/libjava/gnu/java/util/prefs/MemoryBasedPreferences.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_MemoryBasedPreferences__ +#define __gnu_java_util_prefs_MemoryBasedPreferences__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class MemoryBasedPreferences; + } + } + } + } +} + +class gnu::java::util::prefs::MemoryBasedPreferences : public ::java::util::prefs::AbstractPreferences +{ + +public: + MemoryBasedPreferences(::gnu::java::util::prefs::MemoryBasedPreferences *, ::java::lang::String *, jboolean); + virtual jboolean isUserNode(); +public: // actually protected + virtual JArray< ::java::lang::String * > * childrenNamesSpi(); + virtual ::java::util::prefs::AbstractPreferences * childSpi(::java::lang::String *); + virtual JArray< ::java::lang::String * > * keysSpi(); + virtual ::java::lang::String * getSpi(::java::lang::String *); + virtual void putSpi(::java::lang::String *, ::java::lang::String *); + virtual void removeSpi(::java::lang::String *); + virtual void flushSpi(); + virtual void syncSpi(); + virtual void removeNodeSpi(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::util::prefs::AbstractPreferences)))) isUser; + ::java::util::HashMap * entries; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_MemoryBasedPreferences__ diff --git a/libjava/gnu/java/util/prefs/NodeReader.h b/libjava/gnu/java/util/prefs/NodeReader.h new file mode 100644 index 00000000000..e62b0237573 --- /dev/null +++ b/libjava/gnu/java/util/prefs/NodeReader.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_NodeReader__ +#define __gnu_java_util_prefs_NodeReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class NodeReader; + } + } + } + } +} + +class gnu::java::util::prefs::NodeReader : public ::java::lang::Object +{ + +public: + NodeReader(::java::io::Reader *, ::java::util::prefs::PreferencesFactory *); + NodeReader(::java::io::InputStream *, ::java::util::prefs::PreferencesFactory *); + virtual void importPreferences(); +private: + void readPreferences(); + void readRoot(); + void readNodes(::java::util::prefs::Preferences *); + void readMap(::java::util::prefs::Preferences *); + void readEntries(::java::util::prefs::Preferences *); + void skipTill(::java::lang::String *); + ::java::lang::String * readTill(::java::lang::String *); + ::java::lang::String * nextTag(); + ::java::io::BufferedReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) br; + ::java::lang::String * line; + ::java::util::prefs::PreferencesFactory * factory; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_NodeReader__ diff --git a/libjava/gnu/java/util/prefs/NodeWriter.h b/libjava/gnu/java/util/prefs/NodeWriter.h new file mode 100644 index 00000000000..65b7380d007 --- /dev/null +++ b/libjava/gnu/java/util/prefs/NodeWriter.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_NodeWriter__ +#define __gnu_java_util_prefs_NodeWriter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + class NodeWriter; + } + } + } + } +} + +class gnu::java::util::prefs::NodeWriter : public ::java::lang::Object +{ + +public: + NodeWriter(::java::util::prefs::Preferences *, ::java::io::OutputStream *); + virtual void writePrefsTree(); + virtual void writePrefs(); +private: + void writeHeader(); + void writePreferences(); + void writeRoot(); + void writeRootMap(); + jint writeParents(); + void writeCloseParents(jint); + void writeNode(); + void writeNode(::java::util::prefs::Preferences *, jint); + void writeMap(::java::util::prefs::Preferences *, jint); + void writeEntries(::java::util::prefs::Preferences *, ::java::lang::String *); + void indent(jint); + ::java::util::prefs::Preferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prefs; + ::java::io::BufferedWriter * bw; + jboolean subtree; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_NodeWriter__ diff --git a/libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h b/libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h new file mode 100644 index 00000000000..5d0945a32dc --- /dev/null +++ b/libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_prefs_gconf_GConfNativePeer__ +#define __gnu_java_util_prefs_gconf_GConfNativePeer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace prefs + { + namespace gconf + { + class GConfNativePeer; + } + } + } + } + } +} + +class gnu::java::util::prefs::gconf::GConfNativePeer : public ::java::lang::Object +{ + +public: + GConfNativePeer(); + jboolean nodeExist(::java::lang::String *); + void startWatchingNode(::java::lang::String *); + void stopWatchingNode(::java::lang::String *); + jboolean setString(::java::lang::String *, ::java::lang::String *); + jboolean unset(::java::lang::String *); + ::java::lang::String * getKey(::java::lang::String *); + ::java::util::List * getKeys(::java::lang::String *); + ::java::util::List * getChildrenNodes(::java::lang::String *); + static ::java::lang::String * escapeString(::java::lang::String *); + static ::java::lang::String * unescapeString(::java::lang::String *); + void suggestSync(); +public: // actually protected + void finalize(); +private: + static void init_id_cache(); + static void init_class(); + static void finalize_class(); +public: // actually protected + static jboolean gconf_client_dir_exists(::java::lang::String *); + static void gconf_client_add_dir(::java::lang::String *); + static void gconf_client_remove_dir(::java::lang::String *); + static jboolean gconf_client_set_string(::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * gconf_client_get_string(::java::lang::String *); + static jboolean gconf_client_unset(::java::lang::String *); + static void gconf_client_suggest_sync(); + static ::java::util::List * gconf_client_all_nodes(::java::lang::String *); + static ::java::util::List * gconf_client_all_keys(::java::lang::String *); + static ::java::lang::String * gconf_escape_key(::java::lang::String *); + static ::java::lang::String * gconf_unescape_key(::java::lang::String *); +private: + static JArray< ::java::lang::Object * > * semaphore; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_prefs_gconf_GConfNativePeer__ diff --git a/libjava/gnu/java/util/regex/BacktrackStack$Backtrack.h b/libjava/gnu/java/util/regex/BacktrackStack$Backtrack.h new file mode 100644 index 00000000000..00d9e51fc9e --- /dev/null +++ b/libjava/gnu/java/util/regex/BacktrackStack$Backtrack.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_BacktrackStack$Backtrack__ +#define __gnu_java_util_regex_BacktrackStack$Backtrack__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class BacktrackStack$Backtrack; + class CharIndexed; + class REMatch; + class REToken; + } + } + } + } +} + +class gnu::java::util::regex::BacktrackStack$Backtrack : public ::java::lang::Object +{ + +public: // actually package-private + BacktrackStack$Backtrack(::gnu::java::util::regex::REToken *, ::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *); + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::java::lang::Object)))) token; + ::gnu::java::util::regex::CharIndexed * input; + ::gnu::java::util::regex::REMatch * match; + ::java::lang::Object * param; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_BacktrackStack$Backtrack__ diff --git a/libjava/gnu/java/util/regex/BacktrackStack.h b/libjava/gnu/java/util/regex/BacktrackStack.h new file mode 100644 index 00000000000..94ab3fdd682 --- /dev/null +++ b/libjava/gnu/java/util/regex/BacktrackStack.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_BacktrackStack__ +#define __gnu_java_util_regex_BacktrackStack__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class BacktrackStack; + class BacktrackStack$Backtrack; + } + } + } + } +} + +class gnu::java::util::regex::BacktrackStack : public ::java::lang::Object +{ + +public: // actually package-private + BacktrackStack(); + jboolean empty(); + ::gnu::java::util::regex::BacktrackStack$Backtrack * peek(); + ::gnu::java::util::regex::BacktrackStack$Backtrack * pop(); + void clear(); + void push(::gnu::java::util::regex::BacktrackStack$Backtrack *); + JArray< ::gnu::java::util::regex::BacktrackStack$Backtrack * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) stack; +private: + jint size; + jint capacity; + static const jint INITIAL_CAPACITY = 32; + static const jint CAPACITY_INCREMENT = 16; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_BacktrackStack__ diff --git a/libjava/gnu/java/util/regex/CharIndexed.h b/libjava/gnu/java/util/regex/CharIndexed.h new file mode 100644 index 00000000000..0f2687a6866 --- /dev/null +++ b/libjava/gnu/java/util/regex/CharIndexed.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_CharIndexed__ +#define __gnu_java_util_regex_CharIndexed__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + } + } + } + } +} + +class gnu::java::util::regex::CharIndexed : public ::java::lang::Object +{ + +public: + virtual jchar charAt(jint) = 0; + virtual jboolean move(jint) = 0; + virtual jboolean move1(jint) = 0; + virtual jboolean isValid() = 0; + virtual ::gnu::java::util::regex::CharIndexed * lookBehind(jint, jint) = 0; + virtual jint length() = 0; + virtual void setLastMatch(::gnu::java::util::regex::REMatch *) = 0; + virtual ::gnu::java::util::regex::REMatch * getLastMatch() = 0; + virtual void setHitEnd(::gnu::java::util::regex::REMatch *) = 0; + virtual jboolean hitEnd() = 0; + virtual jint getAnchor() = 0; + virtual void setAnchor(jint) = 0; + static const jchar OUT_OF_BOUNDS = 65535; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_java_util_regex_CharIndexed__ diff --git a/libjava/gnu/java/util/regex/CharIndexedCharArray.h b/libjava/gnu/java/util/regex/CharIndexedCharArray.h new file mode 100644 index 00000000000..30e97db5561 --- /dev/null +++ b/libjava/gnu/java/util/regex/CharIndexedCharArray.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_CharIndexedCharArray__ +#define __gnu_java_util_regex_CharIndexedCharArray__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexedCharArray; + } + } + } + } +} + +class gnu::java::util::regex::CharIndexedCharArray : public ::gnu::java::util::regex::CharIndexedCharSequence +{ + +public: // actually package-private + CharIndexedCharArray(JArray< jchar > *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_CharIndexedCharArray__ diff --git a/libjava/gnu/java/util/regex/CharIndexedCharSequence.h b/libjava/gnu/java/util/regex/CharIndexedCharSequence.h new file mode 100644 index 00000000000..f45b1460b97 --- /dev/null +++ b/libjava/gnu/java/util/regex/CharIndexedCharSequence.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_CharIndexedCharSequence__ +#define __gnu_java_util_regex_CharIndexedCharSequence__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class CharIndexedCharSequence; + class REMatch; + } + } + } + } +} + +class gnu::java::util::regex::CharIndexedCharSequence : public ::java::lang::Object +{ + +public: // actually package-private + CharIndexedCharSequence(::java::lang::CharSequence *, jint); +public: + virtual jchar charAt(jint); + virtual jboolean isValid(); + virtual jboolean move(jint); + virtual jboolean move1(jint); + virtual ::gnu::java::util::regex::CharIndexed * lookBehind(jint, jint); + virtual jint length(); + virtual void setLastMatch(::gnu::java::util::regex::REMatch *); + virtual ::gnu::java::util::regex::REMatch * getLastMatch(); + virtual void setHitEnd(::gnu::java::util::regex::REMatch *); + virtual jboolean hitEnd(); + virtual jint getAnchor(); + virtual void setAnchor(jint); +private: + ::java::lang::CharSequence * __attribute__((aligned(__alignof__( ::java::lang::Object)))) s; + jint anchor; + jint len; + ::gnu::java::util::regex::REMatch * lastMatch; + jint rightmostTriedPosition; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_CharIndexedCharSequence__ diff --git a/libjava/gnu/java/util/regex/CharIndexedInputStream.h b/libjava/gnu/java/util/regex/CharIndexedInputStream.h new file mode 100644 index 00000000000..46c8582669a --- /dev/null +++ b/libjava/gnu/java/util/regex/CharIndexedInputStream.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_CharIndexedInputStream__ +#define __gnu_java_util_regex_CharIndexedInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class CharIndexedInputStream; + class REMatch; + } + } + } + } +} + +class gnu::java::util::regex::CharIndexedInputStream : public ::java::lang::Object +{ + +public: // actually package-private + CharIndexedInputStream(::java::io::InputStream *, jint); +private: + jboolean next(); +public: + virtual jchar charAt(jint); + virtual jboolean move(jint); + virtual jboolean isValid(); + virtual ::gnu::java::util::regex::CharIndexed * lookBehind(jint, jint); + virtual jint length(); + virtual void setLastMatch(::gnu::java::util::regex::REMatch *); + virtual ::gnu::java::util::regex::REMatch * getLastMatch(); + virtual void setHitEnd(::gnu::java::util::regex::REMatch *); + virtual jboolean hitEnd(); + virtual jint getAnchor(); + virtual void setAnchor(jint); + virtual jboolean move1(jint); +private: + static const jint BUFFER_INCREMENT = 1024; + static const jint UNKNOWN = 2147483647; + ::java::io::BufferedInputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) br; + jint index; + jint bufsize; + jint end; + jchar cached; + JArray< jchar > * lookBehind__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_CharIndexedInputStream__ diff --git a/libjava/gnu/java/util/regex/CharIndexedString.h b/libjava/gnu/java/util/regex/CharIndexedString.h new file mode 100644 index 00000000000..e250a31d8ac --- /dev/null +++ b/libjava/gnu/java/util/regex/CharIndexedString.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_CharIndexedString__ +#define __gnu_java_util_regex_CharIndexedString__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexedString; + } + } + } + } +} + +class gnu::java::util::regex::CharIndexedString : public ::gnu::java::util::regex::CharIndexedCharSequence +{ + +public: // actually package-private + CharIndexedString(::java::lang::String *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_CharIndexedString__ diff --git a/libjava/gnu/java/util/regex/CharIndexedStringBuffer.h b/libjava/gnu/java/util/regex/CharIndexedStringBuffer.h new file mode 100644 index 00000000000..497422bfa59 --- /dev/null +++ b/libjava/gnu/java/util/regex/CharIndexedStringBuffer.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_CharIndexedStringBuffer__ +#define __gnu_java_util_regex_CharIndexedStringBuffer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexedStringBuffer; + } + } + } + } +} + +class gnu::java::util::regex::CharIndexedStringBuffer : public ::gnu::java::util::regex::CharIndexedCharSequence +{ + +public: // actually package-private + CharIndexedStringBuffer(::java::lang::StringBuffer *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_CharIndexedStringBuffer__ diff --git a/libjava/gnu/java/util/regex/RE$CharExpression.h b/libjava/gnu/java/util/regex/RE$CharExpression.h new file mode 100644 index 00000000000..d39ea7bc54f --- /dev/null +++ b/libjava/gnu/java/util/regex/RE$CharExpression.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RE$CharExpression__ +#define __gnu_java_util_regex_RE$CharExpression__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RE$CharExpression; + } + } + } + } +} + +class gnu::java::util::regex::RE$CharExpression : public ::java::lang::Object +{ + + RE$CharExpression(); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + RE$CharExpression(::gnu::java::util::regex::RE$CharExpression *); + jchar __attribute__((aligned(__alignof__( ::java::lang::Object)))) ch; + ::java::lang::String * expr; + jint len; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RE$CharExpression__ diff --git a/libjava/gnu/java/util/regex/RE$CharUnit.h b/libjava/gnu/java/util/regex/RE$CharUnit.h new file mode 100644 index 00000000000..2ca308880e1 --- /dev/null +++ b/libjava/gnu/java/util/regex/RE$CharUnit.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RE$CharUnit__ +#define __gnu_java_util_regex_RE$CharUnit__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RE$CharUnit; + } + } + } + } +} + +class gnu::java::util::regex::RE$CharUnit : public ::java::lang::Object +{ + + RE$CharUnit(); +public: // actually package-private + RE$CharUnit(::gnu::java::util::regex::RE$CharUnit *); +public: + jchar __attribute__((aligned(__alignof__( ::java::lang::Object)))) ch; + jboolean bk; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RE$CharUnit__ diff --git a/libjava/gnu/java/util/regex/RE$IntPair.h b/libjava/gnu/java/util/regex/RE$IntPair.h new file mode 100644 index 00000000000..88019c2939d --- /dev/null +++ b/libjava/gnu/java/util/regex/RE$IntPair.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RE$IntPair__ +#define __gnu_java_util_regex_RE$IntPair__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RE$IntPair; + } + } + } + } +} + +class gnu::java::util::regex::RE$IntPair : public ::java::lang::Object +{ + + RE$IntPair(); +public: // actually package-private + RE$IntPair(::gnu::java::util::regex::RE$IntPair *); +public: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) first; + jint second; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RE$IntPair__ diff --git a/libjava/gnu/java/util/regex/RE$NamedProperty.h b/libjava/gnu/java/util/regex/RE$NamedProperty.h new file mode 100644 index 00000000000..a874f8500fa --- /dev/null +++ b/libjava/gnu/java/util/regex/RE$NamedProperty.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RE$NamedProperty__ +#define __gnu_java_util_regex_RE$NamedProperty__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RE$NamedProperty; + } + } + } + } +} + +class gnu::java::util::regex::RE$NamedProperty : public ::java::lang::Object +{ + + RE$NamedProperty(); +public: // actually package-private + RE$NamedProperty(::gnu::java::util::regex::RE$NamedProperty *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + jboolean negate; + jint len; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RE$NamedProperty__ diff --git a/libjava/gnu/java/util/regex/RE$ParseCharClassResult.h b/libjava/gnu/java/util/regex/RE$ParseCharClassResult.h new file mode 100644 index 00000000000..539587703dc --- /dev/null +++ b/libjava/gnu/java/util/regex/RE$ParseCharClassResult.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RE$ParseCharClassResult__ +#define __gnu_java_util_regex_RE$ParseCharClassResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RE$ParseCharClassResult; + class RETokenOneOf; + } + } + } + } +} + +class gnu::java::util::regex::RE$ParseCharClassResult : public ::java::lang::Object +{ + + RE$ParseCharClassResult(); +public: // actually package-private + RE$ParseCharClassResult(::gnu::java::util::regex::RE$ParseCharClassResult *); + ::gnu::java::util::regex::RETokenOneOf * __attribute__((aligned(__alignof__( ::java::lang::Object)))) token; + jint index; + jboolean returnAtAndOperator; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RE$ParseCharClassResult__ diff --git a/libjava/gnu/java/util/regex/RE.h b/libjava/gnu/java/util/regex/RE.h new file mode 100644 index 00000000000..4d431958915 --- /dev/null +++ b/libjava/gnu/java/util/regex/RE.h @@ -0,0 +1,146 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RE__ +#define __gnu_java_util_regex_RE__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class RE; + class RE$CharExpression; + class RE$CharUnit; + class RE$IntPair; + class RE$NamedProperty; + class RE$ParseCharClassResult; + class REMatch; + class REMatchEnumeration; + class RESyntax; + class REToken; + class RETokenNamedProperty; + } + } + } + } +} + +class gnu::java::util::regex::RE : public ::gnu::java::util::regex::REToken +{ + +public: + static ::java::lang::String * version(); +public: // actually package-private + static ::java::lang::String * getLocalizedMessage(::java::lang::String *); +public: + RE(::java::lang::Object *); + RE(::java::lang::Object *, jint); + RE(::java::lang::Object *, jint, ::gnu::java::util::regex::RESyntax *); +private: + RE(::gnu::java::util::regex::REToken *, ::gnu::java::util::regex::REToken *, jint, jint, jint, jint); + RE(::java::lang::Object *, jint, ::gnu::java::util::regex::RESyntax *, jint, jint); +public: // actually protected + RE(); + virtual void initialize(::java::lang::Object *, jint, ::gnu::java::util::regex::RESyntax *, jint, jint); +private: + static ::gnu::java::util::regex::RE$ParseCharClassResult * parseCharClass(jint, JArray< jchar > *, jint, jint, jint, ::gnu::java::util::regex::RESyntax *, jint); + static jint getCharUnit(JArray< jchar > *, jint, ::gnu::java::util::regex::RE$CharUnit *, jboolean); + static jint parseInt(JArray< jchar > *, jint, jint, jint); + static ::gnu::java::util::regex::RE$CharExpression * getCharExpression(JArray< jchar > *, jint, jint, ::gnu::java::util::regex::RESyntax *); + static ::gnu::java::util::regex::RE$NamedProperty * getNamedProperty(JArray< jchar > *, jint, jint); + static ::gnu::java::util::regex::RETokenNamedProperty * getRETokenNamedProperty(jint, ::gnu::java::util::regex::RE$NamedProperty *, jboolean, jint); +public: + virtual jboolean isMatch(::java::lang::Object *); + virtual jboolean isMatch(::java::lang::Object *, jint); + virtual jboolean isMatch(::java::lang::Object *, jint, jint); +private: + jboolean isMatchImpl(::gnu::java::util::regex::CharIndexed *, jint, jint); +public: + virtual jint getNumSubs(); +public: // actually package-private + virtual void setUncle(::gnu::java::util::regex::REToken *); + virtual jboolean chain(::gnu::java::util::regex::REToken *); +public: + virtual jint getMinimumLength(); + virtual jint getMaximumLength(); + virtual JArray< ::gnu::java::util::regex::REMatch * > * getAllMatches(::java::lang::Object *); + virtual JArray< ::gnu::java::util::regex::REMatch * > * getAllMatches(::java::lang::Object *, jint); + virtual JArray< ::gnu::java::util::regex::REMatch * > * getAllMatches(::java::lang::Object *, jint, jint); +private: + JArray< ::gnu::java::util::regex::REMatch * > * getAllMatchesImpl(::gnu::java::util::regex::CharIndexed *, jint, jint); +public: // actually package-private + virtual jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + virtual ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +public: + virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *); + virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint); + virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint); + virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint, ::java::lang::StringBuffer *); +public: // actually package-private + virtual ::gnu::java::util::regex::REMatch * getMatchImpl(::gnu::java::util::regex::CharIndexed *, jint, jint, ::java::lang::StringBuffer *); +public: + virtual ::gnu::java::util::regex::REMatchEnumeration * getMatchEnumeration(::java::lang::Object *); + virtual ::gnu::java::util::regex::REMatchEnumeration * getMatchEnumeration(::java::lang::Object *, jint); + virtual ::gnu::java::util::regex::REMatchEnumeration * getMatchEnumeration(::java::lang::Object *, jint, jint); + virtual ::java::lang::String * substitute(::java::lang::Object *, ::java::lang::String *); + virtual ::java::lang::String * substitute(::java::lang::Object *, ::java::lang::String *, jint); + virtual ::java::lang::String * substitute(::java::lang::Object *, ::java::lang::String *, jint, jint); +private: + ::java::lang::String * substituteImpl(::gnu::java::util::regex::CharIndexed *, ::java::lang::String *, jint, jint); +public: + virtual ::java::lang::String * substituteAll(::java::lang::Object *, ::java::lang::String *); + virtual ::java::lang::String * substituteAll(::java::lang::Object *, ::java::lang::String *, jint); + virtual ::java::lang::String * substituteAll(::java::lang::Object *, ::java::lang::String *, jint, jint); +private: + ::java::lang::String * substituteAllImpl(::gnu::java::util::regex::CharIndexed *, ::java::lang::String *, jint, jint); +public: + static ::java::lang::String * getReplacement(::java::lang::String *, ::gnu::java::util::regex::REMatch *, jint); +private: + void addToken(::gnu::java::util::regex::REToken *); + static ::gnu::java::util::regex::REToken * setRepeated(::gnu::java::util::regex::REToken *, jint, jint, jint); + static jint getPosixSet(JArray< jchar > *, jint, ::java::lang::StringBuffer *); + jint getMinMax(JArray< jchar > *, jint, ::gnu::java::util::regex::RE$IntPair *, ::gnu::java::util::regex::RESyntax *); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + virtual void dump(::java::lang::StringBuffer *); +public: + static ::gnu::java::util::regex::CharIndexed * makeCharIndexed(::java::lang::Object *, jint); +private: + static ::java::lang::String * VERSION; + static ::java::util::ResourceBundle * messages; + static ::java::lang::String * bundle; + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) firstToken; + ::gnu::java::util::regex::REToken * lastToken; + jint numSubs; + jint minimumLength; + jint maximumLength; +public: + static const jint REG_ICASE = 2; + static const jint REG_DOT_NEWLINE = 4; + static const jint REG_MULTILINE = 8; + static const jint REG_NOTBOL = 16; + static const jint REG_NOTEOL = 32; + static const jint REG_ANCHORINDEX = 64; + static const jint REG_NO_INTERPOLATE = 128; + static const jint REG_TRY_ENTIRE_MATCH = 256; + static const jint REG_REPLACE_USE_BACKSLASHESCAPE = 512; + static const jint REG_X_COMMENTS = 1024; + static const jint REG_ICASE_USASCII = 2048; + static const jint REG_FIX_STARTING_POSITION = 4096; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RE__ diff --git a/libjava/gnu/java/util/regex/REException.h b/libjava/gnu/java/util/regex/REException.h new file mode 100644 index 00000000000..da4560b2fe8 --- /dev/null +++ b/libjava/gnu/java/util/regex/REException.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_REException__ +#define __gnu_java_util_regex_REException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class REException; + } + } + } + } +} + +class gnu::java::util::regex::REException : public ::java::lang::Exception +{ + +public: // actually package-private + REException(::java::lang::String *, jint, jint); +public: + virtual jint getType(); + virtual jint getPosition(); + virtual ::java::lang::String * getMessage(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) type; + jint pos; +public: + static const jint REG_BADRPT = 1; + static const jint REG_BADBR = 2; + static const jint REG_EBRACE = 3; + static const jint REG_EBRACK = 4; + static const jint REG_ERANGE = 5; + static const jint REG_ECTYPE = 6; + static const jint REG_EPAREN = 7; + static const jint REG_ESUBREG = 8; + static const jint REG_EEND = 9; + static const jint REG_ESCAPE = 10; + static const jint REG_BADPAT = 11; + static const jint REG_ESIZE = 12; + static const jint REG_ESPACE = 13; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_REException__ diff --git a/libjava/gnu/java/util/regex/REFilterInputStream.h b/libjava/gnu/java/util/regex/REFilterInputStream.h new file mode 100644 index 00000000000..2bed2653615 --- /dev/null +++ b/libjava/gnu/java/util/regex/REFilterInputStream.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_REFilterInputStream__ +#define __gnu_java_util_regex_REFilterInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexedInputStream; + class RE; + class REFilterInputStream; + } + } + } + } +} + +class gnu::java::util::regex::REFilterInputStream : public ::java::io::FilterInputStream +{ + +public: + REFilterInputStream(::java::io::InputStream *, ::gnu::java::util::regex::RE *, ::java::lang::String *); + virtual jint read(); + virtual jboolean markSupported(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jbyte > *); +private: + ::gnu::java::util::regex::RE * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) expr; + ::java::lang::String * replace; + ::java::lang::String * buffer; + jint bufpos; + jint offset; + ::gnu::java::util::regex::CharIndexedInputStream * stream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_REFilterInputStream__ diff --git a/libjava/gnu/java/util/regex/REMatch.h b/libjava/gnu/java/util/regex/REMatch.h new file mode 100644 index 00000000000..363bb74a45b --- /dev/null +++ b/libjava/gnu/java/util/regex/REMatch.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_REMatch__ +#define __gnu_java_util_regex_REMatch__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class BacktrackStack; + class CharIndexed; + class REMatch; + } + } + } + } +} + +class gnu::java::util::regex::REMatch : public ::java::lang::Object +{ + +public: + ::java::lang::Object * clone(); +public: // actually package-private + void assignFrom(::gnu::java::util::regex::REMatch *); + REMatch(jint, jint, jint); + void finish(::gnu::java::util::regex::CharIndexed *); + void clear(jint); +public: + ::java::lang::String * toString(); + jint getStartIndex(); + jint getEndIndex(); + ::java::lang::String * toString(jint); + jint getSubStartIndex(jint); + jint getStartIndex(jint); + jint getSubEndIndex(jint); + jint getEndIndex(jint); + ::java::lang::String * substituteInto(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) matchedText; + ::gnu::java::util::regex::CharIndexed * matchedCharIndexed; +public: // actually package-private + jint eflags; + jint offset; + jint anchor; + jint index; + JArray< jint > * start; + JArray< jint > * start1; + JArray< jint > * end; + jboolean empty; + ::gnu::java::util::regex::BacktrackStack * backtrackStack; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_REMatch__ diff --git a/libjava/gnu/java/util/regex/REMatchEnumeration.h b/libjava/gnu/java/util/regex/REMatchEnumeration.h new file mode 100644 index 00000000000..caab8c81e2f --- /dev/null +++ b/libjava/gnu/java/util/regex/REMatchEnumeration.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_REMatchEnumeration__ +#define __gnu_java_util_regex_REMatchEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class RE; + class REMatch; + class REMatchEnumeration; + } + } + } + } +} + +class gnu::java::util::regex::REMatchEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + REMatchEnumeration(::gnu::java::util::regex::RE *, ::gnu::java::util::regex::CharIndexed *, jint, jint); +public: + virtual jboolean hasMoreElements(); + virtual jboolean hasMoreMatches(); + virtual jboolean hasMoreMatches(::java::lang::StringBuffer *); + virtual ::java::lang::Object * nextElement(); + virtual ::gnu::java::util::regex::REMatch * nextMatch(); +private: + static const jint YES = 1; + static const jint MAYBE = 0; + static const jint NO = -1; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) more; + ::gnu::java::util::regex::REMatch * match; + ::gnu::java::util::regex::RE * expr; + ::gnu::java::util::regex::CharIndexed * input; + jint eflags; + jint index; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_REMatchEnumeration__ diff --git a/libjava/gnu/java/util/regex/RESyntax.h b/libjava/gnu/java/util/regex/RESyntax.h new file mode 100644 index 00000000000..59c8de002e9 --- /dev/null +++ b/libjava/gnu/java/util/regex/RESyntax.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RESyntax__ +#define __gnu_java_util_regex_RESyntax__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RESyntax; + } + } + } + } +} + +class gnu::java::util::regex::RESyntax : public ::java::lang::Object +{ + +public: + RESyntax(); + ::gnu::java::util::regex::RESyntax * makeFinal(); + RESyntax(::gnu::java::util::regex::RESyntax *); + jboolean get(jint); + ::gnu::java::util::regex::RESyntax * set(jint); + ::gnu::java::util::regex::RESyntax * clear(jint); + ::gnu::java::util::regex::RESyntax * setLineSeparator(::java::lang::String *); + ::java::lang::String * getLineSeparator(); +public: // actually package-private + static ::java::lang::String * DEFAULT_LINE_SEPARATOR; +private: + ::java::util::BitSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) bits; + jboolean isFinal; + ::java::lang::String * lineSeparator; +public: + static const jint RE_BACKSLASH_ESCAPE_IN_LISTS = 0; + static const jint RE_BK_PLUS_QM = 1; + static const jint RE_CHAR_CLASSES = 2; + static const jint RE_CONTEXT_INDEP_ANCHORS = 3; + static const jint RE_CONTEXT_INDEP_OPS = 4; + static const jint RE_CONTEXT_INVALID_OPS = 5; + static const jint RE_DOT_NEWLINE = 6; + static const jint RE_DOT_NOT_NULL = 7; + static const jint RE_INTERVALS = 8; + static const jint RE_LIMITED_OPS = 9; + static const jint RE_NEWLINE_ALT = 10; + static const jint RE_NO_BK_BRACES = 11; + static const jint RE_NO_BK_PARENS = 12; + static const jint RE_NO_BK_REFS = 13; + static const jint RE_NO_BK_VBAR = 14; + static const jint RE_NO_EMPTY_RANGES = 15; + static const jint RE_UNMATCHED_RIGHT_PAREN_ORD = 16; + static const jint RE_HAT_LISTS_NOT_NEWLINE = 17; + static const jint RE_STINGY_OPS = 18; + static const jint RE_CHAR_CLASS_ESCAPES = 19; + static const jint RE_PURE_GROUPING = 20; + static const jint RE_LOOKAHEAD = 21; + static const jint RE_STRING_ANCHORS = 22; + static const jint RE_COMMENTS = 23; + static const jint RE_CHAR_CLASS_ESC_IN_LISTS = 24; + static const jint RE_POSSESSIVE_OPS = 25; + static const jint RE_EMBEDDED_FLAGS = 26; + static const jint RE_OCTAL_CHAR = 27; + static const jint RE_HEX_CHAR = 28; + static const jint RE_UNICODE_CHAR = 29; + static const jint RE_NAMED_PROPERTY = 30; + static const jint RE_NESTED_CHARCLASS = 31; +private: + static const jint BIT_TOTAL = 32; +public: + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_AWK; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_ED; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_EGREP; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_EMACS; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_GREP; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_POSIX_AWK; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_POSIX_BASIC; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_POSIX_EGREP; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_POSIX_EXTENDED; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_POSIX_MINIMAL_BASIC; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_POSIX_MINIMAL_EXTENDED; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_SED; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_PERL4; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_PERL4_S; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_PERL5; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_PERL5_S; + static ::gnu::java::util::regex::RESyntax * RE_SYNTAX_JAVA_1_4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RESyntax__ diff --git a/libjava/gnu/java/util/regex/REToken.h b/libjava/gnu/java/util/regex/REToken.h new file mode 100644 index 00000000000..49ef5aef0c7 --- /dev/null +++ b/libjava/gnu/java/util/regex/REToken.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_REToken__ +#define __gnu_java_util_regex_REToken__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class REToken; + } + } + } + } +} + +class gnu::java::util::regex::REToken : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + REToken(jint); +public: // actually package-private + virtual jint getMinimumLength(); + virtual jint getMaximumLength(); + virtual void setUncle(::gnu::java::util::regex::REToken *); + virtual jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + virtual jboolean matchFake(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +private: + jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jboolean); +public: // actually package-private + virtual void setHitEnd(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +public: // actually protected + virtual jboolean next(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +public: // actually package-private + virtual ::gnu::java::util::regex::REToken * getNext(); + virtual ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + virtual jboolean returnsFixedLengthMatches(); + virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + virtual ::gnu::java::util::regex::REMatch * backtrack(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *); + virtual jboolean chain(::gnu::java::util::regex::REToken *); + virtual void dump(::java::lang::StringBuffer *) = 0; + virtual void dumpAll(::java::lang::StringBuffer *); +public: + virtual ::java::lang::String * toString(); + static jchar toLowerCase(jchar, jboolean); + static jchar toUpperCase(jchar, jboolean); +public: // actually protected + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__; + ::gnu::java::util::regex::REToken * uncle; + jint subIndex; + jboolean unicodeAware; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_REToken__ diff --git a/libjava/gnu/java/util/regex/RETokenAny.h b/libjava/gnu/java/util/regex/RETokenAny.h new file mode 100644 index 00000000000..d50be3d64fb --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenAny.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenAny__ +#define __gnu_java_util_regex_RETokenAny__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenAny; + } + } + } + } +} + +class gnu::java::util::regex::RETokenAny : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenAny(jint, jboolean, jboolean); + jint getMinimumLength(); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + jboolean matchOneChar(jchar); + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + void dump(::java::lang::StringBuffer *); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline; + jboolean matchNull; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenAny__ diff --git a/libjava/gnu/java/util/regex/RETokenBackRef.h b/libjava/gnu/java/util/regex/RETokenBackRef.h new file mode 100644 index 00000000000..33cf3b679c2 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenBackRef.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenBackRef__ +#define __gnu_java_util_regex_RETokenBackRef__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenBackRef; + } + } + } + } +} + +class gnu::java::util::regex::RETokenBackRef : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenBackRef(jint, jint, jboolean); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + void dump(::java::lang::StringBuffer *); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) num; + jboolean insens; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenBackRef__ diff --git a/libjava/gnu/java/util/regex/RETokenChar.h b/libjava/gnu/java/util/regex/RETokenChar.h new file mode 100644 index 00000000000..abff1cdd803 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenChar.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenChar__ +#define __gnu_java_util_regex_RETokenChar__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class REToken; + class RETokenChar; + } + } + } + } +} + +class gnu::java::util::regex::RETokenChar : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenChar(jint, jchar, jboolean); + jint getMinimumLength(); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +private: + jboolean matchOneString(::gnu::java::util::regex::CharIndexed *, jint); + jboolean charEquals(jchar, jchar); +public: // actually package-private + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + jboolean chain(::gnu::java::util::regex::REToken *); + void dump(::java::lang::StringBuffer *); +private: + JArray< jchar > * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) ch; + jboolean insens; + jint matchedLength; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenChar__ diff --git a/libjava/gnu/java/util/regex/RETokenEnd.h b/libjava/gnu/java/util/regex/RETokenEnd.h new file mode 100644 index 00000000000..cdcb5b06000 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenEnd.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenEnd__ +#define __gnu_java_util_regex_RETokenEnd__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenEnd; + } + } + } + } +} + +class gnu::java::util::regex::RETokenEnd : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenEnd(jint, ::java::lang::String *); + RETokenEnd(jint, ::java::lang::String *, jboolean); + void setFake(jboolean); + jint getMaximumLength(); + jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + void dump(::java::lang::StringBuffer *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline; + jboolean check_java_line_terminators; + jboolean fake; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenEnd__ diff --git a/libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h b/libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h new file mode 100644 index 00000000000..72f54647e82 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenEndOfPreviousMatch__ +#define __gnu_java_util_regex_RETokenEndOfPreviousMatch__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenEndOfPreviousMatch; + } + } + } + } +} + +class gnu::java::util::regex::RETokenEndOfPreviousMatch : public ::gnu::java::util::regex::RETokenStart +{ + +public: // actually package-private + RETokenEndOfPreviousMatch(jint); + virtual jint getMaximumLength(); + virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + virtual jboolean returnsFixedLengthmatches(); + virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + virtual void dump(::java::lang::StringBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenEndOfPreviousMatch__ diff --git a/libjava/gnu/java/util/regex/RETokenEndSub.h b/libjava/gnu/java/util/regex/RETokenEndSub.h new file mode 100644 index 00000000000..50f3281cae7 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenEndSub.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenEndSub__ +#define __gnu_java_util_regex_RETokenEndSub__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenEndSub; + } + } + } + } +} + +class gnu::java::util::regex::RETokenEndSub : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenEndSub(jint); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + void setHitEnd(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + void dump(::java::lang::StringBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenEndSub__ diff --git a/libjava/gnu/java/util/regex/RETokenIndependent.h b/libjava/gnu/java/util/regex/RETokenIndependent.h new file mode 100644 index 00000000000..f13c6b3eb6c --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenIndependent.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenIndependent__ +#define __gnu_java_util_regex_RETokenIndependent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class REToken; + class RETokenIndependent; + } + } + } + } +} + +class gnu::java::util::regex::RETokenIndependent : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenIndependent(::gnu::java::util::regex::REToken *); + jint getMinimumLength(); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + void dump(::java::lang::StringBuffer *); + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenIndependent__ diff --git a/libjava/gnu/java/util/regex/RETokenLookAhead.h b/libjava/gnu/java/util/regex/RETokenLookAhead.h new file mode 100644 index 00000000000..64c147c530e --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenLookAhead.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenLookAhead__ +#define __gnu_java_util_regex_RETokenLookAhead__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class REToken; + class RETokenLookAhead; + } + } + } + } +} + +class gnu::java::util::regex::RETokenLookAhead : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenLookAhead(::gnu::java::util::regex::REToken *, jboolean); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + void dump(::java::lang::StringBuffer *); + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re; + jboolean negative; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenLookAhead__ diff --git a/libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h b/libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h new file mode 100644 index 00000000000..83d9b477a23 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenLookBehind$RETokenMatchHereOnly__ +#define __gnu_java_util_regex_RETokenLookBehind$RETokenMatchHereOnly__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenLookBehind$RETokenMatchHereOnly; + } + } + } + } +} + +class gnu::java::util::regex::RETokenLookBehind$RETokenMatchHereOnly : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + virtual jint getMaximumLength(); + RETokenLookBehind$RETokenMatchHereOnly(jint); + virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + virtual void dump(::java::lang::StringBuffer *); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) index; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenLookBehind$RETokenMatchHereOnly__ diff --git a/libjava/gnu/java/util/regex/RETokenLookBehind.h b/libjava/gnu/java/util/regex/RETokenLookBehind.h new file mode 100644 index 00000000000..b07cf6ccc9f --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenLookBehind.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenLookBehind__ +#define __gnu_java_util_regex_RETokenLookBehind__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class REToken; + class RETokenLookBehind; + } + } + } + } +} + +class gnu::java::util::regex::RETokenLookBehind : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenLookBehind(::gnu::java::util::regex::REToken *, jboolean); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + void dump(::java::lang::StringBuffer *); + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re; + jboolean negative; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenLookBehind__ diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$1.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$1.h new file mode 100644 index 00000000000..3ed8949cfdb --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty$1__ +#define __gnu_java_util_regex_RETokenNamedProperty$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenNamedProperty; + class RETokenNamedProperty$1; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty$1 : public ::gnu::java::util::regex::RETokenNamedProperty$Handler +{ + +public: // actually package-private + RETokenNamedProperty$1(::gnu::java::util::regex::RETokenNamedProperty *); +public: + jboolean includes(jchar); +public: // actually package-private + ::gnu::java::util::regex::RETokenNamedProperty * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty$1__ diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$Handler.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$Handler.h new file mode 100644 index 00000000000..bc5efe1001c --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty$Handler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty$Handler__ +#define __gnu_java_util_regex_RETokenNamedProperty$Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenNamedProperty$Handler; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty$Handler : public ::java::lang::Object +{ + + RETokenNamedProperty$Handler(); +public: + virtual jboolean includes(jchar) = 0; +public: // actually package-private + RETokenNamedProperty$Handler(::gnu::java::util::regex::RETokenNamedProperty$Handler *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty$Handler__ diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.h new file mode 100644 index 00000000000..121acccad0d --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty$POSIXHandler__ +#define __gnu_java_util_regex_RETokenNamedProperty$POSIXHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenNamedProperty$POSIXHandler; + class RETokenPOSIX; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty$POSIXHandler : public ::gnu::java::util::regex::RETokenNamedProperty$Handler +{ + +public: + RETokenNamedProperty$POSIXHandler(::java::lang::String *); + virtual jboolean includes(jchar); +private: + ::gnu::java::util::regex::RETokenPOSIX * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) retoken; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty$POSIXHandler__ diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.h new file mode 100644 index 00000000000..c2890ed2386 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty$UnicodeBlockHandler__ +#define __gnu_java_util_regex_RETokenNamedProperty$UnicodeBlockHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenNamedProperty$UnicodeBlockHandler; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty$UnicodeBlockHandler : public ::gnu::java::util::regex::RETokenNamedProperty$Handler +{ + +public: + RETokenNamedProperty$UnicodeBlockHandler(::java::lang::Character$UnicodeBlock *); + virtual jboolean includes(jchar); +private: + ::java::lang::Character$UnicodeBlock * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) block; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty$UnicodeBlockHandler__ diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.h new file mode 100644 index 00000000000..af6c5aee0ae --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty$UnicodeCategoriesHandler__ +#define __gnu_java_util_regex_RETokenNamedProperty$UnicodeCategoriesHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenNamedProperty$UnicodeCategoriesHandler; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty$UnicodeCategoriesHandler : public ::gnu::java::util::regex::RETokenNamedProperty$Handler +{ + +public: + RETokenNamedProperty$UnicodeCategoriesHandler(JArray< jbyte > *); + virtual jboolean includes(jchar); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) categories; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty$UnicodeCategoriesHandler__ diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.h new file mode 100644 index 00000000000..f090dbd1ac0 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty$UnicodeCategoryHandler__ +#define __gnu_java_util_regex_RETokenNamedProperty$UnicodeCategoryHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenNamedProperty$UnicodeCategoryHandler; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty$UnicodeCategoryHandler : public ::gnu::java::util::regex::RETokenNamedProperty$Handler +{ + +public: + RETokenNamedProperty$UnicodeCategoryHandler(jbyte); + virtual jboolean includes(jchar); +private: + jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) category; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty$UnicodeCategoryHandler__ diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty.h b/libjava/gnu/java/util/regex/RETokenNamedProperty.h new file mode 100644 index 00000000000..9f610cd7ade --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty__ +#define __gnu_java_util_regex_RETokenNamedProperty__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenNamedProperty; + class RETokenNamedProperty$Handler; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenNamedProperty(jint, ::java::lang::String *, jboolean, jboolean); + jint getMinimumLength(); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +private: + jboolean matchOneChar(jchar); +public: // actually package-private + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + void dump(::java::lang::StringBuffer *); +private: + ::gnu::java::util::regex::RETokenNamedProperty$Handler * getHandler(::java::lang::String *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) name; + jboolean insens; + jboolean negate; + ::gnu::java::util::regex::RETokenNamedProperty$Handler * handler; + static JArray< jbyte > * LETTER; + static JArray< jbyte > * MARK; + static JArray< jbyte > * SEPARATOR; + static JArray< jbyte > * SYMBOL; + static JArray< jbyte > * NUMBER; + static JArray< jbyte > * PUNCTUATION; + static JArray< jbyte > * OTHER; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty__ diff --git a/libjava/gnu/java/util/regex/RETokenOneOf.h b/libjava/gnu/java/util/regex/RETokenOneOf.h new file mode 100644 index 00000000000..dec0561b405 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenOneOf.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenOneOf__ +#define __gnu_java_util_regex_RETokenOneOf__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenOneOf; + } + } + } + } +} + +class gnu::java::util::regex::RETokenOneOf : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenOneOf(jint, ::java::lang::String *, jboolean, jboolean); + RETokenOneOf(jint, ::java::util::Vector *, jboolean); + RETokenOneOf(jint, ::java::util::Vector *, ::java::util::Vector *, jboolean); + jint getMinimumLength(); + jint getMaximumLength(); + jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + jboolean matchOneChar(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +private: + jboolean matchN(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jboolean); + jboolean matchP(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jboolean); + jboolean matchOneRE(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +public: // actually package-private + ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + ::gnu::java::util::regex::REMatch * backtrack(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *); +private: + ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); +public: // actually package-private + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + void dump(::java::lang::StringBuffer *); +private: + ::java::util::Vector * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) options; + jboolean negative; + jboolean matchesOneChar; + ::java::util::Vector * addition; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenOneOf__ diff --git a/libjava/gnu/java/util/regex/RETokenPOSIX.h b/libjava/gnu/java/util/regex/RETokenPOSIX.h new file mode 100644 index 00000000000..a6a40c09ab3 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenPOSIX.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenPOSIX__ +#define __gnu_java_util_regex_RETokenPOSIX__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenPOSIX; + } + } + } + } +} + +class gnu::java::util::regex::RETokenPOSIX : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + static jint intValue(::java::lang::String *); + RETokenPOSIX(jint, jint, jboolean, jboolean); + jint getMinimumLength(); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + jboolean matchOneChar(jchar); + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + void dump(::java::lang::StringBuffer *); + jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) type; + jboolean insens; + jboolean negated; + static const jint ALNUM = 0; + static const jint ALPHA = 1; + static const jint BLANK = 2; + static const jint CNTRL = 3; + static const jint DIGIT = 4; + static const jint GRAPH = 5; + static const jint LOWER = 6; + static const jint PRINT = 7; + static const jint PUNCT = 8; + static const jint SPACE = 9; + static const jint UPPER = 10; + static const jint XDIGIT = 11; + static JArray< ::java::lang::String * > * s_nameTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenPOSIX__ diff --git a/libjava/gnu/java/util/regex/RETokenRange.h b/libjava/gnu/java/util/regex/RETokenRange.h new file mode 100644 index 00000000000..22ff21a3f03 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenRange.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenRange__ +#define __gnu_java_util_regex_RETokenRange__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenRange; + } + } + } + } +} + +class gnu::java::util::regex::RETokenRange : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenRange(jint, jchar, jchar, jboolean); + jint getMinimumLength(); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + jboolean matchOneChar(jchar); + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + void dump(::java::lang::StringBuffer *); +private: + jchar __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) lo; + jchar hi; + jboolean insens; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenRange__ diff --git a/libjava/gnu/java/util/regex/RETokenRepeated$DoablesFinder.h b/libjava/gnu/java/util/regex/RETokenRepeated$DoablesFinder.h new file mode 100644 index 00000000000..8b92ce52743 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenRepeated$DoablesFinder.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenRepeated$DoablesFinder__ +#define __gnu_java_util_regex_RETokenRepeated$DoablesFinder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class REToken; + class RETokenRepeated$DoablesFinder; + } + } + } + } +} + +class gnu::java::util::regex::RETokenRepeated$DoablesFinder : public ::java::lang::Object +{ + + RETokenRepeated$DoablesFinder(::gnu::java::util::regex::REToken *, ::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + ::gnu::java::util::regex::REMatch * find(); +public: // actually package-private + virtual jboolean noMore(); + RETokenRepeated$DoablesFinder(::gnu::java::util::regex::REToken *, ::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::gnu::java::util::regex::RETokenRepeated$DoablesFinder *); + static ::gnu::java::util::regex::REMatch * access$1(::gnu::java::util::regex::RETokenRepeated$DoablesFinder *); +private: + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::java::lang::Object)))) tk; + ::gnu::java::util::regex::CharIndexed * input; + ::gnu::java::util::regex::REMatch * rematch; + jboolean findFirst; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenRepeated$DoablesFinder__ diff --git a/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControl.h b/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControl.h new file mode 100644 index 00000000000..5858aeda35f --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenRepeated$FindMatchControl__ +#define __gnu_java_util_regex_RETokenRepeated$FindMatchControl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenRepeated$DoablesFinder; + class RETokenRepeated$FindMatchControl; + } + } + } + } +} + +class gnu::java::util::regex::RETokenRepeated$FindMatchControl : public ::java::lang::Object +{ + +public: // actually package-private + RETokenRepeated$FindMatchControl(::gnu::java::util::regex::RETokenRepeated$DoablesFinder *); + ::gnu::java::util::regex::RETokenRepeated$DoablesFinder * __attribute__((aligned(__alignof__( ::java::lang::Object)))) finder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenRepeated$FindMatchControl__ diff --git a/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h b/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h new file mode 100644 index 00000000000..11bf5c18225 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__ +#define __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenRepeated$FindMatchControl; + class RETokenRepeated$FindMatchControlStack; + } + } + } + } +} + +class gnu::java::util::regex::RETokenRepeated$FindMatchControlStack : public ::java::util::ArrayList +{ + + RETokenRepeated$FindMatchControlStack(); + void push(::gnu::java::util::regex::RETokenRepeated$FindMatchControl *); + ::gnu::java::util::regex::RETokenRepeated$FindMatchControl * pop(); + jboolean empty(); +public: // actually package-private + RETokenRepeated$FindMatchControlStack(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *); + static void access$1(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *, ::gnu::java::util::regex::RETokenRepeated$FindMatchControl *); + static jboolean access$2(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *); + static ::gnu::java::util::regex::RETokenRepeated$FindMatchControl * access$3(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__ diff --git a/libjava/gnu/java/util/regex/RETokenRepeated$StackedInfo.h b/libjava/gnu/java/util/regex/RETokenRepeated$StackedInfo.h new file mode 100644 index 00000000000..6253b64921f --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenRepeated$StackedInfo.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenRepeated$StackedInfo__ +#define __gnu_java_util_regex_RETokenRepeated$StackedInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenRepeated$DoablesFinder; + class RETokenRepeated$StackedInfo; + } + } + } + } +} + +class gnu::java::util::regex::RETokenRepeated$StackedInfo : public ::gnu::java::util::regex::BacktrackStack$Backtrack +{ + +public: // actually package-private + RETokenRepeated$StackedInfo(::gnu::java::util::regex::CharIndexed *, jint, ::gnu::java::util::regex::REMatch *, JArray< jint > *, ::gnu::java::util::regex::RETokenRepeated$DoablesFinder *); + jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::BacktrackStack$Backtrack)))) numRepeats; + JArray< jint > * visited; + ::gnu::java::util::regex::RETokenRepeated$DoablesFinder * finder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenRepeated$StackedInfo__ diff --git a/libjava/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.h b/libjava/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.h new file mode 100644 index 00000000000..5a6ef3b42d1 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenRepeated$TryAnotherResult__ +#define __gnu_java_util_regex_RETokenRepeated$TryAnotherResult__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class REMatch; + class RETokenRepeated$TryAnotherResult; + } + } + } + } +} + +class gnu::java::util::regex::RETokenRepeated$TryAnotherResult : public ::java::lang::Object +{ + + RETokenRepeated$TryAnotherResult(); +public: // actually package-private + RETokenRepeated$TryAnotherResult(::gnu::java::util::regex::RETokenRepeated$TryAnotherResult *); + ::gnu::java::util::regex::REMatch * __attribute__((aligned(__alignof__( ::java::lang::Object)))) result; + jint status; + static const jint RESULT_FOUND = 1; + static const jint TRY_FURTHER = 2; + static const jint NOTHING_FOUND = 3; + JArray< jint > * visited; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenRepeated$TryAnotherResult__ diff --git a/libjava/gnu/java/util/regex/RETokenRepeated.h b/libjava/gnu/java/util/regex/RETokenRepeated.h new file mode 100644 index 00000000000..17de5445b1f --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenRepeated.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenRepeated__ +#define __gnu_java_util_regex_RETokenRepeated__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class BacktrackStack; + class CharIndexed; + class REMatch; + class REToken; + class RETokenRepeated; + class RETokenRepeated$DoablesFinder; + class RETokenRepeated$FindMatchControlStack; + class RETokenRepeated$TryAnotherResult; + } + } + } + } +} + +class gnu::java::util::regex::RETokenRepeated : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenRepeated(jint, ::gnu::java::util::regex::REToken *, jint, jint); + void makeStingy(); + jboolean isStingy(); + void makePossessive(); + jboolean isPossessive(); + jint getMinimumLength(); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + ::gnu::java::util::regex::REMatch * backtrack(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *); +private: + ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *); + ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *, ::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *); + ::gnu::java::util::regex::RETokenRepeated$TryAnotherResult * tryAnother(::gnu::java::util::regex::BacktrackStack *, ::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint, ::gnu::java::util::regex::RETokenRepeated$DoablesFinder *, JArray< jint > *); +public: // actually package-private + jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); +private: + static JArray< jint > * initVisited(); + static jboolean visitedContains(jint, JArray< jint > *); + static JArray< jint > * addVisited(jint, JArray< jint > *); + ::gnu::java::util::regex::REMatch * matchRest(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + ::gnu::java::util::regex::REMatch * findMatchFixedLength(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + ::gnu::java::util::regex::REMatch * backtrackFixedLength(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *); + ::gnu::java::util::regex::REMatch * findMatchFixedLength(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint, jint); +public: // actually package-private + void dump(::java::lang::StringBuffer *); +private: + ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) token; + jint min; + jint max; + jboolean stingy; + jboolean possessive; + jint tokenFixedLength; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenRepeated__ diff --git a/libjava/gnu/java/util/regex/RETokenStart.h b/libjava/gnu/java/util/regex/RETokenStart.h new file mode 100644 index 00000000000..da6ad7f38bd --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenStart.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenStart__ +#define __gnu_java_util_regex_RETokenStart__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenStart; + } + } + } + } +} + +class gnu::java::util::regex::RETokenStart : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenStart(jint, ::java::lang::String *); + RETokenStart(jint, ::java::lang::String *, jboolean); + virtual jint getMaximumLength(); + virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + virtual jboolean returnsFixedLengthmatches(); + virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + virtual void dump(::java::lang::StringBuffer *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline; + jboolean check_java_line_terminators; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenStart__ diff --git a/libjava/gnu/java/util/regex/RETokenWordBoundary.h b/libjava/gnu/java/util/regex/RETokenWordBoundary.h new file mode 100644 index 00000000000..1d3bb6b97c4 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenWordBoundary.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenWordBoundary__ +#define __gnu_java_util_regex_RETokenWordBoundary__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class CharIndexed; + class REMatch; + class RETokenWordBoundary; + } + } + } + } +} + +class gnu::java::util::regex::RETokenWordBoundary : public ::gnu::java::util::regex::REToken +{ + +public: // actually package-private + RETokenWordBoundary(jint, jint, jboolean); + jint getMaximumLength(); + ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *); + jboolean returnsFixedLengthMatches(); + jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint); + void dump(::java::lang::StringBuffer *); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) negated; + jint where; +public: // actually package-private + static const jint BEGIN = 1; + static const jint END = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenWordBoundary__ diff --git a/libjava/gnu/java/util/regex/UncheckedRE.h b/libjava/gnu/java/util/regex/UncheckedRE.h new file mode 100644 index 00000000000..23a2898891c --- /dev/null +++ b/libjava/gnu/java/util/regex/UncheckedRE.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_UncheckedRE__ +#define __gnu_java_util_regex_UncheckedRE__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RESyntax; + class UncheckedRE; + } + } + } + } +} + +class gnu::java::util::regex::UncheckedRE : public ::gnu::java::util::regex::RE +{ + +public: + UncheckedRE(::java::lang::Object *); + UncheckedRE(::java::lang::Object *, jint); + UncheckedRE(::java::lang::Object *, jint, ::gnu::java::util::regex::RESyntax *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_UncheckedRE__ diff --git a/libjava/gnu/javax/crypto/RSACipherImpl.h b/libjava/gnu/javax/crypto/RSACipherImpl.h new file mode 100644 index 00000000000..9f677598751 --- /dev/null +++ b/libjava/gnu/javax/crypto/RSACipherImpl.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_RSACipherImpl__ +#define __gnu_javax_crypto_RSACipherImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace javax + { + namespace crypto + { + class RSACipherImpl; + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace interfaces + { + class RSAPrivateKey; + class RSAPublicKey; + } + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::RSACipherImpl : public ::javax::crypto::CipherSpi +{ + +public: + RSACipherImpl(); +public: // actually protected + virtual void engineSetMode(::java::lang::String *); + virtual void engineSetPadding(::java::lang::String *); + virtual jint engineGetBlockSize(); + virtual jint engineGetOutputSize(jint); + virtual jint engineGetKeySize(::java::security::Key *); + virtual JArray< jbyte > * engineGetIV(); + virtual ::java::security::AlgorithmParameters * engineGetParameters(); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); + virtual JArray< jbyte > * engineUpdate(JArray< jbyte > *, jint, jint); + virtual jint engineUpdate(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * engineDoFinal(JArray< jbyte > *, jint, jint); + virtual jint engineDoFinal(JArray< jbyte > *, jint); + virtual jint engineDoFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); +private: + JArray< jbyte > * rsaDecrypt(::java::math::BigInteger *); + static ::gnu::classpath::debug::SystemLogger * logger; + static JArray< jbyte > * EMPTY; + jint __attribute__((aligned(__alignof__( ::javax::crypto::CipherSpi)))) opmode; + ::java::security::interfaces::RSAPrivateKey * decipherKey; + ::java::security::interfaces::RSAPublicKey * blindingKey; + ::java::security::interfaces::RSAPublicKey * encipherKey; + ::java::security::SecureRandom * random; + JArray< jbyte > * dataBuffer; + jint pos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_RSACipherImpl__ diff --git a/libjava/gnu/javax/crypto/assembly/Assembly.h b/libjava/gnu/javax/crypto/assembly/Assembly.h new file mode 100644 index 00000000000..81c2fece1f3 --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/Assembly.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_Assembly__ +#define __gnu_javax_crypto_assembly_Assembly__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Assembly; + class Direction; + class Operation; + class Transformer; + } + } + } + } +} + +class gnu::javax::crypto::assembly::Assembly : public ::java::lang::Object +{ + +public: + Assembly(); + virtual void addPreTransformer(::gnu::javax::crypto::assembly::Transformer *); + virtual void addPostTransformer(::gnu::javax::crypto::assembly::Transformer *); + virtual void init(::java::util::Map *); + virtual void reset(); + virtual JArray< jbyte > * update(jbyte); + virtual JArray< jbyte > * update(JArray< jbyte > *); + virtual JArray< jbyte > * update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * lastUpdate(); + virtual JArray< jbyte > * lastUpdate(jbyte); + virtual JArray< jbyte > * lastUpdate(JArray< jbyte > *); + virtual JArray< jbyte > * lastUpdate(JArray< jbyte > *, jint, jint); +private: + void wireTransformer(::gnu::javax::crypto::assembly::Transformer *, ::gnu::javax::crypto::assembly::Operation *); +public: + static ::java::lang::String * DIRECTION; +private: + ::gnu::javax::crypto::assembly::Direction * __attribute__((aligned(__alignof__( ::java::lang::Object)))) wired; + ::gnu::javax::crypto::assembly::Transformer * head; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_Assembly__ diff --git a/libjava/gnu/javax/crypto/assembly/Cascade.h b/libjava/gnu/javax/crypto/assembly/Cascade.h new file mode 100644 index 00000000000..88f82383cdb --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/Cascade.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_Cascade__ +#define __gnu_javax_crypto_assembly_Cascade__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Cascade; + class Direction; + class Stage; + } + } + } + } +} + +class gnu::javax::crypto::assembly::Cascade : public ::java::lang::Object +{ + +public: + Cascade(); +private: + static jint lcm(jint, jint); +public: + virtual ::java::lang::Object * append(::gnu::javax::crypto::assembly::Stage *); + virtual ::java::lang::Object * prepend(::gnu::javax::crypto::assembly::Stage *); + virtual ::java::lang::Object * insert(jint, ::gnu::javax::crypto::assembly::Stage *); + virtual jint size(); + virtual ::java::util::Iterator * stages(); + virtual ::java::util::Set * blockSizes(); + virtual void init(::java::util::Map *); + virtual jint currentBlockSize(); + virtual void reset(); + virtual void update(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual jboolean selfTest(); + static ::java::lang::String * DIRECTION; +public: // actually protected + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) stages__; + ::java::util::LinkedList * stageKeys; + ::gnu::javax::crypto::assembly::Direction * wired; + jint blockSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_Cascade__ diff --git a/libjava/gnu/javax/crypto/assembly/CascadeStage.h b/libjava/gnu/javax/crypto/assembly/CascadeStage.h new file mode 100644 index 00000000000..b36ee47c91e --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/CascadeStage.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_CascadeStage__ +#define __gnu_javax_crypto_assembly_CascadeStage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Cascade; + class CascadeStage; + class Direction; + } + } + } + } +} + +class gnu::javax::crypto::assembly::CascadeStage : public ::gnu::javax::crypto::assembly::Stage +{ + +public: // actually package-private + CascadeStage(::gnu::javax::crypto::assembly::Cascade *, ::gnu::javax::crypto::assembly::Direction *); +public: + virtual ::java::util::Set * blockSizes(); +public: // actually package-private + virtual void initDelegate(::java::util::Map *); +public: + virtual jint currentBlockSize(); +public: // actually package-private + virtual void resetDelegate(); + virtual void updateDelegate(JArray< jbyte > *, jint, JArray< jbyte > *, jint); +public: + virtual jboolean selfTest(); +private: + ::gnu::javax::crypto::assembly::Cascade * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::assembly::Stage)))) delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_CascadeStage__ diff --git a/libjava/gnu/javax/crypto/assembly/CascadeTransformer.h b/libjava/gnu/javax/crypto/assembly/CascadeTransformer.h new file mode 100644 index 00000000000..780d2582f7f --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/CascadeTransformer.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_CascadeTransformer__ +#define __gnu_javax_crypto_assembly_CascadeTransformer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Cascade; + class CascadeTransformer; + } + } + } + } +} + +class gnu::javax::crypto::assembly::CascadeTransformer : public ::gnu::javax::crypto::assembly::Transformer +{ + +public: // actually package-private + CascadeTransformer(::gnu::javax::crypto::assembly::Cascade *); + virtual void initDelegate(::java::util::Map *); + virtual jint delegateBlockSize(); + virtual void resetDelegate(); + virtual JArray< jbyte > * updateDelegate(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * lastUpdateDelegate(); +private: + JArray< jbyte > * updateInternal(JArray< jbyte > *, jint, jint); + ::gnu::javax::crypto::assembly::Cascade * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::assembly::Transformer)))) delegate; + jint blockSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_CascadeTransformer__ diff --git a/libjava/gnu/javax/crypto/assembly/DeflateTransformer.h b/libjava/gnu/javax/crypto/assembly/DeflateTransformer.h new file mode 100644 index 00000000000..7021c177e41 --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/DeflateTransformer.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_DeflateTransformer__ +#define __gnu_javax_crypto_assembly_DeflateTransformer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class DeflateTransformer; + } + } + } + } +} + +class gnu::javax::crypto::assembly::DeflateTransformer : public ::gnu::javax::crypto::assembly::Transformer +{ + +public: // actually package-private + DeflateTransformer(); + virtual void initDelegate(::java::util::Map *); + virtual jint delegateBlockSize(); + virtual void resetDelegate(); + virtual JArray< jbyte > * updateDelegate(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * lastUpdateDelegate(); +private: + void compress(); + void decompress(JArray< jbyte > *, jint, jint); + ::java::util::zip::Deflater * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::assembly::Transformer)))) compressor; + ::java::util::zip::Inflater * decompressor; + jint outputBlockSize; + JArray< jbyte > * zlibBuffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_DeflateTransformer__ diff --git a/libjava/gnu/javax/crypto/assembly/Direction.h b/libjava/gnu/javax/crypto/assembly/Direction.h new file mode 100644 index 00000000000..207a55f0d5c --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/Direction.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_Direction__ +#define __gnu_javax_crypto_assembly_Direction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Direction; + } + } + } + } +} + +class gnu::javax::crypto::assembly::Direction : public ::java::lang::Object +{ + + Direction(jint); +public: + static ::gnu::javax::crypto::assembly::Direction * reverse(::gnu::javax::crypto::assembly::Direction *); + ::java::lang::String * toString(); + static ::gnu::javax::crypto::assembly::Direction * FORWARD; + static ::gnu::javax::crypto::assembly::Direction * REVERSED; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_Direction__ diff --git a/libjava/gnu/javax/crypto/assembly/LoopbackTransformer.h b/libjava/gnu/javax/crypto/assembly/LoopbackTransformer.h new file mode 100644 index 00000000000..bf6ccc90ccc --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/LoopbackTransformer.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_LoopbackTransformer__ +#define __gnu_javax_crypto_assembly_LoopbackTransformer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class LoopbackTransformer; + } + } + } + } +} + +class gnu::javax::crypto::assembly::LoopbackTransformer : public ::gnu::javax::crypto::assembly::Transformer +{ + +public: // actually package-private + LoopbackTransformer(); +public: + void init(::java::util::Map *); + void reset(); + JArray< jbyte > * update(JArray< jbyte > *, jint, jint); + JArray< jbyte > * lastUpdate(); +public: // actually package-private + void initDelegate(::java::util::Map *); + jint delegateBlockSize(); + void resetDelegate(); + JArray< jbyte > * updateDelegate(JArray< jbyte > *, jint, jint); + JArray< jbyte > * lastUpdateDelegate(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_LoopbackTransformer__ diff --git a/libjava/gnu/javax/crypto/assembly/ModeStage.h b/libjava/gnu/javax/crypto/assembly/ModeStage.h new file mode 100644 index 00000000000..760df956cbe --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/ModeStage.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_ModeStage__ +#define __gnu_javax_crypto_assembly_ModeStage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Direction; + class ModeStage; + } + namespace mode + { + class IMode; + } + } + } + } +} + +class gnu::javax::crypto::assembly::ModeStage : public ::gnu::javax::crypto::assembly::Stage +{ + +public: // actually package-private + ModeStage(::gnu::javax::crypto::mode::IMode *, ::gnu::javax::crypto::assembly::Direction *); +public: + virtual ::java::util::Set * blockSizes(); +public: // actually package-private + virtual void initDelegate(::java::util::Map *); +public: + virtual jint currentBlockSize(); +public: // actually package-private + virtual void resetDelegate(); + virtual void updateDelegate(JArray< jbyte > *, jint, JArray< jbyte > *, jint); +public: + virtual jboolean selfTest(); +private: + ::gnu::javax::crypto::mode::IMode * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::assembly::Stage)))) delegate; + ::java::util::Set * cachedBlockSizes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_ModeStage__ diff --git a/libjava/gnu/javax/crypto/assembly/Operation.h b/libjava/gnu/javax/crypto/assembly/Operation.h new file mode 100644 index 00000000000..792a1bad5ba --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/Operation.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_Operation__ +#define __gnu_javax_crypto_assembly_Operation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Operation; + } + } + } + } +} + +class gnu::javax::crypto::assembly::Operation : public ::java::lang::Object +{ + + Operation(jint); +public: + ::java::lang::String * toString(); + static ::gnu::javax::crypto::assembly::Operation * PRE_PROCESSING; + static ::gnu::javax::crypto::assembly::Operation * POST_PROCESSING; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_Operation__ diff --git a/libjava/gnu/javax/crypto/assembly/PaddingTransformer.h b/libjava/gnu/javax/crypto/assembly/PaddingTransformer.h new file mode 100644 index 00000000000..6a16b608e11 --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/PaddingTransformer.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_PaddingTransformer__ +#define __gnu_javax_crypto_assembly_PaddingTransformer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class PaddingTransformer; + } + namespace pad + { + class IPad; + } + } + } + } +} + +class gnu::javax::crypto::assembly::PaddingTransformer : public ::gnu::javax::crypto::assembly::Transformer +{ + +public: // actually package-private + PaddingTransformer(::gnu::javax::crypto::pad::IPad *); + virtual void initDelegate(::java::util::Map *); + virtual jint delegateBlockSize(); + virtual void resetDelegate(); + virtual JArray< jbyte > * updateDelegate(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * lastUpdateDelegate(); +private: + ::gnu::javax::crypto::pad::IPad * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::assembly::Transformer)))) delegate; + jint outputBlockSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_PaddingTransformer__ diff --git a/libjava/gnu/javax/crypto/assembly/Stage.h b/libjava/gnu/javax/crypto/assembly/Stage.h new file mode 100644 index 00000000000..799ef5e695a --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/Stage.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_Stage__ +#define __gnu_javax_crypto_assembly_Stage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Cascade; + class Direction; + class Stage; + } + namespace mode + { + class IMode; + } + } + } + } +} + +class gnu::javax::crypto::assembly::Stage : public ::java::lang::Object +{ + +public: // actually protected + Stage(::gnu::javax::crypto::assembly::Direction *); +public: + static ::gnu::javax::crypto::assembly::Stage * getInstance(::gnu::javax::crypto::mode::IMode *, ::gnu::javax::crypto::assembly::Direction *); + static ::gnu::javax::crypto::assembly::Stage * getInstance(::gnu::javax::crypto::assembly::Cascade *, ::gnu::javax::crypto::assembly::Direction *); + virtual ::java::util::Set * blockSizes() = 0; + virtual void init(::java::util::Map *); + virtual jint currentBlockSize() = 0; + virtual void reset(); + virtual void update(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual jboolean selfTest() = 0; +public: // actually package-private + virtual void initDelegate(::java::util::Map *) = 0; + virtual void resetDelegate() = 0; + virtual void updateDelegate(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; +public: + static ::java::lang::String * DIRECTION; +public: // actually protected + ::gnu::javax::crypto::assembly::Direction * __attribute__((aligned(__alignof__( ::java::lang::Object)))) forward; + ::gnu::javax::crypto::assembly::Direction * wired; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_Stage__ diff --git a/libjava/gnu/javax/crypto/assembly/Transformer.h b/libjava/gnu/javax/crypto/assembly/Transformer.h new file mode 100644 index 00000000000..1860d3d30dd --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/Transformer.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_Transformer__ +#define __gnu_javax_crypto_assembly_Transformer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Cascade; + class Direction; + class Operation; + class Transformer; + } + namespace pad + { + class IPad; + } + } + } + } +} + +class gnu::javax::crypto::assembly::Transformer : public ::java::lang::Object +{ + +public: // actually protected + Transformer(); +public: + static ::gnu::javax::crypto::assembly::Transformer * getCascadeTransformer(::gnu::javax::crypto::assembly::Cascade *); + static ::gnu::javax::crypto::assembly::Transformer * getPaddingTransformer(::gnu::javax::crypto::pad::IPad *); + static ::gnu::javax::crypto::assembly::Transformer * getDeflateTransformer(); + virtual void setMode(::gnu::javax::crypto::assembly::Operation *); + virtual jboolean isPreProcessing(); + virtual jboolean isPostProcessing(); + virtual void init(::java::util::Map *); + virtual jint currentBlockSize(); + virtual void reset(); + virtual JArray< jbyte > * update(jbyte); + virtual JArray< jbyte > * update(JArray< jbyte > *); + virtual JArray< jbyte > * update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * lastUpdate(); + virtual JArray< jbyte > * lastUpdate(jbyte); + virtual JArray< jbyte > * lastUpdate(JArray< jbyte > *); + virtual JArray< jbyte > * lastUpdate(JArray< jbyte > *, jint, jint); +private: + JArray< jbyte > * forwardUpdate(JArray< jbyte > *, jint, jint); + JArray< jbyte > * inverseUpdate(JArray< jbyte > *, jint, jint); + JArray< jbyte > * preTransform(JArray< jbyte > *, jint, jint); + JArray< jbyte > * postTransform(JArray< jbyte > *, jint, jint); + JArray< jbyte > * lastForwardUpdate(); + JArray< jbyte > * lastInverseUpdate(); + JArray< jbyte > * preLastTransform(); + JArray< jbyte > * postLastTransform(); +public: // actually package-private + virtual void initDelegate(::java::util::Map *) = 0; + virtual jint delegateBlockSize() = 0; + virtual void resetDelegate() = 0; + virtual JArray< jbyte > * updateDelegate(JArray< jbyte > *, jint, jint) = 0; + virtual JArray< jbyte > * lastUpdateDelegate() = 0; +public: + static ::java::lang::String * DIRECTION; +public: // actually protected + ::gnu::javax::crypto::assembly::Direction * __attribute__((aligned(__alignof__( ::java::lang::Object)))) wired; + ::gnu::javax::crypto::assembly::Operation * mode; + ::gnu::javax::crypto::assembly::Transformer * tail; + ::java::io::ByteArrayOutputStream * inBuffer; + ::java::io::ByteArrayOutputStream * outBuffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_Transformer__ diff --git a/libjava/gnu/javax/crypto/assembly/TransformerException.h b/libjava/gnu/javax/crypto/assembly/TransformerException.h new file mode 100644 index 00000000000..cb9e92a4f99 --- /dev/null +++ b/libjava/gnu/javax/crypto/assembly/TransformerException.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_assembly_TransformerException__ +#define __gnu_javax_crypto_assembly_TransformerException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class TransformerException; + } + } + } + } +} + +class gnu::javax::crypto::assembly::TransformerException : public ::java::lang::Exception +{ + +public: + TransformerException(); + TransformerException(::java::lang::String *); + TransformerException(::java::lang::Throwable *); + TransformerException(::java::lang::String *, ::java::lang::Throwable *); + virtual ::java::lang::Throwable * getCause(); + virtual void printStackTrace(); + virtual void printStackTrace(::java::io::PrintStream *); + virtual void printStackTrace(::java::io::PrintWriter *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) _exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_assembly_TransformerException__ diff --git a/libjava/gnu/javax/crypto/cipher/Anubis.h b/libjava/gnu/javax/crypto/cipher/Anubis.h new file mode 100644 index 00000000000..b9a40b847f0 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Anubis.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Anubis__ +#define __gnu_javax_crypto_cipher_Anubis__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Anubis; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Anubis : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + Anubis(); +private: + static void anubis(JArray< jbyte > *, jint, JArray< jbyte > *, jint, JArray< JArray< jint > * > *); +public: + ::java::lang::Object * clone(); + ::java::util::Iterator * blockSizes(); + ::java::util::Iterator * keySizes(); + ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + jboolean selfTest(); +private: + static ::java::util::logging::Logger * log; + static const jint DEFAULT_BLOCK_SIZE = 16; + static const jint DEFAULT_KEY_SIZE = 16; + static ::java::lang::String * Sd; + static JArray< jbyte > * S; + static JArray< jint > * T0; + static JArray< jint > * T1; + static JArray< jint > * T2; + static JArray< jint > * T3; + static JArray< jint > * T4; + static JArray< jint > * T5; + static JArray< jint > * rc; + static JArray< jbyte > * KAT_KEY; + static JArray< jbyte > * KAT_CT; + static ::java::lang::Boolean * valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Anubis__ diff --git a/libjava/gnu/javax/crypto/cipher/BaseCipher.h b/libjava/gnu/javax/crypto/cipher/BaseCipher.h new file mode 100644 index 00000000000..bb6437df611 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/BaseCipher.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_BaseCipher__ +#define __gnu_javax_crypto_cipher_BaseCipher__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class BaseCipher; + } + } + } + } +} + +class gnu::javax::crypto::cipher::BaseCipher : public ::java::lang::Object +{ + +public: // actually protected + BaseCipher(::java::lang::String *, jint, jint); +public: + virtual ::java::lang::Object * clone() = 0; + virtual ::java::lang::String * name(); + virtual jint defaultBlockSize(); + virtual jint defaultKeySize(); + virtual void init(::java::util::Map *); + virtual jint currentBlockSize(); + virtual void reset(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual jboolean selfTest(); +private: + jboolean testSymmetry(jint, jint); +public: // actually protected + virtual jboolean testKat(JArray< jbyte > *, JArray< jbyte > *); + virtual jboolean testKat(JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *); +public: + virtual ::java::util::Iterator * blockSizes() = 0; + virtual ::java::util::Iterator * keySizes() = 0; + virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint) = 0; + virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint) = 0; + virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint) = 0; +private: + static ::java::util::logging::Logger * log; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; + jint defaultBlockSize__; + jint defaultKeySize__; + jint currentBlockSize__; + ::java::lang::Object * currentKey; + ::java::lang::Object * lock; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_BaseCipher__ diff --git a/libjava/gnu/javax/crypto/cipher/Blowfish$Block.h b/libjava/gnu/javax/crypto/cipher/Blowfish$Block.h new file mode 100644 index 00000000000..738cb373212 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Blowfish$Block.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Blowfish$Block__ +#define __gnu_javax_crypto_cipher_Blowfish$Block__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Blowfish; + class Blowfish$Block; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Blowfish$Block : public ::java::lang::Object +{ + + Blowfish$Block(::gnu::javax::crypto::cipher::Blowfish *); +public: // actually package-private + Blowfish$Block(::gnu::javax::crypto::cipher::Blowfish *, ::gnu::javax::crypto::cipher::Blowfish$Block *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) left; + jint right; + ::gnu::javax::crypto::cipher::Blowfish * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Blowfish$Block__ diff --git a/libjava/gnu/javax/crypto/cipher/Blowfish$Context.h b/libjava/gnu/javax/crypto/cipher/Blowfish$Context.h new file mode 100644 index 00000000000..74c9087eab5 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Blowfish$Context.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Blowfish$Context__ +#define __gnu_javax_crypto_cipher_Blowfish$Context__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Blowfish; + class Blowfish$Context; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Blowfish$Context : public ::java::lang::Object +{ + +public: // actually package-private + Blowfish$Context(::gnu::javax::crypto::cipher::Blowfish *); +private: + Blowfish$Context(::gnu::javax::crypto::cipher::Blowfish *, ::gnu::javax::crypto::cipher::Blowfish$Context *); +public: + virtual ::java::lang::Object * clone(); +public: // actually package-private + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p; + JArray< jint > * s0; + JArray< jint > * s1; + JArray< jint > * s2; + JArray< jint > * s3; + ::gnu::javax::crypto::cipher::Blowfish * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Blowfish$Context__ diff --git a/libjava/gnu/javax/crypto/cipher/Blowfish.h b/libjava/gnu/javax/crypto/cipher/Blowfish.h new file mode 100644 index 00000000000..dac15df6ccb --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Blowfish.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Blowfish__ +#define __gnu_javax_crypto_cipher_Blowfish__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Blowfish; + class Blowfish$Block; + class Blowfish$Context; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Blowfish : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + Blowfish(); + virtual ::java::lang::Object * clone(); + virtual ::java::util::Iterator * keySizes(); + virtual ::java::util::Iterator * blockSizes(); + virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); +private: + void blowfishEncrypt(::gnu::javax::crypto::cipher::Blowfish$Block *, ::gnu::javax::crypto::cipher::Blowfish$Context *); + void blowfishDecrypt(::gnu::javax::crypto::cipher::Blowfish$Block *, ::gnu::javax::crypto::cipher::Blowfish$Context *); +public: + virtual jboolean selfTest(); +private: + static const jint DEFAULT_BLOCK_SIZE = 8; + static const jint DEFAULT_KEY_SIZE = 8; + static const jint MAX_KEY_LENGTH = 56; + static JArray< jint > * P; +public: // actually package-private + static JArray< jint > * KS0; +private: + static JArray< jint > * KS1; + static JArray< jint > * KS2; + static JArray< jint > * KS3; + static ::java::lang::Boolean * valid; + static JArray< jbyte > * TV_KEY; + static JArray< jbyte > * TV_CT; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Blowfish__ diff --git a/libjava/gnu/javax/crypto/cipher/Cast5$Cast5Key.h b/libjava/gnu/javax/crypto/cipher/Cast5$Cast5Key.h new file mode 100644 index 00000000000..7f1ecc0561a --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Cast5$Cast5Key.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Cast5$Cast5Key__ +#define __gnu_javax_crypto_cipher_Cast5$Cast5Key__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Cast5; + class Cast5$Cast5Key; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Cast5$Cast5Key : public ::java::lang::Object +{ + + Cast5$Cast5Key(::gnu::javax::crypto::cipher::Cast5 *); +public: // actually package-private + Cast5$Cast5Key(::gnu::javax::crypto::cipher::Cast5 *, ::gnu::javax::crypto::cipher::Cast5$Cast5Key *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) rounds; + jint Km0; + jint Km1; + jint Km2; + jint Km3; + jint Km4; + jint Km5; + jint Km6; + jint Km7; + jint Km8; + jint Km9; + jint Km10; + jint Km11; + jint Km12; + jint Km13; + jint Km14; + jint Km15; + jint Kr0; + jint Kr1; + jint Kr2; + jint Kr3; + jint Kr4; + jint Kr5; + jint Kr6; + jint Kr7; + jint Kr8; + jint Kr9; + jint Kr10; + jint Kr11; + jint Kr12; + jint Kr13; + jint Kr14; + jint Kr15; + ::gnu::javax::crypto::cipher::Cast5 * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Cast5$Cast5Key__ diff --git a/libjava/gnu/javax/crypto/cipher/Cast5.h b/libjava/gnu/javax/crypto/cipher/Cast5.h new file mode 100644 index 00000000000..40cebee7c72 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Cast5.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Cast5__ +#define __gnu_javax_crypto_cipher_Cast5__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Cast5; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Cast5 : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + Cast5(); +private: + static JArray< jint > * unscramble(jint); +public: + virtual ::java::lang::Object * clone(); + virtual ::java::util::Iterator * blockSizes(); + virtual ::java::util::Iterator * keySizes(); + virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + virtual jboolean selfTest(); +private: + jint f1(jint, jint, jint); + jint f2(jint, jint, jint); + jint f3(jint, jint, jint); + static const jint DEFAULT_BLOCK_SIZE = 8; + static const jint DEFAULT_KEY_SIZE = 5; + static JArray< jbyte > * KAT_KEY; + static JArray< jbyte > * KAT_PT; + static JArray< jbyte > * KAT_CT; + static ::java::lang::Boolean * valid; + static JArray< jint > * S1; + static JArray< jint > * S2; + static JArray< jint > * S3; + static JArray< jint > * S4; + static JArray< jint > * S5; + static JArray< jint > * S6; + static JArray< jint > * S7; + static JArray< jint > * S8; + static const jint _12_ROUNDS = 12; + static const jint _16_ROUNDS = 16; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Cast5__ diff --git a/libjava/gnu/javax/crypto/cipher/CipherFactory.h b/libjava/gnu/javax/crypto/cipher/CipherFactory.h new file mode 100644 index 00000000000..97f49ea79dd --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/CipherFactory.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_CipherFactory__ +#define __gnu_javax_crypto_cipher_CipherFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class CipherFactory; + class IBlockCipher; + } + } + } + } +} + +class gnu::javax::crypto::cipher::CipherFactory : public ::java::lang::Object +{ + + CipherFactory(); +public: + static ::gnu::javax::crypto::cipher::IBlockCipher * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_CipherFactory__ diff --git a/libjava/gnu/javax/crypto/cipher/DES$Context.h b/libjava/gnu/javax/crypto/cipher/DES$Context.h new file mode 100644 index 00000000000..f25456f4d4d --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/DES$Context.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_DES$Context__ +#define __gnu_javax_crypto_cipher_DES$Context__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class DES; + class DES$Context; + } + } + } + } +} + +class gnu::javax::crypto::cipher::DES$Context : public ::java::lang::Object +{ + +public: // actually package-private + DES$Context(::gnu::javax::crypto::cipher::DES *); + JArray< jbyte > * getEncryptionKeyBytes(); + JArray< jbyte > * getDecryptionKeyBytes(); + JArray< jbyte > * toByteArray(JArray< jint > *); +private: + static const jint EXPANDED_KEY_SIZE = 32; +public: // actually package-private + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ek; + JArray< jint > * dk; + ::gnu::javax::crypto::cipher::DES * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_DES$Context__ diff --git a/libjava/gnu/javax/crypto/cipher/DES.h b/libjava/gnu/javax/crypto/cipher/DES.h new file mode 100644 index 00000000000..a5830d835d1 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/DES.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_DES__ +#define __gnu_javax_crypto_cipher_DES__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class DES; + } + } + } + } +} + +class gnu::javax::crypto::cipher::DES : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + DES(); + static void adjustParity(JArray< jbyte > *, jint); + static jboolean isParityAdjusted(JArray< jbyte > *, jint); + static jboolean isWeak(JArray< jbyte > *); + static jboolean isSemiWeak(JArray< jbyte > *); + static jboolean isPossibleWeak(JArray< jbyte > *); +private: + static void desFunc(JArray< jbyte > *, jint, JArray< jbyte > *, jint, JArray< jint > *); +public: + virtual ::java::lang::Object * clone(); + virtual ::java::util::Iterator * blockSizes(); + virtual ::java::util::Iterator * keySizes(); + virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + static const jint BLOCK_SIZE = 8; + static const jint KEY_SIZE = 8; +private: + static JArray< jint > * SP1; + static JArray< jint > * SP2; + static JArray< jint > * SP3; + static JArray< jint > * SP4; + static JArray< jint > * SP5; + static JArray< jint > * SP6; + static JArray< jint > * SP7; + static JArray< jint > * SP8; + static JArray< jbyte > * PARITY; + static JArray< jbyte > * ROTARS; + static JArray< jbyte > * PC1; + static JArray< jbyte > * PC2; +public: + static JArray< JArray< jbyte > * > * WEAK_KEYS; + static JArray< JArray< jbyte > * > * SEMIWEAK_KEYS; + static JArray< JArray< jbyte > * > * POSSIBLE_WEAK_KEYS; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_DES__ diff --git a/libjava/gnu/javax/crypto/cipher/IBlockCipher.h b/libjava/gnu/javax/crypto/cipher/IBlockCipher.h new file mode 100644 index 00000000000..662389b264c --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/IBlockCipher.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_IBlockCipher__ +#define __gnu_javax_crypto_cipher_IBlockCipher__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + } + } + } +} + +class gnu::javax::crypto::cipher::IBlockCipher : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual jint defaultBlockSize() = 0; + virtual jint defaultKeySize() = 0; + virtual ::java::util::Iterator * blockSizes() = 0; + virtual ::java::util::Iterator * keySizes() = 0; + virtual ::java::lang::Object * clone() = 0; + virtual void init(::java::util::Map *) = 0; + virtual jint currentBlockSize() = 0; + virtual void reset() = 0; + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual jboolean selfTest() = 0; + static ::java::lang::String * CIPHER_BLOCK_SIZE; + static ::java::lang::String * KEY_MATERIAL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_cipher_IBlockCipher__ diff --git a/libjava/gnu/javax/crypto/cipher/IBlockCipherSpi.h b/libjava/gnu/javax/crypto/cipher/IBlockCipherSpi.h new file mode 100644 index 00000000000..35e686dda51 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/IBlockCipherSpi.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_IBlockCipherSpi__ +#define __gnu_javax_crypto_cipher_IBlockCipherSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipherSpi; + } + } + } + } +} + +class gnu::javax::crypto::cipher::IBlockCipherSpi : public ::java::lang::Object +{ + +public: + virtual ::java::util::Iterator * blockSizes() = 0; + virtual ::java::util::Iterator * keySizes() = 0; + virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint) = 0; + virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint) = 0; + virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint) = 0; + virtual jboolean selfTest() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_cipher_IBlockCipherSpi__ diff --git a/libjava/gnu/javax/crypto/cipher/Khazad.h b/libjava/gnu/javax/crypto/cipher/Khazad.h new file mode 100644 index 00000000000..734bab28ec5 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Khazad.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Khazad__ +#define __gnu_javax_crypto_cipher_Khazad__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Khazad; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Khazad : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + Khazad(); +private: + static void khazad(JArray< jbyte > *, jint, JArray< jbyte > *, jint, JArray< JArray< jint > * > *); +public: + ::java::lang::Object * clone(); + ::java::util::Iterator * blockSizes(); + ::java::util::Iterator * keySizes(); + ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + jboolean selfTest(); +private: + static ::java::util::logging::Logger * log; + static const jint DEFAULT_BLOCK_SIZE = 8; + static const jint DEFAULT_KEY_SIZE = 16; + static const jint R = 8; + static ::java::lang::String * Sd; + static JArray< jbyte > * S; + static JArray< jint > * T0; + static JArray< jint > * T1; + static JArray< jint > * T2; + static JArray< jint > * T3; + static JArray< jint > * T4; + static JArray< jint > * T5; + static JArray< jint > * T6; + static JArray< jint > * T7; + static JArray< JArray< jint > * > * rc; + static JArray< jbyte > * KAT_KEY; + static JArray< jbyte > * KAT_CT; + static ::java::lang::Boolean * valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Khazad__ diff --git a/libjava/gnu/javax/crypto/cipher/NullCipher.h b/libjava/gnu/javax/crypto/cipher/NullCipher.h new file mode 100644 index 00000000000..5199488c50e --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/NullCipher.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_NullCipher__ +#define __gnu_javax_crypto_cipher_NullCipher__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class NullCipher; + } + } + } + } +} + +class gnu::javax::crypto::cipher::NullCipher : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + NullCipher(); + ::java::lang::Object * clone(); + ::java::util::Iterator * blockSizes(); + ::java::util::Iterator * keySizes(); + ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + jboolean selfTest(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_NullCipher__ diff --git a/libjava/gnu/javax/crypto/cipher/Rijndael.h b/libjava/gnu/javax/crypto/cipher/Rijndael.h new file mode 100644 index 00000000000..2511bfe662b --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Rijndael.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Rijndael__ +#define __gnu_javax_crypto_cipher_Rijndael__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Rijndael; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Rijndael : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + Rijndael(); + static jint getRounds(jint, jint); +private: + static void rijndaelEncrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + static void rijndaelDecrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + static void aesEncrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *); + static void aesDecrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *); +public: + ::java::lang::Object * clone(); + ::java::util::Iterator * blockSizes(); + ::java::util::Iterator * keySizes(); + ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + jboolean selfTest(); +private: + static ::java::util::logging::Logger * log; + static const jint DEFAULT_BLOCK_SIZE = 16; + static const jint DEFAULT_KEY_SIZE = 16; + static ::java::lang::String * SS; + static JArray< jbyte > * S; + static JArray< jbyte > * Si; + static JArray< jint > * T1; + static JArray< jint > * T2; + static JArray< jint > * T3; + static JArray< jint > * T4; + static JArray< jint > * T5; + static JArray< jint > * T6; + static JArray< jint > * T7; + static JArray< jint > * T8; + static JArray< jint > * U1; + static JArray< jint > * U2; + static JArray< jint > * U3; + static JArray< jint > * U4; + static JArray< jbyte > * rcon; + static JArray< JArray< JArray< jint > * > * > * shifts; + static JArray< jbyte > * KAT_KEY; + static JArray< jbyte > * KAT_CT; + static ::java::lang::Boolean * valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Rijndael__ diff --git a/libjava/gnu/javax/crypto/cipher/Serpent$Key.h b/libjava/gnu/javax/crypto/cipher/Serpent$Key.h new file mode 100644 index 00000000000..ee098e01ab2 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Serpent$Key.h @@ -0,0 +1,175 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Serpent$Key__ +#define __gnu_javax_crypto_cipher_Serpent$Key__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Serpent; + class Serpent$Key; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Serpent$Key : public ::java::lang::Object +{ + +public: // actually package-private + Serpent$Key(::gnu::javax::crypto::cipher::Serpent *); +private: + Serpent$Key(::gnu::javax::crypto::cipher::Serpent *, ::gnu::javax::crypto::cipher::Serpent$Key *); +public: + virtual ::java::lang::Object * clone(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) k0; + jint k1; + jint k2; + jint k3; + jint k4; + jint k5; + jint k6; + jint k7; + jint k8; + jint k9; + jint k10; + jint k11; + jint k12; + jint k13; + jint k14; + jint k15; + jint k16; + jint k17; + jint k18; + jint k19; + jint k20; + jint k21; + jint k22; + jint k23; + jint k24; + jint k25; + jint k26; + jint k27; + jint k28; + jint k29; + jint k30; + jint k31; + jint k32; + jint k33; + jint k34; + jint k35; + jint k36; + jint k37; + jint k38; + jint k39; + jint k40; + jint k41; + jint k42; + jint k43; + jint k44; + jint k45; + jint k46; + jint k47; + jint k48; + jint k49; + jint k50; + jint k51; + jint k52; + jint k53; + jint k54; + jint k55; + jint k56; + jint k57; + jint k58; + jint k59; + jint k60; + jint k61; + jint k62; + jint k63; + jint k64; + jint k65; + jint k66; + jint k67; + jint k68; + jint k69; + jint k70; + jint k71; + jint k72; + jint k73; + jint k74; + jint k75; + jint k76; + jint k77; + jint k78; + jint k79; + jint k80; + jint k81; + jint k82; + jint k83; + jint k84; + jint k85; + jint k86; + jint k87; + jint k88; + jint k89; + jint k90; + jint k91; + jint k92; + jint k93; + jint k94; + jint k95; + jint k96; + jint k97; + jint k98; + jint k99; + jint k100; + jint k101; + jint k102; + jint k103; + jint k104; + jint k105; + jint k106; + jint k107; + jint k108; + jint k109; + jint k110; + jint k111; + jint k112; + jint k113; + jint k114; + jint k115; + jint k116; + jint k117; + jint k118; + jint k119; + jint k120; + jint k121; + jint k122; + jint k123; + jint k124; + jint k125; + jint k126; + jint k127; + jint k128; + jint k129; + jint k130; + jint k131; + ::gnu::javax::crypto::cipher::Serpent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Serpent$Key__ diff --git a/libjava/gnu/javax/crypto/cipher/Serpent.h b/libjava/gnu/javax/crypto/cipher/Serpent.h new file mode 100644 index 00000000000..20b9a5bf779 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Serpent.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Serpent__ +#define __gnu_javax_crypto_cipher_Serpent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Serpent; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Serpent : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + Serpent(); + virtual ::java::lang::Object * clone(); + virtual ::java::util::Iterator * blockSizes(); + virtual ::java::util::Iterator * keySizes(); + virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + virtual jboolean selfTest(); +private: + void sbox0(); + void sbox1(); + void sbox2(); + void sbox3(); + void sbox4(); + void sbox5(); + void sbox6(); + void sbox7(); + void sbox7noLT(); + void sboxI7noLT(); + void sboxI6(); + void sboxI5(); + void sboxI4(); + void sboxI3(); + void sboxI2(); + void sboxI1(); + void sboxI0(); + void sboxI7(); + void sbox0(jint, jint, jint, jint); + void sbox1(jint, jint, jint, jint); + void sbox2(jint, jint, jint, jint); + void sbox3(jint, jint, jint, jint); + void sbox4(jint, jint, jint, jint); + void sbox5(jint, jint, jint, jint); + void sbox6(jint, jint, jint, jint); + void sbox7(jint, jint, jint, jint); + static const jint DEFAULT_KEY_SIZE = 16; + static const jint DEFAULT_BLOCK_SIZE = 16; + static const jint ROUNDS = 32; + static const jint PHI = -1640531527; + static JArray< jbyte > * KAT_KEY; + static JArray< jbyte > * KAT_CT; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::javax::crypto::cipher::BaseCipher)))) x0; + jint x1; + jint x2; + jint x3; + jint x4; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Serpent__ diff --git a/libjava/gnu/javax/crypto/cipher/Square.h b/libjava/gnu/javax/crypto/cipher/Square.h new file mode 100644 index 00000000000..cae545c19c2 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Square.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Square__ +#define __gnu_javax_crypto_cipher_Square__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Square; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Square : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + Square(); +private: + static void square(JArray< jbyte > *, jint, JArray< jbyte > *, jint, JArray< JArray< jint > * > *, JArray< jint > *, JArray< jbyte > *); + static void transform(JArray< jint > *, JArray< jint > *); + static jint rot32L(jint, jint); + static jint rot32R(jint, jint); + static jint mul(jint, jint); +public: + ::java::lang::Object * clone(); + ::java::util::Iterator * blockSizes(); + ::java::util::Iterator * keySizes(); + ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + jboolean selfTest(); +private: + static const jint DEFAULT_BLOCK_SIZE = 16; + static const jint DEFAULT_KEY_SIZE = 16; + static const jint ROUNDS = 8; + static const jint ROOT = 501; + static JArray< jint > * OFFSET; + static ::java::lang::String * Sdata; + static JArray< jbyte > * Se; + static JArray< jbyte > * Sd; + static JArray< jint > * Te; + static JArray< jint > * Td; + static JArray< jbyte > * KAT_KEY; + static JArray< jbyte > * KAT_CT; + static ::java::lang::Boolean * valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Square__ diff --git a/libjava/gnu/javax/crypto/cipher/TripleDES$Context.h b/libjava/gnu/javax/crypto/cipher/TripleDES$Context.h new file mode 100644 index 00000000000..f2602150226 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/TripleDES$Context.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_TripleDES$Context__ +#define __gnu_javax_crypto_cipher_TripleDES$Context__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class DES$Context; + class TripleDES; + class TripleDES$Context; + } + } + } + } +} + +class gnu::javax::crypto::cipher::TripleDES$Context : public ::java::lang::Object +{ + + TripleDES$Context(::gnu::javax::crypto::cipher::TripleDES *); +public: // actually package-private + TripleDES$Context(::gnu::javax::crypto::cipher::TripleDES *, ::gnu::javax::crypto::cipher::TripleDES$Context *); + ::gnu::javax::crypto::cipher::DES$Context * __attribute__((aligned(__alignof__( ::java::lang::Object)))) k1; + ::gnu::javax::crypto::cipher::DES$Context * k2; + ::gnu::javax::crypto::cipher::DES$Context * k3; + ::gnu::javax::crypto::cipher::TripleDES * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_TripleDES$Context__ diff --git a/libjava/gnu/javax/crypto/cipher/TripleDES.h b/libjava/gnu/javax/crypto/cipher/TripleDES.h new file mode 100644 index 00000000000..cbe5a6c5f36 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/TripleDES.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_TripleDES__ +#define __gnu_javax_crypto_cipher_TripleDES__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class DES; + class TripleDES; + } + } + } + } +} + +class gnu::javax::crypto::cipher::TripleDES : public ::gnu::javax::crypto::cipher::BaseCipher +{ + +public: + TripleDES(); + static void adjustParity(JArray< jbyte > *, jint); + static void adjustParity(jint, JArray< jbyte > *, jint); + static jboolean isParityAdjusted(JArray< jbyte > *, jint); + static jboolean isParityAdjusted(jint, JArray< jbyte > *, jint); + virtual ::java::lang::Object * clone(); + virtual ::java::util::Iterator * blockSizes(); + virtual ::java::util::Iterator * keySizes(); + virtual ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + virtual void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + virtual void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + static const jint BLOCK_SIZE = 8; + static const jint KEY_SIZE = 24; +private: + ::gnu::javax::crypto::cipher::DES * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::cipher::BaseCipher)))) des; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_TripleDES__ diff --git a/libjava/gnu/javax/crypto/cipher/Twofish.h b/libjava/gnu/javax/crypto/cipher/Twofish.h new file mode 100644 index 00000000000..5c2d7cb9583 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/Twofish.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_Twofish__ +#define __gnu_javax_crypto_cipher_Twofish__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Twofish; + } + } + } + } +} + +class gnu::javax::crypto::cipher::Twofish : public ::gnu::javax::crypto::cipher::BaseCipher +{ + + static jint LFSR1(jint); + static jint LFSR2(jint); + static jint Mx_X(jint); + static jint Mx_Y(jint); +public: + Twofish(); +private: + static jint b0(jint); + static jint b1(jint); + static jint b2(jint); + static jint b3(jint); + static jint RS_MDS_Encode(jint, jint); + static jint RS_rem(jint); + static jint F32(jint, jint, JArray< jint > *); + static jint Fe32(JArray< jint > *, jint, jint); + static jint _b(jint, jint); +public: + ::java::lang::Object * clone(); + ::java::util::Iterator * blockSizes(); + ::java::util::Iterator * keySizes(); + ::java::lang::Object * makeKey(JArray< jbyte > *, jint); + void encrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + void decrypt(JArray< jbyte > *, jint, JArray< jbyte > *, jint, ::java::lang::Object *, jint); + jboolean selfTest(); +private: + static ::java::util::logging::Logger * log; + static const jint DEFAULT_BLOCK_SIZE = 16; + static const jint DEFAULT_KEY_SIZE = 16; + static const jint MAX_ROUNDS = 16; + static const jint ROUNDS = 16; + static const jint INPUT_WHITEN = 0; + static const jint OUTPUT_WHITEN = 4; + static const jint ROUND_SUBKEYS = 8; + static const jint SK_STEP = 33686018; + static const jint SK_BUMP = 16843009; + static const jint SK_ROTL = 9; + static JArray< ::java::lang::String * > * Pm; + static JArray< JArray< jbyte > * > * P; + static const jint P_00 = 1; + static const jint P_01 = 0; + static const jint P_02 = 0; + static const jint P_03 = 1; + static const jint P_04 = 1; + static const jint P_10 = 0; + static const jint P_11 = 0; + static const jint P_12 = 1; + static const jint P_13 = 1; + static const jint P_14 = 0; + static const jint P_20 = 1; + static const jint P_21 = 1; + static const jint P_22 = 0; + static const jint P_23 = 0; + static const jint P_24 = 0; + static const jint P_30 = 0; + static const jint P_31 = 1; + static const jint P_32 = 1; + static const jint P_33 = 0; + static const jint P_34 = 1; + static const jint GF256_FDBK_2 = 180; + static const jint GF256_FDBK_4 = 90; + static JArray< JArray< jint > * > * MDS; + static const jint RS_GF_FDBK = 333; + static JArray< jbyte > * KAT_KEY; + static JArray< jbyte > * KAT_CT; + static ::java::lang::Boolean * valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_Twofish__ diff --git a/libjava/gnu/javax/crypto/cipher/WeakKeyException.h b/libjava/gnu/javax/crypto/cipher/WeakKeyException.h new file mode 100644 index 00000000000..42d12100fa9 --- /dev/null +++ b/libjava/gnu/javax/crypto/cipher/WeakKeyException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_cipher_WeakKeyException__ +#define __gnu_javax_crypto_cipher_WeakKeyException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class WeakKeyException; + } + } + } + } +} + +class gnu::javax::crypto::cipher::WeakKeyException : public ::java::security::InvalidKeyException +{ + +public: + WeakKeyException(); + WeakKeyException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_cipher_WeakKeyException__ diff --git a/libjava/gnu/javax/crypto/jce/DiffieHellmanImpl.h b/libjava/gnu/javax/crypto/jce/DiffieHellmanImpl.h new file mode 100644 index 00000000000..3cd0578dea9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/DiffieHellmanImpl.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_DiffieHellmanImpl__ +#define __gnu_javax_crypto_jce_DiffieHellmanImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class DiffieHellmanImpl; + } + } + } + } + namespace java + { + namespace security + { + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + namespace interfaces + { + class DHPrivateKey; + } + } + } +} + +class gnu::javax::crypto::jce::DiffieHellmanImpl : public ::javax::crypto::KeyAgreementSpi +{ + +public: + DiffieHellmanImpl(); +public: // actually protected + ::java::security::Key * engineDoPhase(::java::security::Key *, jboolean); + JArray< jbyte > * engineGenerateSecret(); + jint engineGenerateSecret(JArray< jbyte > *, jint); + ::javax::crypto::SecretKey * engineGenerateSecret(::java::lang::String *); + void engineInit(::java::security::Key *, ::java::security::SecureRandom *); + void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); +private: + void reset(); + void checkState(); + ::javax::crypto::interfaces::DHPrivateKey * __attribute__((aligned(__alignof__( ::javax::crypto::KeyAgreementSpi)))) key; + JArray< jbyte > * result; + jboolean last_phase_done; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_DiffieHellmanImpl__ diff --git a/libjava/gnu/javax/crypto/jce/GnuCrypto$1.h b/libjava/gnu/javax/crypto/jce/GnuCrypto$1.h new file mode 100644 index 00000000000..2ccd2941876 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/GnuCrypto$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_GnuCrypto$1__ +#define __gnu_javax_crypto_jce_GnuCrypto$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class GnuCrypto; + class GnuCrypto$1; + } + } + } + } +} + +class gnu::javax::crypto::jce::GnuCrypto$1 : public ::java::lang::Object +{ + +public: // actually package-private + GnuCrypto$1(::gnu::javax::crypto::jce::GnuCrypto *); +public: + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::javax::crypto::jce::GnuCrypto * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_GnuCrypto$1__ diff --git a/libjava/gnu/javax/crypto/jce/GnuCrypto.h b/libjava/gnu/javax/crypto/jce/GnuCrypto.h new file mode 100644 index 00000000000..fa9cb5774f8 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/GnuCrypto.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_GnuCrypto__ +#define __gnu_javax_crypto_jce_GnuCrypto__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class GnuCrypto; + } + } + } + } +} + +class gnu::javax::crypto::jce::GnuCrypto : public ::java::security::Provider +{ + +public: + GnuCrypto(); + static ::java::util::Set * getCipherNames(); + static ::java::util::Set * getMacNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_GnuCrypto__ diff --git a/libjava/gnu/javax/crypto/jce/GnuSasl$1.h b/libjava/gnu/javax/crypto/jce/GnuSasl$1.h new file mode 100644 index 00000000000..fd07c636a3e --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/GnuSasl$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_GnuSasl$1__ +#define __gnu_javax_crypto_jce_GnuSasl$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class GnuSasl; + class GnuSasl$1; + } + } + } + } +} + +class gnu::javax::crypto::jce::GnuSasl$1 : public ::java::lang::Object +{ + +public: // actually package-private + GnuSasl$1(::gnu::javax::crypto::jce::GnuSasl *); +public: + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::javax::crypto::jce::GnuSasl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_GnuSasl$1__ diff --git a/libjava/gnu/javax/crypto/jce/GnuSasl.h b/libjava/gnu/javax/crypto/jce/GnuSasl.h new file mode 100644 index 00000000000..bf624a12a6c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/GnuSasl.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_GnuSasl__ +#define __gnu_javax_crypto_jce_GnuSasl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class GnuSasl; + } + } + } + } +} + +class gnu::javax::crypto::jce::GnuSasl : public ::java::security::Provider +{ + +public: + GnuSasl(); + static ::java::util::Set * getSaslClientMechanismNames(); + static ::java::util::Set * getSaslServerMechanismNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_GnuSasl__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.h new file mode 100644 index 00000000000..30227d8f302 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacHaval.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacHaval__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacHaval__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacHaval; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacHaval : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacHaval(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacHaval__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.h new file mode 100644 index 00000000000..4d18fa3cf6b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD2.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD2__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacMD2; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacMD2 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacMD2(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD2__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.h new file mode 100644 index 00000000000..b55a29dd0c7 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD4.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD4__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD4__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacMD4; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacMD4 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacMD4(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD4__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.h new file mode 100644 index 00000000000..2e8599cbc48 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacMD5.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD5__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacMD5; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacMD5 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacMD5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacMD5__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD128.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD128.h new file mode 100644 index 00000000000..5bfcdf369fd --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD128.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacRipeMD128__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacRipeMD128__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacRipeMD128; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacRipeMD128 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacRipeMD128(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacRipeMD128__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD160.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD160.h new file mode 100644 index 00000000000..9e058d6d474 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacRipeMD160.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacRipeMD160__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacRipeMD160__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacRipeMD160; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacRipeMD160 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacRipeMD160(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacRipeMD160__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.h new file mode 100644 index 00000000000..70529e146fc --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA1.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA1__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacSHA1; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacSHA1 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacSHA1(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA1__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.h new file mode 100644 index 00000000000..002272c8407 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA256.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA256__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA256__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacSHA256; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacSHA256 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacSHA256(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA256__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.h new file mode 100644 index 00000000000..6df181d1c0a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA384.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA384__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA384__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacSHA384; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacSHA384 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacSHA384(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA384__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.h new file mode 100644 index 00000000000..e035c279ff9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacSHA512.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA512__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA512__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacSHA512; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacSHA512 : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacSHA512(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacSHA512__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.h new file mode 100644 index 00000000000..bb08d2a96f5 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacTiger.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacTiger__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacTiger__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacTiger; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacTiger : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacTiger(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacTiger__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacWhirlpool.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacWhirlpool.h new file mode 100644 index 00000000000..4ad9b2e64a5 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory$HMacWhirlpool.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacWhirlpool__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacWhirlpool__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory$HMacWhirlpool; + } + } + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory$HMacWhirlpool : public ::gnu::javax::crypto::jce::PBKDF2SecretKeyFactory +{ + +public: + PBKDF2SecretKeyFactory$HMacWhirlpool(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory$HMacWhirlpool__ diff --git a/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.h b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.h new file mode 100644 index 00000000000..97ef99b6b35 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory__ +#define __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + class PBKDF2SecretKeyFactory; + } + } + } + } + namespace java + { + namespace security + { + namespace spec + { + class KeySpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::crypto::jce::PBKDF2SecretKeyFactory : public ::javax::crypto::SecretKeyFactorySpi +{ + +public: // actually protected + PBKDF2SecretKeyFactory(::java::lang::String *); + virtual ::javax::crypto::SecretKey * engineGenerateSecret(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::javax::crypto::SecretKey *, ::java::lang::Class *); + virtual ::javax::crypto::SecretKey * engineTranslateKey(::javax::crypto::SecretKey *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::crypto::SecretKeyFactorySpi)))) macName; +private: + static const jint DEFAULT_ITERATION_COUNT = 1000; + static const jint DEFAULT_KEY_LEN = 32; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_PBKDF2SecretKeyFactory__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.h b/libjava/gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.h new file mode 100644 index 00000000000..524f2f9b402 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_AES128KeyWrapSpi__ +#define __gnu_javax_crypto_jce_cipher_AES128KeyWrapSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class AES128KeyWrapSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::AES128KeyWrapSpi : public ::gnu::javax::crypto::jce::cipher::AESKeyWrapSpi +{ + +public: + AES128KeyWrapSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_AES128KeyWrapSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.h b/libjava/gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.h new file mode 100644 index 00000000000..b19897b29d1 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_AES192KeyWrapSpi__ +#define __gnu_javax_crypto_jce_cipher_AES192KeyWrapSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class AES192KeyWrapSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::AES192KeyWrapSpi : public ::gnu::javax::crypto::jce::cipher::AESKeyWrapSpi +{ + +public: + AES192KeyWrapSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_AES192KeyWrapSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.h b/libjava/gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.h new file mode 100644 index 00000000000..f8770058754 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_AES256KeyWrapSpi__ +#define __gnu_javax_crypto_jce_cipher_AES256KeyWrapSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class AES256KeyWrapSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::AES256KeyWrapSpi : public ::gnu::javax::crypto::jce::cipher::AESKeyWrapSpi +{ + +public: + AES256KeyWrapSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_AES256KeyWrapSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.h b/libjava/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.h new file mode 100644 index 00000000000..d20e50642d6 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_AESKeyWrapSpi__ +#define __gnu_javax_crypto_jce_cipher_AESKeyWrapSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class AESKeyWrapSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::AESKeyWrapSpi : public ::gnu::javax::crypto::jce::cipher::KeyWrappingAlgorithmAdapter +{ + +public: // actually protected + AESKeyWrapSpi(::java::lang::String *, jint, ::java::lang::String *); + virtual jint getOutputSizeForWrap(jint); + virtual jint getOutputSizeForUnwrap(jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_AESKeyWrapSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/AESSpi.h b/libjava/gnu/javax/crypto/jce/cipher/AESSpi.h new file mode 100644 index 00000000000..dd73ecca801 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/AESSpi.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_AESSpi__ +#define __gnu_javax_crypto_jce_cipher_AESSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class AESSpi; + } + } + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::cipher::AESSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + AESSpi(); +public: // actually protected + void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_AESSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/ARCFourSpi.h b/libjava/gnu/javax/crypto/jce/cipher/ARCFourSpi.h new file mode 100644 index 00000000000..677f8e9b560 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/ARCFourSpi.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_ARCFourSpi__ +#define __gnu_javax_crypto_jce_cipher_ARCFourSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class ARCFourSpi; + } + } + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::cipher::ARCFourSpi : public ::javax::crypto::CipherSpi +{ + +public: + ARCFourSpi(); +public: // actually protected + virtual jint engineGetBlockSize(); + virtual void engineSetMode(::java::lang::String *); + virtual void engineSetPadding(::java::lang::String *); + virtual JArray< jbyte > * engineGetIV(); + virtual jint engineGetOutputSize(jint); + virtual ::java::security::AlgorithmParameters * engineGetParameters(); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); + virtual JArray< jbyte > * engineUpdate(JArray< jbyte > *, jint, jint); + virtual jint engineUpdate(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * engineDoFinal(JArray< jbyte > *, jint, jint); + virtual jint engineDoFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); +private: + ::gnu::java::security::prng::IRandom * __attribute__((aligned(__alignof__( ::javax::crypto::CipherSpi)))) keystream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_ARCFourSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/AnubisSpi.h b/libjava/gnu/javax/crypto/jce/cipher/AnubisSpi.h new file mode 100644 index 00000000000..c7de4802802 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/AnubisSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_AnubisSpi__ +#define __gnu_javax_crypto_jce_cipher_AnubisSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class AnubisSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::AnubisSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + AnubisSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_AnubisSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/BlowfishSpi.h b/libjava/gnu/javax/crypto/jce/cipher/BlowfishSpi.h new file mode 100644 index 00000000000..aed783b58d7 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/BlowfishSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_BlowfishSpi__ +#define __gnu_javax_crypto_jce_cipher_BlowfishSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class BlowfishSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::BlowfishSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + BlowfishSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_BlowfishSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/Cast5Spi.h b/libjava/gnu/javax/crypto/jce/cipher/Cast5Spi.h new file mode 100644 index 00000000000..dbba171aaa2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/Cast5Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_Cast5Spi__ +#define __gnu_javax_crypto_jce_cipher_Cast5Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class Cast5Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::Cast5Spi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + Cast5Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_Cast5Spi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/CipherAdapter.h b/libjava/gnu/javax/crypto/jce/cipher/CipherAdapter.h new file mode 100644 index 00000000000..751abfe0158 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/CipherAdapter.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_CipherAdapter__ +#define __gnu_javax_crypto_jce_cipher_CipherAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace jce + { + namespace cipher + { + class CipherAdapter; + } + } + namespace mode + { + class IMode; + } + namespace pad + { + class IPad; + } + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::cipher::CipherAdapter : public ::javax::crypto::CipherSpi +{ + +public: // actually protected + CipherAdapter(::java::lang::String *, jint); + CipherAdapter(::java::lang::String *); + virtual void engineSetMode(::java::lang::String *); + virtual void engineSetPadding(::java::lang::String *); + virtual jint engineGetBlockSize(); + virtual jint engineGetOutputSize(jint); + virtual JArray< jbyte > * engineGetIV(); + virtual ::java::security::AlgorithmParameters * engineGetParameters(); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::SecureRandom *); +private: + void engineInitHandler(jint, ::java::security::Key *, ::java::security::SecureRandom *); +public: // actually protected + virtual void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); + virtual JArray< jbyte > * engineUpdate(JArray< jbyte > *, jint, jint); + virtual jint engineUpdate(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * engineDoFinal(JArray< jbyte > *, jint, jint); + virtual jint engineDoFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); +private: + void reset(); +public: // actually protected + ::gnu::javax::crypto::cipher::IBlockCipher * __attribute__((aligned(__alignof__( ::javax::crypto::CipherSpi)))) cipher; + ::gnu::javax::crypto::mode::IMode * mode; + ::gnu::javax::crypto::pad::IPad * pad; + jint keyLen; + ::java::util::Map * attributes; + JArray< jbyte > * partBlock; + jint partLen; + jint blockLen; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_CipherAdapter__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/DESSpi.h b/libjava/gnu/javax/crypto/jce/cipher/DESSpi.h new file mode 100644 index 00000000000..59a2c919c3a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/DESSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_DESSpi__ +#define __gnu_javax_crypto_jce_cipher_DESSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class DESSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::DESSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + DESSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_DESSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.h b/libjava/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.h new file mode 100644 index 00000000000..43a5a6e350d --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_KeyWrappingAlgorithmAdapter__ +#define __gnu_javax_crypto_jce_cipher_KeyWrappingAlgorithmAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class KeyWrappingAlgorithmAdapter; + } + } + namespace kwa + { + class IKeyWrappingAlgorithm; + } + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::cipher::KeyWrappingAlgorithmAdapter : public ::javax::crypto::CipherSpi +{ + +public: // actually protected + KeyWrappingAlgorithmAdapter(::java::lang::String *, jint, jint, ::java::lang::String *); + virtual JArray< jbyte > * engineWrap(::java::security::Key *); + virtual ::java::security::Key * engineUnwrap(JArray< jbyte > *, ::java::lang::String *, jint); + virtual jint engineGetBlockSize(); + virtual JArray< jbyte > * engineGetIV(); + virtual jint engineGetOutputSize(jint); + virtual ::java::security::AlgorithmParameters * engineGetParameters(); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void engineSetMode(::java::lang::String *); + virtual void engineSetPadding(::java::lang::String *); + virtual JArray< jbyte > * engineUpdate(JArray< jbyte > *, jint, jint); + virtual jint engineUpdate(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * engineDoFinal(JArray< jbyte > *, jint, jint); + virtual jint engineDoFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual jint getOutputSizeForWrap(jint); + virtual jint getOutputSizeForUnwrap(jint); +private: + void checkOpMode(jint); + JArray< jbyte > * checkAndGetKekBytes(::java::security::Key *); + void initAlgorithm(jint, JArray< jbyte > *, JArray< jbyte > *, ::java::security::SecureRandom *); + static ::java::util::logging::Logger * log; + static ::java::lang::String * NO_PADDING; +public: // actually protected + ::gnu::javax::crypto::kwa::IKeyWrappingAlgorithm * __attribute__((aligned(__alignof__( ::javax::crypto::CipherSpi)))) kwAlgorithm; + jint kwaBlockSize; + jint kwaKeySize; + ::java::lang::String * supportedMode; + jint opmode; +public: // actually package-private + JArray< jbyte > * iv; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_KeyWrappingAlgorithmAdapter__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/KhazadSpi.h b/libjava/gnu/javax/crypto/jce/cipher/KhazadSpi.h new file mode 100644 index 00000000000..76ace5867e1 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/KhazadSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_KhazadSpi__ +#define __gnu_javax_crypto_jce_cipher_KhazadSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class KhazadSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::KhazadSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + KhazadSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_KhazadSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/NullCipherSpi.h b/libjava/gnu/javax/crypto/jce/cipher/NullCipherSpi.h new file mode 100644 index 00000000000..62c4749c50f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/NullCipherSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_NullCipherSpi__ +#define __gnu_javax_crypto_jce_cipher_NullCipherSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class NullCipherSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::NullCipherSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + NullCipherSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_NullCipherSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$AES.h new file mode 100644 index 00000000000..eb6bb4cd19a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Anubis.h new file mode 100644 index 00000000000..c90eb389985 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Blowfish.h new file mode 100644 index 00000000000..c370b08db6a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Cast5.h new file mode 100644 index 00000000000..6252b4b3488 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$DES.h new file mode 100644 index 00000000000..57eab6c4d8e --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Khazad.h new file mode 100644 index 00000000000..cbec0119876 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Serpent.h new file mode 100644 index 00000000000..242887a8f6c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Square.h new file mode 100644 index 00000000000..e81b65b1f09 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$TripleDES.h new file mode 100644 index 00000000000..1c4787f290f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Twofish.h new file mode 100644 index 00000000000..42cd2c2b450 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacHaval +{ + +public: + PBES2$HMacHaval$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.h new file mode 100644 index 00000000000..96473880609 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacHaval.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacHaval; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacHaval : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacHaval(::java::lang::String *, jint); + PBES2$HMacHaval(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacHaval__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$AES.h new file mode 100644 index 00000000000..d8dc2947015 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.h new file mode 100644 index 00000000000..777337be155 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Blowfish.h new file mode 100644 index 00000000000..a4874de7a64 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.h new file mode 100644 index 00000000000..e89caead40b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$DES.h new file mode 100644 index 00000000000..8d1788e8ab4 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.h new file mode 100644 index 00000000000..1385a24b1a2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Serpent.h new file mode 100644 index 00000000000..b56ce910b82 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Square.h new file mode 100644 index 00000000000..18b4f2646b9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$TripleDES.h new file mode 100644 index 00000000000..925414bf6a9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Twofish.h new file mode 100644 index 00000000000..1299150f977 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 +{ + +public: + PBES2$HMacMD2$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.h new file mode 100644 index 00000000000..50db50fa6e9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD2.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD2; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD2 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacMD2(::java::lang::String *, jint); + PBES2$HMacMD2(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD2__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$AES.h new file mode 100644 index 00000000000..205e01ee0e1 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.h new file mode 100644 index 00000000000..8d03850489d --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Blowfish.h new file mode 100644 index 00000000000..a5a2b230880 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.h new file mode 100644 index 00000000000..8727bc74634 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$DES.h new file mode 100644 index 00000000000..10e3c7eea95 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.h new file mode 100644 index 00000000000..8bf6693389b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Serpent.h new file mode 100644 index 00000000000..5c921229c63 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Square.h new file mode 100644 index 00000000000..a14ef595eb1 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$TripleDES.h new file mode 100644 index 00000000000..851eedfda1b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Twofish.h new file mode 100644 index 00000000000..fe69d0d89ac --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 +{ + +public: + PBES2$HMacMD4$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.h new file mode 100644 index 00000000000..95d6018ae32 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD4.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD4; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD4 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacMD4(::java::lang::String *, jint); + PBES2$HMacMD4(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD4__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$AES.h new file mode 100644 index 00000000000..0e51830bcd0 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.h new file mode 100644 index 00000000000..758d607d209 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Blowfish.h new file mode 100644 index 00000000000..66546b8edf2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.h new file mode 100644 index 00000000000..cc38df76f38 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$DES.h new file mode 100644 index 00000000000..14d6581df3d --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.h new file mode 100644 index 00000000000..1e3ee6cde38 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Serpent.h new file mode 100644 index 00000000000..2678cb2caa8 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Square.h new file mode 100644 index 00000000000..212cfac15a0 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$TripleDES.h new file mode 100644 index 00000000000..9e7feddd13f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Twofish.h new file mode 100644 index 00000000000..59933417c0a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 +{ + +public: + PBES2$HMacMD5$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.h new file mode 100644 index 00000000000..27467b8ac18 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacMD5.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacMD5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacMD5 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacMD5(::java::lang::String *, jint); + PBES2$HMacMD5(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacMD5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$AES.h new file mode 100644 index 00000000000..4accfd63e9b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.h new file mode 100644 index 00000000000..dd5773e93ad --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Blowfish.h new file mode 100644 index 00000000000..ea8859b069f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.h new file mode 100644 index 00000000000..8874aa0f17b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$DES.h new file mode 100644 index 00000000000..db5b01bb8c9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.h new file mode 100644 index 00000000000..128eb9cf3b7 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Serpent.h new file mode 100644 index 00000000000..266eb25ef9b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Square.h new file mode 100644 index 00000000000..7bcacce886c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$TripleDES.h new file mode 100644 index 00000000000..172cb92e228 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Twofish.h new file mode 100644 index 00000000000..77ca273c56c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 +{ + +public: + PBES2$HMacRipeMD128$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128.h new file mode 100644 index 00000000000..db5652b5893 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD128.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD128; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD128 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacRipeMD128(::java::lang::String *, jint); + PBES2$HMacRipeMD128(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD128__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$AES.h new file mode 100644 index 00000000000..a5c78d3348f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.h new file mode 100644 index 00000000000..d5fb9ee5ca2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Blowfish.h new file mode 100644 index 00000000000..72d6031130b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.h new file mode 100644 index 00000000000..9c0119beaf7 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$DES.h new file mode 100644 index 00000000000..37045f28930 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.h new file mode 100644 index 00000000000..e0a3b3f136a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Serpent.h new file mode 100644 index 00000000000..e3fa0861951 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Square.h new file mode 100644 index 00000000000..6d820e5e446 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$TripleDES.h new file mode 100644 index 00000000000..40518b14719 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Twofish.h new file mode 100644 index 00000000000..f2beac4eb46 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 +{ + +public: + PBES2$HMacRipeMD160$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160.h new file mode 100644 index 00000000000..416db1df6cb --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacRipeMD160.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacRipeMD160; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacRipeMD160 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacRipeMD160(::java::lang::String *, jint); + PBES2$HMacRipeMD160(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacRipeMD160__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.h new file mode 100644 index 00000000000..35f84425c90 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Anubis.h new file mode 100644 index 00000000000..52cbbeb0f42 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.h new file mode 100644 index 00000000000..9352b8d52b6 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.h new file mode 100644 index 00000000000..c84c600b0dd --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.h new file mode 100644 index 00000000000..2eb4abf1faa --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Khazad.h new file mode 100644 index 00000000000..9b747864077 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Serpent.h new file mode 100644 index 00000000000..c8af0ca28f5 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Square.h new file mode 100644 index 00000000000..a3f55daa1f2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.h new file mode 100644 index 00000000000..3f629b2058d --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Twofish.h new file mode 100644 index 00000000000..3bda01a27c4 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 +{ + +public: + PBES2$HMacSHA1$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.h new file mode 100644 index 00000000000..06e4c964f38 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA1.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA1; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA1 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacSHA1(::java::lang::String *, jint); + PBES2$HMacSHA1(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA1__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.h new file mode 100644 index 00000000000..523bb3a63c3 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Anubis.h new file mode 100644 index 00000000000..28fa73d7aed --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.h new file mode 100644 index 00000000000..ab4b62b5913 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Cast5.h new file mode 100644 index 00000000000..a8edc0c73c0 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.h new file mode 100644 index 00000000000..4812a26ff40 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Khazad.h new file mode 100644 index 00000000000..04221e0eef8 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Serpent.h new file mode 100644 index 00000000000..69f68c5c828 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Square.h new file mode 100644 index 00000000000..30a4207a9d9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.h new file mode 100644 index 00000000000..e05e6bc1bc1 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Twofish.h new file mode 100644 index 00000000000..9e8b2c632d2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 +{ + +public: + PBES2$HMacSHA256$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.h new file mode 100644 index 00000000000..7771d0b64d1 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA256.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA256; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA256 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacSHA256(::java::lang::String *, jint); + PBES2$HMacSHA256(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA256__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.h new file mode 100644 index 00000000000..8b32b776fe5 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Anubis.h new file mode 100644 index 00000000000..6818d600def --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.h new file mode 100644 index 00000000000..80cf46574ff --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Cast5.h new file mode 100644 index 00000000000..6d8e4797c89 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.h new file mode 100644 index 00000000000..c0a597ea6b7 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Khazad.h new file mode 100644 index 00000000000..3444db06624 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Serpent.h new file mode 100644 index 00000000000..3bb0a1c43d3 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Square.h new file mode 100644 index 00000000000..2b8b4c31038 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.h new file mode 100644 index 00000000000..a5388f0b133 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Twofish.h new file mode 100644 index 00000000000..5b849efbadc --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 +{ + +public: + PBES2$HMacSHA384$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.h new file mode 100644 index 00000000000..1bdf6807d6a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA384.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA384; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA384 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacSHA384(::java::lang::String *, jint); + PBES2$HMacSHA384(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA384__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.h new file mode 100644 index 00000000000..f338e2d9a36 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Anubis.h new file mode 100644 index 00000000000..1ff4f701a93 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.h new file mode 100644 index 00000000000..fada5cb87bc --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Cast5.h new file mode 100644 index 00000000000..9ecaadfb988 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.h new file mode 100644 index 00000000000..466ccf0dde4 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Khazad.h new file mode 100644 index 00000000000..f342c6938fe --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Serpent.h new file mode 100644 index 00000000000..1c393d07e2d --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Square.h new file mode 100644 index 00000000000..f2f5601a64f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.h new file mode 100644 index 00000000000..14b4b15cbbc --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Twofish.h new file mode 100644 index 00000000000..d492efc2078 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 +{ + +public: + PBES2$HMacSHA512$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.h new file mode 100644 index 00000000000..f1db51acd89 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacSHA512.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacSHA512; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacSHA512 : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacSHA512(::java::lang::String *, jint); + PBES2$HMacSHA512(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacSHA512__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$AES.h new file mode 100644 index 00000000000..baa9f27c167 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Anubis.h new file mode 100644 index 00000000000..bce1ed801af --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Blowfish.h new file mode 100644 index 00000000000..6e0bfe238c0 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Cast5.h new file mode 100644 index 00000000000..d171bdf1dd0 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$DES.h new file mode 100644 index 00000000000..a6ff7997093 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Khazad.h new file mode 100644 index 00000000000..15162434d54 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Serpent.h new file mode 100644 index 00000000000..e7e49e51736 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Square.h new file mode 100644 index 00000000000..052f90242b5 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$TripleDES.h new file mode 100644 index 00000000000..3477866e273 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Twofish.h new file mode 100644 index 00000000000..b9a62a8a2bb --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacTiger +{ + +public: + PBES2$HMacTiger$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.h new file mode 100644 index 00000000000..2b1ca594107 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacTiger.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacTiger; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacTiger : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacTiger(::java::lang::String *, jint); + PBES2$HMacTiger(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacTiger__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$AES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$AES.h new file mode 100644 index 00000000000..c2f5d6b42c2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$AES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$AES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$AES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$AES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$AES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$AES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$AES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.h new file mode 100644 index 00000000000..c8fd00f1e94 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Anubis.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Anubis__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$Anubis : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$Anubis(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Blowfish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Blowfish.h new file mode 100644 index 00000000000..03f922f236b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Blowfish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Blowfish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$Blowfish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$Blowfish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.h new file mode 100644 index 00000000000..f9037b2589e --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Cast5.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Cast5__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$Cast5 : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$Cast5(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$DES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$DES.h new file mode 100644 index 00000000000..788ad9daba3 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$DES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$DES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$DES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$DES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$DES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.h new file mode 100644 index 00000000000..7738c886400 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Khazad.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Khazad__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$Khazad : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$Khazad(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Serpent.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Serpent.h new file mode 100644 index 00000000000..2d53d0b7cb1 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Serpent.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Serpent__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$Serpent : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$Serpent(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Square.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Square.h new file mode 100644 index 00000000000..ca4bb7f078e --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Square.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Square__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$Square : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$Square(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Square__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$TripleDES.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$TripleDES.h new file mode 100644 index 00000000000..9a58b29f207 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$TripleDES.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$TripleDES__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$TripleDES : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$TripleDES(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Twofish.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Twofish.h new file mode 100644 index 00000000000..8cb59ebafdc --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool$Twofish.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Twofish__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool$Twofish : public ::gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool +{ + +public: + PBES2$HMacWhirlpool$Twofish(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool.h new file mode 100644 index 00000000000..d420db0ead6 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2$HMacWhirlpool.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool__ +#define __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2$HMacWhirlpool; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2$HMacWhirlpool : public ::gnu::javax::crypto::jce::cipher::PBES2 +{ + +public: + PBES2$HMacWhirlpool(::java::lang::String *, jint); + PBES2$HMacWhirlpool(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2$HMacWhirlpool__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/PBES2.h b/libjava/gnu/javax/crypto/jce/cipher/PBES2.h new file mode 100644 index 00000000000..15042c2287a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/PBES2.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_PBES2__ +#define __gnu_javax_crypto_jce_cipher_PBES2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class PBES2; + } + } + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class PBEKey; + } + namespace spec + { + class SecretKeySpec; + } + } + } +} + +class gnu::javax::crypto::jce::cipher::PBES2 : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: // actually protected + PBES2(::java::lang::String *, jint, ::java::lang::String *); + PBES2(::java::lang::String *, ::java::lang::String *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); +private: + ::javax::crypto::spec::SecretKeySpec * genkey(::javax::crypto::interfaces::PBEKey *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::cipher::CipherAdapter)))) macName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_PBES2__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/RijndaelSpi.h b/libjava/gnu/javax/crypto/jce/cipher/RijndaelSpi.h new file mode 100644 index 00000000000..6d13b2b7816 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/RijndaelSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_RijndaelSpi__ +#define __gnu_javax_crypto_jce_cipher_RijndaelSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class RijndaelSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::RijndaelSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + RijndaelSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_RijndaelSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/SerpentSpi.h b/libjava/gnu/javax/crypto/jce/cipher/SerpentSpi.h new file mode 100644 index 00000000000..a7934c59e0a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/SerpentSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_SerpentSpi__ +#define __gnu_javax_crypto_jce_cipher_SerpentSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class SerpentSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::SerpentSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + SerpentSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_SerpentSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/SquareSpi.h b/libjava/gnu/javax/crypto/jce/cipher/SquareSpi.h new file mode 100644 index 00000000000..9fb25ca9c0b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/SquareSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_SquareSpi__ +#define __gnu_javax_crypto_jce_cipher_SquareSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class SquareSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::SquareSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + SquareSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_SquareSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.h b/libjava/gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.h new file mode 100644 index 00000000000..7fcb2fdfd4e --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_TripleDESKeyWrapSpi__ +#define __gnu_javax_crypto_jce_cipher_TripleDESKeyWrapSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class TripleDESKeyWrapSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::TripleDESKeyWrapSpi : public ::gnu::javax::crypto::jce::cipher::KeyWrappingAlgorithmAdapter +{ + +public: + TripleDESKeyWrapSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_TripleDESKeyWrapSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/TripleDESSpi.h b/libjava/gnu/javax/crypto/jce/cipher/TripleDESSpi.h new file mode 100644 index 00000000000..fc5eb29899a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/TripleDESSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_TripleDESSpi__ +#define __gnu_javax_crypto_jce_cipher_TripleDESSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class TripleDESSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::TripleDESSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + TripleDESSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_TripleDESSpi__ diff --git a/libjava/gnu/javax/crypto/jce/cipher/TwofishSpi.h b/libjava/gnu/javax/crypto/jce/cipher/TwofishSpi.h new file mode 100644 index 00000000000..ff0caf6a663 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/cipher/TwofishSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_cipher_TwofishSpi__ +#define __gnu_javax_crypto_jce_cipher_TwofishSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace cipher + { + class TwofishSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::cipher::TwofishSpi : public ::gnu::javax::crypto::jce::cipher::CipherAdapter +{ + +public: + TwofishSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_cipher_TwofishSpi__ diff --git a/libjava/gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.h new file mode 100644 index 00000000000..d961e5f0246 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_AnubisKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_AnubisKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class AnubisKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::AnubisKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + AnubisKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_AnubisKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..98d4e3f20fb --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_AnubisSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_AnubisSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class AnubisSecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::AnubisSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + AnubisSecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_AnubisSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.h new file mode 100644 index 00000000000..28a40ee4a7f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_BlowfishKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_BlowfishKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class BlowfishKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::BlowfishKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + BlowfishKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_BlowfishKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..d88dcde83e0 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_BlowfishSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_BlowfishSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class BlowfishSecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::BlowfishSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + BlowfishSecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_BlowfishSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.h new file mode 100644 index 00000000000..6dab8fe7d52 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_Cast5KeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_Cast5KeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class Cast5KeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::Cast5KeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + Cast5KeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_Cast5KeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.h new file mode 100644 index 00000000000..8f5b7b84453 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_Cast5SecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_Cast5SecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class Cast5SecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::Cast5SecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + Cast5SecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_Cast5SecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.h new file mode 100644 index 00000000000..59f82ea35f9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_DESKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_DESKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class DESKeyGeneratorImpl; + } + } + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::crypto::jce::key::DESKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + DESKeyGeneratorImpl(); +public: // actually protected + virtual ::javax::crypto::SecretKey * engineGenerateKey(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_DESKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..1886826e4fa --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_DESSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_DESSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class DESSecretKeyFactoryImpl; + } + } + } + } + } + namespace java + { + namespace security + { + namespace spec + { + class KeySpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::crypto::jce::key::DESSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + DESSecretKeyFactoryImpl(); +public: // actually protected + virtual ::javax::crypto::SecretKey * engineGenerateSecret(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::javax::crypto::SecretKey *, ::java::lang::Class *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_DESSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..2521a3fc842 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_DESedeSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_DESedeSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class DESedeSecretKeyFactoryImpl; + } + } + } + } + } + namespace java + { + namespace security + { + namespace spec + { + class KeySpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::crypto::jce::key::DESedeSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + DESedeSecretKeyFactoryImpl(); +public: // actually protected + virtual ::javax::crypto::SecretKey * engineGenerateSecret(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::javax::crypto::SecretKey *, ::java::lang::Class *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_DESedeSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.h new file mode 100644 index 00000000000..732e311b656 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_KhazadKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_KhazadKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class KhazadKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::KhazadKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + KhazadKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_KhazadKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..258fae3ff43 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_KhazadSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_KhazadSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class KhazadSecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::KhazadSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + KhazadSecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_KhazadSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.h new file mode 100644 index 00000000000..698a08dead2 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_RijndaelKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_RijndaelKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class RijndaelKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::RijndaelKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + RijndaelKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_RijndaelKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..f97734e7740 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_RijndaelSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_RijndaelSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class RijndaelSecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::RijndaelSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + RijndaelSecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_RijndaelSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.h new file mode 100644 index 00000000000..87b5e58d787 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_SecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_SecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class SecretKeyFactoryImpl; + } + } + } + } + } + namespace java + { + namespace security + { + namespace spec + { + class KeySpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::crypto::jce::key::SecretKeyFactoryImpl : public ::javax::crypto::SecretKeyFactorySpi +{ + +public: // actually protected + SecretKeyFactoryImpl(); + virtual ::javax::crypto::SecretKey * engineGenerateSecret(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::javax::crypto::SecretKey *, ::java::lang::Class *); + virtual ::javax::crypto::SecretKey * engineTranslateKey(::javax::crypto::SecretKey *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_SecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.h new file mode 100644 index 00000000000..9658a14e878 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_SecretKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_SecretKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class SecretKeyGeneratorImpl; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl : public ::javax::crypto::KeyGeneratorSpi +{ + +public: // actually protected + SecretKeyGeneratorImpl(::java::lang::String *); + virtual ::javax::crypto::SecretKey * engineGenerateKey(); + virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void engineInit(jint, ::java::security::SecureRandom *); + virtual void engineInit(::java::security::SecureRandom *); + jint __attribute__((aligned(__alignof__( ::javax::crypto::KeyGeneratorSpi)))) defaultKeySize; + ::java::util::List * keySizes; + ::java::lang::String * algorithm; + jboolean init; + jint currentKeySize; + ::java::security::SecureRandom * random; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_SecretKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.h new file mode 100644 index 00000000000..e74ccf64d84 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_SerpentKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_SerpentKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class SerpentKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::SerpentKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + SerpentKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_SerpentKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..1d63cfafa81 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_SerpentSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_SerpentSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class SerpentSecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::SerpentSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + SerpentSecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_SerpentSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.h new file mode 100644 index 00000000000..a3a34ea372c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_SquareKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_SquareKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class SquareKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::SquareKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + SquareKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_SquareKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..36ea771691e --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_SquareSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_SquareSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class SquareSecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::SquareSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + SquareSecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_SquareSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.h new file mode 100644 index 00000000000..535df833760 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_TripleDESKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_TripleDESKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class TripleDESKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::TripleDESKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + TripleDESKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_TripleDESKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.h b/libjava/gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.h new file mode 100644 index 00000000000..aa31ef4336b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_TwofishKeyGeneratorImpl__ +#define __gnu_javax_crypto_jce_key_TwofishKeyGeneratorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class TwofishKeyGeneratorImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::TwofishKeyGeneratorImpl : public ::gnu::javax::crypto::jce::key::SecretKeyGeneratorImpl +{ + +public: + TwofishKeyGeneratorImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_TwofishKeyGeneratorImpl__ diff --git a/libjava/gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.h b/libjava/gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.h new file mode 100644 index 00000000000..13fad905af5 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_key_TwofishSecretKeyFactoryImpl__ +#define __gnu_javax_crypto_jce_key_TwofishSecretKeyFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace key + { + class TwofishSecretKeyFactoryImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::key::TwofishSecretKeyFactoryImpl : public ::gnu::javax::crypto::jce::key::SecretKeyFactoryImpl +{ + +public: + TwofishSecretKeyFactoryImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_key_TwofishSecretKeyFactoryImpl__ diff --git a/libjava/gnu/javax/crypto/jce/keyring/GnuKeyring.h b/libjava/gnu/javax/crypto/jce/keyring/GnuKeyring.h new file mode 100644 index 00000000000..4f9b6f90e21 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/keyring/GnuKeyring.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_keyring_GnuKeyring__ +#define __gnu_javax_crypto_jce_keyring_GnuKeyring__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace keyring + { + class GnuKeyring; + } + } + namespace keyring + { + class IKeyring; + class IPrivateKeyring; + class IPublicKeyring; + } + } + } + } + namespace java + { + namespace security + { + class Key; + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::crypto::jce::keyring::GnuKeyring : public ::java::security::KeyStoreSpi +{ + +public: + GnuKeyring(); + virtual ::java::util::Enumeration * engineAliases(); + virtual jboolean engineContainsAlias(::java::lang::String *); + virtual void engineDeleteEntry(::java::lang::String *); + virtual ::java::security::cert::Certificate * engineGetCertificate(::java::lang::String *); + virtual ::java::lang::String * engineGetCertificateAlias(::java::security::cert::Certificate *); + virtual void engineSetCertificateEntry(::java::lang::String *, ::java::security::cert::Certificate *); + virtual JArray< ::java::security::cert::Certificate * > * engineGetCertificateChain(::java::lang::String *); + virtual ::java::util::Date * engineGetCreationDate(::java::lang::String *); + virtual ::java::security::Key * engineGetKey(::java::lang::String *, JArray< jchar > *); + virtual void engineSetKeyEntry(::java::lang::String *, ::java::security::Key *, JArray< jchar > *, JArray< ::java::security::cert::Certificate * > *); + virtual void engineSetKeyEntry(::java::lang::String *, JArray< jbyte > *, JArray< ::java::security::cert::Certificate * > *); + virtual jboolean engineIsCertificateEntry(::java::lang::String *); + virtual jboolean engineIsKeyEntry(::java::lang::String *); + virtual void engineLoad(::java::io::InputStream *, JArray< jchar > *); + virtual void engineStore(::java::io::OutputStream *, JArray< jchar > *); + virtual jint engineSize(); +private: + void ensureLoaded(); + void loadPrivateKeyring(::java::io::InputStream *, JArray< jchar > *); + void loadPublicKeyring(::java::io::InputStream *, JArray< jchar > *); + ::java::util::Date * getCreationDate(::java::lang::String *, ::gnu::javax::crypto::keyring::IKeyring *); + void createNewKeyrings(); + static ::java::util::logging::Logger * log; + static ::java::lang::String * NOT_LOADED; + jboolean __attribute__((aligned(__alignof__( ::java::security::KeyStoreSpi)))) loaded; + ::gnu::javax::crypto::keyring::IPrivateKeyring * privateKR; + ::gnu::javax::crypto::keyring::IPublicKeyring * publicKR; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_keyring_GnuKeyring__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacHavalSpi.h b/libjava/gnu/javax/crypto/jce/mac/HMacHavalSpi.h new file mode 100644 index 00000000000..4f5af339b70 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacHavalSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacHavalSpi__ +#define __gnu_javax_crypto_jce_mac_HMacHavalSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacHavalSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacHavalSpi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacHavalSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacHavalSpi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacMD2Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacMD2Spi.h new file mode 100644 index 00000000000..c584ddb5530 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacMD2Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacMD2Spi__ +#define __gnu_javax_crypto_jce_mac_HMacMD2Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacMD2Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacMD2Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacMD2Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacMD2Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacMD4Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacMD4Spi.h new file mode 100644 index 00000000000..7cf2e14dc1a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacMD4Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacMD4Spi__ +#define __gnu_javax_crypto_jce_mac_HMacMD4Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacMD4Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacMD4Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacMD4Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacMD4Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacMD5Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacMD5Spi.h new file mode 100644 index 00000000000..dd54fe25784 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacMD5Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacMD5Spi__ +#define __gnu_javax_crypto_jce_mac_HMacMD5Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacMD5Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacMD5Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacMD5Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacMD5Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.h new file mode 100644 index 00000000000..195cf966779 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacRipeMD128Spi__ +#define __gnu_javax_crypto_jce_mac_HMacRipeMD128Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacRipeMD128Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacRipeMD128Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacRipeMD128Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacRipeMD128Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.h new file mode 100644 index 00000000000..43dc02640ba --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacRipeMD160Spi__ +#define __gnu_javax_crypto_jce_mac_HMacRipeMD160Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacRipeMD160Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacRipeMD160Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacRipeMD160Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacRipeMD160Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacSHA160Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacSHA160Spi.h new file mode 100644 index 00000000000..83682077b1d --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacSHA160Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacSHA160Spi__ +#define __gnu_javax_crypto_jce_mac_HMacSHA160Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacSHA160Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacSHA160Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacSHA160Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacSHA160Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacSHA256Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacSHA256Spi.h new file mode 100644 index 00000000000..5ec8ab05e7a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacSHA256Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacSHA256Spi__ +#define __gnu_javax_crypto_jce_mac_HMacSHA256Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacSHA256Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacSHA256Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacSHA256Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacSHA256Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacSHA384Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacSHA384Spi.h new file mode 100644 index 00000000000..2f6dbd9a8b9 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacSHA384Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacSHA384Spi__ +#define __gnu_javax_crypto_jce_mac_HMacSHA384Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacSHA384Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacSHA384Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacSHA384Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacSHA384Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacSHA512Spi.h b/libjava/gnu/javax/crypto/jce/mac/HMacSHA512Spi.h new file mode 100644 index 00000000000..af69a4ebb4a --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacSHA512Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacSHA512Spi__ +#define __gnu_javax_crypto_jce_mac_HMacSHA512Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacSHA512Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacSHA512Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacSHA512Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacSHA512Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacTigerSpi.h b/libjava/gnu/javax/crypto/jce/mac/HMacTigerSpi.h new file mode 100644 index 00000000000..c085185b84f --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacTigerSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacTigerSpi__ +#define __gnu_javax_crypto_jce_mac_HMacTigerSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacTigerSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacTigerSpi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacTigerSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacTigerSpi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.h b/libjava/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.h new file mode 100644 index 00000000000..102ce5173b5 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_HMacWhirlpoolSpi__ +#define __gnu_javax_crypto_jce_mac_HMacWhirlpoolSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class HMacWhirlpoolSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::HMacWhirlpoolSpi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + HMacWhirlpoolSpi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_HMacWhirlpoolSpi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/MacAdapter.h b/libjava/gnu/javax/crypto/jce/mac/MacAdapter.h new file mode 100644 index 00000000000..1d4cadde724 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/MacAdapter.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_MacAdapter__ +#define __gnu_javax_crypto_jce_mac_MacAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class MacAdapter; + } + } + namespace mac + { + class IMac; + } + } + } + } + namespace java + { + namespace security + { + class Key; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::mac::MacAdapter : public ::javax::crypto::MacSpi +{ + +public: // actually protected + MacAdapter(::java::lang::String *); +private: + MacAdapter(::gnu::javax::crypto::mac::IMac *, ::java::util::Map *); +public: + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual JArray< jbyte > * engineDoFinal(); + virtual jint engineGetMacLength(); + virtual void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); + virtual void engineReset(); + virtual void engineUpdate(jbyte); + virtual void engineUpdate(JArray< jbyte > *, jint, jint); + ::gnu::javax::crypto::mac::IMac * __attribute__((aligned(__alignof__( ::javax::crypto::MacSpi)))) mac; + ::java::util::Map * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_MacAdapter__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacAnubisImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacAnubisImpl.h new file mode 100644 index 00000000000..958181598e8 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacAnubisImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacAnubisImpl__ +#define __gnu_javax_crypto_jce_mac_OMacAnubisImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacAnubisImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacAnubisImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacAnubisImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacAnubisImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacBlowfishImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacBlowfishImpl.h new file mode 100644 index 00000000000..76e69d2ce9c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacBlowfishImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacBlowfishImpl__ +#define __gnu_javax_crypto_jce_mac_OMacBlowfishImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacBlowfishImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacBlowfishImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacBlowfishImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacBlowfishImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacCast5Impl.h b/libjava/gnu/javax/crypto/jce/mac/OMacCast5Impl.h new file mode 100644 index 00000000000..9308b254e18 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacCast5Impl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacCast5Impl__ +#define __gnu_javax_crypto_jce_mac_OMacCast5Impl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacCast5Impl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacCast5Impl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacCast5Impl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacCast5Impl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacDESImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacDESImpl.h new file mode 100644 index 00000000000..614e64503bd --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacDESImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacDESImpl__ +#define __gnu_javax_crypto_jce_mac_OMacDESImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacDESImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacDESImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacDESImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacDESImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.h new file mode 100644 index 00000000000..6eacd2dae8b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Anubis.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Anubis__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Anubis__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Anubis; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Anubis : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Anubis(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Anubis__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.h new file mode 100644 index 00000000000..597aefae411 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Blowfish.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Blowfish__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Blowfish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Blowfish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Blowfish : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Blowfish(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Blowfish__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.h new file mode 100644 index 00000000000..65b6f9d7995 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Cast5.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Cast5__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Cast5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Cast5; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Cast5 : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Cast5(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Cast5__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$DES.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$DES.h new file mode 100644 index 00000000000..e5945e4ccd3 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$DES.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$DES__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$DES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$DES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$DES : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$DES(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$DES__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.h new file mode 100644 index 00000000000..e15074a3a66 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Khazad.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Khazad__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Khazad__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Khazad; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Khazad : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Khazad(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Khazad__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.h new file mode 100644 index 00000000000..e337ef96b24 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Rijndael.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Rijndael__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Rijndael__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Rijndael; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Rijndael : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Rijndael(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Rijndael__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Serpent.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Serpent.h new file mode 100644 index 00000000000..8e5b0640cf4 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Serpent.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Serpent__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Serpent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Serpent; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Serpent : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Serpent(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Serpent__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Square.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Square.h new file mode 100644 index 00000000000..0f90c75b34c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Square.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Square__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Square__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Square; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Square : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Square(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Square__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.h new file mode 100644 index 00000000000..0b7d3d9e2fe --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$TripleDES.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$TripleDES__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$TripleDES__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$TripleDES; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$TripleDES : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$TripleDES(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$TripleDES__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Twofish.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Twofish.h new file mode 100644 index 00000000000..c398f3de4cc --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl$Twofish.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl$Twofish__ +#define __gnu_javax_crypto_jce_mac_OMacImpl$Twofish__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + class OMacImpl$Twofish; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl$Twofish : public ::gnu::javax::crypto::jce::mac::OMacImpl +{ + +public: + OMacImpl$Twofish(::gnu::javax::crypto::jce::mac::OMacImpl *); +public: // actually package-private + ::gnu::javax::crypto::jce::mac::OMacImpl * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::jce::mac::OMacImpl)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl$Twofish__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacImpl.h new file mode 100644 index 00000000000..fce8e1ad0d7 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacImpl.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacImpl__ +#define __gnu_javax_crypto_jce_mac_OMacImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: // actually protected + OMacImpl(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacKhazadImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacKhazadImpl.h new file mode 100644 index 00000000000..8177906460b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacKhazadImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacKhazadImpl__ +#define __gnu_javax_crypto_jce_mac_OMacKhazadImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacKhazadImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacKhazadImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacKhazadImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacKhazadImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacRijndaelImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacRijndaelImpl.h new file mode 100644 index 00000000000..d785945f750 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacRijndaelImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacRijndaelImpl__ +#define __gnu_javax_crypto_jce_mac_OMacRijndaelImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacRijndaelImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacRijndaelImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacRijndaelImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacRijndaelImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacSerpentImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacSerpentImpl.h new file mode 100644 index 00000000000..d5a2f4cfd3c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacSerpentImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacSerpentImpl__ +#define __gnu_javax_crypto_jce_mac_OMacSerpentImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacSerpentImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacSerpentImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacSerpentImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacSerpentImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacSquareImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacSquareImpl.h new file mode 100644 index 00000000000..b7952b33e05 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacSquareImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacSquareImpl__ +#define __gnu_javax_crypto_jce_mac_OMacSquareImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacSquareImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacSquareImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacSquareImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacSquareImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacTripleDESImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacTripleDESImpl.h new file mode 100644 index 00000000000..1c907e1d0f4 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacTripleDESImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacTripleDESImpl__ +#define __gnu_javax_crypto_jce_mac_OMacTripleDESImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacTripleDESImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacTripleDESImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacTripleDESImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacTripleDESImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/OMacTwofishImpl.h b/libjava/gnu/javax/crypto/jce/mac/OMacTwofishImpl.h new file mode 100644 index 00000000000..24189f07983 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/OMacTwofishImpl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_OMacTwofishImpl__ +#define __gnu_javax_crypto_jce_mac_OMacTwofishImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class OMacTwofishImpl; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::OMacTwofishImpl : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + OMacTwofishImpl(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_OMacTwofishImpl__ diff --git a/libjava/gnu/javax/crypto/jce/mac/TMMH16Spi.h b/libjava/gnu/javax/crypto/jce/mac/TMMH16Spi.h new file mode 100644 index 00000000000..e707008740d --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/TMMH16Spi.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_TMMH16Spi__ +#define __gnu_javax_crypto_jce_mac_TMMH16Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class TMMH16Spi; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::mac::TMMH16Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + TMMH16Spi(); +public: // actually protected + void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_TMMH16Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/UHash32Spi.h b/libjava/gnu/javax/crypto/jce/mac/UHash32Spi.h new file mode 100644 index 00000000000..67449d49556 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/UHash32Spi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_UHash32Spi__ +#define __gnu_javax_crypto_jce_mac_UHash32Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class UHash32Spi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::mac::UHash32Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + UHash32Spi(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_UHash32Spi__ diff --git a/libjava/gnu/javax/crypto/jce/mac/UMac32Spi.h b/libjava/gnu/javax/crypto/jce/mac/UMac32Spi.h new file mode 100644 index 00000000000..37daf31f82c --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/mac/UMac32Spi.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_mac_UMac32Spi__ +#define __gnu_javax_crypto_jce_mac_UMac32Spi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace mac + { + class UMac32Spi; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::mac::UMac32Spi : public ::gnu::javax::crypto::jce::mac::MacAdapter +{ + +public: + UMac32Spi(); +public: // actually protected + void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_mac_UMac32Spi__ diff --git a/libjava/gnu/javax/crypto/jce/params/BlockCipherParameters.h b/libjava/gnu/javax/crypto/jce/params/BlockCipherParameters.h new file mode 100644 index 00000000000..8a506c0cbdc --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/params/BlockCipherParameters.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_params_BlockCipherParameters__ +#define __gnu_javax_crypto_jce_params_BlockCipherParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace params + { + class BlockCipherParameters; + } + namespace spec + { + class BlockCipherParameterSpec; + } + } + } + } + } + namespace java + { + namespace security + { + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::params::BlockCipherParameters : public ::java::security::AlgorithmParametersSpi +{ + +public: + BlockCipherParameters(); +public: // actually protected + virtual JArray< jbyte > * engineGetEncoded(); + virtual JArray< jbyte > * engineGetEncoded(::java::lang::String *); + virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *); + virtual void engineInit(JArray< jbyte > *, ::java::lang::String *); + virtual void engineInit(JArray< jbyte > *); + virtual ::java::security::spec::AlgorithmParameterSpec * engineGetParameterSpec(::java::lang::Class *); + virtual ::java::lang::String * engineToString(); +private: + static ::java::util::logging::Logger * log; +public: // actually protected + ::gnu::javax::crypto::jce::spec::BlockCipherParameterSpec * __attribute__((aligned(__alignof__( ::java::security::AlgorithmParametersSpi)))) cipherSpec; +private: + static ::java::lang::String * DEFAULT_FORMAT; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_params_BlockCipherParameters__ diff --git a/libjava/gnu/javax/crypto/jce/params/DEREncodingException.h b/libjava/gnu/javax/crypto/jce/params/DEREncodingException.h new file mode 100644 index 00000000000..6d47c98e415 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/params/DEREncodingException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_params_DEREncodingException__ +#define __gnu_javax_crypto_jce_params_DEREncodingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace params + { + class DEREncodingException; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::params::DEREncodingException : public ::java::io::IOException +{ + +public: + DEREncodingException(); + DEREncodingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_params_DEREncodingException__ diff --git a/libjava/gnu/javax/crypto/jce/params/DERReader.h b/libjava/gnu/javax/crypto/jce/params/DERReader.h new file mode 100644 index 00000000000..1a85bc48394 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/params/DERReader.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_params_DERReader__ +#define __gnu_javax_crypto_jce_params_DERReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace params + { + class DERReader; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::jce::params::DERReader : public ::java::lang::Object +{ + +public: + DERReader(); + DERReader(JArray< jbyte > *); + virtual void init(::java::lang::String *); + virtual void init(JArray< jbyte > *); + virtual jboolean hasMorePrimitives(); + virtual ::java::math::BigInteger * getBigInteger(); +private: + JArray< jbyte > * getPrimitive(); + jint translateLeadIdentifierByte(jbyte); + jint getIdentifier(jint); +public: // actually package-private + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) source; + jint pos; + static const jint UNIVERSAL = 1; + static const jint APPLICATION = 2; + static const jint CONTEXT_SPECIFIC = 3; + static const jint PRIVATE = 4; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_params_DERReader__ diff --git a/libjava/gnu/javax/crypto/jce/params/DERWriter.h b/libjava/gnu/javax/crypto/jce/params/DERWriter.h new file mode 100644 index 00000000000..742d4934cdf --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/params/DERWriter.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_params_DERWriter__ +#define __gnu_javax_crypto_jce_params_DERWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace params + { + class DERWriter; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::jce::params::DERWriter : public ::java::lang::Object +{ + +public: + DERWriter(); + virtual JArray< jbyte > * writeBigInteger(::java::math::BigInteger *); +private: + JArray< jbyte > * writePrimitive(jint, jint, jint, JArray< jbyte > *); +public: + virtual JArray< jbyte > * joinarrays(JArray< jbyte > *, JArray< jbyte > *); + virtual JArray< jbyte > * joinarrays(JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *); +private: + JArray< jbyte > * generateIdentifier(jint, jint); + jbyte translateLeadIdentifierByte(jint); + JArray< jbyte > * generateLength(jint); +public: // actually package-private + static const jint UNIVERSAL = 1; + static const jint APPLICATION = 2; + static const jint CONTEXT_SPECIFIC = 3; + static const jint PRIVATE = 4; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_params_DERWriter__ diff --git a/libjava/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.h b/libjava/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.h new file mode 100644 index 00000000000..e46dee30bc8 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/prng/ARCFourRandomSpi.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_prng_ARCFourRandomSpi__ +#define __gnu_javax_crypto_jce_prng_ARCFourRandomSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace jce + { + namespace prng + { + class ARCFourRandomSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::prng::ARCFourRandomSpi : public ::java::security::SecureRandomSpi +{ + +public: + ARCFourRandomSpi(); + virtual JArray< jbyte > * engineGenerateSeed(jint); + virtual void engineNextBytes(JArray< jbyte > *); + virtual void engineSetSeed(JArray< jbyte > *); +private: + ::gnu::java::security::prng::IRandom * __attribute__((aligned(__alignof__( ::java::security::SecureRandomSpi)))) adaptee; + jboolean virgin; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_prng_ARCFourRandomSpi__ diff --git a/libjava/gnu/javax/crypto/jce/prng/CSPRNGSpi.h b/libjava/gnu/javax/crypto/jce/prng/CSPRNGSpi.h new file mode 100644 index 00000000000..c499fa86962 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/prng/CSPRNGSpi.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_prng_CSPRNGSpi__ +#define __gnu_javax_crypto_jce_prng_CSPRNGSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace jce + { + namespace prng + { + class CSPRNGSpi; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::prng::CSPRNGSpi : public ::java::security::SecureRandomSpi +{ + +public: + CSPRNGSpi(); +public: // actually protected + virtual JArray< jbyte > * engineGenerateSeed(jint); + virtual void engineNextBytes(JArray< jbyte > *); + virtual void engineSetSeed(JArray< jbyte > *); +private: + ::gnu::java::security::prng::IRandom * __attribute__((aligned(__alignof__( ::java::security::SecureRandomSpi)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_prng_CSPRNGSpi__ diff --git a/libjava/gnu/javax/crypto/jce/prng/FortunaImpl.h b/libjava/gnu/javax/crypto/jce/prng/FortunaImpl.h new file mode 100644 index 00000000000..fefea283199 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/prng/FortunaImpl.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_prng_FortunaImpl__ +#define __gnu_javax_crypto_jce_prng_FortunaImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace prng + { + class FortunaImpl; + } + } + namespace prng + { + class Fortuna; + } + } + } + } +} + +class gnu::javax::crypto::jce::prng::FortunaImpl : public ::java::security::SecureRandomSpi +{ + +public: + FortunaImpl(); +public: // actually protected + void engineSetSeed(JArray< jbyte > *); + void engineNextBytes(JArray< jbyte > *); + JArray< jbyte > * engineGenerateSeed(jint); +private: + ::gnu::javax::crypto::prng::Fortuna * __attribute__((aligned(__alignof__( ::java::security::SecureRandomSpi)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_prng_FortunaImpl__ diff --git a/libjava/gnu/javax/crypto/jce/prng/ICMRandomSpi.h b/libjava/gnu/javax/crypto/jce/prng/ICMRandomSpi.h new file mode 100644 index 00000000000..540349362d7 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/prng/ICMRandomSpi.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_prng_ICMRandomSpi__ +#define __gnu_javax_crypto_jce_prng_ICMRandomSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace prng + { + class ICMRandomSpi; + } + } + namespace prng + { + class ICMGenerator; + } + } + } + } +} + +class gnu::javax::crypto::jce::prng::ICMRandomSpi : public ::java::security::SecureRandomSpi +{ + +public: + ICMRandomSpi(); +private: + static void resetLocalPRNG(); +public: + virtual JArray< jbyte > * engineGenerateSeed(jint); + virtual void engineNextBytes(JArray< jbyte > *); + virtual void engineSetSeed(JArray< jbyte > *); +private: + static ::java::util::logging::Logger * log; + static ::gnu::javax::crypto::prng::ICMGenerator * prng; + static ::java::lang::String * MSG; + static ::java::lang::String * RETRY; + static ::java::lang::String * LIMIT_REACHED_MSG; + static ::java::lang::String * RESEED; + ::gnu::javax::crypto::prng::ICMGenerator * __attribute__((aligned(__alignof__( ::java::security::SecureRandomSpi)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_prng_ICMRandomSpi__ diff --git a/libjava/gnu/javax/crypto/jce/prng/UMacRandomSpi.h b/libjava/gnu/javax/crypto/jce/prng/UMacRandomSpi.h new file mode 100644 index 00000000000..e27425a0b20 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/prng/UMacRandomSpi.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_prng_UMacRandomSpi__ +#define __gnu_javax_crypto_jce_prng_UMacRandomSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace prng + { + class UMacRandomSpi; + } + } + namespace prng + { + class UMacGenerator; + } + } + } + } +} + +class gnu::javax::crypto::jce::prng::UMacRandomSpi : public ::java::security::SecureRandomSpi +{ + +public: + UMacRandomSpi(); +private: + static void resetLocalPRNG(); +public: + virtual JArray< jbyte > * engineGenerateSeed(jint); + virtual void engineNextBytes(JArray< jbyte > *); + virtual void engineSetSeed(JArray< jbyte > *); +private: + static ::java::util::logging::Logger * log; + static ::gnu::javax::crypto::prng::UMacGenerator * prng; + static ::java::lang::String * MSG; + static ::java::lang::String * RETRY; + ::gnu::javax::crypto::prng::UMacGenerator * __attribute__((aligned(__alignof__( ::java::security::SecureRandomSpi)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_prng_UMacRandomSpi__ diff --git a/libjava/gnu/javax/crypto/jce/sig/DHKeyFactory.h b/libjava/gnu/javax/crypto/jce/sig/DHKeyFactory.h new file mode 100644 index 00000000000..99e937310eb --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/sig/DHKeyFactory.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_sig_DHKeyFactory__ +#define __gnu_javax_crypto_jce_sig_DHKeyFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace sig + { + class DHKeyFactory; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + class PrivateKey; + class PublicKey; + namespace spec + { + class KeySpec; + } + } + } +} + +class gnu::javax::crypto::jce::sig::DHKeyFactory : public ::java::security::KeyFactorySpi +{ + +public: + DHKeyFactory(); +public: // actually protected + virtual ::java::security::PublicKey * engineGeneratePublic(::java::security::spec::KeySpec *); + virtual ::java::security::PrivateKey * engineGeneratePrivate(::java::security::spec::KeySpec *); + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::java::security::Key *, ::java::lang::Class *); + virtual ::java::security::Key * engineTranslateKey(::java::security::Key *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_sig_DHKeyFactory__ diff --git a/libjava/gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.h b/libjava/gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.h new file mode 100644 index 00000000000..9421af83306 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_sig_DHKeyPairGeneratorSpi__ +#define __gnu_javax_crypto_jce_sig_DHKeyPairGeneratorSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace sig + { + class DHKeyPairGeneratorSpi; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::sig::DHKeyPairGeneratorSpi : public ::gnu::java::security::jce::sig::KeyPairGeneratorAdapter +{ + +public: + DHKeyPairGeneratorSpi(); + virtual void initialize(jint, ::java::security::SecureRandom *); + virtual void initialize(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_sig_DHKeyPairGeneratorSpi__ diff --git a/libjava/gnu/javax/crypto/jce/sig/DHParameters.h b/libjava/gnu/javax/crypto/jce/sig/DHParameters.h new file mode 100644 index 00000000000..43f53fe8534 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/sig/DHParameters.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_sig_DHParameters__ +#define __gnu_javax_crypto_jce_sig_DHParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace sig + { + class DHParameters; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::sig::DHParameters : public ::java::security::AlgorithmParametersSpi +{ + +public: + DHParameters(); +public: // actually protected + virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *); + virtual void engineInit(JArray< jbyte > *); + virtual void engineInit(JArray< jbyte > *, ::java::lang::String *); + virtual ::java::security::spec::AlgorithmParameterSpec * engineGetParameterSpec(::java::lang::Class *); + virtual JArray< jbyte > * engineGetEncoded(); + virtual JArray< jbyte > * engineGetEncoded(::java::lang::String *); + virtual ::java::lang::String * engineToString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::security::AlgorithmParametersSpi)))) p; + ::java::math::BigInteger * g; + ::java::math::BigInteger * q; + jint l; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_sig_DHParameters__ diff --git a/libjava/gnu/javax/crypto/jce/sig/DHParametersGenerator.h b/libjava/gnu/javax/crypto/jce/sig/DHParametersGenerator.h new file mode 100644 index 00000000000..4c2b43b7e28 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/sig/DHParametersGenerator.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_sig_DHParametersGenerator__ +#define __gnu_javax_crypto_jce_sig_DHParametersGenerator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace sig + { + class DHParametersGenerator; + } + } + namespace key + { + namespace dh + { + class RFC2631; + } + } + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + class Provider; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::crypto::jce::sig::DHParametersGenerator : public ::java::security::AlgorithmParameterGeneratorSpi +{ + +public: + DHParametersGenerator(); +public: // actually protected + virtual void engineInit(jint, ::java::security::SecureRandom *); + virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual ::java::security::AlgorithmParameters * engineGenerateParameters(); +private: + static ::java::security::Provider * GNU_CRYPTO; + jint __attribute__((aligned(__alignof__( ::java::security::AlgorithmParameterGeneratorSpi)))) modulusSize; + jint exponentSize; + ::java::security::SecureRandom * rnd; + ::gnu::javax::crypto::key::dh::RFC2631 * rfc2631; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_sig_DHParametersGenerator__ diff --git a/libjava/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.h b/libjava/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.h new file mode 100644 index 00000000000..166ed589751 --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_spec_BlockCipherParameterSpec__ +#define __gnu_javax_crypto_jce_spec_BlockCipherParameterSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace spec + { + class BlockCipherParameterSpec; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::spec::BlockCipherParameterSpec : public ::java::lang::Object +{ + +public: + BlockCipherParameterSpec(JArray< jbyte > *, jint, jint); + BlockCipherParameterSpec(jint, jint); + virtual JArray< jbyte > * getIV(); + virtual jint getBlockSize(); + virtual jint getKeySize(); + virtual ::java::lang::String * toString(); +public: // actually protected + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iv; + jint blockSize; + jint keySize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_spec_BlockCipherParameterSpec__ diff --git a/libjava/gnu/javax/crypto/jce/spec/TMMHParameterSpec.h b/libjava/gnu/javax/crypto/jce/spec/TMMHParameterSpec.h new file mode 100644 index 00000000000..26fca5d09af --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/spec/TMMHParameterSpec.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_spec_TMMHParameterSpec__ +#define __gnu_javax_crypto_jce_spec_TMMHParameterSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace jce + { + namespace spec + { + class TMMHParameterSpec; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::spec::TMMHParameterSpec : public ::java::lang::Object +{ + +public: + TMMHParameterSpec(::gnu::java::security::prng::IRandom *, ::java::lang::Integer *, JArray< jbyte > *); + TMMHParameterSpec(::gnu::java::security::prng::IRandom *, ::java::lang::Integer *); + virtual ::gnu::java::security::prng::IRandom * getKeystream(); + virtual ::java::lang::Integer * getTagLength(); + virtual JArray< jbyte > * getPrefix(); +public: // actually protected + ::gnu::java::security::prng::IRandom * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keystream; + ::java::lang::Integer * tagLength; + JArray< jbyte > * prefix; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_spec_TMMHParameterSpec__ diff --git a/libjava/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.h b/libjava/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.h new file mode 100644 index 00000000000..81c2c21e75b --- /dev/null +++ b/libjava/gnu/javax/crypto/jce/spec/UMac32ParameterSpec.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_jce_spec_UMac32ParameterSpec__ +#define __gnu_javax_crypto_jce_spec_UMac32ParameterSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace jce + { + namespace spec + { + class UMac32ParameterSpec; + } + } + } + } + } +} + +class gnu::javax::crypto::jce::spec::UMac32ParameterSpec : public ::java::lang::Object +{ + +public: + UMac32ParameterSpec(JArray< jbyte > *); + virtual JArray< jbyte > * getNonce(); +public: // actually protected + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nonce; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_jce_spec_UMac32ParameterSpec__ diff --git a/libjava/gnu/javax/crypto/key/BaseKeyAgreementParty.h b/libjava/gnu/javax/crypto/key/BaseKeyAgreementParty.h new file mode 100644 index 00000000000..20d76e63268 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/BaseKeyAgreementParty.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_BaseKeyAgreementParty__ +#define __gnu_javax_crypto_key_BaseKeyAgreementParty__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace key + { + class BaseKeyAgreementParty; + class IncomingMessage; + class OutgoingMessage; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class SecureRandom; + } + } +} + +class gnu::javax::crypto::key::BaseKeyAgreementParty : public ::java::lang::Object +{ + +public: // actually protected + BaseKeyAgreementParty(::java::lang::String *); +public: + virtual ::java::lang::String * name(); + virtual void init(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * processMessage(::gnu::javax::crypto::key::IncomingMessage *); + virtual jboolean isComplete(); + virtual JArray< jbyte > * getSharedSecret(); + virtual void reset(); +public: // actually protected + virtual void engineInit(::java::util::Map *) = 0; + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *) = 0; + virtual JArray< jbyte > * engineSharedSecret() = 0; + virtual void engineReset() = 0; + virtual void nextRandomBytes(JArray< jbyte > *); +private: + ::gnu::java::security::util::PRNG * getDefaultPRNG(); +public: // actually protected + static ::java::math::BigInteger * TWO; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; + jboolean initialised; + jint step; + jboolean complete; + ::java::security::SecureRandom * rnd; + ::gnu::java::security::prng::IRandom * irnd; +private: + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_BaseKeyAgreementParty__ diff --git a/libjava/gnu/javax/crypto/key/GnuPBEKey.h b/libjava/gnu/javax/crypto/key/GnuPBEKey.h new file mode 100644 index 00000000000..e52cd5e3ca3 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/GnuPBEKey.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_GnuPBEKey__ +#define __gnu_javax_crypto_key_GnuPBEKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class GnuPBEKey; + } + } + } + } + namespace javax + { + namespace crypto + { + namespace spec + { + class PBEKeySpec; + } + } + } +} + +class gnu::javax::crypto::key::GnuPBEKey : public ::java::lang::Object +{ + +public: + GnuPBEKey(::javax::crypto::spec::PBEKeySpec *); + GnuPBEKey(JArray< jchar > *, JArray< jbyte > *, jint); + virtual jint getIterationCount(); + virtual JArray< jchar > * getPassword(); + virtual JArray< jbyte > * getSalt(); + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::lang::String * getFormat(); + virtual JArray< jbyte > * getEncoded(); +private: + ::javax::crypto::spec::PBEKeySpec * __attribute__((aligned(__alignof__( ::java::lang::Object)))) spec; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_GnuPBEKey__ diff --git a/libjava/gnu/javax/crypto/key/GnuSecretKey.h b/libjava/gnu/javax/crypto/key/GnuSecretKey.h new file mode 100644 index 00000000000..b9a3133d675 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/GnuSecretKey.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_GnuSecretKey__ +#define __gnu_javax_crypto_key_GnuSecretKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class GnuSecretKey; + } + } + } + } +} + +class gnu::javax::crypto::key::GnuSecretKey : public ::java::lang::Object +{ + +public: + GnuSecretKey(JArray< jbyte > *, ::java::lang::String *); + GnuSecretKey(JArray< jbyte > *, jint, jint, ::java::lang::String *); + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * getFormat(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; + ::java::lang::String * algorithm; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_GnuSecretKey__ diff --git a/libjava/gnu/javax/crypto/key/IKeyAgreementParty.h b/libjava/gnu/javax/crypto/key/IKeyAgreementParty.h new file mode 100644 index 00000000000..4fb301943a5 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/IKeyAgreementParty.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_IKeyAgreementParty__ +#define __gnu_javax_crypto_key_IKeyAgreementParty__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IKeyAgreementParty; + class IncomingMessage; + class OutgoingMessage; + } + } + } + } +} + +class gnu::javax::crypto::key::IKeyAgreementParty : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual void init(::java::util::Map *) = 0; + virtual ::gnu::javax::crypto::key::OutgoingMessage * processMessage(::gnu::javax::crypto::key::IncomingMessage *) = 0; + virtual jboolean isComplete() = 0; + virtual JArray< jbyte > * getSharedSecret() = 0; + virtual void reset() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_key_IKeyAgreementParty__ diff --git a/libjava/gnu/javax/crypto/key/IncomingMessage.h b/libjava/gnu/javax/crypto/key/IncomingMessage.h new file mode 100644 index 00000000000..ed3f33a57a6 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/IncomingMessage.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_IncomingMessage__ +#define __gnu_javax_crypto_key_IncomingMessage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace key + { + class IKeyPairCodec; + } + } + } + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::javax::crypto::key::IncomingMessage : public ::java::lang::Object +{ + +public: + IncomingMessage(JArray< jbyte > *); +private: + IncomingMessage(); +public: + static ::gnu::javax::crypto::key::IncomingMessage * getInstance(JArray< jbyte > *); + static ::gnu::javax::crypto::key::IncomingMessage * getInstance(JArray< jbyte > *, jint, jint); + static jint twoBytesToLength(JArray< jbyte > *); + static jint fourBytesToLength(JArray< jbyte > *); + virtual jboolean hasMoreElements(); + virtual ::java::security::PublicKey * readPublicKey(); + virtual ::java::security::PrivateKey * readPrivateKey(); + virtual ::java::math::BigInteger * readMPI(); + virtual ::java::lang::String * readString(); +private: + ::gnu::java::security::key::IKeyPairCodec * getKeyPairCodec(jint); +public: // actually protected + ::java::io::ByteArrayInputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_IncomingMessage__ diff --git a/libjava/gnu/javax/crypto/key/KeyAgreementException.h b/libjava/gnu/javax/crypto/key/KeyAgreementException.h new file mode 100644 index 00000000000..77bc760d1ba --- /dev/null +++ b/libjava/gnu/javax/crypto/key/KeyAgreementException.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_KeyAgreementException__ +#define __gnu_javax_crypto_key_KeyAgreementException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class KeyAgreementException; + } + } + } + } +} + +class gnu::javax::crypto::key::KeyAgreementException : public ::java::security::KeyManagementException +{ + +public: + KeyAgreementException(); + KeyAgreementException(::java::lang::String *); + KeyAgreementException(::java::lang::String *, ::java::lang::Throwable *); + virtual ::java::lang::Throwable * getCause(); + virtual void printStackTrace(); + virtual void printStackTrace(::java::io::PrintStream *); + virtual void printStackTrace(::java::io::PrintWriter *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::security::KeyManagementException)))) cause; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_KeyAgreementException__ diff --git a/libjava/gnu/javax/crypto/key/KeyAgreementFactory.h b/libjava/gnu/javax/crypto/key/KeyAgreementFactory.h new file mode 100644 index 00000000000..abbfd28711e --- /dev/null +++ b/libjava/gnu/javax/crypto/key/KeyAgreementFactory.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_KeyAgreementFactory__ +#define __gnu_javax_crypto_key_KeyAgreementFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IKeyAgreementParty; + class KeyAgreementFactory; + } + } + } + } +} + +class gnu::javax::crypto::key::KeyAgreementFactory : public ::java::lang::Object +{ + + KeyAgreementFactory(); +public: + static ::gnu::javax::crypto::key::IKeyAgreementParty * getPartyAInstance(::java::lang::String *); + static ::gnu::javax::crypto::key::IKeyAgreementParty * getPartyBInstance(::java::lang::String *); + static ::java::util::Set * getNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_KeyAgreementFactory__ diff --git a/libjava/gnu/javax/crypto/key/OutgoingMessage.h b/libjava/gnu/javax/crypto/key/OutgoingMessage.h new file mode 100644 index 00000000000..8f46a1e163a --- /dev/null +++ b/libjava/gnu/javax/crypto/key/OutgoingMessage.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_OutgoingMessage__ +#define __gnu_javax_crypto_key_OutgoingMessage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class OutgoingMessage; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class Key; + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::javax::crypto::key::OutgoingMessage : public ::java::lang::Object +{ + +public: + OutgoingMessage(); + virtual JArray< jbyte > * toByteArray(); + virtual JArray< jbyte > * wrap(); + virtual void writePublicKey(::java::security::PublicKey *); + virtual void writePrivateKey(::java::security::PrivateKey *); + virtual void writeMPI(::java::math::BigInteger *); + virtual void writeString(::java::lang::String *); +private: + void writeKey(::java::security::Key *); + jint getKeyType(::java::security::Key *); + ::java::io::ByteArrayOutputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) out; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_OutgoingMessage__ diff --git a/libjava/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.h b/libjava/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.h new file mode 100644 index 00000000000..17e0ccea0fc --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_DHKeyPairPKCS8Codec__ +#define __gnu_javax_crypto_key_dh_DHKeyPairPKCS8Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + } + } + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class DHKeyPairPKCS8Codec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::javax::crypto::key::dh::DHKeyPairPKCS8Codec : public ::java::lang::Object +{ + +public: + DHKeyPairPKCS8Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); +private: + static ::gnu::java::security::OID * DH_ALG_OID; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_DHKeyPairPKCS8Codec__ diff --git a/libjava/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.h b/libjava/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.h new file mode 100644 index 00000000000..1c5507c9849 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/DHKeyPairRawCodec.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_DHKeyPairRawCodec__ +#define __gnu_javax_crypto_key_dh_DHKeyPairRawCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class DHKeyPairRawCodec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::javax::crypto::key::dh::DHKeyPairRawCodec : public ::java::lang::Object +{ + +public: + DHKeyPairRawCodec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_DHKeyPairRawCodec__ diff --git a/libjava/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.h b/libjava/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.h new file mode 100644 index 00000000000..a52ab8adce1 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/DHKeyPairX509Codec.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_DHKeyPairX509Codec__ +#define __gnu_javax_crypto_key_dh_DHKeyPairX509Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + } + } + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class DHKeyPairX509Codec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::javax::crypto::key::dh::DHKeyPairX509Codec : public ::java::lang::Object +{ + +public: + DHKeyPairX509Codec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); +private: + static ::gnu::java::security::OID * DH_ALG_OID; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_DHKeyPairX509Codec__ diff --git a/libjava/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.h b/libjava/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.h new file mode 100644 index 00000000000..c592f769a74 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_DiffieHellmanKeyAgreement__ +#define __gnu_javax_crypto_key_dh_DiffieHellmanKeyAgreement__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class DiffieHellmanKeyAgreement; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPrivateKey; + } + } + } +} + +class gnu::javax::crypto::key::dh::DiffieHellmanKeyAgreement : public ::gnu::javax::crypto::key::BaseKeyAgreementParty +{ + +public: // actually protected + DiffieHellmanKeyAgreement(); + virtual JArray< jbyte > * engineSharedSecret(); + virtual void engineReset(); +public: + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::String * KA_DIFFIE_HELLMAN_OWNER_PRIVATE_KEY; +public: // actually protected + ::javax::crypto::interfaces::DHPrivateKey * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::BaseKeyAgreementParty)))) ownerKey; + ::java::math::BigInteger * ZZ; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_DiffieHellmanKeyAgreement__ diff --git a/libjava/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.h b/libjava/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.h new file mode 100644 index 00000000000..56bae1b6f84 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/DiffieHellmanReceiver.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_DiffieHellmanReceiver__ +#define __gnu_javax_crypto_key_dh_DiffieHellmanReceiver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace dh + { + class DiffieHellmanReceiver; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::dh::DiffieHellmanReceiver : public ::gnu::javax::crypto::key::dh::DiffieHellmanKeyAgreement +{ + +public: + DiffieHellmanReceiver(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); +private: + ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::dh::DiffieHellmanKeyAgreement)))) y; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_DiffieHellmanReceiver__ diff --git a/libjava/gnu/javax/crypto/key/dh/DiffieHellmanSender.h b/libjava/gnu/javax/crypto/key/dh/DiffieHellmanSender.h new file mode 100644 index 00000000000..ff9ab29840d --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/DiffieHellmanSender.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_DiffieHellmanSender__ +#define __gnu_javax_crypto_key_dh_DiffieHellmanSender__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace dh + { + class DiffieHellmanSender; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::dh::DiffieHellmanSender : public ::gnu::javax::crypto::key::dh::DiffieHellmanKeyAgreement +{ + +public: + DiffieHellmanSender(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); +private: + ::gnu::javax::crypto::key::OutgoingMessage * sendRandomSecret(::gnu::javax::crypto::key::IncomingMessage *); + ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::dh::DiffieHellmanKeyAgreement)))) x; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_DiffieHellmanSender__ diff --git a/libjava/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.h b/libjava/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.h new file mode 100644 index 00000000000..d167c7ce122 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/ElGamalKeyAgreement.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_ElGamalKeyAgreement__ +#define __gnu_javax_crypto_key_dh_ElGamalKeyAgreement__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class ElGamalKeyAgreement; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::dh::ElGamalKeyAgreement : public ::gnu::javax::crypto::key::BaseKeyAgreementParty +{ + +public: // actually protected + ElGamalKeyAgreement(); + virtual JArray< jbyte > * engineSharedSecret(); + virtual void engineReset(); +public: + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::String * KA_ELGAMAL_RECIPIENT_PRIVATE_KEY; + static ::java::lang::String * KA_ELGAMAL_RECIPIENT_PUBLIC_KEY; +public: // actually protected + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::BaseKeyAgreementParty)))) ZZ; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_ElGamalKeyAgreement__ diff --git a/libjava/gnu/javax/crypto/key/dh/ElGamalReceiver.h b/libjava/gnu/javax/crypto/key/dh/ElGamalReceiver.h new file mode 100644 index 00000000000..cba0013d314 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/ElGamalReceiver.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_ElGamalReceiver__ +#define __gnu_javax_crypto_key_dh_ElGamalReceiver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace dh + { + class ElGamalReceiver; + } + } + } + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPrivateKey; + } + } + } +} + +class gnu::javax::crypto::key::dh::ElGamalReceiver : public ::gnu::javax::crypto::key::dh::ElGamalKeyAgreement +{ + +public: + ElGamalReceiver(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); +private: + ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); + ::javax::crypto::interfaces::DHPrivateKey * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::dh::ElGamalKeyAgreement)))) B; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_ElGamalReceiver__ diff --git a/libjava/gnu/javax/crypto/key/dh/ElGamalSender.h b/libjava/gnu/javax/crypto/key/dh/ElGamalSender.h new file mode 100644 index 00000000000..487867fd6c9 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/ElGamalSender.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_ElGamalSender__ +#define __gnu_javax_crypto_key_dh_ElGamalSender__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace dh + { + class ElGamalSender; + } + } + } + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPublicKey; + } + } + } +} + +class gnu::javax::crypto::key::dh::ElGamalSender : public ::gnu::javax::crypto::key::dh::ElGamalKeyAgreement +{ + +public: + ElGamalSender(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); +private: + ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); + ::javax::crypto::interfaces::DHPublicKey * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::dh::ElGamalKeyAgreement)))) B; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_ElGamalSender__ diff --git a/libjava/gnu/javax/crypto/key/dh/GnuDHKey.h b/libjava/gnu/javax/crypto/key/dh/GnuDHKey.h new file mode 100644 index 00000000000..2d8f2922242 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/GnuDHKey.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_GnuDHKey__ +#define __gnu_javax_crypto_key_dh_GnuDHKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class GnuDHKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class gnu::javax::crypto::key::dh::GnuDHKey : public ::java::lang::Object +{ + +public: // actually protected + GnuDHKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); +public: + virtual ::javax::crypto::spec::DHParameterSpec * getParams(); + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * getFormat(); + virtual ::java::math::BigInteger * getQ(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual JArray< jbyte > * getEncoded(jint) = 0; +public: // actually protected + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) q; + ::java::math::BigInteger * p; + ::java::math::BigInteger * g; + jint defaultFormat; +private: + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_GnuDHKey__ diff --git a/libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h b/libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h new file mode 100644 index 00000000000..aaab2bf5167 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_GnuDHKeyPairGenerator__ +#define __gnu_javax_crypto_key_dh_GnuDHKeyPairGenerator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha160; + } + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class GnuDHKeyPairGenerator; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class KeyPair; + class SecureRandom; + } + } +} + +class gnu::javax::crypto::key::dh::GnuDHKeyPairGenerator : public ::java::lang::Object +{ + +public: + GnuDHKeyPairGenerator(); + virtual ::java::lang::String * name(); + virtual void setup(::java::util::Map *); + virtual ::java::security::KeyPair * generate(); +private: + void nextRandomBytes(JArray< jbyte > *); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); + static ::java::util::logging::Logger * log; +public: + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::String * DH_PARAMETERS; + static ::java::lang::String * PRIME_SIZE; + static ::java::lang::String * EXPONENT_SIZE; + static ::java::lang::String * PREFERRED_ENCODING_FORMAT; + static const jint DEFAULT_PRIME_SIZE = 512; + static const jint DEFAULT_EXPONENT_SIZE = 160; +private: + static const jint DEFAULT_ENCODING_FORMAT = 1; + ::gnu::java::security::hash::Sha160 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sha; + ::java::security::SecureRandom * rnd; + jint l; + jint m; + ::java::math::BigInteger * seed; + ::java::math::BigInteger * counter; + ::java::math::BigInteger * q; + ::java::math::BigInteger * p; + ::java::math::BigInteger * j; + ::java::math::BigInteger * g; + ::gnu::java::security::util::PRNG * prng; + jint preferredFormat; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_GnuDHKeyPairGenerator__ diff --git a/libjava/gnu/javax/crypto/key/dh/GnuDHPrivateKey.h b/libjava/gnu/javax/crypto/key/dh/GnuDHPrivateKey.h new file mode 100644 index 00000000000..142262255c5 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/GnuDHPrivateKey.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_GnuDHPrivateKey__ +#define __gnu_javax_crypto_key_dh_GnuDHPrivateKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class GnuDHPrivateKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::dh::GnuDHPrivateKey : public ::gnu::javax::crypto::key::dh::GnuDHKey +{ + +public: + GnuDHPrivateKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + GnuDHPrivateKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + static ::gnu::javax::crypto::key::dh::GnuDHPrivateKey * valueOf(JArray< jbyte > *); + virtual ::java::math::BigInteger * getX(); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::dh::GnuDHKey)))) x; + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_GnuDHPrivateKey__ diff --git a/libjava/gnu/javax/crypto/key/dh/GnuDHPublicKey.h b/libjava/gnu/javax/crypto/key/dh/GnuDHPublicKey.h new file mode 100644 index 00000000000..980e7f74b13 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/GnuDHPublicKey.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_GnuDHPublicKey__ +#define __gnu_javax_crypto_key_dh_GnuDHPublicKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class GnuDHPublicKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::dh::GnuDHPublicKey : public ::gnu::javax::crypto::key::dh::GnuDHKey +{ + +public: + GnuDHPublicKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + GnuDHPublicKey(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + static ::gnu::javax::crypto::key::dh::GnuDHPublicKey * valueOf(JArray< jbyte > *); + virtual ::java::math::BigInteger * getY(); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::dh::GnuDHKey)))) y; + ::java::lang::String * str; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_GnuDHPublicKey__ diff --git a/libjava/gnu/javax/crypto/key/dh/RFC2631.h b/libjava/gnu/javax/crypto/key/dh/RFC2631.h new file mode 100644 index 00000000000..36f1f46c092 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/dh/RFC2631.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_dh_RFC2631__ +#define __gnu_javax_crypto_key_dh_RFC2631__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha160; + } + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class RFC2631; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class SecureRandom; + } + } +} + +class gnu::javax::crypto::key::dh::RFC2631 : public ::java::lang::Object +{ + +public: + RFC2631(jint, jint, ::java::security::SecureRandom *); + virtual JArray< ::java::math::BigInteger * > * generateParameters(); +private: + void nextRandomBytes(JArray< jbyte > *); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); +public: + static const jint DH_PARAMS_SEED = 0; + static const jint DH_PARAMS_COUNTER = 1; + static const jint DH_PARAMS_Q = 2; + static const jint DH_PARAMS_P = 3; + static const jint DH_PARAMS_J = 4; + static const jint DH_PARAMS_G = 5; +private: + static ::java::math::BigInteger * TWO; + ::gnu::java::security::hash::Sha160 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sha; + jint m; + jint L; + ::java::security::SecureRandom * rnd; + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_dh_RFC2631__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRP6Host.h b/libjava/gnu/javax/crypto/key/srp6/SRP6Host.h new file mode 100644 index 00000000000..34913f031b9 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRP6Host.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRP6Host__ +#define __gnu_javax_crypto_key_srp6_SRP6Host__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace srp6 + { + class SRP6Host; + } + } + namespace sasl + { + namespace srp + { + class SRPAuthInfoProvider; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyPair; + } + } +} + +class gnu::javax::crypto::key::srp6::SRP6Host : public ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement +{ + +public: + SRP6Host(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); + virtual void engineReset(); +private: + ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); + ::java::security::KeyPair * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement)))) hostKeyPair; + ::gnu::javax::crypto::sasl::srp::SRPAuthInfoProvider * passwordDB; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRP6Host__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.h b/libjava/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.h new file mode 100644 index 00000000000..7479d7e68bd --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRP6KeyAgreement.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRP6KeyAgreement__ +#define __gnu_javax_crypto_key_srp6_SRP6KeyAgreement__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace srp6 + { + class SRP6KeyAgreement; + } + } + namespace sasl + { + namespace srp + { + class SRP; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::srp6::SRP6KeyAgreement : public ::gnu::javax::crypto::key::BaseKeyAgreementParty +{ + +public: // actually protected + SRP6KeyAgreement(); + virtual JArray< jbyte > * engineSharedSecret(); + virtual void engineReset(); + virtual ::java::math::BigInteger * uValue(::java::math::BigInteger *, ::java::math::BigInteger *); +public: + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::String * SHARED_MODULUS; + static ::java::lang::String * GENERATOR; + static ::java::lang::String * HASH_FUNCTION; + static ::java::lang::String * USER_IDENTITY; + static ::java::lang::String * USER_PASSWORD; + static ::java::lang::String * HOST_PASSWORD_DB; +public: // actually protected + static ::java::math::BigInteger * THREE; + ::gnu::javax::crypto::sasl::srp::SRP * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::BaseKeyAgreementParty)))) srp; + ::java::math::BigInteger * N; + ::java::math::BigInteger * g; + ::java::math::BigInteger * K; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRP6KeyAgreement__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRP6SaslClient.h b/libjava/gnu/javax/crypto/key/srp6/SRP6SaslClient.h new file mode 100644 index 00000000000..1797415572d --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRP6SaslClient.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRP6SaslClient__ +#define __gnu_javax_crypto_key_srp6_SRP6SaslClient__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace srp6 + { + class SRP6SaslClient; + } + } + } + } + } +} + +class gnu::javax::crypto::key::srp6::SRP6SaslClient : public ::gnu::javax::crypto::key::srp6::SRP6TLSClient +{ + +public: + SRP6SaslClient(); +public: // actually protected + virtual ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRP6SaslClient__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRP6SaslServer.h b/libjava/gnu/javax/crypto/key/srp6/SRP6SaslServer.h new file mode 100644 index 00000000000..5ac6a478e00 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRP6SaslServer.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRP6SaslServer__ +#define __gnu_javax_crypto_key_srp6_SRP6SaslServer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace srp6 + { + class SRP6SaslServer; + } + } + } + } + } +} + +class gnu::javax::crypto::key::srp6::SRP6SaslServer : public ::gnu::javax::crypto::key::srp6::SRP6TLSServer +{ + +public: + SRP6SaslServer(); +public: // actually protected + virtual ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRP6SaslServer__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRP6TLSClient.h b/libjava/gnu/javax/crypto/key/srp6/SRP6TLSClient.h new file mode 100644 index 00000000000..b5df35136a5 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRP6TLSClient.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRP6TLSClient__ +#define __gnu_javax_crypto_key_srp6_SRP6TLSClient__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace srp6 + { + class SRP6TLSClient; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyPair; + } + } +} + +class gnu::javax::crypto::key::srp6::SRP6TLSClient : public ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement +{ + +public: + SRP6TLSClient(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); + virtual void engineReset(); +private: + ::gnu::javax::crypto::key::OutgoingMessage * sendIdentity(::gnu::javax::crypto::key::IncomingMessage *); +public: // actually protected + virtual ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement)))) I; + JArray< jbyte > * p; + ::java::security::KeyPair * userKeyPair; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRP6TLSClient__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRP6TLSServer.h b/libjava/gnu/javax/crypto/key/srp6/SRP6TLSServer.h new file mode 100644 index 00000000000..facb7cbb759 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRP6TLSServer.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRP6TLSServer__ +#define __gnu_javax_crypto_key_srp6_SRP6TLSServer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace srp6 + { + class SRP6TLSServer; + } + } + namespace sasl + { + namespace srp + { + class SRPAuthInfoProvider; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyPair; + } + } +} + +class gnu::javax::crypto::key::srp6::SRP6TLSServer : public ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement +{ + +public: + SRP6TLSServer(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); + virtual void engineReset(); +private: + ::gnu::javax::crypto::key::OutgoingMessage * sendParameters(::gnu::javax::crypto::key::IncomingMessage *); +public: // actually protected + virtual ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); +private: + ::java::security::KeyPair * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement)))) hostKeyPair; + ::gnu::javax::crypto::sasl::srp::SRPAuthInfoProvider * passwordDB; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRP6TLSServer__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRP6User.h b/libjava/gnu/javax/crypto/key/srp6/SRP6User.h new file mode 100644 index 00000000000..2d9f72510a5 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRP6User.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRP6User__ +#define __gnu_javax_crypto_key_srp6_SRP6User__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + class IncomingMessage; + class OutgoingMessage; + namespace srp6 + { + class SRP6User; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyPair; + } + } +} + +class gnu::javax::crypto::key::srp6::SRP6User : public ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement +{ + +public: + SRP6User(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual ::gnu::javax::crypto::key::OutgoingMessage * engineProcessMessage(::gnu::javax::crypto::key::IncomingMessage *); + virtual void engineReset(); +private: + ::gnu::javax::crypto::key::OutgoingMessage * sendIdentity(::gnu::javax::crypto::key::IncomingMessage *); + ::gnu::javax::crypto::key::OutgoingMessage * computeSharedSecret(::gnu::javax::crypto::key::IncomingMessage *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::srp6::SRP6KeyAgreement)))) I; + JArray< jbyte > * p; + ::java::security::KeyPair * userKeyPair; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRP6User__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRPAlgorithm.h b/libjava/gnu/javax/crypto/key/srp6/SRPAlgorithm.h new file mode 100644 index 00000000000..534c681c8a7 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRPAlgorithm.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRPAlgorithm__ +#define __gnu_javax_crypto_key_srp6_SRPAlgorithm__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace srp6 + { + class SRPAlgorithm; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::srp6::SRPAlgorithm : public ::java::lang::Object +{ + + SRPAlgorithm(); +public: + static void checkParams(::java::math::BigInteger *, ::java::math::BigInteger *); + static ::java::math::BigInteger * N_2048; + static ::java::math::BigInteger * N_1536; + static ::java::math::BigInteger * N_1280; + static ::java::math::BigInteger * N_1024; + static ::java::math::BigInteger * N_768; + static ::java::math::BigInteger * N_640; + static ::java::math::BigInteger * N_512; + static ::java::math::BigInteger * N_384; + static ::java::math::BigInteger * N_264; +private: + static ::java::math::BigInteger * ZERO; + static ::java::math::BigInteger * ONE; + static ::java::math::BigInteger * TWO; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRPAlgorithm__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRPKey.h b/libjava/gnu/javax/crypto/key/srp6/SRPKey.h new file mode 100644 index 00000000000..9c4ef51890c --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRPKey.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRPKey__ +#define __gnu_javax_crypto_key_srp6_SRPKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace srp6 + { + class SRPKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::srp6::SRPKey : public ::java::lang::Object +{ + +public: // actually protected + SRPKey(::java::math::BigInteger *, ::java::math::BigInteger *); +public: + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * getFormat(); + virtual ::java::math::BigInteger * getN(); + virtual ::java::math::BigInteger * getG(); + virtual jboolean equals(::java::lang::Object *); + virtual JArray< jbyte > * getEncoded(jint) = 0; +public: // actually protected + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) N; + ::java::math::BigInteger * g; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRPKey__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.h b/libjava/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.h new file mode 100644 index 00000000000..2be95fbb3a4 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRPKeyPairGenerator__ +#define __gnu_javax_crypto_key_srp6_SRPKeyPairGenerator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace key + { + namespace srp6 + { + class SRPKeyPairGenerator; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class KeyPair; + class SecureRandom; + } + } +} + +class gnu::javax::crypto::key::srp6::SRPKeyPairGenerator : public ::java::lang::Object +{ + +public: + SRPKeyPairGenerator(); + virtual ::java::lang::String * name(); + virtual void setup(::java::util::Map *); + virtual ::java::security::KeyPair * generate(); +private: + JArray< ::java::math::BigInteger * > * generateParameters(); + ::java::security::KeyPair * hostKeyPair(); + ::java::security::KeyPair * userKeyPair(); + void nextRandomBytes(JArray< jbyte > *); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); + static ::java::util::logging::Logger * log; + static ::java::math::BigInteger * ZERO; + static ::java::math::BigInteger * ONE; + static ::java::math::BigInteger * TWO; + static ::java::math::BigInteger * THREE; +public: + static ::java::lang::String * MODULUS_LENGTH; + static ::java::lang::String * USE_DEFAULTS; + static ::java::lang::String * SHARED_MODULUS; + static ::java::lang::String * GENERATOR; + static ::java::lang::String * USER_VERIFIER; + static ::java::lang::String * SOURCE_OF_RANDOMNESS; +private: + static const jint DEFAULT_MODULUS_LENGTH = 1024; + ::java::security::SecureRandom * __attribute__((aligned(__alignof__( ::java::lang::Object)))) rnd; + jint l; + ::java::math::BigInteger * N; + ::java::math::BigInteger * g; + ::java::math::BigInteger * v; + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRPKeyPairGenerator__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.h b/libjava/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.h new file mode 100644 index 00000000000..3f6f0db75b9 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRPKeyPairRawCodec__ +#define __gnu_javax_crypto_key_srp6_SRPKeyPairRawCodec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace srp6 + { + class SRPKeyPairRawCodec; + } + } + } + } + } + namespace java + { + namespace security + { + class PrivateKey; + class PublicKey; + } + } +} + +class gnu::javax::crypto::key::srp6::SRPKeyPairRawCodec : public ::java::lang::Object +{ + +public: + SRPKeyPairRawCodec(); + virtual jint getFormatID(); + virtual JArray< jbyte > * encodePublicKey(::java::security::PublicKey *); + virtual ::java::security::PublicKey * decodePublicKey(JArray< jbyte > *); + virtual JArray< jbyte > * encodePrivateKey(::java::security::PrivateKey *); + virtual ::java::security::PrivateKey * decodePrivateKey(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRPKeyPairRawCodec__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRPPrivateKey.h b/libjava/gnu/javax/crypto/key/srp6/SRPPrivateKey.h new file mode 100644 index 00000000000..af942a1eb88 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRPPrivateKey.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRPPrivateKey__ +#define __gnu_javax_crypto_key_srp6_SRPPrivateKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace srp6 + { + class SRPPrivateKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::srp6::SRPPrivateKey : public ::gnu::javax::crypto::key::srp6::SRPKey +{ + +public: + SRPPrivateKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + SRPPrivateKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); +public: // actually package-private + SRPPrivateKey(JArray< ::java::math::BigInteger * > *); +public: + static ::gnu::javax::crypto::key::srp6::SRPPrivateKey * valueOf(JArray< jbyte > *); + virtual ::java::math::BigInteger * getX(); + virtual ::java::math::BigInteger * getV(); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::srp6::SRPKey)))) X; + ::java::math::BigInteger * v; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRPPrivateKey__ diff --git a/libjava/gnu/javax/crypto/key/srp6/SRPPublicKey.h b/libjava/gnu/javax/crypto/key/srp6/SRPPublicKey.h new file mode 100644 index 00000000000..8b1b7b0d052 --- /dev/null +++ b/libjava/gnu/javax/crypto/key/srp6/SRPPublicKey.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_key_srp6_SRPPublicKey__ +#define __gnu_javax_crypto_key_srp6_SRPPublicKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace srp6 + { + class SRPPublicKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::key::srp6::SRPPublicKey : public ::gnu::javax::crypto::key::srp6::SRPKey +{ + +public: + SRPPublicKey(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); +public: // actually package-private + SRPPublicKey(JArray< ::java::math::BigInteger * > *); +public: + static ::gnu::javax::crypto::key::srp6::SRPPublicKey * valueOf(JArray< jbyte > *); + virtual ::java::math::BigInteger * getY(); + virtual JArray< jbyte > * getEncoded(jint); + virtual jboolean equals(::java::lang::Object *); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::key::srp6::SRPKey)))) Y; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_key_srp6_SRPPublicKey__ diff --git a/libjava/gnu/javax/crypto/keyring/AuthenticatedEntry.h b/libjava/gnu/javax/crypto/keyring/AuthenticatedEntry.h new file mode 100644 index 00000000000..833bd3cb1f3 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/AuthenticatedEntry.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_AuthenticatedEntry__ +#define __gnu_javax_crypto_keyring_AuthenticatedEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class AuthenticatedEntry; + class Properties; + } + namespace mac + { + class IMac; + } + } + } + } +} + +class gnu::javax::crypto::keyring::AuthenticatedEntry : public ::gnu::javax::crypto::keyring::MaskableEnvelopeEntry +{ + +public: + AuthenticatedEntry(::java::lang::String *, jint, ::gnu::javax::crypto::keyring::Properties *); +private: + AuthenticatedEntry(); +public: + static ::gnu::javax::crypto::keyring::AuthenticatedEntry * decode(::java::io::DataInputStream *); + void authenticate(JArray< jbyte > *); + void verify(JArray< jbyte > *); +public: // actually protected + void encodePayload(); +private: + ::gnu::javax::crypto::mac::IMac * getMac(JArray< jbyte > *); +public: + static const jint TYPE = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_AuthenticatedEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/BaseKeyring.h b/libjava/gnu/javax/crypto/keyring/BaseKeyring.h new file mode 100644 index 00000000000..6d5806ea75c --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/BaseKeyring.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_BaseKeyring__ +#define __gnu_javax_crypto_keyring_BaseKeyring__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class BaseKeyring; + class CompressedEntry; + class Entry; + class PasswordAuthenticatedEntry; + } + } + } + } +} + +class gnu::javax::crypto::keyring::BaseKeyring : public ::java::lang::Object +{ + +public: + BaseKeyring(); + virtual void load(::java::util::Map *); + virtual void store(::java::util::Map *); + virtual void reset(); + virtual jint size(); + virtual ::java::util::Enumeration * aliases(); + virtual jboolean containsAlias(::java::lang::String *); + virtual ::java::util::List * get(::java::lang::String *); + virtual void add(::gnu::javax::crypto::keyring::Entry *); + virtual void remove(::java::lang::String *); +public: // actually protected + virtual ::java::lang::String * fixAlias(::java::lang::String *); + virtual void load(::java::io::InputStream *, JArray< jchar > *) = 0; + virtual void store(::java::io::OutputStream *, JArray< jchar > *) = 0; + ::gnu::javax::crypto::keyring::PasswordAuthenticatedEntry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keyring; + ::gnu::javax::crypto::keyring::CompressedEntry * keyring2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_BaseKeyring__ diff --git a/libjava/gnu/javax/crypto/keyring/BinaryDataEntry.h b/libjava/gnu/javax/crypto/keyring/BinaryDataEntry.h new file mode 100644 index 00000000000..2235f18ede5 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/BinaryDataEntry.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_BinaryDataEntry__ +#define __gnu_javax_crypto_keyring_BinaryDataEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class BinaryDataEntry; + class Properties; + } + } + } + } +} + +class gnu::javax::crypto::keyring::BinaryDataEntry : public ::gnu::javax::crypto::keyring::PrimitiveEntry +{ + +public: + BinaryDataEntry(::java::lang::String *, JArray< jbyte > *, ::java::util::Date *, ::gnu::javax::crypto::keyring::Properties *); +private: + BinaryDataEntry(); +public: + static ::gnu::javax::crypto::keyring::BinaryDataEntry * decode(::java::io::DataInputStream *); + virtual ::java::lang::String * getContentType(); + virtual JArray< jbyte > * getData(); +public: // actually protected + virtual void encodePayload(); +public: + static const jint TYPE = 9; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_BinaryDataEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/CertPathEntry.h b/libjava/gnu/javax/crypto/keyring/CertPathEntry.h new file mode 100644 index 00000000000..67501a94fc6 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/CertPathEntry.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_CertPathEntry__ +#define __gnu_javax_crypto_keyring_CertPathEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class CertPathEntry; + class Properties; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::crypto::keyring::CertPathEntry : public ::gnu::javax::crypto::keyring::PrimitiveEntry +{ + +public: + CertPathEntry(JArray< ::java::security::cert::Certificate * > *, ::java::util::Date *, ::gnu::javax::crypto::keyring::Properties *); +private: + CertPathEntry(); +public: + static ::gnu::javax::crypto::keyring::CertPathEntry * decode(::java::io::DataInputStream *); + JArray< ::java::security::cert::Certificate * > * getCertPath(); +public: // actually protected + void encodePayload(); +public: + static const jint TYPE = 8; +private: + JArray< ::java::security::cert::Certificate * > * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::PrimitiveEntry)))) path; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_CertPathEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/CertificateEntry.h b/libjava/gnu/javax/crypto/keyring/CertificateEntry.h new file mode 100644 index 00000000000..48a4ecddf6b --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/CertificateEntry.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_CertificateEntry__ +#define __gnu_javax_crypto_keyring_CertificateEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class CertificateEntry; + class Properties; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::crypto::keyring::CertificateEntry : public ::gnu::javax::crypto::keyring::PrimitiveEntry +{ + +public: + CertificateEntry(::java::security::cert::Certificate *, ::java::util::Date *, ::gnu::javax::crypto::keyring::Properties *); +private: + CertificateEntry(); +public: + static ::gnu::javax::crypto::keyring::CertificateEntry * decode(::java::io::DataInputStream *); + ::java::security::cert::Certificate * getCertificate(); +public: // actually protected + void encodePayload(); +public: + static const jint TYPE = 5; +private: + ::java::security::cert::Certificate * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::PrimitiveEntry)))) certificate; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_CertificateEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/CompressedEntry.h b/libjava/gnu/javax/crypto/keyring/CompressedEntry.h new file mode 100644 index 00000000000..e674b970b56 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/CompressedEntry.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_CompressedEntry__ +#define __gnu_javax_crypto_keyring_CompressedEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class CompressedEntry; + class Properties; + } + } + } + } +} + +class gnu::javax::crypto::keyring::CompressedEntry : public ::gnu::javax::crypto::keyring::EnvelopeEntry +{ + +public: + CompressedEntry(::gnu::javax::crypto::keyring::Properties *); +private: + CompressedEntry(); +public: + static ::gnu::javax::crypto::keyring::CompressedEntry * decode(::java::io::DataInputStream *); +public: // actually protected + virtual void encodePayload(); +public: + static const jint TYPE = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_CompressedEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/EncryptedEntry.h b/libjava/gnu/javax/crypto/keyring/EncryptedEntry.h new file mode 100644 index 00000000000..e45fe221eb8 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/EncryptedEntry.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_EncryptedEntry__ +#define __gnu_javax_crypto_keyring_EncryptedEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class EncryptedEntry; + class Properties; + } + namespace mode + { + class IMode; + } + } + } + } +} + +class gnu::javax::crypto::keyring::EncryptedEntry : public ::gnu::javax::crypto::keyring::MaskableEnvelopeEntry +{ + +public: + EncryptedEntry(::java::lang::String *, ::java::lang::String *, ::gnu::javax::crypto::keyring::Properties *); +private: + EncryptedEntry(); +public: + static ::gnu::javax::crypto::keyring::EncryptedEntry * decode(::java::io::DataInputStream *); + virtual void decrypt(JArray< jbyte > *, JArray< jbyte > *); + virtual void encrypt(JArray< jbyte > *, JArray< jbyte > *); + virtual void encodePayload(); +private: + ::gnu::javax::crypto::mode::IMode * getMode(JArray< jbyte > *, JArray< jbyte > *, jint); +public: + static const jint TYPE = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_EncryptedEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/Entry.h b/libjava/gnu/javax/crypto/keyring/Entry.h new file mode 100644 index 00000000000..3efab548a56 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/Entry.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_Entry__ +#define __gnu_javax_crypto_keyring_Entry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Entry; + class Properties; + } + } + } + } +} + +class gnu::javax::crypto::keyring::Entry : public ::java::lang::Object +{ + +public: // actually protected + Entry(jint, ::gnu::javax::crypto::keyring::Properties *); + Entry(jint); +public: + virtual ::gnu::javax::crypto::keyring::Properties * getProperties(); + virtual JArray< jbyte > * getPayload(); + virtual void encode(::java::io::DataOutputStream *); + virtual ::java::lang::String * toString(); +public: // actually protected + virtual void defaultDecode(::java::io::DataInputStream *); + virtual void encodePayload() = 0; +private: + static ::java::util::logging::Logger * log; + static JArray< ::java::lang::String * > * TYPES; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::gnu::javax::crypto::keyring::Properties * properties; + JArray< jbyte > * payload; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_Entry__ diff --git a/libjava/gnu/javax/crypto/keyring/EnvelopeEntry.h b/libjava/gnu/javax/crypto/keyring/EnvelopeEntry.h new file mode 100644 index 00000000000..29bbb061f5d --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/EnvelopeEntry.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_EnvelopeEntry__ +#define __gnu_javax_crypto_keyring_EnvelopeEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Entry; + class EnvelopeEntry; + class Properties; + } + } + } + } +} + +class gnu::javax::crypto::keyring::EnvelopeEntry : public ::gnu::javax::crypto::keyring::Entry +{ + +public: + EnvelopeEntry(jint, ::gnu::javax::crypto::keyring::Properties *); +public: // actually protected + EnvelopeEntry(jint); +public: + virtual void add(::gnu::javax::crypto::keyring::Entry *); + virtual jboolean containsAlias(::java::lang::String *); + virtual jboolean containsEntry(::gnu::javax::crypto::keyring::Entry *); + virtual ::java::util::List * getEntries(); + virtual ::java::util::List * get(::java::lang::String *); + virtual ::java::lang::String * getAliasList(); + virtual jboolean remove(::gnu::javax::crypto::keyring::Entry *); + virtual jboolean remove(::java::lang::String *); + virtual ::java::lang::String * toString(); +public: // actually protected + virtual void encodePayload(); + virtual void setContainingEnvelope(::gnu::javax::crypto::keyring::EnvelopeEntry *); + virtual void decodeEnvelope(::java::io::DataInputStream *); +private: + void makeAliasList(); + static ::java::util::logging::Logger * log; +public: // actually protected + ::gnu::javax::crypto::keyring::EnvelopeEntry * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::Entry)))) containingEnvelope; + ::java::util::List * entries; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_EnvelopeEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/GnuPrivateKeyring.h b/libjava/gnu/javax/crypto/keyring/GnuPrivateKeyring.h new file mode 100644 index 00000000000..bb3317d5ea4 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/GnuPrivateKeyring.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_GnuPrivateKeyring__ +#define __gnu_javax_crypto_keyring_GnuPrivateKeyring__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class GnuPrivateKeyring; + } + } + } + } + namespace java + { + namespace security + { + class Key; + class PublicKey; + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::crypto::keyring::GnuPrivateKeyring : public ::gnu::javax::crypto::keyring::BaseKeyring +{ + +public: + GnuPrivateKeyring(::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *, jint); + GnuPrivateKeyring(); + virtual jboolean containsPrivateKey(::java::lang::String *); + virtual ::java::security::Key * getPrivateKey(::java::lang::String *, JArray< jchar > *); + virtual void putPrivateKey(::java::lang::String *, ::java::security::Key *, JArray< jchar > *); + virtual jboolean containsPublicKey(::java::lang::String *); + virtual ::java::security::PublicKey * getPublicKey(::java::lang::String *); + virtual void putPublicKey(::java::lang::String *, ::java::security::PublicKey *); + virtual jboolean containsCertPath(::java::lang::String *); + virtual JArray< ::java::security::cert::Certificate * > * getCertPath(::java::lang::String *); + virtual void putCertPath(::java::lang::String *, JArray< ::java::security::cert::Certificate * > *); +public: // actually protected + virtual void load(::java::io::InputStream *, JArray< jchar > *); + virtual void store(::java::io::OutputStream *, JArray< jchar > *); +private: + static ::java::util::logging::Logger * log; +public: + static const jint USAGE = 3; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::BaseKeyring)))) mac; + jint maclen; + ::java::lang::String * cipher; + ::java::lang::String * mode; + jint keylen; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_GnuPrivateKeyring__ diff --git a/libjava/gnu/javax/crypto/keyring/GnuPublicKeyring.h b/libjava/gnu/javax/crypto/keyring/GnuPublicKeyring.h new file mode 100644 index 00000000000..47abbac37aa --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/GnuPublicKeyring.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_GnuPublicKeyring__ +#define __gnu_javax_crypto_keyring_GnuPublicKeyring__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class GnuPublicKeyring; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::crypto::keyring::GnuPublicKeyring : public ::gnu::javax::crypto::keyring::BaseKeyring +{ + +public: + GnuPublicKeyring(::java::lang::String *, jint); + GnuPublicKeyring(); + virtual jboolean containsCertificate(::java::lang::String *); + virtual ::java::security::cert::Certificate * getCertificate(::java::lang::String *); + virtual void putCertificate(::java::lang::String *, ::java::security::cert::Certificate *); +public: // actually protected + virtual void load(::java::io::InputStream *, JArray< jchar > *); + virtual void store(::java::io::OutputStream *, JArray< jchar > *); +private: + static ::java::util::logging::Logger * log; +public: + static const jint USAGE = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_GnuPublicKeyring__ diff --git a/libjava/gnu/javax/crypto/keyring/IKeyring.h b/libjava/gnu/javax/crypto/keyring/IKeyring.h new file mode 100644 index 00000000000..a1827b31057 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/IKeyring.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_IKeyring__ +#define __gnu_javax_crypto_keyring_IKeyring__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Entry; + class IKeyring; + } + } + } + } +} + +class gnu::javax::crypto::keyring::IKeyring : public ::java::lang::Object +{ + +public: + virtual void load(::java::util::Map *) = 0; + virtual void store(::java::util::Map *) = 0; + virtual void reset() = 0; + virtual jint size() = 0; + virtual ::java::util::Enumeration * aliases() = 0; + virtual jboolean containsAlias(::java::lang::String *) = 0; + virtual ::java::util::List * get(::java::lang::String *) = 0; + virtual void add(::gnu::javax::crypto::keyring::Entry *) = 0; + virtual void remove(::java::lang::String *) = 0; + static ::java::lang::String * KEYRING_DATA_IN; + static ::java::lang::String * KEYRING_DATA_OUT; + static ::java::lang::String * KEYRING_PASSWORD; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_keyring_IKeyring__ diff --git a/libjava/gnu/javax/crypto/keyring/IPrivateKeyring.h b/libjava/gnu/javax/crypto/keyring/IPrivateKeyring.h new file mode 100644 index 00000000000..9f9cb25f607 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/IPrivateKeyring.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_IPrivateKeyring__ +#define __gnu_javax_crypto_keyring_IPrivateKeyring__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Entry; + class IPrivateKeyring; + } + } + } + } + namespace java + { + namespace security + { + class Key; + class PublicKey; + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::crypto::keyring::IPrivateKeyring : public ::java::lang::Object +{ + +public: + virtual jboolean containsPrivateKey(::java::lang::String *) = 0; + virtual ::java::security::Key * getPrivateKey(::java::lang::String *, JArray< jchar > *) = 0; + virtual void putPrivateKey(::java::lang::String *, ::java::security::Key *, JArray< jchar > *) = 0; + virtual jboolean containsPublicKey(::java::lang::String *) = 0; + virtual ::java::security::PublicKey * getPublicKey(::java::lang::String *) = 0; + virtual void putPublicKey(::java::lang::String *, ::java::security::PublicKey *) = 0; + virtual jboolean containsCertPath(::java::lang::String *) = 0; + virtual JArray< ::java::security::cert::Certificate * > * getCertPath(::java::lang::String *) = 0; + virtual void putCertPath(::java::lang::String *, JArray< ::java::security::cert::Certificate * > *) = 0; + virtual void load(::java::util::Map *) = 0; + virtual void store(::java::util::Map *) = 0; + virtual void reset() = 0; + virtual jint size() = 0; + virtual ::java::util::Enumeration * aliases() = 0; + virtual jboolean containsAlias(::java::lang::String *) = 0; + virtual ::java::util::List * get(::java::lang::String *) = 0; + virtual void add(::gnu::javax::crypto::keyring::Entry *) = 0; + virtual void remove(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_keyring_IPrivateKeyring__ diff --git a/libjava/gnu/javax/crypto/keyring/IPublicKeyring.h b/libjava/gnu/javax/crypto/keyring/IPublicKeyring.h new file mode 100644 index 00000000000..06029e27770 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/IPublicKeyring.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_IPublicKeyring__ +#define __gnu_javax_crypto_keyring_IPublicKeyring__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Entry; + class IPublicKeyring; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::crypto::keyring::IPublicKeyring : public ::java::lang::Object +{ + +public: + virtual jboolean containsCertificate(::java::lang::String *) = 0; + virtual ::java::security::cert::Certificate * getCertificate(::java::lang::String *) = 0; + virtual void putCertificate(::java::lang::String *, ::java::security::cert::Certificate *) = 0; + virtual void load(::java::util::Map *) = 0; + virtual void store(::java::util::Map *) = 0; + virtual void reset() = 0; + virtual jint size() = 0; + virtual ::java::util::Enumeration * aliases() = 0; + virtual jboolean containsAlias(::java::lang::String *) = 0; + virtual ::java::util::List * get(::java::lang::String *) = 0; + virtual void add(::gnu::javax::crypto::keyring::Entry *) = 0; + virtual void remove(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_keyring_IPublicKeyring__ diff --git a/libjava/gnu/javax/crypto/keyring/MalformedKeyringException.h b/libjava/gnu/javax/crypto/keyring/MalformedKeyringException.h new file mode 100644 index 00000000000..569911b5c5a --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/MalformedKeyringException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_MalformedKeyringException__ +#define __gnu_javax_crypto_keyring_MalformedKeyringException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class MalformedKeyringException; + } + } + } + } +} + +class gnu::javax::crypto::keyring::MalformedKeyringException : public ::java::io::IOException +{ + +public: + MalformedKeyringException(); + MalformedKeyringException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_MalformedKeyringException__ diff --git a/libjava/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.h b/libjava/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.h new file mode 100644 index 00000000000..1d07ee24035 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/MaskableEnvelopeEntry.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_MaskableEnvelopeEntry__ +#define __gnu_javax_crypto_keyring_MaskableEnvelopeEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Entry; + class MaskableEnvelopeEntry; + class Properties; + } + } + } + } +} + +class gnu::javax::crypto::keyring::MaskableEnvelopeEntry : public ::gnu::javax::crypto::keyring::EnvelopeEntry +{ + +public: + MaskableEnvelopeEntry(jint, ::gnu::javax::crypto::keyring::Properties *); +public: // actually protected + MaskableEnvelopeEntry(jint); + virtual void setMasked(jboolean); +public: + virtual jboolean isMasked(); + virtual void add(::gnu::javax::crypto::keyring::Entry *); + virtual jboolean containsEntry(::gnu::javax::crypto::keyring::Entry *); + virtual ::java::util::List * getEntries(); + virtual ::java::util::List * get(::java::lang::String *); + virtual jboolean remove(::gnu::javax::crypto::keyring::Entry *); + virtual jboolean remove(::java::lang::String *); + virtual ::java::lang::String * toString(); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::EnvelopeEntry)))) masked; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_MaskableEnvelopeEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/MeteredInputStream.h b/libjava/gnu/javax/crypto/keyring/MeteredInputStream.h new file mode 100644 index 00000000000..a6f3e4f0fee --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/MeteredInputStream.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_MeteredInputStream__ +#define __gnu_javax_crypto_keyring_MeteredInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class MeteredInputStream; + } + } + } + } +} + +class gnu::javax::crypto::keyring::MeteredInputStream : public ::java::io::FilterInputStream +{ + +public: // actually package-private + MeteredInputStream(::java::io::InputStream *, jint); +public: + jboolean limitReached(); + jint available(); + void close(); + void mark(jint); + jboolean markSupported(); + jint read(); + jint read(JArray< jbyte > *); + jint read(JArray< jbyte > *, jint, jint); + void reset(); + jlong skip(jlong); +private: + jint __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) count; + jint limit; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_MeteredInputStream__ diff --git a/libjava/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.h b/libjava/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.h new file mode 100644 index 00000000000..b4a539aed50 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_PasswordAuthenticatedEntry__ +#define __gnu_javax_crypto_keyring_PasswordAuthenticatedEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class PasswordAuthenticatedEntry; + class Properties; + } + namespace mac + { + class IMac; + } + } + } + } +} + +class gnu::javax::crypto::keyring::PasswordAuthenticatedEntry : public ::gnu::javax::crypto::keyring::MaskableEnvelopeEntry +{ + +public: + PasswordAuthenticatedEntry(::java::lang::String *, jint, ::gnu::javax::crypto::keyring::Properties *); +private: + PasswordAuthenticatedEntry(); +public: + static ::gnu::javax::crypto::keyring::PasswordAuthenticatedEntry * decode(::java::io::DataInputStream *, JArray< jchar > *); + static ::gnu::javax::crypto::keyring::PasswordAuthenticatedEntry * decode(::java::io::DataInputStream *); + void verify(JArray< jchar > *); + void authenticate(JArray< jchar > *); + void encode(::java::io::DataOutputStream *, JArray< jchar > *); +public: // actually protected + void encodePayload(::java::io::DataOutputStream *); +private: + ::gnu::javax::crypto::mac::IMac * getMac(JArray< jchar > *); + static ::java::util::logging::Logger * log; +public: + static const jint TYPE = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_PasswordAuthenticatedEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/PasswordEncryptedEntry.h b/libjava/gnu/javax/crypto/keyring/PasswordEncryptedEntry.h new file mode 100644 index 00000000000..b05b31af7ae --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/PasswordEncryptedEntry.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_PasswordEncryptedEntry__ +#define __gnu_javax_crypto_keyring_PasswordEncryptedEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class PasswordEncryptedEntry; + class Properties; + } + namespace mode + { + class IMode; + } + } + } + } +} + +class gnu::javax::crypto::keyring::PasswordEncryptedEntry : public ::gnu::javax::crypto::keyring::MaskableEnvelopeEntry +{ + +public: + PasswordEncryptedEntry(::java::lang::String *, ::java::lang::String *, jint, ::gnu::javax::crypto::keyring::Properties *); +private: + PasswordEncryptedEntry(); +public: + static ::gnu::javax::crypto::keyring::PasswordEncryptedEntry * decode(::java::io::DataInputStream *, JArray< jchar > *); + static ::gnu::javax::crypto::keyring::PasswordEncryptedEntry * decode(::java::io::DataInputStream *); + virtual void decrypt(JArray< jchar > *); + virtual void encrypt(JArray< jchar > *); + virtual void encode(::java::io::DataOutputStream *, JArray< jchar > *); +public: // actually protected + virtual void encodePayload(); +private: + ::gnu::javax::crypto::mode::IMode * getMode(JArray< jchar > *, jint); + static ::java::util::logging::Logger * log; +public: + static const jint TYPE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_PasswordEncryptedEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/PasswordProtectedEntry.h b/libjava/gnu/javax/crypto/keyring/PasswordProtectedEntry.h new file mode 100644 index 00000000000..6b81878eb49 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/PasswordProtectedEntry.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_PasswordProtectedEntry__ +#define __gnu_javax_crypto_keyring_PasswordProtectedEntry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class PasswordProtectedEntry; + } + } + } + } +} + +class gnu::javax::crypto::keyring::PasswordProtectedEntry : public ::java::lang::Object +{ + +public: + virtual void encode(::java::io::DataOutputStream *, JArray< jchar > *) = 0; + static ::java::lang::Integer * ITERATION_COUNT; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_keyring_PasswordProtectedEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/PrimitiveEntry.h b/libjava/gnu/javax/crypto/keyring/PrimitiveEntry.h new file mode 100644 index 00000000000..16d9d0072f0 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/PrimitiveEntry.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_PrimitiveEntry__ +#define __gnu_javax_crypto_keyring_PrimitiveEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class PrimitiveEntry; + class Properties; + } + } + } + } +} + +class gnu::javax::crypto::keyring::PrimitiveEntry : public ::gnu::javax::crypto::keyring::Entry +{ + +public: // actually protected + PrimitiveEntry(jint, ::java::util::Date *, ::gnu::javax::crypto::keyring::Properties *); + PrimitiveEntry(jint); +public: + virtual ::java::lang::String * getAlias(); + virtual ::java::util::Date * getCreationDate(); + virtual jboolean equals(::java::lang::Object *); +public: // actually protected + virtual void makeCreationDate(); + ::java::util::Date * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::Entry)))) creationDate; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_PrimitiveEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/PrivateKeyEntry.h b/libjava/gnu/javax/crypto/keyring/PrivateKeyEntry.h new file mode 100644 index 00000000000..33f2f53335b --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/PrivateKeyEntry.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_PrivateKeyEntry__ +#define __gnu_javax_crypto_keyring_PrivateKeyEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class PrivateKeyEntry; + class Properties; + } + } + } + } + namespace java + { + namespace security + { + class Key; + } + } +} + +class gnu::javax::crypto::keyring::PrivateKeyEntry : public ::gnu::javax::crypto::keyring::PrimitiveEntry +{ + +public: + PrivateKeyEntry(::java::security::Key *, ::java::util::Date *, ::gnu::javax::crypto::keyring::Properties *); +private: + PrivateKeyEntry(); +public: + static ::gnu::javax::crypto::keyring::PrivateKeyEntry * decode(::java::io::DataInputStream *); + ::java::security::Key * getKey(); +public: // actually protected + void encodePayload(); +public: + ::java::lang::String * toString(); + static const jint TYPE = 7; +private: + ::java::security::Key * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::PrimitiveEntry)))) key; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_PrivateKeyEntry__ diff --git a/libjava/gnu/javax/crypto/keyring/Properties.h b/libjava/gnu/javax/crypto/keyring/Properties.h new file mode 100644 index 00000000000..65d10a8d177 --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/Properties.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_Properties__ +#define __gnu_javax_crypto_keyring_Properties__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Properties; + } + } + } + } +} + +class gnu::javax::crypto::keyring::Properties : public ::java::lang::Object +{ + +public: + Properties(); + virtual void clear(); + virtual ::java::lang::Object * clone(); + virtual jboolean containsKey(::java::lang::String *); + virtual jboolean containsValue(::java::lang::String *); + virtual ::java::lang::String * put(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * get(::java::lang::String *); + virtual ::java::lang::String * remove(::java::lang::String *); + virtual void decode(::java::io::DataInputStream *); + virtual void encode(::java::io::DataOutputStream *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * canonicalize(::java::lang::String *); + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) props; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_Properties__ diff --git a/libjava/gnu/javax/crypto/keyring/PublicKeyEntry.h b/libjava/gnu/javax/crypto/keyring/PublicKeyEntry.h new file mode 100644 index 00000000000..88d4744f65d --- /dev/null +++ b/libjava/gnu/javax/crypto/keyring/PublicKeyEntry.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_keyring_PublicKeyEntry__ +#define __gnu_javax_crypto_keyring_PublicKeyEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace keyring + { + class Properties; + class PublicKeyEntry; + } + } + } + } + namespace java + { + namespace security + { + class PublicKey; + } + } +} + +class gnu::javax::crypto::keyring::PublicKeyEntry : public ::gnu::javax::crypto::keyring::PrimitiveEntry +{ + +public: + PublicKeyEntry(::java::security::PublicKey *, ::java::util::Date *, ::gnu::javax::crypto::keyring::Properties *); +private: + PublicKeyEntry(); +public: + static ::gnu::javax::crypto::keyring::PublicKeyEntry * decode(::java::io::DataInputStream *); + ::java::security::PublicKey * getKey(); +public: // actually protected + void encodePayload(); +public: + static const jint TYPE = 6; +private: + ::java::security::PublicKey * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::keyring::PrimitiveEntry)))) key; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_keyring_PublicKeyEntry__ diff --git a/libjava/gnu/javax/crypto/kwa/AESKeyWrap.h b/libjava/gnu/javax/crypto/kwa/AESKeyWrap.h new file mode 100644 index 00000000000..6e1528a75dd --- /dev/null +++ b/libjava/gnu/javax/crypto/kwa/AESKeyWrap.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_kwa_AESKeyWrap__ +#define __gnu_javax_crypto_kwa_AESKeyWrap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class Rijndael; + } + namespace kwa + { + class AESKeyWrap; + } + } + } + } +} + +class gnu::javax::crypto::kwa::AESKeyWrap : public ::gnu::javax::crypto::kwa::BaseKeyWrappingAlgorithm +{ + +public: + AESKeyWrap(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual JArray< jbyte > * engineWrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineUnwrap(JArray< jbyte > *, jint, jint); +private: + static JArray< jbyte > * DEFAULT_IV; + ::gnu::javax::crypto::cipher::Rijndael * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::kwa::BaseKeyWrappingAlgorithm)))) aes; + JArray< jbyte > * iv; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_kwa_AESKeyWrap__ diff --git a/libjava/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.h b/libjava/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.h new file mode 100644 index 00000000000..34e13193163 --- /dev/null +++ b/libjava/gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_kwa_BaseKeyWrappingAlgorithm__ +#define __gnu_javax_crypto_kwa_BaseKeyWrappingAlgorithm__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace kwa + { + class BaseKeyWrappingAlgorithm; + } + } + } + } +} + +class gnu::javax::crypto::kwa::BaseKeyWrappingAlgorithm : public ::java::lang::Object +{ + +public: // actually protected + BaseKeyWrappingAlgorithm(::java::lang::String *); +public: + virtual ::java::lang::String * name(); + virtual void init(::java::util::Map *); + virtual jint wrap(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * wrap(JArray< jbyte > *, jint, jint); + virtual jint unwrap(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * unwrap(JArray< jbyte > *, jint, jint); +public: // actually protected + virtual void engineInit(::java::util::Map *) = 0; + virtual JArray< jbyte > * engineWrap(JArray< jbyte > *, jint, jint) = 0; + virtual JArray< jbyte > * engineUnwrap(JArray< jbyte > *, jint, jint) = 0; + virtual ::gnu::java::security::util::PRNG * getDefaultPRNG(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; +private: + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_kwa_BaseKeyWrappingAlgorithm__ diff --git a/libjava/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.h b/libjava/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.h new file mode 100644 index 00000000000..56d032add60 --- /dev/null +++ b/libjava/gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_kwa_IKeyWrappingAlgorithm__ +#define __gnu_javax_crypto_kwa_IKeyWrappingAlgorithm__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace kwa + { + class IKeyWrappingAlgorithm; + } + } + } + } +} + +class gnu::javax::crypto::kwa::IKeyWrappingAlgorithm : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual void init(::java::util::Map *) = 0; + virtual jint wrap(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint) = 0; + virtual JArray< jbyte > * wrap(JArray< jbyte > *, jint, jint) = 0; + virtual jint unwrap(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint) = 0; + virtual JArray< jbyte > * unwrap(JArray< jbyte > *, jint, jint) = 0; + static ::java::lang::String * KEY_ENCRYPTION_KEY_MATERIAL; + static ::java::lang::String * INITIAL_VALUE; + static ::java::lang::String * SOURCE_OF_RANDOMNESS; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_kwa_IKeyWrappingAlgorithm__ diff --git a/libjava/gnu/javax/crypto/kwa/KeyUnwrappingException.h b/libjava/gnu/javax/crypto/kwa/KeyUnwrappingException.h new file mode 100644 index 00000000000..b9d9039fbc2 --- /dev/null +++ b/libjava/gnu/javax/crypto/kwa/KeyUnwrappingException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_kwa_KeyUnwrappingException__ +#define __gnu_javax_crypto_kwa_KeyUnwrappingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace kwa + { + class KeyUnwrappingException; + } + } + } + } +} + +class gnu::javax::crypto::kwa::KeyUnwrappingException : public ::java::security::GeneralSecurityException +{ + +public: + KeyUnwrappingException(); + KeyUnwrappingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_kwa_KeyUnwrappingException__ diff --git a/libjava/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.h b/libjava/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.h new file mode 100644 index 00000000000..ab443dbe7e4 --- /dev/null +++ b/libjava/gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_kwa_KeyWrappingAlgorithmFactory__ +#define __gnu_javax_crypto_kwa_KeyWrappingAlgorithmFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace kwa + { + class IKeyWrappingAlgorithm; + class KeyWrappingAlgorithmFactory; + } + } + } + } +} + +class gnu::javax::crypto::kwa::KeyWrappingAlgorithmFactory : public ::java::lang::Object +{ + + KeyWrappingAlgorithmFactory(); +public: + static ::gnu::javax::crypto::kwa::IKeyWrappingAlgorithm * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); +private: + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_kwa_KeyWrappingAlgorithmFactory__ diff --git a/libjava/gnu/javax/crypto/kwa/TripleDESKeyWrap.h b/libjava/gnu/javax/crypto/kwa/TripleDESKeyWrap.h new file mode 100644 index 00000000000..5f23a70159c --- /dev/null +++ b/libjava/gnu/javax/crypto/kwa/TripleDESKeyWrap.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_kwa_TripleDESKeyWrap__ +#define __gnu_javax_crypto_kwa_TripleDESKeyWrap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class Sha160; + } + } + } + namespace javax + { + namespace crypto + { + namespace assembly + { + class Assembly; + } + namespace kwa + { + class TripleDESKeyWrap; + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + } + } +} + +class gnu::javax::crypto::kwa::TripleDESKeyWrap : public ::gnu::javax::crypto::kwa::BaseKeyWrappingAlgorithm +{ + +public: + TripleDESKeyWrap(); +public: // actually protected + virtual void engineInit(::java::util::Map *); + virtual JArray< jbyte > * engineWrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineUnwrap(JArray< jbyte > *, jint, jint); +private: + void nextRandomBytes(JArray< jbyte > *); + static JArray< jbyte > * DEFAULT_IV; + ::gnu::javax::crypto::assembly::Assembly * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::kwa::BaseKeyWrappingAlgorithm)))) asm$; + ::java::util::HashMap * asmAttributes; + ::java::util::HashMap * modeAttributes; + ::gnu::java::security::hash::Sha160 * sha; + ::java::security::SecureRandom * rnd; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_kwa_TripleDESKeyWrap__ diff --git a/libjava/gnu/javax/crypto/mac/BaseMac.h b/libjava/gnu/javax/crypto/mac/BaseMac.h new file mode 100644 index 00000000000..aebe9313ed7 --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/BaseMac.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_BaseMac__ +#define __gnu_javax_crypto_mac_BaseMac__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace crypto + { + namespace mac + { + class BaseMac; + } + } + } + } +} + +class gnu::javax::crypto::mac::BaseMac : public ::java::lang::Object +{ + +public: // actually protected + BaseMac(::java::lang::String *); + BaseMac(::java::lang::String *, ::gnu::java::security::hash::IMessageDigest *); +public: + virtual ::java::lang::String * name(); + virtual jint macSize(); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); + virtual void reset(); + virtual ::java::lang::Object * clone(); + virtual void init(::java::util::Map *) = 0; + virtual JArray< jbyte > * digest() = 0; + virtual jboolean selfTest() = 0; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; + ::gnu::java::security::hash::IMessageDigest * underlyingHash; + jint truncatedSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_BaseMac__ diff --git a/libjava/gnu/javax/crypto/mac/HMac.h b/libjava/gnu/javax/crypto/mac/HMac.h new file mode 100644 index 00000000000..c38a9e79546 --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/HMac.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_HMac__ +#define __gnu_javax_crypto_mac_HMac__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace crypto + { + namespace mac + { + class HMac; + } + } + } + } +} + +class gnu::javax::crypto::mac::HMac : public ::gnu::javax::crypto::mac::BaseMac +{ + +public: // actually protected + HMac(::gnu::java::security::hash::IMessageDigest *); +public: + virtual ::java::lang::Object * clone(); + virtual void init(::java::util::Map *); + virtual void reset(); + virtual JArray< jbyte > * digest(); + virtual jboolean selfTest(); + static ::java::lang::String * USE_WITH_PKCS5_V2; +private: + static const jbyte IPAD_BYTE = 54; + static const jbyte OPAD_BYTE = 92; + static ::java::lang::Boolean * valid; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mac::BaseMac)))) macSize; + jint blockSize; + ::gnu::java::security::hash::IMessageDigest * ipadHash; + ::gnu::java::security::hash::IMessageDigest * opadHash; + JArray< jbyte > * ipad; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_HMac__ diff --git a/libjava/gnu/javax/crypto/mac/HMacFactory.h b/libjava/gnu/javax/crypto/mac/HMacFactory.h new file mode 100644 index 00000000000..e32104e7a1c --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/HMacFactory.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_HMacFactory__ +#define __gnu_javax_crypto_mac_HMacFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class HMacFactory; + class IMac; + } + } + } + } +} + +class gnu::javax::crypto::mac::HMacFactory : public ::java::lang::Object +{ + + HMacFactory(); +public: + static ::gnu::javax::crypto::mac::IMac * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_HMacFactory__ diff --git a/libjava/gnu/javax/crypto/mac/IMac.h b/libjava/gnu/javax/crypto/mac/IMac.h new file mode 100644 index 00000000000..9bed61ae238 --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/IMac.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_IMac__ +#define __gnu_javax_crypto_mac_IMac__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + } + } + } + } +} + +class gnu::javax::crypto::mac::IMac : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual jint macSize() = 0; + virtual void init(::java::util::Map *) = 0; + virtual void update(jbyte) = 0; + virtual void update(JArray< jbyte > *, jint, jint) = 0; + virtual JArray< jbyte > * digest() = 0; + virtual void reset() = 0; + virtual jboolean selfTest() = 0; + virtual ::java::lang::Object * clone() = 0; + static ::java::lang::String * MAC_KEY_MATERIAL; + static ::java::lang::String * TRUNCATED_SIZE; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_mac_IMac__ diff --git a/libjava/gnu/javax/crypto/mac/MacFactory.h b/libjava/gnu/javax/crypto/mac/MacFactory.h new file mode 100644 index 00000000000..141a59cf66b --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/MacFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_MacFactory__ +#define __gnu_javax_crypto_mac_MacFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + class MacFactory; + } + } + } + } +} + +class gnu::javax::crypto::mac::MacFactory : public ::java::lang::Object +{ + + MacFactory(); +public: + static ::gnu::javax::crypto::mac::IMac * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); +private: + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_MacFactory__ diff --git a/libjava/gnu/javax/crypto/mac/MacInputStream.h b/libjava/gnu/javax/crypto/mac/MacInputStream.h new file mode 100644 index 00000000000..52087df38af --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/MacInputStream.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_MacInputStream__ +#define __gnu_javax_crypto_mac_MacInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + class MacInputStream; + } + } + } + } +} + +class gnu::javax::crypto::mac::MacInputStream : public ::java::io::FilterInputStream +{ + +public: + MacInputStream(::java::io::InputStream *, ::gnu::javax::crypto::mac::IMac *); + virtual ::gnu::javax::crypto::mac::IMac * getMac(); + virtual void setMac(::gnu::javax::crypto::mac::IMac *); + virtual void on(jboolean); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + jboolean __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) digesting; + ::gnu::javax::crypto::mac::IMac * mac; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_MacInputStream__ diff --git a/libjava/gnu/javax/crypto/mac/MacOutputStream.h b/libjava/gnu/javax/crypto/mac/MacOutputStream.h new file mode 100644 index 00000000000..936a59927de --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/MacOutputStream.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_MacOutputStream__ +#define __gnu_javax_crypto_mac_MacOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + class MacOutputStream; + } + } + } + } +} + +class gnu::javax::crypto::mac::MacOutputStream : public ::java::io::FilterOutputStream +{ + +public: + MacOutputStream(::java::io::OutputStream *, ::gnu::javax::crypto::mac::IMac *); + virtual ::gnu::javax::crypto::mac::IMac * getMac(); + virtual void setMac(::gnu::javax::crypto::mac::IMac *); + virtual void on(jboolean); + virtual void write(jint); + virtual void write(JArray< jbyte > *, jint, jint); +private: + jboolean __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) digesting; + ::gnu::javax::crypto::mac::IMac * mac; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_MacOutputStream__ diff --git a/libjava/gnu/javax/crypto/mac/OMAC.h b/libjava/gnu/javax/crypto/mac/OMAC.h new file mode 100644 index 00000000000..e608c466c3b --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/OMAC.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_OMAC__ +#define __gnu_javax_crypto_mac_OMAC__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mac + { + class OMAC; + } + namespace mode + { + class IMode; + } + } + } + } +} + +class gnu::javax::crypto::mac::OMAC : public ::java::lang::Object +{ + +public: + OMAC(::gnu::javax::crypto::cipher::IBlockCipher *); + virtual ::java::lang::Object * clone(); + virtual ::java::lang::String * name(); + virtual jint macSize(); + virtual void init(::java::util::Map *); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * digest(); + virtual void digest(JArray< jbyte > *, jint); + virtual void reset(); + virtual jboolean selfTest(); +private: + void process(); + static ::java::util::logging::Logger * log; + static const jbyte C1 = -121; + static const jbyte C2 = 27; + static JArray< jbyte > * KEY0; + static JArray< jbyte > * DIGEST0; + static ::java::lang::Boolean * valid; + ::gnu::javax::crypto::cipher::IBlockCipher * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cipher; + ::java::lang::String * name__; + ::gnu::javax::crypto::mode::IMode * mode; + jint blockSize; + jint outputSize; + JArray< jbyte > * Lu; + JArray< jbyte > * Lu2; + JArray< jbyte > * M; + JArray< jbyte > * Y; + jboolean init__; + jint index; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_OMAC__ diff --git a/libjava/gnu/javax/crypto/mac/TMMH16.h b/libjava/gnu/javax/crypto/mac/TMMH16.h new file mode 100644 index 00000000000..9ca8a7a4fd5 --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/TMMH16.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_TMMH16__ +#define __gnu_javax_crypto_mac_TMMH16__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace mac + { + class TMMH16; + } + } + } + } +} + +class gnu::javax::crypto::mac::TMMH16 : public ::gnu::javax::crypto::mac::BaseMac +{ + +public: + TMMH16(); + virtual jint macSize(); + virtual void init(::java::util::Map *); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * digest(); + virtual void reset(); + virtual jboolean selfTest(); + virtual ::java::lang::Object * clone(); + virtual void update(jbyte, ::gnu::java::security::prng::IRandom *); + virtual void update(JArray< jbyte > *, jint, jint, ::gnu::java::security::prng::IRandom *); + virtual JArray< jbyte > * digest(::gnu::java::security::prng::IRandom *); +private: + jint getNextKeyWord(::gnu::java::security::prng::IRandom *); + void doFinalRound(::gnu::java::security::prng::IRandom *); +public: + static ::java::lang::String * TAG_LENGTH; + static ::java::lang::String * KEYSTREAM; + static ::java::lang::String * PREFIX; +private: + static const jint P = 65537; + static ::java::lang::Boolean * valid; + jint __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mac::BaseMac)))) tagWords; + ::gnu::java::security::prng::IRandom * keystream; + JArray< jbyte > * prefix; + jlong keyWords; + jlong msgLength; + jlong msgWords; + JArray< jint > * context; + JArray< jint > * K0; + JArray< jint > * Ki; + jint Mi; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_TMMH16__ diff --git a/libjava/gnu/javax/crypto/mac/UHash32$L1Hash32.h b/libjava/gnu/javax/crypto/mac/UHash32$L1Hash32.h new file mode 100644 index 00000000000..8df86621dad --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/UHash32$L1Hash32.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_UHash32$L1Hash32__ +#define __gnu_javax_crypto_mac_UHash32$L1Hash32__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class UHash32; + class UHash32$L1Hash32; + class UHash32$L2Hash32; + class UHash32$L3Hash32; + } + } + } + } +} + +class gnu::javax::crypto::mac::UHash32$L1Hash32 : public ::java::lang::Object +{ + +public: // actually package-private + UHash32$L1Hash32(::gnu::javax::crypto::mac::UHash32 *); +private: + UHash32$L1Hash32(::gnu::javax::crypto::mac::UHash32 *, ::gnu::javax::crypto::mac::UHash32$L1Hash32 *); +public: + virtual ::java::lang::Object * clone(); + virtual void init(JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *); + virtual void update(jbyte); + virtual JArray< jbyte > * digest(); + virtual void reset(); +private: + JArray< jbyte > * nh32(jint); + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; + JArray< jbyte > * buffer; + jint count; + ::java::io::ByteArrayOutputStream * Y; + jlong totalCount; + ::gnu::javax::crypto::mac::UHash32$L2Hash32 * l2hash; + ::gnu::javax::crypto::mac::UHash32$L3Hash32 * l3hash; +public: // actually package-private + ::gnu::javax::crypto::mac::UHash32 * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_UHash32$L1Hash32__ diff --git a/libjava/gnu/javax/crypto/mac/UHash32$L2Hash32.h b/libjava/gnu/javax/crypto/mac/UHash32$L2Hash32.h new file mode 100644 index 00000000000..1971adda4c5 --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/UHash32$L2Hash32.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_UHash32$L2Hash32__ +#define __gnu_javax_crypto_mac_UHash32$L2Hash32__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class UHash32; + class UHash32$L2Hash32; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::mac::UHash32$L2Hash32 : public ::java::lang::Object +{ + +public: // actually package-private + UHash32$L2Hash32(::gnu::javax::crypto::mac::UHash32 *, JArray< jbyte > *); +private: + UHash32$L2Hash32(::gnu::javax::crypto::mac::UHash32 *, ::gnu::javax::crypto::mac::UHash32$L2Hash32 *); +public: + virtual ::java::lang::Object * clone(); +public: // actually package-private + virtual void update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * digest(); + virtual void reset(); +private: + JArray< jbyte > * yTo16bytes(); + void poly(jint, ::java::math::BigInteger *, ::java::math::BigInteger *, JArray< jbyte > *, jint, jint); + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) k64; + ::java::math::BigInteger * k128; + ::java::math::BigInteger * y; + jboolean highBound; + jlong bytesSoFar; + ::java::io::ByteArrayOutputStream * buffer; +public: // actually package-private + ::gnu::javax::crypto::mac::UHash32 * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_UHash32$L2Hash32__ diff --git a/libjava/gnu/javax/crypto/mac/UHash32$L3Hash32.h b/libjava/gnu/javax/crypto/mac/UHash32$L3Hash32.h new file mode 100644 index 00000000000..4e6b580b50b --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/UHash32$L3Hash32.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_UHash32$L3Hash32__ +#define __gnu_javax_crypto_mac_UHash32$L3Hash32__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class UHash32; + class UHash32$L3Hash32; + } + } + } + } +} + +class gnu::javax::crypto::mac::UHash32$L3Hash32 : public ::java::lang::Object +{ + +public: // actually package-private + UHash32$L3Hash32(::gnu::javax::crypto::mac::UHash32 *, JArray< jbyte > *, JArray< jbyte > *); +private: + UHash32$L3Hash32(::gnu::javax::crypto::mac::UHash32 *, JArray< jint > *); +public: + virtual ::java::lang::Object * clone(); +public: // actually package-private + virtual JArray< jbyte > * digest(JArray< jbyte > *); +private: + static const jlong PRIME_36 = 68719476731LL; + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) k; +public: // actually package-private + ::gnu::javax::crypto::mac::UHash32 * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_UHash32$L3Hash32__ diff --git a/libjava/gnu/javax/crypto/mac/UHash32.h b/libjava/gnu/javax/crypto/mac/UHash32.h new file mode 100644 index 00000000000..0b2be15f463 --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/UHash32.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_UHash32__ +#define __gnu_javax_crypto_mac_UHash32__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class UHash32; + class UHash32$L1Hash32; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::mac::UHash32 : public ::gnu::javax::crypto::mac::BaseMac +{ + +public: + UHash32(); +private: + UHash32(::gnu::javax::crypto::mac::UHash32 *); +public: // actually package-private + static ::java::math::BigInteger * prime(jint); +public: + virtual ::java::lang::Object * clone(); + virtual jint macSize(); + virtual void init(::java::util::Map *); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * digest(); + virtual void reset(); + virtual jboolean selfTest(); +private: + static ::java::math::BigInteger * PRIME_19; + static ::java::math::BigInteger * PRIME_32; + static ::java::math::BigInteger * PRIME_36; + static ::java::math::BigInteger * PRIME_64; + static ::java::math::BigInteger * PRIME_128; +public: // actually package-private + static ::java::math::BigInteger * TWO; + static jlong BOUNDARY; + static ::java::math::BigInteger * LOWER_RANGE; + static ::java::math::BigInteger * UPPER_RANGE; + static JArray< jbyte > * ALL_ZEROES; + jint __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mac::BaseMac)))) streams; + JArray< ::gnu::javax::crypto::mac::UHash32$L1Hash32 * > * l1hash; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_UHash32__ diff --git a/libjava/gnu/javax/crypto/mac/UMac32.h b/libjava/gnu/javax/crypto/mac/UMac32.h new file mode 100644 index 00000000000..7cec99eff13 --- /dev/null +++ b/libjava/gnu/javax/crypto/mac/UMac32.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mac_UMac32__ +#define __gnu_javax_crypto_mac_UMac32__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class UHash32; + class UMac32; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::mac::UMac32 : public ::gnu::javax::crypto::mac::BaseMac +{ + +public: + UMac32(); +private: + UMac32(::gnu::javax::crypto::mac::UMac32 *); +public: + virtual ::java::lang::Object * clone(); + virtual jint macSize(); + virtual void init(::java::util::Map *); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * digest(); + virtual void reset(); + virtual jboolean selfTest(); +private: + JArray< jbyte > * pdf(); +public: + static ::java::lang::String * NONCE_MATERIAL; +private: + static ::java::lang::String * TV1; + static ::java::math::BigInteger * MAX_NONCE_ITERATIONS; +public: // actually package-private + static const jint OUTPUT_LEN = 8; + static const jint L1_KEY_LEN = 1024; + static const jint KEY_LEN = 16; +private: + static ::java::lang::Boolean * valid; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mac::BaseMac)))) nonce; + ::gnu::javax::crypto::mac::UHash32 * uhash32; + ::java::math::BigInteger * nonceReuseCount; + JArray< jbyte > * K; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mac_UMac32__ diff --git a/libjava/gnu/javax/crypto/mode/BaseMode.h b/libjava/gnu/javax/crypto/mode/BaseMode.h new file mode 100644 index 00000000000..25ad4aaf0c1 --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/BaseMode.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_BaseMode__ +#define __gnu_javax_crypto_mode_BaseMode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class BaseMode; + } + } + } + } +} + +class gnu::javax::crypto::mode::BaseMode : public ::java::lang::Object +{ + +public: // actually protected + BaseMode(::java::lang::String *, ::gnu::javax::crypto::cipher::IBlockCipher *, jint); +public: + virtual void update(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual ::java::lang::String * name(); + virtual jint defaultBlockSize(); + virtual jint defaultKeySize(); + virtual ::java::util::Iterator * blockSizes(); + virtual ::java::util::Iterator * keySizes(); + virtual void init(::java::util::Map *); + virtual jint currentBlockSize(); + virtual void reset(); + virtual jboolean selfTest(); + virtual ::java::lang::Object * clone() = 0; + virtual void setup() = 0; + virtual void teardown() = 0; + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; +private: + jboolean testSymmetry(jint, jint); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; + jint state; + ::gnu::javax::crypto::cipher::IBlockCipher * cipher; + jint cipherBlockSize; + jint modeBlockSize; + JArray< jbyte > * iv; + ::java::lang::Object * lock; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_BaseMode__ diff --git a/libjava/gnu/javax/crypto/mode/CBC.h b/libjava/gnu/javax/crypto/mode/CBC.h new file mode 100644 index 00000000000..24126a67b8f --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/CBC.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_CBC__ +#define __gnu_javax_crypto_mode_CBC__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class CBC; + } + } + } + } +} + +class gnu::javax::crypto::mode::CBC : public ::gnu::javax::crypto::mode::BaseMode +{ + +public: // actually package-private + CBC(::gnu::javax::crypto::cipher::IBlockCipher *, jint); +private: + CBC(::gnu::javax::crypto::mode::CBC *); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(); + virtual void teardown(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mode::BaseMode)))) lastBlock; + JArray< jbyte > * scratch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_CBC__ diff --git a/libjava/gnu/javax/crypto/mode/CFB.h b/libjava/gnu/javax/crypto/mode/CFB.h new file mode 100644 index 00000000000..3931a9b2d9e --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/CFB.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_CFB__ +#define __gnu_javax_crypto_mode_CFB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class CFB; + } + } + } + } +} + +class gnu::javax::crypto::mode::CFB : public ::gnu::javax::crypto::mode::BaseMode +{ + +public: // actually package-private + CFB(::gnu::javax::crypto::cipher::IBlockCipher *, jint); +private: + CFB(::gnu::javax::crypto::mode::CFB *); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(); + virtual void teardown(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mode::BaseMode)))) shiftRegister; + JArray< jbyte > * scratch; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_CFB__ diff --git a/libjava/gnu/javax/crypto/mode/CTR.h b/libjava/gnu/javax/crypto/mode/CTR.h new file mode 100644 index 00000000000..3bb11e64271 --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/CTR.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_CTR__ +#define __gnu_javax_crypto_mode_CTR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class CTR; + } + } + } + } +} + +class gnu::javax::crypto::mode::CTR : public ::gnu::javax::crypto::mode::BaseMode +{ + +public: // actually package-private + CTR(::gnu::javax::crypto::cipher::IBlockCipher *, jint); +private: + CTR(::gnu::javax::crypto::mode::CTR *); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(); + virtual void teardown(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual ::java::util::Iterator * blockSizes(); +private: + void ctr(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + jint __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mode::BaseMode)))) off; + JArray< jbyte > * counter; + JArray< jbyte > * enc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_CTR__ diff --git a/libjava/gnu/javax/crypto/mode/EAX.h b/libjava/gnu/javax/crypto/mode/EAX.h new file mode 100644 index 00000000000..d47f07b4172 --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/EAX.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_EAX__ +#define __gnu_javax_crypto_mode_EAX__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mac + { + class IMac; + } + namespace mode + { + class EAX; + class IMode; + } + } + } + } +} + +class gnu::javax::crypto::mode::EAX : public ::java::lang::Object +{ + +public: + EAX(::gnu::javax::crypto::cipher::IBlockCipher *, jint); + virtual ::java::lang::Object * clone(); + virtual ::java::lang::String * name(); + virtual jint defaultBlockSize(); + virtual jint defaultKeySize(); + virtual ::java::util::Iterator * blockSizes(); + virtual ::java::util::Iterator * keySizes(); + virtual void init(::java::util::Map *); + virtual jint currentBlockSize(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void update(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void reset(); + virtual jboolean selfTest(); + virtual jint macSize(); + virtual JArray< jbyte > * digest(); + virtual void digest(JArray< jbyte > *, jint); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) tagSize; + ::gnu::javax::crypto::mac::IMac * nonceOmac; + ::gnu::javax::crypto::mac::IMac * headerOmac; + ::gnu::javax::crypto::mac::IMac * msgOmac; + ::gnu::javax::crypto::mode::IMode * ctr; + jint state; + jboolean init__; + jint cipherBlockSize; + ::gnu::javax::crypto::cipher::IBlockCipher * cipher; + JArray< jbyte > * t_n; + static jboolean valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_EAX__ diff --git a/libjava/gnu/javax/crypto/mode/ECB.h b/libjava/gnu/javax/crypto/mode/ECB.h new file mode 100644 index 00000000000..ddde9c777f3 --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/ECB.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_ECB__ +#define __gnu_javax_crypto_mode_ECB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class ECB; + } + } + } + } +} + +class gnu::javax::crypto::mode::ECB : public ::gnu::javax::crypto::mode::BaseMode +{ + +public: // actually package-private + ECB(::gnu::javax::crypto::cipher::IBlockCipher *, jint); +private: + ECB(::gnu::javax::crypto::mode::ECB *); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(); + virtual void teardown(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_ECB__ diff --git a/libjava/gnu/javax/crypto/mode/IAuthenticatedMode.h b/libjava/gnu/javax/crypto/mode/IAuthenticatedMode.h new file mode 100644 index 00000000000..7954ce83dba --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/IAuthenticatedMode.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_IAuthenticatedMode__ +#define __gnu_javax_crypto_mode_IAuthenticatedMode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mode + { + class IAuthenticatedMode; + } + } + } + } +} + +class gnu::javax::crypto::mode::IAuthenticatedMode : public ::java::lang::Object +{ + +public: + virtual void update(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual ::java::lang::String * name() = 0; + virtual jint defaultBlockSize() = 0; + virtual jint defaultKeySize() = 0; + virtual ::java::util::Iterator * blockSizes() = 0; + virtual ::java::util::Iterator * keySizes() = 0; + virtual void init(::java::util::Map *) = 0; + virtual jint currentBlockSize() = 0; + virtual void reset() = 0; + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual jboolean selfTest() = 0; + virtual jint macSize() = 0; + virtual void update(jbyte) = 0; + virtual void update(JArray< jbyte > *, jint, jint) = 0; + virtual JArray< jbyte > * digest() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_mode_IAuthenticatedMode__ diff --git a/libjava/gnu/javax/crypto/mode/ICM.h b/libjava/gnu/javax/crypto/mode/ICM.h new file mode 100644 index 00000000000..ee18743e849 --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/ICM.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_ICM__ +#define __gnu_javax_crypto_mode_ICM__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class ICM; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::mode::ICM : public ::gnu::javax::crypto::mode::BaseMode +{ + +public: // actually package-private + ICM(::gnu::javax::crypto::cipher::IBlockCipher *, jint); +private: + ICM(::gnu::javax::crypto::mode::ICM *); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(); + virtual void teardown(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); +private: + void icm(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + static ::java::math::BigInteger * TWO_FIFTY_SIX; + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mode::BaseMode)))) maxBlocksPerSegment; + ::java::math::BigInteger * counterRange; + ::java::math::BigInteger * C0; + ::java::math::BigInteger * blockNdx; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_ICM__ diff --git a/libjava/gnu/javax/crypto/mode/IMode.h b/libjava/gnu/javax/crypto/mode/IMode.h new file mode 100644 index 00000000000..8ee59c1ff2f --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/IMode.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_IMode__ +#define __gnu_javax_crypto_mode_IMode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mode + { + class IMode; + } + } + } + } +} + +class gnu::javax::crypto::mode::IMode : public ::java::lang::Object +{ + +public: + virtual void update(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual ::java::lang::String * name() = 0; + virtual jint defaultBlockSize() = 0; + virtual jint defaultKeySize() = 0; + virtual ::java::util::Iterator * blockSizes() = 0; + virtual ::java::util::Iterator * keySizes() = 0; + virtual void init(::java::util::Map *) = 0; + virtual jint currentBlockSize() = 0; + virtual void reset() = 0; + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint) = 0; + virtual jboolean selfTest() = 0; + static ::java::lang::String * STATE; + static ::java::lang::String * MODE_BLOCK_SIZE; + static ::java::lang::String * IV; + static const jint ENCRYPTION = 1; + static const jint DECRYPTION = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_mode_IMode__ diff --git a/libjava/gnu/javax/crypto/mode/ModeFactory.h b/libjava/gnu/javax/crypto/mode/ModeFactory.h new file mode 100644 index 00000000000..d3f694e6628 --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/ModeFactory.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_ModeFactory__ +#define __gnu_javax_crypto_mode_ModeFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class IMode; + class ModeFactory; + } + } + } + } +} + +class gnu::javax::crypto::mode::ModeFactory : public ::java::lang::Object +{ + + ModeFactory(); +public: + static ::gnu::javax::crypto::mode::IMode * getInstance(::java::lang::String *, ::java::lang::String *, jint); + static ::gnu::javax::crypto::mode::IMode * getInstance(::java::lang::String *, ::gnu::javax::crypto::cipher::IBlockCipher *, jint); + static ::java::util::Set * getNames(); +private: + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_ModeFactory__ diff --git a/libjava/gnu/javax/crypto/mode/OFB.h b/libjava/gnu/javax/crypto/mode/OFB.h new file mode 100644 index 00000000000..04bbaece8cb --- /dev/null +++ b/libjava/gnu/javax/crypto/mode/OFB.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_mode_OFB__ +#define __gnu_javax_crypto_mode_OFB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace mode + { + class OFB; + } + } + } + } +} + +class gnu::javax::crypto::mode::OFB : public ::gnu::javax::crypto::mode::BaseMode +{ + +public: // actually package-private + OFB(::gnu::javax::crypto::cipher::IBlockCipher *, jint); +private: + OFB(::gnu::javax::crypto::mode::OFB *); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(); + virtual void teardown(); + virtual void encryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); + virtual void decryptBlock(JArray< jbyte > *, jint, JArray< jbyte > *, jint); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::mode::BaseMode)))) outputBlock; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_mode_OFB__ diff --git a/libjava/gnu/javax/crypto/pad/BasePad.h b/libjava/gnu/javax/crypto/pad/BasePad.h new file mode 100644 index 00000000000..130b4000b08 --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/BasePad.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_BasePad__ +#define __gnu_javax_crypto_pad_BasePad__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class BasePad; + } + } + } + } +} + +class gnu::javax::crypto::pad::BasePad : public ::java::lang::Object +{ + +public: // actually protected + BasePad(::java::lang::String *); +public: + virtual ::java::lang::String * name(); + virtual void init(jint); + virtual void init(::java::util::Map *); + virtual void reset(); + virtual jboolean selfTest(); +public: // actually protected + virtual jboolean test1BlockSize(jint, JArray< jbyte > *); +public: + virtual void setup() = 0; + virtual JArray< jbyte > * pad(JArray< jbyte > *, jint, jint) = 0; + virtual jint unpad(JArray< jbyte > *, jint, jint) = 0; +private: + static ::java::util::logging::Logger * log; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name__; + jint blockSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_BasePad__ diff --git a/libjava/gnu/javax/crypto/pad/IPad.h b/libjava/gnu/javax/crypto/pad/IPad.h new file mode 100644 index 00000000000..67e29892452 --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/IPad.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_IPad__ +#define __gnu_javax_crypto_pad_IPad__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class IPad; + } + } + } + } +} + +class gnu::javax::crypto::pad::IPad : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * name() = 0; + virtual void init(jint) = 0; + virtual void init(::java::util::Map *) = 0; + virtual JArray< jbyte > * pad(JArray< jbyte > *, jint, jint) = 0; + virtual jint unpad(JArray< jbyte > *, jint, jint) = 0; + virtual void reset() = 0; + virtual jboolean selfTest() = 0; + static ::java::lang::String * PADDING_BLOCK_SIZE; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_pad_IPad__ diff --git a/libjava/gnu/javax/crypto/pad/ISO10126.h b/libjava/gnu/javax/crypto/pad/ISO10126.h new file mode 100644 index 00000000000..2d7debaa4dd --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/ISO10126.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_ISO10126__ +#define __gnu_javax_crypto_pad_ISO10126__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace pad + { + class ISO10126; + } + } + } + } +} + +class gnu::javax::crypto::pad::ISO10126 : public ::gnu::javax::crypto::pad::BasePad +{ + +public: // actually package-private + ISO10126(); +public: + void setup(); + JArray< jbyte > * pad(JArray< jbyte > *, jint, jint); + jint unpad(JArray< jbyte > *, jint, jint); + jboolean selfTest(); +private: + ::gnu::java::security::util::PRNG * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::pad::BasePad)))) prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_ISO10126__ diff --git a/libjava/gnu/javax/crypto/pad/PKCS1_V1_5.h b/libjava/gnu/javax/crypto/pad/PKCS1_V1_5.h new file mode 100644 index 00000000000..b681a0fa386 --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/PKCS1_V1_5.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_PKCS1_V1_5__ +#define __gnu_javax_crypto_pad_PKCS1_V1_5__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace sig + { + namespace rsa + { + class EME_PKCS1_V1_5; + } + } + } + } + namespace javax + { + namespace crypto + { + namespace pad + { + class PKCS1_V1_5; + } + } + } + } +} + +class gnu::javax::crypto::pad::PKCS1_V1_5 : public ::gnu::javax::crypto::pad::BasePad +{ + +public: // actually package-private + PKCS1_V1_5(); +public: + virtual void setup(); + virtual JArray< jbyte > * pad(JArray< jbyte > *, jint, jint); + virtual jint unpad(JArray< jbyte > *, jint, jint); + virtual jboolean selfTest(); +private: + static ::java::util::logging::Logger * log; + ::gnu::java::security::sig::rsa::EME_PKCS1_V1_5 * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::pad::BasePad)))) codec; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_PKCS1_V1_5__ diff --git a/libjava/gnu/javax/crypto/pad/PKCS7.h b/libjava/gnu/javax/crypto/pad/PKCS7.h new file mode 100644 index 00000000000..609d4b35b3a --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/PKCS7.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_PKCS7__ +#define __gnu_javax_crypto_pad_PKCS7__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class PKCS7; + } + } + } + } +} + +class gnu::javax::crypto::pad::PKCS7 : public ::gnu::javax::crypto::pad::BasePad +{ + +public: // actually package-private + PKCS7(); +public: + void setup(); + JArray< jbyte > * pad(JArray< jbyte > *, jint, jint); + jint unpad(JArray< jbyte > *, jint, jint); +private: + static ::java::util::logging::Logger * log; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_PKCS7__ diff --git a/libjava/gnu/javax/crypto/pad/PadFactory.h b/libjava/gnu/javax/crypto/pad/PadFactory.h new file mode 100644 index 00000000000..fea2a3b0906 --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/PadFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_PadFactory__ +#define __gnu_javax_crypto_pad_PadFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class IPad; + class PadFactory; + } + } + } + } +} + +class gnu::javax::crypto::pad::PadFactory : public ::java::lang::Object +{ + + PadFactory(); +public: + static ::gnu::javax::crypto::pad::IPad * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); +private: + static ::java::util::Set * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_PadFactory__ diff --git a/libjava/gnu/javax/crypto/pad/SSL3.h b/libjava/gnu/javax/crypto/pad/SSL3.h new file mode 100644 index 00000000000..1154d8ed820 --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/SSL3.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_SSL3__ +#define __gnu_javax_crypto_pad_SSL3__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class SSL3; + } + } + } + } +} + +class gnu::javax::crypto::pad::SSL3 : public ::gnu::javax::crypto::pad::BasePad +{ + +public: + SSL3(); + virtual void setup(); + virtual JArray< jbyte > * pad(JArray< jbyte > *, jint, jint); + virtual jint unpad(JArray< jbyte > *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_SSL3__ diff --git a/libjava/gnu/javax/crypto/pad/TBC.h b/libjava/gnu/javax/crypto/pad/TBC.h new file mode 100644 index 00000000000..099c05a8200 --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/TBC.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_TBC__ +#define __gnu_javax_crypto_pad_TBC__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class TBC; + } + } + } + } +} + +class gnu::javax::crypto::pad::TBC : public ::gnu::javax::crypto::pad::BasePad +{ + +public: // actually package-private + TBC(); +public: + void setup(); + JArray< jbyte > * pad(JArray< jbyte > *, jint, jint); + jint unpad(JArray< jbyte > *, jint, jint); +private: + static ::java::util::logging::Logger * log; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_TBC__ diff --git a/libjava/gnu/javax/crypto/pad/TLS1.h b/libjava/gnu/javax/crypto/pad/TLS1.h new file mode 100644 index 00000000000..0f361fc517c --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/TLS1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_TLS1__ +#define __gnu_javax_crypto_pad_TLS1__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class TLS1; + } + } + } + } +} + +class gnu::javax::crypto::pad::TLS1 : public ::gnu::javax::crypto::pad::BasePad +{ + +public: + TLS1(); + virtual void setup(); + virtual JArray< jbyte > * pad(JArray< jbyte > *, jint, jint); + virtual jint unpad(JArray< jbyte > *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_TLS1__ diff --git a/libjava/gnu/javax/crypto/pad/WrongPaddingException.h b/libjava/gnu/javax/crypto/pad/WrongPaddingException.h new file mode 100644 index 00000000000..16a9b331b5e --- /dev/null +++ b/libjava/gnu/javax/crypto/pad/WrongPaddingException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_pad_WrongPaddingException__ +#define __gnu_javax_crypto_pad_WrongPaddingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace pad + { + class WrongPaddingException; + } + } + } + } +} + +class gnu::javax::crypto::pad::WrongPaddingException : public ::java::lang::Exception +{ + +public: + WrongPaddingException(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_pad_WrongPaddingException__ diff --git a/libjava/gnu/javax/crypto/prng/ARCFour.h b/libjava/gnu/javax/crypto/prng/ARCFour.h new file mode 100644 index 00000000000..097b0b367d1 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/ARCFour.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_ARCFour__ +#define __gnu_javax_crypto_prng_ARCFour__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace prng + { + class ARCFour; + } + } + } + } +} + +class gnu::javax::crypto::prng::ARCFour : public ::gnu::java::security::prng::BasePRNG +{ + +public: + ARCFour(); + virtual void setup(::java::util::Map *); + virtual void fillBlock(); + static ::java::lang::String * ARCFOUR_KEY_MATERIAL; + static const jint ARCFOUR_SBOX_SIZE = 256; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) s; + jbyte m; + jbyte n; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_ARCFour__ diff --git a/libjava/gnu/javax/crypto/prng/CSPRNG$1.h b/libjava/gnu/javax/crypto/prng/CSPRNG$1.h new file mode 100644 index 00000000000..2d589fb2739 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/CSPRNG$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_CSPRNG$1__ +#define __gnu_javax_crypto_prng_CSPRNG$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace prng + { + class CSPRNG$1; + } + } + } + } +} + +class gnu::javax::crypto::prng::CSPRNG$1 : public ::java::lang::Object +{ + +public: // actually package-private + CSPRNG$1(::java::lang::String *); +public: + ::java::lang::Object * run(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_CSPRNG$1__ diff --git a/libjava/gnu/javax/crypto/prng/CSPRNG$Poller.h b/libjava/gnu/javax/crypto/prng/CSPRNG$Poller.h new file mode 100644 index 00000000000..823b08baa52 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/CSPRNG$Poller.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_CSPRNG$Poller__ +#define __gnu_javax_crypto_prng_CSPRNG$Poller__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace prng + { + class CSPRNG; + class CSPRNG$Poller; + } + } + } + } +} + +class gnu::javax::crypto::prng::CSPRNG$Poller : public ::java::lang::Object +{ + +public: // actually package-private + CSPRNG$Poller(::gnu::javax::crypto::prng::CSPRNG *, ::java::util::List *, ::java::util::List *, ::java::util::List *, ::java::util::List *, ::gnu::javax::crypto::prng::CSPRNG *); +public: + void run(); + void stopUpdating(); +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) files; + ::java::util::List * urls; + ::java::util::List * progs; + ::java::util::List * other; + ::gnu::javax::crypto::prng::CSPRNG * pool; + jboolean running; +public: // actually package-private + ::gnu::javax::crypto::prng::CSPRNG * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_CSPRNG$Poller__ diff --git a/libjava/gnu/javax/crypto/prng/CSPRNG$Spinner.h b/libjava/gnu/javax/crypto/prng/CSPRNG$Spinner.h new file mode 100644 index 00000000000..305d9cac818 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/CSPRNG$Spinner.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_CSPRNG$Spinner__ +#define __gnu_javax_crypto_prng_CSPRNG$Spinner__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace prng + { + class CSPRNG$Spinner; + } + } + } + } +} + +class gnu::javax::crypto::prng::CSPRNG$Spinner : public ::java::lang::Object +{ + + CSPRNG$Spinner(); +public: + virtual void run(); +public: // actually package-private + CSPRNG$Spinner(::gnu::javax::crypto::prng::CSPRNG$Spinner *); +public: // actually protected + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) counter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_CSPRNG$Spinner__ diff --git a/libjava/gnu/javax/crypto/prng/CSPRNG.h b/libjava/gnu/javax/crypto/prng/CSPRNG.h new file mode 100644 index 00000000000..4773413e6f1 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/CSPRNG.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_CSPRNG__ +#define __gnu_javax_crypto_prng_CSPRNG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace prng + { + class CSPRNG; + class CSPRNG$Poller; + class CSPRNG$Spinner; + } + } + } + } +} + +class gnu::javax::crypto::prng::CSPRNG : public ::gnu::java::security::prng::BasePRNG +{ + +public: + CSPRNG(); + static ::gnu::java::security::prng::IRandom * getSystemInstance(); +private: + static ::java::lang::String * getProperty(::java::lang::String *); + static ::java::util::List * parseString(::java::lang::String *); + static ::java::util::List * parseURL(::java::lang::String *); +public: + virtual ::java::lang::Object * clone(); + virtual void setup(::java::util::Map *); + virtual void fillBlock(); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); + virtual void addRandomByte(jbyte); +public: // actually package-private + virtual void addQuality(jdouble); + virtual jdouble getQuality(); +private: + void mixRandomPool(JArray< jbyte > *); + void mixRandomPool(); + void generateX917(JArray< jbyte > *); + void fastPoll(); + void slowPoll(); +public: // actually protected + virtual void finalize(); +private: + static ::java::util::logging::Logger * log; +public: + static ::java::lang::String * FILE_SOURCES; + static ::java::lang::String * URL_SOURCES; + static ::java::lang::String * PROGRAM_SOURCES; + static ::java::lang::String * OTHER_SOURCES; + static ::java::lang::String * BLOCKING; +private: + static ::java::lang::String * FILES; + static ::java::lang::String * URLS; + static ::java::lang::String * PROGS; + static ::java::lang::String * OTHER; + static ::java::lang::String * BLOCK; + static const jint POOL_SIZE = 256; + static const jint ALLOC_SIZE = 260; + static const jint OUTPUT_SIZE = 128; + static const jint X917_POOL_SIZE = 16; + static ::java::lang::String * HASH_FUNCTION; + static ::java::lang::String * CIPHER; + static const jint MIX_COUNT = 10; + static const jint X917_LIFETIME = 8192; + static const jint SPINNER_COUNT = 8; + static JArray< ::gnu::javax::crypto::prng::CSPRNG$Spinner * > * SPINNERS; + static JArray< ::java::lang::Thread * > * SPINNER_THREADS; + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) hash; + ::gnu::javax::crypto::cipher::IBlockCipher * cipher; + jint mixCount; + JArray< jbyte > * pool; + jdouble quality; + jint index; + JArray< jbyte > * x917pool; + jint x917count; + jboolean x917init; + ::java::util::List * files; + ::java::util::List * urls; + ::java::util::List * progs; + ::java::util::List * other; + jboolean blocking; + ::gnu::javax::crypto::prng::CSPRNG$Poller * poller; + ::java::lang::Thread * pollerThread; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_CSPRNG__ diff --git a/libjava/gnu/javax/crypto/prng/Fortuna$Generator.h b/libjava/gnu/javax/crypto/prng/Fortuna$Generator.h new file mode 100644 index 00000000000..1507af34f88 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/Fortuna$Generator.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_Fortuna$Generator__ +#define __gnu_javax_crypto_prng_Fortuna$Generator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace prng + { + class Fortuna$Generator; + } + } + } + } +} + +class gnu::javax::crypto::prng::Fortuna$Generator : public ::gnu::java::security::prng::BasePRNG +{ + +public: + Fortuna$Generator(::gnu::javax::crypto::cipher::IBlockCipher *, ::gnu::java::security::hash::IMessageDigest *); + virtual jbyte nextByte(); + virtual void nextBytes(JArray< jbyte > *, jint, jint); + virtual void addRandomByte(jbyte); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); + virtual void fillBlock(); + virtual void setup(::java::util::Map *); +private: + void resetKey(); + void incrementCounter(); + static const jint LIMIT = 1048576; + ::gnu::javax::crypto::cipher::IBlockCipher * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) cipher; + ::gnu::java::security::hash::IMessageDigest * hash; + JArray< jbyte > * counter; + JArray< jbyte > * key; + jboolean seeded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_Fortuna$Generator__ diff --git a/libjava/gnu/javax/crypto/prng/Fortuna.h b/libjava/gnu/javax/crypto/prng/Fortuna.h new file mode 100644 index 00000000000..aab98c709af --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/Fortuna.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_Fortuna__ +#define __gnu_javax_crypto_prng_Fortuna__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace prng + { + class RandomEvent; + } + } + } + namespace javax + { + namespace crypto + { + namespace prng + { + class Fortuna; + class Fortuna$Generator; + } + } + } + } +} + +class gnu::javax::crypto::prng::Fortuna : public ::gnu::java::security::prng::BasePRNG +{ + +public: + Fortuna(); + virtual void setup(::java::util::Map *); + virtual void fillBlock(); + virtual void addRandomByte(jbyte); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); + virtual void addRandomEvent(::gnu::java::security::prng::RandomEvent *); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); + static const jlong serialVersionUID = 16435934LL; + static const jint SEED_FILE_SIZE = 64; + static const jint NUM_POOLS = 32; + static const jint MIN_POOL_SIZE = 64; + ::gnu::javax::crypto::prng::Fortuna$Generator * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) generator; + JArray< ::gnu::java::security::hash::IMessageDigest * > * pools; + jlong lastReseed; + jint pool; + jint pool0Count; + jint reseedCount; +public: + static ::java::lang::String * SEED; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_Fortuna__ diff --git a/libjava/gnu/javax/crypto/prng/ICMGenerator.h b/libjava/gnu/javax/crypto/prng/ICMGenerator.h new file mode 100644 index 00000000000..e69f6c0909e --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/ICMGenerator.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_ICMGenerator__ +#define __gnu_javax_crypto_prng_ICMGenerator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace prng + { + class ICMGenerator; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::prng::ICMGenerator : public ::gnu::java::security::prng::BasePRNG +{ + +public: + ICMGenerator(); + virtual void setup(::java::util::Map *); + virtual void fillBlock(); + static ::java::lang::String * CIPHER; + static ::java::lang::String * BLOCK_INDEX_LENGTH; + static ::java::lang::String * SEGMENT_INDEX_LENGTH; + static ::java::lang::String * OFFSET; + static ::java::lang::String * SEGMENT_INDEX; +private: + static ::java::math::BigInteger * TWO_FIFTY_SIX; + ::gnu::javax::crypto::cipher::IBlockCipher * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) cipher; + jint blockNdxLength; + jint segmentNdxLength; + ::java::math::BigInteger * blockNdx; + ::java::math::BigInteger * segmentNdx; + ::java::math::BigInteger * C0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_ICMGenerator__ diff --git a/libjava/gnu/javax/crypto/prng/IPBE.h b/libjava/gnu/javax/crypto/prng/IPBE.h new file mode 100644 index 00000000000..4fae1c4b1ef --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/IPBE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_IPBE__ +#define __gnu_javax_crypto_prng_IPBE__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace prng + { + class IPBE; + } + } + } + } +} + +class gnu::javax::crypto::prng::IPBE : public ::java::lang::Object +{ + +public: + static ::java::lang::String * ITERATION_COUNT; + static ::java::lang::String * PASSWORD; + static ::java::lang::String * PASSWORD_ENCODING; + static ::java::lang::String * SALT; + static ::java::lang::String * DEFAULT_PASSWORD_ENCODING; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_prng_IPBE__ diff --git a/libjava/gnu/javax/crypto/prng/PBKDF2.h b/libjava/gnu/javax/crypto/prng/PBKDF2.h new file mode 100644 index 00000000000..209d69523df --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/PBKDF2.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_PBKDF2__ +#define __gnu_javax_crypto_prng_PBKDF2__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + } + namespace prng + { + class PBKDF2; + } + } + } + } +} + +class gnu::javax::crypto::prng::PBKDF2 : public ::gnu::java::security::prng::BasePRNG +{ + +public: + PBKDF2(::gnu::javax::crypto::mac::IMac *); + virtual void setup(::java::util::Map *); + virtual void fillBlock(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) in; + jint iterationCount; + JArray< jbyte > * salt; + ::gnu::javax::crypto::mac::IMac * mac; + jlong count; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_PBKDF2__ diff --git a/libjava/gnu/javax/crypto/prng/PRNGFactory.h b/libjava/gnu/javax/crypto/prng/PRNGFactory.h new file mode 100644 index 00000000000..76d9e262372 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/PRNGFactory.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_PRNGFactory__ +#define __gnu_javax_crypto_prng_PRNGFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace prng + { + class PRNGFactory; + } + } + } + } +} + +class gnu::javax::crypto::prng::PRNGFactory : public ::java::lang::Object +{ + + PRNGFactory(); +public: + static ::gnu::java::security::prng::IRandom * getInstance(::java::lang::String *); + static ::java::util::Set * getNames(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_PRNGFactory__ diff --git a/libjava/gnu/javax/crypto/prng/UMacGenerator.h b/libjava/gnu/javax/crypto/prng/UMacGenerator.h new file mode 100644 index 00000000000..3da98cdf862 --- /dev/null +++ b/libjava/gnu/javax/crypto/prng/UMacGenerator.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_prng_UMacGenerator__ +#define __gnu_javax_crypto_prng_UMacGenerator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace cipher + { + class IBlockCipher; + } + namespace prng + { + class UMacGenerator; + } + } + } + } +} + +class gnu::javax::crypto::prng::UMacGenerator : public ::gnu::java::security::prng::BasePRNG +{ + +public: + UMacGenerator(); + virtual void setup(::java::util::Map *); + virtual void fillBlock(); + static ::java::lang::String * INDEX; + static ::java::lang::String * CIPHER; +private: + ::gnu::javax::crypto::cipher::IBlockCipher * __attribute__((aligned(__alignof__( ::gnu::java::security::prng::BasePRNG)))) cipher; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_prng_UMacGenerator__ diff --git a/libjava/gnu/javax/crypto/sasl/AuthInfo.h b/libjava/gnu/javax/crypto/sasl/AuthInfo.h new file mode 100644 index 00000000000..39fa49b45a7 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/AuthInfo.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_AuthInfo__ +#define __gnu_javax_crypto_sasl_AuthInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class AuthInfo; + class IAuthInfoProvider; + } + } + } + } +} + +class gnu::javax::crypto::sasl::AuthInfo : public ::java::lang::Object +{ + + AuthInfo(); +public: + static ::gnu::javax::crypto::sasl::IAuthInfoProvider * getProvider(::java::lang::String *); +private: + static ::java::util::ArrayList * factories; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_AuthInfo__ diff --git a/libjava/gnu/javax/crypto/sasl/AuthInfoProviderFactory.h b/libjava/gnu/javax/crypto/sasl/AuthInfoProviderFactory.h new file mode 100644 index 00000000000..5431e6178f2 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/AuthInfoProviderFactory.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_AuthInfoProviderFactory__ +#define __gnu_javax_crypto_sasl_AuthInfoProviderFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class AuthInfoProviderFactory; + class IAuthInfoProvider; + } + } + } + } +} + +class gnu::javax::crypto::sasl::AuthInfoProviderFactory : public ::java::lang::Object +{ + +public: + AuthInfoProviderFactory(); + virtual ::gnu::javax::crypto::sasl::IAuthInfoProvider * getInstance(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_AuthInfoProviderFactory__ diff --git a/libjava/gnu/javax/crypto/sasl/ClientFactory.h b/libjava/gnu/javax/crypto/sasl/ClientFactory.h new file mode 100644 index 00000000000..a74916a9392 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/ClientFactory.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_ClientFactory__ +#define __gnu_javax_crypto_sasl_ClientFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class ClientFactory; + class ClientMechanism; + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CallbackHandler; + } + } + namespace sasl + { + class SaslClient; + } + } + } +} + +class gnu::javax::crypto::sasl::ClientFactory : public ::java::lang::Object +{ + +public: + ClientFactory(); + static ::java::util::Set * getNames(); +private: + static JArray< ::java::lang::String * > * getNamesInternal(::java::util::Map *); +public: + static ::gnu::javax::crypto::sasl::ClientMechanism * getInstance(::java::lang::String *); + virtual ::javax::security::sasl::SaslClient * createSaslClient(JArray< ::java::lang::String * > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Map *, ::javax::security::auth::callback::CallbackHandler *); + virtual JArray< ::java::lang::String * > * getMechanismNames(::java::util::Map *); +private: + static jboolean hasPolicy(::java::lang::String *, ::java::util::Map *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_ClientFactory__ diff --git a/libjava/gnu/javax/crypto/sasl/ClientMechanism.h b/libjava/gnu/javax/crypto/sasl/ClientMechanism.h new file mode 100644 index 00000000000..b1bd010bec2 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/ClientMechanism.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_ClientMechanism__ +#define __gnu_javax_crypto_sasl_ClientMechanism__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class ClientMechanism; + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CallbackHandler; + } + } + } + } +} + +class gnu::javax::crypto::sasl::ClientMechanism : public ::java::lang::Object +{ + +public: // actually protected + ClientMechanism(::java::lang::String *); + virtual void initMechanism() = 0; + virtual void resetMechanism() = 0; +public: + virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *) = 0; + virtual jboolean hasInitialResponse() = 0; + virtual jboolean isComplete(); + virtual JArray< jbyte > * unwrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * wrap(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * getMechanismName(); + virtual ::java::lang::Object * getNegotiatedProperty(::java::lang::String *); + virtual void dispose(); + virtual ::java::lang::String * getAuthorizationID(); +public: // actually protected + virtual ::java::lang::String * getNegotiatedQOP(); + virtual ::java::lang::String * getNegotiatedStrength(); + virtual ::java::lang::String * getNegotiatedServerAuth(); + virtual ::java::lang::String * getNegotiatedMaxBuffer(); + virtual ::java::lang::String * getNegotiatedRawSendSize(); + virtual ::java::lang::String * getNegotiatedPolicyNoPlainText(); + virtual ::java::lang::String * getNegotiatedPolicyNoActive(); + virtual ::java::lang::String * getNegotiatedPolicyNoDictionary(); + virtual ::java::lang::String * getNegotiatedPolicyNoAnonymous(); + virtual ::java::lang::String * getNegotiatedPolicyForwardSecrecy(); + virtual ::java::lang::String * getNegotiatedPolicyPassCredentials(); + virtual ::java::lang::String * getReuse(); + virtual JArray< jbyte > * engineUnwrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineWrap(JArray< jbyte > *, jint, jint); +public: + virtual void init(::java::util::Map *); + virtual void reset(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mechanism; + ::java::lang::String * authorizationID; + ::java::lang::String * protocol; + ::java::lang::String * serverName; + ::java::util::Map * properties; + ::javax::security::auth::callback::CallbackHandler * handler; + JArray< jbyte > * channelBinding; + jboolean complete; + jint state; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_ClientMechanism__ diff --git a/libjava/gnu/javax/crypto/sasl/ConfidentialityException.h b/libjava/gnu/javax/crypto/sasl/ConfidentialityException.h new file mode 100644 index 00000000000..6c001933123 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/ConfidentialityException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_ConfidentialityException__ +#define __gnu_javax_crypto_sasl_ConfidentialityException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class ConfidentialityException; + } + } + } + } +} + +class gnu::javax::crypto::sasl::ConfidentialityException : public ::javax::security::sasl::SaslException +{ + +public: + ConfidentialityException(); + ConfidentialityException(::java::lang::String *); + ConfidentialityException(::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_ConfidentialityException__ diff --git a/libjava/gnu/javax/crypto/sasl/IAuthInfoProvider.h b/libjava/gnu/javax/crypto/sasl/IAuthInfoProvider.h new file mode 100644 index 00000000000..fbf8cee2988 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/IAuthInfoProvider.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_IAuthInfoProvider__ +#define __gnu_javax_crypto_sasl_IAuthInfoProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class IAuthInfoProvider; + } + } + } + } +} + +class gnu::javax::crypto::sasl::IAuthInfoProvider : public ::java::lang::Object +{ + +public: + virtual void activate(::java::util::Map *) = 0; + virtual void passivate() = 0; + virtual jboolean contains(::java::lang::String *) = 0; + virtual ::java::util::Map * lookup(::java::util::Map *) = 0; + virtual void update(::java::util::Map *) = 0; + virtual ::java::util::Map * getConfiguration(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_sasl_IAuthInfoProvider__ diff --git a/libjava/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.h b/libjava/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.h new file mode 100644 index 00000000000..7fcb4915f5b --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/IAuthInfoProviderFactory.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_IAuthInfoProviderFactory__ +#define __gnu_javax_crypto_sasl_IAuthInfoProviderFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class IAuthInfoProvider; + class IAuthInfoProviderFactory; + } + } + } + } +} + +class gnu::javax::crypto::sasl::IAuthInfoProviderFactory : public ::java::lang::Object +{ + +public: + virtual ::gnu::javax::crypto::sasl::IAuthInfoProvider * getInstance(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_sasl_IAuthInfoProviderFactory__ diff --git a/libjava/gnu/javax/crypto/sasl/IllegalMechanismStateException.h b/libjava/gnu/javax/crypto/sasl/IllegalMechanismStateException.h new file mode 100644 index 00000000000..0503f0d5022 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/IllegalMechanismStateException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_IllegalMechanismStateException__ +#define __gnu_javax_crypto_sasl_IllegalMechanismStateException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class IllegalMechanismStateException; + } + } + } + } +} + +class gnu::javax::crypto::sasl::IllegalMechanismStateException : public ::javax::security::sasl::AuthenticationException +{ + +public: + IllegalMechanismStateException(); + IllegalMechanismStateException(::java::lang::String *); + IllegalMechanismStateException(::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_IllegalMechanismStateException__ diff --git a/libjava/gnu/javax/crypto/sasl/InputBuffer.h b/libjava/gnu/javax/crypto/sasl/InputBuffer.h new file mode 100644 index 00000000000..d628f7a6503 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/InputBuffer.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_InputBuffer__ +#define __gnu_javax_crypto_sasl_InputBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class InputBuffer; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::sasl::InputBuffer : public ::java::lang::Object +{ + +public: + InputBuffer(JArray< jbyte > *); +private: + InputBuffer(); +public: + static ::gnu::javax::crypto::sasl::InputBuffer * getInstance(JArray< jbyte > *); + static ::gnu::javax::crypto::sasl::InputBuffer * getInstance(JArray< jbyte > *, jint, jint); + static jint twoBytesToLength(JArray< jbyte > *); + virtual jboolean hasMoreElements(); + virtual jlong getScalar(jint); + virtual JArray< jbyte > * getOS(); + virtual JArray< jbyte > * getEOS(); + virtual ::java::math::BigInteger * getMPI(); + virtual ::java::lang::String * getText(); +public: // actually protected + ::java::io::ByteArrayInputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_InputBuffer__ diff --git a/libjava/gnu/javax/crypto/sasl/IntegrityException.h b/libjava/gnu/javax/crypto/sasl/IntegrityException.h new file mode 100644 index 00000000000..5c66cb4a3cb --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/IntegrityException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_IntegrityException__ +#define __gnu_javax_crypto_sasl_IntegrityException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class IntegrityException; + } + } + } + } +} + +class gnu::javax::crypto::sasl::IntegrityException : public ::javax::security::sasl::SaslException +{ + +public: + IntegrityException(); + IntegrityException(::java::lang::String *); + IntegrityException(::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_IntegrityException__ diff --git a/libjava/gnu/javax/crypto/sasl/NoSuchMechanismException.h b/libjava/gnu/javax/crypto/sasl/NoSuchMechanismException.h new file mode 100644 index 00000000000..0668d16cff7 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/NoSuchMechanismException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_NoSuchMechanismException__ +#define __gnu_javax_crypto_sasl_NoSuchMechanismException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class NoSuchMechanismException; + } + } + } + } +} + +class gnu::javax::crypto::sasl::NoSuchMechanismException : public ::javax::security::sasl::SaslException +{ + +public: + NoSuchMechanismException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_NoSuchMechanismException__ diff --git a/libjava/gnu/javax/crypto/sasl/NoSuchUserException.h b/libjava/gnu/javax/crypto/sasl/NoSuchUserException.h new file mode 100644 index 00000000000..17bc8fc1d7b --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/NoSuchUserException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_NoSuchUserException__ +#define __gnu_javax_crypto_sasl_NoSuchUserException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class NoSuchUserException; + } + } + } + } +} + +class gnu::javax::crypto::sasl::NoSuchUserException : public ::javax::security::sasl::AuthenticationException +{ + +public: + NoSuchUserException(); + NoSuchUserException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_NoSuchUserException__ diff --git a/libjava/gnu/javax/crypto/sasl/OutputBuffer.h b/libjava/gnu/javax/crypto/sasl/OutputBuffer.h new file mode 100644 index 00000000000..40cd18911cc --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/OutputBuffer.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_OutputBuffer__ +#define __gnu_javax_crypto_sasl_OutputBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class OutputBuffer; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::sasl::OutputBuffer : public ::java::lang::Object +{ + +public: + OutputBuffer(); + virtual void setScalar(jint, jint); + virtual void setOS(JArray< jbyte > *); + virtual void setEOS(JArray< jbyte > *); + virtual void setMPI(::java::math::BigInteger *); + virtual void setText(::java::lang::String *); + virtual JArray< jbyte > * encode(); + virtual JArray< jbyte > * wrap(); +private: + ::java::io::ByteArrayOutputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) out; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_OutputBuffer__ diff --git a/libjava/gnu/javax/crypto/sasl/SaslEncodingException.h b/libjava/gnu/javax/crypto/sasl/SaslEncodingException.h new file mode 100644 index 00000000000..000b367996d --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/SaslEncodingException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_SaslEncodingException__ +#define __gnu_javax_crypto_sasl_SaslEncodingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class SaslEncodingException; + } + } + } + } +} + +class gnu::javax::crypto::sasl::SaslEncodingException : public ::javax::security::sasl::SaslException +{ + +public: + SaslEncodingException(); + SaslEncodingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_SaslEncodingException__ diff --git a/libjava/gnu/javax/crypto/sasl/SaslInputStream.h b/libjava/gnu/javax/crypto/sasl/SaslInputStream.h new file mode 100644 index 00000000000..6a5c653194e --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/SaslInputStream.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_SaslInputStream__ +#define __gnu_javax_crypto_sasl_SaslInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class SaslInputStream; + } + } + } + } + namespace javax + { + namespace security + { + namespace sasl + { + class SaslClient; + class SaslServer; + } + } + } +} + +class gnu::javax::crypto::sasl::SaslInputStream : public ::java::io::InputStream +{ + +public: + SaslInputStream(::javax::security::sasl::SaslClient *, ::java::io::InputStream *); + SaslInputStream(::javax::security::sasl::SaslServer *, ::java::io::InputStream *); + virtual jint available(); + virtual void close(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + JArray< jbyte > * readSaslBuffer(); + static ::java::util::logging::Logger * log; + ::javax::security::sasl::SaslClient * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) client; + ::javax::security::sasl::SaslServer * server; + jint maxRawSendSize; + ::java::io::InputStream * source; + JArray< jbyte > * internalBuf; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_SaslInputStream__ diff --git a/libjava/gnu/javax/crypto/sasl/SaslOutputStream.h b/libjava/gnu/javax/crypto/sasl/SaslOutputStream.h new file mode 100644 index 00000000000..8d55853bd80 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/SaslOutputStream.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_SaslOutputStream__ +#define __gnu_javax_crypto_sasl_SaslOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class SaslOutputStream; + } + } + } + } + namespace javax + { + namespace security + { + namespace sasl + { + class SaslClient; + class SaslServer; + } + } + } +} + +class gnu::javax::crypto::sasl::SaslOutputStream : public ::java::io::OutputStream +{ + +public: + SaslOutputStream(::javax::security::sasl::SaslClient *, ::java::io::OutputStream *); + SaslOutputStream(::javax::security::sasl::SaslServer *, ::java::io::OutputStream *); + virtual void close(); + virtual void flush(); + virtual void write(jint); + virtual void write(JArray< jbyte > *, jint, jint); +private: + static ::java::util::logging::Logger * log; + ::javax::security::sasl::SaslClient * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) client; + ::javax::security::sasl::SaslServer * server; + jint maxRawSendSize; + ::java::io::OutputStream * dest; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_SaslOutputStream__ diff --git a/libjava/gnu/javax/crypto/sasl/SaslUtil.h b/libjava/gnu/javax/crypto/sasl/SaslUtil.h new file mode 100644 index 00000000000..3d043c05169 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/SaslUtil.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_SaslUtil__ +#define __gnu_javax_crypto_sasl_SaslUtil__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class SaslUtil; + } + } + } + } + namespace java + { + namespace security + { + class MessageDigest; + } + } +} + +class gnu::javax::crypto::sasl::SaslUtil : public ::java::lang::Object +{ + + SaslUtil(); +public: + static jboolean validEmailAddress(::java::lang::String *); + static ::java::lang::String * dump(::java::security::MessageDigest *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_SaslUtil__ diff --git a/libjava/gnu/javax/crypto/sasl/ServerFactory.h b/libjava/gnu/javax/crypto/sasl/ServerFactory.h new file mode 100644 index 00000000000..00ee645088b --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/ServerFactory.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_ServerFactory__ +#define __gnu_javax_crypto_sasl_ServerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class ServerFactory; + class ServerMechanism; + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CallbackHandler; + } + } + namespace sasl + { + class SaslServer; + } + } + } +} + +class gnu::javax::crypto::sasl::ServerFactory : public ::java::lang::Object +{ + +public: + ServerFactory(); + static ::java::util::Set * getNames(); +private: + static JArray< ::java::lang::String * > * getNamesInternal(::java::util::Map *); +public: + static ::gnu::javax::crypto::sasl::ServerMechanism * getInstance(::java::lang::String *); + virtual ::javax::security::sasl::SaslServer * createSaslServer(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Map *, ::javax::security::auth::callback::CallbackHandler *); + virtual JArray< ::java::lang::String * > * getMechanismNames(::java::util::Map *); +private: + static jboolean hasPolicy(::java::lang::String *, ::java::util::Map *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_ServerFactory__ diff --git a/libjava/gnu/javax/crypto/sasl/ServerMechanism.h b/libjava/gnu/javax/crypto/sasl/ServerMechanism.h new file mode 100644 index 00000000000..4b7a196d23d --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/ServerMechanism.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_ServerMechanism__ +#define __gnu_javax_crypto_sasl_ServerMechanism__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class IAuthInfoProvider; + class ServerMechanism; + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CallbackHandler; + } + } + } + } +} + +class gnu::javax::crypto::sasl::ServerMechanism : public ::java::lang::Object +{ + +public: // actually protected + ServerMechanism(::java::lang::String *); + virtual void initMechanism() = 0; + virtual void resetMechanism() = 0; +public: + virtual JArray< jbyte > * evaluateResponse(JArray< jbyte > *) = 0; + virtual jboolean isComplete(); + virtual JArray< jbyte > * unwrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * wrap(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * getMechanismName(); + virtual ::java::lang::String * getAuthorizationID(); + virtual ::java::lang::Object * getNegotiatedProperty(::java::lang::String *); + virtual void dispose(); +public: // actually protected + virtual ::java::lang::String * getNegotiatedQOP(); + virtual ::java::lang::String * getNegotiatedStrength(); + virtual ::java::lang::String * getNegotiatedServerAuth(); + virtual ::java::lang::String * getNegotiatedMaxBuffer(); + virtual ::java::lang::String * getNegotiatedPolicyNoPlainText(); + virtual ::java::lang::String * getNegotiatedPolicyNoActive(); + virtual ::java::lang::String * getNegotiatedPolicyNoDictionary(); + virtual ::java::lang::String * getNegotiatedPolicyNoAnonymous(); + virtual ::java::lang::String * getNegotiatedPolicyForwardSecrecy(); + virtual ::java::lang::String * getNegotiatedPolicyPassCredentials(); + virtual ::java::lang::String * getNegotiatedRawSendSize(); + virtual ::java::lang::String * getReuse(); + virtual JArray< jbyte > * engineUnwrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineWrap(JArray< jbyte > *, jint, jint); +public: + virtual void init(::java::util::Map *); + virtual void reset(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mechanism; + ::java::lang::String * protocol; + ::java::lang::String * serverName; + ::java::util::Map * properties; + ::javax::security::auth::callback::CallbackHandler * handler; + jboolean complete; + ::java::lang::String * authorizationID; + JArray< jbyte > * channelBinding; + jint state; + ::gnu::javax::crypto::sasl::IAuthInfoProvider * authenticator; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_ServerMechanism__ diff --git a/libjava/gnu/javax/crypto/sasl/UserAlreadyExistsException.h b/libjava/gnu/javax/crypto/sasl/UserAlreadyExistsException.h new file mode 100644 index 00000000000..89622a06890 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/UserAlreadyExistsException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_UserAlreadyExistsException__ +#define __gnu_javax_crypto_sasl_UserAlreadyExistsException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + class UserAlreadyExistsException; + } + } + } + } +} + +class gnu::javax::crypto::sasl::UserAlreadyExistsException : public ::javax::security::sasl::SaslException +{ + +public: + UserAlreadyExistsException(); + UserAlreadyExistsException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_UserAlreadyExistsException__ diff --git a/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousClient.h b/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousClient.h new file mode 100644 index 00000000000..87aaded6f03 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousClient.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_anonymous_AnonymousClient__ +#define __gnu_javax_crypto_sasl_anonymous_AnonymousClient__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace anonymous + { + class AnonymousClient; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::anonymous::AnonymousClient : public ::gnu::javax::crypto::sasl::ClientMechanism +{ + +public: + AnonymousClient(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual jboolean hasInitialResponse(); + virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *); +private: + JArray< jbyte > * response(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_anonymous_AnonymousClient__ diff --git a/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousServer.h b/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousServer.h new file mode 100644 index 00000000000..3c3b1834a2b --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousServer.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_anonymous_AnonymousServer__ +#define __gnu_javax_crypto_sasl_anonymous_AnonymousServer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace anonymous + { + class AnonymousServer; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::anonymous::AnonymousServer : public ::gnu::javax::crypto::sasl::ServerMechanism +{ + +public: + AnonymousServer(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual JArray< jbyte > * evaluateResponse(JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_anonymous_AnonymousServer__ diff --git a/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.h b/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.h new file mode 100644 index 00000000000..45b0873c9e9 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/anonymous/AnonymousUtil.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_anonymous_AnonymousUtil__ +#define __gnu_javax_crypto_sasl_anonymous_AnonymousUtil__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace anonymous + { + class AnonymousUtil; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::anonymous::AnonymousUtil : public ::java::lang::Object +{ + + AnonymousUtil(); +public: // actually package-private + static jboolean isValidTraceInformation(::java::lang::String *); + static jboolean isValidToken(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_anonymous_AnonymousUtil__ diff --git a/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.h b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.h new file mode 100644 index 00000000000..3a5ae195c0b --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_crammd5_CramMD5AuthInfoProvider__ +#define __gnu_javax_crypto_sasl_crammd5_CramMD5AuthInfoProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace crammd5 + { + class CramMD5AuthInfoProvider; + class PasswordFile; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::crammd5::CramMD5AuthInfoProvider : public ::java::lang::Object +{ + +public: + CramMD5AuthInfoProvider(); + virtual void activate(::java::util::Map *); + virtual void passivate(); + virtual jboolean contains(::java::lang::String *); + virtual ::java::util::Map * lookup(::java::util::Map *); + virtual void update(::java::util::Map *); + virtual ::java::util::Map * getConfiguration(::java::lang::String *); +private: + ::gnu::javax::crypto::sasl::crammd5::PasswordFile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) passwordFile; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_crammd5_CramMD5AuthInfoProvider__ diff --git a/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Client.h b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Client.h new file mode 100644 index 00000000000..b524a65a5ad --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Client.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_crammd5_CramMD5Client__ +#define __gnu_javax_crypto_sasl_crammd5_CramMD5Client__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace crammd5 + { + class CramMD5Client; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::crammd5::CramMD5Client : public ::gnu::javax::crypto::sasl::ClientMechanism +{ + +public: + CramMD5Client(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual jboolean hasInitialResponse(); + virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *); +public: // actually protected + virtual ::java::lang::String * getNegotiatedQOP(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_crammd5_CramMD5Client__ diff --git a/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.h b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.h new file mode 100644 index 00000000000..2858e0521b4 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Registry.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_crammd5_CramMD5Registry__ +#define __gnu_javax_crypto_sasl_crammd5_CramMD5Registry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace crammd5 + { + class CramMD5Registry; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::crammd5::CramMD5Registry : public ::java::lang::Object +{ + +public: + static ::java::lang::String * PASSWORD_FILE; + static ::java::lang::String * DEFAULT_PASSWORD_FILE; + static ::java::lang::String * UID_FIELD; + static ::java::lang::String * GID_FIELD; + static ::java::lang::String * GECOS_FIELD; + static ::java::lang::String * DIR_FIELD; + static ::java::lang::String * SHELL_FIELD; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_sasl_crammd5_CramMD5Registry__ diff --git a/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Server.h b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Server.h new file mode 100644 index 00000000000..b6712fd8951 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Server.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_crammd5_CramMD5Server__ +#define __gnu_javax_crypto_sasl_crammd5_CramMD5Server__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace crammd5 + { + class CramMD5Server; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::crammd5::CramMD5Server : public ::gnu::javax::crypto::sasl::ServerMechanism +{ + +public: + CramMD5Server(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual JArray< jbyte > * evaluateResponse(JArray< jbyte > *); + virtual jboolean isComplete(); +public: // actually protected + virtual ::java::lang::String * getNegotiatedQOP(); +private: + JArray< jchar > * lookupPassword(::java::lang::String *); + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::sasl::ServerMechanism)))) msgID; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_crammd5_CramMD5Server__ diff --git a/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Util.h b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Util.h new file mode 100644 index 00000000000..4e338719543 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/crammd5/CramMD5Util.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_crammd5_CramMD5Util__ +#define __gnu_javax_crypto_sasl_crammd5_CramMD5Util__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace crammd5 + { + class CramMD5Util; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::crammd5::CramMD5Util : public ::java::lang::Object +{ + + CramMD5Util(); +public: // actually package-private + static JArray< jbyte > * createMsgID(); + static JArray< jbyte > * createHMac(JArray< jchar > *, JArray< jbyte > *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_crammd5_CramMD5Util__ diff --git a/libjava/gnu/javax/crypto/sasl/crammd5/PasswordFile.h b/libjava/gnu/javax/crypto/sasl/crammd5/PasswordFile.h new file mode 100644 index 00000000000..cb97b2fb9d0 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/crammd5/PasswordFile.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_crammd5_PasswordFile__ +#define __gnu_javax_crypto_sasl_crammd5_PasswordFile__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace crammd5 + { + class PasswordFile; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::crammd5::PasswordFile : public ::java::lang::Object +{ + +public: + PasswordFile(); + PasswordFile(::java::io::File *); + PasswordFile(::java::lang::String *); + virtual void add(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *); + virtual void changePasswd(::java::lang::String *, ::java::lang::String *); + virtual JArray< ::java::lang::String * > * lookup(::java::lang::String *); + virtual jboolean contains(::java::lang::String *); +private: + void update(); + void checkCurrent(); + void readPasswd(::java::io::InputStream *); + void savePasswd(); + static ::java::lang::String * DEFAULT_FILE; + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entries; + ::java::io::File * passwdFile; + jlong lastmod; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_crammd5_PasswordFile__ diff --git a/libjava/gnu/javax/crypto/sasl/plain/PasswordFile.h b/libjava/gnu/javax/crypto/sasl/plain/PasswordFile.h new file mode 100644 index 00000000000..2269e4870f1 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/plain/PasswordFile.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_plain_PasswordFile__ +#define __gnu_javax_crypto_sasl_plain_PasswordFile__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace plain + { + class PasswordFile; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::plain::PasswordFile : public ::java::lang::Object +{ + +public: + PasswordFile(); + PasswordFile(::java::io::File *); + PasswordFile(::java::lang::String *); + virtual void add(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *); + virtual void changePasswd(::java::lang::String *, ::java::lang::String *); + virtual JArray< ::java::lang::String * > * lookup(::java::lang::String *); + virtual jboolean contains(::java::lang::String *); +private: + void update(); + void checkCurrent(); + void readPasswd(::java::io::InputStream *); + void savePasswd(); + static ::java::lang::String * DEFAULT_FILE; + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entries; + ::java::io::File * passwdFile; + jlong lastmod; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_plain_PasswordFile__ diff --git a/libjava/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.h b/libjava/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.h new file mode 100644 index 00000000000..179026d4975 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_plain_PlainAuthInfoProvider__ +#define __gnu_javax_crypto_sasl_plain_PlainAuthInfoProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace plain + { + class PasswordFile; + class PlainAuthInfoProvider; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::plain::PlainAuthInfoProvider : public ::java::lang::Object +{ + +public: + PlainAuthInfoProvider(); + virtual void activate(::java::util::Map *); + virtual void passivate(); + virtual jboolean contains(::java::lang::String *); + virtual ::java::util::Map * lookup(::java::util::Map *); + virtual void update(::java::util::Map *); + virtual ::java::util::Map * getConfiguration(::java::lang::String *); +private: + ::gnu::javax::crypto::sasl::plain::PasswordFile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) passwordFile; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_plain_PlainAuthInfoProvider__ diff --git a/libjava/gnu/javax/crypto/sasl/plain/PlainClient.h b/libjava/gnu/javax/crypto/sasl/plain/PlainClient.h new file mode 100644 index 00000000000..0c3e6dd00bc --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/plain/PlainClient.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_plain_PlainClient__ +#define __gnu_javax_crypto_sasl_plain_PlainClient__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace plain + { + class PlainClient; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::plain::PlainClient : public ::gnu::javax::crypto::sasl::ClientMechanism +{ + +public: + PlainClient(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual jboolean hasInitialResponse(); + virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *); +public: // actually protected + virtual ::java::lang::String * getNegotiatedQOP(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_plain_PlainClient__ diff --git a/libjava/gnu/javax/crypto/sasl/plain/PlainRegistry.h b/libjava/gnu/javax/crypto/sasl/plain/PlainRegistry.h new file mode 100644 index 00000000000..d141b1e717a --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/plain/PlainRegistry.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_plain_PlainRegistry__ +#define __gnu_javax_crypto_sasl_plain_PlainRegistry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace plain + { + class PlainRegistry; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::plain::PlainRegistry : public ::java::lang::Object +{ + +public: + static ::java::lang::String * PASSWORD_FILE; + static ::java::lang::String * DEFAULT_PASSWORD_FILE; + static ::java::lang::String * UID_FIELD; + static ::java::lang::String * GID_FIELD; + static ::java::lang::String * GECOS_FIELD; + static ::java::lang::String * DIR_FIELD; + static ::java::lang::String * SHELL_FIELD; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_sasl_plain_PlainRegistry__ diff --git a/libjava/gnu/javax/crypto/sasl/plain/PlainServer.h b/libjava/gnu/javax/crypto/sasl/plain/PlainServer.h new file mode 100644 index 00000000000..a9214a2eb20 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/plain/PlainServer.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_plain_PlainServer__ +#define __gnu_javax_crypto_sasl_plain_PlainServer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace plain + { + class PlainServer; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::plain::PlainServer : public ::gnu::javax::crypto::sasl::ServerMechanism +{ + +public: + PlainServer(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual JArray< jbyte > * evaluateResponse(JArray< jbyte > *); +public: // actually protected + virtual ::java::lang::String * getNegotiatedQOP(); +private: + JArray< jchar > * lookupPassword(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_plain_PlainServer__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/CALG.h b/libjava/gnu/javax/crypto/sasl/srp/CALG.h new file mode 100644 index 00000000000..0b625387f62 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/CALG.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_CALG__ +#define __gnu_javax_crypto_sasl_srp_CALG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace assembly + { + class Assembly; + class Direction; + } + namespace sasl + { + namespace srp + { + class CALG; + class KDF; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::CALG : public ::java::lang::Object +{ + + CALG(jint, jint, ::java::lang::Object *, ::gnu::javax::crypto::assembly::Assembly *); +public: // actually package-private + static ::gnu::javax::crypto::sasl::srp::CALG * getInstance(::java::lang::String *); +public: + void init(::gnu::javax::crypto::sasl::srp::KDF *, JArray< jbyte > *, ::gnu::javax::crypto::assembly::Direction *); + JArray< jbyte > * doFinal(JArray< jbyte > *); + JArray< jbyte > * doFinal(JArray< jbyte > *, jint, jint); +private: + ::gnu::javax::crypto::assembly::Assembly * __attribute__((aligned(__alignof__( ::java::lang::Object)))) assembly; + ::java::lang::Object * modeNdx; + jint blockSize; + jint keySize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_CALG__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/ClientStore.h b/libjava/gnu/javax/crypto/sasl/srp/ClientStore.h new file mode 100644 index 00000000000..3a5e0e60d5c --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/ClientStore.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_ClientStore__ +#define __gnu_javax_crypto_sasl_srp_ClientStore__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class ClientStore; + class SecurityContext; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::ClientStore : public ::java::lang::Object +{ + + ClientStore(); +public: // actually package-private + static ::gnu::javax::crypto::sasl::srp::ClientStore * instance(); + virtual jboolean isAlive(::java::lang::String *); + virtual void cacheSession(::java::lang::String *, jint, ::gnu::javax::crypto::sasl::srp::SecurityContext *); + virtual void invalidateSession(::java::lang::String *); + virtual ::gnu::javax::crypto::sasl::srp::SecurityContext * restoreSession(::java::lang::String *); +private: + static ::gnu::javax::crypto::sasl::srp::ClientStore * singleton; + static ::java::util::HashMap * uid2ssc; + static ::java::util::HashMap * uid2ttl; + static ::java::lang::Object * lock; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_ClientStore__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/IALG.h b/libjava/gnu/javax/crypto/sasl/srp/IALG.h new file mode 100644 index 00000000000..faaa512e317 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/IALG.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_IALG__ +#define __gnu_javax_crypto_sasl_srp_IALG__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + } + namespace sasl + { + namespace srp + { + class IALG; + class KDF; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::IALG : public ::java::lang::Object +{ + + IALG(::gnu::javax::crypto::mac::IMac *); +public: // actually package-private + static ::gnu::javax::crypto::sasl::srp::IALG * getInstance(::java::lang::String *); +public: + ::java::lang::Object * clone(); + void init(::gnu::javax::crypto::sasl::srp::KDF *); + void update(JArray< jbyte > *); + void update(JArray< jbyte > *, jint, jint); + JArray< jbyte > * doFinal(); + jint length(); +private: + ::gnu::javax::crypto::mac::IMac * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hmac; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_IALG__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/KDF.h b/libjava/gnu/javax/crypto/sasl/srp/KDF.h new file mode 100644 index 00000000000..3862fa0c172 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/KDF.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_KDF__ +#define __gnu_javax_crypto_sasl_srp_KDF__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace prng + { + class UMacGenerator; + } + namespace sasl + { + namespace srp + { + class KDF; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::KDF : public ::java::lang::Object +{ + + KDF(JArray< jbyte > *, jint); +public: // actually package-private + static ::gnu::javax::crypto::sasl::srp::KDF * getInstance(JArray< jbyte > *); +private: + static jint nextByte(); +public: + virtual JArray< jbyte > * derive(jint); +private: + static const jint AES_BLOCK_SIZE = 16; + static const jint AES_KEY_SIZE = 16; + static JArray< jbyte > * buffer; + static ::gnu::java::security::util::PRNG * prng; + ::gnu::javax::crypto::prng::UMacGenerator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) umac; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_KDF__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/PasswordFile.h b/libjava/gnu/javax/crypto/sasl/srp/PasswordFile.h new file mode 100644 index 00000000000..46cf7838945 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/PasswordFile.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_PasswordFile__ +#define __gnu_javax_crypto_sasl_srp_PasswordFile__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class PasswordFile; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::sasl::srp::PasswordFile : public ::java::lang::Object +{ + +public: + PasswordFile(); + PasswordFile(::java::io::File *); + PasswordFile(::java::lang::String *); + PasswordFile(::java::lang::String *, ::java::lang::String *); + PasswordFile(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +private: + static ::java::lang::String * nameToID(::java::lang::String *); +public: + virtual jboolean containsConfig(::java::lang::String *); + virtual JArray< ::java::lang::String * > * lookupConfig(::java::lang::String *); + virtual jboolean contains(::java::lang::String *); + virtual void add(::java::lang::String *, ::java::lang::String *, JArray< jbyte > *, ::java::lang::String *); + virtual void changePasswd(::java::lang::String *, ::java::lang::String *); + virtual void savePasswd(); + virtual JArray< ::java::lang::String * > * lookup(::java::lang::String *, ::java::lang::String *); +private: + void readOrCreateConf(); + void readConf(::java::io::InputStream *); + void writeConf(::java::io::PrintWriter *); + ::java::util::HashMap * newVerifiers(::java::lang::String *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *); + void update(); + void checkCurrent(); + void readPasswd(::java::io::InputStream *); + void readPasswd2(::java::io::InputStream *); + void writePasswd(::java::io::PrintWriter *, ::java::io::PrintWriter *); + static ::java::lang::String * USER_FIELD; + static ::java::lang::String * VERIFIERS_FIELD; + static ::java::lang::String * SALT_FIELD; + static ::java::lang::String * CONFIG_FIELD; + static ::java::lang::String * DEFAULT_FILE; + static ::java::util::HashMap * srps; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) confName; + ::java::lang::String * pwName; + ::java::lang::String * pw2Name; + ::java::io::File * configFile; + ::java::io::File * passwdFile; + ::java::io::File * passwd2File; + jlong lastmodPasswdFile; + jlong lastmodPasswd2File; + ::java::util::HashMap * entries; + ::java::util::HashMap * configurations; + static JArray< ::java::math::BigInteger * > * Nsrp; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_PasswordFile__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/SRP.h b/libjava/gnu/javax/crypto/sasl/srp/SRP.h new file mode 100644 index 00000000000..b092d8a96c6 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/SRP.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_SRP__ +#define __gnu_javax_crypto_sasl_srp_SRP__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class SRP; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::sasl::srp::SRP : public ::java::lang::Object +{ + + SRP(::gnu::java::security::hash::IMessageDigest *); +public: + static ::gnu::javax::crypto::sasl::srp::SRP * instance(::java::lang::String *); +private: + static JArray< jbyte > * xor$(JArray< jbyte > *, JArray< jbyte > *, jint); +public: + ::java::lang::String * getAlgorithm(); + ::gnu::java::security::hash::IMessageDigest * newDigest(); + JArray< jbyte > * digest(JArray< jbyte > *); + JArray< jbyte > * digest(::java::lang::String *); + JArray< jbyte > * xor$(JArray< jbyte > *, JArray< jbyte > *); + JArray< jbyte > * generateM1(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::lang::String *, JArray< jbyte > *, ::java::math::BigInteger *, ::java::math::BigInteger *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, JArray< jbyte > *, JArray< jbyte > *); + JArray< jbyte > * generateM2(::java::math::BigInteger *, JArray< jbyte > *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, JArray< jbyte > *, jint, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *); + JArray< jbyte > * generateKn(JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *); + JArray< jbyte > * computeX(JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *); + JArray< jbyte > * computeX(JArray< jbyte > *, ::java::lang::String *, JArray< jbyte > *); +private: + JArray< jbyte > * computeX(JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *); + static ::java::util::HashMap * algorithms; + static const jbyte COLON = 58; + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mda; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_SRP__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.h b/libjava/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.h new file mode 100644 index 00000000000..630c80efa82 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_SRPAuthInfoProvider__ +#define __gnu_javax_crypto_sasl_srp_SRPAuthInfoProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class PasswordFile; + class SRPAuthInfoProvider; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::SRPAuthInfoProvider : public ::java::lang::Object +{ + +public: + SRPAuthInfoProvider(); + virtual void activate(::java::util::Map *); + virtual void passivate(); + virtual jboolean contains(::java::lang::String *); + virtual ::java::util::Map * lookup(::java::util::Map *); + virtual void update(::java::util::Map *); + virtual ::java::util::Map * getConfiguration(::java::lang::String *); +private: + ::gnu::javax::crypto::sasl::srp::PasswordFile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) passwordFile; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_SRPAuthInfoProvider__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/SRPClient.h b/libjava/gnu/javax/crypto/sasl/srp/SRPClient.h new file mode 100644 index 00000000000..ec13be653b6 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/SRPClient.h @@ -0,0 +1,129 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_SRPClient__ +#define __gnu_javax_crypto_sasl_srp_SRPClient__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace key + { + class IKeyAgreementParty; + } + namespace sasl + { + namespace srp + { + class CALG; + class IALG; + class SRP; + class SRPClient; + } + } + } + namespace security + { + namespace auth + { + class Password; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::sasl::srp::SRPClient : public ::gnu::javax::crypto::sasl::ClientMechanism +{ + +public: + SRPClient(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual jboolean hasInitialResponse(); + virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *); +public: // actually protected + virtual JArray< jbyte > * engineUnwrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineWrap(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * getNegotiatedQOP(); + virtual ::java::lang::String * getNegotiatedStrength(); + virtual ::java::lang::String * getNegotiatedRawSendSize(); + virtual ::java::lang::String * getReuse(); +private: + JArray< jbyte > * sendIdentities(); + JArray< jbyte > * sendPublicKey(JArray< jbyte > *); + JArray< jbyte > * receiveEvidence(JArray< jbyte > *); + void getUsernameAndPassword(); + ::java::lang::String * createO(::java::lang::String *); + void setupSecurityServices(jboolean); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); + static ::java::util::logging::Logger * log; + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::sasl::ClientMechanism)))) uid; + ::java::lang::String * U; +public: // actually package-private + ::java::math::BigInteger * N; + ::java::math::BigInteger * g; + ::java::math::BigInteger * A; + ::java::math::BigInteger * B; +private: + ::gnu::javax::security::auth::Password * password; + JArray< jbyte > * s; + JArray< jbyte > * cIV; + JArray< jbyte > * sIV; + JArray< jbyte > * M1; + JArray< jbyte > * M2; + JArray< jbyte > * cn; + JArray< jbyte > * sn; + ::gnu::javax::crypto::sasl::srp::SRP * srp; + JArray< jbyte > * sid; + jint ttl; + JArray< jbyte > * sCB; + ::java::lang::String * L; + ::java::lang::String * o; + ::java::lang::String * chosenIntegrityAlgorithm; + ::java::lang::String * chosenConfidentialityAlgorithm; + jint rawSendSize; + JArray< jbyte > * K; + jboolean replayDetection; + jint inCounter; + jint outCounter; + ::gnu::javax::crypto::sasl::srp::IALG * inMac; + ::gnu::javax::crypto::sasl::srp::IALG * outMac; + ::gnu::javax::crypto::sasl::srp::CALG * inCipher; + ::gnu::javax::crypto::sasl::srp::CALG * outCipher; + ::gnu::javax::crypto::key::IKeyAgreementParty * clientHandler; + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_SRPClient__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/SRPRegistry.h b/libjava/gnu/javax/crypto/sasl/srp/SRPRegistry.h new file mode 100644 index 00000000000..22cd5d9e42f --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/SRPRegistry.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_SRPRegistry__ +#define __gnu_javax_crypto_sasl_srp_SRPRegistry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class SRPRegistry; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::SRPRegistry : public ::java::lang::Object +{ + +public: + static ::java::lang::String * N_2048_BITS; + static ::java::lang::String * N_1536_BITS; + static ::java::lang::String * N_1280_BITS; + static ::java::lang::String * N_1024_BITS; + static ::java::lang::String * N_768_BITS; + static ::java::lang::String * N_640_BITS; + static ::java::lang::String * N_512_BITS; + static JArray< ::java::lang::String * > * SRP_ALGORITHMS; + static ::java::lang::String * SRP_DEFAULT_DIGEST_NAME; + static ::java::lang::String * SRP_DIGEST_NAME; + static ::java::lang::String * SHARED_MODULUS; + static ::java::lang::String * FIELD_GENERATOR; + static ::java::lang::String * AVAILABLE_OPTIONS; + static ::java::lang::String * CHOSEN_OPTIONS; + static ::java::lang::String * USER_NAME; + static ::java::lang::String * USER_ROLE; + static ::java::lang::String * USER_SALT; + static ::java::lang::String * PASSWORD_VERIFIER; + static ::java::lang::String * CLIENT_PUBLIC_KEY; + static ::java::lang::String * SERVER_PUBLIC_KEY; + static ::java::lang::String * CLIENT_EVIDENCE; + static ::java::lang::String * SERVER_EVIDENCE; + static ::java::lang::String * SRP_HASH; + static ::java::lang::String * SRP_MANDATORY; + static ::java::lang::String * SRP_REPLAY_DETECTION; + static ::java::lang::String * SRP_INTEGRITY_PROTECTION; + static ::java::lang::String * SRP_CONFIDENTIALITY; + static ::java::lang::String * PASSWORD_FILE; + static ::java::lang::String * PASSWORD_DB; + static ::java::lang::String * DEFAULT_PASSWORD_FILE; + static const jboolean DEFAULT_REPLAY_DETECTION = 1; + static const jboolean DEFAULT_INTEGRITY = 1; + static const jboolean DEFAULT_CONFIDENTIALITY = 0; + static ::java::lang::String * HMAC_SHA1; + static ::java::lang::String * HMAC_MD5; + static ::java::lang::String * HMAC_RIPEMD_160; + static JArray< ::java::lang::String * > * INTEGRITY_ALGORITHMS; + static ::java::lang::String * AES; + static ::java::lang::String * BLOWFISH; + static JArray< ::java::lang::String * > * CONFIDENTIALITY_ALGORITHMS; + static ::java::lang::String * OPTION_MANDATORY; + static ::java::lang::String * OPTION_SRP_DIGEST; + static ::java::lang::String * OPTION_REPLAY_DETECTION; + static ::java::lang::String * OPTION_INTEGRITY; + static ::java::lang::String * OPTION_CONFIDENTIALITY; + static ::java::lang::String * OPTION_MAX_BUFFER_SIZE; + static ::java::lang::String * MANDATORY_NONE; + static ::java::lang::String * DEFAULT_MANDATORY; + static ::java::lang::String * MD_NAME_FIELD; + static ::java::lang::String * USER_VERIFIER_FIELD; + static ::java::lang::String * SALT_FIELD; + static ::java::lang::String * CONFIG_NDX_FIELD; + static const jint MINIMUM_MODULUS_BITLENGTH = 512; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_crypto_sasl_srp_SRPRegistry__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/SRPServer.h b/libjava/gnu/javax/crypto/sasl/srp/SRPServer.h new file mode 100644 index 00000000000..b78a26bca83 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/SRPServer.h @@ -0,0 +1,115 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_SRPServer__ +#define __gnu_javax_crypto_sasl_srp_SRPServer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace util + { + class PRNG; + } + } + } + namespace javax + { + namespace crypto + { + namespace key + { + class IKeyAgreementParty; + } + namespace sasl + { + namespace srp + { + class CALG; + class IALG; + class SRP; + class SRPServer; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::crypto::sasl::srp::SRPServer : public ::gnu::javax::crypto::sasl::ServerMechanism +{ + +public: + SRPServer(); +public: // actually protected + virtual void initMechanism(); + virtual void resetMechanism(); +public: + virtual JArray< jbyte > * evaluateResponse(JArray< jbyte > *); +public: // actually protected + virtual JArray< jbyte > * engineUnwrap(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineWrap(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * getNegotiatedQOP(); + virtual ::java::lang::String * getNegotiatedStrength(); + virtual ::java::lang::String * getNegotiatedRawSendSize(); + virtual ::java::lang::String * getReuse(); +private: + JArray< jbyte > * sendProtocolElements(JArray< jbyte > *); + JArray< jbyte > * sendEvidence(JArray< jbyte > *); + ::java::lang::String * createL(); + void parseO(::java::lang::String *); + void setupSecurityServices(jboolean); + ::gnu::java::security::util::PRNG * getDefaultPRNG(); + static ::java::util::logging::Logger * log; + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::crypto::sasl::ServerMechanism)))) U; + ::java::math::BigInteger * N; + ::java::math::BigInteger * g; + ::java::math::BigInteger * A; + ::java::math::BigInteger * B; + JArray< jbyte > * s; + JArray< jbyte > * cIV; + JArray< jbyte > * sIV; + JArray< jbyte > * cn; + JArray< jbyte > * sn; + ::gnu::javax::crypto::sasl::srp::SRP * srp; + JArray< jbyte > * sid; + jint ttl; + JArray< jbyte > * cCB; + ::java::lang::String * mandatory; + ::java::lang::String * L; + ::java::lang::String * o; + ::java::lang::String * chosenIntegrityAlgorithm; + ::java::lang::String * chosenConfidentialityAlgorithm; + jint rawSendSize; + JArray< jbyte > * K; + jboolean replayDetection; + jint inCounter; + jint outCounter; + ::gnu::javax::crypto::sasl::srp::IALG * inMac; + ::gnu::javax::crypto::sasl::srp::IALG * outMac; + ::gnu::javax::crypto::sasl::srp::CALG * inCipher; + ::gnu::javax::crypto::sasl::srp::CALG * outCipher; + ::gnu::javax::crypto::key::IKeyAgreementParty * serverHandler; + ::gnu::java::security::util::PRNG * prng; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_SRPServer__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/SecurityContext.h b/libjava/gnu/javax/crypto/sasl/srp/SecurityContext.h new file mode 100644 index 00000000000..b4b4a222e8c --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/SecurityContext.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_SecurityContext__ +#define __gnu_javax_crypto_sasl_srp_SecurityContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class CALG; + class IALG; + class SecurityContext; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::SecurityContext : public ::java::lang::Object +{ + +public: // actually package-private + SecurityContext(::java::lang::String *, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *, jboolean, jint, jint, ::gnu::javax::crypto::sasl::srp::IALG *, ::gnu::javax::crypto::sasl::srp::IALG *, ::gnu::javax::crypto::sasl::srp::CALG *, ::gnu::javax::crypto::sasl::srp::CALG *); + virtual ::java::lang::String * getMdName(); + virtual JArray< jbyte > * getSID(); + virtual JArray< jbyte > * getK(); + virtual JArray< jbyte > * getClientIV(); + virtual JArray< jbyte > * getServerIV(); + virtual jboolean hasReplayDetection(); + virtual jint getInCounter(); + virtual jint getOutCounter(); + virtual ::gnu::javax::crypto::sasl::srp::IALG * getInMac(); + virtual ::gnu::javax::crypto::sasl::srp::IALG * getOutMac(); + virtual ::gnu::javax::crypto::sasl::srp::CALG * getInCipher(); + virtual ::gnu::javax::crypto::sasl::srp::CALG * getOutCipher(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mdName; + JArray< jbyte > * sid; + JArray< jbyte > * K; + JArray< jbyte > * cIV; + JArray< jbyte > * sIV; + jboolean replayDetection; + jint inCounter; + jint outCounter; + ::gnu::javax::crypto::sasl::srp::IALG * inMac; + ::gnu::javax::crypto::sasl::srp::IALG * outMac; + ::gnu::javax::crypto::sasl::srp::CALG * inCipher; + ::gnu::javax::crypto::sasl::srp::CALG * outCipher; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_SecurityContext__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/ServerStore.h b/libjava/gnu/javax/crypto/sasl/srp/ServerStore.h new file mode 100644 index 00000000000..f93429beed7 --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/ServerStore.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_ServerStore__ +#define __gnu_javax_crypto_sasl_srp_ServerStore__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class SecurityContext; + class ServerStore; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::ServerStore : public ::java::lang::Object +{ + + ServerStore(); +public: // actually package-private + static ::gnu::javax::crypto::sasl::srp::ServerStore * instance(); + static JArray< jbyte > * getNewSessionID(); + virtual jboolean isAlive(JArray< jbyte > *); + virtual void cacheSession(jint, ::gnu::javax::crypto::sasl::srp::SecurityContext *); + virtual ::gnu::javax::crypto::sasl::srp::SecurityContext * restoreSession(JArray< jbyte > *); + virtual void invalidateSession(JArray< jbyte > *); +private: + static ::gnu::javax::crypto::sasl::srp::ServerStore * singleton; + static ::java::util::HashMap * sid2ssc; + static ::java::util::HashMap * sid2ttl; + static ::java::lang::Object * lock; + static jint counter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_ServerStore__ diff --git a/libjava/gnu/javax/crypto/sasl/srp/StoreEntry.h b/libjava/gnu/javax/crypto/sasl/srp/StoreEntry.h new file mode 100644 index 00000000000..19203bcd06a --- /dev/null +++ b/libjava/gnu/javax/crypto/sasl/srp/StoreEntry.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_crypto_sasl_srp_StoreEntry__ +#define __gnu_javax_crypto_sasl_srp_StoreEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class StoreEntry; + } + } + } + } + } +} + +class gnu::javax::crypto::sasl::srp::StoreEntry : public ::java::lang::Object +{ + +public: // actually package-private + StoreEntry(jint); + virtual jboolean isAlive(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) perenial; + jlong timeToDie; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_crypto_sasl_srp_StoreEntry__ diff --git a/libjava/gnu/javax/imageio/IIOInputStream.h b/libjava/gnu/javax/imageio/IIOInputStream.h new file mode 100644 index 00000000000..2f0cbbdd064 --- /dev/null +++ b/libjava/gnu/javax/imageio/IIOInputStream.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_IIOInputStream__ +#define __gnu_javax_imageio_IIOInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + class IIOInputStream; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::IIOInputStream : public ::java::io::InputStream +{ + +public: + IIOInputStream(::javax::imageio::stream::ImageInputStream *); + virtual jint available(); + virtual void close(); + virtual void mark(jint); + virtual jboolean markSupported(); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void reset(); + virtual jlong skip(jlong); +private: + ::javax::imageio::stream::ImageInputStream * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) is; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_IIOInputStream__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPDecoder.h b/libjava/gnu/javax/imageio/bmp/BMPDecoder.h new file mode 100644 index 00000000000..34c486a438a --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPDecoder.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPDecoder__ +#define __gnu_javax_imageio_bmp_BMPDecoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPDecoder; + class BMPFileHeader; + class BMPInfoHeader; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + class IndexColorModel; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::BMPDecoder : public ::java::lang::Object +{ + +public: + BMPDecoder(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + static ::gnu::javax::imageio::bmp::BMPDecoder * getDecoder(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *) = 0; +public: // actually protected + virtual JArray< jint > * readBitMasks(::javax::imageio::stream::ImageInputStream *); + virtual ::java::awt::image::IndexColorModel * readPalette(::javax::imageio::stream::ImageInputStream *); + virtual void skipToImage(::javax::imageio::stream::ImageInputStream *); + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPDecoder__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPEncoder.h b/libjava/gnu/javax/imageio/bmp/BMPEncoder.h new file mode 100644 index 00000000000..db60ff86552 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPEncoder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPEncoder__ +#define __gnu_javax_imageio_bmp_BMPEncoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPEncoder; + class BMPFileHeader; + class BMPInfoHeader; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::BMPEncoder : public ::java::lang::Object +{ + +public: + BMPEncoder(); + static ::gnu::javax::imageio::bmp::BMPEncoder * getEncoder(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPEncoder__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPException.h b/libjava/gnu/javax/imageio/bmp/BMPException.h new file mode 100644 index 00000000000..9a51c41ad63 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPException__ +#define __gnu_javax_imageio_bmp_BMPException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPException; + } + } + } + } +} + +class gnu::javax::imageio::bmp::BMPException : public ::javax::imageio::IIOException +{ + +public: + BMPException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPException__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPFileHeader.h b/libjava/gnu/javax/imageio/bmp/BMPFileHeader.h new file mode 100644 index 00000000000..1fe5d3f0eff --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPFileHeader.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPFileHeader__ +#define __gnu_javax_imageio_bmp_BMPFileHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + namespace stream + { + class ImageInputStream; + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::BMPFileHeader : public ::java::lang::Object +{ + +public: + BMPFileHeader(::javax::imageio::stream::ImageInputStream *); + BMPFileHeader(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::IIOImage *); + virtual void write(::javax::imageio::stream::ImageOutputStream *); + virtual void setSize(jlong); + virtual void setOffset(jlong); + virtual jlong getSize(); + virtual jlong getOffset(); +private: + static const jshort bfType = 16973; +public: // actually protected + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) bfSize; + jlong bfOffBits; +public: + static const jint SIZE = 14; +private: + static const jint BITMAPINFOHEADER_SIZE = 40; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPFileHeader__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPImageReader.h b/libjava/gnu/javax/imageio/bmp/BMPImageReader.h new file mode 100644 index 00000000000..972124e6706 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPImageReader.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPImageReader__ +#define __gnu_javax_imageio_bmp_BMPImageReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPDecoder; + class BMPFileHeader; + class BMPImageReader; + class BMPInfoHeader; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + class ImageReadParam; + namespace metadata + { + class IIOMetadata; + } + namespace spi + { + class ImageReaderSpi; + } + } + } +} + +class gnu::javax::imageio::bmp::BMPImageReader : public ::javax::imageio::ImageReader +{ + +public: // actually protected + BMPImageReader(::javax::imageio::spi::ImageReaderSpi *); +private: + void validateIndex(jint); +public: + virtual void setInput(::java::lang::Object *); + virtual void setInput(::java::lang::Object *, jboolean, jboolean); + virtual void setInput(::java::lang::Object *, jboolean); +private: + void checkStream(); + void readHeaders(); +public: + virtual jint getWidth(jint); + virtual jint getHeight(jint); + virtual ::java::util::Iterator * getImageTypes(jint); + virtual jint getNumImages(jboolean); + virtual ::javax::imageio::metadata::IIOMetadata * getImageMetadata(jint); + virtual ::javax::imageio::metadata::IIOMetadata * getStreamMetadata(); + virtual ::java::awt::image::BufferedImage * read(jint, ::javax::imageio::ImageReadParam *); +private: + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::javax::imageio::ImageReader)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + ::gnu::javax::imageio::bmp::BMPDecoder * decoder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPImageReader__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPImageReaderSpi.h b/libjava/gnu/javax/imageio/bmp/BMPImageReaderSpi.h new file mode 100644 index 00000000000..f7ac3a4d656 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPImageReaderSpi.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPImageReaderSpi__ +#define __gnu_javax_imageio_bmp_BMPImageReaderSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPImageReaderSpi; + } + } + } + } + namespace javax + { + namespace imageio + { + class ImageReader; + } + } +} + +class gnu::javax::imageio::bmp::BMPImageReaderSpi : public ::javax::imageio::spi::ImageReaderSpi +{ + +public: + BMPImageReaderSpi(); + virtual ::java::lang::String * getDescription(::java::util::Locale *); + virtual jboolean canDecodeInput(::java::lang::Object *); + virtual ::javax::imageio::ImageReader * createReaderInstance(::java::lang::Object *); +public: // actually package-private + static ::java::lang::String * vendorName; + static ::java::lang::String * version; + static ::java::lang::String * readerClassName; + static JArray< ::java::lang::String * > * names; + static JArray< ::java::lang::String * > * suffixes; + static JArray< ::java::lang::String * > * MIMETypes; + static JArray< ::java::lang::String * > * writerSpiNames; + static const jboolean supportsStandardStreamMetadataFormat = 0; + static ::java::lang::String * nativeStreamMetadataFormatName; + static ::java::lang::String * nativeStreamMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatNames; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatClassNames; + static const jboolean supportsStandardImageMetadataFormat = 0; + static ::java::lang::String * nativeImageMetadataFormatName; + static ::java::lang::String * nativeImageMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraImageMetadataFormatNames; + static JArray< ::java::lang::String * > * extraImageMetadataFormatClassNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPImageReaderSpi__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPImageWriter.h b/libjava/gnu/javax/imageio/bmp/BMPImageWriter.h new file mode 100644 index 00000000000..1fb9795af7c --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPImageWriter.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPImageWriter__ +#define __gnu_javax_imageio_bmp_BMPImageWriter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPEncoder; + class BMPFileHeader; + class BMPImageWriter; + class BMPInfoHeader; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageTypeSpecifier; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace spi + { + class ImageWriterSpi; + } + } + } +} + +class gnu::javax::imageio::bmp::BMPImageWriter : public ::javax::imageio::ImageWriter +{ + +public: // actually protected + BMPImageWriter(::javax::imageio::spi::ImageWriterSpi *); +public: + virtual ::javax::imageio::metadata::IIOMetadata * convertImageMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *); + virtual ::javax::imageio::metadata::IIOMetadata * convertStreamMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageWriteParam *); + virtual ::javax::imageio::metadata::IIOMetadata * getDefaultImageMetadata(::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *); + virtual ::javax::imageio::metadata::IIOMetadata * getDefaultStreamMetadata(::javax::imageio::ImageWriteParam *); + virtual void write(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +private: + void checkStream(); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPEncoder * __attribute__((aligned(__alignof__( ::javax::imageio::ImageWriter)))) encoder; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + ::gnu::javax::imageio::bmp::BMPInfoHeader * infoHeader; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPImageWriter__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPImageWriterSpi.h b/libjava/gnu/javax/imageio/bmp/BMPImageWriterSpi.h new file mode 100644 index 00000000000..76ca4b07d11 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPImageWriterSpi.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPImageWriterSpi__ +#define __gnu_javax_imageio_bmp_BMPImageWriterSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPImageWriter; + class BMPImageWriterSpi; + } + } + } + } + namespace javax + { + namespace imageio + { + class ImageTypeSpecifier; + class ImageWriter; + } + } +} + +class gnu::javax::imageio::bmp::BMPImageWriterSpi : public ::javax::imageio::spi::ImageWriterSpi +{ + +public: + BMPImageWriterSpi(); + virtual jboolean canEncodeImage(::javax::imageio::ImageTypeSpecifier *); + virtual ::javax::imageio::ImageWriter * createWriterInstance(::java::lang::Object *); + virtual ::gnu::javax::imageio::bmp::BMPImageWriter * getWriterInstance(); + virtual ::java::lang::String * getDescription(::java::util::Locale *); +public: // actually package-private + static ::java::lang::String * vendorName; + static ::java::lang::String * version; + static ::java::lang::String * writerClassName; + static JArray< ::java::lang::String * > * names; + static JArray< ::java::lang::String * > * suffixes; + static JArray< ::java::lang::String * > * MIMETypes; + static JArray< ::java::lang::String * > * readerSpiNames; + static const jboolean supportsStandardStreamMetadataFormat = 0; + static ::java::lang::String * nativeStreamMetadataFormatName; + static ::java::lang::String * nativeStreamMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatNames; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatClassNames; + static const jboolean supportsStandardImageMetadataFormat = 0; + static ::java::lang::String * nativeImageMetadataFormatName; + static ::java::lang::String * nativeImageMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraImageMetadataFormatNames; + static JArray< ::java::lang::String * > * extraImageMetadataFormatClassNames; +private: + ::gnu::javax::imageio::bmp::BMPImageWriter * __attribute__((aligned(__alignof__( ::javax::imageio::spi::ImageWriterSpi)))) writerInstance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPImageWriterSpi__ diff --git a/libjava/gnu/javax/imageio/bmp/BMPInfoHeader.h b/libjava/gnu/javax/imageio/bmp/BMPInfoHeader.h new file mode 100644 index 00000000000..d47843f6056 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/BMPInfoHeader.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_BMPInfoHeader__ +#define __gnu_javax_imageio_bmp_BMPInfoHeader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPInfoHeader; + } + } + } + } + namespace java + { + namespace awt + { + class Dimension; + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace stream + { + class ImageInputStream; + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::BMPInfoHeader : public ::java::lang::Object +{ + +public: + BMPInfoHeader(::javax::imageio::stream::ImageInputStream *); + BMPInfoHeader(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +private: + JArray< jbyte > * intToWord(jint); + JArray< jbyte > * intToDWord(jint); +public: + virtual void setBitCount(jshort); + virtual jshort getBitCount(); + virtual void setCompression(jint); + virtual jint getNumberOfPaletteEntries(); + virtual jint getCompression(); + virtual ::java::awt::Dimension * getSize(); + virtual jint getWidth(); + virtual jint getHeight(); + virtual void setSize(::java::awt::Dimension *); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) biSize; + jint biWidth; + jint biHeight; + jshort biPlanes; + jshort biBitCount; + jint biCompression; + jint biSizeImage; + jint biXPelsPerMeter; + jint biYPelsPerMeter; + jint biClrUsed; + jint biClrImportant; +public: + static const jint SIZE = 40; + static const jint BI_RGB = 0; + static const jint BI_RLE8 = 1; + static const jint BI_RLE4 = 2; + static const jint BI_BITFIELDS = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_BMPInfoHeader__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeBF16.h b/libjava/gnu/javax/imageio/bmp/DecodeBF16.h new file mode 100644 index 00000000000..3051f0bcc7c --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeBF16.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeBF16__ +#define __gnu_javax_imageio_bmp_DecodeBF16__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeBF16; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeBF16 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeBF16(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *, jboolean); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPDecoder)))) bitmasks; + jboolean useDefaultMasks; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeBF16__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeBF32.h b/libjava/gnu/javax/imageio/bmp/DecodeBF32.h new file mode 100644 index 00000000000..ac4f03507b6 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeBF32.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeBF32__ +#define __gnu_javax_imageio_bmp_DecodeBF32__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeBF32; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeBF32 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeBF32(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *, jboolean); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPDecoder)))) bitmasks; + jboolean useDefaultMasks; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeBF32__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeRGB1.h b/libjava/gnu/javax/imageio/bmp/DecodeRGB1.h new file mode 100644 index 00000000000..ec4acf80fda --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeRGB1.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeRGB1__ +#define __gnu_javax_imageio_bmp_DecodeRGB1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeRGB1; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeRGB1 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeRGB1(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeRGB1__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeRGB24.h b/libjava/gnu/javax/imageio/bmp/DecodeRGB24.h new file mode 100644 index 00000000000..da0e4dff179 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeRGB24.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeRGB24__ +#define __gnu_javax_imageio_bmp_DecodeRGB24__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeRGB24; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeRGB24 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeRGB24(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeRGB24__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeRGB4.h b/libjava/gnu/javax/imageio/bmp/DecodeRGB4.h new file mode 100644 index 00000000000..d0b7e08ca9b --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeRGB4.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeRGB4__ +#define __gnu_javax_imageio_bmp_DecodeRGB4__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeRGB4; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeRGB4 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeRGB4(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeRGB4__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeRGB8.h b/libjava/gnu/javax/imageio/bmp/DecodeRGB8.h new file mode 100644 index 00000000000..e8a6300fbc3 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeRGB8.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeRGB8__ +#define __gnu_javax_imageio_bmp_DecodeRGB8__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeRGB8; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeRGB8 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeRGB8(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeRGB8__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeRLE4.h b/libjava/gnu/javax/imageio/bmp/DecodeRLE4.h new file mode 100644 index 00000000000..f70a21bfa27 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeRLE4.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeRLE4__ +#define __gnu_javax_imageio_bmp_DecodeRLE4__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeRLE4; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeRLE4 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeRLE4(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); +private: + JArray< jbyte > * uncompress(jint, jint, ::javax::imageio::stream::ImageInputStream *); + static const jbyte ESCAPE = 0; + static const jbyte EOL = 0; + static const jbyte EOB = 1; + static const jbyte DELTA = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeRLE4__ diff --git a/libjava/gnu/javax/imageio/bmp/DecodeRLE8.h b/libjava/gnu/javax/imageio/bmp/DecodeRLE8.h new file mode 100644 index 00000000000..bb23187c336 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/DecodeRLE8.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_DecodeRLE8__ +#define __gnu_javax_imageio_bmp_DecodeRLE8__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class DecodeRLE8; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::DecodeRLE8 : public ::gnu::javax::imageio::bmp::BMPDecoder +{ + +public: + DecodeRLE8(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual ::java::awt::image::BufferedImage * decode(::javax::imageio::stream::ImageInputStream *); +private: + JArray< jbyte > * uncompress(jint, jint, ::javax::imageio::stream::ImageInputStream *); + static const jbyte ESCAPE = 0; + static const jbyte EOL = 0; + static const jbyte EOB = 1; + static const jbyte DELTA = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_DecodeRLE8__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRGB1.h b/libjava/gnu/javax/imageio/bmp/EncodeRGB1.h new file mode 100644 index 00000000000..55f4f8296ba --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRGB1.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRGB1__ +#define __gnu_javax_imageio_bmp_EncodeRGB1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRGB1; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRGB1 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRGB1(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRGB1__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRGB16.h b/libjava/gnu/javax/imageio/bmp/EncodeRGB16.h new file mode 100644 index 00000000000..ff3d78247c5 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRGB16.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRGB16__ +#define __gnu_javax_imageio_bmp_EncodeRGB16__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRGB16; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRGB16 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRGB16(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRGB16__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRGB24.h b/libjava/gnu/javax/imageio/bmp/EncodeRGB24.h new file mode 100644 index 00000000000..a40226c10a9 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRGB24.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRGB24__ +#define __gnu_javax_imageio_bmp_EncodeRGB24__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRGB24; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRGB24 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRGB24(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRGB24__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRGB32.h b/libjava/gnu/javax/imageio/bmp/EncodeRGB32.h new file mode 100644 index 00000000000..7d170f73fcf --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRGB32.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRGB32__ +#define __gnu_javax_imageio_bmp_EncodeRGB32__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRGB32; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRGB32 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRGB32(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRGB32__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRGB4.h b/libjava/gnu/javax/imageio/bmp/EncodeRGB4.h new file mode 100644 index 00000000000..15fe1243255 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRGB4.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRGB4__ +#define __gnu_javax_imageio_bmp_EncodeRGB4__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRGB4; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRGB4 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRGB4(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRGB4__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRGB8.h b/libjava/gnu/javax/imageio/bmp/EncodeRGB8.h new file mode 100644 index 00000000000..f01e35f764d --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRGB8.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRGB8__ +#define __gnu_javax_imageio_bmp_EncodeRGB8__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRGB8; + } + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRGB8 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRGB8(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRGB8__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRLE4.h b/libjava/gnu/javax/imageio/bmp/EncodeRLE4.h new file mode 100644 index 00000000000..3b9c0f7d096 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRLE4.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRLE4__ +#define __gnu_javax_imageio_bmp_EncodeRLE4__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRLE4; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRLE4 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRLE4(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +private: + JArray< jbyte > * uncompress(jint, jint, ::java::nio::ByteBuffer *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +private: + static const jbyte ESCAPE = 0; + static const jbyte EOL = 0; + static const jbyte EOB = 1; + static const jbyte DELTA = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRLE4__ diff --git a/libjava/gnu/javax/imageio/bmp/EncodeRLE8.h b/libjava/gnu/javax/imageio/bmp/EncodeRLE8.h new file mode 100644 index 00000000000..d6e6e450fb0 --- /dev/null +++ b/libjava/gnu/javax/imageio/bmp/EncodeRLE8.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_bmp_EncodeRLE8__ +#define __gnu_javax_imageio_bmp_EncodeRLE8__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace bmp + { + class BMPFileHeader; + class BMPInfoHeader; + class EncodeRLE8; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class gnu::javax::imageio::bmp::EncodeRLE8 : public ::gnu::javax::imageio::bmp::BMPEncoder +{ + +public: + EncodeRLE8(::gnu::javax::imageio::bmp::BMPFileHeader *, ::gnu::javax::imageio::bmp::BMPInfoHeader *); + virtual void encode(::javax::imageio::stream::ImageOutputStream *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +private: + JArray< jbyte > * uncompress(jint, jint, ::java::nio::ByteBuffer *); +public: // actually protected + ::gnu::javax::imageio::bmp::BMPInfoHeader * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::bmp::BMPEncoder)))) infoHeader; + ::gnu::javax::imageio::bmp::BMPFileHeader * fileHeader; + jlong offset; +private: + static const jbyte ESCAPE = 0; + static const jbyte EOL = 0; + static const jbyte EOB = 1; + static const jbyte DELTA = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_bmp_EncodeRLE8__ diff --git a/libjava/gnu/javax/imageio/gif/GIFFile$GIFException.h b/libjava/gnu/javax/imageio/gif/GIFFile$GIFException.h new file mode 100644 index 00000000000..d4468b95883 --- /dev/null +++ b/libjava/gnu/javax/imageio/gif/GIFFile$GIFException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_gif_GIFFile$GIFException__ +#define __gnu_javax_imageio_gif_GIFFile$GIFException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace gif + { + class GIFFile$GIFException; + } + } + } + } +} + +class gnu::javax::imageio::gif::GIFFile$GIFException : public ::java::lang::Exception +{ + +public: + GIFFile$GIFException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_gif_GIFFile$GIFException__ diff --git a/libjava/gnu/javax/imageio/gif/GIFFile.h b/libjava/gnu/javax/imageio/gif/GIFFile.h new file mode 100644 index 00000000000..b574276fd05 --- /dev/null +++ b/libjava/gnu/javax/imageio/gif/GIFFile.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_gif_GIFFile__ +#define __gnu_javax_imageio_gif_GIFFile__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace gif + { + class GIFFile; + } + } + } + } +} + +class gnu::javax::imageio::gif::GIFFile : public ::java::lang::Object +{ + +public: + GIFFile(::java::io::InputStream *); +private: + GIFFile(::gnu::javax::imageio::gif::GIFFile *, ::java::io::InputStream *, jint); +public: + static jboolean readSignature(::java::io::InputStream *); +private: + void loadImage(::java::io::InputStream *); + void packPixels(); +public: + virtual jint getWidth(); + virtual jint getHeight(); + virtual jint getNColors(); + virtual jboolean hasTransparency(); + virtual jint getTransparentIndex(); + virtual ::java::lang::String * getComment(); + virtual jint getDuration(); +private: + void deinterlace(); + void readLocal(::java::io::InputStream *); +public: + virtual JArray< jbyte > * getRawPalette(); + virtual ::gnu::javax::imageio::gif::GIFFile * getImage(jint); + virtual JArray< jbyte > * getRawImage(); + virtual jint nImages(); +private: + void readExtension(::java::io::InputStream *); + JArray< jbyte > * readData(::java::io::InputStream *); + void decodeRaster(::java::io::InputStream *); + jint getBits(jint); + static JArray< jbyte > * nsBlock; + static const jint EXTENSION = 33; + static const jint LOCAL = 44; + static const jint TERMINATOR = 59; + static const jint EXTENSION_COMMENT = 254; + static const jint EXTENSION_GCONTROL = 249; + static const jint EXTENSION_APPLICATION = 255; + static const jint UNDRAW_OVERWRITE = 1; + static const jint UNDRAW_RESTORE_BACKGROUND = 2; + static const jint UNDRAW_RESTORE_PREVIOUS = 3; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) x; + jint y; + jint width; + jint height; + jint globalWidth; + jint globalHeight; + jbyte bgIndex; + jint nColors; + JArray< jbyte > * globalPalette; + jboolean hasGlobalColorMap; + JArray< jbyte > * localPalette; + jboolean interlaced; + jboolean hasTransparency__; + jint undraw; + jint transparentIndex; + JArray< jbyte > * raster; + JArray< jbyte > * compressedData; + jint duration; + jint dataBlockIndex; + ::java::lang::String * comment; + jint remainingBits; + jint currentBits; + jboolean isLooped; + jint loops; + ::java::util::Vector * animationFrames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_gif_GIFFile__ diff --git a/libjava/gnu/javax/imageio/gif/GIFImageReader.h b/libjava/gnu/javax/imageio/gif/GIFImageReader.h new file mode 100644 index 00000000000..4fc8c7b9347 --- /dev/null +++ b/libjava/gnu/javax/imageio/gif/GIFImageReader.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_gif_GIFImageReader__ +#define __gnu_javax_imageio_gif_GIFImageReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace gif + { + class GIFFile; + class GIFImageReader; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + class IndexColorModel; + } + } + } + namespace javax + { + namespace imageio + { + class ImageReadParam; + namespace metadata + { + class IIOMetadata; + } + namespace spi + { + class ImageReaderSpi; + } + } + } +} + +class gnu::javax::imageio::gif::GIFImageReader : public ::javax::imageio::ImageReader +{ + +public: // actually protected + GIFImageReader(::javax::imageio::spi::ImageReaderSpi *); +private: + void readImage(); + ::java::awt::image::IndexColorModel * getPalette(jint); + void validateIndex(jint); +public: + virtual void setInput(::java::lang::Object *); + virtual void setInput(::java::lang::Object *, jboolean, jboolean); + virtual void setInput(::java::lang::Object *, jboolean); +private: + void checkStream(); +public: + virtual jint getWidth(jint); + virtual jint getHeight(jint); + virtual ::java::util::Iterator * getImageTypes(jint); + virtual jint getNumImages(jboolean); + virtual ::javax::imageio::metadata::IIOMetadata * getImageMetadata(jint); + virtual ::javax::imageio::metadata::IIOMetadata * getStreamMetadata(); + virtual ::java::awt::image::BufferedImage * read(jint, ::javax::imageio::ImageReadParam *); +private: + ::gnu::javax::imageio::gif::GIFFile * __attribute__((aligned(__alignof__( ::javax::imageio::ImageReader)))) file; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_gif_GIFImageReader__ diff --git a/libjava/gnu/javax/imageio/gif/GIFImageReaderSpi.h b/libjava/gnu/javax/imageio/gif/GIFImageReaderSpi.h new file mode 100644 index 00000000000..027faea8073 --- /dev/null +++ b/libjava/gnu/javax/imageio/gif/GIFImageReaderSpi.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_gif_GIFImageReaderSpi__ +#define __gnu_javax_imageio_gif_GIFImageReaderSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace gif + { + class GIFImageReaderSpi; + } + } + } + } + namespace javax + { + namespace imageio + { + class ImageReader; + } + } +} + +class gnu::javax::imageio::gif::GIFImageReaderSpi : public ::javax::imageio::spi::ImageReaderSpi +{ + +public: + GIFImageReaderSpi(); + virtual ::java::lang::String * getDescription(::java::util::Locale *); + virtual jboolean canDecodeInput(::java::lang::Object *); + virtual ::javax::imageio::ImageReader * createReaderInstance(::java::lang::Object *); +public: // actually package-private + static ::java::lang::String * vendorName; + static ::java::lang::String * version; + static ::java::lang::String * readerClassName; + static JArray< ::java::lang::String * > * names; + static JArray< ::java::lang::String * > * suffixes; + static JArray< ::java::lang::String * > * MIMETypes; + static JArray< ::java::lang::String * > * writerSpiNames; + static const jboolean supportsStandardStreamMetadataFormat = 0; + static ::java::lang::String * nativeStreamMetadataFormatName; + static ::java::lang::String * nativeStreamMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatNames; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatClassNames; + static const jboolean supportsStandardImageMetadataFormat = 0; + static ::java::lang::String * nativeImageMetadataFormatName; + static ::java::lang::String * nativeImageMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraImageMetadataFormatNames; + static JArray< ::java::lang::String * > * extraImageMetadataFormatClassNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_gif_GIFImageReaderSpi__ diff --git a/libjava/gnu/javax/imageio/jpeg/DCT.h b/libjava/gnu/javax/imageio/jpeg/DCT.h new file mode 100644 index 00000000000..16636be2d54 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/DCT.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_DCT__ +#define __gnu_javax_imageio_jpeg_DCT__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class DCT; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::DCT : public ::java::lang::Object +{ + +public: + DCT(); + static jdouble C(jint); +private: + void initMatrix(); +public: + static JArray< JArray< jdouble > * > * slow_idct(JArray< JArray< jdouble > * > *); + static JArray< JArray< jfloat > * > * slow_fdct(JArray< JArray< jfloat > * > *); + virtual JArray< JArray< jfloat > * > * fast_fdct(JArray< JArray< jfloat > * > *); + virtual JArray< JArray< jdouble > * > * fast_idct(JArray< JArray< jdouble > * > *); + virtual JArray< JArray< jdouble > * > * idj_fast_fdct(JArray< JArray< jfloat > * > *); + JArray< JArray< jdouble > * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) c; + JArray< JArray< jdouble > * > * cT; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_DCT__ diff --git a/libjava/gnu/javax/imageio/jpeg/HuffmanTable.h b/libjava/gnu/javax/imageio/jpeg/HuffmanTable.h new file mode 100644 index 00000000000..794b2624da1 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/HuffmanTable.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_HuffmanTable__ +#define __gnu_javax_imageio_jpeg_HuffmanTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class HuffmanTable; + class JPEGImageInputStream; + } + } + } + } + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGHuffmanTable; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::HuffmanTable : public ::java::lang::Object +{ + +public: + HuffmanTable(::javax::imageio::plugins::jpeg::JPEGHuffmanTable *); +private: + void generateSizeTable(); + void generateCodeTable(); + void generateDecoderTables(); +public: + virtual void orderCodes(jboolean); + static jint extend(jint, jint); + virtual jint decode(::gnu::javax::imageio::jpeg::JPEGImageInputStream *); + static const jint HUFFMAN_MAX_TABLES = 4; +private: + JArray< jshort > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) huffcode; + JArray< jshort > * huffsize; + JArray< jshort > * EHUFCO; + JArray< jshort > * EHUFSI; + JArray< jshort > * valptr; + JArray< jshort > * mincode; + JArray< jshort > * maxcode; + JArray< jshort > * huffval; + JArray< jshort > * bits; +public: // actually package-private + static jbyte JPEG_DC_TABLE; + static jbyte JPEG_AC_TABLE; +private: + jshort lastk; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_HuffmanTable__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGComponent.h b/libjava/gnu/javax/imageio/jpeg/JPEGComponent.h new file mode 100644 index 00000000000..36ff5f64710 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGComponent.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGComponent__ +#define __gnu_javax_imageio_jpeg_JPEGComponent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class DCT; + class HuffmanTable; + class JPEGComponent; + class JPEGImageInputStream; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class WritableRaster; + } + } + } + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGHuffmanTable; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGComponent : public ::java::lang::Object +{ + +public: + JPEGComponent(jbyte, jbyte, jbyte, jbyte); + virtual void padMCU(jint, jint); + virtual void resetInterval(); + virtual void quantitizeData(); + virtual void setDCTable(::javax::imageio::plugins::jpeg::JPEGHuffmanTable *); + virtual void setACTable(::javax::imageio::plugins::jpeg::JPEGHuffmanTable *); + virtual void idctData(::gnu::javax::imageio::jpeg::DCT *); + virtual void scaleByFactors(); + virtual void writeBlock(::java::awt::image::WritableRaster *, JArray< JArray< jdouble > * > *, jint, jint, jint); + virtual void writeData(::java::awt::image::WritableRaster *, jint); + virtual void setQuantizationTable(JArray< jint > *); + virtual void readComponentMCU(::gnu::javax::imageio::jpeg::JPEGImageInputStream *); + virtual jdouble decode_dc_coefficient(::gnu::javax::imageio::jpeg::JPEGImageInputStream *); + virtual JArray< jdouble > * decode_ac_coefficients(::gnu::javax::imageio::jpeg::JPEGImageInputStream *); + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) factorH; + jbyte factorV; + jbyte component_id; + jbyte quant_id; + jint width; + jint height; + jint maxV; + jint maxH; + ::gnu::javax::imageio::jpeg::HuffmanTable * ACTable; + ::gnu::javax::imageio::jpeg::HuffmanTable * DCTable; + JArray< jint > * quantizationTable; + jdouble previousDC; +public: // actually package-private + ::java::util::ArrayList * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGComponent__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGDecoder.h b/libjava/gnu/javax/imageio/jpeg/JPEGDecoder.h new file mode 100644 index 00000000000..4eef890fe68 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGDecoder.h @@ -0,0 +1,99 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGDecoder__ +#define __gnu_javax_imageio_jpeg_JPEGDecoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGDecoder; + class JPEGImageInputStream; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGHuffmanTable; + class JPEGQTable; + } + } + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGDecoder : public ::java::lang::Object +{ + +public: + virtual jint getHeight(); + virtual jint getWidth(); + JPEGDecoder(::javax::imageio::stream::ImageInputStream *); + virtual void decode(); +private: + void decodeJFIFExtension(); +public: + virtual ::java::awt::image::BufferedImage * getImage(); +public: // actually package-private + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) majorVersion; + jbyte minorVersion; + jbyte units; + jshort Xdensity; + jshort Ydensity; + jbyte Xthumbnail; + jbyte Ythumbnail; + JArray< jbyte > * thumbnail; + ::java::awt::image::BufferedImage * image; + jint width; + jint height; + jbyte marker; +public: + static const jbyte MAJOR_VERSION = 1; + static const jbyte MINOR_VERSION = 2; + static const jshort JFIF_FIXED_LENGTH = 16; + static const jshort JFXX_FIXED_LENGTH = 8; +private: + ::gnu::javax::imageio::jpeg::JPEGImageInputStream * jpegStream; +public: // actually package-private + ::java::util::ArrayList * jpegFrames; + JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * dcTables; + JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * acTables; + JArray< ::javax::imageio::plugins::jpeg::JPEGQTable * > * qTables; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGDecoder__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGException.h b/libjava/gnu/javax/imageio/jpeg/JPEGException.h new file mode 100644 index 00000000000..b2a9d5a6561 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGException__ +#define __gnu_javax_imageio_jpeg_JPEGException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGException; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGException : public ::javax::imageio::IIOException +{ + +public: + JPEGException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGException__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGFrame.h b/libjava/gnu/javax/imageio/jpeg/JPEGFrame.h new file mode 100644 index 00000000000..5aad0a200b1 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGFrame.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGFrame__ +#define __gnu_javax_imageio_jpeg_JPEGFrame__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGFrame; + class JPEGScan; + } + } + } + } + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGHuffmanTable; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGFrame : public ::java::lang::Object +{ + +public: + JPEGFrame(); + virtual void addComponent(jbyte, jbyte, jbyte); + virtual void setPrecision(jbyte); + virtual void setScanLines(jshort); + virtual void setSamplesPerLine(jshort); + virtual void setColorMode(jbyte); + virtual void setComponentCount(jbyte); + virtual jbyte getComponentCount(); + virtual void setHuffmanTables(jbyte, ::javax::imageio::plugins::jpeg::JPEGHuffmanTable *, ::javax::imageio::plugins::jpeg::JPEGHuffmanTable *); + static const jbyte JPEG_COLOR_GRAY = 1; + static const jbyte JPEG_COLOR_RGB = 2; + static const jbyte JPEG_COLOR_YCbCr = 3; + static const jbyte JPEG_COLOR_CMYK = 4; + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) precision; + jbyte colorMode; + jbyte componentCount; + jshort width; + jshort height; + ::gnu::javax::imageio::jpeg::JPEGScan * components; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGFrame__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGImageInputStream.h b/libjava/gnu/javax/imageio/jpeg/JPEGImageInputStream.h new file mode 100644 index 00000000000..19304c07de5 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGImageInputStream.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGImageInputStream__ +#define __gnu_javax_imageio_jpeg_JPEGImageInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGImageInputStream; + } + } + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageInputStream; + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGImageInputStream : public ::javax::imageio::stream::ImageInputStreamImpl +{ + +public: + JPEGImageInputStream(::javax::imageio::stream::ImageInputStream *); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + jbyte pullByte(); +public: + virtual jbyte getMarker(); + virtual jint readBit(); + virtual jbyte findNextMarker(); +private: + ::javax::imageio::stream::ImageInputStream * __attribute__((aligned(__alignof__( ::javax::imageio::stream::ImageInputStreamImpl)))) in; +public: // actually package-private + jbyte marker; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGImageInputStream__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGImageReader.h b/libjava/gnu/javax/imageio/jpeg/JPEGImageReader.h new file mode 100644 index 00000000000..f7deeb84045 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGImageReader.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGImageReader__ +#define __gnu_javax_imageio_jpeg_JPEGImageReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGDecoder; + class JPEGImageReader; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + class ImageReadParam; + namespace metadata + { + class IIOMetadata; + } + namespace spi + { + class ImageReaderSpi; + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGImageReader : public ::javax::imageio::ImageReader +{ + +public: // actually protected + JPEGImageReader(::javax::imageio::spi::ImageReaderSpi *); +public: + virtual jint getHeight(jint); + virtual ::javax::imageio::metadata::IIOMetadata * getImageMetadata(jint); + virtual ::java::util::Iterator * getImageTypes(jint); + virtual jint getNumImages(jboolean); + virtual ::javax::imageio::metadata::IIOMetadata * getStreamMetadata(); + virtual jint getWidth(jint); + virtual ::java::awt::image::BufferedImage * read(jint, ::javax::imageio::ImageReadParam *); +private: + void checkIndex(jint); + void checkStream(); + void decodeStream(); +public: // actually package-private + ::gnu::javax::imageio::jpeg::JPEGDecoder * __attribute__((aligned(__alignof__( ::javax::imageio::ImageReader)))) decoder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGImageReader__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.h b/libjava/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.h new file mode 100644 index 00000000000..6cb33fea0fa --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGImageReaderSpi.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGImageReaderSpi__ +#define __gnu_javax_imageio_jpeg_JPEGImageReaderSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGImageReaderSpi; + } + } + } + } + namespace javax + { + namespace imageio + { + class ImageReader; + namespace spi + { + class IIORegistry; + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGImageReaderSpi : public ::javax::imageio::spi::ImageReaderSpi +{ + +public: + JPEGImageReaderSpi(); + virtual ::java::lang::String * getDescription(::java::util::Locale *); + virtual jboolean canDecodeInput(::java::lang::Object *); + virtual ::javax::imageio::ImageReader * createReaderInstance(::java::lang::Object *); + static void registerSpis(::javax::imageio::spi::IIORegistry *); + static ::gnu::javax::imageio::jpeg::JPEGImageReaderSpi * getReaderSpi(); +public: // actually package-private + static ::java::lang::String * vendorName; + static ::java::lang::String * version; + static ::java::lang::String * readerClassName; + static JArray< ::java::lang::String * > * names; + static JArray< ::java::lang::String * > * suffixes; + static JArray< ::java::lang::String * > * MIMETypes; + static JArray< ::java::lang::String * > * writerSpiNames; + static const jboolean supportsStandardStreamMetadataFormat = 0; + static ::java::lang::String * nativeStreamMetadataFormatName; + static ::java::lang::String * nativeStreamMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatNames; + static JArray< ::java::lang::String * > * extraStreamMetadataFormatClassNames; + static const jboolean supportsStandardImageMetadataFormat = 0; + static ::java::lang::String * nativeImageMetadataFormatName; + static ::java::lang::String * nativeImageMetadataFormatClassName; + static JArray< ::java::lang::String * > * extraImageMetadataFormatNames; + static JArray< ::java::lang::String * > * extraImageMetadataFormatClassNames; +private: + static ::gnu::javax::imageio::jpeg::JPEGImageReaderSpi * readerSpi; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGImageReaderSpi__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGMarker.h b/libjava/gnu/javax/imageio/jpeg/JPEGMarker.h new file mode 100644 index 00000000000..bbfb11e67aa --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGMarker.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGMarker__ +#define __gnu_javax_imageio_jpeg_JPEGMarker__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGMarker; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGMarker : public ::java::lang::Object +{ + +public: + JPEGMarker(); + static const jbyte JFIF_J = 74; + static const jbyte JFIF_F = 70; + static const jbyte JFIF_I = 73; + static const jbyte JFIF_X = 70; + static const jbyte JFXX_JPEG = 16; + static const jbyte JFXX_ONE_BPP = 17; + static const jbyte JFXX_THREE_BPP = 19; + static const jbyte XFF = -1; + static const jbyte X00 = 0; + static const jbyte APP0 = -32; + static const jbyte APP1 = -31; + static const jbyte APP2 = -30; + static const jbyte APP3 = -29; + static const jbyte APP4 = -28; + static const jbyte APP5 = -27; + static const jbyte APP6 = -26; + static const jbyte APP7 = -25; + static const jbyte APP8 = -24; + static const jbyte APP9 = -23; + static const jbyte APP10 = -22; + static const jbyte APP11 = -21; + static const jbyte APP12 = -20; + static const jbyte APP13 = -19; + static const jbyte APP14 = -18; + static const jbyte APP15 = -17; + static const jbyte RST0 = -48; + static const jbyte RST1 = -47; + static const jbyte RST2 = -46; + static const jbyte RST3 = -45; + static const jbyte RST4 = -44; + static const jbyte RST5 = -43; + static const jbyte RST6 = -42; + static const jbyte RST7 = -41; + static const jbyte SOF0 = -64; + static const jbyte SOF1 = -63; + static const jbyte SOF2 = -62; + static const jbyte SOF3 = -61; + static const jbyte SOF5 = -59; + static const jbyte SOF6 = -58; + static const jbyte SOF7 = -57; + static const jbyte SOF9 = -55; + static const jbyte SOF10 = -54; + static const jbyte SOF11 = -53; + static const jbyte SOF13 = -51; + static const jbyte SOF14 = -50; + static const jbyte SOF15 = -49; + static const jbyte DHT = -60; + static const jbyte DQT = -37; + static const jbyte SOS = -38; + static const jbyte DRI = -35; + static const jbyte COM = -2; + static const jbyte SOI = -40; + static const jbyte EOI = -39; + static const jbyte DNL = -36; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGMarker__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGMarkerFoundException.h b/libjava/gnu/javax/imageio/jpeg/JPEGMarkerFoundException.h new file mode 100644 index 00000000000..d7c376cf8c8 --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGMarkerFoundException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGMarkerFoundException__ +#define __gnu_javax_imageio_jpeg_JPEGMarkerFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGMarkerFoundException; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGMarkerFoundException : public ::java::io::IOException +{ + +public: + JPEGMarkerFoundException(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGMarkerFoundException__ diff --git a/libjava/gnu/javax/imageio/jpeg/JPEGScan.h b/libjava/gnu/javax/imageio/jpeg/JPEGScan.h new file mode 100644 index 00000000000..5023286565f --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/JPEGScan.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_JPEGScan__ +#define __gnu_javax_imageio_jpeg_JPEGScan__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class JPEGComponent; + class JPEGScan; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::JPEGScan : public ::java::lang::Object +{ + +public: + JPEGScan(); + JPEGScan(jint, jint); +private: + void recalculateDimensions(); +public: + virtual void addComponent(jbyte, jbyte, jbyte, jbyte); + virtual ::gnu::javax::imageio::jpeg::JPEGComponent * getComponentByID(jbyte); + virtual ::gnu::javax::imageio::jpeg::JPEGComponent * get(jint); + virtual jint getX(jbyte); + virtual jint getY(jbyte); + virtual jint getMaxV(); + virtual jint getMaxH(); + virtual void setWidth(jint); + virtual void setHeight(jint); + virtual jint size(); + virtual jint sizeComponentBlocks(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) maxHeight; + jint maxWidth; + jint maxV; + jint maxH; + jint numOfComponents; + jint numOfComponentBlocks; + ::java::util::ArrayList * components; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_JPEGScan__ diff --git a/libjava/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.h b/libjava/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.h new file mode 100644 index 00000000000..0d107f2bbbd --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/YCbCr_ColorSpace.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_YCbCr_ColorSpace__ +#define __gnu_javax_imageio_jpeg_YCbCr_ColorSpace__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class YCbCr_ColorSpace; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::YCbCr_ColorSpace : public ::java::awt::color::ColorSpace +{ + +public: + YCbCr_ColorSpace(); + virtual JArray< jfloat > * fromCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * toCIEXYZ(JArray< jfloat > *); + virtual JArray< jfloat > * fromRGB(JArray< jfloat > *); + virtual JArray< jfloat > * toRGB(JArray< jfloat > *); + static JArray< jfloat > * toYCbCr(JArray< jfloat > *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_YCbCr_ColorSpace__ diff --git a/libjava/gnu/javax/imageio/jpeg/ZigZag.h b/libjava/gnu/javax/imageio/jpeg/ZigZag.h new file mode 100644 index 00000000000..6111088571b --- /dev/null +++ b/libjava/gnu/javax/imageio/jpeg/ZigZag.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_jpeg_ZigZag__ +#define __gnu_javax_imageio_jpeg_ZigZag__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace jpeg + { + class ZigZag; + } + } + } + } +} + +class gnu::javax::imageio::jpeg::ZigZag : public ::java::lang::Object +{ + +public: + ZigZag(); + static JArray< jbyte > * encode(JArray< JArray< jbyte > * > *); + static JArray< jdouble > * encode(JArray< JArray< jdouble > * > *); + static JArray< jfloat > * encode(JArray< JArray< jfloat > * > *); + static JArray< jshort > * encode(JArray< JArray< jshort > * > *); + static JArray< JArray< jdouble > * > * decode(JArray< jdouble > *); + static JArray< JArray< jbyte > * > * decode(JArray< jbyte > *); + static JArray< JArray< jint > * > * decode(JArray< jint > *); + static JArray< JArray< jbyte > * > * decode(JArray< jbyte > *, jint, jint); + static JArray< JArray< jdouble > * > * decode(JArray< jdouble > *, jint, jint); + static JArray< JArray< jfloat > * > * decode(JArray< jfloat > *, jint, jint); + static JArray< JArray< jint > * > * decode(JArray< jint > *, jint, jint); + static JArray< JArray< jdouble > * > * decode8x8_map(JArray< jdouble > *); + static const jboolean ZIGZAG_FORWARD = 1; + static const jboolean ZIGZAG_BACKWARD = 0; + static JArray< jint > * ZIGZAG_8X8_MAP; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_jpeg_ZigZag__ diff --git a/libjava/gnu/javax/imageio/png/PNGChunk.h b/libjava/gnu/javax/imageio/png/PNGChunk.h new file mode 100644 index 00000000000..849b43632b5 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGChunk.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGChunk__ +#define __gnu_javax_imageio_png_PNGChunk__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGChunk; + } + } + } + } +} + +class gnu::javax::imageio::png::PNGChunk : public ::java::lang::Object +{ + +public: // actually protected + PNGChunk(jint, JArray< jbyte > *, jint); + PNGChunk(jint); +public: + static ::gnu::javax::imageio::png::PNGChunk * readChunk(::java::io::InputStream *, jboolean); +private: + static ::gnu::javax::imageio::png::PNGChunk * getChunk(jint, JArray< jbyte > *, jint); + static jboolean isEssentialChunk(jint); +public: + virtual jboolean isValidChunk(); + virtual jint getType(); + virtual void writeChunk(::java::io::OutputStream *); + virtual jboolean isEmpty(); + static JArray< jbyte > * getInt(jint); +private: + jint calcCRC(); +public: + virtual ::java::lang::String * toString(); +private: + static JArray< jlong > * crcTable; +public: + static const jint TYPE_HEADER = 1229472850; + static const jint TYPE_PALETTE = 1347179589; + static const jint TYPE_DATA = 1229209940; + static const jint TYPE_TIME = 1950960965; + static const jint TYPE_END = 1229278788; + static const jint TYPE_PHYS = 1883789683; + static const jint TYPE_GAMMA = 1732332865; + static const jint TYPE_PROFILE = 1766015824; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; +public: // actually protected + JArray< jbyte > * data; +private: + jint crc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGChunk__ diff --git a/libjava/gnu/javax/imageio/png/PNGData.h b/libjava/gnu/javax/imageio/png/PNGData.h new file mode 100644 index 00000000000..16a04a2c40e --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGData.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGData__ +#define __gnu_javax_imageio_png_PNGData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGData; + } + } + } + } +} + +class gnu::javax::imageio::png::PNGData : public ::gnu::javax::imageio::png::PNGChunk +{ + +public: // actually protected + PNGData(jint, JArray< jbyte > *, jint); + PNGData(jint); +public: + virtual void deflateToChunk(::java::util::zip::Deflater *); + virtual jboolean chunkFull(); + virtual void shrink(); + virtual void feedToInflater(::java::util::zip::Inflater *); + virtual ::java::lang::String * toString(); +private: + jint __attribute__((aligned(__alignof__( ::gnu::javax::imageio::png::PNGChunk)))) offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGData__ diff --git a/libjava/gnu/javax/imageio/png/PNGDecoder.h b/libjava/gnu/javax/imageio/png/PNGDecoder.h new file mode 100644 index 00000000000..70e6f3944ea --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGDecoder.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGDecoder__ +#define __gnu_javax_imageio_png_PNGDecoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGData; + class PNGDecoder; + class PNGHeader; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ColorSpace; + } + namespace image + { + class ColorModel; + class DataBuffer; + class IndexColorModel; + class WritableRaster; + } + } + } +} + +class gnu::javax::imageio::png::PNGDecoder : public ::java::lang::Object +{ + +public: + PNGDecoder(::gnu::javax::imageio::png::PNGHeader *); +private: + jint getBytes(JArray< jbyte > *, jint); +public: + virtual void addData(::gnu::javax::imageio::png::PNGData *); + virtual ::java::awt::image::WritableRaster * getRaster(::gnu::javax::imageio::png::PNGHeader *); +private: + ::java::awt::image::DataBuffer * getShortBuffer(); + ::java::awt::image::DataBuffer * getByteBuffer(); +public: + virtual ::java::awt::image::ColorModel * getColorModel(::java::awt::color::ColorSpace *, jint, jint); +private: + ::java::awt::image::IndexColorModel * grayPalette(jint); +public: + virtual JArray< jbyte > * getRaster(); + virtual jboolean isFinished(); +private: + ::gnu::javax::imageio::png::PNGHeader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) header; + JArray< jbyte > * raster; + JArray< jbyte > * scanline; + JArray< jbyte > * lastScanline; + JArray< jbyte > * filterType; + jint offset; + jint length; + jint currentScanline; + jint stride; + ::java::util::zip::Inflater * inflater; + jboolean readFilter; + jint bpp; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGDecoder__ diff --git a/libjava/gnu/javax/imageio/png/PNGEncoder.h b/libjava/gnu/javax/imageio/png/PNGEncoder.h new file mode 100644 index 00000000000..e985ee10bae --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGEncoder.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGEncoder__ +#define __gnu_javax_imageio_png_PNGEncoder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGEncoder; + class PNGHeader; + class PNGICCProfile; + class PNGPalette; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } +} + +class gnu::javax::imageio::png::PNGEncoder : public ::java::lang::Object +{ + +public: + PNGEncoder(::java::awt::image::BufferedImage *); + virtual ::gnu::javax::imageio::png::PNGHeader * getHeader(); + virtual ::gnu::javax::imageio::png::PNGPalette * getPalette(); + virtual ::gnu::javax::imageio::png::PNGICCProfile * getProfile(); + virtual ::java::util::Vector * encodeImage(); +private: + void getRawData(::java::awt::image::BufferedImage *); + static const jint defaultChunkSize = 8192; + ::gnu::javax::imageio::png::PNGHeader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) header; + ::gnu::javax::imageio::png::PNGPalette * palette; + jint stride; + jint bpp; + JArray< jbyte > * rawData; + ::gnu::javax::imageio::png::PNGICCProfile * profile; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGEncoder__ diff --git a/libjava/gnu/javax/imageio/png/PNGException.h b/libjava/gnu/javax/imageio/png/PNGException.h new file mode 100644 index 00000000000..d02406961d4 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGException__ +#define __gnu_javax_imageio_png_PNGException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGException; + } + } + } + } +} + +class gnu::javax::imageio::png::PNGException : public ::java::io::IOException +{ + +public: + PNGException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGException__ diff --git a/libjava/gnu/javax/imageio/png/PNGFile.h b/libjava/gnu/javax/imageio/png/PNGFile.h new file mode 100644 index 00000000000..a1b5fdfb67a --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGFile.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGFile__ +#define __gnu_javax_imageio_png_PNGFile__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGDecoder; + class PNGEncoder; + class PNGFile; + class PNGHeader; + class PNGPalette; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ColorSpace; + } + namespace image + { + class BufferedImage; + } + } + } +} + +class gnu::javax::imageio::png::PNGFile : public ::java::lang::Object +{ + +public: + PNGFile(::java::io::InputStream *); + PNGFile(::java::awt::image::BufferedImage *); + virtual void writePNG(::java::io::OutputStream *); +private: + jboolean validateHeader(JArray< jbyte > *); +public: + virtual ::java::awt::image::BufferedImage * getBufferedImage(); +private: + ::gnu::javax::imageio::png::PNGPalette * getPalette(); + ::java::awt::color::ColorSpace * getColorSpace(); + static JArray< jbyte > * signature; + static JArray< jbyte > * endChunk; + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) chunks; + ::gnu::javax::imageio::png::PNGHeader * header; + jboolean hasPalette; + jint width; + jint height; + ::gnu::javax::imageio::png::PNGDecoder * decoder; + ::gnu::javax::imageio::png::PNGEncoder * encoder; + ::java::awt::image::BufferedImage * sourceImage; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGFile__ diff --git a/libjava/gnu/javax/imageio/png/PNGFilter.h b/libjava/gnu/javax/imageio/png/PNGFilter.h new file mode 100644 index 00000000000..c461f59a2d5 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGFilter.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGFilter__ +#define __gnu_javax_imageio_png_PNGFilter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGFilter; + class PNGHeader; + } + } + } + } +} + +class gnu::javax::imageio::png::PNGFilter : public ::java::lang::Object +{ + +public: + PNGFilter(); + static jboolean useFilter(::gnu::javax::imageio::png::PNGHeader *); + static jbyte chooseFilter(JArray< jbyte > *, JArray< jbyte > *, jint); + static JArray< jbyte > * filterScanline(jbyte, JArray< jbyte > *, JArray< jbyte > *, jint); + static JArray< jbyte > * unFilterScanline(jint, JArray< jbyte > *, JArray< jbyte > *, jint); + static const jbyte FILTER_NONE = 0; + static const jbyte FILTER_SUB = 1; + static const jbyte FILTER_UP = 2; + static const jbyte FILTER_AVERAGE = 3; + static const jbyte FILTER_PAETH = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGFilter__ diff --git a/libjava/gnu/javax/imageio/png/PNGGamma.h b/libjava/gnu/javax/imageio/png/PNGGamma.h new file mode 100644 index 00000000000..e6458f43c0c --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGGamma.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGGamma__ +#define __gnu_javax_imageio_png_PNGGamma__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGGamma; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ColorSpace; + } + } + } +} + +class gnu::javax::imageio::png::PNGGamma : public ::gnu::javax::imageio::png::PNGChunk +{ + +public: // actually protected + PNGGamma(jint, JArray< jbyte > *, jint); +public: + PNGGamma(jdouble); + virtual ::java::awt::color::ColorSpace * getColorSpace(jboolean); + virtual ::java::lang::String * toString(); +private: + jdouble __attribute__((aligned(__alignof__( ::gnu::javax::imageio::png::PNGChunk)))) gamma; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGGamma__ diff --git a/libjava/gnu/javax/imageio/png/PNGHeader.h b/libjava/gnu/javax/imageio/png/PNGHeader.h new file mode 100644 index 00000000000..190268003a9 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGHeader.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGHeader__ +#define __gnu_javax_imageio_png_PNGHeader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGHeader; + } + } + } + } +} + +class gnu::javax::imageio::png::PNGHeader : public ::gnu::javax::imageio::png::PNGChunk +{ + +public: // actually protected + PNGHeader(jint, JArray< jbyte > *, jint); +public: + PNGHeader(jint, jint, jint, jint, jboolean); + virtual jboolean isValidChunk(); + virtual jboolean isIndexed(); + virtual jboolean isGrayscale(); + virtual jint getColorType(); + virtual jboolean isInterlaced(); + virtual jint bytesPerPixel(); + virtual jint getScanlineStride(); + virtual jint getWidth(); + virtual jint getHeight(); + virtual jint getDepth(); + virtual ::java::lang::String * toString(); +private: + jint __attribute__((aligned(__alignof__( ::gnu::javax::imageio::png::PNGChunk)))) width; + jint height; + jint depth; + jint colorType; + jint compression; + jint filter; + jint interlace; +public: + static const jint INTERLACE_NONE = 0; + static const jint INTERLACE_ADAM7 = 1; + static const jint GRAYSCALE = 0; + static const jint RGB = 2; + static const jint INDEXED = 3; + static const jint GRAYSCALE_WITH_ALPHA = 4; + static const jint RGB_WITH_ALPHA = 6; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGHeader__ diff --git a/libjava/gnu/javax/imageio/png/PNGICCProfile.h b/libjava/gnu/javax/imageio/png/PNGICCProfile.h new file mode 100644 index 00000000000..1495ded5de6 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGICCProfile.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGICCProfile__ +#define __gnu_javax_imageio_png_PNGICCProfile__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGICCProfile; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ColorSpace; + class ICC_Profile; + } + } + } +} + +class gnu::javax::imageio::png::PNGICCProfile : public ::gnu::javax::imageio::png::PNGChunk +{ + +public: // actually protected + PNGICCProfile(jint, JArray< jbyte > *, jint); +public: + PNGICCProfile(::java::awt::color::ICC_Profile *); + virtual ::java::awt::color::ColorSpace * getColorSpace(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::png::PNGChunk)))) name; + ::java::awt::color::ICC_Profile * profile; + static JArray< jbyte > * genericName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGICCProfile__ diff --git a/libjava/gnu/javax/imageio/png/PNGImageReader.h b/libjava/gnu/javax/imageio/png/PNGImageReader.h new file mode 100644 index 00000000000..5ef99a738a2 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGImageReader.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGImageReader__ +#define __gnu_javax_imageio_png_PNGImageReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGFile; + class PNGImageReader; + class PNGImageReaderSpi; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + class ImageReadParam; + namespace metadata + { + class IIOMetadata; + } + } + } +} + +class gnu::javax::imageio::png::PNGImageReader : public ::javax::imageio::ImageReader +{ + +public: + PNGImageReader(::gnu::javax::imageio::png::PNGImageReaderSpi *); + virtual jint getHeight(jint); + virtual jint getWidth(jint); + virtual ::java::util::Iterator * getImageTypes(jint); + virtual jint getNumImages(jboolean); + virtual ::java::awt::image::BufferedImage * read(jint, ::javax::imageio::ImageReadParam *); + virtual void setInput(::java::lang::Object *, jboolean, jboolean); + virtual ::javax::imageio::metadata::IIOMetadata * getImageMetadata(jint); + virtual ::javax::imageio::metadata::IIOMetadata * getStreamMetadata(); +private: + void checkIndex(jint); + void readImage(); + ::gnu::javax::imageio::png::PNGFile * __attribute__((aligned(__alignof__( ::javax::imageio::ImageReader)))) pngFile; + ::java::awt::image::BufferedImage * image; + ::java::util::ArrayList * imageTypes; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGImageReader__ diff --git a/libjava/gnu/javax/imageio/png/PNGImageReaderSpi.h b/libjava/gnu/javax/imageio/png/PNGImageReaderSpi.h new file mode 100644 index 00000000000..61b6b3f73f9 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGImageReaderSpi.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGImageReaderSpi__ +#define __gnu_javax_imageio_png_PNGImageReaderSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGImageReaderSpi; + } + } + } + } + namespace javax + { + namespace imageio + { + class ImageReader; + } + } +} + +class gnu::javax::imageio::png::PNGImageReaderSpi : public ::javax::imageio::spi::ImageReaderSpi +{ + +public: + PNGImageReaderSpi(); + virtual jboolean canDecodeInput(::java::lang::Object *); + virtual ::javax::imageio::ImageReader * createReaderInstance(::java::lang::Object *); + virtual ::java::lang::String * getDescription(::java::util::Locale *); +private: + static JArray< jbyte > * SIGNATURE; + static ::java::lang::String * VENDOR_NAME; +public: // actually package-private + static ::java::lang::String * VERSION; + static ::java::lang::String * READER_CLASSNAME; + static JArray< ::java::lang::String * > * NAMES; + static JArray< ::java::lang::String * > * SUFFIXES; + static JArray< ::java::lang::String * > * MIME_TYPES; + static JArray< ::java::lang::String * > * WRITER_SPI_NAMES; + static JArray< ::java::lang::Class * > * INPUT_TYPES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGImageReaderSpi__ diff --git a/libjava/gnu/javax/imageio/png/PNGPalette.h b/libjava/gnu/javax/imageio/png/PNGPalette.h new file mode 100644 index 00000000000..d216b1b5e03 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGPalette.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGPalette__ +#define __gnu_javax_imageio_png_PNGPalette__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGPalette; + } + } + } + } + namespace java + { + namespace awt + { + namespace color + { + class ColorSpace; + } + namespace image + { + class IndexColorModel; + } + } + } +} + +class gnu::javax::imageio::png::PNGPalette : public ::gnu::javax::imageio::png::PNGChunk +{ + +public: // actually protected + PNGPalette(jint, JArray< jbyte > *, jint); +public: + PNGPalette(::java::awt::image::IndexColorModel *); + virtual ::java::awt::image::IndexColorModel * getPalette(::java::awt::color::ColorSpace *); + virtual ::java::lang::String * toString(); +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::png::PNGChunk)))) red; + JArray< jint > * green; + JArray< jint > * blue; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGPalette__ diff --git a/libjava/gnu/javax/imageio/png/PNGPhys.h b/libjava/gnu/javax/imageio/png/PNGPhys.h new file mode 100644 index 00000000000..fa4476de8c6 --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGPhys.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGPhys__ +#define __gnu_javax_imageio_png_PNGPhys__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGPhys; + } + } + } + } +} + +class gnu::javax::imageio::png::PNGPhys : public ::gnu::javax::imageio::png::PNGChunk +{ + +public: // actually protected + PNGPhys(jint, JArray< jbyte > *, jint); +public: + PNGPhys(jdouble); + PNGPhys(jint, jint); +private: + void makeData(); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::gnu::javax::imageio::png::PNGChunk)))) x; + jlong y; + jdouble ratio; + jboolean usesRatio; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGPhys__ diff --git a/libjava/gnu/javax/imageio/png/PNGTime.h b/libjava/gnu/javax/imageio/png/PNGTime.h new file mode 100644 index 00000000000..1e07099b1da --- /dev/null +++ b/libjava/gnu/javax/imageio/png/PNGTime.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_imageio_png_PNGTime__ +#define __gnu_javax_imageio_png_PNGTime__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace imageio + { + namespace png + { + class PNGTime; + } + } + } + } +} + +class gnu::javax::imageio::png::PNGTime : public ::gnu::javax::imageio::png::PNGChunk +{ + +public: // actually protected + PNGTime(jint, JArray< jbyte > *, jint); +public: + PNGTime(::java::util::Date *); + virtual ::java::lang::String * toString(); +private: + ::java::util::Date * __attribute__((aligned(__alignof__( ::gnu::javax::imageio::png::PNGChunk)))) date; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_imageio_png_PNGTime__ diff --git a/libjava/gnu/javax/management/Server$ServerInfo.h b/libjava/gnu/javax/management/Server$ServerInfo.h new file mode 100644 index 00000000000..da1eb3bb060 --- /dev/null +++ b/libjava/gnu/javax/management/Server$ServerInfo.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_management_Server$ServerInfo__ +#define __gnu_javax_management_Server$ServerInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace management + { + class Server; + class Server$ServerInfo; + } + } + } + namespace javax + { + namespace management + { + class ObjectInstance; + } + } +} + +class gnu::javax::management::Server$ServerInfo : public ::java::lang::Object +{ + +public: + Server$ServerInfo(::gnu::javax::management::Server *, ::javax::management::ObjectInstance *, ::java::lang::Object *); + virtual ::java::lang::Object * getObject(); + virtual ::javax::management::ObjectInstance * getInstance(); +private: + ::javax::management::ObjectInstance * __attribute__((aligned(__alignof__( ::java::lang::Object)))) instance; + ::java::lang::Object * object; +public: // actually package-private + ::gnu::javax::management::Server * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_management_Server$ServerInfo__ diff --git a/libjava/gnu/javax/management/Server$ServerInputStream.h b/libjava/gnu/javax/management/Server$ServerInputStream.h new file mode 100644 index 00000000000..1b2bc0e76f3 --- /dev/null +++ b/libjava/gnu/javax/management/Server$ServerInputStream.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_management_Server$ServerInputStream__ +#define __gnu_javax_management_Server$ServerInputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace management + { + class Server; + class Server$ServerInputStream; + } + } + } +} + +class gnu::javax::management::Server$ServerInputStream : public ::java::io::ObjectInputStream +{ + +public: + Server$ServerInputStream(::gnu::javax::management::Server *, ::java::io::InputStream *, ::java::lang::ClassLoader *); +public: // actually protected + virtual ::java::lang::Class * resolveClass(::java::io::ObjectStreamClass *); +private: + ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::io::ObjectInputStream)))) cl; +public: // actually package-private + ::gnu::javax::management::Server * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_management_Server$ServerInputStream__ diff --git a/libjava/gnu/javax/management/Server$ServerNotificationListener.h b/libjava/gnu/javax/management/Server$ServerNotificationListener.h new file mode 100644 index 00000000000..a699261b941 --- /dev/null +++ b/libjava/gnu/javax/management/Server$ServerNotificationListener.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_management_Server$ServerNotificationListener__ +#define __gnu_javax_management_Server$ServerNotificationListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace management + { + class Server; + class Server$ServerNotificationListener; + } + } + } + namespace javax + { + namespace management + { + class Notification; + class NotificationListener; + class ObjectName; + } + } +} + +class gnu::javax::management::Server$ServerNotificationListener : public ::java::lang::Object +{ + +public: + Server$ServerNotificationListener(::gnu::javax::management::Server *, ::java::lang::Object *, ::javax::management::ObjectName *, ::javax::management::NotificationListener *); + virtual void handleNotification(::javax::management::Notification *, ::java::lang::Object *); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) bean; + ::javax::management::ObjectName * name; + ::javax::management::NotificationListener * listener; + ::gnu::javax::management::Server * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_management_Server$ServerNotificationListener__ diff --git a/libjava/gnu/javax/management/Server.h b/libjava/gnu/javax/management/Server.h new file mode 100644 index 00000000000..eb396d72ad5 --- /dev/null +++ b/libjava/gnu/javax/management/Server.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_management_Server__ +#define __gnu_javax_management_Server__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace management + { + class Server; + } + } + } + namespace javax + { + namespace management + { + class Attribute; + class AttributeList; + class MBeanInfo; + class MBeanServer; + class MBeanServerDelegate; + class NotificationFilter; + class NotificationListener; + class ObjectInstance; + class ObjectName; + class QueryExp; + namespace loading + { + class ClassLoaderRepository; + } + } + } +} + +class gnu::javax::management::Server : public ::java::lang::Object +{ + +public: + Server(::java::lang::String *, ::javax::management::MBeanServer *, ::javax::management::MBeanServerDelegate *); +private: + void checkSecurity(::javax::management::ObjectName *, ::java::lang::String *, ::java::lang::String *); + ::java::lang::Object * getBean(::javax::management::ObjectName *); +public: + virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *); + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *); + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *); + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *); + virtual ::java::io::ObjectInputStream * deserialize(::javax::management::ObjectName *, JArray< jbyte > *); + virtual ::java::io::ObjectInputStream * deserialize(::java::lang::String *, JArray< jbyte > *); + virtual ::java::io::ObjectInputStream * deserialize(::java::lang::String *, ::javax::management::ObjectName *, JArray< jbyte > *); + virtual ::java::lang::Object * getAttribute(::javax::management::ObjectName *, ::java::lang::String *); + virtual ::javax::management::AttributeList * getAttributes(::javax::management::ObjectName *, JArray< ::java::lang::String * > *); + virtual ::java::lang::ClassLoader * getClassLoader(::javax::management::ObjectName *); + virtual ::java::lang::ClassLoader * getClassLoaderFor(::javax::management::ObjectName *); + virtual ::javax::management::loading::ClassLoaderRepository * getClassLoaderRepository(); + virtual ::java::lang::String * getDefaultDomain(); + virtual JArray< ::java::lang::String * > * getDomains(); + virtual ::java::lang::Integer * getMBeanCount(); + virtual ::javax::management::MBeanInfo * getMBeanInfo(::javax::management::ObjectName *); + virtual ::javax::management::ObjectInstance * getObjectInstance(::javax::management::ObjectName *); + virtual ::java::lang::Object * instantiate(::java::lang::String *); + virtual ::java::lang::Object * instantiate(::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *); + virtual ::java::lang::Object * instantiate(::java::lang::String *, ::javax::management::ObjectName *); + virtual ::java::lang::Object * instantiate(::java::lang::String *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *); + virtual ::java::lang::Object * invoke(::javax::management::ObjectName *, ::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *); + virtual jboolean isInstanceOf(::javax::management::ObjectName *, ::java::lang::String *); + virtual jboolean isRegistered(::javax::management::ObjectName *); + virtual ::java::util::Set * queryMBeans(::javax::management::ObjectName *, ::javax::management::QueryExp *); + virtual ::java::util::Set * queryNames(::javax::management::ObjectName *, ::javax::management::QueryExp *); + virtual ::javax::management::ObjectInstance * registerMBean(::java::lang::Object *, ::javax::management::ObjectName *); + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *); + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *); + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual void setAttribute(::javax::management::ObjectName *, ::javax::management::Attribute *); + virtual ::javax::management::AttributeList * setAttributes(::javax::management::ObjectName *, ::javax::management::AttributeList *); + virtual void unregisterMBean(::javax::management::ObjectName *); +private: + static ::javax::management::ObjectName * DELEGATE_NAME; + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beans; + ::java::lang::String * defaultDomain; + ::javax::management::MBeanServer * outer; + ::javax::management::loading::ClassLoaderRepository * repository; + ::java::util::Map * listeners; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_management_Server__ diff --git a/libjava/gnu/javax/naming/giop/ContextContinuation.h b/libjava/gnu/javax/naming/giop/ContextContinuation.h new file mode 100644 index 00000000000..546a2564ad0 --- /dev/null +++ b/libjava/gnu/javax/naming/giop/ContextContinuation.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_ContextContinuation__ +#define __gnu_javax_naming_giop_ContextContinuation__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameTransformer; + } + } + namespace javax + { + namespace naming + { + namespace giop + { + class ContextContinuation; + class GiopNamingServiceFactory; + } + } + } + } + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + } + namespace CosNaming + { + class NameComponent; + class NamingContextExt; + } + } + } +} + +class gnu::javax::naming::giop::ContextContinuation : public ::java::lang::Object +{ + +public: + ContextContinuation(::org::omg::CORBA::Object *, ::java::util::Hashtable *, ::org::omg::CORBA::ORB *, ::gnu::javax::naming::giop::GiopNamingServiceFactory *); + virtual void bind(::javax::naming::Name *, ::java::lang::Object *); + virtual void bind(::java::lang::String *, ::java::lang::Object *); + virtual void close(); + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *); + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *); + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *); + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *); + virtual void destroySubcontext(::javax::naming::Name *); + virtual void destroySubcontext(::java::lang::String *); + virtual ::java::lang::String * getNameInNamespace(); + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *); + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *); + virtual ::java::lang::Object * lookup(::javax::naming::Name *); + virtual ::java::lang::Object * lookup(::java::lang::String *); + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *); + virtual ::java::lang::Object * lookupLink(::java::lang::String *); + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *); + virtual void rebind(::java::lang::String *, ::java::lang::Object *); + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *); + virtual void rename(::java::lang::String *, ::java::lang::String *); + virtual void unbind(::javax::naming::Name *); + virtual void unbind(::java::lang::String *); + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *); + virtual ::java::util::Hashtable * getEnvironment(); + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *); + virtual JArray< ::org::omg::CosNaming::NameComponent * > * toGiop(::javax::naming::Name *); + virtual jint getBatchSize(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) DEFAULT_BATCH_SIZE; +public: // actually package-private + ::org::omg::CosNaming::NamingContextExt * service; + ::org::omg::CORBA::ORB * orb; + ::java::util::Hashtable * properties; + ::gnu::javax::naming::giop::GiopNamingServiceFactory * factory; + static ::gnu::CORBA::NamingService::NameTransformer * transformer; +public: + jint howMany; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_ContextContinuation__ diff --git a/libjava/gnu/javax/naming/giop/CorbalocParser.h b/libjava/gnu/javax/naming/giop/CorbalocParser.h new file mode 100644 index 00000000000..cad411dab66 --- /dev/null +++ b/libjava/gnu/javax/naming/giop/CorbalocParser.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_CorbalocParser__ +#define __gnu_javax_naming_giop_CorbalocParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameTransformer; + } + } + namespace javax + { + namespace naming + { + namespace giop + { + class CorbalocParser; + } + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class gnu::javax::naming::giop::CorbalocParser : public ::gnu::CORBA::NamingService::NameTransformer +{ + +public: + CorbalocParser(); + virtual JArray< ::java::lang::String * > * corbaloc(::java::lang::String *, ::org::omg::CORBA::ORB *); +private: + JArray< ::java::lang::String * > * corbaloc(::java::lang::String *, ::org::omg::CORBA::ORB *, jint); +public: // actually package-private + virtual ::java::lang::String * readFile(::java::lang::String *); + virtual ::java::lang::String * readUrl(::java::lang::String *); +private: + JArray< ::java::lang::String * > * resolve(::java::lang::String *); + ::java::lang::String * readKey(::java::lang::String *); +public: + static ::java::lang::String * pxCORBALOC; + static ::java::lang::String * pxCORBANAME; + static ::java::lang::String * pxIOR; + static ::java::lang::String * pxFILE; + static ::java::lang::String * pxFTP; + static ::java::lang::String * pxHTTP; + static ::java::lang::String * IIOP; + static ::java::lang::String * RIR; + static const jint DEFAULT_PORT = 2809; + static ::java::lang::String * DEFAULT_NAME; +public: // actually package-private + static ::gnu::CORBA::NamingService::NameTransformer * converter; + jint __attribute__((aligned(__alignof__( ::gnu::CORBA::NamingService::NameTransformer)))) p; + JArray< ::java::lang::String * > * t; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_CorbalocParser__ diff --git a/libjava/gnu/javax/naming/giop/GiopNamingEnumeration.h b/libjava/gnu/javax/naming/giop/GiopNamingEnumeration.h new file mode 100644 index 00000000000..409975cec0b --- /dev/null +++ b/libjava/gnu/javax/naming/giop/GiopNamingEnumeration.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_GiopNamingEnumeration__ +#define __gnu_javax_naming_giop_GiopNamingEnumeration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace giop + { + class GiopNamingEnumeration; + } + } + } + } + namespace org + { + namespace omg + { + namespace CosNaming + { + class Binding; + class BindingIterator; + class BindingIteratorHolder; + class BindingListHolder; + } + } + } +} + +class gnu::javax::naming::giop::GiopNamingEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + GiopNamingEnumeration(::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *, jint); +public: + virtual ::java::lang::Object * convert(::org::omg::CosNaming::Binding *) = 0; + virtual void close(); + virtual jboolean hasMore(); + virtual ::java::lang::Object * next(); + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + virtual jboolean getMore(); + JArray< ::org::omg::CosNaming::Binding * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) list; + ::org::omg::CosNaming::BindingIterator * iterator; + jint batch; + jint p; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_GiopNamingEnumeration__ diff --git a/libjava/gnu/javax/naming/giop/GiopNamingServiceFactory$1.h b/libjava/gnu/javax/naming/giop/GiopNamingServiceFactory$1.h new file mode 100644 index 00000000000..a45a730e69d --- /dev/null +++ b/libjava/gnu/javax/naming/giop/GiopNamingServiceFactory$1.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_GiopNamingServiceFactory$1__ +#define __gnu_javax_naming_giop_GiopNamingServiceFactory$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace giop + { + class GiopNamingServiceFactory; + class GiopNamingServiceFactory$1; + } + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class gnu::javax::naming::giop::GiopNamingServiceFactory$1 : public ::java::lang::Thread +{ + +public: // actually package-private + GiopNamingServiceFactory$1(::gnu::javax::naming::giop::GiopNamingServiceFactory *, ::org::omg::CORBA::ORB *); +public: + void run(); +public: // actually package-private + ::gnu::javax::naming::giop::GiopNamingServiceFactory * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0; +private: + ::org::omg::CORBA::ORB * val$runIt; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_GiopNamingServiceFactory$1__ diff --git a/libjava/gnu/javax/naming/giop/GiopNamingServiceFactory.h b/libjava/gnu/javax/naming/giop/GiopNamingServiceFactory.h new file mode 100644 index 00000000000..d3afb0d66a2 --- /dev/null +++ b/libjava/gnu/javax/naming/giop/GiopNamingServiceFactory.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_GiopNamingServiceFactory__ +#define __gnu_javax_naming_giop_GiopNamingServiceFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace giop + { + class GiopNamingServiceFactory; + } + } + } + } + namespace javax + { + namespace naming + { + class Context; + class Name; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class gnu::javax::naming::giop::GiopNamingServiceFactory : public ::java::lang::Object +{ + +public: + GiopNamingServiceFactory(); + virtual ::java::lang::Object * getObjectInstance(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *); + virtual void checkIfReferenced(::org::omg::CORBA::ORB *); + virtual ::java::lang::String * getOrbSignature(::java::util::Map *); + static ::java::lang::String * DEFAULT_PROVIDER; + static ::java::util::Hashtable * orbs; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_GiopNamingServiceFactory__ diff --git a/libjava/gnu/javax/naming/giop/GiopNamingServiceURLContext.h b/libjava/gnu/javax/naming/giop/GiopNamingServiceURLContext.h new file mode 100644 index 00000000000..ae1544c5a79 --- /dev/null +++ b/libjava/gnu/javax/naming/giop/GiopNamingServiceURLContext.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_GiopNamingServiceURLContext__ +#define __gnu_javax_naming_giop_GiopNamingServiceURLContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameTransformer; + } + } + namespace javax + { + namespace naming + { + namespace giop + { + class GiopNamingServiceFactory; + class GiopNamingServiceURLContext; + } + } + } + } + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + namespace CosNaming + { + class NameComponent; + class NamingContextExt; + } + } + } +} + +class gnu::javax::naming::giop::GiopNamingServiceURLContext : public ::gnu::javax::naming::giop::CorbalocParser +{ + +public: + GiopNamingServiceURLContext(::java::util::Hashtable *, ::gnu::javax::naming::giop::GiopNamingServiceFactory *, ::org::omg::CORBA::ORB *); + virtual ::org::omg::CosNaming::NamingContextExt * getService(::java::lang::String *); + virtual JArray< ::java::lang::String * > * split(::java::lang::String *); + virtual void bind(::javax::naming::Name *, ::java::lang::Object *); + virtual void bind(::java::lang::String *, ::java::lang::Object *); + virtual void close(); + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *); + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *); + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *); + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *); + virtual void destroySubcontext(::javax::naming::Name *); + virtual void destroySubcontext(::java::lang::String *); + virtual ::java::lang::String * getNameInNamespace(); + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *); + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *); + virtual ::java::lang::Object * lookup(::javax::naming::Name *); + virtual ::java::lang::Object * lookup(::java::lang::String *); + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *); + virtual ::java::lang::Object * lookupLink(::java::lang::String *); + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *); + virtual void rebind(::java::lang::String *, ::java::lang::Object *); + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *); + virtual void rename(::java::lang::String *, ::java::lang::String *); + virtual void unbind(::javax::naming::Name *); + virtual void unbind(::java::lang::String *); + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *); + virtual ::java::util::Hashtable * getEnvironment(); + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *); + virtual JArray< ::org::omg::CosNaming::NameComponent * > * toGiop(::javax::naming::Name *); + virtual jint getBatchSize(); + jint __attribute__((aligned(__alignof__( ::gnu::javax::naming::giop::CorbalocParser)))) DEFAULT_BATCH_SIZE; +public: // actually package-private + ::org::omg::CORBA::ORB * orb; + ::java::util::Hashtable * properties; + ::gnu::javax::naming::giop::GiopNamingServiceFactory * factory; + static ::gnu::CORBA::NamingService::NameTransformer * transformer; +public: + jint howMany; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_GiopNamingServiceURLContext__ diff --git a/libjava/gnu/javax/naming/giop/ListBindingsEnumeration.h b/libjava/gnu/javax/naming/giop/ListBindingsEnumeration.h new file mode 100644 index 00000000000..325f19a1408 --- /dev/null +++ b/libjava/gnu/javax/naming/giop/ListBindingsEnumeration.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_ListBindingsEnumeration__ +#define __gnu_javax_naming_giop_ListBindingsEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace giop + { + class ListBindingsEnumeration; + } + } + } + } + namespace org + { + namespace omg + { + namespace CosNaming + { + class Binding; + class BindingIteratorHolder; + class BindingListHolder; + class NamingContext; + } + } + } +} + +class gnu::javax::naming::giop::ListBindingsEnumeration : public ::gnu::javax::naming::giop::GiopNamingEnumeration +{ + +public: + ListBindingsEnumeration(::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *, jint, ::org::omg::CosNaming::NamingContext *); + virtual ::java::lang::Object * convert(::org::omg::CosNaming::Binding *); +public: // actually package-private + ::org::omg::CosNaming::NamingContext * __attribute__((aligned(__alignof__( ::gnu::javax::naming::giop::GiopNamingEnumeration)))) service; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_ListBindingsEnumeration__ diff --git a/libjava/gnu/javax/naming/giop/ListEnumeration.h b/libjava/gnu/javax/naming/giop/ListEnumeration.h new file mode 100644 index 00000000000..5ed2c7f9f7c --- /dev/null +++ b/libjava/gnu/javax/naming/giop/ListEnumeration.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_giop_ListEnumeration__ +#define __gnu_javax_naming_giop_ListEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace giop + { + class ListEnumeration; + } + } + } + } + namespace org + { + namespace omg + { + namespace CosNaming + { + class Binding; + class BindingIteratorHolder; + class BindingListHolder; + } + } + } +} + +class gnu::javax::naming::giop::ListEnumeration : public ::gnu::javax::naming::giop::GiopNamingEnumeration +{ + +public: + ListEnumeration(::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *, jint); + virtual ::java::lang::Object * convert(::org::omg::CosNaming::Binding *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_giop_ListEnumeration__ diff --git a/libjava/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.h b/libjava/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.h new file mode 100644 index 00000000000..138c63af739 --- /dev/null +++ b/libjava/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_ictxImpl_trans_GnuName$GnuNameEnum__ +#define __gnu_javax_naming_ictxImpl_trans_GnuName$GnuNameEnum__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace ictxImpl + { + namespace trans + { + class GnuName; + class GnuName$GnuNameEnum; + } + } + } + } + } +} + +class gnu::javax::naming::ictxImpl::trans::GnuName$GnuNameEnum : public ::java::lang::Object +{ + +public: // actually package-private + GnuName$GnuNameEnum(::gnu::javax::naming::ictxImpl::trans::GnuName *, jint); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) nxt; + ::gnu::javax::naming::ictxImpl::trans::GnuName * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_ictxImpl_trans_GnuName$GnuNameEnum__ diff --git a/libjava/gnu/javax/naming/ictxImpl/trans/GnuName.h b/libjava/gnu/javax/naming/ictxImpl/trans/GnuName.h new file mode 100644 index 00000000000..dd2b2d64b39 --- /dev/null +++ b/libjava/gnu/javax/naming/ictxImpl/trans/GnuName.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_ictxImpl_trans_GnuName__ +#define __gnu_javax_naming_ictxImpl_trans_GnuName__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace ictxImpl + { + namespace trans + { + class GnuName; + } + } + } + } + } + namespace javax + { + namespace naming + { + class Name; + } + } +} + +class gnu::javax::naming::ictxImpl::trans::GnuName : public ::java::lang::Object +{ + +public: // actually protected + GnuName(); +public: + GnuName(JArray< ::java::lang::String * > *); + GnuName(JArray< ::java::lang::String * > *, jint, jint); + virtual ::javax::naming::Name * add(jint, ::java::lang::String *); + virtual ::javax::naming::Name * add(::java::lang::String *); + virtual ::javax::naming::Name * addAll(jint, ::javax::naming::Name *); + virtual ::javax::naming::Name * addAll(::javax::naming::Name *); + virtual jint compareTo(::java::lang::Object *); + virtual jboolean endsWith(::javax::naming::Name *); + virtual ::java::lang::String * get(jint); + virtual ::java::util::Enumeration * getAll(); + virtual ::javax::naming::Name * getPrefix(jint); + virtual ::javax::naming::Name * getSuffix(jint); + virtual jboolean isEmpty(); + virtual ::java::lang::Object * remove(jint); + virtual jint size(); + virtual jboolean startsWith(::javax::naming::Name *); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -3617482732056931635LL; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) hash; + JArray< ::java::lang::String * > * content; + jint from; + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_ictxImpl_trans_GnuName__ diff --git a/libjava/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.h b/libjava/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.h new file mode 100644 index 00000000000..f1e3844c368 --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_corbaname_corbanameURLContextFactory__ +#define __gnu_javax_naming_jndi_url_corbaname_corbanameURLContextFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace corbaname + { + class corbanameURLContextFactory; + } + } + } + } + } + } +} + +class gnu::javax::naming::jndi::url::corbaname::corbanameURLContextFactory : public ::gnu::javax::naming::giop::GiopNamingServiceFactory +{ + +public: + corbanameURLContextFactory(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_corbaname_corbanameURLContextFactory__ diff --git a/libjava/gnu/javax/naming/jndi/url/rmi/ContextContinuation.h b/libjava/gnu/javax/naming/jndi/url/rmi/ContextContinuation.h new file mode 100644 index 00000000000..87f6699d15c --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/rmi/ContextContinuation.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_rmi_ContextContinuation__ +#define __gnu_javax_naming_jndi_url_rmi_ContextContinuation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace rmi + { + class ContextContinuation; + } + } + } + } + } + } + namespace java + { + namespace rmi + { + namespace registry + { + class Registry; + } + } + } + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + } + } +} + +class gnu::javax::naming::jndi::url::rmi::ContextContinuation : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *); + virtual ::java::util::Hashtable * getEnvironment(); + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *); + virtual void removeRegistry(); + virtual ::java::rmi::registry::Registry * getRegistry(); + ContextContinuation(::java::util::Map *, ::java::rmi::registry::Registry *); + virtual void bind(::javax::naming::Name *, ::java::lang::Object *); + virtual void bind(::java::lang::String *, ::java::lang::Object *); + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *); + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *); + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *); + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *); + virtual void destroySubcontext(::javax::naming::Name *); + virtual void destroySubcontext(::java::lang::String *); + virtual ::java::lang::String * getNameInNamespace(); + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *); + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *); + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *); + virtual ::java::lang::Object * lookupLink(::java::lang::String *); + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *); + virtual void rebind(::java::lang::String *, ::java::lang::Object *); + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *); + virtual void rename(::java::lang::String *, ::java::lang::String *); + virtual void unbind(::javax::naming::Name *); + virtual void unbind(::java::lang::String *); + virtual void close(); + virtual ::java::lang::Object * lookup(::javax::naming::Name *); + virtual ::java::lang::Object * lookup(::java::lang::String *); + static ::java::lang::String * DEFAULT_REGISTRY_LOCATION; +public: // actually package-private + ::java::rmi::registry::Registry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) registry; + ::java::util::Properties * properties; + jboolean lookupCalled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_rmi_ContextContinuation__ diff --git a/libjava/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.h b/libjava/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.h new file mode 100644 index 00000000000..96b173abaf1 --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_rmi_ListBindingsEnumeration__ +#define __gnu_javax_naming_jndi_url_rmi_ListBindingsEnumeration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace rmi + { + class ListBindingsEnumeration; + } + } + } + } + } + } + namespace java + { + namespace rmi + { + namespace registry + { + class Registry; + } + } + } +} + +class gnu::javax::naming::jndi::url::rmi::ListBindingsEnumeration : public ::gnu::javax::naming::jndi::url::rmi::RmiNamingEnumeration +{ + +public: + ListBindingsEnumeration(JArray< ::java::lang::String * > *, ::java::rmi::registry::Registry *); + virtual ::java::lang::Object * convert(::java::lang::String *); +public: // actually package-private + ::java::rmi::registry::Registry * __attribute__((aligned(__alignof__( ::gnu::javax::naming::jndi::url::rmi::RmiNamingEnumeration)))) service; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_rmi_ListBindingsEnumeration__ diff --git a/libjava/gnu/javax/naming/jndi/url/rmi/ListEnumeration.h b/libjava/gnu/javax/naming/jndi/url/rmi/ListEnumeration.h new file mode 100644 index 00000000000..a09dc191382 --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/rmi/ListEnumeration.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_rmi_ListEnumeration__ +#define __gnu_javax_naming_jndi_url_rmi_ListEnumeration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace rmi + { + class ListEnumeration; + } + } + } + } + } + } +} + +class gnu::javax::naming::jndi::url::rmi::ListEnumeration : public ::gnu::javax::naming::jndi::url::rmi::RmiNamingEnumeration +{ + +public: + ListEnumeration(JArray< ::java::lang::String * > *); + virtual ::java::lang::Object * convert(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_rmi_ListEnumeration__ diff --git a/libjava/gnu/javax/naming/jndi/url/rmi/RmiContinuation.h b/libjava/gnu/javax/naming/jndi/url/rmi/RmiContinuation.h new file mode 100644 index 00000000000..756fa058409 --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/rmi/RmiContinuation.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_rmi_RmiContinuation__ +#define __gnu_javax_naming_jndi_url_rmi_RmiContinuation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace rmi + { + class RmiContinuation; + } + } + } + } + } + } + namespace java + { + namespace rmi + { + namespace registry + { + class Registry; + } + } + } + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + } + } +} + +class gnu::javax::naming::jndi::url::rmi::RmiContinuation : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *); + virtual ::java::util::Hashtable * getEnvironment(); + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *); + virtual void removeRegistry(); + virtual ::java::rmi::registry::Registry * getRegistry(); + RmiContinuation(::java::util::Map *); + virtual void bind(::javax::naming::Name *, ::java::lang::Object *); + virtual void bind(::java::lang::String *, ::java::lang::Object *); + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *); + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *); + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *); + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *); + virtual void destroySubcontext(::javax::naming::Name *); + virtual void destroySubcontext(::java::lang::String *); + virtual ::java::lang::String * getNameInNamespace(); + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *); + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *); + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *); + virtual ::java::lang::Object * lookupLink(::java::lang::String *); + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *); + virtual void rebind(::java::lang::String *, ::java::lang::Object *); + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *); + virtual void rename(::java::lang::String *, ::java::lang::String *); + virtual void unbind(::javax::naming::Name *); + virtual void unbind(::java::lang::String *); + virtual void close(); + virtual ::java::lang::Object * lookup(::javax::naming::Name *); + virtual ::java::lang::Object * lookup(::java::lang::String *); + static ::java::lang::String * DEFAULT_REGISTRY_LOCATION; +public: // actually package-private + ::java::rmi::registry::Registry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) registry; + ::java::util::Properties * properties; + jboolean lookupCalled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_rmi_RmiContinuation__ diff --git a/libjava/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.h b/libjava/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.h new file mode 100644 index 00000000000..27447c73fd0 --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_rmi_RmiNamingEnumeration__ +#define __gnu_javax_naming_jndi_url_rmi_RmiNamingEnumeration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace rmi + { + class RmiNamingEnumeration; + } + } + } + } + } + } +} + +class gnu::javax::naming::jndi::url::rmi::RmiNamingEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + RmiNamingEnumeration(JArray< ::java::lang::String * > *); +public: + virtual ::java::lang::Object * convert(::java::lang::String *) = 0; + virtual jboolean hasMore(); + virtual ::java::lang::Object * next(); + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); + virtual void close(); +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) list; + jint p; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_rmi_RmiNamingEnumeration__ diff --git a/libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContext.h b/libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContext.h new file mode 100644 index 00000000000..732295d5f8c --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContext.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_rmi_rmiURLContext__ +#define __gnu_javax_naming_jndi_url_rmi_rmiURLContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace rmi + { + class rmiURLContext; + } + } + } + } + } + } + namespace java + { + namespace rmi + { + namespace registry + { + class Registry; + } + } + } + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + } + } +} + +class gnu::javax::naming::jndi::url::rmi::rmiURLContext : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *); + virtual ::java::util::Hashtable * getEnvironment(); + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *); + virtual ::java::rmi::registry::Registry * getRegistry(::java::lang::String *); + rmiURLContext(::java::util::Map *); + virtual void bind(::javax::naming::Name *, ::java::lang::Object *); + virtual void bind(::java::lang::String *, ::java::lang::Object *); + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *); + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *); + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *); + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *); + virtual void destroySubcontext(::javax::naming::Name *); + virtual void destroySubcontext(::java::lang::String *); + virtual ::java::lang::String * getNameInNamespace(); + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *); + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *); + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *); + virtual ::java::lang::Object * lookupLink(::java::lang::String *); + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *); + virtual void rebind(::java::lang::String *, ::java::lang::Object *); + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *); + virtual void rename(::java::lang::String *, ::java::lang::String *); + virtual void unbind(::javax::naming::Name *); + virtual void unbind(::java::lang::String *); + virtual void close(); + virtual ::java::lang::Object * lookup(::javax::naming::Name *); + virtual ::java::lang::Object * lookup(::java::lang::String *); + virtual JArray< ::java::lang::String * > * split(::java::lang::String *); + static ::java::lang::String * DEFAULT_REGISTRY_LOCATION; +public: // actually package-private + static ::java::util::WeakHashMap * registryCache; + ::java::util::Properties * __attribute__((aligned(__alignof__( ::java::lang::Object)))) properties; + jboolean lookupCalled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_rmi_rmiURLContext__ diff --git a/libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.h b/libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.h new file mode 100644 index 00000000000..d29e51cb9f5 --- /dev/null +++ b/libjava/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_naming_jndi_url_rmi_rmiURLContextFactory__ +#define __gnu_javax_naming_jndi_url_rmi_rmiURLContextFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace naming + { + namespace jndi + { + namespace url + { + namespace rmi + { + class rmiURLContextFactory; + } + } + } + } + } + } + namespace javax + { + namespace naming + { + class Context; + class Name; + } + } +} + +class gnu::javax::naming::jndi::url::rmi::rmiURLContextFactory : public ::java::lang::Object +{ + +public: + rmiURLContextFactory(); + virtual ::java::lang::Object * getObjectInstance(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_naming_jndi_url_rmi_rmiURLContextFactory__ diff --git a/libjava/gnu/javax/net/ssl/AbstractSessionContext.h b/libjava/gnu/javax/net/ssl/AbstractSessionContext.h new file mode 100644 index 00000000000..06d145e7b77 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/AbstractSessionContext.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_AbstractSessionContext__ +#define __gnu_javax_net_ssl_AbstractSessionContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class AbstractSessionContext; + class Session; + } + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSession; + } + } + } +} + +class gnu::javax::net::ssl::AbstractSessionContext : public ::java::lang::Object +{ + +public: + static ::gnu::javax::net::ssl::AbstractSessionContext * newInstance(); + static void setImplClass(::java::lang::Class *); +public: // actually protected + AbstractSessionContext(jint); +public: + virtual ::javax::net::ssl::SSLSession * getSession(JArray< jbyte > *); + virtual ::javax::net::ssl::SSLSession * getSession(::java::lang::String *, jint); +public: // actually protected + virtual ::gnu::javax::net::ssl::Session * implGet(JArray< jbyte > *) = 0; +public: + virtual jint getSessionTimeout(); + virtual void load(JArray< jchar > *) = 0; + virtual void put(::gnu::javax::net::ssl::Session *) = 0; + virtual void remove(JArray< jbyte > *) = 0; + virtual void setSessionTimeout(jint); + virtual void store(JArray< jchar > *) = 0; + virtual ::java::util::Enumeration * getIds() = 0; + virtual jint getSessionCacheSize() = 0; + virtual void setSessionCacheSize(jint) = 0; +public: // actually protected + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) timeout; +private: + static ::java::lang::Class * implClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_AbstractSessionContext__ diff --git a/libjava/gnu/javax/net/ssl/Base64.h b/libjava/gnu/javax/net/ssl/Base64.h new file mode 100644 index 00000000000..658e1376808 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/Base64.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_Base64__ +#define __gnu_javax_net_ssl_Base64__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class Base64; + } + } + } + } +} + +class gnu::javax::net::ssl::Base64 : public ::java::lang::Object +{ + + Base64(); +public: + static ::java::lang::String * encode(JArray< jbyte > *, jint); + static JArray< jbyte > * decode(::java::lang::String *); +private: + static ::java::lang::String * BASE_64; + static const jchar BASE_64_PAD = 61; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_Base64__ diff --git a/libjava/gnu/javax/net/ssl/EntropySource.h b/libjava/gnu/javax/net/ssl/EntropySource.h new file mode 100644 index 00000000000..d44398c4c03 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/EntropySource.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_EntropySource__ +#define __gnu_javax_net_ssl_EntropySource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class EntropySource; + } + } + } + } +} + +class gnu::javax::net::ssl::EntropySource : public ::java::lang::Object +{ + +public: + virtual jdouble quality() = 0; + virtual JArray< jbyte > * nextBytes() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_EntropySource__ diff --git a/libjava/gnu/javax/net/ssl/NullManagerParameters.h b/libjava/gnu/javax/net/ssl/NullManagerParameters.h new file mode 100644 index 00000000000..519138e6e89 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/NullManagerParameters.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_NullManagerParameters__ +#define __gnu_javax_net_ssl_NullManagerParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class NullManagerParameters; + } + } + } + } +} + +class gnu::javax::net::ssl::NullManagerParameters : public ::java::lang::Object +{ + +public: + NullManagerParameters(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_NullManagerParameters__ diff --git a/libjava/gnu/javax/net/ssl/PreSharedKeyManager.h b/libjava/gnu/javax/net/ssl/PreSharedKeyManager.h new file mode 100644 index 00000000000..8ced9ef5341 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/PreSharedKeyManager.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_PreSharedKeyManager__ +#define __gnu_javax_net_ssl_PreSharedKeyManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class PreSharedKeyManager; + } + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::net::ssl::PreSharedKeyManager : public ::java::lang::Object +{ + +public: + virtual ::javax::crypto::SecretKey * getKey(::java::lang::String *) = 0; + virtual ::java::lang::String * chooseIdentityHint() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_PreSharedKeyManager__ diff --git a/libjava/gnu/javax/net/ssl/PreSharedKeyManagerParameters.h b/libjava/gnu/javax/net/ssl/PreSharedKeyManagerParameters.h new file mode 100644 index 00000000000..5f2e23bc6d7 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/PreSharedKeyManagerParameters.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_PreSharedKeyManagerParameters__ +#define __gnu_javax_net_ssl_PreSharedKeyManagerParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class PreSharedKeyManagerParameters; + } + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::net::ssl::PreSharedKeyManagerParameters : public ::java::lang::Object +{ + +public: + PreSharedKeyManagerParameters(); + virtual ::javax::crypto::SecretKey * getKey(::java::lang::String *); + virtual void putKey(::java::lang::String *, ::javax::crypto::SecretKey *); + virtual jboolean removeKey(::java::lang::String *); + virtual ::java::util::Iterator * identities(); +private: + ::java::util::LinkedHashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keys; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_PreSharedKeyManagerParameters__ diff --git a/libjava/gnu/javax/net/ssl/PrivateCredentials.h b/libjava/gnu/javax/net/ssl/PrivateCredentials.h new file mode 100644 index 00000000000..ab47f4fdd72 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/PrivateCredentials.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_PrivateCredentials__ +#define __gnu_javax_net_ssl_PrivateCredentials__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class PrivateCredentials; + } + } + } + } +} + +class gnu::javax::net::ssl::PrivateCredentials : public ::java::lang::Object +{ + +public: + PrivateCredentials(); + virtual void add(::java::io::InputStream *, ::java::io::InputStream *); + virtual ::java::util::List * getPrivateKeys(); + virtual ::java::util::List * getCertChains(); + virtual void destroy(); + virtual jboolean isDestroyed(); +private: + ::java::lang::String * readLine(::java::io::InputStream *); + JArray< jbyte > * decryptKey(JArray< jbyte > *, ::java::lang::String *, JArray< jbyte > *); + JArray< jbyte > * deriveKey(JArray< jbyte > *, jint); + JArray< jbyte > * toByteArray(::java::lang::String *); +public: + static ::java::lang::String * BEGIN_DSA; + static ::java::lang::String * END_DSA; + static ::java::lang::String * BEGIN_RSA; + static ::java::lang::String * END_RSA; +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) privateKeys; + ::java::util::List * certChains; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_PrivateCredentials__ diff --git a/libjava/gnu/javax/net/ssl/SRPManagerParameters.h b/libjava/gnu/javax/net/ssl/SRPManagerParameters.h new file mode 100644 index 00000000000..16a617bdd0c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/SRPManagerParameters.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_SRPManagerParameters__ +#define __gnu_javax_net_ssl_SRPManagerParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class PasswordFile; + } + } + } + namespace net + { + namespace ssl + { + class SRPManagerParameters; + } + } + } + } +} + +class gnu::javax::net::ssl::SRPManagerParameters : public ::java::lang::Object +{ + +public: + SRPManagerParameters(::gnu::javax::crypto::sasl::srp::PasswordFile *); + virtual ::gnu::javax::crypto::sasl::srp::PasswordFile * getPasswordFile(); +private: + ::gnu::javax::crypto::sasl::srp::PasswordFile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) file; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_SRPManagerParameters__ diff --git a/libjava/gnu/javax/net/ssl/SRPTrustManager.h b/libjava/gnu/javax/net/ssl/SRPTrustManager.h new file mode 100644 index 00000000000..740ae3bc1cc --- /dev/null +++ b/libjava/gnu/javax/net/ssl/SRPTrustManager.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_SRPTrustManager__ +#define __gnu_javax_net_ssl_SRPTrustManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class PasswordFile; + } + } + } + namespace net + { + namespace ssl + { + class SRPTrustManager; + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class KeyPair; + } + } +} + +class gnu::javax::net::ssl::SRPTrustManager : public ::java::lang::Object +{ + +public: + virtual jboolean contains(::java::lang::String *) = 0; + virtual ::java::security::KeyPair * getKeyPair(::java::lang::String *) = 0; + virtual JArray< jbyte > * getSalt(::java::lang::String *) = 0; + virtual ::java::math::BigInteger * getVerifier(::java::lang::String *) = 0; + virtual ::gnu::javax::crypto::sasl::srp::PasswordFile * getPasswordFile() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_SRPTrustManager__ diff --git a/libjava/gnu/javax/net/ssl/SSLCipherSuite.h b/libjava/gnu/javax/net/ssl/SSLCipherSuite.h new file mode 100644 index 00000000000..de863b7030e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/SSLCipherSuite.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_SSLCipherSuite__ +#define __gnu_javax_net_ssl_SSLCipherSuite__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SSLCipherSuite; + class SSLProtocolVersion; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class Provider; + } + } +} + +class gnu::javax::net::ssl::SSLCipherSuite : public ::java::lang::Object +{ + +public: // actually protected + SSLCipherSuite(::java::lang::String *, JArray< jbyte > *, ::gnu::javax::net::ssl::SSLProtocolVersion *); +public: + static ::gnu::javax::net::ssl::SSLCipherSuite * getInstance(::gnu::javax::net::ssl::SSLProtocolVersion *, JArray< jbyte > *); + static ::gnu::javax::net::ssl::SSLCipherSuite * getInstance(::gnu::javax::net::ssl::SSLProtocolVersion *, JArray< jbyte > *, ::java::security::Provider *); + static ::gnu::javax::net::ssl::SSLCipherSuite * getInstance(::java::lang::String *); + static ::gnu::javax::net::ssl::SSLCipherSuite * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< jbyte > * getId(); + virtual ::java::security::Provider * getProvider(); + virtual ::gnu::javax::net::ssl::SSLProtocolVersion * getProtocolVersion(); + virtual void encipher(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *) = 0; +private: + static ::java::lang::String * SERVICE; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) algorithm; + JArray< jbyte > * id; + ::gnu::javax::net::ssl::SSLProtocolVersion * version; + ::java::security::Provider * provider; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_SSLCipherSuite__ diff --git a/libjava/gnu/javax/net/ssl/SSLProtocolVersion.h b/libjava/gnu/javax/net/ssl/SSLProtocolVersion.h new file mode 100644 index 00000000000..f7feac96dfd --- /dev/null +++ b/libjava/gnu/javax/net/ssl/SSLProtocolVersion.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_SSLProtocolVersion__ +#define __gnu_javax_net_ssl_SSLProtocolVersion__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SSLProtocolVersion; + } + } + } + } +} + +class gnu::javax::net::ssl::SSLProtocolVersion : public ::java::lang::Enum +{ + + SSLProtocolVersion(::java::lang::String *, jint, jint, jint); +public: + static JArray< ::gnu::javax::net::ssl::SSLProtocolVersion * > * values(); + static ::gnu::javax::net::ssl::SSLProtocolVersion * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::SSLProtocolVersion * SSLv3; + static ::gnu::javax::net::ssl::SSLProtocolVersion * TLSv1; + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) major; + jint minor; +private: + static JArray< ::gnu::javax::net::ssl::SSLProtocolVersion * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_SSLProtocolVersion__ diff --git a/libjava/gnu/javax/net/ssl/SSLRecordHandler.h b/libjava/gnu/javax/net/ssl/SSLRecordHandler.h new file mode 100644 index 00000000000..f4fab150983 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/SSLRecordHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_SSLRecordHandler__ +#define __gnu_javax_net_ssl_SSLRecordHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SSLRecordHandler; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::SSLRecordHandler : public ::java::lang::Object +{ + +public: // actually protected + SSLRecordHandler(jbyte); +public: + virtual void handle(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *) = 0; + virtual jbyte contentType(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) contentType__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_SSLRecordHandler__ diff --git a/libjava/gnu/javax/net/ssl/Session$ID.h b/libjava/gnu/javax/net/ssl/Session$ID.h new file mode 100644 index 00000000000..cccfb0254f3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/Session$ID.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_Session$ID__ +#define __gnu_javax_net_ssl_Session$ID__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class Session$ID; + } + } + } + } +} + +class gnu::javax::net::ssl::Session$ID : public ::java::lang::Object +{ + +public: + Session$ID(JArray< jbyte > *); + JArray< jbyte > * id(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + jint compareTo(::java::lang::Object *); + ::java::lang::String * toString(); +public: // actually package-private + static const jlong serialVersionUID = 7887036954666565936LL; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_Session$ID__ diff --git a/libjava/gnu/javax/net/ssl/Session.h b/libjava/gnu/javax/net/ssl/Session.h new file mode 100644 index 00000000000..1061db2260f --- /dev/null +++ b/libjava/gnu/javax/net/ssl/Session.h @@ -0,0 +1,117 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_Session__ +#define __gnu_javax_net_ssl_Session__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class Session; + class Session$ID; + } + } + } + } + namespace java + { + namespace security + { + class Principal; + class SecureRandom; + namespace cert + { + class Certificate; + } + } + } + namespace javax + { + namespace crypto + { + class SealedObject; + } + namespace net + { + namespace ssl + { + class SSLSessionContext; + } + } + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class gnu::javax::net::ssl::Session : public ::java::lang::Object +{ + +public: // actually protected + Session(); +public: + virtual void access(); + virtual jint getApplicationBufferSize(); + virtual ::java::lang::String * getCipherSuite(); + virtual jlong getCreationTime(); + virtual JArray< jbyte > * getId(); + virtual ::gnu::javax::net::ssl::Session$ID * id(); + virtual jlong getLastAccessedTime(); + virtual JArray< ::java::security::cert::Certificate * > * getLocalCertificates(); + virtual ::java::security::Principal * getLocalPrincipal(); + virtual jint getPacketBufferSize(); + virtual JArray< ::java::security::cert::Certificate * > * getPeerCertificates(); + virtual JArray< ::javax::security::cert::X509Certificate * > * getPeerCertificateChain(); + virtual ::java::lang::String * getPeerHost(); + virtual jint getPeerPort(); + virtual ::java::security::Principal * getPeerPrincipal(); + virtual ::javax::net::ssl::SSLSessionContext * getSessionContext(); + virtual JArray< ::java::lang::String * > * getValueNames(); + virtual ::java::lang::Object * getValue(::java::lang::String *); + virtual void invalidate(); + virtual jboolean isValid(); + virtual void putValue(::java::lang::String *, ::java::lang::Object *); + virtual void removeValue(::java::lang::String *); + virtual jboolean isTruncatedMac(); + virtual void prepare(JArray< jchar > *) = 0; + virtual void repair(JArray< jchar > *) = 0; + virtual ::javax::crypto::SealedObject * privateData() = 0; + virtual void setPrivateData(::javax::crypto::SealedObject *) = 0; + virtual ::java::lang::String * getProtocol() = 0; +public: // actually protected + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) creationTime; + jlong lastAccessedTime; + jint applicationBufferSize; + ::gnu::javax::net::ssl::Session$ID * sessionId; + JArray< ::java::security::cert::Certificate * > * localCerts; + JArray< ::java::security::cert::Certificate * > * peerCerts; + JArray< ::javax::security::cert::X509Certificate * > * peerCertChain; + ::java::lang::String * peerHost; + jint peerPort; + jboolean peerVerified; + ::java::util::HashMap * values; + jboolean valid; + jboolean truncatedMac; + ::java::security::SecureRandom * random; + ::javax::net::ssl::SSLSessionContext * context; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_Session__ diff --git a/libjava/gnu/javax/net/ssl/SessionStoreException.h b/libjava/gnu/javax/net/ssl/SessionStoreException.h new file mode 100644 index 00000000000..50049b7a9ad --- /dev/null +++ b/libjava/gnu/javax/net/ssl/SessionStoreException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_SessionStoreException__ +#define __gnu_javax_net_ssl_SessionStoreException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SessionStoreException; + } + } + } + } +} + +class gnu::javax::net::ssl::SessionStoreException : public ::javax::net::ssl::SSLException +{ + +public: + SessionStoreException(::java::lang::String *); + SessionStoreException(::java::lang::String *, ::java::lang::Throwable *); + SessionStoreException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_SessionStoreException__ diff --git a/libjava/gnu/javax/net/ssl/StaticTrustAnchors.h b/libjava/gnu/javax/net/ssl/StaticTrustAnchors.h new file mode 100644 index 00000000000..ac00c815140 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/StaticTrustAnchors.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_StaticTrustAnchors__ +#define __gnu_javax_net_ssl_StaticTrustAnchors__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class StaticTrustAnchors; + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class CertificateFactory; + class X509Certificate; + } + } + } +} + +class gnu::javax::net::ssl::StaticTrustAnchors : public ::java::lang::Object +{ + +public: + StaticTrustAnchors(JArray< ::java::security::cert::X509Certificate * > *); + static ::java::security::cert::X509Certificate * generate(::java::security::cert::CertificateFactory *, ::java::lang::String *); + virtual JArray< ::java::security::cert::X509Certificate * > * getCertificates(); +private: + JArray< ::java::security::cert::X509Certificate * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) certs; +public: + static ::gnu::javax::net::ssl::StaticTrustAnchors * CA_CERTS; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_StaticTrustAnchors__ diff --git a/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$1.h b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$1.h new file mode 100644 index 00000000000..2e888342633 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$1.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_AbstractHandshake$1__ +#define __gnu_javax_net_ssl_provider_AbstractHandshake$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class AbstractHandshake$1; + class AbstractHandshake$CertVerifier; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::AbstractHandshake$1 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractHandshake$1(::gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier *); +public: + ::java::lang::ClassLoader * target$run(); + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_AbstractHandshake$1__ diff --git a/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$CertVerifier.h b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$CertVerifier.h new file mode 100644 index 00000000000..56b6f9ce2c9 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$CertVerifier.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_AbstractHandshake$CertVerifier__ +#define __gnu_javax_net_ssl_provider_AbstractHandshake$CertVerifier__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class AbstractHandshake; + class AbstractHandshake$CertVerifier; + } + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually protected + AbstractHandshake$CertVerifier(::gnu::javax::net::ssl::provider::AbstractHandshake *, jboolean, JArray< ::java::security::cert::X509Certificate * > *); +public: // actually package-private + virtual jboolean verified(); +public: // actually protected + virtual void implRun(); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) clientSide; + JArray< ::java::security::cert::X509Certificate * > * chain; + jboolean verified__; +public: // actually package-private + ::gnu::javax::net::ssl::provider::AbstractHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_AbstractHandshake$CertVerifier__ diff --git a/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHE_PSKGen.h b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHE_PSKGen.h new file mode 100644 index 00000000000..d5f0278a7c5 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHE_PSKGen.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_AbstractHandshake$DHE_PSKGen__ +#define __gnu_javax_net_ssl_provider_AbstractHandshake$DHE_PSKGen__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class AbstractHandshake; + class AbstractHandshake$DHE_PSKGen; + } + } + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + namespace interfaces + { + class DHPublicKey; + } + } + } +} + +class gnu::javax::net::ssl::provider::AbstractHandshake$DHE_PSKGen : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually protected + AbstractHandshake$DHE_PSKGen(::gnu::javax::net::ssl::provider::AbstractHandshake *, ::javax::crypto::interfaces::DHPublicKey *, ::javax::crypto::SecretKey *, jboolean); + virtual void implRun(); +private: + ::javax::crypto::interfaces::DHPublicKey * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) dhKey; + ::javax::crypto::SecretKey * psKey; + jboolean isClient; +public: // actually package-private + ::gnu::javax::net::ssl::provider::AbstractHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_AbstractHandshake$DHE_PSKGen__ diff --git a/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHPhase.h b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHPhase.h new file mode 100644 index 00000000000..a344f39e528 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake$DHPhase.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_AbstractHandshake$DHPhase__ +#define __gnu_javax_net_ssl_provider_AbstractHandshake$DHPhase__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class AbstractHandshake; + class AbstractHandshake$DHPhase; + } + } + } + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPublicKey; + } + } + } +} + +class gnu::javax::net::ssl::provider::AbstractHandshake$DHPhase : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually protected + AbstractHandshake$DHPhase(::gnu::javax::net::ssl::provider::AbstractHandshake *, ::javax::crypto::interfaces::DHPublicKey *); + AbstractHandshake$DHPhase(::gnu::javax::net::ssl::provider::AbstractHandshake *, ::javax::crypto::interfaces::DHPublicKey *, jboolean); + virtual void implRun(); +private: + ::javax::crypto::interfaces::DHPublicKey * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) key; + jboolean full; +public: // actually package-private + ::gnu::javax::net::ssl::provider::AbstractHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_AbstractHandshake$DHPhase__ diff --git a/libjava/gnu/javax/net/ssl/provider/AbstractHandshake.h b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake.h new file mode 100644 index 00000000000..c0501a7da46 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/AbstractHandshake.h @@ -0,0 +1,142 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_AbstractHandshake__ +#define __gnu_javax_net_ssl_provider_AbstractHandshake__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class AbstractHandshake; + class CompressionMethod; + class InputSecurityParameters; + class OutputSecurityParameters; + class Random; + class SSLEngineImpl; + class SessionImpl; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class MessageDigest; + class SecureRandom; + } + } + namespace javax + { + namespace crypto + { + class KeyAgreement; + namespace interfaces + { + class DHPrivateKey; + } + } + namespace net + { + namespace ssl + { + class SSLEngineResult$HandshakeStatus; + } + } + } +} + +class gnu::javax::net::ssl::provider::AbstractHandshake : public ::java::lang::Object +{ + +public: // actually protected + AbstractHandshake(::gnu::javax::net::ssl::provider::SSLEngineImpl *); +public: + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * handleInput(::java::nio::ByteBuffer *); +public: // actually protected + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleInput() = 0; +public: + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * handleOutput(::java::nio::ByteBuffer *); +public: // actually protected + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleOutput(::java::nio::ByteBuffer *) = 0; +public: // actually package-private + virtual ::gnu::javax::net::ssl::provider::InputSecurityParameters * getInputParams(); + virtual ::gnu::javax::net::ssl::provider::OutputSecurityParameters * getOutputParams(); + virtual ::java::lang::Runnable * getTask(); + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * status() = 0; + virtual void checkKeyExchange() = 0; + virtual void handleV2Hello(::java::nio::ByteBuffer *) = 0; +public: // actually protected + virtual jboolean pollHandshake(::java::nio::ByteBuffer *); + virtual jboolean doHash(); + virtual jboolean hasMessage(); +private: + void reallocateBuffer(jint); +public: // actually protected + virtual JArray< jbyte > * genV3CertificateVerify(::java::security::MessageDigest *, ::java::security::MessageDigest *, ::gnu::javax::net::ssl::provider::SessionImpl *); + virtual JArray< JArray< jbyte > * > * generateKeys(::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::SessionImpl *); + virtual ::java::nio::ByteBuffer * generateFinished(::java::security::MessageDigest *, ::java::security::MessageDigest *, jboolean, ::gnu::javax::net::ssl::provider::SessionImpl *); + virtual void initDiffieHellman(::javax::crypto::interfaces::DHPrivateKey *, ::java::security::SecureRandom *); + virtual void generateMasterSecret(::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::Random *, ::gnu::javax::net::ssl::provider::SessionImpl *); + virtual void setupSecurityParameters(JArray< JArray< jbyte > * > *, jboolean, ::gnu::javax::net::ssl::provider::SSLEngineImpl *, ::gnu::javax::net::ssl::provider::CompressionMethod *); + virtual void generatePSKSecret(::java::lang::String *, JArray< jbyte > *, jboolean); + static ::gnu::classpath::debug::SystemLogger * logger; + static JArray< jbyte > * SERVER_FINISHED; + static JArray< jbyte > * CLIENT_FINISHED; +private: + static JArray< jbyte > * KEY_EXPANSION; + static JArray< jbyte > * MASTER_SECRET; + static JArray< jbyte > * CLIENT_WRITE_KEY; + static JArray< jbyte > * SERVER_WRITE_KEY; + static JArray< jbyte > * IV_BLOCK; + static JArray< jbyte > * SENDER_CLIENT; + static JArray< jbyte > * SENDER_SERVER; +public: // actually protected + static JArray< jbyte > * PAD1; + static JArray< jbyte > * PAD2; + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) handshakeBuffer; + jint handshakeOffset; + ::java::security::MessageDigest * sha; + ::java::security::MessageDigest * md5; + ::gnu::javax::net::ssl::provider::SSLEngineImpl * engine; + ::javax::crypto::KeyAgreement * keyAgreement; + JArray< jbyte > * preMasterSecret; + ::gnu::javax::net::ssl::provider::InputSecurityParameters * inParams; + ::gnu::javax::net::ssl::provider::OutputSecurityParameters * outParams; + ::java::util::LinkedList * tasks; + ::gnu::javax::net::ssl::provider::Random * serverRandom; + ::gnu::javax::net::ssl::provider::Random * clientRandom; + ::gnu::javax::net::ssl::provider::CompressionMethod * compression; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_AbstractHandshake__ diff --git a/libjava/gnu/javax/net/ssl/provider/Alert$Description.h b/libjava/gnu/javax/net/ssl/provider/Alert$Description.h new file mode 100644 index 00000000000..90a652672bd --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Alert$Description.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Alert$Description__ +#define __gnu_javax_net_ssl_provider_Alert$Description__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Alert$Description; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Alert$Description : public ::java::lang::Enum +{ + + Alert$Description(::java::lang::String *, jint, jint); +public: + static ::gnu::javax::net::ssl::provider::Alert$Description * forInteger(jint); + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::Alert$Description * > * values(); + static ::gnu::javax::net::ssl::provider::Alert$Description * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::Alert$Description * CLOSE_NOTIFY; + static ::gnu::javax::net::ssl::provider::Alert$Description * UNEXPECTED_MESSAGE; + static ::gnu::javax::net::ssl::provider::Alert$Description * BAD_RECORD_MAC; + static ::gnu::javax::net::ssl::provider::Alert$Description * DECRYPTION_FAILED; + static ::gnu::javax::net::ssl::provider::Alert$Description * RECORD_OVERFLOW; + static ::gnu::javax::net::ssl::provider::Alert$Description * DECOMPRESSION_FAILURE; + static ::gnu::javax::net::ssl::provider::Alert$Description * HANDSHAKE_FAILURE; + static ::gnu::javax::net::ssl::provider::Alert$Description * NO_CERTIFICATE; + static ::gnu::javax::net::ssl::provider::Alert$Description * BAD_CERTIFICATE; + static ::gnu::javax::net::ssl::provider::Alert$Description * UNSUPPORTED_CERTIFICATE; + static ::gnu::javax::net::ssl::provider::Alert$Description * CERTIFICATE_REVOKED; + static ::gnu::javax::net::ssl::provider::Alert$Description * CERTIFICATE_EXPIRED; + static ::gnu::javax::net::ssl::provider::Alert$Description * CERTIFICATE_UNKNOWN; + static ::gnu::javax::net::ssl::provider::Alert$Description * ILLEGAL_PARAMETER; + static ::gnu::javax::net::ssl::provider::Alert$Description * UNKNOWN_CA; + static ::gnu::javax::net::ssl::provider::Alert$Description * ACCESS_DENIED; + static ::gnu::javax::net::ssl::provider::Alert$Description * DECODE_ERROR; + static ::gnu::javax::net::ssl::provider::Alert$Description * DECRYPT_ERROR; + static ::gnu::javax::net::ssl::provider::Alert$Description * EXPORT_RESTRICTION; + static ::gnu::javax::net::ssl::provider::Alert$Description * PROTOCOL_VERSION; + static ::gnu::javax::net::ssl::provider::Alert$Description * INSUFFICIENT_SECURITY; + static ::gnu::javax::net::ssl::provider::Alert$Description * INTERNAL_ERROR; + static ::gnu::javax::net::ssl::provider::Alert$Description * USER_CANCELED; + static ::gnu::javax::net::ssl::provider::Alert$Description * NO_RENEGOTIATION; + static ::gnu::javax::net::ssl::provider::Alert$Description * UNSUPPORTED_EXTENSION; + static ::gnu::javax::net::ssl::provider::Alert$Description * CERTIFICATE_UNOBTAINABLE; + static ::gnu::javax::net::ssl::provider::Alert$Description * UNRECOGNIZED_NAME; + static ::gnu::javax::net::ssl::provider::Alert$Description * BAD_CERTIFICATE_STATUS_RESPONSE; + static ::gnu::javax::net::ssl::provider::Alert$Description * BAD_CERTIFICATE_HASH_VALUE; + static ::gnu::javax::net::ssl::provider::Alert$Description * UNKNOWN_SRP_USERNAME; + static ::gnu::javax::net::ssl::provider::Alert$Description * MISSING_SRP_USERNAME; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::Alert$Description * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Alert$Description__ diff --git a/libjava/gnu/javax/net/ssl/provider/Alert$Level.h b/libjava/gnu/javax/net/ssl/provider/Alert$Level.h new file mode 100644 index 00000000000..6c31c4e5fe2 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Alert$Level.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Alert$Level__ +#define __gnu_javax_net_ssl_provider_Alert$Level__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Alert$Level; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Alert$Level : public ::java::lang::Enum +{ + + Alert$Level(::java::lang::String *, jint, jint); +public: + static ::gnu::javax::net::ssl::provider::Alert$Level * forInteger(jint); + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::Alert$Level * > * values(); + static ::gnu::javax::net::ssl::provider::Alert$Level * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::Alert$Level * WARNING; + static ::gnu::javax::net::ssl::provider::Alert$Level * FATAL; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::Alert$Level * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Alert$Level__ diff --git a/libjava/gnu/javax/net/ssl/provider/Alert.h b/libjava/gnu/javax/net/ssl/provider/Alert.h new file mode 100644 index 00000000000..02a4371933c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Alert.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Alert__ +#define __gnu_javax_net_ssl_provider_Alert__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Alert; + class Alert$Description; + class Alert$Level; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Alert : public ::java::lang::Object +{ + +public: + Alert(::java::nio::ByteBuffer *); + Alert(::gnu::javax::net::ssl::provider::Alert$Level *, ::gnu::javax::net::ssl::provider::Alert$Description *); + jint length(); +public: // actually package-private + JArray< jbyte > * getEncoded(); +public: + ::gnu::javax::net::ssl::provider::Alert$Level * level(); + ::gnu::javax::net::ssl::provider::Alert$Description * description(); + void setLevel(::gnu::javax::net::ssl::provider::Alert$Level *); + void setDescription(::gnu::javax::net::ssl::provider::Alert$Description *); + jboolean equals(::java::lang::Object *); + jint hashCode(); + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Alert__ diff --git a/libjava/gnu/javax/net/ssl/provider/AlertException.h b/libjava/gnu/javax/net/ssl/provider/AlertException.h new file mode 100644 index 00000000000..bb335b873e5 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/AlertException.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_AlertException__ +#define __gnu_javax_net_ssl_provider_AlertException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Alert; + class AlertException; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::AlertException : public ::javax::net::ssl::SSLException +{ + +public: + AlertException(::gnu::javax::net::ssl::provider::Alert *, jboolean); + AlertException(::gnu::javax::net::ssl::provider::Alert *); + AlertException(::gnu::javax::net::ssl::provider::Alert *, jboolean, ::java::lang::Throwable *); + AlertException(::gnu::javax::net::ssl::provider::Alert *, ::java::lang::Throwable *); + virtual ::java::lang::String * getMessage(); + virtual ::gnu::javax::net::ssl::provider::Alert * alert(); + virtual jboolean isLocal(); +private: + ::gnu::javax::net::ssl::provider::Alert * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLException)))) alert__; + jboolean isLocal__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_AlertException__ diff --git a/libjava/gnu/javax/net/ssl/provider/Builder.h b/libjava/gnu/javax/net/ssl/provider/Builder.h new file mode 100644 index 00000000000..4c6b795c71a --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Builder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Builder__ +#define __gnu_javax_net_ssl_provider_Builder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Builder; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Builder : public ::java::lang::Object +{ + +public: + virtual ::java::nio::ByteBuffer * buffer() = 0; + virtual jint length() = 0; + virtual ::java::lang::String * toString(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_provider_Builder__ diff --git a/libjava/gnu/javax/net/ssl/provider/Certificate.h b/libjava/gnu/javax/net/ssl/provider/Certificate.h new file mode 100644 index 00000000000..2ad08db5580 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Certificate.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Certificate__ +#define __gnu_javax_net_ssl_provider_Certificate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Certificate; + class CertificateType; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Certificate : public ::java::lang::Object +{ + +public: + Certificate(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::CertificateType *); + virtual jint length(); + virtual ::java::util::List * certificates(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +public: // actually protected + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::gnu::javax::net::ssl::provider::CertificateType * type; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Certificate__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateBuilder.h b/libjava/gnu/javax/net/ssl/provider/CertificateBuilder.h new file mode 100644 index 00000000000..136fd69adba --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateBuilder.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateBuilder__ +#define __gnu_javax_net_ssl_provider_CertificateBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateBuilder; + class CertificateType; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CertificateBuilder : public ::gnu::javax::net::ssl::provider::Certificate +{ + +public: + CertificateBuilder(::gnu::javax::net::ssl::provider::CertificateType *); + virtual ::java::nio::ByteBuffer * buffer(); + virtual void setCertificates(::java::util::List *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateBuilder__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientCertificateType.h b/libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientCertificateType.h new file mode 100644 index 00000000000..b6e51c839e7 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientCertificateType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateRequest$ClientCertificateType__ +#define __gnu_javax_net_ssl_provider_CertificateRequest$ClientCertificateType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateRequest$ClientCertificateType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType : public ::java::lang::Enum +{ + + CertificateRequest$ClientCertificateType(::java::lang::String *, jint, jint); +public: // actually package-private + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * forValue(jint); +public: + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * > * values(); + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * RSA_SIGN; + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * DSS_SIGN; + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * RSA_FIXED_DH; + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * DSS_FIXED_DH; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateRequest$ClientCertificateType__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientType.h b/libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientType.h new file mode 100644 index 00000000000..54ace32dd92 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateRequest$ClientType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateRequest$ClientType__ +#define __gnu_javax_net_ssl_provider_CertificateRequest$ClientType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateRequest$ClientType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CertificateRequest$ClientType : public ::java::lang::Object +{ + + CertificateRequest$ClientType(jint); +public: // actually package-private + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientType * read(::java::io::InputStream *); +public: + JArray< jbyte > * getEncoded(); + jint getValue(); + ::java::lang::String * toString(); +public: // actually package-private + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientType * RSA_SIGN; + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientType * DSS_SIGN; + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientType * RSA_FIXED_DH; + static ::gnu::javax::net::ssl::provider::CertificateRequest$ClientType * DSS_FIXED_DH; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateRequest$ClientType__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateRequest.h b/libjava/gnu/javax/net/ssl/provider/CertificateRequest.h new file mode 100644 index 00000000000..08e7f193dd7 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateRequest.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateRequest__ +#define __gnu_javax_net_ssl_provider_CertificateRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateRequest; + class ClientCertificateTypeList; + class X500PrincipalList; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CertificateRequest : public ::java::lang::Object +{ + +public: + CertificateRequest(::java::nio::ByteBuffer *); + virtual jint length(); + virtual ::gnu::javax::net::ssl::provider::ClientCertificateTypeList * types(); + virtual ::gnu::javax::net::ssl::provider::X500PrincipalList * authorities(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +public: // actually protected + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateRequest__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateRequestBuilder.h b/libjava/gnu/javax/net/ssl/provider/CertificateRequestBuilder.h new file mode 100644 index 00000000000..3be6ceac1ee --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateRequestBuilder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateRequestBuilder__ +#define __gnu_javax_net_ssl_provider_CertificateRequestBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateRequestBuilder; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CertificateRequestBuilder : public ::gnu::javax::net::ssl::provider::CertificateRequest +{ + +public: + CertificateRequestBuilder(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual void setTypes(::java::util::List *); + virtual void setAuthorities(::java::util::List *); + virtual void ensureCapacity(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateRequestBuilder__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest$ResponderIdIterator.h b/libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest$ResponderIdIterator.h new file mode 100644 index 00000000000..ce75fe69272 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest$ResponderIdIterator.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateStatusRequest$ResponderIdIterator__ +#define __gnu_javax_net_ssl_provider_CertificateStatusRequest$ResponderIdIterator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateStatusRequest; + class CertificateStatusRequest$ResponderIdIterator; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CertificateStatusRequest$ResponderIdIterator : public ::java::lang::Object +{ + +public: + CertificateStatusRequest$ResponderIdIterator(::gnu::javax::net::ssl::provider::CertificateStatusRequest *); + virtual JArray< jbyte > * target$next(); + virtual jboolean hasNext(); + virtual void remove(); + virtual ::java::lang::Object * next(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; +public: // actually package-private + ::gnu::javax::net::ssl::provider::CertificateStatusRequest * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateStatusRequest$ResponderIdIterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest.h b/libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest.h new file mode 100644 index 00000000000..3d9ee96c1a3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateStatusRequest.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateStatusRequest__ +#define __gnu_javax_net_ssl_provider_CertificateStatusRequest__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateStatusRequest; + class CertificateStatusType; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CertificateStatusRequest : public ::gnu::javax::net::ssl::provider::Extension$Value +{ + +public: + CertificateStatusRequest(::java::nio::ByteBuffer *); + CertificateStatusRequest(::gnu::javax::net::ssl::provider::CertificateStatusType *, ::java::util::List *, JArray< jbyte > *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::gnu::javax::net::ssl::provider::CertificateStatusType * statusType(); + virtual jint size(); + virtual JArray< jbyte > * responderId(jint); + virtual JArray< jbyte > * requestExtensions(); + virtual void setStatusType(::gnu::javax::net::ssl::provider::CertificateStatusType *); + virtual void setRequestIdListLength(jint); + virtual void putRequestId(jint, JArray< jbyte > *); + virtual void setRequestExtensions(jint, JArray< jbyte > *); + virtual ::java::util::Iterator * iterator(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::Extension$Value)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateStatusRequest__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateStatusType.h b/libjava/gnu/javax/net/ssl/provider/CertificateStatusType.h new file mode 100644 index 00000000000..fedeebe1614 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateStatusType.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateStatusType__ +#define __gnu_javax_net_ssl_provider_CertificateStatusType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateStatusType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CertificateStatusType : public ::java::lang::Enum +{ + + CertificateStatusType(::java::lang::String *, jint, jint); +public: + static JArray< ::gnu::javax::net::ssl::provider::CertificateStatusType * > * values(); + static ::gnu::javax::net::ssl::provider::CertificateStatusType * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::CertificateStatusType * OCSP; + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; +private: + static JArray< ::gnu::javax::net::ssl::provider::CertificateStatusType * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateStatusType__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateType.h b/libjava/gnu/javax/net/ssl/provider/CertificateType.h new file mode 100644 index 00000000000..e7cc0f62dfe --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateType.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateType__ +#define __gnu_javax_net_ssl_provider_CertificateType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CertificateType : public ::java::lang::Enum +{ + + CertificateType(::java::lang::String *, jint, jint); +public: + static ::gnu::javax::net::ssl::provider::CertificateType * forValue(jint); + static JArray< ::gnu::javax::net::ssl::provider::CertificateType * > * values(); + static ::gnu::javax::net::ssl::provider::CertificateType * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::CertificateType * X509; + static ::gnu::javax::net::ssl::provider::CertificateType * OPEN_PGP; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::CertificateType * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateType__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateURL$CertChainType.h b/libjava/gnu/javax/net/ssl/provider/CertificateURL$CertChainType.h new file mode 100644 index 00000000000..ea65ea44522 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateURL$CertChainType.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateURL$CertChainType__ +#define __gnu_javax_net_ssl_provider_CertificateURL$CertChainType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateURL$CertChainType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CertificateURL$CertChainType : public ::java::lang::Enum +{ + + CertificateURL$CertChainType(::java::lang::String *, jint, jint); +public: + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::CertificateURL$CertChainType * > * values(); + static ::gnu::javax::net::ssl::provider::CertificateURL$CertChainType * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::CertificateURL$CertChainType * INDIVIDUAL_CERTS; + static ::gnu::javax::net::ssl::provider::CertificateURL$CertChainType * PKIPATH; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::CertificateURL$CertChainType * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateURL$CertChainType__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateURL$Iterator.h b/libjava/gnu/javax/net/ssl/provider/CertificateURL$Iterator.h new file mode 100644 index 00000000000..9809890d767 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateURL$Iterator.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateURL$Iterator__ +#define __gnu_javax_net_ssl_provider_CertificateURL$Iterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateURL; + class CertificateURL$Iterator; + class CertificateURL$URLAndOptionalHash; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CertificateURL$Iterator : public ::java::lang::Object +{ + +public: + CertificateURL$Iterator(::gnu::javax::net::ssl::provider::CertificateURL *); + virtual ::gnu::javax::net::ssl::provider::CertificateURL$URLAndOptionalHash * target$next(); + virtual jboolean hasNext(); + virtual void remove(); + virtual ::java::lang::Object * next(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; +public: // actually package-private + ::gnu::javax::net::ssl::provider::CertificateURL * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateURL$Iterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateURL$URLAndOptionalHash.h b/libjava/gnu/javax/net/ssl/provider/CertificateURL$URLAndOptionalHash.h new file mode 100644 index 00000000000..4cc2a8e2348 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateURL$URLAndOptionalHash.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateURL$URLAndOptionalHash__ +#define __gnu_javax_net_ssl_provider_CertificateURL$URLAndOptionalHash__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateURL$URLAndOptionalHash; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CertificateURL$URLAndOptionalHash : public ::java::lang::Object +{ + +public: + CertificateURL$URLAndOptionalHash(::java::nio::ByteBuffer *); + CertificateURL$URLAndOptionalHash(::java::lang::String *); + CertificateURL$URLAndOptionalHash(::java::lang::String *, JArray< jbyte > *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::lang::String * url(); + virtual jint urlLength(); + virtual ::java::nio::ByteBuffer * urlBuffer(); + virtual jboolean hashPresent(); + virtual JArray< jbyte > * sha1Hash(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateURL$URLAndOptionalHash__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateURL.h b/libjava/gnu/javax/net/ssl/provider/CertificateURL.h new file mode 100644 index 00000000000..d2eab487002 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateURL.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateURL__ +#define __gnu_javax_net_ssl_provider_CertificateURL__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateURL; + class CertificateURL$CertChainType; + class CertificateURL$URLAndOptionalHash; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CertificateURL : public ::gnu::javax::net::ssl::provider::Extension$Value +{ + +public: + CertificateURL(::java::nio::ByteBuffer *); + CertificateURL(::gnu::javax::net::ssl::provider::CertificateURL$CertChainType *, ::java::util::List *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::gnu::javax::net::ssl::provider::CertificateURL$CertChainType * type(); + virtual jint size(); + virtual ::gnu::javax::net::ssl::provider::CertificateURL$URLAndOptionalHash * get(jint); + virtual void set(jint, ::gnu::javax::net::ssl::provider::CertificateURL$URLAndOptionalHash *); + virtual void setLength(jint); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + virtual ::java::util::Iterator * iterator(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::Extension$Value)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateURL__ diff --git a/libjava/gnu/javax/net/ssl/provider/CertificateVerify.h b/libjava/gnu/javax/net/ssl/provider/CertificateVerify.h new file mode 100644 index 00000000000..e130b5c4bfa --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CertificateVerify.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CertificateVerify__ +#define __gnu_javax_net_ssl_provider_CertificateVerify__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateVerify; + class SignatureAlgorithm; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CertificateVerify : public ::gnu::javax::net::ssl::provider::Signature +{ + +public: + CertificateVerify(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *); + CertificateVerify(JArray< jbyte > *, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CertificateVerify__ diff --git a/libjava/gnu/javax/net/ssl/provider/CipherAlgorithm.h b/libjava/gnu/javax/net/ssl/provider/CipherAlgorithm.h new file mode 100644 index 00000000000..54395bdb678 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CipherAlgorithm.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CipherAlgorithm__ +#define __gnu_javax_net_ssl_provider_CipherAlgorithm__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherAlgorithm; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CipherAlgorithm : public ::java::lang::Enum +{ + + CipherAlgorithm(::java::lang::String *, jint); +public: + static JArray< ::gnu::javax::net::ssl::provider::CipherAlgorithm * > * values(); + static ::gnu::javax::net::ssl::provider::CipherAlgorithm * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::CipherAlgorithm * NULL; + static ::gnu::javax::net::ssl::provider::CipherAlgorithm * RC4; + static ::gnu::javax::net::ssl::provider::CipherAlgorithm * DES; + static ::gnu::javax::net::ssl::provider::CipherAlgorithm * DESede; + static ::gnu::javax::net::ssl::provider::CipherAlgorithm * CAST5; + static ::gnu::javax::net::ssl::provider::CipherAlgorithm * AES; +private: + static JArray< ::gnu::javax::net::ssl::provider::CipherAlgorithm * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CipherAlgorithm__ diff --git a/libjava/gnu/javax/net/ssl/provider/CipherSuite.h b/libjava/gnu/javax/net/ssl/provider/CipherSuite.h new file mode 100644 index 00000000000..511b6de6596 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CipherSuite.h @@ -0,0 +1,145 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CipherSuite__ +#define __gnu_javax_net_ssl_provider_CipherSuite__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherAlgorithm; + class CipherSuite; + class KeyExchangeAlgorithm; + class MacAlgorithm; + class ProtocolVersion; + class SignatureAlgorithm; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace crypto + { + class Cipher; + class Mac; + } + } +} + +class gnu::javax::net::ssl::provider::CipherSuite : public ::java::lang::Object +{ + + CipherSuite(::gnu::javax::net::ssl::provider::CipherAlgorithm *, ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm *, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *, ::gnu::javax::net::ssl::provider::MacAlgorithm *, jint, jint, jint, ::java::lang::String *); + CipherSuite(::gnu::javax::net::ssl::provider::CipherAlgorithm *, ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm *, jboolean, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *, ::gnu::javax::net::ssl::provider::MacAlgorithm *, jint, jint, jint, ::java::lang::String *); + CipherSuite(JArray< jbyte > *); +public: + static ::gnu::javax::net::ssl::provider::CipherSuite * forName(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::CipherSuite * forValue(jshort); + static ::java::util::List * availableSuiteNames(); + ::gnu::javax::net::ssl::provider::CipherAlgorithm * cipherAlgorithm(); + ::javax::crypto::Cipher * cipher(); + ::gnu::javax::net::ssl::provider::MacAlgorithm * macAlgorithm(); + ::javax::crypto::Mac * mac(::gnu::javax::net::ssl::provider::ProtocolVersion *); + ::gnu::javax::net::ssl::provider::SignatureAlgorithm * signatureAlgorithm(); + ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * keyExchangeAlgorithm(); + jboolean isEphemeralDH(); + jint length(); + void write(::java::io::OutputStream *); + void put(::java::nio::ByteBuffer *); + ::gnu::javax::net::ssl::provider::CipherSuite * resolve(); + jboolean isResolved(); + jint keyLength(); + jboolean isExportable(); + jboolean isStreamCipher(); + JArray< jbyte > * id(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + ::java::lang::String * toString(::java::lang::String *); + ::java::lang::String * toString(); +private: + static ::java::util::List * tlsSuiteNames; + static ::java::util::HashMap * namesToSuites; +public: + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_NULL_WITH_NULL_NULL; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_NULL_MD5; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_NULL_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_EXPORT_WITH_RC4_40_MD5; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_RC4_128_MD5; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_RC4_128_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_EXPORT_WITH_DES40_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_DES_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_DSS_WITH_DES_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_RSA_WITH_DES_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_DSS_WITH_DES_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_RSA_WITH_DES_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_DSS_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_RSA_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_DSS_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_RSA_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_WITH_AES_256_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_DSS_WITH_AES_256_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DH_RSA_WITH_AES_256_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_DSS_WITH_AES_256_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_RSA_WITH_AES_256_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_PSK_WITH_RC4_128_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_PSK_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_PSK_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_PSK_WITH_AES_256_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_PSK_WITH_RC4_128_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_PSK_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_DHE_PSK_WITH_AES_256_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_PSK_WITH_RC4_128_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_PSK_WITH_AES_128_CBC_SHA; + static ::gnu::javax::net::ssl::provider::CipherSuite * TLS_RSA_PSK_WITH_AES_256_CBC_SHA; +private: + ::gnu::javax::net::ssl::provider::CipherAlgorithm * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cipherAlgorithm__; + ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * keyExchangeAlgorithm__; + ::gnu::javax::net::ssl::provider::SignatureAlgorithm * signatureAlgorithm__; + ::gnu::javax::net::ssl::provider::MacAlgorithm * macAlgorithm__; + jboolean ephemeralDH; + jboolean exportable; + jboolean isStream; + jint keyLength__; + JArray< jbyte > * id__; + ::java::lang::String * name; + jboolean isResolved__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CipherSuite__ diff --git a/libjava/gnu/javax/net/ssl/provider/CipherSuiteList$Iterator.h b/libjava/gnu/javax/net/ssl/provider/CipherSuiteList$Iterator.h new file mode 100644 index 00000000000..0d206f0a93e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CipherSuiteList$Iterator.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CipherSuiteList$Iterator__ +#define __gnu_javax_net_ssl_provider_CipherSuiteList$Iterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class CipherSuiteList; + class CipherSuiteList$Iterator; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CipherSuiteList$Iterator : public ::java::lang::Object +{ + +public: // actually package-private + CipherSuiteList$Iterator(::gnu::javax::net::ssl::provider::CipherSuiteList *); +public: + virtual void target$add(::gnu::javax::net::ssl::provider::CipherSuite *); + virtual jboolean hasNext(); + virtual jboolean hasPrevious(); + virtual ::gnu::javax::net::ssl::provider::CipherSuite * target$next(); + virtual jint nextIndex(); + virtual ::gnu::javax::net::ssl::provider::CipherSuite * target$previous(); + virtual jint previousIndex(); + virtual void remove(); + virtual void target$set(::gnu::javax::net::ssl::provider::CipherSuite *); + virtual ::java::lang::Object * next(); + virtual ::java::lang::Object * previous(); + virtual void add(::java::lang::Object *); + virtual void set(::java::lang::Object *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) modCount; + jint index; +public: // actually package-private + ::gnu::javax::net::ssl::provider::CipherSuiteList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CipherSuiteList$Iterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/CipherSuiteList.h b/libjava/gnu/javax/net/ssl/provider/CipherSuiteList.h new file mode 100644 index 00000000000..3262080aacc --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CipherSuiteList.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CipherSuiteList__ +#define __gnu_javax_net_ssl_provider_CipherSuiteList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class CipherSuiteList; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CipherSuiteList : public ::java::lang::Object +{ + +public: + CipherSuiteList(::java::nio::ByteBuffer *); + CipherSuiteList(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + jint size(); + ::gnu::javax::net::ssl::provider::CipherSuite * get(jint); + void put(jint, ::gnu::javax::net::ssl::provider::CipherSuite *); + void setSize(jint); + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); + jboolean equals(::java::lang::Object *); + ::java::util::Iterator * iterator(); +public: // actually package-private + static jint access$0(::gnu::javax::net::ssl::provider::CipherSuiteList *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::gnu::javax::net::ssl::provider::ProtocolVersion * version; + jint modCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CipherSuiteList__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList$Iterator.h b/libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList$Iterator.h new file mode 100644 index 00000000000..215e4b38832 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList$Iterator.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientCertificateTypeList$Iterator__ +#define __gnu_javax_net_ssl_provider_ClientCertificateTypeList$Iterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateRequest$ClientCertificateType; + class ClientCertificateTypeList; + class ClientCertificateTypeList$Iterator; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ClientCertificateTypeList$Iterator : public ::java::lang::Object +{ + +public: // actually package-private + ClientCertificateTypeList$Iterator(::gnu::javax::net::ssl::provider::ClientCertificateTypeList *); +public: + virtual void target$add(::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType *); + virtual jboolean hasNext(); + virtual jboolean hasPrevious(); + virtual ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * target$next(); + virtual jint nextIndex(); + virtual ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * target$previous(); + virtual jint previousIndex(); + virtual void remove(); + virtual void target$set(::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType *); + virtual ::java::lang::Object * next(); + virtual ::java::lang::Object * previous(); + virtual void add(::java::lang::Object *); + virtual void set(::java::lang::Object *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; + jint modCount; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ClientCertificateTypeList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientCertificateTypeList$Iterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList.h b/libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList.h new file mode 100644 index 00000000000..975b227780f --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientCertificateTypeList.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientCertificateTypeList__ +#define __gnu_javax_net_ssl_provider_ClientCertificateTypeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateRequest$ClientCertificateType; + class ClientCertificateTypeList; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientCertificateTypeList : public ::java::lang::Object +{ + +public: + ClientCertificateTypeList(::java::nio::ByteBuffer *); + virtual jint size(); + virtual ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType * get(jint); + virtual ::java::util::Iterator * iterator(); + virtual void put(jint, ::gnu::javax::net::ssl::provider::CertificateRequest$ClientCertificateType *); + virtual void setSize(jint); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); +public: // actually package-private + static jint access$0(::gnu::javax::net::ssl::provider::ClientCertificateTypeList *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + jint modCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientCertificateTypeList__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.h b/libjava/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.h new file mode 100644 index 00000000000..bd4fd8827ce --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientDHE_PSKParameters__ +#define __gnu_javax_net_ssl_provider_ClientDHE_PSKParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientDHE_PSKParameters; + class ClientDiffieHellmanPublic; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientDHE_PSKParameters : public ::gnu::javax::net::ssl::provider::ExchangeKeys +{ + +public: + ClientDHE_PSKParameters(::java::nio::ByteBuffer *); + ClientDHE_PSKParameters(::java::lang::String *, ::gnu::javax::net::ssl::provider::ClientDiffieHellmanPublic *); + virtual ::java::nio::ByteBuffer * buffer(); +private: + jint identityLength(); +public: + virtual ::java::lang::String * identity(); + virtual jint length(); + virtual ::gnu::javax::net::ssl::provider::ClientDiffieHellmanPublic * params(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientDHE_PSKParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.h b/libjava/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.h new file mode 100644 index 00000000000..77bd040bd2d --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientDiffieHellmanPublic__ +#define __gnu_javax_net_ssl_provider_ClientDiffieHellmanPublic__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientDiffieHellmanPublic; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientDiffieHellmanPublic : public ::gnu::javax::net::ssl::provider::ExchangeKeys +{ + +public: + ClientDiffieHellmanPublic(::java::nio::ByteBuffer *); + ClientDiffieHellmanPublic(::java::math::BigInteger *); +private: + static ::java::nio::ByteBuffer * wrap(::java::math::BigInteger *); +public: + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::math::BigInteger * publicValue(); + virtual void setPublicValue(::java::math::BigInteger *); + virtual jint length(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientDiffieHellmanPublic__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.h b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.h new file mode 100644 index 00000000000..dc42fab4fc3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHandshake$CertLoader__ +#define __gnu_javax_net_ssl_provider_ClientHandshake$CertLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHandshake; + class ClientHandshake$CertLoader; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ClientHandshake$CertLoader : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ClientHandshake$CertLoader(::gnu::javax::net::ssl::provider::ClientHandshake *, ::java::util::List *, ::java::util::List *); +public: + virtual void implRun(); +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) keyTypes; + ::java::util::List * issuers; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ClientHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHandshake$CertLoader__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.h b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.h new file mode 100644 index 00000000000..8f33e96dd52 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHandshake$ClientDHGen__ +#define __gnu_javax_net_ssl_provider_ClientHandshake$ClientDHGen__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHandshake; + class ClientHandshake$ClientDHGen; + } + } + } + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPublicKey; + } + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class gnu::javax::net::ssl::provider::ClientHandshake$ClientDHGen : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ClientHandshake$ClientDHGen(::gnu::javax::net::ssl::provider::ClientHandshake *, ::javax::crypto::interfaces::DHPublicKey *, ::javax::crypto::spec::DHParameterSpec *, jboolean); +public: + virtual void implRun(); +public: // actually package-private + virtual ::javax::crypto::interfaces::DHPublicKey * serverKey(); +private: + ::javax::crypto::interfaces::DHPublicKey * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) serverKey__; + ::javax::crypto::spec::DHParameterSpec * params; + jboolean full; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ClientHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHandshake$ClientDHGen__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.h b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.h new file mode 100644 index 00000000000..4c4e8f18bc9 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHandshake$GenCertVerify__ +#define __gnu_javax_net_ssl_provider_ClientHandshake$GenCertVerify__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHandshake; + class ClientHandshake$GenCertVerify; + } + } + } + } + } + namespace java + { + namespace security + { + class MessageDigest; + } + } +} + +class gnu::javax::net::ssl::provider::ClientHandshake$GenCertVerify : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ClientHandshake$GenCertVerify(::gnu::javax::net::ssl::provider::ClientHandshake *, ::java::security::MessageDigest *, ::java::security::MessageDigest *); +public: + virtual void implRun(); +public: // actually package-private + virtual JArray< jbyte > * signed$(); +private: + ::java::security::MessageDigest * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) md5; + ::java::security::MessageDigest * sha; + JArray< jbyte > * signed$__; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ClientHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHandshake$GenCertVerify__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.h b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.h new file mode 100644 index 00000000000..d1830a03bc2 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHandshake$ParamsVerifier__ +#define __gnu_javax_net_ssl_provider_ClientHandshake$ParamsVerifier__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHandshake; + class ClientHandshake$ParamsVerifier; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientHandshake$ParamsVerifier : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ClientHandshake$ParamsVerifier(::gnu::javax::net::ssl::provider::ClientHandshake *, ::java::nio::ByteBuffer *, JArray< jbyte > *); +public: + virtual void implRun(); +public: // actually package-private + virtual jboolean verified(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) paramsBuffer; + JArray< jbyte > * signature; + jboolean verified__; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ClientHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHandshake$ParamsVerifier__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.h b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.h new file mode 100644 index 00000000000..02cde17b3e3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHandshake$RSAGen__ +#define __gnu_javax_net_ssl_provider_ClientHandshake$RSAGen__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHandshake; + class ClientHandshake$RSAGen; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ClientHandshake$RSAGen : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ClientHandshake$RSAGen(::gnu::javax::net::ssl::provider::ClientHandshake *); + ClientHandshake$RSAGen(::gnu::javax::net::ssl::provider::ClientHandshake *, jboolean); +public: + virtual void implRun(); +public: // actually package-private + virtual JArray< jbyte > * encryptedSecret(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) encryptedPreMasterSecret; + jboolean full; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ClientHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHandshake$RSAGen__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHandshake$State.h b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$State.h new file mode 100644 index 00000000000..26e93469047 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHandshake$State.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHandshake$State__ +#define __gnu_javax_net_ssl_provider_ClientHandshake$State__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHandshake$State; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ClientHandshake$State : public ::java::lang::Enum +{ + + ClientHandshake$State(::java::lang::String *, jint, jboolean, jboolean); +public: // actually package-private + jboolean isReadState(); + jboolean isWriteState(); +public: + static JArray< ::gnu::javax::net::ssl::provider::ClientHandshake$State * > * values(); + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * WRITE_CLIENT_HELLO; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * READ_SERVER_HELLO; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * READ_CERTIFICATE; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * READ_SERVER_KEY_EXCHANGE; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * READ_CERTIFICATE_REQUEST; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * READ_SERVER_HELLO_DONE; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * WRITE_CERTIFICATE; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * WRITE_CLIENT_KEY_EXCHANGE; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * WRITE_CERTIFICATE_VERIFY; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * WRITE_FINISHED; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * READ_FINISHED; + static ::gnu::javax::net::ssl::provider::ClientHandshake$State * DONE; +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Enum)))) isWriteState__; + jboolean isReadState__; + static JArray< ::gnu::javax::net::ssl::provider::ClientHandshake$State * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHandshake$State__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHandshake.h b/libjava/gnu/javax/net/ssl/provider/ClientHandshake.h new file mode 100644 index 00000000000..ad331b85d3a --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHandshake.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHandshake__ +#define __gnu_javax_net_ssl_provider_ClientHandshake__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class AbstractHandshake$CertVerifier; + class ClientHandshake; + class ClientHandshake$CertLoader; + class ClientHandshake$GenCertVerify; + class ClientHandshake$ParamsVerifier; + class ClientHandshake$State; + class DelegatedTask; + class MaxFragmentLength; + class ProtocolVersion; + class SSLEngineImpl; + class SessionImpl; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class KeyPair; + class PrivateKey; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngineResult$HandshakeStatus; + } + } + } +} + +class gnu::javax::net::ssl::provider::ClientHandshake : public ::gnu::javax::net::ssl::provider::AbstractHandshake +{ + +public: + ClientHandshake(::gnu::javax::net::ssl::provider::SSLEngineImpl *); +public: // actually protected + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleInput(); + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleOutput(::java::nio::ByteBuffer *); +public: // actually package-private + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * status(); + virtual void checkKeyExchange(); + virtual void handleV2Hello(::java::nio::ByteBuffer *); +private: + ::gnu::javax::net::ssl::provider::ProtocolVersion * chooseVersion(); + ::java::util::List * getSuites(); + ::java::util::List * getCompressionMethods(); + jboolean enableExtensions(); + ::gnu::javax::net::ssl::provider::MaxFragmentLength * maxFragmentLength(); + jboolean truncatedHMac(); + ::java::lang::String * getPSKIdentity(); +public: // actually package-private + static ::gnu::javax::net::ssl::provider::ClientHandshake$ParamsVerifier * access$0(::gnu::javax::net::ssl::provider::ClientHandshake *); + static void access$1(::gnu::javax::net::ssl::provider::ClientHandshake *, ::java::security::KeyPair *); + static ::java::security::KeyPair * access$2(::gnu::javax::net::ssl::provider::ClientHandshake *); + static void access$3(::gnu::javax::net::ssl::provider::ClientHandshake *, ::java::lang::String *); + static ::java::lang::String * access$4(::gnu::javax::net::ssl::provider::ClientHandshake *); + static void access$5(::gnu::javax::net::ssl::provider::ClientHandshake *, ::java::security::PrivateKey *); + static ::gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier * access$6(::gnu::javax::net::ssl::provider::ClientHandshake *); + static ::gnu::javax::net::ssl::provider::ProtocolVersion * access$7(::gnu::javax::net::ssl::provider::ClientHandshake *); + static ::java::security::PrivateKey * access$8(::gnu::javax::net::ssl::provider::ClientHandshake *); + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Extension$Type(); + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$ClientHandshake$State(); +private: + ::gnu::javax::net::ssl::provider::ClientHandshake$State * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::AbstractHandshake)))) state; + ::java::nio::ByteBuffer * outBuffer; + jboolean continuedSession; + ::gnu::javax::net::ssl::provider::SessionImpl * continued; + ::java::security::KeyPair * dhPair; + ::java::lang::String * keyAlias; + ::java::security::PrivateKey * privateKey; + ::gnu::javax::net::ssl::provider::MaxFragmentLength * maxFragmentLengthSent; + jboolean truncatedHMacSent; + ::gnu::javax::net::ssl::provider::ProtocolVersion * sentVersion; + ::gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier * certVerifier; + ::gnu::javax::net::ssl::provider::ClientHandshake$ParamsVerifier * paramsVerifier; + ::gnu::javax::net::ssl::provider::DelegatedTask * keyExchange; + ::gnu::javax::net::ssl::provider::ClientHandshake$CertLoader * certLoader; + ::gnu::javax::net::ssl::provider::ClientHandshake$GenCertVerify * genCertVerify; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Extension$Type__; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$ClientHandshake$State__; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHandshake__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHello.h b/libjava/gnu/javax/net/ssl/provider/ClientHello.h new file mode 100644 index 00000000000..a13e88264d6 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHello.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHello__ +#define __gnu_javax_net_ssl_provider_ClientHello__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuiteList; + class ClientHello; + class CompressionMethodList; + class ExtensionList; + class ProtocolVersion; + class Random; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientHello : public ::java::lang::Object +{ + +public: + ClientHello(::java::nio::ByteBuffer *); + virtual jint length(); + virtual ::gnu::javax::net::ssl::provider::ProtocolVersion * version(); + virtual ::gnu::javax::net::ssl::provider::Random * random(); + virtual JArray< jbyte > * sessionId(); + virtual ::gnu::javax::net::ssl::provider::CipherSuiteList * cipherSuites(); + virtual ::gnu::javax::net::ssl::provider::CompressionMethodList * compressionMethods(); + virtual jboolean hasExtensions(); + virtual ::gnu::javax::net::ssl::provider::ExtensionList * extensions(); + virtual jint extensionsLength(); +public: // actually protected + virtual jint getCipherSuitesOffset(); + virtual jint getCompressionMethodsOffset(); + virtual jint getExtensionsOffset(); +public: + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +public: // actually protected + static const jint RANDOM_OFFSET = 2; + static const jint SESSID_OFFSET = 34; + static const jint SESSID_OFFSET2 = 35; + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + jboolean disableExtensions; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHello__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHelloBuilder.h b/libjava/gnu/javax/net/ssl/provider/ClientHelloBuilder.h new file mode 100644 index 00000000000..cfc33f19bb3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHelloBuilder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHelloBuilder__ +#define __gnu_javax_net_ssl_provider_ClientHelloBuilder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHelloBuilder; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientHelloBuilder : public ::gnu::javax::net::ssl::provider::ClientHello +{ + +public: + ClientHelloBuilder(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual void setVersion(::gnu::javax::net::ssl::provider::ProtocolVersion *); + virtual void setSessionId(JArray< jbyte > *); + virtual void setSessionId(JArray< jbyte > *, jint, jint); + virtual void setCipherSuites(::java::util::List *); + virtual void setCompressionMethods(::java::util::List *); + virtual void setExtensionsLength(jint); + virtual void setExtensions(::java::nio::ByteBuffer *); + virtual void setDisableExtensions(jboolean); + virtual void ensureCapacity(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHelloBuilder__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientHelloV2.h b/libjava/gnu/javax/net/ssl/provider/ClientHelloV2.h new file mode 100644 index 00000000000..75831abbd62 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientHelloV2.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientHelloV2__ +#define __gnu_javax_net_ssl_provider_ClientHelloV2__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientHelloV2; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientHelloV2 : public ::java::lang::Object +{ + +public: // actually package-private + ClientHelloV2(::java::nio::ByteBuffer *); +public: + virtual jint length(); +public: // actually package-private + virtual ::gnu::javax::net::ssl::provider::ProtocolVersion * version(); + virtual jint cipherSpecsLength(); + virtual jint sessionIdLength(); + virtual jint challengeLength(); +public: + virtual ::java::util::List * cipherSpecs(); +public: // actually package-private + virtual JArray< jbyte > * sessionId(); + virtual JArray< jbyte > * challenge(); +public: + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientHelloV2__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientKeyExchange.h b/libjava/gnu/javax/net/ssl/provider/ClientKeyExchange.h new file mode 100644 index 00000000000..1ab6b2e4039 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientKeyExchange.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientKeyExchange__ +#define __gnu_javax_net_ssl_provider_ClientKeyExchange__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class ClientKeyExchange; + class ExchangeKeys; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientKeyExchange : public ::java::lang::Object +{ + +public: + ClientKeyExchange(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::CipherSuite *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + virtual ::gnu::javax::net::ssl::provider::ExchangeKeys * exchangeKeys(); + virtual jint length(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +public: // actually protected + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::gnu::javax::net::ssl::provider::CipherSuite * suite; + ::gnu::javax::net::ssl::provider::ProtocolVersion * version; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientKeyExchange__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.h b/libjava/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.h new file mode 100644 index 00000000000..eb2b8f3e073 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientKeyExchangeBuilder__ +#define __gnu_javax_net_ssl_provider_ClientKeyExchangeBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class ClientKeyExchangeBuilder; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientKeyExchangeBuilder : public ::gnu::javax::net::ssl::provider::ClientKeyExchange +{ + +public: + ClientKeyExchangeBuilder(::gnu::javax::net::ssl::provider::CipherSuite *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + virtual ::java::nio::ByteBuffer * buffer(); + virtual void setExchangeKeys(::java::nio::ByteBuffer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientKeyExchangeBuilder__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientPSKParameters.h b/libjava/gnu/javax/net/ssl/provider/ClientPSKParameters.h new file mode 100644 index 00000000000..539743240b7 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientPSKParameters.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientPSKParameters__ +#define __gnu_javax_net_ssl_provider_ClientPSKParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientPSKParameters; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientPSKParameters : public ::gnu::javax::net::ssl::provider::ExchangeKeys +{ + +public: + ClientPSKParameters(::java::nio::ByteBuffer *); + ClientPSKParameters(::java::lang::String *); + virtual ::java::nio::ByteBuffer * buffer(); + virtual jint length(); + virtual ::java::lang::String * identity(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientPSKParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.h b/libjava/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.h new file mode 100644 index 00000000000..65314311772 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ClientRSA_PSKParameters__ +#define __gnu_javax_net_ssl_provider_ClientRSA_PSKParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ClientRSA_PSKParameters; + class EncryptedPreMasterSecret; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ClientRSA_PSKParameters : public ::gnu::javax::net::ssl::provider::ExchangeKeys +{ + +public: + ClientRSA_PSKParameters(::java::nio::ByteBuffer *); + ClientRSA_PSKParameters(::java::lang::String *, ::java::nio::ByteBuffer *); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::lang::String * identity(); +private: + jint identityLength(); +public: + virtual jint length(); + virtual ::gnu::javax::net::ssl::provider::EncryptedPreMasterSecret * secret(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ClientRSA_PSKParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/CompressionMethod.h b/libjava/gnu/javax/net/ssl/provider/CompressionMethod.h new file mode 100644 index 00000000000..c8a2c1e37a2 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CompressionMethod.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CompressionMethod__ +#define __gnu_javax_net_ssl_provider_CompressionMethod__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CompressionMethod; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CompressionMethod : public ::java::lang::Enum +{ + + CompressionMethod(::java::lang::String *, jint, jint); +public: + static ::gnu::javax::net::ssl::provider::CompressionMethod * getInstance(jint); + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::CompressionMethod * > * values(); + static ::gnu::javax::net::ssl::provider::CompressionMethod * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::CompressionMethod * NULL; + static ::gnu::javax::net::ssl::provider::CompressionMethod * ZLIB; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::CompressionMethod * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CompressionMethod__ diff --git a/libjava/gnu/javax/net/ssl/provider/CompressionMethodList$Iterator.h b/libjava/gnu/javax/net/ssl/provider/CompressionMethodList$Iterator.h new file mode 100644 index 00000000000..44519e1903e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CompressionMethodList$Iterator.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CompressionMethodList$Iterator__ +#define __gnu_javax_net_ssl_provider_CompressionMethodList$Iterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CompressionMethod; + class CompressionMethodList; + class CompressionMethodList$Iterator; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::CompressionMethodList$Iterator : public ::java::lang::Object +{ + +public: // actually package-private + CompressionMethodList$Iterator(::gnu::javax::net::ssl::provider::CompressionMethodList *); +public: + virtual void target$add(::gnu::javax::net::ssl::provider::CompressionMethod *); + virtual jboolean hasNext(); + virtual jboolean hasPrevious(); + virtual ::gnu::javax::net::ssl::provider::CompressionMethod * target$next(); + virtual jint nextIndex(); + virtual ::gnu::javax::net::ssl::provider::CompressionMethod * target$previous(); + virtual jint previousIndex(); + virtual void remove(); + virtual void target$set(::gnu::javax::net::ssl::provider::CompressionMethod *); + virtual ::java::lang::Object * next(); + virtual ::java::lang::Object * previous(); + virtual void add(::java::lang::Object *); + virtual void set(::java::lang::Object *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; + jint modCount; +public: // actually package-private + ::gnu::javax::net::ssl::provider::CompressionMethodList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CompressionMethodList$Iterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/CompressionMethodList.h b/libjava/gnu/javax/net/ssl/provider/CompressionMethodList.h new file mode 100644 index 00000000000..5e1addba4fd --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/CompressionMethodList.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_CompressionMethodList__ +#define __gnu_javax_net_ssl_provider_CompressionMethodList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CompressionMethod; + class CompressionMethodList; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::CompressionMethodList : public ::java::lang::Object +{ + +public: + CompressionMethodList(::java::nio::ByteBuffer *); + jint size(); + ::gnu::javax::net::ssl::provider::CompressionMethod * get(jint); + void put(jint, ::gnu::javax::net::ssl::provider::CompressionMethod *); + void setSize(jint); + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); + jboolean equals(::java::lang::Object *); + ::java::util::Iterator * iterator(); +public: // actually package-private + static jint access$0(::gnu::javax::net::ssl::provider::CompressionMethodList *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + jint modCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_CompressionMethodList__ diff --git a/libjava/gnu/javax/net/ssl/provider/Constructed.h b/libjava/gnu/javax/net/ssl/provider/Constructed.h new file mode 100644 index 00000000000..d5b527fc944 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Constructed.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Constructed__ +#define __gnu_javax_net_ssl_provider_Constructed__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Constructed; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Constructed : public ::java::lang::Object +{ + +public: + virtual jint length() = 0; + virtual ::java::lang::String * toString(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_provider_Constructed__ diff --git a/libjava/gnu/javax/net/ssl/provider/ContentType.h b/libjava/gnu/javax/net/ssl/provider/ContentType.h new file mode 100644 index 00000000000..4f3067b710b --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ContentType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ContentType__ +#define __gnu_javax_net_ssl_provider_ContentType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ContentType : public ::java::lang::Enum +{ + + ContentType(::java::lang::String *, jint, jint); +public: // actually package-private + static ::gnu::javax::net::ssl::provider::ContentType * forInteger(jint); +public: + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::ContentType * > * values(); + static ::gnu::javax::net::ssl::provider::ContentType * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::ContentType * CLIENT_HELLO_V2; + static ::gnu::javax::net::ssl::provider::ContentType * CHANGE_CIPHER_SPEC; + static ::gnu::javax::net::ssl::provider::ContentType * ALERT; + static ::gnu::javax::net::ssl::provider::ContentType * HANDSHAKE; + static ::gnu::javax::net::ssl::provider::ContentType * APPLICATION_DATA; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::ContentType * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ContentType__ diff --git a/libjava/gnu/javax/net/ssl/provider/Context.h b/libjava/gnu/javax/net/ssl/provider/Context.h new file mode 100644 index 00000000000..b6a838db819 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Context.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Context__ +#define __gnu_javax_net_ssl_provider_Context__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SRPTrustManager; + namespace provider + { + class Context; + class SessionContext; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class SSLServerSocketFactory; + class SSLSessionContext; + class SSLSocketFactory; + class TrustManager; + class X509KeyManager; + class X509TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::Context : public ::javax::net::ssl::SSLContextSpi +{ + +public: + Context(); +public: // actually protected + ::javax::net::ssl::SSLSessionContext * engineGetClientSessionContext(); + ::javax::net::ssl::SSLSessionContext * engineGetServerSessionContext(); + ::javax::net::ssl::SSLServerSocketFactory * engineGetServerSocketFactory(); + ::javax::net::ssl::SSLSocketFactory * engineGetSocketFactory(); + void engineInit(JArray< ::javax::net::ssl::KeyManager * > *, JArray< ::javax::net::ssl::TrustManager * > *, ::java::security::SecureRandom *); +private: + ::javax::net::ssl::X509KeyManager * defaultKeyManager(); + ::javax::net::ssl::X509TrustManager * defaultTrustManager(); + ::java::security::SecureRandom * defaultRandom(); + ::gnu::javax::net::ssl::provider::SessionContext * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLContextSpi)))) clientSessions; + ::gnu::javax::net::ssl::provider::SessionContext * serverSessions; + ::javax::net::ssl::X509KeyManager * keyManager; + ::javax::net::ssl::X509TrustManager * trustManager; + ::gnu::javax::net::ssl::SRPTrustManager * srpTrustManager; + ::java::security::SecureRandom * random; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Context__ diff --git a/libjava/gnu/javax/net/ssl/provider/Debug.h b/libjava/gnu/javax/net/ssl/provider/Debug.h new file mode 100644 index 00000000000..6421a67480a --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Debug.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Debug__ +#define __gnu_javax_net_ssl_provider_Debug__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Debug; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Debug : public ::java::lang::Object +{ + +public: + Debug(); + static const jboolean DEBUG = 1; + static const jboolean DEBUG_KEY_EXCHANGE = 1; + static const jboolean DEBUG_DECRYPTION = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Debug__ diff --git a/libjava/gnu/javax/net/ssl/provider/DelegatedTask.h b/libjava/gnu/javax/net/ssl/provider/DelegatedTask.h new file mode 100644 index 00000000000..72debfc8a1c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/DelegatedTask.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_DelegatedTask__ +#define __gnu_javax_net_ssl_provider_DelegatedTask__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class DelegatedTask; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::DelegatedTask : public ::java::lang::Object +{ + +public: // actually protected + DelegatedTask(); +public: + virtual void run(); + virtual jboolean hasRun(); + virtual ::java::lang::Throwable * thrown(); +public: // actually protected + virtual void implRun() = 0; +private: + static ::gnu::classpath::debug::SystemLogger * logger; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) hasRun__; +public: // actually protected + ::java::lang::Throwable * thrown__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_DelegatedTask__ diff --git a/libjava/gnu/javax/net/ssl/provider/DiffieHellman.h b/libjava/gnu/javax/net/ssl/provider/DiffieHellman.h new file mode 100644 index 00000000000..6f85801b886 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/DiffieHellman.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_DiffieHellman__ +#define __gnu_javax_net_ssl_provider_DiffieHellman__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace key + { + namespace dh + { + class GnuDHPrivateKey; + } + } + } + namespace net + { + namespace ssl + { + namespace provider + { + class DiffieHellman; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::net::ssl::provider::DiffieHellman : public ::java::lang::Object +{ + +public: // actually package-private + DiffieHellman(); + static ::gnu::javax::crypto::key::dh::GnuDHPrivateKey * getParams(); + static ::java::math::BigInteger * DH_G; + static ::java::math::BigInteger * GROUP_1; + static ::java::math::BigInteger * GROUP_2; + static ::java::math::BigInteger * GROUP_5; + static ::java::math::BigInteger * GROUP_14; + static ::java::math::BigInteger * GROUP_15; + static ::java::math::BigInteger * GROUP_16; + static ::java::math::BigInteger * GROUP_17; + static ::java::math::BigInteger * GROUP_18; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_DiffieHellman__ diff --git a/libjava/gnu/javax/net/ssl/provider/DigestInputStream.h b/libjava/gnu/javax/net/ssl/provider/DigestInputStream.h new file mode 100644 index 00000000000..15436a6a114 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/DigestInputStream.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_DigestInputStream__ +#define __gnu_javax_net_ssl_provider_DigestInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class DigestInputStream; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::DigestInputStream : public ::java::io::FilterInputStream +{ + +public: // actually package-private + DigestInputStream(::java::io::InputStream *, ::gnu::java::security::hash::IMessageDigest *, ::gnu::java::security::hash::IMessageDigest *); + void setDigesting(jboolean); +public: + jint read(); + jint read(JArray< jbyte > *); + jint read(JArray< jbyte > *, jint, jint); +private: + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) md5; + ::gnu::java::security::hash::IMessageDigest * sha; + jboolean digesting; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_DigestInputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/DigestOutputStream.h b/libjava/gnu/javax/net/ssl/provider/DigestOutputStream.h new file mode 100644 index 00000000000..0b7010448b5 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/DigestOutputStream.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_DigestOutputStream__ +#define __gnu_javax_net_ssl_provider_DigestOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class DigestOutputStream; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::DigestOutputStream : public ::java::io::FilterOutputStream +{ + +public: // actually package-private + DigestOutputStream(::java::io::OutputStream *, ::gnu::java::security::hash::IMessageDigest *, ::gnu::java::security::hash::IMessageDigest *); + void setDigesting(jboolean); +public: + void write(jint); + void write(JArray< jbyte > *); + void write(JArray< jbyte > *, jint, jint); +private: + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) md5; + ::gnu::java::security::hash::IMessageDigest * sha; + jboolean digesting; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_DigestOutputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/EmptyExchangeKeys.h b/libjava/gnu/javax/net/ssl/provider/EmptyExchangeKeys.h new file mode 100644 index 00000000000..5459775ab35 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/EmptyExchangeKeys.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_EmptyExchangeKeys__ +#define __gnu_javax_net_ssl_provider_EmptyExchangeKeys__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class EmptyExchangeKeys; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::EmptyExchangeKeys : public ::gnu::javax::net::ssl::provider::ExchangeKeys +{ + +public: + EmptyExchangeKeys(); + virtual jint length(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_EmptyExchangeKeys__ diff --git a/libjava/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.h b/libjava/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.h new file mode 100644 index 00000000000..ae9382142c3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_EncryptedPreMasterSecret__ +#define __gnu_javax_net_ssl_provider_EncryptedPreMasterSecret__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class EncryptedPreMasterSecret; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::EncryptedPreMasterSecret : public ::gnu::javax::net::ssl::provider::ExchangeKeys +{ + +public: + EncryptedPreMasterSecret(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + EncryptedPreMasterSecret(JArray< jbyte > *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + ::java::nio::ByteBuffer * buffer(); + JArray< jbyte > * encryptedSecret(); + void setEncryptedSecret(JArray< jbyte > *, jint, jint); + jint length(); + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); +private: + ::gnu::javax::net::ssl::provider::ProtocolVersion * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::ExchangeKeys)))) version; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_EncryptedPreMasterSecret__ diff --git a/libjava/gnu/javax/net/ssl/provider/Enumerated.h b/libjava/gnu/javax/net/ssl/provider/Enumerated.h new file mode 100644 index 00000000000..db5083168f4 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Enumerated.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Enumerated__ +#define __gnu_javax_net_ssl_provider_Enumerated__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Enumerated; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Enumerated : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * getEncoded() = 0; + virtual jint getValue() = 0; + virtual ::java::lang::String * toString() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_provider_Enumerated__ diff --git a/libjava/gnu/javax/net/ssl/provider/ExchangeKeys.h b/libjava/gnu/javax/net/ssl/provider/ExchangeKeys.h new file mode 100644 index 00000000000..8d3bbb8d6a4 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ExchangeKeys.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ExchangeKeys__ +#define __gnu_javax_net_ssl_provider_ExchangeKeys__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ExchangeKeys; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ExchangeKeys : public ::java::lang::Object +{ + +public: + ExchangeKeys(::java::nio::ByteBuffer *); + virtual jint length() = 0; + virtual ::java::lang::String * toString(::java::lang::String *) = 0; +public: // actually protected + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ExchangeKeys__ diff --git a/libjava/gnu/javax/net/ssl/provider/Extension$Type.h b/libjava/gnu/javax/net/ssl/provider/Extension$Type.h new file mode 100644 index 00000000000..dfefe3f50ff --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Extension$Type.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Extension$Type__ +#define __gnu_javax_net_ssl_provider_Extension$Type__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Extension$Type; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Extension$Type : public ::java::lang::Enum +{ + + Extension$Type(::java::lang::String *, jint, jint); +public: + static ::gnu::javax::net::ssl::provider::Extension$Type * forValue(jint); + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::Extension$Type * > * values(); + static ::gnu::javax::net::ssl::provider::Extension$Type * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::Extension$Type * SERVER_NAME; + static ::gnu::javax::net::ssl::provider::Extension$Type * MAX_FRAGMENT_LENGTH; + static ::gnu::javax::net::ssl::provider::Extension$Type * CLIENT_CERTIFICATE_URL; + static ::gnu::javax::net::ssl::provider::Extension$Type * TRUSTED_CA_KEYS; + static ::gnu::javax::net::ssl::provider::Extension$Type * TRUNCATED_HMAC; + static ::gnu::javax::net::ssl::provider::Extension$Type * STATUS_REQUEST; + static ::gnu::javax::net::ssl::provider::Extension$Type * SRP; + static ::gnu::javax::net::ssl::provider::Extension$Type * CERT_TYPE; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::Extension$Type * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Extension$Type__ diff --git a/libjava/gnu/javax/net/ssl/provider/Extension$Value.h b/libjava/gnu/javax/net/ssl/provider/Extension$Value.h new file mode 100644 index 00000000000..f00248affd6 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Extension$Value.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Extension$Value__ +#define __gnu_javax_net_ssl_provider_Extension$Value__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Extension$Value; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Extension$Value : public ::java::lang::Object +{ + +public: + Extension$Value(); + virtual ::java::nio::ByteBuffer * buffer() = 0; + virtual jint length() = 0; + virtual ::java::lang::String * toString(::java::lang::String *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Extension$Value__ diff --git a/libjava/gnu/javax/net/ssl/provider/Extension.h b/libjava/gnu/javax/net/ssl/provider/Extension.h new file mode 100644 index 00000000000..54075426166 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Extension.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Extension__ +#define __gnu_javax_net_ssl_provider_Extension__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Extension; + class Extension$Type; + class Extension$Value; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Extension : public ::java::lang::Object +{ + +public: + Extension(::java::nio::ByteBuffer *); + Extension(::gnu::javax::net::ssl::provider::Extension$Type *, ::gnu::javax::net::ssl::provider::Extension$Value *); + jint length(); + ::java::nio::ByteBuffer * buffer(); + ::gnu::javax::net::ssl::provider::Extension$Type * type(); + JArray< jbyte > * valueBytes(); + ::java::nio::ByteBuffer * valueBuffer(); + ::gnu::javax::net::ssl::provider::Extension$Value * value(); + void setLength(jint); + void setType(::gnu::javax::net::ssl::provider::Extension$Type *); + void setValue(JArray< jbyte > *); + void setValue(JArray< jbyte > *, jint, jint); + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); +public: // actually package-private + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Extension$Type(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Extension$Type__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Extension__ diff --git a/libjava/gnu/javax/net/ssl/provider/ExtensionList$ExtensionsIterator.h b/libjava/gnu/javax/net/ssl/provider/ExtensionList$ExtensionsIterator.h new file mode 100644 index 00000000000..94727465b17 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ExtensionList$ExtensionsIterator.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ExtensionList$ExtensionsIterator__ +#define __gnu_javax_net_ssl_provider_ExtensionList$ExtensionsIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Extension; + class ExtensionList; + class ExtensionList$ExtensionsIterator; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ExtensionList$ExtensionsIterator : public ::java::lang::Object +{ + +public: + ExtensionList$ExtensionsIterator(::gnu::javax::net::ssl::provider::ExtensionList *); + jboolean hasNext(); + jboolean hasPrevious(); + ::gnu::javax::net::ssl::provider::Extension * target$next(); + ::gnu::javax::net::ssl::provider::Extension * target$previous(); + jint nextIndex(); + jint previousIndex(); + void target$add(::gnu::javax::net::ssl::provider::Extension *); + void remove(); + void target$set(::gnu::javax::net::ssl::provider::Extension *); + ::java::lang::Object * next(); + ::java::lang::Object * previous(); + void add(::java::lang::Object *); + void set(::java::lang::Object *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) modCount; + jint index; + jint size; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ExtensionList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ExtensionList$ExtensionsIterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/ExtensionList.h b/libjava/gnu/javax/net/ssl/provider/ExtensionList.h new file mode 100644 index 00000000000..c4235f366fa --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ExtensionList.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ExtensionList__ +#define __gnu_javax_net_ssl_provider_ExtensionList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Extension; + class Extension$Type; + class ExtensionList; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ExtensionList : public ::java::lang::Object +{ + +public: + ExtensionList(::java::nio::ByteBuffer *); + ExtensionList(::java::util::List *); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::gnu::javax::net::ssl::provider::Extension * get(jint); + virtual jint size(); + virtual jint length(); + virtual void set(jint, ::gnu::javax::net::ssl::provider::Extension *); + virtual void set(jint, ::gnu::javax::net::ssl::provider::Extension$Type *, jint); + virtual void setLength(jint); + virtual ::java::util::Iterator * iterator(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +public: // actually package-private + static jint access$0(::gnu::javax::net::ssl::provider::ExtensionList *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; + jint modCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ExtensionList__ diff --git a/libjava/gnu/javax/net/ssl/provider/Extensions.h b/libjava/gnu/javax/net/ssl/provider/Extensions.h new file mode 100644 index 00000000000..ac8a0f16000 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Extensions.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Extensions__ +#define __gnu_javax_net_ssl_provider_Extensions__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CertificateType; + class Extension; + class Extensions; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Extensions : public ::java::lang::Object +{ + + Extensions(); +public: // actually package-private + static ::java::util::List * getServerName(::gnu::javax::net::ssl::provider::Extension *); + static ::java::util::List * getClientCertTypes(::gnu::javax::net::ssl::provider::Extension *); + static ::gnu::javax::net::ssl::provider::CertificateType * getServerCertType(::gnu::javax::net::ssl::provider::Extension *); + static ::java::lang::Integer * getMaxFragmentLength(::gnu::javax::net::ssl::provider::Extension *); + static JArray< ::java::lang::Object * > * getTrustedCA(::gnu::javax::net::ssl::provider::Extension *); + static ::java::lang::String * getSRPUsername(::gnu::javax::net::ssl::provider::Extension *); +private: + static ::java::lang::Integer * _512; + static ::java::lang::Integer * _1024; + static ::java::lang::Integer * _2048; + static ::java::lang::Integer * _4096; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Extensions__ diff --git a/libjava/gnu/javax/net/ssl/provider/Finished.h b/libjava/gnu/javax/net/ssl/provider/Finished.h new file mode 100644 index 00000000000..37e01c4c7e4 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Finished.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Finished__ +#define __gnu_javax_net_ssl_provider_Finished__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Finished; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Finished : public ::java::lang::Object +{ + +public: // actually package-private + Finished(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); +public: + jint length(); +public: // actually package-private + JArray< jbyte > * verifyData(); + JArray< jbyte > * md5Hash(); + JArray< jbyte > * shaHash(); + void setVerifyData(JArray< jbyte > *, jint); + void setMD5Hash(JArray< jbyte > *, jint); + void setShaHash(JArray< jbyte > *, jint); +public: + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::gnu::javax::net::ssl::provider::ProtocolVersion * version; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Finished__ diff --git a/libjava/gnu/javax/net/ssl/provider/GNUSecurityParameters.h b/libjava/gnu/javax/net/ssl/provider/GNUSecurityParameters.h new file mode 100644 index 00000000000..b5b2bc77483 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/GNUSecurityParameters.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_GNUSecurityParameters__ +#define __gnu_javax_net_ssl_provider_GNUSecurityParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + } + namespace mode + { + class IMode; + } + } + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + class GNUSecurityParameters; + class ProtocolVersion; + class Session; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::GNUSecurityParameters : public ::java::lang::Object +{ + +public: // actually package-private + GNUSecurityParameters(::gnu::javax::net::ssl::provider::Session *); +public: + virtual void reset(); + virtual ::gnu::javax::net::ssl::provider::ProtocolVersion * getVersion(); + virtual void setVersion(::gnu::javax::net::ssl::provider::ProtocolVersion *); + virtual void setInCipher(::java::lang::Object *); + virtual void setOutCipher(::java::lang::Object *); + virtual void setInMac(::java::lang::Object *); + virtual void setOutMac(::java::lang::Object *); + virtual void setDeflating(jboolean); + virtual void setInflating(jboolean); + virtual jint getFragmentLength(); + virtual void setFragmentLength(jint); + virtual JArray< jbyte > * decrypt(JArray< jbyte > *, ::gnu::javax::net::ssl::provider::ProtocolVersion *, ::gnu::javax::net::ssl::provider::ContentType *); + virtual JArray< jbyte > * encrypt(JArray< jbyte > *, jint, jint, ::gnu::javax::net::ssl::provider::ContentType *); +private: + static void transformRC4(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint, ::gnu::java::security::prng::IRandom *); + static const jboolean DEBUG_RECORD_LAYER = 0; + static ::java::io::PrintWriter * debug; +public: // actually package-private + ::gnu::javax::crypto::mode::IMode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) inCipher; + ::gnu::javax::crypto::mode::IMode * outCipher; + ::gnu::java::security::prng::IRandom * inRandom; + ::gnu::java::security::prng::IRandom * outRandom; + ::gnu::javax::crypto::mac::IMac * inMac; + ::gnu::javax::crypto::mac::IMac * outMac; + jlong inSequence; + jlong outSequence; + ::gnu::javax::net::ssl::provider::Session * session; + ::gnu::javax::net::ssl::provider::ProtocolVersion * version; + jint fragmentLength; +private: + ::java::util::zip::Inflater * inflater; + ::java::util::zip::Deflater * deflater; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_GNUSecurityParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/Handshake$Body.h b/libjava/gnu/javax/net/ssl/provider/Handshake$Body.h new file mode 100644 index 00000000000..8fe4e8515dc --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Handshake$Body.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Handshake$Body__ +#define __gnu_javax_net_ssl_provider_Handshake$Body__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Handshake$Body; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Handshake$Body : public ::java::lang::Object +{ + +public: + virtual jint length() = 0; + virtual ::java::lang::String * toString(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_provider_Handshake$Body__ diff --git a/libjava/gnu/javax/net/ssl/provider/Handshake$Type.h b/libjava/gnu/javax/net/ssl/provider/Handshake$Type.h new file mode 100644 index 00000000000..1296e24621e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Handshake$Type.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Handshake$Type__ +#define __gnu_javax_net_ssl_provider_Handshake$Type__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Handshake$Type; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Handshake$Type : public ::java::lang::Enum +{ + + Handshake$Type(::java::lang::String *, jint, jint); +public: + static ::gnu::javax::net::ssl::provider::Handshake$Type * forInteger(jint); + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::Handshake$Type * > * values(); + static ::gnu::javax::net::ssl::provider::Handshake$Type * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::Handshake$Type * HELLO_REQUEST; + static ::gnu::javax::net::ssl::provider::Handshake$Type * CLIENT_HELLO; + static ::gnu::javax::net::ssl::provider::Handshake$Type * SERVER_HELLO; + static ::gnu::javax::net::ssl::provider::Handshake$Type * CERTIFICATE; + static ::gnu::javax::net::ssl::provider::Handshake$Type * SERVER_KEY_EXCHANGE; + static ::gnu::javax::net::ssl::provider::Handshake$Type * CERTIFICATE_REQUEST; + static ::gnu::javax::net::ssl::provider::Handshake$Type * SERVER_HELLO_DONE; + static ::gnu::javax::net::ssl::provider::Handshake$Type * CERTIFICATE_VERIFY; + static ::gnu::javax::net::ssl::provider::Handshake$Type * CLIENT_KEY_EXCHANGE; + static ::gnu::javax::net::ssl::provider::Handshake$Type * FINISHED; + static ::gnu::javax::net::ssl::provider::Handshake$Type * CERTIFICATE_URL; + static ::gnu::javax::net::ssl::provider::Handshake$Type * CERTIFICATE_STATUS; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::Handshake$Type * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Handshake$Type__ diff --git a/libjava/gnu/javax/net/ssl/provider/Handshake$buffer.h b/libjava/gnu/javax/net/ssl/provider/Handshake$buffer.h new file mode 100644 index 00000000000..5ddb06e0cbd --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Handshake$buffer.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Handshake$buffer__ +#define __gnu_javax_net_ssl_provider_Handshake$buffer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Handshake$buffer; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Handshake$buffer : public ::java::lang::ThreadLocal +{ + + Handshake$buffer(); +public: // actually protected + virtual ::java::lang::Object * initialValue(); +public: // actually package-private + virtual ::java::io::ByteArrayOutputStream * getBuffer(); + Handshake$buffer(::gnu::javax::net::ssl::provider::Handshake$buffer *); + static const jint SIZE = 2048; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Handshake$buffer__ diff --git a/libjava/gnu/javax/net/ssl/provider/Handshake.h b/libjava/gnu/javax/net/ssl/provider/Handshake.h new file mode 100644 index 00000000000..498e377c749 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Handshake.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Handshake__ +#define __gnu_javax_net_ssl_provider_Handshake__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class Handshake; + class Handshake$Body; + class Handshake$Type; + class ProtocolVersion; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Handshake : public ::java::lang::Object +{ + +public: + Handshake(::java::nio::ByteBuffer *); + Handshake(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::CipherSuite *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + ::gnu::javax::net::ssl::provider::Handshake$Type * type(); + jint length(); + ::gnu::javax::net::ssl::provider::Handshake$Body * body(); + ::java::nio::ByteBuffer * bodyBuffer(); + void setType(::gnu::javax::net::ssl::provider::Handshake$Type *); + void setLength(jint); + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); +public: // actually package-private + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Handshake$Type(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::gnu::javax::net::ssl::provider::CipherSuite * suite; + ::gnu::javax::net::ssl::provider::ProtocolVersion * version; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Handshake$Type__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Handshake__ diff --git a/libjava/gnu/javax/net/ssl/provider/HelloRequest.h b/libjava/gnu/javax/net/ssl/provider/HelloRequest.h new file mode 100644 index 00000000000..32ff951a3ac --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/HelloRequest.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_HelloRequest__ +#define __gnu_javax_net_ssl_provider_HelloRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class HelloRequest; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::HelloRequest : public ::java::lang::Object +{ + +public: + HelloRequest(); + ::java::lang::String * toString(::java::lang::String *); + jint length(); + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_HelloRequest__ diff --git a/libjava/gnu/javax/net/ssl/provider/InputSecurityParameters.h b/libjava/gnu/javax/net/ssl/provider/InputSecurityParameters.h new file mode 100644 index 00000000000..2881a0f1275 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/InputSecurityParameters.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_InputSecurityParameters__ +#define __gnu_javax_net_ssl_provider_InputSecurityParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace java + { + namespace security + { + namespace util + { + class ByteBufferOutputStream; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class InputSecurityParameters; + class Record; + class SessionImpl; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace crypto + { + class Cipher; + class Mac; + } + } +} + +class gnu::javax::net::ssl::provider::InputSecurityParameters : public ::java::lang::Object +{ + +public: + InputSecurityParameters(::javax::crypto::Cipher *, ::javax::crypto::Mac *, ::java::util::zip::Inflater *, ::gnu::javax::net::ssl::provider::SessionImpl *, ::gnu::javax::net::ssl::provider::CipherSuite *); + virtual jint decrypt(::gnu::javax::net::ssl::provider::Record *, JArray< ::java::nio::ByteBuffer * > *, jint, jint); + virtual jint decrypt(::gnu::javax::net::ssl::provider::Record *, ::gnu::java::security::util::ByteBufferOutputStream *); +private: + jint decrypt(::gnu::javax::net::ssl::provider::Record *, JArray< ::java::nio::ByteBuffer * > *, jint, jint, ::gnu::java::security::util::ByteBufferOutputStream *); +public: // actually package-private + virtual ::gnu::javax::net::ssl::provider::CipherSuite * cipherSuite(); +private: + static ::gnu::classpath::debug::SystemLogger * logger; + ::javax::crypto::Cipher * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cipher; + ::javax::crypto::Mac * mac; + ::java::util::zip::Inflater * inflater; + ::gnu::javax::net::ssl::provider::SessionImpl * session; + ::gnu::javax::net::ssl::provider::CipherSuite * suite; + jlong sequence; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_InputSecurityParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/JCESecurityParameters.h b/libjava/gnu/javax/net/ssl/provider/JCESecurityParameters.h new file mode 100644 index 00000000000..cc12a365000 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/JCESecurityParameters.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_JCESecurityParameters__ +#define __gnu_javax_net_ssl_provider_JCESecurityParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + class JCESecurityParameters; + class ProtocolVersion; + } + } + } + } + } + namespace javax + { + namespace crypto + { + class Cipher; + class Mac; + } + } +} + +class gnu::javax::net::ssl::provider::JCESecurityParameters : public ::java::lang::Object +{ + +public: // actually package-private + JCESecurityParameters(); +public: + virtual void reset(); + virtual void setInCipher(::java::lang::Object *); + virtual void setOutCipher(::java::lang::Object *); + virtual void setInMac(::java::lang::Object *); + virtual void setOutMac(::java::lang::Object *); + virtual void setDeflating(jboolean); + virtual void setInflating(jboolean); + virtual jint getFragmentLength(); + virtual void setFragmentLength(jint); + virtual ::gnu::javax::net::ssl::provider::ProtocolVersion * getVersion(); + virtual void setVersion(::gnu::javax::net::ssl::provider::ProtocolVersion *); + virtual JArray< jbyte > * decrypt(JArray< jbyte > *, ::gnu::javax::net::ssl::provider::ProtocolVersion *, ::gnu::javax::net::ssl::provider::ContentType *); + virtual JArray< jbyte > * encrypt(JArray< jbyte > *, jint, jint, ::gnu::javax::net::ssl::provider::ContentType *); +private: + ::javax::crypto::Cipher * __attribute__((aligned(__alignof__( ::java::lang::Object)))) inCipher; + ::javax::crypto::Cipher * outCipher; + ::javax::crypto::Mac * inMac; + ::javax::crypto::Mac * outMac; + ::java::util::zip::Inflater * inflater; + ::java::util::zip::Deflater * deflater; + jint fragmentLength; + jlong inSequence; + jlong outSequence; + ::gnu::javax::net::ssl::provider::ProtocolVersion * version; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_JCESecurityParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/JDBCSessionContext.h b/libjava/gnu/javax/net/ssl/provider/JDBCSessionContext.h new file mode 100644 index 00000000000..3c838cfd939 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/JDBCSessionContext.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_JDBCSessionContext__ +#define __gnu_javax_net_ssl_provider_JDBCSessionContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class JDBCSessionContext; + class Session; + class Session$ID; + } + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class Certificate; + } + } + namespace sql + { + class Connection; + class PreparedStatement; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSession; + } + } + } +} + +class gnu::javax::net::ssl::provider::JDBCSessionContext : public ::gnu::javax::net::ssl::provider::SessionContext +{ + +public: // actually package-private + JDBCSessionContext(); +public: + virtual ::java::util::Enumeration * getIds(); + virtual ::javax::net::ssl::SSLSession * getSession(JArray< jbyte > *); +public: // actually package-private + virtual jboolean addSession(::gnu::javax::net::ssl::provider::Session$ID *, ::gnu::javax::net::ssl::provider::Session *); + virtual jboolean containsSessionID(::gnu::javax::net::ssl::provider::Session$ID *); +public: // actually protected + virtual jboolean removeSession(::gnu::javax::net::ssl::provider::Session$ID *); +public: // actually package-private + virtual void notifyAccess(::gnu::javax::net::ssl::provider::Session *); +private: + JArray< jbyte > * certs(JArray< ::java::security::cert::Certificate * > *); +public: // actually protected + ::java::sql::Connection * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::SessionContext)))) connection; + ::java::sql::PreparedStatement * selectById; + ::java::sql::PreparedStatement * insert; + ::java::sql::PreparedStatement * selectTimestamp; + ::java::sql::PreparedStatement * updateTimestamp; + ::java::sql::PreparedStatement * deleteSession; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_JDBCSessionContext__ diff --git a/libjava/gnu/javax/net/ssl/provider/Jessie$1.h b/libjava/gnu/javax/net/ssl/provider/Jessie$1.h new file mode 100644 index 00000000000..20c6576227a --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Jessie$1.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Jessie$1__ +#define __gnu_javax_net_ssl_provider_Jessie$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Jessie; + class Jessie$1; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Jessie$1 : public ::java::lang::Object +{ + +public: // actually package-private + Jessie$1(::gnu::javax::net::ssl::provider::Jessie *); +public: + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::javax::net::ssl::provider::Jessie * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Jessie$1__ diff --git a/libjava/gnu/javax/net/ssl/provider/Jessie.h b/libjava/gnu/javax/net/ssl/provider/Jessie.h new file mode 100644 index 00000000000..3f0cf9c7dd2 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Jessie.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Jessie__ +#define __gnu_javax_net_ssl_provider_Jessie__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Jessie; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Jessie : public ::java::security::Provider +{ + +public: + Jessie(); +private: + static const jlong serialVersionUID = -1LL; +public: + static ::java::lang::String * VERSION; + static jdouble VERSION_DOUBLE; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Jessie__ diff --git a/libjava/gnu/javax/net/ssl/provider/JessieDHPrivateKey.h b/libjava/gnu/javax/net/ssl/provider/JessieDHPrivateKey.h new file mode 100644 index 00000000000..3f6f8f16d6e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/JessieDHPrivateKey.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_JessieDHPrivateKey__ +#define __gnu_javax_net_ssl_provider_JessieDHPrivateKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class JessieDHPrivateKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class gnu::javax::net::ssl::provider::JessieDHPrivateKey : public ::java::lang::Object +{ + +public: // actually package-private + JessieDHPrivateKey(::javax::crypto::spec::DHParameterSpec *, ::java::math::BigInteger *); +public: + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::lang::String * getFormat(); + virtual JArray< jbyte > * getEncoded(); + virtual ::javax::crypto::spec::DHParameterSpec * getParams(); + virtual ::java::math::BigInteger * getX(); + virtual ::java::lang::String * toString(); +private: + ::javax::crypto::spec::DHParameterSpec * __attribute__((aligned(__alignof__( ::java::lang::Object)))) params; + ::java::math::BigInteger * x; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_JessieDHPrivateKey__ diff --git a/libjava/gnu/javax/net/ssl/provider/JessieDHPublicKey.h b/libjava/gnu/javax/net/ssl/provider/JessieDHPublicKey.h new file mode 100644 index 00000000000..80f504a09c3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/JessieDHPublicKey.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_JessieDHPublicKey__ +#define __gnu_javax_net_ssl_provider_JessieDHPublicKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class JessieDHPublicKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class gnu::javax::net::ssl::provider::JessieDHPublicKey : public ::java::lang::Object +{ + +public: // actually package-private + JessieDHPublicKey(::javax::crypto::spec::DHParameterSpec *, ::java::math::BigInteger *); +public: + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::lang::String * getFormat(); + virtual JArray< jbyte > * getEncoded(); + virtual ::javax::crypto::spec::DHParameterSpec * getParams(); + virtual ::java::math::BigInteger * getY(); + virtual ::java::lang::String * toString(); +private: + ::javax::crypto::spec::DHParameterSpec * __attribute__((aligned(__alignof__( ::java::lang::Object)))) params; + ::java::math::BigInteger * y; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_JessieDHPublicKey__ diff --git a/libjava/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.h b/libjava/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.h new file mode 100644 index 00000000000..0c2644643f3 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_JessieRSAPrivateKey__ +#define __gnu_javax_net_ssl_provider_JessieRSAPrivateKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class JessieRSAPrivateKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::net::ssl::provider::JessieRSAPrivateKey : public ::java::lang::Object +{ + +public: // actually package-private + JessieRSAPrivateKey(::java::math::BigInteger *, ::java::math::BigInteger *); +public: + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::lang::String * getFormat(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::math::BigInteger * getModulus(); + virtual ::java::math::BigInteger * getPrivateExponent(); + virtual ::java::lang::String * toString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) modulus; + ::java::math::BigInteger * exponent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_JessieRSAPrivateKey__ diff --git a/libjava/gnu/javax/net/ssl/provider/JessieRSAPublicKey.h b/libjava/gnu/javax/net/ssl/provider/JessieRSAPublicKey.h new file mode 100644 index 00000000000..14dfea7b75f --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/JessieRSAPublicKey.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_JessieRSAPublicKey__ +#define __gnu_javax_net_ssl_provider_JessieRSAPublicKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class JessieRSAPublicKey; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + } +} + +class gnu::javax::net::ssl::provider::JessieRSAPublicKey : public ::java::lang::Object +{ + +public: // actually package-private + JessieRSAPublicKey(::java::math::BigInteger *, ::java::math::BigInteger *); +public: + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::lang::String * getFormat(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::math::BigInteger * getModulus(); + virtual ::java::math::BigInteger * getPublicExponent(); + virtual ::java::lang::String * toString(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) modulus; + ::java::math::BigInteger * exponent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_JessieRSAPublicKey__ diff --git a/libjava/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.h b/libjava/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.h new file mode 100644 index 00000000000..60dec2ad7af --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_KeyExchangeAlgorithm__ +#define __gnu_javax_net_ssl_provider_KeyExchangeAlgorithm__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyExchangeAlgorithm; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::KeyExchangeAlgorithm : public ::java::lang::Enum +{ + + KeyExchangeAlgorithm(::java::lang::String *, jint); +public: + static JArray< ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * > * values(); + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * NONE; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * RSA; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * DH_DSS; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * DH_RSA; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * DH_anon; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * DHE_DSS; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * DHE_RSA; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * PSK; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * DHE_PSK; + static ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * RSA_PSK; +private: + static JArray< ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_KeyExchangeAlgorithm__ diff --git a/libjava/gnu/javax/net/ssl/provider/KeyPool.h b/libjava/gnu/javax/net/ssl/provider/KeyPool.h new file mode 100644 index 00000000000..0eb8f3ccb21 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/KeyPool.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_KeyPool__ +#define __gnu_javax_net_ssl_provider_KeyPool__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyPool; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class KeyPair; + class SecureRandom; + } + } +} + +class gnu::javax::net::ssl::provider::KeyPool : public ::java::lang::Object +{ + + KeyPool(); +public: // actually package-private + static ::java::security::KeyPair * generateRSAKeyPair(); +private: + static void nextBytes(JArray< jbyte > *); + static ::java::math::BigInteger * ONE; + static ::java::math::BigInteger * TWO; + static ::java::math::BigInteger * E; + static ::java::security::SecureRandom * RANDOM; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_KeyPool__ diff --git a/libjava/gnu/javax/net/ssl/provider/MacAlgorithm.h b/libjava/gnu/javax/net/ssl/provider/MacAlgorithm.h new file mode 100644 index 00000000000..7926121855c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/MacAlgorithm.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_MacAlgorithm__ +#define __gnu_javax_net_ssl_provider_MacAlgorithm__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class MacAlgorithm; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::MacAlgorithm : public ::java::lang::Enum +{ + + MacAlgorithm(::java::lang::String *, jint); +public: + static JArray< ::gnu::javax::net::ssl::provider::MacAlgorithm * > * values(); + static ::gnu::javax::net::ssl::provider::MacAlgorithm * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::MacAlgorithm * NULL; + static ::gnu::javax::net::ssl::provider::MacAlgorithm * MD5; + static ::gnu::javax::net::ssl::provider::MacAlgorithm * SHA; +private: + static JArray< ::gnu::javax::net::ssl::provider::MacAlgorithm * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_MacAlgorithm__ diff --git a/libjava/gnu/javax/net/ssl/provider/MacException.h b/libjava/gnu/javax/net/ssl/provider/MacException.h new file mode 100644 index 00000000000..b1707eed108 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/MacException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_MacException__ +#define __gnu_javax_net_ssl_provider_MacException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class MacException; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::MacException : public ::java::io::IOException +{ + +public: // actually package-private + MacException(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_MacException__ diff --git a/libjava/gnu/javax/net/ssl/provider/MaxFragmentLength.h b/libjava/gnu/javax/net/ssl/provider/MaxFragmentLength.h new file mode 100644 index 00000000000..81c1aca44f5 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/MaxFragmentLength.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_MaxFragmentLength__ +#define __gnu_javax_net_ssl_provider_MaxFragmentLength__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class MaxFragmentLength; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::MaxFragmentLength : public ::gnu::javax::net::ssl::provider::Extension$Value +{ + + MaxFragmentLength(jint, jint); +public: + virtual ::java::nio::ByteBuffer * buffer(); + virtual jint length(); + virtual jint getValue(); + virtual jint maxLength(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::MaxFragmentLength * LEN_2_9; + static ::gnu::javax::net::ssl::provider::MaxFragmentLength * LEN_2_10; + static ::gnu::javax::net::ssl::provider::MaxFragmentLength * LEN_2_11; + static ::gnu::javax::net::ssl::provider::MaxFragmentLength * LEN_2_12; +private: + jint __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::Extension$Value)))) value; + jint length__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_MaxFragmentLength__ diff --git a/libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h b/libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h new file mode 100644 index 00000000000..7bb774beabf --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_OutputSecurityParameters__ +#define __gnu_javax_net_ssl_provider_OutputSecurityParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class ContentType; + class OutputSecurityParameters; + class SessionImpl; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace crypto + { + class Cipher; + class Mac; + } + } +} + +class gnu::javax::net::ssl::provider::OutputSecurityParameters : public ::java::lang::Object +{ + +public: + OutputSecurityParameters(::javax::crypto::Cipher *, ::javax::crypto::Mac *, ::java::util::zip::Deflater *, ::gnu::javax::net::ssl::provider::SessionImpl *, ::gnu::javax::net::ssl::provider::CipherSuite *); + virtual JArray< jint > * encrypt(JArray< ::java::nio::ByteBuffer * > *, jint, jint, ::gnu::javax::net::ssl::provider::ContentType *, ::java::nio::ByteBuffer *); +public: // actually package-private + virtual ::gnu::javax::net::ssl::provider::CipherSuite * suite(); +private: + static ::gnu::classpath::debug::SystemLogger * logger; + ::javax::crypto::Cipher * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cipher; + ::javax::crypto::Mac * mac; + ::java::util::zip::Deflater * deflater; + ::gnu::javax::net::ssl::provider::SessionImpl * session; + ::gnu::javax::net::ssl::provider::CipherSuite * suite__; + jlong sequence; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_OutputSecurityParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/OverflowException.h b/libjava/gnu/javax/net/ssl/provider/OverflowException.h new file mode 100644 index 00000000000..0fb5735937b --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/OverflowException.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_OverflowException__ +#define __gnu_javax_net_ssl_provider_OverflowException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class OverflowException; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::OverflowException : public ::java::io::IOException +{ + +public: // actually package-private + OverflowException(); + OverflowException(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_OverflowException__ diff --git a/libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl$Manager.h b/libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl$Manager.h new file mode 100644 index 00000000000..7c8ceace8a8 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl$Manager.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_PreSharedKeyManagerFactoryImpl$Manager__ +#define __gnu_javax_net_ssl_provider_PreSharedKeyManagerFactoryImpl$Manager__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class PreSharedKeyManagerFactoryImpl; + class PreSharedKeyManagerFactoryImpl$Manager; + } + } + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::net::ssl::provider::PreSharedKeyManagerFactoryImpl$Manager : public ::java::lang::Object +{ + +public: // actually package-private + PreSharedKeyManagerFactoryImpl$Manager(::gnu::javax::net::ssl::provider::PreSharedKeyManagerFactoryImpl *); +public: + virtual ::javax::crypto::SecretKey * getKey(::java::lang::String *); + virtual ::java::lang::String * chooseIdentityHint(); +public: // actually package-private + ::gnu::javax::net::ssl::provider::PreSharedKeyManagerFactoryImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_PreSharedKeyManagerFactoryImpl$Manager__ diff --git a/libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.h b/libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.h new file mode 100644 index 00000000000..4e267db7646 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_PreSharedKeyManagerFactoryImpl__ +#define __gnu_javax_net_ssl_provider_PreSharedKeyManagerFactoryImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class PreSharedKeyManagerParameters; + namespace provider + { + class PreSharedKeyManagerFactoryImpl; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyStore; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class ManagerFactoryParameters; + } + } + } +} + +class gnu::javax::net::ssl::provider::PreSharedKeyManagerFactoryImpl : public ::javax::net::ssl::KeyManagerFactorySpi +{ + +public: + PreSharedKeyManagerFactoryImpl(); +public: // actually protected + virtual JArray< ::javax::net::ssl::KeyManager * > * engineGetKeyManagers(); + virtual void engineInit(::javax::net::ssl::ManagerFactoryParameters *); + virtual void engineInit(::java::security::KeyStore *, JArray< jchar > *); +public: // actually package-private + ::gnu::javax::net::ssl::PreSharedKeyManagerParameters * __attribute__((aligned(__alignof__( ::javax::net::ssl::KeyManagerFactorySpi)))) params; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_PreSharedKeyManagerFactoryImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/ProtocolVersion.h b/libjava/gnu/javax/net/ssl/provider/ProtocolVersion.h new file mode 100644 index 00000000000..f6cc3b78d6e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ProtocolVersion.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ProtocolVersion__ +#define __gnu_javax_net_ssl_provider_ProtocolVersion__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ProtocolVersion; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ProtocolVersion : public ::java::lang::Object +{ + + ProtocolVersion(jint, jint); +public: + static ::gnu::javax::net::ssl::provider::ProtocolVersion * read(::java::io::InputStream *); + static ::gnu::javax::net::ssl::provider::ProtocolVersion * forName(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::ProtocolVersion * getInstance(jint, jint); + static ::gnu::javax::net::ssl::provider::ProtocolVersion * getInstance(jshort); + jint length(); + JArray< jbyte > * getEncoded(); + jint major(); + jint minor(); + jint rawValue(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + jint target$compareTo(::gnu::javax::net::ssl::provider::ProtocolVersion *); + ::java::lang::String * toString(::java::lang::String *); + ::java::lang::String * toString(); + jint compareTo(::java::lang::Object *); + static ::gnu::javax::net::ssl::provider::ProtocolVersion * SSL_3; + static ::gnu::javax::net::ssl::provider::ProtocolVersion * TLS_1; + static ::gnu::javax::net::ssl::provider::ProtocolVersion * TLS_1_1; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) major__; + jint minor__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ProtocolVersion__ diff --git a/libjava/gnu/javax/net/ssl/provider/Random.h b/libjava/gnu/javax/net/ssl/provider/Random.h new file mode 100644 index 00000000000..1553624d09e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Random.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Random__ +#define __gnu_javax_net_ssl_provider_Random__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Random; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Random : public ::java::lang::Object +{ + +public: + Random(::java::nio::ByteBuffer *); + virtual ::gnu::javax::net::ssl::provider::Random * copy(); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual jint gmtUnixTime(); + virtual JArray< jbyte > * randomBytes(); + virtual void setGmtUnixTime(jint); + virtual void setRandomBytes(JArray< jbyte > *); + virtual void setRandomBytes(JArray< jbyte > *, jint); + virtual ::java::lang::String * toString(::java::lang::String *); + virtual ::java::lang::String * toString(); +public: // actually package-private + static const jint RANDOM_LENGTH = 28; +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Random__ diff --git a/libjava/gnu/javax/net/ssl/provider/Record.h b/libjava/gnu/javax/net/ssl/provider/Record.h new file mode 100644 index 00000000000..59f90415410 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Record.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Record__ +#define __gnu_javax_net_ssl_provider_Record__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + class ProtocolVersion; + class Record; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Record : public ::java::lang::Object +{ + +public: + Record(::java::nio::ByteBuffer *); + virtual ::gnu::javax::net::ssl::provider::ContentType * getContentType(); + virtual ::gnu::javax::net::ssl::provider::ContentType * contentType(); + virtual jint fragment(::java::nio::ByteBuffer *); + virtual ::java::nio::ByteBuffer * fragment(); + virtual jint length(); + virtual ::gnu::javax::net::ssl::provider::ProtocolVersion * version(); + virtual void setContentType(::gnu::javax::net::ssl::provider::ContentType *); + virtual void setLength(jint); + virtual void setVersion(::gnu::javax::net::ssl::provider::ProtocolVersion *); + virtual ::java::lang::String * toString(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Record__ diff --git a/libjava/gnu/javax/net/ssl/provider/RecordInput.h b/libjava/gnu/javax/net/ssl/provider/RecordInput.h new file mode 100644 index 00000000000..964c9651929 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/RecordInput.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_RecordInput__ +#define __gnu_javax_net_ssl_provider_RecordInput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + class RecordInput; + class Session; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::RecordInput : public ::java::lang::Object +{ + +public: // actually package-private + RecordInput(::java::io::InputStream *, ::gnu::javax::net::ssl::provider::Session *); + virtual jint available(::gnu::javax::net::ssl::provider::ContentType *); + virtual void setSession(::gnu::javax::net::ssl::provider::Session *); + virtual jint read(JArray< jbyte > *, jint, jint, ::gnu::javax::net::ssl::provider::ContentType *); + virtual jboolean pollClose(); +private: + void readRecord(); + static const jboolean DEBUG_RECORD_LAYER = 1; + static ::java::util::logging::Logger * logger; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) fragment; + jint index; + ::gnu::javax::net::ssl::provider::ContentType * type; + ::java::io::DataInputStream * in; + ::gnu::javax::net::ssl::provider::Session * session; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_RecordInput__ diff --git a/libjava/gnu/javax/net/ssl/provider/RecordInputStream.h b/libjava/gnu/javax/net/ssl/provider/RecordInputStream.h new file mode 100644 index 00000000000..b78f2eb312e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/RecordInputStream.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_RecordInputStream__ +#define __gnu_javax_net_ssl_provider_RecordInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + class RecordInput; + class RecordInputStream; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::RecordInputStream : public ::java::io::InputStream +{ + +public: // actually package-private + RecordInputStream(::gnu::javax::net::ssl::provider::RecordInput *, ::gnu::javax::net::ssl::provider::ContentType *); +public: + virtual jint available(); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * toString(); +private: + ::gnu::javax::net::ssl::provider::RecordInput * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) in; + ::gnu::javax::net::ssl::provider::ContentType * type; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_RecordInputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/RecordOutputStream.h b/libjava/gnu/javax/net/ssl/provider/RecordOutputStream.h new file mode 100644 index 00000000000..427edbf6be0 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/RecordOutputStream.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_RecordOutputStream__ +#define __gnu_javax_net_ssl_provider_RecordOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + class RecordOutputStream; + class SecurityParameters; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::RecordOutputStream : public ::java::io::FilterOutputStream +{ + +public: // actually package-private + RecordOutputStream(::java::io::OutputStream *, ::gnu::javax::net::ssl::provider::ContentType *, ::gnu::javax::net::ssl::provider::SecurityParameters *); +public: + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); +private: + static const jboolean DEBUG_RECORD_LAYER = 1; + static ::java::util::logging::Logger * logger; + ::gnu::javax::net::ssl::provider::ContentType * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) type; + ::gnu::javax::net::ssl::provider::SecurityParameters * params; + jboolean emitEmpty; + static JArray< jbyte > * ZERO; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_RecordOutputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/RecordingInputStream.h b/libjava/gnu/javax/net/ssl/provider/RecordingInputStream.h new file mode 100644 index 00000000000..a6d912c44a7 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/RecordingInputStream.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_RecordingInputStream__ +#define __gnu_javax_net_ssl_provider_RecordingInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class RecordingInputStream; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::RecordingInputStream : public ::java::io::FilterInputStream +{ + +public: // actually package-private + RecordingInputStream(::java::io::InputStream *); + RecordingInputStream(::java::io::InputStream *, ::java::io::ByteArrayOutputStream *); +public: + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jbyte > *); + virtual jlong skip(jlong); +public: // actually package-private + virtual JArray< jbyte > * getBytes(); + virtual void resetSink(); +public: // actually protected + ::java::io::ByteArrayOutputStream * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) sink; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_RecordingInputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.h b/libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.h new file mode 100644 index 00000000000..9425426856c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SRPTrustManagerFactory$Manager__ +#define __gnu_javax_net_ssl_provider_SRPTrustManagerFactory$Manager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace sasl + { + namespace srp + { + class PasswordFile; + } + } + } + namespace net + { + namespace ssl + { + namespace provider + { + class SRPTrustManagerFactory; + class SRPTrustManagerFactory$Manager; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class KeyPair; + } + } +} + +class gnu::javax::net::ssl::provider::SRPTrustManagerFactory$Manager : public ::java::lang::Object +{ + +public: // actually package-private + SRPTrustManagerFactory$Manager(::gnu::javax::net::ssl::provider::SRPTrustManagerFactory *, ::gnu::javax::crypto::sasl::srp::PasswordFile *); +public: + virtual jboolean contains(::java::lang::String *); + virtual ::java::security::KeyPair * getKeyPair(::java::lang::String *); + virtual JArray< jbyte > * getSalt(::java::lang::String *); + virtual ::java::math::BigInteger * getVerifier(::java::lang::String *); + virtual ::gnu::javax::crypto::sasl::srp::PasswordFile * getPasswordFile(); +private: + ::gnu::javax::crypto::sasl::srp::PasswordFile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) file; +public: // actually package-private + ::gnu::javax::net::ssl::provider::SRPTrustManagerFactory * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SRPTrustManagerFactory$Manager__ diff --git a/libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.h b/libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.h new file mode 100644 index 00000000000..a1f10fb44d2 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SRPTrustManagerFactory__ +#define __gnu_javax_net_ssl_provider_SRPTrustManagerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SRPTrustManagerFactory; + class SRPTrustManagerFactory$Manager; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyStore; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class ManagerFactoryParameters; + class TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::SRPTrustManagerFactory : public ::javax::net::ssl::TrustManagerFactorySpi +{ + +public: + SRPTrustManagerFactory(); +public: // actually protected + virtual JArray< ::javax::net::ssl::TrustManager * > * engineGetTrustManagers(); + virtual void engineInit(::java::security::KeyStore *); + virtual void engineInit(::javax::net::ssl::ManagerFactoryParameters *); +private: + ::gnu::javax::net::ssl::provider::SRPTrustManagerFactory$Manager * __attribute__((aligned(__alignof__( ::javax::net::ssl::TrustManagerFactorySpi)))) current; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SRPTrustManagerFactory__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLContextImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLContextImpl.h new file mode 100644 index 00000000000..bdb7e80380d --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLContextImpl.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLContextImpl__ +#define __gnu_javax_net_ssl_provider_SSLContextImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class AbstractSessionContext; + class PreSharedKeyManager; + class SRPTrustManager; + namespace provider + { + class SSLContextImpl; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class SSLEngine; + class SSLServerSocketFactory; + class SSLSessionContext; + class SSLSocketFactory; + class TrustManager; + class X509ExtendedKeyManager; + class X509TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLContextImpl : public ::javax::net::ssl::SSLContextSpi +{ + +public: + SSLContextImpl(); +public: // actually protected + ::javax::net::ssl::SSLEngine * engineCreateSSLEngine(); + ::javax::net::ssl::SSLEngine * engineCreateSSLEngine(::java::lang::String *, jint); + ::javax::net::ssl::SSLSessionContext * engineGetClientSessionContext(); + ::javax::net::ssl::SSLSessionContext * engineGetServerSessionContext(); + ::javax::net::ssl::SSLServerSocketFactory * engineGetServerSocketFactory(); + ::javax::net::ssl::SSLSocketFactory * engineGetSocketFactory(); + void engineInit(JArray< ::javax::net::ssl::KeyManager * > *, JArray< ::javax::net::ssl::TrustManager * > *, ::java::security::SecureRandom *); +private: + ::javax::net::ssl::X509ExtendedKeyManager * defaultKeyManager(); + ::javax::net::ssl::X509TrustManager * defaultTrustManager(); + ::java::security::SecureRandom * defaultRandom(); +public: // actually package-private + ::gnu::javax::net::ssl::AbstractSessionContext * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLContextSpi)))) serverContext; + ::gnu::javax::net::ssl::AbstractSessionContext * clientContext; + ::gnu::javax::net::ssl::PreSharedKeyManager * pskManager; + ::javax::net::ssl::X509ExtendedKeyManager * keyManager; + ::javax::net::ssl::X509TrustManager * trustManager; + ::gnu::javax::net::ssl::SRPTrustManager * srpTrustManager; + ::java::security::SecureRandom * random; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLContextImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLEngineImpl$Mode.h b/libjava/gnu/javax/net/ssl/provider/SSLEngineImpl$Mode.h new file mode 100644 index 00000000000..a2a8163b897 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLEngineImpl$Mode.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLEngineImpl$Mode__ +#define __gnu_javax_net_ssl_provider_SSLEngineImpl$Mode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLEngineImpl$Mode; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLEngineImpl$Mode : public ::java::lang::Enum +{ + + SSLEngineImpl$Mode(::java::lang::String *, jint); +public: + static JArray< ::gnu::javax::net::ssl::provider::SSLEngineImpl$Mode * > * values(); + static ::gnu::javax::net::ssl::provider::SSLEngineImpl$Mode * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::SSLEngineImpl$Mode * SERVER; + static ::gnu::javax::net::ssl::provider::SSLEngineImpl$Mode * CLIENT; +private: + static JArray< ::gnu::javax::net::ssl::provider::SSLEngineImpl$Mode * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLEngineImpl$Mode__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLEngineImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLEngineImpl.h new file mode 100644 index 00000000000..f62525cc0a5 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLEngineImpl.h @@ -0,0 +1,128 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLEngineImpl__ +#define __gnu_javax_net_ssl_provider_SSLEngineImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLRecordHandler; + namespace provider + { + class AbstractHandshake; + class Alert; + class InputSecurityParameters; + class OutputSecurityParameters; + class SSLContextImpl; + class SSLEngineImpl; + class SSLEngineImpl$Mode; + class SessionImpl; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngineResult; + class SSLEngineResult$HandshakeStatus; + class SSLSession; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLEngineImpl : public ::javax::net::ssl::SSLEngine +{ + +public: // actually package-private + SSLEngineImpl(::gnu::javax::net::ssl::provider::SSLContextImpl *, ::java::lang::String *, jint); + static JArray< ::java::lang::String * > * defaultSuites(); +public: + void beginHandshake(); + void closeInbound(); + void closeOutbound(); + ::java::lang::Runnable * getDelegatedTask(); + JArray< ::java::lang::String * > * getEnabledCipherSuites(); + JArray< ::java::lang::String * > * getEnabledProtocols(); + jboolean getEnableSessionCreation(); + ::javax::net::ssl::SSLEngineResult$HandshakeStatus * getHandshakeStatus(); + jboolean getNeedClientAuth(); + ::javax::net::ssl::SSLSession * getSession(); + jboolean getUseClientMode(); + jboolean getWantClientAuth(); + jboolean isInboundDone(); + jboolean isOutboundDone(); + void setEnableSessionCreation(jboolean); + void setEnabledCipherSuites(JArray< ::java::lang::String * > *); + void setEnabledProtocols(JArray< ::java::lang::String * > *); + JArray< ::java::lang::String * > * getSupportedCipherSuites(); + JArray< ::java::lang::String * > * getSupportedProtocols(); + void setNeedClientAuth(jboolean); + void setUseClientMode(jboolean); + void setWantClientAuth(jboolean); + ::javax::net::ssl::SSLEngineResult * unwrap(::java::nio::ByteBuffer *, JArray< ::java::nio::ByteBuffer * > *, jint, jint); + ::javax::net::ssl::SSLEngineResult * wrap(JArray< ::java::nio::ByteBuffer * > *, jint, jint, ::java::nio::ByteBuffer *); +public: // actually package-private + ::gnu::javax::net::ssl::provider::SessionImpl * session(); + void setSession(::gnu::javax::net::ssl::provider::SessionImpl *); + void changeCipherSpec(); + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$SSLEngineImpl$Mode(); + ::gnu::javax::net::ssl::provider::SSLContextImpl * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLEngine)))) contextImpl; +private: + JArray< ::gnu::javax::net::ssl::SSLRecordHandler * > * handlers; + static ::gnu::classpath::debug::SystemLogger * logger; + ::gnu::javax::net::ssl::provider::SessionImpl * session__; + ::gnu::javax::net::ssl::provider::InputSecurityParameters * insec; + ::gnu::javax::net::ssl::provider::OutputSecurityParameters * outsec; + jboolean inClosed; + jboolean outClosed; + jboolean createSessions; + jboolean needClientAuth; + jboolean wantClientAuth; + jboolean initialHandshakeDone; + ::gnu::javax::net::ssl::provider::AbstractHandshake * handshake; + ::gnu::javax::net::ssl::provider::Alert * lastAlert; + ::javax::net::ssl::SSLEngineResult$HandshakeStatus * handshakeStatus; + jboolean changeCipherSpec__; + JArray< ::java::lang::String * > * enabledSuites; + JArray< ::java::lang::String * > * enabledProtocols; + ::java::nio::ByteBuffer * alertBuffer; + ::gnu::javax::net::ssl::provider::SSLEngineImpl$Mode * mode; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$SSLEngineImpl$Mode__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLEngineImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLHMac.h b/libjava/gnu/javax/net/ssl/provider/SSLHMac.h new file mode 100644 index 00000000000..7e9ad36ea6e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLHMac.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLHMac__ +#define __gnu_javax_net_ssl_provider_SSLHMac__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLHMac; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLHMac : public ::java::lang::Object +{ + +public: // actually package-private + SSLHMac(::java::lang::String *); +public: + virtual ::java::lang::Object * clone(); + virtual ::java::lang::String * name(); + virtual jint macSize(); + virtual void init(::java::util::Map *); + virtual void reset(); + virtual JArray< jbyte > * digest(); + virtual void update(jbyte); + virtual void update(JArray< jbyte > *, jint, jint); + virtual jboolean selfTest(); +public: // actually package-private + static const jbyte PAD1 = 54; + static const jbyte PAD2 = 92; +public: // actually protected + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) md; + JArray< jbyte > * key; + JArray< jbyte > * pad1; + JArray< jbyte > * pad2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLHMac__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLRSASignature.h b/libjava/gnu/javax/net/ssl/provider/SSLRSASignature.h new file mode 100644 index 00000000000..cef51dac37c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLRSASignature.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLRSASignature__ +#define __gnu_javax_net_ssl_provider_SSLRSASignature__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLRSASignature; + } + } + } + } + } + namespace java + { + namespace security + { + namespace interfaces + { + class RSAPrivateKey; + class RSAPublicKey; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLRSASignature : public ::java::lang::Object +{ + +public: // actually package-private + SSLRSASignature(); + SSLRSASignature(::gnu::java::security::hash::IMessageDigest *, ::gnu::java::security::hash::IMessageDigest *); +public: + ::java::lang::String * name(); + void setupVerify(::java::util::Map *); + void setupSign(::java::util::Map *); + void update(jbyte); + void update(JArray< jbyte > *, jint, jint); + ::java::lang::Object * sign(); + jboolean verify(::java::lang::Object *); + ::java::lang::Object * clone(); +private: + ::java::security::interfaces::RSAPublicKey * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pubkey; + ::java::security::interfaces::RSAPrivateKey * privkey; + ::gnu::java::security::hash::IMessageDigest * md5; + ::gnu::java::security::hash::IMessageDigest * sha; + jboolean initVerify; + jboolean initSign; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLRSASignature__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.h new file mode 100644 index 00000000000..26da5be52ed --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLRSASignatureImpl__ +#define __gnu_javax_net_ssl_provider_SSLRSASignatureImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLRSASignatureImpl; + } + } + } + } + } + namespace java + { + namespace security + { + class MessageDigest; + class PrivateKey; + class PublicKey; + namespace interfaces + { + class RSAPrivateKey; + class RSAPublicKey; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLRSASignatureImpl : public ::java::security::SignatureSpi +{ + +public: + SSLRSASignatureImpl(); +public: // actually protected + virtual void engineInitVerify(::java::security::PublicKey *); + virtual void engineInitSign(::java::security::PrivateKey *); + virtual void engineUpdate(jbyte); + virtual void engineUpdate(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * engineSign(); + virtual jboolean engineVerify(JArray< jbyte > *); + virtual void engineSetParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * engineGetParameter(::java::lang::String *); +private: + static ::gnu::classpath::debug::SystemLogger * logger; + ::java::security::interfaces::RSAPublicKey * __attribute__((aligned(__alignof__( ::java::security::SignatureSpi)))) pubkey; + ::java::security::interfaces::RSAPrivateKey * privkey; + ::java::security::MessageDigest * md5; + ::java::security::MessageDigest * sha; + jboolean initSign; + jboolean initVerify; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLRSASignatureImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLRandom.h b/libjava/gnu/javax/net/ssl/provider/SSLRandom.h new file mode 100644 index 00000000000..1a4abf1fda5 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLRandom.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLRandom__ +#define __gnu_javax_net_ssl_provider_SSLRandom__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLRandom; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLRandom : public ::java::lang::Object +{ + +public: // actually package-private + SSLRandom(); +public: + virtual void init(::java::util::Map *); + virtual ::java::lang::String * name(); + virtual ::java::lang::Object * clone(); + virtual jbyte nextByte(); + virtual void nextBytes(JArray< jbyte > *, jint, jint); + virtual jboolean selfTest(); + virtual void addRandomByte(jbyte); + virtual void addRandomBytes(JArray< jbyte > *); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); +private: + JArray< jbyte > * nextBlock(); +public: // actually package-private + static ::java::lang::String * SECRET; + static ::java::lang::String * SEED; +private: + ::gnu::java::security::hash::IMessageDigest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) md5; + ::gnu::java::security::hash::IMessageDigest * sha; + JArray< jbyte > * secret; + JArray< jbyte > * buffer; + jbyte pad; + JArray< jbyte > * seed; + jint idx; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLRandom__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLServerSocket.h b/libjava/gnu/javax/net/ssl/provider/SSLServerSocket.h new file mode 100644 index 00000000000..8877d8226e8 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLServerSocket.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLServerSocket__ +#define __gnu_javax_net_ssl_provider_SSLServerSocket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SRPTrustManager; + namespace provider + { + class SSLServerSocket; + class SessionContext; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class Socket; + } + namespace security + { + class SecureRandom; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class X509KeyManager; + class X509TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLServerSocket : public ::javax::net::ssl::SSLServerSocket +{ + +public: // actually package-private + SSLServerSocket(); + SSLServerSocket(jint); + SSLServerSocket(jint, jint); + SSLServerSocket(jint, jint, ::java::net::InetAddress *); +public: + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites(); + virtual JArray< ::java::lang::String * > * getEnabledCipherSuites(); + virtual void setEnabledCipherSuites(JArray< ::java::lang::String * > *); + virtual JArray< ::java::lang::String * > * getSupportedProtocols(); + virtual JArray< ::java::lang::String * > * getEnabledProtocols(); + virtual void setEnabledProtocols(JArray< ::java::lang::String * > *); + virtual void setUseClientMode(jboolean); + virtual jboolean getUseClientMode(); + virtual void setNeedClientAuth(jboolean); + virtual jboolean getNeedClientAuth(); + virtual void setWantClientAuth(jboolean); + virtual jboolean getWantClientAuth(); + virtual void setEnabledSessionCreation(jboolean); + virtual void setEnableSessionCreation(jboolean); + virtual jboolean getEnableSessionCreation(); + virtual ::java::net::Socket * accept(); +public: // actually package-private + virtual void setSessionContext(::gnu::javax::net::ssl::provider::SessionContext *); + virtual void setKeyManager(::javax::net::ssl::X509KeyManager *); + virtual void setTrustManager(::javax::net::ssl::X509TrustManager *); + virtual void setSRPTrustManager(::gnu::javax::net::ssl::SRPTrustManager *); + virtual void setRandom(::java::security::SecureRandom *); +private: + ::gnu::javax::net::ssl::provider::SessionContext * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLServerSocket)))) sessions; + ::java::util::SortedSet * enabledProtocols; + ::java::util::List * enabledSuites; + jboolean clientMode; + jboolean needClientAuth; + jboolean wantClientAuth; + jboolean createSessions; + ::gnu::javax::net::ssl::SRPTrustManager * srpTrustManager; + ::javax::net::ssl::X509TrustManager * trustManager; + ::javax::net::ssl::X509KeyManager * keyManager; + ::java::security::SecureRandom * random; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLServerSocket__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactory.h b/libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactory.h new file mode 100644 index 00000000000..308a38d2d03 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactory.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLServerSocketFactory__ +#define __gnu_javax_net_ssl_provider_SSLServerSocketFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SRPTrustManager; + namespace provider + { + class SSLServerSocket; + class SSLServerSocketFactory; + class SessionContext; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class ServerSocket; + } + namespace security + { + class SecureRandom; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class X509KeyManager; + class X509TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLServerSocketFactory : public ::javax::net::ssl::SSLServerSocketFactory +{ + +public: // actually package-private + SSLServerSocketFactory(::javax::net::ssl::X509TrustManager *, ::gnu::javax::net::ssl::SRPTrustManager *, ::javax::net::ssl::X509KeyManager *, ::java::security::SecureRandom *, ::gnu::javax::net::ssl::provider::SessionContext *); +public: + virtual JArray< ::java::lang::String * > * getDefaultCipherSuites(); + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites(); + virtual ::java::net::ServerSocket * createServerSocket(); + virtual ::java::net::ServerSocket * createServerSocket(jint); + virtual ::java::net::ServerSocket * createServerSocket(jint, jint); + virtual ::java::net::ServerSocket * createServerSocket(jint, jint, ::java::net::InetAddress *); +private: + void setup(::gnu::javax::net::ssl::provider::SSLServerSocket *); + ::gnu::javax::net::ssl::provider::SessionContext * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLServerSocketFactory)))) sessions; + ::javax::net::ssl::X509KeyManager * keyManager; + ::javax::net::ssl::X509TrustManager * trustManager; + ::gnu::javax::net::ssl::SRPTrustManager * srpTrustManager; + ::java::security::SecureRandom * random; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLServerSocketFactory__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.h new file mode 100644 index 00000000000..a775cf82c66 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLServerSocketFactoryImpl__ +#define __gnu_javax_net_ssl_provider_SSLServerSocketFactoryImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLContextImpl; + class SSLServerSocketFactoryImpl; + class SSLServerSocketImpl; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class ServerSocket; + } + } +} + +class gnu::javax::net::ssl::provider::SSLServerSocketFactoryImpl : public ::javax::net::ssl::SSLServerSocketFactory +{ + +public: + SSLServerSocketFactoryImpl(::gnu::javax::net::ssl::provider::SSLContextImpl *); + virtual JArray< ::java::lang::String * > * getDefaultCipherSuites(); + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites(); + virtual ::gnu::javax::net::ssl::provider::SSLServerSocketImpl * target$createServerSocket(jint); + virtual ::gnu::javax::net::ssl::provider::SSLServerSocketImpl * target$createServerSocket(jint, jint); + virtual ::gnu::javax::net::ssl::provider::SSLServerSocketImpl * target$createServerSocket(jint, jint, ::java::net::InetAddress *); + virtual ::java::net::ServerSocket * createServerSocket(jint, jint, ::java::net::InetAddress *); + virtual ::java::net::ServerSocket * createServerSocket(jint, jint); + virtual ::java::net::ServerSocket * createServerSocket(jint); +private: + ::gnu::javax::net::ssl::provider::SSLContextImpl * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLServerSocketFactory)))) contextImpl; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLServerSocketFactoryImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLServerSocketImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLServerSocketImpl.h new file mode 100644 index 00000000000..4367a832bc6 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLServerSocketImpl.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLServerSocketImpl__ +#define __gnu_javax_net_ssl_provider_SSLServerSocketImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLContextImpl; + class SSLServerSocketImpl; + class SSLSocketImpl; + } + } + } + } + } + namespace java + { + namespace net + { + class Socket; + } + } +} + +class gnu::javax::net::ssl::provider::SSLServerSocketImpl : public ::javax::net::ssl::SSLServerSocket +{ + +public: + SSLServerSocketImpl(::gnu::javax::net::ssl::provider::SSLContextImpl *); + virtual jboolean getEnableSessionCreation(); + virtual JArray< ::java::lang::String * > * getEnabledCipherSuites(); + virtual JArray< ::java::lang::String * > * getEnabledProtocols(); + virtual jboolean getNeedClientAuth(); + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites(); + virtual JArray< ::java::lang::String * > * getSupportedProtocols(); + virtual jboolean getUseClientMode(); + virtual jboolean getWantClientAuth(); + virtual void setEnableSessionCreation(jboolean); + virtual void setEnabledCipherSuites(JArray< ::java::lang::String * > *); + virtual void setEnabledProtocols(JArray< ::java::lang::String * > *); + virtual void setNeedClientAuth(jboolean); + virtual void setUseClientMode(jboolean); + virtual void setWantClientAuth(jboolean); + virtual ::gnu::javax::net::ssl::provider::SSLSocketImpl * target$accept(); + virtual ::java::net::Socket * accept(); +private: + ::gnu::javax::net::ssl::provider::SSLContextImpl * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLServerSocket)))) contextImpl; + jboolean enableSessionCreation; + JArray< ::java::lang::String * > * enabledCipherSuites; + JArray< ::java::lang::String * > * enabledProtocols; + jboolean needClientAuth; + jboolean wantClientAuth; + jboolean clientMode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLServerSocketImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocket.h b/libjava/gnu/javax/net/ssl/provider/SSLSocket.h new file mode 100644 index 00000000000..ee2ecbbe832 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocket.h @@ -0,0 +1,240 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocket__ +#define __gnu_javax_net_ssl_provider_SSLSocket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + namespace sig + { + class ISignature; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SRPTrustManager; + namespace provider + { + class Alert; + class CipherSuite; + class Finished; + class ProtocolVersion; + class RecordInput; + class SSLSocket; + class Session; + class SessionContext; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace net + { + class InetAddress; + class Socket; + class SocketAddress; + } + namespace nio + { + namespace channels + { + class SocketChannel; + } + } + namespace security + { + class SecureRandom; + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class HandshakeCompletedListener; + class SSLSession; + class X509KeyManager; + class X509TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocket : public ::javax::net::ssl::SSLSocket +{ + +public: // actually package-private + SSLSocket(::java::net::Socket *, ::java::lang::String *, jint, jboolean); + SSLSocket(::java::net::Socket *, ::java::nio::channels::SocketChannel *); + SSLSocket(); + SSLSocket(::java::net::InetAddress *, jint); + SSLSocket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint); + SSLSocket(::java::lang::String *, jint); + SSLSocket(::java::lang::String *, jint, ::java::net::InetAddress *, jint); +private: + void initialize(); +public: + void addHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *); + void removeHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *); + JArray< ::java::lang::String * > * getEnabledProtocols(); + void setEnabledProtocols(JArray< ::java::lang::String * > *); + JArray< ::java::lang::String * > * getSupportedProtocols(); + JArray< ::java::lang::String * > * getEnabledCipherSuites(); + void setEnabledCipherSuites(JArray< ::java::lang::String * > *); + JArray< ::java::lang::String * > * getSupportedCipherSuites(); + ::javax::net::ssl::SSLSession * getSession(); + jboolean getEnableSessionCreation(); + void setEnableSessionCreation(jboolean); + jboolean getNeedClientAuth(); + void setNeedClientAuth(jboolean); + jboolean getWantClientAuth(); + void setWantClientAuth(jboolean); + jboolean getUseClientMode(); + void setUseClientMode(jboolean); + void startHandshake(); + ::java::net::InetAddress * getInetAddress(); + ::java::net::InetAddress * getLocalAddress(); + jint getPort(); + jint getLocalPort(); + ::java::io::InputStream * getInputStream(); + ::java::io::OutputStream * getOutputStream(); + void setTcpNoDelay(jboolean); + jboolean getTcpNoDelay(); + void setSoLinger(jboolean, jint); + jint getSoLinger(); + void sendUrgentData(jint); + void setSoTimeout(jint); + jint getSoTimeout(); + void setSendBufferSize(jint); + jint getSendBufferSize(); + void setReceiveBufferSize(jint); + jint getReceiveBufferSize(); + void close(); + ::java::lang::String * toString(); + void connect(::java::net::SocketAddress *); + void connect(::java::net::SocketAddress *, jint); + void bind(::java::net::SocketAddress *); + ::java::net::SocketAddress * getLocalSocketAddress(); + ::java::nio::channels::SocketChannel * getChannel(); + jboolean isBound(); + jboolean isClosed(); + void setOOBInline(jboolean); + jboolean getOOBInline(); + void setKeepAlive(jboolean); + jboolean getKeepAlive(); + void setTrafficClass(jint); + jint getTrafficClass(); + void setReuseAddress(jboolean); + jboolean getReuseAddress(); + void shutdownInput(); + void shutdownOutput(); + jboolean isConnected(); + jboolean isInputShutdown(); + jboolean isOutputShutdown(); +public: // actually protected + void finalize(); +public: // actually package-private + void setSessionContext(::gnu::javax::net::ssl::provider::SessionContext *); + void setEnabledCipherSuites(::java::util::List *); + void setEnabledProtocols(::java::util::SortedSet *); + void setSRPTrustManager(::gnu::javax::net::ssl::SRPTrustManager *); + void setTrustManager(::javax::net::ssl::X509TrustManager *); + void setKeyManager(::javax::net::ssl::X509KeyManager *); + void setRandom(::java::security::SecureRandom *); + void sendAlert(::gnu::javax::net::ssl::provider::Alert *); + ::gnu::javax::net::ssl::provider::Alert * checkAlert(); + void checkHandshakeDone(); +private: + void changeCipherSpec(); + void readChangeCipherSpec(); + void setupIO(); + void handshakeCompleted(); + void doClientHandshake(); + void doServerHandshake(); + JArray< JArray< jbyte > * > * generateKeys(JArray< jbyte > *, JArray< jbyte > *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + ::gnu::javax::net::ssl::provider::Finished * generateFinished(::gnu::javax::net::ssl::provider::ProtocolVersion *, ::gnu::java::security::hash::IMessageDigest *, ::gnu::java::security::hash::IMessageDigest *, jboolean); + ::gnu::javax::net::ssl::provider::Alert * unexpectedMessage(); + void throwUnexpectedMessage(); + ::gnu::javax::net::ssl::provider::Alert * handshakeFailure(); + void throwHandshakeFailure(); + ::gnu::javax::net::ssl::provider::Alert * internalError(); + void throwInternalError(); + ::gnu::javax::net::ssl::provider::Alert * peerUnverified(JArray< ::java::security::cert::X509Certificate * > *); + void throwPeerUnverified(JArray< ::java::security::cert::X509Certificate * > *); + ::gnu::javax::net::ssl::provider::CipherSuite * selectSuite(::java::util::List *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + ::java::lang::String * askUserName(::java::lang::String *); + ::java::lang::String * askPassword(::java::lang::String *); + jboolean checkCertificates(JArray< ::java::security::cert::X509Certificate * > *); + void updateSig(::gnu::java::security::sig::ISignature *, ::java::math::BigInteger *); + void fatal(); + static const jboolean DEBUG_HANDSHAKE_LAYER = 1; + static const jboolean DEBUG_KEY_EXCHANGE = 0; + static ::java::util::logging::Logger * logger; + ::java::net::Socket * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLSocket)))) underlyingSocket; + jint underlyingPort; + jboolean autoClose; +public: // actually package-private + ::gnu::javax::net::ssl::provider::SessionContext * sessionContext; + ::gnu::javax::net::ssl::provider::Session * session; + ::java::util::LinkedList * handshakeListeners; +private: + jboolean clientMode; + jboolean wantClientAuth; + jboolean needClientAuth; + jboolean createSessions; + jboolean handshakeDone; + ::java::lang::String * remoteHost; + ::java::io::InputStream * socketIn; + ::java::io::OutputStream * socketOut; + ::java::io::InputStream * applicationIn; + ::java::io::OutputStream * applicationOut; + ::java::io::InputStream * handshakeIn; + ::java::io::OutputStream * handshakeOut; +public: // actually package-private + ::gnu::javax::net::ssl::provider::RecordInput * recordInput; +private: + jlong handshakeTime; + ::java::nio::channels::SocketChannel * channel; +public: // actually package-private + static ::java::util::SortedSet * supportedProtocols; + static ::java::util::List * supportedSuites; +private: + static JArray< jbyte > * SENDER_CLIENT; + static JArray< jbyte > * SENDER_SERVER; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocket__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketFactory.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketFactory.h new file mode 100644 index 00000000000..ce96e048dc9 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketFactory.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketFactory__ +#define __gnu_javax_net_ssl_provider_SSLSocketFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLSocket; + class SSLSocketFactory; + class SessionContext; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class Socket; + } + namespace security + { + class SecureRandom; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class X509KeyManager; + class X509TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketFactory : public ::javax::net::ssl::SSLSocketFactory +{ + +public: // actually package-private + SSLSocketFactory(::javax::net::ssl::X509TrustManager *, ::javax::net::ssl::X509KeyManager *, ::java::security::SecureRandom *, ::gnu::javax::net::ssl::provider::SessionContext *); +public: + virtual JArray< ::java::lang::String * > * getDefaultCipherSuites(); + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites(); + virtual ::java::net::Socket * createSocket(::java::net::Socket *, ::java::lang::String *, jint, jboolean); + virtual ::java::net::Socket * createSocket(); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint, ::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint); +private: + ::gnu::javax::net::ssl::provider::SSLSocket * setup(::gnu::javax::net::ssl::provider::SSLSocket *); + ::javax::net::ssl::X509TrustManager * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLSocketFactory)))) trustManager; + ::javax::net::ssl::X509KeyManager * keyManager; + ::java::security::SecureRandom * random; + ::gnu::javax::net::ssl::provider::SessionContext * sessionContext; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketFactory__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h new file mode 100644 index 00000000000..eec32a994f5 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketFactoryImpl__ +#define __gnu_javax_net_ssl_provider_SSLSocketFactoryImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLContextImpl; + class SSLSocketFactoryImpl; + class SSLSocketImpl; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class Socket; + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketFactoryImpl : public ::javax::net::ssl::SSLSocketFactory +{ + +public: + SSLSocketFactoryImpl(::gnu::javax::net::ssl::provider::SSLContextImpl *); + virtual ::java::net::Socket * createSocket(::java::net::Socket *, ::java::lang::String *, jint, jboolean); + virtual JArray< ::java::lang::String * > * getDefaultCipherSuites(); + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites(); + virtual ::gnu::javax::net::ssl::provider::SSLSocketImpl * target$createSocket(::java::lang::String *, jint); + virtual ::gnu::javax::net::ssl::provider::SSLSocketImpl * target$createSocket(::java::lang::String *, jint, ::java::net::InetAddress *, jint); + virtual ::gnu::javax::net::ssl::provider::SSLSocketImpl * target$createSocket(::java::net::InetAddress *, jint); + virtual ::gnu::javax::net::ssl::provider::SSLSocketImpl * target$createSocket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint, ::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint); +private: + ::gnu::javax::net::ssl::provider::SSLContextImpl * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLSocketFactory)))) contextImpl; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketFactoryImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$1.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$1.h new file mode 100644 index 00000000000..8596a2fdc43 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$1.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketImpl$1__ +#define __gnu_javax_net_ssl_provider_SSLSocketImpl$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLSocketImpl; + class SSLSocketImpl$1; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketImpl$1 : public ::java::lang::Object +{ + +public: // actually package-private + SSLSocketImpl$1(::gnu::javax::net::ssl::provider::SSLSocketImpl *); +public: + void run(); +public: // actually package-private + ::gnu::javax::net::ssl::provider::SSLSocketImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketImpl$1__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketInputStream.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketInputStream.h new file mode 100644 index 00000000000..3ad9ae0da51 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketInputStream.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketImpl$SocketInputStream__ +#define __gnu_javax_net_ssl_provider_SSLSocketImpl$SocketInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLSocketImpl; + class SSLSocketImpl$SocketInputStream; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketImpl$SocketInputStream : public ::java::io::InputStream +{ + +public: // actually package-private + SSLSocketImpl$SocketInputStream(::gnu::javax::net::ssl::provider::SSLSocketImpl *); +public: + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) inBuffer; + ::java::nio::ByteBuffer * appBuffer; + ::java::io::DataInputStream * in; +public: // actually package-private + ::gnu::javax::net::ssl::provider::SSLSocketImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketImpl$SocketInputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketOutputStream.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketOutputStream.h new file mode 100644 index 00000000000..987eaf81376 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl$SocketOutputStream.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketImpl$SocketOutputStream__ +#define __gnu_javax_net_ssl_provider_SSLSocketImpl$SocketOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLSocketImpl; + class SSLSocketImpl$SocketOutputStream; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketImpl$SocketOutputStream : public ::java::io::OutputStream +{ + +public: // actually package-private + SSLSocketImpl$SocketOutputStream(::gnu::javax::net::ssl::provider::SSLSocketImpl *); +public: + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(jint); + virtual void close(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) buffer; + ::java::io::OutputStream * out; +public: // actually package-private + ::gnu::javax::net::ssl::provider::SSLSocketImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketImpl$SocketOutputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl.h new file mode 100644 index 00000000000..309706bba05 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketImpl.h @@ -0,0 +1,160 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketImpl__ +#define __gnu_javax_net_ssl_provider_SSLSocketImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace debug + { + class SystemLogger; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLContextImpl; + class SSLEngineImpl; + class SSLSocketImpl; + } + } + } + } + } + namespace java + { + namespace net + { + class InetAddress; + class Socket; + class SocketAddress; + } + namespace nio + { + namespace channels + { + class SocketChannel; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class HandshakeCompletedListener; + class SSLSession; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketImpl : public ::javax::net::ssl::SSLSocket +{ + +public: + SSLSocketImpl(::gnu::javax::net::ssl::provider::SSLContextImpl *, ::java::lang::String *, jint); + SSLSocketImpl(::gnu::javax::net::ssl::provider::SSLContextImpl *, ::java::lang::String *, jint, ::java::net::Socket *, jboolean); + virtual void addHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *); + virtual jboolean getEnableSessionCreation(); + virtual JArray< ::java::lang::String * > * getEnabledCipherSuites(); + virtual JArray< ::java::lang::String * > * getEnabledProtocols(); + virtual jboolean getNeedClientAuth(); + virtual ::javax::net::ssl::SSLSession * getSession(); + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites(); + virtual JArray< ::java::lang::String * > * getSupportedProtocols(); + virtual jboolean getUseClientMode(); + virtual jboolean getWantClientAuth(); + virtual void removeHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *); + virtual void setEnableSessionCreation(jboolean); + virtual void setEnabledCipherSuites(JArray< ::java::lang::String * > *); + virtual void setEnabledProtocols(JArray< ::java::lang::String * > *); + virtual void setNeedClientAuth(jboolean); + virtual void setUseClientMode(jboolean); + virtual void setWantClientAuth(jboolean); + virtual void startHandshake(); +public: // actually package-private + virtual void doHandshake(); +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 * getRemoteSocketAddress(); + virtual ::java::net::SocketAddress * getLocalSocketAddress(); + virtual ::java::nio::channels::SocketChannel * getChannel(); + 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 setTrafficClass(jint); + virtual jint getTrafficClass(); + virtual void setReuseAddress(jboolean); + virtual jboolean getReuseAddress(); + virtual void close(); + virtual void shutdownInput(); + virtual void shutdownOutput(); + virtual jboolean isConnected(); + virtual jboolean isBound(); + virtual jboolean isClosed(); + virtual jboolean isInputShutdown(); + virtual jboolean isOutputShutdown(); +public: // actually package-private + static ::java::net::Socket * access$0(::gnu::javax::net::ssl::provider::SSLSocketImpl *); + static ::java::io::OutputStream * access$1(::gnu::javax::net::ssl::provider::SSLSocketImpl *); + static jboolean access$2(::gnu::javax::net::ssl::provider::SSLSocketImpl *); + static ::gnu::javax::net::ssl::provider::SSLEngineImpl * access$3(::gnu::javax::net::ssl::provider::SSLSocketImpl *); + static ::java::io::IOException * access$4(::gnu::javax::net::ssl::provider::SSLSocketImpl *); + static ::java::io::InputStream * access$5(::gnu::javax::net::ssl::provider::SSLSocketImpl *); + static void access$6(::gnu::javax::net::ssl::provider::SSLSocketImpl *, ::java::io::IOException *); + static JArray< jint > * $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus(); +private: + static ::gnu::classpath::debug::SystemLogger * logger; + ::gnu::javax::net::ssl::provider::SSLEngineImpl * __attribute__((aligned(__alignof__( ::javax::net::ssl::SSLSocket)))) engine; + ::java::util::Set * listeners; + ::java::net::Socket * underlyingSocket; + jboolean isHandshaking; + ::java::io::IOException * handshakeException; + jboolean initialHandshakeDone; + jboolean autoClose; +public: // actually package-private + static jboolean $assertionsDisabled; +private: + static JArray< jint > * $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketInputStream.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketInputStream.h new file mode 100644 index 00000000000..22b8e5fa98e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketInputStream.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketInputStream__ +#define __gnu_javax_net_ssl_provider_SSLSocketInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLSocket; + class SSLSocketInputStream; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketInputStream : public ::java::io::FilterInputStream +{ + +public: // actually package-private + SSLSocketInputStream(::java::io::InputStream *, ::gnu::javax::net::ssl::provider::SSLSocket *); + SSLSocketInputStream(::java::io::InputStream *, ::gnu::javax::net::ssl::provider::SSLSocket *, jboolean); +public: + virtual jint available(); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + jboolean checkAlert(); + ::gnu::javax::net::ssl::provider::SSLSocket * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) socket; + jboolean checkHandshake; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketInputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLSocketOutputStream.h b/libjava/gnu/javax/net/ssl/provider/SSLSocketOutputStream.h new file mode 100644 index 00000000000..e62ee5dbc77 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLSocketOutputStream.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLSocketOutputStream__ +#define __gnu_javax_net_ssl_provider_SSLSocketOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLSocket; + class SSLSocketOutputStream; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLSocketOutputStream : public ::java::io::FilterOutputStream +{ + +public: // actually package-private + SSLSocketOutputStream(::java::io::OutputStream *, ::gnu::javax::net::ssl::provider::SSLSocket *); + SSLSocketOutputStream(::java::io::OutputStream *, ::gnu::javax::net::ssl::provider::SSLSocket *, jboolean); +public: + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); +private: + void checkAlert(); + ::gnu::javax::net::ssl::provider::SSLSocket * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) socket; + jboolean checkHandshake; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLSocketOutputStream__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.h b/libjava/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.h new file mode 100644 index 00000000000..bdc243a427f --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLv3HMacMD5Impl__ +#define __gnu_javax_net_ssl_provider_SSLv3HMacMD5Impl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLHMac; + class SSLv3HMacMD5Impl; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLv3HMacMD5Impl : public ::javax::crypto::MacSpi +{ + +public: + SSLv3HMacMD5Impl(); +public: // actually protected + virtual JArray< jbyte > * engineDoFinal(); + virtual jint engineGetMacLength(); + virtual void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); + virtual void engineReset(); + virtual void engineUpdate(jbyte); + virtual void engineUpdate(JArray< jbyte > *, jint, jint); +private: + ::gnu::javax::net::ssl::provider::SSLHMac * __attribute__((aligned(__alignof__( ::javax::crypto::MacSpi)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLv3HMacMD5Impl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.h b/libjava/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.h new file mode 100644 index 00000000000..698d8803d99 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SSLv3HMacSHAImpl__ +#define __gnu_javax_net_ssl_provider_SSLv3HMacSHAImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SSLHMac; + class SSLv3HMacSHAImpl; + } + } + } + } + } + namespace java + { + namespace security + { + class Key; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } +} + +class gnu::javax::net::ssl::provider::SSLv3HMacSHAImpl : public ::javax::crypto::MacSpi +{ + +public: + SSLv3HMacSHAImpl(); +public: // actually protected + virtual JArray< jbyte > * engineDoFinal(); + virtual jint engineGetMacLength(); + virtual void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); + virtual void engineReset(); + virtual void engineUpdate(jbyte); + virtual void engineUpdate(JArray< jbyte > *, jint, jint); +private: + ::gnu::javax::net::ssl::provider::SSLHMac * __attribute__((aligned(__alignof__( ::javax::crypto::MacSpi)))) adaptee; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SSLv3HMacSHAImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/SecurityParameters.h b/libjava/gnu/javax/net/ssl/provider/SecurityParameters.h new file mode 100644 index 00000000000..e96e7da22de --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SecurityParameters.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SecurityParameters__ +#define __gnu_javax_net_ssl_provider_SecurityParameters__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ContentType; + class ProtocolVersion; + class SecurityParameters; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SecurityParameters : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * decrypt(JArray< jbyte > *, ::gnu::javax::net::ssl::provider::ProtocolVersion *, ::gnu::javax::net::ssl::provider::ContentType *) = 0; + virtual JArray< jbyte > * encrypt(JArray< jbyte > *, jint, jint, ::gnu::javax::net::ssl::provider::ContentType *) = 0; + virtual void reset() = 0; + virtual ::gnu::javax::net::ssl::provider::ProtocolVersion * getVersion() = 0; + virtual void setVersion(::gnu::javax::net::ssl::provider::ProtocolVersion *) = 0; + virtual void setDeflating(jboolean) = 0; + virtual void setInflating(jboolean) = 0; + virtual jint getFragmentLength() = 0; + virtual void setFragmentLength(jint) = 0; + virtual void setInCipher(::java::lang::Object *) = 0; + virtual void setOutCipher(::java::lang::Object *) = 0; + virtual void setInMac(::java::lang::Object *) = 0; + virtual void setOutMac(::java::lang::Object *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_provider_SecurityParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.h b/libjava/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.h new file mode 100644 index 00000000000..5d35d5cd93d --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerDHE_PSKParameters__ +#define __gnu_javax_net_ssl_provider_ServerDHE_PSKParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyExchangeAlgorithm; + class ServerDHE_PSKParameters; + class ServerDHParams; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerDHE_PSKParameters : public ::java::lang::Object +{ + +public: + ServerDHE_PSKParameters(::java::nio::ByteBuffer *); + ServerDHE_PSKParameters(::java::lang::String *, ::gnu::javax::net::ssl::provider::ServerDHParams *); + ServerDHE_PSKParameters(::java::lang::String *, ::java::nio::ByteBuffer *); + virtual ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * algorithm(); + virtual jint length(); +private: + jint hintLength(); +public: + virtual ::java::lang::String * identityHint(); + virtual ::gnu::javax::net::ssl::provider::ServerDHParams * params(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerDHE_PSKParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerDHParams.h b/libjava/gnu/javax/net/ssl/provider/ServerDHParams.h new file mode 100644 index 00000000000..9585ab8fa64 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerDHParams.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerDHParams__ +#define __gnu_javax_net_ssl_provider_ServerDHParams__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyExchangeAlgorithm; + class ServerDHParams; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerDHParams : public ::java::lang::Object +{ + +public: + ServerDHParams(::java::nio::ByteBuffer *); + ServerDHParams(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + virtual ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * algorithm(); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::math::BigInteger * p(); + virtual ::java::math::BigInteger * g(); + virtual ::java::math::BigInteger * y(); + virtual void setP(::java::math::BigInteger *); + virtual void setG(::java::math::BigInteger *); + virtual void setY(::java::math::BigInteger *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerDHParams__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHandshake$CertLoader.h b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$CertLoader.h new file mode 100644 index 00000000000..270ea850ee8 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$CertLoader.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHandshake$CertLoader__ +#define __gnu_javax_net_ssl_provider_ServerHandshake$CertLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerHandshake; + class ServerHandshake$CertLoader; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerHandshake$CertLoader : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ServerHandshake$CertLoader(::gnu::javax::net::ssl::provider::ServerHandshake *); +public: + virtual void implRun(); +public: // actually package-private + ::gnu::javax::net::ssl::provider::ServerHandshake * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHandshake$CertLoader__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHandshake$GenDH.h b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$GenDH.h new file mode 100644 index 00000000000..35b1fdc23c2 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$GenDH.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHandshake$GenDH__ +#define __gnu_javax_net_ssl_provider_ServerHandshake$GenDH__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerHandshake; + class ServerHandshake$GenDH; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerHandshake$GenDH : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + + ServerHandshake$GenDH(::gnu::javax::net::ssl::provider::ServerHandshake *); +public: // actually protected + virtual void implRun(); +public: // actually package-private + ServerHandshake$GenDH(::gnu::javax::net::ssl::provider::ServerHandshake *, ::gnu::javax::net::ssl::provider::ServerHandshake$GenDH *); + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) paramsBuffer; + ::java::nio::ByteBuffer * sigBuffer; + ::gnu::javax::net::ssl::provider::ServerHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHandshake$GenDH__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSAKeyExchange.h b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSAKeyExchange.h new file mode 100644 index 00000000000..d3c84a735dc --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSAKeyExchange.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHandshake$RSAKeyExchange__ +#define __gnu_javax_net_ssl_provider_ServerHandshake$RSAKeyExchange__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerHandshake; + class ServerHandshake$RSAKeyExchange; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerHandshake$RSAKeyExchange : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ServerHandshake$RSAKeyExchange(::gnu::javax::net::ssl::provider::ServerHandshake *, JArray< jbyte > *); +public: + virtual void implRun(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) encryptedPreMasterSecret; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ServerHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHandshake$RSAKeyExchange__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSA_PSKExchange.h b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSA_PSKExchange.h new file mode 100644 index 00000000000..ef5374f765d --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$RSA_PSKExchange.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHandshake$RSA_PSKExchange__ +#define __gnu_javax_net_ssl_provider_ServerHandshake$RSA_PSKExchange__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerHandshake; + class ServerHandshake$RSA_PSKExchange; + } + } + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class gnu::javax::net::ssl::provider::ServerHandshake$RSA_PSKExchange : public ::gnu::javax::net::ssl::provider::DelegatedTask +{ + +public: // actually package-private + ServerHandshake$RSA_PSKExchange(::gnu::javax::net::ssl::provider::ServerHandshake *, JArray< jbyte > *, ::javax::crypto::SecretKey *); +public: + virtual void implRun(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::DelegatedTask)))) encryptedPreMasterSecret; + ::javax::crypto::SecretKey * psKey; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ServerHandshake * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHandshake$RSA_PSKExchange__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHandshake$State.h b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$State.h new file mode 100644 index 00000000000..b993c0873d0 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHandshake$State.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHandshake$State__ +#define __gnu_javax_net_ssl_provider_ServerHandshake$State__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerHandshake$State; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerHandshake$State : public ::java::lang::Enum +{ + + ServerHandshake$State(::java::lang::String *, jint, jboolean, jboolean); +public: // actually package-private + jboolean isReadState(); + jboolean isWriteState(); +public: + static JArray< ::gnu::javax::net::ssl::provider::ServerHandshake$State * > * values(); + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * WRITE_HELLO_REQUEST; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * WRITE_SERVER_HELLO; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * WRITE_CERTIFICATE; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * WRITE_SERVER_KEY_EXCHANGE; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * WRITE_CERTIFICATE_REQUEST; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * WRITE_SERVER_HELLO_DONE; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * WRITE_FINISHED; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * READ_CLIENT_HELLO; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * READ_CERTIFICATE; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * READ_CLIENT_KEY_EXCHANGE; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * READ_CERTIFICATE_VERIFY; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * READ_FINISHED; + static ::gnu::javax::net::ssl::provider::ServerHandshake$State * DONE; +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Enum)))) isWriteState__; + jboolean isReadState__; + static JArray< ::gnu::javax::net::ssl::provider::ServerHandshake$State * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHandshake$State__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHandshake.h b/libjava/gnu/javax/net/ssl/provider/ServerHandshake.h new file mode 100644 index 00000000000..cf32a8da695 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHandshake.h @@ -0,0 +1,129 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHandshake__ +#define __gnu_javax_net_ssl_provider_ServerHandshake__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class AbstractHandshake$CertVerifier; + class CipherSuite; + class CipherSuiteList; + class CompressionMethod; + class CompressionMethodList; + class DelegatedTask; + class ProtocolVersion; + class SSLEngineImpl; + class ServerHandshake; + class ServerHandshake$CertLoader; + class ServerHandshake$GenDH; + class ServerHandshake$State; + class ServerNameList; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class KeyPair; + class PrivateKey; + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngineResult$HandshakeStatus; + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerHandshake : public ::gnu::javax::net::ssl::provider::AbstractHandshake +{ + +public: // actually package-private + ServerHandshake(jboolean, ::gnu::javax::net::ssl::provider::SSLEngineImpl *); +private: + static ::gnu::javax::net::ssl::provider::ProtocolVersion * chooseProtocol(::gnu::javax::net::ssl::provider::ProtocolVersion *, JArray< ::java::lang::String * > *); + ::gnu::javax::net::ssl::provider::CipherSuite * chooseSuite(::gnu::javax::net::ssl::provider::CipherSuiteList *, JArray< ::java::lang::String * > *, ::gnu::javax::net::ssl::provider::ProtocolVersion *); + static ::gnu::javax::net::ssl::provider::CompressionMethod * chooseCompression(::gnu::javax::net::ssl::provider::CompressionMethodList *); +public: // actually protected + virtual jboolean doHash(); +public: + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleInput(); + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * implHandleOutput(::java::nio::ByteBuffer *); +public: // actually package-private + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * status(); + virtual void checkKeyExchange(); + virtual void handleV2Hello(::java::nio::ByteBuffer *); +private: + ::java::nio::ByteBuffer * signParams(::java::nio::ByteBuffer *); + void verifyClient(JArray< jbyte > *); +public: // actually package-private + static void access$0(::gnu::javax::net::ssl::provider::ServerHandshake *, ::java::lang::String *); + static ::java::lang::String * access$1(::gnu::javax::net::ssl::provider::ServerHandshake *); + static void access$2(::gnu::javax::net::ssl::provider::ServerHandshake *, ::java::security::cert::X509Certificate *); + static void access$3(::gnu::javax::net::ssl::provider::ServerHandshake *, ::java::security::PrivateKey *); + static ::java::security::cert::X509Certificate * access$4(::gnu::javax::net::ssl::provider::ServerHandshake *); + static void access$5(::gnu::javax::net::ssl::provider::ServerHandshake *, ::java::security::KeyPair *); + static ::java::security::KeyPair * access$6(::gnu::javax::net::ssl::provider::ServerHandshake *); + static ::java::nio::ByteBuffer * access$7(::gnu::javax::net::ssl::provider::ServerHandshake *, ::java::nio::ByteBuffer *); + static ::java::security::PrivateKey * access$8(::gnu::javax::net::ssl::provider::ServerHandshake *); + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Extension$Type(); + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$KeyExchangeAlgorithm(); + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$ServerHandshake$State(); +private: + ::gnu::javax::net::ssl::provider::ServerHandshake$State * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::AbstractHandshake)))) state; + ::java::nio::ByteBuffer * outBuffer; + jboolean clientHadExtensions; + jboolean continuedSession; + ::gnu::javax::net::ssl::provider::ServerNameList * requestedNames; + ::java::lang::String * keyAlias; + ::java::security::cert::X509Certificate * clientCert; + ::java::security::cert::X509Certificate * localCert; + jboolean helloV2; + ::java::security::KeyPair * dhPair; + ::java::security::PrivateKey * serverKey; + ::gnu::javax::net::ssl::provider::ServerHandshake$GenDH * genDH; + ::gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier * certVerifier; + ::gnu::javax::net::ssl::provider::ServerHandshake$CertLoader * certLoader; + ::gnu::javax::net::ssl::provider::DelegatedTask * keyExchangeTask; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$Extension$Type__; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$KeyExchangeAlgorithm__; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$ServerHandshake$State__; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHandshake__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHello.h b/libjava/gnu/javax/net/ssl/provider/ServerHello.h new file mode 100644 index 00000000000..a26dd829e86 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHello.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHello__ +#define __gnu_javax_net_ssl_provider_ServerHello__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class CompressionMethod; + class ExtensionList; + class ProtocolVersion; + class Random; + class ServerHello; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerHello : public ::java::lang::Object +{ + +public: + ServerHello(::java::nio::ByteBuffer *); + virtual jint length(); + virtual ::gnu::javax::net::ssl::provider::ProtocolVersion * version(); + virtual ::gnu::javax::net::ssl::provider::Random * random(); + virtual JArray< jbyte > * sessionId(); + virtual ::gnu::javax::net::ssl::provider::CipherSuite * cipherSuite(); + virtual ::gnu::javax::net::ssl::provider::CompressionMethod * compressionMethod(); + virtual jint extensionsLength(); + virtual ::gnu::javax::net::ssl::provider::ExtensionList * extensions(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +public: // actually protected + static const jint RANDOM_OFFSET = 2; + static const jint SESSID_OFFSET = 34; + static const jint SESSID_OFFSET2 = 35; + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + jboolean disableExtensions; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHello__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHelloBuilder.h b/libjava/gnu/javax/net/ssl/provider/ServerHelloBuilder.h new file mode 100644 index 00000000000..8d55e6a1242 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHelloBuilder.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHelloBuilder__ +#define __gnu_javax_net_ssl_provider_ServerHelloBuilder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class CompressionMethod; + class ProtocolVersion; + class ServerHelloBuilder; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerHelloBuilder : public ::gnu::javax::net::ssl::provider::ServerHello +{ + +public: + ServerHelloBuilder(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual void setVersion(::gnu::javax::net::ssl::provider::ProtocolVersion *); + virtual void setSessionId(JArray< jbyte > *); + virtual void setSessionId(JArray< jbyte > *, jint, jint); + virtual void setCipherSuite(::gnu::javax::net::ssl::provider::CipherSuite *); + virtual void setCompressionMethod(::gnu::javax::net::ssl::provider::CompressionMethod *); + virtual void setDisableExtensions(jboolean); + virtual void setExtensionsLength(jint); + virtual void setExtensions(::java::nio::ByteBuffer *); + virtual void ensureCapacity(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHelloBuilder__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerHelloDone.h b/libjava/gnu/javax/net/ssl/provider/ServerHelloDone.h new file mode 100644 index 00000000000..51550c72aa6 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerHelloDone.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerHelloDone__ +#define __gnu_javax_net_ssl_provider_ServerHelloDone__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerHelloDone; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerHelloDone : public ::java::lang::Object +{ + +public: + ServerHelloDone(); + virtual jint length(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerHelloDone__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerKeyExchange.h b/libjava/gnu/javax/net/ssl/provider/ServerKeyExchange.h new file mode 100644 index 00000000000..04ec69c5c70 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerKeyExchange.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerKeyExchange__ +#define __gnu_javax_net_ssl_provider_ServerKeyExchange__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class ServerKeyExchange; + class ServerKeyExchangeParams; + class Signature; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerKeyExchange : public ::java::lang::Object +{ + +public: + ServerKeyExchange(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::CipherSuite *); + virtual jint length(); + virtual ::gnu::javax::net::ssl::provider::ServerKeyExchangeParams * params(); + virtual ::gnu::javax::net::ssl::provider::Signature * signature(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +public: // actually protected + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::gnu::javax::net::ssl::provider::CipherSuite * suite; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerKeyExchange__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.h b/libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.h new file mode 100644 index 00000000000..abc1363aa32 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerKeyExchangeBuilder__ +#define __gnu_javax_net_ssl_provider_ServerKeyExchangeBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class CipherSuite; + class ServerKeyExchangeBuilder; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerKeyExchangeBuilder : public ::gnu::javax::net::ssl::provider::ServerKeyExchange +{ + +public: + ServerKeyExchangeBuilder(::gnu::javax::net::ssl::provider::CipherSuite *); + virtual ::java::nio::ByteBuffer * buffer(); + virtual void setParams(::java::nio::ByteBuffer *); + virtual void setSignature(::java::nio::ByteBuffer *); + virtual void ensureCapacity(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerKeyExchangeBuilder__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.h b/libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.h new file mode 100644 index 00000000000..4ff4d2079fb --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerKeyExchangeParams__ +#define __gnu_javax_net_ssl_provider_ServerKeyExchangeParams__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyExchangeAlgorithm; + class ServerKeyExchangeParams; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerKeyExchangeParams : public ::java::lang::Object +{ + +public: + virtual ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * algorithm() = 0; + virtual jint length() = 0; + virtual ::java::lang::String * toString(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_net_ssl_provider_ServerKeyExchangeParams__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerNameList$Iterator.h b/libjava/gnu/javax/net/ssl/provider/ServerNameList$Iterator.h new file mode 100644 index 00000000000..6ee36ed59e9 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerNameList$Iterator.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerNameList$Iterator__ +#define __gnu_javax_net_ssl_provider_ServerNameList$Iterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerNameList; + class ServerNameList$Iterator; + class ServerNameList$ServerName; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerNameList$Iterator : public ::java::lang::Object +{ + +public: + ServerNameList$Iterator(::gnu::javax::net::ssl::provider::ServerNameList *); + virtual jboolean hasNext(); + virtual ::gnu::javax::net::ssl::provider::ServerNameList$ServerName * target$next(); + virtual void remove(); + virtual ::java::lang::Object * next(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; +public: // actually package-private + ::gnu::javax::net::ssl::provider::ServerNameList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerNameList$Iterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerNameList$NameType.h b/libjava/gnu/javax/net/ssl/provider/ServerNameList$NameType.h new file mode 100644 index 00000000000..363e89f7b72 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerNameList$NameType.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerNameList$NameType__ +#define __gnu_javax_net_ssl_provider_ServerNameList$NameType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerNameList$NameType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::ServerNameList$NameType : public ::java::lang::Enum +{ + + ServerNameList$NameType(::java::lang::String *, jint, jint); +public: + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::ServerNameList$NameType * > * values(); + static ::gnu::javax::net::ssl::provider::ServerNameList$NameType * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::ServerNameList$NameType * HOST_NAME; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::ServerNameList$NameType * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerNameList$NameType__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerNameList$ServerName.h b/libjava/gnu/javax/net/ssl/provider/ServerNameList$ServerName.h new file mode 100644 index 00000000000..1aa13b41752 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerNameList$ServerName.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerNameList$ServerName__ +#define __gnu_javax_net_ssl_provider_ServerNameList$ServerName__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerNameList$NameType; + class ServerNameList$ServerName; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerNameList$ServerName : public ::java::lang::Object +{ + +public: + ServerNameList$ServerName(::java::nio::ByteBuffer *); + ServerNameList$ServerName(::gnu::javax::net::ssl::provider::ServerNameList$NameType *, ::java::lang::String *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::gnu::javax::net::ssl::provider::ServerNameList$NameType * type(); + virtual ::java::lang::String * name(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerNameList$ServerName__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerNameList.h b/libjava/gnu/javax/net/ssl/provider/ServerNameList.h new file mode 100644 index 00000000000..a808e0d6b91 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerNameList.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerNameList__ +#define __gnu_javax_net_ssl_provider_ServerNameList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class ServerNameList; + class ServerNameList$ServerName; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerNameList : public ::gnu::javax::net::ssl::provider::Extension$Value +{ + +public: + ServerNameList(::java::nio::ByteBuffer *); + ServerNameList(::java::util::List *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual jint size(); + virtual ::gnu::javax::net::ssl::provider::ServerNameList$ServerName * get(jint); + virtual void setLength(jint); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + virtual ::java::util::Iterator * iterator(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::Extension$Value)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerNameList__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerPSKParameters.h b/libjava/gnu/javax/net/ssl/provider/ServerPSKParameters.h new file mode 100644 index 00000000000..bf1bc27dd11 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerPSKParameters.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerPSKParameters__ +#define __gnu_javax_net_ssl_provider_ServerPSKParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyExchangeAlgorithm; + class ServerPSKParameters; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerPSKParameters : public ::java::lang::Object +{ + +public: + ServerPSKParameters(::java::nio::ByteBuffer *); + ServerPSKParameters(::java::lang::String *); + virtual ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * algorithm(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual jint length(); + virtual ::java::lang::String * identityHint(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerPSKParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerRSAParams.h b/libjava/gnu/javax/net/ssl/provider/ServerRSAParams.h new file mode 100644 index 00000000000..21201fe25d2 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerRSAParams.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerRSAParams__ +#define __gnu_javax_net_ssl_provider_ServerRSAParams__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyExchangeAlgorithm; + class ServerRSAParams; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerRSAParams : public ::java::lang::Object +{ + +public: + ServerRSAParams(::java::nio::ByteBuffer *); + virtual ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * algorithm(); + virtual jint length(); + virtual ::java::math::BigInteger * modulus(); + virtual ::java::math::BigInteger * exponent(); + virtual void setModulus(::java::math::BigInteger *); + virtual void setExponent(::java::math::BigInteger *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerRSAParams__ diff --git a/libjava/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.h b/libjava/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.h new file mode 100644 index 00000000000..ac7fca20f66 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_ServerRSA_PSKParameters__ +#define __gnu_javax_net_ssl_provider_ServerRSA_PSKParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class KeyExchangeAlgorithm; + class ServerRSA_PSKParameters; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::ServerRSA_PSKParameters : public ::gnu::javax::net::ssl::provider::ServerPSKParameters +{ + +public: + ServerRSA_PSKParameters(::java::nio::ByteBuffer *); + ServerRSA_PSKParameters(::java::lang::String *); + virtual ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm * algorithm(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_ServerRSA_PSKParameters__ diff --git a/libjava/gnu/javax/net/ssl/provider/Session$ID.h b/libjava/gnu/javax/net/ssl/provider/Session$ID.h new file mode 100644 index 00000000000..849f94155df --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Session$ID.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Session$ID__ +#define __gnu_javax_net_ssl_provider_Session$ID__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Session$ID; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Session$ID : public ::java::lang::Object +{ + +public: // actually package-private + Session$ID(JArray< jbyte > *); +public: + JArray< jbyte > * getId(); + jboolean equals(::java::lang::Object *); + jint hashCode(); + jint compareTo(::java::lang::Object *); + ::java::lang::String * toString(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Session$ID__ diff --git a/libjava/gnu/javax/net/ssl/provider/Session.h b/libjava/gnu/javax/net/ssl/provider/Session.h new file mode 100644 index 00000000000..d1f241cc615 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Session.h @@ -0,0 +1,134 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Session__ +#define __gnu_javax_net_ssl_provider_Session__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class SRPTrustManager; + namespace provider + { + class Alert; + class CipherSuite; + class ProtocolVersion; + class SecurityParameters; + class Session; + class Session$ID; + class SessionContext; + } + } + } + } + } + namespace java + { + namespace security + { + class Principal; + class SecureRandom; + namespace cert + { + class Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLPermission; + class SSLSessionContext; + class X509KeyManager; + class X509TrustManager; + } + } + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class gnu::javax::net::ssl::provider::Session : public ::java::lang::Object +{ + +public: // actually package-private + Session(); + Session(jlong); +public: // actually protected + ::java::lang::Object * clone(); +public: + ::java::lang::String * getCipherSuite(); + jlong getCreationTime(); + JArray< jbyte > * getId(); + jlong getLastAccessedTime(); + JArray< ::java::security::cert::Certificate * > * getLocalCertificates(); + JArray< ::java::security::cert::Certificate * > * getPeerCertificates(); + JArray< ::javax::security::cert::X509Certificate * > * getPeerCertificateChain(); + ::java::lang::String * getPeerHost(); + ::java::lang::String * getProtocol(); + ::javax::net::ssl::SSLSessionContext * getSessionContext(); + JArray< ::java::lang::String * > * getValueNames(); + ::java::lang::Object * getValue(::java::lang::String *); + void putValue(::java::lang::String *, ::java::lang::Object *); + void removeValue(::java::lang::String *); + void invalidate(); +public: // actually package-private + void access(); + void setLastAccessedTime(jlong); +public: + jint getApplicationBufferSize() = 0; + ::java::security::Principal * getLocalPrincipal() = 0; + jint getPacketBufferSize() = 0; + jint getPeerPort() = 0; + ::java::security::Principal * getPeerPrincipal() = 0; + jboolean isValid() = 0; +private: + static ::javax::net::ssl::SSLPermission * GET_SESSION_CONTEXT_PERMISSION; + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) creationTime; + ::java::util::Date * lastAccessedTime; +public: // actually package-private + ::gnu::javax::net::ssl::provider::Session$ID * sessionId; + JArray< ::java::security::cert::Certificate * > * localCerts; + JArray< ::java::security::cert::Certificate * > * peerCerts; + JArray< ::javax::security::cert::X509Certificate * > * peerCertChain; + ::java::lang::String * peerHost; + jboolean peerVerified; + ::gnu::javax::net::ssl::provider::SessionContext * context; + ::java::util::HashMap * values; + jboolean valid; + ::java::util::List * enabledSuites; + ::gnu::javax::net::ssl::provider::CipherSuite * cipherSuite; + ::java::util::SortedSet * enabledProtocols; + ::gnu::javax::net::ssl::provider::ProtocolVersion * protocol; + JArray< jbyte > * masterSecret; + ::gnu::javax::net::ssl::SRPTrustManager * srpTrustManager; + ::javax::net::ssl::X509TrustManager * trustManager; + ::javax::net::ssl::X509KeyManager * keyManager; + ::java::security::SecureRandom * random; + ::gnu::javax::net::ssl::provider::SecurityParameters * params; + ::gnu::javax::net::ssl::provider::Alert * currentAlert; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Session__ diff --git a/libjava/gnu/javax/net/ssl/provider/SessionContext.h b/libjava/gnu/javax/net/ssl/provider/SessionContext.h new file mode 100644 index 00000000000..3dab41cd799 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SessionContext.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SessionContext__ +#define __gnu_javax_net_ssl_provider_SessionContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Session; + class Session$ID; + class SessionContext; + } + } + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSession; + } + } + } +} + +class gnu::javax::net::ssl::provider::SessionContext : public ::java::lang::Object +{ + +public: // actually package-private + SessionContext(); +public: + virtual ::java::util::Enumeration * getIds(); + virtual ::javax::net::ssl::SSLSession * getSession(JArray< jbyte > *); + virtual jint getSessionCacheSize(); + virtual void setSessionCacheSize(jint); + virtual jint getSessionTimeout(); + virtual void setSessionTimeout(jint); + virtual ::java::lang::String * toString(); +public: // actually package-private + virtual jboolean addSession(::gnu::javax::net::ssl::provider::Session$ID *, ::gnu::javax::net::ssl::provider::Session *); + virtual jboolean containsSessionID(::gnu::javax::net::ssl::provider::Session$ID *); + virtual jboolean removeSession(::gnu::javax::net::ssl::provider::Session$ID *); + virtual void notifyAccess(::gnu::javax::net::ssl::provider::Session *); +public: // actually protected + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sessions; + jint cacheSize; + jint timeout; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SessionContext__ diff --git a/libjava/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.h b/libjava/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.h new file mode 100644 index 00000000000..287944cb648 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SessionImpl$PrivateData__ +#define __gnu_javax_net_ssl_provider_SessionImpl$PrivateData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SessionImpl$PrivateData; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SessionImpl$PrivateData : public ::java::lang::Object +{ + +public: // actually package-private + SessionImpl$PrivateData(); + static const jlong serialVersionUID = -8040597659545984581LL; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) masterSecret; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SessionImpl$PrivateData__ diff --git a/libjava/gnu/javax/net/ssl/provider/SessionImpl.h b/libjava/gnu/javax/net/ssl/provider/SessionImpl.h new file mode 100644 index 00000000000..d3d5a07998b --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SessionImpl.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SessionImpl__ +#define __gnu_javax_net_ssl_provider_SessionImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class Session$ID; + namespace provider + { + class CipherSuite; + class MaxFragmentLength; + class ProtocolVersion; + class SessionImpl; + class SessionImpl$PrivateData; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + namespace cert + { + class Certificate; + } + } + } + namespace javax + { + namespace crypto + { + class SealedObject; + } + } +} + +class gnu::javax::net::ssl::provider::SessionImpl : public ::gnu::javax::net::ssl::Session +{ + +public: + SessionImpl(); +public: // actually package-private + virtual ::java::security::SecureRandom * random(); +public: + virtual ::java::lang::String * getProtocol(); + virtual void prepare(JArray< jchar > *); + virtual void repair(JArray< jchar > *); + virtual ::javax::crypto::SealedObject * privateData(); + virtual void setPrivateData(::javax::crypto::SealedObject *); +public: // actually package-private + virtual void setApplicationBufferSize(jint); + virtual void setRandom(::java::security::SecureRandom *); + virtual void setTruncatedMac(jboolean); + virtual void setId(::gnu::javax::net::ssl::Session$ID *); + virtual void setLocalCertificates(JArray< ::java::security::cert::Certificate * > *); + virtual void setPeerCertificates(JArray< ::java::security::cert::Certificate * > *); + virtual void setPeerVerified(jboolean); + static const jlong serialVersionUID = 8932976607588442485LL; + ::gnu::javax::net::ssl::provider::CipherSuite * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::Session)))) suite; + ::gnu::javax::net::ssl::provider::ProtocolVersion * version; + JArray< jbyte > * privateDataSalt; + ::javax::crypto::SealedObject * sealedPrivateData; + ::gnu::javax::net::ssl::provider::MaxFragmentLength * maxLength; + ::gnu::javax::net::ssl::provider::SessionImpl$PrivateData * privateData__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SessionImpl__ diff --git a/libjava/gnu/javax/net/ssl/provider/Signature.h b/libjava/gnu/javax/net/ssl/provider/Signature.h new file mode 100644 index 00000000000..4b87ea4afdd --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Signature.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Signature__ +#define __gnu_javax_net_ssl_provider_Signature__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Signature; + class SignatureAlgorithm; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Signature : public ::java::lang::Object +{ + +public: + Signature(::java::nio::ByteBuffer *, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *); + Signature(JArray< jbyte > *, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual JArray< jbyte > * signature(); + virtual void setSignature(JArray< jbyte > *); + virtual void setSignature(JArray< jbyte > *, jint, jint); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer__; + ::gnu::javax::net::ssl::provider::SignatureAlgorithm * alg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Signature__ diff --git a/libjava/gnu/javax/net/ssl/provider/SignatureAlgorithm.h b/libjava/gnu/javax/net/ssl/provider/SignatureAlgorithm.h new file mode 100644 index 00000000000..adca3804a5a --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SignatureAlgorithm.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SignatureAlgorithm__ +#define __gnu_javax_net_ssl_provider_SignatureAlgorithm__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SignatureAlgorithm; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SignatureAlgorithm : public ::java::lang::Enum +{ + + SignatureAlgorithm(::java::lang::String *, jint); +public: + ::java::lang::String * algorithm(); + static JArray< ::gnu::javax::net::ssl::provider::SignatureAlgorithm * > * values(); + static ::gnu::javax::net::ssl::provider::SignatureAlgorithm * valueOf(::java::lang::String *); +public: // actually package-private + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$SignatureAlgorithm(); +public: + static ::gnu::javax::net::ssl::provider::SignatureAlgorithm * ANONYMOUS; + static ::gnu::javax::net::ssl::provider::SignatureAlgorithm * RSA; + static ::gnu::javax::net::ssl::provider::SignatureAlgorithm * DSA; +private: + static JArray< jint > * $SWITCH_TABLE$gnu$javax$net$ssl$provider$SignatureAlgorithm__; + static JArray< ::gnu::javax::net::ssl::provider::SignatureAlgorithm * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SignatureAlgorithm__ diff --git a/libjava/gnu/javax/net/ssl/provider/SimpleSessionContext$1.h b/libjava/gnu/javax/net/ssl/provider/SimpleSessionContext$1.h new file mode 100644 index 00000000000..7db323c28f7 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SimpleSessionContext$1.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SimpleSessionContext$1__ +#define __gnu_javax_net_ssl_provider_SimpleSessionContext$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SimpleSessionContext; + class SimpleSessionContext$1; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SimpleSessionContext$1 : public ::java::lang::Object +{ + +public: // actually package-private + SimpleSessionContext$1(::gnu::javax::net::ssl::provider::SimpleSessionContext *); +public: + jboolean hasMoreElements(); + ::java::lang::Object * nextElement(); +public: // actually package-private + ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) it; + ::gnu::javax::net::ssl::provider::SimpleSessionContext * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SimpleSessionContext$1__ diff --git a/libjava/gnu/javax/net/ssl/provider/SimpleSessionContext.h b/libjava/gnu/javax/net/ssl/provider/SimpleSessionContext.h new file mode 100644 index 00000000000..68795decb98 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SimpleSessionContext.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SimpleSessionContext__ +#define __gnu_javax_net_ssl_provider_SimpleSessionContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + class Session; + namespace provider + { + class SimpleSessionContext; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SimpleSessionContext : public ::gnu::javax::net::ssl::AbstractSessionContext +{ + +public: + SimpleSessionContext(); +public: // actually protected + ::gnu::javax::net::ssl::Session * implGet(JArray< jbyte > *); +public: + void load(JArray< jchar > *); + void put(::gnu::javax::net::ssl::Session *); + void remove(JArray< jbyte > *); + void store(JArray< jchar > *); + ::java::util::Enumeration * getIds(); + jint getSessionCacheSize(); + void setSessionCacheSize(jint); +public: // actually package-private + static ::java::util::HashMap * access$0(::gnu::javax::net::ssl::provider::SimpleSessionContext *); +public: + static const jint DEFAULT_TIMEOUT = 300; +private: + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::AbstractSessionContext)))) store__; + jint storeLimit; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SimpleSessionContext__ diff --git a/libjava/gnu/javax/net/ssl/provider/SynchronizedRandom.h b/libjava/gnu/javax/net/ssl/provider/SynchronizedRandom.h new file mode 100644 index 00000000000..a045e5308f1 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/SynchronizedRandom.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_SynchronizedRandom__ +#define __gnu_javax_net_ssl_provider_SynchronizedRandom__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class SynchronizedRandom; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::SynchronizedRandom : public ::java::lang::Object +{ + +public: // actually package-private + SynchronizedRandom(::gnu::java::security::prng::IRandom *); +public: + virtual ::java::lang::String * name(); + virtual void init(::java::util::Map *); + virtual jbyte nextByte(); + virtual void nextBytes(JArray< jbyte > *, jint, jint); + virtual ::java::lang::Object * clone(); + virtual void addRandomByte(jbyte); + virtual void addRandomBytes(JArray< jbyte > *); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); +private: + ::gnu::java::security::prng::IRandom * __attribute__((aligned(__alignof__( ::java::lang::Object)))) random; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_SynchronizedRandom__ diff --git a/libjava/gnu/javax/net/ssl/provider/TLSHMac.h b/libjava/gnu/javax/net/ssl/provider/TLSHMac.h new file mode 100644 index 00000000000..6948f3f0564 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/TLSHMac.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_TLSHMac__ +#define __gnu_javax_net_ssl_provider_TLSHMac__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace hash + { + class IMessageDigest; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class TLSHMac; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::TLSHMac : public ::gnu::javax::crypto::mac::HMac +{ + +public: // actually package-private + TLSHMac(::gnu::java::security::hash::IMessageDigest *); +public: + virtual void init(::java::util::Map *); +private: + static const jbyte IPAD_BYTE = 54; + static const jbyte OPAD_BYTE = 92; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_TLSHMac__ diff --git a/libjava/gnu/javax/net/ssl/provider/TLSRandom.h b/libjava/gnu/javax/net/ssl/provider/TLSRandom.h new file mode 100644 index 00000000000..737d6c4169e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/TLSRandom.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_TLSRandom__ +#define __gnu_javax_net_ssl_provider_TLSRandom__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + } + } + namespace net + { + namespace ssl + { + namespace provider + { + class TLSRandom; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::TLSRandom : public ::java::lang::Object +{ + +public: // actually package-private + TLSRandom(); +public: + virtual ::java::lang::Object * clone(); + virtual void init(::java::util::Map *); + virtual ::java::lang::String * name(); + virtual jbyte nextByte(); + virtual void nextBytes(JArray< jbyte > *, jint, jint); + virtual void addRandomByte(jbyte); + virtual void addRandomBytes(JArray< jbyte > *); + virtual void addRandomBytes(JArray< jbyte > *, jint, jint); +private: + void fillBuffer(); +public: // actually package-private + static ::java::lang::String * SECRET; + static ::java::lang::String * SEED; +private: + ::gnu::javax::crypto::mac::IMac * __attribute__((aligned(__alignof__( ::java::lang::Object)))) hmac_sha; + ::gnu::javax::crypto::mac::IMac * hmac_md5; + JArray< jbyte > * sha_a; + JArray< jbyte > * md5_a; + JArray< jbyte > * seed; + JArray< jbyte > * buffer; + jint idx; + jboolean init__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_TLSRandom__ diff --git a/libjava/gnu/javax/net/ssl/provider/TruncatedHMAC.h b/libjava/gnu/javax/net/ssl/provider/TruncatedHMAC.h new file mode 100644 index 00000000000..73b4d255857 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/TruncatedHMAC.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_TruncatedHMAC__ +#define __gnu_javax_net_ssl_provider_TruncatedHMAC__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class TruncatedHMAC; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::TruncatedHMAC : public ::gnu::javax::net::ssl::provider::Extension$Value +{ + +public: + TruncatedHMAC(); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_TruncatedHMAC__ diff --git a/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.h b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.h new file mode 100644 index 00000000000..4cdcf79f4bf --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_TrustedAuthorities$AuthoritiesIterator__ +#define __gnu_javax_net_ssl_provider_TrustedAuthorities$AuthoritiesIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class TrustedAuthorities; + class TrustedAuthorities$AuthoritiesIterator; + class TrustedAuthorities$TrustedAuthority; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::TrustedAuthorities$AuthoritiesIterator : public ::java::lang::Object +{ + +public: + TrustedAuthorities$AuthoritiesIterator(::gnu::javax::net::ssl::provider::TrustedAuthorities *); + virtual ::gnu::javax::net::ssl::provider::TrustedAuthorities$TrustedAuthority * target$next(); + virtual jboolean hasNext(); + virtual void remove(); + virtual ::java::lang::Object * next(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; +public: // actually package-private + ::gnu::javax::net::ssl::provider::TrustedAuthorities * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_TrustedAuthorities$AuthoritiesIterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.h b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.h new file mode 100644 index 00000000000..e2b0188c07c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_TrustedAuthorities$IdentifierType__ +#define __gnu_javax_net_ssl_provider_TrustedAuthorities$IdentifierType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class TrustedAuthorities$IdentifierType; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType : public ::java::lang::Enum +{ + + TrustedAuthorities$IdentifierType(::java::lang::String *, jint, jint); +public: + jint getValue(); + static JArray< ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * > * values(); + static ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * valueOf(::java::lang::String *); + static ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * PRE_AGREED; + static ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * KEY_SHA1_HASH; + static ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * X509_NAME; + static ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * CERT_SHA1_HASH; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Enum)))) value; + static JArray< ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_TrustedAuthorities$IdentifierType__ diff --git a/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.h b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.h new file mode 100644 index 00000000000..6101a829dce --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_TrustedAuthorities$TrustedAuthority__ +#define __gnu_javax_net_ssl_provider_TrustedAuthorities$TrustedAuthority__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class TrustedAuthorities$IdentifierType; + class TrustedAuthorities$TrustedAuthority; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500Principal; + } + } + } + } +} + +class gnu::javax::net::ssl::provider::TrustedAuthorities$TrustedAuthority : public ::java::lang::Object +{ + +public: + TrustedAuthorities$TrustedAuthority(::java::nio::ByteBuffer *); + virtual jint length(); + virtual JArray< jbyte > * sha1Hash(); + virtual ::javax::security::auth::x500::X500Principal * name(); + virtual ::gnu::javax::net::ssl::provider::TrustedAuthorities$IdentifierType * type(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_TrustedAuthorities$TrustedAuthority__ diff --git a/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities.h b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities.h new file mode 100644 index 00000000000..0aeabe4c281 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/TrustedAuthorities.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_TrustedAuthorities__ +#define __gnu_javax_net_ssl_provider_TrustedAuthorities__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class TrustedAuthorities; + class TrustedAuthorities$TrustedAuthority; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::TrustedAuthorities : public ::gnu::javax::net::ssl::provider::Extension$Value +{ + +public: + TrustedAuthorities(::java::nio::ByteBuffer *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual jint size(); + virtual ::gnu::javax::net::ssl::provider::TrustedAuthorities$TrustedAuthority * get(jint); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); + virtual ::java::util::Iterator * iterator(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::Extension$Value)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_TrustedAuthorities__ diff --git a/libjava/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.h b/libjava/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.h new file mode 100644 index 00000000000..9c75dd0a847 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_UnresolvedExtensionValue__ +#define __gnu_javax_net_ssl_provider_UnresolvedExtensionValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class UnresolvedExtensionValue; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::UnresolvedExtensionValue : public ::gnu::javax::net::ssl::provider::Extension$Value +{ + +public: + UnresolvedExtensionValue(::java::nio::ByteBuffer *); + virtual jint length(); + virtual ::java::nio::ByteBuffer * buffer(); + virtual ::java::nio::ByteBuffer * value(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(::java::lang::String *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::Extension$Value)))) buffer__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_UnresolvedExtensionValue__ diff --git a/libjava/gnu/javax/net/ssl/provider/Util$1.h b/libjava/gnu/javax/net/ssl/provider/Util$1.h new file mode 100644 index 00000000000..076f175d11f --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Util$1.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Util$1__ +#define __gnu_javax_net_ssl_provider_Util$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Util$1; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Util$1 : public ::java::lang::Object +{ + +public: // actually package-private + Util$1(::java::lang::String *); +public: + ::java::lang::Object * run(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Util$1__ diff --git a/libjava/gnu/javax/net/ssl/provider/Util$2.h b/libjava/gnu/javax/net/ssl/provider/Util$2.h new file mode 100644 index 00000000000..606786ee862 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Util$2.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Util$2__ +#define __gnu_javax_net_ssl_provider_Util$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Util$2; + } + } + } + } + } +} + +class gnu::javax::net::ssl::provider::Util$2 : public ::java::lang::Object +{ + +public: // actually package-private + Util$2(::java::lang::String *); +public: + ::java::lang::Object * run(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Util$2__ diff --git a/libjava/gnu/javax/net/ssl/provider/Util$WrappedBuffer.h b/libjava/gnu/javax/net/ssl/provider/Util$WrappedBuffer.h new file mode 100644 index 00000000000..ad7d244f749 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Util$WrappedBuffer.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Util$WrappedBuffer__ +#define __gnu_javax_net_ssl_provider_Util$WrappedBuffer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Util$WrappedBuffer; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Util$WrappedBuffer : public ::java::lang::Object +{ + +public: // actually package-private + Util$WrappedBuffer(::java::nio::ByteBuffer *, ::java::lang::String *); +public: + virtual ::java::lang::String * toString(); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::java::lang::String * prefix; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Util$WrappedBuffer__ diff --git a/libjava/gnu/javax/net/ssl/provider/Util.h b/libjava/gnu/javax/net/ssl/provider/Util.h new file mode 100644 index 00000000000..6e54af1c89e --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/Util.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_Util__ +#define __gnu_javax_net_ssl_provider_Util__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Util; + } + } + } + } + } + namespace java + { + namespace math + { + class BigInteger; + } + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::javax::net::ssl::provider::Util : public ::java::lang::Object +{ + + Util(); +public: + static ::java::lang::Object * wrapBuffer(::java::nio::ByteBuffer *); + static ::java::lang::Object * wrapBuffer(::java::nio::ByteBuffer *, ::java::lang::String *); + static JArray< jbyte > * toByteArray(::java::lang::String *); + static ::java::lang::String * toHexString(JArray< jbyte > *, jint, jint); + static ::java::lang::String * toHexString(JArray< jbyte > *); + static ::java::lang::String * toHexString(JArray< jbyte > *, jint, jint, jchar); + static ::java::lang::String * toHexString(JArray< jbyte > *, jchar); + static ::java::lang::String * hexDump(JArray< jbyte > *, jint, jint, ::java::lang::String *); + static ::java::lang::String * hexDump(::java::nio::ByteBuffer *); + static ::java::lang::String * hexDump(::java::nio::ByteBuffer *, ::java::lang::String *); + static ::java::lang::String * hexDump(JArray< jbyte > *, jint, jint); + static ::java::lang::String * hexDump(JArray< jbyte > *, ::java::lang::String *); + static ::java::lang::String * hexDump(JArray< jbyte > *); + static ::java::lang::String * formatInt(jint, jint, jint); + static JArray< jbyte > * concat(JArray< jbyte > *, JArray< jbyte > *); + static JArray< jbyte > * trim(JArray< jbyte > *, jint); + static JArray< jbyte > * trim(JArray< jbyte > *, jint, jint); + static JArray< jbyte > * trim(::java::math::BigInteger *); + static jint unixTime(); +public: // actually package-private + static JArray< ::java::lang::Object * > * transform(JArray< ::java::lang::Object * > *, ::java::lang::Class *, ::java::lang::String *, JArray< ::java::lang::Object * > *); + static ::java::lang::String * getProperty(::java::lang::String *); + static ::java::lang::String * getSecurityProperty(::java::lang::String *); + static ::java::lang::String * HEX; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_Util__ diff --git a/libjava/gnu/javax/net/ssl/provider/X500PrincipalList$Iterator.h b/libjava/gnu/javax/net/ssl/provider/X500PrincipalList$Iterator.h new file mode 100644 index 00000000000..f5e928014b8 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/X500PrincipalList$Iterator.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_X500PrincipalList$Iterator__ +#define __gnu_javax_net_ssl_provider_X500PrincipalList$Iterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class X500PrincipalList; + class X500PrincipalList$Iterator; + } + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500Principal; + } + } + } + } +} + +class gnu::javax::net::ssl::provider::X500PrincipalList$Iterator : public ::java::lang::Object +{ + +public: + X500PrincipalList$Iterator(::gnu::javax::net::ssl::provider::X500PrincipalList *); + virtual void target$add(::javax::security::auth::x500::X500Principal *); + virtual jboolean hasNext(); + virtual jboolean hasPrevious(); + virtual ::javax::security::auth::x500::X500Principal * target$next(); + virtual jint nextIndex(); + virtual ::javax::security::auth::x500::X500Principal * target$previous(); + virtual jint previousIndex(); + virtual void remove(); + virtual void target$set(::javax::security::auth::x500::X500Principal *); + virtual ::java::lang::Object * next(); + virtual ::java::lang::Object * previous(); + virtual void add(::java::lang::Object *); + virtual void set(::java::lang::Object *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) modCount; + jint index; + jint count; +public: // actually package-private + ::gnu::javax::net::ssl::provider::X500PrincipalList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_X500PrincipalList$Iterator__ diff --git a/libjava/gnu/javax/net/ssl/provider/X500PrincipalList.h b/libjava/gnu/javax/net/ssl/provider/X500PrincipalList.h new file mode 100644 index 00000000000..080b5e45cae --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/X500PrincipalList.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_X500PrincipalList__ +#define __gnu_javax_net_ssl_provider_X500PrincipalList__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class X500PrincipalList; + } + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500Principal; + } + } + } + } +} + +class gnu::javax::net::ssl::provider::X500PrincipalList : public ::java::lang::Object +{ + +public: + X500PrincipalList(::java::nio::ByteBuffer *); + jint size(); + jint count(); + ::javax::security::auth::x500::X500Principal * get(jint); + void put(jint, ::javax::security::auth::x500::X500Principal *); + void put(jint, JArray< jbyte > *); + void setSize(jint, jint); + ::java::lang::String * toString(); + ::java::lang::String * toString(::java::lang::String *); + jboolean equals(::java::lang::Object *); + ::java::util::Iterator * iterator(); +public: // actually package-private + static jint access$0(::gnu::javax::net::ssl::provider::X500PrincipalList *); +private: + ::java::nio::ByteBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + jint modCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_X500PrincipalList__ diff --git a/libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.h b/libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.h new file mode 100644 index 00000000000..6455f80d0ca --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_X509KeyManagerFactory$Manager__ +#define __gnu_javax_net_ssl_provider_X509KeyManagerFactory$Manager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class X509KeyManagerFactory; + class X509KeyManagerFactory$Manager; + } + } + } + } + } + namespace java + { + namespace net + { + class Socket; + } + namespace security + { + class Principal; + class PrivateKey; + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngine; + } + } + } +} + +class gnu::javax::net::ssl::provider::X509KeyManagerFactory$Manager : public ::javax::net::ssl::X509ExtendedKeyManager +{ + +public: // actually package-private + X509KeyManagerFactory$Manager(::gnu::javax::net::ssl::provider::X509KeyManagerFactory *, ::java::util::Map *, ::java::util::Map *); +public: + virtual ::java::lang::String * chooseClientAlias(JArray< ::java::lang::String * > *, JArray< ::java::security::Principal * > *, ::java::net::Socket *); + virtual ::java::lang::String * chooseEngineClientAlias(JArray< ::java::lang::String * > *, JArray< ::java::security::Principal * > *, ::javax::net::ssl::SSLEngine *); + virtual JArray< ::java::lang::String * > * getClientAliases(::java::lang::String *, JArray< ::java::security::Principal * > *); + virtual ::java::lang::String * chooseServerAlias(::java::lang::String *, JArray< ::java::security::Principal * > *, ::java::net::Socket *); + virtual ::java::lang::String * chooseEngineServerAlias(::java::lang::String *, JArray< ::java::security::Principal * > *, ::javax::net::ssl::SSLEngine *); + virtual JArray< ::java::lang::String * > * getServerAliases(::java::lang::String *, JArray< ::java::security::Principal * > *); +private: + JArray< ::java::lang::String * > * getAliases(::java::lang::String *, JArray< ::java::security::Principal * > *); +public: + virtual JArray< ::java::security::cert::X509Certificate * > * getCertificateChain(::java::lang::String *); + virtual ::java::security::PrivateKey * getPrivateKey(::java::lang::String *); +private: + ::java::util::Map * __attribute__((aligned(__alignof__( ::javax::net::ssl::X509ExtendedKeyManager)))) privateKeys; + ::java::util::Map * certChains; +public: // actually package-private + ::gnu::javax::net::ssl::provider::X509KeyManagerFactory * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_X509KeyManagerFactory$Manager__ diff --git a/libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory.h b/libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory.h new file mode 100644 index 00000000000..a261c27448c --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/X509KeyManagerFactory.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_X509KeyManagerFactory__ +#define __gnu_javax_net_ssl_provider_X509KeyManagerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class X509KeyManagerFactory; + class X509KeyManagerFactory$Manager; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyStore; + namespace cert + { + class Certificate; + class X509Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class ManagerFactoryParameters; + } + } + } +} + +class gnu::javax::net::ssl::provider::X509KeyManagerFactory : public ::javax::net::ssl::KeyManagerFactorySpi +{ + +public: + X509KeyManagerFactory(); +public: // actually protected + virtual JArray< ::javax::net::ssl::KeyManager * > * engineGetKeyManagers(); + virtual void engineInit(::javax::net::ssl::ManagerFactoryParameters *); + virtual void engineInit(::java::security::KeyStore *, JArray< jchar > *); +private: + static JArray< ::java::security::cert::X509Certificate * > * toX509Chain(JArray< ::java::security::cert::Certificate * > *); + ::gnu::javax::net::ssl::provider::X509KeyManagerFactory$Manager * __attribute__((aligned(__alignof__( ::javax::net::ssl::KeyManagerFactorySpi)))) current; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_X509KeyManagerFactory__ diff --git a/libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory$Manager.h b/libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory$Manager.h new file mode 100644 index 00000000000..c34c2c5a705 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory$Manager.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_X509TrustManagerFactory$Manager__ +#define __gnu_javax_net_ssl_provider_X509TrustManagerFactory$Manager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class X509TrustManagerFactory; + class X509TrustManagerFactory$Manager; + } + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class gnu::javax::net::ssl::provider::X509TrustManagerFactory$Manager : public ::java::lang::Object +{ + +public: // actually package-private + X509TrustManagerFactory$Manager(::gnu::javax::net::ssl::provider::X509TrustManagerFactory *, JArray< ::java::security::cert::X509Certificate * > *); +public: + virtual void checkClientTrusted(JArray< ::java::security::cert::X509Certificate * > *, ::java::lang::String *); + virtual void checkServerTrusted(JArray< ::java::security::cert::X509Certificate * > *, ::java::lang::String *); + virtual JArray< ::java::security::cert::X509Certificate * > * getAcceptedIssuers(); +private: + void checkTrusted(JArray< ::java::security::cert::X509Certificate * > *, ::java::lang::String *); + ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) anchors; +public: // actually package-private + ::gnu::javax::net::ssl::provider::X509TrustManagerFactory * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_X509TrustManagerFactory$Manager__ diff --git a/libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory.h b/libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory.h new file mode 100644 index 00000000000..f65c0490700 --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/X509TrustManagerFactory.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_X509TrustManagerFactory__ +#define __gnu_javax_net_ssl_provider_X509TrustManagerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class X509TrustManagerFactory; + class X509TrustManagerFactory$Manager; + } + } + } + } + } + namespace java + { + namespace security + { + class KeyStore; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class ManagerFactoryParameters; + class TrustManager; + } + } + } +} + +class gnu::javax::net::ssl::provider::X509TrustManagerFactory : public ::javax::net::ssl::TrustManagerFactorySpi +{ + +public: + X509TrustManagerFactory(); +public: // actually protected + virtual JArray< ::javax::net::ssl::TrustManager * > * engineGetTrustManagers(); + virtual void engineInit(::javax::net::ssl::ManagerFactoryParameters *); + virtual void engineInit(::java::security::KeyStore *); +private: + static ::java::lang::String * sep; + static ::java::lang::String * JSSE_CERTS; + static ::java::lang::String * CA_CERTS; + ::gnu::javax::net::ssl::provider::X509TrustManagerFactory$Manager * __attribute__((aligned(__alignof__( ::javax::net::ssl::TrustManagerFactorySpi)))) current; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_X509TrustManagerFactory__ diff --git a/libjava/gnu/javax/net/ssl/provider/XMLSessionContext$SAXHandler.h b/libjava/gnu/javax/net/ssl/provider/XMLSessionContext$SAXHandler.h new file mode 100644 index 00000000000..0ced1c2dd3d --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/XMLSessionContext$SAXHandler.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_XMLSessionContext$SAXHandler__ +#define __gnu_javax_net_ssl_provider_XMLSessionContext$SAXHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace crypto + { + namespace mac + { + class IMac; + } + namespace mode + { + class IMode; + } + } + namespace net + { + namespace ssl + { + namespace provider + { + class Session; + class SessionContext; + class XMLSessionContext; + class XMLSessionContext$SAXHandler; + } + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::javax::net::ssl::provider::XMLSessionContext$SAXHandler : public ::org::xml::sax::helpers::DefaultHandler +{ + +public: // actually package-private + XMLSessionContext$SAXHandler(::gnu::javax::net::ssl::provider::XMLSessionContext *, ::gnu::javax::net::ssl::provider::SessionContext *, ::gnu::java::security::prng::IRandom *); +public: + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); +private: + ::gnu::javax::net::ssl::provider::SessionContext * __attribute__((aligned(__alignof__( ::org::xml::sax::helpers::DefaultHandler)))) context; + ::gnu::javax::net::ssl::provider::Session * current; + ::gnu::java::security::prng::IRandom * pbekdf; + ::java::lang::StringBuffer * buf; + ::java::lang::String * certType; + jint state; + ::gnu::javax::crypto::mode::IMode * cipher; + ::java::util::HashMap * cipherAttr; + ::gnu::javax::crypto::mac::IMac * mac; + ::java::util::HashMap * macAttr; + JArray< jbyte > * key; + JArray< jbyte > * iv; + JArray< jbyte > * mackey; + static const jint START = 0; + static const jint SESSIONS = 1; + static const jint SESSION = 2; + static const jint PEER = 3; + static const jint PEER_CERTS = 4; + static const jint CERTS = 5; + static const jint SECRET = 6; +public: // actually package-private + ::gnu::javax::net::ssl::provider::XMLSessionContext * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_XMLSessionContext$SAXHandler__ diff --git a/libjava/gnu/javax/net/ssl/provider/XMLSessionContext.h b/libjava/gnu/javax/net/ssl/provider/XMLSessionContext.h new file mode 100644 index 00000000000..dfc42243c3f --- /dev/null +++ b/libjava/gnu/javax/net/ssl/provider/XMLSessionContext.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_net_ssl_provider_XMLSessionContext__ +#define __gnu_javax_net_ssl_provider_XMLSessionContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + namespace prng + { + class IRandom; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + namespace provider + { + class Session; + class Session$ID; + class XMLSessionContext; + } + } + } + } + } + namespace java + { + namespace security + { + class SecureRandom; + } + } +} + +class gnu::javax::net::ssl::provider::XMLSessionContext : public ::gnu::javax::net::ssl::provider::SessionContext +{ + +public: // actually package-private + XMLSessionContext(); + virtual jboolean addSession(::gnu::javax::net::ssl::provider::Session$ID *, ::gnu::javax::net::ssl::provider::Session *); + virtual void notifyAccess(::gnu::javax::net::ssl::provider::Session *); + virtual jboolean removeSession(::gnu::javax::net::ssl::provider::Session$ID *); +private: + void decode(); + void encode(); + ::java::io::File * __attribute__((aligned(__alignof__( ::gnu::javax::net::ssl::provider::SessionContext)))) file; + ::gnu::java::security::prng::IRandom * pbekdf; + jboolean compress; + ::java::security::SecureRandom * random; + jboolean encoding; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_net_ssl_provider_XMLSessionContext__ diff --git a/libjava/gnu/javax/print/CupsIppOperation.h b/libjava/gnu/javax/print/CupsIppOperation.h new file mode 100644 index 00000000000..f328a19fe5b --- /dev/null +++ b/libjava/gnu/javax/print/CupsIppOperation.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_CupsIppOperation__ +#define __gnu_javax_print_CupsIppOperation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class CupsIppOperation; + } + } + } +} + +class gnu::javax::print::CupsIppOperation : public ::java::lang::Object +{ + + CupsIppOperation(); +public: + static const jint CUPS_GET_DEFAULT = 16385; + static const jint CUPS_GET_PRINTERS = 16386; + static const jint CUPS_ADD_MODIFY_PRINTER = 16387; + static const jint CUPS_DELETE_PRINTER = 16388; + static const jint CUPS_GET_CLASSES = 16389; + static const jint CUPS_ADD_MODIFY_CLASS = 16390; + static const jint CUPS_DELETE_CLASS = 16391; + static const jint CUPS_ACCEPT_JOBS = 16392; + static const jint CUPS_REJECT_JOBS = 16393; + static const jint CUPS_SET_DEFAULT = 16394; + static const jint CUPS_GET_DEVICES = 16395; + static const jint CUPS_GET_PPDS = 16396; + static const jint CUPS_MOVE_JOB = 16397; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_CupsIppOperation__ diff --git a/libjava/gnu/javax/print/CupsMediaMapping.h b/libjava/gnu/javax/print/CupsMediaMapping.h new file mode 100644 index 00000000000..3d5f5934f66 --- /dev/null +++ b/libjava/gnu/javax/print/CupsMediaMapping.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_CupsMediaMapping__ +#define __gnu_javax_print_CupsMediaMapping__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class CupsMediaMapping; + } + } + } +} + +class gnu::javax::print::CupsMediaMapping : public ::java::lang::Object +{ + +public: + static ::java::lang::String * getIppName(::java::lang::String *); + static ::java::util::Map * getMappingMap(); +private: + CupsMediaMapping(); + static ::java::util::HashMap * ippByCups; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_CupsMediaMapping__ diff --git a/libjava/gnu/javax/print/CupsPrintService.h b/libjava/gnu/javax/print/CupsPrintService.h new file mode 100644 index 00000000000..68bf4b79f2c --- /dev/null +++ b/libjava/gnu/javax/print/CupsPrintService.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_CupsPrintService__ +#define __gnu_javax_print_CupsPrintService__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class CupsPrintService; + namespace ipp + { + class IppResponse; + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + class DocFlavor; + namespace attribute + { + class AttributeSet; + } + } + } +} + +class gnu::javax::print::CupsPrintService : public ::gnu::javax::print::ipp::IppMultiDocPrintService +{ + +public: + CupsPrintService(::java::net::URI *, ::java::lang::String *, ::java::lang::String *); +public: // actually protected + ::java::lang::Object * handleSupportedAttributeValuesResponse(::gnu::javax::print::ipp::IppResponse *, ::java::lang::Class *); +public: + ::java::lang::Object * getDefaultAttributeValue(::java::lang::Class *); + ::javax::print::attribute::AttributeSet * getUnsupportedAttributes(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_CupsPrintService__ diff --git a/libjava/gnu/javax/print/CupsPrintServiceLookup.h b/libjava/gnu/javax/print/CupsPrintServiceLookup.h new file mode 100644 index 00000000000..b4f983672db --- /dev/null +++ b/libjava/gnu/javax/print/CupsPrintServiceLookup.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_CupsPrintServiceLookup__ +#define __gnu_javax_print_CupsPrintServiceLookup__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class CupsPrintServiceLookup; + class CupsServer; + } + } + } + namespace javax + { + namespace print + { + class DocFlavor; + class MultiDocPrintService; + class PrintService; + namespace attribute + { + class AttributeSet; + } + } + } +} + +class gnu::javax::print::CupsPrintServiceLookup : public ::javax::print::PrintServiceLookup +{ + +public: + CupsPrintServiceLookup(); + virtual ::javax::print::PrintService * getDefaultPrintService(); + virtual JArray< ::javax::print::MultiDocPrintService * > * getMultiDocPrintServices(JArray< ::javax::print::DocFlavor * > *, ::javax::print::attribute::AttributeSet *); + virtual JArray< ::javax::print::PrintService * > * getPrintServices(); + virtual JArray< ::javax::print::PrintService * > * getPrintServices(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *); + virtual jboolean checkPrintService(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *, ::javax::print::PrintService *); + virtual jboolean checkMultiDocPrintService(JArray< ::javax::print::DocFlavor * > *, ::javax::print::attribute::AttributeSet *, ::javax::print::PrintService *); +private: + ::gnu::javax::print::CupsServer * __attribute__((aligned(__alignof__( ::javax::print::PrintServiceLookup)))) server; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_CupsPrintServiceLookup__ diff --git a/libjava/gnu/javax/print/CupsServer.h b/libjava/gnu/javax/print/CupsServer.h new file mode 100644 index 00000000000..c31d236b541 --- /dev/null +++ b/libjava/gnu/javax/print/CupsServer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_CupsServer__ +#define __gnu_javax_print_CupsServer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class CupsServer; + namespace ipp + { + class IppPrintService; + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::CupsServer : public ::java::lang::Object +{ + +public: + CupsServer(::java::lang::String *, ::java::lang::String *); + CupsServer(::java::net::URI *, ::java::lang::String *, ::java::lang::String *); + virtual ::gnu::javax::print::ipp::IppPrintService * getDefaultPrinter(); + virtual ::java::util::List * getAllPrinters(); + virtual ::java::util::List * getAllClasses(); +private: + ::java::net::URI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) uri; + ::java::lang::String * username; + ::java::lang::String * password; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_CupsServer__ diff --git a/libjava/gnu/javax/print/PrintAttributeException.h b/libjava/gnu/javax/print/PrintAttributeException.h new file mode 100644 index 00000000000..d1613f8d88a --- /dev/null +++ b/libjava/gnu/javax/print/PrintAttributeException.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrintAttributeException__ +#define __gnu_javax_print_PrintAttributeException__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrintAttributeException; + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::PrintAttributeException : public ::javax::print::PrintException +{ + +public: + PrintAttributeException(JArray< ::java::lang::Class * > *, JArray< ::javax::print::attribute::Attribute * > *); + PrintAttributeException(::java::lang::Exception *, JArray< ::java::lang::Class * > *, JArray< ::javax::print::attribute::Attribute * > *); + PrintAttributeException(::java::lang::String *, JArray< ::java::lang::Class * > *, JArray< ::javax::print::attribute::Attribute * > *); + PrintAttributeException(::java::lang::String *, ::java::lang::Exception *, JArray< ::java::lang::Class * > *, JArray< ::javax::print::attribute::Attribute * > *); + JArray< ::java::lang::Class * > * getUnsupportedAttributes(); + JArray< ::javax::print::attribute::Attribute * > * getUnsupportedValues(); +private: + JArray< ::java::lang::Class * > * __attribute__((aligned(__alignof__( ::javax::print::PrintException)))) categories; + JArray< ::javax::print::attribute::Attribute * > * values; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrintAttributeException__ diff --git a/libjava/gnu/javax/print/PrintFlavorException.h b/libjava/gnu/javax/print/PrintFlavorException.h new file mode 100644 index 00000000000..0c16fdfda92 --- /dev/null +++ b/libjava/gnu/javax/print/PrintFlavorException.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrintFlavorException__ +#define __gnu_javax_print_PrintFlavorException__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrintFlavorException; + } + } + } + namespace javax + { + namespace print + { + class DocFlavor; + } + } +} + +class gnu::javax::print::PrintFlavorException : public ::javax::print::PrintException +{ + +public: + PrintFlavorException(JArray< ::javax::print::DocFlavor * > *); + PrintFlavorException(::java::lang::Exception *, JArray< ::javax::print::DocFlavor * > *); + PrintFlavorException(::java::lang::String *, JArray< ::javax::print::DocFlavor * > *); + PrintFlavorException(::java::lang::String *, ::java::lang::Exception *, JArray< ::javax::print::DocFlavor * > *); + virtual JArray< ::javax::print::DocFlavor * > * getUnsupportedFlavors(); +private: + JArray< ::javax::print::DocFlavor * > * __attribute__((aligned(__alignof__( ::javax::print::PrintException)))) flavors; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrintFlavorException__ diff --git a/libjava/gnu/javax/print/PrintUriException.h b/libjava/gnu/javax/print/PrintUriException.h new file mode 100644 index 00000000000..716edb88659 --- /dev/null +++ b/libjava/gnu/javax/print/PrintUriException.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrintUriException__ +#define __gnu_javax_print_PrintUriException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrintUriException; + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::PrintUriException : public ::javax::print::PrintException +{ + +public: + PrintUriException(jint, ::java::net::URI *); + PrintUriException(::java::lang::Exception *, jint, ::java::net::URI *); + PrintUriException(::java::lang::String *, jint, ::java::net::URI *); + PrintUriException(::java::lang::String *, ::java::lang::Exception *, jint, ::java::net::URI *); + jint getReason(); + ::java::net::URI * getUnsupportedURI(); +private: + jint __attribute__((aligned(__alignof__( ::javax::print::PrintException)))) reason; + ::java::net::URI * uri; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrintUriException__ diff --git a/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Color.h b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Color.h new file mode 100644 index 00000000000..e05e7e96717 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Color.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$AppearancePanel$Color__ +#define __gnu_javax_print_PrinterDialog$AppearancePanel$Color__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$AppearancePanel; + class PrinterDialog$AppearancePanel$Color; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JRadioButton; + } + } +} + +class gnu::javax::print::PrinterDialog$AppearancePanel$Color : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$AppearancePanel$Color(::gnu::javax::print::PrinterDialog$AppearancePanel *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JRadioButton * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) bw; + ::javax::swing::JRadioButton * color; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$AppearancePanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$AppearancePanel$Color__ diff --git a/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$JobAttributes.h b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$JobAttributes.h new file mode 100644 index 00000000000..c5570cf0e10 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$JobAttributes.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$AppearancePanel$JobAttributes__ +#define __gnu_javax_print_PrinterDialog$AppearancePanel$JobAttributes__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$AppearancePanel; + class PrinterDialog$AppearancePanel$JobAttributes; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + class JCheckBox; + class JLabel; + class JSpinner; + class JTextField; + class SpinnerNumberModel; + namespace event + { + class ChangeEvent; + } + } + } +} + +class gnu::javax::print::PrinterDialog$AppearancePanel$JobAttributes : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$AppearancePanel$JobAttributes(::gnu::javax::print::PrinterDialog$AppearancePanel *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); + void stateChanged(::javax::swing::event::ChangeEvent *); + void focusGained(::java::awt::event::FocusEvent *); + void focusLost(::java::awt::event::FocusEvent *); +private: + void updateTextfields(::java::awt::event::FocusEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JLabel * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) jobname; + ::javax::swing::JLabel * username; + ::javax::swing::JLabel * priority_lb; + ::javax::swing::JTextField * jobname_tf; + ::javax::swing::JTextField * username_tf; + ::javax::swing::JCheckBox * cover; + ::javax::swing::JSpinner * priority; + ::javax::swing::SpinnerNumberModel * model; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$AppearancePanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$AppearancePanel$JobAttributes__ diff --git a/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Quality.h b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Quality.h new file mode 100644 index 00000000000..65ca5acb4ab --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$Quality.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$AppearancePanel$Quality__ +#define __gnu_javax_print_PrinterDialog$AppearancePanel$Quality__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$AppearancePanel; + class PrinterDialog$AppearancePanel$Quality; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class ButtonGroup; + class JRadioButton; + } + } +} + +class gnu::javax::print::PrinterDialog$AppearancePanel$Quality : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$AppearancePanel$Quality(::gnu::javax::print::PrinterDialog$AppearancePanel *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JRadioButton * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) low; + ::javax::swing::JRadioButton * normal; + ::javax::swing::JRadioButton * high; + ::javax::swing::ButtonGroup * group; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$AppearancePanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$AppearancePanel$Quality__ diff --git a/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$SidesPanel.h b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$SidesPanel.h new file mode 100644 index 00000000000..272006401d1 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel$SidesPanel.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$AppearancePanel$SidesPanel__ +#define __gnu_javax_print_PrinterDialog$AppearancePanel$SidesPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$AppearancePanel; + class PrinterDialog$AppearancePanel$SidesPanel; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JRadioButton; + } + } +} + +class gnu::javax::print::PrinterDialog$AppearancePanel$SidesPanel : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$AppearancePanel$SidesPanel(::gnu::javax::print::PrinterDialog$AppearancePanel *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JRadioButton * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) oneside; + ::javax::swing::JRadioButton * calendar; + ::javax::swing::JRadioButton * duplex; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$AppearancePanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$AppearancePanel$SidesPanel__ diff --git a/libjava/gnu/javax/print/PrinterDialog$AppearancePanel.h b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel.h new file mode 100644 index 00000000000..6e77b26202c --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$AppearancePanel.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$AppearancePanel__ +#define __gnu_javax_print_PrinterDialog$AppearancePanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog; + class PrinterDialog$AppearancePanel; + class PrinterDialog$AppearancePanel$Color; + class PrinterDialog$AppearancePanel$JobAttributes; + class PrinterDialog$AppearancePanel$Quality; + class PrinterDialog$AppearancePanel$SidesPanel; + } + } + } +} + +class gnu::javax::print::PrinterDialog$AppearancePanel : public ::javax::swing::JPanel +{ + +public: + PrinterDialog$AppearancePanel(::gnu::javax::print::PrinterDialog *); +public: // actually package-private + void update(); + static ::gnu::javax::print::PrinterDialog * access$0(::gnu::javax::print::PrinterDialog$AppearancePanel *); +private: + ::gnu::javax::print::PrinterDialog$AppearancePanel$Quality * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) quality_panel; + ::gnu::javax::print::PrinterDialog$AppearancePanel$JobAttributes * jobAttr_panel; + ::gnu::javax::print::PrinterDialog$AppearancePanel$SidesPanel * sides_panel; + ::gnu::javax::print::PrinterDialog$AppearancePanel$Color * chromaticy_panel; +public: // actually package-private + ::gnu::javax::print::PrinterDialog * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$AppearancePanel__ diff --git a/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$CopiesAndSorted.h b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$CopiesAndSorted.h new file mode 100644 index 00000000000..4e95c93299b --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$CopiesAndSorted.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$GeneralPanel$CopiesAndSorted__ +#define __gnu_javax_print_PrinterDialog$GeneralPanel$CopiesAndSorted__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$GeneralPanel; + class PrinterDialog$GeneralPanel$CopiesAndSorted; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JCheckBox; + class JLabel; + class JSpinner; + class SpinnerNumberModel; + namespace event + { + class ChangeEvent; + } + } + } +} + +class gnu::javax::print::PrinterDialog$GeneralPanel$CopiesAndSorted : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$GeneralPanel$CopiesAndSorted(::gnu::javax::print::PrinterDialog$GeneralPanel *); +public: + void stateChanged(::javax::swing::event::ChangeEvent *); + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JCheckBox * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) sort; + ::javax::swing::JSpinner * copies; + ::javax::swing::JLabel * copies_lb; + ::javax::swing::SpinnerNumberModel * copiesModel; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$GeneralPanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$GeneralPanel$CopiesAndSorted__ diff --git a/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintRange.h b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintRange.h new file mode 100644 index 00000000000..dd9e76f3135 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintRange.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$GeneralPanel$PrintRange__ +#define __gnu_javax_print_PrinterDialog$GeneralPanel$PrintRange__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$GeneralPanel; + class PrinterDialog$GeneralPanel$PrintRange; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + class JLabel; + class JRadioButton; + class JTextField; + } + } +} + +class gnu::javax::print::PrinterDialog$GeneralPanel$PrintRange : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$GeneralPanel$PrintRange(::gnu::javax::print::PrinterDialog$GeneralPanel *); +public: + void focusGained(::java::awt::event::FocusEvent *); + void focusLost(::java::awt::event::FocusEvent *); +private: + void updatePageRanges(); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JLabel * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) to; + ::javax::swing::JRadioButton * all_rb; + ::javax::swing::JRadioButton * pages_rb; + ::javax::swing::JTextField * from_tf; + ::javax::swing::JTextField * to_tf; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$GeneralPanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$GeneralPanel$PrintRange__ diff --git a/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintServices.h b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintServices.h new file mode 100644 index 00000000000..1ef5241424c --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel$PrintServices.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$GeneralPanel$PrintServices__ +#define __gnu_javax_print_PrinterDialog$GeneralPanel$PrintServices__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$GeneralPanel; + class PrinterDialog$GeneralPanel$PrintServices; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JButton; + class JCheckBox; + class JComboBox; + class JLabel; + } + } +} + +class gnu::javax::print::PrinterDialog$GeneralPanel$PrintServices : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$GeneralPanel$PrintServices(::gnu::javax::print::PrinterDialog$GeneralPanel *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JLabel * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) name; + ::javax::swing::JLabel * status; + ::javax::swing::JLabel * typ; + ::javax::swing::JLabel * info; + ::javax::swing::JLabel * statusValue; + ::javax::swing::JLabel * typValue; + ::javax::swing::JLabel * infoValue; + ::javax::swing::JButton * attributes; + ::javax::swing::JComboBox * services_cob; + ::javax::swing::JCheckBox * fileRedirection_cb; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$GeneralPanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$GeneralPanel$PrintServices__ diff --git a/libjava/gnu/javax/print/PrinterDialog$GeneralPanel.h b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel.h new file mode 100644 index 00000000000..c4161e062f3 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$GeneralPanel.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$GeneralPanel__ +#define __gnu_javax_print_PrinterDialog$GeneralPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog; + class PrinterDialog$GeneralPanel; + class PrinterDialog$GeneralPanel$CopiesAndSorted; + class PrinterDialog$GeneralPanel$PrintRange; + class PrinterDialog$GeneralPanel$PrintServices; + } + } + } +} + +class gnu::javax::print::PrinterDialog$GeneralPanel : public ::javax::swing::JPanel +{ + +public: + PrinterDialog$GeneralPanel(::gnu::javax::print::PrinterDialog *); +public: // actually package-private + void update(); + static ::gnu::javax::print::PrinterDialog * access$0(::gnu::javax::print::PrinterDialog$GeneralPanel *); +private: + ::gnu::javax::print::PrinterDialog$GeneralPanel$PrintServices * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) printserv_panel; + ::gnu::javax::print::PrinterDialog$GeneralPanel$PrintRange * printrange_panel; + ::gnu::javax::print::PrinterDialog$GeneralPanel$CopiesAndSorted * copies; +public: // actually package-private + ::gnu::javax::print::PrinterDialog * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$GeneralPanel__ diff --git a/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Margins.h b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Margins.h new file mode 100644 index 00000000000..988f2243f85 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Margins.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$PageSetupPanel$Margins__ +#define __gnu_javax_print_PrinterDialog$PageSetupPanel$Margins__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$PageSetupPanel; + class PrinterDialog$PageSetupPanel$Margins; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + class JLabel; + class JTextField; + } + } +} + +class gnu::javax::print::PrinterDialog$PageSetupPanel$Margins : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$PageSetupPanel$Margins(::gnu::javax::print::PrinterDialog$PageSetupPanel *); +public: + void focusGained(::java::awt::event::FocusEvent *); + void focusLost(::java::awt::event::FocusEvent *); +private: + void updateMargins(); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JLabel * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) left; + ::javax::swing::JLabel * right; + ::javax::swing::JLabel * top; + ::javax::swing::JLabel * bottom; + ::javax::swing::JTextField * left_tf; + ::javax::swing::JTextField * right_tf; + ::javax::swing::JTextField * top_tf; + ::javax::swing::JTextField * bottom_tf; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$PageSetupPanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$PageSetupPanel$Margins__ diff --git a/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$MediaTypes.h b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$MediaTypes.h new file mode 100644 index 00000000000..0cfdca94972 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$MediaTypes.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$PageSetupPanel$MediaTypes__ +#define __gnu_javax_print_PrinterDialog$PageSetupPanel$MediaTypes__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$PageSetupPanel; + class PrinterDialog$PageSetupPanel$MediaTypes; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComboBox; + class JLabel; + } + } +} + +class gnu::javax::print::PrinterDialog$PageSetupPanel$MediaTypes : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$PageSetupPanel$MediaTypes(::gnu::javax::print::PrinterDialog$PageSetupPanel *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JLabel * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) size_lb; + ::javax::swing::JLabel * source_lb; + ::javax::swing::JComboBox * size; + ::javax::swing::JComboBox * source; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$PageSetupPanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$PageSetupPanel$MediaTypes__ diff --git a/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Orientation.h b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Orientation.h new file mode 100644 index 00000000000..3a665d5d22f --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel$Orientation.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$PageSetupPanel$Orientation__ +#define __gnu_javax_print_PrinterDialog$PageSetupPanel$Orientation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog$PageSetupPanel; + class PrinterDialog$PageSetupPanel$Orientation; + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JRadioButton; + } + } +} + +class gnu::javax::print::PrinterDialog$PageSetupPanel$Orientation : public ::javax::swing::JPanel +{ + +public: // actually package-private + PrinterDialog$PageSetupPanel$Orientation(::gnu::javax::print::PrinterDialog$PageSetupPanel *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + void updateForSelectedService(); +private: + ::javax::swing::JRadioButton * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) portrait; + ::javax::swing::JRadioButton * landscape; + ::javax::swing::JRadioButton * rev_portrait; + ::javax::swing::JRadioButton * rev_landscape; +public: // actually package-private + ::gnu::javax::print::PrinterDialog$PageSetupPanel * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$PageSetupPanel$Orientation__ diff --git a/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel.h b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel.h new file mode 100644 index 00000000000..d87519477b4 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog$PageSetupPanel.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog$PageSetupPanel__ +#define __gnu_javax_print_PrinterDialog$PageSetupPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog; + class PrinterDialog$PageSetupPanel; + class PrinterDialog$PageSetupPanel$Margins; + class PrinterDialog$PageSetupPanel$MediaTypes; + class PrinterDialog$PageSetupPanel$Orientation; + } + } + } +} + +class gnu::javax::print::PrinterDialog$PageSetupPanel : public ::javax::swing::JPanel +{ + +public: + PrinterDialog$PageSetupPanel(::gnu::javax::print::PrinterDialog *); +public: // actually package-private + void update(); + static ::gnu::javax::print::PrinterDialog * access$0(::gnu::javax::print::PrinterDialog$PageSetupPanel *); +private: + ::gnu::javax::print::PrinterDialog$PageSetupPanel$MediaTypes * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) media_panel; + ::gnu::javax::print::PrinterDialog$PageSetupPanel$Orientation * orientation_panel; + ::gnu::javax::print::PrinterDialog$PageSetupPanel$Margins * margins_panel; +public: // actually package-private + ::gnu::javax::print::PrinterDialog * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog$PageSetupPanel__ diff --git a/libjava/gnu/javax/print/PrinterDialog.h b/libjava/gnu/javax/print/PrinterDialog.h new file mode 100644 index 00000000000..4c1141129b6 --- /dev/null +++ b/libjava/gnu/javax/print/PrinterDialog.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_PrinterDialog__ +#define __gnu_javax_print_PrinterDialog__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class PrinterDialog; + class PrinterDialog$AppearancePanel; + class PrinterDialog$GeneralPanel; + class PrinterDialog$PageSetupPanel; + } + } + } + namespace java + { + namespace awt + { + class GraphicsConfiguration; + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace print + { + class DocFlavor; + class PrintService; + namespace attribute + { + class Attribute; + class PrintRequestAttributeSet; + } + } + namespace swing + { + class JButton; + } + } +} + +class gnu::javax::print::PrinterDialog : public ::javax::swing::JDialog +{ + + PrinterDialog(::java::awt::GraphicsConfiguration *, JArray< ::javax::print::PrintService * > *, ::javax::print::PrintService *, ::javax::print::DocFlavor *, ::javax::print::attribute::PrintRequestAttributeSet *, jboolean, ::java::lang::String *); +public: + PrinterDialog(::java::awt::GraphicsConfiguration *, ::javax::print::PrintService *, ::javax::print::DocFlavor *, ::javax::print::attribute::PrintRequestAttributeSet *); + PrinterDialog(::java::awt::GraphicsConfiguration *, JArray< ::javax::print::PrintService * > *, ::javax::print::PrintService *, ::javax::print::DocFlavor *, ::javax::print::attribute::PrintRequestAttributeSet *); +private: + void initUI(jboolean); +public: + ::javax::print::attribute::PrintRequestAttributeSet * getAttributes(); + ::javax::print::PrintService * getSelectedPrintService(); +public: // actually protected + void setSelectedPrintService(::javax::print::PrintService *); + JArray< ::javax::print::PrintService * > * getPrintServices(); +public: // actually package-private + void updateAll(); + jboolean categorySupported(::java::lang::Class *); + ::java::lang::Object * defaultValue(::java::lang::Class *); + ::javax::print::attribute::Attribute * attribute(::java::lang::Class *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + static ::java::lang::String * getLocalizedString(::java::lang::String *); + static ::javax::print::attribute::PrintRequestAttributeSet * access$0(::gnu::javax::print::PrinterDialog *); + static ::javax::print::DocFlavor * access$1(::gnu::javax::print::PrinterDialog *); +private: + ::javax::swing::JButton * __attribute__((aligned(__alignof__( ::javax::swing::JDialog)))) ok_bt; + ::javax::swing::JButton * cancel_bt; + ::gnu::javax::print::PrinterDialog$GeneralPanel * general_panel; + ::gnu::javax::print::PrinterDialog$PageSetupPanel * pagesetup_panel; + ::gnu::javax::print::PrinterDialog$AppearancePanel * appearance_panel; + JArray< ::javax::print::PrintService * > * services; + ::javax::print::PrintService * defaultService; + ::javax::print::PrintService * selectedService; + ::javax::print::DocFlavor * flavor; + ::javax::print::attribute::PrintRequestAttributeSet * attributes; + jboolean onlyPageDialog; + ::javax::print::attribute::PrintRequestAttributeSet * atts; + static ::java::util::ResourceBundle * messages; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_PrinterDialog__ diff --git a/libjava/gnu/javax/print/ipp/DocPrintJobImpl.h b/libjava/gnu/javax/print/ipp/DocPrintJobImpl.h new file mode 100644 index 00000000000..a0d6a890aa3 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/DocPrintJobImpl.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_DocPrintJobImpl__ +#define __gnu_javax_print_ipp_DocPrintJobImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class DocPrintJobImpl; + class IppPrintService; + namespace attribute + { + namespace job + { + class JobId; + class JobUri; + } + } + } + } + } + } + namespace javax + { + namespace print + { + class Doc; + class PrintService; + namespace attribute + { + class PrintJobAttributeSet; + class PrintRequestAttributeSet; + namespace standard + { + class RequestingUserName; + } + } + namespace event + { + class PrintJobAttributeListener; + class PrintJobEvent; + class PrintJobListener; + } + } + } +} + +class gnu::javax::print::ipp::DocPrintJobImpl : public ::java::lang::Object +{ + +public: + DocPrintJobImpl(::gnu::javax::print::ipp::IppPrintService *, ::java::lang::String *, ::java::lang::String *); + virtual void addPrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *, ::javax::print::attribute::PrintJobAttributeSet *); + virtual void addPrintJobListener(::javax::print::event::PrintJobListener *); + virtual ::javax::print::attribute::PrintJobAttributeSet * getAttributes(); + virtual ::javax::print::PrintService * getPrintService(); + virtual void print(::javax::print::Doc *, ::javax::print::attribute::PrintRequestAttributeSet *); + virtual void removePrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *); + virtual void removePrintJobListener(::javax::print::event::PrintJobListener *); + virtual void cancel(); +private: + void notifyPrintJobListeners(::javax::print::event::PrintJobEvent *); + ::gnu::javax::print::ipp::IppPrintService * __attribute__((aligned(__alignof__( ::java::lang::Object)))) service; + ::java::util::HashSet * printJobListener; + ::java::util::ArrayList * attributesListener; + ::java::util::ArrayList * attributesListenerAttributes; + ::java::lang::String * username; + ::java::lang::String * password; + ::gnu::javax::print::ipp::attribute::job::JobUri * jobUri; + ::gnu::javax::print::ipp::attribute::job::JobId * jobId; + ::javax::print::attribute::standard::RequestingUserName * requestingUser; + ::javax::print::attribute::PrintJobAttributeSet * oldSet; + ::javax::print::attribute::PrintJobAttributeSet * currentSet; + jboolean printing; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_DocPrintJobImpl__ diff --git a/libjava/gnu/javax/print/ipp/IppDelimiterTag.h b/libjava/gnu/javax/print/ipp/IppDelimiterTag.h new file mode 100644 index 00000000000..cd8a06d3a9c --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppDelimiterTag.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppDelimiterTag__ +#define __gnu_javax_print_ipp_IppDelimiterTag__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppDelimiterTag; + } + } + } + } +} + +class gnu::javax::print::ipp::IppDelimiterTag : public ::java::lang::Object +{ + + IppDelimiterTag(); +public: + static jboolean isDelimiterTag(jbyte); + static const jbyte OPERATION_ATTRIBUTES_TAG = 1; + static const jbyte JOB_ATTRIBUTES_TAG = 2; + static const jbyte END_OF_ATTRIBUTES_TAG = 3; + static const jbyte PRINTER_ATTRIBUTES_TAG = 4; + static const jbyte UNSUPPORTED_ATTRIBUTES_TAG = 5; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppDelimiterTag__ diff --git a/libjava/gnu/javax/print/ipp/IppException.h b/libjava/gnu/javax/print/ipp/IppException.h new file mode 100644 index 00000000000..8e38d40c709 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppException__ +#define __gnu_javax_print_ipp_IppException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppException; + } + } + } + } +} + +class gnu::javax::print::ipp::IppException : public ::javax::print::PrintException +{ + +public: + IppException(); + IppException(::java::lang::String *); + IppException(::java::lang::Exception *); + IppException(::java::lang::String *, ::java::lang::Exception *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppException__ diff --git a/libjava/gnu/javax/print/ipp/IppMultiDocPrintService.h b/libjava/gnu/javax/print/ipp/IppMultiDocPrintService.h new file mode 100644 index 00000000000..e9da502b813 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppMultiDocPrintService.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppMultiDocPrintService__ +#define __gnu_javax_print_ipp_IppMultiDocPrintService__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppMultiDocPrintService; + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + class MultiDocPrintJob; + } + } +} + +class gnu::javax::print::ipp::IppMultiDocPrintService : public ::gnu::javax::print::ipp::IppPrintService +{ + +public: + IppMultiDocPrintService(::java::net::URI *, ::java::lang::String *, ::java::lang::String *); + virtual ::javax::print::MultiDocPrintJob * createMultiDocPrintJob(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::print::ipp::IppPrintService)))) user; + ::java::lang::String * passwd; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppMultiDocPrintService__ diff --git a/libjava/gnu/javax/print/ipp/IppPrintService.h b/libjava/gnu/javax/print/ipp/IppPrintService.h new file mode 100644 index 00000000000..cbe602287d4 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppPrintService.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppPrintService__ +#define __gnu_javax_print_ipp_IppPrintService__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppPrintService; + class IppResponse; + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + class DocFlavor; + class DocPrintJob; + class ServiceUIFactory; + namespace attribute + { + class Attribute; + class AttributeSet; + class PrintServiceAttribute; + class PrintServiceAttributeSet; + namespace standard + { + class JobName; + class PrinterURI; + class RequestingUserName; + } + } + namespace event + { + class PrintServiceAttributeListener; + } + } + } +} + +class gnu::javax::print::ipp::IppPrintService : public ::java::lang::Object +{ + +public: + IppPrintService(::java::net::URI *, ::java::lang::String *, ::java::lang::String *); +private: + ::java::util::Map * getPrinterAttributes(); + ::java::util::Set * getPrinterAttributeSet(::java::lang::Class *); + ::javax::print::attribute::Attribute * getPrinterDefaultAttribute(::java::lang::Class *); + void processResponse(); +public: + virtual ::javax::print::DocPrintJob * createPrintJob(); + virtual ::javax::print::attribute::PrintServiceAttribute * getAttribute(::java::lang::Class *); + virtual ::javax::print::attribute::PrintServiceAttributeSet * getAttributes(); + virtual ::java::lang::Object * getDefaultAttributeValue(::java::lang::Class *); + virtual ::java::lang::String * getName(); + virtual ::javax::print::ServiceUIFactory * getServiceUIFactory(); + virtual JArray< ::java::lang::Class * > * getSupportedAttributeCategories(); + virtual ::java::lang::Object * getSupportedAttributeValues(::java::lang::Class *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *); +public: // actually protected + virtual ::java::lang::Object * handleSupportedAttributeValuesResponse(::gnu::javax::print::ipp::IppResponse *, ::java::lang::Class *); +public: + virtual JArray< ::javax::print::DocFlavor * > * getSupportedDocFlavors(); + virtual ::javax::print::attribute::AttributeSet * getUnsupportedAttributes(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *); + virtual jboolean isAttributeCategorySupported(::java::lang::Class *); + virtual jboolean isAttributeValueSupported(::javax::print::attribute::Attribute *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *); + virtual jboolean isDocFlavorSupported(::javax::print::DocFlavor *); + virtual void addPrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *); + virtual void removePrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *); + virtual ::java::lang::String * toString(); + virtual ::javax::print::attribute::standard::PrinterURI * getPrinterURI(); +private: + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) printerAttr; + ::java::util::HashSet * printServiceAttributeListener; + ::java::lang::String * user; + ::java::lang::String * passwd; + ::java::lang::String * name; + ::java::util::List * flavors; + ::javax::print::attribute::standard::PrinterURI * printerUri; + ::java::util::ArrayList * printerUris; +public: // actually package-private + static ::java::util::logging::Logger * logger; +public: + static ::javax::print::attribute::standard::RequestingUserName * REQUESTING_USER_NAME; + static ::javax::print::attribute::standard::JobName * JOB_NAME; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppPrintService__ diff --git a/libjava/gnu/javax/print/ipp/IppRequest$RequestWriter.h b/libjava/gnu/javax/print/ipp/IppRequest$RequestWriter.h new file mode 100644 index 00000000000..515c23138cc --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppRequest$RequestWriter.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppRequest$RequestWriter__ +#define __gnu_javax_print_ipp_IppRequest$RequestWriter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppRequest; + class IppRequest$RequestWriter; + namespace attribute + { + class CharsetSyntax; + class NaturalLanguageSyntax; + class RequestedAttributes; + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSet; + class DateTimeSyntax; + class EnumSyntax; + class IntegerSyntax; + class ResolutionSyntax; + class SetOfIntegerSyntax; + class TextSyntax; + class URISyntax; + } + } + } +} + +class gnu::javax::print::ipp::IppRequest$RequestWriter : public ::java::lang::Object +{ + +public: // actually package-private + IppRequest$RequestWriter(::gnu::javax::print::ipp::IppRequest *, ::java::io::DataOutputStream *); +private: + void write(::javax::print::attribute::IntegerSyntax *); + void write(::javax::print::attribute::EnumSyntax *); + void write(::javax::print::attribute::SetOfIntegerSyntax *); + void write(::javax::print::attribute::ResolutionSyntax *); + void write(::javax::print::attribute::DateTimeSyntax *); + void write(::javax::print::attribute::TextSyntax *); + void write(::javax::print::attribute::URISyntax *); + void write(::gnu::javax::print::ipp::attribute::CharsetSyntax *); + void write(::gnu::javax::print::ipp::attribute::NaturalLanguageSyntax *); + void write(::gnu::javax::print::ipp::attribute::RequestedAttributes *); +public: + virtual void writeOperationAttributes(::javax::print::attribute::AttributeSet *); + virtual void writeAttributes(::javax::print::attribute::AttributeSet *); +private: + ::java::io::DataOutputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) out; +public: // actually package-private + ::gnu::javax::print::ipp::IppRequest * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppRequest$RequestWriter__ diff --git a/libjava/gnu/javax/print/ipp/IppRequest.h b/libjava/gnu/javax/print/ipp/IppRequest.h new file mode 100644 index 00000000000..069f96423ca --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppRequest.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppRequest__ +#define __gnu_javax_print_ipp_IppRequest__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppRequest; + class IppResponse; + } + } + } + } + namespace java + { + namespace net + { + class HttpURLConnection; + class URI; + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + } + } + } +} + +class gnu::javax::print::ipp::IppRequest : public ::java::lang::Object +{ + +public: + IppRequest(::java::net::URI *, ::java::lang::String *, ::java::lang::String *); +private: + jint incrementRequestIdCounter(); +public: + virtual jint getRequestID(); + virtual void setData(::java::io::InputStream *); + virtual void setData(JArray< jbyte > *); + virtual void setOperationID(jshort); + virtual void setOperationAttributeDefaults(); + virtual void addJobAttribute(::javax::print::attribute::Attribute *); + virtual void addPrinterAttributes(::javax::print::attribute::Attribute *); + virtual void addOperationAttribute(::javax::print::attribute::Attribute *); + virtual void addAndFilterJobOperationAttributes(::javax::print::attribute::AttributeSet *); + virtual void addAndFilterJobTemplateAttributes(::javax::print::attribute::AttributeSet *); + virtual ::gnu::javax::print::ipp::IppResponse * send(); +private: + static const jint timeout = 1000; +public: // actually package-private + static ::java::util::logging::Logger * logger; +private: + static jint requestIdCounter; + static const jshort VERSION = 257; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) alreadySent; + jshort operation_id; + jint request_id; + ::javax::print::attribute::AttributeSet * operationAttributes; + ::javax::print::attribute::AttributeSet * printerAttributes; + ::javax::print::attribute::AttributeSet * jobAttributes; + ::java::lang::Object * data; + ::java::net::URI * requestUri; + ::java::net::HttpURLConnection * connection; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppRequest__ diff --git a/libjava/gnu/javax/print/ipp/IppResponse$ResponseReader.h b/libjava/gnu/javax/print/ipp/IppResponse$ResponseReader.h new file mode 100644 index 00000000000..5f7dc2fc2a4 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppResponse$ResponseReader.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppResponse$ResponseReader__ +#define __gnu_javax_print_ipp_IppResponse$ResponseReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppResponse; + class IppResponse$ResponseReader; + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + namespace standard + { + class JobStateReasons; + class PrinterStateReasons; + } + } + } + } +} + +class gnu::javax::print::ipp::IppResponse$ResponseReader : public ::java::lang::Object +{ + +public: // actually package-private + IppResponse$ResponseReader(::gnu::javax::print::ipp::IppResponse *); +public: + virtual void parseResponse(::java::io::InputStream *); +private: + jbyte parseAttributes(::java::util::Map *, ::java::io::DataInputStream *); + void addAttribute(::java::util::Map *, ::javax::print::attribute::Attribute *); + ::javax::print::attribute::standard::PrinterStateReasons * parsePrinterStateReasons(JArray< jbyte > *, ::javax::print::attribute::Attribute *); + ::javax::print::attribute::standard::JobStateReasons * parseJobStateReasons(JArray< jbyte > *, ::javax::print::attribute::Attribute *); + ::java::util::Date * parseDate(JArray< jbyte > *); + static const jshort VERSION = 257; +public: // actually package-private + ::gnu::javax::print::ipp::IppResponse * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppResponse$ResponseReader__ diff --git a/libjava/gnu/javax/print/ipp/IppResponse.h b/libjava/gnu/javax/print/ipp/IppResponse.h new file mode 100644 index 00000000000..468b713283a --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppResponse.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppResponse__ +#define __gnu_javax_print_ipp_IppResponse__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppResponse; + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::ipp::IppResponse : public ::java::lang::Object +{ + +public: + IppResponse(::java::net::URI *, jshort); +public: // actually protected + virtual void setResponseData(::java::io::InputStream *); +public: + virtual ::java::net::URI * getURI(); + virtual jint getOperationID(); + virtual ::java::util::List * getJobAttributes(); + virtual ::java::util::List * getOperationAttributes(); + virtual ::java::util::List * getPrinterAttributes(); + virtual jint getRequestID(); + virtual jshort getStatusCode(); + virtual ::java::util::List * getUnsupportedAttributes(); + virtual JArray< jbyte > * getData(); +public: // actually package-private + static ::java::util::logging::Logger * logger; + ::java::net::URI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) uri; + jshort operation_id; + jshort status_code; + jint request_id; + ::java::util::List * operationAttributes; + ::java::util::List * printerAttributes; + ::java::util::List * jobAttributes; + ::java::util::List * unsupportedAttributes; + JArray< jbyte > * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppResponse__ diff --git a/libjava/gnu/javax/print/ipp/IppStatusCode.h b/libjava/gnu/javax/print/ipp/IppStatusCode.h new file mode 100644 index 00000000000..dd3eb0d37cc --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppStatusCode.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppStatusCode__ +#define __gnu_javax_print_ipp_IppStatusCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppStatusCode; + } + } + } + } +} + +class gnu::javax::print::ipp::IppStatusCode : public ::java::lang::Object +{ + + IppStatusCode(); +public: + static const jint SUCCESSFUL_OK = 0; + static const jint SUCCESSFUL_OK_IGNORED_OR_SUBSTITUED_ATTRIBUTES = 1; + static const jint SUCCESSFUL_OK_CONFLICTING_ATTRIBUTES = 2; + static const jint CLIENT_ERROR_BAD_REQUEST = 1024; + static const jint CLIENT_ERROR_FORBIDDEN = 1025; + static const jint CLIENT_ERROR_NOT_AUTHENTICATED = 1026; + static const jint CLIENT_ERROR_NOT_AUTHORIZED = 1027; + static const jint CLIENT_ERROR_NOT_POSSIBLE = 1028; + static const jint CLIENT_ERROR_TIMEOUT = 1029; + static const jint CLIENT_ERROR_NOT_FOUND = 1030; + static const jint CLIENT_ERROR_GONE = 1031; + static const jint CLIENT_ERROR_REQUEST_ENTITY_TOO_LONG = 1032; + static const jint CLIENT_ERROR_REQUEST_VALUE_TOO_LONG = 1033; + static const jint CLIENT_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED = 1034; + static const jint CLIENT_ERROR_ATTRIBUTES_OR_VALUES_NOT_SUPPORTED = 1035; + static const jint CLIENT_ERROR_URI_SCHEME_NOT_SUPPORTED = 1036; + static const jint CLIENT_ERROR_CHARSET_NOT_SUPPORTED = 1037; + static const jint CLIENT_ERROR_CONFLICTING_ATTRIBUTES = 1038; + static const jint CLIENT_ERROR_COMPRESSION_NOT_SUPPORTED = 1039; + static const jint CLIENT_ERROR_COMPRESSION_ERROR = 1040; + static const jint CLIENT_ERROR_DOCUMENT_FORMAT_ERROR = 1041; + static const jint CLIENT_ERROR_DOCUMENT_ACCESS_ERROR = 1042; + static const jint SERVER_ERROR_INTERNAL_ERROR = 1280; + static const jint SERVER_ERROR_OPERATION_NOT_SUPPORTED = 1281; + static const jint SERVER_ERROR_SERVICE_UNAVAILABLE = 1282; + static const jint SERVER_ERROR_VERSION_NOT_SUPPORTED = 1283; + static const jint SERVER_ERROR_DEVICE_ERROR = 1284; + static const jint SERVER_ERROR_TEMPORARY_ERROR = 1285; + static const jint SERVER_ERROR_NOT_ACCEPTING_JOBS = 1286; + static const jint SERVER_ERROR_BUSY = 1287; + static const jint SERVER_ERROR_JOB_CANCELED = 1288; + static const jint SERVER_ERROR_MULTIPLE_DOCUMENT_JOBS_NOT_SUPPORTED = 1289; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppStatusCode__ diff --git a/libjava/gnu/javax/print/ipp/IppUtilities.h b/libjava/gnu/javax/print/ipp/IppUtilities.h new file mode 100644 index 00000000000..000723f666b --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppUtilities.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppUtilities__ +#define __gnu_javax_print_ipp_IppUtilities__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppUtilities; + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::IppUtilities : public ::java::lang::Object +{ + + IppUtilities(); +public: + static ::java::lang::Class * getClass(::java::lang::String *); + static ::java::lang::String * getSupportedAttrName(::java::lang::Class *); + static ::java::lang::Class * getSupportedCategory(::java::lang::Class *); + static jint convertToInt(JArray< jbyte > *); + static jint convertToInt(jbyte, jbyte, jbyte, jbyte); + static jshort convertToShort(jbyte, jbyte); + static ::javax::print::attribute::Attribute * getEnumAttribute(::java::lang::String *, ::java::lang::Object *); + static ::javax::print::attribute::Attribute * getIntegerAttribute(::java::lang::String *, jint); + static ::javax::print::attribute::Attribute * getTextAttribute(::java::lang::String *, jbyte, JArray< jbyte > *); +private: + static JArray< ::java::lang::Object * > * INTEGER_ATT_VALUE; + static JArray< ::java::lang::Class * > * INTEGER_CLASS_ARRAY; + static JArray< ::java::lang::Object * > * TEXT_ATT_VALUE; + static JArray< ::java::lang::Class * > * TEXT_CLASS_ARRAY; + static ::java::util::HashMap * classesByName; + static ::java::util::HashMap * instanceByClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppUtilities__ diff --git a/libjava/gnu/javax/print/ipp/IppValueTag.h b/libjava/gnu/javax/print/ipp/IppValueTag.h new file mode 100644 index 00000000000..341f87c5950 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/IppValueTag.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_IppValueTag__ +#define __gnu_javax_print_ipp_IppValueTag__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppValueTag; + } + } + } + } +} + +class gnu::javax::print::ipp::IppValueTag : public ::java::lang::Object +{ + + IppValueTag(); +public: + static jboolean isValueTag(jbyte); + static const jbyte UNSUPPORTED = 16; + static const jbyte UNKNOWN = 18; + static const jbyte NO_VALUE = 19; + static const jbyte INTEGER = 33; + static const jbyte BOOLEAN = 34; + static const jbyte ENUM = 35; + static const jbyte OCTECTSTRING_UNSPECIFIED = 48; + static const jbyte DATETIME = 49; + static const jbyte RESOLUTION = 50; + static const jbyte RANGEOFINTEGER = 51; + static const jbyte TEXT_WITH_LANGUAGE = 53; + static const jbyte NAME_WITH_LANGUAGE = 54; + static const jbyte TEXT_WITHOUT_LANGUAGE = 65; + static const jbyte NAME_WITHOUT_LANGUAGE = 66; + static const jbyte KEYWORD = 68; + static const jbyte URI = 69; + static const jbyte URI_SCHEME = 70; + static const jbyte CHARSET = 71; + static const jbyte NATURAL_LANGUAGE = 72; + static const jbyte MIME_MEDIA_TYPE = 73; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_IppValueTag__ diff --git a/libjava/gnu/javax/print/ipp/MultiDocPrintJobImpl.h b/libjava/gnu/javax/print/ipp/MultiDocPrintJobImpl.h new file mode 100644 index 00000000000..dbe7cd8a6bb --- /dev/null +++ b/libjava/gnu/javax/print/ipp/MultiDocPrintJobImpl.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_MultiDocPrintJobImpl__ +#define __gnu_javax_print_ipp_MultiDocPrintJobImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + class IppPrintService; + class MultiDocPrintJobImpl; + } + } + } + } + namespace javax + { + namespace print + { + class MultiDoc; + namespace attribute + { + class PrintRequestAttributeSet; + } + } + } +} + +class gnu::javax::print::ipp::MultiDocPrintJobImpl : public ::gnu::javax::print::ipp::DocPrintJobImpl +{ + +public: + MultiDocPrintJobImpl(::gnu::javax::print::ipp::IppPrintService *, ::java::lang::String *, ::java::lang::String *); + virtual void print(::javax::print::MultiDoc *, ::javax::print::attribute::PrintRequestAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_MultiDocPrintJobImpl__ diff --git a/libjava/gnu/javax/print/ipp/attribute/CharsetSyntax.h b/libjava/gnu/javax/print/ipp/attribute/CharsetSyntax.h new file mode 100644 index 00000000000..bc02d4b76d2 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/CharsetSyntax.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_CharsetSyntax__ +#define __gnu_javax_print_ipp_attribute_CharsetSyntax__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class CharsetSyntax; + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::CharsetSyntax : public ::java::lang::Object +{ + +public: // actually protected + CharsetSyntax(::java::lang::String *); +public: + virtual ::java::lang::String * getValue(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_CharsetSyntax__ diff --git a/libjava/gnu/javax/print/ipp/attribute/DefaultValueAttribute.h b/libjava/gnu/javax/print/ipp/attribute/DefaultValueAttribute.h new file mode 100644 index 00000000000..25c1c013388 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/DefaultValueAttribute.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_DefaultValueAttribute__ +#define __gnu_javax_print_ipp_attribute_DefaultValueAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class DefaultValueAttribute; + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::DefaultValueAttribute : public ::java::lang::Object +{ + +public: + virtual ::javax::print::attribute::Attribute * getAssociatedAttribute() = 0; + virtual ::java::lang::Class * getCategory() = 0; + virtual ::java::lang::String * getName() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_print_ipp_attribute_DefaultValueAttribute__ diff --git a/libjava/gnu/javax/print/ipp/attribute/DetailedStatusMessage.h b/libjava/gnu/javax/print/ipp/attribute/DetailedStatusMessage.h new file mode 100644 index 00000000000..0b0be102aac --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/DetailedStatusMessage.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_DetailedStatusMessage__ +#define __gnu_javax_print_ipp_attribute_DetailedStatusMessage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class DetailedStatusMessage; + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::DetailedStatusMessage : public ::javax::print::attribute::TextSyntax +{ + +public: + DetailedStatusMessage(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_DetailedStatusMessage__ diff --git a/libjava/gnu/javax/print/ipp/attribute/DocumentAccessError.h b/libjava/gnu/javax/print/ipp/attribute/DocumentAccessError.h new file mode 100644 index 00000000000..8a641a0a077 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/DocumentAccessError.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_DocumentAccessError__ +#define __gnu_javax_print_ipp_attribute_DocumentAccessError__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class DocumentAccessError; + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::DocumentAccessError : public ::javax::print::attribute::TextSyntax +{ + +public: + DocumentAccessError(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_DocumentAccessError__ diff --git a/libjava/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.h b/libjava/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.h new file mode 100644 index 00000000000..7913233b918 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_NaturalLanguageSyntax__ +#define __gnu_javax_print_ipp_attribute_NaturalLanguageSyntax__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class NaturalLanguageSyntax; + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::NaturalLanguageSyntax : public ::java::lang::Object +{ + +public: // actually protected + NaturalLanguageSyntax(::java::lang::String *); +public: + virtual ::java::lang::String * getValue(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_NaturalLanguageSyntax__ diff --git a/libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h b/libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h new file mode 100644 index 00000000000..8ed5bc28c06 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/RequestedAttributes.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_RequestedAttributes__ +#define __gnu_javax_print_ipp_attribute_RequestedAttributes__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class RequestedAttributes; + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::RequestedAttributes : public ::java::lang::Object +{ + +public: + RequestedAttributes(::java::lang::String *); + void addValue(::java::lang::String *); + ::java::util::List * getValues(); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::java::lang::String * toString(); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_RequestedAttributes__ diff --git a/libjava/gnu/javax/print/ipp/attribute/StatusMessage.h b/libjava/gnu/javax/print/ipp/attribute/StatusMessage.h new file mode 100644 index 00000000000..b87c9800f25 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/StatusMessage.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_StatusMessage__ +#define __gnu_javax_print_ipp_attribute_StatusMessage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class StatusMessage; + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::StatusMessage : public ::javax::print::attribute::TextSyntax +{ + +public: + StatusMessage(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_StatusMessage__ diff --git a/libjava/gnu/javax/print/ipp/attribute/UnknownAttribute.h b/libjava/gnu/javax/print/ipp/attribute/UnknownAttribute.h new file mode 100644 index 00000000000..dc6aa6550bb --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/UnknownAttribute.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_UnknownAttribute__ +#define __gnu_javax_print_ipp_attribute_UnknownAttribute__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + class UnknownAttribute; + } + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::ipp::attribute::UnknownAttribute : public ::java::lang::Object +{ + +public: + UnknownAttribute(jbyte, ::java::lang::String *, JArray< jbyte > *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + jbyte getValueTag(); + ::java::lang::String * getAttributeName(); + JArray< jbyte > * getAttributeValue(); + ::java::lang::String * getAttributeValueAsString(); + jint getAttributeValueAsInt(); + ::java::net::URI * getAttributeValueAsUri(); + ::java::lang::String * toString(); +private: + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) tag; + ::java::lang::String * name; + JArray< jbyte > * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_UnknownAttribute__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.h new file mode 100644 index 00000000000..2a0c003fb5b --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/CopiesDefault.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_CopiesDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_CopiesDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class CopiesDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::CopiesDefault : public ::javax::print::attribute::IntegerSyntax +{ + +public: + CopiesDefault(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_CopiesDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.h new file mode 100644 index 00000000000..d86ecdeaad9 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_DocumentFormatDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_DocumentFormatDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class DocumentFormatDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::DocumentFormatDefault : public ::javax::print::attribute::TextSyntax +{ + +public: + DocumentFormatDefault(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_DocumentFormatDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.h new file mode 100644 index 00000000000..97a6f4a8671 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_FinishingsDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_FinishingsDefault__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class FinishingsDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::FinishingsDefault : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + FinishingsDefault(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +public: + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * NONE; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * COVER; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * BIND; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * SADDLE_STITCH; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * EDGE_STITCH; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_TOP_LEFT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_BOTTOM_LEFT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_TOP_RIGHT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_BOTTOM_RIGHT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * EDGE_STITCH_LEFT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * EDGE_STITCH_TOP; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * EDGE_STITCH_RIGHT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * EDGE_STITCH_BOTTOM; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_DUAL_LEFT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_DUAL_TOP; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_DUAL_RIGHT; + static ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * STAPLE_DUAL_BOTTOM; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::defaults::FinishingsDefault * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_FinishingsDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.h new file mode 100644 index 00000000000..5a059dc00cb --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_JobHoldUntilDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_JobHoldUntilDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class JobHoldUntilDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault : public ::javax::print::attribute::TextSyntax +{ + +public: + JobHoldUntilDefault(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * NO_HOLD; + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * INDEFINITE; + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * DAY_TIME; + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * EVENING; + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * NIGHT; + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * WEEKEND; + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * SECOND_SHIFT; + static ::gnu::javax::print::ipp::attribute::defaults::JobHoldUntilDefault * THIRD_SHIFT; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_JobHoldUntilDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.h new file mode 100644 index 00000000000..22f50301397 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_JobPriorityDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_JobPriorityDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class JobPriorityDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::JobPriorityDefault : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobPriorityDefault(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_JobPriorityDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.h new file mode 100644 index 00000000000..d8f4cb25816 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_JobSheetsDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_JobSheetsDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class JobSheetsDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::JobSheetsDefault : public ::javax::print::attribute::TextSyntax +{ + +public: + JobSheetsDefault(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::gnu::javax::print::ipp::attribute::defaults::JobSheetsDefault * NONE; + static ::gnu::javax::print::ipp::attribute::defaults::JobSheetsDefault * STANDARD; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_JobSheetsDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/MediaDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/MediaDefault.h new file mode 100644 index 00000000000..9825da3056e --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/MediaDefault.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_MediaDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_MediaDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class MediaDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::MediaDefault : public ::javax::print::attribute::TextSyntax +{ + +public: + MediaDefault(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_MediaDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.h new file mode 100644 index 00000000000..9ffc184863e --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/MultipleDocumentHandlingDefault.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_MultipleDocumentHandlingDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_MultipleDocumentHandlingDefault__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class MultipleDocumentHandlingDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::MultipleDocumentHandlingDefault : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + MultipleDocumentHandlingDefault(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::gnu::javax::print::ipp::attribute::defaults::MultipleDocumentHandlingDefault * SINGLE_DOCUMENT; + static ::gnu::javax::print::ipp::attribute::defaults::MultipleDocumentHandlingDefault * SEPARATE_DOCUMENTS_UNCOLLATED_COPIES; + static ::gnu::javax::print::ipp::attribute::defaults::MultipleDocumentHandlingDefault * SEPARATE_DOCUMENTS_COLLATED_COPIES; + static ::gnu::javax::print::ipp::attribute::defaults::MultipleDocumentHandlingDefault * SINGLE_DOCUMENT_NEW_SHEET; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::defaults::MultipleDocumentHandlingDefault * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_MultipleDocumentHandlingDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.h new file mode 100644 index 00000000000..cc4d01d6658 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_NumberUpDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_NumberUpDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class NumberUpDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::NumberUpDefault : public ::javax::print::attribute::IntegerSyntax +{ + +public: + NumberUpDefault(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_NumberUpDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.h new file mode 100644 index 00000000000..7b53cec2780 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_OrientationRequestedDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_OrientationRequestedDefault__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class OrientationRequestedDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::OrientationRequestedDefault : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + OrientationRequestedDefault(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +public: + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::gnu::javax::print::ipp::attribute::defaults::OrientationRequestedDefault * PORTRAIT; + static ::gnu::javax::print::ipp::attribute::defaults::OrientationRequestedDefault * LANDSCAPE; + static ::gnu::javax::print::ipp::attribute::defaults::OrientationRequestedDefault * REVERSE_LANDSCAPE; + static ::gnu::javax::print::ipp::attribute::defaults::OrientationRequestedDefault * REVERSE_PORTRAIT; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::defaults::OrientationRequestedDefault * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_OrientationRequestedDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.h new file mode 100644 index 00000000000..0c0bf5aa8a7 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_PrintQualityDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_PrintQualityDefault__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class PrintQualityDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::PrintQualityDefault : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PrintQualityDefault(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +public: + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::gnu::javax::print::ipp::attribute::defaults::PrintQualityDefault * DRAFT; + static ::gnu::javax::print::ipp::attribute::defaults::PrintQualityDefault * NORMAL; + static ::gnu::javax::print::ipp::attribute::defaults::PrintQualityDefault * HIGH; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::defaults::PrintQualityDefault * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_PrintQualityDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.h new file mode 100644 index 00000000000..faeeb6de864 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_PrinterResolutionDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_PrinterResolutionDefault__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class PrinterResolutionDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::PrinterResolutionDefault : public ::javax::print::attribute::ResolutionSyntax +{ + +public: + PrinterResolutionDefault(jint, jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_PrinterResolutionDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/defaults/SidesDefault.h b/libjava/gnu/javax/print/ipp/attribute/defaults/SidesDefault.h new file mode 100644 index 00000000000..836ca618bfa --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/defaults/SidesDefault.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_defaults_SidesDefault__ +#define __gnu_javax_print_ipp_attribute_defaults_SidesDefault__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class SidesDefault; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::defaults::SidesDefault : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + SidesDefault(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + ::javax::print::attribute::Attribute * getAssociatedAttribute(); + static ::gnu::javax::print::ipp::attribute::defaults::SidesDefault * ONE_SIDED; + static ::gnu::javax::print::ipp::attribute::defaults::SidesDefault * TWO_SIDED_LONG_EDGE; + static ::gnu::javax::print::ipp::attribute::defaults::SidesDefault * TWO_SIDED_SHORT_EDGE; + static ::gnu::javax::print::ipp::attribute::defaults::SidesDefault * DUPLEX; + static ::gnu::javax::print::ipp::attribute::defaults::SidesDefault * TUMBLE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::defaults::SidesDefault * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_defaults_SidesDefault__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/AttributesCharset.h b/libjava/gnu/javax/print/ipp/attribute/job/AttributesCharset.h new file mode 100644 index 00000000000..82cb55b4362 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/AttributesCharset.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_AttributesCharset__ +#define __gnu_javax_print_ipp_attribute_job_AttributesCharset__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class AttributesCharset; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::job::AttributesCharset : public ::gnu::javax::print::ipp::attribute::CharsetSyntax +{ + +public: + AttributesCharset(::java::lang::String *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::gnu::javax::print::ipp::attribute::job::AttributesCharset * UTF8; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_AttributesCharset__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.h b/libjava/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.h new file mode 100644 index 00000000000..e69e1c8600b --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_AttributesNaturalLanguage__ +#define __gnu_javax_print_ipp_attribute_job_AttributesNaturalLanguage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class AttributesNaturalLanguage; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::job::AttributesNaturalLanguage : public ::gnu::javax::print::ipp::attribute::NaturalLanguageSyntax +{ + +public: + AttributesNaturalLanguage(::java::lang::String *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::gnu::javax::print::ipp::attribute::job::AttributesNaturalLanguage * EN; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_AttributesNaturalLanguage__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.h b/libjava/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.h new file mode 100644 index 00000000000..c21c942f45b --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_JobDetailedStatusMessages__ +#define __gnu_javax_print_ipp_attribute_job_JobDetailedStatusMessages__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class JobDetailedStatusMessages; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::job::JobDetailedStatusMessages : public ::javax::print::attribute::TextSyntax +{ + +public: + JobDetailedStatusMessages(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_JobDetailedStatusMessages__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.h b/libjava/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.h new file mode 100644 index 00000000000..9aaaf03e0c6 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_JobDocumentAccessErrors__ +#define __gnu_javax_print_ipp_attribute_job_JobDocumentAccessErrors__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class JobDocumentAccessErrors; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::job::JobDocumentAccessErrors : public ::javax::print::attribute::TextSyntax +{ + +public: + JobDocumentAccessErrors(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_JobDocumentAccessErrors__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/JobId.h b/libjava/gnu/javax/print/ipp/attribute/job/JobId.h new file mode 100644 index 00000000000..6141d51c1b6 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/JobId.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_JobId__ +#define __gnu_javax_print_ipp_attribute_job_JobId__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class JobId; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::job::JobId : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobId(jint); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_JobId__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/JobMoreInfo.h b/libjava/gnu/javax/print/ipp/attribute/job/JobMoreInfo.h new file mode 100644 index 00000000000..61a5364c56a --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/JobMoreInfo.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_JobMoreInfo__ +#define __gnu_javax_print_ipp_attribute_job_JobMoreInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class JobMoreInfo; + } + } + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::ipp::attribute::job::JobMoreInfo : public ::javax::print::attribute::URISyntax +{ + +public: + JobMoreInfo(::java::net::URI *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_JobMoreInfo__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/JobPrinterUri.h b/libjava/gnu/javax/print/ipp/attribute/job/JobPrinterUri.h new file mode 100644 index 00000000000..7ac6adf305f --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/JobPrinterUri.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_JobPrinterUri__ +#define __gnu_javax_print_ipp_attribute_job_JobPrinterUri__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class JobPrinterUri; + } + } + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::ipp::attribute::job::JobPrinterUri : public ::javax::print::attribute::URISyntax +{ + +public: + JobPrinterUri(::java::net::URI *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_JobPrinterUri__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/JobStateMessage.h b/libjava/gnu/javax/print/ipp/attribute/job/JobStateMessage.h new file mode 100644 index 00000000000..3eb3c3652ca --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/JobStateMessage.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_JobStateMessage__ +#define __gnu_javax_print_ipp_attribute_job_JobStateMessage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class JobStateMessage; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::job::JobStateMessage : public ::javax::print::attribute::TextSyntax +{ + +public: + JobStateMessage(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_JobStateMessage__ diff --git a/libjava/gnu/javax/print/ipp/attribute/job/JobUri.h b/libjava/gnu/javax/print/ipp/attribute/job/JobUri.h new file mode 100644 index 00000000000..42551e00d2b --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/job/JobUri.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_job_JobUri__ +#define __gnu_javax_print_ipp_attribute_job_JobUri__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace job + { + class JobUri; + } + } + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::ipp::attribute::job::JobUri : public ::javax::print::attribute::URISyntax +{ + +public: + JobUri(::java::net::URI *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_job_JobUri__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.h b/libjava/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.h new file mode 100644 index 00000000000..4d4da6823a9 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/CharsetConfigured.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_CharsetConfigured__ +#define __gnu_javax_print_ipp_attribute_printer_CharsetConfigured__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class CharsetConfigured; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::printer::CharsetConfigured : public ::gnu::javax::print::ipp::attribute::CharsetSyntax +{ + +public: + CharsetConfigured(::java::lang::String *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_CharsetConfigured__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/DocumentFormat.h b/libjava/gnu/javax/print/ipp/attribute/printer/DocumentFormat.h new file mode 100644 index 00000000000..24ed6195665 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/DocumentFormat.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_DocumentFormat__ +#define __gnu_javax_print_ipp_attribute_printer_DocumentFormat__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class DocumentFormat; + } + } + } + } + } + } + namespace javax + { + namespace print + { + class DocFlavor; + } + } +} + +class gnu::javax::print::ipp::attribute::printer::DocumentFormat : public ::javax::print::attribute::TextSyntax +{ + +public: + DocumentFormat(::java::lang::String *, ::java::util::Locale *); + static ::gnu::javax::print::ipp::attribute::printer::DocumentFormat * createDocumentFormat(::javax::print::DocFlavor *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_DocumentFormat__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.h b/libjava/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.h new file mode 100644 index 00000000000..ecce212081f --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_MultipleOperationTimeOut__ +#define __gnu_javax_print_ipp_attribute_printer_MultipleOperationTimeOut__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class MultipleOperationTimeOut; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::printer::MultipleOperationTimeOut : public ::javax::print::attribute::IntegerSyntax +{ + +public: + MultipleOperationTimeOut(jint); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_MultipleOperationTimeOut__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.h b/libjava/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.h new file mode 100644 index 00000000000..4e520a500b3 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_NaturalLanguageConfigured__ +#define __gnu_javax_print_ipp_attribute_printer_NaturalLanguageConfigured__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class NaturalLanguageConfigured; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::printer::NaturalLanguageConfigured : public ::gnu::javax::print::ipp::attribute::NaturalLanguageSyntax +{ + +public: + NaturalLanguageConfigured(::java::lang::String *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_NaturalLanguageConfigured__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.h b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.h new file mode 100644 index 00000000000..a473cf19151 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_PrinterCurrentTime__ +#define __gnu_javax_print_ipp_attribute_printer_PrinterCurrentTime__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class PrinterCurrentTime; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::printer::PrinterCurrentTime : public ::javax::print::attribute::DateTimeSyntax +{ + +public: + PrinterCurrentTime(::java::util::Date *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_PrinterCurrentTime__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.h b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.h new file mode 100644 index 00000000000..509573271c7 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_PrinterDriverInstaller__ +#define __gnu_javax_print_ipp_attribute_printer_PrinterDriverInstaller__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class PrinterDriverInstaller; + } + } + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::ipp::attribute::printer::PrinterDriverInstaller : public ::javax::print::attribute::URISyntax +{ + +public: + PrinterDriverInstaller(::java::net::URI *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_PrinterDriverInstaller__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.h b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.h new file mode 100644 index 00000000000..286c4457a92 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_PrinterStateMessage__ +#define __gnu_javax_print_ipp_attribute_printer_PrinterStateMessage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class PrinterStateMessage; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::printer::PrinterStateMessage : public ::javax::print::attribute::TextSyntax +{ + +public: + PrinterStateMessage(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_PrinterStateMessage__ diff --git a/libjava/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.h b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.h new file mode 100644 index 00000000000..4fba7e000ff --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/printer/PrinterUpTime.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_printer_PrinterUpTime__ +#define __gnu_javax_print_ipp_attribute_printer_PrinterUpTime__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace printer + { + class PrinterUpTime; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::printer::PrinterUpTime : public ::javax::print::attribute::IntegerSyntax +{ + +public: + PrinterUpTime(jint); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_printer_PrinterUpTime__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/CharsetSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/CharsetSupported.h new file mode 100644 index 00000000000..f9a87b58ed7 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/CharsetSupported.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_CharsetSupported__ +#define __gnu_javax_print_ipp_attribute_supported_CharsetSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class CharsetSupported; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::CharsetSupported : public ::gnu::javax::print::ipp::attribute::CharsetSyntax +{ + +public: + CharsetSupported(::java::lang::String *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_CharsetSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/CompressionSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/CompressionSupported.h new file mode 100644 index 00000000000..c3e5b8ce1a2 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/CompressionSupported.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_CompressionSupported__ +#define __gnu_javax_print_ipp_attribute_supported_CompressionSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class CompressionSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Compression; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::CompressionSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + CompressionSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + ::javax::print::attribute::standard::Compression * getAssociatedAttribute(); + static JArray< ::javax::print::attribute::standard::Compression * > * getAssociatedAttributeArray(::java::util::Set *); + static ::gnu::javax::print::ipp::attribute::supported::CompressionSupported * NONE; + static ::gnu::javax::print::ipp::attribute::supported::CompressionSupported * DEFLATE; + static ::gnu::javax::print::ipp::attribute::supported::CompressionSupported * GZIP; + static ::gnu::javax::print::ipp::attribute::supported::CompressionSupported * COMPRESS; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::CompressionSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_CompressionSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.h new file mode 100644 index 00000000000..16add8c0f5a --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_DocumentFormatSupported__ +#define __gnu_javax_print_ipp_attribute_supported_DocumentFormatSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class DocumentFormatSupported; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::DocumentFormatSupported : public ::javax::print::attribute::TextSyntax +{ + +public: + DocumentFormatSupported(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_DocumentFormatSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.h new file mode 100644 index 00000000000..ec98145255e --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/FinishingsSupported.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_FinishingsSupported__ +#define __gnu_javax_print_ipp_attribute_supported_FinishingsSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class FinishingsSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Finishings; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::FinishingsSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + FinishingsSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +public: + ::javax::print::attribute::standard::Finishings * getAssociatedAttribute(); + static JArray< ::javax::print::attribute::standard::Finishings * > * getAssociatedAttributeArray(::java::util::Set *); + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * NONE; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * COVER; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * BIND; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * SADDLE_STITCH; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * EDGE_STITCH; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_TOP_LEFT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_BOTTOM_LEFT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_TOP_RIGHT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_BOTTOM_RIGHT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * EDGE_STITCH_LEFT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * EDGE_STITCH_TOP; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * EDGE_STITCH_RIGHT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * EDGE_STITCH_BOTTOM; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_DUAL_LEFT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_DUAL_TOP; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_DUAL_RIGHT; + static ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * STAPLE_DUAL_BOTTOM; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::FinishingsSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_FinishingsSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.h new file mode 100644 index 00000000000..9a1c3c41758 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/GeneratedNaturalLanguageSupported.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_GeneratedNaturalLanguageSupported__ +#define __gnu_javax_print_ipp_attribute_supported_GeneratedNaturalLanguageSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class GeneratedNaturalLanguageSupported; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::GeneratedNaturalLanguageSupported : public ::gnu::javax::print::ipp::attribute::NaturalLanguageSyntax +{ + +public: + GeneratedNaturalLanguageSupported(::java::lang::String *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_GeneratedNaturalLanguageSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.h new file mode 100644 index 00000000000..058b8d19214 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_IppVersionsSupported__ +#define __gnu_javax_print_ipp_attribute_supported_IppVersionsSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class IppVersionsSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::IppVersionsSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: + IppVersionsSupported(jint); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + static ::gnu::javax::print::ipp::attribute::supported::IppVersionsSupported * V_1_0; + static ::gnu::javax::print::ipp::attribute::supported::IppVersionsSupported * V_1_1; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::IppVersionsSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_IppVersionsSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.h new file mode 100644 index 00000000000..2e7e6cd8d3c --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_JobHoldUntilSupported__ +#define __gnu_javax_print_ipp_attribute_supported_JobHoldUntilSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class JobHoldUntilSupported; + } + } + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported : public ::javax::print::attribute::TextSyntax +{ + +public: + JobHoldUntilSupported(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * NO_HOLD; + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * INDEFINITE; + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * DAY_TIME; + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * EVENING; + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * NIGHT; + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * WEEKEND; + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * SECOND_SHIFT; + static ::gnu::javax::print::ipp::attribute::supported::JobHoldUntilSupported * THIRD_SHIFT; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_JobHoldUntilSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.h new file mode 100644 index 00000000000..38ab8a7737e --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_JobSheetsSupported__ +#define __gnu_javax_print_ipp_attribute_supported_JobSheetsSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace defaults + { + class JobSheetsDefault; + } + namespace supported + { + class JobSheetsSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobSheets; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::JobSheetsSupported : public ::javax::print::attribute::TextSyntax +{ + +public: + JobSheetsSupported(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::standard::JobSheets * getAssociatedAttribute(); + static JArray< ::javax::print::attribute::standard::JobSheets * > * getAssociatedAttributeArray(::java::util::Set *); + static ::gnu::javax::print::ipp::attribute::defaults::JobSheetsDefault * NONE; + static ::gnu::javax::print::ipp::attribute::defaults::JobSheetsDefault * STANDARD; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_JobSheetsSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/MediaSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/MediaSupported.h new file mode 100644 index 00000000000..be9ad30afb3 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/MediaSupported.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_MediaSupported__ +#define __gnu_javax_print_ipp_attribute_supported_MediaSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class MediaSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class Media; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::MediaSupported : public ::javax::print::attribute::TextSyntax +{ + +public: + MediaSupported(::java::lang::String *, ::java::util::Locale *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static JArray< ::javax::print::attribute::standard::Media * > * getAssociatedAttributeArray(::java::util::Set *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_MediaSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.h new file mode 100644 index 00000000000..2c378c2282a --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentHandlingSupported.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_MultipleDocumentHandlingSupported__ +#define __gnu_javax_print_ipp_attribute_supported_MultipleDocumentHandlingSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class MultipleDocumentHandlingSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class MultipleDocumentHandling; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::MultipleDocumentHandlingSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + MultipleDocumentHandlingSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + ::javax::print::attribute::standard::MultipleDocumentHandling * getAssociatedAttribute(); + static JArray< ::javax::print::attribute::standard::MultipleDocumentHandling * > * getAssociatedAttributeArray(::java::util::Set *); + static ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentHandlingSupported * SINGLE_DOCUMENT; + static ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentHandlingSupported * SEPARATE_DOCUMENTS_UNCOLLATED_COPIES; + static ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentHandlingSupported * SEPARATE_DOCUMENTS_COLLATED_COPIES; + static ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentHandlingSupported * SINGLE_DOCUMENT_NEW_SHEET; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentHandlingSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_MultipleDocumentHandlingSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.h new file mode 100644 index 00000000000..66920c0e2ff --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/MultipleDocumentJobsSupported.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_MultipleDocumentJobsSupported__ +#define __gnu_javax_print_ipp_attribute_supported_MultipleDocumentJobsSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class MultipleDocumentJobsSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::MultipleDocumentJobsSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + MultipleDocumentJobsSupported(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + static ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentJobsSupported * NOT_SUPPORTED; + static ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentJobsSupported * SUPPORTED; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::MultipleDocumentJobsSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_MultipleDocumentJobsSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/OperationsSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/OperationsSupported.h new file mode 100644 index 00000000000..655d7edce6e --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/OperationsSupported.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_OperationsSupported__ +#define __gnu_javax_print_ipp_attribute_supported_OperationsSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class OperationsSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::OperationsSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + OperationsSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +public: + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * PRINT_JOB; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * PRINT_URI; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * VALIDATE_JOB; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * CREATE_JOB; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * SEND_DOCUMENT; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * SEND_URI; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * CANCEL_JOB; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * GET_JOB_ATTRIBUTES; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * PAUSE_PRINTER; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * GET_JOBS; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * GET_PRINTER_ATTRIBUTES; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * HOLD_JOB; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * RELEASE_JOB; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * RESTART_JOB; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * RESERVED; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * RESUME_PRINTER; + static ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * PURGE_JOBS; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::OperationsSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_OperationsSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.h new file mode 100644 index 00000000000..bbb90a4cc28 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/OrientationRequestedSupported.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_OrientationRequestedSupported__ +#define __gnu_javax_print_ipp_attribute_supported_OrientationRequestedSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class OrientationRequestedSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class OrientationRequested; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::OrientationRequestedSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + OrientationRequestedSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +public: + ::javax::print::attribute::standard::OrientationRequested * getAssociatedAttribute(); + static JArray< ::javax::print::attribute::standard::OrientationRequested * > * getAssociatedAttributeArray(::java::util::Set *); + static ::gnu::javax::print::ipp::attribute::supported::OrientationRequestedSupported * PORTRAIT; + static ::gnu::javax::print::ipp::attribute::supported::OrientationRequestedSupported * LANDSCAPE; + static ::gnu::javax::print::ipp::attribute::supported::OrientationRequestedSupported * REVERSE_LANDSCAPE; + static ::gnu::javax::print::ipp::attribute::supported::OrientationRequestedSupported * REVERSE_PORTRAIT; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::OrientationRequestedSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_OrientationRequestedSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.h new file mode 100644 index 00000000000..3baf062c3bb --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/PageRangesSupported.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_PageRangesSupported__ +#define __gnu_javax_print_ipp_attribute_supported_PageRangesSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class PageRangesSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::PageRangesSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PageRangesSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + static ::gnu::javax::print::ipp::attribute::supported::PageRangesSupported * NOT_SUPPORTED; + static ::gnu::javax::print::ipp::attribute::supported::PageRangesSupported * SUPPORTED; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::PageRangesSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_PageRangesSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.h new file mode 100644 index 00000000000..5f40779c3f2 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_PrintQualitySupported__ +#define __gnu_javax_print_ipp_attribute_supported_PrintQualitySupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class PrintQualitySupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class PrintQuality; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::PrintQualitySupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PrintQualitySupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +public: + ::javax::print::attribute::standard::PrintQuality * getAssociatedAttribute(); + static JArray< ::javax::print::attribute::standard::PrintQuality * > * getAssociatedAttributeArray(::java::util::Set *); + static ::gnu::javax::print::ipp::attribute::supported::PrintQualitySupported * DRAFT; + static ::gnu::javax::print::ipp::attribute::supported::PrintQualitySupported * NORMAL; + static ::gnu::javax::print::ipp::attribute::supported::PrintQualitySupported * HIGH; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::PrintQualitySupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_PrintQualitySupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.h new file mode 100644 index 00000000000..c9784671e37 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_PrinterResolutionSupported__ +#define __gnu_javax_print_ipp_attribute_supported_PrinterResolutionSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class PrinterResolutionSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterResolution; + } + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::PrinterResolutionSupported : public ::javax::print::attribute::ResolutionSyntax +{ + +public: + PrinterResolutionSupported(jint, jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::javax::print::attribute::standard::PrinterResolution * getAssociatedAttribute(); + static JArray< ::javax::print::attribute::standard::PrinterResolution * > * getAssociatedAttributeArray(::java::util::Set *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_PrinterResolutionSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.h new file mode 100644 index 00000000000..3c7b99d5ff2 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_PrinterUriSupported__ +#define __gnu_javax_print_ipp_attribute_supported_PrinterUriSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class PrinterUriSupported; + } + } + } + } + } + } + namespace java + { + namespace net + { + class URI; + } + } +} + +class gnu::javax::print::ipp::attribute::supported::PrinterUriSupported : public ::javax::print::attribute::URISyntax +{ + +public: + PrinterUriSupported(::java::net::URI *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_PrinterUriSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/SidesSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/SidesSupported.h new file mode 100644 index 00000000000..dbb186c10d2 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/SidesSupported.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_SidesSupported__ +#define __gnu_javax_print_ipp_attribute_supported_SidesSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class SidesSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::SidesSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + SidesSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + static ::gnu::javax::print::ipp::attribute::supported::SidesSupported * ONE_SIDED; + static ::gnu::javax::print::ipp::attribute::supported::SidesSupported * TWO_SIDED_LONG_EDGE; + static ::gnu::javax::print::ipp::attribute::supported::SidesSupported * TWO_SIDED_SHORT_EDGE; + static ::gnu::javax::print::ipp::attribute::supported::SidesSupported * DUPLEX; + static ::gnu::javax::print::ipp::attribute::supported::SidesSupported * TUMBLE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::SidesSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_SidesSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.h new file mode 100644 index 00000000000..254a20aca99 --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_UriAuthenticationSupported__ +#define __gnu_javax_print_ipp_attribute_supported_UriAuthenticationSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class UriAuthenticationSupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::UriAuthenticationSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: + UriAuthenticationSupported(jint); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + static ::gnu::javax::print::ipp::attribute::supported::UriAuthenticationSupported * NONE; + static ::gnu::javax::print::ipp::attribute::supported::UriAuthenticationSupported * REQUESTING_USER_NAME; + static ::gnu::javax::print::ipp::attribute::supported::UriAuthenticationSupported * BASIC; + static ::gnu::javax::print::ipp::attribute::supported::UriAuthenticationSupported * DIGEST; + static ::gnu::javax::print::ipp::attribute::supported::UriAuthenticationSupported * CERTIFICATE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::UriAuthenticationSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_UriAuthenticationSupported__ diff --git a/libjava/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.h b/libjava/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.h new file mode 100644 index 00000000000..32f571f9d1e --- /dev/null +++ b/libjava/gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_print_ipp_attribute_supported_UriSecuritySupported__ +#define __gnu_javax_print_ipp_attribute_supported_UriSecuritySupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + namespace ipp + { + namespace attribute + { + namespace supported + { + class UriSecuritySupported; + } + } + } + } + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class gnu::javax::print::ipp::attribute::supported::UriSecuritySupported : public ::javax::print::attribute::EnumSyntax +{ + +public: + UriSecuritySupported(jint); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +public: + static ::gnu::javax::print::ipp::attribute::supported::UriSecuritySupported * NONE; + static ::gnu::javax::print::ipp::attribute::supported::UriSecuritySupported * SSL3; + static ::gnu::javax::print::ipp::attribute::supported::UriSecuritySupported * TLS; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::gnu::javax::print::ipp::attribute::supported::UriSecuritySupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_print_ipp_attribute_supported_UriSecuritySupported__ diff --git a/libjava/gnu/javax/rmi/CORBA/CorbaInput.h b/libjava/gnu/javax/rmi/CORBA/CorbaInput.h new file mode 100644 index 00000000000..8467a1c0789 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/CorbaInput.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_CorbaInput__ +#define __gnu_javax_rmi_CORBA_CorbaInput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class gnuRuntime; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class CorbaInput; + class RmiUtilities; + } + } + } + } + namespace org + { + namespace omg + { + namespace CORBA_2_3 + { + namespace portable + { + class InputStream; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::CorbaInput : public ::java::io::ObjectInputStream +{ + +public: + CorbaInput(::org::omg::CORBA_2_3::portable::InputStream *, ::java::lang::Object *, ::gnu::javax::rmi::CORBA::RmiUtilities *, jint, ::java::lang::String *, ::gnu::CORBA::CDR::gnuRuntime *); + virtual jint available(); + virtual void close(); + virtual void defaultReadObject(); + virtual void mark(jint); + virtual jboolean markSupported(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jbyte > *); + virtual jboolean readBoolean(); + virtual jbyte readByte(); + virtual jchar readChar(); + virtual jdouble readDouble(); + virtual jfloat readFloat(); + virtual void readFully(JArray< jbyte > *, jint, jint); + virtual void readFully(JArray< jbyte > *); + virtual jint readInt(); + virtual ::java::lang::String * readLine(); + virtual jlong readLong(); + virtual jshort read_short(); + virtual jint readUnsignedByte(); + virtual jint readUnsignedShort(); + virtual ::java::lang::String * readUTF(); + virtual void reset(); + virtual jlong skip(jlong); + virtual jint skipBytes(jint); +public: // actually protected + virtual ::java::lang::Object * readObjectOverride(); +public: + ::org::omg::CORBA_2_3::portable::InputStream * __attribute__((aligned(__alignof__( ::java::io::ObjectInputStream)))) stream; +public: // actually package-private + ::gnu::javax::rmi::CORBA::RmiUtilities * util; + ::java::lang::Object * current; + jint offset; + ::java::lang::String * rid; + ::gnu::CORBA::CDR::gnuRuntime * runtime; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_CorbaInput__ diff --git a/libjava/gnu/javax/rmi/CORBA/CorbaOutput.h b/libjava/gnu/javax/rmi/CORBA/CorbaOutput.h new file mode 100644 index 00000000000..adbe74faee1 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/CorbaOutput.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_CorbaOutput__ +#define __gnu_javax_rmi_CORBA_CorbaOutput__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class CorbaOutput; + class RmiUtilities; + } + } + } + } + namespace org + { + namespace omg + { + namespace CORBA_2_3 + { + namespace portable + { + class OutputStream; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::CorbaOutput : public ::java::io::ObjectOutputStream +{ + +public: + CorbaOutput(::org::omg::CORBA_2_3::portable::OutputStream *, ::java::lang::Object *, ::gnu::javax::rmi::CORBA::RmiUtilities *); + virtual void close(); + virtual void flush(); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(JArray< jbyte > *); + virtual void write(jint); + virtual void writeBoolean(jboolean); + virtual void writeByte(jint); + virtual void writeBytes(::java::lang::String *); + virtual void writeChar(jint); + virtual void writeChars(::java::lang::String *); + virtual void writeDouble(jdouble); + virtual void writeFloat(jfloat); + virtual void writeInt(jint); + virtual void writeLong(jlong); +public: // actually protected + virtual void writeObjectOverride(::java::lang::Object *); +public: + virtual void writeShort(jint); + virtual void writeUTF(::java::lang::String *); + virtual void defaultWriteObject(); +public: // actually package-private + ::org::omg::CORBA_2_3::portable::OutputStream * __attribute__((aligned(__alignof__( ::java::io::ObjectOutputStream)))) stream; + ::gnu::javax::rmi::CORBA::RmiUtilities * util; + ::java::lang::Object * current; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_CorbaOutput__ diff --git a/libjava/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.h b/libjava/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.h new file mode 100644 index 00000000000..6234e881d2e --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/DefaultWriteObjectTester.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_DefaultWriteObjectTester__ +#define __gnu_javax_rmi_CORBA_DefaultWriteObjectTester__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class DefaultWriteObjectTester; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::DefaultWriteObjectTester : public ::gnu::javax::rmi::CORBA::CorbaOutput +{ + +public: + DefaultWriteObjectTester(::java::lang::Object *); + virtual void defaultWriteObject(); +public: // actually protected + virtual void writeObjectOverride(::java::lang::Object *); +public: + jboolean __attribute__((aligned(__alignof__( ::gnu::javax::rmi::CORBA::CorbaOutput)))) dwo_called; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_DefaultWriteObjectTester__ diff --git a/libjava/gnu/javax/rmi/CORBA/DelegateFactory.h b/libjava/gnu/javax/rmi/CORBA/DelegateFactory.h new file mode 100644 index 00000000000..a1b449299df --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/DelegateFactory.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_DelegateFactory__ +#define __gnu_javax_rmi_CORBA_DelegateFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class DelegateFactory; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::DelegateFactory : public ::java::lang::Object +{ + +public: + DelegateFactory(); + static ::java::lang::Object * getInstance(::java::lang::String *); + static ::java::lang::String * STUB; + static ::java::lang::String * UTIL; + static ::java::lang::String * VALUEHANDLER; + static ::java::lang::String * PORTABLE_REMOTE_OBJECT; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_DelegateFactory__ diff --git a/libjava/gnu/javax/rmi/CORBA/GetDelegateInstanceException.h b/libjava/gnu/javax/rmi/CORBA/GetDelegateInstanceException.h new file mode 100644 index 00000000000..3f2b34c89ac --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/GetDelegateInstanceException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_GetDelegateInstanceException__ +#define __gnu_javax_rmi_CORBA_GetDelegateInstanceException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class GetDelegateInstanceException; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::GetDelegateInstanceException : public ::java::lang::Exception +{ + +public: + GetDelegateInstanceException(::java::lang::String *); + GetDelegateInstanceException(::java::lang::String *, ::java::lang::Throwable *); +private: + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) next; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_GetDelegateInstanceException__ diff --git a/libjava/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.h b/libjava/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.h new file mode 100644 index 00000000000..750b4fbb20f --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_PortableRemoteObjectDelegateImpl__ +#define __gnu_javax_rmi_CORBA_PortableRemoteObjectDelegateImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class PortableRemoteObjectDelegateImpl; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + } + } +} + +class gnu::javax::rmi::CORBA::PortableRemoteObjectDelegateImpl : public ::java::lang::Object +{ + +public: + PortableRemoteObjectDelegateImpl(); + virtual void connect(::java::rmi::Remote *, ::java::rmi::Remote *); + virtual ::java::lang::Object * narrow(::java::lang::Object *, ::java::lang::Class *); +public: // actually package-private + static ::java::lang::String * getStubClassName(::java::lang::String *); +public: + virtual ::java::rmi::Remote * toStub(::java::rmi::Remote *); + virtual void unexportObject(::java::rmi::Remote *); + virtual void exportObject(::java::rmi::Remote *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_PortableRemoteObjectDelegateImpl__ diff --git a/libjava/gnu/javax/rmi/CORBA/RmiUtilities$1.h b/libjava/gnu/javax/rmi/CORBA/RmiUtilities$1.h new file mode 100644 index 00000000000..367e50eb515 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/RmiUtilities$1.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_RmiUtilities$1__ +#define __gnu_javax_rmi_CORBA_RmiUtilities$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class RmiUtilities$1; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::RmiUtilities$1 : public ::java::lang::Object +{ + +public: // actually package-private + RmiUtilities$1(); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_RmiUtilities$1__ diff --git a/libjava/gnu/javax/rmi/CORBA/RmiUtilities$2.h b/libjava/gnu/javax/rmi/CORBA/RmiUtilities$2.h new file mode 100644 index 00000000000..8602d3f5d51 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/RmiUtilities$2.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_RmiUtilities$2__ +#define __gnu_javax_rmi_CORBA_RmiUtilities$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class RmiUtilities$2; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::RmiUtilities$2 : public ::java::lang::Object +{ + +public: // actually package-private + RmiUtilities$2(); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_RmiUtilities$2__ diff --git a/libjava/gnu/javax/rmi/CORBA/RmiUtilities.h b/libjava/gnu/javax/rmi/CORBA/RmiUtilities.h new file mode 100644 index 00000000000..8dd5c60d06d --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/RmiUtilities.h @@ -0,0 +1,113 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_RmiUtilities__ +#define __gnu_javax_rmi_CORBA_RmiUtilities__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace CDR + { + class gnuRuntime; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class RmiUtilities; + } + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class WStringValueHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CORBA_2_3 + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace SendingContext + { + class RunTime; + } + } + } +} + +class gnu::javax::rmi::CORBA::RmiUtilities : public ::java::lang::Object +{ + +public: + RmiUtilities(); +public: // actually package-private + virtual void writeFields(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); + virtual void writeMember(::org::omg::CORBA_2_3::portable::OutputStream *, ::java::lang::Object *, ::java::lang::Class *); +public: + virtual jboolean isTieRequired(::java::lang::Object *); +public: // actually package-private + virtual ::java::lang::Class * getExportedInterface(::java::lang::Object *); +public: + static jlong getHashCode(::java::lang::Class *); + static ::java::lang::String * toHex(jlong); +public: // actually package-private + static ::java::lang::String * getDescriptor(::java::lang::Class *); +public: + static JArray< ::java::lang::reflect::Field * > * getWritableFields(::java::lang::Class *); +public: // actually package-private + virtual void exportTie(::org::omg::CORBA_2_3::portable::OutputStream *, ::java::lang::Object *, ::java::lang::Class *); + virtual void ensureOrbRunning(::org::omg::CORBA_2_3::portable::OutputStream *); +public: + virtual void writeRemoteObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); + virtual void writeValue(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); + virtual ::java::io::Serializable * readValue(::org::omg::CORBA::portable::InputStream *, jint, ::java::lang::Class *, ::java::lang::String *, ::org::omg::SendingContext::RunTime *); +public: // actually package-private + virtual ::java::io::Serializable * instantiate(jint, ::java::lang::Class *, ::gnu::CORBA::CDR::gnuRuntime *); + virtual void readFields(jint, ::java::lang::String *, ::java::io::Serializable *, ::org::omg::CORBA_2_3::portable::InputStream *, ::gnu::CORBA::CDR::gnuRuntime *); +public: + static jbyte VERSION; +public: // actually package-private + static const jint NON_WRITABLE = 136; +public: + static ::java::lang::String * RMI_STRING_ID; + static ::java::lang::String * RMI_CLASS_ID; + static ::java::lang::String * RMI_STRING_ARRAY_ID; +public: // actually package-private + static ::org::omg::CORBA::WStringValueHelper * wStringValueHelper; + ::java::util::WeakHashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) io_format; + static ::java::lang::Object * STANDARD; + static ::java::lang::Object * CUSTOM_DWO; + static ::java::lang::Object * CUSTOM_NO_DWO; + static JArray< ::java::lang::Class * > * READ_OBJECT_ARGS; + static JArray< ::java::lang::Class * > * WRITE_OBJECT_ARGS; + static const jint S_X = 16908034; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_RmiUtilities__ diff --git a/libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.h b/libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.h new file mode 100644 index 00000000000..c8712e285c0 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_StubDelegateImpl__ +#define __gnu_javax_rmi_CORBA_StubDelegateImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class StubDelegateImpl; + } + } + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Stub; + class Tie; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + namespace PortableServer + { + class POA; + } + } + } +} + +class gnu::javax::rmi::CORBA::StubDelegateImpl : public ::java::lang::Object +{ + +public: + StubDelegateImpl(); + virtual void connect(::javax::rmi::CORBA::Stub *, ::org::omg::CORBA::ORB *); + static void connect(::javax::rmi::CORBA::Stub *, ::org::omg::CORBA::ORB *, ::org::omg::PortableServer::POA *); + static ::javax::rmi::CORBA::Tie * getTieFromStub(::java::lang::Object *); + virtual jboolean equals(::javax::rmi::CORBA::Stub *, ::java::lang::Object *); + virtual jint hashCode(::javax::rmi::CORBA::Stub *); + virtual ::java::lang::String * toString(::javax::rmi::CORBA::Stub *); + virtual void readObject(::javax::rmi::CORBA::Stub *, ::java::io::ObjectInputStream *); + virtual void readObject(::javax::rmi::CORBA::Stub *, ::java::io::ObjectInputStream *, ::org::omg::CORBA::ORB *); + virtual void writeObject(::javax::rmi::CORBA::Stub *, ::java::io::ObjectOutputStream *); + virtual void writeObject(::javax::rmi::CORBA::Stub *, ::java::io::ObjectOutputStream *, ::org::omg::CORBA::ORB *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_StubDelegateImpl__ diff --git a/libjava/gnu/javax/rmi/CORBA/TieTargetRecord.h b/libjava/gnu/javax/rmi/CORBA/TieTargetRecord.h new file mode 100644 index 00000000000..684b4e4e082 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/TieTargetRecord.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_TieTargetRecord__ +#define __gnu_javax_rmi_CORBA_TieTargetRecord__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class TieTargetRecord; + } + } + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Tie; + } + } + } +} + +class gnu::javax::rmi::CORBA::TieTargetRecord : public ::java::lang::Object +{ + +public: + TieTargetRecord(::javax::rmi::CORBA::Tie *); + virtual void add(::java::lang::Object *); + virtual void remove(::java::lang::Object *); + virtual jboolean unused(); + ::javax::rmi::CORBA::Tie * __attribute__((aligned(__alignof__( ::java::lang::Object)))) tie; + ::java::util::HashSet * targets; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_TieTargetRecord__ diff --git a/libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.h b/libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.h new file mode 100644 index 00000000000..b4634938168 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_UtilDelegateImpl__ +#define __gnu_javax_rmi_CORBA_UtilDelegateImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class UtilDelegateImpl; + } + } + } + } + namespace java + { + namespace rmi + { + class Remote; + class RemoteException; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Stub; + class Tie; + class ValueHandler; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class SystemException; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class gnu::javax::rmi::CORBA::UtilDelegateImpl : public ::gnu::javax::rmi::CORBA::RmiUtilities +{ + +public: + UtilDelegateImpl(); + virtual ::java::lang::Object * copyObject(::java::lang::Object *, ::org::omg::CORBA::ORB *); + virtual JArray< ::java::lang::Object * > * copyObjects(JArray< ::java::lang::Object * > *, ::org::omg::CORBA::ORB *); + virtual ::javax::rmi::CORBA::ValueHandler * createValueHandler(); + virtual ::java::lang::String * getCodebase(::java::lang::Class *); + virtual ::javax::rmi::CORBA::Tie * getTie(::java::rmi::Remote *); +private: + ::java::lang::String * getTieClassName(::java::lang::String *); +public: + virtual void registerTarget(::javax::rmi::CORBA::Tie *, ::java::rmi::Remote *); + virtual void unexportObject(::java::rmi::Remote *); + virtual jboolean isLocal(::javax::rmi::CORBA::Stub *); + virtual ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *); + virtual ::java::rmi::RemoteException * mapSystemException(::org::omg::CORBA::SystemException *); + virtual ::java::rmi::RemoteException * wrapException(::java::lang::Throwable *); + virtual void writeAbstractObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); + virtual void writeAny(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); +public: // actually package-private + virtual void writeAnyAsRemote(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); + virtual ::java::lang::String * getName(::java::lang::String *); +public: + virtual ::java::lang::Object * readAny(::org::omg::CORBA::portable::InputStream *); + virtual void writeRemoteObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); +public: // actually package-private + static ::javax::rmi::CORBA::ValueHandler * m_ValueHandler; + static ::java::util::Hashtable * m_Ties; + static ::java::util::Hashtable * m_Targets; + static ::java::lang::String * m_StandardPackage; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_UtilDelegateImpl__ diff --git a/libjava/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.h b/libjava/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.h new file mode 100644 index 00000000000..715322d05e1 --- /dev/null +++ b/libjava/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_rmi_CORBA_ValueHandlerDelegateImpl__ +#define __gnu_javax_rmi_CORBA_ValueHandlerDelegateImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace rmi + { + namespace CORBA + { + class ValueHandlerDelegateImpl; + } + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class OutputStream; + } + } + namespace SendingContext + { + class RunTime; + } + } + } +} + +class gnu::javax::rmi::CORBA::ValueHandlerDelegateImpl : public ::gnu::javax::rmi::CORBA::RmiUtilities +{ + +public: + ValueHandlerDelegateImpl(); + virtual jbyte getMaximumStreamFormatVersion(); + virtual void writeValue(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, jbyte); + virtual ::org::omg::SendingContext::RunTime * getRunTimeCodeBase(); + virtual jboolean isCustomMarshaled(::java::lang::Class *); + virtual ::java::io::Serializable * writeReplace(::java::io::Serializable *); + virtual ::java::lang::String * getRMIRepositoryID(::java::lang::Class *); +public: // actually package-private + virtual jlong getSid(::java::lang::Class *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_rmi_CORBA_ValueHandlerDelegateImpl__ diff --git a/libjava/gnu/javax/security/auth/Password.h b/libjava/gnu/javax/security/auth/Password.h new file mode 100644 index 00000000000..76c282e2307 --- /dev/null +++ b/libjava/gnu/javax/security/auth/Password.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_Password__ +#define __gnu_javax_security_auth_Password__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + class Password; + } + } + } + } +} + +class gnu::javax::security::auth::Password : public ::gnu::java::security::util::ExpirableObject +{ + +public: + Password(JArray< jchar > *); + Password(JArray< jchar > *, jlong); + Password(JArray< jchar > *, jint, jint); + Password(JArray< jchar > *, jint, jint, jlong); + Password(JArray< jbyte > *); + Password(JArray< jbyte > *, jlong); + Password(JArray< jbyte > *, jint, jint); + Password(JArray< jbyte > *, jint, jint, jlong); + JArray< jchar > * getPassword(); + JArray< jbyte > * getBytes(); +public: // actually protected + void doDestroy(); +public: + jboolean isDestroyed(); +private: + JArray< jchar > * __attribute__((aligned(__alignof__( ::gnu::java::security::util::ExpirableObject)))) password; + JArray< jbyte > * bPassword; + jboolean mIsDestroyed; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_Password__ diff --git a/libjava/gnu/javax/security/auth/callback/AWTCallbackHandler.h b/libjava/gnu/javax/security/auth/callback/AWTCallbackHandler.h new file mode 100644 index 00000000000..5f3bb8287d7 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/AWTCallbackHandler.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_AWTCallbackHandler__ +#define __gnu_javax_security_auth_callback_AWTCallbackHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class AWTCallbackHandler; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class WindowEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ChoiceCallback; + class ConfirmationCallback; + class LanguageCallback; + class NameCallback; + class PasswordCallback; + class TextInputCallback; + class TextOutputCallback; + } + } + } + } +} + +class gnu::javax::security::auth::callback::AWTCallbackHandler : public ::gnu::javax::security::auth::callback::AbstractCallbackHandler +{ + +public: + AWTCallbackHandler(); +public: // actually protected + virtual void handleChoice(::javax::security::auth::callback::ChoiceCallback *); + virtual void handleConfirmation(::javax::security::auth::callback::ConfirmationCallback *); + virtual void handleLanguage(::javax::security::auth::callback::LanguageCallback *); + virtual void handleName(::javax::security::auth::callback::NameCallback *); + virtual void handlePassword(::javax::security::auth::callback::PasswordCallback *); + virtual void handleTextInput(::javax::security::auth::callback::TextInputCallback *); + virtual void handleTextOutput(::javax::security::auth::callback::TextOutputCallback *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual void windowClosing(::java::awt::event::WindowEvent *); + virtual void windowOpened(::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 *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::javax::security::auth::callback::AbstractCallbackHandler)))) actionCommand; +private: + static ::java::lang::String * ACTION_CANCEL; + static ::java::lang::String * ACTION_NO; + static ::java::lang::String * ACTION_NONE; + static ::java::lang::String * ACTION_OK; + static ::java::lang::String * ACTION_YES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_AWTCallbackHandler__ diff --git a/libjava/gnu/javax/security/auth/callback/AbstractCallbackHandler.h b/libjava/gnu/javax/security/auth/callback/AbstractCallbackHandler.h new file mode 100644 index 00000000000..f63c02f5927 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/AbstractCallbackHandler.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_AbstractCallbackHandler__ +#define __gnu_javax_security_auth_callback_AbstractCallbackHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class AbstractCallbackHandler; + } + } + } + } + } + namespace java + { + namespace security + { + class Provider; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class Callback; + class CallbackHandler; + class ChoiceCallback; + class ConfirmationCallback; + class LanguageCallback; + class NameCallback; + class PasswordCallback; + class TextInputCallback; + class TextOutputCallback; + } + } + } + } +} + +class gnu::javax::security::auth::callback::AbstractCallbackHandler : public ::java::lang::Object +{ + +public: // actually protected + AbstractCallbackHandler(::java::lang::String *); +public: + static ::javax::security::auth::callback::CallbackHandler * getInstance(::java::lang::String *); + static ::javax::security::auth::callback::CallbackHandler * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::security::auth::callback::CallbackHandler * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual void handle(JArray< ::javax::security::auth::callback::Callback * > *); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual void handleChoice(::javax::security::auth::callback::ChoiceCallback *) = 0; + virtual void handleConfirmation(::javax::security::auth::callback::ConfirmationCallback *) = 0; + virtual void handleLanguage(::javax::security::auth::callback::LanguageCallback *) = 0; + virtual void handleName(::javax::security::auth::callback::NameCallback *) = 0; + virtual void handlePassword(::javax::security::auth::callback::PasswordCallback *) = 0; + virtual void handleTextInput(::javax::security::auth::callback::TextInputCallback *) = 0; + virtual void handleTextOutput(::javax::security::auth::callback::TextOutputCallback *) = 0; + virtual void handleOther(::javax::security::auth::callback::Callback *); +private: + static ::java::lang::String * SERVICE; +public: // actually protected + ::java::util::ResourceBundle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) messages; +private: + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_AbstractCallbackHandler__ diff --git a/libjava/gnu/javax/security/auth/callback/CertificateCallback.h b/libjava/gnu/javax/security/auth/callback/CertificateCallback.h new file mode 100644 index 00000000000..b416d0ca535 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/CertificateCallback.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_CertificateCallback__ +#define __gnu_javax_security_auth_callback_CertificateCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CertificateCallback; + } + } + } + } + } + namespace java + { + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class gnu::javax::security::auth::callback::CertificateCallback : public ::javax::security::auth::callback::ConfirmationCallback +{ + +public: + CertificateCallback(::java::security::cert::Certificate *, ::java::lang::String *); +public: // actually package-private + static const jlong serialVersionUID = 8343869651419225634LL; +public: + ::java::security::cert::Certificate * __attribute__((aligned(__alignof__( ::javax::security::auth::callback::ConfirmationCallback)))) certificate; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_CertificateCallback__ diff --git a/libjava/gnu/javax/security/auth/callback/ConsoleCallbackHandler.h b/libjava/gnu/javax/security/auth/callback/ConsoleCallbackHandler.h new file mode 100644 index 00000000000..bd068a60d42 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/ConsoleCallbackHandler.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_ConsoleCallbackHandler__ +#define __gnu_javax_security_auth_callback_ConsoleCallbackHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ConsoleCallbackHandler; + } + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ChoiceCallback; + class ConfirmationCallback; + class LanguageCallback; + class NameCallback; + class PasswordCallback; + class TextInputCallback; + class TextOutputCallback; + } + } + } + } +} + +class gnu::javax::security::auth::callback::ConsoleCallbackHandler : public ::gnu::javax::security::auth::callback::AbstractCallbackHandler +{ + +public: + ConsoleCallbackHandler(); + ConsoleCallbackHandler(::java::io::PrintStream *); +public: // actually protected + virtual void handleChoice(::javax::security::auth::callback::ChoiceCallback *); + virtual void handleConfirmation(::javax::security::auth::callback::ConfirmationCallback *); + virtual void handleLanguage(::javax::security::auth::callback::LanguageCallback *); + virtual void handleName(::javax::security::auth::callback::NameCallback *); + virtual void handlePassword(::javax::security::auth::callback::PasswordCallback *); + virtual void handleTextInput(::javax::security::auth::callback::TextInputCallback *); + virtual void handleTextOutput(::javax::security::auth::callback::TextOutputCallback *); +private: + ::java::io::PrintStream * __attribute__((aligned(__alignof__( ::gnu::javax::security::auth::callback::AbstractCallbackHandler)))) out; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_ConsoleCallbackHandler__ diff --git a/libjava/gnu/javax/security/auth/callback/DefaultCallbackHandler.h b/libjava/gnu/javax/security/auth/callback/DefaultCallbackHandler.h new file mode 100644 index 00000000000..bd3d0dc14ed --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/DefaultCallbackHandler.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_DefaultCallbackHandler__ +#define __gnu_javax_security_auth_callback_DefaultCallbackHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class DefaultCallbackHandler; + } + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ChoiceCallback; + class ConfirmationCallback; + class LanguageCallback; + class NameCallback; + class PasswordCallback; + class TextInputCallback; + class TextOutputCallback; + } + } + } + } +} + +class gnu::javax::security::auth::callback::DefaultCallbackHandler : public ::gnu::javax::security::auth::callback::AbstractCallbackHandler +{ + +public: + DefaultCallbackHandler(); +public: // actually protected + virtual void handleChoice(::javax::security::auth::callback::ChoiceCallback *); + virtual void handleConfirmation(::javax::security::auth::callback::ConfirmationCallback *); + virtual void handleLanguage(::javax::security::auth::callback::LanguageCallback *); + virtual void handleName(::javax::security::auth::callback::NameCallback *); + virtual void handlePassword(::javax::security::auth::callback::PasswordCallback *); + virtual void handleTextInput(::javax::security::auth::callback::TextInputCallback *); + virtual void handleTextOutput(::javax::security::auth::callback::TextOutputCallback *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_DefaultCallbackHandler__ diff --git a/libjava/gnu/javax/security/auth/callback/GnuCallbacks$1.h b/libjava/gnu/javax/security/auth/callback/GnuCallbacks$1.h new file mode 100644 index 00000000000..1350bec6504 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/GnuCallbacks$1.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_GnuCallbacks$1__ +#define __gnu_javax_security_auth_callback_GnuCallbacks$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class GnuCallbacks; + class GnuCallbacks$1; + } + } + } + } + } +} + +class gnu::javax::security::auth::callback::GnuCallbacks$1 : public ::java::lang::Object +{ + +public: // actually package-private + GnuCallbacks$1(::gnu::javax::security::auth::callback::GnuCallbacks *); +public: + ::java::lang::Object * run(); +public: // actually package-private + ::gnu::javax::security::auth::callback::GnuCallbacks * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_GnuCallbacks$1__ diff --git a/libjava/gnu/javax/security/auth/callback/GnuCallbacks.h b/libjava/gnu/javax/security/auth/callback/GnuCallbacks.h new file mode 100644 index 00000000000..d7bb1dfe6f6 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/GnuCallbacks.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_GnuCallbacks__ +#define __gnu_javax_security_auth_callback_GnuCallbacks__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class GnuCallbacks; + } + } + } + } + } +} + +class gnu::javax::security::auth::callback::GnuCallbacks : public ::java::security::Provider +{ + +public: + GnuCallbacks(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_GnuCallbacks__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$1.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$1.h new file mode 100644 index 00000000000..e8d2bf220e4 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$1.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler$1__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + class SwingCallbackHandler$1; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ChoiceCallback; + } + } + } + namespace swing + { + class JDialog; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler$1 : public ::java::lang::Object +{ + +public: // actually package-private + SwingCallbackHandler$1(::gnu::javax::security::auth::callback::SwingCallbackHandler *, ::javax::security::auth::callback::ChoiceCallback *, jint, ::javax::swing::JDialog *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::javax::security::auth::callback::SwingCallbackHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::javax::security::auth::callback::ChoiceCallback * val$callback; + jint val$defaultChoice; + ::javax::swing::JDialog * val$dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler$1__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$2.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$2.h new file mode 100644 index 00000000000..1fcd2ef84aa --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$2.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler$2__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + class SwingCallbackHandler$2; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ChoiceCallback; + } + } + } + namespace swing + { + class JDialog; + class JList; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler$2 : public ::java::lang::Object +{ + +public: // actually package-private + SwingCallbackHandler$2(::gnu::javax::security::auth::callback::SwingCallbackHandler *, ::javax::security::auth::callback::ChoiceCallback *, ::javax::swing::JList *, jint, ::javax::swing::JDialog *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::javax::security::auth::callback::SwingCallbackHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::javax::security::auth::callback::ChoiceCallback * val$callback; + ::javax::swing::JList * val$choicesList; + jint val$defaultChoice; + ::javax::swing::JDialog * val$dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler$2__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$3.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$3.h new file mode 100644 index 00000000000..6e6f2a1bd00 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$3.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler$3__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler$3__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + class SwingCallbackHandler$3; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ConfirmationCallback; + } + } + } + namespace swing + { + class JDialog; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler$3 : public ::java::lang::Object +{ + +public: // actually package-private + SwingCallbackHandler$3(::gnu::javax::security::auth::callback::SwingCallbackHandler *, JArray< ::java::lang::String * > *, ::javax::security::auth::callback::ConfirmationCallback *, ::javax::swing::JDialog *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::javax::security::auth::callback::SwingCallbackHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + JArray< ::java::lang::String * > * val$options; + ::javax::security::auth::callback::ConfirmationCallback * val$callback; + ::javax::swing::JDialog * val$dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler$3__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$4.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$4.h new file mode 100644 index 00000000000..d49173a612a --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$4.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler$4__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + class SwingCallbackHandler$4; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class NameCallback; + } + } + } + namespace swing + { + class JDialog; + class JTextField; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler$4 : public ::java::lang::Object +{ + +public: // actually package-private + SwingCallbackHandler$4(::gnu::javax::security::auth::callback::SwingCallbackHandler *, ::javax::security::auth::callback::NameCallback *, ::javax::swing::JTextField *, ::javax::swing::JDialog *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::javax::security::auth::callback::SwingCallbackHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::javax::security::auth::callback::NameCallback * val$callback; + ::javax::swing::JTextField * val$name; + ::javax::swing::JDialog * val$dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler$4__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$5.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$5.h new file mode 100644 index 00000000000..43036131faa --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$5.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler$5__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler$5__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + class SwingCallbackHandler$5; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class PasswordCallback; + } + } + } + namespace swing + { + class JDialog; + class JPasswordField; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler$5 : public ::java::lang::Object +{ + +public: // actually package-private + SwingCallbackHandler$5(::gnu::javax::security::auth::callback::SwingCallbackHandler *, ::javax::security::auth::callback::PasswordCallback *, ::javax::swing::JPasswordField *, ::javax::swing::JDialog *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::javax::security::auth::callback::SwingCallbackHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::javax::security::auth::callback::PasswordCallback * val$callback; + ::javax::swing::JPasswordField * val$password; + ::javax::swing::JDialog * val$dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler$5__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$6.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$6.h new file mode 100644 index 00000000000..8ba275388e2 --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$6.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler$6__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler$6__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + class SwingCallbackHandler$6; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class TextInputCallback; + } + } + } + namespace swing + { + class JDialog; + class JTextArea; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler$6 : public ::java::lang::Object +{ + +public: // actually package-private + SwingCallbackHandler$6(::gnu::javax::security::auth::callback::SwingCallbackHandler *, ::javax::security::auth::callback::TextInputCallback *, ::javax::swing::JTextArea *, ::javax::swing::JDialog *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::javax::security::auth::callback::SwingCallbackHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::javax::security::auth::callback::TextInputCallback * val$callback; + ::javax::swing::JTextArea * val$text; + ::javax::swing::JDialog * val$dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler$6__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$7.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$7.h new file mode 100644 index 00000000000..2e9a398c85e --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler$7.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler$7__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler$7__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + class SwingCallbackHandler$7; + } + } + } + } + } + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class TextOutputCallback; + } + } + } + namespace swing + { + class JDialog; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler$7 : public ::java::lang::Object +{ + +public: // actually package-private + SwingCallbackHandler$7(::gnu::javax::security::auth::callback::SwingCallbackHandler *, ::javax::swing::JDialog *, ::javax::security::auth::callback::TextOutputCallback *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::gnu::javax::security::auth::callback::SwingCallbackHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::javax::swing::JDialog * val$dialog; + ::javax::security::auth::callback::TextOutputCallback * val$callback; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler$7__ diff --git a/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler.h b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler.h new file mode 100644 index 00000000000..6d1f18c84de --- /dev/null +++ b/libjava/gnu/javax/security/auth/callback/SwingCallbackHandler.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_callback_SwingCallbackHandler__ +#define __gnu_javax_security_auth_callback_SwingCallbackHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class SwingCallbackHandler; + } + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class Callback; + class ChoiceCallback; + class ConfirmationCallback; + class LanguageCallback; + class NameCallback; + class PasswordCallback; + class TextInputCallback; + class TextOutputCallback; + } + } + } + namespace swing + { + class JDialog; + } + } +} + +class gnu::javax::security::auth::callback::SwingCallbackHandler : public ::gnu::javax::security::auth::callback::AbstractCallbackHandler +{ + +public: + SwingCallbackHandler(); +public: // actually protected + virtual void handleChoice(::javax::security::auth::callback::ChoiceCallback *); + virtual void handleConfirmation(::javax::security::auth::callback::ConfirmationCallback *); + virtual void handleLanguage(::javax::security::auth::callback::LanguageCallback *); + virtual void handleName(::javax::security::auth::callback::NameCallback *); + virtual void handlePassword(::javax::security::auth::callback::PasswordCallback *); + virtual void handleTextInput(::javax::security::auth::callback::TextInputCallback *); + virtual void handleTextOutput(::javax::security::auth::callback::TextOutputCallback *); +private: + void waitForInput(::javax::swing::JDialog *, ::javax::security::auth::callback::Callback *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_callback_SwingCallbackHandler__ diff --git a/libjava/gnu/javax/security/auth/login/ConfigFileParser.h b/libjava/gnu/javax/security/auth/login/ConfigFileParser.h new file mode 100644 index 00000000000..7daf71bd9a9 --- /dev/null +++ b/libjava/gnu/javax/security/auth/login/ConfigFileParser.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_login_ConfigFileParser__ +#define __gnu_javax_security_auth_login_ConfigFileParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class ConfigFileParser; + class ConfigFileTokenizer; + } + } + } + } + } +} + +class gnu::javax::security::auth::login::ConfigFileParser : public ::java::lang::Object +{ + +public: + ConfigFileParser(); + ::java::util::Map * getLoginModulesMap(); + void parse(::java::io::Reader *); +private: + void initParser(::java::io::Reader *); + jboolean parseAppOrOtherEntry(); + jboolean parseACE(::java::util::List *); + void abort(::java::lang::String *); + ::java::lang::String * validateClassName(::java::lang::String *); + ::java::lang::String * expandParamValue(::java::lang::String *); + static ::java::util::logging::Logger * log; + ::gnu::javax::security::auth::login::ConfigFileTokenizer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cft; + ::java::util::Map * map; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_login_ConfigFileParser__ diff --git a/libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h b/libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h new file mode 100644 index 00000000000..56bd3954b64 --- /dev/null +++ b/libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_login_ConfigFileTokenizer__ +#define __gnu_javax_security_auth_login_ConfigFileTokenizer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class ConfigFileTokenizer; + } + } + } + } + } +} + +class gnu::javax::security::auth::login::ConfigFileTokenizer : public ::java::lang::Object +{ + +public: // actually package-private + ConfigFileTokenizer(::java::io::Reader *); +public: + virtual jint nextToken(); + virtual void pushBack(); +private: + void init(); + void skipWhitespace(); + void abort(::java::lang::String *); + static ::java::util::logging::Logger * log; +public: + static const jint TT_EOF = -1; + static const jint TT_WORD = -3; +private: + static const jint TT_NONE = -4; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sval; + jint ttype; +private: + ::java::io::BufferedReader * br; +public: // actually package-private + jboolean initialised; +private: + ::java::lang::StringBuffer * sb; + jint sbNdx; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_login_ConfigFileTokenizer__ diff --git a/libjava/gnu/javax/security/auth/login/GnuConfiguration.h b/libjava/gnu/javax/security/auth/login/GnuConfiguration.h new file mode 100644 index 00000000000..42177491d1f --- /dev/null +++ b/libjava/gnu/javax/security/auth/login/GnuConfiguration.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_security_auth_login_GnuConfiguration__ +#define __gnu_javax_security_auth_login_GnuConfiguration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class ConfigFileParser; + class GnuConfiguration; + } + } + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AppConfigurationEntry; + } + } + } + } +} + +class gnu::javax::security::auth::login::GnuConfiguration : public ::javax::security::auth::login::Configuration +{ + +public: + GnuConfiguration(); + JArray< ::javax::security::auth::login::AppConfigurationEntry * > * getAppConfigurationEntry(::java::lang::String *); + void refresh(); +private: + void init(); + jboolean processSecurityProperties(); + ::java::io::InputStream * getInputStreamFromURL(::java::lang::String *); + jboolean processSystemProperty(); + jboolean processUserHome(); + void parseConfig(::java::io::InputStream *); + void mergeLoginModules(::java::util::Map *); + ::java::io::File * getUserHome(); + ::java::io::File * getConfigFromUserHome(::java::io::File *, ::java::lang::String *); + static ::java::util::logging::Logger * log; + ::java::util::Map * __attribute__((aligned(__alignof__( ::javax::security::auth::login::Configuration)))) loginModulesMap; + ::gnu::javax::security::auth::login::ConfigFileParser * cp; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_security_auth_login_GnuConfiguration__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.h b/libjava/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.h new file mode 100644 index 00000000000..cb7291daea6 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaInputPortDevice__ +#define __gnu_javax_sound_midi_alsa_AlsaInputPortDevice__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaInputPortDevice; + class AlsaMidiDeviceProvider$AlsaPortInfo; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Receiver; + class Transmitter; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaInputPortDevice : public ::gnu::javax::sound::midi::alsa::AlsaPortDevice +{ + +public: // actually package-private + AlsaInputPortDevice(::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaPortInfo *); +public: + virtual void open(); + virtual void close(); + virtual jboolean isOpen(); + virtual jlong getMicrosecondPosition(); + virtual jint getMaxReceivers(); + virtual jint getMaxTransmitters(); + virtual ::javax::sound::midi::Receiver * getReceiver(); + virtual ::javax::sound::midi::Transmitter * getTransmitter(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaInputPortDevice__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.h b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.h new file mode 100644 index 00000000000..fb7a22385c9 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInfo.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaInfo__ +#define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider$AlsaInfo; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInfo : public ::javax::sound::midi::MidiDevice$Info +{ + +public: + AlsaMidiDeviceProvider$AlsaInfo(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual ::javax::sound::midi::MidiDevice * getDevice() = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaInfo__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo.h b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo.h new file mode 100644 index 00000000000..51bab4a4093 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaInputPortInfo.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaInputPortInfo__ +#define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaInputPortInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider$AlsaInputPortInfo; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInputPortInfo : public ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaPortInfo +{ + +public: + AlsaMidiDeviceProvider$AlsaInputPortInfo(::java::lang::String *, ::java::lang::String *, jlong, jlong); +public: // actually package-private + virtual ::javax::sound::midi::MidiDevice * getDevice(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaInputPortInfo__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo.h b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo.h new file mode 100644 index 00000000000..c37627bbf32 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaOutputPortInfo.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaOutputPortInfo__ +#define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaOutputPortInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider$AlsaOutputPortInfo; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaOutputPortInfo : public ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaPortInfo +{ + +public: + AlsaMidiDeviceProvider$AlsaOutputPortInfo(::java::lang::String *, ::java::lang::String *, jlong, jlong); +public: // actually package-private + virtual ::javax::sound::midi::MidiDevice * getDevice(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaOutputPortInfo__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaPortInfo.h b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaPortInfo.h new file mode 100644 index 00000000000..b7c2f640095 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaPortInfo.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaPortInfo__ +#define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaPortInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider$AlsaPortInfo; + } + } + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaPortInfo : public ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInfo +{ + +public: + AlsaMidiDeviceProvider$AlsaPortInfo(::java::lang::String *, ::java::lang::String *, jlong, jlong); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInfo)))) client; + jlong port; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaPortInfo__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaSequencerInfo.h b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaSequencerInfo.h new file mode 100644 index 00000000000..f1586dfaada --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider$AlsaSequencerInfo.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaSequencerInfo__ +#define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaSequencerInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider$AlsaSequencerInfo; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaSequencerInfo : public ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInfo +{ + +public: + AlsaMidiDeviceProvider$AlsaSequencerInfo(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual ::javax::sound::midi::MidiDevice * getDevice(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider$AlsaSequencerInfo__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.h b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.h new file mode 100644 index 00000000000..a1d2884ed2d --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider__ +#define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider; + class AlsaMidiDeviceProvider$AlsaInfo; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + class MidiDevice$Info; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider : public ::javax::sound::midi::spi::MidiDeviceProvider +{ + + static JArray< ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInfo * > * getInputDeviceInfo_(); + static JArray< ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInfo * > * getOutputDeviceInfo_(); + static void init_(); +public: + AlsaMidiDeviceProvider(); + virtual JArray< ::javax::sound::midi::MidiDevice$Info * > * getDeviceInfo(); + virtual ::javax::sound::midi::MidiDevice * getDevice(::javax::sound::midi::MidiDevice$Info *); +private: + static JArray< ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaInfo * > * infos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.h b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.h new file mode 100644 index 00000000000..5317a997063 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice__ +#define __gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiSequencerDevice; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class ControllerEventListener; + class MetaEventListener; + class MidiDevice$Info; + class Receiver; + class Sequence; + class Sequencer$SyncMode; + class Track; + class Transmitter; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaMidiSequencerDevice : public ::java::lang::Object +{ + + AlsaMidiSequencerDevice(); +public: + static ::gnu::javax::sound::midi::alsa::AlsaMidiSequencerDevice * getInstance(); + virtual void setSequence(::javax::sound::midi::Sequence *); + virtual void setSequence(::java::io::InputStream *); + virtual ::javax::sound::midi::Sequence * getSequence(); + virtual void start(); + virtual void stop(); + virtual jboolean isRunning(); + virtual void startRecording(); + virtual void stopRecording(); + virtual jboolean isRecording(); + virtual void recordEnable(::javax::sound::midi::Track *, jint); + virtual void recordDisable(::javax::sound::midi::Track *); + virtual jfloat getTempoInBPM(); + virtual void setTempoInBPM(jfloat); + virtual jfloat getTempoInMPQ(); + virtual void setTempoInMPQ(jfloat); + virtual void setTempoFactor(jfloat); + virtual jfloat getTempoFactor(); + virtual jlong getTickLength(); + virtual jlong getTickPosition(); + virtual void setTickPosition(jlong); + virtual jlong getMicrosecondLength(); + virtual jlong getMicrosecondPosition(); + virtual void setMicrosecondPosition(jlong); + virtual void setMasterSyncMode(::javax::sound::midi::Sequencer$SyncMode *); + virtual ::javax::sound::midi::Sequencer$SyncMode * getMasterSyncMode(); + virtual JArray< ::javax::sound::midi::Sequencer$SyncMode * > * getMasterSyncModes(); + virtual void setSlaveSyncMode(::javax::sound::midi::Sequencer$SyncMode *); + virtual ::javax::sound::midi::Sequencer$SyncMode * getSlaveSyncMode(); + virtual JArray< ::javax::sound::midi::Sequencer$SyncMode * > * getSlaveSyncModes(); + virtual void setTrackMute(jint, jboolean); + virtual jboolean getTrackMute(jint); + virtual void setTrackSolo(jint, jboolean); + virtual jboolean getTrackSolo(jint); + virtual jboolean addMetaEventListener(::javax::sound::midi::MetaEventListener *); + virtual void removeMetaEventListener(::javax::sound::midi::MetaEventListener *); + virtual JArray< jint > * addControllerEventListener(::javax::sound::midi::ControllerEventListener *, JArray< jint > *); + virtual JArray< jint > * removeControllerEventListener(::javax::sound::midi::ControllerEventListener *, JArray< jint > *); + virtual ::javax::sound::midi::MidiDevice$Info * getDeviceInfo(); + virtual void open(); +private: + jlong open_(); + void close_(jlong); +public: + virtual void close(); + virtual jboolean isOpen(); + virtual jint getMaxReceivers(); + virtual jint getMaxTransmitters(); + virtual ::javax::sound::midi::Receiver * getReceiver(); + virtual ::javax::sound::midi::Transmitter * getTransmitter(); + static ::gnu::javax::sound::midi::alsa::AlsaMidiSequencerDevice * instance; +private: + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) nativeState; + ::javax::sound::midi::Sequence * sequence; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.h b/libjava/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.h new file mode 100644 index 00000000000..0f7718d922e --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaOutputPortDevice__ +#define __gnu_javax_sound_midi_alsa_AlsaOutputPortDevice__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider$AlsaPortInfo; + class AlsaOutputPortDevice; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Receiver; + class Transmitter; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaOutputPortDevice : public ::gnu::javax::sound::midi::alsa::AlsaPortDevice +{ + +public: // actually package-private + AlsaOutputPortDevice(::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaPortInfo *); +public: + virtual void open(); + virtual void close(); + virtual jboolean isOpen(); + virtual jlong getMicrosecondPosition(); + virtual jint getMaxReceivers(); + virtual jint getMaxTransmitters(); + virtual ::javax::sound::midi::Receiver * getReceiver(); + virtual ::javax::sound::midi::Transmitter * getTransmitter(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaOutputPortDevice__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaReceiver.h b/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaReceiver.h new file mode 100644 index 00000000000..8e23df85e57 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaReceiver.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaPortDevice$AlsaReceiver__ +#define __gnu_javax_sound_midi_alsa_AlsaPortDevice$AlsaReceiver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaPortDevice; + class AlsaPortDevice$AlsaReceiver; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiMessage; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaPortDevice$AlsaReceiver : public ::java::lang::Object +{ + +public: + AlsaPortDevice$AlsaReceiver(::gnu::javax::sound::midi::alsa::AlsaPortDevice *); + virtual void send(::javax::sound::midi::MidiMessage *, jlong); + virtual void close(); +public: // actually package-private + ::gnu::javax::sound::midi::alsa::AlsaPortDevice * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaPortDevice$AlsaReceiver__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaTransmitter.h b/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaTransmitter.h new file mode 100644 index 00000000000..f88cadcf117 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice$AlsaTransmitter.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaPortDevice$AlsaTransmitter__ +#define __gnu_javax_sound_midi_alsa_AlsaPortDevice$AlsaTransmitter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaPortDevice; + class AlsaPortDevice$AlsaTransmitter; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Receiver; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaPortDevice$AlsaTransmitter : public ::java::lang::Object +{ + +public: // actually protected + AlsaPortDevice$AlsaTransmitter(::gnu::javax::sound::midi::alsa::AlsaPortDevice *); +public: + virtual void run(); + virtual void setReceiver(::javax::sound::midi::Receiver *); + virtual ::javax::sound::midi::Receiver * getReceiver(); + virtual void close(); +private: + ::javax::sound::midi::Receiver * __attribute__((aligned(__alignof__( ::java::lang::Object)))) receiver; +public: // actually package-private + ::gnu::javax::sound::midi::alsa::AlsaPortDevice * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaPortDevice$AlsaTransmitter__ diff --git a/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice.h b/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice.h new file mode 100644 index 00000000000..351bd7099dd --- /dev/null +++ b/libjava/gnu/javax/sound/midi/alsa/AlsaPortDevice.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_alsa_AlsaPortDevice__ +#define __gnu_javax_sound_midi_alsa_AlsaPortDevice__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace alsa + { + class AlsaMidiDeviceProvider$AlsaPortInfo; + class AlsaPortDevice; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice$Info; + class Receiver; + class Transmitter; + } + } + } +} + +class gnu::javax::sound::midi::alsa::AlsaPortDevice : public ::java::lang::Object +{ + +public: + AlsaPortDevice(::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaPortInfo *); + virtual ::javax::sound::midi::MidiDevice$Info * getDeviceInfo(); +public: // actually package-private + virtual void run_receiver_thread_(jlong, jlong, ::javax::sound::midi::Receiver *); +public: + virtual void open() = 0; + virtual void close() = 0; + virtual jboolean isOpen() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual jint getMaxReceivers() = 0; + virtual jint getMaxTransmitters() = 0; + virtual ::javax::sound::midi::Receiver * getReceiver() = 0; + virtual ::javax::sound::midi::Transmitter * getTransmitter() = 0; +public: // actually package-private + ::gnu::javax::sound::midi::alsa::AlsaMidiDeviceProvider$AlsaPortInfo * __attribute__((aligned(__alignof__( ::java::lang::Object)))) info; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_alsa_AlsaPortDevice__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.h b/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.h new file mode 100644 index 00000000000..2d477ac8ebb --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider$1__ +#define __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSIMidiDeviceProvider$1; + } + } + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSIMidiDeviceProvider$1 : public ::java::lang::Object +{ + +public: // actually package-private + DSSIMidiDeviceProvider$1(); +public: + jboolean accept(::java::io::File *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider$1__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.h b/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.h new file mode 100644 index 00000000000..a5f7a82edcf --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider$DSSIInfo__ +#define __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider$DSSIInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSIMidiDeviceProvider$DSSIInfo; + } + } + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSIMidiDeviceProvider$DSSIInfo : public ::javax::sound::midi::MidiDevice$Info +{ + +public: + DSSIMidiDeviceProvider$DSSIInfo(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jlong); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::sound::midi::MidiDevice$Info)))) soname; + jlong index; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider$DSSIInfo__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.h b/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.h new file mode 100644 index 00000000000..3cf346a3f2a --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider__ +#define __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSIMidiDeviceProvider; + class DSSIMidiDeviceProvider$DSSIInfo; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + class MidiDevice$Info; + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSIMidiDeviceProvider : public ::javax::sound::midi::spi::MidiDeviceProvider +{ + +public: // actually package-private + static jlong dlopen_(::java::lang::String *); + static void dlclose_(jlong); + static jlong getDSSIHandle_(jlong, jlong); + static ::java::lang::String * getDSSIName_(jlong); + static ::java::lang::String * getDSSICopyright_(jlong); + static ::java::lang::String * getDSSIVendor_(jlong); + static ::java::lang::String * getDSSILabel_(jlong); +private: + static ::java::util::List * examineLibrary(::java::lang::String *); +public: + DSSIMidiDeviceProvider(); + virtual JArray< ::javax::sound::midi::MidiDevice$Info * > * getDeviceInfo(); + virtual ::javax::sound::midi::MidiDevice * getDevice(::javax::sound::midi::MidiDevice$Info *); +private: + static JArray< ::gnu::javax::sound::midi::dssi::DSSIMidiDeviceProvider$DSSIInfo * > * infos; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIInstrument.h b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIInstrument.h new file mode 100644 index 00000000000..48167354b76 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIInstrument.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIInstrument__ +#define __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIInstrument__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSISynthesizer; + class DSSISynthesizer$DSSIInstrument; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Patch; + class Soundbank; + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSISynthesizer$DSSIInstrument : public ::javax::sound::midi::Instrument +{ + +public: // actually package-private + DSSISynthesizer$DSSIInstrument(::gnu::javax::sound::midi::dssi::DSSISynthesizer *, ::javax::sound::midi::Soundbank *, ::javax::sound::midi::Patch *, ::java::lang::String *); +public: + virtual ::java::lang::Object * getData(); +public: // actually package-private + ::gnu::javax::sound::midi::dssi::DSSISynthesizer * __attribute__((aligned(__alignof__( ::javax::sound::midi::Instrument)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIInstrument__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.h b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.h new file mode 100644 index 00000000000..733eb385716 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIMidiChannel__ +#define __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIMidiChannel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSISynthesizer; + class DSSISynthesizer$DSSIMidiChannel; + } + } + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSISynthesizer$DSSIMidiChannel : public ::java::lang::Object +{ + +public: + DSSISynthesizer$DSSIMidiChannel(::gnu::javax::sound::midi::dssi::DSSISynthesizer *, jint); + virtual void noteOn(jint, jint); + virtual void noteOff(jint, jint); + virtual void noteOff(jint); + virtual void setPolyPressure(jint, jint); + virtual jint getPolyPressure(jint); + virtual void setChannelPressure(jint); + virtual jint getChannelPressure(); + virtual void controlChange(jint, jint); + virtual jint getController(jint); + virtual void programChange(jint); + virtual void programChange(jint, jint); + virtual jint getProgram(); + virtual void setPitchBend(jint); + virtual jint getPitchBend(); + virtual void resetAllControllers(); + virtual void allNotesOff(); + virtual void allSoundOff(); + virtual jboolean localControl(jboolean); + virtual void setMono(jboolean); + virtual jboolean getMono(); + virtual void setOmni(jboolean); + virtual jboolean getOmni(); + virtual void setMute(jboolean); + virtual jboolean getMute(); + virtual void setSolo(jboolean); + virtual jboolean getSolo(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) channel; + ::gnu::javax::sound::midi::dssi::DSSISynthesizer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIMidiChannel__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.h b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.h new file mode 100644 index 00000000000..dbdd3284f1e --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIReceiver__ +#define __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIReceiver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSISynthesizer; + class DSSISynthesizer$DSSIReceiver; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiMessage; + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSISynthesizer$DSSIReceiver : public ::java::lang::Object +{ + +public: // actually package-private + DSSISynthesizer$DSSIReceiver(::gnu::javax::sound::midi::dssi::DSSISynthesizer *); +public: + virtual void send(::javax::sound::midi::MidiMessage *, jlong); + virtual void close(); +public: // actually package-private + ::gnu::javax::sound::midi::dssi::DSSISynthesizer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSIReceiver__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.h b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.h new file mode 100644 index 00000000000..4ebaffbe338 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSISoundbank__ +#define __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSISoundbank__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSISynthesizer; + class DSSISynthesizer$DSSISoundbank; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Instrument; + class Patch; + class SoundbankResource; + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSISynthesizer$DSSISoundbank : public ::java::lang::Object +{ + +public: + DSSISynthesizer$DSSISoundbank(::gnu::javax::sound::midi::dssi::DSSISynthesizer *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual void add(::javax::sound::midi::Instrument *); +public: + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getVersion(); + virtual ::java::lang::String * getVendor(); + virtual ::java::lang::String * getDescription(); + virtual JArray< ::javax::sound::midi::SoundbankResource * > * getResources(); + virtual JArray< ::javax::sound::midi::Instrument * > * getInstruments(); + virtual ::javax::sound::midi::Instrument * getInstrument(::javax::sound::midi::Patch *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * description; + ::java::util::List * instruments; + ::java::util::List * resources; + ::java::lang::String * vendor; + ::java::lang::String * version; +public: // actually package-private + ::gnu::javax::sound::midi::dssi::DSSISynthesizer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSISynthesizer$DSSISoundbank__ diff --git a/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer.h b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer.h new file mode 100644 index 00000000000..c4d4a619cdb --- /dev/null +++ b/libjava/gnu/javax/sound/midi/dssi/DSSISynthesizer.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_dssi_DSSISynthesizer__ +#define __gnu_javax_sound_midi_dssi_DSSISynthesizer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace dssi + { + class DSSISynthesizer; + class DSSISynthesizer$DSSISoundbank; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Instrument; + class MidiChannel; + class MidiDevice$Info; + class Patch; + class Receiver; + class Soundbank; + class Transmitter; + class VoiceStatus; + } + } + } +} + +class gnu::javax::sound::midi::dssi::DSSISynthesizer : public ::java::lang::Object +{ + +public: // actually package-private + static void noteOn_(jlong, jint, jint, jint); + static void noteOff_(jlong, jint, jint, jint); + static void setPolyPressure_(jlong, jint, jint, jint); + static jint getPolyPressure_(jlong, jint, jint); + static void controlChange_(jlong, jint, jint, jint); + static void open_(jlong); + static void close_(jlong); + static ::java::lang::String * getProgramName_(jlong, jint); + static jint getProgramBank_(jlong, jint); + static jint getProgramProgram_(jlong, jint); + static void selectProgram_(jlong, jint, jint); +public: + DSSISynthesizer(::javax::sound::midi::MidiDevice$Info *, ::java::lang::String *, jlong); + virtual jint getMaxPolyphony(); + virtual jlong getLatency(); + virtual JArray< ::javax::sound::midi::MidiChannel * > * getChannels(); + virtual JArray< ::javax::sound::midi::VoiceStatus * > * getVoiceStatus(); + virtual jboolean isSoundbankSupported(::javax::sound::midi::Soundbank *); + virtual jboolean loadInstrument(::javax::sound::midi::Instrument *); + virtual void unloadInstrument(::javax::sound::midi::Instrument *); + virtual jboolean remapInstrument(::javax::sound::midi::Instrument *, ::javax::sound::midi::Instrument *); + virtual ::javax::sound::midi::Soundbank * getDefaultSoundbank(); + virtual JArray< ::javax::sound::midi::Instrument * > * getAvailableInstruments(); + virtual JArray< ::javax::sound::midi::Instrument * > * getLoadedInstruments(); + virtual jboolean loadAllInstruments(::javax::sound::midi::Soundbank *); + virtual void unloadAllInstruments(::javax::sound::midi::Soundbank *); + virtual jboolean loadInstruments(::javax::sound::midi::Soundbank *, JArray< ::javax::sound::midi::Patch * > *); + virtual void unloadInstruments(::javax::sound::midi::Soundbank *, JArray< ::javax::sound::midi::Patch * > *); + virtual ::javax::sound::midi::MidiDevice$Info * getDeviceInfo(); + virtual void open(); + virtual void close(); + virtual jboolean isOpen(); + virtual jlong getMicrosecondPosition(); + virtual jint getMaxReceivers(); + virtual jint getMaxTransmitters(); + virtual ::javax::sound::midi::Receiver * getReceiver(); + virtual ::javax::sound::midi::Transmitter * getTransmitter(); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) sohandle; + jlong handle; +private: + ::javax::sound::midi::MidiDevice$Info * info; +public: // actually package-private + JArray< ::javax::sound::midi::MidiChannel * > * channels; + ::java::util::List * soundbanks; + ::gnu::javax::sound::midi::dssi::DSSISynthesizer$DSSISoundbank * defaultSoundbank; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_dssi_DSSISynthesizer__ diff --git a/libjava/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.h b/libjava/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.h new file mode 100644 index 00000000000..70a8a4c2ef2 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/file/ExtendedMidiFileFormat.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_file_ExtendedMidiFileFormat__ +#define __gnu_javax_sound_midi_file_ExtendedMidiFileFormat__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace file + { + class ExtendedMidiFileFormat; + } + } + } + } + } +} + +class gnu::javax::sound::midi::file::ExtendedMidiFileFormat : public ::javax::sound::midi::MidiFileFormat +{ + +public: + virtual jint getNumberTracks(); + ExtendedMidiFileFormat(jint, jfloat, jint, jint, jlong, jint); +private: + jint __attribute__((aligned(__alignof__( ::javax::sound::midi::MidiFileFormat)))) ntracks; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_file_ExtendedMidiFileFormat__ diff --git a/libjava/gnu/javax/sound/midi/file/MidiDataInputStream.h b/libjava/gnu/javax/sound/midi/file/MidiDataInputStream.h new file mode 100644 index 00000000000..00d2472849f --- /dev/null +++ b/libjava/gnu/javax/sound/midi/file/MidiDataInputStream.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_file_MidiDataInputStream__ +#define __gnu_javax_sound_midi_file_MidiDataInputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace file + { + class MidiDataInputStream; + } + } + } + } + } +} + +class gnu::javax::sound::midi::file::MidiDataInputStream : public ::java::io::DataInputStream +{ + +public: + MidiDataInputStream(::java::io::InputStream *); + virtual jint readVariableLengthInt(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_file_MidiDataInputStream__ diff --git a/libjava/gnu/javax/sound/midi/file/MidiDataOutputStream.h b/libjava/gnu/javax/sound/midi/file/MidiDataOutputStream.h new file mode 100644 index 00000000000..70718fc2a1a --- /dev/null +++ b/libjava/gnu/javax/sound/midi/file/MidiDataOutputStream.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_file_MidiDataOutputStream__ +#define __gnu_javax_sound_midi_file_MidiDataOutputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace file + { + class MidiDataOutputStream; + } + } + } + } + } +} + +class gnu::javax::sound::midi::file::MidiDataOutputStream : public ::java::io::DataOutputStream +{ + +public: + MidiDataOutputStream(::java::io::OutputStream *); + virtual jint variableLengthIntLength(jint); + virtual void writeVariableLengthInt(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_file_MidiDataOutputStream__ diff --git a/libjava/gnu/javax/sound/midi/file/MidiFileReader.h b/libjava/gnu/javax/sound/midi/file/MidiFileReader.h new file mode 100644 index 00000000000..823ead63702 --- /dev/null +++ b/libjava/gnu/javax/sound/midi/file/MidiFileReader.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_file_MidiFileReader__ +#define __gnu_javax_sound_midi_file_MidiFileReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace file + { + class MidiFileReader; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiFileFormat; + class Sequence; + } + } + } +} + +class gnu::javax::sound::midi::file::MidiFileReader : public ::javax::sound::midi::spi::MidiFileReader +{ + +public: + MidiFileReader(); + virtual ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::io::InputStream *); + virtual ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::net::URL *); + virtual ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::io::File *); + virtual ::javax::sound::midi::Sequence * getSequence(::java::io::InputStream *); + virtual ::javax::sound::midi::Sequence * getSequence(::java::net::URL *); + virtual ::javax::sound::midi::Sequence * getSequence(::java::io::File *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_file_MidiFileReader__ diff --git a/libjava/gnu/javax/sound/midi/file/MidiFileWriter.h b/libjava/gnu/javax/sound/midi/file/MidiFileWriter.h new file mode 100644 index 00000000000..15518ac73cc --- /dev/null +++ b/libjava/gnu/javax/sound/midi/file/MidiFileWriter.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_midi_file_MidiFileWriter__ +#define __gnu_javax_sound_midi_file_MidiFileWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace midi + { + namespace file + { + class MidiDataOutputStream; + class MidiFileWriter; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Sequence; + class Track; + } + } + } +} + +class gnu::javax::sound::midi::file::MidiFileWriter : public ::javax::sound::midi::spi::MidiFileWriter +{ + +public: + MidiFileWriter(); + virtual JArray< jint > * getMidiFileTypes(); + virtual JArray< jint > * getMidiFileTypes(::javax::sound::midi::Sequence *); + virtual jint write(::javax::sound::midi::Sequence *, jint, ::java::io::OutputStream *); +private: + jint computeTrackLength(::javax::sound::midi::Track *, ::gnu::javax::sound::midi::file::MidiDataOutputStream *); + jint writeTrack(::javax::sound::midi::Track *, ::gnu::javax::sound::midi::file::MidiDataOutputStream *); +public: + virtual jint write(::javax::sound::midi::Sequence *, jint, ::java::io::File *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_midi_file_MidiFileWriter__ diff --git a/libjava/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.h b/libjava/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.h new file mode 100644 index 00000000000..d88744fe41b --- /dev/null +++ b/libjava/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_sampled_AU_AUReader$AUFormatType__ +#define __gnu_javax_sound_sampled_AU_AUReader$AUFormatType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace sampled + { + namespace AU + { + class AUReader$AUFormatType; + } + } + } + } + } +} + +class gnu::javax::sound::sampled::AU::AUReader$AUFormatType : public ::javax::sound::sampled::AudioFileFormat$Type +{ + +public: + AUReader$AUFormatType(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_sampled_AU_AUReader$AUFormatType__ diff --git a/libjava/gnu/javax/sound/sampled/AU/AUReader$AUHeader.h b/libjava/gnu/javax/sound/sampled/AU/AUReader$AUHeader.h new file mode 100644 index 00000000000..94f21017bda --- /dev/null +++ b/libjava/gnu/javax/sound/sampled/AU/AUReader$AUHeader.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_sampled_AU_AUReader$AUHeader__ +#define __gnu_javax_sound_sampled_AU_AUReader$AUHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace sampled + { + namespace AU + { + class AUReader$AUHeader; + } + } + } + } + } + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat; + class AudioFormat; + } + } + } +} + +class gnu::javax::sound::sampled::AU::AUReader$AUHeader : public ::java::lang::Object +{ + +public: + AUReader$AUHeader(::java::io::InputStream *); + virtual ::javax::sound::sampled::AudioFormat * getAudioFormat(); + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(); +private: + static const jint MAGIC = 779316836; +public: + static const jint SIZE = 24; + static const jint ULAW = 1; + static const jint PCM8 = 2; + static const jint PCM16 = 3; + static const jint PCM24 = 4; + static const jint PCM32 = 5; + static const jint IEEE32 = 6; + static const jint IEEE64 = 7; + static const jint G721 = 23; + static const jint G722 = 24; + static const jint G723 = 25; + static const jint G723_5BIT = 26; + static const jint ALAW = 27; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) headerSize; + jint fileSize; + jint encoding; + jint sampleRate; + jint channels; + jint sampleSizeInBits; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_sampled_AU_AUReader$AUHeader__ diff --git a/libjava/gnu/javax/sound/sampled/AU/AUReader.h b/libjava/gnu/javax/sound/sampled/AU/AUReader.h new file mode 100644 index 00000000000..d269e765772 --- /dev/null +++ b/libjava/gnu/javax/sound/sampled/AU/AUReader.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_sampled_AU_AUReader__ +#define __gnu_javax_sound_sampled_AU_AUReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace sampled + { + namespace AU + { + class AUReader; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat; + class AudioInputStream; + } + } + } +} + +class gnu::javax::sound::sampled::AU::AUReader : public ::javax::sound::sampled::spi::AudioFileReader +{ + +public: + AUReader(); + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::File *); + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *); + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::net::URL *); + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::File *); + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::InputStream *); + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::net::URL *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_sampled_AU_AUReader__ diff --git a/libjava/gnu/javax/sound/sampled/WAV/WAVReader.h b/libjava/gnu/javax/sound/sampled/WAV/WAVReader.h new file mode 100644 index 00000000000..3756d5d8374 --- /dev/null +++ b/libjava/gnu/javax/sound/sampled/WAV/WAVReader.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_sampled_WAV_WAVReader__ +#define __gnu_javax_sound_sampled_WAV_WAVReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace sampled + { + namespace WAV + { + class WAVReader; + } + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat; + class AudioInputStream; + } + } + } +} + +class gnu::javax::sound::sampled::WAV::WAVReader : public ::javax::sound::sampled::spi::AudioFileReader +{ + +public: + WAVReader(); +private: + static jlong readUnsignedIntLE(::java::io::DataInputStream *); + static jshort readUnsignedShortLE(::java::io::DataInputStream *); +public: + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::File *); + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *); + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::net::URL *); + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::File *); + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::InputStream *); + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::net::URL *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_sampled_WAV_WAVReader__ diff --git a/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.h b/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.h new file mode 100644 index 00000000000..cb81ed002d7 --- /dev/null +++ b/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$CheckBoxIcon.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_plaf_gnu_GNULookAndFeel$CheckBoxIcon__ +#define __gnu_javax_swing_plaf_gnu_GNULookAndFeel$CheckBoxIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace plaf + { + namespace gnu + { + class GNULookAndFeel$CheckBoxIcon; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } +} + +class gnu::javax::swing::plaf::gnu::GNULookAndFeel$CheckBoxIcon : public ::java::lang::Object +{ + +public: // actually package-private + GNULookAndFeel$CheckBoxIcon(); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_plaf_gnu_GNULookAndFeel$CheckBoxIcon__ diff --git a/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$RadioButtonIcon.h b/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$RadioButtonIcon.h new file mode 100644 index 00000000000..7bf88f4501e --- /dev/null +++ b/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel$RadioButtonIcon.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_plaf_gnu_GNULookAndFeel$RadioButtonIcon__ +#define __gnu_javax_swing_plaf_gnu_GNULookAndFeel$RadioButtonIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace plaf + { + namespace gnu + { + class GNULookAndFeel$RadioButtonIcon; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } +} + +class gnu::javax::swing::plaf::gnu::GNULookAndFeel$RadioButtonIcon : public ::java::lang::Object +{ + +public: // actually package-private + GNULookAndFeel$RadioButtonIcon(); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_plaf_gnu_GNULookAndFeel$RadioButtonIcon__ diff --git a/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel.h b/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel.h new file mode 100644 index 00000000000..5aacc5f6f0f --- /dev/null +++ b/libjava/gnu/javax/swing/plaf/gnu/GNULookAndFeel.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_plaf_gnu_GNULookAndFeel__ +#define __gnu_javax_swing_plaf_gnu_GNULookAndFeel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace plaf + { + namespace gnu + { + class GNULookAndFeel; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + class UIDefaults; + } + } +} + +class gnu::javax::swing::plaf::gnu::GNULookAndFeel : public ::javax::swing::plaf::basic::BasicLookAndFeel +{ + +public: + GNULookAndFeel(); + virtual jboolean isNativeLookAndFeel(); + virtual jboolean isSupportedLookAndFeel(); + virtual ::java::lang::String * getDescription(); + virtual ::java::lang::String * getID(); + virtual ::java::lang::String * getName(); + virtual ::javax::swing::UIDefaults * getDefaults(); +public: // actually package-private + static ::java::awt::Color * blueGray; + static ::javax::swing::UIDefaults * LAF_defaults; +private: + static ::java::lang::String * iconspath; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_plaf_gnu_GNULookAndFeel__ diff --git a/libjava/gnu/javax/swing/plaf/metal/CustomizableTheme.h b/libjava/gnu/javax/swing/plaf/metal/CustomizableTheme.h new file mode 100644 index 00000000000..86f273af80a --- /dev/null +++ b/libjava/gnu/javax/swing/plaf/metal/CustomizableTheme.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_plaf_metal_CustomizableTheme__ +#define __gnu_javax_swing_plaf_metal_CustomizableTheme__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class CustomizableTheme; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class ColorUIResource; + } + } + } +} + +class gnu::javax::swing::plaf::metal::CustomizableTheme : public ::javax::swing::plaf::metal::DefaultMetalTheme +{ + +public: + CustomizableTheme(); + virtual void setPrimary1(::java::awt::Color *); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary1(); + virtual void setPrimary2(::java::awt::Color *); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary2(); + virtual void setPrimary3(::java::awt::Color *); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary3(); + virtual void setSecondary1(::java::awt::Color *); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary1(); + virtual void setSecondary2(::java::awt::Color *); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary2(); + virtual void setSecondary3(::java::awt::Color *); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary3(); + virtual ::java::lang::Object * clone(); +private: + ::javax::swing::plaf::ColorUIResource * __attribute__((aligned(__alignof__( ::javax::swing::plaf::metal::DefaultMetalTheme)))) primary1; + ::javax::swing::plaf::ColorUIResource * primary2; + ::javax::swing::plaf::ColorUIResource * primary3; + ::javax::swing::plaf::ColorUIResource * secondary1; + ::javax::swing::plaf::ColorUIResource * secondary2; + ::javax::swing::plaf::ColorUIResource * secondary3; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_plaf_metal_CustomizableTheme__ diff --git a/libjava/gnu/javax/swing/text/html/CharacterAttributeTranslator.h b/libjava/gnu/javax/swing/text/html/CharacterAttributeTranslator.h new file mode 100644 index 00000000000..72939f5fbf4 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/CharacterAttributeTranslator.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_CharacterAttributeTranslator__ +#define __gnu_javax_swing_text_html_CharacterAttributeTranslator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class CharacterAttributeTranslator; + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + } + } + } + } +} + +class gnu::javax::swing::text::html::CharacterAttributeTranslator : public ::java::lang::Object +{ + +public: + CharacterAttributeTranslator(); + static ::java::awt::Color * getColor(::java::lang::String *); + static jboolean translateTag(::javax::swing::text::MutableAttributeSet *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); +private: + static ::java::util::HashMap * colorMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_CharacterAttributeTranslator__ diff --git a/libjava/gnu/javax/swing/text/html/CombinedAttributes$CombinedEnumeration.h b/libjava/gnu/javax/swing/text/html/CombinedAttributes$CombinedEnumeration.h new file mode 100644 index 00000000000..26a3386ff5d --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/CombinedAttributes$CombinedEnumeration.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_CombinedAttributes$CombinedEnumeration__ +#define __gnu_javax_swing_text_html_CombinedAttributes$CombinedEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class CombinedAttributes; + class CombinedAttributes$CombinedEnumeration; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::CombinedAttributes$CombinedEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + CombinedAttributes$CombinedEnumeration(::gnu::javax::swing::text::html::CombinedAttributes *, ::java::util::Enumeration *, ::java::util::Enumeration *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + ::java::util::Enumeration * __attribute__((aligned(__alignof__( ::java::lang::Object)))) a; + ::java::util::Enumeration * b; + ::gnu::javax::swing::text::html::CombinedAttributes * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_CombinedAttributes$CombinedEnumeration__ diff --git a/libjava/gnu/javax/swing/text/html/CombinedAttributes.h b/libjava/gnu/javax/swing/text/html/CombinedAttributes.h new file mode 100644 index 00000000000..69ed22976ab --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/CombinedAttributes.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_CombinedAttributes__ +#define __gnu_javax_swing_text_html_CombinedAttributes__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class CombinedAttributes; + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class gnu::javax::swing::text::html::CombinedAttributes : public ::java::lang::Object +{ + +public: + static ::javax::swing::text::AttributeSet * combine(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *); +private: + CombinedAttributes(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *); +public: + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual jint getAttributeCount(); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual jboolean isDefined(::java::lang::Object *); + virtual jboolean isEqual(::javax::swing::text::AttributeSet *); +public: // actually package-private + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) a; + ::javax::swing::text::AttributeSet * b; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_CombinedAttributes__ diff --git a/libjava/gnu/javax/swing/text/html/ImageViewIconFactory$LoadingImageIcon.h b/libjava/gnu/javax/swing/text/html/ImageViewIconFactory$LoadingImageIcon.h new file mode 100644 index 00000000000..b0f39ebf9e7 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/ImageViewIconFactory$LoadingImageIcon.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_ImageViewIconFactory$LoadingImageIcon__ +#define __gnu_javax_swing_text_html_ImageViewIconFactory$LoadingImageIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class ImageViewIconFactory$LoadingImageIcon; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } +} + +class gnu::javax::swing::text::html::ImageViewIconFactory$LoadingImageIcon : public ::java::lang::Object +{ + +public: + ImageViewIconFactory$LoadingImageIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_ImageViewIconFactory$LoadingImageIcon__ diff --git a/libjava/gnu/javax/swing/text/html/ImageViewIconFactory$NoImageIcon.h b/libjava/gnu/javax/swing/text/html/ImageViewIconFactory$NoImageIcon.h new file mode 100644 index 00000000000..d25a5fe2983 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/ImageViewIconFactory$NoImageIcon.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_ImageViewIconFactory$NoImageIcon__ +#define __gnu_javax_swing_text_html_ImageViewIconFactory$NoImageIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class ImageViewIconFactory$NoImageIcon; + } + } + } + } + } + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } +} + +class gnu::javax::swing::text::html::ImageViewIconFactory$NoImageIcon : public ::java::lang::Object +{ + +public: + ImageViewIconFactory$NoImageIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_ImageViewIconFactory$NoImageIcon__ diff --git a/libjava/gnu/javax/swing/text/html/ImageViewIconFactory.h b/libjava/gnu/javax/swing/text/html/ImageViewIconFactory.h new file mode 100644 index 00000000000..3357a92cff8 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/ImageViewIconFactory.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_ImageViewIconFactory__ +#define __gnu_javax_swing_text_html_ImageViewIconFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class ImageViewIconFactory; + } + } + } + } + } + namespace javax + { + namespace swing + { + class Icon; + } + } +} + +class gnu::javax::swing::text::html::ImageViewIconFactory : public ::java::lang::Object +{ + +public: + ImageViewIconFactory(); + static ::javax::swing::Icon * getNoImageIcon(); + static ::javax::swing::Icon * getLoadingImageIcon(); +private: + static ::javax::swing::Icon * noImageIcon; + static ::javax::swing::Icon * loadingImageIcon; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_ImageViewIconFactory__ diff --git a/libjava/gnu/javax/swing/text/html/css/BorderStyle.h b/libjava/gnu/javax/swing/text/html/css/BorderStyle.h new file mode 100644 index 00000000000..e8efa108fad --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/BorderStyle.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_BorderStyle__ +#define __gnu_javax_swing_text_html_css_BorderStyle__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class BorderStyle; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::BorderStyle : public ::java::lang::Object +{ + +public: + BorderStyle(); + static jboolean isValidStyle(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_BorderStyle__ diff --git a/libjava/gnu/javax/swing/text/html/css/BorderWidth.h b/libjava/gnu/javax/swing/text/html/css/BorderWidth.h new file mode 100644 index 00000000000..ce2878788bf --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/BorderWidth.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_BorderWidth__ +#define __gnu_javax_swing_text_html_css_BorderWidth__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class BorderWidth; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::BorderWidth : public ::gnu::javax::swing::text::html::css::Length +{ + +public: + BorderWidth(::java::lang::String *); + static jboolean isValid(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_BorderWidth__ diff --git a/libjava/gnu/javax/swing/text/html/css/CSSColor.h b/libjava/gnu/javax/swing/text/html/css/CSSColor.h new file mode 100644 index 00000000000..6896930e930 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/CSSColor.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_CSSColor__ +#define __gnu_javax_swing_text_html_css_CSSColor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class CSSColor; + } + } + } + } + } + } + namespace java + { + namespace awt + { + class Color; + } + } +} + +class gnu::javax::swing::text::html::css::CSSColor : public ::java::lang::Object +{ + +public: + CSSColor(::java::lang::String *); + static ::java::awt::Color * convertValue(::java::lang::String *); + virtual ::java::awt::Color * getValue(); + virtual ::java::lang::String * toString(); + static jboolean isValidColor(::java::lang::String *); +private: + static ::java::util::HashMap * COLOR_MAP; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + ::java::awt::Color * color; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_CSSColor__ diff --git a/libjava/gnu/javax/swing/text/html/css/CSSLexicalException.h b/libjava/gnu/javax/swing/text/html/css/CSSLexicalException.h new file mode 100644 index 00000000000..bcacf3220c2 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/CSSLexicalException.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_CSSLexicalException__ +#define __gnu_javax_swing_text_html_css_CSSLexicalException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class CSSLexicalException; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::CSSLexicalException : public ::java::io::IOException +{ + +public: + CSSLexicalException(); + CSSLexicalException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_CSSLexicalException__ diff --git a/libjava/gnu/javax/swing/text/html/css/CSSParser$1.h b/libjava/gnu/javax/swing/text/html/css/CSSParser$1.h new file mode 100644 index 00000000000..be6e19bcdd5 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/CSSParser$1.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_CSSParser$1__ +#define __gnu_javax_swing_text_html_css_CSSParser$1__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class CSSParser$1; + class Selector; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::CSSParser$1 : public ::java::lang::Object +{ + +public: // actually package-private + CSSParser$1(); +public: + void startStatement(JArray< ::gnu::javax::swing::text::html::css::Selector * > *); + void endStatement(); + void declaration(::java::lang::String *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_CSSParser$1__ diff --git a/libjava/gnu/javax/swing/text/html/css/CSSParser.h b/libjava/gnu/javax/swing/text/html/css/CSSParser.h new file mode 100644 index 00000000000..f7cb014251d --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/CSSParser.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_CSSParser__ +#define __gnu_javax_swing_text_html_css_CSSParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class CSSParser; + class CSSParserCallback; + class CSSScanner; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::CSSParser : public ::java::lang::Object +{ + +public: + CSSParser(::java::io::Reader *, ::gnu::javax::swing::text::html::css::CSSParserCallback *); + virtual void parse(); +private: + jboolean parseStylesheet(); + jboolean parseStatement(); + jboolean parseRuleset(); + jboolean parseDeclaration(); + jboolean parseValue(::java::lang::StringBuilder *); + jboolean parseSelector(::java::lang::StringBuilder *); + jboolean parseAny(::java::lang::StringBuilder *); + jboolean parseAtRule(); + jint readToken(); + jint peekToken(); +public: + static void main(JArray< ::java::lang::String * > *); +private: + ::gnu::javax::swing::text::html::css::CSSScanner * __attribute__((aligned(__alignof__( ::java::lang::Object)))) scanner; + ::gnu::javax::swing::text::html::css::CSSParserCallback * callback; + jint lookahead; + ::java::lang::String * error; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_CSSParser__ diff --git a/libjava/gnu/javax/swing/text/html/css/CSSParserCallback.h b/libjava/gnu/javax/swing/text/html/css/CSSParserCallback.h new file mode 100644 index 00000000000..ce07b41e1b0 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/CSSParserCallback.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_CSSParserCallback__ +#define __gnu_javax_swing_text_html_css_CSSParserCallback__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class CSSParserCallback; + class Selector; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::CSSParserCallback : public ::java::lang::Object +{ + +public: + virtual void startStatement(JArray< ::gnu::javax::swing::text::html::css::Selector * > *) = 0; + virtual void endStatement() = 0; + virtual void declaration(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_javax_swing_text_html_css_CSSParserCallback__ diff --git a/libjava/gnu/javax/swing/text/html/css/CSSParserException.h b/libjava/gnu/javax/swing/text/html/css/CSSParserException.h new file mode 100644 index 00000000000..9be56d4f3aa --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/CSSParserException.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_CSSParserException__ +#define __gnu_javax_swing_text_html_css_CSSParserException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class CSSParserException; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::CSSParserException : public ::java::io::IOException +{ + +public: + CSSParserException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_CSSParserException__ diff --git a/libjava/gnu/javax/swing/text/html/css/CSSScanner.h b/libjava/gnu/javax/swing/text/html/css/CSSScanner.h new file mode 100644 index 00000000000..0e6d7c5f026 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/CSSScanner.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_CSSScanner__ +#define __gnu_javax_swing_text_html_css_CSSScanner__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class CSSScanner; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::CSSScanner : public ::java::lang::Object +{ + +public: // actually package-private + CSSScanner(::java::io::Reader *); + virtual jint nextToken(); + virtual ::java::lang::String * currentTokenString(); +private: + jint read(); + void readIdent(); + void readEscape(); + void readName(); + void readString(); + void readWhitespace(); + void readURI(); + void readComment(); + void readNum(); +public: + static void main(JArray< ::java::lang::String * > *); +public: // actually package-private + static const jint IDENT = 1; + static const jint ATKEYWORD = 2; + static const jint STRING = 3; + static const jint INVALID = 4; + static const jint HASH = 5; + static const jint NUMBER = 6; + static const jint PERCENTAGE = 7; + static const jint DIMENSION = 8; + static const jint URI = 9; + static const jint UNICODE_RANGE = 10; + static const jint CDO = 11; + static const jint CDC = 12; + static const jint SEMICOLON = 13; + static const jint CURLY_LEFT = 14; + static const jint CURLY_RIGHT = 15; + static const jint PAREN_LEFT = 16; + static const jint PAREN_RIGHT = 17; + static const jint BRACE_LEFT = 16; + static const jint BRACE_RIGHT = 17; + static const jint S = 18; + static const jint COMMENT = 19; + static const jint FUNCTION = 20; + static const jint INCLUDES = 21; + static const jint DASHMATCH = 22; + static const jint DELIM = 23; + static const jint EOF = -1; +private: + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; +public: // actually package-private + JArray< jchar > * parseBuffer; + jint tokenEnd; +private: + JArray< jint > * lookahead; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_CSSScanner__ diff --git a/libjava/gnu/javax/swing/text/html/css/FontSize.h b/libjava/gnu/javax/swing/text/html/css/FontSize.h new file mode 100644 index 00000000000..52c4087fa8f --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/FontSize.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_FontSize__ +#define __gnu_javax_swing_text_html_css_FontSize__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class FontSize; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::FontSize : public ::java::lang::Object +{ + +public: + FontSize(::java::lang::String *); + virtual jint getValue(jint); + virtual jint getValue(); +private: + jint mapValue(); + jint mapPoints(); + jint mapPixels(); + jint mapPercent(jint); + jint mapEM(jint); + jint mapSmaller(jint); + jint mapLarger(jint); + jint mapAbsolute(); +public: + virtual ::java::lang::String * toString(); +private: + jint mapRelative(jint); +public: + virtual jboolean isRelative(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + jint size; + jint sizeIndex; + jboolean isRelative__; +public: + static const jint DEFAULT_FONT_SIZE = 12; +private: + static JArray< jdouble > * SCALE; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_FontSize__ diff --git a/libjava/gnu/javax/swing/text/html/css/FontStyle.h b/libjava/gnu/javax/swing/text/html/css/FontStyle.h new file mode 100644 index 00000000000..b25be5b1ee4 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/FontStyle.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_FontStyle__ +#define __gnu_javax_swing_text_html_css_FontStyle__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class FontStyle; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::FontStyle : public ::java::lang::Object +{ + +public: + FontStyle(::java::lang::String *); + virtual jint getValue(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_FontStyle__ diff --git a/libjava/gnu/javax/swing/text/html/css/FontWeight.h b/libjava/gnu/javax/swing/text/html/css/FontWeight.h new file mode 100644 index 00000000000..17adbbe9553 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/FontWeight.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_FontWeight__ +#define __gnu_javax_swing_text_html_css_FontWeight__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class FontWeight; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::FontWeight : public ::java::lang::Object +{ + +public: + FontWeight(::java::lang::String *); + virtual jint getValue(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_FontWeight__ diff --git a/libjava/gnu/javax/swing/text/html/css/Length.h b/libjava/gnu/javax/swing/text/html/css/Length.h new file mode 100644 index 00000000000..0eb88bff233 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/Length.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_Length__ +#define __gnu_javax_swing_text_html_css_Length__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Length; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::Length : public ::java::lang::Object +{ + +public: + Length(::java::lang::String *); + virtual jfloat getValue(); + virtual jfloat getValue(jfloat); + virtual void setEMBase(jfloat); + virtual void setEXBase(jfloat); + virtual void setFontBases(jfloat, jfloat); + virtual jboolean isFontEMRelative(); + virtual jboolean isFontEXRelative(); + virtual jboolean isPercentage(); + static jboolean isValid(::java::lang::String *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: // actually protected + jfloat floatValue; +private: + jboolean isPercentage__; + jboolean isFontEMRelative__; + jboolean isFontEXRelative__; + jfloat emBase; + jfloat exBase; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_Length__ diff --git a/libjava/gnu/javax/swing/text/html/css/Selector.h b/libjava/gnu/javax/swing/text/html/css/Selector.h new file mode 100644 index 00000000000..1f7103e976e --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/css/Selector.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_css_Selector__ +#define __gnu_javax_swing_text_html_css_Selector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Selector; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::css::Selector : public ::java::lang::Object +{ + +public: + Selector(::java::lang::String *); + virtual jboolean matches(JArray< ::java::lang::String * > *, JArray< ::java::util::Map * > *); + virtual jint getSpecificity(); + virtual ::java::lang::String * toString(); +private: + void calculateSpecificity(); + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) selector; + JArray< ::java::lang::String * > * elements; + JArray< ::java::lang::String * > * ids; + JArray< ::java::lang::String * > * classes; + jint specificity; + jboolean implicit; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_css_Selector__ diff --git a/libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator$gnuParser.h b/libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator$gnuParser.h new file mode 100644 index 00000000000..27fa3d0781d --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator$gnuParser.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_GnuParserDelegator$gnuParser__ +#define __gnu_javax_swing_text_html_parser_GnuParserDelegator$gnuParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class GnuParserDelegator; + class GnuParserDelegator$gnuParser; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + class TagElement; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::GnuParserDelegator$gnuParser : public ::gnu::javax::swing::text::html::parser::support::Parser +{ + +public: // actually package-private + GnuParserDelegator$gnuParser(::gnu::javax::swing::text::html::parser::GnuParserDelegator *, ::javax::swing::text::html::parser::DTD *); +public: // actually protected + virtual void handleComment(JArray< jchar > *); + virtual void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleEndTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleError(jint, ::java::lang::String *); + virtual void handleStartTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleText(JArray< jchar > *); +public: // actually package-private + virtual ::javax::swing::text::html::parser::DTD * getDTD(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::gnu::javax::swing::text::html::parser::GnuParserDelegator * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::support::Parser)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_GnuParserDelegator$gnuParser__ diff --git a/libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator.h b/libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator.h new file mode 100644 index 00000000000..1eda52a21b3 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/GnuParserDelegator.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_GnuParserDelegator__ +#define __gnu_javax_swing_text_html_parser_GnuParserDelegator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class GnuParserDelegator; + class GnuParserDelegator$gnuParser; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTMLEditorKit$ParserCallback; + namespace parser + { + class DTD; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::GnuParserDelegator : public ::javax::swing::text::html::parser::ParserDelegator +{ + +public: + GnuParserDelegator(::javax::swing::text::html::parser::DTD *); + virtual void parse(::java::io::Reader *, ::javax::swing::text::html::HTMLEditorKit$ParserCallback *, jboolean); +private: + static const jlong serialVersionUID = -1276686502624777206LL; + ::javax::swing::text::html::parser::DTD * __attribute__((aligned(__alignof__( ::javax::swing::text::html::parser::ParserDelegator)))) theDtd; +public: // actually package-private + ::javax::swing::text::html::HTMLEditorKit$ParserCallback * callBack; + ::gnu::javax::swing::text::html::parser::GnuParserDelegator$gnuParser * gnu; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_GnuParserDelegator__ diff --git a/libjava/gnu/javax/swing/text/html/parser/HTML_401F.h b/libjava/gnu/javax/swing/text/html/parser/HTML_401F.h new file mode 100644 index 00000000000..8ef57c70b31 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/HTML_401F.h @@ -0,0 +1,330 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_HTML_401F__ +#define __gnu_javax_swing_text_html_parser_HTML_401F__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class HTML_401F; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class ContentModel; + class DTD; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::HTML_401F : public ::gnu::javax::swing::text::html::parser::gnuDTD +{ + +public: // actually protected + HTML_401F(); +public: + static ::javax::swing::text::html::parser::DTD * getInstance(); +public: // actually protected + virtual void defineElements(); + virtual void defineEntities(); + virtual ::javax::swing::text::html::parser::ContentModel * model(::java::lang::String *); +private: + ::javax::swing::text::html::parser::ContentModel * model(::java::lang::String *, jint); +public: // actually protected + virtual ::javax::swing::text::html::parser::ContentModel * createHtmlContentModel(); + virtual ::javax::swing::text::html::parser::ContentModel * createTableContentModel(); + virtual ::javax::swing::text::html::parser::ContentModel * createDefListModel(); + virtual ::javax::swing::text::html::parser::ContentModel * createListModel(); + virtual JArray< ::java::lang::String * > * getBodyElements(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::String * DTD_NAME; +public: // actually package-private + static const jint PIXELS = 12; + static JArray< ::java::lang::String * > * NONE; + static ::java::lang::String * PCDATA; + static ::java::lang::String * A; + static ::java::lang::String * ABBR; + static ::java::lang::String * ACRONYM; + static ::java::lang::String * ADDRESS; + static ::java::lang::String * APPLET; + static ::java::lang::String * AREA; + static ::java::lang::String * B; + static ::java::lang::String * BASE; + static ::java::lang::String * BASEFONT; + static ::java::lang::String * BDO; + static ::java::lang::String * BIG; + static ::java::lang::String * BLOCKQUOTE; + static ::java::lang::String * BODY; + static ::java::lang::String * BR; + static ::java::lang::String * BUTTON; + static ::java::lang::String * CAPTION; + static ::java::lang::String * CENTER; + static ::java::lang::String * CITE; + static ::java::lang::String * CODE; + static ::java::lang::String * COL; + static ::java::lang::String * COLGROUP; + static ::java::lang::String * DEFAULTS; + static ::java::lang::String * DD; + static ::java::lang::String * DEL; + static ::java::lang::String * DFN; + static ::java::lang::String * DIR; + static ::java::lang::String * DIV; + static ::java::lang::String * DL; + static ::java::lang::String * DT; + static ::java::lang::String * EM; + static ::java::lang::String * FIELDSET; + static ::java::lang::String * FONT; + static ::java::lang::String * FORM; + static ::java::lang::String * FRAME; + static ::java::lang::String * FRAMESET; + static ::java::lang::String * H1; + static ::java::lang::String * H2; + static ::java::lang::String * H3; + static ::java::lang::String * H4; + static ::java::lang::String * H5; + static ::java::lang::String * H6; + static ::java::lang::String * HEAD; + static ::java::lang::String * HR; + static ::java::lang::String * HTML; + static ::java::lang::String * I; + static ::java::lang::String * IFRAME; + static ::java::lang::String * IMG; + static ::java::lang::String * INPUT; + static ::java::lang::String * INS; + static ::java::lang::String * ISINDEX; + static ::java::lang::String * KBD; + static ::java::lang::String * LABEL; + static ::java::lang::String * LEGEND; + static ::java::lang::String * LI; + static ::java::lang::String * LINK; + static ::java::lang::String * MAP; + static ::java::lang::String * MENU; + static ::java::lang::String * META; + static ::java::lang::String * NOFRAMES; + static ::java::lang::String * NOSCRIPT; + static ::java::lang::String * NONES; + static ::java::lang::String * sNAME; + static ::java::lang::String * OBJECT; + static ::java::lang::String * OL; + static ::java::lang::String * OPTGROUP; + static ::java::lang::String * OPTION; + static ::java::lang::String * P; + static ::java::lang::String * PARAM; + static ::java::lang::String * PRE; + static ::java::lang::String * Q; + static ::java::lang::String * S; + static ::java::lang::String * SAMP; + static ::java::lang::String * SCRIPT; + static ::java::lang::String * SELECT; + static ::java::lang::String * SMALL; + static ::java::lang::String * SPAN; + static ::java::lang::String * STRIKE; + static ::java::lang::String * STRONG; + static ::java::lang::String * STYLE; + static ::java::lang::String * SUB; + static ::java::lang::String * SUP; + static ::java::lang::String * TABLE; + static ::java::lang::String * TBODY; + static ::java::lang::String * TD; + static ::java::lang::String * TEXTAREA; + static ::java::lang::String * TFOOT; + static ::java::lang::String * TH; + static ::java::lang::String * THEAD; + static ::java::lang::String * TITLE; + static ::java::lang::String * TR; + static ::java::lang::String * TT; + static ::java::lang::String * U; + static ::java::lang::String * UL; + static ::java::lang::String * VAR; + static ::java::lang::String * C_0; + static ::java::lang::String * C_1; + static ::java::lang::String * CHECKBOX; + static ::java::lang::String * DATA; + static ::java::lang::String * FILE; + static ::java::lang::String * GET; + static ::java::lang::String * HIDDEN; + static ::java::lang::String * IMAGE; + static ::java::lang::String * PASSWORD; + static ::java::lang::String * POST; + static ::java::lang::String * RADIO; + static ::java::lang::String * REF; + static ::java::lang::String * RESET; + static ::java::lang::String * SUBMIT; + static ::java::lang::String * TEXT; + static ::java::lang::String * ABOVE; + static ::java::lang::String * ACCEPT; + static ::java::lang::String * ACCEPTCHARSET; + static ::java::lang::String * ACCESSKEY; + static ::java::lang::String * ACTION; + static ::java::lang::String * ALIGN; + static ::java::lang::String * ALINK; + static ::java::lang::String * ALL; + static ::java::lang::String * ALT; + static ::java::lang::String * APPLICATION_X_WWW_FORM_URLENCODED; + static ::java::lang::String * ARCHIVE; + static ::java::lang::String * AUTO; + static ::java::lang::String * AXIS; + static ::java::lang::String * BACKGROUND; + static ::java::lang::String * BASELINE; + static ::java::lang::String * BELOW; + static ::java::lang::String * BGCOLOR; + static ::java::lang::String * BORDER; + static ::java::lang::String * BOTTOM; + static ::java::lang::String * BOX; + static ::java::lang::String * CELLPADDING; + static ::java::lang::String * CELLSPACING; + static ::java::lang::String * CHAR; + static ::java::lang::String * CHAROFF; + static ::java::lang::String * CHARSET; + static ::java::lang::String * CHECKED; + static ::java::lang::String * CIRCLE; + static ::java::lang::String * CLASS; + static ::java::lang::String * CLASSID; + static ::java::lang::String * CLEAR; + static ::java::lang::String * CODEBASE; + static ::java::lang::String * CODETYPE; + static ::java::lang::String * COLOR; + static ::java::lang::String * COLS; + static ::java::lang::String * COLSPAN; + static ::java::lang::String * COMPACT; + static ::java::lang::String * CONTENT; + static ::java::lang::String * COORDS; + static ::java::lang::String * DATAPAGESIZE; + static ::java::lang::String * DATETIME; + static ::java::lang::String * DECLARE; + static ::java::lang::String * DEFER; + static ::java::lang::String * DISABLED; + static ::java::lang::String * DISC; + static ::java::lang::String * ENCTYPE; + static ::java::lang::String * EVENT; + static ::java::lang::String * FACE; + static ::java::lang::String * FOR; + static ::java::lang::String * FRAMEBORDER; + static ::java::lang::String * GROUPS; + static ::java::lang::String * HEADERS; + static ::java::lang::String * HEIGHT; + static ::java::lang::String * HREF; + static ::java::lang::String * HREFLANG; + static ::java::lang::String * HSIDES; + static ::java::lang::String * HSPACE; + static ::java::lang::String * HTTPEQUIV; + static ::java::lang::String * sID; + static ::java::lang::String * ISMAP; + static ::java::lang::String * JUSTIFY; + static ::java::lang::String * LANG; + static ::java::lang::String * LANGUAGE; + static ::java::lang::String * LEFT; + static ::java::lang::String * LHS; + static ::java::lang::String * LONGDESC; + static ::java::lang::String * LTR; + static ::java::lang::String * MARGINHEIGHT; + static ::java::lang::String * MARGINWIDTH; + static ::java::lang::String * MAXLENGTH; + static ::java::lang::String * MEDIA; + static ::java::lang::String * METHOD; + static ::java::lang::String * MIDDLE; + static ::java::lang::String * MULTIPLE; + static ::java::lang::String * NO; + static ::java::lang::String * NOHREF; + static ::java::lang::String * NORESIZE; + static ::java::lang::String * NOSHADE; + static ::java::lang::String * NOWRAP; + static ::java::lang::String * ONBLUR; + static ::java::lang::String * ONCHANGE; + static ::java::lang::String * ONCLICK; + static ::java::lang::String * ONDBLCLICK; + static ::java::lang::String * ONFOCUS; + static ::java::lang::String * ONKEYDOWN; + static ::java::lang::String * ONKEYPRESS; + static ::java::lang::String * ONKEYUP; + static ::java::lang::String * ONLOAD; + static ::java::lang::String * ONMOUSEDOWN; + static ::java::lang::String * ONMOUSEMOVE; + static ::java::lang::String * ONMOUSEOUT; + static ::java::lang::String * ONMOUSEOVER; + static ::java::lang::String * ONMOUSEUP; + static ::java::lang::String * ONRESET; + static ::java::lang::String * ONSELECT; + static ::java::lang::String * ONSUBMIT; + static ::java::lang::String * ONUNLOAD; + static ::java::lang::String * POLY; + static ::java::lang::String * PROFILE; + static ::java::lang::String * PROMPT; + static ::java::lang::String * READONLY; + static ::java::lang::String * RECT; + static ::java::lang::String * REL; + static ::java::lang::String * REV; + static ::java::lang::String * RHS; + static ::java::lang::String * RIGHT; + static ::java::lang::String * ROW; + static ::java::lang::String * ROWGROUP; + static ::java::lang::String * ROWS; + static ::java::lang::String * ROWSPAN; + static ::java::lang::String * RTL; + static ::java::lang::String * RULES; + static ::java::lang::String * SCHEME; + static ::java::lang::String * SCOPE; + static ::java::lang::String * SCROLLING; + static ::java::lang::String * SELECTED; + static ::java::lang::String * SHAPE; + static ::java::lang::String * SIZE; + static ::java::lang::String * SQUARE; + static ::java::lang::String * SRC; + static ::java::lang::String * STANDBY; + static ::java::lang::String * START; + static ::java::lang::String * SUMMARY; + static ::java::lang::String * TABINDEX; + static ::java::lang::String * TARGET; + static ::java::lang::String * TOP; + static ::java::lang::String * TYPE; + static ::java::lang::String * USEMAP; + static ::java::lang::String * VALIGN; + static ::java::lang::String * VALUE; + static ::java::lang::String * VALUETYPE; + static ::java::lang::String * VERSION; + static ::java::lang::String * VLINK; + static ::java::lang::String * VOID; + static ::java::lang::String * VSIDES; + static ::java::lang::String * VSPACE; + static ::java::lang::String * WIDTH; + static ::java::lang::String * YES; + static JArray< ::java::lang::String * > * BLOCK; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_HTML_401F__ diff --git a/libjava/gnu/javax/swing/text/html/parser/HTML_401Swing.h b/libjava/gnu/javax/swing/text/html/parser/HTML_401Swing.h new file mode 100644 index 00000000000..621eed594f1 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/HTML_401Swing.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_HTML_401Swing__ +#define __gnu_javax_swing_text_html_parser_HTML_401Swing__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class HTML_401Swing; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::HTML_401Swing : public ::gnu::javax::swing::text::html::parser::HTML_401F +{ + +public: + HTML_401Swing(); + static ::javax::swing::text::html::parser::DTD * getInstance(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getBodyElements(); +public: // actually package-private + static ::gnu::javax::swing::text::html::parser::HTML_401Swing * singleton; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_HTML_401Swing__ diff --git a/libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet$1.h b/libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet$1.h new file mode 100644 index 00000000000..8f65e05beec --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet$1.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet$1__ +#define __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class SmallHtmlAttributeSet; + class SmallHtmlAttributeSet$1; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::SmallHtmlAttributeSet$1 : public ::java::lang::Object +{ + +public: // actually package-private + SmallHtmlAttributeSet$1(::gnu::javax::swing::text::html::parser::SmallHtmlAttributeSet *); +public: + jboolean hasMoreElements(); + ::java::lang::Object * nextElement(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) p; + ::gnu::javax::swing::text::html::parser::SmallHtmlAttributeSet * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet$1__ diff --git a/libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.h b/libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.h new file mode 100644 index 00000000000..c1aedde8462 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet__ +#define __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class SmallHtmlAttributeSet; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class gnu::javax::swing::text::html::parser::SmallHtmlAttributeSet : public ::java::lang::Object +{ + +public: + SmallHtmlAttributeSet(::javax::swing::text::AttributeSet *); + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual jint getAttributeCount(); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual jboolean isDefined(::java::lang::Object *); + virtual jboolean isEqual(::javax::swing::text::AttributeSet *); +public: // actually protected + virtual ::java::lang::Object * clone(); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keys; + JArray< ::java::lang::Object * > * values; + ::javax::swing::text::AttributeSet * parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet__ diff --git a/libjava/gnu/javax/swing/text/html/parser/gnuDTD.h b/libjava/gnu/javax/swing/text/html/parser/gnuDTD.h new file mode 100644 index 00000000000..33642e3353a --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/gnuDTD.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_gnuDTD__ +#define __gnu_javax_swing_text_html_parser_gnuDTD__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class gnuDTD; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class AttributeList; + class ContentModel; + class Element; + class Entity; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::gnuDTD : public ::javax::swing::text::html::parser::DTD +{ + +public: + gnuDTD(::java::lang::String *); + virtual ::javax::swing::text::html::parser::AttributeList * defAttributeList(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *, ::javax::swing::text::html::parser::AttributeList *); + virtual void defAttrsFor(::java::lang::String *, ::javax::swing::text::html::parser::AttributeList *); + virtual ::javax::swing::text::html::parser::ContentModel * defContentModel(jint, ::java::lang::Object *, ::javax::swing::text::html::parser::ContentModel *); + virtual ::javax::swing::text::html::parser::Element * defElement(::java::lang::String *, jint, jboolean, jboolean, ::javax::swing::text::html::parser::ContentModel *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::javax::swing::text::html::parser::AttributeList *); + virtual ::javax::swing::text::html::parser::Element * defElement(::java::lang::String *, jint, jboolean, jboolean, ::javax::swing::text::html::parser::ContentModel *, ::java::util::Collection *, ::java::util::Collection *, ::javax::swing::text::html::parser::AttributeList *); + virtual ::javax::swing::text::html::parser::Element * defElement(::java::lang::String *, jint, jboolean, jboolean, ::javax::swing::text::html::parser::ContentModel *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::javax::swing::text::html::parser::AttributeList * > *); + virtual ::javax::swing::text::html::parser::Entity * defEntity(::java::lang::String *, jint, ::java::lang::String *); + virtual void dump(::java::io::PrintStream *); + virtual void dump(::java::util::BitSet *); +public: // actually protected + virtual ::javax::swing::text::html::parser::AttributeList * attr(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, jint, jint); + virtual void defineEntity(::java::lang::String *, jint); +private: + JArray< ::java::lang::String * > * toStringArray(::java::util::Collection *); +public: + static const jint URI = 512; + static const jint Length = 513; + static const jint Char = 514; + static const jint Color = 515; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_gnuDTD__ diff --git a/libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet$1.h b/libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet$1.h new file mode 100644 index 00000000000..7074e629381 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet$1.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_htmlAttributeSet$1__ +#define __gnu_javax_swing_text_html_parser_htmlAttributeSet$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class htmlAttributeSet; + class htmlAttributeSet$1; + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::htmlAttributeSet$1 : public ::java::lang::Object +{ + +public: // actually package-private + htmlAttributeSet$1(::gnu::javax::swing::text::html::parser::htmlAttributeSet *, ::java::util::Enumeration *); +public: + jboolean hasMoreElements(); + ::java::lang::Object * nextElement(); +public: // actually package-private + ::gnu::javax::swing::text::html::parser::htmlAttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::java::util::Enumeration * val$enumeration; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_htmlAttributeSet$1__ diff --git a/libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet.h b/libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet.h new file mode 100644 index 00000000000..e981c4f0294 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/htmlAttributeSet.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_htmlAttributeSet__ +#define __gnu_javax_swing_text_html_parser_htmlAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class htmlAttributeSet; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class gnu::javax::swing::text::html::parser::htmlAttributeSet : public ::javax::swing::text::SimpleAttributeSet +{ + +public: + htmlAttributeSet(); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual void setResolveParent(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual void addAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual ::java::lang::Object * clone(); + static ::gnu::javax::swing::text::html::parser::htmlAttributeSet * EMPTY_HTML_ATTRIBUTE_SET; +public: // actually package-private + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::text::SimpleAttributeSet)))) parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_htmlAttributeSet__ diff --git a/libjava/gnu/javax/swing/text/html/parser/htmlValidator$hTag.h b/libjava/gnu/javax/swing/text/html/parser/htmlValidator$hTag.h new file mode 100644 index 00000000000..eff505b40bc --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/htmlValidator$hTag.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_htmlValidator$hTag__ +#define __gnu_javax_swing_text_html_parser_htmlValidator$hTag__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class htmlValidator; + class htmlValidator$hTag; + namespace models + { + class node; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTML$Tag; + namespace parser + { + class Element; + class TagElement; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::htmlValidator$hTag : public ::java::lang::Object +{ + +public: // actually protected + htmlValidator$hTag(::gnu::javax::swing::text::html::parser::htmlValidator *, ::javax::swing::text::html::parser::TagElement *); + virtual void forciblyCloseDueContext(); + virtual void forciblyCloseDueEndOfStream(); + ::javax::swing::text::html::parser::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) element; + ::javax::swing::text::html::HTML$Tag * tag; + ::javax::swing::text::html::parser::TagElement * tgElement; + jboolean forcibly_closed; + ::gnu::javax::swing::text::html::parser::models::node * validationTrace; +public: // actually package-private + ::gnu::javax::swing::text::html::parser::htmlValidator * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_htmlValidator$hTag__ diff --git a/libjava/gnu/javax/swing/text/html/parser/htmlValidator.h b/libjava/gnu/javax/swing/text/html/parser/htmlValidator.h new file mode 100644 index 00000000000..9236c14e45a --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/htmlValidator.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_htmlValidator__ +#define __gnu_javax_swing_text_html_parser_htmlValidator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class htmlAttributeSet; + class htmlValidator; + namespace models + { + class node; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class AttributeList; + class DTD; + class Element; + class TagElement; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::htmlValidator : public ::java::lang::Object +{ + +public: + htmlValidator(::javax::swing::text::html::parser::DTD *); + virtual void closeAll(); + virtual jboolean closeTag(::javax::swing::text::html::parser::TagElement *); + virtual void openTag(::javax::swing::text::html::parser::TagElement *, ::gnu::javax::swing::text::html::parser::htmlAttributeSet *); + virtual void restart(); + virtual ::java::lang::Object * tagIsValidForContext(::javax::swing::text::html::parser::TagElement *); + virtual void validateTag(::javax::swing::text::html::parser::TagElement *, ::gnu::javax::swing::text::html::parser::htmlAttributeSet *); +public: // actually protected + virtual void checkContentModel(::javax::swing::text::html::parser::TagElement *, jboolean); + virtual void handleSupposedEndTag(::javax::swing::text::html::parser::Element *) = 0; + virtual void handleSupposedStartTag(::javax::swing::text::html::parser::Element *) = 0; + virtual void s_error(::java::lang::String *) = 0; + virtual void validateParameters(::javax::swing::text::html::parser::TagElement *, ::gnu::javax::swing::text::html::parser::htmlAttributeSet *); +private: + ::gnu::javax::swing::text::html::parser::models::node * getCurrentContentModel(); + void closeLast(); + void openFictionalTag(::javax::swing::text::html::parser::Element *); + void validateAttribute(::javax::swing::text::html::parser::TagElement *, ::gnu::javax::swing::text::html::parser::htmlAttributeSet *, ::java::util::Enumeration *); + void validateAttributeWithValueList(::javax::swing::text::html::parser::TagElement *, ::java::lang::Object *, ::javax::swing::text::html::parser::AttributeList *, ::java::lang::String *); + void validateNameOrIdAttribute(::javax::swing::text::html::parser::TagElement *, ::java::lang::Object *, ::java::lang::String *); + void validateNumberAttribute(::javax::swing::text::html::parser::TagElement *, ::java::lang::Object *, ::java::lang::String *); +public: // actually protected + ::javax::swing::text::html::parser::DTD * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dtd; + ::java::util::LinkedList * stack; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_htmlValidator__ diff --git a/libjava/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.h b/libjava/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.h new file mode 100644 index 00000000000..b83079044f4 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/models/PCDATAonly_model.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_models_PCDATAonly_model__ +#define __gnu_javax_swing_text_html_parser_models_PCDATAonly_model__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace models + { + class PCDATAonly_model; + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::models::PCDATAonly_model : public ::gnu::javax::swing::text::html::parser::models::node +{ + +public: + PCDATAonly_model(); + virtual ::java::lang::Object * show(::java::lang::Object *); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_models_PCDATAonly_model__ diff --git a/libjava/gnu/javax/swing/text/html/parser/models/TableRowContentModel.h b/libjava/gnu/javax/swing/text/html/parser/models/TableRowContentModel.h new file mode 100644 index 00000000000..6be57a051c9 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/models/TableRowContentModel.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_models_TableRowContentModel__ +#define __gnu_javax_swing_text_html_parser_models_TableRowContentModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace models + { + class TableRowContentModel; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + class Element; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::models::TableRowContentModel : public ::gnu::javax::swing::text::html::parser::models::node +{ + +public: + TableRowContentModel(::javax::swing::text::html::parser::DTD *); + virtual ::java::lang::Object * show(::java::lang::Object *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::javax::swing::text::html::parser::Element * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::models::node)))) TD; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_models_TableRowContentModel__ diff --git a/libjava/gnu/javax/swing/text/html/parser/models/list.h b/libjava/gnu/javax/swing/text/html/parser/models/list.h new file mode 100644 index 00000000000..6ddb166d00d --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/models/list.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_models_list__ +#define __gnu_javax_swing_text_html_parser_models_list__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace models + { + class list; + class node; + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::models::list : public ::gnu::javax::swing::text::html::parser::models::node +{ + +public: + list(jchar, jchar, JArray< ::gnu::javax::swing::text::html::parser::models::node * > *); + list(JArray< ::gnu::javax::swing::text::html::parser::models::node * > *); + virtual jboolean isClosed(); + virtual ::java::lang::Object * findFreeNode(); + virtual jboolean matches(JArray< ::java::lang::Object * > *); + virtual jboolean mustClose(); + virtual jboolean performMatch(::java::lang::Object *); + virtual void reset(); + virtual ::java::lang::Object * show(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual jboolean valid(); + virtual jboolean validPreliminary(); +public: // actually protected + virtual void close(); + virtual jboolean compare(::java::lang::Object *); +private: + static const jlong serialVersionUID = 1LL; +public: + static jboolean CLEAR; + JArray< ::gnu::javax::swing::text::html::parser::models::node * > * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::models::node)))) nodes; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_models_list__ diff --git a/libjava/gnu/javax/swing/text/html/parser/models/noTagModel.h b/libjava/gnu/javax/swing/text/html/parser/models/noTagModel.h new file mode 100644 index 00000000000..85320f40805 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/models/noTagModel.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_models_noTagModel__ +#define __gnu_javax_swing_text_html_parser_models_noTagModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace models + { + class noTagModel; + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::models::noTagModel : public ::gnu::javax::swing::text::html::parser::models::node +{ + +public: + noTagModel(JArray< ::java::lang::String * > *); + noTagModel(::java::lang::String *); + virtual ::java::lang::Object * show(::java::lang::Object *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::models::node)))) no; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_models_noTagModel__ diff --git a/libjava/gnu/javax/swing/text/html/parser/models/node.h b/libjava/gnu/javax/swing/text/html/parser/models/node.h new file mode 100644 index 00000000000..a0b135c9a86 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/models/node.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_models_node__ +#define __gnu_javax_swing_text_html_parser_models_node__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace models + { + class node; + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::models::node : public ::java::lang::Object +{ + +public: + node(jchar, jchar, ::java::lang::Object *); + virtual jboolean isClosed(); + virtual jboolean closePrevious(); + virtual ::java::lang::Object * findFreeNode(); + virtual jboolean mustClose(); + virtual jboolean performMatch(::java::lang::Object *); + virtual void reset(); + virtual ::java::lang::Object * show(::java::lang::Object *); + virtual jboolean silenceAllowed(); + virtual ::java::lang::String * toString(); + virtual jboolean valid(); + virtual jboolean validPreliminary(); +public: // actually protected + virtual void close(); + virtual jboolean compare(::java::lang::Object *); + virtual void matches(); +private: + static const jlong serialVersionUID = 1LL; +public: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) token; + jboolean _closed; + jchar binary; + jchar unary; + jint visits; + ::gnu::javax::swing::text::html::parser::models::node * previous; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_models_node__ diff --git a/libjava/gnu/javax/swing/text/html/parser/models/transformer.h b/libjava/gnu/javax/swing/text/html/parser/models/transformer.h new file mode 100644 index 00000000000..6f6470de346 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/models/transformer.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_models_transformer__ +#define __gnu_javax_swing_text_html_parser_models_transformer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace models + { + class node; + class transformer; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class ContentModel; + class DTD; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::models::transformer : public ::java::lang::Object +{ + +public: + transformer(); + static jint measureChainLength(::javax::swing::text::html::parser::ContentModel *); + static ::gnu::javax::swing::text::html::parser::models::node * transform(::javax::swing::text::html::parser::ContentModel *); + static ::gnu::javax::swing::text::html::parser::models::node * transform(::javax::swing::text::html::parser::ContentModel *, ::javax::swing::text::html::parser::DTD *); +private: + static jboolean isBinary(jint); + static jboolean isUnary(jint); + static void addtype(::gnu::javax::swing::text::html::parser::models::node *, jchar); + static ::gnu::javax::swing::text::html::parser::models::node * optionalTransform(::javax::swing::text::html::parser::ContentModel *, ::javax::swing::text::html::parser::DTD *); + static const jlong serialVersionUID = 1LL; +public: // actually protected + static ::java::lang::String * binary; + static ::java::lang::String * unary; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_models_transformer__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/Parser$1.h b/libjava/gnu/javax/swing/text/html/parser/support/Parser$1.h new file mode 100644 index 00000000000..5483b5a57ea --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/Parser$1.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_Parser$1__ +#define __gnu_javax_swing_text_html_parser_support_Parser$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class Parser; + class Parser$1; + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::Parser$1 : public ::java::lang::Object +{ + +public: // actually package-private + Parser$1(::gnu::javax::swing::text::html::parser::support::Parser *); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + ::gnu::javax::swing::text::html::parser::support::Parser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_Parser$1__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/Parser$2.h b/libjava/gnu/javax/swing/text/html/parser/support/Parser$2.h new file mode 100644 index 00000000000..ba78f9c73fc --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/Parser$2.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_Parser$2__ +#define __gnu_javax_swing_text_html_parser_support_Parser$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class Parser; + class Parser$2; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + class Element; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::Parser$2 : public ::gnu::javax::swing::text::html::parser::htmlValidator +{ + +public: // actually package-private + Parser$2(::gnu::javax::swing::text::html::parser::support::Parser *, ::javax::swing::text::html::parser::DTD *); +public: // actually protected + void s_error(::java::lang::String *); + void handleSupposedEndTag(::javax::swing::text::html::parser::Element *); + void handleSupposedStartTag(::javax::swing::text::html::parser::Element *); +public: // actually package-private + ::gnu::javax::swing::text::html::parser::support::Parser * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::htmlValidator)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_Parser$2__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/Parser.h b/libjava/gnu/javax/swing/text/html/parser/support/Parser.h new file mode 100644 index 00000000000..3bdc172d487 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/Parser.h @@ -0,0 +1,154 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_Parser__ +#define __gnu_javax_swing_text_html_parser_support_Parser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class htmlAttributeSet; + class htmlValidator; + namespace support + { + class Parser; + namespace low + { + class Token; + class pattern; + } + class parameterDefaulter; + class textPreProcessor; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class SimpleAttributeSet; + namespace html + { + class HTML$Tag; + namespace parser + { + class DTD; + class Element; + class TagElement; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::Parser : public ::gnu::javax::swing::text::html::parser::support::low::ReaderTokenizer +{ + +public: + Parser(::javax::swing::text::html::parser::DTD *); + virtual ::javax::swing::text::SimpleAttributeSet * getAttributes(); + virtual void error(::java::lang::String *); + virtual void error(::java::lang::String *, ::gnu::javax::swing::text::html::parser::support::low::Token *); + virtual void error(::java::lang::String *, ::java::lang::String *); + virtual void error(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void error(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void flushAttributes(); + virtual void parse(::java::io::Reader *); + virtual ::java::lang::String * parseDTDMarkup(); + virtual jboolean parseMarkupDeclarations(::java::lang::StringBuffer *); +public: // actually protected + virtual jint getCurrentLine(); + virtual void CDATA(jboolean); + virtual void Comment(); + virtual void Script(); + virtual void Sgml(); + virtual void Style(); + virtual void Tag(); + virtual void _handleText(); + virtual void append(::gnu::javax::swing::text::html::parser::support::low::Token *); + virtual void consume(::gnu::javax::swing::text::html::parser::support::low::pattern *); + virtual void endTag(jboolean); + virtual void handleComment(JArray< jchar > *); + virtual void handleEOFInComment(); + virtual void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleEndTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleError(jint, ::java::lang::String *); + virtual void handleStartTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleText(JArray< jchar > *); + virtual void handleTitle(JArray< jchar > *); + virtual ::javax::swing::text::html::parser::TagElement * makeTag(::javax::swing::text::html::parser::Element *); + virtual ::javax::swing::text::html::parser::TagElement * makeTag(::javax::swing::text::html::parser::Element *, jboolean); + virtual void markFirstTime(::javax::swing::text::html::parser::Element *); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * mustBe(jint); + virtual void noValueAttribute(::java::lang::String *, ::java::lang::String *); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * optional(jint); + virtual void parseDocument(); + virtual void readAttributes(::java::lang::String *); + virtual ::java::lang::String * resolveNamedEntity(::java::lang::String *); + virtual jchar resolveNumericEntity(::java::lang::String *); + virtual void restart(); + virtual void startTag(::javax::swing::text::html::parser::TagElement *); +private: + void _handleCompleteElement(::javax::swing::text::html::parser::TagElement *); + void _handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + void _handleEndTag(::javax::swing::text::html::parser::TagElement *); +public: // actually package-private + virtual void _handleEndTag_remaining(::javax::swing::text::html::parser::TagElement *); + virtual void _handleStartTag(::javax::swing::text::html::parser::TagElement *); +private: + void forciblyCloseTheTag(); + void handleComment(); + ::javax::swing::text::html::parser::TagElement * makeTagElement(::java::lang::String *, jboolean); + void readTillTokenE(jint); + void resolveAndAppendEntity(::gnu::javax::swing::text::html::parser::support::low::Token *); + void restOfTag(jboolean, ::gnu::javax::swing::text::html::parser::support::low::Token *, ::gnu::javax::swing::text::html::parser::support::low::Token *); + void startingTag(::javax::swing::text::html::parser::TagElement *); + void ws_error(); + jboolean isBlock(::javax::swing::text::html::HTML$Tag *); +public: + ::gnu::javax::swing::text::html::parser::support::low::Token * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::support::low::ReaderTokenizer)))) hTag; +public: // actually protected + ::javax::swing::text::html::parser::DTD * dtd; + jboolean strict; + jint preformatted; +private: + ::java::util::Set * documentTags; + ::java::lang::StringBuffer * buffer; + ::java::lang::StringBuffer * title; + ::gnu::javax::swing::text::html::parser::support::low::Token * t; + jboolean titleHandled; + jboolean titleOpen; +public: // actually package-private + ::gnu::javax::swing::text::html::parser::htmlAttributeSet * attributes; +private: + ::gnu::javax::swing::text::html::parser::htmlValidator * validator; + ::gnu::javax::swing::text::html::parser::support::parameterDefaulter * defaulter; + ::gnu::javax::swing::text::html::parser::support::textPreProcessor * textProcessor; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_Parser__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.h b/libjava/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.h new file mode 100644 index 00000000000..f442305c87e --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_gnuStringIntMapper__ +#define __gnu_javax_swing_text_html_parser_support_gnuStringIntMapper__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class gnuStringIntMapper; + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::gnuStringIntMapper : public ::java::lang::Object +{ + +public: + gnuStringIntMapper(); + virtual ::java::lang::String * get(jint); + virtual jint get(::java::lang::String *); +public: // actually protected + virtual void create() = 0; + virtual void add(::java::lang::String *, jint); +private: + void createTheMap(); + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) is_Map; + ::java::util::Map * si_Map; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_gnuStringIntMapper__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/Buffer.h b/libjava/gnu/javax/swing/text/html/parser/support/low/Buffer.h new file mode 100644 index 00000000000..98ccff8c531 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/Buffer.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_Buffer__ +#define __gnu_javax_swing_text_html_parser_support_low_Buffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class Buffer; + class Location; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::Buffer : public ::java::lang::Object +{ + +public: + Buffer(); + Buffer(::java::lang::String *); + virtual void getChars(jint, jint, JArray< jchar > *, jint); + virtual ::java::lang::String * getEndOfLineSequence(); + virtual void setLength(jint); + virtual ::gnu::javax::swing::text::html::parser::support::low::Location * getLocation(jint, jint); + virtual void append(jchar, jint); + virtual jchar charAt(jint); + virtual void delete$(jint, jint); + virtual void expand(); + virtual jint length(); + virtual void reset(); + virtual ::java::lang::String * toString(); + static jint INITIAL_SIZE; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) n_seen; + jboolean r_seen; +public: // actually package-private + JArray< jchar > * chr; + JArray< jint > * line; + JArray< jint > * position; + jint current_line; + jint length__; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_Buffer__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/Constants.h b/libjava/gnu/javax/swing/text/html/parser/support/low/Constants.h new file mode 100644 index 00000000000..3c21390f9d7 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/Constants.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_Constants__ +#define __gnu_javax_swing_text_html_parser_support_low_Constants__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class Buffer; + class Constants; + class Token; + class pattern; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::Constants : public ::java::lang::Object +{ + +public: + Constants(); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * endMatches(::gnu::javax::swing::text::html::parser::support::low::Buffer *); + static const jint BEGIN = 60; + static const jint END = 62; + static const jint EXCLAMATION = 33; + static const jint SLASH = 47; + static const jint EQ = 61; + static const jint AP = 39; + static const jint QUOT = 34; + static const jint DOUBLE_DASH = 1000; + static const jint STYLE = 1001; + static const jint SCRIPT = 1002; + static const jint WS = 1003; + static const jint ENTITY = 1004; + static const jint NUMTOKEN = 1005; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * COMMENT_OPEN; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * COMMENT_END; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * COMMENT_TRIPLEDASH_END; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * STYLE_OPEN; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * SCRIPT_OPEN; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * SGML; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * SCRIPT_CLOSE; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * STYLE_CLOSE; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * TAG; + static ::gnu::javax::swing::text::html::parser::support::low::pattern * TAG_CLOSE; + static const jint OTHER = 1999; +public: // actually package-private + static const jchar ETX = 3; +public: + static const jint EOF = 3; + static ::java::util::BitSet * bSINGLE_CHAR_TOKEN; + static ::java::util::BitSet * bSPECIAL; + static ::java::util::BitSet * bLETTER; + static ::java::util::BitSet * bDIGIT; + static ::java::util::BitSet * bLINEBREAK; + static ::java::util::BitSet * bWHITESPACE; + static ::java::util::BitSet * bQUOTING; + static ::java::util::BitSet * bNAME; + static const jint ENTITY_NAMED = 1; + static const jint ENTITY_NUMERIC = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_Constants__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/Location.h b/libjava/gnu/javax/swing/text/html/parser/support/low/Location.h new file mode 100644 index 00000000000..4903ffe756b --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/Location.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_Location__ +#define __gnu_javax_swing_text_html_parser_support_low_Location__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class Location; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::Location : public ::java::lang::Object +{ + +public: + Location(); + Location(jint); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) beginLine; + jint endLine; + jint endPosition; + jint startPosition; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_Location__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/ParseException.h b/libjava/gnu/javax/swing/text/html/parser/support/low/ParseException.h new file mode 100644 index 00000000000..ee0c9fcf9f9 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/ParseException.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_ParseException__ +#define __gnu_javax_swing_text_html_parser_support_low_ParseException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class ParseException; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::ParseException : public ::java::lang::RuntimeException +{ + +public: + ParseException(::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_ParseException__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/Queue.h b/libjava/gnu/javax/swing/text/html/parser/support/low/Queue.h new file mode 100644 index 00000000000..615dd9cb1ea --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/Queue.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_Queue__ +#define __gnu_javax_swing_text_html_parser_support_low_Queue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class Queue; + class Token; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::Queue : public ::java::lang::Object +{ + +public: + Queue(); + virtual jboolean isEmpty(); + virtual void add(::gnu::javax::swing::text::html::parser::support::low::Token *); + virtual void clear(); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * get(jint); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * next(); + virtual jint size(); +public: // actually package-private + JArray< ::gnu::javax::swing::text::html::parser::support::low::Token * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) m; + jint a; + jint b; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_Queue__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.h b/libjava/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.h new file mode 100644 index 00000000000..189d356f018 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_ReaderTokenizer__ +#define __gnu_javax_swing_text_html_parser_support_low_ReaderTokenizer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class Buffer; + class Queue; + class ReaderTokenizer; + class Token; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::ReaderTokenizer : public ::gnu::javax::swing::text::html::parser::support::low::Constants +{ + +public: + ReaderTokenizer(); + virtual ::java::lang::String * getEndOfLineSequence(); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * getNextToken(); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * getTokenAhead(jint); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * getTokenAhead(); + virtual void error(::java::lang::String *, ::gnu::javax::swing::text::html::parser::support::low::Token *); + virtual void mark(jboolean); + virtual void reset(::java::io::Reader *); + virtual void reset(); +public: // actually package-private + virtual void read(jint); + virtual void readToken(); + virtual ::gnu::javax::swing::text::html::parser::support::low::Token * tokenMatches(); +private: + void consumeBuffer(::gnu::javax::swing::text::html::parser::support::low::Token *); + ::gnu::javax::swing::text::html::parser::support::low::Token * eofToken(); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::support::low::Constants)))) advanced; + jboolean backupMode; +public: // actually package-private + ::gnu::javax::swing::text::html::parser::support::low::Buffer * buffer; + ::gnu::javax::swing::text::html::parser::support::low::Queue * backup; + ::gnu::javax::swing::text::html::parser::support::low::Queue * queue; + ::java::io::Reader * reader; + JArray< jchar > * charTokens; + JArray< ::java::lang::String * > * stringTokens; + jint readerPosition; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_ReaderTokenizer__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/Token.h b/libjava/gnu/javax/swing/text/html/parser/support/low/Token.h new file mode 100644 index 00000000000..f237ae43e0d --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/Token.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_Token__ +#define __gnu_javax_swing_text_html_parser_support_low_Token__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class Location; + class Token; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::Token : public ::java::lang::Object +{ + +public: + Token(); + Token(jint, ::gnu::javax::swing::text::html::parser::support::low::Location *); + Token(jint, jchar, ::gnu::javax::swing::text::html::parser::support::low::Location *); + Token(jint, ::java::lang::String *, ::gnu::javax::swing::text::html::parser::support::low::Location *); + Token(jint, jint, ::java::lang::String *, ::gnu::javax::swing::text::html::parser::support::low::Location *); + Token(::gnu::javax::swing::text::html::parser::support::low::Token *, ::gnu::javax::swing::text::html::parser::support::low::Token *); + virtual ::java::lang::String * getImage(); + virtual void appendTo(::java::lang::StringBuffer *); + virtual ::java::lang::String * toString(); + ::gnu::javax::swing::text::html::parser::support::low::Location * __attribute__((aligned(__alignof__( ::java::lang::Object)))) where; + jint category; + jint kind; +private: + ::java::lang::String * stringImage; + jchar charImage; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_Token__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/node.h b/libjava/gnu/javax/swing/text/html/parser/support/low/node.h new file mode 100644 index 00000000000..f113e7b1ff3 --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/node.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_node__ +#define __gnu_javax_swing_text_html_parser_support_low_node__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class node; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::node : public ::java::lang::Object +{ + +public: + node(jint, jboolean); + node(jint); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) optional; + jint kind; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_node__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/low/pattern.h b/libjava/gnu/javax/swing/text/html/parser/support/low/pattern.h new file mode 100644 index 00000000000..3010b526cef --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/low/pattern.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_low_pattern__ +#define __gnu_javax_swing_text_html_parser_support_low_pattern__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + namespace low + { + class ReaderTokenizer; + class node; + class pattern; + } + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::low::pattern : public ::java::lang::Object +{ + +public: + pattern(JArray< ::gnu::javax::swing::text::html::parser::support::low::node * > *); + virtual jboolean matches(::gnu::javax::swing::text::html::parser::support::low::ReaderTokenizer *); + JArray< ::gnu::javax::swing::text::html::parser::support::low::node * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nodes; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_low_pattern__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/parameterDefaulter.h b/libjava/gnu/javax/swing/text/html/parser/support/parameterDefaulter.h new file mode 100644 index 00000000000..664baecc92d --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/parameterDefaulter.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_parameterDefaulter__ +#define __gnu_javax_swing_text_html_parser_support_parameterDefaulter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class htmlAttributeSet; + namespace support + { + class parameterDefaulter; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::parameterDefaulter : public ::java::lang::Object +{ + +public: + parameterDefaulter(::javax::swing::text::html::parser::DTD *); + virtual ::gnu::javax::swing::text::html::parser::htmlAttributeSet * getDefaultParameters(::java::lang::String *); + ::javax::swing::text::html::parser::DTD * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dtd; +public: // actually package-private + ::java::util::Hashtable * sets; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_parameterDefaulter__ diff --git a/libjava/gnu/javax/swing/text/html/parser/support/textPreProcessor.h b/libjava/gnu/javax/swing/text/html/parser/support/textPreProcessor.h new file mode 100644 index 00000000000..cf5117b762c --- /dev/null +++ b/libjava/gnu/javax/swing/text/html/parser/support/textPreProcessor.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_text_html_parser_support_textPreProcessor__ +#define __gnu_javax_swing_text_html_parser_support_textPreProcessor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class textPreProcessor; + } + } + } + } + } + } + } +} + +class gnu::javax::swing::text::html::parser::support::textPreProcessor : public ::java::lang::Object +{ + +public: + textPreProcessor(); + virtual JArray< jchar > * preprocess(::java::lang::StringBuffer *); + virtual JArray< jchar > * preprocessPreformatted(::java::lang::StringBuffer *); +private: + static JArray< jchar > * toCharArray(::java::lang::StringBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_text_html_parser_support_textPreProcessor__ diff --git a/libjava/gnu/javax/swing/tree/GnuPath.h b/libjava/gnu/javax/swing/tree/GnuPath.h new file mode 100644 index 00000000000..3d36edac71f --- /dev/null +++ b/libjava/gnu/javax/swing/tree/GnuPath.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_swing_tree_GnuPath__ +#define __gnu_javax_swing_tree_GnuPath__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace tree + { + class GnuPath; + } + } + } + } +} + +class gnu::javax::swing::tree::GnuPath : public ::javax::swing::tree::TreePath +{ + +public: + GnuPath(JArray< ::java::lang::Object * > *, jboolean); + jboolean __attribute__((aligned(__alignof__( ::javax::swing::tree::TreePath)))) isLastChild; + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_swing_tree_GnuPath__ diff --git a/libjava/gnu/xml/aelfred2/JAXPFactory$JaxpParser.h b/libjava/gnu/xml/aelfred2/JAXPFactory$JaxpParser.h new file mode 100644 index 00000000000..42e8e0be030 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/JAXPFactory$JaxpParser.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_JAXPFactory$JaxpParser__ +#define __gnu_xml_aelfred2_JAXPFactory$JaxpParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class JAXPFactory$JaxpParser; + class XmlReader; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Parser; + class XMLReader; + namespace helpers + { + class XMLReaderAdapter; + } + } + } + } +} + +class gnu::xml::aelfred2::JAXPFactory$JaxpParser : public ::javax::xml::parsers::SAXParser +{ + +public: // actually package-private + JAXPFactory$JaxpParser(); +public: + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual ::org::xml::sax::Parser * getParser(); + virtual ::org::xml::sax::XMLReader * getXMLReader(); + virtual jboolean isNamespaceAware(); + virtual jboolean isValidating(); +private: + ::gnu::xml::aelfred2::XmlReader * __attribute__((aligned(__alignof__( ::javax::xml::parsers::SAXParser)))) ae2; + ::org::xml::sax::helpers::XMLReaderAdapter * parser; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_JAXPFactory$JaxpParser__ diff --git a/libjava/gnu/xml/aelfred2/JAXPFactory.h b/libjava/gnu/xml/aelfred2/JAXPFactory.h new file mode 100644 index 00000000000..8bffce6c848 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/JAXPFactory.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_JAXPFactory__ +#define __gnu_xml_aelfred2_JAXPFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class JAXPFactory; + } + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class SAXParser; + } + } + } +} + +class gnu::xml::aelfred2::JAXPFactory : public ::javax::xml::parsers::SAXParserFactory +{ + +public: + JAXPFactory(); + ::javax::xml::parsers::SAXParser * newSAXParser(); + void setFeature(::java::lang::String *, jboolean); + jboolean getFeature(::java::lang::String *); +private: + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::javax::xml::parsers::SAXParserFactory)))) flags; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_JAXPFactory__ diff --git a/libjava/gnu/xml/aelfred2/SAXDriver$Adapter.h b/libjava/gnu/xml/aelfred2/SAXDriver$Adapter.h new file mode 100644 index 00000000000..ac3cbea3a3c --- /dev/null +++ b/libjava/gnu/xml/aelfred2/SAXDriver$Adapter.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_SAXDriver$Adapter__ +#define __gnu_xml_aelfred2_SAXDriver$Adapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class SAXDriver$Adapter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class DocumentHandler; + class Locator; + } + } + } +} + +class gnu::xml::aelfred2::SAXDriver$Adapter : public ::java::lang::Object +{ + +public: // actually package-private + SAXDriver$Adapter(::org::xml::sax::DocumentHandler *); +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void skippedEntity(::java::lang::String *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void endDocument(); +private: + ::org::xml::sax::DocumentHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) docHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_SAXDriver$Adapter__ diff --git a/libjava/gnu/xml/aelfred2/SAXDriver$Attribute.h b/libjava/gnu/xml/aelfred2/SAXDriver$Attribute.h new file mode 100644 index 00000000000..3aca3900849 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/SAXDriver$Attribute.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_SAXDriver$Attribute__ +#define __gnu_xml_aelfred2_SAXDriver$Attribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class SAXDriver$Attribute; + } + } + } +} + +class gnu::xml::aelfred2::SAXDriver$Attribute : public ::java::lang::Object +{ + +public: // actually package-private + SAXDriver$Attribute(::java::lang::String *, ::java::lang::String *, jboolean); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * value; + ::java::lang::String * nameSpace; + ::java::lang::String * localName; + jboolean specified; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_SAXDriver$Attribute__ diff --git a/libjava/gnu/xml/aelfred2/SAXDriver.h b/libjava/gnu/xml/aelfred2/SAXDriver.h new file mode 100644 index 00000000000..aca07f72775 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/SAXDriver.h @@ -0,0 +1,167 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_SAXDriver__ +#define __gnu_xml_aelfred2_SAXDriver__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class SAXDriver; + class XmlParser; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class DocumentHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + namespace ext + { + class DeclHandler; + class DefaultHandler2; + class EntityResolver2; + class LexicalHandler; + } + namespace helpers + { + class NamespaceSupport; + } + } + } + } +} + +class gnu::xml::aelfred2::SAXDriver : public ::java::lang::Object +{ + +public: + SAXDriver(); +private: + void reset(); +public: + void setLocale(::java::util::Locale *); + ::org::xml::sax::EntityResolver * getEntityResolver(); + void setEntityResolver(::org::xml::sax::EntityResolver *); + ::org::xml::sax::DTDHandler * getDTDHandler(); + void setDTDHandler(::org::xml::sax::DTDHandler *); + void setDocumentHandler(::org::xml::sax::DocumentHandler *); + ::org::xml::sax::ContentHandler * getContentHandler(); + void setContentHandler(::org::xml::sax::ContentHandler *); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + ::org::xml::sax::ErrorHandler * getErrorHandler(); + void parse(::org::xml::sax::InputSource *); + void parse(::java::lang::String *); + jboolean getFeature(::java::lang::String *); +public: // actually package-private + ::org::xml::sax::ext::DeclHandler * getDeclHandler(); + jboolean resolveURIs(); +public: + ::java::lang::Object * getProperty(::java::lang::String *); + void setFeature(::java::lang::String *, jboolean); + void setProperty(::java::lang::String *, ::java::lang::Object *); +public: // actually package-private + void startDocument(); + void skippedEntity(::java::lang::String *); + ::org::xml::sax::InputSource * getExternalSubset(::java::lang::String *, ::java::lang::String *); + ::org::xml::sax::InputSource * resolveEntity(jboolean, ::java::lang::String *, ::org::xml::sax::InputSource *, ::java::lang::String *); + ::java::lang::String * absolutize(::java::lang::String *, ::java::lang::String *, jboolean); + void startExternalEntity(::java::lang::String *, ::java::lang::String *, jboolean); + void endExternalEntity(::java::lang::String *); + void startInternalEntity(::java::lang::String *); + void endInternalEntity(::java::lang::String *); + void doctypeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void endDoctype(); +private: + void declarePrefix(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + void attribute(::java::lang::String *, ::java::lang::String *, jboolean); + void startElement(::java::lang::String *); + void endElement(::java::lang::String *); + void startCDATA(); + void charData(JArray< jchar > *, jint, jint); + void endCDATA(); + void ignorableWhitespace(JArray< jchar > *, jint, jint); + void processingInstruction(::java::lang::String *, ::java::lang::String *); + void comment(JArray< jchar > *, jint, jint); + void fatal(::java::lang::String *); + void verror(::java::lang::String *); + void warn(::java::lang::String *); +public: + jint getLength(); + ::java::lang::String * getURI(jint); + ::java::lang::String * getLocalName(jint); + ::java::lang::String * getQName(jint); + ::java::lang::String * getName(jint); + ::java::lang::String * getType(jint); + ::java::lang::String * getValue(jint); + jint getIndex(::java::lang::String *, ::java::lang::String *); + jint getIndex(::java::lang::String *); + ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getType(::java::lang::String *); + ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getValue(::java::lang::String *); + jboolean isDeclared(jint); + jboolean isDeclared(::java::lang::String *); + jboolean isDeclared(::java::lang::String *, ::java::lang::String *); + jboolean isSpecified(jint); + jboolean isSpecified(::java::lang::String *, ::java::lang::String *); + jboolean isSpecified(::java::lang::String *); + ::java::lang::String * getPublicId(); + ::java::lang::String * getSystemId(); + jint getLineNumber(); + jint getColumnNumber(); +private: + ::org::xml::sax::ext::DefaultHandler2 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) base; + ::gnu::xml::aelfred2::XmlParser * parser; + ::org::xml::sax::EntityResolver * entityResolver; + ::org::xml::sax::ext::EntityResolver2 * resolver2; + ::org::xml::sax::ContentHandler * contentHandler; + ::org::xml::sax::DTDHandler * dtdHandler; + ::org::xml::sax::ErrorHandler * errorHandler; + ::org::xml::sax::ext::DeclHandler * declHandler; + ::org::xml::sax::ext::LexicalHandler * lexicalHandler; + ::java::lang::String * elementName; + ::java::util::Stack * entityStack; + ::java::util::List * attributesList; + jboolean namespaces; + jboolean xmlNames; + jboolean extGE; + jboolean extPE; + jboolean resolveAll; + jboolean useResolver2; +public: // actually package-private + jboolean stringInterning; +private: + jint attributeCount; + jboolean attributes; + JArray< ::java::lang::String * > * nsTemp; + ::org::xml::sax::helpers::NamespaceSupport * prefixStack; +public: // actually package-private + static ::java::lang::String * FEATURE; + static ::java::lang::String * PROPERTY; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_SAXDriver__ diff --git a/libjava/gnu/xml/aelfred2/XmlParser$AttributeDecl.h b/libjava/gnu/xml/aelfred2/XmlParser$AttributeDecl.h new file mode 100644 index 00000000000..4baac80e141 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlParser$AttributeDecl.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlParser$AttributeDecl__ +#define __gnu_xml_aelfred2_XmlParser$AttributeDecl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class XmlParser$AttributeDecl; + } + } + } +} + +class gnu::xml::aelfred2::XmlParser$AttributeDecl : public ::java::lang::Object +{ + +public: // actually package-private + XmlParser$AttributeDecl(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::java::lang::String * value; + jint valueType; + ::java::lang::String * enumeration; + ::java::lang::String * defaultValue; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlParser$AttributeDecl__ diff --git a/libjava/gnu/xml/aelfred2/XmlParser$ElementDecl.h b/libjava/gnu/xml/aelfred2/XmlParser$ElementDecl.h new file mode 100644 index 00000000000..8e992e1ca1a --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlParser$ElementDecl.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlParser$ElementDecl__ +#define __gnu_xml_aelfred2_XmlParser$ElementDecl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class XmlParser$ElementDecl; + } + } + } +} + +class gnu::xml::aelfred2::XmlParser$ElementDecl : public ::java::lang::Object +{ + +public: // actually package-private + XmlParser$ElementDecl(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) contentType; + ::java::lang::String * contentModel; + ::java::util::HashMap * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlParser$ElementDecl__ diff --git a/libjava/gnu/xml/aelfred2/XmlParser$EntityInfo.h b/libjava/gnu/xml/aelfred2/XmlParser$EntityInfo.h new file mode 100644 index 00000000000..5c4701a4096 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlParser$EntityInfo.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlParser$EntityInfo__ +#define __gnu_xml_aelfred2_XmlParser$EntityInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class XmlParser$EntityInfo; + class XmlParser$ExternalIdentifiers; + } + } + } +} + +class gnu::xml::aelfred2::XmlParser$EntityInfo : public ::java::lang::Object +{ + +public: // actually package-private + XmlParser$EntityInfo(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::gnu::xml::aelfred2::XmlParser$ExternalIdentifiers * ids; + ::java::lang::String * value; + ::java::lang::String * notationName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlParser$EntityInfo__ diff --git a/libjava/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.h b/libjava/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.h new file mode 100644 index 00000000000..a91f6496f97 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlParser$ExternalIdentifiers__ +#define __gnu_xml_aelfred2_XmlParser$ExternalIdentifiers__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class XmlParser$ExternalIdentifiers; + } + } + } +} + +class gnu::xml::aelfred2::XmlParser$ExternalIdentifiers : public ::java::lang::Object +{ + +public: // actually package-private + XmlParser$ExternalIdentifiers(); + XmlParser$ExternalIdentifiers(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) publicId; + ::java::lang::String * systemId; + ::java::lang::String * baseUri; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlParser$ExternalIdentifiers__ diff --git a/libjava/gnu/xml/aelfred2/XmlParser$Input.h b/libjava/gnu/xml/aelfred2/XmlParser$Input.h new file mode 100644 index 00000000000..feaf39e5f92 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlParser$Input.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlParser$Input__ +#define __gnu_xml_aelfred2_XmlParser$Input__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class XmlParser$Input; + } + } + } + namespace java + { + namespace net + { + class URLConnection; + } + } +} + +class gnu::xml::aelfred2::XmlParser$Input : public ::java::lang::Object +{ + +public: // actually package-private + XmlParser$Input(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) sourceType; + ::java::net::URLConnection * externalEntity; + JArray< jchar > * readBuffer; + jint readBufferPos; + jint readBufferLength; + jint line; + jint encoding; + jint readBufferOverflow; + ::java::io::InputStream * is; + jint currentByteCount; + jint column; + ::java::io::Reader * reader; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlParser$Input__ diff --git a/libjava/gnu/xml/aelfred2/XmlParser.h b/libjava/gnu/xml/aelfred2/XmlParser.h new file mode 100644 index 00000000000..baf73193b6d --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlParser.h @@ -0,0 +1,274 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlParser__ +#define __gnu_xml_aelfred2_XmlParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class SAXDriver; + class XmlParser; + class XmlParser$AttributeDecl; + class XmlParser$ElementDecl; + class XmlParser$ExternalIdentifiers; + } + } + } + namespace java + { + namespace net + { + class URLConnection; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class gnu::xml::aelfred2::XmlParser : public ::java::lang::Object +{ + +public: // actually package-private + XmlParser(); + void setHandler(::gnu::xml::aelfred2::SAXDriver *); + void doParse(::java::lang::String *, ::java::lang::String *, ::java::io::Reader *, ::java::io::InputStream *, ::java::lang::String *); +private: + void error(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void error(::java::lang::String *, jchar, ::java::lang::String *); + void error(::java::lang::String *); + void parseDocument(); + void parseComment(); + void parsePI(); + void parseCDSect(); + jboolean parseProlog(); + void checkLegalVersion(::java::lang::String *); + ::java::lang::String * parseXMLDecl(jboolean); + ::java::lang::String * parseTextDecl(jboolean); + void setupDecoding(::java::lang::String *); + void parseMisc(); + void parseDoctypedecl(); + void parseMarkupdecl(); + void parseElement(jboolean); + void parseAttribute(::java::lang::String *); + void parseEq(); + void parseETag(); + void parseContent(); + void parseElementDecl(); + void parseContentspec(::java::lang::String *); + void parseElements(JArray< jchar > *); + void parseCp(); + void parseMixed(JArray< jchar > *); + void parseAttlistDecl(); + void parseAttDef(::java::lang::String *); + ::java::lang::String * readAttType(); + void parseEnumeration(jboolean); + void parseNotationType(); + void parseDefault(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void parseConditionalSect(JArray< jchar > *); + void parseCharRef(); + void tryReadCharRef(); + void parseCharRef(jboolean); + void parseEntityRef(jboolean); + void parsePEReference(); + void parseEntityDecl(); + void parseNotationDecl(); + void parseCharData(); + void requireWhitespace(); + void skipWhitespace(); + ::java::lang::String * readNmtoken(jboolean); + static jboolean isExtender(jchar); + ::java::lang::String * readLiteral(jint); + ::gnu::xml::aelfred2::XmlParser$ExternalIdentifiers * readExternalIds(jboolean, jboolean); + jboolean isWhitespace(jchar); + void dataBufferAppend(jchar); + void dataBufferAppend(::java::lang::String *); + void dataBufferAppend(JArray< jchar > *, jint, jint); + void dataBufferNormalize(); + ::java::lang::String * dataBufferToString(); + void dataBufferFlush(); + void require(::java::lang::String *); + void require(jchar); +public: + ::java::lang::String * intern(JArray< jchar > *, jint, jint); +private: + ::java::lang::Object * extendArray(::java::lang::Object *, jint, jint); +public: // actually package-private + jboolean isStandalone(); +private: + jint getContentType(::gnu::xml::aelfred2::XmlParser$ElementDecl *, jint); +public: + jint getElementContentType(::java::lang::String *); +private: + void setElement(::java::lang::String *, jint, ::java::lang::String *, ::java::util::HashMap *); + ::java::util::HashMap * getElementAttributes(::java::lang::String *); + ::java::util::Iterator * declaredAttributes(::gnu::xml::aelfred2::XmlParser$ElementDecl *); +public: + ::java::util::Iterator * declaredAttributes(::java::lang::String *); + ::java::lang::String * getAttributeType(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getAttributeEnumeration(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getAttributeDefaultValue(::java::lang::String *, ::java::lang::String *); + jint getAttributeDefaultValueType(::java::lang::String *, ::java::lang::String *); +private: + void setAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jint); + ::gnu::xml::aelfred2::XmlParser$AttributeDecl * getAttribute(::java::lang::String *, ::java::lang::String *); +public: + jint getEntityType(::java::lang::String *); + ::gnu::xml::aelfred2::XmlParser$ExternalIdentifiers * getEntityIds(::java::lang::String *); + ::java::lang::String * getEntityValue(::java::lang::String *); +private: + void setInternalEntity(::java::lang::String *, ::java::lang::String *); + void setExternalEntity(::java::lang::String *, jint, ::gnu::xml::aelfred2::XmlParser$ExternalIdentifiers *, ::java::lang::String *); + void setNotation(::java::lang::String *, ::gnu::xml::aelfred2::XmlParser$ExternalIdentifiers *); +public: + jint getLineNumber(); + jint getColumnNumber(); +private: + jchar readCh(); + void unread(jchar); + void unread(JArray< jchar > *, jint); + void pushURL(jboolean, ::java::lang::String *, ::gnu::xml::aelfred2::XmlParser$ExternalIdentifiers *, ::java::io::Reader *, ::java::io::InputStream *, ::java::lang::String *, jboolean); + ::java::lang::String * tryEncodingDecl(jboolean); + void detectEncoding(); + static jboolean tryEncoding(JArray< jbyte > *, jbyte, jbyte, jbyte, jbyte); + static jboolean tryEncoding(JArray< jbyte > *, jbyte, jbyte); + void pushString(::java::lang::String *, ::java::lang::String *); + void pushCharArray(::java::lang::String *, JArray< jchar > *, jint, jint); + void pushInput(::java::lang::String *); + void popInput(); + jboolean tryRead(jchar); + jboolean tryRead(::java::lang::String *); + jboolean tryRead(JArray< jchar > *); + jboolean tryWhitespace(); + void parseUntil(::java::lang::String *); + void parseUntil(JArray< jchar > *); + void prefetchASCIIEncodingDecl(); + void readDataChunk(); + void filterCR(jboolean); + void copyUtf8ReadBuffer(jint); + jint getNextUtf8Byte(jint, jint); + void copyIso8859_1ReadBuffer(jint, jchar); + void copyUcs2ReadBuffer(jint, jint, jint); + void copyUcs4ReadBuffer(jint, jint, jint, jint, jint); + void encodingError(::java::lang::String *, jint, jint); + void initializeVariables(); + static const jboolean USE_CHEATS = 1; +public: + static const jint CONTENT_UNDECLARED = 0; + static const jint CONTENT_ANY = 1; + static const jint CONTENT_EMPTY = 2; + static const jint CONTENT_MIXED = 3; + static const jint CONTENT_ELEMENTS = 4; + static const jint ENTITY_UNDECLARED = 0; + static const jint ENTITY_INTERNAL = 1; + static const jint ENTITY_NDATA = 2; + static const jint ENTITY_TEXT = 3; +private: + static const jint ENCODING_EXTERNAL = 0; + static const jint ENCODING_UTF_8 = 1; + static const jint ENCODING_ISO_8859_1 = 2; + static const jint ENCODING_UCS_2_12 = 3; + static const jint ENCODING_UCS_2_21 = 4; + static const jint ENCODING_UCS_4_1234 = 5; + static const jint ENCODING_UCS_4_4321 = 6; + static const jint ENCODING_UCS_4_2143 = 7; + static const jint ENCODING_UCS_4_3412 = 8; + static const jint ENCODING_ASCII = 9; +public: + static const jint ATTRIBUTE_DEFAULT_UNDECLARED = 30; + static const jint ATTRIBUTE_DEFAULT_SPECIFIED = 31; + static const jint ATTRIBUTE_DEFAULT_IMPLIED = 32; + static const jint ATTRIBUTE_DEFAULT_REQUIRED = 33; + static const jint ATTRIBUTE_DEFAULT_FIXED = 34; +private: + static const jint INPUT_NONE = 0; + static const jint INPUT_INTERNAL = 1; + static const jint INPUT_STREAM = 3; + static const jint INPUT_READER = 5; + static const jint LIT_ENTITY_REF = 2; + static const jint LIT_NORMALIZE = 4; + static const jint LIT_ATTRIBUTE = 8; + static const jint LIT_DISABLE_PE = 16; + static const jint LIT_DISABLE_CREF = 32; + static const jint LIT_DISABLE_EREF = 64; + static const jint LIT_PUBID = 256; + static const jint CONTEXT_NORMAL = 0; + static const jint CONTEXT_LITERAL = 1; +public: // actually package-private + static jboolean uriWarnings; +private: + ::gnu::xml::aelfred2::SAXDriver * __attribute__((aligned(__alignof__( ::java::lang::Object)))) handler; + ::java::io::Reader * reader; + ::java::io::InputStream * is; + jint line; + jint column; + jint sourceType; + ::java::util::LinkedList * inputStack; + ::java::net::URLConnection * externalEntity; + jint encoding; + jint currentByteCount; + ::org::xml::sax::InputSource * scratch; + JArray< jchar > * readBuffer; + jint readBufferPos; + jint readBufferLength; + jint readBufferOverflow; + static const jint READ_BUFFER_MAX = 16384; + JArray< jbyte > * rawReadBuffer; + static jint DATA_BUFFER_INITIAL; + JArray< jchar > * dataBuffer; + jint dataBufferPos; + static jint NAME_BUFFER_INITIAL; + JArray< jchar > * nameBuffer; + jint nameBufferPos; + jboolean docIsStandalone; + ::java::util::HashMap * elementInfo; + ::java::util::HashMap * entityInfo; + ::java::util::HashMap * notationInfo; + jboolean skippedPE; + ::java::lang::String * currentElement; + jint currentElementContent; + ::java::util::LinkedList * entityStack; + jboolean inLiteral; + jboolean expandPE; + jboolean peIsError; + jboolean doReport; + static const jint SYMBOL_TABLE_LENGTH = 2039; + JArray< JArray< ::java::lang::Object * > * > * symbolTable; + JArray< ::java::lang::String * > * tagAttributes; + jint tagAttributePos; + jboolean sawCR; + jboolean inCDATA; + static const jint XML_10 = 0; + static const jint XML_11 = 1; + jint xmlVersion; +public: // actually package-private + static JArray< jchar > * startDelimComment; + static JArray< jchar > * endDelimComment; + static JArray< jchar > * startDelimPI; + static JArray< jchar > * endDelimPI; + static JArray< jchar > * endDelimCDATA; +private: + jboolean isDirtyCurrentElement; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlParser__ diff --git a/libjava/gnu/xml/aelfred2/XmlReader$FatalErrorHandler.h b/libjava/gnu/xml/aelfred2/XmlReader$FatalErrorHandler.h new file mode 100644 index 00000000000..2e8de94fe3c --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlReader$FatalErrorHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlReader$FatalErrorHandler__ +#define __gnu_xml_aelfred2_XmlReader$FatalErrorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class XmlReader$FatalErrorHandler; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class SAXParseException; + } + } + } +} + +class gnu::xml::aelfred2::XmlReader$FatalErrorHandler : public ::org::xml::sax::ext::DefaultHandler2 +{ + +public: // actually package-private + XmlReader$FatalErrorHandler(); +public: + virtual void error(::org::xml::sax::SAXParseException *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlReader$FatalErrorHandler__ diff --git a/libjava/gnu/xml/aelfred2/XmlReader.h b/libjava/gnu/xml/aelfred2/XmlReader.h new file mode 100644 index 00000000000..3d0f5ed3dc3 --- /dev/null +++ b/libjava/gnu/xml/aelfred2/XmlReader.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_aelfred2_XmlReader__ +#define __gnu_xml_aelfred2_XmlReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace aelfred2 + { + class SAXDriver; + class XmlReader; + } + namespace pipeline + { + class EventFilter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + } + } + } +} + +class gnu::xml::aelfred2::XmlReader : public ::java::lang::Object +{ + +public: + XmlReader(); + XmlReader(jboolean); + ::org::xml::sax::ContentHandler * getContentHandler(); + void setContentHandler(::org::xml::sax::ContentHandler *); + ::org::xml::sax::DTDHandler * getDTDHandler(); + void setDTDHandler(::org::xml::sax::DTDHandler *); + ::org::xml::sax::EntityResolver * getEntityResolver(); + void setEntityResolver(::org::xml::sax::EntityResolver *); + ::org::xml::sax::ErrorHandler * getErrorHandler(); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + void setProperty(::java::lang::String *, ::java::lang::Object *); + ::java::lang::Object * getProperty(::java::lang::String *); +private: + void forceValidating(); +public: + void setFeature(::java::lang::String *, jboolean); + jboolean getFeature(::java::lang::String *); + void setLocale(::java::util::Locale *); + void parse(::java::lang::String *); + void parse(::org::xml::sax::InputSource *); +private: + ::gnu::xml::aelfred2::SAXDriver * __attribute__((aligned(__alignof__( ::java::lang::Object)))) aelfred2; + ::gnu::xml::pipeline::EventFilter * filter; + jboolean isValidating; + jboolean active; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_aelfred2_XmlReader__ diff --git a/libjava/gnu/xml/dom/Consumer$Backdoor.h b/libjava/gnu/xml/dom/Consumer$Backdoor.h new file mode 100644 index 00000000000..fcfd53cbc39 --- /dev/null +++ b/libjava/gnu/xml/dom/Consumer$Backdoor.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_Consumer$Backdoor__ +#define __gnu_xml_dom_Consumer$Backdoor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class Consumer$Backdoor; + class DomDoctype; + } + namespace pipeline + { + class DomConsumer; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Text; + } + } + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::xml::dom::Consumer$Backdoor : public ::gnu::xml::pipeline::DomConsumer$Handler +{ + +public: // actually protected + Consumer$Backdoor(::gnu::xml::pipeline::DomConsumer *); +private: + ::gnu::xml::dom::DomDoctype * getDoctype(); +public: + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endDTD(); + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually protected + virtual ::org::w3c::dom::Text * createText(jboolean, JArray< jchar > *, jint, jint); +public: + virtual void elementDecl(::java::lang::String *, ::java::lang::String *); + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void startDocument(); + virtual void endDocument(); + virtual jboolean canPopulateEntityRefs(); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_Consumer$Backdoor__ diff --git a/libjava/gnu/xml/dom/Consumer.h b/libjava/gnu/xml/dom/Consumer.h new file mode 100644 index 00000000000..fdcfafe09c5 --- /dev/null +++ b/libjava/gnu/xml/dom/Consumer.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_Consumer__ +#define __gnu_xml_dom_Consumer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class Consumer; + } + namespace pipeline + { + class EventConsumer; + } + } + } +} + +class gnu::xml::dom::Consumer : public ::gnu::xml::pipeline::DomConsumer +{ + +public: + Consumer(); + Consumer(::gnu::xml::pipeline::EventConsumer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_Consumer__ diff --git a/libjava/gnu/xml/dom/DTDAttributeTypeInfo.h b/libjava/gnu/xml/dom/DTDAttributeTypeInfo.h new file mode 100644 index 00000000000..611a12be4cb --- /dev/null +++ b/libjava/gnu/xml/dom/DTDAttributeTypeInfo.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DTDAttributeTypeInfo__ +#define __gnu_xml_dom_DTDAttributeTypeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DTDAttributeTypeInfo; + } + } + } +} + +class gnu::xml::dom::DTDAttributeTypeInfo : public ::java::lang::Object +{ + +public: // actually package-private + DTDAttributeTypeInfo(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getTypeName(); + virtual ::java::lang::String * getTypeNamespace(); + virtual jboolean isDerivedFrom(::java::lang::String *, ::java::lang::String *, jint); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) elementName; + ::java::lang::String * name; + ::java::lang::String * type; + ::java::lang::String * mode; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DTDAttributeTypeInfo__ diff --git a/libjava/gnu/xml/dom/DTDElementTypeInfo.h b/libjava/gnu/xml/dom/DTDElementTypeInfo.h new file mode 100644 index 00000000000..35656bbe970 --- /dev/null +++ b/libjava/gnu/xml/dom/DTDElementTypeInfo.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DTDElementTypeInfo__ +#define __gnu_xml_dom_DTDElementTypeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DTDAttributeTypeInfo; + class DTDElementTypeInfo; + } + } + } +} + +class gnu::xml::dom::DTDElementTypeInfo : public ::java::lang::Object +{ + +public: // actually package-private + DTDElementTypeInfo(::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getTypeName(); + virtual ::java::lang::String * getTypeNamespace(); + virtual jboolean isDerivedFrom(::java::lang::String *, ::java::lang::String *, jint); +public: // actually package-private + virtual ::gnu::xml::dom::DTDAttributeTypeInfo * getAttributeTypeInfo(::java::lang::String *); + virtual void setAttributeTypeInfo(::java::lang::String *, ::gnu::xml::dom::DTDAttributeTypeInfo *); + virtual ::java::util::Iterator * attributes(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * model; + ::java::util::HashMap * attributes__; + ::java::lang::String * idAttrName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DTDElementTypeInfo__ diff --git a/libjava/gnu/xml/dom/DomAttr.h b/libjava/gnu/xml/dom/DomAttr.h new file mode 100644 index 00000000000..e14ac0f9529 --- /dev/null +++ b/libjava/gnu/xml/dom/DomAttr.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomAttr__ +#define __gnu_xml_dom_DomAttr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomAttr; + class DomDocument; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + class Node; + class TypeInfo; + } + } + } +} + +class gnu::xml::dom::DomAttr : public ::gnu::xml::dom::DomNsNode +{ + +public: // actually protected + DomAttr(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getName(); + virtual jboolean getSpecified(); + virtual void setSpecified(jboolean); + virtual ::java::lang::String * getNodeValue(); + virtual void setValue(::java::lang::String *); + virtual ::java::lang::String * getValue(); + virtual void setNodeValue(::java::lang::String *); + virtual ::org::w3c::dom::Node * getFirstChild(); + virtual ::org::w3c::dom::Node * getLastChild(); + virtual ::org::w3c::dom::Node * item(jint); + virtual ::org::w3c::dom::Element * getOwnerElement(); + virtual ::org::w3c::dom::Node * getNextSibling(); + virtual ::org::w3c::dom::Node * getPreviousSibling(); + virtual ::org::w3c::dom::Node * getParentNode(); + virtual void setOwnerElement(::org::w3c::dom::Element *); + virtual ::java::lang::String * getBaseURI(); + virtual ::java::lang::Object * clone(); +private: + void mutating(::java::lang::String *, ::java::lang::String *, jshort); +public: + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo(); + virtual jboolean isId(); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNsNode)))) specified; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomAttr__ diff --git a/libjava/gnu/xml/dom/DomCDATASection.h b/libjava/gnu/xml/dom/DomCDATASection.h new file mode 100644 index 00000000000..9cfb8e625bc --- /dev/null +++ b/libjava/gnu/xml/dom/DomCDATASection.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomCDATASection__ +#define __gnu_xml_dom_DomCDATASection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomCDATASection; + class DomDocument; + } + } + } +} + +class gnu::xml::dom::DomCDATASection : public ::gnu::xml::dom::DomText +{ + +public: // actually protected + DomCDATASection(::gnu::xml::dom::DomDocument *, ::java::lang::String *); + DomCDATASection(::gnu::xml::dom::DomDocument *, JArray< jchar > *, jint, jint); +public: + virtual ::java::lang::String * getNodeName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomCDATASection__ diff --git a/libjava/gnu/xml/dom/DomCharacterData$EmptyNodeList.h b/libjava/gnu/xml/dom/DomCharacterData$EmptyNodeList.h new file mode 100644 index 00000000000..e9c2ea119be --- /dev/null +++ b/libjava/gnu/xml/dom/DomCharacterData$EmptyNodeList.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomCharacterData$EmptyNodeList__ +#define __gnu_xml_dom_DomCharacterData$EmptyNodeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomCharacterData$EmptyNodeList; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::DomCharacterData$EmptyNodeList : public ::java::lang::Object +{ + +public: // actually package-private + DomCharacterData$EmptyNodeList(); +public: + virtual jint getLength(); + virtual ::org::w3c::dom::Node * item(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomCharacterData$EmptyNodeList__ diff --git a/libjava/gnu/xml/dom/DomCharacterData.h b/libjava/gnu/xml/dom/DomCharacterData.h new file mode 100644 index 00000000000..7ca5f2ce563 --- /dev/null +++ b/libjava/gnu/xml/dom/DomCharacterData.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomCharacterData__ +#define __gnu_xml_dom_DomCharacterData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomCharacterData; + class DomDocument; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class NodeList; + } + } + } +} + +class gnu::xml::dom::DomCharacterData : public ::gnu::xml::dom::DomNode +{ + +public: // actually package-private + DomCharacterData(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *); + DomCharacterData(jshort, ::gnu::xml::dom::DomDocument *, JArray< jchar > *, jint, jint); +public: + virtual void appendData(::java::lang::String *); + virtual void deleteData(jint, jint); + virtual ::java::lang::String * getNodeValue(); + virtual ::java::lang::String * getData(); + virtual jint getLength(); + virtual void insertData(jint, ::java::lang::String *); + virtual void replaceData(jint, jint, ::java::lang::String *); + virtual void setNodeValue(::java::lang::String *); + virtual void setData(::java::lang::String *); + virtual ::java::lang::String * substringData(jint, jint); + virtual ::org::w3c::dom::NodeList * getChildNodes(); + virtual ::java::lang::String * getBaseURI(); +private: + void mutating(::java::lang::String *); +public: // actually package-private + static ::org::w3c::dom::NodeList * CHILD_NODES; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) text; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomCharacterData__ diff --git a/libjava/gnu/xml/dom/DomComment.h b/libjava/gnu/xml/dom/DomComment.h new file mode 100644 index 00000000000..99c4a70e130 --- /dev/null +++ b/libjava/gnu/xml/dom/DomComment.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomComment__ +#define __gnu_xml_dom_DomComment__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomComment; + class DomDocument; + } + } + } +} + +class gnu::xml::dom::DomComment : public ::gnu::xml::dom::DomCharacterData +{ + +public: // actually protected + DomComment(::gnu::xml::dom::DomDocument *, ::java::lang::String *); +public: + virtual ::java::lang::String * getNodeName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomComment__ diff --git a/libjava/gnu/xml/dom/DomDOMException.h b/libjava/gnu/xml/dom/DomDOMException.h new file mode 100644 index 00000000000..5cb1e504d10 --- /dev/null +++ b/libjava/gnu/xml/dom/DomDOMException.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomDOMException__ +#define __gnu_xml_dom_DomDOMException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDOMException; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::DomDOMException : public ::org::w3c::dom::DOMException +{ + +public: + DomDOMException(jshort); + DomDOMException(jshort, ::java::lang::String *, ::org::w3c::dom::Node *, jint); + virtual ::org::w3c::dom::Node * getNode(); + virtual ::java::lang::String * getData(); + virtual jint getValue(); + virtual ::java::lang::String * getMessage(); +private: + static ::java::lang::String * diagnostic(jshort); + ::java::lang::String * __attribute__((aligned(__alignof__( ::org::w3c::dom::DOMException)))) data; + ::org::w3c::dom::Node * node; + jint value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomDOMException__ diff --git a/libjava/gnu/xml/dom/DomDoctype.h b/libjava/gnu/xml/dom/DomDoctype.h new file mode 100644 index 00000000000..c8ee6620994 --- /dev/null +++ b/libjava/gnu/xml/dom/DomDoctype.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomDoctype__ +#define __gnu_xml_dom_DomDoctype__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DTDAttributeTypeInfo; + class DTDElementTypeInfo; + class DomDoctype; + class DomDocument; + class DomNamedNodeMap; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class Entity; + class NamedNodeMap; + class Node; + class Notation; + } + } + } +} + +class gnu::xml::dom::DomDoctype : public ::gnu::xml::dom::DomExtern +{ + +public: // actually protected + DomDoctype(::org::w3c::dom::DOMImplementation *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + DomDoctype(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual ::org::w3c::dom::NamedNodeMap * getEntities(); + virtual ::org::w3c::dom::Entity * declareEntity(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::NamedNodeMap * getNotations(); + virtual ::org::w3c::dom::Notation * declareNotation(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getInternalSubset(); + virtual ::java::lang::String * getBaseURI(); + virtual void makeReadonly(); +public: // actually package-private + virtual void setOwner(::gnu::xml::dom::DomDocument *); +public: + virtual jboolean supports(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::DOMImplementation * getImplementation(); + virtual void elementDecl(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual ::gnu::xml::dom::DTDElementTypeInfo * getElementTypeInfo(::java::lang::String *); +public: + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual ::gnu::xml::dom::DTDAttributeTypeInfo * getAttributeTypeInfo(::java::lang::String *, ::java::lang::String *); + virtual jboolean hasIds(); +public: + virtual jboolean isSameNode(::org::w3c::dom::Node *); + virtual ::java::lang::Object * clone(); +private: + ::gnu::xml::dom::DomNamedNodeMap * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomExtern)))) notations; + ::gnu::xml::dom::DomNamedNodeMap * entities; + ::org::w3c::dom::DOMImplementation * implementation; + ::java::lang::String * subset; + ::java::util::HashMap * elements; + jboolean ids; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomDoctype__ diff --git a/libjava/gnu/xml/dom/DomDocument.h b/libjava/gnu/xml/dom/DomDocument.h new file mode 100644 index 00000000000..e11ce621b4b --- /dev/null +++ b/libjava/gnu/xml/dom/DomDocument.h @@ -0,0 +1,154 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomDocument__ +#define __gnu_xml_dom_DomDocument__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomDocumentConfiguration; + class DomNode; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class CDATASection; + class Comment; + class DOMConfiguration; + class DOMImplementation; + class DocumentFragment; + class DocumentType; + class Element; + class EntityReference; + class Node; + class ProcessingInstruction; + class Text; + namespace traversal + { + class NodeFilter; + class NodeIterator; + class TreeWalker; + } + namespace xpath + { + class XPathExpression; + class XPathNSResolver; + } + } + } + } +} + +class gnu::xml::dom::DomDocument : public ::gnu::xml::dom::DomNode +{ + +public: + DomDocument(); +public: // actually protected + DomDocument(::org::w3c::dom::DOMImplementation *); +public: + virtual void setBuilding(jboolean); + virtual void setCheckWellformedness(jboolean); + virtual void setCheckingCharacters(jboolean); + virtual ::java::lang::String * getNodeName(); + virtual ::org::w3c::dom::Element * getDocumentElement(); + virtual ::org::w3c::dom::DocumentType * getDoctype(); + virtual ::org::w3c::dom::DOMImplementation * getImplementation(); + virtual ::org::w3c::dom::Element * getElementById(::java::lang::String *); +private: + void checkNewChild(::org::w3c::dom::Node *); +public: + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + static void verifyXmlName(::java::lang::String *); +public: // actually package-private + static void checkName(::java::lang::String *, jboolean); + static void checkNCName(::java::lang::String *, jboolean); + static void checkChar(::java::lang::String *, jboolean); + static void checkChar(JArray< jchar > *, jint, jint, jboolean); +public: + virtual ::org::w3c::dom::Element * createElement(::java::lang::String *); + virtual ::org::w3c::dom::Element * createElementNS(::java::lang::String *, ::java::lang::String *); +private: + void defaultAttributes(::org::w3c::dom::Element *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::DocumentFragment * createDocumentFragment(); + virtual ::org::w3c::dom::Text * createTextNode(::java::lang::String *); + virtual ::org::w3c::dom::Text * createTextNode(JArray< jchar > *, jint, jint); + virtual ::org::w3c::dom::Comment * createComment(::java::lang::String *); + virtual ::org::w3c::dom::CDATASection * createCDATASection(::java::lang::String *); + virtual ::org::w3c::dom::CDATASection * createCDATASection(JArray< jchar > *, jint, jint); + virtual ::org::w3c::dom::ProcessingInstruction * createProcessingInstruction(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * createAttribute(::java::lang::String *); + virtual ::org::w3c::dom::Attr * createAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::EntityReference * createEntityReference(::java::lang::String *); + virtual ::org::w3c::dom::Node * importNode(::org::w3c::dom::Node *, jboolean); + virtual ::org::w3c::dom::traversal::NodeIterator * createNodeIterator(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean); + virtual ::org::w3c::dom::traversal::TreeWalker * createTreeWalker(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean); + virtual ::java::lang::String * getInputEncoding(); + virtual void setInputEncoding(::java::lang::String *); + virtual ::java::lang::String * getXmlEncoding(); + virtual void setXmlEncoding(::java::lang::String *); + virtual jboolean getXmlStandalone(); + virtual void setXmlStandalone(jboolean); + virtual ::java::lang::String * getXmlVersion(); + virtual void setXmlVersion(::java::lang::String *); + virtual jboolean getStrictErrorChecking(); + virtual void setStrictErrorChecking(jboolean); + virtual ::java::lang::String * lookupPrefix(::java::lang::String *); + virtual jboolean isDefaultNamespace(::java::lang::String *); + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *); + virtual ::java::lang::String * getBaseURI(); + virtual ::java::lang::String * getDocumentURI(); + virtual void setDocumentURI(::java::lang::String *); + virtual ::org::w3c::dom::Node * adoptNode(::org::w3c::dom::Node *); +public: // actually package-private + virtual void adoptChildren(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual void adoptAttributes(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig(); + virtual jboolean isEqualNode(::org::w3c::dom::Node *); + virtual void normalizeDocument(); +public: // actually package-private + virtual void normalizeNode(::gnu::xml::dom::DomNode *); +public: + virtual ::org::w3c::dom::Node * renameNode(::org::w3c::dom::Node *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::xpath::XPathExpression * createExpression(::java::lang::String *, ::org::w3c::dom::xpath::XPathNSResolver *); + virtual ::org::w3c::dom::xpath::XPathNSResolver * createNSResolver(::org::w3c::dom::Node *); + virtual ::java::lang::Object * evaluate(::java::lang::String *, ::org::w3c::dom::Node *, ::org::w3c::dom::xpath::XPathNSResolver *, jshort, ::java::lang::Object *); +private: + ::org::w3c::dom::DOMImplementation * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) implementation; + jboolean checkingCharacters; +public: // actually package-private + jboolean checkingWellformedness; + jboolean building; + ::gnu::xml::dom::DomDocumentConfiguration * config; + ::java::lang::String * inputEncoding; + ::java::lang::String * encoding; + ::java::lang::String * version; + jboolean standalone; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomDocument__ diff --git a/libjava/gnu/xml/dom/DomDocumentBuilder.h b/libjava/gnu/xml/dom/DomDocumentBuilder.h new file mode 100644 index 00000000000..f45207a7324 --- /dev/null +++ b/libjava/gnu/xml/dom/DomDocumentBuilder.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomDocumentBuilder__ +#define __gnu_xml_dom_DomDocumentBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocumentBuilder; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class Document; + namespace ls + { + class DOMImplementationLS; + class LSParser; + } + } + } + namespace xml + { + namespace sax + { + class EntityResolver; + class ErrorHandler; + class InputSource; + } + } + } +} + +class gnu::xml::dom::DomDocumentBuilder : public ::javax::xml::parsers::DocumentBuilder +{ + +public: // actually package-private + DomDocumentBuilder(::org::w3c::dom::DOMImplementation *, ::org::w3c::dom::ls::DOMImplementationLS *, ::org::w3c::dom::ls::LSParser *); +public: + virtual jboolean isNamespaceAware(); + virtual jboolean isValidating(); + virtual jboolean isXIncludeAware(); + virtual void setEntityResolver(::org::xml::sax::EntityResolver *); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual ::org::w3c::dom::DOMImplementation * getDOMImplementation(); + virtual ::org::w3c::dom::Document * newDocument(); + virtual ::org::w3c::dom::Document * parse(::java::io::InputStream *); + virtual ::org::w3c::dom::Document * parse(::java::io::InputStream *, ::java::lang::String *); + virtual ::org::w3c::dom::Document * parse(::java::lang::String *); + virtual ::org::w3c::dom::Document * parse(::org::xml::sax::InputSource *); +public: // actually package-private + ::org::w3c::dom::DOMImplementation * __attribute__((aligned(__alignof__( ::javax::xml::parsers::DocumentBuilder)))) impl; + ::org::w3c::dom::ls::DOMImplementationLS * ls; + ::org::w3c::dom::ls::LSParser * parser; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomDocumentBuilder__ diff --git a/libjava/gnu/xml/dom/DomDocumentBuilderFactory.h b/libjava/gnu/xml/dom/DomDocumentBuilderFactory.h new file mode 100644 index 00000000000..a0bb85f9545 --- /dev/null +++ b/libjava/gnu/xml/dom/DomDocumentBuilderFactory.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomDocumentBuilderFactory__ +#define __gnu_xml_dom_DomDocumentBuilderFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocumentBuilderFactory; + } + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class DocumentBuilder; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMConfiguration; + class DOMImplementation; + namespace ls + { + class DOMImplementationLS; + } + } + } + } +} + +class gnu::xml::dom::DomDocumentBuilderFactory : public ::javax::xml::parsers::DocumentBuilderFactory +{ + +public: + DomDocumentBuilderFactory(); + virtual ::javax::xml::parsers::DocumentBuilder * newDocumentBuilder(); +public: // actually package-private + virtual void setParameter(::org::w3c::dom::DOMConfiguration *, ::java::lang::String *, ::java::lang::Object *); +public: + virtual ::java::lang::Object * getAttribute(::java::lang::String *); + virtual void setAttribute(::java::lang::String *, ::java::lang::Object *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual jboolean getFeature(::java::lang::String *); +public: // actually package-private + ::org::w3c::dom::DOMImplementation * __attribute__((aligned(__alignof__( ::javax::xml::parsers::DocumentBuilderFactory)))) impl; + ::org::w3c::dom::ls::DOMImplementationLS * ls; +private: + jboolean secureProcessing; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomDocumentBuilderFactory__ diff --git a/libjava/gnu/xml/dom/DomDocumentConfiguration.h b/libjava/gnu/xml/dom/DomDocumentConfiguration.h new file mode 100644 index 00000000000..f628910ed0e --- /dev/null +++ b/libjava/gnu/xml/dom/DomDocumentConfiguration.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomDocumentConfiguration__ +#define __gnu_xml_dom_DomDocumentConfiguration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocumentConfiguration; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMErrorHandler; + class DOMStringList; + } + } + } +} + +class gnu::xml::dom::DomDocumentConfiguration : public ::java::lang::Object +{ + +public: // actually package-private + DomDocumentConfiguration(); +public: + virtual void setParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(::java::lang::String *); + virtual jboolean canSetParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::org::w3c::dom::DOMStringList * getParameterNames(); + virtual ::java::lang::String * item(jint); + virtual jint getLength(); + virtual jboolean contains(::java::lang::String *); +private: + static ::java::util::List * SUPPORTED_PARAMETERS; +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) cdataSections; + jboolean comments; + jboolean elementContentWhitespace; + jboolean entities; + ::org::w3c::dom::DOMErrorHandler * errorHandler; + jboolean namespaceDeclarations; + jboolean splitCdataSections; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomDocumentConfiguration__ diff --git a/libjava/gnu/xml/dom/DomDocumentFragment.h b/libjava/gnu/xml/dom/DomDocumentFragment.h new file mode 100644 index 00000000000..ab0b4b5e352 --- /dev/null +++ b/libjava/gnu/xml/dom/DomDocumentFragment.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomDocumentFragment__ +#define __gnu_xml_dom_DomDocumentFragment__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomDocumentFragment; + } + } + } +} + +class gnu::xml::dom::DomDocumentFragment : public ::gnu::xml::dom::DomNode +{ + +public: // actually protected + DomDocumentFragment(::gnu::xml::dom::DomDocument *); +public: + virtual ::java::lang::String * getNodeName(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomDocumentFragment__ diff --git a/libjava/gnu/xml/dom/DomElement.h b/libjava/gnu/xml/dom/DomElement.h new file mode 100644 index 00000000000..35ed33eaaa6 --- /dev/null +++ b/libjava/gnu/xml/dom/DomElement.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomElement__ +#define __gnu_xml_dom_DomElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomElement; + class DomNamedNodeMap; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class NamedNodeMap; + class Node; + class TypeInfo; + } + } + } +} + +class gnu::xml::dom::DomElement : public ::gnu::xml::dom::DomNsNode +{ + +public: // actually protected + DomElement(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::NamedNodeMap * getAttributes(); + virtual jboolean hasAttributes(); + virtual ::java::lang::Object * clone(); +public: // actually package-private + virtual void setOwner(::gnu::xml::dom::DomDocument *); +public: + virtual void makeReadonly(); + virtual ::java::lang::String * getTagName(); + virtual ::java::lang::String * getAttribute(::java::lang::String *); + virtual jboolean hasAttribute(::java::lang::String *); + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *); + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *); + virtual void setAttribute(::java::lang::String *, ::java::lang::String *); + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *); + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *); + virtual void removeAttribute(::java::lang::String *); + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *); + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * lookupPrefix(::java::lang::String *); + virtual jboolean isDefaultNamespace(::java::lang::String *); + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *); + virtual ::java::lang::String * getBaseURI(); + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo(); + virtual void setIdAttribute(::java::lang::String *, jboolean); + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean); + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean); + virtual jboolean isEqualNode(::org::w3c::dom::Node *); +public: // actually package-private + ::java::util::Set * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNsNode)))) userIdAttrs; +private: + ::gnu::xml::dom::DomNamedNodeMap * attributes; +public: // actually package-private + ::java::lang::String * xmlSpace; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomElement__ diff --git a/libjava/gnu/xml/dom/DomEntity.h b/libjava/gnu/xml/dom/DomEntity.h new file mode 100644 index 00000000000..914c2c51062 --- /dev/null +++ b/libjava/gnu/xml/dom/DomEntity.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomEntity__ +#define __gnu_xml_dom_DomEntity__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomEntity; + } + } + } +} + +class gnu::xml::dom::DomEntity : public ::gnu::xml::dom::DomExtern +{ + +public: // actually protected + DomEntity(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getNotationName(); + virtual ::java::lang::String * getInputEncoding(); + virtual ::java::lang::String * getXmlEncoding(); + virtual ::java::lang::String * getXmlVersion(); + virtual ::java::lang::String * getBaseURI(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomExtern)))) notation; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomEntity__ diff --git a/libjava/gnu/xml/dom/DomEntityReference.h b/libjava/gnu/xml/dom/DomEntityReference.h new file mode 100644 index 00000000000..22e2665ebb0 --- /dev/null +++ b/libjava/gnu/xml/dom/DomEntityReference.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomEntityReference__ +#define __gnu_xml_dom_DomEntityReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomEntityReference; + } + } + } +} + +class gnu::xml::dom::DomEntityReference : public ::gnu::xml::dom::DomNode +{ + +public: // actually protected + DomEntityReference(::gnu::xml::dom::DomDocument *, ::java::lang::String *); +public: + virtual ::java::lang::String * getNodeName(); + virtual ::java::lang::String * getBaseURI(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomEntityReference__ diff --git a/libjava/gnu/xml/dom/DomEvent$DomMutationEvent.h b/libjava/gnu/xml/dom/DomEvent$DomMutationEvent.h new file mode 100644 index 00000000000..613938abdd9 --- /dev/null +++ b/libjava/gnu/xml/dom/DomEvent$DomMutationEvent.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomEvent$DomMutationEvent__ +#define __gnu_xml_dom_DomEvent$DomMutationEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomEvent$DomMutationEvent; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::DomEvent$DomMutationEvent : public ::gnu::xml::dom::DomEvent +{ + +public: + ::org::w3c::dom::Node * getRelatedNode(); + ::java::lang::String * getPrevValue(); + ::java::lang::String * getNewValue(); + ::java::lang::String * getAttrName(); + jshort getAttrChange(); + void initMutationEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::Node *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jshort); +public: // actually package-private + void clear(); +public: + DomEvent$DomMutationEvent(::java::lang::String *); +public: // actually package-private + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomEvent)))) relatedNode; +private: + ::java::lang::String * prevValue; + ::java::lang::String * newValue; + ::java::lang::String * attrName; + jshort attrChange; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomEvent$DomMutationEvent__ diff --git a/libjava/gnu/xml/dom/DomEvent$DomUIEvent.h b/libjava/gnu/xml/dom/DomEvent$DomUIEvent.h new file mode 100644 index 00000000000..2c2921a8668 --- /dev/null +++ b/libjava/gnu/xml/dom/DomEvent$DomUIEvent.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomEvent$DomUIEvent__ +#define __gnu_xml_dom_DomEvent$DomUIEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomEvent$DomUIEvent; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace views + { + class AbstractView; + } + } + } + } +} + +class gnu::xml::dom::DomEvent$DomUIEvent : public ::gnu::xml::dom::DomEvent +{ + +public: + DomEvent$DomUIEvent(::java::lang::String *); + virtual ::org::w3c::dom::views::AbstractView * getView(); + virtual jint getDetail(); + virtual void initUIEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::views::AbstractView *, jint); +private: + ::org::w3c::dom::views::AbstractView * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomEvent)))) view; + jint detail; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomEvent$DomUIEvent__ diff --git a/libjava/gnu/xml/dom/DomEvent.h b/libjava/gnu/xml/dom/DomEvent.h new file mode 100644 index 00000000000..83a2822b2dc --- /dev/null +++ b/libjava/gnu/xml/dom/DomEvent.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomEvent__ +#define __gnu_xml_dom_DomEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomEvent; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class EventTarget; + } + } + } + } +} + +class gnu::xml::dom::DomEvent : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getType(); + virtual ::org::w3c::dom::events::EventTarget * getTarget(); + virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget(); + virtual jshort getEventPhase(); + virtual jboolean getBubbles(); + virtual jboolean getCancelable(); + virtual jlong getTimeStamp(); + virtual void stopPropagation(); + virtual void preventDefault(); + virtual void initEvent(::java::lang::String *, jboolean, jboolean); + DomEvent(::java::lang::String *); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::org::w3c::dom::events::EventTarget * target; + ::org::w3c::dom::events::EventTarget * currentNode; + jshort eventPhase; + jboolean bubbles; + jboolean cancelable; + jlong timeStamp; + jboolean stop; + jboolean doDefault; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomEvent__ diff --git a/libjava/gnu/xml/dom/DomExtern.h b/libjava/gnu/xml/dom/DomExtern.h new file mode 100644 index 00000000000..c2c88940583 --- /dev/null +++ b/libjava/gnu/xml/dom/DomExtern.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomExtern__ +#define __gnu_xml_dom_DomExtern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomExtern; + } + } + } +} + +class gnu::xml::dom::DomExtern : public ::gnu::xml::dom::DomNode +{ + +public: // actually package-private + DomExtern(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getNodeName(); + virtual ::java::lang::String * getLocalName(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) name; + ::java::lang::String * publicId; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomExtern__ diff --git a/libjava/gnu/xml/dom/DomImpl.h b/libjava/gnu/xml/dom/DomImpl.h new file mode 100644 index 00000000000..f0515862fda --- /dev/null +++ b/libjava/gnu/xml/dom/DomImpl.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomImpl__ +#define __gnu_xml_dom_DomImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomImpl; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class DocumentType; + namespace ls + { + class LSInput; + class LSOutput; + class LSParser; + class LSSerializer; + } + } + } + } +} + +class gnu::xml::dom::DomImpl : public ::java::lang::Object +{ + +public: + DomImpl(); + virtual jboolean hasFeature(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::DocumentType * createDocumentType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Document * createDocument(::java::lang::String *, ::java::lang::String *, ::org::w3c::dom::DocumentType *); +public: // actually protected + virtual ::org::w3c::dom::Document * createDocument(); +public: + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::ls::LSParser * createLSParser(jshort, ::java::lang::String *); + virtual ::org::w3c::dom::ls::LSSerializer * createLSSerializer(); + virtual ::org::w3c::dom::ls::LSInput * createLSInput(); + virtual ::org::w3c::dom::ls::LSOutput * createLSOutput(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomImpl__ diff --git a/libjava/gnu/xml/dom/DomIterator.h b/libjava/gnu/xml/dom/DomIterator.h new file mode 100644 index 00000000000..7e155790404 --- /dev/null +++ b/libjava/gnu/xml/dom/DomIterator.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomIterator__ +#define __gnu_xml_dom_DomIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomIterator; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace events + { + class Event; + } + namespace traversal + { + class NodeFilter; + } + } + } + } +} + +class gnu::xml::dom::DomIterator : public ::java::lang::Object +{ + +public: // actually protected + DomIterator(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean); +public: + void detach(); + jboolean getExpandEntityReferences(); + ::org::w3c::dom::traversal::NodeFilter * getFilter(); + ::org::w3c::dom::Node * getRoot(); + jint getWhatToShow(); + ::org::w3c::dom::Node * nextNode(); + ::org::w3c::dom::Node * previousNode(); +private: + jboolean shouldShow(::org::w3c::dom::Node *); + ::org::w3c::dom::Node * walk(jboolean); + jboolean isLeaf(::org::w3c::dom::Node *); + ::org::w3c::dom::Node * successor(::org::w3c::dom::Node *, jboolean); +public: + void handleEvent(::org::w3c::dom::events::Event *); +private: + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) reference; + jboolean right; + jboolean done; + ::org::w3c::dom::Node * root; + jint whatToShow; + ::org::w3c::dom::traversal::NodeFilter * filter; + jboolean expandEntityReferences; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomIterator__ diff --git a/libjava/gnu/xml/dom/DomNSResolverContext.h b/libjava/gnu/xml/dom/DomNSResolverContext.h new file mode 100644 index 00000000000..9405c862f97 --- /dev/null +++ b/libjava/gnu/xml/dom/DomNSResolverContext.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNSResolverContext__ +#define __gnu_xml_dom_DomNSResolverContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomNSResolverContext; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace xpath + { + class XPathNSResolver; + } + } + } + } +} + +class gnu::xml::dom::DomNSResolverContext : public ::java::lang::Object +{ + +public: // actually package-private + DomNSResolverContext(::org::w3c::dom::xpath::XPathNSResolver *); +public: + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *); + virtual ::java::lang::String * getPrefix(::java::lang::String *); + virtual ::java::util::Iterator * getPrefixes(::java::lang::String *); + virtual jboolean hasNext(); + virtual ::java::lang::Object * next(); + virtual void remove(); +public: // actually package-private + ::org::w3c::dom::xpath::XPathNSResolver * __attribute__((aligned(__alignof__( ::java::lang::Object)))) resolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNSResolverContext__ diff --git a/libjava/gnu/xml/dom/DomNamedNodeMap.h b/libjava/gnu/xml/dom/DomNamedNodeMap.h new file mode 100644 index 00000000000..c26f2af4890 --- /dev/null +++ b/libjava/gnu/xml/dom/DomNamedNodeMap.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNamedNodeMap__ +#define __gnu_xml_dom_DomNamedNodeMap__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomNamedNodeMap; + class DomNode; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::DomNamedNodeMap : public ::java::lang::Object +{ + +public: // actually package-private + DomNamedNodeMap(::gnu::xml::dom::DomNode *, jshort); +public: + virtual jboolean isReadonly(); + virtual void makeReadonly(); + virtual ::org::w3c::dom::Node * getNamedItem(::java::lang::String *); + virtual ::org::w3c::dom::Node * getNamedItemNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * setNamedItemNS(::org::w3c::dom::Node *); +public: // actually package-private + virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *, jboolean); + virtual void reparent(::gnu::xml::dom::DomNode *, ::java::lang::String *, jint); +public: + virtual ::org::w3c::dom::Node * removeNamedItem(::java::lang::String *); + virtual ::org::w3c::dom::Node * removeNamedItemNS(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual ::org::w3c::dom::Node * removeNamedItem(::java::lang::String *, ::java::lang::String *, jboolean); + virtual ::java::lang::String * getDefaultValue(::java::lang::String *); +public: + virtual ::org::w3c::dom::Node * item(jint); + virtual jint getLength(); +public: // actually package-private + ::gnu::xml::dom::DomNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) owner; + jshort type; + ::gnu::xml::dom::DomNode * first; + jint length; + jboolean readonly; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNamedNodeMap__ diff --git a/libjava/gnu/xml/dom/DomNode$DomEventException.h b/libjava/gnu/xml/dom/DomNode$DomEventException.h new file mode 100644 index 00000000000..577a112b12d --- /dev/null +++ b/libjava/gnu/xml/dom/DomNode$DomEventException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNode$DomEventException__ +#define __gnu_xml_dom_DomNode$DomEventException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomNode$DomEventException; + } + } + } +} + +class gnu::xml::dom::DomNode$DomEventException : public ::org::w3c::dom::events::EventException +{ + +public: // actually package-private + DomNode$DomEventException(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNode$DomEventException__ diff --git a/libjava/gnu/xml/dom/DomNode$ListenerRecord.h b/libjava/gnu/xml/dom/DomNode$ListenerRecord.h new file mode 100644 index 00000000000..f24266f53d8 --- /dev/null +++ b/libjava/gnu/xml/dom/DomNode$ListenerRecord.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNode$ListenerRecord__ +#define __gnu_xml_dom_DomNode$ListenerRecord__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomNode$ListenerRecord; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class EventListener; + } + } + } + } +} + +class gnu::xml::dom::DomNode$ListenerRecord : public ::java::lang::Object +{ + +public: // actually package-private + DomNode$ListenerRecord(::java::lang::String *, ::org::w3c::dom::events::EventListener *, jboolean); +public: + jboolean equals(::java::lang::Object *); + jint hashCode(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::org::w3c::dom::events::EventListener * listener; + jboolean useCapture; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNode$ListenerRecord__ diff --git a/libjava/gnu/xml/dom/DomNode$LiveNodeList.h b/libjava/gnu/xml/dom/DomNode$LiveNodeList.h new file mode 100644 index 00000000000..9755d8b047b --- /dev/null +++ b/libjava/gnu/xml/dom/DomNode$LiveNodeList.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNode$LiveNodeList__ +#define __gnu_xml_dom_DomNode$LiveNodeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomIterator; + class DomNode; + class DomNode$LiveNodeList; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace events + { + class Event; + } + } + } + } +} + +class gnu::xml::dom::DomNode$LiveNodeList : public ::java::lang::Object +{ + +public: // actually package-private + DomNode$LiveNodeList(::gnu::xml::dom::DomNode *, ::java::lang::String *, ::java::lang::String *); + void detach(); +public: + jshort acceptNode(::org::w3c::dom::Node *); +private: + ::gnu::xml::dom::DomIterator * createIterator(); +public: + void handleEvent(::org::w3c::dom::events::Event *); + ::org::w3c::dom::Node * item(jint); + jint getLength(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) matchAnyURI; + jboolean matchAnyName; + ::java::lang::String * elementURI; + ::java::lang::String * elementName; + ::gnu::xml::dom::DomIterator * current; + jint lastIndex; +public: // actually package-private + ::gnu::xml::dom::DomNode * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNode$LiveNodeList__ diff --git a/libjava/gnu/xml/dom/DomNode$ShadowList.h b/libjava/gnu/xml/dom/DomNode$ShadowList.h new file mode 100644 index 00000000000..1465afca22e --- /dev/null +++ b/libjava/gnu/xml/dom/DomNode$ShadowList.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNode$ShadowList__ +#define __gnu_xml_dom_DomNode$ShadowList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomNode; + class DomNode$LiveNodeList; + class DomNode$ShadowList; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::DomNode$ShadowList : public ::java::lang::Object +{ + +public: // actually package-private + DomNode$ShadowList(::gnu::xml::dom::DomNode *, ::java::lang::String *, ::java::lang::String *); +public: + void finalize(); + ::org::w3c::dom::Node * item(jint); + jint getLength(); +private: + ::gnu::xml::dom::DomNode$LiveNodeList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) liveList; +public: // actually package-private + ::gnu::xml::dom::DomNode * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNode$ShadowList__ diff --git a/libjava/gnu/xml/dom/DomNode.h b/libjava/gnu/xml/dom/DomNode.h new file mode 100644 index 00000000000..763284796a1 --- /dev/null +++ b/libjava/gnu/xml/dom/DomNode.h @@ -0,0 +1,174 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNode__ +#define __gnu_xml_dom_DomNode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomEvent; + class DomEvent$DomMutationEvent; + class DomNode; + class DomNode$ListenerRecord; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + namespace events + { + class Event; + class EventListener; + } + } + } + } +} + +class gnu::xml::dom::DomNode : public ::java::lang::Object +{ + +public: + virtual void compact(); +public: // actually protected + DomNode(jshort, ::gnu::xml::dom::DomDocument *); +public: + virtual ::org::w3c::dom::NamedNodeMap * getAttributes(); + virtual jboolean hasAttributes(); + virtual ::org::w3c::dom::NodeList * getChildNodes(); + virtual ::org::w3c::dom::Node * getFirstChild(); + virtual ::org::w3c::dom::Node * getLastChild(); + virtual jboolean hasChildNodes(); + virtual jboolean isReadonly(); + virtual void makeReadonly(); +public: // actually package-private + virtual void setOwner(::gnu::xml::dom::DomDocument *); +private: + void checkMisc(::gnu::xml::dom::DomNode *); + void insertionEvent(::gnu::xml::dom::DomEvent$DomMutationEvent *, ::gnu::xml::dom::DomNode *); + void removalEvent(::gnu::xml::dom::DomEvent$DomMutationEvent *, ::gnu::xml::dom::DomNode *); + static ::gnu::xml::dom::DomEvent$DomMutationEvent * getMutationEvent(); + static void freeMutationEvent(); +public: // actually package-private + virtual void setDepth(jint); +public: + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * item(jint); + virtual jint getLength(); + virtual void trimToSize(); + virtual ::org::w3c::dom::Node * getNextSibling(); + virtual ::org::w3c::dom::Node * getPreviousSibling(); + virtual ::org::w3c::dom::Node * getParentNode(); + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Document * getOwnerDocument(); + virtual void setNodeValue(::java::lang::String *); + virtual ::java::lang::String * getNodeValue(); + virtual jshort getNodeType(); + virtual ::java::lang::String * getNodeName() = 0; + virtual void setPrefix(::java::lang::String *); + virtual ::java::lang::String * getPrefix(); + virtual ::java::lang::String * getNamespaceURI(); + virtual ::java::lang::String * getLocalName(); + virtual ::org::w3c::dom::Node * cloneNode(jboolean); +public: // actually package-private + virtual void notifyUserDataHandlers(jshort, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + virtual ::java::lang::Object * clone(); + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *); + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::events::Event * createEvent(::java::lang::String *); + virtual void addEventListener(::java::lang::String *, ::org::w3c::dom::events::EventListener *, jboolean); + virtual jboolean dispatchEvent(::org::w3c::dom::events::Event *); +private: + void notifyNode(::gnu::xml::dom::DomEvent *, ::gnu::xml::dom::DomNode *, jboolean, JArray< ::gnu::xml::dom::DomNode$ListenerRecord * > *); +public: + virtual void removeEventListener(::java::lang::String *, ::org::w3c::dom::events::EventListener *, jboolean); + virtual void normalize(); + virtual jboolean nameAndTypeEquals(::org::w3c::dom::Node *); + virtual ::java::lang::String * getBaseURI(); + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + virtual jint compareTo2(::gnu::xml::dom::DomNode *, ::gnu::xml::dom::DomNode *); +public: + virtual ::java::lang::String * getTextContent(); +public: // actually package-private + virtual ::java::lang::String * getTextContent(jboolean); +public: + virtual void setTextContent(::java::lang::String *); + virtual jboolean isSameNode(::org::w3c::dom::Node *); + virtual ::java::lang::String * lookupPrefix(::java::lang::String *); + virtual jboolean isDefaultNamespace(::java::lang::String *); + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *); + virtual jboolean isEqualNode(::org::w3c::dom::Node *); +public: // actually package-private + virtual jboolean equal(::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *); + virtual ::java::lang::Object * getUserData(::java::lang::String *); + virtual ::java::lang::String * toString(); +public: // actually package-private + virtual ::java::lang::String * encode(::java::lang::String *); + virtual ::java::lang::String * nodeTypeToString(jshort); +public: + virtual void list(::java::io::PrintStream *, jint); +private: + static const jint NKIDS_DELTA = 8; + static const jint ANCESTORS_INIT = 20; + static const jint NOTIFICATIONS_INIT = 10; +public: // actually package-private + static const jboolean reportMutations = 1; +private: + static ::java::lang::Object * lockNode; + static jboolean dispatchDataLock; + static JArray< ::gnu::xml::dom::DomNode * > * ancestors; + static JArray< ::gnu::xml::dom::DomNode$ListenerRecord * > * notificationSet; + static jboolean eventDataLock; + static ::gnu::xml::dom::DomEvent$DomMutationEvent * mutationEvent; +public: // actually package-private + ::gnu::xml::dom::DomDocument * __attribute__((aligned(__alignof__( ::java::lang::Object)))) owner; + ::gnu::xml::dom::DomNode * parent; + ::gnu::xml::dom::DomNode * previous; + ::gnu::xml::dom::DomNode * next; + ::gnu::xml::dom::DomNode * first; + ::gnu::xml::dom::DomNode * last; + jint index; + jint depth; + jint length; + jshort nodeType; + jboolean readonly; +private: + ::java::util::HashSet * listeners; + jint nListeners; + ::java::util::HashMap * userData; + ::java::util::HashMap * userDataHandlers; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNode__ diff --git a/libjava/gnu/xml/dom/DomNodeIterator.h b/libjava/gnu/xml/dom/DomNodeIterator.h new file mode 100644 index 00000000000..9ebe95ed4d3 --- /dev/null +++ b/libjava/gnu/xml/dom/DomNodeIterator.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNodeIterator__ +#define __gnu_xml_dom_DomNodeIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomNodeIterator; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace traversal + { + class NodeFilter; + } + } + } + } +} + +class gnu::xml::dom::DomNodeIterator : public ::java::lang::Object +{ + +public: + DomNodeIterator(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean, jboolean); + virtual ::org::w3c::dom::Node * getRoot(); + virtual jint getWhatToShow(); + virtual ::org::w3c::dom::traversal::NodeFilter * getFilter(); + virtual jboolean getExpandEntityReferences(); + virtual ::org::w3c::dom::Node * nextNode(); + virtual ::org::w3c::dom::Node * previousNode(); + virtual ::org::w3c::dom::Node * getCurrentNode(); + virtual void setCurrentNode(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * parentNode(); + virtual ::org::w3c::dom::Node * firstChild(); + virtual ::org::w3c::dom::Node * lastChild(); + virtual ::org::w3c::dom::Node * previousSibling(); + virtual ::org::w3c::dom::Node * nextSibling(); + virtual void detach(); +public: // actually package-private + virtual jboolean accept(::org::w3c::dom::Node *); + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) root; + jint whatToShow; + ::org::w3c::dom::traversal::NodeFilter * filter; + jboolean entityReferenceExpansion; + jboolean walk; + ::org::w3c::dom::Node * current; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNodeIterator__ diff --git a/libjava/gnu/xml/dom/DomNotation.h b/libjava/gnu/xml/dom/DomNotation.h new file mode 100644 index 00000000000..0d26797c7a2 --- /dev/null +++ b/libjava/gnu/xml/dom/DomNotation.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNotation__ +#define __gnu_xml_dom_DomNotation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomNotation; + } + } + } +} + +class gnu::xml::dom::DomNotation : public ::gnu::xml::dom::DomExtern +{ + +public: // actually protected + DomNotation(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getBaseURI(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNotation__ diff --git a/libjava/gnu/xml/dom/DomNsNode.h b/libjava/gnu/xml/dom/DomNsNode.h new file mode 100644 index 00000000000..13dc4940fc5 --- /dev/null +++ b/libjava/gnu/xml/dom/DomNsNode.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomNsNode__ +#define __gnu_xml_dom_DomNsNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomNsNode; + } + } + } +} + +class gnu::xml::dom::DomNsNode : public ::gnu::xml::dom::DomNode +{ + +public: // actually package-private + DomNsNode(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getNodeName(); +public: // actually package-private + virtual void setNodeName(::java::lang::String *); +public: + virtual ::java::lang::String * getNamespaceURI(); +public: // actually package-private + virtual void setNamespaceURI(::java::lang::String *); +public: + virtual ::java::lang::String * getPrefix(); + virtual void setPrefix(::java::lang::String *); + virtual ::java::lang::String * getLocalName(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) name; + ::java::lang::String * namespace$; + ::java::lang::String * prefix; +public: // actually package-private + ::java::lang::String * localName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomNsNode__ diff --git a/libjava/gnu/xml/dom/DomProcessingInstruction.h b/libjava/gnu/xml/dom/DomProcessingInstruction.h new file mode 100644 index 00000000000..ed636c2097d --- /dev/null +++ b/libjava/gnu/xml/dom/DomProcessingInstruction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomProcessingInstruction__ +#define __gnu_xml_dom_DomProcessingInstruction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomProcessingInstruction; + } + } + } +} + +class gnu::xml::dom::DomProcessingInstruction : public ::gnu::xml::dom::DomNode +{ + +public: // actually protected + DomProcessingInstruction(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getTarget(); + virtual ::java::lang::String * getNodeName(); + virtual ::java::lang::String * getData(); + virtual ::java::lang::String * getNodeValue(); + virtual void setData(::java::lang::String *); + virtual void setNodeValue(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) target; + ::java::lang::String * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomProcessingInstruction__ diff --git a/libjava/gnu/xml/dom/DomText.h b/libjava/gnu/xml/dom/DomText.h new file mode 100644 index 00000000000..c4f07da318e --- /dev/null +++ b/libjava/gnu/xml/dom/DomText.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomText__ +#define __gnu_xml_dom_DomText__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomText; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Text; + } + } + } +} + +class gnu::xml::dom::DomText : public ::gnu::xml::dom::DomCharacterData +{ + +public: // actually protected + DomText(::gnu::xml::dom::DomDocument *, ::java::lang::String *); + DomText(::gnu::xml::dom::DomDocument *, JArray< jchar > *, jint, jint); +public: // actually package-private + DomText(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *); + DomText(jshort, ::gnu::xml::dom::DomDocument *, JArray< jchar > *, jint, jint); +public: + virtual ::java::lang::String * getNodeName(); + virtual ::org::w3c::dom::Text * splitText(jint); + virtual jboolean isElementContentWhitespace(); + virtual ::java::lang::String * getWholeText(); + virtual ::org::w3c::dom::Text * replaceWholeText(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomText__ diff --git a/libjava/gnu/xml/dom/DomXPathExpression.h b/libjava/gnu/xml/dom/DomXPathExpression.h new file mode 100644 index 00000000000..000fe90f011 --- /dev/null +++ b/libjava/gnu/xml/dom/DomXPathExpression.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomXPathExpression__ +#define __gnu_xml_dom_DomXPathExpression__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + class DomXPathExpression; + } + } + } + namespace javax + { + namespace xml + { + namespace xpath + { + class XPathExpression; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace xpath + { + class XPathNSResolver; + } + } + } + } +} + +class gnu::xml::dom::DomXPathExpression : public ::java::lang::Object +{ + +public: // actually package-private + DomXPathExpression(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::org::w3c::dom::xpath::XPathNSResolver *); +public: + virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jshort, ::java::lang::Object *); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::dom::DomDocument * __attribute__((aligned(__alignof__( ::java::lang::Object)))) doc; + ::javax::xml::xpath::XPathExpression * expression; + ::org::w3c::dom::xpath::XPathNSResolver * resolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomXPathExpression__ diff --git a/libjava/gnu/xml/dom/DomXPathNSResolver.h b/libjava/gnu/xml/dom/DomXPathNSResolver.h new file mode 100644 index 00000000000..40a4e977e47 --- /dev/null +++ b/libjava/gnu/xml/dom/DomXPathNSResolver.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomXPathNSResolver__ +#define __gnu_xml_dom_DomXPathNSResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomXPathNSResolver; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::DomXPathNSResolver : public ::java::lang::Object +{ + +public: // actually package-private + DomXPathNSResolver(::org::w3c::dom::Node *); +public: + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *); +public: // actually package-private + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) node; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomXPathNSResolver__ diff --git a/libjava/gnu/xml/dom/DomXPathResult.h b/libjava/gnu/xml/dom/DomXPathResult.h new file mode 100644 index 00000000000..114d7ab2d4d --- /dev/null +++ b/libjava/gnu/xml/dom/DomXPathResult.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_DomXPathResult__ +#define __gnu_xml_dom_DomXPathResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomXPathResult; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::DomXPathResult : public ::java::lang::Object +{ + +public: // actually package-private + DomXPathResult(::java::lang::Object *, jshort); +public: + virtual jboolean getBooleanValue(); + virtual jboolean getInvalidIteratorState(); + virtual jdouble getNumberValue(); + virtual jshort getResultType(); + virtual ::org::w3c::dom::Node * getSingleNodeValue(); + virtual jint getSnapshotLength(); + virtual ::java::lang::String * getStringValue(); + virtual ::org::w3c::dom::Node * iterateNext(); + virtual ::org::w3c::dom::Node * snapshotItem(jint); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * typeName(jshort); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + jshort type; + ::java::util::Iterator * iterator; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_DomXPathResult__ diff --git a/libjava/gnu/xml/dom/ImplementationList.h b/libjava/gnu/xml/dom/ImplementationList.h new file mode 100644 index 00000000000..68813a3069c --- /dev/null +++ b/libjava/gnu/xml/dom/ImplementationList.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ImplementationList__ +#define __gnu_xml_dom_ImplementationList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class ImplementationList; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + } + } + } +} + +class gnu::xml::dom::ImplementationList : public ::java::lang::Object +{ + +public: // actually package-private + ImplementationList(::java::util::List *); +public: + virtual jint getLength(); + virtual ::org::w3c::dom::DOMImplementation * item(jint); +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) list; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ImplementationList__ diff --git a/libjava/gnu/xml/dom/ImplementationSource.h b/libjava/gnu/xml/dom/ImplementationSource.h new file mode 100644 index 00000000000..c24a0306efc --- /dev/null +++ b/libjava/gnu/xml/dom/ImplementationSource.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ImplementationSource__ +#define __gnu_xml_dom_ImplementationSource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class ImplementationSource; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class DOMImplementationList; + } + } + } +} + +class gnu::xml::dom::ImplementationSource : public ::java::lang::Object +{ + +public: + ImplementationSource(); + virtual ::org::w3c::dom::DOMImplementation * getDOMImplementation(::java::lang::String *); + virtual ::org::w3c::dom::DOMImplementationList * getDOMImplementationList(::java::lang::String *); +private: + ::java::util::List * getImplementations(::java::lang::String *); +public: // actually package-private + virtual ::java::util::List * parseFeatures(::java::lang::String *); + virtual ::java::lang::String * getFeature(::java::lang::String *, jint, jint); +private: + static ::java::lang::String * DIGITS; + static JArray< ::org::w3c::dom::DOMImplementation * > * implementations; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ImplementationSource__ diff --git a/libjava/gnu/xml/dom/JAXPFactory$JAXPBuilder.h b/libjava/gnu/xml/dom/JAXPFactory$JAXPBuilder.h new file mode 100644 index 00000000000..464c4659ee9 --- /dev/null +++ b/libjava/gnu/xml/dom/JAXPFactory$JAXPBuilder.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_JAXPFactory$JAXPBuilder__ +#define __gnu_xml_dom_JAXPFactory$JAXPBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class Consumer; + class DomImpl; + class JAXPFactory; + class JAXPFactory$JAXPBuilder; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class Document; + } + } + namespace xml + { + namespace sax + { + class EntityResolver; + class ErrorHandler; + class InputSource; + class SAXParseException; + class XMLReader; + } + } + } +} + +class gnu::xml::dom::JAXPFactory$JAXPBuilder : public ::javax::xml::parsers::DocumentBuilder +{ + +public: // actually package-private + JAXPFactory$JAXPBuilder(::org::xml::sax::XMLReader *, ::gnu::xml::dom::JAXPFactory *); +public: + ::org::w3c::dom::Document * parse(::org::xml::sax::InputSource *); + jboolean isNamespaceAware(); + jboolean isValidating(); + void setEntityResolver(::org::xml::sax::EntityResolver *); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + ::org::w3c::dom::DOMImplementation * getDOMImplementation(); + ::org::w3c::dom::Document * newDocument(); + void fatalError(::org::xml::sax::SAXParseException *); + void error(::org::xml::sax::SAXParseException *); + void warning(::org::xml::sax::SAXParseException *); +private: + ::gnu::xml::dom::Consumer * __attribute__((aligned(__alignof__( ::javax::xml::parsers::DocumentBuilder)))) consumer; + ::org::xml::sax::XMLReader * producer; + ::gnu::xml::dom::DomImpl * impl; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_JAXPFactory$JAXPBuilder__ diff --git a/libjava/gnu/xml/dom/JAXPFactory.h b/libjava/gnu/xml/dom/JAXPFactory.h new file mode 100644 index 00000000000..16b24682692 --- /dev/null +++ b/libjava/gnu/xml/dom/JAXPFactory.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_JAXPFactory__ +#define __gnu_xml_dom_JAXPFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class JAXPFactory; + } + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class DocumentBuilder; + class SAXParserFactory; + } + } + } +} + +class gnu::xml::dom::JAXPFactory : public ::javax::xml::parsers::DocumentBuilderFactory +{ + +public: + JAXPFactory(); + ::javax::xml::parsers::DocumentBuilder * newDocumentBuilder(); + void setAttribute(::java::lang::String *, ::java::lang::Object *); + ::java::lang::Object * getAttribute(::java::lang::String *); + void setFeature(::java::lang::String *, jboolean); + jboolean getFeature(::java::lang::String *); +private: + static ::java::lang::String * PROPERTY; + static ::java::lang::String * FEATURE; + ::javax::xml::parsers::SAXParserFactory * __attribute__((aligned(__alignof__( ::javax::xml::parsers::DocumentBuilderFactory)))) pf; + jboolean secureProcessing; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_JAXPFactory__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLAnchorElement.h b/libjava/gnu/xml/dom/html2/DomHTMLAnchorElement.h new file mode 100644 index 00000000000..6df58a7579b --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLAnchorElement.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLAnchorElement__ +#define __gnu_xml_dom_html2_DomHTMLAnchorElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLAnchorElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLAnchorElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLAnchorElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAccessKey(); + virtual void setAccessKey(::java::lang::String *); + virtual ::java::lang::String * getCharset(); + virtual void setCharset(::java::lang::String *); + virtual ::java::lang::String * getCoords(); + virtual void setCoords(::java::lang::String *); + virtual ::java::lang::String * getHref(); + virtual void setHref(::java::lang::String *); + virtual ::java::lang::String * getHreflang(); + virtual void setHreflang(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getRel(); + virtual void setRel(::java::lang::String *); + virtual ::java::lang::String * getRev(); + virtual void setRev(::java::lang::String *); + virtual ::java::lang::String * getShape(); + virtual void setShape(::java::lang::String *); + virtual jint getTabIndex(); + virtual void setTabIndex(jint); + virtual ::java::lang::String * getTarget(); + virtual void setTarget(::java::lang::String *); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + virtual void blur(); + virtual void focus(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLAnchorElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLAppletElement.h b/libjava/gnu/xml/dom/html2/DomHTMLAppletElement.h new file mode 100644 index 00000000000..9976a0b7734 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLAppletElement.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLAppletElement__ +#define __gnu_xml_dom_html2_DomHTMLAppletElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLAppletElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLAppletElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLAppletElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getCls(); + virtual void setCls(::java::lang::String *); + virtual ::java::lang::String * getSrc(); + virtual void setSrc(::java::lang::String *); + virtual ::java::lang::String * getAlt(); + virtual void setAlt(::java::lang::String *); + virtual ::java::lang::String * getArchive(); + virtual void setArchive(::java::lang::String *); + virtual ::java::lang::String * getCode(); + virtual void setCode(::java::lang::String *); + virtual ::java::lang::String * getCodeBase(); + virtual void setCodeBase(::java::lang::String *); + virtual ::java::lang::String * getHeight(); + virtual void setHeight(::java::lang::String *); + virtual jint getHspace(); + virtual void setHspace(jint); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getObject(); + virtual void setObject(::java::lang::String *); + virtual jint getVspace(); + virtual void setVspace(jint); + virtual ::java::lang::String * getWidth(); + virtual void setWidth(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLAppletElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLAreaElement.h b/libjava/gnu/xml/dom/html2/DomHTMLAreaElement.h new file mode 100644 index 00000000000..2ac0c3c7afd --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLAreaElement.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLAreaElement__ +#define __gnu_xml_dom_html2_DomHTMLAreaElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLAreaElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLAreaElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLAreaElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAccessKey(); + virtual void setAccessKey(::java::lang::String *); + virtual ::java::lang::String * getAlt(); + virtual void setAlt(::java::lang::String *); + virtual ::java::lang::String * getCoords(); + virtual void setCoords(::java::lang::String *); + virtual ::java::lang::String * getHref(); + virtual void setHref(::java::lang::String *); + virtual jboolean getNoHref(); + virtual void setNoHref(jboolean); + virtual ::java::lang::String * getShape(); + virtual void setShape(::java::lang::String *); + virtual jint getTabIndex(); + virtual void setTabIndex(jint); + virtual ::java::lang::String * getTarget(); + virtual void setTarget(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLAreaElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLBRElement.h b/libjava/gnu/xml/dom/html2/DomHTMLBRElement.h new file mode 100644 index 00000000000..555ff42cd15 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLBRElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLBRElement__ +#define __gnu_xml_dom_html2_DomHTMLBRElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLBRElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLBRElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLBRElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getClear(); + virtual void setClear(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLBRElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLBaseElement.h b/libjava/gnu/xml/dom/html2/DomHTMLBaseElement.h new file mode 100644 index 00000000000..523060ad067 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLBaseElement.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLBaseElement__ +#define __gnu_xml_dom_html2_DomHTMLBaseElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLBaseElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLBaseElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLBaseElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getHref(); + virtual void setHref(::java::lang::String *); + virtual ::java::lang::String * getTarget(); + virtual void setTarget(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLBaseElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLBaseFontElement.h b/libjava/gnu/xml/dom/html2/DomHTMLBaseFontElement.h new file mode 100644 index 00000000000..b5586a35e15 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLBaseFontElement.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLBaseFontElement__ +#define __gnu_xml_dom_html2_DomHTMLBaseFontElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLBaseFontElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLBaseFontElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLBaseFontElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getColor(); + virtual void setColor(::java::lang::String *); + virtual ::java::lang::String * getFace(); + virtual void setFace(::java::lang::String *); + virtual jint getSize(); + virtual void setSize(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLBaseFontElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLBodyElement.h b/libjava/gnu/xml/dom/html2/DomHTMLBodyElement.h new file mode 100644 index 00000000000..8e633ba6f9c --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLBodyElement.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLBodyElement__ +#define __gnu_xml_dom_html2_DomHTMLBodyElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLBodyElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLBodyElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLBodyElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getALink(); + virtual void setALink(::java::lang::String *); + virtual ::java::lang::String * getBackground(); + virtual void setBackground(::java::lang::String *); + virtual ::java::lang::String * getBgColor(); + virtual void setBgColor(::java::lang::String *); + virtual ::java::lang::String * getLink(); + virtual void setLink(::java::lang::String *); + virtual ::java::lang::String * getText(); + virtual void setText(::java::lang::String *); + virtual ::java::lang::String * getVLink(); + virtual void setVLink(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLBodyElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLButtonElement.h b/libjava/gnu/xml/dom/html2/DomHTMLButtonElement.h new file mode 100644 index 00000000000..50fd3b89829 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLButtonElement.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLButtonElement__ +#define __gnu_xml_dom_html2_DomHTMLButtonElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLButtonElement; + class DomHTMLDocument; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLButtonElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLButtonElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::java::lang::String * getAccessKey(); + virtual void setAccessKey(::java::lang::String *); + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual jint getTabIndex(); + virtual void setTabIndex(jint); + virtual ::java::lang::String * getType(); + virtual ::java::lang::String * getValue(); + virtual void setValue(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLButtonElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLCollection.h b/libjava/gnu/xml/dom/html2/DomHTMLCollection.h new file mode 100644 index 00000000000..bd116d8a974 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLCollection.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLCollection__ +#define __gnu_xml_dom_html2_DomHTMLCollection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLCollection; + class DomHTMLDocument; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class NamedNodeMap; + class Node; + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLCollection : public ::java::lang::Object +{ + +public: // actually package-private + DomHTMLCollection(::gnu::xml::dom::html2::DomHTMLDocument *, ::org::w3c::dom::Node *); + virtual void addNodeName(::java::lang::String *); + virtual void addAttributeName(::java::lang::String *); +public: + virtual jshort acceptNode(::org::w3c::dom::Node *); +private: + jboolean acceptName(::java::lang::String *); + jboolean acceptAttributes(::org::w3c::dom::NamedNodeMap *); + ::org::w3c::dom::Node * getNamedItem(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *); +public: // actually package-private + virtual void evaluate(); +public: + virtual jint getLength(); + virtual void setLength(jint); + virtual ::org::w3c::dom::Node * item(jint); + virtual ::org::w3c::dom::Node * namedItem(::java::lang::String *); +public: // actually package-private + ::gnu::xml::dom::html2::DomHTMLDocument * __attribute__((aligned(__alignof__( ::java::lang::Object)))) doc; + ::org::w3c::dom::Node * root; + ::java::util::List * nodeNames; + ::java::util::List * attributeNames; + ::java::util::List * results; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLCollection__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLDListElement.h b/libjava/gnu/xml/dom/html2/DomHTMLDListElement.h new file mode 100644 index 00000000000..2a9529059ab --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLDListElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLDListElement__ +#define __gnu_xml_dom_html2_DomHTMLDListElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDListElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLDListElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLDListElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getCompact(); + virtual void setCompact(jboolean); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLDListElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLDirectoryElement.h b/libjava/gnu/xml/dom/html2/DomHTMLDirectoryElement.h new file mode 100644 index 00000000000..99ea1b5b3ae --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLDirectoryElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLDirectoryElement__ +#define __gnu_xml_dom_html2_DomHTMLDirectoryElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDirectoryElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLDirectoryElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLDirectoryElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getCompact(); + virtual void setCompact(jboolean); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLDirectoryElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLDivElement.h b/libjava/gnu/xml/dom/html2/DomHTMLDivElement.h new file mode 100644 index 00000000000..f20a796e23a --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLDivElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLDivElement__ +#define __gnu_xml_dom_html2_DomHTMLDivElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDivElement; + class DomHTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLDivElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLDivElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLDivElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLDocument.h b/libjava/gnu/xml/dom/html2/DomHTMLDocument.h new file mode 100644 index 00000000000..4602edec2f9 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLDocument.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLDocument__ +#define __gnu_xml_dom_html2_DomHTMLDocument__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLImpl; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + class Node; + class NodeList; + namespace html2 + { + class HTMLCollection; + class HTMLElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLDocument : public ::gnu::xml::dom::DomDocument +{ + +public: + DomHTMLDocument(); + DomHTMLDocument(::gnu::xml::dom::html2::DomHTMLImpl *); +private: + ::org::w3c::dom::Node * getChildNodeByName(::org::w3c::dom::Node *, ::java::lang::String *); +public: + virtual ::java::lang::String * getTitle(); + virtual void setTitle(::java::lang::String *); + virtual ::java::lang::String * getReferrer(); + virtual ::java::lang::String * getDomain(); + virtual ::java::lang::String * getURL(); + virtual ::org::w3c::dom::html2::HTMLElement * getBody(); + virtual void setBody(::org::w3c::dom::html2::HTMLElement *); + virtual ::org::w3c::dom::html2::HTMLCollection * getImages(); + virtual ::org::w3c::dom::html2::HTMLCollection * getApplets(); + virtual ::org::w3c::dom::html2::HTMLCollection * getLinks(); + virtual ::org::w3c::dom::html2::HTMLCollection * getForms(); + virtual ::org::w3c::dom::html2::HTMLCollection * getAnchors(); + virtual ::java::lang::String * getCookie(); + virtual void setCookie(::java::lang::String *); + virtual void open(); + virtual void close(); + virtual void write(::java::lang::String *); + virtual void writeln(::java::lang::String *); + virtual ::org::w3c::dom::NodeList * getElementsByName(::java::lang::String *); + virtual ::org::w3c::dom::Element * createElement(::java::lang::String *); + virtual ::org::w3c::dom::Element * createElementNS(::java::lang::String *, ::java::lang::String *); +private: + static JArray< ::java::lang::Class * > * ELEMENT_PT; + static ::java::util::Map * ELEMENT_CLASSES; + static ::java::util::Set * HTML_NS_URIS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLDocument__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLElement.h b/libjava/gnu/xml/dom/html2/DomHTMLElement.h new file mode 100644 index 00000000000..38dd789895d --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLElement.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLElement__ +#define __gnu_xml_dom_html2_DomHTMLElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLElement : public ::gnu::xml::dom::DomElement +{ + +public: // actually protected + DomHTMLElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getHTMLAttribute(::java::lang::String *); + virtual jint getIntHTMLAttribute(::java::lang::String *); + virtual jboolean getBooleanHTMLAttribute(::java::lang::String *); + virtual void setHTMLAttribute(::java::lang::String *, ::java::lang::String *); + virtual void setIntHTMLAttribute(::java::lang::String *, jint); + virtual void setBooleanHTMLAttribute(::java::lang::String *, jboolean); + virtual ::org::w3c::dom::Node * getParentElement(::java::lang::String *); + virtual ::org::w3c::dom::Node * getChildElement(::java::lang::String *); + virtual jint getIndex(); + virtual void dispatchUIEvent(::java::lang::String *); +public: + virtual ::java::lang::String * getId(); + virtual void setId(::java::lang::String *); + virtual ::java::lang::String * getTitle(); + virtual void setTitle(::java::lang::String *); + virtual ::java::lang::String * getLang(); + virtual void setLang(::java::lang::String *); + virtual ::java::lang::String * getDir(); + virtual void setDir(::java::lang::String *); + virtual ::java::lang::String * getClassName(); + virtual void setClassName(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLEmbedElement.h b/libjava/gnu/xml/dom/html2/DomHTMLEmbedElement.h new file mode 100644 index 00000000000..4ad0d5488ae --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLEmbedElement.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLEmbedElement__ +#define __gnu_xml_dom_html2_DomHTMLEmbedElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLEmbedElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLEmbedElement : public ::gnu::xml::dom::html2::DomHTMLAppletElement +{ + +public: // actually protected + DomHTMLEmbedElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getJavaObject(); + virtual void setJavaObject(::java::lang::String *); + virtual ::java::lang::String * getJavaCodeBase(); + virtual void setJavaCodeBase(::java::lang::String *); + virtual ::java::lang::String * getJavaArchive(); + virtual void setJavaArchive(::java::lang::String *); + virtual void setJavaCode(::java::lang::String *); + virtual ::java::lang::String * getJavaCode(); + virtual void setJavaType(::java::lang::String *); + virtual ::java::lang::String * getJavaType(); + virtual void setType(::java::lang::String *); + virtual ::java::lang::String * getType(); + virtual ::java::lang::String * getPluginsPage(); + virtual void setPluginsPage(::java::lang::String *); + virtual ::java::lang::String * getMayscript(); + virtual void setMayscript(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLEmbedElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLFieldSetElement.h b/libjava/gnu/xml/dom/html2/DomHTMLFieldSetElement.h new file mode 100644 index 00000000000..7eeb5b9212f --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLFieldSetElement.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLFieldSetElement__ +#define __gnu_xml_dom_html2_DomHTMLFieldSetElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLFieldSetElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLFieldSetElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLFieldSetElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLFieldSetElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLFontElement.h b/libjava/gnu/xml/dom/html2/DomHTMLFontElement.h new file mode 100644 index 00000000000..ee3dfcd90cd --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLFontElement.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLFontElement__ +#define __gnu_xml_dom_html2_DomHTMLFontElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLFontElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLFontElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLFontElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getColor(); + virtual void setColor(::java::lang::String *); + virtual ::java::lang::String * getFace(); + virtual void setFace(::java::lang::String *); + virtual ::java::lang::String * getSize(); + virtual void setSize(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLFontElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLFormElement.h b/libjava/gnu/xml/dom/html2/DomHTMLFormElement.h new file mode 100644 index 00000000000..a349505c1c4 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLFormElement.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLFormElement__ +#define __gnu_xml_dom_html2_DomHTMLFormElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLFormElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLCollection; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLFormElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLFormElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLCollection * getElements(); + virtual jint getLength(); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getAcceptCharset(); + virtual void setAcceptCharset(::java::lang::String *); + virtual ::java::lang::String * getAction(); + virtual void setAction(::java::lang::String *); + virtual ::java::lang::String * getEnctype(); + virtual void setEnctype(::java::lang::String *); + virtual ::java::lang::String * getMethod(); + virtual void setMethod(::java::lang::String *); + virtual ::java::lang::String * getTarget(); + virtual void setTarget(::java::lang::String *); + virtual void submit(); + virtual void reset(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLFormElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLFrameElement.h b/libjava/gnu/xml/dom/html2/DomHTMLFrameElement.h new file mode 100644 index 00000000000..683185b1ab2 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLFrameElement.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLFrameElement__ +#define __gnu_xml_dom_html2_DomHTMLFrameElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLFrameElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLFrameElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLFrameElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getFrameBorder(); + virtual void setFrameBorder(::java::lang::String *); + virtual ::java::lang::String * getLongDesc(); + virtual void setLongDesc(::java::lang::String *); + virtual ::java::lang::String * getMarginHeight(); + virtual void setMarginHeight(::java::lang::String *); + virtual ::java::lang::String * getMarginWidth(); + virtual void setMarginWidth(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual jboolean getNoResize(); + virtual void setNoResize(jboolean); + virtual ::java::lang::String * getScrolling(); + virtual void setScrolling(::java::lang::String *); + virtual ::java::lang::String * getSrc(); + virtual void setSrc(::java::lang::String *); + virtual ::org::w3c::dom::Document * getContentDocument(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLFrameElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLFrameSetElement.h b/libjava/gnu/xml/dom/html2/DomHTMLFrameSetElement.h new file mode 100644 index 00000000000..1a410a6c14d --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLFrameSetElement.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLFrameSetElement__ +#define __gnu_xml_dom_html2_DomHTMLFrameSetElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLFrameSetElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLFrameSetElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLFrameSetElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getCols(); + virtual void setCols(::java::lang::String *); + virtual ::java::lang::String * getRows(); + virtual void setRows(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLFrameSetElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLHRElement.h b/libjava/gnu/xml/dom/html2/DomHTMLHRElement.h new file mode 100644 index 00000000000..acea978ac1a --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLHRElement.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLHRElement__ +#define __gnu_xml_dom_html2_DomHTMLHRElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLHRElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLHRElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLHRElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual jboolean getNoShade(); + virtual void setNoShade(jboolean); + virtual ::java::lang::String * getSize(); + virtual void setSize(::java::lang::String *); + virtual ::java::lang::String * getWidth(); + virtual void setWidth(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLHRElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLHeadElement.h b/libjava/gnu/xml/dom/html2/DomHTMLHeadElement.h new file mode 100644 index 00000000000..fc83fd36534 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLHeadElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLHeadElement__ +#define __gnu_xml_dom_html2_DomHTMLHeadElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLHeadElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLHeadElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLHeadElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getProfile(); + virtual void setProfile(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLHeadElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLHeadingElement.h b/libjava/gnu/xml/dom/html2/DomHTMLHeadingElement.h new file mode 100644 index 00000000000..5610db591b8 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLHeadingElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLHeadingElement__ +#define __gnu_xml_dom_html2_DomHTMLHeadingElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLHeadingElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLHeadingElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLHeadingElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLHeadingElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLHtmlElement.h b/libjava/gnu/xml/dom/html2/DomHTMLHtmlElement.h new file mode 100644 index 00000000000..34cf12db3ab --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLHtmlElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLHtmlElement__ +#define __gnu_xml_dom_html2_DomHTMLHtmlElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLHtmlElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLHtmlElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLHtmlElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getVersion(); + virtual void setVersion(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLHtmlElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLIFrameElement.h b/libjava/gnu/xml/dom/html2/DomHTMLIFrameElement.h new file mode 100644 index 00000000000..71661b9a3ee --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLIFrameElement.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLIFrameElement__ +#define __gnu_xml_dom_html2_DomHTMLIFrameElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLIFrameElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLIFrameElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLIFrameElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getFrameBorder(); + virtual void setFrameBorder(::java::lang::String *); + virtual ::java::lang::String * getHeight(); + virtual void setHeight(::java::lang::String *); + virtual ::java::lang::String * getLongDesc(); + virtual void setLongDesc(::java::lang::String *); + virtual ::java::lang::String * getMarginHeight(); + virtual void setMarginHeight(::java::lang::String *); + virtual ::java::lang::String * getMarginWidth(); + virtual void setMarginWidth(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getScrolling(); + virtual void setScrolling(::java::lang::String *); + virtual ::java::lang::String * getSrc(); + virtual void setSrc(::java::lang::String *); + virtual ::java::lang::String * getWidth(); + virtual void setWidth(::java::lang::String *); + virtual ::org::w3c::dom::Document * getContentDocument(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLIFrameElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLImageElement.h b/libjava/gnu/xml/dom/html2/DomHTMLImageElement.h new file mode 100644 index 00000000000..dd2b429d3df --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLImageElement.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLImageElement__ +#define __gnu_xml_dom_html2_DomHTMLImageElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLImageElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLImageElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLImageElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getAlt(); + virtual void setAlt(::java::lang::String *); + virtual ::java::lang::String * getBorder(); + virtual void setBorder(::java::lang::String *); + virtual jint getHeight(); + virtual void setHeight(jint); + virtual jint getHspace(); + virtual void setHspace(jint); + virtual jboolean getIsMap(); + virtual void setIsMap(jboolean); + virtual ::java::lang::String * getLongDesc(); + virtual void setLongDesc(::java::lang::String *); + virtual ::java::lang::String * getSrc(); + virtual void setSrc(::java::lang::String *); + virtual ::java::lang::String * getUseMap(); + virtual void setUseMap(::java::lang::String *); + virtual jint getVspace(); + virtual void setVspace(jint); + virtual jint getWidth(); + virtual void setWidth(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLImageElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLImpl.h b/libjava/gnu/xml/dom/html2/DomHTMLImpl.h new file mode 100644 index 00000000000..c2d322c114d --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLImpl.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLImpl__ +#define __gnu_xml_dom_html2_DomHTMLImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLImpl; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLImpl : public ::gnu::xml::dom::DomImpl +{ + +public: + DomHTMLImpl(); +public: // actually protected + virtual ::org::w3c::dom::Document * createDocument(); +public: + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLImpl__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLInputElement.h b/libjava/gnu/xml/dom/html2/DomHTMLInputElement.h new file mode 100644 index 00000000000..85f70605fda --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLInputElement.h @@ -0,0 +1,93 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLInputElement__ +#define __gnu_xml_dom_html2_DomHTMLInputElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLInputElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLInputElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLInputElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getDefaultValue(); + virtual void setDefaultValue(::java::lang::String *); + virtual jboolean getDefaultChecked(); + virtual void setDefaultChecked(jboolean); + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::java::lang::String * getAccept(); + virtual void setAccept(::java::lang::String *); + virtual ::java::lang::String * getAccessKey(); + virtual void setAccessKey(::java::lang::String *); + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getAlt(); + virtual void setAlt(::java::lang::String *); + virtual jboolean getChecked(); + virtual void setChecked(jboolean); + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual jint getMaxLength(); + virtual void setMaxLength(jint); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual jboolean getReadOnly(); + virtual void setReadOnly(jboolean); + virtual jint getSize(); + virtual void setSize(jint); + virtual ::java::lang::String * getSrc(); + virtual void setSrc(::java::lang::String *); + virtual jint getTabIndex(); + virtual void setTabIndex(jint); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + virtual ::java::lang::String * getUseMap(); + virtual void setUseMap(::java::lang::String *); + virtual ::java::lang::String * getValue(); + virtual void setValue(::java::lang::String *); + virtual void blur(); + virtual void focus(); + virtual void select(); + virtual void click(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::html2::DomHTMLElement)))) value; + ::java::lang::Boolean * checked; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLInputElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLIsIndexElement.h b/libjava/gnu/xml/dom/html2/DomHTMLIsIndexElement.h new file mode 100644 index 00000000000..3b67d3439fa --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLIsIndexElement.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLIsIndexElement__ +#define __gnu_xml_dom_html2_DomHTMLIsIndexElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLIsIndexElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLIsIndexElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLIsIndexElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::java::lang::String * getPrompt(); + virtual void setPrompt(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLIsIndexElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLLIElement.h b/libjava/gnu/xml/dom/html2/DomHTMLLIElement.h new file mode 100644 index 00000000000..6c988909ba4 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLLIElement.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLLIElement__ +#define __gnu_xml_dom_html2_DomHTMLLIElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLLIElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLLIElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLLIElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + virtual jint getValue(); + virtual void setValue(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLLIElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLLabelElement.h b/libjava/gnu/xml/dom/html2/DomHTMLLabelElement.h new file mode 100644 index 00000000000..0ca04dc5e95 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLLabelElement.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLLabelElement__ +#define __gnu_xml_dom_html2_DomHTMLLabelElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLLabelElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLLabelElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLLabelElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::java::lang::String * getAccessKey(); + virtual void setAccessKey(::java::lang::String *); + virtual ::java::lang::String * getHtmlFor(); + virtual void setHtmlFor(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLLabelElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLLegendElement.h b/libjava/gnu/xml/dom/html2/DomHTMLLegendElement.h new file mode 100644 index 00000000000..dfcfd08b15c --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLLegendElement.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLLegendElement__ +#define __gnu_xml_dom_html2_DomHTMLLegendElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLLegendElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLLegendElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLLegendElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::java::lang::String * getAccessKey(); + virtual void setAccessKey(::java::lang::String *); + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLLegendElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLLinkElement.h b/libjava/gnu/xml/dom/html2/DomHTMLLinkElement.h new file mode 100644 index 00000000000..7f396e06f82 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLLinkElement.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLLinkElement__ +#define __gnu_xml_dom_html2_DomHTMLLinkElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLLinkElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLLinkElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLLinkElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual ::java::lang::String * getCharset(); + virtual void setCharset(::java::lang::String *); + virtual ::java::lang::String * getHref(); + virtual void setHref(::java::lang::String *); + virtual ::java::lang::String * getHreflang(); + virtual void setHreflang(::java::lang::String *); + virtual ::java::lang::String * getMedia(); + virtual void setMedia(::java::lang::String *); + virtual ::java::lang::String * getRel(); + virtual void setRel(::java::lang::String *); + virtual ::java::lang::String * getRev(); + virtual void setRev(::java::lang::String *); + virtual ::java::lang::String * getTarget(); + virtual void setTarget(::java::lang::String *); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLLinkElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLMapElement.h b/libjava/gnu/xml/dom/html2/DomHTMLMapElement.h new file mode 100644 index 00000000000..17eb5740207 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLMapElement.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLMapElement__ +#define __gnu_xml_dom_html2_DomHTMLMapElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLMapElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLCollection; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLMapElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLMapElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLCollection * getAreas(); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLMapElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLMenuElement.h b/libjava/gnu/xml/dom/html2/DomHTMLMenuElement.h new file mode 100644 index 00000000000..d0ae6872961 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLMenuElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLMenuElement__ +#define __gnu_xml_dom_html2_DomHTMLMenuElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLMenuElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLMenuElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLMenuElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getCompact(); + virtual void setCompact(jboolean); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLMenuElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLMetaElement.h b/libjava/gnu/xml/dom/html2/DomHTMLMetaElement.h new file mode 100644 index 00000000000..e2dc56929d1 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLMetaElement.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLMetaElement__ +#define __gnu_xml_dom_html2_DomHTMLMetaElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLMetaElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLMetaElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLMetaElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getContent(); + virtual void setContent(::java::lang::String *); + virtual ::java::lang::String * getHttpEquiv(); + virtual void setHttpEquiv(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getScheme(); + virtual void setScheme(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLMetaElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLModElement.h b/libjava/gnu/xml/dom/html2/DomHTMLModElement.h new file mode 100644 index 00000000000..1947ba888d7 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLModElement.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLModElement__ +#define __gnu_xml_dom_html2_DomHTMLModElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLModElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLModElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLModElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getCite(); + virtual void setCite(::java::lang::String *); + virtual ::java::lang::String * getDateTime(); + virtual void setDateTime(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLModElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLOListElement.h b/libjava/gnu/xml/dom/html2/DomHTMLOListElement.h new file mode 100644 index 00000000000..173e3d06798 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLOListElement.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLOListElement__ +#define __gnu_xml_dom_html2_DomHTMLOListElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLOListElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLOListElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLOListElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getCompact(); + virtual void setCompact(jboolean); + virtual jint getStart(); + virtual void setStart(jint); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLOListElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLObjectElement.h b/libjava/gnu/xml/dom/html2/DomHTMLObjectElement.h new file mode 100644 index 00000000000..8ab137b3124 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLObjectElement.h @@ -0,0 +1,103 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLObjectElement__ +#define __gnu_xml_dom_html2_DomHTMLObjectElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLObjectElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLObjectElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLObjectElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::java::lang::String * getCode(); + virtual void setCode(::java::lang::String *); + virtual ::java::lang::String * getJavaCode(); + virtual void setJavaCode(::java::lang::String *); + virtual ::java::lang::String * getObject(); + virtual void setObject(::java::lang::String *); + virtual ::java::lang::String * getJavaObject(); + virtual void setJavaObject(::java::lang::String *); + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getArchive(); + virtual void setArchive(::java::lang::String *); + virtual ::java::lang::String * getJavaArchive(); + virtual void setJavaArchive(::java::lang::String *); + virtual ::java::lang::String * getBorder(); + virtual void setBorder(::java::lang::String *); + virtual ::java::lang::String * getCodeBase(); + virtual void setCodeBase(::java::lang::String *); + virtual ::java::lang::String * getJavaCodeBase(); + virtual void setJavaCodeBase(::java::lang::String *); + virtual ::java::lang::String * getCodeType(); + virtual void setCodeType(::java::lang::String *); + virtual ::java::lang::String * getData(); + virtual void setData(::java::lang::String *); + virtual jboolean getDeclare(); + virtual void setDeclare(jboolean); + virtual ::java::lang::String * getHeight(); + virtual void setHeight(::java::lang::String *); + virtual jint getHspace(); + virtual void setHspace(jint); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getStandby(); + virtual void setStandby(::java::lang::String *); + virtual jint getTabIndex(); + virtual void setTabIndex(jint); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + virtual ::java::lang::String * getJavaType(); + virtual void setJavaType(::java::lang::String *); + virtual ::java::lang::String * getUseMap(); + virtual void setUseMap(::java::lang::String *); + virtual jint getVspace(); + virtual void setVspace(jint); + virtual ::java::lang::String * getWidth(); + virtual void setWidth(::java::lang::String *); + virtual ::org::w3c::dom::Document * getContentDocument(); + virtual void setMayscript(::java::lang::String *); + virtual ::java::lang::String * getMayscript(); + virtual void setScriptable(::java::lang::String *); + virtual ::java::lang::String * getScriptable(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLObjectElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLOptGroupElement.h b/libjava/gnu/xml/dom/html2/DomHTMLOptGroupElement.h new file mode 100644 index 00000000000..3a81ae1eed3 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLOptGroupElement.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLOptGroupElement__ +#define __gnu_xml_dom_html2_DomHTMLOptGroupElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLOptGroupElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLOptGroupElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLOptGroupElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual ::java::lang::String * getLabel(); + virtual void setLabel(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLOptGroupElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLOptionElement.h b/libjava/gnu/xml/dom/html2/DomHTMLOptionElement.h new file mode 100644 index 00000000000..d681c07cab5 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLOptionElement.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLOptionElement__ +#define __gnu_xml_dom_html2_DomHTMLOptionElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLOptionElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLOptionElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLOptionElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual jboolean getDefaultSelected(); + virtual void setDefaultSelected(jboolean); + virtual ::java::lang::String * getText(); + virtual jint getIndex(); + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual ::java::lang::String * getLabel(); + virtual void setLabel(::java::lang::String *); + virtual jboolean getSelected(); + virtual void setSelected(jboolean); + virtual ::java::lang::String * getValue(); + virtual void setValue(::java::lang::String *); +public: // actually protected + ::java::lang::Boolean * __attribute__((aligned(__alignof__( ::gnu::xml::dom::html2::DomHTMLElement)))) selected; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLOptionElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLParagraphElement.h b/libjava/gnu/xml/dom/html2/DomHTMLParagraphElement.h new file mode 100644 index 00000000000..8dc30e5bdf2 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLParagraphElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLParagraphElement__ +#define __gnu_xml_dom_html2_DomHTMLParagraphElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLParagraphElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLParagraphElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLParagraphElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLParagraphElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLParamElement.h b/libjava/gnu/xml/dom/html2/DomHTMLParamElement.h new file mode 100644 index 00000000000..a0acd7d5dd7 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLParamElement.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLParamElement__ +#define __gnu_xml_dom_html2_DomHTMLParamElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLParamElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLParamElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLParamElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + virtual ::java::lang::String * getValue(); + virtual void setValue(::java::lang::String *); + virtual ::java::lang::String * getValueType(); + virtual void setValueType(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLParamElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLParser.h b/libjava/gnu/xml/dom/html2/DomHTMLParser.h new file mode 100644 index 00000000000..3e01fdcdacb --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLParser.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLParser__ +#define __gnu_xml_dom_html2_DomHTMLParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLParser; + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + class TagElement; + } + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace html2 + { + class HTMLDocument; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLParser : public ::gnu::javax::swing::text::html::parser::support::Parser +{ + +public: + DomHTMLParser(::javax::swing::text::html::parser::DTD *); + virtual jboolean parseMarkupDeclarations(::java::lang::StringBuffer *); + virtual ::org::w3c::dom::html2::HTMLDocument * parseDocument(::java::io::Reader *); +public: // actually protected + virtual ::org::w3c::dom::Node * createNode(::java::lang::String *); + virtual void handleComment(JArray< jchar > *); + virtual void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleEndTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleStartTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleText(JArray< jchar > *); + ::gnu::xml::dom::html2::DomHTMLDocument * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::support::Parser)))) document; + ::org::w3c::dom::Node * cursor; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLParser__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLPreElement.h b/libjava/gnu/xml/dom/html2/DomHTMLPreElement.h new file mode 100644 index 00000000000..e74965efa7c --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLPreElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLPreElement__ +#define __gnu_xml_dom_html2_DomHTMLPreElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLPreElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLPreElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLPreElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jint getWidth(); + virtual void setWidth(jint); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLPreElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLQuoteElement.h b/libjava/gnu/xml/dom/html2/DomHTMLQuoteElement.h new file mode 100644 index 00000000000..3555201655d --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLQuoteElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLQuoteElement__ +#define __gnu_xml_dom_html2_DomHTMLQuoteElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLQuoteElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLQuoteElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLQuoteElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getCite(); + virtual void setCite(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLQuoteElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLScriptElement.h b/libjava/gnu/xml/dom/html2/DomHTMLScriptElement.h new file mode 100644 index 00000000000..cc03a8fb6b4 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLScriptElement.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLScriptElement__ +#define __gnu_xml_dom_html2_DomHTMLScriptElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLScriptElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLScriptElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLScriptElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getText(); + virtual void setText(::java::lang::String *); + virtual ::java::lang::String * getHtmlFor(); + virtual void setHtmlFor(::java::lang::String *); + virtual ::java::lang::String * getEvent(); + virtual void setEvent(::java::lang::String *); + virtual ::java::lang::String * getCharset(); + virtual void setCharset(::java::lang::String *); + virtual jboolean getDefer(); + virtual void setDefer(jboolean); + virtual ::java::lang::String * getSrc(); + virtual void setSrc(::java::lang::String *); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLScriptElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLSelectElement.h b/libjava/gnu/xml/dom/html2/DomHTMLSelectElement.h new file mode 100644 index 00000000000..51ea54c6bab --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLSelectElement.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLSelectElement__ +#define __gnu_xml_dom_html2_DomHTMLSelectElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLSelectElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLElement; + class HTMLFormElement; + class HTMLOptionsCollection; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLSelectElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLSelectElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getType(); + virtual jint getSelectedIndex(); + virtual void setSelectedIndex(jint); + virtual ::java::lang::String * getValue(); + virtual void setValue(::java::lang::String *); + virtual jint getLength(); + virtual void setLength(jint); + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::org::w3c::dom::html2::HTMLOptionsCollection * getOptions(); + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual jboolean getMultiple(); + virtual void setMultiple(jboolean); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual jint getSize(); + virtual void setSize(jint); + virtual jint getTabIndex(); + virtual void setTabIndex(jint); + virtual void add(::org::w3c::dom::html2::HTMLElement *, ::org::w3c::dom::html2::HTMLElement *); + virtual void remove(jint); + virtual void blur(); + virtual void focus(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLSelectElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLStyleElement.h b/libjava/gnu/xml/dom/html2/DomHTMLStyleElement.h new file mode 100644 index 00000000000..206539ff5e9 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLStyleElement.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLStyleElement__ +#define __gnu_xml_dom_html2_DomHTMLStyleElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLStyleElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLStyleElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLStyleElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual ::java::lang::String * getMedia(); + virtual void setMedia(::java::lang::String *); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLStyleElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTableCaptionElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTableCaptionElement.h new file mode 100644 index 00000000000..e9076499ce0 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTableCaptionElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTableCaptionElement__ +#define __gnu_xml_dom_html2_DomHTMLTableCaptionElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTableCaptionElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTableCaptionElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTableCaptionElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTableCaptionElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTableCellElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTableCellElement.h new file mode 100644 index 00000000000..7d31e5498b2 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTableCellElement.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTableCellElement__ +#define __gnu_xml_dom_html2_DomHTMLTableCellElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTableCellElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTableCellElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTableCellElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jint getCellIndex(); + virtual ::java::lang::String * getAbbr(); + virtual void setAbbr(::java::lang::String *); + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getAxis(); + virtual void setAxis(::java::lang::String *); + virtual ::java::lang::String * getBgColor(); + virtual void setBgColor(::java::lang::String *); + virtual ::java::lang::String * getCh(); + virtual void setCh(::java::lang::String *); + virtual ::java::lang::String * getChOff(); + virtual void setChOff(::java::lang::String *); + virtual jint getColSpan(); + virtual void setColSpan(jint); + virtual ::java::lang::String * getHeaders(); + virtual void setHeaders(::java::lang::String *); + virtual ::java::lang::String * getHeight(); + virtual void setHeight(::java::lang::String *); + virtual jboolean getNoWrap(); + virtual void setNoWrap(jboolean); + virtual jint getRowSpan(); + virtual void setRowSpan(jint); + virtual ::java::lang::String * getScope(); + virtual void setScope(::java::lang::String *); + virtual ::java::lang::String * getVAlign(); + virtual void setVAlign(::java::lang::String *); + virtual ::java::lang::String * getWidth(); + virtual void setWidth(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTableCellElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTableColElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTableColElement.h new file mode 100644 index 00000000000..ff55d970f60 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTableColElement.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTableColElement__ +#define __gnu_xml_dom_html2_DomHTMLTableColElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTableColElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTableColElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTableColElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getCh(); + virtual void setCh(::java::lang::String *); + virtual ::java::lang::String * getChOff(); + virtual void setChOff(::java::lang::String *); + virtual jint getSpan(); + virtual void setSpan(jint); + virtual ::java::lang::String * getVAlign(); + virtual void setVAlign(::java::lang::String *); + virtual ::java::lang::String * getWidth(); + virtual void setWidth(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTableColElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTableElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTableElement.h new file mode 100644 index 00000000000..0bc78f7cec3 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTableElement.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTableElement__ +#define __gnu_xml_dom_html2_DomHTMLTableElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTableElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace html2 + { + class HTMLCollection; + class HTMLElement; + class HTMLTableCaptionElement; + class HTMLTableSectionElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTableElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTableElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::html2::HTMLTableCaptionElement * getCaption(); + virtual void setCaption(::org::w3c::dom::html2::HTMLTableCaptionElement *); + virtual ::org::w3c::dom::html2::HTMLTableSectionElement * getTHead(); + virtual void setTHead(::org::w3c::dom::html2::HTMLTableSectionElement *); + virtual ::org::w3c::dom::html2::HTMLTableSectionElement * getTFoot(); + virtual void setTFoot(::org::w3c::dom::html2::HTMLTableSectionElement *); + virtual ::org::w3c::dom::html2::HTMLCollection * getRows(); + virtual ::org::w3c::dom::html2::HTMLCollection * getTBodies(); + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getBgColor(); + virtual void setBgColor(::java::lang::String *); + virtual ::java::lang::String * getBorder(); + virtual void setBorder(::java::lang::String *); + virtual ::java::lang::String * getCellPadding(); + virtual void setCellPadding(::java::lang::String *); + virtual ::java::lang::String * getCellSpacing(); + virtual void setCellSpacing(::java::lang::String *); + virtual ::java::lang::String * getFrame(); + virtual void setFrame(::java::lang::String *); + virtual ::java::lang::String * getRules(); + virtual void setRules(::java::lang::String *); + virtual ::java::lang::String * getSummary(); + virtual void setSummary(::java::lang::String *); + virtual ::java::lang::String * getWidth(); + virtual void setWidth(::java::lang::String *); + virtual ::org::w3c::dom::html2::HTMLElement * createTHead(); + virtual void deleteTHead(); + virtual ::org::w3c::dom::html2::HTMLElement * createTFoot(); + virtual void deleteTFoot(); + virtual ::org::w3c::dom::html2::HTMLElement * createCaption(); + virtual void deleteCaption(); + virtual ::org::w3c::dom::html2::HTMLElement * insertRow(jint); + virtual void deleteRow(jint); +public: // actually package-private + virtual ::org::w3c::dom::Node * getRow(jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTableElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTableRowElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTableRowElement.h new file mode 100644 index 00000000000..61684a4b659 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTableRowElement.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTableRowElement__ +#define __gnu_xml_dom_html2_DomHTMLTableRowElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTableRowElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace html2 + { + class HTMLCollection; + class HTMLElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTableRowElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTableRowElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jint getRowIndex(); + virtual jint getSectionRowIndex(); + virtual ::org::w3c::dom::html2::HTMLCollection * getCells(); + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getBgColor(); + virtual void setBgColor(::java::lang::String *); + virtual ::java::lang::String * getCh(); + virtual void setCh(::java::lang::String *); + virtual ::java::lang::String * getChOff(); + virtual void setChOff(::java::lang::String *); + virtual ::java::lang::String * getVAlign(); + virtual void setVAlign(::java::lang::String *); + virtual ::org::w3c::dom::html2::HTMLElement * insertCell(jint); + virtual void deleteCell(jint); +public: // actually package-private + virtual ::org::w3c::dom::Node * getCell(jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTableRowElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTableSectionElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTableSectionElement.h new file mode 100644 index 00000000000..9abf67068ba --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTableSectionElement.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTableSectionElement__ +#define __gnu_xml_dom_html2_DomHTMLTableSectionElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTableSectionElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace html2 + { + class HTMLCollection; + class HTMLElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTableSectionElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTableSectionElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlign(); + virtual void setAlign(::java::lang::String *); + virtual ::java::lang::String * getCh(); + virtual void setCh(::java::lang::String *); + virtual ::java::lang::String * getChOff(); + virtual void setChOff(::java::lang::String *); + virtual ::java::lang::String * getVAlign(); + virtual void setVAlign(::java::lang::String *); + virtual ::org::w3c::dom::html2::HTMLCollection * getRows(); + virtual ::org::w3c::dom::html2::HTMLElement * insertRow(jint); + virtual void deleteRow(jint); +public: // actually package-private + virtual ::org::w3c::dom::Node * getRow(jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTableSectionElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTextAreaElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTextAreaElement.h new file mode 100644 index 00000000000..c141217d3d8 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTextAreaElement.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTextAreaElement__ +#define __gnu_xml_dom_html2_DomHTMLTextAreaElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTextAreaElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace html2 + { + class HTMLFormElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTextAreaElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTextAreaElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getDefaultValue(); + virtual void setDefaultValue(::java::lang::String *); + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm(); + virtual ::java::lang::String * getAccessKey(); + virtual void setAccessKey(::java::lang::String *); + virtual jint getCols(); + virtual void setCols(jint); + virtual jboolean getDisabled(); + virtual void setDisabled(jboolean); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual jboolean getReadOnly(); + virtual void setReadOnly(jboolean); + virtual jint getRows(); + virtual void setRows(jint); + virtual jint getTabIndex(); + virtual void setTabIndex(jint); + virtual ::java::lang::String * getType(); + virtual ::java::lang::String * getValue(); + virtual void setValue(::java::lang::String *); + virtual void blur(); + virtual void focus(); + virtual void select(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::html2::DomHTMLElement)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTextAreaElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLTitleElement.h b/libjava/gnu/xml/dom/html2/DomHTMLTitleElement.h new file mode 100644 index 00000000000..d660525e684 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLTitleElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLTitleElement__ +#define __gnu_xml_dom_html2_DomHTMLTitleElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLTitleElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLTitleElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLTitleElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getText(); + virtual void setText(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLTitleElement__ diff --git a/libjava/gnu/xml/dom/html2/DomHTMLUListElement.h b/libjava/gnu/xml/dom/html2/DomHTMLUListElement.h new file mode 100644 index 00000000000..21ca1ad0f02 --- /dev/null +++ b/libjava/gnu/xml/dom/html2/DomHTMLUListElement.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_html2_DomHTMLUListElement__ +#define __gnu_xml_dom_html2_DomHTMLUListElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace html2 + { + class DomHTMLDocument; + class DomHTMLUListElement; + } + } + } + } +} + +class gnu::xml::dom::html2::DomHTMLUListElement : public ::gnu::xml::dom::html2::DomHTMLElement +{ + +public: // actually protected + DomHTMLUListElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean getCompact(); + virtual void setCompact(jboolean); + virtual ::java::lang::String * getType(); + virtual void setType(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_html2_DomHTMLUListElement__ diff --git a/libjava/gnu/xml/dom/ls/DomLSException.h b/libjava/gnu/xml/dom/ls/DomLSException.h new file mode 100644 index 00000000000..3fa6778a8fc --- /dev/null +++ b/libjava/gnu/xml/dom/ls/DomLSException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_DomLSException__ +#define __gnu_xml_dom_ls_DomLSException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class DomLSException; + } + } + } + } +} + +class gnu::xml::dom::ls::DomLSException : public ::org::w3c::dom::ls::LSException +{ + +public: + DomLSException(jshort, ::java::lang::Exception *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_DomLSException__ diff --git a/libjava/gnu/xml/dom/ls/DomLSInput.h b/libjava/gnu/xml/dom/ls/DomLSInput.h new file mode 100644 index 00000000000..f47de9742b6 --- /dev/null +++ b/libjava/gnu/xml/dom/ls/DomLSInput.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_DomLSInput__ +#define __gnu_xml_dom_ls_DomLSInput__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class DomLSInput; + } + } + } + } +} + +class gnu::xml::dom::ls::DomLSInput : public ::java::lang::Object +{ + +public: + DomLSInput(); + virtual ::java::io::Reader * getCharacterStream(); + virtual void setCharacterStream(::java::io::Reader *); + virtual ::java::io::InputStream * getByteStream(); + virtual void setByteStream(::java::io::InputStream *); + virtual ::java::lang::String * getStringData(); + virtual void setStringData(::java::lang::String *); + virtual ::java::lang::String * getSystemId(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getPublicId(); + virtual void setPublicId(::java::lang::String *); + virtual ::java::lang::String * getBaseURI(); + virtual void setBaseURI(::java::lang::String *); + virtual ::java::lang::String * getEncoding(); + virtual void setEncoding(::java::lang::String *); + virtual jboolean getCertifiedText(); + virtual void setCertifiedText(jboolean); +private: + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; + ::java::lang::String * systemId; + ::java::lang::String * publicId; + ::java::lang::String * baseURI; + ::java::lang::String * encoding; + jboolean certifiedText; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_DomLSInput__ diff --git a/libjava/gnu/xml/dom/ls/DomLSOutput.h b/libjava/gnu/xml/dom/ls/DomLSOutput.h new file mode 100644 index 00000000000..e6ba100c335 --- /dev/null +++ b/libjava/gnu/xml/dom/ls/DomLSOutput.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_DomLSOutput__ +#define __gnu_xml_dom_ls_DomLSOutput__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class DomLSOutput; + } + } + } + } +} + +class gnu::xml::dom::ls::DomLSOutput : public ::java::lang::Object +{ + +public: + DomLSOutput(); + virtual ::java::io::Writer * getCharacterStream(); + virtual void setCharacterStream(::java::io::Writer *); + virtual ::java::io::OutputStream * getByteStream(); + virtual void setByteStream(::java::io::OutputStream *); + virtual ::java::lang::String * getSystemId(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getEncoding(); + virtual void setEncoding(::java::lang::String *); +private: + ::java::io::OutputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) out; + ::java::lang::String * systemId; + ::java::lang::String * encoding; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_DomLSOutput__ diff --git a/libjava/gnu/xml/dom/ls/DomLSParser.h b/libjava/gnu/xml/dom/ls/DomLSParser.h new file mode 100644 index 00000000000..dd38f2b1fd0 --- /dev/null +++ b/libjava/gnu/xml/dom/ls/DomLSParser.h @@ -0,0 +1,117 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_DomLSParser__ +#define __gnu_xml_dom_ls_DomLSParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class DomLSParser; + class SAXEventSink; + } + } + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class SAXParserFactory; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMConfiguration; + class DOMStringList; + class Document; + class Node; + namespace ls + { + class LSInput; + class LSParserFilter; + } + } + } + namespace xml + { + namespace sax + { + class EntityResolver; + class ErrorHandler; + class InputSource; + class SAXParseException; + class XMLReader; + } + } + } +} + +class gnu::xml::dom::ls::DomLSParser : public ::java::lang::Object +{ + +public: + DomLSParser(jshort, ::java::lang::String *); + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig(); + virtual ::org::w3c::dom::ls::LSParserFilter * getFilter(); + virtual void setFilter(::org::w3c::dom::ls::LSParserFilter *); + virtual jboolean getAsync(); + virtual jboolean getBusy(); + virtual ::org::w3c::dom::Document * parse(::org::w3c::dom::ls::LSInput *); + virtual ::org::w3c::dom::Document * parseURI(::java::lang::String *); + virtual ::org::w3c::dom::Node * parseWithContext(::org::w3c::dom::ls::LSInput *, ::org::w3c::dom::Node *, jshort); + virtual void abort(); +private: + ::org::w3c::dom::Document * doParse(::org::w3c::dom::ls::LSInput *); + ::org::xml::sax::XMLReader * getXMLReader(); + ::org::xml::sax::InputSource * getInputSource(::org::w3c::dom::ls::LSInput *); +public: + virtual void setParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(::java::lang::String *); + virtual jboolean canSetParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::org::w3c::dom::DOMStringList * getParameterNames(); + virtual ::java::lang::String * item(jint); + virtual jint getLength(); + virtual jboolean contains(::java::lang::String *); + virtual void warning(::org::xml::sax::SAXParseException *); + virtual void error(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); +private: + static ::java::util::List * SUPPORTED_PARAMETERS; + ::org::w3c::dom::ls::LSParserFilter * __attribute__((aligned(__alignof__( ::java::lang::Object)))) filter; + jboolean async; + ::java::lang::String * schemaType; + ::gnu::xml::dom::ls::SAXEventSink * eventSink; + ::javax::xml::parsers::SAXParserFactory * factory; + ::org::xml::sax::XMLReader * reader; + jboolean namespaceAware; + jboolean ignoreWhitespace; + jboolean expandEntityReferences; + jboolean ignoreComments; + jboolean coalescing; + jboolean validating; + jboolean xIncludeAware; + ::org::xml::sax::EntityResolver * entityResolver; + ::org::xml::sax::ErrorHandler * errorHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_DomLSParser__ diff --git a/libjava/gnu/xml/dom/ls/DomLSSerializer.h b/libjava/gnu/xml/dom/ls/DomLSSerializer.h new file mode 100644 index 00000000000..90cc8655963 --- /dev/null +++ b/libjava/gnu/xml/dom/ls/DomLSSerializer.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_DomLSSerializer__ +#define __gnu_xml_dom_ls_DomLSSerializer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class DomLSSerializer; + } + } + namespace transform + { + class StreamSerializer; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMConfiguration; + class DOMStringList; + class Node; + namespace ls + { + class LSOutput; + class LSSerializerFilter; + } + } + } + } +} + +class gnu::xml::dom::ls::DomLSSerializer : public ::gnu::xml::transform::StreamSerializer +{ + +public: + DomLSSerializer(); + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig(); + virtual ::java::lang::String * getNewLine(); + virtual void setNewLine(::java::lang::String *); + virtual ::org::w3c::dom::ls::LSSerializerFilter * getFilter(); + virtual void setFilter(::org::w3c::dom::ls::LSSerializerFilter *); + virtual jboolean write(::org::w3c::dom::Node *, ::org::w3c::dom::ls::LSOutput *); + virtual jboolean writeToURI(::org::w3c::dom::Node *, ::java::lang::String *); + virtual ::java::lang::String * writeToString(::org::w3c::dom::Node *); + virtual void serialize(::org::w3c::dom::Node *, ::java::io::OutputStream *); + virtual void setParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(::java::lang::String *); + virtual jboolean canSetParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::org::w3c::dom::DOMStringList * getParameterNames(); + virtual ::java::lang::String * item(jint); + virtual jint getLength(); + virtual jboolean contains(::java::lang::String *); +private: + static ::java::util::List * SUPPORTED_PARAMETERS; + ::org::w3c::dom::ls::LSSerializerFilter * __attribute__((aligned(__alignof__( ::gnu::xml::transform::StreamSerializer)))) filter; + ::gnu::xml::transform::StreamSerializer * serializer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_DomLSSerializer__ diff --git a/libjava/gnu/xml/dom/ls/FilteredSAXEventSink.h b/libjava/gnu/xml/dom/ls/FilteredSAXEventSink.h new file mode 100644 index 00000000000..2fb867007f1 --- /dev/null +++ b/libjava/gnu/xml/dom/ls/FilteredSAXEventSink.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_FilteredSAXEventSink__ +#define __gnu_xml_dom_ls_FilteredSAXEventSink__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class FilteredSAXEventSink; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Node; + namespace ls + { + class LSParserFilter; + } + } + } + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::xml::dom::ls::FilteredSAXEventSink : public ::gnu::xml::dom::ls::SAXEventSink +{ + +public: // actually package-private + FilteredSAXEventSink(::org::w3c::dom::ls::LSParserFilter *); +public: + virtual void startDocument(); + virtual void endDocument(); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); +public: // actually protected + virtual ::org::w3c::dom::Attr * createAttr(::org::xml::sax::Attributes *, jint); +public: + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endDTD(); + virtual void comment(JArray< jchar > *, jint, jint); +public: // actually package-private + virtual jshort getDecision(::org::w3c::dom::Node *, jboolean); + ::org::w3c::dom::ls::LSParserFilter * __attribute__((aligned(__alignof__( ::gnu::xml::dom::ls::SAXEventSink)))) filter; + jint whatToShow; + ::java::util::LinkedList * nodes; + ::java::util::LinkedList * decisions; + jboolean rejecting; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_FilteredSAXEventSink__ diff --git a/libjava/gnu/xml/dom/ls/ReaderInputStream.h b/libjava/gnu/xml/dom/ls/ReaderInputStream.h new file mode 100644 index 00000000000..7fa7d937614 --- /dev/null +++ b/libjava/gnu/xml/dom/ls/ReaderInputStream.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_ReaderInputStream__ +#define __gnu_xml_dom_ls_ReaderInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class ReaderInputStream; + } + } + } + } +} + +class gnu::xml::dom::ls::ReaderInputStream : public ::java::io::InputStream +{ + +public: + ReaderInputStream(::java::io::Reader *); +public: // actually package-private + virtual void setEncoding(::java::lang::String *); +public: + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void close(); + virtual jboolean markSupported(); + virtual void mark(jint); + virtual void reset(); + virtual jlong skip(jlong); + virtual jint available(); + virtual ::java::lang::String * toString(); +private: + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) reader; + ::java::lang::String * encoding; + JArray< jbyte > * extra; + jint pos; + JArray< jbyte > * extra_marked; + jint pos_marked; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_ReaderInputStream__ diff --git a/libjava/gnu/xml/dom/ls/SAXEventSink.h b/libjava/gnu/xml/dom/ls/SAXEventSink.h new file mode 100644 index 00000000000..ec35c66b68e --- /dev/null +++ b/libjava/gnu/xml/dom/ls/SAXEventSink.h @@ -0,0 +1,126 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_SAXEventSink__ +#define __gnu_xml_dom_ls_SAXEventSink__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + class DomDocument; + namespace ls + { + class SAXEventSink; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class Element; + class Node; + class Text; + } + } + namespace xml + { + namespace sax + { + class Attributes; + class Locator; + class XMLReader; + } + } + } +} + +class gnu::xml::dom::ls::SAXEventSink : public ::java::lang::Object +{ + +public: + SAXEventSink(); +public: // actually package-private + virtual void interrupt(); +public: // actually protected + virtual ::org::w3c::dom::Document * getDocument(); +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); +public: // actually protected + virtual ::org::w3c::dom::Element * createElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual ::org::w3c::dom::Attr * createAttr(::org::xml::sax::Attributes *, jint); +public: + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); +public: // actually protected + virtual ::org::w3c::dom::Text * createText(JArray< jchar > *, jint, jint); +public: + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); +public: // actually protected + virtual ::org::w3c::dom::Node * createProcessingInstruction(::java::lang::String *, ::java::lang::String *); +public: + virtual void skippedEntity(::java::lang::String *); + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually protected + virtual ::org::w3c::dom::Node * createDocumentType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual void endDTD(); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + virtual void startCDATA(); + virtual void endCDATA(); + virtual void comment(JArray< jchar > *, jint, jint); +public: // actually protected + virtual ::org::w3c::dom::Node * createComment(JArray< jchar > *, jint, jint); +public: + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void elementDecl(::java::lang::String *, ::java::lang::String *); + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +private: + static ::java::lang::String * XMLNS_URI; + static ::java::lang::String * XMLNS_PREFIX; + static ::java::util::HashSet * PREDEFINED_ENTITIES; +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) namespaceAware; + jboolean ignoreWhitespace; + jboolean expandEntityReferences; + jboolean ignoreComments; + jboolean coalescing; + ::org::xml::sax::XMLReader * reader; + ::gnu::xml::dom::DomDocument * doc; + ::org::w3c::dom::Node * ctx; + ::java::util::LinkedList * entityCtx; + ::java::util::List * pending; + ::org::xml::sax::Locator * locator; + jboolean inCDATA; + jboolean inDTD; + jboolean interrupted; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_SAXEventSink__ diff --git a/libjava/gnu/xml/dom/ls/WriterOutputStream.h b/libjava/gnu/xml/dom/ls/WriterOutputStream.h new file mode 100644 index 00000000000..5663844da6b --- /dev/null +++ b/libjava/gnu/xml/dom/ls/WriterOutputStream.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_dom_ls_WriterOutputStream__ +#define __gnu_xml_dom_ls_WriterOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace dom + { + namespace ls + { + class WriterOutputStream; + } + } + } + } +} + +class gnu::xml::dom::ls::WriterOutputStream : public ::java::io::OutputStream +{ + +public: + WriterOutputStream(::java::io::Writer *); +public: // actually package-private + virtual void setEncoding(::java::lang::String *); +public: + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void close(); + virtual void flush(); +private: + ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) writer; + ::java::lang::String * encoding; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_dom_ls_WriterOutputStream__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeAttr.h b/libjava/gnu/xml/libxmlj/dom/GnomeAttr.h new file mode 100644 index 00000000000..9619be9c523 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeAttr.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeAttr__ +#define __gnu_xml_libxmlj_dom_GnomeAttr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeAttr; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + class Node; + class TypeInfo; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeAttr : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeAttr(::java::lang::Object *); +public: + virtual ::java::lang::String * getName(); + virtual jboolean getSpecified(); + virtual ::java::lang::String * getValue(); + virtual void setValue(::java::lang::String *); + virtual ::org::w3c::dom::Node * getParentNode(); + virtual ::org::w3c::dom::Element * getOwnerElement(); + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo(); + virtual jboolean isId(); +private: + jboolean xmljIsId(); +public: + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeAttr__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeCDATASection.h b/libjava/gnu/xml/libxmlj/dom/GnomeCDATASection.h new file mode 100644 index 00000000000..b8c3083192f --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeCDATASection.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeCDATASection__ +#define __gnu_xml_libxmlj_dom_GnomeCDATASection__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeCDATASection; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeCDATASection : public ::gnu::xml::libxmlj::dom::GnomeText +{ + +public: // actually package-private + GnomeCDATASection(::java::lang::Object *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeCDATASection__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeCharacterData.h b/libjava/gnu/xml/libxmlj/dom/GnomeCharacterData.h new file mode 100644 index 00000000000..93c6b31dfb6 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeCharacterData.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeCharacterData__ +#define __gnu_xml_libxmlj_dom_GnomeCharacterData__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeCharacterData; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeCharacterData : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeCharacterData(::java::lang::Object *); +public: + virtual ::java::lang::String * getData(); + virtual void setData(::java::lang::String *); + virtual jint getLength(); + virtual ::java::lang::String * substringData(jint, jint); + virtual void appendData(::java::lang::String *); + virtual void insertData(jint, ::java::lang::String *); + virtual void deleteData(jint, jint); + virtual void replaceData(jint, jint, ::java::lang::String *); + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeCharacterData__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeComment.h b/libjava/gnu/xml/libxmlj/dom/GnomeComment.h new file mode 100644 index 00000000000..211d938ab80 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeComment.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeComment__ +#define __gnu_xml_libxmlj_dom_GnomeComment__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeComment; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeComment : public ::gnu::xml::libxmlj::dom::GnomeCharacterData +{ + +public: // actually package-private + GnomeComment(::java::lang::Object *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeComment__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeDOMException.h b/libjava/gnu/xml/libxmlj/dom/GnomeDOMException.h new file mode 100644 index 00000000000..1a331eb7588 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeDOMException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeDOMException__ +#define __gnu_xml_libxmlj_dom_GnomeDOMException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDOMException; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeDOMException : public ::org::w3c::dom::DOMException +{ + +public: // actually package-private + GnomeDOMException(jshort, ::java::lang::String *); +private: + static ::java::lang::String * createMessage(jint, ::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeDOMException__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeDOMStringList.h b/libjava/gnu/xml/libxmlj/dom/GnomeDOMStringList.h new file mode 100644 index 00000000000..ba58526ff81 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeDOMStringList.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeDOMStringList__ +#define __gnu_xml_libxmlj_dom_GnomeDOMStringList__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDOMStringList; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeDOMStringList : public ::java::lang::Object +{ + +public: // actually package-private + GnomeDOMStringList(JArray< ::java::lang::String * > *); +public: + virtual jint getLength(); + virtual ::java::lang::String * item(jint); + virtual jboolean contains(::java::lang::String *); +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) values; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeDOMStringList__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeDocument.h b/libjava/gnu/xml/libxmlj/dom/GnomeDocument.h new file mode 100644 index 00000000000..8f49b25188a --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeDocument.h @@ -0,0 +1,148 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeDocument__ +#define __gnu_xml_libxmlj_dom_GnomeDocument__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDocument; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class CDATASection; + class Comment; + class DOMConfiguration; + class DOMErrorHandler; + class DOMImplementation; + class DOMStringList; + class DocumentFragment; + class DocumentType; + class Element; + class EntityReference; + class Node; + class NodeList; + class ProcessingInstruction; + class Text; + namespace traversal + { + class NodeFilter; + class NodeIterator; + class TreeWalker; + } + namespace xpath + { + class XPathExpression; + class XPathNSResolver; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeDocument : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeDocument(::java::lang::Object *); +public: // actually protected + virtual void finalize(); +private: + void free(::java::lang::Object *); +public: + virtual ::org::w3c::dom::DocumentType * getDoctype(); + virtual ::org::w3c::dom::DOMImplementation * getImplementation(); + virtual ::org::w3c::dom::Element * getDocumentElement(); + virtual ::org::w3c::dom::Element * createElement(::java::lang::String *); + virtual ::org::w3c::dom::DocumentType * createDocumentType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::DocumentFragment * createDocumentFragment(); + virtual ::org::w3c::dom::Text * createTextNode(::java::lang::String *); + virtual ::org::w3c::dom::Comment * createComment(::java::lang::String *); + virtual ::org::w3c::dom::CDATASection * createCDATASection(::java::lang::String *); + virtual ::org::w3c::dom::ProcessingInstruction * createProcessingInstruction(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * createAttribute(::java::lang::String *); + virtual ::org::w3c::dom::EntityReference * createEntityReference(::java::lang::String *); + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *); + virtual ::org::w3c::dom::Node * importNode(::org::w3c::dom::Node *, jboolean); +private: + ::org::w3c::dom::Node * xmljImportNode(::org::w3c::dom::Node *, jboolean); +public: + virtual ::org::w3c::dom::Element * createElementNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * createAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Element * getElementById(::java::lang::String *); +private: + ::org::w3c::dom::Element * xmljGetElementById(::java::lang::String *); +public: + virtual ::java::lang::String * getInputEncoding(); + virtual ::java::lang::String * getXmlEncoding(); + virtual jboolean getXmlStandalone(); + virtual void setXmlStandalone(jboolean); + virtual ::java::lang::String * getXmlVersion(); + virtual void setXmlVersion(::java::lang::String *); + virtual jboolean getStrictErrorChecking(); + virtual void setStrictErrorChecking(jboolean); + virtual ::java::lang::String * getDocumentURI(); + virtual void setDocumentURI(::java::lang::String *); + virtual ::org::w3c::dom::Node * adoptNode(::org::w3c::dom::Node *); +private: + ::org::w3c::dom::Node * xmljAdoptNode(::org::w3c::dom::Node *); +public: + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig(); + virtual void normalizeDocument(); + virtual ::org::w3c::dom::Node * renameNode(::org::w3c::dom::Node *, ::java::lang::String *, ::java::lang::String *); + virtual void setParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(::java::lang::String *); + virtual jboolean canSetParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::org::w3c::dom::DOMStringList * getParameterNames(); +private: + jboolean getBooleanValue(::java::lang::Object *); +public: + virtual ::org::w3c::dom::xpath::XPathExpression * createExpression(::java::lang::String *, ::org::w3c::dom::xpath::XPathNSResolver *); + virtual ::org::w3c::dom::xpath::XPathNSResolver * createNSResolver(::org::w3c::dom::Node *); + virtual ::java::lang::Object * evaluate(::java::lang::String *, ::org::w3c::dom::Node *, ::org::w3c::dom::xpath::XPathNSResolver *, jshort, ::java::lang::Object *); + virtual ::org::w3c::dom::traversal::NodeIterator * createNodeIterator(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean); + virtual ::org::w3c::dom::traversal::TreeWalker * createTreeWalker(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::org::w3c::dom::DOMImplementation * __attribute__((aligned(__alignof__( ::gnu::xml::libxmlj::dom::GnomeNode)))) dom; + jboolean strictErrorChecking; + jboolean canonicalForm; + jboolean cdataSections; + jboolean checkCharacterNormalization; + jboolean comments; + jboolean datatypeNormalization; + jboolean elementContentWhitespace; + jboolean entities; + ::org::w3c::dom::DOMErrorHandler * errorHandler; + jboolean namespaces; + jboolean namespaceDeclarations; + jboolean normalizeCharacters; + jboolean splitCdataSections; + jboolean validate; + jboolean validateIfSchema; + jboolean wellFormed; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeDocument__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.h b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.h new file mode 100644 index 00000000000..b71081d3afa --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeDocumentBuilder__ +#define __gnu_xml_libxmlj_dom_GnomeDocumentBuilder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDocumentBuilder; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class Document; + class DocumentType; + } + } + namespace xml + { + namespace sax + { + class EntityResolver; + class ErrorHandler; + class InputSource; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeDocumentBuilder : public ::javax::xml::parsers::DocumentBuilder +{ + +public: + GnomeDocumentBuilder(); + GnomeDocumentBuilder(jboolean, jboolean, jboolean); + virtual ::org::w3c::dom::DOMImplementation * getDOMImplementation(); + virtual jboolean isNamespaceAware(); + virtual jboolean isValidating(); + virtual ::org::w3c::dom::Document * newDocument(); + virtual ::org::w3c::dom::Document * parse(::org::xml::sax::InputSource *); +private: + ::org::w3c::dom::Document * parseStream(::java::io::InputStream *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean, jboolean, jboolean, jboolean); +public: + virtual void setEntityResolver(::org::xml::sax::EntityResolver *); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual jboolean hasFeature(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Document * createDocument(::java::lang::String *, ::java::lang::String *, ::org::w3c::dom::DocumentType *); + virtual ::org::w3c::dom::DocumentType * createDocumentType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +private: + void setDocumentLocator(::java::lang::Object *, ::java::lang::Object *); + ::java::io::InputStream * resolveEntity(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void warning(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + void error(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + void fatalError(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + jboolean __attribute__((aligned(__alignof__( ::javax::xml::parsers::DocumentBuilder)))) validate; + jboolean coalesce; + jboolean expandEntities; + ::org::xml::sax::EntityResolver * entityResolver; + ::org::xml::sax::ErrorHandler * errorHandler; + jboolean seenFatalError; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeDocumentBuilder__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.h b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.h new file mode 100644 index 00000000000..465a17f264f --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeDocumentBuilderFactory__ +#define __gnu_xml_libxmlj_dom_GnomeDocumentBuilderFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDocumentBuilderFactory; + } + } + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class DocumentBuilder; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeDocumentBuilderFactory : public ::javax::xml::parsers::DocumentBuilderFactory +{ + +public: + GnomeDocumentBuilderFactory(); + virtual ::java::lang::Object * getAttribute(::java::lang::String *); + virtual ::javax::xml::parsers::DocumentBuilder * newDocumentBuilder(); + virtual void setAttribute(::java::lang::String *, ::java::lang::Object *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual jboolean getFeature(::java::lang::String *); +private: + jboolean __attribute__((aligned(__alignof__( ::javax::xml::parsers::DocumentBuilderFactory)))) secureProcessing; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeDocumentBuilderFactory__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeDocumentFragment.h b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentFragment.h new file mode 100644 index 00000000000..bac97adc83e --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentFragment.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeDocumentFragment__ +#define __gnu_xml_libxmlj_dom_GnomeDocumentFragment__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDocumentFragment; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeDocumentFragment : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeDocumentFragment(::java::lang::Object *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeDocumentFragment__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeDocumentType.h b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentType.h new file mode 100644 index 00000000000..d0eff62f8a6 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeDocumentType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeDocumentType__ +#define __gnu_xml_libxmlj_dom_GnomeDocumentType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDocumentType; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class NamedNodeMap; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeDocumentType : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeDocumentType(::java::lang::Object *); +public: + virtual ::java::lang::String * getName(); + virtual ::org::w3c::dom::NamedNodeMap * getEntities(); + virtual ::org::w3c::dom::NamedNodeMap * getNotations(); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * getInternalSubset(); + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeDocumentType__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeElement.h b/libjava/gnu/xml/libxmlj/dom/GnomeElement.h new file mode 100644 index 00000000000..b02399165ea --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeElement.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeElement__ +#define __gnu_xml_libxmlj_dom_GnomeElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeElement; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class NodeList; + class TypeInfo; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeElement : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeElement(::java::lang::Object *); +public: + virtual ::java::lang::String * getTagName(); + virtual ::java::lang::String * getAttribute(::java::lang::String *); + virtual void setAttribute(::java::lang::String *, ::java::lang::String *); + virtual void removeAttribute(::java::lang::String *); + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *); + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *); + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *); + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *); + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *); + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *); + virtual jboolean hasAttribute(::java::lang::String *); + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo(); + virtual void setIdAttribute(::java::lang::String *, jboolean); + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean); + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::java::util::Set * __attribute__((aligned(__alignof__( ::gnu::xml::libxmlj::dom::GnomeNode)))) userIdAttrs; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeElement__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeEntity.h b/libjava/gnu/xml/libxmlj/dom/GnomeEntity.h new file mode 100644 index 00000000000..f0611ff9637 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeEntity.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeEntity__ +#define __gnu_xml_libxmlj_dom_GnomeEntity__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeEntity; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeEntity : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeEntity(::java::lang::Object *); +public: + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * getNotationName(); + virtual ::java::lang::String * getInputEncoding(); + virtual ::java::lang::String * getXmlEncoding(); + virtual ::java::lang::String * getXmlVersion(); + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeEntity__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeEntityReference.h b/libjava/gnu/xml/libxmlj/dom/GnomeEntityReference.h new file mode 100644 index 00000000000..22cc5c7fee7 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeEntityReference.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeEntityReference__ +#define __gnu_xml_libxmlj_dom_GnomeEntityReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeEntityReference; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeEntityReference : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeEntityReference(::java::lang::Object *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeEntityReference__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.h b/libjava/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.h new file mode 100644 index 00000000000..7dfd2aeb641 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeNamedNodeMap__ +#define __gnu_xml_libxmlj_dom_GnomeNamedNodeMap__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeNamedNodeMap; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeNamedNodeMap : public ::java::lang::Object +{ + +public: // actually package-private + GnomeNamedNodeMap(::java::lang::Object *, jint); +public: + virtual ::org::w3c::dom::Node * getNamedItem(::java::lang::String *); + virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * removeNamedItem(::java::lang::String *); + virtual ::org::w3c::dom::Node * item(jint); + virtual jint getLength(); + virtual ::org::w3c::dom::Node * getNamedItemNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Node * setNamedItemNS(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * removeNamedItemNS(::java::lang::String *, ::java::lang::String *); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + jint type; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeNamedNodeMap__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeNode.h b/libjava/gnu/xml/libxmlj/dom/GnomeNode.h new file mode 100644 index 00000000000..6f9ac92f3af --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeNode.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeNode__ +#define __gnu_xml_libxmlj_dom_GnomeNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeNode; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeNode : public ::java::lang::Object +{ + +public: // actually package-private + static ::gnu::xml::libxmlj::dom::GnomeNode * newInstance(::java::lang::Object *, ::java::lang::Object *, jint); + static void freeDocument(::java::lang::Object *); + GnomeNode(::java::lang::Object *); +public: + virtual ::java::lang::String * getNodeName(); + virtual ::java::lang::String * getNodeValue(); + virtual void setNodeValue(::java::lang::String *); + virtual jshort getNodeType(); + virtual ::org::w3c::dom::Node * getParentNode(); + virtual ::org::w3c::dom::NodeList * getChildNodes(); + virtual ::org::w3c::dom::Node * getFirstChild(); + virtual ::org::w3c::dom::Node * getLastChild(); + virtual ::org::w3c::dom::Node * getPreviousSibling(); + virtual ::org::w3c::dom::Node * getNextSibling(); + virtual ::org::w3c::dom::NamedNodeMap * getAttributes(); + virtual ::org::w3c::dom::Document * getOwnerDocument(); + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +private: + ::org::w3c::dom::Node * xmljInsertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +private: + ::org::w3c::dom::Node * xmljReplaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *); +private: + ::org::w3c::dom::Node * xmljRemoveChild(::org::w3c::dom::Node *); +public: + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *); +private: + ::org::w3c::dom::Node * xmljAppendChild(::org::w3c::dom::Node *); +public: + virtual jboolean hasChildNodes(); + virtual ::org::w3c::dom::Node * cloneNode(jboolean); +private: + ::org::w3c::dom::Node * xmljCloneNode(jboolean); +public: + virtual void normalize(); + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getNamespaceURI(); + virtual ::java::lang::String * getPrefix(); + virtual void setPrefix(::java::lang::String *); + virtual ::java::lang::String * getLocalName(); + virtual jboolean hasAttributes(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getBaseURI(); + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *); + virtual jint compareTo(::java::lang::Object *); +private: + jint xmljCompareTo(::java::lang::Object *); +public: + virtual ::java::lang::String * getTextContent(); + virtual void setTextContent(::java::lang::String *); + virtual jboolean isSameNode(::org::w3c::dom::Node *); + virtual ::java::lang::String * lookupPrefix(::java::lang::String *); + virtual jboolean isDefaultNamespace(::java::lang::String *); + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *); + virtual jboolean isEqualNode(::org::w3c::dom::Node *); + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *); + virtual ::java::lang::Object * getUserData(::java::lang::String *); +public: // actually package-private + virtual void notifyUserDataHandlers(jshort, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + static ::java::util::Map * instances; + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::java::util::Map * userData; + ::java::util::Map * userDataHandlers; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeNode__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeNodeList.h b/libjava/gnu/xml/libxmlj/dom/GnomeNodeList.h new file mode 100644 index 00000000000..8ded813f6f5 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeNodeList.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeNodeList__ +#define __gnu_xml_libxmlj_dom_GnomeNodeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeNodeList; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeNodeList : public ::java::lang::Object +{ + +public: // actually package-private + GnomeNodeList(::java::lang::Object *); +public: + virtual ::org::w3c::dom::Node * item(jint); + virtual jint getLength(); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeNodeList__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeNotation.h b/libjava/gnu/xml/libxmlj/dom/GnomeNotation.h new file mode 100644 index 00000000000..627e09c84c7 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeNotation.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeNotation__ +#define __gnu_xml_libxmlj_dom_GnomeNotation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeNotation; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeNotation : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeNotation(::java::lang::Object *); +public: + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeNotation__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.h b/libjava/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.h new file mode 100644 index 00000000000..c3097b9f56c --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__ +#define __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeProcessingInstruction; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeProcessingInstruction : public ::gnu::xml::libxmlj::dom::GnomeNode +{ + +public: // actually package-private + GnomeProcessingInstruction(::java::lang::Object *); +public: + virtual ::java::lang::String * getTarget(); + virtual ::java::lang::String * getData(); + virtual void setData(::java::lang::String *); + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeText.h b/libjava/gnu/xml/libxmlj/dom/GnomeText.h new file mode 100644 index 00000000000..220052d9750 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeText.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeText__ +#define __gnu_xml_libxmlj_dom_GnomeText__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeText; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Text; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeText : public ::gnu::xml::libxmlj::dom::GnomeCharacterData +{ + +public: // actually package-private + GnomeText(::java::lang::Object *); +public: + virtual ::org::w3c::dom::Text * splitText(jint); + virtual jboolean isElementContentWhitespace(); + virtual ::java::lang::String * getWholeText(); + virtual ::org::w3c::dom::Text * replaceWholeText(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeText__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeTypeInfo.h b/libjava/gnu/xml/libxmlj/dom/GnomeTypeInfo.h new file mode 100644 index 00000000000..d775bc76d34 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeTypeInfo.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeTypeInfo__ +#define __gnu_xml_libxmlj_dom_GnomeTypeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeTypeInfo; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeTypeInfo : public ::java::lang::Object +{ + +public: // actually package-private + GnomeTypeInfo(::java::lang::Object *); +public: + virtual ::java::lang::String * getTypeName(); + virtual ::java::lang::String * getTypeNamespace(); + virtual jboolean isDerivedFrom(::java::lang::String *, ::java::lang::String *, jint); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeTypeInfo__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeXPathExpression.h b/libjava/gnu/xml/libxmlj/dom/GnomeXPathExpression.h new file mode 100644 index 00000000000..ca88b7742c2 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeXPathExpression.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeXPathExpression__ +#define __gnu_xml_libxmlj_dom_GnomeXPathExpression__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDocument; + class GnomeXPathExpression; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace xpath + { + class XPathNSResolver; + } + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeXPathExpression : public ::java::lang::Object +{ + +public: // actually package-private + GnomeXPathExpression(::gnu::xml::libxmlj::dom::GnomeDocument *, ::java::lang::String *, ::org::w3c::dom::xpath::XPathNSResolver *); +public: // actually protected + virtual void finalize(); +private: + ::java::lang::Object * init(::java::lang::String *); + void free(::java::lang::Object *); +public: + virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jshort, ::java::lang::Object *); +private: + ::java::lang::Object * doEvaluate(::java::lang::Object *, ::org::w3c::dom::Node *, jshort, ::java::lang::Object *); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) expr; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeXPathExpression__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.h b/libjava/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.h new file mode 100644 index 00000000000..5728efb69e6 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeXPathNSResolver.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__ +#define __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeXPathNSResolver; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeXPathNSResolver : public ::java::lang::Object +{ + +public: // actually package-private + GnomeXPathNSResolver(::org::w3c::dom::Node *); +public: + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *); +public: // actually package-private + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) node; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeXPathNodeList.h b/libjava/gnu/xml/libxmlj/dom/GnomeXPathNodeList.h new file mode 100644 index 00000000000..cc2a7573b00 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeXPathNodeList.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeXPathNodeList__ +#define __gnu_xml_libxmlj_dom_GnomeXPathNodeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeXPathNodeList; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeXPathNodeList : public ::java::lang::Object +{ + +public: // actually package-private + GnomeXPathNodeList(::java::lang::Object *); +public: // actually protected + virtual void finalize(); +private: + void free(::java::lang::Object *); +public: + virtual jint getLength(); + virtual ::org::w3c::dom::Node * item(jint); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) obj; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeXPathNodeList__ diff --git a/libjava/gnu/xml/libxmlj/dom/GnomeXPathResult.h b/libjava/gnu/xml/libxmlj/dom/GnomeXPathResult.h new file mode 100644 index 00000000000..5616ce37af0 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/dom/GnomeXPathResult.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_dom_GnomeXPathResult__ +#define __gnu_xml_libxmlj_dom_GnomeXPathResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeXPathResult; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::libxmlj::dom::GnomeXPathResult : public ::java::lang::Object +{ + +public: // actually package-private + GnomeXPathResult(::java::lang::Object *); +public: // actually protected + virtual void finalize(); +private: + void free(::java::lang::Object *); +public: + virtual jshort getResultType(); + virtual jdouble getNumberValue(); + virtual ::java::lang::String * getStringValue(); + virtual jboolean getBooleanValue(); + virtual ::org::w3c::dom::Node * getSingleNodeValue(); + virtual jboolean getInvalidIteratorState(); + virtual jint getSnapshotLength(); + virtual ::org::w3c::dom::Node * iterateNext(); + virtual ::org::w3c::dom::Node * snapshotItem(jint); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) obj; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_dom_GnomeXPathResult__ diff --git a/libjava/gnu/xml/libxmlj/sax/GnomeLocator.h b/libjava/gnu/xml/libxmlj/sax/GnomeLocator.h new file mode 100644 index 00000000000..8697c204d04 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/sax/GnomeLocator.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_sax_GnomeLocator__ +#define __gnu_xml_libxmlj_sax_GnomeLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace sax + { + class GnomeLocator; + } + } + } + } +} + +class gnu::xml::libxmlj::sax::GnomeLocator : public ::java::lang::Object +{ + +public: // actually package-private + GnomeLocator(::java::lang::Object *, ::java::lang::Object *); +public: + virtual ::java::lang::String * getPublicId(); +private: + ::java::lang::String * publicId(::java::lang::Object *, ::java::lang::Object *); +public: + virtual ::java::lang::String * getSystemId(); +private: + ::java::lang::String * systemId(::java::lang::Object *, ::java::lang::Object *); +public: + virtual jint getLineNumber(); +private: + jint lineNumber(::java::lang::Object *, ::java::lang::Object *); +public: + virtual jint getColumnNumber(); +private: + jint columnNumber(::java::lang::Object *, ::java::lang::Object *); + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ctx; + ::java::lang::Object * loc; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_sax_GnomeLocator__ diff --git a/libjava/gnu/xml/libxmlj/sax/GnomeSAXParser.h b/libjava/gnu/xml/libxmlj/sax/GnomeSAXParser.h new file mode 100644 index 00000000000..0aae0b1285b --- /dev/null +++ b/libjava/gnu/xml/libxmlj/sax/GnomeSAXParser.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_sax_GnomeSAXParser__ +#define __gnu_xml_libxmlj_sax_GnomeSAXParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace sax + { + class GnomeSAXParser; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Parser; + class XMLReader; + } + } + } +} + +class gnu::xml::libxmlj::sax::GnomeSAXParser : public ::javax::xml::parsers::SAXParser +{ + +public: // actually package-private + GnomeSAXParser(jboolean, jboolean); +public: + virtual ::org::xml::sax::Parser * getParser(); + virtual ::org::xml::sax::XMLReader * getXMLReader(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual jboolean isNamespaceAware(); + virtual jboolean isValidating(); +private: + jboolean __attribute__((aligned(__alignof__( ::javax::xml::parsers::SAXParser)))) namespaceAware; + jboolean validating; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_sax_GnomeSAXParser__ diff --git a/libjava/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.h b/libjava/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.h new file mode 100644 index 00000000000..3c791c1b9e9 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/sax/GnomeSAXParserFactory.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_sax_GnomeSAXParserFactory__ +#define __gnu_xml_libxmlj_sax_GnomeSAXParserFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace sax + { + class GnomeSAXParserFactory; + } + } + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class SAXParser; + } + } + } +} + +class gnu::xml::libxmlj::sax::GnomeSAXParserFactory : public ::javax::xml::parsers::SAXParserFactory +{ + +public: + GnomeSAXParserFactory(); + virtual ::javax::xml::parsers::SAXParser * newSAXParser(); + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); +private: + ::java::util::Map * __attribute__((aligned(__alignof__( ::javax::xml::parsers::SAXParserFactory)))) features; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_sax_GnomeSAXParserFactory__ diff --git a/libjava/gnu/xml/libxmlj/sax/GnomeXMLReader.h b/libjava/gnu/xml/libxmlj/sax/GnomeXMLReader.h new file mode 100644 index 00000000000..e27238f2886 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/sax/GnomeXMLReader.h @@ -0,0 +1,130 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_sax_GnomeXMLReader__ +#define __gnu_xml_libxmlj_sax_GnomeXMLReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace sax + { + class GnomeLocator; + class GnomeXMLReader; + class Namespaces; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + namespace ext + { + class DeclHandler; + class LexicalHandler; + } + } + } + } +} + +class gnu::xml::libxmlj::sax::GnomeXMLReader : public ::java::lang::Object +{ + +public: + GnomeXMLReader(); + GnomeXMLReader(jboolean, jboolean); + virtual ::org::xml::sax::ContentHandler * getContentHandler(); + virtual void setContentHandler(::org::xml::sax::ContentHandler *); + virtual ::org::xml::sax::DTDHandler * getDTDHandler(); + virtual void setDTDHandler(::org::xml::sax::DTDHandler *); + virtual ::org::xml::sax::EntityResolver * getEntityResolver(); + virtual void setEntityResolver(::org::xml::sax::EntityResolver *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); +public: // actually package-private + static void checkFeatureName(::java::lang::String *); +public: + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::org::xml::sax::ext::DeclHandler * getDeclarationHandler(); + virtual void setDeclarationHandler(::org::xml::sax::ext::DeclHandler *); + virtual ::org::xml::sax::ext::LexicalHandler * getLexicalHandler(); + virtual void setLexicalHandler(::org::xml::sax::ext::LexicalHandler *); +public: // actually package-private + static void checkPropertyName(::java::lang::String *); +public: + virtual void parse(::java::lang::String *); + virtual void parse(::org::xml::sax::InputSource *); +public: // actually package-private + virtual void parseStream(::java::io::InputStream *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean); + virtual ::java::lang::String * getURI(::java::lang::String *); +private: + void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void internalEntityDecl(::java::lang::String *, ::java::lang::String *); + ::java::io::InputStream * resolveEntity(::java::lang::String *, ::java::lang::String *); + void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void elementDecl(::java::lang::String *, ::java::lang::String *); + void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void setDocumentLocator(::java::lang::Object *, ::java::lang::Object *); + void startDocument(jboolean); + void endDocument(); + void startElement(::java::lang::String *, JArray< ::java::lang::String * > *); + void endElement(::java::lang::String *); + void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + void endPrefixMapping(::java::lang::String *); + void characters(::java::lang::String *); + void ignorableWhitespace(::java::lang::String *); + void processingInstruction(::java::lang::String *, ::java::lang::String *); + void comment(::java::lang::String *); + void cdataBlock(::java::lang::String *); + void warning(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + void error(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + void fatalError(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * FEATURES_PREFIX; + static ::java::util::List * RECOGNIZED_FEATURES; + static ::java::lang::String * PROPERTIES_PREFIX; + static ::java::util::List * RECOGNIZED_PROPERTIES; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) standalone; + jboolean namespaces; + jboolean namespacePrefixes; + jboolean validation; + ::org::xml::sax::ContentHandler * contentHandler; + ::org::xml::sax::DTDHandler * dtdHandler; + ::org::xml::sax::EntityResolver * entityResolver; + ::org::xml::sax::ErrorHandler * errorHandler; + ::org::xml::sax::ext::DeclHandler * declarationHandler; + ::org::xml::sax::ext::LexicalHandler * lexicalHandler; + ::gnu::xml::libxmlj::sax::GnomeLocator * locator; + ::gnu::xml::libxmlj::sax::Namespaces * ns; + jboolean seenFatalError; + jboolean seenStartDocument; + ::java::lang::String * base; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_sax_GnomeXMLReader__ diff --git a/libjava/gnu/xml/libxmlj/sax/Namespaces.h b/libjava/gnu/xml/libxmlj/sax/Namespaces.h new file mode 100644 index 00000000000..bc4e872ef35 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/sax/Namespaces.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_sax_Namespaces__ +#define __gnu_xml_libxmlj_sax_Namespaces__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace sax + { + class Namespaces; + } + } + } + } +} + +class gnu::xml::libxmlj::sax::Namespaces : public ::java::lang::Object +{ + +public: // actually package-private + Namespaces(); + virtual void push(); + virtual void pop(); + virtual ::java::lang::String * getURI(::java::lang::String *); + virtual void define(::java::lang::String *, ::java::lang::String *); + virtual ::java::util::Iterator * currentPrefixes(); + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) stack; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_sax_Namespaces__ diff --git a/libjava/gnu/xml/libxmlj/sax/StringArrayAttributes.h b/libjava/gnu/xml/libxmlj/sax/StringArrayAttributes.h new file mode 100644 index 00000000000..d015c9db7f0 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/sax/StringArrayAttributes.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_sax_StringArrayAttributes__ +#define __gnu_xml_libxmlj_sax_StringArrayAttributes__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace sax + { + class GnomeXMLReader; + class StringArrayAttributes; + class XMLName; + } + } + } + } +} + +class gnu::xml::libxmlj::sax::StringArrayAttributes : public ::java::lang::Object +{ + +public: // actually package-private + StringArrayAttributes(::gnu::xml::libxmlj::sax::GnomeXMLReader *, JArray< ::java::lang::String * > *); +public: + virtual jint getLength(); + virtual ::java::lang::String * getURI(jint); + virtual ::java::lang::String * getLocalName(jint); + virtual ::java::lang::String * getQName(jint); + virtual ::java::lang::String * getType(jint); + virtual ::java::lang::String * getValue(jint); + virtual jint getIndex(::java::lang::String *, ::java::lang::String *); + virtual jint getIndex(::java::lang::String *); + virtual ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getType(::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) len; + JArray< ::gnu::xml::libxmlj::sax::XMLName * > * keys; + JArray< ::java::lang::String * > * values; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_sax_StringArrayAttributes__ diff --git a/libjava/gnu/xml/libxmlj/sax/XMLName.h b/libjava/gnu/xml/libxmlj/sax/XMLName.h new file mode 100644 index 00000000000..d76438aedc0 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/sax/XMLName.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_sax_XMLName__ +#define __gnu_xml_libxmlj_sax_XMLName__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace sax + { + class GnomeXMLReader; + class XMLName; + } + } + } + } +} + +class gnu::xml::libxmlj::sax::XMLName : public ::java::lang::Object +{ + +public: // actually package-private + XMLName(::gnu::xml::libxmlj::sax::GnomeXMLReader *, ::java::lang::String *); +public: + virtual ::java::lang::String * toString(); +private: + static ::java::lang::String * XML_URI; +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) uri; + ::java::lang::String * localName; + ::java::lang::String * qName; + ::java::lang::String * prefix; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_sax_XMLName__ diff --git a/libjava/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.h b/libjava/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.h new file mode 100644 index 00000000000..823265feb7e --- /dev/null +++ b/libjava/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_transform_ErrorListenerErrorHandler__ +#define __gnu_xml_libxmlj_transform_ErrorListenerErrorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace transform + { + class ErrorListenerErrorHandler; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class TransformerException; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class SAXException; + class SAXParseException; + } + } + } +} + +class gnu::xml::libxmlj::transform::ErrorListenerErrorHandler : public ::java::lang::Object +{ + +public: // actually package-private + ErrorListenerErrorHandler(::javax::xml::transform::ErrorListener *); +public: + virtual void warning(::org::xml::sax::SAXParseException *); + virtual void error(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); +private: + ::org::xml::sax::SAXException * getSAXException(::javax::xml::transform::TransformerException *); + ::javax::xml::transform::ErrorListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listener; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_transform_ErrorListenerErrorHandler__ diff --git a/libjava/gnu/xml/libxmlj/transform/GnomeTransformer.h b/libjava/gnu/xml/libxmlj/transform/GnomeTransformer.h new file mode 100644 index 00000000000..0b197fabd3c --- /dev/null +++ b/libjava/gnu/xml/libxmlj/transform/GnomeTransformer.h @@ -0,0 +1,106 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_transform_GnomeTransformer__ +#define __gnu_xml_libxmlj_transform_GnomeTransformer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace dom + { + class GnomeDocument; + } + namespace sax + { + class GnomeXMLReader; + } + namespace transform + { + class GnomeTransformer; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class Result; + class Source; + class Transformer; + class URIResolver; + namespace sax + { + class SAXResult; + } + } + } + } +} + +class gnu::xml::libxmlj::transform::GnomeTransformer : public ::javax::xml::transform::Transformer +{ + +public: // actually package-private + GnomeTransformer(::javax::xml::transform::Source *, ::javax::xml::transform::URIResolver *, ::javax::xml::transform::ErrorListener *); +private: + GnomeTransformer(::java::lang::Object *, ::javax::xml::transform::URIResolver *, ::javax::xml::transform::ErrorListener *, ::java::util::Map *, ::java::util::Properties *); + ::java::lang::Object * newStylesheet(); + ::java::lang::Object * newStylesheetFromStream(::java::io::InputStream *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean); + ::java::lang::Object * newStylesheetFromDoc(::gnu::xml::libxmlj::dom::GnomeDocument *); +public: + virtual void setParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(::java::lang::String *); + virtual void clearParameters(); + virtual void setErrorListener(::javax::xml::transform::ErrorListener *); + virtual ::javax::xml::transform::ErrorListener * getErrorListener(); + virtual void setURIResolver(::javax::xml::transform::URIResolver *); + virtual ::javax::xml::transform::URIResolver * getURIResolver(); + virtual void setOutputProperties(::java::util::Properties *); + virtual void setOutputProperty(::java::lang::String *, ::java::lang::String *); + virtual ::java::util::Properties * getOutputProperties(); + virtual ::java::lang::String * getOutputProperty(::java::lang::String *); + virtual ::javax::xml::transform::Transformer * newTransformer(); + virtual void transform(::javax::xml::transform::Source *, ::javax::xml::transform::Result *); +private: + ::gnu::xml::libxmlj::sax::GnomeXMLReader * getSAXContext(::javax::xml::transform::sax::SAXResult *); + void transformStreamToStream(::java::io::InputStream *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean, ::java::io::OutputStream *); + ::gnu::xml::libxmlj::dom::GnomeDocument * transformStreamToDoc(::java::io::InputStream *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean); + void transformStreamToSAX(::java::io::InputStream *, JArray< jbyte > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean, ::gnu::xml::libxmlj::sax::GnomeXMLReader *); + void transformDocToStream(::gnu::xml::libxmlj::dom::GnomeDocument *, ::java::io::OutputStream *); + ::gnu::xml::libxmlj::dom::GnomeDocument * transformDocToDoc(::gnu::xml::libxmlj::dom::GnomeDocument *); + void transformDocToSAX(::gnu::xml::libxmlj::dom::GnomeDocument *, ::gnu::xml::libxmlj::sax::GnomeXMLReader *); + JArray< ::java::lang::String * > * getParameterArray(); +public: + virtual void finalize(); +private: + void free(); + ::java::io::InputStream * resolveEntity(::java::lang::String *, ::java::lang::String *); + void setDocumentLocator(::java::lang::Object *, ::java::lang::Object *); + void warning(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + void error(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + void fatalError(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *); + ::java::util::Map * __attribute__((aligned(__alignof__( ::javax::xml::transform::Transformer)))) parameters; + ::java::util::Properties * outputProperties; + ::javax::xml::transform::URIResolver * resolver; + ::javax::xml::transform::ErrorListener * errorListener; + ::java::lang::Object * stylesheet; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_transform_GnomeTransformer__ diff --git a/libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory$AssociatedStylesheetHandler.h b/libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory$AssociatedStylesheetHandler.h new file mode 100644 index 00000000000..6afbf3fab0c --- /dev/null +++ b/libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory$AssociatedStylesheetHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_transform_GnomeTransformerFactory$AssociatedStylesheetHandler__ +#define __gnu_xml_libxmlj_transform_GnomeTransformerFactory$AssociatedStylesheetHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace transform + { + class GnomeTransformerFactory; + class GnomeTransformerFactory$AssociatedStylesheetHandler; + } + } + } + } +} + +class gnu::xml::libxmlj::transform::GnomeTransformerFactory$AssociatedStylesheetHandler : public ::org::xml::sax::helpers::DefaultHandler +{ + +public: // actually package-private + GnomeTransformerFactory$AssociatedStylesheetHandler(::gnu::xml::libxmlj::transform::GnomeTransformerFactory *); +public: + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::org::xml::sax::helpers::DefaultHandler)))) media; + ::java::lang::String * title; + ::java::lang::String * href; + ::gnu::xml::libxmlj::transform::GnomeTransformerFactory * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_transform_GnomeTransformerFactory$AssociatedStylesheetHandler__ diff --git a/libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory.h b/libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory.h new file mode 100644 index 00000000000..b34706ec3d3 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/transform/GnomeTransformerFactory.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_transform_GnomeTransformerFactory__ +#define __gnu_xml_libxmlj_transform_GnomeTransformerFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace transform + { + class GnomeTransformerFactory; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class Source; + class Templates; + class Transformer; + class URIResolver; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class XMLReader; + } + } + } +} + +class gnu::xml::libxmlj::transform::GnomeTransformerFactory : public ::javax::xml::transform::TransformerFactory +{ + +public: + GnomeTransformerFactory(); + virtual ::javax::xml::transform::Source * getAssociatedStylesheet(::javax::xml::transform::Source *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +private: + ::org::xml::sax::XMLReader * createXMLReader(); +public: // actually package-private + virtual ::java::lang::String * parseParameter(::java::lang::String *, ::java::lang::String *); +public: + virtual void setAttribute(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getAttribute(::java::lang::String *); + virtual void setErrorListener(::javax::xml::transform::ErrorListener *); + virtual ::javax::xml::transform::ErrorListener * getErrorListener(); + virtual void setURIResolver(::javax::xml::transform::URIResolver *); + virtual ::javax::xml::transform::URIResolver * getURIResolver(); + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual ::javax::xml::transform::Transformer * newTransformer(); + virtual ::javax::xml::transform::Transformer * newTransformer(::javax::xml::transform::Source *); + virtual ::javax::xml::transform::Templates * newTemplates(::javax::xml::transform::Source *); + static void freeLibxsltGlobal(); +private: + ::javax::xml::transform::URIResolver * __attribute__((aligned(__alignof__( ::javax::xml::transform::TransformerFactory)))) uriResolver; + ::javax::xml::transform::ErrorListener * errorListener; + ::java::util::Map * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_transform_GnomeTransformerFactory__ diff --git a/libjava/gnu/xml/libxmlj/transform/URIResolverEntityResolver.h b/libjava/gnu/xml/libxmlj/transform/URIResolverEntityResolver.h new file mode 100644 index 00000000000..88df98333d3 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/transform/URIResolverEntityResolver.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_transform_URIResolverEntityResolver__ +#define __gnu_xml_libxmlj_transform_URIResolverEntityResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace transform + { + class URIResolverEntityResolver; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class URIResolver; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class gnu::xml::libxmlj::transform::URIResolverEntityResolver : public ::java::lang::Object +{ + +public: // actually package-private + URIResolverEntityResolver(::javax::xml::transform::URIResolver *); +public: + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); +private: + ::javax::xml::transform::URIResolver * __attribute__((aligned(__alignof__( ::java::lang::Object)))) resolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_transform_URIResolverEntityResolver__ diff --git a/libjava/gnu/xml/libxmlj/util/EmptyNodeList.h b/libjava/gnu/xml/libxmlj/util/EmptyNodeList.h new file mode 100644 index 00000000000..2bde43e51b8 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/util/EmptyNodeList.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_util_EmptyNodeList__ +#define __gnu_xml_libxmlj_util_EmptyNodeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace util + { + class EmptyNodeList; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::libxmlj::util::EmptyNodeList : public ::java::lang::Object +{ + +public: // actually package-private + EmptyNodeList(); +public: + virtual ::org::w3c::dom::Node * item(jint); + virtual jint getLength(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_util_EmptyNodeList__ diff --git a/libjava/gnu/xml/libxmlj/util/NamedInputStream.h b/libjava/gnu/xml/libxmlj/util/NamedInputStream.h new file mode 100644 index 00000000000..f0b3a6280c8 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/util/NamedInputStream.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_util_NamedInputStream__ +#define __gnu_xml_libxmlj_util_NamedInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace util + { + class NamedInputStream; + } + } + } + } +} + +class gnu::xml::libxmlj::util::NamedInputStream : public ::java::io::FilterInputStream +{ + +public: // actually package-private + NamedInputStream(::java::lang::String *, ::java::io::InputStream *, jint); +public: + virtual ::java::lang::String * getName(); + virtual JArray< jbyte > * getDetectBuffer(); +private: + static jint DETECT_BUFFER_SIZE; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_util_NamedInputStream__ diff --git a/libjava/gnu/xml/libxmlj/util/StandaloneDocumentType.h b/libjava/gnu/xml/libxmlj/util/StandaloneDocumentType.h new file mode 100644 index 00000000000..1ac77d38d0d --- /dev/null +++ b/libjava/gnu/xml/libxmlj/util/StandaloneDocumentType.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_util_StandaloneDocumentType__ +#define __gnu_xml_libxmlj_util_StandaloneDocumentType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace util + { + class StandaloneDocumentType; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class gnu::xml::libxmlj::util::StandaloneDocumentType : public ::java::lang::Object +{ + +public: + StandaloneDocumentType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getName(); + ::org::w3c::dom::NamedNodeMap * getEntities(); + ::org::w3c::dom::NamedNodeMap * getNotations(); + ::java::lang::String * getPublicId(); + ::java::lang::String * getSystemId(); + ::java::lang::String * getInternalSubset(); + ::java::lang::String * getNodeName(); + ::java::lang::String * getNodeValue(); + void setNodeValue(::java::lang::String *); + jshort getNodeType(); + ::org::w3c::dom::Node * getParentNode(); + ::org::w3c::dom::NodeList * getChildNodes(); + ::org::w3c::dom::Node * getFirstChild(); + ::org::w3c::dom::Node * getLastChild(); + ::org::w3c::dom::Node * getPreviousSibling(); + ::org::w3c::dom::Node * getNextSibling(); + ::org::w3c::dom::NamedNodeMap * getAttributes(); + ::org::w3c::dom::Document * getOwnerDocument(); + ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *); + ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *); + jboolean hasChildNodes(); + ::org::w3c::dom::Node * cloneNode(jboolean); + void normalize(); + jboolean isSupported(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getNamespaceURI(); + ::java::lang::String * getPrefix(); + void setPrefix(::java::lang::String *); + ::java::lang::String * getLocalName(); + jboolean hasAttributes(); + ::java::lang::String * getBaseURI(); + jshort compareDocumentPosition(::org::w3c::dom::Node *); + ::java::lang::String * getTextContent(); + void setTextContent(::java::lang::String *); + jboolean isSameNode(::org::w3c::dom::Node *); + ::java::lang::String * lookupPrefix(::java::lang::String *); + jboolean isDefaultNamespace(::java::lang::String *); + ::java::lang::String * lookupNamespaceURI(::java::lang::String *); + jboolean isEqualNode(::org::w3c::dom::Node *); + ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *); + ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *); + ::java::lang::Object * getUserData(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * publicId; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_util_StandaloneDocumentType__ diff --git a/libjava/gnu/xml/libxmlj/util/StandaloneLocator.h b/libjava/gnu/xml/libxmlj/util/StandaloneLocator.h new file mode 100644 index 00000000000..77f3028a95c --- /dev/null +++ b/libjava/gnu/xml/libxmlj/util/StandaloneLocator.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_util_StandaloneLocator__ +#define __gnu_xml_libxmlj_util_StandaloneLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace util + { + class StandaloneLocator; + } + } + } + } +} + +class gnu::xml::libxmlj::util::StandaloneLocator : public ::java::lang::Object +{ + +public: + StandaloneLocator(jint, jint, ::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getPublicId(); + ::java::lang::String * getSystemId(); + jint getLineNumber(); + jint getColumnNumber(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) lineNumber; + jint columnNumber; + ::java::lang::String * publicId; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_util_StandaloneLocator__ diff --git a/libjava/gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.h b/libjava/gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.h new file mode 100644 index 00000000000..c0ea02f8672 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/util/XMLJ$XMLJShutdownHook.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_util_XMLJ$XMLJShutdownHook__ +#define __gnu_xml_libxmlj_util_XMLJ$XMLJShutdownHook__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace util + { + class XMLJ$XMLJShutdownHook; + } + } + } + } +} + +class gnu::xml::libxmlj::util::XMLJ$XMLJShutdownHook : public ::java::lang::Object +{ + +public: // actually package-private + XMLJ$XMLJShutdownHook(); +public: + virtual void run(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_util_XMLJ$XMLJShutdownHook__ diff --git a/libjava/gnu/xml/libxmlj/util/XMLJ.h b/libjava/gnu/xml/libxmlj/util/XMLJ.h new file mode 100644 index 00000000000..d12e7aabaf0 --- /dev/null +++ b/libjava/gnu/xml/libxmlj/util/XMLJ.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_libxmlj_util_XMLJ__ +#define __gnu_xml_libxmlj_util_XMLJ__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace libxmlj + { + namespace util + { + class NamedInputStream; + class XMLJ; + } + } + } + } + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + class Source; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class gnu::xml::libxmlj::util::XMLJ : public ::java::lang::Object +{ + +public: + XMLJ(); + static void init(); + static ::gnu::xml::libxmlj::util::NamedInputStream * getInputStream(::org::xml::sax::InputSource *); + static ::gnu::xml::libxmlj::util::NamedInputStream * getInputStream(::javax::xml::transform::Source *); +private: + static ::java::io::InputStream * getInputStream(::java::lang::String *); +public: + static ::gnu::xml::libxmlj::util::NamedInputStream * getInputStream(::java::net::URL *); +public: // actually package-private + static ::gnu::xml::libxmlj::util::NamedInputStream * xmljGetInputStream(::java::lang::String *, ::java::lang::String *); +public: + static ::java::io::OutputStream * getOutputStream(::javax::xml::transform::Result *); + static ::java::lang::String * getAbsoluteURI(::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * getBaseURI(::java::lang::String *); +private: + static jboolean initialised; + static const jint LOOKAHEAD = 50; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_libxmlj_util_XMLJ__ diff --git a/libjava/gnu/xml/pipeline/CallFilter$Requestor.h b/libjava/gnu/xml/pipeline/CallFilter$Requestor.h new file mode 100644 index 00000000000..131c1cc4605 --- /dev/null +++ b/libjava/gnu/xml/pipeline/CallFilter$Requestor.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_CallFilter$Requestor__ +#define __gnu_xml_pipeline_CallFilter$Requestor__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class CallFilter; + class CallFilter$Requestor; + } + } + } +} + +class gnu::xml::pipeline::CallFilter$Requestor : public ::gnu::xml::util::XMLWriter +{ + +public: // actually package-private + CallFilter$Requestor(::gnu::xml::pipeline::CallFilter *); +public: + void startDocument(); + void endDocument(); +public: // actually package-private + ::gnu::xml::pipeline::CallFilter * __attribute__((aligned(__alignof__( ::gnu::xml::util::XMLWriter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_CallFilter$Requestor__ diff --git a/libjava/gnu/xml/pipeline/CallFilter.h b/libjava/gnu/xml/pipeline/CallFilter.h new file mode 100644 index 00000000000..71ab028d0b6 --- /dev/null +++ b/libjava/gnu/xml/pipeline/CallFilter.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_CallFilter__ +#define __gnu_xml_pipeline_CallFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class CallFilter; + class CallFilter$Requestor; + class EventConsumer; + } + } + } + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class ErrorHandler; + } + } + } +} + +class gnu::xml::pipeline::CallFilter : public ::java::lang::Object +{ + +public: + CallFilter(::java::lang::String *, ::gnu::xml::pipeline::EventConsumer *); + void setCallTarget(::java::lang::String *); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + ::java::lang::String * getCallTarget(); + ::org::xml::sax::ContentHandler * getContentHandler(); + ::org::xml::sax::DTDHandler * getDTDHandler(); + ::java::lang::Object * getProperty(::java::lang::String *); +public: // actually package-private + ::org::xml::sax::ErrorHandler * getErrorHandler(); + static ::java::net::URLConnection * access$0(::gnu::xml::pipeline::CallFilter *); + static ::java::net::URL * access$1(::gnu::xml::pipeline::CallFilter *); + static void access$2(::gnu::xml::pipeline::CallFilter *, ::java::net::URLConnection *); + static ::gnu::xml::pipeline::EventConsumer * access$3(::gnu::xml::pipeline::CallFilter *); +private: + ::gnu::xml::pipeline::CallFilter$Requestor * __attribute__((aligned(__alignof__( ::java::lang::Object)))) req; + ::gnu::xml::pipeline::EventConsumer * next; + ::java::net::URL * target; + ::java::net::URLConnection * conn; + ::org::xml::sax::ErrorHandler * errHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_CallFilter__ diff --git a/libjava/gnu/xml/pipeline/DomConsumer$Handler.h b/libjava/gnu/xml/pipeline/DomConsumer$Handler.h new file mode 100644 index 00000000000..4ba4fc60897 --- /dev/null +++ b/libjava/gnu/xml/pipeline/DomConsumer$Handler.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_DomConsumer$Handler__ +#define __gnu_xml_pipeline_DomConsumer$Handler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class DomConsumer; + class DomConsumer$Handler; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class Document; + class Element; + class Node; + class Text; + } + } + namespace xml + { + namespace sax + { + class Attributes; + class Locator; + namespace helpers + { + class AttributesImpl; + } + } + } + } +} + +class gnu::xml::pipeline::DomConsumer$Handler : public ::java::lang::Object +{ + +public: // actually protected + DomConsumer$Handler(::gnu::xml::pipeline::DomConsumer *); +private: + void fatal(::java::lang::String *, ::java::lang::Exception *); +public: // actually package-private + virtual ::org::w3c::dom::Document * clearDocument(); +public: // actually protected + virtual ::org::w3c::dom::Document * getDocument(); + virtual ::org::w3c::dom::Node * getTop(); +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); +public: // actually protected + virtual ::org::w3c::dom::Text * createText(jboolean, JArray< jchar > *, jint, jint); +public: + virtual void characters(JArray< jchar > *, jint, jint); + virtual void skippedEntity(::java::lang::String *); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); +private: + void populateAttributes(::org::w3c::dom::Element *, ::org::xml::sax::Attributes *); + ::java::lang::String * getPrefix(::java::lang::String *); + ::java::lang::String * getNamespace(::java::lang::String *, ::org::xml::sax::Attributes *); +public: + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void startCDATA(); + virtual void endCDATA(); + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endDTD(); + virtual void comment(JArray< jchar > *, jint, jint); + virtual jboolean canPopulateEntityRefs(); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void elementDecl(::java::lang::String *, ::java::lang::String *); + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +private: + void namespaceError(::java::lang::String *); +public: // actually protected + ::gnu::xml::pipeline::DomConsumer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) consumer; +private: + ::org::w3c::dom::DOMImplementation * impl; + ::org::w3c::dom::Document * document; + jboolean isL2; + ::org::xml::sax::Locator * locator; + ::org::w3c::dom::Node * top; + jboolean inCDATA; + jboolean mergeCDATA; + jboolean inDTD; + ::java::lang::String * currentEntity; + jboolean recreatedAttrs; + ::org::xml::sax::helpers::AttributesImpl * attributes; +public: // actually package-private + static ::java::lang::String * xmlnsURI; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_DomConsumer$Handler__ diff --git a/libjava/gnu/xml/pipeline/DomConsumer.h b/libjava/gnu/xml/pipeline/DomConsumer.h new file mode 100644 index 00000000000..b70ca18ddf2 --- /dev/null +++ b/libjava/gnu/xml/pipeline/DomConsumer.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_DomConsumer__ +#define __gnu_xml_pipeline_DomConsumer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class DomConsumer; + class DomConsumer$Handler; + class EventConsumer; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + } + } + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class ErrorHandler; + } + } + } +} + +class gnu::xml::pipeline::DomConsumer : public ::java::lang::Object +{ + +public: + DomConsumer(::java::lang::Class *); +public: // actually protected + virtual void setHandler(::gnu::xml::pipeline::DomConsumer$Handler *); +private: + ::org::w3c::dom::Document * emptyDocument(); +public: + DomConsumer(::java::lang::Class *, ::gnu::xml::pipeline::EventConsumer *); + virtual ::org::w3c::dom::Document * getDocument(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual jboolean isHidingReferences(); + virtual void setHidingReferences(jboolean); + virtual jboolean isHidingComments(); + virtual void setHidingComments(jboolean); + virtual jboolean isHidingWhitespace(); + virtual void setHidingWhitespace(jboolean); + virtual jboolean isHidingCDATA(); + virtual void setHidingCDATA(jboolean); + virtual ::org::xml::sax::ContentHandler * getContentHandler(); + virtual ::org::xml::sax::DTDHandler * getDTDHandler(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); +public: // actually package-private + virtual ::gnu::xml::pipeline::EventConsumer * getNext(); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + static ::org::w3c::dom::Document * access$0(::gnu::xml::pipeline::DomConsumer *); +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) domImpl; + jboolean hidingCDATA; + jboolean hidingComments; + jboolean hidingWhitespace; + jboolean hidingReferences; + ::gnu::xml::pipeline::DomConsumer$Handler * handler; + ::org::xml::sax::ErrorHandler * errHandler; + ::gnu::xml::pipeline::EventConsumer * next; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_DomConsumer__ diff --git a/libjava/gnu/xml/pipeline/EventConsumer.h b/libjava/gnu/xml/pipeline/EventConsumer.h new file mode 100644 index 00000000000..ad9d15acad1 --- /dev/null +++ b/libjava/gnu/xml/pipeline/EventConsumer.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_EventConsumer__ +#define __gnu_xml_pipeline_EventConsumer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class ErrorHandler; + } + } + } +} + +class gnu::xml::pipeline::EventConsumer : public ::java::lang::Object +{ + +public: + virtual ::org::xml::sax::ContentHandler * getContentHandler() = 0; + virtual ::org::xml::sax::DTDHandler * getDTDHandler() = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_xml_pipeline_EventConsumer__ diff --git a/libjava/gnu/xml/pipeline/EventFilter.h b/libjava/gnu/xml/pipeline/EventFilter.h new file mode 100644 index 00000000000..8895017028b --- /dev/null +++ b/libjava/gnu/xml/pipeline/EventFilter.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_EventFilter__ +#define __gnu_xml_pipeline_EventFilter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class EventFilter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class ContentHandler; + class DTDHandler; + class ErrorHandler; + class Locator; + class XMLReader; + namespace ext + { + class DeclHandler; + class LexicalHandler; + } + namespace helpers + { + class XMLFilterImpl; + } + } + } + } +} + +class gnu::xml::pipeline::EventFilter : public ::java::lang::Object +{ + +public: // actually package-private + static ::java::lang::ClassLoader * getClassLoader(); + static ::java::lang::Class * loadClass(::java::lang::ClassLoader *, ::java::lang::String *); +private: + static void loadClasses(); +public: + static void bind(::org::xml::sax::XMLReader *, ::gnu::xml::pipeline::EventConsumer *); + EventFilter(); + EventFilter(::gnu::xml::pipeline::EventConsumer *); + virtual void chainTo(::org::xml::sax::helpers::XMLFilterImpl *); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual ::gnu::xml::pipeline::EventConsumer * getNext(); + virtual void setContentHandler(::org::xml::sax::ContentHandler *); + virtual ::org::xml::sax::ContentHandler * getContentHandler(); + virtual void setDTDHandler(::org::xml::sax::DTDHandler *); + virtual ::org::xml::sax::DTDHandler * getDTDHandler(); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual ::org::xml::sax::Locator * getDocumentLocator(); + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void skippedEntity(::java::lang::String *); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void endDocument(); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endDTD(); + virtual void comment(JArray< jchar > *, jint, jint); + virtual void startCDATA(); + virtual void endCDATA(); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + virtual void elementDecl(::java::lang::String *, ::java::lang::String *); + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *); +private: + ::org::xml::sax::ContentHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) docHandler; + ::org::xml::sax::ContentHandler * docNext; + ::org::xml::sax::DTDHandler * dtdHandler; + ::org::xml::sax::DTDHandler * dtdNext; + ::org::xml::sax::ext::LexicalHandler * lexHandler; + ::org::xml::sax::ext::LexicalHandler * lexNext; + ::org::xml::sax::ext::DeclHandler * declHandler; + ::org::xml::sax::ext::DeclHandler * declNext; + ::org::xml::sax::Locator * locator; + ::gnu::xml::pipeline::EventConsumer * next; + ::org::xml::sax::ErrorHandler * errHandler; +public: + static ::java::lang::String * FEATURE_URI; + static ::java::lang::String * PROPERTY_URI; + static ::java::lang::String * DECL_HANDLER; + static ::java::lang::String * LEXICAL_HANDLER; +private: + static jboolean loaded; + static ::java::lang::Class * nsClass; + static ::java::lang::Class * validClass; + static ::java::lang::Class * wfClass; + static ::java::lang::Class * xincClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_EventFilter__ diff --git a/libjava/gnu/xml/pipeline/LinkFilter.h b/libjava/gnu/xml/pipeline/LinkFilter.h new file mode 100644 index 00000000000..8de1d85805a --- /dev/null +++ b/libjava/gnu/xml/pipeline/LinkFilter.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_LinkFilter__ +#define __gnu_xml_pipeline_LinkFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class LinkFilter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class gnu::xml::pipeline::LinkFilter : public ::gnu::xml::pipeline::EventFilter +{ + +public: + LinkFilter(); + LinkFilter(::gnu::xml::pipeline::EventConsumer *); + virtual ::java::util::Enumeration * getLinks(); + virtual void removeAllLinks(); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); +private: + ::java::lang::String * maybeAddLink(::java::lang::String *); +public: + virtual void startDocument(); + virtual void endDocument(); +private: + ::java::util::Vector * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::EventFilter)))) vector; + ::java::lang::String * baseURI; + jboolean siteRestricted; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_LinkFilter__ diff --git a/libjava/gnu/xml/pipeline/NSFilter.h b/libjava/gnu/xml/pipeline/NSFilter.h new file mode 100644 index 00000000000..f38a80df517 --- /dev/null +++ b/libjava/gnu/xml/pipeline/NSFilter.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_NSFilter__ +#define __gnu_xml_pipeline_NSFilter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class NSFilter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + namespace helpers + { + class AttributesImpl; + class NamespaceSupport; + } + } + } + } +} + +class gnu::xml::pipeline::NSFilter : public ::gnu::xml::pipeline::EventFilter +{ + +public: + NSFilter(::gnu::xml::pipeline::EventConsumer *); +private: + void fatalError(::java::lang::String *); +public: + virtual void startDocument(); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); +private: + ::java::lang::String * fixName(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean); +public: + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void endDocument(); +private: + ::org::xml::sax::helpers::NamespaceSupport * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::EventFilter)))) nsStack; + ::java::util::Stack * elementStack; + jboolean pushedContext; + JArray< ::java::lang::String * > * nsTemp; + ::org::xml::sax::helpers::AttributesImpl * attributes; + jboolean usedDefault; + static ::java::lang::String * prefixRoot; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_NSFilter__ diff --git a/libjava/gnu/xml/pipeline/PipelineFactory$Pipeline.h b/libjava/gnu/xml/pipeline/PipelineFactory$Pipeline.h new file mode 100644 index 00000000000..13d99954aae --- /dev/null +++ b/libjava/gnu/xml/pipeline/PipelineFactory$Pipeline.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_PipelineFactory$Pipeline__ +#define __gnu_xml_pipeline_PipelineFactory$Pipeline__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class PipelineFactory$Pipeline; + class PipelineFactory$Stage; + } + } + } +} + +class gnu::xml::pipeline::PipelineFactory$Pipeline : public ::java::lang::Object +{ + +public: // actually package-private + PipelineFactory$Pipeline(::gnu::xml::pipeline::PipelineFactory$Stage *); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + virtual ::gnu::xml::pipeline::EventConsumer * createPipeline(); + ::gnu::xml::pipeline::PipelineFactory$Stage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) stage; + ::gnu::xml::pipeline::PipelineFactory$Pipeline * rest; + ::gnu::xml::pipeline::EventConsumer * next; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_PipelineFactory$Pipeline__ diff --git a/libjava/gnu/xml/pipeline/PipelineFactory$Stage.h b/libjava/gnu/xml/pipeline/PipelineFactory$Stage.h new file mode 100644 index 00000000000..07a87875b83 --- /dev/null +++ b/libjava/gnu/xml/pipeline/PipelineFactory$Stage.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_PipelineFactory$Stage__ +#define __gnu_xml_pipeline_PipelineFactory$Stage__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class PipelineFactory$Pipeline; + class PipelineFactory$Stage; + } + } + } +} + +class gnu::xml::pipeline::PipelineFactory$Stage : public ::java::lang::Object +{ + +public: // actually package-private + PipelineFactory$Stage(::java::lang::String *); +public: + virtual ::java::lang::String * toString(); +private: + void fail(::java::lang::String *); +public: // actually package-private + virtual ::gnu::xml::pipeline::EventConsumer * createStage(::gnu::xml::pipeline::EventConsumer *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::gnu::xml::pipeline::PipelineFactory$Pipeline * param; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_PipelineFactory$Stage__ diff --git a/libjava/gnu/xml/pipeline/PipelineFactory.h b/libjava/gnu/xml/pipeline/PipelineFactory.h new file mode 100644 index 00000000000..57feff214c5 --- /dev/null +++ b/libjava/gnu/xml/pipeline/PipelineFactory.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_PipelineFactory__ +#define __gnu_xml_pipeline_PipelineFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class PipelineFactory; + class PipelineFactory$Pipeline; + class PipelineFactory$Stage; + } + } + } +} + +class gnu::xml::pipeline::PipelineFactory : public ::java::lang::Object +{ + +public: + static ::gnu::xml::pipeline::EventConsumer * createPipeline(::java::lang::String *); + static ::gnu::xml::pipeline::EventConsumer * createPipeline(::java::lang::String *, ::gnu::xml::pipeline::EventConsumer *); +private: + PipelineFactory(); +public: + static ::gnu::xml::pipeline::EventConsumer * createPipeline(JArray< ::java::lang::String * > *, ::gnu::xml::pipeline::EventConsumer *); +private: + ::gnu::xml::pipeline::PipelineFactory$Pipeline * parsePipeline(JArray< ::java::lang::String * > *, ::gnu::xml::pipeline::EventConsumer *); + ::gnu::xml::pipeline::PipelineFactory$Pipeline * parsePipeline(::gnu::xml::pipeline::EventConsumer *); + ::gnu::xml::pipeline::PipelineFactory$Stage * parseStage(); +public: // actually package-private + static JArray< JArray< ::java::lang::String * > * > * access$0(); +private: + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) tokens; + jint index; + static JArray< JArray< ::java::lang::String * > * > * builtinStages; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_PipelineFactory__ diff --git a/libjava/gnu/xml/pipeline/TeeConsumer.h b/libjava/gnu/xml/pipeline/TeeConsumer.h new file mode 100644 index 00000000000..685c3604a32 --- /dev/null +++ b/libjava/gnu/xml/pipeline/TeeConsumer.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_TeeConsumer__ +#define __gnu_xml_pipeline_TeeConsumer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class TeeConsumer; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class ContentHandler; + class DTDHandler; + class ErrorHandler; + class Locator; + namespace ext + { + class DeclHandler; + class LexicalHandler; + } + } + } + } +} + +class gnu::xml::pipeline::TeeConsumer : public ::java::lang::Object +{ + +public: + TeeConsumer(::gnu::xml::pipeline::EventConsumer *, ::gnu::xml::pipeline::EventConsumer *); + ::gnu::xml::pipeline::EventConsumer * getFirst(); + ::gnu::xml::pipeline::EventConsumer * getRest(); + ::org::xml::sax::ContentHandler * getContentHandler(); + ::org::xml::sax::DTDHandler * getDTDHandler(); + ::java::lang::Object * getProperty(::java::lang::String *); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + void setDocumentLocator(::org::xml::sax::Locator *); + void startDocument(); + void endDocument(); + void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + void endPrefixMapping(::java::lang::String *); + void skippedEntity(::java::lang::String *); + void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void processingInstruction(::java::lang::String *, ::java::lang::String *); + void characters(JArray< jchar > *, jint, jint); + void ignorableWhitespace(JArray< jchar > *, jint, jint); + void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void elementDecl(::java::lang::String *, ::java::lang::String *); + void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void internalEntityDecl(::java::lang::String *, ::java::lang::String *); + void comment(JArray< jchar > *, jint, jint); + void startCDATA(); + void endCDATA(); + void startEntity(::java::lang::String *); + void endEntity(::java::lang::String *); + void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void endDTD(); +private: + ::gnu::xml::pipeline::EventConsumer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) first; + ::gnu::xml::pipeline::EventConsumer * rest; + ::org::xml::sax::ContentHandler * docFirst; + ::org::xml::sax::ContentHandler * docRest; + ::org::xml::sax::ext::DeclHandler * declFirst; + ::org::xml::sax::ext::DeclHandler * declRest; + ::org::xml::sax::ext::LexicalHandler * lexFirst; + ::org::xml::sax::ext::LexicalHandler * lexRest; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_TeeConsumer__ diff --git a/libjava/gnu/xml/pipeline/TextConsumer.h b/libjava/gnu/xml/pipeline/TextConsumer.h new file mode 100644 index 00000000000..650e75155da --- /dev/null +++ b/libjava/gnu/xml/pipeline/TextConsumer.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_TextConsumer__ +#define __gnu_xml_pipeline_TextConsumer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class TextConsumer; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + } + } + } +} + +class gnu::xml::pipeline::TextConsumer : public ::gnu::xml::util::XMLWriter +{ + +public: + TextConsumer(::java::io::Writer *, jboolean); + TextConsumer(::java::io::Writer *); + TextConsumer(::java::io::OutputStream *); + virtual ::org::xml::sax::ContentHandler * getContentHandler(); + virtual ::org::xml::sax::DTDHandler * getDTDHandler(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_TextConsumer__ diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer$AttributeInfo.h b/libjava/gnu/xml/pipeline/ValidationConsumer$AttributeInfo.h new file mode 100644 index 00000000000..6c69d31ae1f --- /dev/null +++ b/libjava/gnu/xml/pipeline/ValidationConsumer$AttributeInfo.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_ValidationConsumer$AttributeInfo__ +#define __gnu_xml_pipeline_ValidationConsumer$AttributeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class ValidationConsumer$AttributeInfo; + } + } + } +} + +class gnu::xml::pipeline::ValidationConsumer$AttributeInfo : public ::java::lang::Object +{ + + ValidationConsumer$AttributeInfo(); +public: // actually package-private + ValidationConsumer$AttributeInfo(::gnu::xml::pipeline::ValidationConsumer$AttributeInfo *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::java::lang::String * mode; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_ValidationConsumer$AttributeInfo__ diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer$ChildrenRecognizer.h b/libjava/gnu/xml/pipeline/ValidationConsumer$ChildrenRecognizer.h new file mode 100644 index 00000000000..711b5289a55 --- /dev/null +++ b/libjava/gnu/xml/pipeline/ValidationConsumer$ChildrenRecognizer.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_ValidationConsumer$ChildrenRecognizer__ +#define __gnu_xml_pipeline_ValidationConsumer$ChildrenRecognizer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class ValidationConsumer; + class ValidationConsumer$ChildrenRecognizer; + class ValidationConsumer$ElementInfo; + class ValidationConsumer$Recognizer; + } + } + } +} + +class gnu::xml::pipeline::ValidationConsumer$ChildrenRecognizer : public ::gnu::xml::pipeline::ValidationConsumer$Recognizer +{ + + void copyIn(::gnu::xml::pipeline::ValidationConsumer$ChildrenRecognizer *); +public: + ValidationConsumer$ChildrenRecognizer(::gnu::xml::pipeline::ValidationConsumer$ElementInfo *, ::gnu::xml::pipeline::ValidationConsumer *); +private: + ValidationConsumer$ChildrenRecognizer(::gnu::xml::pipeline::ValidationConsumer *, ::gnu::xml::pipeline::ValidationConsumer$ElementInfo *); + ::gnu::xml::pipeline::ValidationConsumer$ChildrenRecognizer * shallowClone(); + ::gnu::xml::pipeline::ValidationConsumer$ChildrenRecognizer * deepClone(); + ::gnu::xml::pipeline::ValidationConsumer$ChildrenRecognizer * deepClone(::java::util::Hashtable *); + void patchNext(::gnu::xml::pipeline::ValidationConsumer$Recognizer *, ::java::util::Hashtable *); + jint populate(JArray< jchar > *, jint); +public: // actually package-private + jboolean acceptCharacters(); + ::gnu::xml::pipeline::ValidationConsumer$Recognizer * acceptElement(::java::lang::String *); + jboolean completed(); +private: + ::gnu::xml::pipeline::ValidationConsumer * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::ValidationConsumer$Recognizer)))) consumer; + JArray< ::gnu::xml::pipeline::ValidationConsumer$Recognizer * > * components; + ::java::lang::String * name; + ::gnu::xml::pipeline::ValidationConsumer$Recognizer * next; + jint flags; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_ValidationConsumer$ChildrenRecognizer__ diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer$ElementInfo.h b/libjava/gnu/xml/pipeline/ValidationConsumer$ElementInfo.h new file mode 100644 index 00000000000..d15097fa656 --- /dev/null +++ b/libjava/gnu/xml/pipeline/ValidationConsumer$ElementInfo.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_ValidationConsumer$ElementInfo__ +#define __gnu_xml_pipeline_ValidationConsumer$ElementInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class ValidationConsumer; + class ValidationConsumer$ElementInfo; + class ValidationConsumer$Recognizer; + } + } + } +} + +class gnu::xml::pipeline::ValidationConsumer$ElementInfo : public ::java::lang::Object +{ + +public: // actually package-private + ValidationConsumer$ElementInfo(::java::lang::String *); + ::gnu::xml::pipeline::ValidationConsumer$Recognizer * getRecognizer(::gnu::xml::pipeline::ValidationConsumer *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * model; + ::java::util::Hashtable * attributes; +private: + ::gnu::xml::pipeline::ValidationConsumer$Recognizer * recognizer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_ValidationConsumer$ElementInfo__ diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer$EmptyRecognizer.h b/libjava/gnu/xml/pipeline/ValidationConsumer$EmptyRecognizer.h new file mode 100644 index 00000000000..eaabd0079d7 --- /dev/null +++ b/libjava/gnu/xml/pipeline/ValidationConsumer$EmptyRecognizer.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_ValidationConsumer$EmptyRecognizer__ +#define __gnu_xml_pipeline_ValidationConsumer$EmptyRecognizer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class ValidationConsumer$ElementInfo; + class ValidationConsumer$EmptyRecognizer; + class ValidationConsumer$Recognizer; + } + } + } +} + +class gnu::xml::pipeline::ValidationConsumer$EmptyRecognizer : public ::gnu::xml::pipeline::ValidationConsumer$Recognizer +{ + +public: + ValidationConsumer$EmptyRecognizer(::gnu::xml::pipeline::ValidationConsumer$ElementInfo *); +public: // actually package-private + jboolean acceptCharacters(); + ::gnu::xml::pipeline::ValidationConsumer$Recognizer * acceptElement(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_ValidationConsumer$EmptyRecognizer__ diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer$MixedRecognizer.h b/libjava/gnu/xml/pipeline/ValidationConsumer$MixedRecognizer.h new file mode 100644 index 00000000000..b628740eeaa --- /dev/null +++ b/libjava/gnu/xml/pipeline/ValidationConsumer$MixedRecognizer.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_ValidationConsumer$MixedRecognizer__ +#define __gnu_xml_pipeline_ValidationConsumer$MixedRecognizer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class ValidationConsumer; + class ValidationConsumer$ElementInfo; + class ValidationConsumer$MixedRecognizer; + class ValidationConsumer$Recognizer; + } + } + } +} + +class gnu::xml::pipeline::ValidationConsumer$MixedRecognizer : public ::gnu::xml::pipeline::ValidationConsumer$Recognizer +{ + +public: + ValidationConsumer$MixedRecognizer(::gnu::xml::pipeline::ValidationConsumer$ElementInfo *, ::gnu::xml::pipeline::ValidationConsumer *); +public: // actually package-private + ::gnu::xml::pipeline::ValidationConsumer$Recognizer * acceptElement(::java::lang::String *); +private: + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::ValidationConsumer$Recognizer)))) permitted; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_ValidationConsumer$MixedRecognizer__ diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer$Recognizer.h b/libjava/gnu/xml/pipeline/ValidationConsumer$Recognizer.h new file mode 100644 index 00000000000..087576c3093 --- /dev/null +++ b/libjava/gnu/xml/pipeline/ValidationConsumer$Recognizer.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_ValidationConsumer$Recognizer__ +#define __gnu_xml_pipeline_ValidationConsumer$Recognizer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class ValidationConsumer$ElementInfo; + class ValidationConsumer$Recognizer; + } + } + } +} + +class gnu::xml::pipeline::ValidationConsumer$Recognizer : public ::java::lang::Object +{ + +public: // actually package-private + ValidationConsumer$Recognizer(::gnu::xml::pipeline::ValidationConsumer$ElementInfo *); + virtual jboolean acceptCharacters(); + virtual ::gnu::xml::pipeline::ValidationConsumer$Recognizer * acceptElement(::java::lang::String *); + virtual jboolean completed(); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::pipeline::ValidationConsumer$ElementInfo * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_ValidationConsumer$Recognizer__ diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer.h b/libjava/gnu/xml/pipeline/ValidationConsumer.h new file mode 100644 index 00000000000..b08d025b2e6 --- /dev/null +++ b/libjava/gnu/xml/pipeline/ValidationConsumer.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_ValidationConsumer__ +#define __gnu_xml_pipeline_ValidationConsumer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class ValidationConsumer; + class ValidationConsumer$Recognizer; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class EntityResolver; + } + } + } +} + +class gnu::xml::pipeline::ValidationConsumer : public ::gnu::xml::pipeline::EventFilter +{ + +public: + ValidationConsumer(); + ValidationConsumer(::gnu::xml::pipeline::EventConsumer *); + ValidationConsumer(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::EntityResolver *, ::java::lang::String *); +private: + void resetState(); + void warning(::java::lang::String *); + void error(::java::lang::String *); + void fatalError(::java::lang::String *); + static jboolean isExtender(jchar); + jboolean isName(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + jboolean isNmtoken(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void checkEnumeration(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + static jboolean hasMatch(::java::lang::String *, ::java::lang::String *); +public: + void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void endDTD(); + void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void elementDecl(::java::lang::String *, ::java::lang::String *); + void internalEntityDecl(::java::lang::String *, ::java::lang::String *); + void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void startDocument(); +private: + static jboolean isAsciiLetter(jchar); +public: + void skippedEntity(::java::lang::String *); +private: + ::java::lang::String * expandDefaultRefs(::java::lang::String *); +public: + void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + void characters(JArray< jchar > *, jint, jint); + void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void endDocument(); +public: // actually package-private + static ::gnu::xml::pipeline::ValidationConsumer$Recognizer * access$0(); + static void access$1(::gnu::xml::pipeline::ValidationConsumer *, ::java::lang::String *); +private: + static const jboolean warnNonDeterministic = 0; + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::EventFilter)))) rootName; + ::java::util::Stack * contentStack; + jboolean disableDeclarations; + jboolean disableReset; + ::java::util::Hashtable * elements; + ::java::util::Hashtable * ids; + ::java::util::Vector * notations; + ::java::util::Vector * nDeferred; + ::java::util::Vector * unparsed; + ::java::util::Vector * uDeferred; + static ::java::lang::String * fakeRootName; +public: // actually package-private + static JArray< ::java::lang::String * > * types; +private: + static ::gnu::xml::pipeline::ValidationConsumer$Recognizer * ANY; + static const jint F_LOOPHEAD = 1; + static const jint F_LOOPNEXT = 2; + static jint nodeCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_ValidationConsumer__ diff --git a/libjava/gnu/xml/pipeline/WellFormednessFilter.h b/libjava/gnu/xml/pipeline/WellFormednessFilter.h new file mode 100644 index 00000000000..2b97d47b151 --- /dev/null +++ b/libjava/gnu/xml/pipeline/WellFormednessFilter.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_WellFormednessFilter__ +#define __gnu_xml_pipeline_WellFormednessFilter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class WellFormednessFilter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class Locator; + class SAXParseException; + } + } + } +} + +class gnu::xml::pipeline::WellFormednessFilter : public ::gnu::xml::pipeline::EventFilter +{ + +public: + WellFormednessFilter(); + WellFormednessFilter(::gnu::xml::pipeline::EventConsumer *); + void reset(); +private: + ::org::xml::sax::SAXParseException * getException(::java::lang::String *); + void fatalError(::java::lang::String *); +public: + void setDocumentLocator(::org::xml::sax::Locator *); + void startDocument(); + void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void endDocument(); + void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void endDTD(); + void characters(JArray< jchar > *, jint, jint); + void ignorableWhitespace(JArray< jchar > *, jint, jint); + void processingInstruction(::java::lang::String *, ::java::lang::String *); + void comment(JArray< jchar > *, jint, jint); + void startCDATA(); + void endCDATA(); +private: + jboolean __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::EventFilter)))) startedDoc; + ::java::util::Stack * elementStack; + jboolean startedCDATA; + ::java::lang::String * dtdState; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_WellFormednessFilter__ diff --git a/libjava/gnu/xml/pipeline/XIncludeFilter$Scrubber.h b/libjava/gnu/xml/pipeline/XIncludeFilter$Scrubber.h new file mode 100644 index 00000000000..114756ed2c6 --- /dev/null +++ b/libjava/gnu/xml/pipeline/XIncludeFilter$Scrubber.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_XIncludeFilter$Scrubber__ +#define __gnu_xml_pipeline_XIncludeFilter$Scrubber__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventFilter; + class XIncludeFilter; + class XIncludeFilter$Scrubber; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Locator; + } + } + } +} + +class gnu::xml::pipeline::XIncludeFilter$Scrubber : public ::gnu::xml::pipeline::EventFilter +{ + +public: // actually package-private + XIncludeFilter$Scrubber(::gnu::xml::pipeline::XIncludeFilter *, ::gnu::xml::pipeline::EventFilter *); +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); +private: + void reject(::java::lang::String *); +public: + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endDTD(); + virtual void skippedEntity(::java::lang::String *); +public: // actually package-private + ::gnu::xml::pipeline::XIncludeFilter * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::EventFilter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_XIncludeFilter$Scrubber__ diff --git a/libjava/gnu/xml/pipeline/XIncludeFilter.h b/libjava/gnu/xml/pipeline/XIncludeFilter.h new file mode 100644 index 00000000000..21321afba10 --- /dev/null +++ b/libjava/gnu/xml/pipeline/XIncludeFilter.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_XIncludeFilter__ +#define __gnu_xml_pipeline_XIncludeFilter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class XIncludeFilter; + } + } + } + namespace java + { + namespace net + { + class URL; + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class Locator; + class SAXParseException; + } + } + } +} + +class gnu::xml::pipeline::XIncludeFilter : public ::gnu::xml::pipeline::EventFilter +{ + +public: + XIncludeFilter(::gnu::xml::pipeline::EventConsumer *); +private: + void fatal(::org::xml::sax::SAXParseException *); +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * getPublicId(); + virtual jint getLineNumber(); + virtual jint getColumnNumber(); + virtual void setSavingPrefixes(jboolean); + virtual jboolean isSavingPrefixes(); +private: + ::java::lang::String * addMarker(::java::lang::String *); + void pop(::java::lang::String *); +public: + virtual void startDocument(); + virtual void endDocument(); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void comment(JArray< jchar > *, jint, jint); + virtual void startCDATA(); + virtual void endCDATA(); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void skippedEntity(::java::lang::String *); +public: // actually package-private + virtual void setLocator(::org::xml::sax::Locator *); + virtual ::org::xml::sax::Locator * getLocator(); +private: + ::org::xml::sax::SAXParseException * xinclude(::java::net::URL *, ::java::lang::String *); + ::org::xml::sax::SAXParseException * readText(::java::net::URL *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + static void access$0(::gnu::xml::pipeline::XIncludeFilter *, ::org::xml::sax::SAXParseException *); +private: + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::EventFilter)))) extEntities; + jint ignoreCount; + ::java::util::Stack * uris; + ::org::xml::sax::Locator * locator; + ::java::util::Vector * inclusions; + jboolean savingPrefixes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_XIncludeFilter__ diff --git a/libjava/gnu/xml/pipeline/XsltFilter.h b/libjava/gnu/xml/pipeline/XsltFilter.h new file mode 100644 index 00000000000..988735c6eea --- /dev/null +++ b/libjava/gnu/xml/pipeline/XsltFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_pipeline_XsltFilter__ +#define __gnu_xml_pipeline_XsltFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + class XsltFilter; + } + } + } +} + +class gnu::xml::pipeline::XsltFilter : public ::gnu::xml::pipeline::EventFilter +{ + +public: + XsltFilter(::java::lang::String *, ::gnu::xml::pipeline::EventConsumer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_pipeline_XsltFilter__ diff --git a/libjava/gnu/xml/stream/AttributeImpl.h b/libjava/gnu/xml/stream/AttributeImpl.h new file mode 100644 index 00000000000..d78c6a53efc --- /dev/null +++ b/libjava/gnu/xml/stream/AttributeImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_AttributeImpl__ +#define __gnu_xml_stream_AttributeImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class AttributeImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::AttributeImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + AttributeImpl(::javax::xml::stream::Location *, ::javax::xml::namespace::QName *, ::java::lang::String *, ::javax::xml::namespace::QName *, jboolean); +public: + virtual jint getEventType(); + virtual ::javax::xml::namespace::QName * getName(); + virtual ::java::lang::String * getValue(); + virtual ::javax::xml::namespace::QName * getDTDType(); + virtual jboolean isSpecified(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) name; + ::java::lang::String * value; + ::javax::xml::namespace::QName * type; + jboolean specified; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_AttributeImpl__ diff --git a/libjava/gnu/xml/stream/BufferedReader.h b/libjava/gnu/xml/stream/BufferedReader.h new file mode 100644 index 00000000000..0ee4018473d --- /dev/null +++ b/libjava/gnu/xml/stream/BufferedReader.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_BufferedReader__ +#define __gnu_xml_stream_BufferedReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class BufferedReader; + } + } + } +} + +class gnu::xml::stream::BufferedReader : public ::java::io::Reader +{ + +public: // actually package-private + BufferedReader(::java::io::Reader *); + BufferedReader(::java::io::Reader *, jint); +public: + virtual void close(); + virtual void mark(jint); + virtual jboolean markSupported(); + virtual jint read(); + virtual jint read(JArray< jchar > *); + virtual jint read(JArray< jchar > *, jint, jint); + virtual void reset(); + virtual jlong skip(jlong); +private: + jboolean refill(); +public: // actually package-private + static const jint DEFAULT_BUFFER_SIZE = 4096; + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::io::Reader)))) in; + JArray< jchar > * buf; + jint pos; + jint count; + jint markpos; + jint marklimit; + jint bufferSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_BufferedReader__ diff --git a/libjava/gnu/xml/stream/CRLFReader.h b/libjava/gnu/xml/stream/CRLFReader.h new file mode 100644 index 00000000000..977dd1e1727 --- /dev/null +++ b/libjava/gnu/xml/stream/CRLFReader.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_CRLFReader__ +#define __gnu_xml_stream_CRLFReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class CRLFReader; + } + } + } +} + +class gnu::xml::stream::CRLFReader : public ::java::io::Reader +{ + +public: // actually protected + CRLFReader(::java::io::Reader *); +public: + virtual jint read(); + virtual jint read(JArray< jchar > *); + virtual jint read(JArray< jchar > *, jint, jint); + virtual jboolean markSupported(); + virtual void mark(jint); + virtual void reset(); + virtual jlong skip(jlong); + virtual void close(); +private: + jint indexOfCRLF(JArray< jchar > *, jint, jint); +public: + static const jint CR = 13; + static const jint LF = 10; +private: + jboolean __attribute__((aligned(__alignof__( ::java::io::Reader)))) doReset; +public: // actually protected + ::java::io::Reader * in; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_CRLFReader__ diff --git a/libjava/gnu/xml/stream/CharactersImpl.h b/libjava/gnu/xml/stream/CharactersImpl.h new file mode 100644 index 00000000000..9a828cd83d8 --- /dev/null +++ b/libjava/gnu/xml/stream/CharactersImpl.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_CharactersImpl__ +#define __gnu_xml_stream_CharactersImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class CharactersImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::CharactersImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + CharactersImpl(::javax::xml::stream::Location *, ::java::lang::String *, jboolean, jboolean, jboolean); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getData(); + virtual jboolean isWhiteSpace(); + virtual jboolean isCData(); + virtual jboolean isIgnorableWhiteSpace(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) data; + jboolean whitespace; + jboolean cdata; + jboolean ignorableWhitespace; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_CharactersImpl__ diff --git a/libjava/gnu/xml/stream/CommentImpl.h b/libjava/gnu/xml/stream/CommentImpl.h new file mode 100644 index 00000000000..7e1d951df32 --- /dev/null +++ b/libjava/gnu/xml/stream/CommentImpl.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_CommentImpl__ +#define __gnu_xml_stream_CommentImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class CommentImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::CommentImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + CommentImpl(::javax::xml::stream::Location *, ::java::lang::String *); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getText(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) text; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_CommentImpl__ diff --git a/libjava/gnu/xml/stream/DTDImpl.h b/libjava/gnu/xml/stream/DTDImpl.h new file mode 100644 index 00000000000..e1118230ac5 --- /dev/null +++ b/libjava/gnu/xml/stream/DTDImpl.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_DTDImpl__ +#define __gnu_xml_stream_DTDImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class DTDImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::DTDImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + DTDImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::Object *, ::java::util::List *, ::java::util::List *); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getDocumentTypeDeclaration(); + virtual ::java::lang::Object * getProcessedDTD(); + virtual ::java::util::List * getNotations(); + virtual ::java::util::List * getEntities(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) body; + ::java::lang::Object * impl; + ::java::util::List * notations; + ::java::util::List * entities; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_DTDImpl__ diff --git a/libjava/gnu/xml/stream/EndDocumentImpl.h b/libjava/gnu/xml/stream/EndDocumentImpl.h new file mode 100644 index 00000000000..a7bbf05aa52 --- /dev/null +++ b/libjava/gnu/xml/stream/EndDocumentImpl.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_EndDocumentImpl__ +#define __gnu_xml_stream_EndDocumentImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class EndDocumentImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::EndDocumentImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + EndDocumentImpl(::javax::xml::stream::Location *); +public: + virtual jint getEventType(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_EndDocumentImpl__ diff --git a/libjava/gnu/xml/stream/EndElementImpl.h b/libjava/gnu/xml/stream/EndElementImpl.h new file mode 100644 index 00000000000..cc1dba81601 --- /dev/null +++ b/libjava/gnu/xml/stream/EndElementImpl.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_EndElementImpl__ +#define __gnu_xml_stream_EndElementImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class EndElementImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::EndElementImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + EndElementImpl(::javax::xml::stream::Location *, ::javax::xml::namespace::QName *, ::java::util::List *); +public: + virtual jint getEventType(); + virtual ::javax::xml::namespace::QName * getName(); + virtual ::java::util::Iterator * getNamespaces(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) name; + ::java::util::List * namespaces; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_EndElementImpl__ diff --git a/libjava/gnu/xml/stream/EntityDeclarationImpl.h b/libjava/gnu/xml/stream/EntityDeclarationImpl.h new file mode 100644 index 00000000000..8c4180860f0 --- /dev/null +++ b/libjava/gnu/xml/stream/EntityDeclarationImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_EntityDeclarationImpl__ +#define __gnu_xml_stream_EntityDeclarationImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class EntityDeclarationImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::EntityDeclarationImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + EntityDeclarationImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getNotationName(); + virtual ::java::lang::String * getReplacementText(); + virtual ::java::lang::String * getBaseURI(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) publicId; + ::java::lang::String * systemId; + ::java::lang::String * name; + ::java::lang::String * notationName; + ::java::lang::String * replacementText; + ::java::lang::String * baseUri; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_EntityDeclarationImpl__ diff --git a/libjava/gnu/xml/stream/EntityReferenceImpl.h b/libjava/gnu/xml/stream/EntityReferenceImpl.h new file mode 100644 index 00000000000..0f30dc87747 --- /dev/null +++ b/libjava/gnu/xml/stream/EntityReferenceImpl.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_EntityReferenceImpl__ +#define __gnu_xml_stream_EntityReferenceImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class EntityReferenceImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + namespace events + { + class EntityDeclaration; + } + } + } + } +} + +class gnu::xml::stream::EntityReferenceImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + EntityReferenceImpl(::javax::xml::stream::Location *, ::javax::xml::stream::events::EntityDeclaration *, ::java::lang::String *); +public: + virtual jint getEventType(); + virtual ::javax::xml::stream::events::EntityDeclaration * getDeclaration(); + virtual ::java::lang::String * getName(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::javax::xml::stream::events::EntityDeclaration * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) decl; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_EntityReferenceImpl__ diff --git a/libjava/gnu/xml/stream/FilteredEventReader.h b/libjava/gnu/xml/stream/FilteredEventReader.h new file mode 100644 index 00000000000..ae4da2f7076 --- /dev/null +++ b/libjava/gnu/xml/stream/FilteredEventReader.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_FilteredEventReader__ +#define __gnu_xml_stream_FilteredEventReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class FilteredEventReader; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class EventFilter; + class XMLEventReader; + namespace events + { + class XMLEvent; + } + } + } + } +} + +class gnu::xml::stream::FilteredEventReader : public ::javax::xml::stream::util::EventReaderDelegate +{ + +public: // actually package-private + FilteredEventReader(::javax::xml::stream::XMLEventReader *, ::javax::xml::stream::EventFilter *); +public: + virtual jboolean hasNext(); + virtual ::javax::xml::stream::events::XMLEvent * nextEvent(); + virtual ::java::lang::Object * next(); + virtual ::javax::xml::stream::events::XMLEvent * peek(); + virtual ::javax::xml::stream::events::XMLEvent * nextTag(); +public: // actually package-private + ::javax::xml::stream::EventFilter * __attribute__((aligned(__alignof__( ::javax::xml::stream::util::EventReaderDelegate)))) filter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_FilteredEventReader__ diff --git a/libjava/gnu/xml/stream/FilteredStreamReader.h b/libjava/gnu/xml/stream/FilteredStreamReader.h new file mode 100644 index 00000000000..77c92e8598e --- /dev/null +++ b/libjava/gnu/xml/stream/FilteredStreamReader.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_FilteredStreamReader__ +#define __gnu_xml_stream_FilteredStreamReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class FilteredStreamReader; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class StreamFilter; + class XMLStreamReader; + } + } + } +} + +class gnu::xml::stream::FilteredStreamReader : public ::javax::xml::stream::util::ReaderDelegate +{ + +public: // actually package-private + FilteredStreamReader(::javax::xml::stream::XMLStreamReader *, ::javax::xml::stream::StreamFilter *); +public: + virtual jboolean hasNext(); + virtual jint next(); + virtual jint nextTag(); +public: // actually package-private + ::javax::xml::stream::XMLStreamReader * __attribute__((aligned(__alignof__( ::javax::xml::stream::util::ReaderDelegate)))) reader; + ::javax::xml::stream::StreamFilter * filter; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_FilteredStreamReader__ diff --git a/libjava/gnu/xml/stream/NamespaceImpl.h b/libjava/gnu/xml/stream/NamespaceImpl.h new file mode 100644 index 00000000000..136154c99a5 --- /dev/null +++ b/libjava/gnu/xml/stream/NamespaceImpl.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_NamespaceImpl__ +#define __gnu_xml_stream_NamespaceImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class NamespaceImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::NamespaceImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + NamespaceImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getPrefix(); + virtual ::java::lang::String * getNamespaceURI(); + virtual jboolean isDefaultNamespaceDeclaration(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) prefix; + ::java::lang::String * uri; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_NamespaceImpl__ diff --git a/libjava/gnu/xml/stream/NotationDeclarationImpl.h b/libjava/gnu/xml/stream/NotationDeclarationImpl.h new file mode 100644 index 00000000000..c994018d8d0 --- /dev/null +++ b/libjava/gnu/xml/stream/NotationDeclarationImpl.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_NotationDeclarationImpl__ +#define __gnu_xml_stream_NotationDeclarationImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class NotationDeclarationImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::NotationDeclarationImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + NotationDeclarationImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) name; + ::java::lang::String * publicId; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_NotationDeclarationImpl__ diff --git a/libjava/gnu/xml/stream/ProcessingInstructionImpl.h b/libjava/gnu/xml/stream/ProcessingInstructionImpl.h new file mode 100644 index 00000000000..f743902e91c --- /dev/null +++ b/libjava/gnu/xml/stream/ProcessingInstructionImpl.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_ProcessingInstructionImpl__ +#define __gnu_xml_stream_ProcessingInstructionImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class ProcessingInstructionImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::ProcessingInstructionImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + ProcessingInstructionImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getTarget(); + virtual ::java::lang::String * getData(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) target; + ::java::lang::String * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_ProcessingInstructionImpl__ diff --git a/libjava/gnu/xml/stream/SAXParser.h b/libjava/gnu/xml/stream/SAXParser.h new file mode 100644 index 00000000000..5624f8680af --- /dev/null +++ b/libjava/gnu/xml/stream/SAXParser.h @@ -0,0 +1,147 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_SAXParser__ +#define __gnu_xml_stream_SAXParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class SAXParser; + class XMLParser; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + class XMLEventReader; + class XMLStreamReader; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + class Parser; + class XMLReader; + namespace ext + { + class DeclHandler; + class LexicalHandler; + } + } + } + } +} + +class gnu::xml::stream::SAXParser : public ::javax::xml::parsers::SAXParser +{ + +public: + SAXParser(); +public: // actually package-private + SAXParser(jboolean, jboolean, jboolean); +public: + virtual ::org::xml::sax::Parser * getParser(); + virtual ::org::xml::sax::XMLReader * getXMLReader(); + virtual jboolean isNamespaceAware(); + virtual jboolean isValidating(); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual jboolean isXIncludeAware(); + virtual void reset(); + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual void setEntityResolver(::org::xml::sax::EntityResolver *); + virtual ::org::xml::sax::EntityResolver * getEntityResolver(); + virtual void setDTDHandler(::org::xml::sax::DTDHandler *); + virtual ::org::xml::sax::DTDHandler * getDTDHandler(); + virtual void setContentHandler(::org::xml::sax::ContentHandler *); + virtual ::org::xml::sax::ContentHandler * getContentHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void parse(::org::xml::sax::InputSource *); +private: + jboolean isIgnorableWhitespace(::gnu::xml::stream::XMLParser *, JArray< jchar > *, jboolean); +public: + virtual void parse(::java::lang::String *); + virtual jint getIndex(::java::lang::String *); + virtual jint getIndex(::java::lang::String *, ::java::lang::String *); + virtual jint getLength(); + virtual ::java::lang::String * getLocalName(jint); + virtual ::java::lang::String * getQName(jint); + virtual ::java::lang::String * getType(jint); + virtual ::java::lang::String * getType(::java::lang::String *); + virtual ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getURI(jint); + virtual ::java::lang::String * getValue(jint); + virtual ::java::lang::String * getValue(::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *); + virtual jboolean isDeclared(jint); + virtual jboolean isDeclared(::java::lang::String *); + virtual jboolean isDeclared(::java::lang::String *, ::java::lang::String *); + virtual jboolean isSpecified(jint); + virtual jboolean isSpecified(::java::lang::String *); + virtual jboolean isSpecified(::java::lang::String *, ::java::lang::String *); + virtual jint getColumnNumber(); + virtual jint getLineNumber(); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * getEncoding(); + virtual ::java::lang::String * getXMLVersion(); + virtual ::java::lang::Object * resolveEntity(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::XMLEventReader * resolveAsXMLEventReader(::java::lang::String *); + virtual ::javax::xml::stream::XMLStreamReader * resolveAsXMLStreamReader(::java::lang::String *); + virtual void report(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *, ::javax::xml::stream::Location *); + static void main(JArray< ::java::lang::String * > *); +public: // actually package-private + ::org::xml::sax::ContentHandler * __attribute__((aligned(__alignof__( ::javax::xml::parsers::SAXParser)))) contentHandler; + ::org::xml::sax::ext::DeclHandler * declHandler; + ::org::xml::sax::DTDHandler * dtdHandler; + ::org::xml::sax::EntityResolver * entityResolver; + ::org::xml::sax::ErrorHandler * errorHandler; + ::org::xml::sax::ext::LexicalHandler * lexicalHandler; + jboolean validating; + jboolean namespaceAware; + jboolean xIncludeAware; + jboolean stringInterning; + jboolean coalescing; + jboolean replaceERefs; + jboolean externalEntities; + jboolean supportDTD; + jboolean baseAware; + ::gnu::xml::stream::XMLParser * parser; + ::javax::xml::stream::XMLStreamReader * reader; + ::java::lang::String * encoding; + ::java::lang::String * xmlVersion; + jboolean xmlStandalone; + ::java::lang::String * xmlEncoding; + ::java::lang::String * baseURI; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_SAXParser__ diff --git a/libjava/gnu/xml/stream/SAXParserFactory.h b/libjava/gnu/xml/stream/SAXParserFactory.h new file mode 100644 index 00000000000..c3d0c01d455 --- /dev/null +++ b/libjava/gnu/xml/stream/SAXParserFactory.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_SAXParserFactory__ +#define __gnu_xml_stream_SAXParserFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class SAXParserFactory; + } + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class SAXParser; + } + } + } +} + +class gnu::xml::stream::SAXParserFactory : public ::javax::xml::parsers::SAXParserFactory +{ + +public: + SAXParserFactory(); + virtual ::javax::xml::parsers::SAXParser * newSAXParser(); + virtual void setFeature(::java::lang::String *, jboolean); + virtual jboolean getFeature(::java::lang::String *); +public: // actually package-private + static ::java::util::Set * FEATURE_NAMES; + ::java::util::Map * __attribute__((aligned(__alignof__( ::javax::xml::parsers::SAXParserFactory)))) features; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_SAXParserFactory__ diff --git a/libjava/gnu/xml/stream/StartDocumentImpl.h b/libjava/gnu/xml/stream/StartDocumentImpl.h new file mode 100644 index 00000000000..adb51a57fd8 --- /dev/null +++ b/libjava/gnu/xml/stream/StartDocumentImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_StartDocumentImpl__ +#define __gnu_xml_stream_StartDocumentImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class StartDocumentImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class gnu::xml::stream::StartDocumentImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + StartDocumentImpl(::javax::xml::stream::Location *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean, jboolean); +public: + virtual jint getEventType(); + virtual ::java::lang::String * getSystemId(); + virtual ::java::lang::String * getCharacterEncodingScheme(); + virtual jboolean encodingSet(); + virtual jboolean isStandalone(); + virtual jboolean standaloneSet(); + virtual ::java::lang::String * getVersion(); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) systemId; + ::java::lang::String * encoding; + ::java::lang::String * xmlVersion; + jboolean xmlStandalone; + jboolean standaloneDeclared; + jboolean encodingDeclared; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_StartDocumentImpl__ diff --git a/libjava/gnu/xml/stream/StartElementImpl.h b/libjava/gnu/xml/stream/StartElementImpl.h new file mode 100644 index 00000000000..13b1dc64679 --- /dev/null +++ b/libjava/gnu/xml/stream/StartElementImpl.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_StartElementImpl__ +#define __gnu_xml_stream_StartElementImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class StartElementImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Attribute; + } + } + } + } +} + +class gnu::xml::stream::StartElementImpl : public ::gnu::xml::stream::XMLEventImpl +{ + +public: // actually protected + StartElementImpl(::javax::xml::stream::Location *, ::javax::xml::namespace::QName *, ::java::util::List *, ::java::util::List *, ::javax::xml::namespace::NamespaceContext *); +public: + virtual jint getEventType(); + virtual ::javax::xml::namespace::QName * getName(); + virtual ::java::util::Iterator * getAttributes(); + virtual ::java::util::Iterator * getNamespaces(); + virtual ::javax::xml::stream::events::Attribute * getAttributeByName(::javax::xml::namespace::QName *); + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext(); + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *); + virtual void writeAsEncodedUnicode(::java::io::Writer *); +public: // actually protected + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) name; + ::java::util::List * attributes; + ::java::util::List * namespaces; + ::javax::xml::namespace::NamespaceContext * namespaceContext; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_StartElementImpl__ diff --git a/libjava/gnu/xml/stream/UnicodeReader.h b/libjava/gnu/xml/stream/UnicodeReader.h new file mode 100644 index 00000000000..456700636fc --- /dev/null +++ b/libjava/gnu/xml/stream/UnicodeReader.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_UnicodeReader__ +#define __gnu_xml_stream_UnicodeReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class UnicodeReader; + } + } + } +} + +class gnu::xml::stream::UnicodeReader : public ::java::lang::Object +{ + +public: // actually package-private + UnicodeReader(::java::io::Reader *); +public: + virtual void mark(jint); + virtual void reset(); + virtual jint read(); + virtual jint read(JArray< jint > *, jint, jint); + virtual void close(); + static JArray< jint > * toCodePointArray(::java::lang::String *); +public: // actually package-private + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_UnicodeReader__ diff --git a/libjava/gnu/xml/stream/XIncludeFilter.h b/libjava/gnu/xml/stream/XIncludeFilter.h new file mode 100644 index 00000000000..36e488a6015 --- /dev/null +++ b/libjava/gnu/xml/stream/XIncludeFilter.h @@ -0,0 +1,139 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XIncludeFilter__ +#define __gnu_xml_stream_XIncludeFilter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XIncludeFilter; + } + } + } + namespace java + { + namespace net + { + class URLConnection; + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace parsers + { + class DocumentBuilder; + } + namespace stream + { + class XMLStreamReader; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class Node; + namespace traversal + { + class DocumentTraversal; + class TreeWalker; + } + namespace xpath + { + class XPathEvaluator; + class XPathResult; + } + } + } + } +} + +class gnu::xml::stream::XIncludeFilter : public ::javax::xml::stream::util::ReaderDelegate +{ + +public: // actually package-private + XIncludeFilter(::javax::xml::stream::XMLStreamReader *, ::java::lang::String *, jboolean, jboolean, jboolean); +public: + virtual jint getAttributeCount(); + virtual ::java::lang::String * getAttributeLocalName(jint); + virtual ::java::lang::String * getAttributeNamespace(jint); + virtual ::java::lang::String * getAttributePrefix(jint); + virtual ::javax::xml::namespace::QName * getAttributeName(jint); + virtual ::java::lang::String * getAttributeType(jint); + virtual jboolean isAttributeSpecified(jint); + virtual ::java::lang::String * getAttributeValue(jint); + virtual ::java::lang::String * getAttributeValue(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getElementText(); + virtual jint getEventType(); + virtual ::java::lang::String * getLocalName(); + virtual ::javax::xml::namespace::QName * getName(); + virtual ::java::lang::String * getNamespaceURI(); + virtual ::java::lang::String * getPIData(); + virtual ::java::lang::String * getPITarget(); + virtual ::java::lang::String * getPrefix(); + virtual ::java::lang::String * getText(); + virtual JArray< jchar > * getTextCharacters(); + virtual jint getTextCharacters(jint, JArray< jchar > *, jint, jint); + virtual jint getTextLength(); + virtual jint getTextStart(); + virtual jboolean hasNext(); + virtual jint next(); +public: // actually package-private + virtual jboolean isSpace(JArray< jchar > *, jint); + virtual ::java::lang::String * getBaseURI(); + virtual jboolean includeResource(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::net::URLConnection * getURLConnection(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Document * getDocument(::org::w3c::dom::Node *); + virtual ::javax::xml::parsers::DocumentBuilder * getDocumentBuilder(); + virtual ::org::w3c::dom::traversal::DocumentTraversal * getDocumentTraversal(::org::w3c::dom::Document *); + virtual ::org::w3c::dom::xpath::XPathEvaluator * getXPathEvaluator(::org::w3c::dom::Document *); + static ::java::lang::String * getParameter(::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * XINCLUDE_NS_URI; + static const jint SHOW_FLAGS = 221; + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::xml::stream::util::ReaderDelegate)))) systemId; + jboolean namespaceAware; + jboolean validating; + jboolean expandERefs; + ::java::lang::String * href; + jint event; + jboolean included; + ::org::w3c::dom::xpath::XPathResult * result; + jint snapshotIndex; + ::org::w3c::dom::Node * current; + ::org::w3c::dom::traversal::TreeWalker * walker; + ::java::util::HashSet * seen; + jboolean backtracking; + jboolean lookahead; + ::java::io::Reader * includedText; + JArray< jchar > * buf; + jint len; + jboolean inInclude; + jboolean inFallback; + jboolean seenFallback; + ::javax::xml::parsers::DocumentBuilder * builder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XIncludeFilter__ diff --git a/libjava/gnu/xml/stream/XMLEventAllocatorImpl.h b/libjava/gnu/xml/stream/XMLEventAllocatorImpl.h new file mode 100644 index 00000000000..374c125c422 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLEventAllocatorImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLEventAllocatorImpl__ +#define __gnu_xml_stream_XMLEventAllocatorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLEventAllocatorImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class XMLStreamReader; + namespace events + { + class XMLEvent; + } + namespace util + { + class XMLEventAllocator; + class XMLEventConsumer; + } + } + } + } +} + +class gnu::xml::stream::XMLEventAllocatorImpl : public ::java::lang::Object +{ + +public: // actually protected + XMLEventAllocatorImpl(); +public: + virtual ::javax::xml::stream::events::XMLEvent * allocate(::javax::xml::stream::XMLStreamReader *); + virtual void allocate(::javax::xml::stream::XMLStreamReader *, ::javax::xml::stream::util::XMLEventConsumer *); + virtual ::javax::xml::stream::util::XMLEventAllocator * newInstance(); +public: // actually protected + virtual jboolean isWhitespace(::java::lang::String *); + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entityDeclarations; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLEventAllocatorImpl__ diff --git a/libjava/gnu/xml/stream/XMLEventFactoryImpl.h b/libjava/gnu/xml/stream/XMLEventFactoryImpl.h new file mode 100644 index 00000000000..b8ebf0bcda5 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLEventFactoryImpl.h @@ -0,0 +1,93 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLEventFactoryImpl__ +#define __gnu_xml_stream_XMLEventFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLEventFactoryImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Attribute; + class Characters; + class Comment; + class DTD; + class EndDocument; + class EndElement; + class EntityDeclaration; + class EntityReference; + class Namespace; + class ProcessingInstruction; + class StartDocument; + class StartElement; + } + } + } + } +} + +class gnu::xml::stream::XMLEventFactoryImpl : public ::javax::xml::stream::XMLEventFactory +{ + +public: + XMLEventFactoryImpl(); + virtual void setLocation(::javax::xml::stream::Location *); + virtual ::javax::xml::stream::events::Attribute * createAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::events::Attribute * createAttribute(::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::events::Attribute * createAttribute(::javax::xml::namespace::QName *, ::java::lang::String *); + virtual ::javax::xml::stream::events::Namespace * createNamespace(::java::lang::String *); + virtual ::javax::xml::stream::events::Namespace * createNamespace(::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::events::StartElement * createStartElement(::javax::xml::namespace::QName *, ::java::util::Iterator *, ::java::util::Iterator *); + virtual ::javax::xml::stream::events::StartElement * createStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::events::StartElement * createStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Iterator *, ::java::util::Iterator *); + virtual ::javax::xml::stream::events::StartElement * createStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Iterator *, ::java::util::Iterator *, ::javax::xml::namespace::NamespaceContext *); + virtual ::javax::xml::stream::events::EndElement * createEndElement(::javax::xml::namespace::QName *, ::java::util::Iterator *); + virtual ::javax::xml::stream::events::EndElement * createEndElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::events::EndElement * createEndElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Iterator *); + virtual ::javax::xml::stream::events::Characters * createCharacters(::java::lang::String *); + virtual ::javax::xml::stream::events::Characters * createCData(::java::lang::String *); + virtual ::javax::xml::stream::events::Characters * createSpace(::java::lang::String *); + virtual ::javax::xml::stream::events::Characters * createIgnorableSpace(::java::lang::String *); + virtual ::javax::xml::stream::events::StartDocument * createStartDocument(); + virtual ::javax::xml::stream::events::StartDocument * createStartDocument(::java::lang::String *, ::java::lang::String *, jboolean); + virtual ::javax::xml::stream::events::StartDocument * createStartDocument(::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::events::StartDocument * createStartDocument(::java::lang::String *); + virtual ::javax::xml::stream::events::EndDocument * createEndDocument(); + virtual ::javax::xml::stream::events::EntityReference * createEntityReference(::java::lang::String *, ::javax::xml::stream::events::EntityDeclaration *); + virtual ::javax::xml::stream::events::Comment * createComment(::java::lang::String *); + virtual ::javax::xml::stream::events::ProcessingInstruction * createProcessingInstruction(::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::stream::events::DTD * createDTD(::java::lang::String *); +public: // actually package-private + virtual ::java::util::LinkedList * createLinkedList(::java::util::Iterator *); +public: // actually protected + ::javax::xml::stream::Location * __attribute__((aligned(__alignof__( ::javax::xml::stream::XMLEventFactory)))) location; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLEventFactoryImpl__ diff --git a/libjava/gnu/xml/stream/XMLEventImpl.h b/libjava/gnu/xml/stream/XMLEventImpl.h new file mode 100644 index 00000000000..46432d3506d --- /dev/null +++ b/libjava/gnu/xml/stream/XMLEventImpl.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLEventImpl__ +#define __gnu_xml_stream_XMLEventImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLEventImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class StartElement; + } + } + } + } +} + +class gnu::xml::stream::XMLEventImpl : public ::java::lang::Object +{ + +public: // actually protected + XMLEventImpl(::javax::xml::stream::Location *); +public: + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation(); + virtual jboolean isStartElement(); + virtual jboolean isAttribute(); + virtual jboolean isNamespace(); + virtual jboolean isEndElement(); + virtual jboolean isEntityReference(); + virtual jboolean isProcessingInstruction(); + virtual jboolean isCharacters(); + virtual jboolean isStartDocument(); + virtual jboolean isEndDocument(); + virtual ::javax::xml::stream::events::StartElement * asStartElement(); + virtual ::javax::xml::stream::events::EndElement * asEndElement(); + virtual ::javax::xml::stream::events::Characters * asCharacters(); + virtual ::javax::xml::namespace::QName * getSchemaType(); + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; +public: // actually protected + virtual ::java::lang::String * encode(::java::lang::String *, jboolean); + ::javax::xml::stream::Location * __attribute__((aligned(__alignof__( ::java::lang::Object)))) location; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLEventImpl__ diff --git a/libjava/gnu/xml/stream/XMLEventReaderImpl.h b/libjava/gnu/xml/stream/XMLEventReaderImpl.h new file mode 100644 index 00000000000..e3ce4923ffb --- /dev/null +++ b/libjava/gnu/xml/stream/XMLEventReaderImpl.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLEventReaderImpl__ +#define __gnu_xml_stream_XMLEventReaderImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLEventReaderImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class XMLStreamReader; + namespace events + { + class XMLEvent; + } + namespace util + { + class XMLEventAllocator; + } + } + } + } +} + +class gnu::xml::stream::XMLEventReaderImpl : public ::java::lang::Object +{ + +public: // actually protected + XMLEventReaderImpl(::javax::xml::stream::XMLStreamReader *, ::javax::xml::stream::util::XMLEventAllocator *, ::java::lang::String *); +public: + virtual ::javax::xml::stream::events::XMLEvent * nextEvent(); + virtual ::java::lang::Object * next(); + virtual jboolean hasNext(); + virtual ::javax::xml::stream::events::XMLEvent * peek(); + virtual ::java::lang::String * getElementText(); + virtual ::javax::xml::stream::events::XMLEvent * nextTag(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void close(); + virtual void remove(); +public: // actually protected + ::javax::xml::stream::XMLStreamReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) reader; + ::javax::xml::stream::util::XMLEventAllocator * allocator; + ::java::lang::String * systemId; + ::javax::xml::stream::events::XMLEvent * peekEvent; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLEventReaderImpl__ diff --git a/libjava/gnu/xml/stream/XMLEventWriterImpl.h b/libjava/gnu/xml/stream/XMLEventWriterImpl.h new file mode 100644 index 00000000000..77c10a53399 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLEventWriterImpl.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLEventWriterImpl__ +#define __gnu_xml_stream_XMLEventWriterImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLEventWriterImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + } + namespace stream + { + class XMLEventReader; + class XMLStreamWriter; + namespace events + { + class XMLEvent; + } + } + } + } +} + +class gnu::xml::stream::XMLEventWriterImpl : public ::java::lang::Object +{ + +public: // actually protected + XMLEventWriterImpl(::javax::xml::stream::XMLStreamWriter *); +public: + virtual void flush(); + virtual void close(); + virtual void add(::javax::xml::stream::events::XMLEvent *); + virtual void add(::javax::xml::stream::XMLEventReader *); + virtual ::java::lang::String * getPrefix(::java::lang::String *); + virtual void setPrefix(::java::lang::String *, ::java::lang::String *); + virtual void setDefaultNamespace(::java::lang::String *); + virtual void setNamespaceContext(::javax::xml::namespace::NamespaceContext *); + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext(); +public: // actually protected + ::javax::xml::stream::XMLStreamWriter * __attribute__((aligned(__alignof__( ::java::lang::Object)))) writer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLEventWriterImpl__ diff --git a/libjava/gnu/xml/stream/XMLInputFactoryImpl.h b/libjava/gnu/xml/stream/XMLInputFactoryImpl.h new file mode 100644 index 00000000000..43a2197555a --- /dev/null +++ b/libjava/gnu/xml/stream/XMLInputFactoryImpl.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLInputFactoryImpl__ +#define __gnu_xml_stream_XMLInputFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLInputFactoryImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class EventFilter; + class StreamFilter; + class XMLEventReader; + class XMLReporter; + class XMLResolver; + class XMLStreamReader; + namespace util + { + class XMLEventAllocator; + } + } + namespace transform + { + class Source; + } + } + } +} + +class gnu::xml::stream::XMLInputFactoryImpl : public ::javax::xml::stream::XMLInputFactory +{ + +public: + XMLInputFactoryImpl(); + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::io::Reader *); + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::javax::xml::transform::Source *); + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::io::InputStream *); + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::io::InputStream *, ::java::lang::String *); + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::lang::String *, ::java::io::InputStream *); + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::lang::String *, ::java::io::Reader *); + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::io::Reader *); + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::lang::String *, ::java::io::Reader *); + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::javax::xml::stream::XMLStreamReader *); + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::javax::xml::transform::Source *); + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::io::InputStream *); + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::io::InputStream *, ::java::lang::String *); + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::lang::String *, ::java::io::InputStream *); + virtual ::javax::xml::stream::XMLStreamReader * createFilteredReader(::javax::xml::stream::XMLStreamReader *, ::javax::xml::stream::StreamFilter *); + virtual ::javax::xml::stream::XMLEventReader * createFilteredReader(::javax::xml::stream::XMLEventReader *, ::javax::xml::stream::EventFilter *); + virtual ::javax::xml::stream::XMLResolver * getXMLResolver(); + virtual void setXMLResolver(::javax::xml::stream::XMLResolver *); + virtual ::javax::xml::stream::XMLReporter * getXMLReporter(); + virtual void setXMLReporter(::javax::xml::stream::XMLReporter *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual jboolean isPropertySupported(::java::lang::String *); + virtual void setEventAllocator(::javax::xml::stream::util::XMLEventAllocator *); + virtual ::javax::xml::stream::util::XMLEventAllocator * getEventAllocator(); + virtual void setCoalescing(jboolean); + virtual jboolean isCoalescing(); +public: // actually protected + virtual ::java::io::InputStream * getInputStream(::javax::xml::transform::Source *); + ::javax::xml::stream::XMLResolver * __attribute__((aligned(__alignof__( ::javax::xml::stream::XMLInputFactory)))) resolver; + ::javax::xml::stream::XMLReporter * reporter; + ::javax::xml::stream::util::XMLEventAllocator * allocator; + jboolean validating; + jboolean namespaceAware; + jboolean coalescing; + jboolean replacingEntityReferences; + jboolean externalEntities; + jboolean supportDTD; + jboolean xIncludeAware; + jboolean baseAware; + jboolean stringInterning; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLInputFactoryImpl__ diff --git a/libjava/gnu/xml/stream/XMLOutputFactoryImpl.h b/libjava/gnu/xml/stream/XMLOutputFactoryImpl.h new file mode 100644 index 00000000000..c5cd038b7f5 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLOutputFactoryImpl.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLOutputFactoryImpl__ +#define __gnu_xml_stream_XMLOutputFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLOutputFactoryImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace stream + { + class XMLEventWriter; + class XMLStreamWriter; + } + namespace transform + { + class Result; + } + } + } +} + +class gnu::xml::stream::XMLOutputFactoryImpl : public ::javax::xml::stream::XMLOutputFactory +{ + +public: + XMLOutputFactoryImpl(); + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::Writer *); + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *); + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *, ::java::lang::String *); + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::javax::xml::transform::Result *); + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::java::io::OutputStream *); + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::java::io::OutputStream *, ::java::lang::String *); + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::java::io::Writer *); + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::javax::xml::transform::Result *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual jboolean isPropertySupported(::java::lang::String *); + virtual jboolean isPrefixDefaulting(); + virtual void setPrefixDefaulting(jboolean); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::xml::stream::XMLOutputFactory)))) prefixDefaulting; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLOutputFactoryImpl__ diff --git a/libjava/gnu/xml/stream/XMLParser$AnyContentModel.h b/libjava/gnu/xml/stream/XMLParser$AnyContentModel.h new file mode 100644 index 00000000000..c5b4ea39515 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$AnyContentModel.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$AnyContentModel__ +#define __gnu_xml_stream_XMLParser$AnyContentModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$AnyContentModel; + } + } + } +} + +class gnu::xml::stream::XMLParser$AnyContentModel : public ::gnu::xml::stream::XMLParser$ContentModel +{ + +public: // actually package-private + XMLParser$AnyContentModel(::gnu::xml::stream::XMLParser *); + ::gnu::xml::stream::XMLParser * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLParser$ContentModel)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$AnyContentModel__ diff --git a/libjava/gnu/xml/stream/XMLParser$Attribute.h b/libjava/gnu/xml/stream/XMLParser$Attribute.h new file mode 100644 index 00000000000..0b2b62aa653 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$Attribute.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$Attribute__ +#define __gnu_xml_stream_XMLParser$Attribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$Attribute; + } + } + } +} + +class gnu::xml::stream::XMLParser$Attribute : public ::java::lang::Object +{ + +public: // actually package-private + XMLParser$Attribute(::gnu::xml::stream::XMLParser *, ::java::lang::String *, ::java::lang::String *, jboolean, ::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * type; + jboolean specified; + ::java::lang::String * value; + ::java::lang::String * prefix; + ::java::lang::String * localName; + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$Attribute__ diff --git a/libjava/gnu/xml/stream/XMLParser$AttributeDecl.h b/libjava/gnu/xml/stream/XMLParser$AttributeDecl.h new file mode 100644 index 00000000000..27da8e20da0 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$AttributeDecl.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$AttributeDecl__ +#define __gnu_xml_stream_XMLParser$AttributeDecl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$AttributeDecl; + } + } + } +} + +class gnu::xml::stream::XMLParser$AttributeDecl : public ::java::lang::Object +{ + +public: // actually package-private + XMLParser$AttributeDecl(::gnu::xml::stream::XMLParser *, ::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::util::HashSet *, jboolean); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::java::lang::String * value; + jint valueType; + ::java::lang::String * enumeration; + ::java::util::HashSet * values; + jboolean external; + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$AttributeDecl__ diff --git a/libjava/gnu/xml/stream/XMLParser$ContentModel.h b/libjava/gnu/xml/stream/XMLParser$ContentModel.h new file mode 100644 index 00000000000..26d9b824ff8 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$ContentModel.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$ContentModel__ +#define __gnu_xml_stream_XMLParser$ContentModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$ContentModel; + } + } + } +} + +class gnu::xml::stream::XMLParser$ContentModel : public ::java::lang::Object +{ + +public: // actually package-private + XMLParser$ContentModel(::gnu::xml::stream::XMLParser *, jint); + static const jint EMPTY = 0; + static const jint ANY = 1; + static const jint ELEMENT = 2; + static const jint MIXED = 3; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) min; + jint max; + jint type; + ::java::lang::String * text; + jboolean external; + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$ContentModel__ diff --git a/libjava/gnu/xml/stream/XMLParser$ContentParticle.h b/libjava/gnu/xml/stream/XMLParser$ContentParticle.h new file mode 100644 index 00000000000..3ac0ad187ba --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$ContentParticle.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$ContentParticle__ +#define __gnu_xml_stream_XMLParser$ContentParticle__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$ContentParticle; + } + } + } +} + +class gnu::xml::stream::XMLParser$ContentParticle : public ::java::lang::Object +{ + +public: // actually package-private + XMLParser$ContentParticle(::gnu::xml::stream::XMLParser *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) min; + jint max; + ::java::lang::Object * content; + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$ContentParticle__ diff --git a/libjava/gnu/xml/stream/XMLParser$Doctype.h b/libjava/gnu/xml/stream/XMLParser$Doctype.h new file mode 100644 index 00000000000..06ba9ec6831 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$Doctype.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$Doctype__ +#define __gnu_xml_stream_XMLParser$Doctype__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$AttributeDecl; + class XMLParser$ContentModel; + class XMLParser$Doctype; + class XMLParser$ExternalIds; + } + } + } +} + +class gnu::xml::stream::XMLParser$Doctype : public ::java::lang::Object +{ + +public: // actually package-private + XMLParser$Doctype(::gnu::xml::stream::XMLParser *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void addElementDecl(::java::lang::String *, ::java::lang::String *, ::gnu::xml::stream::XMLParser$ContentModel *); + virtual void addAttributeDecl(::java::lang::String *, ::java::lang::String *, ::gnu::xml::stream::XMLParser$AttributeDecl *); + virtual void addEntityDecl(::java::lang::String *, ::java::lang::String *, jboolean); + virtual void addEntityDecl(::java::lang::String *, ::gnu::xml::stream::XMLParser$ExternalIds *, jboolean); + virtual void addNotationDecl(::java::lang::String *, ::gnu::xml::stream::XMLParser$ExternalIds *, jboolean); + virtual void addComment(::java::lang::String *); + virtual void addPI(::java::lang::String *, ::java::lang::String *); + virtual ::gnu::xml::stream::XMLParser$ContentModel * getElementModel(::java::lang::String *); + virtual ::gnu::xml::stream::XMLParser$AttributeDecl * getAttributeDecl(::java::lang::String *, ::java::lang::String *); + virtual jboolean isAttributeDeclared(::java::lang::String *, ::java::lang::String *); + virtual ::java::util::Iterator * attlistIterator(::java::lang::String *); + virtual ::java::lang::Object * getEntity(::java::lang::String *); + virtual jboolean isEntityExternal(::java::lang::String *); + virtual ::java::util::Iterator * entityIterator(); + virtual ::gnu::xml::stream::XMLParser$ExternalIds * getNotation(::java::lang::String *); + virtual jboolean isNotationExternal(::java::lang::String *); + virtual ::java::lang::String * getComment(::java::lang::String *); + virtual JArray< ::java::lang::String * > * getPI(::java::lang::String *); + virtual ::java::util::Iterator * entryIterator(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) rootName; + ::java::lang::String * publicId; + ::java::lang::String * systemId; +private: + ::java::util::LinkedHashMap * elements; + ::java::util::LinkedHashMap * attlists; + ::java::util::LinkedHashMap * entities; + ::java::util::LinkedHashMap * notations; + ::java::util::LinkedHashMap * comments; + ::java::util::LinkedHashMap * pis; + ::java::util::LinkedList * entries; + ::java::util::HashSet * externalEntities; + ::java::util::HashSet * externalNotations; + jint anon; +public: // actually package-private + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$Doctype__ diff --git a/libjava/gnu/xml/stream/XMLParser$ElementContentModel.h b/libjava/gnu/xml/stream/XMLParser$ElementContentModel.h new file mode 100644 index 00000000000..a1c745cb963 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$ElementContentModel.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$ElementContentModel__ +#define __gnu_xml_stream_XMLParser$ElementContentModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$ContentParticle; + class XMLParser$ElementContentModel; + } + } + } +} + +class gnu::xml::stream::XMLParser$ElementContentModel : public ::gnu::xml::stream::XMLParser$ContentModel +{ + +public: // actually package-private + XMLParser$ElementContentModel(::gnu::xml::stream::XMLParser *); + virtual void addContentParticle(::gnu::xml::stream::XMLParser$ContentParticle *); + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLParser$ContentModel)))) contentParticles; + jboolean or$; + ::java::lang::String * regex; + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$ElementContentModel__ diff --git a/libjava/gnu/xml/stream/XMLParser$EmptyContentModel.h b/libjava/gnu/xml/stream/XMLParser$EmptyContentModel.h new file mode 100644 index 00000000000..08ec0163003 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$EmptyContentModel.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$EmptyContentModel__ +#define __gnu_xml_stream_XMLParser$EmptyContentModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$EmptyContentModel; + } + } + } +} + +class gnu::xml::stream::XMLParser$EmptyContentModel : public ::gnu::xml::stream::XMLParser$ContentModel +{ + +public: // actually package-private + XMLParser$EmptyContentModel(::gnu::xml::stream::XMLParser *); + ::gnu::xml::stream::XMLParser * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLParser$ContentModel)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$EmptyContentModel__ diff --git a/libjava/gnu/xml/stream/XMLParser$ExternalIds.h b/libjava/gnu/xml/stream/XMLParser$ExternalIds.h new file mode 100644 index 00000000000..037fb617e47 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$ExternalIds.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$ExternalIds__ +#define __gnu_xml_stream_XMLParser$ExternalIds__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$ExternalIds; + } + } + } +} + +class gnu::xml::stream::XMLParser$ExternalIds : public ::java::lang::Object +{ + +public: // actually package-private + XMLParser$ExternalIds(::gnu::xml::stream::XMLParser *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) publicId; + ::java::lang::String * systemId; + ::java::lang::String * notationName; + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$ExternalIds__ diff --git a/libjava/gnu/xml/stream/XMLParser$Input.h b/libjava/gnu/xml/stream/XMLParser$Input.h new file mode 100644 index 00000000000..60ae69bd485 --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$Input.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$Input__ +#define __gnu_xml_stream_XMLParser$Input__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class UnicodeReader; + class XMLParser$Input; + } + } + } +} + +class gnu::xml::stream::XMLParser$Input : public ::java::lang::Object +{ + +public: // actually package-private + XMLParser$Input(::java::io::InputStream *, ::java::io::Reader *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean); +public: + virtual jint getCharacterOffset(); + virtual jint getColumnNumber(); + virtual jint getLineNumber(); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); +public: // actually package-private + virtual void init(); + virtual void mark(jint); + virtual jint read(); + virtual jint read(JArray< jint > *, jint, jint); + virtual void reset(); +private: + void detectEncoding(); + static jboolean equals(JArray< jint > *, JArray< jint > *); +public: // actually package-private + virtual void setInputEncoding(::java::lang::String *); + virtual void finalizeEncoding(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) line; + jint markLine; + jint column; + jint markColumn; + jint offset; + jint markOffset; + ::java::lang::String * publicId; + ::java::lang::String * systemId; + ::java::lang::String * name; + jboolean report; + jboolean normalize; + ::java::io::InputStream * in; + ::java::io::Reader * reader; + ::gnu::xml::stream::UnicodeReader * unicodeReader; + jboolean initialized; + jboolean encodingDetected; + ::java::lang::String * inputEncoding; + jboolean xml11; +private: + static JArray< jint > * SIGNATURE_UCS_4_1234; + static JArray< jint > * SIGNATURE_UCS_4_4321; + static JArray< jint > * SIGNATURE_UCS_4_2143; + static JArray< jint > * SIGNATURE_UCS_4_3412; + static JArray< jint > * SIGNATURE_UCS_2_12; + static JArray< jint > * SIGNATURE_UCS_2_21; + static JArray< jint > * SIGNATURE_UCS_2_12_NOBOM; + static JArray< jint > * SIGNATURE_UCS_2_21_NOBOM; + static JArray< jint > * SIGNATURE_UTF_8; + static JArray< jint > * SIGNATURE_UTF_8_BOM; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$Input__ diff --git a/libjava/gnu/xml/stream/XMLParser$MixedContentModel.h b/libjava/gnu/xml/stream/XMLParser$MixedContentModel.h new file mode 100644 index 00000000000..e7f244a1ade --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser$MixedContentModel.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser$MixedContentModel__ +#define __gnu_xml_stream_XMLParser$MixedContentModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$MixedContentModel; + } + } + } +} + +class gnu::xml::stream::XMLParser$MixedContentModel : public ::gnu::xml::stream::XMLParser$ContentModel +{ + +public: // actually package-private + XMLParser$MixedContentModel(::gnu::xml::stream::XMLParser *); + virtual void addName(::java::lang::String *); + virtual jboolean containsName(::java::lang::String *); +private: + ::java::util::HashSet * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLParser$ContentModel)))) names; +public: // actually package-private + ::gnu::xml::stream::XMLParser * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser$MixedContentModel__ diff --git a/libjava/gnu/xml/stream/XMLParser.h b/libjava/gnu/xml/stream/XMLParser.h new file mode 100644 index 00000000000..d2b2ff0d1fe --- /dev/null +++ b/libjava/gnu/xml/stream/XMLParser.h @@ -0,0 +1,296 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLParser__ +#define __gnu_xml_stream_XMLParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLParser; + class XMLParser$Attribute; + class XMLParser$ContentModel; + class XMLParser$ContentParticle; + class XMLParser$Doctype; + class XMLParser$ElementContentModel; + class XMLParser$ExternalIds; + class XMLParser$Input; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace stream + { + class Location; + class XMLReporter; + class XMLResolver; + } + } + } +} + +class gnu::xml::stream::XMLParser : public ::java::lang::Object +{ + +public: + XMLParser(::java::io::InputStream *, ::java::lang::String *, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, ::javax::xml::stream::XMLReporter *, ::javax::xml::stream::XMLResolver *); + XMLParser(::java::io::Reader *, ::java::lang::String *, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, jboolean, ::javax::xml::stream::XMLReporter *, ::javax::xml::stream::XMLResolver *); + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *); + virtual ::java::lang::String * getPrefix(::java::lang::String *); + virtual ::java::util::Iterator * getPrefixes(::java::lang::String *); + virtual void close(); + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext(); + virtual jint getAttributeCount(); + virtual ::java::lang::String * getAttributeLocalName(jint); + virtual ::java::lang::String * getAttributeNamespace(jint); + virtual ::java::lang::String * getAttributePrefix(jint); + virtual ::javax::xml::namespace::QName * getAttributeName(jint); + virtual ::java::lang::String * getAttributeType(jint); +private: + ::java::lang::String * getAttributeType(::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAttributeValue(jint); + virtual ::java::lang::String * getAttributeValue(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual jboolean isAttributeDeclared(jint); +public: + virtual ::java::lang::String * getCharacterEncodingScheme(); + virtual ::java::lang::String * getElementText(); + virtual ::java::lang::String * getEncoding(); + virtual jint getEventType(); + virtual ::java::lang::String * getLocalName(); + virtual ::javax::xml::stream::Location * getLocation(); + virtual ::javax::xml::namespace::QName * getName(); + virtual jint getNamespaceCount(); + virtual ::java::lang::String * getNamespacePrefix(jint); + virtual ::java::lang::String * getNamespaceURI(); + virtual ::java::lang::String * getNamespaceURI(jint); + virtual ::java::lang::String * getPIData(); + virtual ::java::lang::String * getPITarget(); + virtual ::java::lang::String * getPrefix(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual ::java::lang::String * getText(); + virtual JArray< jchar > * getTextCharacters(); + virtual jint getTextCharacters(jint, JArray< jchar > *, jint, jint); + virtual jint getTextLength(); + virtual jint getTextStart(); + virtual ::java::lang::String * getVersion(); + virtual jboolean hasName(); + virtual jboolean hasText(); + virtual jboolean isAttributeSpecified(jint); + virtual jboolean isCharacters(); + virtual jboolean isEndElement(); + virtual jboolean isStandalone(); + virtual jboolean isStartElement(); + virtual jboolean isWhiteSpace(); + virtual jint nextTag(); + virtual void require(jint, ::java::lang::String *, ::java::lang::String *); + virtual jboolean standaloneSet(); + virtual jboolean hasNext(); + virtual jint next(); +public: // actually package-private + virtual ::java::lang::String * getCurrentElement(); +private: + void mark(jint); + void reset(); + jint read(); + jint read(JArray< jint > *, jint, jint); + jint readCh(); + void require(jchar); + void require(::java::lang::String *); + jboolean tryRead(jchar); + jboolean tryRead(::java::lang::String *); + void readUntil(::java::lang::String *); + jboolean tryWhitespace(); + void skipWhitespace(); + void requireWhitespace(); +public: // actually package-private + virtual ::java::lang::String * getXMLBase(); +private: + void pushInput(::java::lang::String *, ::java::lang::String *, jboolean, jboolean); + void pushInput(::java::lang::String *, ::gnu::xml::stream::XMLParser$ExternalIds *, jboolean, jboolean); + void pushInput(::gnu::xml::stream::XMLParser$Input *); +public: + static ::java::lang::String * absolutize(::java::lang::String *, ::java::lang::String *); +private: + static jboolean isURLScheme(::java::lang::String *); +public: // actually package-private + static ::java::io::InputStream * resolve(::java::lang::String *); +private: + void popInput(); + void readTextDecl(); + void readXMLDecl(); + void readDoctypeDecl(); + void checkDoctype(); + void readMarkupdecl(jboolean); + void readElementDecl(); + void readContentspec(::java::lang::String *); + ::gnu::xml::stream::XMLParser$ElementContentModel * readElements(::java::lang::StringBuffer *); + ::gnu::xml::stream::XMLParser$ContentParticle * readContentParticle(::java::lang::StringBuffer *); + void readAttlistDecl(); + void readAttDef(::java::lang::String *); + ::java::lang::String * readAttType(::java::lang::StringBuffer *, ::java::util::HashSet *); + void readEnumeration(jboolean, ::java::lang::StringBuffer *, ::java::util::HashSet *); + void readNotationType(::java::lang::StringBuffer *, ::java::util::HashSet *); + void readDefault(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::HashSet *); + void readEntityDecl(jboolean); + void readNotationDecl(jboolean); + ::gnu::xml::stream::XMLParser$ExternalIds * readExternalIds(jboolean, jboolean); + jint readStartElement(); + jboolean attributeSpecified(::java::lang::String *); + void readAttribute(::java::lang::String *); + jboolean addNamespace(::gnu::xml::stream::XMLParser$Attribute *); + void readEndElement(); + void endElementValidationHook(); + void readComment(jboolean); + void readPI(jboolean); + void readReference(); + void readCDSect(); + jint readCharData(::java::lang::String *); + void expandEntity(::java::lang::String *, jboolean, jboolean); + jboolean isUnparsedEntity(::java::lang::String *); + void readEq(); + jint literalReadCh(jboolean); + ::java::lang::String * readLiteral(jint, jboolean); + ::java::lang::StringBuffer * normalize(::java::lang::StringBuffer *); + void normalizeCRLF(::java::lang::StringBuffer *); + void expandPEReference(); + JArray< jchar > * readCharacterRef(jint); + ::java::lang::String * readNmtoken(jboolean); + ::java::lang::String * readNmtoken(jboolean, ::java::lang::StringBuffer *); +public: + static jboolean isXML11Char(jint); + static jboolean isXML11RestrictedChar(jint); +private: + jboolean isNmtoken(::java::lang::String *, jboolean); +public: + static jboolean isNameStartCharacter(jint, jboolean); + static jboolean isNameCharacter(jint, jboolean); + static jboolean isLetter(jint); + static jboolean isDigit(jint); + static jboolean isCombiningChar(jint); + static jboolean isExtender(jint); + static jboolean isChar(jint); +private: + ::java::lang::String * intern(::java::lang::String *); + void error(::java::lang::String *); + void error(::java::lang::String *, ::java::lang::Object *); + void validateStartElement(::java::lang::String *); + void validateEndElement(); + void validatePCData(::java::lang::String *); + void validateElementContent(::gnu::xml::stream::XMLParser$ElementContentModel *, ::java::util::LinkedList *); + ::java::lang::String * createRegularExpression(::gnu::xml::stream::XMLParser$ElementContentModel *); +public: // actually package-private + virtual void validateDoctype(); +public: + static void main(JArray< ::java::lang::String * > *); +private: + static ::java::lang::String * encodeText(::java::lang::String *); +public: // actually package-private + static ::java::lang::String * access$0(::gnu::xml::stream::XMLParser *, ::java::lang::String *); + static jboolean access$1(::gnu::xml::stream::XMLParser *); + static ::gnu::xml::stream::XMLParser$Input * access$2(::gnu::xml::stream::XMLParser *); + static ::java::util::LinkedList * access$3(::gnu::xml::stream::XMLParser *); +private: + static const jint INIT = 0; + static const jint PROLOG = 1; + static const jint CONTENT = 2; + static const jint EMPTY_ELEMENT = 3; + static const jint MISC = 4; + static const jint LIT_ENTITY_REF = 2; + static const jint LIT_NORMALIZE = 4; + static const jint LIT_ATTRIBUTE = 8; + static const jint LIT_DISABLE_PE = 16; + static const jint LIT_DISABLE_CREF = 32; + static const jint LIT_DISABLE_EREF = 64; + static const jint LIT_PUBID = 256; +public: // actually package-private + static const jint ATTRIBUTE_DEFAULT_UNDECLARED = 30; + static const jint ATTRIBUTE_DEFAULT_SPECIFIED = 31; + static const jint ATTRIBUTE_DEFAULT_IMPLIED = 32; + static const jint ATTRIBUTE_DEFAULT_REQUIRED = 33; + static const jint ATTRIBUTE_DEFAULT_FIXED = 34; + static const jint START_ENTITY = 50; + static const jint END_ENTITY = 51; +private: + ::gnu::xml::stream::XMLParser$Input * __attribute__((aligned(__alignof__( ::java::lang::Object)))) input; + ::java::util::LinkedList * inputStack; + ::java::util::LinkedList * startEntityStack; + ::java::util::LinkedList * endEntityStack; + jint state; + jint event; + jboolean lookahead; + ::java::util::LinkedList * stack; + ::java::util::LinkedList * namespaces; + ::java::util::LinkedList * bases; + ::java::util::ArrayList * attrs; + ::java::lang::StringBuffer * buf; + ::java::lang::StringBuffer * nmtokenBuf; + ::java::lang::StringBuffer * literalBuf; + JArray< jint > * tmpBuf; + ::gnu::xml::stream::XMLParser$ContentModel * currentContentModel; + ::java::util::LinkedList * validationStack; + ::java::util::HashSet * ids; + ::java::util::HashSet * idrefs; + ::java::lang::String * piTarget; + ::java::lang::String * piData; + ::java::lang::String * xmlVersion; + ::java::lang::String * xmlEncoding; + ::java::lang::Boolean * xmlStandalone; +public: // actually package-private + ::gnu::xml::stream::XMLParser$Doctype * doctype; +private: + jboolean expandPE; + jboolean peIsError; + jboolean validating; + jboolean stringInterning; + jboolean coalescing; + jboolean replaceERefs; + jboolean externalEntities; + jboolean supportDTD; + jboolean namespaceAware; + jboolean baseAware; + jboolean extendedEventTypes; +public: // actually package-private + ::javax::xml::stream::XMLReporter * reporter; + ::javax::xml::stream::XMLResolver * resolver; +private: + static ::java::lang::String * TEST_START_ELEMENT; + static ::java::lang::String * TEST_END_ELEMENT; + static ::java::lang::String * TEST_COMMENT; + static ::java::lang::String * TEST_PI; + static ::java::lang::String * TEST_CDATA; + static ::java::lang::String * TEST_XML_DECL; + static ::java::lang::String * TEST_DOCTYPE_DECL; + static ::java::lang::String * TEST_ELEMENT_DECL; + static ::java::lang::String * TEST_ATTLIST_DECL; + static ::java::lang::String * TEST_ENTITY_DECL; + static ::java::lang::String * TEST_NOTATION_DECL; + static ::java::lang::String * TEST_KET; + static ::java::lang::String * TEST_END_COMMENT; + static ::java::lang::String * TEST_END_PI; + static ::java::lang::String * TEST_END_CDATA; + static ::java::util::LinkedHashMap * PREDEFINED_ENTITIES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLParser__ diff --git a/libjava/gnu/xml/stream/XMLStreamWriterImpl.h b/libjava/gnu/xml/stream/XMLStreamWriterImpl.h new file mode 100644 index 00000000000..ffd534947bc --- /dev/null +++ b/libjava/gnu/xml/stream/XMLStreamWriterImpl.h @@ -0,0 +1,119 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_stream_XMLStreamWriterImpl__ +#define __gnu_xml_stream_XMLStreamWriterImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace stream + { + class XMLStreamWriterImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + namespace helpers + { + class NamespaceSupport; + } + } + } + } +} + +class gnu::xml::stream::XMLStreamWriterImpl : public ::java::lang::Object +{ + +public: // actually protected + XMLStreamWriterImpl(::java::io::Writer *, ::java::lang::String *, jboolean); +private: + void endStartElement(); +public: + virtual void writeStartElement(::java::lang::String *); + virtual void writeStartElement(::java::lang::String *, ::java::lang::String *); +public: // actually protected + virtual ::java::lang::String * createPrefix(::java::lang::String *); +public: + virtual void writeStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void writeEmptyElement(::java::lang::String *, ::java::lang::String *); + virtual void writeEmptyElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void writeEmptyElement(::java::lang::String *); + virtual void writeEndElement(); + virtual void writeEndDocument(); + virtual void close(); + virtual void flush(); + virtual void writeAttribute(::java::lang::String *, ::java::lang::String *); + virtual void writeAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void writeAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void writeNamespace(::java::lang::String *, ::java::lang::String *); +private: + void writeNamespaceImpl(::java::lang::String *, ::java::lang::String *); +public: + virtual void writeDefaultNamespace(::java::lang::String *); + virtual void writeComment(::java::lang::String *); + virtual void writeProcessingInstruction(::java::lang::String *); + virtual void writeProcessingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void writeCData(::java::lang::String *); + virtual void writeDTD(::java::lang::String *); + virtual void writeEntityRef(::java::lang::String *); + virtual void writeStartDocument(); + virtual void writeStartDocument(::java::lang::String *); + virtual void writeStartDocument(::java::lang::String *, ::java::lang::String *); + virtual void writeCharacters(::java::lang::String *); + virtual void writeCharacters(JArray< jchar > *, jint, jint); + virtual ::java::lang::String * getPrefix(::java::lang::String *); + virtual void setPrefix(::java::lang::String *, ::java::lang::String *); + virtual void setDefaultNamespace(::java::lang::String *); + virtual void setNamespaceContext(::javax::xml::namespace::NamespaceContext *); + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); +private: + void writeEncoded(::java::lang::String *, jboolean); + void writeEncodedWithRestrictedChars(::java::lang::String *, jboolean); + jboolean isName(::java::lang::String *); + jboolean isNCName(::java::lang::String *); + jboolean isChars(::java::lang::String *); + jboolean isURI(::java::lang::String *); +public: // actually protected + ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) writer; + ::java::lang::String * encoding; + jboolean prefixDefaulting; + ::javax::xml::namespace::NamespaceContext * namespaceContext; +private: + ::java::util::LinkedList * elements; + jboolean inStartElement; + jboolean emptyElement; + ::org::xml::sax::helpers::NamespaceSupport * namespaces; + jint count; + jboolean xml11; + jboolean hasXML11RestrictedChars; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_stream_XMLStreamWriterImpl__ diff --git a/libjava/gnu/xml/transform/AbstractNumberNode.h b/libjava/gnu/xml/transform/AbstractNumberNode.h new file mode 100644 index 00000000000..d8c2740809d --- /dev/null +++ b/libjava/gnu/xml/transform/AbstractNumberNode.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_AbstractNumberNode__ +#define __gnu_xml_transform_AbstractNumberNode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class AbstractNumberNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::AbstractNumberNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + AbstractNumberNode(::gnu::xml::transform::TemplateNode *, ::java::lang::String *, jint, ::java::lang::String *, jint); + virtual void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual ::java::lang::String * format(::java::lang::String *, JArray< jint > *); + virtual void format(::java::lang::StringBuffer *, jint, ::java::lang::String *); + static jboolean isAlphanumeric(jchar); + static ::java::lang::String * alphabetic(jchar, jint); + static ::java::lang::String * roman(jboolean, jint); + virtual JArray< jint > * compute(::gnu::xml::transform::Stylesheet *, ::org::w3c::dom::Node *, jint, jint) = 0; +public: + virtual jboolean references(::javax::xml::namespace::QName *); + virtual ::java::lang::String * toString(); +public: // actually package-private + static const jint ALPHABETIC = 0; + static const jint TRADITIONAL = 1; + ::gnu::xml::transform::TemplateNode * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) format__; + ::java::lang::String * lang; + jint letterValue; + ::java::lang::String * groupingSeparator; + jint groupingSize; + static JArray< jint > * roman_numbers; + static JArray< jchar > * roman_chars; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_AbstractNumberNode__ diff --git a/libjava/gnu/xml/transform/ApplyImportsNode.h b/libjava/gnu/xml/transform/ApplyImportsNode.h new file mode 100644 index 00000000000..f9e19a61d0e --- /dev/null +++ b/libjava/gnu/xml/transform/ApplyImportsNode.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ApplyImportsNode__ +#define __gnu_xml_transform_ApplyImportsNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ApplyImportsNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ApplyImportsNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ApplyImportsNode(); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ApplyImportsNode__ diff --git a/libjava/gnu/xml/transform/ApplyTemplatesNode.h b/libjava/gnu/xml/transform/ApplyTemplatesNode.h new file mode 100644 index 00000000000..02f49a22b63 --- /dev/null +++ b/libjava/gnu/xml/transform/ApplyTemplatesNode.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ApplyTemplatesNode__ +#define __gnu_xml_transform_ApplyTemplatesNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ApplyTemplatesNode; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ApplyTemplatesNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ApplyTemplatesNode(::gnu::xml::xpath::Expr *, ::javax::xml::namespace::QName *, ::java::util::List *, ::java::util::List *, jboolean); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) select; + ::javax::xml::namespace::QName * mode; + ::java::util::List * sortKeys; + ::java::util::List * withParams; + jboolean isDefault; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ApplyTemplatesNode__ diff --git a/libjava/gnu/xml/transform/AttributeNode.h b/libjava/gnu/xml/transform/AttributeNode.h new file mode 100644 index 00000000000..80f6d3cc3d5 --- /dev/null +++ b/libjava/gnu/xml/transform/AttributeNode.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_AttributeNode__ +#define __gnu_xml_transform_AttributeNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class AttributeNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::AttributeNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + AttributeNode(::gnu::xml::transform::TemplateNode *, ::gnu::xml::transform::TemplateNode *, ::org::w3c::dom::Node *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + ::java::lang::String * getPrefix(::java::lang::String *); + ::java::lang::String * inventPrefix(::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::transform::TemplateNode * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) name; + ::gnu::xml::transform::TemplateNode * namespace$; + ::org::w3c::dom::Node * source; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_AttributeNode__ diff --git a/libjava/gnu/xml/transform/AttributeSet.h b/libjava/gnu/xml/transform/AttributeSet.h new file mode 100644 index 00000000000..2c92e121145 --- /dev/null +++ b/libjava/gnu/xml/transform/AttributeSet.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_AttributeSet__ +#define __gnu_xml_transform_AttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class AttributeSet; + class Stylesheet; + class TemplateNode; + } + } + } +} + +class gnu::xml::transform::AttributeSet : public ::java::lang::Object +{ + +public: // actually package-private + AttributeSet(::gnu::xml::transform::TemplateNode *, ::java::lang::String *, ::java::lang::String *); + ::gnu::xml::transform::AttributeSet * clone(::gnu::xml::transform::Stylesheet *); + ::gnu::xml::transform::TemplateNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) children; + ::java::lang::String * name; + ::java::lang::String * uas; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_AttributeSet__ diff --git a/libjava/gnu/xml/transform/Bindings.h b/libjava/gnu/xml/transform/Bindings.h new file mode 100644 index 00000000000..a54ab174e15 --- /dev/null +++ b/libjava/gnu/xml/transform/Bindings.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_Bindings__ +#define __gnu_xml_transform_Bindings__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Bindings; + class Stylesheet; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::Bindings : public ::java::lang::Object +{ + +public: // actually package-private + Bindings(::gnu::xml::transform::Stylesheet *); +public: + virtual ::java::lang::Object * clone(); +public: // actually package-private + virtual void push(jint); + virtual void pop(jint); +public: + virtual jboolean containsKey(::javax::xml::namespace::QName *, jint); + virtual ::java::lang::Object * get(::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + virtual void set(::javax::xml::namespace::QName *, ::java::lang::Object *, jint); +public: + virtual ::java::lang::Object * resolveVariable(::javax::xml::namespace::QName *); + virtual ::java::lang::String * toString(); +public: // actually package-private + static const jint VARIABLE = 0; + static const jint PARAM = 1; + static const jint WITH_PARAM = 2; + ::gnu::xml::transform::Stylesheet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) stylesheet; + ::java::util::LinkedList * variables; + ::java::util::LinkedList * parameters; + ::java::util::LinkedList * withParameters; + jboolean global; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_Bindings__ diff --git a/libjava/gnu/xml/transform/CallTemplateNode.h b/libjava/gnu/xml/transform/CallTemplateNode.h new file mode 100644 index 00000000000..f7d32ade246 --- /dev/null +++ b/libjava/gnu/xml/transform/CallTemplateNode.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_CallTemplateNode__ +#define __gnu_xml_transform_CallTemplateNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class CallTemplateNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::CallTemplateNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + CallTemplateNode(::javax::xml::namespace::QName *, ::java::util::List *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) name; + ::java::util::List * withParams; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_CallTemplateNode__ diff --git a/libjava/gnu/xml/transform/ChooseNode.h b/libjava/gnu/xml/transform/ChooseNode.h new file mode 100644 index 00000000000..88574784fef --- /dev/null +++ b/libjava/gnu/xml/transform/ChooseNode.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ChooseNode__ +#define __gnu_xml_transform_ChooseNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ChooseNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ChooseNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ChooseNode(); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ChooseNode__ diff --git a/libjava/gnu/xml/transform/CommentNode.h b/libjava/gnu/xml/transform/CommentNode.h new file mode 100644 index 00000000000..2f04431d0d2 --- /dev/null +++ b/libjava/gnu/xml/transform/CommentNode.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_CommentNode__ +#define __gnu_xml_transform_CommentNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class CommentNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::CommentNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + CommentNode(); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_CommentNode__ diff --git a/libjava/gnu/xml/transform/CopyNode.h b/libjava/gnu/xml/transform/CopyNode.h new file mode 100644 index 00000000000..a57c004d321 --- /dev/null +++ b/libjava/gnu/xml/transform/CopyNode.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_CopyNode__ +#define __gnu_xml_transform_CopyNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class CopyNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::CopyNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + CopyNode(::java::lang::String *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + void addAttributeSet(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *, ::java::lang::String *); +public: + ::java::lang::String * toString(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) uas; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_CopyNode__ diff --git a/libjava/gnu/xml/transform/CopyOfNode.h b/libjava/gnu/xml/transform/CopyOfNode.h new file mode 100644 index 00000000000..f33944630d6 --- /dev/null +++ b/libjava/gnu/xml/transform/CopyOfNode.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_CopyOfNode__ +#define __gnu_xml_transform_CopyOfNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class CopyOfNode; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::CopyOfNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + CopyOfNode(::gnu::xml::xpath::Expr *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) select; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_CopyOfNode__ diff --git a/libjava/gnu/xml/transform/CurrentFunction.h b/libjava/gnu/xml/transform/CurrentFunction.h new file mode 100644 index 00000000000..dee45ec7b45 --- /dev/null +++ b/libjava/gnu/xml/transform/CurrentFunction.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_CurrentFunction__ +#define __gnu_xml_transform_CurrentFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class CurrentFunction; + class Stylesheet; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::CurrentFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + CurrentFunction(::gnu::xml::transform::Stylesheet *); +public: + ::java::lang::Object * evaluate(::java::util::List *); + void setArguments(::java::util::List *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::transform::Stylesheet * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) stylesheet; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_CurrentFunction__ diff --git a/libjava/gnu/xml/transform/DOMSourceLocator.h b/libjava/gnu/xml/transform/DOMSourceLocator.h new file mode 100644 index 00000000000..974654e33c1 --- /dev/null +++ b/libjava/gnu/xml/transform/DOMSourceLocator.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_DOMSourceLocator__ +#define __gnu_xml_transform_DOMSourceLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class DOMSourceLocator; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::DOMSourceLocator : public ::java::lang::Object +{ + +public: // actually package-private + DOMSourceLocator(::org::w3c::dom::Node *); +public: + virtual ::org::w3c::dom::Node * getOriginatingNode(); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual jint getLineNumber(); + virtual jint getColumnNumber(); +public: // actually package-private + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) node; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_DOMSourceLocator__ diff --git a/libjava/gnu/xml/transform/DocumentFunction.h b/libjava/gnu/xml/transform/DocumentFunction.h new file mode 100644 index 00000000000..a599fc44b0e --- /dev/null +++ b/libjava/gnu/xml/transform/DocumentFunction.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_DocumentFunction__ +#define __gnu_xml_transform_DocumentFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class DocumentFunction; + class Stylesheet; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::DocumentFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + DocumentFunction(::gnu::xml::transform::Stylesheet *, ::org::w3c::dom::Node *); +public: + ::java::lang::Object * evaluate(::java::util::List *); + void setArguments(::java::util::List *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + ::java::util::Collection * document(::java::lang::String *, ::java::lang::String *); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); +public: // actually package-private + ::gnu::xml::transform::Stylesheet * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) stylesheet; + ::org::w3c::dom::Node * base; + ::java::util::List * args; + ::java::util::List * values; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_DocumentFunction__ diff --git a/libjava/gnu/xml/transform/ElementAvailableFunction.h b/libjava/gnu/xml/transform/ElementAvailableFunction.h new file mode 100644 index 00000000000..0d25fe354d9 --- /dev/null +++ b/libjava/gnu/xml/transform/ElementAvailableFunction.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ElementAvailableFunction__ +#define __gnu_xml_transform_ElementAvailableFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ElementAvailableFunction; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ElementAvailableFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + ElementAvailableFunction(::javax::xml::namespace::NamespaceContext *); +public: + virtual ::java::lang::Object * evaluate(::java::util::List *); + virtual void setArguments(::java::util::List *); + virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + virtual ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + virtual jboolean references(::javax::xml::namespace::QName *); + virtual ::java::lang::String * toString(); +public: // actually package-private + static ::java::util::Collection * elements; + ::javax::xml::namespace::NamespaceContext * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) nsctx; + ::java::util::List * args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ElementAvailableFunction__ diff --git a/libjava/gnu/xml/transform/ElementNode.h b/libjava/gnu/xml/transform/ElementNode.h new file mode 100644 index 00000000000..73d0f0fb216 --- /dev/null +++ b/libjava/gnu/xml/transform/ElementNode.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ElementNode__ +#define __gnu_xml_transform_ElementNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ElementNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ElementNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ElementNode(::gnu::xml::transform::TemplateNode *, ::gnu::xml::transform::TemplateNode *, ::java::lang::String *, ::org::w3c::dom::Node *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + ::java::lang::String * getPrefix(::java::lang::String *); + void addAttributeSet(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *, ::java::lang::String *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::transform::TemplateNode * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) name; + ::gnu::xml::transform::TemplateNode * namespace$; + ::java::lang::String * uas; + ::org::w3c::dom::Node * source; + ::java::util::Collection * elementExcludeResultPrefixes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ElementNode__ diff --git a/libjava/gnu/xml/transform/ErrorListenerErrorHandler.h b/libjava/gnu/xml/transform/ErrorListenerErrorHandler.h new file mode 100644 index 00000000000..e7a4e36d7ab --- /dev/null +++ b/libjava/gnu/xml/transform/ErrorListenerErrorHandler.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ErrorListenerErrorHandler__ +#define __gnu_xml_transform_ErrorListenerErrorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ErrorListenerErrorHandler; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class SAXParseException; + } + } + } +} + +class gnu::xml::transform::ErrorListenerErrorHandler : public ::java::lang::Object +{ + +public: // actually package-private + ErrorListenerErrorHandler(::javax::xml::transform::ErrorListener *); +public: + virtual void warning(::org::xml::sax::SAXParseException *); + virtual void error(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); +public: // actually package-private + ::javax::xml::transform::ErrorListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listener; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ErrorListenerErrorHandler__ diff --git a/libjava/gnu/xml/transform/ForEachNode.h b/libjava/gnu/xml/transform/ForEachNode.h new file mode 100644 index 00000000000..1cb11affc92 --- /dev/null +++ b/libjava/gnu/xml/transform/ForEachNode.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ForEachNode__ +#define __gnu_xml_transform_ForEachNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ForEachNode; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ForEachNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ForEachNode(::gnu::xml::xpath::Expr *, ::java::util::List *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) select; + ::java::util::List * sortKeys; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ForEachNode__ diff --git a/libjava/gnu/xml/transform/FormatNumberFunction.h b/libjava/gnu/xml/transform/FormatNumberFunction.h new file mode 100644 index 00000000000..417e8973805 --- /dev/null +++ b/libjava/gnu/xml/transform/FormatNumberFunction.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_FormatNumberFunction__ +#define __gnu_xml_transform_FormatNumberFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class FormatNumberFunction; + class Stylesheet; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::FormatNumberFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + FormatNumberFunction(::gnu::xml::transform::Stylesheet *); +public: + ::java::lang::Object * evaluate(::java::util::List *); + void setArguments(::java::util::List *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); +public: // actually package-private + ::gnu::xml::transform::Stylesheet * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) stylesheet; + ::java::util::List * args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_FormatNumberFunction__ diff --git a/libjava/gnu/xml/transform/FunctionAvailableFunction.h b/libjava/gnu/xml/transform/FunctionAvailableFunction.h new file mode 100644 index 00000000000..b900a1b7a31 --- /dev/null +++ b/libjava/gnu/xml/transform/FunctionAvailableFunction.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_FunctionAvailableFunction__ +#define __gnu_xml_transform_FunctionAvailableFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class FunctionAvailableFunction; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::FunctionAvailableFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + FunctionAvailableFunction(::javax::xml::namespace::NamespaceContext *); +public: + virtual ::java::lang::Object * evaluate(::java::util::List *); + virtual void setArguments(::java::util::List *); + virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + virtual ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + virtual jboolean references(::javax::xml::namespace::QName *); + virtual ::java::lang::String * toString(); +public: // actually package-private + static ::java::util::Collection * xsltFunctions; + static ::java::util::Collection * xpathFunctions; + ::javax::xml::namespace::NamespaceContext * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) nsctx; + ::java::util::List * args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_FunctionAvailableFunction__ diff --git a/libjava/gnu/xml/transform/GenerateIdFunction.h b/libjava/gnu/xml/transform/GenerateIdFunction.h new file mode 100644 index 00000000000..8b1de4a182c --- /dev/null +++ b/libjava/gnu/xml/transform/GenerateIdFunction.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_GenerateIdFunction__ +#define __gnu_xml_transform_GenerateIdFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class GenerateIdFunction; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::GenerateIdFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + GenerateIdFunction(); +public: + ::java::lang::Object * evaluate(::java::util::List *); + void setArguments(::java::util::List *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); +public: // actually package-private + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_GenerateIdFunction__ diff --git a/libjava/gnu/xml/transform/IfNode.h b/libjava/gnu/xml/transform/IfNode.h new file mode 100644 index 00000000000..dff1c470ace --- /dev/null +++ b/libjava/gnu/xml/transform/IfNode.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_IfNode__ +#define __gnu_xml_transform_IfNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class IfNode; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::IfNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + IfNode(::gnu::xml::xpath::Expr *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) test; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_IfNode__ diff --git a/libjava/gnu/xml/transform/Key.h b/libjava/gnu/xml/transform/Key.h new file mode 100644 index 00000000000..8588b2ffea4 --- /dev/null +++ b/libjava/gnu/xml/transform/Key.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_Key__ +#define __gnu_xml_transform_Key__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Key; + class Stylesheet; + } + namespace xpath + { + class Expr; + class Pattern; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } +} + +class gnu::xml::transform::Key : public ::java::lang::Object +{ + +public: // actually package-private + Key(::javax::xml::namespace::QName *, ::gnu::xml::xpath::Pattern *, ::gnu::xml::xpath::Expr *); + virtual ::gnu::xml::transform::Key * clone(::gnu::xml::transform::Stylesheet *); + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::gnu::xml::xpath::Pattern * match; + ::gnu::xml::xpath::Expr * use; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_Key__ diff --git a/libjava/gnu/xml/transform/KeyFunction.h b/libjava/gnu/xml/transform/KeyFunction.h new file mode 100644 index 00000000000..d9185e38020 --- /dev/null +++ b/libjava/gnu/xml/transform/KeyFunction.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_KeyFunction__ +#define __gnu_xml_transform_KeyFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class KeyFunction; + class Stylesheet; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::KeyFunction : public ::gnu::xml::xpath::Pattern +{ + +public: // actually package-private + KeyFunction(::gnu::xml::transform::Stylesheet *); +public: + ::java::lang::Object * evaluate(::java::util::List *); + void setArguments(::java::util::List *); + jboolean matches(::org::w3c::dom::Node *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + void addKeyNodes(::org::w3c::dom::Node *, ::java::util::Collection *, ::java::lang::String *, ::java::util::Collection *); + void addKeyNodeIfMatch(::org::w3c::dom::Node *, ::java::util::Collection *, ::java::lang::String *, ::java::util::Collection *); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); +public: // actually package-private + ::gnu::xml::transform::Stylesheet * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Pattern)))) stylesheet; + ::java::util::List * args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_KeyFunction__ diff --git a/libjava/gnu/xml/transform/LiteralNode.h b/libjava/gnu/xml/transform/LiteralNode.h new file mode 100644 index 00000000000..056f5f1124f --- /dev/null +++ b/libjava/gnu/xml/transform/LiteralNode.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_LiteralNode__ +#define __gnu_xml_transform_LiteralNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class LiteralNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::LiteralNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + LiteralNode(::org::w3c::dom::Node *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); +public: // actually package-private + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) source; + ::java::util::Collection * elementExcludeResultPrefixes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_LiteralNode__ diff --git a/libjava/gnu/xml/transform/MessageNode.h b/libjava/gnu/xml/transform/MessageNode.h new file mode 100644 index 00000000000..06fda75e92e --- /dev/null +++ b/libjava/gnu/xml/transform/MessageNode.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_MessageNode__ +#define __gnu_xml_transform_MessageNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class MessageNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::MessageNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + MessageNode(jboolean); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); +public: // actually package-private + static ::java::util::logging::Logger * logger; + jboolean __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) terminate; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_MessageNode__ diff --git a/libjava/gnu/xml/transform/NamespaceProxy.h b/libjava/gnu/xml/transform/NamespaceProxy.h new file mode 100644 index 00000000000..c92a7c56cce --- /dev/null +++ b/libjava/gnu/xml/transform/NamespaceProxy.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_NamespaceProxy__ +#define __gnu_xml_transform_NamespaceProxy__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class NamespaceProxy; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::NamespaceProxy : public ::java::lang::Object +{ + +public: // actually package-private + NamespaceProxy(::org::w3c::dom::Node *); +public: + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *); + virtual ::java::lang::String * getPrefix(::java::lang::String *); + virtual ::java::util::Iterator * getPrefixes(::java::lang::String *); +private: + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) node; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_NamespaceProxy__ diff --git a/libjava/gnu/xml/transform/NodeNumberNode.h b/libjava/gnu/xml/transform/NodeNumberNode.h new file mode 100644 index 00000000000..770387efcb6 --- /dev/null +++ b/libjava/gnu/xml/transform/NodeNumberNode.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_NodeNumberNode__ +#define __gnu_xml_transform_NodeNumberNode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class NodeNumberNode; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Pattern; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::NodeNumberNode : public ::gnu::xml::transform::AbstractNumberNode +{ + +public: // actually package-private + NodeNumberNode(jint, ::gnu::xml::xpath::Pattern *, ::gnu::xml::xpath::Pattern *, ::gnu::xml::transform::TemplateNode *, ::java::lang::String *, jint, ::java::lang::String *, jint); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + JArray< jint > * compute(::gnu::xml::transform::Stylesheet *, ::org::w3c::dom::Node *, jint, jint); + jboolean countMatches(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + jboolean fromMatches(::org::w3c::dom::Node *); + jint getIndex(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + static const jint SINGLE = 0; + static const jint MULTIPLE = 1; + static const jint ANY = 2; + jint __attribute__((aligned(__alignof__( ::gnu::xml::transform::AbstractNumberNode)))) level; + ::gnu::xml::xpath::Pattern * count; + ::gnu::xml::xpath::Pattern * from; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_NodeNumberNode__ diff --git a/libjava/gnu/xml/transform/NumberNode.h b/libjava/gnu/xml/transform/NumberNode.h new file mode 100644 index 00000000000..c8da9666eaf --- /dev/null +++ b/libjava/gnu/xml/transform/NumberNode.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_NumberNode__ +#define __gnu_xml_transform_NumberNode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class NumberNode; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::NumberNode : public ::gnu::xml::transform::AbstractNumberNode +{ + +public: // actually package-private + NumberNode(::gnu::xml::xpath::Expr *, ::gnu::xml::transform::TemplateNode *, ::java::lang::String *, jint, ::java::lang::String *, jint); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + JArray< jint > * compute(::gnu::xml::transform::Stylesheet *, ::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::transform::AbstractNumberNode)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_NumberNode__ diff --git a/libjava/gnu/xml/transform/OtherwiseNode.h b/libjava/gnu/xml/transform/OtherwiseNode.h new file mode 100644 index 00000000000..ecd01817185 --- /dev/null +++ b/libjava/gnu/xml/transform/OtherwiseNode.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_OtherwiseNode__ +#define __gnu_xml_transform_OtherwiseNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class OtherwiseNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::OtherwiseNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + OtherwiseNode(); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_OtherwiseNode__ diff --git a/libjava/gnu/xml/transform/ParameterNode.h b/libjava/gnu/xml/transform/ParameterNode.h new file mode 100644 index 00000000000..6a815cfafd8 --- /dev/null +++ b/libjava/gnu/xml/transform/ParameterNode.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ParameterNode__ +#define __gnu_xml_transform_ParameterNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ParameterNode; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ParameterNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ParameterNode(::javax::xml::namespace::QName *, ::gnu::xml::xpath::Expr *, jint); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + ::java::lang::Object * getValue(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint); +public: + jboolean references(::javax::xml::namespace::QName *); + jint compareTo(::java::lang::Object *); + ::java::lang::String * toString(); +public: // actually package-private + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) name; + ::gnu::xml::xpath::Expr * select; + jint type; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ParameterNode__ diff --git a/libjava/gnu/xml/transform/ProcessingInstructionNode.h b/libjava/gnu/xml/transform/ProcessingInstructionNode.h new file mode 100644 index 00000000000..f8339159386 --- /dev/null +++ b/libjava/gnu/xml/transform/ProcessingInstructionNode.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ProcessingInstructionNode__ +#define __gnu_xml_transform_ProcessingInstructionNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class ProcessingInstructionNode; + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ProcessingInstructionNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ProcessingInstructionNode(::java::lang::String *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ProcessingInstructionNode__ diff --git a/libjava/gnu/xml/transform/SAXSerializer.h b/libjava/gnu/xml/transform/SAXSerializer.h new file mode 100644 index 00000000000..29b1f55cbd0 --- /dev/null +++ b/libjava/gnu/xml/transform/SAXSerializer.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_SAXSerializer__ +#define __gnu_xml_transform_SAXSerializer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class SAXSerializer; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class NamedNodeMap; + class Node; + } + } + namespace xml + { + namespace sax + { + class ContentHandler; + namespace ext + { + class LexicalHandler; + } + } + } + } +} + +class gnu::xml::transform::SAXSerializer : public ::java::lang::Object +{ + +public: // actually package-private + SAXSerializer(); + virtual jboolean isDefined(::java::lang::String *, ::java::lang::String *); + virtual void define(::java::lang::String *, ::java::lang::String *); + virtual void undefine(::java::lang::String *, ::java::lang::String *); +public: + virtual jint getLength(); + virtual ::java::lang::String * getURI(jint); + virtual ::java::lang::String * getLocalName(jint); + virtual ::java::lang::String * getQName(jint); + virtual ::java::lang::String * getType(jint); + virtual ::java::lang::String * getValue(jint); + virtual jint getIndex(::java::lang::String *, ::java::lang::String *); + virtual jint getIndex(::java::lang::String *); + virtual ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getType(::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *); +public: // actually package-private + virtual void serialize(::org::w3c::dom::Node *, ::org::xml::sax::ContentHandler *, ::org::xml::sax::ext::LexicalHandler *); + ::org::w3c::dom::NamedNodeMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attrs; + ::java::util::LinkedList * namespaces; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_SAXSerializer__ diff --git a/libjava/gnu/xml/transform/SAXTemplatesHandler.h b/libjava/gnu/xml/transform/SAXTemplatesHandler.h new file mode 100644 index 00000000000..4bd3a41c930 --- /dev/null +++ b/libjava/gnu/xml/transform/SAXTemplatesHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_SAXTemplatesHandler__ +#define __gnu_xml_transform_SAXTemplatesHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class SAXTemplatesHandler; + class TransformerFactoryImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Templates; + } + } + } +} + +class gnu::xml::transform::SAXTemplatesHandler : public ::gnu::xml::dom::ls::SAXEventSink +{ + +public: // actually package-private + SAXTemplatesHandler(::gnu::xml::transform::TransformerFactoryImpl *); +public: + virtual ::java::lang::String * getSystemId(); + virtual void setSystemId(::java::lang::String *); + virtual ::javax::xml::transform::Templates * getTemplates(); +public: // actually package-private + ::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::gnu::xml::dom::ls::SAXEventSink)))) factory; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_SAXTemplatesHandler__ diff --git a/libjava/gnu/xml/transform/SAXTransformerHandler.h b/libjava/gnu/xml/transform/SAXTransformerHandler.h new file mode 100644 index 00000000000..b269ac894e6 --- /dev/null +++ b/libjava/gnu/xml/transform/SAXTransformerHandler.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_SAXTransformerHandler__ +#define __gnu_xml_transform_SAXTransformerHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class SAXTransformerHandler; + class TransformerFactoryImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + class Transformer; + } + } + } +} + +class gnu::xml::transform::SAXTransformerHandler : public ::gnu::xml::dom::ls::SAXEventSink +{ + +public: // actually package-private + SAXTransformerHandler(::gnu::xml::transform::TransformerFactoryImpl *, ::javax::xml::transform::Transformer *); +public: + virtual ::java::lang::String * getSystemId(); + virtual void setSystemId(::java::lang::String *); + virtual ::javax::xml::transform::Transformer * getTransformer(); + virtual void setResult(::javax::xml::transform::Result *); + virtual void endDocument(); +public: // actually package-private + ::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::gnu::xml::dom::ls::SAXEventSink)))) factory; + ::javax::xml::transform::Transformer * transformer; + ::java::lang::String * systemId; + ::javax::xml::transform::Result * result; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_SAXTransformerHandler__ diff --git a/libjava/gnu/xml/transform/SortKey.h b/libjava/gnu/xml/transform/SortKey.h new file mode 100644 index 00000000000..f433dc39668 --- /dev/null +++ b/libjava/gnu/xml/transform/SortKey.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_SortKey__ +#define __gnu_xml_transform_SortKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class SortKey; + class Stylesheet; + class TemplateNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::SortKey : public ::java::lang::Object +{ + +public: // actually package-private + SortKey(::gnu::xml::xpath::Expr *, ::gnu::xml::transform::TemplateNode *, ::gnu::xml::transform::TemplateNode *, ::gnu::xml::transform::TemplateNode *, ::gnu::xml::transform::TemplateNode *); + ::java::lang::String * key(::org::w3c::dom::Node *); + void init(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + jboolean references(::javax::xml::namespace::QName *); + static const jint DEFAULT = 0; + static const jint UPPER_FIRST = 1; + static const jint LOWER_FIRST = 2; + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::java::lang::Object)))) select; + ::gnu::xml::transform::TemplateNode * langTemplate; + ::gnu::xml::transform::TemplateNode * dataTypeTemplate; + ::gnu::xml::transform::TemplateNode * orderTemplate; + ::gnu::xml::transform::TemplateNode * caseOrderTemplate; + ::java::lang::String * lang; + ::java::lang::String * dataType; + jboolean descending; + jint caseOrder; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_SortKey__ diff --git a/libjava/gnu/xml/transform/StreamSerializer.h b/libjava/gnu/xml/transform/StreamSerializer.h new file mode 100644 index 00000000000..9c10a44146c --- /dev/null +++ b/libjava/gnu/xml/transform/StreamSerializer.h @@ -0,0 +1,103 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_StreamSerializer__ +#define __gnu_xml_transform_StreamSerializer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class StreamSerializer; + } + } + } + namespace java + { + namespace nio + { + namespace charset + { + class Charset; + class CharsetEncoder; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Node; + } + } + } +} + +class gnu::xml::transform::StreamSerializer : public ::java::lang::Object +{ + +public: + StreamSerializer(); + StreamSerializer(::java::lang::String *); + StreamSerializer(jint, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual void setCdataSectionElements(::java::util::Collection *); +public: + virtual void serialize(::org::w3c::dom::Node *, ::java::io::OutputStream *); +public: // actually package-private + virtual void serialize(::org::w3c::dom::Node *, ::java::io::OutputStream *, jboolean); +private: + void doSerialize(::org::w3c::dom::Node *, ::java::io::OutputStream *, jboolean); +public: // actually package-private + virtual jboolean isHTMLElement(::org::w3c::dom::Node *, ::java::lang::String *); + virtual jboolean isDefined(::java::lang::String *, ::java::lang::String *); + virtual void pushNamespaceContext(); + virtual ::java::lang::String * define(::java::lang::String *, ::java::lang::String *); + virtual void popNamespaceContext(); + virtual JArray< jbyte > * encodeText(::java::lang::String *); + virtual ::java::lang::String * encode(::java::lang::String *, jboolean, jboolean); + virtual ::java::lang::String * toString(::org::w3c::dom::Node *); + virtual jboolean isHTMLBoolean(::org::w3c::dom::Attr *, ::java::lang::String *); + static ::java::lang::String * getHTMLCharacterEntity(jchar); + static const jint SPACE = 32; + static const jint BANG = 33; + static const jint APOS = 39; + static const jint SLASH = 47; + static const jint BRA = 60; + static const jint KET = 62; + static const jint EQ = 61; + static ::java::util::Map * HTML_BOOLEAN_ATTRIBUTES; + static ::java::util::HashSet * HTML_URIS; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) encoding; +public: // actually package-private + ::java::nio::charset::Charset * charset; + ::java::nio::charset::CharsetEncoder * encoder; + jint mode; + ::java::util::LinkedList * namespaces; +public: // actually protected + ::java::lang::String * eol; +public: // actually package-private + ::java::util::Collection * cdataSectionElements; +public: // actually protected + jboolean discardDefaultContent; + jboolean xmlDeclaration; +private: + jboolean htmlEncoded; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_StreamSerializer__ diff --git a/libjava/gnu/xml/transform/StrippingInstruction.h b/libjava/gnu/xml/transform/StrippingInstruction.h new file mode 100644 index 00000000000..6afdfa0f57c --- /dev/null +++ b/libjava/gnu/xml/transform/StrippingInstruction.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_StrippingInstruction__ +#define __gnu_xml_transform_StrippingInstruction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class StrippingInstruction; + } + namespace xpath + { + class NameTest; + } + } + } +} + +class gnu::xml::transform::StrippingInstruction : public ::java::lang::Object +{ + +public: // actually package-private + StrippingInstruction(::gnu::xml::xpath::NameTest *, jint); + virtual jfloat getPriority(); + ::gnu::xml::xpath::NameTest * __attribute__((aligned(__alignof__( ::java::lang::Object)))) element; + jint precedence; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_StrippingInstruction__ diff --git a/libjava/gnu/xml/transform/Stylesheet.h b/libjava/gnu/xml/transform/Stylesheet.h new file mode 100644 index 00000000000..c2a3f20d6db --- /dev/null +++ b/libjava/gnu/xml/transform/Stylesheet.h @@ -0,0 +1,170 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_Stylesheet__ +#define __gnu_xml_transform_Stylesheet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Bindings; + class Stylesheet; + class Template; + class TemplateNode; + class TransformerFactoryImpl; + class TransformerImpl; + } + namespace xpath + { + class NameTest; + class XPathImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace xpath + { + class XPathFunction; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class Text; + } + } + } +} + +class gnu::xml::transform::Stylesheet : public ::java::lang::Object +{ + +public: // actually package-private + Stylesheet(::gnu::xml::transform::TransformerFactoryImpl *, ::gnu::xml::transform::Stylesheet *, ::org::w3c::dom::Document *, ::java::lang::String *, jint); + virtual ::gnu::xml::transform::Stylesheet * getRootStylesheet(); + virtual void initDefaultDecimalFormat(); +public: + virtual ::java::lang::Object * clone(); +public: // actually package-private + virtual void initTopLevelVariables(::org::w3c::dom::Node *); +public: + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *); + virtual ::java::lang::String * getPrefix(::java::lang::String *); + virtual ::java::util::Iterator * getPrefixes(::java::lang::String *); +public: // actually package-private + virtual ::javax::xml::namespace::QName * getQName(::java::lang::String *); + virtual ::gnu::xml::transform::TemplateNode * getTemplate(::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jboolean); + virtual ::gnu::xml::transform::TemplateNode * getTemplate(::javax::xml::namespace::QName *, ::javax::xml::namespace::QName *); + virtual ::gnu::xml::transform::Template * parseTemplate(::org::w3c::dom::Node *, ::org::w3c::dom::NamedNodeMap *); + virtual void parseOutput(::org::w3c::dom::Node *, ::org::w3c::dom::NamedNodeMap *); + virtual void parseKey(::org::w3c::dom::Node *, ::org::w3c::dom::NamedNodeMap *); + virtual void parseDecimalFormat(::org::w3c::dom::Node *, ::org::w3c::dom::NamedNodeMap *); +private: + jchar parseDFChar(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *, jchar); + ::java::lang::String * parseDFString(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual void parseNamespaceAlias(::org::w3c::dom::Node *, ::org::w3c::dom::NamedNodeMap *); + virtual void parseAttributeSet(::org::w3c::dom::Node *, ::org::w3c::dom::NamedNodeMap *); + virtual void parse(::org::w3c::dom::Node *, jboolean); + virtual void doParse(::org::w3c::dom::Node *, jboolean); + virtual ::gnu::xml::xpath::NameTest * parseNameTest(::java::lang::String *); + virtual ::gnu::xml::transform::TemplateNode * parseAttributeValueTemplate(::java::lang::String *, ::org::w3c::dom::Node *); + virtual jboolean isPreserved(::org::w3c::dom::Text *, jboolean); +public: + virtual ::javax::xml::xpath::XPathFunction * resolveFunction(::javax::xml::namespace::QName *, jint); +public: // actually package-private + virtual ::gnu::xml::transform::TemplateNode * parseApplyTemplates(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseCallTemplate(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseValueOf(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseForEach(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseIf(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseWhen(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseElement(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseAttribute(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseText(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseCopy(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseProcessingInstruction(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseNumber(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseCopyOf(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parseMessage(::org::w3c::dom::Node *); + virtual ::gnu::xml::transform::TemplateNode * parse(::org::w3c::dom::Node *); +private: + ::gnu::xml::transform::TemplateNode * doParse(::org::w3c::dom::Node *); +public: // actually package-private + virtual ::java::util::List * parseSortKeys(::org::w3c::dom::Node *); + virtual ::java::util::List * parseWithParams(::org::w3c::dom::Node *); + virtual void addNamespaceNodes(::org::w3c::dom::Node *, ::org::w3c::dom::Node *, ::org::w3c::dom::Document *, ::java::util::Collection *); + static ::java::lang::String * getAttribute(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *); + static ::java::lang::String * getRequiredAttribute(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *, ::org::w3c::dom::Node *); +public: + virtual void handle(jshort, ::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: // actually package-private + static ::java::lang::String * XSL_NS; +private: + static ::gnu::xml::xpath::NameTest * STYLESHEET_PRESERVE_TEXT; +public: // actually package-private + static const jint OUTPUT_XML = 0; + static const jint OUTPUT_HTML = 1; + static const jint OUTPUT_TEXT = 2; + ::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) factory; + ::gnu::xml::transform::TransformerImpl * transformer; + ::gnu::xml::transform::Stylesheet * parent; + ::gnu::xml::xpath::XPathImpl * xpath; + ::java::lang::String * systemId; + jint precedence; + jboolean debug; + ::java::lang::String * version; + ::java::util::Collection * extensionElementPrefixes; + ::java::util::Collection * excludeResultPrefixes; + ::java::util::Set * stripSpace; + ::java::util::Set * preserveSpace; + ::org::w3c::dom::Node * output; + jint outputMethod; + ::java::lang::String * outputVersion; + ::java::lang::String * outputEncoding; + jboolean outputOmitXmlDeclaration; + jboolean outputStandalone; + ::java::lang::String * outputPublicId; + ::java::lang::String * outputSystemId; + ::java::util::Collection * outputCdataSectionElements; + jboolean outputIndent; + ::java::lang::String * outputMediaType; + ::java::util::Collection * keys; + ::java::util::Map * decimalFormats; + ::java::util::Map * namespaceAliases; + ::java::util::List * attributeSets; + ::java::util::List * variables; + ::gnu::xml::transform::Bindings * bindings; + ::java::util::LinkedList * templates; + ::gnu::xml::transform::TemplateNode * builtInNodeTemplate; + ::gnu::xml::transform::TemplateNode * builtInTextTemplate; + ::org::w3c::dom::Node * current; + jboolean terminated; + ::gnu::xml::transform::Template * currentTemplate; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_Stylesheet__ diff --git a/libjava/gnu/xml/transform/SystemPropertyFunction.h b/libjava/gnu/xml/transform/SystemPropertyFunction.h new file mode 100644 index 00000000000..dbbdc2d36f2 --- /dev/null +++ b/libjava/gnu/xml/transform/SystemPropertyFunction.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_SystemPropertyFunction__ +#define __gnu_xml_transform_SystemPropertyFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class SystemPropertyFunction; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::SystemPropertyFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + SystemPropertyFunction(); +public: + ::java::lang::Object * evaluate(::java::util::List *); + void setArguments(::java::util::List *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + ::java::lang::Object * systemProperty(::javax::xml::namespace::QName *); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); +public: // actually package-private + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_SystemPropertyFunction__ diff --git a/libjava/gnu/xml/transform/Template.h b/libjava/gnu/xml/transform/Template.h new file mode 100644 index 00000000000..3b26715d785 --- /dev/null +++ b/libjava/gnu/xml/transform/Template.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_Template__ +#define __gnu_xml_transform_Template__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class Template; + class TemplateNode; + } + namespace xpath + { + class Expr; + class Pattern; + class Test; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::Template : public ::java::lang::Object +{ + +public: // actually package-private + Template(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::gnu::xml::xpath::Pattern *, ::gnu::xml::transform::TemplateNode *, jint, ::java::lang::String *, ::javax::xml::namespace::QName *); +private: + Template(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::gnu::xml::xpath::Pattern *, ::gnu::xml::transform::TemplateNode *, jint, jdouble, ::javax::xml::namespace::QName *, jboolean); +public: // actually package-private + virtual ::gnu::xml::transform::Template * clone(::gnu::xml::transform::Stylesheet *); +public: + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + virtual ::gnu::xml::xpath::Test * getNodeTest(::gnu::xml::xpath::Expr *); + virtual jboolean matches(::javax::xml::namespace::QName *, ::org::w3c::dom::Node *); + virtual jboolean matches(::javax::xml::namespace::QName *); + virtual jboolean imports(::gnu::xml::transform::Template *); + virtual void apply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + virtual ::java::lang::String * toString(); +public: // actually package-private + virtual void list(::java::io::PrintStream *); + static jdouble DEFAULT_PRIORITY; + ::gnu::xml::transform::Stylesheet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) stylesheet; + ::javax::xml::namespace::QName * name; + ::gnu::xml::xpath::Pattern * match; + ::gnu::xml::transform::TemplateNode * node; + jdouble priority; + jint precedence; + ::javax::xml::namespace::QName * mode; + jboolean isAnyNode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_Template__ diff --git a/libjava/gnu/xml/transform/TemplateNode.h b/libjava/gnu/xml/transform/TemplateNode.h new file mode 100644 index 00000000000..b5ecbc81753 --- /dev/null +++ b/libjava/gnu/xml/transform/TemplateNode.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_TemplateNode__ +#define __gnu_xml_transform_TemplateNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TemplateNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::TemplateNode : public ::java::lang::Object +{ + +public: // actually package-private + TemplateNode(); + virtual void apply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *) = 0; +public: + virtual jboolean references(::javax::xml::namespace::QName *); +public: // actually package-private + virtual void list(jint, ::java::io::PrintStream *, jboolean); + virtual jboolean hasParam(::javax::xml::namespace::QName *); + static ::java::util::Comparator * documentOrderComparator; + ::gnu::xml::transform::TemplateNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) children; + ::gnu::xml::transform::TemplateNode * next; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_TemplateNode__ diff --git a/libjava/gnu/xml/transform/TemplatesImpl.h b/libjava/gnu/xml/transform/TemplatesImpl.h new file mode 100644 index 00000000000..d79409b3df8 --- /dev/null +++ b/libjava/gnu/xml/transform/TemplatesImpl.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_TemplatesImpl__ +#define __gnu_xml_transform_TemplatesImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TemplatesImpl; + class TransformerFactoryImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Transformer; + } + } + } +} + +class gnu::xml::transform::TemplatesImpl : public ::java::lang::Object +{ + +public: // actually package-private + TemplatesImpl(::gnu::xml::transform::TransformerFactoryImpl *, ::gnu::xml::transform::Stylesheet *); +public: + virtual ::javax::xml::transform::Transformer * newTransformer(); + virtual ::java::util::Properties * getOutputProperties(); +public: // actually package-private + ::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) factory; + ::gnu::xml::transform::Stylesheet * stylesheet; + ::java::util::Properties * outputProperties; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_TemplatesImpl__ diff --git a/libjava/gnu/xml/transform/TextNode.h b/libjava/gnu/xml/transform/TextNode.h new file mode 100644 index 00000000000..a78bc1cd3f0 --- /dev/null +++ b/libjava/gnu/xml/transform/TextNode.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_TextNode__ +#define __gnu_xml_transform_TextNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TemplateNode; + class TextNode; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::TextNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + TextNode(jboolean); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + ::java::lang::String * toString(); +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) disableOutputEscaping; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_TextNode__ diff --git a/libjava/gnu/xml/transform/TransformerFactoryImpl.h b/libjava/gnu/xml/transform/TransformerFactoryImpl.h new file mode 100644 index 00000000000..ecdb46f7154 --- /dev/null +++ b/libjava/gnu/xml/transform/TransformerFactoryImpl.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_TransformerFactoryImpl__ +#define __gnu_xml_transform_TransformerFactoryImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TransformerFactoryImpl; + class XSLURIResolver; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class Source; + class Templates; + class Transformer; + class URIResolver; + namespace sax + { + class TemplatesHandler; + class TransformerHandler; + } + } + namespace xpath + { + class XPathFactory; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class XMLFilter; + } + } + } +} + +class gnu::xml::transform::TransformerFactoryImpl : public ::javax::xml::transform::sax::SAXTransformerFactory +{ + +public: + TransformerFactoryImpl(); + virtual ::javax::xml::transform::Transformer * newTransformer(::javax::xml::transform::Source *); + virtual ::javax::xml::transform::Transformer * newTransformer(); + virtual ::javax::xml::transform::Templates * newTemplates(::javax::xml::transform::Source *); +public: // actually package-private + virtual ::gnu::xml::transform::Stylesheet * newStylesheet(::javax::xml::transform::Source *, jint, ::gnu::xml::transform::Stylesheet *); +public: + virtual ::javax::xml::transform::Source * getAssociatedStylesheet(::javax::xml::transform::Source *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual ::java::util::Map * parseParameters(::java::lang::String *); + virtual ::java::lang::String * unquote(::java::lang::String *); +public: + virtual void setURIResolver(::javax::xml::transform::URIResolver *); + virtual ::javax::xml::transform::URIResolver * getURIResolver(); + virtual void setFeature(::java::lang::String *, jboolean); + virtual jboolean getFeature(::java::lang::String *); + virtual void setAttribute(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getAttribute(::java::lang::String *); + virtual void setErrorListener(::javax::xml::transform::ErrorListener *); + virtual ::javax::xml::transform::ErrorListener * getErrorListener(); + virtual ::javax::xml::transform::sax::TemplatesHandler * newTemplatesHandler(); + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(); + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(::javax::xml::transform::Source *); + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(::javax::xml::transform::Templates *); + virtual ::org::xml::sax::XMLFilter * newXMLFilter(::javax::xml::transform::Source *); + virtual ::org::xml::sax::XMLFilter * newXMLFilter(::javax::xml::transform::Templates *); + static void main(JArray< ::java::lang::String * > *); +public: // actually package-private + ::javax::xml::xpath::XPathFactory * __attribute__((aligned(__alignof__( ::javax::xml::transform::sax::SAXTransformerFactory)))) xpathFactory; + ::gnu::xml::transform::XSLURIResolver * resolver; + ::javax::xml::transform::ErrorListener * userListener; + ::javax::xml::transform::URIResolver * userResolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_TransformerFactoryImpl__ diff --git a/libjava/gnu/xml/transform/TransformerImpl.h b/libjava/gnu/xml/transform/TransformerImpl.h new file mode 100644 index 00000000000..47c1d9a9f35 --- /dev/null +++ b/libjava/gnu/xml/transform/TransformerImpl.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_TransformerImpl__ +#define __gnu_xml_transform_TransformerImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TransformerFactoryImpl; + class TransformerImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace transform + { + class ErrorListener; + class Result; + class Source; + class URIResolver; + namespace stream + { + class StreamResult; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class Node; + } + } + } +} + +class gnu::xml::transform::TransformerImpl : public ::javax::xml::transform::Transformer +{ + +public: // actually package-private + TransformerImpl(::gnu::xml::transform::TransformerFactoryImpl *, ::gnu::xml::transform::Stylesheet *, ::java::util::Properties *); +public: + virtual void transform(::javax::xml::transform::Source *, ::javax::xml::transform::Result *); +public: // actually package-private + static jboolean strip(::gnu::xml::transform::Stylesheet *, ::org::w3c::dom::Node *); +private: + static JArray< ::java::lang::String * > * tokenizeWhitespace(::java::lang::String *); +public: // actually package-private + virtual void writeStreamResult(::org::w3c::dom::Node *, ::javax::xml::transform::stream::StreamResult *, jint, ::java::lang::String *); + virtual void copyChildren(::org::w3c::dom::Document *, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + virtual void setParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(::java::lang::String *); + virtual void clearParameters(); + virtual void setURIResolver(::javax::xml::transform::URIResolver *); + virtual ::javax::xml::transform::URIResolver * getURIResolver(); + virtual void setOutputProperties(::java::util::Properties *); + virtual ::java::util::Properties * getOutputProperties(); + virtual void setOutputProperty(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getOutputProperty(::java::lang::String *); + virtual void setErrorListener(::javax::xml::transform::ErrorListener *); + virtual ::javax::xml::transform::ErrorListener * getErrorListener(); +public: // actually package-private + virtual void reindent(::org::w3c::dom::Document *, ::org::w3c::dom::Node *, jint); + virtual void convertCdataSectionElements(::org::w3c::dom::Document *, ::org::w3c::dom::Node *, ::java::util::List *); + virtual jboolean match(::javax::xml::namespace::QName *, ::org::w3c::dom::Node *); + ::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::javax::xml::transform::Transformer)))) factory; + ::gnu::xml::transform::Stylesheet * stylesheet; + ::javax::xml::transform::URIResolver * uriResolver; + ::javax::xml::transform::ErrorListener * errorListener; + ::java::util::Properties * outputProperties; + static ::java::lang::String * INDENT_WHITESPACE; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_TransformerImpl__ diff --git a/libjava/gnu/xml/transform/TransformerOutputProperties.h b/libjava/gnu/xml/transform/TransformerOutputProperties.h new file mode 100644 index 00000000000..e5fd927dd80 --- /dev/null +++ b/libjava/gnu/xml/transform/TransformerOutputProperties.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_TransformerOutputProperties__ +#define __gnu_xml_transform_TransformerOutputProperties__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TransformerOutputProperties; + } + } + } +} + +class gnu::xml::transform::TransformerOutputProperties : public ::java::util::Properties +{ + +public: // actually package-private + TransformerOutputProperties(::gnu::xml::transform::Stylesheet *); +public: + virtual ::java::lang::String * getProperty(::java::lang::String *); + virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *); + virtual void clear(); +public: // actually package-private + virtual void apply(); + ::java::util::Properties * __attribute__((aligned(__alignof__( ::java::util::Properties)))) defaultProperties; + ::gnu::xml::transform::Stylesheet * stylesheet; + jboolean dirty; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_TransformerOutputProperties__ diff --git a/libjava/gnu/xml/transform/URIResolverEntityResolver.h b/libjava/gnu/xml/transform/URIResolverEntityResolver.h new file mode 100644 index 00000000000..f7cd288e1e9 --- /dev/null +++ b/libjava/gnu/xml/transform/URIResolverEntityResolver.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_URIResolverEntityResolver__ +#define __gnu_xml_transform_URIResolverEntityResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class URIResolverEntityResolver; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class URIResolver; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class gnu::xml::transform::URIResolverEntityResolver : public ::java::lang::Object +{ + +public: // actually package-private + URIResolverEntityResolver(::javax::xml::transform::URIResolver *); +public: + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + ::javax::xml::transform::URIResolver * __attribute__((aligned(__alignof__( ::java::lang::Object)))) resolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_URIResolverEntityResolver__ diff --git a/libjava/gnu/xml/transform/UnparsedEntityUriFunction.h b/libjava/gnu/xml/transform/UnparsedEntityUriFunction.h new file mode 100644 index 00000000000..c1b94c9466b --- /dev/null +++ b/libjava/gnu/xml/transform/UnparsedEntityUriFunction.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_UnparsedEntityUriFunction__ +#define __gnu_xml_transform_UnparsedEntityUriFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class UnparsedEntityUriFunction; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::UnparsedEntityUriFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + UnparsedEntityUriFunction(); +public: + ::java::lang::Object * evaluate(::java::util::List *); + void setArguments(::java::util::List *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); +public: // actually package-private + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_UnparsedEntityUriFunction__ diff --git a/libjava/gnu/xml/transform/ValueOfNode.h b/libjava/gnu/xml/transform/ValueOfNode.h new file mode 100644 index 00000000000..cfd13176529 --- /dev/null +++ b/libjava/gnu/xml/transform/ValueOfNode.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_ValueOfNode__ +#define __gnu_xml_transform_ValueOfNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TemplateNode; + class ValueOfNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::ValueOfNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + ValueOfNode(::gnu::xml::xpath::Expr *, jboolean); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) select; + jboolean disableOutputEscaping; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_ValueOfNode__ diff --git a/libjava/gnu/xml/transform/WhenNode.h b/libjava/gnu/xml/transform/WhenNode.h new file mode 100644 index 00000000000..c904902c3b6 --- /dev/null +++ b/libjava/gnu/xml/transform/WhenNode.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_WhenNode__ +#define __gnu_xml_transform_WhenNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TemplateNode; + class WhenNode; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::WhenNode : public ::gnu::xml::transform::TemplateNode +{ + +public: // actually package-private + WhenNode(::gnu::xml::xpath::Expr *); + ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *); + void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); +public: + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) test; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_WhenNode__ diff --git a/libjava/gnu/xml/transform/WithParam.h b/libjava/gnu/xml/transform/WithParam.h new file mode 100644 index 00000000000..c5882691aeb --- /dev/null +++ b/libjava/gnu/xml/transform/WithParam.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_WithParam__ +#define __gnu_xml_transform_WithParam__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class Stylesheet; + class TemplateNode; + class WithParam; + } + namespace xpath + { + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::transform::WithParam : public ::java::lang::Object +{ + +public: // actually package-private + WithParam(::javax::xml::namespace::QName *, ::gnu::xml::xpath::Expr *); + WithParam(::javax::xml::namespace::QName *, ::gnu::xml::transform::TemplateNode *); + ::java::lang::Object * getValue(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::transform::WithParam * clone(::gnu::xml::transform::Stylesheet *); + jboolean references(::javax::xml::namespace::QName *); + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::gnu::xml::xpath::Expr * select; + ::gnu::xml::transform::TemplateNode * content; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_WithParam__ diff --git a/libjava/gnu/xml/transform/XSLComparator.h b/libjava/gnu/xml/transform/XSLComparator.h new file mode 100644 index 00000000000..0f99c57c86d --- /dev/null +++ b/libjava/gnu/xml/transform/XSLComparator.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_XSLComparator__ +#define __gnu_xml_transform_XSLComparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class XSLComparator; + } + } + } +} + +class gnu::xml::transform::XSLComparator : public ::java::lang::Object +{ + +public: // actually package-private + XSLComparator(::java::util::List *); +public: + virtual jint compare(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sortKeys; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_XSLComparator__ diff --git a/libjava/gnu/xml/transform/XSLURIResolver.h b/libjava/gnu/xml/transform/XSLURIResolver.h new file mode 100644 index 00000000000..a7e0aeae26e --- /dev/null +++ b/libjava/gnu/xml/transform/XSLURIResolver.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_transform_XSLURIResolver__ +#define __gnu_xml_transform_XSLURIResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace transform + { + class XSLURIResolver; + } + } + } + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace xml + { + namespace parsers + { + class DocumentBuilder; + } + namespace transform + { + class ErrorListener; + class Source; + class URIResolver; + namespace dom + { + class DOMSource; + } + } + } + } +} + +class gnu::xml::transform::XSLURIResolver : public ::java::lang::Object +{ + +public: // actually package-private + XSLURIResolver(); + virtual void setUserResolver(::javax::xml::transform::URIResolver *); + virtual void setUserListener(::javax::xml::transform::ErrorListener *); + virtual void flush(); +public: + virtual ::javax::xml::transform::Source * resolve(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + virtual ::javax::xml::transform::dom::DOMSource * resolveDOM(::javax::xml::transform::Source *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::net::URL * resolveURL(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::parsers::DocumentBuilder * getDocumentBuilder(); + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastModifiedCache; + ::java::util::Map * nodeCache; + ::javax::xml::parsers::DocumentBuilder * builder; + ::javax::xml::transform::URIResolver * userResolver; + ::javax::xml::transform::ErrorListener * userListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_transform_XSLURIResolver__ diff --git a/libjava/gnu/xml/util/DoParse$MyErrorHandler.h b/libjava/gnu/xml/util/DoParse$MyErrorHandler.h new file mode 100644 index 00000000000..3c61367dda6 --- /dev/null +++ b/libjava/gnu/xml/util/DoParse$MyErrorHandler.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_DoParse$MyErrorHandler__ +#define __gnu_xml_util_DoParse$MyErrorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class DoParse$MyErrorHandler; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class SAXParseException; + } + } + } +} + +class gnu::xml::util::DoParse$MyErrorHandler : public ::java::lang::Object +{ + +public: // actually package-private + DoParse$MyErrorHandler(); +public: + virtual void error(::org::xml::sax::SAXParseException *); + virtual void warning(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_DoParse$MyErrorHandler__ diff --git a/libjava/gnu/xml/util/DoParse.h b/libjava/gnu/xml/util/DoParse.h new file mode 100644 index 00000000000..b775f00d060 --- /dev/null +++ b/libjava/gnu/xml/util/DoParse.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_DoParse__ +#define __gnu_xml_util_DoParse__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class EventConsumer; + } + namespace util + { + class DoParse; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class SAXParseException; + } + } + } +} + +class gnu::xml::util::DoParse : public ::java::lang::Object +{ + + DoParse(); +public: + static void main(JArray< ::java::lang::String * > *); +private: + static jboolean hasValidator(::gnu::xml::pipeline::EventConsumer *); + static ::java::lang::String * printParseException(::java::lang::String *, ::org::xml::sax::SAXParseException *); +public: // actually package-private + static jint access$0(); + static void access$1(jint); + static ::java::lang::String * access$2(::java::lang::String *, ::org::xml::sax::SAXParseException *); + static jint access$3(); + static void access$4(jint); + static ::org::xml::sax::SAXParseException * access$5(); + static void access$6(::org::xml::sax::SAXParseException *); +private: + static ::org::xml::sax::SAXParseException * fatal; + static jint errorCount; + static jint fatalCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_DoParse__ diff --git a/libjava/gnu/xml/util/DomParser.h b/libjava/gnu/xml/util/DomParser.h new file mode 100644 index 00000000000..f64b729b5b3 --- /dev/null +++ b/libjava/gnu/xml/util/DomParser.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_DomParser__ +#define __gnu_xml_util_DomParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class DomParser; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + namespace ext + { + class DeclHandler; + class DefaultHandler2; + class LexicalHandler; + } + namespace helpers + { + class NamespaceSupport; + } + } + } + } +} + +class gnu::xml::util::DomParser : public ::java::lang::Object +{ + +public: + DomParser(); + DomParser(::org::w3c::dom::Node *); + ::org::xml::sax::EntityResolver * getEntityResolver(); + void setEntityResolver(::org::xml::sax::EntityResolver *); + void setLocale(::java::util::Locale *); + ::org::xml::sax::ErrorHandler * getErrorHandler(); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + ::org::xml::sax::ContentHandler * getContentHandler(); + void setContentHandler(::org::xml::sax::ContentHandler *); + ::org::xml::sax::DTDHandler * getDTDHandler(); + void setDTDHandler(::org::xml::sax::DTDHandler *); + void parse(::java::lang::String *); + void parse(::org::xml::sax::InputSource *); +private: + void parse(); + jboolean getIsL2(::org::w3c::dom::Node *); +public: + jboolean getFeature(::java::lang::String *); + ::java::lang::Object * getProperty(::java::lang::String *); + void setFeature(::java::lang::String *, jboolean); + void setProperty(::java::lang::String *, ::java::lang::Object *); +private: + void setStart(::org::w3c::dom::Node *); + void walk(); + void callEnd(::org::w3c::dom::Node *); + ::org::xml::sax::ext::DefaultHandler2 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) defaultHandler; + ::org::xml::sax::ContentHandler * contentHandler; + ::org::xml::sax::DTDHandler * dtdHandler; + ::org::xml::sax::ext::DeclHandler * declHandler; + ::org::xml::sax::ext::LexicalHandler * lexicalHandler; + ::org::xml::sax::ErrorHandler * errHandler; + ::org::xml::sax::EntityResolver * resolver; + ::java::util::Locale * locale; + ::org::w3c::dom::Node * start; + ::org::w3c::dom::Node * current; + jboolean isL2; + jboolean showNamespaces; + jboolean showXML1_0; + ::org::xml::sax::helpers::NamespaceSupport * prefixStack; + jboolean isDocument; + static ::java::lang::String * FEATURES; + static ::java::lang::String * HANDLERS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_DomParser__ diff --git a/libjava/gnu/xml/util/Resolver.h b/libjava/gnu/xml/util/Resolver.h new file mode 100644 index 00000000000..ccafe1f2c86 --- /dev/null +++ b/libjava/gnu/xml/util/Resolver.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_Resolver__ +#define __gnu_xml_util_Resolver__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class Resolver; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class gnu::xml::util::Resolver : public ::java::lang::Object +{ + +public: + static void addDirectoryMapping(::java::util::Dictionary *, JArray< JArray< ::java::lang::String * > * > *, ::java::io::File *); + static ::java::lang::String * fileNameToURL(::java::lang::String *); + static ::java::lang::String * fileToURL(::java::io::File *); + static ::java::lang::String * getURL(::java::lang::String *); + Resolver(::java::util::Dictionary *); + static ::java::lang::String * getEncoding(::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); +private: + ::java::util::Dictionary * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pubidMapping; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_Resolver__ diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory$DomHandler.h b/libjava/gnu/xml/util/SAXNullTransformerFactory$DomHandler.h new file mode 100644 index 00000000000..62e4abac123 --- /dev/null +++ b/libjava/gnu/xml/util/SAXNullTransformerFactory$DomHandler.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_SAXNullTransformerFactory$DomHandler__ +#define __gnu_xml_util_SAXNullTransformerFactory$DomHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace pipeline + { + class DomConsumer; + } + namespace util + { + class SAXNullTransformerFactory$DomHandler; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + namespace dom + { + class DOMResult; + } + } + } + } +} + +class gnu::xml::util::SAXNullTransformerFactory$DomHandler : public ::gnu::xml::dom::Consumer$Backdoor +{ + +public: // actually package-private + SAXNullTransformerFactory$DomHandler(::gnu::xml::pipeline::DomConsumer *, ::javax::xml::transform::dom::DOMResult *); +public: + virtual void endDocument(); +private: + ::javax::xml::transform::dom::DOMResult * __attribute__((aligned(__alignof__( ::gnu::xml::dom::Consumer$Backdoor)))) result; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_SAXNullTransformerFactory$DomHandler__ diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory$DomTerminus.h b/libjava/gnu/xml/util/SAXNullTransformerFactory$DomTerminus.h new file mode 100644 index 00000000000..b1c1bb1d695 --- /dev/null +++ b/libjava/gnu/xml/util/SAXNullTransformerFactory$DomTerminus.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_SAXNullTransformerFactory$DomTerminus__ +#define __gnu_xml_util_SAXNullTransformerFactory$DomTerminus__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class SAXNullTransformerFactory$DomTerminus; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + namespace dom + { + class DOMResult; + } + } + } + } +} + +class gnu::xml::util::SAXNullTransformerFactory$DomTerminus : public ::gnu::xml::pipeline::DomConsumer +{ + +public: // actually package-private + SAXNullTransformerFactory$DomTerminus(::javax::xml::transform::dom::DOMResult *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_SAXNullTransformerFactory$DomTerminus__ diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory$ListenerAdapter.h b/libjava/gnu/xml/util/SAXNullTransformerFactory$ListenerAdapter.h new file mode 100644 index 00000000000..3764fb6c801 --- /dev/null +++ b/libjava/gnu/xml/util/SAXNullTransformerFactory$ListenerAdapter.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_SAXNullTransformerFactory$ListenerAdapter__ +#define __gnu_xml_util_SAXNullTransformerFactory$ListenerAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class SAXNullTransformerFactory$ListenerAdapter; + class SAXNullTransformerFactory$NullTransformer; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class TransformerException; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class SAXParseException; + } + } + } +} + +class gnu::xml::util::SAXNullTransformerFactory$ListenerAdapter : public ::java::lang::Object +{ + +public: // actually package-private + SAXNullTransformerFactory$ListenerAdapter(::gnu::xml::util::SAXNullTransformerFactory$NullTransformer *); +private: + ::javax::xml::transform::TransformerException * map(::org::xml::sax::SAXParseException *); +public: + virtual void error(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); + virtual void warning(::org::xml::sax::SAXParseException *); +public: // actually package-private + ::gnu::xml::util::SAXNullTransformerFactory$NullTransformer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) transformer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_SAXNullTransformerFactory$ListenerAdapter__ diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory$LocatorAdapter.h b/libjava/gnu/xml/util/SAXNullTransformerFactory$LocatorAdapter.h new file mode 100644 index 00000000000..0bf4b466bb5 --- /dev/null +++ b/libjava/gnu/xml/util/SAXNullTransformerFactory$LocatorAdapter.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_SAXNullTransformerFactory$LocatorAdapter__ +#define __gnu_xml_util_SAXNullTransformerFactory$LocatorAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class SAXNullTransformerFactory$LocatorAdapter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class SAXParseException; + } + } + } +} + +class gnu::xml::util::SAXNullTransformerFactory$LocatorAdapter : public ::org::xml::sax::helpers::LocatorImpl +{ + +public: // actually package-private + SAXNullTransformerFactory$LocatorAdapter(::org::xml::sax::SAXParseException *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_SAXNullTransformerFactory$LocatorAdapter__ diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory$NullHandler.h b/libjava/gnu/xml/util/SAXNullTransformerFactory$NullHandler.h new file mode 100644 index 00000000000..784a7235e65 --- /dev/null +++ b/libjava/gnu/xml/util/SAXNullTransformerFactory$NullHandler.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_SAXNullTransformerFactory$NullHandler__ +#define __gnu_xml_util_SAXNullTransformerFactory$NullHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class SAXNullTransformerFactory$NullHandler; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + class Transformer; + } + } + } +} + +class gnu::xml::util::SAXNullTransformerFactory$NullHandler : public ::gnu::xml::pipeline::EventFilter +{ + +public: // actually package-private + SAXNullTransformerFactory$NullHandler(::javax::xml::transform::Transformer *); +public: + virtual ::javax::xml::transform::Transformer * getTransformer(); + virtual ::java::lang::String * getSystemId(); + virtual void setSystemId(::java::lang::String *); + virtual void setResult(::javax::xml::transform::Result *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::pipeline::EventFilter)))) systemId; + ::javax::xml::transform::Transformer * transformer; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_SAXNullTransformerFactory$NullHandler__ diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory$NullTransformer.h b/libjava/gnu/xml/util/SAXNullTransformerFactory$NullTransformer.h new file mode 100644 index 00000000000..78fdb8caaf7 --- /dev/null +++ b/libjava/gnu/xml/util/SAXNullTransformerFactory$NullTransformer.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_SAXNullTransformerFactory$NullTransformer__ +#define __gnu_xml_util_SAXNullTransformerFactory$NullTransformer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class SAXNullTransformerFactory$NullHandler; + class SAXNullTransformerFactory$NullTransformer; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class Result; + class Source; + class TransformerException; + class URIResolver; + } + } + } +} + +class gnu::xml::util::SAXNullTransformerFactory$NullTransformer : public ::javax::xml::transform::Transformer +{ + +public: // actually package-private + SAXNullTransformerFactory$NullTransformer(); +public: + virtual ::javax::xml::transform::ErrorListener * getErrorListener(); + virtual void setErrorListener(::javax::xml::transform::ErrorListener *); + virtual ::javax::xml::transform::URIResolver * getURIResolver(); + virtual void setURIResolver(::javax::xml::transform::URIResolver *); + virtual void setOutputProperties(::java::util::Properties *); + virtual ::java::util::Properties * getOutputProperties(); + virtual void setOutputProperty(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getOutputProperty(::java::lang::String *); + virtual void clearParameters(); + virtual void setParameter(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(::java::lang::String *); + virtual void transform(::javax::xml::transform::Source *, ::javax::xml::transform::Result *); +private: + ::javax::xml::transform::URIResolver * __attribute__((aligned(__alignof__( ::javax::xml::transform::Transformer)))) uriResolver; + ::java::util::Properties * props; + ::java::util::Hashtable * params; +public: // actually package-private + ::javax::xml::transform::ErrorListener * errListener; + ::javax::xml::transform::TransformerException * ex; + ::gnu::xml::util::SAXNullTransformerFactory$NullHandler * handler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_SAXNullTransformerFactory$NullTransformer__ diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory.h b/libjava/gnu/xml/util/SAXNullTransformerFactory.h new file mode 100644 index 00000000000..f9415020452 --- /dev/null +++ b/libjava/gnu/xml/util/SAXNullTransformerFactory.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_SAXNullTransformerFactory__ +#define __gnu_xml_util_SAXNullTransformerFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class SAXNullTransformerFactory; + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class Source; + class Templates; + class Transformer; + class URIResolver; + namespace sax + { + class TemplatesHandler; + class TransformerHandler; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class XMLFilter; + } + } + } +} + +class gnu::xml::util::SAXNullTransformerFactory : public ::javax::xml::transform::sax::SAXTransformerFactory +{ + +public: + SAXNullTransformerFactory(); + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual void setAttribute(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getAttribute(::java::lang::String *); + virtual ::javax::xml::transform::Source * getAssociatedStylesheet(::javax::xml::transform::Source *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::javax::xml::transform::Transformer * newTransformer(); + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(); + virtual ::javax::xml::transform::Transformer * newTransformer(::javax::xml::transform::Source *); + virtual ::javax::xml::transform::Templates * newTemplates(::javax::xml::transform::Source *); + virtual ::javax::xml::transform::sax::TemplatesHandler * newTemplatesHandler(); + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(::javax::xml::transform::Source *); + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(::javax::xml::transform::Templates *); + virtual ::org::xml::sax::XMLFilter * newXMLFilter(::javax::xml::transform::Source *); + virtual ::org::xml::sax::XMLFilter * newXMLFilter(::javax::xml::transform::Templates *); + virtual ::javax::xml::transform::ErrorListener * getErrorListener(); + virtual void setErrorListener(::javax::xml::transform::ErrorListener *); + virtual ::javax::xml::transform::URIResolver * getURIResolver(); + virtual void setURIResolver(::javax::xml::transform::URIResolver *); +private: + static ::java::io::OutputStream * getOutputStream(::java::lang::String *); +public: // actually package-private + static ::java::io::OutputStream * access$0(::java::lang::String *); +private: + ::javax::xml::transform::ErrorListener * __attribute__((aligned(__alignof__( ::javax::xml::transform::sax::SAXTransformerFactory)))) errListener; + ::javax::xml::transform::URIResolver * uriResolver; + static ::java::lang::String * noXSLT; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_SAXNullTransformerFactory__ diff --git a/libjava/gnu/xml/util/XCat$Catalog.h b/libjava/gnu/xml/util/XCat$Catalog.h new file mode 100644 index 00000000000..4b727ce46f1 --- /dev/null +++ b/libjava/gnu/xml/util/XCat$Catalog.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_XCat$Catalog__ +#define __gnu_xml_util_XCat$Catalog__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class XCat$Catalog; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ErrorHandler; + class InputSource; + } + } + } +} + +class gnu::xml::util::XCat$Catalog : public ::java::lang::Object +{ + +public: // actually package-private + XCat$Catalog(); +private: + ::org::xml::sax::InputSource * locatePublicId(::java::lang::String *); + ::org::xml::sax::InputSource * mapURI(::java::lang::String *, ::java::util::Hashtable *, ::java::util::Hashtable *, ::java::util::Hashtable *); +public: + virtual ::org::xml::sax::InputSource * resolve(jboolean, ::java::lang::String *, ::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveURI(::java::lang::String *); + virtual ::org::xml::sax::InputSource * getExternalSubset(::java::lang::String *); +private: + ::gnu::xml::util::XCat$Catalog * getNext(jint); + ::org::xml::sax::InputSource * checkDelegations(::java::util::Hashtable *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) catalogURI; + ::org::xml::sax::ErrorHandler * eh; + jboolean unified; + ::java::lang::String * parserClass; + jboolean hasPreference; + jboolean usingPublic; + ::java::util::Hashtable * publicIds; + ::java::util::Hashtable * publicDelegations; + ::java::util::Hashtable * systemIds; + ::java::util::Hashtable * systemRewrites; + ::java::util::Hashtable * systemDelegations; + ::java::util::Hashtable * uris; + ::java::util::Hashtable * uriRewrites; + ::java::util::Hashtable * uriDelegations; + ::java::util::Hashtable * doctypes; + ::java::util::Vector * next; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_XCat$Catalog__ diff --git a/libjava/gnu/xml/util/XCat$DoneDelegation.h b/libjava/gnu/xml/util/XCat$DoneDelegation.h new file mode 100644 index 00000000000..34e146afef7 --- /dev/null +++ b/libjava/gnu/xml/util/XCat$DoneDelegation.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_XCat$DoneDelegation__ +#define __gnu_xml_util_XCat$DoneDelegation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class XCat$DoneDelegation; + } + } + } +} + +class gnu::xml::util::XCat$DoneDelegation : public ::org::xml::sax::SAXException +{ + +public: // actually package-private + XCat$DoneDelegation(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_XCat$DoneDelegation__ diff --git a/libjava/gnu/xml/util/XCat$Loader.h b/libjava/gnu/xml/util/XCat$Loader.h new file mode 100644 index 00000000000..846c85b2710 --- /dev/null +++ b/libjava/gnu/xml/util/XCat$Loader.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_XCat$Loader__ +#define __gnu_xml_util_XCat$Loader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class XCat$Catalog; + class XCat$Loader; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class ErrorHandler; + class Locator; + } + } + } +} + +class gnu::xml::util::XCat$Loader : public ::org::xml::sax::ext::DefaultHandler2 +{ + +public: // actually package-private + XCat$Loader(jboolean, ::org::xml::sax::ErrorHandler *, jboolean); +private: + ::java::lang::String * nofrag(::java::lang::String *); + ::java::lang::String * absolutize(::java::lang::String *); + void error(::java::lang::String *); + void fatal(::java::lang::String *); + void warn(::java::lang::String *); +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +private: + jboolean __attribute__((aligned(__alignof__( ::org::xml::sax::ext::DefaultHandler2)))) preInterned; + ::org::xml::sax::ErrorHandler * handler; + jboolean unified; + jint ignoreDepth; + ::org::xml::sax::Locator * locator; + jboolean started; + ::java::util::Hashtable * externals; + ::java::util::Stack * bases; +public: // actually package-private + ::gnu::xml::util::XCat$Catalog * cat; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_XCat$Loader__ diff --git a/libjava/gnu/xml/util/XCat.h b/libjava/gnu/xml/util/XCat.h new file mode 100644 index 00000000000..a0b93275dae --- /dev/null +++ b/libjava/gnu/xml/util/XCat.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_XCat__ +#define __gnu_xml_util_XCat__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class XCat; + class XCat$Catalog; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ErrorHandler; + class InputSource; + } + } + } +} + +class gnu::xml::util::XCat : public ::java::lang::Object +{ + +public: + XCat(); + XCat(::java::lang::String *); + virtual void loadCatalog(::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::xml::sax::InputSource * getExternalSubset(::java::lang::String *, ::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveURI(::java::lang::String *, ::java::lang::String *); + virtual void disableLoading(); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual ::java::lang::String * getParserClass(); + virtual void setParserClass(::java::lang::String *); + virtual jboolean isUnified(); + virtual void setUnified(jboolean); + virtual jboolean isUsingPublic(); + virtual void setUsingPublic(jboolean); +private: + static ::gnu::xml::util::XCat$Catalog * loadCatalog(::java::lang::String *, ::org::xml::sax::ErrorHandler *, ::java::lang::String *, jboolean); + static ::java::lang::String * normalizePublicId(jboolean, ::java::lang::String *); + static jboolean isUriExcluded(jint); + static jint hexNibble(jint); + static ::java::lang::String * normalizeURI(::java::lang::String *); +public: // actually package-private + static ::java::lang::String * access$0(jboolean, ::java::lang::String *); + static ::java::lang::String * access$1(::java::lang::String *); + static ::gnu::xml::util::XCat$Catalog * access$2(::java::lang::String *, ::org::xml::sax::ErrorHandler *, ::java::lang::String *, jboolean); +private: + JArray< ::gnu::xml::util::XCat$Catalog * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) catalogs; + jboolean usingPublic; + jboolean loadingPermitted; + jboolean unified; + ::java::lang::String * parserClass; + ::org::xml::sax::ErrorHandler * errorHandler; + static ::java::lang::String * catalogNamespace; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_XCat__ diff --git a/libjava/gnu/xml/util/XHTMLWriter.h b/libjava/gnu/xml/util/XHTMLWriter.h new file mode 100644 index 00000000000..6fd702d4875 --- /dev/null +++ b/libjava/gnu/xml/util/XHTMLWriter.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_XHTMLWriter__ +#define __gnu_xml_util_XHTMLWriter__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class XHTMLWriter; + } + } + } +} + +class gnu::xml::util::XHTMLWriter : public ::gnu::xml::util::XMLWriter +{ + +public: + XHTMLWriter(); + XHTMLWriter(::java::io::OutputStream *); + XHTMLWriter(::java::io::Writer *); + XHTMLWriter(::java::io::Writer *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_XHTMLWriter__ diff --git a/libjava/gnu/xml/util/XMLWriter.h b/libjava/gnu/xml/util/XMLWriter.h new file mode 100644 index 00000000000..ea354b999f3 --- /dev/null +++ b/libjava/gnu/xml/util/XMLWriter.h @@ -0,0 +1,145 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_util_XMLWriter__ +#define __gnu_xml_util_XMLWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace util + { + class XMLWriter; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class ErrorHandler; + class Locator; + } + } + } +} + +class gnu::xml::util::XMLWriter : public ::java::lang::Object +{ + + static jboolean isLineEnd(::java::lang::String *); +public: + XMLWriter(); + XMLWriter(::java::io::OutputStream *); + XMLWriter(::java::io::Writer *); + XMLWriter(::java::io::Writer *, ::java::lang::String *); +private: + void setEncoding(::java::lang::String *); +public: + virtual void setWriter(::java::io::Writer *, ::java::lang::String *); + virtual void setEOL(::java::lang::String *); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); +public: // actually protected + virtual void fatal(::java::lang::String *, ::java::lang::Exception *); +public: + virtual void setXhtml(jboolean); + virtual jboolean isXhtml(); + virtual void setExpandingEntities(jboolean); + virtual jboolean isExpandingEntities(); + virtual void setPrettyPrinting(jboolean); + virtual jboolean isPrettyPrinting(); + virtual void setCanonical(jboolean); + virtual jboolean isCanonical(); + virtual void flush(); + virtual void write(::java::lang::String *); + virtual void writeElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *, ::java::lang::String *); + virtual void writeElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *, jint); + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); +private: + static jboolean isEmptyElementTag(::java::lang::String *); + static jboolean indentBefore(::java::lang::String *); + static jboolean spaceBefore(::java::lang::String *); + static jboolean spacePreserve(::java::lang::String *); +public: + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); +private: + void writeStartTag(::java::lang::String *, ::org::xml::sax::Attributes *, jboolean); +public: + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void writeEmptyElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void skippedEntity(::java::lang::String *); + virtual void startCDATA(); + virtual void endCDATA(); + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endDTD(); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + virtual void comment(JArray< jchar > *, jint, jint); + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void elementDecl(::java::lang::String *, ::java::lang::String *); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *); +private: + void writeQuotedValue(::java::lang::String *, jint); + void escapeChars(JArray< jchar > *, jint, jint, jint); + void newline(); + void doIndent(); + void rawWrite(jchar); + void rawWrite(::java::lang::String *); + void rawWrite(JArray< jchar > *, jint, jint); + static const jint CTX_ENTITY = 1; + static const jint CTX_ATTRIBUTE = 2; + static const jint CTX_CONTENT = 3; + static const jint CTX_UNPARSED = 4; + static const jint CTX_NAME = 5; + static ::java::lang::String * sysEOL; + ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) out; + jboolean inCDATA; + jint elementNestLevel; + ::java::lang::String * eol; + jshort dangerMask; + ::java::lang::StringBuffer * stringBuf; + ::org::xml::sax::Locator * locator; + ::org::xml::sax::ErrorHandler * errHandler; + jboolean expandingEntities; + jint entityNestLevel; + jboolean xhtml; + jboolean startedDoctype; + ::java::lang::String * encoding; + jboolean canonical; + jboolean inDoctype; + jboolean inEpilogue; + jboolean prettyPrinting; + jint column; + jboolean noWrap; + ::java::util::Stack * space; + static const jint lineLength = 75; + static ::java::lang::String * xhtmlFullDTD; + static JArray< ::java::lang::String * > * HTMLlat1x; + static JArray< ::java::lang::String * > * HTMLsymbolx_GR; + static JArray< ::java::lang::String * > * HTMLsymbolx_gr; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_util_XMLWriter__ diff --git a/libjava/gnu/xml/validation/datatype/Annotation.h b/libjava/gnu/xml/validation/datatype/Annotation.h new file mode 100644 index 00000000000..b6dffa6ba9c --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/Annotation.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_Annotation__ +#define __gnu_xml_validation_datatype_Annotation__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + } + } + } + } +} + +class gnu::xml::validation::datatype::Annotation : public ::java::lang::Object +{ + +public: + Annotation(::java::lang::String *); + virtual ::java::lang::String * toString(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) documentation; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_Annotation__ diff --git a/libjava/gnu/xml/validation/datatype/AnySimpleType.h b/libjava/gnu/xml/validation/datatype/AnySimpleType.h new file mode 100644 index 00000000000..41c19275d30 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/AnySimpleType.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_AnySimpleType__ +#define __gnu_xml_validation_datatype_AnySimpleType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class AnySimpleType; + } + } + } + } +} + +class gnu::xml::validation::datatype::AnySimpleType : public ::gnu::xml::validation::datatype::SimpleType +{ + +public: // actually package-private + AnySimpleType(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_AnySimpleType__ diff --git a/libjava/gnu/xml/validation/datatype/AnyType.h b/libjava/gnu/xml/validation/datatype/AnyType.h new file mode 100644 index 00000000000..2f9ec8d0fb6 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/AnyType.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_AnyType__ +#define __gnu_xml_validation_datatype_AnyType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class AnyType; + } + } + } + } +} + +class gnu::xml::validation::datatype::AnyType : public ::gnu::xml::validation::datatype::SimpleType +{ + +public: // actually package-private + AnyType(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_AnyType__ diff --git a/libjava/gnu/xml/validation/datatype/AnyURIType.h b/libjava/gnu/xml/validation/datatype/AnyURIType.h new file mode 100644 index 00000000000..1b5b22544c1 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/AnyURIType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_AnyURIType__ +#define __gnu_xml_validation_datatype_AnyURIType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class AnyURIType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::AnyURIType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + AnyURIType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_AnyURIType__ diff --git a/libjava/gnu/xml/validation/datatype/AtomicSimpleType.h b/libjava/gnu/xml/validation/datatype/AtomicSimpleType.h new file mode 100644 index 00000000000..805e1ae5884 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/AtomicSimpleType.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_AtomicSimpleType__ +#define __gnu_xml_validation_datatype_AtomicSimpleType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class AtomicSimpleType; + class SimpleType; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::AtomicSimpleType : public ::gnu::xml::validation::datatype::SimpleType +{ + +public: + AtomicSimpleType(::javax::xml::namespace::QName *, ::java::util::Set *, jint, ::gnu::xml::validation::datatype::SimpleType *, ::gnu::xml::validation::datatype::Annotation *); +public: // actually package-private + AtomicSimpleType(::javax::xml::namespace::QName *, ::gnu::xml::validation::datatype::SimpleType *); +public: + virtual void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_AtomicSimpleType__ diff --git a/libjava/gnu/xml/validation/datatype/Base64BinaryType.h b/libjava/gnu/xml/validation/datatype/Base64BinaryType.h new file mode 100644 index 00000000000..5aaec9c875b --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/Base64BinaryType.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_Base64BinaryType__ +#define __gnu_xml_validation_datatype_Base64BinaryType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Base64BinaryType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::Base64BinaryType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + Base64BinaryType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static ::java::lang::String * B64; + static ::java::lang::String * B16; + static ::java::lang::String * B04; + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_Base64BinaryType__ diff --git a/libjava/gnu/xml/validation/datatype/BooleanType.h b/libjava/gnu/xml/validation/datatype/BooleanType.h new file mode 100644 index 00000000000..7f63b39c15f --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/BooleanType.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_BooleanType__ +#define __gnu_xml_validation_datatype_BooleanType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class BooleanType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::BooleanType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + BooleanType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::util::Set * VALUE_SPACE; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_BooleanType__ diff --git a/libjava/gnu/xml/validation/datatype/ByteType.h b/libjava/gnu/xml/validation/datatype/ByteType.h new file mode 100644 index 00000000000..6b814e94b02 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/ByteType.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_ByteType__ +#define __gnu_xml_validation_datatype_ByteType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class ByteType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::ByteType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + ByteType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static ::java::lang::String * MIN_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_ByteType__ diff --git a/libjava/gnu/xml/validation/datatype/DateTimeType.h b/libjava/gnu/xml/validation/datatype/DateTimeType.h new file mode 100644 index 00000000000..35f83ecd4f4 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/DateTimeType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_DateTimeType__ +#define __gnu_xml_validation_datatype_DateTimeType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class DateTimeType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::DateTimeType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + DateTimeType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_DateTimeType__ diff --git a/libjava/gnu/xml/validation/datatype/DateType.h b/libjava/gnu/xml/validation/datatype/DateType.h new file mode 100644 index 00000000000..bca1354f593 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/DateType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_DateType__ +#define __gnu_xml_validation_datatype_DateType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class DateType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::DateType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + DateType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_DateType__ diff --git a/libjava/gnu/xml/validation/datatype/DecimalType.h b/libjava/gnu/xml/validation/datatype/DecimalType.h new file mode 100644 index 00000000000..4f9b8be07ce --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/DecimalType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_DecimalType__ +#define __gnu_xml_validation_datatype_DecimalType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class DecimalType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::DecimalType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + DecimalType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_DecimalType__ diff --git a/libjava/gnu/xml/validation/datatype/DoubleType.h b/libjava/gnu/xml/validation/datatype/DoubleType.h new file mode 100644 index 00000000000..75bad58f2a2 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/DoubleType.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_DoubleType__ +#define __gnu_xml_validation_datatype_DoubleType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class DoubleType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::DoubleType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + DoubleType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::util::Set * SPECIAL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_DoubleType__ diff --git a/libjava/gnu/xml/validation/datatype/DurationType$Duration.h b/libjava/gnu/xml/validation/datatype/DurationType$Duration.h new file mode 100644 index 00000000000..17216d72d83 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/DurationType$Duration.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_DurationType$Duration__ +#define __gnu_xml_validation_datatype_DurationType$Duration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class DurationType$Duration; + } + } + } + } +} + +class gnu::xml::validation::datatype::DurationType$Duration : public ::java::lang::Object +{ + +public: // actually package-private + DurationType$Duration(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) years; + jint months; + jint days; + jint minutes; + jfloat seconds; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_DurationType$Duration__ diff --git a/libjava/gnu/xml/validation/datatype/DurationType.h b/libjava/gnu/xml/validation/datatype/DurationType.h new file mode 100644 index 00000000000..d6c984de8ac --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/DurationType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_DurationType__ +#define __gnu_xml_validation_datatype_DurationType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class DurationType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::DurationType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + DurationType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_DurationType__ diff --git a/libjava/gnu/xml/validation/datatype/EntitiesType.h b/libjava/gnu/xml/validation/datatype/EntitiesType.h new file mode 100644 index 00000000000..2c1e52343bc --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/EntitiesType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_EntitiesType__ +#define __gnu_xml_validation_datatype_EntitiesType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class EntitiesType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::EntitiesType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + EntitiesType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + jboolean isContextDependent(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_EntitiesType__ diff --git a/libjava/gnu/xml/validation/datatype/EntityType.h b/libjava/gnu/xml/validation/datatype/EntityType.h new file mode 100644 index 00000000000..c10bbfc9587 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/EntityType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_EntityType__ +#define __gnu_xml_validation_datatype_EntityType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class EntityType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::EntityType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + EntityType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + jboolean isContextDependent(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_EntityType__ diff --git a/libjava/gnu/xml/validation/datatype/EnumerationFacet.h b/libjava/gnu/xml/validation/datatype/EnumerationFacet.h new file mode 100644 index 00000000000..c3bcc2b221b --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/EnumerationFacet.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_EnumerationFacet__ +#define __gnu_xml_validation_datatype_EnumerationFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class EnumerationFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::EnumerationFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + EnumerationFacet(::java::lang::String *, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_EnumerationFacet__ diff --git a/libjava/gnu/xml/validation/datatype/Facet.h b/libjava/gnu/xml/validation/datatype/Facet.h new file mode 100644 index 00000000000..76ebe4ceba7 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/Facet.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_Facet__ +#define __gnu_xml_validation_datatype_Facet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class Facet; + } + } + } + } +} + +class gnu::xml::validation::datatype::Facet : public ::java::lang::Object +{ + +public: // actually protected + Facet(jint, ::gnu::xml::validation::datatype::Annotation *); +public: + static const jint LENGTH = 1; + static const jint MIN_LENGTH = 2; + static const jint MAX_LENGTH = 3; + static const jint PATTERN = 4; + static const jint ENUMERATION = 5; + static const jint WHITESPACE = 6; + static const jint MAX_INCLUSIVE = 7; + static const jint MAX_EXCLUSIVE = 8; + static const jint MIN_EXCLUSIVE = 9; + static const jint MIN_INCLUSIVE = 10; + static const jint TOTAL_DIGITS = 11; + static const jint FRACTION_DIGITS = 12; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::gnu::xml::validation::datatype::Annotation * annotation; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_Facet__ diff --git a/libjava/gnu/xml/validation/datatype/FloatType.h b/libjava/gnu/xml/validation/datatype/FloatType.h new file mode 100644 index 00000000000..af22a2f2758 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/FloatType.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_FloatType__ +#define __gnu_xml_validation_datatype_FloatType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class FloatType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::FloatType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + FloatType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::util::Set * SPECIAL; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_FloatType__ diff --git a/libjava/gnu/xml/validation/datatype/FractionDigitsFacet.h b/libjava/gnu/xml/validation/datatype/FractionDigitsFacet.h new file mode 100644 index 00000000000..9ed33c4c9ce --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/FractionDigitsFacet.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_FractionDigitsFacet__ +#define __gnu_xml_validation_datatype_FractionDigitsFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class FractionDigitsFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::FractionDigitsFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + FractionDigitsFacet(jint, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + jint __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_FractionDigitsFacet__ diff --git a/libjava/gnu/xml/validation/datatype/GDayType$GDay.h b/libjava/gnu/xml/validation/datatype/GDayType$GDay.h new file mode 100644 index 00000000000..29128fc9b64 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GDayType$GDay.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GDayType$GDay__ +#define __gnu_xml_validation_datatype_GDayType$GDay__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GDayType$GDay; + } + } + } + } +} + +class gnu::xml::validation::datatype::GDayType$GDay : public ::java::lang::Object +{ + +public: // actually package-private + GDayType$GDay(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) day; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GDayType$GDay__ diff --git a/libjava/gnu/xml/validation/datatype/GDayType.h b/libjava/gnu/xml/validation/datatype/GDayType.h new file mode 100644 index 00000000000..4e1e3c5a23d --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GDayType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GDayType__ +#define __gnu_xml_validation_datatype_GDayType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GDayType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::GDayType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + GDayType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GDayType__ diff --git a/libjava/gnu/xml/validation/datatype/GMonthDayType$GMonthDay.h b/libjava/gnu/xml/validation/datatype/GMonthDayType$GMonthDay.h new file mode 100644 index 00000000000..d3cb5e00719 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GMonthDayType$GMonthDay.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GMonthDayType$GMonthDay__ +#define __gnu_xml_validation_datatype_GMonthDayType$GMonthDay__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GMonthDayType$GMonthDay; + } + } + } + } +} + +class gnu::xml::validation::datatype::GMonthDayType$GMonthDay : public ::java::lang::Object +{ + +public: // actually package-private + GMonthDayType$GMonthDay(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) month; + jint day; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GMonthDayType$GMonthDay__ diff --git a/libjava/gnu/xml/validation/datatype/GMonthDayType.h b/libjava/gnu/xml/validation/datatype/GMonthDayType.h new file mode 100644 index 00000000000..40f7db1cc7d --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GMonthDayType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GMonthDayType__ +#define __gnu_xml_validation_datatype_GMonthDayType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GMonthDayType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::GMonthDayType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + GMonthDayType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GMonthDayType__ diff --git a/libjava/gnu/xml/validation/datatype/GMonthType$GMonth.h b/libjava/gnu/xml/validation/datatype/GMonthType$GMonth.h new file mode 100644 index 00000000000..af79163e115 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GMonthType$GMonth.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GMonthType$GMonth__ +#define __gnu_xml_validation_datatype_GMonthType$GMonth__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GMonthType$GMonth; + } + } + } + } +} + +class gnu::xml::validation::datatype::GMonthType$GMonth : public ::java::lang::Object +{ + +public: // actually package-private + GMonthType$GMonth(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) month; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GMonthType$GMonth__ diff --git a/libjava/gnu/xml/validation/datatype/GMonthType.h b/libjava/gnu/xml/validation/datatype/GMonthType.h new file mode 100644 index 00000000000..cd1e7f9efcc --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GMonthType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GMonthType__ +#define __gnu_xml_validation_datatype_GMonthType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GMonthType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::GMonthType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + GMonthType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GMonthType__ diff --git a/libjava/gnu/xml/validation/datatype/GYearMonthType$GYearMonth.h b/libjava/gnu/xml/validation/datatype/GYearMonthType$GYearMonth.h new file mode 100644 index 00000000000..8af7484d304 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GYearMonthType$GYearMonth.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GYearMonthType$GYearMonth__ +#define __gnu_xml_validation_datatype_GYearMonthType$GYearMonth__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GYearMonthType$GYearMonth; + } + } + } + } +} + +class gnu::xml::validation::datatype::GYearMonthType$GYearMonth : public ::java::lang::Object +{ + +public: // actually package-private + GYearMonthType$GYearMonth(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) year; + jint month; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GYearMonthType$GYearMonth__ diff --git a/libjava/gnu/xml/validation/datatype/GYearMonthType.h b/libjava/gnu/xml/validation/datatype/GYearMonthType.h new file mode 100644 index 00000000000..eb6d4503199 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GYearMonthType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GYearMonthType__ +#define __gnu_xml_validation_datatype_GYearMonthType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GYearMonthType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::GYearMonthType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + GYearMonthType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GYearMonthType__ diff --git a/libjava/gnu/xml/validation/datatype/GYearType$GYear.h b/libjava/gnu/xml/validation/datatype/GYearType$GYear.h new file mode 100644 index 00000000000..1cadf8bccae --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GYearType$GYear.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GYearType$GYear__ +#define __gnu_xml_validation_datatype_GYearType$GYear__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GYearType$GYear; + } + } + } + } +} + +class gnu::xml::validation::datatype::GYearType$GYear : public ::java::lang::Object +{ + +public: // actually package-private + GYearType$GYear(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) year; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GYearType$GYear__ diff --git a/libjava/gnu/xml/validation/datatype/GYearType.h b/libjava/gnu/xml/validation/datatype/GYearType.h new file mode 100644 index 00000000000..b5c4a768454 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/GYearType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_GYearType__ +#define __gnu_xml_validation_datatype_GYearType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class GYearType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::GYearType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + GYearType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_GYearType__ diff --git a/libjava/gnu/xml/validation/datatype/HexBinaryType.h b/libjava/gnu/xml/validation/datatype/HexBinaryType.h new file mode 100644 index 00000000000..da717bec838 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/HexBinaryType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_HexBinaryType__ +#define __gnu_xml_validation_datatype_HexBinaryType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class HexBinaryType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::HexBinaryType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + HexBinaryType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static ::java::lang::String * HEX; + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_HexBinaryType__ diff --git a/libjava/gnu/xml/validation/datatype/IDRefType.h b/libjava/gnu/xml/validation/datatype/IDRefType.h new file mode 100644 index 00000000000..f61451f480f --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/IDRefType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_IDRefType__ +#define __gnu_xml_validation_datatype_IDRefType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class IDRefType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::IDRefType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + IDRefType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + jint getIdType(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_IDRefType__ diff --git a/libjava/gnu/xml/validation/datatype/IDRefsType.h b/libjava/gnu/xml/validation/datatype/IDRefsType.h new file mode 100644 index 00000000000..861602b3069 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/IDRefsType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_IDRefsType__ +#define __gnu_xml_validation_datatype_IDRefsType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class IDRefsType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::IDRefsType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + IDRefsType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + jint getIdType(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_IDRefsType__ diff --git a/libjava/gnu/xml/validation/datatype/IDType.h b/libjava/gnu/xml/validation/datatype/IDType.h new file mode 100644 index 00000000000..34184818c07 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/IDType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_IDType__ +#define __gnu_xml_validation_datatype_IDType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class IDType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::IDType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + IDType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + jint getIdType(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_IDType__ diff --git a/libjava/gnu/xml/validation/datatype/IntType.h b/libjava/gnu/xml/validation/datatype/IntType.h new file mode 100644 index 00000000000..bb1567f276a --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/IntType.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_IntType__ +#define __gnu_xml_validation_datatype_IntType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class IntType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::IntType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + IntType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static ::java::lang::String * MIN_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_IntType__ diff --git a/libjava/gnu/xml/validation/datatype/IntegerType.h b/libjava/gnu/xml/validation/datatype/IntegerType.h new file mode 100644 index 00000000000..04bb2748609 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/IntegerType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_IntegerType__ +#define __gnu_xml_validation_datatype_IntegerType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class IntegerType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::IntegerType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + IntegerType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_IntegerType__ diff --git a/libjava/gnu/xml/validation/datatype/LanguageType.h b/libjava/gnu/xml/validation/datatype/LanguageType.h new file mode 100644 index 00000000000..9c06c96a4db --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/LanguageType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_LanguageType__ +#define __gnu_xml_validation_datatype_LanguageType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class LanguageType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::LanguageType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + LanguageType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::util::regex::Pattern * PATTERN; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_LanguageType__ diff --git a/libjava/gnu/xml/validation/datatype/LengthFacet.h b/libjava/gnu/xml/validation/datatype/LengthFacet.h new file mode 100644 index 00000000000..5d97f0d9d49 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/LengthFacet.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_LengthFacet__ +#define __gnu_xml_validation_datatype_LengthFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class LengthFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::LengthFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + LengthFacet(jint, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + jint __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_LengthFacet__ diff --git a/libjava/gnu/xml/validation/datatype/ListSimpleType.h b/libjava/gnu/xml/validation/datatype/ListSimpleType.h new file mode 100644 index 00000000000..b8add0fb397 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/ListSimpleType.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_ListSimpleType__ +#define __gnu_xml_validation_datatype_ListSimpleType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class ListSimpleType; + class SimpleType; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::ListSimpleType : public ::gnu::xml::validation::datatype::SimpleType +{ + +public: + ListSimpleType(::javax::xml::namespace::QName *, ::java::util::Set *, jint, ::gnu::xml::validation::datatype::SimpleType *, ::gnu::xml::validation::datatype::Annotation *, ::gnu::xml::validation::datatype::SimpleType *); + virtual void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::gnu::xml::validation::datatype::SimpleType * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::SimpleType)))) itemType; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_ListSimpleType__ diff --git a/libjava/gnu/xml/validation/datatype/LongType.h b/libjava/gnu/xml/validation/datatype/LongType.h new file mode 100644 index 00000000000..34a4c951283 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/LongType.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_LongType__ +#define __gnu_xml_validation_datatype_LongType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class LongType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::LongType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + LongType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static ::java::lang::String * MIN_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_LongType__ diff --git a/libjava/gnu/xml/validation/datatype/MaxExclusiveFacet.h b/libjava/gnu/xml/validation/datatype/MaxExclusiveFacet.h new file mode 100644 index 00000000000..633547259be --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/MaxExclusiveFacet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_MaxExclusiveFacet__ +#define __gnu_xml_validation_datatype_MaxExclusiveFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class MaxExclusiveFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::MaxExclusiveFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + MaxExclusiveFacet(::java::lang::Object *, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); +public: // actually package-private + jboolean matches(::java::lang::Object *); +public: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_MaxExclusiveFacet__ diff --git a/libjava/gnu/xml/validation/datatype/MaxInclusiveFacet.h b/libjava/gnu/xml/validation/datatype/MaxInclusiveFacet.h new file mode 100644 index 00000000000..f167e922512 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/MaxInclusiveFacet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_MaxInclusiveFacet__ +#define __gnu_xml_validation_datatype_MaxInclusiveFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class MaxInclusiveFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::MaxInclusiveFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + MaxInclusiveFacet(::java::lang::Object *, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); +public: // actually package-private + jboolean matches(::java::lang::Object *); +public: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_MaxInclusiveFacet__ diff --git a/libjava/gnu/xml/validation/datatype/MaxLengthFacet.h b/libjava/gnu/xml/validation/datatype/MaxLengthFacet.h new file mode 100644 index 00000000000..c6e35cd22ba --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/MaxLengthFacet.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_MaxLengthFacet__ +#define __gnu_xml_validation_datatype_MaxLengthFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class MaxLengthFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::MaxLengthFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + MaxLengthFacet(jint, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + jint __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_MaxLengthFacet__ diff --git a/libjava/gnu/xml/validation/datatype/MinExclusiveFacet.h b/libjava/gnu/xml/validation/datatype/MinExclusiveFacet.h new file mode 100644 index 00000000000..5e364675927 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/MinExclusiveFacet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_MinExclusiveFacet__ +#define __gnu_xml_validation_datatype_MinExclusiveFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class MinExclusiveFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::MinExclusiveFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + MinExclusiveFacet(::java::lang::Object *, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); +public: // actually package-private + jboolean matches(::java::lang::Object *); +public: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_MinExclusiveFacet__ diff --git a/libjava/gnu/xml/validation/datatype/MinInclusiveFacet.h b/libjava/gnu/xml/validation/datatype/MinInclusiveFacet.h new file mode 100644 index 00000000000..65b614b31f8 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/MinInclusiveFacet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_MinInclusiveFacet__ +#define __gnu_xml_validation_datatype_MinInclusiveFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class MinInclusiveFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::MinInclusiveFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + MinInclusiveFacet(::java::lang::Object *, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); +public: // actually package-private + jboolean matches(::java::lang::Object *); +public: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_MinInclusiveFacet__ diff --git a/libjava/gnu/xml/validation/datatype/MinLengthFacet.h b/libjava/gnu/xml/validation/datatype/MinLengthFacet.h new file mode 100644 index 00000000000..57419a3df66 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/MinLengthFacet.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_MinLengthFacet__ +#define __gnu_xml_validation_datatype_MinLengthFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class MinLengthFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::MinLengthFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + MinLengthFacet(jint, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + jint __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_MinLengthFacet__ diff --git a/libjava/gnu/xml/validation/datatype/NCNameType.h b/libjava/gnu/xml/validation/datatype/NCNameType.h new file mode 100644 index 00000000000..61859f0dab1 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NCNameType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NCNameType__ +#define __gnu_xml_validation_datatype_NCNameType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NCNameType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NCNameType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NCNameType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NCNameType__ diff --git a/libjava/gnu/xml/validation/datatype/NMTokenType.h b/libjava/gnu/xml/validation/datatype/NMTokenType.h new file mode 100644 index 00000000000..e6066e45496 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NMTokenType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NMTokenType__ +#define __gnu_xml_validation_datatype_NMTokenType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NMTokenType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NMTokenType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NMTokenType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NMTokenType__ diff --git a/libjava/gnu/xml/validation/datatype/NMTokensType.h b/libjava/gnu/xml/validation/datatype/NMTokensType.h new file mode 100644 index 00000000000..39b376b5850 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NMTokensType.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NMTokensType__ +#define __gnu_xml_validation_datatype_NMTokensType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NMTokensType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NMTokensType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NMTokensType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +private: + void checkNmtoken(::java::lang::String *, jint); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NMTokensType__ diff --git a/libjava/gnu/xml/validation/datatype/NameType.h b/libjava/gnu/xml/validation/datatype/NameType.h new file mode 100644 index 00000000000..b3a0ccfedb1 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NameType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NameType__ +#define __gnu_xml_validation_datatype_NameType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NameType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NameType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NameType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NameType__ diff --git a/libjava/gnu/xml/validation/datatype/NegativeIntegerType.h b/libjava/gnu/xml/validation/datatype/NegativeIntegerType.h new file mode 100644 index 00000000000..9b780494db9 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NegativeIntegerType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NegativeIntegerType__ +#define __gnu_xml_validation_datatype_NegativeIntegerType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NegativeIntegerType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NegativeIntegerType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NegativeIntegerType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NegativeIntegerType__ diff --git a/libjava/gnu/xml/validation/datatype/NonNegativeIntegerType.h b/libjava/gnu/xml/validation/datatype/NonNegativeIntegerType.h new file mode 100644 index 00000000000..06f5d5e110c --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NonNegativeIntegerType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NonNegativeIntegerType__ +#define __gnu_xml_validation_datatype_NonNegativeIntegerType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NonNegativeIntegerType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NonNegativeIntegerType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NonNegativeIntegerType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NonNegativeIntegerType__ diff --git a/libjava/gnu/xml/validation/datatype/NonPositiveIntegerType.h b/libjava/gnu/xml/validation/datatype/NonPositiveIntegerType.h new file mode 100644 index 00000000000..ca41fc3e94b --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NonPositiveIntegerType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NonPositiveIntegerType__ +#define __gnu_xml_validation_datatype_NonPositiveIntegerType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NonPositiveIntegerType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NonPositiveIntegerType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NonPositiveIntegerType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NonPositiveIntegerType__ diff --git a/libjava/gnu/xml/validation/datatype/NormalizedStringType.h b/libjava/gnu/xml/validation/datatype/NormalizedStringType.h new file mode 100644 index 00000000000..d2a41c1cb3c --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NormalizedStringType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NormalizedStringType__ +#define __gnu_xml_validation_datatype_NormalizedStringType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NormalizedStringType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NormalizedStringType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NormalizedStringType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NormalizedStringType__ diff --git a/libjava/gnu/xml/validation/datatype/NotationType.h b/libjava/gnu/xml/validation/datatype/NotationType.h new file mode 100644 index 00000000000..21c597479d3 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/NotationType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_NotationType__ +#define __gnu_xml_validation_datatype_NotationType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class NotationType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::NotationType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + NotationType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + jboolean isContextDependent(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_NotationType__ diff --git a/libjava/gnu/xml/validation/datatype/PatternFacet.h b/libjava/gnu/xml/validation/datatype/PatternFacet.h new file mode 100644 index 00000000000..78ea57b1593 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/PatternFacet.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_PatternFacet__ +#define __gnu_xml_validation_datatype_PatternFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class PatternFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::PatternFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + PatternFacet(::java::util::regex::Pattern *, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + ::java::util::regex::Pattern * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_PatternFacet__ diff --git a/libjava/gnu/xml/validation/datatype/PositiveIntegerType.h b/libjava/gnu/xml/validation/datatype/PositiveIntegerType.h new file mode 100644 index 00000000000..217d0ef02ad --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/PositiveIntegerType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_PositiveIntegerType__ +#define __gnu_xml_validation_datatype_PositiveIntegerType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class PositiveIntegerType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::PositiveIntegerType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + PositiveIntegerType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_PositiveIntegerType__ diff --git a/libjava/gnu/xml/validation/datatype/QNameType.h b/libjava/gnu/xml/validation/datatype/QNameType.h new file mode 100644 index 00000000000..cba07a326e4 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/QNameType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_QNameType__ +#define __gnu_xml_validation_datatype_QNameType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class QNameType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::QNameType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + QNameType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + jboolean isContextDependent(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_QNameType__ diff --git a/libjava/gnu/xml/validation/datatype/ShortType.h b/libjava/gnu/xml/validation/datatype/ShortType.h new file mode 100644 index 00000000000..9c12b820ef4 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/ShortType.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_ShortType__ +#define __gnu_xml_validation_datatype_ShortType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class ShortType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::ShortType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + ShortType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static ::java::lang::String * MIN_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_ShortType__ diff --git a/libjava/gnu/xml/validation/datatype/SimpleType.h b/libjava/gnu/xml/validation/datatype/SimpleType.h new file mode 100644 index 00000000000..fcdaa098c9f --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/SimpleType.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_SimpleType__ +#define __gnu_xml_validation_datatype_SimpleType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class SimpleType; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeStreamingValidator; + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::SimpleType : public ::gnu::xml::validation::datatype::Type +{ + +public: + SimpleType(::javax::xml::namespace::QName *, jint, ::java::util::Set *, jint, ::gnu::xml::validation::datatype::SimpleType *, ::gnu::xml::validation::datatype::Annotation *); + virtual jboolean isValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + virtual void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +private: + static jint countDigits(::java::lang::String *, jboolean); +public: + virtual ::org::relaxng::datatype::DatatypeStreamingValidator * createStreamingValidator(::org::relaxng::datatype::ValidationContext *); + virtual ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + virtual jboolean sameValue(::java::lang::Object *, ::java::lang::Object *); + virtual jint valueHashCode(::java::lang::Object *); + virtual jint getIdType(); + virtual jboolean isContextDependent(); + static const jint ANY = 0; + static const jint ATOMIC = 1; + static const jint LIST = 2; + static const jint UNION = 3; + static const jint ID_TYPE_NULL = 0; + static const jint ID_TYPE_ID = 1; + static const jint ID_TYPE_IDREF = 2; + static const jint ID_TYPE_IDREFS = 3; + jint __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Type)))) variety; + ::java::util::Set * facets; + jint fundamentalFacets; + ::gnu::xml::validation::datatype::SimpleType * baseType; + ::gnu::xml::validation::datatype::Annotation * annotation; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_SimpleType__ diff --git a/libjava/gnu/xml/validation/datatype/StringType.h b/libjava/gnu/xml/validation/datatype/StringType.h new file mode 100644 index 00000000000..1626166985e --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/StringType.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_StringType__ +#define __gnu_xml_validation_datatype_StringType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class StringType; + } + } + } + } +} + +class gnu::xml::validation::datatype::StringType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + StringType(); +public: + JArray< jint > * getConstrainingFacets(); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_StringType__ diff --git a/libjava/gnu/xml/validation/datatype/TimeType$Time.h b/libjava/gnu/xml/validation/datatype/TimeType$Time.h new file mode 100644 index 00000000000..f43d75cf88f --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/TimeType$Time.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_TimeType$Time__ +#define __gnu_xml_validation_datatype_TimeType$Time__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class TimeType$Time; + } + } + } + } +} + +class gnu::xml::validation::datatype::TimeType$Time : public ::java::lang::Object +{ + +public: // actually package-private + TimeType$Time(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) minutes; + jfloat seconds; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_TimeType$Time__ diff --git a/libjava/gnu/xml/validation/datatype/TimeType.h b/libjava/gnu/xml/validation/datatype/TimeType.h new file mode 100644 index 00000000000..8e5f36593f2 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/TimeType.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_TimeType__ +#define __gnu_xml_validation_datatype_TimeType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class TimeType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::TimeType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + TimeType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_TimeType__ diff --git a/libjava/gnu/xml/validation/datatype/TokenType.h b/libjava/gnu/xml/validation/datatype/TokenType.h new file mode 100644 index 00000000000..087611729c5 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/TokenType.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_TokenType__ +#define __gnu_xml_validation_datatype_TokenType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class TokenType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::TokenType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + TokenType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_TokenType__ diff --git a/libjava/gnu/xml/validation/datatype/TotalDigitsFacet.h b/libjava/gnu/xml/validation/datatype/TotalDigitsFacet.h new file mode 100644 index 00000000000..4335a248f78 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/TotalDigitsFacet.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_TotalDigitsFacet__ +#define __gnu_xml_validation_datatype_TotalDigitsFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class TotalDigitsFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::TotalDigitsFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + TotalDigitsFacet(jint, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + jint __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_TotalDigitsFacet__ diff --git a/libjava/gnu/xml/validation/datatype/Type.h b/libjava/gnu/xml/validation/datatype/Type.h new file mode 100644 index 00000000000..17979387cc5 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/Type.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_Type__ +#define __gnu_xml_validation_datatype_Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Type; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } +} + +class gnu::xml::validation::datatype::Type : public ::java::lang::Object +{ + +public: + Type(::javax::xml::namespace::QName *); + static ::gnu::xml::validation::datatype::Type * ANY_TYPE; + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_Type__ diff --git a/libjava/gnu/xml/validation/datatype/TypeBuilder.h b/libjava/gnu/xml/validation/datatype/TypeBuilder.h new file mode 100644 index 00000000000..05f66faaa1a --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/TypeBuilder.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_TypeBuilder__ +#define __gnu_xml_validation_datatype_TypeBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class EnumerationFacet; + class FractionDigitsFacet; + class LengthFacet; + class MaxExclusiveFacet; + class MaxInclusiveFacet; + class MaxLengthFacet; + class MinExclusiveFacet; + class MinInclusiveFacet; + class MinLengthFacet; + class PatternFacet; + class SimpleType; + class TotalDigitsFacet; + class TypeBuilder; + class WhiteSpaceFacet; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::TypeBuilder : public ::java::lang::Object +{ + +public: // actually package-private + TypeBuilder(::gnu::xml::validation::datatype::SimpleType *); +public: + virtual void addParameter(::java::lang::String *, ::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + virtual ::gnu::xml::validation::datatype::LengthFacet * parseLengthFacet(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::MinLengthFacet * parseMinLengthFacet(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::MaxLengthFacet * parseMaxLengthFacet(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::PatternFacet * parsePatternFacet(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::EnumerationFacet * parseEnumerationFacet(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::WhiteSpaceFacet * parseWhiteSpaceFacet(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::MaxInclusiveFacet * parseMaxInclusiveFacet(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + virtual ::gnu::xml::validation::datatype::MaxExclusiveFacet * parseMaxExclusiveFacet(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + virtual ::gnu::xml::validation::datatype::MinExclusiveFacet * parseMinExclusiveFacet(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + virtual ::gnu::xml::validation::datatype::MinInclusiveFacet * parseMinInclusiveFacet(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + virtual ::gnu::xml::validation::datatype::TotalDigitsFacet * parseTotalDigitsFacet(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::FractionDigitsFacet * parseFractionDigitsFacet(::java::lang::String *); +public: + virtual ::org::relaxng::datatype::Datatype * createDatatype(); +public: // actually package-private + ::gnu::xml::validation::datatype::SimpleType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_TypeBuilder__ diff --git a/libjava/gnu/xml/validation/datatype/TypeLibrary.h b/libjava/gnu/xml/validation/datatype/TypeLibrary.h new file mode 100644 index 00000000000..83aaa463324 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/TypeLibrary.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_TypeLibrary__ +#define __gnu_xml_validation_datatype_TypeLibrary__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class SimpleType; + class TypeLibrary; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class DatatypeBuilder; + } + } + } +} + +class gnu::xml::validation::datatype::TypeLibrary : public ::java::lang::Object +{ + +public: + TypeLibrary(); + virtual ::org::relaxng::datatype::DatatypeBuilder * createDatatypeBuilder(::java::lang::String *); + virtual ::org::relaxng::datatype::Datatype * createDatatype(::java::lang::String *); + static ::gnu::xml::validation::datatype::SimpleType * ANY_SIMPLE_TYPE; + static ::gnu::xml::validation::datatype::SimpleType * STRING; + static ::gnu::xml::validation::datatype::SimpleType * BOOLEAN; + static ::gnu::xml::validation::datatype::SimpleType * DECIMAL; + static ::gnu::xml::validation::datatype::SimpleType * FLOAT; + static ::gnu::xml::validation::datatype::SimpleType * DOUBLE; + static ::gnu::xml::validation::datatype::SimpleType * DURATION; + static ::gnu::xml::validation::datatype::SimpleType * DATE_TIME; + static ::gnu::xml::validation::datatype::SimpleType * TIME; + static ::gnu::xml::validation::datatype::SimpleType * DATE; + static ::gnu::xml::validation::datatype::SimpleType * G_YEAR_MONTH; + static ::gnu::xml::validation::datatype::SimpleType * G_YEAR; + static ::gnu::xml::validation::datatype::SimpleType * G_MONTH_DAY; + static ::gnu::xml::validation::datatype::SimpleType * G_DAY; + static ::gnu::xml::validation::datatype::SimpleType * G_MONTH; + static ::gnu::xml::validation::datatype::SimpleType * HEX_BINARY; + static ::gnu::xml::validation::datatype::SimpleType * BASE64_BINARY; + static ::gnu::xml::validation::datatype::SimpleType * ANY_URI; + static ::gnu::xml::validation::datatype::SimpleType * QNAME; + static ::gnu::xml::validation::datatype::SimpleType * NOTATION; + static ::gnu::xml::validation::datatype::SimpleType * NORMALIZED_STRING; + static ::gnu::xml::validation::datatype::SimpleType * TOKEN; + static ::gnu::xml::validation::datatype::SimpleType * LANGUAGE; + static ::gnu::xml::validation::datatype::SimpleType * NMTOKEN; + static ::gnu::xml::validation::datatype::SimpleType * NMTOKENS; + static ::gnu::xml::validation::datatype::SimpleType * NAME; + static ::gnu::xml::validation::datatype::SimpleType * NCNAME; + static ::gnu::xml::validation::datatype::SimpleType * ID; + static ::gnu::xml::validation::datatype::SimpleType * IDREF; + static ::gnu::xml::validation::datatype::SimpleType * IDREFS; + static ::gnu::xml::validation::datatype::SimpleType * ENTITY; + static ::gnu::xml::validation::datatype::SimpleType * ENTITIES; + static ::gnu::xml::validation::datatype::SimpleType * INTEGER; + static ::gnu::xml::validation::datatype::SimpleType * NON_POSITIVE_INTEGER; + static ::gnu::xml::validation::datatype::SimpleType * NEGATIVE_INTEGER; + static ::gnu::xml::validation::datatype::SimpleType * LONG; + static ::gnu::xml::validation::datatype::SimpleType * INT; + static ::gnu::xml::validation::datatype::SimpleType * SHORT; + static ::gnu::xml::validation::datatype::SimpleType * BYTE; + static ::gnu::xml::validation::datatype::SimpleType * NON_NEGATIVE_INTEGER; + static ::gnu::xml::validation::datatype::SimpleType * UNSIGNED_LONG; + static ::gnu::xml::validation::datatype::SimpleType * UNSIGNED_INT; + static ::gnu::xml::validation::datatype::SimpleType * UNSIGNED_SHORT; + static ::gnu::xml::validation::datatype::SimpleType * UNSIGNED_BYTE; + static ::gnu::xml::validation::datatype::SimpleType * POSITIVE_INTEGER; +private: + static ::java::util::Map * byName; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_TypeLibrary__ diff --git a/libjava/gnu/xml/validation/datatype/TypeLibraryFactory.h b/libjava/gnu/xml/validation/datatype/TypeLibraryFactory.h new file mode 100644 index 00000000000..baeba0030e7 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/TypeLibraryFactory.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_TypeLibraryFactory__ +#define __gnu_xml_validation_datatype_TypeLibraryFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class TypeLibraryFactory; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeLibrary; + } + } + } +} + +class gnu::xml::validation::datatype::TypeLibraryFactory : public ::java::lang::Object +{ + +public: + TypeLibraryFactory(); + virtual ::org::relaxng::datatype::DatatypeLibrary * createDatatypeLibrary(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_TypeLibraryFactory__ diff --git a/libjava/gnu/xml/validation/datatype/UnionSimpleType.h b/libjava/gnu/xml/validation/datatype/UnionSimpleType.h new file mode 100644 index 00000000000..b0b27daaa30 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/UnionSimpleType.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_UnionSimpleType__ +#define __gnu_xml_validation_datatype_UnionSimpleType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class SimpleType; + class UnionSimpleType; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::UnionSimpleType : public ::gnu::xml::validation::datatype::SimpleType +{ + +public: + UnionSimpleType(::javax::xml::namespace::QName *, ::java::util::Set *, jint, ::gnu::xml::validation::datatype::SimpleType *, ::gnu::xml::validation::datatype::Annotation *, ::java::util::List *); + virtual void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::SimpleType)))) memberTypes; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_UnionSimpleType__ diff --git a/libjava/gnu/xml/validation/datatype/UnsignedByteType.h b/libjava/gnu/xml/validation/datatype/UnsignedByteType.h new file mode 100644 index 00000000000..7eb207f5502 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/UnsignedByteType.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_UnsignedByteType__ +#define __gnu_xml_validation_datatype_UnsignedByteType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class UnsignedByteType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::UnsignedByteType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + UnsignedByteType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_UnsignedByteType__ diff --git a/libjava/gnu/xml/validation/datatype/UnsignedIntType.h b/libjava/gnu/xml/validation/datatype/UnsignedIntType.h new file mode 100644 index 00000000000..f338b56ab11 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/UnsignedIntType.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_UnsignedIntType__ +#define __gnu_xml_validation_datatype_UnsignedIntType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class UnsignedIntType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::UnsignedIntType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + UnsignedIntType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_UnsignedIntType__ diff --git a/libjava/gnu/xml/validation/datatype/UnsignedLongType.h b/libjava/gnu/xml/validation/datatype/UnsignedLongType.h new file mode 100644 index 00000000000..bb0c947a433 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/UnsignedLongType.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_UnsignedLongType__ +#define __gnu_xml_validation_datatype_UnsignedLongType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class UnsignedLongType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::UnsignedLongType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + UnsignedLongType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_UnsignedLongType__ diff --git a/libjava/gnu/xml/validation/datatype/UnsignedShortType.h b/libjava/gnu/xml/validation/datatype/UnsignedShortType.h new file mode 100644 index 00000000000..99eb7cc2946 --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/UnsignedShortType.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_UnsignedShortType__ +#define __gnu_xml_validation_datatype_UnsignedShortType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class UnsignedShortType; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class gnu::xml::validation::datatype::UnsignedShortType : public ::gnu::xml::validation::datatype::AtomicSimpleType +{ + +public: // actually package-private + UnsignedShortType(); +public: + JArray< jint > * getConstrainingFacets(); + void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); +public: // actually package-private + static JArray< jint > * CONSTRAINING_FACETS; + static ::java::lang::String * MAX_VALUE; + static jint LENGTH; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_UnsignedShortType__ diff --git a/libjava/gnu/xml/validation/datatype/WhiteSpaceFacet.h b/libjava/gnu/xml/validation/datatype/WhiteSpaceFacet.h new file mode 100644 index 00000000000..3cc38a6361c --- /dev/null +++ b/libjava/gnu/xml/validation/datatype/WhiteSpaceFacet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_datatype_WhiteSpaceFacet__ +#define __gnu_xml_validation_datatype_WhiteSpaceFacet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class WhiteSpaceFacet; + } + } + } + } +} + +class gnu::xml::validation::datatype::WhiteSpaceFacet : public ::gnu::xml::validation::datatype::Facet +{ + +public: + WhiteSpaceFacet(jint, jboolean, ::gnu::xml::validation::datatype::Annotation *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + static const jint PRESERVE = 0; + static const jint REPLACE = 1; + static const jint COLLAPSE = 2; + jint __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value; + jboolean fixed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_datatype_WhiteSpaceFacet__ diff --git a/libjava/gnu/xml/validation/relaxng/AnyNameNameClass.h b/libjava/gnu/xml/validation/relaxng/AnyNameNameClass.h new file mode 100644 index 00000000000..312a48fcdc8 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/AnyNameNameClass.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_AnyNameNameClass__ +#define __gnu_xml_validation_relaxng_AnyNameNameClass__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class AnyNameNameClass; + class NameClass; + } + } + } + } +} + +class gnu::xml::validation::relaxng::AnyNameNameClass : public ::gnu::xml::validation::relaxng::NameClass +{ + +public: // actually package-private + AnyNameNameClass(); + virtual jboolean matchesName(::java::lang::String *, ::java::lang::String *); + ::gnu::xml::validation::relaxng::NameClass * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::NameClass)))) exceptNameClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_AnyNameNameClass__ diff --git a/libjava/gnu/xml/validation/relaxng/AttributePattern.h b/libjava/gnu/xml/validation/relaxng/AttributePattern.h new file mode 100644 index 00000000000..42b38013a3e --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/AttributePattern.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_AttributePattern__ +#define __gnu_xml_validation_relaxng_AttributePattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class AttributePattern; + class NameClass; + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::AttributePattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + AttributePattern(); + ::gnu::xml::validation::relaxng::NameClass * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) nameClass; + ::gnu::xml::validation::relaxng::Pattern * pattern; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_AttributePattern__ diff --git a/libjava/gnu/xml/validation/relaxng/ChoiceNameClass.h b/libjava/gnu/xml/validation/relaxng/ChoiceNameClass.h new file mode 100644 index 00000000000..dc827563106 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/ChoiceNameClass.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_ChoiceNameClass__ +#define __gnu_xml_validation_relaxng_ChoiceNameClass__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class ChoiceNameClass; + class NameClass; + } + } + } + } +} + +class gnu::xml::validation::relaxng::ChoiceNameClass : public ::gnu::xml::validation::relaxng::NameClass +{ + +public: // actually package-private + ChoiceNameClass(); + virtual jboolean matchesName(::java::lang::String *, ::java::lang::String *); + ::gnu::xml::validation::relaxng::NameClass * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::NameClass)))) name1; + ::gnu::xml::validation::relaxng::NameClass * name2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_ChoiceNameClass__ diff --git a/libjava/gnu/xml/validation/relaxng/ChoicePattern.h b/libjava/gnu/xml/validation/relaxng/ChoicePattern.h new file mode 100644 index 00000000000..85c4a2f7981 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/ChoicePattern.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_ChoicePattern__ +#define __gnu_xml_validation_relaxng_ChoicePattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class ChoicePattern; + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::ChoicePattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + ChoicePattern(); + ::gnu::xml::validation::relaxng::Pattern * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) pattern1; + ::gnu::xml::validation::relaxng::Pattern * pattern2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_ChoicePattern__ diff --git a/libjava/gnu/xml/validation/relaxng/DataPattern.h b/libjava/gnu/xml/validation/relaxng/DataPattern.h new file mode 100644 index 00000000000..00bb5b55285 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/DataPattern.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_DataPattern__ +#define __gnu_xml_validation_relaxng_DataPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class DataPattern; + class Pattern; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class DatatypeLibrary; + } + } + } +} + +class gnu::xml::validation::relaxng::DataPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + DataPattern(); + ::org::relaxng::datatype::Datatype * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) type; + ::org::relaxng::datatype::DatatypeLibrary * datatypeLibrary; + ::java::util::List * params; + ::gnu::xml::validation::relaxng::Pattern * exceptPattern; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_DataPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/Define.h b/libjava/gnu/xml/validation/relaxng/Define.h new file mode 100644 index 00000000000..85fa679014b --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/Define.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_Define__ +#define __gnu_xml_validation_relaxng_Define__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class Define; + class ElementPattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::Define : public ::java::lang::Object +{ + +public: // actually package-private + Define(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::gnu::xml::validation::relaxng::ElementPattern * element; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_Define__ diff --git a/libjava/gnu/xml/validation/relaxng/ElementPattern.h b/libjava/gnu/xml/validation/relaxng/ElementPattern.h new file mode 100644 index 00000000000..844132ff1c4 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/ElementPattern.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_ElementPattern__ +#define __gnu_xml_validation_relaxng_ElementPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class ElementPattern; + class NameClass; + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::ElementPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + ElementPattern(); + ::gnu::xml::validation::relaxng::NameClass * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) nameClass; + ::gnu::xml::validation::relaxng::Pattern * pattern; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_ElementPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/EmptyPattern.h b/libjava/gnu/xml/validation/relaxng/EmptyPattern.h new file mode 100644 index 00000000000..ecd499be1da --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/EmptyPattern.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_EmptyPattern__ +#define __gnu_xml_validation_relaxng_EmptyPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class EmptyPattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::EmptyPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + EmptyPattern(); + static ::gnu::xml::validation::relaxng::EmptyPattern * INSTANCE; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_EmptyPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/FullSyntaxBuilder.h b/libjava/gnu/xml/validation/relaxng/FullSyntaxBuilder.h new file mode 100644 index 00000000000..bf53fba0542 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/FullSyntaxBuilder.h @@ -0,0 +1,132 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_FullSyntaxBuilder__ +#define __gnu_xml_validation_relaxng_FullSyntaxBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class AnyNameNameClass; + class AttributePattern; + class ChoiceNameClass; + class ChoicePattern; + class DataPattern; + class Define; + class ElementPattern; + class EmptyPattern; + class FullSyntaxBuilder; + class Grammar; + class GroupPattern; + class InterleavePattern; + class ListPattern; + class NSNameNameClass; + class NameClass; + class NameNameClass; + class NotAllowedPattern; + class OneOrMorePattern; + class Param; + class Pattern; + class RefPattern; + class TextPattern; + class ValuePattern; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeLibrary; + } + } + namespace w3c + { + namespace dom + { + class Document; + class Element; + class Node; + } + } + } +} + +class gnu::xml::validation::relaxng::FullSyntaxBuilder : public ::java::lang::Object +{ + +public: // actually package-private + FullSyntaxBuilder(); + virtual ::gnu::xml::validation::relaxng::Grammar * parse(::org::w3c::dom::Document *); +private: + void getDefines(::java::util::Set *, ::org::w3c::dom::Element *, ::org::w3c::dom::Element *, jboolean); + void getElements(::java::util::Set *, ::org::w3c::dom::Element *, ::org::w3c::dom::Element *); + void expandRefs(::java::util::Set *, ::org::w3c::dom::Element *); + void forbidRefs(::org::w3c::dom::Element *, ::java::lang::String *); + void transform(::org::w3c::dom::Node *); + void transformGrammar(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + void handleRefs(::org::w3c::dom::Node *, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + ::java::lang::String * createRefName(); + void transform2(::org::w3c::dom::Node *); + static jboolean isWhitespace(::java::lang::String *); + static ::java::lang::String * escapeURL(::java::lang::String *); + static ::org::w3c::dom::Element * resolve(::java::lang::String *); + ::java::util::List * getComponents(::org::w3c::dom::Node *); + static void transformToOneChildElement(::org::w3c::dom::Node *, ::java::lang::String *); + static ::org::w3c::dom::Element * getFirstChildElement(::org::w3c::dom::Node *); + static ::org::w3c::dom::Element * getNextSiblingElement(::org::w3c::dom::Node *); + static void forbidDescendants(::org::w3c::dom::Node *, ::java::util::Set *); + static jboolean isDescendantOfFirstChildOfAttribute(::org::w3c::dom::Node *); + static void combineNodes(::org::w3c::dom::Node *, ::java::lang::String *, ::java::lang::String *, ::java::util::List *); +public: // actually package-private + virtual ::gnu::xml::validation::relaxng::Grammar * parseGrammar(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::Define * parseDefine(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::Pattern * parseTop(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::Pattern * parsePattern(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::Pattern * parseNonEmptyPattern(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::ElementPattern * parseElement(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::NotAllowedPattern * parseNotAllowed(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::EmptyPattern * parseEmpty(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::TextPattern * parseText(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::DataPattern * parseData(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::Param * parseParam(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::ValuePattern * parseValue(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::ListPattern * parseList(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::AttributePattern * parseAttribute(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::RefPattern * parseRef(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::OneOrMorePattern * parseOneOrMore(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::ChoicePattern * parseChoice(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::GroupPattern * parseGroup(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::InterleavePattern * parseInterleave(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::NameClass * parseNameClass(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::AnyNameNameClass * parseAnyName(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::NameNameClass * parseName(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::NSNameNameClass * parseNsName(::org::w3c::dom::Element *); + virtual ::gnu::xml::validation::relaxng::ChoiceNameClass * parseChoiceNameClass(::org::w3c::dom::Element *); + virtual void checkName(::org::w3c::dom::Element *, ::java::lang::String *); + virtual ::org::relaxng::datatype::DatatypeLibrary * getDatatypeLibrary(::java::lang::String *); + static ::java::util::Map * VOCABULARY; + static ::java::util::Set * STRIPPED_ATTRIBUTES; + static ::java::util::Set * PATTERN_ELEMENTS; +private: + ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) urls; + jint refCount; + ::java::util::Map * datatypeLibraries; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_FullSyntaxBuilder__ diff --git a/libjava/gnu/xml/validation/relaxng/Grammar.h b/libjava/gnu/xml/validation/relaxng/Grammar.h new file mode 100644 index 00000000000..a813efcc8a3 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/Grammar.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_Grammar__ +#define __gnu_xml_validation_relaxng_Grammar__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class Grammar; + class Pattern; + } + } + } + } + namespace javax + { + namespace xml + { + namespace validation + { + class Validator; + class ValidatorHandler; + } + } + } +} + +class gnu::xml::validation::relaxng::Grammar : public ::javax::xml::validation::Schema +{ + +public: // actually package-private + Grammar(); +public: + virtual ::javax::xml::validation::Validator * newValidator(); + virtual ::javax::xml::validation::ValidatorHandler * newValidatorHandler(); +public: // actually package-private + ::gnu::xml::validation::relaxng::Pattern * __attribute__((aligned(__alignof__( ::javax::xml::validation::Schema)))) start; + ::java::util::List * defines; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_Grammar__ diff --git a/libjava/gnu/xml/validation/relaxng/GrammarException.h b/libjava/gnu/xml/validation/relaxng/GrammarException.h new file mode 100644 index 00000000000..45ddffec984 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/GrammarException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_GrammarException__ +#define __gnu_xml_validation_relaxng_GrammarException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class GrammarException; + } + } + } + } +} + +class gnu::xml::validation::relaxng::GrammarException : public ::java::io::IOException +{ + +public: // actually package-private + GrammarException(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_GrammarException__ diff --git a/libjava/gnu/xml/validation/relaxng/GrammarValidator.h b/libjava/gnu/xml/validation/relaxng/GrammarValidator.h new file mode 100644 index 00000000000..37b0d017096 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/GrammarValidator.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_GrammarValidator__ +#define __gnu_xml_validation_relaxng_GrammarValidator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class Grammar; + class GrammarValidator; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + class Source; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class ErrorHandler; + } + } + } +} + +class gnu::xml::validation::relaxng::GrammarValidator : public ::javax::xml::validation::Validator +{ + +public: // actually package-private + GrammarValidator(::gnu::xml::validation::relaxng::Grammar *); +public: + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver(); + virtual void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *); + virtual void reset(); + virtual void validate(::javax::xml::transform::Source *, ::javax::xml::transform::Result *); +public: // actually package-private + ::gnu::xml::validation::relaxng::Grammar * __attribute__((aligned(__alignof__( ::javax::xml::validation::Validator)))) grammar; + ::org::xml::sax::ErrorHandler * errorHandler; + ::org::w3c::dom::ls::LSResourceResolver * resourceResolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_GrammarValidator__ diff --git a/libjava/gnu/xml/validation/relaxng/GroupPattern.h b/libjava/gnu/xml/validation/relaxng/GroupPattern.h new file mode 100644 index 00000000000..bd52ac7b375 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/GroupPattern.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_GroupPattern__ +#define __gnu_xml_validation_relaxng_GroupPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class GroupPattern; + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::GroupPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + GroupPattern(); + ::gnu::xml::validation::relaxng::Pattern * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) pattern1; + ::gnu::xml::validation::relaxng::Pattern * pattern2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_GroupPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/InterleavePattern.h b/libjava/gnu/xml/validation/relaxng/InterleavePattern.h new file mode 100644 index 00000000000..02716e88570 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/InterleavePattern.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_InterleavePattern__ +#define __gnu_xml_validation_relaxng_InterleavePattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class InterleavePattern; + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::InterleavePattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + InterleavePattern(); + ::gnu::xml::validation::relaxng::Pattern * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) pattern1; + ::gnu::xml::validation::relaxng::Pattern * pattern2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_InterleavePattern__ diff --git a/libjava/gnu/xml/validation/relaxng/ListPattern.h b/libjava/gnu/xml/validation/relaxng/ListPattern.h new file mode 100644 index 00000000000..78351cfb144 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/ListPattern.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_ListPattern__ +#define __gnu_xml_validation_relaxng_ListPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class ListPattern; + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::ListPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + ListPattern(); + ::gnu::xml::validation::relaxng::Pattern * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) pattern; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_ListPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/NSNameNameClass.h b/libjava/gnu/xml/validation/relaxng/NSNameNameClass.h new file mode 100644 index 00000000000..8fcdb4f42aa --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/NSNameNameClass.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_NSNameNameClass__ +#define __gnu_xml_validation_relaxng_NSNameNameClass__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class NSNameNameClass; + class NameClass; + } + } + } + } +} + +class gnu::xml::validation::relaxng::NSNameNameClass : public ::gnu::xml::validation::relaxng::NameClass +{ + +public: // actually package-private + NSNameNameClass(); + virtual jboolean matchesName(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::NameClass)))) ns; + ::gnu::xml::validation::relaxng::NameClass * exceptNameClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_NSNameNameClass__ diff --git a/libjava/gnu/xml/validation/relaxng/NameClass.h b/libjava/gnu/xml/validation/relaxng/NameClass.h new file mode 100644 index 00000000000..ffa1dfb7512 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/NameClass.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_NameClass__ +#define __gnu_xml_validation_relaxng_NameClass__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class NameClass; + } + } + } + } +} + +class gnu::xml::validation::relaxng::NameClass : public ::java::lang::Object +{ + +public: // actually package-private + NameClass(); + virtual jboolean matchesName(::java::lang::String *, ::java::lang::String *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_NameClass__ diff --git a/libjava/gnu/xml/validation/relaxng/NameNameClass.h b/libjava/gnu/xml/validation/relaxng/NameNameClass.h new file mode 100644 index 00000000000..334bf94af05 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/NameNameClass.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_NameNameClass__ +#define __gnu_xml_validation_relaxng_NameNameClass__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class NameNameClass; + } + } + } + } +} + +class gnu::xml::validation::relaxng::NameNameClass : public ::gnu::xml::validation::relaxng::NameClass +{ + +public: // actually package-private + NameNameClass(); + virtual jboolean matchesName(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::NameClass)))) ns; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_NameNameClass__ diff --git a/libjava/gnu/xml/validation/relaxng/NotAllowedPattern.h b/libjava/gnu/xml/validation/relaxng/NotAllowedPattern.h new file mode 100644 index 00000000000..a65d11b2323 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/NotAllowedPattern.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_NotAllowedPattern__ +#define __gnu_xml_validation_relaxng_NotAllowedPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class NotAllowedPattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::NotAllowedPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + NotAllowedPattern(); + static ::gnu::xml::validation::relaxng::NotAllowedPattern * INSTANCE; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_NotAllowedPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/OneOrMorePattern.h b/libjava/gnu/xml/validation/relaxng/OneOrMorePattern.h new file mode 100644 index 00000000000..d59682bfafb --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/OneOrMorePattern.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_OneOrMorePattern__ +#define __gnu_xml_validation_relaxng_OneOrMorePattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class OneOrMorePattern; + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::OneOrMorePattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + OneOrMorePattern(); + ::gnu::xml::validation::relaxng::Pattern * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) pattern; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_OneOrMorePattern__ diff --git a/libjava/gnu/xml/validation/relaxng/Param.h b/libjava/gnu/xml/validation/relaxng/Param.h new file mode 100644 index 00000000000..16241747b62 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/Param.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_Param__ +#define __gnu_xml_validation_relaxng_Param__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class Param; + } + } + } + } +} + +class gnu::xml::validation::relaxng::Param : public ::java::lang::Object +{ + +public: // actually package-private + Param(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_Param__ diff --git a/libjava/gnu/xml/validation/relaxng/Pattern.h b/libjava/gnu/xml/validation/relaxng/Pattern.h new file mode 100644 index 00000000000..fd0f6d65e2c --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/Pattern.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_Pattern__ +#define __gnu_xml_validation_relaxng_Pattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class Pattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::Pattern : public ::java::lang::Object +{ + +public: // actually package-private + Pattern(); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_Pattern__ diff --git a/libjava/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.h b/libjava/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.h new file mode 100644 index 00000000000..65a8c0a0461 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_RELAXNGSchemaFactory__ +#define __gnu_xml_validation_relaxng_RELAXNGSchemaFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class RELAXNGSchemaFactory; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Source; + } + namespace validation + { + class Schema; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class ErrorHandler; + } + } + } +} + +class gnu::xml::validation::relaxng::RELAXNGSchemaFactory : public ::javax::xml::validation::SchemaFactory +{ + +public: + RELAXNGSchemaFactory(); + virtual ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver(); + virtual void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual jboolean isSchemaLanguageSupported(::java::lang::String *); + virtual ::javax::xml::validation::Schema * newSchema(); + virtual ::javax::xml::validation::Schema * newSchema(JArray< ::javax::xml::transform::Source * > *); +private: + static ::org::w3c::dom::Document * getDocument(::javax::xml::transform::Source *); +public: // actually package-private + ::org::w3c::dom::ls::LSResourceResolver * __attribute__((aligned(__alignof__( ::javax::xml::validation::SchemaFactory)))) resourceResolver; + ::org::xml::sax::ErrorHandler * errorHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_RELAXNGSchemaFactory__ diff --git a/libjava/gnu/xml/validation/relaxng/RefPattern.h b/libjava/gnu/xml/validation/relaxng/RefPattern.h new file mode 100644 index 00000000000..73728689fb8 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/RefPattern.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_RefPattern__ +#define __gnu_xml_validation_relaxng_RefPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class RefPattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::RefPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + RefPattern(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_RefPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/TextPattern.h b/libjava/gnu/xml/validation/relaxng/TextPattern.h new file mode 100644 index 00000000000..b687c0723b7 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/TextPattern.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_TextPattern__ +#define __gnu_xml_validation_relaxng_TextPattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class TextPattern; + } + } + } + } +} + +class gnu::xml::validation::relaxng::TextPattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + TextPattern(); + static ::gnu::xml::validation::relaxng::TextPattern * INSTANCE; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_TextPattern__ diff --git a/libjava/gnu/xml/validation/relaxng/ValuePattern.h b/libjava/gnu/xml/validation/relaxng/ValuePattern.h new file mode 100644 index 00000000000..b1f69f67488 --- /dev/null +++ b/libjava/gnu/xml/validation/relaxng/ValuePattern.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_relaxng_ValuePattern__ +#define __gnu_xml_validation_relaxng_ValuePattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace relaxng + { + class ValuePattern; + } + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class DatatypeLibrary; + } + } + } +} + +class gnu::xml::validation::relaxng::ValuePattern : public ::gnu::xml::validation::relaxng::Pattern +{ + +public: // actually package-private + ValuePattern(); + ::org::relaxng::datatype::DatatypeLibrary * __attribute__((aligned(__alignof__( ::gnu::xml::validation::relaxng::Pattern)))) datatypeLibrary; + ::org::relaxng::datatype::Datatype * type; + ::java::lang::String * ns; + ::java::lang::String * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_relaxng_ValuePattern__ diff --git a/libjava/gnu/xml/validation/xmlschema/AnyAttribute.h b/libjava/gnu/xml/validation/xmlschema/AnyAttribute.h new file mode 100644 index 00000000000..10561967e85 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/AnyAttribute.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_AnyAttribute__ +#define __gnu_xml_validation_xmlschema_AnyAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + } + namespace xmlschema + { + class AnyAttribute; + } + } + } + } +} + +class gnu::xml::validation::xmlschema::AnyAttribute : public ::java::lang::Object +{ + +public: // actually package-private + AnyAttribute(::java::lang::String *, jint); + static const jint STRICT = 0; + static const jint LAX = 1; + static const jint SKIP = 2; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) namespace$; + jint processContents; + ::gnu::xml::validation::datatype::Annotation * annotation; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_AnyAttribute__ diff --git a/libjava/gnu/xml/validation/xmlschema/AttributeDeclaration.h b/libjava/gnu/xml/validation/xmlschema/AttributeDeclaration.h new file mode 100644 index 00000000000..4465791c0a8 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/AttributeDeclaration.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_AttributeDeclaration__ +#define __gnu_xml_validation_xmlschema_AttributeDeclaration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class SimpleType; + } + namespace xmlschema + { + class AttributeDeclaration; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } +} + +class gnu::xml::validation::xmlschema::AttributeDeclaration : public ::java::lang::Object +{ + +public: // actually package-private + AttributeDeclaration(jboolean, jint, ::java::lang::String *, ::javax::xml::namespace::QName *, ::gnu::xml::validation::datatype::SimpleType *, ::gnu::xml::validation::datatype::Annotation *); + static const jint NONE = 0; + static const jint DEFAULT = 1; + static const jint FIXED = 2; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) scope; + jint type; + ::java::lang::String * value; + ::javax::xml::namespace::QName * name; + ::gnu::xml::validation::datatype::SimpleType * datatype; + ::gnu::xml::validation::datatype::Annotation * annotation; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_AttributeDeclaration__ diff --git a/libjava/gnu/xml/validation/xmlschema/AttributeUse.h b/libjava/gnu/xml/validation/xmlschema/AttributeUse.h new file mode 100644 index 00000000000..b5c008f57d7 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/AttributeUse.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_AttributeUse__ +#define __gnu_xml_validation_xmlschema_AttributeUse__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class AttributeDeclaration; + class AttributeUse; + } + } + } + } +} + +class gnu::xml::validation::xmlschema::AttributeUse : public ::java::lang::Object +{ + +public: // actually package-private + AttributeUse(jboolean, jint, ::java::lang::String *, ::gnu::xml::validation::xmlschema::AttributeDeclaration *); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) required; + jint type; + ::java::lang::String * value; + ::gnu::xml::validation::xmlschema::AttributeDeclaration * declaration; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_AttributeUse__ diff --git a/libjava/gnu/xml/validation/xmlschema/ComplexType.h b/libjava/gnu/xml/validation/xmlschema/ComplexType.h new file mode 100644 index 00000000000..189a0757c79 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/ComplexType.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_ComplexType__ +#define __gnu_xml_validation_xmlschema_ComplexType__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class AnyAttribute; + class ComplexType; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } +} + +class gnu::xml::validation::xmlschema::ComplexType : public ::gnu::xml::validation::datatype::Type +{ + +public: // actually package-private + ComplexType(::javax::xml::namespace::QName *, jboolean, jint, jint); + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Type)))) baseType; + jint derivationMethod; + jint finality; + jboolean isAbstract; + ::java::util::Set * attributeUses; + ::gnu::xml::validation::xmlschema::AnyAttribute * attributeWildcard; + jint contentType; + ::java::lang::Object * contentModel; + jint prohibitedSubstitutions; + ::java::util::Set * annotations; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_ComplexType__ diff --git a/libjava/gnu/xml/validation/xmlschema/ElementDeclaration.h b/libjava/gnu/xml/validation/xmlschema/ElementDeclaration.h new file mode 100644 index 00000000000..0233bfc095a --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/ElementDeclaration.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_ElementDeclaration__ +#define __gnu_xml_validation_xmlschema_ElementDeclaration__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class Type; + } + namespace xmlschema + { + class ElementDeclaration; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } +} + +class gnu::xml::validation::xmlschema::ElementDeclaration : public ::java::lang::Object +{ + +public: // actually package-private + ElementDeclaration(::javax::xml::namespace::QName *, ::gnu::xml::validation::datatype::Type *, jint, ::gnu::xml::validation::xmlschema::ElementDeclaration *, jint, ::java::lang::String *, jboolean, ::javax::xml::namespace::QName *, jint, jint, jboolean); + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::gnu::xml::validation::datatype::Type * datatype; + jint scope; + ::gnu::xml::validation::xmlschema::ElementDeclaration * parent; + jint type; + ::java::lang::String * value; + jboolean nillable; + ::javax::xml::namespace::QName * substitutionGroup; + jint substitutionGroupExclusions; + jint disallowedSubstitutions; + jboolean isAbstract; + ::gnu::xml::validation::datatype::Annotation * annotation; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_ElementDeclaration__ diff --git a/libjava/gnu/xml/validation/xmlschema/Particle.h b/libjava/gnu/xml/validation/xmlschema/Particle.h new file mode 100644 index 00000000000..c8228ba1c86 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/Particle.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_Particle__ +#define __gnu_xml_validation_xmlschema_Particle__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class Particle; + } + } + } + } +} + +class gnu::xml::validation::xmlschema::Particle : public ::java::lang::Object +{ + +public: // actually package-private + Particle(::java::lang::Integer *, ::java::lang::Integer *, ::java::lang::Object *); + ::java::lang::Integer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) minOccurs; + ::java::lang::Integer * maxOccurs; + ::java::lang::Object * term; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_Particle__ diff --git a/libjava/gnu/xml/validation/xmlschema/ValidationException.h b/libjava/gnu/xml/validation/xmlschema/ValidationException.h new file mode 100644 index 00000000000..cdea811e7fc --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/ValidationException.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_ValidationException__ +#define __gnu_xml_validation_xmlschema_ValidationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class ValidationException; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Locator; + } + } + } +} + +class gnu::xml::validation::xmlschema::ValidationException : public ::org::xml::sax::SAXParseException +{ + +public: // actually package-private + ValidationException(::java::lang::String *, ::org::xml::sax::Locator *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_ValidationException__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchema.h b/libjava/gnu/xml/validation/xmlschema/XMLSchema.h new file mode 100644 index 00000000000..4fec76fe9a8 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchema.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchema__ +#define __gnu_xml_validation_xmlschema_XMLSchema__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class XMLSchema; + } + } + } + } + namespace javax + { + namespace xml + { + namespace validation + { + class Validator; + class ValidatorHandler; + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchema : public ::javax::xml::validation::Schema +{ + +public: // actually package-private + XMLSchema(::java::lang::String *, ::java::lang::String *, jint, jint, jboolean, jboolean); +public: + ::javax::xml::validation::Validator * newValidator(); + ::javax::xml::validation::ValidatorHandler * newValidatorHandler(); +public: // actually package-private + static const jint FINAL_NONE = 0; + static const jint FINAL_EXTENSION = 1; + static const jint FINAL_RESTRICTION = 2; + static const jint FINAL_LIST = 4; + static const jint FINAL_UNION = 8; + static const jint FINAL_ALL = 15; + static const jint BLOCK_NONE = 0; + static const jint BLOCK_EXTENSION = 1; + static const jint BLOCK_RESTRICTION = 2; + static const jint BLOCK_SUBSTITUTION = 4; + static const jint BLOCK_ALL = 7; + static const jint GLOBAL = 0; + static const jint LOCAL = 1; + static const jint ABSENT = 2; + static const jint CONSTRAINT_NONE = 0; + static const jint CONSTRAINT_DEFAULT = 1; + static const jint CONSTRAINT_FIXED = 2; + static const jint CONTENT_EMPTY = 0; + static const jint CONTENT_SIMPLE = 1; + static const jint CONTENT_MIXED = 2; + static const jint CONTENT_ELEMENT_ONLY = 3; + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::xml::validation::Schema)))) targetNamespace; + ::java::lang::String * version; + jint finalDefault; + jint blockDefault; + jboolean attributeFormQualified; + jboolean elementFormQualified; + ::java::util::Map * elementDeclarations; + ::java::util::Map * attributeDeclarations; + ::java::util::Map * types; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchema__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.h new file mode 100644 index 00000000000..465720c46fc --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaAttributeTypeInfo__ +#define __gnu_xml_validation_xmlschema_XMLSchemaAttributeTypeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class SimpleType; + } + namespace xmlschema + { + class AttributeDeclaration; + class XMLSchema; + class XMLSchemaAttributeTypeInfo; + } + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaAttributeTypeInfo : public ::gnu::xml::validation::xmlschema::XMLSchemaTypeInfo +{ + +public: // actually package-private + XMLSchemaAttributeTypeInfo(::gnu::xml::validation::xmlschema::XMLSchema *, ::gnu::xml::validation::xmlschema::AttributeDeclaration *, jboolean); +public: + ::java::lang::String * getTypeName(); + ::java::lang::String * getTypeNamespace(); + jboolean isDerivedFrom(::java::lang::String *, ::java::lang::String *, jint); +public: // actually package-private + ::gnu::xml::validation::xmlschema::XMLSchema * __attribute__((aligned(__alignof__( ::gnu::xml::validation::xmlschema::XMLSchemaTypeInfo)))) schema; + ::gnu::xml::validation::xmlschema::AttributeDeclaration * decl; + ::gnu::xml::validation::datatype::SimpleType * type; + jboolean id; + jboolean specified; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaAttributeTypeInfo__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaBuilder.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaBuilder.h new file mode 100644 index 00000000000..2d208afd61f --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaBuilder.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaBuilder__ +#define __gnu_xml_validation_xmlschema_XMLSchemaBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Annotation; + class SimpleType; + class Type; + } + namespace xmlschema + { + class AnyAttribute; + class ComplexType; + class ElementDeclaration; + class XMLSchema; + class XMLSchemaBuilder; + } + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeLibrary; + } + } + namespace w3c + { + namespace dom + { + class NamedNodeMap; + class Node; + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaBuilder : public ::java::lang::Object +{ + +public: // actually package-private + XMLSchemaBuilder(); + virtual void parseSchema(::org::w3c::dom::Node *); + virtual void parseTopLevelElement(::org::w3c::dom::Node *); + virtual ::java::lang::Object * parseAttribute(::org::w3c::dom::Node *, jboolean); + virtual jint parseFullDerivationSet(::java::lang::String *); + virtual jint parseSimpleTypeDerivationSet(::java::lang::String *); + virtual jint parseComplexTypeDerivationSet(::java::lang::String *); + virtual jint parseBlockSet(::java::lang::String *); + virtual jint parseComplexTypeBlockSet(::java::lang::String *); + virtual ::java::lang::Object * parseElement(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ElementDeclaration *); + virtual ::java::lang::Integer * getOccurrence(::java::lang::String *); + virtual ::gnu::xml::validation::datatype::SimpleType * parseSimpleType(::javax::xml::namespace::QName *); + virtual ::gnu::xml::validation::datatype::SimpleType * parseSimpleType(::org::w3c::dom::Node *); + virtual ::gnu::xml::validation::datatype::Type * parseComplexType(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ElementDeclaration *); + virtual void parseSimpleContent(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ComplexType *); + virtual void parseRestriction(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ComplexType *); + virtual void parseExtension(::org::w3c::dom::Node *, ::gnu::xml::validation::xmlschema::ComplexType *); + virtual ::gnu::xml::validation::xmlschema::AnyAttribute * parseAnyAttribute(::org::w3c::dom::Node *); + virtual ::gnu::xml::validation::datatype::Annotation * parseAnnotation(::org::w3c::dom::Node *); +private: + static ::java::lang::String * getAttribute(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *); + static ::javax::xml::namespace::QName * asQName(::java::lang::String *, ::org::w3c::dom::Node *); +public: // actually package-private + ::gnu::xml::validation::xmlschema::XMLSchema * __attribute__((aligned(__alignof__( ::java::lang::Object)))) schema; + ::org::relaxng::datatype::DatatypeLibrary * typeLibrary; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaBuilder__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.h new file mode 100644 index 00000000000..23ff8b66ae1 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaElementTypeInfo__ +#define __gnu_xml_validation_xmlschema_XMLSchemaElementTypeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Type; + } + namespace xmlschema + { + class ElementDeclaration; + class XMLSchema; + class XMLSchemaElementTypeInfo; + } + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaElementTypeInfo : public ::gnu::xml::validation::xmlschema::XMLSchemaTypeInfo +{ + +public: // actually package-private + XMLSchemaElementTypeInfo(::gnu::xml::validation::xmlschema::XMLSchema *, ::gnu::xml::validation::xmlschema::ElementDeclaration *, ::gnu::xml::validation::datatype::Type *); +public: + ::java::lang::String * getTypeName(); + ::java::lang::String * getTypeNamespace(); + jboolean isDerivedFrom(::java::lang::String *, ::java::lang::String *, jint); +public: // actually package-private + ::gnu::xml::validation::xmlschema::XMLSchema * __attribute__((aligned(__alignof__( ::gnu::xml::validation::xmlschema::XMLSchemaTypeInfo)))) schema; + ::gnu::xml::validation::xmlschema::ElementDeclaration * decl; + ::gnu::xml::validation::datatype::Type * type; + jboolean nil; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaElementTypeInfo__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.h new file mode 100644 index 00000000000..b4d45dd06c9 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaSchemaFactory__ +#define __gnu_xml_validation_xmlschema_XMLSchemaSchemaFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class XMLSchemaSchemaFactory; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Source; + } + namespace validation + { + class Schema; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class ErrorHandler; + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaSchemaFactory : public ::javax::xml::validation::SchemaFactory +{ + +public: + XMLSchemaSchemaFactory(); + virtual ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver(); + virtual void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual jboolean isSchemaLanguageSupported(::java::lang::String *); + virtual ::javax::xml::validation::Schema * newSchema(); + virtual ::javax::xml::validation::Schema * newSchema(JArray< ::javax::xml::transform::Source * > *); +private: + static ::org::w3c::dom::Document * getDocument(::javax::xml::transform::Source *); +public: // actually package-private + ::org::w3c::dom::ls::LSResourceResolver * __attribute__((aligned(__alignof__( ::javax::xml::validation::SchemaFactory)))) resourceResolver; + ::org::xml::sax::ErrorHandler * errorHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaSchemaFactory__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.h new file mode 100644 index 00000000000..d253235f838 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaTypeInfo__ +#define __gnu_xml_validation_xmlschema_XMLSchemaTypeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class SimpleType; + } + namespace xmlschema + { + class XMLSchemaTypeInfo; + } + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaTypeInfo : public ::java::lang::Object +{ + +public: // actually package-private + XMLSchemaTypeInfo(); +public: // actually protected + virtual jboolean simpleTypeIsDerivedFrom(::gnu::xml::validation::datatype::SimpleType *, ::java::lang::String *, ::java::lang::String *, jint); +public: + virtual ::java::lang::String * getTypeName() = 0; + virtual ::java::lang::String * getTypeNamespace() = 0; + virtual jboolean isDerivedFrom(::java::lang::String *, ::java::lang::String *, jint) = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaTypeInfo__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.h new file mode 100644 index 00000000000..049b63af3b8 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaTypeInfoProvider__ +#define __gnu_xml_validation_xmlschema_XMLSchemaTypeInfoProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class XMLSchemaTypeInfoProvider; + class XMLSchemaValidatorHandler; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class TypeInfo; + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaTypeInfoProvider : public ::javax::xml::validation::TypeInfoProvider +{ + +public: // actually package-private + XMLSchemaTypeInfoProvider(::gnu::xml::validation::xmlschema::XMLSchemaValidatorHandler *); +public: + ::org::w3c::dom::TypeInfo * getElementTypeInfo(); + ::org::w3c::dom::TypeInfo * getAttributeTypeInfo(jint); + jboolean isIdAttribute(jint); + jboolean isSpecified(jint); +public: // actually package-private + ::gnu::xml::validation::xmlschema::XMLSchemaValidatorHandler * __attribute__((aligned(__alignof__( ::javax::xml::validation::TypeInfoProvider)))) handler; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaTypeInfoProvider__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaValidator.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaValidator.h new file mode 100644 index 00000000000..fbbb1963084 --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaValidator.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaValidator__ +#define __gnu_xml_validation_xmlschema_XMLSchemaValidator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace xmlschema + { + class XMLSchema; + class XMLSchemaValidator; + } + } + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + class Source; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class ErrorHandler; + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaValidator : public ::javax::xml::validation::Validator +{ + +public: // actually package-private + XMLSchemaValidator(::gnu::xml::validation::xmlschema::XMLSchema *); +public: + void reset(); + void validate(::javax::xml::transform::Source *, ::javax::xml::transform::Result *); + ::org::xml::sax::ErrorHandler * getErrorHandler(); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver(); + void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *); +public: // actually package-private + ::gnu::xml::validation::xmlschema::XMLSchema * __attribute__((aligned(__alignof__( ::javax::xml::validation::Validator)))) schema; + ::org::xml::sax::ErrorHandler * errorHandler; + ::org::w3c::dom::ls::LSResourceResolver * resourceResolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaValidator__ diff --git a/libjava/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.h b/libjava/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.h new file mode 100644 index 00000000000..94ebcc73b7c --- /dev/null +++ b/libjava/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_validation_xmlschema_XMLSchemaValidatorHandler__ +#define __gnu_xml_validation_xmlschema_XMLSchemaValidatorHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace validation + { + namespace datatype + { + class Type; + } + namespace xmlschema + { + class XMLSchema; + class XMLSchemaValidatorHandler; + } + } + } + } + namespace javax + { + namespace xml + { + namespace validation + { + class TypeInfoProvider; + } + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeLibrary; + } + } + namespace w3c + { + namespace dom + { + class TypeInfo; + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class Attributes; + class ContentHandler; + class ErrorHandler; + class Locator; + namespace helpers + { + class NamespaceSupport; + } + } + } + } +} + +class gnu::xml::validation::xmlschema::XMLSchemaValidatorHandler : public ::javax::xml::validation::ValidatorHandler +{ + +public: // actually package-private + XMLSchemaValidatorHandler(::gnu::xml::validation::xmlschema::XMLSchema *); +public: + ::org::xml::sax::ContentHandler * getContentHandler(); + void setContentHandler(::org::xml::sax::ContentHandler *); + ::org::xml::sax::ErrorHandler * getErrorHandler(); + void setErrorHandler(::org::xml::sax::ErrorHandler *); + ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver(); + void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *); + ::javax::xml::validation::TypeInfoProvider * getTypeInfoProvider(); +public: // actually package-private + ::org::w3c::dom::TypeInfo * getElementTypeInfo(); + ::org::w3c::dom::TypeInfo * getAttributeTypeInfo(jint); + jboolean isIdAttribute(jint); + jboolean isSpecified(jint); +public: + void setDocumentLocator(::org::xml::sax::Locator *); + void startDocument(); + void endDocument(); + void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + void endPrefixMapping(::java::lang::String *); + void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + void characters(JArray< jchar > *, jint, jint); + void ignorableWhitespace(JArray< jchar > *, jint, jint); + void processingInstruction(::java::lang::String *, ::java::lang::String *); + void skippedEntity(::java::lang::String *); +public: // actually package-private + ::gnu::xml::validation::datatype::Type * resolveType(::java::lang::String *); + ::gnu::xml::validation::xmlschema::XMLSchema * __attribute__((aligned(__alignof__( ::javax::xml::validation::ValidatorHandler)))) schema; + ::javax::xml::validation::TypeInfoProvider * typeInfoProvider; + ::org::xml::sax::helpers::NamespaceSupport * namespaceSupport; + ::org::relaxng::datatype::DatatypeLibrary * typeLibrary; + ::org::xml::sax::Locator * loc; + ::org::xml::sax::ContentHandler * contentHandler; + ::org::xml::sax::ErrorHandler * errorHandler; + ::org::w3c::dom::ls::LSResourceResolver * resourceResolver; + ::java::util::LinkedList * context; + ::java::util::ArrayList * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_validation_xmlschema_XMLSchemaValidatorHandler__ diff --git a/libjava/gnu/xml/xpath/AndExpr.h b/libjava/gnu/xml/xpath/AndExpr.h new file mode 100644 index 00000000000..69c310d3779 --- /dev/null +++ b/libjava/gnu/xml/xpath/AndExpr.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_AndExpr__ +#define __gnu_xml_xpath_AndExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class AndExpr; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::AndExpr : public ::gnu::xml::xpath::Expr +{ + +public: + AndExpr(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) lhs; + ::gnu::xml::xpath::Expr * rhs; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_AndExpr__ diff --git a/libjava/gnu/xml/xpath/ArithmeticExpr.h b/libjava/gnu/xml/xpath/ArithmeticExpr.h new file mode 100644 index 00000000000..eb7773b8ba5 --- /dev/null +++ b/libjava/gnu/xml/xpath/ArithmeticExpr.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_ArithmeticExpr__ +#define __gnu_xml_xpath_ArithmeticExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class ArithmeticExpr; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::ArithmeticExpr : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + ArithmeticExpr(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *, jint); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + static const jint ADD = 0; + static const jint SUBTRACT = 1; + static const jint MULTIPLY = 2; + static const jint DIVIDE = 3; + static const jint MODULO = 4; + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) lhs; + ::gnu::xml::xpath::Expr * rhs; + jint op; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_ArithmeticExpr__ diff --git a/libjava/gnu/xml/xpath/BooleanFunction.h b/libjava/gnu/xml/xpath/BooleanFunction.h new file mode 100644 index 00000000000..ab54f6cd728 --- /dev/null +++ b/libjava/gnu/xml/xpath/BooleanFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_BooleanFunction__ +#define __gnu_xml_xpath_BooleanFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class BooleanFunction; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::BooleanFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + BooleanFunction(::java::util::List *); + BooleanFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_BooleanFunction__ diff --git a/libjava/gnu/xml/xpath/CeilingFunction.h b/libjava/gnu/xml/xpath/CeilingFunction.h new file mode 100644 index 00000000000..4350f310987 --- /dev/null +++ b/libjava/gnu/xml/xpath/CeilingFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_CeilingFunction__ +#define __gnu_xml_xpath_CeilingFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class CeilingFunction; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::CeilingFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + CeilingFunction(::java::util::List *); + CeilingFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_CeilingFunction__ diff --git a/libjava/gnu/xml/xpath/ConcatFunction.h b/libjava/gnu/xml/xpath/ConcatFunction.h new file mode 100644 index 00000000000..492cb12b0c5 --- /dev/null +++ b/libjava/gnu/xml/xpath/ConcatFunction.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_ConcatFunction__ +#define __gnu_xml_xpath_ConcatFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class ConcatFunction; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::ConcatFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + ConcatFunction(::java::util::List *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_ConcatFunction__ diff --git a/libjava/gnu/xml/xpath/Constant.h b/libjava/gnu/xml/xpath/Constant.h new file mode 100644 index 00000000000..51e14fed2e7 --- /dev/null +++ b/libjava/gnu/xml/xpath/Constant.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Constant__ +#define __gnu_xml_xpath_Constant__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Constant; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Constant : public ::gnu::xml::xpath::Expr +{ + +public: + Constant(::java::lang::Object *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Constant__ diff --git a/libjava/gnu/xml/xpath/ContainsFunction.h b/libjava/gnu/xml/xpath/ContainsFunction.h new file mode 100644 index 00000000000..e33d07f995d --- /dev/null +++ b/libjava/gnu/xml/xpath/ContainsFunction.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_ContainsFunction__ +#define __gnu_xml_xpath_ContainsFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class ContainsFunction; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::ContainsFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + ContainsFunction(::java::util::List *); + ContainsFunction(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg1; + ::gnu::xml::xpath::Expr * arg2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_ContainsFunction__ diff --git a/libjava/gnu/xml/xpath/CountFunction.h b/libjava/gnu/xml/xpath/CountFunction.h new file mode 100644 index 00000000000..0741837949f --- /dev/null +++ b/libjava/gnu/xml/xpath/CountFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_CountFunction__ +#define __gnu_xml_xpath_CountFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class CountFunction; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::CountFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + CountFunction(::java::util::List *); + CountFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_CountFunction__ diff --git a/libjava/gnu/xml/xpath/DocumentOrderComparator.h b/libjava/gnu/xml/xpath/DocumentOrderComparator.h new file mode 100644 index 00000000000..f34cb311a47 --- /dev/null +++ b/libjava/gnu/xml/xpath/DocumentOrderComparator.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_DocumentOrderComparator__ +#define __gnu_xml_xpath_DocumentOrderComparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class DocumentOrderComparator; + } + } + } +} + +class gnu::xml::xpath::DocumentOrderComparator : public ::java::lang::Object +{ + +public: + DocumentOrderComparator(); + virtual jint compare(::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_DocumentOrderComparator__ diff --git a/libjava/gnu/xml/xpath/EqualityExpr.h b/libjava/gnu/xml/xpath/EqualityExpr.h new file mode 100644 index 00000000000..af6c0e29088 --- /dev/null +++ b/libjava/gnu/xml/xpath/EqualityExpr.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_EqualityExpr__ +#define __gnu_xml_xpath_EqualityExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class EqualityExpr; + class Expr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::EqualityExpr : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + EqualityExpr(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *, jboolean); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +private: + jboolean evaluateImpl(::org::w3c::dom::Node *, jint, jint); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) lhs; + ::gnu::xml::xpath::Expr * rhs; + jboolean invert; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_EqualityExpr__ diff --git a/libjava/gnu/xml/xpath/Expr$ExprNodeSet.h b/libjava/gnu/xml/xpath/Expr$ExprNodeSet.h new file mode 100644 index 00000000000..e8065316b85 --- /dev/null +++ b/libjava/gnu/xml/xpath/Expr$ExprNodeSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Expr$ExprNodeSet__ +#define __gnu_xml_xpath_Expr$ExprNodeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr$ExprNodeSet; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Expr$ExprNodeSet : public ::java::lang::Object +{ + +public: // actually package-private + Expr$ExprNodeSet(::java::util::Collection *); +public: + virtual jint getLength(); + virtual ::org::w3c::dom::Node * item(jint); +private: + ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) list; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Expr$ExprNodeSet__ diff --git a/libjava/gnu/xml/xpath/Expr.h b/libjava/gnu/xml/xpath/Expr.h new file mode 100644 index 00000000000..a737f95a51a --- /dev/null +++ b/libjava/gnu/xml/xpath/Expr.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Expr__ +#define __gnu_xml_xpath_Expr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + } + } + } + namespace java + { + namespace text + { + class DecimalFormat; + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class gnu::xml::xpath::Expr : public ::java::lang::Object +{ + +public: + Expr(); + virtual ::java::lang::Object * evaluate(::java::lang::Object *, ::javax::xml::namespace::QName *); + virtual ::java::lang::String * evaluate(::java::lang::Object *); + virtual ::java::lang::Object * evaluate(::org::xml::sax::InputSource *, ::javax::xml::namespace::QName *); + virtual ::java::lang::String * evaluate(::org::xml::sax::InputSource *); + virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint) = 0; + virtual ::gnu::xml::xpath::Expr * clone(::java::lang::Object *) = 0; + virtual jboolean references(::javax::xml::namespace::QName *) = 0; + static ::java::util::Collection * _id(::org::w3c::dom::Node *, ::java::lang::Object *); + static ::java::lang::String * _local_name(::org::w3c::dom::Node *, ::java::util::Collection *); + static ::java::lang::String * _namespace_uri(::org::w3c::dom::Node *, ::java::util::Collection *); + static ::java::lang::String * _name(::org::w3c::dom::Node *, ::java::util::Collection *); +public: // actually package-private + static ::org::w3c::dom::Node * firstNode(::java::util::Collection *); +public: + static ::java::lang::String * _string(::org::w3c::dom::Node *, ::java::lang::Object *); + static jboolean _boolean(::org::w3c::dom::Node *, ::java::lang::Object *); + static jdouble _number(::org::w3c::dom::Node *, ::java::lang::Object *); + static ::java::lang::String * stringValue(::java::util::Collection *); + static ::java::lang::String * stringValue(::org::w3c::dom::Node *); +public: // actually package-private + static ::java::lang::String * stringValue(::org::w3c::dom::Node *, jboolean); + static jint intValue(::java::lang::Object *); +public: // actually protected + static ::java::util::Comparator * documentOrderComparator; + static ::java::text::DecimalFormat * decimalFormat; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Expr__ diff --git a/libjava/gnu/xml/xpath/FalseFunction.h b/libjava/gnu/xml/xpath/FalseFunction.h new file mode 100644 index 00000000000..42df32629c1 --- /dev/null +++ b/libjava/gnu/xml/xpath/FalseFunction.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_FalseFunction__ +#define __gnu_xml_xpath_FalseFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class FalseFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::FalseFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + FalseFunction(); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_FalseFunction__ diff --git a/libjava/gnu/xml/xpath/FloorFunction.h b/libjava/gnu/xml/xpath/FloorFunction.h new file mode 100644 index 00000000000..1fe02545e71 --- /dev/null +++ b/libjava/gnu/xml/xpath/FloorFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_FloorFunction__ +#define __gnu_xml_xpath_FloorFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class FloorFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::FloorFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + FloorFunction(::java::util::List *); + FloorFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_FloorFunction__ diff --git a/libjava/gnu/xml/xpath/Function.h b/libjava/gnu/xml/xpath/Function.h new file mode 100644 index 00000000000..e4d457c7cfd --- /dev/null +++ b/libjava/gnu/xml/xpath/Function.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Function__ +#define __gnu_xml_xpath_Function__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Function; + } + } + } +} + +class gnu::xml::xpath::Function : public ::java::lang::Object +{ + +public: + virtual void setArguments(::java::util::List *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_xml_xpath_Function__ diff --git a/libjava/gnu/xml/xpath/FunctionCall.h b/libjava/gnu/xml/xpath/FunctionCall.h new file mode 100644 index 00000000000..09a4184405f --- /dev/null +++ b/libjava/gnu/xml/xpath/FunctionCall.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_FunctionCall__ +#define __gnu_xml_xpath_FunctionCall__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class FunctionCall; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace xpath + { + class XPathFunctionResolver; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::FunctionCall : public ::gnu::xml::xpath::Expr +{ + +public: + FunctionCall(::javax::xml::xpath::XPathFunctionResolver *, ::java::lang::String *); + FunctionCall(::javax::xml::xpath::XPathFunctionResolver *, ::java::lang::String *, ::java::util::List *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::javax::xml::xpath::XPathFunctionResolver * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) resolver; + ::java::lang::String * name; + ::java::util::List * args; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_FunctionCall__ diff --git a/libjava/gnu/xml/xpath/IdFunction.h b/libjava/gnu/xml/xpath/IdFunction.h new file mode 100644 index 00000000000..efe1f3e543c --- /dev/null +++ b/libjava/gnu/xml/xpath/IdFunction.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_IdFunction__ +#define __gnu_xml_xpath_IdFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class IdFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::IdFunction : public ::gnu::xml::xpath::Pattern +{ + +public: // actually package-private + IdFunction(::java::util::List *); +public: + IdFunction(::gnu::xml::xpath::Expr *); + jboolean matches(::org::w3c::dom::Node *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Pattern)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_IdFunction__ diff --git a/libjava/gnu/xml/xpath/LangFunction.h b/libjava/gnu/xml/xpath/LangFunction.h new file mode 100644 index 00000000000..d9c2123ff51 --- /dev/null +++ b/libjava/gnu/xml/xpath/LangFunction.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_LangFunction__ +#define __gnu_xml_xpath_LangFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class LangFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::LangFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + LangFunction(::java::util::List *); + LangFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + ::java::lang::String * getLang(::org::w3c::dom::Node *); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_LangFunction__ diff --git a/libjava/gnu/xml/xpath/LastFunction.h b/libjava/gnu/xml/xpath/LastFunction.h new file mode 100644 index 00000000000..3af5ef634e7 --- /dev/null +++ b/libjava/gnu/xml/xpath/LastFunction.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_LastFunction__ +#define __gnu_xml_xpath_LastFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class LastFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::LastFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + LastFunction(); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_LastFunction__ diff --git a/libjava/gnu/xml/xpath/LocalNameFunction.h b/libjava/gnu/xml/xpath/LocalNameFunction.h new file mode 100644 index 00000000000..3de7c9a8658 --- /dev/null +++ b/libjava/gnu/xml/xpath/LocalNameFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_LocalNameFunction__ +#define __gnu_xml_xpath_LocalNameFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class LocalNameFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::LocalNameFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + LocalNameFunction(::java::util::List *); + LocalNameFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_LocalNameFunction__ diff --git a/libjava/gnu/xml/xpath/NameFunction.h b/libjava/gnu/xml/xpath/NameFunction.h new file mode 100644 index 00000000000..b321cc2ba38 --- /dev/null +++ b/libjava/gnu/xml/xpath/NameFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NameFunction__ +#define __gnu_xml_xpath_NameFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class NameFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NameFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + NameFunction(::java::util::List *); + NameFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NameFunction__ diff --git a/libjava/gnu/xml/xpath/NameTest.h b/libjava/gnu/xml/xpath/NameTest.h new file mode 100644 index 00000000000..d81cf5f5166 --- /dev/null +++ b/libjava/gnu/xml/xpath/NameTest.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NameTest__ +#define __gnu_xml_xpath_NameTest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class NameTest; + class Test; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NameTest : public ::gnu::xml::xpath::Test +{ + +public: + NameTest(::javax::xml::namespace::QName *, jboolean, jboolean); + jboolean matchesAny(); + jboolean matchesAnyLocalName(); + jboolean matches(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + static ::java::lang::String * getLocalName(::org::w3c::dom::Node *); + static jboolean equal(::java::lang::String *, ::java::lang::String *); +public: + ::gnu::xml::xpath::Test * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Test)))) qName; + jboolean anyLocalName; + jboolean any; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NameTest__ diff --git a/libjava/gnu/xml/xpath/NamespaceTest.h b/libjava/gnu/xml/xpath/NamespaceTest.h new file mode 100644 index 00000000000..584a538e1ae --- /dev/null +++ b/libjava/gnu/xml/xpath/NamespaceTest.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NamespaceTest__ +#define __gnu_xml_xpath_NamespaceTest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class NamespaceTest; + class Test; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NamespaceTest : public ::gnu::xml::xpath::Test +{ + +public: + NamespaceTest(::javax::xml::namespace::QName *, jboolean, jboolean); + jboolean matchesAny(); + jboolean matchesAnyLocalName(); + jboolean matches(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Test * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Test)))) qName; + jboolean anyLocalName; + jboolean any; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NamespaceTest__ diff --git a/libjava/gnu/xml/xpath/NamespaceUriFunction.h b/libjava/gnu/xml/xpath/NamespaceUriFunction.h new file mode 100644 index 00000000000..0838222b03f --- /dev/null +++ b/libjava/gnu/xml/xpath/NamespaceUriFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NamespaceUriFunction__ +#define __gnu_xml_xpath_NamespaceUriFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class NamespaceUriFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NamespaceUriFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + NamespaceUriFunction(::java::util::List *); + NamespaceUriFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NamespaceUriFunction__ diff --git a/libjava/gnu/xml/xpath/NegativeExpr.h b/libjava/gnu/xml/xpath/NegativeExpr.h new file mode 100644 index 00000000000..bc4a176f521 --- /dev/null +++ b/libjava/gnu/xml/xpath/NegativeExpr.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NegativeExpr__ +#define __gnu_xml_xpath_NegativeExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class NegativeExpr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NegativeExpr : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + NegativeExpr(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) expr; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NegativeExpr__ diff --git a/libjava/gnu/xml/xpath/NodeTypeTest.h b/libjava/gnu/xml/xpath/NodeTypeTest.h new file mode 100644 index 00000000000..952aee4fc9b --- /dev/null +++ b/libjava/gnu/xml/xpath/NodeTypeTest.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NodeTypeTest__ +#define __gnu_xml_xpath_NodeTypeTest__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class NodeTypeTest; + class Test; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NodeTypeTest : public ::gnu::xml::xpath::Test +{ + +public: + NodeTypeTest(jshort); + NodeTypeTest(jshort, ::java::lang::String *); + jshort getNodeType(); + ::java::lang::String * getData(); + jboolean matches(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Test * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + jshort __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Test)))) type; + ::java::lang::String * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NodeTypeTest__ diff --git a/libjava/gnu/xml/xpath/NormalizeSpaceFunction.h b/libjava/gnu/xml/xpath/NormalizeSpaceFunction.h new file mode 100644 index 00000000000..6637aec97de --- /dev/null +++ b/libjava/gnu/xml/xpath/NormalizeSpaceFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NormalizeSpaceFunction__ +#define __gnu_xml_xpath_NormalizeSpaceFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class NormalizeSpaceFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NormalizeSpaceFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + NormalizeSpaceFunction(::java::util::List *); + NormalizeSpaceFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NormalizeSpaceFunction__ diff --git a/libjava/gnu/xml/xpath/NotFunction.h b/libjava/gnu/xml/xpath/NotFunction.h new file mode 100644 index 00000000000..117055bfe2a --- /dev/null +++ b/libjava/gnu/xml/xpath/NotFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NotFunction__ +#define __gnu_xml_xpath_NotFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class NotFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NotFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + NotFunction(::java::util::List *); + NotFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NotFunction__ diff --git a/libjava/gnu/xml/xpath/NumberFunction.h b/libjava/gnu/xml/xpath/NumberFunction.h new file mode 100644 index 00000000000..bdbeafe65ec --- /dev/null +++ b/libjava/gnu/xml/xpath/NumberFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_NumberFunction__ +#define __gnu_xml_xpath_NumberFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class NumberFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::NumberFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + NumberFunction(::java::util::List *); + NumberFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_NumberFunction__ diff --git a/libjava/gnu/xml/xpath/OrExpr.h b/libjava/gnu/xml/xpath/OrExpr.h new file mode 100644 index 00000000000..8296fc686b6 --- /dev/null +++ b/libjava/gnu/xml/xpath/OrExpr.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_OrExpr__ +#define __gnu_xml_xpath_OrExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class OrExpr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::OrExpr : public ::gnu::xml::xpath::Expr +{ + +public: + OrExpr(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) lhs; + ::gnu::xml::xpath::Expr * rhs; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_OrExpr__ diff --git a/libjava/gnu/xml/xpath/ParenthesizedExpr.h b/libjava/gnu/xml/xpath/ParenthesizedExpr.h new file mode 100644 index 00000000000..09a5efaeb5f --- /dev/null +++ b/libjava/gnu/xml/xpath/ParenthesizedExpr.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_ParenthesizedExpr__ +#define __gnu_xml_xpath_ParenthesizedExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class ParenthesizedExpr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::ParenthesizedExpr : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + ParenthesizedExpr(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) expr; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_ParenthesizedExpr__ diff --git a/libjava/gnu/xml/xpath/Path.h b/libjava/gnu/xml/xpath/Path.h new file mode 100644 index 00000000000..f36b5ceffe3 --- /dev/null +++ b/libjava/gnu/xml/xpath/Path.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Path__ +#define __gnu_xml_xpath_Path__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Path; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Path : public ::gnu::xml::xpath::Pattern +{ + +public: // actually package-private + Path(); + virtual ::java::util::Collection * evaluate(::org::w3c::dom::Node *, ::java::util::Collection *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Path__ diff --git a/libjava/gnu/xml/xpath/Pattern.h b/libjava/gnu/xml/xpath/Pattern.h new file mode 100644 index 00000000000..917835eec15 --- /dev/null +++ b/libjava/gnu/xml/xpath/Pattern.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Pattern__ +#define __gnu_xml_xpath_Pattern__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Pattern; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Pattern : public ::gnu::xml::xpath::Expr +{ + +public: + Pattern(); + virtual jboolean matches(::org::w3c::dom::Node *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Pattern__ diff --git a/libjava/gnu/xml/xpath/PositionFunction.h b/libjava/gnu/xml/xpath/PositionFunction.h new file mode 100644 index 00000000000..4a06fb03a01 --- /dev/null +++ b/libjava/gnu/xml/xpath/PositionFunction.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_PositionFunction__ +#define __gnu_xml_xpath_PositionFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class PositionFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::PositionFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + PositionFunction(); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_PositionFunction__ diff --git a/libjava/gnu/xml/xpath/Predicate.h b/libjava/gnu/xml/xpath/Predicate.h new file mode 100644 index 00000000000..da2df353f89 --- /dev/null +++ b/libjava/gnu/xml/xpath/Predicate.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Predicate__ +#define __gnu_xml_xpath_Predicate__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class Predicate; + class Test; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Predicate : public ::gnu::xml::xpath::Test +{ + +public: // actually package-private + Predicate(::gnu::xml::xpath::Expr *); +public: + virtual jboolean matches(::org::w3c::dom::Node *, jint, jint); + virtual ::gnu::xml::xpath::Test * clone(::java::lang::Object *); + virtual jboolean references(::javax::xml::namespace::QName *); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Test)))) expr; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Predicate__ diff --git a/libjava/gnu/xml/xpath/RelationalExpr.h b/libjava/gnu/xml/xpath/RelationalExpr.h new file mode 100644 index 00000000000..727282e642c --- /dev/null +++ b/libjava/gnu/xml/xpath/RelationalExpr.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_RelationalExpr__ +#define __gnu_xml_xpath_RelationalExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class RelationalExpr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::RelationalExpr : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + RelationalExpr(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *, jboolean, jboolean); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) lhs; + ::gnu::xml::xpath::Expr * rhs; + jboolean lt; + jboolean eq; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_RelationalExpr__ diff --git a/libjava/gnu/xml/xpath/Root.h b/libjava/gnu/xml/xpath/Root.h new file mode 100644 index 00000000000..3988c14deb7 --- /dev/null +++ b/libjava/gnu/xml/xpath/Root.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Root__ +#define __gnu_xml_xpath_Root__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class Root; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Root : public ::gnu::xml::xpath::Path +{ + +public: + Root(); + jboolean matches(::org::w3c::dom::Node *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + ::java::util::Collection * evaluate(::org::w3c::dom::Node *, ::java::util::Collection *); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Root__ diff --git a/libjava/gnu/xml/xpath/RoundFunction.h b/libjava/gnu/xml/xpath/RoundFunction.h new file mode 100644 index 00000000000..6568dc13290 --- /dev/null +++ b/libjava/gnu/xml/xpath/RoundFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_RoundFunction__ +#define __gnu_xml_xpath_RoundFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class RoundFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::RoundFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + RoundFunction(::java::util::List *); + RoundFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_RoundFunction__ diff --git a/libjava/gnu/xml/xpath/Selector.h b/libjava/gnu/xml/xpath/Selector.h new file mode 100644 index 00000000000..8b0495ff69b --- /dev/null +++ b/libjava/gnu/xml/xpath/Selector.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Selector__ +#define __gnu_xml_xpath_Selector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class Selector; + class Test; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Selector : public ::gnu::xml::xpath::Path +{ + +public: + Selector(jint, ::java::util::List *); + JArray< ::gnu::xml::xpath::Test * > * getTests(); + jboolean matches(::org::w3c::dom::Node *); +public: // actually package-private + jboolean matches(::org::w3c::dom::Node *, jint, jint); +private: + jint getContextPosition(::org::w3c::dom::Node *); + jint getContextSize(::org::w3c::dom::Node *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + ::java::util::Collection * evaluate(::org::w3c::dom::Node *, ::java::util::Collection *); + ::java::util::List * filterCandidates(::java::util::List *, jboolean); + void addCandidates(::org::w3c::dom::Node *, ::java::util::Collection *); + void addChildNodes(::org::w3c::dom::Node *, ::java::util::Collection *, jboolean); + void addParentNode(::org::w3c::dom::Node *, ::java::util::Collection *, jboolean); + void addFollowingNodes(::org::w3c::dom::Node *, ::java::util::Collection *, jboolean); + void addPrecedingNodes(::org::w3c::dom::Node *, ::java::util::Collection *, jboolean); + void addAttributes(::org::w3c::dom::Node *, ::java::util::Collection *); + void addNamespaceAttributes(::org::w3c::dom::Node *, ::java::util::Collection *); + jboolean isNamespaceAttribute(::org::w3c::dom::Node *); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); + static const jint ANCESTOR = 0; + static const jint ANCESTOR_OR_SELF = 1; + static const jint ATTRIBUTE = 2; + static const jint CHILD = 3; + static const jint DESCENDANT = 4; + static const jint DESCENDANT_OR_SELF = 5; + static const jint FOLLOWING = 6; + static const jint FOLLOWING_SIBLING = 7; + static const jint NAMESPACE = 8; + static const jint PARENT = 9; + static const jint PRECEDING = 10; + static const jint PRECEDING_SIBLING = 11; + static const jint SELF = 12; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Path)))) axis; + JArray< ::gnu::xml::xpath::Test * > * tests; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Selector__ diff --git a/libjava/gnu/xml/xpath/StartsWithFunction.h b/libjava/gnu/xml/xpath/StartsWithFunction.h new file mode 100644 index 00000000000..34b5ff12922 --- /dev/null +++ b/libjava/gnu/xml/xpath/StartsWithFunction.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_StartsWithFunction__ +#define __gnu_xml_xpath_StartsWithFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class StartsWithFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::StartsWithFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + StartsWithFunction(::java::util::List *); + StartsWithFunction(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg1; + ::gnu::xml::xpath::Expr * arg2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_StartsWithFunction__ diff --git a/libjava/gnu/xml/xpath/Steps.h b/libjava/gnu/xml/xpath/Steps.h new file mode 100644 index 00000000000..f2802895675 --- /dev/null +++ b/libjava/gnu/xml/xpath/Steps.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Steps__ +#define __gnu_xml_xpath_Steps__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class Pattern; + class Steps; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Steps : public ::gnu::xml::xpath::Path +{ + +public: + Steps(); +public: // actually package-private + Steps(::java::util::LinkedList *); +public: + jboolean matches(::org::w3c::dom::Node *); +public: // actually package-private + jboolean matches(::org::w3c::dom::Node *, jint); + ::java::util::Collection * possibleContexts(::gnu::xml::xpath::Pattern *, ::org::w3c::dom::Node *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); +public: // actually package-private + ::java::util::Collection * evaluate(::org::w3c::dom::Node *, ::java::util::Collection *); +public: + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Path)))) path; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Steps__ diff --git a/libjava/gnu/xml/xpath/StringFunction.h b/libjava/gnu/xml/xpath/StringFunction.h new file mode 100644 index 00000000000..0e2e907e7be --- /dev/null +++ b/libjava/gnu/xml/xpath/StringFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_StringFunction__ +#define __gnu_xml_xpath_StringFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class StringFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::StringFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + StringFunction(::java::util::List *); + StringFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_StringFunction__ diff --git a/libjava/gnu/xml/xpath/StringLengthFunction.h b/libjava/gnu/xml/xpath/StringLengthFunction.h new file mode 100644 index 00000000000..a181d292343 --- /dev/null +++ b/libjava/gnu/xml/xpath/StringLengthFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_StringLengthFunction__ +#define __gnu_xml_xpath_StringLengthFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class StringLengthFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::StringLengthFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + StringLengthFunction(::java::util::List *); + StringLengthFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_StringLengthFunction__ diff --git a/libjava/gnu/xml/xpath/SubstringAfterFunction.h b/libjava/gnu/xml/xpath/SubstringAfterFunction.h new file mode 100644 index 00000000000..4c89a7c072d --- /dev/null +++ b/libjava/gnu/xml/xpath/SubstringAfterFunction.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_SubstringAfterFunction__ +#define __gnu_xml_xpath_SubstringAfterFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class SubstringAfterFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::SubstringAfterFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + SubstringAfterFunction(::java::util::List *); + SubstringAfterFunction(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg1; + ::gnu::xml::xpath::Expr * arg2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_SubstringAfterFunction__ diff --git a/libjava/gnu/xml/xpath/SubstringBeforeFunction.h b/libjava/gnu/xml/xpath/SubstringBeforeFunction.h new file mode 100644 index 00000000000..97d2fd0de11 --- /dev/null +++ b/libjava/gnu/xml/xpath/SubstringBeforeFunction.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_SubstringBeforeFunction__ +#define __gnu_xml_xpath_SubstringBeforeFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class SubstringBeforeFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::SubstringBeforeFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + SubstringBeforeFunction(::java::util::List *); + SubstringBeforeFunction(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg1; + ::gnu::xml::xpath::Expr * arg2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_SubstringBeforeFunction__ diff --git a/libjava/gnu/xml/xpath/SubstringFunction.h b/libjava/gnu/xml/xpath/SubstringFunction.h new file mode 100644 index 00000000000..51a3d052c65 --- /dev/null +++ b/libjava/gnu/xml/xpath/SubstringFunction.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_SubstringFunction__ +#define __gnu_xml_xpath_SubstringFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class SubstringFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::SubstringFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + SubstringFunction(::java::util::List *); + SubstringFunction(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg1; + ::gnu::xml::xpath::Expr * arg2; + ::gnu::xml::xpath::Expr * arg3; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_SubstringFunction__ diff --git a/libjava/gnu/xml/xpath/SumFunction.h b/libjava/gnu/xml/xpath/SumFunction.h new file mode 100644 index 00000000000..aeb7e163df6 --- /dev/null +++ b/libjava/gnu/xml/xpath/SumFunction.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_SumFunction__ +#define __gnu_xml_xpath_SumFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class SumFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::SumFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + SumFunction(::java::util::List *); + SumFunction(::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_SumFunction__ diff --git a/libjava/gnu/xml/xpath/Test.h b/libjava/gnu/xml/xpath/Test.h new file mode 100644 index 00000000000..2e5f77f3543 --- /dev/null +++ b/libjava/gnu/xml/xpath/Test.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_Test__ +#define __gnu_xml_xpath_Test__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Test; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::Test : public ::java::lang::Object +{ + +public: + Test(); + virtual jboolean matches(::org::w3c::dom::Node *, jint, jint) = 0; + virtual ::gnu::xml::xpath::Test * clone(::java::lang::Object *) = 0; + virtual jboolean references(::javax::xml::namespace::QName *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_Test__ diff --git a/libjava/gnu/xml/xpath/TranslateFunction.h b/libjava/gnu/xml/xpath/TranslateFunction.h new file mode 100644 index 00000000000..b2a708a19fa --- /dev/null +++ b/libjava/gnu/xml/xpath/TranslateFunction.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_TranslateFunction__ +#define __gnu_xml_xpath_TranslateFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class TranslateFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::TranslateFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + TranslateFunction(::java::util::List *); + TranslateFunction(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) arg1; + ::gnu::xml::xpath::Expr * arg2; + ::gnu::xml::xpath::Expr * arg3; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_TranslateFunction__ diff --git a/libjava/gnu/xml/xpath/TrueFunction.h b/libjava/gnu/xml/xpath/TrueFunction.h new file mode 100644 index 00000000000..a5958170cb5 --- /dev/null +++ b/libjava/gnu/xml/xpath/TrueFunction.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_TrueFunction__ +#define __gnu_xml_xpath_TrueFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class TrueFunction; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::TrueFunction : public ::gnu::xml::xpath::Expr +{ + +public: // actually package-private + TrueFunction(); +public: + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_TrueFunction__ diff --git a/libjava/gnu/xml/xpath/UnionExpr.h b/libjava/gnu/xml/xpath/UnionExpr.h new file mode 100644 index 00000000000..1186ee27c6a --- /dev/null +++ b/libjava/gnu/xml/xpath/UnionExpr.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_UnionExpr__ +#define __gnu_xml_xpath_UnionExpr__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class UnionExpr; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::UnionExpr : public ::gnu::xml::xpath::Pattern +{ + +public: + UnionExpr(::gnu::xml::xpath::Expr *, ::gnu::xml::xpath::Expr *); + jboolean matches(::org::w3c::dom::Node *); + ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + jboolean references(::javax::xml::namespace::QName *); + ::java::lang::String * toString(); +public: // actually package-private + ::gnu::xml::xpath::Expr * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Pattern)))) lhs; + ::gnu::xml::xpath::Expr * rhs; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_UnionExpr__ diff --git a/libjava/gnu/xml/xpath/VariableReference.h b/libjava/gnu/xml/xpath/VariableReference.h new file mode 100644 index 00000000000..c1a611c55d6 --- /dev/null +++ b/libjava/gnu/xml/xpath/VariableReference.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_VariableReference__ +#define __gnu_xml_xpath_VariableReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class VariableReference; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace xpath + { + class XPathVariableResolver; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class gnu::xml::xpath::VariableReference : public ::gnu::xml::xpath::Expr +{ + +public: + VariableReference(::javax::xml::xpath::XPathVariableResolver *, ::javax::xml::namespace::QName *); + virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jint, jint); + virtual ::gnu::xml::xpath::Expr * clone(::java::lang::Object *); + virtual jboolean references(::javax::xml::namespace::QName *); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::javax::xml::xpath::XPathVariableResolver * __attribute__((aligned(__alignof__( ::gnu::xml::xpath::Expr)))) resolver; + ::javax::xml::namespace::QName * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_VariableReference__ diff --git a/libjava/gnu/xml/xpath/XPathFactoryImpl.h b/libjava/gnu/xml/xpath/XPathFactoryImpl.h new file mode 100644 index 00000000000..41349bf8b9e --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathFactoryImpl.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathFactoryImpl__ +#define __gnu_xml_xpath_XPathFactoryImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathFactoryImpl; + } + } + } + namespace javax + { + namespace xml + { + namespace xpath + { + class XPath; + class XPathFunctionResolver; + class XPathVariableResolver; + } + } + } +} + +class gnu::xml::xpath::XPathFactoryImpl : public ::javax::xml::xpath::XPathFactory +{ + +public: + XPathFactoryImpl(); + virtual jboolean isObjectModelSupported(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual jboolean getFeature(::java::lang::String *); + virtual void setXPathVariableResolver(::javax::xml::xpath::XPathVariableResolver *); + virtual void setXPathFunctionResolver(::javax::xml::xpath::XPathFunctionResolver *); + virtual ::javax::xml::xpath::XPath * newXPath(); +public: // actually package-private + ::javax::xml::xpath::XPathVariableResolver * __attribute__((aligned(__alignof__( ::javax::xml::xpath::XPathFactory)))) variableResolver; + ::javax::xml::xpath::XPathFunctionResolver * functionResolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathFactoryImpl__ diff --git a/libjava/gnu/xml/xpath/XPathImpl.h b/libjava/gnu/xml/xpath/XPathImpl.h new file mode 100644 index 00000000000..1f84db72175 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathImpl.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathImpl__ +#define __gnu_xml_xpath_XPathImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathImpl; + class XPathParser; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace xpath + { + class XPathExpression; + class XPathFunctionResolver; + class XPathVariableResolver; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class gnu::xml::xpath::XPathImpl : public ::java::lang::Object +{ + +public: // actually package-private + XPathImpl(::javax::xml::namespace::NamespaceContext *, ::javax::xml::xpath::XPathVariableResolver *, ::javax::xml::xpath::XPathFunctionResolver *); +public: + virtual void reset(); + virtual void setXPathVariableResolver(::javax::xml::xpath::XPathVariableResolver *); + virtual ::javax::xml::xpath::XPathVariableResolver * getXPathVariableResolver(); + virtual void setXPathFunctionResolver(::javax::xml::xpath::XPathFunctionResolver *); + virtual ::javax::xml::xpath::XPathFunctionResolver * getXPathFunctionResolver(); + virtual void setNamespaceContext(::javax::xml::namespace::NamespaceContext *); + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext(); + virtual ::javax::xml::xpath::XPathExpression * compile(::java::lang::String *); + virtual ::java::lang::Object * evaluate(::java::lang::String *, ::java::lang::Object *, ::javax::xml::namespace::QName *); + virtual ::java::lang::String * evaluate(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * evaluate(::java::lang::String *, ::org::xml::sax::InputSource *, ::javax::xml::namespace::QName *); + virtual ::java::lang::String * evaluate(::java::lang::String *, ::org::xml::sax::InputSource *); +public: // actually package-private + ::gnu::xml::xpath::XPathParser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parser; + ::javax::xml::namespace::NamespaceContext * namespaceContext; + ::javax::xml::xpath::XPathVariableResolver * variableResolver; + ::javax::xml::xpath::XPathFunctionResolver * functionResolver; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathImpl__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyCheckClass.h b/libjava/gnu/xml/xpath/XPathParser$YyCheckClass.h new file mode 100644 index 00000000000..f364f4a1ca4 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyCheckClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyCheckClass__ +#define __gnu_xml_xpath_XPathParser$YyCheckClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyCheckClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyCheckClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyCheckClass(); +public: + static JArray< jshort > * yyCheck; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyCheckClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyDefRedClass.h b/libjava/gnu/xml/xpath/XPathParser$YyDefRedClass.h new file mode 100644 index 00000000000..23cd3407360 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyDefRedClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyDefRedClass__ +#define __gnu_xml_xpath_XPathParser$YyDefRedClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyDefRedClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyDefRedClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyDefRedClass(); +public: + static JArray< jshort > * yyDefRed; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyDefRedClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyDgotoClass.h b/libjava/gnu/xml/xpath/XPathParser$YyDgotoClass.h new file mode 100644 index 00000000000..97d0f1be407 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyDgotoClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyDgotoClass__ +#define __gnu_xml_xpath_XPathParser$YyDgotoClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyDgotoClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyDgotoClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyDgotoClass(); +public: + static JArray< jshort > * yyDgoto; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyDgotoClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyGindexClass.h b/libjava/gnu/xml/xpath/XPathParser$YyGindexClass.h new file mode 100644 index 00000000000..1a2e31ff82d --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyGindexClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyGindexClass__ +#define __gnu_xml_xpath_XPathParser$YyGindexClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyGindexClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyGindexClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyGindexClass(); +public: + static JArray< jshort > * yyGindex; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyGindexClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyLenClass.h b/libjava/gnu/xml/xpath/XPathParser$YyLenClass.h new file mode 100644 index 00000000000..4e95f9d2bae --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyLenClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyLenClass__ +#define __gnu_xml_xpath_XPathParser$YyLenClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyLenClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyLenClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyLenClass(); +public: + static JArray< jshort > * yyLen; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyLenClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyLhsClass.h b/libjava/gnu/xml/xpath/XPathParser$YyLhsClass.h new file mode 100644 index 00000000000..c9c0ea4918a --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyLhsClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyLhsClass__ +#define __gnu_xml_xpath_XPathParser$YyLhsClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyLhsClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyLhsClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyLhsClass(); +public: + static JArray< jshort > * yyLhs; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyLhsClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyNameClass.h b/libjava/gnu/xml/xpath/XPathParser$YyNameClass.h new file mode 100644 index 00000000000..216fcff02ad --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyNameClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyNameClass__ +#define __gnu_xml_xpath_XPathParser$YyNameClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyNameClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyNameClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyNameClass(); +public: + static JArray< ::java::lang::String * > * yyName; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyNameClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyRindexClass.h b/libjava/gnu/xml/xpath/XPathParser$YyRindexClass.h new file mode 100644 index 00000000000..d1a439e48fa --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyRindexClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyRindexClass__ +#define __gnu_xml_xpath_XPathParser$YyRindexClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyRindexClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyRindexClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyRindexClass(); +public: + static JArray< jshort > * yyRindex; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyRindexClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YySindexClass.h b/libjava/gnu/xml/xpath/XPathParser$YySindexClass.h new file mode 100644 index 00000000000..2a129b2339c --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YySindexClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YySindexClass__ +#define __gnu_xml_xpath_XPathParser$YySindexClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YySindexClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YySindexClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YySindexClass(); +public: + static JArray< jshort > * yySindex; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YySindexClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$YyTableClass.h b/libjava/gnu/xml/xpath/XPathParser$YyTableClass.h new file mode 100644 index 00000000000..2408d361a87 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$YyTableClass.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$YyTableClass__ +#define __gnu_xml_xpath_XPathParser$YyTableClass__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$YyTableClass; + } + } + } +} + +class gnu::xml::xpath::XPathParser$YyTableClass : public ::java::lang::Object +{ + +public: // actually protected + XPathParser$YyTableClass(); +public: + static JArray< jshort > * yyTable; + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$YyTableClass__ diff --git a/libjava/gnu/xml/xpath/XPathParser$yyException.h b/libjava/gnu/xml/xpath/XPathParser$yyException.h new file mode 100644 index 00000000000..bf25adb2fa4 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$yyException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$yyException__ +#define __gnu_xml_xpath_XPathParser$yyException__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$yyException; + } + } + } +} + +class gnu::xml::xpath::XPathParser$yyException : public ::java::lang::Exception +{ + +public: + XPathParser$yyException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser$yyException__ diff --git a/libjava/gnu/xml/xpath/XPathParser$yyInput.h b/libjava/gnu/xml/xpath/XPathParser$yyInput.h new file mode 100644 index 00000000000..4383ddf2718 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser$yyInput.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser$yyInput__ +#define __gnu_xml_xpath_XPathParser$yyInput__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathParser$yyInput; + } + } + } +} + +class gnu::xml::xpath::XPathParser$yyInput : public ::java::lang::Object +{ + +public: + virtual jboolean advance() = 0; + virtual jint token() = 0; + virtual ::java::lang::Object * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_xml_xpath_XPathParser$yyInput__ diff --git a/libjava/gnu/xml/xpath/XPathParser.h b/libjava/gnu/xml/xpath/XPathParser.h new file mode 100644 index 00000000000..13c48744ff1 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathParser.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathParser__ +#define __gnu_xml_xpath_XPathParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class Expr; + class XPathParser; + class XPathParser$yyInput; + } + } + } + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace xpath + { + class XPathFunctionResolver; + class XPathVariableResolver; + } + } + } +} + +class gnu::xml::xpath::XPathParser : public ::java::lang::Object +{ + +public: + XPathParser(); +public: // actually package-private + virtual ::javax::xml::namespace::QName * getQName(::java::lang::String *); + virtual ::gnu::xml::xpath::Expr * lookupFunction(::java::lang::String *, ::java::util::List *); +public: + virtual void yyerror(::java::lang::String *); + virtual void yyerror(::java::lang::String *, JArray< ::java::lang::String * > *); +public: // actually protected + virtual JArray< ::java::lang::String * > * yyExpecting(jint); +public: + virtual ::java::lang::Object * yyparse(::gnu::xml::xpath::XPathParser$yyInput *, ::java::lang::Object *); +public: // actually protected + virtual ::java::lang::Object * yyDefault(::java::lang::Object *); +public: + virtual ::java::lang::Object * yyparse(::gnu::xml::xpath::XPathParser$yyInput *); +public: // actually package-private + ::javax::xml::namespace::NamespaceContext * __attribute__((aligned(__alignof__( ::java::lang::Object)))) namespaceContext; + ::javax::xml::xpath::XPathVariableResolver * variableResolver; + ::javax::xml::xpath::XPathFunctionResolver * functionResolver; +public: + static const jint LITERAL = 257; + static const jint DIGITS = 258; + static const jint NAME = 259; + static const jint LP = 260; + static const jint RP = 261; + static const jint LB = 262; + static const jint RB = 263; + static const jint COMMA = 264; + static const jint PIPE = 265; + static const jint SLASH = 266; + static const jint DOUBLE_SLASH = 267; + static const jint EQ = 268; + static const jint NE = 269; + static const jint GT = 270; + static const jint LT = 271; + static const jint GTE = 272; + static const jint LTE = 273; + static const jint PLUS = 274; + static const jint MINUS = 275; + static const jint AT = 276; + static const jint STAR = 277; + static const jint DOLLAR = 278; + static const jint COLON = 279; + static const jint DOUBLE_COLON = 280; + static const jint DOT = 281; + static const jint DOUBLE_DOT = 282; + static const jint ANCESTOR = 283; + static const jint ANCESTOR_OR_SELF = 284; + static const jint ATTRIBUTE = 285; + static const jint CHILD = 286; + static const jint DESCENDANT = 287; + static const jint DESCENDANT_OR_SELF = 288; + static const jint FOLLOWING = 289; + static const jint FOLLOWING_SIBLING = 290; + static const jint NAMESPACE = 291; + static const jint PARENT = 292; + static const jint PRECEDING = 293; + static const jint PRECEDING_SIBLING = 294; + static const jint SELF = 295; + static const jint DIV = 296; + static const jint MOD = 297; + static const jint OR = 298; + static const jint AND = 299; + static const jint COMMENT = 300; + static const jint PROCESSING_INSTRUCTION = 301; + static const jint TEXT = 302; + static const jint NODE = 303; + static const jint UNARY = 304; + static const jint yyErrorCode = 256; +public: // actually protected + static const jint yyFinal = 30; + jint yyMax; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathParser__ diff --git a/libjava/gnu/xml/xpath/XPathTokenizer$XPathToken.h b/libjava/gnu/xml/xpath/XPathTokenizer$XPathToken.h new file mode 100644 index 00000000000..ae018906671 --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathTokenizer$XPathToken.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathTokenizer$XPathToken__ +#define __gnu_xml_xpath_XPathTokenizer$XPathToken__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathTokenizer$XPathToken; + } + } + } +} + +class gnu::xml::xpath::XPathTokenizer$XPathToken : public ::java::lang::Object +{ + +public: // actually package-private + XPathTokenizer$XPathToken(jint); + XPathTokenizer$XPathToken(jint, ::java::lang::String *); +public: + virtual ::java::lang::String * getText(); + virtual ::java::lang::String * toString(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::java::lang::String * val; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathTokenizer$XPathToken__ diff --git a/libjava/gnu/xml/xpath/XPathTokenizer.h b/libjava/gnu/xml/xpath/XPathTokenizer.h new file mode 100644 index 00000000000..4cbf9ec141d --- /dev/null +++ b/libjava/gnu/xml/xpath/XPathTokenizer.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_xml_xpath_XPathTokenizer__ +#define __gnu_xml_xpath_XPathTokenizer__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace xml + { + namespace xpath + { + class XPathTokenizer; + class XPathTokenizer$XPathToken; + } + } + } +} + +class gnu::xml::xpath::XPathTokenizer : public ::java::lang::Object +{ + +public: + XPathTokenizer(::java::lang::String *); +public: // actually package-private + XPathTokenizer(::java::io::Reader *); +public: + virtual jboolean advance(); + virtual jint token(); + virtual ::java::lang::Object * value(); +public: // actually package-private + virtual ::gnu::xml::xpath::XPathTokenizer$XPathToken * consume_literal(jint); + virtual ::gnu::xml::xpath::XPathTokenizer$XPathToken * consume_digits(jint); + virtual ::gnu::xml::xpath::XPathTokenizer$XPathToken * consume_name(jint); + virtual jboolean isNameChar(jint); + static ::java::util::Map * keywords; + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; + ::gnu::xml::xpath::XPathTokenizer$XPathToken * token__; + ::gnu::xml::xpath::XPathTokenizer$XPathToken * lastToken; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_xml_xpath_XPathTokenizer__ diff --git a/libjava/headers.txt b/libjava/headers.txt new file mode 100644 index 00000000000..afc64189ab2 --- /dev/null +++ b/libjava/headers.txt @@ -0,0 +1,65 @@ +class java/lang/ClassLoader +prepend jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader); +prepend void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar); +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); + +class java/lang/Thread +prepend class _Jv_JNIEnv; +prepend #define _JV_NOT_OWNER 1 +prepend #define _JV_INTERRUPTED 2 +prepend _Jv_JNIEnv * _Jv_GetCurrentJNIEnv (); +prepend void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env); +prepend void _Jv_ThreadRun (java::lang::Thread* thread); +prepend jint _Jv_AttachCurrentThread(java::lang::Thread* thread); +prepend java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group); +prepend java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group); +prepend jint _Jv_DetachCurrentThread (); +prepend struct _Jv_Thread_t; +prepend _Jv_Thread_t* _Jv_ThreadGetData (java::lang::Thread* thread); +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) (); + +class java/lang/String +prepend jchar* _Jv_GetStringChars (jstring str); +prepend jstring* _Jv_StringFindSlot (jchar*, jint, jint); +prepend jstring* _Jv_StringGetSlot (jstring); +prepend jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str); +prepend jstring _Jv_NewStringLatin1 (const char*, jsize); +prepend jstring _Jv_AllocString (jsize); +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); + +class java/lang/reflect/Constructor +prepend jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *); +prepend jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean); +friend jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *); +friend jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean); +friend class java::lang::Class; + +class java/lang/reflect/Field +prepend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *); +prepend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean); +friend jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *); +friend jobject (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean); +friend class java::lang::Class; + +class java/lang/reflect/Method +prepend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *); +prepend jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean); +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; + +class gnu/gcj/runtime/ExtensionClassLoader +friend class ::java::lang::ClassLoader; diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in index 26c8ce9a582..6ebb3b4feb2 100644 --- a/libjava/include/Makefile.in +++ b/libjava/include/Makefile.in @@ -90,6 +90,8 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BASH_JAR_FALSE = @BASH_JAR_FALSE@ BASH_JAR_TRUE = @BASH_JAR_TRUE@ +BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ +BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -109,7 +111,11 @@ DIVIDESPEC = @DIVIDESPEC@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +ECJ_BUILD_JAR = @ECJ_BUILD_JAR@ +ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ +ENABLE_SHARED_FALSE = @ENABLE_SHARED_FALSE@ +ENABLE_SHARED_TRUE = @ENABLE_SHARED_TRUE@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ @@ -120,6 +126,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ GCTESTSPEC = @GCTESTSPEC@ @@ -131,6 +138,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ INSTALL_DATA = @INSTALL_DATA@ +INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ +INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -139,6 +148,8 @@ JAR = @JAR@ JAVA_HOME = @JAVA_HOME@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JC1GCSPEC = @JC1GCSPEC@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -157,6 +168,7 @@ LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@ LIBGCJ_SPEC = @LIBGCJ_SPEC@ LIBICONV = @LIBICONV@ LIBLTDL = @LIBLTDL@ +LIBMAGIC = @LIBMAGIC@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ @@ -181,7 +193,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ -PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@ +PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -223,6 +235,8 @@ USING_WIN32_THREADS_TRUE = @USING_WIN32_THREADS_TRUE@ VERSION = @VERSION@ XLIB_AWT_FALSE = @XLIB_AWT_FALSE@ XLIB_AWT_TRUE = @XLIB_AWT_TRUE@ +X_AWT_FALSE = @X_AWT_FALSE@ +X_AWT_TRUE = @X_AWT_TRUE@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -268,6 +282,7 @@ here = @here@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ +host_exeext = @host_exeext@ host_os = @host_os@ host_subdir = @host_subdir@ host_vendor = @host_vendor@ diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in index a8ebfade662..3b6e891af3d 100644 --- a/libjava/include/config.h.in +++ b/libjava/include/config.h.in @@ -1,5 +1,8 @@ /* include/config.h.in. Generated from configure.ac by autoheader. */ +/* Name of default AWT toolkit */ +#undef AWT_TOOLKIT + /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ @@ -181,6 +184,12 @@ /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT +/* Define to 1 if you have the header file. */ +#undef HAVE_MAGIC_H + +/* Define if you have magic_open(). */ +#undef HAVE_MAGIC_OPEN + /* Define to 1 if you have the `memcpy' function. */ #undef HAVE_MEMCPY @@ -390,6 +399,9 @@ /* Define if we want to use debug calls into the garbage collector. */ #undef LIBGCJ_GC_DEBUG +/* Installation prefix */ +#undef LIBGCJ_PREFIX + /* Define if using POSIX threads on Linux. */ #undef LINUX_THREADS diff --git a/libjava/include/java-cpool.h b/libjava/include/java-cpool.h index c636e4c6bca..412250230df 100644 --- a/libjava/include/java-cpool.h +++ b/libjava/include/java-cpool.h @@ -28,6 +28,7 @@ details. */ #define JV_CONSTANT_InterfaceMethodref (11L) #define JV_CONSTANT_NameAndType (12L) #define JV_CONSTANT_ResolvedFlag (16L) +#define JV_CONSTANT_LazyFlag (32L) #define JV_CONSTANT_ResolvedString (16L | 8L) #define JV_CONSTANT_ResolvedClass (16L | 7L) diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 74846c9f6b2..3b15b5cb222 100644 --- a/libjava/include/java-interp.h +++ b/libjava/include/java-interp.h @@ -45,6 +45,12 @@ int _Jv_count_arguments (_Jv_Utf8Const *signature, jboolean staticp = true); void _Jv_VerifyMethod (_Jv_InterpMethod *method); void _Jv_CompileMethod (_Jv_InterpMethod* method); +int _Jv_init_cif (_Jv_Utf8Const* signature, + int arg_count, + jboolean staticp, + ffi_cif *cif, + ffi_type **arg_types, + ffi_type **rtype_p); /* the interpreter is written in C++, primarily because it makes it easy for * the entire thing to be "friend" with class Class. */ @@ -312,18 +318,27 @@ public: // The interpreted call stack, represented by a linked list of frames. struct _Jv_InterpFrame { - _Jv_InterpMethod *self; + union + { + void *meth; + _Jv_InterpMethod *self; + _Jv_Method *proxyMethod; + }; java::lang::Thread *thread; _Jv_InterpFrame *next; - pc_t pc; - - _Jv_InterpFrame (_Jv_InterpMethod *s, java::lang::Thread *thr) + union + { + pc_t pc; + jclass proxyClass; + }; + + _Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyClass = NULL) { - self = s; + this->meth = meth; thread = thr; next = (_Jv_InterpFrame *) thr->interp_frame; thr->interp_frame = (gnu::gcj::RawData *) this; - pc = NULL; + this->proxyClass = proxyClass; } ~_Jv_InterpFrame () diff --git a/libjava/include/java-stack.h b/libjava/include/java-stack.h index b9cf09a551c..d4d63d74342 100644 --- a/libjava/include/java-stack.h +++ b/libjava/include/java-stack.h @@ -30,10 +30,22 @@ details. */ using namespace gnu::gcj::runtime; using namespace java::lang; +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class VMStackWalker; + } + } +} + enum _Jv_FrameType { frame_native, - frame_interpreter + frame_interpreter, + frame_proxy }; #ifdef INTERPRETER @@ -56,6 +68,10 @@ struct _Jv_StackFrame _Jv_InterpFrameInfo interp; #endif struct { + jclass proxyClass; + _Jv_Method *proxyMethod; + }; + struct { void *ip; void *start_ip; }; @@ -85,12 +101,14 @@ struct _Jv_UnwindState length = ln; pos = 0; frames = NULL; +#ifdef INTERPRETER Thread *thread = Thread::currentThread(); // Check for NULL currentThread(), in case an exception is created // very early during the runtime startup. -#ifdef INTERPRETER if (thread) interp_frame = (_Jv_InterpFrame *) thread->interp_frame; + else + interp_frame = NULL; #endif trace_function = NULL; trace_data = NULL; @@ -117,6 +135,8 @@ private: static _Unwind_Reason_Code calling_class_trace_fn (_Jv_UnwindState *state); static _Unwind_Reason_Code non_system_trace_fn (_Jv_UnwindState *state); static _Unwind_Reason_Code accesscontrol_trace_fn (_Jv_UnwindState *state); + static _Unwind_Reason_Code stackwalker_trace_fn (_Jv_UnwindState *state); + static _Unwind_Reason_Code stackwalker_nnl_trace_fn (_Jv_UnwindState *state); public: static _Jv_StackTrace *GetStackTrace (void); @@ -125,11 +145,14 @@ public: java::lang::Throwable *throwable); static jclass GetCallingClass (jclass); static void GetCallerInfo (jclass checkClass, jclass *, _Jv_Method **); - static JArray *GetClassContext (jclass checkClass); static ClassLoader *GetFirstNonSystemClassLoader (void); static jobjectArray GetAccessControlStack (); + static JArray *GetStackWalkerStack (); + static jclass GetStackWalkerCallingClass (); + static ClassLoader *GetStackWalkerFirstNonNullLoader (); friend jclass _Jv_GetMethodDeclaringClass (jmethodID); + friend class gnu::classpath::VMStackWalker; }; // Information about a given address. diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h index 88b45be983d..203e0d95356 100644 --- a/libjava/include/jvm.h +++ b/libjava/include/jvm.h @@ -30,6 +30,10 @@ details. */ #include #include +#include + +#include + /* Macro for possible unused arguments. */ #define MAYBE_UNUSED __attribute__((__unused__)) @@ -137,6 +141,10 @@ extern int _Jv_strLengthUtf8(const char* str, int len); typedef struct _Jv_Utf8Const Utf8Const; _Jv_Utf8Const *_Jv_makeUtf8Const (const char *s, int len); _Jv_Utf8Const *_Jv_makeUtf8Const (jstring string); +static inline _Jv_Utf8Const *_Jv_makeUtf8Const (const char *s) +{ + return _Jv_makeUtf8Const (s, strlen (s)); +} extern jboolean _Jv_equalUtf8Consts (const _Jv_Utf8Const *, const _Jv_Utf8Const *); extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint); extern jboolean _Jv_equaln (_Jv_Utf8Const *, jstring, jint); @@ -233,6 +241,18 @@ namespace gcj /* Thread stack size specified by the -Xss runtime argument. */ extern size_t stack_size; + + /* The start time */ + extern jlong startTime; + + /* The VM arguments */ + extern JArray* vmArgs; + + // Currently loaded classes + extern jint loadedClasses; + + // Unloaded classes + extern jlong unloadedClasses; } // This class handles all aspects of class preparation and linking. @@ -250,7 +270,6 @@ private: static void link_symbol_table(jclass); static void link_exception_table(jclass); static void layout_interface_methods(jclass); - static void layout_vtable_methods(jclass); static void set_vtable_entries(jclass, _Jv_VTable *); static void make_vtable(jclass); static void ensure_fields_laid_out(jclass); @@ -264,10 +283,6 @@ private: static int get_alignment_from_class(jclass); static void generate_itable(jclass, _Jv_ifaces *, jshort *); static jshort append_partial_itable(jclass, jclass, void **, jshort); - static _Jv_Method *search_method_in_class (jclass, jclass, - _Jv_Utf8Const *, - _Jv_Utf8Const *, - bool check_perms = true); static _Jv_Method *search_method_in_superclasses (jclass cls, jclass klass, _Jv_Utf8Const *method_name, _Jv_Utf8Const *method_signature, @@ -298,9 +313,17 @@ public: static void print_class_loaded (jclass); static void resolve_class_ref (jclass, jclass *); static void wait_for_state(jclass, int); + static _Jv_Method *resolve_method_entry (jclass, jclass &, + int, int, + bool, bool); static _Jv_word resolve_pool_entry (jclass, int, bool =false); static void resolve_field (_Jv_Field *, java::lang::ClassLoader *); static void verify_type_assertions (jclass); + static _Jv_Method *search_method_in_class (jclass, jclass, + _Jv_Utf8Const *, + _Jv_Utf8Const *, + bool check_perms = true); + static void layout_vtable_methods(jclass); }; /* Type of pointer used as finalizer. */ @@ -394,6 +417,8 @@ void _Jv_FreeMethodCache (); void _Jv_SetStackSize (const char *arg); extern "C" void JvRunMain (jclass klass, int argc, const char **argv); +extern "C" void JvRunMainName (const char *name, int argc, const char **argv); + void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar); @@ -633,30 +658,8 @@ extern void _Jv_RegisterBootstrapPackages (); // New style version IDs used by GCJ 4.0.1 and later. #define GCJ_40_BC_ABI_VERSION (4 * 100000 + 0 * 1000) -inline bool -_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 true; - - // 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; - if (abi_ver == GCJ_40_BC_ABI_VERSION && abi_rev <= 0) - return true; - } - else - // C++ ABI - return version == GCJ_CXX_ABI_VERSION; - - return false; -} +void _Jv_CheckABIVersion (unsigned long value); + inline bool _Jv_ClassForBootstrapLoader (unsigned long value) @@ -695,4 +698,71 @@ _Jv_IsPhantomClass (jclass c) // A helper function defined in prims.cc. char* _Jv_PrependVersionedLibdir (char* libpath); + +// An enum for use with JvSetThreadState. We use a C++ enum rather +// than the Java enum to avoid problems with class initialization +// during VM bootstrap. +typedef enum +{ + JV_BLOCKED, + JV_NEW, + JV_RUNNABLE, + JV_TERMINATED, + JV_TIMED_WAITING, + JV_WAITING +} JvThreadState; + +// Temporarily set the thread's state. +class JvSetThreadState +{ +private: + ::java::lang::Thread *thread; + jint saved; + +public: + + // Note that 'cthread' could be NULL -- during VM startup there may + // not be a Thread available. + JvSetThreadState(::java::lang::Thread *cthread, JvThreadState nstate) + : thread (cthread), + saved (cthread ? cthread->state : (jint)JV_NEW) + { + if (thread) + thread->state = nstate; + } + + ~JvSetThreadState() + { + if (thread) + thread->state = saved; + } +}; + +// This structure is used to represent all the data the native side +// needs. An object of this type is assigned to the `data' member of +// the Thread class. +struct natThread +{ + // 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. + volatile obj_addr_t alive_flag; + + // These are used to interrupt sleep and join calls. We can share a + // condition variable here since it only ever gets notified when the thread + // exits. + _Jv_Mutex_t join_mutex; + _Jv_ConditionVariable_t join_cond; + + // These are used by Unsafe.park() and Unsafe.unpark(). + ParkHelper park_helper; + + // This is private data for the thread system layer. + _Jv_Thread_t *thread; + + // Each thread has its own JNI object. + void *jni_env; +}; + #endif /* __JAVA_JVM_H__ */ diff --git a/libjava/include/posix-threads.h b/libjava/include/posix-threads.h index 1f06fc3be18..d5f64957c22 100644 --- a/libjava/include/posix-threads.h +++ b/libjava/include/posix-threads.h @@ -19,6 +19,7 @@ details. */ #include #include +#include // // Typedefs. @@ -131,31 +132,7 @@ _Jv_MutexInit (_Jv_Mutex_t *mu) mu->owner = 0; } -inline int -_Jv_MutexLock (_Jv_Mutex_t *mu) -{ - pthread_t self = pthread_self (); - if (mu->owner == self) - { - mu->count++; - } - else - { -# ifdef LOCK_DEBUG - int result = pthread_mutex_lock (&mu->mutex); - if (0 != result) - { - fprintf(stderr, "Pthread_mutex_lock returned %d\n", result); - for (;;) {} - } -# else - pthread_mutex_lock (&mu->mutex); -# endif - mu->count = 1; - mu->owner = self; - } - return 0; -} +extern int _Jv_MutexLock (_Jv_Mutex_t *); inline int _Jv_MutexUnlock (_Jv_Mutex_t *mu) @@ -374,4 +351,33 @@ void _Jv_ThreadWait (void); void _Jv_ThreadInterrupt (_Jv_Thread_t *data); +// park() / unpark() support + +struct ParkHelper +{ + volatile obj_addr_t permit; + pthread_mutex_t mutex; + pthread_cond_t cond; + + void init (); + void deactivate (); + void destroy (); + void park (jboolean isAbsolute, jlong time); + void unpark (); +}; + +inline void +ParkHelper::init () +{ + pthread_mutex_init (&mutex, NULL); + pthread_cond_init (&cond, NULL); +} + +inline void +ParkHelper::destroy () +{ + pthread_mutex_destroy (&mutex); + pthread_cond_destroy (&cond); +} + #endif /* __JV_POSIX_THREADS__ */ diff --git a/libjava/include/posix.h b/libjava/include/posix.h index ea4762c6a1b..ee836e0b809 100644 --- a/libjava/include/posix.h +++ b/libjava/include/posix.h @@ -69,6 +69,13 @@ details. */ #define O_DSYNC O_SYNC #endif +// Name of the Process implementation. +#ifdef ECOS +#define _Jv_platform_process ::java::lang::EcosProcess +#else +#define _Jv_platform_process ::java::lang::PosixProcess +#endif + // Separator for file name components. #define _Jv_platform_file_separator ((jchar) '/') // Separator for path components. diff --git a/libjava/include/win32-threads.h b/libjava/include/win32-threads.h index 0b22010ac8d..442149c3cd8 100644 --- a/libjava/include/win32-threads.h +++ b/libjava/include/win32-threads.h @@ -193,6 +193,28 @@ void _Jv_ThreadInterrupt (_Jv_Thread_t *data); // See java/lang/natWin32Process.cc (waitFor) for an example. HANDLE _Jv_Win32GetInterruptEvent (void); +// park() / unpark() support + +struct ParkHelper +{ + // We use LONG instead of obj_addr_t to avoid pulling in locks.h, + // which depends on size_t, ... + volatile LONG permit; + + // The critical section is used for lazy initialization of our event + CRITICAL_SECTION cs; + HANDLE event; + + void init (); + void deactivate (); + void destroy (); + void park (jboolean isAbsolute, jlong time); + void unpark (); + +private: + void init_event(); +}; + // Remove defines from that conflict with various things in libgcj code #undef TRUE @@ -204,5 +226,6 @@ HANDLE _Jv_Win32GetInterruptEvent (void); #undef interface #undef STRICT #undef VOID +#undef TEXT #endif /* __JV_WIN32_THREADS__ */ diff --git a/libjava/include/win32.h b/libjava/include/win32.h index a461d88f56c..48989fe3dfa 100644 --- a/libjava/include/win32.h +++ b/libjava/include/win32.h @@ -76,6 +76,9 @@ extern jstring _Jv_Win32NewString (LPCTSTR pcsz); #define _Jv_platform_solib_prefix "" #define _Jv_platform_solib_suffix ".dll" +// Name of the Process implementation. +#define _Jv_platform_process ::java::lang::Win32Process + // Separator for file name components. #define _Jv_platform_file_separator ((jchar) '\\') // Separator for path components. diff --git a/libjava/interpret.cc b/libjava/interpret.cc index 4b3725855f6..dc63cc868e7 100644 --- a/libjava/interpret.cc +++ b/libjava/interpret.cc @@ -1179,13 +1179,13 @@ _Jv_count_arguments (_Jv_Utf8Const *signature, * caller. */ -static int -init_cif (_Jv_Utf8Const* signature, - int arg_count, - jboolean staticp, - ffi_cif *cif, - ffi_type **arg_types, - ffi_type **rtype_p) +int +_Jv_init_cif (_Jv_Utf8Const* signature, + int arg_count, + jboolean staticp, + ffi_cif *cif, + ffi_type **arg_types, + ffi_type **rtype_p) { unsigned char *ptr = (unsigned char*) signature->chars(); @@ -1269,12 +1269,12 @@ _Jv_InterpMethod::ncode () (ncode_closure*)_Jv_AllocBytes (sizeof (ncode_closure) + arg_count * sizeof (ffi_type*)); - init_cif (self->signature, - arg_count, - staticp, - &closure->cif, - &closure->arg_types[0], - NULL); + _Jv_init_cif (self->signature, + arg_count, + staticp, + &closure->cif, + &closure->arg_types[0], + NULL); ffi_closure_fun fun; @@ -1465,12 +1465,12 @@ _Jv_JNIMethod::ncode () + arg_count * sizeof (ffi_type*)); ffi_type *rtype; - init_cif (self->signature, - arg_count, - staticp, - &closure->cif, - &closure->arg_types[0], - &rtype); + _Jv_init_cif (self->signature, + arg_count, + staticp, + &closure->cif, + &closure->arg_types[0], + &rtype); ffi_closure_fun fun; @@ -1632,12 +1632,12 @@ _Jv_InterpreterEngine::do_resolve_method (_Jv_Method *method, jclass klass, + arg_count*sizeof (ffi_type*)); result->stack_item_count - = init_cif (method->signature, - arg_count, - staticp, - &result->cif, - &result->arg_types[0], - NULL); + = _Jv_init_cif (method->signature, + arg_count, + staticp, + &result->cif, + &result->arg_types[0], + NULL); result->method = method; result->klass = klass; diff --git a/libjava/java/applet/Applet$AccessibleApplet.h b/libjava/java/applet/Applet$AccessibleApplet.h new file mode 100644 index 00000000000..6819ecb1d49 --- /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 +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 00000000000..67449e40a62 --- /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 +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 00000000000..8d841737461 --- /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 +#include + +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 00000000000..a69369fe713 --- /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 +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 00000000000..085746547f1 --- /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 +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 00000000000..2ee517d4d13 --- /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 +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 00000000000..bcfbd634ccb --- /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 +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 00000000000..94d090a9ff5 --- /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 +#include + +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 00000000000..cb5d0243ac3 --- /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 +#include + +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 00000000000..fdda1bde25b --- /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 +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 00000000000..cb6e72fed7d --- /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 +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 + 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 00000000000..d3d838053c8 --- /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 +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: + ::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 00000000000..f08335e03b6 --- /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 +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: + ::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 00000000000..0b0032dd8b0 --- /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 +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 00000000000..4936c3dad27 --- /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 +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 00000000000..a2183cfe1a9 --- /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 +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 00000000000..9460f529a85 --- /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 +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 00000000000..1203cc00dad --- /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 +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 + 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 00000000000..a18ebbd6fde --- /dev/null +++ b/libjava/java/awt/AlphaComposite.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_AlphaComposite__ +#define __java_awt_AlphaComposite__ + +#pragma interface + +#include +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 *); + 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 00000000000..36294940b7e --- /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 +#include + +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 00000000000..c3a92343504 --- /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 +#include + +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 00000000000..f78e9716441 --- /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 +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 00000000000..b5f45e4d020 --- /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 +#include + +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 00000000000..bda4b752c50 --- /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 +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 00000000000..be1dc9a11ac --- /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 +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 00000000000..19636de837a --- /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 +#include + +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 00000000000..f4f6a3e37c1 --- /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 +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 00000000000..f47ae70680a --- /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 +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 00000000000..0af653f2c6d --- /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 +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 00000000000..97726a2c02c --- /dev/null +++ b/libjava/java/awt/Canvas.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_Canvas__ +#define __java_awt_Canvas__ + +#pragma interface + +#include +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 *); +public: // actually package-private + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfigurationImpl(); +public: + 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::GraphicsConfiguration * __attribute__((aligned(__alignof__( ::java::awt::Component)))) graphicsConfiguration; + ::java::awt::image::BufferStrategy * 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 00000000000..9affd84fbca --- /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 +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 00000000000..025c42a37b6 --- /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 +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 00000000000..614f599f624 --- /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 +#include + +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 00000000000..80a4557b3c4 --- /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 +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 00000000000..c9111835f4b --- /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 +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 00000000000..52b7223cb28 --- /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 +#include + +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 00000000000..61b2d237732 --- /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 +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 00000000000..fc0261391a1 --- /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 +#include + +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 00000000000..a1bbaff49be --- /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 +#include + +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 00000000000..d116f81c907 --- /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 +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 00000000000..e96fc43ff80 --- /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 +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 00000000000..4dda12238a4 --- /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 +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 00000000000..429c49aa7eb --- /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 +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 00000000000..c46ecf76c12 --- /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 +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 00000000000..ca93face167 --- /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 +#include + +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 00000000000..654cfd29a3a --- /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 +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 00000000000..571b22dfa03 --- /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 +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 00000000000..4b14757911e --- /dev/null +++ b/libjava/java/awt/Component.h @@ -0,0 +1,434 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_Component__ +#define __java_awt_Component__ + +#pragma interface + +#include +#include + +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 *); + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfigurationImpl(); + static ::java::awt::Event * translateEvent(::java::awt::AWTEvent *); + virtual void dispatchEventImpl(::java::awt::AWTEvent *); + virtual jboolean eventTypeEnabled(jint); + virtual jboolean isHierarchyVisible(); + 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 00000000000..fe3ef9c1740 --- /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 +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 00000000000..1eed4bcae1a --- /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 +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 00000000000..83195ab8bbf --- /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 +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 00000000000..ae8aa684f14 --- /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 +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 00000000000..fe132635d0d --- /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 +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 00000000000..cd3e68e896f --- /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 +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 00000000000..c75ddd1a349 --- /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 +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 00000000000..acc4a8ba491 --- /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 +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 00000000000..557530ba851 --- /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 +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 00000000000..97322e8d5da --- /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 +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 00000000000..4a44759532a --- /dev/null +++ b/libjava/java/awt/Container.h @@ -0,0 +1,164 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_Container__ +#define __java_awt_Container__ + +#pragma interface + +#include +#include + +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::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 00000000000..8f0e89f9b3f --- /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 +#include + +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 00000000000..3d50e634537 --- /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 +#include + +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 00000000000..d6f22987dca --- /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 +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 00000000000..7061d499ec2 --- /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 +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 00000000000..ce9e4467ca5 --- /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 +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/Dialog$AccessibleAWTDialog.h b/libjava/java/awt/Dialog$AccessibleAWTDialog.h new file mode 100644 index 00000000000..b8bf577db41 --- /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 +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.h b/libjava/java/awt/Dialog.h new file mode 100644 index 00000000000..b1d339157e0 --- /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 +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 00000000000..7722cabc509 --- /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 +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 00000000000..26561ca0c80 --- /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 +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 00000000000..a0543818dd3 --- /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 +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 00000000000..a094bdc8a71 --- /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 +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 00000000000..6504a9661ff --- /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 +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 00000000000..71da1550e98 --- /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 +#include + +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 00000000000..b64300df00d --- /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 +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 00000000000..202fe18bb4a --- /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 +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 00000000000..f4add235fca --- /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 +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 00000000000..07c651f5837 --- /dev/null +++ b/libjava/java/awt/Font.h @@ -0,0 +1,153 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_Font__ +#define __java_awt_Font__ + +#pragma interface + +#include +#include + +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 *); + 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 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 *); +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; +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; +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 00000000000..9d9ffec9dd5 --- /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 +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 00000000000..67d8b6b4f39 --- /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 +#include + +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 00000000000..62ed120a93a --- /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 +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 00000000000..ffbf38d2af8 --- /dev/null +++ b/libjava/java/awt/Frame.h @@ -0,0 +1,117 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_Frame__ +#define __java_awt_Frame__ + +#pragma interface + +#include +#include + +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: + 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; +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 00000000000..075e139d669 --- /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 +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 00000000000..504b30ec571 --- /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 +#include + +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 00000000000..9815434cfc1 --- /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 +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 00000000000..53bbece33be --- /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 +#include + +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 00000000000..58c91221d0d --- /dev/null +++ b/libjava/java/awt/GraphicsConfiguration.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_GraphicsConfiguration__ +#define __java_awt_GraphicsConfiguration__ + +#pragma interface + +#include +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::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 00000000000..a10d93d8674 --- /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 +#include + +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 00000000000..398e295bfca --- /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 +#include + +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 00000000000..95d359e1946 --- /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 +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 00000000000..b553aff4eb3 --- /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 +#include + +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 00000000000..b83497ff9fe --- /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 +#include + +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 00000000000..84b01a27c7b --- /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 +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 00000000000..f57ea63fb91 --- /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 +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 00000000000..9743e59f05a --- /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 +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 00000000000..d49664a2238 --- /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 +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 00000000000..8a245f39069 --- /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 +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 00000000000..14d70fed5c6 --- /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 +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 00000000000..3ff72d344b1 --- /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 +#include + +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 00000000000..34779779d67 --- /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 +#include + +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 00000000000..6c15bd59d97 --- /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 +#include + +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 00000000000..77ae7916d8e --- /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 +#include + +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 00000000000..a4b13448fcb --- /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 +#include + +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 00000000000..349c3c07729 --- /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 +#include + +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 00000000000..400bbcfc5b2 --- /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 +#include + +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 00000000000..fdb3195d146 --- /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 +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 00000000000..806e1450b7c --- /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 +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 00000000000..9fd045c460c --- /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 +#include + +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 00000000000..7301841bc28 --- /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 +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 00000000000..d3151604d9a --- /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 +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 00000000000..464871c049c --- /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 +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 00000000000..7c8331bd64d --- /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 +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 00000000000..0a0bc5026e4 --- /dev/null +++ b/libjava/java/awt/LightweightDispatcher.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_LightweightDispatcher__ +#define __java_awt_LightweightDispatcher__ + +#pragma interface + +#include +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: + 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 00000000000..7014fd93007 --- /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 +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 00000000000..ca0dcaa5f19 --- /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 +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 00000000000..ba11b18d8b9 --- /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 +#include + +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 00000000000..a21715b59b9 --- /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 +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 00000000000..bc72868639d --- /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 +#include + +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 00000000000..73c33a7b70a --- /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 +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 00000000000..7d2ab26d27c --- /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 +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 00000000000..2f40500593f --- /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 +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 00000000000..f9eded3de4e --- /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 +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 00000000000..05d724b702d --- /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 +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 00000000000..d47e7185368 --- /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 +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 00000000000..3f2a1cf9154 --- /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 +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 00000000000..5bc2638663a --- /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 +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 00000000000..2b57ebf29d1 --- /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 +#include + +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 00000000000..89ae7a8730f --- /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 +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 00000000000..97aed5ce9c1 --- /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 +extern "Java" +{ + namespace java + { + namespace awt + { + class MouseInfo; + class PointerInfo; + namespace peer + { + class MouseInfoPeer; + } + } + } +} + +class java::awt::MouseInfo : public ::java::lang::Object +{ + +public: + MouseInfo(); + 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 00000000000..ae67841f636 --- /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 +#include + +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 00000000000..c085d0aa7df --- /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 +#include + +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 00000000000..79e1602d3bd --- /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 +#include + +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 00000000000..16e04f86690 --- /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 +#include + +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 00000000000..3f2b68cab38 --- /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 +#include + +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 00000000000..7ed2f7a42e3 --- /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 +#include + +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 00000000000..85f7c9fcec1 --- /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 +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 00000000000..7658a30e476 --- /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 +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 00000000000..386cf0a2b4e --- /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 +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 00000000000..23a788e4be2 --- /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 +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 00000000000..a161a00cdf5 --- /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 +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 00000000000..fc149bbf014 --- /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 +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 00000000000..cd1aaaf9cfe --- /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 +#include + +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: + jint getWindingRule(); + jboolean isDone(); + void next(); + jint currentSegment(JArray< jfloat > *); + 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 00000000000..e692f132e96 --- /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 +#include + +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 00000000000..f28ed4cac80 --- /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 +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 00000000000..855809bb0f8 --- /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 +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 00000000000..7027cb6b743 --- /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 +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 00000000000..66c98e3e31b --- /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 +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 00000000000..6a098adb513 --- /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 +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 00000000000..7f4c9724cfd --- /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 +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 00000000000..d81b7b9c1bc --- /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 +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 00000000000..6ceee185348 --- /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 +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 00000000000..b455f7246d6 --- /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 +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: + 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 00000000000..d283f7e97e7 --- /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 +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 00000000000..dd103cde337 --- /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 +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 00000000000..30110cf7e78 --- /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 +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 00000000000..a07d48c0c86 --- /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 +#include + +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 00000000000..1549a6a24cd --- /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 +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 00000000000..d13f504e979 --- /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 +#include + +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 00000000000..facef750333 --- /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 +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 00000000000..bb04e488637 --- /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 +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 00000000000..5e561faca5c --- /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 +#include + +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 00000000000..0803d64183e --- /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 +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 00000000000..d1b0d66c870 --- /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 +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 00000000000..94d0031a3e5 --- /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 +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 00000000000..2b12f8b29d2 --- /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 +#include + +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 00000000000..b49056a3f34 --- /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 +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 00000000000..747fe352155 --- /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 +#include + +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 00000000000..a6711ad6b8a --- /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 +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 00000000000..f884420bb83 --- /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 +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: + ::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 00000000000..6eb50a74f6a --- /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 +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: + ::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 00000000000..d8af0cd1545 --- /dev/null +++ b/libjava/java/awt/Toolkit.h @@ -0,0 +1,245 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_Toolkit__ +#define __java_awt_Toolkit__ + +#pragma interface + +#include +#include + +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 Dialog; + 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 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::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; +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 00000000000..1304a4647fe --- /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 +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 00000000000..aa4d2ced16f --- /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 +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 00000000000..eb29e059788 --- /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 +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 00000000000..0fd395f3ec3 --- /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 +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 00000000000..bf369ed99ad --- /dev/null +++ b/libjava/java/awt/Window.h @@ -0,0 +1,146 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_Window__ +#define __java_awt_Window__ + +#pragma interface + +#include +#include + +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 *); +public: // actually package-private + virtual ::java::awt::GraphicsConfiguration * getGraphicsConfigurationImpl(); +public: + 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; + ::java::awt::GraphicsConfiguration * graphicsConfiguration; + 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 00000000000..b6ee5337abf --- /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 +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 00000000000..cb8ec13c394 --- /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 +#include + +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 00000000000..6dd2117912b --- /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 +#include + +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 00000000000..d6a406e033f --- /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 +#include + +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 00000000000..9ebeef8dea2 --- /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 +#include + +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 00000000000..7520d8af6c1 --- /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 +#include + +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 00000000000..593bf1326ca --- /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 +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 00000000000..5ae0769e181 --- /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 +#include + +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 00000000000..d20a514b322 --- /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 +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 00000000000..3a94cabef65 --- /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 +#include + +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 00000000000..00cfae1c058 --- /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 +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 00000000000..0e23dbb78e7 --- /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 +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 00000000000..688576910ae --- /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 +#include + +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 00000000000..cec9406264a --- /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 +#include + +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 00000000000..9ccd153f768 --- /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 +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 00000000000..5ac3ff2d3cc --- /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 +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 00000000000..09429bba1f3 --- /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 +#include + +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.h b/libjava/java/awt/datatransfer/SystemFlavorMap.h new file mode 100644 index 00000000000..62009addb3b --- /dev/null +++ b/libjava/java/awt/datatransfer/SystemFlavorMap.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_datatransfer_SystemFlavorMap__ +#define __java_awt_datatransfer_SystemFlavorMap__ + +#pragma interface + +#include +#include + +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: + ::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 00000000000..0930f87d040 --- /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 +#include + +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 00000000000..fffc2ace08a --- /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 +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 00000000000..4ab4c6a5cb0 --- /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 +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 00000000000..a3cfb089ffd --- /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 +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 00000000000..c70450f2565 --- /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 +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 00000000000..7d34bc632dd --- /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 +#include + +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 00000000000..044956739c8 --- /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 +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 00000000000..22e856d609d --- /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 +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 00000000000..8f4246e1e61 --- /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 +#include + +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 00000000000..c3a4177e6ae --- /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 +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 00000000000..1e4646729e4 --- /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 +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 00000000000..ec0c80eecbc --- /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 +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 00000000000..bc3341f02e6 --- /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 +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 00000000000..0d008a19ccf --- /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 +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 00000000000..fc845501a2e --- /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 +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 00000000000..0db0603b266 --- /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 +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 00000000000..cb72a909ff9 --- /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 +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 00000000000..399889a9542 --- /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 +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 00000000000..34f4f5b669b --- /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 +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 00000000000..e670c079d12 --- /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 +#include + +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 00000000000..f6ea29be31d --- /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 +#include + +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 00000000000..d25da60043f --- /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 +#include + +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 00000000000..08851b68cf4 --- /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 +#include + +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 00000000000..e090e197c1d --- /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 +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 00000000000..83aba62d160 --- /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 +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 00000000000..674f7ce2dfe --- /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 +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 00000000000..00635da56d7 --- /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 +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 00000000000..f5653f26034 --- /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 +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 00000000000..cb7ae0d655e --- /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 +#include + +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 00000000000..d96222ba87a --- /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 +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 00000000000..e85da18c51e --- /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 +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 00000000000..90e1bc2d939 --- /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 +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 00000000000..a1eff263223 --- /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 +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 00000000000..0560d7caf56 --- /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 +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 00000000000..71bef4d3949 --- /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 +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 00000000000..75e67203b25 --- /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 +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 00000000000..0121a0de596 --- /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 +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 00000000000..667ceb7c21e --- /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 +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 00000000000..961c9a9d306 --- /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 +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 00000000000..e483c5b0e75 --- /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 +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 00000000000..f1d4680ef2c --- /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 +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 00000000000..ac24d8ce019 --- /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 +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 00000000000..f46f94e5c4f --- /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 +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 00000000000..5c7315a9a5a --- /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 +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 00000000000..f47a924b332 --- /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 +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 00000000000..125cf864cd8 --- /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 +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 00000000000..2ae05003f3e --- /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 +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 00000000000..fe9585ae0a7 --- /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 +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 00000000000..e691edc2782 --- /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 +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 00000000000..863963ca05c --- /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 +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 00000000000..0c02470459f --- /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 +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 00000000000..4bb03de2b06 --- /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 +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 00000000000..2dde3a4213e --- /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 +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 00000000000..61f4836468d --- /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 +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 00000000000..eee09ce9dae --- /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 +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 00000000000..b63023e6610 --- /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 +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 00000000000..6b3258677c5 --- /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 +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 00000000000..a25e5b83e8f --- /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 +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 00000000000..d0ee27ee757 --- /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 +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 00000000000..439fc50ca39 --- /dev/null +++ b/libjava/java/awt/event/MouseEvent.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_event_MouseEvent__ +#define __java_awt_event_MouseEvent__ + +#pragma interface + +#include +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); + virtual jint getX(); + virtual jint getY(); + 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 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 00000000000..d3263ab8e74 --- /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 +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 00000000000..2c29cdd9d54 --- /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 +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 00000000000..84087bbf0a2 --- /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 +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 00000000000..fd804a126c4 --- /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 +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 00000000000..525b427e413 --- /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 +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 00000000000..4d1802729c2 --- /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 +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 00000000000..bd673f73ccb --- /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 +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 00000000000..cb3ad2c9185 --- /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 +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 00000000000..fda064b21c5 --- /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 +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 00000000000..886927787e7 --- /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 +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 00000000000..5ff8d3ac18a --- /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 +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 00000000000..b1b3109fc27 --- /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 +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 00000000000..459ad6926be --- /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 +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 00000000000..30fb5973aee --- /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 +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 00000000000..eb880668053 --- /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 +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 00000000000..7c44a20f263 --- /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 +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 00000000000..67826afa8ca --- /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 +#include + +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 00000000000..622cbed7b89 --- /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 +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 00000000000..086fc3d1b53 --- /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 +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 00000000000..3d862e74833 --- /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 +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 00000000000..35b8594dc1d --- /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 +#include + +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 00000000000..99e4580ae29 --- /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 +#include + +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 00000000000..85f0d4c318b --- /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 +#include + +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 00000000000..bd1c0a622c1 --- /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 +#include + +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 00000000000..fd8d1be57ea --- /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 +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 00000000000..050d7149108 --- /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 +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 00000000000..a38745895e5 --- /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 +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 00000000000..adb7b0d1fe6 --- /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 +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 00000000000..3760b6eef9d --- /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 +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 00000000000..f5c02bafd9b --- /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 +#include + +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 00000000000..31ca7b27fa5 --- /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 +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 00000000000..16875a23d46 --- /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 +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 00000000000..4c5efc8bb24 --- /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 +#include + +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 00000000000..4fdf0e15c39 --- /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 +#include + +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 00000000000..d39148b70dd --- /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 +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 00000000000..925c425acc8 --- /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 +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 00000000000..d2bfc752793 --- /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 +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 00000000000..2dfcf311e28 --- /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 +#include + +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 00000000000..86824256ad0 --- /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 +#include + +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 00000000000..f5a31385e85 --- /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 +#include + +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 00000000000..c4c716286c9 --- /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 +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 00000000000..2eb0692a8d5 --- /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 +#include + +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 00000000000..ca6dc99c5c2 --- /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 +#include + +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 00000000000..866ecefdd4d --- /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 +#include + +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 00000000000..47a87df4ec5 --- /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 +#include + +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 00000000000..ea945ea9f7c --- /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 +#include + +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: + jint getWindingRule(); + jboolean isDone(); + void next(); + jint currentSegment(JArray< jfloat > *); + 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 00000000000..d3d47429c1f --- /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 +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 00000000000..6e6cd4d2c97 --- /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 +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 00000000000..f9f82b89458 --- /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 +#include + +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 00000000000..d201d7a5f5c --- /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 +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 00000000000..06b28e6f335 --- /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 +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 00000000000..52177dc028a --- /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 +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 00000000000..a78c318d8b3 --- /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 +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 00000000000..7936286da87 --- /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 +#include + +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 00000000000..9bf63bd5fe6 --- /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 +#include + +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 00000000000..a2d37c73f87 --- /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 +#include + +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 00000000000..4147334fdc3 --- /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 +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 00000000000..c07bff5b6bf --- /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 +#include + +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: + jint getWindingRule(); + jboolean isDone(); + void next(); + jint currentSegment(JArray< jfloat > *); + 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 00000000000..a9915b73d8c --- /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 +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 00000000000..1a829e2c62f --- /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 +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 00000000000..5310eadc7de --- /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 +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 00000000000..1e7b71249ef --- /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 +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 00000000000..a201f5604b9 --- /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 +#include + +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 00000000000..b03db3fa76e --- /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 +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 00000000000..f9da3d1be24 --- /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 +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 00000000000..bddd3ab87c8 --- /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 +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 00000000000..987541a759f --- /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 +#include + +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: + jint getWindingRule(); + jboolean isDone(); + void next(); + jint currentSegment(JArray< jfloat > *); + 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 00000000000..91a524b0d94 --- /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 +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 00000000000..b2f36d62490 --- /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 +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 00000000000..f9adea41b82 --- /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 +#include + +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 00000000000..4403af4ecc5 --- /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 +#include + +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: + jint getWindingRule(); + jboolean isDone(); + void next(); + jint currentSegment(JArray< jfloat > *); + 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 00000000000..20105f932d1 --- /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 +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 00000000000..61dbf373ce4 --- /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 +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 00000000000..e81e0a8e161 --- /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 +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 00000000000..18e1360fa0d --- /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 +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 00000000000..04bb8a542c4 --- /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 +#include + +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: + jint currentSegment(JArray< jdouble > *); + jint currentSegment(JArray< jfloat > *); + jint getWindingRule(); + jboolean isDone(); + 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 00000000000..08010fd4125 --- /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 +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 00000000000..184c5f4b161 --- /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 +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 00000000000..a9092ca5c99 --- /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 +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 00000000000..59c02044abb --- /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 +#include + +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 00000000000..72eb7452183 --- /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 +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 00000000000..4552bc9542e --- /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 +#include + +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 00000000000..181a6af952f --- /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 +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 00000000000..d48fc67a42e --- /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 +#include + +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 00000000000..8dcef0e08c7 --- /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 +#include + +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 00000000000..60d0829fef0 --- /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 +#include + +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 00000000000..be0dee40b3f --- /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 +#include + +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 00000000000..694ae79a772 --- /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 +#include + +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 00000000000..0233ef4d3c6 --- /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 +#include + +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 00000000000..5eca8194bca --- /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 +#include + +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 00000000000..682e73e073d --- /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 +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 00000000000..cdb16e7fc85 --- /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 +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: + void addConsumer(::java::awt::image::ImageConsumer *); + jboolean isConsumer(::java::awt::image::ImageConsumer *); + void removeConsumer(::java::awt::image::ImageConsumer *); + void startProduction(::java::awt::image::ImageConsumer *); + 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 00000000000..9c54907a7b5 --- /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 +#include + +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 00000000000..08da9be7137 --- /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 +#include + +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 00000000000..1af69aa02dd --- /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 +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 00000000000..d34b385b2ef --- /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 +#include + +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 00000000000..6455b46bbb7 --- /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 +#include + +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 00000000000..90428c4298b --- /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 +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 00000000000..3ed3b82ccad --- /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 +#include + +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 protected + 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 00000000000..e40ab1d2db1 --- /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 +#include + +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 00000000000..4a1d2c675cb --- /dev/null +++ b/libjava/java/awt/image/ComponentSampleModel.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_image_ComponentSampleModel__ +#define __java_awt_image_ComponentSampleModel__ + +#pragma interface + +#include +#include + +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 ::java::lang::Object * getDataElements(jint, jint, jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *); + virtual void setDataElements(jint, jint, 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; +private: + jboolean tightPixelPacking; +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 00000000000..e72a7033e62 --- /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 +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 00000000000..23720dbdca3 --- /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 +#include + +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 00000000000..5bb4ac2933c --- /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 +#include + +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 00000000000..224be27ce29 --- /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 +#include + +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 00000000000..056c5e4bbf0 --- /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 +#include + +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 00000000000..621e3593f94 --- /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 +#include + +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 00000000000..0526f607fa4 --- /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 +#include + +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 00000000000..c66067109a1 --- /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 +#include + +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 00000000000..e67d26b1bf3 --- /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 +#include + +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 00000000000..476ab073d62 --- /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 +#include + +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 00000000000..93174c44f3c --- /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 +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 00000000000..ffca9fc3cad --- /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 +#include + +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 00000000000..84b6f53b0e3 --- /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 +#include + +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 00000000000..563666a1a9d --- /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 +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 00000000000..108f61f49f3 --- /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 +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 00000000000..9ce51161f2e --- /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 +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 00000000000..cbb2fac300c --- /dev/null +++ b/libjava/java/awt/image/IndexColorModel.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_image_IndexColorModel__ +#define __java_awt_image_IndexColorModel__ + +#pragma interface + +#include +#include + +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); + 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 00000000000..f0bacc1233c --- /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 +#include + +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 00000000000..07546043f0e --- /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 +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 00000000000..2fcd6459230 --- /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 +#include + +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 00000000000..e717ee87c12 --- /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 +#include + +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 00000000000..377ceaf1ee9 --- /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 +#include + +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 00000000000..2d98aa9e877 --- /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 +#include + +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 00000000000..cf22efa1b08 --- /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 +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: + 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 00000000000..f530f343127 --- /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 +#include + +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 00000000000..42ba5821751 --- /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 +#include + +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 00000000000..34aea655ff6 --- /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 +#include + +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 00000000000..2c187d5af3f --- /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 +#include + +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 00000000000..acfe3941ca8 --- /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 +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 00000000000..a54b9b022f4 --- /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 +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 00000000000..f47ca93cc0a --- /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 +#include + +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 00000000000..d518d793f7d --- /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 +#include + +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 00000000000..ba67ec9fc89 --- /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 +#include + +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 00000000000..5d51a65d927 --- /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 +#include + +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 00000000000..053331b0629 --- /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 +#include + +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 00000000000..69950326992 --- /dev/null +++ b/libjava/java/awt/image/SinglePixelPackedSampleModel.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_image_SinglePixelPackedSampleModel__ +#define __java_awt_image_SinglePixelPackedSampleModel__ + +#pragma interface + +#include +#include + +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 ::java::lang::Object * getDataElements(jint, jint, 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 00000000000..9f7d0a1a4cf --- /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 +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 00000000000..ed289286350 --- /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 +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 00000000000..5db229c332d --- /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 +#include + +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 00000000000..f9b24812351 --- /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 +#include + +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 00000000000..d7ac12972d1 --- /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 +#include + +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 00000000000..cafafbdbb43 --- /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 +#include + +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 00000000000..4923ebc2db2 --- /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 +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 00000000000..c7fed510a1d --- /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 +#include + +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 00000000000..edc766d4e74 --- /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 +#include + +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 00000000000..4e1968fb84a --- /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 +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 00000000000..3e2eb934999 --- /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 +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 00000000000..1f5c203e055 --- /dev/null +++ b/libjava/java/awt/peer/ButtonPeer.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_ButtonPeer__ +#define __java_awt_peer_ButtonPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..503b48a561d --- /dev/null +++ b/libjava/java/awt/peer/CanvasPeer.h @@ -0,0 +1,109 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_CanvasPeer__ +#define __java_awt_peer_CanvasPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..84a5ba9ae89 --- /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 +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 00000000000..a397322e497 --- /dev/null +++ b/libjava/java/awt/peer/CheckboxPeer.h @@ -0,0 +1,113 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_CheckboxPeer__ +#define __java_awt_peer_CheckboxPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..78dca416d05 --- /dev/null +++ b/libjava/java/awt/peer/ChoicePeer.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_ChoicePeer__ +#define __java_awt_peer_ChoicePeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..3d3c22d9d2b --- /dev/null +++ b/libjava/java/awt/peer/ComponentPeer.h @@ -0,0 +1,109 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_ComponentPeer__ +#define __java_awt_peer_ComponentPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..6d6e9df4580 --- /dev/null +++ b/libjava/java/awt/peer/ContainerPeer.h @@ -0,0 +1,119 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_ContainerPeer__ +#define __java_awt_peer_ContainerPeer__ + +#pragma interface + +#include +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 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; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __java_awt_peer_ContainerPeer__ diff --git a/libjava/java/awt/peer/DialogPeer.h b/libjava/java/awt/peer/DialogPeer.h new file mode 100644 index 00000000000..2212ec95bcb --- /dev/null +++ b/libjava/java/awt/peer/DialogPeer.h @@ -0,0 +1,126 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_DialogPeer__ +#define __java_awt_peer_DialogPeer__ + +#pragma interface + +#include +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 DialogPeer; + } + } + } +} + +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 ::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; + 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 00000000000..b2419e42f41 --- /dev/null +++ b/libjava/java/awt/peer/FileDialogPeer.h @@ -0,0 +1,129 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_FileDialogPeer__ +#define __java_awt_peer_FileDialogPeer__ + +#pragma interface + +#include +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 FileDialogPeer; + } + } + } +} + +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 ::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; + 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 00000000000..00f6f8a4fdb --- /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 +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 00000000000..a80ca5540f1 --- /dev/null +++ b/libjava/java/awt/peer/FramePeer.h @@ -0,0 +1,133 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_FramePeer__ +#define __java_awt_peer_FramePeer__ + +#pragma interface + +#include +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 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; + } + } + } +} + +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 void toBack() = 0; + virtual void toFront() = 0; + virtual void updateAlwaysOnTop() = 0; + virtual jboolean requestWindowFocus() = 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; + 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 00000000000..426772d0e09 --- /dev/null +++ b/libjava/java/awt/peer/LabelPeer.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_LabelPeer__ +#define __java_awt_peer_LabelPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..9c743d97f3d --- /dev/null +++ b/libjava/java/awt/peer/LightweightPeer.h @@ -0,0 +1,109 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_LightweightPeer__ +#define __java_awt_peer_LightweightPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..3dd6bad7aa2 --- /dev/null +++ b/libjava/java/awt/peer/ListPeer.h @@ -0,0 +1,126 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_ListPeer__ +#define __java_awt_peer_ListPeer__ + +#pragma interface + +#include +#include + +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; + } + } + } +} + +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; + 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 00000000000..e7d84c0519d --- /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 +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 00000000000..a0a1ea14c64 --- /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 +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 00000000000..8c9a9eee892 --- /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 +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 00000000000..4c813b11824 --- /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 +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 00000000000..18f0c59b8d1 --- /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 +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 00000000000..57e4ff7687a --- /dev/null +++ b/libjava/java/awt/peer/PanelPeer.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_PanelPeer__ +#define __java_awt_peer_PanelPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..e8bdd57b52a --- /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 +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 00000000000..f0f810ae384 --- /dev/null +++ b/libjava/java/awt/peer/RobotPeer.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_RobotPeer__ +#define __java_awt_peer_RobotPeer__ + +#pragma interface + +#include +#include + +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; + 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 00000000000..f6387a50468 --- /dev/null +++ b/libjava/java/awt/peer/ScrollPanePeer.h @@ -0,0 +1,127 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_ScrollPanePeer__ +#define __java_awt_peer_ScrollPanePeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..9e0c7c76c1b --- /dev/null +++ b/libjava/java/awt/peer/ScrollbarPeer.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_ScrollbarPeer__ +#define __java_awt_peer_ScrollbarPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..1954909b9bc --- /dev/null +++ b/libjava/java/awt/peer/TextAreaPeer.h @@ -0,0 +1,133 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_TextAreaPeer__ +#define __java_awt_peer_TextAreaPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..37e0310bde1 --- /dev/null +++ b/libjava/java/awt/peer/TextComponentPeer.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_TextComponentPeer__ +#define __java_awt_peer_TextComponentPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..a3718929d64 --- /dev/null +++ b/libjava/java/awt/peer/TextFieldPeer.h @@ -0,0 +1,131 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_TextFieldPeer__ +#define __java_awt_peer_TextFieldPeer__ + +#pragma interface + +#include +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; + } + } + } +} + +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; + 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 00000000000..c900a1cecab --- /dev/null +++ b/libjava/java/awt/peer/WindowPeer.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_peer_WindowPeer__ +#define __java_awt_peer_WindowPeer__ + +#pragma interface + +#include +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 WindowPeer; + } + } + } +} + +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 ::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; + 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 00000000000..cda28618c75 --- /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 +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 00000000000..aac0af30b5a --- /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 +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 00000000000..0f4af7b653b --- /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 +#include + +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 00000000000..b97d4e5222a --- /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 +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 00000000000..3d7d3769ff6 --- /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 +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 00000000000..4160afcfd01 --- /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 +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 00000000000..f8475d995cb --- /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 +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 00000000000..009ec510f52 --- /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 +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 00000000000..74541c07a9e --- /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 +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 00000000000..46d7908d9a3 --- /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 +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 00000000000..a319de37b23 --- /dev/null +++ b/libjava/java/awt/print/PrinterJob.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_awt_print_PrinterJob__ +#define __java_awt_print_PrinterJob__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace print + { + class PageFormat; + class Pageable; + class Printable; + class PrinterJob; + } + } + } + namespace javax + { + namespace print + { + class PrintService; + 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(); + 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 00000000000..f0ea44fa5b0 --- /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 +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 00000000000..b1779b92865 --- /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 +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 00000000000..dda47201610 --- /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 +#include + +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 00000000000..ed2fbadbe45 --- /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 +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/Customizer.h b/libjava/java/beans/Customizer.h new file mode 100644 index 00000000000..fbdae5ad102 --- /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 +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 00000000000..b0225b54cc5 --- /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 +#include + +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 00000000000..a88d84468fd --- /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 +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 00000000000..874859790f6 --- /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 +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 + ::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 00000000000..345e98ca441 --- /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 +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 00000000000..b97ac5104a3 --- /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 +#include + +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 00000000000..fb99b607bb4 --- /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 +#include + +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 00000000000..4356957fcba --- /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 +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 00000000000..16860b43e52 --- /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 +#include + +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 00000000000..50fce152989 --- /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 +#include + +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 00000000000..8f5f9327d72 --- /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 +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 00000000000..85082d12eb1 --- /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 +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 00000000000..843eb1b94d3 --- /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 +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 00000000000..87df2fd72c1 --- /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 +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 00000000000..989c513334c --- /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 +#include + +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 00000000000..cf3ca4acf5c --- /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 +#include + +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 00000000000..66e201e14f5 --- /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 +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 00000000000..93b7865b9c9 --- /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 +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 00000000000..6ea9155158b --- /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 +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 00000000000..c72b2be7307 --- /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 +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 00000000000..14cce8e3c89 --- /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 +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 00000000000..ae037a893e3 --- /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 +#include + +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 00000000000..242c3d5db99 --- /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 +#include + +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 00000000000..4fab8c8d66b --- /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 +#include + +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 00000000000..88985b3b8cc --- /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 +#include + +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 00000000000..62500511a14 --- /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 +#include + +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 00000000000..7de400634e1 --- /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 +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 00000000000..ea77e474305 --- /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 +#include + +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 00000000000..3df8477b4cf --- /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 +#include + +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 00000000000..2bf9d1d07f1 --- /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 +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 00000000000..f713ac432b6 --- /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 +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 00000000000..9dfdbc589e9 --- /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 +#include + +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 00000000000..df5f7a62815 --- /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 +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 00000000000..f5055c4f66d --- /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 +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 00000000000..3a6e01df100 --- /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 +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 00000000000..e9935e0ea2d --- /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 +#include + +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 00000000000..0e1c8685f35 --- /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 +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 00000000000..7e515669f6f --- /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 +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 00000000000..646217b30f0 --- /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 +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 00000000000..c3574f5db46 --- /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 +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 00000000000..a74c1da045e --- /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 +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 00000000000..8b6c933bb34 --- /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 +#include + +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 00000000000..89efed826f9 --- /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 +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 00000000000..3d18c0a81e8 --- /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 +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 00000000000..7b69fe82b2f --- /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 +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 00000000000..937bd5dec86 --- /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 +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 00000000000..952edd1e079 --- /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 +#include + +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 00000000000..700da3ac419 --- /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 +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 00000000000..c74f48a087e --- /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 +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 00000000000..fd67419768e --- /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 +#include + +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 00000000000..2be3753497d --- /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 +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 00000000000..d74827c1335 --- /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 +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 00000000000..f5b8392f1ba --- /dev/null +++ b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h @@ -0,0 +1,46 @@ + +// 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 +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 +{ + + 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 00000000000..999ce912fd9 --- /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 +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 00000000000..64fb227665c --- /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 +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 00000000000..0f6a32ea122 --- /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 +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 00000000000..24465df7028 --- /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 +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 00000000000..f16583166b5 --- /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 +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 00000000000..40720fb5748 --- /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 +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 00000000000..551697939f0 --- /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 +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 00000000000..36678b520ca --- /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 +#include + +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 00000000000..d2851da735b --- /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 +#include + + +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/BufferedOutputStream.h b/libjava/java/io/BufferedOutputStream.h new file mode 100644 index 00000000000..ce34567c61b --- /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 +#include + + +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 00000000000..66d77663a7d --- /dev/null +++ b/libjava/java/io/BufferedReader.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_BufferedReader__ +#define __java_io_BufferedReader__ + +#pragma interface + +#include +#include + + +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; +private: + ::java::lang::StringBuffer * sbuf; +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 00000000000..68cfa095e24 --- /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 +#include + + +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 00000000000..85411b3e04c --- /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 +#include + + +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 00000000000..907c3d4ec91 --- /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 +#include + + +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 00000000000..f8b8f5d4c95 --- /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 +#include + + +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 00000000000..35f49d23b78 --- /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 +#include + + +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 * target$append(jchar); + virtual ::java::io::CharArrayWriter * target$append(::java::lang::CharSequence *); + virtual ::java::io::CharArrayWriter * target$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 * target$append(::java::lang::CharSequence *, jint, jint); + virtual ::java::lang::Appendable * append(::java::lang::CharSequence *); + virtual ::java::io::Writer * target$append(::java::lang::CharSequence *); + virtual ::java::lang::Appendable * append(jchar); + virtual ::java::io::Writer * target$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 00000000000..95034a89b15 --- /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 + +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 00000000000..4668f50892f --- /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 + +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 00000000000..9cb4952ffa7 --- /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 +#include + + +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 00000000000..a7b84590f01 --- /dev/null +++ b/libjava/java/io/DataInputStream.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_DataInputStream__ +#define __java_io_DataInputStream__ + +#pragma interface + +#include +#include + + +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 *); + 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 00000000000..f18f5e454cb --- /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 +#include + + +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 00000000000..0d89dca32bc --- /dev/null +++ b/libjava/java/io/DataOutputStream.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_DataOutputStream__ +#define __java_io_DataOutputStream__ + +#pragma interface + +#include +#include + + +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 *); +private: + jint getUTFlength(::java::lang::String *, jint, jint); +public: + virtual void writeUTF(::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 00000000000..48f56715247 --- /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 + +class java::io::DeleteFileHelper$1 : public ::java::lang::Object +{ + +public: // actually package-private + DeleteFileHelper$1(); +public: + ::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 00000000000..9b61c3aab71 --- /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 + +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 00000000000..be4b255e7c6 --- /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 + +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 00000000000..b74cf0860bc --- /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 + +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 00000000000..35ca3b7dfc6 --- /dev/null +++ b/libjava/java/io/File.h @@ -0,0 +1,150 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_File__ +#define __java_io_File__ + +#pragma interface + +#include +#include + +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(); +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 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 compareTo(::java::io::File *); + virtual jint compareTo(::java::lang::Object *); +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(); +public: + virtual void deleteOnExit(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); + static const jlong serialVersionUID = 301077366599181567LL; + static const jint READ = 0; + static const jint WRITE = 1; + static const jint EXISTS = 2; + 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/FileDescriptor.h b/libjava/java/io/FileDescriptor.h new file mode 100644 index 00000000000..a3863f331c7 --- /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 +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/classpath/java/io/FileDescriptor.java b/libjava/java/io/FileDescriptor.java similarity index 100% copy from libjava/classpath/java/io/FileDescriptor.java copy to libjava/java/io/FileDescriptor.java diff --git a/libjava/java/io/FileFilter.h b/libjava/java/io/FileFilter.h new file mode 100644 index 00000000000..e90e437957f --- /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 + +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 00000000000..01efe5620d7 --- /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 +#include + +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/classpath/java/io/FileInputStream.java b/libjava/java/io/FileInputStream.java similarity index 100% copy from libjava/classpath/java/io/FileInputStream.java copy to libjava/java/io/FileInputStream.java diff --git a/libjava/java/io/FileNotFoundException.h b/libjava/java/io/FileNotFoundException.h new file mode 100644 index 00000000000..794160dd5e0 --- /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 + +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 00000000000..b2bf0d942ca --- /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 +#include + +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/classpath/java/io/FileOutputStream.java b/libjava/java/io/FileOutputStream.java similarity index 100% copy from libjava/classpath/java/io/FileOutputStream.java copy to libjava/java/io/FileOutputStream.java diff --git a/libjava/java/io/FilePermission.h b/libjava/java/io/FilePermission.h new file mode 100644 index 00000000000..bace152f01c --- /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 +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 00000000000..4d1fba21200 --- /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 + +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 00000000000..b75ea008cdb --- /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 + +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 00000000000..2337ed32737 --- /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 + +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 00000000000..1116639c137 --- /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 +#include + + +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 00000000000..571b255d6a9 --- /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 +#include + + +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 00000000000..52a1995fec0 --- /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 +#include + + +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 00000000000..146f0156342 --- /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 +#include + + +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 00000000000..2acd25dec02 --- /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 + +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 00000000000..bdd92e0e4d8 --- /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 + +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 00000000000..263af2c8167 --- /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 +#include + + +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 00000000000..46050d5c37c --- /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 +#include + +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/InterruptedIOException.h b/libjava/java/io/InterruptedIOException.h new file mode 100644 index 00000000000..40922cd79c0 --- /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 + +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 00000000000..6216a9ad920 --- /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 + +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 00000000000..550dd439d0e --- /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 + +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 00000000000..676893d51a3 --- /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 +#include + + +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 00000000000..33564c94909 --- /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 +#include + + +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 00000000000..9020e4e03f4 --- /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 + +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 00000000000..55699b406de --- /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 + +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 00000000000..7cfac206034 --- /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 +#include + + +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 00000000000..3a3241a0ecd --- /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 + +class java::io::ObjectInputStream$1 : public ::java::lang::Object +{ + +public: // actually package-private + ObjectInputStream$1(::java::io::ObjectInputStream *, ::java::lang::Class *); +public: + ::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 00000000000..70fbf58a68d --- /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 +#include + + +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: + ::java::io::ObjectStreamClass * getObjectStreamClass(); + jboolean defaulted(::java::lang::String *); + jboolean get(::java::lang::String *, jboolean); + jchar get(::java::lang::String *, jchar); + jbyte get(::java::lang::String *, jbyte); + jshort get(::java::lang::String *, jshort); + jint get(::java::lang::String *, jint); + jlong get(::java::lang::String *, jlong); + jfloat get(::java::lang::String *, jfloat); + jdouble get(::java::lang::String *, jdouble); + ::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 00000000000..d61509c4a0a --- /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 + +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 00000000000..02e6ae6230f --- /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 + +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 00000000000..b27764a445b --- /dev/null +++ b/libjava/java/io/ObjectInputStream.h @@ -0,0 +1,103 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_ObjectInputStream__ +#define __java_io_ObjectInputStream__ + +#pragma interface + +#include +#include + + +class java::io::ObjectInputStream : public ::java::io::InputStream +{ + +public: + ObjectInputStream(::java::io::InputStream *); + virtual ::java::lang::Object * readObject(); +private: + ::java::lang::Object * parseContent(jbyte); + 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 *); + void rememberHandle(::java::lang::Object *, jint); + ::java::lang::Object * lookupHandle(jint); + ::java::lang::Object * processResolution(::java::io::ObjectStreamClass *, ::java::lang::Object *, jint); + 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 *); + 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::Vector * objectLookupTable; + ::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/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java deleted file mode 100644 index 54661a9bc53..00000000000 --- a/libjava/java/io/ObjectInputStream.java +++ /dev/null @@ -1,1979 +0,0 @@ -/* 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 gnu.java.io.ObjectIdentityWrapper; - -import java.lang.reflect.Array; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.lang.reflect.Proxy; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; - -public class ObjectInputStream extends InputStream - implements ObjectInput, ObjectStreamConstants -{ - /** - * Creates a new ObjectInputStream that will do all of - * its reading from in. This method also checks - * the stream by reading the header information (stream magic number - * and stream version). - * - * @exception IOException Reading stream header from underlying - * stream cannot be completed. - * - * @exception StreamCorruptedException An invalid stream magic - * number or stream version was read from the stream. - * - * @see #readStreamHeader() - */ - public ObjectInputStream(InputStream in) - throws IOException, StreamCorruptedException - { - if (Configuration.DEBUG) - { - String val = System.getProperty("gcj.dumpobjects"); - if (dump == false && val != null && !val.equals("")) - { - dump = true; - System.out.println ("Serialization debugging enabled"); - } - else if (dump == true && (val == null || val.equals(""))) - { - dump = false; - System.out.println ("Serialization debugging disabled"); - } - } - - this.resolveEnabled = false; - this.isDeserializing = false; - this.blockDataPosition = 0; - this.blockDataBytes = 0; - this.blockData = new byte[BUFFER_SIZE]; - this.blockDataInput = new DataInputStream(this); - this.realInputStream = new DataInputStream(in); - this.nextOID = baseWireHandle; - this.objectLookupTable = new Hashtable(); - this.validators = new Vector(); - this.classLookupTable = new Hashtable(); - setBlockDataMode(true); - readStreamHeader(); - } - - - /** - * Returns the next deserialized object read from the underlying stream. - * - * This method can be overriden by a class by implementing - * private void readObject (ObjectInputStream). - * - * If an exception is thrown from this method, the stream is left in - * an undefined state. This method can also throw Errors and - * RuntimeExceptions if caused by existing readResolve() user code. - * - * @return The object read from the underlying stream. - * - * @exception ClassNotFoundException The class that an object being - * read in belongs to cannot be found. - * - * @exception IOException Exception from underlying - * InputStream. - */ - public final Object readObject() throws ClassNotFoundException, IOException - { - if (this.useSubclassMethod) - return readObjectOverride(); - - boolean was_deserializing; - - Object ret_val; - was_deserializing = this.isDeserializing; - - boolean is_consumed = false; - boolean old_mode = setBlockDataMode(false); - - this.isDeserializing = true; - - byte marker = this.realInputStream.readByte(); - - depth += 2; - - if(dump) dumpElement("MARKER: 0x" + Integer.toHexString(marker) + " "); - - try - { - switch (marker) - { - case TC_ENDBLOCKDATA: - { - ret_val = null; - is_consumed = true; - break; - } - - case TC_BLOCKDATA: - case TC_BLOCKDATALONG: - { - if (marker == TC_BLOCKDATALONG) - { if(dump) dumpElementln("BLOCKDATALONG"); } - else - { if(dump) dumpElementln("BLOCKDATA"); } - readNextBlock(marker); - throw new StreamCorruptedException("Unexpected blockData"); - } - - case TC_NULL: - { - if(dump) dumpElementln("NULL"); - ret_val = null; - break; - } - - case TC_REFERENCE: - { - if(dump) dumpElement("REFERENCE "); - Integer oid = new Integer(this.realInputStream.readInt()); - if(dump) dumpElementln(Integer.toHexString(oid.intValue())); - ret_val = ((ObjectIdentityWrapper) - this.objectLookupTable.get(oid)).object; - break; - } - - case TC_CLASS: - { - if(dump) dumpElementln("CLASS"); - ObjectStreamClass osc = (ObjectStreamClass)readObject(); - Class clazz = osc.forClass(); - assignNewHandle(clazz); - ret_val = clazz; - break; - } - - case TC_PROXYCLASSDESC: - { - if(dump) dumpElementln("PROXYCLASS"); - int n_intf = this.realInputStream.readInt(); - String[] intfs = new String[n_intf]; - for (int i = 0; i < n_intf; i++) - { - intfs[i] = this.realInputStream.readUTF(); - } - - boolean oldmode = setBlockDataMode(true); - Class cl = resolveProxyClass(intfs); - setBlockDataMode(oldmode); - - ObjectStreamClass osc = lookupClass(cl); - if (osc.firstNonSerializableParentConstructor == null) - { - osc.realClassIsSerializable = true; - osc.fields = osc.fieldMapping = new ObjectStreamField[0]; - try - { - osc.firstNonSerializableParentConstructor = - Object.class.getConstructor(new Class[0]); - } - catch (NoSuchMethodException x) - { - throw (InternalError) - new InternalError("Object ctor missing").initCause(x); - } - } - assignNewHandle(osc); - - if (!is_consumed) - { - byte b = this.realInputStream.readByte(); - if (b != TC_ENDBLOCKDATA) - throw new IOException("Data annotated to class was not consumed." + b); - } - else - is_consumed = false; - ObjectStreamClass superosc = (ObjectStreamClass)readObject(); - osc.setSuperclass(superosc); - ret_val = osc; - break; - } - - case TC_CLASSDESC: - { - ObjectStreamClass osc = readClassDescriptor(); - - if (!is_consumed) - { - byte b = this.realInputStream.readByte(); - if (b != TC_ENDBLOCKDATA) - throw new IOException("Data annotated to class was not consumed." + b); - } - else - is_consumed = false; - - osc.setSuperclass ((ObjectStreamClass)readObject()); - ret_val = osc; - break; - } - - case TC_STRING: - case TC_LONGSTRING: - { - if(dump) dumpElement("STRING="); - String s = this.realInputStream.readUTF(); - if(dump) dumpElementln(s); - ret_val = processResolution(null, s, assignNewHandle(s)); - break; - } - - case TC_ARRAY: - { - if(dump) dumpElementln("ARRAY"); - ObjectStreamClass osc = (ObjectStreamClass)readObject(); - Class componentType = osc.forClass().getComponentType(); - if(dump) dumpElement("ARRAY LENGTH="); - int length = this.realInputStream.readInt(); - if(dump) dumpElementln (length + "; COMPONENT TYPE=" + componentType); - Object array = Array.newInstance(componentType, length); - int handle = assignNewHandle(array); - readArrayElements(array, componentType); - if(dump) - for (int i = 0, len = Array.getLength(array); i < len; i++) - dumpElementln(" ELEMENT[" + i + "]=" + Array.get(array, i)); - ret_val = processResolution(null, array, handle); - break; - } - - case TC_OBJECT: - { - if(dump) dumpElementln("OBJECT"); - ObjectStreamClass osc = (ObjectStreamClass)readObject(); - Class clazz = osc.forClass(); - - if (!osc.realClassIsSerializable) - throw new NotSerializableException - (clazz + " is not Serializable, and thus cannot be deserialized."); - - if (osc.realClassIsExternalizable) - { - Externalizable obj = osc.newInstance(); - - int handle = assignNewHandle(obj); - - boolean read_from_blocks = ((osc.getFlags() & SC_BLOCK_DATA) != 0); - - boolean oldmode = this.readDataFromBlock; - if (read_from_blocks) - setBlockDataMode(true); - - obj.readExternal(this); - - if (read_from_blocks) - { - setBlockDataMode(oldmode); - if (!oldmode) - if (this.realInputStream.readByte() != TC_ENDBLOCKDATA) - throw new IOException("No end of block data seen for class with readExternal (ObjectInputStream) method."); - } - - ret_val = processResolution(osc, obj, handle); - break; - } // end if (osc.realClassIsExternalizable) - - Object obj = newObject(clazz, osc.firstNonSerializableParentConstructor); - - int handle = assignNewHandle(obj); - Object prevObject = this.currentObject; - ObjectStreamClass prevObjectStreamClass = this.currentObjectStreamClass; - - this.currentObject = obj; - ObjectStreamClass[] hierarchy = - inputGetObjectStreamClasses(clazz); - - for (int i = 0; i < hierarchy.length; i++) - { - this.currentObjectStreamClass = hierarchy[i]; - - if(dump) dumpElementln("Reading fields of " + this.currentObjectStreamClass.getName ()); - - // XXX: should initialize fields in classes in the hierarchy - // that aren't in the stream - // should skip over classes in the stream that aren't in the - // real classes hierarchy - - Method readObjectMethod = this.currentObjectStreamClass.readObjectMethod; - if (readObjectMethod != null) - { - fieldsAlreadyRead = false; - boolean oldmode = setBlockDataMode(true); - callReadMethod(readObjectMethod, this.currentObjectStreamClass.forClass(), obj); - setBlockDataMode(oldmode); - } - else - { - readFields(obj, currentObjectStreamClass); - } - - if (this.currentObjectStreamClass.hasWriteMethod()) - { - if(dump) dumpElement("ENDBLOCKDATA? "); - try - { - // FIXME: XXX: This try block is to - // catch EOF which is thrown for some - // objects. That indicates a bug in - // the logic. - - if (this.realInputStream.readByte() != TC_ENDBLOCKDATA) - throw new IOException - ("No end of block data seen for class with readObject (ObjectInputStream) method."); - if(dump) dumpElementln("yes"); - } -// catch (EOFException e) -// { -// if(dump) dumpElementln("no, got EOFException"); -// } - catch (IOException e) - { - if(dump) dumpElementln("no, got IOException"); - } - } - } - - this.currentObject = prevObject; - this.currentObjectStreamClass = prevObjectStreamClass; - ret_val = processResolution(osc, obj, handle); - - break; - } - - case TC_RESET: - if(dump) dumpElementln("RESET"); - clearHandles(); - ret_val = readObject(); - break; - - case TC_EXCEPTION: - { - if(dump) dumpElement("EXCEPTION="); - Exception e = (Exception)readObject(); - if(dump) dumpElementln(e.toString()); - clearHandles(); - throw new WriteAbortedException("Exception thrown during writing of stream", e); - } - - default: - throw new IOException("Unknown marker on stream: " + marker); - } - } - finally - { - setBlockDataMode(old_mode); - - this.isDeserializing = was_deserializing; - - depth -= 2; - - if (! was_deserializing) - { - if (validators.size() > 0) - invokeValidators(); - } - } - - return ret_val; - } - - /** - * This method makes a partial check of types for the fields - * contained given in arguments. It checks primitive types of - * fields1 against non primitive types of fields2. This method - * assumes the two lists has already been sorted according to - * the Java specification. - * - * @param name Name of the class owning the given fields. - * @param fields1 First list to check. - * @param fields2 Second list to check. - * @throws InvalidClassException if a field in fields1, which has a primitive type, is a present - * in the non primitive part in fields2. - */ - private void checkTypeConsistency(String name, ObjectStreamField[] fields1, ObjectStreamField[] fields2) - throws InvalidClassException - { - int nonPrimitive = 0; - - for (nonPrimitive = 0; - nonPrimitive < fields1.length - && fields1[nonPrimitive].isPrimitive(); nonPrimitive++) - { - } - - if (nonPrimitive == fields1.length) - return; - - int i = 0; - ObjectStreamField f1; - ObjectStreamField f2; - - while (i < fields2.length - && nonPrimitive < fields1.length) - { - f1 = fields1[nonPrimitive]; - f2 = fields2[i]; - - if (!f2.isPrimitive()) - break; - - int compVal = f1.getName().compareTo (f2.getName()); - - if (compVal < 0) - { - nonPrimitive++; - } - else if (compVal > 0) - { - i++; - } - else - { - throw new InvalidClassException - ("invalid field type for " + f2.getName() + - " in class " + name); - } - } - } - - /** - * This method reads a class descriptor from the real input stream - * and use these data to create a new instance of ObjectStreamClass. - * Fields are sorted and ordered for the real read which occurs for - * each instance of the described class. Be aware that if you call that - * method you must ensure that the stream is synchronized, in the other - * case it may be completely desynchronized. - * - * @return A new instance of ObjectStreamClass containing the freshly - * created descriptor. - * @throws ClassNotFoundException if the required class to build the - * descriptor has not been found in the system. - * @throws IOException An input/output error occured. - * @throws InvalidClassException If there was a compatibility problem - * between the class present in the system and the serialized class. - */ - protected ObjectStreamClass readClassDescriptor() - throws ClassNotFoundException, IOException - { - if(dump) dumpElement("CLASSDESC NAME="); - String name = this.realInputStream.readUTF(); - if(dump) dumpElement(name + "; UID="); - long uid = this.realInputStream.readLong (); - if(dump) dumpElement(Long.toHexString(uid) + "; FLAGS="); - byte flags = this.realInputStream.readByte (); - if(dump) dumpElement(Integer.toHexString(flags) + "; FIELD COUNT="); - short field_count = this.realInputStream.readShort(); - if(dump) dumpElementln(Short.toString(field_count)); - ObjectStreamField[] fields = new ObjectStreamField[field_count]; - ObjectStreamClass osc = new ObjectStreamClass(name, uid, - flags, fields); - assignNewHandle(osc); - - if (callersClassLoader == null) - callersClassLoader = currentLoader(); - - for (int i = 0; i < field_count; i++) - { - if(dump) dumpElement(" TYPE CODE="); - char type_code = (char)this.realInputStream.readByte(); - if(dump) dumpElement(type_code + "; FIELD NAME="); - String field_name = this.realInputStream.readUTF(); - if(dump) dumpElementln(field_name); - String class_name; - - // If the type code is an array or an object we must - // decode a String here. In the other case we convert - // the type code and pass it to ObjectStreamField. - // Type codes are decoded by gnu.java.lang.reflect.TypeSignature. - if (type_code == 'L' || type_code == '[') - class_name = (String)readObject(); - else - class_name = String.valueOf(type_code); - - fields[i] = - new ObjectStreamField(field_name, class_name, callersClassLoader); - } - - /* Now that fields have been read we may resolve the class - * (and read annotation if needed). */ - Class clazz; - try - { - clazz = resolveClass(osc); - } - catch (ClassNotFoundException cnfe) - { - // Maybe it was an primitive class? - if (name.equals("void")) - clazz = Void.TYPE; - else if (name.equals("boolean")) - clazz = Boolean.TYPE; - else if (name.equals("byte")) - clazz = Byte.TYPE; - else if (name.equals("short")) - clazz = Short.TYPE; - else if (name.equals("char")) - clazz = Character.TYPE; - else if (name.equals("int")) - clazz = Integer.TYPE; - else if (name.equals("long")) - clazz = Long.TYPE; - else if (name.equals("float")) - clazz = Float.TYPE; - else if (name.equals("double")) - clazz = Double.TYPE; - else - throw cnfe; - } - - boolean oldmode = setBlockDataMode(true); - osc.setClass(clazz, lookupClass(clazz.getSuperclass())); - classLookupTable.put(clazz, osc); - setBlockDataMode(oldmode); - - // find the first non-serializable, non-abstract - // class in clazz's inheritance hierarchy - Class first_nonserial = clazz.getSuperclass(); - // Maybe it is a primitive class, those don't have a super class, - // or Object itself. Otherwise we can keep getting the superclass - // till we hit the Object class, or some other non-serializable class. - - if (first_nonserial == null) - first_nonserial = clazz; - else - while (Serializable.class.isAssignableFrom(first_nonserial) - || Modifier.isAbstract(first_nonserial.getModifiers())) - first_nonserial = first_nonserial.getSuperclass(); - - final Class local_constructor_class = first_nonserial; - - osc.firstNonSerializableParentConstructor = - (Constructor)AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - try - { - Constructor c = local_constructor_class. - getDeclaredConstructor(new Class[0]); - if (Modifier.isPrivate(c.getModifiers())) - return null; - return c; - } - catch (NoSuchMethodException e) - { - // error will be reported later, in newObject() - return null; - } - } - }); - - osc.realClassIsSerializable = Serializable.class.isAssignableFrom(clazz); - osc.realClassIsExternalizable = Externalizable.class.isAssignableFrom(clazz); - - ObjectStreamField[] stream_fields = osc.fields; - ObjectStreamField[] real_fields = ObjectStreamClass.lookupForClassObject(clazz).fields; - ObjectStreamField[] fieldmapping = new ObjectStreamField[2 * Math.max(stream_fields.length, real_fields.length)]; - - int stream_idx = 0; - int real_idx = 0; - int map_idx = 0; - - /* - * Check that there is no type inconsistencies between the lists. - * A special checking must be done for the two groups: primitive types and - * not primitive types. - */ - checkTypeConsistency(name, real_fields, stream_fields); - checkTypeConsistency(name, stream_fields, real_fields); - - - while (stream_idx < stream_fields.length - || real_idx < real_fields.length) - { - ObjectStreamField stream_field = null; - ObjectStreamField real_field = null; - - if (stream_idx == stream_fields.length) - { - real_field = real_fields[real_idx++]; - } - else if (real_idx == real_fields.length) - { - stream_field = stream_fields[stream_idx++]; - } - else - { - int comp_val = - real_fields[real_idx].compareTo (stream_fields[stream_idx]); - - if (comp_val < 0) - { - real_field = real_fields[real_idx++]; - } - else if (comp_val > 0) - { - stream_field = stream_fields[stream_idx++]; - } - else - { - stream_field = stream_fields[stream_idx++]; - real_field = real_fields[real_idx++]; - if (stream_field.getType() != real_field.getType()) - throw new InvalidClassException - ("invalid field type for " + real_field.getName() + - " in class " + name); - } - } - - /* If some of stream_fields does not correspond to any of real_fields, - * or the opposite, then fieldmapping will go short. - */ - if (map_idx == fieldmapping.length) - { - ObjectStreamField[] newfieldmapping = - new ObjectStreamField[fieldmapping.length + 2]; - System.arraycopy(fieldmapping, 0, - newfieldmapping, 0, fieldmapping.length); - fieldmapping = newfieldmapping; - } - fieldmapping[map_idx++] = stream_field; - fieldmapping[map_idx++] = real_field; - } - osc.fieldMapping = fieldmapping; - - return osc; - } - - /** - * Reads the current objects non-transient, non-static fields from - * the current class from the underlying output stream. - * - * This method is intended to be called from within a object's - * private void readObject (ObjectInputStream) - * method. - * - * @exception ClassNotFoundException The class that an object being - * read in belongs to cannot be found. - * - * @exception NotActiveException This method was called from a - * context other than from the current object's and current class's - * private void readObject (ObjectInputStream) - * method. - * - * @exception IOException Exception from underlying - * OutputStream. - */ - public void defaultReadObject() - throws ClassNotFoundException, IOException, NotActiveException - { - if (this.currentObject == null || this.currentObjectStreamClass == null) - throw new NotActiveException("defaultReadObject called by non-active" - + " class and/or object"); - - if (fieldsAlreadyRead) - throw new NotActiveException("defaultReadObject called but fields " - + "already read from stream (by " - + "defaultReadObject or readFields)"); - - boolean oldmode = setBlockDataMode(false); - readFields(this.currentObject, this.currentObjectStreamClass); - setBlockDataMode(oldmode); - - fieldsAlreadyRead = true; - } - - - /** - * Registers a ObjectInputValidation to be carried out - * on the object graph currently being deserialized before it is - * returned to the original caller of readObject (). - * The order of validation for multiple - * ObjectInputValidations can be controled using - * priority. Validators with higher priorities are - * called first. - * - * @see java.io.ObjectInputValidation - * - * @exception InvalidObjectException validator is - * null - * - * @exception NotActiveException an attempt was made to add a - * validator outside of the readObject method of the - * object currently being deserialized - */ - public void registerValidation(ObjectInputValidation validator, - int priority) - throws InvalidObjectException, NotActiveException - { - if (this.currentObject == null || this.currentObjectStreamClass == null) - throw new NotActiveException("registerValidation called by non-active " - + "class and/or object"); - - if (validator == null) - throw new InvalidObjectException("attempt to add a null " - + "ObjectInputValidation object"); - - this.validators.addElement(new ValidatorAndPriority (validator, - priority)); - } - - - /** - * Called when a class is being deserialized. This is a hook to - * allow subclasses to read in information written by the - * annotateClass (Class) method of an - * ObjectOutputStream. - * - * This implementation looks up the active call stack for a - * ClassLoader; if a ClassLoader is found, - * it is used to load the class associated with osc, - * otherwise, the default system ClassLoader is used. - * - * @exception IOException Exception from underlying - * OutputStream. - * - * @see java.io.ObjectOutputStream#annotateClass (java.lang.Class) - */ - protected Class resolveClass(ObjectStreamClass osc) - throws ClassNotFoundException, IOException - { - if (callersClassLoader == null) - { - callersClassLoader = currentLoader (); - if (Configuration.DEBUG && dump) - { - dumpElementln ("CallersClassLoader = " + callersClassLoader); - } - } - - return Class.forName(osc.getName(), true, callersClassLoader); - } - - /** - * Returns the most recent user defined ClassLoader on the execution stack - * or null if none is found. - */ - // GCJ LOCAL: native method. - private native ClassLoader currentLoader(); - - /** - * Lookup a class stored in the local hashtable. If it is not - * use the global lookup function in ObjectStreamClass to build - * the ObjectStreamClass. This method is requested according to - * the behaviour detected in the JDK by Kaffe's team. - * - * @param clazz Class to lookup in the hash table or for which - * we must build a descriptor. - * @return A valid instance of ObjectStreamClass corresponding - * to the specified class. - */ - private ObjectStreamClass lookupClass(Class clazz) - { - if (clazz == null) - return null; - - ObjectStreamClass oclazz; - oclazz = (ObjectStreamClass)classLookupTable.get(clazz); - if (oclazz == null) - return ObjectStreamClass.lookup(clazz); - else - return oclazz; - } - - /** - * Reconstruct class hierarchy the same way - * {@link java.io.ObjectStreamClass.getObjectStreamClasses(java.lang.Class)} does - * but using lookupClass instead of ObjectStreamClass.lookup. This - * dup is necessary localize the lookup table. Hopefully some future - * rewritings will be able to prevent this. - * - * @param clazz This is the class for which we want the hierarchy. - * - * @return An array of valid {@link java.io.ObjectStreamClass} instances which - * represent the class hierarchy for clazz. - */ - private ObjectStreamClass[] inputGetObjectStreamClasses(Class clazz) - { - ObjectStreamClass osc = lookupClass(clazz); - - if (osc == null) - return new ObjectStreamClass[0]; - else - { - Vector oscs = new Vector(); - - while (osc != null) - { - oscs.addElement(osc); - osc = osc.getSuper(); - } - - int count = oscs.size(); - ObjectStreamClass[] sorted_oscs = new ObjectStreamClass[count]; - - for (int i = count - 1; i >= 0; i--) - sorted_oscs[count - i - 1] = (ObjectStreamClass) oscs.elementAt(i); - - return sorted_oscs; - } - } - - /** - * Allows subclasses to resolve objects that are read from the - * stream with other objects to be returned in their place. This - * method is called the first time each object is encountered. - * - * This method must be enabled before it will be called in the - * serialization process. - * - * @exception IOException Exception from underlying - * OutputStream. - * - * @see #enableResolveObject(boolean) - */ - protected Object resolveObject(Object obj) throws IOException - { - return obj; - } - - - protected Class resolveProxyClass(String[] intfs) - throws IOException, ClassNotFoundException - { - ClassLoader cl = currentLoader(); - - Class[] clss = new Class[intfs.length]; - if(cl == null) - { - for (int i = 0; i < intfs.length; i++) - clss[i] = Class.forName(intfs[i]); - cl = ClassLoader.getSystemClassLoader(); - } - else - for (int i = 0; i < intfs.length; i++) - clss[i] = cl.loadClass(intfs[i]); - try - { - return Proxy.getProxyClass(cl, clss); - } - catch (IllegalArgumentException e) - { - throw new ClassNotFoundException(null, e); - } - } - - /** - * If enable is true and this object is - * trusted, then resolveObject (Object) will be called - * in subsequent calls to readObject (Object). - * Otherwise, resolveObject (Object) will not be called. - * - * @exception SecurityException This class is not trusted. - */ - protected boolean enableResolveObject (boolean enable) - throws SecurityException - { - if (enable) - { - SecurityManager sm = System.getSecurityManager(); - if (sm != null) - sm.checkPermission(new SerializablePermission("enableSubstitution")); - } - - boolean old_val = this.resolveEnabled; - this.resolveEnabled = enable; - return old_val; - } - - /** - * Reads stream magic and stream version information from the - * underlying stream. - * - * @exception IOException Exception from underlying stream. - * - * @exception StreamCorruptedException An invalid stream magic - * number or stream version was read from the stream. - */ - protected void readStreamHeader() - throws IOException, StreamCorruptedException - { - if(dump) dumpElement("STREAM MAGIC "); - if (this.realInputStream.readShort() != STREAM_MAGIC) - throw new StreamCorruptedException("Invalid stream magic number"); - - if(dump) dumpElementln("STREAM VERSION "); - if (this.realInputStream.readShort() != STREAM_VERSION) - throw new StreamCorruptedException("Invalid stream version number"); - } - - public int read() throws IOException - { - if (this.readDataFromBlock) - { - if (this.blockDataPosition >= this.blockDataBytes) - readNextBlock(); - return (this.blockData[this.blockDataPosition++] & 0xff); - } - else - return this.realInputStream.read(); - } - - public int read(byte[] data, int offset, int length) throws IOException - { - if (this.readDataFromBlock) - { - if (this.blockDataPosition + length > this.blockDataBytes) - { - int remain = this.blockDataBytes - this.blockDataPosition; - if (remain != 0) - { - System.arraycopy(this.blockData, this.blockDataPosition, - data, offset, remain); - offset += remain; - length -= remain; - } - readNextBlock (); - } - - System.arraycopy(this.blockData, this.blockDataPosition, - data, offset, length); - this.blockDataPosition += length; - - return length; - } - else - return this.realInputStream.read(data, offset, length); - } - - public int available() throws IOException - { - if (this.readDataFromBlock) - { - if (this.blockDataPosition >= this.blockDataBytes) - readNextBlock (); - - return this.blockDataBytes - this.blockDataPosition; - } - else - return this.realInputStream.available(); - } - - public void close() throws IOException - { - this.realInputStream.close(); - } - - public boolean readBoolean() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 1) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode (true); - boolean value = this.dataInputStream.readBoolean (); - if (switchmode) - setBlockDataMode (oldmode); - return value; - } - - public byte readByte() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 1) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - byte value = this.dataInputStream.readByte(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public int readUnsignedByte() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 1) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - int value = this.dataInputStream.readUnsignedByte(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public short readShort() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 2) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - short value = this.dataInputStream.readShort(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public int readUnsignedShort() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 2) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - int value = this.dataInputStream.readUnsignedShort(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public char readChar() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 2) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - char value = this.dataInputStream.readChar(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public int readInt() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 4) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - int value = this.dataInputStream.readInt(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public long readLong() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 8) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - long value = this.dataInputStream.readLong(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public float readFloat() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 4) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - float value = this.dataInputStream.readFloat(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public double readDouble() throws IOException - { - boolean switchmode = true; - boolean oldmode = this.readDataFromBlock; - if (!oldmode || this.blockDataBytes - this.blockDataPosition >= 8) - switchmode = false; - if (switchmode) - oldmode = setBlockDataMode(true); - double value = this.dataInputStream.readDouble(); - if (switchmode) - setBlockDataMode(oldmode); - return value; - } - - public void readFully(byte data[]) throws IOException - { - this.dataInputStream.readFully(data); - } - - public void readFully(byte data[], int offset, int size) - throws IOException - { - this.dataInputStream.readFully(data, offset, size); - } - - public int skipBytes(int len) throws IOException - { - return this.dataInputStream.skipBytes(len); - } - - /** - * @deprecated - * @see java.io.DataInputStream#readLine () - */ - public String readLine() throws IOException - { - return this.dataInputStream.readLine(); - } - - public String readUTF() throws IOException - { - return this.dataInputStream.readUTF(); - } - - /** - * This class allows a class to specify exactly which fields should - * be read, and what values should be read for these fields. - * - * XXX: finish up comments - */ - public abstract static class GetField - { - public abstract ObjectStreamClass getObjectStreamClass(); - - public abstract boolean defaulted(String name) - throws IOException, IllegalArgumentException; - - public abstract boolean get(String name, boolean defvalue) - throws IOException, IllegalArgumentException; - - public abstract char get(String name, char defvalue) - throws IOException, IllegalArgumentException; - - public abstract byte get(String name, byte defvalue) - throws IOException, IllegalArgumentException; - - public abstract short get(String name, short defvalue) - throws IOException, IllegalArgumentException; - - public abstract int get(String name, int defvalue) - throws IOException, IllegalArgumentException; - - public abstract long get(String name, long defvalue) - throws IOException, IllegalArgumentException; - - public abstract float get(String name, float defvalue) - throws IOException, IllegalArgumentException; - - public abstract double get(String name, double defvalue) - throws IOException, IllegalArgumentException; - - public abstract Object get(String name, Object defvalue) - throws IOException, IllegalArgumentException; - } - - /** - * This method should be called by a method called 'readObject' in the - * deserializing class (if present). It cannot (and should not)be called - * outside of it. Its goal is to read all fields in the real input stream - * and keep them accessible through the {@link #GetField} class. Calling - * this method will not alter the deserializing object. - * - * @return A valid freshly created 'GetField' instance to get access to - * the deserialized stream. - * @throws IOException An input/output exception occured. - * @throws ClassNotFoundException - * @throws NotActiveException - */ - public GetField readFields() - throws IOException, ClassNotFoundException, NotActiveException - { - if (this.currentObject == null || this.currentObjectStreamClass == null) - throw new NotActiveException("readFields called by non-active class and/or object"); - - if (prereadFields != null) - return prereadFields; - - if (fieldsAlreadyRead) - throw new NotActiveException("readFields called but fields already read from" - + " stream (by defaultReadObject or readFields)"); - - final ObjectStreamClass clazz = this.currentObjectStreamClass; - final byte[] prim_field_data = new byte[clazz.primFieldSize]; - final Object[] objs = new Object[clazz.objectFieldCount]; - - // Apparently Block data is not used with GetField as per - // empirical evidence against JDK 1.2. Also see Mauve test - // java.io.ObjectInputOutput.Test.GetPutField. - boolean oldmode = setBlockDataMode(false); - readFully(prim_field_data); - for (int i = 0; i < objs.length; ++ i) - objs[i] = readObject(); - setBlockDataMode(oldmode); - - prereadFields = new GetField() - { - public ObjectStreamClass getObjectStreamClass() - { - return clazz; - } - - public boolean defaulted(String name) - throws IOException, IllegalArgumentException - { - ObjectStreamField f = clazz.getField(name); - - /* First if we have a serialized field use the descriptor */ - if (f != null) - { - /* It is in serialPersistentFields but setClass tells us - * it should not be set. This value is defaulted. - */ - if (f.isPersistent() && !f.isToSet()) - return true; - - return false; - } - - /* This is not a serialized field. There should be - * a default value only if the field really exists. - */ - try - { - return (clazz.forClass().getDeclaredField (name) != null); - } - catch (NoSuchFieldException e) - { - throw new IllegalArgumentException(e.getMessage()); - } - } - - public boolean get(String name, boolean defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Boolean.TYPE); - - if (field == null) - return defvalue; - - return prim_field_data[field.getOffset()] == 0 ? false : true; - } - - public char get(String name, char defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Character.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset(); - - return (char)(((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } - - public byte get(String name, byte defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Byte.TYPE); - - if (field == null) - return defvalue; - - return prim_field_data[field.getOffset()]; - } - - public short get(String name, short defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Short.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset(); - - return (short)(((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } - - public int get(String name, int defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Integer.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset(); - - return ((prim_field_data[off++] & 0xFF) << 24) - | ((prim_field_data[off++] & 0xFF) << 16) - | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF); - } - - public long get(String name, long defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Long.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset(); - - return (long)(((prim_field_data[off++] & 0xFFL) << 56) - | ((prim_field_data[off++] & 0xFFL) << 48) - | ((prim_field_data[off++] & 0xFFL) << 40) - | ((prim_field_data[off++] & 0xFFL) << 32) - | ((prim_field_data[off++] & 0xFF) << 24) - | ((prim_field_data[off++] & 0xFF) << 16) - | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } - - public float get(String name, float defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Float.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset(); - - return Float.intBitsToFloat(((prim_field_data[off++] & 0xFF) << 24) - | ((prim_field_data[off++] & 0xFF) << 16) - | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF)); - } - - public double get(String name, double defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = getField(name, Double.TYPE); - - if (field == null) - return defvalue; - - int off = field.getOffset(); - - return Double.longBitsToDouble - ( (long) (((prim_field_data[off++] & 0xFFL) << 56) - | ((prim_field_data[off++] & 0xFFL) << 48) - | ((prim_field_data[off++] & 0xFFL) << 40) - | ((prim_field_data[off++] & 0xFFL) << 32) - | ((prim_field_data[off++] & 0xFF) << 24) - | ((prim_field_data[off++] & 0xFF) << 16) - | ((prim_field_data[off++] & 0xFF) << 8) - | (prim_field_data[off] & 0xFF))); - } - - public Object get(String name, Object defvalue) - throws IOException, IllegalArgumentException - { - ObjectStreamField field = - getField(name, defvalue == null ? null : defvalue.getClass ()); - - if (field == null) - return defvalue; - - return objs[field.getOffset()]; - } - - private ObjectStreamField getField(String name, Class type) - throws IllegalArgumentException - { - ObjectStreamField field = clazz.getField(name); - boolean illegal = false; - - try - { - try - { - Class field_type = field.getType(); - - if (type == field_type || - (type == null && !field_type.isPrimitive())) - { - /* See defaulted */ - return field; - } - - illegal = true; - throw new IllegalArgumentException - ("Field requested is of type " - + field_type.getName() - + ", but requested type was " - + (type == null ? "Object" : type.getName())); - } - catch (NullPointerException _) - { - /* Here we catch NullPointerException, because it may - only come from the call 'field.getType()'. If field - is null, we have to return null and classpath ethic - say we must try to avoid 'if (xxx == null)'. - */ - } - catch (IllegalArgumentException e) - { - throw e; - } - - return null; - } - finally - { - /* If this is an unassigned field we should return - * the default value. - */ - if (!illegal && field != null && !field.isToSet() && field.isPersistent()) - return null; - - /* We do not want to modify transient fields. They should - * be left to 0. - */ - try - { - Field f = clazz.forClass().getDeclaredField(name); - if (Modifier.isTransient(f.getModifiers())) - throw new IllegalArgumentException - ("no such field (non transient) " + name); - if (field == null && f.getType() != type) - throw new IllegalArgumentException - ("Invalid requested type for field " + name); - } - catch (NoSuchFieldException e) - { - if (field == null) - throw new IllegalArgumentException(e.getMessage()); - } - - } - } - }; - - fieldsAlreadyRead = true; - return prereadFields; - } - - /** - * Protected constructor that allows subclasses to override - * deserialization. This constructor should be called by subclasses - * that wish to override readObject (Object). This - * method does a security check NOTE: currently not - * implemented, then sets a flag that informs - * readObject (Object) to call the subclasses - * readObjectOverride (Object) method. - * - * @see #readObjectOverride() - */ - protected ObjectInputStream() - throws IOException, SecurityException - { - SecurityManager sec_man = System.getSecurityManager(); - if (sec_man != null) - sec_man.checkPermission(SUBCLASS_IMPLEMENTATION_PERMISSION); - this.useSubclassMethod = true; - } - - /** - * This method allows subclasses to override the default - * de serialization mechanism provided by - * ObjectInputStream. To make this method be used for - * writing objects, subclasses must invoke the 0-argument - * constructor on this class from their constructor. - * - * @see #ObjectInputStream() - */ - protected Object readObjectOverride() - throws ClassNotFoundException, IOException, OptionalDataException - { - throw new IOException("Subclass of ObjectInputStream must implement readObjectOverride"); - } - - /** - * Assigns the next available handle to obj. - * - * @param obj The object for which we want a new handle. - * @return A valid handle for the specified object. - */ - private int assignNewHandle(Object obj) - { - this.objectLookupTable.put(new Integer(this.nextOID), - new ObjectIdentityWrapper(obj)); - return this.nextOID++; - } - - private Object processResolution(ObjectStreamClass osc, Object obj, int handle) - throws IOException - { - if (osc != null && obj instanceof Serializable) - { - try - { - Method m = osc.readResolveMethod; - if(m != null) - { - obj = m.invoke(obj, new Object[] {}); - } - } - catch (IllegalAccessException ignore) - { - } - catch (InvocationTargetException exception) - { - Throwable cause = exception.getCause(); - if (cause instanceof ObjectStreamException) - throw (ObjectStreamException) cause; - else if (cause instanceof RuntimeException) - throw (RuntimeException) cause; - else if (cause instanceof Error) - throw (Error) cause; - } - } - - if (this.resolveEnabled) - obj = resolveObject(obj); - - this.objectLookupTable.put(new Integer(handle), - new ObjectIdentityWrapper(obj)); - - return obj; - } - - private void clearHandles() - { - this.objectLookupTable.clear(); - this.nextOID = baseWireHandle; - } - - private void readNextBlock() throws IOException - { - readNextBlock(this.realInputStream.readByte()); - } - - private void readNextBlock(byte marker) throws IOException - { - if (marker == TC_BLOCKDATA) - { - if(dump) dumpElement("BLOCK DATA SIZE="); - this.blockDataBytes = this.realInputStream.readUnsignedByte(); - if(dump) dumpElementln (Integer.toString(this.blockDataBytes)); - } - else if (marker == TC_BLOCKDATALONG) - { - if(dump) dumpElement("BLOCK DATA LONG SIZE="); - this.blockDataBytes = this.realInputStream.readInt(); - if(dump) dumpElementln (Integer.toString(this.blockDataBytes)); - } - else - { - throw new EOFException("Attempt to read primitive data, but no data block is active."); - } - - if (this.blockData.length < this.blockDataBytes) - this.blockData = new byte[this.blockDataBytes]; - - this.realInputStream.readFully (this.blockData, 0, this.blockDataBytes); - this.blockDataPosition = 0; - } - - private void readArrayElements (Object array, Class clazz) - throws ClassNotFoundException, IOException - { - if (clazz.isPrimitive()) - { - if (clazz == Boolean.TYPE) - { - boolean[] cast_array = (boolean[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readBoolean(); - return; - } - if (clazz == Byte.TYPE) - { - byte[] cast_array = (byte[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readByte(); - return; - } - if (clazz == Character.TYPE) - { - char[] cast_array = (char[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readChar(); - return; - } - if (clazz == Double.TYPE) - { - double[] cast_array = (double[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readDouble(); - return; - } - if (clazz == Float.TYPE) - { - float[] cast_array = (float[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readFloat(); - return; - } - if (clazz == Integer.TYPE) - { - int[] cast_array = (int[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readInt(); - return; - } - if (clazz == Long.TYPE) - { - long[] cast_array = (long[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readLong(); - return; - } - if (clazz == Short.TYPE) - { - short[] cast_array = (short[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = this.realInputStream.readShort(); - return; - } - } - else - { - Object[] cast_array = (Object[])array; - for (int i=0; i < cast_array.length; i++) - cast_array[i] = readObject(); - } - } - - private void readFields (Object obj, ObjectStreamClass stream_osc) - throws ClassNotFoundException, IOException - { - ObjectStreamField[] fields = stream_osc.fieldMapping; - - for (int i = 0; i < fields.length; i += 2) - { - ObjectStreamField stream_field = fields[i]; - ObjectStreamField real_field = fields[i + 1]; - boolean read_value = (stream_field != null && stream_field.getOffset() >= 0 && stream_field.isToSet()); - boolean set_value = (real_field != null && real_field.isToSet()); - String field_name; - char type; - - if (stream_field != null) - { - field_name = stream_field.getName(); - type = stream_field.getTypeCode(); - } - else - { - field_name = real_field.getName(); - type = real_field.getTypeCode(); - } - - switch(type) - { - case 'Z': - { - boolean value = - read_value ? this.realInputStream.readBoolean() : false; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setBooleanField(obj, value); - break; - } - case 'B': - { - byte value = - read_value ? this.realInputStream.readByte() : 0; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setByteField(obj, value); - break; - } - case 'C': - { - char value = - read_value ? this.realInputStream.readChar(): 0; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setCharField(obj, value); - break; - } - case 'D': - { - double value = - read_value ? this.realInputStream.readDouble() : 0; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setDoubleField(obj, value); - break; - } - case 'F': - { - float value = - read_value ? this.realInputStream.readFloat() : 0; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setFloatField(obj, value); - break; - } - case 'I': - { - int value = - read_value ? this.realInputStream.readInt() : 0; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setIntField(obj, value); - break; - } - case 'J': - { - long value = - read_value ? this.realInputStream.readLong() : 0; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setLongField(obj, value); - break; - } - case 'S': - { - short value = - read_value ? this.realInputStream.readShort() : 0; - if (dump && read_value && set_value) - dumpElementln(" " + field_name + ": " + value); - if (set_value) - real_field.setShortField(obj, value); - break; - } - case 'L': - case '[': - { - Object value = - read_value ? readObject() : null; - if (set_value) - real_field.setObjectField(obj, value); - break; - } - default: - throw new InternalError("Invalid type code: " + type); - } - } - } - - // Toggles writing primitive data to block-data buffer. - private boolean setBlockDataMode (boolean on) - { - boolean oldmode = this.readDataFromBlock; - this.readDataFromBlock = on; - - if (on) - this.dataInputStream = this.blockDataInput; - else - this.dataInputStream = this.realInputStream; - return oldmode; - } - - // returns a new instance of REAL_CLASS that has been constructed - // only to the level of CONSTRUCTOR_CLASS (a super class of REAL_CLASS) - private Object newObject (Class real_class, Constructor constructor) - throws ClassNotFoundException, IOException - { - if (constructor == null) - throw new InvalidClassException("Missing accessible no-arg base class constructor for " + real_class.getName()); - try - { - return allocateObject(real_class, constructor.getDeclaringClass(), constructor); - } - catch (InstantiationException e) - { - throw new ClassNotFoundException - ("Instance of " + real_class + " could not be created"); - } - } - - // runs all registered ObjectInputValidations in prioritized order - // on OBJ - private void invokeValidators() throws InvalidObjectException - { - Object[] validators = new Object[this.validators.size()]; - this.validators.copyInto (validators); - Arrays.sort (validators); - - try - { - for (int i=0; i < validators.length; i++) - ((ObjectInputValidation)validators[i]).validateObject(); - } - finally - { - this.validators.removeAllElements(); - } - } - - private void callReadMethod (Method readObject, Class klass, Object obj) - throws ClassNotFoundException, IOException - { - try - { - readObject.invoke(obj, new Object[] { this }); - } - catch (InvocationTargetException x) - { - /* Rethrow if possible. */ - Throwable exception = x.getTargetException(); - if (exception instanceof RuntimeException) - throw (RuntimeException) exception; - if (exception instanceof IOException) - throw (IOException) exception; - if (exception instanceof ClassNotFoundException) - throw (ClassNotFoundException) exception; - - throw new IOException("Exception thrown from readObject() on " + - klass + ": " + exception.getClass().getName()); - } - catch (Exception x) - { - throw new IOException("Failure invoking readObject() on " + - klass + ": " + x.getClass().getName()); - } - - // Invalidate fields which has been read through readFields. - prereadFields = null; - } - - private native Object allocateObject(Class clazz, Class constr_clazz, Constructor constructor) - throws InstantiationException; - - private static final int BUFFER_SIZE = 1024; - - private DataInputStream realInputStream; - private DataInputStream dataInputStream; - private DataInputStream blockDataInput; - private int blockDataPosition; - private int blockDataBytes; - private byte[] blockData; - private boolean useSubclassMethod; - private int nextOID; - private boolean resolveEnabled; - private Hashtable objectLookupTable; - private Object currentObject; - private ObjectStreamClass currentObjectStreamClass; - private boolean readDataFromBlock; - private boolean isDeserializing; - private boolean fieldsAlreadyRead; - private Vector validators; - private Hashtable classLookupTable; - private GetField prereadFields; - - private ClassLoader callersClassLoader; - private static boolean dump; - - // The nesting depth for debugging output - private int depth = 0; - - private void dumpElement (String msg) - { - System.out.print(msg); - } - - private void dumpElementln (String msg) - { - System.out.println(msg); - for (int i = 0; i < depth; i++) - System.out.print (" "); - System.out.print (Thread.currentThread() + ": "); - } - - static - { - if (Configuration.INIT_LOAD_LIBRARY) - { - System.loadLibrary ("javaio"); - } - } - - // used to keep a prioritized list of object validators - private static final class ValidatorAndPriority implements Comparable - { - int priority; - ObjectInputValidation validator; - - ValidatorAndPriority (ObjectInputValidation validator, int priority) - { - this.priority = priority; - this.validator = validator; - } - - public int compareTo (Object o) - { - ValidatorAndPriority vap = (ValidatorAndPriority)o; - return this.priority - vap.priority; - } - } -} - diff --git a/libjava/java/io/ObjectInputValidation.h b/libjava/java/io/ObjectInputValidation.h new file mode 100644 index 00000000000..6b0df7dfce5 --- /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 + +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 00000000000..ec45c019345 --- /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 +#include + + +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 00000000000..5890abf9004 --- /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 +#include + + +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: + void put(::java::lang::String *, jboolean); + void put(::java::lang::String *, jbyte); + void put(::java::lang::String *, jchar); + void put(::java::lang::String *, jdouble); + void put(::java::lang::String *, jfloat); + void put(::java::lang::String *, jint); + void put(::java::lang::String *, jlong); + void put(::java::lang::String *, jshort); + void put(::java::lang::String *, ::java::lang::Object *); + 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 00000000000..790bb0e09b6 --- /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 + +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 00000000000..273f04b14e4 --- /dev/null +++ b/libjava/java/io/ObjectOutputStream.h @@ -0,0 +1,122 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_ObjectOutputStream__ +#define __java_io_ObjectOutputStream__ + +#pragma interface + +#include +#include + +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 *); +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 *); + 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 00000000000..c57bb25973a --- /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 + +class java::io::ObjectStreamClass$1 : public ::java::lang::Object +{ + +public: // actually package-private + ObjectStreamClass$1(::java::io::ObjectStreamClass *); +public: + 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 00000000000..2152ca09156 --- /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 + +class java::io::ObjectStreamClass$2 : public ::java::lang::Object +{ + +public: // actually package-private + ObjectStreamClass$2(::java::io::ObjectStreamClass *, ::java::lang::reflect::Constructor *); +public: + ::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 00000000000..7faddc7d78d --- /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 + +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 00000000000..81a8ca48699 --- /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 + +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 00000000000..7638f7bed3a --- /dev/null +++ b/libjava/java/io/ObjectStreamClass.h @@ -0,0 +1,113 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_ObjectStreamClass__ +#define __java_io_ObjectStreamClass__ + +#pragma interface + +#include +#include + +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 *); + 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: + 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 00000000000..f4e9508738b --- /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 + +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 00000000000..4ce5833516b --- /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 + +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 00000000000..e17f3c1ded7 --- /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 + +class java::io::ObjectStreamField$1 : public ::java::lang::Object +{ + +public: // actually package-private + ObjectStreamField$1(::java::io::ObjectStreamField *, ::java::lang::reflect::Field *); +public: + ::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 00000000000..5b3116fc116 --- /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 + +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 00000000000..b12a8390977 --- /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 + +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 00000000000..28f158511e8 --- /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 +#include + + +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 00000000000..8ad6c8e690a --- /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 +#include + +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/PipedInputStream.h b/libjava/java/io/PipedInputStream.h new file mode 100644 index 00000000000..9531667af4b --- /dev/null +++ b/libjava/java/io/PipedInputStream.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_PipedInputStream__ +#define __java_io_PipedInputStream__ + +#pragma interface + +#include +#include + + +class java::io::PipedInputStream : public ::java::io::InputStream +{ + +public: + PipedInputStream(); + PipedInputStream(::java::io::PipedOutputStream *); + 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 00000000000..79e069e40f2 --- /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 +#include + + +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 00000000000..1eac2f79e18 --- /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 +#include + + +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 00000000000..d1aac55aecf --- /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 +#include + + +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 00000000000..3740fc78596 --- /dev/null +++ b/libjava/java/io/PrintStream.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_PrintStream__ +#define __java_io_PrintStream__ + +#pragma interface + +#include +#include + +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::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 * target$append(jchar); + virtual ::java::io::PrintStream * target$append(::java::lang::CharSequence *); + virtual ::java::io::PrintStream * target$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 index dc26edafd9f..d3f386dc083 100644 --- a/libjava/java/io/PrintStream.java +++ b/libjava/java/io/PrintStream.java @@ -38,6 +38,9 @@ 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 @@ -58,7 +61,7 @@ import gnu.gcj.convert.UnicodeToBytes; * @author Aaron M. Renn (arenn@urbanophile.com) * @author Tom Tromey (tromey@cygnus.com) */ -public class PrintStream extends FilterOutputStream +public class PrintStream extends FilterOutputStream implements Appendable { /* Notice the implementation is quite similar to OutputStreamWriter. * This leads to some minor duplication, because neither inherits @@ -562,5 +565,52 @@ public class PrintStream extends FilterOutputStream 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 00000000000..2cbbd042dd9 --- /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 +#include + + +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 * target$append(jchar); + virtual ::java::io::PrintWriter * target$append(::java::lang::CharSequence *); + virtual ::java::io::PrintWriter * target$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 * target$append(::java::lang::CharSequence *, jint, jint); + virtual ::java::lang::Appendable * append(::java::lang::CharSequence *); + virtual ::java::io::Writer * target$append(::java::lang::CharSequence *); + virtual ::java::lang::Appendable * append(jchar); + virtual ::java::io::Writer * target$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 00000000000..032bfce983a --- /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 +#include + + +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 00000000000..8d1c2ee5e35 --- /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 +#include + + +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 00000000000..6b6076dfaf2 --- /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 +#include + +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 00000000000..d719a1e3b5a --- /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 + * DataInput and DataOutput 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 RandomAccessFile + * to read from the specified File object with the specified + * access mode. The access mode is either "r" for read only access or "rw" + * for read-write access. + *

      + * Note that a SecurityManager 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 File object to read and/or write. + * @param mode "r" for read only or "rw" for read-write access to the file + * + * @exception IllegalArgumentException If mode 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 RandomAccessFile + * 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. + *

      + * Note that a SecurityManager 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 mode 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 FileDescriptor object that + * represents the native file handle for this file. + * + * @return The FileDescriptor 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). + *

      + * 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 + * buf.length 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 len bytes from the file into the + * specified array starting at position offset 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 false If the byte is non-zero, then + * the value returned is true + *

      + * This method can read a boolean written by an object + * implementing the + * writeBoolean() method in the DataOutput + * interface. + * + * @return The boolean 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. + *

      + * This method can read a byte written by an object + * implementing the + * writeByte() method in the DataOutput interface. + * + * @return The byte 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 char value from an input stream. + * It operates by reading two bytes from the stream and converting them to + * a single 16-bit Java char The two bytes are stored most + * significant byte first (i.e., "big endian") regardless of the native + * host byte ordering. + *

      + * As an example, if byte1 and byte2 represent + * the first + * and second byte read from the stream respectively, they will be + * transformed to a char in the following manner: + *

      + * (char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF) + *

      + * This method can read a char written by an object + * implementing the + * writeChar() method in the DataOutput interface. + * + * @return The char 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 logn value from the stream by calling the + * readLong() method in this interface, then + * converts that long + * to a double using the longBitsToDouble + * method in the class java.lang.Double + *

      + * This method can read a double written by an object + * implementing the + * writeDouble() method in the DataOutput + * interface. + * + * @return The double 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 int value from the stream by calling the + * readInt() method in this interface, then converts + * that int + * to a float using the intBitsToFloat method in + * the class java.lang.Float + *

      + * This method can read a float written by an object + * implementing the + * writeFloat() method in the DataOutput interface. + * + * @return The float 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 buf + * starting + * offset bytes into the buffer. The number of bytes read + * will be + * exactly len 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 len 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 int value from an input stream + * It operates by reading four bytes from the stream and converting them to + * a single Java int The bytes are stored most + * significant byte first (i.e., "big endian") regardless of the native + * host byte ordering. + *

      + * As an example, if byte1 through byte4 + * represent the first + * four bytes read from the stream, they will be + * transformed to an int in the following manner: + *

      + * (int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) + + * ((byte3 & 0xFF) << 8) + (byte4 & 0xFF))) + *

      + * The value returned is in the range of 0 to 65535. + *

      + * This method can read an int written by an object + * implementing the + * writeInt() method in the DataOutput interface. + * + * @return The int 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 + * char + * values by treating the byte read as the low eight bits of the + * char + * and using 0 as the high eight bits. Because of this, it does + * not support the full 16-bit Unicode character set. + *

      + * 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 String + * A line terminator is a byte sequence consisting of either + * \r \n or \r\n These + * termination charaters are + * discarded and are not returned as part of the string. + *

      + * This method can read data that was written by an object implementing the + * writeLine() method in DataOutput + * + * @return The line read as a String + * + * @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 long The bytes are stored most + * significant byte first (i.e., "big endian") regardless of the native + * host byte ordering. + *

      + * As an example, if byte1 through byte8 + * represent the first + * eight bytes read from the stream, they will be + * transformed to an long in the following manner: + *

      + * + * (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))) + *

      + * The value returned is in the range of 0 to 65535. + *

      + * This method can read an long written by an object + * implementing the + * writeLong() method in the DataOutput interface. + * + * @return The long 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 short The two bytes are stored most + * significant byte first (i.e., "big endian") regardless of the native + * host byte ordering. + *

      + * As an example, if byte1 and byte2 + * represent the first + * and second byte read from the stream respectively, they will be + * transformed to a short in the following manner: + *

      + * (short)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF) + *

      + * The value returned is in the range of -32768 to 32767. + *

      + * This method can read a short written by an object + * implementing the + * writeShort() method in the DataOutput interface. + * + * @return The short 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 int value + * from the + * stream. The value returned is in the range of 0 to 255. + *

      + * This method can read an unsigned byte written by an object implementing + * the writeUnsignedByte() method in the + * DataOutput interface. + * + * @return The unsigned bytes value read as a Java int + * + * @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 int The two bytes are stored most + * significant byte first (i.e., "big endian") regardless of the native + * host byte ordering. + *

      + * As an example, if byte1 and byte2 + * represent the first + * and second byte read from the stream respectively, they will be + * transformed to an int in the following manner: + *

      + * (int)(((byte1 & 0xFF) << 8) + (byte2 & 0xFF)) + *

      + * The value returned is in the range of 0 to 65535. + *

      + * This method can read an unsigned short written by an object implementing + * the writeUnsignedShort() method in the + * DataOutput interface. + * + * @return The unsigned short value read as a Java int + * + * @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 String 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 readUnsignedShort() method of this + * interface. + *

      + * After the number of remaining bytes have been determined, these bytes + * are read an transformed into char values. + * These char 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. + *

      + * 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 byte1 is the byte read from the stream, it would + * be converted to a char like so: + *

      + * (char)byte1 + *

      + * If the first byte has 110 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. + *

      + * As an example, if byte1 and byte2 + * 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 char like so: + *

      + * (char)(((byte1 & 0x1F) << 6) | (byte2 & 0x3F)) + *

      + * If the first byte has a 1110 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 10 as their high order bits). These values are in most + * significant byte first (i.e., "big endian") order. + *

      + * As an example, if byte1 byte2 + * and byte3 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 char like so: + *

      + * (char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | + * (byte3 & 0x3F)) + *

      + * 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 \u0000 which is encoded as two bytes. This is + * a modification of the UTF standard used to prevent C language style + * NUL values from appearing in the byte stream. + *

      + * This method can read data that was written by an object implementing the + * writeUTF() method in DataOutput + * + * @return The String 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 len bytes to the file from the specified + * array starting at index offset 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 boolean to the underlying output + * stream. For a value of true, 1 is written to the stream. + * For a value of false, 0 is written. + * + * @param val The boolean 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 byte value to the underlying + * output stream. + * + * @param val The byte to write to the stream, passed + * as an int. + * + * @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 short to the stream, high byte + * first. This method requires two bytes to encode the value. + * + * @param val The short value to write to the stream, + * passed as an int. + * + * @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 char value to the stream, + * high byte first. + * + * @param val The char value to write, passed as + * an int. + * + * @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 int to the stream, high bytes + * first. This method requires four bytes to encode the value. + * + * @param val The int 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 long to the stream, high bytes + * first. This method requires eight bytes to encode the value. + * + * @param val The long 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 float value to the stream. This + * value is written by first calling the method + * Float.floatToIntBits + * to retrieve an int representing the floating point number, + * then writing this int value to the stream exactly the same + * as the writeInt() 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 double value to the stream. This + * value is written by first calling the method + * Double.doubleToLongBits + * to retrieve an long representing the floating point number, + * then writing this long value to the stream exactly the same + * as the writeLong() 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 String out to the + * stream. One byte is written for each character in the String. + * The high eight bits of each character are discarded. + * + * @param val The String 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 String 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 String 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 String 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 String not the String length. Next + * come the encoded characters. Each character in the String + * is encoded as either one, two or three bytes. For characters in the + * range of \u0001 to \u007F, + * one byte is used. The character + * value goes into bits 0-7 and bit eight is 0. For characters in the range + * of \u0080 to \u007FF, 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 + * \u0000. 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 String 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 00000000000..678bc918144 --- /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 +#include + +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 00000000000..f5baa7d103f --- /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 +#include + + +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 00000000000..12c36e55cea --- /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 + +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 00000000000..04c3dcee412 --- /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 +#include + + +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 00000000000..79b0d02a9be --- /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 + +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 00000000000..ad9496cd4bb --- /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 +#include + + +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 00000000000..077bc4d2875 --- /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 +#include + + +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 00000000000..57a2d3f8040 --- /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 +#include + + +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 00000000000..16e6de52b73 --- /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 +#include + + +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 * target$append(jchar); + virtual ::java::io::StringWriter * target$append(::java::lang::CharSequence *); + virtual ::java::io::StringWriter * target$append(::java::lang::CharSequence *, jint, jint); + virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint); + virtual ::java::io::Writer * target$append(::java::lang::CharSequence *, jint, jint); + virtual ::java::lang::Appendable * append(::java::lang::CharSequence *); + virtual ::java::io::Writer * target$append(::java::lang::CharSequence *); + virtual ::java::lang::Appendable * append(jchar); + virtual ::java::io::Writer * target$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 00000000000..1088ca2dd12 --- /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 + +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 00000000000..48f8cf7a626 --- /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 + +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 00000000000..6291af25593 --- /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 + +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 00000000000..307dd551fa4 --- /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 + +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 00000000000..77bdf7170c9 --- /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 00000000000..5f2ef2cb073 --- /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 + +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/WriteAbortedException.h b/libjava/java/io/WriteAbortedException.h new file mode 100644 index 00000000000..712c04d0fe3 --- /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 + +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 00000000000..611566470ba --- /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 +#include + + +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 * target$append(jchar); + virtual ::java::io::Writer * target$append(::java::lang::CharSequence *); + virtual ::java::io::Writer * target$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/natObjectInputStream.cc b/libjava/java/io/natObjectInputStream.cc index 2d1a55665d1..62123965526 100644 --- a/libjava/java/io/natObjectInputStream.cc +++ b/libjava/java/io/natObjectInputStream.cc @@ -1,6 +1,6 @@ -// natObjectInputStream.cc - Native part of ObjectInputStream class. +// natObjectInputStream.cc - Native part of VMObjectInputStream class. -/* Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001, 2005, 2006 Free Software Foundation This ObjectInputStream is part of libgcj. @@ -14,8 +14,7 @@ details. */ #include #include -#include -#include +#include #include #include #include @@ -32,7 +31,7 @@ details. */ #endif jobject -java::io::ObjectInputStream::allocateObject (jclass klass, jclass, +java::io::VMObjectInputStream::allocateObject (jclass klass, jclass, ::java::lang::reflect::Constructor *ctr) { jobject obj = NULL; @@ -69,12 +68,3 @@ java::io::ObjectInputStream::allocateObject (jclass klass, jclass, return obj; } - -java::lang::ClassLoader * -java::io::ObjectInputStream::currentLoader () -{ - jclass caller = _Jv_StackTrace::GetCallingClass (&ObjectInputStream::class$); - if (caller) - return caller->getClassLoaderInternal(); - return NULL; -} diff --git a/libjava/java/lang/AbstractMethodError.h b/libjava/java/lang/AbstractMethodError.h new file mode 100644 index 00000000000..92a757da238 --- /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 + +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/Appendable.h b/libjava/java/lang/Appendable.h new file mode 100644 index 00000000000..d304ff9cfd0 --- /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 + +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 00000000000..8d784adb7e7 --- /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 + +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 00000000000..8e65f70f741 --- /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 + +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 00000000000..8e120d11cbb --- /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 + +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 00000000000..0154c04b3f4 --- /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 + +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 00000000000..a8476f7b8b1 --- /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 + +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 target$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 00000000000..2caccd7be5c --- /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 +#include + + +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 target$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 00000000000..1348b564d04 --- /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 + +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 00000000000..93f2ba1cb34 --- /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 + +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.h b/libjava/java/lang/Character$UnicodeBlock.h new file mode 100644 index 00000000000..43fa6b447e3 --- /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 +#include + + +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 *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Character$Subset)))) start; + jint end; + ::java::lang::String * canonicalName; + static const jint CANONICAL_NAME = 0; + static const jint NO_SPACES_NAME = 1; + static const jint CONSTANT_NAME = 2; +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; +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 00000000000..ed913ab7c7e --- /dev/null +++ b/libjava/java/lang/Character.h @@ -0,0 +1,175 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Character__ +#define __java_lang_Character__ + +#pragma interface + +#include +#include + + +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 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 compareTo(::java::lang::Character *); + jint compareTo(::java::lang::Object *); + 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); +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 ::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 const jint MIN_SUPPLEMENTARY_CODE_POINT = 65536; + 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 ::java::lang::Class class$; +}; + +#endif // __java_lang_Character__ diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index 82a66fb814b..d0cf5af7e9f 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -192,6 +192,24 @@ struct _Jv_TypeAssertion _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) @@ -341,6 +359,15 @@ private: java::lang::reflect::Method *_getMethod (jstring, JArray *); java::lang::reflect::Method *_getDeclaredMethod (jstring, JArray *); + 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 *getFields (void); @@ -403,10 +430,34 @@ public: JArray *getTypeParameters (void); + jint getEnclosingMethodData(void); java::lang::Class *getEnclosingClass (void); java::lang::reflect::Constructor *getEnclosingConstructor (void); java::lang::reflect::Method *getEnclosingMethod (void); - jboolean isEnum (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) @@ -428,6 +479,20 @@ public: // 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: @@ -444,6 +509,9 @@ private: notifyAll (); } + jint findInnerClassAttribute(); + jint findDeclaredClasses(JArray *, jboolean, jint); + // Friend functions implemented in natClass.cc. friend _Jv_Method *::_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name, _Jv_Utf8Const *signature); @@ -562,6 +630,11 @@ private: 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. @@ -644,6 +717,8 @@ private: void *aux_info; // Execution engine. _Jv_ExecutionEngine *engine; + // Reflection data. + unsigned char *reflection_data; }; // Inline functions that are friends of java::lang::Class diff --git a/libjava/java/lang/Class.java b/libjava/java/lang/Class.java index f301f358427..a071ee36cd0 100644 --- a/libjava/java/lang/Class.java +++ b/libjava/java/lang/Class.java @@ -38,12 +38,14 @@ 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; @@ -53,6 +55,11 @@ import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; +import java.util.HashMap; +import java.util.Collection; +import java.lang.reflect.AnnotatedElement; +import java.lang.annotation.Annotation; +import java.lang.annotation.Inherited; /** * A Class represents a Java type. There will never be multiple Class @@ -83,7 +90,8 @@ import java.util.HashSet; * @since 1.0 * @see ClassLoader */ -public final class Class implements Type, GenericDeclaration, Serializable +public final class Class + implements Type, AnnotatedElement, GenericDeclaration, Serializable { /** * Class is non-instantiable from Java code; only the VM can create @@ -112,7 +120,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @throws ExceptionInInitializerError if the class loads, but an exception * occurs during initialization */ - public static native Class forName (String className) + public static native Class forName (String className) throws ClassNotFoundException; // A private internal method that is called by compiler-generated code. @@ -147,8 +155,8 @@ public final class Class implements Type, GenericDeclaration, Serializable * @see ClassLoader * @since 1.2 */ - public static native Class forName (String className, boolean initialize, - ClassLoader loader) + public static native Class forName (String className, boolean initialize, + ClassLoader loader) throws ClassNotFoundException; /** @@ -163,7 +171,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @throws SecurityException if the security check fails * @since 1.1 */ - public Class[] getClasses() + public Class[] getClasses() { memberAccessCheck(Member.PUBLIC); return internalGetClasses(); @@ -172,16 +180,16 @@ public final class Class implements Type, GenericDeclaration, Serializable /** * Like getClasses() but without the security checks. */ - private Class[] internalGetClasses() + private Class[] internalGetClasses() { - ArrayList list = new ArrayList(); + ArrayList list = new ArrayList(); list.addAll(Arrays.asList(getDeclaredClasses(true))); Class superClass = getSuperclass(); if (superClass != null) list.addAll(Arrays.asList(superClass.internalGetClasses())); - return (Class[])list.toArray(new Class[list.size()]); + 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. @@ -216,7 +224,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @see Array * @since 1.1 */ - public native Class getComponentType (); + public native Class getComponentType (); /** * Get a public constructor declared in this class. If the constructor takes @@ -232,7 +240,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @see #getConstructors() * @since 1.1 */ - public native Constructor getConstructor(Class[] args) + public native Constructor getConstructor(Class... args) throws NoSuchMethodException; /** @@ -247,7 +255,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @throws SecurityException if the security check fails * @since 1.1 */ - public Constructor[] getConstructors() + public Constructor[] getConstructors() { memberAccessCheck(Member.PUBLIC); return getDeclaredConstructors(true); @@ -267,7 +275,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @see #getDeclaredConstructors() * @since 1.1 */ - public native Constructor getDeclaredConstructor(Class[] args) + public native Constructor getDeclaredConstructor(Class... args) throws NoSuchMethodException; /** @@ -282,13 +290,13 @@ public final class Class implements Type, GenericDeclaration, Serializable * @throws SecurityException if the security check fails * @since 1.1 */ - public Class[] getDeclaredClasses() + public Class[] getDeclaredClasses() { memberAccessCheck(Member.DECLARED); return getDeclaredClasses(false); } - native Class[] getDeclaredClasses (boolean publicOnly); + native Class[] getDeclaredClasses (boolean publicOnly); /** * Get all the declared constructors of this class. This returns an array of @@ -302,13 +310,13 @@ public final class Class implements Type, GenericDeclaration, Serializable * @throws SecurityException if the security check fails * @since 1.1 */ - public Constructor[] getDeclaredConstructors() + public Constructor[] getDeclaredConstructors() { memberAccessCheck(Member.DECLARED); return getDeclaredConstructors(false); } - native Constructor[] getDeclaredConstructors (boolean publicOnly); + native Constructor[] getDeclaredConstructors (boolean publicOnly); /** * Get a field declared in this class, where name is its simple name. The @@ -369,7 +377,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @see #getDeclaredMethods() * @since 1.1 */ - public Method getDeclaredMethod(String methodName, Class[] args) + public Method getDeclaredMethod(String methodName, Class... args) throws NoSuchMethodException { memberAccessCheck(Member.DECLARED); @@ -409,7 +417,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @since 1.1 */ // This is marked as unimplemented in the JCL book. - public native Class getDeclaringClass (); + public native Class getDeclaringClass (); private native Field getField (String fieldName, int hash) throws NoSuchFieldException; @@ -498,7 +506,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * * @return the interfaces this class directly implements */ - public native Class[] getInterfaces (); + public native Class[] getInterfaces (); private final native void getSignature(StringBuffer buffer); private static final native String getSignature(Class[] args, @@ -528,7 +536,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @see #getMethods() * @since 1.1 */ - public Method getMethod(String methodName, Class[] args) + public Method getMethod(String methodName, Class... args) throws NoSuchMethodException { memberAccessCheck(Member.PUBLIC); @@ -701,7 +709,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * * @return the direct superclass of this class */ - public native Class getSuperclass (); + public native Class getSuperclass (); /** * Return whether this class is an array type. @@ -725,7 +733,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @throws NullPointerException if c is null * @since 1.1 */ - public native boolean isAssignableFrom (Class c); + public native boolean isAssignableFrom (Class c); /** * Discover whether an Object is an instance of this Class. Think of it @@ -783,7 +791,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * @throws ExceptionInInitializerError if class initialization caused by * this call fails with an exception */ - public native Object newInstance () + public native T newInstance () throws InstantiationException, IllegalAccessException; // We need a native method to retrieve the protection domain, because we @@ -930,6 +938,123 @@ public final class Class implements Type, GenericDeclaration, Serializable } } + + /** + *

      + * 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 Class<Object>, and a dynamic type of + * Class<Rectangle>, then, assuming Shape is + * a superclass of Rectangle, this method can be used on + * this class with the parameter, Class<Shape>, to retain + * the same instance but with the type + * Class<? extends Shape>. + *

      + *

      + * If this class can be converted to an instance which is parameterised + * over a subtype of the supplied type, U, then this method + * returns an appropriately cast reference to this object. Otherwise, + * a ClassCastException is thrown. + *

      + * + * @param klass the class object, the parameterized type (U) 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, U. + * @since 1.5 + */ + public Class asSubclass(Class klass) + { + if (! klass.isAssignableFrom(this)) + throw new ClassCastException(); + return (Class) this; + } + + /** + * Returns the specified object, cast to this Class' 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 Enum. + * + * @return an array of Enum constants + * associated with this class, or null if this + * class is not an enum. + * @since 1.5 + */ + public T[] getEnumConstants() + { + if (isEnum()) + { + try + { + return (T[]) getMethod("values").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 Enum. + * + * @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 Annotation. + * + * @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 @@ -945,25 +1070,22 @@ public final class Class implements Type, GenericDeclaration, Serializable */ public String getSimpleName() { - // FIXME write real implementation - return ""; - } - - /** - * 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() - { - // FIXME write real implementation - return new Annotation[0]; + StringBuffer sb = new StringBuffer(); + Class klass = this; + int arrayCount = 0; + while (klass.isArray()) + { + klass = klass.getComponentType(); + ++arrayCount; + } + if (! klass.isAnonymousClass()) + { + String fullName = klass.getName(); + sb.append(fullName, fullName.lastIndexOf(".") + 1, fullName.length()); + } + while (arrayCount-- > 0) + sb.append("[]"); + return sb.toString(); } /** @@ -974,12 +1096,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * a top-level class. * @since 1.5 */ - /* FIXME[GENERICS]: Should return Class */ - public Class getEnclosingClass() - { - // FIXME write real implementation - return null; - } + public native Class getEnclosingClass(); /** * Returns the constructor which immediately encloses this class. If @@ -992,12 +1109,7 @@ public final class Class implements Type, GenericDeclaration, Serializable * is returned. * @since 1.5 */ - /* FIXME[GENERICS]: Should return Constructor */ - public Constructor getEnclosingConstructor() - { - // FIXME write real implementation - return null; - } + public native Constructor getEnclosingConstructor(); /** * Returns the method which immediately encloses this class. If @@ -1010,10 +1122,100 @@ public final class Class implements Type, GenericDeclaration, Serializable * is returned. * @since 1.5 */ - public Method getEnclosingMethod() + public native Method getEnclosingMethod(); + + private native String getClassSignature(); + + /** + *

      + * Returns an array of Type objects which represent the + * interfaces directly implemented by this class or extended by this + * interface. + *

      + *

      + * 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 ParameterizedType + * interface, and only if an instance has not already been created. + *

      + *

      + * 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, Cloneable and + * Serializable, is always returned, with the objects in + * that order. A class representing a primitive type or void always + * returns an array of zero size. + *

      + * + * @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() { - // FIXME write real implementation - return null; + if (isPrimitive()) + return new Type[0]; + + String sig = getClassSignature(); + if (sig == null) + return getInterfaces(); + + ClassSignatureParser p = new ClassSignatureParser(this, sig); + return p.getInterfaceTypes(); + } + + /** + *

      + * Returns a Type 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 Object class is returned. If this class is primitive, + * an interface, or a representation of either the Object + * class or void, then null is returned. + *

      + *

      + * 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 ParameterizedType + * interface, and only if an instance has not already been created. + *

      + * + * @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(); } /** @@ -1022,29 +1224,129 @@ public final class Class implements Type, GenericDeclaration, Serializable * An array of size zero is returned if this class has no type * variables. * - * @return the type variables associated with this class. + * @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 */ - /* FIXME[GENERICS]: Should return TypeVariable> */ - public TypeVariable[] getTypeParameters() + public TypeVariable>[] getTypeParameters() { - // FIXME - provide real implementation. - return new TypeVariable[0]; + String sig = getClassSignature(); + if (sig == null) + return (TypeVariable>[])new TypeVariable[0]; + + ClassSignatureParser p = new ClassSignatureParser(this, sig); + return p.getTypeParameters(); } /** - * Returns true if this class is an Enum. + * Returns this class' annotation for the specified annotation type, + * or null if no such annotation exists. * - * @return true if this is an enumeration class. + * @param annotationClass the type of annotation to look for. + * @return this class' annotation for the specified type, or + * null if no such annotation exists. * @since 1.5 */ - public boolean isEnum() + public A getAnnotation(Class annotationClass) { - // FIXME - provide real implementation. - return false; + 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 map = new HashMap(); + for (Annotation a : getDeclaredAnnotations()) + map.put((Class) a.annotationType(), a); + for (Class 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 v = map.values(); + return v.toArray(new Annotation[v.size()]); + } + + /** + * 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 + 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(); } diff --git a/libjava/java/lang/ClassCastException.h b/libjava/java/lang/ClassCastException.h new file mode 100644 index 00000000000..55c0bcc8871 --- /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 + +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 00000000000..81d6f93adf0 --- /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 + +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 00000000000..ee6664f5610 --- /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 + +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 00000000000..1a395b07bd6 --- /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 +#include + + +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 00000000000..0b82a046786 --- /dev/null +++ b/libjava/java/lang/ClassLoader.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_ClassLoader__ +#define __java_lang_ClassLoader__ + +#pragma interface + +#include +#include + +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 *); + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loadedClasses; + ::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 index bcbfc298bd4..50bd26f36b5 100644 --- a/libjava/java/lang/ClassLoader.java +++ b/libjava/java/lang/ClassLoader.java @@ -39,12 +39,14 @@ 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.net.URL; +import java.nio.ByteBuffer; import java.security.CodeSource; import java.security.PermissionCollection; import java.security.Policy; @@ -53,6 +55,9 @@ 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 @@ -157,6 +162,85 @@ public abstract class ClassLoader 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 + declaredAnnotations + = new ConcurrentHashMap(); + + 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 @@ -487,6 +571,35 @@ public abstract class ClassLoader } /** + * Helper to define a class using the contents of a byte buffer. If + * the domain is null, the default of + * Policy.getPolicy().getPermissions(new CodeSource(null, + * null)) 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. * @@ -530,8 +643,7 @@ public abstract class ClassLoader SecurityManager sm = System.getSecurityManager(); if (sm != null) { - Class c = VMSecurityManager.getClassContext(ClassLoader.class)[0]; - ClassLoader cl = c.getClassLoader(); + ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && ! cl.isAncestorOf(this)) sm.checkPermission(new RuntimePermission("getClassLoader")); } @@ -744,14 +856,15 @@ public abstract class ClassLoader /** * Returns the system classloader. The system classloader (also called - * the application classloader) is the classloader that was used to + * the application classloader) is the classloader that is used to * load the application classes on the classpath (given by the system * property java.class.path. This is set as the context * class loader for a thread. The system property * java.system.class.loader, 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; otherwise this - * uses gnu.java.lang.SystemClassLoader. + * a public constructor which takes a ClassLoader as a parent. The parent + * class loader passed in the constructor is the default system class + * loader. * *

      Note that this is different from the bootstrap classloader that * actually loads all the real "system" classes (the bootstrap classloader @@ -773,8 +886,7 @@ public abstract class ClassLoader SecurityManager sm = System.getSecurityManager(); if (sm != null) { - Class c = VMSecurityManager.getClassContext(ClassLoader.class)[0]; - ClassLoader cl = c.getClassLoader(); + ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && cl != systemClassLoader) sm.checkPermission(new RuntimePermission("getClassLoader")); } @@ -898,7 +1010,7 @@ public abstract class ClassLoader * * @param name the (system specific) name of the requested library * @return the full pathname to the requested library, or null - * @see Runtime#loadLibrary() + * @see Runtime#loadLibrary(String) * @since 1.2 */ protected String findLibrary(String name) @@ -928,7 +1040,7 @@ public abstract class ClassLoader * * @param name the package (and subpackages) to affect * @param enabled true to set the default to enabled - * @see #setDefaultAssertionStatus(String, boolean) + * @see #setDefaultAssertionStatus(boolean) * @see #setClassAssertionStatus(String, boolean) * @see #clearAssertionStatus() * @since 1.4 @@ -949,7 +1061,7 @@ public abstract class ClassLoader * @param name the class to affect * @param enabled true to set the default to enabled * @throws NullPointerException if name is null - * @see #setDefaultAssertionStatus(String, boolean) + * @see #setDefaultAssertionStatus(boolean) * @see #setPackageAssertionStatus(String, boolean) * @see #clearAssertionStatus() * @since 1.4 diff --git a/libjava/java/lang/ClassNotFoundException.h b/libjava/java/lang/ClassNotFoundException.h new file mode 100644 index 00000000000..c0ab7815807 --- /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 + +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 00000000000..19fa2124a8a --- /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 + +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 00000000000..ff5db98d069 --- /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 + +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 00000000000..b594e2ddc09 --- /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 + +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 00000000000..e21d90300d1 --- /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 + +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 00000000000..6ab34f11a0e --- /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 + +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 00000000000..5fb99da4a99 --- /dev/null +++ b/libjava/java/lang/Double.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Double__ +#define __java_lang_Double__ + +#pragma interface + +#include + +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 target$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: + 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 00000000000..30fd067e034 --- /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 +#include + + +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 *); + static ::java::lang::Class class$; +}; + +#endif // __java_lang_EcosProcess__ diff --git a/libjava/java/lang/EcosProcess.java b/libjava/java/lang/EcosProcess.java index aff534a39df..30c8253e67d 100644 --- a/libjava/java/lang/EcosProcess.java +++ b/libjava/java/lang/EcosProcess.java @@ -1,6 +1,6 @@ // EcosProcess.java - Subclass of Process for eCos systems. -/* Copyright (C) 1998, 1999 Free Software Foundation +/* Copyright (C) 1998, 1999, 2006 Free Software Foundation This file is part of libgcj. @@ -22,9 +22,7 @@ import java.io.IOException; // This is entirely internal to our implementation. -// This file is copied to `ConcreteProcess.java' before compilation. -// Hence the class name apparently does not match the file name. -final class ConcreteProcess extends Process +final class EcosProcess extends Process { // See natEcosProcess.cc to understand why this is native. public native void destroy (); @@ -53,7 +51,7 @@ final class ConcreteProcess extends Process return 0; } - public ConcreteProcess (String[] progarray, + public EcosProcess (String[] progarray, String[] envp, File dir) throws IOException diff --git a/libjava/java/lang/Enum.h b/libjava/java/lang/Enum.h new file mode 100644 index 00000000000..cb3aabc94e4 --- /dev/null +++ b/libjava/java/lang/Enum.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Enum__ +#define __java_lang_Enum__ + +#pragma interface + +#include + +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 target$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(); + 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 00000000000..b3bc11b28c4 --- /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 + +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 00000000000..9cb6019b434 --- /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 + +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 00000000000..9f3ab43a5db --- /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 + +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 00000000000..89fbaee7ca0 --- /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 + +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 00000000000..87859cb28c0 --- /dev/null +++ b/libjava/java/lang/Float.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Float__ +#define __java_lang_Float__ + +#pragma interface + +#include + +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 target$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: + 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 00000000000..12b8747c4ef --- /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 + +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 00000000000..c0917475699 --- /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 + +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 00000000000..187e430c165 --- /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 + +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 00000000000..ad9cb590292 --- /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 + +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 00000000000..e79bced810f --- /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 + +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 00000000000..066eb92cd66 --- /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 + +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 00000000000..ca4099194e8 --- /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 + +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 00000000000..4cd4184a712 --- /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 + +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 00000000000..9caf6f3df47 --- /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 + +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 00000000000..4b817d2b316 --- /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 + +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 00000000000..805ab3c70dc --- /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 + +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 00000000000..e33c78f2cc2 --- /dev/null +++ b/libjava/java/lang/Integer.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Integer__ +#define __java_lang_Integer__ + +#pragma interface + +#include +#include + + +class java::lang::Integer : public ::java::lang::Number +{ + +public: + Integer(jint); + Integer(::java::lang::String *); + 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 target$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 00000000000..b0477bbe640 --- /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 + +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 00000000000..c452de6b5e5 --- /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 + +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 00000000000..3bdb2543b3b --- /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 + +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 00000000000..4368d8b9ff8 --- /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 + +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 00000000000..da04281a659 --- /dev/null +++ b/libjava/java/lang/Long.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Long__ +#define __java_lang_Long__ + +#pragma interface + +#include + +class java::lang::Long : public ::java::lang::Number +{ + +public: + Long(jlong); + Long(::java::lang::String *); + 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 target$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: + 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 00000000000..32707e9f8cd --- /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 + +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/NegativeArraySizeException.h b/libjava/java/lang/NegativeArraySizeException.h new file mode 100644 index 00000000000..e05f7c51563 --- /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 + +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 00000000000..90790a7b9e5 --- /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 + +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 00000000000..65f444e8394 --- /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 + +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 00000000000..36fe841ed74 --- /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 + +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 00000000000..5db0a040e22 --- /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 + +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 00000000000..dc905d67f48 --- /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 + +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 00000000000..4af582cf43e --- /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 + +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 00000000000..65ba9201988 --- /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 +#include + + +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 00000000000..34bd4d678c2 --- /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 + +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/OutOfMemoryError.h b/libjava/java/lang/OutOfMemoryError.h new file mode 100644 index 00000000000..7fac1f5a090 --- /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 + +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 00000000000..e6424ee6a00 --- /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 + +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 00000000000..6d12d9f3687 --- /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 +#include + +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/Package.java b/libjava/java/lang/Package.java deleted file mode 100644 index 892380f9aa8..00000000000 --- a/libjava/java/lang/Package.java +++ /dev/null @@ -1,415 +0,0 @@ -/* Package.java -- information about a package - Copyright (C) 2000, 2001, 2002, 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.lang; - -import java.lang.annotation.Annotation; -import java.lang.reflect.AnnotatedElement; -import java.net.URL; -import java.util.NoSuchElementException; -import java.util.StringTokenizer; - - -/** - * Everything you ever wanted to know about a package. This class makes it - * possible to attach specification and implementation information to a - * package as explained in the - * Package Versioning Specification - * section of the - * Product Versioning Specification. - * It also allows packages to be sealed with respect to the originating URL. - * - *

      The most useful method is the isCompatibleWith() method that - * compares a desired version of a specification with the version of the - * specification as implemented by a package. A package is considered - * compatible with another version if the version of the specification is - * equal or higher then the requested version. Version numbers are represented - * as strings of positive numbers separated by dots (e.g. "1.2.0"). - * The first number is called the major number, the second the minor, - * the third the micro, etc. A version is considered higher then another - * version if it has a bigger major number then the another version or when - * the major numbers of the versions are equal if it has a bigger minor number - * then the other version, etc. (If a version has no minor, micro, etc numbers - * then they are considered the be 0.) - * - * @author Mark Wielaard (mark@klomp.org) - * @see ClassLoader#definePackage(String, String, String, String, String, - * String, String, URL) - * @since 1.2 - * @status updated to 1.5 - */ -public class Package - implements AnnotatedElement -{ - /** The name of the Package */ - private final String name; - - /** The name if the implementation */ - private final String implTitle; - - /** The vendor that wrote this implementation */ - private final String implVendor; - - /** The version of this implementation */ - private final String implVersion; - - /** The name of the specification */ - private final String specTitle; - - /** The name of the specification designer */ - private final String specVendor; - - /** The version of this specification */ - private final String specVersion; - - /** If sealed the origin of the package classes, otherwise null */ - private final URL sealed; - - /** The class loader that defined this package */ - private ClassLoader loader; - - /** @deprecated Please use the other constructor that takes the class loader - * that defines the Package. - */ - Package(String name, - String specTitle, String specVendor, String specVersion, - String implTitle, String implVendor, String implVersion, URL sealed) - { - this(name, specTitle, specVendor, specVersion, implTitle, implVendor, - implVersion, sealed, null); - } - - /** - * A package local constructor for the Package class. All parameters except - * the name of the package may be null. - * There are no public constructors defined for Package; this is a package - * local constructor that is used by java.lang.Classloader.definePackage(). - * - * @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 - */ - Package(String name, - String specTitle, String specVendor, String specVersion, - String implTitle, String implVendor, String implVersion, URL sealed, - ClassLoader loader) - { - if (name == null) - throw new IllegalArgumentException("null Package name"); - - this.name = name; - this.implTitle = implTitle; - this.implVendor = implVendor; - this.implVersion = implVersion; - this.specTitle = specTitle; - this.specVendor = specVendor; - this.specVersion = specVersion; - this.sealed = sealed; - this.loader = loader; - } - - /** - * Returns the Package name in dot-notation. - * - * @return the non-null package name - */ - public String getName() - { - return name; - } - - /** - * Returns the name of the specification, or null if unknown. - * - * @return the specification title - */ - public String getSpecificationTitle() - { - return specTitle; - } - - /** - * Returns the version of the specification, or null if unknown. - * - * @return the specification version - */ - public String getSpecificationVersion() - { - return specVersion; - } - - /** - * Returns the name of the specification designer, or null if unknown. - * - * @return the specification vendor - */ - public String getSpecificationVendor() - { - return specVendor; - } - - /** - * Returns the name of the implementation, or null if unknown. - * - * @return the implementation title - */ - public String getImplementationTitle() - { - return implTitle; - } - - /** - * Returns the version of this implementation, or null if unknown. - * - * @return the implementation version - */ - public String getImplementationVersion() - { - return implVersion; - } - - /** - * Returns the vendor that wrote this implementation, or null if unknown. - * - * @return the implementation vendor - */ - public String getImplementationVendor() - { - return implVendor; - } - - /** - * Returns true if this Package is sealed. - * - * @return true if the package is sealed - */ - public boolean isSealed() - { - return sealed != null; - } - - /** - * Returns true if this Package is sealed and the origin of the classes is - * the given URL. - * - * @param url the URL to test - * @return true if the package is sealed by this URL - * @throws NullPointerException if url is null - */ - public boolean isSealed(URL url) - { - return url.equals(sealed); - } - - /** - * Checks if the version of the specification is higher or at least as high - * as the desired version. Comparison is done by sequentially comparing - * dotted decimal numbers from the parameter and from - * getSpecificationVersion. - * - * @param version the (minimal) desired version of the specification - * - * @return true if the version is compatible, false otherwise - * - * @throws NumberFormatException if either version string is invalid - * @throws NullPointerException if either version string is null - */ - public boolean isCompatibleWith(String version) - { - StringTokenizer versionTokens = new StringTokenizer(version, "."); - StringTokenizer specTokens = new StringTokenizer(specVersion, "."); - try - { - while (versionTokens.hasMoreElements()) - { - int vers = Integer.parseInt(versionTokens.nextToken()); - int spec = Integer.parseInt(specTokens.nextToken()); - if (spec < vers) - return false; - else if (spec > vers) - return true; - // They must be equal, next Token please! - } - } - catch (NoSuchElementException e) - { - // This must have been thrown by spec.nextToken() so return false. - return false; - } - // They must have been exactly the same version. - // Or the specVersion has more subversions. That is also good. - return true; - } - - /** - * Returns the named package if it is known by the callers class loader. - * It may return null if the package is unknown, when there is no - * information on that particular package available or when the callers - * classloader is null. - * - * @param name the name of the desired package - * @return the package by that name in the current ClassLoader - */ - public static Package getPackage(String name) - { - // Get the caller's classloader - ClassLoader cl = VMSecurityManager.currentClassLoader(Package.class); - return cl != null ? cl.getPackage(name) : VMClassLoader.getPackage(name); - } - - /** - * Returns all the packages that are known to the callers class loader. - * It may return an empty array if the classloader of the caller is null. - * - * @return an array of all known packages - */ - public static Package[] getPackages() - { - // Get the caller's classloader - Class c = VMSecurityManager.getClassContext(Package.class)[1]; - ClassLoader cl = c.getClassLoader(); - return cl != null ? cl.getPackages() : VMClassLoader.getPackages(); - } - - /** - * Returns the hashCode of the name of this package. - * - * @return the hash code - */ - public int hashCode() - { - return name.hashCode(); - } - - /** - * Returns a string representation of this package. It is specified to - * be "package " + getName() + (getSpecificationTitle() == null - * ? "" : ", " + getSpecificationTitle()) + (getSpecificationVersion() - * == null ? "" : ", version " + getSpecificationVersion()). - * - * @return the string representation of the package - */ - public String toString() - { - return ("package " + name + (specTitle == null ? "" : ", " + specTitle) - + (specVersion == null ? "" : ", version " + specVersion)); - } - - /** - * Returns this package's annotation for the specified annotation type, - * or null if no such annotation exists. - * - * @param annotationClass the type of annotation to look for. - * @return this package's annotation for the specified type, or - * null if no such annotation exists. - * @since 1.5 - */ - /* FIXME[GENERICS]: T getAnnotation(Class ) */ - public Annotation getAnnotation(Class annotationClass) - { - Annotation foundAnnotation = null; - Annotation[] annotations = getAnnotations(); - for (int i = 0; i < annotations.length; i++) - if (annotations[i].annotationType() == annotationClass) - foundAnnotation = annotations[i]; - return foundAnnotation; - } - - /** - * Returns all annotations associated with this package. If there are - * no annotations associated with this package, 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 - * package, and hence no effect on the return value of this method for - * future callers. - * - * @return this package' annotations. - * @since 1.5 - */ - public Annotation[] getAnnotations() - { - /** All a package's annotations are declared within it. */ - return getDeclaredAnnotations(); - } - - /** - * Returns all annotations directly defined by this package. If there are - * no annotations associated with this package, 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 - * package, and hence no effect on the return value of this method for - * future callers. - * - * @return the annotations directly defined by this package. - * @since 1.5 - */ - public Annotation[] getDeclaredAnnotations() - { - try - { - Class pkgInfo = Class.forName(name + ".package-info", false, loader); - return pkgInfo.getDeclaredAnnotations(); - } - catch (ClassNotFoundException _) - { - return new Annotation[0]; - } - } - - /** - * Returns true if an annotation for the specified type is associated - * with this package. 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 - */ - /* FIXME[GENERICS]: Signature is Class */ - public boolean isAnnotationPresent(Class - annotationClass) - { - return getAnnotation(annotationClass) != null; - } - -} // class Package diff --git a/libjava/java/lang/PosixProcess$EOFInputStream.h b/libjava/java/lang/PosixProcess$EOFInputStream.h new file mode 100644 index 00000000000..bda16533a3f --- /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 + +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 00000000000..d8d0d594232 --- /dev/null +++ b/libjava/java/lang/PosixProcess$ProcessManager.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_PosixProcess$ProcessManager__ +#define __java_lang_PosixProcess$ProcessManager__ + +#pragma interface + +#include + +class java::lang::PosixProcess$ProcessManager : public ::java::lang::Thread +{ + +public: // actually package-private + PosixProcess$ProcessManager(); +private: + ::java::lang::PosixProcess * removeProcessFromMap(jlong); +public: // actually package-private + virtual void addProcessToMap(::java::lang::PosixProcess *); + virtual void startExecuting(::java::lang::PosixProcess *); + virtual void waitUntilReady(); +public: + virtual void run(); +private: + void init(); + void waitForSignal(); + jboolean reap(); + void signalReaper(); +public: // actually package-private + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) queue; +private: + ::java::util::Map * pidToProcess; + jboolean ready; + jlong reaperPID; +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 00000000000..62539ceb2ac --- /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 +#include + + +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 *); + static jlong access$0(::java::lang::PosixProcess *); + static ::java::lang::Object * access$1(); + static void access$2(::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; + ::java::lang::Throwable * exception; + jlong pid; +public: // actually package-private + 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 index fbd6c4c8a49..23e1da9d698 100644 --- a/libjava/java/lang/PosixProcess.java +++ b/libjava/java/lang/PosixProcess.java @@ -1,5 +1,5 @@ // PosixProcess.java - Subclass of Process for POSIX systems. -/* Copyright (C) 1998, 1999, 2004 Free Software Foundation +/* Copyright (C) 1998, 1999, 2004, 2006 Free Software Foundation This file is part of libgcj. @@ -25,19 +25,15 @@ import java.util.Map; * @author David Daney Rewrote using * ProcessManager */ - -// This is entirely internal to our implementation. -// This file is copied to `ConcreteProcess.java' before compilation. -// Hence the class name apparently does not match the file name. -final class ConcreteProcess extends Process +final class PosixProcess extends Process { static class ProcessManager extends Thread { /** - * A list of {@link ConcreteProcess ConcreteProcesses} to be + * 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 ConcreteProcess. + * ensure queueLock is obtained before PosixProcess. */ List queue = new LinkedList(); private Map pidToProcess = new HashMap(); @@ -52,37 +48,37 @@ final class ConcreteProcess extends Process } /** - * Get the ConcreteProcess object with the given pid and + * Get the PosixProcess object with the given pid and * remove it from the map. This method is called from the * native code for {@link #reap()). The mapping is removed so - * the ConcreteProcesses can be GCed after they terminate. + * the PosixProcesses can be GCed after they terminate. * * @param p The pid of the process. */ - private ConcreteProcess removeProcessFromMap(long p) + private PosixProcess removeProcessFromMap(long p) { - return (ConcreteProcess) pidToProcess.remove(new Long(p)); + return (PosixProcess) pidToProcess.remove(new Long(p)); } /** - * Put the given ConcreteProcess in the map using the Long + * Put the given PosixProcess in the map using the Long * value of its pid as the key. * - * @param p The ConcreteProcess. + * @param p The PosixProcess. */ - void addProcessToMap(ConcreteProcess p) + void addProcessToMap(PosixProcess p) { pidToProcess.put(new Long(p.pid), p); } /** - * Queue up the ConcreteProcess and awake the ProcessManager. - * The ProcessManager will start the ConcreteProcess from its + * 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 ConcreteProcess. + * @param p The PosixProcess. */ - void startExecuting(ConcreteProcess p) + void startExecuting(PosixProcess p) { synchronized (queueLock) { @@ -154,7 +150,7 @@ final class ConcreteProcess extends Process } while (queue.size() > 0) { - ConcreteProcess p = (ConcreteProcess) queue.remove(0); + PosixProcess p = (PosixProcess) queue.remove(0); p.spawn(this); } } @@ -353,10 +349,7 @@ final class ConcreteProcess extends Process */ private native void nativeSpawn(); - // This file is copied to `ConcreteProcess.java' before - // compilation. Hence the constructor name apparently does not - // match the file name. - ConcreteProcess(String[] progarray, String[] envp, File dir) + PosixProcess(String[] progarray, String[] envp, File dir) throws IOException { // Check to ensure there is something to run, and avoid @@ -378,7 +371,7 @@ final class ConcreteProcess extends Process processManager.waitUntilReady(); } - // Queue this ConcreteProcess for starting by the ProcessManager. + // Queue this PosixProcess for starting by the ProcessManager. processManager.startExecuting(this); } @@ -428,8 +421,8 @@ final class ConcreteProcess extends Process /** The process id. This is cast to a pid_t on the native side. */ private long pid; - // FIXME: Why doesn't the friend declaration in ConcreteProcess.h - // allow ConcreteProcess$ProcessManager native code access these + // 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. */ diff --git a/libjava/java/lang/Process.h b/libjava/java/lang/Process.h new file mode 100644 index 00000000000..f363feb50ef --- /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 + +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 00000000000..fd6029df0e5 --- /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 +#include + + +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/ProcessBuilder.java b/libjava/java/lang/ProcessBuilder.java new file mode 100644 index 00000000000..440e5e0b48d --- /dev/null +++ b/libjava/java/lang/ProcessBuilder.java @@ -0,0 +1,118 @@ +/* ProcessBuilder.java - Represent spawned system process + 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.lang; + +import java.io.File; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public final class ProcessBuilder +{ + private File directory = new File(System.getProperty("user.dir")); + private List command; + // FIXME: make a copy. + private Map environment = System.getenv(); + private boolean redirect = false; + + public ProcessBuilder(List command) + { + this.command = command; + } + + public ProcessBuilder(String... command) + { + this.command = Arrays.asList(command); + } + + public List command() + { + return command; + } + + public ProcessBuilder command(List command) + { + this.command = command; + return this; + } + + public ProcessBuilder command(String... command) + { + this.command = Arrays.asList(command); + return this; + } + + public File directory() + { + return directory; + } + + public ProcessBuilder directory(File directory) + { + this.directory = directory; + return this; + } + + public Map environment() + { + return environment; + } + + public boolean redirectErrorStream() + { + return redirect; + } + + public ProcessBuilder redirectErrorStream(boolean redirect) + { + this.redirect = redirect; + return this; + } + + public Process start() throws IOException + { + SecurityManager sm = SecurityManager.current; // Be thread-safe! + if (sm != null) + sm.checkExec(command.get(0)); + // return VMProcess.exec(command, environment, directory, redirect); + // FIXME + return null; + } +} diff --git a/libjava/java/lang/Readable.h b/libjava/java/lang/Readable.h new file mode 100644 index 00000000000..d8e7d2185c3 --- /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 +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 00000000000..ba5985cbf13 --- /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 + +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 00000000000..4679cc0b146 --- /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 +#include + + +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/RuntimeException.h b/libjava/java/lang/RuntimeException.h new file mode 100644 index 00000000000..0bce089c7e4 --- /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 + +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 00000000000..8b48175454e --- /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 + +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/SecurityContext.h b/libjava/java/lang/SecurityContext.h new file mode 100644 index 00000000000..e7b0e595deb --- /dev/null +++ b/libjava/java/lang/SecurityContext.h @@ -0,0 +1,23 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_SecurityContext__ +#define __java_lang_SecurityContext__ + +#pragma interface + +#include +#include + + +class java::lang::SecurityContext : public ::java::lang::Object +{ + +public: // actually package-private + SecurityContext(JArray< ::java::lang::Class * > *); + JArray< ::java::lang::Class * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) classes; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_lang_SecurityContext__ diff --git a/libjava/java/lang/SecurityException.h b/libjava/java/lang/SecurityException.h new file mode 100644 index 00000000000..3b19ba203e1 --- /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 + +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 00000000000..21df4f767ed --- /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 + +class java::lang::SecurityManager$1 : public ::java::lang::Object +{ + +public: // actually package-private + SecurityManager$1(::java::lang::SecurityManager *, ::java::lang::String *); +public: + ::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 00000000000..28ef484c3ce --- /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 +#include + +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 volatile ::java::lang::SecurityManager * 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/SecurityManager.java b/libjava/java/lang/SecurityManager.java deleted file mode 100644 index c803c5b8554..00000000000 --- a/libjava/java/lang/SecurityManager.java +++ /dev/null @@ -1,1057 +0,0 @@ -/* SecurityManager.java -- security checks for privileged actions - 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; - -import java.awt.AWTPermission; -import java.io.File; -import java.io.FileDescriptor; -import java.io.FilePermission; -import java.lang.reflect.Member; -import java.net.InetAddress; -import java.net.SocketPermission; -import java.security.AccessController; -import java.security.AccessControlContext; -import java.security.AllPermission; -import java.security.Permission; -import java.security.PrivilegedAction; -import java.security.Security; -import java.security.SecurityPermission; -import java.util.PropertyPermission; -import java.util.StringTokenizer; - -/** - * SecurityManager is a class you can extend to create your own Java - * security policy. By default, there is no SecurityManager installed in - * 1.1, which means that all things are permitted to all people. The security - * manager, if set, is consulted before doing anything with potentially - * dangerous results, and throws a SecurityException if the - * action is forbidden. - * - *

      A typical check is as follows, just before the dangerous operation:
      - *

      - * SecurityManager sm = System.getSecurityManager();
      - * if (sm != null)
      - *   sm.checkABC(argument, ...);
      - * 
      - * Note that this is thread-safe, by caching the security manager in a local - * variable rather than risking a NullPointerException if the mangager is - * changed between the check for null and before the permission check. - * - *

      The special method checkPermission is a catchall, and - * the default implementation calls - * AccessController.checkPermission. In fact, all the other - * methods default to calling checkPermission. - * - *

      Sometimes, the security check needs to happen from a different context, - * such as when called from a worker thread. In such cases, use - * getSecurityContext to take a snapshot that can be passed - * to the worker thread:
      - *

      - * Object context = null;
      - * SecurityManager sm = System.getSecurityManager();
      - * if (sm != null)
      - *   context = sm.getSecurityContext(); // defaults to an AccessControlContext
      - * // now, in worker thread
      - * if (sm != null)
      - *   sm.checkPermission(permission, context);
      - * 
      - * - *

      Permissions fall into these categories: File, Socket, Net, Security, - * Runtime, Property, AWT, Reflect, and Serializable. Each of these - * permissions have a property naming convention, that follows a hierarchical - * naming convention, to make it easy to grant or deny several permissions - * at once. Some permissions also take a list of permitted actions, such - * as "read" or "write", to fine-tune control even more. The permission - * java.security.AllPermission grants all permissions. - * - *

      The default methods in this class deny all things to all people. You - * must explicitly grant permission for anything you want to be legal when - * subclassing this class. - * - * @author John Keiser - * @author Eric Blake (ebb9@email.byu.edu) - * @see ClassLoader - * @see SecurityException - * @see #checkTopLevelWindow(Object) - * @see System#getSecurityManager() - * @see System#setSecurityManager(SecurityManager) - * @see AccessController - * @see AccessControlContext - * @see AccessControlException - * @see Permission - * @see BasicPermission - * @see java.io.FilePermission - * @see java.net.SocketPermission - * @see java.util.PropertyPermission - * @see RuntimePermission - * @see java.awt.AWTPermission - * @see Policy - * @see SecurityPermission - * @see ProtectionDomain - * @since 1.0 - * @status still missing 1.4 functionality - */ -public class SecurityManager -{ - /** - * The current security manager. This is located here instead of in - * System, to avoid security problems, as well as bootstrap issues. - * Make sure to access it in a thread-safe manner; it is package visible - * to avoid overhead in java.lang. - */ - static volatile SecurityManager current; - - /** - * Tells whether or not the SecurityManager is currently performing a - * security check. - * @deprecated Use {@link #checkPermission(Permission)} instead. - */ - protected boolean inCheck; - - /** - * Construct a new security manager. There may be a security check, of - * RuntimePermission("createSecurityManager"). - * - * @throws SecurityException if permission is denied - */ - public SecurityManager() - { - SecurityManager sm = System.getSecurityManager(); - if (sm != null) - sm.checkPermission(new RuntimePermission("createSecurityManager")); - } - - /** - * Tells whether or not the SecurityManager is currently performing a - * security check. - * - * @return true if the SecurityManager is in a security check - * @see #inCheck - * @deprecated use {@link #checkPermission(Permission)} instead - */ - public boolean getInCheck() - { - return inCheck; - } - - /** - * Get a list of all the classes currently executing methods on the Java - * stack. getClassContext()[0] is the currently executing method (ie. the - * class that CALLED getClassContext, not SecurityManager). - * - * @return an array of classes on the Java execution stack - */ - protected Class[] getClassContext() - { - return VMSecurityManager.getClassContext(SecurityManager.class); - } - - /** - * Find the ClassLoader of the first non-system class on the execution - * stack. A non-system class is one whose ClassLoader is not equal to - * {@link ClassLoader#getSystemClassLoader()} or its ancestors. This - * will return null in three cases: - * - *

        - *
      • All methods on the stack are from system classes
      • - *
      • All methods on the stack up to the first "privileged" caller, as - * created by {@link AccessController#doPrivileged(PrivilegedAction)}, - * are from system classes
      • - *
      • A check of java.security.AllPermission succeeds.
      • - *
      - * - * @return the most recent non-system ClassLoader on the execution stack - * @deprecated use {@link #checkPermission(Permission)} instead - */ - protected ClassLoader currentClassLoader() - { - return VMSecurityManager.currentClassLoader(SecurityManager.class); - } - - /** - * Find the first non-system class on the execution stack. A non-system - * class is one whose ClassLoader is not equal to - * {@link ClassLoader#getSystemClassLoader()} or its ancestors. This - * will return null in three cases: - * - *
        - *
      • All methods on the stack are from system classes
      • - *
      • All methods on the stack up to the first "privileged" caller, as - * created by {@link AccessController#doPrivileged(PrivilegedAction)}, - * are from system classes
      • - *
      • A check of java.security.AllPermission succeeds.
      • - *
      - * - * @return the most recent non-system Class on the execution stack - * @deprecated use {@link #checkPermission(Permission)} instead - */ - protected Class currentLoadedClass() - { - int i = classLoaderDepth(); - return i >= 0 ? getClassContext()[i] : null; - } - - /** - * Get the depth of a particular class on the execution stack. - * - * @param className the fully-qualified name to search for - * @return the index of the class on the stack, or -1 - * @deprecated use {@link #checkPermission(Permission)} instead - */ - protected int classDepth(String className) - { - Class[] c = getClassContext(); - for (int i = 0; i < c.length; i++) - if (className.equals(c[i].getName())) - return i; - return -1; - } - - /** - * Get the depth on the execution stack of the most recent non-system class. - * A non-system class is one whose ClassLoader is not equal to - * {@link ClassLoader#getSystemClassLoader()} or its ancestors. This - * will return -1 in three cases: - * - *
        - *
      • All methods on the stack are from system classes
      • - *
      • All methods on the stack up to the first "privileged" caller, as - * created by {@link AccessController#doPrivileged(PrivilegedAction)}, - * are from system classes
      • - *
      • A check of java.security.AllPermission succeeds.
      • - *
      - * - * @return the index of the most recent non-system Class on the stack - * @deprecated use {@link #checkPermission(Permission)} instead - */ - protected int classLoaderDepth() - { - try - { - checkPermission(new AllPermission()); - } - catch (SecurityException e) - { - Class[] c = getClassContext(); - for (int i = 0; i < c.length; i++) - if (c[i].getClassLoader() != null) - // XXX Check if c[i] is AccessController, or a system class. - return i; - } - return -1; - } - - /** - * Tell whether the specified class is on the execution stack. - * - * @param className the fully-qualified name of the class to find - * @return whether the specified class is on the execution stack - * @deprecated use {@link #checkPermission(Permission)} instead - */ - protected boolean inClass(String className) - { - return classDepth(className) != -1; - } - - /** - * Tell whether there is a class loaded with an explicit ClassLoader on - * the stack. - * - * @return whether a class with an explicit ClassLoader is on the stack - * @deprecated use {@link #checkPermission(Permission)} instead - */ - protected boolean inClassLoader() - { - return classLoaderDepth() != -1; - } - - /** - * Get an implementation-dependent Object that contains enough information - * about the current environment to be able to perform standard security - * checks later. This is used by trusted methods that need to verify that - * their callers have sufficient access to perform certain operations. - * - *

      Currently the only methods that use this are checkRead() and - * checkConnect(). The default implementation returns an - * AccessControlContext. - * - * @return a security context - * @see #checkConnect(String, int, Object) - * @see #checkRead(String, Object) - * @see AccessControlContext - * @see AccessController#getContext() - */ - public Object getSecurityContext() - { - return AccessController.getContext(); - } - - /** - * Check if the current thread is allowed to perform an operation that - * requires the specified Permission. This defaults to - * AccessController.checkPermission. - * - * @param perm the Permission required - * @throws SecurityException if permission is denied - * @throws NullPointerException if perm is null - * @since 1.2 - */ - public void checkPermission(Permission perm) - { - AccessController.checkPermission(perm); - } - - /** - * Check if the current thread is allowed to perform an operation that - * requires the specified Permission. This is done in a - * context previously returned by getSecurityContext(). The - * default implementation expects context to be an AccessControlContext, - * and it calls AccessControlContext.checkPermission(perm). - * - * @param perm the Permission required - * @param context a security context - * @throws SecurityException if permission is denied, or if context is - * not an AccessControlContext - * @throws NullPointerException if perm is null - * @see #getSecurityContext() - * @see AccessControlContext#checkPermission(Permission) - * @since 1.2 - */ - public void checkPermission(Permission perm, Object context) - { - if (! (context instanceof AccessControlContext)) - throw new SecurityException("Missing context"); - ((AccessControlContext) context).checkPermission(perm); - } - - /** - * Check if the current thread is allowed to create a ClassLoader. This - * method is called from ClassLoader.ClassLoader(), and checks - * RuntimePermission("createClassLoader"). If you override - * this, you should call super.checkCreateClassLoader() rather - * than throwing an exception. - * - * @throws SecurityException if permission is denied - * @see ClassLoader#ClassLoader() - */ - public void checkCreateClassLoader() - { - checkPermission(new RuntimePermission("createClassLoader")); - } - - /** - * Check if the current thread is allowed to modify another Thread. This is - * called by Thread.stop(), suspend(), resume(), interrupt(), destroy(), - * setPriority(), setName(), and setDaemon(). The default implementation - * checks RuntimePermission("modifyThread") on system threads - * (ie. threads in ThreadGroup with a null parent), and returns silently on - * other threads. - * - *

      If you override this, you must do two things. First, call - * super.checkAccess(t), to make sure you are not relaxing - * requirements. Second, if the calling thread has - * RuntimePermission("modifyThread"), return silently, so that - * core classes (the Classpath library!) can modify any thread. - * - * @param thread the other Thread to check - * @throws SecurityException if permission is denied - * @throws NullPointerException if thread is null - * @see Thread#stop() - * @see Thread#suspend() - * @see Thread#resume() - * @see Thread#setPriority(int) - * @see Thread#setName(String) - * @see Thread#setDaemon(boolean) - */ - public void checkAccess(Thread thread) - { - if (thread.getThreadGroup() != null - && thread.getThreadGroup().getParent() == null) - checkPermission(new RuntimePermission("modifyThread")); - } - - /** - * Check if the current thread is allowed to modify a ThreadGroup. This is - * called by Thread.Thread() (to add a thread to the ThreadGroup), - * ThreadGroup.ThreadGroup() (to add this ThreadGroup to a parent), - * ThreadGroup.stop(), suspend(), resume(), interrupt(), destroy(), - * setDaemon(), and setMaxPriority(). The default implementation - * checks RuntimePermission("modifyThread") on the system group - * (ie. the one with a null parent), and returns silently on other groups. - * - *

      If you override this, you must do two things. First, call - * super.checkAccess(t), to make sure you are not relaxing - * requirements. Second, if the calling thread has - * RuntimePermission("modifyThreadGroup"), return silently, - * so that core classes (the Classpath library!) can modify any thread. - * - * @param g the ThreadGroup to check - * @throws SecurityException if permission is denied - * @throws NullPointerException if g is null - * @see Thread#Thread() - * @see ThreadGroup#ThreadGroup(String) - * @see ThreadGroup#stop() - * @see ThreadGroup#suspend() - * @see ThreadGroup#resume() - * @see ThreadGroup#interrupt() - * @see ThreadGroup#setDaemon(boolean) - * @see ThreadGroup#setMaxPriority(int) - */ - public void checkAccess(ThreadGroup g) - { - if (g.getParent() == null) - checkPermission(new RuntimePermission("modifyThreadGroup")); - } - - /** - * Check if the current thread is allowed to exit the JVM with the given - * status. This method is called from Runtime.exit() and Runtime.halt(). - * The default implementation checks - * RuntimePermission("exitVM"). If you override this, call - * super.checkExit rather than throwing an exception. - * - * @param status the status to exit with - * @throws SecurityException if permission is denied - * @see Runtime#exit(int) - * @see Runtime#halt(int) - */ - public void checkExit(int status) - { - checkPermission(new RuntimePermission("exitVM")); - } - - /** - * Check if the current thread is allowed to execute the given program. This - * method is called from Runtime.exec(). If the name is an absolute path, - * the default implementation checks - * FilePermission(program, "execute"), otherwise it checks - * FilePermission("<<ALL FILES>>", "execute"). If - * you override this, call super.checkExec rather than - * throwing an exception. - * - * @param program the name of the program to exec - * @throws SecurityException if permission is denied - * @throws NullPointerException if program is null - * @see Runtime#exec(String[], String[], File) - */ - public void checkExec(String program) - { - if (! program.equals(new File(program).getAbsolutePath())) - program = "<>"; - checkPermission(new FilePermission(program, "execute")); - } - - /** - * Check if the current thread is allowed to link in the given native - * library. This method is called from Runtime.load() (and hence, by - * loadLibrary() as well). The default implementation checks - * RuntimePermission("loadLibrary." + filename). If you - * override this, call super.checkLink rather than throwing - * an exception. - * - * @param filename the full name of the library to load - * @throws SecurityException if permission is denied - * @throws NullPointerException if filename is null - * @see Runtime#load(String) - */ - public void checkLink(String filename) - { - // Use the toString() hack to do the null check. - checkPermission(new RuntimePermission("loadLibrary." - + filename.toString())); - } - - /** - * Check if the current thread is allowed to read the given file using the - * FileDescriptor. This method is called from - * FileInputStream.FileInputStream(). The default implementation checks - * RuntimePermission("readFileDescriptor"). If you override - * this, call super.checkRead rather than throwing an - * exception. - * - * @param desc the FileDescriptor representing the file to access - * @throws SecurityException if permission is denied - * @throws NullPointerException if desc is null - * @see FileInputStream#FileInputStream(FileDescriptor) - */ - public void checkRead(FileDescriptor desc) - { - if (desc == null) - throw new NullPointerException(); - checkPermission(new RuntimePermission("readFileDescriptor")); - } - - /** - * Check if the current thread is allowed to read the given file. This - * method is called from FileInputStream.FileInputStream(), - * RandomAccessFile.RandomAccessFile(), File.exists(), canRead(), isFile(), - * isDirectory(), lastModified(), length() and list(). The default - * implementation checks FilePermission(filename, "read"). If - * you override this, call super.checkRead rather than - * throwing an exception. - * - * @param filename the full name of the file to access - * @throws SecurityException if permission is denied - * @throws NullPointerException if filename is null - * @see File - * @see FileInputStream#FileInputStream(String) - * @see RandomAccessFile#RandomAccessFile(String, String) - */ - public void checkRead(String filename) - { - checkPermission(new FilePermission(filename, "read")); - } - - /** - * Check if the current thread is allowed to read the given file. using the - * given security context. The context must be a result of a previous call - * to getSecurityContext(). The default implementation checks - * AccessControlContext.checkPermission(new FilePermission(filename, - * "read")). If you override this, call super.checkRead - * rather than throwing an exception. - * - * @param filename the full name of the file to access - * @param context the context to determine access for - * @throws SecurityException if permission is denied, or if context is - * not an AccessControlContext - * @throws NullPointerException if filename is null - * @see #getSecurityContext() - * @see AccessControlContext#checkPermission(Permission) - */ - public void checkRead(String filename, Object context) - { - if (! (context instanceof AccessControlContext)) - throw new SecurityException("Missing context"); - AccessControlContext ac = (AccessControlContext) context; - ac.checkPermission(new FilePermission(filename, "read")); - } - - /** - * Check if the current thread is allowed to write the given file using the - * FileDescriptor. This method is called from - * FileOutputStream.FileOutputStream(). The default implementation checks - * RuntimePermission("writeFileDescriptor"). If you override - * this, call super.checkWrite rather than throwing an - * exception. - * - * @param desc the FileDescriptor representing the file to access - * @throws SecurityException if permission is denied - * @throws NullPointerException if desc is null - * @see FileOutputStream#FileOutputStream(FileDescriptor) - */ - public void checkWrite(FileDescriptor desc) - { - if (desc == null) - throw new NullPointerException(); - checkPermission(new RuntimePermission("writeFileDescriptor")); - } - - /** - * Check if the current thread is allowed to write the given file. This - * method is called from FileOutputStream.FileOutputStream(), - * RandomAccessFile.RandomAccessFile(), File.canWrite(), mkdir(), and - * renameTo(). The default implementation checks - * FilePermission(filename, "write"). If you override this, - * call super.checkWrite rather than throwing an exception. - * - * @param filename the full name of the file to access - * @throws SecurityException if permission is denied - * @throws NullPointerException if filename is null - * @see File - * @see File#canWrite() - * @see File#mkdir() - * @see File#renameTo(File) - * @see FileOutputStream#FileOutputStream(String) - * @see RandomAccessFile#RandomAccessFile(String, String) - */ - public void checkWrite(String filename) - { - checkPermission(new FilePermission(filename, "write")); - } - - /** - * Check if the current thread is allowed to delete the given file. This - * method is called from File.delete(). The default implementation checks - * FilePermission(filename, "delete"). If you override this, - * call super.checkDelete rather than throwing an exception. - * - * @param filename the full name of the file to delete - * @throws SecurityException if permission is denied - * @throws NullPointerException if filename is null - * @see File#delete() - */ - public void checkDelete(String filename) - { - checkPermission(new FilePermission(filename, "delete")); - } - - /** - * Check if the current thread is allowed to connect to a given host on a - * given port. This method is called from Socket.Socket(). A port number - * of -1 indicates the caller is attempting to determine an IP address, so - * the default implementation checks - * SocketPermission(host, "resolve"). Otherwise, the default - * implementation checks - * SocketPermission(host + ":" + port, "connect"). If you - * override this, call super.checkConnect rather than throwing - * an exception. - * - * @param host the host to connect to - * @param port the port to connect on - * @throws SecurityException if permission is denied - * @throws NullPointerException if host is null - * @see Socket#Socket() - */ - public void checkConnect(String host, int port) - { - if (port == -1) - checkPermission(new SocketPermission(host, "resolve")); - else - // Use the toString() hack to do the null check. - checkPermission(new SocketPermission(host.toString() + ":" + port, - "connect")); - } - - /** - * Check if the current thread is allowed to connect to a given host on a - * given port, using the given security context. The context must be a - * result of a previous call to getSecurityContext. A port - * number of -1 indicates the caller is attempting to determine an IP - * address, so the default implementation checks - * AccessControlContext.checkPermission(new SocketPermission(host, - * "resolve")). Otherwise, the default implementation checks - * AccessControlContext.checkPermission(new SocketPermission(host - * + ":" + port, "connect")). If you override this, call - * super.checkConnect rather than throwing an exception. - * - * @param host the host to connect to - * @param port the port to connect on - * @param context the context to determine access for - * - * @throws SecurityException if permission is denied, or if context is - * not an AccessControlContext - * @throws NullPointerException if host is null - * - * @see #getSecurityContext() - * @see AccessControlContext#checkPermission(Permission) - */ - public void checkConnect(String host, int port, Object context) - { - if (! (context instanceof AccessControlContext)) - throw new SecurityException("Missing context"); - AccessControlContext ac = (AccessControlContext) context; - if (port == -1) - ac.checkPermission(new SocketPermission(host, "resolve")); - else - // Use the toString() hack to do the null check. - ac.checkPermission(new SocketPermission(host.toString() + ":" + port, - "connect")); - } - - /** - * Check if the current thread is allowed to listen to a specific port for - * data. This method is called by ServerSocket.ServerSocket(). The default - * implementation checks - * SocketPermission("localhost:" + (port == 0 ? "1024-" : "" + port), - * "listen"). If you override this, call - * super.checkListen rather than throwing an exception. - * - * @param port the port to listen on - * @throws SecurityException if permission is denied - * @see ServerSocket#ServerSocket(int) - */ - public void checkListen(int port) - { - checkPermission(new SocketPermission("localhost:" - + (port == 0 ? "1024-" : "" +port), - "listen")); - } - - /** - * Check if the current thread is allowed to accept a connection from a - * particular host on a particular port. This method is called by - * ServerSocket.implAccept(). The default implementation checks - * SocketPermission(host + ":" + port, "accept"). If you - * override this, call super.checkAccept rather than throwing - * an exception. - * - * @param host the host which wishes to connect - * @param port the port the connection will be on - * @throws SecurityException if permission is denied - * @throws NullPointerException if host is null - * @see ServerSocket#accept() - */ - public void checkAccept(String host, int port) - { - // Use the toString() hack to do the null check. - checkPermission(new SocketPermission(host.toString() + ":" + port, - "accept")); - } - - /** - * Check if the current thread is allowed to read and write multicast to - * a particular address. The default implementation checks - * SocketPermission(addr.getHostAddress(), "accept,connect"). - * If you override this, call super.checkMulticast rather than - * throwing an exception. - * - * @param addr the address to multicast to - * @throws SecurityException if permission is denied - * @throws NullPointerException if host is null - * @since 1.1 - */ - public void checkMulticast(InetAddress addr) - { - checkPermission(new SocketPermission(addr.getHostAddress(), - "accept,connect")); - } - - /** - *Check if the current thread is allowed to read and write multicast to - * a particular address with a particular ttl (time-to-live) value. The - * default implementation ignores ttl, and checks - * SocketPermission(addr.getHostAddress(), "accept,connect"). - * If you override this, call super.checkMulticast rather than - * throwing an exception. - * - * @param addr the address to multicast to - * @param ttl value in use for multicast send - * @throws SecurityException if permission is denied - * @throws NullPointerException if host is null - * @since 1.1 - * @deprecated use {@link #checkPermission(Permission)} instead - */ - public void checkMulticast(InetAddress addr, byte ttl) - { - checkPermission(new SocketPermission(addr.getHostAddress(), - "accept,connect")); - } - - /** - * Check if the current thread is allowed to read or write all the system - * properties at once. This method is called by System.getProperties() - * and setProperties(). The default implementation checks - * PropertyPermission("*", "read,write"). If you override - * this, call super.checkPropertiesAccess rather than - * throwing an exception. - * - * @throws SecurityException if permission is denied - * @see System#getProperties() - * @see System#setProperties(Properties) - */ - public void checkPropertiesAccess() - { - checkPermission(new PropertyPermission("*", "read,write")); - } - - /** - * Check if the current thread is allowed to read a particular system - * property (writes are checked directly via checkPermission). This method - * is called by System.getProperty() and setProperty(). The default - * implementation checks PropertyPermission(key, "read"). If - * you override this, call super.checkPropertyAccess rather - * than throwing an exception. - * - * @param key the key of the property to check - * - * @throws SecurityException if permission is denied - * @throws NullPointerException if key is null - * @throws IllegalArgumentException if key is "" - * - * @see System#getProperty(String) - */ - public void checkPropertyAccess(String key) - { - checkPermission(new PropertyPermission(key, "read")); - } - - /** - * Check if the current thread is allowed to create a top-level window. If - * it is not, the operation should still go through, but some sort of - * nonremovable warning should be placed on the window to show that it - * is untrusted. This method is called by Window.Window(). The default - * implementation checks - * AWTPermission("showWindowWithoutWarningBanner"), and returns - * true if no exception was thrown. If you override this, use - * return super.checkTopLevelWindow rather than returning - * false. - * - * @param window the window to create - * @return true if there is permission to show the window without warning - * @throws NullPointerException if window is null - * @see java.awt.Window#Window(java.awt.Frame) - */ - public boolean checkTopLevelWindow(Object window) - { - if (window == null) - throw new NullPointerException(); - try - { - checkPermission(new AWTPermission("showWindowWithoutWarningBanner")); - return true; - } - catch (SecurityException e) - { - return false; - } - } - - /** - * Check if the current thread is allowed to create a print job. This - * method is called by Toolkit.getPrintJob(). The default implementation - * checks RuntimePermission("queuePrintJob"). If you override - * this, call super.checkPrintJobAccess rather than throwing - * an exception. - * - * @throws SecurityException if permission is denied - * @see java.awt.Toolkit#getPrintJob(java.awt.Frame, String, Properties) - * @since 1.1 - */ - public void checkPrintJobAccess() - { - checkPermission(new RuntimePermission("queuePrintJob")); - } - - /** - * Check if the current thread is allowed to use the system clipboard. This - * method is called by Toolkit.getSystemClipboard(). The default - * implementation checks AWTPermission("accessClipboard"). If - * you override this, call super.checkSystemClipboardAccess - * rather than throwing an exception. - * - * @throws SecurityException if permission is denied - * @see java.awt.Toolkit#getSystemClipboard() - * @since 1.1 - */ - public void checkSystemClipboardAccess() - { - checkPermission(new AWTPermission("accessClipboard")); - } - - /** - * Check if the current thread is allowed to use the AWT event queue. This - * method is called by Toolkit.getSystemEventQueue(). The default - * implementation checks AWTPermission("accessEventQueue"). - * you override this, call super.checkAwtEventQueueAccess - * rather than throwing an exception. - * - * @throws SecurityException if permission is denied - * @see java.awt.Toolkit#getSystemEventQueue() - * @since 1.1 - */ - public void checkAwtEventQueueAccess() - { - checkPermission(new AWTPermission("accessEventQueue")); - } - - /** - * Check if the current thread is allowed to access the specified package - * at all. This method is called by ClassLoader.loadClass() in user-created - * ClassLoaders. The default implementation gets a list of all restricted - * packages, via Security.getProperty("package.access"). Then, - * if packageName starts with or equals any restricted package, it checks - * RuntimePermission("accessClassInPackage." + packageName). - * If you override this, you should call - * super.checkPackageAccess before doing anything else. - * - * @param packageName the package name to check access to - * @throws SecurityException if permission is denied - * @throws NullPointerException if packageName is null - * @see ClassLoader#loadClass(String, boolean) - * @see Security#getProperty(String) - */ - public void checkPackageAccess(String packageName) - { - checkPackageList(packageName, "package.access", "accessClassInPackage."); - } - - /** - * Check if the current thread is allowed to define a class into the - * specified package. This method is called by ClassLoader.loadClass() in - * user-created ClassLoaders. The default implementation gets a list of all - * restricted packages, via - * Security.getProperty("package.definition"). Then, if - * packageName starts with or equals any restricted package, it checks - * RuntimePermission("defineClassInPackage." + packageName). - * If you override this, you should call - * super.checkPackageDefinition before doing anything else. - * - * @param packageName the package name to check access to - * @throws SecurityException if permission is denied - * @throws NullPointerException if packageName is null - * @see ClassLoader#loadClass(String, boolean) - * @see Security#getProperty(String) - */ - public void checkPackageDefinition(String packageName) - { - checkPackageList(packageName, "package.definition", "defineClassInPackage."); - } - - /** - * Check if the current thread is allowed to set the current socket factory. - * This method is called by Socket.setSocketImplFactory(), - * ServerSocket.setSocketFactory(), and URL.setURLStreamHandlerFactory(). - * The default implementation checks - * RuntimePermission("setFactory"). If you override this, call - * super.checkSetFactory rather than throwing an exception. - * - * @throws SecurityException if permission is denied - * @see Socket#setSocketImplFactory(SocketImplFactory) - * @see ServerSocket#setSocketFactory(SocketImplFactory) - * @see URL#setURLStreamHandlerFactory(URLStreamHandlerFactory) - */ - public void checkSetFactory() - { - checkPermission(new RuntimePermission("setFactory")); - } - - /** - * Check if the current thread is allowed to get certain types of Methods, - * Fields and Constructors from a Class object. This method is called by - * Class.getMethod[s](), Class.getField[s](), Class.getConstructor[s], - * Class.getDeclaredMethod[s](), Class.getDeclaredField[s](), and - * Class.getDeclaredConstructor[s](). The default implementation allows - * PUBLIC access, and access to classes defined by the same classloader as - * the code performing the reflection. Otherwise, it checks - * RuntimePermission("accessDeclaredMembers"). If you override - * this, do not call super.checkMemberAccess, as this would - * mess up the stack depth check that determines the ClassLoader requesting - * the access. - * - * @param c the Class to check - * @param memberType either DECLARED or PUBLIC - * @throws SecurityException if permission is denied, including when - * memberType is not DECLARED or PUBLIC - * @throws NullPointerException if c is null - * @see Class - * @see Member#DECLARED - * @see Member#PUBLIC - * @since 1.1 - */ - public void checkMemberAccess(Class c, int memberType) - { - if (c == null) - throw new NullPointerException(); - if (memberType == Member.PUBLIC) - return; - // XXX Allow access to classes created by same classloader before next - // check. - checkPermission(new RuntimePermission("accessDeclaredMembers")); - } - - /** - * Test whether a particular security action may be taken. The default - * implementation checks SecurityPermission(action). If you - * override this, call super.checkSecurityAccess rather than - * throwing an exception. - * - * @param action the desired action to take - * @throws SecurityException if permission is denied - * @throws NullPointerException if action is null - * @throws IllegalArgumentException if action is "" - * @since 1.1 - */ - public void checkSecurityAccess(String action) - { - checkPermission(new SecurityPermission(action)); - } - - /** - * Get the ThreadGroup that a new Thread should belong to by default. Called - * by Thread.Thread(). The default implementation returns the current - * ThreadGroup of the current Thread. Spec Note: it is not - * clear whether the new Thread is guaranteed to pass the - * checkAccessThreadGroup() test when using this ThreadGroup, but I presume - * so. - * - * @return the ThreadGroup to put the new Thread into - * @since 1.1 - */ - public ThreadGroup getThreadGroup() - { - return Thread.currentThread().getThreadGroup(); - } - - /** - * Helper that checks a comma-separated list of restricted packages, from - * Security.getProperty("package.definition"), for the given - * package access permission. If packageName starts with or equals any - * restricted package, it checks - * RuntimePermission(permission + packageName). - * - * @param packageName the package name to check access to - * @param restriction "package.access" or "package.definition" - * @param permission the base permission, including the '.' - * @throws SecurityException if permission is denied - * @throws NullPointerException if packageName is null - * @see #checkPackageAccess(String) - * @see #checkPackageDefinition(String) - */ - void checkPackageList(String packageName, final String restriction, - String permission) - { - if (packageName == null) - throw new NullPointerException(); - - String list = (String)AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - return Security.getProperty(restriction); - } - }); - - if (list == null || list.equals("")) - return; - - String packageNamePlusDot = packageName + "."; - - StringTokenizer st = new StringTokenizer(list, ","); - while (st.hasMoreTokens()) - { - if (packageNamePlusDot.startsWith(st.nextToken())) - { - Permission p = new RuntimePermission(permission + packageName); - checkPermission(p); - return; - } - } - } -} diff --git a/libjava/java/lang/Short.h b/libjava/java/lang/Short.h new file mode 100644 index 00000000000..42671174cfc --- /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 +#include + + +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 target$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 00000000000..6d1e06f6594 --- /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 + +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 00000000000..7adf3dc31f5 --- /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 + +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 00000000000..d37d5d66848 --- /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 +#include + + +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 00000000000..11c0ea557b7 --- /dev/null +++ b/libjava/java/lang/String$CaseInsensitiveComparator.h @@ -0,0 +1,24 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_String$CaseInsensitiveComparator__ +#define __java_lang_String$CaseInsensitiveComparator__ + +#pragma interface + +#include + +class java::lang::String$CaseInsensitiveComparator : public ::java::lang::Object +{ + +public: // actually package-private + String$CaseInsensitiveComparator(); +public: + 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 00000000000..44be2741c30 --- /dev/null +++ b/libjava/java/lang/String.h @@ -0,0 +1,138 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_String__ +#define __java_lang_String__ + +#pragma interface + +#include +#include + +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 compareTo(::java::lang::String *); + jint compareTo(::java::lang::Object *); + 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); + ::java::lang::String * intern(); + jint codePointCount(jint, jint); + jboolean contains(::java::lang::CharSequence *); + ::java::lang::String * replace(::java::lang::CharSequence *, ::java::lang::CharSequence *); +private: + 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 *); + 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/StringBuffer.h b/libjava/java/lang/StringBuffer.h new file mode 100644 index 00000000000..93951f471f6 --- /dev/null +++ b/libjava/java/lang/StringBuffer.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_StringBuffer__ +#define __java_lang_StringBuffer__ + +#pragma interface + +#include +#include + + +class java::lang::StringBuffer : public ::java::lang::Object +{ + +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 * append(::java::lang::Object *); + ::java::lang::StringBuffer * append(::java::lang::String *); + ::java::lang::StringBuffer * append(::java::lang::StringBuffer *); + ::java::lang::StringBuffer * append(::java::lang::CharSequence *); + ::java::lang::StringBuffer * append(::java::lang::CharSequence *, jint, jint); + ::java::lang::StringBuffer * append(JArray< jchar > *); + ::java::lang::StringBuffer * append(JArray< jchar > *, jint, jint); + ::java::lang::StringBuffer * append(jboolean); + ::java::lang::StringBuffer * append(jchar); + ::java::lang::StringBuffer * appendCodePoint(jint); + ::java::lang::StringBuffer * append(jint); + ::java::lang::StringBuffer * append(jlong); + ::java::lang::StringBuffer * append(jfloat); + ::java::lang::StringBuffer * append(jdouble); + ::java::lang::StringBuffer * delete$(jint, jint); + ::java::lang::StringBuffer * deleteCharAt(jint); + ::java::lang::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 * insert(jint, JArray< jchar > *, jint, jint); + ::java::lang::StringBuffer * insert(jint, ::java::lang::Object *); + ::java::lang::StringBuffer * insert(jint, ::java::lang::String *); + ::java::lang::StringBuffer * insert(jint, ::java::lang::CharSequence *); + ::java::lang::StringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint); + ::java::lang::StringBuffer * insert(jint, JArray< jchar > *); + ::java::lang::StringBuffer * insert(jint, jboolean); + ::java::lang::StringBuffer * insert(jint, jchar); + ::java::lang::StringBuffer * insert(jint, jint); + ::java::lang::StringBuffer * insert(jint, jlong); + ::java::lang::StringBuffer * insert(jint, jfloat); + ::java::lang::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 * reverse(); + ::java::lang::String * toString(); + void trimToSize(); + jint codePointCount(jint, jint); + jint offsetByCodePoints(jint, jint); +private: + void ensureCapacity_unsynchronized(jint); + jboolean regionMatches(jint, ::java::lang::String *); + static const jlong serialVersionUID = 3388685877147921107LL; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count; + JArray< jchar > * value; + jboolean shared; +private: + static const jint DEFAULT_CAPACITY = 16; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_lang_StringBuffer__ diff --git a/libjava/java/lang/StringBuilder.h b/libjava/java/lang/StringBuilder.h new file mode 100644 index 00000000000..d4912bf0cb4 --- /dev/null +++ b/libjava/java/lang/StringBuilder.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_StringBuilder__ +#define __java_lang_StringBuilder__ + +#pragma interface + +#include +#include + + +class java::lang::StringBuilder : public ::java::lang::Object +{ + +public: + StringBuilder(); + StringBuilder(jint); + StringBuilder(::java::lang::String *); + StringBuilder(::java::lang::CharSequence *); + jint length(); + jint capacity(); + void ensureCapacity(jint); + void setLength(jint); + jchar charAt(jint); + void getChars(jint, jint, JArray< jchar > *, jint); + void setCharAt(jint, jchar); + ::java::lang::StringBuilder * append(::java::lang::Object *); + ::java::lang::StringBuilder * append(::java::lang::String *); + ::java::lang::StringBuilder * append(::java::lang::StringBuffer *); + ::java::lang::StringBuilder * append(JArray< jchar > *); + ::java::lang::StringBuilder * append(JArray< jchar > *, jint, jint); + ::java::lang::StringBuilder * append(jboolean); + ::java::lang::StringBuilder * target$append(jchar); + ::java::lang::StringBuilder * target$append(::java::lang::CharSequence *); + ::java::lang::StringBuilder * target$append(::java::lang::CharSequence *, jint, jint); + ::java::lang::StringBuilder * appendCodePoint(jint); + ::java::lang::StringBuilder * append(jint); + ::java::lang::StringBuilder * append(jlong); + ::java::lang::StringBuilder * append(jfloat); + ::java::lang::StringBuilder * append(jdouble); + ::java::lang::StringBuilder * delete$(jint, jint); + ::java::lang::StringBuilder * deleteCharAt(jint); + ::java::lang::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 * insert(jint, JArray< jchar > *, jint, jint); + ::java::lang::StringBuilder * insert(jint, ::java::lang::Object *); + ::java::lang::StringBuilder * insert(jint, ::java::lang::String *); + ::java::lang::StringBuilder * insert(jint, ::java::lang::CharSequence *); + ::java::lang::StringBuilder * insert(jint, ::java::lang::CharSequence *, jint, jint); + ::java::lang::StringBuilder * insert(jint, JArray< jchar > *); + ::java::lang::StringBuilder * insert(jint, jboolean); + ::java::lang::StringBuilder * insert(jint, jchar); + ::java::lang::StringBuilder * insert(jint, jint); + ::java::lang::StringBuilder * insert(jint, jlong); + ::java::lang::StringBuilder * insert(jint, jfloat); + ::java::lang::StringBuilder * 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::StringBuilder * reverse(); + ::java::lang::String * toString(); +private: + jboolean regionMatches(jint, ::java::lang::String *); +public: + ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint); + ::java::lang::Appendable * append(::java::lang::CharSequence *); + ::java::lang::Appendable * append(jchar); +private: + static const jlong serialVersionUID = 4383685877147921099LL; +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_StringBuilder__ diff --git a/libjava/java/lang/StringBuilder.java b/libjava/java/lang/StringBuilder.java index 5990a6d8dd5..5f33b2ed53a 100644 --- a/libjava/java/lang/StringBuilder.java +++ b/libjava/java/lang/StringBuilder.java @@ -74,9 +74,8 @@ import java.io.Serializable; * * @since 1.5 */ -// FIX15: Implement Appendable when co-variant methods are available public final class StringBuilder - implements Serializable, CharSequence + implements Serializable, CharSequence, Appendable { // Implementation note: if you change this class, you usually will // want to change StringBuffer as well. diff --git a/libjava/java/lang/StringIndexOutOfBoundsException.h b/libjava/java/lang/StringIndexOutOfBoundsException.h new file mode 100644 index 00000000000..e3669a0d366 --- /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 + +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 00000000000..3f28104d9ad --- /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 +#include + + +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 00000000000..8392e1782ba --- /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 + +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 00000000000..ee4582b43fb --- /dev/null +++ b/libjava/java/lang/System$EnvironmentMap.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_System$EnvironmentMap__ +#define __java_lang_System$EnvironmentMap__ + +#pragma interface + +#include + +class java::lang::System$EnvironmentMap : public ::java::util::HashMap +{ + +public: // actually package-private + System$EnvironmentMap(); +public: + virtual jboolean containsKey(::java::lang::Object *); + virtual jboolean containsValue(::java::lang::Object *); + virtual ::java::util::Set * entrySet(); + virtual ::java::lang::String * target$get(::java::lang::Object *); + virtual ::java::util::Set * keySet(); + virtual ::java::lang::String * target$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 *); +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 00000000000..9a1e1a65dee --- /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 + +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 00000000000..5a759678328 --- /dev/null +++ b/libjava/java/lang/System.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_System__ +#define __java_lang_System__ + +#pragma interface + +#include + +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::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 index 6b125c90a2a..587e637e974 100644 --- a/libjava/java/lang/System.java +++ b/libjava/java/lang/System.java @@ -48,6 +48,15 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.PrintStream; +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; @@ -103,6 +112,11 @@ public final class System = new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.err)), true); /** + * A cached copy of the environment variable map. + */ + private static Map environmentMap; + + /** * This class is uninstantiable. */ private System() @@ -394,6 +408,29 @@ public final class System } /** + * Remove a single system property by name. A security check may be + * performed, checkPropertyAccess(key, "write"). + * + * @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 @@ -416,6 +453,59 @@ public final class System } /** + *

      + * Returns an unmodifiable view of the system environment variables. + * If the underlying system does not support environment variables, + * an empty map is returned. + *

      + *

      + * The returned map is read-only and does not accept queries using + * null keys or values, or those of a type other than String. + * Attempts to modify the map will throw an + * UnsupportedOperationException, while attempts + * to pass in a null value will throw a + * NullPointerException. Types other than String + * throw a ClassCastException. + *

      + *

      + * As the returned map is generated using data from the underlying + * platform, it may not comply with the equals() + * and hashCode() contracts. It is also likely that + * the keys of this map will be case-sensitive. + *

      + *

      + * Use of this method may require a security check for the + * RuntimePermission "getenv.*". + *

      + * + * @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 getenv() + { + SecurityManager sm = SecurityManager.current; // Be thread-safe. + if (sm != null) + sm.checkPermission(new RuntimePermission("getenv.*")); + if (environmentMap == null) + { + // List environ = (List)VMSystem.environ(); + // FIXME + List environ = new ArrayList(); + Map 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 * Runtime.getRuntime().exit(status), and never returns. * Obviously, a security check is in order, checkExit. @@ -557,4 +647,382 @@ public final class System * @see #getenv(String) */ static native String getenv0(String name); + + + /** + * This is a specialised Collection, providing + * the necessary provisions for the collections used by the + * environment variable map. Namely, it prevents + * querying anything but Strings. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class EnvironmentCollection + extends AbstractCollection + { + + /** + * The wrapped collection. + */ + protected Collection 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 coll) + { + c = coll; + } + + /** + * Blocks queries containing a null object or an object which + * isn't of type String. 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 String. 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 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 + + /** + * This is a specialised HashMap, which + * prevents the addition or querying of anything other than + * String objects. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class EnvironmentMap + extends HashMap + { + + /** + * Cache the entry set. + */ + private transient Set> entries; + + /** + * Cache the key set. + */ + private transient Set keys; + + /** + * Cache the value collection. + */ + private transient Collection values; + + /** + * Constructs a new empty EnvironmentMap. + */ + EnvironmentMap() + { + super(); + } + + /** + * Blocks queries containing a null key or one which is not + * of type String. 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-String 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> entrySet() + { + if (entries == null) + entries = super.entrySet(); + return entries; + } + + /** + * Blocks queries containing a null or non-String 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 keySet() + { + if (keys == null) + keys = new EnvironmentSet(super.keySet()); + return keys; + } + + /** + * Removes a key-value pair from the map. The queried key may not + * be null or of a type other than a String. + * + * @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 values() + { + if (values == null) + values = new EnvironmentCollection(super.values()); + return values; + } + + } + + /** + * This is a specialised Set, 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-String values. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class EnvironmentSet + extends EnvironmentCollection + implements Set + { + + /** + * 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 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 + } // class System diff --git a/libjava/java/lang/Thread$State.h b/libjava/java/lang/Thread$State.h new file mode 100644 index 00000000000..4620c722436 --- /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 +#include + + +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 00000000000..88d2b5b902f --- /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 + +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 00000000000..c3556f0684d --- /dev/null +++ b/libjava/java/lang/Thread.h @@ -0,0 +1,161 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Thread__ +#define __java_lang_Thread__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawData; + class RawDataManaged; + } + namespace java + { + namespace util + { + class WeakIdentityHashMap; + } + } + } +} + +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); +private: + Thread(::java::lang::Thread *, ::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *); +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::util::Map * 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 + ::gnu::java::util::WeakIdentityHashMap * 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; + volatile jint 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 index 2b7fb2aec01..9666482040a 100644 --- a/libjava/java/lang/Thread.java +++ b/libjava/java/lang/Thread.java @@ -36,12 +36,18 @@ 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; /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 @@ -83,6 +89,7 @@ import java.util.Map; * @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() @@ -121,7 +128,15 @@ public class Thread implements Runnable private int priority; boolean interrupt_flag; - private boolean alive_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. */ @@ -133,6 +148,9 @@ public class Thread implements Runnable /** 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; @@ -144,6 +162,19 @@ public class Thread implements Runnable /** 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. */ @@ -152,8 +183,11 @@ public class Thread implements Runnable // This describes the top-most interpreter frame for this thread. RawData interp_frame; + // Current state. + volatile int state; + // Our native data - points to an instance of struct natThread. - private RawDataManaged data; + RawDataManaged data; /** * Allocates a new Thread object. This constructor has @@ -368,7 +402,6 @@ public class Thread implements Runnable data = null; interrupt_flag = false; - alive_flag = false; startable_flag = true; synchronized (Thread.class) @@ -438,7 +471,10 @@ public class Thread implements Runnable public native int countStackFrames(); /** - * Get the currently executing Thread. + * 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 */ @@ -447,6 +483,19 @@ public class Thread implements Runnable /** * 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 suspend(), + * stop() and resume(); 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() { @@ -579,10 +628,7 @@ public class Thread implements Runnable * * @return whether this Thread is alive */ - public final synchronized boolean isAlive() - { - return alive_flag; - } + public final native boolean isAlive(); /** * Tell whether this is a daemon Thread or not. @@ -638,7 +684,9 @@ public class Thread implements Runnable throws InterruptedException; /** - * Resume a suspended thread. + * Resume this Thread. If the thread is not suspended, this method does + * nothing. To mirror suspend(), there may be a security check: + * checkAccess. * * @throws SecurityException if you cannot resume the Thread * @see #checkAccess() @@ -713,7 +761,7 @@ public class Thread implements Runnable * * @return the context class loader * @throws SecurityException when permission is denied - * @see setContextClassLoader(ClassLoader) + * @see #setContextClassLoader(ClassLoader) * @since 1.2 */ public synchronized ClassLoader getContextClassLoader() @@ -721,24 +769,15 @@ public class Thread implements Runnable if (contextClassLoader == null) contextClassLoader = ClassLoader.getSystemClassLoader(); + // Check if we may get the classloader SecurityManager sm = System.getSecurityManager(); - // FIXME: we can't currently find the caller's class loader. - ClassLoader callers = null; - if (sm != null && callers != null) + if (contextClassLoader != null && sm != null) { - // See if the caller's class loader is the same as or an - // ancestor of this thread's class loader. - while (callers != null && callers != contextClassLoader) - { - // FIXME: should use some internal version of getParent - // that avoids security checks. - callers = callers.getParent(); - } - - if (callers != contextClassLoader) - sm.checkPermission(new RuntimePermission("getClassLoader")); + // Get the calling classloader + ClassLoader cl = VMStackWalker.getCallingClassLoader(); + if (cl != null && !cl.isAncestorOf(contextClassLoader)) + sm.checkPermission(new RuntimePermission("getClassLoader")); } - return contextClassLoader; } @@ -751,7 +790,7 @@ public class Thread implements Runnable * * @param classloader the new context class loader * @throws SecurityException when permission is denied - * @see getContextClassLoader() + * @see #getContextClassLoader() * @since 1.2 */ public synchronized void setContextClassLoader(ClassLoader classloader) @@ -781,8 +820,10 @@ public class Thread implements Runnable } /** - * Causes the currently executing thread object to temporarily pause - * and allow other threads to execute. + * 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(); @@ -793,8 +834,10 @@ public class Thread implements Runnable * 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 interrupted; it's - * interrupted status will be cleared + * @throws InterruptedException if the Thread is (or was) interrupted; + * it's interrupted status will be cleared + * @throws IllegalArgumentException if ms is negative + * @see #interrupt() * @see #notify() * @see #wait(long) */ @@ -808,18 +851,21 @@ public class Thread implements Runnable * 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. - * - *

      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. + *

      + * 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 interrupted; it's - * interrupted status will be cleared - * @throws IllegalArgumentException if ns is invalid + * @throws InterruptedException if the Thread is (or was) interrupted; + * it's interrupted status 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) */ @@ -870,10 +916,11 @@ public class Thread implements Runnable /** * Cause this Thread to stop abnormally and throw the specified exception. - * If you stop a Thread that has not yet started, it will stop immediately - * when it is actually started. WARNINGThis bypasses Java security, - * and can throw a checked exception which the call stack is unprepared to - * handle. Do not abuse this power. + * If you stop a Thread that has not yet started, the stop is ignored + * (contrary to what the JDK documentation says). + * WARNINGThis bypasses Java security, and can throw a checked + * exception which the call stack is unprepared to handle. Do not abuse + * this power. * *

      This is inherently unsafe, as it can interrupt synchronized blocks and * leave data in bad states. Hence, there is a security check: @@ -996,6 +1043,7 @@ public class Thread implements Runnable */ public UncaughtExceptionHandler getUncaughtExceptionHandler() { + // FIXME: if thread is dead, should return null... return exceptionHandler != null ? exceptionHandler : group; } @@ -1094,7 +1142,7 @@ public class Thread implements Runnable * @author Andrew John Hughes * @since 1.5 * @see Thread#getUncaughtExceptionHandler() - * @see Thread#setUncaughtExceptionHander(java.lang.Thread.UncaughtExceptionHandler) + * @see Thread#setUncaughtExceptionHandler(UncaughtExceptionHandler) * @see Thread#getDefaultUncaughtExceptionHandler() * @see * Thread#setDefaultUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler) @@ -1113,6 +1161,32 @@ public class Thread implements Runnable void uncaughtException(Thread thr, Throwable exc); } + /** + *

      + * Represents the current state of a thread, according to the VM rather + * than the operating system. It can be one of the following: + *

      + *
        + *
      • NEW -- The thread has just been created but is not yet running.
      • + *
      • RUNNABLE -- The thread is currently running or can be scheduled + * to run.
      • + *
      • BLOCKED -- The thread is blocked waiting on an I/O operation + * or to obtain a lock.
      • + *
      • WAITING -- The thread is waiting indefinitely for another thread + * to do something.
      • + *
      • TIMED_WAITING -- The thread is waiting for a specific amount of time + * for another thread to do something.
      • + *
      • TERMINATED -- The thread has exited.
      • + *
      + * + * @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 @@ -1120,9 +1194,103 @@ public class Thread implements Runnable * * @return the current thread state. */ - public String getState() + public native State getState(); + + /** + *

      + * 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. + *

      + *

      + * 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. + *

      + *

      + * To execute this method, the current security manager + * (if one exists) must allow both the + * "getStackTrace" and + * "modifyThreadGroup" {@link RuntimePermission}s. + *

      + * + * @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 getAllStackTraces() { - // FIXME - Provide real implementation. - return "NEW"; + 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; } + + /** + *

      + * 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. + *

      + *

      + * 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. + *

      + *

      + * To execute this method, the current security manager + * (if one exists) must allow both the + * "getStackTrace" and + * "modifyThreadGroup" {@link RuntimePermission}s. + *

      + * + * @return a stack trace for this thread. + * @throws SecurityException if a security manager exists, and + * prevents the use of the + * "getStackTrace" + * permission. + * @since 1.5 + * @see #getAllStackTraces() + */ + public StackTraceElement[] getStackTrace() + { + SecurityManager sm = SecurityManager.current; // Be thread-safe. + if (sm != null) + sm.checkPermission(new RuntimePermission("getStackTrace")); + ThreadMXBean bean = ManagementFactory.getThreadMXBean(); + ThreadInfo info = bean.getThreadInfo(getId(), Integer.MAX_VALUE); + return info.getStackTrace(); + } + } diff --git a/libjava/java/lang/ThreadDeath.h b/libjava/java/lang/ThreadDeath.h new file mode 100644 index 00000000000..d06ce3458b3 --- /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 + +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 00000000000..a197ca16eb6 --- /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 +#include + + +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 00000000000..4bea9318516 --- /dev/null +++ b/libjava/java/lang/ThreadLocal.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_ThreadLocal__ +#define __java_lang_ThreadLocal__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class RawData; + } + } +} + +class java::lang::ThreadLocal : public ::java::lang::Object +{ + +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: + ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) 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 00000000000..6558c94c999 --- /dev/null +++ b/libjava/java/lang/ThreadLocal.java @@ -0,0 +1,179 @@ +/* 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 get() and set() methods) + * only affects the state of the object as seen by the currently + * executing Thread. + * + *

      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 initialValue(). + *

      + * + *

      An example how you can use this: + *

      + * + *
      + * class Connection
      + * {
      + *   private static ThreadLocal owner = new ThreadLocal()
      + *     {
      + *       public Object initialValue()
      + *       {
      + *         return("nobody");
      + *       }
      + *     };
      + * ...
      + * }
      + * 
      + * + *

      Now all instances of connection can see who the owner of the currently + * executing Thread is by calling owner.get(). 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 owner.put("somebody"). + * (Such an owner changing method should then be guarded by security checks.) + *

      + * + *

      When a Thread is garbage collected all references to values of + * the ThreadLocal objects associated with that Thread are removed. + *

      + * + * @author Mark Wielaard (mark@klomp.org) + * @author Eric Blake (ebb9@email.byu.edu) + * @since 1.2 + * @status updated to 1.5 + */ +public class ThreadLocal +{ + /** + * 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(); + + /** + * Creates a ThreadLocal object without associating any value to it yet. + */ + public ThreadLocal() + { + constructNative(); + } + + /** + * Called once per thread on the first invocation of get(), if set() was + * not already called. The default implementation returns null. + * 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 + * initialValue(). + * + * @return the value of the variable in this thread + */ + public native T get(); + + private final Object internalGet() + { + Map,T> map = (Map,T>) Thread.getThreadLocals(); + // Note that we don't have to synchronize, as only this thread will + // ever modify the map. + T value = map.get(this); + if (value == null) + { + value = initialValue(); + map.put(this, (T) (value == null ? sentinel : value)); + } + return value == (T) sentinel ? null : 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 initialValue() 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) + { + Map map = Thread.getThreadLocals(); + // Note that we don't have to synchronize, as only this thread will + // ever modify the map. + map.put(this, value == null ? sentinel : 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() + { + Map 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/Throwable$StaticData.h b/libjava/java/lang/Throwable$StaticData.h new file mode 100644 index 00000000000..6bb0912de2d --- /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 + +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 00000000000..0b8fdca68e7 --- /dev/null +++ b/libjava/java/lang/Throwable.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_Throwable__ +#define __java_lang_Throwable__ + +#pragma interface + +#include +#include + + +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(::java::lang::StringBuffer *, ::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 00000000000..076f0a6d43f --- /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 + +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 00000000000..2ed851aae57 --- /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 + +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 00000000000..a560313fe21 --- /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 + +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 00000000000..afa5b1875da --- /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 + +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 00000000000..ce808bdedde --- /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 + +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 00000000000..dce7092bfce --- /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 +#include + +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/VMCompiler.h b/libjava/java/lang/VMCompiler.h new file mode 100644 index 00000000000..e81f694e196 --- /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 +#include + +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 index 789445e4f56..0e4701c8409 100644 --- a/libjava/java/lang/VMCompiler.java +++ b/libjava/java/lang/VMCompiler.java @@ -73,6 +73,11 @@ final class VMCompiler // 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. @@ -186,8 +191,7 @@ final class VMCompiler int offset, int len, ProtectionDomain domain) { - if (precompiledMapFiles == null - && (! useCompiler || ! canUseCompiler)) + if (precompiledMapFiles == null && !precompiles()) return null; byte digest[]; @@ -232,7 +236,7 @@ final class VMCompiler } } - if (! useCompiler || ! canUseCompiler) + if (!precompiles()) return null; try diff --git a/libjava/java/lang/VMDouble.h b/libjava/java/lang/VMDouble.h new file mode 100644 index 00000000000..76b6d50208a --- /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 + +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/VMFloat.h b/libjava/java/lang/VMFloat.h new file mode 100644 index 00000000000..58e7ba9bbcc --- /dev/null +++ b/libjava/java/lang/VMFloat.h @@ -0,0 +1,23 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_VMFloat__ +#define __java_lang_VMFloat__ + +#pragma interface + +#include + +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); +public: + static ::java::lang::Class class$; +}; + +#endif // __java_lang_VMFloat__ diff --git a/libjava/java/lang/VMSecurityManager.java b/libjava/java/lang/VMSecurityManager.java deleted file mode 100644 index 25aeb7c4964..00000000000 --- a/libjava/java/lang/VMSecurityManager.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * java.lang.SecurityManager: part of the Java Class Libraries project. - * Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -package java.lang; - -import java.net.*; -import java.util.*; -import java.io.*; - -/** - ** VMSecurityManager is a helper class for SecurityManager the VM must - ** implement. - ** - ** @author John Keiser - ** @version 1.1.0, 31 May 1998 - **/ -class VMSecurityManager -{ - /** Get a list of all the classes currently executing - ** methods on the Java stack. getClassContext()[0] is - ** the currently executing method - ** Spec Note: does not say whether - ** the stack will include the getClassContext() call or - ** the one just before it. - ** - ** @return an array containing all the methods on classes - ** on the Java execution stack. - **/ - static native Class[] getClassContext(Class caller); - - /** Get the current ClassLoader--the one nearest to the - ** top of the stack. - ** @return the current ClassLoader. - **/ - static ClassLoader currentClassLoader(Class caller) - { - // The docs above are wrong. See the online docs. - // FIXME this implementation is a bit wrong too -- the docs say we - // must also consider ancestors of the system class loader. - ClassLoader systemClassLoader = ClassLoader.systemClassLoader; - Class[] classStack = getClassContext (caller); - for (int i = 0; i < classStack.length; i++) - { - ClassLoader loader = classStack[i].getClassLoader(); - if (loader != null && loader != systemClassLoader) - return loader; - } - - return null; - } -} diff --git a/libjava/java/lang/VMThrowable.h b/libjava/java/lang/VMThrowable.h new file mode 100644 index 00000000000..1991b6cd8dd --- /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 +#include + +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/VerifyError.h b/libjava/java/lang/VerifyError.h new file mode 100644 index 00000000000..54aafd27ee2 --- /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 + +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 00000000000..9eb04ceaabb --- /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 + +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 00000000000..be277b02aaa --- /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 + +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.h b/libjava/java/lang/Win32Process.h new file mode 100644 index 00000000000..0b49c6e9c33 --- /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 +#include + + +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 *); +private: + jboolean hasExited(); + void startProcess(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::io::File *); + 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 index b0ef487c204..7d9e40fce4a 100644 --- a/libjava/java/lang/Win32Process.java +++ b/libjava/java/lang/Win32Process.java @@ -1,6 +1,6 @@ // Win32Process.java - Subclass of Process for Win32 systems. -/* Copyright (C) 2002, 2003 Free Software Foundation +/* Copyright (C) 2002, 2003, 2006 Free Software Foundation This file is part of libgcj. @@ -22,9 +22,7 @@ import java.io.IOException; // This is entirely internal to our implementation. -// This file is copied to `ConcreteProcess.java' before compilation. -// Hence the class name apparently does not match the file name. -final class ConcreteProcess extends Process +final class Win32Process extends Process { public native void destroy (); @@ -53,7 +51,7 @@ final class ConcreteProcess extends Process public native int waitFor () throws InterruptedException; - public ConcreteProcess (String[] progarray, + public Win32Process (String[] progarray, String[] envp, File dir) throws IOException diff --git a/libjava/java/lang/annotation/Annotation.h b/libjava/java/lang/annotation/Annotation.h new file mode 100644 index 00000000000..9c9c3d7ab3b --- /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 + +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 00000000000..f5c43b24151 --- /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 + +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 00000000000..082d9f6a3c7 --- /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 + +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 00000000000..d2a920dc72a --- /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 + +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 00000000000..c475967ab5d --- /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 +#include + + +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 00000000000..aff0f7e0b37 --- /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 + +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 00000000000..b1ebc883eca --- /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 + +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 00000000000..42fb4a542b6 --- /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 + +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 00000000000..5d642601dc6 --- /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 +#include + + +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 00000000000..96ac5178821 --- /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 +#include + + +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 00000000000..b9106ed8eee --- /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 +#include + + +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 00000000000..cda1510b0a6 --- /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 +#include + +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 00000000000..c1b8783e777 --- /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 + +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 00000000000..d131d0c6948 --- /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 +#include + + +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 00000000000..e5fac3cdd41 --- /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 + +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 00000000000..371b63d3dd0 --- /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 + +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 00000000000..bbd1e0a210e --- /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 + +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 00000000000..35222cab065 --- /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 +#include + + +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/ManagementFactory.h b/libjava/java/lang/management/ManagementFactory.h new file mode 100644 index 00000000000..a315333be05 --- /dev/null +++ b/libjava/java/lang/management/ManagementFactory.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_management_ManagementFactory__ +#define __java_lang_management_ManagementFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServer; + } + } +} + +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::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 00000000000..4ac4a4fef4f --- /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 + +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 00000000000..2fb70add22e --- /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 + +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 00000000000..6509205a9b0 --- /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 +#include + + +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 00000000000..07cfefff3bb --- /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 +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 00000000000..4209d573a9d --- /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 +#include + + +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 00000000000..b93587d308a --- /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 +#include + + +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 00000000000..3b126f8183e --- /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 +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/OperatingSystemMXBean.h b/libjava/java/lang/management/OperatingSystemMXBean.h new file mode 100644 index 00000000000..adb562cf516 --- /dev/null +++ b/libjava/java/lang/management/OperatingSystemMXBean.h @@ -0,0 +1,22 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_management_OperatingSystemMXBean__ +#define __java_lang_management_OperatingSystemMXBean__ + +#pragma interface + +#include + +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 ::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 00000000000..c2666744020 --- /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 + +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 00000000000..a06b99ce4cc --- /dev/null +++ b/libjava/java/lang/management/ThreadInfo.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_management_ThreadInfo__ +#define __java_lang_management_ThreadInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class CompositeData; + class CompositeType; + class OpenType; + } + } + } +} + +class java::lang::management::ThreadInfo : public ::java::lang::Object +{ + + ThreadInfo(::java::lang::Thread *, jlong, jlong, ::java::lang::Object *, ::java::lang::Thread *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *); + 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 * > *); +public: // actually package-private + static void checkAttribute(::javax::management::openmbean::CompositeType *, ::java::lang::String *, ::javax::management::openmbean::OpenType *); +public: + static ::java::lang::management::ThreadInfo * from(::javax::management::openmbean::CompositeData *); + virtual jlong getBlockedCount(); + virtual jlong getBlockedTime(); + 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: + 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; + static ::java::lang::management::ThreadMXBean * bean; +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 00000000000..a160b088149 --- /dev/null +++ b/libjava/java/lang/management/ThreadMXBean.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_management_ThreadMXBean__ +#define __java_lang_management_ThreadMXBean__ + +#pragma interface + +#include +#include + + +class java::lang::management::ThreadMXBean : public ::java::lang::Object +{ + +public: + 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 ::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 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 00000000000..e712cbfc871 --- /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 +#include + + +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 index 6a906c730db..f10497014b4 100644 --- a/libjava/java/lang/management/VMManagementFactory.java +++ b/libjava/java/lang/management/VMManagementFactory.java @@ -54,10 +54,7 @@ final class VMManagementFactory * * @return a list of memory pool names. */ - static String[] getMemoryPoolNames() - { - return new String[0]; - } + static native String[] getMemoryPoolNames(); /** * Return a list of the names of the currently available @@ -66,10 +63,7 @@ final class VMManagementFactory * * @return a list of memory manager names. */ - static String[] getMemoryManagerNames() - { - return new String[0]; - } + static native String[] getMemoryManagerNames(); /** * Return a list of the names of the currently available @@ -77,8 +71,5 @@ final class VMManagementFactory * * @return a list of garbage collector names. */ - static String[] getGarbageCollectorNames() - { - return new String[0]; - } + static native String[] getGarbageCollectorNames(); } diff --git a/libjava/java/lang/management/natVMManagementFactory.cc b/libjava/java/lang/management/natVMManagementFactory.cc new file mode 100644 index 00000000000..35a418bb338 --- /dev/null +++ b/libjava/java/lang/management/natVMManagementFactory.cc @@ -0,0 +1,44 @@ +/* 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. */ + +/** + * @author Andrew John Hughes + * @date Tue 08 Aug 2006 */ +/* Implemented for our sole pool, the heap, and our sole memory + * manager/garbage collector, Boehm GC. + * Status: Believed complete and correct. + */ + +#include + +#include +#include +#include + +JArray< ::java::lang::String *> * +java::lang::management::VMManagementFactory::getMemoryPoolNames () +{ + return (JArray*) + JvNewObjectArray(1, &java::lang::String::class$, JvNewStringLatin1("Heap")); +} + + +JArray< ::java::lang::String *> * +java::lang::management::VMManagementFactory::getMemoryManagerNames () +{ + return (JArray*) + JvNewObjectArray(0, &java::lang::String::class$, NULL); +} + + +JArray< ::java::lang::String *> * +java::lang::management::VMManagementFactory::getGarbageCollectorNames () +{ + return (JArray*) + JvNewObjectArray(1, &java::lang::String::class$, JvNewStringLatin1("BoehmGC")); +} diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index 491faa7989a..cf07e8642fe 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -56,6 +56,21 @@ details. */ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -426,25 +441,6 @@ java::lang::Class::getName (void) } JArray * -java::lang::Class::getDeclaredClasses (jboolean /*publicOnly*/) -{ - // Until we have inner classes, it always makes sense to return an - // empty array. - JArray *result - = (JArray *) JvNewObjectArray (0, &java::lang::Class::class$, - NULL); - return result; -} - -jclass -java::lang::Class::getDeclaringClass (void) -{ - // Until we have inner classes, it makes sense to always return - // NULL. - return NULL; -} - -JArray * java::lang::Class::getInterfaces (void) { jobjectArray r = JvNewObjectArray (interface_count, getClass (), NULL); @@ -851,6 +847,738 @@ java::lang::Class::setSigners(JArray *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) + return NULL; + _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_Double); + _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; + + ClassLoader *trueLoader = loader; + if (trueLoader == NULL) + trueLoader = (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 *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 * +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 *result + = (JArray *) 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. // diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index b05c0b1045b..9c1a6a258ec 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -180,6 +180,41 @@ _Jv_UnregisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader) // _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; + } + + 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 @@ -194,8 +229,8 @@ _Jv_RegisterClasses (const jclass *classes) { jclass klass = *classes; - if (_Jv_CheckABIVersion ((unsigned long) klass->next_or_version)) - (*_Jv_RegisterClassHook) (klass); + _Jv_CheckABIVersion ((unsigned long) klass->next_or_version); + (*_Jv_RegisterClassHook) (klass); } } @@ -211,32 +246,37 @@ _Jv_RegisterClasses_Counted (const jclass * classes, size_t count) { jclass klass = classes[i]; - if (_Jv_CheckABIVersion ((unsigned long) klass->next_or_version)) - (*_Jv_RegisterClassHook) (klass); + _Jv_CheckABIVersion ((unsigned long) klass->next_or_version); + (*_Jv_RegisterClassHook) (klass); } } // Create a class on the heap from an initializer struct. -jclass +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$); + = (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 = sizeof (*new_class) - sizeof (void*); + size_t len = (::java::lang::Class::initializerSize (version) + - sizeof (void*)); memcpy (dst, src, len); - + new_class->engine = &_Jv_soleIndirectCompiledEngine; - - if (_Jv_CheckABIVersion ((unsigned long) new_class->next_or_version)) - (*_Jv_RegisterClassHook) (new_class); + + (*_Jv_RegisterClassHook) (new_class); return new_class; } diff --git a/libjava/java/lang/natEcosProcess.cc b/libjava/java/lang/natEcosProcess.cc index 9cfb19e702d..7d8edfb0e9c 100644 --- a/libjava/java/lang/natEcosProcess.cc +++ b/libjava/java/lang/natEcosProcess.cc @@ -1,6 +1,6 @@ // natEcosProcess.cc - Native side of eCos processes. -/* Copyright (C) 1998, 1999 Free Software Foundation +/* Copyright (C) 1998, 1999, 2006 Free Software Foundation This file is part of libgcj. @@ -17,9 +17,9 @@ details. */ #include #include -#include +#include void -java::lang::ConcreteProcess::destroy (void) +java::lang::EcosProcess::destroy (void) { } diff --git a/libjava/java/lang/natPosixProcess.cc b/libjava/java/lang/natPosixProcess.cc index 94344fc8e61..498647036c5 100644 --- a/libjava/java/lang/natPosixProcess.cc +++ b/libjava/java/lang/natPosixProcess.cc @@ -27,8 +27,8 @@ details. */ #include #include -#include -#include +#include +#include #include #include #include @@ -98,7 +98,7 @@ sigchld_handler (int) // Get ready to enter the main reaper thread loop. void -java::lang::ConcreteProcess$ProcessManager::init () +java::lang::PosixProcess$ProcessManager::init () { using namespace java::lang; // Remenber our PID so other threads can kill us. @@ -124,7 +124,7 @@ error: } void -java::lang::ConcreteProcess$ProcessManager::waitForSignal () +java::lang::PosixProcess$ProcessManager::waitForSignal () { // Wait for SIGCHLD sigset_t mask; @@ -145,7 +145,7 @@ java::lang::ConcreteProcess$ProcessManager::waitForSignal () return; } -jboolean java::lang::ConcreteProcess$ProcessManager::reap () +jboolean java::lang::PosixProcess$ProcessManager::reap () { using namespace java::lang; @@ -168,7 +168,7 @@ jboolean java::lang::ConcreteProcess$ProcessManager::reap () return true; // No children to wait for. // Look up the process in our pid map. - ConcreteProcess * process = removeProcessFromMap ((jlong) pid); + PosixProcess * process = removeProcessFromMap ((jlong) pid); // Note that if process==NULL, then we have an unknown child. // This is not common, but can happen, and isn't an error. @@ -176,7 +176,7 @@ jboolean java::lang::ConcreteProcess$ProcessManager::reap () { JvSynchronize sync (process); process->status = WIFEXITED (status) ? WEXITSTATUS (status) : -1; - process->state = ConcreteProcess::STATE_TERMINATED; + process->state = PosixProcess::STATE_TERMINATED; process->processTerminationCleanup(); process->notifyAll (); } @@ -187,7 +187,7 @@ error: } void -java::lang::ConcreteProcess$ProcessManager::signalReaper () +java::lang::PosixProcess$ProcessManager::signalReaper () { int c = pthread_kill ((pthread_t) reaperPID, SIGCHLD); if (c == 0) @@ -197,7 +197,7 @@ java::lang::ConcreteProcess$ProcessManager::signalReaper () } void -java::lang::ConcreteProcess::nativeDestroy () +java::lang::PosixProcess::nativeDestroy () { int c = kill ((pid_t) pid, SIGKILL); if (c == 0) @@ -207,7 +207,7 @@ java::lang::ConcreteProcess::nativeDestroy () } void -java::lang::ConcreteProcess::nativeSpawn () +java::lang::PosixProcess::nativeSpawn () { using namespace java::io; diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc index 5cca1b072a3..ecaf7d314a2 100644 --- a/libjava/java/lang/natRuntime.cc +++ b/libjava/java/lang/natRuntime.cc @@ -26,9 +26,13 @@ details. */ #include #include #include -#include #include +// It is convenient and safe to simply include all of these. +#include +#include +#include + #include #ifdef HAVE_PWD_H @@ -286,7 +290,7 @@ java::lang::Runtime::execInternal (jstringArray cmd, jstringArray env, java::io::File *dir) { - return new java::lang::ConcreteProcess (cmd, env, dir); + return new _Jv_platform_process (cmd, env, dir); } jint diff --git a/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc index facce30fa2e..2472d4d3005 100644 --- a/libjava/java/lang/natThread.cc +++ b/libjava/java/lang/natThread.cc @@ -18,6 +18,8 @@ details. */ #include #include +#include +#include #include #include #include @@ -32,24 +34,6 @@ details. */ -// This structure is used to represent all the data the native side -// needs. An object of this type is assigned to the `data' member of -// the Thread class. -struct natThread -{ - // These are used to interrupt sleep and join calls. We can share a - // condition variable here since it only ever gets notified when the thread - // exits. - _Jv_Mutex_t join_mutex; - _Jv_ConditionVariable_t join_cond; - - // This is private data for the thread system layer. - _Jv_Thread_t *thread; - - // Each thread has its own JNI object. - JNIEnv *jni_env; -}; - static void finalize_native (jobject ptr); // This is called from the constructor to initialize the native side @@ -59,6 +43,9 @@ 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. @@ -66,6 +53,9 @@ java::lang::Thread::initialize_native (void) _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. @@ -83,7 +73,9 @@ finalize_native (jobject ptr) #ifdef _Jv_HaveMutexDestroy _Jv_MutexDestroy (&nt->join_mutex); #endif - _Jv_FreeJNIEnv(nt->jni_env); + _Jv_FreeJNIEnv((JNIEnv*)nt->jni_env); + + nt->park_helper.destroy(); } jint @@ -111,14 +103,34 @@ java::lang::Thread::holdsLock (jobject obj) 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; - JvSynchronize sync (this); - if (alive_flag) - _Jv_ThreadInterrupt (nt->thread); + + // 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 @@ -197,8 +209,10 @@ java::lang::Thread::sleep (jlong millis, jint nanos) void java::lang::Thread::finish_ () { + __sync_synchronize(); natThread *nt = (natThread *) data; + nt->park_helper.deactivate (); group->removeThread (this); #ifdef ENABLE_JVMPI @@ -226,7 +240,8 @@ java::lang::Thread::finish_ () { JvSynchronize sync (this); - alive_flag = false; + nt->alive_flag = THREAD_DEAD; + state = JV_TERMINATED; } _Jv_CondNotifyAll (&nt->join_cond, &nt->join_mutex); @@ -307,7 +322,7 @@ _Jv_ThreadRun (java::lang::Thread* thread) // this results in an uncaught exception, that is ignored. try { - thread->group->uncaughtException (thread, t); + thread->getUncaughtExceptionHandler()->uncaughtException (thread, t); } catch (java::lang::Throwable *f) { @@ -334,9 +349,10 @@ java::lang::Thread::start (void) if (!startable_flag) throw new IllegalThreadStateException; - alive_flag = true; - startable_flag = false; natThread *nt = (natThread *) data; + nt->alive_flag = THREAD_ALIVE; + startable_flag = false; + state = JV_RUNNABLE; _Jv_ThreadStart (this, nt->thread, (_Jv_ThreadStartFunc *) &_Jv_ThreadRun); } @@ -392,13 +408,40 @@ 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; + return (JNIEnv *)((natThread *) t->data)->jni_env; } void @@ -419,8 +462,9 @@ _Jv_AttachCurrentThread(java::lang::Thread* thread) if (thread == NULL || thread->startable_flag == false) return -1; thread->startable_flag = false; - thread->alive_flag = true; natThread *nt = (natThread *) thread->data; + nt->alive_flag = ::java::lang::Thread::THREAD_ALIVE; + thread->state = JV_RUNNABLE; _Jv_ThreadRegister (nt->thread); return 0; } diff --git a/libjava/java/lang/natThreadLocal.cc b/libjava/java/lang/natThreadLocal.cc new file mode 100644 index 00000000000..cd61f4a623f --- /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 + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +/* 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 index 95c1f15934c..2db2429c927 100644 --- a/libjava/java/lang/natVMClassLoader.cc +++ b/libjava/java/lang/natVMClassLoader.cc @@ -47,6 +47,9 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader, jclass klass = VMCompiler::compileClass(loader, name, data, offset, length, pd); + if (klass) + _Jv_RegisterInitiatingLoader (klass, klass->loader); + #ifdef INTERPRETER if (klass == NULL) { diff --git a/libjava/java/lang/natVMSecurityManager.cc b/libjava/java/lang/natVMSecurityManager.cc deleted file mode 100644 index 9d52c92c7c5..00000000000 --- a/libjava/java/lang/natVMSecurityManager.cc +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 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 - -#include - -#include -#include -#include - -#include -#include -#include -#include - -JArray * -java::lang::VMSecurityManager::getClassContext (jclass klass) -{ - JArray *result = - _Jv_StackTrace::GetClassContext (klass); - - return result; -} diff --git a/libjava/java/lang/natWin32Process.cc b/libjava/java/lang/natWin32Process.cc index 3c1a4f02c8b..d07f501366b 100644 --- a/libjava/java/lang/natWin32Process.cc +++ b/libjava/java/lang/natWin32Process.cc @@ -1,6 +1,6 @@ // natWin32Process.cc - Native side of Win32 process code. -/* Copyright (C) 2003 Free Software Foundation +/* Copyright (C) 2003, 2006 Free Software Foundation This file is part of libgcj. @@ -14,7 +14,7 @@ details. */ // Conflicts with the definition in "java/lang/reflect/Modifier.h" #undef STRICT -#include +#include #include #include #include @@ -30,7 +30,7 @@ details. */ using gnu::java::nio::channels::FileChannelImpl; void -java::lang::ConcreteProcess::cleanup (void) +java::lang::Win32Process::cleanup (void) { // FIXME: // We used to close the input, output and @@ -42,7 +42,7 @@ java::lang::ConcreteProcess::cleanup (void) // to the POSIX approach. // // What I wanted to do is have private nested - // classes in ConcreteProcess which extend FileInputStream + // 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 @@ -63,7 +63,7 @@ java::lang::ConcreteProcess::cleanup (void) } void -java::lang::ConcreteProcess::destroy (void) +java::lang::Win32Process::destroy (void) { if (! hasExited ()) { @@ -76,7 +76,7 @@ java::lang::ConcreteProcess::destroy (void) } jboolean -java::lang::ConcreteProcess::hasExited (void) +java::lang::Win32Process::hasExited (void) { DWORD exitStatus; @@ -100,7 +100,7 @@ java::lang::ConcreteProcess::hasExited (void) } jint -java::lang::ConcreteProcess::waitFor (void) +java::lang::Win32Process::waitFor (void) { if (! hasExited ()) { @@ -209,7 +209,7 @@ HANDLE ChildProcessPipe::getChildHandle() } void -java::lang::ConcreteProcess::startProcess (jstringArray progarray, +java::lang::Win32Process::startProcess (jstringArray progarray, jstringArray envp, java::io::File *dir) { diff --git a/libjava/java/lang/ref/PhantomReference.h b/libjava/java/lang/ref/PhantomReference.h new file mode 100644 index 00000000000..0c8a823d4f8 --- /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 + +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 00000000000..3eeaf65c645 --- /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 +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 index ab0c55c84ce..a5184cee888 100644 --- a/libjava/java/lang/ref/Reference.java +++ b/libjava/java/lang/ref/Reference.java @@ -1,5 +1,5 @@ /* java.lang.ref.Reference - Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -70,7 +70,7 @@ package java.lang.ref; * @author Jochen Hoenicke * @see java.util.WeakHashtable */ -public abstract class Reference +public abstract class Reference { /** * The underlying object. This field is handled in a special way by @@ -105,7 +105,7 @@ public abstract class Reference * The queue this reference is registered on. This is null, if this * wasn't registered to any queue or reference was already enqueued. */ - ReferenceQueue queue; + ReferenceQueue queue; /** * Link to the next entry on the queue. If this is null, this @@ -129,7 +129,7 @@ public abstract class Reference * class in a different package. * @param referent the object we refer to. */ - Reference(Object ref) + Reference(T ref) { create (ref); } @@ -142,7 +142,7 @@ public abstract class Reference * @param q the reference queue to register on. * @exception NullPointerException if q is null. */ - Reference(Object ref, ReferenceQueue q) + Reference(T ref, ReferenceQueue q) { if (q == null) throw new NullPointerException(); @@ -153,20 +153,14 @@ public abstract class Reference /** * Notifies the VM that a new Reference has been created. */ - private native void create (Object o); + 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 Object get() - { - synchronized (lock) - { - return referent; - } - } + public native T get(); /** * Clears the reference, so that it doesn't refer to its object diff --git a/libjava/java/lang/ref/ReferenceQueue.h b/libjava/java/lang/ref/ReferenceQueue.h new file mode 100644 index 00000000000..bd4a9d8b71d --- /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 + +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 00000000000..faa98e7bd62 --- /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 + +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 00000000000..b540274d3f3 --- /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 + +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 index 23f435f4def..ac7272cf5c2 100644 --- a/libjava/java/lang/ref/natReference.cc +++ b/libjava/java/lang/ref/natReference.cc @@ -1,6 +1,6 @@ // natReference.cc - Native code for References -/* Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation +/* Copyright (C) 2001, 2002, 2003, 2005, 2006 Free Software Foundation This file is part of libgcj. @@ -368,3 +368,10 @@ void 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 00000000000..d140e300c58 --- /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 +#include + + +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 00000000000..5792b75e0cc --- /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 +#include + + +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 00000000000..48df7d3fa50 --- /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 +#include + + +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/Constructor.h b/libjava/java/lang/reflect/Constructor.h new file mode 100644 index 00000000000..5a200bc114d --- /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 +#include + + +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 index 68b2d3985cf..83aae3b48ce 100644 --- a/libjava/java/lang/reflect/Constructor.java +++ b/libjava/java/lang/reflect/Constructor.java @@ -40,6 +40,7 @@ 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 @@ -75,7 +76,7 @@ import gnu.java.lang.reflect.MethodSignatureParser; * @since 1.1 * @status updated to 1.4 */ -public final class Constructor extends AccessibleObject +public final class Constructor extends AccessibleObject implements Member, GenericDeclaration { private static final int CONSTRUCTOR_MODIFIERS @@ -92,7 +93,7 @@ public final class Constructor extends AccessibleObject * Gets the class that declared this constructor. * @return the class that declared this member */ - public Class getDeclaringClass() + public Class getDeclaringClass () { return declaringClass; } @@ -235,8 +236,8 @@ public final class Constructor extends AccessibleObject return b.toString(); } - /* FIXME[GENERICS]: Add X extends GenericDeclaration and TypeVariable */ - static void addTypeParameters(StringBuilder sb, TypeVariable[] typeArgs) + static + void addTypeParameters(StringBuilder sb, TypeVariable[] typeArgs) { if (typeArgs.length == 0) return; @@ -320,8 +321,7 @@ public final class Constructor extends AccessibleObject * specification, version 3. * @since 1.5 */ - /* FIXME[GENERICS]: Add > */ - public TypeVariable[] getTypeParameters() + public TypeVariable>[] getTypeParameters() { String sig = getSignature(); if (sig == null) @@ -334,11 +334,7 @@ public final class Constructor extends AccessibleObject * Return the String in the Signature attribute for this constructor. If there * is no Signature attribute, return null. */ - private String getSignature() - { - // FIXME: libgcj doesn't record this information yet. - return null; - } + private native String getSignature(); /** * Returns an array of Type objects that represents @@ -382,11 +378,41 @@ public final class Constructor extends AccessibleObject return p.getGenericParameterTypes(); } + public T getAnnotation(Class 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 declaringClass; + private Class declaringClass; // Exception types. private Class[] exception_types; diff --git a/libjava/java/lang/reflect/Field.h b/libjava/java/lang/reflect/Field.h new file mode 100644 index 00000000000..3e39fb2bad1 --- /dev/null +++ b/libjava/java/lang/reflect/Field.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_reflect_Field__ +#define __java_lang_reflect_Field__ + +#pragma interface + +#include +#include + + +jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *); +jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean); + +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; +}; + +#endif // __java_lang_reflect_Field__ diff --git a/libjava/java/lang/reflect/Field.java b/libjava/java/lang/reflect/Field.java index 134ff132ecf..61db14df576 100644 --- a/libjava/java/lang/reflect/Field.java +++ b/libjava/java/lang/reflect/Field.java @@ -41,6 +41,7 @@ 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 @@ -88,7 +89,7 @@ public final class Field // The Class (or primitive TYPE) of this field. private Class type; - private static final int FIELD_MODIFIERS + static final int FIELD_MODIFIERS = Modifier.FINAL | Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC | Modifier.STATIC | Modifier.TRANSIENT | Modifier.VOLATILE; @@ -104,7 +105,7 @@ public final class Field * is a non-inherited member. * @return the class that declared this member */ - public Class getDeclaringClass() + public Class getDeclaringClass() { return declaringClass; } @@ -158,7 +159,7 @@ public final class Field * Gets the type of this field. * @return the type of this field */ - public native Class getType(); + public native Class getType(); /** * Compare two objects to see if they are semantically equivalent. @@ -733,15 +734,30 @@ public final class Field return p.getFieldType(); } + public T getAnnotation(Class 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 String getSignature() - { - // FIXME: libgcj doesn't record Signature attributes yet. - return null; - } + private native String getSignature(); native void setByte (Class caller, Object obj, byte b, boolean checkFinal) throws IllegalArgumentException, IllegalAccessException; diff --git a/libjava/java/lang/reflect/GenericArrayType.h b/libjava/java/lang/reflect/GenericArrayType.h new file mode 100644 index 00000000000..cdeb0b2a328 --- /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 + +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 00000000000..5c484ea96ea --- /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 +#include + + +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 00000000000..c46c9264ad3 --- /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 + +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 00000000000..7221953217a --- /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 +#include + + +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 00000000000..37e229c2957 --- /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 + +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 00000000000..a48f669c0c1 --- /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 + +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 00000000000..9e3522be0d6 --- /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 + +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 00000000000..7d4b46d3e27 --- /dev/null +++ b/libjava/java/lang/reflect/Method.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_lang_reflect_Method__ +#define __java_lang_reflect_Method__ + +#pragma interface + +#include +#include + + +jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *); +jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean); + +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(); + JArray< ::java::lang::Class * > * getExceptionTypes(); + 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; +}; + +#endif // __java_lang_reflect_Method__ diff --git a/libjava/java/lang/reflect/Method.java b/libjava/java/lang/reflect/Method.java index 3142d64944f..fc0bf106440 100644 --- a/libjava/java/lang/reflect/Method.java +++ b/libjava/java/lang/reflect/Method.java @@ -12,6 +12,7 @@ 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 @@ -50,7 +51,7 @@ import gnu.java.lang.reflect.MethodSignatureParser; public final class Method extends AccessibleObject implements Member, GenericDeclaration { - private static final int METHOD_MODIFIERS + static final int METHOD_MODIFIERS = Modifier.ABSTRACT | Modifier.FINAL | Modifier.NATIVE | Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC | Modifier.STATIC | Modifier.STRICT | Modifier.SYNCHRONIZED; @@ -132,7 +133,7 @@ public final class Method * Gets the return type of this method. * @return the type of this method */ - public Class getReturnType () + public Class getReturnType () { if (return_type == null) getType(); @@ -145,11 +146,11 @@ public final class Method * * @return a list of the types of the method's parameters */ - public Class[] getParameterTypes () + public Class[] getParameterTypes () { if (parameter_types == null) getType(); - return (Class[]) parameter_types.clone(); + return (Class[]) parameter_types.clone(); } /** @@ -159,11 +160,11 @@ public final class Method * * @return a list of the types in the method's throws clause */ - public Class[] getExceptionTypes () + public Class[] getExceptionTypes () { if (exception_types == null) getType(); - return (Class[]) exception_types.clone(); + return (Class[]) exception_types.clone(); } /** @@ -309,7 +310,7 @@ public final class Method * @throws ExceptionInInitializerError if accessing a static method triggered * class initialization, which then failed */ - public native Object invoke (Object obj, Object[] args) + public native Object invoke (Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException; @@ -325,8 +326,7 @@ public final class Method * specification, version 3. * @since 1.5 */ - /* FIXME[GENERICS]: Should be TypeVariable[] */ - public TypeVariable[] getTypeParameters() + public TypeVariable[] getTypeParameters() { String sig = getSignature(); if (sig == null) @@ -339,11 +339,7 @@ public final class Method * Return the String in the Signature attribute for this method. If there * is no Signature attribute, return null. */ - private String getSignature() - { - // FIXME: libgcj doesn't record this information yet. - return null; - } + private native String getSignature(); /** * Returns an array of Type objects that represents @@ -405,6 +401,49 @@ public final class Method 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 getAnnotation(Class 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 @@ -431,13 +470,13 @@ public final class Method private Class declaringClass; // Exception types. - private Class[] exception_types; + Class[] exception_types; // Name cache. (Initially null.) private String name; // Parameter types. - private Class[] parameter_types; + Class[] parameter_types; // Return type. - private Class 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 00000000000..4ee474a9500 --- /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 + +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/ParameterizedType.h b/libjava/java/lang/reflect/ParameterizedType.h new file mode 100644 index 00000000000..dab9ad953b6 --- /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 +#include + + +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 00000000000..c4cfb883d4c --- /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 +#include + + +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 00000000000..2c0d91e5e5a --- /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 +#include + + +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 00000000000..ae0f028deb0 --- /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 + +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 00000000000..da7653539f4 --- /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 +#include + + +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 00000000000..4dad2cffd2d --- /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 +#include + + +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 00000000000..0e6a7c32e79 --- /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 + +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 00000000000..55c317fa425 --- /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 + +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 00000000000..6029c01903d --- /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 +#include + + +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 00000000000..01b969b0e43 --- /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 + +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 00000000000..e48e8e4e875 --- /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 +#include + + +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 index b3641cf17d9..ea1c8850625 100644 --- a/libjava/java/lang/reflect/VMProxy.java +++ b/libjava/java/lang/reflect/VMProxy.java @@ -65,7 +65,7 @@ final class VMProxy * If this is true, HAVE_NATIVE_GET_PROXY_CLASS should be false. * @see java.lang.reflect.Proxy */ - static boolean HAVE_NATIVE_GENERATE_PROXY_CLASS = false; + static boolean HAVE_NATIVE_GENERATE_PROXY_CLASS = true; /** * Optional native method to replace (and speed up) the pure Java @@ -136,8 +136,5 @@ final class VMProxy * @see #getProxyClass(ClassLoader, Class[]) * @see ProxyData#generateProxyClass(ClassLoader) */ - static Class generateProxyClass(ClassLoader loader, Proxy.ProxyData data) - { - return null; - } + 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 00000000000..2c5b93d65e7 --- /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 +#include + + +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/natConstructor.cc b/libjava/java/lang/reflect/natConstructor.cc index 35cf7f817ef..953d86dd411 100644 --- a/libjava/java/lang/reflect/natConstructor.cc +++ b/libjava/java/lang/reflect/natConstructor.cc @@ -23,12 +23,33 @@ details. */ #include #include +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 () { diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc index 487f62ab0e2..b107ab851b7 100644 --- a/libjava/java/lang/reflect/natField.cc +++ b/libjava/java/lang/reflect/natField.cc @@ -29,6 +29,8 @@ details. */ #include #include +typedef JArray< ::java::lang::annotation::Annotation * > * anno_a_t; + jint java::lang::reflect::Field::getModifiersInternal () { @@ -36,6 +38,18 @@ java::lang::reflect::Field::getModifiersInternal () } 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) diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc index eb7170a02be..6dcd4ec518a 100644 --- a/libjava/java/lang/reflect/natMethod.cc +++ b/libjava/java/lang/reflect/natMethod.cc @@ -48,6 +48,11 @@ details. */ #include #endif +typedef JArray< ::java::lang::annotation::Annotation * > * anno_a_t; +typedef JArray< JArray< ::java::lang::annotation::Annotation * > *> * anno_aa_t; + + + struct cpair { jclass prim; @@ -189,6 +194,30 @@ java::lang::reflect::Method::getModifiersInternal () } 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) diff --git a/libjava/java/lang/reflect/natVMProxy.cc b/libjava/java/lang/reflect/natVMProxy.cc new file mode 100644 index 00000000000..8d803a85971 --- /dev/null +++ b/libjava/java/lang/reflect/natVMProxy.cc @@ -0,0 +1,394 @@ +// natVMProxy.cc -- Implementation of VMProxy methods. + +/* 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. */ + +// 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 +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + + +using namespace java::lang::reflect; +using namespace java::lang; + +typedef void (*closure_fun) (ffi_cif*, void*, void**, void*); +static void *ncode (_Jv_Method *self, closure_fun fun, Method *meth); +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 (); + klass->superclass = &Proxy::class$; + klass->engine = &_Jv_soleIndirectCompiledEngine; + klass->size_in_bytes = Proxy::class$.size_in_bytes; + klass->vtable_method_count = -1; + + // Synchronize on the class, so that it is not attempted initialized + // until we're done. + JvSynchronize sync (klass); + + // 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 (""), + _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 (&method, run_proxy, elements(d->methods)[i]); + method.accflags &= ~Modifier::ABSTRACT; + } + + _Jv_Linker::layout_vtable_methods (klass); + _Jv_RegisterInitiatingLoader (klass, klass->loader); + + 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"); +} + + +// 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; + ffi_cif cif; + Method *meth; + _Jv_Method *self; + ffi_type *arg_types[0]; +} ncode_closure; + +static void +run_proxy (ffi_cif *cif, + void *rvalue, + void **args, + void*user_data) +{ + Proxy *proxy = *(Proxy**)args[0]; + ncode_closure *self = (ncode_closure *) user_data; + + // 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, proxy->getClass()); + + InvocationHandler *handler = proxy->h; + void *poo + = _Jv_NewObjectArray (self->meth->parameter_types->length, &Object::class$, NULL); + JArray *argsArray = (JArray *) poo; + jobject *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 < self->meth->parameter_types->length; i++, index++) + jargs[i] = box (args[index], elements(self->meth->parameter_types)[i], + cif->arg_types[index]->type); + + jobject ret; + try + { + ret = invoke (handler, proxy, self->meth, argsArray); + } + catch (Throwable *t) + { + if (_Jv_IsInstanceOf (t, &RuntimeException::class$) + || _Jv_IsInstanceOf (t, &Error::class$)) + throw t; + + Class **throwables = elements (self->meth->exception_types); + for (int i = 0; i < self->meth->exception_types->length; i++) + if (_Jv_IsInstanceOf (t, throwables[i])) + throw t; + + throw new UndeclaredThrowableException (t); + } + + unbox (ret, self->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 (_Jv_Method *self, closure_fun fun, Method *meth) +{ + using namespace java::lang::reflect; + + jboolean staticp = (self->accflags & Modifier::STATIC) != 0; + int arg_count = _Jv_count_arguments (self->signature, staticp); + + ncode_closure *closure = + (ncode_closure*)_Jv_AllocBytes (sizeof (ncode_closure) + + arg_count * sizeof (ffi_type*)); + + _Jv_init_cif (self->signature, + arg_count, + staticp, + &closure->cif, + &closure->arg_types[0], + NULL); + closure->meth = meth; + closure->self = self; + + JvAssert ((self->accflags & Modifier::NATIVE) == 0); + + ffi_prep_closure (&closure->closure, + &closure->cif, + fun, + (void*)closure); + + self->ncode = (void*)closure; + return self->ncode; +} diff --git a/libjava/java/math/BigDecimal.h b/libjava/java/math/BigDecimal.h new file mode 100644 index 00000000000..72b877e85f4 --- /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 +#include + +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 target$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 00000000000..e1d4461e850 --- /dev/null +++ b/libjava/java/math/BigInteger.h @@ -0,0 +1,195 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_math_BigInteger__ +#define __java_math_BigInteger__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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 ::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 target$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, ::java::lang::StringBuffer *); +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(::java::lang::String *, jint); + 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: + jint __attribute__((aligned(__alignof__( ::java::lang::Number)))) ival; + JArray< jint > * words; + jint bitCount__; + jint bitLength__; + jint firstNonzeroByteNum; + 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; +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 00000000000..bed83920be8 --- /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 +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 00000000000..b72f7cff7ec --- /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 +#include + +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 00000000000..b8e26606bea --- /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 +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 00000000000..6056f55f744 --- /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 +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 00000000000..324ff1fe7c7 --- /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 +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 00000000000..62aecff06a0 --- /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 +#include + +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 00000000000..ca153310473 --- /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 +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 00000000000..068329e05c5 --- /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 +#include + +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 00000000000..a1761e11549 --- /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 +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/classpath/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java similarity index 100% copy from libjava/classpath/java/net/DatagramSocket.java copy to libjava/java/net/DatagramSocket.java diff --git a/libjava/java/net/DatagramSocketImpl.h b/libjava/java/net/DatagramSocketImpl.h new file mode 100644 index 00000000000..e29991b4235 --- /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 +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 00000000000..15e1780ec89 --- /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 +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 00000000000..916f14023e9 --- /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 +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 00000000000..d192e33ad6b --- /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 +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 00000000000..5ff13154680 --- /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 +#include + +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 00000000000..933a4780a18 --- /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 +#include + +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 00000000000..8cde4fb5daa --- /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 +#include + +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 00000000000..b4f14d41c8d --- /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 +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 00000000000..6c89e6e4d18 --- /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 +#include + +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 00000000000..713bf5e7d6f --- /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 +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 00000000000..06fb2679e6f --- /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 +#include + +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 00000000000..2faac45e39f --- /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 +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 00000000000..e24b1947731 --- /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 + 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. + *

      + * 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 getTimeToLive 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 setTimeToLive + * + * @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 + * 1 and 255. + * + * @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 00000000000..a6c88555bc9 --- /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 +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 00000000000..66898a2129f --- /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 +#include + +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 00000000000..7ad62a71395 --- /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 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 InetAddresses are returned where the security manager + * doesn't throw an exception. + * + * @return An enumeration of all addresses. + */ + public Enumeration getInetAddresses() + { + SecurityManager s = System.getSecurityManager(); + + if (s == null) + return inetAddresses.elements(); + + Vector tmpInetAddresses = new Vector(1, 1); + + for (Enumeration 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 NetworkInterface 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 null 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 Enumeration of all available network interfaces + * + * @return all interfaces + * + * @exception SocketException If an error occurs + */ + public static Enumeration getNetworkInterfaces() + throws SocketException + { + Vector 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 true if equal, false 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 00000000000..7a639eaa749 --- /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 +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 00000000000..2567fd0e5fc --- /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 +#include + +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 00000000000..5e0fff24987 --- /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 +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 00000000000..39e7b7b1e41 --- /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 +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 00000000000..288bd8c519a --- /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 +#include + +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 00000000000..b6b44e3a62f --- /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 +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 00000000000..62382ee58a5 --- /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 +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 00000000000..22b5da83f97 --- /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 +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 00000000000..d274d235c05 --- /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 +#include + +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 00000000000..af51cb6d864 --- /dev/null +++ b/libjava/java/net/ServerSocket.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_ServerSocket__ +#define __java_net_ServerSocket__ + +#pragma interface + +#include +extern "Java" +{ + 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(::java::net::SocketImpl *); + 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 00000000000..776d6fc473a --- /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 +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/classpath/java/net/Socket.java b/libjava/java/net/Socket.java similarity index 100% copy from libjava/classpath/java/net/Socket.java copy to libjava/java/net/Socket.java diff --git a/libjava/java/net/SocketAddress.h b/libjava/java/net/SocketAddress.h new file mode 100644 index 00000000000..42f0f21b101 --- /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 +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 00000000000..563e7f13b1e --- /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 +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 00000000000..0daf5146da0 --- /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 +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 00000000000..2089846dfcc --- /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 +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 00000000000..6a56d13468d --- /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 +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 00000000000..dae8e83afd9 --- /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 +#include + +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 00000000000..a32424b91d7 --- /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 +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 00000000000..9c8f4f2d1fc --- /dev/null +++ b/libjava/java/net/URI.h @@ -0,0 +1,134 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URI__ +#define __java_net_URI__ + +#pragma interface + +#include +extern "Java" +{ + 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(::java::lang::StringBuffer *); +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 target$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 00000000000..93f1a4e6651 --- /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 +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 00000000000..d81ebe4bc0d --- /dev/null +++ b/libjava/java/net/URL$1.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URL$1__ +#define __java_net_URL$1__ + +#pragma interface + +#include +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: + ::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 00000000000..536d89ca1fb --- /dev/null +++ b/libjava/java/net/URL.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URL__ +#define __java_net_URL__ + +#pragma interface + +#include +#include + +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 *); + 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 00000000000..d7f57791125 --- /dev/null +++ b/libjava/java/net/URLClassLoader$1.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$1__ +#define __java_net_URLClassLoader$1__ + +#pragma interface + +#include +#include + +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: + ::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 00000000000..274d4c33a1e --- /dev/null +++ b/libjava/java/net/URLClassLoader$2.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$2__ +#define __java_net_URLClassLoader$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + 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: + ::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$CoreResource.h b/libjava/java/net/URLClassLoader$CoreResource.h new file mode 100644 index 00000000000..ff3314a33bf --- /dev/null +++ b/libjava/java/net/URLClassLoader$CoreResource.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$CoreResource__ +#define __java_net_URLClassLoader$CoreResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + class Core; + } + } + namespace java + { + namespace net + { + class URL; + class URLClassLoader$CoreResource; + class URLClassLoader$CoreURLLoader; + } + } +} + +class java::net::URLClassLoader$CoreResource : public ::java::net::URLClassLoader$Resource +{ + +public: // actually package-private + URLClassLoader$CoreResource(::java::net::URLClassLoader$CoreURLLoader *, ::java::lang::String *, ::gnu::gcj::Core *); + ::java::io::InputStream * getInputStream(); +public: + jint getLength(); + ::java::net::URL * getURL(); +private: + ::gnu::gcj::Core * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$Resource)))) core; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$CoreResource__ diff --git a/libjava/java/net/URLClassLoader$CoreURLLoader.h b/libjava/java/net/URLClassLoader$CoreURLLoader.h new file mode 100644 index 00000000000..3c701cddf3a --- /dev/null +++ b/libjava/java/net/URLClassLoader$CoreURLLoader.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$CoreURLLoader__ +#define __java_net_URLClassLoader$CoreURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLClassLoader$CoreURLLoader; + class URLClassLoader$Resource; + } + } +} + +class java::net::URLClassLoader$CoreURLLoader : public ::java::net::URLClassLoader$URLLoader +{ + +public: // actually package-private + URLClassLoader$CoreURLLoader(::java::net::URLClassLoader *, ::java::net::URL *); + ::java::net::URLClassLoader$Resource * getResource(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$URLLoader)))) dir; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$CoreURLLoader__ diff --git a/libjava/java/net/URLClassLoader$FileResource.h b/libjava/java/net/URLClassLoader$FileResource.h new file mode 100644 index 00000000000..a98e9bf223a --- /dev/null +++ b/libjava/java/net/URLClassLoader$FileResource.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$FileResource__ +#define __java_net_URLClassLoader$FileResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader$FileResource; + class URLClassLoader$FileURLLoader; + } + } +} + +class java::net::URLClassLoader$FileResource : public ::java::net::URLClassLoader$Resource +{ + +public: // actually package-private + URLClassLoader$FileResource(::java::net::URLClassLoader$FileURLLoader *, ::java::io::File *); + ::java::io::InputStream * getInputStream(); +public: + jint getLength(); + ::java::net::URL * getURL(); +public: // actually package-private + ::java::io::File * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$Resource)))) file; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$FileResource__ diff --git a/libjava/java/net/URLClassLoader$FileURLLoader.h b/libjava/java/net/URLClassLoader$FileURLLoader.h new file mode 100644 index 00000000000..ff0b7dc7ce6 --- /dev/null +++ b/libjava/java/net/URLClassLoader$FileURLLoader.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$FileURLLoader__ +#define __java_net_URLClassLoader$FileURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLClassLoader$FileURLLoader; + class URLClassLoader$Resource; + } + } +} + +class java::net::URLClassLoader$FileURLLoader : public ::java::net::URLClassLoader$URLLoader +{ + +public: // actually package-private + URLClassLoader$FileURLLoader(::java::net::URLClassLoader *, ::java::net::URL *, ::java::net::URL *); + ::java::net::URLClassLoader$Resource * getResource(::java::lang::String *); + ::java::io::File * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$URLLoader)))) dir; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$FileURLLoader__ diff --git a/libjava/java/net/URLClassLoader$JarURLLoader.h b/libjava/java/net/URLClassLoader$JarURLLoader.h new file mode 100644 index 00000000000..f1a36153a2c --- /dev/null +++ b/libjava/java/net/URLClassLoader$JarURLLoader.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$JarURLLoader__ +#define __java_net_URLClassLoader$JarURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLClassLoader$JarURLLoader; + class URLClassLoader$Resource; + } + } +} + +class java::net::URLClassLoader$JarURLLoader : public ::java::net::URLClassLoader$URLLoader +{ + +public: + URLClassLoader$JarURLLoader(::java::net::URLClassLoader *, ::java::net::URL *, ::java::net::URL *); +public: // actually package-private + ::java::net::URLClassLoader$Resource * getResource(::java::lang::String *); + ::java::util::jar::Manifest * getManifest(); + ::java::util::Vector * getClassPath(); + ::java::util::jar::JarFile * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$URLLoader)))) jarfile; + ::java::net::URL * baseJarURL; + ::java::util::Vector * classPath; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$JarURLLoader__ diff --git a/libjava/java/net/URLClassLoader$JarURLResource.h b/libjava/java/net/URLClassLoader$JarURLResource.h new file mode 100644 index 00000000000..0db0fdeec99 --- /dev/null +++ b/libjava/java/net/URLClassLoader$JarURLResource.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$JarURLResource__ +#define __java_net_URLClassLoader$JarURLResource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader$JarURLLoader; + class URLClassLoader$JarURLResource; + } + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class java::net::URLClassLoader$JarURLResource : public ::java::net::URLClassLoader$Resource +{ + +public: // actually package-private + URLClassLoader$JarURLResource(::java::net::URLClassLoader$JarURLLoader *, ::java::lang::String *, ::java::util::jar::JarEntry *); + ::java::io::InputStream * getInputStream(); + jint getLength(); + JArray< ::java::security::cert::Certificate * > * getCertificates(); + ::java::net::URL * getURL(); +private: + ::java::util::jar::JarEntry * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$Resource)))) entry; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$JarURLResource__ diff --git a/libjava/java/net/URLClassLoader$RemoteResource.h b/libjava/java/net/URLClassLoader$RemoteResource.h new file mode 100644 index 00000000000..10d2622c9fe --- /dev/null +++ b/libjava/java/net/URLClassLoader$RemoteResource.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$RemoteResource__ +#define __java_net_URLClassLoader$RemoteResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader$RemoteResource; + class URLClassLoader$RemoteURLLoader; + } + } +} + +class java::net::URLClassLoader$RemoteResource : public ::java::net::URLClassLoader$Resource +{ + +public: // actually package-private + URLClassLoader$RemoteResource(::java::net::URLClassLoader$RemoteURLLoader *, ::java::lang::String *, ::java::net::URL *, ::java::io::InputStream *, jint); + ::java::io::InputStream * getInputStream(); +public: + jint getLength(); + ::java::net::URL * getURL(); +private: + ::java::net::URL * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$Resource)))) url; + ::java::io::InputStream * stream; + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$RemoteResource__ diff --git a/libjava/java/net/URLClassLoader$RemoteURLLoader.h b/libjava/java/net/URLClassLoader$RemoteURLLoader.h new file mode 100644 index 00000000000..7c2876b4ef6 --- /dev/null +++ b/libjava/java/net/URLClassLoader$RemoteURLLoader.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$RemoteURLLoader__ +#define __java_net_URLClassLoader$RemoteURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLClassLoader$RemoteURLLoader; + class URLClassLoader$Resource; + } + } +} + +class java::net::URLClassLoader$RemoteURLLoader : public ::java::net::URLClassLoader$URLLoader +{ + +public: // actually package-private + URLClassLoader$RemoteURLLoader(::java::net::URLClassLoader *, ::java::net::URL *); + ::java::net::URLClassLoader$Resource * getResource(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$URLLoader)))) protocol; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$RemoteURLLoader__ diff --git a/libjava/java/net/URLClassLoader$Resource.h b/libjava/java/net/URLClassLoader$Resource.h new file mode 100644 index 00000000000..7fc102a9224 --- /dev/null +++ b/libjava/java/net/URLClassLoader$Resource.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$Resource__ +#define __java_net_URLClassLoader$Resource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader$Resource; + class URLClassLoader$URLLoader; + } + namespace security + { + class CodeSource; + namespace cert + { + class Certificate; + } + } + } +} + +class java::net::URLClassLoader$Resource : public ::java::lang::Object +{ + +public: // actually package-private + URLClassLoader$Resource(::java::net::URLClassLoader$URLLoader *); + virtual ::java::security::CodeSource * getCodeSource(); + virtual JArray< ::java::security::cert::Certificate * > * getCertificates(); + virtual ::java::net::URL * getURL() = 0; + virtual jint getLength() = 0; + virtual ::java::io::InputStream * getInputStream() = 0; + ::java::net::URLClassLoader$URLLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loader; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$Resource__ diff --git a/libjava/java/net/URLClassLoader$SoResource.h b/libjava/java/net/URLClassLoader$SoResource.h new file mode 100644 index 00000000000..dce7601125f --- /dev/null +++ b/libjava/java/net/URLClassLoader$SoResource.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$SoResource__ +#define __java_net_URLClassLoader$SoResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader$SoResource; + class URLClassLoader$SoURLLoader; + } + } +} + +class java::net::URLClassLoader$SoResource : public ::java::net::URLClassLoader$Resource +{ + +public: // actually package-private + URLClassLoader$SoResource(::java::net::URLClassLoader$SoURLLoader *, ::java::net::URL *); + ::java::io::InputStream * getInputStream(); +public: + jint getLength(); + ::java::net::URL * getURL(); +public: // actually package-private + ::java::net::URL * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$Resource)))) url; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$SoResource__ diff --git a/libjava/java/net/URLClassLoader$SoURLLoader.h b/libjava/java/net/URLClassLoader$SoURLLoader.h new file mode 100644 index 00000000000..85d2d2e991a --- /dev/null +++ b/libjava/java/net/URLClassLoader$SoURLLoader.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$SoURLLoader__ +#define __java_net_URLClassLoader$SoURLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace gcj + { + namespace runtime + { + class SharedLibHelper; + } + } + } + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLClassLoader$Resource; + class URLClassLoader$SoURLLoader; + } + } +} + +class java::net::URLClassLoader$SoURLLoader : public ::java::net::URLClassLoader$URLLoader +{ + +public: // actually package-private + URLClassLoader$SoURLLoader(::java::net::URLClassLoader *, ::java::net::URL *); + URLClassLoader$SoURLLoader(::java::net::URLClassLoader *, ::java::net::URL *, ::java::net::URL *); + ::java::lang::Class * getClass(::java::lang::String *); + ::java::net::URLClassLoader$Resource * getResource(::java::lang::String *); + ::gnu::gcj::runtime::SharedLibHelper * __attribute__((aligned(__alignof__( ::java::net::URLClassLoader$URLLoader)))) helper; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$SoURLLoader__ diff --git a/libjava/java/net/URLClassLoader$URLLoader.h b/libjava/java/net/URLClassLoader$URLLoader.h new file mode 100644 index 00000000000..f205d74b3db --- /dev/null +++ b/libjava/java/net/URLClassLoader$URLLoader.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader$URLLoader__ +#define __java_net_URLClassLoader$URLLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLClassLoader$Resource; + class URLClassLoader$URLLoader; + } + namespace security + { + class CodeSource; + } + } +} + +class java::net::URLClassLoader$URLLoader : public ::java::lang::Object +{ + +public: // actually package-private + URLClassLoader$URLLoader(::java::net::URLClassLoader *, ::java::net::URL *); + URLClassLoader$URLLoader(::java::net::URLClassLoader *, ::java::net::URL *, ::java::net::URL *); + virtual ::java::lang::Class * getClass(::java::lang::String *); + virtual ::java::net::URLClassLoader$Resource * getResource(::java::lang::String *) = 0; + virtual ::java::util::jar::Manifest * getManifest(); + virtual ::java::util::Vector * getClassPath(); + ::java::net::URLClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) classloader; + ::java::net::URL * baseURL; + ::java::security::CodeSource * noCertCodeSource; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_net_URLClassLoader$URLLoader__ diff --git a/libjava/java/net/URLClassLoader.h b/libjava/java/net/URLClassLoader.h new file mode 100644 index 00000000000..25fe59ab785 --- /dev/null +++ b/libjava/java/net/URLClassLoader.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_net_URLClassLoader__ +#define __java_net_URLClassLoader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLClassLoader; + class URLClassLoader$Resource; + class URLStreamHandler; + 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: + ::java::net::URLClassLoader$Resource * findURLResource(::java::lang::String *); +public: + virtual ::java::net::URL * findResource(::java::lang::String *); +public: // actually package-private + virtual ::java::net::URLStreamHandler * getURLStreamHandler(::java::lang::String *); +public: + 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 ::java::util::HashMap * urlloaders; + static ::java::util::HashMap * factoryCache; + ::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/URLClassLoader.java b/libjava/java/net/URLClassLoader.java index 06db7d58217..fd70fdf2045 100644 --- a/libjava/java/net/URLClassLoader.java +++ b/libjava/java/net/URLClassLoader.java @@ -1080,7 +1080,10 @@ public class URLClassLoader extends SecureClassLoader if (resource == null) { String message = className + " not found"; - if (runtimeInitialized()) + // Calling this.toString() during VM startup when a + // security manager is in force causes the stack to + // be unwound before it can properly be decoded. + if (Thread.currentThread() != null) message += " in " + this; throw new ClassNotFoundException(message); } @@ -1442,11 +1445,4 @@ public class URLClassLoader extends SecureClassLoader return loader; } } - - /** - * Tell whether runtime initialization is complete. - * - * @return whether runtime initialization is complete. - */ - private static native boolean runtimeInitialized(); } diff --git a/libjava/java/net/URLConnection.h b/libjava/java/net/URLConnection.h new file mode 100644 index 00000000000..c40d9598b9d --- /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 +#include + +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 00000000000..a6586cf741a --- /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 +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 00000000000..87b3c574f78 --- /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 +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 00000000000..ebcd44159c2 --- /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 +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 00000000000..dde45e239a2 --- /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 +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 00000000000..965d439f3bf --- /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 +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 00000000000..1bdc8021c3d --- /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 +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 00000000000..e093e2c2e9c --- /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 +#include + +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/VMNetworkInterface.h b/libjava/java/net/VMNetworkInterface.h new file mode 100644 index 00000000000..792c5337a57 --- /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 +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/VMURLConnection.h b/libjava/java/net/VMURLConnection.h new file mode 100644 index 00000000000..0c0828ae457 --- /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 +#include + +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 index 6555e8cbafe..19bf5814e67 100644 --- a/libjava/java/net/VMURLConnection.java +++ b/libjava/java/net/VMURLConnection.java @@ -47,14 +47,17 @@ final class VMURLConnection { public static final int LENGTH = 1024; - // private static native void init(); - - private static String guessContentTypeFromBuffer(byte[] b, int valid) + static { - // FIXME - write real implementation - return null; + 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 diff --git a/libjava/java/net/natURLClassLoader.cc b/libjava/java/net/natURLClassLoader.cc deleted file mode 100644 index ead0db44aff..00000000000 --- a/libjava/java/net/natURLClassLoader.cc +++ /dev/null @@ -1,22 +0,0 @@ -// natURLClassLoader.cc -- Native part of the URLClassLoader 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 - -#include -#include - -#include - -jboolean -java::net::URLClassLoader::runtimeInitialized () -{ - return gcj::runtimeInitialized; -} diff --git a/libjava/java/net/natVMURLConnection.cc b/libjava/java/net/natVMURLConnection.cc new file mode 100644 index 00000000000..3429bb63dba --- /dev/null +++ b/libjava/java/net/natVMURLConnection.cc @@ -0,0 +1,56 @@ +/* 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 + +#include +#include +#include + +#if defined (HAVE_MAGIC_H) && defined (HAVE_MAGIC_OPEN) + +#include + +static magic_t cookie; + +#endif /* HAVE_MAGIC_H && HAVE_MAGIC_OPEN */ + +void +java::net::VMURLConnection::init () +{ +#if defined (HAVE_MAGIC_H) && defined (HAVE_MAGIC_OPEN) + cookie = magic_open (MAGIC_MIME); + if (cookie == (magic_t) NULL) + return; + if (magic_load (cookie, NULL) == -1) + { + magic_close (cookie); + cookie = (magic_t) NULL; + } +#endif /* HAVE_MAGIC_H && HAVE_MAGIC_OPEN */ +} + +::java::lang::String * +java::net::VMURLConnection::guessContentTypeFromBuffer (jbyteArray bytes, + jint valid) +{ +#if defined (HAVE_MAGIC_H) && defined (HAVE_MAGIC_OPEN) + const char *result; + + if (cookie == (magic_t) NULL) + return NULL; + + result = magic_buffer (cookie, elements(bytes), valid); + + if (result == NULL) + return NULL; + return _Jv_NewStringUTF (result); +#else + return NULL; +#endif /* HAVE_MAGIC_H && HAVE_MAGIC_OPEN */ +} diff --git a/libjava/java/nio/Buffer.h b/libjava/java/nio/Buffer.h new file mode 100644 index 00000000000..fd985db9421 --- /dev/null +++ b/libjava/java/nio/Buffer.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_Buffer__ +#define __java_nio_Buffer__ + +#pragma interface + +#include +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); +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); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cap; + 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/BufferOverflowException.h b/libjava/java/nio/BufferOverflowException.h new file mode 100644 index 00000000000..2c2a8c2c4fb --- /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 +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 00000000000..6b52f20c74c --- /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 +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 00000000000..08f821b2825 --- /dev/null +++ b/libjava/java/nio/ByteBuffer.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_ByteBuffer__ +#define __java_nio_ByteBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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); +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 target$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; + jint array_offset; + JArray< jbyte > * backing_buffer; +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 00000000000..851b57aad61 --- /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 +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 00000000000..12621a0c74f --- /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 +#include + +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 00000000000..730cb7fd90a --- /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 +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 00000000000..9ab6d7e21f1 --- /dev/null +++ b/libjava/java/nio/CharBuffer.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_CharBuffer__ +#define __java_nio_CharBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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); +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 target$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 * target$append(jchar); + virtual ::java::nio::CharBuffer * target$append(::java::lang::CharSequence *); + virtual ::java::nio::CharBuffer * target$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 00000000000..4cbf50ec305 --- /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 +#include + +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/CharViewBufferImpl.h b/libjava/java/nio/CharViewBufferImpl.h new file mode 100644 index 00000000000..fbde2de15ee --- /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 +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 00000000000..f94c05ace88 --- /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 +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 00000000000..aa8c5ad0a74 --- /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 +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 00000000000..b5a566907e9 --- /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 +#include + +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/DoubleBuffer.h b/libjava/java/nio/DoubleBuffer.h new file mode 100644 index 00000000000..4fb0ef033e2 --- /dev/null +++ b/libjava/java/nio/DoubleBuffer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_DoubleBuffer__ +#define __java_nio_DoubleBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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); +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 target$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 00000000000..f87e69c05f0 --- /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 +#include + +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 00000000000..778a0aca25b --- /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 +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 00000000000..61c02144b98 --- /dev/null +++ b/libjava/java/nio/FloatBuffer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_FloatBuffer__ +#define __java_nio_FloatBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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); +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 target$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 00000000000..6dad3a9b1d7 --- /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 +#include + +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 00000000000..5ba181b5aec --- /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 +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 00000000000..0922342cb25 --- /dev/null +++ b/libjava/java/nio/IntBuffer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_IntBuffer__ +#define __java_nio_IntBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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); +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 target$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 00000000000..2492f028f10 --- /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 +#include + +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 00000000000..8dfe695e25d --- /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 +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 00000000000..7b095c2cdce --- /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 +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 00000000000..f100e050e7f --- /dev/null +++ b/libjava/java/nio/LongBuffer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_LongBuffer__ +#define __java_nio_LongBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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); +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 target$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 00000000000..ad28128bd41 --- /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 +#include + +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 00000000000..59e678c0fdf --- /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 +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 00000000000..563a9662e30 --- /dev/null +++ b/libjava/java/nio/MappedByteBuffer.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_MappedByteBuffer__ +#define __java_nio_MappedByteBuffer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace nio + { + class MappedByteBuffer; + } + } +} + +class java::nio::MappedByteBuffer : public ::java::nio::ByteBuffer +{ + +public: // actually package-private + MappedByteBuffer(jint, jint, jint, jint); + 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: + virtual void finalize(); + 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 00000000000..e678d49fb73 --- /dev/null +++ b/libjava/java/nio/MappedByteBufferImpl.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_MappedByteBufferImpl__ +#define __java_nio_MappedByteBufferImpl__ + +#pragma interface + +#include +#include + +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(); + 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/ReadOnlyBufferException.h b/libjava/java/nio/ReadOnlyBufferException.h new file mode 100644 index 00000000000..58fe414ffb4 --- /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 +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 00000000000..27b9814a811 --- /dev/null +++ b/libjava/java/nio/ShortBuffer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_ShortBuffer__ +#define __java_nio_ShortBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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); +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 target$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 00000000000..a4150a8e909 --- /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 +#include + +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 00000000000..179cc32c564 --- /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 +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 00000000000..2434caf194d --- /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 +#include + +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/channels/AlreadyConnectedException.h b/libjava/java/nio/channels/AlreadyConnectedException.h new file mode 100644 index 00000000000..08d6d479ea9 --- /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 +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 00000000000..bfcbf2eb46c --- /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 +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 00000000000..a813648137a --- /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 +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 00000000000..742185f1fd7 --- /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 +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 00000000000..fc0177d6f78 --- /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 +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 00000000000..384156483e0 --- /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 +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 00000000000..742dddc6048 --- /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 +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 00000000000..3bca678e5a2 --- /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 +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 00000000000..80b821ed41a --- /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 +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 00000000000..29f48307124 --- /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 +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 00000000000..cb2dabcc0fa --- /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 +#include + +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 00000000000..954e6979e96 --- /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 +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 00000000000..10cc314ccb9 --- /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 +#include + +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 00000000000..fb358583518 --- /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 +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 00000000000..ad5e250765a --- /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 +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 00000000000..c69c1954aff --- /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 +#include + +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 00000000000..38eda03799b --- /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 +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 00000000000..9f137e423b7 --- /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 +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 00000000000..fa8a68385de --- /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 +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 00000000000..5be57aefd7c --- /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 +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 00000000000..210d8369b1d --- /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 +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 00000000000..4a56ef98898 --- /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 +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 00000000000..d4f1ad2d66e --- /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 +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 00000000000..a38417a8271 --- /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 +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 00000000000..b2551f9070c --- /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 +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 00000000000..d6842b79b2b --- /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 +#include + +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 00000000000..9bc78ea3bfa --- /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 +#include + +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 00000000000..771dca23e3e --- /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 +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 00000000000..9f3e4cf0168 --- /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 +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 00000000000..eeba864d41a --- /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 +#include + +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 00000000000..82cf8288007 --- /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 +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 00000000000..1b6b0397467 --- /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 +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 00000000000..7d561adff4a --- /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 +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 00000000000..b68d0b9a5b8 --- /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 +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 00000000000..b742cdbdc53 --- /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 +#include + +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 00000000000..2a3eefdce25 --- /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 +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 00000000000..7f63dd76ede --- /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 +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 00000000000..3706d9d8510 --- /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 +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/WritableByteChannel.h b/libjava/java/nio/channels/WritableByteChannel.h new file mode 100644 index 00000000000..ff413d27aae --- /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 +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/spi/AbstractInterruptibleChannel.h b/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.h new file mode 100644 index 00000000000..f830a752bfd --- /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 +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 00000000000..f126f441e22 --- /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 +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 00000000000..d64a73bfd31 --- /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 +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 00000000000..cf3d2b7c414 --- /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 +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 00000000000..6dcf15c5fb4 --- /dev/null +++ b/libjava/java/nio/channels/spi/SelectorProvider.h @@ -0,0 +1,50 @@ + +// 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 +extern "Java" +{ + namespace java + { + namespace nio + { + namespace channels + { + 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; + 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 00000000000..35935cd1fb3 --- /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 +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 00000000000..62e4f647d7c --- /dev/null +++ b/libjava/java/nio/charset/Charset.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_charset_Charset__ +#define __java_nio_charset_Charset__ + +#pragma interface + +#include +#include + +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 compareTo(::java::lang::Object *); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +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/CharsetDecoder.h b/libjava/java/nio/charset/CharsetDecoder.h new file mode 100644 index 00000000000..fe75d48a532 --- /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 +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 00000000000..5a64e44f748 --- /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 +#include + +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 00000000000..b3ae83adf21 --- /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 +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 00000000000..a822a3fe1f9 --- /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 +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 + ::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 00000000000..15eae195815 --- /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 +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 + ::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 00000000000..38416bd9e22 --- /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 +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 00000000000..e2c84a61c16 --- /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 +#include + +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 00000000000..c0bf2aa666b --- /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 +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 00000000000..c4b42474fc6 --- /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 +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 00000000000..03a6d8d9860 --- /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 +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 00000000000..f0ced263f33 --- /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 +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 00000000000..7f09678feee --- /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 +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 00000000000..b194e106b4c --- /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 +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/rmi/AccessException.h b/libjava/java/rmi/AccessException.h new file mode 100644 index 00000000000..1b49620a9b3 --- /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 +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 00000000000..f24f4f906ff --- /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 +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 00000000000..a992a0471c6 --- /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 +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 00000000000..c841a61fd44 --- /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 +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 00000000000..db8ed5e1a81 --- /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 +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 00000000000..e287ab26c33 --- /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 +#include + +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 00000000000..ac47cea0d0c --- /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 +#include + +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 00000000000..0f02109e831 --- /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 +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 00000000000..1bdb01737cc --- /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 +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 00000000000..f3207f5e287 --- /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 +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 00000000000..267543e684d --- /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 +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 00000000000..f74cf3cbaf0 --- /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 +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 00000000000..1e52132141e --- /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 +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 00000000000..3c31a49495c --- /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 +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 00000000000..958445a88ae --- /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 +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 00000000000..42dff2da683 --- /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 +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 00000000000..79fcaf43ddf --- /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 +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 00000000000..e6154b47fb2 --- /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 +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 00000000000..a516ebc2642 --- /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 +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 00000000000..0e6c471c8a2 --- /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 +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 00000000000..63f82979fe8 --- /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 +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 *); +public: + 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 00000000000..7d231a245f2 --- /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 +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 00000000000..618997bc392 --- /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 +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 00000000000..81f55e23e8e --- /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 +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 00000000000..b9bf86d28d1 --- /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 +#include + +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 00000000000..f1cc4955817 --- /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 +#include + +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 00000000000..8229e57feb1 --- /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 +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 00000000000..be942fef7c7 --- /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 +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 00000000000..4dc223cb3aa --- /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 +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 00000000000..831962e7cab --- /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 +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 00000000000..5249407e87f --- /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 +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 00000000000..a41dc6340ad --- /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 +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 00000000000..cb4f1458e0a --- /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 +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 00000000000..7976abc8307 --- /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 +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 00000000000..27afe4cfbcc --- /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 +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 00000000000..9bda5977cfd --- /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 +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 00000000000..b240c1acb5f --- /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 +#include + +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 00000000000..e3ad0bf4592 --- /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 +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 00000000000..082553bc1c7 --- /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 +#include + +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 00000000000..75b0b4a65b5 --- /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 +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 00000000000..470ef2bf4a1 --- /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 +#include + +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 00000000000..cd29094023e --- /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 +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 00000000000..471a944d2f4 --- /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 +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 00000000000..6b515f79599 --- /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 +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 00000000000..6dfcfbf7392 --- /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 +#include + +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 00000000000..f830f0f4d41 --- /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 +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 00000000000..e7b70ecd11d --- /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 +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 00000000000..1d29dfd6172 --- /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 +#include + +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 00000000000..978a11a0801 --- /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 +#include + +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 00000000000..4a0731962c3 --- /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 +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 00000000000..da177a063b9 --- /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 +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 00000000000..daf42af5633 --- /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 +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 00000000000..f79b04cc449 --- /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 +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 00000000000..e416f0b81c0 --- /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 +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 00000000000..5a35b02c8ab --- /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 +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 00000000000..babacb8b3bf --- /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 +#include + +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 00000000000..e73eb3ca676 --- /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 +#include + +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 00000000000..9822a79a825 --- /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 +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 00000000000..75e1a7fd7b1 --- /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 +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 00000000000..37d027cd8fd --- /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 +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 00000000000..6064177a692 --- /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 +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 00000000000..d0c37822ed9 --- /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 +#include + +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 00000000000..492385b77c0 --- /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 +#include + +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 00000000000..6d5d49218bf --- /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 +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 00000000000..f4030294c2b --- /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 +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 00000000000..39c34411c55 --- /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 +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 00000000000..85887ea3f76 --- /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 +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 00000000000..274507ff963 --- /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 +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 00000000000..70f802a7a8d --- /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 +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 00000000000..e83852a7719 --- /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 +#include + +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 00000000000..1dcd122cae2 --- /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 +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 00000000000..96cc367c718 --- /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 +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 00000000000..02c9dbf3d7c --- /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 +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 00000000000..c40dfd3df6d --- /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 +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 00000000000..630b0431216 --- /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 +#include + +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 00000000000..a3c26967758 --- /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 +#include + +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 00000000000..bf88353dbca --- /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 +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 00000000000..7700a935029 --- /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 +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 00000000000..a2d14544ce5 --- /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 +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 00000000000..36838628717 --- /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 +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 00000000000..9c7af28426c --- /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 +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 00000000000..35dffd9ab59 --- /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 +#include + +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 00000000000..d216415c915 --- /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 +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 00000000000..b112ad2c548 --- /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 +#include + +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 00000000000..5c1605c76f7 --- /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 +#include + +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 00000000000..18906b929b0 --- /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 +#include + +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 00000000000..c0f35818b54 --- /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 +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 00000000000..431096dfe6b --- /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 +#include + +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 00000000000..34547473fed --- /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 +#include + +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 00000000000..6b309b5ebeb --- /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 +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 00000000000..07cc6437d86 --- /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 +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 00000000000..379651249b2 --- /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 +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 00000000000..8208e7ff67e --- /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 +#include + +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 00000000000..90a49303121 --- /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 +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 00000000000..f192c261511 --- /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 +#include + +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 00000000000..8ff0d7ed314 --- /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 +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 00000000000..f79473c40bc --- /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 +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 00000000000..fd9c9a73279 --- /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 +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 00000000000..630f8123b0f --- /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 +#include + +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 00000000000..0d3ce513843 --- /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 +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 00000000000..adcec17f7ab --- /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 +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 00000000000..518893b59a6 --- /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 +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 00000000000..20d6964f98d --- /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 +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 00000000000..c6c607bb0e6 --- /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 +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 00000000000..f1bef60c54c --- /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 +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 00000000000..0aa4389e5eb --- /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 +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 00000000000..80f79814aa4 --- /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 +#include + +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 00000000000..e056a68a7bc --- /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 +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 00000000000..054cea6f125 --- /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 +#include + +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 00000000000..5cd6cf3b1a5 --- /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 +#include + +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 00000000000..fea06bf497e --- /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 +#include + +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 00000000000..413821e727a --- /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 +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 00000000000..16878c33712 --- /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 +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 00000000000..c565f2b58e9 --- /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 +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 00000000000..868c23e0e4e --- /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 +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 00000000000..d14b456d1f8 --- /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 +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: + jboolean hasMoreElements(); + ::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 00000000000..870065a4bd3 --- /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 +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 00000000000..5484fa980f9 --- /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 +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 00000000000..11620954484 --- /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 +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 00000000000..e3cfb312677 --- /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 +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 00000000000..2be7e63955e --- /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 +#include + +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 00000000000..17481fd002a --- /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 +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 00000000000..165a1c59752 --- /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 +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 00000000000..bfb3046e567 --- /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 +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 00000000000..7f204667a85 --- /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 +#include + +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 00000000000..5954805f8d0 --- /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 +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 00000000000..843a100abdf --- /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 +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 00000000000..6a2a72bd89a --- /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 +#include + +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 00000000000..c8431a7bc7f --- /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 +#include + +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 00000000000..58561abbc1c --- /dev/null +++ b/libjava/java/security/SecureRandom.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_security_SecureRandom__ +#define __java_security_SecureRandom__ + +#pragma interface + +#include +#include + +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 jint generateSeed(JArray< jbyte > *); + static jint generateSeed(JArray< jbyte > *, jint, jint); + 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; + static ::java::lang::String * SECURERANDOM_SOURCE; + static ::java::lang::String * JAVA_SECURITY_EGD; + static ::java::util::logging::Logger * logger; +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 00000000000..8b2b6d7d1da --- /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 +#include + +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 00000000000..201c9957ded --- /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 +#include + +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/Security.java b/libjava/java/security/Security.java deleted file mode 100644 index 630a55412db..00000000000 --- a/libjava/java/security/Security.java +++ /dev/null @@ -1,714 +0,0 @@ -/* Security.java --- Java base security class implementation - Copyright (C) 1999, 2001, 2002, 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.security; - -import gnu.classpath.SystemProperties; - -import gnu.classpath.Configuration; -// GCJ LOCAL - We don't have VMStackWalker yet. -// import gnu.classpath.VMStackWalker; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - -/** - * This class centralizes all security properties and common security methods. - * One of its primary uses is to manage security providers. - * - * @author Mark Benvenuto (ivymccough@worldnet.att.net) - */ -public final class Security -{ - private static final String ALG_ALIAS = "Alg.Alias."; - - private static Vector providers = new Vector(); - private static Properties secprops = new Properties(); - - static - { - String base = SystemProperties.getProperty("gnu.classpath.home.url"); - String vendor = SystemProperties.getProperty("gnu.classpath.vm.shortname"); - - // Try VM specific security file - boolean loaded = loadProviders (base, vendor); - - // Append classpath standard provider if possible - if (!loadProviders (base, "classpath") - && !loaded - && providers.size() == 0) - { - if (Configuration.DEBUG) - { - /* No providers found and both security files failed to - * load properly. Give a warning in case of DEBUG is - * enabled. Could be done with java.util.logging later. - */ - System.err.println - ("WARNING: could not properly read security provider files:"); - System.err.println - (" " + base + "/security/" + vendor - + ".security"); - System.err.println - (" " + base + "/security/" + "classpath" - + ".security"); - System.err.println - (" Falling back to standard GNU security provider"); - } - // Note that this matches our classpath.security file. - providers.addElement (new gnu.java.security.provider.Gnu()); - providers.addElement(new gnu.javax.crypto.jce.GnuCrypto()); - providers.addElement(new gnu.javax.crypto.jce.GnuSasl()); - providers.addElement(new gnu.javax.net.ssl.provider.Jessie()); - providers.addElement(new gnu.javax.security.auth.callback.GnuCallbacks()); - } - } - // This class can't be instantiated. - private Security() - { - } - - /** - * Tries to load the vender specific security providers from the given base - * URL. Returns true if the resource could be read and completely parsed - * successfully, false otherwise. - */ - private static boolean loadProviders(String baseUrl, String vendor) - { - if (baseUrl == null || vendor == null) - return false; - - boolean result = true; - String secfilestr = baseUrl + "/security/" + vendor + ".security"; - try - { - InputStream fin = new URL(secfilestr).openStream(); - secprops.load(fin); - - int i = 1; - String name; - while ((name = secprops.getProperty("security.provider." + i)) != null) - { - Exception exception = null; - try - { - ClassLoader sys = ClassLoader.getSystemClassLoader(); - providers.addElement(Class.forName(name, true, sys).newInstance()); - } - catch (ClassNotFoundException x) - { - exception = x; - } - catch (InstantiationException x) - { - exception = x; - } - catch (IllegalAccessException x) - { - exception = x; - } - - if (exception != null) - { - System.err.println ("WARNING: Error loading security provider " - + name + ": " + exception); - result = false; - } - i++; - } - } - catch (IOException ignored) - { - result = false; - } - - return result; - } - - /** - * Returns the value associated to a designated property name for a given - * algorithm. - * - * @param algName - * the algorithm name. - * @param propName - * the name of the property to return. - * @return the value of the specified property or null if none - * found. - * @deprecated Use the provider-based and algorithm-independent - * {@link AlgorithmParameters} and {@link KeyFactory} engine - * classes instead. - */ - public static String getAlgorithmProperty(String algName, String propName) - { - if (algName == null || propName == null) - return null; - - String property = String.valueOf(propName) + "." + String.valueOf(algName); - Provider p; - for (Iterator i = providers.iterator(); i.hasNext(); ) - { - p = (Provider) i.next(); - for (Iterator j = p.keySet().iterator(); j.hasNext(); ) - { - String key = (String) j.next(); - if (key.equalsIgnoreCase(property)) - return p.getProperty(key); - } - } - return null; - } - - /** - * Inserts a new designated {@link Provider} at a designated (1-based) - * position in the current list of installed {@link Provider}s, - * - * @param provider - * the new {@link Provider} to add. - * @param position - * the position (starting from 1) of where to install - * provider. - * @return the actual position, in the list of installed Providers. Returns - * -1 if provider was laready in the - * list. The actual position may be different than the desired - * position. - * @throws SecurityException - * if a {@link SecurityManager} is installed and it disallows this - * operation. - * @see #getProvider(String) - * @see #removeProvider(String) - * @see SecurityPermission - */ - public static int insertProviderAt(Provider provider, int position) - { - SecurityManager sm = System.getSecurityManager(); - if (sm != null) - sm.checkSecurityAccess("insertProvider." + provider.getName()); - - position--; - int max = providers.size (); - for (int i = 0; i < max; i++) - { - if (((Provider) providers.elementAt(i)).getName().equals(provider.getName())) - return -1; - } - - if (position < 0) - position = 0; - if (position > max) - position = max; - - providers.insertElementAt(provider, position); - - return position + 1; - } - - /** - * Appends the designated new {@link Provider} to the current list of - * installed {@link Provider}s. - * - * @param provider - * the new {@link Provider} to append. - * @return the position (starting from 1) of provider in the - * current list of {@link Provider}s, or -1 if - * provider was already there. - * @throws SecurityException - * if a {@link SecurityManager} is installed and it disallows this - * operation. - * @see #getProvider(String) - * @see #removeProvider(String) - * @see SecurityPermission - */ - public static int addProvider(Provider provider) - { - return insertProviderAt (provider, providers.size () + 1); - } - - /** - * Removes an already installed {@link Provider}, given its name, from the - * current list of installed {@link Provider}s. - * - * @param name - * the name of an already installed {@link Provider} to remove. - * @throws SecurityException - * if a {@link SecurityManager} is installed and it disallows this - * operation. - * @see #getProvider(String) - * @see #addProvider(Provider) - */ - public static void removeProvider(String name) - { - SecurityManager sm = System.getSecurityManager(); - if (sm != null) - sm.checkSecurityAccess("removeProvider." + name); - - int max = providers.size (); - for (int i = 0; i < max; i++) - { - if (((Provider) providers.elementAt(i)).getName().equals(name)) - { - providers.remove(i); - break; - } - } - } - - /** - * Returns the current list of installed {@link Provider}s as an array - * ordered according to their installation preference order. - * - * @return an array of all the installed providers. - */ - public static Provider[] getProviders() - { - Provider[] array = new Provider[providers.size ()]; - providers.copyInto (array); - return array; - } - - /** - * Returns an already installed {@link Provider} given its name. - * - * @param name - * the name of an already installed {@link Provider}. - * @return the {@link Provider} known by name. Returns - * null if the current list of {@link Provider}s does - * not include one named name. - * @see #removeProvider(String) - * @see #addProvider(Provider) - */ - public static Provider getProvider(String name) - { - if (name == null) - return null; - else - { - name = name.trim(); - if (name.length() == 0) - return null; - } - Provider p; - int max = providers.size (); - for (int i = 0; i < max; i++) - { - p = (Provider) providers.elementAt(i); - if (p.getName().equals(name)) - return p; - } - return null; - } - - /** - * Returns the value associated with a Security propery. - * - * @param key - * the key of the property to fetch. - * @return the value of the Security property associated with - * key. Returns null if no such property - * was found. - * @throws SecurityException - * if a {@link SecurityManager} is installed and it disallows this - * operation. - * @see #setProperty(String, String) - * @see SecurityPermission - */ - public static String getProperty(String key) - { - // GCJ LOCAL - We don't have VMStackWalker yet. - // XXX To prevent infinite recursion when the SecurityManager calls us, - // don't do a security check if the caller is trusted (by virtue of having - // been loaded by the bootstrap class loader). - SecurityManager sm = System.getSecurityManager(); - // if (sm != null && VMStackWalker.getCallingClassLoader() != null) - if (sm != null) - sm.checkSecurityAccess("getProperty." + key); - - return secprops.getProperty(key); - } - - /** - * Sets or changes a designated Security property to a designated value. - * - * @param key - * the name of the property to set. - * @param datum - * the new value of the property. - * @throws SecurityException - * if a {@link SecurityManager} is installed and it disallows this - * operation. - * @see #getProperty(String) - * @see SecurityPermission - */ - public static void setProperty(String key, String datum) - { - SecurityManager sm = System.getSecurityManager(); - if (sm != null) - sm.checkSecurityAccess("setProperty." + key); - - if (datum == null) - secprops.remove(key); - else - secprops.put(key, datum); - } - - /** - * For a given service (e.g. Signature, MessageDigest, etc...) this - * method returns the {@link Set} of all available algorithm names (instances - * of {@link String}, from all currently installed {@link Provider}s. - * - * @param serviceName - * the case-insensitive name of a service (e.g. Signature, - * MessageDigest, etc). - * @return a {@link Set} of {@link String}s containing the names of all - * algorithm names provided by all of the currently installed - * {@link Provider}s. - * @since 1.4 - */ - public static Set getAlgorithms(String serviceName) - { - HashSet result = new HashSet(); - if (serviceName == null || serviceName.length() == 0) - return result; - - serviceName = serviceName.trim(); - if (serviceName.length() == 0) - return result; - - serviceName = serviceName.toUpperCase()+"."; - Provider[] providers = getProviders(); - int ndx; - for (int i = 0; i < providers.length; i++) - for (Enumeration e = providers[i].propertyNames(); e.hasMoreElements(); ) - { - String service = ((String) e.nextElement()).trim(); - if (service.toUpperCase().startsWith(serviceName)) - { - service = service.substring(serviceName.length()).trim(); - ndx = service.indexOf(' '); // get rid of attributes - if (ndx != -1) - service = service.substring(0, ndx); - result.add(service); - } - } - return Collections.unmodifiableSet(result); - } - - /** - * Returns an array of currently installed {@link Provider}s, ordered - * according to their installation preference order, which satisfy a given - * selection criterion. - * - *

      This implementation recognizes a selection criterion written in - * one of two following forms:

      - * - *
        - *
      • <crypto_service>.<algorithm_or_type>: Where - * crypto_service is a case-insensitive string, similar to what has - * been described in the {@link #getAlgorithms(String)} method, and - * algorithm_or_type is a known case-insensitive name of an - * Algorithm, or one of its aliases. - * - *

        For example, "CertificateFactory.X.509" would return all the installed - * {@link Provider}s which provide a CertificateFactory - * implementation of X.509.

      • - * - *
      • <crypto_service>.<algorithm_or_type> <attribute_name>:<value>: - * Where crypto_service is a case-insensitive string, similar to what - * has been described in the {@link #getAlgorithms(String)} method, - * algorithm_or_type is a case-insensitive known name of an Algorithm - * or one of its aliases, attribute_name is a case-insensitive - * property name with no whitespace characters, and no dots, in-between, and - * value is a {@link String} with no whitespace characters in-between. - * - *

        For example, "Signature.Sha1WithDSS KeySize:1024" would return all the - * installed {@link Provider}s which declared their ability to provide - * Signature services, using the Sha1WithDSS algorithm with - * key sizes of 1024.

      • - *
      - * - * @param filter - * the selection criterion for selecting among the installed - * {@link Provider}s. - * @return all the installed {@link Provider}s which satisfy the selection - * criterion. Returns null if no installed - * {@link Provider}s were found which satisfy the selection - * criterion. Returns ALL installed {@link Provider}s if - * filter is null or is an empty string. - * @throws InvalidParameterException - * if an exception occurs while parsing the filter. - * @see #getProviders(Map) - */ - public static Provider[] getProviders(String filter) - { - if (providers == null || providers.isEmpty()) - return null; - - if (filter == null || filter.length() == 0) - return getProviders(); - - HashMap map = new HashMap(1); - int i = filter.indexOf(':'); - if (i == -1) // . - map.put(filter, ""); - else // . : - map.put(filter.substring(0, i), filter.substring(i+1)); - - return getProviders(map); - } - - /** - * Returns an array of currently installed {@link Provider}s which satisfy a - * set of selection criteria. - * - *

      The selection criteria are defined in a {@link Map} where each - * element specifies a selection querry. The Keys in this - * {@link Map} must be in one of the two following forms:

      - * - *
        - *
      • <crypto_service>.<algorithm_or_type>: Where - * crypto_service is a case-insensitive string, similar to what has - * been described in the {@link #getAlgorithms(String)} method, and - * algorithm_or_type is a case-insensitive known name of an - * Algorithm, or one of its aliases. The value of the entry in the - * {@link Map} for such a Key MUST be the empty string. - * {@link Provider}s which provide an implementation for the designated - * service algorithm are included in the result.
      • - * - *
      • <crypto_service>.<algorithm_or_type> <attribute_name>: - * Where crypto_service is a case-insensitive string, similar to what - * has been described in the {@link #getAlgorithms(String)} method, - * algorithm_or_type is a case-insensitive known name of an Algorithm - * or one of its aliases, and attribute_name is a case-insensitive - * property name with no whitespace characters, and no dots, in-between. The - * value of the entry in this {@link Map} for such a Key MUST - * NOT be null or an empty string. {@link Provider}s which - * declare the designated attribute_name and value for the - * designated service algorithm are included in the result.
      • - *
      - * - * @param filter - * a {@link Map} of selection querries. - * @return all currently installed {@link Provider}s which satisfy ALL the - * selection criteria defined in filter. - * Returns ALL installed {@link Provider}s if filter - * is null or empty. - * @throws InvalidParameterException - * if an exception is encountered while parsing the syntax of the - * {@link Map}'s keys. - * @see #getProviders(String) - */ - public static Provider[] getProviders(Map filter) - { - if (providers == null || providers.isEmpty()) - return null; - - if (filter == null) - return getProviders(); - - Set querries = filter.keySet(); - if (querries == null || querries.isEmpty()) - return getProviders(); - - LinkedHashSet result = new LinkedHashSet(providers); // assume all - int dot, ws; - String querry, service, algorithm, attribute, value; - LinkedHashSet serviceProviders = new LinkedHashSet(); // preserve insertion order - for (Iterator i = querries.iterator(); i.hasNext(); ) - { - querry = (String) i.next(); - if (querry == null) // all providers - continue; - - querry = querry.trim(); - if (querry.length() == 0) // all providers - continue; - - dot = querry.indexOf('.'); - if (dot == -1) // syntax error - throw new InvalidParameterException( - "missing dot in '" + String.valueOf(querry)+"'"); - - value = (String) filter.get(querry); - // deconstruct querry into [service, algorithm, attribute] - if (value == null || value.trim().length() == 0) // . - { - value = null; - attribute = null; - service = querry.substring(0, dot).trim(); - algorithm = querry.substring(dot+1).trim(); - } - else // . - { - ws = querry.indexOf(' '); - if (ws == -1) - throw new InvalidParameterException( - "value (" + String.valueOf(value) + - ") is not empty, but querry (" + String.valueOf(querry) + - ") is missing at least one space character"); - value = value.trim(); - attribute = querry.substring(ws+1).trim(); - // was the dot in the attribute? - if (attribute.indexOf('.') != -1) - throw new InvalidParameterException( - "attribute_name (" + String.valueOf(attribute) + - ") in querry (" + String.valueOf(querry) + ") contains a dot"); - - querry = querry.substring(0, ws).trim(); - service = querry.substring(0, dot).trim(); - algorithm = querry.substring(dot+1).trim(); - } - - // service and algorithm must not be empty - if (service.length() == 0) - throw new InvalidParameterException( - " in querry (" + String.valueOf(querry) + - ") is empty"); - - if (algorithm.length() == 0) - throw new InvalidParameterException( - " in querry (" + String.valueOf(querry) + - ") is empty"); - - selectProviders(service, algorithm, attribute, value, result, serviceProviders); - result.retainAll(serviceProviders); // eval next retaining found providers - if (result.isEmpty()) // no point continuing - break; - } - - if (result.isEmpty()) - return null; - - return (Provider[]) result.toArray(new Provider[result.size()]); - } - - private static void selectProviders(String svc, String algo, String attr, - String val, LinkedHashSet providerSet, - LinkedHashSet result) - { - result.clear(); // ensure we start with an empty result set - for (Iterator i = providerSet.iterator(); i.hasNext(); ) - { - Provider p = (Provider) i.next(); - if (provides(p, svc, algo, attr, val)) - result.add(p); - } - } - - private static boolean provides(Provider p, String svc, String algo, - String attr, String val) - { - Iterator it; - String serviceDotAlgorithm = null; - String key = null; - String realVal; - boolean found = false; - // if . is in the set then so is . - // but it may be stored under an alias . resolve - outer: for (int r = 0; r < 3; r++) // guard against circularity - { - serviceDotAlgorithm = (svc+"."+String.valueOf(algo)).trim(); - for (it = p.keySet().iterator(); it.hasNext(); ) - { - key = (String) it.next(); - if (key.equalsIgnoreCase(serviceDotAlgorithm)) // eureka - { - found = true; - break outer; - } - // it may be there but as an alias - if (key.equalsIgnoreCase(ALG_ALIAS + serviceDotAlgorithm)) - { - algo = p.getProperty(key); - continue outer; - } - // else continue inner - } - } - - if (!found) - return false; - - // found a candidate for the querry. do we have an attr to match? - if (val == null) // . querry - return true; - - // . ; find the key entry that match - String realAttr; - int limit = serviceDotAlgorithm.length() + 1; - for (it = p.keySet().iterator(); it.hasNext(); ) - { - key = (String) it.next(); - if (key.length() <= limit) - continue; - - if (key.substring(0, limit).equalsIgnoreCase(serviceDotAlgorithm+" ")) - { - realAttr = key.substring(limit).trim(); - if (! realAttr.equalsIgnoreCase(attr)) - continue; - - // eveything matches so far. do the value - realVal = p.getProperty(key); - if (realVal == null) - return false; - - realVal = realVal.trim(); - // is it a string value? - if (val.equalsIgnoreCase(realVal)) - return true; - - // assume value is a number. cehck for greater-than-or-equal - return (new Integer(val).intValue() >= new Integer(realVal).intValue()); - } - } - - return false; - } -} diff --git a/libjava/java/security/SecurityPermission.h b/libjava/java/security/SecurityPermission.h new file mode 100644 index 00000000000..c28bdc6307d --- /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 +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 00000000000..43f4d5233f0 --- /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 +#include + +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 00000000000..32e3d756270 --- /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 +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 00000000000..7e2406e5aac --- /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 +#include + +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 00000000000..430053721ba --- /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 +#include + +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 00000000000..080bc8a0b61 --- /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 +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 00000000000..51c0c8a0115 --- /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 +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 00000000000..ceebc5b72aa --- /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 +#include + +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 00000000000..94cfec59123 --- /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 +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: + jboolean hasMoreElements(); + ::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 00000000000..2d31d0e6cf8 --- /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 +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 00000000000..5c71033ca7c --- /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 +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/VMAccessController.h b/libjava/java/security/VMAccessController.h new file mode 100644 index 00000000000..20cd9ce7338 --- /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 +#include + +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/VMSecureRandom$Spinner.h b/libjava/java/security/VMSecureRandom$Spinner.h new file mode 100644 index 00000000000..32a1e31acdf --- /dev/null +++ b/libjava/java/security/VMSecureRandom$Spinner.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_security_VMSecureRandom$Spinner__ +#define __java_security_VMSecureRandom$Spinner__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class VMSecureRandom$Spinner; + } + } +} + +class java::security::VMSecureRandom$Spinner : public ::java::lang::Object +{ + +public: // actually package-private + VMSecureRandom$Spinner(jbyte); +public: + virtual void run(); +private: + void stop(); +public: // actually package-private + static void access$0(::java::security::VMSecureRandom$Spinner *); + volatile jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + volatile jboolean running; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_security_VMSecureRandom$Spinner__ diff --git a/libjava/java/security/VMSecureRandom.h b/libjava/java/security/VMSecureRandom.h new file mode 100644 index 00000000000..982bc0f1a88 --- /dev/null +++ b/libjava/java/security/VMSecureRandom.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_security_VMSecureRandom__ +#define __java_security_VMSecureRandom__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class VMSecureRandom; + } + } +} + +class java::security::VMSecureRandom : public ::java::lang::Object +{ + +public: // actually package-private + VMSecureRandom(); + static jint generateSeed(JArray< jbyte > *, jint, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __java_security_VMSecureRandom__ diff --git a/libjava/java/security/acl/Acl.h b/libjava/java/security/acl/Acl.h new file mode 100644 index 00000000000..82c8d6de784 --- /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 +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 00000000000..3b098b0f899 --- /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 +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 00000000000..9daea6522fa --- /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 +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 00000000000..780774d4119 --- /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 +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 00000000000..eb03366e040 --- /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 +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 00000000000..627e4e57b98 --- /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 +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 00000000000..b8bc09bf25a --- /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 +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 00000000000..f1c9b252563 --- /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 +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 00000000000..e1b5298e023 --- /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 +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 00000000000..7e2401eb484 --- /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 +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 00000000000..fb5fe7a62a0 --- /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 +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 00000000000..a688e1b6d78 --- /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 +#include + +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 00000000000..ed7378982b8 --- /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 +#include + +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 00000000000..2905f742308 --- /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 +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 00000000000..c2cb71b8f8c --- /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 +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 00000000000..74849e8df09 --- /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 +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 00000000000..8b9524a5ac2 --- /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 +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 00000000000..a6752dfaebc --- /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 +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 00000000000..e24832084f0 --- /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 +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: + ::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 00000000000..4424264fc72 --- /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 +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 00000000000..14289c79aab --- /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 +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 00000000000..1a453205dd6 --- /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 +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 00000000000..cb737ef6402 --- /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 +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 00000000000..2288bcc29be --- /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 +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 00000000000..16ae2325c9b --- /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 +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: + ::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 00000000000..af7e7488c6f --- /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 +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 00000000000..72e42f9ab40 --- /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 +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 00000000000..57eda812d76 --- /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 +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 00000000000..30dc3a4dbf2 --- /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 +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 00000000000..3eb75f2cb12 --- /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 +#include + +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 00000000000..350d78a9cf3 --- /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 +#include + +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 00000000000..f97e40e163f --- /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 +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 00000000000..11658e28953 --- /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 +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 00000000000..a92013dc72f --- /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 +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 00000000000..184e3e4e971 --- /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 +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 00000000000..2370e67940c --- /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 +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 00000000000..510bb39fe7a --- /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 +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 00000000000..2827e896117 --- /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 +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 00000000000..cabf8dfa337 --- /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 +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 00000000000..2cdde192f8e --- /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 +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 00000000000..bb9ffd70774 --- /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 +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 00000000000..ad6ee690b6b --- /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 +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 00000000000..375e8f33cbe --- /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 +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 00000000000..879bc2bf9dc --- /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 +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 00000000000..7a953696c2b --- /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 +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 00000000000..04cadaf0528 --- /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 +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 00000000000..ed16d26f7cf --- /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 +#include + +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 00000000000..3afc671bc0b --- /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 +#include + +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 00000000000..1c92665020f --- /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 +#include + +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 00000000000..8d9c8d5f976 --- /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 +#include + +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 00000000000..e888f633e1a --- /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 +#include + +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 00000000000..69dd81e50eb --- /dev/null +++ b/libjava/java/security/cert/X509CertSelector.h @@ -0,0 +1,132 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_security_cert_X509CertSelector__ +#define __java_security_cert_X509CertSelector__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + } + } + } + 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 +{ + +public: + X509CertSelector(); + virtual ::java::security::cert::X509Certificate * getCertificate(); + virtual void setCertificate(::java::security::cert::X509Certificate *); + virtual ::java::math::BigInteger * getSerialNumber(); + virtual void setSerialNumber(::java::math::BigInteger *); + virtual ::java::lang::String * getIssuerAsString(); + virtual JArray< jbyte > * getIssuerAsBytes(); + virtual void setIssuer(::java::lang::String *); + virtual void setIssuer(JArray< jbyte > *); + virtual ::java::lang::String * getSubjectAsString(); + virtual JArray< jbyte > * getSubjectAsBytes(); + virtual void setSubject(::java::lang::String *); + virtual void setSubject(JArray< jbyte > *); + virtual JArray< jbyte > * getSubjectKeyIdentifier(); + virtual void setSubjectKeyIdentifier(JArray< jbyte > *); + virtual JArray< jbyte > * getAuthorityKeyIdentifier(); + virtual void setAuthorityKeyIdentifier(JArray< jbyte > *); + virtual ::java::util::Date * getCertificateValid(); + virtual void setCertificateValid(::java::util::Date *); + virtual ::java::util::Date * getPrivateKeyValid(); + virtual void setPrivateKeyValid(::java::util::Date *); + virtual ::java::lang::String * getSubjectPublicKeyAlgID(); + virtual void setSubjectPublicKeyAlgID(::java::lang::String *); + virtual ::java::security::PublicKey * getSubjectPublicKey(); + virtual void setSubjectPublicKey(::java::security::PublicKey *); + virtual void setSubjectPublicKey(JArray< jbyte > *); + virtual JArray< jboolean > * getKeyUsage(); + virtual void setKeyUsage(JArray< jboolean > *); + virtual ::java::util::Set * getExtendedKeyUsage(); + virtual void setExtendedKeyUsage(::java::util::Set *); + virtual jboolean getMatchAllSubjectAltNames(); + virtual void setMatchAllSubjectAltNames(jboolean); + virtual void setSubjectAlternativeNames(::java::util::Collection *); + virtual void addSubjectAlternativeName(jint, ::java::lang::String *); + virtual void addSubjectAlternativeName(jint, JArray< jbyte > *); + virtual JArray< jbyte > * getNameConstraints(); + virtual void setNameConstraints(JArray< jbyte > *); + virtual jint getBasicConstraints(); + virtual void setBasicConstraints(jint); + virtual jboolean match(::java::security::cert::Certificate *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::Object * clone(); +private: + static jboolean checkOid(JArray< jint > *); + 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; +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 00000000000..9f8afe1f418 --- /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 +#include + +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 00000000000..53eb5d1b699 --- /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 +#include + +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 00000000000..ee58f377dc1 --- /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 +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 00000000000..424348c80b6 --- /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 +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 00000000000..e6963fb115d --- /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 +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 00000000000..e1fb8e86c6d --- /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 +#include + +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 00000000000..07916107483 --- /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 +#include + +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 00000000000..76985bdb64f --- /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 +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 00000000000..3e4ff331fbc --- /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 +#include + +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 00000000000..7c6943d4342 --- /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 +#include + +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 00000000000..b1e6139789c --- /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 +#include + +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 00000000000..d2cd7e7031c --- /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 +#include + +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/spec/AlgorithmParameterSpec.h b/libjava/java/security/spec/AlgorithmParameterSpec.h new file mode 100644 index 00000000000..9fa07b0a3bc --- /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 +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 00000000000..83a2cb8ec01 --- /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 +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 00000000000..fe1cae312a4 --- /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 +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 00000000000..aa0cc5c2ac5 --- /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 +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 00000000000..bc913b1e568 --- /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 +#include + +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 00000000000..ff2ea69fef3 --- /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 +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 00000000000..e80550debc2 --- /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 +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 00000000000..cdb7b40cfb4 --- /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 +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 00000000000..20e7007e139 --- /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 +#include + +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 00000000000..01253a2ca05 --- /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 +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 00000000000..a047dd668e6 --- /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 +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 00000000000..bebb3d3a9e8 --- /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 +#include + +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 00000000000..878e3e58e04 --- /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 +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 00000000000..4f25ac6789e --- /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 +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 00000000000..4b0136b45f1 --- /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 +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 00000000000..d6f80a3160c --- /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 +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 00000000000..426ea1be7b7 --- /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 +#include + +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 00000000000..34a1e840cc8 --- /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 +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 00000000000..b9d28cf88d9 --- /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 +#include + +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 00000000000..a1b00c2eda0 --- /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 +#include + +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 00000000000..143184e5c8b --- /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 +#include + +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 00000000000..a402a030861 --- /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 +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 00000000000..3ce236fc84a --- /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 +#include + +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 00000000000..584c65bcf48 --- /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 +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 00000000000..0d1feb748ca --- /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 +#include + +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 00000000000..8a7939b3102 --- /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 +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 00000000000..f9800b06079 --- /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 +#include + +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 00000000000..f9d87eabe5b --- /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 +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 00000000000..46e21af135b --- /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 +#include + +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 00000000000..a377668eae2 --- /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 +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 00000000000..dcb2e5dea44 --- /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 +#include + +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 00000000000..79cfc9a9cf9 --- /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 +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 00000000000..969c0ecc3e7 --- /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 +#include + +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 00000000000..d871adee6c6 --- /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 +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 00000000000..d63205a7266 --- /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 +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 00000000000..3f88d94562b --- /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 +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 00000000000..d19ffc03c64 --- /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 +#include + +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 00000000000..f0be2db5933 --- /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 +#include + +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 00000000000..a426f31a098 --- /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 +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 00000000000..5cb2572ff9f --- /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 +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 00000000000..d22773c9f18 --- /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 +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 00000000000..b4cba44893e --- /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 +#include + +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 00000000000..ff9be27b93e --- /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 +#include + +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 00000000000..a9c5d12af6c --- /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 +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 00000000000..2b27498c843 --- /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 +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 target$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 00000000000..8f6388fe269 --- /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 +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 00000000000..7170a3f91c3 --- /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 +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 00000000000..f4722404425 --- /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 +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 00000000000..c5b04f6fa94 --- /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 +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 00000000000..49e33d1ad08 --- /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 +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 00000000000..51b4c0bc2fa --- /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 +#include + +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 00000000000..bc2e77f89ab --- /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 +#include + +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 00000000000..59b80ed5a71 --- /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 +#include + +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 00000000000..2c6f90ea187 --- /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 +#include + +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 00000000000..d13612ff3bd --- /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 +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 00000000000..30aa77a6788 --- /dev/null +++ b/libjava/java/text/ChoiceFormat.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_ChoiceFormat__ +#define __java_text_ChoiceFormat__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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(::java::lang::StringBuffer *, ::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 00000000000..19d92b8cab6 --- /dev/null +++ b/libjava/java/text/CollationElementIterator.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_CollationElementIterator__ +#define __java_text_CollationElementIterator__ + +#pragma interface + +#include +#include + +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 *); + ::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::lang::String * 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 00000000000..83a6c5ae5dd --- /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 +#include + +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 target$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 00000000000..075dcb2b1d4 --- /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 +#include + +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/DateFormat$Field.h b/libjava/java/text/DateFormat$Field.h new file mode 100644 index 00000000000..e586d22fe62 --- /dev/null +++ b/libjava/java/text/DateFormat$Field.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_DateFormat$Field__ +#define __java_text_DateFormat$Field__ + +#pragma interface + +#include +#include + +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; + static ::java::text::DateFormat$Field * ISO_YEAR; + static ::java::text::DateFormat$Field * LOCALIZED_DAY_OF_WEEK; + static ::java::text::DateFormat$Field * EXTENDED_YEAR; + static ::java::text::DateFormat$Field * MODIFIED_JULIAN_DAY; + static ::java::text::DateFormat$Field * MILLISECOND_IN_DAY; + static ::java::text::DateFormat$Field * RFC822_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 00000000000..447fef3b3ce --- /dev/null +++ b/libjava/java/text/DateFormat.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_DateFormat__ +#define __java_text_DateFormat__ + +#pragma interface + +#include +#include + +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); +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 const jint ISO_YEAR_FIELD = 18; + static const jint LOCALIZED_DAY_OF_WEEK_FIELD = 19; + static const jint EXTENDED_YEAR_FIELD = 20; + static const jint MODIFIED_JULIAN_DAY_FIELD = 21; + static const jint MILLISECOND_IN_DAY_FIELD = 22; + static const jint RFC822_TIMEZONE_FIELD = 23; + 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 00000000000..1ef65b7cabd --- /dev/null +++ b/libjava/java/text/DateFormatSymbols.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_DateFormatSymbols__ +#define __java_text_DateFormatSymbols__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace text + { + class DateFormatSymbols; + } + } +} + +class java::text::DateFormatSymbols : public ::java::lang::Object +{ + + 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(); +public: // actually package-private + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ampms; + JArray< ::java::lang::String * > * eras; +private: + ::java::lang::String * localPatternChars; +public: // actually package-private + JArray< ::java::lang::String * > * months; + JArray< ::java::lang::String * > * shortMonths; + JArray< ::java::lang::String * > * shortWeekdays; + JArray< ::java::lang::String * > * weekdays; +private: + JArray< JArray< ::java::lang::String * > * > * 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 00000000000..14cf9d2f59b --- /dev/null +++ b/libjava/java/text/DecimalFormat.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_DecimalFormat__ +#define __java_text_DecimalFormat__ + +#pragma interface + +#include +extern "Java" +{ + 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 *); + ::java::lang::StringBuffer * 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 00000000000..96bd2861693 --- /dev/null +++ b/libjava/java/text/DecimalFormatSymbols.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_DecimalFormatSymbols__ +#define __java_text_DecimalFormatSymbols__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class DecimalFormatSymbols; + } + } +} + +class java::text::DecimalFormatSymbols : public ::java::lang::Object +{ + +public: + ::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 *); + jboolean equals(::java::lang::Object *); + ::java::util::Currency * getCurrency(); + ::java::lang::String * getCurrencySymbol(); + jchar getDecimalSeparator(); + jchar getDigit(); +public: // actually package-private + jchar getExponential(); +public: + jchar getGroupingSeparator(); + ::java::lang::String * getInfinity(); + ::java::lang::String * getInternationalCurrencySymbol(); + jchar getMinusSign(); + jchar getMonetaryDecimalSeparator(); + ::java::lang::String * getNaN(); + jchar getPatternSeparator(); + jchar getPercent(); + jchar getPerMill(); + jchar getZeroDigit(); + jint hashCode(); + void setCurrency(::java::util::Currency *); + void setCurrencySymbol(::java::lang::String *); + void setDecimalSeparator(jchar); + void setDigit(jchar); +public: // actually package-private + void setExponential(jchar); +public: + void setGroupingSeparator(jchar); + void setInfinity(::java::lang::String *); + void setInternationalCurrencySymbol(::java::lang::String *); + void setMinusSign(jchar); + void setMonetaryDecimalSeparator(jchar); + void setNaN(::java::lang::String *); + void setPatternSeparator(jchar); + void setPercent(jchar); + void setPerMill(jchar); + void setZeroDigit(jchar); +private: + void readObject(::java::io::ObjectInputStream *); + ::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; + 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 00000000000..d61f9115fcd --- /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 +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 00000000000..197dd7dce66 --- /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 +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 00000000000..5813bd0d40c --- /dev/null +++ b/libjava/java/text/Format.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_Format__ +#define __java_text_Format__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class AttributedCharacterIterator; + class FieldPosition; + class Format; + class ParsePosition; + } + } +} + +class java::text::Format : public ::java::lang::Object +{ + +public: + Format(); + 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 00000000000..78a9bebba91 --- /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 +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 00000000000..9a95f1f7f8e --- /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 +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 00000000000..47d476fb521 --- /dev/null +++ b/libjava/java/text/MessageFormat.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_MessageFormat__ +#define __java_text_MessageFormat__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + 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, ::java::lang::StringBuffer *); + static jint scanFormatElement(::java::lang::String *, jint, ::java::lang::StringBuffer *, jchar); + static jint scanFormat(::java::lang::String *, jint, ::java::lang::StringBuffer *, ::java::util::Vector *, ::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 00000000000..6b72af0a406 --- /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 +#include + +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 00000000000..c800b99a97f --- /dev/null +++ b/libjava/java/text/NumberFormat.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_NumberFormat__ +#define __java_text_NumberFormat__ + +#pragma interface + +#include +#include + +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(); + NumberFormat(); + 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 00000000000..e8b314fa2d1 --- /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 +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 00000000000..4f7970cea94 --- /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 +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 00000000000..8baa2a46d84 --- /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 +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 00000000000..4436ec955bc --- /dev/null +++ b/libjava/java/text/RuleBasedCollator$CollationSorter.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_RuleBasedCollator$CollationSorter__ +#define __java_text_RuleBasedCollator$CollationSorter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class RuleBasedCollator$CollationSorter; + } + } +} + +class java::text::RuleBasedCollator$CollationSorter : public ::java::lang::Object +{ + +public: // actually package-private + 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 00000000000..06803c8514a --- /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 +#include + +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::lang::Object * > * 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 00000000000..b188792018a --- /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 +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 00000000000..a6ffbf50718 --- /dev/null +++ b/libjava/java/text/SimpleDateFormat.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_text_SimpleDateFormat__ +#define __java_text_SimpleDateFormat__ + +#pragma interface + +#include +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; +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 00000000000..d1769635609 --- /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 +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/util/AbstractCollection.h b/libjava/java/util/AbstractCollection.h new file mode 100644 index 00000000000..15d129d1cde --- /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 +#include + + +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 00000000000..996ce73572e --- /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 + +class java::util::AbstractList$1 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractList$1(::java::util::AbstractList$SubList *, jint); +public: + jboolean hasNext(); + jboolean hasPrevious(); + ::java::lang::Object * next(); + ::java::lang::Object * previous(); + jint nextIndex(); + jint previousIndex(); + void remove(); + void set(::java::lang::Object *); + 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 00000000000..6971dc802bb --- /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 + +class java::util::AbstractList$2 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractList$2(::java::util::AbstractList *); +private: + void checkMod(); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..0bf2bda682d --- /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 + +class java::util::AbstractList$3 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractList$3(::java::util::AbstractList *, jint); +private: + void checkMod(); +public: + jboolean hasNext(); + jboolean hasPrevious(); + ::java::lang::Object * next(); + ::java::lang::Object * previous(); + jint nextIndex(); + jint previousIndex(); + void remove(); + void set(::java::lang::Object *); + 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 00000000000..49b23bc399d --- /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 + +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 00000000000..e258ed4df22 --- /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 + +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 00000000000..ace35d68d08 --- /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 + +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 00000000000..bf27fc1adaa --- /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 + +class java::util::AbstractMap$1 : public ::java::util::AbstractSet +{ + +public: // actually package-private + AbstractMap$1(::java::util::AbstractMap *); +public: + jint size(); + jboolean contains(::java::lang::Object *); + ::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 00000000000..048cfa70ceb --- /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 + +class java::util::AbstractMap$2 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractMap$2(::java::util::AbstractMap$1 *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..5797790df9f --- /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 + +class java::util::AbstractMap$3 : public ::java::util::AbstractCollection +{ + +public: // actually package-private + AbstractMap$3(::java::util::AbstractMap *); +public: + jint size(); + jboolean contains(::java::lang::Object *); + ::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 00000000000..4bf28865916 --- /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 + +class java::util::AbstractMap$4 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractMap$4(::java::util::AbstractMap$3 *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..0cc266dfe0a --- /dev/null +++ b/libjava/java/util/AbstractMap$SimpleEntry.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_AbstractMap$SimpleEntry__ +#define __java_util_AbstractMap$SimpleEntry__ + +#pragma interface + +#include + +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(); +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 00000000000..540d5f49f4a --- /dev/null +++ b/libjava/java/util/AbstractMap$SimpleImmutableEntry.h @@ -0,0 +1,27 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_AbstractMap$SimpleImmutableEntry__ +#define __java_util_AbstractMap$SimpleImmutableEntry__ + +#pragma interface + +#include + +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 *); +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 00000000000..fba927661e7 --- /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 + +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 00000000000..f194c25d6d6 --- /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 + +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 00000000000..7763024e5a2 --- /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 + +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 00000000000..b3ec3993931 --- /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 + +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 00000000000..bbe30bc5376 --- /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 + +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 00000000000..ee72fd7b695 --- /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 + +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 00000000000..6154213dd7e --- /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 +#include + + +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 * target$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 00000000000..755e7c5a98d --- /dev/null +++ b/libjava/java/util/ArrayList.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_ArrayList__ +#define __java_util_ArrayList__ + +#pragma interface + +#include +#include + + +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); +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 00000000000..3fe96863995 --- /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 +#include + + +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 00000000000..6b4941db0ea --- /dev/null +++ b/libjava/java/util/Arrays.h @@ -0,0 +1,144 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Arrays__ +#define __java_util_Arrays__ + +#pragma interface + +#include +#include + + +class java::util::Arrays : public ::java::lang::Object +{ + + Arrays(); +public: + static jint binarySearch(JArray< jbyte > *, jbyte); + static jint binarySearch(JArray< jchar > *, jchar); + static jint binarySearch(JArray< jshort > *, jshort); + static jint binarySearch(JArray< jint > *, jint); + static jint binarySearch(JArray< jlong > *, jlong); + static jint binarySearch(JArray< jfloat > *, jfloat); + static jint binarySearch(JArray< jdouble > *, jdouble); + static jint binarySearch(JArray< ::java::lang::Object * > *, ::java::lang::Object *); + static jint binarySearch(JArray< ::java::lang::Object * > *, ::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 * > *, ::java::lang::StringBuilder *, ::java::util::HashSet *); +public: + static ::java::lang::String * deepToString(JArray< ::java::lang::Object * > *); + 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 00000000000..1470ca0b2c8 --- /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 +#include + + +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 00000000000..2cc0bef37bb --- /dev/null +++ b/libjava/java/util/Calendar.h @@ -0,0 +1,140 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Calendar__ +#define __java_util_Calendar__ + +#pragma interface + +#include +#include + + +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 ::java::lang::Object * clone(); + virtual ::java::lang::String * toString(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); +public: + 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; +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; + 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::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 00000000000..afeb7ffee12 --- /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 +#include + + +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 00000000000..75489874972 --- /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 + +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 00000000000..bd8fda524bb --- /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 + +class java::util::Collections$1 : public ::java::lang::Object +{ + +public: // actually package-private + Collections$1(::java::util::Collections$SingletonSet *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..baf1d14ae25 --- /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 + +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: + ::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 00000000000..9c0a2bf8ccb --- /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 + +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: + ::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 00000000000..eb7699b0da2 --- /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 + +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: + ::java::util::Map$Entry * target$next(); + ::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 00000000000..b57ee4f03cc --- /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 + +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: + ::java::util::Map$Entry * target$next(); + ::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 00000000000..ec450292155 --- /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 + +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: + ::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 00000000000..ba27fbfe6ce --- /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 + +class java::util::Collections$7 : public ::java::lang::Object +{ + +public: // actually package-private + Collections$7(::java::util::Collections$6 *, ::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 + ::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 00000000000..9662cca129c --- /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 + +class java::util::Collections$8 : public ::java::lang::Object +{ + +public: // actually package-private + Collections$8(::java::util::Iterator *); +public: + jboolean hasMoreElements(); + ::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 00000000000..303ea40f51c --- /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 + +class java::util::Collections$9 : public ::java::util::Collections$ReverseComparator +{ + +public: // actually package-private + Collections$9(::java::util::Comparator *); +public: + 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 00000000000..688439f0450 --- /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 +#include + + +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 00000000000..cce1f0bcce9 --- /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 + +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 00000000000..6158bc2a794 --- /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 + +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 00000000000..2c1b9f03d1c --- /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 + +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 00000000000..1882b9a9ba4 --- /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 + +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 00000000000..e32b255f7b0 --- /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 + +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 00000000000..4fad9a793b6 --- /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 + +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 00000000000..e58a98d2eaa --- /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 + +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 00000000000..54d83056984 --- /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 + +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 00000000000..f65817529d7 --- /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 + +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 00000000000..3ff503da424 --- /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 +#include + + +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 00000000000..8133e1643f3 --- /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 +#include + + +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 00000000000..6b09265c4c8 --- /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 + +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 00000000000..cbd01262f88 --- /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 +#include + + +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$ReverseComparator.h b/libjava/java/util/Collections$ReverseComparator.h new file mode 100644 index 00000000000..006c27cbfc1 --- /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 + +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 00000000000..03340f1d9cb --- /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 +#include + + +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 00000000000..a5b07689a43 --- /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 + +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 00000000000..51deccdd38a --- /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 +#include + + +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 00000000000..a41b8d2b138 --- /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 +#include + + +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 00000000000..bc0950b6d2e --- /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 + +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 00000000000..3404a091d4d --- /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 + +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 00000000000..87cd16b0b21 --- /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 + +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 00000000000..6232204d14b --- /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 + +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 00000000000..3bf085ee121 --- /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 + +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 00000000000..bb5b6769799 --- /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 + +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 00000000000..d31025f26fd --- /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 + +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 00000000000..dd25a17b704 --- /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 + +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 00000000000..2241b880a68 --- /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 +#include + + +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 00000000000..3782626aa7a --- /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 + +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 00000000000..e1da4773050 --- /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 + +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 00000000000..f921a5c0b39 --- /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 + +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 00000000000..c0358c9b86f --- /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 + +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 00000000000..cf49d7fce32 --- /dev/null +++ b/libjava/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h @@ -0,0 +1,29 @@ + +// 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 +#include + + +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::util::Map$Entry * > * target$toArray(); + JArray< ::java::util::Map$Entry * > * toArray(JArray< ::java::util::Map$Entry * > *); + JArray< ::java::lang::Object * > * toArray(); +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 00000000000..3aaee0a7b67 --- /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 + +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 00000000000..62a310b4168 --- /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 + +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 00000000000..3633ae29985 --- /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 + +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 00000000000..6c5a3742609 --- /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 + +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 00000000000..50d776d6d42 --- /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 + +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 00000000000..6e11724394a --- /dev/null +++ b/libjava/java/util/Collections.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Collections__ +#define __java_util_Collections__ + +#pragma interface + +#include +#include + + +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 *); +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 00000000000..f14275e58ce --- /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 + +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 00000000000..012ab658d95 --- /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 + +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 00000000000..c868cef9ca3 --- /dev/null +++ b/libjava/java/util/Currency.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Currency__ +#define __java_util_Currency__ + +#pragma interface + +#include + +class java::util::Currency : public ::java::lang::Object +{ + + Currency(); + Currency(::java::util::Locale *); +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: + ::java::util::Locale * __attribute__((aligned(__alignof__( ::java::lang::Object)))) locale; + ::java::util::ResourceBundle * res; + ::java::lang::String * currencyCode; + 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 00000000000..e9814834457 --- /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 +#include + + +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 target$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 00000000000..0ceb91f8245 --- /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 +#include + + +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 00000000000..5f02531a5cf --- /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 + +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 00000000000..c384bc02655 --- /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 + +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 00000000000..7b5b1675994 --- /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 + +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 00000000000..372f25f62db --- /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 + +class java::util::EnumMap$1 : public ::java::util::AbstractSet +{ + +public: // actually package-private + EnumMap$1(::java::util::EnumMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + 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 00000000000..325d8ad583d --- /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 + +class java::util::EnumMap$2 : public ::java::lang::Object +{ + +public: // actually package-private + EnumMap$2(::java::util::EnumMap$1 *); +public: + jboolean hasNext(); + ::java::lang::Enum * target$next(); + void remove(); + ::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 00000000000..56824265c18 --- /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 + +class java::util::EnumMap$3 : public ::java::util::AbstractCollection +{ + +public: // actually package-private + EnumMap$3(::java::util::EnumMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + 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 00000000000..4ea6286dc89 --- /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 + +class java::util::EnumMap$4 : public ::java::lang::Object +{ + +public: // actually package-private + EnumMap$4(::java::util::EnumMap$3 *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..d38ef915114 --- /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 + +class java::util::EnumMap$5 : public ::java::util::AbstractSet +{ + +public: // actually package-private + EnumMap$5(::java::util::EnumMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + 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 00000000000..fde1cbd4d82 --- /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 + +class java::util::EnumMap$6 : public ::java::lang::Object +{ + +public: // actually package-private + EnumMap$6(::java::util::EnumMap$5 *); +public: + jboolean hasNext(); + ::java::util::Map$Entry * target$next(); + void remove(); + ::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 00000000000..3e9439f38f9 --- /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 + +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: + ::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 00000000000..0c303d82529 --- /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 +#include + + +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 * target$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 * target$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 00000000000..38088dc013f --- /dev/null +++ b/libjava/java/util/EnumSet$1.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_EnumSet$1__ +#define __java_util_EnumSet$1__ + +#pragma interface + +#include + +class java::util::EnumSet$1 : public ::java::lang::Object +{ + +public: // actually package-private + EnumSet$1(::java::util::EnumSet *); +public: + jboolean hasNext(); + ::java::lang::Enum * target$next(); + void remove(); + ::java::lang::Object * next(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__; + jint count; + ::java::util::EnumSet * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_EnumSet$1__ diff --git a/libjava/java/util/EnumSet.h b/libjava/java/util/EnumSet.h new file mode 100644 index 00000000000..f0e2a7af3a6 --- /dev/null +++ b/libjava/java/util/EnumSet.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_EnumSet__ +#define __java_util_EnumSet__ + +#pragma interface + +#include +#include + + +class java::util::EnumSet : public ::java::util::AbstractSet +{ + +public: // actually package-private + EnumSet(); +public: + virtual ::java::util::EnumSet * target$clone(); + virtual jint size(); + virtual ::java::util::Iterator * iterator(); + virtual jboolean target$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 jboolean remove(::java::lang::Object *); + virtual jboolean removeAll(::java::util::Collection *); + virtual jboolean retainAll(::java::util::Collection *); + 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(); + virtual jboolean add(::java::lang::Object *); +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 00000000000..a79045f0e72 --- /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 + +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 00000000000..7ab4585c91c --- /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 + +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 00000000000..06f16509723 --- /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 + +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 00000000000..bd1862b95e3 --- /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 + +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 00000000000..ce0d3fe3d6b --- /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 + +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 00000000000..7af1df738cc --- /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 + +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 00000000000..36fba012b33 --- /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 + +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 00000000000..a6ea3a893cd --- /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 +#include + + +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 00000000000..5d513ed786d --- /dev/null +++ b/libjava/java/util/Formatter.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Formatter__ +#define __java_util_Formatter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + 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(::java::lang::StringBuilder *, 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); + ::java::lang::StringBuilder * 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(::java::lang::StringBuilder *, ::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 00000000000..e4e950bca72 --- /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 + +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 00000000000..46fb48e0133 --- /dev/null +++ b/libjava/java/util/GregorianCalendar.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_GregorianCalendar__ +#define __java_util_GregorianCalendar__ + +#pragma interface + +#include +#include + + +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 ::java::lang::String * bundleName; + 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 00000000000..216fc615996 --- /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 + +class java::util::HashMap$1 : public ::java::util::AbstractSet +{ + +public: // actually package-private + HashMap$1(::java::util::HashMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + 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 00000000000..3baedc5debb --- /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 + +class java::util::HashMap$2 : public ::java::util::AbstractCollection +{ + +public: // actually package-private + HashMap$2(::java::util::HashMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + 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 00000000000..b08e4649f8a --- /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 + +class java::util::HashMap$3 : public ::java::util::AbstractSet +{ + +public: // actually package-private + HashMap$3(::java::util::HashMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + 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 00000000000..9f0093d7f27 --- /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 + +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 00000000000..b56fb350c47 --- /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 + +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 00000000000..5b8c77f105e --- /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 +#include + + +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 00000000000..0d96ab91c01 --- /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 + +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 00000000000..3400f04391e --- /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 + +class java::util::Hashtable$1 : public ::java::util::AbstractSet +{ + +public: // actually package-private + Hashtable$1(::java::util::Hashtable *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + 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 00000000000..7f099d570a5 --- /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 + +class java::util::Hashtable$2 : public ::java::util::AbstractCollection +{ + +public: // actually package-private + Hashtable$2(::java::util::Hashtable *); +public: + jint size(); + ::java::util::Iterator * iterator(); + 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 00000000000..bb8bd28c1f1 --- /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 + +class java::util::Hashtable$3 : public ::java::util::AbstractSet +{ + +public: // actually package-private + Hashtable$3(::java::util::Hashtable *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + 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 00000000000..1480d182e3b --- /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 + +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 * target$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 00000000000..d70d486c70a --- /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 + +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 * target$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 00000000000..c0a1c581b1e --- /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 + +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 00000000000..db4765da729 --- /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 + +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 00000000000..faf1d932276 --- /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 + +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 00000000000..4dce71ab72b --- /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 + +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 00000000000..d25279837e7 --- /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 + +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 00000000000..bc33cb14985 --- /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 +#include + + +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 00000000000..6db083c47bc --- /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 + +class java::util::IdentityHashMap$1 : public ::java::util::AbstractSet +{ + +public: // actually package-private + IdentityHashMap$1(::java::util::IdentityHashMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + jint hashCode(); + 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 00000000000..b8d6ab663c2 --- /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 + +class java::util::IdentityHashMap$2 : public ::java::util::AbstractSet +{ + +public: // actually package-private + IdentityHashMap$2(::java::util::IdentityHashMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + jint hashCode(); + 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 00000000000..d2a39754a8f --- /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 + +class java::util::IdentityHashMap$3 : public ::java::util::AbstractCollection +{ + +public: // actually package-private + IdentityHashMap$3(::java::util::IdentityHashMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + 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 00000000000..be9fa72daaf --- /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 + +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 00000000000..d2ab43e4819 --- /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 + +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 00000000000..9e77a4b291d --- /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 +#include + + +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 00000000000..30801b6d2b8 --- /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 + +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 00000000000..b6b7e8124e3 --- /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 + +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 00000000000..bf5f4088fdd --- /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 + +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 00000000000..c5c13c01b9f --- /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 + +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 00000000000..a4ca0ec23dc --- /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 + +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 00000000000..e278642db68 --- /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 + +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 00000000000..d1d7216bfb7 --- /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 + +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 00000000000..0380e88d6b1 --- /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 + +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 00000000000..27343a5b8a7 --- /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 + +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 00000000000..ce2d6255b2d --- /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 + +class java::util::LinkedHashMap$1 : public ::java::lang::Object +{ + +public: // actually package-private + LinkedHashMap$1(::java::util::LinkedHashMap *, jint); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..8db632b32e9 --- /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 + +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 00000000000..d57308875ed --- /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 + +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 00000000000..d63aec8e699 --- /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 + +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$Entry.h b/libjava/java/util/LinkedList$Entry.h new file mode 100644 index 00000000000..c44d48c3eaa --- /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 + +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 00000000000..2756e206eb6 --- /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 + +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 00000000000..aee4f09d2d3 --- /dev/null +++ b/libjava/java/util/LinkedList.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_LinkedList__ +#define __java_util_LinkedList__ + +#pragma interface + +#include +#include + + +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 *); + 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 00000000000..89e637b091d --- /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 +#include + + +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 00000000000..947ad3ccf7b --- /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 + +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 00000000000..216d14b4d84 --- /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 +#include + + +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 00000000000..6868aa1712f --- /dev/null +++ b/libjava/java/util/Locale.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Locale__ +#define __java_util_Locale__ + +#pragma interface + +#include +#include + + +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(); + ::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; +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 ::java::util::Locale * defaultLocale; +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 00000000000..694a37e7ab9 --- /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 + +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 00000000000..05cc5e900cc --- /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 + +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 00000000000..d0908d2d47a --- /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 + +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 00000000000..dac93c0c4cc --- /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 + +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 00000000000..0523e031ab4 --- /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 + +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 00000000000..9e483483484 --- /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 + +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 00000000000..c7e228ea12f --- /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 +#include + + +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 00000000000..43cd646768f --- /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 + +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 00000000000..070e97d2349 --- /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 + +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 00000000000..05964feea38 --- /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 + +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 00000000000..1977dea91c8 --- /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 + +class java::util::PriorityQueue$1 : public ::java::lang::Object +{ + +public: // actually package-private + PriorityQueue$1(::java::util::PriorityQueue *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..7072486a11d --- /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 +#include + + +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 00000000000..5075e347c80 --- /dev/null +++ b/libjava/java/util/Properties.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Properties__ +#define __java_util_Properties__ + +#pragma interface + +#include + +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::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 *, ::java::lang::StringBuilder *, 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 00000000000..afd55144752 --- /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 +#include + +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 00000000000..0c00a4e0bb9 --- /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 +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 00000000000..a0f0726be78 --- /dev/null +++ b/libjava/java/util/PropertyResourceBundle.h @@ -0,0 +1,24 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_PropertyResourceBundle__ +#define __java_util_PropertyResourceBundle__ + +#pragma interface + +#include + +class java::util::PropertyResourceBundle : public ::java::util::ResourceBundle +{ + +public: + PropertyResourceBundle(::java::io::InputStream *); + 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 00000000000..c4e8f05736b --- /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 +#include + + +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 00000000000..93bcf2e6c40 --- /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 +#include + + +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 00000000000..e2bfce76120 --- /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 + +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 00000000000..fd5b3f70818 --- /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 + +class java::util::ResourceBundle$1 : public ::java::util::LinkedHashMap +{ + +public: // actually package-private + ResourceBundle$1(jint, jfloat, jboolean); +public: + 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 00000000000..62c08b38f3c --- /dev/null +++ b/libjava/java/util/ResourceBundle$BundleKey.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_ResourceBundle$BundleKey__ +#define __java_util_ResourceBundle$BundleKey__ + +#pragma interface + +#include + +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 *); +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 00000000000..98a87e679fd --- /dev/null +++ b/libjava/java/util/ResourceBundle.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_ResourceBundle__ +#define __java_util_ResourceBundle__ + +#pragma interface + +#include +#include + + +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); + 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/ResourceBundle.java b/libjava/java/util/ResourceBundle.java deleted file mode 100644 index 19dd3cdf19f..00000000000 --- a/libjava/java/util/ResourceBundle.java +++ /dev/null @@ -1,580 +0,0 @@ -/* ResourceBundle -- aids in loading resource bundles - 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.util; - -import java.io.IOException; -import java.io.InputStream; - -/** - * A resource bundle contains locale-specific data. If you need localized - * data, you can load a resource bundle that matches the locale with - * getBundle. Now you can get your object by calling - * getObject or getString on that bundle. - * - *

      When a bundle is demanded for a specific locale, the ResourceBundle - * is searched in following order (def. language stands for the - * two letter ISO language code of the default locale (see - * Locale.getDefault()). - * -

      baseName_language code_country code_variant
      -baseName_language code_country code
      -baseName_language code
      -baseName_def. language_def. country_def. variant
      -baseName_def. language_def. country
      -baseName_def. language
      -baseName
      - * - *

      A bundle is backed up by less specific bundles (omitting variant, country - * or language). But it is not backed up by the default language locale. - * - *

      If you provide a bundle for a given locale, say - * Bundle_en_UK_POSIX, you must also provide a bundle for - * all sub locales, ie. Bundle_en_UK, Bundle_en, and - * Bundle. - * - *

      When a bundle is searched, we look first for a class with the given - * name, then for a file with .properties extension in the - * classpath. The name must be a fully qualified classname (with dots as - * path separators). - * - *

      (Note: This implementation always backs up the class with a properties - * file if that is existing, but you shouldn't rely on this, if you want to - * be compatible to the standard JDK.) - * - * @author Jochen Hoenicke - * @author Eric Blake (ebb9@email.byu.edu) - * @see Locale - * @see ListResourceBundle - * @see PropertyResourceBundle - * @since 1.1 - * @status updated to 1.4 - */ -public abstract class ResourceBundle -{ - /** - * The parent bundle. This is consulted when you call getObject and there - * is no such resource in the current bundle. This field may be null. - */ - protected ResourceBundle parent; - - /** - * The locale of this resource bundle. You can read this with - * getLocale and it is automatically set in - * getBundle. - */ - private Locale locale; - - private static native ClassLoader getCallingClassLoader(); - - /** - * The resource bundle cache. - */ - private static Map bundleCache; - - /** - * The last default Locale we saw. If this ever changes then we have to - * reset our caches. - */ - private static Locale lastDefaultLocale; - - /** - * The `empty' locale is created once in order to optimize - * tryBundle(). - */ - private static final Locale emptyLocale = new Locale(""); - - /** - * The constructor. It does nothing special. - */ - public ResourceBundle() - { - } - - /** - * Get a String from this resource bundle. Since most localized Objects - * are Strings, this method provides a convenient way to get them without - * casting. - * - * @param key the name of the resource - * @throws MissingResourceException if the resource can't be found - * @throws NullPointerException if key is null - * @throws ClassCastException if resource is not a string - */ - public final String getString(String key) - { - return (String) getObject(key); - } - - /** - * Get an array of Strings from this resource bundle. This method - * provides a convenient way to get it without casting. - * - * @param key the name of the resource - * @throws MissingResourceException if the resource can't be found - * @throws NullPointerException if key is null - * @throws ClassCastException if resource is not a string - */ - public final String[] getStringArray(String key) - { - return (String[]) getObject(key); - } - - /** - * Get an object from this resource bundle. This will call - * handleGetObject for this resource and all of its parents, - * until it finds a non-null resource. - * - * @param key the name of the resource - * @throws MissingResourceException if the resource can't be found - * @throws NullPointerException if key is null - */ - public final Object getObject(String key) - { - for (ResourceBundle bundle = this; bundle != null; bundle = bundle.parent) - { - Object o = bundle.handleGetObject(key); - if (o != null) - return o; - } - - String className = getClass().getName(); - throw new MissingResourceException("Key '" + key - + "'not found in Bundle: " - + className, className, key); - } - - /** - * Return the actual locale of this bundle. You can use it after calling - * getBundle, to know if the bundle for the desired locale was loaded or - * if the fall back was used. - * - * @return the bundle's locale - */ - public Locale getLocale() - { - return locale; - } - - /** - * Set the parent of this bundle. The parent is consulted when you call - * getObject and there is no such resource in the current bundle. - * - * @param parent the parent of this bundle - */ - protected void setParent(ResourceBundle parent) - { - this.parent = parent; - } - - /** - * Get the appropriate ResourceBundle for the default locale. This is like - * calling getBundle(baseName, Locale.getDefault(), - * getClass().getClassLoader(), except that any security check of - * getClassLoader won't fail. - * - * @param baseName the name of the ResourceBundle - * @return the desired resource bundle - * @throws MissingResourceException if the resource bundle can't be found - * @throws NullPointerException if baseName is null - */ - public static ResourceBundle getBundle(String baseName) - { - ClassLoader cl = getCallingClassLoader(); - if (cl == null) - cl = ClassLoader.getSystemClassLoader(); - return getBundle(baseName, Locale.getDefault(), cl); - } - - /** - * Get the appropriate ResourceBundle for the given locale. This is like - * calling getBundle(baseName, locale, - * getClass().getClassLoader(), except that any security check of - * getClassLoader won't fail. - * - * @param baseName the name of the ResourceBundle - * @param locale A locale - * @return the desired resource bundle - * @throws MissingResourceException if the resource bundle can't be found - * @throws NullPointerException if baseName or locale is null - */ - public static ResourceBundle getBundle(String baseName, Locale locale) - { - ClassLoader cl = getCallingClassLoader(); - if (cl == null) - cl = ClassLoader.getSystemClassLoader(); - return getBundle(baseName, locale, cl); - } - - /** Cache key for the ResourceBundle cache. Resource bundles are keyed - by the combination of bundle name, locale, and class loader. */ - private static class BundleKey - { - String baseName; - Locale locale; - ClassLoader classLoader; - int hashcode; - - BundleKey() {} - - BundleKey(String s, Locale l, ClassLoader cl) - { - set(s, l, cl); - } - - void set(String s, Locale l, ClassLoader cl) - { - baseName = s; - locale = l; - classLoader = cl; - hashcode = baseName.hashCode() ^ locale.hashCode() ^ - classLoader.hashCode(); - } - - public int hashCode() - { - return hashcode; - } - - public boolean equals(Object o) - { - if (! (o instanceof BundleKey)) - return false; - BundleKey key = (BundleKey) o; - return hashcode == key.hashcode && - baseName.equals(key.baseName) && - locale.equals(key.locale) && - classLoader.equals(key.classLoader); - } - } - - /** A cache lookup key. This avoids having to a new one for every - * getBundle() call. */ - private static BundleKey lookupKey = new BundleKey(); - - /** Singleton cache entry to represent previous failed lookups. */ - private static Object nullEntry = new Object(); - - /** - * Get the appropriate ResourceBundle for the given locale. The following - * strategy is used: - * - *

      A sequence of candidate bundle names are generated, and tested in - * this order, where the suffix 1 means the string from the specified - * locale, and the suffix 2 means the string from the default locale:

      - * - *
        - *
      • baseName + "_" + language1 + "_" + country1 + "_" + variant1
      • - *
      • baseName + "_" + language1 + "_" + country1
      • - *
      • baseName + "_" + language1
      • - *
      • baseName + "_" + language2 + "_" + country2 + "_" + variant2
      • - *
      • baseName + "_" + language2 + "_" + country2
      • - *
      • baseName + "_" + language2
      • - *
      • baseName
      • - *
      - * - *

      In the sequence, entries with an empty string are ignored. Next, - * getBundle tries to instantiate the resource bundle:

      - * - *
        - *
      • First, an attempt is made to load a class in the specified classloader - * which is a subclass of ResourceBundle, and which has a public constructor - * with no arguments, via reflection.
      • - *
      • Next, a search is made for a property resource file, by replacing - * '.' with '/' and appending ".properties", and using - * ClassLoader.getResource(). If a file is found, then a - * PropertyResourceBundle is created from the file's contents.
      • - *
      - * If no resource bundle was found, a MissingResourceException is thrown. - * - *

      Next, the parent chain is implemented. The remaining candidate names - * in the above sequence are tested in a similar manner, and if any results - * in a resource bundle, it is assigned as the parent of the first bundle - * using the setParent method (unless the first bundle already - * has a parent).

      - * - *

      For example, suppose the following class and property files are - * provided: MyResources.class, MyResources_fr_CH.properties, - * MyResources_fr_CH.class, MyResources_fr.properties, - * MyResources_en.properties, and MyResources_es_ES.class. The contents of - * all files are valid (that is, public non-abstract subclasses of - * ResourceBundle with public nullary constructors for the ".class" files, - * syntactically correct ".properties" files). The default locale is - * Locale("en", "UK").

      - * - *

      Calling getBundle with the shown locale argument values instantiates - * resource bundles from the following sources:

      - * - *
        - *
      • Locale("fr", "CH"): result MyResources_fr_CH.class, parent - * MyResources_fr.properties, parent MyResources.class
      • - *
      • Locale("fr", "FR"): result MyResources_fr.properties, parent - * MyResources.class
      • - *
      • Locale("de", "DE"): result MyResources_en.properties, parent - * MyResources.class
      • - *
      • Locale("en", "US"): result MyResources_en.properties, parent - * MyResources.class
      • - *
      • Locale("es", "ES"): result MyResources_es_ES.class, parent - * MyResources.class
      • - *
      - * - *

      The file MyResources_fr_CH.properties is never used because it is hidden - * by MyResources_fr_CH.class.

      - * - * @param baseName the name of the ResourceBundle - * @param locale A locale - * @param classLoader a ClassLoader - * @return the desired resource bundle - * @throws MissingResourceException if the resource bundle can't be found - * @throws NullPointerException if any argument is null - * @since 1.2 - */ - // This method is synchronized so that the cache is properly - // handled. - public static synchronized ResourceBundle getBundle - (String baseName, Locale locale, ClassLoader classLoader) - { - // If the default locale changed since the last time we were called, - // all cache entries are invalidated. - Locale defaultLocale = Locale.getDefault(); - if (defaultLocale != lastDefaultLocale) - { - bundleCache = new HashMap(); - lastDefaultLocale = defaultLocale; - } - - // This will throw NullPointerException if any arguments are null. - lookupKey.set(baseName, locale, classLoader); - - Object obj = bundleCache.get(lookupKey); - ResourceBundle rb = null; - - if (obj instanceof ResourceBundle) - { - return (ResourceBundle) obj; - } - else if (obj == nullEntry) - { - // Lookup has failed previously. Fall through. - } - else - { - // First, look for a bundle for the specified locale. We don't want - // the base bundle this time. - boolean wantBase = locale.equals(defaultLocale); - ResourceBundle bundle = tryBundle(baseName, locale, classLoader, - wantBase); - - // Try the default locale if neccessary. - if (bundle == null && !locale.equals(defaultLocale)) - bundle = tryBundle(baseName, defaultLocale, classLoader, true); - - BundleKey key = new BundleKey(baseName, locale, classLoader); - if (bundle == null) - { - // Cache the fact that this lookup has previously failed. - bundleCache.put(key, nullEntry); - } - else - { - // Cache the result and return it. - bundleCache.put(key, bundle); - return bundle; - } - } - - throw new MissingResourceException("Bundle " + baseName + " not found", - baseName, ""); - } - - /** - * Override this method to provide the resource for a keys. This gets - * called by getObject. If you don't have a resource - * for the given key, you should return null instead throwing a - * MissingResourceException. You don't have to ask the parent, getObject() - * already does this; nor should you throw a MissingResourceException. - * - * @param key the key of the resource - * @return the resource for the key, or null if not in bundle - * @throws NullPointerException if key is null - */ - protected abstract Object handleGetObject(String key); - - /** - * This method should return all keys for which a resource exists; you - * should include the enumeration of any parent's keys, after filtering out - * duplicates. - * - * @return an enumeration of the keys - */ - public abstract Enumeration getKeys(); - - /** - * Tries to load a class or a property file with the specified name. - * - * @param localizedName the name - * @param classloader the classloader - * @return the resource bundle if it was loaded, otherwise the backup - */ - private static ResourceBundle tryBundle(String localizedName, - ClassLoader classloader) - { - ResourceBundle bundle = null; - try - { - Class rbClass; - if (classloader == null) - rbClass = Class.forName(localizedName); - else - rbClass = classloader.loadClass(localizedName); - // Note that we do the check up front instead of catching - // ClassCastException. The reason for this is that some crazy - // programs (Eclipse) have classes that do not extend - // ResourceBundle but that have the same name as a property - // bundle; in fact Eclipse relies on ResourceBundle not - // instantiating these classes. - if (ResourceBundle.class.isAssignableFrom(rbClass)) - bundle = (ResourceBundle) rbClass.newInstance(); - } - catch (IllegalAccessException ex) {} - catch (InstantiationException ex) {} - catch (ClassNotFoundException ex) {} - - if (bundle == null) - { - try - { - InputStream is; - String resourceName - = localizedName.replace('.', '/') + ".properties"; - if (classloader == null) - is = ClassLoader.getSystemResourceAsStream(resourceName); - else - is = classloader.getResourceAsStream(resourceName); - if (is != null) - bundle = new PropertyResourceBundle(is); - } - catch (IOException ex) - { - MissingResourceException mre = new MissingResourceException - ("Failed to load bundle: " + localizedName, localizedName, ""); - mre.initCause(ex); - throw mre; - } - } - - return bundle; - } - - /** - * Tries to load a the bundle for a given locale, also loads the backup - * locales with the same language. - * - * @param baseName the raw bundle name, without locale qualifiers - * @param locale the locale - * @param classloader the classloader - * @param bundle the backup (parent) bundle - * @param wantBase whether a resource bundle made only from the base name - * (with no locale information attached) should be returned. - * @return the resource bundle if it was loaded, otherwise the backup - */ - private static ResourceBundle tryBundle(String baseName, Locale locale, - ClassLoader classLoader, - boolean wantBase) - { - String language = locale.getLanguage(); - String country = locale.getCountry(); - String variant = locale.getVariant(); - - int baseLen = baseName.length(); - - // Build up a StringBuffer containing the complete bundle name, fully - // qualified by locale. - StringBuffer sb = new StringBuffer(baseLen + variant.length() + 7); - - sb.append(baseName); - - if (language.length() > 0) - { - sb.append('_'); - sb.append(language); - - if (country.length() > 0) - { - sb.append('_'); - sb.append(country); - - if (variant.length() > 0) - { - sb.append('_'); - sb.append(variant); - } - } - } - - // Now try to load bundles, starting with the most specialized name. - // Build up the parent chain as we go. - String bundleName = sb.toString(); - ResourceBundle first = null; // The most specialized bundle. - ResourceBundle last = null; // The least specialized bundle. - - while (true) - { - ResourceBundle foundBundle = tryBundle(bundleName, classLoader); - if (foundBundle != null) - { - if (first == null) - first = foundBundle; - if (last != null) - last.parent = foundBundle; - foundBundle.locale = locale; - last = foundBundle; - } - int idx = bundleName.lastIndexOf('_'); - // Try the non-localized base name only if we already have a - // localized child bundle, or wantBase is true. - if (idx > baseLen || (idx == baseLen && (first != null || wantBase))) - bundleName = bundleName.substring(0, idx); - else - break; - } - - return first; - } -} diff --git a/libjava/java/util/Set.h b/libjava/java/util/Set.h new file mode 100644 index 00000000000..a5634721811 --- /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 +#include + + +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 00000000000..311e31f32b1 --- /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 +#include + + +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 00000000000..881489248b3 --- /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 + +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 00000000000..157019a55a1 --- /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 +#include + + +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 00000000000..b6e25f26833 --- /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 + +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 00000000000..45d8cb89342 --- /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 + +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 00000000000..500d909dddf --- /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 + +class java::util::TimeZone$1 : public ::java::lang::Object +{ + +public: // actually package-private + TimeZone$1(); +public: + ::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 00000000000..3eb30ad5ff5 --- /dev/null +++ b/libjava/java/util/TimeZone.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TimeZone__ +#define __java_util_TimeZone__ + +#pragma interface + +#include +#include + + +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(); + static ::java::util::TimeZone * getTimeZone(::java::lang::String *); + static JArray< ::java::lang::String * > * getAvailableIDs(jint); + 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::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 00000000000..ca61c0f76d9 --- /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 + +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 00000000000..13416d32ede --- /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 +#include + + +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 00000000000..2246cfd3054 --- /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 + +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 00000000000..a38b66ed8b1 --- /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 + +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 00000000000..da5e72a0e7a --- /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 + +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 00000000000..d181072f09a --- /dev/null +++ b/libjava/java/util/TreeMap$1.h @@ -0,0 +1,28 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap$1__ +#define __java_util_TreeMap$1__ + +#pragma interface + +#include + +class java::util::TreeMap$1 : public ::java::util::AbstractSet +{ + +public: // actually package-private + TreeMap$1(::java::util::TreeMap$SubMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + jboolean remove(::java::lang::Object *); +public: // actually package-private + ::java::util::TreeMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$1; +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 00000000000..0ea21a8863d --- /dev/null +++ b/libjava/java/util/TreeMap$2.h @@ -0,0 +1,28 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap$2__ +#define __java_util_TreeMap$2__ + +#pragma interface + +#include + +class java::util::TreeMap$2 : public ::java::util::AbstractSet +{ + +public: // actually package-private + TreeMap$2(::java::util::TreeMap$SubMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + jboolean remove(::java::lang::Object *); +public: // actually package-private + ::java::util::TreeMap$SubMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) 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 00000000000..47ece2a0334 --- /dev/null +++ b/libjava/java/util/TreeMap$3.h @@ -0,0 +1,26 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap$3__ +#define __java_util_TreeMap$3__ + +#pragma interface + +#include + +class java::util::TreeMap$3 : public ::java::util::AbstractCollection +{ + +public: // actually package-private + TreeMap$3(::java::util::TreeMap$SubMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + 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$3__ diff --git a/libjava/java/util/TreeMap$4.h b/libjava/java/util/TreeMap$4.h new file mode 100644 index 00000000000..5665ffd20ad --- /dev/null +++ b/libjava/java/util/TreeMap$4.h @@ -0,0 +1,28 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap$4__ +#define __java_util_TreeMap$4__ + +#pragma interface + +#include + +class java::util::TreeMap$4 : public ::java::util::AbstractSet +{ + +public: // actually package-private + TreeMap$4(::java::util::TreeMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + jboolean remove(::java::lang::Object *); +public: // actually package-private + ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0; +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 00000000000..b615001e52a --- /dev/null +++ b/libjava/java/util/TreeMap$5.h @@ -0,0 +1,28 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap$5__ +#define __java_util_TreeMap$5__ + +#pragma interface + +#include + +class java::util::TreeMap$5 : public ::java::util::AbstractSet +{ + +public: // actually package-private + TreeMap$5(::java::util::TreeMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + void clear(); + jboolean contains(::java::lang::Object *); + jboolean remove(::java::lang::Object *); +public: // actually package-private + ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) this$0; +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 00000000000..45e7802ffac --- /dev/null +++ b/libjava/java/util/TreeMap$6.h @@ -0,0 +1,26 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap$6__ +#define __java_util_TreeMap$6__ + +#pragma interface + +#include + +class java::util::TreeMap$6 : public ::java::util::AbstractCollection +{ + +public: // actually package-private + TreeMap$6(::java::util::TreeMap *); +public: + jint size(); + ::java::util::Iterator * iterator(); + 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$6__ diff --git a/libjava/java/util/TreeMap$Node.h b/libjava/java/util/TreeMap$Node.h new file mode 100644 index 00000000000..1f0740099e9 --- /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 + +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.h b/libjava/java/util/TreeMap$SubMap.h new file mode 100644 index 00000000000..ef206c8a8b8 --- /dev/null +++ b/libjava/java/util/TreeMap$SubMap.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap$SubMap__ +#define __java_util_TreeMap$SubMap__ + +#pragma interface + +#include + +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: + void clear(); + ::java::util::Comparator * comparator(); + jboolean containsKey(::java::lang::Object *); + jboolean containsValue(::java::lang::Object *); + ::java::util::Set * entrySet(); + ::java::lang::Object * firstKey(); + ::java::lang::Object * get(::java::lang::Object *); + ::java::util::SortedMap * headMap(::java::lang::Object *); + ::java::util::Set * keySet(); + ::java::lang::Object * lastKey(); + ::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::SortedMap * tailMap(::java::lang::Object *); + ::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; +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 00000000000..5d8603eedb5 --- /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 + +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 00000000000..a68bcf6252c --- /dev/null +++ b/libjava/java/util/TreeMap.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeMap__ +#define __java_util_TreeMap__ + +#pragma interface + +#include + +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::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::SortedMap * tailMap(::java::lang::Object *); + 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 *); +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); +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 *); + 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; +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 00000000000..565d828c4ad --- /dev/null +++ b/libjava/java/util/TreeSet.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_TreeSet__ +#define __java_util_TreeSet__ + +#pragma interface + +#include + +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::SortedMap *); +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 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::SortedSet * tailSet(::java::lang::Object *); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); + static const jlong serialVersionUID = -2479143000061671589LL; + ::java::util::SortedMap * __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 00000000000..86cb4bc476e --- /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 +#include + + +class java::util::UUID : public ::java::lang::Object +{ + +public: + UUID(jlong, jlong); + jint clockSequence(); + jint target$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 00000000000..53f8917becc --- /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 + +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 00000000000..62c277a2fe2 --- /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 + +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 00000000000..6e571143dd0 --- /dev/null +++ b/libjava/java/util/VMTimeZone.h @@ -0,0 +1,26 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_VMTimeZone__ +#define __java_util_VMTimeZone__ + +#pragma interface + +#include + +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 * readtzFile(::java::lang::String *); + static void skipFully(::java::io::InputStream *, jlong); + static ::java::lang::String * getSystemTimeZoneId(); +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_VMTimeZone__ diff --git a/libjava/java/util/Vector$1.h b/libjava/java/util/Vector$1.h new file mode 100644 index 00000000000..f7dec7ef196 --- /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 + +class java::util::Vector$1 : public ::java::lang::Object +{ + +public: // actually package-private + Vector$1(::java::util::Vector *); +public: + jboolean hasMoreElements(); + ::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 00000000000..8330b2a18ff --- /dev/null +++ b/libjava/java/util/Vector.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_Vector__ +#define __java_util_Vector__ + +#pragma interface + +#include +#include + + +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 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 00000000000..312c75f29eb --- /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 + +class java::util::WeakHashMap$1 : public ::java::lang::Object +{ + +public: // actually package-private + WeakHashMap$1(); +public: + jint hashCode(); + 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 00000000000..8b40ae09248 --- /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 + +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: + jboolean hasNext(); + ::java::lang::Object * next(); + 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 00000000000..5ddfa8738ed --- /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 + +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 00000000000..9fc29d8dc7a --- /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 + +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 00000000000..cfd558e4228 --- /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 + +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 00000000000..e5875adf628 --- /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 +#include + + +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 00000000000..796171e6196 --- /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 + +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 00000000000..fdddf6c3122 --- /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 + +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 00000000000..a431043c671 --- /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 +#include + + +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 00000000000..4aa4cb53327 --- /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 +#include + + +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 00000000000..66cc905fb42 --- /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 +#include + + +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 00000000000..e5930d5d523 --- /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 + +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 00000000000..636260e0336 --- /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 + +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 00000000000..7695b0162f2 --- /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 + +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 00000000000..90d79023cda --- /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 + +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 00000000000..5044f070ab8 --- /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 + +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 * target$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 00000000000..999c022833e --- /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 + +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 00000000000..730394d1c23 --- /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 +#include + + +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; + volatile ::java::lang::Object * 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 00000000000..2a3895cb1c0 --- /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 +#include + + +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 00000000000..afa1b8a0dc1 --- /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 + +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 00000000000..31b002fed7d --- /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 + +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 00000000000..aaa2a7ae10d --- /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 +#include + + +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 + volatile jint __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::ReentrantLock)))) count; + jint modCount; + jint threshold; + volatile JArray< ::java::util::concurrent::ConcurrentHashMap$HashEntry * > * 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 00000000000..6ccd9057ccf --- /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 + +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 00000000000..9470ec45221 --- /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 + +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 00000000000..9c7398ee99a --- /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 + +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 00000000000..0e733c065e4 --- /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 +#include + + +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 00000000000..ddf3f7e88c1 --- /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 + +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 00000000000..60fee41a4d0 --- /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 + +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: + volatile ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) item; + volatile ::java::util::concurrent::ConcurrentLinkedQueue$Node * 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 00000000000..281690e36fb --- /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 + +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; + volatile ::java::util::concurrent::ConcurrentLinkedQueue$Node * __attribute__((aligned(__alignof__( ::java::util::AbstractQueue)))) head; + volatile ::java::util::concurrent::ConcurrentLinkedQueue$Node * 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 00000000000..a3357e30438 --- /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 + +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 00000000000..68f4d01c91a --- /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 + +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 00000000000..b64afd55434 --- /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 + +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 00000000000..1949e5ac617 --- /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 + +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 * target$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 00000000000..e235ffc8d54 --- /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 +#include + + +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 00000000000..f20214ce645 --- /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 + +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 00000000000..c71b25bd327 --- /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 + +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; + volatile ::java::util::concurrent::ConcurrentSkipListMap$Index * 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 00000000000..f9170b31718 --- /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 + +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 00000000000..03eb3e84a93 --- /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 + +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 00000000000..c2372f8b491 --- /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 +#include + + +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 * target$subSet(::java::lang::Object *, ::java::lang::Object *); + ::java::util::NavigableSet * target$headSet(::java::lang::Object *); + ::java::util::NavigableSet * target$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 00000000000..1b94c359071 --- /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 + +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; + volatile ::java::lang::Object * value; + volatile ::java::util::concurrent::ConcurrentSkipListMap$Node * 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 00000000000..8b01d994082 --- /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 + +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 * target$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 00000000000..a4f569348ae --- /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 + +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 00000000000..5af0bca1d4e --- /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 + +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 00000000000..deefc73c9b6 --- /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 + +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 00000000000..e065dbe6caa --- /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 + +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 * target$subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean); + ::java::util::concurrent::ConcurrentSkipListMap$SubMap * target$headMap(::java::lang::Object *, jboolean); + ::java::util::concurrent::ConcurrentSkipListMap$SubMap * target$tailMap(::java::lang::Object *, jboolean); + ::java::util::concurrent::ConcurrentSkipListMap$SubMap * target$subMap(::java::lang::Object *, ::java::lang::Object *); + ::java::util::concurrent::ConcurrentSkipListMap$SubMap * target$headMap(::java::lang::Object *); + ::java::util::concurrent::ConcurrentSkipListMap$SubMap * target$tailMap(::java::lang::Object *); + ::java::util::concurrent::ConcurrentSkipListMap$SubMap * target$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 * target$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 00000000000..fa671d81484 --- /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 + +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 00000000000..1fc3b1b8ee4 --- /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 +#include + + +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 00000000000..4d42f54688a --- /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 + +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 * target$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 * target$keySet(); + virtual ::java::util::NavigableSet * navigableKeySet(); + virtual ::java::util::Collection * values(); + virtual ::java::util::Set * entrySet(); + virtual ::java::util::concurrent::ConcurrentNavigableMap * target$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 * target$subMap(::java::lang::Object *, jboolean, ::java::lang::Object *, jboolean); + virtual ::java::util::concurrent::ConcurrentNavigableMap * target$headMap(::java::lang::Object *, jboolean); + virtual ::java::util::concurrent::ConcurrentNavigableMap * target$tailMap(::java::lang::Object *, jboolean); + virtual ::java::util::concurrent::ConcurrentNavigableMap * target$subMap(::java::lang::Object *, ::java::lang::Object *); + virtual ::java::util::concurrent::ConcurrentNavigableMap * target$headMap(::java::lang::Object *); + virtual ::java::util::concurrent::ConcurrentNavigableMap * target$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; + volatile ::java::util::concurrent::ConcurrentSkipListMap$HeadIndex * __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 00000000000..75afde92de6 --- /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 +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 * target$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 * target$subSet(::java::lang::Object *, ::java::lang::Object *); + virtual ::java::util::NavigableSet * target$headSet(::java::lang::Object *); + virtual ::java::util::NavigableSet * target$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.h b/libjava/java/util/concurrent/CopyOnWriteArrayList.h new file mode 100644 index 00000000000..924ba480e96 --- /dev/null +++ b/libjava/java/util/concurrent/CopyOnWriteArrayList.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_concurrent_CopyOnWriteArrayList__ +#define __java_util_concurrent_CopyOnWriteArrayList__ + +#pragma interface + +#include +#include + + +class java::util::concurrent::CopyOnWriteArrayList : public ::java::util::AbstractList +{ + +public: + CopyOnWriteArrayList(); + CopyOnWriteArrayList(::java::util::Collection *); + CopyOnWriteArrayList(JArray< ::java::lang::Object * > *); + virtual jint size(); + virtual jboolean isEmpty(); + 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 * 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 *); + virtual jboolean addIfAbsent(::java::lang::Object *); + virtual jint addAllAbsent(::java::util::Collection *); +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(); +private: + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) 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 00000000000..9fb8c8396a6 --- /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 +#include + + +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 00000000000..ee8e75126bc --- /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 + +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 00000000000..68609d3133a --- /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 + +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 00000000000..c3d7e4ab111 --- /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 + +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 00000000000..c6c4b3e4fb1 --- /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 + +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 00000000000..ab7af20e87b --- /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 +#include + + +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 * target$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 00000000000..76dd489f298 --- /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 +#include + + +class java::util::concurrent::DelayQueue : public ::java::util::AbstractQueue +{ + +public: + DelayQueue(); + DelayQueue(::java::util::Collection *); + virtual jboolean target$add(::java::util::concurrent::Delayed *); + virtual jboolean target$offer(::java::util::concurrent::Delayed *); + virtual void target$put(::java::util::concurrent::Delayed *); + virtual jboolean target$offer(::java::util::concurrent::Delayed *, jlong, ::java::util::concurrent::TimeUnit *); + virtual ::java::util::concurrent::Delayed * target$poll(); + virtual ::java::util::concurrent::Delayed * target$take(); + virtual ::java::util::concurrent::Delayed * target$poll(jlong, ::java::util::concurrent::TimeUnit *); + virtual ::java::util::concurrent::Delayed * target$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 00000000000..2a8d4e5d1a5 --- /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 + +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 00000000000..5e1087b7611 --- /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 + +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; + volatile ::java::lang::Thread * 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 00000000000..4d1d4165412 --- /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 + +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 00000000000..5ed4d252a90 --- /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 +#include + + +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; + volatile JArray< ::java::util::concurrent::Exchanger$Slot * > * __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 00000000000..3f210c7df2d --- /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 + +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 00000000000..2e59bc4666a --- /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 + +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 00000000000..806cecfe218 --- /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 + +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 00000000000..922e2d98e20 --- /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 + +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 00000000000..3c2431495f6 --- /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 + +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 00000000000..9935b610697 --- /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 + +class java::util::concurrent::Executors$1 : public ::java::lang::Object +{ + +public: // actually package-private + Executors$1(::java::util::concurrent::Executors$PrivilegedCallable *); +public: + ::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 00000000000..ad363bd6c99 --- /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 + +class java::util::concurrent::Executors$2 : public ::java::lang::Object +{ + +public: // actually package-private + Executors$2(::java::util::concurrent::Executors$PrivilegedCallableUsingCurrentClassLoader *); +public: + ::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 00000000000..66dbb89e7fc --- /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 + +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: + 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 00000000000..daab0bb1ba9 --- /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 + +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: + ::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 00000000000..9c1d1bee3c9 --- /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 +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: + ::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 00000000000..30f58c8c88f --- /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 +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: + ::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 00000000000..7a2d8a757f6 --- /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 + +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 00000000000..6bca4b1f255 --- /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 + +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 00000000000..a7efdb0711a --- /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 + +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 00000000000..fd4f2bd762b --- /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 + +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 00000000000..09609857d5e --- /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 +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 00000000000..452f6ef250d --- /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 +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 00000000000..0258eea5e73 --- /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 +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 00000000000..5d75fe83518 --- /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 + +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 00000000000..8e6a428a11b --- /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 +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 00000000000..9f70627a748 --- /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 + +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 00000000000..18808697181 --- /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 + +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; + volatile ::java::lang::Thread * 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 00000000000..a86215f4387 --- /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 + +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 00000000000..2aeec8a97ac --- /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 + +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 00000000000..a18b4d97923 --- /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 + +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 00000000000..ad17e7a5ee3 --- /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 + +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 00000000000..423279f4778 --- /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 + +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 00000000000..43d3adf4acc --- /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 +#include + + +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 00000000000..e7e0e526d7e --- /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 + +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 00000000000..36d1f654a64 --- /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 + +class java::util::concurrent::LinkedBlockingQueue$Node : public ::java::lang::Object +{ + +public: // actually package-private + LinkedBlockingQueue$Node(::java::lang::Object *); + volatile ::java::lang::Object * __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 00000000000..42028ec3841 --- /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 +#include + + +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 00000000000..c6440718212 --- /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 +#include + + +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 00000000000..ad5d8bb40dc --- /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 +#include + + +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 00000000000..4606d2d943f --- /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 + +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 00000000000..8e1ac4f3f80 --- /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 + +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 00000000000..281dccc837f --- /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 + +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 00000000000..0846d65c99c --- /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 + +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 00000000000..9041e395be5 --- /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 + +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 00000000000..4cbf3b0fb8b --- /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 + +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 00000000000..cd6608f955e --- /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 + +class java::util::concurrent::ScheduledThreadPoolExecutor$1 : public ::java::lang::Object +{ + +public: // actually package-private + ScheduledThreadPoolExecutor$1(::java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue *); +public: + jboolean hasNext(); + ::java::lang::Runnable * target$next(); + void remove(); + ::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 00000000000..fd5871a6a72 --- /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 +#include + + +class java::util::concurrent::ScheduledThreadPoolExecutor$DelayedWorkQueue : public ::java::util::AbstractCollection +{ + + ScheduledThreadPoolExecutor$DelayedWorkQueue(); +public: + virtual ::java::lang::Runnable * target$poll(); + virtual ::java::lang::Runnable * target$peek(); + virtual ::java::lang::Runnable * target$take(); + virtual ::java::lang::Runnable * target$poll(jlong, ::java::util::concurrent::TimeUnit *); + virtual jboolean target$add(::java::lang::Runnable *); + virtual jboolean target$offer(::java::lang::Runnable *); + virtual void target$put(::java::lang::Runnable *); + virtual jboolean target$offer(::java::lang::Runnable *, jlong, ::java::util::concurrent::TimeUnit *); + virtual ::java::lang::Runnable * target$remove(); + virtual ::java::lang::Runnable * target$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 00000000000..1bd4e3bdacb --- /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 + +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 target$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 00000000000..e01b42074bf --- /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 + +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: + volatile jboolean __attribute__((aligned(__alignof__( ::java::util::concurrent::ThreadPoolExecutor)))) continueExistingPeriodicTasksAfterShutdown; + volatile jboolean 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 00000000000..ac323695ba1 --- /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 + +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 00000000000..2a03f1ac268 --- /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 + +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 00000000000..98464b2e5e3 --- /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 + +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 00000000000..41755ddcd5f --- /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 + +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 00000000000..793fb9a10a2 --- /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 + +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 00000000000..ba636900d6a --- /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 + +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 00000000000..dedfaca8ca0 --- /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 + +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 00000000000..07486a9abf8 --- /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 + +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(); + volatile ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next; + volatile ::java::lang::Object * item; + volatile ::java::lang::Thread * 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 00000000000..d1b55c99983 --- /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 + +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 *); + volatile ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * __attribute__((aligned(__alignof__( ::java::util::concurrent::SynchronousQueue$Transferer)))) head; + volatile ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * tail; + volatile ::java::util::concurrent::SynchronousQueue$TransferQueue$QNode * 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 00000000000..77af8cb17f4 --- /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 + +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(); + volatile ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next; + volatile ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * match; + volatile ::java::lang::Thread * 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 00000000000..b29138fede4 --- /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 + +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; + volatile ::java::util::concurrent::SynchronousQueue$TransferStack$SNode * __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 00000000000..1b135af58ae --- /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 + +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 00000000000..36f384d32e9 --- /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 + +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 00000000000..82ecce492c1 --- /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 +#include + + +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: + volatile ::java::util::concurrent::SynchronousQueue$Transferer * __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 00000000000..c1037df60c1 --- /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 + +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 00000000000..9f61c798b45 --- /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 + +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 00000000000..169a9c3b966 --- /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 + +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 00000000000..77b8e053595 --- /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 + +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 00000000000..771f828c61a --- /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 + +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 00000000000..18d3f3204a3 --- /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 + +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 + volatile jlong 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 00000000000..00b9dde7c9f --- /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 +#include + + +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; + volatile jlong keepAliveTime; + volatile jboolean allowCoreThreadTimeOut__; + volatile jint corePoolSize; + volatile jint maximumPoolSize; + volatile jint poolSize; +public: // actually package-private + volatile jint runState; + static const jint RUNNING = 0; + static const jint SHUTDOWN = 1; + static const jint STOP = 2; + static const jint TERMINATED = 3; +private: + volatile ::java::util::concurrent::RejectedExecutionHandler * handler; + volatile ::java::util::concurrent::ThreadFactory * 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 00000000000..85b2bfbb06e --- /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 + +class java::util::concurrent::TimeUnit$1 : public ::java::util::concurrent::TimeUnit +{ + +public: // actually package-private + TimeUnit$1(::java::lang::String *, jint); +public: + jlong toNanos(jlong); + jlong toMicros(jlong); + jlong toMillis(jlong); + jlong toSeconds(jlong); + jlong toMinutes(jlong); + jlong toHours(jlong); + jlong toDays(jlong); + jlong convert(jlong, ::java::util::concurrent::TimeUnit *); +public: // actually package-private + 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 00000000000..6392a88296a --- /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 + +class java::util::concurrent::TimeUnit$2 : public ::java::util::concurrent::TimeUnit +{ + +public: // actually package-private + TimeUnit$2(::java::lang::String *, jint); +public: + jlong toNanos(jlong); + jlong toMicros(jlong); + jlong toMillis(jlong); + jlong toSeconds(jlong); + jlong toMinutes(jlong); + jlong toHours(jlong); + jlong toDays(jlong); + jlong convert(jlong, ::java::util::concurrent::TimeUnit *); +public: // actually package-private + 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 00000000000..0e80899da9a --- /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 + +class java::util::concurrent::TimeUnit$3 : public ::java::util::concurrent::TimeUnit +{ + +public: // actually package-private + TimeUnit$3(::java::lang::String *, jint); +public: + jlong toNanos(jlong); + jlong toMicros(jlong); + jlong toMillis(jlong); + jlong toSeconds(jlong); + jlong toMinutes(jlong); + jlong toHours(jlong); + jlong toDays(jlong); + jlong convert(jlong, ::java::util::concurrent::TimeUnit *); +public: // actually package-private + 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 00000000000..fca74d3dbce --- /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 + +class java::util::concurrent::TimeUnit$4 : public ::java::util::concurrent::TimeUnit +{ + +public: // actually package-private + TimeUnit$4(::java::lang::String *, jint); +public: + jlong toNanos(jlong); + jlong toMicros(jlong); + jlong toMillis(jlong); + jlong toSeconds(jlong); + jlong toMinutes(jlong); + jlong toHours(jlong); + jlong toDays(jlong); + jlong convert(jlong, ::java::util::concurrent::TimeUnit *); +public: // actually package-private + 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 00000000000..54bf7dd61ac --- /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 + +class java::util::concurrent::TimeUnit$5 : public ::java::util::concurrent::TimeUnit +{ + +public: // actually package-private + TimeUnit$5(::java::lang::String *, jint); +public: + jlong toNanos(jlong); + jlong toMicros(jlong); + jlong toMillis(jlong); + jlong toSeconds(jlong); + jlong toMinutes(jlong); + jlong toHours(jlong); + jlong toDays(jlong); + jlong convert(jlong, ::java::util::concurrent::TimeUnit *); +public: // actually package-private + 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 00000000000..8439a71793d --- /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 + +class java::util::concurrent::TimeUnit$6 : public ::java::util::concurrent::TimeUnit +{ + +public: // actually package-private + TimeUnit$6(::java::lang::String *, jint); +public: + jlong toNanos(jlong); + jlong toMicros(jlong); + jlong toMillis(jlong); + jlong toSeconds(jlong); + jlong toMinutes(jlong); + jlong toHours(jlong); + jlong toDays(jlong); + jlong convert(jlong, ::java::util::concurrent::TimeUnit *); +public: // actually package-private + 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 00000000000..e7bac28508d --- /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 + +class java::util::concurrent::TimeUnit$7 : public ::java::util::concurrent::TimeUnit +{ + +public: // actually package-private + TimeUnit$7(::java::lang::String *, jint); +public: + jlong toNanos(jlong); + jlong toMicros(jlong); + jlong toMillis(jlong); + jlong toSeconds(jlong); + jlong toMinutes(jlong); + jlong toHours(jlong); + jlong toDays(jlong); + jlong convert(jlong, ::java::util::concurrent::TimeUnit *); +public: // actually package-private + 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 00000000000..fa6d497f697 --- /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 +#include + + +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 00000000000..6ce42b18071 --- /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 + +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 00000000000..08a6d597e14 --- /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 +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; + volatile jint __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 00000000000..286aff1d003 --- /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 +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; + volatile jint __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 00000000000..f8db2173f1d --- /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 +#include + +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 00000000000..ba2b7a5dc1a --- /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 +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 00000000000..e72055006cc --- /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 + +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 00000000000..c70a4e6d839 --- /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 +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: + volatile jlong __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 00000000000..797c6094368 --- /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 +#include + +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 00000000000..465b5333eb1 --- /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 +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 00000000000..f13fb1817bb --- /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 +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 00000000000..4fb8137d1a7 --- /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 + +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 00000000000..499b73b521b --- /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 + +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 00000000000..fe97809c558 --- /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 +#include + + +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 00000000000..e8862e8433f --- /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 +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; + volatile ::java::lang::Object * __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 00000000000..4715f0cbaea --- /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 +#include + +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 00000000000..e74a4507ee6 --- /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 +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 00000000000..d7e91e977e0 --- /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 + +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 00000000000..d76e45b1d95 --- /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 + +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 00000000000..8e116929900 --- /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 +#include + + +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 00000000000..3f78c8aa63d --- /dev/null +++ b/libjava/java/util/concurrent/atomic/natAtomicLong.cc @@ -0,0 +1,12 @@ +#include + +#include +#include +#include + +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 00000000000..8a14257c9df --- /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 + +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 00000000000..123ab81b563 --- /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 + +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 00000000000..423f2a06356 --- /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 + +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; + volatile jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) waitStatus; + volatile ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * prev; + volatile ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * next; + volatile ::java::lang::Thread * 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 00000000000..1e95c3d34b8 --- /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 +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; + volatile ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractOwnableSynchronizer)))) head; + volatile ::java::util::concurrent::locks::AbstractQueuedLongSynchronizer$Node * tail; + volatile jlong 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 00000000000..67ca64f6e98 --- /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 + +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 00000000000..0abbb8fd23a --- /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 + +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; + volatile jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) waitStatus; + volatile ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * prev; + volatile ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * next; + volatile ::java::lang::Thread * 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 00000000000..fc2b9df033d --- /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 +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; + volatile ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * __attribute__((aligned(__alignof__( ::java::util::concurrent::locks::AbstractOwnableSynchronizer)))) head; + volatile ::java::util::concurrent::locks::AbstractQueuedSynchronizer$Node * tail; + volatile jint 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 00000000000..141a4e919cd --- /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 + +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 00000000000..b00f601e71d --- /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 + +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 00000000000..15ef7306f8b --- /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 +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 00000000000..1f4ae2e7236 --- /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 + +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 00000000000..d4268afcde8 --- /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 + +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 00000000000..743a0bd75c0 --- /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 + +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 00000000000..b3656d0df53 --- /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 + +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 00000000000..5cac4b27fa2 --- /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 + +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 00000000000..05090b5b11c --- /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 + +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 00000000000..29a565ae4e4 --- /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 + +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 00000000000..0f48a6cb895 --- /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 + +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 00000000000..4813f0d8f2d --- /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 + +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 00000000000..c9dedf0df50 --- /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 + +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 * target$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 00000000000..d1d43078f84 --- /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 + +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 00000000000..4e57d53c654 --- /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 + +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 00000000000..3bea3cc54a1 --- /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 + +class java::util::concurrent::locks::ReentrantReadWriteLock : public ::java::lang::Object +{ + +public: + ReentrantReadWriteLock(); + ReentrantReadWriteLock(jboolean); + virtual ::java::util::concurrent::locks::ReentrantReadWriteLock$WriteLock * target$writeLock(); + virtual ::java::util::concurrent::locks::ReentrantReadWriteLock$ReadLock * target$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 00000000000..867bcea7739 --- /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 + +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 00000000000..628be03df7f --- /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 + +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 00000000000..c95ab948662 --- /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 +#include + +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 00000000000..4ea6da37bfa --- /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 + +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 00000000000..cf68dbf450c --- /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 +#include + +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 00000000000..8916b5bf14b --- /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 + +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 * target$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 00000000000..081be76bf9b --- /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 +#include + +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 00000000000..7e4441d7e3a --- /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 +#include + + +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 00000000000..184f307c5a7 --- /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 + +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 00000000000..b0f2e993230 --- /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 + +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 00000000000..0d1bbe02ddf --- /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 + +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 00000000000..e6c115e29d8 --- /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 + +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: + volatile jboolean __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 00000000000..e34a3db8707 --- /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 +#include + + +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 00000000000..16feec2b2c1 --- /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 + +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 00000000000..23b8ca6a1e5 --- /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 + +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 00000000000..def22454c6e --- /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 + +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 00000000000..2c722be60d2 --- /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 + +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 00000000000..34f51609326 --- /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 +#include + + +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 00000000000..1ef5738fefc --- /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 + +class java::util::logging::LogManager$1 : public ::java::lang::Object +{ + +public: // actually package-private + LogManager$1(); +public: + ::java::lang::String * getLoggerLevel(::java::lang::String *); + ::java::util::List * getLoggerNames(); + ::java::lang::String * getParentLoggerName(::java::lang::String *); + 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 00000000000..f552d65d74d --- /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 +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/LogRecord.h b/libjava/java/util/logging/LogRecord.h new file mode 100644 index 00000000000..44541590978 --- /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 +#include + + +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 00000000000..1c1f3e8595d --- /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 + +class java::util::logging::Logger$1 : public ::java::lang::Object +{ + +public: // actually package-private + Logger$1(); +public: + ::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 00000000000..c73a8d3c854 --- /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 +#include + + +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/LoggingMXBean.h b/libjava/java/util/logging/LoggingMXBean.h new file mode 100644 index 00000000000..4bac932e4d5 --- /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 + +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 00000000000..a3b803ac274 --- /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 + +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 00000000000..4ce638af9a0 --- /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 +#include + + +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 00000000000..6afece7191f --- /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 +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 00000000000..8286f13520f --- /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 + +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 00000000000..11dca983ffd --- /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 + +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 00000000000..48a585de097 --- /dev/null +++ b/libjava/java/util/logging/XMLFormatter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_logging_XMLFormatter__ +#define __java_util_logging_XMLFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class SimpleDateFormat; + } + } +} + +class java::util::logging::XMLFormatter : public ::java::util::logging::Formatter +{ + +public: + XMLFormatter(); +private: + static void appendTag(::java::lang::StringBuffer *, jint, ::java::lang::String *, ::java::lang::String *); + static void appendTag(::java::lang::StringBuffer *, 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/natResourceBundle.cc b/libjava/java/util/natResourceBundle.cc deleted file mode 100644 index e8d4fb4fd43..00000000000 --- a/libjava/java/util/natResourceBundle.cc +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 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. */ - -// Written by Tom Tromey - -#include - -#include -#include -#include -#include -#include -#include - -using namespace java::lang; - -java::lang::ClassLoader * -java::util::ResourceBundle::getCallingClassLoader () -{ - jclass caller = _Jv_StackTrace::GetCallingClass (&ResourceBundle::class$); - if (caller) - return caller->getClassLoaderInternal(); - return NULL; -} diff --git a/libjava/java/util/prefs/AbstractPreferences$1.h b/libjava/java/util/prefs/AbstractPreferences$1.h new file mode 100644 index 00000000000..97c3f53c752 --- /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 + +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: + void run(); +public: // actually package-private + ::java::util::prefs::AbstractPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::java::util::prefs::PreferenceChangeListener * val$l; + ::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 00000000000..45378c56ad5 --- /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 + +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: + 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$l; + ::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 00000000000..a4e3a028a36 --- /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 +#include + + +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 00000000000..a6851385275 --- /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 + +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 00000000000..dd81f5dc083 --- /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 + +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 00000000000..7a51b708b0c --- /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 + +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 00000000000..2ad05d6e1c0 --- /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 + +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 00000000000..790a957d2eb --- /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 + +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 00000000000..d450a31b767 --- /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 + +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 00000000000..09a3f1c9f2c --- /dev/null +++ b/libjava/java/util/prefs/Preferences$1.h @@ -0,0 +1,21 @@ + +// 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 + +class java::util::prefs::Preferences$1 : public ::java::lang::Object +{ + +public: // actually package-private + Preferences$1(); +public: + ::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 00000000000..b19a034454f --- /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 +#include + +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 00000000000..40207d480fd --- /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 + +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 00000000000..6b6acf8abf2 --- /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 + +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 00000000000..35cd1c1cab4 --- /dev/null +++ b/libjava/java/util/regex/Matcher.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_regex_Matcher__ +#define __java_util_regex_Matcher__ + +#pragma interface + +#include +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(); + ::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; +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 00000000000..7bfc275e55f --- /dev/null +++ b/libjava/java/util/regex/Pattern.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_regex_Pattern__ +#define __java_util_regex_Pattern__ + +#pragma interface + +#include +#include + +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(); +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 00000000000..670549a6a75 --- /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 + +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/zip/Adler32.h b/libjava/java/util/zip/Adler32.h new file mode 100644 index 00000000000..ebd8e33cfa9 --- /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 +#include + + +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 00000000000..af515fc99fe --- /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 +#include + + +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 00000000000..d9e80abe911 --- /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 +#include + + +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 00000000000..5cf53c9f286 --- /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 +#include + + +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 00000000000..66ab907c80b --- /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 +#include + + +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 00000000000..5ebfbcf4b1f --- /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 + +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 00000000000..61d21899f7e --- /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 +#include + +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 index 8ac8a34a6ae..47383ab4baa 100644 --- a/libjava/java/util/zip/Deflater.java +++ b/libjava/java/util/zip/Deflater.java @@ -174,12 +174,32 @@ public class Deflater /** * Gets the number of input bytes processed so far. */ - public native int getTotalIn(); + @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 int getTotalOut(); + public native long getBytesWritten(); /** * Finalizes this object. diff --git a/libjava/java/util/zip/DeflaterOutputStream.h b/libjava/java/util/zip/DeflaterOutputStream.h new file mode 100644 index 00000000000..307f364ad11 --- /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 +#include + + +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 00000000000..20777fabace --- /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 +#include + + +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 00000000000..1680d8964dc --- /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 +#include + + +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 00000000000..25ebdc6d6b8 --- /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 +#include + +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/InflaterInputStream.h b/libjava/java/util/zip/InflaterInputStream.h new file mode 100644 index 00000000000..b576c364655 --- /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 +#include + + +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 00000000000..3cf795d7b69 --- /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 + +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 00000000000..7e1cc8f518f --- /dev/null +++ b/libjava/java/util/zip/ZipEntry.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_zip_ZipEntry__ +#define __java_util_zip_ZipEntry__ + +#pragma interface + +#include +#include + + +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(); +private: + static ::java::util::Calendar * getCalendar(); +public: + 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 jint KNOWN_SIZE = 1; + static const jint KNOWN_CSIZE = 2; + static const jint KNOWN_CRC = 4; + static const jint KNOWN_TIME = 8; + static const jint KNOWN_EXTRA = 16; + static ::java::util::Calendar * cal; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + jint size; + jlong compressedSize; + jint crc; + jint dostime; + jshort known; + jshort method; + JArray< jbyte > * extra; + ::java::lang::String * comment; +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 00000000000..3a7b1fc5e7d --- /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 + +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 00000000000..85281339f57 --- /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 + +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: + 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 00000000000..f258f9f0c16 --- /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 +#include + +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 00000000000..40a7e975b2e --- /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 + +class java::util::zip::ZipFile$ZipEntryEnumeration : public ::java::lang::Object +{ + +public: + ZipFile$ZipEntryEnumeration(::java::util::Iterator *); + virtual jboolean hasMoreElements(); + virtual ::java::util::zip::ZipEntry * target$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 00000000000..7c0f69ca297 --- /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 + +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 00000000000..4a84395060e --- /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 +#include + + +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 00000000000..0de152efc63 --- /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 +#include + + +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 index 23e1201b543..9ff17210960 100644 --- a/libjava/java/util/zip/natDeflater.cc +++ b/libjava/java/util/zip/natDeflater.cc @@ -1,6 +1,6 @@ // natDeflater.cc - Implementation of Deflater native methods. -/* Copyright (C) 1999, 2002 Free Software Foundation +/* Copyright (C) 1999, 2002, 2006 Free Software Foundation This file is part of libgcj. @@ -93,16 +93,16 @@ java::util::zip::Deflater::getAdler () return s->adler; } -jint -java::util::zip::Deflater::getTotalIn () +jlong +java::util::zip::Deflater::getBytesRead () { JvSynchronize sync (this); z_streamp s = (z_streamp) zstream; return s->total_in; } -jint -java::util::zip::Deflater::getTotalOut () +jlong +java::util::zip::Deflater::getBytesWritten () { JvSynchronize sync (this); z_streamp s = (z_streamp) zstream; diff --git a/libjava/javax/accessibility/Accessible.h b/libjava/javax/accessibility/Accessible.h new file mode 100644 index 00000000000..04dab4e5794 --- /dev/null +++ b/libjava/javax/accessibility/Accessible.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_Accessible__ +#define __javax_accessibility_Accessible__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleContext; + } + } +} + +class javax::accessibility::Accessible : public ::java::lang::Object +{ + +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_Accessible__ diff --git a/libjava/javax/accessibility/AccessibleAction.h b/libjava/javax/accessibility/AccessibleAction.h new file mode 100644 index 00000000000..ede23c9d2c4 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleAction.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleAction__ +#define __javax_accessibility_AccessibleAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleAction; + } + } +} + +class javax::accessibility::AccessibleAction : public ::java::lang::Object +{ + +public: + virtual jint getAccessibleActionCount() = 0; + virtual ::java::lang::String * getAccessibleActionDescription(jint) = 0; + virtual jboolean doAccessibleAction(jint) = 0; + static ::java::lang::String * DECREMENT; + static ::java::lang::String * INCREMENT; + static ::java::lang::String * TOGGLE_EXPAND; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleAction__ diff --git a/libjava/javax/accessibility/AccessibleAttributeSequence.h b/libjava/javax/accessibility/AccessibleAttributeSequence.h new file mode 100644 index 00000000000..e9d76b02db1 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleAttributeSequence.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleAttributeSequence__ +#define __javax_accessibility_AccessibleAttributeSequence__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleAttributeSequence; + } + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class javax::accessibility::AccessibleAttributeSequence : public ::java::lang::Object +{ + +public: + AccessibleAttributeSequence(); + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attributes; + jint startIndex; + jint endIndex; + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleAttributeSequence__ diff --git a/libjava/javax/accessibility/AccessibleBundle.h b/libjava/javax/accessibility/AccessibleBundle.h new file mode 100644 index 00000000000..65413778af7 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleBundle.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleBundle__ +#define __javax_accessibility_AccessibleBundle__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleBundle; + } + } +} + +class javax::accessibility::AccessibleBundle : public ::java::lang::Object +{ + +public: + AccessibleBundle(); +public: // actually protected + virtual ::java::lang::String * toDisplayString(::java::lang::String *, ::java::util::Locale *); +public: + virtual ::java::lang::String * toDisplayString(::java::util::Locale *); + virtual ::java::lang::String * toDisplayString(); + virtual ::java::lang::String * toString(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleBundle__ diff --git a/libjava/javax/accessibility/AccessibleComponent.h b/libjava/javax/accessibility/AccessibleComponent.h new file mode 100644 index 00000000000..3f260f24c31 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleComponent.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleComponent__ +#define __javax_accessibility_AccessibleComponent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Cursor; + class Dimension; + class Font; + class FontMetrics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleComponent; + } + } +} + +class javax::accessibility::AccessibleComponent : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Color * getBackground() = 0; + virtual void setBackground(::java::awt::Color *) = 0; + virtual ::java::awt::Color * getForeground() = 0; + virtual void setForeground(::java::awt::Color *) = 0; + virtual ::java::awt::Cursor * getCursor() = 0; + virtual void setCursor(::java::awt::Cursor *) = 0; + virtual ::java::awt::Font * getFont() = 0; + virtual void setFont(::java::awt::Font *) = 0; + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0; + virtual jboolean isEnabled() = 0; + virtual void setEnabled(jboolean) = 0; + virtual jboolean isVisible() = 0; + virtual void setVisible(jboolean) = 0; + virtual jboolean isShowing() = 0; + virtual jboolean contains(::java::awt::Point *) = 0; + virtual ::java::awt::Point * getLocationOnScreen() = 0; + virtual ::java::awt::Point * getLocation() = 0; + virtual void setLocation(::java::awt::Point *) = 0; + virtual ::java::awt::Rectangle * getBounds() = 0; + virtual void setBounds(::java::awt::Rectangle *) = 0; + virtual ::java::awt::Dimension * getSize() = 0; + virtual void setSize(::java::awt::Dimension *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *) = 0; + virtual jboolean isFocusTraversable() = 0; + virtual void requestFocus() = 0; + virtual void addFocusListener(::java::awt::event::FocusListener *) = 0; + virtual void removeFocusListener(::java::awt::event::FocusListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleComponent__ diff --git a/libjava/javax/accessibility/AccessibleContext.h b/libjava/javax/accessibility/AccessibleContext.h new file mode 100644 index 00000000000..764af3aa883 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleContext.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleContext__ +#define __javax_accessibility_AccessibleContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeListener; + class PropertyChangeSupport; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleAction; + class AccessibleComponent; + class AccessibleContext; + class AccessibleEditableText; + class AccessibleIcon; + class AccessibleRelationSet; + class AccessibleRole; + class AccessibleSelection; + class AccessibleStateSet; + class AccessibleTable; + class AccessibleText; + class AccessibleValue; + } + } +} + +class javax::accessibility::AccessibleContext : public ::java::lang::Object +{ + +public: + AccessibleContext(); + virtual ::java::lang::String * getAccessibleName(); + virtual void setAccessibleName(::java::lang::String *); + virtual ::java::lang::String * getAccessibleDescription(); + virtual void setAccessibleDescription(::java::lang::String *); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole() = 0; + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet() = 0; + virtual ::javax::accessibility::Accessible * getAccessibleParent(); + virtual void setAccessibleParent(::javax::accessibility::Accessible *); + virtual jint getAccessibleIndexInParent() = 0; + virtual jint getAccessibleChildrenCount() = 0; + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint) = 0; + virtual ::java::util::Locale * getLocale() = 0; + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual ::javax::accessibility::AccessibleAction * getAccessibleAction(); + virtual ::javax::accessibility::AccessibleComponent * getAccessibleComponent(); + virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection(); + virtual ::javax::accessibility::AccessibleText * getAccessibleText(); + virtual ::javax::accessibility::AccessibleEditableText * getAccessibleEditableText(); + virtual ::javax::accessibility::AccessibleValue * getAccessibleValue(); + virtual JArray< ::javax::accessibility::AccessibleIcon * > * getAccessibleIcon(); + virtual ::javax::accessibility::AccessibleRelationSet * getAccessibleRelationSet(); + virtual ::javax::accessibility::AccessibleTable * getAccessibleTable(); + virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::String * ACCESSIBLE_NAME_PROPERTY; + static ::java::lang::String * ACCESSIBLE_DESCRIPTION_PROPERTY; + static ::java::lang::String * ACCESSIBLE_STATE_PROPERTY; + static ::java::lang::String * ACCESSIBLE_VALUE_PROPERTY; + static ::java::lang::String * ACCESSIBLE_SELECTION_PROPERTY; + static ::java::lang::String * ACCESSIBLE_TEXT_PROPERTY; + static ::java::lang::String * ACCESSIBLE_CARET_PROPERTY; + static ::java::lang::String * ACCESSIBLE_VISIBLE_DATA_PROPERTY; + static ::java::lang::String * ACCESSIBLE_CHILD_PROPERTY; + static ::java::lang::String * ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY; + static ::java::lang::String * ACCESSIBLE_TABLE_CAPTION_CHANGED; + static ::java::lang::String * ACCESSIBLE_TABLE_SUMMARY_CHANGED; + static ::java::lang::String * ACCESSIBLE_TABLE_MODEL_CHANGED; + static ::java::lang::String * ACCESSIBLE_TABLE_ROW_HEADER_CHANGED; + static ::java::lang::String * ACCESSIBLE_TABLE_ROW_DESCRIPTION_CHANGED; + static ::java::lang::String * ACCESSIBLE_TABLE_COLUMN_HEADER_CHANGED; + static ::java::lang::String * ACCESSIBLE_TABLE_COLUMN_DESCRIPTION_CHANGED; + static ::java::lang::String * ACCESSIBLE_ACTION_PROPERTY; + static ::java::lang::String * ACCESSIBLE_HYPERTEXT_OFFSET; + static ::java::lang::String * ACCESSIBLE_COMPONENT_BOUNDS_CHANGED; + static ::java::lang::String * ACCESSIBLE_INVALIDATE_CHILDREN; + static ::java::lang::String * ACCESSIBLE_TEXT_ATTRIBUTES_CHANGED; +public: // actually protected + ::javax::accessibility::Accessible * __attribute__((aligned(__alignof__( ::java::lang::Object)))) accessibleParent; + ::java::lang::String * accessibleName; + ::java::lang::String * accessibleDescription; +private: + ::java::beans::PropertyChangeSupport * listeners; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleContext__ diff --git a/libjava/javax/accessibility/AccessibleEditableText.h b/libjava/javax/accessibility/AccessibleEditableText.h new file mode 100644 index 00000000000..715abae2ff3 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleEditableText.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleEditableText__ +#define __javax_accessibility_AccessibleEditableText__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleEditableText; + } + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class javax::accessibility::AccessibleEditableText : public ::java::lang::Object +{ + +public: + virtual void setTextContents(::java::lang::String *) = 0; + virtual void insertTextAtIndex(jint, ::java::lang::String *) = 0; + virtual ::java::lang::String * getTextRange(jint, jint) = 0; + virtual void delete$(jint, jint) = 0; + virtual void cut(jint, jint) = 0; + virtual void paste(jint) = 0; + virtual void replaceText(jint, jint, ::java::lang::String *) = 0; + virtual void selectText(jint, jint) = 0; + virtual void setAttributes(jint, jint, ::javax::swing::text::AttributeSet *) = 0; + virtual jint getIndexAtPoint(::java::awt::Point *) = 0; + virtual ::java::awt::Rectangle * getCharacterBounds(jint) = 0; + virtual jint getCharCount() = 0; + virtual jint getCaretPosition() = 0; + virtual ::java::lang::String * getAtIndex(jint, jint) = 0; + virtual ::java::lang::String * getAfterIndex(jint, jint) = 0; + virtual ::java::lang::String * getBeforeIndex(jint, jint) = 0; + virtual ::javax::swing::text::AttributeSet * getCharacterAttribute(jint) = 0; + virtual jint getSelectionStart() = 0; + virtual jint getSelectionEnd() = 0; + virtual ::java::lang::String * getSelectedText() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleEditableText__ diff --git a/libjava/javax/accessibility/AccessibleExtendedComponent.h b/libjava/javax/accessibility/AccessibleExtendedComponent.h new file mode 100644 index 00000000000..92563b3b435 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleExtendedComponent.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleExtendedComponent__ +#define __javax_accessibility_AccessibleExtendedComponent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Cursor; + class Dimension; + class Font; + class FontMetrics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleExtendedComponent; + class AccessibleKeyBinding; + } + } +} + +class javax::accessibility::AccessibleExtendedComponent : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getToolTipText() = 0; + virtual ::java::lang::String * getTitledBorderText() = 0; + virtual ::javax::accessibility::AccessibleKeyBinding * getAccessibleKeyBinding() = 0; + virtual ::java::awt::Color * getBackground() = 0; + virtual void setBackground(::java::awt::Color *) = 0; + virtual ::java::awt::Color * getForeground() = 0; + virtual void setForeground(::java::awt::Color *) = 0; + virtual ::java::awt::Cursor * getCursor() = 0; + virtual void setCursor(::java::awt::Cursor *) = 0; + virtual ::java::awt::Font * getFont() = 0; + virtual void setFont(::java::awt::Font *) = 0; + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *) = 0; + virtual jboolean isEnabled() = 0; + virtual void setEnabled(jboolean) = 0; + virtual jboolean isVisible() = 0; + virtual void setVisible(jboolean) = 0; + virtual jboolean isShowing() = 0; + virtual jboolean contains(::java::awt::Point *) = 0; + virtual ::java::awt::Point * getLocationOnScreen() = 0; + virtual ::java::awt::Point * getLocation() = 0; + virtual void setLocation(::java::awt::Point *) = 0; + virtual ::java::awt::Rectangle * getBounds() = 0; + virtual void setBounds(::java::awt::Rectangle *) = 0; + virtual ::java::awt::Dimension * getSize() = 0; + virtual void setSize(::java::awt::Dimension *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *) = 0; + virtual jboolean isFocusTraversable() = 0; + virtual void requestFocus() = 0; + virtual void addFocusListener(::java::awt::event::FocusListener *) = 0; + virtual void removeFocusListener(::java::awt::event::FocusListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleExtendedComponent__ diff --git a/libjava/javax/accessibility/AccessibleExtendedTable.h b/libjava/javax/accessibility/AccessibleExtendedTable.h new file mode 100644 index 00000000000..995b3e50c62 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleExtendedTable.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleExtendedTable__ +#define __javax_accessibility_AccessibleExtendedTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleExtendedTable; + class AccessibleTable; + } + } +} + +class javax::accessibility::AccessibleExtendedTable : public ::java::lang::Object +{ + +public: + virtual jint getAccessibleRow(jint) = 0; + virtual jint getAccessibleColumn(jint) = 0; + virtual jint getAccessibleIndex(jint, jint) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleCaption() = 0; + virtual void setAccessibleCaption(::javax::accessibility::Accessible *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleSummary() = 0; + virtual void setAccessibleSummary(::javax::accessibility::Accessible *) = 0; + virtual jint getAccessibleRowCount() = 0; + virtual jint getAccessibleColumnCount() = 0; + virtual ::javax::accessibility::Accessible * getAccessibleAt(jint, jint) = 0; + virtual jint getAccessibleRowExtentAt(jint, jint) = 0; + virtual jint getAccessibleColumnExtentAt(jint, jint) = 0; + virtual ::javax::accessibility::AccessibleTable * getAccessibleRowHeader() = 0; + virtual void setAccessibleRowHeader(::javax::accessibility::AccessibleTable *) = 0; + virtual ::javax::accessibility::AccessibleTable * getAccessibleColumnHeader() = 0; + virtual void setAccessibleColumnHeader(::javax::accessibility::AccessibleTable *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleRowDescription(jint) = 0; + virtual void setAccessibleRowDescription(jint, ::javax::accessibility::Accessible *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleColumnDescription(jint) = 0; + virtual void setAccessibleColumnDescription(jint, ::javax::accessibility::Accessible *) = 0; + virtual jboolean isAccessibleSelected(jint, jint) = 0; + virtual jboolean isAccessibleRowSelected(jint) = 0; + virtual jboolean isAccessibleColumnSelected(jint) = 0; + virtual JArray< jint > * getSelectedAccessibleRows() = 0; + virtual JArray< jint > * getSelectedAccessibleColumns() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleExtendedTable__ diff --git a/libjava/javax/accessibility/AccessibleExtendedText.h b/libjava/javax/accessibility/AccessibleExtendedText.h new file mode 100644 index 00000000000..b947e664356 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleExtendedText.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleExtendedText__ +#define __javax_accessibility_AccessibleExtendedText__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleExtendedText; + class AccessibleTextSequence; + } + } +} + +class javax::accessibility::AccessibleExtendedText : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Rectangle * getTextBounds(jint, jint) = 0; + virtual ::java::lang::String * getTextRange(jint, jint) = 0; + virtual ::javax::accessibility::AccessibleTextSequence * getTextSequenceAfter(jint, jint) = 0; + virtual ::javax::accessibility::AccessibleTextSequence * getTextSequenceAt(jint, jint) = 0; + virtual ::javax::accessibility::AccessibleTextSequence * getTextSequenceBefore(jint, jint) = 0; + static const jint LINE = 4; + static const jint ATTRIBUTE_RUN = 5; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleExtendedText__ diff --git a/libjava/javax/accessibility/AccessibleHyperlink.h b/libjava/javax/accessibility/AccessibleHyperlink.h new file mode 100644 index 00000000000..08833559f19 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleHyperlink.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleHyperlink__ +#define __javax_accessibility_AccessibleHyperlink__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleHyperlink; + } + } +} + +class javax::accessibility::AccessibleHyperlink : public ::java::lang::Object +{ + +public: + AccessibleHyperlink(); + virtual jboolean isValid() = 0; + virtual jint getAccessibleActionCount() = 0; + virtual jboolean doAccessibleAction(jint) = 0; + virtual ::java::lang::String * getAccessibleActionDescription(jint) = 0; + virtual ::java::lang::Object * getAccessibleActionObject(jint) = 0; + virtual ::java::lang::Object * getAccessibleActionAnchor(jint) = 0; + virtual jint getStartIndex() = 0; + virtual jint getEndIndex() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleHyperlink__ diff --git a/libjava/javax/accessibility/AccessibleHypertext.h b/libjava/javax/accessibility/AccessibleHypertext.h new file mode 100644 index 00000000000..0aac63529ad --- /dev/null +++ b/libjava/javax/accessibility/AccessibleHypertext.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleHypertext__ +#define __javax_accessibility_AccessibleHypertext__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleHyperlink; + class AccessibleHypertext; + } + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class javax::accessibility::AccessibleHypertext : public ::java::lang::Object +{ + +public: + virtual jint getLinkCount() = 0; + virtual ::javax::accessibility::AccessibleHyperlink * getLink(jint) = 0; + virtual jint getLinkIndex(jint) = 0; + virtual jint getIndexAtPoint(::java::awt::Point *) = 0; + virtual ::java::awt::Rectangle * getCharacterBounds(jint) = 0; + virtual jint getCharCount() = 0; + virtual jint getCaretPosition() = 0; + virtual ::java::lang::String * getAtIndex(jint, jint) = 0; + virtual ::java::lang::String * getAfterIndex(jint, jint) = 0; + virtual ::java::lang::String * getBeforeIndex(jint, jint) = 0; + virtual ::javax::swing::text::AttributeSet * getCharacterAttribute(jint) = 0; + virtual jint getSelectionStart() = 0; + virtual jint getSelectionEnd() = 0; + virtual ::java::lang::String * getSelectedText() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleHypertext__ diff --git a/libjava/javax/accessibility/AccessibleIcon.h b/libjava/javax/accessibility/AccessibleIcon.h new file mode 100644 index 00000000000..c2966204818 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleIcon.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleIcon__ +#define __javax_accessibility_AccessibleIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleIcon; + } + } +} + +class javax::accessibility::AccessibleIcon : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAccessibleIconDescription() = 0; + virtual void setAccessibleIconDescription(::java::lang::String *) = 0; + virtual jint getAccessibleIconWidth() = 0; + virtual jint getAccessibleIconHeight() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleIcon__ diff --git a/libjava/javax/accessibility/AccessibleKeyBinding.h b/libjava/javax/accessibility/AccessibleKeyBinding.h new file mode 100644 index 00000000000..472b7d0b761 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleKeyBinding.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleKeyBinding__ +#define __javax_accessibility_AccessibleKeyBinding__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleKeyBinding; + } + } +} + +class javax::accessibility::AccessibleKeyBinding : public ::java::lang::Object +{ + +public: + virtual jint getAccessibleKeyBindingCount() = 0; + virtual ::java::lang::Object * getAccessibleKeyBinding(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleKeyBinding__ diff --git a/libjava/javax/accessibility/AccessibleRelation.h b/libjava/javax/accessibility/AccessibleRelation.h new file mode 100644 index 00000000000..f0d3a9dab99 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleRelation.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleRelation__ +#define __javax_accessibility_AccessibleRelation__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRelation; + } + } +} + +class javax::accessibility::AccessibleRelation : public ::javax::accessibility::AccessibleBundle +{ + +public: + AccessibleRelation(::java::lang::String *); + AccessibleRelation(::java::lang::String *, ::java::lang::Object *); + AccessibleRelation(::java::lang::String *, JArray< ::java::lang::Object * > *); + virtual ::java::lang::String * getKey(); + virtual JArray< ::java::lang::Object * > * getTarget(); + virtual void setTarget(::java::lang::Object *); + virtual void setTarget(JArray< ::java::lang::Object * > *); + static ::java::lang::String * LABEL_FOR; + static ::java::lang::String * LABELED_BY; + static ::java::lang::String * MEMBER_OF; + static ::java::lang::String * CONTROLLER_FOR; + static ::java::lang::String * CONTROLLED_BY; + static ::java::lang::String * LABEL_FOR_PROPERTY; + static ::java::lang::String * LABELED_BY_PROPERTY; + static ::java::lang::String * MEMBER_OF_PROPERTY; + static ::java::lang::String * CONTROLLER_FOR_PROPERTY; + static ::java::lang::String * CONTROLLED_BY_PROPERTY; + static ::java::lang::String * CHILD_NODE_OF; + static ::java::lang::String * CHILD_NODE_OF_PROPERTY; + static ::java::lang::String * EMBEDDED_BY; + static ::java::lang::String * EMBEDDED_BY_PROPERTY; + static ::java::lang::String * EMBEDS; + static ::java::lang::String * EMBEDS_PROPERTY; + static ::java::lang::String * FLOWS_FROM; + static ::java::lang::String * FLOWS_FROM_PROPERTY; + static ::java::lang::String * FLOWS_TO; + static ::java::lang::String * FLOWS_TO_PROPERTY; + static ::java::lang::String * PARENT_WINDOW_OF; + static ::java::lang::String * PARENT_WINDOW_OF_PROPERTY; + static ::java::lang::String * SUBWINDOW_OF; + static ::java::lang::String * SUBWINDOW_OF_PROPERTY; +private: + static JArray< ::java::lang::Object * > * EMPTY_TARGETS; +public: // actually package-private + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleBundle)))) targets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleRelation__ diff --git a/libjava/javax/accessibility/AccessibleRelationSet.h b/libjava/javax/accessibility/AccessibleRelationSet.h new file mode 100644 index 00000000000..6c2d4d42afd --- /dev/null +++ b/libjava/javax/accessibility/AccessibleRelationSet.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleRelationSet__ +#define __javax_accessibility_AccessibleRelationSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRelation; + class AccessibleRelationSet; + } + } +} + +class javax::accessibility::AccessibleRelationSet : public ::java::lang::Object +{ + +public: + AccessibleRelationSet(); + AccessibleRelationSet(JArray< ::javax::accessibility::AccessibleRelation * > *); + virtual jboolean add(::javax::accessibility::AccessibleRelation *); + virtual void addAll(JArray< ::javax::accessibility::AccessibleRelation * > *); + virtual jboolean remove(::javax::accessibility::AccessibleRelation *); + virtual void clear(); + virtual jint size(); + virtual jboolean contains(::java::lang::String *); + virtual ::javax::accessibility::AccessibleRelation * get(::java::lang::String *); + virtual JArray< ::javax::accessibility::AccessibleRelation * > * toArray(); + virtual ::java::lang::String * toString(); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) relations; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleRelationSet__ diff --git a/libjava/javax/accessibility/AccessibleResourceBundle.h b/libjava/javax/accessibility/AccessibleResourceBundle.h new file mode 100644 index 00000000000..87370a8a23d --- /dev/null +++ b/libjava/javax/accessibility/AccessibleResourceBundle.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleResourceBundle__ +#define __javax_accessibility_AccessibleResourceBundle__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleResourceBundle; + } + } +} + +class javax::accessibility::AccessibleResourceBundle : public ::java::util::ListResourceBundle +{ + +public: + AccessibleResourceBundle(); + virtual JArray< JArray< ::java::lang::Object * > * > * getContents(); + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleResourceBundle__ diff --git a/libjava/javax/accessibility/AccessibleRole.h b/libjava/javax/accessibility/AccessibleRole.h new file mode 100644 index 00000000000..1fd9e3cf0d4 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleRole.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleRole__ +#define __javax_accessibility_AccessibleRole__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + } +} + +class javax::accessibility::AccessibleRole : public ::javax::accessibility::AccessibleBundle +{ + +public: // actually protected + AccessibleRole(::java::lang::String *); +public: + static ::javax::accessibility::AccessibleRole * ALERT; + static ::javax::accessibility::AccessibleRole * COLUMN_HEADER; + static ::javax::accessibility::AccessibleRole * CANVAS; + static ::javax::accessibility::AccessibleRole * COMBO_BOX; + static ::javax::accessibility::AccessibleRole * DESKTOP_ICON; + static ::javax::accessibility::AccessibleRole * INTERNAL_FRAME; + static ::javax::accessibility::AccessibleRole * DESKTOP_PANE; + static ::javax::accessibility::AccessibleRole * OPTION_PANE; + static ::javax::accessibility::AccessibleRole * WINDOW; + static ::javax::accessibility::AccessibleRole * FRAME; + static ::javax::accessibility::AccessibleRole * DIALOG; + static ::javax::accessibility::AccessibleRole * COLOR_CHOOSER; + static ::javax::accessibility::AccessibleRole * DIRECTORY_PANE; + static ::javax::accessibility::AccessibleRole * FILE_CHOOSER; + static ::javax::accessibility::AccessibleRole * FILLER; + static ::javax::accessibility::AccessibleRole * HYPERLINK; + static ::javax::accessibility::AccessibleRole * ICON; + static ::javax::accessibility::AccessibleRole * LABEL; + static ::javax::accessibility::AccessibleRole * ROOT_PANE; + static ::javax::accessibility::AccessibleRole * GLASS_PANE; + static ::javax::accessibility::AccessibleRole * LAYERED_PANE; + static ::javax::accessibility::AccessibleRole * LIST; + static ::javax::accessibility::AccessibleRole * LIST_ITEM; + static ::javax::accessibility::AccessibleRole * MENU_BAR; + static ::javax::accessibility::AccessibleRole * POPUP_MENU; + static ::javax::accessibility::AccessibleRole * MENU; + static ::javax::accessibility::AccessibleRole * MENU_ITEM; + static ::javax::accessibility::AccessibleRole * SEPARATOR; + static ::javax::accessibility::AccessibleRole * PAGE_TAB_LIST; + static ::javax::accessibility::AccessibleRole * PAGE_TAB; + static ::javax::accessibility::AccessibleRole * PANEL; + static ::javax::accessibility::AccessibleRole * PROGRESS_BAR; + static ::javax::accessibility::AccessibleRole * PASSWORD_TEXT; + static ::javax::accessibility::AccessibleRole * PUSH_BUTTON; + static ::javax::accessibility::AccessibleRole * TOGGLE_BUTTON; + static ::javax::accessibility::AccessibleRole * CHECK_BOX; + static ::javax::accessibility::AccessibleRole * RADIO_BUTTON; + static ::javax::accessibility::AccessibleRole * ROW_HEADER; + static ::javax::accessibility::AccessibleRole * SCROLL_PANE; + static ::javax::accessibility::AccessibleRole * SCROLL_BAR; + static ::javax::accessibility::AccessibleRole * VIEWPORT; + static ::javax::accessibility::AccessibleRole * SLIDER; + static ::javax::accessibility::AccessibleRole * SPLIT_PANE; + static ::javax::accessibility::AccessibleRole * TABLE; + static ::javax::accessibility::AccessibleRole * TEXT; + static ::javax::accessibility::AccessibleRole * TREE; + static ::javax::accessibility::AccessibleRole * TOOL_BAR; + static ::javax::accessibility::AccessibleRole * TOOL_TIP; + static ::javax::accessibility::AccessibleRole * AWT_COMPONENT; + static ::javax::accessibility::AccessibleRole * SWING_COMPONENT; + static ::javax::accessibility::AccessibleRole * UNKNOWN; + static ::javax::accessibility::AccessibleRole * STATUS_BAR; + static ::javax::accessibility::AccessibleRole * DATE_EDITOR; + static ::javax::accessibility::AccessibleRole * SPIN_BOX; + static ::javax::accessibility::AccessibleRole * FONT_CHOOSER; + static ::javax::accessibility::AccessibleRole * GROUP_BOX; + static ::javax::accessibility::AccessibleRole * EDITBAR; + static ::javax::accessibility::AccessibleRole * FOOTER; + static ::javax::accessibility::AccessibleRole * HEADER; + static ::javax::accessibility::AccessibleRole * PARAGRAPH; + static ::javax::accessibility::AccessibleRole * PROGRESS_MONITOR; + static ::javax::accessibility::AccessibleRole * RULER; + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleRole__ diff --git a/libjava/javax/accessibility/AccessibleSelection.h b/libjava/javax/accessibility/AccessibleSelection.h new file mode 100644 index 00000000000..3ab7b44948f --- /dev/null +++ b/libjava/javax/accessibility/AccessibleSelection.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleSelection__ +#define __javax_accessibility_AccessibleSelection__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleSelection; + } + } +} + +class javax::accessibility::AccessibleSelection : public ::java::lang::Object +{ + +public: + virtual jint getAccessibleSelectionCount() = 0; + virtual ::javax::accessibility::Accessible * getAccessibleSelection(jint) = 0; + virtual jboolean isAccessibleChildSelected(jint) = 0; + virtual void addAccessibleSelection(jint) = 0; + virtual void removeAccessibleSelection(jint) = 0; + virtual void clearAccessibleSelection() = 0; + virtual void selectAllAccessibleSelection() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleSelection__ diff --git a/libjava/javax/accessibility/AccessibleState.h b/libjava/javax/accessibility/AccessibleState.h new file mode 100644 index 00000000000..3bc1adfe6b5 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleState.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleState__ +#define __javax_accessibility_AccessibleState__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleState; + } + } +} + +class javax::accessibility::AccessibleState : public ::javax::accessibility::AccessibleBundle +{ + +public: // actually protected + AccessibleState(::java::lang::String *); +public: + static ::javax::accessibility::AccessibleState * ACTIVE; + static ::javax::accessibility::AccessibleState * PRESSED; + static ::javax::accessibility::AccessibleState * ARMED; + static ::javax::accessibility::AccessibleState * BUSY; + static ::javax::accessibility::AccessibleState * CHECKED; + static ::javax::accessibility::AccessibleState * EDITABLE; + static ::javax::accessibility::AccessibleState * EXPANDABLE; + static ::javax::accessibility::AccessibleState * COLLAPSED; + static ::javax::accessibility::AccessibleState * EXPANDED; + static ::javax::accessibility::AccessibleState * ENABLED; + static ::javax::accessibility::AccessibleState * FOCUSABLE; + static ::javax::accessibility::AccessibleState * FOCUSED; + static ::javax::accessibility::AccessibleState * ICONIFIED; + static ::javax::accessibility::AccessibleState * INDETERMINATE; + static ::javax::accessibility::AccessibleState * MANAGES_DESCENDANTS; + static ::javax::accessibility::AccessibleState * MODAL; + static ::javax::accessibility::AccessibleState * OPAQUE; + static ::javax::accessibility::AccessibleState * RESIZABLE; + static ::javax::accessibility::AccessibleState * MULTISELECTABLE; + static ::javax::accessibility::AccessibleState * SELECTABLE; + static ::javax::accessibility::AccessibleState * SELECTED; + static ::javax::accessibility::AccessibleState * SHOWING; + static ::javax::accessibility::AccessibleState * TRUNCATED; + static ::javax::accessibility::AccessibleState * VISIBLE; + static ::javax::accessibility::AccessibleState * VERTICAL; + static ::javax::accessibility::AccessibleState * HORIZONTAL; + static ::javax::accessibility::AccessibleState * SINGLE_LINE; + static ::javax::accessibility::AccessibleState * MULTI_LINE; + static ::javax::accessibility::AccessibleState * TRANSIENT; + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleState__ diff --git a/libjava/javax/accessibility/AccessibleStateSet.h b/libjava/javax/accessibility/AccessibleStateSet.h new file mode 100644 index 00000000000..cf34e3aed03 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleStateSet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleStateSet__ +#define __javax_accessibility_AccessibleStateSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleState; + class AccessibleStateSet; + } + } +} + +class javax::accessibility::AccessibleStateSet : public ::java::lang::Object +{ + +public: + AccessibleStateSet(); + AccessibleStateSet(JArray< ::javax::accessibility::AccessibleState * > *); + virtual jboolean add(::javax::accessibility::AccessibleState *); + virtual void addAll(JArray< ::javax::accessibility::AccessibleState * > *); + virtual jboolean remove(::javax::accessibility::AccessibleState *); + virtual void clear(); + virtual jboolean contains(::javax::accessibility::AccessibleState *); + virtual JArray< ::javax::accessibility::AccessibleState * > * toArray(); + virtual ::java::lang::String * toString(); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) states; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleStateSet__ diff --git a/libjava/javax/accessibility/AccessibleStreamable.h b/libjava/javax/accessibility/AccessibleStreamable.h new file mode 100644 index 00000000000..ed0e5ab1d43 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleStreamable.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleStreamable__ +#define __javax_accessibility_AccessibleStreamable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace datatransfer + { + class DataFlavor; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleStreamable; + } + } +} + +class javax::accessibility::AccessibleStreamable : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getMimeTypes() = 0; + virtual ::java::io::InputStream * getStream(::java::awt::datatransfer::DataFlavor *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleStreamable__ diff --git a/libjava/javax/accessibility/AccessibleTable.h b/libjava/javax/accessibility/AccessibleTable.h new file mode 100644 index 00000000000..0c3531bbcb5 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleTable.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleTable__ +#define __javax_accessibility_AccessibleTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleTable; + } + } +} + +class javax::accessibility::AccessibleTable : public ::java::lang::Object +{ + +public: + virtual ::javax::accessibility::Accessible * getAccessibleCaption() = 0; + virtual void setAccessibleCaption(::javax::accessibility::Accessible *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleSummary() = 0; + virtual void setAccessibleSummary(::javax::accessibility::Accessible *) = 0; + virtual jint getAccessibleRowCount() = 0; + virtual jint getAccessibleColumnCount() = 0; + virtual ::javax::accessibility::Accessible * getAccessibleAt(jint, jint) = 0; + virtual jint getAccessibleRowExtentAt(jint, jint) = 0; + virtual jint getAccessibleColumnExtentAt(jint, jint) = 0; + virtual ::javax::accessibility::AccessibleTable * getAccessibleRowHeader() = 0; + virtual void setAccessibleRowHeader(::javax::accessibility::AccessibleTable *) = 0; + virtual ::javax::accessibility::AccessibleTable * getAccessibleColumnHeader() = 0; + virtual void setAccessibleColumnHeader(::javax::accessibility::AccessibleTable *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleRowDescription(jint) = 0; + virtual void setAccessibleRowDescription(jint, ::javax::accessibility::Accessible *) = 0; + virtual ::javax::accessibility::Accessible * getAccessibleColumnDescription(jint) = 0; + virtual void setAccessibleColumnDescription(jint, ::javax::accessibility::Accessible *) = 0; + virtual jboolean isAccessibleSelected(jint, jint) = 0; + virtual jboolean isAccessibleRowSelected(jint) = 0; + virtual jboolean isAccessibleColumnSelected(jint) = 0; + virtual JArray< jint > * getSelectedAccessibleRows() = 0; + virtual JArray< jint > * getSelectedAccessibleColumns() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleTable__ diff --git a/libjava/javax/accessibility/AccessibleTableModelChange.h b/libjava/javax/accessibility/AccessibleTableModelChange.h new file mode 100644 index 00000000000..f3dc58b4e84 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleTableModelChange.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleTableModelChange__ +#define __javax_accessibility_AccessibleTableModelChange__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleTableModelChange; + } + } +} + +class javax::accessibility::AccessibleTableModelChange : public ::java::lang::Object +{ + +public: + virtual jint getType() = 0; + virtual jint getFirstRow() = 0; + virtual jint getLastRow() = 0; + virtual jint getFirstColumn() = 0; + virtual jint getLastColumn() = 0; + static const jint INSERT = 1; + static const jint UPDATE = 0; + static const jint DELETE = -1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleTableModelChange__ diff --git a/libjava/javax/accessibility/AccessibleText.h b/libjava/javax/accessibility/AccessibleText.h new file mode 100644 index 00000000000..f6ccf87c0ce --- /dev/null +++ b/libjava/javax/accessibility/AccessibleText.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleText__ +#define __javax_accessibility_AccessibleText__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleText; + } + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class javax::accessibility::AccessibleText : public ::java::lang::Object +{ + +public: + virtual jint getIndexAtPoint(::java::awt::Point *) = 0; + virtual ::java::awt::Rectangle * getCharacterBounds(jint) = 0; + virtual jint getCharCount() = 0; + virtual jint getCaretPosition() = 0; + virtual ::java::lang::String * getAtIndex(jint, jint) = 0; + virtual ::java::lang::String * getAfterIndex(jint, jint) = 0; + virtual ::java::lang::String * getBeforeIndex(jint, jint) = 0; + virtual ::javax::swing::text::AttributeSet * getCharacterAttribute(jint) = 0; + virtual jint getSelectionStart() = 0; + virtual jint getSelectionEnd() = 0; + virtual ::java::lang::String * getSelectedText() = 0; + static const jint CHARACTER = 1; + static const jint WORD = 2; + static const jint SENTENCE = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleText__ diff --git a/libjava/javax/accessibility/AccessibleTextSequence.h b/libjava/javax/accessibility/AccessibleTextSequence.h new file mode 100644 index 00000000000..0c447e0fb21 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleTextSequence.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleTextSequence__ +#define __javax_accessibility_AccessibleTextSequence__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleTextSequence; + } + } +} + +class javax::accessibility::AccessibleTextSequence : public ::java::lang::Object +{ + +public: + AccessibleTextSequence(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text; + jint startIndex; + jint endIndex; + static ::java::lang::Class class$; +}; + +#endif // __javax_accessibility_AccessibleTextSequence__ diff --git a/libjava/javax/accessibility/AccessibleValue.h b/libjava/javax/accessibility/AccessibleValue.h new file mode 100644 index 00000000000..a82754ad412 --- /dev/null +++ b/libjava/javax/accessibility/AccessibleValue.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_accessibility_AccessibleValue__ +#define __javax_accessibility_AccessibleValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleValue; + } + } +} + +class javax::accessibility::AccessibleValue : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Number * getCurrentAccessibleValue() = 0; + virtual jboolean setCurrentAccessibleValue(::java::lang::Number *) = 0; + virtual ::java::lang::Number * getMinimumAccessibleValue() = 0; + virtual ::java::lang::Number * getMaximumAccessibleValue() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_accessibility_AccessibleValue__ diff --git a/libjava/javax/crypto/BadPaddingException.h b/libjava/javax/crypto/BadPaddingException.h new file mode 100644 index 00000000000..201d4a06ffb --- /dev/null +++ b/libjava/javax/crypto/BadPaddingException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_BadPaddingException__ +#define __javax_crypto_BadPaddingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + class BadPaddingException; + } + } +} + +class javax::crypto::BadPaddingException : public ::java::security::GeneralSecurityException +{ + +public: + BadPaddingException(); + BadPaddingException(::java::lang::String *); +private: + static const jlong serialVersionUID = -5315033893984728443LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_BadPaddingException__ diff --git a/libjava/javax/crypto/Cipher.h b/libjava/javax/crypto/Cipher.h new file mode 100644 index 00000000000..b77c4d1d959 --- /dev/null +++ b/libjava/javax/crypto/Cipher.h @@ -0,0 +1,106 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_Cipher__ +#define __javax_crypto_Cipher__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class AlgorithmParameters; + class Key; + class Provider; + class SecureRandom; + namespace cert + { + class Certificate; + } + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class Cipher; + class CipherSpi; + class ExemptionMechanism; + } + } +} + +class javax::crypto::Cipher : public ::java::lang::Object +{ + +public: + static ::javax::crypto::Cipher * getInstance(::java::lang::String *); + static ::javax::crypto::Cipher * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::crypto::Cipher * getInstance(::java::lang::String *, ::java::security::Provider *); +public: // actually protected + Cipher(::javax::crypto::CipherSpi *, ::java::security::Provider *, ::java::lang::String *); +public: + virtual ::java::lang::String * getAlgorithm(); + virtual jint getBlockSize(); + virtual ::javax::crypto::ExemptionMechanism * getExemptionMechanism(); + virtual JArray< jbyte > * getIV(); + virtual ::java::security::AlgorithmParameters * getParameters(); + virtual ::java::security::Provider * getProvider(); + virtual JArray< jbyte > * doFinal(); + virtual JArray< jbyte > * doFinal(JArray< jbyte > *); + virtual JArray< jbyte > * doFinal(JArray< jbyte > *, jint, jint); + virtual jint doFinal(JArray< jbyte > *, jint); + virtual jint doFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual jint doFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *); + virtual jint doFinal(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + virtual jint getOutputSize(jint); + virtual void init(jint, ::java::security::cert::Certificate *); + virtual void init(jint, ::java::security::Key *); + virtual void init(jint, ::java::security::cert::Certificate *, ::java::security::SecureRandom *); + virtual void init(jint, ::java::security::Key *, ::java::security::SecureRandom *); + virtual void init(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *); + virtual void init(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); + virtual void init(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); + virtual void init(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual ::java::security::Key * unwrap(JArray< jbyte > *, ::java::lang::String *, jint); + virtual JArray< jbyte > * update(JArray< jbyte > *); + virtual JArray< jbyte > * update(JArray< jbyte > *, jint, jint); + virtual jint update(JArray< jbyte > *, jint, jint, JArray< jbyte > *); + virtual jint update(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + virtual jint update(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + virtual JArray< jbyte > * wrap(::java::security::Key *); +private: + static ::java::lang::String * SERVICE; +public: + static const jint DECRYPT_MODE = 2; + static const jint ENCRYPT_MODE = 1; + static const jint PRIVATE_KEY = 2; + static const jint PUBLIC_KEY = 1; + static const jint SECRET_KEY = 3; + static const jint UNWRAP_MODE = 4; + static const jint WRAP_MODE = 3; +private: + static const jint INITIAL_STATE = 0; + ::javax::crypto::CipherSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cipherSpi; + ::java::security::Provider * provider; + ::java::lang::String * transformation; + jint state; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_Cipher__ diff --git a/libjava/javax/crypto/CipherInputStream.h b/libjava/javax/crypto/CipherInputStream.h new file mode 100644 index 00000000000..e4c16e17375 --- /dev/null +++ b/libjava/javax/crypto/CipherInputStream.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_CipherInputStream__ +#define __javax_crypto_CipherInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + class Cipher; + class CipherInputStream; + } + } +} + +class javax::crypto::CipherInputStream : public ::java::io::FilterInputStream +{ + +public: + CipherInputStream(::java::io::InputStream *, ::javax::crypto::Cipher *); +public: // actually protected + CipherInputStream(::java::io::InputStream *); +public: + virtual jint available(); + virtual void close(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jbyte > *); + virtual jlong skip(jlong); + virtual jboolean markSupported(); + virtual void mark(jint); + virtual void reset(); +private: + void nextBlock(); + static ::java::util::logging::Logger * logger; + ::javax::crypto::Cipher * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) cipher; + JArray< jbyte > * outBuffer; + jint outOffset; + jboolean isStream; + jboolean eof; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_CipherInputStream__ diff --git a/libjava/javax/crypto/CipherOutputStream.h b/libjava/javax/crypto/CipherOutputStream.h new file mode 100644 index 00000000000..59da0000719 --- /dev/null +++ b/libjava/javax/crypto/CipherOutputStream.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_CipherOutputStream__ +#define __javax_crypto_CipherOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + class Cipher; + class CipherOutputStream; + } + } +} + +class javax::crypto::CipherOutputStream : public ::java::io::FilterOutputStream +{ + +public: + CipherOutputStream(::java::io::OutputStream *, ::javax::crypto::Cipher *); +public: // actually protected + CipherOutputStream(::java::io::OutputStream *); +public: + virtual void close(); + virtual void flush(); + virtual void write(jint); + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint); +private: + ::javax::crypto::Cipher * __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) cipher; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_CipherOutputStream__ diff --git a/libjava/javax/crypto/CipherSpi.h b/libjava/javax/crypto/CipherSpi.h new file mode 100644 index 00000000000..dd79290401f --- /dev/null +++ b/libjava/javax/crypto/CipherSpi.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_CipherSpi__ +#define __javax_crypto_CipherSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class CipherSpi; + } + } +} + +class javax::crypto::CipherSpi : public ::java::lang::Object +{ + +public: + CipherSpi(); +public: // actually protected + virtual JArray< jbyte > * engineDoFinal(JArray< jbyte > *, jint, jint) = 0; + virtual jint engineDoFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint) = 0; + virtual jint engineDoFinal(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + virtual jint engineGetBlockSize() = 0; + virtual JArray< jbyte > * engineGetIV() = 0; + virtual jint engineGetKeySize(::java::security::Key *); + virtual jint engineGetOutputSize(jint) = 0; + virtual ::java::security::AlgorithmParameters * engineGetParameters() = 0; + virtual void engineInit(jint, ::java::security::Key *, ::java::security::SecureRandom *) = 0; + virtual void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *) = 0; + virtual void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *) = 0; + virtual void engineSetMode(::java::lang::String *) = 0; + virtual void engineSetPadding(::java::lang::String *) = 0; + virtual ::java::security::Key * engineUnwrap(JArray< jbyte > *, ::java::lang::String *, jint); + virtual JArray< jbyte > * engineUpdate(JArray< jbyte > *, jint, jint) = 0; + virtual jint engineUpdate(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint) = 0; + virtual jint engineUpdate(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + virtual JArray< jbyte > * engineWrap(::java::security::Key *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_CipherSpi__ diff --git a/libjava/javax/crypto/EncryptedPrivateKeyInfo.h b/libjava/javax/crypto/EncryptedPrivateKeyInfo.h new file mode 100644 index 00000000000..54818e1b55f --- /dev/null +++ b/libjava/javax/crypto/EncryptedPrivateKeyInfo.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_EncryptedPrivateKeyInfo__ +#define __javax_crypto_EncryptedPrivateKeyInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + } + } + } + namespace java + { + namespace security + { + class AlgorithmParameters; + namespace spec + { + class PKCS8EncodedKeySpec; + } + } + } + namespace javax + { + namespace crypto + { + class Cipher; + class EncryptedPrivateKeyInfo; + } + } +} + +class javax::crypto::EncryptedPrivateKeyInfo : public ::java::lang::Object +{ + +public: + EncryptedPrivateKeyInfo(::java::security::AlgorithmParameters *, JArray< jbyte > *); + EncryptedPrivateKeyInfo(JArray< jbyte > *); + EncryptedPrivateKeyInfo(::java::lang::String *, JArray< jbyte > *); +private: + static ::gnu::java::security::OID * getOid(::java::lang::String *); +public: + virtual ::java::lang::String * getAlgName(); + virtual ::java::security::AlgorithmParameters * getAlgParameters(); + virtual JArray< jbyte > * getEncoded(); + virtual JArray< jbyte > * getEncryptedData(); + virtual ::java::security::spec::PKCS8EncodedKeySpec * getKeySpec(::javax::crypto::Cipher *); +private: + void decode(); + void encode(); + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) encryptedData; + JArray< jbyte > * encoded; + ::gnu::java::security::OID * algOid; + ::java::lang::String * algName; + ::java::security::AlgorithmParameters * params; + JArray< jbyte > * encodedParams; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_EncryptedPrivateKeyInfo__ diff --git a/libjava/javax/crypto/ExemptionMechanism.h b/libjava/javax/crypto/ExemptionMechanism.h new file mode 100644 index 00000000000..65a0454661c --- /dev/null +++ b/libjava/javax/crypto/ExemptionMechanism.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_ExemptionMechanism__ +#define __javax_crypto_ExemptionMechanism__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + class Provider; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class ExemptionMechanism; + class ExemptionMechanismSpi; + } + } +} + +class javax::crypto::ExemptionMechanism : public ::java::lang::Object +{ + +public: // actually protected + ExemptionMechanism(::javax::crypto::ExemptionMechanismSpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::javax::crypto::ExemptionMechanism * getInstance(::java::lang::String *); + static ::javax::crypto::ExemptionMechanism * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::crypto::ExemptionMechanism * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual JArray< jbyte > * genExemptionBlob(); + virtual jint genExemptionBlob(JArray< jbyte > *); + virtual jint genExemptionBlob(JArray< jbyte > *, jint); + virtual ::java::lang::String * getName(); + virtual jint getOutputSize(jint); + virtual ::java::security::Provider * getProvider(); + virtual void init(::java::security::Key *); + virtual void init(::java::security::Key *, ::java::security::AlgorithmParameters *); + virtual void init(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); + virtual jboolean isCryptoAllowed(::java::security::Key *); +public: // actually protected + virtual void finalize(); +private: + static ::java::lang::String * SERVICE; + ::javax::crypto::ExemptionMechanismSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) emSpi; + ::java::security::Provider * provider; + ::java::lang::String * mechanism; + jboolean virgin; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_ExemptionMechanism__ diff --git a/libjava/javax/crypto/ExemptionMechanismException.h b/libjava/javax/crypto/ExemptionMechanismException.h new file mode 100644 index 00000000000..79dd95f2069 --- /dev/null +++ b/libjava/javax/crypto/ExemptionMechanismException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_ExemptionMechanismException__ +#define __javax_crypto_ExemptionMechanismException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + class ExemptionMechanismException; + } + } +} + +class javax::crypto::ExemptionMechanismException : public ::java::security::GeneralSecurityException +{ + +public: + ExemptionMechanismException(); + ExemptionMechanismException(::java::lang::String *); +private: + static const jlong serialVersionUID = 1572699429277957109LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_ExemptionMechanismException__ diff --git a/libjava/javax/crypto/ExemptionMechanismSpi.h b/libjava/javax/crypto/ExemptionMechanismSpi.h new file mode 100644 index 00000000000..70c738eb654 --- /dev/null +++ b/libjava/javax/crypto/ExemptionMechanismSpi.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_ExemptionMechanismSpi__ +#define __javax_crypto_ExemptionMechanismSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class ExemptionMechanismSpi; + } + } +} + +class javax::crypto::ExemptionMechanismSpi : public ::java::lang::Object +{ + +public: + ExemptionMechanismSpi(); +public: // actually protected + virtual JArray< jbyte > * engineGenExemptionBlob() = 0; + virtual jint engineGenExemptionBlob(JArray< jbyte > *, jint) = 0; + virtual jint engineGetOutputSize(jint) = 0; + virtual void engineInit(::java::security::Key *) = 0; + virtual void engineInit(::java::security::Key *, ::java::security::AlgorithmParameters *) = 0; + virtual void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_ExemptionMechanismSpi__ diff --git a/libjava/javax/crypto/IllegalBlockSizeException.h b/libjava/javax/crypto/IllegalBlockSizeException.h new file mode 100644 index 00000000000..22176b1e504 --- /dev/null +++ b/libjava/javax/crypto/IllegalBlockSizeException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_IllegalBlockSizeException__ +#define __javax_crypto_IllegalBlockSizeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + class IllegalBlockSizeException; + } + } +} + +class javax::crypto::IllegalBlockSizeException : public ::java::security::GeneralSecurityException +{ + +public: + IllegalBlockSizeException(); + IllegalBlockSizeException(::java::lang::String *); +private: + static const jlong serialVersionUID = -1965144811953540392LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_IllegalBlockSizeException__ diff --git a/libjava/javax/crypto/KeyAgreement.h b/libjava/javax/crypto/KeyAgreement.h new file mode 100644 index 00000000000..5f6b4e7617c --- /dev/null +++ b/libjava/javax/crypto/KeyAgreement.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_KeyAgreement__ +#define __javax_crypto_KeyAgreement__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Key; + class Provider; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class KeyAgreement; + class KeyAgreementSpi; + class SecretKey; + } + } +} + +class javax::crypto::KeyAgreement : public ::java::lang::Object +{ + +public: // actually protected + KeyAgreement(::javax::crypto::KeyAgreementSpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::javax::crypto::KeyAgreement * getInstance(::java::lang::String *); + static ::javax::crypto::KeyAgreement * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::crypto::KeyAgreement * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual ::java::security::Key * doPhase(::java::security::Key *, jboolean); + virtual JArray< jbyte > * generateSecret(); + virtual jint generateSecret(JArray< jbyte > *, jint); + virtual ::javax::crypto::SecretKey * generateSecret(::java::lang::String *); + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::security::Provider * getProvider(); + virtual void init(::java::security::Key *); + virtual void init(::java::security::Key *, ::java::security::SecureRandom *); + virtual void init(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); + virtual void init(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); +private: + static ::java::lang::String * SERVICE; + ::javax::crypto::KeyAgreementSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) kaSpi; + ::java::security::Provider * provider; + ::java::lang::String * algorithm; + jboolean virgin; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_KeyAgreement__ diff --git a/libjava/javax/crypto/KeyAgreementSpi.h b/libjava/javax/crypto/KeyAgreementSpi.h new file mode 100644 index 00000000000..e0ac5eb1a2e --- /dev/null +++ b/libjava/javax/crypto/KeyAgreementSpi.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_KeyAgreementSpi__ +#define __javax_crypto_KeyAgreementSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class KeyAgreementSpi; + class SecretKey; + } + } +} + +class javax::crypto::KeyAgreementSpi : public ::java::lang::Object +{ + +public: + KeyAgreementSpi(); +public: // actually protected + virtual ::java::security::Key * engineDoPhase(::java::security::Key *, jboolean) = 0; + virtual JArray< jbyte > * engineGenerateSecret() = 0; + virtual jint engineGenerateSecret(JArray< jbyte > *, jint) = 0; + virtual ::javax::crypto::SecretKey * engineGenerateSecret(::java::lang::String *) = 0; + virtual void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *) = 0; + virtual void engineInit(::java::security::Key *, ::java::security::SecureRandom *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_KeyAgreementSpi__ diff --git a/libjava/javax/crypto/KeyGenerator.h b/libjava/javax/crypto/KeyGenerator.h new file mode 100644 index 00000000000..ea785044eea --- /dev/null +++ b/libjava/javax/crypto/KeyGenerator.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_KeyGenerator__ +#define __javax_crypto_KeyGenerator__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Provider; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class KeyGenerator; + class KeyGeneratorSpi; + class SecretKey; + } + } +} + +class javax::crypto::KeyGenerator : public ::java::lang::Object +{ + +public: // actually protected + KeyGenerator(::javax::crypto::KeyGeneratorSpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::javax::crypto::KeyGenerator * getInstance(::java::lang::String *); + static ::javax::crypto::KeyGenerator * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::crypto::KeyGenerator * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual ::javax::crypto::SecretKey * generateKey(); + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::security::Provider * getProvider(); + virtual void init(::java::security::spec::AlgorithmParameterSpec *); + virtual void init(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + virtual void init(jint); + virtual void init(jint, ::java::security::SecureRandom *); + virtual void init(::java::security::SecureRandom *); +private: + static ::java::lang::String * SERVICE; + ::javax::crypto::KeyGeneratorSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) kgSpi; + ::java::security::Provider * provider; + ::java::lang::String * algorithm; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_KeyGenerator__ diff --git a/libjava/javax/crypto/KeyGeneratorSpi.h b/libjava/javax/crypto/KeyGeneratorSpi.h new file mode 100644 index 00000000000..4fb3574260d --- /dev/null +++ b/libjava/javax/crypto/KeyGeneratorSpi.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_KeyGeneratorSpi__ +#define __javax_crypto_KeyGeneratorSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class KeyGeneratorSpi; + class SecretKey; + } + } +} + +class javax::crypto::KeyGeneratorSpi : public ::java::lang::Object +{ + +public: + KeyGeneratorSpi(); +public: // actually protected + virtual ::javax::crypto::SecretKey * engineGenerateKey() = 0; + virtual void engineInit(::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *) = 0; + virtual void engineInit(jint, ::java::security::SecureRandom *) = 0; + virtual void engineInit(::java::security::SecureRandom *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_KeyGeneratorSpi__ diff --git a/libjava/javax/crypto/Mac.h b/libjava/javax/crypto/Mac.h new file mode 100644 index 00000000000..d9242114635 --- /dev/null +++ b/libjava/javax/crypto/Mac.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_Mac__ +#define __javax_crypto_Mac__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class Key; + class Provider; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class Mac; + class MacSpi; + } + } +} + +class javax::crypto::Mac : public ::java::lang::Object +{ + +public: // actually protected + Mac(::javax::crypto::MacSpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::javax::crypto::Mac * getInstance(::java::lang::String *); + static ::javax::crypto::Mac * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::crypto::Mac * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual JArray< jbyte > * doFinal(); + virtual JArray< jbyte > * doFinal(JArray< jbyte > *); + virtual void doFinal(JArray< jbyte > *, jint); + virtual ::java::lang::String * getAlgorithm(); + virtual jint getMacLength(); + virtual ::java::security::Provider * getProvider(); + virtual void init(::java::security::Key *); + virtual void init(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *); + virtual void reset(); + 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::Object * clone(); +private: + static ::java::lang::String * SERVICE; + ::javax::crypto::MacSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) macSpi; + ::java::security::Provider * provider; + ::java::lang::String * algorithm; + jboolean virgin; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_Mac__ diff --git a/libjava/javax/crypto/MacSpi.h b/libjava/javax/crypto/MacSpi.h new file mode 100644 index 00000000000..4508d2f00e7 --- /dev/null +++ b/libjava/javax/crypto/MacSpi.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_MacSpi__ +#define __javax_crypto_MacSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteBuffer; + } + namespace security + { + class Key; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class MacSpi; + } + } +} + +class javax::crypto::MacSpi : public ::java::lang::Object +{ + +public: + MacSpi(); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual JArray< jbyte > * engineDoFinal() = 0; + virtual jint engineGetMacLength() = 0; + virtual void engineInit(::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *) = 0; + virtual void engineReset() = 0; + virtual void engineUpdate(jbyte) = 0; + virtual void engineUpdate(JArray< jbyte > *, jint, jint) = 0; + virtual void engineUpdate(::java::nio::ByteBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_MacSpi__ diff --git a/libjava/javax/crypto/NoSuchPaddingException.h b/libjava/javax/crypto/NoSuchPaddingException.h new file mode 100644 index 00000000000..76d4f3952d4 --- /dev/null +++ b/libjava/javax/crypto/NoSuchPaddingException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_NoSuchPaddingException__ +#define __javax_crypto_NoSuchPaddingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + class NoSuchPaddingException; + } + } +} + +class javax::crypto::NoSuchPaddingException : public ::java::security::GeneralSecurityException +{ + +public: + NoSuchPaddingException(); + NoSuchPaddingException(::java::lang::String *); +private: + static const jlong serialVersionUID = -4572885201200175466LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_NoSuchPaddingException__ diff --git a/libjava/javax/crypto/NullCipher.h b/libjava/javax/crypto/NullCipher.h new file mode 100644 index 00000000000..2fc8378f316 --- /dev/null +++ b/libjava/javax/crypto/NullCipher.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_NullCipher__ +#define __javax_crypto_NullCipher__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + class NullCipher; + } + } +} + +class javax::crypto::NullCipher : public ::javax::crypto::Cipher +{ + +public: + NullCipher(); + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_NullCipher__ diff --git a/libjava/javax/crypto/NullCipherImpl.h b/libjava/javax/crypto/NullCipherImpl.h new file mode 100644 index 00000000000..56cccfe2430 --- /dev/null +++ b/libjava/javax/crypto/NullCipherImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_NullCipherImpl__ +#define __javax_crypto_NullCipherImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class AlgorithmParameters; + class Key; + class SecureRandom; + namespace spec + { + class AlgorithmParameterSpec; + } + } + } + namespace javax + { + namespace crypto + { + class NullCipherImpl; + } + } +} + +class javax::crypto::NullCipherImpl : public ::javax::crypto::CipherSpi +{ + +public: // actually package-private + NullCipherImpl(); +public: // actually protected + void engineSetMode(::java::lang::String *); + void engineSetPadding(::java::lang::String *); + jint engineGetBlockSize(); + jint engineGetOutputSize(jint); + JArray< jbyte > * engineGetIV(); + ::java::security::AlgorithmParameters * engineGetParameters(); + void engineInit(jint, ::java::security::Key *, ::java::security::SecureRandom *); + void engineInit(jint, ::java::security::Key *, ::java::security::spec::AlgorithmParameterSpec *, ::java::security::SecureRandom *); + void engineInit(jint, ::java::security::Key *, ::java::security::AlgorithmParameters *, ::java::security::SecureRandom *); + JArray< jbyte > * engineUpdate(JArray< jbyte > *, jint, jint); + jint engineUpdate(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); + JArray< jbyte > * engineDoFinal(JArray< jbyte > *, jint, jint); + jint engineDoFinal(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_NullCipherImpl__ diff --git a/libjava/javax/crypto/SealedObject.h b/libjava/javax/crypto/SealedObject.h new file mode 100644 index 00000000000..630f8ec5f3a --- /dev/null +++ b/libjava/javax/crypto/SealedObject.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_SealedObject__ +#define __javax_crypto_SealedObject__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Key; + } + } + namespace javax + { + namespace crypto + { + class Cipher; + class SealedObject; + } + } +} + +class javax::crypto::SealedObject : public ::java::lang::Object +{ + +public: + SealedObject(::java::io::Serializable *, ::javax::crypto::Cipher *); +public: // actually protected + SealedObject(::javax::crypto::SealedObject *); +public: + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::lang::Object * getObject(::javax::crypto::Cipher *); + virtual ::java::lang::Object * getObject(::java::security::Key *); + virtual ::java::lang::Object * getObject(::java::security::Key *, ::java::lang::String *); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + ::java::lang::Object * unseal(); +public: // actually protected + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) encodedParams; +private: + JArray< jbyte > * encryptedContent; + ::java::lang::String * sealAlg; + ::java::lang::String * paramsAlg; + ::javax::crypto::Cipher * sealCipher; + static const jlong serialVersionUID = 4482838265551344752LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_SealedObject__ diff --git a/libjava/javax/crypto/SecretKey.h b/libjava/javax/crypto/SecretKey.h new file mode 100644 index 00000000000..d76e7286836 --- /dev/null +++ b/libjava/javax/crypto/SecretKey.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_SecretKey__ +#define __javax_crypto_SecretKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + class SecretKey; + } + } +} + +class javax::crypto::SecretKey : 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 = -4795878709595146952LL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_crypto_SecretKey__ diff --git a/libjava/javax/crypto/SecretKeyFactory.h b/libjava/javax/crypto/SecretKeyFactory.h new file mode 100644 index 00000000000..2e10b769c63 --- /dev/null +++ b/libjava/javax/crypto/SecretKeyFactory.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_SecretKeyFactory__ +#define __javax_crypto_SecretKeyFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Provider; + namespace spec + { + class KeySpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + class SecretKeyFactory; + class SecretKeyFactorySpi; + } + } +} + +class javax::crypto::SecretKeyFactory : public ::java::lang::Object +{ + +public: // actually protected + SecretKeyFactory(::javax::crypto::SecretKeyFactorySpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::javax::crypto::SecretKeyFactory * getInstance(::java::lang::String *); + static ::javax::crypto::SecretKeyFactory * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::crypto::SecretKeyFactory * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual ::javax::crypto::SecretKey * generateSecret(::java::security::spec::KeySpec *); + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::security::spec::KeySpec * getKeySpec(::javax::crypto::SecretKey *, ::java::lang::Class *); + virtual ::java::security::Provider * getProvider(); + virtual ::javax::crypto::SecretKey * translateKey(::javax::crypto::SecretKey *); +private: + static ::java::lang::String * SERVICE; + ::javax::crypto::SecretKeyFactorySpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) skfSpi; + ::java::security::Provider * provider; + ::java::lang::String * algorithm; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_SecretKeyFactory__ diff --git a/libjava/javax/crypto/SecretKeyFactorySpi.h b/libjava/javax/crypto/SecretKeyFactorySpi.h new file mode 100644 index 00000000000..91a17d69aa7 --- /dev/null +++ b/libjava/javax/crypto/SecretKeyFactorySpi.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_SecretKeyFactorySpi__ +#define __javax_crypto_SecretKeyFactorySpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + namespace spec + { + class KeySpec; + } + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + class SecretKeyFactorySpi; + } + } +} + +class javax::crypto::SecretKeyFactorySpi : public ::java::lang::Object +{ + +public: + SecretKeyFactorySpi(); +public: // actually protected + virtual ::javax::crypto::SecretKey * engineGenerateSecret(::java::security::spec::KeySpec *) = 0; + virtual ::java::security::spec::KeySpec * engineGetKeySpec(::javax::crypto::SecretKey *, ::java::lang::Class *) = 0; + virtual ::javax::crypto::SecretKey * engineTranslateKey(::javax::crypto::SecretKey *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_SecretKeyFactorySpi__ diff --git a/libjava/javax/crypto/ShortBufferException.h b/libjava/javax/crypto/ShortBufferException.h new file mode 100644 index 00000000000..1c3d344e6d8 --- /dev/null +++ b/libjava/javax/crypto/ShortBufferException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_ShortBufferException__ +#define __javax_crypto_ShortBufferException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + class ShortBufferException; + } + } +} + +class javax::crypto::ShortBufferException : public ::java::security::GeneralSecurityException +{ + +public: + ShortBufferException(); + ShortBufferException(::java::lang::String *); +private: + static const jlong serialVersionUID = 8427718640832943747LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_ShortBufferException__ diff --git a/libjava/javax/crypto/interfaces/DHKey.h b/libjava/javax/crypto/interfaces/DHKey.h new file mode 100644 index 00000000000..a425a9263bd --- /dev/null +++ b/libjava/javax/crypto/interfaces/DHKey.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_interfaces_DHKey__ +#define __javax_crypto_interfaces_DHKey__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHKey; + } + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class javax::crypto::interfaces::DHKey : public ::java::lang::Object +{ + +public: + virtual ::javax::crypto::spec::DHParameterSpec * getParams() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_crypto_interfaces_DHKey__ diff --git a/libjava/javax/crypto/interfaces/DHPrivateKey.h b/libjava/javax/crypto/interfaces/DHPrivateKey.h new file mode 100644 index 00000000000..500bb2a688a --- /dev/null +++ b/libjava/javax/crypto/interfaces/DHPrivateKey.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_interfaces_DHPrivateKey__ +#define __javax_crypto_interfaces_DHPrivateKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPrivateKey; + } + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class javax::crypto::interfaces::DHPrivateKey : public ::java::lang::Object +{ + +public: + virtual ::java::math::BigInteger * getX() = 0; + virtual ::javax::crypto::spec::DHParameterSpec * getParams() = 0; + virtual ::java::lang::String * getAlgorithm() = 0; + virtual ::java::lang::String * getFormat() = 0; + virtual JArray< jbyte > * getEncoded() = 0; + static const jlong serialVersionUID = 2211791113380396553LL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_crypto_interfaces_DHPrivateKey__ diff --git a/libjava/javax/crypto/interfaces/DHPublicKey.h b/libjava/javax/crypto/interfaces/DHPublicKey.h new file mode 100644 index 00000000000..36ebfc5736a --- /dev/null +++ b/libjava/javax/crypto/interfaces/DHPublicKey.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_interfaces_DHPublicKey__ +#define __javax_crypto_interfaces_DHPublicKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace interfaces + { + class DHPublicKey; + } + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class javax::crypto::interfaces::DHPublicKey : public ::java::lang::Object +{ + +public: + virtual ::java::math::BigInteger * getY() = 0; + virtual ::javax::crypto::spec::DHParameterSpec * getParams() = 0; + virtual ::java::lang::String * getAlgorithm() = 0; + virtual ::java::lang::String * getFormat() = 0; + virtual JArray< jbyte > * getEncoded() = 0; + static const jlong serialVersionUID = -6628103563352519193LL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_crypto_interfaces_DHPublicKey__ diff --git a/libjava/javax/crypto/interfaces/PBEKey.h b/libjava/javax/crypto/interfaces/PBEKey.h new file mode 100644 index 00000000000..ff8f1ea4a68 --- /dev/null +++ b/libjava/javax/crypto/interfaces/PBEKey.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_interfaces_PBEKey__ +#define __javax_crypto_interfaces_PBEKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace interfaces + { + class PBEKey; + } + } + } +} + +class javax::crypto::interfaces::PBEKey : public ::java::lang::Object +{ + +public: + virtual jint getIterationCount() = 0; + virtual JArray< jchar > * getPassword() = 0; + virtual JArray< jbyte > * getSalt() = 0; + virtual ::java::lang::String * getAlgorithm() = 0; + virtual ::java::lang::String * getFormat() = 0; + virtual JArray< jbyte > * getEncoded() = 0; + static const jlong serialVersionUID = -1430015993304333921LL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_crypto_interfaces_PBEKey__ diff --git a/libjava/javax/crypto/spec/DESKeySpec.h b/libjava/javax/crypto/spec/DESKeySpec.h new file mode 100644 index 00000000000..3c860452bb3 --- /dev/null +++ b/libjava/javax/crypto/spec/DESKeySpec.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_DESKeySpec__ +#define __javax_crypto_spec_DESKeySpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class DESKeySpec; + } + } + } +} + +class javax::crypto::spec::DESKeySpec : public ::java::lang::Object +{ + +public: + DESKeySpec(JArray< jbyte > *); + DESKeySpec(JArray< jbyte > *, jint); + static jboolean isParityAdjusted(JArray< jbyte > *, jint); + static jboolean isWeak(JArray< jbyte > *, jint); +private: + static jboolean equalsOrComplementEquals(JArray< jbyte > *, jint, JArray< jbyte > *); +public: + virtual JArray< jbyte > * getKey(); + static const jint DES_KEY_LEN = 8; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; + static JArray< JArray< jbyte > * > * WEAK_KEYS; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_DESKeySpec__ diff --git a/libjava/javax/crypto/spec/DESedeKeySpec.h b/libjava/javax/crypto/spec/DESedeKeySpec.h new file mode 100644 index 00000000000..28e23bb13c0 --- /dev/null +++ b/libjava/javax/crypto/spec/DESedeKeySpec.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_DESedeKeySpec__ +#define __javax_crypto_spec_DESedeKeySpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class DESedeKeySpec; + } + } + } +} + +class javax::crypto::spec::DESedeKeySpec : public ::java::lang::Object +{ + +public: + DESedeKeySpec(JArray< jbyte > *); + DESedeKeySpec(JArray< jbyte > *, jint); + static jboolean isParityAdjusted(JArray< jbyte > *, jint); + virtual JArray< jbyte > * getKey(); + static const jint DES_EDE_KEY_LEN = 24; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_DESedeKeySpec__ diff --git a/libjava/javax/crypto/spec/DHGenParameterSpec.h b/libjava/javax/crypto/spec/DHGenParameterSpec.h new file mode 100644 index 00000000000..79331116f9b --- /dev/null +++ b/libjava/javax/crypto/spec/DHGenParameterSpec.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_DHGenParameterSpec__ +#define __javax_crypto_spec_DHGenParameterSpec__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class DHGenParameterSpec; + } + } + } +} + +class javax::crypto::spec::DHGenParameterSpec : public ::java::lang::Object +{ + +public: + DHGenParameterSpec(jint, jint); + virtual jint getExponentSize(); + virtual jint getPrimeSize(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) primeSize; + jint exponentSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_DHGenParameterSpec__ diff --git a/libjava/javax/crypto/spec/DHParameterSpec.h b/libjava/javax/crypto/spec/DHParameterSpec.h new file mode 100644 index 00000000000..7f7dd3fcd7a --- /dev/null +++ b/libjava/javax/crypto/spec/DHParameterSpec.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_DHParameterSpec__ +#define __javax_crypto_spec_DHParameterSpec__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace spec + { + class DHParameterSpec; + } + } + } +} + +class javax::crypto::spec::DHParameterSpec : public ::java::lang::Object +{ + +public: + DHParameterSpec(::java::math::BigInteger *, ::java::math::BigInteger *); + DHParameterSpec(::java::math::BigInteger *, ::java::math::BigInteger *, jint); + virtual ::java::math::BigInteger * getG(); + virtual jint getL(); + virtual ::java::math::BigInteger * getP(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) g; + ::java::math::BigInteger * p; + jint l; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_DHParameterSpec__ diff --git a/libjava/javax/crypto/spec/DHPrivateKeySpec.h b/libjava/javax/crypto/spec/DHPrivateKeySpec.h new file mode 100644 index 00000000000..c21a9e2e17e --- /dev/null +++ b/libjava/javax/crypto/spec/DHPrivateKeySpec.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_DHPrivateKeySpec__ +#define __javax_crypto_spec_DHPrivateKeySpec__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace spec + { + class DHPrivateKeySpec; + } + } + } +} + +class javax::crypto::spec::DHPrivateKeySpec : public ::java::lang::Object +{ + +public: + DHPrivateKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + virtual ::java::math::BigInteger * getG(); + virtual ::java::math::BigInteger * getP(); + virtual ::java::math::BigInteger * getX(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) g; + ::java::math::BigInteger * p; + ::java::math::BigInteger * x; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_DHPrivateKeySpec__ diff --git a/libjava/javax/crypto/spec/DHPublicKeySpec.h b/libjava/javax/crypto/spec/DHPublicKeySpec.h new file mode 100644 index 00000000000..ae1a2bf557c --- /dev/null +++ b/libjava/javax/crypto/spec/DHPublicKeySpec.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_DHPublicKeySpec__ +#define __javax_crypto_spec_DHPublicKeySpec__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigInteger; + } + } + namespace javax + { + namespace crypto + { + namespace spec + { + class DHPublicKeySpec; + } + } + } +} + +class javax::crypto::spec::DHPublicKeySpec : public ::java::lang::Object +{ + +public: + DHPublicKeySpec(::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + virtual ::java::math::BigInteger * getG(); + virtual ::java::math::BigInteger * getP(); + virtual ::java::math::BigInteger * getY(); +private: + ::java::math::BigInteger * __attribute__((aligned(__alignof__( ::java::lang::Object)))) g; + ::java::math::BigInteger * p; + ::java::math::BigInteger * y; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_DHPublicKeySpec__ diff --git a/libjava/javax/crypto/spec/IvParameterSpec.h b/libjava/javax/crypto/spec/IvParameterSpec.h new file mode 100644 index 00000000000..e5799e47fcc --- /dev/null +++ b/libjava/javax/crypto/spec/IvParameterSpec.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_IvParameterSpec__ +#define __javax_crypto_spec_IvParameterSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class IvParameterSpec; + } + } + } +} + +class javax::crypto::spec::IvParameterSpec : public ::java::lang::Object +{ + +public: + IvParameterSpec(JArray< jbyte > *); + IvParameterSpec(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * getIV(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iv; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_IvParameterSpec__ diff --git a/libjava/javax/crypto/spec/PBEKeySpec.h b/libjava/javax/crypto/spec/PBEKeySpec.h new file mode 100644 index 00000000000..f987069389d --- /dev/null +++ b/libjava/javax/crypto/spec/PBEKeySpec.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_PBEKeySpec__ +#define __javax_crypto_spec_PBEKeySpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class PBEKeySpec; + } + } + } +} + +class javax::crypto::spec::PBEKeySpec : public ::java::lang::Object +{ + +public: + PBEKeySpec(JArray< jchar > *); + PBEKeySpec(JArray< jchar > *, JArray< jbyte > *, jint); + PBEKeySpec(JArray< jchar > *, JArray< jbyte > *, jint, jint); + virtual void clearPassword(); + virtual jint getIterationCount(); + virtual jint getKeyLength(); + virtual JArray< jchar > * getPassword(); + virtual JArray< jbyte > * getSalt(); +private: + void setPassword(JArray< jchar > *); + void setSalt(JArray< jbyte > *); + void setIterationCount(jint); + void setKeyLength(jint); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterationCount; + jint keyLength; + JArray< jchar > * password; + JArray< jbyte > * salt; + jboolean passwordValid; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_PBEKeySpec__ diff --git a/libjava/javax/crypto/spec/PBEParameterSpec.h b/libjava/javax/crypto/spec/PBEParameterSpec.h new file mode 100644 index 00000000000..eb81ca7dc4c --- /dev/null +++ b/libjava/javax/crypto/spec/PBEParameterSpec.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_PBEParameterSpec__ +#define __javax_crypto_spec_PBEParameterSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class PBEParameterSpec; + } + } + } +} + +class javax::crypto::spec::PBEParameterSpec : public ::java::lang::Object +{ + +public: + PBEParameterSpec(JArray< jbyte > *, jint); + virtual jint getIterationCount(); + virtual JArray< jbyte > * getSalt(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterationCount; + JArray< jbyte > * salt; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_PBEParameterSpec__ diff --git a/libjava/javax/crypto/spec/RC2ParameterSpec.h b/libjava/javax/crypto/spec/RC2ParameterSpec.h new file mode 100644 index 00000000000..419dc752b34 --- /dev/null +++ b/libjava/javax/crypto/spec/RC2ParameterSpec.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_RC2ParameterSpec__ +#define __javax_crypto_spec_RC2ParameterSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class RC2ParameterSpec; + } + } + } +} + +class javax::crypto::spec::RC2ParameterSpec : public ::java::lang::Object +{ + +public: + RC2ParameterSpec(jint); + RC2ParameterSpec(jint, JArray< jbyte > *); + RC2ParameterSpec(jint, JArray< jbyte > *, jint); + virtual jint getEffectiveKeyBits(); + virtual JArray< jbyte > * getIV(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + static const jint RC2_IV_LENGTH = 8; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) effectiveKeyBits; + JArray< jbyte > * iv; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_RC2ParameterSpec__ diff --git a/libjava/javax/crypto/spec/RC5ParameterSpec.h b/libjava/javax/crypto/spec/RC5ParameterSpec.h new file mode 100644 index 00000000000..8ba9232cd65 --- /dev/null +++ b/libjava/javax/crypto/spec/RC5ParameterSpec.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_RC5ParameterSpec__ +#define __javax_crypto_spec_RC5ParameterSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class RC5ParameterSpec; + } + } + } +} + +class javax::crypto::spec::RC5ParameterSpec : public ::java::lang::Object +{ + +public: + RC5ParameterSpec(jint, jint, jint); + RC5ParameterSpec(jint, jint, jint, JArray< jbyte > *); + RC5ParameterSpec(jint, jint, jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * getIV(); + virtual jint getRounds(); + virtual jint getVersion(); + virtual jint getWordSize(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iv; + jint rounds; + jint version; + jint wordSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_RC5ParameterSpec__ diff --git a/libjava/javax/crypto/spec/SecretKeySpec.h b/libjava/javax/crypto/spec/SecretKeySpec.h new file mode 100644 index 00000000000..b6a2e04ced3 --- /dev/null +++ b/libjava/javax/crypto/spec/SecretKeySpec.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_crypto_spec_SecretKeySpec__ +#define __javax_crypto_spec_SecretKeySpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace crypto + { + namespace spec + { + class SecretKeySpec; + } + } + } +} + +class javax::crypto::spec::SecretKeySpec : public ::java::lang::Object +{ + +public: + SecretKeySpec(JArray< jbyte > *, ::java::lang::String *); + SecretKeySpec(JArray< jbyte > *, jint, jint, ::java::lang::String *); + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< jbyte > * getEncoded(); + virtual ::java::lang::String * getFormat(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + static const jlong serialVersionUID = 6577238317307289933LL; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; + ::java::lang::String * algorithm; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_crypto_spec_SecretKeySpec__ diff --git a/libjava/javax/imageio/IIOException.h b/libjava/javax/imageio/IIOException.h new file mode 100644 index 00000000000..b303de89819 --- /dev/null +++ b/libjava/javax/imageio/IIOException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_IIOException__ +#define __javax_imageio_IIOException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class IIOException; + } + } +} + +class javax::imageio::IIOException : public ::java::io::IOException +{ + +public: + IIOException(::java::lang::String *); + IIOException(::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_IIOException__ diff --git a/libjava/javax/imageio/IIOImage.h b/libjava/javax/imageio/IIOImage.h new file mode 100644 index 00000000000..ae23913df8b --- /dev/null +++ b/libjava/javax/imageio/IIOImage.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_IIOImage__ +#define __javax_imageio_IIOImage__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + class Raster; + class RenderedImage; + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + namespace metadata + { + class IIOMetadata; + } + } + } +} + +class javax::imageio::IIOImage : public ::java::lang::Object +{ + +public: + IIOImage(::java::awt::image::Raster *, ::java::util::List *, ::javax::imageio::metadata::IIOMetadata *); + IIOImage(::java::awt::image::RenderedImage *, ::java::util::List *, ::javax::imageio::metadata::IIOMetadata *); + virtual ::javax::imageio::metadata::IIOMetadata * getMetadata(); + virtual jint getNumThumbnails(); + virtual ::java::awt::image::Raster * getRaster(); + virtual ::java::awt::image::RenderedImage * getRenderedImage(); + virtual ::java::awt::image::BufferedImage * getThumbnail(jint); + virtual ::java::util::List * getThumbnails(); + virtual jboolean hasRaster(); + virtual void setMetadata(::javax::imageio::metadata::IIOMetadata *); + virtual void setRaster(::java::awt::image::Raster *); + virtual void setRenderedImage(::java::awt::image::RenderedImage *); + virtual void setThumbnails(::java::util::List *); +public: // actually protected + ::java::awt::image::RenderedImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) image; + ::javax::imageio::metadata::IIOMetadata * metadata; + ::java::awt::image::Raster * raster; + ::java::util::List * thumbnails; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_IIOImage__ diff --git a/libjava/javax/imageio/IIOParam.h b/libjava/javax/imageio/IIOParam.h new file mode 100644 index 00000000000..ca81aea23cf --- /dev/null +++ b/libjava/javax/imageio/IIOParam.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_IIOParam__ +#define __javax_imageio_IIOParam__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace imageio + { + class IIOParam; + class IIOParamController; + class ImageTypeSpecifier; + } + } +} + +class javax::imageio::IIOParam : public ::java::lang::Object +{ + +public: // actually protected + IIOParam(); +public: + virtual jboolean activateController(); + virtual ::javax::imageio::IIOParamController * getController(); + virtual ::javax::imageio::IIOParamController * getDefaultController(); + virtual ::java::awt::Point * getDestinationOffset(); + virtual ::javax::imageio::ImageTypeSpecifier * getDestinationType(); + virtual JArray< jint > * getSourceBands(); + virtual ::java::awt::Rectangle * getSourceRegion(); + virtual jint getSourceXSubsampling(); + virtual jint getSourceYSubsampling(); + virtual jint getSubsamplingXOffset(); + virtual jint getSubsamplingYOffset(); + virtual jboolean hasController(); + virtual void setController(::javax::imageio::IIOParamController *); + virtual void setDestinationType(::javax::imageio::ImageTypeSpecifier *); + virtual void setDestinationOffset(::java::awt::Point *); + virtual void setSourceBands(JArray< jint > *); + virtual void setSourceRegion(::java::awt::Rectangle *); + virtual void setSourceSubsampling(jint, jint, jint, jint); +public: // actually protected + ::javax::imageio::IIOParamController * __attribute__((aligned(__alignof__( ::java::lang::Object)))) controller; + ::javax::imageio::IIOParamController * defaultController; + ::java::awt::Point * destinationOffset; + ::javax::imageio::ImageTypeSpecifier * destinationType; + JArray< jint > * sourceBands; + ::java::awt::Rectangle * sourceRegion; + jint sourceXSubsampling; + jint sourceYSubsampling; + jint subsamplingXOffset; + jint subsamplingYOffset; +private: + jboolean no_controller; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_IIOParam__ diff --git a/libjava/javax/imageio/IIOParamController.h b/libjava/javax/imageio/IIOParamController.h new file mode 100644 index 00000000000..3e9d52d50bf --- /dev/null +++ b/libjava/javax/imageio/IIOParamController.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_IIOParamController__ +#define __javax_imageio_IIOParamController__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class IIOParam; + class IIOParamController; + } + } +} + +class javax::imageio::IIOParamController : public ::java::lang::Object +{ + +public: + virtual jboolean activate(::javax::imageio::IIOParam *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_IIOParamController__ diff --git a/libjava/javax/imageio/ImageIO$1.h b/libjava/javax/imageio/ImageIO$1.h new file mode 100644 index 00000000000..5c3ae21e031 --- /dev/null +++ b/libjava/javax/imageio/ImageIO$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$1__ +#define __javax_imageio_ImageIO$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$1; + class ImageTranscoder; + } + } +} + +class javax::imageio::ImageIO$1 : public ::java::lang::Object +{ + +public: // actually package-private + ImageIO$1(::java::util::Iterator *); +public: + jboolean hasNext(); + ::javax::imageio::ImageTranscoder * target$next(); + void remove(); + ::java::lang::Object * next(); +private: + ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$spiIterator; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$1__ diff --git a/libjava/javax/imageio/ImageIO$ImageReaderIterator.h b/libjava/javax/imageio/ImageIO$ImageReaderIterator.h new file mode 100644 index 00000000000..5288ca9254c --- /dev/null +++ b/libjava/javax/imageio/ImageIO$ImageReaderIterator.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$ImageReaderIterator__ +#define __javax_imageio_ImageIO$ImageReaderIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$ImageReaderIterator; + class ImageReader; + } + } +} + +class javax::imageio::ImageIO$ImageReaderIterator : public ::java::lang::Object +{ + +public: + ImageIO$ImageReaderIterator(::java::util::Iterator *, ::java::lang::Object *); + ImageIO$ImageReaderIterator(::java::util::Iterator *); + jboolean hasNext(); + ::javax::imageio::ImageReader * target$next(); + void remove(); + ::java::lang::Object * next(); +public: // actually package-private + ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) it; + ::java::lang::Object * readerExtension; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$ImageReaderIterator__ diff --git a/libjava/javax/imageio/ImageIO$ImageWriterIterator.h b/libjava/javax/imageio/ImageIO$ImageWriterIterator.h new file mode 100644 index 00000000000..78f74fb2649 --- /dev/null +++ b/libjava/javax/imageio/ImageIO$ImageWriterIterator.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$ImageWriterIterator__ +#define __javax_imageio_ImageIO$ImageWriterIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$ImageWriterIterator; + class ImageWriter; + } + } +} + +class javax::imageio::ImageIO$ImageWriterIterator : public ::java::lang::Object +{ + +public: + ImageIO$ImageWriterIterator(::java::util::Iterator *, ::java::lang::Object *); + ImageIO$ImageWriterIterator(::java::util::Iterator *); + jboolean hasNext(); + ::javax::imageio::ImageWriter * target$next(); + void remove(); + ::java::lang::Object * next(); +public: // actually package-private + ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) it; + ::java::lang::Object * writerExtension; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$ImageWriterIterator__ diff --git a/libjava/javax/imageio/ImageIO$ReaderFormatFilter.h b/libjava/javax/imageio/ImageIO$ReaderFormatFilter.h new file mode 100644 index 00000000000..a1d35dbff5b --- /dev/null +++ b/libjava/javax/imageio/ImageIO$ReaderFormatFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$ReaderFormatFilter__ +#define __javax_imageio_ImageIO$ReaderFormatFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$ReaderFormatFilter; + } + } +} + +class javax::imageio::ImageIO$ReaderFormatFilter : public ::java::lang::Object +{ + +public: + ImageIO$ReaderFormatFilter(::java::lang::String *); + jboolean filter(::java::lang::Object *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) formatName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$ReaderFormatFilter__ diff --git a/libjava/javax/imageio/ImageIO$ReaderMIMETypeFilter.h b/libjava/javax/imageio/ImageIO$ReaderMIMETypeFilter.h new file mode 100644 index 00000000000..7f7503278eb --- /dev/null +++ b/libjava/javax/imageio/ImageIO$ReaderMIMETypeFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$ReaderMIMETypeFilter__ +#define __javax_imageio_ImageIO$ReaderMIMETypeFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$ReaderMIMETypeFilter; + } + } +} + +class javax::imageio::ImageIO$ReaderMIMETypeFilter : public ::java::lang::Object +{ + +public: + ImageIO$ReaderMIMETypeFilter(::java::lang::String *); + jboolean filter(::java::lang::Object *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) MIMEType; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$ReaderMIMETypeFilter__ diff --git a/libjava/javax/imageio/ImageIO$ReaderObjectFilter.h b/libjava/javax/imageio/ImageIO$ReaderObjectFilter.h new file mode 100644 index 00000000000..929530f2b09 --- /dev/null +++ b/libjava/javax/imageio/ImageIO$ReaderObjectFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$ReaderObjectFilter__ +#define __javax_imageio_ImageIO$ReaderObjectFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$ReaderObjectFilter; + } + } +} + +class javax::imageio::ImageIO$ReaderObjectFilter : public ::java::lang::Object +{ + +public: + ImageIO$ReaderObjectFilter(::java::lang::Object *); + jboolean filter(::java::lang::Object *); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) object; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$ReaderObjectFilter__ diff --git a/libjava/javax/imageio/ImageIO$ReaderSuffixFilter.h b/libjava/javax/imageio/ImageIO$ReaderSuffixFilter.h new file mode 100644 index 00000000000..b4dc85d1319 --- /dev/null +++ b/libjava/javax/imageio/ImageIO$ReaderSuffixFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$ReaderSuffixFilter__ +#define __javax_imageio_ImageIO$ReaderSuffixFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$ReaderSuffixFilter; + } + } +} + +class javax::imageio::ImageIO$ReaderSuffixFilter : public ::java::lang::Object +{ + +public: + ImageIO$ReaderSuffixFilter(::java::lang::String *); + jboolean filter(::java::lang::Object *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) fileSuffix; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$ReaderSuffixFilter__ diff --git a/libjava/javax/imageio/ImageIO$TranscoderFilter.h b/libjava/javax/imageio/ImageIO$TranscoderFilter.h new file mode 100644 index 00000000000..48b9f104e78 --- /dev/null +++ b/libjava/javax/imageio/ImageIO$TranscoderFilter.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$TranscoderFilter__ +#define __javax_imageio_ImageIO$TranscoderFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$TranscoderFilter; + class ImageReader; + class ImageWriter; + } + } +} + +class javax::imageio::ImageIO$TranscoderFilter : public ::java::lang::Object +{ + +public: + ImageIO$TranscoderFilter(::javax::imageio::ImageReader *, ::javax::imageio::ImageWriter *); + jboolean filter(::java::lang::Object *); +private: + ::javax::imageio::ImageReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) reader; + ::javax::imageio::ImageWriter * writer; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$TranscoderFilter__ diff --git a/libjava/javax/imageio/ImageIO$WriterFormatFilter.h b/libjava/javax/imageio/ImageIO$WriterFormatFilter.h new file mode 100644 index 00000000000..5b71fda59c0 --- /dev/null +++ b/libjava/javax/imageio/ImageIO$WriterFormatFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$WriterFormatFilter__ +#define __javax_imageio_ImageIO$WriterFormatFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$WriterFormatFilter; + } + } +} + +class javax::imageio::ImageIO$WriterFormatFilter : public ::java::lang::Object +{ + +public: + ImageIO$WriterFormatFilter(::java::lang::String *); + jboolean filter(::java::lang::Object *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) formatName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$WriterFormatFilter__ diff --git a/libjava/javax/imageio/ImageIO$WriterMIMETypeFilter.h b/libjava/javax/imageio/ImageIO$WriterMIMETypeFilter.h new file mode 100644 index 00000000000..fc35a0d38ee --- /dev/null +++ b/libjava/javax/imageio/ImageIO$WriterMIMETypeFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$WriterMIMETypeFilter__ +#define __javax_imageio_ImageIO$WriterMIMETypeFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$WriterMIMETypeFilter; + } + } +} + +class javax::imageio::ImageIO$WriterMIMETypeFilter : public ::java::lang::Object +{ + +public: + ImageIO$WriterMIMETypeFilter(::java::lang::String *); + jboolean filter(::java::lang::Object *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) MIMEType; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$WriterMIMETypeFilter__ diff --git a/libjava/javax/imageio/ImageIO$WriterObjectFilter.h b/libjava/javax/imageio/ImageIO$WriterObjectFilter.h new file mode 100644 index 00000000000..94500aed6f8 --- /dev/null +++ b/libjava/javax/imageio/ImageIO$WriterObjectFilter.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$WriterObjectFilter__ +#define __javax_imageio_ImageIO$WriterObjectFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$WriterObjectFilter; + class ImageTypeSpecifier; + } + } +} + +class javax::imageio::ImageIO$WriterObjectFilter : public ::java::lang::Object +{ + +public: + ImageIO$WriterObjectFilter(::javax::imageio::ImageTypeSpecifier *, ::java::lang::String *); + jboolean filter(::java::lang::Object *); +private: + ::javax::imageio::ImageTypeSpecifier * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::java::lang::String * formatName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$WriterObjectFilter__ diff --git a/libjava/javax/imageio/ImageIO$WriterSuffixFilter.h b/libjava/javax/imageio/ImageIO$WriterSuffixFilter.h new file mode 100644 index 00000000000..9fc513410ab --- /dev/null +++ b/libjava/javax/imageio/ImageIO$WriterSuffixFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO$WriterSuffixFilter__ +#define __javax_imageio_ImageIO$WriterSuffixFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageIO$WriterSuffixFilter; + } + } +} + +class javax::imageio::ImageIO$WriterSuffixFilter : public ::java::lang::Object +{ + +public: + ImageIO$WriterSuffixFilter(::java::lang::String *); + jboolean filter(::java::lang::Object *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) fileSuffix; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO$WriterSuffixFilter__ diff --git a/libjava/javax/imageio/ImageIO.h b/libjava/javax/imageio/ImageIO.h new file mode 100644 index 00000000000..95309b7e7aa --- /dev/null +++ b/libjava/javax/imageio/ImageIO.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageIO__ +#define __javax_imageio_ImageIO__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + class RenderedImage; + } + } + namespace net + { + class URL; + } + } + namespace javax + { + namespace imageio + { + class ImageIO; + class ImageReader; + class ImageTypeSpecifier; + class ImageWriter; + namespace spi + { + class IIORegistry; + class ServiceRegistry$Filter; + } + namespace stream + { + class ImageInputStream; + class ImageOutputStream; + } + } + } +} + +class javax::imageio::ImageIO : public ::java::lang::Object +{ + + ImageIO(); + static ::java::util::Iterator * getReadersByFilter(::java::lang::Class *, ::javax::imageio::spi::ServiceRegistry$Filter *, ::java::lang::Object *); + static ::java::util::Iterator * getWritersByFilter(::java::lang::Class *, ::javax::imageio::spi::ServiceRegistry$Filter *, ::java::lang::Object *); +public: + static ::java::io::File * getCacheDirectory(); + static ::java::util::Iterator * getImageReadersByFormatName(::java::lang::String *); + static ::java::util::Iterator * getImageReadersByMIMEType(::java::lang::String *); + static ::java::util::Iterator * getImageReadersBySuffix(::java::lang::String *); + static ::java::util::Iterator * getImageWritersByFormatName(::java::lang::String *); + static ::java::util::Iterator * getImageWritersByMIMEType(::java::lang::String *); + static ::java::util::Iterator * getImageWritersBySuffix(::java::lang::String *); + static JArray< ::java::lang::String * > * getReaderFormatNames(); + static JArray< ::java::lang::String * > * getReaderMIMETypes(); +private: + static ::javax::imageio::spi::IIORegistry * getRegistry(); +public: + static jboolean getUseCache(); + static JArray< ::java::lang::String * > * getWriterFormatNames(); + static JArray< ::java::lang::String * > * getWriterMIMETypes(); + static void scanForPlugins(); + static void setCacheDirectory(::java::io::File *); + static void setUseCache(jboolean); + static jboolean write(::java::awt::image::RenderedImage *, ::java::lang::String *, ::java::io::File *); + static jboolean write(::java::awt::image::RenderedImage *, ::java::lang::String *, ::java::io::OutputStream *); + static jboolean write(::java::awt::image::RenderedImage *, ::java::lang::String *, ::javax::imageio::stream::ImageOutputStream *); + static ::java::awt::image::BufferedImage * read(::javax::imageio::stream::ImageInputStream *); + static ::java::awt::image::BufferedImage * read(::java::net::URL *); + static ::java::awt::image::BufferedImage * read(::java::io::InputStream *); + static ::java::awt::image::BufferedImage * read(::java::io::File *); + static ::javax::imageio::stream::ImageInputStream * createImageInputStream(::java::lang::Object *); + static ::javax::imageio::stream::ImageOutputStream * createImageOutputStream(::java::lang::Object *); + static ::javax::imageio::ImageReader * getImageReader(::javax::imageio::ImageWriter *); + static ::java::util::Iterator * getImageReaders(::java::lang::Object *); + static ::java::util::Iterator * getImageWriters(::javax::imageio::ImageTypeSpecifier *, ::java::lang::String *); + static ::javax::imageio::ImageWriter * getImageWriter(::javax::imageio::ImageReader *); + static ::java::util::Iterator * getImageTranscoders(::javax::imageio::ImageReader *, ::javax::imageio::ImageWriter *); +private: + static ::java::io::File * cacheDirectory; + static jboolean useCache; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageIO__ diff --git a/libjava/javax/imageio/ImageReadParam.h b/libjava/javax/imageio/ImageReadParam.h new file mode 100644 index 00000000000..1e406ce705b --- /dev/null +++ b/libjava/javax/imageio/ImageReadParam.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageReadParam__ +#define __javax_imageio_ImageReadParam__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + class ImageReadParam; + } + } +} + +class javax::imageio::ImageReadParam : public ::javax::imageio::IIOParam +{ + +public: + ImageReadParam(); + virtual jboolean canSetSourceRenderSize(); + virtual ::java::awt::image::BufferedImage * getDestination(); + virtual JArray< jint > * getDestinationBands(); + virtual jint getSourceMaxProgressivePass(); + virtual jint getSourceMinProgressivePass(); + virtual jint getSourceNumProgressivePasses(); + virtual ::java::awt::Dimension * getSourceRenderSize(); + virtual void setDestination(::java::awt::image::BufferedImage *); + virtual void setDestinationBands(JArray< jint > *); + virtual void setSourceProgressivePasses(jint, jint); + virtual void setSourceRenderSize(::java::awt::Dimension *); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::imageio::IIOParam)))) canSetSourceRenderSize__; + ::java::awt::image::BufferedImage * destination; + JArray< jint > * destinationBands; + jint minProgressivePass; + jint numProgressivePasses; + ::java::awt::Dimension * sourceRenderSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageReadParam__ diff --git a/libjava/javax/imageio/ImageReader.h b/libjava/javax/imageio/ImageReader.h new file mode 100644 index 00000000000..83c50759840 --- /dev/null +++ b/libjava/javax/imageio/ImageReader.h @@ -0,0 +1,166 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageReader__ +#define __javax_imageio_ImageReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + namespace image + { + class BufferedImage; + class Raster; + class RenderedImage; + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageReadParam; + class ImageReader; + class ImageTypeSpecifier; + namespace event + { + class IIOReadProgressListener; + class IIOReadUpdateListener; + class IIOReadWarningListener; + } + namespace metadata + { + class IIOMetadata; + } + namespace spi + { + class ImageReaderSpi; + } + } + } +} + +class javax::imageio::ImageReader : public ::java::lang::Object +{ + +public: // actually protected + ImageReader(::javax::imageio::spi::ImageReaderSpi *); +public: + virtual void abort(); +public: // actually protected + virtual jboolean abortRequested(); +public: + virtual void addIIOReadProgressListener(::javax::imageio::event::IIOReadProgressListener *); + virtual void addIIOReadUpdateListener(::javax::imageio::event::IIOReadUpdateListener *); + virtual void addIIOReadWarningListener(::javax::imageio::event::IIOReadWarningListener *); + virtual jboolean canReadRaster(); +public: // actually protected + virtual void clearAbortRequest(); +public: + virtual void dispose(); + virtual jfloat getAspectRatio(jint); + virtual JArray< ::java::util::Locale * > * getAvailableLocales(); + virtual ::javax::imageio::ImageReadParam * getDefaultReadParam(); + virtual ::java::lang::String * getFormatName(); + virtual jint getHeight(jint) = 0; + virtual ::javax::imageio::metadata::IIOMetadata * getImageMetadata(jint) = 0; + virtual ::java::util::Iterator * getImageTypes(jint) = 0; + virtual void setInput(::java::lang::Object *, jboolean, jboolean); + virtual void setInput(::java::lang::Object *, jboolean); + virtual void setInput(::java::lang::Object *); + virtual ::java::lang::Object * getInput(); + virtual ::java::util::Locale * getLocale(); + virtual jint getNumImages(jboolean) = 0; + virtual jint getNumThumbnails(jint); + virtual ::javax::imageio::spi::ImageReaderSpi * getOriginatingProvider(); + virtual ::javax::imageio::metadata::IIOMetadata * getStreamMetadata() = 0; + virtual jint getThumbnailHeight(jint, jint); + virtual jint getThumbnailWidth(jint, jint); + virtual jint getTileGridXOffset(jint); + virtual jint getTileGridYOffset(jint); + virtual jint getTileHeight(jint); + virtual jint getTileWidth(jint); + virtual jint getWidth(jint) = 0; + virtual jboolean hasThumbnails(jint); + virtual jboolean isIgnoringMetadata(); + virtual jboolean isImageTiled(jint); + virtual jboolean isRandomAccessEasy(jint); + virtual jboolean isSeekForwardOnly(); +public: // actually protected + virtual void processImageComplete(); + virtual void processImageProgress(jfloat); + virtual void processImageStarted(jint); + virtual void processImageUpdate(::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, JArray< jint > *); + virtual void processPassComplete(::java::awt::image::BufferedImage *); + virtual void processPassStarted(::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, jint, JArray< jint > *); + virtual void processReadAborted(); + virtual void processSequenceComplete(); + virtual void processSequenceStarted(jint); + virtual void processThumbnailComplete(); + virtual void processThumbnailPassComplete(::java::awt::image::BufferedImage *); + virtual void processThumbnailPassStarted(::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, jint, JArray< jint > *); + virtual void processThumbnailProgress(jfloat); + virtual void processThumbnailStarted(jint, jint); + virtual void processThumbnailUpdate(::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, JArray< jint > *); + virtual void processWarningOccurred(::java::lang::String *); + virtual void processWarningOccurred(::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::awt::image::BufferedImage * read(jint, ::javax::imageio::ImageReadParam *) = 0; + virtual jboolean readerSupportsThumbnails(); + virtual ::java::awt::image::Raster * readRaster(jint, ::javax::imageio::ImageReadParam *); + virtual ::java::awt::image::BufferedImage * readThumbnail(jint, jint); + virtual void removeAllIIOReadProgressListeners(); + virtual void removeAllIIOReadUpdateListeners(); + virtual void removeAllIIOReadWarningListeners(); + virtual void removeIIOReadProgressListener(::javax::imageio::event::IIOReadProgressListener *); + virtual void removeIIOReadUpdateListener(::javax::imageio::event::IIOReadUpdateListener *); + virtual void removeIIOReadWarningListener(::javax::imageio::event::IIOReadWarningListener *); + virtual void setLocale(::java::util::Locale *); +public: // actually protected + static void checkReadParamBandSettings(::javax::imageio::ImageReadParam *, jint, jint); + static void computeRegions(::javax::imageio::ImageReadParam *, jint, jint, ::java::awt::image::BufferedImage *, ::java::awt::Rectangle *, ::java::awt::Rectangle *); + static ::java::awt::image::BufferedImage * getDestination(::javax::imageio::ImageReadParam *, ::java::util::Iterator *, jint, jint); +public: + virtual ::javax::imageio::metadata::IIOMetadata * getImageMetadata(jint, ::java::lang::String *, ::java::util::Set *); + virtual jint getMinIndex(); + virtual ::javax::imageio::ImageTypeSpecifier * getRawImageType(jint); +public: // actually protected + static ::java::awt::Rectangle * getSourceRegion(::javax::imageio::ImageReadParam *, jint, jint); +public: + virtual ::javax::imageio::metadata::IIOMetadata * getStreamMetadata(::java::lang::String *, ::java::util::Set *); + virtual ::java::awt::image::BufferedImage * read(jint); + virtual ::javax::imageio::IIOImage * readAll(jint, ::javax::imageio::ImageReadParam *); + virtual ::java::util::Iterator * readAll(::java::util::Iterator *); + virtual ::java::awt::image::RenderedImage * readAsRenderedImage(jint, ::javax::imageio::ImageReadParam *); + virtual ::java::awt::image::BufferedImage * readTile(jint, jint, jint); + virtual ::java::awt::image::Raster * readTileRaster(jint, jint, jint); + virtual void reset(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) aborted; +public: // actually protected + JArray< ::java::util::Locale * > * availableLocales; + jboolean ignoreMetadata; + ::java::lang::Object * input; + ::java::util::Locale * locale; + jint minIndex; + ::javax::imageio::spi::ImageReaderSpi * originatingProvider; + ::java::util::List * progressListeners; + jboolean seekForwardOnly; + ::java::util::List * updateListeners; + ::java::util::List * warningListeners; + ::java::util::List * warningLocales; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageReader__ diff --git a/libjava/javax/imageio/ImageTranscoder.h b/libjava/javax/imageio/ImageTranscoder.h new file mode 100644 index 00000000000..b3661fdcef2 --- /dev/null +++ b/libjava/javax/imageio/ImageTranscoder.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageTranscoder__ +#define __javax_imageio_ImageTranscoder__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageTranscoder; + class ImageTypeSpecifier; + class ImageWriteParam; + namespace metadata + { + class IIOMetadata; + } + } + } +} + +class javax::imageio::ImageTranscoder : public ::java::lang::Object +{ + +public: + virtual ::javax::imageio::metadata::IIOMetadata * convertImageMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *) = 0; + virtual ::javax::imageio::metadata::IIOMetadata * convertStreamMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageWriteParam *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_ImageTranscoder__ diff --git a/libjava/javax/imageio/ImageTypeSpecifier.h b/libjava/javax/imageio/ImageTypeSpecifier.h new file mode 100644 index 00000000000..c8a33638beb --- /dev/null +++ b/libjava/javax/imageio/ImageTypeSpecifier.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageTypeSpecifier__ +#define __javax_imageio_ImageTypeSpecifier__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace color + { + class ColorSpace; + } + namespace image + { + class BufferedImage; + class ColorModel; + class RenderedImage; + class SampleModel; + } + } + } + namespace javax + { + namespace imageio + { + class ImageTypeSpecifier; + } + } +} + +class javax::imageio::ImageTypeSpecifier : public ::java::lang::Object +{ + +public: + ImageTypeSpecifier(::java::awt::image::ColorModel *, ::java::awt::image::SampleModel *); + ImageTypeSpecifier(::java::awt::image::RenderedImage *); + static ::javax::imageio::ImageTypeSpecifier * createBanded(::java::awt::color::ColorSpace *, JArray< jint > *, JArray< jint > *, jint, jboolean, jboolean); + virtual ::java::awt::image::BufferedImage * createBufferedImage(jint, jint); + static ::javax::imageio::ImageTypeSpecifier * createFromBufferedImageType(jint); + static ::javax::imageio::ImageTypeSpecifier * createFromRenderedImage(::java::awt::image::RenderedImage *); + static ::javax::imageio::ImageTypeSpecifier * createGrayscale(jint, jint, jboolean); + static ::javax::imageio::ImageTypeSpecifier * createGrayscale(jint, jint, jboolean, jboolean); + static ::javax::imageio::ImageTypeSpecifier * createIndexed(JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *, JArray< jbyte > *, jint, jint); + static ::javax::imageio::ImageTypeSpecifier * createInterleaved(::java::awt::color::ColorSpace *, JArray< jint > *, jint, jboolean, jboolean); + static ::javax::imageio::ImageTypeSpecifier * createPacked(::java::awt::color::ColorSpace *, jint, jint, jint, jint, jint, jboolean); + virtual jint getBitsPerBand(jint); + virtual jint getBufferedImageType(); + virtual ::java::awt::image::SampleModel * getSampleModel(jint, jint); + virtual ::java::awt::image::ColorModel * getColorModel(); + virtual jint getNumBands(); + virtual jint getNumComponents(); + virtual ::java::awt::image::SampleModel * getSampleModel(); +public: // actually protected + ::java::awt::image::ColorModel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) colorModel; + ::java::awt::image::SampleModel * sampleModel; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageTypeSpecifier__ diff --git a/libjava/javax/imageio/ImageWriteParam.h b/libjava/javax/imageio/ImageWriteParam.h new file mode 100644 index 00000000000..100a3e5f962 --- /dev/null +++ b/libjava/javax/imageio/ImageWriteParam.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageWriteParam__ +#define __javax_imageio_ImageWriteParam__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + } + namespace javax + { + namespace imageio + { + class ImageWriteParam; + } + } +} + +class javax::imageio::ImageWriteParam : public ::javax::imageio::IIOParam +{ + +public: // actually protected + ImageWriteParam(); +public: + ImageWriteParam(::java::util::Locale *); + virtual jfloat getBitRate(jfloat); +private: + void checkSupportsCompression(); + void checkNotExplicitCompression(); + void checkCompressionTypesSet(); + void checkSupportsProgressiveEncoding(); + void checkSupportsTiling(); + void checkNotExplicitTiling(); + void checkTilingInitialized(); + void checkMode(jint); +public: + virtual jboolean canOffsetTiles(); + virtual jboolean canWriteCompressed(); + virtual jboolean canWriteProgressive(); + virtual jboolean canWriteTiles(); + virtual jint getCompressionMode(); + virtual jfloat getCompressionQuality(); + virtual JArray< ::java::lang::String * > * getCompressionQualityDescriptions(); + virtual JArray< jfloat > * getCompressionQualityValues(); + virtual ::java::lang::String * getCompressionType(); + virtual JArray< ::java::lang::String * > * getCompressionTypes(); + virtual ::java::util::Locale * getLocale(); + virtual ::java::lang::String * getLocalizedCompressionTypeName(); + virtual JArray< ::java::awt::Dimension * > * getPreferredTileSizes(); + virtual jint getProgressiveMode(); + virtual jint getTileGridXOffset(); + virtual jint getTileGridYOffset(); + virtual jint getTileHeight(); + virtual jint getTileWidth(); + virtual jint getTilingMode(); + virtual jboolean isCompressionLossless(); + virtual void setCompressionMode(jint); + virtual void setCompressionQuality(jfloat); + virtual void setCompressionType(::java::lang::String *); + virtual void setProgressiveMode(jint); + virtual void setTiling(jint, jint, jint, jint); + virtual void setTilingMode(jint); + virtual void unsetCompression(); + virtual void unsetTiling(); + static const jint MODE_DISABLED = 0; + static const jint MODE_DEFAULT = 1; + static const jint MODE_EXPLICIT = 2; + static const jint MODE_COPY_FROM_METADATA = 3; +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::imageio::IIOParam)))) canOffsetTiles__; + jboolean canWriteCompressed__; + jboolean canWriteProgressive__; + jboolean canWriteTiles__; + jint compressionMode; + jfloat compressionQuality; + ::java::lang::String * compressionType; + JArray< ::java::lang::String * > * compressionTypes; + ::java::util::Locale * locale; + JArray< ::java::awt::Dimension * > * preferredTileSizes; + jint progressiveMode; + jint tileGridXOffset; + jint tileGridYOffset; + jint tileHeight; + jint tileWidth; + jint tilingMode; + jboolean tilingSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageWriteParam__ diff --git a/libjava/javax/imageio/ImageWriter.h b/libjava/javax/imageio/ImageWriter.h new file mode 100644 index 00000000000..db14cbdde5d --- /dev/null +++ b/libjava/javax/imageio/ImageWriter.h @@ -0,0 +1,140 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_ImageWriter__ +#define __javax_imageio_ImageWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + namespace image + { + class Raster; + class RenderedImage; + } + } + } + namespace javax + { + namespace imageio + { + class IIOImage; + class ImageTypeSpecifier; + class ImageWriteParam; + class ImageWriter; + namespace event + { + class IIOWriteProgressListener; + class IIOWriteWarningListener; + } + namespace metadata + { + class IIOMetadata; + } + namespace spi + { + class ImageWriterSpi; + } + } + } +} + +class javax::imageio::ImageWriter : public ::java::lang::Object +{ + +public: // actually protected + ImageWriter(::javax::imageio::spi::ImageWriterSpi *); +private: + void checkOutputSet(); +public: + virtual void abort(); +public: // actually protected + virtual jboolean abortRequested(); +public: + virtual void addIIOWriteProgressListener(::javax::imageio::event::IIOWriteProgressListener *); + virtual void addIIOWriteWarningListener(::javax::imageio::event::IIOWriteWarningListener *); + virtual jboolean canInsertEmpty(jint); + virtual jboolean canInsertImage(jint); + virtual jboolean canRemoveImage(jint); + virtual jboolean canReplaceImageMetadata(jint); + virtual jboolean canReplacePixels(jint); + virtual jboolean canReplaceStreamMetadata(); + virtual jboolean canWriteEmpty(); + virtual jboolean canWriteRasters(); + virtual jboolean canWriteSequence(); +public: // actually protected + virtual void clearAbortRequest(); +public: + virtual ::javax::imageio::metadata::IIOMetadata * convertImageMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *) = 0; + virtual ::javax::imageio::metadata::IIOMetadata * convertStreamMetadata(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageWriteParam *) = 0; + virtual void dispose(); + virtual JArray< ::java::util::Locale * > * getAvailableLocales(); + virtual ::javax::imageio::metadata::IIOMetadata * getDefaultImageMetadata(::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *) = 0; + virtual ::javax::imageio::metadata::IIOMetadata * getDefaultStreamMetadata(::javax::imageio::ImageWriteParam *) = 0; + virtual ::javax::imageio::ImageWriteParam * getDefaultWriteParam(); + virtual ::java::util::Locale * getLocale(); + virtual jint getNumThumbnailsSupported(::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::metadata::IIOMetadata *); + virtual ::javax::imageio::spi::ImageWriterSpi * getOriginatingProvider(); + virtual ::java::lang::Object * getOutput(); + virtual JArray< ::java::awt::Dimension * > * getPreferredThumbnailSizes(::javax::imageio::ImageTypeSpecifier *, ::javax::imageio::ImageWriteParam *, ::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::metadata::IIOMetadata *); +public: // actually protected + virtual void processImageComplete(); + virtual void processImageProgress(jfloat); + virtual void processImageStarted(jint); + virtual void processThumbnailComplete(); + virtual void processThumbnailProgress(jfloat); + virtual void processThumbnailStarted(jint, jint); + virtual void processWarningOccurred(jint, ::java::lang::String *); + virtual void processWarningOccurred(jint, ::java::lang::String *, ::java::lang::String *); + virtual void processWriteAborted(); +public: + virtual void removeAllIIOWriteProgressListeners(); + virtual void removeAllIIOWriteWarningListeners(); + virtual void removeIIOWriteProgressListener(::javax::imageio::event::IIOWriteProgressListener *); + virtual void removeIIOWriteWarningListener(::javax::imageio::event::IIOWriteWarningListener *); + virtual void reset(); + virtual void setLocale(::java::util::Locale *); + virtual void setOutput(::java::lang::Object *); + virtual void write(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *) = 0; + virtual void endInsertEmpty(); + virtual void endReplacePixels(); + virtual void endWriteEmpty(); + virtual void endWriteSequence(); + virtual void prepareInsertEmpty(jint, ::javax::imageio::ImageTypeSpecifier *, jint, jint, ::javax::imageio::metadata::IIOMetadata *, ::java::util::List *, ::javax::imageio::ImageWriteParam *); + virtual void prepareReplacePixels(jint, ::java::awt::Rectangle *); + virtual void prepareWriteEmpty(::javax::imageio::metadata::IIOMetadata *, ::javax::imageio::ImageTypeSpecifier *, jint, jint, ::javax::imageio::metadata::IIOMetadata *, ::java::util::List *, ::javax::imageio::ImageWriteParam *); + virtual void prepareWriteSequence(::javax::imageio::metadata::IIOMetadata *); + virtual void removeImage(jint); + virtual void replaceImageMetadata(jint, ::javax::imageio::metadata::IIOMetadata *); + virtual void replacePixels(::java::awt::image::RenderedImage *, ::javax::imageio::ImageWriteParam *); + virtual void replacePixels(::java::awt::image::Raster *, ::javax::imageio::ImageWriteParam *); + virtual void replaceStreamMetadata(::javax::imageio::metadata::IIOMetadata *); + virtual void write(::java::awt::image::RenderedImage *); + virtual void write(::javax::imageio::IIOImage *); + virtual void writeInsert(jint, ::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); + virtual void writeToSequence(::javax::imageio::IIOImage *, ::javax::imageio::ImageWriteParam *); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) aborted; +public: // actually protected + JArray< ::java::util::Locale * > * availableLocales; + ::java::util::Locale * locale; + ::javax::imageio::spi::ImageWriterSpi * originatingProvider; + ::java::lang::Object * output; + ::java::util::List * progressListeners; + ::java::util::List * warningListeners; + ::java::util::List * warningLocales; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_ImageWriter__ diff --git a/libjava/javax/imageio/event/IIOReadProgressListener.h b/libjava/javax/imageio/event/IIOReadProgressListener.h new file mode 100644 index 00000000000..3bad67116b7 --- /dev/null +++ b/libjava/javax/imageio/event/IIOReadProgressListener.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_event_IIOReadProgressListener__ +#define __javax_imageio_event_IIOReadProgressListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageReader; + namespace event + { + class IIOReadProgressListener; + } + } + } +} + +class javax::imageio::event::IIOReadProgressListener : public ::java::lang::Object +{ + +public: + virtual void imageComplete(::javax::imageio::ImageReader *) = 0; + virtual void imageProgress(::javax::imageio::ImageReader *, jfloat) = 0; + virtual void imageStarted(::javax::imageio::ImageReader *, jint) = 0; + virtual void readAborted(::javax::imageio::ImageReader *) = 0; + virtual void sequenceComplete(::javax::imageio::ImageReader *) = 0; + virtual void sequenceStarted(::javax::imageio::ImageReader *, jint) = 0; + virtual void thumbnailComplete(::javax::imageio::ImageReader *) = 0; + virtual void thumbnailProgress(::javax::imageio::ImageReader *, jfloat) = 0; + virtual void thumbnailStarted(::javax::imageio::ImageReader *, jint, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_event_IIOReadProgressListener__ diff --git a/libjava/javax/imageio/event/IIOReadUpdateListener.h b/libjava/javax/imageio/event/IIOReadUpdateListener.h new file mode 100644 index 00000000000..86c28ec700b --- /dev/null +++ b/libjava/javax/imageio/event/IIOReadUpdateListener.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_event_IIOReadUpdateListener__ +#define __javax_imageio_event_IIOReadUpdateListener__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace imageio + { + class ImageReader; + namespace event + { + class IIOReadUpdateListener; + } + } + } +} + +class javax::imageio::event::IIOReadUpdateListener : public ::java::lang::Object +{ + +public: + virtual void imageUpdate(::javax::imageio::ImageReader *, ::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, JArray< jint > *) = 0; + virtual void passComplete(::javax::imageio::ImageReader *, ::java::awt::image::BufferedImage *) = 0; + virtual void passStarted(::javax::imageio::ImageReader *, ::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, jint, JArray< jint > *) = 0; + virtual void thumbnailPassComplete(::javax::imageio::ImageReader *, ::java::awt::image::BufferedImage *) = 0; + virtual void thumbnailPassStarted(::javax::imageio::ImageReader *, ::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, jint, JArray< jint > *) = 0; + virtual void thumbnailUpdate(::javax::imageio::ImageReader *, ::java::awt::image::BufferedImage *, jint, jint, jint, jint, jint, jint, JArray< jint > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_event_IIOReadUpdateListener__ diff --git a/libjava/javax/imageio/event/IIOReadWarningListener.h b/libjava/javax/imageio/event/IIOReadWarningListener.h new file mode 100644 index 00000000000..c74cf41d719 --- /dev/null +++ b/libjava/javax/imageio/event/IIOReadWarningListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_event_IIOReadWarningListener__ +#define __javax_imageio_event_IIOReadWarningListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageReader; + namespace event + { + class IIOReadWarningListener; + } + } + } +} + +class javax::imageio::event::IIOReadWarningListener : public ::java::lang::Object +{ + +public: + virtual void warningOccurred(::javax::imageio::ImageReader *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_event_IIOReadWarningListener__ diff --git a/libjava/javax/imageio/event/IIOWriteProgressListener.h b/libjava/javax/imageio/event/IIOWriteProgressListener.h new file mode 100644 index 00000000000..bb140af3565 --- /dev/null +++ b/libjava/javax/imageio/event/IIOWriteProgressListener.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_event_IIOWriteProgressListener__ +#define __javax_imageio_event_IIOWriteProgressListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageWriter; + namespace event + { + class IIOWriteProgressListener; + } + } + } +} + +class javax::imageio::event::IIOWriteProgressListener : public ::java::lang::Object +{ + +public: + virtual void imageComplete(::javax::imageio::ImageWriter *) = 0; + virtual void imageProgress(::javax::imageio::ImageWriter *, jfloat) = 0; + virtual void imageStarted(::javax::imageio::ImageWriter *, jint) = 0; + virtual void thumbnailComplete(::javax::imageio::ImageWriter *) = 0; + virtual void thumbnailProgress(::javax::imageio::ImageWriter *, jfloat) = 0; + virtual void thumbnailStarted(::javax::imageio::ImageWriter *, jint, jint) = 0; + virtual void writeAborted(::javax::imageio::ImageWriter *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_event_IIOWriteProgressListener__ diff --git a/libjava/javax/imageio/event/IIOWriteWarningListener.h b/libjava/javax/imageio/event/IIOWriteWarningListener.h new file mode 100644 index 00000000000..220bf2321e5 --- /dev/null +++ b/libjava/javax/imageio/event/IIOWriteWarningListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_event_IIOWriteWarningListener__ +#define __javax_imageio_event_IIOWriteWarningListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageWriter; + namespace event + { + class IIOWriteWarningListener; + } + } + } +} + +class javax::imageio::event::IIOWriteWarningListener : public ::java::lang::Object +{ + +public: + virtual void warningOccurred(::javax::imageio::ImageWriter *, jint, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_event_IIOWriteWarningListener__ diff --git a/libjava/javax/imageio/metadata/IIOInvalidTreeException.h b/libjava/javax/imageio/metadata/IIOInvalidTreeException.h new file mode 100644 index 00000000000..9980defda65 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOInvalidTreeException.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOInvalidTreeException__ +#define __javax_imageio_metadata_IIOInvalidTreeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOInvalidTreeException; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class javax::imageio::metadata::IIOInvalidTreeException : public ::javax::imageio::IIOException +{ + +public: + IIOInvalidTreeException(::java::lang::String *, ::org::w3c::dom::Node *); + IIOInvalidTreeException(::java::lang::String *, ::java::lang::Throwable *, ::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * getOffendingNode(); +private: + static const jlong serialVersionUID = -1314083172544132777LL; +public: // actually protected + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::javax::imageio::IIOException)))) offendingNode; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOInvalidTreeException__ diff --git a/libjava/javax/imageio/metadata/IIOMetadata.h b/libjava/javax/imageio/metadata/IIOMetadata.h new file mode 100644 index 00000000000..33d5a61646f --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadata.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadata__ +#define __javax_imageio_metadata_IIOMetadata__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadata; + class IIOMetadataController; + class IIOMetadataFormat; + class IIOMetadataNode; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class javax::imageio::metadata::IIOMetadata : public ::java::lang::Object +{ + +public: // actually protected + IIOMetadata(); + IIOMetadata(jboolean, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *); +public: + virtual jboolean activateController(); + virtual ::javax::imageio::metadata::IIOMetadataController * getController(); + virtual ::javax::imageio::metadata::IIOMetadataController * getDefaultController(); + virtual JArray< ::java::lang::String * > * getExtraMetadataFormatNames(); + virtual ::javax::imageio::metadata::IIOMetadataFormat * getMetadataFormat(::java::lang::String *); + virtual JArray< ::java::lang::String * > * getMetadataFormatNames(); + virtual ::java::lang::String * getNativeMetadataFormatName(); + virtual jboolean hasController(); + virtual jboolean isReadOnly() = 0; + virtual jboolean isStandardMetadataFormatSupported(); + virtual void reset() = 0; + virtual void setController(::javax::imageio::metadata::IIOMetadataController *); + virtual ::org::w3c::dom::Node * getAsTree(::java::lang::String *) = 0; +public: // actually protected + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardChromaNode(); + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardCompressionNode(); + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardDataNode(); + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardDimensionNode(); + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardDocumentNode(); + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardTextNode(); + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardTileNode(); + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardTransparencyNode(); +private: + void appendChild(::javax::imageio::metadata::IIOMetadataNode *, ::javax::imageio::metadata::IIOMetadataNode *); +public: // actually protected + virtual ::javax::imageio::metadata::IIOMetadataNode * getStandardTree(); +public: + virtual void mergeTree(::java::lang::String *, ::org::w3c::dom::Node *) = 0; + virtual void setFromTree(::java::lang::String *, ::org::w3c::dom::Node *); +public: // actually protected + ::javax::imageio::metadata::IIOMetadataController * __attribute__((aligned(__alignof__( ::java::lang::Object)))) controller; + ::javax::imageio::metadata::IIOMetadataController * defaultController; + JArray< ::java::lang::String * > * extraMetadataFormatClassNames; + JArray< ::java::lang::String * > * extraMetadataFormatNames; + ::java::lang::String * nativeMetadataFormatClassName; + ::java::lang::String * nativeMetadataFormatName; + jboolean standardFormatSupported; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadata__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataController.h b/libjava/javax/imageio/metadata/IIOMetadataController.h new file mode 100644 index 00000000000..e970191d67e --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataController.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataController__ +#define __javax_imageio_metadata_IIOMetadataController__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadata; + class IIOMetadataController; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataController : public ::java::lang::Object +{ + +public: + virtual jboolean activate(::javax::imageio::metadata::IIOMetadata *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_metadata_IIOMetadataController__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormat.h b/libjava/javax/imageio/metadata/IIOMetadataFormat.h new file mode 100644 index 00000000000..0744efbfcae --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormat.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormat__ +#define __javax_imageio_metadata_IIOMetadataFormat__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageTypeSpecifier; + namespace metadata + { + class IIOMetadataFormat; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormat : public ::java::lang::Object +{ + +public: + virtual jboolean canNodeAppear(::java::lang::String *, ::javax::imageio::ImageTypeSpecifier *) = 0; + virtual jint getAttributeDataType(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeDefaultValue(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeDescription(::java::lang::String *, ::java::lang::String *, ::java::util::Locale *) = 0; + virtual JArray< ::java::lang::String * > * getAttributeEnumerations(::java::lang::String *, ::java::lang::String *) = 0; + virtual jint getAttributeListMaxLength(::java::lang::String *, ::java::lang::String *) = 0; + virtual jint getAttributeListMinLength(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeMaxValue(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeMinValue(::java::lang::String *, ::java::lang::String *) = 0; + virtual JArray< ::java::lang::String * > * getAttributeNames(::java::lang::String *) = 0; + virtual jint getAttributeValueType(::java::lang::String *, ::java::lang::String *) = 0; + virtual JArray< ::java::lang::String * > * getChildNames(::java::lang::String *) = 0; + virtual jint getChildPolicy(::java::lang::String *) = 0; + virtual ::java::lang::String * getElementDescription(::java::lang::String *, ::java::util::Locale *) = 0; + virtual jint getElementMaxChildren(::java::lang::String *) = 0; + virtual jint getElementMinChildren(::java::lang::String *) = 0; + virtual jint getObjectArrayMaxLength(::java::lang::String *) = 0; + virtual jint getObjectArrayMinLength(::java::lang::String *) = 0; + virtual ::java::lang::Class * getObjectClass(::java::lang::String *) = 0; + virtual ::java::lang::Object * getObjectDefaultValue(::java::lang::String *) = 0; + virtual JArray< ::java::lang::Object * > * getObjectEnumerations(::java::lang::String *) = 0; + virtual ::java::lang::Comparable * getObjectMaxValue(::java::lang::String *) = 0; + virtual ::java::lang::Comparable * getObjectMinValue(::java::lang::String *) = 0; + virtual jint getObjectValueType(::java::lang::String *) = 0; + virtual ::java::lang::String * getRootName() = 0; + virtual jboolean isAttributeRequired(::java::lang::String *, ::java::lang::String *) = 0; + static const jint CHILD_POLICY_ALL = 1; + static const jint CHILD_POLICY_CHOICE = 3; + static const jint CHILD_POLICY_EMPTY = 0; + static const jint CHILD_POLICY_MAX = 5; + static const jint CHILD_POLICY_REPEAT = 5; + static const jint CHILD_POLICY_SEQUENCE = 4; + static const jint CHILD_POLICY_SOME = 2; + static const jint DATATYPE_BOOLEAN = 1; + static const jint DATATYPE_DOUBLE = 4; + static const jint DATATYPE_FLOAT = 3; + static const jint DATATYPE_INTEGER = 2; + static const jint DATATYPE_STRING = 0; + static const jint VALUE_ARBITRARY = 1; + static const jint VALUE_ENUMERATION = 16; + static const jint VALUE_LIST = 32; + static const jint VALUE_NONE = 0; + static const jint VALUE_RANGE = 2; + static const jint VALUE_RANGE_MAX_INCLUSIVE = 10; + static const jint VALUE_RANGE_MAX_INCLUSIVE_MASK = 8; + static const jint VALUE_RANGE_MIN_INCLUSIVE = 6; + static const jint VALUE_RANGE_MIN_INCLUSIVE_MASK = 4; + static const jint VALUE_RANGE_MIN_MAX_INCLUSIVE = 14; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_metadata_IIOMetadataFormat__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$1.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$1.h new file mode 100644 index 00000000000..2afcdb019e7 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$1.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$1__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageTypeSpecifier; + namespace metadata + { + class IIOMetadataFormatImpl$1; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$1 : public ::javax::imageio::metadata::IIOMetadataFormatImpl +{ + +public: // actually package-private + IIOMetadataFormatImpl$1(::java::lang::String *, jint); +public: + jboolean canNodeAppear(::java::lang::String *, ::javax::imageio::ImageTypeSpecifier *); + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$1__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.h new file mode 100644 index 00000000000..e1f5f93a413 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttr__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttr__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl$IIOMetadataNodeAttr; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + class TypeInfo; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttr : public ::javax::imageio::metadata::IIOMetadataNode +{ + +public: + IIOMetadataFormatImpl$IIOMetadataNodeAttr(::org::w3c::dom::Element *, ::java::lang::String *, ::java::lang::String *); + IIOMetadataFormatImpl$IIOMetadataNodeAttr(::org::w3c::dom::Element *, ::java::lang::String *, jint, jboolean, ::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual ::org::w3c::dom::Element * getOwnerElement(); + virtual jint getDataType(); + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo(); + virtual jboolean getSpecified(); + virtual ::java::lang::String * getValue(); + virtual jboolean isId(); + virtual void setValue(::java::lang::String *); + virtual jboolean isRequired(); +public: // actually protected + ::org::w3c::dom::Element * __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataNode)))) owner; + ::java::lang::String * name; + jint dataType; + jboolean required; + ::java::lang::String * defaultValue; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttr__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.h new file mode 100644 index 00000000000..4a1a76e76bc --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded : public ::javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttr +{ + +public: + IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::String *, jint, jboolean, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean); + virtual ::java::lang::String * getMinValue(); + virtual ::java::lang::String * getMaxValue(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttr)))) minValue; + ::java::lang::String * maxValue; + jboolean minInclusive; + jboolean maxInclusive; +public: // actually package-private + ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.h new file mode 100644 index 00000000000..a81c5628941 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated : public ::javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttr +{ + +public: + IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::String *, jint, jboolean, ::java::lang::String *, ::java::util::List *); + virtual JArray< ::java::lang::Object * > * getEnumerations(); +public: // actually protected + ::java::util::List * __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttr)))) enumeratedValues; +public: // actually package-private + ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.h new file mode 100644 index 00000000000..fd5b373cb01 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrList__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrList__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$IIOMetadataNodeAttrList; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttrList : public ::javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttr +{ + +public: + IIOMetadataFormatImpl$IIOMetadataNodeAttrList(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::String *, jint, jboolean, jint, jint); + virtual jint getListMinLength(); + virtual jint getListMaxLength(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataFormatImpl$IIOMetadataNodeAttr)))) listMinLength; + jint listMaxLength; +public: // actually package-private + ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$IIOMetadataNodeAttrList__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.h new file mode 100644 index 00000000000..fabfef49165 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObject__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObject__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$NodeObject; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject : public ::java::lang::Object +{ + +public: + IIOMetadataFormatImpl$NodeObject(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::Class *, jboolean, ::java::lang::Object *); + virtual jint getValueType(); + virtual ::java::lang::Class * getClassType(); + virtual ::org::w3c::dom::Element * getOwnerElement(); + virtual ::java::lang::Object * getDefaultValue(); + virtual jboolean isRequired(); +public: // actually protected + ::org::w3c::dom::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) owner; + ::java::lang::Class * classType; + jboolean required; + ::java::lang::Object * defaultValue; + jint valueType; +public: // actually package-private + ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObject__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.h new file mode 100644 index 00000000000..4e9b819ed5b --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectArray__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectArray__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$NodeObjectArray; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$NodeObjectArray : public ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject +{ + +public: + IIOMetadataFormatImpl$NodeObjectArray(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::Class *, jint, jint); + virtual ::java::lang::Comparable * getArrayMinLength(); + virtual ::java::lang::Comparable * getArrayMaxLength(); +public: // actually protected + ::java::lang::Integer * __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject)))) arrayMinLength; + ::java::lang::Integer * arrayMaxLength; +public: // actually package-private + ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectArray__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.h new file mode 100644 index 00000000000..1605d23deb9 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectBounded__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectBounded__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$NodeObjectBounded; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$NodeObjectBounded : public ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject +{ + +public: + IIOMetadataFormatImpl$NodeObjectBounded(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::Class *, ::java::lang::Object *, ::java::lang::Comparable *, ::java::lang::Comparable *, jboolean, jboolean); + virtual ::java::lang::Comparable * getMinValue(); + virtual ::java::lang::Comparable * getMaxValue(); +public: // actually protected + ::java::lang::Comparable * __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject)))) minValue; + ::java::lang::Comparable * maxValue; + jboolean minInclusive; + jboolean maxInclusive; +public: // actually package-private + ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectBounded__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.h new file mode 100644 index 00000000000..0dabd83e265 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectEnumerated__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectEnumerated__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$NodeObjectEnumerated; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl$NodeObjectEnumerated : public ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject +{ + +public: + IIOMetadataFormatImpl$NodeObjectEnumerated(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::Class *, jboolean, ::java::lang::Object *, ::java::util::List *); + virtual JArray< ::java::lang::Object * > * getEnumerations(); +public: // actually protected + ::java::util::List * __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject)))) enumeratedValues; +public: // actually package-private + ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectEnumerated__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataFormatImpl.h b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl.h new file mode 100644 index 00000000000..b47defa8474 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataFormatImpl.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl__ +#define __javax_imageio_metadata_IIOMetadataFormatImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageTypeSpecifier; + namespace metadata + { + class IIOMetadataFormat; + class IIOMetadataFormatImpl; + class IIOMetadataFormatImpl$NodeObject; + class IIOMetadataNode; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataFormatImpl : public ::java::lang::Object +{ + +public: + IIOMetadataFormatImpl(::java::lang::String *, jint); + IIOMetadataFormatImpl(::java::lang::String *, jint, jint); +public: // actually protected + virtual void addAttribute(::java::lang::String *, ::java::lang::String *, jint, jboolean, ::java::lang::String *); + virtual void addAttribute(::java::lang::String *, ::java::lang::String *, jint, jboolean, ::java::lang::String *, ::java::util::List *); + virtual void addAttribute(::java::lang::String *, ::java::lang::String *, jint, jboolean, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean); + virtual void addAttribute(::java::lang::String *, ::java::lang::String *, jint, jboolean, jint, jint); + virtual void addBooleanAttribute(::java::lang::String *, ::java::lang::String *, jboolean, jboolean); + virtual void addChildElement(::java::lang::String *, ::java::lang::String *); + virtual void addElement(::java::lang::String *, ::java::lang::String *, jint); + virtual void addElement(::java::lang::String *, ::java::lang::String *, jint, jint); +private: + void addNodeObject(::javax::imageio::metadata::IIOMetadataNode *, ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject *); + ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject * getNodeObject(::javax::imageio::metadata::IIOMetadataNode *); + void removeNodeObject(::javax::imageio::metadata::IIOMetadataNode *); +public: // actually protected + virtual void addObjectValue(::java::lang::String *, ::java::lang::Class *, jboolean, ::java::lang::Object *); + virtual void addObjectValue(::java::lang::String *, ::java::lang::Class *, jboolean, ::java::lang::Object *, ::java::util::List *); + virtual void addObjectValue(::java::lang::String *, ::java::lang::Class *, ::java::lang::Object *, ::java::lang::Comparable *, ::java::lang::Comparable *, jboolean, jboolean); + virtual void addObjectValue(::java::lang::String *, ::java::lang::Class *, jint, jint); +public: + virtual ::java::lang::String * getRootName(); +public: // actually protected + virtual ::java::lang::String * getResourceBaseName(); +public: + static ::javax::imageio::metadata::IIOMetadataFormat * getStandardFormatInstance(); + virtual jboolean canNodeAppear(::java::lang::String *, ::javax::imageio::ImageTypeSpecifier *) = 0; +public: // actually protected + virtual void removeAttribute(::java::lang::String *, ::java::lang::String *); + virtual void removeElement(::java::lang::String *); + virtual void removeObjectValue(::java::lang::String *); + virtual void setResourceBaseName(::java::lang::String *); +public: + virtual jint getAttributeDataType(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getAttributeDefaultValue(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getAttributeDescription(::java::lang::String *, ::java::lang::String *, ::java::util::Locale *); + virtual JArray< ::java::lang::String * > * getAttributeEnumerations(::java::lang::String *, ::java::lang::String *); + virtual jint getAttributeListMaxLength(::java::lang::String *, ::java::lang::String *); + virtual jint getAttributeListMinLength(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getAttributeMaxValue(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getAttributeMinValue(::java::lang::String *, ::java::lang::String *); + virtual JArray< ::java::lang::String * > * getAttributeNames(::java::lang::String *); + virtual jint getAttributeValueType(::java::lang::String *, ::java::lang::String *); + virtual JArray< ::java::lang::String * > * getChildNames(::java::lang::String *); + virtual jint getChildPolicy(::java::lang::String *); +private: + ::java::lang::String * getDescription(::java::lang::String *, ::java::util::Locale *); +public: + virtual ::java::lang::String * getElementDescription(::java::lang::String *, ::java::util::Locale *); + virtual jint getElementMaxChildren(::java::lang::String *); + virtual jint getElementMinChildren(::java::lang::String *); + virtual jint getObjectArrayMaxLength(::java::lang::String *); + virtual jint getObjectArrayMinLength(::java::lang::String *); + virtual ::java::lang::Class * getObjectClass(::java::lang::String *); + virtual ::java::lang::Object * getObjectDefaultValue(::java::lang::String *); + virtual JArray< ::java::lang::Object * > * getObjectEnumerations(::java::lang::String *); + virtual ::java::lang::Comparable * getObjectMaxValue(::java::lang::String *); + virtual ::java::lang::Comparable * getObjectMinValue(::java::lang::String *); + virtual jint getObjectValueType(::java::lang::String *); + virtual jboolean isAttributeRequired(::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * standardMetadataFormatName; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) rootName; + ::java::util::Map * nodes; + ::java::util::Map * childPolicies; + ::java::util::Map * childRanges; + ::java::lang::String * resourceBaseName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataFormatImpl__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataNode$IIONamedNodeMap.h b/libjava/javax/imageio/metadata/IIOMetadataNode$IIONamedNodeMap.h new file mode 100644 index 00000000000..9026a27d65f --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataNode$IIONamedNodeMap.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataNode$IIONamedNodeMap__ +#define __javax_imageio_metadata_IIOMetadataNode$IIONamedNodeMap__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataNode; + class IIOMetadataNode$IIONamedNodeMap; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataNode$IIONamedNodeMap : public ::java::lang::Object +{ + +public: + IIOMetadataNode$IIONamedNodeMap(::javax::imageio::metadata::IIOMetadataNode *, ::java::util::HashMap *); + virtual ::org::w3c::dom::Node * getNamedItem(::java::lang::String *); + virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * removeNamedItem(::java::lang::String *); + virtual ::org::w3c::dom::Node * item(jint); + virtual jint getLength(); + virtual ::org::w3c::dom::Node * getNamedItemNS(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Node * setNamedItemNS(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * removeNamedItemNS(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attrs; + ::javax::imageio::metadata::IIOMetadataNode * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataNode$IIONamedNodeMap__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataNode$IIONodeList.h b/libjava/javax/imageio/metadata/IIOMetadataNode$IIONodeList.h new file mode 100644 index 00000000000..581abd9cab8 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataNode$IIONodeList.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataNode$IIONodeList__ +#define __javax_imageio_metadata_IIOMetadataNode$IIONodeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataNode; + class IIOMetadataNode$IIONodeList; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataNode$IIONodeList : public ::java::lang::Object +{ + + IIOMetadataNode$IIONodeList(::javax::imageio::metadata::IIOMetadataNode *); +public: + virtual ::org::w3c::dom::Node * item(jint); + virtual jint getLength(); +public: // actually package-private + IIOMetadataNode$IIONodeList(::javax::imageio::metadata::IIOMetadataNode *, ::javax::imageio::metadata::IIOMetadataNode$IIONodeList *); + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) children; + ::javax::imageio::metadata::IIOMetadataNode * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataNode$IIONodeList__ diff --git a/libjava/javax/imageio/metadata/IIOMetadataNode.h b/libjava/javax/imageio/metadata/IIOMetadataNode.h new file mode 100644 index 00000000000..bf2c50c5381 --- /dev/null +++ b/libjava/javax/imageio/metadata/IIOMetadataNode.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_metadata_IIOMetadataNode__ +#define __javax_imageio_metadata_IIOMetadataNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataNode; + class IIOMetadataNode$IIONodeList; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + } + } + } +} + +class javax::imageio::metadata::IIOMetadataNode : public ::java::lang::Object +{ + +public: + IIOMetadataNode(); + IIOMetadataNode(::java::lang::String *); + virtual ::java::lang::Object * getUserObject(); + virtual void setUserObject(::java::lang::Object *); + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *); + virtual ::java::lang::String * getAttribute(::java::lang::String *); + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *); + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getBaseURI(); +private: + void getElementsRecurse(::javax::imageio::metadata::IIOMetadataNode$IIONodeList *, ::java::lang::String *); +public: + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *); + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getTagName(); + virtual jboolean hasAttribute(::java::lang::String *); + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual void removeAttribute(::java::lang::String *); + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *); + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *); + virtual void setAttribute(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *); + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *); + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual jint getLength(); + virtual ::org::w3c::dom::Node * item(jint); + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * cloneNode(jboolean); + virtual ::org::w3c::dom::NamedNodeMap * getAttributes(); + virtual ::org::w3c::dom::NodeList * getChildNodes(); + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *); + virtual ::org::w3c::dom::Node * getFirstChild(); + virtual ::org::w3c::dom::Node * getLastChild(); + virtual ::java::lang::String * getLocalName(); + virtual ::java::lang::String * getNamespaceURI(); + virtual ::org::w3c::dom::Node * getNextSibling(); + virtual ::java::lang::String * getNodeName(); + virtual jshort getNodeType(); + virtual ::java::lang::String * getNodeValue(); + virtual ::org::w3c::dom::Document * getOwnerDocument(); + virtual ::org::w3c::dom::Node * getParentNode(); + virtual ::java::lang::String * getPrefix(); + virtual ::org::w3c::dom::Node * getPreviousSibling(); + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo(); + virtual ::java::lang::String * getTextContent(); + virtual ::java::lang::Object * getUserData(::java::lang::String *); + virtual jboolean hasAttributes(); + virtual jboolean hasChildNodes(); + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual jboolean isDefaultNamespace(::java::lang::String *); + virtual jboolean isEqualNode(::org::w3c::dom::Node *); + virtual jboolean isSameNode(::org::w3c::dom::Node *); + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *); + virtual ::java::lang::String * lookupPrefix(::java::lang::String *); + virtual void normalize(); + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + virtual void setIdAttribute(::java::lang::String *, jboolean); + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean); + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean); + virtual void setNodeValue(::java::lang::String *); + virtual void setPrefix(::java::lang::String *); + virtual void setTextContent(::java::lang::String *); + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::util::HashMap * attrs; + ::java::util::List * children; + ::javax::imageio::metadata::IIOMetadataNode * parent; + ::java::lang::Object * obj; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_metadata_IIOMetadataNode__ diff --git a/libjava/javax/imageio/plugins/bmp/BMPImageWriteParam.h b/libjava/javax/imageio/plugins/bmp/BMPImageWriteParam.h new file mode 100644 index 00000000000..d1757850d02 --- /dev/null +++ b/libjava/javax/imageio/plugins/bmp/BMPImageWriteParam.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_plugins_bmp_BMPImageWriteParam__ +#define __javax_imageio_plugins_bmp_BMPImageWriteParam__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace bmp + { + class BMPImageWriteParam; + } + } + } + } +} + +class javax::imageio::plugins::bmp::BMPImageWriteParam : public ::javax::imageio::ImageWriteParam +{ + +public: + BMPImageWriteParam(); + BMPImageWriteParam(::java::util::Locale *); + virtual void setTopDown(jboolean); + virtual jboolean isTopDown(); +private: + jboolean __attribute__((aligned(__alignof__( ::javax::imageio::ImageWriteParam)))) topDown; +public: // actually package-private + ::java::lang::String * rgb; + ::java::lang::String * rle8; + ::java::lang::String * rle4; + ::java::lang::String * bitfields; + static const jint BI_RGB = 0; + static const jint BI_RLE8 = 1; + static const jint BI_RLE4 = 2; + static const jint BI_BITFIELDS = 3; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_plugins_bmp_BMPImageWriteParam__ diff --git a/libjava/javax/imageio/plugins/jpeg/JPEGHuffmanTable.h b/libjava/javax/imageio/plugins/jpeg/JPEGHuffmanTable.h new file mode 100644 index 00000000000..7aa9f84e54c --- /dev/null +++ b/libjava/javax/imageio/plugins/jpeg/JPEGHuffmanTable.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_plugins_jpeg_JPEGHuffmanTable__ +#define __javax_imageio_plugins_jpeg_JPEGHuffmanTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGHuffmanTable; + } + } + } + } +} + +class javax::imageio::plugins::jpeg::JPEGHuffmanTable : public ::java::lang::Object +{ + +public: + JPEGHuffmanTable(JArray< jshort > *, JArray< jshort > *); +private: + JPEGHuffmanTable(JArray< jshort > *, JArray< jshort > *, jboolean); + static JArray< jshort > * checkLengths(JArray< jshort > *); + static JArray< jshort > * checkValues(JArray< jshort > *, JArray< jshort > *); +public: + virtual JArray< jshort > * getLengths(); + virtual JArray< jshort > * getValues(); + virtual ::java::lang::String * toString(); +private: + JArray< jshort > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lengths; + JArray< jshort > * values; +public: + static ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * StdACChrominance; + static ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * StdACLuminance; + static ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * StdDCChrominance; + static ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * StdDCLuminance; + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_plugins_jpeg_JPEGHuffmanTable__ diff --git a/libjava/javax/imageio/plugins/jpeg/JPEGImageReadParam.h b/libjava/javax/imageio/plugins/jpeg/JPEGImageReadParam.h new file mode 100644 index 00000000000..c4583821519 --- /dev/null +++ b/libjava/javax/imageio/plugins/jpeg/JPEGImageReadParam.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_plugins_jpeg_JPEGImageReadParam__ +#define __javax_imageio_plugins_jpeg_JPEGImageReadParam__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGHuffmanTable; + class JPEGImageReadParam; + class JPEGQTable; + } + } + } + } +} + +class javax::imageio::plugins::jpeg::JPEGImageReadParam : public ::javax::imageio::ImageReadParam +{ + +public: + JPEGImageReadParam(); + virtual jboolean areTablesSet(); + virtual void setDecodeTables(JArray< ::javax::imageio::plugins::jpeg::JPEGQTable * > *, JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > *, JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > *); + virtual void unsetDecodeTables(); + virtual JArray< ::javax::imageio::plugins::jpeg::JPEGQTable * > * getQTables(); + virtual JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * getDCHuffmanTables(); + virtual JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * getACHuffmanTables(); +private: + JArray< ::javax::imageio::plugins::jpeg::JPEGQTable * > * __attribute__((aligned(__alignof__( ::javax::imageio::ImageReadParam)))) qTables; + JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * DCHuffmanTables; + JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * ACHuffmanTables; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_plugins_jpeg_JPEGImageReadParam__ diff --git a/libjava/javax/imageio/plugins/jpeg/JPEGImageWriteParam.h b/libjava/javax/imageio/plugins/jpeg/JPEGImageWriteParam.h new file mode 100644 index 00000000000..03607d122a9 --- /dev/null +++ b/libjava/javax/imageio/plugins/jpeg/JPEGImageWriteParam.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_plugins_jpeg_JPEGImageWriteParam__ +#define __javax_imageio_plugins_jpeg_JPEGImageWriteParam__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGHuffmanTable; + class JPEGImageWriteParam; + class JPEGQTable; + } + } + } + } +} + +class javax::imageio::plugins::jpeg::JPEGImageWriteParam : public ::javax::imageio::ImageWriteParam +{ + +public: + JPEGImageWriteParam(::java::util::Locale *); + virtual void unsetCompression(); + virtual jboolean isCompressionLossless(); + virtual JArray< ::java::lang::String * > * getCompressionQualityDescriptions(); + virtual JArray< jfloat > * getCompressionQualityValues(); + virtual jboolean areTablesSet(); + virtual void setEncodeTables(JArray< ::javax::imageio::plugins::jpeg::JPEGQTable * > *, JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > *, JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > *); + virtual void unsetEncodeTables(); + virtual JArray< ::javax::imageio::plugins::jpeg::JPEGQTable * > * getQTables(); + virtual JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * getDCHuffmanTables(); + virtual JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * getACHuffmanTables(); + virtual void setOptimizeHuffmanTables(jboolean); + virtual jboolean getOptimizeHuffmanTables(); +private: + JArray< ::javax::imageio::plugins::jpeg::JPEGQTable * > * __attribute__((aligned(__alignof__( ::javax::imageio::ImageWriteParam)))) qTables; + JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * DCHuffmanTables; + JArray< ::javax::imageio::plugins::jpeg::JPEGHuffmanTable * > * ACHuffmanTables; + jboolean optimize; + JArray< ::java::lang::String * > * compressionQualityDescriptions; + JArray< jfloat > * compressionQualityValues; + ::java::util::ResourceBundle * messages; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_plugins_jpeg_JPEGImageWriteParam__ diff --git a/libjava/javax/imageio/plugins/jpeg/JPEGQTable.h b/libjava/javax/imageio/plugins/jpeg/JPEGQTable.h new file mode 100644 index 00000000000..366202f5664 --- /dev/null +++ b/libjava/javax/imageio/plugins/jpeg/JPEGQTable.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_plugins_jpeg_JPEGQTable__ +#define __javax_imageio_plugins_jpeg_JPEGQTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace plugins + { + namespace jpeg + { + class JPEGQTable; + } + } + } + } +} + +class javax::imageio::plugins::jpeg::JPEGQTable : public ::java::lang::Object +{ + +public: + JPEGQTable(JArray< jint > *); +private: + JPEGQTable(JArray< jint > *, jboolean); + static JArray< jint > * checkTable(JArray< jint > *); +public: + virtual JArray< jint > * getTable(); + virtual ::javax::imageio::plugins::jpeg::JPEGQTable * getScaledInstance(jfloat, jboolean); + virtual ::java::lang::String * toString(); +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) table; +public: + static ::javax::imageio::plugins::jpeg::JPEGQTable * K1Luminance; + static ::javax::imageio::plugins::jpeg::JPEGQTable * K1Div2Luminance; + static ::javax::imageio::plugins::jpeg::JPEGQTable * K2Chrominance; + static ::javax::imageio::plugins::jpeg::JPEGQTable * K2Div2Chrominance; + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_plugins_jpeg_JPEGQTable__ diff --git a/libjava/javax/imageio/spi/IIORegistry.h b/libjava/javax/imageio/spi/IIORegistry.h new file mode 100644 index 00000000000..4b15c121ff1 --- /dev/null +++ b/libjava/javax/imageio/spi/IIORegistry.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_IIORegistry__ +#define __javax_imageio_spi_IIORegistry__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class IIORegistry; + } + } + } +} + +class javax::imageio::spi::IIORegistry : public ::javax::imageio::spi::ServiceRegistry +{ + +public: + static ::javax::imageio::spi::IIORegistry * getDefaultInstance(); +private: + IIORegistry(); +public: + void registerApplicationClasspathSpis(); +private: + static ::java::util::HashSet * defaultCategories; + static ::java::util::HashMap * instances; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_IIORegistry__ diff --git a/libjava/javax/imageio/spi/IIOServiceProvider.h b/libjava/javax/imageio/spi/IIOServiceProvider.h new file mode 100644 index 00000000000..befcd09ccfc --- /dev/null +++ b/libjava/javax/imageio/spi/IIOServiceProvider.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_IIOServiceProvider__ +#define __javax_imageio_spi_IIOServiceProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class IIOServiceProvider; + class ServiceRegistry; + } + } + } +} + +class javax::imageio::spi::IIOServiceProvider : public ::java::lang::Object +{ + +public: + IIOServiceProvider(::java::lang::String *, ::java::lang::String *); + IIOServiceProvider(); + virtual void onRegistration(::javax::imageio::spi::ServiceRegistry *, ::java::lang::Class *); + virtual void onDeregistration(::javax::imageio::spi::ServiceRegistry *, ::java::lang::Class *); + virtual ::java::lang::String * getVendorName(); + virtual ::java::lang::String * getVersion(); + virtual ::java::lang::String * getDescription(::java::util::Locale *) = 0; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) vendorName; + ::java::lang::String * version; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_IIOServiceProvider__ diff --git a/libjava/javax/imageio/spi/ImageInputStreamSpi.h b/libjava/javax/imageio/spi/ImageInputStreamSpi.h new file mode 100644 index 00000000000..946842c61f3 --- /dev/null +++ b/libjava/javax/imageio/spi/ImageInputStreamSpi.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ImageInputStreamSpi__ +#define __javax_imageio_spi_ImageInputStreamSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class ImageInputStreamSpi; + } + namespace stream + { + class ImageInputStream; + } + } + } +} + +class javax::imageio::spi::ImageInputStreamSpi : public ::javax::imageio::spi::IIOServiceProvider +{ + +public: // actually protected + ImageInputStreamSpi(); +public: + ImageInputStreamSpi(::java::lang::String *, ::java::lang::String *, ::java::lang::Class *); + virtual ::java::lang::Class * getInputClass(); + virtual jboolean canUseCacheFile(); + virtual jboolean needsCacheFile(); + virtual ::javax::imageio::stream::ImageInputStream * createInputStreamInstance(::java::lang::Object *, jboolean, ::java::io::File *) = 0; + virtual ::javax::imageio::stream::ImageInputStream * createInputStreamInstance(::java::lang::Object *); +public: // actually protected + ::java::lang::Class * __attribute__((aligned(__alignof__( ::javax::imageio::spi::IIOServiceProvider)))) inputClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ImageInputStreamSpi__ diff --git a/libjava/javax/imageio/spi/ImageOutputStreamSpi.h b/libjava/javax/imageio/spi/ImageOutputStreamSpi.h new file mode 100644 index 00000000000..6ac36b4aa97 --- /dev/null +++ b/libjava/javax/imageio/spi/ImageOutputStreamSpi.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ImageOutputStreamSpi__ +#define __javax_imageio_spi_ImageOutputStreamSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class ImageOutputStreamSpi; + } + namespace stream + { + class ImageOutputStream; + } + } + } +} + +class javax::imageio::spi::ImageOutputStreamSpi : public ::javax::imageio::spi::IIOServiceProvider +{ + +public: // actually protected + ImageOutputStreamSpi(); +public: + ImageOutputStreamSpi(::java::lang::String *, ::java::lang::String *, ::java::lang::Class *); + virtual ::java::lang::Class * getOutputClass(); + virtual jboolean canUseCacheFile(); + virtual jboolean needsCacheFile(); + virtual ::javax::imageio::stream::ImageOutputStream * createOutputStreamInstance(::java::lang::Object *, jboolean, ::java::io::File *) = 0; + virtual ::javax::imageio::stream::ImageOutputStream * createOutputStreamInstance(::java::lang::Object *); +public: // actually protected + ::java::lang::Class * __attribute__((aligned(__alignof__( ::javax::imageio::spi::IIOServiceProvider)))) outputClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ImageOutputStreamSpi__ diff --git a/libjava/javax/imageio/spi/ImageReaderSpi.h b/libjava/javax/imageio/spi/ImageReaderSpi.h new file mode 100644 index 00000000000..554b52ee785 --- /dev/null +++ b/libjava/javax/imageio/spi/ImageReaderSpi.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ImageReaderSpi__ +#define __javax_imageio_spi_ImageReaderSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageReader; + namespace spi + { + class ImageReaderSpi; + } + } + } +} + +class javax::imageio::spi::ImageReaderSpi : public ::javax::imageio::spi::ImageReaderWriterSpi +{ + +public: // actually protected + ImageReaderSpi(); +public: + ImageReaderSpi(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::lang::String *, JArray< ::java::lang::Class * > *, JArray< ::java::lang::String * > *, jboolean, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *); + virtual jboolean canDecodeInput(::java::lang::Object *) = 0; + virtual ::javax::imageio::ImageReader * createReaderInstance(); + virtual ::javax::imageio::ImageReader * createReaderInstance(::java::lang::Object *) = 0; + virtual JArray< ::java::lang::String * > * getImageWriterSpiNames(); + virtual JArray< ::java::lang::Class * > * getInputTypes(); + virtual jboolean isOwnReader(::javax::imageio::ImageReader *); + static JArray< ::java::lang::Class * > * STANDARD_INPUT_TYPE; +public: // actually protected + JArray< ::java::lang::Class * > * __attribute__((aligned(__alignof__( ::javax::imageio::spi::ImageReaderWriterSpi)))) inputTypes; + JArray< ::java::lang::String * > * writerSpiNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ImageReaderSpi__ diff --git a/libjava/javax/imageio/spi/ImageReaderWriterSpi.h b/libjava/javax/imageio/spi/ImageReaderWriterSpi.h new file mode 100644 index 00000000000..91930cd208f --- /dev/null +++ b/libjava/javax/imageio/spi/ImageReaderWriterSpi.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ImageReaderWriterSpi__ +#define __javax_imageio_spi_ImageReaderWriterSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace metadata + { + class IIOMetadataFormat; + } + namespace spi + { + class ImageReaderWriterSpi; + } + } + } +} + +class javax::imageio::spi::ImageReaderWriterSpi : public ::javax::imageio::spi::IIOServiceProvider +{ + +public: + ImageReaderWriterSpi(); + ImageReaderWriterSpi(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::lang::String *, jboolean, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *); + virtual JArray< ::java::lang::String * > * getFormatNames(); + virtual JArray< ::java::lang::String * > * getFileSuffixes(); + virtual JArray< ::java::lang::String * > * getMIMETypes(); + virtual ::java::lang::String * getPluginClassName(); + virtual jboolean isStandardStreamMetadataFormatSupported(); + virtual ::java::lang::String * getNativeStreamMetadataFormatName(); + virtual JArray< ::java::lang::String * > * getExtraStreamMetadataFormatNames(); + virtual jboolean isStandardImageMetadataFormatSupported(); + virtual ::java::lang::String * getNativeImageMetadataFormatName(); + virtual JArray< ::java::lang::String * > * getExtraImageMetadataFormatNames(); + virtual ::javax::imageio::metadata::IIOMetadataFormat * getStreamMetadataFormat(::java::lang::String *); + virtual ::javax::imageio::metadata::IIOMetadataFormat * getImageMetadataFormat(::java::lang::String *); +public: // actually protected + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::javax::imageio::spi::IIOServiceProvider)))) names; + JArray< ::java::lang::String * > * suffixes; + JArray< ::java::lang::String * > * MIMETypes; + ::java::lang::String * pluginClassName; + jboolean supportsStandardStreamMetadataFormat; + ::java::lang::String * nativeStreamMetadataFormatName; + ::java::lang::String * nativeStreamMetadataFormatClassName; + JArray< ::java::lang::String * > * extraStreamMetadataFormatNames; + JArray< ::java::lang::String * > * extraStreamMetadataFormatClassNames; + jboolean supportsStandardImageMetadataFormat; + ::java::lang::String * nativeImageMetadataFormatName; + ::java::lang::String * nativeImageMetadataFormatClassName; + JArray< ::java::lang::String * > * extraImageMetadataFormatNames; + JArray< ::java::lang::String * > * extraImageMetadataFormatClassNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ImageReaderWriterSpi__ diff --git a/libjava/javax/imageio/spi/ImageTranscoderSpi.h b/libjava/javax/imageio/spi/ImageTranscoderSpi.h new file mode 100644 index 00000000000..368c2ad631a --- /dev/null +++ b/libjava/javax/imageio/spi/ImageTranscoderSpi.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ImageTranscoderSpi__ +#define __javax_imageio_spi_ImageTranscoderSpi__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + class ImageTranscoder; + namespace spi + { + class ImageTranscoderSpi; + } + } + } +} + +class javax::imageio::spi::ImageTranscoderSpi : public ::javax::imageio::spi::IIOServiceProvider +{ + +public: // actually protected + ImageTranscoderSpi(); +public: + ImageTranscoderSpi(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getReaderServiceProviderName() = 0; + virtual ::java::lang::String * getWriterServiceProviderName() = 0; + virtual ::javax::imageio::ImageTranscoder * createTranscoderInstance() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ImageTranscoderSpi__ diff --git a/libjava/javax/imageio/spi/ImageWriterSpi.h b/libjava/javax/imageio/spi/ImageWriterSpi.h new file mode 100644 index 00000000000..55d9bdb8ed8 --- /dev/null +++ b/libjava/javax/imageio/spi/ImageWriterSpi.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ImageWriterSpi__ +#define __javax_imageio_spi_ImageWriterSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace image + { + class RenderedImage; + } + } + } + namespace javax + { + namespace imageio + { + class ImageTypeSpecifier; + class ImageWriter; + namespace spi + { + class ImageWriterSpi; + } + } + } +} + +class javax::imageio::spi::ImageWriterSpi : public ::javax::imageio::spi::ImageReaderWriterSpi +{ + +public: // actually protected + ImageWriterSpi(); +public: + ImageWriterSpi(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::lang::String *, JArray< ::java::lang::Class * > *, JArray< ::java::lang::String * > *, jboolean, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *); + virtual jboolean canEncodeImage(::javax::imageio::ImageTypeSpecifier *) = 0; + virtual jboolean canEncodeImage(::java::awt::image::RenderedImage *); + virtual ::javax::imageio::ImageWriter * createWriterInstance(); + virtual ::javax::imageio::ImageWriter * createWriterInstance(::java::lang::Object *) = 0; + virtual JArray< ::java::lang::String * > * getImageReaderSpiNames(); + virtual JArray< ::java::lang::Class * > * getOutputTypes(); + virtual jboolean isFormatLossless(); + virtual jboolean isOwnWriter(::javax::imageio::ImageWriter *); + static JArray< ::java::lang::Class * > * STANDARD_OUTPUT_TYPE; +public: // actually protected + JArray< ::java::lang::Class * > * __attribute__((aligned(__alignof__( ::javax::imageio::spi::ImageReaderWriterSpi)))) outputTypes; + JArray< ::java::lang::String * > * readerSpiNames; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ImageWriterSpi__ diff --git a/libjava/javax/imageio/spi/RegisterableService.h b/libjava/javax/imageio/spi/RegisterableService.h new file mode 100644 index 00000000000..fcd4e140f69 --- /dev/null +++ b/libjava/javax/imageio/spi/RegisterableService.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_RegisterableService__ +#define __javax_imageio_spi_RegisterableService__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class RegisterableService; + class ServiceRegistry; + } + } + } +} + +class javax::imageio::spi::RegisterableService : public ::java::lang::Object +{ + +public: + virtual void onRegistration(::javax::imageio::spi::ServiceRegistry *, ::java::lang::Class *) = 0; + virtual void onDeregistration(::javax::imageio::spi::ServiceRegistry *, ::java::lang::Class *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_spi_RegisterableService__ diff --git a/libjava/javax/imageio/spi/ServiceRegistry$1.h b/libjava/javax/imageio/spi/ServiceRegistry$1.h new file mode 100644 index 00000000000..ea647060a4c --- /dev/null +++ b/libjava/javax/imageio/spi/ServiceRegistry$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ServiceRegistry$1__ +#define __javax_imageio_spi_ServiceRegistry$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class ServiceRegistry; + class ServiceRegistry$1; + } + } + } +} + +class javax::imageio::spi::ServiceRegistry$1 : public ::java::lang::Object +{ + +public: // actually package-private + ServiceRegistry$1(::javax::imageio::spi::ServiceRegistry *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + void remove(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; + ::javax::imageio::spi::ServiceRegistry * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ServiceRegistry$1__ diff --git a/libjava/javax/imageio/spi/ServiceRegistry$2.h b/libjava/javax/imageio/spi/ServiceRegistry$2.h new file mode 100644 index 00000000000..e0d3a132e73 --- /dev/null +++ b/libjava/javax/imageio/spi/ServiceRegistry$2.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ServiceRegistry$2__ +#define __javax_imageio_spi_ServiceRegistry$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class ServiceRegistry; + class ServiceRegistry$2; + } + } + } +} + +class javax::imageio::spi::ServiceRegistry$2 : public ::java::lang::Object +{ + +public: // actually package-private + ServiceRegistry$2(::javax::imageio::spi::ServiceRegistry *, ::java::util::Map *); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + ::javax::imageio::spi::ServiceRegistry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::java::util::Map * val$cons; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ServiceRegistry$2__ diff --git a/libjava/javax/imageio/spi/ServiceRegistry$Filter.h b/libjava/javax/imageio/spi/ServiceRegistry$Filter.h new file mode 100644 index 00000000000..10fd5aaff7f --- /dev/null +++ b/libjava/javax/imageio/spi/ServiceRegistry$Filter.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ServiceRegistry$Filter__ +#define __javax_imageio_spi_ServiceRegistry$Filter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class ServiceRegistry$Filter; + } + } + } +} + +class javax::imageio::spi::ServiceRegistry$Filter : public ::java::lang::Object +{ + +public: + virtual jboolean filter(::java::lang::Object *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_spi_ServiceRegistry$Filter__ diff --git a/libjava/javax/imageio/spi/ServiceRegistry.h b/libjava/javax/imageio/spi/ServiceRegistry.h new file mode 100644 index 00000000000..79a48fe3fd5 --- /dev/null +++ b/libjava/javax/imageio/spi/ServiceRegistry.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_spi_ServiceRegistry__ +#define __javax_imageio_spi_ServiceRegistry__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace spi + { + class ServiceRegistry; + class ServiceRegistry$Filter; + } + } + } +} + +class javax::imageio::spi::ServiceRegistry : public ::java::lang::Object +{ + +public: + ServiceRegistry(::java::util::Iterator *); + static ::java::util::Iterator * lookupProviders(::java::lang::Class *, ::java::lang::ClassLoader *); + static ::java::util::Iterator * lookupProviders(::java::lang::Class *); + virtual ::java::util::Iterator * getCategories(); +private: + jboolean registerServiceProvider(::java::lang::Object *, jint); +public: + virtual jboolean registerServiceProvider(::java::lang::Object *, ::java::lang::Class *); + virtual void registerServiceProvider(::java::lang::Object *); + virtual void registerServiceProviders(::java::util::Iterator *); +private: + jboolean deregisterServiceProvider(::java::lang::Object *, jint); +public: + virtual jboolean deregisterServiceProvider(::java::lang::Object *, ::java::lang::Class *); + virtual void deregisterServiceProvider(::java::lang::Object *); + virtual void deregisterAll(::java::lang::Class *); + virtual void deregisterAll(); + virtual void finalize(); + virtual jboolean contains(::java::lang::Object *); +private: + jint getCategoryID(::java::lang::Class *); +public: + virtual ::java::util::Iterator * getServiceProviders(::java::lang::Class *, jboolean); + virtual ::java::util::Iterator * getServiceProviders(::java::lang::Class *, ::javax::imageio::spi::ServiceRegistry$Filter *, jboolean); + virtual ::java::lang::Object * getServiceProviderByClass(::java::lang::Class *); + virtual jboolean setOrdering(::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *); + virtual jboolean unsetOrdering(::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *); +private: + jboolean addConstraint(jint, ::java::lang::Object *, ::java::lang::Object *); + jboolean removeConstraint(jint, ::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + JArray< ::java::lang::Class * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) categories; +private: + JArray< ::java::util::LinkedList * > * providers; + JArray< ::java::util::IdentityHashMap * > * constraints; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_spi_ServiceRegistry__ diff --git a/libjava/javax/imageio/stream/FileCacheImageInputStream.h b/libjava/javax/imageio/stream/FileCacheImageInputStream.h new file mode 100644 index 00000000000..728ed37bdf6 --- /dev/null +++ b/libjava/javax/imageio/stream/FileCacheImageInputStream.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_FileCacheImageInputStream__ +#define __javax_imageio_stream_FileCacheImageInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class FileCacheImageInputStream; + } + } + } +} + +class javax::imageio::stream::FileCacheImageInputStream : public ::javax::imageio::stream::ImageInputStreamImpl +{ + +public: + FileCacheImageInputStream(::java::io::InputStream *, ::java::io::File *); + virtual void close(); +private: + void checkStreamClosed(); +public: + virtual jboolean isCached(); + virtual jboolean isCachedFile(); + virtual jboolean isCachedMemory(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::javax::imageio::stream::ImageInputStreamImpl)))) stream; + ::java::io::File * cacheDir; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_FileCacheImageInputStream__ diff --git a/libjava/javax/imageio/stream/FileCacheImageOutputStream.h b/libjava/javax/imageio/stream/FileCacheImageOutputStream.h new file mode 100644 index 00000000000..30659671227 --- /dev/null +++ b/libjava/javax/imageio/stream/FileCacheImageOutputStream.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_FileCacheImageOutputStream__ +#define __javax_imageio_stream_FileCacheImageOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class FileCacheImageOutputStream; + } + } + } +} + +class javax::imageio::stream::FileCacheImageOutputStream : public ::javax::imageio::stream::ImageOutputStreamImpl +{ + +public: + FileCacheImageOutputStream(::java::io::OutputStream *, ::java::io::File *); + virtual void close(); +private: + void checkStreamClosed(); +public: + virtual jboolean isCached(); + virtual jboolean isCachedFile(); + virtual jboolean isCachedMemory(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(jint); +private: + ::java::io::OutputStream * __attribute__((aligned(__alignof__( ::javax::imageio::stream::ImageOutputStreamImpl)))) stream; + ::java::io::File * cacheDir; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_FileCacheImageOutputStream__ diff --git a/libjava/javax/imageio/stream/FileImageInputStream.h b/libjava/javax/imageio/stream/FileImageInputStream.h new file mode 100644 index 00000000000..801e2cb1d48 --- /dev/null +++ b/libjava/javax/imageio/stream/FileImageInputStream.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_FileImageInputStream__ +#define __javax_imageio_stream_FileImageInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class FileImageInputStream; + } + } + } +} + +class javax::imageio::stream::FileImageInputStream : public ::javax::imageio::stream::ImageInputStreamImpl +{ + +public: + FileImageInputStream(::java::io::File *); + FileImageInputStream(::java::io::RandomAccessFile *); + virtual void close(); + virtual jlong length(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void seek(jlong); +private: + ::java::io::RandomAccessFile * __attribute__((aligned(__alignof__( ::javax::imageio::stream::ImageInputStreamImpl)))) file; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_FileImageInputStream__ diff --git a/libjava/javax/imageio/stream/FileImageOutputStream.h b/libjava/javax/imageio/stream/FileImageOutputStream.h new file mode 100644 index 00000000000..8075f45772b --- /dev/null +++ b/libjava/javax/imageio/stream/FileImageOutputStream.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_FileImageOutputStream__ +#define __javax_imageio_stream_FileImageOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class FileImageOutputStream; + } + } + } +} + +class javax::imageio::stream::FileImageOutputStream : public ::javax::imageio::stream::ImageOutputStreamImpl +{ + +public: + FileImageOutputStream(::java::io::File *); + FileImageOutputStream(::java::io::RandomAccessFile *); + virtual void close(); + virtual jlong length(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void seek(jlong); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(jint); +private: + ::java::io::RandomAccessFile * __attribute__((aligned(__alignof__( ::javax::imageio::stream::ImageOutputStreamImpl)))) file; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_FileImageOutputStream__ diff --git a/libjava/javax/imageio/stream/IIOByteBuffer.h b/libjava/javax/imageio/stream/IIOByteBuffer.h new file mode 100644 index 00000000000..0e5e0c145ef --- /dev/null +++ b/libjava/javax/imageio/stream/IIOByteBuffer.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_IIOByteBuffer__ +#define __javax_imageio_stream_IIOByteBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class IIOByteBuffer; + } + } + } +} + +class javax::imageio::stream::IIOByteBuffer : public ::java::lang::Object +{ + +public: + IIOByteBuffer(JArray< jbyte > *, jint, jint); + virtual JArray< jbyte > * getData(); + virtual void setData(JArray< jbyte > *); + virtual jint getOffset(); + virtual void setOffset(jint); + virtual jint getLength(); + virtual void setLength(jint); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data; + jint offset; + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_IIOByteBuffer__ diff --git a/libjava/javax/imageio/stream/ImageInputStream.h b/libjava/javax/imageio/stream/ImageInputStream.h new file mode 100644 index 00000000000..99c6304c455 --- /dev/null +++ b/libjava/javax/imageio/stream/ImageInputStream.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_ImageInputStream__ +#define __javax_imageio_stream_ImageInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteOrder; + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class IIOByteBuffer; + class ImageInputStream; + } + } + } +} + +class javax::imageio::stream::ImageInputStream : public ::java::lang::Object +{ + +public: + virtual void setByteOrder(::java::nio::ByteOrder *) = 0; + virtual ::java::nio::ByteOrder * getByteOrder() = 0; + virtual jint read() = 0; + virtual jint read(JArray< jbyte > *) = 0; + virtual jint read(JArray< jbyte > *, jint, jint) = 0; + virtual void readBytes(::javax::imageio::stream::IIOByteBuffer *, jint) = 0; + virtual jboolean readBoolean() = 0; + virtual jbyte readByte() = 0; + virtual jint readUnsignedByte() = 0; + virtual jshort readShort() = 0; + virtual jint readUnsignedShort() = 0; + virtual jchar readChar() = 0; + virtual jint readInt() = 0; + virtual jlong readUnsignedInt() = 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 > *, jint, jint) = 0; + virtual void readFully(JArray< jbyte > *) = 0; + virtual void readFully(JArray< jshort > *, jint, jint) = 0; + virtual void readFully(JArray< jchar > *, jint, jint) = 0; + virtual void readFully(JArray< jint > *, jint, jint) = 0; + virtual void readFully(JArray< jlong > *, jint, jint) = 0; + virtual void readFully(JArray< jfloat > *, jint, jint) = 0; + virtual void readFully(JArray< jdouble > *, jint, jint) = 0; + virtual jlong getStreamPosition() = 0; + virtual jint getBitOffset() = 0; + virtual void setBitOffset(jint) = 0; + virtual jint readBit() = 0; + virtual jlong readBits(jint) = 0; + virtual jlong length() = 0; + virtual jint skipBytes(jint) = 0; + virtual jlong skipBytes(jlong) = 0; + virtual void seek(jlong) = 0; + virtual void mark() = 0; + virtual void reset() = 0; + virtual void flushBefore(jlong) = 0; + virtual void flush() = 0; + virtual jlong getFlushedPosition() = 0; + virtual jboolean isCached() = 0; + virtual jboolean isCachedMemory() = 0; + virtual jboolean isCachedFile() = 0; + virtual void close() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_stream_ImageInputStream__ diff --git a/libjava/javax/imageio/stream/ImageInputStreamImpl.h b/libjava/javax/imageio/stream/ImageInputStreamImpl.h new file mode 100644 index 00000000000..42b2f12042a --- /dev/null +++ b/libjava/javax/imageio/stream/ImageInputStreamImpl.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_ImageInputStreamImpl__ +#define __javax_imageio_stream_ImageInputStreamImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteOrder; + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class IIOByteBuffer; + class ImageInputStreamImpl; + } + } + } +} + +class javax::imageio::stream::ImageInputStreamImpl : public ::java::lang::Object +{ + +public: + ImageInputStreamImpl(); +public: // actually protected + virtual void checkClosed(); +public: + virtual void close(); +public: // actually protected + virtual void finalize(); +public: + virtual void flush(); + virtual void flushBefore(jlong); + virtual jint getBitOffset(); + virtual ::java::nio::ByteOrder * getByteOrder(); + virtual jlong getFlushedPosition(); + virtual jlong getStreamPosition(); + virtual jboolean isCached(); + virtual jboolean isCachedFile(); + virtual jboolean isCachedMemory(); + virtual jlong length(); + virtual void mark(); + virtual jint read() = 0; + virtual jint read(JArray< jbyte > *, jint, jint) = 0; + virtual jint read(JArray< jbyte > *); + virtual jint readBit(); + virtual jlong readBits(jint); + virtual jboolean readBoolean(); + virtual jbyte readByte(); + virtual void readBytes(::javax::imageio::stream::IIOByteBuffer *, jint); + virtual jchar readChar(); + virtual jdouble readDouble(); + virtual jfloat readFloat(); + virtual void readFully(JArray< jbyte > *); + virtual void readFully(JArray< jbyte > *, jint, jint); + virtual void readFully(JArray< jchar > *, jint, jint); + virtual void readFully(JArray< jdouble > *, jint, jint); + virtual void readFully(JArray< jfloat > *, jint, jint); + virtual void readFully(JArray< jint > *, jint, jint); + virtual void readFully(JArray< jlong > *, jint, jint); + virtual void readFully(JArray< jshort > *, jint, jint); + virtual jint readInt(); + virtual ::java::lang::String * readLine(); + virtual jlong readLong(); + virtual jshort readShort(); + virtual jint readUnsignedByte(); + virtual jlong readUnsignedInt(); + virtual jint readUnsignedShort(); + virtual ::java::lang::String * readUTF(); + virtual void reset(); + virtual void seek(jlong); + virtual void setBitOffset(jint); + virtual void setByteOrder(::java::nio::ByteOrder *); + virtual jint skipBytes(jint); + virtual jlong skipBytes(jlong); +private: + void readFullyPrivate(JArray< jbyte > *, jint, jint); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) closed; + ::java::util::Stack * markStack; +public: // actually package-private + JArray< jbyte > * buffer; +public: // actually protected + jint bitOffset; + ::java::nio::ByteOrder * byteOrder; + jlong flushedPos; + jlong streamPos; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_ImageInputStreamImpl__ diff --git a/libjava/javax/imageio/stream/ImageOutputStream.h b/libjava/javax/imageio/stream/ImageOutputStream.h new file mode 100644 index 00000000000..7557e0a670b --- /dev/null +++ b/libjava/javax/imageio/stream/ImageOutputStream.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_ImageOutputStream__ +#define __javax_imageio_stream_ImageOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteOrder; + } + } + namespace javax + { + namespace imageio + { + namespace stream + { + class IIOByteBuffer; + class ImageOutputStream; + } + } + } +} + +class javax::imageio::stream::ImageOutputStream : public ::java::lang::Object +{ + +public: + virtual void flushBefore(jlong) = 0; + virtual void write(JArray< jbyte > *) = 0; + virtual void write(JArray< jbyte > *, jint, jint) = 0; + virtual void write(jint) = 0; + virtual void writeBit(jint) = 0; + virtual void writeBits(jlong, jint) = 0; + virtual void writeBoolean(jboolean) = 0; + virtual void writeByte(jint) = 0; + virtual void writeBytes(::java::lang::String *) = 0; + virtual void writeChar(jint) = 0; + virtual void writeChars(JArray< jchar > *, jint, jint) = 0; + virtual void writeChars(::java::lang::String *) = 0; + virtual void writeDouble(jdouble) = 0; + virtual void writeDoubles(JArray< jdouble > *, jint, jint) = 0; + virtual void writeFloat(jfloat) = 0; + virtual void writeFloats(JArray< jfloat > *, jint, jint) = 0; + virtual void writeInt(jint) = 0; + virtual void writeInts(JArray< jint > *, jint, jint) = 0; + virtual void writeLong(jlong) = 0; + virtual void writeLongs(JArray< jlong > *, jint, jint) = 0; + virtual void writeShort(jint) = 0; + virtual void writeShorts(JArray< jshort > *, jint, jint) = 0; + virtual void writeUTF(::java::lang::String *) = 0; + virtual void setByteOrder(::java::nio::ByteOrder *) = 0; + virtual ::java::nio::ByteOrder * getByteOrder() = 0; + virtual jint read() = 0; + virtual jint read(JArray< jbyte > *) = 0; + virtual jint read(JArray< jbyte > *, jint, jint) = 0; + virtual void readBytes(::javax::imageio::stream::IIOByteBuffer *, jint) = 0; + virtual jboolean readBoolean() = 0; + virtual jbyte readByte() = 0; + virtual jint readUnsignedByte() = 0; + virtual jshort readShort() = 0; + virtual jint readUnsignedShort() = 0; + virtual jchar readChar() = 0; + virtual jint readInt() = 0; + virtual jlong readUnsignedInt() = 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 > *, jint, jint) = 0; + virtual void readFully(JArray< jbyte > *) = 0; + virtual void readFully(JArray< jshort > *, jint, jint) = 0; + virtual void readFully(JArray< jchar > *, jint, jint) = 0; + virtual void readFully(JArray< jint > *, jint, jint) = 0; + virtual void readFully(JArray< jlong > *, jint, jint) = 0; + virtual void readFully(JArray< jfloat > *, jint, jint) = 0; + virtual void readFully(JArray< jdouble > *, jint, jint) = 0; + virtual jlong getStreamPosition() = 0; + virtual jint getBitOffset() = 0; + virtual void setBitOffset(jint) = 0; + virtual jint readBit() = 0; + virtual jlong readBits(jint) = 0; + virtual jlong length() = 0; + virtual jint skipBytes(jint) = 0; + virtual jlong skipBytes(jlong) = 0; + virtual void seek(jlong) = 0; + virtual void mark() = 0; + virtual void reset() = 0; + virtual void flush() = 0; + virtual jlong getFlushedPosition() = 0; + virtual jboolean isCached() = 0; + virtual jboolean isCachedMemory() = 0; + virtual jboolean isCachedFile() = 0; + virtual void close() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_imageio_stream_ImageOutputStream__ diff --git a/libjava/javax/imageio/stream/ImageOutputStreamImpl.h b/libjava/javax/imageio/stream/ImageOutputStreamImpl.h new file mode 100644 index 00000000000..a45df4698a3 --- /dev/null +++ b/libjava/javax/imageio/stream/ImageOutputStreamImpl.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_ImageOutputStreamImpl__ +#define __javax_imageio_stream_ImageOutputStreamImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class ImageOutputStreamImpl; + } + } + } +} + +class javax::imageio::stream::ImageOutputStreamImpl : public ::javax::imageio::stream::ImageInputStreamImpl +{ + +public: + ImageOutputStreamImpl(); +public: // actually protected + virtual void flushBits(); +public: + virtual void write(JArray< jbyte > *); + virtual void write(JArray< jbyte > *, jint, jint) = 0; + virtual void write(jint) = 0; + virtual void writeBit(jint); + virtual void writeBits(jlong, jint); + virtual void writeBoolean(jboolean); + virtual void writeByte(jint); + virtual void writeBytes(::java::lang::String *); + virtual void writeChar(jint); + virtual void writeChars(JArray< jchar > *, jint, jint); + virtual void writeChars(::java::lang::String *); + virtual void writeDouble(jdouble); + virtual void writeDoubles(JArray< jdouble > *, jint, jint); + virtual void writeFloat(jfloat); + virtual void writeFloats(JArray< jfloat > *, jint, jint); + virtual void writeInt(jint); + virtual void writeInts(JArray< jint > *, jint, jint); + virtual void writeLong(jlong); + virtual void writeLongs(JArray< jlong > *, jint, jint); + virtual void writeShort(jint); + virtual void writeShorts(JArray< jshort > *, jint, jint); + virtual void writeUTF(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_ImageOutputStreamImpl__ diff --git a/libjava/javax/imageio/stream/MemoryCacheImageInputStream.h b/libjava/javax/imageio/stream/MemoryCacheImageInputStream.h new file mode 100644 index 00000000000..c83efe11204 --- /dev/null +++ b/libjava/javax/imageio/stream/MemoryCacheImageInputStream.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_MemoryCacheImageInputStream__ +#define __javax_imageio_stream_MemoryCacheImageInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class MemoryCacheImageInputStream; + } + } + } +} + +class javax::imageio::stream::MemoryCacheImageInputStream : public ::javax::imageio::stream::ImageInputStreamImpl +{ + +public: + MemoryCacheImageInputStream(::java::io::InputStream *); + virtual void close(); + virtual void flushBefore(jlong); + virtual jboolean isCached(); + virtual jboolean isCachedFile(); + virtual jboolean isCachedMemory(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void seek(jlong); +private: + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::javax::imageio::stream::ImageInputStreamImpl)))) stream; + ::java::io::BufferedInputStream * buffer; + jint READLIMIT; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_MemoryCacheImageInputStream__ diff --git a/libjava/javax/imageio/stream/MemoryCacheImageOutputStream.h b/libjava/javax/imageio/stream/MemoryCacheImageOutputStream.h new file mode 100644 index 00000000000..a7643c1ea11 --- /dev/null +++ b/libjava/javax/imageio/stream/MemoryCacheImageOutputStream.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_imageio_stream_MemoryCacheImageOutputStream__ +#define __javax_imageio_stream_MemoryCacheImageOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace imageio + { + namespace stream + { + class MemoryCacheImageOutputStream; + } + } + } +} + +class javax::imageio::stream::MemoryCacheImageOutputStream : public ::javax::imageio::stream::ImageOutputStreamImpl +{ + +public: + MemoryCacheImageOutputStream(::java::io::OutputStream *); + virtual void close(); + virtual void flushBefore(jlong); + virtual jboolean isCached(); + virtual jboolean isCachedFile(); + virtual jboolean isCachedMemory(); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void write(JArray< jbyte > *, jint, jint); + virtual void write(jint); +private: + ::java::io::OutputStream * __attribute__((aligned(__alignof__( ::javax::imageio::stream::ImageOutputStreamImpl)))) stream; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_imageio_stream_MemoryCacheImageOutputStream__ diff --git a/libjava/javax/management/Attribute.h b/libjava/javax/management/Attribute.h new file mode 100644 index 00000000000..304b9da4a86 --- /dev/null +++ b/libjava/javax/management/Attribute.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_Attribute__ +#define __javax_management_Attribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class Attribute; + } + } +} + +class javax::management::Attribute : public ::java::lang::Object +{ + +public: + Attribute(::java::lang::String *, ::java::lang::Object *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getName(); + virtual ::java::lang::Object * getValue(); + virtual jint hashCode(); +private: + static const jlong serialVersionUID = 2484220110589082382LL; +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) m_name; + ::java::lang::Object * m_value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_Attribute__ diff --git a/libjava/javax/management/AttributeList.h b/libjava/javax/management/AttributeList.h new file mode 100644 index 00000000000..a74ff2fb125 --- /dev/null +++ b/libjava/javax/management/AttributeList.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_AttributeList__ +#define __javax_management_AttributeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class Attribute; + class AttributeList; + } + } +} + +class javax::management::AttributeList : public ::java::util::ArrayList +{ + +public: + AttributeList(); + AttributeList(::javax::management::AttributeList *); + AttributeList(jint); + virtual void add(::javax::management::Attribute *); + virtual void add(jint, ::javax::management::Attribute *); + virtual jboolean addAll(::javax::management::AttributeList *); + virtual jboolean addAll(jint, ::javax::management::AttributeList *); + virtual void set(jint, ::javax::management::Attribute *); +private: + static const jlong serialVersionUID = -4077085769279709076LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_AttributeList__ diff --git a/libjava/javax/management/AttributeNotFoundException.h b/libjava/javax/management/AttributeNotFoundException.h new file mode 100644 index 00000000000..4defc660b61 --- /dev/null +++ b/libjava/javax/management/AttributeNotFoundException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_AttributeNotFoundException__ +#define __javax_management_AttributeNotFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class AttributeNotFoundException; + } + } +} + +class javax::management::AttributeNotFoundException : public ::javax::management::OperationsException +{ + +public: + AttributeNotFoundException(); + AttributeNotFoundException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_management_AttributeNotFoundException__ diff --git a/libjava/javax/management/BadAttributeValueExpException.h b/libjava/javax/management/BadAttributeValueExpException.h new file mode 100644 index 00000000000..5a05f6a6bb4 --- /dev/null +++ b/libjava/javax/management/BadAttributeValueExpException.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_BadAttributeValueExpException__ +#define __javax_management_BadAttributeValueExpException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class BadAttributeValueExpException; + } + } +} + +class javax::management::BadAttributeValueExpException : public ::java::lang::Exception +{ + +public: + BadAttributeValueExpException(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -3105272988410493376LL; + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) val; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_BadAttributeValueExpException__ diff --git a/libjava/javax/management/BadBinaryOpValueExpException.h b/libjava/javax/management/BadBinaryOpValueExpException.h new file mode 100644 index 00000000000..21e866be8bc --- /dev/null +++ b/libjava/javax/management/BadBinaryOpValueExpException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_BadBinaryOpValueExpException__ +#define __javax_management_BadBinaryOpValueExpException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class BadBinaryOpValueExpException; + class ValueExp; + } + } +} + +class javax::management::BadBinaryOpValueExpException : public ::java::lang::Exception +{ + +public: + BadBinaryOpValueExpException(::javax::management::ValueExp *); + virtual ::javax::management::ValueExp * getExp(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 5068475589449021227LL; + ::javax::management::ValueExp * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) exp; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_BadBinaryOpValueExpException__ diff --git a/libjava/javax/management/BadStringOperationException.h b/libjava/javax/management/BadStringOperationException.h new file mode 100644 index 00000000000..60c923cf71d --- /dev/null +++ b/libjava/javax/management/BadStringOperationException.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_BadStringOperationException__ +#define __javax_management_BadStringOperationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class BadStringOperationException; + } + } +} + +class javax::management::BadStringOperationException : public ::java::lang::Exception +{ + +public: + BadStringOperationException(::java::lang::String *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 7802201238441662100LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) op; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_BadStringOperationException__ diff --git a/libjava/javax/management/DynamicMBean.h b/libjava/javax/management/DynamicMBean.h new file mode 100644 index 00000000000..59acee1c930 --- /dev/null +++ b/libjava/javax/management/DynamicMBean.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_DynamicMBean__ +#define __javax_management_DynamicMBean__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class Attribute; + class AttributeList; + class DynamicMBean; + class MBeanInfo; + } + } +} + +class javax::management::DynamicMBean : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getAttribute(::java::lang::String *) = 0; + virtual ::javax::management::AttributeList * getAttributes(JArray< ::java::lang::String * > *) = 0; + virtual ::javax::management::MBeanInfo * getMBeanInfo() = 0; + virtual ::java::lang::Object * invoke(::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual void setAttribute(::javax::management::Attribute *) = 0; + virtual ::javax::management::AttributeList * setAttributes(::javax::management::AttributeList *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_DynamicMBean__ diff --git a/libjava/javax/management/InstanceAlreadyExistsException.h b/libjava/javax/management/InstanceAlreadyExistsException.h new file mode 100644 index 00000000000..081b838e7e3 --- /dev/null +++ b/libjava/javax/management/InstanceAlreadyExistsException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_InstanceAlreadyExistsException__ +#define __javax_management_InstanceAlreadyExistsException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class InstanceAlreadyExistsException; + } + } +} + +class javax::management::InstanceAlreadyExistsException : public ::javax::management::OperationsException +{ + +public: + InstanceAlreadyExistsException(); + InstanceAlreadyExistsException(::java::lang::String *); +private: + static const jlong serialVersionUID = 8893743928912733931LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_InstanceAlreadyExistsException__ diff --git a/libjava/javax/management/InstanceNotFoundException.h b/libjava/javax/management/InstanceNotFoundException.h new file mode 100644 index 00000000000..b1088deaa7f --- /dev/null +++ b/libjava/javax/management/InstanceNotFoundException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_InstanceNotFoundException__ +#define __javax_management_InstanceNotFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class InstanceNotFoundException; + } + } +} + +class javax::management::InstanceNotFoundException : public ::javax::management::OperationsException +{ + +public: + InstanceNotFoundException(); + InstanceNotFoundException(::java::lang::String *); +private: + static const jlong serialVersionUID = -882579438394773049LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_InstanceNotFoundException__ diff --git a/libjava/javax/management/IntrospectionException.h b/libjava/javax/management/IntrospectionException.h new file mode 100644 index 00000000000..55621f3c72a --- /dev/null +++ b/libjava/javax/management/IntrospectionException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_IntrospectionException__ +#define __javax_management_IntrospectionException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class IntrospectionException; + } + } +} + +class javax::management::IntrospectionException : public ::javax::management::OperationsException +{ + +public: + IntrospectionException(); + IntrospectionException(::java::lang::String *); +private: + static const jlong serialVersionUID = 1054516935875481725LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_IntrospectionException__ diff --git a/libjava/javax/management/InvalidApplicationException.h b/libjava/javax/management/InvalidApplicationException.h new file mode 100644 index 00000000000..16d11c5bd03 --- /dev/null +++ b/libjava/javax/management/InvalidApplicationException.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_InvalidApplicationException__ +#define __javax_management_InvalidApplicationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class InvalidApplicationException; + } + } +} + +class javax::management::InvalidApplicationException : public ::java::lang::Exception +{ + +public: + InvalidApplicationException(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -3048022274675537269LL; + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) val; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_InvalidApplicationException__ diff --git a/libjava/javax/management/InvalidAttributeValueException.h b/libjava/javax/management/InvalidAttributeValueException.h new file mode 100644 index 00000000000..3439bde3bf2 --- /dev/null +++ b/libjava/javax/management/InvalidAttributeValueException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_InvalidAttributeValueException__ +#define __javax_management_InvalidAttributeValueException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class InvalidAttributeValueException; + } + } +} + +class javax::management::InvalidAttributeValueException : public ::javax::management::OperationsException +{ + +public: + InvalidAttributeValueException(); + InvalidAttributeValueException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_management_InvalidAttributeValueException__ diff --git a/libjava/javax/management/JMException.h b/libjava/javax/management/JMException.h new file mode 100644 index 00000000000..906840006d0 --- /dev/null +++ b/libjava/javax/management/JMException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_JMException__ +#define __javax_management_JMException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class JMException; + } + } +} + +class javax::management::JMException : public ::java::lang::Exception +{ + +public: + JMException(); + JMException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_management_JMException__ diff --git a/libjava/javax/management/JMRuntimeException.h b/libjava/javax/management/JMRuntimeException.h new file mode 100644 index 00000000000..ea6dd7f2258 --- /dev/null +++ b/libjava/javax/management/JMRuntimeException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_JMRuntimeException__ +#define __javax_management_JMRuntimeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class JMRuntimeException; + } + } +} + +class javax::management::JMRuntimeException : public ::java::lang::RuntimeException +{ + +public: + JMRuntimeException(); + JMRuntimeException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_management_JMRuntimeException__ diff --git a/libjava/javax/management/ListenerNotFoundException.h b/libjava/javax/management/ListenerNotFoundException.h new file mode 100644 index 00000000000..ad60d6211f0 --- /dev/null +++ b/libjava/javax/management/ListenerNotFoundException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_ListenerNotFoundException__ +#define __javax_management_ListenerNotFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class ListenerNotFoundException; + } + } +} + +class javax::management::ListenerNotFoundException : public ::javax::management::OperationsException +{ + +public: + ListenerNotFoundException(); + ListenerNotFoundException(::java::lang::String *); +private: + static const jlong serialVersionUID = -7242605822448519061LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_ListenerNotFoundException__ diff --git a/libjava/javax/management/MBeanAttributeInfo.h b/libjava/javax/management/MBeanAttributeInfo.h new file mode 100644 index 00000000000..ab088c63578 --- /dev/null +++ b/libjava/javax/management/MBeanAttributeInfo.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanAttributeInfo__ +#define __javax_management_MBeanAttributeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanAttributeInfo; + } + } +} + +class javax::management::MBeanAttributeInfo : public ::javax::management::MBeanFeatureInfo +{ + +public: + MBeanAttributeInfo(::java::lang::String *, ::java::lang::String *, ::java::lang::reflect::Method *, ::java::lang::reflect::Method *); + MBeanAttributeInfo(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean, jboolean, jboolean); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getType(); + virtual jint hashCode(); + virtual jboolean isIs(); + virtual jboolean isReadable(); + virtual jboolean isWritable(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::management::MBeanFeatureInfo)))) attributeType; + jboolean isWrite; + jboolean isRead; + jboolean is; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanAttributeInfo__ diff --git a/libjava/javax/management/MBeanConstructorInfo.h b/libjava/javax/management/MBeanConstructorInfo.h new file mode 100644 index 00000000000..992ff8d595c --- /dev/null +++ b/libjava/javax/management/MBeanConstructorInfo.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanConstructorInfo__ +#define __javax_management_MBeanConstructorInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanConstructorInfo; + class MBeanParameterInfo; + } + } +} + +class javax::management::MBeanConstructorInfo : public ::javax::management::MBeanFeatureInfo +{ + +public: + MBeanConstructorInfo(::java::lang::String *, ::java::lang::reflect::Constructor *); + MBeanConstructorInfo(::java::lang::String *, ::java::lang::String *, JArray< ::javax::management::MBeanParameterInfo * > *); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual JArray< ::javax::management::MBeanParameterInfo * > * getSignature(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 4433990064191844427LL; + JArray< ::javax::management::MBeanParameterInfo * > * __attribute__((aligned(__alignof__( ::javax::management::MBeanFeatureInfo)))) signature; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanConstructorInfo__ diff --git a/libjava/javax/management/MBeanException.h b/libjava/javax/management/MBeanException.h new file mode 100644 index 00000000000..17ff2a7addd --- /dev/null +++ b/libjava/javax/management/MBeanException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanException__ +#define __javax_management_MBeanException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanException; + } + } +} + +class javax::management::MBeanException : public ::javax::management::JMException +{ + +public: + MBeanException(::java::lang::Exception *); + MBeanException(::java::lang::Exception *, ::java::lang::String *); + virtual ::java::lang::Throwable * getCause(); + virtual ::java::lang::Exception * getTargetException(); +private: + static const jlong serialVersionUID = 4066342430588744142LL; + ::java::lang::Exception * __attribute__((aligned(__alignof__( ::javax::management::JMException)))) exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanException__ diff --git a/libjava/javax/management/MBeanFeatureInfo.h b/libjava/javax/management/MBeanFeatureInfo.h new file mode 100644 index 00000000000..60006427c2a --- /dev/null +++ b/libjava/javax/management/MBeanFeatureInfo.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanFeatureInfo__ +#define __javax_management_MBeanFeatureInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanFeatureInfo; + } + } +} + +class javax::management::MBeanFeatureInfo : public ::java::lang::Object +{ + +public: + MBeanFeatureInfo(::java::lang::String *, ::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getDescription(); + virtual ::java::lang::String * getName(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 3952882688968447265LL; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) description; + ::java::lang::String * name; +public: // actually package-private + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanFeatureInfo__ diff --git a/libjava/javax/management/MBeanInfo.h b/libjava/javax/management/MBeanInfo.h new file mode 100644 index 00000000000..cecc12f2889 --- /dev/null +++ b/libjava/javax/management/MBeanInfo.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanInfo__ +#define __javax_management_MBeanInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanAttributeInfo; + class MBeanConstructorInfo; + class MBeanInfo; + class MBeanNotificationInfo; + class MBeanOperationInfo; + } + } +} + +class javax::management::MBeanInfo : public ::java::lang::Object +{ + +public: + MBeanInfo(::java::lang::String *, ::java::lang::String *, JArray< ::javax::management::MBeanAttributeInfo * > *, JArray< ::javax::management::MBeanConstructorInfo * > *, JArray< ::javax::management::MBeanOperationInfo * > *, JArray< ::javax::management::MBeanNotificationInfo * > *); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual JArray< ::javax::management::MBeanAttributeInfo * > * getAttributes(); + virtual ::java::lang::String * getClassName(); + virtual JArray< ::javax::management::MBeanConstructorInfo * > * getConstructors(); + virtual ::java::lang::String * getDescription(); + virtual JArray< ::javax::management::MBeanNotificationInfo * > * getNotifications(); + virtual JArray< ::javax::management::MBeanOperationInfo * > * getOperations(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -6451021435135161911LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) description; + ::java::lang::String * className; + JArray< ::javax::management::MBeanAttributeInfo * > * attributes; + JArray< ::javax::management::MBeanOperationInfo * > * operations; + JArray< ::javax::management::MBeanConstructorInfo * > * constructors; + JArray< ::javax::management::MBeanNotificationInfo * > * notifications; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanInfo__ diff --git a/libjava/javax/management/MBeanNotificationInfo.h b/libjava/javax/management/MBeanNotificationInfo.h new file mode 100644 index 00000000000..25e99c3c1ed --- /dev/null +++ b/libjava/javax/management/MBeanNotificationInfo.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanNotificationInfo__ +#define __javax_management_MBeanNotificationInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanNotificationInfo; + } + } +} + +class javax::management::MBeanNotificationInfo : public ::javax::management::MBeanFeatureInfo +{ + +public: + MBeanNotificationInfo(JArray< ::java::lang::String * > *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual JArray< ::java::lang::String * > * getNotifTypes(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -3888371564530107064LL; + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::javax::management::MBeanFeatureInfo)))) types; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanNotificationInfo__ diff --git a/libjava/javax/management/MBeanOperationInfo.h b/libjava/javax/management/MBeanOperationInfo.h new file mode 100644 index 00000000000..97d0cd5c53f --- /dev/null +++ b/libjava/javax/management/MBeanOperationInfo.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanOperationInfo__ +#define __javax_management_MBeanOperationInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanOperationInfo; + class MBeanParameterInfo; + } + } +} + +class javax::management::MBeanOperationInfo : public ::javax::management::MBeanFeatureInfo +{ + +public: + MBeanOperationInfo(::java::lang::String *, ::java::lang::reflect::Method *); + MBeanOperationInfo(::java::lang::String *, ::java::lang::String *, JArray< ::javax::management::MBeanParameterInfo * > *, ::java::lang::String *, jint); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual jint getImpact(); + virtual ::java::lang::String * getReturnType(); + virtual JArray< ::javax::management::MBeanParameterInfo * > * getSignature(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -6178860474881375330LL; +public: + static const jint INFO = 0; + static const jint ACTION = 1; + static const jint ACTION_INFO = 2; + static const jint UNKNOWN = 3; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::management::MBeanFeatureInfo)))) type; + JArray< ::javax::management::MBeanParameterInfo * > * signature; + jint impact; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanOperationInfo__ diff --git a/libjava/javax/management/MBeanParameterInfo.h b/libjava/javax/management/MBeanParameterInfo.h new file mode 100644 index 00000000000..3186814594a --- /dev/null +++ b/libjava/javax/management/MBeanParameterInfo.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanParameterInfo__ +#define __javax_management_MBeanParameterInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanParameterInfo; + } + } +} + +class javax::management::MBeanParameterInfo : public ::javax::management::MBeanFeatureInfo +{ + +public: + MBeanParameterInfo(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getType(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 7432616882776782338LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::management::MBeanFeatureInfo)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanParameterInfo__ diff --git a/libjava/javax/management/MBeanPermission$NameHolder.h b/libjava/javax/management/MBeanPermission$NameHolder.h new file mode 100644 index 00000000000..810a8ce5441 --- /dev/null +++ b/libjava/javax/management/MBeanPermission$NameHolder.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanPermission$NameHolder__ +#define __javax_management_MBeanPermission$NameHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanPermission; + class MBeanPermission$NameHolder; + class ObjectName; + } + } +} + +class javax::management::MBeanPermission$NameHolder : public ::java::lang::Object +{ + +public: + MBeanPermission$NameHolder(::javax::management::MBeanPermission *, ::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getClassName(); + virtual ::java::lang::String * getMember(); + virtual ::javax::management::ObjectName * getObjectName(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) className; + ::java::lang::String * member; + ::javax::management::ObjectName * objectName; +public: // actually package-private + ::javax::management::MBeanPermission * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanPermission$NameHolder__ diff --git a/libjava/javax/management/MBeanPermission.h b/libjava/javax/management/MBeanPermission.h new file mode 100644 index 00000000000..95c5ac6af34 --- /dev/null +++ b/libjava/javax/management/MBeanPermission.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanPermission__ +#define __javax_management_MBeanPermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + } + } + namespace javax + { + namespace management + { + class MBeanPermission; + class ObjectName; + } + } +} + +class javax::management::MBeanPermission : public ::java::security::Permission +{ + +public: + MBeanPermission(::java::lang::String *, ::java::lang::String *); + MBeanPermission(::java::lang::String *, ::java::lang::String *, ::javax::management::ObjectName *, ::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getActions(); + virtual jint hashCode(); + virtual jboolean implies(::java::security::Permission *); +public: // actually package-private + virtual ::java::util::Set * getActionSet(); +private: + void updateActionSet(); + void readObject(::java::io::ObjectInputStream *); + void checkActions(); + static const jlong serialVersionUID = -2416928705275160661LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::security::Permission)))) actions; + ::java::util::Set * actionSet; + static ::java::util::Set * validSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanPermission__ diff --git a/libjava/javax/management/MBeanRegistration.h b/libjava/javax/management/MBeanRegistration.h new file mode 100644 index 00000000000..b1faba2fefb --- /dev/null +++ b/libjava/javax/management/MBeanRegistration.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanRegistration__ +#define __javax_management_MBeanRegistration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanRegistration; + class MBeanServer; + class ObjectName; + } + } +} + +class javax::management::MBeanRegistration : public ::java::lang::Object +{ + +public: + virtual void postDeregister() = 0; + virtual void postRegister(::java::lang::Boolean *) = 0; + virtual void preDeregister() = 0; + virtual ::javax::management::ObjectName * preRegister(::javax::management::MBeanServer *, ::javax::management::ObjectName *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_MBeanRegistration__ diff --git a/libjava/javax/management/MBeanRegistrationException.h b/libjava/javax/management/MBeanRegistrationException.h new file mode 100644 index 00000000000..4cd0266e25e --- /dev/null +++ b/libjava/javax/management/MBeanRegistrationException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanRegistrationException__ +#define __javax_management_MBeanRegistrationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanRegistrationException; + } + } +} + +class javax::management::MBeanRegistrationException : public ::javax::management::MBeanException +{ + +public: + MBeanRegistrationException(::java::lang::Exception *); + MBeanRegistrationException(::java::lang::Exception *, ::java::lang::String *); +private: + static const jlong serialVersionUID = 4482382455277067805LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanRegistrationException__ diff --git a/libjava/javax/management/MBeanServer.h b/libjava/javax/management/MBeanServer.h new file mode 100644 index 00000000000..9971d5c5927 --- /dev/null +++ b/libjava/javax/management/MBeanServer.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServer__ +#define __javax_management_MBeanServer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class Attribute; + class AttributeList; + class MBeanInfo; + class MBeanServer; + class NotificationFilter; + class NotificationListener; + class ObjectInstance; + class ObjectName; + class QueryExp; + namespace loading + { + class ClassLoaderRepository; + } + } + } +} + +class javax::management::MBeanServer : public ::java::lang::Object +{ + +public: + virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual ::java::io::ObjectInputStream * deserialize(::javax::management::ObjectName *, JArray< jbyte > *) = 0; + virtual ::java::io::ObjectInputStream * deserialize(::java::lang::String *, JArray< jbyte > *) = 0; + virtual ::java::io::ObjectInputStream * deserialize(::java::lang::String *, ::javax::management::ObjectName *, JArray< jbyte > *) = 0; + virtual ::java::lang::Object * getAttribute(::javax::management::ObjectName *, ::java::lang::String *) = 0; + virtual ::javax::management::AttributeList * getAttributes(::javax::management::ObjectName *, JArray< ::java::lang::String * > *) = 0; + virtual ::java::lang::ClassLoader * getClassLoader(::javax::management::ObjectName *) = 0; + virtual ::java::lang::ClassLoader * getClassLoaderFor(::javax::management::ObjectName *) = 0; + virtual ::javax::management::loading::ClassLoaderRepository * getClassLoaderRepository() = 0; + virtual ::java::lang::String * getDefaultDomain() = 0; + virtual JArray< ::java::lang::String * > * getDomains() = 0; + virtual ::java::lang::Integer * getMBeanCount() = 0; + virtual ::javax::management::MBeanInfo * getMBeanInfo(::javax::management::ObjectName *) = 0; + virtual ::javax::management::ObjectInstance * getObjectInstance(::javax::management::ObjectName *) = 0; + virtual ::java::lang::Object * instantiate(::java::lang::String *) = 0; + virtual ::java::lang::Object * instantiate(::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual ::java::lang::Object * instantiate(::java::lang::String *, ::javax::management::ObjectName *) = 0; + virtual ::java::lang::Object * instantiate(::java::lang::String *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual ::java::lang::Object * invoke(::javax::management::ObjectName *, ::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual jboolean isInstanceOf(::javax::management::ObjectName *, ::java::lang::String *) = 0; + virtual jboolean isRegistered(::javax::management::ObjectName *) = 0; + virtual ::java::util::Set * queryMBeans(::javax::management::ObjectName *, ::javax::management::QueryExp *) = 0; + virtual ::java::util::Set * queryNames(::javax::management::ObjectName *, ::javax::management::QueryExp *) = 0; + virtual ::javax::management::ObjectInstance * registerMBean(::java::lang::Object *, ::javax::management::ObjectName *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual void setAttribute(::javax::management::ObjectName *, ::javax::management::Attribute *) = 0; + virtual ::javax::management::AttributeList * setAttributes(::javax::management::ObjectName *, ::javax::management::AttributeList *) = 0; + virtual void unregisterMBean(::javax::management::ObjectName *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_MBeanServer__ diff --git a/libjava/javax/management/MBeanServerBuilder.h b/libjava/javax/management/MBeanServerBuilder.h new file mode 100644 index 00000000000..c0dc95dd46f --- /dev/null +++ b/libjava/javax/management/MBeanServerBuilder.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerBuilder__ +#define __javax_management_MBeanServerBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServer; + class MBeanServerBuilder; + class MBeanServerDelegate; + } + } +} + +class javax::management::MBeanServerBuilder : public ::java::lang::Object +{ + +public: + MBeanServerBuilder(); + virtual ::javax::management::MBeanServer * newMBeanServer(::java::lang::String *, ::javax::management::MBeanServer *, ::javax::management::MBeanServerDelegate *); + virtual ::javax::management::MBeanServerDelegate * newMBeanServerDelegate(); + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanServerBuilder__ diff --git a/libjava/javax/management/MBeanServerConnection.h b/libjava/javax/management/MBeanServerConnection.h new file mode 100644 index 00000000000..10759ab89d7 --- /dev/null +++ b/libjava/javax/management/MBeanServerConnection.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerConnection__ +#define __javax_management_MBeanServerConnection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class Attribute; + class AttributeList; + class MBeanInfo; + class MBeanServerConnection; + class NotificationFilter; + class NotificationListener; + class ObjectInstance; + class ObjectName; + class QueryExp; + } + } +} + +class javax::management::MBeanServerConnection : public ::java::lang::Object +{ + +public: + virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual ::java::lang::Object * getAttribute(::javax::management::ObjectName *, ::java::lang::String *) = 0; + virtual ::javax::management::AttributeList * getAttributes(::javax::management::ObjectName *, JArray< ::java::lang::String * > *) = 0; + virtual ::java::lang::String * getDefaultDomain() = 0; + virtual JArray< ::java::lang::String * > * getDomains() = 0; + virtual ::java::lang::Integer * getMBeanCount() = 0; + virtual ::javax::management::MBeanInfo * getMBeanInfo(::javax::management::ObjectName *) = 0; + virtual ::javax::management::ObjectInstance * getObjectInstance(::javax::management::ObjectName *) = 0; + virtual ::java::lang::Object * invoke(::javax::management::ObjectName *, ::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *) = 0; + virtual jboolean isInstanceOf(::javax::management::ObjectName *, ::java::lang::String *) = 0; + virtual jboolean isRegistered(::javax::management::ObjectName *) = 0; + virtual ::java::util::Set * queryMBeans(::javax::management::ObjectName *, ::javax::management::QueryExp *) = 0; + virtual ::java::util::Set * queryNames(::javax::management::ObjectName *, ::javax::management::QueryExp *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual void setAttribute(::javax::management::ObjectName *, ::javax::management::Attribute *) = 0; + virtual ::javax::management::AttributeList * setAttributes(::javax::management::ObjectName *, ::javax::management::AttributeList *) = 0; + virtual void unregisterMBean(::javax::management::ObjectName *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_MBeanServerConnection__ diff --git a/libjava/javax/management/MBeanServerDelegate.h b/libjava/javax/management/MBeanServerDelegate.h new file mode 100644 index 00000000000..4c97feb4796 --- /dev/null +++ b/libjava/javax/management/MBeanServerDelegate.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerDelegate__ +#define __javax_management_MBeanServerDelegate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanNotificationInfo; + class MBeanServerDelegate; + class Notification; + class NotificationFilter; + class NotificationListener; + } + } +} + +class javax::management::MBeanServerDelegate : public ::java::lang::Object +{ + +public: + MBeanServerDelegate(); + virtual void addNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual ::java::lang::String * getImplementationName(); + virtual ::java::lang::String * getImplementationVendor(); + virtual ::java::lang::String * getImplementationVersion(); + virtual ::java::lang::String * getMBeanServerId(); + virtual JArray< ::javax::management::MBeanNotificationInfo * > * getNotificationInfo(); + virtual ::java::lang::String * getSpecificationName(); + virtual ::java::lang::String * getSpecificationVendor(); + virtual ::java::lang::String * getSpecificationVersion(); + virtual void removeNotificationListener(::javax::management::NotificationListener *); + virtual void removeNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *); + virtual void sendNotification(::javax::management::Notification *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::java::util::List * listeners; + jlong seqNo; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanServerDelegate__ diff --git a/libjava/javax/management/MBeanServerDelegateMBean.h b/libjava/javax/management/MBeanServerDelegateMBean.h new file mode 100644 index 00000000000..967dca872f4 --- /dev/null +++ b/libjava/javax/management/MBeanServerDelegateMBean.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerDelegateMBean__ +#define __javax_management_MBeanServerDelegateMBean__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServerDelegateMBean; + } + } +} + +class javax::management::MBeanServerDelegateMBean : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getImplementationName() = 0; + virtual ::java::lang::String * getImplementationVendor() = 0; + virtual ::java::lang::String * getImplementationVersion() = 0; + virtual ::java::lang::String * getMBeanServerId() = 0; + virtual ::java::lang::String * getSpecificationName() = 0; + virtual ::java::lang::String * getSpecificationVendor() = 0; + virtual ::java::lang::String * getSpecificationVersion() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_MBeanServerDelegateMBean__ diff --git a/libjava/javax/management/MBeanServerFactory.h b/libjava/javax/management/MBeanServerFactory.h new file mode 100644 index 00000000000..e9df36e5076 --- /dev/null +++ b/libjava/javax/management/MBeanServerFactory.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerFactory__ +#define __javax_management_MBeanServerFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServer; + class MBeanServerBuilder; + class MBeanServerFactory; + namespace loading + { + class ClassLoaderRepository; + } + } + } +} + +class javax::management::MBeanServerFactory : public ::java::lang::Object +{ + + MBeanServerFactory(); +public: + static ::javax::management::MBeanServer * createMBeanServer(); + static ::javax::management::MBeanServer * createMBeanServer(::java::lang::String *); + static ::java::util::ArrayList * findMBeanServer(::java::lang::String *); + static ::javax::management::loading::ClassLoaderRepository * getClassLoaderRepository(::javax::management::MBeanServer *); + static ::javax::management::MBeanServer * newMBeanServer(); + static ::javax::management::MBeanServer * newMBeanServer(::java::lang::String *); +private: + static ::javax::management::MBeanServer * createServer(::java::lang::String *); +public: + static void releaseMBeanServer(::javax::management::MBeanServer *); +private: + static ::javax::management::MBeanServerBuilder * builder; + static ::java::util::Map * servers; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanServerFactory__ diff --git a/libjava/javax/management/MBeanServerNotification.h b/libjava/javax/management/MBeanServerNotification.h new file mode 100644 index 00000000000..11a7203c5d5 --- /dev/null +++ b/libjava/javax/management/MBeanServerNotification.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerNotification__ +#define __javax_management_MBeanServerNotification__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServerNotification; + class ObjectName; + } + } +} + +class javax::management::MBeanServerNotification : public ::javax::management::Notification +{ + +public: + MBeanServerNotification(::java::lang::String *, ::java::lang::Object *, jlong, ::javax::management::ObjectName *); + virtual ::javax::management::ObjectName * getMBeanName(); +private: + static const jlong serialVersionUID = 2876477500475969677LL; +public: + static ::java::lang::String * REGISTRATION_NOTIFICATION; + static ::java::lang::String * UNREGISTRATION_NOTIFICATION; +private: + ::javax::management::ObjectName * __attribute__((aligned(__alignof__( ::javax::management::Notification)))) objectName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanServerNotification__ diff --git a/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h b/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h new file mode 100644 index 00000000000..1d072107c8d --- /dev/null +++ b/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration__ +#define __javax_management_MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServerPermission; + class MBeanServerPermission$MBeanServerPermissionCollection; + class MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration; + } + } +} + +class javax::management::MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration : public ::java::lang::Object +{ + +public: + MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration(::javax::management::MBeanServerPermission$MBeanServerPermissionCollection *, ::javax::management::MBeanServerPermission *); + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +private: + ::javax::management::MBeanServerPermission * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p; + jboolean done; +public: // actually package-private + ::javax::management::MBeanServerPermission$MBeanServerPermissionCollection * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration__ diff --git a/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.h b/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.h new file mode 100644 index 00000000000..61223449118 --- /dev/null +++ b/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerPermission$MBeanServerPermissionCollection__ +#define __javax_management_MBeanServerPermission$MBeanServerPermissionCollection__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + } + } + namespace javax + { + namespace management + { + class MBeanServerPermission; + class MBeanServerPermission$MBeanServerPermissionCollection; + } + } +} + +class javax::management::MBeanServerPermission$MBeanServerPermissionCollection : public ::java::security::PermissionCollection +{ + + MBeanServerPermission$MBeanServerPermissionCollection(::javax::management::MBeanServerPermission *); +public: + virtual void add(::java::security::Permission *); + virtual ::java::util::Enumeration * elements(); + virtual jboolean implies(::java::security::Permission *); +public: // actually package-private + MBeanServerPermission$MBeanServerPermissionCollection(::javax::management::MBeanServerPermission *, ::javax::management::MBeanServerPermission$MBeanServerPermissionCollection *); +private: + static const jlong serialVersionUID = -5661980843569388590LL; + ::javax::management::MBeanServerPermission * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) collectionPermission; +public: // actually package-private + ::javax::management::MBeanServerPermission * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanServerPermission$MBeanServerPermissionCollection__ diff --git a/libjava/javax/management/MBeanServerPermission.h b/libjava/javax/management/MBeanServerPermission.h new file mode 100644 index 00000000000..b2bdc1908e3 --- /dev/null +++ b/libjava/javax/management/MBeanServerPermission.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanServerPermission__ +#define __javax_management_MBeanServerPermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + class PermissionCollection; + } + } + namespace javax + { + namespace management + { + class MBeanServerPermission; + } + } +} + +class javax::management::MBeanServerPermission : public ::java::security::BasicPermission +{ + +public: + MBeanServerPermission(::java::lang::String *); + MBeanServerPermission(::java::lang::String *, ::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual jboolean implies(::java::security::Permission *); + virtual ::java::security::PermissionCollection * newPermissionCollection(); +private: + static ::java::lang::String * checkName(::java::lang::String *); + static const jlong serialVersionUID = -5661980843569388590LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanServerPermission__ diff --git a/libjava/javax/management/MBeanTrustPermission.h b/libjava/javax/management/MBeanTrustPermission.h new file mode 100644 index 00000000000..a9740097035 --- /dev/null +++ b/libjava/javax/management/MBeanTrustPermission.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MBeanTrustPermission__ +#define __javax_management_MBeanTrustPermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanTrustPermission; + } + } +} + +class javax::management::MBeanTrustPermission : public ::java::security::BasicPermission +{ + +public: + MBeanTrustPermission(::java::lang::String *); + MBeanTrustPermission(::java::lang::String *, ::java::lang::String *); +private: + static const jlong serialVersionUID = -2952178077029018140LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MBeanTrustPermission__ diff --git a/libjava/javax/management/MalformedObjectNameException.h b/libjava/javax/management/MalformedObjectNameException.h new file mode 100644 index 00000000000..202fa205182 --- /dev/null +++ b/libjava/javax/management/MalformedObjectNameException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_MalformedObjectNameException__ +#define __javax_management_MalformedObjectNameException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MalformedObjectNameException; + } + } +} + +class javax::management::MalformedObjectNameException : public ::javax::management::OperationsException +{ + +public: + MalformedObjectNameException(); + MalformedObjectNameException(::java::lang::String *); +private: + static const jlong serialVersionUID = -572689714442915824LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_MalformedObjectNameException__ diff --git a/libjava/javax/management/NotCompliantMBeanException.h b/libjava/javax/management/NotCompliantMBeanException.h new file mode 100644 index 00000000000..132f1133138 --- /dev/null +++ b/libjava/javax/management/NotCompliantMBeanException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_NotCompliantMBeanException__ +#define __javax_management_NotCompliantMBeanException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class NotCompliantMBeanException; + } + } +} + +class javax::management::NotCompliantMBeanException : public ::javax::management::OperationsException +{ + +public: + NotCompliantMBeanException(); + NotCompliantMBeanException(::java::lang::String *); +private: + static const jlong serialVersionUID = 5175579583207963577LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_NotCompliantMBeanException__ diff --git a/libjava/javax/management/Notification.h b/libjava/javax/management/Notification.h new file mode 100644 index 00000000000..f53a4d5d604 --- /dev/null +++ b/libjava/javax/management/Notification.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_Notification__ +#define __javax_management_Notification__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class Notification; + } + } +} + +class javax::management::Notification : public ::java::util::EventObject +{ + +public: + Notification(::java::lang::String *, ::java::lang::Object *, jlong); + Notification(::java::lang::String *, ::java::lang::Object *, jlong, jlong); + Notification(::java::lang::String *, ::java::lang::Object *, jlong, jlong, ::java::lang::String *); + Notification(::java::lang::String *, ::java::lang::Object *, jlong, ::java::lang::String *); + virtual ::java::lang::String * getMessage(); + virtual jlong getSequenceNumber(); + virtual jlong getTimeStamp(); + virtual ::java::lang::String * getType(); + virtual ::java::lang::Object * getUserData(); + virtual void setSequenceNumber(jlong); + virtual void setSource(::java::lang::Object *); + virtual void setTimeStamp(jlong); + virtual void setUserData(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) message; + jlong sequenceNumber; +public: // actually protected + ::java::lang::Object * source; +private: + jlong timeStamp; + ::java::lang::String * type; + ::java::lang::Object * userData; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_Notification__ diff --git a/libjava/javax/management/NotificationBroadcaster.h b/libjava/javax/management/NotificationBroadcaster.h new file mode 100644 index 00000000000..0cd53dc61c0 --- /dev/null +++ b/libjava/javax/management/NotificationBroadcaster.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_NotificationBroadcaster__ +#define __javax_management_NotificationBroadcaster__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanNotificationInfo; + class NotificationBroadcaster; + class NotificationFilter; + class NotificationListener; + } + } +} + +class javax::management::NotificationBroadcaster : public ::java::lang::Object +{ + +public: + virtual void addNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual JArray< ::javax::management::MBeanNotificationInfo * > * getNotificationInfo() = 0; + virtual void removeNotificationListener(::javax::management::NotificationListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_NotificationBroadcaster__ diff --git a/libjava/javax/management/NotificationEmitter.h b/libjava/javax/management/NotificationEmitter.h new file mode 100644 index 00000000000..2bdebc654b4 --- /dev/null +++ b/libjava/javax/management/NotificationEmitter.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_NotificationEmitter__ +#define __javax_management_NotificationEmitter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanNotificationInfo; + class NotificationEmitter; + class NotificationFilter; + class NotificationListener; + } + } +} + +class javax::management::NotificationEmitter : public ::java::lang::Object +{ + +public: + virtual void removeNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual void addNotificationListener(::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *) = 0; + virtual JArray< ::javax::management::MBeanNotificationInfo * > * getNotificationInfo() = 0; + virtual void removeNotificationListener(::javax::management::NotificationListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_NotificationEmitter__ diff --git a/libjava/javax/management/NotificationFilter.h b/libjava/javax/management/NotificationFilter.h new file mode 100644 index 00000000000..b65b1b13b3f --- /dev/null +++ b/libjava/javax/management/NotificationFilter.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_NotificationFilter__ +#define __javax_management_NotificationFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class Notification; + class NotificationFilter; + } + } +} + +class javax::management::NotificationFilter : public ::java::lang::Object +{ + +public: + virtual jboolean isNotificationEnabled(::javax::management::Notification *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_NotificationFilter__ diff --git a/libjava/javax/management/NotificationListener.h b/libjava/javax/management/NotificationListener.h new file mode 100644 index 00000000000..9561e10be06 --- /dev/null +++ b/libjava/javax/management/NotificationListener.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_NotificationListener__ +#define __javax_management_NotificationListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class Notification; + class NotificationListener; + } + } +} + +class javax::management::NotificationListener : public ::java::lang::Object +{ + +public: + virtual void handleNotification(::javax::management::Notification *, ::java::lang::Object *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_NotificationListener__ diff --git a/libjava/javax/management/ObjectInstance.h b/libjava/javax/management/ObjectInstance.h new file mode 100644 index 00000000000..43755ef44f6 --- /dev/null +++ b/libjava/javax/management/ObjectInstance.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_ObjectInstance__ +#define __javax_management_ObjectInstance__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class ObjectInstance; + class ObjectName; + } + } +} + +class javax::management::ObjectInstance : public ::java::lang::Object +{ + +public: + ObjectInstance(::javax::management::ObjectName *, ::java::lang::String *); + ObjectInstance(::java::lang::String *, ::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getClassName(); + virtual ::javax::management::ObjectName * getObjectName(); + virtual jint hashCode(); +private: + static const jlong serialVersionUID = -4099952623687795850LL; + ::javax::management::ObjectName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * className; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_ObjectInstance__ diff --git a/libjava/javax/management/ObjectName.h b/libjava/javax/management/ObjectName.h new file mode 100644 index 00000000000..aaaf89b5ebf --- /dev/null +++ b/libjava/javax/management/ObjectName.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_ObjectName__ +#define __javax_management_ObjectName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServer; + class ObjectName; + } + } +} + +class javax::management::ObjectName : public ::java::lang::Object +{ + +public: + ObjectName(::java::lang::String *); + ObjectName(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + ObjectName(::java::lang::String *, ::java::util::Hashtable *); +private: + void checkComponents(); +public: + virtual jboolean apply(::javax::management::ObjectName *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getCanonicalKeyPropertyListString(); + virtual ::java::lang::String * getCanonicalName(); + virtual ::java::lang::String * getDomain(); + static ::javax::management::ObjectName * getInstance(::javax::management::ObjectName *); + static ::javax::management::ObjectName * getInstance(::java::lang::String *); + static ::javax::management::ObjectName * getInstance(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + static ::javax::management::ObjectName * getInstance(::java::lang::String *, ::java::util::Hashtable *); + virtual ::java::lang::String * getKeyProperty(::java::lang::String *); + virtual ::java::util::Hashtable * getKeyPropertyList(); + virtual ::java::lang::String * getKeyPropertyListString(); + virtual jint hashCode(); + virtual jboolean isDomainPattern(); + virtual jboolean isPattern(); + virtual jboolean isPropertyPattern(); + static ::java::lang::String * quote(::java::lang::String *); + virtual void setMBeanServer(::javax::management::MBeanServer *); + virtual ::java::lang::String * toString(); + static ::java::lang::String * unquote(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) domain; + ::java::util::TreeMap * properties; + ::java::lang::String * propertyListString; + jboolean propertyPattern; + ::javax::management::MBeanServer * server; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_ObjectName__ diff --git a/libjava/javax/management/OperationsException.h b/libjava/javax/management/OperationsException.h new file mode 100644 index 00000000000..528e0600f68 --- /dev/null +++ b/libjava/javax/management/OperationsException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_OperationsException__ +#define __javax_management_OperationsException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class OperationsException; + } + } +} + +class javax::management::OperationsException : public ::javax::management::JMException +{ + +public: + OperationsException(); + OperationsException(::java::lang::String *); +private: + static const jlong serialVersionUID = -4967597595580536216LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_OperationsException__ diff --git a/libjava/javax/management/QueryExp.h b/libjava/javax/management/QueryExp.h new file mode 100644 index 00000000000..7790c378311 --- /dev/null +++ b/libjava/javax/management/QueryExp.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_QueryExp__ +#define __javax_management_QueryExp__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServer; + class ObjectName; + class QueryExp; + } + } +} + +class javax::management::QueryExp : public ::java::lang::Object +{ + +public: + virtual jboolean apply(::javax::management::ObjectName *) = 0; + virtual void setMBeanServer(::javax::management::MBeanServer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_QueryExp__ diff --git a/libjava/javax/management/ReflectionException.h b/libjava/javax/management/ReflectionException.h new file mode 100644 index 00000000000..d8b08802cb4 --- /dev/null +++ b/libjava/javax/management/ReflectionException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_ReflectionException__ +#define __javax_management_ReflectionException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class ReflectionException; + } + } +} + +class javax::management::ReflectionException : public ::javax::management::JMException +{ + +public: + ReflectionException(::java::lang::Exception *); + ReflectionException(::java::lang::Exception *, ::java::lang::String *); + virtual ::java::lang::Throwable * getCause(); + virtual ::java::lang::Exception * getTargetException(); +private: + static const jlong serialVersionUID = 9170809325636915553LL; + ::java::lang::Exception * __attribute__((aligned(__alignof__( ::javax::management::JMException)))) exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_ReflectionException__ diff --git a/libjava/javax/management/RuntimeErrorException.h b/libjava/javax/management/RuntimeErrorException.h new file mode 100644 index 00000000000..fdf440a1f5a --- /dev/null +++ b/libjava/javax/management/RuntimeErrorException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_RuntimeErrorException__ +#define __javax_management_RuntimeErrorException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class RuntimeErrorException; + } + } +} + +class javax::management::RuntimeErrorException : public ::javax::management::JMRuntimeException +{ + +public: + RuntimeErrorException(::java::lang::Error *); + RuntimeErrorException(::java::lang::Error *, ::java::lang::String *); + virtual ::java::lang::Throwable * getCause(); + virtual ::java::lang::Error * getTargetError(); +private: + static const jlong serialVersionUID = 704338937753949796LL; + ::java::lang::Error * __attribute__((aligned(__alignof__( ::javax::management::JMRuntimeException)))) error; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_RuntimeErrorException__ diff --git a/libjava/javax/management/RuntimeMBeanException.h b/libjava/javax/management/RuntimeMBeanException.h new file mode 100644 index 00000000000..599cb916e56 --- /dev/null +++ b/libjava/javax/management/RuntimeMBeanException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_RuntimeMBeanException__ +#define __javax_management_RuntimeMBeanException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class RuntimeMBeanException; + } + } +} + +class javax::management::RuntimeMBeanException : public ::javax::management::JMRuntimeException +{ + +public: + RuntimeMBeanException(::java::lang::RuntimeException *); + RuntimeMBeanException(::java::lang::RuntimeException *, ::java::lang::String *); + virtual ::java::lang::Throwable * getCause(); + virtual ::java::lang::RuntimeException * getTargetException(); +private: + static const jlong serialVersionUID = 5274912751982730171LL; + ::java::lang::RuntimeException * __attribute__((aligned(__alignof__( ::javax::management::JMRuntimeException)))) runtimeException; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_RuntimeMBeanException__ diff --git a/libjava/javax/management/RuntimeOperationsException.h b/libjava/javax/management/RuntimeOperationsException.h new file mode 100644 index 00000000000..3a8a1e71761 --- /dev/null +++ b/libjava/javax/management/RuntimeOperationsException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_RuntimeOperationsException__ +#define __javax_management_RuntimeOperationsException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class RuntimeOperationsException; + } + } +} + +class javax::management::RuntimeOperationsException : public ::javax::management::JMRuntimeException +{ + +public: + RuntimeOperationsException(::java::lang::RuntimeException *); + RuntimeOperationsException(::java::lang::RuntimeException *, ::java::lang::String *); + virtual ::java::lang::Throwable * getCause(); + virtual ::java::lang::RuntimeException * getTargetException(); +private: + static const jlong serialVersionUID = -8408923047489133588LL; + ::java::lang::RuntimeException * __attribute__((aligned(__alignof__( ::javax::management::JMRuntimeException)))) runtimeException; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_RuntimeOperationsException__ diff --git a/libjava/javax/management/ServiceNotFoundException.h b/libjava/javax/management/ServiceNotFoundException.h new file mode 100644 index 00000000000..8eb29020899 --- /dev/null +++ b/libjava/javax/management/ServiceNotFoundException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_ServiceNotFoundException__ +#define __javax_management_ServiceNotFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class ServiceNotFoundException; + } + } +} + +class javax::management::ServiceNotFoundException : public ::javax::management::OperationsException +{ + +public: + ServiceNotFoundException(); + ServiceNotFoundException(::java::lang::String *); +private: + static const jlong serialVersionUID = -3990675661956646827LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_ServiceNotFoundException__ diff --git a/libjava/javax/management/StandardMBean.h b/libjava/javax/management/StandardMBean.h new file mode 100644 index 00000000000..d4dabb19db7 --- /dev/null +++ b/libjava/javax/management/StandardMBean.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_StandardMBean__ +#define __javax_management_StandardMBean__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class Attribute; + class AttributeList; + class MBeanAttributeInfo; + class MBeanConstructorInfo; + class MBeanFeatureInfo; + class MBeanInfo; + class MBeanOperationInfo; + class MBeanParameterInfo; + class StandardMBean; + } + } +} + +class javax::management::StandardMBean : public ::java::lang::Object +{ + +public: // actually protected + StandardMBean(::java::lang::Class *); +public: + StandardMBean(::java::lang::Object *, ::java::lang::Class *); +public: // actually protected + virtual void cacheMBeanInfo(::javax::management::MBeanInfo *); +public: + virtual ::java::lang::Object * getAttribute(::java::lang::String *); + virtual ::javax::management::AttributeList * getAttributes(JArray< ::java::lang::String * > *); +public: // actually protected + virtual ::javax::management::MBeanInfo * getCachedMBeanInfo(); + virtual ::java::lang::String * getClassName(::javax::management::MBeanInfo *); + virtual JArray< ::javax::management::MBeanConstructorInfo * > * getConstructors(JArray< ::javax::management::MBeanConstructorInfo * > *, ::java::lang::Object *); + virtual ::java::lang::String * getDescription(::javax::management::MBeanAttributeInfo *); + virtual ::java::lang::String * getDescription(::javax::management::MBeanConstructorInfo *); + virtual ::java::lang::String * getDescription(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint); + virtual ::java::lang::String * getDescription(::javax::management::MBeanFeatureInfo *); + virtual ::java::lang::String * getDescription(::javax::management::MBeanInfo *); + virtual ::java::lang::String * getDescription(::javax::management::MBeanOperationInfo *); + virtual ::java::lang::String * getDescription(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint); + virtual jint getImpact(::javax::management::MBeanOperationInfo *); +public: + virtual ::java::lang::Object * getImplementation(); + virtual ::java::lang::Class * getImplementationClass(); + virtual ::javax::management::MBeanInfo * getMBeanInfo(); + virtual ::java::lang::Class * getMBeanInterface(); +public: // actually protected + virtual ::java::lang::String * getParameterName(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint); + virtual ::java::lang::String * getParameterName(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint); +public: + virtual ::java::lang::Object * invoke(::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *); + virtual void setAttribute(::javax::management::Attribute *); + virtual ::javax::management::AttributeList * setAttributes(::javax::management::AttributeList *); + virtual void setImplementation(::java::lang::Object *); +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iface; + ::java::lang::Object * impl; + ::javax::management::MBeanInfo * info; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_StandardMBean__ diff --git a/libjava/javax/management/ValueExp.h b/libjava/javax/management/ValueExp.h new file mode 100644 index 00000000000..4837d9f62c1 --- /dev/null +++ b/libjava/javax/management/ValueExp.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_ValueExp__ +#define __javax_management_ValueExp__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanServer; + class ObjectName; + class ValueExp; + } + } +} + +class javax::management::ValueExp : public ::java::lang::Object +{ + +public: + virtual ::javax::management::ValueExp * apply(::javax::management::ObjectName *) = 0; + virtual void setMBeanServer(::javax::management::MBeanServer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_ValueExp__ diff --git a/libjava/javax/management/loading/ClassLoaderRepository.h b/libjava/javax/management/loading/ClassLoaderRepository.h new file mode 100644 index 00000000000..0332c059c7d --- /dev/null +++ b/libjava/javax/management/loading/ClassLoaderRepository.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_loading_ClassLoaderRepository__ +#define __javax_management_loading_ClassLoaderRepository__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace loading + { + class ClassLoaderRepository; + } + } + } +} + +class javax::management::loading::ClassLoaderRepository : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * loadClass(::java::lang::String *) = 0; + virtual ::java::lang::Class * loadClassBefore(::java::lang::ClassLoader *, ::java::lang::String *) = 0; + virtual ::java::lang::Class * loadClassWithout(::java::lang::ClassLoader *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_loading_ClassLoaderRepository__ diff --git a/libjava/javax/management/openmbean/ArrayType.h b/libjava/javax/management/openmbean/ArrayType.h new file mode 100644 index 00000000000..ba8dece65a7 --- /dev/null +++ b/libjava/javax/management/openmbean/ArrayType.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_ArrayType__ +#define __javax_management_openmbean_ArrayType__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class ArrayType; + class OpenType; + } + } + } +} + +class javax::management::openmbean::ArrayType : public ::javax::management::openmbean::OpenType +{ + + static ::java::lang::String * getArrayClassName(::java::lang::String *, jint); +public: + ArrayType(jint, ::javax::management::openmbean::OpenType *); + virtual jboolean equals(::java::lang::Object *); + virtual jint getDimension(); + virtual ::javax::management::openmbean::OpenType * getElementOpenType(); + virtual jint hashCode(); + virtual jboolean isValue(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 720504429830309770LL; + jint __attribute__((aligned(__alignof__( ::javax::management::openmbean::OpenType)))) dimension; + ::javax::management::openmbean::OpenType * elementType; + ::java::lang::Integer * hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_ArrayType__ diff --git a/libjava/javax/management/openmbean/CompositeData.h b/libjava/javax/management/openmbean/CompositeData.h new file mode 100644 index 00000000000..7382cdf927c --- /dev/null +++ b/libjava/javax/management/openmbean/CompositeData.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_CompositeData__ +#define __javax_management_openmbean_CompositeData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class CompositeData; + class CompositeType; + } + } + } +} + +class javax::management::openmbean::CompositeData : public ::java::lang::Object +{ + +public: + virtual jboolean containsKey(::java::lang::String *) = 0; + virtual jboolean containsValue(::java::lang::Object *) = 0; + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::java::lang::Object * get(::java::lang::String *) = 0; + virtual JArray< ::java::lang::Object * > * getAll(JArray< ::java::lang::String * > *) = 0; + virtual ::javax::management::openmbean::CompositeType * getCompositeType() = 0; + virtual jint hashCode() = 0; + virtual ::java::lang::String * toString() = 0; + virtual ::java::util::Collection * values() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_openmbean_CompositeData__ diff --git a/libjava/javax/management/openmbean/CompositeDataSupport.h b/libjava/javax/management/openmbean/CompositeDataSupport.h new file mode 100644 index 00000000000..fcf0b73a96b --- /dev/null +++ b/libjava/javax/management/openmbean/CompositeDataSupport.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_CompositeDataSupport__ +#define __javax_management_openmbean_CompositeDataSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class CompositeDataSupport; + class CompositeType; + } + } + } +} + +class javax::management::openmbean::CompositeDataSupport : public ::java::lang::Object +{ + +public: + CompositeDataSupport(::javax::management::openmbean::CompositeType *, ::java::util::Map *); + CompositeDataSupport(::javax::management::openmbean::CompositeType *, JArray< ::java::lang::String * > *, JArray< ::java::lang::Object * > *); + virtual jboolean containsKey(::java::lang::String *); + virtual jboolean containsValue(::java::lang::Object *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Object * get(::java::lang::String *); + virtual JArray< ::java::lang::Object * > * getAll(JArray< ::java::lang::String * > *); + virtual ::javax::management::openmbean::CompositeType * getCompositeType(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); + virtual ::java::util::Collection * values(); +private: + static const jlong serialVersionUID = 8003518976613702244LL; + ::java::util::SortedMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) contents; + ::javax::management::openmbean::CompositeType * compositeType; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_CompositeDataSupport__ diff --git a/libjava/javax/management/openmbean/CompositeType.h b/libjava/javax/management/openmbean/CompositeType.h new file mode 100644 index 00000000000..30dcad38fda --- /dev/null +++ b/libjava/javax/management/openmbean/CompositeType.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_CompositeType__ +#define __javax_management_openmbean_CompositeType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class CompositeType; + class OpenType; + } + } + } +} + +class javax::management::openmbean::CompositeType : public ::javax::management::openmbean::OpenType +{ + +public: + CompositeType(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::javax::management::openmbean::OpenType * > *); + virtual jboolean containsKey(::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getDescription(::java::lang::String *); + virtual ::javax::management::openmbean::OpenType * getType(::java::lang::String *); + virtual jint hashCode(); + virtual jboolean isValue(::java::lang::Object *); + virtual ::java::util::Set * keySet(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -5366242454346948798LL; + ::java::util::TreeMap * __attribute__((aligned(__alignof__( ::javax::management::openmbean::OpenType)))) nameToDescription; + ::java::util::TreeMap * nameToType; + ::java::lang::Integer * hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_CompositeType__ diff --git a/libjava/javax/management/openmbean/InvalidKeyException.h b/libjava/javax/management/openmbean/InvalidKeyException.h new file mode 100644 index 00000000000..8534b941fde --- /dev/null +++ b/libjava/javax/management/openmbean/InvalidKeyException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_InvalidKeyException__ +#define __javax_management_openmbean_InvalidKeyException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class InvalidKeyException; + } + } + } +} + +class javax::management::openmbean::InvalidKeyException : public ::java::lang::IllegalArgumentException +{ + +public: + InvalidKeyException(); + InvalidKeyException(::java::lang::String *); +private: + static const jlong serialVersionUID = 4224269443946322062LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_InvalidKeyException__ diff --git a/libjava/javax/management/openmbean/InvalidOpenTypeException.h b/libjava/javax/management/openmbean/InvalidOpenTypeException.h new file mode 100644 index 00000000000..8dec6485981 --- /dev/null +++ b/libjava/javax/management/openmbean/InvalidOpenTypeException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_InvalidOpenTypeException__ +#define __javax_management_openmbean_InvalidOpenTypeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class InvalidOpenTypeException; + } + } + } +} + +class javax::management::openmbean::InvalidOpenTypeException : public ::java::lang::IllegalArgumentException +{ + +public: + InvalidOpenTypeException(); + InvalidOpenTypeException(::java::lang::String *); +private: + static const jlong serialVersionUID = -2837312755412327534LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_InvalidOpenTypeException__ diff --git a/libjava/javax/management/openmbean/KeyAlreadyExistsException.h b/libjava/javax/management/openmbean/KeyAlreadyExistsException.h new file mode 100644 index 00000000000..40269dd03f0 --- /dev/null +++ b/libjava/javax/management/openmbean/KeyAlreadyExistsException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_KeyAlreadyExistsException__ +#define __javax_management_openmbean_KeyAlreadyExistsException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class KeyAlreadyExistsException; + } + } + } +} + +class javax::management::openmbean::KeyAlreadyExistsException : public ::java::lang::IllegalArgumentException +{ + +public: + KeyAlreadyExistsException(); + KeyAlreadyExistsException(::java::lang::String *); +private: + static const jlong serialVersionUID = 1845183636745282866LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_KeyAlreadyExistsException__ diff --git a/libjava/javax/management/openmbean/OpenDataException.h b/libjava/javax/management/openmbean/OpenDataException.h new file mode 100644 index 00000000000..d79caa5eb8a --- /dev/null +++ b/libjava/javax/management/openmbean/OpenDataException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenDataException__ +#define __javax_management_openmbean_OpenDataException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenDataException; + } + } + } +} + +class javax::management::openmbean::OpenDataException : public ::javax::management::JMException +{ + +public: + OpenDataException(); + OpenDataException(::java::lang::String *); +private: + static const jlong serialVersionUID = 8346311255433349870LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_OpenDataException__ diff --git a/libjava/javax/management/openmbean/OpenMBeanAttributeInfo.h b/libjava/javax/management/openmbean/OpenMBeanAttributeInfo.h new file mode 100644 index 00000000000..2e576dcd931 --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanAttributeInfo.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanAttributeInfo__ +#define __javax_management_openmbean_OpenMBeanAttributeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenMBeanAttributeInfo; + class OpenType; + } + } + } +} + +class javax::management::openmbean::OpenMBeanAttributeInfo : public ::java::lang::Object +{ + +public: + virtual jboolean equals(::java::lang::Object *) = 0; + virtual jint hashCode() = 0; + virtual jboolean isIs() = 0; + virtual jboolean isReadable() = 0; + virtual jboolean isWritable() = 0; + virtual ::java::lang::String * toString() = 0; + virtual ::java::lang::Object * getDefaultValue() = 0; + virtual ::java::lang::String * getDescription() = 0; + virtual ::java::util::Set * getLegalValues() = 0; + virtual ::java::lang::Comparable * getMaxValue() = 0; + virtual ::java::lang::Comparable * getMinValue() = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::management::openmbean::OpenType * getOpenType() = 0; + virtual jboolean hasDefaultValue() = 0; + virtual jboolean hasLegalValues() = 0; + virtual jboolean hasMaxValue() = 0; + virtual jboolean hasMinValue() = 0; + virtual jboolean isValue(::java::lang::Object *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_openmbean_OpenMBeanAttributeInfo__ diff --git a/libjava/javax/management/openmbean/OpenMBeanAttributeInfoSupport.h b/libjava/javax/management/openmbean/OpenMBeanAttributeInfoSupport.h new file mode 100644 index 00000000000..a9cdbcfcf06 --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanAttributeInfoSupport.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanAttributeInfoSupport__ +#define __javax_management_openmbean_OpenMBeanAttributeInfoSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenMBeanAttributeInfoSupport; + class OpenType; + } + } + } +} + +class javax::management::openmbean::OpenMBeanAttributeInfoSupport : public ::javax::management::MBeanAttributeInfo +{ + +public: + OpenMBeanAttributeInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *, jboolean, jboolean, jboolean); + OpenMBeanAttributeInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *, jboolean, jboolean, jboolean, ::java::lang::Object *); + OpenMBeanAttributeInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *, jboolean, jboolean, jboolean, ::java::lang::Object *, ::java::lang::Comparable *, ::java::lang::Comparable *); + OpenMBeanAttributeInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *, jboolean, jboolean, jboolean, ::java::lang::Object *, JArray< ::java::lang::Object * > *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Object * getDefaultValue(); + virtual ::java::util::Set * getLegalValues(); + virtual ::java::lang::Comparable * getMaxValue(); + virtual ::java::lang::Comparable * getMinValue(); + virtual ::javax::management::openmbean::OpenType * getOpenType(); + virtual jboolean hasDefaultValue(); + virtual jint hashCode(); + virtual jboolean hasLegalValues(); + virtual jboolean hasMaxValue(); + virtual jboolean hasMinValue(); + virtual jboolean isValue(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -4867215622149721849LL; + ::javax::management::openmbean::OpenType * __attribute__((aligned(__alignof__( ::javax::management::MBeanAttributeInfo)))) openType; + ::java::lang::Object * defaultValue; + ::java::util::Set * legalValues; + ::java::lang::Comparable * minValue; + ::java::lang::Comparable * maxValue; + ::java::lang::Integer * hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_OpenMBeanAttributeInfoSupport__ diff --git a/libjava/javax/management/openmbean/OpenMBeanConstructorInfo.h b/libjava/javax/management/openmbean/OpenMBeanConstructorInfo.h new file mode 100644 index 00000000000..07adf096c01 --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanConstructorInfo.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanConstructorInfo__ +#define __javax_management_openmbean_OpenMBeanConstructorInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanParameterInfo; + namespace openmbean + { + class OpenMBeanConstructorInfo; + } + } + } +} + +class javax::management::openmbean::OpenMBeanConstructorInfo : public ::java::lang::Object +{ + +public: + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::java::lang::String * getDescription() = 0; + virtual ::java::lang::String * getName() = 0; + virtual JArray< ::javax::management::MBeanParameterInfo * > * getSignature() = 0; + virtual jint hashCode() = 0; + virtual ::java::lang::String * toString() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_openmbean_OpenMBeanConstructorInfo__ diff --git a/libjava/javax/management/openmbean/OpenMBeanConstructorInfoSupport.h b/libjava/javax/management/openmbean/OpenMBeanConstructorInfoSupport.h new file mode 100644 index 00000000000..a64d9cdda57 --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanConstructorInfoSupport.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanConstructorInfoSupport__ +#define __javax_management_openmbean_OpenMBeanConstructorInfoSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenMBeanConstructorInfoSupport; + class OpenMBeanParameterInfo; + } + } + } +} + +class javax::management::openmbean::OpenMBeanConstructorInfoSupport : public ::javax::management::MBeanConstructorInfo +{ + +public: + OpenMBeanConstructorInfoSupport(::java::lang::String *, ::java::lang::String *, JArray< ::javax::management::openmbean::OpenMBeanParameterInfo * > *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -4400441579007477003LL; + ::java::lang::Integer * __attribute__((aligned(__alignof__( ::javax::management::MBeanConstructorInfo)))) hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_OpenMBeanConstructorInfoSupport__ diff --git a/libjava/javax/management/openmbean/OpenMBeanInfo.h b/libjava/javax/management/openmbean/OpenMBeanInfo.h new file mode 100644 index 00000000000..2d61d82326e --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanInfo.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanInfo__ +#define __javax_management_openmbean_OpenMBeanInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanAttributeInfo; + class MBeanConstructorInfo; + class MBeanNotificationInfo; + class MBeanOperationInfo; + namespace openmbean + { + class OpenMBeanInfo; + } + } + } +} + +class javax::management::openmbean::OpenMBeanInfo : public ::java::lang::Object +{ + +public: + virtual jboolean equals(::java::lang::Object *) = 0; + virtual JArray< ::javax::management::MBeanAttributeInfo * > * getAttributes() = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual JArray< ::javax::management::MBeanConstructorInfo * > * getConstructors() = 0; + virtual ::java::lang::String * getDescription() = 0; + virtual JArray< ::javax::management::MBeanNotificationInfo * > * getNotifications() = 0; + virtual JArray< ::javax::management::MBeanOperationInfo * > * getOperations() = 0; + virtual jint hashCode() = 0; + virtual ::java::lang::String * toString() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_openmbean_OpenMBeanInfo__ diff --git a/libjava/javax/management/openmbean/OpenMBeanInfoSupport.h b/libjava/javax/management/openmbean/OpenMBeanInfoSupport.h new file mode 100644 index 00000000000..4b4e500311d --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanInfoSupport.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanInfoSupport__ +#define __javax_management_openmbean_OpenMBeanInfoSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanNotificationInfo; + namespace openmbean + { + class OpenMBeanAttributeInfo; + class OpenMBeanConstructorInfo; + class OpenMBeanInfoSupport; + class OpenMBeanOperationInfo; + } + } + } +} + +class javax::management::openmbean::OpenMBeanInfoSupport : public ::javax::management::MBeanInfo +{ + +public: + OpenMBeanInfoSupport(::java::lang::String *, ::java::lang::String *, JArray< ::javax::management::openmbean::OpenMBeanAttributeInfo * > *, JArray< ::javax::management::openmbean::OpenMBeanConstructorInfo * > *, JArray< ::javax::management::openmbean::OpenMBeanOperationInfo * > *, JArray< ::javax::management::MBeanNotificationInfo * > *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 4349395935420511492LL; + ::java::lang::Integer * __attribute__((aligned(__alignof__( ::javax::management::MBeanInfo)))) hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_OpenMBeanInfoSupport__ diff --git a/libjava/javax/management/openmbean/OpenMBeanOperationInfo.h b/libjava/javax/management/openmbean/OpenMBeanOperationInfo.h new file mode 100644 index 00000000000..4cdf93114d3 --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanOperationInfo.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanOperationInfo__ +#define __javax_management_openmbean_OpenMBeanOperationInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + class MBeanParameterInfo; + namespace openmbean + { + class OpenMBeanOperationInfo; + class OpenType; + } + } + } +} + +class javax::management::openmbean::OpenMBeanOperationInfo : public ::java::lang::Object +{ + +public: + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::java::lang::String * getDescription() = 0; + virtual jint getImpact() = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::management::openmbean::OpenType * getReturnOpenType() = 0; + virtual ::java::lang::String * getReturnType() = 0; + virtual JArray< ::javax::management::MBeanParameterInfo * > * getSignature() = 0; + virtual jint hashCode() = 0; + virtual ::java::lang::String * toString() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_openmbean_OpenMBeanOperationInfo__ diff --git a/libjava/javax/management/openmbean/OpenMBeanOperationInfoSupport.h b/libjava/javax/management/openmbean/OpenMBeanOperationInfoSupport.h new file mode 100644 index 00000000000..04071e35afd --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanOperationInfoSupport.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanOperationInfoSupport__ +#define __javax_management_openmbean_OpenMBeanOperationInfoSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenMBeanOperationInfoSupport; + class OpenMBeanParameterInfo; + class OpenType; + } + } + } +} + +class javax::management::openmbean::OpenMBeanOperationInfoSupport : public ::javax::management::MBeanOperationInfo +{ + +public: + OpenMBeanOperationInfoSupport(::java::lang::String *, ::java::lang::String *, JArray< ::javax::management::openmbean::OpenMBeanParameterInfo * > *, ::javax::management::openmbean::OpenType *, jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::javax::management::openmbean::OpenType * getReturnOpenType(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 4996859732565369366LL; + ::javax::management::openmbean::OpenType * __attribute__((aligned(__alignof__( ::javax::management::MBeanOperationInfo)))) returnOpenType; + ::java::lang::Integer * hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_OpenMBeanOperationInfoSupport__ diff --git a/libjava/javax/management/openmbean/OpenMBeanParameterInfo.h b/libjava/javax/management/openmbean/OpenMBeanParameterInfo.h new file mode 100644 index 00000000000..5fe63058d4f --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanParameterInfo.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanParameterInfo__ +#define __javax_management_openmbean_OpenMBeanParameterInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenMBeanParameterInfo; + class OpenType; + } + } + } +} + +class javax::management::openmbean::OpenMBeanParameterInfo : public ::java::lang::Object +{ + +public: + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::java::lang::Object * getDefaultValue() = 0; + virtual ::java::lang::String * getDescription() = 0; + virtual ::java::util::Set * getLegalValues() = 0; + virtual ::java::lang::Comparable * getMaxValue() = 0; + virtual ::java::lang::Comparable * getMinValue() = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::management::openmbean::OpenType * getOpenType() = 0; + virtual jboolean hasDefaultValue() = 0; + virtual jint hashCode() = 0; + virtual jboolean hasLegalValues() = 0; + virtual jboolean hasMaxValue() = 0; + virtual jboolean hasMinValue() = 0; + virtual jboolean isValue(::java::lang::Object *) = 0; + virtual ::java::lang::String * toString() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_openmbean_OpenMBeanParameterInfo__ diff --git a/libjava/javax/management/openmbean/OpenMBeanParameterInfoSupport.h b/libjava/javax/management/openmbean/OpenMBeanParameterInfoSupport.h new file mode 100644 index 00000000000..41f8bb4517e --- /dev/null +++ b/libjava/javax/management/openmbean/OpenMBeanParameterInfoSupport.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenMBeanParameterInfoSupport__ +#define __javax_management_openmbean_OpenMBeanParameterInfoSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenMBeanParameterInfoSupport; + class OpenType; + } + } + } +} + +class javax::management::openmbean::OpenMBeanParameterInfoSupport : public ::javax::management::MBeanParameterInfo +{ + +public: + OpenMBeanParameterInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *); + OpenMBeanParameterInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *, ::java::lang::Object *); + OpenMBeanParameterInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *, ::java::lang::Object *, ::java::lang::Comparable *, ::java::lang::Comparable *); + OpenMBeanParameterInfoSupport(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::OpenType *, ::java::lang::Object *, JArray< ::java::lang::Object * > *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Object * getDefaultValue(); + virtual ::java::util::Set * getLegalValues(); + virtual ::java::lang::Comparable * getMaxValue(); + virtual ::java::lang::Comparable * getMinValue(); + virtual ::javax::management::openmbean::OpenType * getOpenType(); + virtual jboolean hasDefaultValue(); + virtual jint hashCode(); + virtual jboolean hasLegalValues(); + virtual jboolean hasMaxValue(); + virtual jboolean hasMinValue(); + virtual jboolean isValue(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -7235016873758443122LL; + ::javax::management::openmbean::OpenType * __attribute__((aligned(__alignof__( ::javax::management::MBeanParameterInfo)))) openType; + ::java::lang::Object * defaultValue; + ::java::util::Set * legalValues; + ::java::lang::Comparable * minValue; + ::java::lang::Comparable * maxValue; + ::java::lang::Integer * hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_OpenMBeanParameterInfoSupport__ diff --git a/libjava/javax/management/openmbean/OpenType.h b/libjava/javax/management/openmbean/OpenType.h new file mode 100644 index 00000000000..4150cf14f50 --- /dev/null +++ b/libjava/javax/management/openmbean/OpenType.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_OpenType__ +#define __javax_management_openmbean_OpenType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class OpenType; + } + } + } +} + +class javax::management::openmbean::OpenType : public ::java::lang::Object +{ + +public: // actually protected + OpenType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::java::lang::String * getClassName(); + virtual ::java::lang::String * getDescription(); + virtual ::java::lang::String * getTypeName(); + virtual jint hashCode() = 0; + virtual jboolean isArray(); + virtual jboolean isValue(::java::lang::Object *) = 0; + virtual ::java::lang::String * toString() = 0; +private: + static const jlong serialVersionUID = -9195195325186646468LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) className; + ::java::lang::String * typeName; + ::java::lang::String * description; +public: + static JArray< ::java::lang::String * > * ALLOWED_CLASSNAMES; + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_OpenType__ diff --git a/libjava/javax/management/openmbean/SimpleType.h b/libjava/javax/management/openmbean/SimpleType.h new file mode 100644 index 00000000000..1ff75672cc7 --- /dev/null +++ b/libjava/javax/management/openmbean/SimpleType.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_SimpleType__ +#define __javax_management_openmbean_SimpleType__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class SimpleType; + } + } + } +} + +class javax::management::openmbean::SimpleType : public ::javax::management::openmbean::OpenType +{ + + SimpleType(::java::lang::String *); +public: + jboolean equals(::java::lang::Object *); + jint hashCode(); + jboolean isValue(::java::lang::Object *); + ::java::lang::Object * readResolve(); + ::java::lang::String * toString(); + static ::javax::management::openmbean::SimpleType * BIGDECIMAL; + static ::javax::management::openmbean::SimpleType * BIGINTEGER; + static ::javax::management::openmbean::SimpleType * BOOLEAN; + static ::javax::management::openmbean::SimpleType * BYTE; + static ::javax::management::openmbean::SimpleType * CHARACTER; + static ::javax::management::openmbean::SimpleType * DATE; + static ::javax::management::openmbean::SimpleType * DOUBLE; + static ::javax::management::openmbean::SimpleType * FLOAT; + static ::javax::management::openmbean::SimpleType * INTEGER; + static ::javax::management::openmbean::SimpleType * LONG; + static ::javax::management::openmbean::SimpleType * OBJECTNAME; + static ::javax::management::openmbean::SimpleType * SHORT; + static ::javax::management::openmbean::SimpleType * STRING; + static ::javax::management::openmbean::SimpleType * VOID; +private: + static const jlong serialVersionUID = 2215577471957694503LL; + ::java::lang::Integer * __attribute__((aligned(__alignof__( ::javax::management::openmbean::OpenType)))) hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_SimpleType__ diff --git a/libjava/javax/management/openmbean/TabularData.h b/libjava/javax/management/openmbean/TabularData.h new file mode 100644 index 00000000000..ef70028a983 --- /dev/null +++ b/libjava/javax/management/openmbean/TabularData.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_TabularData__ +#define __javax_management_openmbean_TabularData__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class CompositeData; + class TabularData; + class TabularType; + } + } + } +} + +class javax::management::openmbean::TabularData : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::Object * > * calculateIndex(::javax::management::openmbean::CompositeData *) = 0; + virtual void clear() = 0; + virtual jboolean containsKey(JArray< ::java::lang::Object * > *) = 0; + virtual jboolean containsValue(::javax::management::openmbean::CompositeData *) = 0; + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::javax::management::openmbean::CompositeData * get(JArray< ::java::lang::Object * > *) = 0; + virtual ::javax::management::openmbean::TabularType * getTabularType() = 0; + virtual jint hashCode() = 0; + virtual jboolean isEmpty() = 0; + virtual ::java::util::Set * keySet() = 0; + virtual void put(::javax::management::openmbean::CompositeData *) = 0; + virtual void putAll(JArray< ::javax::management::openmbean::CompositeData * > *) = 0; + virtual ::javax::management::openmbean::CompositeData * remove(JArray< ::java::lang::Object * > *) = 0; + virtual jint size() = 0; + virtual ::java::lang::String * toString() = 0; + virtual ::java::util::Collection * values() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_openmbean_TabularData__ diff --git a/libjava/javax/management/openmbean/TabularDataSupport.h b/libjava/javax/management/openmbean/TabularDataSupport.h new file mode 100644 index 00000000000..23b437650e5 --- /dev/null +++ b/libjava/javax/management/openmbean/TabularDataSupport.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_TabularDataSupport__ +#define __javax_management_openmbean_TabularDataSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class CompositeData; + class TabularDataSupport; + class TabularType; + } + } + } +} + +class javax::management::openmbean::TabularDataSupport : public ::java::lang::Object +{ + +public: + TabularDataSupport(::javax::management::openmbean::TabularType *); + TabularDataSupport(::javax::management::openmbean::TabularType *, jint, jfloat); + virtual JArray< ::java::lang::Object * > * calculateIndex(::javax::management::openmbean::CompositeData *); + virtual void clear(); + virtual ::java::lang::Object * clone(); + virtual jboolean containsKey(::java::lang::Object *); + virtual jboolean containsKey(JArray< ::java::lang::Object * > *); + virtual jboolean containsValue(::java::lang::Object *); + virtual jboolean containsValue(::javax::management::openmbean::CompositeData *); + virtual ::java::util::Set * entrySet(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Object * get(::java::lang::Object *); + virtual ::javax::management::openmbean::CompositeData * get(JArray< ::java::lang::Object * > *); + virtual ::javax::management::openmbean::TabularType * getTabularType(); + virtual jint hashCode(); + virtual jboolean isEmpty(); +private: + jboolean isKeyValid(JArray< ::java::lang::Object * > *); +public: + virtual ::java::util::Set * keySet(); + virtual void put(::javax::management::openmbean::CompositeData *); + virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *); + virtual void putAll(JArray< ::javax::management::openmbean::CompositeData * > *); + virtual void putAll(::java::util::Map *); + virtual ::java::lang::Object * remove(::java::lang::Object *); + virtual ::javax::management::openmbean::CompositeData * remove(JArray< ::java::lang::Object * > *); +public: // actually package-private + virtual void setMap(::java::util::Map *); +public: + virtual jint size(); + virtual ::java::lang::String * toString(); + virtual ::java::util::Collection * values(); +private: + static const jlong serialVersionUID = 5720150593236309827LL; + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataMap; + ::javax::management::openmbean::TabularType * tabularType; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_TabularDataSupport__ diff --git a/libjava/javax/management/openmbean/TabularType.h b/libjava/javax/management/openmbean/TabularType.h new file mode 100644 index 00000000000..071a7049a3d --- /dev/null +++ b/libjava/javax/management/openmbean/TabularType.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_openmbean_TabularType__ +#define __javax_management_openmbean_TabularType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace openmbean + { + class CompositeType; + class TabularType; + } + } + } +} + +class javax::management::openmbean::TabularType : public ::javax::management::openmbean::OpenType +{ + +public: + TabularType(::java::lang::String *, ::java::lang::String *, ::javax::management::openmbean::CompositeType *, JArray< ::java::lang::String * > *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::util::List * getIndexNames(); + virtual ::javax::management::openmbean::CompositeType * getRowType(); + virtual jint hashCode(); + virtual jboolean isValue(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 6554071860220659261LL; + ::javax::management::openmbean::CompositeType * __attribute__((aligned(__alignof__( ::javax::management::openmbean::OpenType)))) rowType; + ::java::util::List * indexNames; + ::java::lang::Integer * hashCode__; + ::java::lang::String * string; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_openmbean_TabularType__ diff --git a/libjava/javax/naming/AuthenticationException.h b/libjava/javax/naming/AuthenticationException.h new file mode 100644 index 00000000000..9f41f0d6825 --- /dev/null +++ b/libjava/javax/naming/AuthenticationException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_AuthenticationException__ +#define __javax_naming_AuthenticationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class AuthenticationException; + } + } +} + +class javax::naming::AuthenticationException : public ::javax::naming::NamingSecurityException +{ + +public: + AuthenticationException(); + AuthenticationException(::java::lang::String *); +private: + static const jlong serialVersionUID = 3678497619904568096LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_AuthenticationException__ diff --git a/libjava/javax/naming/AuthenticationNotSupportedException.h b/libjava/javax/naming/AuthenticationNotSupportedException.h new file mode 100644 index 00000000000..d55627f1286 --- /dev/null +++ b/libjava/javax/naming/AuthenticationNotSupportedException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_AuthenticationNotSupportedException__ +#define __javax_naming_AuthenticationNotSupportedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class AuthenticationNotSupportedException; + } + } +} + +class javax::naming::AuthenticationNotSupportedException : public ::javax::naming::NamingSecurityException +{ + +public: + AuthenticationNotSupportedException(); + AuthenticationNotSupportedException(::java::lang::String *); +private: + static const jlong serialVersionUID = -7149033933259492300LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_AuthenticationNotSupportedException__ diff --git a/libjava/javax/naming/BinaryRefAddr.h b/libjava/javax/naming/BinaryRefAddr.h new file mode 100644 index 00000000000..b36ccbd6ae7 --- /dev/null +++ b/libjava/javax/naming/BinaryRefAddr.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_BinaryRefAddr__ +#define __javax_naming_BinaryRefAddr__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class BinaryRefAddr; + } + } +} + +class javax::naming::BinaryRefAddr : public ::javax::naming::RefAddr +{ + +public: + BinaryRefAddr(::java::lang::String *, JArray< jbyte > *); + BinaryRefAddr(::java::lang::String *, JArray< jbyte > *, jint, jint); + virtual ::java::lang::Object * getContent(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +public: // actually package-private + static const jlong serialVersionUID = -3415254970957330361LL; +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::javax::naming::RefAddr)))) buf; + static JArray< jchar > * hex; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_BinaryRefAddr__ diff --git a/libjava/javax/naming/Binding.h b/libjava/javax/naming/Binding.h new file mode 100644 index 00000000000..06522b4065e --- /dev/null +++ b/libjava/javax/naming/Binding.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_Binding__ +#define __javax_naming_Binding__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Binding; + } + } +} + +class javax::naming::Binding : public ::javax::naming::NameClassPair +{ + +public: + Binding(::java::lang::String *, ::java::lang::Object *); + Binding(::java::lang::String *, ::java::lang::Object *, jboolean); + Binding(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *); + Binding(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *, jboolean); + virtual ::java::lang::String * getClassName(); + virtual ::java::lang::Object * getObject(); + virtual void setObject(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 8839217842691845890LL; + ::java::lang::Object * __attribute__((aligned(__alignof__( ::javax::naming::NameClassPair)))) boundObj; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_Binding__ diff --git a/libjava/javax/naming/CannotProceedException.h b/libjava/javax/naming/CannotProceedException.h new file mode 100644 index 00000000000..83fe1ec7003 --- /dev/null +++ b/libjava/javax/naming/CannotProceedException.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_CannotProceedException__ +#define __javax_naming_CannotProceedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class CannotProceedException; + class Context; + class Name; + } + } +} + +class javax::naming::CannotProceedException : public ::javax::naming::NamingException +{ + +public: + CannotProceedException(); + CannotProceedException(::java::lang::String *); + virtual ::java::util::Hashtable * getEnvironment(); + virtual void setEnvironment(::java::util::Hashtable *); + virtual ::javax::naming::Name * getRemainingNewName(); + virtual void setRemainingNewName(::javax::naming::Name *); + virtual ::javax::naming::Name * getAltName(); + virtual void setAltName(::javax::naming::Name *); + virtual ::javax::naming::Context * getAltNameCtx(); + virtual void setAltNameCtx(::javax::naming::Context *); +private: + static const jlong serialVersionUID = 1219724816191576813LL; +public: // actually protected + ::javax::naming::Name * __attribute__((aligned(__alignof__( ::javax::naming::NamingException)))) remainingNewName; + ::java::util::Hashtable * environment; + ::javax::naming::Name * altName; + ::javax::naming::Context * altNameCtx; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_CannotProceedException__ diff --git a/libjava/javax/naming/CommunicationException.h b/libjava/javax/naming/CommunicationException.h new file mode 100644 index 00000000000..1a7a118ec04 --- /dev/null +++ b/libjava/javax/naming/CommunicationException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_CommunicationException__ +#define __javax_naming_CommunicationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class CommunicationException; + } + } +} + +class javax::naming::CommunicationException : public ::javax::naming::NamingException +{ + +public: + CommunicationException(); + CommunicationException(::java::lang::String *); +private: + static const jlong serialVersionUID = 3618507780299986611LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_CommunicationException__ diff --git a/libjava/javax/naming/CompositeName.h b/libjava/javax/naming/CompositeName.h new file mode 100644 index 00000000000..8669b7f4b1a --- /dev/null +++ b/libjava/javax/naming/CompositeName.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_CompositeName__ +#define __javax_naming_CompositeName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class CompositeName; + class Name; + } + } +} + +class javax::naming::CompositeName : public ::java::lang::Object +{ + +public: + CompositeName(); +public: // actually protected + CompositeName(::java::util::Enumeration *); +public: + CompositeName(::java::lang::String *); + virtual ::javax::naming::Name * add(jint, ::java::lang::String *); + virtual ::javax::naming::Name * add(::java::lang::String *); + virtual ::javax::naming::Name * addAll(jint, ::javax::naming::Name *); + virtual ::javax::naming::Name * addAll(::javax::naming::Name *); + virtual ::java::lang::Object * clone(); + virtual jint compareTo(::java::lang::Object *); + virtual jboolean endsWith(::javax::naming::Name *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * get(jint); + virtual ::java::util::Enumeration * getAll(); + virtual ::javax::naming::Name * getPrefix(jint); + virtual ::javax::naming::Name * getSuffix(jint); + virtual jint hashCode(); + virtual jboolean isEmpty(); + virtual ::java::lang::Object * remove(jint); + virtual jint size(); + virtual jboolean startsWith(::javax::naming::Name *); + virtual ::java::lang::String * toString(); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = 1667768148915813118LL; + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) elts; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_CompositeName__ diff --git a/libjava/javax/naming/CompoundName.h b/libjava/javax/naming/CompoundName.h new file mode 100644 index 00000000000..a28724b07c6 --- /dev/null +++ b/libjava/javax/naming/CompoundName.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_CompoundName__ +#define __javax_naming_CompoundName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class CompoundName; + class Name; + } + } +} + +class javax::naming::CompoundName : public ::java::lang::Object +{ + + CompoundName(::java::util::Properties *); +public: // actually protected + CompoundName(::java::util::Enumeration *, ::java::util::Properties *); +public: + CompoundName(::java::lang::String *, ::java::util::Properties *); + virtual ::javax::naming::Name * add(jint, ::java::lang::String *); + virtual ::javax::naming::Name * add(::java::lang::String *); + virtual ::javax::naming::Name * addAll(jint, ::javax::naming::Name *); + virtual ::javax::naming::Name * addAll(::javax::naming::Name *); + virtual ::java::lang::Object * clone(); + virtual jint compareTo(::java::lang::Object *); + virtual jboolean endsWith(::javax::naming::Name *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * get(jint); + virtual ::java::util::Enumeration * getAll(); + virtual ::javax::naming::Name * getPrefix(jint); + virtual ::javax::naming::Name * getSuffix(jint); + virtual jint hashCode(); + virtual jboolean isEmpty(); + virtual ::java::lang::Object * remove(jint); + virtual jint size(); + virtual jboolean startsWith(::javax::naming::Name *); +private: + ::java::lang::String * isSpecial(::java::lang::String *, jint); +public: + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * canonicalize(::java::lang::String *); + void initializeSyntax(); + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = 3513100557083972036LL; +public: // actually protected + ::java::util::Properties * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mySyntax; +private: + ::java::util::Vector * elts; + jint direction; + ::java::lang::String * separator; + jboolean ignoreCase; + ::java::lang::String * escape; + ::java::lang::String * beginQuote; + ::java::lang::String * endQuote; + ::java::lang::String * beginQuote2; + ::java::lang::String * endQuote2; + jboolean trimBlanks; + static const jint RIGHT_TO_LEFT = -1; + static const jint LEFT_TO_RIGHT = 1; + static const jint FLAT = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_CompoundName__ diff --git a/libjava/javax/naming/ConfigurationException.h b/libjava/javax/naming/ConfigurationException.h new file mode 100644 index 00000000000..f59a32a96fe --- /dev/null +++ b/libjava/javax/naming/ConfigurationException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ConfigurationException__ +#define __javax_naming_ConfigurationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class ConfigurationException; + } + } +} + +class javax::naming::ConfigurationException : public ::javax::naming::NamingException +{ + +public: + ConfigurationException(); + ConfigurationException(::java::lang::String *); +private: + static const jlong serialVersionUID = -2535156726228855704LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ConfigurationException__ diff --git a/libjava/javax/naming/Context.h b/libjava/javax/naming/Context.h new file mode 100644 index 00000000000..c5b5ed8abe6 --- /dev/null +++ b/libjava/javax/naming/Context.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_Context__ +#define __javax_naming_Context__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + } + } +} + +class javax::naming::Context : public ::java::lang::Object +{ + +public: + virtual void bind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * lookup(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookup(::java::lang::String *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void unbind(::javax::naming::Name *) = 0; + virtual void unbind(::java::lang::String *) = 0; + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual void rename(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *) = 0; + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *) = 0; + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *) = 0; + virtual void destroySubcontext(::javax::naming::Name *) = 0; + virtual void destroySubcontext(::java::lang::String *) = 0; + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookupLink(::java::lang::String *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *) = 0; + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *) = 0; + virtual ::java::util::Hashtable * getEnvironment() = 0; + virtual void close() = 0; + virtual ::java::lang::String * getNameInNamespace() = 0; + static ::java::lang::String * INITIAL_CONTEXT_FACTORY; + static ::java::lang::String * OBJECT_FACTORIES; + static ::java::lang::String * STATE_FACTORIES; + static ::java::lang::String * URL_PKG_PREFIXES; + static ::java::lang::String * PROVIDER_URL; + static ::java::lang::String * DNS_URL; + static ::java::lang::String * AUTHORITATIVE; + static ::java::lang::String * BATCHSIZE; + static ::java::lang::String * REFERRAL; + static ::java::lang::String * SECURITY_PROTOCOL; + static ::java::lang::String * SECURITY_AUTHENTICATION; + static ::java::lang::String * SECURITY_PRINCIPAL; + static ::java::lang::String * SECURITY_CREDENTIALS; + static ::java::lang::String * LANGUAGE; + static ::java::lang::String * APPLET; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_Context__ diff --git a/libjava/javax/naming/ContextNotEmptyException.h b/libjava/javax/naming/ContextNotEmptyException.h new file mode 100644 index 00000000000..791e89d2b18 --- /dev/null +++ b/libjava/javax/naming/ContextNotEmptyException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ContextNotEmptyException__ +#define __javax_naming_ContextNotEmptyException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class ContextNotEmptyException; + } + } +} + +class javax::naming::ContextNotEmptyException : public ::javax::naming::NamingException +{ + +public: + ContextNotEmptyException(); + ContextNotEmptyException(::java::lang::String *); +private: + static const jlong serialVersionUID = 1090963683348219877LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ContextNotEmptyException__ diff --git a/libjava/javax/naming/InitialContext.h b/libjava/javax/naming/InitialContext.h new file mode 100644 index 00000000000..6eaac2e54a5 --- /dev/null +++ b/libjava/javax/naming/InitialContext.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_InitialContext__ +#define __javax_naming_InitialContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class InitialContext; + class Name; + class NameParser; + class NamingEnumeration; + } + } +} + +class javax::naming::InitialContext : public ::java::lang::Object +{ + +public: + InitialContext(::java::util::Hashtable *); +public: // actually protected + InitialContext(jboolean); +public: + InitialContext(); +public: // actually protected + virtual void init(::java::util::Hashtable *); +public: // actually package-private + static void merge(::java::util::Hashtable *, ::java::util::Hashtable *); +public: // actually protected + virtual ::javax::naming::Context * getDefaultInitCtx(); + virtual ::javax::naming::Context * getURLOrDefaultInitCtx(::javax::naming::Name *); + virtual ::javax::naming::Context * getURLOrDefaultInitCtx(::java::lang::String *); +public: + virtual void bind(::javax::naming::Name *, ::java::lang::Object *); + virtual void bind(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * lookup(::javax::naming::Name *); + virtual ::java::lang::Object * lookup(::java::lang::String *); + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *); + virtual void rebind(::java::lang::String *, ::java::lang::Object *); + virtual void unbind(::javax::naming::Name *); + virtual void unbind(::java::lang::String *); + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *); + virtual void rename(::java::lang::String *, ::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *); + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *); + virtual void destroySubcontext(::javax::naming::Name *); + virtual void destroySubcontext(::java::lang::String *); + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *); + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *); + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *); + virtual ::java::lang::Object * lookupLink(::java::lang::String *); + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *); + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *); + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *); + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *); + virtual ::java::util::Hashtable * getEnvironment(); + virtual void close(); + virtual ::java::lang::String * getNameInNamespace(); +public: // actually protected + ::javax::naming::Context * __attribute__((aligned(__alignof__( ::java::lang::Object)))) defaultInitCtx; + jboolean gotDefault; + ::java::util::Hashtable * myProps; +public: // actually package-private + static ::java::util::HashSet * colon_list; + static JArray< ::java::lang::String * > * use_properties; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_InitialContext__ diff --git a/libjava/javax/naming/InsufficientResourcesException.h b/libjava/javax/naming/InsufficientResourcesException.h new file mode 100644 index 00000000000..d3fc6603c03 --- /dev/null +++ b/libjava/javax/naming/InsufficientResourcesException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_InsufficientResourcesException__ +#define __javax_naming_InsufficientResourcesException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class InsufficientResourcesException; + } + } +} + +class javax::naming::InsufficientResourcesException : public ::javax::naming::NamingException +{ + +public: + InsufficientResourcesException(); + InsufficientResourcesException(::java::lang::String *); +private: + static const jlong serialVersionUID = 6227672693037844532LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_InsufficientResourcesException__ diff --git a/libjava/javax/naming/InterruptedNamingException.h b/libjava/javax/naming/InterruptedNamingException.h new file mode 100644 index 00000000000..f13b87bb7ad --- /dev/null +++ b/libjava/javax/naming/InterruptedNamingException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_InterruptedNamingException__ +#define __javax_naming_InterruptedNamingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class InterruptedNamingException; + } + } +} + +class javax::naming::InterruptedNamingException : public ::javax::naming::NamingException +{ + +public: + InterruptedNamingException(); + InterruptedNamingException(::java::lang::String *); +private: + static const jlong serialVersionUID = 6404516648893194728LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_InterruptedNamingException__ diff --git a/libjava/javax/naming/InvalidNameException.h b/libjava/javax/naming/InvalidNameException.h new file mode 100644 index 00000000000..47e17576825 --- /dev/null +++ b/libjava/javax/naming/InvalidNameException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_InvalidNameException__ +#define __javax_naming_InvalidNameException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class InvalidNameException; + } + } +} + +class javax::naming::InvalidNameException : public ::javax::naming::NamingException +{ + +public: + InvalidNameException(); + InvalidNameException(::java::lang::String *); +private: + static const jlong serialVersionUID = -8370672380823801105LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_InvalidNameException__ diff --git a/libjava/javax/naming/LimitExceededException.h b/libjava/javax/naming/LimitExceededException.h new file mode 100644 index 00000000000..f6d6fdafa3d --- /dev/null +++ b/libjava/javax/naming/LimitExceededException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_LimitExceededException__ +#define __javax_naming_LimitExceededException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class LimitExceededException; + } + } +} + +class javax::naming::LimitExceededException : public ::javax::naming::NamingException +{ + +public: + LimitExceededException(); + LimitExceededException(::java::lang::String *); +private: + static const jlong serialVersionUID = -776898738660207856LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_LimitExceededException__ diff --git a/libjava/javax/naming/LinkException.h b/libjava/javax/naming/LinkException.h new file mode 100644 index 00000000000..9949157b2ea --- /dev/null +++ b/libjava/javax/naming/LinkException.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_LinkException__ +#define __javax_naming_LinkException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class LinkException; + class Name; + } + } +} + +class javax::naming::LinkException : public ::javax::naming::NamingException +{ + +public: + LinkException(); + LinkException(::java::lang::String *); + virtual ::javax::naming::Name * getLinkResolvedName(); + virtual ::javax::naming::Name * getLinkRemainingName(); + virtual ::java::lang::Object * getLinkResolvedObj(); + virtual ::java::lang::String * getLinkExplanation(); + virtual void setLinkExplanation(::java::lang::String *); + virtual void setLinkResolvedName(::javax::naming::Name *); + virtual void setLinkRemainingName(::javax::naming::Name *); + virtual void setLinkResolvedObj(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(jboolean); +private: + static const jlong serialVersionUID = -7967662604076777712LL; +public: // actually protected + ::javax::naming::Name * __attribute__((aligned(__alignof__( ::javax::naming::NamingException)))) linkResolvedName; + ::java::lang::Object * linkResolvedObj; + ::javax::naming::Name * linkRemainingName; + ::java::lang::String * linkExplanation; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_LinkException__ diff --git a/libjava/javax/naming/LinkLoopException.h b/libjava/javax/naming/LinkLoopException.h new file mode 100644 index 00000000000..4ca06dd9819 --- /dev/null +++ b/libjava/javax/naming/LinkLoopException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_LinkLoopException__ +#define __javax_naming_LinkLoopException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class LinkLoopException; + } + } +} + +class javax::naming::LinkLoopException : public ::javax::naming::LinkException +{ + +public: + LinkLoopException(); + LinkLoopException(::java::lang::String *); +private: + static const jlong serialVersionUID = -3119189944325198009LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_LinkLoopException__ diff --git a/libjava/javax/naming/LinkRef.h b/libjava/javax/naming/LinkRef.h new file mode 100644 index 00000000000..3ef79dcf56d --- /dev/null +++ b/libjava/javax/naming/LinkRef.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_LinkRef__ +#define __javax_naming_LinkRef__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class LinkRef; + class Name; + } + } +} + +class javax::naming::LinkRef : public ::javax::naming::Reference +{ + +public: + LinkRef(::javax::naming::Name *); + LinkRef(::java::lang::String *); + virtual ::java::lang::String * getLinkName(); +private: + static const jlong serialVersionUID = -5386290613498931298LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_LinkRef__ diff --git a/libjava/javax/naming/MalformedLinkException.h b/libjava/javax/naming/MalformedLinkException.h new file mode 100644 index 00000000000..982cf900df3 --- /dev/null +++ b/libjava/javax/naming/MalformedLinkException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_MalformedLinkException__ +#define __javax_naming_MalformedLinkException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class MalformedLinkException; + } + } +} + +class javax::naming::MalformedLinkException : public ::javax::naming::LinkException +{ + +public: + MalformedLinkException(); + MalformedLinkException(::java::lang::String *); +private: + static const jlong serialVersionUID = -3066740437737830242LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_MalformedLinkException__ diff --git a/libjava/javax/naming/Name.h b/libjava/javax/naming/Name.h new file mode 100644 index 00000000000..4a4dd9942e8 --- /dev/null +++ b/libjava/javax/naming/Name.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_Name__ +#define __javax_naming_Name__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Name; + } + } +} + +class javax::naming::Name : public ::java::lang::Object +{ + +public: + virtual jint size() = 0; + virtual jboolean isEmpty() = 0; + virtual ::java::util::Enumeration * getAll() = 0; + virtual ::java::lang::String * get(jint) = 0; + virtual ::javax::naming::Name * getPrefix(jint) = 0; + virtual ::javax::naming::Name * getSuffix(jint) = 0; + virtual ::javax::naming::Name * add(::java::lang::String *) = 0; + virtual ::javax::naming::Name * add(jint, ::java::lang::String *) = 0; + virtual ::javax::naming::Name * addAll(::javax::naming::Name *) = 0; + virtual ::javax::naming::Name * addAll(jint, ::javax::naming::Name *) = 0; + virtual ::java::lang::Object * remove(jint) = 0; + virtual jboolean startsWith(::javax::naming::Name *) = 0; + virtual jboolean endsWith(::javax::naming::Name *) = 0; + virtual jint compareTo(::java::lang::Object *) = 0; + virtual ::java::lang::Object * clone() = 0; + static const jlong serialVersionUID = -3617482732056931635LL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_Name__ diff --git a/libjava/javax/naming/NameAlreadyBoundException.h b/libjava/javax/naming/NameAlreadyBoundException.h new file mode 100644 index 00000000000..dd6a952152d --- /dev/null +++ b/libjava/javax/naming/NameAlreadyBoundException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NameAlreadyBoundException__ +#define __javax_naming_NameAlreadyBoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NameAlreadyBoundException; + } + } +} + +class javax::naming::NameAlreadyBoundException : public ::javax::naming::NamingException +{ + +public: + NameAlreadyBoundException(); + NameAlreadyBoundException(::java::lang::String *); +private: + static const jlong serialVersionUID = -8491441000356780586LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NameAlreadyBoundException__ diff --git a/libjava/javax/naming/NameClassPair.h b/libjava/javax/naming/NameClassPair.h new file mode 100644 index 00000000000..690c31e9082 --- /dev/null +++ b/libjava/javax/naming/NameClassPair.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NameClassPair__ +#define __javax_naming_NameClassPair__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NameClassPair; + } + } +} + +class javax::naming::NameClassPair : public ::java::lang::Object +{ + +public: + NameClassPair(::java::lang::String *, ::java::lang::String *); + NameClassPair(::java::lang::String *, ::java::lang::String *, jboolean); + virtual ::java::lang::String * getClassName(); + virtual ::java::lang::String * getName(); + virtual jboolean isRelative(); + virtual void setClassName(::java::lang::String *); + virtual void setName(::java::lang::String *); + virtual void setRelative(jboolean); + virtual void setNameInNamespace(::java::lang::String *); + virtual ::java::lang::String * getNameInNamespace(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 5620776610160863339LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * className; + jboolean isRel; + ::java::lang::String * fullName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NameClassPair__ diff --git a/libjava/javax/naming/NameNotFoundException.h b/libjava/javax/naming/NameNotFoundException.h new file mode 100644 index 00000000000..079d5a02c16 --- /dev/null +++ b/libjava/javax/naming/NameNotFoundException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NameNotFoundException__ +#define __javax_naming_NameNotFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NameNotFoundException; + } + } +} + +class javax::naming::NameNotFoundException : public ::javax::naming::NamingException +{ + +public: + NameNotFoundException(); + NameNotFoundException(::java::lang::String *); +private: + static const jlong serialVersionUID = -8007156725367842053LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NameNotFoundException__ diff --git a/libjava/javax/naming/NameParser.h b/libjava/javax/naming/NameParser.h new file mode 100644 index 00000000000..502fcaec43a --- /dev/null +++ b/libjava/javax/naming/NameParser.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NameParser__ +#define __javax_naming_NameParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Name; + class NameParser; + } + } +} + +class javax::naming::NameParser : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::Name * parse(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_NameParser__ diff --git a/libjava/javax/naming/NamingEnumeration.h b/libjava/javax/naming/NamingEnumeration.h new file mode 100644 index 00000000000..7d848ce1a2c --- /dev/null +++ b/libjava/javax/naming/NamingEnumeration.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NamingEnumeration__ +#define __javax_naming_NamingEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingEnumeration; + } + } +} + +class javax::naming::NamingEnumeration : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * next() = 0; + virtual jboolean hasMore() = 0; + virtual void close() = 0; + virtual jboolean hasMoreElements() = 0; + virtual ::java::lang::Object * nextElement() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_NamingEnumeration__ diff --git a/libjava/javax/naming/NamingException.h b/libjava/javax/naming/NamingException.h new file mode 100644 index 00000000000..75a5ae9951c --- /dev/null +++ b/libjava/javax/naming/NamingException.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NamingException__ +#define __javax_naming_NamingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Name; + class NamingException; + } + } +} + +class javax::naming::NamingException : public ::java::lang::Exception +{ + +public: + NamingException(); + NamingException(::java::lang::String *); + virtual ::java::lang::Throwable * getRootCause(); + virtual void setRootCause(::java::lang::Throwable *); + virtual ::javax::naming::Name * getResolvedName(); + virtual void setResolvedName(::javax::naming::Name *); + virtual ::java::lang::Object * getResolvedObj(); + virtual void setResolvedObj(::java::lang::Object *); + virtual ::javax::naming::Name * getRemainingName(); + virtual void setRemainingName(::javax::naming::Name *); + virtual void appendRemainingName(::javax::naming::Name *); + virtual void appendRemainingComponent(::java::lang::String *); + virtual ::java::lang::String * getExplanation(); + virtual ::java::lang::String * toString(jboolean); + 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 = -1299181962103167177LL; +public: // actually protected + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) rootException; + ::javax::naming::Name * resolvedName; + ::java::lang::Object * resolvedObj; + ::javax::naming::Name * remainingName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NamingException__ diff --git a/libjava/javax/naming/NamingSecurityException.h b/libjava/javax/naming/NamingSecurityException.h new file mode 100644 index 00000000000..e2e2a491111 --- /dev/null +++ b/libjava/javax/naming/NamingSecurityException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NamingSecurityException__ +#define __javax_naming_NamingSecurityException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingSecurityException; + } + } +} + +class javax::naming::NamingSecurityException : public ::javax::naming::NamingException +{ + +public: + NamingSecurityException(); + NamingSecurityException(::java::lang::String *); +private: + static const jlong serialVersionUID = 5855287647294685775LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NamingSecurityException__ diff --git a/libjava/javax/naming/NoInitialContextException.h b/libjava/javax/naming/NoInitialContextException.h new file mode 100644 index 00000000000..e598071d16e --- /dev/null +++ b/libjava/javax/naming/NoInitialContextException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NoInitialContextException__ +#define __javax_naming_NoInitialContextException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NoInitialContextException; + } + } +} + +class javax::naming::NoInitialContextException : public ::javax::naming::NamingException +{ + +public: + NoInitialContextException(); + NoInitialContextException(::java::lang::String *); +private: + static const jlong serialVersionUID = -3413733186901258623LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NoInitialContextException__ diff --git a/libjava/javax/naming/NoPermissionException.h b/libjava/javax/naming/NoPermissionException.h new file mode 100644 index 00000000000..d96556d9006 --- /dev/null +++ b/libjava/javax/naming/NoPermissionException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NoPermissionException__ +#define __javax_naming_NoPermissionException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NoPermissionException; + } + } +} + +class javax::naming::NoPermissionException : public ::javax::naming::NamingSecurityException +{ + +public: + NoPermissionException(); + NoPermissionException(::java::lang::String *); +private: + static const jlong serialVersionUID = 8395332708699751775LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NoPermissionException__ diff --git a/libjava/javax/naming/NotContextException.h b/libjava/javax/naming/NotContextException.h new file mode 100644 index 00000000000..fd488ffb773 --- /dev/null +++ b/libjava/javax/naming/NotContextException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_NotContextException__ +#define __javax_naming_NotContextException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NotContextException; + } + } +} + +class javax::naming::NotContextException : public ::javax::naming::NamingException +{ + +public: + NotContextException(); + NotContextException(::java::lang::String *); +private: + static const jlong serialVersionUID = 849752551644540417LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_NotContextException__ diff --git a/libjava/javax/naming/OperationNotSupportedException.h b/libjava/javax/naming/OperationNotSupportedException.h new file mode 100644 index 00000000000..7bf8c0fd5e0 --- /dev/null +++ b/libjava/javax/naming/OperationNotSupportedException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_OperationNotSupportedException__ +#define __javax_naming_OperationNotSupportedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class OperationNotSupportedException; + } + } +} + +class javax::naming::OperationNotSupportedException : public ::javax::naming::NamingException +{ + +public: + OperationNotSupportedException(); + OperationNotSupportedException(::java::lang::String *); +private: + static const jlong serialVersionUID = 5493232822427682064LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_OperationNotSupportedException__ diff --git a/libjava/javax/naming/PartialResultException.h b/libjava/javax/naming/PartialResultException.h new file mode 100644 index 00000000000..9de177ae902 --- /dev/null +++ b/libjava/javax/naming/PartialResultException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_PartialResultException__ +#define __javax_naming_PartialResultException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class PartialResultException; + } + } +} + +class javax::naming::PartialResultException : public ::javax::naming::NamingException +{ + +public: + PartialResultException(); + PartialResultException(::java::lang::String *); +private: + static const jlong serialVersionUID = 2572144970049426786LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_PartialResultException__ diff --git a/libjava/javax/naming/RefAddr.h b/libjava/javax/naming/RefAddr.h new file mode 100644 index 00000000000..f124428fd2d --- /dev/null +++ b/libjava/javax/naming/RefAddr.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_RefAddr__ +#define __javax_naming_RefAddr__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class RefAddr; + } + } +} + +class javax::naming::RefAddr : public ::java::lang::Object +{ + +public: // actually protected + RefAddr(::java::lang::String *); +public: + virtual ::java::lang::String * getType(); + virtual ::java::lang::Object * getContent() = 0; + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) addrType; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_RefAddr__ diff --git a/libjava/javax/naming/Reference.h b/libjava/javax/naming/Reference.h new file mode 100644 index 00000000000..62325ce333a --- /dev/null +++ b/libjava/javax/naming/Reference.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_Reference__ +#define __javax_naming_Reference__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class RefAddr; + class Reference; + } + } +} + +class javax::naming::Reference : public ::java::lang::Object +{ + +public: + Reference(::java::lang::String *); + Reference(::java::lang::String *, ::javax::naming::RefAddr *); + Reference(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + Reference(::java::lang::String *, ::javax::naming::RefAddr *, ::java::lang::String *, ::java::lang::String *); + virtual void add(jint, ::javax::naming::RefAddr *); + virtual void add(::javax::naming::RefAddr *); + virtual void clear(); + virtual ::java::lang::Object * clone(); +private: + jboolean equals(::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual ::javax::naming::RefAddr * get(jint); + virtual ::javax::naming::RefAddr * get(::java::lang::String *); + virtual ::java::util::Enumeration * getAll(); + virtual ::java::lang::String * getClassName(); + virtual ::java::lang::String * getFactoryClassLocation(); + virtual ::java::lang::String * getFactoryClassName(); + virtual jint hashCode(); + virtual ::java::lang::Object * remove(jint); + virtual jint size(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -1673475790065791735LL; +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) addrs; + ::java::lang::String * classFactory; + ::java::lang::String * classFactoryLocation; + ::java::lang::String * className; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_Reference__ diff --git a/libjava/javax/naming/Referenceable.h b/libjava/javax/naming/Referenceable.h new file mode 100644 index 00000000000..a2d09b6863f --- /dev/null +++ b/libjava/javax/naming/Referenceable.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_Referenceable__ +#define __javax_naming_Referenceable__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Reference; + class Referenceable; + } + } +} + +class javax::naming::Referenceable : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::Reference * getReference() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_Referenceable__ diff --git a/libjava/javax/naming/ReferralException.h b/libjava/javax/naming/ReferralException.h new file mode 100644 index 00000000000..7c26d973bff --- /dev/null +++ b/libjava/javax/naming/ReferralException.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ReferralException__ +#define __javax_naming_ReferralException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class ReferralException; + } + } +} + +class javax::naming::ReferralException : public ::javax::naming::NamingException +{ + +public: // actually protected + ReferralException(); + ReferralException(::java::lang::String *); +public: + virtual ::java::lang::Object * getReferralInfo() = 0; + virtual ::javax::naming::Context * getReferralContext() = 0; + virtual ::javax::naming::Context * getReferralContext(::java::util::Hashtable *) = 0; + virtual jboolean skipReferral() = 0; + virtual void retryReferral() = 0; +private: + static const jlong serialVersionUID = -2881363844695698876LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ReferralException__ diff --git a/libjava/javax/naming/ServiceUnavailableException.h b/libjava/javax/naming/ServiceUnavailableException.h new file mode 100644 index 00000000000..4f90524535a --- /dev/null +++ b/libjava/javax/naming/ServiceUnavailableException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ServiceUnavailableException__ +#define __javax_naming_ServiceUnavailableException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class ServiceUnavailableException; + } + } +} + +class javax::naming::ServiceUnavailableException : public ::javax::naming::NamingException +{ + +public: + ServiceUnavailableException(); + ServiceUnavailableException(::java::lang::String *); +private: + static const jlong serialVersionUID = -4996964726566773444LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ServiceUnavailableException__ diff --git a/libjava/javax/naming/SizeLimitExceededException.h b/libjava/javax/naming/SizeLimitExceededException.h new file mode 100644 index 00000000000..d4744b1241c --- /dev/null +++ b/libjava/javax/naming/SizeLimitExceededException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_SizeLimitExceededException__ +#define __javax_naming_SizeLimitExceededException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class SizeLimitExceededException; + } + } +} + +class javax::naming::SizeLimitExceededException : public ::javax::naming::LimitExceededException +{ + +public: + SizeLimitExceededException(); + SizeLimitExceededException(::java::lang::String *); +private: + static const jlong serialVersionUID = 7129289564879168579LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_SizeLimitExceededException__ diff --git a/libjava/javax/naming/StringRefAddr.h b/libjava/javax/naming/StringRefAddr.h new file mode 100644 index 00000000000..c7bd0c84ba4 --- /dev/null +++ b/libjava/javax/naming/StringRefAddr.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_StringRefAddr__ +#define __javax_naming_StringRefAddr__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class StringRefAddr; + } + } +} + +class javax::naming::StringRefAddr : public ::javax::naming::RefAddr +{ + +public: + StringRefAddr(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::Object * getContent(); +private: + static const jlong serialVersionUID = -8913762495138505527LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::naming::RefAddr)))) contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_StringRefAddr__ diff --git a/libjava/javax/naming/TimeLimitExceededException.h b/libjava/javax/naming/TimeLimitExceededException.h new file mode 100644 index 00000000000..4c555fbb27c --- /dev/null +++ b/libjava/javax/naming/TimeLimitExceededException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_TimeLimitExceededException__ +#define __javax_naming_TimeLimitExceededException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class TimeLimitExceededException; + } + } +} + +class javax::naming::TimeLimitExceededException : public ::javax::naming::LimitExceededException +{ + +public: + TimeLimitExceededException(); + TimeLimitExceededException(::java::lang::String *); +private: + static const jlong serialVersionUID = -3597009011385034696LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_TimeLimitExceededException__ diff --git a/libjava/javax/naming/directory/Attribute.h b/libjava/javax/naming/directory/Attribute.h new file mode 100644 index 00000000000..4c8a92d270c --- /dev/null +++ b/libjava/javax/naming/directory/Attribute.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_Attribute__ +#define __javax_naming_directory_Attribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingEnumeration; + namespace directory + { + class Attribute; + class DirContext; + } + } + } +} + +class javax::naming::directory::Attribute : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::NamingEnumeration * getAll() = 0; + virtual ::java::lang::Object * get() = 0; + virtual jint size() = 0; + virtual ::java::lang::String * getID() = 0; + virtual jboolean contains(::java::lang::Object *) = 0; + virtual jboolean add(::java::lang::Object *) = 0; + virtual jboolean remove(::java::lang::Object *) = 0; + virtual void clear() = 0; + virtual ::javax::naming::directory::DirContext * getAttributeSyntaxDefinition() = 0; + virtual ::javax::naming::directory::DirContext * getAttributeDefinition() = 0; + virtual ::java::lang::Object * clone() = 0; + virtual jboolean isOrdered() = 0; + virtual ::java::lang::Object * get(jint) = 0; + virtual ::java::lang::Object * remove(jint) = 0; + virtual void add(jint, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * set(jint, ::java::lang::Object *) = 0; + static const jlong serialVersionUID = 8707690322213556804LL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_directory_Attribute__ diff --git a/libjava/javax/naming/directory/AttributeInUseException.h b/libjava/javax/naming/directory/AttributeInUseException.h new file mode 100644 index 00000000000..5062ab562ef --- /dev/null +++ b/libjava/javax/naming/directory/AttributeInUseException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_AttributeInUseException__ +#define __javax_naming_directory_AttributeInUseException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class AttributeInUseException; + } + } + } +} + +class javax::naming::directory::AttributeInUseException : public ::javax::naming::NamingException +{ + +public: + AttributeInUseException(); + AttributeInUseException(::java::lang::String *); +private: + static const jlong serialVersionUID = 4437710305529322564LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_AttributeInUseException__ diff --git a/libjava/javax/naming/directory/AttributeModificationException.h b/libjava/javax/naming/directory/AttributeModificationException.h new file mode 100644 index 00000000000..e113e32dac7 --- /dev/null +++ b/libjava/javax/naming/directory/AttributeModificationException.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_AttributeModificationException__ +#define __javax_naming_directory_AttributeModificationException__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class AttributeModificationException; + class ModificationItem; + } + } + } +} + +class javax::naming::directory::AttributeModificationException : public ::javax::naming::NamingException +{ + +public: + AttributeModificationException(); + AttributeModificationException(::java::lang::String *); + virtual void setUnexecutedModifications(JArray< ::javax::naming::directory::ModificationItem * > *); + virtual JArray< ::javax::naming::directory::ModificationItem * > * getUnexecutedModifications(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 8060676069678710186LL; + JArray< ::javax::naming::directory::ModificationItem * > * __attribute__((aligned(__alignof__( ::javax::naming::NamingException)))) unexecs; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_AttributeModificationException__ diff --git a/libjava/javax/naming/directory/Attributes.h b/libjava/javax/naming/directory/Attributes.h new file mode 100644 index 00000000000..31525e190bc --- /dev/null +++ b/libjava/javax/naming/directory/Attributes.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_Attributes__ +#define __javax_naming_directory_Attributes__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingEnumeration; + namespace directory + { + class Attribute; + class Attributes; + } + } + } +} + +class javax::naming::directory::Attributes : public ::java::lang::Object +{ + +public: + virtual jboolean isCaseIgnored() = 0; + virtual jint size() = 0; + virtual ::javax::naming::directory::Attribute * get(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * getAll() = 0; + virtual ::javax::naming::NamingEnumeration * getIDs() = 0; + virtual ::javax::naming::directory::Attribute * put(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::javax::naming::directory::Attribute * put(::javax::naming::directory::Attribute *) = 0; + virtual ::javax::naming::directory::Attribute * remove(::java::lang::String *) = 0; + virtual ::java::lang::Object * clone() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_directory_Attributes__ diff --git a/libjava/javax/naming/directory/BasicAttribute$BasicAttributeEnumeration.h b/libjava/javax/naming/directory/BasicAttribute$BasicAttributeEnumeration.h new file mode 100644 index 00000000000..df2a00da452 --- /dev/null +++ b/libjava/javax/naming/directory/BasicAttribute$BasicAttributeEnumeration.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_BasicAttribute$BasicAttributeEnumeration__ +#define __javax_naming_directory_BasicAttribute$BasicAttributeEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class BasicAttribute; + class BasicAttribute$BasicAttributeEnumeration; + } + } + } +} + +class javax::naming::directory::BasicAttribute$BasicAttributeEnumeration : public ::java::lang::Object +{ + +public: + BasicAttribute$BasicAttributeEnumeration(::javax::naming::directory::BasicAttribute *); + virtual void close(); + virtual jboolean hasMore(); + virtual ::java::lang::Object * next(); + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) where; + ::javax::naming::directory::BasicAttribute * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_BasicAttribute$BasicAttributeEnumeration__ diff --git a/libjava/javax/naming/directory/BasicAttribute.h b/libjava/javax/naming/directory/BasicAttribute.h new file mode 100644 index 00000000000..2d56a62b0ce --- /dev/null +++ b/libjava/javax/naming/directory/BasicAttribute.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_BasicAttribute__ +#define __javax_naming_directory_BasicAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingEnumeration; + namespace directory + { + class BasicAttribute; + class DirContext; + } + } + } +} + +class javax::naming::directory::BasicAttribute : public ::java::lang::Object +{ + + BasicAttribute(); +public: + BasicAttribute(::java::lang::String *); + BasicAttribute(::java::lang::String *, jboolean); + BasicAttribute(::java::lang::String *, ::java::lang::Object *); + BasicAttribute(::java::lang::String *, ::java::lang::Object *, jboolean); + virtual void add(jint, ::java::lang::Object *); + virtual jboolean add(::java::lang::Object *); + virtual void clear(); + virtual ::java::lang::Object * clone(); + virtual jboolean contains(::java::lang::Object *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Object * get(); + virtual ::java::lang::Object * get(jint); + virtual ::javax::naming::NamingEnumeration * getAll(); + virtual ::javax::naming::directory::DirContext * getAttributeDefinition(); + virtual ::javax::naming::directory::DirContext * getAttributeSyntaxDefinition(); + virtual ::java::lang::String * getID(); + virtual jint hashCode(); + virtual jboolean isOrdered(); + virtual ::java::lang::Object * remove(jint); + virtual jboolean remove(::java::lang::Object *); + virtual ::java::lang::Object * set(jint, ::java::lang::Object *); + virtual jint size(); + virtual ::java::lang::String * toString(); +private: + jboolean equals(::java::lang::Object *, ::java::lang::Object *); + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = 6743528196119291326LL; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attrID; + jboolean ordered; + ::java::util::Vector * values; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_BasicAttribute__ diff --git a/libjava/javax/naming/directory/BasicAttributes$BasicAttributesEnumeration.h b/libjava/javax/naming/directory/BasicAttributes$BasicAttributesEnumeration.h new file mode 100644 index 00000000000..598b2276741 --- /dev/null +++ b/libjava/javax/naming/directory/BasicAttributes$BasicAttributesEnumeration.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_BasicAttributes$BasicAttributesEnumeration__ +#define __javax_naming_directory_BasicAttributes$BasicAttributesEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class BasicAttributes; + class BasicAttributes$BasicAttributesEnumeration; + } + } + } +} + +class javax::naming::directory::BasicAttributes$BasicAttributesEnumeration : public ::java::lang::Object +{ + +public: + BasicAttributes$BasicAttributesEnumeration(::javax::naming::directory::BasicAttributes *, jboolean); + virtual void close(); + virtual jboolean hasMore(); + virtual ::java::lang::Object * next(); + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) where; + jboolean id; + ::javax::naming::directory::BasicAttributes * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_BasicAttributes$BasicAttributesEnumeration__ diff --git a/libjava/javax/naming/directory/BasicAttributes.h b/libjava/javax/naming/directory/BasicAttributes.h new file mode 100644 index 00000000000..89436721f18 --- /dev/null +++ b/libjava/javax/naming/directory/BasicAttributes.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_BasicAttributes__ +#define __javax_naming_directory_BasicAttributes__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingEnumeration; + namespace directory + { + class Attribute; + class BasicAttributes; + } + } + } +} + +class javax::naming::directory::BasicAttributes : public ::java::lang::Object +{ + +public: + BasicAttributes(); + BasicAttributes(jboolean); + BasicAttributes(::java::lang::String *, ::java::lang::Object *); + BasicAttributes(::java::lang::String *, ::java::lang::Object *, jboolean); + virtual ::java::lang::Object * clone(); + virtual jboolean equals(::java::lang::Object *); + virtual ::javax::naming::directory::Attribute * get(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * getAll(); + virtual ::javax::naming::NamingEnumeration * getIDs(); + virtual jint hashCode(); + virtual jboolean isCaseIgnored(); + virtual ::javax::naming::directory::Attribute * put(::javax::naming::directory::Attribute *); + virtual ::javax::naming::directory::Attribute * put(::java::lang::String *, ::java::lang::Object *); + virtual ::javax::naming::directory::Attribute * remove(::java::lang::String *); + virtual jint size(); + virtual ::java::lang::String * toString(); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = 4980164073184639448LL; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) ignoreCase; +public: // actually package-private + ::java::util::Vector * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_BasicAttributes__ diff --git a/libjava/javax/naming/directory/DirContext.h b/libjava/javax/naming/directory/DirContext.h new file mode 100644 index 00000000000..41126211b4b --- /dev/null +++ b/libjava/javax/naming/directory/DirContext.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_DirContext__ +#define __javax_naming_directory_DirContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + namespace directory + { + class Attributes; + class DirContext; + class ModificationItem; + class SearchControls; + } + } + } +} + +class javax::naming::directory::DirContext : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *, JArray< ::java::lang::String * > *) = 0; + virtual void modifyAttributes(::javax::naming::Name *, jint, ::javax::naming::directory::Attributes *) = 0; + virtual void modifyAttributes(::java::lang::String *, jint, ::javax::naming::directory::Attributes *) = 0; + virtual void modifyAttributes(::javax::naming::Name *, JArray< ::javax::naming::directory::ModificationItem * > *) = 0; + virtual void modifyAttributes(::java::lang::String *, JArray< ::javax::naming::directory::ModificationItem * > *) = 0; + virtual void bind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * createSubcontext(::javax::naming::Name *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * createSubcontext(::java::lang::String *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * getSchema(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::DirContext * getSchema(::java::lang::String *) = 0; + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *) = 0; + virtual void bind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * lookup(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookup(::java::lang::String *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void unbind(::javax::naming::Name *) = 0; + virtual void unbind(::java::lang::String *) = 0; + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual void rename(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *) = 0; + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *) = 0; + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *) = 0; + virtual void destroySubcontext(::javax::naming::Name *) = 0; + virtual void destroySubcontext(::java::lang::String *) = 0; + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookupLink(::java::lang::String *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *) = 0; + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *) = 0; + virtual ::java::util::Hashtable * getEnvironment() = 0; + virtual void close() = 0; + virtual ::java::lang::String * getNameInNamespace() = 0; + static const jint ADD_ATTRIBUTE = 1; + static const jint REPLACE_ATTRIBUTE = 2; + static const jint REMOVE_ATTRIBUTE = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_directory_DirContext__ diff --git a/libjava/javax/naming/directory/InitialDirContext.h b/libjava/javax/naming/directory/InitialDirContext.h new file mode 100644 index 00000000000..6e8712eb66a --- /dev/null +++ b/libjava/javax/naming/directory/InitialDirContext.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_InitialDirContext__ +#define __javax_naming_directory_InitialDirContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class Name; + class NamingEnumeration; + namespace directory + { + class Attributes; + class DirContext; + class InitialDirContext; + class ModificationItem; + class SearchControls; + } + } + } +} + +class javax::naming::directory::InitialDirContext : public ::javax::naming::InitialContext +{ + +public: + InitialDirContext(); +public: // actually protected + InitialDirContext(jboolean); +public: + InitialDirContext(::java::util::Hashtable *); +private: + ::javax::naming::directory::DirContext * getURLOrDefaultInitDirCtx(::javax::naming::Name *); + ::javax::naming::directory::DirContext * getURLOrDefaultInitDirCtx(::java::lang::String *); +public: + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *); + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *, JArray< ::java::lang::String * > *); + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *); + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *, JArray< ::java::lang::String * > *); + virtual void modifyAttributes(::javax::naming::Name *, jint, ::javax::naming::directory::Attributes *); + virtual void modifyAttributes(::java::lang::String *, jint, ::javax::naming::directory::Attributes *); + virtual void modifyAttributes(::javax::naming::Name *, JArray< ::javax::naming::directory::ModificationItem * > *); + virtual void modifyAttributes(::java::lang::String *, JArray< ::javax::naming::directory::ModificationItem * > *); + virtual void bind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *); + virtual void bind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *); + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *); + virtual void rebind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *); + virtual ::javax::naming::directory::DirContext * createSubcontext(::javax::naming::Name *, ::javax::naming::directory::Attributes *); + virtual ::javax::naming::directory::DirContext * createSubcontext(::java::lang::String *, ::javax::naming::directory::Attributes *); + virtual ::javax::naming::directory::DirContext * getSchema(::javax::naming::Name *); + virtual ::javax::naming::directory::DirContext * getSchema(::java::lang::String *); + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::javax::naming::Name *); + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::java::lang::String *); + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *); + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *); + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *); + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *); + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, ::javax::naming::directory::SearchControls *); + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, ::javax::naming::directory::SearchControls *); + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *); + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *); + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_InitialDirContext__ diff --git a/libjava/javax/naming/directory/InvalidAttributeIdentifierException.h b/libjava/javax/naming/directory/InvalidAttributeIdentifierException.h new file mode 100644 index 00000000000..23c341a4aad --- /dev/null +++ b/libjava/javax/naming/directory/InvalidAttributeIdentifierException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_InvalidAttributeIdentifierException__ +#define __javax_naming_directory_InvalidAttributeIdentifierException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class InvalidAttributeIdentifierException; + } + } + } +} + +class javax::naming::directory::InvalidAttributeIdentifierException : public ::javax::naming::NamingException +{ + +public: + InvalidAttributeIdentifierException(); + InvalidAttributeIdentifierException(::java::lang::String *); +private: + static const jlong serialVersionUID = -9036920266322999923LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_InvalidAttributeIdentifierException__ diff --git a/libjava/javax/naming/directory/InvalidAttributeValueException.h b/libjava/javax/naming/directory/InvalidAttributeValueException.h new file mode 100644 index 00000000000..c8d55fe366c --- /dev/null +++ b/libjava/javax/naming/directory/InvalidAttributeValueException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_InvalidAttributeValueException__ +#define __javax_naming_directory_InvalidAttributeValueException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class InvalidAttributeValueException; + } + } + } +} + +class javax::naming::directory::InvalidAttributeValueException : public ::javax::naming::NamingException +{ + +public: + InvalidAttributeValueException(); + InvalidAttributeValueException(::java::lang::String *); +private: + static const jlong serialVersionUID = 8720050295499275011LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_InvalidAttributeValueException__ diff --git a/libjava/javax/naming/directory/InvalidAttributesException.h b/libjava/javax/naming/directory/InvalidAttributesException.h new file mode 100644 index 00000000000..3bbb5bfb554 --- /dev/null +++ b/libjava/javax/naming/directory/InvalidAttributesException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_InvalidAttributesException__ +#define __javax_naming_directory_InvalidAttributesException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class InvalidAttributesException; + } + } + } +} + +class javax::naming::directory::InvalidAttributesException : public ::javax::naming::NamingException +{ + +public: + InvalidAttributesException(); + InvalidAttributesException(::java::lang::String *); +private: + static const jlong serialVersionUID = 2607612850539889765LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_InvalidAttributesException__ diff --git a/libjava/javax/naming/directory/InvalidSearchControlsException.h b/libjava/javax/naming/directory/InvalidSearchControlsException.h new file mode 100644 index 00000000000..58884397513 --- /dev/null +++ b/libjava/javax/naming/directory/InvalidSearchControlsException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_InvalidSearchControlsException__ +#define __javax_naming_directory_InvalidSearchControlsException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class InvalidSearchControlsException; + } + } + } +} + +class javax::naming::directory::InvalidSearchControlsException : public ::javax::naming::NamingException +{ + +public: + InvalidSearchControlsException(); + InvalidSearchControlsException(::java::lang::String *); +private: + static const jlong serialVersionUID = -5124108943352665777LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_InvalidSearchControlsException__ diff --git a/libjava/javax/naming/directory/InvalidSearchFilterException.h b/libjava/javax/naming/directory/InvalidSearchFilterException.h new file mode 100644 index 00000000000..5901c07bc4a --- /dev/null +++ b/libjava/javax/naming/directory/InvalidSearchFilterException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_InvalidSearchFilterException__ +#define __javax_naming_directory_InvalidSearchFilterException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class InvalidSearchFilterException; + } + } + } +} + +class javax::naming::directory::InvalidSearchFilterException : public ::javax::naming::NamingException +{ + +public: + InvalidSearchFilterException(); + InvalidSearchFilterException(::java::lang::String *); +private: + static const jlong serialVersionUID = 2902700940682875441LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_InvalidSearchFilterException__ diff --git a/libjava/javax/naming/directory/ModificationItem.h b/libjava/javax/naming/directory/ModificationItem.h new file mode 100644 index 00000000000..faf055b9086 --- /dev/null +++ b/libjava/javax/naming/directory/ModificationItem.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_ModificationItem__ +#define __javax_naming_directory_ModificationItem__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class Attribute; + class ModificationItem; + } + } + } +} + +class javax::naming::directory::ModificationItem : public ::java::lang::Object +{ + +public: + ModificationItem(jint, ::javax::naming::directory::Attribute *); + virtual jint getModificationOp(); + virtual ::javax::naming::directory::Attribute * getAttribute(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 7573258562534746850LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) mod_op; + ::javax::naming::directory::Attribute * attr; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_ModificationItem__ diff --git a/libjava/javax/naming/directory/NoSuchAttributeException.h b/libjava/javax/naming/directory/NoSuchAttributeException.h new file mode 100644 index 00000000000..501daeef868 --- /dev/null +++ b/libjava/javax/naming/directory/NoSuchAttributeException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_NoSuchAttributeException__ +#define __javax_naming_directory_NoSuchAttributeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class NoSuchAttributeException; + } + } + } +} + +class javax::naming::directory::NoSuchAttributeException : public ::javax::naming::NamingException +{ + +public: + NoSuchAttributeException(); + NoSuchAttributeException(::java::lang::String *); +private: + static const jlong serialVersionUID = 4836415647935888137LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_NoSuchAttributeException__ diff --git a/libjava/javax/naming/directory/SchemaViolationException.h b/libjava/javax/naming/directory/SchemaViolationException.h new file mode 100644 index 00000000000..444f14c6cd7 --- /dev/null +++ b/libjava/javax/naming/directory/SchemaViolationException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_SchemaViolationException__ +#define __javax_naming_directory_SchemaViolationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class SchemaViolationException; + } + } + } +} + +class javax::naming::directory::SchemaViolationException : public ::javax::naming::NamingException +{ + +public: + SchemaViolationException(); + SchemaViolationException(::java::lang::String *); +private: + static const jlong serialVersionUID = -3041762429525049663LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_SchemaViolationException__ diff --git a/libjava/javax/naming/directory/SearchControls.h b/libjava/javax/naming/directory/SearchControls.h new file mode 100644 index 00000000000..1c39ba8f84b --- /dev/null +++ b/libjava/javax/naming/directory/SearchControls.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_SearchControls__ +#define __javax_naming_directory_SearchControls__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class SearchControls; + } + } + } +} + +class javax::naming::directory::SearchControls : public ::java::lang::Object +{ + +public: + SearchControls(); + SearchControls(jint, jlong, jint, JArray< ::java::lang::String * > *, jboolean, jboolean); + virtual jint getSearchScope(); + virtual jint getTimeLimit(); + virtual jboolean getDerefLinkFlag(); + virtual jboolean getReturningObjFlag(); + virtual jlong getCountLimit(); + virtual JArray< ::java::lang::String * > * getReturningAttributes(); + virtual void setSearchScope(jint); + virtual void setTimeLimit(jint); + virtual void setDerefLinkFlag(jboolean); + virtual void setReturningObjFlag(jboolean); + virtual void setCountLimit(jlong); + virtual void setReturningAttributes(JArray< ::java::lang::String * > *); +private: + static const jlong serialVersionUID = -2480540967773454797LL; +public: + static const jint OBJECT_SCOPE = 0; + static const jint ONELEVEL_SCOPE = 1; + static const jint SUBTREE_SCOPE = 2; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) searchScope; + jint timeLimit; + jboolean derefLink; + jboolean returnObj; + jlong countLimit; + JArray< ::java::lang::String * > * attributesToReturn; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_SearchControls__ diff --git a/libjava/javax/naming/directory/SearchResult.h b/libjava/javax/naming/directory/SearchResult.h new file mode 100644 index 00000000000..ac89020a465 --- /dev/null +++ b/libjava/javax/naming/directory/SearchResult.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_directory_SearchResult__ +#define __javax_naming_directory_SearchResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class Attributes; + class SearchResult; + } + } + } +} + +class javax::naming::directory::SearchResult : public ::javax::naming::Binding +{ + +public: + SearchResult(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *); + SearchResult(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *, jboolean); + SearchResult(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *); + SearchResult(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *, jboolean); + virtual ::javax::naming::directory::Attributes * getAttributes(); + virtual void setAttributes(::javax::naming::directory::Attributes *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -9158063327699723172LL; + ::javax::naming::directory::Attributes * __attribute__((aligned(__alignof__( ::javax::naming::Binding)))) attrs; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_directory_SearchResult__ diff --git a/libjava/javax/naming/event/EventContext.h b/libjava/javax/naming/event/EventContext.h new file mode 100644 index 00000000000..3fbbfc2a561 --- /dev/null +++ b/libjava/javax/naming/event/EventContext.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_event_EventContext__ +#define __javax_naming_event_EventContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + namespace event + { + class EventContext; + class NamingListener; + } + } + } +} + +class javax::naming::event::EventContext : public ::java::lang::Object +{ + +public: + virtual void addNamingListener(::javax::naming::Name *, jint, ::javax::naming::event::NamingListener *) = 0; + virtual void addNamingListener(::java::lang::String *, jint, ::javax::naming::event::NamingListener *) = 0; + virtual void removeNamingListener(::javax::naming::event::NamingListener *) = 0; + virtual jboolean targetMustExist() = 0; + virtual void bind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * lookup(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookup(::java::lang::String *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void unbind(::javax::naming::Name *) = 0; + virtual void unbind(::java::lang::String *) = 0; + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual void rename(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *) = 0; + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *) = 0; + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *) = 0; + virtual void destroySubcontext(::javax::naming::Name *) = 0; + virtual void destroySubcontext(::java::lang::String *) = 0; + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookupLink(::java::lang::String *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *) = 0; + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *) = 0; + virtual ::java::util::Hashtable * getEnvironment() = 0; + virtual void close() = 0; + virtual ::java::lang::String * getNameInNamespace() = 0; + static const jint OBJECT_SCOPE = 0; + static const jint ONELEVEL_SCOPE = 1; + static const jint SUBTREE_SCOPE = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_event_EventContext__ diff --git a/libjava/javax/naming/event/EventDirContext.h b/libjava/javax/naming/event/EventDirContext.h new file mode 100644 index 00000000000..2efa0c28495 --- /dev/null +++ b/libjava/javax/naming/event/EventDirContext.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_event_EventDirContext__ +#define __javax_naming_event_EventDirContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + namespace directory + { + class Attributes; + class DirContext; + class ModificationItem; + class SearchControls; + } + namespace event + { + class EventDirContext; + class NamingListener; + } + } + } +} + +class javax::naming::event::EventDirContext : public ::java::lang::Object +{ + +public: + virtual void addNamingListener(::javax::naming::Name *, ::java::lang::String *, ::javax::naming::directory::SearchControls *, ::javax::naming::event::NamingListener *) = 0; + virtual void addNamingListener(::java::lang::String *, ::java::lang::String *, ::javax::naming::directory::SearchControls *, ::javax::naming::event::NamingListener *) = 0; + virtual void addNamingListener(::javax::naming::Name *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *, ::javax::naming::event::NamingListener *) = 0; + virtual void addNamingListener(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *, ::javax::naming::event::NamingListener *) = 0; + virtual void addNamingListener(::javax::naming::Name *, jint, ::javax::naming::event::NamingListener *) = 0; + virtual void addNamingListener(::java::lang::String *, jint, ::javax::naming::event::NamingListener *) = 0; + virtual void removeNamingListener(::javax::naming::event::NamingListener *) = 0; + virtual jboolean targetMustExist() = 0; + virtual void bind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * lookup(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookup(::java::lang::String *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void unbind(::javax::naming::Name *) = 0; + virtual void unbind(::java::lang::String *) = 0; + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual void rename(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *) = 0; + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *) = 0; + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *) = 0; + virtual void destroySubcontext(::javax::naming::Name *) = 0; + virtual void destroySubcontext(::java::lang::String *) = 0; + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookupLink(::java::lang::String *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *) = 0; + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *) = 0; + virtual ::java::util::Hashtable * getEnvironment() = 0; + virtual void close() = 0; + virtual ::java::lang::String * getNameInNamespace() = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *, JArray< ::java::lang::String * > *) = 0; + virtual void modifyAttributes(::javax::naming::Name *, jint, ::javax::naming::directory::Attributes *) = 0; + virtual void modifyAttributes(::java::lang::String *, jint, ::javax::naming::directory::Attributes *) = 0; + virtual void modifyAttributes(::javax::naming::Name *, JArray< ::javax::naming::directory::ModificationItem * > *) = 0; + virtual void modifyAttributes(::java::lang::String *, JArray< ::javax::naming::directory::ModificationItem * > *) = 0; + virtual void bind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * createSubcontext(::javax::naming::Name *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * createSubcontext(::java::lang::String *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * getSchema(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::DirContext * getSchema(::java::lang::String *) = 0; + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_event_EventDirContext__ diff --git a/libjava/javax/naming/event/NamespaceChangeListener.h b/libjava/javax/naming/event/NamespaceChangeListener.h new file mode 100644 index 00000000000..e34f1863241 --- /dev/null +++ b/libjava/javax/naming/event/NamespaceChangeListener.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_event_NamespaceChangeListener__ +#define __javax_naming_event_NamespaceChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace event + { + class NamespaceChangeListener; + class NamingEvent; + class NamingExceptionEvent; + } + } + } +} + +class javax::naming::event::NamespaceChangeListener : public ::java::lang::Object +{ + +public: + virtual void objectAdded(::javax::naming::event::NamingEvent *) = 0; + virtual void objectRemoved(::javax::naming::event::NamingEvent *) = 0; + virtual void objectRenamed(::javax::naming::event::NamingEvent *) = 0; + virtual void namingExceptionThrown(::javax::naming::event::NamingExceptionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_event_NamespaceChangeListener__ diff --git a/libjava/javax/naming/event/NamingEvent.h b/libjava/javax/naming/event/NamingEvent.h new file mode 100644 index 00000000000..aad8b0e058d --- /dev/null +++ b/libjava/javax/naming/event/NamingEvent.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_event_NamingEvent__ +#define __javax_naming_event_NamingEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Binding; + namespace event + { + class EventContext; + class NamingEvent; + class NamingListener; + } + } + } +} + +class javax::naming::event::NamingEvent : public ::java::util::EventObject +{ + +public: + NamingEvent(::javax::naming::event::EventContext *, jint, ::javax::naming::Binding *, ::javax::naming::Binding *, ::java::lang::Object *); + virtual jint getType(); + virtual ::javax::naming::event::EventContext * getEventContext(); + virtual ::javax::naming::Binding * getOldBinding(); + virtual ::javax::naming::Binding * getNewBinding(); + virtual ::java::lang::Object * getChangeInfo(); + virtual void dispatch(::javax::naming::event::NamingListener *); +private: + static const jlong serialVersionUID = -7126752885365133499LL; +public: + static const jint OBJECT_ADDED = 0; + static const jint OBJECT_REMOVED = 1; + static const jint OBJECT_RENAMED = 2; + static const jint OBJECT_CHANGED = 3; +public: // actually protected + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) changeInfo; + jint type; + ::javax::naming::Binding * oldBinding; + ::javax::naming::Binding * newBinding; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_event_NamingEvent__ diff --git a/libjava/javax/naming/event/NamingExceptionEvent.h b/libjava/javax/naming/event/NamingExceptionEvent.h new file mode 100644 index 00000000000..9aee3c513ef --- /dev/null +++ b/libjava/javax/naming/event/NamingExceptionEvent.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_event_NamingExceptionEvent__ +#define __javax_naming_event_NamingExceptionEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingException; + namespace event + { + class EventContext; + class NamingExceptionEvent; + class NamingListener; + } + } + } +} + +class javax::naming::event::NamingExceptionEvent : public ::java::util::EventObject +{ + +public: + NamingExceptionEvent(::javax::naming::event::EventContext *, ::javax::naming::NamingException *); + virtual ::javax::naming::NamingException * getException(); + virtual ::javax::naming::event::EventContext * getEventContext(); + virtual void dispatch(::javax::naming::event::NamingListener *); +private: + static const jlong serialVersionUID = -4877678086134736336LL; + ::javax::naming::NamingException * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_event_NamingExceptionEvent__ diff --git a/libjava/javax/naming/event/NamingListener.h b/libjava/javax/naming/event/NamingListener.h new file mode 100644 index 00000000000..d7eb0034359 --- /dev/null +++ b/libjava/javax/naming/event/NamingListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_event_NamingListener__ +#define __javax_naming_event_NamingListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace event + { + class NamingExceptionEvent; + class NamingListener; + } + } + } +} + +class javax::naming::event::NamingListener : public ::java::lang::Object +{ + +public: + virtual void namingExceptionThrown(::javax::naming::event::NamingExceptionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_event_NamingListener__ diff --git a/libjava/javax/naming/event/ObjectChangeListener.h b/libjava/javax/naming/event/ObjectChangeListener.h new file mode 100644 index 00000000000..eaff319dfa3 --- /dev/null +++ b/libjava/javax/naming/event/ObjectChangeListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_event_ObjectChangeListener__ +#define __javax_naming_event_ObjectChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace event + { + class NamingEvent; + class NamingExceptionEvent; + class ObjectChangeListener; + } + } + } +} + +class javax::naming::event::ObjectChangeListener : public ::java::lang::Object +{ + +public: + virtual void objectChanged(::javax::naming::event::NamingEvent *) = 0; + virtual void namingExceptionThrown(::javax::naming::event::NamingExceptionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_event_ObjectChangeListener__ diff --git a/libjava/javax/naming/ldap/Control.h b/libjava/javax/naming/ldap/Control.h new file mode 100644 index 00000000000..0a3f9f6a524 --- /dev/null +++ b/libjava/javax/naming/ldap/Control.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_Control__ +#define __javax_naming_ldap_Control__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class Control; + } + } + } +} + +class javax::naming::ldap::Control : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getID() = 0; + virtual jboolean isCritical() = 0; + virtual JArray< jbyte > * getEncodedValue() = 0; + static const jboolean CRITICAL = 1; + static const jboolean NONCRITICAL = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_ldap_Control__ diff --git a/libjava/javax/naming/ldap/ControlFactory.h b/libjava/javax/naming/ldap/ControlFactory.h new file mode 100644 index 00000000000..404e22faa66 --- /dev/null +++ b/libjava/javax/naming/ldap/ControlFactory.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_ControlFactory__ +#define __javax_naming_ldap_ControlFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + namespace ldap + { + class Control; + class ControlFactory; + } + } + } +} + +class javax::naming::ldap::ControlFactory : public ::java::lang::Object +{ + +public: // actually protected + ControlFactory(); +public: + virtual ::javax::naming::ldap::Control * getControlInstance(::javax::naming::ldap::Control *) = 0; + static ::javax::naming::ldap::Control * getControlInstance(::javax::naming::ldap::Control *, ::javax::naming::Context *, ::java::util::Hashtable *); + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ldap_ControlFactory__ diff --git a/libjava/javax/naming/ldap/ExtendedRequest.h b/libjava/javax/naming/ldap/ExtendedRequest.h new file mode 100644 index 00000000000..f97e66b0483 --- /dev/null +++ b/libjava/javax/naming/ldap/ExtendedRequest.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_ExtendedRequest__ +#define __javax_naming_ldap_ExtendedRequest__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class ExtendedRequest; + class ExtendedResponse; + } + } + } +} + +class javax::naming::ldap::ExtendedRequest : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getID() = 0; + virtual JArray< jbyte > * getEncodedValue() = 0; + virtual ::javax::naming::ldap::ExtendedResponse * createExtendedResponse(::java::lang::String *, JArray< jbyte > *, jint, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_ldap_ExtendedRequest__ diff --git a/libjava/javax/naming/ldap/ExtendedResponse.h b/libjava/javax/naming/ldap/ExtendedResponse.h new file mode 100644 index 00000000000..cb985fec90f --- /dev/null +++ b/libjava/javax/naming/ldap/ExtendedResponse.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_ExtendedResponse__ +#define __javax_naming_ldap_ExtendedResponse__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class ExtendedResponse; + } + } + } +} + +class javax::naming::ldap::ExtendedResponse : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getID() = 0; + virtual JArray< jbyte > * getEncodedValue() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_ldap_ExtendedResponse__ diff --git a/libjava/javax/naming/ldap/HasControls.h b/libjava/javax/naming/ldap/HasControls.h new file mode 100644 index 00000000000..616b3b9a634 --- /dev/null +++ b/libjava/javax/naming/ldap/HasControls.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_HasControls__ +#define __javax_naming_ldap_HasControls__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class Control; + class HasControls; + } + } + } +} + +class javax::naming::ldap::HasControls : public ::java::lang::Object +{ + +public: + virtual JArray< ::javax::naming::ldap::Control * > * getControls() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_ldap_HasControls__ diff --git a/libjava/javax/naming/ldap/InitialLdapContext.h b/libjava/javax/naming/ldap/InitialLdapContext.h new file mode 100644 index 00000000000..b2511804cbc --- /dev/null +++ b/libjava/javax/naming/ldap/InitialLdapContext.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_InitialLdapContext__ +#define __javax_naming_ldap_InitialLdapContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class Control; + class ExtendedRequest; + class ExtendedResponse; + class InitialLdapContext; + class LdapContext; + } + } + } +} + +class javax::naming::ldap::InitialLdapContext : public ::javax::naming::directory::InitialDirContext +{ + +public: + InitialLdapContext(); + InitialLdapContext(::java::util::Hashtable *, JArray< ::javax::naming::ldap::Control * > *); +private: + ::javax::naming::ldap::LdapContext * getDefaultInitLdapCtx(); +public: + virtual ::javax::naming::ldap::ExtendedResponse * extendedOperation(::javax::naming::ldap::ExtendedRequest *); + virtual JArray< ::javax::naming::ldap::Control * > * getConnectControls(); + virtual JArray< ::javax::naming::ldap::Control * > * getRequestControls(); + virtual JArray< ::javax::naming::ldap::Control * > * getResponseControls(); + virtual ::javax::naming::ldap::LdapContext * newInstance(JArray< ::javax::naming::ldap::Control * > *); + virtual void reconnect(JArray< ::javax::naming::ldap::Control * > *); + virtual void setRequestControls(JArray< ::javax::naming::ldap::Control * > *); + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ldap_InitialLdapContext__ diff --git a/libjava/javax/naming/ldap/LdapContext.h b/libjava/javax/naming/ldap/LdapContext.h new file mode 100644 index 00000000000..4fa910e72e6 --- /dev/null +++ b/libjava/javax/naming/ldap/LdapContext.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_LdapContext__ +#define __javax_naming_ldap_LdapContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + class NameParser; + class NamingEnumeration; + namespace directory + { + class Attributes; + class DirContext; + class ModificationItem; + class SearchControls; + } + namespace ldap + { + class Control; + class ExtendedRequest; + class ExtendedResponse; + class LdapContext; + } + } + } +} + +class javax::naming::ldap::LdapContext : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::ldap::ExtendedResponse * extendedOperation(::javax::naming::ldap::ExtendedRequest *) = 0; + virtual ::javax::naming::ldap::LdapContext * newInstance(JArray< ::javax::naming::ldap::Control * > *) = 0; + virtual void reconnect(JArray< ::javax::naming::ldap::Control * > *) = 0; + virtual JArray< ::javax::naming::ldap::Control * > * getConnectControls() = 0; + virtual void setRequestControls(JArray< ::javax::naming::ldap::Control * > *) = 0; + virtual JArray< ::javax::naming::ldap::Control * > * getRequestControls() = 0; + virtual JArray< ::javax::naming::ldap::Control * > * getResponseControls() = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::java::lang::String *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::Attributes * getAttributes(::javax::naming::Name *, JArray< ::java::lang::String * > *) = 0; + virtual void modifyAttributes(::javax::naming::Name *, jint, ::javax::naming::directory::Attributes *) = 0; + virtual void modifyAttributes(::java::lang::String *, jint, ::javax::naming::directory::Attributes *) = 0; + virtual void modifyAttributes(::javax::naming::Name *, JArray< ::javax::naming::directory::ModificationItem * > *) = 0; + virtual void modifyAttributes(::java::lang::String *, JArray< ::javax::naming::directory::ModificationItem * > *) = 0; + virtual void bind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * createSubcontext(::javax::naming::Name *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * createSubcontext(::java::lang::String *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::directory::DirContext * getSchema(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::DirContext * getSchema(::java::lang::String *) = 0; + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::javax::naming::Name *) = 0; + virtual ::javax::naming::directory::DirContext * getSchemaClassDefinition(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *, JArray< ::java::lang::String * > *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::javax::naming::directory::Attributes *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::javax::naming::Name *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *) = 0; + virtual ::javax::naming::NamingEnumeration * search(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *, ::javax::naming::directory::SearchControls *) = 0; + virtual void bind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void bind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * lookup(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookup(::java::lang::String *) = 0; + virtual void rebind(::javax::naming::Name *, ::java::lang::Object *) = 0; + virtual void rebind(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void unbind(::javax::naming::Name *) = 0; + virtual void unbind(::java::lang::String *) = 0; + virtual void rename(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual void rename(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * list(::java::lang::String *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::javax::naming::Name *) = 0; + virtual ::javax::naming::NamingEnumeration * listBindings(::java::lang::String *) = 0; + virtual ::javax::naming::Context * createSubcontext(::javax::naming::Name *) = 0; + virtual ::javax::naming::Context * createSubcontext(::java::lang::String *) = 0; + virtual void destroySubcontext(::javax::naming::Name *) = 0; + virtual void destroySubcontext(::java::lang::String *) = 0; + virtual ::java::lang::Object * lookupLink(::javax::naming::Name *) = 0; + virtual ::java::lang::Object * lookupLink(::java::lang::String *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::javax::naming::Name *) = 0; + virtual ::javax::naming::NameParser * getNameParser(::java::lang::String *) = 0; + virtual ::javax::naming::Name * composeName(::javax::naming::Name *, ::javax::naming::Name *) = 0; + virtual ::java::lang::String * composeName(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * addToEnvironment(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * removeFromEnvironment(::java::lang::String *) = 0; + virtual ::java::util::Hashtable * getEnvironment() = 0; + virtual void close() = 0; + virtual ::java::lang::String * getNameInNamespace() = 0; + static ::java::lang::String * CONTROL_FACTORIES; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_ldap_LdapContext__ diff --git a/libjava/javax/naming/ldap/LdapReferralException.h b/libjava/javax/naming/ldap/LdapReferralException.h new file mode 100644 index 00000000000..6ed5618e9c0 --- /dev/null +++ b/libjava/javax/naming/ldap/LdapReferralException.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_LdapReferralException__ +#define __javax_naming_ldap_LdapReferralException__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + namespace ldap + { + class Control; + class LdapReferralException; + } + } + } +} + +class javax::naming::ldap::LdapReferralException : public ::javax::naming::ReferralException +{ + +public: // actually protected + LdapReferralException(); + LdapReferralException(::java::lang::String *); +public: + virtual ::javax::naming::Context * getReferralContext() = 0; + virtual ::javax::naming::Context * getReferralContext(::java::util::Hashtable *) = 0; + virtual ::javax::naming::Context * getReferralContext(::java::util::Hashtable *, JArray< ::javax::naming::ldap::Control * > *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ldap_LdapReferralException__ diff --git a/libjava/javax/naming/ldap/StartTlsRequest.h b/libjava/javax/naming/ldap/StartTlsRequest.h new file mode 100644 index 00000000000..70ced7e5773 --- /dev/null +++ b/libjava/javax/naming/ldap/StartTlsRequest.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_StartTlsRequest__ +#define __javax_naming_ldap_StartTlsRequest__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class ExtendedResponse; + class StartTlsRequest; + } + } + } +} + +class javax::naming::ldap::StartTlsRequest : public ::java::lang::Object +{ + +public: + StartTlsRequest(); + virtual ::java::lang::String * getID(); + virtual JArray< jbyte > * getEncodedValue(); + virtual ::javax::naming::ldap::ExtendedResponse * createExtendedResponse(::java::lang::String *, JArray< jbyte > *, jint, jint); +private: + static const jlong serialVersionUID = 4441679576360753397LL; +public: + static ::java::lang::String * OID; + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ldap_StartTlsRequest__ diff --git a/libjava/javax/naming/ldap/StartTlsResponse.h b/libjava/javax/naming/ldap/StartTlsResponse.h new file mode 100644 index 00000000000..9b3d8c59cf6 --- /dev/null +++ b/libjava/javax/naming/ldap/StartTlsResponse.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_StartTlsResponse__ +#define __javax_naming_ldap_StartTlsResponse__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class StartTlsResponse; + } + } + namespace net + { + namespace ssl + { + class HostnameVerifier; + class SSLSession; + class SSLSocketFactory; + } + } + } +} + +class javax::naming::ldap::StartTlsResponse : public ::java::lang::Object +{ + +public: // actually protected + StartTlsResponse(); +public: + virtual ::java::lang::String * getID(); + virtual JArray< jbyte > * getEncodedValue(); + virtual void setEnabledCipherSuites(JArray< ::java::lang::String * > *) = 0; + virtual void setHostnameVerifier(::javax::net::ssl::HostnameVerifier *) = 0; + virtual ::javax::net::ssl::SSLSession * negotiate() = 0; + virtual ::javax::net::ssl::SSLSession * negotiate(::javax::net::ssl::SSLSocketFactory *) = 0; + virtual void close() = 0; +private: + static const jlong serialVersionUID = 8372842182579276418LL; +public: + static ::java::lang::String * OID; + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ldap_StartTlsResponse__ diff --git a/libjava/javax/naming/ldap/UnsolicitedNotification.h b/libjava/javax/naming/ldap/UnsolicitedNotification.h new file mode 100644 index 00000000000..c23d4b0f2f6 --- /dev/null +++ b/libjava/javax/naming/ldap/UnsolicitedNotification.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_UnsolicitedNotification__ +#define __javax_naming_ldap_UnsolicitedNotification__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace naming + { + class NamingException; + namespace ldap + { + class Control; + class UnsolicitedNotification; + } + } + } +} + +class javax::naming::ldap::UnsolicitedNotification : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::String * > * getReferrals() = 0; + virtual ::javax::naming::NamingException * getException() = 0; + virtual ::java::lang::String * getID() = 0; + virtual JArray< jbyte > * getEncodedValue() = 0; + virtual JArray< ::javax::naming::ldap::Control * > * getControls() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_ldap_UnsolicitedNotification__ diff --git a/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.h b/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.h new file mode 100644 index 00000000000..b6e4a4f5648 --- /dev/null +++ b/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_UnsolicitedNotificationEvent__ +#define __javax_naming_ldap_UnsolicitedNotificationEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace ldap + { + class UnsolicitedNotification; + class UnsolicitedNotificationEvent; + class UnsolicitedNotificationListener; + } + } + } +} + +class javax::naming::ldap::UnsolicitedNotificationEvent : public ::java::util::EventObject +{ + +public: + UnsolicitedNotificationEvent(::java::lang::Object *, ::javax::naming::ldap::UnsolicitedNotification *); + virtual ::javax::naming::ldap::UnsolicitedNotification * getNotification(); + virtual void dispatch(::javax::naming::ldap::UnsolicitedNotificationListener *); +private: + static const jlong serialVersionUID = -2382603380799883705LL; + ::javax::naming::ldap::UnsolicitedNotification * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) notice; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_ldap_UnsolicitedNotificationEvent__ diff --git a/libjava/javax/naming/ldap/UnsolicitedNotificationListener.h b/libjava/javax/naming/ldap/UnsolicitedNotificationListener.h new file mode 100644 index 00000000000..d389381ac36 --- /dev/null +++ b/libjava/javax/naming/ldap/UnsolicitedNotificationListener.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_ldap_UnsolicitedNotificationListener__ +#define __javax_naming_ldap_UnsolicitedNotificationListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace event + { + class NamingExceptionEvent; + } + namespace ldap + { + class UnsolicitedNotificationEvent; + class UnsolicitedNotificationListener; + } + } + } +} + +class javax::naming::ldap::UnsolicitedNotificationListener : public ::java::lang::Object +{ + +public: + virtual void notificationReceived(::javax::naming::ldap::UnsolicitedNotificationEvent *) = 0; + virtual void namingExceptionThrown(::javax::naming::event::NamingExceptionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_ldap_UnsolicitedNotificationListener__ diff --git a/libjava/javax/naming/spi/DirObjectFactory.h b/libjava/javax/naming/spi/DirObjectFactory.h new file mode 100644 index 00000000000..d84d3181c96 --- /dev/null +++ b/libjava/javax/naming/spi/DirObjectFactory.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_DirObjectFactory__ +#define __javax_naming_spi_DirObjectFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + namespace directory + { + class Attributes; + } + namespace spi + { + class DirObjectFactory; + } + } + } +} + +class javax::naming::spi::DirObjectFactory : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getObjectInstance(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *, ::javax::naming::directory::Attributes *) = 0; + virtual ::java::lang::Object * getObjectInstance(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_DirObjectFactory__ diff --git a/libjava/javax/naming/spi/DirStateFactory$Result.h b/libjava/javax/naming/spi/DirStateFactory$Result.h new file mode 100644 index 00000000000..586c7d3bc67 --- /dev/null +++ b/libjava/javax/naming/spi/DirStateFactory$Result.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_DirStateFactory$Result__ +#define __javax_naming_spi_DirStateFactory$Result__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace directory + { + class Attributes; + } + namespace spi + { + class DirStateFactory$Result; + } + } + } +} + +class javax::naming::spi::DirStateFactory$Result : public ::java::lang::Object +{ + +public: + DirStateFactory$Result(::java::lang::Object *, ::javax::naming::directory::Attributes *); + virtual ::java::lang::Object * getObject(); + virtual ::javax::naming::directory::Attributes * getAttributes(); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) obj; + ::javax::naming::directory::Attributes * outAttrs; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_spi_DirStateFactory$Result__ diff --git a/libjava/javax/naming/spi/DirStateFactory.h b/libjava/javax/naming/spi/DirStateFactory.h new file mode 100644 index 00000000000..02b2b5a84bc --- /dev/null +++ b/libjava/javax/naming/spi/DirStateFactory.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_DirStateFactory__ +#define __javax_naming_spi_DirStateFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + namespace directory + { + class Attributes; + } + namespace spi + { + class DirStateFactory; + class DirStateFactory$Result; + } + } + } +} + +class javax::naming::spi::DirStateFactory : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::spi::DirStateFactory$Result * getStateToBind(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *, ::javax::naming::directory::Attributes *) = 0; + virtual ::java::lang::Object * getStateToBind(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_DirStateFactory__ diff --git a/libjava/javax/naming/spi/DirectoryManager.h b/libjava/javax/naming/spi/DirectoryManager.h new file mode 100644 index 00000000000..32d015c1da2 --- /dev/null +++ b/libjava/javax/naming/spi/DirectoryManager.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_DirectoryManager__ +#define __javax_naming_spi_DirectoryManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class CannotProceedException; + class Context; + class Name; + namespace directory + { + class Attributes; + class DirContext; + } + namespace spi + { + class DirStateFactory$Result; + class DirectoryManager; + class ObjectFactory; + } + } + } +} + +class javax::naming::spi::DirectoryManager : public ::javax::naming::spi::NamingManager +{ + +public: // actually package-private + DirectoryManager(); +public: + static ::javax::naming::directory::DirContext * getContinuationDirContext(::javax::naming::CannotProceedException *); +private: + static ::java::lang::Object * tryCreateObject(::javax::naming::spi::ObjectFactory *, ::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *, ::javax::naming::directory::Attributes *); +public: + static ::java::lang::Object * getObjectInstance(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *, ::javax::naming::directory::Attributes *); + static ::javax::naming::spi::DirStateFactory$Result * getStateToBind(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *, ::javax::naming::directory::Attributes *); + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_spi_DirectoryManager__ diff --git a/libjava/javax/naming/spi/InitialContextFactory.h b/libjava/javax/naming/spi/InitialContextFactory.h new file mode 100644 index 00000000000..446876cf2ee --- /dev/null +++ b/libjava/javax/naming/spi/InitialContextFactory.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_InitialContextFactory__ +#define __javax_naming_spi_InitialContextFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + namespace spi + { + class InitialContextFactory; + } + } + } +} + +class javax::naming::spi::InitialContextFactory : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::Context * getInitialContext(::java::util::Hashtable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_InitialContextFactory__ diff --git a/libjava/javax/naming/spi/InitialContextFactoryBuilder.h b/libjava/javax/naming/spi/InitialContextFactoryBuilder.h new file mode 100644 index 00000000000..bdd016036e9 --- /dev/null +++ b/libjava/javax/naming/spi/InitialContextFactoryBuilder.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_InitialContextFactoryBuilder__ +#define __javax_naming_spi_InitialContextFactoryBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace spi + { + class InitialContextFactory; + class InitialContextFactoryBuilder; + } + } + } +} + +class javax::naming::spi::InitialContextFactoryBuilder : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::spi::InitialContextFactory * createInitialContextFactory(::java::util::Hashtable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_InitialContextFactoryBuilder__ diff --git a/libjava/javax/naming/spi/NamingManager.h b/libjava/javax/naming/spi/NamingManager.h new file mode 100644 index 00000000000..6a24048edde --- /dev/null +++ b/libjava/javax/naming/spi/NamingManager.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_NamingManager__ +#define __javax_naming_spi_NamingManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class CannotProceedException; + class Context; + class Name; + namespace spi + { + class InitialContextFactoryBuilder; + class NamingManager; + class ObjectFactoryBuilder; + } + } + } +} + +class javax::naming::spi::NamingManager : public ::java::lang::Object +{ + +public: // actually package-private + NamingManager(); +public: + static jboolean hasInitialContextFactoryBuilder(); + static ::javax::naming::Context * getInitialContext(::java::util::Hashtable *); +public: // actually package-private + static ::javax::naming::Context * getURLContext(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::lang::String *, ::java::util::Hashtable *); + static ::java::lang::Class * forName(::java::lang::String *); +public: + static ::javax::naming::Context * getURLContext(::java::lang::String *, ::java::util::Hashtable *); + static void setObjectFactoryBuilder(::javax::naming::spi::ObjectFactoryBuilder *); +public: // actually package-private + static ::java::util::StringTokenizer * getPlusPath(::java::lang::String *, ::java::util::Hashtable *, ::javax::naming::Context *); +public: + static ::java::lang::Object * getObjectInstance(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *); + static void setInitialContextFactoryBuilder(::javax::naming::spi::InitialContextFactoryBuilder *); + static ::javax::naming::Context * getContinuationContext(::javax::naming::CannotProceedException *); + static ::java::lang::Object * getStateToBind(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *); + static ::java::lang::String * CPE; +private: + static ::javax::naming::spi::InitialContextFactoryBuilder * icfb; +public: // actually package-private + static ::javax::naming::spi::ObjectFactoryBuilder * ofb; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_spi_NamingManager__ diff --git a/libjava/javax/naming/spi/NamingManager.java b/libjava/javax/naming/spi/NamingManager.java deleted file mode 100644 index 11e8130570b..00000000000 --- a/libjava/javax/naming/spi/NamingManager.java +++ /dev/null @@ -1,654 +0,0 @@ -/* NamingManager.java -- Creates contexts and objects - Copyright (C) 2000, 2001, 2002, 2003, 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 javax.naming.spi; - -// import gnu.classpath.VMStackWalker; - -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.StringTokenizer; - -import javax.naming.CannotProceedException; -import javax.naming.Context; -import javax.naming.Name; -import javax.naming.NamingException; -import javax.naming.NoInitialContextException; -import javax.naming.RefAddr; -import javax.naming.Reference; -import javax.naming.Referenceable; -import javax.naming.StringRefAddr; - -/** - * Contains methods for creating contexts and objects referred to by - * location information. The location is specified in the scope of the - * certain naming or directory service. This class only contais static - * methods and cannot be instantiated. - */ -public class NamingManager -{ - /** - * The environment property into which getContinuationContext() stores the - * value of the CannotProceedException parameter. The value of this field - * is java.naming.spi.CannotProceedException. - */ - public static final String CPE = "java.naming.spi.CannotProceedException"; - - private static InitialContextFactoryBuilder icfb; - - // Package private so DirectoryManager can access it. - static ObjectFactoryBuilder ofb; - - // This class cannot be instantiated. - NamingManager () - { - } - - /** - * Checks if the initial context factory builder has been set. - * - * @return true if the builder has been set - * - * @see #setInitialContextFactoryBuilder(InitialContextFactoryBuilder) - */ - public static boolean hasInitialContextFactoryBuilder () - { - return icfb != null; - } - - /** - * Creates the initial context. If the initial object factory builder has - * been set with {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)}, - * the work is delegated to this builder. Otherwise, the method searches - * for the property Context.INITIAL_CONTEXT_FACTORY first in the passed - * table and then in the system properties. The value of this property is - * uses as a class name to install the context factory. The corresponding - * class must exist, be public and have the public parameterless constructor. - * - * @param environment the properties, used to create the context. - * - * @return the created context - * - * @throws NoInitialContextException if the initial builder is not set, - * the property Context.INITIAL_CONTEXT_FACTORY is missing of the - * class, named by this property, cannot be instantiated. - * @throws NamingException if throws by the context factory - */ - public static Context getInitialContext (Hashtable environment) - throws NamingException - { - InitialContextFactory icf = null; - - if (icfb != null) - icf = icfb.createInitialContextFactory(environment); - else - { - String java_naming_factory_initial = null; - if (environment != null) - java_naming_factory_initial - = (String) environment.get (Context.INITIAL_CONTEXT_FACTORY); - if (java_naming_factory_initial == null) - java_naming_factory_initial = - System.getProperty (Context.INITIAL_CONTEXT_FACTORY); - if (java_naming_factory_initial == null) - throw new - NoInitialContextException ("Can't find property: " - + Context.INITIAL_CONTEXT_FACTORY); - - try - { - icf = (InitialContextFactory)Class.forName - (java_naming_factory_initial, true, - Thread.currentThread().getContextClassLoader()) - .newInstance (); - } - catch (Exception exception) - { - NoInitialContextException e - = new NoInitialContextException - ("Can't load InitialContextFactory class: " - + java_naming_factory_initial); - e.setRootCause(exception); - throw e; - } - } - - return icf.getInitialContext (environment); - } - - /** - *

      - * Creates the URL context for the given URL scheme id. - *

      - *

      - * The class name of the factory that creates the context has the naming - * pattern scheme-idURLContextFactory. For instance, the factory for the "ftp" - * sheme should be named "ftpURLContextFactory". - *

      - *

      - * The Context.URL_PKG_PREFIXES environment property contains the - * colon-separated list of the possible package prefixes. The package name is - * constructed concatenating the package prefix with the scheme id. This - * property is searched in the passed environment parameter and later - * in the system properties. - *

      - *

      - * If the factory class cannot be found in the specified packages, system will - * try to use the default internal factory for the given scheme. - *

      - *

      - * After the factory is instantiated, its method - * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)} - * is called to create and return the object instance. - * - * @param refInfo passed to the factory - * @param name passed to the factory - * @param nameCtx passed to the factory - * @param scheme the url scheme that must be supported by the given context - * @param environment the properties for creating the factory and context (may - * be null) - * @return the created context - * @throws NamingException if thrown by the factory when creating the context. - */ - static Context getURLContext(Object refInfo, Name name, Context nameCtx, - String scheme, Hashtable environment) - throws NamingException - { - // Specified as the default in the docs. Unclear if this is - // right for us. - String defaultPrefix = "com.sun.jndi.url"; - - StringBuffer allPrefixes = new StringBuffer(); - - String prefixes; - if (environment != null) - { - prefixes = (String) environment.get(Context.URL_PKG_PREFIXES); - if (prefixes != null) - allPrefixes.append(prefixes); - } - - prefixes = System.getProperty(Context.URL_PKG_PREFIXES); - if (prefixes != null) - { - if (allPrefixes.length() > 0) - allPrefixes.append(':'); - allPrefixes.append(prefixes); - } - - if (allPrefixes.length() > 0) - allPrefixes.append(':'); - allPrefixes.append(defaultPrefix); - - scheme = scheme + "." + scheme + "URLContextFactory"; - - StringTokenizer tokens = new StringTokenizer(allPrefixes.toString(), ":"); - while (tokens.hasMoreTokens()) - { - String aTry = tokens.nextToken(); - try - { - String tryClass = aTry + "." + scheme; - Class factoryClass = forName(tryClass); - if (factoryClass != null) - { - ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); - Object obj = factory.getObjectInstance(refInfo, name, nameCtx, - environment); - Context ctx = (Context) obj; - if (ctx != null) - return ctx; - } - } - catch (ClassNotFoundException _1) - { - // Ignore it. - } - catch (ClassCastException _2) - { - // This means that the class we found was not an - // ObjectFactory or that the factory returned something - // which was not a Context. - } - catch (InstantiationException _3) - { - // If we couldn't instantiate the factory we might get - // this. - } - catch (IllegalAccessException _4) - { - // Another possibility when instantiating. - } - catch (NamingException _5) - { - throw _5; - } - catch (Exception _6) - { - // Anything from getObjectInstance. - } - } - - return null; - } - - /** - * Load the class with the given name. This method tries to use the context - * class loader first. If this fails, it searches for the suitable class - * loader in the caller stack trace. This method is a central point where all - * requests to find a class by name are delegated. - */ - static Class forName(String className) - { - try - { - return Class.forName(className, true, - Thread.currentThread().getContextClassLoader()); - } - catch (ClassNotFoundException nex) - { - /** - * Returns the first user defined class loader on the call stack, or - * null when no non-null class loader was found. - Class[] ctx = VMStackWalker.getClassContext(); - for (int i = 0; i < ctx.length; i++) - { - // Since we live in a class loaded by the bootstrap - // class loader, getClassLoader is safe to call without - // needing to be wrapped in a privileged action. - ClassLoader cl = ctx[i].getClassLoader(); - try - { - if (cl != null) - return Class.forName(className, true, cl); - } - catch (ClassNotFoundException nex2) - { - // Try next. - } - } - */ - } - return null; - } - - - /** - *

      - * Creates the URL context for the given URL scheme id. - *

      - *

      - * The class name of the factory that creates the context has the naming - * pattern scheme-idURLContextFactory. For instance, the factory for the "ftp" - * sheme should be named "ftpURLContextFactory". The Context.URL_PKG_PREFIXES - * environment property contains the colon-separated list of the possible - * package prefixes. The package name is constructed concatenating the package - * prefix with the scheme id. - *

      - *

      - * If the factory class cannot be found in the specified packages, system will - * try to use the default internal factory for the given scheme. - *

      - *

      - * After the factory is instantiated, its method - * {@link ObjectFactory#getObjectInstance(Object, Name, Context, Hashtable)} - * is called to create and return the object instance. - * - * @param scheme the url scheme that must be supported by the given context - * @param environment the properties for creating the factory and context (may - * be null) - * @return the created context - * @throws NamingException if thrown by the factory when creating the context. - */ - public static Context getURLContext (String scheme, - Hashtable environment) - throws NamingException - { - return getURLContext (null, null, null, scheme, environment); - } - - /** - * Sets the initial object factory builder. - * - * @param builder the builder to set - * - * @throws SecurityException if the builder cannot be installed due - * security restrictions. - * @throws NamingException if the builder cannot be installed due other - * reasons - * @throws IllegalStateException if setting the builder repeatedly - */ - public static void setObjectFactoryBuilder (ObjectFactoryBuilder builder) - throws NamingException - { - SecurityManager sm = System.getSecurityManager (); - if (sm != null) - sm.checkSetFactory (); - // Once the builder is installed it cannot be replaced. - if (ofb != null) - throw new IllegalStateException ("object factory builder already installed"); - if (builder != null) - ofb = builder; - } - - static StringTokenizer getPlusPath (String property, Hashtable env, - Context nameCtx) - throws NamingException - { - String path = (String) env.get (property); - if (nameCtx == null) - nameCtx = getInitialContext (env); - String path2 = (String) nameCtx.getEnvironment ().get (property); - if (path == null) - path = path2; - else if (path2 != null) - path += ":" + path2; - return new StringTokenizer (path != null ? path : "", ":"); - } - - /** - *

      Creates an object for the specified name context, environment and - * referencing context object.

      - *

      - * If the builder factory is set by - * {@link #setObjectFactoryBuilder(ObjectFactoryBuilder)}, the call is - * delegated to that factory. Otherwise, the object is created using the - * following rules: - *

        - *
      • If the referencing object (refInfo) contains the factory class name, - * the object is created by this factory. If the creation fails, - * the parameter refInfo is returned as the method return value.
      • - *
      • If the referencing object has no factory class name, and the addresses - * are StringRefAddrs having the address type "URL", the object is - * created by the URL context factory. The used factory corresponds the - * the naming schema of the each URL. If the attempt to create - * the object this way is not successful, the subsequent rule is - * tried.
      • - *
      • If the refInfo is not an instance of Reference or Referencable - * (for example, null), the object is created by the factories, - * specified in the Context.OBJECT_FACTORIES property of the - * environment and the provider resource file, associated with the - * nameCtx. The value of this property is the colon separated list - * of the possible factories. If none of the factories can be - * loaded, the refInfo is returned. - *
      - *

      - *

      The object factory must be public and have the public parameterless - * constructor.

      - * - * @param refInfo the referencing object, for which the new object must be - * created (can be null). If not null, it is usually an instance of - * the {@link Reference} or {@link Referenceable}. - * @param name the name of the object. The name is relative to - * the nameCtx naming context. The value of this parameter can be - * null if the name is not specified. - * @param nameCtx the naming context, in which scope the name of the new - * object is specified. If this parameter is null, the name is - * specified in the scope of the initial context. - * @param environment contains additional information for creating the object. - * This paramter can be null if there is no need to provide any - * additional information. - * - * @return the created object. If the creation fails, in some cases - * the parameter refInfo may be returned. - * - * @throws NamingException if the attempt to name the new object has failed - * @throws Exception if the object factory throws it. The object factory - * only throws an exception if it does not want other factories - * to be used to create the object. - */ - public static Object getObjectInstance (Object refInfo, - Name name, - Context nameCtx, - Hashtable environment) - throws Exception - { - ObjectFactory factory = null; - - if (ofb != null) - factory = ofb.createObjectFactory (refInfo, environment); - else - { - // First see if we have a Reference or a Referenceable. If so - // we do some special processing. - Object ref2 = refInfo; - if (refInfo instanceof Referenceable) - ref2 = ((Referenceable) refInfo).getReference (); - if (ref2 instanceof Reference) - { - Reference ref = (Reference) ref2; - - // If we have a factory class name then we use that. - String fClass = ref.getFactoryClassName (); - if (fClass != null) - { - // Exceptions here are passed to the caller. - Class k = Class.forName (fClass, - true, - Thread.currentThread().getContextClassLoader()); - factory = (ObjectFactory) k.newInstance (); - } - else - { - // There's no factory class name. If the address is a - // StringRefAddr with address type `URL', then we try - // the URL's context factory. - Enumeration e = ref.getAll (); - while (e.hasMoreElements ()) - { - RefAddr ra = (RefAddr) e.nextElement (); - if (ra instanceof StringRefAddr - && "URL".equals (ra.getType ())) - { - factory - = (ObjectFactory) getURLContext (refInfo, - name, - nameCtx, - (String) ra.getContent (), - environment); - Object obj = factory.getObjectInstance (refInfo, - name, - nameCtx, - environment); - if (obj != null) - return obj; - } - } - - // Have to try the next step. - factory = null; - } - } - - // Now look at OBJECT_FACTORIES to find the factory. - if (factory == null) - { - StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES, - environment, nameCtx); - - while (tokens.hasMoreTokens ()) - { - String klassName = tokens.nextToken (); - Class k = Class.forName (klassName, - true, - Thread.currentThread().getContextClassLoader()); - factory = (ObjectFactory) k.newInstance (); - Object obj = factory.getObjectInstance (refInfo, name, - nameCtx, environment); - if (obj != null) - return obj; - } - - // Failure. - return refInfo; - } - } - - if (factory == null) - return refInfo; - Object obj = factory.getObjectInstance (refInfo, name, - nameCtx, environment); - return obj == null ? refInfo : obj; - } - - /** - * Sets the initial context factory builder. - * - * @param builder the builder to set - * - * @throws SecurityException if the builder cannot be installed due - * security restrictions. - * @throws NamingException if the builder cannot be installed due other - * reasons - * @throws IllegalStateException if setting the builder repeatedly - * - * @see #hasInitialContextFactoryBuilder() - */ - public static void setInitialContextFactoryBuilder - (InitialContextFactoryBuilder builder) - throws NamingException - { - SecurityManager sm = System.getSecurityManager (); - if (sm != null) - sm.checkSetFactory (); - // Once the builder is installed it cannot be replaced. - if (icfb != null) - throw new IllegalStateException ("ctx factory builder already installed"); - if (builder != null) - icfb = builder; - } - - /** - * Creates a context in which the context operation must be continued. - * This method is used by operations on names that span multiple namespaces. - * - * @param cpe the exception that triggered this continuation. This method - * obtains the environment ({@link CannotProceedException#getEnvironment()} - * and sets the environment property {@link #CPE} = cpe. - * - * @return a non null context for continuing the operation - * - * @throws NamingException if the naming problems have occured - */ - public static Context getContinuationContext (CannotProceedException cpe) - throws NamingException - { - Hashtable env = cpe.getEnvironment (); - if (env != null) - env.put (CPE, cpe); - - // TODO: Check if this implementation matches the API specification - try - { - Object obj = getObjectInstance (cpe.getResolvedObj(), - cpe.getAltName (), - cpe.getAltNameCtx (), - env); - if (obj != null) - return (Context) obj; - } - catch (Exception _) - { - } - - // fix stack trace for re-thrown exception (message confusing otherwise) - cpe.fillInStackTrace(); - - throw cpe; - } - - /** - * Get the object state for binding. - * - * @param obj the object, for that the binding state must be retrieved. Cannot - * be null. - * @param name the name of this object, related to the nameCtx. Can be null if - * not specified. - * @param nameCtx the naming context, to that the object name is related. Can - * be null if the name is related to the initial default context. - * @param environment the properties for creating the object state. Can be - * null if no properties are provided. - * @return the object state for binding, may be null if no changes are - * returned by the factory - * @throws NamingException - */ - public static Object getStateToBind (Object obj, Name name, - Context nameCtx, Hashtable environment) - throws NamingException - { - StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES, - environment, nameCtx); - while (tokens.hasMoreTokens ()) - { - String klassName = tokens.nextToken (); - try - { - Class k = Class.forName (klassName, - true, - Thread.currentThread().getContextClassLoader()); - StateFactory factory = (StateFactory) k.newInstance (); - Object o = factory.getStateToBind (obj, name, nameCtx, - environment); - if (o != null) - return o; - } - catch (ClassNotFoundException _1) - { - // Ignore it. - } - catch (ClassCastException _2) - { - // This means that the class we found was not an - // ObjectFactory or that the factory returned something - // which was not a Context. - } - catch (InstantiationException _3) - { - // If we couldn't instantiate the factory we might get - // this. - } - catch (IllegalAccessException _4) - { - // Another possibility when instantiating. - } - } - - return obj; - } -} diff --git a/libjava/javax/naming/spi/ObjectFactory.h b/libjava/javax/naming/spi/ObjectFactory.h new file mode 100644 index 00000000000..62d563969af --- /dev/null +++ b/libjava/javax/naming/spi/ObjectFactory.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_ObjectFactory__ +#define __javax_naming_spi_ObjectFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + namespace spi + { + class ObjectFactory; + } + } + } +} + +class javax::naming::spi::ObjectFactory : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getObjectInstance(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_ObjectFactory__ diff --git a/libjava/javax/naming/spi/ObjectFactoryBuilder.h b/libjava/javax/naming/spi/ObjectFactoryBuilder.h new file mode 100644 index 00000000000..eb457e4fb8f --- /dev/null +++ b/libjava/javax/naming/spi/ObjectFactoryBuilder.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_ObjectFactoryBuilder__ +#define __javax_naming_spi_ObjectFactoryBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + namespace spi + { + class ObjectFactory; + class ObjectFactoryBuilder; + } + } + } +} + +class javax::naming::spi::ObjectFactoryBuilder : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::spi::ObjectFactory * createObjectFactory(::java::lang::Object *, ::java::util::Hashtable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_ObjectFactoryBuilder__ diff --git a/libjava/javax/naming/spi/ResolveResult.h b/libjava/javax/naming/spi/ResolveResult.h new file mode 100644 index 00000000000..72f118748c8 --- /dev/null +++ b/libjava/javax/naming/spi/ResolveResult.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_ResolveResult__ +#define __javax_naming_spi_ResolveResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Name; + namespace spi + { + class ResolveResult; + } + } + } +} + +class javax::naming::spi::ResolveResult : public ::java::lang::Object +{ + +public: // actually protected + ResolveResult(); +public: + ResolveResult(::java::lang::Object *, ::java::lang::String *); + ResolveResult(::java::lang::Object *, ::javax::naming::Name *); + virtual ::javax::naming::Name * getRemainingName(); + virtual ::java::lang::Object * getResolvedObj(); + virtual void setRemainingName(::javax::naming::Name *); + virtual void appendRemainingName(::javax::naming::Name *); + virtual void appendRemainingComponent(::java::lang::String *); + virtual void setResolvedObj(::java::lang::Object *); +private: + static const jlong serialVersionUID = -4552108072002407559LL; +public: // actually protected + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) resolvedObj; + ::javax::naming::Name * remainingName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_naming_spi_ResolveResult__ diff --git a/libjava/javax/naming/spi/Resolver.h b/libjava/javax/naming/spi/Resolver.h new file mode 100644 index 00000000000..bc7956d712a --- /dev/null +++ b/libjava/javax/naming/spi/Resolver.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_Resolver__ +#define __javax_naming_spi_Resolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Name; + namespace spi + { + class ResolveResult; + class Resolver; + } + } + } +} + +class javax::naming::spi::Resolver : public ::java::lang::Object +{ + +public: + virtual ::javax::naming::spi::ResolveResult * resolveToClass(::javax::naming::Name *, ::java::lang::Class *) = 0; + virtual ::javax::naming::spi::ResolveResult * resolveToClass(::java::lang::String *, ::java::lang::Class *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_Resolver__ diff --git a/libjava/javax/naming/spi/StateFactory.h b/libjava/javax/naming/spi/StateFactory.h new file mode 100644 index 00000000000..2039a27e2de --- /dev/null +++ b/libjava/javax/naming/spi/StateFactory.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_naming_spi_StateFactory__ +#define __javax_naming_spi_StateFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace naming + { + class Context; + class Name; + namespace spi + { + class StateFactory; + } + } + } +} + +class javax::naming::spi::StateFactory : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getStateToBind(::java::lang::Object *, ::javax::naming::Name *, ::javax::naming::Context *, ::java::util::Hashtable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_naming_spi_StateFactory__ diff --git a/libjava/javax/net/ServerSocketFactory.h b/libjava/javax/net/ServerSocketFactory.h new file mode 100644 index 00000000000..51a57097aad --- /dev/null +++ b/libjava/javax/net/ServerSocketFactory.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ServerSocketFactory__ +#define __javax_net_ServerSocketFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + class ServerSocket; + } + } + namespace javax + { + namespace net + { + class ServerSocketFactory; + } + } +} + +class javax::net::ServerSocketFactory : public ::java::lang::Object +{ + +public: // actually protected + ServerSocketFactory(); +public: + static ::javax::net::ServerSocketFactory * getDefault(); + virtual ::java::net::ServerSocket * createServerSocket(); + virtual ::java::net::ServerSocket * createServerSocket(jint) = 0; + virtual ::java::net::ServerSocket * createServerSocket(jint, jint) = 0; + virtual ::java::net::ServerSocket * createServerSocket(jint, jint, ::java::net::InetAddress *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ServerSocketFactory__ diff --git a/libjava/javax/net/SocketFactory.h b/libjava/javax/net/SocketFactory.h new file mode 100644 index 00000000000..2e7821c2d09 --- /dev/null +++ b/libjava/javax/net/SocketFactory.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_SocketFactory__ +#define __javax_net_SocketFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + class Socket; + } + } + namespace javax + { + namespace net + { + class SocketFactory; + } + } +} + +class javax::net::SocketFactory : public ::java::lang::Object +{ + +public: // actually protected + SocketFactory(); +public: + static ::javax::net::SocketFactory * getDefault(); + virtual ::java::net::Socket * createSocket(); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint) = 0; + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint, ::java::net::InetAddress *, jint) = 0; + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint) = 0; + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_net_SocketFactory__ diff --git a/libjava/javax/net/VanillaServerSocketFactory.h b/libjava/javax/net/VanillaServerSocketFactory.h new file mode 100644 index 00000000000..1c6f7dc4841 --- /dev/null +++ b/libjava/javax/net/VanillaServerSocketFactory.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_VanillaServerSocketFactory__ +#define __javax_net_VanillaServerSocketFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + class ServerSocket; + } + } + namespace javax + { + namespace net + { + class VanillaServerSocketFactory; + } + } +} + +class javax::net::VanillaServerSocketFactory : public ::javax::net::ServerSocketFactory +{ + +public: // actually package-private + VanillaServerSocketFactory(); +public: + virtual ::java::net::ServerSocket * createServerSocket(); + virtual ::java::net::ServerSocket * createServerSocket(jint); + virtual ::java::net::ServerSocket * createServerSocket(jint, jint); + virtual ::java::net::ServerSocket * createServerSocket(jint, jint, ::java::net::InetAddress *); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_VanillaServerSocketFactory__ diff --git a/libjava/javax/net/VanillaSocketFactory.h b/libjava/javax/net/VanillaSocketFactory.h new file mode 100644 index 00000000000..cca82bd7cfe --- /dev/null +++ b/libjava/javax/net/VanillaSocketFactory.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_VanillaSocketFactory__ +#define __javax_net_VanillaSocketFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + class Socket; + } + } + namespace javax + { + namespace net + { + class VanillaSocketFactory; + } + } +} + +class javax::net::VanillaSocketFactory : public ::javax::net::SocketFactory +{ + +public: // actually package-private + VanillaSocketFactory(); +public: + virtual ::java::net::Socket * createSocket(); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint); + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint, ::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint); + virtual ::java::net::Socket * createSocket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_VanillaSocketFactory__ diff --git a/libjava/javax/net/ssl/CertPathTrustManagerParameters.h b/libjava/javax/net/ssl/CertPathTrustManagerParameters.h new file mode 100644 index 00000000000..7f7cd67a0b2 --- /dev/null +++ b/libjava/javax/net/ssl/CertPathTrustManagerParameters.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_CertPathTrustManagerParameters__ +#define __javax_net_ssl_CertPathTrustManagerParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + namespace cert + { + class CertPathParameters; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class CertPathTrustManagerParameters; + } + } + } +} + +class javax::net::ssl::CertPathTrustManagerParameters : public ::java::lang::Object +{ + +public: + CertPathTrustManagerParameters(::java::security::cert::CertPathParameters *); + virtual ::java::security::cert::CertPathParameters * getParameters(); +private: + ::java::security::cert::CertPathParameters * __attribute__((aligned(__alignof__( ::java::lang::Object)))) params; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_CertPathTrustManagerParameters__ diff --git a/libjava/javax/net/ssl/HandshakeCompletedEvent.h b/libjava/javax/net/ssl/HandshakeCompletedEvent.h new file mode 100644 index 00000000000..a9c15479aa1 --- /dev/null +++ b/libjava/javax/net/ssl/HandshakeCompletedEvent.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_HandshakeCompletedEvent__ +#define __javax_net_ssl_HandshakeCompletedEvent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Principal; + namespace cert + { + class Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class HandshakeCompletedEvent; + class SSLSession; + class SSLSocket; + } + } + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class javax::net::ssl::HandshakeCompletedEvent : public ::java::util::EventObject +{ + +public: + HandshakeCompletedEvent(::javax::net::ssl::SSLSocket *, ::javax::net::ssl::SSLSession *); + virtual ::java::lang::String * getCipherSuite(); + virtual JArray< ::java::security::cert::Certificate * > * getLocalCertificates(); + virtual ::java::security::Principal * getLocalPrincipal(); + virtual JArray< ::java::security::cert::Certificate * > * getPeerCertificates(); + virtual JArray< ::javax::security::cert::X509Certificate * > * getPeerCertificateChain(); + virtual ::java::security::Principal * getPeerPrincipal(); + virtual ::javax::net::ssl::SSLSession * getSession(); + virtual ::javax::net::ssl::SSLSocket * getSocket(); +private: + static const jlong serialVersionUID = 7914963744257769778LL; + ::javax::net::ssl::SSLSession * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) session; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_HandshakeCompletedEvent__ diff --git a/libjava/javax/net/ssl/HandshakeCompletedListener.h b/libjava/javax/net/ssl/HandshakeCompletedListener.h new file mode 100644 index 00000000000..7a797bd4eb0 --- /dev/null +++ b/libjava/javax/net/ssl/HandshakeCompletedListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_HandshakeCompletedListener__ +#define __javax_net_ssl_HandshakeCompletedListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class HandshakeCompletedEvent; + class HandshakeCompletedListener; + } + } + } +} + +class javax::net::ssl::HandshakeCompletedListener : public ::java::lang::Object +{ + +public: + virtual void handshakeCompleted(::javax::net::ssl::HandshakeCompletedEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_HandshakeCompletedListener__ diff --git a/libjava/javax/net/ssl/HostnameVerifier.h b/libjava/javax/net/ssl/HostnameVerifier.h new file mode 100644 index 00000000000..34a6ff01c0b --- /dev/null +++ b/libjava/javax/net/ssl/HostnameVerifier.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_HostnameVerifier__ +#define __javax_net_ssl_HostnameVerifier__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class HostnameVerifier; + class SSLSession; + } + } + } +} + +class javax::net::ssl::HostnameVerifier : public ::java::lang::Object +{ + +public: + virtual jboolean verify(::java::lang::String *, ::javax::net::ssl::SSLSession *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_HostnameVerifier__ diff --git a/libjava/javax/net/ssl/HttpsURLConnection.h b/libjava/javax/net/ssl/HttpsURLConnection.h new file mode 100644 index 00000000000..3f016541938 --- /dev/null +++ b/libjava/javax/net/ssl/HttpsURLConnection.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_HttpsURLConnection__ +#define __javax_net_ssl_HttpsURLConnection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + namespace security + { + class Principal; + namespace cert + { + class Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class HostnameVerifier; + class HttpsURLConnection; + class SSLSocketFactory; + } + } + } +} + +class javax::net::ssl::HttpsURLConnection : public ::java::net::HttpURLConnection +{ + +public: // actually protected + HttpsURLConnection(::java::net::URL *); +public: + static ::javax::net::ssl::HostnameVerifier * getDefaultHostnameVerifier(); + static void setDefaultHostnameVerifier(::javax::net::ssl::HostnameVerifier *); + static ::javax::net::ssl::SSLSocketFactory * getDefaultSSLSocketFactory(); + static void setDefaultSSLSocketFactory(::javax::net::ssl::SSLSocketFactory *); + virtual ::javax::net::ssl::HostnameVerifier * getHostnameVerifier(); + virtual void setHostnameVerifier(::javax::net::ssl::HostnameVerifier *); + virtual ::javax::net::ssl::SSLSocketFactory * getSSLSocketFactory(); + virtual void setSSLSocketFactory(::javax::net::ssl::SSLSocketFactory *); + virtual ::java::security::Principal * getLocalPrincipal(); + virtual ::java::security::Principal * getPeerPrincipal(); + virtual ::java::lang::String * getCipherSuite() = 0; + virtual JArray< ::java::security::cert::Certificate * > * getLocalCertificates() = 0; + virtual JArray< ::java::security::cert::Certificate * > * getServerCertificates() = 0; +private: + static ::javax::net::ssl::HostnameVerifier * defaultVerifier; + static ::javax::net::ssl::SSLSocketFactory * defaultFactory; +public: // actually protected + ::javax::net::ssl::HostnameVerifier * __attribute__((aligned(__alignof__( ::java::net::HttpURLConnection)))) hostnameVerifier; +private: + ::javax::net::ssl::SSLSocketFactory * factory; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_HttpsURLConnection__ diff --git a/libjava/javax/net/ssl/KeyManager.h b/libjava/javax/net/ssl/KeyManager.h new file mode 100644 index 00000000000..80b3c76006c --- /dev/null +++ b/libjava/javax/net/ssl/KeyManager.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_KeyManager__ +#define __javax_net_ssl_KeyManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + } + } + } +} + +class javax::net::ssl::KeyManager : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_KeyManager__ diff --git a/libjava/javax/net/ssl/KeyManagerFactory$1.h b/libjava/javax/net/ssl/KeyManagerFactory$1.h new file mode 100644 index 00000000000..7aff8e92c41 --- /dev/null +++ b/libjava/javax/net/ssl/KeyManagerFactory$1.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_KeyManagerFactory$1__ +#define __javax_net_ssl_KeyManagerFactory$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManagerFactory$1; + } + } + } +} + +class javax::net::ssl::KeyManagerFactory$1 : public ::java::lang::Object +{ + +public: // actually package-private + KeyManagerFactory$1(); +public: + ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_KeyManagerFactory$1__ diff --git a/libjava/javax/net/ssl/KeyManagerFactory.h b/libjava/javax/net/ssl/KeyManagerFactory.h new file mode 100644 index 00000000000..72685063158 --- /dev/null +++ b/libjava/javax/net/ssl/KeyManagerFactory.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_KeyManagerFactory__ +#define __javax_net_ssl_KeyManagerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class KeyStore; + class Provider; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class KeyManagerFactory; + class KeyManagerFactorySpi; + class ManagerFactoryParameters; + } + } + } +} + +class javax::net::ssl::KeyManagerFactory : public ::java::lang::Object +{ + +public: // actually protected + KeyManagerFactory(::javax::net::ssl::KeyManagerFactorySpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::java::lang::String * getDefaultAlgorithm(); + static ::javax::net::ssl::KeyManagerFactory * getInstance(::java::lang::String *); + static ::javax::net::ssl::KeyManagerFactory * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::net::ssl::KeyManagerFactory * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual ::java::lang::String * getAlgorithm(); + virtual JArray< ::javax::net::ssl::KeyManager * > * getKeyManagers(); + virtual ::java::security::Provider * getProvider(); + virtual void init(::javax::net::ssl::ManagerFactoryParameters *); + virtual void init(::java::security::KeyStore *, JArray< jchar > *); +private: + static ::java::lang::String * KEY_MANAGER_FACTORY; + static ::java::lang::String * DEFAULT_ALGORITHM; + ::javax::net::ssl::KeyManagerFactorySpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) kmfSpi; + ::java::security::Provider * provider; + ::java::lang::String * algorithm; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_KeyManagerFactory__ diff --git a/libjava/javax/net/ssl/KeyManagerFactorySpi.h b/libjava/javax/net/ssl/KeyManagerFactorySpi.h new file mode 100644 index 00000000000..4b82525697a --- /dev/null +++ b/libjava/javax/net/ssl/KeyManagerFactorySpi.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_KeyManagerFactorySpi__ +#define __javax_net_ssl_KeyManagerFactorySpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class KeyStore; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class KeyManagerFactorySpi; + class ManagerFactoryParameters; + } + } + } +} + +class javax::net::ssl::KeyManagerFactorySpi : public ::java::lang::Object +{ + +public: + KeyManagerFactorySpi(); +public: // actually protected + virtual JArray< ::javax::net::ssl::KeyManager * > * engineGetKeyManagers() = 0; + virtual void engineInit(::javax::net::ssl::ManagerFactoryParameters *) = 0; + virtual void engineInit(::java::security::KeyStore *, JArray< jchar > *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_KeyManagerFactorySpi__ diff --git a/libjava/javax/net/ssl/KeyStoreBuilderParameters.h b/libjava/javax/net/ssl/KeyStoreBuilderParameters.h new file mode 100644 index 00000000000..da1ada28635 --- /dev/null +++ b/libjava/javax/net/ssl/KeyStoreBuilderParameters.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_KeyStoreBuilderParameters__ +#define __javax_net_ssl_KeyStoreBuilderParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class KeyStoreBuilderParameters; + } + } + } +} + +class javax::net::ssl::KeyStoreBuilderParameters : public ::java::lang::Object +{ + +public: + KeyStoreBuilderParameters(); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_KeyStoreBuilderParameters__ diff --git a/libjava/javax/net/ssl/ManagerFactoryParameters.h b/libjava/javax/net/ssl/ManagerFactoryParameters.h new file mode 100644 index 00000000000..e78e6e5d46a --- /dev/null +++ b/libjava/javax/net/ssl/ManagerFactoryParameters.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_ManagerFactoryParameters__ +#define __javax_net_ssl_ManagerFactoryParameters__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class ManagerFactoryParameters; + } + } + } +} + +class javax::net::ssl::ManagerFactoryParameters : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_ManagerFactoryParameters__ diff --git a/libjava/javax/net/ssl/SSLContext.h b/libjava/javax/net/ssl/SSLContext.h new file mode 100644 index 00000000000..43be1bc99e2 --- /dev/null +++ b/libjava/javax/net/ssl/SSLContext.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLContext__ +#define __javax_net_ssl_SSLContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Provider; + class SecureRandom; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class SSLContext; + class SSLContextSpi; + class SSLEngine; + class SSLServerSocketFactory; + class SSLSessionContext; + class SSLSocketFactory; + class TrustManager; + } + } + } +} + +class javax::net::ssl::SSLContext : public ::java::lang::Object +{ + +public: // actually protected + SSLContext(::javax::net::ssl::SSLContextSpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::javax::net::ssl::SSLContext * getInstance(::java::lang::String *); + static ::javax::net::ssl::SSLContext * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::net::ssl::SSLContext * getInstance(::java::lang::String *, ::java::security::Provider *); + virtual ::javax::net::ssl::SSLEngine * createSSLEngine(); + virtual ::javax::net::ssl::SSLEngine * createSSLEngine(::java::lang::String *, jint); + virtual ::javax::net::ssl::SSLSessionContext * getClientSessionContext(); + virtual ::java::lang::String * getProtocol(); + virtual ::java::security::Provider * getProvider(); + virtual ::javax::net::ssl::SSLSessionContext * getServerSessionContext(); + virtual ::javax::net::ssl::SSLServerSocketFactory * getServerSocketFactory(); + virtual ::javax::net::ssl::SSLSocketFactory * getSocketFactory(); + virtual void init(JArray< ::javax::net::ssl::KeyManager * > *, JArray< ::javax::net::ssl::TrustManager * > *, ::java::security::SecureRandom *); +private: + static ::java::lang::String * SSL_CONTEXT; + ::javax::net::ssl::SSLContextSpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ctxSpi; + ::java::security::Provider * provider; + ::java::lang::String * protocol; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLContext__ diff --git a/libjava/javax/net/ssl/SSLContextSpi.h b/libjava/javax/net/ssl/SSLContextSpi.h new file mode 100644 index 00000000000..618b0157b46 --- /dev/null +++ b/libjava/javax/net/ssl/SSLContextSpi.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLContextSpi__ +#define __javax_net_ssl_SSLContextSpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class SecureRandom; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class KeyManager; + class SSLContextSpi; + class SSLEngine; + class SSLServerSocketFactory; + class SSLSessionContext; + class SSLSocketFactory; + class TrustManager; + } + } + } +} + +class javax::net::ssl::SSLContextSpi : public ::java::lang::Object +{ + +public: + SSLContextSpi(); +public: // actually protected + virtual ::javax::net::ssl::SSLEngine * engineCreateSSLEngine() = 0; + virtual ::javax::net::ssl::SSLEngine * engineCreateSSLEngine(::java::lang::String *, jint) = 0; + virtual ::javax::net::ssl::SSLSessionContext * engineGetClientSessionContext() = 0; + virtual ::javax::net::ssl::SSLSessionContext * engineGetServerSessionContext() = 0; + virtual ::javax::net::ssl::SSLServerSocketFactory * engineGetServerSocketFactory() = 0; + virtual ::javax::net::ssl::SSLSocketFactory * engineGetSocketFactory() = 0; + virtual void engineInit(JArray< ::javax::net::ssl::KeyManager * > *, JArray< ::javax::net::ssl::TrustManager * > *, ::java::security::SecureRandom *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLContextSpi__ diff --git a/libjava/javax/net/ssl/SSLEngine.h b/libjava/javax/net/ssl/SSLEngine.h new file mode 100644 index 00000000000..7bbe1b9c5a9 --- /dev/null +++ b/libjava/javax/net/ssl/SSLEngine.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLEngine__ +#define __javax_net_ssl_SSLEngine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace nio + { + class ByteBuffer; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngine; + class SSLEngineResult; + class SSLEngineResult$HandshakeStatus; + class SSLSession; + } + } + } +} + +class javax::net::ssl::SSLEngine : public ::java::lang::Object +{ + +public: // actually protected + SSLEngine(); + SSLEngine(::java::lang::String *, jint); +public: + virtual void beginHandshake() = 0; + virtual void closeInbound() = 0; + virtual void closeOutbound() = 0; + virtual ::java::lang::Runnable * getDelegatedTask() = 0; + virtual ::java::lang::String * getPeerHost(); + virtual jint getPeerPort(); + virtual JArray< ::java::lang::String * > * getEnabledCipherSuites() = 0; + virtual JArray< ::java::lang::String * > * getEnabledProtocols() = 0; + virtual jboolean getEnableSessionCreation() = 0; + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * getHandshakeStatus() = 0; + virtual jboolean getNeedClientAuth() = 0; + virtual ::javax::net::ssl::SSLSession * getSession() = 0; + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites() = 0; + virtual JArray< ::java::lang::String * > * getSupportedProtocols() = 0; + virtual jboolean getUseClientMode() = 0; + virtual jboolean getWantClientAuth() = 0; + virtual jboolean isInboundDone() = 0; + virtual jboolean isOutboundDone() = 0; + virtual void setEnabledCipherSuites(JArray< ::java::lang::String * > *) = 0; + virtual void setEnabledProtocols(JArray< ::java::lang::String * > *) = 0; + virtual void setEnableSessionCreation(jboolean) = 0; + virtual void setUseClientMode(jboolean) = 0; + virtual void setNeedClientAuth(jboolean) = 0; + virtual void setWantClientAuth(jboolean) = 0; + virtual ::javax::net::ssl::SSLEngineResult * unwrap(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + virtual ::javax::net::ssl::SSLEngineResult * unwrap(::java::nio::ByteBuffer *, JArray< ::java::nio::ByteBuffer * > *); + virtual ::javax::net::ssl::SSLEngineResult * unwrap(::java::nio::ByteBuffer *, JArray< ::java::nio::ByteBuffer * > *, jint, jint) = 0; + virtual ::javax::net::ssl::SSLEngineResult * wrap(::java::nio::ByteBuffer *, ::java::nio::ByteBuffer *); + virtual ::javax::net::ssl::SSLEngineResult * wrap(JArray< ::java::nio::ByteBuffer * > *, ::java::nio::ByteBuffer *); + virtual ::javax::net::ssl::SSLEngineResult * wrap(JArray< ::java::nio::ByteBuffer * > *, jint, jint, ::java::nio::ByteBuffer *) = 0; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) peerHost; + jint peerPort; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLEngine__ diff --git a/libjava/javax/net/ssl/SSLEngineResult$HandshakeStatus.h b/libjava/javax/net/ssl/SSLEngineResult$HandshakeStatus.h new file mode 100644 index 00000000000..8fa544db565 --- /dev/null +++ b/libjava/javax/net/ssl/SSLEngineResult$HandshakeStatus.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLEngineResult$HandshakeStatus__ +#define __javax_net_ssl_SSLEngineResult$HandshakeStatus__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngineResult$HandshakeStatus; + } + } + } +} + +class javax::net::ssl::SSLEngineResult$HandshakeStatus : public ::java::lang::Enum +{ + + SSLEngineResult$HandshakeStatus(::java::lang::String *, jint); +public: + static JArray< ::javax::net::ssl::SSLEngineResult$HandshakeStatus * > * values(); + static ::javax::net::ssl::SSLEngineResult$HandshakeStatus * valueOf(::java::lang::String *); + static ::javax::net::ssl::SSLEngineResult$HandshakeStatus * NOT_HANDSHAKING; + static ::javax::net::ssl::SSLEngineResult$HandshakeStatus * FINISHED; + static ::javax::net::ssl::SSLEngineResult$HandshakeStatus * NEED_TASK; + static ::javax::net::ssl::SSLEngineResult$HandshakeStatus * NEED_WRAP; + static ::javax::net::ssl::SSLEngineResult$HandshakeStatus * NEED_UNWRAP; +private: + static JArray< ::javax::net::ssl::SSLEngineResult$HandshakeStatus * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLEngineResult$HandshakeStatus__ diff --git a/libjava/javax/net/ssl/SSLEngineResult$Status.h b/libjava/javax/net/ssl/SSLEngineResult$Status.h new file mode 100644 index 00000000000..925e3d5e8d7 --- /dev/null +++ b/libjava/javax/net/ssl/SSLEngineResult$Status.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLEngineResult$Status__ +#define __javax_net_ssl_SSLEngineResult$Status__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngineResult$Status; + } + } + } +} + +class javax::net::ssl::SSLEngineResult$Status : public ::java::lang::Enum +{ + + SSLEngineResult$Status(::java::lang::String *, jint); +public: + static JArray< ::javax::net::ssl::SSLEngineResult$Status * > * values(); + static ::javax::net::ssl::SSLEngineResult$Status * valueOf(::java::lang::String *); + static ::javax::net::ssl::SSLEngineResult$Status * BUFFER_UNDERFLOW; + static ::javax::net::ssl::SSLEngineResult$Status * BUFFER_OVERFLOW; + static ::javax::net::ssl::SSLEngineResult$Status * OK; + static ::javax::net::ssl::SSLEngineResult$Status * CLOSED; +private: + static JArray< ::javax::net::ssl::SSLEngineResult$Status * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLEngineResult$Status__ diff --git a/libjava/javax/net/ssl/SSLEngineResult.h b/libjava/javax/net/ssl/SSLEngineResult.h new file mode 100644 index 00000000000..c88f3e4f895 --- /dev/null +++ b/libjava/javax/net/ssl/SSLEngineResult.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLEngineResult__ +#define __javax_net_ssl_SSLEngineResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngineResult; + class SSLEngineResult$HandshakeStatus; + class SSLEngineResult$Status; + } + } + } +} + +class javax::net::ssl::SSLEngineResult : public ::java::lang::Object +{ + +public: + SSLEngineResult(::javax::net::ssl::SSLEngineResult$Status *, ::javax::net::ssl::SSLEngineResult$HandshakeStatus *, jint, jint); + virtual jint bytesConsumed(); + virtual jint bytesProduced(); + virtual ::javax::net::ssl::SSLEngineResult$HandshakeStatus * getHandshakeStatus(); + virtual ::javax::net::ssl::SSLEngineResult$Status * getStatus(); + virtual ::java::lang::String * toString(); +private: + ::javax::net::ssl::SSLEngineResult$HandshakeStatus * __attribute__((aligned(__alignof__( ::java::lang::Object)))) handshakeStatus; + ::javax::net::ssl::SSLEngineResult$Status * status; + jint bytesConsumed__; + jint bytesProduced__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLEngineResult__ diff --git a/libjava/javax/net/ssl/SSLException.h b/libjava/javax/net/ssl/SSLException.h new file mode 100644 index 00000000000..7364cb101ab --- /dev/null +++ b/libjava/javax/net/ssl/SSLException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLException__ +#define __javax_net_ssl_SSLException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLException; + } + } + } +} + +class javax::net::ssl::SSLException : public ::java::io::IOException +{ + +public: + SSLException(::java::lang::String *); + SSLException(::java::lang::String *, ::java::lang::Throwable *); + SSLException(::java::lang::Throwable *); +private: + static const jlong serialVersionUID = 4511006460650708967LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLException__ diff --git a/libjava/javax/net/ssl/SSLHandshakeException.h b/libjava/javax/net/ssl/SSLHandshakeException.h new file mode 100644 index 00000000000..0894667b978 --- /dev/null +++ b/libjava/javax/net/ssl/SSLHandshakeException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLHandshakeException__ +#define __javax_net_ssl_SSLHandshakeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLHandshakeException; + } + } + } +} + +class javax::net::ssl::SSLHandshakeException : public ::javax::net::ssl::SSLException +{ + +public: + SSLHandshakeException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLHandshakeException__ diff --git a/libjava/javax/net/ssl/SSLKeyException.h b/libjava/javax/net/ssl/SSLKeyException.h new file mode 100644 index 00000000000..4a6d8b69dd1 --- /dev/null +++ b/libjava/javax/net/ssl/SSLKeyException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLKeyException__ +#define __javax_net_ssl_SSLKeyException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLKeyException; + } + } + } +} + +class javax::net::ssl::SSLKeyException : public ::javax::net::ssl::SSLException +{ + +public: + SSLKeyException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLKeyException__ diff --git a/libjava/javax/net/ssl/SSLPeerUnverifiedException.h b/libjava/javax/net/ssl/SSLPeerUnverifiedException.h new file mode 100644 index 00000000000..d5085f1ff59 --- /dev/null +++ b/libjava/javax/net/ssl/SSLPeerUnverifiedException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLPeerUnverifiedException__ +#define __javax_net_ssl_SSLPeerUnverifiedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLPeerUnverifiedException; + } + } + } +} + +class javax::net::ssl::SSLPeerUnverifiedException : public ::javax::net::ssl::SSLException +{ + +public: + SSLPeerUnverifiedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLPeerUnverifiedException__ diff --git a/libjava/javax/net/ssl/SSLPermission.h b/libjava/javax/net/ssl/SSLPermission.h new file mode 100644 index 00000000000..32ccc233ffc --- /dev/null +++ b/libjava/javax/net/ssl/SSLPermission.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLPermission__ +#define __javax_net_ssl_SSLPermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLPermission; + } + } + } +} + +class javax::net::ssl::SSLPermission : public ::java::security::BasicPermission +{ + +public: + SSLPermission(::java::lang::String *); + SSLPermission(::java::lang::String *, ::java::lang::String *); +private: + static const jlong serialVersionUID = -3456898025505876775LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLPermission__ diff --git a/libjava/javax/net/ssl/SSLProtocolException.h b/libjava/javax/net/ssl/SSLProtocolException.h new file mode 100644 index 00000000000..afe38494ee0 --- /dev/null +++ b/libjava/javax/net/ssl/SSLProtocolException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLProtocolException__ +#define __javax_net_ssl_SSLProtocolException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLProtocolException; + } + } + } +} + +class javax::net::ssl::SSLProtocolException : public ::javax::net::ssl::SSLException +{ + +public: + SSLProtocolException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLProtocolException__ diff --git a/libjava/javax/net/ssl/SSLServerSocket.h b/libjava/javax/net/ssl/SSLServerSocket.h new file mode 100644 index 00000000000..e47aa9e2ad7 --- /dev/null +++ b/libjava/javax/net/ssl/SSLServerSocket.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLServerSocket__ +#define __javax_net_ssl_SSLServerSocket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLServerSocket; + } + } + } +} + +class javax::net::ssl::SSLServerSocket : public ::java::net::ServerSocket +{ + +public: // actually protected + SSLServerSocket(); + SSLServerSocket(jint); + SSLServerSocket(jint, jint); + SSLServerSocket(jint, jint, ::java::net::InetAddress *); +public: + virtual JArray< ::java::lang::String * > * getEnabledCipherSuites() = 0; + virtual void setEnabledCipherSuites(JArray< ::java::lang::String * > *) = 0; + virtual JArray< ::java::lang::String * > * getEnabledProtocols() = 0; + virtual void setEnabledProtocols(JArray< ::java::lang::String * > *) = 0; + virtual jboolean getEnableSessionCreation() = 0; + virtual void setEnableSessionCreation(jboolean) = 0; + virtual jboolean getNeedClientAuth() = 0; + virtual void setNeedClientAuth(jboolean) = 0; + virtual jboolean getUseClientMode() = 0; + virtual void setUseClientMode(jboolean) = 0; + virtual jboolean getWantClientAuth() = 0; + virtual void setWantClientAuth(jboolean) = 0; + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites() = 0; + virtual JArray< ::java::lang::String * > * getSupportedProtocols() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLServerSocket__ diff --git a/libjava/javax/net/ssl/SSLServerSocketFactory.h b/libjava/javax/net/ssl/SSLServerSocketFactory.h new file mode 100644 index 00000000000..cffb2fbd788 --- /dev/null +++ b/libjava/javax/net/ssl/SSLServerSocketFactory.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLServerSocketFactory__ +#define __javax_net_ssl_SSLServerSocketFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace net + { + class ServerSocketFactory; + namespace ssl + { + class SSLContext; + class SSLServerSocketFactory; + } + } + } +} + +class javax::net::ssl::SSLServerSocketFactory : public ::javax::net::ServerSocketFactory +{ + +public: // actually protected + SSLServerSocketFactory(); +public: + static ::javax::net::ServerSocketFactory * getDefault(); + virtual JArray< ::java::lang::String * > * getDefaultCipherSuites() = 0; + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites() = 0; +private: + static ::javax::net::ssl::SSLContext * context; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLServerSocketFactory__ diff --git a/libjava/javax/net/ssl/SSLSession.h b/libjava/javax/net/ssl/SSLSession.h new file mode 100644 index 00000000000..ade9a0e309d --- /dev/null +++ b/libjava/javax/net/ssl/SSLSession.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLSession__ +#define __javax_net_ssl_SSLSession__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Principal; + namespace cert + { + class Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSession; + class SSLSessionContext; + } + } + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class javax::net::ssl::SSLSession : public ::java::lang::Object +{ + +public: + virtual jint getApplicationBufferSize() = 0; + virtual ::java::lang::String * getCipherSuite() = 0; + virtual jlong getCreationTime() = 0; + virtual JArray< jbyte > * getId() = 0; + virtual jlong getLastAccessedTime() = 0; + virtual JArray< ::java::security::cert::Certificate * > * getLocalCertificates() = 0; + virtual ::java::security::Principal * getLocalPrincipal() = 0; + virtual jint getPacketBufferSize() = 0; + virtual JArray< ::java::security::cert::Certificate * > * getPeerCertificates() = 0; + virtual JArray< ::javax::security::cert::X509Certificate * > * getPeerCertificateChain() = 0; + virtual ::java::lang::String * getPeerHost() = 0; + virtual jint getPeerPort() = 0; + virtual ::java::security::Principal * getPeerPrincipal() = 0; + virtual ::java::lang::String * getProtocol() = 0; + virtual ::javax::net::ssl::SSLSessionContext * getSessionContext() = 0; + virtual JArray< ::java::lang::String * > * getValueNames() = 0; + virtual ::java::lang::Object * getValue(::java::lang::String *) = 0; + virtual void invalidate() = 0; + virtual jboolean isValid() = 0; + virtual void putValue(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void removeValue(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_SSLSession__ diff --git a/libjava/javax/net/ssl/SSLSessionBindingEvent.h b/libjava/javax/net/ssl/SSLSessionBindingEvent.h new file mode 100644 index 00000000000..b8b62315132 --- /dev/null +++ b/libjava/javax/net/ssl/SSLSessionBindingEvent.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLSessionBindingEvent__ +#define __javax_net_ssl_SSLSessionBindingEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSession; + class SSLSessionBindingEvent; + } + } + } +} + +class javax::net::ssl::SSLSessionBindingEvent : public ::java::util::EventObject +{ + +public: + SSLSessionBindingEvent(::javax::net::ssl::SSLSession *, ::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual ::javax::net::ssl::SSLSession * getSession(); +private: + static const jlong serialVersionUID = 3989172637106345LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLSessionBindingEvent__ diff --git a/libjava/javax/net/ssl/SSLSessionBindingListener.h b/libjava/javax/net/ssl/SSLSessionBindingListener.h new file mode 100644 index 00000000000..442b749f3ff --- /dev/null +++ b/libjava/javax/net/ssl/SSLSessionBindingListener.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLSessionBindingListener__ +#define __javax_net_ssl_SSLSessionBindingListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSessionBindingEvent; + class SSLSessionBindingListener; + } + } + } +} + +class javax::net::ssl::SSLSessionBindingListener : public ::java::lang::Object +{ + +public: + virtual void valueBound(::javax::net::ssl::SSLSessionBindingEvent *) = 0; + virtual void valueUnbound(::javax::net::ssl::SSLSessionBindingEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_SSLSessionBindingListener__ diff --git a/libjava/javax/net/ssl/SSLSessionContext.h b/libjava/javax/net/ssl/SSLSessionContext.h new file mode 100644 index 00000000000..ec20fb6a67c --- /dev/null +++ b/libjava/javax/net/ssl/SSLSessionContext.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLSessionContext__ +#define __javax_net_ssl_SSLSessionContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSession; + class SSLSessionContext; + } + } + } +} + +class javax::net::ssl::SSLSessionContext : public ::java::lang::Object +{ + +public: + virtual ::java::util::Enumeration * getIds() = 0; + virtual ::javax::net::ssl::SSLSession * getSession(JArray< jbyte > *) = 0; + virtual jint getSessionCacheSize() = 0; + virtual jint getSessionTimeout() = 0; + virtual void setSessionCacheSize(jint) = 0; + virtual void setSessionTimeout(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_SSLSessionContext__ diff --git a/libjava/javax/net/ssl/SSLSocket.h b/libjava/javax/net/ssl/SSLSocket.h new file mode 100644 index 00000000000..061bfe15ef0 --- /dev/null +++ b/libjava/javax/net/ssl/SSLSocket.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLSocket__ +#define __javax_net_ssl_SSLSocket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class HandshakeCompletedListener; + class SSLSession; + class SSLSocket; + } + } + } +} + +class javax::net::ssl::SSLSocket : public ::java::net::Socket +{ + +public: // actually protected + SSLSocket(); + SSLSocket(::java::lang::String *, jint); + SSLSocket(::java::net::InetAddress *, jint); + SSLSocket(::java::lang::String *, jint, ::java::net::InetAddress *, jint); + SSLSocket(::java::net::InetAddress *, jint, ::java::net::InetAddress *, jint); +public: + virtual void addHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *) = 0; + virtual void removeHandshakeCompletedListener(::javax::net::ssl::HandshakeCompletedListener *) = 0; + virtual JArray< ::java::lang::String * > * getEnabledCipherSuites() = 0; + virtual void setEnabledCipherSuites(JArray< ::java::lang::String * > *) = 0; + virtual JArray< ::java::lang::String * > * getEnabledProtocols() = 0; + virtual void setEnabledProtocols(JArray< ::java::lang::String * > *) = 0; + virtual jboolean getEnableSessionCreation() = 0; + virtual void setEnableSessionCreation(jboolean) = 0; + virtual jboolean getNeedClientAuth() = 0; + virtual void setNeedClientAuth(jboolean) = 0; + virtual ::javax::net::ssl::SSLSession * getSession() = 0; + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites() = 0; + virtual JArray< ::java::lang::String * > * getSupportedProtocols() = 0; + virtual jboolean getUseClientMode() = 0; + virtual void setUseClientMode(jboolean) = 0; + virtual jboolean getWantClientAuth() = 0; + virtual void setWantClientAuth(jboolean) = 0; + virtual void startHandshake() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLSocket__ diff --git a/libjava/javax/net/ssl/SSLSocketFactory.h b/libjava/javax/net/ssl/SSLSocketFactory.h new file mode 100644 index 00000000000..624a97ab6a6 --- /dev/null +++ b/libjava/javax/net/ssl/SSLSocketFactory.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_SSLSocketFactory__ +#define __javax_net_ssl_SSLSocketFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class Socket; + } + } + namespace javax + { + namespace net + { + class SocketFactory; + namespace ssl + { + class SSLContext; + class SSLSocketFactory; + } + } + } +} + +class javax::net::ssl::SSLSocketFactory : public ::javax::net::SocketFactory +{ + +public: + SSLSocketFactory(); + static ::javax::net::SocketFactory * getDefault(); + virtual ::java::net::Socket * createSocket(::java::net::Socket *, ::java::lang::String *, jint, jboolean) = 0; + virtual JArray< ::java::lang::String * > * getDefaultCipherSuites() = 0; + virtual JArray< ::java::lang::String * > * getSupportedCipherSuites() = 0; +private: + static ::javax::net::ssl::SSLContext * context; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_SSLSocketFactory__ diff --git a/libjava/javax/net/ssl/TrivialHostnameVerifier.h b/libjava/javax/net/ssl/TrivialHostnameVerifier.h new file mode 100644 index 00000000000..e360858239d --- /dev/null +++ b/libjava/javax/net/ssl/TrivialHostnameVerifier.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_TrivialHostnameVerifier__ +#define __javax_net_ssl_TrivialHostnameVerifier__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSession; + class TrivialHostnameVerifier; + } + } + } +} + +class javax::net::ssl::TrivialHostnameVerifier : public ::java::lang::Object +{ + +public: // actually package-private + TrivialHostnameVerifier(); +public: + virtual jboolean verify(::java::lang::String *, ::javax::net::ssl::SSLSession *); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_TrivialHostnameVerifier__ diff --git a/libjava/javax/net/ssl/TrustManager.h b/libjava/javax/net/ssl/TrustManager.h new file mode 100644 index 00000000000..3ef89b7b79a --- /dev/null +++ b/libjava/javax/net/ssl/TrustManager.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_TrustManager__ +#define __javax_net_ssl_TrustManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class TrustManager; + } + } + } +} + +class javax::net::ssl::TrustManager : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_TrustManager__ diff --git a/libjava/javax/net/ssl/TrustManagerFactory$1.h b/libjava/javax/net/ssl/TrustManagerFactory$1.h new file mode 100644 index 00000000000..8649b480a3f --- /dev/null +++ b/libjava/javax/net/ssl/TrustManagerFactory$1.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_TrustManagerFactory$1__ +#define __javax_net_ssl_TrustManagerFactory$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace net + { + namespace ssl + { + class TrustManagerFactory$1; + } + } + } +} + +class javax::net::ssl::TrustManagerFactory$1 : public ::java::lang::Object +{ + +public: // actually package-private + TrustManagerFactory$1(); +public: + ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_TrustManagerFactory$1__ diff --git a/libjava/javax/net/ssl/TrustManagerFactory.h b/libjava/javax/net/ssl/TrustManagerFactory.h new file mode 100644 index 00000000000..2d87597c199 --- /dev/null +++ b/libjava/javax/net/ssl/TrustManagerFactory.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_TrustManagerFactory__ +#define __javax_net_ssl_TrustManagerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class KeyStore; + class Provider; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class ManagerFactoryParameters; + class TrustManager; + class TrustManagerFactory; + class TrustManagerFactorySpi; + } + } + } +} + +class javax::net::ssl::TrustManagerFactory : public ::java::lang::Object +{ + +public: // actually protected + TrustManagerFactory(::javax::net::ssl::TrustManagerFactorySpi *, ::java::security::Provider *, ::java::lang::String *); +public: + static ::javax::net::ssl::TrustManagerFactory * getInstance(::java::lang::String *); + static ::javax::net::ssl::TrustManagerFactory * getInstance(::java::lang::String *, ::java::lang::String *); + static ::javax::net::ssl::TrustManagerFactory * getInstance(::java::lang::String *, ::java::security::Provider *); + static ::java::lang::String * getDefaultAlgorithm(); + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::security::Provider * getProvider(); + virtual JArray< ::javax::net::ssl::TrustManager * > * getTrustManagers(); + virtual void init(::javax::net::ssl::ManagerFactoryParameters *); + virtual void init(::java::security::KeyStore *); +private: + static ::java::lang::String * TRUST_MANAGER_FACTORY; + static ::java::lang::String * DEFAULT_ALGORITHM; + ::javax::net::ssl::TrustManagerFactorySpi * __attribute__((aligned(__alignof__( ::java::lang::Object)))) tmfSpi; + ::java::security::Provider * provider; + ::java::lang::String * algorithm; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_TrustManagerFactory__ diff --git a/libjava/javax/net/ssl/TrustManagerFactorySpi.h b/libjava/javax/net/ssl/TrustManagerFactorySpi.h new file mode 100644 index 00000000000..3c1343d74a8 --- /dev/null +++ b/libjava/javax/net/ssl/TrustManagerFactorySpi.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_TrustManagerFactorySpi__ +#define __javax_net_ssl_TrustManagerFactorySpi__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class KeyStore; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class ManagerFactoryParameters; + class TrustManager; + class TrustManagerFactorySpi; + } + } + } +} + +class javax::net::ssl::TrustManagerFactorySpi : public ::java::lang::Object +{ + +public: + TrustManagerFactorySpi(); +public: // actually protected + virtual JArray< ::javax::net::ssl::TrustManager * > * engineGetTrustManagers() = 0; + virtual void engineInit(::javax::net::ssl::ManagerFactoryParameters *) = 0; + virtual void engineInit(::java::security::KeyStore *) = 0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_TrustManagerFactorySpi__ diff --git a/libjava/javax/net/ssl/X509ExtendedKeyManager.h b/libjava/javax/net/ssl/X509ExtendedKeyManager.h new file mode 100644 index 00000000000..cb3b68c3a0c --- /dev/null +++ b/libjava/javax/net/ssl/X509ExtendedKeyManager.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_X509ExtendedKeyManager__ +#define __javax_net_ssl_X509ExtendedKeyManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class Socket; + } + namespace security + { + class Principal; + class PrivateKey; + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLEngine; + class X509ExtendedKeyManager; + } + } + } +} + +class javax::net::ssl::X509ExtendedKeyManager : public ::java::lang::Object +{ + +public: // actually protected + X509ExtendedKeyManager(); +public: + virtual ::java::lang::String * chooseEngineClientAlias(JArray< ::java::lang::String * > *, JArray< ::java::security::Principal * > *, ::javax::net::ssl::SSLEngine *); + virtual ::java::lang::String * chooseEngineServerAlias(::java::lang::String *, JArray< ::java::security::Principal * > *, ::javax::net::ssl::SSLEngine *); + virtual ::java::lang::String * chooseClientAlias(JArray< ::java::lang::String * > *, JArray< ::java::security::Principal * > *, ::java::net::Socket *) = 0; + virtual ::java::lang::String * chooseServerAlias(::java::lang::String *, JArray< ::java::security::Principal * > *, ::java::net::Socket *) = 0; + virtual JArray< ::java::security::cert::X509Certificate * > * getCertificateChain(::java::lang::String *) = 0; + virtual JArray< ::java::lang::String * > * getClientAliases(::java::lang::String *, JArray< ::java::security::Principal * > *) = 0; + virtual ::java::security::PrivateKey * getPrivateKey(::java::lang::String *) = 0; + virtual JArray< ::java::lang::String * > * getServerAliases(::java::lang::String *, JArray< ::java::security::Principal * > *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_net_ssl_X509ExtendedKeyManager__ diff --git a/libjava/javax/net/ssl/X509KeyManager.h b/libjava/javax/net/ssl/X509KeyManager.h new file mode 100644 index 00000000000..9ce4f14c433 --- /dev/null +++ b/libjava/javax/net/ssl/X509KeyManager.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_X509KeyManager__ +#define __javax_net_ssl_X509KeyManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class Socket; + } + namespace security + { + class Principal; + class PrivateKey; + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class X509KeyManager; + } + } + } +} + +class javax::net::ssl::X509KeyManager : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * chooseClientAlias(JArray< ::java::lang::String * > *, JArray< ::java::security::Principal * > *, ::java::net::Socket *) = 0; + virtual ::java::lang::String * chooseServerAlias(::java::lang::String *, JArray< ::java::security::Principal * > *, ::java::net::Socket *) = 0; + virtual JArray< ::java::security::cert::X509Certificate * > * getCertificateChain(::java::lang::String *) = 0; + virtual JArray< ::java::lang::String * > * getClientAliases(::java::lang::String *, JArray< ::java::security::Principal * > *) = 0; + virtual ::java::security::PrivateKey * getPrivateKey(::java::lang::String *) = 0; + virtual JArray< ::java::lang::String * > * getServerAliases(::java::lang::String *, JArray< ::java::security::Principal * > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_X509KeyManager__ diff --git a/libjava/javax/net/ssl/X509TrustManager.h b/libjava/javax/net/ssl/X509TrustManager.h new file mode 100644 index 00000000000..4afd47e09a8 --- /dev/null +++ b/libjava/javax/net/ssl/X509TrustManager.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_net_ssl_X509TrustManager__ +#define __javax_net_ssl_X509TrustManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class X509TrustManager; + } + } + } +} + +class javax::net::ssl::X509TrustManager : public ::java::lang::Object +{ + +public: + virtual void checkClientTrusted(JArray< ::java::security::cert::X509Certificate * > *, ::java::lang::String *) = 0; + virtual void checkServerTrusted(JArray< ::java::security::cert::X509Certificate * > *, ::java::lang::String *) = 0; + virtual JArray< ::java::security::cert::X509Certificate * > * getAcceptedIssuers() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_net_ssl_X509TrustManager__ diff --git a/libjava/javax/print/AttributeException.h b/libjava/javax/print/AttributeException.h new file mode 100644 index 00000000000..2402a177205 --- /dev/null +++ b/libjava/javax/print/AttributeException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_AttributeException__ +#define __javax_print_AttributeException__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + class AttributeException; + namespace attribute + { + class Attribute; + } + } + } +} + +class javax::print::AttributeException : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::Class * > * getUnsupportedAttributes() = 0; + virtual JArray< ::javax::print::attribute::Attribute * > * getUnsupportedValues() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_AttributeException__ diff --git a/libjava/javax/print/CancelablePrintJob.h b/libjava/javax/print/CancelablePrintJob.h new file mode 100644 index 00000000000..31b006e9551 --- /dev/null +++ b/libjava/javax/print/CancelablePrintJob.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_CancelablePrintJob__ +#define __javax_print_CancelablePrintJob__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class CancelablePrintJob; + class Doc; + class PrintService; + namespace attribute + { + class PrintJobAttributeSet; + class PrintRequestAttributeSet; + } + namespace event + { + class PrintJobAttributeListener; + class PrintJobListener; + } + } + } +} + +class javax::print::CancelablePrintJob : public ::java::lang::Object +{ + +public: + virtual void cancel() = 0; + virtual void addPrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *, ::javax::print::attribute::PrintJobAttributeSet *) = 0; + virtual void addPrintJobListener(::javax::print::event::PrintJobListener *) = 0; + virtual ::javax::print::attribute::PrintJobAttributeSet * getAttributes() = 0; + virtual ::javax::print::PrintService * getPrintService() = 0; + virtual void print(::javax::print::Doc *, ::javax::print::attribute::PrintRequestAttributeSet *) = 0; + virtual void removePrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *) = 0; + virtual void removePrintJobListener(::javax::print::event::PrintJobListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_CancelablePrintJob__ diff --git a/libjava/javax/print/Doc.h b/libjava/javax/print/Doc.h new file mode 100644 index 00000000000..6b3bc34c354 --- /dev/null +++ b/libjava/javax/print/Doc.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_Doc__ +#define __javax_print_Doc__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class Doc; + class DocFlavor; + namespace attribute + { + class DocAttributeSet; + } + } + } +} + +class javax::print::Doc : public ::java::lang::Object +{ + +public: + virtual ::javax::print::attribute::DocAttributeSet * getAttributes() = 0; + virtual ::javax::print::DocFlavor * getDocFlavor() = 0; + virtual ::java::lang::Object * getPrintData() = 0; + virtual ::java::io::Reader * getReaderForText() = 0; + virtual ::java::io::InputStream * getStreamForBytes() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_Doc__ diff --git a/libjava/javax/print/DocFlavor$BYTE_ARRAY.h b/libjava/javax/print/DocFlavor$BYTE_ARRAY.h new file mode 100644 index 00000000000..006ddb000e0 --- /dev/null +++ b/libjava/javax/print/DocFlavor$BYTE_ARRAY.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor$BYTE_ARRAY__ +#define __javax_print_DocFlavor$BYTE_ARRAY__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor$BYTE_ARRAY; + } + } +} + +class javax::print::DocFlavor$BYTE_ARRAY : public ::javax::print::DocFlavor +{ + +public: + DocFlavor$BYTE_ARRAY(::java::lang::String *); +private: + static const jlong serialVersionUID = -9065578006593857475LL; +public: + static ::javax::print::DocFlavor$BYTE_ARRAY * AUTOSENSE; + static ::javax::print::DocFlavor$BYTE_ARRAY * GIF; + static ::javax::print::DocFlavor$BYTE_ARRAY * JPEG; + static ::javax::print::DocFlavor$BYTE_ARRAY * PCL; + static ::javax::print::DocFlavor$BYTE_ARRAY * PDF; + static ::javax::print::DocFlavor$BYTE_ARRAY * PNG; + static ::javax::print::DocFlavor$BYTE_ARRAY * POSTSCRIPT; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_HTML_HOST; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_HTML_US_ASCII; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_HTML_UTF_16; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_HTML_UTF_16BE; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_HTML_UTF_16LE; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_HTML_UTF_8; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_PLAIN_HOST; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_PLAIN_US_ASCII; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_PLAIN_UTF_16; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_PLAIN_UTF_16BE; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_PLAIN_UTF_16LE; + static ::javax::print::DocFlavor$BYTE_ARRAY * TEXT_PLAIN_UTF_8; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor$BYTE_ARRAY__ diff --git a/libjava/javax/print/DocFlavor$CHAR_ARRAY.h b/libjava/javax/print/DocFlavor$CHAR_ARRAY.h new file mode 100644 index 00000000000..1909d2e151a --- /dev/null +++ b/libjava/javax/print/DocFlavor$CHAR_ARRAY.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor$CHAR_ARRAY__ +#define __javax_print_DocFlavor$CHAR_ARRAY__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor$CHAR_ARRAY; + } + } +} + +class javax::print::DocFlavor$CHAR_ARRAY : public ::javax::print::DocFlavor +{ + +public: + DocFlavor$CHAR_ARRAY(::java::lang::String *); +private: + static const jlong serialVersionUID = -8720590903724405128LL; +public: + static ::javax::print::DocFlavor$CHAR_ARRAY * TEXT_HTML; + static ::javax::print::DocFlavor$CHAR_ARRAY * TEXT_PLAIN; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor$CHAR_ARRAY__ diff --git a/libjava/javax/print/DocFlavor$INPUT_STREAM.h b/libjava/javax/print/DocFlavor$INPUT_STREAM.h new file mode 100644 index 00000000000..3c635deed2b --- /dev/null +++ b/libjava/javax/print/DocFlavor$INPUT_STREAM.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor$INPUT_STREAM__ +#define __javax_print_DocFlavor$INPUT_STREAM__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor$INPUT_STREAM; + } + } +} + +class javax::print::DocFlavor$INPUT_STREAM : public ::javax::print::DocFlavor +{ + +public: + DocFlavor$INPUT_STREAM(::java::lang::String *); +private: + static const jlong serialVersionUID = -7045842700749194127LL; +public: + static ::javax::print::DocFlavor$INPUT_STREAM * AUTOSENSE; + static ::javax::print::DocFlavor$INPUT_STREAM * GIF; + static ::javax::print::DocFlavor$INPUT_STREAM * JPEG; + static ::javax::print::DocFlavor$INPUT_STREAM * PCL; + static ::javax::print::DocFlavor$INPUT_STREAM * PDF; + static ::javax::print::DocFlavor$INPUT_STREAM * PNG; + static ::javax::print::DocFlavor$INPUT_STREAM * POSTSCRIPT; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_HTML_HOST; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_HTML_US_ASCII; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_HTML_UTF_16; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_HTML_UTF_16BE; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_HTML_UTF_16LE; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_HTML_UTF_8; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_PLAIN_HOST; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_PLAIN_US_ASCII; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_PLAIN_UTF_16; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_PLAIN_UTF_16BE; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_PLAIN_UTF_16LE; + static ::javax::print::DocFlavor$INPUT_STREAM * TEXT_PLAIN_UTF_8; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor$INPUT_STREAM__ diff --git a/libjava/javax/print/DocFlavor$READER.h b/libjava/javax/print/DocFlavor$READER.h new file mode 100644 index 00000000000..c6a24cd62f0 --- /dev/null +++ b/libjava/javax/print/DocFlavor$READER.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor$READER__ +#define __javax_print_DocFlavor$READER__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor$READER; + } + } +} + +class javax::print::DocFlavor$READER : public ::javax::print::DocFlavor +{ + +public: + DocFlavor$READER(::java::lang::String *); +private: + static const jlong serialVersionUID = 7100295812579351567LL; +public: + static ::javax::print::DocFlavor$READER * TEXT_HTML; + static ::javax::print::DocFlavor$READER * TEXT_PLAIN; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor$READER__ diff --git a/libjava/javax/print/DocFlavor$SERVICE_FORMATTED.h b/libjava/javax/print/DocFlavor$SERVICE_FORMATTED.h new file mode 100644 index 00000000000..85386b18d8d --- /dev/null +++ b/libjava/javax/print/DocFlavor$SERVICE_FORMATTED.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor$SERVICE_FORMATTED__ +#define __javax_print_DocFlavor$SERVICE_FORMATTED__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor$SERVICE_FORMATTED; + } + } +} + +class javax::print::DocFlavor$SERVICE_FORMATTED : public ::javax::print::DocFlavor +{ + +public: + DocFlavor$SERVICE_FORMATTED(::java::lang::String *); +private: + static const jlong serialVersionUID = 6181337766266637256LL; +public: + static ::javax::print::DocFlavor$SERVICE_FORMATTED * PAGEABLE; + static ::javax::print::DocFlavor$SERVICE_FORMATTED * PRINTABLE; + static ::javax::print::DocFlavor$SERVICE_FORMATTED * RENDERABLE_IMAGE; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor$SERVICE_FORMATTED__ diff --git a/libjava/javax/print/DocFlavor$STRING.h b/libjava/javax/print/DocFlavor$STRING.h new file mode 100644 index 00000000000..c1ef38bbd84 --- /dev/null +++ b/libjava/javax/print/DocFlavor$STRING.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor$STRING__ +#define __javax_print_DocFlavor$STRING__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor$STRING; + } + } +} + +class javax::print::DocFlavor$STRING : public ::javax::print::DocFlavor +{ + +public: + DocFlavor$STRING(::java::lang::String *); +private: + static const jlong serialVersionUID = 4414407504887034035LL; +public: + static ::javax::print::DocFlavor$STRING * TEXT_HTML; + static ::javax::print::DocFlavor$STRING * TEXT_PLAIN; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor$STRING__ diff --git a/libjava/javax/print/DocFlavor$URL.h b/libjava/javax/print/DocFlavor$URL.h new file mode 100644 index 00000000000..82bc8569ab3 --- /dev/null +++ b/libjava/javax/print/DocFlavor$URL.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor$URL__ +#define __javax_print_DocFlavor$URL__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor$URL; + } + } +} + +class javax::print::DocFlavor$URL : public ::javax::print::DocFlavor +{ + +public: + DocFlavor$URL(::java::lang::String *); +private: + static const jlong serialVersionUID = 2936725788144902062LL; +public: + static ::javax::print::DocFlavor$URL * AUTOSENSE; + static ::javax::print::DocFlavor$URL * GIF; + static ::javax::print::DocFlavor$URL * JPEG; + static ::javax::print::DocFlavor$URL * PCL; + static ::javax::print::DocFlavor$URL * PDF; + static ::javax::print::DocFlavor$URL * PNG; + static ::javax::print::DocFlavor$URL * POSTSCRIPT; + static ::javax::print::DocFlavor$URL * TEXT_HTML_HOST; + static ::javax::print::DocFlavor$URL * TEXT_HTML_US_ASCII; + static ::javax::print::DocFlavor$URL * TEXT_HTML_UTF_16; + static ::javax::print::DocFlavor$URL * TEXT_HTML_UTF_16BE; + static ::javax::print::DocFlavor$URL * TEXT_HTML_UTF_16LE; + static ::javax::print::DocFlavor$URL * TEXT_HTML_UTF_8; + static ::javax::print::DocFlavor$URL * TEXT_PLAIN_HOST; + static ::javax::print::DocFlavor$URL * TEXT_PLAIN_US_ASCII; + static ::javax::print::DocFlavor$URL * TEXT_PLAIN_UTF_16; + static ::javax::print::DocFlavor$URL * TEXT_PLAIN_UTF_16BE; + static ::javax::print::DocFlavor$URL * TEXT_PLAIN_UTF_16LE; + static ::javax::print::DocFlavor$URL * TEXT_PLAIN_UTF_8; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor$URL__ diff --git a/libjava/javax/print/DocFlavor.h b/libjava/javax/print/DocFlavor.h new file mode 100644 index 00000000000..f5331984a28 --- /dev/null +++ b/libjava/javax/print/DocFlavor.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocFlavor__ +#define __javax_print_DocFlavor__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor; + } + } +} + +class javax::print::DocFlavor : public ::java::lang::Object +{ + +public: + DocFlavor(::java::lang::String *, ::java::lang::String *); +private: + void parseMimeType(::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * getMediaSubtype(); + virtual ::java::lang::String * getMediaType(); + virtual ::java::lang::String * getMimeType(); + virtual ::java::lang::String * getParameter(::java::lang::String *); + virtual ::java::lang::String * getRepresentationClassName(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = -4512080796965449721LL; +public: + static ::java::lang::String * hostEncoding; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mediaSubtype; + ::java::lang::String * mediaType; + ::java::util::TreeMap * params; + ::java::lang::String * myClassName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_DocFlavor__ diff --git a/libjava/javax/print/DocPrintJob.h b/libjava/javax/print/DocPrintJob.h new file mode 100644 index 00000000000..3a450e180d0 --- /dev/null +++ b/libjava/javax/print/DocPrintJob.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_DocPrintJob__ +#define __javax_print_DocPrintJob__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class Doc; + class DocPrintJob; + class PrintService; + namespace attribute + { + class PrintJobAttributeSet; + class PrintRequestAttributeSet; + } + namespace event + { + class PrintJobAttributeListener; + class PrintJobListener; + } + } + } +} + +class javax::print::DocPrintJob : public ::java::lang::Object +{ + +public: + virtual void addPrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *, ::javax::print::attribute::PrintJobAttributeSet *) = 0; + virtual void addPrintJobListener(::javax::print::event::PrintJobListener *) = 0; + virtual ::javax::print::attribute::PrintJobAttributeSet * getAttributes() = 0; + virtual ::javax::print::PrintService * getPrintService() = 0; + virtual void print(::javax::print::Doc *, ::javax::print::attribute::PrintRequestAttributeSet *) = 0; + virtual void removePrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *) = 0; + virtual void removePrintJobListener(::javax::print::event::PrintJobListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_DocPrintJob__ diff --git a/libjava/javax/print/FlavorException.h b/libjava/javax/print/FlavorException.h new file mode 100644 index 00000000000..b06cdd63332 --- /dev/null +++ b/libjava/javax/print/FlavorException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_FlavorException__ +#define __javax_print_FlavorException__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor; + class FlavorException; + } + } +} + +class javax::print::FlavorException : public ::java::lang::Object +{ + +public: + virtual JArray< ::javax::print::DocFlavor * > * getUnsupportedFlavors() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_FlavorException__ diff --git a/libjava/javax/print/MultiDoc.h b/libjava/javax/print/MultiDoc.h new file mode 100644 index 00000000000..8148c7e5f52 --- /dev/null +++ b/libjava/javax/print/MultiDoc.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_MultiDoc__ +#define __javax_print_MultiDoc__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class Doc; + class MultiDoc; + } + } +} + +class javax::print::MultiDoc : public ::java::lang::Object +{ + +public: + virtual ::javax::print::Doc * getDoc() = 0; + virtual ::javax::print::MultiDoc * next() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_MultiDoc__ diff --git a/libjava/javax/print/MultiDocPrintJob.h b/libjava/javax/print/MultiDocPrintJob.h new file mode 100644 index 00000000000..4c14d64634d --- /dev/null +++ b/libjava/javax/print/MultiDocPrintJob.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_MultiDocPrintJob__ +#define __javax_print_MultiDocPrintJob__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class Doc; + class MultiDoc; + class MultiDocPrintJob; + class PrintService; + namespace attribute + { + class PrintJobAttributeSet; + class PrintRequestAttributeSet; + } + namespace event + { + class PrintJobAttributeListener; + class PrintJobListener; + } + } + } +} + +class javax::print::MultiDocPrintJob : public ::java::lang::Object +{ + +public: + virtual void print(::javax::print::MultiDoc *, ::javax::print::attribute::PrintRequestAttributeSet *) = 0; + virtual void addPrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *, ::javax::print::attribute::PrintJobAttributeSet *) = 0; + virtual void addPrintJobListener(::javax::print::event::PrintJobListener *) = 0; + virtual ::javax::print::attribute::PrintJobAttributeSet * getAttributes() = 0; + virtual ::javax::print::PrintService * getPrintService() = 0; + virtual void print(::javax::print::Doc *, ::javax::print::attribute::PrintRequestAttributeSet *) = 0; + virtual void removePrintJobAttributeListener(::javax::print::event::PrintJobAttributeListener *) = 0; + virtual void removePrintJobListener(::javax::print::event::PrintJobListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_MultiDocPrintJob__ diff --git a/libjava/javax/print/MultiDocPrintService.h b/libjava/javax/print/MultiDocPrintService.h new file mode 100644 index 00000000000..0b613f64a0b --- /dev/null +++ b/libjava/javax/print/MultiDocPrintService.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_MultiDocPrintService__ +#define __javax_print_MultiDocPrintService__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor; + class DocPrintJob; + class MultiDocPrintJob; + class MultiDocPrintService; + class ServiceUIFactory; + namespace attribute + { + class Attribute; + class AttributeSet; + class PrintServiceAttribute; + class PrintServiceAttributeSet; + } + namespace event + { + class PrintServiceAttributeListener; + } + } + } +} + +class javax::print::MultiDocPrintService : public ::java::lang::Object +{ + +public: + virtual ::javax::print::MultiDocPrintJob * createMultiDocPrintJob() = 0; + virtual ::javax::print::DocPrintJob * createPrintJob() = 0; + virtual ::javax::print::attribute::PrintServiceAttribute * getAttribute(::java::lang::Class *) = 0; + virtual ::javax::print::attribute::PrintServiceAttributeSet * getAttributes() = 0; + virtual ::java::lang::Object * getDefaultAttributeValue(::java::lang::Class *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::print::ServiceUIFactory * getServiceUIFactory() = 0; + virtual JArray< ::java::lang::Class * > * getSupportedAttributeCategories() = 0; + virtual ::java::lang::Object * getSupportedAttributeValues(::java::lang::Class *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual JArray< ::javax::print::DocFlavor * > * getSupportedDocFlavors() = 0; + virtual ::javax::print::attribute::AttributeSet * getUnsupportedAttributes(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual jboolean isAttributeCategorySupported(::java::lang::Class *) = 0; + virtual jboolean isAttributeValueSupported(::javax::print::attribute::Attribute *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual jboolean isDocFlavorSupported(::javax::print::DocFlavor *) = 0; + virtual void addPrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *) = 0; + virtual void removePrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_MultiDocPrintService__ diff --git a/libjava/javax/print/PrintException.h b/libjava/javax/print/PrintException.h new file mode 100644 index 00000000000..90a1659acb8 --- /dev/null +++ b/libjava/javax/print/PrintException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_PrintException__ +#define __javax_print_PrintException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class PrintException; + } + } +} + +class javax::print::PrintException : public ::java::lang::Exception +{ + +public: + PrintException(); + PrintException(::java::lang::Exception *); + PrintException(::java::lang::String *); + PrintException(::java::lang::String *, ::java::lang::Exception *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_PrintException__ diff --git a/libjava/javax/print/PrintService.h b/libjava/javax/print/PrintService.h new file mode 100644 index 00000000000..3e26159a1ca --- /dev/null +++ b/libjava/javax/print/PrintService.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_PrintService__ +#define __javax_print_PrintService__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor; + class DocPrintJob; + class PrintService; + class ServiceUIFactory; + namespace attribute + { + class Attribute; + class AttributeSet; + class PrintServiceAttribute; + class PrintServiceAttributeSet; + } + namespace event + { + class PrintServiceAttributeListener; + } + } + } +} + +class javax::print::PrintService : public ::java::lang::Object +{ + +public: + virtual ::javax::print::DocPrintJob * createPrintJob() = 0; + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::javax::print::attribute::PrintServiceAttribute * getAttribute(::java::lang::Class *) = 0; + virtual ::javax::print::attribute::PrintServiceAttributeSet * getAttributes() = 0; + virtual ::java::lang::Object * getDefaultAttributeValue(::java::lang::Class *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::print::ServiceUIFactory * getServiceUIFactory() = 0; + virtual JArray< ::java::lang::Class * > * getSupportedAttributeCategories() = 0; + virtual ::java::lang::Object * getSupportedAttributeValues(::java::lang::Class *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual JArray< ::javax::print::DocFlavor * > * getSupportedDocFlavors() = 0; + virtual ::javax::print::attribute::AttributeSet * getUnsupportedAttributes(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual jint hashCode() = 0; + virtual jboolean isAttributeCategorySupported(::java::lang::Class *) = 0; + virtual jboolean isAttributeValueSupported(::javax::print::attribute::Attribute *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual jboolean isDocFlavorSupported(::javax::print::DocFlavor *) = 0; + virtual void addPrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *) = 0; + virtual void removePrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_PrintService__ diff --git a/libjava/javax/print/PrintServiceLookup.h b/libjava/javax/print/PrintServiceLookup.h new file mode 100644 index 00000000000..5409da90d94 --- /dev/null +++ b/libjava/javax/print/PrintServiceLookup.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_PrintServiceLookup__ +#define __javax_print_PrintServiceLookup__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace print + { + class CupsPrintServiceLookup; + } + } + } + namespace javax + { + namespace print + { + class DocFlavor; + class MultiDocPrintService; + class PrintService; + class PrintServiceLookup; + namespace attribute + { + class AttributeSet; + } + } + } +} + +class javax::print::PrintServiceLookup : public ::java::lang::Object +{ + +public: + PrintServiceLookup(); + static jboolean registerServiceProvider(::javax::print::PrintServiceLookup *); + static jboolean registerService(::javax::print::PrintService *); + static JArray< ::javax::print::PrintService * > * lookupPrintServices(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *); + static JArray< ::javax::print::MultiDocPrintService * > * lookupMultiDocPrintServices(JArray< ::javax::print::DocFlavor * > *, ::javax::print::attribute::AttributeSet *); + static ::javax::print::PrintService * lookupDefaultPrintService(); + virtual ::javax::print::PrintService * getDefaultPrintService() = 0; + virtual JArray< ::javax::print::MultiDocPrintService * > * getMultiDocPrintServices(JArray< ::javax::print::DocFlavor * > *, ::javax::print::attribute::AttributeSet *) = 0; + virtual JArray< ::javax::print::PrintService * > * getPrintServices() = 0; + virtual JArray< ::javax::print::PrintService * > * getPrintServices(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; +private: + static ::gnu::javax::print::CupsPrintServiceLookup * systemProvider; + static ::java::util::HashSet * printServices; + static ::java::util::HashSet * printServiceLookups; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_PrintServiceLookup__ diff --git a/libjava/javax/print/ServiceUI.h b/libjava/javax/print/ServiceUI.h new file mode 100644 index 00000000000..8ec373ac49b --- /dev/null +++ b/libjava/javax/print/ServiceUI.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_ServiceUI__ +#define __javax_print_ServiceUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class GraphicsConfiguration; + } + } + namespace javax + { + namespace print + { + class DocFlavor; + class PrintService; + class ServiceUI; + namespace attribute + { + class PrintRequestAttributeSet; + } + } + } +} + +class javax::print::ServiceUI : public ::java::lang::Object +{ + +public: + ServiceUI(); + static ::javax::print::PrintService * printDialog(::java::awt::GraphicsConfiguration *, jint, jint, JArray< ::javax::print::PrintService * > *, ::javax::print::PrintService *, ::javax::print::DocFlavor *, ::javax::print::attribute::PrintRequestAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_ServiceUI__ diff --git a/libjava/javax/print/ServiceUIFactory.h b/libjava/javax/print/ServiceUIFactory.h new file mode 100644 index 00000000000..2424058fa35 --- /dev/null +++ b/libjava/javax/print/ServiceUIFactory.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_ServiceUIFactory__ +#define __javax_print_ServiceUIFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + class ServiceUIFactory; + } + } +} + +class javax::print::ServiceUIFactory : public ::java::lang::Object +{ + +public: + ServiceUIFactory(); + virtual ::java::lang::Object * getUI(jint, ::java::lang::String *) = 0; + virtual JArray< ::java::lang::String * > * getUIClassNamesForRole(jint) = 0; + static const jint ABOUT_UIROLE = 1; + static const jint ADMIN_UIROLE = 2; + static const jint MAIN_UIROLE = 3; + static const jint RESERVED_UIROLE = 99; + static ::java::lang::String * DIALOG_UI; + static ::java::lang::String * JCOMPONENT_UI; + static ::java::lang::String * JDIALOG_UI; + static ::java::lang::String * PANEL_UI; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_ServiceUIFactory__ diff --git a/libjava/javax/print/SimpleDoc.h b/libjava/javax/print/SimpleDoc.h new file mode 100644 index 00000000000..b055e4ed9bd --- /dev/null +++ b/libjava/javax/print/SimpleDoc.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_SimpleDoc__ +#define __javax_print_SimpleDoc__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor; + class SimpleDoc; + namespace attribute + { + class DocAttributeSet; + } + } + } +} + +class javax::print::SimpleDoc : public ::java::lang::Object +{ + +public: + SimpleDoc(::java::lang::Object *, ::javax::print::DocFlavor *, ::javax::print::attribute::DocAttributeSet *); + ::javax::print::attribute::DocAttributeSet * getAttributes(); + ::javax::print::DocFlavor * getDocFlavor(); + ::java::lang::Object * getPrintData(); + ::java::io::Reader * getReaderForText(); + ::java::io::InputStream * getStreamForBytes(); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) printData; + ::javax::print::DocFlavor * flavor; + ::javax::print::attribute::DocAttributeSet * attributes; + ::java::io::InputStream * stream; + ::java::io::Reader * reader; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_SimpleDoc__ diff --git a/libjava/javax/print/StreamPrintService.h b/libjava/javax/print/StreamPrintService.h new file mode 100644 index 00000000000..115d6efab54 --- /dev/null +++ b/libjava/javax/print/StreamPrintService.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_StreamPrintService__ +#define __javax_print_StreamPrintService__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor; + class DocPrintJob; + class ServiceUIFactory; + class StreamPrintService; + namespace attribute + { + class Attribute; + class AttributeSet; + class PrintServiceAttribute; + class PrintServiceAttributeSet; + } + namespace event + { + class PrintServiceAttributeListener; + } + } + } +} + +class javax::print::StreamPrintService : public ::java::lang::Object +{ + +public: // actually protected + StreamPrintService(::java::io::OutputStream *); +public: + virtual void dispose(); + virtual ::java::lang::String * getOutputFormat() = 0; + virtual ::java::io::OutputStream * getOutputStream(); + virtual jboolean isDisposed(); + virtual ::javax::print::DocPrintJob * createPrintJob() = 0; + virtual ::javax::print::attribute::PrintServiceAttribute * getAttribute(::java::lang::Class *) = 0; + virtual ::javax::print::attribute::PrintServiceAttributeSet * getAttributes() = 0; + virtual ::java::lang::Object * getDefaultAttributeValue(::java::lang::Class *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::print::ServiceUIFactory * getServiceUIFactory() = 0; + virtual JArray< ::java::lang::Class * > * getSupportedAttributeCategories() = 0; + virtual ::java::lang::Object * getSupportedAttributeValues(::java::lang::Class *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual JArray< ::javax::print::DocFlavor * > * getSupportedDocFlavors() = 0; + virtual ::javax::print::attribute::AttributeSet * getUnsupportedAttributes(::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual jboolean isAttributeCategorySupported(::java::lang::Class *) = 0; + virtual jboolean isAttributeValueSupported(::javax::print::attribute::Attribute *, ::javax::print::DocFlavor *, ::javax::print::attribute::AttributeSet *) = 0; + virtual jboolean isDocFlavorSupported(::javax::print::DocFlavor *) = 0; + virtual void addPrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *) = 0; + virtual void removePrintServiceAttributeListener(::javax::print::event::PrintServiceAttributeListener *) = 0; +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) disposed; + ::java::io::OutputStream * out; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_StreamPrintService__ diff --git a/libjava/javax/print/StreamPrintServiceFactory.h b/libjava/javax/print/StreamPrintServiceFactory.h new file mode 100644 index 00000000000..496b51f6189 --- /dev/null +++ b/libjava/javax/print/StreamPrintServiceFactory.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_StreamPrintServiceFactory__ +#define __javax_print_StreamPrintServiceFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + class DocFlavor; + class StreamPrintService; + class StreamPrintServiceFactory; + } + } +} + +class javax::print::StreamPrintServiceFactory : public ::java::lang::Object +{ + +public: + StreamPrintServiceFactory(); + static JArray< ::javax::print::StreamPrintServiceFactory * > * lookupStreamPrintServiceFactories(::javax::print::DocFlavor *, ::java::lang::String *); + virtual ::java::lang::String * getOutputFormat() = 0; + virtual JArray< ::javax::print::DocFlavor * > * getSupportedDocFlavors() = 0; + virtual ::javax::print::StreamPrintService * getPrintService(::java::io::OutputStream *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_StreamPrintServiceFactory__ diff --git a/libjava/javax/print/URIException.h b/libjava/javax/print/URIException.h new file mode 100644 index 00000000000..7e4f868b07f --- /dev/null +++ b/libjava/javax/print/URIException.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_URIException__ +#define __javax_print_URIException__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + class URIException; + } + } +} + +class javax::print::URIException : public ::java::lang::Object +{ + +public: + virtual jint getReason() = 0; + virtual ::java::net::URI * getUnsupportedURI() = 0; + static const jint URIInaccessible = 1; + static const jint URIOtherProblem = -1; + static const jint URISchemeNotSupported = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_URIException__ diff --git a/libjava/javax/print/attribute/Attribute.h b/libjava/javax/print/attribute/Attribute.h new file mode 100644 index 00000000000..88c4efd316e --- /dev/null +++ b/libjava/javax/print/attribute/Attribute.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_Attribute__ +#define __javax_print_attribute_Attribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + } + } + } +} + +class javax::print::attribute::Attribute : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * getCategory() = 0; + virtual ::java::lang::String * getName() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_Attribute__ diff --git a/libjava/javax/print/attribute/AttributeSet.h b/libjava/javax/print/attribute/AttributeSet.h new file mode 100644 index 00000000000..f1fed93203e --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSet.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSet__ +#define __javax_print_attribute_AttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSet : public ::java::lang::Object +{ + +public: + virtual jboolean add(::javax::print::attribute::Attribute *) = 0; + virtual jboolean addAll(::javax::print::attribute::AttributeSet *) = 0; + virtual void clear() = 0; + virtual jboolean containsKey(::java::lang::Class *) = 0; + virtual jboolean containsValue(::javax::print::attribute::Attribute *) = 0; + virtual jboolean equals(::java::lang::Object *) = 0; + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *) = 0; + virtual jint hashCode() = 0; + virtual jboolean isEmpty() = 0; + virtual jboolean remove(::javax::print::attribute::Attribute *) = 0; + virtual jboolean remove(::java::lang::Class *) = 0; + virtual jint size() = 0; + virtual JArray< ::javax::print::attribute::Attribute * > * toArray() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_AttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedAttributeSet.h new file mode 100644 index 00000000000..34cee3d0710 --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedAttributeSet.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$SynchronizedAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$SynchronizedAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class AttributeSetUtilities$SynchronizedAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$SynchronizedAttributeSet : public ::java::lang::Object +{ + +public: + AttributeSetUtilities$SynchronizedAttributeSet(::javax::print::attribute::AttributeSet *); + virtual jboolean add(::javax::print::attribute::Attribute *); + virtual jboolean addAll(::javax::print::attribute::AttributeSet *); + virtual void clear(); + virtual jboolean containsKey(::java::lang::Class *); + virtual jboolean containsValue(::javax::print::attribute::Attribute *); + virtual jboolean equals(::java::lang::Object *); + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *); + virtual jint hashCode(); + virtual jboolean isEmpty(); + virtual jboolean remove(::java::lang::Class *); + virtual jboolean remove(::javax::print::attribute::Attribute *); + virtual jint size(); + virtual JArray< ::javax::print::attribute::Attribute * > * toArray(); +private: + ::javax::print::attribute::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attrset; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$SynchronizedAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedDocAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedDocAttributeSet.h new file mode 100644 index 00000000000..1e2b9a466b7 --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedDocAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$SynchronizedDocAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$SynchronizedDocAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$SynchronizedDocAttributeSet; + class DocAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$SynchronizedDocAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$SynchronizedAttributeSet +{ + +public: + AttributeSetUtilities$SynchronizedDocAttributeSet(::javax::print::attribute::DocAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$SynchronizedDocAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintJobAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintJobAttributeSet.h new file mode 100644 index 00000000000..c52b5512578 --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintJobAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintJobAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintJobAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$SynchronizedPrintJobAttributeSet; + class PrintJobAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$SynchronizedPrintJobAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$SynchronizedAttributeSet +{ + +public: + AttributeSetUtilities$SynchronizedPrintJobAttributeSet(::javax::print::attribute::PrintJobAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintJobAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintRequestAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintRequestAttributeSet.h new file mode 100644 index 00000000000..4fbb3d9b14d --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintRequestAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintRequestAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintRequestAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$SynchronizedPrintRequestAttributeSet; + class PrintRequestAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$SynchronizedPrintRequestAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$SynchronizedAttributeSet +{ + +public: + AttributeSetUtilities$SynchronizedPrintRequestAttributeSet(::javax::print::attribute::PrintRequestAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintRequestAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintServiceAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintServiceAttributeSet.h new file mode 100644 index 00000000000..8177161f282 --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$SynchronizedPrintServiceAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintServiceAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintServiceAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$SynchronizedPrintServiceAttributeSet; + class PrintServiceAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$SynchronizedPrintServiceAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$SynchronizedAttributeSet +{ + +public: + AttributeSetUtilities$SynchronizedPrintServiceAttributeSet(::javax::print::attribute::PrintServiceAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$SynchronizedPrintServiceAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableAttributeSet.h new file mode 100644 index 00000000000..71de4168464 --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableAttributeSet.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$UnmodifiableAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$UnmodifiableAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class AttributeSetUtilities$UnmodifiableAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$UnmodifiableAttributeSet : public ::java::lang::Object +{ + +public: + AttributeSetUtilities$UnmodifiableAttributeSet(::javax::print::attribute::AttributeSet *); + virtual jboolean add(::javax::print::attribute::Attribute *); + virtual jboolean addAll(::javax::print::attribute::AttributeSet *); + virtual void clear(); + virtual jboolean containsKey(::java::lang::Class *); + virtual jboolean containsValue(::javax::print::attribute::Attribute *); + virtual jboolean equals(::java::lang::Object *); + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *); + virtual jint hashCode(); + virtual jboolean isEmpty(); + virtual jboolean remove(::java::lang::Class *); + virtual jboolean remove(::javax::print::attribute::Attribute *); + virtual jint size(); + virtual JArray< ::javax::print::attribute::Attribute * > * toArray(); +private: + ::javax::print::attribute::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attrset; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$UnmodifiableAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableDocAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableDocAttributeSet.h new file mode 100644 index 00000000000..de2bb982c0c --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiableDocAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$UnmodifiableDocAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$UnmodifiableDocAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$UnmodifiableDocAttributeSet; + class DocAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$UnmodifiableDocAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$UnmodifiableAttributeSet +{ + +public: + AttributeSetUtilities$UnmodifiableDocAttributeSet(::javax::print::attribute::DocAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$UnmodifiableDocAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintJobAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintJobAttributeSet.h new file mode 100644 index 00000000000..6f800a2332b --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintJobAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintJobAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintJobAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$UnmodifiablePrintJobAttributeSet; + class PrintJobAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$UnmodifiablePrintJobAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$UnmodifiableAttributeSet +{ + +public: + AttributeSetUtilities$UnmodifiablePrintJobAttributeSet(::javax::print::attribute::PrintJobAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintJobAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet.h new file mode 100644 index 00000000000..6dea83bd064 --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet; + class PrintRequestAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$UnmodifiableAttributeSet +{ + +public: + AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet(::javax::print::attribute::PrintRequestAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintRequestAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet.h b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet.h new file mode 100644 index 00000000000..edfe0690cb6 --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet__ +#define __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet; + class PrintServiceAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet : public ::javax::print::attribute::AttributeSetUtilities$UnmodifiableAttributeSet +{ + +public: + AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet(::javax::print::attribute::PrintServiceAttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities$UnmodifiablePrintServiceAttributeSet__ diff --git a/libjava/javax/print/attribute/AttributeSetUtilities.h b/libjava/javax/print/attribute/AttributeSetUtilities.h new file mode 100644 index 00000000000..85f90d0681c --- /dev/null +++ b/libjava/javax/print/attribute/AttributeSetUtilities.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_AttributeSetUtilities__ +#define __javax_print_attribute_AttributeSetUtilities__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class AttributeSetUtilities; + class DocAttributeSet; + class PrintJobAttributeSet; + class PrintRequestAttributeSet; + class PrintServiceAttributeSet; + } + } + } +} + +class javax::print::attribute::AttributeSetUtilities : public ::java::lang::Object +{ + + AttributeSetUtilities(); +public: + static ::javax::print::attribute::AttributeSet * synchronizedView(::javax::print::attribute::AttributeSet *); + static ::javax::print::attribute::DocAttributeSet * synchronizedView(::javax::print::attribute::DocAttributeSet *); + static ::javax::print::attribute::PrintJobAttributeSet * synchronizedView(::javax::print::attribute::PrintJobAttributeSet *); + static ::javax::print::attribute::PrintRequestAttributeSet * synchronizedView(::javax::print::attribute::PrintRequestAttributeSet *); + static ::javax::print::attribute::PrintServiceAttributeSet * synchronizedView(::javax::print::attribute::PrintServiceAttributeSet *); + static ::javax::print::attribute::AttributeSet * unmodifiableView(::javax::print::attribute::AttributeSet *); + static ::javax::print::attribute::DocAttributeSet * unmodifiableView(::javax::print::attribute::DocAttributeSet *); + static ::javax::print::attribute::PrintJobAttributeSet * unmodifiableView(::javax::print::attribute::PrintJobAttributeSet *); + static ::javax::print::attribute::PrintRequestAttributeSet * unmodifiableView(::javax::print::attribute::PrintRequestAttributeSet *); + static ::javax::print::attribute::PrintServiceAttributeSet * unmodifiableView(::javax::print::attribute::PrintServiceAttributeSet *); + static ::java::lang::Class * verifyAttributeCategory(::java::lang::Object *, ::java::lang::Class *); + static ::javax::print::attribute::Attribute * verifyAttributeValue(::java::lang::Object *, ::java::lang::Class *); + static void verifyCategoryForValue(::java::lang::Class *, ::javax::print::attribute::Attribute *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_AttributeSetUtilities__ diff --git a/libjava/javax/print/attribute/DateTimeSyntax.h b/libjava/javax/print/attribute/DateTimeSyntax.h new file mode 100644 index 00000000000..8ec4f3c9812 --- /dev/null +++ b/libjava/javax/print/attribute/DateTimeSyntax.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_DateTimeSyntax__ +#define __javax_print_attribute_DateTimeSyntax__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class DateTimeSyntax; + } + } + } +} + +class javax::print::attribute::DateTimeSyntax : public ::java::lang::Object +{ + +public: // actually protected + DateTimeSyntax(::java::util::Date *); +public: + virtual ::java::util::Date * getValue(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -1400819079791208582LL; + ::java::util::Date * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_DateTimeSyntax__ diff --git a/libjava/javax/print/attribute/DocAttribute.h b/libjava/javax/print/attribute/DocAttribute.h new file mode 100644 index 00000000000..d26bc6d8c10 --- /dev/null +++ b/libjava/javax/print/attribute/DocAttribute.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_DocAttribute__ +#define __javax_print_attribute_DocAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class DocAttribute; + } + } + } +} + +class javax::print::attribute::DocAttribute : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * getCategory() = 0; + virtual ::java::lang::String * getName() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_DocAttribute__ diff --git a/libjava/javax/print/attribute/DocAttributeSet.h b/libjava/javax/print/attribute/DocAttributeSet.h new file mode 100644 index 00000000000..c85d799c414 --- /dev/null +++ b/libjava/javax/print/attribute/DocAttributeSet.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_DocAttributeSet__ +#define __javax_print_attribute_DocAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class DocAttributeSet; + } + } + } +} + +class javax::print::attribute::DocAttributeSet : public ::java::lang::Object +{ + +public: + virtual jboolean add(::javax::print::attribute::Attribute *) = 0; + virtual jboolean addAll(::javax::print::attribute::AttributeSet *) = 0; + virtual void clear() = 0; + virtual jboolean containsKey(::java::lang::Class *) = 0; + virtual jboolean containsValue(::javax::print::attribute::Attribute *) = 0; + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *) = 0; + virtual jboolean isEmpty() = 0; + virtual jboolean remove(::javax::print::attribute::Attribute *) = 0; + virtual jboolean remove(::java::lang::Class *) = 0; + virtual jint size() = 0; + virtual JArray< ::javax::print::attribute::Attribute * > * toArray() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_DocAttributeSet__ diff --git a/libjava/javax/print/attribute/EnumSyntax.h b/libjava/javax/print/attribute/EnumSyntax.h new file mode 100644 index 00000000000..5b445c301b0 --- /dev/null +++ b/libjava/javax/print/attribute/EnumSyntax.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_EnumSyntax__ +#define __javax_print_attribute_EnumSyntax__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + } + } + } +} + +class javax::print::attribute::EnumSyntax : public ::java::lang::Object +{ + +public: // actually protected + EnumSyntax(jint); +public: + virtual jint getValue(); + virtual ::java::lang::Object * clone(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual ::java::lang::Object * readResolve(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + virtual jint getOffset(); +private: + static const jlong serialVersionUID = -2739521845085831642LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_EnumSyntax__ diff --git a/libjava/javax/print/attribute/HashAttributeSet.h b/libjava/javax/print/attribute/HashAttributeSet.h new file mode 100644 index 00000000000..b82db6e5759 --- /dev/null +++ b/libjava/javax/print/attribute/HashAttributeSet.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_HashAttributeSet__ +#define __javax_print_attribute_HashAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class HashAttributeSet; + } + } + } +} + +class javax::print::attribute::HashAttributeSet : public ::java::lang::Object +{ + +public: + HashAttributeSet(); + HashAttributeSet(::javax::print::attribute::Attribute *); + HashAttributeSet(JArray< ::javax::print::attribute::Attribute * > *); + HashAttributeSet(::javax::print::attribute::AttributeSet *); +public: // actually protected + HashAttributeSet(::java::lang::Class *); + HashAttributeSet(::javax::print::attribute::Attribute *, ::java::lang::Class *); + HashAttributeSet(JArray< ::javax::print::attribute::Attribute * > *, ::java::lang::Class *); + HashAttributeSet(::javax::print::attribute::AttributeSet *, ::java::lang::Class *); +public: + virtual jboolean add(::javax::print::attribute::Attribute *); +private: + jboolean addInternal(::javax::print::attribute::Attribute *, ::java::lang::Class *); +public: + virtual jboolean addAll(::javax::print::attribute::AttributeSet *); +private: + jboolean addAllInternal(::javax::print::attribute::AttributeSet *, ::java::lang::Class *); +public: + virtual void clear(); + virtual jboolean containsKey(::java::lang::Class *); + virtual jboolean containsValue(::javax::print::attribute::Attribute *); + virtual jboolean equals(::java::lang::Object *); + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *); + virtual jint hashCode(); + virtual jboolean isEmpty(); + virtual jboolean remove(::javax::print::attribute::Attribute *); + virtual jboolean remove(::java::lang::Class *); + virtual jint size(); + virtual JArray< ::javax::print::attribute::Attribute * > * toArray(); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = 5311560590283707917LL; + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) myInterface; + ::java::util::HashMap * attributeMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_HashAttributeSet__ diff --git a/libjava/javax/print/attribute/HashDocAttributeSet.h b/libjava/javax/print/attribute/HashDocAttributeSet.h new file mode 100644 index 00000000000..43b9eaec69b --- /dev/null +++ b/libjava/javax/print/attribute/HashDocAttributeSet.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_HashDocAttributeSet__ +#define __javax_print_attribute_HashDocAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class DocAttribute; + class DocAttributeSet; + class HashDocAttributeSet; + } + } + } +} + +class javax::print::attribute::HashDocAttributeSet : public ::javax::print::attribute::HashAttributeSet +{ + +public: + HashDocAttributeSet(); + HashDocAttributeSet(::javax::print::attribute::DocAttribute *); + HashDocAttributeSet(JArray< ::javax::print::attribute::DocAttribute * > *); + HashDocAttributeSet(::javax::print::attribute::DocAttributeSet *); +private: + static const jlong serialVersionUID = -1128534486061432528LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_HashDocAttributeSet__ diff --git a/libjava/javax/print/attribute/HashPrintJobAttributeSet.h b/libjava/javax/print/attribute/HashPrintJobAttributeSet.h new file mode 100644 index 00000000000..26fde6f998d --- /dev/null +++ b/libjava/javax/print/attribute/HashPrintJobAttributeSet.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_HashPrintJobAttributeSet__ +#define __javax_print_attribute_HashPrintJobAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class HashPrintJobAttributeSet; + class PrintJobAttribute; + class PrintJobAttributeSet; + } + } + } +} + +class javax::print::attribute::HashPrintJobAttributeSet : public ::javax::print::attribute::HashAttributeSet +{ + +public: + HashPrintJobAttributeSet(); + HashPrintJobAttributeSet(::javax::print::attribute::PrintJobAttribute *); + HashPrintJobAttributeSet(JArray< ::javax::print::attribute::PrintJobAttribute * > *); + HashPrintJobAttributeSet(::javax::print::attribute::PrintJobAttributeSet *); +private: + static const jlong serialVersionUID = -4204473656070350348LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_HashPrintJobAttributeSet__ diff --git a/libjava/javax/print/attribute/HashPrintRequestAttributeSet.h b/libjava/javax/print/attribute/HashPrintRequestAttributeSet.h new file mode 100644 index 00000000000..a1232a21100 --- /dev/null +++ b/libjava/javax/print/attribute/HashPrintRequestAttributeSet.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_HashPrintRequestAttributeSet__ +#define __javax_print_attribute_HashPrintRequestAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class HashPrintRequestAttributeSet; + class PrintRequestAttribute; + class PrintRequestAttributeSet; + } + } + } +} + +class javax::print::attribute::HashPrintRequestAttributeSet : public ::javax::print::attribute::HashAttributeSet +{ + +public: + HashPrintRequestAttributeSet(); + HashPrintRequestAttributeSet(::javax::print::attribute::PrintRequestAttribute *); + HashPrintRequestAttributeSet(JArray< ::javax::print::attribute::PrintRequestAttribute * > *); + HashPrintRequestAttributeSet(::javax::print::attribute::PrintRequestAttributeSet *); +private: + static const jlong serialVersionUID = 2364756266107751933LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_HashPrintRequestAttributeSet__ diff --git a/libjava/javax/print/attribute/HashPrintServiceAttributeSet.h b/libjava/javax/print/attribute/HashPrintServiceAttributeSet.h new file mode 100644 index 00000000000..abf583a7252 --- /dev/null +++ b/libjava/javax/print/attribute/HashPrintServiceAttributeSet.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_HashPrintServiceAttributeSet__ +#define __javax_print_attribute_HashPrintServiceAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class HashPrintServiceAttributeSet; + class PrintServiceAttribute; + class PrintServiceAttributeSet; + } + } + } +} + +class javax::print::attribute::HashPrintServiceAttributeSet : public ::javax::print::attribute::HashAttributeSet +{ + +public: + HashPrintServiceAttributeSet(); + HashPrintServiceAttributeSet(::javax::print::attribute::PrintServiceAttribute *); + HashPrintServiceAttributeSet(JArray< ::javax::print::attribute::PrintServiceAttribute * > *); + HashPrintServiceAttributeSet(::javax::print::attribute::PrintServiceAttributeSet *); +private: + static const jlong serialVersionUID = 6642904616179203070LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_HashPrintServiceAttributeSet__ diff --git a/libjava/javax/print/attribute/IntegerSyntax.h b/libjava/javax/print/attribute/IntegerSyntax.h new file mode 100644 index 00000000000..63ac7e04050 --- /dev/null +++ b/libjava/javax/print/attribute/IntegerSyntax.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_IntegerSyntax__ +#define __javax_print_attribute_IntegerSyntax__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class IntegerSyntax; + } + } + } +} + +class javax::print::attribute::IntegerSyntax : public ::java::lang::Object +{ + +public: // actually protected + IntegerSyntax(jint); + IntegerSyntax(jint, jint, jint); +public: + virtual jint getValue(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_IntegerSyntax__ diff --git a/libjava/javax/print/attribute/PrintJobAttribute.h b/libjava/javax/print/attribute/PrintJobAttribute.h new file mode 100644 index 00000000000..c22e5d716aa --- /dev/null +++ b/libjava/javax/print/attribute/PrintJobAttribute.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_PrintJobAttribute__ +#define __javax_print_attribute_PrintJobAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class PrintJobAttribute; + } + } + } +} + +class javax::print::attribute::PrintJobAttribute : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * getCategory() = 0; + virtual ::java::lang::String * getName() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_PrintJobAttribute__ diff --git a/libjava/javax/print/attribute/PrintJobAttributeSet.h b/libjava/javax/print/attribute/PrintJobAttributeSet.h new file mode 100644 index 00000000000..713ad66cde3 --- /dev/null +++ b/libjava/javax/print/attribute/PrintJobAttributeSet.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_PrintJobAttributeSet__ +#define __javax_print_attribute_PrintJobAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class PrintJobAttributeSet; + } + } + } +} + +class javax::print::attribute::PrintJobAttributeSet : public ::java::lang::Object +{ + +public: + virtual jboolean add(::javax::print::attribute::Attribute *) = 0; + virtual jboolean addAll(::javax::print::attribute::AttributeSet *) = 0; + virtual void clear() = 0; + virtual jboolean containsKey(::java::lang::Class *) = 0; + virtual jboolean containsValue(::javax::print::attribute::Attribute *) = 0; + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *) = 0; + virtual jboolean isEmpty() = 0; + virtual jboolean remove(::javax::print::attribute::Attribute *) = 0; + virtual jboolean remove(::java::lang::Class *) = 0; + virtual jint size() = 0; + virtual JArray< ::javax::print::attribute::Attribute * > * toArray() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_PrintJobAttributeSet__ diff --git a/libjava/javax/print/attribute/PrintRequestAttribute.h b/libjava/javax/print/attribute/PrintRequestAttribute.h new file mode 100644 index 00000000000..7d95bfcb157 --- /dev/null +++ b/libjava/javax/print/attribute/PrintRequestAttribute.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_PrintRequestAttribute__ +#define __javax_print_attribute_PrintRequestAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class PrintRequestAttribute; + } + } + } +} + +class javax::print::attribute::PrintRequestAttribute : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * getCategory() = 0; + virtual ::java::lang::String * getName() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_PrintRequestAttribute__ diff --git a/libjava/javax/print/attribute/PrintRequestAttributeSet.h b/libjava/javax/print/attribute/PrintRequestAttributeSet.h new file mode 100644 index 00000000000..9929176608b --- /dev/null +++ b/libjava/javax/print/attribute/PrintRequestAttributeSet.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_PrintRequestAttributeSet__ +#define __javax_print_attribute_PrintRequestAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class PrintRequestAttributeSet; + } + } + } +} + +class javax::print::attribute::PrintRequestAttributeSet : public ::java::lang::Object +{ + +public: + virtual jboolean add(::javax::print::attribute::Attribute *) = 0; + virtual jboolean addAll(::javax::print::attribute::AttributeSet *) = 0; + virtual void clear() = 0; + virtual jboolean containsKey(::java::lang::Class *) = 0; + virtual jboolean containsValue(::javax::print::attribute::Attribute *) = 0; + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *) = 0; + virtual jboolean isEmpty() = 0; + virtual jboolean remove(::javax::print::attribute::Attribute *) = 0; + virtual jboolean remove(::java::lang::Class *) = 0; + virtual jint size() = 0; + virtual JArray< ::javax::print::attribute::Attribute * > * toArray() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_PrintRequestAttributeSet__ diff --git a/libjava/javax/print/attribute/PrintServiceAttribute.h b/libjava/javax/print/attribute/PrintServiceAttribute.h new file mode 100644 index 00000000000..eae08643857 --- /dev/null +++ b/libjava/javax/print/attribute/PrintServiceAttribute.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_PrintServiceAttribute__ +#define __javax_print_attribute_PrintServiceAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class PrintServiceAttribute; + } + } + } +} + +class javax::print::attribute::PrintServiceAttribute : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * getCategory() = 0; + virtual ::java::lang::String * getName() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_PrintServiceAttribute__ diff --git a/libjava/javax/print/attribute/PrintServiceAttributeSet.h b/libjava/javax/print/attribute/PrintServiceAttributeSet.h new file mode 100644 index 00000000000..73db991c915 --- /dev/null +++ b/libjava/javax/print/attribute/PrintServiceAttributeSet.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_PrintServiceAttributeSet__ +#define __javax_print_attribute_PrintServiceAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Attribute; + class AttributeSet; + class PrintServiceAttributeSet; + } + } + } +} + +class javax::print::attribute::PrintServiceAttributeSet : public ::java::lang::Object +{ + +public: + virtual jboolean add(::javax::print::attribute::Attribute *) = 0; + virtual jboolean addAll(::javax::print::attribute::AttributeSet *) = 0; + virtual void clear() = 0; + virtual jboolean containsKey(::java::lang::Class *) = 0; + virtual jboolean containsValue(::javax::print::attribute::Attribute *) = 0; + virtual ::javax::print::attribute::Attribute * get(::java::lang::Class *) = 0; + virtual jboolean isEmpty() = 0; + virtual jboolean remove(::javax::print::attribute::Attribute *) = 0; + virtual jboolean remove(::java::lang::Class *) = 0; + virtual jint size() = 0; + virtual JArray< ::javax::print::attribute::Attribute * > * toArray() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_PrintServiceAttributeSet__ diff --git a/libjava/javax/print/attribute/ResolutionSyntax.h b/libjava/javax/print/attribute/ResolutionSyntax.h new file mode 100644 index 00000000000..107642dd4c4 --- /dev/null +++ b/libjava/javax/print/attribute/ResolutionSyntax.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_ResolutionSyntax__ +#define __javax_print_attribute_ResolutionSyntax__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class ResolutionSyntax; + } + } + } +} + +class javax::print::attribute::ResolutionSyntax : public ::java::lang::Object +{ + +public: + ResolutionSyntax(jint, jint, jint); + virtual jboolean equals(::java::lang::Object *); + virtual jint getCrossFeedResolution(jint); +public: // actually protected + virtual jint getCrossFeedResolutionDphi(); +public: + virtual jint getFeedResolution(jint); +public: // actually protected + virtual jint getFeedResolutionDphi(); +public: + virtual JArray< jint > * getResolution(jint); + virtual jint hashCode(); + virtual jboolean lessThanOrEquals(::javax::print::attribute::ResolutionSyntax *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(jint, ::java::lang::String *); +private: + static const jlong serialVersionUID = 2706743076526672017LL; +public: + static const jint DPCM = 254; + static const jint DPI = 100; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) crossFeedResolution; + jint feedResolution; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_ResolutionSyntax__ diff --git a/libjava/javax/print/attribute/SetOfIntegerSyntax$1.h b/libjava/javax/print/attribute/SetOfIntegerSyntax$1.h new file mode 100644 index 00000000000..6c374e4728e --- /dev/null +++ b/libjava/javax/print/attribute/SetOfIntegerSyntax$1.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_SetOfIntegerSyntax$1__ +#define __javax_print_attribute_SetOfIntegerSyntax$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class SetOfIntegerSyntax$1; + } + } + } +} + +class javax::print::attribute::SetOfIntegerSyntax$1 : public ::java::lang::Object +{ + +public: // actually package-private + SetOfIntegerSyntax$1(); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_SetOfIntegerSyntax$1__ diff --git a/libjava/javax/print/attribute/SetOfIntegerSyntax.h b/libjava/javax/print/attribute/SetOfIntegerSyntax.h new file mode 100644 index 00000000000..302544fcd60 --- /dev/null +++ b/libjava/javax/print/attribute/SetOfIntegerSyntax.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_SetOfIntegerSyntax__ +#define __javax_print_attribute_SetOfIntegerSyntax__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace text + { + class StringCharacterIterator; + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class IntegerSyntax; + class SetOfIntegerSyntax; + } + } + } +} + +class javax::print::attribute::SetOfIntegerSyntax : public ::java::lang::Object +{ + + static JArray< JArray< jint > * > * normalize(JArray< JArray< jint > * > *, jint); +public: // actually protected + SetOfIntegerSyntax(jint); + SetOfIntegerSyntax(JArray< JArray< jint > * > *); +private: + jboolean skipWhitespace(::java::text::StringCharacterIterator *); + jboolean skipNumber(::java::text::StringCharacterIterator *); +public: // actually protected + SetOfIntegerSyntax(::java::lang::String *); + SetOfIntegerSyntax(jint, jint); +public: + virtual jboolean contains(jint); + virtual jboolean contains(::javax::print::attribute::IntegerSyntax *); + virtual jboolean equals(::java::lang::Object *); + virtual JArray< JArray< jint > * > * getMembers(); + virtual jint hashCode(); + virtual jint next(jint); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 3666874174847632203LL; + JArray< JArray< jint > * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) members; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_SetOfIntegerSyntax__ diff --git a/libjava/javax/print/attribute/Size2DSyntax.h b/libjava/javax/print/attribute/Size2DSyntax.h new file mode 100644 index 00000000000..36280a50ddc --- /dev/null +++ b/libjava/javax/print/attribute/Size2DSyntax.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_Size2DSyntax__ +#define __javax_print_attribute_Size2DSyntax__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class Size2DSyntax; + } + } + } +} + +class javax::print::attribute::Size2DSyntax : public ::java::lang::Object +{ + +public: // actually protected + Size2DSyntax(jfloat, jfloat, jint); + Size2DSyntax(jint, jint, jint); +public: + virtual jboolean equals(::java::lang::Object *); + virtual JArray< jfloat > * getSize(jint); + virtual jfloat getX(jint); +public: // actually protected + virtual jint getXMicrometers(); +public: + virtual jfloat getY(jint); +public: // actually protected + virtual jint getYMicrometers(); +public: + virtual jint hashCode(); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * toString(jint, ::java::lang::String *); + static const jint INCH = 25400; + static const jint MM = 1000; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) x; + jint y; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_Size2DSyntax__ diff --git a/libjava/javax/print/attribute/SupportedValuesAttribute.h b/libjava/javax/print/attribute/SupportedValuesAttribute.h new file mode 100644 index 00000000000..26b2b2b8edf --- /dev/null +++ b/libjava/javax/print/attribute/SupportedValuesAttribute.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_SupportedValuesAttribute__ +#define __javax_print_attribute_SupportedValuesAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class SupportedValuesAttribute; + } + } + } +} + +class javax::print::attribute::SupportedValuesAttribute : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Class * getCategory() = 0; + virtual ::java::lang::String * getName() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_attribute_SupportedValuesAttribute__ diff --git a/libjava/javax/print/attribute/TextSyntax.h b/libjava/javax/print/attribute/TextSyntax.h new file mode 100644 index 00000000000..b22700d0b58 --- /dev/null +++ b/libjava/javax/print/attribute/TextSyntax.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_TextSyntax__ +#define __javax_print_attribute_TextSyntax__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class TextSyntax; + } + } + } +} + +class javax::print::attribute::TextSyntax : public ::java::lang::Object +{ + +public: // actually protected + TextSyntax(::java::lang::String *, ::java::util::Locale *); +public: + virtual ::java::lang::String * getValue(); + virtual ::java::util::Locale * getLocale(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -8130648736378144102LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + ::java::util::Locale * locale; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_TextSyntax__ diff --git a/libjava/javax/print/attribute/URISyntax.h b/libjava/javax/print/attribute/URISyntax.h new file mode 100644 index 00000000000..9c38d5c5e0f --- /dev/null +++ b/libjava/javax/print/attribute/URISyntax.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_URISyntax__ +#define __javax_print_attribute_URISyntax__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + namespace attribute + { + class URISyntax; + } + } + } +} + +class javax::print::attribute::URISyntax : public ::java::lang::Object +{ + +public: // actually protected + URISyntax(::java::net::URI *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual ::java::net::URI * getURI(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -7842661210486401678LL; + ::java::net::URI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) uri; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_URISyntax__ diff --git a/libjava/javax/print/attribute/UnmodifiableSetException.h b/libjava/javax/print/attribute/UnmodifiableSetException.h new file mode 100644 index 00000000000..33bc1289993 --- /dev/null +++ b/libjava/javax/print/attribute/UnmodifiableSetException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_UnmodifiableSetException__ +#define __javax_print_attribute_UnmodifiableSetException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class UnmodifiableSetException; + } + } + } +} + +class javax::print::attribute::UnmodifiableSetException : public ::java::lang::RuntimeException +{ + +public: + UnmodifiableSetException(); + UnmodifiableSetException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_UnmodifiableSetException__ diff --git a/libjava/javax/print/attribute/standard/Chromaticity.h b/libjava/javax/print/attribute/standard/Chromaticity.h new file mode 100644 index 00000000000..9571ef86cc7 --- /dev/null +++ b/libjava/javax/print/attribute/standard/Chromaticity.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Chromaticity__ +#define __javax_print_attribute_standard_Chromaticity__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Chromaticity; + } + } + } + } +} + +class javax::print::attribute::standard::Chromaticity : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + Chromaticity(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 4660543931355214012LL; +public: + static ::javax::print::attribute::standard::Chromaticity * MONOCHROME; + static ::javax::print::attribute::standard::Chromaticity * COLOR; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::Chromaticity * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Chromaticity__ diff --git a/libjava/javax/print/attribute/standard/ColorSupported.h b/libjava/javax/print/attribute/standard/ColorSupported.h new file mode 100644 index 00000000000..085c0cdc24d --- /dev/null +++ b/libjava/javax/print/attribute/standard/ColorSupported.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_ColorSupported__ +#define __javax_print_attribute_standard_ColorSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class ColorSupported; + } + } + } + } +} + +class javax::print::attribute::standard::ColorSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + ColorSupported(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -2700555589688535545LL; +public: + static ::javax::print::attribute::standard::ColorSupported * NOT_SUPPORTED; + static ::javax::print::attribute::standard::ColorSupported * SUPPORTED; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::ColorSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_ColorSupported__ diff --git a/libjava/javax/print/attribute/standard/Compression.h b/libjava/javax/print/attribute/standard/Compression.h new file mode 100644 index 00000000000..f1dc555680c --- /dev/null +++ b/libjava/javax/print/attribute/standard/Compression.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Compression__ +#define __javax_print_attribute_standard_Compression__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Compression; + } + } + } + } +} + +class javax::print::attribute::standard::Compression : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + Compression(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -5716748913324997674LL; +public: + static ::javax::print::attribute::standard::Compression * NONE; + static ::javax::print::attribute::standard::Compression * DEFLATE; + static ::javax::print::attribute::standard::Compression * GZIP; + static ::javax::print::attribute::standard::Compression * COMPRESS; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::Compression * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Compression__ diff --git a/libjava/javax/print/attribute/standard/Copies.h b/libjava/javax/print/attribute/standard/Copies.h new file mode 100644 index 00000000000..d2c277c8c7a --- /dev/null +++ b/libjava/javax/print/attribute/standard/Copies.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Copies__ +#define __javax_print_attribute_standard_Copies__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class Copies; + } + } + } + } +} + +class javax::print::attribute::standard::Copies : public ::javax::print::attribute::IntegerSyntax +{ + +public: + Copies(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -6426631521680023833LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Copies__ diff --git a/libjava/javax/print/attribute/standard/CopiesSupported.h b/libjava/javax/print/attribute/standard/CopiesSupported.h new file mode 100644 index 00000000000..62c3428645a --- /dev/null +++ b/libjava/javax/print/attribute/standard/CopiesSupported.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_CopiesSupported__ +#define __javax_print_attribute_standard_CopiesSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class CopiesSupported; + } + } + } + } +} + +class javax::print::attribute::standard::CopiesSupported : public ::javax::print::attribute::SetOfIntegerSyntax +{ + +public: + CopiesSupported(jint); + CopiesSupported(jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 6927711687034846001LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_CopiesSupported__ diff --git a/libjava/javax/print/attribute/standard/DateTimeAtCompleted.h b/libjava/javax/print/attribute/standard/DateTimeAtCompleted.h new file mode 100644 index 00000000000..1b012a34e8c --- /dev/null +++ b/libjava/javax/print/attribute/standard/DateTimeAtCompleted.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_DateTimeAtCompleted__ +#define __javax_print_attribute_standard_DateTimeAtCompleted__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class DateTimeAtCompleted; + } + } + } + } +} + +class javax::print::attribute::standard::DateTimeAtCompleted : public ::javax::print::attribute::DateTimeSyntax +{ + +public: + DateTimeAtCompleted(::java::util::Date *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 6497399708058490000LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_DateTimeAtCompleted__ diff --git a/libjava/javax/print/attribute/standard/DateTimeAtCreation.h b/libjava/javax/print/attribute/standard/DateTimeAtCreation.h new file mode 100644 index 00000000000..a88c7c128fb --- /dev/null +++ b/libjava/javax/print/attribute/standard/DateTimeAtCreation.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_DateTimeAtCreation__ +#define __javax_print_attribute_standard_DateTimeAtCreation__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class DateTimeAtCreation; + } + } + } + } +} + +class javax::print::attribute::standard::DateTimeAtCreation : public ::javax::print::attribute::DateTimeSyntax +{ + +public: + DateTimeAtCreation(::java::util::Date *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -2923732231056647903LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_DateTimeAtCreation__ diff --git a/libjava/javax/print/attribute/standard/DateTimeAtProcessing.h b/libjava/javax/print/attribute/standard/DateTimeAtProcessing.h new file mode 100644 index 00000000000..8f50d1b9014 --- /dev/null +++ b/libjava/javax/print/attribute/standard/DateTimeAtProcessing.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_DateTimeAtProcessing__ +#define __javax_print_attribute_standard_DateTimeAtProcessing__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class DateTimeAtProcessing; + } + } + } + } +} + +class javax::print::attribute::standard::DateTimeAtProcessing : public ::javax::print::attribute::DateTimeSyntax +{ + +public: + DateTimeAtProcessing(::java::util::Date *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -3710068197278263244LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_DateTimeAtProcessing__ diff --git a/libjava/javax/print/attribute/standard/Destination.h b/libjava/javax/print/attribute/standard/Destination.h new file mode 100644 index 00000000000..b9d5d996f46 --- /dev/null +++ b/libjava/javax/print/attribute/standard/Destination.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Destination__ +#define __javax_print_attribute_standard_Destination__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class Destination; + } + } + } + } +} + +class javax::print::attribute::standard::Destination : public ::javax::print::attribute::URISyntax +{ + +public: + Destination(::java::net::URI *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 6776739171700415321LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Destination__ diff --git a/libjava/javax/print/attribute/standard/DocumentName.h b/libjava/javax/print/attribute/standard/DocumentName.h new file mode 100644 index 00000000000..6ed7121309e --- /dev/null +++ b/libjava/javax/print/attribute/standard/DocumentName.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_DocumentName__ +#define __javax_print_attribute_standard_DocumentName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class DocumentName; + } + } + } + } +} + +class javax::print::attribute::standard::DocumentName : public ::javax::print::attribute::TextSyntax +{ + +public: + DocumentName(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 7883105848533280430LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_DocumentName__ diff --git a/libjava/javax/print/attribute/standard/Fidelity.h b/libjava/javax/print/attribute/standard/Fidelity.h new file mode 100644 index 00000000000..ac31da58512 --- /dev/null +++ b/libjava/javax/print/attribute/standard/Fidelity.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Fidelity__ +#define __javax_print_attribute_standard_Fidelity__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Fidelity; + } + } + } + } +} + +class javax::print::attribute::standard::Fidelity : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + Fidelity(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 6320827847329172308LL; +public: + static ::javax::print::attribute::standard::Fidelity * FIDELITY_TRUE; + static ::javax::print::attribute::standard::Fidelity * FIDELITY_FALSE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::Fidelity * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Fidelity__ diff --git a/libjava/javax/print/attribute/standard/Finishings.h b/libjava/javax/print/attribute/standard/Finishings.h new file mode 100644 index 00000000000..6b228c815e5 --- /dev/null +++ b/libjava/javax/print/attribute/standard/Finishings.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Finishings__ +#define __javax_print_attribute_standard_Finishings__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Finishings; + } + } + } + } +} + +class javax::print::attribute::standard::Finishings : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + Finishings(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + virtual jint getOffset(); +private: + static const jlong serialVersionUID = -627840419548391754LL; +public: + static ::javax::print::attribute::standard::Finishings * NONE; + static ::javax::print::attribute::standard::Finishings * STAPLE; + static ::javax::print::attribute::standard::Finishings * COVER; + static ::javax::print::attribute::standard::Finishings * BIND; + static ::javax::print::attribute::standard::Finishings * SADDLE_STITCH; + static ::javax::print::attribute::standard::Finishings * EDGE_STITCH; + static ::javax::print::attribute::standard::Finishings * STAPLE_TOP_LEFT; + static ::javax::print::attribute::standard::Finishings * STAPLE_BOTTOM_LEFT; + static ::javax::print::attribute::standard::Finishings * STAPLE_TOP_RIGHT; + static ::javax::print::attribute::standard::Finishings * STAPLE_BOTTOM_RIGHT; + static ::javax::print::attribute::standard::Finishings * EDGE_STITCH_LEFT; + static ::javax::print::attribute::standard::Finishings * EDGE_STITCH_TOP; + static ::javax::print::attribute::standard::Finishings * EDGE_STITCH_RIGHT; + static ::javax::print::attribute::standard::Finishings * EDGE_STITCH_BOTTOM; + static ::javax::print::attribute::standard::Finishings * STAPLE_DUAL_LEFT; + static ::javax::print::attribute::standard::Finishings * STAPLE_DUAL_TOP; + static ::javax::print::attribute::standard::Finishings * STAPLE_DUAL_RIGHT; + static ::javax::print::attribute::standard::Finishings * STAPLE_DUAL_BOTTOM; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::Finishings * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Finishings__ diff --git a/libjava/javax/print/attribute/standard/JobHoldUntil.h b/libjava/javax/print/attribute/standard/JobHoldUntil.h new file mode 100644 index 00000000000..c13c5273a79 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobHoldUntil.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobHoldUntil__ +#define __javax_print_attribute_standard_JobHoldUntil__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobHoldUntil; + } + } + } + } +} + +class javax::print::attribute::standard::JobHoldUntil : public ::javax::print::attribute::DateTimeSyntax +{ + +public: + JobHoldUntil(::java::util::Date *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -1664471048860415024LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobHoldUntil__ diff --git a/libjava/javax/print/attribute/standard/JobImpressions.h b/libjava/javax/print/attribute/standard/JobImpressions.h new file mode 100644 index 00000000000..0cf000685db --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobImpressions.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobImpressions__ +#define __javax_print_attribute_standard_JobImpressions__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobImpressions; + } + } + } + } +} + +class javax::print::attribute::standard::JobImpressions : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobImpressions(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 8225537206784322464LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobImpressions__ diff --git a/libjava/javax/print/attribute/standard/JobImpressionsCompleted.h b/libjava/javax/print/attribute/standard/JobImpressionsCompleted.h new file mode 100644 index 00000000000..37deda52d1c --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobImpressionsCompleted.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobImpressionsCompleted__ +#define __javax_print_attribute_standard_JobImpressionsCompleted__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobImpressionsCompleted; + } + } + } + } +} + +class javax::print::attribute::standard::JobImpressionsCompleted : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobImpressionsCompleted(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 6722648442432393294LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobImpressionsCompleted__ diff --git a/libjava/javax/print/attribute/standard/JobImpressionsSupported.h b/libjava/javax/print/attribute/standard/JobImpressionsSupported.h new file mode 100644 index 00000000000..83f5c1b80d2 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobImpressionsSupported.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobImpressionsSupported__ +#define __javax_print_attribute_standard_JobImpressionsSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobImpressionsSupported; + } + } + } + } +} + +class javax::print::attribute::standard::JobImpressionsSupported : public ::javax::print::attribute::SetOfIntegerSyntax +{ + +public: + JobImpressionsSupported(jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -4887354803843173692LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobImpressionsSupported__ diff --git a/libjava/javax/print/attribute/standard/JobKOctets.h b/libjava/javax/print/attribute/standard/JobKOctets.h new file mode 100644 index 00000000000..35241fc1f8d --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobKOctets.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobKOctets__ +#define __javax_print_attribute_standard_JobKOctets__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobKOctets; + } + } + } + } +} + +class javax::print::attribute::standard::JobKOctets : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobKOctets(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -8959710146498202869LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobKOctets__ diff --git a/libjava/javax/print/attribute/standard/JobKOctetsProcessed.h b/libjava/javax/print/attribute/standard/JobKOctetsProcessed.h new file mode 100644 index 00000000000..8eb274b2caf --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobKOctetsProcessed.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobKOctetsProcessed__ +#define __javax_print_attribute_standard_JobKOctetsProcessed__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobKOctetsProcessed; + } + } + } + } +} + +class javax::print::attribute::standard::JobKOctetsProcessed : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobKOctetsProcessed(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -6265238509657881806LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobKOctetsProcessed__ diff --git a/libjava/javax/print/attribute/standard/JobKOctetsSupported.h b/libjava/javax/print/attribute/standard/JobKOctetsSupported.h new file mode 100644 index 00000000000..455211eb4bb --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobKOctetsSupported.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobKOctetsSupported__ +#define __javax_print_attribute_standard_JobKOctetsSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobKOctetsSupported; + } + } + } + } +} + +class javax::print::attribute::standard::JobKOctetsSupported : public ::javax::print::attribute::SetOfIntegerSyntax +{ + +public: + JobKOctetsSupported(jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -2867871140549897443LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobKOctetsSupported__ diff --git a/libjava/javax/print/attribute/standard/JobMediaSheets.h b/libjava/javax/print/attribute/standard/JobMediaSheets.h new file mode 100644 index 00000000000..4f21d416029 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobMediaSheets.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobMediaSheets__ +#define __javax_print_attribute_standard_JobMediaSheets__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobMediaSheets; + } + } + } + } +} + +class javax::print::attribute::standard::JobMediaSheets : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobMediaSheets(jint); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 408871131531979741LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobMediaSheets__ diff --git a/libjava/javax/print/attribute/standard/JobMediaSheetsCompleted.h b/libjava/javax/print/attribute/standard/JobMediaSheetsCompleted.h new file mode 100644 index 00000000000..e12bf25359e --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobMediaSheetsCompleted.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobMediaSheetsCompleted__ +#define __javax_print_attribute_standard_JobMediaSheetsCompleted__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobMediaSheetsCompleted; + } + } + } + } +} + +class javax::print::attribute::standard::JobMediaSheetsCompleted : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobMediaSheetsCompleted(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 1739595973810840475LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobMediaSheetsCompleted__ diff --git a/libjava/javax/print/attribute/standard/JobMediaSheetsSupported.h b/libjava/javax/print/attribute/standard/JobMediaSheetsSupported.h new file mode 100644 index 00000000000..b451ce4651c --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobMediaSheetsSupported.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobMediaSheetsSupported__ +#define __javax_print_attribute_standard_JobMediaSheetsSupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobMediaSheetsSupported; + } + } + } + } +} + +class javax::print::attribute::standard::JobMediaSheetsSupported : public ::javax::print::attribute::SetOfIntegerSyntax +{ + +public: + JobMediaSheetsSupported(jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 2953685470388672940LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobMediaSheetsSupported__ diff --git a/libjava/javax/print/attribute/standard/JobMessageFromOperator.h b/libjava/javax/print/attribute/standard/JobMessageFromOperator.h new file mode 100644 index 00000000000..4c43f0d888a --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobMessageFromOperator.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobMessageFromOperator__ +#define __javax_print_attribute_standard_JobMessageFromOperator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobMessageFromOperator; + } + } + } + } +} + +class javax::print::attribute::standard::JobMessageFromOperator : public ::javax::print::attribute::TextSyntax +{ + +public: + JobMessageFromOperator(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -4620751846003142047LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobMessageFromOperator__ diff --git a/libjava/javax/print/attribute/standard/JobName.h b/libjava/javax/print/attribute/standard/JobName.h new file mode 100644 index 00000000000..4147be41c4d --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobName.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobName__ +#define __javax_print_attribute_standard_JobName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobName; + } + } + } + } +} + +class javax::print::attribute::standard::JobName : public ::javax::print::attribute::TextSyntax +{ + +public: + JobName(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 4660359192078689545LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobName__ diff --git a/libjava/javax/print/attribute/standard/JobOriginatingUserName.h b/libjava/javax/print/attribute/standard/JobOriginatingUserName.h new file mode 100644 index 00000000000..a3ba06784ae --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobOriginatingUserName.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobOriginatingUserName__ +#define __javax_print_attribute_standard_JobOriginatingUserName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobOriginatingUserName; + } + } + } + } +} + +class javax::print::attribute::standard::JobOriginatingUserName : public ::javax::print::attribute::TextSyntax +{ + +public: + JobOriginatingUserName(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -8052537926362933477LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobOriginatingUserName__ diff --git a/libjava/javax/print/attribute/standard/JobPriority.h b/libjava/javax/print/attribute/standard/JobPriority.h new file mode 100644 index 00000000000..54a46220f16 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobPriority.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobPriority__ +#define __javax_print_attribute_standard_JobPriority__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobPriority; + } + } + } + } +} + +class javax::print::attribute::standard::JobPriority : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobPriority(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -4599900369040602769LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobPriority__ diff --git a/libjava/javax/print/attribute/standard/JobPrioritySupported.h b/libjava/javax/print/attribute/standard/JobPrioritySupported.h new file mode 100644 index 00000000000..c131fe76b91 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobPrioritySupported.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobPrioritySupported__ +#define __javax_print_attribute_standard_JobPrioritySupported__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobPrioritySupported; + } + } + } + } +} + +class javax::print::attribute::standard::JobPrioritySupported : public ::javax::print::attribute::IntegerSyntax +{ + +public: + JobPrioritySupported(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 2564840378013555894LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobPrioritySupported__ diff --git a/libjava/javax/print/attribute/standard/JobSheets.h b/libjava/javax/print/attribute/standard/JobSheets.h new file mode 100644 index 00000000000..8ab9c7febf2 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobSheets.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobSheets__ +#define __javax_print_attribute_standard_JobSheets__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class JobSheets; + } + } + } + } +} + +class javax::print::attribute::standard::JobSheets : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + JobSheets(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -4735258056132519759LL; +public: + static ::javax::print::attribute::standard::JobSheets * NONE; + static ::javax::print::attribute::standard::JobSheets * STANDARD; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::JobSheets * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobSheets__ diff --git a/libjava/javax/print/attribute/standard/JobState.h b/libjava/javax/print/attribute/standard/JobState.h new file mode 100644 index 00000000000..dc6c1ec7e53 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobState.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobState__ +#define __javax_print_attribute_standard_JobState__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class JobState; + } + } + } + } +} + +class javax::print::attribute::standard::JobState : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + JobState(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 400465010094018920LL; +public: + static ::javax::print::attribute::standard::JobState * UNKNOWN; + static ::javax::print::attribute::standard::JobState * PENDING; + static ::javax::print::attribute::standard::JobState * PENDING_HELD; + static ::javax::print::attribute::standard::JobState * PROCESSING; + static ::javax::print::attribute::standard::JobState * PROCESSING_STOPPED; + static ::javax::print::attribute::standard::JobState * CANCELED; + static ::javax::print::attribute::standard::JobState * ABORTED; + static ::javax::print::attribute::standard::JobState * COMPLETED; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::JobState * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobState__ diff --git a/libjava/javax/print/attribute/standard/JobStateReason.h b/libjava/javax/print/attribute/standard/JobStateReason.h new file mode 100644 index 00000000000..b641ef6e84f --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobStateReason.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobStateReason__ +#define __javax_print_attribute_standard_JobStateReason__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class JobStateReason; + } + } + } + } +} + +class javax::print::attribute::standard::JobStateReason : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + JobStateReason(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -8765894420449009168LL; +public: + static ::javax::print::attribute::standard::JobStateReason * JOB_INCOMING; + static ::javax::print::attribute::standard::JobStateReason * JOB_DATA_INSUFFICIENT; + static ::javax::print::attribute::standard::JobStateReason * DOCUMENT_ACCESS_ERROR; + static ::javax::print::attribute::standard::JobStateReason * SUBMISSION_INTERRUPTED; + static ::javax::print::attribute::standard::JobStateReason * JOB_OUTGOING; + static ::javax::print::attribute::standard::JobStateReason * JOB_HOLD_UNTIL_SPECIFIED; + static ::javax::print::attribute::standard::JobStateReason * RESOURCES_ARE_NOT_READY; + static ::javax::print::attribute::standard::JobStateReason * PRINTER_STOPPED_PARTLY; + static ::javax::print::attribute::standard::JobStateReason * PRINTER_STOPPED; + static ::javax::print::attribute::standard::JobStateReason * JOB_INTERPRETING; + static ::javax::print::attribute::standard::JobStateReason * JOB_QUEUED; + static ::javax::print::attribute::standard::JobStateReason * JOB_TRANSFORMING; + static ::javax::print::attribute::standard::JobStateReason * JOB_QUEUED_FOR_MARKER; + static ::javax::print::attribute::standard::JobStateReason * JOB_PRINTING; + static ::javax::print::attribute::standard::JobStateReason * JOB_CANCELED_BY_USER; + static ::javax::print::attribute::standard::JobStateReason * JOB_CANCELED_BY_OPERATOR; + static ::javax::print::attribute::standard::JobStateReason * JOB_CANCELED_AT_DEVICE; + static ::javax::print::attribute::standard::JobStateReason * ABORTED_BY_SYSTEM; + static ::javax::print::attribute::standard::JobStateReason * UNSUPPORTED_COMPRESSION; + static ::javax::print::attribute::standard::JobStateReason * COMPRESSION_ERROR; + static ::javax::print::attribute::standard::JobStateReason * UNSUPPORTED_DOCUMENT_FORMAT; + static ::javax::print::attribute::standard::JobStateReason * DOCUMENT_FORMAT_ERROR; + static ::javax::print::attribute::standard::JobStateReason * PROCESSING_TO_STOP_POINT; + static ::javax::print::attribute::standard::JobStateReason * SERVICE_OFF_LINE; + static ::javax::print::attribute::standard::JobStateReason * JOB_COMPLETED_SUCCESSFULLY; + static ::javax::print::attribute::standard::JobStateReason * JOB_COMPLETED_WITH_WARNINGS; + static ::javax::print::attribute::standard::JobStateReason * JOB_COMPLETED_WITH_ERRORS; + static ::javax::print::attribute::standard::JobStateReason * JOB_RESTARTABLE; + static ::javax::print::attribute::standard::JobStateReason * QUEUED_IN_DEVICE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::JobStateReason * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobStateReason__ diff --git a/libjava/javax/print/attribute/standard/JobStateReasons.h b/libjava/javax/print/attribute/standard/JobStateReasons.h new file mode 100644 index 00000000000..4e5fce82d60 --- /dev/null +++ b/libjava/javax/print/attribute/standard/JobStateReasons.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_JobStateReasons__ +#define __javax_print_attribute_standard_JobStateReasons__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class JobStateReason; + class JobStateReasons; + } + } + } + } +} + +class javax::print::attribute::standard::JobStateReasons : public ::java::util::HashSet +{ + +public: + JobStateReasons(); + JobStateReasons(jint, jfloat); + JobStateReasons(jint); + JobStateReasons(::java::util::Collection *); + jboolean target$add(::javax::print::attribute::standard::JobStateReason *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + jboolean add(::java::lang::Object *); +private: + static const jlong serialVersionUID = 8849088261264331812LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_JobStateReasons__ diff --git a/libjava/javax/print/attribute/standard/Media.h b/libjava/javax/print/attribute/standard/Media.h new file mode 100644 index 00000000000..e4c013b1594 --- /dev/null +++ b/libjava/javax/print/attribute/standard/Media.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Media__ +#define __javax_print_attribute_standard_Media__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class Media; + } + } + } + } +} + +class javax::print::attribute::standard::Media : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + Media(jint); +public: + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -2823970704630722439LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Media__ diff --git a/libjava/javax/print/attribute/standard/MediaName.h b/libjava/javax/print/attribute/standard/MediaName.h new file mode 100644 index 00000000000..160d6bbc461 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaName.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaName__ +#define __javax_print_attribute_standard_MediaName__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class MediaName; + } + } + } + } +} + +class javax::print::attribute::standard::MediaName : public ::javax::print::attribute::standard::Media +{ + +public: // actually protected + MediaName(jint); + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 4653117714524155448LL; +public: + static ::javax::print::attribute::standard::MediaName * NA_LETTER_WHITE; + static ::javax::print::attribute::standard::MediaName * NA_LETTER_TRANSPARENT; + static ::javax::print::attribute::standard::MediaName * ISO_A4_WHITE; + static ::javax::print::attribute::standard::MediaName * ISO_A4_TRANSPARENT; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::MediaName * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaName__ diff --git a/libjava/javax/print/attribute/standard/MediaPrintableArea.h b/libjava/javax/print/attribute/standard/MediaPrintableArea.h new file mode 100644 index 00000000000..89c96109b74 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaPrintableArea.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaPrintableArea__ +#define __javax_print_attribute_standard_MediaPrintableArea__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class MediaPrintableArea; + } + } + } + } +} + +class javax::print::attribute::standard::MediaPrintableArea : public ::java::lang::Object +{ + +public: + MediaPrintableArea(jfloat, jfloat, jfloat, jfloat, jint); + MediaPrintableArea(jint, jint, jint, jint, jint); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + jfloat getHeight(jint); + jfloat getWidth(jint); + jfloat getX(jint); + jfloat getY(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::String * toString(); + jint hashCode(); + ::java::lang::String * toString(jint, ::java::lang::String *); + JArray< jfloat > * getPrintableArea(jint); +private: + static const jlong serialVersionUID = -1597171464050795793LL; +public: + static const jint INCH = 25400; + static const jint MM = 1000; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) x; + jint y; + jint w; + jint h; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaPrintableArea__ diff --git a/libjava/javax/print/attribute/standard/MediaSize$Engineering.h b/libjava/javax/print/attribute/standard/MediaSize$Engineering.h new file mode 100644 index 00000000000..ae8edcce79f --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaSize$Engineering.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaSize$Engineering__ +#define __javax_print_attribute_standard_MediaSize$Engineering__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class MediaSize; + class MediaSize$Engineering; + } + } + } + } +} + +class javax::print::attribute::standard::MediaSize$Engineering : public ::java::lang::Object +{ + + MediaSize$Engineering(); +public: + static ::javax::print::attribute::standard::MediaSize * A; + static ::javax::print::attribute::standard::MediaSize * B; + static ::javax::print::attribute::standard::MediaSize * C; + static ::javax::print::attribute::standard::MediaSize * D; + static ::javax::print::attribute::standard::MediaSize * E; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaSize$Engineering__ diff --git a/libjava/javax/print/attribute/standard/MediaSize$ISO.h b/libjava/javax/print/attribute/standard/MediaSize$ISO.h new file mode 100644 index 00000000000..08656462d30 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaSize$ISO.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaSize$ISO__ +#define __javax_print_attribute_standard_MediaSize$ISO__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class MediaSize; + class MediaSize$ISO; + } + } + } + } +} + +class javax::print::attribute::standard::MediaSize$ISO : public ::java::lang::Object +{ + + MediaSize$ISO(); +public: + static ::javax::print::attribute::standard::MediaSize * A0; + static ::javax::print::attribute::standard::MediaSize * A1; + static ::javax::print::attribute::standard::MediaSize * A2; + static ::javax::print::attribute::standard::MediaSize * A3; + static ::javax::print::attribute::standard::MediaSize * A4; + static ::javax::print::attribute::standard::MediaSize * A5; + static ::javax::print::attribute::standard::MediaSize * A6; + static ::javax::print::attribute::standard::MediaSize * A7; + static ::javax::print::attribute::standard::MediaSize * A8; + static ::javax::print::attribute::standard::MediaSize * A9; + static ::javax::print::attribute::standard::MediaSize * A10; + static ::javax::print::attribute::standard::MediaSize * B0; + static ::javax::print::attribute::standard::MediaSize * B1; + static ::javax::print::attribute::standard::MediaSize * B2; + static ::javax::print::attribute::standard::MediaSize * B3; + static ::javax::print::attribute::standard::MediaSize * B4; + static ::javax::print::attribute::standard::MediaSize * B5; + static ::javax::print::attribute::standard::MediaSize * B6; + static ::javax::print::attribute::standard::MediaSize * B7; + static ::javax::print::attribute::standard::MediaSize * B8; + static ::javax::print::attribute::standard::MediaSize * B9; + static ::javax::print::attribute::standard::MediaSize * B10; + static ::javax::print::attribute::standard::MediaSize * C3; + static ::javax::print::attribute::standard::MediaSize * C4; + static ::javax::print::attribute::standard::MediaSize * C5; + static ::javax::print::attribute::standard::MediaSize * C6; + static ::javax::print::attribute::standard::MediaSize * DESIGNATED_LONG; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaSize$ISO__ diff --git a/libjava/javax/print/attribute/standard/MediaSize$JIS.h b/libjava/javax/print/attribute/standard/MediaSize$JIS.h new file mode 100644 index 00000000000..be1545798d6 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaSize$JIS.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaSize$JIS__ +#define __javax_print_attribute_standard_MediaSize$JIS__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class MediaSize; + class MediaSize$JIS; + } + } + } + } +} + +class javax::print::attribute::standard::MediaSize$JIS : public ::java::lang::Object +{ + + MediaSize$JIS(); +public: + static ::javax::print::attribute::standard::MediaSize * B0; + static ::javax::print::attribute::standard::MediaSize * B1; + static ::javax::print::attribute::standard::MediaSize * B2; + static ::javax::print::attribute::standard::MediaSize * B3; + static ::javax::print::attribute::standard::MediaSize * B4; + static ::javax::print::attribute::standard::MediaSize * B5; + static ::javax::print::attribute::standard::MediaSize * B6; + static ::javax::print::attribute::standard::MediaSize * B7; + static ::javax::print::attribute::standard::MediaSize * B8; + static ::javax::print::attribute::standard::MediaSize * B9; + static ::javax::print::attribute::standard::MediaSize * B10; + static ::javax::print::attribute::standard::MediaSize * CHOU_1; + static ::javax::print::attribute::standard::MediaSize * CHOU_2; + static ::javax::print::attribute::standard::MediaSize * CHOU_3; + static ::javax::print::attribute::standard::MediaSize * CHOU_4; + static ::javax::print::attribute::standard::MediaSize * CHOU_30; + static ::javax::print::attribute::standard::MediaSize * CHOU_40; + static ::javax::print::attribute::standard::MediaSize * KAKU_0; + static ::javax::print::attribute::standard::MediaSize * KAKU_1; + static ::javax::print::attribute::standard::MediaSize * KAKU_2; + static ::javax::print::attribute::standard::MediaSize * KAKU_20; + static ::javax::print::attribute::standard::MediaSize * KAKU_3; + static ::javax::print::attribute::standard::MediaSize * KAKU_4; + static ::javax::print::attribute::standard::MediaSize * KAKU_5; + static ::javax::print::attribute::standard::MediaSize * KAKU_6; + static ::javax::print::attribute::standard::MediaSize * KAKU_7; + static ::javax::print::attribute::standard::MediaSize * KAKU_8; + static ::javax::print::attribute::standard::MediaSize * KAKU_A4; + static ::javax::print::attribute::standard::MediaSize * YOU_1; + static ::javax::print::attribute::standard::MediaSize * YOU_2; + static ::javax::print::attribute::standard::MediaSize * YOU_3; + static ::javax::print::attribute::standard::MediaSize * YOU_4; + static ::javax::print::attribute::standard::MediaSize * YOU_5; + static ::javax::print::attribute::standard::MediaSize * YOU_6; + static ::javax::print::attribute::standard::MediaSize * YOU_7; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaSize$JIS__ diff --git a/libjava/javax/print/attribute/standard/MediaSize$NA.h b/libjava/javax/print/attribute/standard/MediaSize$NA.h new file mode 100644 index 00000000000..e0236bfd9aa --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaSize$NA.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaSize$NA__ +#define __javax_print_attribute_standard_MediaSize$NA__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class MediaSize; + class MediaSize$NA; + } + } + } + } +} + +class javax::print::attribute::standard::MediaSize$NA : public ::java::lang::Object +{ + + MediaSize$NA(); +public: + static ::javax::print::attribute::standard::MediaSize * LEGAL; + static ::javax::print::attribute::standard::MediaSize * LETTER; + static ::javax::print::attribute::standard::MediaSize * NA_5X7; + static ::javax::print::attribute::standard::MediaSize * NA_8X10; + static ::javax::print::attribute::standard::MediaSize * NA_6X9_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_7X9_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_9x11_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_9x12_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_10x13_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_10x14_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_10X15_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_NUMBER_9_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_NUMBER_10_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_NUMBER_11_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_NUMBER_12_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * NA_NUMBER_14_ENVELOPE; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaSize$NA__ diff --git a/libjava/javax/print/attribute/standard/MediaSize$Other.h b/libjava/javax/print/attribute/standard/MediaSize$Other.h new file mode 100644 index 00000000000..d95078fbff0 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaSize$Other.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaSize$Other__ +#define __javax_print_attribute_standard_MediaSize$Other__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class MediaSize; + class MediaSize$Other; + } + } + } + } +} + +class javax::print::attribute::standard::MediaSize$Other : public ::java::lang::Object +{ + + MediaSize$Other(); +public: + static ::javax::print::attribute::standard::MediaSize * EXECUTIVE; + static ::javax::print::attribute::standard::MediaSize * FOLIO; + static ::javax::print::attribute::standard::MediaSize * QUARTO; + static ::javax::print::attribute::standard::MediaSize * INVOICE; + static ::javax::print::attribute::standard::MediaSize * LEDGER; + static ::javax::print::attribute::standard::MediaSize * MONARCH_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * PERSONAL_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * ITALY_ENVELOPE; + static ::javax::print::attribute::standard::MediaSize * JAPANESE_POSTCARD; + static ::javax::print::attribute::standard::MediaSize * JAPANESE_DOUBLE_POSTCARD; + static ::javax::print::attribute::standard::MediaSize * TABLOID; + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaSize$Other__ diff --git a/libjava/javax/print/attribute/standard/MediaSize.h b/libjava/javax/print/attribute/standard/MediaSize.h new file mode 100644 index 00000000000..3dd5aa9c010 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaSize.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaSize__ +#define __javax_print_attribute_standard_MediaSize__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class MediaSize; + class MediaSizeName; + } + } + } + } +} + +class javax::print::attribute::standard::MediaSize : public ::javax::print::attribute::Size2DSyntax +{ + +public: + MediaSize(jfloat, jfloat, jint); + MediaSize(jfloat, jfloat, jint, ::javax::print::attribute::standard::MediaSizeName *); + MediaSize(jint, jint, jint); + MediaSize(jint, jint, jint, ::javax::print::attribute::standard::MediaSizeName *); + virtual ::java::lang::Class * getCategory(); + static ::javax::print::attribute::standard::MediaSizeName * findMedia(jfloat, jfloat, jint); + static ::javax::print::attribute::standard::MediaSize * getMediaSizeForName(::javax::print::attribute::standard::MediaSizeName *); + virtual jboolean equals(::java::lang::Object *); + virtual ::javax::print::attribute::standard::MediaSizeName * getMediaSizeName(); + virtual ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -1967958664615414771LL; + static ::java::util::ArrayList * mediaCache; + ::javax::print::attribute::standard::MediaSizeName * __attribute__((aligned(__alignof__( ::javax::print::attribute::Size2DSyntax)))) mediaName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaSize__ diff --git a/libjava/javax/print/attribute/standard/MediaSizeName.h b/libjava/javax/print/attribute/standard/MediaSizeName.h new file mode 100644 index 00000000000..fecbee60593 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaSizeName.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaSizeName__ +#define __javax_print_attribute_standard_MediaSizeName__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class MediaSizeName; + } + } + } + } +} + +class javax::print::attribute::standard::MediaSizeName : public ::javax::print::attribute::standard::Media +{ + +public: // actually protected + MediaSizeName(jint); + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 2778798329756942747LL; +public: + static ::javax::print::attribute::standard::MediaSizeName * ISO_A0; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A1; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A2; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A3; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A4; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A5; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A6; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A7; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A8; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A9; + static ::javax::print::attribute::standard::MediaSizeName * ISO_A10; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B0; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B1; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B2; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B3; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B4; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B5; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B6; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B7; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B8; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B9; + static ::javax::print::attribute::standard::MediaSizeName * ISO_B10; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B0; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B1; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B2; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B3; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B4; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B5; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B6; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B7; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B8; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B9; + static ::javax::print::attribute::standard::MediaSizeName * JIS_B10; + static ::javax::print::attribute::standard::MediaSizeName * ISO_C0; + static ::javax::print::attribute::standard::MediaSizeName * ISO_C1; + static ::javax::print::attribute::standard::MediaSizeName * ISO_C2; + static ::javax::print::attribute::standard::MediaSizeName * ISO_C3; + static ::javax::print::attribute::standard::MediaSizeName * ISO_C4; + static ::javax::print::attribute::standard::MediaSizeName * ISO_C5; + static ::javax::print::attribute::standard::MediaSizeName * ISO_C6; + static ::javax::print::attribute::standard::MediaSizeName * NA_LETTER; + static ::javax::print::attribute::standard::MediaSizeName * NA_LEGAL; + static ::javax::print::attribute::standard::MediaSizeName * EXECUTIVE; + static ::javax::print::attribute::standard::MediaSizeName * LEDGER; + static ::javax::print::attribute::standard::MediaSizeName * TABLOID; + static ::javax::print::attribute::standard::MediaSizeName * INVOICE; + static ::javax::print::attribute::standard::MediaSizeName * FOLIO; + static ::javax::print::attribute::standard::MediaSizeName * QUARTO; + static ::javax::print::attribute::standard::MediaSizeName * JAPANESE_POSTCARD; + static ::javax::print::attribute::standard::MediaSizeName * JAPANESE_DOUBLE_POSTCARD; + static ::javax::print::attribute::standard::MediaSizeName * A; + static ::javax::print::attribute::standard::MediaSizeName * B; + static ::javax::print::attribute::standard::MediaSizeName * C; + static ::javax::print::attribute::standard::MediaSizeName * D; + static ::javax::print::attribute::standard::MediaSizeName * E; + static ::javax::print::attribute::standard::MediaSizeName * ISO_DESIGNATED_LONG; + static ::javax::print::attribute::standard::MediaSizeName * ITALY_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * MONARCH_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * PERSONAL_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_NUMBER_9_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_NUMBER_10_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_NUMBER_11_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_NUMBER_12_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_NUMBER_14_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_6X9_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_7X9_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_9X11_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_9X12_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_10X13_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_10X14_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_10X15_ENVELOPE; + static ::javax::print::attribute::standard::MediaSizeName * NA_5X7; + static ::javax::print::attribute::standard::MediaSizeName * NA_8X10; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::MediaSizeName * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaSizeName__ diff --git a/libjava/javax/print/attribute/standard/MediaTray.h b/libjava/javax/print/attribute/standard/MediaTray.h new file mode 100644 index 00000000000..05fe123f3ea --- /dev/null +++ b/libjava/javax/print/attribute/standard/MediaTray.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MediaTray__ +#define __javax_print_attribute_standard_MediaTray__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class MediaTray; + } + } + } + } +} + +class javax::print::attribute::standard::MediaTray : public ::javax::print::attribute::standard::Media +{ + +public: // actually protected + MediaTray(jint); + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -982503611095214703LL; +public: + static ::javax::print::attribute::standard::MediaTray * TOP; + static ::javax::print::attribute::standard::MediaTray * MIDDLE; + static ::javax::print::attribute::standard::MediaTray * BOTTOM; + static ::javax::print::attribute::standard::MediaTray * ENVELOPE; + static ::javax::print::attribute::standard::MediaTray * MANUAL; + static ::javax::print::attribute::standard::MediaTray * LARGE_CAPACITY; + static ::javax::print::attribute::standard::MediaTray * MAIN; + static ::javax::print::attribute::standard::MediaTray * SIDE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::MediaTray * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MediaTray__ diff --git a/libjava/javax/print/attribute/standard/MultipleDocumentHandling.h b/libjava/javax/print/attribute/standard/MultipleDocumentHandling.h new file mode 100644 index 00000000000..27489968e45 --- /dev/null +++ b/libjava/javax/print/attribute/standard/MultipleDocumentHandling.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_MultipleDocumentHandling__ +#define __javax_print_attribute_standard_MultipleDocumentHandling__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class MultipleDocumentHandling; + } + } + } + } +} + +class javax::print::attribute::standard::MultipleDocumentHandling : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + MultipleDocumentHandling(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 8098326460746413466LL; +public: + static ::javax::print::attribute::standard::MultipleDocumentHandling * SINGLE_DOCUMENT; + static ::javax::print::attribute::standard::MultipleDocumentHandling * SEPARATE_DOCUMENTS_UNCOLLATED_COPIES; + static ::javax::print::attribute::standard::MultipleDocumentHandling * SEPARATE_DOCUMENTS_COLLATED_COPIES; + static ::javax::print::attribute::standard::MultipleDocumentHandling * SINGLE_DOCUMENT_NEW_SHEET; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::MultipleDocumentHandling * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_MultipleDocumentHandling__ diff --git a/libjava/javax/print/attribute/standard/NumberOfDocuments.h b/libjava/javax/print/attribute/standard/NumberOfDocuments.h new file mode 100644 index 00000000000..58eae0b5c0a --- /dev/null +++ b/libjava/javax/print/attribute/standard/NumberOfDocuments.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_NumberOfDocuments__ +#define __javax_print_attribute_standard_NumberOfDocuments__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class NumberOfDocuments; + } + } + } + } +} + +class javax::print::attribute::standard::NumberOfDocuments : public ::javax::print::attribute::IntegerSyntax +{ + +public: + NumberOfDocuments(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 7891881310684461097LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_NumberOfDocuments__ diff --git a/libjava/javax/print/attribute/standard/NumberOfInterveningJobs.h b/libjava/javax/print/attribute/standard/NumberOfInterveningJobs.h new file mode 100644 index 00000000000..cdca46991a2 --- /dev/null +++ b/libjava/javax/print/attribute/standard/NumberOfInterveningJobs.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_NumberOfInterveningJobs__ +#define __javax_print_attribute_standard_NumberOfInterveningJobs__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class NumberOfInterveningJobs; + } + } + } + } +} + +class javax::print::attribute::standard::NumberOfInterveningJobs : public ::javax::print::attribute::IntegerSyntax +{ + +public: + NumberOfInterveningJobs(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 2568141124844982746LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_NumberOfInterveningJobs__ diff --git a/libjava/javax/print/attribute/standard/NumberUp.h b/libjava/javax/print/attribute/standard/NumberUp.h new file mode 100644 index 00000000000..dfa108f868d --- /dev/null +++ b/libjava/javax/print/attribute/standard/NumberUp.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_NumberUp__ +#define __javax_print_attribute_standard_NumberUp__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class NumberUp; + } + } + } + } +} + +class javax::print::attribute::standard::NumberUp : public ::javax::print::attribute::IntegerSyntax +{ + +public: + NumberUp(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -3040436486786527811LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_NumberUp__ diff --git a/libjava/javax/print/attribute/standard/NumberUpSupported.h b/libjava/javax/print/attribute/standard/NumberUpSupported.h new file mode 100644 index 00000000000..aff84dd1f7a --- /dev/null +++ b/libjava/javax/print/attribute/standard/NumberUpSupported.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_NumberUpSupported__ +#define __javax_print_attribute_standard_NumberUpSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class NumberUpSupported; + } + } + } + } +} + +class javax::print::attribute::standard::NumberUpSupported : public ::javax::print::attribute::SetOfIntegerSyntax +{ + +public: + NumberUpSupported(jint); + NumberUpSupported(JArray< JArray< jint > * > *); + NumberUpSupported(jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -1041573395759141805LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_NumberUpSupported__ diff --git a/libjava/javax/print/attribute/standard/OrientationRequested.h b/libjava/javax/print/attribute/standard/OrientationRequested.h new file mode 100644 index 00000000000..28e0fc13d63 --- /dev/null +++ b/libjava/javax/print/attribute/standard/OrientationRequested.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_OrientationRequested__ +#define __javax_print_attribute_standard_OrientationRequested__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class OrientationRequested; + } + } + } + } +} + +class javax::print::attribute::standard::OrientationRequested : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + OrientationRequested(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + jint getOffset(); +private: + static const jlong serialVersionUID = -4447437289862822276LL; +public: + static ::javax::print::attribute::standard::OrientationRequested * PORTRAIT; + static ::javax::print::attribute::standard::OrientationRequested * LANDSCAPE; + static ::javax::print::attribute::standard::OrientationRequested * REVERSE_LANDSCAPE; + static ::javax::print::attribute::standard::OrientationRequested * REVERSE_PORTRAIT; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::OrientationRequested * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_OrientationRequested__ diff --git a/libjava/javax/print/attribute/standard/OutputDeviceAssigned.h b/libjava/javax/print/attribute/standard/OutputDeviceAssigned.h new file mode 100644 index 00000000000..de03f87193e --- /dev/null +++ b/libjava/javax/print/attribute/standard/OutputDeviceAssigned.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_OutputDeviceAssigned__ +#define __javax_print_attribute_standard_OutputDeviceAssigned__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class OutputDeviceAssigned; + } + } + } + } +} + +class javax::print::attribute::standard::OutputDeviceAssigned : public ::javax::print::attribute::TextSyntax +{ + +public: + OutputDeviceAssigned(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 5486733778854271081LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_OutputDeviceAssigned__ diff --git a/libjava/javax/print/attribute/standard/PDLOverrideSupported.h b/libjava/javax/print/attribute/standard/PDLOverrideSupported.h new file mode 100644 index 00000000000..525b8781e1a --- /dev/null +++ b/libjava/javax/print/attribute/standard/PDLOverrideSupported.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PDLOverrideSupported__ +#define __javax_print_attribute_standard_PDLOverrideSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class PDLOverrideSupported; + } + } + } + } +} + +class javax::print::attribute::standard::PDLOverrideSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PDLOverrideSupported(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -4393264467928463934LL; +public: + static ::javax::print::attribute::standard::PDLOverrideSupported * NOT_ATTEMPTED; + static ::javax::print::attribute::standard::PDLOverrideSupported * ATTEMPTED; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::PDLOverrideSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PDLOverrideSupported__ diff --git a/libjava/javax/print/attribute/standard/PageRanges.h b/libjava/javax/print/attribute/standard/PageRanges.h new file mode 100644 index 00000000000..115553060ed --- /dev/null +++ b/libjava/javax/print/attribute/standard/PageRanges.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PageRanges__ +#define __javax_print_attribute_standard_PageRanges__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PageRanges; + } + } + } + } +} + +class javax::print::attribute::standard::PageRanges : public ::javax::print::attribute::SetOfIntegerSyntax +{ + +public: + PageRanges(jint); + PageRanges(JArray< JArray< jint > * > *); + PageRanges(jint, jint); + PageRanges(::java::lang::String *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 8639895197656148392LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PageRanges__ diff --git a/libjava/javax/print/attribute/standard/PagesPerMinute.h b/libjava/javax/print/attribute/standard/PagesPerMinute.h new file mode 100644 index 00000000000..c237fe9dc86 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PagesPerMinute.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PagesPerMinute__ +#define __javax_print_attribute_standard_PagesPerMinute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PagesPerMinute; + } + } + } + } +} + +class javax::print::attribute::standard::PagesPerMinute : public ::javax::print::attribute::IntegerSyntax +{ + +public: + PagesPerMinute(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -6366403993072862015LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PagesPerMinute__ diff --git a/libjava/javax/print/attribute/standard/PagesPerMinuteColor.h b/libjava/javax/print/attribute/standard/PagesPerMinuteColor.h new file mode 100644 index 00000000000..fad634af9b1 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PagesPerMinuteColor.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PagesPerMinuteColor__ +#define __javax_print_attribute_standard_PagesPerMinuteColor__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PagesPerMinuteColor; + } + } + } + } +} + +class javax::print::attribute::standard::PagesPerMinuteColor : public ::javax::print::attribute::IntegerSyntax +{ + +public: + PagesPerMinuteColor(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 1684993151687470944LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PagesPerMinuteColor__ diff --git a/libjava/javax/print/attribute/standard/PresentationDirection.h b/libjava/javax/print/attribute/standard/PresentationDirection.h new file mode 100644 index 00000000000..cae02422fad --- /dev/null +++ b/libjava/javax/print/attribute/standard/PresentationDirection.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PresentationDirection__ +#define __javax_print_attribute_standard_PresentationDirection__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class PresentationDirection; + } + } + } + } +} + +class javax::print::attribute::standard::PresentationDirection : public ::javax::print::attribute::EnumSyntax +{ + + PresentationDirection(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 8294728067230931780LL; +public: + static ::javax::print::attribute::standard::PresentationDirection * TOBOTTOM_TORIGHT; + static ::javax::print::attribute::standard::PresentationDirection * TOBOTTOM_TOLEFT; + static ::javax::print::attribute::standard::PresentationDirection * TOTOP_TORIGHT; + static ::javax::print::attribute::standard::PresentationDirection * TOTOP_TOLEFT; + static ::javax::print::attribute::standard::PresentationDirection * TORIGHT_TOBOTTOM; + static ::javax::print::attribute::standard::PresentationDirection * TORIGHT_TOTOP; + static ::javax::print::attribute::standard::PresentationDirection * TOLEFT_TOBOTTOM; + static ::javax::print::attribute::standard::PresentationDirection * TOLEFT_TOTOP; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::PresentationDirection * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PresentationDirection__ diff --git a/libjava/javax/print/attribute/standard/PrintQuality.h b/libjava/javax/print/attribute/standard/PrintQuality.h new file mode 100644 index 00000000000..6c696d6c92c --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrintQuality.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrintQuality__ +#define __javax_print_attribute_standard_PrintQuality__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class PrintQuality; + } + } + } + } +} + +class javax::print::attribute::standard::PrintQuality : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PrintQuality(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); + virtual jint getOffset(); +private: + static const jlong serialVersionUID = -3072341285225858365LL; +public: + static ::javax::print::attribute::standard::PrintQuality * DRAFT; + static ::javax::print::attribute::standard::PrintQuality * NORMAL; + static ::javax::print::attribute::standard::PrintQuality * HIGH; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::PrintQuality * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrintQuality__ diff --git a/libjava/javax/print/attribute/standard/PrinterInfo.h b/libjava/javax/print/attribute/standard/PrinterInfo.h new file mode 100644 index 00000000000..8f9f8281e21 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterInfo.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterInfo__ +#define __javax_print_attribute_standard_PrinterInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterInfo; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterInfo : public ::javax::print::attribute::TextSyntax +{ + +public: + PrinterInfo(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 7765280618777599727LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterInfo__ diff --git a/libjava/javax/print/attribute/standard/PrinterIsAcceptingJobs.h b/libjava/javax/print/attribute/standard/PrinterIsAcceptingJobs.h new file mode 100644 index 00000000000..2b8fdbfe8f0 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterIsAcceptingJobs.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterIsAcceptingJobs__ +#define __javax_print_attribute_standard_PrinterIsAcceptingJobs__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class PrinterIsAcceptingJobs; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterIsAcceptingJobs : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PrinterIsAcceptingJobs(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -5052010680537678061LL; +public: + static ::javax::print::attribute::standard::PrinterIsAcceptingJobs * NOT_ACCEPTING_JOBS; + static ::javax::print::attribute::standard::PrinterIsAcceptingJobs * ACCEPTING_JOBS; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::PrinterIsAcceptingJobs * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterIsAcceptingJobs__ diff --git a/libjava/javax/print/attribute/standard/PrinterLocation.h b/libjava/javax/print/attribute/standard/PrinterLocation.h new file mode 100644 index 00000000000..8839a0996ef --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterLocation.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterLocation__ +#define __javax_print_attribute_standard_PrinterLocation__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterLocation; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterLocation : public ::javax::print::attribute::TextSyntax +{ + +public: + PrinterLocation(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -1598610039865566337LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterLocation__ diff --git a/libjava/javax/print/attribute/standard/PrinterMakeAndModel.h b/libjava/javax/print/attribute/standard/PrinterMakeAndModel.h new file mode 100644 index 00000000000..a121d9d18d4 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterMakeAndModel.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterMakeAndModel__ +#define __javax_print_attribute_standard_PrinterMakeAndModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterMakeAndModel; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterMakeAndModel : public ::javax::print::attribute::TextSyntax +{ + +public: + PrinterMakeAndModel(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 4580461489499351411LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterMakeAndModel__ diff --git a/libjava/javax/print/attribute/standard/PrinterMessageFromOperator.h b/libjava/javax/print/attribute/standard/PrinterMessageFromOperator.h new file mode 100644 index 00000000000..1028729215b --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterMessageFromOperator.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterMessageFromOperator__ +#define __javax_print_attribute_standard_PrinterMessageFromOperator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterMessageFromOperator; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterMessageFromOperator : public ::javax::print::attribute::TextSyntax +{ + +public: + PrinterMessageFromOperator(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -4486871203218629318LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterMessageFromOperator__ diff --git a/libjava/javax/print/attribute/standard/PrinterMoreInfo.h b/libjava/javax/print/attribute/standard/PrinterMoreInfo.h new file mode 100644 index 00000000000..3a979cf950a --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterMoreInfo.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterMoreInfo__ +#define __javax_print_attribute_standard_PrinterMoreInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterMoreInfo; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterMoreInfo : public ::javax::print::attribute::URISyntax +{ + +public: + PrinterMoreInfo(::java::net::URI *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 4555850007675338574LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterMoreInfo__ diff --git a/libjava/javax/print/attribute/standard/PrinterMoreInfoManufacturer.h b/libjava/javax/print/attribute/standard/PrinterMoreInfoManufacturer.h new file mode 100644 index 00000000000..bd7c297b391 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterMoreInfoManufacturer.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterMoreInfoManufacturer__ +#define __javax_print_attribute_standard_PrinterMoreInfoManufacturer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterMoreInfoManufacturer; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterMoreInfoManufacturer : public ::javax::print::attribute::URISyntax +{ + +public: + PrinterMoreInfoManufacturer(::java::net::URI *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 3323271346485076608LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterMoreInfoManufacturer__ diff --git a/libjava/javax/print/attribute/standard/PrinterName.h b/libjava/javax/print/attribute/standard/PrinterName.h new file mode 100644 index 00000000000..fd70e824c6b --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterName.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterName__ +#define __javax_print_attribute_standard_PrinterName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterName; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterName : public ::javax::print::attribute::TextSyntax +{ + +public: + PrinterName(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 299740639137803127LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterName__ diff --git a/libjava/javax/print/attribute/standard/PrinterResolution.h b/libjava/javax/print/attribute/standard/PrinterResolution.h new file mode 100644 index 00000000000..a0a5b49c2a8 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterResolution.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterResolution__ +#define __javax_print_attribute_standard_PrinterResolution__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterResolution; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterResolution : public ::javax::print::attribute::ResolutionSyntax +{ + +public: + PrinterResolution(jint, jint, jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 13090306561090558LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterResolution__ diff --git a/libjava/javax/print/attribute/standard/PrinterState.h b/libjava/javax/print/attribute/standard/PrinterState.h new file mode 100644 index 00000000000..7efde73334c --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterState.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterState__ +#define __javax_print_attribute_standard_PrinterState__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class PrinterState; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterState : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PrinterState(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -649578618346507718LL; +public: + static ::javax::print::attribute::standard::PrinterState * UNKNOWN; + static ::javax::print::attribute::standard::PrinterState * IDLE; + static ::javax::print::attribute::standard::PrinterState * PROCESSING; + static ::javax::print::attribute::standard::PrinterState * STOPPED; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::PrinterState * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterState__ diff --git a/libjava/javax/print/attribute/standard/PrinterStateReason.h b/libjava/javax/print/attribute/standard/PrinterStateReason.h new file mode 100644 index 00000000000..04b83358af9 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterStateReason.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterStateReason__ +#define __javax_print_attribute_standard_PrinterStateReason__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class PrinterStateReason; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterStateReason : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + PrinterStateReason(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -1623720656201472593LL; +public: + static ::javax::print::attribute::standard::PrinterStateReason * OTHER; + static ::javax::print::attribute::standard::PrinterStateReason * MEDIA_NEEDED; + static ::javax::print::attribute::standard::PrinterStateReason * MEDIA_JAM; + static ::javax::print::attribute::standard::PrinterStateReason * MOVING_TO_PAUSED; + static ::javax::print::attribute::standard::PrinterStateReason * PAUSED; + static ::javax::print::attribute::standard::PrinterStateReason * SHUTDOWN; + static ::javax::print::attribute::standard::PrinterStateReason * CONNECTING_TO_DEVICE; + static ::javax::print::attribute::standard::PrinterStateReason * TIMED_OUT; + static ::javax::print::attribute::standard::PrinterStateReason * STOPPING; + static ::javax::print::attribute::standard::PrinterStateReason * STOPPED_PARTLY; + static ::javax::print::attribute::standard::PrinterStateReason * TONER_LOW; + static ::javax::print::attribute::standard::PrinterStateReason * TONER_EMPTY; + static ::javax::print::attribute::standard::PrinterStateReason * SPOOL_AREA_FULL; + static ::javax::print::attribute::standard::PrinterStateReason * COVER_OPEN; + static ::javax::print::attribute::standard::PrinterStateReason * INTERLOCK_OPEN; + static ::javax::print::attribute::standard::PrinterStateReason * DOOR_OPEN; + static ::javax::print::attribute::standard::PrinterStateReason * INPUT_TRAY_MISSING; + static ::javax::print::attribute::standard::PrinterStateReason * MEDIA_LOW; + static ::javax::print::attribute::standard::PrinterStateReason * MEDIA_EMPTY; + static ::javax::print::attribute::standard::PrinterStateReason * OUTPUT_TRAY_MISSING; + static ::javax::print::attribute::standard::PrinterStateReason * OUTPUT_AREA_ALMOST_FULL; + static ::javax::print::attribute::standard::PrinterStateReason * OUTPUT_AREA_FULL; + static ::javax::print::attribute::standard::PrinterStateReason * MARKER_SUPPLY_LOW; + static ::javax::print::attribute::standard::PrinterStateReason * MARKER_SUPPLY_EMPTY; + static ::javax::print::attribute::standard::PrinterStateReason * MARKER_WASTE_ALMOST_FULL; + static ::javax::print::attribute::standard::PrinterStateReason * MARKER_WASTE_FULL; + static ::javax::print::attribute::standard::PrinterStateReason * FUSER_OVER_TEMP; + static ::javax::print::attribute::standard::PrinterStateReason * FUSER_UNDER_TEMP; + static ::javax::print::attribute::standard::PrinterStateReason * OPC_NEAR_EOL; + static ::javax::print::attribute::standard::PrinterStateReason * OPC_LIFE_OVER; + static ::javax::print::attribute::standard::PrinterStateReason * DEVELOPER_LOW; + static ::javax::print::attribute::standard::PrinterStateReason * DEVELOPER_EMPTY; + static ::javax::print::attribute::standard::PrinterStateReason * INTERPRETER_RESOURCE_UNAVAILABLE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::PrinterStateReason * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterStateReason__ diff --git a/libjava/javax/print/attribute/standard/PrinterStateReasons.h b/libjava/javax/print/attribute/standard/PrinterStateReasons.h new file mode 100644 index 00000000000..bedc8b81d54 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterStateReasons.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterStateReasons__ +#define __javax_print_attribute_standard_PrinterStateReasons__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterStateReason; + class PrinterStateReasons; + class Severity; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterStateReasons : public ::java::util::HashMap +{ + +public: + PrinterStateReasons(); + PrinterStateReasons(jint, jfloat); + PrinterStateReasons(jint); + PrinterStateReasons(::java::util::Map *); + ::java::util::Set * printerStateReasonSet(::javax::print::attribute::standard::Severity *); + ::javax::print::attribute::standard::Severity * target$put(::javax::print::attribute::standard::PrinterStateReason *, ::javax::print::attribute::standard::Severity *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); + ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *); +private: + static const jlong serialVersionUID = -3731791085163619457LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterStateReasons__ diff --git a/libjava/javax/print/attribute/standard/PrinterURI.h b/libjava/javax/print/attribute/standard/PrinterURI.h new file mode 100644 index 00000000000..b5dc5c269d4 --- /dev/null +++ b/libjava/javax/print/attribute/standard/PrinterURI.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_PrinterURI__ +#define __javax_print_attribute_standard_PrinterURI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class PrinterURI; + } + } + } + } +} + +class javax::print::attribute::standard::PrinterURI : public ::javax::print::attribute::URISyntax +{ + +public: + PrinterURI(::java::net::URI *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 7923912792485606497LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_PrinterURI__ diff --git a/libjava/javax/print/attribute/standard/QueuedJobCount.h b/libjava/javax/print/attribute/standard/QueuedJobCount.h new file mode 100644 index 00000000000..d1b115466d3 --- /dev/null +++ b/libjava/javax/print/attribute/standard/QueuedJobCount.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_QueuedJobCount__ +#define __javax_print_attribute_standard_QueuedJobCount__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class QueuedJobCount; + } + } + } + } +} + +class javax::print::attribute::standard::QueuedJobCount : public ::javax::print::attribute::IntegerSyntax +{ + +public: + QueuedJobCount(jint); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = 7499723077864047742LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_QueuedJobCount__ diff --git a/libjava/javax/print/attribute/standard/ReferenceUriSchemesSupported.h b/libjava/javax/print/attribute/standard/ReferenceUriSchemesSupported.h new file mode 100644 index 00000000000..c0cdd6783ca --- /dev/null +++ b/libjava/javax/print/attribute/standard/ReferenceUriSchemesSupported.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_ReferenceUriSchemesSupported__ +#define __javax_print_attribute_standard_ReferenceUriSchemesSupported__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class ReferenceUriSchemesSupported; + } + } + } + } +} + +class javax::print::attribute::standard::ReferenceUriSchemesSupported : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + ReferenceUriSchemesSupported(jint); +public: + virtual ::java::lang::Class * getCategory(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual JArray< ::java::lang::String * > * getStringTable(); + virtual JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -8989076942813442805LL; +public: + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * FTP; + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * HTTP; + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * HTTPS; + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * GOPHER; + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * NEWS; + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * NNTP; + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * WAIS; + static ::javax::print::attribute::standard::ReferenceUriSchemesSupported * FILE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::ReferenceUriSchemesSupported * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_ReferenceUriSchemesSupported__ diff --git a/libjava/javax/print/attribute/standard/RequestingUserName.h b/libjava/javax/print/attribute/standard/RequestingUserName.h new file mode 100644 index 00000000000..f562e2616cb --- /dev/null +++ b/libjava/javax/print/attribute/standard/RequestingUserName.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_RequestingUserName__ +#define __javax_print_attribute_standard_RequestingUserName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + namespace standard + { + class RequestingUserName; + } + } + } + } +} + +class javax::print::attribute::standard::RequestingUserName : public ::javax::print::attribute::TextSyntax +{ + +public: + RequestingUserName(::java::lang::String *, ::java::util::Locale *); + jboolean equals(::java::lang::Object *); + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +private: + static const jlong serialVersionUID = -2683049894310331454LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_RequestingUserName__ diff --git a/libjava/javax/print/attribute/standard/Severity.h b/libjava/javax/print/attribute/standard/Severity.h new file mode 100644 index 00000000000..ea302530894 --- /dev/null +++ b/libjava/javax/print/attribute/standard/Severity.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Severity__ +#define __javax_print_attribute_standard_Severity__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Severity; + } + } + } + } +} + +class javax::print::attribute::standard::Severity : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + Severity(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 8781881462717925380LL; +public: + static ::javax::print::attribute::standard::Severity * REPORT; + static ::javax::print::attribute::standard::Severity * WARNING; + static ::javax::print::attribute::standard::Severity * ERROR; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::Severity * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Severity__ diff --git a/libjava/javax/print/attribute/standard/SheetCollate.h b/libjava/javax/print/attribute/standard/SheetCollate.h new file mode 100644 index 00000000000..81d40cb60a5 --- /dev/null +++ b/libjava/javax/print/attribute/standard/SheetCollate.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_SheetCollate__ +#define __javax_print_attribute_standard_SheetCollate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class SheetCollate; + } + } + } + } +} + +class javax::print::attribute::standard::SheetCollate : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + SheetCollate(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = 7080587914259873003LL; +public: + static ::javax::print::attribute::standard::SheetCollate * UNCOLLATED; + static ::javax::print::attribute::standard::SheetCollate * COLLATED; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::SheetCollate * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_SheetCollate__ diff --git a/libjava/javax/print/attribute/standard/Sides.h b/libjava/javax/print/attribute/standard/Sides.h new file mode 100644 index 00000000000..9f3072bd8e2 --- /dev/null +++ b/libjava/javax/print/attribute/standard/Sides.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_attribute_standard_Sides__ +#define __javax_print_attribute_standard_Sides__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace print + { + namespace attribute + { + class EnumSyntax; + namespace standard + { + class Sides; + } + } + } + } +} + +class javax::print::attribute::standard::Sides : public ::javax::print::attribute::EnumSyntax +{ + +public: // actually protected + Sides(jint); +public: + ::java::lang::Class * getCategory(); + ::java::lang::String * getName(); +public: // actually protected + JArray< ::java::lang::String * > * getStringTable(); + JArray< ::javax::print::attribute::EnumSyntax * > * getEnumValueTable(); +private: + static const jlong serialVersionUID = -6890309414893262822LL; +public: + static ::javax::print::attribute::standard::Sides * ONE_SIDED; + static ::javax::print::attribute::standard::Sides * TWO_SIDED_LONG_EDGE; + static ::javax::print::attribute::standard::Sides * TWO_SIDED_SHORT_EDGE; + static ::javax::print::attribute::standard::Sides * DUPLEX; + static ::javax::print::attribute::standard::Sides * TUMBLE; +private: + static JArray< ::java::lang::String * > * stringTable; + static JArray< ::javax::print::attribute::standard::Sides * > * enumValueTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_attribute_standard_Sides__ diff --git a/libjava/javax/print/event/PrintEvent.h b/libjava/javax/print/event/PrintEvent.h new file mode 100644 index 00000000000..e69675adf1c --- /dev/null +++ b/libjava/javax/print/event/PrintEvent.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintEvent__ +#define __javax_print_event_PrintEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace event + { + class PrintEvent; + } + } + } +} + +class javax::print::event::PrintEvent : public ::java::util::EventObject +{ + +public: + PrintEvent(::java::lang::Object *); + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_event_PrintEvent__ diff --git a/libjava/javax/print/event/PrintJobAdapter.h b/libjava/javax/print/event/PrintJobAdapter.h new file mode 100644 index 00000000000..2137f467dca --- /dev/null +++ b/libjava/javax/print/event/PrintJobAdapter.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintJobAdapter__ +#define __javax_print_event_PrintJobAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace event + { + class PrintJobAdapter; + class PrintJobEvent; + } + } + } +} + +class javax::print::event::PrintJobAdapter : public ::java::lang::Object +{ + +public: + PrintJobAdapter(); + virtual void printDataTransferCompleted(::javax::print::event::PrintJobEvent *); + virtual void printJobCanceled(::javax::print::event::PrintJobEvent *); + virtual void printJobCompleted(::javax::print::event::PrintJobEvent *); + virtual void printJobFailed(::javax::print::event::PrintJobEvent *); + virtual void printJobNoMoreEvents(::javax::print::event::PrintJobEvent *); + virtual void printJobRequiresAttention(::javax::print::event::PrintJobEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_print_event_PrintJobAdapter__ diff --git a/libjava/javax/print/event/PrintJobAttributeEvent.h b/libjava/javax/print/event/PrintJobAttributeEvent.h new file mode 100644 index 00000000000..d3fcc6c39f5 --- /dev/null +++ b/libjava/javax/print/event/PrintJobAttributeEvent.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintJobAttributeEvent__ +#define __javax_print_event_PrintJobAttributeEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocPrintJob; + namespace attribute + { + class PrintJobAttributeSet; + } + namespace event + { + class PrintJobAttributeEvent; + } + } + } +} + +class javax::print::event::PrintJobAttributeEvent : public ::javax::print::event::PrintEvent +{ + +public: + PrintJobAttributeEvent(::javax::print::DocPrintJob *, ::javax::print::attribute::PrintJobAttributeSet *); + virtual ::javax::print::DocPrintJob * getPrintJob(); + virtual ::javax::print::attribute::PrintJobAttributeSet * getAttributes(); +private: + static const jlong serialVersionUID = -6534469883874742101LL; + ::javax::print::attribute::PrintJobAttributeSet * __attribute__((aligned(__alignof__( ::javax::print::event::PrintEvent)))) attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_event_PrintJobAttributeEvent__ diff --git a/libjava/javax/print/event/PrintJobAttributeListener.h b/libjava/javax/print/event/PrintJobAttributeListener.h new file mode 100644 index 00000000000..7b7581c4d5e --- /dev/null +++ b/libjava/javax/print/event/PrintJobAttributeListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintJobAttributeListener__ +#define __javax_print_event_PrintJobAttributeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace event + { + class PrintJobAttributeEvent; + class PrintJobAttributeListener; + } + } + } +} + +class javax::print::event::PrintJobAttributeListener : public ::java::lang::Object +{ + +public: + virtual void attributeUpdate(::javax::print::event::PrintJobAttributeEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_event_PrintJobAttributeListener__ diff --git a/libjava/javax/print/event/PrintJobEvent.h b/libjava/javax/print/event/PrintJobEvent.h new file mode 100644 index 00000000000..a052e07d60f --- /dev/null +++ b/libjava/javax/print/event/PrintJobEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintJobEvent__ +#define __javax_print_event_PrintJobEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class DocPrintJob; + namespace event + { + class PrintJobEvent; + } + } + } +} + +class javax::print::event::PrintJobEvent : public ::javax::print::event::PrintEvent +{ + +public: + PrintJobEvent(::javax::print::DocPrintJob *, jint); + virtual jint getPrintEventType(); + virtual ::javax::print::DocPrintJob * getPrintJob(); +private: + static const jlong serialVersionUID = -1711656903622072997LL; +public: + static const jint DATA_TRANSFER_COMPLETE = 106; + static const jint JOB_CANCELED = 101; + static const jint JOB_COMPLETE = 102; + static const jint JOB_FAILED = 103; + static const jint NO_MORE_EVENTS = 105; + static const jint REQUIRES_ATTENTION = 104; +private: + jint __attribute__((aligned(__alignof__( ::javax::print::event::PrintEvent)))) reason; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_event_PrintJobEvent__ diff --git a/libjava/javax/print/event/PrintJobListener.h b/libjava/javax/print/event/PrintJobListener.h new file mode 100644 index 00000000000..2dbc20e4ca9 --- /dev/null +++ b/libjava/javax/print/event/PrintJobListener.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintJobListener__ +#define __javax_print_event_PrintJobListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace event + { + class PrintJobEvent; + class PrintJobListener; + } + } + } +} + +class javax::print::event::PrintJobListener : public ::java::lang::Object +{ + +public: + virtual void printDataTransferCompleted(::javax::print::event::PrintJobEvent *) = 0; + virtual void printJobCanceled(::javax::print::event::PrintJobEvent *) = 0; + virtual void printJobCompleted(::javax::print::event::PrintJobEvent *) = 0; + virtual void printJobFailed(::javax::print::event::PrintJobEvent *) = 0; + virtual void printJobNoMoreEvents(::javax::print::event::PrintJobEvent *) = 0; + virtual void printJobRequiresAttention(::javax::print::event::PrintJobEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_event_PrintJobListener__ diff --git a/libjava/javax/print/event/PrintServiceAttributeEvent.h b/libjava/javax/print/event/PrintServiceAttributeEvent.h new file mode 100644 index 00000000000..baceddb9a4c --- /dev/null +++ b/libjava/javax/print/event/PrintServiceAttributeEvent.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintServiceAttributeEvent__ +#define __javax_print_event_PrintServiceAttributeEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + class PrintService; + namespace attribute + { + class PrintServiceAttributeSet; + } + namespace event + { + class PrintServiceAttributeEvent; + } + } + } +} + +class javax::print::event::PrintServiceAttributeEvent : public ::javax::print::event::PrintEvent +{ + +public: + PrintServiceAttributeEvent(::javax::print::PrintService *, ::javax::print::attribute::PrintServiceAttributeSet *); + virtual ::javax::print::PrintService * getPrintService(); + virtual ::javax::print::attribute::PrintServiceAttributeSet * getAttributes(); +private: + ::javax::print::attribute::PrintServiceAttributeSet * __attribute__((aligned(__alignof__( ::javax::print::event::PrintEvent)))) attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_print_event_PrintServiceAttributeEvent__ diff --git a/libjava/javax/print/event/PrintServiceAttributeListener.h b/libjava/javax/print/event/PrintServiceAttributeListener.h new file mode 100644 index 00000000000..95b52368563 --- /dev/null +++ b/libjava/javax/print/event/PrintServiceAttributeListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_print_event_PrintServiceAttributeListener__ +#define __javax_print_event_PrintServiceAttributeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace print + { + namespace event + { + class PrintServiceAttributeEvent; + class PrintServiceAttributeListener; + } + } + } +} + +class javax::print::event::PrintServiceAttributeListener : public ::java::lang::Object +{ + +public: + virtual void attributeUpdate(::javax::print::event::PrintServiceAttributeEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_print_event_PrintServiceAttributeListener__ diff --git a/libjava/javax/rmi/CORBA/ClassDesc.h b/libjava/javax/rmi/CORBA/ClassDesc.h new file mode 100644 index 00000000000..39d37b95175 --- /dev/null +++ b/libjava/javax/rmi/CORBA/ClassDesc.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_ClassDesc__ +#define __javax_rmi_CORBA_ClassDesc__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace rmi + { + namespace CORBA + { + class ClassDesc; + } + } + } +} + +class javax::rmi::CORBA::ClassDesc : public ::java::lang::Object +{ + +public: + ClassDesc(); +private: + static const jlong serialVersionUID = -3477057297839810709LL; +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) repid; + ::java::lang::String * codebase; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_rmi_CORBA_ClassDesc__ diff --git a/libjava/javax/rmi/CORBA/PortableRemoteObjectDelegate.h b/libjava/javax/rmi/CORBA/PortableRemoteObjectDelegate.h new file mode 100644 index 00000000000..2e3c72dcaaa --- /dev/null +++ b/libjava/javax/rmi/CORBA/PortableRemoteObjectDelegate.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_PortableRemoteObjectDelegate__ +#define __javax_rmi_CORBA_PortableRemoteObjectDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace rmi + { + class Remote; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class PortableRemoteObjectDelegate; + } + } + } +} + +class javax::rmi::CORBA::PortableRemoteObjectDelegate : public ::java::lang::Object +{ + +public: + virtual void connect(::java::rmi::Remote *, ::java::rmi::Remote *) = 0; + virtual void exportObject(::java::rmi::Remote *) = 0; + virtual ::java::lang::Object * narrow(::java::lang::Object *, ::java::lang::Class *) = 0; + virtual ::java::rmi::Remote * toStub(::java::rmi::Remote *) = 0; + virtual void unexportObject(::java::rmi::Remote *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_rmi_CORBA_PortableRemoteObjectDelegate__ diff --git a/libjava/javax/rmi/CORBA/Stub.h b/libjava/javax/rmi/CORBA/Stub.h new file mode 100644 index 00000000000..d87f63d0d6d --- /dev/null +++ b/libjava/javax/rmi/CORBA/Stub.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_Stub__ +#define __javax_rmi_CORBA_Stub__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Stub; + class StubDelegate; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class javax::rmi::CORBA::Stub : public ::org::omg::CORBA_2_3::portable::ObjectImpl +{ + +public: + Stub(); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual void connect(::org::omg::CORBA::ORB *); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = 1087775603798577179LL; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::org::omg::CORBA_2_3::portable::ObjectImpl)))) m_hash; + ::java::lang::String * m_ior; + ::org::omg::CORBA::ORB * m_orb; + static ::javax::rmi::CORBA::StubDelegate * delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_rmi_CORBA_Stub__ diff --git a/libjava/javax/rmi/CORBA/StubDelegate.h b/libjava/javax/rmi/CORBA/StubDelegate.h new file mode 100644 index 00000000000..c8dc436221f --- /dev/null +++ b/libjava/javax/rmi/CORBA/StubDelegate.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_StubDelegate__ +#define __javax_rmi_CORBA_StubDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Stub; + class StubDelegate; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + } + } + } +} + +class javax::rmi::CORBA::StubDelegate : public ::java::lang::Object +{ + +public: + virtual void connect(::javax::rmi::CORBA::Stub *, ::org::omg::CORBA::ORB *) = 0; + virtual jboolean equals(::javax::rmi::CORBA::Stub *, ::java::lang::Object *) = 0; + virtual jint hashCode(::javax::rmi::CORBA::Stub *) = 0; + virtual void readObject(::javax::rmi::CORBA::Stub *, ::java::io::ObjectInputStream *) = 0; + virtual void writeObject(::javax::rmi::CORBA::Stub *, ::java::io::ObjectOutputStream *) = 0; + virtual ::java::lang::String * toString(::javax::rmi::CORBA::Stub *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_rmi_CORBA_StubDelegate__ diff --git a/libjava/javax/rmi/CORBA/Tie.h b/libjava/javax/rmi/CORBA/Tie.h new file mode 100644 index 00000000000..9f9ffcf1ba7 --- /dev/null +++ b/libjava/javax/rmi/CORBA/Tie.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_Tie__ +#define __javax_rmi_CORBA_Tie__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace rmi + { + class Remote; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Tie; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + } + } +} + +class javax::rmi::CORBA::Tie : public ::java::lang::Object +{ + +public: + virtual ::java::rmi::Remote * getTarget() = 0; + virtual void setTarget(::java::rmi::Remote *) = 0; + virtual ::org::omg::CORBA::ORB * orb() = 0; + virtual void orb(::org::omg::CORBA::ORB *) = 0; + virtual ::org::omg::CORBA::Object * thisObject() = 0; + virtual void deactivate() = 0; + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_rmi_CORBA_Tie__ diff --git a/libjava/javax/rmi/CORBA/Util.h b/libjava/javax/rmi/CORBA/Util.h new file mode 100644 index 00000000000..a7eaf610411 --- /dev/null +++ b/libjava/javax/rmi/CORBA/Util.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_Util__ +#define __javax_rmi_CORBA_Util__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace rmi + { + class Remote; + class RemoteException; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Stub; + class Tie; + class Util; + class UtilDelegate; + class ValueHandler; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class SystemException; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class javax::rmi::CORBA::Util : public ::java::lang::Object +{ + + Util(); +public: + static ::java::lang::Object * copyObject(::java::lang::Object *, ::org::omg::CORBA::ORB *); + static JArray< ::java::lang::Object * > * copyObjects(JArray< ::java::lang::Object * > *, ::org::omg::CORBA::ORB *); + static ::javax::rmi::CORBA::ValueHandler * createValueHandler(); + static ::java::lang::String * getCodebase(::java::lang::Class *); + static ::javax::rmi::CORBA::Tie * getTie(::java::rmi::Remote *); + static jboolean isLocal(::javax::rmi::CORBA::Stub *); + static ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *); + static ::java::rmi::RemoteException * mapSystemException(::org::omg::CORBA::SystemException *); + static void registerTarget(::javax::rmi::CORBA::Tie *, ::java::rmi::Remote *); + static void unexportObject(::java::rmi::Remote *); + static ::java::rmi::RemoteException * wrapException(::java::lang::Throwable *); + static void writeAbstractObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); + static void writeAny(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); + static ::java::lang::Object * readAny(::org::omg::CORBA::portable::InputStream *); + static void writeRemoteObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *); +public: // actually package-private + static ::javax::rmi::CORBA::UtilDelegate * delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_rmi_CORBA_Util__ diff --git a/libjava/javax/rmi/CORBA/UtilDelegate.h b/libjava/javax/rmi/CORBA/UtilDelegate.h new file mode 100644 index 00000000000..e3c235d92ef --- /dev/null +++ b/libjava/javax/rmi/CORBA/UtilDelegate.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_UtilDelegate__ +#define __javax_rmi_CORBA_UtilDelegate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace rmi + { + class Remote; + class RemoteException; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class Stub; + class Tie; + class UtilDelegate; + class ValueHandler; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class SystemException; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class javax::rmi::CORBA::UtilDelegate : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * copyObject(::java::lang::Object *, ::org::omg::CORBA::ORB *) = 0; + virtual JArray< ::java::lang::Object * > * copyObjects(JArray< ::java::lang::Object * > *, ::org::omg::CORBA::ORB *) = 0; + virtual ::javax::rmi::CORBA::ValueHandler * createValueHandler() = 0; + virtual ::java::lang::String * getCodebase(::java::lang::Class *) = 0; + virtual jboolean isLocal(::javax::rmi::CORBA::Stub *) = 0; + virtual ::java::lang::Class * loadClass(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *) = 0; + virtual ::java::rmi::RemoteException * mapSystemException(::org::omg::CORBA::SystemException *) = 0; + virtual ::javax::rmi::CORBA::Tie * getTie(::java::rmi::Remote *) = 0; + virtual void registerTarget(::javax::rmi::CORBA::Tie *, ::java::rmi::Remote *) = 0; + virtual void unexportObject(::java::rmi::Remote *) = 0; + virtual ::java::rmi::RemoteException * wrapException(::java::lang::Throwable *) = 0; + virtual void writeRemoteObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *) = 0; + virtual void writeAbstractObject(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *) = 0; + virtual void writeAny(::org::omg::CORBA::portable::OutputStream *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * readAny(::org::omg::CORBA::portable::InputStream *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_rmi_CORBA_UtilDelegate__ diff --git a/libjava/javax/rmi/CORBA/ValueHandler.h b/libjava/javax/rmi/CORBA/ValueHandler.h new file mode 100644 index 00000000000..170f4d593b8 --- /dev/null +++ b/libjava/javax/rmi/CORBA/ValueHandler.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_ValueHandler__ +#define __javax_rmi_CORBA_ValueHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace rmi + { + namespace CORBA + { + class ValueHandler; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace SendingContext + { + class RunTime; + } + } + } +} + +class javax::rmi::CORBA::ValueHandler : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getRMIRepositoryID(::java::lang::Class *) = 0; + virtual ::org::omg::SendingContext::RunTime * getRunTimeCodeBase() = 0; + virtual jboolean isCustomMarshaled(::java::lang::Class *) = 0; + virtual ::java::io::Serializable * readValue(::org::omg::CORBA::portable::InputStream *, jint, ::java::lang::Class *, ::java::lang::String *, ::org::omg::SendingContext::RunTime *) = 0; + virtual ::java::io::Serializable * writeReplace(::java::io::Serializable *) = 0; + virtual void writeValue(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_rmi_CORBA_ValueHandler__ diff --git a/libjava/javax/rmi/CORBA/ValueHandlerMultiFormat.h b/libjava/javax/rmi/CORBA/ValueHandlerMultiFormat.h new file mode 100644 index 00000000000..7e59a61f40d --- /dev/null +++ b/libjava/javax/rmi/CORBA/ValueHandlerMultiFormat.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_CORBA_ValueHandlerMultiFormat__ +#define __javax_rmi_CORBA_ValueHandlerMultiFormat__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace rmi + { + namespace CORBA + { + class ValueHandlerMultiFormat; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace SendingContext + { + class RunTime; + } + } + } +} + +class javax::rmi::CORBA::ValueHandlerMultiFormat : public ::java::lang::Object +{ + +public: + virtual jbyte getMaximumStreamFormatVersion() = 0; + virtual void writeValue(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *, jbyte) = 0; + virtual ::java::lang::String * getRMIRepositoryID(::java::lang::Class *) = 0; + virtual ::org::omg::SendingContext::RunTime * getRunTimeCodeBase() = 0; + virtual jboolean isCustomMarshaled(::java::lang::Class *) = 0; + virtual ::java::io::Serializable * readValue(::org::omg::CORBA::portable::InputStream *, jint, ::java::lang::Class *, ::java::lang::String *, ::org::omg::SendingContext::RunTime *) = 0; + virtual ::java::io::Serializable * writeReplace(::java::io::Serializable *) = 0; + virtual void writeValue(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_rmi_CORBA_ValueHandlerMultiFormat__ diff --git a/libjava/javax/rmi/PortableRemoteObject.h b/libjava/javax/rmi/PortableRemoteObject.h new file mode 100644 index 00000000000..2fd0facd270 --- /dev/null +++ b/libjava/javax/rmi/PortableRemoteObject.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_PortableRemoteObject__ +#define __javax_rmi_PortableRemoteObject__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace rmi + { + class Remote; + } + } + namespace javax + { + namespace rmi + { + namespace CORBA + { + class PortableRemoteObjectDelegate; + } + class PortableRemoteObject; + } + } +} + +class javax::rmi::PortableRemoteObject : public ::java::lang::Object +{ + +public: // actually protected + PortableRemoteObject(); +public: + static void connect(::java::rmi::Remote *, ::java::rmi::Remote *); + static void exportObject(::java::rmi::Remote *); + static ::java::lang::Object * narrow(::java::lang::Object *, ::java::lang::Class *); + static ::java::rmi::Remote * toStub(::java::rmi::Remote *); + static void unexportObject(::java::rmi::Remote *); +public: // actually package-private + static ::javax::rmi::CORBA::PortableRemoteObjectDelegate * delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_rmi_PortableRemoteObject__ diff --git a/libjava/javax/rmi/ssl/SslRMIClientSocketFactory.h b/libjava/javax/rmi/ssl/SslRMIClientSocketFactory.h new file mode 100644 index 00000000000..8c54dd83066 --- /dev/null +++ b/libjava/javax/rmi/ssl/SslRMIClientSocketFactory.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_ssl_SslRMIClientSocketFactory__ +#define __javax_rmi_ssl_SslRMIClientSocketFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class Socket; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLSocketFactory; + } + } + namespace rmi + { + namespace ssl + { + class SslRMIClientSocketFactory; + } + } + } +} + +class javax::rmi::ssl::SslRMIClientSocketFactory : public ::java::lang::Object +{ + +public: + SslRMIClientSocketFactory(); +private: + JArray< ::java::lang::String * > * getProp(::java::lang::String *); +public: + virtual ::java::net::Socket * createSocket(::java::lang::String *, jint); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + static const jlong serialVersionUID = -8310631444933958385LL; + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enabledCipherSuites; + JArray< ::java::lang::String * > * enabledProtocols; + static ::javax::net::ssl::SSLSocketFactory * socketFactory; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_rmi_ssl_SslRMIClientSocketFactory__ diff --git a/libjava/javax/rmi/ssl/SslRMIServerSocketFactory.h b/libjava/javax/rmi/ssl/SslRMIServerSocketFactory.h new file mode 100644 index 00000000000..3b49d3e9ede --- /dev/null +++ b/libjava/javax/rmi/ssl/SslRMIServerSocketFactory.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_rmi_ssl_SslRMIServerSocketFactory__ +#define __javax_rmi_ssl_SslRMIServerSocketFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class ServerSocket; + } + } + namespace javax + { + namespace net + { + namespace ssl + { + class SSLServerSocketFactory; + } + } + namespace rmi + { + namespace ssl + { + class SslRMIServerSocketFactory; + } + } + } +} + +class javax::rmi::ssl::SslRMIServerSocketFactory : public ::java::lang::Object +{ + +public: + SslRMIServerSocketFactory(); + SslRMIServerSocketFactory(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, jboolean); + virtual ::java::net::ServerSocket * createServerSocket(jint); + virtual jboolean equals(::java::lang::Object *); +public: // actually package-private + static jboolean cmpStrArray(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *); +public: + virtual JArray< ::java::lang::String * > * getEnabledCipherSuites(); + virtual JArray< ::java::lang::String * > * getEnabledProtocols(); + virtual jboolean getNeedClientAuth(); + virtual jint hashCode(); +private: + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enabledCipherSuites; + JArray< ::java::lang::String * > * enabledProtocols; + jboolean needClientAuth; + static ::javax::net::ssl::SSLServerSocketFactory * socketFactory; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_rmi_ssl_SslRMIServerSocketFactory__ diff --git a/libjava/javax/security/auth/AuthPermission.h b/libjava/javax/security/auth/AuthPermission.h new file mode 100644 index 00000000000..7be18bde9e1 --- /dev/null +++ b/libjava/javax/security/auth/AuthPermission.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_AuthPermission__ +#define __javax_security_auth_AuthPermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class AuthPermission; + } + } + } +} + +class javax::security::auth::AuthPermission : public ::java::security::BasicPermission +{ + +public: + AuthPermission(::java::lang::String *); + AuthPermission(::java::lang::String *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_AuthPermission__ diff --git a/libjava/javax/security/auth/DestroyFailedException.h b/libjava/javax/security/auth/DestroyFailedException.h new file mode 100644 index 00000000000..7ee0fb6a29c --- /dev/null +++ b/libjava/javax/security/auth/DestroyFailedException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_DestroyFailedException__ +#define __javax_security_auth_DestroyFailedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class DestroyFailedException; + } + } + } +} + +class javax::security::auth::DestroyFailedException : public ::java::lang::Exception +{ + +public: + DestroyFailedException(); + DestroyFailedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_DestroyFailedException__ diff --git a/libjava/javax/security/auth/Destroyable.h b/libjava/javax/security/auth/Destroyable.h new file mode 100644 index 00000000000..3afdb762f8e --- /dev/null +++ b/libjava/javax/security/auth/Destroyable.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_Destroyable__ +#define __javax_security_auth_Destroyable__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class Destroyable; + } + } + } +} + +class javax::security::auth::Destroyable : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual jboolean isDestroyed() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_auth_Destroyable__ diff --git a/libjava/javax/security/auth/Policy.h b/libjava/javax/security/auth/Policy.h new file mode 100644 index 00000000000..394a870d686 --- /dev/null +++ b/libjava/javax/security/auth/Policy.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_Policy__ +#define __javax_security_auth_Policy__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class CodeSource; + class PermissionCollection; + } + } + namespace javax + { + namespace security + { + namespace auth + { + class Policy; + class Subject; + } + } + } +} + +class javax::security::auth::Policy : public ::java::lang::Object +{ + +public: // actually protected + Policy(); +public: + static ::javax::security::auth::Policy * getPolicy(); + static void setPolicy(::javax::security::auth::Policy *); + virtual ::java::security::PermissionCollection * getPermissions(::javax::security::auth::Subject *, ::java::security::CodeSource *) = 0; + virtual void refresh() = 0; +private: + static ::javax::security::auth::Policy * policy; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_Policy__ diff --git a/libjava/javax/security/auth/PrivateCredentialPermission$CredOwner.h b/libjava/javax/security/auth/PrivateCredentialPermission$CredOwner.h new file mode 100644 index 00000000000..c877eddd1f5 --- /dev/null +++ b/libjava/javax/security/auth/PrivateCredentialPermission$CredOwner.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_PrivateCredentialPermission$CredOwner__ +#define __javax_security_auth_PrivateCredentialPermission$CredOwner__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class PrivateCredentialPermission$CredOwner; + } + } + } +} + +class javax::security::auth::PrivateCredentialPermission$CredOwner : public ::java::lang::Object +{ + +public: // actually package-private + PrivateCredentialPermission$CredOwner(::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * getPrincipalClass(); + virtual ::java::lang::String * getPrincipalName(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) principalClass; + ::java::lang::String * principalName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_PrivateCredentialPermission$CredOwner__ diff --git a/libjava/javax/security/auth/PrivateCredentialPermission.h b/libjava/javax/security/auth/PrivateCredentialPermission.h new file mode 100644 index 00000000000..157c1df79ce --- /dev/null +++ b/libjava/javax/security/auth/PrivateCredentialPermission.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_PrivateCredentialPermission__ +#define __javax_security_auth_PrivateCredentialPermission__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + class PermissionCollection; + } + } + namespace javax + { + namespace security + { + namespace auth + { + class PrivateCredentialPermission; + } + } + } +} + +class javax::security::auth::PrivateCredentialPermission : public ::java::security::Permission +{ + +public: + PrivateCredentialPermission(::java::lang::String *, ::java::lang::String *); + jboolean equals(::java::lang::Object *); + ::java::lang::String * getActions(); + ::java::lang::String * getCredentialClass(); + JArray< JArray< ::java::lang::String * > * > * getPrincipals(); + jint hashCode(); + jboolean implies(::java::security::Permission *); + ::java::security::PermissionCollection * newPermissionCollection(); +private: + static const jlong serialVersionUID = 5284372143517237068LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::security::Permission)))) credentialClass; + ::java::util::Set * principals; + jboolean testing; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_PrivateCredentialPermission__ diff --git a/libjava/javax/security/auth/RefreshFailedException.h b/libjava/javax/security/auth/RefreshFailedException.h new file mode 100644 index 00000000000..c0fadb08d54 --- /dev/null +++ b/libjava/javax/security/auth/RefreshFailedException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_RefreshFailedException__ +#define __javax_security_auth_RefreshFailedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class RefreshFailedException; + } + } + } +} + +class javax::security::auth::RefreshFailedException : public ::java::lang::Exception +{ + +public: + RefreshFailedException(); + RefreshFailedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_RefreshFailedException__ diff --git a/libjava/javax/security/auth/Refreshable.h b/libjava/javax/security/auth/Refreshable.h new file mode 100644 index 00000000000..5c065c5aa9c --- /dev/null +++ b/libjava/javax/security/auth/Refreshable.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_Refreshable__ +#define __javax_security_auth_Refreshable__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class Refreshable; + } + } + } +} + +class javax::security::auth::Refreshable : public ::java::lang::Object +{ + +public: + virtual jboolean isCurrent() = 0; + virtual void refresh() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_auth_Refreshable__ diff --git a/libjava/javax/security/auth/Subject$SecureSet.h b/libjava/javax/security/auth/Subject$SecureSet.h new file mode 100644 index 00000000000..854176ce9cb --- /dev/null +++ b/libjava/javax/security/auth/Subject$SecureSet.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_Subject$SecureSet__ +#define __javax_security_auth_Subject$SecureSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class Subject; + class Subject$SecureSet; + } + } + } +} + +class javax::security::auth::Subject$SecureSet : public ::java::util::AbstractSet +{ + +public: // actually package-private + Subject$SecureSet(::javax::security::auth::Subject *, jint, ::java::util::Collection *); + Subject$SecureSet(::javax::security::auth::Subject *, jint); +public: + virtual jint size(); + virtual ::java::util::Iterator * iterator(); + virtual jboolean add(::java::lang::Object *); + virtual jboolean remove(::java::lang::Object *); + virtual jboolean contains(::java::lang::Object *); + virtual jboolean removeAll(::java::util::Collection *); + virtual jboolean retainAll(::java::util::Collection *); + virtual void clear(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); + static const jlong serialVersionUID = 7911754171111800359LL; +public: // actually package-private + static const jint PRINCIPALS = 0; + static const jint PUBLIC_CREDENTIALS = 1; + static const jint PRIVATE_CREDENTIALS = 2; +private: + ::javax::security::auth::Subject * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) subject; + ::java::util::LinkedList * elements; + jint type; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_Subject$SecureSet__ diff --git a/libjava/javax/security/auth/Subject.h b/libjava/javax/security/auth/Subject.h new file mode 100644 index 00000000000..de9165199ba --- /dev/null +++ b/libjava/javax/security/auth/Subject.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_Subject__ +#define __javax_security_auth_Subject__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class AccessControlContext; + class PrivilegedAction; + class PrivilegedExceptionAction; + } + } + namespace javax + { + namespace security + { + namespace auth + { + class Subject; + class Subject$SecureSet; + } + } + } +} + +class javax::security::auth::Subject : public ::java::lang::Object +{ + +public: + Subject(); + Subject(jboolean, ::java::util::Set *, ::java::util::Set *, ::java::util::Set *); + static ::javax::security::auth::Subject * getSubject(::java::security::AccessControlContext *); + static ::java::lang::Object * doAs(::javax::security::auth::Subject *, ::java::security::PrivilegedAction *); + static ::java::lang::Object * doAs(::javax::security::auth::Subject *, ::java::security::PrivilegedExceptionAction *); + static ::java::lang::Object * doAsPrivileged(::javax::security::auth::Subject *, ::java::security::PrivilegedAction *, ::java::security::AccessControlContext *); + static ::java::lang::Object * doAsPrivileged(::javax::security::auth::Subject *, ::java::security::PrivilegedExceptionAction *, ::java::security::AccessControlContext *); + jboolean equals(::java::lang::Object *); + ::java::util::Set * getPrincipals(); + ::java::util::Set * getPrincipals(::java::lang::Class *); + ::java::util::Set * getPrivateCredentials(); + ::java::util::Set * getPrivateCredentials(::java::lang::Class *); + ::java::util::Set * getPublicCredentials(); + ::java::util::Set * getPublicCredentials(::java::lang::Class *); + jint hashCode(); + jboolean isReadOnly(); + void setReadOnly(); + ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -8308522755600156056LL; + ::java::util::Set * __attribute__((aligned(__alignof__( ::java::lang::Object)))) principals; + jboolean readOnly; + ::javax::security::auth::Subject$SecureSet * pubCred; + ::javax::security::auth::Subject$SecureSet * privCred; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_Subject__ diff --git a/libjava/javax/security/auth/SubjectDomainCombiner.h b/libjava/javax/security/auth/SubjectDomainCombiner.h new file mode 100644 index 00000000000..bda871c92db --- /dev/null +++ b/libjava/javax/security/auth/SubjectDomainCombiner.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_SubjectDomainCombiner__ +#define __javax_security_auth_SubjectDomainCombiner__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class ProtectionDomain; + } + } + namespace javax + { + namespace security + { + namespace auth + { + class Subject; + class SubjectDomainCombiner; + } + } + } +} + +class javax::security::auth::SubjectDomainCombiner : public ::java::lang::Object +{ + +public: + SubjectDomainCombiner(::javax::security::auth::Subject *); + virtual JArray< ::java::security::ProtectionDomain * > * combine(JArray< ::java::security::ProtectionDomain * > *, JArray< ::java::security::ProtectionDomain * > *); + virtual ::javax::security::auth::Subject * getSubject(); +private: + ::javax::security::auth::Subject * __attribute__((aligned(__alignof__( ::java::lang::Object)))) subject; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_SubjectDomainCombiner__ diff --git a/libjava/javax/security/auth/callback/Callback.h b/libjava/javax/security/auth/callback/Callback.h new file mode 100644 index 00000000000..ef069f63367 --- /dev/null +++ b/libjava/javax/security/auth/callback/Callback.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_Callback__ +#define __javax_security_auth_callback_Callback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class Callback; + } + } + } + } +} + +class javax::security::auth::callback::Callback : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_auth_callback_Callback__ diff --git a/libjava/javax/security/auth/callback/CallbackHandler.h b/libjava/javax/security/auth/callback/CallbackHandler.h new file mode 100644 index 00000000000..63f4bfb4164 --- /dev/null +++ b/libjava/javax/security/auth/callback/CallbackHandler.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_CallbackHandler__ +#define __javax_security_auth_callback_CallbackHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class Callback; + class CallbackHandler; + } + } + } + } +} + +class javax::security::auth::callback::CallbackHandler : public ::java::lang::Object +{ + +public: + virtual void handle(JArray< ::javax::security::auth::callback::Callback * > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_auth_callback_CallbackHandler__ diff --git a/libjava/javax/security/auth/callback/ChoiceCallback.h b/libjava/javax/security/auth/callback/ChoiceCallback.h new file mode 100644 index 00000000000..80f4ccf2879 --- /dev/null +++ b/libjava/javax/security/auth/callback/ChoiceCallback.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_ChoiceCallback__ +#define __javax_security_auth_callback_ChoiceCallback__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ChoiceCallback; + } + } + } + } +} + +class javax::security::auth::callback::ChoiceCallback : public ::java::lang::Object +{ + +public: + ChoiceCallback(::java::lang::String *, JArray< ::java::lang::String * > *, jint, jboolean); + virtual ::java::lang::String * getPrompt(); + virtual JArray< ::java::lang::String * > * getChoices(); + virtual jint getDefaultChoice(); + virtual jboolean allowMultipleSelections(); + virtual void setSelectedIndex(jint); + virtual void setSelectedIndexes(JArray< jint > *); + virtual JArray< jint > * getSelectedIndexes(); +private: + void setPrompt(::java::lang::String *); + void setChoices(JArray< ::java::lang::String * > *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prompt; + JArray< ::java::lang::String * > * choices; + jint defaultChoice; + jboolean multipleSelectionsAllowed; + JArray< jint > * selections; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_ChoiceCallback__ diff --git a/libjava/javax/security/auth/callback/ConfirmationCallback.h b/libjava/javax/security/auth/callback/ConfirmationCallback.h new file mode 100644 index 00000000000..4e7443832a7 --- /dev/null +++ b/libjava/javax/security/auth/callback/ConfirmationCallback.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_ConfirmationCallback__ +#define __javax_security_auth_callback_ConfirmationCallback__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class ConfirmationCallback; + } + } + } + } +} + +class javax::security::auth::callback::ConfirmationCallback : public ::java::lang::Object +{ + +public: + ConfirmationCallback(jint, jint, jint); + ConfirmationCallback(jint, JArray< ::java::lang::String * > *, jint); + ConfirmationCallback(::java::lang::String *, jint, jint, jint); + ConfirmationCallback(::java::lang::String *, jint, JArray< ::java::lang::String * > *, jint); + virtual ::java::lang::String * getPrompt(); + virtual jint getMessageType(); + virtual jint getOptionType(); + virtual JArray< ::java::lang::String * > * getOptions(); + virtual jint getDefaultOption(); + virtual void setSelectedIndex(jint); + virtual jint getSelectedIndex(); +private: + void setMessageType(jint); + void setOptionType(jint, jint); + void setOptions(JArray< ::java::lang::String * > *, jint); + void setPrompt(::java::lang::String *); +public: + static const jint UNSPECIFIED_OPTION = -1; + static const jint YES_NO_OPTION = 0; + static const jint YES_NO_CANCEL_OPTION = 1; + static const jint OK_CANCEL_OPTION = 2; + static const jint YES = 0; + static const jint NO = 1; + static const jint CANCEL = 2; + static const jint OK = 3; + static const jint INFORMATION = 0; + static const jint WARNING = 1; + static const jint ERROR = 2; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prompt; + jint messageType; + jint optionType; + jint defaultOption; + JArray< ::java::lang::String * > * options; + jint selection; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_ConfirmationCallback__ diff --git a/libjava/javax/security/auth/callback/LanguageCallback.h b/libjava/javax/security/auth/callback/LanguageCallback.h new file mode 100644 index 00000000000..8580fa7a847 --- /dev/null +++ b/libjava/javax/security/auth/callback/LanguageCallback.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_LanguageCallback__ +#define __javax_security_auth_callback_LanguageCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class LanguageCallback; + } + } + } + } +} + +class javax::security::auth::callback::LanguageCallback : public ::java::lang::Object +{ + +public: + LanguageCallback(); + virtual void setLocale(::java::util::Locale *); + virtual ::java::util::Locale * getLocale(); +private: + ::java::util::Locale * __attribute__((aligned(__alignof__( ::java::lang::Object)))) locale; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_LanguageCallback__ diff --git a/libjava/javax/security/auth/callback/NameCallback.h b/libjava/javax/security/auth/callback/NameCallback.h new file mode 100644 index 00000000000..89e3ffdbce4 --- /dev/null +++ b/libjava/javax/security/auth/callback/NameCallback.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_NameCallback__ +#define __javax_security_auth_callback_NameCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class NameCallback; + } + } + } + } +} + +class javax::security::auth::callback::NameCallback : public ::java::lang::Object +{ + +public: + NameCallback(::java::lang::String *); + NameCallback(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getPrompt(); + virtual ::java::lang::String * getDefaultName(); + virtual void setName(::java::lang::String *); + virtual ::java::lang::String * getName(); +private: + void setPrompt(::java::lang::String *); + void setDefaultName(::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prompt; + ::java::lang::String * defaultName; + ::java::lang::String * inputName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_NameCallback__ diff --git a/libjava/javax/security/auth/callback/PasswordCallback.h b/libjava/javax/security/auth/callback/PasswordCallback.h new file mode 100644 index 00000000000..2055b7cc65e --- /dev/null +++ b/libjava/javax/security/auth/callback/PasswordCallback.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_PasswordCallback__ +#define __javax_security_auth_callback_PasswordCallback__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class PasswordCallback; + } + } + } + } +} + +class javax::security::auth::callback::PasswordCallback : public ::java::lang::Object +{ + +public: + PasswordCallback(::java::lang::String *, jboolean); + virtual ::java::lang::String * getPrompt(); + virtual jboolean isEchoOn(); + virtual void setPassword(JArray< jchar > *); + virtual JArray< jchar > * getPassword(); + virtual void clearPassword(); +private: + void setPrompt(::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prompt; + jboolean echoOn; + JArray< jchar > * inputPassword; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_PasswordCallback__ diff --git a/libjava/javax/security/auth/callback/TextInputCallback.h b/libjava/javax/security/auth/callback/TextInputCallback.h new file mode 100644 index 00000000000..bf85c3544db --- /dev/null +++ b/libjava/javax/security/auth/callback/TextInputCallback.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_TextInputCallback__ +#define __javax_security_auth_callback_TextInputCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class TextInputCallback; + } + } + } + } +} + +class javax::security::auth::callback::TextInputCallback : public ::java::lang::Object +{ + +public: + TextInputCallback(::java::lang::String *); + TextInputCallback(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getPrompt(); + virtual ::java::lang::String * getDefaultText(); + virtual void setText(::java::lang::String *); + virtual ::java::lang::String * getText(); +private: + void setPrompt(::java::lang::String *); + void setDefaultText(::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prompt; + ::java::lang::String * defaultText; + ::java::lang::String * inputText; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_TextInputCallback__ diff --git a/libjava/javax/security/auth/callback/TextOutputCallback.h b/libjava/javax/security/auth/callback/TextOutputCallback.h new file mode 100644 index 00000000000..048e8cf83e2 --- /dev/null +++ b/libjava/javax/security/auth/callback/TextOutputCallback.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_TextOutputCallback__ +#define __javax_security_auth_callback_TextOutputCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class TextOutputCallback; + } + } + } + } +} + +class javax::security::auth::callback::TextOutputCallback : public ::java::lang::Object +{ + +public: + TextOutputCallback(jint, ::java::lang::String *); + virtual jint getMessageType(); + virtual ::java::lang::String * getMessage(); +private: + void setMessage(::java::lang::String *); +public: + static const jint INFORMATION = 0; + static const jint WARNING = 1; + static const jint ERROR = 2; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) messageType; + ::java::lang::String * message; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_TextOutputCallback__ diff --git a/libjava/javax/security/auth/callback/UnsupportedCallbackException.h b/libjava/javax/security/auth/callback/UnsupportedCallbackException.h new file mode 100644 index 00000000000..ec80fddcb56 --- /dev/null +++ b/libjava/javax/security/auth/callback/UnsupportedCallbackException.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_callback_UnsupportedCallbackException__ +#define __javax_security_auth_callback_UnsupportedCallbackException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class Callback; + class UnsupportedCallbackException; + } + } + } + } +} + +class javax::security::auth::callback::UnsupportedCallbackException : public ::java::lang::Exception +{ + +public: + UnsupportedCallbackException(::javax::security::auth::callback::Callback *); + UnsupportedCallbackException(::javax::security::auth::callback::Callback *, ::java::lang::String *); + virtual ::javax::security::auth::callback::Callback * getCallback(); +private: + ::javax::security::auth::callback::Callback * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) callback; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_callback_UnsupportedCallbackException__ diff --git a/libjava/javax/security/auth/kerberos/DelegationPermission$1.h b/libjava/javax/security/auth/kerberos/DelegationPermission$1.h new file mode 100644 index 00000000000..44aa424bb8e --- /dev/null +++ b/libjava/javax/security/auth/kerberos/DelegationPermission$1.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_DelegationPermission$1__ +#define __javax_security_auth_kerberos_DelegationPermission$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace kerberos + { + class DelegationPermission; + class DelegationPermission$1; + } + } + } + } +} + +class javax::security::auth::kerberos::DelegationPermission$1 : public ::java::security::PermissionCollection +{ + +public: // actually package-private + DelegationPermission$1(::javax::security::auth::kerberos::DelegationPermission *); +public: + void add(::java::security::Permission *); + jboolean implies(::java::security::Permission *); + ::java::util::Enumeration * elements(); +private: + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) permissions; +public: // actually package-private + ::javax::security::auth::kerberos::DelegationPermission * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_DelegationPermission$1__ diff --git a/libjava/javax/security/auth/kerberos/DelegationPermission.h b/libjava/javax/security/auth/kerberos/DelegationPermission.h new file mode 100644 index 00000000000..2b89ad70095 --- /dev/null +++ b/libjava/javax/security/auth/kerberos/DelegationPermission.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_DelegationPermission__ +#define __javax_security_auth_kerberos_DelegationPermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + class PermissionCollection; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace kerberos + { + class DelegationPermission; + } + } + } + } +} + +class javax::security::auth::kerberos::DelegationPermission : public ::java::security::BasicPermission +{ + +public: + DelegationPermission(::java::lang::String *); + DelegationPermission(::java::lang::String *, ::java::lang::String *); +private: + static void checkSyntax(::java::lang::String *); +public: + jboolean implies(::java::security::Permission *); + ::java::security::PermissionCollection * newPermissionCollection(); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_DelegationPermission__ diff --git a/libjava/javax/security/auth/kerberos/KerberosKey.h b/libjava/javax/security/auth/kerberos/KerberosKey.h new file mode 100644 index 00000000000..ed0e93f2910 --- /dev/null +++ b/libjava/javax/security/auth/kerberos/KerberosKey.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_KerberosKey__ +#define __javax_security_auth_kerberos_KerberosKey__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace kerberos + { + class KerberosKey; + class KerberosPrincipal; + class KeyImpl; + } + } + } + } +} + +class javax::security::auth::kerberos::KerberosKey : public ::java::lang::Object +{ + +public: + KerberosKey(::javax::security::auth::kerberos::KerberosPrincipal *, JArray< jbyte > *, jint, jint); + KerberosKey(::javax::security::auth::kerberos::KerberosPrincipal *, JArray< jchar > *, ::java::lang::String *); + virtual ::java::lang::String * getAlgorithm(); + virtual ::java::lang::String * getFormat(); + virtual ::javax::security::auth::kerberos::KerberosPrincipal * getPrincipal(); + virtual jint getKeyType(); + virtual jint getVersionNumber(); + virtual JArray< jbyte > * getEncoded(); + virtual void destroy(); + virtual jboolean isDestroyed(); +private: + void checkDestroyed(); +public: + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -4625402278148246993LL; + ::javax::security::auth::kerberos::KerberosPrincipal * __attribute__((aligned(__alignof__( ::java::lang::Object)))) principal; + jint versionNum; + ::javax::security::auth::kerberos::KeyImpl * key; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_KerberosKey__ diff --git a/libjava/javax/security/auth/kerberos/KerberosPrincipal.h b/libjava/javax/security/auth/kerberos/KerberosPrincipal.h new file mode 100644 index 00000000000..c945a5620e3 --- /dev/null +++ b/libjava/javax/security/auth/kerberos/KerberosPrincipal.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_KerberosPrincipal__ +#define __javax_security_auth_kerberos_KerberosPrincipal__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace kerberos + { + class KerberosPrincipal; + } + } + } + } +} + +class javax::security::auth::kerberos::KerberosPrincipal : public ::java::lang::Object +{ + +public: + KerberosPrincipal(::java::lang::String *); + KerberosPrincipal(::java::lang::String *, jint); +private: + ::java::lang::String * parseRealm(); +public: + ::java::lang::String * getName(); + ::java::lang::String * getRealm(); + jint getNameType(); + jint hashCode(); + jboolean equals(::java::lang::Object *); + ::java::lang::String * toString(); + static const jint KRB_NT_PRINCIPAL = 1; + static const jint KRB_NT_SRV_HST = 3; + static const jint KRB_NT_SRV_INST = 2; + static const jint KRB_NT_SRV_XHST = 4; + static const jint KRB_NT_UID = 5; + static const jint KRB_NT_UNKNOWN = 0; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + jint type; + ::java::lang::String * realm; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_KerberosPrincipal__ diff --git a/libjava/javax/security/auth/kerberos/KerberosTicket.h b/libjava/javax/security/auth/kerberos/KerberosTicket.h new file mode 100644 index 00000000000..44c35b4c78d --- /dev/null +++ b/libjava/javax/security/auth/kerberos/KerberosTicket.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_KerberosTicket__ +#define __javax_security_auth_kerberos_KerberosTicket__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + } + } + namespace javax + { + namespace crypto + { + class SecretKey; + } + namespace security + { + namespace auth + { + namespace kerberos + { + class KerberosPrincipal; + class KerberosTicket; + class KeyImpl; + } + } + } + } +} + +class javax::security::auth::kerberos::KerberosTicket : public ::java::lang::Object +{ + +public: + KerberosTicket(JArray< jbyte > *, ::javax::security::auth::kerberos::KerberosPrincipal *, ::javax::security::auth::kerberos::KerberosPrincipal *, JArray< jbyte > *, jint, JArray< jboolean > *, ::java::util::Date *, ::java::util::Date *, ::java::util::Date *, ::java::util::Date *, JArray< ::java::net::InetAddress * > *); + virtual void destroy(); + virtual jboolean isDestroyed(); + virtual jboolean isCurrent(); + virtual void refresh(); + virtual ::javax::security::auth::kerberos::KerberosPrincipal * getClient(); + virtual ::javax::security::auth::kerberos::KerberosPrincipal * getServer(); + virtual jboolean isForwardable(); + virtual jboolean isForwarded(); + virtual jboolean isProxiable(); + virtual jboolean isProxy(); + virtual jboolean isPostdated(); + virtual jboolean isRenewable(); + virtual jboolean isInitial(); + virtual JArray< jboolean > * getFlags(); + virtual ::java::util::Date * getAuthTime(); + virtual ::java::util::Date * getStartTime(); + virtual ::java::util::Date * getEndTime(); + virtual ::java::util::Date * getRenewTill(); + virtual JArray< ::java::net::InetAddress * > * getClientAddresses(); + virtual JArray< jbyte > * getEncoded(); + virtual ::javax::crypto::SecretKey * getSessionKey(); +private: + void checkDestroyed(); +public: + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 7395334370157380539LL; + static const jint FORWARDABLE = 1; + static const jint FORWARDED = 2; + static const jint PROXIABLE = 3; + static const jint PROXY = 4; + static const jint POSTDATED = 6; + static const jint RENEWABLE = 8; + static const jint INITIAL = 9; + static const jint NUM_FLAGS = 12; + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) asn1Encoding; + ::javax::security::auth::kerberos::KeyImpl * sessionKey; + JArray< jboolean > * flags; + ::java::util::Date * authTime; + ::java::util::Date * startTime; + ::java::util::Date * endTime; + ::java::util::Date * renewTill; + ::javax::security::auth::kerberos::KerberosPrincipal * client; + ::javax::security::auth::kerberos::KerberosPrincipal * server; + JArray< ::java::net::InetAddress * > * clientAddresses; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_KerberosTicket__ diff --git a/libjava/javax/security/auth/kerberos/KeyImpl.h b/libjava/javax/security/auth/kerberos/KeyImpl.h new file mode 100644 index 00000000000..39998ba2219 --- /dev/null +++ b/libjava/javax/security/auth/kerberos/KeyImpl.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_KeyImpl__ +#define __javax_security_auth_kerberos_KeyImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace kerberos + { + class KeyImpl; + } + } + } + } +} + +class javax::security::auth::kerberos::KeyImpl : public ::java::lang::Object +{ + +public: + KeyImpl(JArray< jbyte > *, jint); + KeyImpl(JArray< jchar > *, ::java::lang::String *); + ::java::lang::String * getAlgorithm(); + JArray< jbyte > * getEncoded(); + ::java::lang::String * getFormat(); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) algorithm; + jint type; + JArray< jbyte > * key; + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_KeyImpl__ diff --git a/libjava/javax/security/auth/kerberos/ServicePermission$1.h b/libjava/javax/security/auth/kerberos/ServicePermission$1.h new file mode 100644 index 00000000000..4a11e5faa79 --- /dev/null +++ b/libjava/javax/security/auth/kerberos/ServicePermission$1.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_ServicePermission$1__ +#define __javax_security_auth_kerberos_ServicePermission$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace kerberos + { + class ServicePermission; + class ServicePermission$1; + } + } + } + } +} + +class javax::security::auth::kerberos::ServicePermission$1 : public ::java::security::PermissionCollection +{ + +public: // actually package-private + ServicePermission$1(::javax::security::auth::kerberos::ServicePermission *); +public: + void add(::java::security::Permission *); + jboolean implies(::java::security::Permission *); + ::java::util::Enumeration * elements(); +private: + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) permissions; +public: // actually package-private + ::javax::security::auth::kerberos::ServicePermission * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_ServicePermission$1__ diff --git a/libjava/javax/security/auth/kerberos/ServicePermission.h b/libjava/javax/security/auth/kerberos/ServicePermission.h new file mode 100644 index 00000000000..0abca5189dd --- /dev/null +++ b/libjava/javax/security/auth/kerberos/ServicePermission.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_kerberos_ServicePermission__ +#define __javax_security_auth_kerberos_ServicePermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class Permission; + class PermissionCollection; + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace kerberos + { + class ServicePermission; + } + } + } + } +} + +class javax::security::auth::kerberos::ServicePermission : public ::java::security::Permission +{ + +public: + ServicePermission(::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: + void parseActions(::java::lang::String *); + static const jint INITIATE = 1; + static const jint ACCEPT = 2; + jint __attribute__((aligned(__alignof__( ::java::security::Permission)))) flags; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_kerberos_ServicePermission__ diff --git a/libjava/javax/security/auth/login/AccountException.h b/libjava/javax/security/auth/login/AccountException.h new file mode 100644 index 00000000000..1ee7718694f --- /dev/null +++ b/libjava/javax/security/auth/login/AccountException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_AccountException__ +#define __javax_security_auth_login_AccountException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AccountException; + } + } + } + } +} + +class javax::security::auth::login::AccountException : public ::javax::security::auth::login::LoginException +{ + +public: + AccountException(); + AccountException(::java::lang::String *); +private: + static const jlong serialVersionUID = -2112878680072211787LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_AccountException__ diff --git a/libjava/javax/security/auth/login/AccountExpiredException.h b/libjava/javax/security/auth/login/AccountExpiredException.h new file mode 100644 index 00000000000..76c92144244 --- /dev/null +++ b/libjava/javax/security/auth/login/AccountExpiredException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_AccountExpiredException__ +#define __javax_security_auth_login_AccountExpiredException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AccountExpiredException; + } + } + } + } +} + +class javax::security::auth::login::AccountExpiredException : public ::javax::security::auth::login::AccountException +{ + +public: + AccountExpiredException(); + AccountExpiredException(::java::lang::String *); +private: + static const jlong serialVersionUID = -6064064890162661560LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_AccountExpiredException__ diff --git a/libjava/javax/security/auth/login/AccountLockedException.h b/libjava/javax/security/auth/login/AccountLockedException.h new file mode 100644 index 00000000000..e2d8a53df85 --- /dev/null +++ b/libjava/javax/security/auth/login/AccountLockedException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_AccountLockedException__ +#define __javax_security_auth_login_AccountLockedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AccountLockedException; + } + } + } + } +} + +class javax::security::auth::login::AccountLockedException : public ::javax::security::auth::login::AccountException +{ + +public: + AccountLockedException(); + AccountLockedException(::java::lang::String *); +private: + static const jlong serialVersionUID = 8280345554014066334LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_AccountLockedException__ diff --git a/libjava/javax/security/auth/login/AccountNotFoundException.h b/libjava/javax/security/auth/login/AccountNotFoundException.h new file mode 100644 index 00000000000..e258fa0ea9a --- /dev/null +++ b/libjava/javax/security/auth/login/AccountNotFoundException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_AccountNotFoundException__ +#define __javax_security_auth_login_AccountNotFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AccountNotFoundException; + } + } + } + } +} + +class javax::security::auth::login::AccountNotFoundException : public ::javax::security::auth::login::AccountException +{ + +public: + AccountNotFoundException(); + AccountNotFoundException(::java::lang::String *); +private: + static const jlong serialVersionUID = 1498349563916294614LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_AccountNotFoundException__ diff --git a/libjava/javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag.h b/libjava/javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag.h new file mode 100644 index 00000000000..b5ddbece94b --- /dev/null +++ b/libjava/javax/security/auth/login/AppConfigurationEntry$LoginModuleControlFlag.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_AppConfigurationEntry$LoginModuleControlFlag__ +#define __javax_security_auth_login_AppConfigurationEntry$LoginModuleControlFlag__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AppConfigurationEntry$LoginModuleControlFlag; + } + } + } + } +} + +class javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag : public ::java::lang::Object +{ + + AppConfigurationEntry$LoginModuleControlFlag(); +public: + virtual ::java::lang::String * toString(); + static ::javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag * OPTIONAL; + static ::javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag * REQUIRED; + static ::javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag * REQUISITE; + static ::javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag * SUFFICIENT; + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_AppConfigurationEntry$LoginModuleControlFlag__ diff --git a/libjava/javax/security/auth/login/AppConfigurationEntry.h b/libjava/javax/security/auth/login/AppConfigurationEntry.h new file mode 100644 index 00000000000..8ca23b3e301 --- /dev/null +++ b/libjava/javax/security/auth/login/AppConfigurationEntry.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_AppConfigurationEntry__ +#define __javax_security_auth_login_AppConfigurationEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AppConfigurationEntry; + class AppConfigurationEntry$LoginModuleControlFlag; + } + } + } + } +} + +class javax::security::auth::login::AppConfigurationEntry : public ::java::lang::Object +{ + +public: + AppConfigurationEntry(::java::lang::String *, ::javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag *, ::java::util::Map *); + virtual ::javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag * getControlFlag(); + virtual ::java::lang::String * getLoginModuleName(); + virtual ::java::util::Map * getOptions(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) loginModuleName; + ::javax::security::auth::login::AppConfigurationEntry$LoginModuleControlFlag * controlFlag; + ::java::util::Map * options; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_AppConfigurationEntry__ diff --git a/libjava/javax/security/auth/login/Configuration$1.h b/libjava/javax/security/auth/login/Configuration$1.h new file mode 100644 index 00000000000..e91c8a4d342 --- /dev/null +++ b/libjava/javax/security/auth/login/Configuration$1.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_Configuration$1__ +#define __javax_security_auth_login_Configuration$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class Configuration$1; + } + } + } + } +} + +class javax::security::auth::login::Configuration$1 : public ::java::lang::Object +{ + +public: // actually package-private + Configuration$1(); +public: + ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_Configuration$1__ diff --git a/libjava/javax/security/auth/login/Configuration.h b/libjava/javax/security/auth/login/Configuration.h new file mode 100644 index 00000000000..1da5bf7130c --- /dev/null +++ b/libjava/javax/security/auth/login/Configuration.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_Configuration__ +#define __javax_security_auth_login_Configuration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AppConfigurationEntry; + class Configuration; + } + } + } + } +} + +class javax::security::auth::login::Configuration : public ::java::lang::Object +{ + +public: // actually protected + Configuration(); +public: + static ::javax::security::auth::login::Configuration * getConfiguration(); + static void setConfiguration(::javax::security::auth::login::Configuration *); + virtual JArray< ::javax::security::auth::login::AppConfigurationEntry * > * getAppConfigurationEntry(::java::lang::String *) = 0; + virtual void refresh() = 0; +public: // actually package-private + static ::javax::security::auth::login::Configuration * getConfig(); +private: + static ::javax::security::auth::login::Configuration * config; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_Configuration__ diff --git a/libjava/javax/security/auth/login/CredentialException.h b/libjava/javax/security/auth/login/CredentialException.h new file mode 100644 index 00000000000..87b0c068397 --- /dev/null +++ b/libjava/javax/security/auth/login/CredentialException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_CredentialException__ +#define __javax_security_auth_login_CredentialException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class CredentialException; + } + } + } + } +} + +class javax::security::auth::login::CredentialException : public ::javax::security::auth::login::LoginException +{ + +public: + CredentialException(); + CredentialException(::java::lang::String *); +private: + static const jlong serialVersionUID = -4772893876810601859LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_CredentialException__ diff --git a/libjava/javax/security/auth/login/CredentialExpiredException.h b/libjava/javax/security/auth/login/CredentialExpiredException.h new file mode 100644 index 00000000000..a10aefa13bd --- /dev/null +++ b/libjava/javax/security/auth/login/CredentialExpiredException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_CredentialExpiredException__ +#define __javax_security_auth_login_CredentialExpiredException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class CredentialExpiredException; + } + } + } + } +} + +class javax::security::auth::login::CredentialExpiredException : public ::javax::security::auth::login::CredentialException +{ + +public: + CredentialExpiredException(); + CredentialExpiredException(::java::lang::String *); +private: + static const jlong serialVersionUID = -5344739593859737937LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_CredentialExpiredException__ diff --git a/libjava/javax/security/auth/login/CredentialNotFoundException.h b/libjava/javax/security/auth/login/CredentialNotFoundException.h new file mode 100644 index 00000000000..c60f3db8de4 --- /dev/null +++ b/libjava/javax/security/auth/login/CredentialNotFoundException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_CredentialNotFoundException__ +#define __javax_security_auth_login_CredentialNotFoundException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class CredentialNotFoundException; + } + } + } + } +} + +class javax::security::auth::login::CredentialNotFoundException : public ::javax::security::auth::login::CredentialException +{ + +public: + CredentialNotFoundException(); + CredentialNotFoundException(::java::lang::String *); +private: + static const jlong serialVersionUID = -7779934467214319475LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_CredentialNotFoundException__ diff --git a/libjava/javax/security/auth/login/FailedLoginException.h b/libjava/javax/security/auth/login/FailedLoginException.h new file mode 100644 index 00000000000..014a472c6d9 --- /dev/null +++ b/libjava/javax/security/auth/login/FailedLoginException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_FailedLoginException__ +#define __javax_security_auth_login_FailedLoginException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class FailedLoginException; + } + } + } + } +} + +class javax::security::auth::login::FailedLoginException : public ::javax::security::auth::login::LoginException +{ + +public: + FailedLoginException(); + FailedLoginException(::java::lang::String *); +private: + static const jlong serialVersionUID = 802556922354616286LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_FailedLoginException__ diff --git a/libjava/javax/security/auth/login/LoginContext.h b/libjava/javax/security/auth/login/LoginContext.h new file mode 100644 index 00000000000..b6d39cd5038 --- /dev/null +++ b/libjava/javax/security/auth/login/LoginContext.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_LoginContext__ +#define __javax_security_auth_login_LoginContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class Subject; + namespace callback + { + class CallbackHandler; + } + namespace login + { + class AppConfigurationEntry; + class Configuration; + class LoginContext; + } + namespace spi + { + class LoginModule; + } + } + } + } +} + +class javax::security::auth::login::LoginContext : public ::java::lang::Object +{ + +public: + LoginContext(::java::lang::String *); + LoginContext(::java::lang::String *, ::javax::security::auth::callback::CallbackHandler *); + LoginContext(::java::lang::String *, ::javax::security::auth::Subject *); + LoginContext(::java::lang::String *, ::javax::security::auth::Subject *, ::javax::security::auth::callback::CallbackHandler *); + LoginContext(::java::lang::String *, ::javax::security::auth::Subject *, ::javax::security::auth::callback::CallbackHandler *, ::javax::security::auth::login::Configuration *); + virtual ::javax::security::auth::Subject * getSubject(); + virtual void login(); + virtual void logout(); +private: + static ::javax::security::auth::callback::CallbackHandler * defaultHandler(); + ::javax::security::auth::spi::LoginModule * lookupModule(::javax::security::auth::login::AppConfigurationEntry *, ::javax::security::auth::Subject *, ::java::util::Map *); + static ::java::lang::String * OTHER; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::javax::security::auth::callback::CallbackHandler * cbHandler; + ::javax::security::auth::Subject * subject; + JArray< ::javax::security::auth::login::AppConfigurationEntry * > * entries; + JArray< ::javax::security::auth::spi::LoginModule * > * modules; + ::java::util::Map * sharedState; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_LoginContext__ diff --git a/libjava/javax/security/auth/login/LoginException.h b/libjava/javax/security/auth/login/LoginException.h new file mode 100644 index 00000000000..e68060db78c --- /dev/null +++ b/libjava/javax/security/auth/login/LoginException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_LoginException__ +#define __javax_security_auth_login_LoginException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class LoginException; + } + } + } + } +} + +class javax::security::auth::login::LoginException : public ::java::security::GeneralSecurityException +{ + +public: + LoginException(); + LoginException(::java::lang::String *); +private: + static const jlong serialVersionUID = -4679091624035232488LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_LoginException__ diff --git a/libjava/javax/security/auth/login/NullConfiguration.h b/libjava/javax/security/auth/login/NullConfiguration.h new file mode 100644 index 00000000000..5d73d7ff33f --- /dev/null +++ b/libjava/javax/security/auth/login/NullConfiguration.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_login_NullConfiguration__ +#define __javax_security_auth_login_NullConfiguration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace login + { + class AppConfigurationEntry; + class NullConfiguration; + } + } + } + } +} + +class javax::security::auth::login::NullConfiguration : public ::javax::security::auth::login::Configuration +{ + +public: // actually package-private + NullConfiguration(); +public: + JArray< ::javax::security::auth::login::AppConfigurationEntry * > * getAppConfigurationEntry(::java::lang::String *); + void refresh(); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_login_NullConfiguration__ diff --git a/libjava/javax/security/auth/spi/LoginModule.h b/libjava/javax/security/auth/spi/LoginModule.h new file mode 100644 index 00000000000..413c684f0e7 --- /dev/null +++ b/libjava/javax/security/auth/spi/LoginModule.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_spi_LoginModule__ +#define __javax_security_auth_spi_LoginModule__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + class Subject; + namespace callback + { + class CallbackHandler; + } + namespace spi + { + class LoginModule; + } + } + } + } +} + +class javax::security::auth::spi::LoginModule : public ::java::lang::Object +{ + +public: + virtual jboolean abort() = 0; + virtual jboolean commit() = 0; + virtual void initialize(::javax::security::auth::Subject *, ::javax::security::auth::callback::CallbackHandler *, ::java::util::Map *, ::java::util::Map *) = 0; + virtual jboolean login() = 0; + virtual jboolean logout() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_auth_spi_LoginModule__ diff --git a/libjava/javax/security/auth/x500/X500Principal.h b/libjava/javax/security/auth/x500/X500Principal.h new file mode 100644 index 00000000000..75cdb05e7ef --- /dev/null +++ b/libjava/javax/security/auth/x500/X500Principal.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_x500_X500Principal__ +#define __javax_security_auth_x500_X500Principal__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace security + { + class OID; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500Principal; + } + } + } + } +} + +class javax::security::auth::x500::X500Principal : public ::java::lang::Object +{ + + X500Principal(); +public: + X500Principal(::java::lang::String *); + X500Principal(JArray< jbyte > *); + X500Principal(::java::io::InputStream *); + jint hashCode(); + jboolean equals(::java::lang::Object *); + JArray< jbyte > * getEncoded(); + ::java::lang::String * getName(); + ::java::lang::String * getName(::java::lang::String *); + ::java::lang::String * toString(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); + jint size(); + ::java::lang::String * getComponent(::gnu::java::security::OID *, jint); + void encodeDer(); + void parseString(::java::lang::String *); + ::java::lang::String * readAttributeType(::java::io::Reader *); + ::java::lang::String * readAttributeValue(::java::io::Reader *); + void parseDer(::java::io::InputStream *); + void newRelativeDistinguishedName(); + void putComponent(::gnu::java::security::OID *, ::java::lang::String *); + void putComponent(::java::lang::String *, ::java::lang::String *); + static ::java::lang::String * compressWS(::java::lang::String *); + static JArray< jbyte > * toByteArray(::java::lang::String *); + static const jlong serialVersionUID = -500463348111345721LL; +public: + static ::java::lang::String * CANONICAL; + static ::java::lang::String * RFC1779; + static ::java::lang::String * RFC2253; +private: + static ::gnu::java::security::OID * CN; + static ::gnu::java::security::OID * C; + static ::gnu::java::security::OID * L; + static ::gnu::java::security::OID * ST; + static ::gnu::java::security::OID * STREET; + static ::gnu::java::security::OID * O; + static ::gnu::java::security::OID * OU; + static ::gnu::java::security::OID * DC; + static ::gnu::java::security::OID * UID; + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) components; + ::java::util::Map * currentRdn; + jboolean fixed; + JArray< jbyte > * encoded; + jint sep; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_x500_X500Principal__ diff --git a/libjava/javax/security/auth/x500/X500PrivateCredential.h b/libjava/javax/security/auth/x500/X500PrivateCredential.h new file mode 100644 index 00000000000..27ee30e4a0f --- /dev/null +++ b/libjava/javax/security/auth/x500/X500PrivateCredential.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_auth_x500_X500PrivateCredential__ +#define __javax_security_auth_x500_X500PrivateCredential__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class PrivateKey; + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace security + { + namespace auth + { + namespace x500 + { + class X500PrivateCredential; + } + } + } + } +} + +class javax::security::auth::x500::X500PrivateCredential : public ::java::lang::Object +{ + +public: + X500PrivateCredential(::java::security::cert::X509Certificate *, ::java::security::PrivateKey *); + X500PrivateCredential(::java::security::cert::X509Certificate *, ::java::security::PrivateKey *, ::java::lang::String *); + ::java::security::cert::X509Certificate * getCertificate(); + ::java::security::PrivateKey * getPrivateKey(); + ::java::lang::String * getAlias(); + void destroy(); + jboolean isDestroyed(); +private: + ::java::security::PrivateKey * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; + ::java::security::cert::X509Certificate * certificate; + ::java::lang::String * alias; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_auth_x500_X500PrivateCredential__ diff --git a/libjava/javax/security/cert/Certificate.h b/libjava/javax/security/cert/Certificate.h new file mode 100644 index 00000000000..1417a9ae2c6 --- /dev/null +++ b/libjava/javax/security/cert/Certificate.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_Certificate__ +#define __javax_security_cert_Certificate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class PublicKey; + } + } + namespace javax + { + namespace security + { + namespace cert + { + class Certificate; + } + } + } +} + +class javax::security::cert::Certificate : public ::java::lang::Object +{ + +public: + Certificate(); + 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; + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_Certificate__ diff --git a/libjava/javax/security/cert/CertificateEncodingException.h b/libjava/javax/security/cert/CertificateEncodingException.h new file mode 100644 index 00000000000..d9f102e63cc --- /dev/null +++ b/libjava/javax/security/cert/CertificateEncodingException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_CertificateEncodingException__ +#define __javax_security_cert_CertificateEncodingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace cert + { + class CertificateEncodingException; + } + } + } +} + +class javax::security::cert::CertificateEncodingException : public ::javax::security::cert::CertificateException +{ + +public: + CertificateEncodingException(); + CertificateEncodingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_CertificateEncodingException__ diff --git a/libjava/javax/security/cert/CertificateException.h b/libjava/javax/security/cert/CertificateException.h new file mode 100644 index 00000000000..259c5fb0f97 --- /dev/null +++ b/libjava/javax/security/cert/CertificateException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_CertificateException__ +#define __javax_security_cert_CertificateException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace cert + { + class CertificateException; + } + } + } +} + +class javax::security::cert::CertificateException : public ::java::lang::Exception +{ + +public: + CertificateException(); + CertificateException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_CertificateException__ diff --git a/libjava/javax/security/cert/CertificateExpiredException.h b/libjava/javax/security/cert/CertificateExpiredException.h new file mode 100644 index 00000000000..c8260988d4e --- /dev/null +++ b/libjava/javax/security/cert/CertificateExpiredException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_CertificateExpiredException__ +#define __javax_security_cert_CertificateExpiredException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace cert + { + class CertificateExpiredException; + } + } + } +} + +class javax::security::cert::CertificateExpiredException : public ::javax::security::cert::CertificateException +{ + +public: + CertificateExpiredException(); + CertificateExpiredException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_CertificateExpiredException__ diff --git a/libjava/javax/security/cert/CertificateNotYetValidException.h b/libjava/javax/security/cert/CertificateNotYetValidException.h new file mode 100644 index 00000000000..6b840c51e3b --- /dev/null +++ b/libjava/javax/security/cert/CertificateNotYetValidException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_CertificateNotYetValidException__ +#define __javax_security_cert_CertificateNotYetValidException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace cert + { + class CertificateNotYetValidException; + } + } + } +} + +class javax::security::cert::CertificateNotYetValidException : public ::javax::security::cert::CertificateException +{ + +public: + CertificateNotYetValidException(); + CertificateNotYetValidException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_CertificateNotYetValidException__ diff --git a/libjava/javax/security/cert/CertificateParsingException.h b/libjava/javax/security/cert/CertificateParsingException.h new file mode 100644 index 00000000000..e55a28405c1 --- /dev/null +++ b/libjava/javax/security/cert/CertificateParsingException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_CertificateParsingException__ +#define __javax_security_cert_CertificateParsingException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace cert + { + class CertificateParsingException; + } + } + } +} + +class javax::security::cert::CertificateParsingException : public ::javax::security::cert::CertificateException +{ + +public: + CertificateParsingException(); + CertificateParsingException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_CertificateParsingException__ diff --git a/libjava/javax/security/cert/X509CertBridge.h b/libjava/javax/security/cert/X509CertBridge.h new file mode 100644 index 00000000000..be6a18f15df --- /dev/null +++ b/libjava/javax/security/cert/X509CertBridge.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_X509CertBridge__ +#define __javax_security_cert_X509CertBridge__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class Principal; + class PublicKey; + namespace cert + { + class X509Certificate; + } + } + } + namespace javax + { + namespace security + { + namespace cert + { + class X509CertBridge; + } + } + } +} + +class javax::security::cert::X509CertBridge : public ::javax::security::cert::X509Certificate +{ + +public: // actually package-private + X509CertBridge(::java::security::cert::X509Certificate *); +public: + JArray< jbyte > * getEncoded(); + void verify(::java::security::PublicKey *); + void verify(::java::security::PublicKey *, ::java::lang::String *); + ::java::lang::String * toString(); + ::java::security::PublicKey * getPublicKey(); + void checkValidity(); + void checkValidity(::java::util::Date *); + jint getVersion(); + ::java::math::BigInteger * getSerialNumber(); + ::java::security::Principal * getIssuerDN(); + ::java::security::Principal * getSubjectDN(); + ::java::util::Date * getNotBefore(); + ::java::util::Date * getNotAfter(); + ::java::lang::String * getSigAlgName(); + ::java::lang::String * getSigAlgOID(); + JArray< jbyte > * getSigAlgParams(); +private: + ::java::security::cert::X509Certificate * __attribute__((aligned(__alignof__( ::javax::security::cert::X509Certificate)))) cert; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_X509CertBridge__ diff --git a/libjava/javax/security/cert/X509Certificate.h b/libjava/javax/security/cert/X509Certificate.h new file mode 100644 index 00000000000..8d1cda6c6b9 --- /dev/null +++ b/libjava/javax/security/cert/X509Certificate.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_cert_X509Certificate__ +#define __javax_security_cert_X509Certificate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace math + { + class BigInteger; + } + namespace security + { + class Principal; + } + } + namespace javax + { + namespace security + { + namespace cert + { + class X509Certificate; + } + } + } +} + +class javax::security::cert::X509Certificate : public ::javax::security::cert::Certificate +{ + +public: + X509Certificate(); + static ::javax::security::cert::X509Certificate * getInstance(JArray< jbyte > *); + static ::javax::security::cert::X509Certificate * getInstance(::java::io::InputStream *); + 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 ::java::lang::String * getSigAlgName() = 0; + virtual ::java::lang::String * getSigAlgOID() = 0; + virtual JArray< jbyte > * getSigAlgParams() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_security_cert_X509Certificate__ diff --git a/libjava/javax/security/sasl/AuthenticationException.h b/libjava/javax/security/sasl/AuthenticationException.h new file mode 100644 index 00000000000..1ab4491acae --- /dev/null +++ b/libjava/javax/security/sasl/AuthenticationException.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_AuthenticationException__ +#define __javax_security_sasl_AuthenticationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace sasl + { + class AuthenticationException; + } + } + } +} + +class javax::security::sasl::AuthenticationException : public ::javax::security::sasl::SaslException +{ + +public: + AuthenticationException(); + AuthenticationException(::java::lang::String *); + AuthenticationException(::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_sasl_AuthenticationException__ diff --git a/libjava/javax/security/sasl/AuthorizeCallback.h b/libjava/javax/security/sasl/AuthorizeCallback.h new file mode 100644 index 00000000000..3ae14bdb4ef --- /dev/null +++ b/libjava/javax/security/sasl/AuthorizeCallback.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_AuthorizeCallback__ +#define __javax_security_sasl_AuthorizeCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace sasl + { + class AuthorizeCallback; + } + } + } +} + +class javax::security::sasl::AuthorizeCallback : public ::java::lang::Object +{ + +public: + AuthorizeCallback(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getAuthenticationID(); + virtual ::java::lang::String * getAuthorizationID(); + virtual jboolean isAuthorized(); + virtual void setAuthorized(jboolean); + virtual ::java::lang::String * getAuthorizedID(); + virtual void setAuthorizedID(::java::lang::String *); +private: + static const jlong serialVersionUID = -2353344186490470805LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) authenticationID; + ::java::lang::String * authorizationID; + ::java::lang::String * authorizedID; + jboolean authorized; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_sasl_AuthorizeCallback__ diff --git a/libjava/javax/security/sasl/RealmCallback.h b/libjava/javax/security/sasl/RealmCallback.h new file mode 100644 index 00000000000..17dff32907e --- /dev/null +++ b/libjava/javax/security/sasl/RealmCallback.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_RealmCallback__ +#define __javax_security_sasl_RealmCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace sasl + { + class RealmCallback; + } + } + } +} + +class javax::security::sasl::RealmCallback : public ::javax::security::auth::callback::TextInputCallback +{ + +public: + RealmCallback(::java::lang::String *); + RealmCallback(::java::lang::String *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_sasl_RealmCallback__ diff --git a/libjava/javax/security/sasl/RealmChoiceCallback.h b/libjava/javax/security/sasl/RealmChoiceCallback.h new file mode 100644 index 00000000000..c1ec2a20e39 --- /dev/null +++ b/libjava/javax/security/sasl/RealmChoiceCallback.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_RealmChoiceCallback__ +#define __javax_security_sasl_RealmChoiceCallback__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace sasl + { + class RealmChoiceCallback; + } + } + } +} + +class javax::security::sasl::RealmChoiceCallback : public ::javax::security::auth::callback::ChoiceCallback +{ + +public: + RealmChoiceCallback(::java::lang::String *, JArray< ::java::lang::String * > *, jint, jboolean); + static ::java::lang::Class class$; +}; + +#endif // __javax_security_sasl_RealmChoiceCallback__ diff --git a/libjava/javax/security/sasl/Sasl.h b/libjava/javax/security/sasl/Sasl.h new file mode 100644 index 00000000000..16a0cf23d94 --- /dev/null +++ b/libjava/javax/security/sasl/Sasl.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_Sasl__ +#define __javax_security_sasl_Sasl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CallbackHandler; + } + } + namespace sasl + { + class Sasl; + class SaslClient; + class SaslServer; + } + } + } +} + +class javax::security::sasl::Sasl : public ::java::lang::Object +{ + + Sasl(); +public: + static ::javax::security::sasl::SaslClient * createSaslClient(JArray< ::java::lang::String * > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Map *, ::javax::security::auth::callback::CallbackHandler *); + static ::java::util::Enumeration * getSaslClientFactories(); + static ::javax::security::sasl::SaslServer * createSaslServer(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Map *, ::javax::security::auth::callback::CallbackHandler *); + static ::java::util::Enumeration * getSaslServerFactories(); + static ::java::lang::String * QOP; + static ::java::lang::String * STRENGTH; + static ::java::lang::String * SERVER_AUTH; + static ::java::lang::String * MAX_BUFFER; + static ::java::lang::String * RAW_SEND_SIZE; + static ::java::lang::String * POLICY_NOPLAINTEXT; + static ::java::lang::String * POLICY_NOACTIVE; + static ::java::lang::String * POLICY_NODICTIONARY; + static ::java::lang::String * POLICY_NOANONYMOUS; + static ::java::lang::String * POLICY_FORWARD_SECRECY; + static ::java::lang::String * POLICY_PASS_CREDENTIALS; + static ::java::lang::String * REUSE; +private: + static ::java::lang::String * CLIENT_FACTORY_SVC; + static ::java::lang::String * SERVER_FACTORY_SVC; + static ::java::lang::String * ALIAS; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_sasl_Sasl__ diff --git a/libjava/javax/security/sasl/SaslClient.h b/libjava/javax/security/sasl/SaslClient.h new file mode 100644 index 00000000000..cad1cdaa8f6 --- /dev/null +++ b/libjava/javax/security/sasl/SaslClient.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_SaslClient__ +#define __javax_security_sasl_SaslClient__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace sasl + { + class SaslClient; + } + } + } +} + +class javax::security::sasl::SaslClient : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getMechanismName() = 0; + virtual jboolean hasInitialResponse() = 0; + virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *) = 0; + virtual jboolean isComplete() = 0; + virtual JArray< jbyte > * unwrap(JArray< jbyte > *, jint, jint) = 0; + virtual JArray< jbyte > * wrap(JArray< jbyte > *, jint, jint) = 0; + virtual ::java::lang::Object * getNegotiatedProperty(::java::lang::String *) = 0; + virtual void dispose() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_sasl_SaslClient__ diff --git a/libjava/javax/security/sasl/SaslClientFactory.h b/libjava/javax/security/sasl/SaslClientFactory.h new file mode 100644 index 00000000000..ab603a104af --- /dev/null +++ b/libjava/javax/security/sasl/SaslClientFactory.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_SaslClientFactory__ +#define __javax_security_sasl_SaslClientFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CallbackHandler; + } + } + namespace sasl + { + class SaslClient; + class SaslClientFactory; + } + } + } +} + +class javax::security::sasl::SaslClientFactory : public ::java::lang::Object +{ + +public: + virtual ::javax::security::sasl::SaslClient * createSaslClient(JArray< ::java::lang::String * > *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Map *, ::javax::security::auth::callback::CallbackHandler *) = 0; + virtual JArray< ::java::lang::String * > * getMechanismNames(::java::util::Map *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_sasl_SaslClientFactory__ diff --git a/libjava/javax/security/sasl/SaslException.h b/libjava/javax/security/sasl/SaslException.h new file mode 100644 index 00000000000..9cfd9fce38b --- /dev/null +++ b/libjava/javax/security/sasl/SaslException.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_SaslException__ +#define __javax_security_sasl_SaslException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace security + { + namespace sasl + { + class SaslException; + } + } + } +} + +class javax::security::sasl::SaslException : public ::java::io::IOException +{ + +public: + SaslException(); + SaslException(::java::lang::String *); + SaslException(::java::lang::String *, ::java::lang::Throwable *); + virtual ::java::lang::Throwable * getCause(); + virtual void printStackTrace(); + virtual void printStackTrace(::java::io::PrintStream *); + virtual void printStackTrace(::java::io::PrintWriter *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 4579784287983423626LL; + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::io::IOException)))) _exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_security_sasl_SaslException__ diff --git a/libjava/javax/security/sasl/SaslServer.h b/libjava/javax/security/sasl/SaslServer.h new file mode 100644 index 00000000000..d1f6a89c6ce --- /dev/null +++ b/libjava/javax/security/sasl/SaslServer.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_SaslServer__ +#define __javax_security_sasl_SaslServer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace sasl + { + class SaslServer; + } + } + } +} + +class javax::security::sasl::SaslServer : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getMechanismName() = 0; + virtual JArray< jbyte > * evaluateResponse(JArray< jbyte > *) = 0; + virtual jboolean isComplete() = 0; + virtual ::java::lang::String * getAuthorizationID() = 0; + virtual JArray< jbyte > * unwrap(JArray< jbyte > *, jint, jint) = 0; + virtual JArray< jbyte > * wrap(JArray< jbyte > *, jint, jint) = 0; + virtual ::java::lang::Object * getNegotiatedProperty(::java::lang::String *) = 0; + virtual void dispose() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_sasl_SaslServer__ diff --git a/libjava/javax/security/sasl/SaslServerFactory.h b/libjava/javax/security/sasl/SaslServerFactory.h new file mode 100644 index 00000000000..ceaf0016ed9 --- /dev/null +++ b/libjava/javax/security/sasl/SaslServerFactory.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_security_sasl_SaslServerFactory__ +#define __javax_security_sasl_SaslServerFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace security + { + namespace auth + { + namespace callback + { + class CallbackHandler; + } + } + namespace sasl + { + class SaslServer; + class SaslServerFactory; + } + } + } +} + +class javax::security::sasl::SaslServerFactory : public ::java::lang::Object +{ + +public: + virtual ::javax::security::sasl::SaslServer * createSaslServer(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Map *, ::javax::security::auth::callback::CallbackHandler *) = 0; + virtual JArray< ::java::lang::String * > * getMechanismNames(::java::util::Map *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_security_sasl_SaslServerFactory__ diff --git a/libjava/javax/sound/midi/ControllerEventListener.h b/libjava/javax/sound/midi/ControllerEventListener.h new file mode 100644 index 00000000000..f3352319082 --- /dev/null +++ b/libjava/javax/sound/midi/ControllerEventListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_ControllerEventListener__ +#define __javax_sound_midi_ControllerEventListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class ControllerEventListener; + class ShortMessage; + } + } + } +} + +class javax::sound::midi::ControllerEventListener : public ::java::lang::Object +{ + +public: + virtual void controlChange(::javax::sound::midi::ShortMessage *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_ControllerEventListener__ diff --git a/libjava/javax/sound/midi/Instrument.h b/libjava/javax/sound/midi/Instrument.h new file mode 100644 index 00000000000..9f895a57f46 --- /dev/null +++ b/libjava/javax/sound/midi/Instrument.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Instrument__ +#define __javax_sound_midi_Instrument__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Instrument; + class Patch; + class Soundbank; + } + } + } +} + +class javax::sound::midi::Instrument : public ::javax::sound::midi::SoundbankResource +{ + +public: // actually protected + Instrument(::javax::sound::midi::Soundbank *, ::javax::sound::midi::Patch *, ::java::lang::String *, ::java::lang::Class *); +public: + virtual ::javax::sound::midi::Patch * getPatch(); +private: + ::javax::sound::midi::Patch * __attribute__((aligned(__alignof__( ::javax::sound::midi::SoundbankResource)))) patch; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_Instrument__ diff --git a/libjava/javax/sound/midi/InvalidMidiDataException.h b/libjava/javax/sound/midi/InvalidMidiDataException.h new file mode 100644 index 00000000000..c66b0816f99 --- /dev/null +++ b/libjava/javax/sound/midi/InvalidMidiDataException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_InvalidMidiDataException__ +#define __javax_sound_midi_InvalidMidiDataException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class InvalidMidiDataException; + } + } + } +} + +class javax::sound::midi::InvalidMidiDataException : public ::java::lang::Exception +{ + +public: + InvalidMidiDataException(); + InvalidMidiDataException(::java::lang::String *); +private: + static const jlong serialVersionUID = 2780771756789932067LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_InvalidMidiDataException__ diff --git a/libjava/javax/sound/midi/MetaEventListener.h b/libjava/javax/sound/midi/MetaEventListener.h new file mode 100644 index 00000000000..ccbed891bea --- /dev/null +++ b/libjava/javax/sound/midi/MetaEventListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MetaEventListener__ +#define __javax_sound_midi_MetaEventListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MetaEventListener; + class MetaMessage; + } + } + } +} + +class javax::sound::midi::MetaEventListener : public ::java::lang::Object +{ + +public: + virtual void meta(::javax::sound::midi::MetaMessage *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_MetaEventListener__ diff --git a/libjava/javax/sound/midi/MetaMessage.h b/libjava/javax/sound/midi/MetaMessage.h new file mode 100644 index 00000000000..a50e3b22883 --- /dev/null +++ b/libjava/javax/sound/midi/MetaMessage.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MetaMessage__ +#define __javax_sound_midi_MetaMessage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MetaMessage; + } + } + } +} + +class javax::sound::midi::MetaMessage : public ::javax::sound::midi::MidiMessage +{ + +public: + MetaMessage(); +public: // actually protected + MetaMessage(JArray< jbyte > *); +public: + virtual void setMessage(jint, JArray< jbyte > *, jint); + virtual jint getType(); + virtual JArray< jbyte > * getData(); + virtual ::java::lang::Object * clone(); + static const jint META = 255; +private: + jint __attribute__((aligned(__alignof__( ::javax::sound::midi::MidiMessage)))) lengthLength; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_MetaMessage__ diff --git a/libjava/javax/sound/midi/MidiChannel.h b/libjava/javax/sound/midi/MidiChannel.h new file mode 100644 index 00000000000..4d348d2f783 --- /dev/null +++ b/libjava/javax/sound/midi/MidiChannel.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiChannel__ +#define __javax_sound_midi_MidiChannel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiChannel; + } + } + } +} + +class javax::sound::midi::MidiChannel : public ::java::lang::Object +{ + +public: + virtual void noteOn(jint, jint) = 0; + virtual void noteOff(jint, jint) = 0; + virtual void noteOff(jint) = 0; + virtual void setPolyPressure(jint, jint) = 0; + virtual jint getPolyPressure(jint) = 0; + virtual void setChannelPressure(jint) = 0; + virtual jint getChannelPressure() = 0; + virtual void controlChange(jint, jint) = 0; + virtual jint getController(jint) = 0; + virtual void programChange(jint) = 0; + virtual void programChange(jint, jint) = 0; + virtual jint getProgram() = 0; + virtual void setPitchBend(jint) = 0; + virtual jint getPitchBend() = 0; + virtual void resetAllControllers() = 0; + virtual void allNotesOff() = 0; + virtual void allSoundOff() = 0; + virtual jboolean localControl(jboolean) = 0; + virtual void setMono(jboolean) = 0; + virtual jboolean getMono() = 0; + virtual void setOmni(jboolean) = 0; + virtual jboolean getOmni() = 0; + virtual void setMute(jboolean) = 0; + virtual jboolean getMute() = 0; + virtual void setSolo(jboolean) = 0; + virtual jboolean getSolo() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_MidiChannel__ diff --git a/libjava/javax/sound/midi/MidiDevice$Info.h b/libjava/javax/sound/midi/MidiDevice$Info.h new file mode 100644 index 00000000000..02b9c42f667 --- /dev/null +++ b/libjava/javax/sound/midi/MidiDevice$Info.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiDevice$Info__ +#define __javax_sound_midi_MidiDevice$Info__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice$Info; + } + } + } +} + +class javax::sound::midi::MidiDevice$Info : public ::java::lang::Object +{ + +public: // actually protected + MidiDevice$Info(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getVendor(); + virtual ::java::lang::String * getDescription(); + virtual ::java::lang::String * getVersion(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * vendor; + ::java::lang::String * description; + ::java::lang::String * version; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_MidiDevice$Info__ diff --git a/libjava/javax/sound/midi/MidiDevice.h b/libjava/javax/sound/midi/MidiDevice.h new file mode 100644 index 00000000000..bc952ab1076 --- /dev/null +++ b/libjava/javax/sound/midi/MidiDevice.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiDevice__ +#define __javax_sound_midi_MidiDevice__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + class MidiDevice$Info; + class Receiver; + class Transmitter; + } + } + } +} + +class javax::sound::midi::MidiDevice : public ::java::lang::Object +{ + +public: + virtual ::javax::sound::midi::MidiDevice$Info * getDeviceInfo() = 0; + virtual void open() = 0; + virtual void close() = 0; + virtual jboolean isOpen() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual jint getMaxReceivers() = 0; + virtual jint getMaxTransmitters() = 0; + virtual ::javax::sound::midi::Receiver * getReceiver() = 0; + virtual ::javax::sound::midi::Transmitter * getTransmitter() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_MidiDevice__ diff --git a/libjava/javax/sound/midi/MidiEvent.h b/libjava/javax/sound/midi/MidiEvent.h new file mode 100644 index 00000000000..ef6dbd0f267 --- /dev/null +++ b/libjava/javax/sound/midi/MidiEvent.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiEvent__ +#define __javax_sound_midi_MidiEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiEvent; + class MidiMessage; + } + } + } +} + +class javax::sound::midi::MidiEvent : public ::java::lang::Object +{ + +public: + MidiEvent(::javax::sound::midi::MidiMessage *, jlong); + virtual ::javax::sound::midi::MidiMessage * getMessage(); + virtual void setTick(jlong); + virtual jlong getTick(); +private: + ::javax::sound::midi::MidiMessage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) message; + jlong tick; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_MidiEvent__ diff --git a/libjava/javax/sound/midi/MidiFileFormat.h b/libjava/javax/sound/midi/MidiFileFormat.h new file mode 100644 index 00000000000..57fab827a78 --- /dev/null +++ b/libjava/javax/sound/midi/MidiFileFormat.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiFileFormat__ +#define __javax_sound_midi_MidiFileFormat__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiFileFormat; + } + } + } +} + +class javax::sound::midi::MidiFileFormat : public ::java::lang::Object +{ + +public: + MidiFileFormat(jint, jfloat, jint, jint, jlong); + virtual jint getType(); + virtual jfloat getDivisionType(); + virtual jint getResolution(); + virtual jint getByteLength(); + virtual jlong getMicrosecondLength(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + jfloat divisionType; + jint resolution; + jint byteLength; + jlong microsecondLength; +public: + static const jint UNKNOWN_LENGTH = -1; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_MidiFileFormat__ diff --git a/libjava/javax/sound/midi/MidiMessage.h b/libjava/javax/sound/midi/MidiMessage.h new file mode 100644 index 00000000000..bf7e2d21725 --- /dev/null +++ b/libjava/javax/sound/midi/MidiMessage.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiMessage__ +#define __javax_sound_midi_MidiMessage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiMessage; + } + } + } +} + +class javax::sound::midi::MidiMessage : public ::java::lang::Object +{ + +public: // actually protected + MidiMessage(JArray< jbyte > *); + virtual void setMessage(JArray< jbyte > *, jint); +public: + virtual JArray< jbyte > * getMessage(); + virtual jint getStatus(); + virtual jint getLength(); + virtual ::java::lang::Object * clone() = 0; +public: // actually protected + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data; + jint length; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_MidiMessage__ diff --git a/libjava/javax/sound/midi/MidiSystem.h b/libjava/javax/sound/midi/MidiSystem.h new file mode 100644 index 00000000000..487b9d6de8e --- /dev/null +++ b/libjava/javax/sound/midi/MidiSystem.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiSystem__ +#define __javax_sound_midi_MidiSystem__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + class MidiDevice$Info; + class MidiFileFormat; + class MidiSystem; + class Receiver; + class Sequence; + class Sequencer; + class Soundbank; + class Synthesizer; + class Transmitter; + } + } + } +} + +class javax::sound::midi::MidiSystem : public ::java::lang::Object +{ + + MidiSystem(); +public: + static JArray< ::javax::sound::midi::MidiDevice$Info * > * getMidiDeviceInfo(); + static ::javax::sound::midi::MidiDevice * getMidiDevice(::javax::sound::midi::MidiDevice$Info *); + static ::javax::sound::midi::Receiver * getReceiver(); + static ::javax::sound::midi::Transmitter * getTransmitter(); + static ::javax::sound::midi::Synthesizer * getSynthesizer(); + static ::javax::sound::midi::Sequencer * getSequencer(); + static ::javax::sound::midi::Soundbank * getSoundbank(::java::io::InputStream *); + static ::javax::sound::midi::Soundbank * getSoundbank(::java::net::URL *); + static ::javax::sound::midi::Soundbank * getSoundbank(::java::io::File *); + static ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::io::InputStream *); + static ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::net::URL *); + static ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::io::File *); + static ::javax::sound::midi::Sequence * getSequence(::java::io::InputStream *); + static ::javax::sound::midi::Sequence * getSequence(::java::net::URL *); + static ::javax::sound::midi::Sequence * getSequence(::java::io::File *); + static JArray< jint > * getMidiFileTypes(); + static jboolean isFileTypeSupported(jint); + static JArray< jint > * getMidiFileTypes(::javax::sound::midi::Sequence *); + static jboolean isFileTypeSupported(jint, ::javax::sound::midi::Sequence *); + static jint write(::javax::sound::midi::Sequence *, jint, ::java::io::OutputStream *); + static jint write(::javax::sound::midi::Sequence *, jint, ::java::io::File *); + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_MidiSystem__ diff --git a/libjava/javax/sound/midi/MidiUnavailableException.h b/libjava/javax/sound/midi/MidiUnavailableException.h new file mode 100644 index 00000000000..740496db2dd --- /dev/null +++ b/libjava/javax/sound/midi/MidiUnavailableException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_MidiUnavailableException__ +#define __javax_sound_midi_MidiUnavailableException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiUnavailableException; + } + } + } +} + +class javax::sound::midi::MidiUnavailableException : public ::java::lang::Exception +{ + +public: + MidiUnavailableException(); + MidiUnavailableException(::java::lang::String *); +private: + static const jlong serialVersionUID = 6093809578628944323LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_MidiUnavailableException__ diff --git a/libjava/javax/sound/midi/Patch.h b/libjava/javax/sound/midi/Patch.h new file mode 100644 index 00000000000..fcc9b31867d --- /dev/null +++ b/libjava/javax/sound/midi/Patch.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Patch__ +#define __javax_sound_midi_Patch__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Patch; + } + } + } +} + +class javax::sound::midi::Patch : public ::java::lang::Object +{ + +public: + Patch(jint, jint); + virtual jint getBank(); + virtual jint getProgram(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) bank; + jint program; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_Patch__ diff --git a/libjava/javax/sound/midi/Receiver.h b/libjava/javax/sound/midi/Receiver.h new file mode 100644 index 00000000000..b82d06f185f --- /dev/null +++ b/libjava/javax/sound/midi/Receiver.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Receiver__ +#define __javax_sound_midi_Receiver__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiMessage; + class Receiver; + } + } + } +} + +class javax::sound::midi::Receiver : public ::java::lang::Object +{ + +public: + virtual void send(::javax::sound::midi::MidiMessage *, jlong) = 0; + virtual void close() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_Receiver__ diff --git a/libjava/javax/sound/midi/Sequence.h b/libjava/javax/sound/midi/Sequence.h new file mode 100644 index 00000000000..0ca6ed71148 --- /dev/null +++ b/libjava/javax/sound/midi/Sequence.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Sequence__ +#define __javax_sound_midi_Sequence__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Patch; + class Sequence; + class Track; + } + } + } +} + +class javax::sound::midi::Sequence : public ::java::lang::Object +{ + + void init(jfloat, jint, jint); +public: + Sequence(jfloat, jint); + Sequence(jfloat, jint, jint); + virtual jfloat getDivisionType(); + virtual jint getResolution(); + virtual ::javax::sound::midi::Track * createTrack(); + virtual jboolean deleteTrack(::javax::sound::midi::Track *); + virtual JArray< ::javax::sound::midi::Track * > * getTracks(); + virtual jlong getMicrosecondLength(); + virtual jlong getTickLength(); + virtual JArray< ::javax::sound::midi::Patch * > * getPatchList(); +public: // actually protected + jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) divisionType; + jint resolution; + ::java::util::Vector * tracks; +public: + static jfloat PPQ; + static jfloat SMPTE_24; + static jfloat SMPTE_25; + static jfloat SMPTE_30; + static jfloat SMPTE_30DROP; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_Sequence__ diff --git a/libjava/javax/sound/midi/Sequencer$SyncMode.h b/libjava/javax/sound/midi/Sequencer$SyncMode.h new file mode 100644 index 00000000000..70944db8bd8 --- /dev/null +++ b/libjava/javax/sound/midi/Sequencer$SyncMode.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Sequencer$SyncMode__ +#define __javax_sound_midi_Sequencer$SyncMode__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Sequencer$SyncMode; + } + } + } +} + +class javax::sound::midi::Sequencer$SyncMode : public ::java::lang::Object +{ + +public: // actually protected + Sequencer$SyncMode(::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); + static ::javax::sound::midi::Sequencer$SyncMode * INTERNAL_CLOCK; + static ::javax::sound::midi::Sequencer$SyncMode * MIDI_SYNC; + static ::javax::sound::midi::Sequencer$SyncMode * MIDI_TIME_CODE; + static ::javax::sound::midi::Sequencer$SyncMode * NO_SYNC; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_Sequencer$SyncMode__ diff --git a/libjava/javax/sound/midi/Sequencer.h b/libjava/javax/sound/midi/Sequencer.h new file mode 100644 index 00000000000..453634e413a --- /dev/null +++ b/libjava/javax/sound/midi/Sequencer.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Sequencer__ +#define __javax_sound_midi_Sequencer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class ControllerEventListener; + class MetaEventListener; + class MidiDevice$Info; + class Receiver; + class Sequence; + class Sequencer; + class Sequencer$SyncMode; + class Track; + class Transmitter; + } + } + } +} + +class javax::sound::midi::Sequencer : public ::java::lang::Object +{ + +public: + virtual void setSequence(::javax::sound::midi::Sequence *) = 0; + virtual void setSequence(::java::io::InputStream *) = 0; + virtual ::javax::sound::midi::Sequence * getSequence() = 0; + virtual void start() = 0; + virtual void stop() = 0; + virtual jboolean isRunning() = 0; + virtual void startRecording() = 0; + virtual void stopRecording() = 0; + virtual jboolean isRecording() = 0; + virtual void recordEnable(::javax::sound::midi::Track *, jint) = 0; + virtual void recordDisable(::javax::sound::midi::Track *) = 0; + virtual jfloat getTempoInBPM() = 0; + virtual void setTempoInBPM(jfloat) = 0; + virtual jfloat getTempoInMPQ() = 0; + virtual void setTempoInMPQ(jfloat) = 0; + virtual void setTempoFactor(jfloat) = 0; + virtual jfloat getTempoFactor() = 0; + virtual jlong getTickLength() = 0; + virtual jlong getTickPosition() = 0; + virtual void setTickPosition(jlong) = 0; + virtual jlong getMicrosecondLength() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual void setMicrosecondPosition(jlong) = 0; + virtual void setMasterSyncMode(::javax::sound::midi::Sequencer$SyncMode *) = 0; + virtual ::javax::sound::midi::Sequencer$SyncMode * getMasterSyncMode() = 0; + virtual JArray< ::javax::sound::midi::Sequencer$SyncMode * > * getMasterSyncModes() = 0; + virtual void setSlaveSyncMode(::javax::sound::midi::Sequencer$SyncMode *) = 0; + virtual ::javax::sound::midi::Sequencer$SyncMode * getSlaveSyncMode() = 0; + virtual JArray< ::javax::sound::midi::Sequencer$SyncMode * > * getSlaveSyncModes() = 0; + virtual void setTrackMute(jint, jboolean) = 0; + virtual jboolean getTrackMute(jint) = 0; + virtual void setTrackSolo(jint, jboolean) = 0; + virtual jboolean getTrackSolo(jint) = 0; + virtual jboolean addMetaEventListener(::javax::sound::midi::MetaEventListener *) = 0; + virtual void removeMetaEventListener(::javax::sound::midi::MetaEventListener *) = 0; + virtual JArray< jint > * addControllerEventListener(::javax::sound::midi::ControllerEventListener *, JArray< jint > *) = 0; + virtual JArray< jint > * removeControllerEventListener(::javax::sound::midi::ControllerEventListener *, JArray< jint > *) = 0; + virtual ::javax::sound::midi::MidiDevice$Info * getDeviceInfo() = 0; + virtual void open() = 0; + virtual void close() = 0; + virtual jboolean isOpen() = 0; + virtual jint getMaxReceivers() = 0; + virtual jint getMaxTransmitters() = 0; + virtual ::javax::sound::midi::Receiver * getReceiver() = 0; + virtual ::javax::sound::midi::Transmitter * getTransmitter() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_Sequencer__ diff --git a/libjava/javax/sound/midi/ShortMessage.h b/libjava/javax/sound/midi/ShortMessage.h new file mode 100644 index 00000000000..7a5872cd8ec --- /dev/null +++ b/libjava/javax/sound/midi/ShortMessage.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_ShortMessage__ +#define __javax_sound_midi_ShortMessage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class ShortMessage; + } + } + } +} + +class javax::sound::midi::ShortMessage : public ::javax::sound::midi::MidiMessage +{ + +public: + ShortMessage(); +public: // actually protected + ShortMessage(JArray< jbyte > *); +public: + virtual void setMessage(jint, jint, jint); + virtual void setMessage(jint, jint, jint, jint); + virtual void setMessage(jint); +public: // actually protected + virtual jint getDataLength(jint); +public: + virtual jint getChannel(); + virtual jint getCommand(); + virtual jint getData1(); + virtual jint getData2(); + virtual ::java::lang::Object * clone(); + static const jint MIDI_TIME_CODE = 241; + static const jint SONG_POSITION_POINTER = 242; + static const jint SONG_SELECT = 243; + static const jint TUNE_REQUEST = 246; + static const jint END_OF_EXCLUSIVE = 247; + static const jint TIMING_CLOCK = 248; + static const jint START = 250; + static const jint CONTINUE = 251; + static const jint STOP = 252; + static const jint ACTIVE_SENSING = 254; + static const jint SYSTEM_RESET = 255; + static const jint NOTE_OFF = 128; + static const jint NOTE_ON = 144; + static const jint POLY_PRESSURE = 160; + static const jint CONTROL_CHANGE = 176; + static const jint PROGRAM_CHANGE = 192; + static const jint CHANNEL_PRESSURE = 208; + static const jint PITCH_BEND = 224; +private: + static JArray< jbyte > * defaultMessage; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_ShortMessage__ diff --git a/libjava/javax/sound/midi/Soundbank.h b/libjava/javax/sound/midi/Soundbank.h new file mode 100644 index 00000000000..8890388b827 --- /dev/null +++ b/libjava/javax/sound/midi/Soundbank.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Soundbank__ +#define __javax_sound_midi_Soundbank__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Instrument; + class Patch; + class Soundbank; + class SoundbankResource; + } + } + } +} + +class javax::sound::midi::Soundbank : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName() = 0; + virtual ::java::lang::String * getVersion() = 0; + virtual ::java::lang::String * getVendor() = 0; + virtual ::java::lang::String * getDescription() = 0; + virtual JArray< ::javax::sound::midi::SoundbankResource * > * getResources() = 0; + virtual JArray< ::javax::sound::midi::Instrument * > * getInstruments() = 0; + virtual ::javax::sound::midi::Instrument * getInstrument(::javax::sound::midi::Patch *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_Soundbank__ diff --git a/libjava/javax/sound/midi/SoundbankResource.h b/libjava/javax/sound/midi/SoundbankResource.h new file mode 100644 index 00000000000..19562681035 --- /dev/null +++ b/libjava/javax/sound/midi/SoundbankResource.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_SoundbankResource__ +#define __javax_sound_midi_SoundbankResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Soundbank; + class SoundbankResource; + } + } + } +} + +class javax::sound::midi::SoundbankResource : public ::java::lang::Object +{ + +public: // actually protected + SoundbankResource(::javax::sound::midi::Soundbank *, ::java::lang::String *, ::java::lang::Class *); +public: + virtual ::javax::sound::midi::Soundbank * getSoundbank(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::Class * getDataClass(); + virtual ::java::lang::Object * getData() = 0; +private: + ::javax::sound::midi::Soundbank * __attribute__((aligned(__alignof__( ::java::lang::Object)))) soundbank; + ::java::lang::String * name; + ::java::lang::Class * dataClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_SoundbankResource__ diff --git a/libjava/javax/sound/midi/Synthesizer.h b/libjava/javax/sound/midi/Synthesizer.h new file mode 100644 index 00000000000..1ccc094bed0 --- /dev/null +++ b/libjava/javax/sound/midi/Synthesizer.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Synthesizer__ +#define __javax_sound_midi_Synthesizer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Instrument; + class MidiChannel; + class MidiDevice$Info; + class Patch; + class Receiver; + class Soundbank; + class Synthesizer; + class Transmitter; + class VoiceStatus; + } + } + } +} + +class javax::sound::midi::Synthesizer : public ::java::lang::Object +{ + +public: + virtual jint getMaxPolyphony() = 0; + virtual jlong getLatency() = 0; + virtual JArray< ::javax::sound::midi::MidiChannel * > * getChannels() = 0; + virtual JArray< ::javax::sound::midi::VoiceStatus * > * getVoiceStatus() = 0; + virtual jboolean isSoundbankSupported(::javax::sound::midi::Soundbank *) = 0; + virtual jboolean loadInstrument(::javax::sound::midi::Instrument *) = 0; + virtual void unloadInstrument(::javax::sound::midi::Instrument *) = 0; + virtual jboolean remapInstrument(::javax::sound::midi::Instrument *, ::javax::sound::midi::Instrument *) = 0; + virtual ::javax::sound::midi::Soundbank * getDefaultSoundbank() = 0; + virtual JArray< ::javax::sound::midi::Instrument * > * getAvailableInstruments() = 0; + virtual JArray< ::javax::sound::midi::Instrument * > * getLoadedInstruments() = 0; + virtual jboolean loadAllInstruments(::javax::sound::midi::Soundbank *) = 0; + virtual void unloadAllInstruments(::javax::sound::midi::Soundbank *) = 0; + virtual jboolean loadInstruments(::javax::sound::midi::Soundbank *, JArray< ::javax::sound::midi::Patch * > *) = 0; + virtual void unloadInstruments(::javax::sound::midi::Soundbank *, JArray< ::javax::sound::midi::Patch * > *) = 0; + virtual ::javax::sound::midi::MidiDevice$Info * getDeviceInfo() = 0; + virtual void open() = 0; + virtual void close() = 0; + virtual jboolean isOpen() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual jint getMaxReceivers() = 0; + virtual jint getMaxTransmitters() = 0; + virtual ::javax::sound::midi::Receiver * getReceiver() = 0; + virtual ::javax::sound::midi::Transmitter * getTransmitter() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_Synthesizer__ diff --git a/libjava/javax/sound/midi/SysexMessage.h b/libjava/javax/sound/midi/SysexMessage.h new file mode 100644 index 00000000000..e6901f283d6 --- /dev/null +++ b/libjava/javax/sound/midi/SysexMessage.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_SysexMessage__ +#define __javax_sound_midi_SysexMessage__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class SysexMessage; + } + } + } +} + +class javax::sound::midi::SysexMessage : public ::javax::sound::midi::MidiMessage +{ + +public: + SysexMessage(); +public: // actually protected + SysexMessage(JArray< jbyte > *); +public: + virtual void setMessage(JArray< jbyte > *, jint); + virtual void setMessage(jint, JArray< jbyte > *, jint); + virtual JArray< jbyte > * getData(); + virtual ::java::lang::Object * clone(); + static const jint SYSTEM_EXCLUSIVE = 240; + static const jint SPECIAL_SYSTEM_EXCLUSIVE = 247; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_SysexMessage__ diff --git a/libjava/javax/sound/midi/Track.h b/libjava/javax/sound/midi/Track.h new file mode 100644 index 00000000000..9f544596541 --- /dev/null +++ b/libjava/javax/sound/midi/Track.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Track__ +#define __javax_sound_midi_Track__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiEvent; + class Track; + } + } + } +} + +class javax::sound::midi::Track : public ::java::lang::Object +{ + +public: // actually package-private + Track(); +public: + virtual jboolean add(::javax::sound::midi::MidiEvent *); + virtual jboolean remove(::javax::sound::midi::MidiEvent *); + virtual ::javax::sound::midi::MidiEvent * get(jint); + virtual jint size(); + virtual jlong ticks(); +public: // actually package-private + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) events; +private: + ::java::util::HashSet * eventSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_Track__ diff --git a/libjava/javax/sound/midi/Transmitter.h b/libjava/javax/sound/midi/Transmitter.h new file mode 100644 index 00000000000..039f311bdf3 --- /dev/null +++ b/libjava/javax/sound/midi/Transmitter.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_Transmitter__ +#define __javax_sound_midi_Transmitter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Receiver; + class Transmitter; + } + } + } +} + +class javax::sound::midi::Transmitter : public ::java::lang::Object +{ + +public: + virtual void setReceiver(::javax::sound::midi::Receiver *) = 0; + virtual ::javax::sound::midi::Receiver * getReceiver() = 0; + virtual void close() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_midi_Transmitter__ diff --git a/libjava/javax/sound/midi/VoiceStatus.h b/libjava/javax/sound/midi/VoiceStatus.h new file mode 100644 index 00000000000..6e25a3457d1 --- /dev/null +++ b/libjava/javax/sound/midi/VoiceStatus.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_VoiceStatus__ +#define __javax_sound_midi_VoiceStatus__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class VoiceStatus; + } + } + } +} + +class javax::sound::midi::VoiceStatus : public ::java::lang::Object +{ + +public: + VoiceStatus(); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) active; + jint channel; + jint bank; + jint program; + jint note; + jint volume; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_VoiceStatus__ diff --git a/libjava/javax/sound/midi/spi/MidiDeviceProvider.h b/libjava/javax/sound/midi/spi/MidiDeviceProvider.h new file mode 100644 index 00000000000..3e172aa55a9 --- /dev/null +++ b/libjava/javax/sound/midi/spi/MidiDeviceProvider.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_spi_MidiDeviceProvider__ +#define __javax_sound_midi_spi_MidiDeviceProvider__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class MidiDevice; + class MidiDevice$Info; + namespace spi + { + class MidiDeviceProvider; + } + } + } + } +} + +class javax::sound::midi::spi::MidiDeviceProvider : public ::java::lang::Object +{ + +public: + MidiDeviceProvider(); + virtual jboolean isDeviceSupported(::javax::sound::midi::MidiDevice$Info *); + virtual JArray< ::javax::sound::midi::MidiDevice$Info * > * getDeviceInfo() = 0; + virtual ::javax::sound::midi::MidiDevice * getDevice(::javax::sound::midi::MidiDevice$Info *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_spi_MidiDeviceProvider__ diff --git a/libjava/javax/sound/midi/spi/MidiFileReader.h b/libjava/javax/sound/midi/spi/MidiFileReader.h new file mode 100644 index 00000000000..a389294bb15 --- /dev/null +++ b/libjava/javax/sound/midi/spi/MidiFileReader.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_spi_MidiFileReader__ +#define __javax_sound_midi_spi_MidiFileReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class MidiFileFormat; + class Sequence; + namespace spi + { + class MidiFileReader; + } + } + } + } +} + +class javax::sound::midi::spi::MidiFileReader : public ::java::lang::Object +{ + +public: + MidiFileReader(); + virtual ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::io::InputStream *) = 0; + virtual ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::net::URL *) = 0; + virtual ::javax::sound::midi::MidiFileFormat * getMidiFileFormat(::java::io::File *) = 0; + virtual ::javax::sound::midi::Sequence * getSequence(::java::io::InputStream *) = 0; + virtual ::javax::sound::midi::Sequence * getSequence(::java::net::URL *) = 0; + virtual ::javax::sound::midi::Sequence * getSequence(::java::io::File *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_spi_MidiFileReader__ diff --git a/libjava/javax/sound/midi/spi/MidiFileWriter.h b/libjava/javax/sound/midi/spi/MidiFileWriter.h new file mode 100644 index 00000000000..d5144faae97 --- /dev/null +++ b/libjava/javax/sound/midi/spi/MidiFileWriter.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_spi_MidiFileWriter__ +#define __javax_sound_midi_spi_MidiFileWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace midi + { + class Sequence; + namespace spi + { + class MidiFileWriter; + } + } + } + } +} + +class javax::sound::midi::spi::MidiFileWriter : public ::java::lang::Object +{ + +public: + MidiFileWriter(); + virtual JArray< jint > * getMidiFileTypes() = 0; + virtual JArray< jint > * getMidiFileTypes(::javax::sound::midi::Sequence *) = 0; + virtual jboolean isFileTypeSupported(jint); + virtual jboolean isFileTypeSupported(jint, ::javax::sound::midi::Sequence *); + virtual jint write(::javax::sound::midi::Sequence *, jint, ::java::io::OutputStream *) = 0; + virtual jint write(::javax::sound::midi::Sequence *, jint, ::java::io::File *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_spi_MidiFileWriter__ diff --git a/libjava/javax/sound/midi/spi/SoundbankReader.h b/libjava/javax/sound/midi/spi/SoundbankReader.h new file mode 100644 index 00000000000..a12e20b9fe8 --- /dev/null +++ b/libjava/javax/sound/midi/spi/SoundbankReader.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_midi_spi_SoundbankReader__ +#define __javax_sound_midi_spi_SoundbankReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace midi + { + class Soundbank; + namespace spi + { + class SoundbankReader; + } + } + } + } +} + +class javax::sound::midi::spi::SoundbankReader : public ::java::lang::Object +{ + +public: + SoundbankReader(); + virtual ::javax::sound::midi::Soundbank * getSoundbank(::java::net::URL *) = 0; + virtual ::javax::sound::midi::Soundbank * getSoundbank(::java::io::InputStream *) = 0; + virtual ::javax::sound::midi::Soundbank * getSoundbank(::java::io::File *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_midi_spi_SoundbankReader__ diff --git a/libjava/javax/sound/sampled/AudioFileFormat$Type.h b/libjava/javax/sound/sampled/AudioFileFormat$Type.h new file mode 100644 index 00000000000..cc44a55b8ec --- /dev/null +++ b/libjava/javax/sound/sampled/AudioFileFormat$Type.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioFileFormat$Type__ +#define __javax_sound_sampled_AudioFileFormat$Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat$Type; + } + } + } +} + +class javax::sound::sampled::AudioFileFormat$Type : public ::java::lang::Object +{ + +public: + AudioFileFormat$Type(::java::lang::String *, ::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * getExtension(); + virtual ::java::lang::String * toString(); + static ::javax::sound::sampled::AudioFileFormat$Type * AIFC; + static ::javax::sound::sampled::AudioFileFormat$Type * AIFF; + static ::javax::sound::sampled::AudioFileFormat$Type * AU; + static ::javax::sound::sampled::AudioFileFormat$Type * SND; + static ::javax::sound::sampled::AudioFileFormat$Type * WAVE; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * extension; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioFileFormat$Type__ diff --git a/libjava/javax/sound/sampled/AudioFileFormat.h b/libjava/javax/sound/sampled/AudioFileFormat.h new file mode 100644 index 00000000000..f5171f516f7 --- /dev/null +++ b/libjava/javax/sound/sampled/AudioFileFormat.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioFileFormat__ +#define __javax_sound_sampled_AudioFileFormat__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat; + class AudioFileFormat$Type; + class AudioFormat; + } + } + } +} + +class javax::sound::sampled::AudioFileFormat : public ::java::lang::Object +{ + +public: + AudioFileFormat(::javax::sound::sampled::AudioFileFormat$Type *, ::javax::sound::sampled::AudioFormat *, jint); + AudioFileFormat(::javax::sound::sampled::AudioFileFormat$Type *, ::javax::sound::sampled::AudioFormat *, jint, ::java::util::Map *); +public: // actually protected + AudioFileFormat(::javax::sound::sampled::AudioFileFormat$Type *, jint, ::javax::sound::sampled::AudioFormat *, jint); +public: + virtual jint getByteLength(); + virtual ::javax::sound::sampled::AudioFormat * getFormat(); + virtual jint getFrameLength(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual ::javax::sound::sampled::AudioFileFormat$Type * getType(); + virtual ::java::util::Map * properties(); + virtual ::java::lang::String * toString(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) byteLength; + ::javax::sound::sampled::AudioFormat * format; + ::javax::sound::sampled::AudioFileFormat$Type * type; + jint frameLength; + ::java::util::Map * properties__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioFileFormat__ diff --git a/libjava/javax/sound/sampled/AudioFormat$Encoding.h b/libjava/javax/sound/sampled/AudioFormat$Encoding.h new file mode 100644 index 00000000000..74b37793d67 --- /dev/null +++ b/libjava/javax/sound/sampled/AudioFormat$Encoding.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioFormat$Encoding__ +#define __javax_sound_sampled_AudioFormat$Encoding__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat$Encoding; + } + } + } +} + +class javax::sound::sampled::AudioFormat$Encoding : public ::java::lang::Object +{ + +public: + AudioFormat$Encoding(::java::lang::String *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); + static ::javax::sound::sampled::AudioFormat$Encoding * ALAW; + static ::javax::sound::sampled::AudioFormat$Encoding * PCM_SIGNED; + static ::javax::sound::sampled::AudioFormat$Encoding * PCM_UNSIGNED; + static ::javax::sound::sampled::AudioFormat$Encoding * ULAW; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioFormat$Encoding__ diff --git a/libjava/javax/sound/sampled/AudioFormat.h b/libjava/javax/sound/sampled/AudioFormat.h new file mode 100644 index 00000000000..5166524d9f8 --- /dev/null +++ b/libjava/javax/sound/sampled/AudioFormat.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioFormat__ +#define __javax_sound_sampled_AudioFormat__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class AudioFormat$Encoding; + } + } + } +} + +class javax::sound::sampled::AudioFormat : public ::java::lang::Object +{ + +public: + AudioFormat(::javax::sound::sampled::AudioFormat$Encoding *, jfloat, jint, jint, jint, jfloat, jboolean); + AudioFormat(::javax::sound::sampled::AudioFormat$Encoding *, jfloat, jint, jint, jint, jfloat, jboolean, ::java::util::Map *); + AudioFormat(jfloat, jint, jint, jboolean, jboolean); + virtual jint getChannels(); + virtual ::javax::sound::sampled::AudioFormat$Encoding * getEncoding(); + virtual jfloat getFrameRate(); + virtual jint getFrameSize(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual jfloat getSampleRate(); + virtual jint getSampleSizeInBits(); + virtual jboolean isBigEndian(); + virtual jboolean matches(::javax::sound::sampled::AudioFormat *); + virtual ::java::util::Map * properties(); + virtual ::java::lang::String * toString(); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) bigEndian; + jint channels; + ::javax::sound::sampled::AudioFormat$Encoding * encoding; + jfloat frameRate; + jint frameSize; + jfloat sampleRate; + jint sampleSizeInBits; +private: + ::java::util::Map * properties__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioFormat__ diff --git a/libjava/javax/sound/sampled/AudioInputStream$TargetInputStream.h b/libjava/javax/sound/sampled/AudioInputStream$TargetInputStream.h new file mode 100644 index 00000000000..a4d4b195d9c --- /dev/null +++ b/libjava/javax/sound/sampled/AudioInputStream$TargetInputStream.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioInputStream$TargetInputStream__ +#define __javax_sound_sampled_AudioInputStream$TargetInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioInputStream$TargetInputStream; + class TargetDataLine; + } + } + } +} + +class javax::sound::sampled::AudioInputStream$TargetInputStream : public ::java::io::InputStream +{ + +public: + AudioInputStream$TargetInputStream(::javax::sound::sampled::TargetDataLine *); + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); +private: + ::javax::sound::sampled::TargetDataLine * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) line; + JArray< jbyte > * buf; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioInputStream$TargetInputStream__ diff --git a/libjava/javax/sound/sampled/AudioInputStream.h b/libjava/javax/sound/sampled/AudioInputStream.h new file mode 100644 index 00000000000..5e07e8dc1a7 --- /dev/null +++ b/libjava/javax/sound/sampled/AudioInputStream.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioInputStream__ +#define __javax_sound_sampled_AudioInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class AudioInputStream; + class TargetDataLine; + } + } + } +} + +class javax::sound::sampled::AudioInputStream : public ::java::io::InputStream +{ + +public: + AudioInputStream(::java::io::InputStream *, ::javax::sound::sampled::AudioFormat *, jlong); + AudioInputStream(::javax::sound::sampled::TargetDataLine *); + virtual jint available(); + virtual void close(); + virtual ::javax::sound::sampled::AudioFormat * getFormat(); + virtual jlong getFrameLength(); + virtual void mark(jint); + virtual jboolean markSupported(); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual void reset(); + virtual jlong skip(jlong); +public: // actually protected + ::javax::sound::sampled::AudioFormat * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) format; + jlong frameLength; + jlong framePos; + jint frameSize; +private: + ::java::io::InputStream * input; + jlong markedFramePos; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioInputStream__ diff --git a/libjava/javax/sound/sampled/AudioPermission.h b/libjava/javax/sound/sampled/AudioPermission.h new file mode 100644 index 00000000000..e83637b5033 --- /dev/null +++ b/libjava/javax/sound/sampled/AudioPermission.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioPermission__ +#define __javax_sound_sampled_AudioPermission__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioPermission; + } + } + } +} + +class javax::sound::sampled::AudioPermission : public ::java::security::BasicPermission +{ + +public: + AudioPermission(::java::lang::String *); + AudioPermission(::java::lang::String *, ::java::lang::String *); +private: + static const jlong serialVersionUID = -5518053473477801126LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioPermission__ diff --git a/libjava/javax/sound/sampled/AudioSystem.h b/libjava/javax/sound/sampled/AudioSystem.h new file mode 100644 index 00000000000..9b490ded804 --- /dev/null +++ b/libjava/javax/sound/sampled/AudioSystem.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_AudioSystem__ +#define __javax_sound_sampled_AudioSystem__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat; + class AudioFileFormat$Type; + class AudioFormat; + class AudioFormat$Encoding; + class AudioInputStream; + class AudioSystem; + class Clip; + class Line; + class Line$Info; + class Mixer; + class Mixer$Info; + class SourceDataLine; + class TargetDataLine; + } + } + } +} + +class javax::sound::sampled::AudioSystem : public ::java::lang::Object +{ + + AudioSystem(); +public: + static ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::File *); + static ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *); + static ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::net::URL *); + static JArray< ::javax::sound::sampled::AudioFileFormat$Type * > * getAudioFileTypes(); + static JArray< ::javax::sound::sampled::AudioFileFormat$Type * > * getAudioFileTypes(::javax::sound::sampled::AudioInputStream *); + static ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::javax::sound::sampled::AudioFormat$Encoding *, ::javax::sound::sampled::AudioInputStream *); + static ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::javax::sound::sampled::AudioFormat *, ::javax::sound::sampled::AudioInputStream *); + static ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::File *); + static ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::InputStream *); + static ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::net::URL *); + static ::javax::sound::sampled::Clip * getClip(); + static ::javax::sound::sampled::Clip * getClip(::javax::sound::sampled::Mixer$Info *); + static ::javax::sound::sampled::Line * getLine(::javax::sound::sampled::Line$Info *); + static ::javax::sound::sampled::Mixer * getMixer(::javax::sound::sampled::Mixer$Info *); + static JArray< ::javax::sound::sampled::Mixer$Info * > * getMixerInfo(); + static ::javax::sound::sampled::SourceDataLine * getSourceDataLine(::javax::sound::sampled::AudioFormat *); + static ::javax::sound::sampled::SourceDataLine * getSourceDataLine(::javax::sound::sampled::AudioFormat *, ::javax::sound::sampled::Mixer$Info *); + static JArray< ::javax::sound::sampled::Line$Info * > * getSourceLineInfo(::javax::sound::sampled::Line$Info *); + static ::javax::sound::sampled::TargetDataLine * getTargetDataLine(::javax::sound::sampled::AudioFormat *); + static ::javax::sound::sampled::TargetDataLine * getTargetDataLine(::javax::sound::sampled::AudioFormat *, ::javax::sound::sampled::Mixer$Info *); + static JArray< ::javax::sound::sampled::AudioFormat$Encoding * > * getTargetEncodings(::javax::sound::sampled::AudioFormat$Encoding *); + static JArray< ::javax::sound::sampled::AudioFormat$Encoding * > * getTargetEncodings(::javax::sound::sampled::AudioFormat *); + static JArray< ::javax::sound::sampled::AudioFormat * > * getTargetFormats(::javax::sound::sampled::AudioFormat$Encoding *, ::javax::sound::sampled::AudioFormat *); + static JArray< ::javax::sound::sampled::Line$Info * > * getTargetLineInfo(::javax::sound::sampled::Line$Info *); + static jboolean isConversionSupported(::javax::sound::sampled::AudioFormat$Encoding *, ::javax::sound::sampled::AudioFormat *); + static jboolean isConversionSupported(::javax::sound::sampled::AudioFormat *, ::javax::sound::sampled::AudioFormat *); +private: + static jboolean isFileTypeSupported(JArray< ::javax::sound::sampled::AudioFileFormat$Type * > *, ::javax::sound::sampled::AudioFileFormat$Type *); +public: + static jboolean isFileTypeSupported(::javax::sound::sampled::AudioFileFormat$Type *); + static jboolean isFileTypeSupported(::javax::sound::sampled::AudioFileFormat$Type *, ::javax::sound::sampled::AudioInputStream *); + static jboolean isLineSupported(::javax::sound::sampled::Line$Info *); + static jint write(::javax::sound::sampled::AudioInputStream *, ::javax::sound::sampled::AudioFileFormat$Type *, ::java::io::File *); + static jint write(::javax::sound::sampled::AudioInputStream *, ::javax::sound::sampled::AudioFileFormat$Type *, ::java::io::OutputStream *); + static const jint NOT_SPECIFIED = -1; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_AudioSystem__ diff --git a/libjava/javax/sound/sampled/BooleanControl$Type.h b/libjava/javax/sound/sampled/BooleanControl$Type.h new file mode 100644 index 00000000000..a7058efe4ae --- /dev/null +++ b/libjava/javax/sound/sampled/BooleanControl$Type.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_BooleanControl$Type__ +#define __javax_sound_sampled_BooleanControl$Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class BooleanControl$Type; + } + } + } +} + +class javax::sound::sampled::BooleanControl$Type : public ::javax::sound::sampled::Control$Type +{ + +public: // actually protected + BooleanControl$Type(::java::lang::String *); +public: + static ::javax::sound::sampled::BooleanControl$Type * APPLY_REVERB; + static ::javax::sound::sampled::BooleanControl$Type * MUTE; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_BooleanControl$Type__ diff --git a/libjava/javax/sound/sampled/BooleanControl.h b/libjava/javax/sound/sampled/BooleanControl.h new file mode 100644 index 00000000000..efb3ab4715d --- /dev/null +++ b/libjava/javax/sound/sampled/BooleanControl.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_BooleanControl__ +#define __javax_sound_sampled_BooleanControl__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class BooleanControl; + class BooleanControl$Type; + } + } + } +} + +class javax::sound::sampled::BooleanControl : public ::javax::sound::sampled::Control +{ + +public: // actually protected + BooleanControl(::javax::sound::sampled::BooleanControl$Type *, jboolean); + BooleanControl(::javax::sound::sampled::BooleanControl$Type *, jboolean, ::java::lang::String *, ::java::lang::String *); +public: + virtual ::java::lang::String * getStateLabel(jboolean); + virtual jboolean getValue(); + virtual void setValue(jboolean); + virtual ::java::lang::String * toString(); +private: + ::javax::sound::sampled::BooleanControl$Type * __attribute__((aligned(__alignof__( ::javax::sound::sampled::Control)))) type; + jboolean value; + ::java::lang::String * trueLabel; + ::java::lang::String * falseLabel; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_BooleanControl__ diff --git a/libjava/javax/sound/sampled/Clip.h b/libjava/javax/sound/sampled/Clip.h new file mode 100644 index 00000000000..ab6c5582812 --- /dev/null +++ b/libjava/javax/sound/sampled/Clip.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Clip__ +#define __javax_sound_sampled_Clip__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class AudioInputStream; + class Clip; + class Control; + class Control$Type; + class Line$Info; + class LineListener; + } + } + } +} + +class javax::sound::sampled::Clip : public ::java::lang::Object +{ + +public: + virtual jint getFrameLength() = 0; + virtual jlong getMicrosecondLength() = 0; + virtual void loop(jint) = 0; + virtual void open(::javax::sound::sampled::AudioFormat *, JArray< jbyte > *, jint, jint) = 0; + virtual void open(::javax::sound::sampled::AudioInputStream *) = 0; + virtual void setFramePosition(jint) = 0; + virtual void setLoopPoints(jint, jint) = 0; + virtual void setMicrosecondPosition(jlong) = 0; + virtual jint available() = 0; + virtual void drain() = 0; + virtual void flush() = 0; + virtual jint getBufferSize() = 0; + virtual ::javax::sound::sampled::AudioFormat * getFormat() = 0; + virtual jint getFramePosition() = 0; + virtual jfloat getLevel() = 0; + virtual jlong getLongFramePosition() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual jboolean isActive() = 0; + virtual jboolean isRunning() = 0; + virtual void start() = 0; + virtual void stop() = 0; + virtual void addLineListener(::javax::sound::sampled::LineListener *) = 0; + virtual void close() = 0; + virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *) = 0; + virtual JArray< ::javax::sound::sampled::Control * > * getControls() = 0; + virtual ::javax::sound::sampled::Line$Info * getLineInfo() = 0; + virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *) = 0; + virtual jboolean isOpen() = 0; + virtual void open() = 0; + virtual void removeLineListener(::javax::sound::sampled::LineListener *) = 0; + static const jint LOOP_CONTINUOUSLY = -1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_Clip__ diff --git a/libjava/javax/sound/sampled/CompoundControl$Type.h b/libjava/javax/sound/sampled/CompoundControl$Type.h new file mode 100644 index 00000000000..ccbf51f1dd9 --- /dev/null +++ b/libjava/javax/sound/sampled/CompoundControl$Type.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_CompoundControl$Type__ +#define __javax_sound_sampled_CompoundControl$Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class CompoundControl$Type; + } + } + } +} + +class javax::sound::sampled::CompoundControl$Type : public ::javax::sound::sampled::Control$Type +{ + +public: // actually protected + CompoundControl$Type(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_CompoundControl$Type__ diff --git a/libjava/javax/sound/sampled/CompoundControl.h b/libjava/javax/sound/sampled/CompoundControl.h new file mode 100644 index 00000000000..d4438e56d62 --- /dev/null +++ b/libjava/javax/sound/sampled/CompoundControl.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_CompoundControl__ +#define __javax_sound_sampled_CompoundControl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class CompoundControl; + class CompoundControl$Type; + class Control; + } + } + } +} + +class javax::sound::sampled::CompoundControl : public ::javax::sound::sampled::Control +{ + +public: // actually protected + CompoundControl(::javax::sound::sampled::CompoundControl$Type *, JArray< ::javax::sound::sampled::Control * > *); +public: + virtual JArray< ::javax::sound::sampled::Control * > * getMemberControls(); + virtual ::java::lang::String * toString(); +private: + JArray< ::javax::sound::sampled::Control * > * __attribute__((aligned(__alignof__( ::javax::sound::sampled::Control)))) memberControls; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_CompoundControl__ diff --git a/libjava/javax/sound/sampled/Control$Type.h b/libjava/javax/sound/sampled/Control$Type.h new file mode 100644 index 00000000000..cf7043abe6a --- /dev/null +++ b/libjava/javax/sound/sampled/Control$Type.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Control$Type__ +#define __javax_sound_sampled_Control$Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Control$Type; + } + } + } +} + +class javax::sound::sampled::Control$Type : public ::java::lang::Object +{ + +public: // actually protected + Control$Type(::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 // __javax_sound_sampled_Control$Type__ diff --git a/libjava/javax/sound/sampled/Control.h b/libjava/javax/sound/sampled/Control.h new file mode 100644 index 00000000000..59dc5b14b81 --- /dev/null +++ b/libjava/javax/sound/sampled/Control.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Control__ +#define __javax_sound_sampled_Control__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Control; + class Control$Type; + } + } + } +} + +class javax::sound::sampled::Control : public ::java::lang::Object +{ + +public: // actually protected + Control(::javax::sound::sampled::Control$Type *); +public: + virtual ::javax::sound::sampled::Control$Type * getType(); + virtual ::java::lang::String * toString(); +private: + ::javax::sound::sampled::Control$Type * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_Control__ diff --git a/libjava/javax/sound/sampled/DataLine$Info.h b/libjava/javax/sound/sampled/DataLine$Info.h new file mode 100644 index 00000000000..ea6322eae57 --- /dev/null +++ b/libjava/javax/sound/sampled/DataLine$Info.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_DataLine$Info__ +#define __javax_sound_sampled_DataLine$Info__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class DataLine$Info; + class Line$Info; + } + } + } +} + +class javax::sound::sampled::DataLine$Info : public ::javax::sound::sampled::Line$Info +{ + +public: + DataLine$Info(::java::lang::Class *, ::javax::sound::sampled::AudioFormat *); + DataLine$Info(::java::lang::Class *, JArray< ::javax::sound::sampled::AudioFormat * > *, jint, jint); + DataLine$Info(::java::lang::Class *, ::javax::sound::sampled::AudioFormat *, jint); + virtual JArray< ::javax::sound::sampled::AudioFormat * > * getFormats(); + virtual jint getMaxBufferSize(); + virtual jint getMinBufferSize(); + virtual jboolean isFormatSupported(::javax::sound::sampled::AudioFormat *); + virtual jboolean matches(::javax::sound::sampled::Line$Info *); + virtual ::java::lang::String * toString(); +private: + jint __attribute__((aligned(__alignof__( ::javax::sound::sampled::Line$Info)))) minBufferSize; + jint maxBufferSize; + JArray< ::javax::sound::sampled::AudioFormat * > * formats; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_DataLine$Info__ diff --git a/libjava/javax/sound/sampled/DataLine.h b/libjava/javax/sound/sampled/DataLine.h new file mode 100644 index 00000000000..257fd9b7781 --- /dev/null +++ b/libjava/javax/sound/sampled/DataLine.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_DataLine__ +#define __javax_sound_sampled_DataLine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class Control; + class Control$Type; + class DataLine; + class Line$Info; + class LineListener; + } + } + } +} + +class javax::sound::sampled::DataLine : public ::java::lang::Object +{ + +public: + virtual jint available() = 0; + virtual void drain() = 0; + virtual void flush() = 0; + virtual jint getBufferSize() = 0; + virtual ::javax::sound::sampled::AudioFormat * getFormat() = 0; + virtual jint getFramePosition() = 0; + virtual jfloat getLevel() = 0; + virtual jlong getLongFramePosition() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual jboolean isActive() = 0; + virtual jboolean isRunning() = 0; + virtual void start() = 0; + virtual void stop() = 0; + virtual void addLineListener(::javax::sound::sampled::LineListener *) = 0; + virtual void close() = 0; + virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *) = 0; + virtual JArray< ::javax::sound::sampled::Control * > * getControls() = 0; + virtual ::javax::sound::sampled::Line$Info * getLineInfo() = 0; + virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *) = 0; + virtual jboolean isOpen() = 0; + virtual void open() = 0; + virtual void removeLineListener(::javax::sound::sampled::LineListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_DataLine__ diff --git a/libjava/javax/sound/sampled/EnumControl$Type.h b/libjava/javax/sound/sampled/EnumControl$Type.h new file mode 100644 index 00000000000..dce2cc12f62 --- /dev/null +++ b/libjava/javax/sound/sampled/EnumControl$Type.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_EnumControl$Type__ +#define __javax_sound_sampled_EnumControl$Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class EnumControl$Type; + } + } + } +} + +class javax::sound::sampled::EnumControl$Type : public ::javax::sound::sampled::Control$Type +{ + +public: // actually protected + EnumControl$Type(::java::lang::String *); +public: + static ::javax::sound::sampled::EnumControl$Type * REVERB; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_EnumControl$Type__ diff --git a/libjava/javax/sound/sampled/EnumControl.h b/libjava/javax/sound/sampled/EnumControl.h new file mode 100644 index 00000000000..618d19c16de --- /dev/null +++ b/libjava/javax/sound/sampled/EnumControl.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_EnumControl__ +#define __javax_sound_sampled_EnumControl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class EnumControl; + class EnumControl$Type; + } + } + } +} + +class javax::sound::sampled::EnumControl : public ::javax::sound::sampled::Control +{ + +public: // actually protected + EnumControl(::javax::sound::sampled::EnumControl$Type *, JArray< ::java::lang::Object * > *, ::java::lang::Object *); +public: + virtual ::java::lang::Object * getValue(); + virtual JArray< ::java::lang::Object * > * getValues(); + virtual void setValue(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::javax::sound::sampled::Control)))) values; + ::java::lang::Object * value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_EnumControl__ diff --git a/libjava/javax/sound/sampled/FloatControl$Type.h b/libjava/javax/sound/sampled/FloatControl$Type.h new file mode 100644 index 00000000000..d14a4f9f10b --- /dev/null +++ b/libjava/javax/sound/sampled/FloatControl$Type.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_FloatControl$Type__ +#define __javax_sound_sampled_FloatControl$Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class FloatControl$Type; + } + } + } +} + +class javax::sound::sampled::FloatControl$Type : public ::javax::sound::sampled::Control$Type +{ + +public: // actually protected + FloatControl$Type(::java::lang::String *); +public: + static ::javax::sound::sampled::FloatControl$Type * AUX_RETURN; + static ::javax::sound::sampled::FloatControl$Type * AUX_SEND; + static ::javax::sound::sampled::FloatControl$Type * BALANCE; + static ::javax::sound::sampled::FloatControl$Type * MASTER_GAIN; + static ::javax::sound::sampled::FloatControl$Type * PAN; + static ::javax::sound::sampled::FloatControl$Type * REVERB_RETURN; + static ::javax::sound::sampled::FloatControl$Type * REVERB_SEND; + static ::javax::sound::sampled::FloatControl$Type * SAMPLE_RATE; + static ::javax::sound::sampled::FloatControl$Type * VOLUME; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_FloatControl$Type__ diff --git a/libjava/javax/sound/sampled/FloatControl.h b/libjava/javax/sound/sampled/FloatControl.h new file mode 100644 index 00000000000..3a7da025b9b --- /dev/null +++ b/libjava/javax/sound/sampled/FloatControl.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_FloatControl__ +#define __javax_sound_sampled_FloatControl__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class FloatControl; + class FloatControl$Type; + } + } + } +} + +class javax::sound::sampled::FloatControl : public ::javax::sound::sampled::Control +{ + +public: // actually protected + FloatControl(::javax::sound::sampled::FloatControl$Type *, jfloat, jfloat, jfloat, jint, jfloat, ::java::lang::String *); + FloatControl(::javax::sound::sampled::FloatControl$Type *, jfloat, jfloat, jfloat, jint, jfloat, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jfloat getMaximum(); + virtual ::java::lang::String * getMaxLabel(); + virtual ::java::lang::String * getMidLabel(); + virtual jfloat getMinimum(); + virtual ::java::lang::String * getMinLabel(); + virtual jfloat getPrecision(); + virtual ::java::lang::String * getUnits(); + virtual jint getUpdatePeriod(); + virtual jfloat getValue(); + virtual void setValue(jfloat); + virtual void shift(jfloat, jfloat, jint); + virtual ::java::lang::String * toString(); +private: + jfloat __attribute__((aligned(__alignof__( ::javax::sound::sampled::Control)))) minimum; + jfloat maximum; + jfloat precision; + jint updatePeriod; + jfloat value; + ::java::lang::String * units; + ::java::lang::String * minLabel; + ::java::lang::String * maxLabel; + ::java::lang::String * midLabel; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_FloatControl__ diff --git a/libjava/javax/sound/sampled/Line$Info.h b/libjava/javax/sound/sampled/Line$Info.h new file mode 100644 index 00000000000..982c0273204 --- /dev/null +++ b/libjava/javax/sound/sampled/Line$Info.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Line$Info__ +#define __javax_sound_sampled_Line$Info__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Line$Info; + } + } + } +} + +class javax::sound::sampled::Line$Info : public ::java::lang::Object +{ + +public: + Line$Info(::java::lang::Class *); + virtual ::java::lang::Class * getLineClass(); + virtual jboolean matches(::javax::sound::sampled::Line$Info *); + virtual ::java::lang::String * toString(); +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) klass; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_Line$Info__ diff --git a/libjava/javax/sound/sampled/Line.h b/libjava/javax/sound/sampled/Line.h new file mode 100644 index 00000000000..7f6552d8d87 --- /dev/null +++ b/libjava/javax/sound/sampled/Line.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Line__ +#define __javax_sound_sampled_Line__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Control; + class Control$Type; + class Line; + class Line$Info; + class LineListener; + } + } + } +} + +class javax::sound::sampled::Line : public ::java::lang::Object +{ + +public: + virtual void addLineListener(::javax::sound::sampled::LineListener *) = 0; + virtual void close() = 0; + virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *) = 0; + virtual JArray< ::javax::sound::sampled::Control * > * getControls() = 0; + virtual ::javax::sound::sampled::Line$Info * getLineInfo() = 0; + virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *) = 0; + virtual jboolean isOpen() = 0; + virtual void open() = 0; + virtual void removeLineListener(::javax::sound::sampled::LineListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_Line__ diff --git a/libjava/javax/sound/sampled/LineEvent$Type.h b/libjava/javax/sound/sampled/LineEvent$Type.h new file mode 100644 index 00000000000..c509deca221 --- /dev/null +++ b/libjava/javax/sound/sampled/LineEvent$Type.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_LineEvent$Type__ +#define __javax_sound_sampled_LineEvent$Type__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class LineEvent$Type; + } + } + } +} + +class javax::sound::sampled::LineEvent$Type : public ::java::lang::Object +{ + +public: // actually protected + LineEvent$Type(::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); + static ::javax::sound::sampled::LineEvent$Type * CLOSE; + static ::javax::sound::sampled::LineEvent$Type * OPEN; + static ::javax::sound::sampled::LineEvent$Type * START; + static ::javax::sound::sampled::LineEvent$Type * STOP; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_LineEvent$Type__ diff --git a/libjava/javax/sound/sampled/LineEvent.h b/libjava/javax/sound/sampled/LineEvent.h new file mode 100644 index 00000000000..ccc90e25dc8 --- /dev/null +++ b/libjava/javax/sound/sampled/LineEvent.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_LineEvent__ +#define __javax_sound_sampled_LineEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Line; + class LineEvent; + class LineEvent$Type; + } + } + } +} + +class javax::sound::sampled::LineEvent : public ::java::util::EventObject +{ + +public: + LineEvent(::javax::sound::sampled::Line *, ::javax::sound::sampled::LineEvent$Type *, jlong); + virtual jlong getFramePosition(); + virtual ::javax::sound::sampled::Line * getLine(); + virtual ::javax::sound::sampled::LineEvent$Type * getType(); + virtual ::java::lang::String * toString(); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); + static const jlong serialVersionUID = -1274246333383880410LL; + ::javax::sound::sampled::LineEvent$Type * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) type; + jlong framePosition; + ::javax::sound::sampled::Line * line; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_LineEvent__ diff --git a/libjava/javax/sound/sampled/LineListener.h b/libjava/javax/sound/sampled/LineListener.h new file mode 100644 index 00000000000..5abbde1a870 --- /dev/null +++ b/libjava/javax/sound/sampled/LineListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_LineListener__ +#define __javax_sound_sampled_LineListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class LineEvent; + class LineListener; + } + } + } +} + +class javax::sound::sampled::LineListener : public ::java::lang::Object +{ + +public: + virtual void update(::javax::sound::sampled::LineEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_LineListener__ diff --git a/libjava/javax/sound/sampled/LineUnavailableException.h b/libjava/javax/sound/sampled/LineUnavailableException.h new file mode 100644 index 00000000000..a0068a6ec06 --- /dev/null +++ b/libjava/javax/sound/sampled/LineUnavailableException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_LineUnavailableException__ +#define __javax_sound_sampled_LineUnavailableException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class LineUnavailableException; + } + } + } +} + +class javax::sound::sampled::LineUnavailableException : public ::java::lang::Exception +{ + +public: + LineUnavailableException(); + LineUnavailableException(::java::lang::String *); +private: + static const jlong serialVersionUID = -2046718279487432130LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_LineUnavailableException__ diff --git a/libjava/javax/sound/sampled/Mixer$Info.h b/libjava/javax/sound/sampled/Mixer$Info.h new file mode 100644 index 00000000000..81ba18b1d61 --- /dev/null +++ b/libjava/javax/sound/sampled/Mixer$Info.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Mixer$Info__ +#define __javax_sound_sampled_Mixer$Info__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Mixer$Info; + } + } + } +} + +class javax::sound::sampled::Mixer$Info : public ::java::lang::Object +{ + +public: // actually protected + Mixer$Info(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getDescription(); + virtual ::java::lang::String * getVendor(); + virtual ::java::lang::String * getVersion(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * description; + ::java::lang::String * vendor; + ::java::lang::String * version; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_Mixer$Info__ diff --git a/libjava/javax/sound/sampled/Mixer.h b/libjava/javax/sound/sampled/Mixer.h new file mode 100644 index 00000000000..b0bd095592a --- /dev/null +++ b/libjava/javax/sound/sampled/Mixer.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Mixer__ +#define __javax_sound_sampled_Mixer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Control; + class Control$Type; + class Line; + class Line$Info; + class LineListener; + class Mixer; + class Mixer$Info; + } + } + } +} + +class javax::sound::sampled::Mixer : public ::java::lang::Object +{ + +public: + virtual ::javax::sound::sampled::Line * getLine(::javax::sound::sampled::Line$Info *) = 0; + virtual jint getMaxLines(::javax::sound::sampled::Line$Info *) = 0; + virtual ::javax::sound::sampled::Mixer$Info * getMixerInfo() = 0; + virtual JArray< ::javax::sound::sampled::Line$Info * > * getSourceLineInfo() = 0; + virtual JArray< ::javax::sound::sampled::Line$Info * > * getSourceLineInfo(::javax::sound::sampled::Line$Info *) = 0; + virtual JArray< ::javax::sound::sampled::Line * > * getSourceLines() = 0; + virtual JArray< ::javax::sound::sampled::Line$Info * > * getTargetLineInfo() = 0; + virtual JArray< ::javax::sound::sampled::Line$Info * > * getTargetLineInfo(::javax::sound::sampled::Line$Info *) = 0; + virtual JArray< ::javax::sound::sampled::Line * > * getTargetLines() = 0; + virtual jboolean isLineSupported(::javax::sound::sampled::Line$Info *) = 0; + virtual jboolean isSynchronizationSupported(JArray< ::javax::sound::sampled::Line * > *, jboolean) = 0; + virtual void synchronize(JArray< ::javax::sound::sampled::Line * > *, jboolean) = 0; + virtual void unsynchronize(JArray< ::javax::sound::sampled::Line * > *) = 0; + virtual void addLineListener(::javax::sound::sampled::LineListener *) = 0; + virtual void close() = 0; + virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *) = 0; + virtual JArray< ::javax::sound::sampled::Control * > * getControls() = 0; + virtual ::javax::sound::sampled::Line$Info * getLineInfo() = 0; + virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *) = 0; + virtual jboolean isOpen() = 0; + virtual void open() = 0; + virtual void removeLineListener(::javax::sound::sampled::LineListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_Mixer__ diff --git a/libjava/javax/sound/sampled/Port$Info.h b/libjava/javax/sound/sampled/Port$Info.h new file mode 100644 index 00000000000..1635e27c31b --- /dev/null +++ b/libjava/javax/sound/sampled/Port$Info.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Port$Info__ +#define __javax_sound_sampled_Port$Info__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Line$Info; + class Port$Info; + } + } + } +} + +class javax::sound::sampled::Port$Info : public ::javax::sound::sampled::Line$Info +{ + +public: + Port$Info(::java::lang::Class *, ::java::lang::String *, jboolean); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * getName(); + virtual jboolean isSource(); + virtual jboolean matches(::javax::sound::sampled::Line$Info *); + virtual ::java::lang::String * toString(); + static ::javax::sound::sampled::Port$Info * COMPACT_DISC; + static ::javax::sound::sampled::Port$Info * HEADPHONE; + static ::javax::sound::sampled::Port$Info * LINE_IN; + static ::javax::sound::sampled::Port$Info * LINE_OUT; + static ::javax::sound::sampled::Port$Info * MICROPHONE; + static ::javax::sound::sampled::Port$Info * SPEAKER; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::sound::sampled::Line$Info)))) name; + jboolean isSource__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_Port$Info__ diff --git a/libjava/javax/sound/sampled/Port.h b/libjava/javax/sound/sampled/Port.h new file mode 100644 index 00000000000..4958786a943 --- /dev/null +++ b/libjava/javax/sound/sampled/Port.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_Port__ +#define __javax_sound_sampled_Port__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Control; + class Control$Type; + class Line$Info; + class LineListener; + class Port; + } + } + } +} + +class javax::sound::sampled::Port : public ::java::lang::Object +{ + +public: + virtual void addLineListener(::javax::sound::sampled::LineListener *) = 0; + virtual void close() = 0; + virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *) = 0; + virtual JArray< ::javax::sound::sampled::Control * > * getControls() = 0; + virtual ::javax::sound::sampled::Line$Info * getLineInfo() = 0; + virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *) = 0; + virtual jboolean isOpen() = 0; + virtual void open() = 0; + virtual void removeLineListener(::javax::sound::sampled::LineListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_Port__ diff --git a/libjava/javax/sound/sampled/ReverbType.h b/libjava/javax/sound/sampled/ReverbType.h new file mode 100644 index 00000000000..acdf5142cf8 --- /dev/null +++ b/libjava/javax/sound/sampled/ReverbType.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_ReverbType__ +#define __javax_sound_sampled_ReverbType__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class ReverbType; + } + } + } +} + +class javax::sound::sampled::ReverbType : public ::java::lang::Object +{ + +public: // actually protected + ReverbType(::java::lang::String *, jint, jfloat, jint, jfloat, jint); +public: + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual jint getDecayTime(); + virtual jint getEarlyReflectionDelay(); + virtual jfloat getEarlyReflectionIntensity(); + virtual jint getLateReflectionDelay(); + virtual jfloat getLateReflectionIntensity(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + jint earlyReflectionDelay; + jfloat earlyReflectionIntensity; + jint lateReflectionDelay; + jfloat lateReflectionIntensity; + jint decayTime; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_ReverbType__ diff --git a/libjava/javax/sound/sampled/SourceDataLine.h b/libjava/javax/sound/sampled/SourceDataLine.h new file mode 100644 index 00000000000..74b5e807631 --- /dev/null +++ b/libjava/javax/sound/sampled/SourceDataLine.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_SourceDataLine__ +#define __javax_sound_sampled_SourceDataLine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class Control; + class Control$Type; + class Line$Info; + class LineListener; + class SourceDataLine; + } + } + } +} + +class javax::sound::sampled::SourceDataLine : public ::java::lang::Object +{ + +public: + virtual void open(::javax::sound::sampled::AudioFormat *) = 0; + virtual void open(::javax::sound::sampled::AudioFormat *, jint) = 0; + virtual jint write(JArray< jbyte > *, jint, jint) = 0; + virtual jint available() = 0; + virtual void drain() = 0; + virtual void flush() = 0; + virtual jint getBufferSize() = 0; + virtual ::javax::sound::sampled::AudioFormat * getFormat() = 0; + virtual jint getFramePosition() = 0; + virtual jfloat getLevel() = 0; + virtual jlong getLongFramePosition() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual jboolean isActive() = 0; + virtual jboolean isRunning() = 0; + virtual void start() = 0; + virtual void stop() = 0; + virtual void addLineListener(::javax::sound::sampled::LineListener *) = 0; + virtual void close() = 0; + virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *) = 0; + virtual JArray< ::javax::sound::sampled::Control * > * getControls() = 0; + virtual ::javax::sound::sampled::Line$Info * getLineInfo() = 0; + virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *) = 0; + virtual jboolean isOpen() = 0; + virtual void open() = 0; + virtual void removeLineListener(::javax::sound::sampled::LineListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_SourceDataLine__ diff --git a/libjava/javax/sound/sampled/TargetDataLine.h b/libjava/javax/sound/sampled/TargetDataLine.h new file mode 100644 index 00000000000..18383898624 --- /dev/null +++ b/libjava/javax/sound/sampled/TargetDataLine.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_TargetDataLine__ +#define __javax_sound_sampled_TargetDataLine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class Control; + class Control$Type; + class Line$Info; + class LineListener; + class TargetDataLine; + } + } + } +} + +class javax::sound::sampled::TargetDataLine : public ::java::lang::Object +{ + +public: + virtual void open(::javax::sound::sampled::AudioFormat *) = 0; + virtual void open(::javax::sound::sampled::AudioFormat *, jint) = 0; + virtual jint read(JArray< jbyte > *, jint, jint) = 0; + virtual jint available() = 0; + virtual void drain() = 0; + virtual void flush() = 0; + virtual jint getBufferSize() = 0; + virtual ::javax::sound::sampled::AudioFormat * getFormat() = 0; + virtual jint getFramePosition() = 0; + virtual jfloat getLevel() = 0; + virtual jlong getLongFramePosition() = 0; + virtual jlong getMicrosecondPosition() = 0; + virtual jboolean isActive() = 0; + virtual jboolean isRunning() = 0; + virtual void start() = 0; + virtual void stop() = 0; + virtual void addLineListener(::javax::sound::sampled::LineListener *) = 0; + virtual void close() = 0; + virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *) = 0; + virtual JArray< ::javax::sound::sampled::Control * > * getControls() = 0; + virtual ::javax::sound::sampled::Line$Info * getLineInfo() = 0; + virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *) = 0; + virtual jboolean isOpen() = 0; + virtual void open() = 0; + virtual void removeLineListener(::javax::sound::sampled::LineListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sound_sampled_TargetDataLine__ diff --git a/libjava/javax/sound/sampled/UnsupportedAudioFileException.h b/libjava/javax/sound/sampled/UnsupportedAudioFileException.h new file mode 100644 index 00000000000..896c85a4226 --- /dev/null +++ b/libjava/javax/sound/sampled/UnsupportedAudioFileException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_UnsupportedAudioFileException__ +#define __javax_sound_sampled_UnsupportedAudioFileException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class UnsupportedAudioFileException; + } + } + } +} + +class javax::sound::sampled::UnsupportedAudioFileException : public ::java::lang::Exception +{ + +public: + UnsupportedAudioFileException(); + UnsupportedAudioFileException(::java::lang::String *); +private: + static const jlong serialVersionUID = -139127412623160368LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_UnsupportedAudioFileException__ diff --git a/libjava/javax/sound/sampled/spi/AudioFileReader.h b/libjava/javax/sound/sampled/spi/AudioFileReader.h new file mode 100644 index 00000000000..aab7d7d6887 --- /dev/null +++ b/libjava/javax/sound/sampled/spi/AudioFileReader.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_spi_AudioFileReader__ +#define __javax_sound_sampled_spi_AudioFileReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat; + class AudioInputStream; + namespace spi + { + class AudioFileReader; + } + } + } + } +} + +class javax::sound::sampled::spi::AudioFileReader : public ::java::lang::Object +{ + +public: + AudioFileReader(); + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::File *) = 0; + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *) = 0; + virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::net::URL *) = 0; + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::File *) = 0; + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::InputStream *) = 0; + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::net::URL *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_spi_AudioFileReader__ diff --git a/libjava/javax/sound/sampled/spi/AudioFileWriter.h b/libjava/javax/sound/sampled/spi/AudioFileWriter.h new file mode 100644 index 00000000000..558e3daeaf1 --- /dev/null +++ b/libjava/javax/sound/sampled/spi/AudioFileWriter.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_spi_AudioFileWriter__ +#define __javax_sound_sampled_spi_AudioFileWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFileFormat$Type; + class AudioInputStream; + namespace spi + { + class AudioFileWriter; + } + } + } + } +} + +class javax::sound::sampled::spi::AudioFileWriter : public ::java::lang::Object +{ + +public: + AudioFileWriter(); + virtual JArray< ::javax::sound::sampled::AudioFileFormat$Type * > * getAudioFileTypes() = 0; + virtual JArray< ::javax::sound::sampled::AudioFileFormat$Type * > * getAudioFileTypes(::javax::sound::sampled::AudioInputStream *) = 0; + virtual jboolean isFileTypeSupported(::javax::sound::sampled::AudioFileFormat$Type *); + virtual jboolean isFileTypeSupported(::javax::sound::sampled::AudioFileFormat$Type *, ::javax::sound::sampled::AudioInputStream *); + virtual jint write(::javax::sound::sampled::AudioInputStream *, ::javax::sound::sampled::AudioFileFormat$Type *, ::java::io::File *) = 0; + virtual jint write(::javax::sound::sampled::AudioInputStream *, ::javax::sound::sampled::AudioFileFormat$Type *, ::java::io::OutputStream *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_spi_AudioFileWriter__ diff --git a/libjava/javax/sound/sampled/spi/FormatConversionProvider.h b/libjava/javax/sound/sampled/spi/FormatConversionProvider.h new file mode 100644 index 00000000000..e00ccac45e2 --- /dev/null +++ b/libjava/javax/sound/sampled/spi/FormatConversionProvider.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_spi_FormatConversionProvider__ +#define __javax_sound_sampled_spi_FormatConversionProvider__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class AudioFormat; + class AudioFormat$Encoding; + class AudioInputStream; + namespace spi + { + class FormatConversionProvider; + } + } + } + } +} + +class javax::sound::sampled::spi::FormatConversionProvider : public ::java::lang::Object +{ + +public: + FormatConversionProvider(); + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::javax::sound::sampled::AudioFormat$Encoding *, ::javax::sound::sampled::AudioInputStream *) = 0; + virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::javax::sound::sampled::AudioFormat *, ::javax::sound::sampled::AudioInputStream *) = 0; + virtual JArray< ::javax::sound::sampled::AudioFormat$Encoding * > * getSourceEncodings() = 0; + virtual JArray< ::javax::sound::sampled::AudioFormat$Encoding * > * getTargetEncodings() = 0; + virtual JArray< ::javax::sound::sampled::AudioFormat$Encoding * > * getTargetEncodings(::javax::sound::sampled::AudioFormat *) = 0; + virtual JArray< ::javax::sound::sampled::AudioFormat * > * getTargetFormats(::javax::sound::sampled::AudioFormat$Encoding *, ::javax::sound::sampled::AudioFormat *) = 0; + virtual jboolean isConversionSupported(::javax::sound::sampled::AudioFormat$Encoding *, ::javax::sound::sampled::AudioFormat *); + virtual jboolean isConversionSupported(::javax::sound::sampled::AudioFormat *, ::javax::sound::sampled::AudioFormat *); + virtual jboolean isSourceEncodingSupported(::javax::sound::sampled::AudioFormat$Encoding *); + virtual jboolean isTargetEncodingSupported(::javax::sound::sampled::AudioFormat$Encoding *); + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_spi_FormatConversionProvider__ diff --git a/libjava/javax/sound/sampled/spi/MixerProvider.h b/libjava/javax/sound/sampled/spi/MixerProvider.h new file mode 100644 index 00000000000..50fc476d0ba --- /dev/null +++ b/libjava/javax/sound/sampled/spi/MixerProvider.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sound_sampled_spi_MixerProvider__ +#define __javax_sound_sampled_spi_MixerProvider__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace sound + { + namespace sampled + { + class Mixer; + class Mixer$Info; + namespace spi + { + class MixerProvider; + } + } + } + } +} + +class javax::sound::sampled::spi::MixerProvider : public ::java::lang::Object +{ + +public: + MixerProvider(); + virtual ::javax::sound::sampled::Mixer * getMixer(::javax::sound::sampled::Mixer$Info *) = 0; + virtual JArray< ::javax::sound::sampled::Mixer$Info * > * getMixerInfo() = 0; + virtual jboolean isMixerSupported(::javax::sound::sampled::Mixer$Info *); + static ::java::lang::Class class$; +}; + +#endif // __javax_sound_sampled_spi_MixerProvider__ diff --git a/libjava/javax/sql/ConnectionEvent.h b/libjava/javax/sql/ConnectionEvent.h new file mode 100644 index 00000000000..19f1de27b66 --- /dev/null +++ b/libjava/javax/sql/ConnectionEvent.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_ConnectionEvent__ +#define __javax_sql_ConnectionEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace sql + { + class SQLException; + } + } + namespace javax + { + namespace sql + { + class ConnectionEvent; + class PooledConnection; + } + } +} + +class javax::sql::ConnectionEvent : public ::java::util::EventObject +{ + +public: + ConnectionEvent(::javax::sql::PooledConnection *); + ConnectionEvent(::javax::sql::PooledConnection *, ::java::sql::SQLException *); + virtual ::java::sql::SQLException * getSQLException(); +private: + static const jlong serialVersionUID = -4843217645290030002LL; + ::java::sql::SQLException * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) ex; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_sql_ConnectionEvent__ diff --git a/libjava/javax/sql/ConnectionEventListener.h b/libjava/javax/sql/ConnectionEventListener.h new file mode 100644 index 00000000000..c412cb76642 --- /dev/null +++ b/libjava/javax/sql/ConnectionEventListener.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_ConnectionEventListener__ +#define __javax_sql_ConnectionEventListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class ConnectionEvent; + class ConnectionEventListener; + } + } +} + +class javax::sql::ConnectionEventListener : public ::java::lang::Object +{ + +public: + virtual void connectionClosed(::javax::sql::ConnectionEvent *) = 0; + virtual void connectionErrorOccurred(::javax::sql::ConnectionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_ConnectionEventListener__ diff --git a/libjava/javax/sql/ConnectionPoolDataSource.h b/libjava/javax/sql/ConnectionPoolDataSource.h new file mode 100644 index 00000000000..c64160e77c7 --- /dev/null +++ b/libjava/javax/sql/ConnectionPoolDataSource.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_ConnectionPoolDataSource__ +#define __javax_sql_ConnectionPoolDataSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class ConnectionPoolDataSource; + class PooledConnection; + } + } +} + +class javax::sql::ConnectionPoolDataSource : public ::java::lang::Object +{ + +public: + virtual ::javax::sql::PooledConnection * getPooledConnection() = 0; + virtual ::javax::sql::PooledConnection * getPooledConnection(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::io::PrintWriter * getLogWriter() = 0; + virtual void setLogWriter(::java::io::PrintWriter *) = 0; + virtual void setLoginTimeout(jint) = 0; + virtual jint getLoginTimeout() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_ConnectionPoolDataSource__ diff --git a/libjava/javax/sql/DataSource.h b/libjava/javax/sql/DataSource.h new file mode 100644 index 00000000000..f8048bd3183 --- /dev/null +++ b/libjava/javax/sql/DataSource.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_DataSource__ +#define __javax_sql_DataSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace sql + { + class Connection; + } + } + namespace javax + { + namespace sql + { + class DataSource; + } + } +} + +class javax::sql::DataSource : public ::java::lang::Object +{ + +public: + virtual ::java::sql::Connection * getConnection() = 0; + virtual ::java::sql::Connection * getConnection(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::io::PrintWriter * getLogWriter() = 0; + virtual void setLogWriter(::java::io::PrintWriter *) = 0; + virtual void setLoginTimeout(jint) = 0; + virtual jint getLoginTimeout() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_DataSource__ diff --git a/libjava/javax/sql/PooledConnection.h b/libjava/javax/sql/PooledConnection.h new file mode 100644 index 00000000000..9310e91ea9c --- /dev/null +++ b/libjava/javax/sql/PooledConnection.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_PooledConnection__ +#define __javax_sql_PooledConnection__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace sql + { + class Connection; + } + } + namespace javax + { + namespace sql + { + class ConnectionEventListener; + class PooledConnection; + } + } +} + +class javax::sql::PooledConnection : public ::java::lang::Object +{ + +public: + virtual ::java::sql::Connection * getConnection() = 0; + virtual void close() = 0; + virtual void addConnectionEventListener(::javax::sql::ConnectionEventListener *) = 0; + virtual void removeConnectionEventListener(::javax::sql::ConnectionEventListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_PooledConnection__ diff --git a/libjava/javax/sql/RowSet.h b/libjava/javax/sql/RowSet.h new file mode 100644 index 00000000000..b55f16589b3 --- /dev/null +++ b/libjava/javax/sql/RowSet.h @@ -0,0 +1,252 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_RowSet__ +#define __javax_sql_RowSet__ + +#pragma interface + +#include +#include + +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 ResultSetMetaData; + class SQLWarning; + class Statement; + class Time; + class Timestamp; + } + } + namespace javax + { + namespace sql + { + class RowSet; + class RowSetListener; + } + } +} + +class javax::sql::RowSet : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getUrl() = 0; + virtual void setUrl(::java::lang::String *) = 0; + virtual ::java::lang::String * getDataSourceName() = 0; + virtual void setDataSourceName(::java::lang::String *) = 0; + virtual ::java::lang::String * getUsername() = 0; + virtual void setUsername(::java::lang::String *) = 0; + virtual ::java::lang::String * getPassword() = 0; + virtual void setPassword(::java::lang::String *) = 0; + virtual jint getTransactionIsolation() = 0; + virtual void setTransactionIsolation(jint) = 0; + virtual ::java::util::Map * getTypeMap() = 0; + virtual void setTypeMap(::java::util::Map *) = 0; + virtual ::java::lang::String * getCommand() = 0; + virtual void setCommand(::java::lang::String *) = 0; + virtual jboolean isReadOnly() = 0; + virtual void setReadOnly(jboolean) = 0; + virtual jint getMaxFieldSize() = 0; + virtual void setMaxFieldSize(jint) = 0; + virtual jint getMaxRows() = 0; + virtual void setMaxRows(jint) = 0; + virtual jboolean getEscapeProcessing() = 0; + virtual void setEscapeProcessing(jboolean) = 0; + virtual jint getQueryTimeout() = 0; + virtual void setQueryTimeout(jint) = 0; + virtual void setType(jint) = 0; + virtual void setConcurrency(jint) = 0; + virtual void setNull(jint, jint) = 0; + virtual void setNull(jint, jint, ::java::lang::String *) = 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 setBinaryStream(jint, ::java::io::InputStream *, jint) = 0; + virtual void setCharacterStream(jint, ::java::io::Reader *, jint) = 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 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 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 clearParameters() = 0; + virtual void execute() = 0; + virtual void addRowSetListener(::javax::sql::RowSetListener *) = 0; + virtual void removeRowSetListener(::javax::sql::RowSetListener *) = 0; + 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 ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_RowSet__ diff --git a/libjava/javax/sql/RowSetEvent.h b/libjava/javax/sql/RowSetEvent.h new file mode 100644 index 00000000000..5c5ba6e6461 --- /dev/null +++ b/libjava/javax/sql/RowSetEvent.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_RowSetEvent__ +#define __javax_sql_RowSetEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class RowSet; + class RowSetEvent; + } + } +} + +class javax::sql::RowSetEvent : public ::java::util::EventObject +{ + +public: + RowSetEvent(::javax::sql::RowSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_sql_RowSetEvent__ diff --git a/libjava/javax/sql/RowSetInternal.h b/libjava/javax/sql/RowSetInternal.h new file mode 100644 index 00000000000..e1869df86f1 --- /dev/null +++ b/libjava/javax/sql/RowSetInternal.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_RowSetInternal__ +#define __javax_sql_RowSetInternal__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace sql + { + class Connection; + class ResultSet; + } + } + namespace javax + { + namespace sql + { + class RowSetInternal; + class RowSetMetaData; + } + } +} + +class javax::sql::RowSetInternal : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::Object * > * getParams() = 0; + virtual ::java::sql::Connection * getConnection() = 0; + virtual void setMetaData(::javax::sql::RowSetMetaData *) = 0; + virtual ::java::sql::ResultSet * getOriginal() = 0; + virtual ::java::sql::ResultSet * getOriginalRow() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_RowSetInternal__ diff --git a/libjava/javax/sql/RowSetListener.h b/libjava/javax/sql/RowSetListener.h new file mode 100644 index 00000000000..9edc7d4bcd0 --- /dev/null +++ b/libjava/javax/sql/RowSetListener.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_RowSetListener__ +#define __javax_sql_RowSetListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class RowSetEvent; + class RowSetListener; + } + } +} + +class javax::sql::RowSetListener : public ::java::lang::Object +{ + +public: + virtual void rowSetChanged(::javax::sql::RowSetEvent *) = 0; + virtual void rowChanged(::javax::sql::RowSetEvent *) = 0; + virtual void cursorMoved(::javax::sql::RowSetEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_RowSetListener__ diff --git a/libjava/javax/sql/RowSetMetaData.h b/libjava/javax/sql/RowSetMetaData.h new file mode 100644 index 00000000000..90d5a46c737 --- /dev/null +++ b/libjava/javax/sql/RowSetMetaData.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_RowSetMetaData__ +#define __javax_sql_RowSetMetaData__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class RowSetMetaData; + } + } +} + +class javax::sql::RowSetMetaData : public ::java::lang::Object +{ + +public: + virtual void setColumnCount(jint) = 0; + virtual void setAutoIncrement(jint, jboolean) = 0; + virtual void setCaseSensitive(jint, jboolean) = 0; + virtual void setSearchable(jint, jboolean) = 0; + virtual void setCurrency(jint, jboolean) = 0; + virtual void setNullable(jint, jint) = 0; + virtual void setSigned(jint, jboolean) = 0; + virtual void setColumnDisplaySize(jint, jint) = 0; + virtual void setColumnLabel(jint, ::java::lang::String *) = 0; + virtual void setColumnName(jint, ::java::lang::String *) = 0; + virtual void setSchemaName(jint, ::java::lang::String *) = 0; + virtual void setPrecision(jint, jint) = 0; + virtual void setScale(jint, jint) = 0; + virtual void setTableName(jint, ::java::lang::String *) = 0; + virtual void setCatalogName(jint, ::java::lang::String *) = 0; + virtual void setColumnType(jint, jint) = 0; + virtual void setColumnTypeName(jint, ::java::lang::String *) = 0; + 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 ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_RowSetMetaData__ diff --git a/libjava/javax/sql/RowSetReader.h b/libjava/javax/sql/RowSetReader.h new file mode 100644 index 00000000000..6e2adad48f3 --- /dev/null +++ b/libjava/javax/sql/RowSetReader.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_RowSetReader__ +#define __javax_sql_RowSetReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class RowSetInternal; + class RowSetReader; + } + } +} + +class javax::sql::RowSetReader : public ::java::lang::Object +{ + +public: + virtual void readData(::javax::sql::RowSetInternal *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_RowSetReader__ diff --git a/libjava/javax/sql/RowSetWriter.h b/libjava/javax/sql/RowSetWriter.h new file mode 100644 index 00000000000..c4ce0de158c --- /dev/null +++ b/libjava/javax/sql/RowSetWriter.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_RowSetWriter__ +#define __javax_sql_RowSetWriter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class RowSetInternal; + class RowSetWriter; + } + } +} + +class javax::sql::RowSetWriter : public ::java::lang::Object +{ + +public: + virtual jboolean writeData(::javax::sql::RowSetInternal *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_RowSetWriter__ diff --git a/libjava/javax/sql/XAConnection.h b/libjava/javax/sql/XAConnection.h new file mode 100644 index 00000000000..ece83a7c9ce --- /dev/null +++ b/libjava/javax/sql/XAConnection.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_XAConnection__ +#define __javax_sql_XAConnection__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace sql + { + class Connection; + } + } + namespace javax + { + namespace sql + { + class ConnectionEventListener; + class XAConnection; + } + namespace transaction + { + namespace xa + { + class XAResource; + } + } + } +} + +class javax::sql::XAConnection : public ::java::lang::Object +{ + +public: + virtual ::javax::transaction::xa::XAResource * getXAResource() = 0; + virtual ::java::sql::Connection * getConnection() = 0; + virtual void close() = 0; + virtual void addConnectionEventListener(::javax::sql::ConnectionEventListener *) = 0; + virtual void removeConnectionEventListener(::javax::sql::ConnectionEventListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_XAConnection__ diff --git a/libjava/javax/sql/XADataSource.h b/libjava/javax/sql/XADataSource.h new file mode 100644 index 00000000000..b5177ad1983 --- /dev/null +++ b/libjava/javax/sql/XADataSource.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_sql_XADataSource__ +#define __javax_sql_XADataSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace sql + { + class XAConnection; + class XADataSource; + } + } +} + +class javax::sql::XADataSource : public ::java::lang::Object +{ + +public: + virtual ::javax::sql::XAConnection * getXAConnection() = 0; + virtual ::javax::sql::XAConnection * getXAConnection(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::io::PrintWriter * getLogWriter() = 0; + virtual void setLogWriter(::java::io::PrintWriter *) = 0; + virtual void setLoginTimeout(jint) = 0; + virtual jint getLoginTimeout() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_sql_XADataSource__ diff --git a/libjava/javax/swing/AbstractAction.h b/libjava/javax/swing/AbstractAction.h new file mode 100644 index 00000000000..6f79d0d37f1 --- /dev/null +++ b/libjava/javax/swing/AbstractAction.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractAction__ +#define __javax_swing_AbstractAction__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class AbstractAction; + class Icon; + namespace event + { + class SwingPropertyChangeSupport; + } + } + } +} + +class javax::swing::AbstractAction : public ::java::lang::Object +{ + +public: + AbstractAction(); + AbstractAction(::java::lang::String *); + AbstractAction(::java::lang::String *, ::javax::swing::Icon *); +public: // actually protected + virtual ::java::lang::Object * clone(); +public: + virtual ::java::lang::Object * getValue(::java::lang::String *); + virtual void putValue(::java::lang::String *, ::java::lang::Object *); + virtual jboolean isEnabled(); + virtual void setEnabled(jboolean); + virtual JArray< ::java::lang::Object * > * getKeys(); +public: // actually protected + virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); +private: + void firePropertyChange(::java::lang::String *, jboolean, jboolean); +public: + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(); + virtual void actionPerformed(::java::awt::event::ActionEvent *) = 0; +private: + static const jlong serialVersionUID = -6803159439231523484LL; +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) enabled; + ::javax::swing::event::SwingPropertyChangeSupport * changeSupport; +private: + ::java::util::HashMap * store; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractAction__ diff --git a/libjava/javax/swing/AbstractButton$1.h b/libjava/javax/swing/AbstractButton$1.h new file mode 100644 index 00000000000..fa5975e2d53 --- /dev/null +++ b/libjava/javax/swing/AbstractButton$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractButton$1__ +#define __javax_swing_AbstractButton$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class AbstractButton$1; + } + } +} + +class javax::swing::AbstractButton$1 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractButton$1(::javax::swing::AbstractButton *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::AbstractButton * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractButton$1__ diff --git a/libjava/javax/swing/AbstractButton$2.h b/libjava/javax/swing/AbstractButton$2.h new file mode 100644 index 00000000000..1bb6bc29681 --- /dev/null +++ b/libjava/javax/swing/AbstractButton$2.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractButton$2__ +#define __javax_swing_AbstractButton$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class AbstractButton$2; + } + } +} + +class javax::swing::AbstractButton$2 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractButton$2(::javax::swing::AbstractButton *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::AbstractButton * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractButton$2__ diff --git a/libjava/javax/swing/AbstractButton$3.h b/libjava/javax/swing/AbstractButton$3.h new file mode 100644 index 00000000000..174029e5f26 --- /dev/null +++ b/libjava/javax/swing/AbstractButton$3.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractButton$3__ +#define __javax_swing_AbstractButton$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ItemEvent; + } + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class AbstractButton$3; + } + } +} + +class javax::swing::AbstractButton$3 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractButton$3(::javax::swing::AbstractButton *); +public: + void itemStateChanged(::java::awt::event::ItemEvent *); +public: // actually package-private + ::javax::swing::AbstractButton * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractButton$3__ diff --git a/libjava/javax/swing/AbstractButton$AccessibleAbstractButton.h b/libjava/javax/swing/AbstractButton$AccessibleAbstractButton.h new file mode 100644 index 00000000000..fd5ea169d2d --- /dev/null +++ b/libjava/javax/swing/AbstractButton$AccessibleAbstractButton.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractButton$AccessibleAbstractButton__ +#define __javax_swing_AbstractButton$AccessibleAbstractButton__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleAction; + class AccessibleIcon; + class AccessibleRelationSet; + class AccessibleStateSet; + class AccessibleText; + class AccessibleValue; + } + namespace swing + { + class AbstractButton; + class AbstractButton$AccessibleAbstractButton; + namespace text + { + class AttributeSet; + } + } + } +} + +class javax::swing::AbstractButton$AccessibleAbstractButton : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + AbstractButton$AccessibleAbstractButton(::javax::swing::AbstractButton *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::java::lang::String * getAccessibleName(); + virtual JArray< ::javax::accessibility::AccessibleIcon * > * getAccessibleIcon(); + virtual ::javax::accessibility::AccessibleRelationSet * getAccessibleRelationSet(); + 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::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(); +private: + static const jlong serialVersionUID = -5673062525319836790LL; +public: // actually package-private + ::javax::swing::AbstractButton * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractButton$AccessibleAbstractButton__ diff --git a/libjava/javax/swing/AbstractButton$ButtonChangeListener.h b/libjava/javax/swing/AbstractButton$ButtonChangeListener.h new file mode 100644 index 00000000000..e291daa77aa --- /dev/null +++ b/libjava/javax/swing/AbstractButton$ButtonChangeListener.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractButton$ButtonChangeListener__ +#define __javax_swing_AbstractButton$ButtonChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class AbstractButton; + class AbstractButton$ButtonChangeListener; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::AbstractButton$ButtonChangeListener : public ::java::lang::Object +{ + +public: // actually package-private + AbstractButton$ButtonChangeListener(::javax::swing::AbstractButton *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +private: + static const jlong serialVersionUID = 1471056094226600578LL; +public: // actually package-private + ::javax::swing::AbstractButton * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractButton$ButtonChangeListener__ diff --git a/libjava/javax/swing/AbstractButton$EventHandler.h b/libjava/javax/swing/AbstractButton$EventHandler.h new file mode 100644 index 00000000000..148efd61172 --- /dev/null +++ b/libjava/javax/swing/AbstractButton$EventHandler.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractButton$EventHandler__ +#define __javax_swing_AbstractButton$EventHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ItemEvent; + } + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class AbstractButton$EventHandler; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::AbstractButton$EventHandler : public ::java::lang::Object +{ + + AbstractButton$EventHandler(::javax::swing::AbstractButton *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); + virtual void itemStateChanged(::java::awt::event::ItemEvent *); +public: // actually package-private + AbstractButton$EventHandler(::javax::swing::AbstractButton *, ::javax::swing::AbstractButton$EventHandler *); + ::javax::swing::AbstractButton * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractButton$EventHandler__ diff --git a/libjava/javax/swing/AbstractButton.h b/libjava/javax/swing/AbstractButton.h new file mode 100644 index 00000000000..82cf58823fd --- /dev/null +++ b/libjava/javax/swing/AbstractButton.h @@ -0,0 +1,227 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractButton__ +#define __javax_swing_AbstractButton__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Image; + class Insets; + class LayoutManager; + namespace event + { + class ActionEvent; + class ActionListener; + class ItemEvent; + class ItemListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class AbstractButton$EventHandler; + class Action; + class ButtonModel; + class Icon; + namespace event + { + class ChangeEvent; + class ChangeListener; + } + namespace plaf + { + class ButtonUI; + } + } + } +} + +class javax::swing::AbstractButton : public ::javax::swing::JComponent +{ + +public: + AbstractButton(); + virtual ::javax::swing::ButtonModel * getModel(); + virtual void setModel(::javax::swing::ButtonModel *); +public: // actually protected + virtual void init(::java::lang::String *, ::javax::swing::Icon *); +public: + 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 void addItemListener(::java::awt::event::ItemListener *); + virtual void removeItemListener(::java::awt::event::ItemListener *); + virtual JArray< ::java::awt::event::ItemListener * > * getItemListeners(); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +public: // actually protected + virtual void fireItemStateChanged(::java::awt::event::ItemEvent *); + virtual void fireActionPerformed(::java::awt::event::ActionEvent *); + virtual void fireStateChanged(); +public: + virtual jint getMnemonic(); + virtual void setMnemonic(jchar); + virtual void setMnemonic(jint); + virtual void setDisplayedMnemonicIndex(jint); + virtual jint getDisplayedMnemonicIndex(); + virtual void setRolloverEnabled(jboolean); + virtual jboolean isRolloverEnabled(); + virtual void setSelected(jboolean); + virtual jboolean isSelected(); + virtual void setEnabled(jboolean); + virtual jint getHorizontalAlignment(); + virtual void setHorizontalAlignment(jint); + virtual jint getHorizontalTextPosition(); + virtual void setHorizontalTextPosition(jint); + virtual jint getVerticalAlignment(); + virtual void setVerticalAlignment(jint); + virtual jint getVerticalTextPosition(); + virtual void setVerticalTextPosition(jint); + virtual jboolean isBorderPainted(); + virtual void setBorderPainted(jboolean); + virtual ::javax::swing::Action * getAction(); + virtual void setAction(::javax::swing::Action *); + virtual ::javax::swing::Icon * getIcon(); + virtual void setIcon(::javax::swing::Icon *); + virtual ::java::lang::String * getText(); + virtual void setLabel(::java::lang::String *); + virtual ::java::lang::String * getLabel(); + virtual void setText(::java::lang::String *); + virtual void setIconTextGap(jint); + virtual jint getIconTextGap(); + virtual ::java::awt::Insets * getMargin(); + virtual void setMargin(::java::awt::Insets *); + virtual ::javax::swing::Icon * getPressedIcon(); + virtual void setPressedIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getDisabledIcon(); + virtual void setDisabledIcon(::javax::swing::Icon *); + virtual jboolean isFocusPainted(); + virtual void setFocusPainted(jboolean); +public: // actually protected + virtual jint checkHorizontalKey(jint, ::java::lang::String *); + virtual jint checkVerticalKey(jint, ::java::lang::String *); + virtual void configurePropertiesFromAction(::javax::swing::Action *); + virtual ::java::awt::event::ActionListener * createActionListener(); + virtual ::java::beans::PropertyChangeListener * createActionPropertyChangeListener(::javax::swing::Action *); + virtual ::javax::swing::event::ChangeListener * createChangeListener(); + virtual ::java::awt::event::ItemListener * createItemListener(); +public: + virtual void doClick(); + virtual void doClick(jint); + virtual ::javax::swing::Icon * getDisabledSelectedIcon(); + virtual void setDisabledSelectedIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getRolloverIcon(); + virtual void setRolloverIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getRolloverSelectedIcon(); + virtual void setRolloverSelectedIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getSelectedIcon(); + virtual void setSelectedIcon(::javax::swing::Icon *); + virtual JArray< ::java::lang::Object * > * getSelectedObjects(); + virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint); + virtual jboolean isContentAreaFilled(); + virtual void setContentAreaFilled(jboolean); +public: // actually protected + virtual void paintBorder(::java::awt::Graphics *); + virtual ::java::lang::String * paramString(); +public: + virtual void setUI(::javax::swing::plaf::ButtonUI *); + virtual ::javax::swing::plaf::ButtonUI * getUI(); + virtual void updateUI(); + virtual jlong getMultiClickThreshhold(); + virtual void setMultiClickThreshhold(jlong); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual void setLayout(::java::awt::LayoutManager *); +public: // actually package-private + virtual void setUIProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::javax::swing::AbstractButton$EventHandler * getEventHandler(); +private: + static const jlong serialVersionUID = -937921345538462020LL; +public: // actually package-private + ::javax::swing::Icon * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) default_icon; + ::javax::swing::Icon * pressed_icon; + ::javax::swing::Icon * disabledIcon; + ::javax::swing::Icon * selectedIcon; + ::javax::swing::Icon * disabledSelectedIcon; + ::javax::swing::Icon * rolloverIcon; + ::javax::swing::Icon * rolloverSelectedIcon; + ::javax::swing::Icon * current_icon; + ::java::lang::String * text; + jint iconTextGap; + jint verticalAlignment; + jint horizontalAlignment; + jint horizontalTextPosition; + jint verticalTextPosition; + jboolean borderPainted; + jboolean focusPainted; + jboolean contentAreaFilled; + jboolean rollOverEnabled; + ::javax::swing::Action * action; +public: // actually protected + ::javax::swing::ButtonModel * model; +public: // actually package-private + ::java::awt::Insets * margin; + jint mnemonicIndex; +public: // actually protected + ::java::awt::event::ActionListener * actionListener; + ::java::awt::event::ItemListener * itemListener; + ::javax::swing::event::ChangeListener * changeListener; +private: + ::javax::swing::AbstractButton$EventHandler * eventHandler; +public: // actually package-private + jlong multiClickThreshhold; + ::java::beans::PropertyChangeListener * actionPropertyChangeListener; +public: // actually protected + ::javax::swing::event::ChangeEvent * changeEvent; +private: + jboolean clientBorderPaintedSet; + jboolean clientRolloverEnabledSet; + jboolean clientIconTextGapSet; + jboolean clientContentAreaFilledSet; +public: + static ::java::lang::String * BORDER_PAINTED_CHANGED_PROPERTY; + static ::java::lang::String * CONTENT_AREA_FILLED_CHANGED_PROPERTY; + static ::java::lang::String * DISABLED_ICON_CHANGED_PROPERTY; + static ::java::lang::String * DISABLED_SELECTED_ICON_CHANGED_PROPERTY; + static ::java::lang::String * FOCUS_PAINTED_CHANGED_PROPERTY; + static ::java::lang::String * HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY; + static ::java::lang::String * HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY; + static ::java::lang::String * ICON_CHANGED_PROPERTY; + static ::java::lang::String * MARGIN_CHANGED_PROPERTY; + static ::java::lang::String * MNEMONIC_CHANGED_PROPERTY; + static ::java::lang::String * MODEL_CHANGED_PROPERTY; + static ::java::lang::String * PRESSED_ICON_CHANGED_PROPERTY; + static ::java::lang::String * ROLLOVER_ENABLED_CHANGED_PROPERTY; + static ::java::lang::String * ROLLOVER_ICON_CHANGED_PROPERTY; + static ::java::lang::String * ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY; + static ::java::lang::String * SELECTED_ICON_CHANGED_PROPERTY; + static ::java::lang::String * TEXT_CHANGED_PROPERTY; + static ::java::lang::String * VERTICAL_ALIGNMENT_CHANGED_PROPERTY; + static ::java::lang::String * VERTICAL_TEXT_POSITION_CHANGED_PROPERTY; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractButton__ diff --git a/libjava/javax/swing/AbstractCellEditor.h b/libjava/javax/swing/AbstractCellEditor.h new file mode 100644 index 00000000000..a3aae0dbd58 --- /dev/null +++ b/libjava/javax/swing/AbstractCellEditor.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractCellEditor__ +#define __javax_swing_AbstractCellEditor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class AbstractCellEditor; + namespace event + { + class CellEditorListener; + class ChangeEvent; + class EventListenerList; + } + } + } +} + +class javax::swing::AbstractCellEditor : public ::java::lang::Object +{ + +public: + AbstractCellEditor(); + virtual jboolean isCellEditable(::java::util::EventObject *); + virtual jboolean shouldSelectCell(::java::util::EventObject *); + virtual jboolean stopCellEditing(); + virtual void cancelCellEditing(); + virtual void addCellEditorListener(::javax::swing::event::CellEditorListener *); + virtual void removeCellEditorListener(::javax::swing::event::CellEditorListener *); + virtual JArray< ::javax::swing::event::CellEditorListener * > * getCellEditorListeners(); +public: // actually protected + virtual void fireEditingStopped(); + virtual void fireEditingCanceled(); +public: + virtual ::java::lang::Object * getCellEditorValue() = 0; +private: + static const jlong serialVersionUID = -1048006551406220959LL; +public: // actually protected + ::javax::swing::event::EventListenerList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listenerList; + ::javax::swing::event::ChangeEvent * changeEvent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractCellEditor__ diff --git a/libjava/javax/swing/AbstractListModel.h b/libjava/javax/swing/AbstractListModel.h new file mode 100644 index 00000000000..5e6eb547690 --- /dev/null +++ b/libjava/javax/swing/AbstractListModel.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractListModel__ +#define __javax_swing_AbstractListModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class AbstractListModel; + namespace event + { + class EventListenerList; + class ListDataListener; + } + } + } +} + +class javax::swing::AbstractListModel : public ::java::lang::Object +{ + +public: + AbstractListModel(); + virtual void addListDataListener(::javax::swing::event::ListDataListener *); + virtual void removeListDataListener(::javax::swing::event::ListDataListener *); +public: // actually protected + virtual void fireContentsChanged(::java::lang::Object *, jint, jint); + virtual void fireIntervalAdded(::java::lang::Object *, jint, jint); + virtual void fireIntervalRemoved(::java::lang::Object *, jint, jint); +public: + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< ::javax::swing::event::ListDataListener * > * getListDataListeners(); + virtual jint getSize() = 0; + virtual ::java::lang::Object * getElementAt(jint) = 0; +private: + static const jlong serialVersionUID = -3285184064379168730LL; +public: // actually protected + ::javax::swing::event::EventListenerList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listenerList; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractListModel__ diff --git a/libjava/javax/swing/AbstractSpinnerModel.h b/libjava/javax/swing/AbstractSpinnerModel.h new file mode 100644 index 00000000000..dde4ac870ae --- /dev/null +++ b/libjava/javax/swing/AbstractSpinnerModel.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_AbstractSpinnerModel__ +#define __javax_swing_AbstractSpinnerModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class AbstractSpinnerModel; + namespace event + { + class ChangeEvent; + class ChangeListener; + class EventListenerList; + } + } + } +} + +class javax::swing::AbstractSpinnerModel : public ::java::lang::Object +{ + +public: + AbstractSpinnerModel(); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual void setValue(::java::lang::Object *) = 0; + virtual ::java::lang::Object * getValue() = 0; + virtual ::java::lang::Object * getNextValue() = 0; + virtual ::java::lang::Object * getPreviousValue() = 0; +private: + ::javax::swing::event::ChangeEvent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) changeEvent; +public: // actually protected + ::javax::swing::event::EventListenerList * listenerList; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_AbstractSpinnerModel__ diff --git a/libjava/javax/swing/Action.h b/libjava/javax/swing/Action.h new file mode 100644 index 00000000000..b3a42f4f0b5 --- /dev/null +++ b/libjava/javax/swing/Action.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Action__ +#define __javax_swing_Action__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class Action; + } + } +} + +class javax::swing::Action : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getValue(::java::lang::String *) = 0; + virtual void putValue(::java::lang::String *, ::java::lang::Object *) = 0; + virtual jboolean isEnabled() = 0; + virtual void setEnabled(jboolean) = 0; + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *) = 0; + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *) = 0; + virtual void actionPerformed(::java::awt::event::ActionEvent *) = 0; + static ::java::lang::String * DEFAULT; + static ::java::lang::String * LONG_DESCRIPTION; + static ::java::lang::String * NAME; + static ::java::lang::String * SHORT_DESCRIPTION; + static ::java::lang::String * SMALL_ICON; + static ::java::lang::String * ACCELERATOR_KEY; + static ::java::lang::String * ACTION_COMMAND_KEY; + static ::java::lang::String * MNEMONIC_KEY; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_Action__ diff --git a/libjava/javax/swing/ActionMap.h b/libjava/javax/swing/ActionMap.h new file mode 100644 index 00000000000..92e8e039ae6 --- /dev/null +++ b/libjava/javax/swing/ActionMap.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ActionMap__ +#define __javax_swing_ActionMap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + class ActionMap; + } + } +} + +class javax::swing::ActionMap : public ::java::lang::Object +{ + +public: + ActionMap(); + virtual ::javax::swing::Action * get(::java::lang::Object *); + virtual void put(::java::lang::Object *, ::javax::swing::Action *); + virtual void remove(::java::lang::Object *); + virtual ::javax::swing::ActionMap * getParent(); + virtual void setParent(::javax::swing::ActionMap *); + virtual jint size(); + virtual void clear(); + virtual JArray< ::java::lang::Object * > * keys(); + virtual JArray< ::java::lang::Object * > * allKeys(); +private: + static const jlong serialVersionUID = -6277518704513986346LL; + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) actionMap; + ::javax::swing::ActionMap * parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ActionMap__ diff --git a/libjava/javax/swing/BorderFactory.h b/libjava/javax/swing/BorderFactory.h new file mode 100644 index 00000000000..2a84d3366c5 --- /dev/null +++ b/libjava/javax/swing/BorderFactory.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_BorderFactory__ +#define __javax_swing_BorderFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + } + } + namespace javax + { + namespace swing + { + class BorderFactory; + class Icon; + namespace border + { + class Border; + class CompoundBorder; + class MatteBorder; + class TitledBorder; + } + } + } +} + +class javax::swing::BorderFactory : public ::java::lang::Object +{ + + BorderFactory(); +public: + static ::javax::swing::border::Border * createLineBorder(::java::awt::Color *); + static ::javax::swing::border::Border * createLineBorder(::java::awt::Color *, jint); + static ::javax::swing::border::Border * createRaisedBevelBorder(); + static ::javax::swing::border::Border * createLoweredBevelBorder(); + static ::javax::swing::border::Border * createBevelBorder(jint); + static ::javax::swing::border::Border * createBevelBorder(jint, ::java::awt::Color *, ::java::awt::Color *); + static ::javax::swing::border::Border * createBevelBorder(jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + static ::javax::swing::border::Border * createEtchedBorder(); + static ::javax::swing::border::Border * createEtchedBorder(jint); + static ::javax::swing::border::Border * createEtchedBorder(::java::awt::Color *, ::java::awt::Color *); + static ::javax::swing::border::Border * createEtchedBorder(jint, ::java::awt::Color *, ::java::awt::Color *); + static ::javax::swing::border::TitledBorder * createTitledBorder(::java::lang::String *); + static ::javax::swing::border::TitledBorder * createTitledBorder(::javax::swing::border::Border *); + static ::javax::swing::border::TitledBorder * createTitledBorder(::javax::swing::border::Border *, ::java::lang::String *); + static ::javax::swing::border::TitledBorder * createTitledBorder(::javax::swing::border::Border *, ::java::lang::String *, jint, jint); + static ::javax::swing::border::TitledBorder * createTitledBorder(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *); + static ::javax::swing::border::TitledBorder * createTitledBorder(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *, ::java::awt::Color *); + static ::javax::swing::border::Border * createEmptyBorder(); + static ::javax::swing::border::Border * createEmptyBorder(jint, jint, jint, jint); + static ::javax::swing::border::CompoundBorder * createCompoundBorder(); + static ::javax::swing::border::CompoundBorder * createCompoundBorder(::javax::swing::border::Border *, ::javax::swing::border::Border *); + static ::javax::swing::border::MatteBorder * createMatteBorder(jint, jint, jint, jint, ::java::awt::Color *); + static ::javax::swing::border::MatteBorder * createMatteBorder(jint, jint, jint, jint, ::javax::swing::Icon *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_BorderFactory__ diff --git a/libjava/javax/swing/BoundedRangeModel.h b/libjava/javax/swing/BoundedRangeModel.h new file mode 100644 index 00000000000..6842157c266 --- /dev/null +++ b/libjava/javax/swing/BoundedRangeModel.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_BoundedRangeModel__ +#define __javax_swing_BoundedRangeModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class BoundedRangeModel; + namespace event + { + class ChangeListener; + } + } + } +} + +class javax::swing::BoundedRangeModel : public ::java::lang::Object +{ + +public: + virtual jint getValue() = 0; + virtual void setValue(jint) = 0; + virtual jint getMinimum() = 0; + virtual void setMinimum(jint) = 0; + virtual jint getMaximum() = 0; + virtual void setMaximum(jint) = 0; + virtual jboolean getValueIsAdjusting() = 0; + virtual void setValueIsAdjusting(jboolean) = 0; + virtual jint getExtent() = 0; + virtual void setExtent(jint) = 0; + virtual void setRangeProperties(jint, jint, jint, jint, jboolean) = 0; + virtual void addChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void removeChangeListener(::javax::swing::event::ChangeListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_BoundedRangeModel__ diff --git a/libjava/javax/swing/Box$AccessibleBox.h b/libjava/javax/swing/Box$AccessibleBox.h new file mode 100644 index 00000000000..eb552a1857d --- /dev/null +++ b/libjava/javax/swing/Box$AccessibleBox.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Box$AccessibleBox__ +#define __javax_swing_Box$AccessibleBox__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class Box; + class Box$AccessibleBox; + } + } +} + +class javax::swing::Box$AccessibleBox : public ::java::awt::Container$AccessibleAWTContainer +{ + +public: // actually protected + Box$AccessibleBox(::javax::swing::Box *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = -7775079816389931944LL; +public: // actually package-private + ::javax::swing::Box * __attribute__((aligned(__alignof__( ::java::awt::Container$AccessibleAWTContainer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Box$AccessibleBox__ diff --git a/libjava/javax/swing/Box$Filler$AccessibleBoxFiller.h b/libjava/javax/swing/Box$Filler$AccessibleBoxFiller.h new file mode 100644 index 00000000000..66440c34421 --- /dev/null +++ b/libjava/javax/swing/Box$Filler$AccessibleBoxFiller.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Box$Filler$AccessibleBoxFiller__ +#define __javax_swing_Box$Filler$AccessibleBoxFiller__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class Box$Filler; + class Box$Filler$AccessibleBoxFiller; + } + } +} + +class javax::swing::Box$Filler$AccessibleBoxFiller : public ::java::awt::Component$AccessibleAWTComponent +{ + +public: // actually protected + Box$Filler$AccessibleBoxFiller(::javax::swing::Box$Filler *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 164963348357479321LL; +public: // actually package-private + ::javax::swing::Box$Filler * __attribute__((aligned(__alignof__( ::java::awt::Component$AccessibleAWTComponent)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Box$Filler$AccessibleBoxFiller__ diff --git a/libjava/javax/swing/Box$Filler.h b/libjava/javax/swing/Box$Filler.h new file mode 100644 index 00000000000..a16dc81500e --- /dev/null +++ b/libjava/javax/swing/Box$Filler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Box$Filler__ +#define __javax_swing_Box$Filler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Box$Filler; + } + } +} + +class javax::swing::Box$Filler : public ::javax::swing::JComponent +{ + +public: + Box$Filler(::java::awt::Dimension *, ::java::awt::Dimension *, ::java::awt::Dimension *); + virtual void changeShape(::java::awt::Dimension *, ::java::awt::Dimension *, ::java::awt::Dimension *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::awt::Dimension * getMaximumSize(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getPreferredSize(); +private: + static const jlong serialVersionUID = -1204263191910183998LL; + ::java::awt::Dimension * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) min; + ::java::awt::Dimension * pref; + ::java::awt::Dimension * max; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Box$Filler__ diff --git a/libjava/javax/swing/Box.h b/libjava/javax/swing/Box.h new file mode 100644 index 00000000000..29538a6eed8 --- /dev/null +++ b/libjava/javax/swing/Box.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Box__ +#define __javax_swing_Box__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class LayoutManager; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Box; + } + } +} + +class javax::swing::Box : public ::javax::swing::JComponent +{ + +public: + Box(jint); + static ::java::awt::Component * createGlue(); + static ::javax::swing::Box * createHorizontalBox(); + static ::java::awt::Component * createHorizontalGlue(); + static ::java::awt::Component * createHorizontalStrut(jint); + static ::java::awt::Component * createRigidArea(::java::awt::Dimension *); + static ::javax::swing::Box * createVerticalBox(); + static ::java::awt::Component * createVerticalGlue(); + static ::java::awt::Component * createVerticalStrut(jint); + virtual void setLayout(::java::awt::LayoutManager *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 1525417495883046342LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Box__ diff --git a/libjava/javax/swing/BoxLayout.h b/libjava/javax/swing/BoxLayout.h new file mode 100644 index 00000000000..c60bb8dd9b9 --- /dev/null +++ b/libjava/javax/swing/BoxLayout.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_BoxLayout__ +#define __javax_swing_BoxLayout__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + class BoxLayout; + class SizeRequirements; + } + } +} + +class javax::swing::BoxLayout : public ::java::lang::Object +{ + +public: + BoxLayout(::java::awt::Container *, jint); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); +private: + jboolean isHorizontalIn(::java::awt::Container *); +public: + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual void layoutContainer(::java::awt::Container *); + virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *); + virtual jfloat getLayoutAlignmentX(::java::awt::Container *); + virtual jfloat getLayoutAlignmentY(::java::awt::Container *); + virtual void invalidateLayout(::java::awt::Container *); + virtual ::java::awt::Dimension * maximumLayoutSize(::java::awt::Container *); +private: + void checkTotalRequirements(); + void checkRequirements(); + void checkLayout(); +public: + static const jint X_AXIS = 0; + static const jint Y_AXIS = 1; + static const jint LINE_AXIS = 2; + static const jint PAGE_AXIS = 3; +private: + static const jlong serialVersionUID = -2474455742719112368LL; + ::java::awt::Container * __attribute__((aligned(__alignof__( ::java::lang::Object)))) container; + jint way; + JArray< ::javax::swing::SizeRequirements * > * xChildren; + JArray< ::javax::swing::SizeRequirements * > * yChildren; + ::javax::swing::SizeRequirements * xTotal; + ::javax::swing::SizeRequirements * yTotal; + JArray< jint > * offsetsX; + JArray< jint > * offsetsY; + JArray< jint > * spansX; + JArray< jint > * spansY; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_BoxLayout__ diff --git a/libjava/javax/swing/ButtonGroup.h b/libjava/javax/swing/ButtonGroup.h new file mode 100644 index 00000000000..68f383ac653 --- /dev/null +++ b/libjava/javax/swing/ButtonGroup.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ButtonGroup__ +#define __javax_swing_ButtonGroup__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class AbstractButton; + class ButtonGroup; + class ButtonModel; + } + } +} + +class javax::swing::ButtonGroup : public ::java::lang::Object +{ + +public: + ButtonGroup(); + virtual void add(::javax::swing::AbstractButton *); + virtual void remove(::javax::swing::AbstractButton *); + virtual ::java::util::Enumeration * getElements(); + virtual ::javax::swing::ButtonModel * getSelection(); +public: // actually package-private + virtual ::javax::swing::AbstractButton * findButton(::javax::swing::ButtonModel *); +public: + virtual void setSelected(::javax::swing::ButtonModel *, jboolean); + virtual jboolean isSelected(::javax::swing::ButtonModel *); + virtual jint getButtonCount(); +private: + static const jlong serialVersionUID = 4259076101881721375LL; +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buttons; +public: // actually package-private + ::javax::swing::ButtonModel * sel; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ButtonGroup__ diff --git a/libjava/javax/swing/ButtonModel.h b/libjava/javax/swing/ButtonModel.h new file mode 100644 index 00000000000..5f137a654ba --- /dev/null +++ b/libjava/javax/swing/ButtonModel.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ButtonModel__ +#define __javax_swing_ButtonModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionListener; + class ItemListener; + } + } + } + namespace javax + { + namespace swing + { + class ButtonGroup; + class ButtonModel; + namespace event + { + class ChangeListener; + } + } + } +} + +class javax::swing::ButtonModel : public ::java::lang::Object +{ + +public: + virtual jboolean isArmed() = 0; + virtual void setArmed(jboolean) = 0; + virtual jboolean isEnabled() = 0; + virtual void setEnabled(jboolean) = 0; + virtual void setPressed(jboolean) = 0; + virtual jboolean isPressed() = 0; + virtual void removeActionListener(::java::awt::event::ActionListener *) = 0; + virtual void addActionListener(::java::awt::event::ActionListener *) = 0; + virtual void addItemListener(::java::awt::event::ItemListener *) = 0; + virtual void removeItemListener(::java::awt::event::ItemListener *) = 0; + virtual void addChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void removeChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void setRollover(jboolean) = 0; + virtual jboolean isRollover() = 0; + virtual jint getMnemonic() = 0; + virtual void setMnemonic(jint) = 0; + virtual void setActionCommand(::java::lang::String *) = 0; + virtual ::java::lang::String * getActionCommand() = 0; + virtual void setGroup(::javax::swing::ButtonGroup *) = 0; + virtual void setSelected(jboolean) = 0; + virtual jboolean isSelected() = 0; + virtual JArray< ::java::lang::Object * > * getSelectedObjects() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_ButtonModel__ diff --git a/libjava/javax/swing/CellEditor.h b/libjava/javax/swing/CellEditor.h new file mode 100644 index 00000000000..63e9c8b77f8 --- /dev/null +++ b/libjava/javax/swing/CellEditor.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_CellEditor__ +#define __javax_swing_CellEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class CellEditor; + namespace event + { + class CellEditorListener; + } + } + } +} + +class javax::swing::CellEditor : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getCellEditorValue() = 0; + virtual jboolean isCellEditable(::java::util::EventObject *) = 0; + virtual jboolean shouldSelectCell(::java::util::EventObject *) = 0; + virtual jboolean stopCellEditing() = 0; + virtual void cancelCellEditing() = 0; + virtual void addCellEditorListener(::javax::swing::event::CellEditorListener *) = 0; + virtual void removeCellEditorListener(::javax::swing::event::CellEditorListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_CellEditor__ diff --git a/libjava/javax/swing/CellRendererPane$AccessibleCellRendererPane.h b/libjava/javax/swing/CellRendererPane$AccessibleCellRendererPane.h new file mode 100644 index 00000000000..da0650bcb38 --- /dev/null +++ b/libjava/javax/swing/CellRendererPane$AccessibleCellRendererPane.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_CellRendererPane$AccessibleCellRendererPane__ +#define __javax_swing_CellRendererPane$AccessibleCellRendererPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class CellRendererPane; + class CellRendererPane$AccessibleCellRendererPane; + } + } +} + +class javax::swing::CellRendererPane$AccessibleCellRendererPane : public ::java::awt::Container$AccessibleAWTContainer +{ + +public: // actually protected + CellRendererPane$AccessibleCellRendererPane(::javax::swing::CellRendererPane *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = -8981090083147391074LL; +public: // actually package-private + ::javax::swing::CellRendererPane * __attribute__((aligned(__alignof__( ::java::awt::Container$AccessibleAWTContainer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_CellRendererPane$AccessibleCellRendererPane__ diff --git a/libjava/javax/swing/CellRendererPane.h b/libjava/javax/swing/CellRendererPane.h new file mode 100644 index 00000000000..af350004fed --- /dev/null +++ b/libjava/javax/swing/CellRendererPane.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_CellRendererPane__ +#define __javax_swing_CellRendererPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class CellRendererPane; + } + } +} + +class javax::swing::CellRendererPane : public ::java::awt::Container +{ + +public: + CellRendererPane(); + virtual void update(::java::awt::Graphics *); + virtual void invalidate(); + virtual void paint(::java::awt::Graphics *); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual void paintComponent(::java::awt::Graphics *, ::java::awt::Component *, ::java::awt::Container *, jint, jint, jint, jint, jboolean); + virtual void paintComponent(::java::awt::Graphics *, ::java::awt::Component *, ::java::awt::Container *, jint, jint, jint, jint); + virtual void paintComponent(::java::awt::Graphics *, ::java::awt::Component *, ::java::awt::Container *, ::java::awt::Rectangle *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -7642183829532984273LL; +public: // actually protected + ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::awt::Container)))) accessibleContext; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_CellRendererPane__ diff --git a/libjava/javax/swing/ComboBoxEditor.h b/libjava/javax/swing/ComboBoxEditor.h new file mode 100644 index 00000000000..14f0d457471 --- /dev/null +++ b/libjava/javax/swing/ComboBoxEditor.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ComboBoxEditor__ +#define __javax_swing_ComboBoxEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + namespace event + { + class ActionListener; + } + } + } + namespace javax + { + namespace swing + { + class ComboBoxEditor; + } + } +} + +class javax::swing::ComboBoxEditor : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Component * getEditorComponent() = 0; + virtual void setItem(::java::lang::Object *) = 0; + virtual ::java::lang::Object * getItem() = 0; + virtual void selectAll() = 0; + virtual void addActionListener(::java::awt::event::ActionListener *) = 0; + virtual void removeActionListener(::java::awt::event::ActionListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_ComboBoxEditor__ diff --git a/libjava/javax/swing/ComboBoxModel.h b/libjava/javax/swing/ComboBoxModel.h new file mode 100644 index 00000000000..0fd38ea13f2 --- /dev/null +++ b/libjava/javax/swing/ComboBoxModel.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ComboBoxModel__ +#define __javax_swing_ComboBoxModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ComboBoxModel; + namespace event + { + class ListDataListener; + } + } + } +} + +class javax::swing::ComboBoxModel : public ::java::lang::Object +{ + +public: + virtual void setSelectedItem(::java::lang::Object *) = 0; + virtual ::java::lang::Object * getSelectedItem() = 0; + virtual jint getSize() = 0; + virtual ::java::lang::Object * getElementAt(jint) = 0; + virtual void addListDataListener(::javax::swing::event::ListDataListener *) = 0; + virtual void removeListDataListener(::javax::swing::event::ListDataListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_ComboBoxModel__ diff --git a/libjava/javax/swing/CompatibilityFocusTraversalPolicy.h b/libjava/javax/swing/CompatibilityFocusTraversalPolicy.h new file mode 100644 index 00000000000..46fcc805157 --- /dev/null +++ b/libjava/javax/swing/CompatibilityFocusTraversalPolicy.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_CompatibilityFocusTraversalPolicy__ +#define __javax_swing_CompatibilityFocusTraversalPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class FocusTraversalPolicy; + } + } + namespace javax + { + namespace swing + { + class CompatibilityFocusTraversalPolicy; + } + } +} + +class javax::swing::CompatibilityFocusTraversalPolicy : public ::java::awt::FocusTraversalPolicy +{ + +public: // actually package-private + CompatibilityFocusTraversalPolicy(::java::awt::FocusTraversalPolicy *); +public: + virtual ::java::awt::Component * getComponentAfter(::java::awt::Container *, ::java::awt::Component *); + 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 *); +public: // actually package-private + virtual void setNextFocusableComponent(::java::awt::Component *, ::java::awt::Component *); + virtual void addNextFocusableComponent(::java::awt::Component *, ::java::awt::Component *); + virtual void removeNextFocusableComponent(::java::awt::Component *, ::java::awt::Component *); +private: + ::java::awt::FocusTraversalPolicy * __attribute__((aligned(__alignof__( ::java::awt::FocusTraversalPolicy)))) fallback; + ::java::util::HashMap * forward; + ::java::util::HashMap * backward; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_CompatibilityFocusTraversalPolicy__ diff --git a/libjava/javax/swing/ComponentInputMap.h b/libjava/javax/swing/ComponentInputMap.h new file mode 100644 index 00000000000..e0ec4e94636 --- /dev/null +++ b/libjava/javax/swing/ComponentInputMap.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ComponentInputMap__ +#define __javax_swing_ComponentInputMap__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ComponentInputMap; + class InputMap; + class JComponent; + class KeyStroke; + } + } +} + +class javax::swing::ComponentInputMap : public ::javax::swing::InputMap +{ + +public: + ComponentInputMap(::javax::swing::JComponent *); + virtual void put(::javax::swing::KeyStroke *, ::java::lang::Object *); + virtual void clear(); + virtual void remove(::javax::swing::KeyStroke *); + virtual void setParent(::javax::swing::InputMap *); + virtual ::javax::swing::JComponent * getComponent(); +private: + ::javax::swing::JComponent * __attribute__((aligned(__alignof__( ::javax::swing::InputMap)))) component; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ComponentInputMap__ diff --git a/libjava/javax/swing/DebugGraphics.h b/libjava/javax/swing/DebugGraphics.h new file mode 100644 index 00000000000..c21460f6d96 --- /dev/null +++ b/libjava/javax/swing/DebugGraphics.h @@ -0,0 +1,132 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DebugGraphics__ +#define __javax_swing_DebugGraphics__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + class FontMetrics; + class Graphics; + class Image; + class Rectangle; + class Shape; + namespace image + { + class ImageObserver; + } + } + namespace text + { + class AttributedCharacterIterator; + } + } + namespace javax + { + namespace swing + { + class DebugGraphics; + class JComponent; + } + } +} + +class javax::swing::DebugGraphics : public ::java::awt::Graphics +{ + +public: + DebugGraphics(); + DebugGraphics(::java::awt::Graphics *, ::javax::swing::JComponent *); + DebugGraphics(::java::awt::Graphics *); + virtual void setColor(::java::awt::Color *); + virtual ::java::awt::Graphics * create(); + virtual ::java::awt::Graphics * create(jint, jint, jint, jint); + static ::java::awt::Color * flashColor(); + static void setFlashColor(::java::awt::Color *); + static jint flashTime(); + static void setFlashTime(jint); + static jint flashCount(); + static void setFlashCount(jint); + static ::java::io::PrintStream * logStream(); + static void setLogStream(::java::io::PrintStream *); + virtual ::java::awt::Font * getFont(); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::Color * getColor(); + virtual ::java::awt::FontMetrics * getFontMetrics(); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual void translate(jint, jint); + virtual void setPaintMode(); + virtual void setXORMode(::java::awt::Color *); + virtual ::java::awt::Rectangle * getClipBounds(); + virtual void clipRect(jint, jint, jint, jint); + virtual void setClip(jint, jint, jint, jint); + virtual ::java::awt::Shape * getClip(); + virtual void setClip(::java::awt::Shape *); +private: + void sleep(jint); +public: + virtual void drawRect(jint, jint, jint, jint); + virtual void fillRect(jint, jint, jint, jint); + virtual void clearRect(jint, jint, jint, jint); + virtual void drawRoundRect(jint, jint, jint, jint, jint, jint); + virtual void fillRoundRect(jint, jint, jint, jint, jint, jint); + virtual void drawLine(jint, jint, jint, jint); + virtual void draw3DRect(jint, jint, jint, jint, jboolean); + virtual void fill3DRect(jint, jint, jint, jint, jboolean); + virtual void drawOval(jint, jint, jint, jint); + virtual void fillOval(jint, jint, jint, jint); + virtual void drawArc(jint, jint, jint, jint, jint, jint); + virtual void fillArc(jint, jint, jint, jint, jint, jint); + virtual void drawPolyline(JArray< jint > *, JArray< jint > *, jint); + virtual void drawPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint); + virtual void drawString(::java::lang::String *, jint, jint); + virtual void drawString(::java::text::AttributedCharacterIterator *, jint, jint); + virtual void drawBytes(JArray< jbyte > *, jint, jint, jint, jint); + virtual void drawChars(JArray< jchar > *, jint, jint, jint, jint); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::image::ImageObserver *); + virtual jboolean drawImage(::java::awt::Image *, jint, jint, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::image::ImageObserver *); + virtual void copyArea(jint, jint, jint, jint, jint, jint); + virtual void dispose(); + virtual jboolean isDrawingBuffer(); + virtual void setDebugOptions(jint); + virtual jint getDebugOptions(); +private: + ::java::lang::String * prefix(); +public: + static const jint LOG_OPTION = 1; + static const jint FLASH_OPTION = 2; + static const jint BUFFERED_OPTION = 4; + static const jint NONE_OPTION = -1; +public: // actually package-private + static ::java::awt::Color * debugFlashColor; + static jint debugFlashCount; + static jint debugFlashTime; + static ::java::io::PrintStream * debugLogStream; + static jint counter; + ::java::awt::Graphics * __attribute__((aligned(__alignof__( ::java::awt::Graphics)))) graphics; + ::java::awt::Image * buffer; + jint debugOptions; + jint graphicsID; + jint xOffset; + jint yOffset; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DebugGraphics__ diff --git a/libjava/javax/swing/DefaultBoundedRangeModel.h b/libjava/javax/swing/DefaultBoundedRangeModel.h new file mode 100644 index 00000000000..61d780d7a4a --- /dev/null +++ b/libjava/javax/swing/DefaultBoundedRangeModel.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultBoundedRangeModel__ +#define __javax_swing_DefaultBoundedRangeModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultBoundedRangeModel; + namespace event + { + class ChangeEvent; + class ChangeListener; + class EventListenerList; + } + } + } +} + +class javax::swing::DefaultBoundedRangeModel : public ::java::lang::Object +{ + +public: + DefaultBoundedRangeModel(); + DefaultBoundedRangeModel(jint, jint, jint, jint); + virtual ::java::lang::String * toString(); + virtual jint getValue(); + virtual void setValue(jint); + virtual jint getExtent(); + virtual void setExtent(jint); + virtual jint getMinimum(); + virtual void setMinimum(jint); + virtual jint getMaximum(); + virtual void setMaximum(jint); + virtual jboolean getValueIsAdjusting(); + virtual void setValueIsAdjusting(jboolean); + virtual void setRangeProperties(jint, jint, jint, jint, jboolean); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); + static const jlong serialVersionUID = 5034068491295259790LL; +public: // actually protected + ::javax::swing::event::ChangeEvent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) changeEvent; + ::javax::swing::event::EventListenerList * listenerList; +private: + jint value; + jint extent; + jint minimum; + jint maximum; + jboolean isAdjusting; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultBoundedRangeModel__ diff --git a/libjava/javax/swing/DefaultButtonModel.h b/libjava/javax/swing/DefaultButtonModel.h new file mode 100644 index 00000000000..735898ddb1c --- /dev/null +++ b/libjava/javax/swing/DefaultButtonModel.h @@ -0,0 +1,99 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultButtonModel__ +#define __javax_swing_DefaultButtonModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ActionListener; + class ItemEvent; + class ItemListener; + } + } + } + namespace javax + { + namespace swing + { + class ButtonGroup; + class DefaultButtonModel; + namespace event + { + class ChangeEvent; + class ChangeListener; + class EventListenerList; + } + } + } +} + +class javax::swing::DefaultButtonModel : public ::java::lang::Object +{ + +public: + DefaultButtonModel(); + virtual JArray< ::java::lang::Object * > * getSelectedObjects(); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual void addActionListener(::java::awt::event::ActionListener *); + virtual void removeActionListener(::java::awt::event::ActionListener *); + virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners(); + virtual void addItemListener(::java::awt::event::ItemListener *); + virtual void removeItemListener(::java::awt::event::ItemListener *); + virtual JArray< ::java::awt::event::ItemListener * > * getItemListeners(); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +public: // actually protected + virtual void fireItemStateChanged(::java::awt::event::ItemEvent *); + virtual void fireActionPerformed(::java::awt::event::ActionEvent *); + virtual void fireStateChanged(); +public: + virtual jboolean isArmed(); + virtual void setArmed(jboolean); + virtual jboolean isEnabled(); + virtual void setEnabled(jboolean); + virtual void setPressed(jboolean); + virtual jboolean isPressed(); + virtual void setRollover(jboolean); + virtual void setSelected(jboolean); + virtual jboolean isSelected(); + virtual jboolean isRollover(); + virtual jint getMnemonic(); + virtual void setMnemonic(jint); + virtual void setActionCommand(::java::lang::String *); + virtual ::java::lang::String * getActionCommand(); + virtual void setGroup(::javax::swing::ButtonGroup *); + virtual ::javax::swing::ButtonGroup * getGroup(); +private: + static const jlong serialVersionUID = -5342609566534980231LL; +public: + static const jint ARMED = 1; + static const jint ENABLED = 8; + static const jint PRESSED = 4; + static const jint ROLLOVER = 16; + static const jint SELECTED = 2; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) stateMask; + ::javax::swing::event::EventListenerList * listenerList; + ::javax::swing::event::ChangeEvent * changeEvent; + ::javax::swing::ButtonGroup * group; + jint mnemonic; + ::java::lang::String * actionCommand; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultButtonModel__ diff --git a/libjava/javax/swing/DefaultCellEditor$EditorDelegate.h b/libjava/javax/swing/DefaultCellEditor$EditorDelegate.h new file mode 100644 index 00000000000..a571c5c5a8c --- /dev/null +++ b/libjava/javax/swing/DefaultCellEditor$EditorDelegate.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultCellEditor$EditorDelegate__ +#define __javax_swing_DefaultCellEditor$EditorDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ItemEvent; + } + } + } + namespace javax + { + namespace swing + { + class DefaultCellEditor; + class DefaultCellEditor$EditorDelegate; + } + } +} + +class javax::swing::DefaultCellEditor$EditorDelegate : public ::java::lang::Object +{ + +public: // actually protected + DefaultCellEditor$EditorDelegate(::javax::swing::DefaultCellEditor *); +public: + virtual void setValue(::java::lang::Object *); + virtual ::java::lang::Object * getCellEditorValue(); + virtual jboolean isCellEditable(::java::util::EventObject *); + virtual jboolean shouldSelectCell(::java::util::EventObject *); + virtual jboolean stopCellEditing(); + virtual void cancelCellEditing(); + virtual jboolean startCellEditing(::java::util::EventObject *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual void itemStateChanged(::java::awt::event::ItemEvent *); +public: // actually package-private + virtual void fireEditingStopped(); + virtual void fireEditingCanceled(); +private: + static const jlong serialVersionUID = -1420007406015481933LL; +public: // actually protected + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +public: // actually package-private + ::javax::swing::DefaultCellEditor * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultCellEditor$EditorDelegate__ diff --git a/libjava/javax/swing/DefaultCellEditor$JCheckBoxDelegate.h b/libjava/javax/swing/DefaultCellEditor$JCheckBoxDelegate.h new file mode 100644 index 00000000000..08ecd3d5939 --- /dev/null +++ b/libjava/javax/swing/DefaultCellEditor$JCheckBoxDelegate.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultCellEditor$JCheckBoxDelegate__ +#define __javax_swing_DefaultCellEditor$JCheckBoxDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultCellEditor; + class DefaultCellEditor$JCheckBoxDelegate; + } + } +} + +class javax::swing::DefaultCellEditor$JCheckBoxDelegate : public ::javax::swing::DefaultCellEditor$EditorDelegate +{ + + DefaultCellEditor$JCheckBoxDelegate(::javax::swing::DefaultCellEditor *); +public: + virtual void setValue(::java::lang::Object *); + virtual ::java::lang::Object * getCellEditorValue(); +public: // actually package-private + DefaultCellEditor$JCheckBoxDelegate(::javax::swing::DefaultCellEditor *, ::javax::swing::DefaultCellEditor$JCheckBoxDelegate *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::javax::swing::DefaultCellEditor * __attribute__((aligned(__alignof__( ::javax::swing::DefaultCellEditor$EditorDelegate)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultCellEditor$JCheckBoxDelegate__ diff --git a/libjava/javax/swing/DefaultCellEditor$JComboBoxDelegate.h b/libjava/javax/swing/DefaultCellEditor$JComboBoxDelegate.h new file mode 100644 index 00000000000..abfa15cc767 --- /dev/null +++ b/libjava/javax/swing/DefaultCellEditor$JComboBoxDelegate.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultCellEditor$JComboBoxDelegate__ +#define __javax_swing_DefaultCellEditor$JComboBoxDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultCellEditor; + class DefaultCellEditor$JComboBoxDelegate; + } + } +} + +class javax::swing::DefaultCellEditor$JComboBoxDelegate : public ::javax::swing::DefaultCellEditor$EditorDelegate +{ + + DefaultCellEditor$JComboBoxDelegate(::javax::swing::DefaultCellEditor *); +public: + virtual void setValue(::java::lang::Object *); + virtual ::java::lang::Object * getCellEditorValue(); + virtual jboolean shouldSelectCell(::java::util::EventObject *); +public: // actually package-private + DefaultCellEditor$JComboBoxDelegate(::javax::swing::DefaultCellEditor *, ::javax::swing::DefaultCellEditor$JComboBoxDelegate *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::javax::swing::DefaultCellEditor * __attribute__((aligned(__alignof__( ::javax::swing::DefaultCellEditor$EditorDelegate)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultCellEditor$JComboBoxDelegate__ diff --git a/libjava/javax/swing/DefaultCellEditor$JTextFieldDelegate.h b/libjava/javax/swing/DefaultCellEditor$JTextFieldDelegate.h new file mode 100644 index 00000000000..dcaf8f1781e --- /dev/null +++ b/libjava/javax/swing/DefaultCellEditor$JTextFieldDelegate.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultCellEditor$JTextFieldDelegate__ +#define __javax_swing_DefaultCellEditor$JTextFieldDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultCellEditor; + class DefaultCellEditor$JTextFieldDelegate; + } + } +} + +class javax::swing::DefaultCellEditor$JTextFieldDelegate : public ::javax::swing::DefaultCellEditor$EditorDelegate +{ + + DefaultCellEditor$JTextFieldDelegate(::javax::swing::DefaultCellEditor *); +public: + virtual void setValue(::java::lang::Object *); + virtual ::java::lang::Object * getCellEditorValue(); +public: // actually package-private + DefaultCellEditor$JTextFieldDelegate(::javax::swing::DefaultCellEditor *, ::javax::swing::DefaultCellEditor$JTextFieldDelegate *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::javax::swing::DefaultCellEditor * __attribute__((aligned(__alignof__( ::javax::swing::DefaultCellEditor$EditorDelegate)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultCellEditor$JTextFieldDelegate__ diff --git a/libjava/javax/swing/DefaultCellEditor.h b/libjava/javax/swing/DefaultCellEditor.h new file mode 100644 index 00000000000..0c62413be2d --- /dev/null +++ b/libjava/javax/swing/DefaultCellEditor.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultCellEditor__ +#define __javax_swing_DefaultCellEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class DefaultCellEditor; + class DefaultCellEditor$EditorDelegate; + class JCheckBox; + class JComboBox; + class JComponent; + class JTable; + class JTextField; + class JTree; + } + } +} + +class javax::swing::DefaultCellEditor : public ::javax::swing::AbstractCellEditor +{ + +public: + DefaultCellEditor(::javax::swing::JTextField *); + DefaultCellEditor(::javax::swing::JCheckBox *); + DefaultCellEditor(::javax::swing::JComboBox *); + virtual ::java::awt::Component * getComponent(); + virtual jint getClickCountToStart(); + virtual void setClickCountToStart(jint); + virtual ::java::lang::Object * getCellEditorValue(); + virtual jboolean isCellEditable(::java::util::EventObject *); + virtual jboolean shouldSelectCell(::java::util::EventObject *); + virtual jboolean stopCellEditing(); + virtual void cancelCellEditing(); + virtual ::java::awt::Component * getTreeCellEditorComponent(::javax::swing::JTree *, ::java::lang::Object *, jboolean, jboolean, jboolean, jint); + virtual ::java::awt::Component * getTableCellEditorComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jint, jint); +private: + static const jlong serialVersionUID = 3564035141373880027LL; +public: // actually protected + ::javax::swing::JComponent * __attribute__((aligned(__alignof__( ::javax::swing::AbstractCellEditor)))) editorComponent; + ::javax::swing::DefaultCellEditor$EditorDelegate * delegate; + jint clickCountToStart; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultCellEditor__ diff --git a/libjava/javax/swing/DefaultComboBoxModel.h b/libjava/javax/swing/DefaultComboBoxModel.h new file mode 100644 index 00000000000..9c5e721f750 --- /dev/null +++ b/libjava/javax/swing/DefaultComboBoxModel.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultComboBoxModel__ +#define __javax_swing_DefaultComboBoxModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultComboBoxModel; + } + } +} + +class javax::swing::DefaultComboBoxModel : public ::javax::swing::AbstractListModel +{ + +public: + DefaultComboBoxModel(); + DefaultComboBoxModel(JArray< ::java::lang::Object * > *); + DefaultComboBoxModel(::java::util::Vector *); + virtual void addElement(::java::lang::Object *); + virtual void removeElementAt(jint); + virtual void insertElementAt(::java::lang::Object *, jint); + virtual void removeElement(::java::lang::Object *); + virtual void removeAllElements(); + virtual jint getSize(); + virtual void setSelectedItem(::java::lang::Object *); + virtual ::java::lang::Object * getSelectedItem(); + virtual ::java::lang::Object * getElementAt(jint); + virtual jint getIndexOf(::java::lang::Object *); +private: + static const jlong serialVersionUID = 6698657703676921904LL; + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) list; + ::java::lang::Object * selectedItem; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultComboBoxModel__ diff --git a/libjava/javax/swing/DefaultDesktopManager.h b/libjava/javax/swing/DefaultDesktopManager.h new file mode 100644 index 00000000000..2857f0dfbfc --- /dev/null +++ b/libjava/javax/swing/DefaultDesktopManager.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultDesktopManager__ +#define __javax_swing_DefaultDesktopManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class DefaultDesktopManager; + class JComponent; + class JInternalFrame; + } + } +} + +class javax::swing::DefaultDesktopManager : public ::java::lang::Object +{ + +public: + DefaultDesktopManager(); + virtual void openFrame(::javax::swing::JInternalFrame *); + virtual void closeFrame(::javax::swing::JInternalFrame *); + virtual void maximizeFrame(::javax::swing::JInternalFrame *); + virtual void minimizeFrame(::javax::swing::JInternalFrame *); + virtual void iconifyFrame(::javax::swing::JInternalFrame *); + virtual void deiconifyFrame(::javax::swing::JInternalFrame *); + virtual void activateFrame(::javax::swing::JInternalFrame *); + virtual void deactivateFrame(::javax::swing::JInternalFrame *); + virtual void beginDraggingFrame(::javax::swing::JComponent *); + virtual void dragFrame(::javax::swing::JComponent *, jint, jint); + virtual void endDraggingFrame(::javax::swing::JComponent *); + virtual void beginResizingFrame(::javax::swing::JComponent *, jint); + virtual void resizeFrame(::javax::swing::JComponent *, jint, jint, jint, jint); + virtual void endResizingFrame(::javax::swing::JComponent *); + virtual void setBoundsForFrame(::javax::swing::JComponent *, jint, jint, jint, jint); +public: // actually protected + virtual void removeIconFor(::javax::swing::JInternalFrame *); + virtual ::java::awt::Rectangle * getBoundsForIconOf(::javax::swing::JInternalFrame *); + virtual void setPreviousBounds(::javax::swing::JInternalFrame *, ::java::awt::Rectangle *); + virtual ::java::awt::Rectangle * getPreviousBounds(::javax::swing::JInternalFrame *); + virtual void setWasIcon(::javax::swing::JInternalFrame *, ::java::lang::Boolean *); + virtual jboolean wasIcon(::javax::swing::JInternalFrame *); +private: + static const jlong serialVersionUID = 4657624909838017887LL; +public: // actually package-private + static ::java::lang::String * WAS_ICON_ONCE_PROPERTY; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) currentDragMode; + ::java::awt::Rectangle * dragCache; + ::java::awt::Container * pane; + JArray< ::java::awt::Rectangle * > * iconRects; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultDesktopManager__ diff --git a/libjava/javax/swing/DefaultFocusManager.h b/libjava/javax/swing/DefaultFocusManager.h new file mode 100644 index 00000000000..a1eec270a61 --- /dev/null +++ b/libjava/javax/swing/DefaultFocusManager.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultFocusManager__ +#define __javax_swing_DefaultFocusManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace swing + { + class DefaultFocusManager; + } + } +} + +class javax::swing::DefaultFocusManager : public ::javax::swing::FocusManager +{ + +public: + DefaultFocusManager(); + virtual void processKeyEvent(::java::awt::Component *, ::java::awt::event::KeyEvent *); + virtual void focusNextComponent(::java::awt::Component *); + virtual void focusPreviousComponent(::java::awt::Component *); + virtual ::java::awt::Component * getFirstComponent(::java::awt::Container *); + virtual ::java::awt::Component * getLastComponent(::java::awt::Container *); + virtual ::java::awt::Component * getComponentBefore(::java::awt::Container *, ::java::awt::Component *); + virtual ::java::awt::Component * getComponentAfter(::java::awt::Container *, ::java::awt::Component *); + virtual jboolean compareTabOrder(::java::awt::Component *, ::java::awt::Component *); +private: + ::java::util::Stack * __attribute__((aligned(__alignof__( ::javax::swing::FocusManager)))) historyStack; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultFocusManager__ diff --git a/libjava/javax/swing/DefaultListCellRenderer$UIResource.h b/libjava/javax/swing/DefaultListCellRenderer$UIResource.h new file mode 100644 index 00000000000..91435fb16f6 --- /dev/null +++ b/libjava/javax/swing/DefaultListCellRenderer$UIResource.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultListCellRenderer$UIResource__ +#define __javax_swing_DefaultListCellRenderer$UIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultListCellRenderer$UIResource; + } + } +} + +class javax::swing::DefaultListCellRenderer$UIResource : public ::javax::swing::DefaultListCellRenderer +{ + +public: + DefaultListCellRenderer$UIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultListCellRenderer$UIResource__ diff --git a/libjava/javax/swing/DefaultListCellRenderer.h b/libjava/javax/swing/DefaultListCellRenderer.h new file mode 100644 index 00000000000..320767aa579 --- /dev/null +++ b/libjava/javax/swing/DefaultListCellRenderer.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultListCellRenderer__ +#define __javax_swing_DefaultListCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class DefaultListCellRenderer; + class JList; + namespace border + { + class Border; + } + } + } +} + +class javax::swing::DefaultListCellRenderer : public ::javax::swing::JLabel +{ + +public: + DefaultListCellRenderer(); + virtual ::java::awt::Component * getListCellRendererComponent(::javax::swing::JList *, ::java::lang::Object *, jint, jboolean, jboolean); + virtual void validate(); + virtual void revalidate(); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void repaint(::java::awt::Rectangle *); +public: // actually protected + virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); +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 *, jint, jint); + 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 firePropertyChange(::java::lang::String *, jboolean, jboolean); +private: + static const jlong serialVersionUID = 7708947179685189462LL; +public: // actually protected + static ::javax::swing::border::Border * noFocusBorder; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultListCellRenderer__ diff --git a/libjava/javax/swing/DefaultListModel.h b/libjava/javax/swing/DefaultListModel.h new file mode 100644 index 00000000000..67ca91bdc51 --- /dev/null +++ b/libjava/javax/swing/DefaultListModel.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultListModel__ +#define __javax_swing_DefaultListModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultListModel; + } + } +} + +class javax::swing::DefaultListModel : public ::javax::swing::AbstractListModel +{ + +public: + DefaultListModel(); + virtual ::java::lang::Object * elementAt(jint); + virtual ::java::lang::String * toString(); + 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 * get(jint); + virtual ::java::lang::Object * set(jint, ::java::lang::Object *); + virtual void add(jint, ::java::lang::Object *); + virtual void addElement(::java::lang::Object *); + virtual jint size(); + virtual JArray< ::java::lang::Object * > * toArray(); + virtual jboolean contains(::java::lang::Object *); + virtual void copyInto(JArray< ::java::lang::Object * > *); + virtual void clear(); + virtual ::java::lang::Object * remove(jint); + virtual jboolean isEmpty(); + virtual ::java::util::Enumeration * elements(); + virtual void trimToSize(); + virtual void ensureCapacity(jint); + virtual void setSize(jint); + virtual jint capacity(); + 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 jboolean removeElement(::java::lang::Object *); + virtual void removeAllElements(); + virtual void removeRange(jint, jint); + virtual jint getSize(); + virtual ::java::lang::Object * getElementAt(jint); +private: + static const jlong serialVersionUID = 2315945659722172272LL; + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) elements__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultListModel__ diff --git a/libjava/javax/swing/DefaultListSelectionModel.h b/libjava/javax/swing/DefaultListSelectionModel.h new file mode 100644 index 00000000000..0a0ed22a363 --- /dev/null +++ b/libjava/javax/swing/DefaultListSelectionModel.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultListSelectionModel__ +#define __javax_swing_DefaultListSelectionModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultListSelectionModel; + namespace event + { + class EventListenerList; + class ListSelectionListener; + } + } + } +} + +class javax::swing::DefaultListSelectionModel : public ::java::lang::Object +{ + +public: + DefaultListSelectionModel(); + virtual jint getSelectionMode(); + virtual void setSelectionMode(jint); + virtual jint getAnchorSelectionIndex(); + virtual void setAnchorSelectionIndex(jint); + virtual jint getLeadSelectionIndex(); + virtual void setLeadSelectionIndex(jint); + virtual void moveLeadSelectionIndex(jint); + virtual jboolean isLeadAnchorNotificationEnabled(); + virtual void setLeadAnchorNotificationEnabled(jboolean); + virtual jboolean getValueIsAdjusting(); + virtual void setValueIsAdjusting(jboolean); + virtual jboolean isSelectionEmpty(); + virtual jint getMinSelectionIndex(); + virtual jint getMaxSelectionIndex(); + virtual jboolean isSelectedIndex(jint); + virtual void addSelectionInterval(jint, jint); + virtual void removeSelectionInterval(jint, jint); + virtual void clearSelection(); +private: + void fireDifference(::java::util::BitSet *, ::java::util::BitSet *); +public: + virtual void setSelectionInterval(jint, jint); + virtual void insertIndexInterval(jint, jint, jboolean); + virtual void removeIndexInterval(jint, jint); +public: // actually protected + virtual void fireValueChanged(jboolean); + virtual void fireValueChanged(jint, jint); + virtual void fireValueChanged(jint, jint, jboolean); +public: + virtual void addListSelectionListener(::javax::swing::event::ListSelectionListener *); + virtual void removeListSelectionListener(::javax::swing::event::ListSelectionListener *); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< ::javax::swing::event::ListSelectionListener * > * getListSelectionListeners(); + virtual ::java::lang::Object * clone(); +private: + static const jlong serialVersionUID = -5718799865110415860LL; +public: // actually protected + ::javax::swing::event::EventListenerList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listenerList; +public: // actually package-private + jint selectionMode; + jint leadSelectionIndex; + jint anchorSelectionIndex; +public: // actually protected + jboolean leadAnchorNotificationEnabled; +public: // actually package-private + jboolean valueIsAdjusting; + ::java::util::BitSet * sel; + ::java::lang::Object * oldSel; + jboolean setLeadCalledFromAdd; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultListSelectionModel__ diff --git a/libjava/javax/swing/DefaultSingleSelectionModel.h b/libjava/javax/swing/DefaultSingleSelectionModel.h new file mode 100644 index 00000000000..8ea8f8e796d --- /dev/null +++ b/libjava/javax/swing/DefaultSingleSelectionModel.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DefaultSingleSelectionModel__ +#define __javax_swing_DefaultSingleSelectionModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultSingleSelectionModel; + namespace event + { + class ChangeEvent; + class ChangeListener; + class EventListenerList; + } + } + } +} + +class javax::swing::DefaultSingleSelectionModel : public ::java::lang::Object +{ + +public: + DefaultSingleSelectionModel(); + virtual jint getSelectedIndex(); + virtual void setSelectedIndex(jint); + virtual void clearSelection(); + virtual jboolean isSelected(); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +private: + static const jlong serialVersionUID = 3676229404753786004LL; +public: // actually protected + ::javax::swing::event::ChangeEvent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) changeEvent; + ::javax::swing::event::EventListenerList * listenerList; +private: + jint index; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_DefaultSingleSelectionModel__ diff --git a/libjava/javax/swing/DesktopManager.h b/libjava/javax/swing/DesktopManager.h new file mode 100644 index 00000000000..7981bdbb5aa --- /dev/null +++ b/libjava/javax/swing/DesktopManager.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_DesktopManager__ +#define __javax_swing_DesktopManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class DesktopManager; + class JComponent; + class JInternalFrame; + } + } +} + +class javax::swing::DesktopManager : public ::java::lang::Object +{ + +public: + virtual void openFrame(::javax::swing::JInternalFrame *) = 0; + virtual void closeFrame(::javax::swing::JInternalFrame *) = 0; + virtual void maximizeFrame(::javax::swing::JInternalFrame *) = 0; + virtual void minimizeFrame(::javax::swing::JInternalFrame *) = 0; + virtual void iconifyFrame(::javax::swing::JInternalFrame *) = 0; + virtual void deiconifyFrame(::javax::swing::JInternalFrame *) = 0; + virtual void activateFrame(::javax::swing::JInternalFrame *) = 0; + virtual void deactivateFrame(::javax::swing::JInternalFrame *) = 0; + virtual void beginDraggingFrame(::javax::swing::JComponent *) = 0; + virtual void dragFrame(::javax::swing::JComponent *, jint, jint) = 0; + virtual void endDraggingFrame(::javax::swing::JComponent *) = 0; + virtual void beginResizingFrame(::javax::swing::JComponent *, jint) = 0; + virtual void resizeFrame(::javax::swing::JComponent *, jint, jint, jint, jint) = 0; + virtual void endResizingFrame(::javax::swing::JComponent *) = 0; + virtual void setBoundsForFrame(::javax::swing::JComponent *, jint, jint, jint, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_DesktopManager__ diff --git a/libjava/javax/swing/FocusManager$WrappingFocusManager.h b/libjava/javax/swing/FocusManager$WrappingFocusManager.h new file mode 100644 index 00000000000..6ff193c5359 --- /dev/null +++ b/libjava/javax/swing/FocusManager$WrappingFocusManager.h @@ -0,0 +1,93 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_FocusManager$WrappingFocusManager__ +#define __javax_swing_FocusManager$WrappingFocusManager__ + +#pragma interface + +#include +#include + +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 VetoableChangeListener; + } + } + namespace javax + { + namespace swing + { + class FocusManager$WrappingFocusManager; + } + } +} + +class javax::swing::FocusManager$WrappingFocusManager : public ::javax::swing::FocusManager +{ + +public: // actually package-private + FocusManager$WrappingFocusManager(::java::awt::KeyboardFocusManager *); +public: + virtual jboolean dispatchEvent(::java::awt::AWTEvent *); + virtual jboolean dispatchKeyEvent(::java::awt::event::KeyEvent *); + virtual void downFocusCycle(::java::awt::Container *); + virtual void upFocusCycle(::java::awt::Container *); + virtual void focusNextComponent(::java::awt::Component *); + virtual void focusPreviousComponent(::java::awt::Component *); + virtual jboolean postProcessKeyEvent(::java::awt::event::KeyEvent *); + virtual void processKeyEvent(::java::awt::Component *, ::java::awt::event::KeyEvent *); + virtual void addKeyEventDispatcher(::java::awt::KeyEventDispatcher *); + virtual void addKeyEventPostProcessor(::java::awt::KeyEventPostProcessor *); + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void addPropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *); + virtual void addVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *); + virtual void addVetoableChangeListener(::java::beans::VetoableChangeListener *); + virtual void clearGlobalFocusOwner(); + virtual ::java::awt::Window * getActiveWindow(); + virtual ::java::awt::Container * getCurrentFocusCycleRoot(); + virtual ::java::util::Set * getDefaultFocusTraversalKeys(jint); + virtual ::java::awt::FocusTraversalPolicy * getDefaultFocusTraversalPolicy(); + virtual ::java::awt::Window * getFocusedWindow(); + virtual ::java::awt::Component * getFocusOwner(); + virtual ::java::awt::Component * getPermanentFocusOwner(); + virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(); + virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(::java::lang::String *); + virtual JArray< ::java::beans::VetoableChangeListener * > * getVetoableChangeListeners(); + virtual JArray< ::java::beans::VetoableChangeListener * > * getVetoableChangeListeners(::java::lang::String *); + virtual void removeKeyEventDispatcher(::java::awt::KeyEventDispatcher *); + virtual void removeKeyEventPostProcessor(::java::awt::KeyEventPostProcessor *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::lang::String *, ::java::beans::PropertyChangeListener *); + virtual void removeVetoableChangeListener(::java::beans::VetoableChangeListener *); + virtual void removeVetoableChangeListener(::java::lang::String *, ::java::beans::VetoableChangeListener *); + virtual void setDefaultFocusTraversalKeys(jint, ::java::util::Set *); + virtual void setDefaultFocusTraversalPolicy(::java::awt::FocusTraversalPolicy *); + virtual void setGlobalCurrentFocusCycleRoot(::java::awt::Container *); +private: + ::java::awt::KeyboardFocusManager * __attribute__((aligned(__alignof__( ::javax::swing::FocusManager)))) wrapped; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_FocusManager$WrappingFocusManager__ diff --git a/libjava/javax/swing/FocusManager.h b/libjava/javax/swing/FocusManager.h new file mode 100644 index 00000000000..0bf93943890 --- /dev/null +++ b/libjava/javax/swing/FocusManager.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_FocusManager__ +#define __javax_swing_FocusManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class FocusManager; + } + } +} + +class javax::swing::FocusManager : public ::java::awt::DefaultKeyboardFocusManager +{ + +public: + FocusManager(); + static ::javax::swing::FocusManager * getCurrentManager(); + static void setCurrentManager(::javax::swing::FocusManager *); + static void disableSwingFocusManager(); + static jboolean isFocusManagerEnabled(); + static ::java::lang::String * FOCUS_MANAGER_CLASS_PROPERTY; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_FocusManager__ diff --git a/libjava/javax/swing/GrayFilter.h b/libjava/javax/swing/GrayFilter.h new file mode 100644 index 00000000000..436c3763a42 --- /dev/null +++ b/libjava/javax/swing/GrayFilter.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_GrayFilter__ +#define __javax_swing_GrayFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Image; + } + } + namespace javax + { + namespace swing + { + class GrayFilter; + } + } +} + +class javax::swing::GrayFilter : public ::java::awt::image::RGBImageFilter +{ + +public: + GrayFilter(jboolean, jint); + static ::java::awt::Image * createDisabledImage(::java::awt::Image *); + virtual jint filterRGB(jint, jint, jint); +private: + jboolean __attribute__((aligned(__alignof__( ::java::awt::image::RGBImageFilter)))) b; + jdouble p; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_GrayFilter__ diff --git a/libjava/javax/swing/Icon.h b/libjava/javax/swing/Icon.h new file mode 100644 index 00000000000..7ab6cfe4d21 --- /dev/null +++ b/libjava/javax/swing/Icon.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Icon__ +#define __javax_swing_Icon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class Icon; + } + } +} + +class javax::swing::Icon : public ::java::lang::Object +{ + +public: + virtual jint getIconHeight() = 0; + virtual jint getIconWidth() = 0; + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_Icon__ diff --git a/libjava/javax/swing/ImageIcon$1.h b/libjava/javax/swing/ImageIcon$1.h new file mode 100644 index 00000000000..529be408a28 --- /dev/null +++ b/libjava/javax/swing/ImageIcon$1.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ImageIcon$1__ +#define __javax_swing_ImageIcon$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ImageIcon$1; + } + } +} + +class javax::swing::ImageIcon$1 : public ::java::awt::Component +{ + +public: // actually package-private + ImageIcon$1(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ImageIcon$1__ diff --git a/libjava/javax/swing/ImageIcon$AccessibleImageIcon.h b/libjava/javax/swing/ImageIcon$AccessibleImageIcon.h new file mode 100644 index 00000000000..05d2323e283 --- /dev/null +++ b/libjava/javax/swing/ImageIcon$AccessibleImageIcon.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ImageIcon$AccessibleImageIcon__ +#define __javax_swing_ImageIcon$AccessibleImageIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class ImageIcon; + class ImageIcon$AccessibleImageIcon; + } + } +} + +class javax::swing::ImageIcon$AccessibleImageIcon : public ::javax::accessibility::AccessibleContext +{ + +public: // actually protected + ImageIcon$AccessibleImageIcon(::javax::swing::ImageIcon *); +public: + 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 ::java::lang::String * getAccessibleIconDescription(); + virtual void setAccessibleIconDescription(::java::lang::String *); + virtual jint getAccessibleIconHeight(); + virtual jint getAccessibleIconWidth(); +private: + static const jlong serialVersionUID = 2113430526551336564LL; +public: // actually package-private + ::javax::swing::ImageIcon * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ImageIcon$AccessibleImageIcon__ diff --git a/libjava/javax/swing/ImageIcon.h b/libjava/javax/swing/ImageIcon.h new file mode 100644 index 00000000000..4e3d8d90273 --- /dev/null +++ b/libjava/javax/swing/ImageIcon.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ImageIcon__ +#define __javax_swing_ImageIcon__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Image; + class MediaTracker; + namespace image + { + class ImageObserver; + } + } + namespace net + { + class URL; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class ImageIcon; + } + } +} + +class javax::swing::ImageIcon : public ::java::lang::Object +{ + +public: + ImageIcon(); + ImageIcon(::java::lang::String *); + ImageIcon(::java::lang::String *, ::java::lang::String *); + ImageIcon(JArray< jbyte > *); + ImageIcon(JArray< jbyte > *, ::java::lang::String *); + ImageIcon(::java::net::URL *); + ImageIcon(::java::net::URL *, ::java::lang::String *); + ImageIcon(::java::awt::Image *); + ImageIcon(::java::awt::Image *, ::java::lang::String *); + virtual ::java::awt::image::ImageObserver * getImageObserver(); + virtual void setImageObserver(::java::awt::image::ImageObserver *); + virtual ::java::awt::Image * getImage(); + virtual void setImage(::java::awt::Image *); + virtual ::java::lang::String * getDescription(); + virtual void setDescription(::java::lang::String *); + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually protected + virtual void loadImage(::java::awt::Image *); +public: + virtual jint getImageLoadStatus(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 532615968316031794LL; +public: // actually protected + static ::java::awt::Component * component; + static ::java::awt::MediaTracker * tracker; +private: + static jint id; +public: // actually package-private + ::java::awt::Image * __attribute__((aligned(__alignof__( ::java::lang::Object)))) image; + ::java::lang::String * description; + ::java::awt::image::ImageObserver * observer; +private: + jint loadStatus; + ::javax::accessibility::AccessibleContext * accessibleContext; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ImageIcon__ diff --git a/libjava/javax/swing/InputMap.h b/libjava/javax/swing/InputMap.h new file mode 100644 index 00000000000..5846eeb25af --- /dev/null +++ b/libjava/javax/swing/InputMap.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_InputMap__ +#define __javax_swing_InputMap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class InputMap; + class KeyStroke; + } + } +} + +class javax::swing::InputMap : public ::java::lang::Object +{ + +public: + InputMap(); + virtual ::java::lang::Object * get(::javax::swing::KeyStroke *); + virtual void put(::javax::swing::KeyStroke *, ::java::lang::Object *); + virtual void remove(::javax::swing::KeyStroke *); + virtual ::javax::swing::InputMap * getParent(); + virtual void setParent(::javax::swing::InputMap *); + virtual jint size(); + virtual void clear(); + virtual JArray< ::javax::swing::KeyStroke * > * keys(); + virtual JArray< ::javax::swing::KeyStroke * > * allKeys(); +private: + static const jlong serialVersionUID = -5429059542008604257LL; + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) inputMap; + ::javax::swing::InputMap * parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_InputMap__ diff --git a/libjava/javax/swing/InputVerifier.h b/libjava/javax/swing/InputVerifier.h new file mode 100644 index 00000000000..986647e1bb3 --- /dev/null +++ b/libjava/javax/swing/InputVerifier.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_InputVerifier__ +#define __javax_swing_InputVerifier__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class InputVerifier; + class JComponent; + } + } +} + +class javax::swing::InputVerifier : public ::java::lang::Object +{ + +public: + InputVerifier(); + virtual jboolean verify(::javax::swing::JComponent *) = 0; + virtual jboolean shouldYieldFocus(::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_InputVerifier__ diff --git a/libjava/javax/swing/InternalFrameFocusTraversalPolicy.h b/libjava/javax/swing/InternalFrameFocusTraversalPolicy.h new file mode 100644 index 00000000000..4573093d46d --- /dev/null +++ b/libjava/javax/swing/InternalFrameFocusTraversalPolicy.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_InternalFrameFocusTraversalPolicy__ +#define __javax_swing_InternalFrameFocusTraversalPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class InternalFrameFocusTraversalPolicy; + class JInternalFrame; + } + } +} + +class javax::swing::InternalFrameFocusTraversalPolicy : public ::java::awt::FocusTraversalPolicy +{ + +public: + InternalFrameFocusTraversalPolicy(); + virtual ::java::awt::Component * getInitialComponent(::javax::swing::JInternalFrame *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_InternalFrameFocusTraversalPolicy__ diff --git a/libjava/javax/swing/JApplet$AccessibleJApplet.h b/libjava/javax/swing/JApplet$AccessibleJApplet.h new file mode 100644 index 00000000000..d6aea498e1d --- /dev/null +++ b/libjava/javax/swing/JApplet$AccessibleJApplet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JApplet$AccessibleJApplet__ +#define __javax_swing_JApplet$AccessibleJApplet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JApplet; + class JApplet$AccessibleJApplet; + } + } +} + +class javax::swing::JApplet$AccessibleJApplet : public ::java::applet::Applet$AccessibleApplet +{ + +public: // actually protected + JApplet$AccessibleJApplet(::javax::swing::JApplet *); +public: // actually package-private + ::javax::swing::JApplet * __attribute__((aligned(__alignof__( ::java::applet::Applet$AccessibleApplet)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JApplet$AccessibleJApplet__ diff --git a/libjava/javax/swing/JApplet.h b/libjava/javax/swing/JApplet.h new file mode 100644 index 00000000000..16cdbcf69da --- /dev/null +++ b/libjava/javax/swing/JApplet.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JApplet__ +#define __javax_swing_JApplet__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class Graphics; + class LayoutManager; + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JApplet; + class JLayeredPane; + class JMenuBar; + class JRootPane; + } + } +} + +class javax::swing::JApplet : public ::java::applet::Applet +{ + +public: + JApplet(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual void setLayout(::java::awt::LayoutManager *); + virtual void setLayeredPane(::javax::swing::JLayeredPane *); + virtual ::javax::swing::JLayeredPane * getLayeredPane(); + virtual ::javax::swing::JRootPane * getRootPane(); +public: // actually protected + virtual void setRootPane(::javax::swing::JRootPane *); + virtual ::javax::swing::JRootPane * createRootPane(); +public: + virtual ::java::awt::Container * getContentPane(); + virtual void setContentPane(::java::awt::Container *); + virtual ::java::awt::Component * getGlassPane(); + virtual void setGlassPane(::java::awt::Component *); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::javax::swing::JMenuBar * getJMenuBar(); + virtual void setJMenuBar(::javax::swing::JMenuBar *); +public: // actually protected + virtual ::java::lang::String * paramString(); + virtual void processKeyEvent(::java::awt::event::KeyEvent *); +public: + virtual void remove(::java::awt::Component *); +public: // actually protected + virtual jboolean isRootPaneCheckingEnabled(); + virtual void setRootPaneCheckingEnabled(jboolean); +public: + virtual void update(::java::awt::Graphics *); +public: // actually protected + ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::applet::Applet)))) accessibleContext; +private: + static const jlong serialVersionUID = 7269359214497372587LL; +public: // actually protected + ::javax::swing::JRootPane * rootPane; + jboolean rootPaneCheckingEnabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JApplet__ diff --git a/libjava/javax/swing/JButton$AccessibleJButton.h b/libjava/javax/swing/JButton$AccessibleJButton.h new file mode 100644 index 00000000000..b8f0f3ed85a --- /dev/null +++ b/libjava/javax/swing/JButton$AccessibleJButton.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JButton$AccessibleJButton__ +#define __javax_swing_JButton$AccessibleJButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JButton; + class JButton$AccessibleJButton; + } + } +} + +class javax::swing::JButton$AccessibleJButton : public ::javax::swing::AbstractButton$AccessibleAbstractButton +{ + +public: // actually protected + JButton$AccessibleJButton(::javax::swing::JButton *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +public: // actually package-private + ::javax::swing::JButton * __attribute__((aligned(__alignof__( ::javax::swing::AbstractButton$AccessibleAbstractButton)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JButton$AccessibleJButton__ diff --git a/libjava/javax/swing/JButton.h b/libjava/javax/swing/JButton.h new file mode 100644 index 00000000000..a151bae8a8a --- /dev/null +++ b/libjava/javax/swing/JButton.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JButton__ +#define __javax_swing_JButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class Icon; + class JButton; + } + } +} + +class javax::swing::JButton : public ::javax::swing::AbstractButton +{ + +public: + JButton(); + JButton(::javax::swing::Action *); + JButton(::javax::swing::Icon *); + JButton(::java::lang::String *); + JButton(::java::lang::String *, ::javax::swing::Icon *); +public: // actually protected + virtual void configurePropertiesFromAction(::javax::swing::Action *); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::lang::String * getUIClassID(); + virtual jboolean isDefaultButton(); + virtual jboolean isDefaultCapable(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void removeNotify(); + virtual void setDefaultCapable(jboolean); + virtual void updateUI(); +private: + static const jlong serialVersionUID = -1907255238954382202LL; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::AbstractButton)))) defaultCapable; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JButton__ diff --git a/libjava/javax/swing/JCheckBox$AccessibleJCheckBox.h b/libjava/javax/swing/JCheckBox$AccessibleJCheckBox.h new file mode 100644 index 00000000000..34d711e395f --- /dev/null +++ b/libjava/javax/swing/JCheckBox$AccessibleJCheckBox.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JCheckBox$AccessibleJCheckBox__ +#define __javax_swing_JCheckBox$AccessibleJCheckBox__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JCheckBox; + class JCheckBox$AccessibleJCheckBox; + } + } +} + +class javax::swing::JCheckBox$AccessibleJCheckBox : public ::javax::swing::JToggleButton$AccessibleJToggleButton +{ + +public: // actually protected + JCheckBox$AccessibleJCheckBox(::javax::swing::JCheckBox *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +public: // actually package-private + ::javax::swing::JCheckBox * __attribute__((aligned(__alignof__( ::javax::swing::JToggleButton$AccessibleJToggleButton)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JCheckBox$AccessibleJCheckBox__ diff --git a/libjava/javax/swing/JCheckBox.h b/libjava/javax/swing/JCheckBox.h new file mode 100644 index 00000000000..b57d5c1671b --- /dev/null +++ b/libjava/javax/swing/JCheckBox.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JCheckBox__ +#define __javax_swing_JCheckBox__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class Icon; + class JCheckBox; + } + } +} + +class javax::swing::JCheckBox : public ::javax::swing::JToggleButton +{ + + void init(); +public: + JCheckBox(); + JCheckBox(::javax::swing::Action *); + JCheckBox(::javax::swing::Icon *); + JCheckBox(::javax::swing::Icon *, jboolean); + JCheckBox(::java::lang::String *); + JCheckBox(::java::lang::String *, jboolean); + JCheckBox(::java::lang::String *, ::javax::swing::Icon *); + JCheckBox(::java::lang::String *, ::javax::swing::Icon *, jboolean); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual jboolean isBorderPaintedFlat(); + virtual void setBorderPaintedFlat(jboolean); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -5246739313864538930LL; +public: + static ::java::lang::String * BORDER_PAINTED_FLAT_CHANGED_PROPERTY; +private: + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JToggleButton)))) borderPaintedFlat; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JCheckBox__ diff --git a/libjava/javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.h b/libjava/javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.h new file mode 100644 index 00000000000..5508976090a --- /dev/null +++ b/libjava/javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem__ +#define __javax_swing_JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JCheckBoxMenuItem; + class JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem; + } + } +} + +class javax::swing::JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem : public ::javax::swing::JMenuItem$AccessibleJMenuItem +{ + +public: // actually protected + JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem(::javax::swing::JCheckBoxMenuItem *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 1079958073579370777LL; +public: // actually package-private + ::javax::swing::JCheckBoxMenuItem * __attribute__((aligned(__alignof__( ::javax::swing::JMenuItem$AccessibleJMenuItem)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem__ diff --git a/libjava/javax/swing/JCheckBoxMenuItem.h b/libjava/javax/swing/JCheckBoxMenuItem.h new file mode 100644 index 00000000000..fcb3355228c --- /dev/null +++ b/libjava/javax/swing/JCheckBoxMenuItem.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JCheckBoxMenuItem__ +#define __javax_swing_JCheckBoxMenuItem__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class Icon; + class JCheckBoxMenuItem; + } + } +} + +class javax::swing::JCheckBoxMenuItem : public ::javax::swing::JMenuItem +{ + +public: + JCheckBoxMenuItem(); + JCheckBoxMenuItem(::javax::swing::Icon *); + JCheckBoxMenuItem(::java::lang::String *); + JCheckBoxMenuItem(::javax::swing::Action *); + JCheckBoxMenuItem(::java::lang::String *, ::javax::swing::Icon *); + JCheckBoxMenuItem(::java::lang::String *, jboolean); + JCheckBoxMenuItem(::java::lang::String *, ::javax::swing::Icon *, jboolean); + virtual ::java::lang::String * getUIClassID(); + virtual jboolean getState(); + virtual void setState(jboolean); + virtual JArray< ::java::lang::Object * > * getSelectedObjects(); + virtual void requestFocus(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -6676402307973384715LL; + static ::java::lang::String * uiClassID; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JMenuItem)))) state; + JArray< ::java::lang::Object * > * selectedObjects; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JCheckBoxMenuItem__ diff --git a/libjava/javax/swing/JColorChooser$AccessibleJColorChooser.h b/libjava/javax/swing/JColorChooser$AccessibleJColorChooser.h new file mode 100644 index 00000000000..6a4ecf7318d --- /dev/null +++ b/libjava/javax/swing/JColorChooser$AccessibleJColorChooser.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JColorChooser$AccessibleJColorChooser__ +#define __javax_swing_JColorChooser$AccessibleJColorChooser__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JColorChooser; + class JColorChooser$AccessibleJColorChooser; + } + } +} + +class javax::swing::JColorChooser$AccessibleJColorChooser : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JColorChooser$AccessibleJColorChooser(::javax::swing::JColorChooser *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = -2038297864782299082LL; +public: // actually package-private + ::javax::swing::JColorChooser * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JColorChooser$AccessibleJColorChooser__ diff --git a/libjava/javax/swing/JColorChooser$DefaultOKCancelListener.h b/libjava/javax/swing/JColorChooser$DefaultOKCancelListener.h new file mode 100644 index 00000000000..0b2093c2dee --- /dev/null +++ b/libjava/javax/swing/JColorChooser$DefaultOKCancelListener.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JColorChooser$DefaultOKCancelListener__ +#define __javax_swing_JColorChooser$DefaultOKCancelListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JColorChooser$DefaultOKCancelListener; + class JDialog; + } + } +} + +class javax::swing::JColorChooser$DefaultOKCancelListener : public ::java::lang::Object +{ + +public: + JColorChooser$DefaultOKCancelListener(::javax::swing::JDialog *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + ::javax::swing::JDialog * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JColorChooser$DefaultOKCancelListener__ diff --git a/libjava/javax/swing/JColorChooser$DefaultResetListener.h b/libjava/javax/swing/JColorChooser$DefaultResetListener.h new file mode 100644 index 00000000000..4167cbbcf5f --- /dev/null +++ b/libjava/javax/swing/JColorChooser$DefaultResetListener.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JColorChooser$DefaultResetListener__ +#define __javax_swing_JColorChooser$DefaultResetListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JColorChooser; + class JColorChooser$DefaultResetListener; + } + } +} + +class javax::swing::JColorChooser$DefaultResetListener : public ::java::lang::Object +{ + +public: + JColorChooser$DefaultResetListener(::javax::swing::JColorChooser *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + ::javax::swing::JColorChooser * __attribute__((aligned(__alignof__( ::java::lang::Object)))) chooser; + ::java::awt::Color * init; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JColorChooser$DefaultResetListener__ diff --git a/libjava/javax/swing/JColorChooser.h b/libjava/javax/swing/JColorChooser.h new file mode 100644 index 00000000000..66d0da60702 --- /dev/null +++ b/libjava/javax/swing/JColorChooser.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JColorChooser__ +#define __javax_swing_JColorChooser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + namespace event + { + class ActionListener; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JColorChooser; + class JComponent; + class JDialog; + namespace colorchooser + { + class AbstractColorChooserPanel; + class ColorSelectionModel; + } + namespace plaf + { + class ColorChooserUI; + } + } + } +} + +class javax::swing::JColorChooser : public ::javax::swing::JComponent +{ + +public: + JColorChooser(); + JColorChooser(::java::awt::Color *); + JColorChooser(::javax::swing::colorchooser::ColorSelectionModel *); + virtual void setColor(::java::awt::Color *); + virtual void setColor(jint, jint, jint); + virtual void setColor(jint); + static ::java::awt::Color * showDialog(::java::awt::Component *, ::java::lang::String *, ::java::awt::Color *); +public: // actually package-private + static void makeModal(::javax::swing::JDialog *); +private: + static ::java::awt::Component * findParent(::java::awt::Component *); +public: + static ::javax::swing::JDialog * createDialog(::java::awt::Component *, ::java::lang::String *, jboolean, ::javax::swing::JColorChooser *, ::java::awt::event::ActionListener *, ::java::awt::event::ActionListener *); + virtual ::javax::swing::plaf::ColorChooserUI * getUI(); + virtual void setUI(::javax::swing::plaf::ColorChooserUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::java::awt::Color * getColor(); + virtual void setPreviewPanel(::javax::swing::JComponent *); + virtual ::javax::swing::JComponent * getPreviewPanel(); + virtual void addChooserPanel(::javax::swing::colorchooser::AbstractColorChooserPanel *); + virtual ::javax::swing::colorchooser::AbstractColorChooserPanel * removeChooserPanel(::javax::swing::colorchooser::AbstractColorChooserPanel *); + virtual void setChooserPanels(JArray< ::javax::swing::colorchooser::AbstractColorChooserPanel * > *); + virtual JArray< ::javax::swing::colorchooser::AbstractColorChooserPanel * > * getChooserPanels(); + virtual ::javax::swing::colorchooser::ColorSelectionModel * getSelectionModel(); + virtual void setSelectionModel(::javax::swing::colorchooser::ColorSelectionModel *); + virtual jboolean getDragEnabled(); + virtual void setDragEnabled(jboolean); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 9168066781620640889LL; + ::javax::swing::colorchooser::ColorSelectionModel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) selectionModel; + ::javax::swing::JComponent * previewPanel; + JArray< ::javax::swing::colorchooser::AbstractColorChooserPanel * > * chooserPanels; + jboolean dragEnabled; +public: + static ::java::lang::String * SELECTION_MODEL_PROPERTY; + static ::java::lang::String * PREVIEW_PANEL_PROPERTY; + static ::java::lang::String * CHOOSER_PANELS_PROPERTY; +public: // actually protected + ::javax::accessibility::AccessibleContext * accessibleContext; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JColorChooser__ diff --git a/libjava/javax/swing/JComboBox$1.h b/libjava/javax/swing/JComboBox$1.h new file mode 100644 index 00000000000..865b18fe48c --- /dev/null +++ b/libjava/javax/swing/JComboBox$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComboBox$1__ +#define __javax_swing_JComboBox$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JComboBox; + class JComboBox$1; + } + } +} + +class javax::swing::JComboBox$1 : public ::java::lang::Object +{ + +public: // actually package-private + JComboBox$1(::javax::swing::JComboBox *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::JComboBox * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComboBox$1__ diff --git a/libjava/javax/swing/JComboBox$AccessibleJComboBox.h b/libjava/javax/swing/JComboBox$AccessibleJComboBox.h new file mode 100644 index 00000000000..7f8b2ca997a --- /dev/null +++ b/libjava/javax/swing/JComboBox$AccessibleJComboBox.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComboBox$AccessibleJComboBox__ +#define __javax_swing_JComboBox$AccessibleJComboBox__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleAction; + class AccessibleRole; + class AccessibleSelection; + } + namespace swing + { + class JComboBox; + class JComboBox$AccessibleJComboBox; + } + } +} + +class javax::swing::JComboBox$AccessibleJComboBox : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: + JComboBox$AccessibleJComboBox(::javax::swing::JComboBox *); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection(); + virtual ::javax::accessibility::Accessible * getAccessibleSelection(jint); + virtual jboolean isAccessibleChildSelected(jint); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleAction * getAccessibleAction(); + virtual ::java::lang::String * getAccessibleActionDescription(jint); + virtual jint getAccessibleActionCount(); + virtual jboolean doAccessibleAction(jint); + virtual jint getAccessibleSelectionCount(); + virtual void addAccessibleSelection(jint); + virtual void removeAccessibleSelection(jint); + virtual void clearAccessibleSelection(); + virtual void selectAllAccessibleSelection(); +private: + static const jlong serialVersionUID = 8217828307256675666LL; +public: // actually package-private + ::javax::swing::JComboBox * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComboBox$AccessibleJComboBox__ diff --git a/libjava/javax/swing/JComboBox$DefaultKeySelectionManager.h b/libjava/javax/swing/JComboBox$DefaultKeySelectionManager.h new file mode 100644 index 00000000000..d968118ed66 --- /dev/null +++ b/libjava/javax/swing/JComboBox$DefaultKeySelectionManager.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComboBox$DefaultKeySelectionManager__ +#define __javax_swing_JComboBox$DefaultKeySelectionManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ComboBoxModel; + class JComboBox; + class JComboBox$DefaultKeySelectionManager; + } + } +} + +class javax::swing::JComboBox$DefaultKeySelectionManager : public ::java::lang::Object +{ + + JComboBox$DefaultKeySelectionManager(::javax::swing::JComboBox *); +public: + virtual jint selectionForKey(jchar, ::javax::swing::ComboBoxModel *); +public: // actually package-private + JComboBox$DefaultKeySelectionManager(::javax::swing::JComboBox *, ::javax::swing::JComboBox$DefaultKeySelectionManager *); + ::javax::swing::JComboBox * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComboBox$DefaultKeySelectionManager__ diff --git a/libjava/javax/swing/JComboBox$KeySelectionManager.h b/libjava/javax/swing/JComboBox$KeySelectionManager.h new file mode 100644 index 00000000000..4d6314e8f42 --- /dev/null +++ b/libjava/javax/swing/JComboBox$KeySelectionManager.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComboBox$KeySelectionManager__ +#define __javax_swing_JComboBox$KeySelectionManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ComboBoxModel; + class JComboBox$KeySelectionManager; + } + } +} + +class javax::swing::JComboBox$KeySelectionManager : public ::java::lang::Object +{ + +public: + virtual jint selectionForKey(jchar, ::javax::swing::ComboBoxModel *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_JComboBox$KeySelectionManager__ diff --git a/libjava/javax/swing/JComboBox.h b/libjava/javax/swing/JComboBox.h new file mode 100644 index 00000000000..ef9f7147c79 --- /dev/null +++ b/libjava/javax/swing/JComboBox.h @@ -0,0 +1,164 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComboBox__ +#define __javax_swing_JComboBox__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ActionListener; + class ItemEvent; + class ItemListener; + class KeyEvent; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class ComboBoxEditor; + class ComboBoxModel; + class JComboBox; + class JComboBox$KeySelectionManager; + class ListCellRenderer; + namespace event + { + class ListDataEvent; + class PopupMenuListener; + } + namespace plaf + { + class ComboBoxUI; + } + } + } +} + +class javax::swing::JComboBox : public ::javax::swing::JComponent +{ + +public: + JComboBox(::javax::swing::ComboBoxModel *); + JComboBox(JArray< ::java::lang::Object * > *); + JComboBox(::java::util::Vector *); + JComboBox(); + virtual jboolean isEditable(); +public: // actually protected + virtual void installAncestorListener(); +public: + virtual void setUI(::javax::swing::plaf::ComboBoxUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::javax::swing::plaf::ComboBoxUI * getUI(); + virtual void setModel(::javax::swing::ComboBoxModel *); + virtual ::javax::swing::ComboBoxModel * getModel(); + virtual void setLightWeightPopupEnabled(jboolean); + virtual jboolean isLightWeightPopupEnabled(); + virtual void setEditable(jboolean); + virtual void setMaximumRowCount(jint); + virtual jint getMaximumRowCount(); + virtual void setRenderer(::javax::swing::ListCellRenderer *); + virtual ::javax::swing::ListCellRenderer * getRenderer(); + virtual void setEditor(::javax::swing::ComboBoxEditor *); + virtual ::javax::swing::ComboBoxEditor * getEditor(); + virtual void setSelectedItem(::java::lang::Object *); + virtual ::java::lang::Object * getSelectedItem(); + virtual void setSelectedIndex(jint); + virtual jint getSelectedIndex(); + virtual ::java::lang::Object * getPrototypeDisplayValue(); + virtual void setPrototypeDisplayValue(::java::lang::Object *); + virtual void addItem(::java::lang::Object *); + virtual void insertItemAt(::java::lang::Object *, jint); + virtual void removeItem(::java::lang::Object *); + virtual void removeItemAt(jint); + virtual void removeAllItems(); + virtual void showPopup(); + virtual void hidePopup(); + virtual void setPopupVisible(jboolean); + virtual jboolean isPopupVisible(); + virtual void setActionCommand(::java::lang::String *); + virtual ::java::lang::String * getActionCommand(); + virtual void setAction(::javax::swing::Action *); + virtual ::javax::swing::Action * getAction(); +public: // actually protected + virtual void configurePropertiesFromAction(::javax::swing::Action *); + virtual ::java::beans::PropertyChangeListener * createActionPropertyChangeListener(::javax::swing::Action *); + virtual void fireItemStateChanged(::java::awt::event::ItemEvent *); + virtual void fireActionEvent(); +public: + virtual void firePopupMenuCanceled(); + virtual void firePopupMenuWillBecomeInvisible(); + virtual void firePopupMenuWillBecomeVisible(); +public: // actually protected + virtual void selectedItemChanged(); +public: + virtual JArray< ::java::lang::Object * > * getSelectedObjects(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean selectWithKeyChar(jchar); + virtual void intervalAdded(::javax::swing::event::ListDataEvent *); + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *); + virtual void contentsChanged(::javax::swing::event::ListDataEvent *); + virtual void setEnabled(jboolean); + virtual void configureEditor(::javax::swing::ComboBoxEditor *, ::java::lang::Object *); + virtual void processKeyEvent(::java::awt::event::KeyEvent *); + virtual void setKeySelectionManager(::javax::swing::JComboBox$KeySelectionManager *); + virtual ::javax::swing::JComboBox$KeySelectionManager * getKeySelectionManager(); + virtual jint getItemCount(); + virtual ::java::lang::Object * getItemAt(jint); +public: // actually protected + virtual ::javax::swing::JComboBox$KeySelectionManager * createDefaultKeySelectionManager(); + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual void addActionListener(::java::awt::event::ActionListener *); + virtual void removeActionListener(::java::awt::event::ActionListener *); + virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners(); + virtual void addItemListener(::java::awt::event::ItemListener *); + virtual void removeItemListener(::java::awt::event::ItemListener *); + virtual JArray< ::java::awt::event::ItemListener * > * getItemListeners(); + virtual void addPopupMenuListener(::javax::swing::event::PopupMenuListener *); + virtual void removePopupMenuListener(::javax::swing::event::PopupMenuListener *); + virtual JArray< ::javax::swing::event::PopupMenuListener * > * getPopupMenuListeners(); +private: + static const jlong serialVersionUID = 5654585963292734470LL; + static const jint DEFAULT_MAXIMUM_ROW_COUNT = 8; +public: // actually protected + ::javax::swing::ComboBoxModel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) dataModel; + ::javax::swing::ListCellRenderer * renderer; + ::javax::swing::ComboBoxEditor * editor; + jint maximumRowCount; + jboolean isEditable__; + ::java::lang::Object * selectedItemReminder; + ::javax::swing::JComboBox$KeySelectionManager * keySelectionManager; + ::java::lang::String * actionCommand; + jboolean lightWeightPopupEnabled; +private: + ::javax::swing::Action * action; + ::java::lang::Object * prototypeDisplayValue; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComboBox__ diff --git a/libjava/javax/swing/JComponent$1.h b/libjava/javax/swing/JComponent$1.h new file mode 100644 index 00000000000..efcbd1c8fe0 --- /dev/null +++ b/libjava/javax/swing/JComponent$1.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComponent$1__ +#define __javax_swing_JComponent$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + class JComponent$1; + } + } +} + +class javax::swing::JComponent$1 : public ::java::lang::Object +{ + +public: // actually package-private + JComponent$1(::javax::swing::JComponent *); +public: + void run(); +public: // actually package-private + ::javax::swing::JComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComponent$1__ diff --git a/libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.h b/libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.h new file mode 100644 index 00000000000..6b25d9aeaa9 --- /dev/null +++ b/libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComponent$AccessibleJComponent$AccessibleContainerHandler__ +#define __javax_swing_JComponent$AccessibleJComponent$AccessibleContainerHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ContainerEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent$AccessibleJComponent; + class JComponent$AccessibleJComponent$AccessibleContainerHandler; + } + } +} + +class javax::swing::JComponent$AccessibleJComponent$AccessibleContainerHandler : public ::java::lang::Object +{ + +public: // actually protected + JComponent$AccessibleJComponent$AccessibleContainerHandler(::javax::swing::JComponent$AccessibleJComponent *); +public: + virtual void componentAdded(::java::awt::event::ContainerEvent *); + virtual void componentRemoved(::java::awt::event::ContainerEvent *); +public: // actually package-private + ::javax::swing::JComponent$AccessibleJComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComponent$AccessibleJComponent$AccessibleContainerHandler__ diff --git a/libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.h b/libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.h new file mode 100644 index 00000000000..50825416858 --- /dev/null +++ b/libjava/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComponent$AccessibleJComponent$AccessibleFocusHandler__ +#define __javax_swing_JComponent$AccessibleJComponent$AccessibleFocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent$AccessibleJComponent; + class JComponent$AccessibleJComponent$AccessibleFocusHandler; + } + } +} + +class javax::swing::JComponent$AccessibleJComponent$AccessibleFocusHandler : public ::java::lang::Object +{ + +public: // actually protected + JComponent$AccessibleJComponent$AccessibleFocusHandler(::javax::swing::JComponent$AccessibleJComponent *); +public: + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + ::javax::swing::JComponent$AccessibleJComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComponent$AccessibleJComponent$AccessibleFocusHandler__ diff --git a/libjava/javax/swing/JComponent$AccessibleJComponent.h b/libjava/javax/swing/JComponent$AccessibleJComponent.h new file mode 100644 index 00000000000..d0a3546743f --- /dev/null +++ b/libjava/javax/swing/JComponent$AccessibleJComponent.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComponent$AccessibleJComponent__ +#define __javax_swing_JComponent$AccessibleJComponent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ContainerListener; + class FocusListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleKeyBinding; + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class JComponent; + class JComponent$AccessibleJComponent; + namespace border + { + class Border; + } + } + } +} + +class javax::swing::JComponent$AccessibleJComponent : public ::java::awt::Container$AccessibleAWTContainer +{ + +public: // actually protected + JComponent$AccessibleJComponent(::javax::swing::JComponent *); +public: + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::java::lang::String * getAccessibleName(); + virtual ::java::lang::String * getAccessibleDescription(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +public: // actually protected + virtual ::java::lang::String * getBorderTitle(::javax::swing::border::Border *); +public: + virtual ::java::lang::String * getToolTipText(); + virtual ::java::lang::String * getTitledBorderText(); + virtual ::javax::accessibility::AccessibleKeyBinding * getAccessibleKeyBinding(); +private: + static const jlong serialVersionUID = -7047089700479897799LL; +public: // actually protected + ::java::awt::event::ContainerListener * __attribute__((aligned(__alignof__( ::java::awt::Container$AccessibleAWTContainer)))) accessibleContainerHandler; + ::java::awt::event::FocusListener * accessibleFocusHandler; +public: // actually package-private + ::javax::swing::JComponent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComponent$AccessibleJComponent__ diff --git a/libjava/javax/swing/JComponent$ActionListenerProxy.h b/libjava/javax/swing/JComponent$ActionListenerProxy.h new file mode 100644 index 00000000000..9679e190935 --- /dev/null +++ b/libjava/javax/swing/JComponent$ActionListenerProxy.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComponent$ActionListenerProxy__ +#define __javax_swing_JComponent$ActionListenerProxy__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ActionListener; + } + } + } + namespace javax + { + namespace swing + { + class JComponent$ActionListenerProxy; + } + } +} + +class javax::swing::JComponent$ActionListenerProxy : public ::javax::swing::AbstractAction +{ + +public: + JComponent$ActionListenerProxy(::java::awt::event::ActionListener *, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::java::awt::event::ActionListener * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) target; + ::java::lang::String * bindingCommandName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComponent$ActionListenerProxy__ diff --git a/libjava/javax/swing/JComponent.h b/libjava/javax/swing/JComponent.h new file mode 100644 index 00000000000..e87a6c29076 --- /dev/null +++ b/libjava/javax/swing/JComponent.h @@ -0,0 +1,297 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JComponent__ +#define __javax_swing_JComponent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Container; + class Dimension; + class Font; + class Graphics; + class Image; + class Insets; + class Point; + class Rectangle; + namespace event + { + class ActionListener; + class KeyEvent; + class MouseEvent; + } + } + namespace beans + { + class VetoableChangeListener; + class VetoableChangeSupport; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class ActionMap; + class ComponentInputMap; + class InputMap; + class InputVerifier; + class JComponent; + class JPopupMenu; + class JRootPane; + class JToolTip; + class KeyStroke; + class TransferHandler; + namespace border + { + class Border; + } + namespace event + { + class AncestorListener; + class EventListenerList; + } + namespace plaf + { + class ComponentUI; + } + } + } +} + +class javax::swing::JComponent : public ::java::awt::Container +{ + +public: + JComponent(); +private: + ::java::util::Hashtable * getClientProperties(); +public: + virtual ::java::lang::Object * getClientProperty(::java::lang::Object *); + virtual void putClientProperty(::java::lang::Object *, ::java::lang::Object *); + virtual void removeAncestorListener(::javax::swing::event::AncestorListener *); + virtual void removeVetoableChangeListener(::java::beans::VetoableChangeListener *); + virtual void addAncestorListener(::javax::swing::event::AncestorListener *); + virtual void addVetoableChangeListener(::java::beans::VetoableChangeListener *); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< ::javax::swing::event::AncestorListener * > * getAncestorListeners(); + virtual JArray< ::java::beans::VetoableChangeListener * > * getVetoableChangeListeners(); +public: // actually protected + virtual void fireVetoableChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); +public: + virtual void firePropertyChange(::java::lang::String *, jint, jint); + virtual void firePropertyChange(::java::lang::String *, jboolean, jboolean); + virtual void firePropertyChange(::java::lang::String *, jchar, jchar); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual jfloat getAlignmentX(); + virtual jfloat getAlignmentY(); + virtual jboolean getAutoscrolls(); + virtual void setBorder(::javax::swing::border::Border *); + virtual ::javax::swing::border::Border * getBorder(); + virtual ::java::awt::Rectangle * getBounds(::java::awt::Rectangle *); +public: // actually protected + virtual ::java::awt::Graphics * getComponentGraphics(::java::awt::Graphics *); +public: + virtual jint getDebugGraphicsOptions(); + virtual ::java::awt::Insets * getInsets(); + virtual ::java::awt::Insets * getInsets(::java::awt::Insets *); + virtual ::java::awt::Point * getLocation(::java::awt::Point *); + virtual ::java::awt::Dimension * getMaximumSize(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Component * getNextFocusableComponent(); + virtual JArray< ::javax::swing::KeyStroke * > * getRegisteredKeyStrokes(); + virtual ::javax::swing::JRootPane * getRootPane(); + virtual ::java::awt::Dimension * getSize(::java::awt::Dimension *); + virtual ::javax::swing::JToolTip * createToolTip(); + virtual ::java::awt::Point * getToolTipLocation(::java::awt::event::MouseEvent *); + virtual void setToolTipText(::java::lang::String *); + virtual ::java::lang::String * getToolTipText(); + virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *); + virtual jboolean getInheritsPopupMenu(); + virtual void setInheritsPopupMenu(jboolean); + virtual ::javax::swing::JPopupMenu * getComponentPopupMenu(); + virtual void setComponentPopupMenu(::javax::swing::JPopupMenu *); + virtual ::java::awt::Container * getTopLevelAncestor(); + virtual void computeVisibleRect(::java::awt::Rectangle *); + virtual ::java::awt::Rectangle * getVisibleRect(); + virtual void grabFocus(); + virtual jboolean isDoubleBuffered(); + static jboolean isLightweightComponent(::java::awt::Component *); + virtual jboolean isManagingFocus(); + virtual jboolean isOpaque(); + virtual jboolean isOptimizedDrawingEnabled(); + virtual jboolean isPaintingTile(); + virtual jboolean isRequestFocusEnabled(); + virtual jboolean isValidateRoot(); + virtual void paint(::java::awt::Graphics *); +private: + jboolean isOccupiedByChild(jint, jint, jint, jint); + void initializeDragBuffer(); +public: // actually protected + virtual void paintBorder(::java::awt::Graphics *); + virtual void paintChildren(::java::awt::Graphics *); +private: + jboolean isCompletelyObscured(jint, jint, jint, jint, jint); + jboolean isPartiallyObscured(jint, jint, jint, jint, jint); +public: // actually protected + virtual void paintComponent(::java::awt::Graphics *); +public: + virtual void paintImmediately(jint, jint, jint, jint); + virtual void paintImmediately(::java::awt::Rectangle *); +public: // actually package-private + virtual void paintImmediately2(jint, jint, jint, jint); + virtual jboolean onTop(); + virtual jboolean isPaintRoot(); +private: + void paintDoubleBuffered(jint, jint, jint, jint); + void clipAndTranslateGraphics(::java::awt::Component *, ::java::awt::Component *, ::java::awt::Graphics *); +public: // actually package-private + virtual void paintSimple(::java::awt::Rectangle *); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void registerKeyboardAction(::java::awt::event::ActionListener *, ::javax::swing::KeyStroke *, jint); + virtual void registerKeyboardAction(::java::awt::event::ActionListener *, ::java::lang::String *, ::javax::swing::KeyStroke *, jint); + virtual void setInputMap(jint, ::javax::swing::InputMap *); + virtual ::javax::swing::InputMap * getInputMap(jint); + virtual ::javax::swing::InputMap * getInputMap(); + virtual ::javax::swing::ActionMap * getActionMap(); + virtual void setActionMap(::javax::swing::ActionMap *); + virtual jint getConditionForKeyStroke(::javax::swing::KeyStroke *); + virtual ::java::awt::event::ActionListener * getActionForKeyStroke(::javax::swing::KeyStroke *); +public: // actually protected + virtual void processComponentKeyEvent(::java::awt::event::KeyEvent *); + virtual void processKeyEvent(::java::awt::event::KeyEvent *); + virtual jboolean processKeyBinding(::javax::swing::KeyStroke *, ::java::awt::event::KeyEvent *, jint, jboolean); +public: + virtual void unregisterKeyboardAction(::javax::swing::KeyStroke *); + virtual void resetKeyboardActions(); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void repaint(::java::awt::Rectangle *); + virtual jboolean requestDefaultFocus(); + virtual void revalidate(); + virtual void scrollRectToVisible(::java::awt::Rectangle *); + virtual void setAlignmentX(jfloat); + virtual void setAlignmentY(jfloat); + virtual void setAutoscrolls(jboolean); + virtual void setDebugGraphicsOptions(jint); + virtual void setDoubleBuffered(jboolean); + virtual void setEnabled(jboolean); + virtual void setFont(::java::awt::Font *); + virtual void setBackground(::java::awt::Color *); + virtual void setForeground(::java::awt::Color *); + virtual void setNextFocusableComponent(::java::awt::Component *); + virtual void setRequestFocusEnabled(jboolean); + virtual ::javax::swing::TransferHandler * getTransferHandler(); + virtual void setTransferHandler(::javax::swing::TransferHandler *); + virtual void setOpaque(jboolean); + virtual void setVisible(jboolean); + virtual void update(::java::awt::Graphics *); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual void setUI(::javax::swing::plaf::ComponentUI *); +public: + virtual void updateUI(); + static ::java::util::Locale * getDefaultLocale(); + static void setDefaultLocale(::java::util::Locale *); + virtual ::javax::swing::InputVerifier * getInputVerifier(); + virtual void setInputVerifier(::javax::swing::InputVerifier *); + virtual jboolean getVerifyInputWhenFocusTarget(); + virtual void setVerifyInputWhenFocusTarget(jboolean); + virtual void requestFocus(); + virtual jboolean requestFocus(jboolean); + virtual jboolean requestFocusInWindow(); +public: // actually protected + virtual jboolean requestFocusInWindow(jboolean); +public: + virtual void addNotify(); + virtual void removeNotify(); + virtual jboolean contains(jint, jint); + virtual void disable(); + virtual void enable(); + virtual ::java::awt::Graphics * getGraphics(); + virtual jint getX(); + virtual jint getY(); + virtual jint getHeight(); + virtual jint getWidth(); + virtual void print(::java::awt::Graphics *); + virtual void printAll(::java::awt::Graphics *); +public: // actually protected + virtual void printComponent(::java::awt::Graphics *); + virtual void printChildren(::java::awt::Graphics *); + virtual void printBorder(::java::awt::Graphics *); + virtual void processMouseMotionEvent(::java::awt::event::MouseEvent *); +public: + virtual void reshape(jint, jint, jint, jint); +public: // actually package-private + virtual void fireAncestorEvent(::javax::swing::JComponent *, jint); + virtual void updateComponentInputMap(::javax::swing::ComponentInputMap *); + virtual void setUIProperty(::java::lang::String *, ::java::lang::Object *); +private: + static const jlong serialVersionUID = -7908749299918704233LL; +public: // actually protected + ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::awt::Container)))) accessibleContext; +public: // actually package-private + jfloat alignmentX; + jfloat alignmentY; + ::javax::swing::border::Border * border; + ::javax::swing::JPopupMenu * componentPopupMenu; + jboolean inheritsPopupMenu; + jboolean doubleBuffered; + jint debugGraphicsOptions; + jboolean opaque; +public: // actually protected + ::javax::swing::plaf::ComponentUI * ui; +public: // actually package-private + jboolean requestFocusEnabled; + jboolean autoscrolls; + static jboolean paintingDoubleBuffered; + static jboolean isRepainting; +public: // actually protected + ::javax::swing::event::EventListenerList * listenerList; +private: + ::java::beans::VetoableChangeSupport * vetoableChangeSupport; + ::java::util::Hashtable * clientProperties; + ::javax::swing::InputMap * inputMap_whenFocused; + ::javax::swing::InputMap * inputMap_whenAncestorOfFocused; + ::javax::swing::ComponentInputMap * inputMap_whenInFocusedWindow; + ::javax::swing::ActionMap * actionMap; + jboolean verifyInputWhenFocusTarget; + ::javax::swing::InputVerifier * inputVerifier; + ::javax::swing::TransferHandler * transferHandler; + jboolean paintingTile; + ::java::awt::Image * dragBuffer; + jboolean dragBufferInitialized; + static ::java::awt::Rectangle * rectCache; + static ::java::util::Locale * defaultLocale; +public: + static ::java::lang::String * TOOL_TIP_TEXT_KEY; + static const jint UNDEFINED_CONDITION = -1; + static const jint WHEN_FOCUSED = 0; + static const jint WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1; + static const jint WHEN_IN_FOCUSED_WINDOW = 2; +public: // actually package-private + ::java::awt::Component * paintChild; +private: + jboolean clientOpaqueSet; + jboolean clientAutoscrollsSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JComponent__ diff --git a/libjava/javax/swing/JDesktopPane$AccessibleJDesktopPane.h b/libjava/javax/swing/JDesktopPane$AccessibleJDesktopPane.h new file mode 100644 index 00000000000..7788b49dda8 --- /dev/null +++ b/libjava/javax/swing/JDesktopPane$AccessibleJDesktopPane.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JDesktopPane$AccessibleJDesktopPane__ +#define __javax_swing_JDesktopPane$AccessibleJDesktopPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JDesktopPane; + class JDesktopPane$AccessibleJDesktopPane; + } + } +} + +class javax::swing::JDesktopPane$AccessibleJDesktopPane : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JDesktopPane$AccessibleJDesktopPane(::javax::swing::JDesktopPane *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 6079388927946077570LL; +public: // actually package-private + ::javax::swing::JDesktopPane * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JDesktopPane$AccessibleJDesktopPane__ diff --git a/libjava/javax/swing/JDesktopPane.h b/libjava/javax/swing/JDesktopPane.h new file mode 100644 index 00000000000..d7e022c9065 --- /dev/null +++ b/libjava/javax/swing/JDesktopPane.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JDesktopPane__ +#define __javax_swing_JDesktopPane__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class DesktopManager; + class JDesktopPane; + class JInternalFrame; + namespace plaf + { + class DesktopPaneUI; + } + } + } +} + +class javax::swing::JDesktopPane : public ::javax::swing::JLayeredPane +{ + +public: + JDesktopPane(); + virtual ::javax::swing::plaf::DesktopPaneUI * getUI(); + virtual void setUI(::javax::swing::plaf::DesktopPaneUI *); + virtual void setDragMode(jint); + virtual jint getDragMode(); + virtual ::javax::swing::DesktopManager * getDesktopManager(); + virtual void setDesktopManager(::javax::swing::DesktopManager *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual JArray< ::javax::swing::JInternalFrame * > * getAllFrames(); + virtual ::javax::swing::JInternalFrame * getSelectedFrame(); + virtual void setSelectedFrame(::javax::swing::JInternalFrame *); + virtual JArray< ::javax::swing::JInternalFrame * > * getAllFramesInLayer(jint); + virtual jboolean isOpaque(); +public: // actually protected + virtual ::java::lang::String * paramString(); +private: + static JArray< ::javax::swing::JInternalFrame * > * getFramesFromComponents(JArray< ::java::awt::Component * > *); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +public: // actually package-private + virtual void setUIProperty(::java::lang::String *, ::java::lang::Object *); +private: + static const jlong serialVersionUID = 766333777224038726LL; +public: + static const jint LIVE_DRAG_MODE = 0; + static const jint OUTLINE_DRAG_MODE = 1; +private: + ::javax::swing::JInternalFrame * __attribute__((aligned(__alignof__( ::javax::swing::JLayeredPane)))) selectedFrame; +public: // actually package-private + ::javax::swing::DesktopManager * desktopManager; +private: + jint dragMode; + jboolean clientDragModeSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JDesktopPane__ diff --git a/libjava/javax/swing/JDialog$AccessibleJDialog.h b/libjava/javax/swing/JDialog$AccessibleJDialog.h new file mode 100644 index 00000000000..26ffba493e1 --- /dev/null +++ b/libjava/javax/swing/JDialog$AccessibleJDialog.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JDialog$AccessibleJDialog__ +#define __javax_swing_JDialog$AccessibleJDialog__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JDialog; + class JDialog$AccessibleJDialog; + } + } +} + +class javax::swing::JDialog$AccessibleJDialog : public ::java::awt::Dialog$AccessibleAWTDialog +{ + +public: // actually protected + JDialog$AccessibleJDialog(::javax::swing::JDialog *); +public: // actually package-private + ::javax::swing::JDialog * __attribute__((aligned(__alignof__( ::java::awt::Dialog$AccessibleAWTDialog)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JDialog$AccessibleJDialog__ diff --git a/libjava/javax/swing/JDialog.h b/libjava/javax/swing/JDialog.h new file mode 100644 index 00000000000..968a0fcba57 --- /dev/null +++ b/libjava/javax/swing/JDialog.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JDialog__ +#define __javax_swing_JDialog__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dialog; + class Dimension; + class Frame; + class Graphics; + class GraphicsConfiguration; + class LayoutManager; + namespace event + { + class WindowEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JDialog; + class JLayeredPane; + class JMenuBar; + class JRootPane; + } + } +} + +class javax::swing::JDialog : public ::java::awt::Dialog +{ + +public: + JDialog(); + JDialog(::java::awt::Dialog *); + JDialog(::java::awt::Dialog *, jboolean); + JDialog(::java::awt::Dialog *, ::java::lang::String *); + JDialog(::java::awt::Dialog *, ::java::lang::String *, jboolean); + JDialog(::java::awt::Dialog *, ::java::lang::String *, jboolean, ::java::awt::GraphicsConfiguration *); + JDialog(::java::awt::Frame *); + JDialog(::java::awt::Frame *, jboolean); + JDialog(::java::awt::Frame *, ::java::lang::String *); + JDialog(::java::awt::Frame *, ::java::lang::String *, jboolean); + JDialog(::java::awt::Frame *, ::java::lang::String *, jboolean, ::java::awt::GraphicsConfiguration *); +public: // actually protected + virtual void dialogInit(); +public: + static jboolean isDefaultLookAndFeelDecorated(); + static void setDefaultLookAndFeelDecorated(jboolean); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::javax::swing::JMenuBar * getJMenuBar(); + virtual void setJMenuBar(::javax::swing::JMenuBar *); + virtual void setLayout(::java::awt::LayoutManager *); + virtual void setLayeredPane(::javax::swing::JLayeredPane *); + virtual ::javax::swing::JLayeredPane * getLayeredPane(); + virtual ::javax::swing::JRootPane * getRootPane(); +public: // actually protected + virtual void setRootPane(::javax::swing::JRootPane *); + virtual ::javax::swing::JRootPane * createRootPane(); +public: + virtual ::java::awt::Container * getContentPane(); + virtual void setContentPane(::java::awt::Container *); + virtual ::java::awt::Component * getGlassPane(); + virtual void setGlassPane(::java::awt::Component *); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual void remove(::java::awt::Component *); +public: // actually protected + virtual jboolean isRootPaneCheckingEnabled(); + virtual void setRootPaneCheckingEnabled(jboolean); +public: + virtual void update(::java::awt::Graphics *); +public: // actually protected + virtual void processWindowEvent(::java::awt::event::WindowEvent *); +public: + virtual void setDefaultCloseOperation(jint); + virtual jint getDefaultCloseOperation(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -864070866424508218LL; +public: // actually protected + ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::awt::Dialog)))) accessibleContext; + ::javax::swing::JRootPane * rootPane; + jboolean rootPaneCheckingEnabled; +private: + jint closeAction; + static jboolean decorated; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JDialog__ diff --git a/libjava/javax/swing/JEditorPane$1.h b/libjava/javax/swing/JEditorPane$1.h new file mode 100644 index 00000000000..e0010c7e1c7 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$1__ +#define __javax_swing_JEditorPane$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JEditorPane$1; + class JEditorPane$PlainEditorKit; + namespace text + { + class Element; + class View; + } + } + } +} + +class javax::swing::JEditorPane$1 : public ::java::lang::Object +{ + +public: // actually package-private + JEditorPane$1(::javax::swing::JEditorPane$PlainEditorKit *); +public: + ::javax::swing::text::View * create(::javax::swing::text::Element *); +public: // actually package-private + ::javax::swing::JEditorPane$PlainEditorKit * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$1__ diff --git a/libjava/javax/swing/JEditorPane$2.h b/libjava/javax/swing/JEditorPane$2.h new file mode 100644 index 00000000000..b9bad89cba6 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$2.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$2__ +#define __javax_swing_JEditorPane$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JEditorPane$2; + class JEditorPane$PageLoader; + } + } +} + +class javax::swing::JEditorPane$2 : public ::java::lang::Object +{ + +public: // actually package-private + JEditorPane$2(::javax::swing::JEditorPane$PageLoader *); +public: + void run(); +public: // actually package-private + ::javax::swing::JEditorPane$PageLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$2__ diff --git a/libjava/javax/swing/JEditorPane$AccessibleJEditorPane.h b/libjava/javax/swing/JEditorPane$AccessibleJEditorPane.h new file mode 100644 index 00000000000..9aecb469f25 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$AccessibleJEditorPane.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$AccessibleJEditorPane__ +#define __javax_swing_JEditorPane$AccessibleJEditorPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleStateSet; + } + namespace swing + { + class JEditorPane; + class JEditorPane$AccessibleJEditorPane; + } + } +} + +class javax::swing::JEditorPane$AccessibleJEditorPane : public ::javax::swing::text::JTextComponent$AccessibleJTextComponent +{ + +public: // actually protected + JEditorPane$AccessibleJEditorPane(::javax::swing::JEditorPane *); +public: + virtual ::java::lang::String * getAccessibleDescription(); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); +public: // actually package-private + ::javax::swing::JEditorPane * __attribute__((aligned(__alignof__( ::javax::swing::text::JTextComponent$AccessibleJTextComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$AccessibleJEditorPane__ diff --git a/libjava/javax/swing/JEditorPane$AccessibleJEditorPaneHTML.h b/libjava/javax/swing/JEditorPane$AccessibleJEditorPaneHTML.h new file mode 100644 index 00000000000..b9ce1d57da4 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$AccessibleJEditorPaneHTML.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$AccessibleJEditorPaneHTML__ +#define __javax_swing_JEditorPane$AccessibleJEditorPaneHTML__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleText; + } + namespace swing + { + class JEditorPane; + class JEditorPane$AccessibleJEditorPaneHTML; + } + } +} + +class javax::swing::JEditorPane$AccessibleJEditorPaneHTML : public ::javax::swing::JEditorPane$AccessibleJEditorPane +{ + +public: // actually protected + JEditorPane$AccessibleJEditorPaneHTML(::javax::swing::JEditorPane *); +public: + virtual ::javax::accessibility::AccessibleText * getAccessibleText(); +public: // actually package-private + ::javax::swing::JEditorPane * __attribute__((aligned(__alignof__( ::javax::swing::JEditorPane$AccessibleJEditorPane)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$AccessibleJEditorPaneHTML__ diff --git a/libjava/javax/swing/JEditorPane$EditorKitMapping.h b/libjava/javax/swing/JEditorPane$EditorKitMapping.h new file mode 100644 index 00000000000..cb9fa757ae3 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$EditorKitMapping.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$EditorKitMapping__ +#define __javax_swing_JEditorPane$EditorKitMapping__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JEditorPane$EditorKitMapping; + } + } +} + +class javax::swing::JEditorPane$EditorKitMapping : public ::java::lang::Object +{ + +public: // actually package-private + JEditorPane$EditorKitMapping(::java::lang::String *, ::java::lang::ClassLoader *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) className; + ::java::lang::ClassLoader * classLoader; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$EditorKitMapping__ diff --git a/libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.h b/libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.h new file mode 100644 index 00000000000..3fd5224fe8a --- /dev/null +++ b/libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink__ +#define __javax_swing_JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JEditorPane$JEditorPaneAccessibleHypertextSupport; + class JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink; + namespace text + { + class Element; + } + } + } +} + +class javax::swing::JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink : public ::javax::accessibility::AccessibleHyperlink +{ + +public: + JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink(::javax::swing::JEditorPane$JEditorPaneAccessibleHypertextSupport *, ::javax::swing::text::Element *); + virtual jboolean isValid(); + virtual jint getAccessibleActionCount(); + virtual jboolean doAccessibleAction(jint); + virtual ::java::lang::String * getAccessibleActionDescription(jint); + virtual ::java::lang::Object * getAccessibleActionObject(jint); + virtual ::java::lang::Object * getAccessibleActionAnchor(jint); + virtual jint getStartIndex(); + virtual jint getEndIndex(); +public: // actually package-private + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleHyperlink)))) element; + ::javax::swing::JEditorPane$JEditorPaneAccessibleHypertextSupport * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$JEditorPaneAccessibleHypertextSupport$HTMLLink__ diff --git a/libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport.h b/libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport.h new file mode 100644 index 00000000000..759b435f4f5 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$JEditorPaneAccessibleHypertextSupport.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$JEditorPaneAccessibleHypertextSupport__ +#define __javax_swing_JEditorPane$JEditorPaneAccessibleHypertextSupport__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleHyperlink; + } + namespace swing + { + class JEditorPane; + class JEditorPane$JEditorPaneAccessibleHypertextSupport; + } + } +} + +class javax::swing::JEditorPane$JEditorPaneAccessibleHypertextSupport : public ::javax::swing::JEditorPane$AccessibleJEditorPane +{ + +public: + JEditorPane$JEditorPaneAccessibleHypertextSupport(::javax::swing::JEditorPane *); + virtual jint getLinkCount(); + virtual ::javax::accessibility::AccessibleHyperlink * getLink(jint); + virtual jint getLinkIndex(jint); + virtual ::java::lang::String * getLinkText(jint); +public: // actually package-private + static ::javax::swing::JEditorPane * access$0(::javax::swing::JEditorPane$JEditorPaneAccessibleHypertextSupport *); + ::javax::swing::JEditorPane * __attribute__((aligned(__alignof__( ::javax::swing::JEditorPane$AccessibleJEditorPane)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$JEditorPaneAccessibleHypertextSupport__ diff --git a/libjava/javax/swing/JEditorPane$PageLoader.h b/libjava/javax/swing/JEditorPane$PageLoader.h new file mode 100644 index 00000000000..6357e72a54d --- /dev/null +++ b/libjava/javax/swing/JEditorPane$PageLoader.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$PageLoader__ +#define __javax_swing_JEditorPane$PageLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + class JEditorPane; + class JEditorPane$PageLoader; + class JEditorPane$PageStream; + namespace text + { + class Document; + } + } + } +} + +class javax::swing::JEditorPane$PageLoader : public ::java::lang::Object +{ + +public: // actually package-private + JEditorPane$PageLoader(::javax::swing::JEditorPane *, ::javax::swing::text::Document *, ::java::io::InputStream *, ::java::net::URL *, ::java::net::URL *); +public: + virtual void run(); +public: // actually package-private + virtual void cancel(); + static ::java::net::URL * access$0(::javax::swing::JEditorPane$PageLoader *); + static ::javax::swing::JEditorPane * access$1(::javax::swing::JEditorPane$PageLoader *); +private: + ::javax::swing::text::Document * __attribute__((aligned(__alignof__( ::java::lang::Object)))) doc; + ::javax::swing::JEditorPane$PageStream * in; + ::java::net::URL * old; +public: // actually package-private + ::java::net::URL * page; + ::javax::swing::JEditorPane * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$PageLoader__ diff --git a/libjava/javax/swing/JEditorPane$PageStream.h b/libjava/javax/swing/JEditorPane$PageStream.h new file mode 100644 index 00000000000..b4591b722e1 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$PageStream.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$PageStream__ +#define __javax_swing_JEditorPane$PageStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class JEditorPane; + class JEditorPane$PageStream; + } + } +} + +class javax::swing::JEditorPane$PageStream : public ::java::io::FilterInputStream +{ + +public: // actually protected + JEditorPane$PageStream(::javax::swing::JEditorPane *, ::java::io::InputStream *); +private: + void checkCancelled(); +public: // actually package-private + virtual void cancel(); +public: + virtual jint read(); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jlong skip(jlong); + virtual jint available(); + virtual void reset(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) cancelled; +public: // actually package-private + ::javax::swing::JEditorPane * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$PageStream__ diff --git a/libjava/javax/swing/JEditorPane$PlainEditorKit.h b/libjava/javax/swing/JEditorPane$PlainEditorKit.h new file mode 100644 index 00000000000..39ca0d31834 --- /dev/null +++ b/libjava/javax/swing/JEditorPane$PlainEditorKit.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane$PlainEditorKit__ +#define __javax_swing_JEditorPane$PlainEditorKit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JEditorPane$PlainEditorKit; + namespace text + { + class ViewFactory; + } + } + } +} + +class javax::swing::JEditorPane$PlainEditorKit : public ::javax::swing::text::DefaultEditorKit +{ + + JEditorPane$PlainEditorKit(); +public: + virtual ::javax::swing::text::ViewFactory * getViewFactory(); +public: // actually package-private + JEditorPane$PlainEditorKit(::javax::swing::JEditorPane$PlainEditorKit *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane$PlainEditorKit__ diff --git a/libjava/javax/swing/JEditorPane.h b/libjava/javax/swing/JEditorPane.h new file mode 100644 index 00000000000..0d1404cee8c --- /dev/null +++ b/libjava/javax/swing/JEditorPane.h @@ -0,0 +1,113 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JEditorPane__ +#define __javax_swing_JEditorPane__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + namespace net + { + class URL; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JEditorPane; + class JEditorPane$PageLoader; + namespace event + { + class HyperlinkEvent; + class HyperlinkListener; + } + namespace text + { + class EditorKit; + } + } + } +} + +class javax::swing::JEditorPane : public ::javax::swing::text::JTextComponent +{ + +public: + JEditorPane(); + JEditorPane(::java::lang::String *); + JEditorPane(::java::lang::String *, ::java::lang::String *); + JEditorPane(::java::net::URL *); +public: // actually package-private + virtual void init(); +public: // actually protected + virtual ::javax::swing::text::EditorKit * createDefaultEditorKit(); +public: + static ::javax::swing::text::EditorKit * createEditorKitForContentType(::java::lang::String *); + virtual void fireHyperlinkUpdate(::javax::swing::event::HyperlinkEvent *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::lang::String * getContentType(); + virtual ::javax::swing::text::EditorKit * getEditorKit(); + static ::java::lang::String * getEditorKitClassNameForContentType(::java::lang::String *); + virtual ::javax::swing::text::EditorKit * getEditorKitForContentType(::java::lang::String *); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual jboolean getScrollableTracksViewportHeight(); + virtual jboolean getScrollableTracksViewportWidth(); + virtual ::java::net::URL * getPage(); +public: // actually protected + virtual ::java::io::InputStream * getStream(::java::net::URL *); +public: + virtual ::java::lang::String * getText(); + virtual ::java::lang::String * getUIClassID(); + virtual jboolean isFocusCycleRoot(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void read(::java::io::InputStream *, ::java::lang::Object *); + static void registerEditorKitForContentType(::java::lang::String *, ::java::lang::String *); + static void registerEditorKitForContentType(::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *); + virtual void replaceSelection(::java::lang::String *); + virtual void scrollToReference(::java::lang::String *); + virtual void setContentType(::java::lang::String *); + virtual void setEditorKit(::javax::swing::text::EditorKit *); + virtual void setEditorKitForContentType(::java::lang::String *, ::javax::swing::text::EditorKit *); + virtual void setPage(::java::lang::String *); + virtual void setPage(::java::net::URL *); + virtual void setText(::java::lang::String *); + virtual void addHyperlinkListener(::javax::swing::event::HyperlinkListener *); + virtual void removeHyperlinkListener(::javax::swing::event::HyperlinkListener *); + virtual JArray< ::javax::swing::event::HyperlinkListener * > * getHyperlinkListeners(); +public: // actually package-private + static void access$0(::javax::swing::JEditorPane *, ::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); +private: + static const jlong serialVersionUID = 3140472492599046285LL; + ::javax::swing::text::EditorKit * __attribute__((aligned(__alignof__( ::javax::swing::text::JTextComponent)))) editorKit; +public: // actually package-private + jboolean focus_root; + static ::java::util::HashMap * editorKits; + static ::java::util::HashMap * registerMap; + ::java::util::HashMap * editorMap; +private: + ::javax::swing::JEditorPane$PageLoader * loader; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JEditorPane__ diff --git a/libjava/javax/swing/JFileChooser$1.h b/libjava/javax/swing/JFileChooser$1.h new file mode 100644 index 00000000000..0fb02d37927 --- /dev/null +++ b/libjava/javax/swing/JFileChooser$1.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFileChooser$1__ +#define __javax_swing_JFileChooser$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class WindowEvent; + } + } + } + namespace javax + { + namespace swing + { + class JFileChooser; + class JFileChooser$1; + } + } +} + +class javax::swing::JFileChooser$1 : public ::java::awt::event::WindowAdapter +{ + +public: // actually package-private + JFileChooser$1(::javax::swing::JFileChooser *); +public: + void windowClosing(::java::awt::event::WindowEvent *); +public: // actually package-private + ::javax::swing::JFileChooser * __attribute__((aligned(__alignof__( ::java::awt::event::WindowAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFileChooser$1__ diff --git a/libjava/javax/swing/JFileChooser$AccessibleJFileChooser.h b/libjava/javax/swing/JFileChooser$AccessibleJFileChooser.h new file mode 100644 index 00000000000..6229b49b62c --- /dev/null +++ b/libjava/javax/swing/JFileChooser$AccessibleJFileChooser.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFileChooser$AccessibleJFileChooser__ +#define __javax_swing_JFileChooser$AccessibleJFileChooser__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JFileChooser; + class JFileChooser$AccessibleJFileChooser; + } + } +} + +class javax::swing::JFileChooser$AccessibleJFileChooser : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JFileChooser$AccessibleJFileChooser(::javax::swing::JFileChooser *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +public: // actually package-private + ::javax::swing::JFileChooser * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFileChooser$AccessibleJFileChooser__ diff --git a/libjava/javax/swing/JFileChooser.h b/libjava/javax/swing/JFileChooser.h new file mode 100644 index 00000000000..d9418e25228 --- /dev/null +++ b/libjava/javax/swing/JFileChooser.h @@ -0,0 +1,197 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFileChooser__ +#define __javax_swing_JFileChooser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + namespace event + { + class ActionListener; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Icon; + class JComponent; + class JDialog; + class JFileChooser; + namespace filechooser + { + class FileFilter; + class FileSystemView; + class FileView; + } + namespace plaf + { + class FileChooserUI; + } + } + } +} + +class javax::swing::JFileChooser : public ::javax::swing::JComponent +{ + +public: + JFileChooser(); + JFileChooser(::java::lang::String *); + JFileChooser(::java::lang::String *, ::javax::swing::filechooser::FileSystemView *); + JFileChooser(::java::io::File *); + JFileChooser(::javax::swing::filechooser::FileSystemView *); + JFileChooser(::java::io::File *, ::javax::swing::filechooser::FileSystemView *); +public: // actually protected + virtual void setup(::javax::swing::filechooser::FileSystemView *); +public: + virtual void setDragEnabled(jboolean); + virtual jboolean getDragEnabled(); + virtual ::java::io::File * getSelectedFile(); + virtual void setSelectedFile(::java::io::File *); + virtual JArray< ::java::io::File * > * getSelectedFiles(); + virtual void setSelectedFiles(JArray< ::java::io::File * > *); + virtual ::java::io::File * getCurrentDirectory(); + virtual void setCurrentDirectory(::java::io::File *); + virtual void changeToParentDirectory(); + virtual void rescanCurrentDirectory(); + virtual void ensureFileIsVisible(::java::io::File *); + virtual jint showOpenDialog(::java::awt::Component *); + virtual jint showSaveDialog(::java::awt::Component *); + virtual jint showDialog(::java::awt::Component *, ::java::lang::String *); +public: // actually protected + virtual ::javax::swing::JDialog * createDialog(::java::awt::Component *); +public: + virtual jboolean getControlButtonsAreShown(); + virtual void setControlButtonsAreShown(jboolean); + virtual jint getDialogType(); + virtual void setDialogType(jint); + virtual void setDialogTitle(::java::lang::String *); + virtual ::java::lang::String * getDialogTitle(); + virtual void setApproveButtonToolTipText(::java::lang::String *); + virtual ::java::lang::String * getApproveButtonToolTipText(); + virtual jint getApproveButtonMnemonic(); + virtual void setApproveButtonMnemonic(jint); + virtual void setApproveButtonMnemonic(jchar); + virtual void setApproveButtonText(::java::lang::String *); + virtual ::java::lang::String * getApproveButtonText(); + virtual JArray< ::javax::swing::filechooser::FileFilter * > * getChoosableFileFilters(); + virtual void addChoosableFileFilter(::javax::swing::filechooser::FileFilter *); + virtual jboolean removeChoosableFileFilter(::javax::swing::filechooser::FileFilter *); + virtual void resetChoosableFileFilters(); + virtual ::javax::swing::filechooser::FileFilter * getAcceptAllFileFilter(); + virtual jboolean isAcceptAllFileFilterUsed(); + virtual void setAcceptAllFileFilterUsed(jboolean); + virtual ::javax::swing::JComponent * getAccessory(); + virtual void setAccessory(::javax::swing::JComponent *); + virtual void setFileSelectionMode(jint); + virtual jint getFileSelectionMode(); + virtual jboolean isFileSelectionEnabled(); + virtual jboolean isDirectorySelectionEnabled(); + virtual void setMultiSelectionEnabled(jboolean); + virtual jboolean isMultiSelectionEnabled(); + virtual jboolean isFileHidingEnabled(); + virtual void setFileHidingEnabled(jboolean); + virtual void setFileFilter(::javax::swing::filechooser::FileFilter *); + virtual ::javax::swing::filechooser::FileFilter * getFileFilter(); + virtual void setFileView(::javax::swing::filechooser::FileView *); + virtual ::javax::swing::filechooser::FileView * getFileView(); + virtual ::java::lang::String * getName(::java::io::File *); + virtual ::java::lang::String * getDescription(::java::io::File *); + virtual ::java::lang::String * getTypeDescription(::java::io::File *); + virtual ::javax::swing::Icon * getIcon(::java::io::File *); + virtual jboolean isTraversable(::java::io::File *); + virtual jboolean accept(::java::io::File *); + virtual void setFileSystemView(::javax::swing::filechooser::FileSystemView *); + virtual ::javax::swing::filechooser::FileSystemView * getFileSystemView(); + virtual void approveSelection(); + virtual void cancelSelection(); + virtual void addActionListener(::java::awt::event::ActionListener *); + virtual void removeActionListener(::java::awt::event::ActionListener *); + virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners(); +public: // actually protected + virtual void fireActionPerformed(::java::lang::String *); +public: + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::javax::swing::plaf::FileChooserUI * getUI(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 3162921138695327837LL; +public: + static const jint OPEN_DIALOG = 0; + static const jint SAVE_DIALOG = 1; + static const jint CUSTOM_DIALOG = 2; + static const jint CANCEL_OPTION = 1; + static const jint APPROVE_OPTION = 0; + static const jint ERROR_OPTION = -1; + static const jint FILES_ONLY = 0; + static const jint DIRECTORIES_ONLY = 1; + static const jint FILES_AND_DIRECTORIES = 2; + static ::java::lang::String * CANCEL_SELECTION; + static ::java::lang::String * APPROVE_SELECTION; + static ::java::lang::String * APPROVE_BUTTON_TEXT_CHANGED_PROPERTY; + static ::java::lang::String * APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY; + static ::java::lang::String * APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY; + static ::java::lang::String * CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY; + static ::java::lang::String * DIRECTORY_CHANGED_PROPERTY; + static ::java::lang::String * SELECTED_FILE_CHANGED_PROPERTY; + static ::java::lang::String * SELECTED_FILES_CHANGED_PROPERTY; + static ::java::lang::String * MULTI_SELECTION_ENABLED_CHANGED_PROPERTY; + static ::java::lang::String * FILE_SYSTEM_VIEW_CHANGED_PROPERTY; + static ::java::lang::String * FILE_VIEW_CHANGED_PROPERTY; + static ::java::lang::String * FILE_HIDING_CHANGED_PROPERTY; + static ::java::lang::String * FILE_FILTER_CHANGED_PROPERTY; + static ::java::lang::String * FILE_SELECTION_MODE_CHANGED_PROPERTY; + static ::java::lang::String * ACCESSORY_CHANGED_PROPERTY; + static ::java::lang::String * ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY; + static ::java::lang::String * DIALOG_TITLE_CHANGED_PROPERTY; + static ::java::lang::String * DIALOG_TYPE_CHANGED_PROPERTY; + static ::java::lang::String * CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY; +public: // actually protected + ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) accessibleContext; +private: + ::javax::swing::filechooser::FileSystemView * fsv; + ::javax::swing::JComponent * accessory; + jint approveButtonMnemonic; + ::java::lang::String * approveButtonText; + ::java::lang::String * approveButtonToolTipText; + ::java::util::ArrayList * choosableFilters; + jboolean isAcceptAll; + ::java::lang::String * dialogTitle; + jint dialogType; + jint retval; + jboolean multiSelection; + jboolean fileHiding; + jint fileSelectionMode; + ::javax::swing::filechooser::FileView * fv; + jboolean controlButtonsShown; + ::java::io::File * currentDir; + ::javax::swing::filechooser::FileFilter * currentFilter; + JArray< ::java::io::File * > * selectedFiles; + ::java::io::File * selectedFile; + jboolean dragEnabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFileChooser__ diff --git a/libjava/javax/swing/JFormattedTextField$AbstractFormatter.h b/libjava/javax/swing/JFormattedTextField$AbstractFormatter.h new file mode 100644 index 00000000000..d7ef6b51f24 --- /dev/null +++ b/libjava/javax/swing/JFormattedTextField$AbstractFormatter.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFormattedTextField$AbstractFormatter__ +#define __javax_swing_JFormattedTextField$AbstractFormatter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + class JFormattedTextField; + class JFormattedTextField$AbstractFormatter; + namespace text + { + class DocumentFilter; + class NavigationFilter; + } + } + } +} + +class javax::swing::JFormattedTextField$AbstractFormatter : public ::java::lang::Object +{ + +public: + JFormattedTextField$AbstractFormatter(); +public: // actually protected + virtual ::java::lang::Object * clone(); + virtual JArray< ::javax::swing::Action * > * getActions(); + virtual ::javax::swing::text::DocumentFilter * getDocumentFilter(); + virtual ::javax::swing::JFormattedTextField * getFormattedTextField(); + virtual ::javax::swing::text::NavigationFilter * getNavigationFilter(); +public: + virtual void install(::javax::swing::JFormattedTextField *); + virtual void uninstall(); +public: // actually protected + virtual void invalidEdit(); + virtual void setEditValid(jboolean); +public: + virtual ::java::lang::Object * stringToValue(::java::lang::String *) = 0; + virtual ::java::lang::String * valueToString(::java::lang::Object *) = 0; +private: + static const jlong serialVersionUID = -5193212041738979680LL; + ::javax::swing::JFormattedTextField * __attribute__((aligned(__alignof__( ::java::lang::Object)))) textField; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFormattedTextField$AbstractFormatter__ diff --git a/libjava/javax/swing/JFormattedTextField$AbstractFormatterFactory.h b/libjava/javax/swing/JFormattedTextField$AbstractFormatterFactory.h new file mode 100644 index 00000000000..45c633db4e4 --- /dev/null +++ b/libjava/javax/swing/JFormattedTextField$AbstractFormatterFactory.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFormattedTextField$AbstractFormatterFactory__ +#define __javax_swing_JFormattedTextField$AbstractFormatterFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JFormattedTextField; + class JFormattedTextField$AbstractFormatter; + class JFormattedTextField$AbstractFormatterFactory; + } + } +} + +class javax::swing::JFormattedTextField$AbstractFormatterFactory : public ::java::lang::Object +{ + +public: + JFormattedTextField$AbstractFormatterFactory(); + virtual ::javax::swing::JFormattedTextField$AbstractFormatter * getFormatter(::javax::swing::JFormattedTextField *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFormattedTextField$AbstractFormatterFactory__ diff --git a/libjava/javax/swing/JFormattedTextField.h b/libjava/javax/swing/JFormattedTextField.h new file mode 100644 index 00000000000..5c79e06e605 --- /dev/null +++ b/libjava/javax/swing/JFormattedTextField.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFormattedTextField__ +#define __javax_swing_JFormattedTextField__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + namespace text + { + class Format; + } + } + namespace javax + { + namespace swing + { + class Action; + class JFormattedTextField; + class JFormattedTextField$AbstractFormatter; + class JFormattedTextField$AbstractFormatterFactory; + namespace text + { + class Document; + } + } + } +} + +class javax::swing::JFormattedTextField : public ::javax::swing::JTextField +{ + +public: + JFormattedTextField(); + JFormattedTextField(::java::text::Format *); + JFormattedTextField(::javax::swing::JFormattedTextField$AbstractFormatter *); + JFormattedTextField(::javax::swing::JFormattedTextField$AbstractFormatterFactory *); + JFormattedTextField(::javax::swing::JFormattedTextField$AbstractFormatterFactory *, ::java::lang::Object *); + JFormattedTextField(::java::lang::Object *); +private: + ::javax::swing::JFormattedTextField$AbstractFormatterFactory * getAppropriateFormatterFactory(::java::text::Format *); +public: + virtual void commitEdit(); + virtual JArray< ::javax::swing::Action * > * getActions(); + virtual jint getFocusLostBehavior(); + virtual ::javax::swing::JFormattedTextField$AbstractFormatter * getFormatter(); + virtual ::javax::swing::JFormattedTextField$AbstractFormatterFactory * getFormatterFactory(); + virtual ::java::lang::String * getUIClassID(); + virtual ::java::lang::Object * getValue(); +public: // actually protected + virtual void invalidEdit(); +public: + virtual jboolean isEditValid(); +public: // actually protected + virtual void processFocusEvent(::java::awt::event::FocusEvent *); +public: + virtual void setDocument(::javax::swing::text::Document *); + virtual void setFocusLostBehavior(jint); +public: // actually protected + virtual void setFormatter(::javax::swing::JFormattedTextField$AbstractFormatter *); +public: + virtual void setFormatterFactory(::javax::swing::JFormattedTextField$AbstractFormatterFactory *); + virtual void setValue(::java::lang::Object *); +public: // actually package-private + virtual ::javax::swing::JFormattedTextField$AbstractFormatterFactory * createFormatterFactory(::java::lang::Object *); +private: + static const jlong serialVersionUID = 5464657870110180632LL; +public: + static const jint COMMIT = 0; + static const jint COMMIT_OR_REVERT = 1; + static const jint REVERT = 2; + static const jint PERSIST = 3; +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) value; + jint focusLostBehavior; + ::javax::swing::JFormattedTextField$AbstractFormatterFactory * formatterFactory; + ::javax::swing::JFormattedTextField$AbstractFormatter * formatter; +public: // actually package-private + jboolean editValid; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFormattedTextField__ diff --git a/libjava/javax/swing/JFrame$AccessibleJFrame.h b/libjava/javax/swing/JFrame$AccessibleJFrame.h new file mode 100644 index 00000000000..dbb3c553faa --- /dev/null +++ b/libjava/javax/swing/JFrame$AccessibleJFrame.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFrame$AccessibleJFrame__ +#define __javax_swing_JFrame$AccessibleJFrame__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JFrame; + class JFrame$AccessibleJFrame; + } + } +} + +class javax::swing::JFrame$AccessibleJFrame : public ::java::awt::Frame$AccessibleAWTFrame +{ + +public: // actually protected + JFrame$AccessibleJFrame(::javax::swing::JFrame *); +public: // actually package-private + ::javax::swing::JFrame * __attribute__((aligned(__alignof__( ::java::awt::Frame$AccessibleAWTFrame)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFrame$AccessibleJFrame__ diff --git a/libjava/javax/swing/JFrame.h b/libjava/javax/swing/JFrame.h new file mode 100644 index 00000000000..705e200b2f9 --- /dev/null +++ b/libjava/javax/swing/JFrame.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JFrame__ +#define __javax_swing_JFrame__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class Graphics; + class GraphicsConfiguration; + class LayoutManager; + namespace event + { + class KeyEvent; + class WindowEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JFrame; + class JLayeredPane; + class JMenuBar; + class JRootPane; + } + } +} + +class javax::swing::JFrame : public ::java::awt::Frame +{ + +public: + JFrame(); + JFrame(::java::lang::String *); + JFrame(::java::awt::GraphicsConfiguration *); + JFrame(::java::lang::String *, ::java::awt::GraphicsConfiguration *); +public: // actually protected + virtual void frameInit(); +public: + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::javax::swing::JMenuBar * getJMenuBar(); + virtual void setJMenuBar(::javax::swing::JMenuBar *); + virtual void setLayout(::java::awt::LayoutManager *); + virtual void setLayeredPane(::javax::swing::JLayeredPane *); + virtual ::javax::swing::JLayeredPane * getLayeredPane(); + virtual ::javax::swing::JRootPane * getRootPane(); +public: // actually protected + virtual void setRootPane(::javax::swing::JRootPane *); + virtual ::javax::swing::JRootPane * createRootPane(); +public: + virtual ::java::awt::Container * getContentPane(); + virtual void setContentPane(::java::awt::Container *); + virtual ::java::awt::Component * getGlassPane(); + virtual void setGlassPane(::java::awt::Component *); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual void remove(::java::awt::Component *); +public: // actually protected + virtual jboolean isRootPaneCheckingEnabled(); + virtual void setRootPaneCheckingEnabled(jboolean); +public: + virtual void update(::java::awt::Graphics *); +public: // actually protected + virtual void processKeyEvent(::java::awt::event::KeyEvent *); +public: + static void setDefaultLookAndFeelDecorated(jboolean); + static jboolean isDefaultLookAndFeelDecorated(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual jint getDefaultCloseOperation(); +public: // actually protected + virtual ::java::lang::String * paramString(); + virtual void processWindowEvent(::java::awt::event::WindowEvent *); +public: + virtual void setDefaultCloseOperation(jint); + static const jint EXIT_ON_CLOSE = 3; +private: + static const jlong serialVersionUID = -3362141868504252139LL; + static jboolean defaultLookAndFeelDecorated; + jint __attribute__((aligned(__alignof__( ::java::awt::Frame)))) closeAction; +public: // actually protected + ::javax::accessibility::AccessibleContext * accessibleContext; + ::javax::swing::JRootPane * rootPane; + jboolean rootPaneCheckingEnabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JFrame__ diff --git a/libjava/javax/swing/JInternalFrame$AccessibleJInternalFrame.h b/libjava/javax/swing/JInternalFrame$AccessibleJInternalFrame.h new file mode 100644 index 00000000000..94749ac5a50 --- /dev/null +++ b/libjava/javax/swing/JInternalFrame$AccessibleJInternalFrame.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JInternalFrame$AccessibleJInternalFrame__ +#define __javax_swing_JInternalFrame$AccessibleJInternalFrame__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + class AccessibleValue; + } + namespace swing + { + class JInternalFrame; + class JInternalFrame$AccessibleJInternalFrame; + } + } +} + +class javax::swing::JInternalFrame$AccessibleJInternalFrame : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JInternalFrame$AccessibleJInternalFrame(::javax::swing::JInternalFrame *); +public: + virtual ::java::lang::String * getAccessibleName(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleValue * getAccessibleValue(); + virtual ::java::lang::Number * getCurrentAccessibleValue(); + virtual ::java::lang::Number * getMaximumAccessibleValue(); + virtual ::java::lang::Number * getMinimumAccessibleValue(); + virtual jboolean setCurrentAccessibleValue(::java::lang::Number *); +private: + static const jlong serialVersionUID = 5931936924175476797LL; +public: // actually package-private + ::javax::swing::JInternalFrame * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JInternalFrame$AccessibleJInternalFrame__ diff --git a/libjava/javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon.h b/libjava/javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon.h new file mode 100644 index 00000000000..bcea0c5139f --- /dev/null +++ b/libjava/javax/swing/JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon__ +#define __javax_swing_JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + class AccessibleValue; + } + namespace swing + { + class JInternalFrame$JDesktopIcon; + class JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon; + } + } +} + +class javax::swing::JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon(::javax::swing::JInternalFrame$JDesktopIcon *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleValue * getAccessibleValue(); + virtual ::java::lang::Number * getCurrentAccessibleValue(); + virtual ::java::lang::Number * getMaximumAccessibleValue(); + virtual ::java::lang::Number * getMinimumAccessibleValue(); + virtual jboolean setCurrentAccessibleValue(::java::lang::Number *); +private: + static const jlong serialVersionUID = 5035560458941637802LL; +public: // actually package-private + ::javax::swing::JInternalFrame$JDesktopIcon * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JInternalFrame$JDesktopIcon$AccessibleJDesktopIcon__ diff --git a/libjava/javax/swing/JInternalFrame$JDesktopIcon.h b/libjava/javax/swing/JInternalFrame$JDesktopIcon.h new file mode 100644 index 00000000000..dc20f4d5781 --- /dev/null +++ b/libjava/javax/swing/JInternalFrame$JDesktopIcon.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JInternalFrame$JDesktopIcon__ +#define __javax_swing_JInternalFrame$JDesktopIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JDesktopPane; + class JInternalFrame; + class JInternalFrame$JDesktopIcon; + namespace plaf + { + class DesktopIconUI; + } + } + } +} + +class javax::swing::JInternalFrame$JDesktopIcon : public ::javax::swing::JComponent +{ + +public: + JInternalFrame$JDesktopIcon(::javax::swing::JInternalFrame *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::javax::swing::JDesktopPane * getDesktopPane(); + virtual ::javax::swing::JInternalFrame * getInternalFrame(); + virtual ::javax::swing::plaf::DesktopIconUI * getUI(); + virtual ::java::lang::String * getUIClassID(); + virtual void setInternalFrame(::javax::swing::JInternalFrame *); + virtual void setUI(::javax::swing::plaf::DesktopIconUI *); + virtual void updateUI(); +private: + static const jlong serialVersionUID = 4672973344731387687LL; +public: // actually package-private + ::javax::swing::JInternalFrame * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) frame; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JInternalFrame$JDesktopIcon__ diff --git a/libjava/javax/swing/JInternalFrame.h b/libjava/javax/swing/JInternalFrame.h new file mode 100644 index 00000000000..36deb84c55e --- /dev/null +++ b/libjava/javax/swing/JInternalFrame.h @@ -0,0 +1,192 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JInternalFrame__ +#define __javax_swing_JInternalFrame__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Graphics; + class LayoutManager; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Icon; + class JDesktopPane; + class JInternalFrame; + class JInternalFrame$JDesktopIcon; + class JLayeredPane; + class JMenuBar; + class JRootPane; + namespace event + { + class InternalFrameListener; + } + namespace plaf + { + class InternalFrameUI; + } + } + } +} + +class javax::swing::JInternalFrame : public ::javax::swing::JComponent +{ + +public: + JInternalFrame(); + JInternalFrame(::java::lang::String *); + JInternalFrame(::java::lang::String *, jboolean); + JInternalFrame(::java::lang::String *, jboolean, jboolean); + JInternalFrame(::java::lang::String *, jboolean, jboolean, jboolean); + JInternalFrame(::java::lang::String *, jboolean, jboolean, jboolean, jboolean); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual void addInternalFrameListener(::javax::swing::event::InternalFrameListener *); +public: // actually protected + virtual ::javax::swing::JRootPane * createRootPane(); +public: + virtual void dispose(); + virtual void doDefaultCloseAction(); +public: // actually protected + virtual void fireInternalFrameEvent(jint); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::awt::Container * getContentPane(); + virtual jint getDefaultCloseOperation(); + virtual ::javax::swing::JInternalFrame$JDesktopIcon * getDesktopIcon(); + virtual ::javax::swing::JDesktopPane * getDesktopPane(); + virtual ::java::awt::Container * getFocusCycleRootAncestor(); + virtual ::java::awt::Component * getFocusOwner(); + virtual ::javax::swing::Icon * getFrameIcon(); + virtual ::java::awt::Component * getGlassPane(); + virtual JArray< ::javax::swing::event::InternalFrameListener * > * getInternalFrameListeners(); + virtual ::javax::swing::JMenuBar * getJMenuBar(); + virtual jint getLayer(); + virtual ::javax::swing::JLayeredPane * getLayeredPane(); + virtual ::javax::swing::JMenuBar * getMenuBar(); + virtual ::java::awt::Component * getMostRecentFocusOwner(); + virtual ::java::awt::Rectangle * getNormalBounds(); + virtual ::javax::swing::JRootPane * getRootPane(); + virtual ::java::lang::String * getTitle(); + virtual ::javax::swing::plaf::InternalFrameUI * getUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::java::lang::String * getWarningString(); + virtual void hide(); + virtual jboolean isClosable(); + virtual jboolean isClosed(); + virtual jboolean isFocusCycleRoot(); + virtual jboolean isIcon(); + virtual jboolean isIconifiable(); + virtual jboolean isMaximizable(); + virtual jboolean isMaximum(); + virtual jboolean isResizable(); +public: // actually protected + virtual jboolean isRootPaneCheckingEnabled(); +public: + virtual jboolean isSelected(); + virtual void moveToBack(); + virtual void moveToFront(); + virtual void pack(); +public: // actually protected + virtual void paintComponent(::java::awt::Graphics *); + virtual ::java::lang::String * paramString(); +public: + virtual void remove(::java::awt::Component *); + virtual void removeInternalFrameListener(::javax::swing::event::InternalFrameListener *); + virtual void reshape(jint, jint, jint, jint); + virtual void restoreSubcomponentFocus(); + virtual void setClosable(jboolean); + virtual void setClosed(jboolean); + virtual void setContentPane(::java::awt::Container *); + virtual void setDefaultCloseOperation(jint); + virtual void setDesktopIcon(::javax::swing::JInternalFrame$JDesktopIcon *); + virtual void setFocusCycleRoot(jboolean); + virtual void setFrameIcon(::javax::swing::Icon *); + virtual void setGlassPane(::java::awt::Component *); + virtual void setIcon(jboolean); + virtual void setIconifiable(jboolean); + virtual void setJMenuBar(::javax::swing::JMenuBar *); + virtual void setLayer(jint); + virtual void setLayer(::java::lang::Integer *); + virtual void setLayeredPane(::javax::swing::JLayeredPane *); + virtual void setMaximizable(jboolean); + virtual void setLayout(::java::awt::LayoutManager *); + virtual void setMaximum(jboolean); + virtual void setMenuBar(::javax::swing::JMenuBar *); + virtual void setNormalBounds(::java::awt::Rectangle *); + virtual void setResizable(jboolean); +public: // actually protected + virtual void setRootPane(::javax::swing::JRootPane *); + virtual void setRootPaneCheckingEnabled(jboolean); +public: + virtual void setSelected(jboolean); + virtual void setTitle(::java::lang::String *); + virtual void show(); + virtual void setUI(::javax::swing::plaf::InternalFrameUI *); + virtual void toBack(); + virtual void toFront(); + virtual void updateUI(); +public: // actually package-private + virtual void setWasIcon(jboolean, ::java::lang::String *); + virtual jboolean getWasIcon(); +private: + void fireVetoableChange(::java::lang::String *, jboolean, jboolean); + static const jlong serialVersionUID = -5425177187760785402LL; +public: + static ::java::lang::String * CONTENT_PANE_PROPERTY; + static ::java::lang::String * FRAME_ICON_PROPERTY; + static ::java::lang::String * GLASS_PANE_PROPERTY; + static ::java::lang::String * IS_CLOSED_PROPERTY; + static ::java::lang::String * IS_ICON_PROPERTY; + static ::java::lang::String * IS_MAXIMUM_PROPERTY; + static ::java::lang::String * IS_SELECTED_PROPERTY; + static ::java::lang::String * LAYERED_PANE_PROPERTY; + static ::java::lang::String * MENU_BAR_PROPERTY; + static ::java::lang::String * ROOT_PANE_PROPERTY; + static ::java::lang::String * TITLE_PROPERTY; +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) closable; + jboolean iconable; + jboolean isClosed__; + jboolean isIcon__; + jboolean isMaximum__; + jboolean isSelected__; + jboolean maximizable; + jboolean rootPaneCheckingEnabled; + jboolean resizable; + ::javax::swing::JInternalFrame$JDesktopIcon * desktopIcon; + ::javax::swing::Icon * frameIcon; + ::javax::swing::JRootPane * rootPane; + ::java::lang::String * title; +private: + ::java::awt::Rectangle * storedBounds; + ::java::awt::Component * defaultFocus; + jint defaultCloseOperation; + jboolean isFirstTimeVisible; + jboolean wasIcon; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JInternalFrame__ diff --git a/libjava/javax/swing/JLabel$AccessibleJLabel.h b/libjava/javax/swing/JLabel$AccessibleJLabel.h new file mode 100644 index 00000000000..0fb4609aa68 --- /dev/null +++ b/libjava/javax/swing/JLabel$AccessibleJLabel.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JLabel$AccessibleJLabel__ +#define __javax_swing_JLabel$AccessibleJLabel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JLabel; + class JLabel$AccessibleJLabel; + namespace text + { + class AttributeSet; + } + } + } +} + +class javax::swing::JLabel$AccessibleJLabel : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JLabel$AccessibleJLabel(::javax::swing::JLabel *); +public: + virtual ::java::lang::String * getAccessibleName(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::java::lang::String * getSelectedText(); + virtual jint getSelectionStart(); + virtual jint getSelectionEnd(); + virtual ::javax::swing::text::AttributeSet * getCharacterAttribute(jint); + virtual ::java::lang::String * getAtIndex(jint, jint); + virtual ::java::lang::String * getAfterIndex(jint, jint); + virtual ::java::lang::String * getBeforeIndex(jint, jint); + virtual jint getCaretPosition(); + virtual jint getCharCount(); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); +private: + ::java::awt::Rectangle * getTextRectangle(); +public: + virtual jint getIndexAtPoint(::java::awt::Point *); +public: // actually package-private + ::javax::swing::JLabel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JLabel$AccessibleJLabel__ diff --git a/libjava/javax/swing/JLabel.h b/libjava/javax/swing/JLabel.h new file mode 100644 index 00000000000..08f59ed8f8c --- /dev/null +++ b/libjava/javax/swing/JLabel.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JLabel__ +#define __javax_swing_JLabel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Font; + class Image; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Icon; + class JLabel; + namespace plaf + { + class LabelUI; + } + } + } +} + +class javax::swing::JLabel : public ::javax::swing::JComponent +{ + +public: + JLabel(); + JLabel(::javax::swing::Icon *); + JLabel(::javax::swing::Icon *, jint); + JLabel(::java::lang::String *); + JLabel(::java::lang::String *, jint); + JLabel(::java::lang::String *, ::javax::swing::Icon *, jint); + virtual ::javax::swing::plaf::LabelUI * getUI(); + virtual void setUI(::javax::swing::plaf::LabelUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::java::lang::String * getText(); + virtual void setText(::java::lang::String *); + virtual ::javax::swing::Icon * getIcon(); + virtual void setIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getDisabledIcon(); + virtual void setDisabledIcon(::javax::swing::Icon *); + virtual void setDisplayedMnemonic(jint); + virtual void setDisplayedMnemonic(jchar); + virtual jint getDisplayedMnemonic(); + virtual void setDisplayedMnemonicIndex(jint); + virtual jint getDisplayedMnemonicIndex(); +public: // actually protected + virtual jint checkHorizontalKey(jint, ::java::lang::String *); + virtual jint checkVerticalKey(jint, ::java::lang::String *); +public: + virtual jint getIconTextGap(); + virtual void setIconTextGap(jint); + virtual jint getVerticalAlignment(); + virtual void setVerticalAlignment(jint); + virtual jint getHorizontalAlignment(); + virtual void setHorizontalAlignment(jint); + virtual jint getVerticalTextPosition(); + virtual void setVerticalTextPosition(jint); + virtual jint getHorizontalTextPosition(); + virtual void setHorizontalTextPosition(jint); + virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint); + virtual ::java::awt::Component * getLabelFor(); + virtual void setLabelFor(::java::awt::Component *); + virtual void setFont(::java::awt::Font *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 5496508283662221534LL; +public: // actually package-private + static ::java::lang::String * LABEL_PROPERTY; +public: // actually protected + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) labelFor; +public: // actually package-private + ::java::lang::String * text; +private: + jint horizontalAlignment; + jint horizontalTextPosition; + jint verticalAlignment; + jint verticalTextPosition; + ::javax::swing::Icon * icon; + ::javax::swing::Icon * disabledIcon; + jint displayedMnemonic; + jint displayedMnemonicIndex; + jint iconTextGap; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JLabel__ diff --git a/libjava/javax/swing/JLayeredPane$AccessibleJLayeredPane.h b/libjava/javax/swing/JLayeredPane$AccessibleJLayeredPane.h new file mode 100644 index 00000000000..64eaa6d8b3b --- /dev/null +++ b/libjava/javax/swing/JLayeredPane$AccessibleJLayeredPane.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JLayeredPane$AccessibleJLayeredPane__ +#define __javax_swing_JLayeredPane$AccessibleJLayeredPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JLayeredPane; + class JLayeredPane$AccessibleJLayeredPane; + } + } +} + +class javax::swing::JLayeredPane$AccessibleJLayeredPane : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JLayeredPane$AccessibleJLayeredPane(::javax::swing::JLayeredPane *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +public: // actually package-private + ::javax::swing::JLayeredPane * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JLayeredPane$AccessibleJLayeredPane__ diff --git a/libjava/javax/swing/JLayeredPane.h b/libjava/javax/swing/JLayeredPane.h new file mode 100644 index 00000000000..3e6acaa9248 --- /dev/null +++ b/libjava/javax/swing/JLayeredPane.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JLayeredPane__ +#define __javax_swing_JLayeredPane__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JComponent; + class JLayeredPane; + } + } +} + +class javax::swing::JLayeredPane : public ::javax::swing::JComponent +{ + +public: + JLayeredPane(); + virtual jint getLayer(::java::awt::Component *); + static jint getLayer(::javax::swing::JComponent *); + static ::javax::swing::JLayeredPane * getLayeredPaneAbove(::java::awt::Component *); + virtual jint highestLayer(); + virtual jint lowestLayer(); + virtual void moveToFront(::java::awt::Component *); + virtual void moveToBack(::java::awt::Component *); + virtual jint getPosition(::java::awt::Component *); + virtual void setPosition(::java::awt::Component *, jint); + virtual JArray< ::java::awt::Component * > * getComponentsInLayer(jint); + virtual jint getComponentCountInLayer(jint); +public: // actually protected + virtual ::java::util::Hashtable * getComponentToLayer(); +public: + virtual jint getIndexOf(::java::awt::Component *); +public: // actually protected + virtual ::java::lang::Integer * getObjectForLayer(jint); + virtual jint insertIndexForLayer(jint, jint); +private: + jint insertIndexForLayer(::java::awt::Component *, jint, jint); +public: + virtual void remove(jint); + virtual void removeAll(); + virtual void setLayer(::java::awt::Component *, jint); + virtual void setLayer(::java::awt::Component *, jint, jint); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + static void putLayer(::javax::swing::JComponent *, jint); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual void paint(::java::awt::Graphics *); + virtual jboolean isOptimizedDrawingEnabled(); +private: + static const jlong serialVersionUID = 5534920399324590459LL; +public: + static ::java::lang::String * LAYER_PROPERTY; + static ::java::lang::Integer * FRAME_CONTENT_LAYER; + static ::java::lang::Integer * DEFAULT_LAYER; + static ::java::lang::Integer * PALETTE_LAYER; + static ::java::lang::Integer * MODAL_LAYER; + static ::java::lang::Integer * POPUP_LAYER; + static ::java::lang::Integer * DRAG_LAYER; +private: + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) componentToLayer; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JLayeredPane__ diff --git a/libjava/javax/swing/JList$1.h b/libjava/javax/swing/JList$1.h new file mode 100644 index 00000000000..92e7546fa8b --- /dev/null +++ b/libjava/javax/swing/JList$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JList$1__ +#define __javax_swing_JList$1__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class JList; + class JList$1; + } + } +} + +class javax::swing::JList$1 : public ::javax::swing::AbstractListModel +{ + +public: // actually package-private + JList$1(::javax::swing::JList *, JArray< ::java::lang::Object * > *); +public: + jint getSize(); + ::java::lang::Object * getElementAt(jint); +public: // actually package-private + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) this$0; +private: + JArray< ::java::lang::Object * > * val$items; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JList$1__ diff --git a/libjava/javax/swing/JList$2.h b/libjava/javax/swing/JList$2.h new file mode 100644 index 00000000000..8c471ab8d22 --- /dev/null +++ b/libjava/javax/swing/JList$2.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JList$2__ +#define __javax_swing_JList$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JList; + class JList$2; + } + } +} + +class javax::swing::JList$2 : public ::javax::swing::AbstractListModel +{ + +public: // actually package-private + JList$2(::javax::swing::JList *, ::java::util::Vector *); +public: + jint getSize(); + ::java::lang::Object * getElementAt(jint); +public: // actually package-private + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) this$0; +private: + ::java::util::Vector * val$items; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JList$2__ diff --git a/libjava/javax/swing/JList$3.h b/libjava/javax/swing/JList$3.h new file mode 100644 index 00000000000..8d50682139d --- /dev/null +++ b/libjava/javax/swing/JList$3.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JList$3__ +#define __javax_swing_JList$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JList; + class JList$3; + } + } +} + +class javax::swing::JList$3 : public ::javax::swing::AbstractListModel +{ + +public: // actually package-private + JList$3(::javax::swing::JList *, ::java::util::Vector *); +public: + jint getSize(); + ::java::lang::Object * getElementAt(jint); +public: // actually package-private + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) this$0; +private: + ::java::util::Vector * val$listData; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JList$3__ diff --git a/libjava/javax/swing/JList$AccessibleJList$AccessibleJListChild.h b/libjava/javax/swing/JList$AccessibleJList$AccessibleJListChild.h new file mode 100644 index 00000000000..1ca2d171014 --- /dev/null +++ b/libjava/javax/swing/JList$AccessibleJList$AccessibleJListChild.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JList$AccessibleJList$AccessibleJListChild__ +#define __javax_swing_JList$AccessibleJList$AccessibleJListChild__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Cursor; + class Dimension; + class Font; + class FontMetrics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleContext; + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class JList; + class JList$AccessibleJList; + class JList$AccessibleJList$AccessibleJListChild; + } + } +} + +class javax::swing::JList$AccessibleJList$AccessibleJListChild : public ::javax::accessibility::AccessibleContext +{ + +public: + JList$AccessibleJList$AccessibleJListChild(::javax::swing::JList$AccessibleJList *, ::javax::swing::JList *, jint); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + 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 *); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual jint getAccessibleIndexInParent(); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::java::util::Locale * getLocale(); + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); +public: // actually package-private + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) parent; + jint listIndex; + ::java::awt::Cursor * cursor; + ::javax::swing::JList$AccessibleJList * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JList$AccessibleJList$AccessibleJListChild__ diff --git a/libjava/javax/swing/JList$AccessibleJList.h b/libjava/javax/swing/JList$AccessibleJList.h new file mode 100644 index 00000000000..ca1842f5682 --- /dev/null +++ b/libjava/javax/swing/JList$AccessibleJList.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JList$AccessibleJList__ +#define __javax_swing_JList$AccessibleJList__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + } + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class JList; + class JList$AccessibleJList; + namespace event + { + class ListDataEvent; + class ListSelectionEvent; + } + } + } +} + +class javax::swing::JList$AccessibleJList : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: + JList$AccessibleJList(::javax::swing::JList *); + virtual jint getAccessibleSelectionCount(); + 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 valueChanged(::javax::swing::event::ListSelectionEvent *); + virtual void contentsChanged(::javax::swing::event::ListDataEvent *); + virtual void intervalAdded(::javax::swing::event::ListDataEvent *); + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); +public: // actually package-private + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JList$AccessibleJList__ diff --git a/libjava/javax/swing/JList$ListListener.h b/libjava/javax/swing/JList$ListListener.h new file mode 100644 index 00000000000..87854ebfd53 --- /dev/null +++ b/libjava/javax/swing/JList$ListListener.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JList$ListListener__ +#define __javax_swing_JList$ListListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JList; + class JList$ListListener; + namespace event + { + class ListDataEvent; + class ListSelectionEvent; + } + } + } +} + +class javax::swing::JList$ListListener : public ::java::lang::Object +{ + + JList$ListListener(::javax::swing::JList *); +public: + virtual void contentsChanged(::javax::swing::event::ListDataEvent *); + virtual void intervalAdded(::javax::swing::event::ListDataEvent *); + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *); + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); +public: // actually package-private + JList$ListListener(::javax::swing::JList *, ::javax::swing::JList$ListListener *); + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JList$ListListener__ diff --git a/libjava/javax/swing/JList.h b/libjava/javax/swing/JList.h new file mode 100644 index 00000000000..2e68ae501bd --- /dev/null +++ b/libjava/javax/swing/JList.h @@ -0,0 +1,162 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JList__ +#define __javax_swing_JList__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JList; + class JList$ListListener; + class ListCellRenderer; + class ListModel; + class ListSelectionModel; + namespace event + { + class ListSelectionListener; + } + namespace plaf + { + class ListUI; + } + namespace text + { + class Position$Bias; + } + } + } +} + +class javax::swing::JList : public ::javax::swing::JComponent +{ + +public: // actually protected + virtual void fireSelectionValueChanged(jint, jint, jboolean); +public: + JList(); + JList(JArray< ::java::lang::Object * > *); + JList(::java::util::Vector *); + JList(::javax::swing::ListModel *); +private: + void init(::javax::swing::ListModel *); +public: // actually protected + virtual ::javax::swing::ListSelectionModel * createSelectionModel(); +public: + virtual jint getFixedCellHeight(); + virtual void setFixedCellHeight(jint); + virtual jint getFixedCellWidth(); + virtual void setFixedCellWidth(jint); + virtual jint getVisibleRowCount(); + virtual void setVisibleRowCount(jint); + virtual void addListSelectionListener(::javax::swing::event::ListSelectionListener *); + virtual void removeListSelectionListener(::javax::swing::event::ListSelectionListener *); + virtual JArray< ::javax::swing::event::ListSelectionListener * > * getListSelectionListeners(); + virtual jint getSelectionMode(); + virtual void setSelectionMode(jint); + virtual void setSelectedIndex(jint); + virtual void setSelectedIndices(JArray< jint > *); + virtual jint getSelectedIndex(); + virtual jboolean isSelectionEmpty(); + virtual jint getFirstVisibleIndex(); + virtual jint locationToIndex(::java::awt::Point *); + virtual ::java::awt::Point * indexToLocation(jint); + virtual jint getLastVisibleIndex(); + virtual JArray< jint > * getSelectedIndices(); + virtual jboolean isSelectedIndex(jint); + virtual ::java::lang::Object * getSelectedValue(); + virtual JArray< ::java::lang::Object * > * getSelectedValues(); + virtual ::java::awt::Color * getSelectionBackground(); + virtual void setSelectionBackground(::java::awt::Color *); + virtual ::java::awt::Color * getSelectionForeground(); + virtual void setSelectionForeground(::java::awt::Color *); + virtual void setSelectedValue(::java::lang::Object *, jboolean); + virtual void ensureIndexIsVisible(jint); + virtual void setListData(JArray< ::java::lang::Object * > *); +private: + ::javax::swing::ListModel * createListModel(JArray< ::java::lang::Object * > *); + ::javax::swing::ListModel * createListModel(::java::util::Vector *); +public: + virtual void setListData(::java::util::Vector *); + virtual ::javax::swing::ListCellRenderer * getCellRenderer(); + virtual void setCellRenderer(::javax::swing::ListCellRenderer *); + virtual ::javax::swing::ListModel * getModel(); + virtual void setModel(::javax::swing::ListModel *); + virtual ::javax::swing::ListSelectionModel * getSelectionModel(); + virtual void setSelectionModel(::javax::swing::ListSelectionModel *); + virtual ::javax::swing::plaf::ListUI * getUI(); + virtual void setUI(::javax::swing::plaf::ListUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::java::lang::Object * getPrototypeCellValue(); + virtual void setPrototypeCellValue(::java::lang::Object *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::awt::Dimension * getPreferredScrollableViewportSize(); + virtual jint getScrollableUnitIncrement(::java::awt::Rectangle *, jint, jint); + virtual jint getScrollableBlockIncrement(::java::awt::Rectangle *, jint, jint); + virtual jboolean getScrollableTracksViewportWidth(); + virtual jboolean getScrollableTracksViewportHeight(); + virtual jint getAnchorSelectionIndex(); + virtual jint getLeadSelectionIndex(); + virtual jint getMinSelectionIndex(); + virtual jint getMaxSelectionIndex(); + virtual void clearSelection(); + virtual void setSelectionInterval(jint, jint); + virtual void addSelectionInterval(jint, jint); + virtual void removeSelectionInterval(jint, jint); + virtual jboolean getValueIsAdjusting(); + virtual void setValueIsAdjusting(jboolean); + virtual jboolean getDragEnabled(); + virtual void setDragEnabled(jboolean); + virtual jint getLayoutOrientation(); + virtual void setLayoutOrientation(jint); + virtual ::java::awt::Rectangle * getCellBounds(jint, jint); + virtual jint getNextMatch(::java::lang::String *, jint, ::javax::swing::text::Position$Bias *); +public: // actually protected + virtual ::java::lang::String * paramString(); +private: + static const jlong serialVersionUID = 4406629526391098046LL; +public: + static const jint VERTICAL = 0; + static const jint VERTICAL_WRAP = 1; + static const jint HORIZONTAL_WRAP = 2; +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) dragEnabled; + ::javax::swing::ListCellRenderer * cellRenderer; + jint fixedCellWidth; + jint fixedCellHeight; + jint layoutOrientation; + ::javax::swing::ListModel * model; + ::java::lang::Object * prototypeCellValue; + ::java::awt::Color * selectionBackground; + ::java::awt::Color * selectionForeground; + ::javax::swing::ListSelectionModel * selectionModel; + jint visibleRowCount; + ::javax::swing::JList$ListListener * listListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JList__ diff --git a/libjava/javax/swing/JMenu$AccessibleJMenu.h b/libjava/javax/swing/JMenu$AccessibleJMenu.h new file mode 100644 index 00000000000..6c892b49193 --- /dev/null +++ b/libjava/javax/swing/JMenu$AccessibleJMenu.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenu$AccessibleJMenu__ +#define __javax_swing_JMenu$AccessibleJMenu__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + class AccessibleSelection; + } + namespace swing + { + class JMenu; + class JMenu$AccessibleJMenu; + } + } +} + +class javax::swing::JMenu$AccessibleJMenu : public ::javax::swing::JMenuItem$AccessibleJMenuItem +{ + +public: // actually protected + JMenu$AccessibleJMenu(::javax::swing::JMenu *); +public: + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection(); + virtual ::javax::accessibility::Accessible * getAccessibleSelection(jint); + virtual jboolean isAccessibleChildSelected(jint); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual jint getAccessibleSelectionCount(); + virtual void addAccessibleSelection(jint); + virtual void removeAccessibleSelection(jint); + virtual void clearAccessibleSelection(); + virtual void selectAllAccessibleSelection(); +private: + static const jlong serialVersionUID = -8131864021059524309LL; +public: // actually package-private + ::javax::swing::JMenu * __attribute__((aligned(__alignof__( ::javax::swing::JMenuItem$AccessibleJMenuItem)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenu$AccessibleJMenu__ diff --git a/libjava/javax/swing/JMenu$ActionChangedListener.h b/libjava/javax/swing/JMenu$ActionChangedListener.h new file mode 100644 index 00000000000..36623cf27b3 --- /dev/null +++ b/libjava/javax/swing/JMenu$ActionChangedListener.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenu$ActionChangedListener__ +#define __javax_swing_JMenu$ActionChangedListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JMenu; + class JMenu$ActionChangedListener; + class JMenuItem; + } + } +} + +class javax::swing::JMenu$ActionChangedListener : public ::java::lang::Object +{ + +public: + JMenu$ActionChangedListener(::javax::swing::JMenu *, ::javax::swing::JMenuItem *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +private: + ::javax::swing::JMenuItem * __attribute__((aligned(__alignof__( ::java::lang::Object)))) menuItem; +public: // actually package-private + ::javax::swing::JMenu * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenu$ActionChangedListener__ diff --git a/libjava/javax/swing/JMenu$MenuChangeListener.h b/libjava/javax/swing/JMenu$MenuChangeListener.h new file mode 100644 index 00000000000..816f33e54d0 --- /dev/null +++ b/libjava/javax/swing/JMenu$MenuChangeListener.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenu$MenuChangeListener__ +#define __javax_swing_JMenu$MenuChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JMenu; + class JMenu$MenuChangeListener; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JMenu$MenuChangeListener : public ::java::lang::Object +{ + + JMenu$MenuChangeListener(::javax::swing::JMenu *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + JMenu$MenuChangeListener(::javax::swing::JMenu *, ::javax::swing::JMenu$MenuChangeListener *); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) selected; +public: // actually package-private + ::javax::swing::JMenu * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenu$MenuChangeListener__ diff --git a/libjava/javax/swing/JMenu$WinListener.h b/libjava/javax/swing/JMenu$WinListener.h new file mode 100644 index 00000000000..e685e382ef5 --- /dev/null +++ b/libjava/javax/swing/JMenu$WinListener.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenu$WinListener__ +#define __javax_swing_JMenu$WinListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class WindowEvent; + } + } + } + namespace javax + { + namespace swing + { + class JMenu; + class JMenu$WinListener; + class JPopupMenu; + } + } +} + +class javax::swing::JMenu$WinListener : public ::java::awt::event::WindowAdapter +{ + +public: + JMenu$WinListener(::javax::swing::JMenu *, ::javax::swing::JPopupMenu *); + virtual void windowClosing(::java::awt::event::WindowEvent *); +private: + static const jlong serialVersionUID = -6415815570638474823LL; +public: // actually package-private + ::javax::swing::JMenu * __attribute__((aligned(__alignof__( ::java::awt::event::WindowAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenu$WinListener__ diff --git a/libjava/javax/swing/JMenu.h b/libjava/javax/swing/JMenu.h new file mode 100644 index 00000000000..112d995a032 --- /dev/null +++ b/libjava/javax/swing/JMenu.h @@ -0,0 +1,141 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenu__ +#define __javax_swing_JMenu__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Point; + namespace event + { + class KeyEvent; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class ButtonModel; + class JMenu; + class JMenu$WinListener; + class JMenuItem; + class JPopupMenu; + class KeyStroke; + class MenuElement; + namespace event + { + class ChangeListener; + class MenuEvent; + class MenuListener; + } + } + } +} + +class javax::swing::JMenu : public ::javax::swing::JMenuItem +{ + +public: + JMenu(); + JMenu(::java::lang::String *); + JMenu(::javax::swing::Action *); + JMenu(::java::lang::String *, jboolean); + virtual ::javax::swing::JMenuItem * add(::javax::swing::JMenuItem *); + virtual ::java::awt::Component * add(::java::awt::Component *); + virtual ::java::awt::Component * add(::java::awt::Component *, jint); + virtual ::javax::swing::JMenuItem * add(::java::lang::String *); + virtual ::javax::swing::JMenuItem * add(::javax::swing::Action *); + virtual void remove(::javax::swing::JMenuItem *); + virtual void remove(jint); + virtual void remove(::java::awt::Component *); + virtual void removeAll(); + virtual void insert(::java::lang::String *, jint); + virtual ::javax::swing::JMenuItem * insert(::javax::swing::JMenuItem *, jint); + virtual ::javax::swing::JMenuItem * insert(::javax::swing::Action *, jint); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual void setModel(::javax::swing::ButtonModel *); + virtual jboolean isSelected(); + virtual void setSelected(jboolean); + virtual jboolean isPopupMenuVisible(); + virtual void setPopupMenuVisible(jboolean); +public: // actually protected + virtual ::java::awt::Point * getPopupMenuOrigin(); +public: + virtual jint getDelay(); + virtual void setDelay(jint); + virtual void setMenuLocation(jint, jint); +public: // actually protected + virtual ::javax::swing::JMenuItem * createActionComponent(::javax::swing::Action *); + virtual ::java::beans::PropertyChangeListener * createActionChangeListener(::javax::swing::JMenuItem *); +public: + virtual void addSeparator(); + virtual void insertSeparator(jint); + virtual ::javax::swing::JMenuItem * getItem(jint); + virtual jint getItemCount(); + virtual jboolean isTearOff(); + virtual jint getMenuComponentCount(); + virtual ::java::awt::Component * getMenuComponent(jint); + virtual JArray< ::java::awt::Component * > * getMenuComponents(); + virtual jboolean isTopLevelMenu(); + virtual jboolean isMenuComponent(::java::awt::Component *); + virtual ::javax::swing::JPopupMenu * getPopupMenu(); + virtual void addMenuListener(::javax::swing::event::MenuListener *); + virtual void removeMenuListener(::javax::swing::event::MenuListener *); + virtual JArray< ::javax::swing::event::MenuListener * > * getMenuListeners(); +public: // actually protected + virtual void fireMenuSelected(); + virtual void fireMenuDeselected(); + virtual void fireMenuCanceled(); + virtual ::javax::swing::JMenu$WinListener * createWinListener(::javax::swing::JPopupMenu *); +public: + virtual void menuSelectionChanged(jboolean); + virtual JArray< ::javax::swing::MenuElement * > * getSubElements(); + virtual ::java::awt::Component * getComponent(); + virtual void setAccelerator(::javax::swing::KeyStroke *); +public: // actually protected + virtual void processKeyEvent(::java::awt::event::KeyEvent *); +public: + virtual void doClick(jint); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +public: // actually package-private + virtual JArray< ::javax::swing::MenuElement * > * createPath(::javax::swing::JMenu *); +private: + static const jlong serialVersionUID = 4227225638931828014LL; + ::javax::swing::JPopupMenu * __attribute__((aligned(__alignof__( ::javax::swing::JMenuItem)))) popupMenu; + ::javax::swing::event::MenuEvent * menuEvent; + jint delay; +public: // actually protected + ::javax::swing::JMenu$WinListener * popupListener; +private: + ::java::awt::Point * menuLocation; + ::javax::swing::event::ChangeListener * menuChangeListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenu__ diff --git a/libjava/javax/swing/JMenuBar$AccessibleJMenuBar.h b/libjava/javax/swing/JMenuBar$AccessibleJMenuBar.h new file mode 100644 index 00000000000..2fcf3ad868d --- /dev/null +++ b/libjava/javax/swing/JMenuBar$AccessibleJMenuBar.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenuBar$AccessibleJMenuBar__ +#define __javax_swing_JMenuBar$AccessibleJMenuBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + class AccessibleSelection; + class AccessibleStateSet; + } + namespace swing + { + class JMenuBar; + class JMenuBar$AccessibleJMenuBar; + } + } +} + +class javax::swing::JMenuBar$AccessibleJMenuBar : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JMenuBar$AccessibleJMenuBar(::javax::swing::JMenuBar *); +public: + virtual jint getAccessibleSelectionCount(); + 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 ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection(); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); +public: // actually package-private + ::javax::swing::JMenuBar * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenuBar$AccessibleJMenuBar__ diff --git a/libjava/javax/swing/JMenuBar.h b/libjava/javax/swing/JMenuBar.h new file mode 100644 index 00000000000..a33d051bacb --- /dev/null +++ b/libjava/javax/swing/JMenuBar.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenuBar__ +#define __javax_swing_JMenuBar__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JMenu; + class JMenuBar; + class KeyStroke; + class MenuElement; + class MenuSelectionManager; + class SingleSelectionModel; + namespace plaf + { + class MenuBarUI; + } + } + } +} + +class javax::swing::JMenuBar : public ::javax::swing::JComponent +{ + +public: + JMenuBar(); + virtual ::javax::swing::JMenu * add(::javax::swing::JMenu *); + virtual void addNotify(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::awt::Component * getComponent(); + virtual ::java::awt::Component * getComponentAtIndex(jint); + virtual jint getComponentIndex(::java::awt::Component *); + virtual ::javax::swing::JMenu * getHelpMenu(); + virtual ::java::awt::Insets * getMargin(); + virtual ::javax::swing::JMenu * getMenu(jint); + virtual jint getMenuCount(); + virtual ::javax::swing::SingleSelectionModel * getSelectionModel(); + virtual JArray< ::javax::swing::MenuElement * > * getSubElements(); + virtual ::javax::swing::plaf::MenuBarUI * getUI(); + virtual ::java::lang::String * getUIClassID(); + virtual jboolean isBorderPainted(); + virtual jboolean isSelected(); + virtual void menuSelectionChanged(jboolean); +public: // actually protected + virtual void paintBorder(::java::awt::Graphics *); + virtual ::java::lang::String * paramString(); +public: + virtual void processKeyEvent(::java::awt::event::KeyEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); +public: // actually protected + virtual jboolean processKeyBinding(::javax::swing::KeyStroke *, ::java::awt::event::KeyEvent *, jint, jboolean); +public: // actually package-private + static jboolean processKeyBindingHelper(::javax::swing::MenuElement *, ::javax::swing::KeyStroke *, ::java::awt::event::KeyEvent *, jint, jboolean); +public: + virtual void processMouseEvent(::java::awt::event::MouseEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + virtual void removeNotify(); + virtual void setBorderPainted(jboolean); + virtual void setHelpMenu(::javax::swing::JMenu *); + virtual void setMargin(::java::awt::Insets *); + virtual void setSelected(::java::awt::Component *); + virtual void setSelectionModel(::javax::swing::SingleSelectionModel *); + virtual void setUI(::javax::swing::plaf::MenuBarUI *); + virtual void updateUI(); +private: + static const jlong serialVersionUID = -8191026883931977036LL; + ::javax::swing::SingleSelectionModel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) selectionModel; + jboolean borderPainted; + ::java::awt::Insets * margin; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenuBar__ diff --git a/libjava/javax/swing/JMenuItem$1.h b/libjava/javax/swing/JMenuItem$1.h new file mode 100644 index 00000000000..fbf36207746 --- /dev/null +++ b/libjava/javax/swing/JMenuItem$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenuItem$1__ +#define __javax_swing_JMenuItem$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JMenuItem; + class JMenuItem$1; + } + } +} + +class javax::swing::JMenuItem$1 : public ::java::lang::Object +{ + +public: // actually package-private + JMenuItem$1(::javax::swing::JMenuItem *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::JMenuItem * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenuItem$1__ diff --git a/libjava/javax/swing/JMenuItem$AccessibleJMenuItem.h b/libjava/javax/swing/JMenuItem$AccessibleJMenuItem.h new file mode 100644 index 00000000000..7e67e9df971 --- /dev/null +++ b/libjava/javax/swing/JMenuItem$AccessibleJMenuItem.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenuItem$AccessibleJMenuItem__ +#define __javax_swing_JMenuItem$AccessibleJMenuItem__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JMenuItem; + class JMenuItem$AccessibleJMenuItem; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JMenuItem$AccessibleJMenuItem : public ::javax::swing::AbstractButton$AccessibleAbstractButton +{ + +public: // actually package-private + JMenuItem$AccessibleJMenuItem(::javax::swing::JMenuItem *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 6748924232082076534LL; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::AbstractButton$AccessibleAbstractButton)))) armed; + jboolean focusOwner; + jboolean pressed; + jboolean selected; +public: // actually package-private + ::javax::swing::JMenuItem * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenuItem$AccessibleJMenuItem__ diff --git a/libjava/javax/swing/JMenuItem.h b/libjava/javax/swing/JMenuItem.h new file mode 100644 index 00000000000..87d5ff98f59 --- /dev/null +++ b/libjava/javax/swing/JMenuItem.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JMenuItem__ +#define __javax_swing_JMenuItem__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class Icon; + class JMenuItem; + class KeyStroke; + class MenuElement; + class MenuSelectionManager; + namespace event + { + class MenuDragMouseEvent; + class MenuDragMouseListener; + class MenuKeyEvent; + class MenuKeyListener; + } + namespace plaf + { + class MenuItemUI; + } + } + } +} + +class javax::swing::JMenuItem : public ::javax::swing::AbstractButton +{ + +public: + JMenuItem(); + JMenuItem(::javax::swing::Icon *); + JMenuItem(::java::lang::String *); + JMenuItem(::javax::swing::Action *); + JMenuItem(::java::lang::String *, ::javax::swing::Icon *); + JMenuItem(::java::lang::String *, jint); +public: // actually protected + virtual void init(::java::lang::String *, ::javax::swing::Icon *); +public: + virtual void setUI(::javax::swing::plaf::MenuItemUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual jboolean isArmed(); + virtual void setArmed(jboolean); + virtual void setEnabled(jboolean); + virtual ::javax::swing::KeyStroke * getAccelerator(); + virtual void setAccelerator(::javax::swing::KeyStroke *); +public: // actually protected + virtual void configurePropertiesFromAction(::javax::swing::Action *); + virtual ::java::beans::PropertyChangeListener * createActionPropertyChangeListener(::javax::swing::Action *); +public: + virtual void processMouseEvent(::java::awt::event::MouseEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + virtual void processKeyEvent(::java::awt::event::KeyEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + virtual void processMenuDragMouseEvent(::javax::swing::event::MenuDragMouseEvent *); + virtual void processMenuKeyEvent(::javax::swing::event::MenuKeyEvent *); +public: // actually protected + virtual void fireMenuDragMouseEntered(::javax::swing::event::MenuDragMouseEvent *); + virtual void fireMenuDragMouseExited(::javax::swing::event::MenuDragMouseEvent *); + virtual void fireMenuDragMouseDragged(::javax::swing::event::MenuDragMouseEvent *); + virtual void fireMenuDragMouseReleased(::javax::swing::event::MenuDragMouseEvent *); + virtual void fireMenuKeyPressed(::javax::swing::event::MenuKeyEvent *); + virtual void fireMenuKeyReleased(::javax::swing::event::MenuKeyEvent *); + virtual void fireMenuKeyTyped(::javax::swing::event::MenuKeyEvent *); +public: + virtual void menuSelectionChanged(jboolean); + virtual JArray< ::javax::swing::MenuElement * > * getSubElements(); + virtual ::java::awt::Component * getComponent(); + virtual void addMenuDragMouseListener(::javax::swing::event::MenuDragMouseListener *); + virtual void removeMenuDragMouseListener(::javax::swing::event::MenuDragMouseListener *); + virtual JArray< ::javax::swing::event::MenuDragMouseListener * > * getMenuDragMouseListeners(); + virtual void addMenuKeyListener(::javax::swing::event::MenuKeyListener *); + virtual void removeMenuKeyListener(::javax::swing::event::MenuKeyListener *); + virtual JArray< ::javax::swing::event::MenuKeyListener * > * getMenuKeyListeners(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +public: // actually package-private + virtual jboolean onTop(); +private: + static const jlong serialVersionUID = -1681004643499461044LL; + ::javax::swing::KeyStroke * __attribute__((aligned(__alignof__( ::javax::swing::AbstractButton)))) accelerator; + jboolean isDragging; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JMenuItem__ diff --git a/libjava/javax/swing/JOptionPane$1.h b/libjava/javax/swing/JOptionPane$1.h new file mode 100644 index 00000000000..89b46f359ff --- /dev/null +++ b/libjava/javax/swing/JOptionPane$1.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JOptionPane$1__ +#define __javax_swing_JOptionPane$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JOptionPane$1; + } + } +} + +class javax::swing::JOptionPane$1 : public ::java::awt::event::MouseAdapter +{ + +public: // actually package-private + JOptionPane$1(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JOptionPane$1__ diff --git a/libjava/javax/swing/JOptionPane$2.h b/libjava/javax/swing/JOptionPane$2.h new file mode 100644 index 00000000000..9231d656a39 --- /dev/null +++ b/libjava/javax/swing/JOptionPane$2.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JOptionPane$2__ +#define __javax_swing_JOptionPane$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JOptionPane$2; + } + } +} + +class javax::swing::JOptionPane$2 : public ::java::awt::event::MouseMotionAdapter +{ + +public: // actually package-private + JOptionPane$2(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JOptionPane$2__ diff --git a/libjava/javax/swing/JOptionPane$AccessibleJOptionPane.h b/libjava/javax/swing/JOptionPane$AccessibleJOptionPane.h new file mode 100644 index 00000000000..70b9e984fad --- /dev/null +++ b/libjava/javax/swing/JOptionPane$AccessibleJOptionPane.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JOptionPane$AccessibleJOptionPane__ +#define __javax_swing_JOptionPane$AccessibleJOptionPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JOptionPane; + class JOptionPane$AccessibleJOptionPane; + } + } +} + +class javax::swing::JOptionPane$AccessibleJOptionPane : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JOptionPane$AccessibleJOptionPane(::javax::swing::JOptionPane *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 686071432213084821LL; +public: // actually package-private + ::javax::swing::JOptionPane * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JOptionPane$AccessibleJOptionPane__ diff --git a/libjava/javax/swing/JOptionPane$ValuePropertyHandler.h b/libjava/javax/swing/JOptionPane$ValuePropertyHandler.h new file mode 100644 index 00000000000..a3d71cf409f --- /dev/null +++ b/libjava/javax/swing/JOptionPane$ValuePropertyHandler.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JOptionPane$ValuePropertyHandler__ +#define __javax_swing_JOptionPane$ValuePropertyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JDialog; + class JOptionPane$ValuePropertyHandler; + } + } +} + +class javax::swing::JOptionPane$ValuePropertyHandler : public ::java::lang::Object +{ + +public: // actually package-private + JOptionPane$ValuePropertyHandler(::javax::swing::JDialog *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::JDialog * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dialog; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JOptionPane$ValuePropertyHandler__ diff --git a/libjava/javax/swing/JOptionPane.h b/libjava/javax/swing/JOptionPane.h new file mode 100644 index 00000000000..5bd63fd7ae8 --- /dev/null +++ b/libjava/javax/swing/JOptionPane.h @@ -0,0 +1,167 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JOptionPane__ +#define __javax_swing_JOptionPane__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Frame; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Icon; + class JDesktopPane; + class JDialog; + class JInternalFrame; + class JOptionPane; + namespace plaf + { + class OptionPaneUI; + } + } + } +} + +class javax::swing::JOptionPane : public ::javax::swing::JComponent +{ + +public: + JOptionPane(); + JOptionPane(::java::lang::Object *); + JOptionPane(::java::lang::Object *, jint); + JOptionPane(::java::lang::Object *, jint, jint); + JOptionPane(::java::lang::Object *, jint, jint, ::javax::swing::Icon *); + JOptionPane(::java::lang::Object *, jint, jint, ::javax::swing::Icon *, JArray< ::java::lang::Object * > *); + JOptionPane(::java::lang::Object *, jint, jint, ::javax::swing::Icon *, JArray< ::java::lang::Object * > *, ::java::lang::Object *); + virtual ::javax::swing::JDialog * createDialog(::java::awt::Component *, ::java::lang::String *); + virtual ::javax::swing::JInternalFrame * createInternalFrame(::java::awt::Component *, ::java::lang::String *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + static ::javax::swing::JDesktopPane * getDesktopPaneForComponent(::java::awt::Component *); + static ::java::awt::Frame * getFrameForComponent(::java::awt::Component *); + virtual ::javax::swing::Icon * getIcon(); + virtual ::java::lang::Object * getInitialSelectionValue(); + virtual ::java::lang::Object * getInitialValue(); + virtual ::java::lang::Object * getInputValue(); + virtual jint getMaxCharactersPerLineCount(); + virtual ::java::lang::Object * getMessage(); + virtual jint getMessageType(); + virtual JArray< ::java::lang::Object * > * getOptions(); + virtual jint getOptionType(); + static ::java::awt::Frame * getRootFrame(); + virtual JArray< ::java::lang::Object * > * getSelectionValues(); + virtual ::javax::swing::plaf::OptionPaneUI * getUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::java::lang::Object * getValue(); + virtual jboolean getWantsInput(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void selectInitialValue(); + virtual void setIcon(::javax::swing::Icon *); + virtual void setInitialSelectionValue(::java::lang::Object *); + virtual void setInitialValue(::java::lang::Object *); + virtual void setInputValue(::java::lang::Object *); + virtual void setMessage(::java::lang::Object *); + virtual void setMessageType(jint); + virtual void setOptions(JArray< ::java::lang::Object * > *); + virtual void setOptionType(jint); + static void setRootFrame(::java::awt::Frame *); + virtual void setSelectionValues(JArray< ::java::lang::Object * > *); + virtual void setUI(::javax::swing::plaf::OptionPaneUI *); + virtual void setValue(::java::lang::Object *); + virtual void setWantsInput(jboolean); + static jint showConfirmDialog(::java::awt::Component *, ::java::lang::Object *); + static jint showConfirmDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint); + static jint showConfirmDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, jint); + static jint showConfirmDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, jint, ::javax::swing::Icon *); + static ::java::lang::String * showInputDialog(::java::awt::Component *, ::java::lang::Object *); + static ::java::lang::String * showInputDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::String * showInputDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint); + static ::java::lang::Object * showInputDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, ::javax::swing::Icon *, JArray< ::java::lang::Object * > *, ::java::lang::Object *); + static ::java::lang::String * showInputDialog(::java::lang::Object *); + static ::java::lang::String * showInputDialog(::java::lang::Object *, ::java::lang::Object *); + static jint showInternalConfirmDialog(::java::awt::Component *, ::java::lang::Object *); + static jint showInternalConfirmDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint); + static jint showInternalConfirmDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, jint); + static jint showInternalConfirmDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, jint, ::javax::swing::Icon *); + static ::java::lang::String * showInternalInputDialog(::java::awt::Component *, ::java::lang::Object *); + static ::java::lang::String * showInternalInputDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint); + static ::java::lang::Object * showInternalInputDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, ::javax::swing::Icon *, JArray< ::java::lang::Object * > *, ::java::lang::Object *); + static void showInternalMessageDialog(::java::awt::Component *, ::java::lang::Object *); + static void showInternalMessageDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint); + static void showInternalMessageDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, ::javax::swing::Icon *); + static jint showInternalOptionDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, jint, ::javax::swing::Icon *, JArray< ::java::lang::Object * > *, ::java::lang::Object *); + static void showMessageDialog(::java::awt::Component *, ::java::lang::Object *); + static void showMessageDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint); + static void showMessageDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, ::javax::swing::Icon *); + static jint showOptionDialog(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, jint, ::javax::swing::Icon *, JArray< ::java::lang::Object * > *, ::java::lang::Object *); + virtual void updateUI(); +private: + jboolean validMessageType(jint); + jboolean validOptionType(jint); + static void startModal(::javax::swing::JInternalFrame *); + static const jlong serialVersionUID = 5231143276678566796LL; +public: + static const jint CANCEL_OPTION = 2; + static const jint CLOSED_OPTION = -1; + static const jint DEFAULT_OPTION = -1; + static const jint NO_OPTION = 1; + static const jint OK_CANCEL_OPTION = 2; + static const jint OK_OPTION = 0; + static const jint YES_NO_CANCEL_OPTION = 1; + static const jint YES_NO_OPTION = 0; + static const jint YES_OPTION = 0; + static const jint ERROR_MESSAGE = 0; + static const jint INFORMATION_MESSAGE = 1; + static const jint PLAIN_MESSAGE = -1; + static const jint QUESTION_MESSAGE = 3; + static const jint WARNING_MESSAGE = 2; + static ::java::lang::String * ICON_PROPERTY; + static ::java::lang::String * INITIAL_SELECTION_VALUE_PROPERTY; + static ::java::lang::String * INITIAL_VALUE_PROPERTY; + static ::java::lang::String * INPUT_VALUE_PROPERTY; + static ::java::lang::String * MESSAGE_PROPERTY; + static ::java::lang::String * MESSAGE_TYPE_PROPERTY; + static ::java::lang::String * OPTION_TYPE_PROPERTY; + static ::java::lang::String * OPTIONS_PROPERTY; + static ::java::lang::String * SELECTION_VALUES_PROPERTY; + static ::java::lang::String * VALUE_PROPERTY; + static ::java::lang::String * WANTS_INPUT_PROPERTY; + static ::java::lang::Object * UNINITIALIZED_VALUE; +public: // actually protected + ::javax::swing::Icon * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) icon; + ::java::lang::Object * initialSelectionValue; + ::java::lang::Object * initialValue; + ::java::lang::Object * inputValue; + ::java::lang::Object * message; + jint messageType; + JArray< ::java::lang::Object * > * options; + jint optionType; + JArray< ::java::lang::Object * > * selectionValues; + ::java::lang::Object * value; + jboolean wantsInput; +private: + static ::java::awt::Frame * privFrame; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JOptionPane__ diff --git a/libjava/javax/swing/JPanel$AccessibleJPanel.h b/libjava/javax/swing/JPanel$AccessibleJPanel.h new file mode 100644 index 00000000000..c4f9878ae6f --- /dev/null +++ b/libjava/javax/swing/JPanel$AccessibleJPanel.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPanel$AccessibleJPanel__ +#define __javax_swing_JPanel$AccessibleJPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JPanel; + class JPanel$AccessibleJPanel; + } + } +} + +class javax::swing::JPanel$AccessibleJPanel : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JPanel$AccessibleJPanel(::javax::swing::JPanel *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +public: // actually package-private + ::javax::swing::JPanel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPanel$AccessibleJPanel__ diff --git a/libjava/javax/swing/JPanel.h b/libjava/javax/swing/JPanel.h new file mode 100644 index 00000000000..8270c8307d3 --- /dev/null +++ b/libjava/javax/swing/JPanel.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPanel__ +#define __javax_swing_JPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class LayoutManager; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JPanel; + namespace plaf + { + class PanelUI; + } + } + } +} + +class javax::swing::JPanel : public ::javax::swing::JComponent +{ + +public: + JPanel(); + JPanel(jboolean); + JPanel(::java::awt::LayoutManager *); + JPanel(::java::awt::LayoutManager *, jboolean); + virtual ::java::lang::String * getUIClassID(); + virtual void setUI(::javax::swing::plaf::PanelUI *); + virtual ::javax::swing::plaf::PanelUI * getUI(); + virtual void updateUI(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPanel__ diff --git a/libjava/javax/swing/JPasswordField$AccessibleJPasswordField.h b/libjava/javax/swing/JPasswordField$AccessibleJPasswordField.h new file mode 100644 index 00000000000..901558e1e6d --- /dev/null +++ b/libjava/javax/swing/JPasswordField$AccessibleJPasswordField.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPasswordField$AccessibleJPasswordField__ +#define __javax_swing_JPasswordField$AccessibleJPasswordField__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JPasswordField; + class JPasswordField$AccessibleJPasswordField; + } + } +} + +class javax::swing::JPasswordField$AccessibleJPasswordField : public ::javax::swing::JTextField$AccessibleJTextField +{ + +public: // actually protected + JPasswordField$AccessibleJPasswordField(::javax::swing::JPasswordField *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = -8477039424200681086LL; +public: // actually package-private + ::javax::swing::JPasswordField * __attribute__((aligned(__alignof__( ::javax::swing::JTextField$AccessibleJTextField)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPasswordField$AccessibleJPasswordField__ diff --git a/libjava/javax/swing/JPasswordField.h b/libjava/javax/swing/JPasswordField.h new file mode 100644 index 00000000000..7e9a8259c42 --- /dev/null +++ b/libjava/javax/swing/JPasswordField.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPasswordField__ +#define __javax_swing_JPasswordField__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JPasswordField; + namespace text + { + class Document; + } + } + } +} + +class javax::swing::JPasswordField : public ::javax::swing::JTextField +{ + +public: + JPasswordField(); + JPasswordField(::java::lang::String *); + JPasswordField(jint); + JPasswordField(::java::lang::String *, jint); + JPasswordField(::javax::swing::text::Document *, ::java::lang::String *, jint); +private: + void writeObject(::java::io::ObjectOutputStream *); +public: + virtual ::java::lang::String * getUIClassID(); + virtual jchar getEchoChar(); + virtual void setEchoChar(jchar); + virtual jboolean echoCharIsSet(); + virtual void copy(); + virtual void cut(); + virtual ::java::lang::String * getText(); + virtual ::java::lang::String * getText(jint, jint); + virtual JArray< jchar > * getPassword(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + jchar __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) echoChar; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPasswordField__ diff --git a/libjava/javax/swing/JPopupMenu$1.h b/libjava/javax/swing/JPopupMenu$1.h new file mode 100644 index 00000000000..978cfc183c3 --- /dev/null +++ b/libjava/javax/swing/JPopupMenu$1.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPopupMenu$1__ +#define __javax_swing_JPopupMenu$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JPopupMenu; + class JPopupMenu$1; + } + } +} + +class javax::swing::JPopupMenu$1 : public ::java::lang::Object +{ + +public: // actually package-private + JPopupMenu$1(::javax::swing::JPopupMenu *); +public: + void run(); +public: // actually package-private + ::javax::swing::JPopupMenu * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPopupMenu$1__ diff --git a/libjava/javax/swing/JPopupMenu$2.h b/libjava/javax/swing/JPopupMenu$2.h new file mode 100644 index 00000000000..c8d455b9311 --- /dev/null +++ b/libjava/javax/swing/JPopupMenu$2.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPopupMenu$2__ +#define __javax_swing_JPopupMenu$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JPopupMenu; + class JPopupMenu$2; + } + } +} + +class javax::swing::JPopupMenu$2 : public ::java::lang::Object +{ + +public: // actually package-private + JPopupMenu$2(::javax::swing::JPopupMenu *, jboolean); +public: + void run(); +public: // actually package-private + ::javax::swing::JPopupMenu * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + jboolean val$visible; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPopupMenu$2__ diff --git a/libjava/javax/swing/JPopupMenu$AccessibleJPopupMenu.h b/libjava/javax/swing/JPopupMenu$AccessibleJPopupMenu.h new file mode 100644 index 00000000000..d3ace0c6387 --- /dev/null +++ b/libjava/javax/swing/JPopupMenu$AccessibleJPopupMenu.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPopupMenu$AccessibleJPopupMenu__ +#define __javax_swing_JPopupMenu$AccessibleJPopupMenu__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JPopupMenu; + class JPopupMenu$AccessibleJPopupMenu; + } + } +} + +class javax::swing::JPopupMenu$AccessibleJPopupMenu : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JPopupMenu$AccessibleJPopupMenu(::javax::swing::JPopupMenu *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 7423261328879849768LL; +public: // actually package-private + ::javax::swing::JPopupMenu * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPopupMenu$AccessibleJPopupMenu__ diff --git a/libjava/javax/swing/JPopupMenu$ActionChangeListener.h b/libjava/javax/swing/JPopupMenu$ActionChangeListener.h new file mode 100644 index 00000000000..4c2385e4587 --- /dev/null +++ b/libjava/javax/swing/JPopupMenu$ActionChangeListener.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPopupMenu$ActionChangeListener__ +#define __javax_swing_JPopupMenu$ActionChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JPopupMenu; + class JPopupMenu$ActionChangeListener; + } + } +} + +class javax::swing::JPopupMenu$ActionChangeListener : public ::java::lang::Object +{ + + JPopupMenu$ActionChangeListener(::javax::swing::JPopupMenu *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + JPopupMenu$ActionChangeListener(::javax::swing::JPopupMenu *, ::javax::swing::JPopupMenu$ActionChangeListener *); + ::javax::swing::JPopupMenu * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPopupMenu$ActionChangeListener__ diff --git a/libjava/javax/swing/JPopupMenu$Separator.h b/libjava/javax/swing/JPopupMenu$Separator.h new file mode 100644 index 00000000000..e41bdedd6f6 --- /dev/null +++ b/libjava/javax/swing/JPopupMenu$Separator.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPopupMenu$Separator__ +#define __javax_swing_JPopupMenu$Separator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JPopupMenu$Separator; + } + } +} + +class javax::swing::JPopupMenu$Separator : public ::javax::swing::JSeparator +{ + +public: + JPopupMenu$Separator(); + virtual ::java::lang::String * getUIClassID(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPopupMenu$Separator__ diff --git a/libjava/javax/swing/JPopupMenu.h b/libjava/javax/swing/JPopupMenu.h new file mode 100644 index 00000000000..44bbc89bd3e --- /dev/null +++ b/libjava/javax/swing/JPopupMenu.h @@ -0,0 +1,148 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JPopupMenu__ +#define __javax_swing_JPopupMenu__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Insets; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class JMenuItem; + class JPopupMenu; + class MenuElement; + class MenuSelectionManager; + class Popup; + class SingleSelectionModel; + namespace event + { + class MenuKeyListener; + class PopupMenuListener; + } + namespace plaf + { + class PopupMenuUI; + } + } + } +} + +class javax::swing::JPopupMenu : public ::javax::swing::JComponent +{ + +public: + JPopupMenu(); + JPopupMenu(::java::lang::String *); + virtual ::javax::swing::JMenuItem * add(::javax::swing::JMenuItem *); + virtual ::javax::swing::JMenuItem * add(::java::lang::String *); + virtual ::javax::swing::JMenuItem * add(::javax::swing::Action *); + virtual void remove(jint); + virtual void insert(::javax::swing::Action *, jint); + virtual void insert(::java::awt::Component *, jint); + static jboolean getDefaultLightWeightPopupEnabled(); + static void setDefaultLightWeightPopupEnabled(jboolean); + virtual ::javax::swing::plaf::PopupMenuUI * getUI(); + virtual void setUI(::javax::swing::plaf::PopupMenuUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::javax::swing::SingleSelectionModel * getSelectionModel(); + virtual void setSelectionModel(::javax::swing::SingleSelectionModel *); +public: // actually protected + virtual ::javax::swing::JMenuItem * createActionComponent(::javax::swing::Action *); + virtual ::java::beans::PropertyChangeListener * createActionChangeListener(::javax::swing::JMenuItem *); +public: + virtual jboolean isLightWeightPopupEnabled(); + virtual void setLightWeightPopupEnabled(jboolean); + virtual ::java::lang::String * getLabel(); + virtual void setLabel(::java::lang::String *); + virtual void addSeparator(); + virtual void addMenuKeyListener(::javax::swing::event::MenuKeyListener *); + virtual void removeMenuKeyListener(::javax::swing::event::MenuKeyListener *); + virtual JArray< ::javax::swing::event::MenuKeyListener * > * getMenuKeyListeners(); + virtual void addPopupMenuListener(::javax::swing::event::PopupMenuListener *); + virtual void removePopupMenuListener(::javax::swing::event::PopupMenuListener *); + virtual JArray< ::javax::swing::event::PopupMenuListener * > * getPopupMenuListeners(); +public: // actually protected + virtual void firePopupMenuWillBecomeVisible(); + virtual void firePopupMenuWillBecomeInvisible(); + virtual void firePopupMenuCanceled(); +public: + virtual void pack(); + virtual jboolean isVisible(); + virtual void setVisible(jboolean); + virtual void setLocation(jint, jint); + virtual ::java::awt::Component * getInvoker(); + virtual void setInvoker(::java::awt::Component *); + virtual void show(::java::awt::Component *, jint, jint); + virtual ::java::awt::Component * getComponentAtIndex(jint); + virtual jint getComponentIndex(::java::awt::Component *); + virtual void setPopupSize(::java::awt::Dimension *); + virtual void setPopupSize(jint, jint); + virtual void setSelected(::java::awt::Component *); + virtual jboolean isBorderPainted(); + virtual void setBorderPainted(jboolean); + virtual ::java::awt::Insets * getMargin(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void processMouseEvent(::java::awt::event::MouseEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + virtual void processKeyEvent(::java::awt::event::KeyEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + virtual void menuSelectionChanged(jboolean); + virtual JArray< ::javax::swing::MenuElement * > * getSubElements(); + virtual ::java::awt::Component * getComponent(); + virtual jboolean isPopupTrigger(::java::awt::event::MouseEvent *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +public: // actually package-private + virtual jboolean onTop(); +private: + static const jlong serialVersionUID = -8336996630009646009LL; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) borderPainted; + static jboolean DefaultLightWeightPopupEnabled; +public: // actually package-private + ::java::awt::Component * invoker; +private: + ::java::lang::String * label; + ::java::awt::Insets * margin; + jboolean lightWeightPopupEnabled; +public: // actually protected + ::javax::swing::SingleSelectionModel * selectionModel; +private: + ::javax::swing::Popup * popup; + jint popupLocationX; + jint popupLocationY; + jboolean visible; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JPopupMenu__ diff --git a/libjava/javax/swing/JProgressBar$1.h b/libjava/javax/swing/JProgressBar$1.h new file mode 100644 index 00000000000..a8340a32426 --- /dev/null +++ b/libjava/javax/swing/JProgressBar$1.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JProgressBar$1__ +#define __javax_swing_JProgressBar$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JProgressBar; + class JProgressBar$1; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JProgressBar$1 : public ::java::lang::Object +{ + +public: // actually package-private + JProgressBar$1(::javax::swing::JProgressBar *); +public: + void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::JProgressBar * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JProgressBar$1__ diff --git a/libjava/javax/swing/JProgressBar$AccessibleJProgressBar.h b/libjava/javax/swing/JProgressBar$AccessibleJProgressBar.h new file mode 100644 index 00000000000..b5b7016359c --- /dev/null +++ b/libjava/javax/swing/JProgressBar$AccessibleJProgressBar.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JProgressBar$AccessibleJProgressBar__ +#define __javax_swing_JProgressBar$AccessibleJProgressBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + class AccessibleStateSet; + class AccessibleValue; + } + namespace swing + { + class JProgressBar; + class JProgressBar$AccessibleJProgressBar; + } + } +} + +class javax::swing::JProgressBar$AccessibleJProgressBar : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JProgressBar$AccessibleJProgressBar(::javax::swing::JProgressBar *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + 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 = -2938130009392721813LL; +public: // actually package-private + ::javax::swing::JProgressBar * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JProgressBar$AccessibleJProgressBar__ diff --git a/libjava/javax/swing/JProgressBar.h b/libjava/javax/swing/JProgressBar.h new file mode 100644 index 00000000000..459af9ad57a --- /dev/null +++ b/libjava/javax/swing/JProgressBar.h @@ -0,0 +1,107 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JProgressBar__ +#define __javax_swing_JProgressBar__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class BoundedRangeModel; + class JProgressBar; + namespace event + { + class ChangeEvent; + class ChangeListener; + } + namespace plaf + { + class ProgressBarUI; + } + } + } +} + +class javax::swing::JProgressBar : public ::javax::swing::JComponent +{ + +public: + JProgressBar(); + JProgressBar(jint); + JProgressBar(jint, jint); + JProgressBar(jint, jint, jint); + JProgressBar(::javax::swing::BoundedRangeModel *); + virtual jint getValue(); + virtual void setValue(jint); +public: // actually protected + virtual void paintBorder(::java::awt::Graphics *); +public: + virtual jint getOrientation(); + virtual void setOrientation(jint); + virtual jboolean isStringPainted(); + virtual void setStringPainted(jboolean); + virtual ::java::lang::String * getString(); + virtual void setString(::java::lang::String *); + virtual jdouble getPercentComplete(); + virtual jboolean isBorderPainted(); + virtual void setBorderPainted(jboolean); + virtual ::javax::swing::plaf::ProgressBarUI * getUI(); + virtual void setUI(::javax::swing::plaf::ProgressBarUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::javax::swing::event::ChangeListener * createChangeListener(); +public: + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual ::javax::swing::BoundedRangeModel * getModel(); + virtual void setModel(::javax::swing::BoundedRangeModel *); + virtual jint getMinimum(); + virtual void setMinimum(jint); + virtual jint getMaximum(); + virtual void setMaximum(jint); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void setIndeterminate(jboolean); + virtual jboolean isIndeterminate(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 1980046021813598781LL; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) indeterminate; +public: // actually protected + jint orientation; + jboolean paintBorder__; + ::javax::swing::BoundedRangeModel * model; + ::java::lang::String * progressString; + jboolean paintString; + ::javax::swing::event::ChangeEvent * changeEvent; + ::javax::swing::event::ChangeListener * changeListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JProgressBar__ diff --git a/libjava/javax/swing/JRadioButton$AccessibleJRadioButton.h b/libjava/javax/swing/JRadioButton$AccessibleJRadioButton.h new file mode 100644 index 00000000000..9dc147a8b43 --- /dev/null +++ b/libjava/javax/swing/JRadioButton$AccessibleJRadioButton.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JRadioButton$AccessibleJRadioButton__ +#define __javax_swing_JRadioButton$AccessibleJRadioButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JRadioButton; + class JRadioButton$AccessibleJRadioButton; + } + } +} + +class javax::swing::JRadioButton$AccessibleJRadioButton : public ::javax::swing::JToggleButton$AccessibleJToggleButton +{ + +public: // actually protected + JRadioButton$AccessibleJRadioButton(::javax::swing::JRadioButton *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 4850967637026120674LL; +public: // actually package-private + ::javax::swing::JRadioButton * __attribute__((aligned(__alignof__( ::javax::swing::JToggleButton$AccessibleJToggleButton)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JRadioButton$AccessibleJRadioButton__ diff --git a/libjava/javax/swing/JRadioButton.h b/libjava/javax/swing/JRadioButton.h new file mode 100644 index 00000000000..7c8bd4f6990 --- /dev/null +++ b/libjava/javax/swing/JRadioButton.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JRadioButton__ +#define __javax_swing_JRadioButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class Icon; + class JRadioButton; + } + } +} + +class javax::swing::JRadioButton : public ::javax::swing::JToggleButton +{ + +public: + JRadioButton(); + JRadioButton(::javax::swing::Action *); + JRadioButton(::javax::swing::Icon *); + JRadioButton(::javax::swing::Icon *, jboolean); + JRadioButton(::java::lang::String *); + JRadioButton(::java::lang::String *, jboolean); + JRadioButton(::java::lang::String *, ::javax::swing::Icon *); + JRadioButton(::java::lang::String *, ::javax::swing::Icon *, jboolean); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void updateUI(); +private: + static const jlong serialVersionUID = 7751949583255506856LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JRadioButton__ diff --git a/libjava/javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem.h b/libjava/javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem.h new file mode 100644 index 00000000000..7ef610cfcf3 --- /dev/null +++ b/libjava/javax/swing/JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem__ +#define __javax_swing_JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JRadioButtonMenuItem; + class JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem; + } + } +} + +class javax::swing::JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem : public ::javax::swing::JMenuItem$AccessibleJMenuItem +{ + +public: // actually protected + JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem(::javax::swing::JRadioButtonMenuItem *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 4381471510145292179LL; +public: // actually package-private + ::javax::swing::JRadioButtonMenuItem * __attribute__((aligned(__alignof__( ::javax::swing::JMenuItem$AccessibleJMenuItem)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JRadioButtonMenuItem$AccessibleJRadioButtonMenuItem__ diff --git a/libjava/javax/swing/JRadioButtonMenuItem.h b/libjava/javax/swing/JRadioButtonMenuItem.h new file mode 100644 index 00000000000..4c982cff9b4 --- /dev/null +++ b/libjava/javax/swing/JRadioButtonMenuItem.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JRadioButtonMenuItem__ +#define __javax_swing_JRadioButtonMenuItem__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class Icon; + class JRadioButtonMenuItem; + } + } +} + +class javax::swing::JRadioButtonMenuItem : public ::javax::swing::JMenuItem +{ + +public: + JRadioButtonMenuItem(); + JRadioButtonMenuItem(::javax::swing::Icon *); + JRadioButtonMenuItem(::java::lang::String *); + JRadioButtonMenuItem(::javax::swing::Action *); + JRadioButtonMenuItem(::java::lang::String *, ::javax::swing::Icon *); + JRadioButtonMenuItem(::java::lang::String *, jboolean); + JRadioButtonMenuItem(::javax::swing::Icon *, jboolean); + JRadioButtonMenuItem(::java::lang::String *, ::javax::swing::Icon *, jboolean); + virtual ::java::lang::String * getUIClassID(); + virtual void requestFocus(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 8482658191548521743LL; + static ::java::lang::String * uiClassID; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JRadioButtonMenuItem__ diff --git a/libjava/javax/swing/JRootPane$AccessibleJRootPane.h b/libjava/javax/swing/JRootPane$AccessibleJRootPane.h new file mode 100644 index 00000000000..a527b57d27a --- /dev/null +++ b/libjava/javax/swing/JRootPane$AccessibleJRootPane.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JRootPane$AccessibleJRootPane__ +#define __javax_swing_JRootPane$AccessibleJRootPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JRootPane; + class JRootPane$AccessibleJRootPane; + } + } +} + +class javax::swing::JRootPane$AccessibleJRootPane : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JRootPane$AccessibleJRootPane(::javax::swing::JRootPane *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 1082432482784468088LL; +public: // actually package-private + ::javax::swing::JRootPane * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JRootPane$AccessibleJRootPane__ diff --git a/libjava/javax/swing/JRootPane$RootLayout.h b/libjava/javax/swing/JRootPane$RootLayout.h new file mode 100644 index 00000000000..22967dea0ad --- /dev/null +++ b/libjava/javax/swing/JRootPane$RootLayout.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JRootPane$RootLayout__ +#define __javax_swing_JRootPane$RootLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JRootPane; + class JRootPane$RootLayout; + } + } +} + +class javax::swing::JRootPane$RootLayout : public ::java::lang::Object +{ + +public: // actually protected + JRootPane$RootLayout(::javax::swing::JRootPane *); +public: + virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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::awt::Dimension * maximumLayoutSize(::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 *); +private: + static const jlong serialVersionUID = -4100116998559815027LL; + ::java::awt::Rectangle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) glassPaneBounds; + ::java::awt::Rectangle * layeredPaneBounds; + ::java::awt::Rectangle * contentPaneBounds; + ::java::awt::Rectangle * menuBarBounds; +public: // actually package-private + ::javax::swing::JRootPane * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JRootPane$RootLayout__ diff --git a/libjava/javax/swing/JRootPane.h b/libjava/javax/swing/JRootPane.h new file mode 100644 index 00000000000..7d415773ff8 --- /dev/null +++ b/libjava/javax/swing/JRootPane.h @@ -0,0 +1,103 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JRootPane__ +#define __javax_swing_JRootPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class LayoutManager; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class JButton; + class JLayeredPane; + class JMenuBar; + class JRootPane; + namespace plaf + { + class RootPaneUI; + } + } + } +} + +class javax::swing::JRootPane : public ::javax::swing::JComponent +{ + +public: + virtual void setJMenuBar(::javax::swing::JMenuBar *); + virtual void setMenuBar(::javax::swing::JMenuBar *); + virtual ::javax::swing::JMenuBar * getJMenuBar(); + virtual ::javax::swing::JMenuBar * getMenuBar(); + virtual jboolean isValidateRoot(); + virtual ::java::awt::Container * getContentPane(); + virtual void setContentPane(::java::awt::Container *); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual ::java::awt::Component * getGlassPane(); + virtual void setGlassPane(::java::awt::Component *); + virtual ::javax::swing::JLayeredPane * getLayeredPane(); + virtual void setLayeredPane(::javax::swing::JLayeredPane *); + JRootPane(); +public: // actually protected + virtual ::java::awt::LayoutManager * createRootLayout(); + virtual ::java::awt::Container * createContentPane(); + virtual ::java::awt::Component * createGlassPane(); + virtual ::javax::swing::JLayeredPane * createLayeredPane(); +public: + virtual ::javax::swing::plaf::RootPaneUI * getUI(); + virtual void setUI(::javax::swing::plaf::RootPaneUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::javax::swing::JButton * getDefaultButton(); + virtual void setDefaultButton(::javax::swing::JButton *); + virtual jint getWindowDecorationStyle(); + virtual void setWindowDecorationStyle(jint); + virtual jboolean isOptimizedDrawingEnable(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 8690748000348575668LL; +public: + static const jint NONE = 0; + static const jint FRAME = 1; + static const jint PLAIN_DIALOG = 2; + static const jint INFORMATION_DIALOG = 3; + static const jint ERROR_DIALOG = 4; + static const jint COLOR_CHOOSER_DIALOG = 5; + static const jint FILE_CHOOSER_DIALOG = 6; + static const jint QUESTION_DIALOG = 7; + static const jint WARNING_DIALOG = 8; +public: // actually protected + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) glassPane; + ::javax::swing::JLayeredPane * layeredPane; + ::javax::swing::JMenuBar * menuBar; + ::java::awt::Container * contentPane; + ::javax::swing::JButton * defaultButton; + ::javax::swing::Action * defaultPressAction; + ::javax::swing::Action * defaultReleaseAction; +private: + jint windowDecorationStyle; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JRootPane__ diff --git a/libjava/javax/swing/JScrollBar$AccessibleJScrollBar.h b/libjava/javax/swing/JScrollBar$AccessibleJScrollBar.h new file mode 100644 index 00000000000..1e57461a716 --- /dev/null +++ b/libjava/javax/swing/JScrollBar$AccessibleJScrollBar.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JScrollBar$AccessibleJScrollBar__ +#define __javax_swing_JScrollBar$AccessibleJScrollBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + class AccessibleStateSet; + class AccessibleValue; + } + namespace swing + { + class JScrollBar; + class JScrollBar$AccessibleJScrollBar; + } + } +} + +class javax::swing::JScrollBar$AccessibleJScrollBar : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JScrollBar$AccessibleJScrollBar(::javax::swing::JScrollBar *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + 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 = -7758162392045586663LL; +public: // actually package-private + ::javax::swing::JScrollBar * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JScrollBar$AccessibleJScrollBar__ diff --git a/libjava/javax/swing/JScrollBar$ScrollBarChangeListener.h b/libjava/javax/swing/JScrollBar$ScrollBarChangeListener.h new file mode 100644 index 00000000000..9ac76b23a2a --- /dev/null +++ b/libjava/javax/swing/JScrollBar$ScrollBarChangeListener.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JScrollBar$ScrollBarChangeListener__ +#define __javax_swing_JScrollBar$ScrollBarChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JScrollBar; + class JScrollBar$ScrollBarChangeListener; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JScrollBar$ScrollBarChangeListener : public ::java::lang::Object +{ + + JScrollBar$ScrollBarChangeListener(::javax::swing::JScrollBar *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + JScrollBar$ScrollBarChangeListener(::javax::swing::JScrollBar *, ::javax::swing::JScrollBar$ScrollBarChangeListener *); + ::javax::swing::JScrollBar * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JScrollBar$ScrollBarChangeListener__ diff --git a/libjava/javax/swing/JScrollBar.h b/libjava/javax/swing/JScrollBar.h new file mode 100644 index 00000000000..b72d2698c7d --- /dev/null +++ b/libjava/javax/swing/JScrollBar.h @@ -0,0 +1,107 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JScrollBar__ +#define __javax_swing_JScrollBar__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + namespace event + { + class AdjustmentListener; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class BoundedRangeModel; + class JScrollBar; + namespace event + { + class ChangeListener; + } + namespace plaf + { + class ScrollBarUI; + } + } + } +} + +class javax::swing::JScrollBar : public ::javax::swing::JComponent +{ + +public: + JScrollBar(); + JScrollBar(jint); + JScrollBar(jint, jint, jint, jint, jint); + virtual void setUI(::javax::swing::plaf::ScrollBarUI *); + virtual ::javax::swing::plaf::ScrollBarUI * getUI(); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual jint getOrientation(); + virtual void setOrientation(jint); + virtual ::javax::swing::BoundedRangeModel * getModel(); + virtual void setModel(::javax::swing::BoundedRangeModel *); + virtual jint getUnitIncrement(jint); + virtual void setUnitIncrement(jint); + virtual jint getBlockIncrement(jint); + virtual void setBlockIncrement(jint); + virtual jint getUnitIncrement(); + virtual jint getBlockIncrement(); + virtual jint getValue(); + virtual void setValue(jint); + virtual jint getVisibleAmount(); + virtual void setVisibleAmount(jint); + virtual jint getMinimum(); + virtual void setMinimum(jint); + virtual jint getMaximum(); + virtual void setMaximum(jint); + virtual jboolean getValueIsAdjusting(); + virtual void setValueIsAdjusting(jboolean); + virtual void setValues(jint, jint, jint, jint); + virtual void addAdjustmentListener(::java::awt::event::AdjustmentListener *); + virtual void removeAdjustmentListener(::java::awt::event::AdjustmentListener *); + virtual JArray< ::java::awt::event::AdjustmentListener * > * getAdjustmentListeners(); +public: // actually protected + virtual void fireAdjustmentValueChanged(jint, jint, jint); +public: // actually package-private + virtual void fireAdjustmentValueChanged(jint, jint, jint, jboolean); +public: + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getMaximumSize(); + virtual void setEnabled(jboolean); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -8195169869225066566LL; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) blockIncrement; + ::javax::swing::BoundedRangeModel * model; + jint orientation; + jint unitIncrement; +private: + ::javax::swing::event::ChangeListener * sbChangeListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JScrollBar__ diff --git a/libjava/javax/swing/JScrollPane$AccessibleJScrollPane.h b/libjava/javax/swing/JScrollPane$AccessibleJScrollPane.h new file mode 100644 index 00000000000..4075f51a966 --- /dev/null +++ b/libjava/javax/swing/JScrollPane$AccessibleJScrollPane.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JScrollPane$AccessibleJScrollPane__ +#define __javax_swing_JScrollPane$AccessibleJScrollPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JScrollPane; + class JScrollPane$AccessibleJScrollPane; + class JViewport; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JScrollPane$AccessibleJScrollPane : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: + JScrollPane$AccessibleJScrollPane(::javax::swing::JScrollPane *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual void resetViewPort(); +public: // actually protected + ::javax::swing::JViewport * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) viewPort; +public: // actually package-private + ::javax::swing::JScrollPane * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JScrollPane$AccessibleJScrollPane__ diff --git a/libjava/javax/swing/JScrollPane$ScrollBar.h b/libjava/javax/swing/JScrollPane$ScrollBar.h new file mode 100644 index 00000000000..92ca958e9df --- /dev/null +++ b/libjava/javax/swing/JScrollPane$ScrollBar.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JScrollPane$ScrollBar__ +#define __javax_swing_JScrollPane$ScrollBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JScrollPane; + class JScrollPane$ScrollBar; + } + } +} + +class javax::swing::JScrollPane$ScrollBar : public ::javax::swing::JScrollBar +{ + +public: + JScrollPane$ScrollBar(::javax::swing::JScrollPane *, jint); + virtual jint getBlockIncrement(jint); + virtual jint getUnitIncrement(jint); +private: + static const jlong serialVersionUID = -42032395320987283LL; +public: // actually package-private + ::javax::swing::JScrollPane * __attribute__((aligned(__alignof__( ::javax::swing::JScrollBar)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JScrollPane$ScrollBar__ diff --git a/libjava/javax/swing/JScrollPane.h b/libjava/javax/swing/JScrollPane.h new file mode 100644 index 00000000000..6cef5ac4ff0 --- /dev/null +++ b/libjava/javax/swing/JScrollPane.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JScrollPane__ +#define __javax_swing_JScrollPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class ComponentOrientation; + class LayoutManager; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JScrollBar; + class JScrollPane; + class JViewport; + namespace border + { + class Border; + } + namespace plaf + { + class ScrollPaneUI; + } + } + } +} + +class javax::swing::JScrollPane : public ::javax::swing::JComponent +{ + +public: + virtual ::javax::swing::JViewport * getColumnHeader(); + virtual ::java::awt::Component * getCorner(::java::lang::String *); + virtual ::javax::swing::JScrollBar * getHorizontalScrollBar(); + virtual jint getHorizontalScrollBarPolicy(); + virtual ::javax::swing::JViewport * getRowHeader(); + virtual ::javax::swing::JScrollBar * getVerticalScrollBar(); + virtual jint getVerticalScrollBarPolicy(); + virtual ::javax::swing::JViewport * getViewport(); + virtual ::javax::swing::border::Border * getViewportBorder(); + virtual ::java::awt::Rectangle * getViewportBorderBounds(); + virtual jboolean isWheelScrollingEnabled(); +private: + void sync(); + void removeNonNull(::java::awt::Component *); + void addNonNull(::java::awt::Component *, ::java::lang::Object *); +public: + virtual void setComponentOrientation(::java::awt::ComponentOrientation *); + virtual void setColumnHeader(::javax::swing::JViewport *); + virtual void setColumnHeaderView(::java::awt::Component *); + virtual void setCorner(::java::lang::String *, ::java::awt::Component *); + virtual void setHorizontalScrollBar(::javax::swing::JScrollBar *); + virtual void setHorizontalScrollBarPolicy(jint); + virtual void setLayout(::java::awt::LayoutManager *); + virtual void setRowHeader(::javax::swing::JViewport *); + virtual void setRowHeaderView(::java::awt::Component *); + virtual void setVerticalScrollBar(::javax::swing::JScrollBar *); + virtual void setVerticalScrollBarPolicy(jint); + virtual void setWheelScrollingEnabled(jboolean); + virtual void setViewport(::javax::swing::JViewport *); + virtual void setViewportBorder(::javax::swing::border::Border *); + virtual void setViewportView(::java::awt::Component *); + virtual jboolean isValidateRoot(); + JScrollPane(); + JScrollPane(::java::awt::Component *); + JScrollPane(jint, jint); + JScrollPane(::java::awt::Component *, jint, jint); + virtual ::javax::swing::JScrollBar * createHorizontalScrollBar(); + virtual ::javax::swing::JScrollBar * createVerticalScrollBar(); +public: // actually protected + virtual ::javax::swing::JViewport * createViewport(); +public: + virtual ::java::lang::String * getUIClassID(); + virtual void updateUI(); + virtual ::javax::swing::plaf::ScrollPaneUI * getUI(); + virtual void setUI(::javax::swing::plaf::ScrollPaneUI *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 5203525440012340014LL; +public: // actually protected + ::javax::swing::JViewport * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) columnHeader; + ::javax::swing::JViewport * rowHeader; + ::java::awt::Component * lowerLeft; + ::java::awt::Component * lowerRight; + ::java::awt::Component * upperLeft; + ::java::awt::Component * upperRight; + ::javax::swing::JScrollBar * horizontalScrollBar; + jint horizontalScrollBarPolicy; + ::javax::swing::JScrollBar * verticalScrollBar; + jint verticalScrollBarPolicy; + ::javax::swing::JViewport * viewport; +private: + ::javax::swing::border::Border * viewportBorder; + jboolean wheelScrollingEnabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JScrollPane__ diff --git a/libjava/javax/swing/JSeparator$AccessibleJSeparator.h b/libjava/javax/swing/JSeparator$AccessibleJSeparator.h new file mode 100644 index 00000000000..9d0db79d308 --- /dev/null +++ b/libjava/javax/swing/JSeparator$AccessibleJSeparator.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSeparator$AccessibleJSeparator__ +#define __javax_swing_JSeparator$AccessibleJSeparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JSeparator; + class JSeparator$AccessibleJSeparator; + } + } +} + +class javax::swing::JSeparator$AccessibleJSeparator : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JSeparator$AccessibleJSeparator(::javax::swing::JSeparator *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = 916332890553201095LL; +public: // actually package-private + ::javax::swing::JSeparator * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSeparator$AccessibleJSeparator__ diff --git a/libjava/javax/swing/JSeparator.h b/libjava/javax/swing/JSeparator.h new file mode 100644 index 00000000000..22d1a263f3f --- /dev/null +++ b/libjava/javax/swing/JSeparator.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSeparator__ +#define __javax_swing_JSeparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JSeparator; + namespace plaf + { + class SeparatorUI; + } + } + } +} + +class javax::swing::JSeparator : public ::javax::swing::JComponent +{ + +public: + JSeparator(); + JSeparator(jint); + virtual ::javax::swing::plaf::SeparatorUI * getUI(); + virtual void setUI(::javax::swing::plaf::SeparatorUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual jint getOrientation(); + virtual void setOrientation(jint); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 125301223445282357LL; + jint __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) orientation; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSeparator__ diff --git a/libjava/javax/swing/JSlider$1.h b/libjava/javax/swing/JSlider$1.h new file mode 100644 index 00000000000..498c4459fc5 --- /dev/null +++ b/libjava/javax/swing/JSlider$1.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSlider$1__ +#define __javax_swing_JSlider$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JSlider; + class JSlider$1; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JSlider$1 : public ::java::lang::Object +{ + +public: // actually package-private + JSlider$1(::javax::swing::JSlider *); +public: + void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::JSlider * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSlider$1__ diff --git a/libjava/javax/swing/JSlider$AccessibleJSlider.h b/libjava/javax/swing/JSlider$AccessibleJSlider.h new file mode 100644 index 00000000000..9e3c2e8df8c --- /dev/null +++ b/libjava/javax/swing/JSlider$AccessibleJSlider.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSlider$AccessibleJSlider__ +#define __javax_swing_JSlider$AccessibleJSlider__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + class AccessibleStateSet; + class AccessibleValue; + } + namespace swing + { + class JSlider; + class JSlider$AccessibleJSlider; + } + } +} + +class javax::swing::JSlider$AccessibleJSlider : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JSlider$AccessibleJSlider(::javax::swing::JSlider *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + 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 = -6301740148041106789LL; +public: // actually package-private + ::javax::swing::JSlider * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSlider$AccessibleJSlider__ diff --git a/libjava/javax/swing/JSlider$LabelUIResource.h b/libjava/javax/swing/JSlider$LabelUIResource.h new file mode 100644 index 00000000000..58832751561 --- /dev/null +++ b/libjava/javax/swing/JSlider$LabelUIResource.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSlider$LabelUIResource__ +#define __javax_swing_JSlider$LabelUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JSlider; + class JSlider$LabelUIResource; + } + } +} + +class javax::swing::JSlider$LabelUIResource : public ::javax::swing::JLabel +{ + +public: // actually package-private + JSlider$LabelUIResource(::javax::swing::JSlider *, ::java::lang::String *, jint); + ::javax::swing::JSlider * __attribute__((aligned(__alignof__( ::javax::swing::JLabel)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSlider$LabelUIResource__ diff --git a/libjava/javax/swing/JSlider.h b/libjava/javax/swing/JSlider.h new file mode 100644 index 00000000000..e7a54950fc5 --- /dev/null +++ b/libjava/javax/swing/JSlider.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSlider__ +#define __javax_swing_JSlider__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class BoundedRangeModel; + class JSlider; + namespace event + { + class ChangeEvent; + class ChangeListener; + } + namespace plaf + { + class SliderUI; + } + } + } +} + +class javax::swing::JSlider : public ::javax::swing::JComponent +{ + +public: + JSlider(); + JSlider(jint); + JSlider(jint, jint); + JSlider(jint, jint, jint); + JSlider(jint, jint, jint, jint); + JSlider(::javax::swing::BoundedRangeModel *); + virtual jint getValue(); + virtual void setValue(jint); + virtual ::javax::swing::plaf::SliderUI * getUI(); + virtual void setUI(::javax::swing::plaf::SliderUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::javax::swing::event::ChangeListener * createChangeListener(); +public: + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); + virtual ::javax::swing::BoundedRangeModel * getModel(); + virtual void setModel(::javax::swing::BoundedRangeModel *); + virtual jint getMinimum(); + virtual void setMinimum(jint); + virtual jint getMaximum(); + virtual void setMaximum(jint); + virtual jboolean getValueIsAdjusting(); + virtual void setValueIsAdjusting(jboolean); + virtual jint getExtent(); + virtual void setExtent(jint); + virtual jint getOrientation(); + virtual void setOrientation(jint); + virtual ::java::util::Dictionary * getLabelTable(); + virtual void setLabelTable(::java::util::Dictionary *); +public: // actually protected + virtual void updateLabelUIs(); +public: + virtual ::java::util::Hashtable * createStandardLabels(jint); + virtual ::java::util::Hashtable * createStandardLabels(jint, jint); + virtual jboolean getInverted(); + virtual void setInverted(jboolean); + virtual jint getMajorTickSpacing(); + virtual void setMajorTickSpacing(jint); + virtual jint getMinorTickSpacing(); + virtual void setMinorTickSpacing(jint); + virtual jboolean getSnapToTicks(); + virtual void setSnapToTicks(jboolean); + virtual jboolean getPaintTicks(); + virtual void setPaintTicks(jboolean); + virtual jboolean getPaintTrack(); + virtual void setPaintTrack(jboolean); + virtual jboolean getPaintLabels(); + virtual void setPaintLabels(jboolean); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -1441275936141218479LL; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) paintTicks; + jboolean paintTrack; + jboolean paintLabels; + ::java::util::Dictionary * labelTable; +public: // actually protected + ::javax::swing::BoundedRangeModel * sliderModel; + jint majorTickSpacing; + jint minorTickSpacing; + jboolean snapToTicks; + jint orientation; +private: + jboolean isInverted; +public: // actually protected + ::javax::swing::event::ChangeListener * changeListener; + ::javax::swing::event::ChangeEvent * changeEvent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSlider__ diff --git a/libjava/javax/swing/JSpinner$DateEditor.h b/libjava/javax/swing/JSpinner$DateEditor.h new file mode 100644 index 00000000000..228da355c91 --- /dev/null +++ b/libjava/javax/swing/JSpinner$DateEditor.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner$DateEditor__ +#define __javax_swing_JSpinner$DateEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class SimpleDateFormat; + } + } + namespace javax + { + namespace swing + { + class JSpinner; + class JSpinner$DateEditor; + class SpinnerDateModel; + } + } +} + +class javax::swing::JSpinner$DateEditor : public ::javax::swing::JSpinner$DefaultEditor +{ + +public: + JSpinner$DateEditor(::javax::swing::JSpinner *); + JSpinner$DateEditor(::javax::swing::JSpinner *, ::java::lang::String *); + virtual ::java::text::SimpleDateFormat * getFormat(); + virtual ::javax::swing::SpinnerDateModel * getModel(); +private: + static const jlong serialVersionUID = -4279356973770397815LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner$DateEditor__ diff --git a/libjava/javax/swing/JSpinner$DateEditorFormatter.h b/libjava/javax/swing/JSpinner$DateEditorFormatter.h new file mode 100644 index 00000000000..f83b4348a76 --- /dev/null +++ b/libjava/javax/swing/JSpinner$DateEditorFormatter.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner$DateEditorFormatter__ +#define __javax_swing_JSpinner$DateEditorFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JSpinner$DateEditorFormatter; + } + } +} + +class javax::swing::JSpinner$DateEditorFormatter : public ::javax::swing::text::DateFormatter +{ + +public: + JSpinner$DateEditorFormatter(); + JSpinner$DateEditorFormatter(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner$DateEditorFormatter__ diff --git a/libjava/javax/swing/JSpinner$DefaultEditor.h b/libjava/javax/swing/JSpinner$DefaultEditor.h new file mode 100644 index 00000000000..b586f07b4b6 --- /dev/null +++ b/libjava/javax/swing/JSpinner$DefaultEditor.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner$DefaultEditor__ +#define __javax_swing_JSpinner$DefaultEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JFormattedTextField; + class JSpinner; + class JSpinner$DefaultEditor; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JSpinner$DefaultEditor : public ::javax::swing::JPanel +{ + +public: + JSpinner$DefaultEditor(::javax::swing::JSpinner *); + virtual ::javax::swing::JSpinner * getSpinner(); + virtual void commitEdit(); + virtual void dismiss(::javax::swing::JSpinner *); + virtual ::javax::swing::JFormattedTextField * getTextField(); + virtual void layoutContainer(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); + virtual void removeLayoutComponent(::java::awt::Component *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); +private: + ::javax::swing::JSpinner * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) spinner; +public: // actually package-private + ::javax::swing::JFormattedTextField * ftf; +private: + static const jlong serialVersionUID = -5317788736173368172LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner$DefaultEditor__ diff --git a/libjava/javax/swing/JSpinner$ListEditor.h b/libjava/javax/swing/JSpinner$ListEditor.h new file mode 100644 index 00000000000..9ee06ff71ea --- /dev/null +++ b/libjava/javax/swing/JSpinner$ListEditor.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner$ListEditor__ +#define __javax_swing_JSpinner$ListEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JSpinner; + class JSpinner$ListEditor; + class SpinnerListModel; + } + } +} + +class javax::swing::JSpinner$ListEditor : public ::javax::swing::JSpinner$DefaultEditor +{ + +public: + JSpinner$ListEditor(::javax::swing::JSpinner *); + virtual ::javax::swing::SpinnerListModel * getModel(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner$ListEditor__ diff --git a/libjava/javax/swing/JSpinner$ModelListener.h b/libjava/javax/swing/JSpinner$ModelListener.h new file mode 100644 index 00000000000..b91ea5e30e7 --- /dev/null +++ b/libjava/javax/swing/JSpinner$ModelListener.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner$ModelListener__ +#define __javax_swing_JSpinner$ModelListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JSpinner; + class JSpinner$ModelListener; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JSpinner$ModelListener : public ::java::lang::Object +{ + +public: + JSpinner$ModelListener(::javax::swing::JSpinner *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::JSpinner * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner$ModelListener__ diff --git a/libjava/javax/swing/JSpinner$NumberEditor.h b/libjava/javax/swing/JSpinner$NumberEditor.h new file mode 100644 index 00000000000..a3a8dd166e2 --- /dev/null +++ b/libjava/javax/swing/JSpinner$NumberEditor.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner$NumberEditor__ +#define __javax_swing_JSpinner$NumberEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class DecimalFormat; + } + } + namespace javax + { + namespace swing + { + class JSpinner; + class JSpinner$NumberEditor; + class SpinnerNumberModel; + } + } +} + +class javax::swing::JSpinner$NumberEditor : public ::javax::swing::JSpinner$DefaultEditor +{ + +public: + JSpinner$NumberEditor(::javax::swing::JSpinner *); + JSpinner$NumberEditor(::javax::swing::JSpinner *, ::java::lang::String *); + virtual ::java::text::DecimalFormat * getFormat(); + virtual ::javax::swing::SpinnerNumberModel * getModel(); +private: + static const jlong serialVersionUID = 3791956183098282942LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner$NumberEditor__ diff --git a/libjava/javax/swing/JSpinner$NumberEditorFormatter.h b/libjava/javax/swing/JSpinner$NumberEditorFormatter.h new file mode 100644 index 00000000000..6c2550415cf --- /dev/null +++ b/libjava/javax/swing/JSpinner$NumberEditorFormatter.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner$NumberEditorFormatter__ +#define __javax_swing_JSpinner$NumberEditorFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JSpinner$NumberEditorFormatter; + } + } +} + +class javax::swing::JSpinner$NumberEditorFormatter : public ::javax::swing::text::NumberFormatter +{ + +public: + JSpinner$NumberEditorFormatter(); + JSpinner$NumberEditorFormatter(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner$NumberEditorFormatter__ diff --git a/libjava/javax/swing/JSpinner.h b/libjava/javax/swing/JSpinner.h new file mode 100644 index 00000000000..5457d6f1123 --- /dev/null +++ b/libjava/javax/swing/JSpinner.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSpinner__ +#define __javax_swing_JSpinner__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + class JSpinner; + class SpinnerModel; + namespace event + { + class ChangeListener; + } + namespace plaf + { + class SpinnerUI; + } + } + } +} + +class javax::swing::JSpinner : public ::javax::swing::JComponent +{ + +public: + JSpinner(); + JSpinner(::javax::swing::SpinnerModel *); + virtual void commitEdit(); + virtual ::javax::swing::JComponent * getEditor(); + virtual void setEditor(::javax::swing::JComponent *); + virtual ::javax::swing::SpinnerModel * getModel(); + virtual void setModel(::javax::swing::SpinnerModel *); + virtual ::java::lang::Object * getNextValue(); + virtual ::java::lang::Object * getPreviousValue(); + virtual ::javax::swing::plaf::SpinnerUI * getUI(); + virtual ::java::lang::Object * getValue(); + virtual void setValue(::java::lang::Object *); + virtual ::java::lang::String * getUIClassID(); + virtual void updateUI(); + virtual void setUI(::javax::swing::plaf::SpinnerUI *); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +public: // actually protected + virtual void fireStateChanged(); + virtual ::javax::swing::JComponent * createEditor(::javax::swing::SpinnerModel *); +private: + ::javax::swing::SpinnerModel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) model; + ::javax::swing::JComponent * editor; + static const jlong serialVersionUID = 3412663575706551720LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSpinner__ diff --git a/libjava/javax/swing/JSplitPane$AccessibleJSplitPane.h b/libjava/javax/swing/JSplitPane$AccessibleJSplitPane.h new file mode 100644 index 00000000000..3144301d52a --- /dev/null +++ b/libjava/javax/swing/JSplitPane$AccessibleJSplitPane.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSplitPane$AccessibleJSplitPane__ +#define __javax_swing_JSplitPane$AccessibleJSplitPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + class AccessibleStateSet; + class AccessibleValue; + } + namespace swing + { + class JSplitPane; + class JSplitPane$AccessibleJSplitPane; + } + } +} + +class javax::swing::JSplitPane$AccessibleJSplitPane : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JSplitPane$AccessibleJSplitPane(::javax::swing::JSplitPane *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + 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 = -1788116871416305366LL; +public: // actually package-private + ::javax::swing::JSplitPane * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSplitPane$AccessibleJSplitPane__ diff --git a/libjava/javax/swing/JSplitPane.h b/libjava/javax/swing/JSplitPane.h new file mode 100644 index 00000000000..31405bd8728 --- /dev/null +++ b/libjava/javax/swing/JSplitPane.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JSplitPane__ +#define __javax_swing_JSplitPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JSplitPane; + namespace plaf + { + class SplitPaneUI; + } + } + } +} + +class javax::swing::JSplitPane : public ::javax::swing::JComponent +{ + +public: + JSplitPane(jint, jboolean, ::java::awt::Component *, ::java::awt::Component *); + JSplitPane(jint, ::java::awt::Component *, ::java::awt::Component *); + JSplitPane(jint, jboolean); + JSplitPane(jint); + JSplitPane(); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::awt::Component * getBottomComponent(); + virtual jint getDividerLocation(); + virtual jint getDividerSize(); + virtual jint getLastDividerLocation(); + virtual ::java::awt::Component * getLeftComponent(); + virtual jint getMaximumDividerLocation(); + virtual jint getMinimumDividerLocation(); + virtual jint getOrientation(); + virtual jdouble getResizeWeight(); + virtual ::java::awt::Component * getRightComponent(); + virtual ::java::awt::Component * getTopComponent(); + virtual ::javax::swing::plaf::SplitPaneUI * getUI(); + virtual jboolean isContinuousLayout(); + virtual jboolean isOneTouchExpandable(); + virtual jboolean isValidateRoot(); +public: // actually protected + virtual void paintChildren(::java::awt::Graphics *); + virtual ::java::lang::String * paramString(); +public: + virtual void remove(::java::awt::Component *); + virtual void remove(jint); + virtual void removeAll(); + virtual void resetToPreferredSizes(); + virtual void setBottomComponent(::java::awt::Component *); + virtual void setContinuousLayout(jboolean); + virtual void setDividerLocation(jdouble); + virtual void setDividerLocation(jint); + virtual void setDividerSize(jint); + virtual void setLastDividerLocation(jint); + virtual void setLeftComponent(::java::awt::Component *); + virtual void setOneTouchExpandable(jboolean); + virtual void setOrientation(jint); + virtual void setResizeWeight(jdouble); + virtual void setRightComponent(::java::awt::Component *); + virtual void setTopComponent(::java::awt::Component *); + virtual void setUI(::javax::swing::plaf::SplitPaneUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); +public: // actually package-private + virtual void setUIProperty(::java::lang::String *, ::java::lang::Object *); +private: + static const jlong serialVersionUID = -5634142046175988380LL; +public: + static ::java::lang::String * BOTTOM; + static ::java::lang::String * CONTINUOUS_LAYOUT_PROPERTY; + static ::java::lang::String * DIVIDER; + static ::java::lang::String * DIVIDER_LOCATION_PROPERTY; + static ::java::lang::String * DIVIDER_SIZE_PROPERTY; + static const jint HORIZONTAL_SPLIT = 1; + static ::java::lang::String * LAST_DIVIDER_LOCATION_PROPERTY; + static ::java::lang::String * LEFT; + static ::java::lang::String * ONE_TOUCH_EXPANDABLE_PROPERTY; + static ::java::lang::String * ORIENTATION_PROPERTY; + static ::java::lang::String * RESIZE_WEIGHT_PROPERTY; + static ::java::lang::String * RIGHT; + static ::java::lang::String * TOP; + static const jint VERTICAL_SPLIT = 0; +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) continuousLayout; + jboolean oneTouchExpandable; + jint dividerSize; + jint lastDividerLocation; + jint orientation; + ::java::awt::Component * leftComponent; + ::java::awt::Component * rightComponent; +private: + jint dividerLocation; + jdouble resizeWeight; + jboolean clientDividerSizeSet; + jboolean clientOneTouchExpandableSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JSplitPane__ diff --git a/libjava/javax/swing/JTabbedPane$AccessibleJTabbedPane.h b/libjava/javax/swing/JTabbedPane$AccessibleJTabbedPane.h new file mode 100644 index 00000000000..8769fad0477 --- /dev/null +++ b/libjava/javax/swing/JTabbedPane$AccessibleJTabbedPane.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTabbedPane$AccessibleJTabbedPane__ +#define __javax_swing_JTabbedPane$AccessibleJTabbedPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + class AccessibleSelection; + } + namespace swing + { + class JTabbedPane; + class JTabbedPane$AccessibleJTabbedPane; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JTabbedPane$AccessibleJTabbedPane : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: + JTabbedPane$AccessibleJTabbedPane(::javax::swing::JTabbedPane *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection(); + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *); + virtual jint getAccessibleSelectionCount(); + virtual ::javax::accessibility::Accessible * getAccessibleSelection(jint); + virtual jboolean isAccessibleChildSelected(jint); + virtual void addAccessibleSelection(jint); + virtual void removeAccessibleSelection(jint); + virtual void clearAccessibleSelection(); + virtual void selectAllAccessibleSelection(); +private: + static const jlong serialVersionUID = 7610530885966830483LL; +public: // actually package-private + ::javax::swing::JTabbedPane * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTabbedPane$AccessibleJTabbedPane__ diff --git a/libjava/javax/swing/JTabbedPane$ModelListener.h b/libjava/javax/swing/JTabbedPane$ModelListener.h new file mode 100644 index 00000000000..04ffcc1961c --- /dev/null +++ b/libjava/javax/swing/JTabbedPane$ModelListener.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTabbedPane$ModelListener__ +#define __javax_swing_JTabbedPane$ModelListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTabbedPane; + class JTabbedPane$ModelListener; + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::JTabbedPane$ModelListener : public ::java::lang::Object +{ + +public: // actually protected + JTabbedPane$ModelListener(::javax::swing::JTabbedPane *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +private: + static const jlong serialVersionUID = 497359819958114132LL; +public: // actually package-private + ::javax::swing::JTabbedPane * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTabbedPane$ModelListener__ diff --git a/libjava/javax/swing/JTabbedPane$Page.h b/libjava/javax/swing/JTabbedPane$Page.h new file mode 100644 index 00000000000..346289a538b --- /dev/null +++ b/libjava/javax/swing/JTabbedPane$Page.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTabbedPane$Page__ +#define __javax_swing_JTabbedPane$Page__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleContext; + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class Icon; + class JTabbedPane; + class JTabbedPane$Page; + } + } +} + +class javax::swing::JTabbedPane$Page : public ::javax::accessibility::AccessibleContext +{ + +public: // actually protected + JTabbedPane$Page(::javax::swing::JTabbedPane *, ::java::lang::String *, ::javax::swing::Icon *, ::java::awt::Component *, ::java::lang::String *); +public: + virtual ::java::awt::Component * getComponent(); + virtual void setComponent(::java::awt::Component *); + virtual ::java::lang::String * getTip(); + virtual void setTip(::java::lang::String *); + virtual ::java::awt::Color * getBackground(); + virtual void setBackground(::java::awt::Color *); + virtual ::java::awt::Color * getForeground(); + virtual void setForeground(::java::awt::Color *); + virtual ::java::lang::String * getTitle(); + virtual void setTitle(::java::lang::String *); + virtual ::javax::swing::Icon * getIcon(); + virtual void setIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getDisabledIcon(); + virtual void setDisabledIcon(::javax::swing::Icon *); + virtual jboolean isEnabled(); + virtual void setEnabled(jboolean); + virtual jint getMnemonic(); + virtual void setMnemonic(jint); + virtual void setMnemonic(jchar); + virtual jint getDisplayedMnemonicIndex(); + virtual void setDisplayedMnemonicIndex(jint); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::lang::String * getAccessibleName(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual jint getAccessibleIndexInParent(); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::java::util::Locale * getLocale(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) tip; + ::java::awt::Component * component; + ::javax::swing::Icon * icon; + ::javax::swing::Icon * disabledIcon; + jboolean enabled; + ::java::lang::String * title; + ::java::awt::Color * bg; + ::java::awt::Color * fg; + jint mnemonicKey; + jint underlinedChar; + static const jlong serialVersionUID = 1614381073220130939LL; +public: // actually package-private + ::javax::swing::JTabbedPane * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTabbedPane$Page__ diff --git a/libjava/javax/swing/JTabbedPane.h b/libjava/javax/swing/JTabbedPane.h new file mode 100644 index 00000000000..8b286e5c1af --- /dev/null +++ b/libjava/javax/swing/JTabbedPane.h @@ -0,0 +1,148 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTabbedPane__ +#define __javax_swing_JTabbedPane__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Rectangle; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Icon; + class JTabbedPane; + class SingleSelectionModel; + namespace event + { + class ChangeEvent; + class ChangeListener; + } + namespace plaf + { + class TabbedPaneUI; + } + } + } +} + +class javax::swing::JTabbedPane : public ::javax::swing::JComponent +{ + +public: + JTabbedPane(); + JTabbedPane(jint); + JTabbedPane(jint, jint); + virtual ::javax::swing::plaf::TabbedPaneUI * getUI(); + virtual void setUI(::javax::swing::plaf::TabbedPaneUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::javax::swing::event::ChangeListener * createChangeListener(); +public: + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); + virtual ::javax::swing::SingleSelectionModel * getModel(); + virtual void setModel(::javax::swing::SingleSelectionModel *); + virtual jint getTabPlacement(); + virtual void setTabPlacement(jint); + virtual jint getTabLayoutPolicy(); + virtual void setTabLayoutPolicy(jint); + virtual jint getSelectedIndex(); +private: + void checkIndex(jint, jint, jint); +public: + virtual void setSelectedIndex(jint); + virtual ::java::awt::Component * getSelectedComponent(); + virtual void setSelectedComponent(::java::awt::Component *); + virtual void insertTab(::java::lang::String *, ::javax::swing::Icon *, ::java::awt::Component *, ::java::lang::String *, jint); + virtual void addTab(::java::lang::String *, ::javax::swing::Icon *, ::java::awt::Component *, ::java::lang::String *); + virtual void addTab(::java::lang::String *, ::javax::swing::Icon *, ::java::awt::Component *); + virtual void addTab(::java::lang::String *, ::java::awt::Component *); + 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); + virtual void removeTabAt(jint); + virtual void remove(::java::awt::Component *); + virtual void remove(jint); + virtual void removeAll(); + virtual jint getTabCount(); + virtual jint getTabRunCount(); + virtual ::java::lang::String * getTitleAt(jint); + virtual ::javax::swing::Icon * getIconAt(jint); + virtual ::javax::swing::Icon * getDisabledIconAt(jint); + virtual ::java::lang::String * getToolTipTextAt(jint); + virtual ::java::awt::Color * getForegroundAt(jint); + virtual ::java::awt::Color * getBackgroundAt(jint); + virtual ::java::awt::Component * getComponentAt(jint); + virtual jboolean isEnabledAt(jint); + virtual jint getMnemonicAt(jint); + virtual jint getDisplayedMnemonicIndexAt(jint); + virtual ::java::awt::Rectangle * getBoundsAt(jint); + virtual void setTitleAt(jint, ::java::lang::String *); + virtual void setIconAt(jint, ::javax::swing::Icon *); + virtual void setDisabledIconAt(jint, ::javax::swing::Icon *); + virtual void setToolTipTextAt(jint, ::java::lang::String *); + virtual void setBackgroundAt(jint, ::java::awt::Color *); + virtual void setForegroundAt(jint, ::java::awt::Color *); + virtual void setEnabledAt(jint, jboolean); + virtual void setComponentAt(jint, ::java::awt::Component *); + virtual void setDisplayedMnemonicIndexAt(jint, jint); + virtual void setMnemonicAt(jint, jint); + virtual jint indexOfTab(::java::lang::String *); + virtual jint indexOfTab(::javax::swing::Icon *); + virtual jint indexOfComponent(::java::awt::Component *); + virtual jint indexAtLocation(jint, jint); + virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = 1614381073220130939LL; +public: // actually protected + ::javax::swing::event::ChangeEvent * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) changeEvent; + ::javax::swing::event::ChangeListener * changeListener; + ::javax::swing::SingleSelectionModel * model; +public: + static const jint SCROLL_TAB_LAYOUT = 1; + static const jint WRAP_TAB_LAYOUT = 0; +public: // actually protected + jint tabPlacement; +private: + jint layoutPolicy; +public: // actually package-private + ::java::util::Vector * tabs; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTabbedPane__ diff --git a/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableCell.h b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableCell.h new file mode 100644 index 00000000000..0264034abc9 --- /dev/null +++ b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableCell.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$AccessibleJTable$AccessibleJTableCell__ +#define __javax_swing_JTable$AccessibleJTable$AccessibleJTableCell__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Cursor; + class Dimension; + class Font; + class FontMetrics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleContext; + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class JTable; + class JTable$AccessibleJTable; + class JTable$AccessibleJTable$AccessibleJTableCell; + } + } +} + +class javax::swing::JTable$AccessibleJTable$AccessibleJTableCell : public ::javax::accessibility::AccessibleContext +{ + +public: + JTable$AccessibleJTable$AccessibleJTableCell(::javax::swing::JTable$AccessibleJTable *, ::javax::swing::JTable *, jint, jint, jint); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual jint getAccessibleIndexInParent(); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::java::util::Locale * getLocale(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + 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: + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) table; + jint row; + jint column; + jint index; +public: // actually package-private + ::javax::swing::JTable$AccessibleJTable * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$AccessibleJTable$AccessibleJTableCell__ diff --git a/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableHeaderCell.h b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableHeaderCell.h new file mode 100644 index 00000000000..2a7e6aa61af --- /dev/null +++ b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableHeaderCell.h @@ -0,0 +1,101 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$AccessibleJTable$AccessibleJTableHeaderCell__ +#define __javax_swing_JTable$AccessibleJTable$AccessibleJTableHeaderCell__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Cursor; + class Dimension; + class Font; + class FontMetrics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleContext; + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class JTable$AccessibleJTable; + class JTable$AccessibleJTable$AccessibleJTableHeaderCell; + namespace table + { + class JTableHeader; + } + } + } +} + +class javax::swing::JTable$AccessibleJTable$AccessibleJTableHeaderCell : public ::javax::accessibility::AccessibleContext +{ + + JTable$AccessibleJTable$AccessibleJTableHeaderCell(::javax::swing::JTable$AccessibleJTable *, ::javax::swing::table::JTableHeader *, ::java::awt::Component *, jint, jint); +public: // actually package-private + virtual ::java::awt::Component * getColumnHeaderRenderer(); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual jint getAccessibleIndexInParent(); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::java::util::Locale * getLocale(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + 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 *); +public: // actually package-private + JTable$AccessibleJTable$AccessibleJTableHeaderCell(::javax::swing::JTable$AccessibleJTable *, ::javax::swing::table::JTableHeader *, ::java::awt::Component *, jint, jint, ::javax::swing::JTable$AccessibleJTable$AccessibleJTableHeaderCell *); + ::javax::swing::table::JTableHeader * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) header; + jint columnIndex; + ::javax::swing::JTable$AccessibleJTable * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$AccessibleJTable$AccessibleJTableHeaderCell__ diff --git a/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange.h b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange.h new file mode 100644 index 00000000000..256910ef678 --- /dev/null +++ b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$AccessibleJTable$AccessibleJTableModelChange__ +#define __javax_swing_JTable$AccessibleJTable$AccessibleJTableModelChange__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTable$AccessibleJTable; + class JTable$AccessibleJTable$AccessibleJTableModelChange; + } + } +} + +class javax::swing::JTable$AccessibleJTable$AccessibleJTableModelChange : public ::java::lang::Object +{ + +public: // actually protected + JTable$AccessibleJTable$AccessibleJTableModelChange(::javax::swing::JTable$AccessibleJTable *, jint, jint, jint, jint, jint); +public: + virtual jint getType(); + virtual jint getFirstRow(); + virtual jint getLastRow(); + virtual jint getFirstColumn(); + virtual jint getLastColumn(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + jint firstRow; + jint lastRow; + jint firstColumn; + jint lastColumn; +public: // actually package-private + ::javax::swing::JTable$AccessibleJTable * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$AccessibleJTable$AccessibleJTableModelChange__ diff --git a/libjava/javax/swing/JTable$AccessibleJTable$AccessibleTableHeader.h b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleTableHeader.h new file mode 100644 index 00000000000..64e8a51143e --- /dev/null +++ b/libjava/javax/swing/JTable$AccessibleJTable$AccessibleTableHeader.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$AccessibleJTable$AccessibleTableHeader__ +#define __javax_swing_JTable$AccessibleJTable$AccessibleTableHeader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleTable; + } + namespace swing + { + class JTable$AccessibleJTable; + class JTable$AccessibleJTable$AccessibleTableHeader; + namespace table + { + class JTableHeader; + } + } + } +} + +class javax::swing::JTable$AccessibleJTable$AccessibleTableHeader : public ::java::lang::Object +{ + + JTable$AccessibleJTable$AccessibleTableHeader(::javax::swing::JTable$AccessibleJTable *, ::javax::swing::table::JTableHeader *); +public: + virtual ::javax::accessibility::Accessible * getAccessibleCaption(); + virtual void setAccessibleCaption(::javax::accessibility::Accessible *); + virtual ::javax::accessibility::Accessible * getAccessibleSummary(); + virtual void setAccessibleSummary(::javax::accessibility::Accessible *); + virtual jint getAccessibleRowCount(); + virtual jint getAccessibleColumnCount(); + virtual ::javax::accessibility::Accessible * getAccessibleAt(jint, jint); + virtual jint getAccessibleRowExtentAt(jint, jint); + virtual jint getAccessibleColumnExtentAt(jint, jint); + virtual ::javax::accessibility::AccessibleTable * getAccessibleRowHeader(); + virtual void setAccessibleRowHeader(::javax::accessibility::AccessibleTable *); + virtual ::javax::accessibility::AccessibleTable * getAccessibleColumnHeader(); + virtual void setAccessibleColumnHeader(::javax::accessibility::AccessibleTable *); + virtual ::javax::accessibility::Accessible * getAccessibleRowDescription(jint); + virtual void setAccessibleRowDescription(jint, ::javax::accessibility::Accessible *); + virtual ::javax::accessibility::Accessible * getAccessibleColumnDescription(jint); + virtual void setAccessibleColumnDescription(jint, ::javax::accessibility::Accessible *); + virtual jboolean isAccessibleSelected(jint, jint); + virtual jboolean isAccessibleRowSelected(jint); + virtual jboolean isAccessibleColumnSelected(jint); + virtual JArray< jint > * getSelectedAccessibleRows(); + virtual JArray< jint > * getSelectedAccessibleColumns(); +public: // actually package-private + JTable$AccessibleJTable$AccessibleTableHeader(::javax::swing::JTable$AccessibleJTable *, ::javax::swing::table::JTableHeader *, ::javax::swing::JTable$AccessibleJTable$AccessibleTableHeader *); +private: + ::javax::swing::table::JTableHeader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) header; +public: // actually package-private + ::javax::swing::JTable$AccessibleJTable * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$AccessibleJTable$AccessibleTableHeader__ diff --git a/libjava/javax/swing/JTable$AccessibleJTable.h b/libjava/javax/swing/JTable$AccessibleJTable.h new file mode 100644 index 00000000000..71cb86b68e1 --- /dev/null +++ b/libjava/javax/swing/JTable$AccessibleJTable.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$AccessibleJTable__ +#define __javax_swing_JTable$AccessibleJTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + class AccessibleTable; + } + namespace swing + { + class JTable; + class JTable$AccessibleJTable; + namespace event + { + class ChangeEvent; + class ListSelectionEvent; + class TableColumnModelEvent; + class TableModelEvent; + } + } + } +} + +class javax::swing::JTable$AccessibleJTable : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JTable$AccessibleJTable(::javax::swing::JTable *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleTable * getAccessibleTable(); + virtual jint getAccessibleSelectionCount(); + 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 valueChanged(::javax::swing::event::ListSelectionEvent *); + virtual void tableChanged(::javax::swing::event::TableModelEvent *); + virtual void tableRowsInserted(::javax::swing::event::TableModelEvent *); + virtual void tableRowsDeleted(::javax::swing::event::TableModelEvent *); +private: + void handleRowChange(::javax::swing::event::TableModelEvent *); +public: + virtual void columnAdded(::javax::swing::event::TableColumnModelEvent *); + virtual void columnRemoved(::javax::swing::event::TableColumnModelEvent *); + virtual void columnMoved(::javax::swing::event::TableColumnModelEvent *); +private: + void handleColumnChange(jint, jint, jint); +public: + virtual void columnMarginChanged(::javax::swing::event::ChangeEvent *); + virtual void columnSelectionChanged(::javax::swing::event::ListSelectionEvent *); + virtual void editingCanceled(::javax::swing::event::ChangeEvent *); + virtual void editingStopped(::javax::swing::event::ChangeEvent *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual jint getAccessibleRow(jint); + virtual jint getAccessibleColumn(jint); + virtual jint getAccessibleIndex(jint, jint); + virtual ::javax::accessibility::Accessible * getAccessibleCaption(); + virtual void setAccessibleCaption(::javax::accessibility::Accessible *); + virtual ::javax::accessibility::Accessible * getAccessibleSummary(); + virtual void setAccessibleSummary(::javax::accessibility::Accessible *); + virtual jint getAccessibleRowCount(); + virtual jint getAccessibleColumnCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::javax::accessibility::Accessible * getAccessibleAt(jint, jint); + virtual jint getAccessibleRowExtentAt(jint, jint); + virtual jint getAccessibleColumnExtentAt(jint, jint); + virtual ::javax::accessibility::AccessibleTable * getAccessibleRowHeader(); + virtual void setAccessibleRowHeader(::javax::accessibility::AccessibleTable *); + virtual ::javax::accessibility::AccessibleTable * getAccessibleColumnHeader(); + virtual void setAccessibleColumnHeader(::javax::accessibility::AccessibleTable *); + virtual ::javax::accessibility::Accessible * getAccessibleRowDescription(jint); + virtual void setAccessibleRowDescription(jint, ::javax::accessibility::Accessible *); + virtual ::javax::accessibility::Accessible * getAccessibleColumnDescription(jint); + virtual void setAccessibleColumnDescription(jint, ::javax::accessibility::Accessible *); + virtual jboolean isAccessibleSelected(jint, jint); + virtual jboolean isAccessibleRowSelected(jint); + virtual jboolean isAccessibleColumnSelected(jint); + virtual JArray< jint > * getSelectedAccessibleRows(); + virtual JArray< jint > * getSelectedAccessibleColumns(); + virtual jint getAccessibleRowAtIndex(jint); + virtual jint getAccessibleColumnAtIndex(jint); + virtual jint getAccessibleIndexAt(jint, jint); +public: // actually package-private + static ::javax::swing::JTable * access$0(::javax::swing::JTable$AccessibleJTable *); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) lastSelectedRow; + jint lastSelectedColumn; + ::javax::accessibility::Accessible * caption; + ::javax::accessibility::Accessible * summary; + JArray< ::javax::accessibility::Accessible * > * rowDescriptions; + JArray< ::javax::accessibility::Accessible * > * columnDescriptions; +public: // actually package-private + ::javax::swing::JTable * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$AccessibleJTable__ diff --git a/libjava/javax/swing/JTable$BooleanCellRenderer.h b/libjava/javax/swing/JTable$BooleanCellRenderer.h new file mode 100644 index 00000000000..127540b10ae --- /dev/null +++ b/libjava/javax/swing/JTable$BooleanCellRenderer.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$BooleanCellRenderer__ +#define __javax_swing_JTable$BooleanCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JCheckBox; + class JTable; + class JTable$BooleanCellRenderer; + } + } +} + +class javax::swing::JTable$BooleanCellRenderer : public ::javax::swing::table::DefaultTableCellRenderer +{ + +public: // actually package-private + JTable$BooleanCellRenderer(::javax::swing::JTable *); + virtual ::javax::swing::JCheckBox * getCheckBox(); +public: + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint); +private: + ::javax::swing::JCheckBox * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) checkBox; +public: // actually package-private + ::javax::swing::JTable * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$BooleanCellRenderer__ diff --git a/libjava/javax/swing/JTable$DateCellRenderer.h b/libjava/javax/swing/JTable$DateCellRenderer.h new file mode 100644 index 00000000000..854751c30bc --- /dev/null +++ b/libjava/javax/swing/JTable$DateCellRenderer.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$DateCellRenderer__ +#define __javax_swing_JTable$DateCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTable; + class JTable$DateCellRenderer; + } + } +} + +class javax::swing::JTable$DateCellRenderer : public ::javax::swing::table::DefaultTableCellRenderer +{ + + JTable$DateCellRenderer(::javax::swing::JTable *); +public: + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint); +public: // actually package-private + JTable$DateCellRenderer(::javax::swing::JTable *, ::javax::swing::JTable$DateCellRenderer *); + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$DateCellRenderer__ diff --git a/libjava/javax/swing/JTable$DoubleCellRenderer.h b/libjava/javax/swing/JTable$DoubleCellRenderer.h new file mode 100644 index 00000000000..7b3ef733c66 --- /dev/null +++ b/libjava/javax/swing/JTable$DoubleCellRenderer.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$DoubleCellRenderer__ +#define __javax_swing_JTable$DoubleCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTable; + class JTable$DoubleCellRenderer; + } + } +} + +class javax::swing::JTable$DoubleCellRenderer : public ::javax::swing::table::DefaultTableCellRenderer +{ + +public: + JTable$DoubleCellRenderer(::javax::swing::JTable *); + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint); +public: // actually package-private + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$DoubleCellRenderer__ diff --git a/libjava/javax/swing/JTable$FloatCellRenderer.h b/libjava/javax/swing/JTable$FloatCellRenderer.h new file mode 100644 index 00000000000..b53038046e7 --- /dev/null +++ b/libjava/javax/swing/JTable$FloatCellRenderer.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$FloatCellRenderer__ +#define __javax_swing_JTable$FloatCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTable; + class JTable$FloatCellRenderer; + } + } +} + +class javax::swing::JTable$FloatCellRenderer : public ::javax::swing::table::DefaultTableCellRenderer +{ + +public: + JTable$FloatCellRenderer(::javax::swing::JTable *); + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint); +public: // actually package-private + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$FloatCellRenderer__ diff --git a/libjava/javax/swing/JTable$IconCellRenderer.h b/libjava/javax/swing/JTable$IconCellRenderer.h new file mode 100644 index 00000000000..6b7556658db --- /dev/null +++ b/libjava/javax/swing/JTable$IconCellRenderer.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$IconCellRenderer__ +#define __javax_swing_JTable$IconCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTable; + class JTable$IconCellRenderer; + } + } +} + +class javax::swing::JTable$IconCellRenderer : public ::javax::swing::table::DefaultTableCellRenderer +{ + +public: // actually package-private + JTable$IconCellRenderer(::javax::swing::JTable *); +public: + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint); +public: // actually package-private + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$IconCellRenderer__ diff --git a/libjava/javax/swing/JTable$NumberCellRenderer.h b/libjava/javax/swing/JTable$NumberCellRenderer.h new file mode 100644 index 00000000000..4b51472577d --- /dev/null +++ b/libjava/javax/swing/JTable$NumberCellRenderer.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$NumberCellRenderer__ +#define __javax_swing_JTable$NumberCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTable; + class JTable$NumberCellRenderer; + } + } +} + +class javax::swing::JTable$NumberCellRenderer : public ::javax::swing::table::DefaultTableCellRenderer +{ + +public: + JTable$NumberCellRenderer(::javax::swing::JTable *); +public: // actually package-private + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$NumberCellRenderer__ diff --git a/libjava/javax/swing/JTable$TableColumnPropertyChangeHandler.h b/libjava/javax/swing/JTable$TableColumnPropertyChangeHandler.h new file mode 100644 index 00000000000..dc512796b9f --- /dev/null +++ b/libjava/javax/swing/JTable$TableColumnPropertyChangeHandler.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$TableColumnPropertyChangeHandler__ +#define __javax_swing_JTable$TableColumnPropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JTable; + class JTable$TableColumnPropertyChangeHandler; + } + } +} + +class javax::swing::JTable$TableColumnPropertyChangeHandler : public ::java::lang::Object +{ + +public: // actually package-private + JTable$TableColumnPropertyChangeHandler(::javax::swing::JTable *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$TableColumnPropertyChangeHandler__ diff --git a/libjava/javax/swing/JTable$TableTextField.h b/libjava/javax/swing/JTable$TableTextField.h new file mode 100644 index 00000000000..c0c118f7c77 --- /dev/null +++ b/libjava/javax/swing/JTable$TableTextField.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable$TableTextField__ +#define __javax_swing_JTable$TableTextField__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTable; + class JTable$TableTextField; + } + } +} + +class javax::swing::JTable$TableTextField : public ::javax::swing::JTextField +{ + +public: // actually package-private + JTable$TableTextField(::javax::swing::JTable *); + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable$TableTextField__ diff --git a/libjava/javax/swing/JTable.h b/libjava/javax/swing/JTable.h new file mode 100644 index 00000000000..09feb7f226b --- /dev/null +++ b/libjava/javax/swing/JTable.h @@ -0,0 +1,294 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTable__ +#define __javax_swing_JTable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Dimension; + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JScrollPane; + class JTable; + class JTable$TableColumnPropertyChangeHandler; + class ListSelectionModel; + class SizeSequence; + namespace event + { + class ChangeEvent; + class ListSelectionEvent; + class TableColumnModelEvent; + class TableModelEvent; + } + namespace plaf + { + class TableUI; + } + namespace table + { + class JTableHeader; + class TableCellEditor; + class TableCellRenderer; + class TableColumn; + class TableColumnModel; + class TableModel; + } + } + } +} + +class javax::swing::JTable : public ::javax::swing::JComponent +{ + +public: + JTable(); + JTable(jint, jint); + JTable(JArray< JArray< ::java::lang::Object * > * > *, JArray< ::java::lang::Object * > *); + JTable(::javax::swing::table::TableModel *); + JTable(::javax::swing::table::TableModel *, ::javax::swing::table::TableColumnModel *); + JTable(::javax::swing::table::TableModel *, ::javax::swing::table::TableColumnModel *, ::javax::swing::ListSelectionModel *); + JTable(::java::util::Vector *, ::java::util::Vector *); +public: // actually protected + virtual void initializeLocalVars(); +public: + virtual void addColumn(::javax::swing::table::TableColumn *); +public: // actually protected + virtual void createDefaultEditors(); + virtual void createDefaultRenderers(); +public: + static ::javax::swing::JScrollPane * createScrollPaneForTable(::javax::swing::JTable *); +public: // actually protected + virtual ::javax::swing::table::TableColumnModel * createDefaultColumnModel(); + virtual ::javax::swing::table::TableModel * createDefaultDataModel(); + virtual ::javax::swing::ListSelectionModel * createDefaultSelectionModel(); + virtual ::javax::swing::table::JTableHeader * createDefaultTableHeader(); +public: + virtual void columnAdded(::javax::swing::event::TableColumnModelEvent *); + virtual void columnMarginChanged(::javax::swing::event::ChangeEvent *); + virtual void columnMoved(::javax::swing::event::TableColumnModelEvent *); + virtual void columnRemoved(::javax::swing::event::TableColumnModelEvent *); + virtual void columnSelectionChanged(::javax::swing::event::ListSelectionEvent *); + virtual void editingCanceled(::javax::swing::event::ChangeEvent *); + virtual void editingStopped(::javax::swing::event::ChangeEvent *); + virtual void tableChanged(::javax::swing::event::TableModelEvent *); +private: + void handleCompleteChange(::javax::swing::event::TableModelEvent *); + void handleInsert(::javax::swing::event::TableModelEvent *); + void handleDelete(::javax::swing::event::TableModelEvent *); + void handleUpdate(::javax::swing::event::TableModelEvent *); + void checkSelection(); +public: + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); + virtual jint columnAtPoint(::java::awt::Point *); + virtual jint rowAtPoint(::java::awt::Point *); + virtual ::java::awt::Rectangle * getCellRect(jint, jint, jboolean); + virtual void clearSelection(); + virtual jint getSelectedRow(); + virtual ::javax::swing::ListSelectionModel * getSelectionModel(); + virtual jint getScrollableBlockIncrement(::java::awt::Rectangle *, jint, jint); + virtual jboolean getScrollableTracksViewportHeight(); + virtual jboolean getScrollableTracksViewportWidth(); + virtual jint getScrollableUnitIncrement(::java::awt::Rectangle *, jint, jint); + virtual ::javax::swing::table::TableCellEditor * getCellEditor(jint, jint); + virtual ::javax::swing::table::TableCellEditor * getDefaultEditor(::java::lang::Class *); + virtual ::javax::swing::table::TableCellRenderer * getCellRenderer(jint, jint); + virtual void setDefaultRenderer(::java::lang::Class *, ::javax::swing::table::TableCellRenderer *); + virtual ::javax::swing::table::TableCellRenderer * getDefaultRenderer(::java::lang::Class *); + virtual jint convertColumnIndexToModel(jint); + virtual jint convertColumnIndexToView(jint); + virtual ::java::awt::Component * prepareRenderer(::javax::swing::table::TableCellRenderer *, jint, jint); + virtual jboolean getAutoCreateColumnsFromModel(); + virtual jint getAutoResizeMode(); + virtual jint getRowHeight(); + virtual jint getRowHeight(jint); + virtual jint getRowMargin(); + virtual jboolean getRowSelectionAllowed(); + virtual jboolean getCellSelectionEnabled(); + virtual ::javax::swing::table::TableModel * getModel(); + virtual jint getColumnCount(); + virtual jint getRowCount(); + virtual ::javax::swing::table::TableColumnModel * getColumnModel(); + virtual jint getSelectedColumn(); +private: + static jint countSelections(::javax::swing::ListSelectionModel *); + static JArray< jint > * getSelections(::javax::swing::ListSelectionModel *); +public: + virtual jint getSelectedColumnCount(); + virtual JArray< jint > * getSelectedColumns(); + virtual jboolean getColumnSelectionAllowed(); + virtual jint getSelectedRowCount(); + virtual JArray< jint > * getSelectedRows(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::javax::swing::table::TableCellEditor * getCellEditor(); + virtual jboolean getDragEnabled(); + virtual ::java::awt::Color * getGridColor(); + virtual ::java::awt::Dimension * getIntercellSpacing(); + virtual ::java::awt::Dimension * getPreferredScrollableViewportSize(); + virtual ::java::awt::Color * getSelectionBackground(); + virtual ::java::awt::Color * getSelectionForeground(); + virtual jboolean getShowHorizontalLines(); + virtual jboolean getShowVerticalLines(); + virtual ::javax::swing::table::JTableHeader * getTableHeader(); + virtual void removeColumn(::javax::swing::table::TableColumn *); + virtual void moveColumn(jint, jint); + virtual void setAutoCreateColumnsFromModel(jboolean); + virtual void setAutoResizeMode(jint); + virtual void setRowHeight(jint); + virtual void setRowHeight(jint, jint); + virtual void setRowMargin(jint); + virtual void setRowSelectionAllowed(jboolean); + virtual void setCellSelectionEnabled(jboolean); + virtual void setModel(::javax::swing::table::TableModel *); + virtual void setColumnModel(::javax::swing::table::TableColumnModel *); + virtual void setColumnSelectionAllowed(jboolean); + virtual void setSelectionModel(::javax::swing::ListSelectionModel *); + virtual void setSelectionMode(jint); + virtual void setCellEditor(::javax::swing::table::TableCellEditor *); + virtual void setDragEnabled(jboolean); + virtual void setGridColor(::java::awt::Color *); + virtual void setIntercellSpacing(::java::awt::Dimension *); + virtual void setPreferredScrollableViewportSize(::java::awt::Dimension *); + virtual void setSelectionBackground(::java::awt::Color *); + virtual void setSelectionForeground(::java::awt::Color *); + virtual void setShowGrid(jboolean); + virtual void setShowHorizontalLines(jboolean); + virtual void setShowVerticalLines(jboolean); + virtual void setTableHeader(::javax::swing::table::JTableHeader *); +public: // actually protected + virtual void configureEnclosingScrollPane(); + virtual void unconfigureEnclosingScrollPane(); +public: + virtual void addNotify(); + virtual void removeNotify(); +private: + void distributeSpill(JArray< ::javax::swing::table::TableColumn * > *, jint); + void distributeSpillResizing(JArray< ::javax::swing::table::TableColumn * > *, jint, ::javax::swing::table::TableColumn *); +public: + virtual void doLayout(); +public: // actually package-private + virtual jint getLeftResizingBoundary(); +public: + virtual void sizeColumnsToFit(jboolean); + virtual void sizeColumnsToFit(jint); + virtual ::java::lang::String * getUIClassID(); + virtual ::javax::swing::plaf::TableUI * getUI(); + virtual void setUI(::javax::swing::plaf::TableUI *); + virtual void updateUI(); + virtual ::java::lang::Class * getColumnClass(jint); + virtual ::java::lang::String * getColumnName(jint); + virtual jint getEditingColumn(); + virtual void setEditingColumn(jint); + virtual jint getEditingRow(); + virtual void setEditingRow(jint); + virtual ::java::awt::Component * getEditorComponent(); + virtual jboolean isEditing(); + virtual void setDefaultEditor(::java::lang::Class *, ::javax::swing::table::TableCellEditor *); + virtual void addColumnSelectionInterval(jint, jint); + virtual void addRowSelectionInterval(jint, jint); + virtual void setColumnSelectionInterval(jint, jint); + virtual void setRowSelectionInterval(jint, jint); + virtual void removeColumnSelectionInterval(jint, jint); + virtual void removeRowSelectionInterval(jint, jint); + virtual jboolean isColumnSelected(jint); + virtual jboolean isRowSelected(jint); + virtual jboolean isCellSelected(jint, jint); + virtual void selectAll(); + virtual ::java::lang::Object * getValueAt(jint, jint); + virtual void setValueAt(::java::lang::Object *, jint, jint); + virtual ::javax::swing::table::TableColumn * getColumn(::java::lang::Object *); + virtual jboolean isCellEditable(jint, jint); + virtual void createDefaultColumnsFromModel(); + virtual void changeSelection(jint, jint, jboolean, jboolean); + virtual jboolean editCellAt(jint, jint); +private: + void moveToCellBeingEdited(::java::awt::Component *); +public: + virtual jboolean editCellAt(jint, jint, ::java::util::EventObject *); + virtual void removeEditor(); + virtual ::java::awt::Component * prepareEditor(::javax::swing::table::TableCellEditor *, jint, jint); +public: // actually protected + virtual void resizeAndRepaint(); +public: + virtual void setSurrendersFocusOnKeystroke(jboolean); + virtual jboolean getSurrendersFocusOnKeystroke(); +public: // actually package-private + virtual void setUIProperty(::java::lang::String *, ::java::lang::Object *); +private: + static const jlong serialVersionUID = 3876025080382781659LL; +public: // actually package-private + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) this_table; +public: + static const jint AUTO_RESIZE_OFF = 0; + static const jint AUTO_RESIZE_NEXT_COLUMN = 1; + static const jint AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2; + static const jint AUTO_RESIZE_ALL_COLUMNS = 4; + static const jint AUTO_RESIZE_LAST_COLUMN = 3; +public: // actually protected + ::java::util::Hashtable * defaultEditorsByColumnClass; + ::java::util::Hashtable * defaultRenderersByColumnClass; + jint editingColumn; + jint editingRow; + ::java::awt::Component * editorComp; + jboolean autoCreateColumnsFromModel; + jint autoResizeMode; + jint rowHeight; + jint rowMargin; + jboolean rowSelectionAllowed; + jboolean cellSelectionEnabled; + ::javax::swing::table::TableModel * dataModel; + ::javax::swing::table::TableColumnModel * columnModel; + ::javax::swing::ListSelectionModel * selectionModel; + ::javax::swing::table::TableCellEditor * cellEditor; +private: + jboolean dragEnabled; +public: // actually protected + ::java::awt::Color * gridColor; + ::java::awt::Dimension * preferredViewportSize; + ::java::awt::Color * selectionBackground; +private: + static ::java::lang::String * SELECTION_BACKGROUND_CHANGED_PROPERTY; +public: // actually protected + ::java::awt::Color * selectionForeground; +private: + static ::java::lang::String * SELECTION_FOREGROUND_CHANGED_PROPERTY; +public: // actually protected + jboolean showHorizontalLines; + jboolean showVerticalLines; + ::javax::swing::table::JTableHeader * tableHeader; +public: // actually package-private + ::javax::swing::JTable$TableColumnPropertyChangeHandler * tableColumnPropertyChangeHandler; +private: + jboolean surrendersFocusOnKeystroke; + ::java::awt::Rectangle * rectCache; + jboolean clientRowHeightSet; + ::javax::swing::SizeSequence * rowHeights; + ::javax::swing::table::TableCellEditor * booleanInvertingEditor; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTable__ diff --git a/libjava/javax/swing/JTextArea$AccessibleJTextArea.h b/libjava/javax/swing/JTextArea$AccessibleJTextArea.h new file mode 100644 index 00000000000..57d5b20fcf0 --- /dev/null +++ b/libjava/javax/swing/JTextArea$AccessibleJTextArea.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTextArea$AccessibleJTextArea__ +#define __javax_swing_JTextArea$AccessibleJTextArea__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleStateSet; + } + namespace swing + { + class JTextArea; + class JTextArea$AccessibleJTextArea; + } + } +} + +class javax::swing::JTextArea$AccessibleJTextArea : public ::javax::swing::text::JTextComponent$AccessibleJTextComponent +{ + +public: // actually protected + JTextArea$AccessibleJTextArea(::javax::swing::JTextArea *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); +public: // actually package-private + ::javax::swing::JTextArea * __attribute__((aligned(__alignof__( ::javax::swing::text::JTextComponent$AccessibleJTextComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTextArea$AccessibleJTextArea__ diff --git a/libjava/javax/swing/JTextArea.h b/libjava/javax/swing/JTextArea.h new file mode 100644 index 00000000000..c5248b94bb9 --- /dev/null +++ b/libjava/javax/swing/JTextArea.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTextArea__ +#define __javax_swing_JTextArea__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JTextArea; + namespace text + { + class Document; + } + } + } +} + +class javax::swing::JTextArea : public ::javax::swing::text::JTextComponent +{ + +public: + JTextArea(); + JTextArea(::java::lang::String *); + JTextArea(jint, jint); + JTextArea(::java::lang::String *, jint, jint); + JTextArea(::javax::swing::text::Document *); + JTextArea(::javax::swing::text::Document *, ::java::lang::String *, jint, jint); + virtual void append(::java::lang::String *); +public: // actually protected + virtual ::javax::swing::text::Document * createDefaultModel(); +public: + virtual jboolean getScrollableTracksViewportWidth(); + virtual jint getScrollableUnitIncrement(::java::awt::Rectangle *, jint, jint); + virtual ::java::awt::Dimension * getPreferredScrollableViewportSize(); + virtual ::java::lang::String * getUIClassID(); + virtual jint getColumns(); + virtual void setColumns(jint); + virtual jint getRows(); + virtual void setRows(jint); + virtual jboolean getLineWrap(); + virtual void setLineWrap(jboolean); + virtual jboolean getWrapStyleWord(); + virtual void setWrapStyleWord(jboolean); + virtual jint getTabSize(); + virtual void setTabSize(jint); +public: // actually protected + virtual jint getColumnWidth(); +public: + virtual jint getLineCount(); + virtual jint getLineStartOffset(jint); + virtual jint getLineEndOffset(jint); + virtual jint getLineOfOffset(jint); +public: // actually protected + virtual jint getRowHeight(); +public: + virtual void insert(::java::lang::String *, jint); + virtual void replaceRange(::java::lang::String *, jint, jint); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -6141680179310439825LL; + jint __attribute__((aligned(__alignof__( ::javax::swing::text::JTextComponent)))) rows; + jint columns; + jboolean lineWrap; + jint tabSize; + jboolean wrapStyleWord; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTextArea__ diff --git a/libjava/javax/swing/JTextField$1.h b/libjava/javax/swing/JTextField$1.h new file mode 100644 index 00000000000..ca59073a823 --- /dev/null +++ b/libjava/javax/swing/JTextField$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTextField$1__ +#define __javax_swing_JTextField$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JTextField$1; + } + } +} + +class javax::swing::JTextField$1 : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + JTextField$1(::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTextField$1__ diff --git a/libjava/javax/swing/JTextField$2.h b/libjava/javax/swing/JTextField$2.h new file mode 100644 index 00000000000..20129e4bbac --- /dev/null +++ b/libjava/javax/swing/JTextField$2.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTextField$2__ +#define __javax_swing_JTextField$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JTextField; + class JTextField$2; + } + } +} + +class javax::swing::JTextField$2 : public ::java::lang::Object +{ + +public: // actually package-private + JTextField$2(::javax::swing::JTextField *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::JTextField * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTextField$2__ diff --git a/libjava/javax/swing/JTextField$AccessibleJTextField.h b/libjava/javax/swing/JTextField$AccessibleJTextField.h new file mode 100644 index 00000000000..403fcae20e5 --- /dev/null +++ b/libjava/javax/swing/JTextField$AccessibleJTextField.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTextField$AccessibleJTextField__ +#define __javax_swing_JTextField$AccessibleJTextField__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleStateSet; + } + namespace swing + { + class JTextField; + class JTextField$AccessibleJTextField; + } + } +} + +class javax::swing::JTextField$AccessibleJTextField : public ::javax::swing::text::JTextComponent$AccessibleJTextComponent +{ + +public: // actually protected + JTextField$AccessibleJTextField(::javax::swing::JTextField *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); +private: + static const jlong serialVersionUID = 8255147276740453036LL; +public: // actually package-private + ::javax::swing::JTextField * __attribute__((aligned(__alignof__( ::javax::swing::text::JTextComponent$AccessibleJTextComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTextField$AccessibleJTextField__ diff --git a/libjava/javax/swing/JTextField.h b/libjava/javax/swing/JTextField.h new file mode 100644 index 00000000000..de4ed3ab823 --- /dev/null +++ b/libjava/javax/swing/JTextField.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTextField__ +#define __javax_swing_JTextField__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Font; + class Rectangle; + namespace event + { + class ActionListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class BoundedRangeModel; + class JTextField; + namespace text + { + class Document; + } + } + } +} + +class javax::swing::JTextField : public ::javax::swing::text::JTextComponent +{ + +public: + JTextField(); + JTextField(::java::lang::String *); + JTextField(jint); + JTextField(::java::lang::String *, jint); + JTextField(::javax::swing::text::Document *, ::java::lang::String *, jint); +public: // actually protected + virtual ::javax::swing::text::Document * createDefaultModel(); +public: + virtual void setDocument(::javax::swing::text::Document *); + virtual ::java::lang::String * getUIClassID(); + virtual void addActionListener(::java::awt::event::ActionListener *); + virtual void removeActionListener(::java::awt::event::ActionListener *); + virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners(); +public: // actually protected + virtual void fireActionPerformed(); +public: + virtual jint getColumns(); + virtual void setColumns(jint); + virtual jint getHorizontalAlignment(); + virtual void setHorizontalAlignment(jint); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual jint getScrollOffset(); + virtual void setScrollOffset(jint); + virtual JArray< ::javax::swing::Action * > * getActions(); + virtual void postActionEvent(); + virtual ::javax::swing::Action * getAction(); + virtual void setAction(::javax::swing::Action *); + virtual void setActionCommand(::java::lang::String *); +public: // actually protected + virtual ::java::beans::PropertyChangeListener * createActionPropertyChangeListener(::javax::swing::Action *); + virtual void configurePropertiesFromAction(::javax::swing::Action *); + virtual jint getColumnWidth(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::javax::swing::BoundedRangeModel * getHorizontalVisibility(); + virtual jboolean isValidateRoot(); + virtual void scrollRectToVisible(::java::awt::Rectangle *); +private: + static const jlong serialVersionUID = 353853209832607592LL; + static JArray< ::javax::swing::Action * > * actions; +public: + static ::java::lang::String * notifyAction; +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::text::JTextComponent)))) columns; + jint align; + ::javax::swing::Action * action; + ::java::lang::String * actionCommand; + ::java::beans::PropertyChangeListener * actionPropertyChangeListener; + ::javax::swing::BoundedRangeModel * horizontalVisibility; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTextField__ diff --git a/libjava/javax/swing/JTextPane.h b/libjava/javax/swing/JTextPane.h new file mode 100644 index 00000000000..dcc6f7da788 --- /dev/null +++ b/libjava/javax/swing/JTextPane.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTextPane__ +#define __javax_swing_JTextPane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JTextPane; + namespace text + { + class AttributeSet; + class Document; + class EditorKit; + class MutableAttributeSet; + class Style; + class StyledDocument; + class StyledEditorKit; + } + } + } +} + +class javax::swing::JTextPane : public ::javax::swing::JEditorPane +{ + +public: + JTextPane(); + JTextPane(::javax::swing::text::StyledDocument *); + virtual ::java::lang::String * getUIClassID(); + virtual void setDocument(::javax::swing::text::Document *); + virtual ::javax::swing::text::StyledDocument * getStyledDocument(); + virtual void setStyledDocument(::javax::swing::text::StyledDocument *); + virtual void replaceSelection(::java::lang::String *); + virtual void insertComponent(::java::awt::Component *); + virtual void insertIcon(::javax::swing::Icon *); + virtual ::javax::swing::text::Style * addStyle(::java::lang::String *, ::javax::swing::text::Style *); + virtual void removeStyle(::java::lang::String *); + virtual ::javax::swing::text::Style * getStyle(::java::lang::String *); + virtual ::javax::swing::text::Style * getLogicalStyle(); + virtual void setLogicalStyle(::javax::swing::text::Style *); + virtual ::javax::swing::text::AttributeSet * getCharacterAttributes(); + virtual void setCharacterAttributes(::javax::swing::text::AttributeSet *, jboolean); + virtual ::javax::swing::text::AttributeSet * getParagraphAttributes(); + virtual void setParagraphAttributes(::javax::swing::text::AttributeSet *, jboolean); + virtual ::javax::swing::text::MutableAttributeSet * getInputAttributes(); +public: // actually protected + virtual ::javax::swing::text::StyledEditorKit * getStyledEditorKit(); + virtual ::javax::swing::text::EditorKit * createDefaultEditorKit(); +public: + virtual void setEditorKit(::javax::swing::text::EditorKit *); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTextPane__ diff --git a/libjava/javax/swing/JToggleButton$AccessibleJToggleButton.h b/libjava/javax/swing/JToggleButton$AccessibleJToggleButton.h new file mode 100644 index 00000000000..a1f01f3378a --- /dev/null +++ b/libjava/javax/swing/JToggleButton$AccessibleJToggleButton.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToggleButton$AccessibleJToggleButton__ +#define __javax_swing_JToggleButton$AccessibleJToggleButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ItemEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JToggleButton; + class JToggleButton$AccessibleJToggleButton; + } + } +} + +class javax::swing::JToggleButton$AccessibleJToggleButton : public ::javax::swing::AbstractButton$AccessibleAbstractButton +{ + +public: + JToggleButton$AccessibleJToggleButton(::javax::swing::JToggleButton *); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual void itemStateChanged(::java::awt::event::ItemEvent *); +private: + static const jlong serialVersionUID = -8652952712161229225LL; +public: // actually package-private + ::javax::swing::JToggleButton * __attribute__((aligned(__alignof__( ::javax::swing::AbstractButton$AccessibleAbstractButton)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToggleButton$AccessibleJToggleButton__ diff --git a/libjava/javax/swing/JToggleButton$ToggleButtonModel.h b/libjava/javax/swing/JToggleButton$ToggleButtonModel.h new file mode 100644 index 00000000000..a8d3c22595d --- /dev/null +++ b/libjava/javax/swing/JToggleButton$ToggleButtonModel.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToggleButton$ToggleButtonModel__ +#define __javax_swing_JToggleButton$ToggleButtonModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JToggleButton$ToggleButtonModel; + } + } +} + +class javax::swing::JToggleButton$ToggleButtonModel : public ::javax::swing::DefaultButtonModel +{ + +public: + JToggleButton$ToggleButtonModel(); + virtual void setPressed(jboolean); + virtual jboolean isSelected(); + virtual void setSelected(jboolean); +private: + static const jlong serialVersionUID = -1589950750899943974LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToggleButton$ToggleButtonModel__ diff --git a/libjava/javax/swing/JToggleButton.h b/libjava/javax/swing/JToggleButton.h new file mode 100644 index 00000000000..88f281ac5ee --- /dev/null +++ b/libjava/javax/swing/JToggleButton.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToggleButton__ +#define __javax_swing_JToggleButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class Icon; + class JToggleButton; + } + } +} + +class javax::swing::JToggleButton : public ::javax::swing::AbstractButton +{ + +public: + JToggleButton(); + JToggleButton(::javax::swing::Action *); + JToggleButton(::javax::swing::Icon *); + JToggleButton(::javax::swing::Icon *, jboolean); + JToggleButton(::java::lang::String *); + JToggleButton(::java::lang::String *, jboolean); + JToggleButton(::java::lang::String *, ::javax::swing::Icon *); + JToggleButton(::java::lang::String *, ::javax::swing::Icon *, jboolean); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void updateUI(); +private: + static const jlong serialVersionUID = -3128248873429850443LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToggleButton__ diff --git a/libjava/javax/swing/JToolBar$AccessibleJToolBar.h b/libjava/javax/swing/JToolBar$AccessibleJToolBar.h new file mode 100644 index 00000000000..0474a4e9183 --- /dev/null +++ b/libjava/javax/swing/JToolBar$AccessibleJToolBar.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToolBar$AccessibleJToolBar__ +#define __javax_swing_JToolBar$AccessibleJToolBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + class AccessibleStateSet; + } + namespace swing + { + class JToolBar; + class JToolBar$AccessibleJToolBar; + } + } +} + +class javax::swing::JToolBar$AccessibleJToolBar : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JToolBar$AccessibleJToolBar(::javax::swing::JToolBar *); +public: + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = -5516888265903814215LL; +public: // actually package-private + ::javax::swing::JToolBar * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToolBar$AccessibleJToolBar__ diff --git a/libjava/javax/swing/JToolBar$DefaultToolBarLayout.h b/libjava/javax/swing/JToolBar$DefaultToolBarLayout.h new file mode 100644 index 00000000000..ba7d9cc5239 --- /dev/null +++ b/libjava/javax/swing/JToolBar$DefaultToolBarLayout.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToolBar$DefaultToolBarLayout__ +#define __javax_swing_JToolBar$DefaultToolBarLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + class JToolBar; + class JToolBar$DefaultToolBarLayout; + } + } +} + +class javax::swing::JToolBar$DefaultToolBarLayout : public ::java::lang::Object +{ + + JToolBar$DefaultToolBarLayout(::javax::swing::JToolBar *); +public: + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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 *); +public: // actually package-private + JToolBar$DefaultToolBarLayout(::javax::swing::JToolBar *, ::javax::swing::JToolBar$DefaultToolBarLayout *); + ::javax::swing::JToolBar * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToolBar$DefaultToolBarLayout__ diff --git a/libjava/javax/swing/JToolBar$Separator.h b/libjava/javax/swing/JToolBar$Separator.h new file mode 100644 index 00000000000..a30fc4e273a --- /dev/null +++ b/libjava/javax/swing/JToolBar$Separator.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToolBar$Separator__ +#define __javax_swing_JToolBar$Separator__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + } + namespace javax + { + namespace swing + { + class JToolBar$Separator; + } + } +} + +class javax::swing::JToolBar$Separator : public ::javax::swing::JSeparator +{ + +public: + JToolBar$Separator(); + JToolBar$Separator(::java::awt::Dimension *); + virtual ::java::lang::String * getUIClassID(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Dimension * getMaximumSize(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getSeparatorSize(); + virtual void setSeparatorSize(::java::awt::Dimension *); +private: + static const jlong serialVersionUID = -1656745644823105219LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToolBar$Separator__ diff --git a/libjava/javax/swing/JToolBar.h b/libjava/javax/swing/JToolBar.h new file mode 100644 index 00000000000..ea7cd99b27e --- /dev/null +++ b/libjava/javax/swing/JToolBar.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToolBar__ +#define __javax_swing_JToolBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Graphics; + class Insets; + class LayoutManager; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class JButton; + class JToolBar; + namespace plaf + { + class ToolBarUI; + } + } + } +} + +class javax::swing::JToolBar : public ::javax::swing::JComponent +{ + +public: + JToolBar(); + JToolBar(jint); + JToolBar(::java::lang::String *); + JToolBar(::java::lang::String *, jint); + virtual ::javax::swing::JButton * add(::javax::swing::Action *); +public: // actually protected + virtual void paintBorder(::java::awt::Graphics *); +public: + virtual ::javax::swing::plaf::ToolBarUI * getUI(); + virtual void setUI(::javax::swing::plaf::ToolBarUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual void setRollover(jboolean); + virtual jboolean isRollover(); + virtual jint getComponentIndex(::java::awt::Component *); + virtual ::java::awt::Component * getComponentAtIndex(jint); + virtual ::java::awt::Insets * getMargin(); + virtual void setMargin(::java::awt::Insets *); + virtual jboolean isBorderPainted(); + virtual void setBorderPainted(jboolean); + virtual jboolean isFloatable(); + virtual void setFloatable(jboolean); + virtual jint getOrientation(); + virtual void setLayout(::java::awt::LayoutManager *); + virtual void setOrientation(jint); + virtual void addSeparator(); + virtual void addSeparator(::java::awt::Dimension *); +public: // actually protected + virtual ::javax::swing::JButton * createActionComponent(::javax::swing::Action *); + virtual ::java::beans::PropertyChangeListener * createActionChangeListener(::javax::swing::JButton *); + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +private: + static const jlong serialVersionUID = -1269915519555129643LL; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) paintBorder__; + ::java::awt::Insets * margin; + jboolean floatable; + jboolean rollover; + jint orientation; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToolBar__ diff --git a/libjava/javax/swing/JToolTip$AccessibleJToolTip.h b/libjava/javax/swing/JToolTip$AccessibleJToolTip.h new file mode 100644 index 00000000000..f65575e8aac --- /dev/null +++ b/libjava/javax/swing/JToolTip$AccessibleJToolTip.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToolTip$AccessibleJToolTip__ +#define __javax_swing_JToolTip$AccessibleJToolTip__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JToolTip; + class JToolTip$AccessibleJToolTip; + } + } +} + +class javax::swing::JToolTip$AccessibleJToolTip : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JToolTip$AccessibleJToolTip(::javax::swing::JToolTip *); +public: + virtual ::java::lang::String * getAccessibleDescription(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +private: + static const jlong serialVersionUID = -6222548177795408476LL; +public: // actually package-private + ::javax::swing::JToolTip * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToolTip$AccessibleJToolTip__ diff --git a/libjava/javax/swing/JToolTip.h b/libjava/javax/swing/JToolTip.h new file mode 100644 index 00000000000..d622528f066 --- /dev/null +++ b/libjava/javax/swing/JToolTip.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JToolTip__ +#define __javax_swing_JToolTip__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JComponent; + class JToolTip; + namespace plaf + { + class ToolTipUI; + } + } + } +} + +class javax::swing::JToolTip : public ::javax::swing::JComponent +{ + +public: + JToolTip(); + virtual ::java::lang::String * getTipText(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::javax::swing::JComponent * getComponent(); + virtual ::javax::swing::plaf::ToolTipUI * getUI(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual void setComponent(::javax::swing::JComponent *); + virtual void setTipText(::java::lang::String *); + virtual void updateUI(); +public: // actually package-private + virtual jboolean onTop(); +private: + static const jlong serialVersionUID = -1138929898906751643LL; +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) text; + ::javax::swing::JComponent * component; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JToolTip__ diff --git a/libjava/javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode.h b/libjava/javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode.h new file mode 100644 index 00000000000..40d1f977081 --- /dev/null +++ b/libjava/javax/swing/JTree$AccessibleJTree$AccessibleJTreeNode.h @@ -0,0 +1,140 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTree$AccessibleJTree$AccessibleJTreeNode__ +#define __javax_swing_JTree$AccessibleJTree$AccessibleJTreeNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Cursor; + class Dimension; + class Font; + class FontMetrics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleAction; + class AccessibleComponent; + class AccessibleContext; + class AccessibleRole; + class AccessibleSelection; + class AccessibleStateSet; + class AccessibleText; + class AccessibleValue; + } + namespace swing + { + class JTree; + class JTree$AccessibleJTree; + class JTree$AccessibleJTree$AccessibleJTreeNode; + namespace tree + { + class TreeModel; + class TreePath; + } + } + } +} + +class javax::swing::JTree$AccessibleJTree$AccessibleJTreeNode : public ::javax::accessibility::AccessibleContext +{ + +public: + JTree$AccessibleJTree$AccessibleJTreeNode(::javax::swing::JTree$AccessibleJTree *, ::javax::swing::JTree *, ::javax::swing::tree::TreePath *, ::javax::accessibility::Accessible *); + virtual void addAccessibleSelection(jint); + virtual void addFocusListener(::java::awt::event::FocusListener *); + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void clearAccessibleSelection(); + virtual jboolean contains(::java::awt::Point *); + virtual jboolean doAccessibleAction(jint); + virtual ::javax::accessibility::AccessibleAction * getAccessibleAction(); + virtual jint getAccessibleActionCount(); + virtual ::java::lang::String * getAccessibleActionDescription(jint); + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::AccessibleComponent * getAccessibleComponent(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + 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 ::javax::accessibility::AccessibleText * getAccessibleText(); + virtual ::javax::accessibility::AccessibleValue * getAccessibleValue(); + 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(); +public: // actually protected + virtual ::java::awt::Point * getLocationInJTree(); +public: + 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 removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void requestFocus(); + virtual void selectAllAccessibleSelection(); + virtual void setAccessibleDescription(::java::lang::String *); + virtual void setAccessibleName(::java::lang::String *); + 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: + ::javax::swing::JTree * __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) tree; + ::javax::swing::tree::TreePath * tp; + ::javax::accessibility::Accessible * acc; + ::javax::accessibility::AccessibleStateSet * states; + ::java::util::Vector * selectionList; + ::java::util::Vector * actionList; + ::javax::swing::tree::TreeModel * mod; + ::java::awt::Cursor * cursor; +public: // actually package-private + ::javax::swing::JTree$AccessibleJTree * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTree$AccessibleJTree$AccessibleJTreeNode__ diff --git a/libjava/javax/swing/JTree$AccessibleJTree.h b/libjava/javax/swing/JTree$AccessibleJTree.h new file mode 100644 index 00000000000..e4b60e1e167 --- /dev/null +++ b/libjava/javax/swing/JTree$AccessibleJTree.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTree$AccessibleJTree__ +#define __javax_swing_JTree$AccessibleJTree__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + class AccessibleSelection; + } + namespace swing + { + class JTree; + class JTree$AccessibleJTree; + namespace event + { + class TreeExpansionEvent; + class TreeModelEvent; + class TreeSelectionEvent; + } + } + } +} + +class javax::swing::JTree$AccessibleJTree : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: + JTree$AccessibleJTree(::javax::swing::JTree *); + virtual void addAccessibleSelection(jint); + virtual void clearAccessibleSelection(); + virtual void fireVisibleDataPropertyChange(); + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual jint getAccessibleChildrenCount(); + virtual jint getAccessibleIndexInParent(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection(); + virtual ::javax::accessibility::Accessible * getAccessibleSelection(jint); + virtual jint getAccessibleSelectionCount(); + virtual jboolean isAccessibleChildSelected(jint); + virtual void removeAccessibleSelection(jint); + virtual void selectAllAccessibleSelection(); + virtual void treeCollapsed(::javax::swing::event::TreeExpansionEvent *); + virtual void treeExpanded(::javax::swing::event::TreeExpansionEvent *); + virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *); + virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *); + virtual void valueChanged(::javax::swing::event::TreeSelectionEvent *); +public: // actually package-private + static ::javax::swing::JTree * access$0(::javax::swing::JTree$AccessibleJTree *); + ::javax::swing::JTree * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTree$AccessibleJTree__ diff --git a/libjava/javax/swing/JTree$DynamicUtilTreeNode.h b/libjava/javax/swing/JTree$DynamicUtilTreeNode.h new file mode 100644 index 00000000000..0d658dd371e --- /dev/null +++ b/libjava/javax/swing/JTree$DynamicUtilTreeNode.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTree$DynamicUtilTreeNode__ +#define __javax_swing_JTree$DynamicUtilTreeNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTree$DynamicUtilTreeNode; + namespace tree + { + class DefaultMutableTreeNode; + class TreeNode; + } + } + } +} + +class javax::swing::JTree$DynamicUtilTreeNode : public ::javax::swing::tree::DefaultMutableTreeNode +{ + +public: + JTree$DynamicUtilTreeNode(::java::lang::Object *, ::java::lang::Object *); + virtual jint getChildCount(); +public: // actually protected + virtual void loadChildren(); +public: + virtual ::java::util::Enumeration * children(); + virtual ::javax::swing::tree::TreeNode * getChildAt(jint); + virtual jboolean isLeaf(); + static void createChildren(::javax::swing::tree::DefaultMutableTreeNode *, ::java::lang::Object *); +public: // actually protected + ::java::lang::Object * __attribute__((aligned(__alignof__( ::javax::swing::tree::DefaultMutableTreeNode)))) childValue; + jboolean loadedChildren; + jboolean hasChildren; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTree$DynamicUtilTreeNode__ diff --git a/libjava/javax/swing/JTree$EmptySelectionModel.h b/libjava/javax/swing/JTree$EmptySelectionModel.h new file mode 100644 index 00000000000..bafe35f2d7e --- /dev/null +++ b/libjava/javax/swing/JTree$EmptySelectionModel.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTree$EmptySelectionModel__ +#define __javax_swing_JTree$EmptySelectionModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTree$EmptySelectionModel; + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::JTree$EmptySelectionModel : public ::javax::swing::tree::DefaultTreeSelectionModel +{ + +public: // actually protected + JTree$EmptySelectionModel(); +public: + static ::javax::swing::JTree$EmptySelectionModel * sharedInstance(); + virtual void setSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); + virtual void addSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); + virtual void removeSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); +private: + static const jlong serialVersionUID = -5815023306225701477LL; +public: // actually protected + static ::javax::swing::JTree$EmptySelectionModel * sharedInstance__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTree$EmptySelectionModel__ diff --git a/libjava/javax/swing/JTree$TreeModelHandler.h b/libjava/javax/swing/JTree$TreeModelHandler.h new file mode 100644 index 00000000000..3fc8f654993 --- /dev/null +++ b/libjava/javax/swing/JTree$TreeModelHandler.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTree$TreeModelHandler__ +#define __javax_swing_JTree$TreeModelHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTree; + class JTree$TreeModelHandler; + namespace event + { + class TreeModelEvent; + } + } + } +} + +class javax::swing::JTree$TreeModelHandler : public ::java::lang::Object +{ + +public: // actually protected + JTree$TreeModelHandler(::javax::swing::JTree *); +public: + virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *); + virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *); +public: // actually package-private + ::javax::swing::JTree * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTree$TreeModelHandler__ diff --git a/libjava/javax/swing/JTree$TreeSelectionRedirector.h b/libjava/javax/swing/JTree$TreeSelectionRedirector.h new file mode 100644 index 00000000000..a7a1a6e65bd --- /dev/null +++ b/libjava/javax/swing/JTree$TreeSelectionRedirector.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTree$TreeSelectionRedirector__ +#define __javax_swing_JTree$TreeSelectionRedirector__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JTree; + class JTree$TreeSelectionRedirector; + namespace event + { + class TreeSelectionEvent; + } + } + } +} + +class javax::swing::JTree$TreeSelectionRedirector : public ::java::lang::Object +{ + +public: // actually protected + JTree$TreeSelectionRedirector(::javax::swing::JTree *); +public: + virtual void valueChanged(::javax::swing::event::TreeSelectionEvent *); +private: + static const jlong serialVersionUID = -3505069663646241664LL; +public: // actually package-private + ::javax::swing::JTree * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTree$TreeSelectionRedirector__ diff --git a/libjava/javax/swing/JTree.h b/libjava/javax/swing/JTree.h new file mode 100644 index 00000000000..c9e66df2cb0 --- /dev/null +++ b/libjava/javax/swing/JTree.h @@ -0,0 +1,270 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JTree__ +#define __javax_swing_JTree__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JTree; + class JTree$TreeSelectionRedirector; + namespace event + { + class TreeExpansionListener; + class TreeModelListener; + class TreeSelectionEvent; + class TreeSelectionListener; + class TreeWillExpandListener; + } + namespace plaf + { + class TreeUI; + } + namespace text + { + class Position$Bias; + } + namespace tree + { + class TreeCellEditor; + class TreeCellRenderer; + class TreeModel; + class TreeNode; + class TreePath; + class TreeSelectionModel; + } + } + } +} + +class javax::swing::JTree : public ::javax::swing::JComponent +{ + +public: + JTree(); + JTree(::java::util::Hashtable *); + JTree(JArray< ::java::lang::Object * > *); + JTree(::javax::swing::tree::TreeModel *); + JTree(::javax::swing::tree::TreeNode *); + JTree(::javax::swing::tree::TreeNode *, jboolean); + JTree(::java::util::Vector *); + virtual jint getRowForPath(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getPathForRow(jint); +public: // actually protected + virtual JArray< ::javax::swing::tree::TreePath * > * getPathBetweenRows(jint, jint); + static ::javax::swing::tree::TreeModel * createTreeModel(::java::lang::Object *); +public: + virtual ::javax::swing::plaf::TreeUI * getUI(); + virtual void setUI(::javax::swing::plaf::TreeUI *); + virtual void updateUI(); + virtual ::java::lang::String * getUIClassID(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::awt::Dimension * getPreferredScrollableViewportSize(); + virtual jint getScrollableUnitIncrement(::java::awt::Rectangle *, jint, jint); + virtual jint getScrollableBlockIncrement(::java::awt::Rectangle *, jint, jint); + virtual jboolean getScrollableTracksViewportHeight(); + virtual jboolean getScrollableTracksViewportWidth(); + virtual void addTreeExpansionListener(::javax::swing::event::TreeExpansionListener *); + virtual void removeTreeExpansionListener(::javax::swing::event::TreeExpansionListener *); + virtual JArray< ::javax::swing::event::TreeExpansionListener * > * getTreeExpansionListeners(); + virtual void fireTreeCollapsed(::javax::swing::tree::TreePath *); + virtual void fireTreeExpanded(::javax::swing::tree::TreePath *); + virtual void addTreeSelectionListener(::javax::swing::event::TreeSelectionListener *); + virtual void removeTreeSelectionListener(::javax::swing::event::TreeSelectionListener *); + virtual JArray< ::javax::swing::event::TreeSelectionListener * > * getTreeSelectionListeners(); +public: // actually protected + virtual void fireValueChanged(::javax::swing::event::TreeSelectionEvent *); +public: + virtual void addTreeWillExpandListener(::javax::swing::event::TreeWillExpandListener *); + virtual void removeTreeWillExpandListener(::javax::swing::event::TreeWillExpandListener *); + virtual JArray< ::javax::swing::event::TreeWillExpandListener * > * getTreeWillExpandListeners(); + virtual void fireTreeWillCollapse(::javax::swing::tree::TreePath *); + virtual void fireTreeWillExpand(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreeModel * getModel(); + virtual void setModel(::javax::swing::tree::TreeModel *); + virtual jboolean isEditable(); + virtual void setEditable(jboolean); + virtual jboolean isRootVisible(); + virtual void setRootVisible(jboolean); + virtual jboolean getShowsRootHandles(); + virtual void setShowsRootHandles(jboolean); + virtual ::javax::swing::tree::TreeCellEditor * getCellEditor(); + virtual void setCellEditor(::javax::swing::tree::TreeCellEditor *); + virtual ::javax::swing::tree::TreeCellRenderer * getCellRenderer(); + virtual void setCellRenderer(::javax::swing::tree::TreeCellRenderer *); + virtual ::javax::swing::tree::TreeSelectionModel * getSelectionModel(); + virtual void setSelectionModel(::javax::swing::tree::TreeSelectionModel *); + virtual jint getVisibleRowCount(); + virtual void setVisibleRowCount(jint); + virtual jboolean isLargeModel(); + virtual void setLargeModel(jboolean); + virtual jint getRowHeight(); + virtual void setRowHeight(jint); + virtual jboolean isFixedRowHeight(); + virtual jboolean getInvokesStopCellEditing(); + virtual void setInvokesStopCellEditing(jboolean); + virtual jint getToggleClickCount(); + virtual void setToggleClickCount(jint); + virtual void scrollPathToVisible(::javax::swing::tree::TreePath *); + virtual void scrollRowToVisible(jint); + virtual jboolean getScrollsOnExpand(); + virtual void setScrollsOnExpand(jboolean); + virtual void setSelectionPath(::javax::swing::tree::TreePath *); + virtual void setSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); +private: + void clearSelectionPathStates(); +public: + virtual void setSelectionRow(jint); + virtual void setSelectionRows(JArray< jint > *); + virtual void setSelectionInterval(jint, jint); + virtual void addSelectionPath(::javax::swing::tree::TreePath *); + virtual void addSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); + virtual void addSelectionRow(jint); + virtual void addSelectionRows(JArray< jint > *); + virtual void addSelectionInterval(jint, jint); + virtual void removeSelectionPath(::javax::swing::tree::TreePath *); + virtual void removeSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); + virtual void removeSelectionRow(jint); + virtual void removeSelectionRows(JArray< jint > *); + virtual void removeSelectionInterval(jint, jint); + virtual void clearSelection(); + virtual ::javax::swing::tree::TreePath * getLeadSelectionPath(); + virtual void setLeadSelectionPath(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getAnchorSelectionPath(); + virtual void setAnchorSelectionPath(::javax::swing::tree::TreePath *); + virtual jint getLeadSelectionRow(); + virtual jint getMaxSelectionRow(); + virtual jint getMinSelectionRow(); + virtual jint getSelectionCount(); + virtual ::javax::swing::tree::TreePath * getSelectionPath(); + virtual JArray< ::javax::swing::tree::TreePath * > * getSelectionPaths(); + virtual JArray< jint > * getSelectionRows(); + virtual jboolean isPathSelected(::javax::swing::tree::TreePath *); + virtual jboolean isRowSelected(jint); + virtual jboolean isSelectionEmpty(); + virtual jboolean getDragEnabled(); + virtual void setDragEnabled(jboolean); + virtual jint getRowCount(); + virtual void collapsePath(::javax::swing::tree::TreePath *); + virtual void collapseRow(jint); + virtual void expandPath(::javax::swing::tree::TreePath *); + virtual void expandRow(jint); + virtual jboolean isCollapsed(::javax::swing::tree::TreePath *); + virtual jboolean isCollapsed(jint); + virtual jboolean isExpanded(::javax::swing::tree::TreePath *); + virtual jboolean isExpanded(jint); + virtual jboolean getExpandsSelectedPaths(); + virtual void setExpandsSelectedPaths(jboolean); + virtual ::java::awt::Rectangle * getPathBounds(::javax::swing::tree::TreePath *); + virtual ::java::awt::Rectangle * getRowBounds(jint); + virtual jboolean isEditing(); + virtual jboolean stopEditing(); + virtual void cancelEditing(); + virtual void startEditingAtPath(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getEditingPath(); + virtual ::javax::swing::tree::TreePath * getPathForLocation(jint, jint); + virtual jint getRowForLocation(jint, jint); + virtual ::javax::swing::tree::TreePath * getClosestPathForLocation(jint, jint); + virtual jint getClosestRowForLocation(jint, jint); + virtual ::java::lang::Object * getLastSelectedPathComponent(); +private: + void doExpandParents(::javax::swing::tree::TreePath *, jboolean); +public: // actually protected + virtual void setExpandedState(::javax::swing::tree::TreePath *, jboolean); + virtual void clearToggledPaths(); + virtual ::java::util::Enumeration * getDescendantToggledPaths(::javax::swing::tree::TreePath *); +public: + virtual jboolean hasBeenExpanded(::javax::swing::tree::TreePath *); + virtual jboolean isVisible(::javax::swing::tree::TreePath *); + virtual void makeVisible(::javax::swing::tree::TreePath *); + virtual jboolean isPathEditable(::javax::swing::tree::TreePath *); +public: // actually protected + virtual ::javax::swing::event::TreeModelListener * createTreeModelListener(); + static ::javax::swing::tree::TreeModel * getDefaultTreeModel(); +public: + virtual ::java::lang::String * convertValueToText(::java::lang::Object *, jboolean, jboolean, jboolean, jint, jboolean); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::java::util::Enumeration * getExpandedDescendants(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getNextMatch(::java::lang::String *, jint, ::javax::swing::text::Position$Bias *); +public: // actually protected + virtual jboolean removeDescendantSelectedPaths(::javax::swing::tree::TreePath *, jboolean); + virtual void removeDescendantToggledPaths(::java::util::Enumeration *); +public: + virtual void treeDidChange(); +public: // actually package-private + virtual void setUIProperty(::java::lang::String *, ::java::lang::Object *); +private: + static const jlong serialVersionUID = 7559816092864483649LL; +public: + static ::java::lang::String * CELL_EDITOR_PROPERTY; + static ::java::lang::String * CELL_RENDERER_PROPERTY; + static ::java::lang::String * EDITABLE_PROPERTY; + static ::java::lang::String * INVOKES_STOP_CELL_EDITING_PROPERTY; + static ::java::lang::String * LARGE_MODEL_PROPERTY; + static ::java::lang::String * ROOT_VISIBLE_PROPERTY; + static ::java::lang::String * ROW_HEIGHT_PROPERTY; + static ::java::lang::String * SCROLLS_ON_EXPAND_PROPERTY; + static ::java::lang::String * SELECTION_MODEL_PROPERTY; + static ::java::lang::String * SHOWS_ROOT_HANDLES_PROPERTY; + static ::java::lang::String * TOGGLE_CLICK_COUNT_PROPERTY; + static ::java::lang::String * TREE_MODEL_PROPERTY; + static ::java::lang::String * VISIBLE_ROW_COUNT_PROPERTY; + static ::java::lang::String * ANCHOR_SELECTION_PATH_PROPERTY; + static ::java::lang::String * LEAD_SELECTION_PATH_PROPERTY; + static ::java::lang::String * EXPANDS_SELECTED_PATHS_PROPERTY; +private: + static ::java::lang::Object * EXPANDED; + static ::java::lang::Object * COLLAPSED; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) dragEnabled; + jboolean expandsSelectedPaths; + ::javax::swing::tree::TreePath * anchorSelectionPath; +public: // actually package-private + ::java::util::Hashtable * nodeStates; +public: // actually protected + ::javax::swing::tree::TreeCellEditor * cellEditor; + ::javax::swing::tree::TreeCellRenderer * cellRenderer; + jboolean editable; + jboolean invokesStopCellEditing; + jboolean largeModel; + jboolean rootVisible; + jint rowHeight; + jboolean scrollsOnExpand; + ::javax::swing::tree::TreeSelectionModel * selectionModel; + jboolean showsRootHandles; + jint toggleClickCount; + ::javax::swing::tree::TreeModel * treeModel; + jint visibleRowCount; + ::javax::swing::event::TreeModelListener * treeModelListener; + ::javax::swing::JTree$TreeSelectionRedirector * selectionRedirector; +private: + jboolean clientRowHeightSet; + jboolean clientScrollsOnExpandSet; + jboolean clientShowsRootHandlesSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JTree__ diff --git a/libjava/javax/swing/JViewport$AccessibleJViewport.h b/libjava/javax/swing/JViewport$AccessibleJViewport.h new file mode 100644 index 00000000000..bccdb7f29b1 --- /dev/null +++ b/libjava/javax/swing/JViewport$AccessibleJViewport.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JViewport$AccessibleJViewport__ +#define __javax_swing_JViewport$AccessibleJViewport__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace accessibility + { + class AccessibleRole; + } + namespace swing + { + class JViewport; + class JViewport$AccessibleJViewport; + } + } +} + +class javax::swing::JViewport$AccessibleJViewport : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JViewport$AccessibleJViewport(::javax::swing::JViewport *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); +public: // actually package-private + ::javax::swing::JViewport * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JViewport$AccessibleJViewport__ diff --git a/libjava/javax/swing/JViewport$ViewListener.h b/libjava/javax/swing/JViewport$ViewListener.h new file mode 100644 index 00000000000..a7de943b699 --- /dev/null +++ b/libjava/javax/swing/JViewport$ViewListener.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JViewport$ViewListener__ +#define __javax_swing_JViewport$ViewListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ComponentEvent; + } + } + } + namespace javax + { + namespace swing + { + class JViewport; + class JViewport$ViewListener; + } + } +} + +class javax::swing::JViewport$ViewListener : public ::java::awt::event::ComponentAdapter +{ + +public: // actually protected + JViewport$ViewListener(::javax::swing::JViewport *); +public: + virtual void componentResized(::java::awt::event::ComponentEvent *); +private: + static const jlong serialVersionUID = -2812489404285958070LL; +public: // actually package-private + ::javax::swing::JViewport * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JViewport$ViewListener__ diff --git a/libjava/javax/swing/JViewport.h b/libjava/javax/swing/JViewport.h new file mode 100644 index 00000000000..0ac6b8fbddc --- /dev/null +++ b/libjava/javax/swing/JViewport.h @@ -0,0 +1,132 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JViewport__ +#define __javax_swing_JViewport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Graphics; + class Image; + class Insets; + class LayoutManager; + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JViewport; + class JViewport$ViewListener; + namespace border + { + class Border; + } + namespace event + { + class ChangeEvent; + class ChangeListener; + } + namespace plaf + { + class ViewportUI; + } + } + } +} + +class javax::swing::JViewport : public ::javax::swing::JComponent +{ + +public: + JViewport(); + virtual ::java::awt::Dimension * getExtentSize(); + virtual ::java::awt::Dimension * toViewCoordinates(::java::awt::Dimension *); + virtual ::java::awt::Point * toViewCoordinates(::java::awt::Point *); + virtual void setExtentSize(::java::awt::Dimension *); + virtual ::java::awt::Dimension * getViewSize(); + virtual void setViewSize(::java::awt::Dimension *); + virtual ::java::awt::Point * getViewPosition(); + virtual void setViewPosition(::java::awt::Point *); + virtual ::java::awt::Rectangle * getViewRect(); + virtual jboolean isBackingStoreEnabled(); + virtual void setBackingStoreEnabled(jboolean); + virtual void setScrollMode(jint); + virtual jint getScrollMode(); + virtual ::java::awt::Component * getView(); + virtual void setView(::java::awt::Component *); + virtual void reshape(jint, jint, jint, jint); + virtual ::java::awt::Insets * getInsets(); + virtual ::java::awt::Insets * getInsets(::java::awt::Insets *); + virtual jboolean isOptimizedDrawingEnabled(); + virtual void paint(::java::awt::Graphics *); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); + virtual ::java::lang::String * getUIClassID(); + virtual void updateUI(); + virtual ::javax::swing::plaf::ViewportUI * getUI(); + virtual void setUI(::javax::swing::plaf::ViewportUI *); + virtual void setBorder(::javax::swing::border::Border *); + virtual void scrollRectToVisible(::java::awt::Rectangle *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual void repaint(jlong, jint, jint, jint, jint); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); + virtual void fireStateChanged(); + virtual ::javax::swing::JViewport$ViewListener * createViewListener(); + virtual ::java::awt::LayoutManager * createLayoutManager(); + virtual jboolean computeBlit(jint, jint, ::java::awt::Point *, ::java::awt::Point *, ::java::awt::Dimension *, ::java::awt::Rectangle *); +public: // actually package-private + virtual void paintSimple(::java::awt::Graphics *); + virtual void paintBackingStore(::java::awt::Graphics *); + virtual void paintBlit(::java::awt::Graphics *); + virtual void paintImmediately2(jint, jint, jint, jint); + virtual jboolean isPaintRoot(); +public: + static const jint SIMPLE_SCROLL_MODE = 0; + static const jint BLIT_SCROLL_MODE = 1; + static const jint BACKINGSTORE_SCROLL_MODE = 2; +private: + static const jlong serialVersionUID = -6925142919680527970LL; + static jint defaultScrollMode; +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) scrollUnderway; + jboolean isViewSizeSet; + jboolean backingStore; + ::java::awt::Image * backingStoreImage; + ::java::awt::Point * lastPaintPosition; +public: // actually package-private + ::javax::swing::event::ChangeEvent * changeEvent; + jint scrollMode; + ::javax::swing::JViewport$ViewListener * viewListener; + ::java::awt::Point * cachedBlitFrom; + ::java::awt::Point * cachedBlitTo; + ::java::awt::Dimension * cachedBlitSize; + ::java::awt::Rectangle * cachedBlitPaint; + jboolean damaged; + jboolean sizeChanged; +private: + jboolean isPaintRoot__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JViewport__ diff --git a/libjava/javax/swing/JWindow$AccessibleJWindow.h b/libjava/javax/swing/JWindow$AccessibleJWindow.h new file mode 100644 index 00000000000..f7aa58a2b9b --- /dev/null +++ b/libjava/javax/swing/JWindow$AccessibleJWindow.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JWindow$AccessibleJWindow__ +#define __javax_swing_JWindow$AccessibleJWindow__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JWindow; + class JWindow$AccessibleJWindow; + } + } +} + +class javax::swing::JWindow$AccessibleJWindow : public ::java::awt::Window$AccessibleAWTWindow +{ + +public: // actually protected + JWindow$AccessibleJWindow(::javax::swing::JWindow *); +public: // actually package-private + ::javax::swing::JWindow * __attribute__((aligned(__alignof__( ::java::awt::Window$AccessibleAWTWindow)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JWindow$AccessibleJWindow__ diff --git a/libjava/javax/swing/JWindow.h b/libjava/javax/swing/JWindow.h new file mode 100644 index 00000000000..89a7ebab7d0 --- /dev/null +++ b/libjava/javax/swing/JWindow.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_JWindow__ +#define __javax_swing_JWindow__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class Frame; + class Graphics; + class GraphicsConfiguration; + class LayoutManager; + class Window; + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JLayeredPane; + class JRootPane; + class JWindow; + } + } +} + +class javax::swing::JWindow : public ::java::awt::Window +{ + +public: + JWindow(); + JWindow(::java::awt::GraphicsConfiguration *); + JWindow(::java::awt::Frame *); + JWindow(::java::awt::Window *); + JWindow(::java::awt::Window *, ::java::awt::GraphicsConfiguration *); +public: // actually protected + virtual void windowInit(); +public: + virtual ::java::awt::Dimension * getPreferredSize(); + virtual void setLayout(::java::awt::LayoutManager *); + virtual void setLayeredPane(::javax::swing::JLayeredPane *); + virtual ::javax::swing::JLayeredPane * getLayeredPane(); + virtual ::javax::swing::JRootPane * getRootPane(); +public: // actually protected + virtual void setRootPane(::javax::swing::JRootPane *); + virtual ::javax::swing::JRootPane * createRootPane(); +public: + virtual ::java::awt::Container * getContentPane(); + virtual void setContentPane(::java::awt::Container *); + virtual ::java::awt::Component * getGlassPane(); + virtual void setGlassPane(::java::awt::Component *); +public: // actually protected + virtual void addImpl(::java::awt::Component *, ::java::lang::Object *, jint); +public: + virtual void remove(::java::awt::Component *); +public: // actually protected + virtual jboolean isRootPaneCheckingEnabled(); + virtual void setRootPaneCheckingEnabled(jboolean); +public: + virtual void update(::java::awt::Graphics *); +public: // actually protected + virtual void processKeyEvent(::java::awt::event::KeyEvent *); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +public: // actually protected + virtual ::java::lang::String * paramString(); +private: + static const jlong serialVersionUID = 5420698392125238833LL; +public: // actually protected + ::javax::swing::JRootPane * __attribute__((aligned(__alignof__( ::java::awt::Window)))) rootPane; + jboolean rootPaneCheckingEnabled; + ::javax::accessibility::AccessibleContext * accessibleContext; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_JWindow__ diff --git a/libjava/javax/swing/KeyStroke.h b/libjava/javax/swing/KeyStroke.h new file mode 100644 index 00000000000..640225608dc --- /dev/null +++ b/libjava/javax/swing/KeyStroke.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_KeyStroke__ +#define __javax_swing_KeyStroke__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace swing + { + class KeyStroke; + } + } +} + +class javax::swing::KeyStroke : public ::java::awt::AWTKeyStroke +{ + + KeyStroke(); + KeyStroke(jchar, jint, jint, jboolean); +public: + static ::javax::swing::KeyStroke * getKeyStroke(jchar); + static ::javax::swing::KeyStroke * getKeyStroke(jchar, jboolean); + static ::javax::swing::KeyStroke * getKeyStroke(::java::lang::Character *, jint); + static ::javax::swing::KeyStroke * getKeyStroke(jint, jint, jboolean); + static ::javax::swing::KeyStroke * getKeyStroke(jint, jint); + static ::javax::swing::KeyStroke * getKeyStroke(::java::lang::String *); + static ::javax::swing::KeyStroke * getKeyStrokeForEvent(::java::awt::event::KeyEvent *); +private: + static const jlong serialVersionUID = -9060180771037902530LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_KeyStroke__ diff --git a/libjava/javax/swing/KeyboardManager.h b/libjava/javax/swing/KeyboardManager.h new file mode 100644 index 00000000000..28679e6c28c --- /dev/null +++ b/libjava/javax/swing/KeyboardManager.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_KeyboardManager__ +#define __javax_swing_KeyboardManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace swing + { + class ComponentInputMap; + class JComponent; + class JMenuBar; + class KeyStroke; + class KeyboardManager; + } + } +} + +class javax::swing::KeyboardManager : public ::java::lang::Object +{ + +public: // actually package-private + KeyboardManager(); +public: + static ::javax::swing::KeyboardManager * getManager(); +public: // actually package-private + static ::java::awt::Container * findTopLevel(::java::awt::Component *); + virtual ::java::util::Hashtable * getHashtableForTopLevel(::java::awt::Container *); +public: + virtual void registerBinding(::javax::swing::JComponent *, ::javax::swing::KeyStroke *); + virtual void clearBindingsForComp(::javax::swing::JComponent *); + virtual void registerEntireMap(::javax::swing::ComponentInputMap *); + virtual jboolean processKeyStroke(::java::awt::Component *, ::javax::swing::KeyStroke *, ::java::awt::event::KeyEvent *); +public: // actually package-private + virtual ::java::util::Vector * getVectorForTopLevel(::java::awt::Container *); +public: + virtual void registerJMenuBar(::javax::swing::JMenuBar *); + virtual void unregisterJMenuBar(::javax::swing::JMenuBar *); +public: // actually package-private + static ::javax::swing::KeyboardManager * manager; + ::java::util::WeakHashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) topLevelLookup; + ::java::util::Hashtable * menuBarLookup; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_KeyboardManager__ diff --git a/libjava/javax/swing/LayoutFocusTraversalPolicy$LayoutComparator.h b/libjava/javax/swing/LayoutFocusTraversalPolicy$LayoutComparator.h new file mode 100644 index 00000000000..5687b1fb258 --- /dev/null +++ b/libjava/javax/swing/LayoutFocusTraversalPolicy$LayoutComparator.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_LayoutFocusTraversalPolicy$LayoutComparator__ +#define __javax_swing_LayoutFocusTraversalPolicy$LayoutComparator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class LayoutFocusTraversalPolicy$LayoutComparator; + } + } +} + +class javax::swing::LayoutFocusTraversalPolicy$LayoutComparator : public ::java::lang::Object +{ + +public: + LayoutFocusTraversalPolicy$LayoutComparator(); + virtual jint compare(::java::lang::Object *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_LayoutFocusTraversalPolicy$LayoutComparator__ diff --git a/libjava/javax/swing/LayoutFocusTraversalPolicy.h b/libjava/javax/swing/LayoutFocusTraversalPolicy.h new file mode 100644 index 00000000000..29883c2217c --- /dev/null +++ b/libjava/javax/swing/LayoutFocusTraversalPolicy.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_LayoutFocusTraversalPolicy__ +#define __javax_swing_LayoutFocusTraversalPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class LayoutFocusTraversalPolicy; + } + } +} + +class javax::swing::LayoutFocusTraversalPolicy : public ::javax::swing::SortingFocusTraversalPolicy +{ + +public: + LayoutFocusTraversalPolicy(); +private: + static const jlong serialVersionUID = 4312146927238881442LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_LayoutFocusTraversalPolicy__ diff --git a/libjava/javax/swing/ListCellRenderer.h b/libjava/javax/swing/ListCellRenderer.h new file mode 100644 index 00000000000..324a2184857 --- /dev/null +++ b/libjava/javax/swing/ListCellRenderer.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ListCellRenderer__ +#define __javax_swing_ListCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JList; + class ListCellRenderer; + } + } +} + +class javax::swing::ListCellRenderer : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Component * getListCellRendererComponent(::javax::swing::JList *, ::java::lang::Object *, jint, jboolean, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_ListCellRenderer__ diff --git a/libjava/javax/swing/ListModel.h b/libjava/javax/swing/ListModel.h new file mode 100644 index 00000000000..73f268f7e67 --- /dev/null +++ b/libjava/javax/swing/ListModel.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ListModel__ +#define __javax_swing_ListModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ListModel; + namespace event + { + class ListDataListener; + } + } + } +} + +class javax::swing::ListModel : public ::java::lang::Object +{ + +public: + virtual jint getSize() = 0; + virtual ::java::lang::Object * getElementAt(jint) = 0; + virtual void addListDataListener(::javax::swing::event::ListDataListener *) = 0; + virtual void removeListDataListener(::javax::swing::event::ListDataListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_ListModel__ diff --git a/libjava/javax/swing/ListSelectionModel.h b/libjava/javax/swing/ListSelectionModel.h new file mode 100644 index 00000000000..d7c7363cf12 --- /dev/null +++ b/libjava/javax/swing/ListSelectionModel.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ListSelectionModel__ +#define __javax_swing_ListSelectionModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ListSelectionModel; + namespace event + { + class ListSelectionListener; + } + } + } +} + +class javax::swing::ListSelectionModel : public ::java::lang::Object +{ + +public: + virtual void setSelectionMode(jint) = 0; + virtual jint getSelectionMode() = 0; + virtual void clearSelection() = 0; + virtual jint getMinSelectionIndex() = 0; + virtual jint getMaxSelectionIndex() = 0; + virtual jboolean isSelectedIndex(jint) = 0; + virtual jboolean isSelectionEmpty() = 0; + virtual void setSelectionInterval(jint, jint) = 0; + virtual void addSelectionInterval(jint, jint) = 0; + virtual void removeSelectionInterval(jint, jint) = 0; + virtual void insertIndexInterval(jint, jint, jboolean) = 0; + virtual void removeIndexInterval(jint, jint) = 0; + virtual jint getAnchorSelectionIndex() = 0; + virtual void setAnchorSelectionIndex(jint) = 0; + virtual jint getLeadSelectionIndex() = 0; + virtual void setLeadSelectionIndex(jint) = 0; + virtual void setValueIsAdjusting(jboolean) = 0; + virtual jboolean getValueIsAdjusting() = 0; + virtual void addListSelectionListener(::javax::swing::event::ListSelectionListener *) = 0; + virtual void removeListSelectionListener(::javax::swing::event::ListSelectionListener *) = 0; + static const jint SINGLE_SELECTION = 0; + static const jint SINGLE_INTERVAL_SELECTION = 1; + static const jint MULTIPLE_INTERVAL_SELECTION = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_ListSelectionModel__ diff --git a/libjava/javax/swing/LookAndFeel$1.h b/libjava/javax/swing/LookAndFeel$1.h new file mode 100644 index 00000000000..22987e5ec0f --- /dev/null +++ b/libjava/javax/swing/LookAndFeel$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_LookAndFeel$1__ +#define __javax_swing_LookAndFeel$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + class LookAndFeel$1; + class UIDefaults; + } + } +} + +class javax::swing::LookAndFeel$1 : public ::java::lang::Object +{ + +public: // actually package-private + LookAndFeel$1(::java::net::URL *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +private: + ::java::net::URL * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$file; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_LookAndFeel$1__ diff --git a/libjava/javax/swing/LookAndFeel.h b/libjava/javax/swing/LookAndFeel.h new file mode 100644 index 00000000000..1a1fd217760 --- /dev/null +++ b/libjava/javax/swing/LookAndFeel.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_LookAndFeel__ +#define __javax_swing_LookAndFeel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class ComponentInputMap; + class InputMap; + class JComponent; + class LookAndFeel; + class UIDefaults; + namespace text + { + class JTextComponent$KeyBinding; + } + } + } +} + +class javax::swing::LookAndFeel : public ::java::lang::Object +{ + +public: + LookAndFeel(); + virtual ::javax::swing::UIDefaults * getDefaults(); + virtual ::java::lang::String * getDescription() = 0; + static ::java::lang::Object * getDesktopPropertyValue(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::String * getID() = 0; + virtual ::java::lang::String * getName() = 0; + virtual jboolean getSupportsWindowDecorations(); + virtual void initialize(); + static void installBorder(::javax::swing::JComponent *, ::java::lang::String *); + static void installColors(::javax::swing::JComponent *, ::java::lang::String *, ::java::lang::String *); + static void installColorsAndFont(::javax::swing::JComponent *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual jboolean isNativeLookAndFeel() = 0; + virtual jboolean isSupportedLookAndFeel() = 0; + static void loadKeyBindings(::javax::swing::InputMap *, JArray< ::java::lang::Object * > *); + static ::javax::swing::ComponentInputMap * makeComponentInputMap(::javax::swing::JComponent *, JArray< ::java::lang::Object * > *); + static ::java::lang::Object * makeIcon(::java::lang::Class *, ::java::lang::String *); + static ::javax::swing::InputMap * makeInputMap(JArray< ::java::lang::Object * > *); + static JArray< ::javax::swing::text::JTextComponent$KeyBinding * > * makeKeyBindings(JArray< ::java::lang::Object * > *); + virtual void provideErrorFeedback(::java::awt::Component *); + virtual ::java::lang::String * toString(); + virtual void uninitialize(); + static void uninstallBorder(::javax::swing::JComponent *); + static void installProperty(::javax::swing::JComponent *, ::java::lang::String *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_LookAndFeel__ diff --git a/libjava/javax/swing/MenuElement.h b/libjava/javax/swing/MenuElement.h new file mode 100644 index 00000000000..d48ef967887 --- /dev/null +++ b/libjava/javax/swing/MenuElement.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_MenuElement__ +#define __javax_swing_MenuElement__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class MenuElement; + class MenuSelectionManager; + } + } +} + +class javax::swing::MenuElement : public ::java::lang::Object +{ + +public: + virtual void processMouseEvent(::java::awt::event::MouseEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *) = 0; + virtual void processKeyEvent(::java::awt::event::KeyEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *) = 0; + virtual void menuSelectionChanged(jboolean) = 0; + virtual JArray< ::javax::swing::MenuElement * > * getSubElements() = 0; + virtual ::java::awt::Component * getComponent() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_MenuElement__ diff --git a/libjava/javax/swing/MenuSelectionManager.h b/libjava/javax/swing/MenuSelectionManager.h new file mode 100644 index 00000000000..8e3cfa9e9a7 --- /dev/null +++ b/libjava/javax/swing/MenuSelectionManager.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_MenuSelectionManager__ +#define __javax_swing_MenuSelectionManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Point; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class MenuElement; + class MenuSelectionManager; + namespace event + { + class ChangeEvent; + class ChangeListener; + class EventListenerList; + } + } + } +} + +class javax::swing::MenuSelectionManager : public ::java::lang::Object +{ + +public: + MenuSelectionManager(); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); + virtual void clearSelectedPath(); + virtual ::java::awt::Component * componentForPoint(::java::awt::Component *, ::java::awt::Point *); + static ::javax::swing::MenuSelectionManager * defaultManager(); + virtual JArray< ::javax::swing::MenuElement * > * getSelectedPath(); + virtual jboolean isComponentPartOfCurrentMenu(::java::awt::Component *); + virtual void processKeyEvent(::java::awt::event::KeyEvent *); + virtual void processMouseEvent(::java::awt::event::MouseEvent *); + virtual void setSelectedPath(JArray< ::javax::swing::MenuElement * > *); +private: + JArray< ::javax::swing::MenuElement * > * getPath(::java::awt::Component *); +public: // actually protected + ::javax::swing::event::ChangeEvent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) changeEvent; + ::javax::swing::event::EventListenerList * listenerList; +private: + static ::javax::swing::MenuSelectionManager * manager; + ::java::util::Vector * selectedPath; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_MenuSelectionManager__ diff --git a/libjava/javax/swing/MutableComboBoxModel.h b/libjava/javax/swing/MutableComboBoxModel.h new file mode 100644 index 00000000000..cfc67715280 --- /dev/null +++ b/libjava/javax/swing/MutableComboBoxModel.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_MutableComboBoxModel__ +#define __javax_swing_MutableComboBoxModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class MutableComboBoxModel; + namespace event + { + class ListDataListener; + } + } + } +} + +class javax::swing::MutableComboBoxModel : public ::java::lang::Object +{ + +public: + virtual void addElement(::java::lang::Object *) = 0; + virtual void removeElementAt(jint) = 0; + virtual void insertElementAt(::java::lang::Object *, jint) = 0; + virtual void removeElement(::java::lang::Object *) = 0; + virtual void setSelectedItem(::java::lang::Object *) = 0; + virtual ::java::lang::Object * getSelectedItem() = 0; + virtual jint getSize() = 0; + virtual ::java::lang::Object * getElementAt(jint) = 0; + virtual void addListDataListener(::javax::swing::event::ListDataListener *) = 0; + virtual void removeListDataListener(::javax::swing::event::ListDataListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_MutableComboBoxModel__ diff --git a/libjava/javax/swing/OverlayLayout.h b/libjava/javax/swing/OverlayLayout.h new file mode 100644 index 00000000000..065b35f3b64 --- /dev/null +++ b/libjava/javax/swing/OverlayLayout.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_OverlayLayout__ +#define __javax_swing_OverlayLayout__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + class OverlayLayout; + class SizeRequirements; + } + } +} + +class javax::swing::OverlayLayout : public ::java::lang::Object +{ + +public: + OverlayLayout(::java::awt::Container *); + virtual void invalidateLayout(::java::awt::Container *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *); + virtual void removeLayoutComponent(::java::awt::Component *); + 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 jfloat getLayoutAlignmentX(::java::awt::Container *); + virtual jfloat getLayoutAlignmentY(::java::awt::Container *); + virtual void layoutContainer(::java::awt::Container *); +private: + void checkRequirements(); + void checkTotalRequirements(); + void checkLayout(); + static const jlong serialVersionUID = 18082829169631543LL; + ::java::awt::Container * __attribute__((aligned(__alignof__( ::java::lang::Object)))) target; + JArray< ::javax::swing::SizeRequirements * > * xChildren; + JArray< ::javax::swing::SizeRequirements * > * yChildren; + ::javax::swing::SizeRequirements * xTotal; + ::javax::swing::SizeRequirements * yTotal; + JArray< jint > * offsetsX; + JArray< jint > * offsetsY; + JArray< jint > * spansX; + JArray< jint > * spansY; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_OverlayLayout__ diff --git a/libjava/javax/swing/Popup$JWindowPopup.h b/libjava/javax/swing/Popup$JWindowPopup.h new file mode 100644 index 00000000000..fd6d60d6721 --- /dev/null +++ b/libjava/javax/swing/Popup$JWindowPopup.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Popup$JWindowPopup__ +#define __javax_swing_Popup$JWindowPopup__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JWindow; + class Popup$JWindowPopup; + } + } +} + +class javax::swing::Popup$JWindowPopup : public ::javax::swing::Popup +{ + +public: + Popup$JWindowPopup(::java::awt::Component *, ::java::awt::Component *, jint, jint); + virtual void show(); + virtual void hide(); +public: // actually package-private + ::javax::swing::JWindow * __attribute__((aligned(__alignof__( ::javax::swing::Popup)))) window; +private: + ::java::awt::Component * contents; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Popup$JWindowPopup__ diff --git a/libjava/javax/swing/Popup$LightweightPopup.h b/libjava/javax/swing/Popup$LightweightPopup.h new file mode 100644 index 00000000000..d9b0123af90 --- /dev/null +++ b/libjava/javax/swing/Popup$LightweightPopup.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Popup$LightweightPopup__ +#define __javax_swing_Popup$LightweightPopup__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JLayeredPane; + class JPanel; + class Popup$LightweightPopup; + } + } +} + +class javax::swing::Popup$LightweightPopup : public ::javax::swing::Popup +{ + +public: + Popup$LightweightPopup(::java::awt::Component *, ::java::awt::Component *, jint, jint); + virtual void show(); + virtual void hide(); +public: // actually package-private + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::Popup)))) owner; + ::java::awt::Component * contents; + jint x; + jint y; +private: + ::javax::swing::JPanel * panel; + ::javax::swing::JLayeredPane * layeredPane; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Popup$LightweightPopup__ diff --git a/libjava/javax/swing/Popup.h b/libjava/javax/swing/Popup.h new file mode 100644 index 00000000000..8c7f4b1fe69 --- /dev/null +++ b/libjava/javax/swing/Popup.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Popup__ +#define __javax_swing_Popup__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Popup; + } + } +} + +class javax::swing::Popup : public ::java::lang::Object +{ + +public: // actually protected + Popup(::java::awt::Component *, ::java::awt::Component *, jint, jint); + Popup(); +public: + virtual void show(); + virtual void hide(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Popup__ diff --git a/libjava/javax/swing/PopupFactory.h b/libjava/javax/swing/PopupFactory.h new file mode 100644 index 00000000000..69f15a72a4a --- /dev/null +++ b/libjava/javax/swing/PopupFactory.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_PopupFactory__ +#define __javax_swing_PopupFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Popup; + class PopupFactory; + } + } +} + +class javax::swing::PopupFactory : public ::java::lang::Object +{ + +public: + PopupFactory(); + static void setSharedInstance(::javax::swing::PopupFactory *); + static ::javax::swing::PopupFactory * getSharedInstance(); + virtual ::javax::swing::Popup * getPopup(::java::awt::Component *, ::java::awt::Component *, jint, jint); +private: + static ::javax::swing::PopupFactory * sharedFactory; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_PopupFactory__ diff --git a/libjava/javax/swing/ProgressMonitor$1.h b/libjava/javax/swing/ProgressMonitor$1.h new file mode 100644 index 00000000000..8537aa4a5e6 --- /dev/null +++ b/libjava/javax/swing/ProgressMonitor$1.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ProgressMonitor$1__ +#define __javax_swing_ProgressMonitor$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class ProgressMonitor; + class ProgressMonitor$1; + } + } +} + +class javax::swing::ProgressMonitor$1 : public ::java::lang::Object +{ + +public: // actually package-private + ProgressMonitor$1(::javax::swing::ProgressMonitor *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::ProgressMonitor * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ProgressMonitor$1__ diff --git a/libjava/javax/swing/ProgressMonitor$TimerListener.h b/libjava/javax/swing/ProgressMonitor$TimerListener.h new file mode 100644 index 00000000000..747fa707d83 --- /dev/null +++ b/libjava/javax/swing/ProgressMonitor$TimerListener.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ProgressMonitor$TimerListener__ +#define __javax_swing_ProgressMonitor$TimerListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class ProgressMonitor; + class ProgressMonitor$TimerListener; + } + } +} + +class javax::swing::ProgressMonitor$TimerListener : public ::java::lang::Object +{ + +public: // actually package-private + ProgressMonitor$TimerListener(::javax::swing::ProgressMonitor *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) timestamp; + jint lastProgress; + jboolean first; + ::javax::swing::ProgressMonitor * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ProgressMonitor$TimerListener__ diff --git a/libjava/javax/swing/ProgressMonitor.h b/libjava/javax/swing/ProgressMonitor.h new file mode 100644 index 00000000000..6f5b072b67f --- /dev/null +++ b/libjava/javax/swing/ProgressMonitor.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ProgressMonitor__ +#define __javax_swing_ProgressMonitor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JDialog; + class JLabel; + class JProgressBar; + class ProgressMonitor; + class Timer; + } + } +} + +class javax::swing::ProgressMonitor : public ::java::lang::Object +{ + +public: + ProgressMonitor(::java::awt::Component *, ::java::lang::Object *, ::java::lang::String *, jint, jint); + virtual void close(); + virtual void setProgress(jint); + virtual jint getMinimum(); + virtual void setMinimum(jint); + virtual jint getMaximum(); + virtual void setMaximum(jint); + virtual jboolean isCanceled(); + virtual jint getMillisToDecideToPopup(); + virtual void setMillisToDecideToPopup(jint); + virtual jint getMillisToPopup(); + virtual void setMillisToPopup(jint); + virtual ::java::lang::String * getNote(); + virtual void setNote(::java::lang::String *); +public: // actually package-private + virtual void createDialog(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); +public: // actually protected + ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::lang::Object)))) accessibleContext; +public: // actually package-private + ::java::awt::Component * component; + ::java::lang::String * note; + ::java::lang::Object * message; + jint millisToDecideToPopup; + jint millisToPopup; + jint min; + jint max; + jint progress; + ::javax::swing::JProgressBar * progressBar; + ::javax::swing::JLabel * noteLabel; + ::javax::swing::JDialog * progressDialog; + ::javax::swing::Timer * timer; + jboolean canceled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ProgressMonitor__ diff --git a/libjava/javax/swing/ProgressMonitorInputStream.h b/libjava/javax/swing/ProgressMonitorInputStream.h new file mode 100644 index 00000000000..2f4f555b8a9 --- /dev/null +++ b/libjava/javax/swing/ProgressMonitorInputStream.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ProgressMonitorInputStream__ +#define __javax_swing_ProgressMonitorInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class ProgressMonitor; + class ProgressMonitorInputStream; + } + } +} + +class javax::swing::ProgressMonitorInputStream : public ::java::io::FilterInputStream +{ + +public: + ProgressMonitorInputStream(::java::awt::Component *, ::java::lang::Object *, ::java::io::InputStream *); + virtual void reset(); + virtual jint read(); + virtual jint read(JArray< jbyte > *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jlong skip(jlong); + virtual void close(); + virtual ::javax::swing::ProgressMonitor * getProgressMonitor(); +private: + void checkMonitorCanceled(); + ::javax::swing::ProgressMonitor * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) monitor; + jint read__; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ProgressMonitorInputStream__ diff --git a/libjava/javax/swing/Renderer.h b/libjava/javax/swing/Renderer.h new file mode 100644 index 00000000000..de6ca6c72d7 --- /dev/null +++ b/libjava/javax/swing/Renderer.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Renderer__ +#define __javax_swing_Renderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Renderer; + } + } +} + +class javax::swing::Renderer : public ::java::lang::Object +{ + +public: + virtual void setValue(::java::lang::Object *, jboolean) = 0; + virtual ::java::awt::Component * getComponent() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_Renderer__ diff --git a/libjava/javax/swing/RepaintManager$RepaintWorker.h b/libjava/javax/swing/RepaintManager$RepaintWorker.h new file mode 100644 index 00000000000..ba38b995dea --- /dev/null +++ b/libjava/javax/swing/RepaintManager$RepaintWorker.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_RepaintManager$RepaintWorker__ +#define __javax_swing_RepaintManager$RepaintWorker__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class RepaintManager; + class RepaintManager$RepaintWorker; + } + } +} + +class javax::swing::RepaintManager$RepaintWorker : public ::java::lang::Object +{ + +public: + RepaintManager$RepaintWorker(::javax::swing::RepaintManager *); + virtual void setLive(jboolean); + virtual jboolean isLive(); + virtual void run(); +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) live; + ::javax::swing::RepaintManager * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_RepaintManager$RepaintWorker__ diff --git a/libjava/javax/swing/RepaintManager$RepaintWorkerEvent.h b/libjava/javax/swing/RepaintManager$RepaintWorkerEvent.h new file mode 100644 index 00000000000..7b68871bd36 --- /dev/null +++ b/libjava/javax/swing/RepaintManager$RepaintWorkerEvent.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_RepaintManager$RepaintWorkerEvent__ +#define __javax_swing_RepaintManager$RepaintWorkerEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class RepaintManager$RepaintWorkerEvent; + } + } +} + +class javax::swing::RepaintManager$RepaintWorkerEvent : public ::java::awt::event::InvocationEvent +{ + +public: + RepaintManager$RepaintWorkerEvent(::java::lang::Object *, ::java::lang::Runnable *, ::java::lang::Object *, jboolean); + virtual void dispatch(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_RepaintManager$RepaintWorkerEvent__ diff --git a/libjava/javax/swing/RepaintManager.h b/libjava/javax/swing/RepaintManager.h new file mode 100644 index 00000000000..c599a47cc79 --- /dev/null +++ b/libjava/javax/swing/RepaintManager.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_RepaintManager__ +#define __javax_swing_RepaintManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Image; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class RepaintManager; + class RepaintManager$RepaintWorker; + } + } +} + +class javax::swing::RepaintManager : public ::java::lang::Object +{ + +public: + RepaintManager(); + static ::javax::swing::RepaintManager * currentManager(::java::awt::Component *); + static ::javax::swing::RepaintManager * currentManager(::javax::swing::JComponent *); + static void setCurrentManager(::javax::swing::RepaintManager *); + virtual void addInvalidComponent(::javax::swing::JComponent *); + virtual void removeInvalidComponent(::javax::swing::JComponent *); + virtual void addDirtyRegion(::javax::swing::JComponent *, jint, jint, jint, jint); + virtual ::java::awt::Rectangle * getDirtyRegion(::javax::swing::JComponent *); + virtual void markCompletelyDirty(::javax::swing::JComponent *); + virtual void markCompletelyClean(::javax::swing::JComponent *); + virtual jboolean isCompletelyDirty(::javax::swing::JComponent *); + virtual void validateInvalidComponents(); + virtual void paintDirtyRegions(); +private: + void compileRepaintRoots(::java::util::HashMap *, ::javax::swing::JComponent *, ::java::util::HashSet *); +public: + virtual ::java::awt::Image * getOffscreenBuffer(::java::awt::Component *, jint, jint); +public: // actually package-private + virtual void commitBuffer(::java::awt::Component *, jint, jint, jint, jint); +public: + virtual ::java::awt::Image * getVolatileOffscreenBuffer(::java::awt::Component *, jint, jint); + virtual ::java::awt::Dimension * getDoubleBufferMaximumSize(); + virtual void setDoubleBufferMaximumSize(::java::awt::Dimension *); + virtual void setDoubleBufferingEnabled(jboolean); + virtual jboolean isDoubleBufferingEnabled(); + virtual ::java::lang::String * toString(); +private: + void invokeLater(::java::lang::Runnable *); +public: // actually package-private + static ::java::util::WeakHashMap * currentRepaintManagers; +private: + static ::java::awt::Rectangle * rectCache; + ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dirtyComponents; + ::java::util::HashMap * dirtyComponentsWork; + ::javax::swing::RepaintManager$RepaintWorker * repaintWorker; + ::java::util::ArrayList * invalidComponents; + jboolean doubleBufferingEnabled; + ::java::util::WeakHashMap * offscreenBuffers; + ::java::awt::Dimension * doubleBufferMaximumSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_RepaintManager__ diff --git a/libjava/javax/swing/RootPaneContainer.h b/libjava/javax/swing/RootPaneContainer.h new file mode 100644 index 00000000000..9318d8bc174 --- /dev/null +++ b/libjava/javax/swing/RootPaneContainer.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_RootPaneContainer__ +#define __javax_swing_RootPaneContainer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + } + } + namespace javax + { + namespace swing + { + class JLayeredPane; + class JRootPane; + class RootPaneContainer; + } + } +} + +class javax::swing::RootPaneContainer : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::JRootPane * getRootPane() = 0; + virtual void setContentPane(::java::awt::Container *) = 0; + virtual ::java::awt::Container * getContentPane() = 0; + virtual void setLayeredPane(::javax::swing::JLayeredPane *) = 0; + virtual ::javax::swing::JLayeredPane * getLayeredPane() = 0; + virtual void setGlassPane(::java::awt::Component *) = 0; + virtual ::java::awt::Component * getGlassPane() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_RootPaneContainer__ diff --git a/libjava/javax/swing/ScrollPaneConstants.h b/libjava/javax/swing/ScrollPaneConstants.h new file mode 100644 index 00000000000..830a49f0229 --- /dev/null +++ b/libjava/javax/swing/ScrollPaneConstants.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ScrollPaneConstants__ +#define __javax_swing_ScrollPaneConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ScrollPaneConstants; + } + } +} + +class javax::swing::ScrollPaneConstants : public ::java::lang::Object +{ + +public: + static ::java::lang::String * VIEWPORT; + static ::java::lang::String * VERTICAL_SCROLLBAR; + static ::java::lang::String * HORIZONTAL_SCROLLBAR; + static ::java::lang::String * ROW_HEADER; + static ::java::lang::String * COLUMN_HEADER; + static ::java::lang::String * LOWER_LEFT_CORNER; + static ::java::lang::String * LOWER_RIGHT_CORNER; + static ::java::lang::String * UPPER_LEFT_CORNER; + static ::java::lang::String * UPPER_RIGHT_CORNER; + static ::java::lang::String * LOWER_LEADING_CORNER; + static ::java::lang::String * LOWER_TRAILING_CORNER; + static ::java::lang::String * UPPER_LEADING_CORNER; + static ::java::lang::String * UPPER_TRAILING_CORNER; + static ::java::lang::String * VERTICAL_SCROLLBAR_POLICY; + static ::java::lang::String * HORIZONTAL_SCROLLBAR_POLICY; + static const jint VERTICAL_SCROLLBAR_AS_NEEDED = 20; + static const jint VERTICAL_SCROLLBAR_NEVER = 21; + static const jint VERTICAL_SCROLLBAR_ALWAYS = 22; + static const jint HORIZONTAL_SCROLLBAR_AS_NEEDED = 30; + static const jint HORIZONTAL_SCROLLBAR_NEVER = 31; + static const jint HORIZONTAL_SCROLLBAR_ALWAYS = 32; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_ScrollPaneConstants__ diff --git a/libjava/javax/swing/ScrollPaneLayout$UIResource.h b/libjava/javax/swing/ScrollPaneLayout$UIResource.h new file mode 100644 index 00000000000..24c0fab6487 --- /dev/null +++ b/libjava/javax/swing/ScrollPaneLayout$UIResource.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ScrollPaneLayout$UIResource__ +#define __javax_swing_ScrollPaneLayout$UIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class ScrollPaneLayout$UIResource; + } + } +} + +class javax::swing::ScrollPaneLayout$UIResource : public ::javax::swing::ScrollPaneLayout +{ + +public: + ScrollPaneLayout$UIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ScrollPaneLayout$UIResource__ diff --git a/libjava/javax/swing/ScrollPaneLayout.h b/libjava/javax/swing/ScrollPaneLayout.h new file mode 100644 index 00000000000..d0fe8178019 --- /dev/null +++ b/libjava/javax/swing/ScrollPaneLayout.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ScrollPaneLayout__ +#define __javax_swing_ScrollPaneLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JScrollBar; + class JScrollPane; + class JViewport; + class ScrollPaneLayout; + } + } +} + +class javax::swing::ScrollPaneLayout : public ::java::lang::Object +{ + +public: + ScrollPaneLayout(); + virtual void syncWithScrollPane(::javax::swing::JScrollPane *); +public: // actually protected + virtual ::java::awt::Component * addSingletonComponent(::java::awt::Component *, ::java::awt::Component *); +public: + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); + virtual jint getVerticalScrollBarPolicy(); + virtual void setVerticalScrollBarPolicy(jint); + virtual jint getHorizontalScrollBarPolicy(); + virtual void setHorizontalScrollBarPolicy(jint); + virtual ::javax::swing::JViewport * getViewport(); + virtual ::javax::swing::JScrollBar * getHorizontalScrollBar(); + virtual ::javax::swing::JScrollBar * getVerticalScrollBar(); + virtual ::javax::swing::JViewport * getRowHeader(); + virtual ::javax::swing::JViewport * getColumnHeader(); + virtual ::java::awt::Component * getCorner(::java::lang::String *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual void layoutContainer(::java::awt::Container *); + virtual ::java::awt::Rectangle * getViewportBorderBounds(::javax::swing::JScrollPane *); +private: + static const jlong serialVersionUID = -4480022884523193743LL; +public: // actually protected + ::javax::swing::JViewport * __attribute__((aligned(__alignof__( ::java::lang::Object)))) viewport; + ::javax::swing::JScrollBar * vsb; + ::javax::swing::JScrollBar * hsb; + ::javax::swing::JViewport * rowHead; + ::javax::swing::JViewport * colHead; + ::java::awt::Component * lowerLeft; + ::java::awt::Component * lowerRight; + ::java::awt::Component * upperLeft; + ::java::awt::Component * upperRight; + jint vsbPolicy; + jint hsbPolicy; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ScrollPaneLayout__ diff --git a/libjava/javax/swing/Scrollable.h b/libjava/javax/swing/Scrollable.h new file mode 100644 index 00000000000..7030c9265f7 --- /dev/null +++ b/libjava/javax/swing/Scrollable.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Scrollable__ +#define __javax_swing_Scrollable__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class Scrollable; + } + } +} + +class javax::swing::Scrollable : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Dimension * getPreferredScrollableViewportSize() = 0; + virtual jint getScrollableUnitIncrement(::java::awt::Rectangle *, jint, jint) = 0; + virtual jint getScrollableBlockIncrement(::java::awt::Rectangle *, jint, jint) = 0; + virtual jboolean getScrollableTracksViewportWidth() = 0; + virtual jboolean getScrollableTracksViewportHeight() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_Scrollable__ diff --git a/libjava/javax/swing/SingleSelectionModel.h b/libjava/javax/swing/SingleSelectionModel.h new file mode 100644 index 00000000000..f8120e1116a --- /dev/null +++ b/libjava/javax/swing/SingleSelectionModel.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SingleSelectionModel__ +#define __javax_swing_SingleSelectionModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SingleSelectionModel; + namespace event + { + class ChangeListener; + } + } + } +} + +class javax::swing::SingleSelectionModel : public ::java::lang::Object +{ + +public: + virtual jint getSelectedIndex() = 0; + virtual void setSelectedIndex(jint) = 0; + virtual void clearSelection() = 0; + virtual jboolean isSelected() = 0; + virtual void addChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void removeChangeListener(::javax::swing::event::ChangeListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_SingleSelectionModel__ diff --git a/libjava/javax/swing/SizeRequirements.h b/libjava/javax/swing/SizeRequirements.h new file mode 100644 index 00000000000..7a9672a77a7 --- /dev/null +++ b/libjava/javax/swing/SizeRequirements.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SizeRequirements__ +#define __javax_swing_SizeRequirements__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class SizeRequirements; + } + } +} + +class javax::swing::SizeRequirements : public ::java::lang::Object +{ + +public: + SizeRequirements(); + SizeRequirements(jint, jint, jint, jfloat); + virtual ::java::lang::String * toString(); + static ::javax::swing::SizeRequirements * getTiledSizeRequirements(JArray< ::javax::swing::SizeRequirements * > *); + static ::javax::swing::SizeRequirements * getAlignedSizeRequirements(JArray< ::javax::swing::SizeRequirements * > *); + static void calculateTiledPositions(jint, ::javax::swing::SizeRequirements *, JArray< ::javax::swing::SizeRequirements * > *, JArray< jint > *, JArray< jint > *); + static void calculateTiledPositions(jint, ::javax::swing::SizeRequirements *, JArray< ::javax::swing::SizeRequirements * > *, JArray< jint > *, JArray< jint > *, jboolean); +private: + static void adjustSmaller(jint, JArray< ::javax::swing::SizeRequirements * > *, JArray< jint > *, jint); + static void adjustGreater(jint, JArray< ::javax::swing::SizeRequirements * > *, JArray< jint > *, jint); +public: + static void calculateAlignedPositions(jint, ::javax::swing::SizeRequirements *, JArray< ::javax::swing::SizeRequirements * > *, JArray< jint > *, JArray< jint > *); + static void calculateAlignedPositions(jint, ::javax::swing::SizeRequirements *, JArray< ::javax::swing::SizeRequirements * > *, JArray< jint > *, JArray< jint > *, jboolean); +private: + static void adjustFromRight(::javax::swing::SizeRequirements *, jfloat, jint, JArray< jint > *); + static void adjustFromLeft(::javax::swing::SizeRequirements *, jfloat, jint, JArray< jint > *); +public: + static JArray< jint > * adjustSizes(jint, JArray< ::javax::swing::SizeRequirements * > *); +private: + static const jlong serialVersionUID = 9217749429906736553LL; +public: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) minimum; + jint preferred; + jint maximum; + jfloat alignment; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SizeRequirements__ diff --git a/libjava/javax/swing/SizeSequence.h b/libjava/javax/swing/SizeSequence.h new file mode 100644 index 00000000000..8bae12cf6af --- /dev/null +++ b/libjava/javax/swing/SizeSequence.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SizeSequence__ +#define __javax_swing_SizeSequence__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class SizeSequence; + } + } +} + +class javax::swing::SizeSequence : public ::java::lang::Object +{ + +public: + SizeSequence(); + SizeSequence(jint); + SizeSequence(jint, jint); + SizeSequence(JArray< jint > *); + virtual void setSize(jint, jint); + virtual jint getIndex(jint); + virtual jint getSize(jint); + virtual void setSizes(JArray< jint > *); + virtual JArray< jint > * getSizes(); + virtual jint getPosition(jint); + virtual void insertEntries(jint, jint, jint); + virtual void removeEntries(jint, jint); +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sizes; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SizeSequence__ diff --git a/libjava/javax/swing/SortingFocusTraversalPolicy.h b/libjava/javax/swing/SortingFocusTraversalPolicy.h new file mode 100644 index 00000000000..fc3d570b66f --- /dev/null +++ b/libjava/javax/swing/SortingFocusTraversalPolicy.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SortingFocusTraversalPolicy__ +#define __javax_swing_SortingFocusTraversalPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + } + } + namespace javax + { + namespace swing + { + class SortingFocusTraversalPolicy; + } + } +} + +class javax::swing::SortingFocusTraversalPolicy : public ::javax::swing::InternalFrameFocusTraversalPolicy +{ + +public: // actually protected + SortingFocusTraversalPolicy(); +public: + SortingFocusTraversalPolicy(::java::util::Comparator *); +public: // actually protected + virtual jboolean accept(::java::awt::Component *); + virtual ::java::util::Comparator * getComparator(); + virtual void setComparator(::java::util::Comparator *); +private: + ::java::util::TreeSet * getSortedCycle(::java::awt::Container *, ::java::util::TreeSet *); +public: + virtual ::java::awt::Component * getComponentAfter(::java::awt::Container *, ::java::awt::Component *); + virtual ::java::awt::Component * getComponentBefore(::java::awt::Container *, ::java::awt::Component *); + virtual ::java::awt::Component * getDefaultComponent(::java::awt::Container *); + virtual ::java::awt::Component * getFirstComponent(::java::awt::Container *); + virtual ::java::awt::Component * getLastComponent(::java::awt::Container *); + virtual jboolean getImplicitDownCycleTraversal(); + virtual void setImplicitDownCycleTraversal(jboolean); +public: // actually package-private + ::java::util::Comparator * __attribute__((aligned(__alignof__( ::javax::swing::InternalFrameFocusTraversalPolicy)))) comparator; + jboolean implicitDownCycleTraversal; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SortingFocusTraversalPolicy__ diff --git a/libjava/javax/swing/SpinnerDateModel.h b/libjava/javax/swing/SpinnerDateModel.h new file mode 100644 index 00000000000..ae25fbe4c82 --- /dev/null +++ b/libjava/javax/swing/SpinnerDateModel.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpinnerDateModel__ +#define __javax_swing_SpinnerDateModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SpinnerDateModel; + } + } +} + +class javax::swing::SpinnerDateModel : public ::javax::swing::AbstractSpinnerModel +{ + +public: + SpinnerDateModel(); + SpinnerDateModel(::java::util::Date *, ::java::lang::Comparable *, ::java::lang::Comparable *, jint); + virtual jint getCalendarField(); + virtual ::java::util::Date * getDate(); + virtual ::java::lang::Comparable * getStart(); + virtual ::java::lang::Comparable * getEnd(); + virtual ::java::lang::Object * getValue(); + virtual ::java::lang::Object * getNextValue(); + virtual ::java::lang::Object * getPreviousValue(); + virtual void setCalendarField(jint); + virtual void setStart(::java::lang::Comparable *); + virtual void setEnd(::java::lang::Comparable *); + virtual void setValue(::java::lang::Object *); +private: + ::java::util::Calendar * __attribute__((aligned(__alignof__( ::javax::swing::AbstractSpinnerModel)))) date; + ::java::lang::Comparable * start; + ::java::lang::Comparable * end; + jint calendarField; + static const jlong serialVersionUID = -4802518107105940612LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpinnerDateModel__ diff --git a/libjava/javax/swing/SpinnerListModel.h b/libjava/javax/swing/SpinnerListModel.h new file mode 100644 index 00000000000..b5a65939ede --- /dev/null +++ b/libjava/javax/swing/SpinnerListModel.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpinnerListModel__ +#define __javax_swing_SpinnerListModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class SpinnerListModel; + } + } +} + +class javax::swing::SpinnerListModel : public ::javax::swing::AbstractSpinnerModel +{ + +public: + SpinnerListModel(); + SpinnerListModel(::java::util::List *); + SpinnerListModel(JArray< ::java::lang::Object * > *); + virtual ::java::util::List * getList(); + virtual ::java::lang::Object * getNextValue(); + virtual ::java::lang::Object * getPreviousValue(); + virtual ::java::lang::Object * getValue(); + virtual void setList(::java::util::List *); + virtual void setValue(::java::lang::Object *); +private: + static const jlong serialVersionUID = 3358804052191994516LL; + ::java::util::List * __attribute__((aligned(__alignof__( ::javax::swing::AbstractSpinnerModel)))) list; + jint index; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpinnerListModel__ diff --git a/libjava/javax/swing/SpinnerModel.h b/libjava/javax/swing/SpinnerModel.h new file mode 100644 index 00000000000..c762ac64a68 --- /dev/null +++ b/libjava/javax/swing/SpinnerModel.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpinnerModel__ +#define __javax_swing_SpinnerModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SpinnerModel; + namespace event + { + class ChangeListener; + } + } + } +} + +class javax::swing::SpinnerModel : public ::java::lang::Object +{ + +public: + virtual void setValue(::java::lang::Object *) = 0; + virtual ::java::lang::Object * getValue() = 0; + virtual ::java::lang::Object * getNextValue() = 0; + virtual ::java::lang::Object * getPreviousValue() = 0; + virtual void addChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void removeChangeListener(::javax::swing::event::ChangeListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_SpinnerModel__ diff --git a/libjava/javax/swing/SpinnerNumberModel.h b/libjava/javax/swing/SpinnerNumberModel.h new file mode 100644 index 00000000000..185205472f8 --- /dev/null +++ b/libjava/javax/swing/SpinnerNumberModel.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpinnerNumberModel__ +#define __javax_swing_SpinnerNumberModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SpinnerNumberModel; + } + } +} + +class javax::swing::SpinnerNumberModel : public ::javax::swing::AbstractSpinnerModel +{ + +public: + SpinnerNumberModel(); + SpinnerNumberModel(jdouble, jdouble, jdouble, jdouble); + SpinnerNumberModel(jint, jint, jint, jint); + SpinnerNumberModel(::java::lang::Number *, ::java::lang::Comparable *, ::java::lang::Comparable *, ::java::lang::Number *); + virtual void setValue(::java::lang::Object *); + virtual ::java::lang::Object * getValue(); + virtual ::java::lang::Object * getNextValue(); + virtual ::java::lang::Object * getPreviousValue(); + virtual ::java::lang::Number * getNumber(); + virtual ::java::lang::Comparable * getMinimum(); + virtual void setMinimum(::java::lang::Comparable *); + virtual ::java::lang::Comparable * getMaximum(); + virtual void setMaximum(::java::lang::Comparable *); + virtual ::java::lang::Number * getStepSize(); + virtual void setStepSize(::java::lang::Number *); +private: + static const jlong serialVersionUID = 7279176385485777821LL; + ::java::lang::Number * __attribute__((aligned(__alignof__( ::javax::swing::AbstractSpinnerModel)))) value; + ::java::lang::Comparable * minimum; + ::java::lang::Comparable * maximum; + ::java::lang::Number * stepSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpinnerNumberModel__ diff --git a/libjava/javax/swing/Spring$1.h b/libjava/javax/swing/Spring$1.h new file mode 100644 index 00000000000..22d14adf409 --- /dev/null +++ b/libjava/javax/swing/Spring$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring$1__ +#define __javax_swing_Spring$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Spring; + class Spring$1; + } + } +} + +class javax::swing::Spring$1 : public ::javax::swing::Spring +{ + +public: // actually package-private + Spring$1(jfloat, ::javax::swing::Spring *); +public: + jint getMaximumValue(); + jint getMinimumValue(); + jint getPreferredValue(); + jint getValue(); + void setValue(jint); +private: + jfloat __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) val$factor; + ::javax::swing::Spring * val$spring; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring$1__ diff --git a/libjava/javax/swing/Spring$2.h b/libjava/javax/swing/Spring$2.h new file mode 100644 index 00000000000..14fdf5899e4 --- /dev/null +++ b/libjava/javax/swing/Spring$2.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring$2__ +#define __javax_swing_Spring$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Spring$2; + } + } +} + +class javax::swing::Spring$2 : public ::javax::swing::Spring +{ + +public: // actually package-private + Spring$2(::java::awt::Component *); +public: + jint getMaximumValue(); + jint getMinimumValue(); + jint getPreferredValue(); + jint getValue(); + void setValue(jint); +private: + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) val$component; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring$2__ diff --git a/libjava/javax/swing/Spring$3.h b/libjava/javax/swing/Spring$3.h new file mode 100644 index 00000000000..30934e64ad6 --- /dev/null +++ b/libjava/javax/swing/Spring$3.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring$3__ +#define __javax_swing_Spring$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Spring$3; + } + } +} + +class javax::swing::Spring$3 : public ::javax::swing::Spring +{ + +public: // actually package-private + Spring$3(::java::awt::Component *); +public: + jint getMaximumValue(); + jint getMinimumValue(); + jint getPreferredValue(); + jint getValue(); + void setValue(jint); +private: + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) val$component; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring$3__ diff --git a/libjava/javax/swing/Spring$AddSpring.h b/libjava/javax/swing/Spring$AddSpring.h new file mode 100644 index 00000000000..9c455fead45 --- /dev/null +++ b/libjava/javax/swing/Spring$AddSpring.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring$AddSpring__ +#define __javax_swing_Spring$AddSpring__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Spring; + class Spring$AddSpring; + } + } +} + +class javax::swing::Spring$AddSpring : public ::javax::swing::Spring +{ + +public: + ::java::lang::String * toString(); +public: // actually protected + Spring$AddSpring(::javax::swing::Spring *, ::javax::swing::Spring *); +public: + jint getMaximumValue(); + jint getMinimumValue(); + jint getPreferredValue(); + jint getValue(); + void setValue(jint); +private: + ::javax::swing::Spring * __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) s1; + ::javax::swing::Spring * s2; + jint value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring$AddSpring__ diff --git a/libjava/javax/swing/Spring$MaxSpring.h b/libjava/javax/swing/Spring$MaxSpring.h new file mode 100644 index 00000000000..c3272b2ce78 --- /dev/null +++ b/libjava/javax/swing/Spring$MaxSpring.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring$MaxSpring__ +#define __javax_swing_Spring$MaxSpring__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Spring; + class Spring$MaxSpring; + } + } +} + +class javax::swing::Spring$MaxSpring : public ::javax::swing::Spring +{ + +public: + ::java::lang::String * toString(); +public: // actually protected + Spring$MaxSpring(::javax::swing::Spring *, ::javax::swing::Spring *); +public: + jint getMaximumValue(); + jint getMinimumValue(); + jint getPreferredValue(); + jint getValue(); + void setValue(jint); +private: + ::javax::swing::Spring * __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) s1; + ::javax::swing::Spring * s2; + jint value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring$MaxSpring__ diff --git a/libjava/javax/swing/Spring$MinusSpring.h b/libjava/javax/swing/Spring$MinusSpring.h new file mode 100644 index 00000000000..7b74f661301 --- /dev/null +++ b/libjava/javax/swing/Spring$MinusSpring.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring$MinusSpring__ +#define __javax_swing_Spring$MinusSpring__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Spring; + class Spring$MinusSpring; + } + } +} + +class javax::swing::Spring$MinusSpring : public ::javax::swing::Spring +{ + +public: + ::java::lang::String * toString(); +public: // actually protected + Spring$MinusSpring(::javax::swing::Spring *); +public: + jint getMaximumValue(); + jint getMinimumValue(); + jint getPreferredValue(); + jint getValue(); + void setValue(jint); +private: + ::javax::swing::Spring * __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) s; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring$MinusSpring__ diff --git a/libjava/javax/swing/Spring$SimpleSpring.h b/libjava/javax/swing/Spring$SimpleSpring.h new file mode 100644 index 00000000000..b28437cca0f --- /dev/null +++ b/libjava/javax/swing/Spring$SimpleSpring.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring$SimpleSpring__ +#define __javax_swing_Spring$SimpleSpring__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Spring$SimpleSpring; + } + } +} + +class javax::swing::Spring$SimpleSpring : public ::javax::swing::Spring +{ + +public: + ::java::lang::String * toString(); + Spring$SimpleSpring(jint, jint, jint); + jint getMaximumValue(); + jint getMinimumValue(); + jint getPreferredValue(); + jint getValue(); + void setValue(jint); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) min; + jint pref; + jint max; + jint value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring$SimpleSpring__ diff --git a/libjava/javax/swing/Spring.h b/libjava/javax/swing/Spring.h new file mode 100644 index 00000000000..9459f630f8e --- /dev/null +++ b/libjava/javax/swing/Spring.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Spring__ +#define __javax_swing_Spring__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Spring; + } + } +} + +class javax::swing::Spring : public ::java::lang::Object +{ + +public: // actually protected + Spring(); +public: + static ::javax::swing::Spring * constant(jint); + static ::javax::swing::Spring * constant(jint, jint, jint); + virtual jint getMaximumValue() = 0; + virtual jint getMinimumValue() = 0; + virtual jint getPreferredValue() = 0; + virtual jint getValue() = 0; + static ::javax::swing::Spring * max(::javax::swing::Spring *, ::javax::swing::Spring *); + static ::javax::swing::Spring * minus(::javax::swing::Spring *); + virtual void setValue(jint) = 0; +private: + jint getShrinkRange(); + jint getExpandRange(); +public: // actually package-private + virtual jdouble getStrain(); + virtual void setStrain(jdouble); +public: + static ::javax::swing::Spring * sum(::javax::swing::Spring *, ::javax::swing::Spring *); + static ::javax::swing::Spring * scale(::javax::swing::Spring *, jfloat); + static ::javax::swing::Spring * width(::java::awt::Component *); + static ::javax::swing::Spring * height(::java::awt::Component *); + static const jint UNSET = -2147483647 - 1; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Spring__ diff --git a/libjava/javax/swing/SpringLayout$Constraints.h b/libjava/javax/swing/SpringLayout$Constraints.h new file mode 100644 index 00000000000..200318910d6 --- /dev/null +++ b/libjava/javax/swing/SpringLayout$Constraints.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpringLayout$Constraints__ +#define __javax_swing_SpringLayout$Constraints__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Spring; + class SpringLayout$Constraints; + } + } +} + +class javax::swing::SpringLayout$Constraints : public ::java::lang::Object +{ + +public: + SpringLayout$Constraints(); + SpringLayout$Constraints(::javax::swing::Spring *, ::javax::swing::Spring *); + SpringLayout$Constraints(::javax::swing::Spring *, ::javax::swing::Spring *, ::javax::swing::Spring *, ::javax::swing::Spring *); + SpringLayout$Constraints(::java::awt::Component *); + virtual ::javax::swing::Spring * getConstraint(::java::lang::String *); + virtual ::javax::swing::Spring * getHeight(); + virtual ::javax::swing::Spring * getWidth(); + virtual ::javax::swing::Spring * getX(); + virtual ::javax::swing::Spring * getY(); + virtual ::javax::swing::Spring * getSouth(); + virtual ::javax::swing::Spring * getEast(); + virtual void setConstraint(::java::lang::String *, ::javax::swing::Spring *); + virtual void setHeight(::javax::swing::Spring *); + virtual void setWidth(::javax::swing::Spring *); + virtual void setX(::javax::swing::Spring *); + virtual void setY(::javax::swing::Spring *); + virtual void setSouth(::javax::swing::Spring *); + virtual void setEast(::javax::swing::Spring *); + virtual void dropCalcResult(); +private: + ::javax::swing::Spring * __attribute__((aligned(__alignof__( ::java::lang::Object)))) x; + ::javax::swing::Spring * y; + ::javax::swing::Spring * height; + ::javax::swing::Spring * width; + ::javax::swing::Spring * east; + ::javax::swing::Spring * south; + ::javax::swing::Spring * v; + ::javax::swing::Spring * h; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpringLayout$Constraints__ diff --git a/libjava/javax/swing/SpringLayout$DeferredDimension.h b/libjava/javax/swing/SpringLayout$DeferredDimension.h new file mode 100644 index 00000000000..0d72960b284 --- /dev/null +++ b/libjava/javax/swing/SpringLayout$DeferredDimension.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpringLayout$DeferredDimension__ +#define __javax_swing_SpringLayout$DeferredDimension__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SpringLayout$DeferredDimension; + } + } +} + +class javax::swing::SpringLayout$DeferredDimension : public ::javax::swing::Spring +{ + +public: + SpringLayout$DeferredDimension(); + virtual void setValue(jint); + virtual jint getValue(); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) value; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpringLayout$DeferredDimension__ diff --git a/libjava/javax/swing/SpringLayout$DeferredHeight.h b/libjava/javax/swing/SpringLayout$DeferredHeight.h new file mode 100644 index 00000000000..c08de85b630 --- /dev/null +++ b/libjava/javax/swing/SpringLayout$DeferredHeight.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpringLayout$DeferredHeight__ +#define __javax_swing_SpringLayout$DeferredHeight__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class SpringLayout$DeferredHeight; + } + } +} + +class javax::swing::SpringLayout$DeferredHeight : public ::javax::swing::SpringLayout$DeferredDimension +{ + +public: + virtual ::java::lang::String * toString(); + SpringLayout$DeferredHeight(::java::awt::Component *); + virtual jint getMaximumValue(); + virtual jint getMinimumValue(); + virtual jint getPreferredValue(); +private: + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::SpringLayout$DeferredDimension)))) c; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpringLayout$DeferredHeight__ diff --git a/libjava/javax/swing/SpringLayout$DeferredSpring.h b/libjava/javax/swing/SpringLayout$DeferredSpring.h new file mode 100644 index 00000000000..691515408ff --- /dev/null +++ b/libjava/javax/swing/SpringLayout$DeferredSpring.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpringLayout$DeferredSpring__ +#define __javax_swing_SpringLayout$DeferredSpring__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class Spring; + class SpringLayout; + class SpringLayout$DeferredSpring; + } + } +} + +class javax::swing::SpringLayout$DeferredSpring : public ::javax::swing::Spring +{ + +public: + virtual ::java::lang::String * toString(); + SpringLayout$DeferredSpring(::javax::swing::SpringLayout *, ::java::lang::String *, ::java::awt::Component *); +private: + ::javax::swing::Spring * resolveSpring(); +public: + virtual jint getMaximumValue(); + virtual jint getMinimumValue(); + virtual jint getPreferredValue(); + virtual jint getValue(); + virtual void setValue(jint); +private: + ::javax::swing::SpringLayout * __attribute__((aligned(__alignof__( ::javax::swing::Spring)))) sl; + ::java::lang::String * edgeName; + ::java::awt::Component * c; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpringLayout$DeferredSpring__ diff --git a/libjava/javax/swing/SpringLayout$DeferredWidth.h b/libjava/javax/swing/SpringLayout$DeferredWidth.h new file mode 100644 index 00000000000..fea7e4959ff --- /dev/null +++ b/libjava/javax/swing/SpringLayout$DeferredWidth.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpringLayout$DeferredWidth__ +#define __javax_swing_SpringLayout$DeferredWidth__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class SpringLayout$DeferredWidth; + } + } +} + +class javax::swing::SpringLayout$DeferredWidth : public ::javax::swing::SpringLayout$DeferredDimension +{ + +public: + SpringLayout$DeferredWidth(::java::awt::Component *); + virtual ::java::lang::String * toString(); + virtual jint getMaximumValue(); + virtual jint getMinimumValue(); + virtual jint getPreferredValue(); +private: + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::SpringLayout$DeferredDimension)))) c; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpringLayout$DeferredWidth__ diff --git a/libjava/javax/swing/SpringLayout.h b/libjava/javax/swing/SpringLayout.h new file mode 100644 index 00000000000..426d0d84972 --- /dev/null +++ b/libjava/javax/swing/SpringLayout.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SpringLayout__ +#define __javax_swing_SpringLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + class Spring; + class SpringLayout; + class SpringLayout$Constraints; + } + } +} + +class javax::swing::SpringLayout : public ::java::lang::Object +{ + +public: + SpringLayout(); + virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual ::javax::swing::Spring * getConstraint(::java::lang::String *, ::java::awt::Component *); + virtual ::javax::swing::SpringLayout$Constraints * getConstraints(::java::awt::Component *); + virtual jfloat getLayoutAlignmentX(::java::awt::Container *); + virtual jfloat getLayoutAlignmentY(::java::awt::Container *); + virtual void invalidateLayout(::java::awt::Container *); +private: + ::javax::swing::SpringLayout$Constraints * initContainer(::java::awt::Container *); +public: + virtual void layoutContainer(::java::awt::Container *); + virtual ::java::awt::Dimension * maximumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual void putConstraint(::java::lang::String *, ::java::awt::Component *, jint, ::java::lang::String *, ::java::awt::Component *); + virtual void putConstraint(::java::lang::String *, ::java::awt::Component *, ::javax::swing::Spring *, ::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); + static ::java::lang::String * EAST; + static ::java::lang::String * NORTH; + static ::java::lang::String * SOUTH; + static ::java::lang::String * WEST; +private: + ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) constraintsMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SpringLayout__ diff --git a/libjava/javax/swing/SwingConstants.h b/libjava/javax/swing/SwingConstants.h new file mode 100644 index 00000000000..7ca0a9bcf8e --- /dev/null +++ b/libjava/javax/swing/SwingConstants.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SwingConstants__ +#define __javax_swing_SwingConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SwingConstants; + } + } +} + +class javax::swing::SwingConstants : public ::java::lang::Object +{ + +public: + static const jint CENTER = 0; + static const jint TOP = 1; + static const jint LEFT = 2; + static const jint BOTTOM = 3; + static const jint RIGHT = 4; + static const jint NORTH = 1; + static const jint NORTH_EAST = 2; + static const jint EAST = 3; + static const jint SOUTH_EAST = 4; + static const jint SOUTH = 5; + static const jint SOUTH_WEST = 6; + static const jint WEST = 7; + static const jint NORTH_WEST = 8; + static const jint HORIZONTAL = 0; + static const jint VERTICAL = 1; + static const jint LEADING = 10; + static const jint TRAILING = 11; + static const jint NEXT = 12; + static const jint PREVIOUS = 13; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_SwingConstants__ diff --git a/libjava/javax/swing/SwingUtilities$OwnerFrame.h b/libjava/javax/swing/SwingUtilities$OwnerFrame.h new file mode 100644 index 00000000000..deb4d8412aa --- /dev/null +++ b/libjava/javax/swing/SwingUtilities$OwnerFrame.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SwingUtilities$OwnerFrame__ +#define __javax_swing_SwingUtilities$OwnerFrame__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SwingUtilities$OwnerFrame; + } + } +} + +class javax::swing::SwingUtilities$OwnerFrame : public ::java::awt::Frame +{ + + SwingUtilities$OwnerFrame(); +public: + virtual void setVisible(jboolean); + virtual jboolean isShowing(); +public: // actually package-private + SwingUtilities$OwnerFrame(::javax::swing::SwingUtilities$OwnerFrame *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SwingUtilities$OwnerFrame__ diff --git a/libjava/javax/swing/SwingUtilities.h b/libjava/javax/swing/SwingUtilities.h new file mode 100644 index 00000000000..3f75d967f72 --- /dev/null +++ b/libjava/javax/swing/SwingUtilities.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_SwingUtilities__ +#define __javax_swing_SwingUtilities__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class FontMetrics; + class Graphics; + class Point; + class Rectangle; + class Window; + namespace event + { + class KeyEvent; + class MouseEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleStateSet; + } + namespace swing + { + class Action; + class ActionMap; + class Icon; + class InputMap; + class JComponent; + class JRootPane; + class KeyStroke; + class SwingUtilities; + class SwingUtilities$OwnerFrame; + } + } +} + +class javax::swing::SwingUtilities : public ::java::lang::Object +{ + + SwingUtilities(); +public: + static ::java::awt::Rectangle * calculateInnerArea(::javax::swing::JComponent *, ::java::awt::Rectangle *); + static ::java::awt::Component * findFocusOwner(::java::awt::Component *); + static ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Component *, ::java::awt::Point *); + static ::javax::accessibility::Accessible * getAccessibleChild(::java::awt::Component *, jint); + static jint getAccessibleChildrenCount(::java::awt::Component *); + static jint getAccessibleIndexInParent(::java::awt::Component *); + static ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(::java::awt::Component *); + static ::java::awt::Rectangle * getLocalBounds(::java::awt::Component *); + static ::javax::swing::JRootPane * getRootPane(::java::awt::Component *); + static ::java::awt::Container * getAncestorNamed(::java::lang::String *, ::java::awt::Component *); + static ::java::awt::Container * getAncestorOfClass(::java::lang::Class *, ::java::awt::Component *); + static ::java::awt::Window * getWindowAncestor(::java::awt::Component *); + static ::java::awt::Window * windowForComponent(::java::awt::Component *); + static ::java::awt::Component * getRoot(::java::awt::Component *); + static jboolean isDescendingFrom(::java::awt::Component *, ::java::awt::Component *); + static ::java::awt::Component * getDeepestComponentAt(::java::awt::Component *, jint, jint); + static void convertPointToScreen(::java::awt::Point *, ::java::awt::Component *); + static void convertPointFromScreen(::java::awt::Point *, ::java::awt::Component *); + static ::java::awt::Point * convertPoint(::java::awt::Component *, jint, jint, ::java::awt::Component *); + static ::java::awt::Point * convertPoint(::java::awt::Component *, ::java::awt::Point *, ::java::awt::Component *); + static ::java::awt::Rectangle * convertRectangle(::java::awt::Component *, ::java::awt::Rectangle *, ::java::awt::Component *); + static ::java::awt::event::MouseEvent * convertMouseEvent(::java::awt::Component *, ::java::awt::event::MouseEvent *, ::java::awt::Component *); + static void updateComponentTreeUI(::java::awt::Component *); +private: + static void updateComponentTreeUIImpl(::java::awt::Component *); +public: + static ::java::lang::String * layoutCompoundLabel(::javax::swing::JComponent *, ::java::awt::FontMetrics *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, jint); + static ::java::lang::String * layoutCompoundLabel(::java::awt::FontMetrics *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, jint); +private: + static ::java::lang::String * layoutCompoundLabelImpl(::javax::swing::JComponent *, ::java::awt::FontMetrics *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, jint); + static ::java::lang::String * clipString(::javax::swing::JComponent *, ::java::awt::FontMetrics *, ::java::lang::String *, jint); +public: + static void invokeLater(::java::lang::Runnable *); + static void invokeAndWait(::java::lang::Runnable *); + static jboolean isEventDispatchThread(); + static void paintComponent(::java::awt::Graphics *, ::java::awt::Component *, ::java::awt::Container *, jint, jint, jint, jint); + static void paintComponent(::java::awt::Graphics *, ::java::awt::Component *, ::java::awt::Container *, ::java::awt::Rectangle *); +public: // actually package-private + static ::java::awt::Window * getOwnerFrame(::java::awt::Window *); +public: + static jboolean isLeftMouseButton(::java::awt::event::MouseEvent *); + static jboolean isMiddleMouseButton(::java::awt::event::MouseEvent *); + static jboolean isRightMouseButton(::java::awt::event::MouseEvent *); + static jboolean notifyAction(::javax::swing::Action *, ::javax::swing::KeyStroke *, ::java::awt::event::KeyEvent *, ::java::lang::Object *, jint); + static void replaceUIActionMap(::javax::swing::JComponent *, ::javax::swing::ActionMap *); + static void replaceUIInputMap(::javax::swing::JComponent *, jint, ::javax::swing::InputMap *); + static JArray< ::java::awt::Rectangle * > * computeDifference(::java::awt::Rectangle *, ::java::awt::Rectangle *); + static ::java::awt::Rectangle * computeIntersection(jint, jint, jint, jint, ::java::awt::Rectangle *); + static jint computeStringWidth(::java::awt::FontMetrics *, ::java::lang::String *); + static ::java::awt::Rectangle * computeUnion(jint, jint, jint, jint, ::java::awt::Rectangle *); + static jboolean isRectangleContainingRectangle(::java::awt::Rectangle *, ::java::awt::Rectangle *); + static ::javax::swing::InputMap * getUIInputMap(::javax::swing::JComponent *, jint); + static ::javax::swing::ActionMap * getUIActionMap(::javax::swing::JComponent *); + static jboolean processKeyBindings(::java::awt::event::KeyEvent *); +public: // actually package-private + static ::java::lang::String * convertHorizontalAlignmentCodeToString(jint); + static ::java::lang::String * convertVerticalAlignmentCodeToString(jint); + static ::java::lang::String * convertWindowConstantToString(jint); + static void convertRectangleToAncestor(::java::awt::Component *, ::java::awt::Rectangle *, ::java::awt::Component *); +private: + static ::javax::swing::SwingUtilities$OwnerFrame * ownerFrame; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_SwingUtilities__ diff --git a/libjava/javax/swing/Timer$1.h b/libjava/javax/swing/Timer$1.h new file mode 100644 index 00000000000..e0057f6590e --- /dev/null +++ b/libjava/javax/swing/Timer$1.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Timer$1__ +#define __javax_swing_Timer$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Timer; + class Timer$1; + } + } +} + +class javax::swing::Timer$1 : public ::java::lang::Object +{ + +public: // actually package-private + Timer$1(::javax::swing::Timer *); +public: + void run(); +public: // actually package-private + ::javax::swing::Timer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Timer$1__ diff --git a/libjava/javax/swing/Timer$Task.h b/libjava/javax/swing/Timer$Task.h new file mode 100644 index 00000000000..94005aaccd9 --- /dev/null +++ b/libjava/javax/swing/Timer$Task.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Timer$Task__ +#define __javax_swing_Timer$Task__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Timer; + class Timer$Task; + } + } +} + +class javax::swing::Timer$Task : public ::java::util::TimerTask +{ + + Timer$Task(::javax::swing::Timer *); +public: + virtual void run(); +public: // actually package-private + Timer$Task(::javax::swing::Timer *, ::javax::swing::Timer$Task *); + ::javax::swing::Timer * __attribute__((aligned(__alignof__( ::java::util::TimerTask)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Timer$Task__ diff --git a/libjava/javax/swing/Timer.h b/libjava/javax/swing/Timer.h new file mode 100644 index 00000000000..9768bdfb7a9 --- /dev/null +++ b/libjava/javax/swing/Timer.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_Timer__ +#define __javax_swing_Timer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ActionListener; + } + } + } + namespace javax + { + namespace swing + { + class Timer; + class Timer$Task; + namespace event + { + class EventListenerList; + } + } + } +} + +class javax::swing::Timer : public ::java::lang::Object +{ + +public: + Timer(jint, ::java::awt::event::ActionListener *); + virtual JArray< ::java::awt::event::ActionListener * > * getActionListeners(); + virtual void setCoalesce(jboolean); + virtual jboolean isCoalesce(); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + static void setLogTimers(jboolean); + static jboolean getLogTimers(); + virtual void setDelay(jint); + virtual jint getDelay(); + virtual void setInitialDelay(jint); + virtual jint getInitialDelay(); + virtual void setRepeats(jboolean); + virtual jboolean isRepeats(); + virtual jboolean isRunning(); + virtual void addActionListener(::java::awt::event::ActionListener *); + virtual void removeActionListener(::java::awt::event::ActionListener *); + virtual void restart(); + virtual void start(); + virtual void stop(); +public: // actually protected + virtual void fireActionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + virtual void fireActionPerformed(); + virtual void drainEvents(); + virtual void queueEvent(); +private: + static const jlong serialVersionUID = -1116180831621385484LL; + ::java::lang::Runnable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) drainer; + static ::java::util::Timer * timer; +public: // actually package-private + static jboolean logTimers; +public: // actually protected + ::javax::swing::event::EventListenerList * listenerList; +public: // actually package-private + jboolean coalesce; + jboolean repeats; + jint delay; + jint initialDelay; + jint ticks; + ::javax::swing::Timer$Task * task; +private: + jlong queue; + ::java::lang::Object * queueLock; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_Timer__ diff --git a/libjava/javax/swing/ToolTipManager$insideTimerAction.h b/libjava/javax/swing/ToolTipManager$insideTimerAction.h new file mode 100644 index 00000000000..52fe573fe20 --- /dev/null +++ b/libjava/javax/swing/ToolTipManager$insideTimerAction.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ToolTipManager$insideTimerAction__ +#define __javax_swing_ToolTipManager$insideTimerAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class ToolTipManager; + class ToolTipManager$insideTimerAction; + } + } +} + +class javax::swing::ToolTipManager$insideTimerAction : public ::java::lang::Object +{ + +public: // actually protected + ToolTipManager$insideTimerAction(::javax::swing::ToolTipManager *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::ToolTipManager * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ToolTipManager$insideTimerAction__ diff --git a/libjava/javax/swing/ToolTipManager$outsideTimerAction.h b/libjava/javax/swing/ToolTipManager$outsideTimerAction.h new file mode 100644 index 00000000000..1f418783b61 --- /dev/null +++ b/libjava/javax/swing/ToolTipManager$outsideTimerAction.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ToolTipManager$outsideTimerAction__ +#define __javax_swing_ToolTipManager$outsideTimerAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class ToolTipManager; + class ToolTipManager$outsideTimerAction; + } + } +} + +class javax::swing::ToolTipManager$outsideTimerAction : public ::java::lang::Object +{ + +public: // actually protected + ToolTipManager$outsideTimerAction(::javax::swing::ToolTipManager *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::ToolTipManager * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ToolTipManager$outsideTimerAction__ diff --git a/libjava/javax/swing/ToolTipManager$stillInsideTimerAction.h b/libjava/javax/swing/ToolTipManager$stillInsideTimerAction.h new file mode 100644 index 00000000000..2e334c56496 --- /dev/null +++ b/libjava/javax/swing/ToolTipManager$stillInsideTimerAction.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ToolTipManager$stillInsideTimerAction__ +#define __javax_swing_ToolTipManager$stillInsideTimerAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class ToolTipManager; + class ToolTipManager$stillInsideTimerAction; + } + } +} + +class javax::swing::ToolTipManager$stillInsideTimerAction : public ::java::lang::Object +{ + +public: // actually protected + ToolTipManager$stillInsideTimerAction(::javax::swing::ToolTipManager *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::ToolTipManager * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ToolTipManager$stillInsideTimerAction__ diff --git a/libjava/javax/swing/ToolTipManager.h b/libjava/javax/swing/ToolTipManager.h new file mode 100644 index 00000000000..c838ac43daf --- /dev/null +++ b/libjava/javax/swing/ToolTipManager.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ToolTipManager__ +#define __javax_swing_ToolTipManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Point; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JToolTip; + class Popup; + class Timer; + class ToolTipManager; + } + } +} + +class javax::swing::ToolTipManager : public ::java::awt::event::MouseAdapter +{ + +public: // actually package-private + ToolTipManager(); +public: + static ::javax::swing::ToolTipManager * sharedInstance(); + virtual void setEnabled(jboolean); + virtual jboolean isEnabled(); + virtual jboolean isLightWeightPopupEnabled(); + virtual void setLightWeightPopupEnabled(jboolean); + virtual jint getInitialDelay(); + virtual void setInitialDelay(jint); + virtual jint getDismissDelay(); + virtual void setDismissDelay(jint); + virtual jint getReshowDelay(); + virtual void setReshowDelay(jint); + virtual void registerComponent(::javax::swing::JComponent *); + virtual void unregisterComponent(::javax::swing::JComponent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); +private: + void checkTipUpdate(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual void showTip(); +private: + ::java::awt::Point * adjustLocation(::java::awt::Point *, ::java::awt::Component *, ::java::awt::Dimension *); +public: // actually package-private + virtual void hideTip(); +private: + ::java::awt::Component * getContentPaneDeepestComponent(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::Timer * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) enterTimer; + ::javax::swing::Timer * exitTimer; + ::javax::swing::Timer * insideTimer; +private: + jboolean enabled; +public: // actually protected + jboolean lightWeightPopupEnabled; + jboolean heavyWeightPopupEnabled; +private: + static ::javax::swing::ToolTipManager * shared; + ::javax::swing::JComponent * currentComponent; + ::javax::swing::JToolTip * currentTip; + ::java::lang::String * toolTipText; + ::java::awt::Point * currentPoint; + ::javax::swing::Popup * popup; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ToolTipManager__ diff --git a/libjava/javax/swing/TransferHandler$PropertyTransferable.h b/libjava/javax/swing/TransferHandler$PropertyTransferable.h new file mode 100644 index 00000000000..662bce0cac2 --- /dev/null +++ b/libjava/javax/swing/TransferHandler$PropertyTransferable.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_TransferHandler$PropertyTransferable__ +#define __javax_swing_TransferHandler$PropertyTransferable__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace datatransfer + { + class DataFlavor; + } + } + namespace beans + { + class PropertyDescriptor; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class TransferHandler$PropertyTransferable; + } + } +} + +class javax::swing::TransferHandler$PropertyTransferable : public ::java::lang::Object +{ + +public: // actually package-private + TransferHandler$PropertyTransferable(::javax::swing::JComponent *, ::java::beans::PropertyDescriptor *); +public: + virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors(); + virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *); + virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *); +private: + ::javax::swing::JComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) component; + ::java::beans::PropertyDescriptor * property; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_TransferHandler$PropertyTransferable__ diff --git a/libjava/javax/swing/TransferHandler$TransferAction.h b/libjava/javax/swing/TransferHandler$TransferAction.h new file mode 100644 index 00000000000..f11d879681b --- /dev/null +++ b/libjava/javax/swing/TransferHandler$TransferAction.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_TransferHandler$TransferAction__ +#define __javax_swing_TransferHandler$TransferAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace datatransfer + { + class Clipboard; + } + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + class TransferHandler$TransferAction; + } + } +} + +class javax::swing::TransferHandler$TransferAction : public ::javax::swing::AbstractAction +{ + +public: + TransferHandler$TransferAction(::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + static ::java::awt::datatransfer::Clipboard * getClipboard(::javax::swing::JComponent *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) command; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_TransferHandler$TransferAction__ diff --git a/libjava/javax/swing/TransferHandler.h b/libjava/javax/swing/TransferHandler.h new file mode 100644 index 00000000000..24220c88c1a --- /dev/null +++ b/libjava/javax/swing/TransferHandler.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_TransferHandler__ +#define __javax_swing_TransferHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace datatransfer + { + class Clipboard; + class DataFlavor; + class Transferable; + } + namespace event + { + class InputEvent; + } + } + namespace beans + { + class PropertyDescriptor; + } + } + namespace javax + { + namespace swing + { + class Action; + class Icon; + class JComponent; + class TransferHandler; + } + } +} + +class javax::swing::TransferHandler : public ::java::lang::Object +{ + +public: + static ::javax::swing::Action * getCopyAction(); + static ::javax::swing::Action * getCutAction(); + static ::javax::swing::Action * getPasteAction(); +public: // actually protected + TransferHandler(); +public: + TransferHandler(::java::lang::String *); + virtual jboolean canImport(::javax::swing::JComponent *, JArray< ::java::awt::datatransfer::DataFlavor * > *); +public: // actually protected + virtual ::java::awt::datatransfer::Transferable * createTransferable(::javax::swing::JComponent *); +public: + virtual void exportAsDrag(::javax::swing::JComponent *, ::java::awt::event::InputEvent *, jint); +public: // actually protected + virtual void exportDone(::javax::swing::JComponent *, ::java::awt::datatransfer::Transferable *, jint); +public: + virtual void exportToClipboard(::javax::swing::JComponent *, ::java::awt::datatransfer::Clipboard *, jint); + virtual jint getSourceActions(::javax::swing::JComponent *); + virtual ::javax::swing::Icon * getVisualRepresentation(::java::awt::datatransfer::Transferable *); + virtual jboolean importData(::javax::swing::JComponent *, ::java::awt::datatransfer::Transferable *); +private: + ::java::beans::PropertyDescriptor * getPropertyDescriptor(::javax::swing::JComponent *); + ::java::awt::datatransfer::DataFlavor * getPropertyDataFlavor(::java::lang::Class *, JArray< ::java::awt::datatransfer::DataFlavor * > *); + static const jlong serialVersionUID = -967749805571669910LL; + static ::java::lang::String * COMMAND_COPY; + static ::java::lang::String * COMMAND_CUT; + static ::java::lang::String * COMMAND_PASTE; +public: + static const jint NONE = 0; + static const jint COPY = 1; + static const jint MOVE = 2; + static const jint COPY_OR_MOVE = 3; +private: + static ::javax::swing::Action * copyAction; + static ::javax::swing::Action * cutAction; + static ::javax::swing::Action * pasteAction; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) sourceActions; + ::javax::swing::Icon * visualRepresentation; + ::java::lang::String * propertyName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_TransferHandler__ diff --git a/libjava/javax/swing/UIDefaults$1.h b/libjava/javax/swing/UIDefaults$1.h new file mode 100644 index 00000000000..ac0aecd754d --- /dev/null +++ b/libjava/javax/swing/UIDefaults$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$1__ +#define __javax_swing_UIDefaults$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$1; + class UIDefaults$ProxyLazyValue; + } + } +} + +class javax::swing::UIDefaults$1 : public ::java::lang::Object +{ + +public: // actually package-private + UIDefaults$1(::javax::swing::UIDefaults$ProxyLazyValue *, ::java::lang::String *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::UIDefaults$ProxyLazyValue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +private: + ::java::lang::String * val$className; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIDefaults$1__ diff --git a/libjava/javax/swing/UIDefaults$2.h b/libjava/javax/swing/UIDefaults$2.h new file mode 100644 index 00000000000..3250ba983aa --- /dev/null +++ b/libjava/javax/swing/UIDefaults$2.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$2__ +#define __javax_swing_UIDefaults$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$2; + class UIDefaults$ProxyLazyValue; + } + } +} + +class javax::swing::UIDefaults$2 : public ::java::lang::Object +{ + +public: // actually package-private + UIDefaults$2(::javax::swing::UIDefaults$ProxyLazyValue *, ::java::lang::String *, ::java::lang::String *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::UIDefaults$ProxyLazyValue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +private: + ::java::lang::String * val$className; + ::java::lang::String * val$methodName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIDefaults$2__ diff --git a/libjava/javax/swing/UIDefaults$3.h b/libjava/javax/swing/UIDefaults$3.h new file mode 100644 index 00000000000..f3faaf71e4f --- /dev/null +++ b/libjava/javax/swing/UIDefaults$3.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$3__ +#define __javax_swing_UIDefaults$3__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$3; + class UIDefaults$ProxyLazyValue; + } + } +} + +class javax::swing::UIDefaults$3 : public ::java::lang::Object +{ + +public: // actually package-private + UIDefaults$3(::javax::swing::UIDefaults$ProxyLazyValue *, ::java::lang::String *, JArray< ::java::lang::Class * > *, JArray< ::java::lang::Object * > *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::UIDefaults$ProxyLazyValue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +private: + ::java::lang::String * val$className; + JArray< ::java::lang::Class * > * val$clss; + JArray< ::java::lang::Object * > * val$objs; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIDefaults$3__ diff --git a/libjava/javax/swing/UIDefaults$4.h b/libjava/javax/swing/UIDefaults$4.h new file mode 100644 index 00000000000..e5ff98dafb4 --- /dev/null +++ b/libjava/javax/swing/UIDefaults$4.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$4__ +#define __javax_swing_UIDefaults$4__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$4; + class UIDefaults$ProxyLazyValue; + } + } +} + +class javax::swing::UIDefaults$4 : public ::java::lang::Object +{ + +public: // actually package-private + UIDefaults$4(::javax::swing::UIDefaults$ProxyLazyValue *, ::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Class * > *, JArray< ::java::lang::Object * > *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::UIDefaults$ProxyLazyValue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +private: + ::java::lang::String * val$className; + ::java::lang::String * val$methodName; + JArray< ::java::lang::Class * > * val$clss; + JArray< ::java::lang::Object * > * val$objs; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIDefaults$4__ diff --git a/libjava/javax/swing/UIDefaults$ActiveValue.h b/libjava/javax/swing/UIDefaults$ActiveValue.h new file mode 100644 index 00000000000..37d1b403418 --- /dev/null +++ b/libjava/javax/swing/UIDefaults$ActiveValue.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$ActiveValue__ +#define __javax_swing_UIDefaults$ActiveValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$ActiveValue; + } + } +} + +class javax::swing::UIDefaults$ActiveValue : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * createValue(::javax::swing::UIDefaults *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_UIDefaults$ActiveValue__ diff --git a/libjava/javax/swing/UIDefaults$LazyInputMap.h b/libjava/javax/swing/UIDefaults$LazyInputMap.h new file mode 100644 index 00000000000..1072c003043 --- /dev/null +++ b/libjava/javax/swing/UIDefaults$LazyInputMap.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$LazyInputMap__ +#define __javax_swing_UIDefaults$LazyInputMap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$LazyInputMap; + } + } +} + +class javax::swing::UIDefaults$LazyInputMap : public ::java::lang::Object +{ + +public: + UIDefaults$LazyInputMap(JArray< ::java::lang::Object * > *); + virtual ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) bind; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIDefaults$LazyInputMap__ diff --git a/libjava/javax/swing/UIDefaults$LazyValue.h b/libjava/javax/swing/UIDefaults$LazyValue.h new file mode 100644 index 00000000000..bd451e45b34 --- /dev/null +++ b/libjava/javax/swing/UIDefaults$LazyValue.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$LazyValue__ +#define __javax_swing_UIDefaults$LazyValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$LazyValue; + } + } +} + +class javax::swing::UIDefaults$LazyValue : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * createValue(::javax::swing::UIDefaults *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_UIDefaults$LazyValue__ diff --git a/libjava/javax/swing/UIDefaults$ProxyLazyValue.h b/libjava/javax/swing/UIDefaults$ProxyLazyValue.h new file mode 100644 index 00000000000..ea6632c18ad --- /dev/null +++ b/libjava/javax/swing/UIDefaults$ProxyLazyValue.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults$ProxyLazyValue__ +#define __javax_swing_UIDefaults$ProxyLazyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIDefaults$LazyValue; + class UIDefaults$ProxyLazyValue; + } + } +} + +class javax::swing::UIDefaults$ProxyLazyValue : public ::java::lang::Object +{ + +public: + UIDefaults$ProxyLazyValue(::java::lang::String *); + UIDefaults$ProxyLazyValue(::java::lang::String *, ::java::lang::String *); + UIDefaults$ProxyLazyValue(::java::lang::String *, JArray< ::java::lang::Object * > *); + UIDefaults$ProxyLazyValue(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *); + virtual ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::UIDefaults$LazyValue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) inner; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIDefaults$ProxyLazyValue__ diff --git a/libjava/javax/swing/UIDefaults.h b/libjava/javax/swing/UIDefaults.h new file mode 100644 index 00000000000..2daecceee58 --- /dev/null +++ b/libjava/javax/swing/UIDefaults.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIDefaults__ +#define __javax_swing_UIDefaults__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Font; + class Insets; + } + namespace beans + { + class PropertyChangeListener; + class PropertyChangeSupport; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JComponent; + class UIDefaults; + namespace border + { + class Border; + } + namespace plaf + { + class ComponentUI; + } + } + } +} + +class javax::swing::UIDefaults : public ::java::util::Hashtable +{ + +public: + UIDefaults(); + UIDefaults(JArray< ::java::lang::Object * > *); + virtual ::java::lang::Object * get(::java::lang::Object *); + virtual ::java::lang::Object * get(::java::lang::Object *, ::java::util::Locale *); + virtual ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *); + virtual void putDefaults(JArray< ::java::lang::Object * > *); +private: + ::java::lang::Object * checkAndPut(::java::lang::Object *, ::java::lang::Object *); +public: + virtual ::java::awt::Font * getFont(::java::lang::Object *); + virtual ::java::awt::Font * getFont(::java::lang::Object *, ::java::util::Locale *); + virtual ::java::awt::Color * getColor(::java::lang::Object *); + virtual ::java::awt::Color * getColor(::java::lang::Object *, ::java::util::Locale *); + virtual ::javax::swing::Icon * getIcon(::java::lang::Object *); + virtual ::javax::swing::Icon * getIcon(::java::lang::Object *, ::java::util::Locale *); + virtual ::javax::swing::border::Border * getBorder(::java::lang::Object *); + virtual ::javax::swing::border::Border * getBorder(::java::lang::Object *, ::java::util::Locale *); + virtual ::java::lang::String * getString(::java::lang::Object *); + virtual ::java::lang::String * getString(::java::lang::Object *, ::java::util::Locale *); + virtual jint getInt(::java::lang::Object *); + virtual jint getInt(::java::lang::Object *, ::java::util::Locale *); + virtual jboolean getBoolean(::java::lang::Object *); + virtual jboolean getBoolean(::java::lang::Object *, ::java::util::Locale *); + virtual ::java::awt::Insets * getInsets(::java::lang::Object *); + virtual ::java::awt::Insets * getInsets(::java::lang::Object *, ::java::util::Locale *); + virtual ::java::awt::Dimension * getDimension(::java::lang::Object *); + virtual ::java::awt::Dimension * getDimension(::java::lang::Object *, ::java::util::Locale *); + virtual ::java::lang::Class * getUIClass(::java::lang::String *, ::java::lang::ClassLoader *); + virtual ::java::lang::Class * getUIClass(::java::lang::String *); +public: // actually protected + virtual void getUIError(::java::lang::String *); +public: + virtual ::javax::swing::plaf::ComponentUI * getUI(::javax::swing::JComponent *); + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(); +public: // actually protected + virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); +public: + virtual void addResourceBundle(::java::lang::String *); + virtual void removeResourceBundle(::java::lang::String *); + virtual void setDefaultLocale(::java::util::Locale *); + virtual ::java::util::Locale * getDefaultLocale(); +private: + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::util::Hashtable)))) bundles; + ::java::util::Locale * defaultLocale; + ::java::beans::PropertyChangeSupport * propertyChangeSupport; + static const jlong serialVersionUID = 7341222528856548117LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIDefaults__ diff --git a/libjava/javax/swing/UIManager$LookAndFeelInfo.h b/libjava/javax/swing/UIManager$LookAndFeelInfo.h new file mode 100644 index 00000000000..581d76beef7 --- /dev/null +++ b/libjava/javax/swing/UIManager$LookAndFeelInfo.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIManager$LookAndFeelInfo__ +#define __javax_swing_UIManager$LookAndFeelInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIManager$LookAndFeelInfo; + } + } +} + +class javax::swing::UIManager$LookAndFeelInfo : public ::java::lang::Object +{ + +public: + UIManager$LookAndFeelInfo(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getClassName(); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::String * clazz; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIManager$LookAndFeelInfo__ diff --git a/libjava/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.h b/libjava/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.h new file mode 100644 index 00000000000..a256eaf3e70 --- /dev/null +++ b/libjava/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIManager$MultiplexUIDefaults$MultiplexEnumeration__ +#define __javax_swing_UIManager$MultiplexUIDefaults$MultiplexEnumeration__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIManager$MultiplexUIDefaults; + class UIManager$MultiplexUIDefaults$MultiplexEnumeration; + } + } +} + +class javax::swing::UIManager$MultiplexUIDefaults$MultiplexEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + UIManager$MultiplexUIDefaults$MultiplexEnumeration(::javax::swing::UIManager$MultiplexUIDefaults *, ::java::util::Enumeration *, ::java::util::Enumeration *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + JArray< ::java::util::Enumeration * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) enums; + jint i; + ::javax::swing::UIManager$MultiplexUIDefaults * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIManager$MultiplexUIDefaults$MultiplexEnumeration__ diff --git a/libjava/javax/swing/UIManager$MultiplexUIDefaults.h b/libjava/javax/swing/UIManager$MultiplexUIDefaults.h new file mode 100644 index 00000000000..16a03c60dd2 --- /dev/null +++ b/libjava/javax/swing/UIManager$MultiplexUIDefaults.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIManager$MultiplexUIDefaults__ +#define __javax_swing_UIManager$MultiplexUIDefaults__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + class UIManager$MultiplexUIDefaults; + } + } +} + +class javax::swing::UIManager$MultiplexUIDefaults : public ::javax::swing::UIDefaults +{ + +public: // actually package-private + UIManager$MultiplexUIDefaults(::javax::swing::UIDefaults *); +public: + virtual ::java::lang::Object * get(::java::lang::Object *); + virtual ::java::lang::Object * get(::java::lang::Object *, ::java::util::Locale *); + virtual ::java::lang::Object * remove(::java::lang::Object *); + virtual jint size(); + virtual ::java::util::Enumeration * keys(); + virtual ::java::util::Enumeration * elements(); +public: // actually package-private + ::javax::swing::UIDefaults * __attribute__((aligned(__alignof__( ::javax::swing::UIDefaults)))) fallback; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIManager$MultiplexUIDefaults__ diff --git a/libjava/javax/swing/UIManager.h b/libjava/javax/swing/UIManager.h new file mode 100644 index 00000000000..c2cdf16cfed --- /dev/null +++ b/libjava/javax/swing/UIManager.h @@ -0,0 +1,109 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UIManager__ +#define __javax_swing_UIManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Font; + class Insets; + } + namespace beans + { + class PropertyChangeListener; + class PropertyChangeSupport; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JComponent; + class LookAndFeel; + class UIDefaults; + class UIManager; + class UIManager$LookAndFeelInfo; + class UIManager$MultiplexUIDefaults; + namespace border + { + class Border; + } + namespace plaf + { + class ComponentUI; + } + } + } +} + +class javax::swing::UIManager : public ::java::lang::Object +{ + +public: + UIManager(); + static void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + static void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + static JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(); + static void addAuxiliaryLookAndFeel(::javax::swing::LookAndFeel *); + static jboolean removeAuxiliaryLookAndFeel(::javax::swing::LookAndFeel *); + static JArray< ::javax::swing::LookAndFeel * > * getAuxiliaryLookAndFeels(); + static ::java::lang::Object * get(::java::lang::Object *); + static ::java::lang::Object * get(::java::lang::Object *, ::java::util::Locale *); + static jboolean getBoolean(::java::lang::Object *); + static jboolean getBoolean(::java::lang::Object *, ::java::util::Locale *); + static ::javax::swing::border::Border * getBorder(::java::lang::Object *); + static ::javax::swing::border::Border * getBorder(::java::lang::Object *, ::java::util::Locale *); + static ::java::awt::Color * getColor(::java::lang::Object *); + static ::java::awt::Color * getColor(::java::lang::Object *, ::java::util::Locale *); + static ::java::lang::String * getCrossPlatformLookAndFeelClassName(); + static ::javax::swing::UIDefaults * getDefaults(); + static ::java::awt::Dimension * getDimension(::java::lang::Object *); + static ::java::awt::Dimension * getDimension(::java::lang::Object *, ::java::util::Locale *); + static ::java::awt::Font * getFont(::java::lang::Object *); + static ::java::awt::Font * getFont(::java::lang::Object *, ::java::util::Locale *); + static ::javax::swing::Icon * getIcon(::java::lang::Object *); + static ::javax::swing::Icon * getIcon(::java::lang::Object *, ::java::util::Locale *); + static ::java::awt::Insets * getInsets(::java::lang::Object *); + static ::java::awt::Insets * getInsets(::java::lang::Object *, ::java::util::Locale *); + static JArray< ::javax::swing::UIManager$LookAndFeelInfo * > * getInstalledLookAndFeels(); + static jint getInt(::java::lang::Object *); + static jint getInt(::java::lang::Object *, ::java::util::Locale *); + static ::javax::swing::LookAndFeel * getLookAndFeel(); + static ::javax::swing::UIDefaults * getLookAndFeelDefaults(); + static ::java::lang::String * getString(::java::lang::Object *); + static ::java::lang::String * getString(::java::lang::Object *, ::java::util::Locale *); + static ::java::lang::String * getSystemLookAndFeelClassName(); + static ::javax::swing::plaf::ComponentUI * getUI(::javax::swing::JComponent *); + static void installLookAndFeel(::java::lang::String *, ::java::lang::String *); + static void installLookAndFeel(::javax::swing::UIManager$LookAndFeelInfo *); + static ::java::lang::Object * put(::java::lang::Object *, ::java::lang::Object *); + static void setInstalledLookAndFeels(JArray< ::javax::swing::UIManager$LookAndFeelInfo * > *); + static void setLookAndFeel(::javax::swing::LookAndFeel *); + static void setLookAndFeel(::java::lang::String *); +private: + static const jlong serialVersionUID = -5547433830339189365LL; +public: // actually package-private + static JArray< ::javax::swing::UIManager$LookAndFeelInfo * > * installed; + static JArray< ::javax::swing::LookAndFeel * > * auxLookAndFeels; + static ::javax::swing::LookAndFeel * currentLookAndFeel; + static ::javax::swing::UIManager$MultiplexUIDefaults * currentUIDefaults; + static ::javax::swing::UIDefaults * lookAndFeelDefaults; + static ::java::beans::PropertyChangeSupport * listeners; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UIManager__ diff --git a/libjava/javax/swing/UnsupportedLookAndFeelException.h b/libjava/javax/swing/UnsupportedLookAndFeelException.h new file mode 100644 index 00000000000..bf5e35c1510 --- /dev/null +++ b/libjava/javax/swing/UnsupportedLookAndFeelException.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_UnsupportedLookAndFeelException__ +#define __javax_swing_UnsupportedLookAndFeelException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UnsupportedLookAndFeelException; + } + } +} + +class javax::swing::UnsupportedLookAndFeelException : public ::java::lang::Exception +{ + +public: + UnsupportedLookAndFeelException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_UnsupportedLookAndFeelException__ diff --git a/libjava/javax/swing/ViewportLayout.h b/libjava/javax/swing/ViewportLayout.h new file mode 100644 index 00000000000..9dadb49eafd --- /dev/null +++ b/libjava/javax/swing/ViewportLayout.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_ViewportLayout__ +#define __javax_swing_ViewportLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + class ViewportLayout; + } + } +} + +class javax::swing::ViewportLayout : public ::java::lang::Object +{ + +public: + ViewportLayout(); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual void layoutContainer(::java::awt::Container *); +private: + static const jlong serialVersionUID = -788225906076097229LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_ViewportLayout__ diff --git a/libjava/javax/swing/WindowConstants.h b/libjava/javax/swing/WindowConstants.h new file mode 100644 index 00000000000..8cad3c26829 --- /dev/null +++ b/libjava/javax/swing/WindowConstants.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_WindowConstants__ +#define __javax_swing_WindowConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class WindowConstants; + } + } +} + +class javax::swing::WindowConstants : public ::java::lang::Object +{ + +public: + static const jint DO_NOTHING_ON_CLOSE = 0; + static const jint HIDE_ON_CLOSE = 1; + static const jint DISPOSE_ON_CLOSE = 2; + static const jint EXIT_ON_CLOSE = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_WindowConstants__ diff --git a/libjava/javax/swing/border/AbstractBorder.h b/libjava/javax/swing/border/AbstractBorder.h new file mode 100644 index 00000000000..e91b5e98e87 --- /dev/null +++ b/libjava/javax/swing/border/AbstractBorder.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_AbstractBorder__ +#define __javax_swing_border_AbstractBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class AbstractBorder; + class Border; + } + } + } +} + +class javax::swing::border::AbstractBorder : public ::java::lang::Object +{ + +public: + AbstractBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual jboolean isBorderOpaque(); + virtual ::java::awt::Rectangle * getInteriorRectangle(::java::awt::Component *, jint, jint, jint, jint); + static ::java::awt::Rectangle * getInteriorRectangle(::java::awt::Component *, ::javax::swing::border::Border *, jint, jint, jint, jint); +public: // actually package-private + static const jlong serialVersionUID = -545885975315191844LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_AbstractBorder__ diff --git a/libjava/javax/swing/border/BevelBorder.h b/libjava/javax/swing/border/BevelBorder.h new file mode 100644 index 00000000000..369c1c57d1a --- /dev/null +++ b/libjava/javax/swing/border/BevelBorder.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_BevelBorder__ +#define __javax_swing_border_BevelBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class BevelBorder; + } + } + } +} + +class javax::swing::border::BevelBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + BevelBorder(jint); + BevelBorder(jint, ::java::awt::Color *, ::java::awt::Color *); + BevelBorder(jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual ::java::awt::Color * getHighlightOuterColor(::java::awt::Component *); + virtual ::java::awt::Color * getHighlightInnerColor(::java::awt::Component *); + virtual ::java::awt::Color * getShadowInnerColor(::java::awt::Component *); + virtual ::java::awt::Color * getShadowOuterColor(::java::awt::Component *); + virtual ::java::awt::Color * getHighlightOuterColor(); + virtual ::java::awt::Color * getHighlightInnerColor(); + virtual ::java::awt::Color * getShadowInnerColor(); + virtual ::java::awt::Color * getShadowOuterColor(); + virtual jint getBevelType(); + virtual jboolean isBorderOpaque(); +public: // actually protected + virtual void paintRaisedBevel(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintLoweredBevel(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + static void paintBevel(::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); +public: // actually package-private + static const jlong serialVersionUID = -1034942243356299676LL; +public: + static const jint RAISED = 0; + static const jint LOWERED = 1; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) bevelType; + ::java::awt::Color * highlightOuter; + ::java::awt::Color * highlightInner; + ::java::awt::Color * shadowOuter; + ::java::awt::Color * shadowInner; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_BevelBorder__ diff --git a/libjava/javax/swing/border/Border.h b/libjava/javax/swing/border/Border.h new file mode 100644 index 00000000000..7fe11ee4640 --- /dev/null +++ b/libjava/javax/swing/border/Border.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_Border__ +#define __javax_swing_border_Border__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + } + } +} + +class javax::swing::border::Border : public ::java::lang::Object +{ + +public: + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint) = 0; + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *) = 0; + virtual jboolean isBorderOpaque() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_border_Border__ diff --git a/libjava/javax/swing/border/CompoundBorder.h b/libjava/javax/swing/border/CompoundBorder.h new file mode 100644 index 00000000000..703398a730b --- /dev/null +++ b/libjava/javax/swing/border/CompoundBorder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_CompoundBorder__ +#define __javax_swing_border_CompoundBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + class CompoundBorder; + } + } + } +} + +class javax::swing::border::CompoundBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + CompoundBorder(); + CompoundBorder(::javax::swing::border::Border *, ::javax::swing::border::Border *); + virtual jboolean isBorderOpaque(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::javax::swing::border::Border * getOutsideBorder(); + virtual ::javax::swing::border::Border * getInsideBorder(); +public: // actually package-private + static const jlong serialVersionUID = 9054540377030555103LL; +public: // actually protected + ::javax::swing::border::Border * __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) insideBorder; + ::javax::swing::border::Border * outsideBorder; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_CompoundBorder__ diff --git a/libjava/javax/swing/border/EmptyBorder.h b/libjava/javax/swing/border/EmptyBorder.h new file mode 100644 index 00000000000..8658371ad61 --- /dev/null +++ b/libjava/javax/swing/border/EmptyBorder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_EmptyBorder__ +#define __javax_swing_border_EmptyBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class EmptyBorder; + } + } + } +} + +class javax::swing::border::EmptyBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + EmptyBorder(jint, jint, jint, jint); + EmptyBorder(::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual ::java::awt::Insets * getBorderInsets(); + virtual jboolean isBorderOpaque(); +public: // actually package-private + static const jlong serialVersionUID = -8116076291731988694LL; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) left; + jint right; + jint top; + jint bottom; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_EmptyBorder__ diff --git a/libjava/javax/swing/border/EtchedBorder.h b/libjava/javax/swing/border/EtchedBorder.h new file mode 100644 index 00000000000..f760547eb66 --- /dev/null +++ b/libjava/javax/swing/border/EtchedBorder.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_EtchedBorder__ +#define __javax_swing_border_EtchedBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class EtchedBorder; + } + } + } +} + +class javax::swing::border::EtchedBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + EtchedBorder(); + EtchedBorder(jint); + EtchedBorder(::java::awt::Color *, ::java::awt::Color *); + EtchedBorder(jint, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual jboolean isBorderOpaque(); + virtual jint getEtchType(); + virtual ::java::awt::Color * getHighlightColor(::java::awt::Component *); + virtual ::java::awt::Color * getHighlightColor(); + virtual ::java::awt::Color * getShadowColor(::java::awt::Component *); + virtual ::java::awt::Color * getShadowColor(); +private: + static void paintEtchedBorder(::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *); +public: // actually package-private + static const jlong serialVersionUID = 4001244046866360638LL; +public: + static const jint RAISED = 0; + static const jint LOWERED = 1; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) etchType; + ::java::awt::Color * highlight; + ::java::awt::Color * shadow; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_EtchedBorder__ diff --git a/libjava/javax/swing/border/LineBorder.h b/libjava/javax/swing/border/LineBorder.h new file mode 100644 index 00000000000..dd8d05dc57e --- /dev/null +++ b/libjava/javax/swing/border/LineBorder.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_LineBorder__ +#define __javax_swing_border_LineBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + class LineBorder; + } + } + } +} + +class javax::swing::border::LineBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + LineBorder(::java::awt::Color *); + LineBorder(::java::awt::Color *, jint); + LineBorder(::java::awt::Color *, jint, jboolean); + static ::javax::swing::border::Border * createBlackLineBorder(); + static ::javax::swing::border::Border * createGrayLineBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual ::java::awt::Color * getLineColor(); + virtual jint getThickness(); + virtual jboolean getRoundedCorners(); + virtual jboolean isBorderOpaque(); +public: // actually package-private + static const jlong serialVersionUID = -787563427772288970LL; +private: + static ::javax::swing::border::LineBorder * blackLineBorder; + static ::javax::swing::border::LineBorder * grayLineBorder; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) thickness; + ::java::awt::Color * lineColor; + jboolean roundedCorners; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_LineBorder__ diff --git a/libjava/javax/swing/border/MatteBorder.h b/libjava/javax/swing/border/MatteBorder.h new file mode 100644 index 00000000000..76dc3d981aa --- /dev/null +++ b/libjava/javax/swing/border/MatteBorder.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_MatteBorder__ +#define __javax_swing_border_MatteBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace border + { + class MatteBorder; + } + } + } +} + +class javax::swing::border::MatteBorder : public ::javax::swing::border::EmptyBorder +{ + +public: + MatteBorder(jint, jint, jint, jint, ::java::awt::Color *); + MatteBorder(::java::awt::Insets *, ::java::awt::Color *); + MatteBorder(jint, jint, jint, jint, ::javax::swing::Icon *); + MatteBorder(::java::awt::Insets *, ::javax::swing::Icon *); + MatteBorder(::javax::swing::Icon *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual ::java::awt::Insets * getBorderInsets(); + virtual ::java::awt::Color * getMatteColor(); + virtual ::javax::swing::Icon * getTileIcon(); + virtual jboolean isBorderOpaque(); +private: + void paintEdge(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); +public: // actually package-private + static const jlong serialVersionUID = 4422248989617298224LL; +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::border::EmptyBorder)))) color; + ::javax::swing::Icon * tileIcon; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_MatteBorder__ diff --git a/libjava/javax/swing/border/SoftBevelBorder.h b/libjava/javax/swing/border/SoftBevelBorder.h new file mode 100644 index 00000000000..fa8ff5e6f51 --- /dev/null +++ b/libjava/javax/swing/border/SoftBevelBorder.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_SoftBevelBorder__ +#define __javax_swing_border_SoftBevelBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class SoftBevelBorder; + } + } + } +} + +class javax::swing::border::SoftBevelBorder : public ::javax::swing::border::BevelBorder +{ + +public: + SoftBevelBorder(jint); + SoftBevelBorder(jint, ::java::awt::Color *, ::java::awt::Color *); + SoftBevelBorder(jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual jboolean isBorderOpaque(); +private: + static void paintSoftBevel(::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); +public: // actually package-private + static const jlong serialVersionUID = 5248789787305979975LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_SoftBevelBorder__ diff --git a/libjava/javax/swing/border/TitledBorder.h b/libjava/javax/swing/border/TitledBorder.h new file mode 100644 index 00000000000..42d6b599dae --- /dev/null +++ b/libjava/javax/swing/border/TitledBorder.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_border_TitledBorder__ +#define __javax_swing_border_TitledBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Dimension; + class Font; + class FontMetrics; + class Graphics; + class Insets; + class Point; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + class TitledBorder; + } + } + } +} + +class javax::swing::border::TitledBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + TitledBorder(::java::lang::String *); + TitledBorder(::javax::swing::border::Border *); + TitledBorder(::javax::swing::border::Border *, ::java::lang::String *); + TitledBorder(::javax::swing::border::Border *, ::java::lang::String *, jint, jint); + TitledBorder(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *); + TitledBorder(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + void layoutBorderWithTitle(::java::awt::Component *, ::java::awt::FontMetrics *, ::java::awt::Rectangle *, ::java::awt::Point *); + void paintBorderWithTitle(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Rectangle *, ::java::awt::Point *, ::java::awt::FontMetrics *); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual jboolean isBorderOpaque(); + virtual ::java::lang::String * getTitle(); + virtual ::javax::swing::border::Border * getBorder(); + virtual jint getTitlePosition(); + virtual jint getTitleJustification(); + virtual ::java::awt::Font * getTitleFont(); + virtual ::java::awt::Color * getTitleColor(); + virtual void setTitle(::java::lang::String *); + virtual void setBorder(::javax::swing::border::Border *); + virtual void setTitlePosition(jint); + virtual void setTitleJustification(jint); + virtual void setTitleFont(::java::awt::Font *); + virtual void setTitleColor(::java::awt::Color *); + virtual ::java::awt::Dimension * getMinimumSize(::java::awt::Component *); +public: // actually protected + virtual ::java::awt::Font * getFont(::java::awt::Component *); +public: + static const jint DEFAULT_POSITION = 0; + static const jint ABOVE_TOP = 1; + static const jint TOP = 2; + static const jint BELOW_TOP = 3; + static const jint ABOVE_BOTTOM = 4; + static const jint BOTTOM = 5; + static const jint BELOW_BOTTOM = 6; + static const jint DEFAULT_JUSTIFICATION = 0; + static const jint LEFT = 1; + static const jint CENTER = 2; + static const jint RIGHT = 3; + static const jint LEADING = 4; + static const jint TRAILING = 5; +public: // actually protected + static const jint EDGE_SPACING = 2; + static const jint TEXT_INSET_H = 5; + static const jint TEXT_SPACING = 2; +public: // actually package-private + static const jlong serialVersionUID = 8012999415147721601LL; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) title; + ::javax::swing::border::Border * border; + jint titlePosition; + jint titleJustification; + ::java::awt::Font * titleFont; + ::java::awt::Color * titleColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_border_TitledBorder__ diff --git a/libjava/javax/swing/colorchooser/AbstractColorChooserPanel.h b/libjava/javax/swing/colorchooser/AbstractColorChooserPanel.h new file mode 100644 index 00000000000..99a4e743fb4 --- /dev/null +++ b/libjava/javax/swing/colorchooser/AbstractColorChooserPanel.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_AbstractColorChooserPanel__ +#define __javax_swing_colorchooser_AbstractColorChooserPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JColorChooser; + namespace colorchooser + { + class AbstractColorChooserPanel; + class ColorSelectionModel; + } + } + } +} + +class javax::swing::colorchooser::AbstractColorChooserPanel : public ::javax::swing::JPanel +{ + +public: + AbstractColorChooserPanel(); + virtual ::java::lang::String * getDisplayName() = 0; + virtual jint getMnemonic(); + virtual jint getDisplayedMnemonicIndex(); + virtual void updateChooser() = 0; +public: // actually protected + virtual void buildChooser() = 0; +public: + virtual ::javax::swing::Icon * getSmallDisplayIcon() = 0; + virtual ::javax::swing::Icon * getLargeDisplayIcon() = 0; + virtual void installChooserPanel(::javax::swing::JColorChooser *); + virtual void uninstallChooserPanel(::javax::swing::JColorChooser *); + virtual ::javax::swing::colorchooser::ColorSelectionModel * getColorSelectionModel(); +public: // actually protected + virtual ::java::awt::Color * getColorFromModel(); +public: + virtual void paint(::java::awt::Graphics *); +private: + static const jlong serialVersionUID = -977469671210173863LL; + ::javax::swing::JColorChooser * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) chooser; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_AbstractColorChooserPanel__ diff --git a/libjava/javax/swing/colorchooser/ColorChooserComponentFactory.h b/libjava/javax/swing/colorchooser/ColorChooserComponentFactory.h new file mode 100644 index 00000000000..495a5d14de2 --- /dev/null +++ b/libjava/javax/swing/colorchooser/ColorChooserComponentFactory.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_ColorChooserComponentFactory__ +#define __javax_swing_colorchooser_ColorChooserComponentFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace colorchooser + { + class AbstractColorChooserPanel; + class ColorChooserComponentFactory; + } + } + } +} + +class javax::swing::colorchooser::ColorChooserComponentFactory : public ::java::lang::Object +{ + + ColorChooserComponentFactory(); +public: + static JArray< ::javax::swing::colorchooser::AbstractColorChooserPanel * > * getDefaultChooserPanels(); + static ::javax::swing::JComponent * getPreviewPanel(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_ColorChooserComponentFactory__ diff --git a/libjava/javax/swing/colorchooser/ColorSelectionModel.h b/libjava/javax/swing/colorchooser/ColorSelectionModel.h new file mode 100644 index 00000000000..93bdab49304 --- /dev/null +++ b/libjava/javax/swing/colorchooser/ColorSelectionModel.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_ColorSelectionModel__ +#define __javax_swing_colorchooser_ColorSelectionModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class ColorSelectionModel; + } + namespace event + { + class ChangeListener; + } + } + } +} + +class javax::swing::colorchooser::ColorSelectionModel : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Color * getSelectedColor() = 0; + virtual void setSelectedColor(::java::awt::Color *) = 0; + virtual void addChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void removeChangeListener(::javax::swing::event::ChangeListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_colorchooser_ColorSelectionModel__ diff --git a/libjava/javax/swing/colorchooser/DefaultColorSelectionModel.h b/libjava/javax/swing/colorchooser/DefaultColorSelectionModel.h new file mode 100644 index 00000000000..52de9a3032c --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultColorSelectionModel.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultColorSelectionModel__ +#define __javax_swing_colorchooser_DefaultColorSelectionModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultColorSelectionModel; + } + namespace event + { + class ChangeEvent; + class ChangeListener; + class EventListenerList; + } + } + } +} + +class javax::swing::colorchooser::DefaultColorSelectionModel : public ::java::lang::Object +{ + +public: + DefaultColorSelectionModel(); + DefaultColorSelectionModel(::java::awt::Color *); + virtual ::java::awt::Color * getSelectedColor(); + virtual void setSelectedColor(::java::awt::Color *); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +public: // actually protected + virtual void fireStateChanged(); +private: + static const jlong serialVersionUID = -8117143602864778804LL; + ::java::awt::Color * __attribute__((aligned(__alignof__( ::java::lang::Object)))) selectedColor; +public: // actually protected + ::javax::swing::event::ChangeEvent * changeEvent; + ::javax::swing::event::EventListenerList * listenerList; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultColorSelectionModel__ diff --git a/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$1.h b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$1.h new file mode 100644 index 00000000000..441c35006a6 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$1.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultHSBChooserPanel$1__ +#define __javax_swing_colorchooser_DefaultHSBChooserPanel$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultHSBChooserPanel; + class DefaultHSBChooserPanel$1; + } + } + } +} + +class javax::swing::colorchooser::DefaultHSBChooserPanel$1 : public ::javax::swing::JPanel +{ + +public: // actually package-private + DefaultHSBChooserPanel$1(::javax::swing::colorchooser::DefaultHSBChooserPanel *); +public: + ::java::awt::Dimension * getPreferredSize(); + void paint(::java::awt::Graphics *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultHSBChooserPanel * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultHSBChooserPanel$1__ diff --git a/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$2.h b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$2.h new file mode 100644 index 00000000000..fa787a9286d --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$2.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultHSBChooserPanel$2__ +#define __javax_swing_colorchooser_DefaultHSBChooserPanel$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultHSBChooserPanel; + class DefaultHSBChooserPanel$2; + } + } + } +} + +class javax::swing::colorchooser::DefaultHSBChooserPanel$2 : public ::javax::swing::JPanel +{ + +public: // actually package-private + DefaultHSBChooserPanel$2(::javax::swing::colorchooser::DefaultHSBChooserPanel *); +public: + ::java::awt::Dimension * getPreferredSize(); + void paint(::java::awt::Graphics *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultHSBChooserPanel * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultHSBChooserPanel$2__ diff --git a/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$ImageScrollListener.h b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$ImageScrollListener.h new file mode 100644 index 00000000000..fdac4c42fe3 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$ImageScrollListener.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultHSBChooserPanel$ImageScrollListener__ +#define __javax_swing_colorchooser_DefaultHSBChooserPanel$ImageScrollListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultHSBChooserPanel; + class DefaultHSBChooserPanel$ImageScrollListener; + } + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::colorchooser::DefaultHSBChooserPanel$ImageScrollListener : public ::java::lang::Object +{ + +public: // actually package-private + DefaultHSBChooserPanel$ImageScrollListener(::javax::swing::colorchooser::DefaultHSBChooserPanel *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultHSBChooserPanel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultHSBChooserPanel$ImageScrollListener__ diff --git a/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$MainGradientMouseListener.h b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$MainGradientMouseListener.h new file mode 100644 index 00000000000..009e2ec8442 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$MainGradientMouseListener.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultHSBChooserPanel$MainGradientMouseListener__ +#define __javax_swing_colorchooser_DefaultHSBChooserPanel$MainGradientMouseListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultHSBChooserPanel; + class DefaultHSBChooserPanel$MainGradientMouseListener; + } + } + } +} + +class javax::swing::colorchooser::DefaultHSBChooserPanel$MainGradientMouseListener : public ::java::awt::event::MouseAdapter +{ + +public: // actually package-private + DefaultHSBChooserPanel$MainGradientMouseListener(::javax::swing::colorchooser::DefaultHSBChooserPanel *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); +private: + void update(::java::awt::Point *); + void updateH(::java::awt::Point *); + void updateS(::java::awt::Point *); + void updateB(::java::awt::Point *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultHSBChooserPanel * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultHSBChooserPanel$MainGradientMouseListener__ diff --git a/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$RadioStateListener.h b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$RadioStateListener.h new file mode 100644 index 00000000000..9384d465dad --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$RadioStateListener.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultHSBChooserPanel$RadioStateListener__ +#define __javax_swing_colorchooser_DefaultHSBChooserPanel$RadioStateListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultHSBChooserPanel; + class DefaultHSBChooserPanel$RadioStateListener; + } + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::colorchooser::DefaultHSBChooserPanel$RadioStateListener : public ::java::lang::Object +{ + +public: // actually package-private + DefaultHSBChooserPanel$RadioStateListener(::javax::swing::colorchooser::DefaultHSBChooserPanel *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultHSBChooserPanel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultHSBChooserPanel$RadioStateListener__ diff --git a/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$SliderChangeListener.h b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$SliderChangeListener.h new file mode 100644 index 00000000000..22bb90d55c2 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel$SliderChangeListener.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultHSBChooserPanel$SliderChangeListener__ +#define __javax_swing_colorchooser_DefaultHSBChooserPanel$SliderChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultHSBChooserPanel; + class DefaultHSBChooserPanel$SliderChangeListener; + } + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::colorchooser::DefaultHSBChooserPanel$SliderChangeListener : public ::java::lang::Object +{ + +public: // actually package-private + DefaultHSBChooserPanel$SliderChangeListener(::javax::swing::colorchooser::DefaultHSBChooserPanel *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultHSBChooserPanel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultHSBChooserPanel$SliderChangeListener__ diff --git a/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel.h b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel.h new file mode 100644 index 00000000000..f6fc5d95017 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultHSBChooserPanel.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultHSBChooserPanel__ +#define __javax_swing_colorchooser_DefaultHSBChooserPanel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Graphics; + class Image; + class Point; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JColorChooser; + class JLabel; + class JPanel; + class JRadioButton; + class JSlider; + class JSpinner; + namespace colorchooser + { + class DefaultHSBChooserPanel; + } + } + } +} + +class javax::swing::colorchooser::DefaultHSBChooserPanel : public ::javax::swing::colorchooser::AbstractColorChooserPanel +{ + +public: // actually package-private + DefaultHSBChooserPanel(); +public: + virtual ::java::lang::String * getDisplayName(); + virtual void updateChooser(); +public: // actually protected + virtual void buildChooser(); +public: + virtual void uninstallChooserPanel(::javax::swing::JColorChooser *); +private: + ::java::awt::Container * buildRightPanel(); +public: + virtual ::javax::swing::Icon * getSmallDisplayIcon(); + virtual ::javax::swing::Icon * getLargeDisplayIcon(); + virtual void paint(::java::awt::Graphics *); +private: + void updateHLockImage(); + void updateBLockImage(); + void updateSLockImage(); +public: // actually package-private + virtual void updateImage(); +private: + void updateTextFields(); +public: // actually package-private + virtual void updateSlider(); + virtual void updateTrack(); +private: + void updateHTrack(); + void updateSTrack(); + void updateBTrack(); + JArray< jfloat > * getHSBValues(); +public: // actually package-private + ::java::awt::Image * __attribute__((aligned(__alignof__( ::javax::swing::colorchooser::AbstractColorChooserPanel)))) gradientImage; +private: + ::javax::swing::JPanel * gradientPanel; +public: // actually package-private + ::java::awt::Image * trackImage; +private: + ::javax::swing::JPanel * trackPanel; +public: // actually package-private + ::javax::swing::JSlider * slider; + ::javax::swing::JRadioButton * hRadio; + ::javax::swing::JRadioButton * sRadio; + ::javax::swing::JRadioButton * bRadio; + ::javax::swing::JSpinner * hSpinner; + ::javax::swing::JSpinner * sSpinner; + ::javax::swing::JSpinner * bSpinner; +private: + static const jint imgWidth = 200; + static const jint imgHeight = 200; + static const jint trackWidth = 30; + static ::javax::swing::JLabel * R; + static ::javax::swing::JLabel * G; + static ::javax::swing::JLabel * B; + ::javax::swing::JLabel * rFull; + ::javax::swing::JLabel * gFull; + ::javax::swing::JLabel * bFull; +public: // actually package-private + ::java::awt::Point * gradientPoint; + jboolean internalChange; + jboolean spinnerTrigger; + jint locked; + static const jint HLOCKED = 0; + static const jint SLOCKED = 1; + static const jint BLOCKED = 2; + jboolean handlingMouse; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultHSBChooserPanel__ diff --git a/libjava/javax/swing/colorchooser/DefaultPreviewPanel$PreviewBorder.h b/libjava/javax/swing/colorchooser/DefaultPreviewPanel$PreviewBorder.h new file mode 100644 index 00000000000..f6b0997923a --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultPreviewPanel$PreviewBorder.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultPreviewPanel$PreviewBorder__ +#define __javax_swing_colorchooser_DefaultPreviewPanel$PreviewBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultPreviewPanel; + class DefaultPreviewPanel$PreviewBorder; + } + } + } +} + +class javax::swing::colorchooser::DefaultPreviewPanel$PreviewBorder : public ::java::lang::Object +{ + +public: // actually package-private + DefaultPreviewPanel$PreviewBorder(::javax::swing::colorchooser::DefaultPreviewPanel *); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual jboolean isBorderOpaque(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + static const jint edge = 20; + static const jint lead = 5; + static const jint gap = 3; +public: // actually package-private + ::javax::swing::colorchooser::DefaultPreviewPanel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultPreviewPanel$PreviewBorder__ diff --git a/libjava/javax/swing/colorchooser/DefaultPreviewPanel.h b/libjava/javax/swing/colorchooser/DefaultPreviewPanel.h new file mode 100644 index 00000000000..7348bd53b47 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultPreviewPanel.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultPreviewPanel__ +#define __javax_swing_colorchooser_DefaultPreviewPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultPreviewPanel; + } + } + } +} + +class javax::swing::colorchooser::DefaultPreviewPanel : public ::javax::swing::JPanel +{ + +public: // actually package-private + DefaultPreviewPanel(); +public: + virtual void paint(::java::awt::Graphics *); +private: + void paintSquare(::java::awt::Graphics *, jint, jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, jint, jint, jint); +public: + virtual ::java::awt::Dimension * getPreferredSize(); +private: + static jint largeGap; + static jint smallGap; + static jint squareSize; + static jint textPadding; + static jint rightSideRectWidth; + static ::java::lang::String * sample; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultPreviewPanel__ diff --git a/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SliderHandler.h b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SliderHandler.h new file mode 100644 index 00000000000..1026b6d1a4a --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SliderHandler.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultRGBChooserPanel$SliderHandler__ +#define __javax_swing_colorchooser_DefaultRGBChooserPanel$SliderHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultRGBChooserPanel; + class DefaultRGBChooserPanel$SliderHandler; + } + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::colorchooser::DefaultRGBChooserPanel$SliderHandler : public ::java::lang::Object +{ + +public: // actually package-private + DefaultRGBChooserPanel$SliderHandler(::javax::swing::colorchooser::DefaultRGBChooserPanel *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultRGBChooserPanel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultRGBChooserPanel$SliderHandler__ diff --git a/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SpinnerHandler.h b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SpinnerHandler.h new file mode 100644 index 00000000000..85ba288ce81 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel$SpinnerHandler.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultRGBChooserPanel$SpinnerHandler__ +#define __javax_swing_colorchooser_DefaultRGBChooserPanel$SpinnerHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultRGBChooserPanel; + class DefaultRGBChooserPanel$SpinnerHandler; + } + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::colorchooser::DefaultRGBChooserPanel$SpinnerHandler : public ::java::lang::Object +{ + +public: // actually package-private + DefaultRGBChooserPanel$SpinnerHandler(::javax::swing::colorchooser::DefaultRGBChooserPanel *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultRGBChooserPanel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultRGBChooserPanel$SpinnerHandler__ diff --git a/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.h b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.h new file mode 100644 index 00000000000..c9cc7afc372 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultRGBChooserPanel__ +#define __javax_swing_colorchooser_DefaultRGBChooserPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JColorChooser; + class JLabel; + class JSlider; + class JSpinner; + namespace colorchooser + { + class DefaultRGBChooserPanel; + } + namespace event + { + class ChangeListener; + } + } + } +} + +class javax::swing::colorchooser::DefaultRGBChooserPanel : public ::javax::swing::colorchooser::AbstractColorChooserPanel +{ + +public: + DefaultRGBChooserPanel(); + virtual ::java::lang::String * getDisplayName(); + virtual void updateChooser(); +public: // actually protected + virtual void buildChooser(); +public: + virtual void uninstallChooserPanel(::javax::swing::JColorChooser *); +private: + void uninstallListeners(); + void installListeners(); +public: + virtual ::javax::swing::Icon * getSmallDisplayIcon(); + virtual ::javax::swing::Icon * getLargeDisplayIcon(); + virtual void paint(::java::awt::Graphics *); +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::javax::swing::colorchooser::AbstractColorChooserPanel)))) spinnerChange; + jboolean sliderChange; + jboolean updateChange; +private: + ::javax::swing::event::ChangeListener * colorChanger; + ::javax::swing::event::ChangeListener * spinnerHandler; +public: // actually package-private + ::javax::swing::JSlider * R; + ::javax::swing::JSlider * G; + ::javax::swing::JSlider * B; +private: + ::javax::swing::JLabel * RLabel; + ::javax::swing::JLabel * GLabel; + ::javax::swing::JLabel * BLabel; +public: // actually package-private + ::javax::swing::JSpinner * RSpinner; + ::javax::swing::JSpinner * GSpinner; + ::javax::swing::JSpinner * BSpinner; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultRGBChooserPanel__ diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainPanelLayout.h b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainPanelLayout.h new file mode 100644 index 00000000000..41193308521 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainPanelLayout.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainPanelLayout__ +#define __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainPanelLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultSwatchChooserPanel$MainPanelLayout; + } + } + } +} + +class javax::swing::colorchooser::DefaultSwatchChooserPanel$MainPanelLayout : public ::java::lang::Object +{ + +public: // actually package-private + DefaultSwatchChooserPanel$MainPanelLayout(); +public: + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void layoutContainer(::java::awt::Container *); + virtual void removeLayoutComponent(::java::awt::Component *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainPanelLayout__ diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainSwatchPanel.h b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainSwatchPanel.h new file mode 100644 index 00000000000..9a33fe149f3 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MainSwatchPanel.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainSwatchPanel__ +#define __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainSwatchPanel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultSwatchChooserPanel$MainSwatchPanel; + } + } + } +} + +class javax::swing::colorchooser::DefaultSwatchChooserPanel$MainSwatchPanel : public ::javax::swing::colorchooser::DefaultSwatchChooserPanel$SwatchPanel +{ + +public: // actually package-private + DefaultSwatchChooserPanel$MainSwatchPanel(); +public: + virtual ::java::awt::Color * getColorForPosition(jint, jint); +public: // actually protected + virtual void initializeColors(); +public: + virtual void paint(::java::awt::Graphics *); + virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *); + static ::java::awt::Color * C204255255; + static ::java::awt::Color * C255204204; + static ::java::awt::Color * C204255204; + static ::java::awt::Color * C204204204; + static ::java::awt::Color * C153153255; + static ::java::awt::Color * C051051255; + static ::java::awt::Color * C153000153; + static ::java::awt::Color * C000051051; + static ::java::awt::Color * C051000051; + static ::java::awt::Color * C051051000; + static ::java::awt::Color * C102102000; + static ::java::awt::Color * C153255153; + static ::java::awt::Color * C102255102; + static ::java::awt::Color * C000102102; + static ::java::awt::Color * C102000102; + static ::java::awt::Color * C000153153; + static ::java::awt::Color * C153153000; + static ::java::awt::Color * C204204000; + static ::java::awt::Color * C204000204; + static ::java::awt::Color * C000204204; + static ::java::awt::Color * C051255051; + static ::java::awt::Color * C255051051; + static ::java::awt::Color * C255102102; + static ::java::awt::Color * C102102255; + static ::java::awt::Color * C255153153; +public: // actually package-private + static JArray< ::java::awt::Color * > * colors; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel$MainSwatchPanel__ diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MouseHandler.h b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MouseHandler.h new file mode 100644 index 00000000000..b1de67fc4ff --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$MouseHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel$MouseHandler__ +#define __javax_swing_colorchooser_DefaultSwatchChooserPanel$MouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultSwatchChooserPanel; + class DefaultSwatchChooserPanel$MouseHandler; + } + } + } +} + +class javax::swing::colorchooser::DefaultSwatchChooserPanel$MouseHandler : public ::java::awt::event::MouseAdapter +{ + +public: // actually package-private + DefaultSwatchChooserPanel$MouseHandler(::javax::swing::colorchooser::DefaultSwatchChooserPanel *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultSwatchChooserPanel * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel$MouseHandler__ diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentPanelLayout.h b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentPanelLayout.h new file mode 100644 index 00000000000..d4ce35b1808 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentPanelLayout.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel$RecentPanelLayout__ +#define __javax_swing_colorchooser_DefaultSwatchChooserPanel$RecentPanelLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultSwatchChooserPanel$RecentPanelLayout; + } + } + } +} + +class javax::swing::colorchooser::DefaultSwatchChooserPanel$RecentPanelLayout : public ::java::lang::Object +{ + +public: // actually package-private + DefaultSwatchChooserPanel$RecentPanelLayout(); +public: + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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 *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel$RecentPanelLayout__ diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentSwatchPanel.h b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentSwatchPanel.h new file mode 100644 index 00000000000..bbb78b807d9 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$RecentSwatchPanel.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel$RecentSwatchPanel__ +#define __javax_swing_colorchooser_DefaultSwatchChooserPanel$RecentSwatchPanel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultSwatchChooserPanel$RecentSwatchPanel; + } + } + } +} + +class javax::swing::colorchooser::DefaultSwatchChooserPanel$RecentSwatchPanel : public ::javax::swing::colorchooser::DefaultSwatchChooserPanel$SwatchPanel +{ + +public: // actually package-private + DefaultSwatchChooserPanel$RecentSwatchPanel(); +public: + virtual ::java::awt::Color * getColorForPosition(jint, jint); +public: // actually protected + virtual void initializeColors(); +private: + jint getIndexForCell(jint, jint); +public: // actually package-private + virtual void addColorToQueue(::java::awt::Color *); +public: + virtual void paint(::java::awt::Graphics *); + virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *); +public: // actually package-private + JArray< ::java::awt::Color * > * __attribute__((aligned(__alignof__( ::javax::swing::colorchooser::DefaultSwatchChooserPanel$SwatchPanel)))) colors; +public: + static ::java::awt::Color * defaultColor; +public: // actually package-private + jint start; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel$RecentSwatchPanel__ diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.h b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.h new file mode 100644 index 00000000000..39c05392648 --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel$SwatchPanel.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel$SwatchPanel__ +#define __javax_swing_colorchooser_DefaultSwatchChooserPanel$SwatchPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace colorchooser + { + class DefaultSwatchChooserPanel$SwatchPanel; + } + } + } +} + +class javax::swing::colorchooser::DefaultSwatchChooserPanel$SwatchPanel : public ::javax::swing::JPanel +{ + +public: // actually package-private + DefaultSwatchChooserPanel$SwatchPanel(); +public: + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Color * getColorForPosition(jint, jint) = 0; +public: // actually protected + virtual void initializeColors() = 0; + jint __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) cellWidth; + jint cellHeight; + jint gap; + jint numRows; + jint numCols; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel$SwatchPanel__ diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.h b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.h new file mode 100644 index 00000000000..8db2fc6648c --- /dev/null +++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_colorchooser_DefaultSwatchChooserPanel__ +#define __javax_swing_colorchooser_DefaultSwatchChooserPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + namespace event + { + class MouseEvent; + class MouseListener; + } + } + } + namespace javax + { + namespace swing + { + class Icon; + class JColorChooser; + namespace colorchooser + { + class DefaultSwatchChooserPanel; + class DefaultSwatchChooserPanel$MainSwatchPanel; + class DefaultSwatchChooserPanel$RecentSwatchPanel; + } + } + } +} + +class javax::swing::colorchooser::DefaultSwatchChooserPanel : public ::javax::swing::colorchooser::AbstractColorChooserPanel +{ + +public: // actually package-private + DefaultSwatchChooserPanel(); +public: + virtual void updateChooser(); +public: // actually protected + virtual void buildChooser(); +public: + virtual void uninstallChooserPanel(::javax::swing::JColorChooser *); + virtual ::java::lang::String * getDisplayName(); + virtual ::javax::swing::Icon * getSmallDisplayIcon(); + virtual ::javax::swing::Icon * getLargeDisplayIcon(); + virtual void paint(::java::awt::Graphics *); + virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::colorchooser::DefaultSwatchChooserPanel$MainSwatchPanel * __attribute__((aligned(__alignof__( ::javax::swing::colorchooser::AbstractColorChooserPanel)))) mainPalette; + ::javax::swing::colorchooser::DefaultSwatchChooserPanel$RecentSwatchPanel * recentPalette; + ::java::awt::event::MouseListener * mouseHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_colorchooser_DefaultSwatchChooserPanel__ diff --git a/libjava/javax/swing/event/AncestorEvent.h b/libjava/javax/swing/event/AncestorEvent.h new file mode 100644 index 00000000000..6966e58fc64 --- /dev/null +++ b/libjava/javax/swing/event/AncestorEvent.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_AncestorEvent__ +#define __javax_swing_event_AncestorEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace event + { + class AncestorEvent; + } + } + } +} + +class javax::swing::event::AncestorEvent : public ::java::awt::AWTEvent +{ + +public: + AncestorEvent(::javax::swing::JComponent *, jint, ::java::awt::Container *, ::java::awt::Container *); + virtual ::java::awt::Container * getAncestor(); + virtual ::java::awt::Container * getAncestorParent(); + virtual ::javax::swing::JComponent * getComponent(); +private: + static const jlong serialVersionUID = -8079801679695605002LL; +public: + static const jint ANCESTOR_ADDED = 1; + static const jint ANCESTOR_REMOVED = 2; + static const jint ANCESTOR_MOVED = 3; +private: + ::javax::swing::JComponent * __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) sourceComponent; + ::java::awt::Container * ancestor; + ::java::awt::Container * ancestorParent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_AncestorEvent__ diff --git a/libjava/javax/swing/event/AncestorListener.h b/libjava/javax/swing/event/AncestorListener.h new file mode 100644 index 00000000000..2e2a162c03d --- /dev/null +++ b/libjava/javax/swing/event/AncestorListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_AncestorListener__ +#define __javax_swing_event_AncestorListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class AncestorEvent; + class AncestorListener; + } + } + } +} + +class javax::swing::event::AncestorListener : public ::java::lang::Object +{ + +public: + virtual void ancestorAdded(::javax::swing::event::AncestorEvent *) = 0; + virtual void ancestorRemoved(::javax::swing::event::AncestorEvent *) = 0; + virtual void ancestorMoved(::javax::swing::event::AncestorEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_AncestorListener__ diff --git a/libjava/javax/swing/event/CaretEvent.h b/libjava/javax/swing/event/CaretEvent.h new file mode 100644 index 00000000000..29f32e8d0dc --- /dev/null +++ b/libjava/javax/swing/event/CaretEvent.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_CaretEvent__ +#define __javax_swing_event_CaretEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class CaretEvent; + } + } + } +} + +class javax::swing::event::CaretEvent : public ::java::util::EventObject +{ + +public: + CaretEvent(::java::lang::Object *); + virtual jint getDot() = 0; + virtual jint getMark() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_CaretEvent__ diff --git a/libjava/javax/swing/event/CaretListener.h b/libjava/javax/swing/event/CaretListener.h new file mode 100644 index 00000000000..9169c866aea --- /dev/null +++ b/libjava/javax/swing/event/CaretListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_CaretListener__ +#define __javax_swing_event_CaretListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class CaretEvent; + class CaretListener; + } + } + } +} + +class javax::swing::event::CaretListener : public ::java::lang::Object +{ + +public: + virtual void caretUpdate(::javax::swing::event::CaretEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_CaretListener__ diff --git a/libjava/javax/swing/event/CellEditorListener.h b/libjava/javax/swing/event/CellEditorListener.h new file mode 100644 index 00000000000..8f4bcfeb5d1 --- /dev/null +++ b/libjava/javax/swing/event/CellEditorListener.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_CellEditorListener__ +#define __javax_swing_event_CellEditorListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class CellEditorListener; + class ChangeEvent; + } + } + } +} + +class javax::swing::event::CellEditorListener : public ::java::lang::Object +{ + +public: + virtual void editingCanceled(::javax::swing::event::ChangeEvent *) = 0; + virtual void editingStopped(::javax::swing::event::ChangeEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_CellEditorListener__ diff --git a/libjava/javax/swing/event/ChangeEvent.h b/libjava/javax/swing/event/ChangeEvent.h new file mode 100644 index 00000000000..afec4258b6a --- /dev/null +++ b/libjava/javax/swing/event/ChangeEvent.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_ChangeEvent__ +#define __javax_swing_event_ChangeEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + } + } +} + +class javax::swing::event::ChangeEvent : public ::java::util::EventObject +{ + +public: + ChangeEvent(::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_ChangeEvent__ diff --git a/libjava/javax/swing/event/ChangeListener.h b/libjava/javax/swing/event/ChangeListener.h new file mode 100644 index 00000000000..fc80ec7fe6d --- /dev/null +++ b/libjava/javax/swing/event/ChangeListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_ChangeListener__ +#define __javax_swing_event_ChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + class ChangeListener; + } + } + } +} + +class javax::swing::event::ChangeListener : public ::java::lang::Object +{ + +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_ChangeListener__ diff --git a/libjava/javax/swing/event/DocumentEvent$ElementChange.h b/libjava/javax/swing/event/DocumentEvent$ElementChange.h new file mode 100644 index 00000000000..c94fc69413c --- /dev/null +++ b/libjava/javax/swing/event/DocumentEvent$ElementChange.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_DocumentEvent$ElementChange__ +#define __javax_swing_event_DocumentEvent$ElementChange__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent$ElementChange; + } + namespace text + { + class Element; + } + } + } +} + +class javax::swing::event::DocumentEvent$ElementChange : public ::java::lang::Object +{ + +public: + virtual jint getIndex() = 0; + virtual ::javax::swing::text::Element * getElement() = 0; + virtual JArray< ::javax::swing::text::Element * > * getChildrenRemoved() = 0; + virtual JArray< ::javax::swing::text::Element * > * getChildrenAdded() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_DocumentEvent$ElementChange__ diff --git a/libjava/javax/swing/event/DocumentEvent$EventType.h b/libjava/javax/swing/event/DocumentEvent$EventType.h new file mode 100644 index 00000000000..b09a8e2bf3b --- /dev/null +++ b/libjava/javax/swing/event/DocumentEvent$EventType.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_DocumentEvent$EventType__ +#define __javax_swing_event_DocumentEvent$EventType__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent$EventType; + } + } + } +} + +class javax::swing::event::DocumentEvent$EventType : public ::java::lang::Object +{ + + DocumentEvent$EventType(::java::lang::String *); +public: + ::java::lang::String * toString(); + static ::javax::swing::event::DocumentEvent$EventType * INSERT; + static ::javax::swing::event::DocumentEvent$EventType * REMOVE; + static ::javax::swing::event::DocumentEvent$EventType * CHANGE; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_DocumentEvent$EventType__ diff --git a/libjava/javax/swing/event/DocumentEvent.h b/libjava/javax/swing/event/DocumentEvent.h new file mode 100644 index 00000000000..7d6587d2fcc --- /dev/null +++ b/libjava/javax/swing/event/DocumentEvent.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_DocumentEvent__ +#define __javax_swing_event_DocumentEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + class DocumentEvent$ElementChange; + class DocumentEvent$EventType; + } + namespace text + { + class Document; + class Element; + } + } + } +} + +class javax::swing::event::DocumentEvent : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::event::DocumentEvent$EventType * getType() = 0; + virtual jint getOffset() = 0; + virtual jint getLength() = 0; + virtual ::javax::swing::text::Document * getDocument() = 0; + virtual ::javax::swing::event::DocumentEvent$ElementChange * getChange(::javax::swing::text::Element *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_DocumentEvent__ diff --git a/libjava/javax/swing/event/DocumentListener.h b/libjava/javax/swing/event/DocumentListener.h new file mode 100644 index 00000000000..e836e5f3f23 --- /dev/null +++ b/libjava/javax/swing/event/DocumentListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_DocumentListener__ +#define __javax_swing_event_DocumentListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + class DocumentListener; + } + } + } +} + +class javax::swing::event::DocumentListener : public ::java::lang::Object +{ + +public: + virtual void changedUpdate(::javax::swing::event::DocumentEvent *) = 0; + virtual void insertUpdate(::javax::swing::event::DocumentEvent *) = 0; + virtual void removeUpdate(::javax::swing::event::DocumentEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_DocumentListener__ diff --git a/libjava/javax/swing/event/EventListenerList.h b/libjava/javax/swing/event/EventListenerList.h new file mode 100644 index 00000000000..25209af6269 --- /dev/null +++ b/libjava/javax/swing/event/EventListenerList.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_EventListenerList__ +#define __javax_swing_event_EventListenerList__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class EventListenerList; + } + } + } +} + +class javax::swing::event::EventListenerList : public ::java::lang::Object +{ + +public: + EventListenerList(); + virtual void add(::java::lang::Class *, ::java::util::EventListener *); + virtual jint getListenerCount(); + virtual jint getListenerCount(::java::lang::Class *); + virtual JArray< ::java::lang::Object * > * getListenerList(); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual void remove(::java::lang::Class *, ::java::util::EventListener *); + virtual ::java::lang::String * toString(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); +public: // actually package-private + static const jlong serialVersionUID = -5677132037850737084LL; +private: + static JArray< ::java::lang::Object * > * NO_LISTENERS; +public: // actually protected + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listenerList; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_EventListenerList__ diff --git a/libjava/javax/swing/event/HyperlinkEvent$EventType.h b/libjava/javax/swing/event/HyperlinkEvent$EventType.h new file mode 100644 index 00000000000..65bc22e17d4 --- /dev/null +++ b/libjava/javax/swing/event/HyperlinkEvent$EventType.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_HyperlinkEvent$EventType__ +#define __javax_swing_event_HyperlinkEvent$EventType__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class HyperlinkEvent$EventType; + } + } + } +} + +class javax::swing::event::HyperlinkEvent$EventType : public ::java::lang::Object +{ + + HyperlinkEvent$EventType(::java::lang::String *); +public: + ::java::lang::String * toString(); + static ::javax::swing::event::HyperlinkEvent$EventType * ENTERED; + static ::javax::swing::event::HyperlinkEvent$EventType * EXITED; + static ::javax::swing::event::HyperlinkEvent$EventType * ACTIVATED; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_HyperlinkEvent$EventType__ diff --git a/libjava/javax/swing/event/HyperlinkEvent.h b/libjava/javax/swing/event/HyperlinkEvent.h new file mode 100644 index 00000000000..af86e8c1f28 --- /dev/null +++ b/libjava/javax/swing/event/HyperlinkEvent.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_HyperlinkEvent__ +#define __javax_swing_event_HyperlinkEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class HyperlinkEvent; + class HyperlinkEvent$EventType; + } + namespace text + { + class Element; + } + } + } +} + +class javax::swing::event::HyperlinkEvent : public ::java::util::EventObject +{ + +public: + HyperlinkEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *); + HyperlinkEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *, ::java::lang::String *); + HyperlinkEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *, ::java::lang::String *, ::javax::swing::text::Element *); + virtual ::javax::swing::text::Element * getSourceElement(); + virtual ::java::net::URL * getURL(); + virtual ::javax::swing::event::HyperlinkEvent$EventType * getEventType(); + virtual ::java::lang::String * getDescription(); +private: + static const jlong serialVersionUID = -2054640811732867012LL; + ::javax::swing::event::HyperlinkEvent$EventType * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) type; + ::java::net::URL * url; + ::java::lang::String * description; + ::javax::swing::text::Element * element; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_HyperlinkEvent__ diff --git a/libjava/javax/swing/event/HyperlinkListener.h b/libjava/javax/swing/event/HyperlinkListener.h new file mode 100644 index 00000000000..ab76042e6b1 --- /dev/null +++ b/libjava/javax/swing/event/HyperlinkListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_HyperlinkListener__ +#define __javax_swing_event_HyperlinkListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class HyperlinkEvent; + class HyperlinkListener; + } + } + } +} + +class javax::swing::event::HyperlinkListener : public ::java::lang::Object +{ + +public: + virtual void hyperlinkUpdate(::javax::swing::event::HyperlinkEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_HyperlinkListener__ diff --git a/libjava/javax/swing/event/InternalFrameAdapter.h b/libjava/javax/swing/event/InternalFrameAdapter.h new file mode 100644 index 00000000000..53aa9ba7a00 --- /dev/null +++ b/libjava/javax/swing/event/InternalFrameAdapter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_InternalFrameAdapter__ +#define __javax_swing_event_InternalFrameAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class InternalFrameAdapter; + class InternalFrameEvent; + } + } + } +} + +class javax::swing::event::InternalFrameAdapter : public ::java::lang::Object +{ + +public: + InternalFrameAdapter(); + virtual void internalFrameActivated(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameClosed(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameClosing(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameDeactivated(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameDeiconified(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameIconified(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameOpened(::javax::swing::event::InternalFrameEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_InternalFrameAdapter__ diff --git a/libjava/javax/swing/event/InternalFrameEvent.h b/libjava/javax/swing/event/InternalFrameEvent.h new file mode 100644 index 00000000000..e8ec9e17d0f --- /dev/null +++ b/libjava/javax/swing/event/InternalFrameEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_InternalFrameEvent__ +#define __javax_swing_event_InternalFrameEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JInternalFrame; + namespace event + { + class InternalFrameEvent; + } + } + } +} + +class javax::swing::event::InternalFrameEvent : public ::java::awt::AWTEvent +{ + +public: + InternalFrameEvent(::javax::swing::JInternalFrame *, jint); + virtual ::javax::swing::JInternalFrame * getInternalFrame(); + virtual ::java::lang::String * paramString(); +private: + static const jlong serialVersionUID = -5204823611874873183LL; +public: + static const jint INTERNAL_FRAME_ACTIVATED = 25554; + static const jint INTERNAL_FRAME_CLOSED = 25551; + static const jint INTERNAL_FRAME_CLOSING = 25550; + static const jint INTERNAL_FRAME_DEACTIVATED = 25555; + static const jint INTERNAL_FRAME_DEICONIFIED = 25553; + static const jint INTERNAL_FRAME_FIRST = 25549; + static const jint INTERNAL_FRAME_ICONIFIED = 25552; + static const jint INTERNAL_FRAME_LAST = 25555; + static const jint INTERNAL_FRAME_OPENED = 25549; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_InternalFrameEvent__ diff --git a/libjava/javax/swing/event/InternalFrameListener.h b/libjava/javax/swing/event/InternalFrameListener.h new file mode 100644 index 00000000000..03f3e3b8c68 --- /dev/null +++ b/libjava/javax/swing/event/InternalFrameListener.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_InternalFrameListener__ +#define __javax_swing_event_InternalFrameListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class InternalFrameEvent; + class InternalFrameListener; + } + } + } +} + +class javax::swing::event::InternalFrameListener : public ::java::lang::Object +{ + +public: + virtual void internalFrameActivated(::javax::swing::event::InternalFrameEvent *) = 0; + virtual void internalFrameClosed(::javax::swing::event::InternalFrameEvent *) = 0; + virtual void internalFrameClosing(::javax::swing::event::InternalFrameEvent *) = 0; + virtual void internalFrameDeactivated(::javax::swing::event::InternalFrameEvent *) = 0; + virtual void internalFrameDeiconified(::javax::swing::event::InternalFrameEvent *) = 0; + virtual void internalFrameIconified(::javax::swing::event::InternalFrameEvent *) = 0; + virtual void internalFrameOpened(::javax::swing::event::InternalFrameEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_InternalFrameListener__ diff --git a/libjava/javax/swing/event/ListDataEvent.h b/libjava/javax/swing/event/ListDataEvent.h new file mode 100644 index 00000000000..35920f22c78 --- /dev/null +++ b/libjava/javax/swing/event/ListDataEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_ListDataEvent__ +#define __javax_swing_event_ListDataEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListDataEvent; + } + } + } +} + +class javax::swing::event::ListDataEvent : public ::java::util::EventObject +{ + +public: + ListDataEvent(::java::lang::Object *, jint, jint, jint); + virtual jint getIndex0(); + virtual jint getIndex1(); + virtual jint getType(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 2510353260071004774LL; +public: + static const jint CONTENTS_CHANGED = 0; + static const jint INTERVAL_ADDED = 1; + static const jint INTERVAL_REMOVED = 2; +private: + jint __attribute__((aligned(__alignof__( ::java::util::EventObject)))) type; + jint index0; + jint index1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_ListDataEvent__ diff --git a/libjava/javax/swing/event/ListDataListener.h b/libjava/javax/swing/event/ListDataListener.h new file mode 100644 index 00000000000..b00dfb139f8 --- /dev/null +++ b/libjava/javax/swing/event/ListDataListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_ListDataListener__ +#define __javax_swing_event_ListDataListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListDataEvent; + class ListDataListener; + } + } + } +} + +class javax::swing::event::ListDataListener : public ::java::lang::Object +{ + +public: + virtual void contentsChanged(::javax::swing::event::ListDataEvent *) = 0; + virtual void intervalAdded(::javax::swing::event::ListDataEvent *) = 0; + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_ListDataListener__ diff --git a/libjava/javax/swing/event/ListSelectionEvent.h b/libjava/javax/swing/event/ListSelectionEvent.h new file mode 100644 index 00000000000..b981d49f2be --- /dev/null +++ b/libjava/javax/swing/event/ListSelectionEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_ListSelectionEvent__ +#define __javax_swing_event_ListSelectionEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListSelectionEvent; + } + } + } +} + +class javax::swing::event::ListSelectionEvent : public ::java::util::EventObject +{ + +public: + ListSelectionEvent(::java::lang::Object *, jint, jint, jboolean); + virtual jint getFirstIndex(); + virtual jint getLastIndex(); + virtual jboolean getValueIsAdjusting(); + virtual ::java::lang::String * toString(); +private: + jint __attribute__((aligned(__alignof__( ::java::util::EventObject)))) firstIndex; + jint lastIndex; + jboolean isAdjusting; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_ListSelectionEvent__ diff --git a/libjava/javax/swing/event/ListSelectionListener.h b/libjava/javax/swing/event/ListSelectionListener.h new file mode 100644 index 00000000000..252c9b5541d --- /dev/null +++ b/libjava/javax/swing/event/ListSelectionListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_ListSelectionListener__ +#define __javax_swing_event_ListSelectionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListSelectionEvent; + class ListSelectionListener; + } + } + } +} + +class javax::swing::event::ListSelectionListener : public ::java::lang::Object +{ + +public: + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_ListSelectionListener__ diff --git a/libjava/javax/swing/event/MenuDragMouseEvent.h b/libjava/javax/swing/event/MenuDragMouseEvent.h new file mode 100644 index 00000000000..aa19d3c3655 --- /dev/null +++ b/libjava/javax/swing/event/MenuDragMouseEvent.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MenuDragMouseEvent__ +#define __javax_swing_event_MenuDragMouseEvent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class MenuElement; + class MenuSelectionManager; + namespace event + { + class MenuDragMouseEvent; + } + } + } +} + +class javax::swing::event::MenuDragMouseEvent : public ::java::awt::event::MouseEvent +{ + +public: + MenuDragMouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + virtual JArray< ::javax::swing::MenuElement * > * getPath(); + virtual ::javax::swing::MenuSelectionManager * getMenuSelectionManager(); +private: + JArray< ::javax::swing::MenuElement * > * __attribute__((aligned(__alignof__( ::java::awt::event::MouseEvent)))) path; + ::javax::swing::MenuSelectionManager * manager; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_MenuDragMouseEvent__ diff --git a/libjava/javax/swing/event/MenuDragMouseListener.h b/libjava/javax/swing/event/MenuDragMouseListener.h new file mode 100644 index 00000000000..760fe8448d3 --- /dev/null +++ b/libjava/javax/swing/event/MenuDragMouseListener.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MenuDragMouseListener__ +#define __javax_swing_event_MenuDragMouseListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuDragMouseEvent; + class MenuDragMouseListener; + } + } + } +} + +class javax::swing::event::MenuDragMouseListener : public ::java::lang::Object +{ + +public: + virtual void menuDragMouseDragged(::javax::swing::event::MenuDragMouseEvent *) = 0; + virtual void menuDragMouseEntered(::javax::swing::event::MenuDragMouseEvent *) = 0; + virtual void menuDragMouseExited(::javax::swing::event::MenuDragMouseEvent *) = 0; + virtual void menuDragMouseReleased(::javax::swing::event::MenuDragMouseEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_MenuDragMouseListener__ diff --git a/libjava/javax/swing/event/MenuEvent.h b/libjava/javax/swing/event/MenuEvent.h new file mode 100644 index 00000000000..988e7405979 --- /dev/null +++ b/libjava/javax/swing/event/MenuEvent.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MenuEvent__ +#define __javax_swing_event_MenuEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuEvent; + } + } + } +} + +class javax::swing::event::MenuEvent : public ::java::util::EventObject +{ + +public: + MenuEvent(::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_MenuEvent__ diff --git a/libjava/javax/swing/event/MenuKeyEvent.h b/libjava/javax/swing/event/MenuKeyEvent.h new file mode 100644 index 00000000000..ac61c98693e --- /dev/null +++ b/libjava/javax/swing/event/MenuKeyEvent.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MenuKeyEvent__ +#define __javax_swing_event_MenuKeyEvent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class MenuElement; + class MenuSelectionManager; + namespace event + { + class MenuKeyEvent; + } + } + } +} + +class javax::swing::event::MenuKeyEvent : public ::java::awt::event::KeyEvent +{ + +public: + MenuKeyEvent(::java::awt::Component *, jint, jlong, jint, jint, jchar, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + virtual JArray< ::javax::swing::MenuElement * > * getPath(); + virtual ::javax::swing::MenuSelectionManager * getMenuSelectionManager(); +private: + JArray< ::javax::swing::MenuElement * > * __attribute__((aligned(__alignof__( ::java::awt::event::KeyEvent)))) path; + ::javax::swing::MenuSelectionManager * manager; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_MenuKeyEvent__ diff --git a/libjava/javax/swing/event/MenuKeyListener.h b/libjava/javax/swing/event/MenuKeyListener.h new file mode 100644 index 00000000000..cec8947cdd7 --- /dev/null +++ b/libjava/javax/swing/event/MenuKeyListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MenuKeyListener__ +#define __javax_swing_event_MenuKeyListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuKeyEvent; + class MenuKeyListener; + } + } + } +} + +class javax::swing::event::MenuKeyListener : public ::java::lang::Object +{ + +public: + virtual void menuKeyPressed(::javax::swing::event::MenuKeyEvent *) = 0; + virtual void menuKeyReleased(::javax::swing::event::MenuKeyEvent *) = 0; + virtual void menuKeyTyped(::javax::swing::event::MenuKeyEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_MenuKeyListener__ diff --git a/libjava/javax/swing/event/MenuListener.h b/libjava/javax/swing/event/MenuListener.h new file mode 100644 index 00000000000..356a633bcb8 --- /dev/null +++ b/libjava/javax/swing/event/MenuListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MenuListener__ +#define __javax_swing_event_MenuListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuEvent; + class MenuListener; + } + } + } +} + +class javax::swing::event::MenuListener : public ::java::lang::Object +{ + +public: + virtual void menuCanceled(::javax::swing::event::MenuEvent *) = 0; + virtual void menuDeselected(::javax::swing::event::MenuEvent *) = 0; + virtual void menuSelected(::javax::swing::event::MenuEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_MenuListener__ diff --git a/libjava/javax/swing/event/MouseInputAdapter.h b/libjava/javax/swing/event/MouseInputAdapter.h new file mode 100644 index 00000000000..05e75898539 --- /dev/null +++ b/libjava/javax/swing/event/MouseInputAdapter.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MouseInputAdapter__ +#define __javax_swing_event_MouseInputAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace event + { + class MouseInputAdapter; + } + } + } +} + +class javax::swing::event::MouseInputAdapter : public ::java::lang::Object +{ + +public: + MouseInputAdapter(); + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_MouseInputAdapter__ diff --git a/libjava/javax/swing/event/MouseInputListener.h b/libjava/javax/swing/event/MouseInputListener.h new file mode 100644 index 00000000000..10deab46527 --- /dev/null +++ b/libjava/javax/swing/event/MouseInputListener.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_MouseInputListener__ +#define __javax_swing_event_MouseInputListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace event + { + class MouseInputListener; + } + } + } +} + +class javax::swing::event::MouseInputListener : 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; + 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 // __javax_swing_event_MouseInputListener__ diff --git a/libjava/javax/swing/event/PopupMenuEvent.h b/libjava/javax/swing/event/PopupMenuEvent.h new file mode 100644 index 00000000000..4292f10c652 --- /dev/null +++ b/libjava/javax/swing/event/PopupMenuEvent.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_PopupMenuEvent__ +#define __javax_swing_event_PopupMenuEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class PopupMenuEvent; + } + } + } +} + +class javax::swing::event::PopupMenuEvent : public ::java::util::EventObject +{ + +public: + PopupMenuEvent(::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_PopupMenuEvent__ diff --git a/libjava/javax/swing/event/PopupMenuListener.h b/libjava/javax/swing/event/PopupMenuListener.h new file mode 100644 index 00000000000..8446bc3a254 --- /dev/null +++ b/libjava/javax/swing/event/PopupMenuListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_PopupMenuListener__ +#define __javax_swing_event_PopupMenuListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class PopupMenuEvent; + class PopupMenuListener; + } + } + } +} + +class javax::swing::event::PopupMenuListener : public ::java::lang::Object +{ + +public: + virtual void popupMenuCanceled(::javax::swing::event::PopupMenuEvent *) = 0; + virtual void popupMenuWillBecomeInvisible(::javax::swing::event::PopupMenuEvent *) = 0; + virtual void popupMenuWillBecomeVisible(::javax::swing::event::PopupMenuEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_PopupMenuListener__ diff --git a/libjava/javax/swing/event/SwingPropertyChangeSupport.h b/libjava/javax/swing/event/SwingPropertyChangeSupport.h new file mode 100644 index 00000000000..7d997085c0f --- /dev/null +++ b/libjava/javax/swing/event/SwingPropertyChangeSupport.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_SwingPropertyChangeSupport__ +#define __javax_swing_event_SwingPropertyChangeSupport__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class SwingPropertyChangeSupport; + } + } + } +} + +class javax::swing::event::SwingPropertyChangeSupport : public ::java::beans::PropertyChangeSupport +{ + +public: + SwingPropertyChangeSupport(::java::lang::Object *); +private: + static const jlong serialVersionUID = 7162625831330845068LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_SwingPropertyChangeSupport__ diff --git a/libjava/javax/swing/event/TableColumnModelEvent.h b/libjava/javax/swing/event/TableColumnModelEvent.h new file mode 100644 index 00000000000..0de5a8f5138 --- /dev/null +++ b/libjava/javax/swing/event/TableColumnModelEvent.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TableColumnModelEvent__ +#define __javax_swing_event_TableColumnModelEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TableColumnModelEvent; + } + namespace table + { + class TableColumnModel; + } + } + } +} + +class javax::swing::event::TableColumnModelEvent : public ::java::util::EventObject +{ + +public: + TableColumnModelEvent(::javax::swing::table::TableColumnModel *, jint, jint); + virtual jint getFromIndex(); + virtual jint getToIndex(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::util::EventObject)))) fromIndex; + jint toIndex; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_TableColumnModelEvent__ diff --git a/libjava/javax/swing/event/TableColumnModelListener.h b/libjava/javax/swing/event/TableColumnModelListener.h new file mode 100644 index 00000000000..3712b2e27e8 --- /dev/null +++ b/libjava/javax/swing/event/TableColumnModelListener.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TableColumnModelListener__ +#define __javax_swing_event_TableColumnModelListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + class ListSelectionEvent; + class TableColumnModelEvent; + class TableColumnModelListener; + } + } + } +} + +class javax::swing::event::TableColumnModelListener : public ::java::lang::Object +{ + +public: + virtual void columnAdded(::javax::swing::event::TableColumnModelEvent *) = 0; + virtual void columnMarginChanged(::javax::swing::event::ChangeEvent *) = 0; + virtual void columnMoved(::javax::swing::event::TableColumnModelEvent *) = 0; + virtual void columnRemoved(::javax::swing::event::TableColumnModelEvent *) = 0; + virtual void columnSelectionChanged(::javax::swing::event::ListSelectionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_TableColumnModelListener__ diff --git a/libjava/javax/swing/event/TableModelEvent.h b/libjava/javax/swing/event/TableModelEvent.h new file mode 100644 index 00000000000..dff48f5eb68 --- /dev/null +++ b/libjava/javax/swing/event/TableModelEvent.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TableModelEvent__ +#define __javax_swing_event_TableModelEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TableModelEvent; + } + namespace table + { + class TableModel; + } + } + } +} + +class javax::swing::event::TableModelEvent : public ::java::util::EventObject +{ + +public: + TableModelEvent(::javax::swing::table::TableModel *); + TableModelEvent(::javax::swing::table::TableModel *, jint); + TableModelEvent(::javax::swing::table::TableModel *, jint, jint); + TableModelEvent(::javax::swing::table::TableModel *, jint, jint, jint); + TableModelEvent(::javax::swing::table::TableModel *, jint, jint, jint, jint); + virtual jint getColumn(); + virtual jint getFirstRow(); + virtual jint getLastRow(); + virtual jint getType(); +private: + static const jlong serialVersionUID = -7849342674552212824LL; +public: + static const jint ALL_COLUMNS = -1; + static const jint DELETE = -1; + static const jint HEADER_ROW = -1; + static const jint INSERT = 1; + static const jint UPDATE = 0; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::util::EventObject)))) column; + jint firstRow; + jint lastRow; + jint type; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_TableModelEvent__ diff --git a/libjava/javax/swing/event/TableModelListener.h b/libjava/javax/swing/event/TableModelListener.h new file mode 100644 index 00000000000..db47af49fdb --- /dev/null +++ b/libjava/javax/swing/event/TableModelListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TableModelListener__ +#define __javax_swing_event_TableModelListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TableModelEvent; + class TableModelListener; + } + } + } +} + +class javax::swing::event::TableModelListener : public ::java::lang::Object +{ + +public: + virtual void tableChanged(::javax::swing::event::TableModelEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_TableModelListener__ diff --git a/libjava/javax/swing/event/TreeExpansionEvent.h b/libjava/javax/swing/event/TreeExpansionEvent.h new file mode 100644 index 00000000000..8694a2b3307 --- /dev/null +++ b/libjava/javax/swing/event/TreeExpansionEvent.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TreeExpansionEvent__ +#define __javax_swing_event_TreeExpansionEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeExpansionEvent; + } + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::event::TreeExpansionEvent : public ::java::util::EventObject +{ + +public: + TreeExpansionEvent(::java::lang::Object *, ::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getPath(); +public: // actually protected + ::javax::swing::tree::TreePath * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) path; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_TreeExpansionEvent__ diff --git a/libjava/javax/swing/event/TreeExpansionListener.h b/libjava/javax/swing/event/TreeExpansionListener.h new file mode 100644 index 00000000000..86960dbccaf --- /dev/null +++ b/libjava/javax/swing/event/TreeExpansionListener.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TreeExpansionListener__ +#define __javax_swing_event_TreeExpansionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeExpansionEvent; + class TreeExpansionListener; + } + } + } +} + +class javax::swing::event::TreeExpansionListener : public ::java::lang::Object +{ + +public: + virtual void treeCollapsed(::javax::swing::event::TreeExpansionEvent *) = 0; + virtual void treeExpanded(::javax::swing::event::TreeExpansionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_TreeExpansionListener__ diff --git a/libjava/javax/swing/event/TreeModelEvent.h b/libjava/javax/swing/event/TreeModelEvent.h new file mode 100644 index 00000000000..857ebf532bd --- /dev/null +++ b/libjava/javax/swing/event/TreeModelEvent.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TreeModelEvent__ +#define __javax_swing_event_TreeModelEvent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeModelEvent; + } + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::event::TreeModelEvent : public ::java::util::EventObject +{ + +public: + TreeModelEvent(::java::lang::Object *, JArray< ::java::lang::Object * > *); + TreeModelEvent(::java::lang::Object *, JArray< ::java::lang::Object * > *, JArray< jint > *, JArray< ::java::lang::Object * > *); + TreeModelEvent(::java::lang::Object *, ::javax::swing::tree::TreePath *); + TreeModelEvent(::java::lang::Object *, ::javax::swing::tree::TreePath *, JArray< jint > *, JArray< ::java::lang::Object * > *); + virtual JArray< jint > * getChildIndices(); + virtual JArray< ::java::lang::Object * > * getChildren(); + virtual JArray< ::java::lang::Object * > * getPath(); + virtual ::javax::swing::tree::TreePath * getTreePath(); + virtual ::java::lang::String * toString(); +public: // actually protected + JArray< jint > * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) childIndices; + JArray< ::java::lang::Object * > * children; + ::javax::swing::tree::TreePath * path; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_TreeModelEvent__ diff --git a/libjava/javax/swing/event/TreeModelListener.h b/libjava/javax/swing/event/TreeModelListener.h new file mode 100644 index 00000000000..cde0849debe --- /dev/null +++ b/libjava/javax/swing/event/TreeModelListener.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TreeModelListener__ +#define __javax_swing_event_TreeModelListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeModelEvent; + class TreeModelListener; + } + } + } +} + +class javax::swing::event::TreeModelListener : public ::java::lang::Object +{ + +public: + virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *) = 0; + virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *) = 0; + virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *) = 0; + virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_TreeModelListener__ diff --git a/libjava/javax/swing/event/TreeSelectionEvent.h b/libjava/javax/swing/event/TreeSelectionEvent.h new file mode 100644 index 00000000000..82bdfd61db5 --- /dev/null +++ b/libjava/javax/swing/event/TreeSelectionEvent.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TreeSelectionEvent__ +#define __javax_swing_event_TreeSelectionEvent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeSelectionEvent; + } + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::event::TreeSelectionEvent : public ::java::util::EventObject +{ + +public: + TreeSelectionEvent(::java::lang::Object *, JArray< ::javax::swing::tree::TreePath * > *, JArray< jboolean > *, ::javax::swing::tree::TreePath *, ::javax::swing::tree::TreePath *); + TreeSelectionEvent(::java::lang::Object *, ::javax::swing::tree::TreePath *, jboolean, ::javax::swing::tree::TreePath *, ::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getPath(); + virtual JArray< ::javax::swing::tree::TreePath * > * getPaths(); + virtual jboolean isAddedPath(); + virtual jboolean isAddedPath(::javax::swing::tree::TreePath *); + virtual jboolean isAddedPath(jint); + virtual ::javax::swing::tree::TreePath * getOldLeadSelectionPath(); + virtual ::javax::swing::tree::TreePath * getNewLeadSelectionPath(); + virtual ::java::lang::Object * cloneWithSource(::java::lang::Object *); +public: // actually protected + JArray< ::javax::swing::tree::TreePath * > * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) paths; + JArray< jboolean > * areNew; + ::javax::swing::tree::TreePath * oldLeadSelectionPath; + ::javax::swing::tree::TreePath * newLeadSelectionPath; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_TreeSelectionEvent__ diff --git a/libjava/javax/swing/event/TreeSelectionListener.h b/libjava/javax/swing/event/TreeSelectionListener.h new file mode 100644 index 00000000000..121f05f8892 --- /dev/null +++ b/libjava/javax/swing/event/TreeSelectionListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TreeSelectionListener__ +#define __javax_swing_event_TreeSelectionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeSelectionEvent; + class TreeSelectionListener; + } + } + } +} + +class javax::swing::event::TreeSelectionListener : public ::java::lang::Object +{ + +public: + virtual void valueChanged(::javax::swing::event::TreeSelectionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_TreeSelectionListener__ diff --git a/libjava/javax/swing/event/TreeWillExpandListener.h b/libjava/javax/swing/event/TreeWillExpandListener.h new file mode 100644 index 00000000000..fea233e55c8 --- /dev/null +++ b/libjava/javax/swing/event/TreeWillExpandListener.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_TreeWillExpandListener__ +#define __javax_swing_event_TreeWillExpandListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeExpansionEvent; + class TreeWillExpandListener; + } + } + } +} + +class javax::swing::event::TreeWillExpandListener : public ::java::lang::Object +{ + +public: + virtual void treeWillCollapse(::javax::swing::event::TreeExpansionEvent *) = 0; + virtual void treeWillExpand(::javax::swing::event::TreeExpansionEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_TreeWillExpandListener__ diff --git a/libjava/javax/swing/event/UndoableEditEvent.h b/libjava/javax/swing/event/UndoableEditEvent.h new file mode 100644 index 00000000000..244795301ec --- /dev/null +++ b/libjava/javax/swing/event/UndoableEditEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_UndoableEditEvent__ +#define __javax_swing_event_UndoableEditEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class UndoableEditEvent; + } + namespace undo + { + class UndoableEdit; + } + } + } +} + +class javax::swing::event::UndoableEditEvent : public ::java::util::EventObject +{ + +public: + UndoableEditEvent(::java::lang::Object *, ::javax::swing::undo::UndoableEdit *); + virtual ::javax::swing::undo::UndoableEdit * getEdit(); +private: + static const jlong serialVersionUID = 4418044561759134484LL; + ::javax::swing::undo::UndoableEdit * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) edit; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_event_UndoableEditEvent__ diff --git a/libjava/javax/swing/event/UndoableEditListener.h b/libjava/javax/swing/event/UndoableEditListener.h new file mode 100644 index 00000000000..738c5329a7f --- /dev/null +++ b/libjava/javax/swing/event/UndoableEditListener.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_event_UndoableEditListener__ +#define __javax_swing_event_UndoableEditListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class UndoableEditEvent; + class UndoableEditListener; + } + } + } +} + +class javax::swing::event::UndoableEditListener : public ::java::lang::Object +{ + +public: + virtual void undoableEditHappened(::javax::swing::event::UndoableEditEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_event_UndoableEditListener__ diff --git a/libjava/javax/swing/filechooser/FileFilter.h b/libjava/javax/swing/filechooser/FileFilter.h new file mode 100644 index 00000000000..ce2d75e746e --- /dev/null +++ b/libjava/javax/swing/filechooser/FileFilter.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_filechooser_FileFilter__ +#define __javax_swing_filechooser_FileFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace filechooser + { + class FileFilter; + } + } + } +} + +class javax::swing::filechooser::FileFilter : public ::java::lang::Object +{ + +public: + FileFilter(); + virtual jboolean accept(::java::io::File *) = 0; + virtual ::java::lang::String * getDescription() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_filechooser_FileFilter__ diff --git a/libjava/javax/swing/filechooser/FileSystemView.h b/libjava/javax/swing/filechooser/FileSystemView.h new file mode 100644 index 00000000000..48b35954c40 --- /dev/null +++ b/libjava/javax/swing/filechooser/FileSystemView.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_filechooser_FileSystemView__ +#define __javax_swing_filechooser_FileSystemView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Icon; + namespace filechooser + { + class FileSystemView; + } + } + } +} + +class javax::swing::filechooser::FileSystemView : public ::java::lang::Object +{ + +public: + FileSystemView(); + virtual ::java::io::File * createFileObject(::java::io::File *, ::java::lang::String *); + virtual ::java::io::File * createFileObject(::java::lang::String *); +public: // actually protected + virtual ::java::io::File * createFileSystemRoot(::java::io::File *); +public: + virtual ::java::io::File * createNewFolder(::java::io::File *) = 0; + virtual ::java::io::File * getChild(::java::io::File *, ::java::lang::String *); + virtual ::java::io::File * getDefaultDirectory(); + virtual JArray< ::java::io::File * > * getFiles(::java::io::File *, jboolean); + static ::javax::swing::filechooser::FileSystemView * getFileSystemView(); + virtual ::java::io::File * getHomeDirectory(); + virtual ::java::io::File * getParentDirectory(::java::io::File *); + virtual JArray< ::java::io::File * > * getRoots(); + virtual ::java::lang::String * getSystemDisplayName(::java::io::File *); + virtual ::javax::swing::Icon * getSystemIcon(::java::io::File *); + virtual ::java::lang::String * getSystemTypeDescription(::java::io::File *); + virtual jboolean isComputerNode(::java::io::File *); + virtual jboolean isDrive(::java::io::File *); + virtual jboolean isFileSystem(::java::io::File *); + virtual jboolean isFileSystemRoot(::java::io::File *); + virtual jboolean isFloppyDrive(::java::io::File *); + virtual jboolean isHiddenFile(::java::io::File *); + virtual jboolean isParent(::java::io::File *, ::java::io::File *); + virtual jboolean isRoot(::java::io::File *); + virtual ::java::lang::Boolean * isTraversable(::java::io::File *); +private: + static ::javax::swing::filechooser::FileSystemView * defaultFileSystemView; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_filechooser_FileSystemView__ diff --git a/libjava/javax/swing/filechooser/FileView.h b/libjava/javax/swing/filechooser/FileView.h new file mode 100644 index 00000000000..dffaa0f2bdb --- /dev/null +++ b/libjava/javax/swing/filechooser/FileView.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_filechooser_FileView__ +#define __javax_swing_filechooser_FileView__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Icon; + namespace filechooser + { + class FileView; + } + } + } +} + +class javax::swing::filechooser::FileView : public ::java::lang::Object +{ + +public: + FileView(); + virtual ::java::lang::String * getName(::java::io::File *); + virtual ::java::lang::String * getDescription(::java::io::File *); + virtual ::java::lang::String * getTypeDescription(::java::io::File *); + virtual ::javax::swing::Icon * getIcon(::java::io::File *); + virtual ::java::lang::Boolean * isTraversable(::java::io::File *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_filechooser_FileView__ diff --git a/libjava/javax/swing/filechooser/UnixFileSystemView.h b/libjava/javax/swing/filechooser/UnixFileSystemView.h new file mode 100644 index 00000000000..e06f9b8f0d0 --- /dev/null +++ b/libjava/javax/swing/filechooser/UnixFileSystemView.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_filechooser_UnixFileSystemView__ +#define __javax_swing_filechooser_UnixFileSystemView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Icon; + namespace filechooser + { + class UnixFileSystemView; + } + } + } +} + +class javax::swing::filechooser::UnixFileSystemView : public ::javax::swing::filechooser::FileSystemView +{ + +public: // actually package-private + UnixFileSystemView(); +public: + virtual ::java::io::File * createNewFolder(::java::io::File *); + virtual JArray< ::java::io::File * > * getRoots(); + virtual ::java::lang::String * getSystemDisplayName(::java::io::File *); + virtual ::javax::swing::Icon * getSystemIcon(::java::io::File *); + virtual ::java::lang::String * getSystemTypeDescription(::java::io::File *); + virtual jboolean isRoot(::java::io::File *); +private: + static ::java::lang::String * NEW_FOLDER_NAME; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_filechooser_UnixFileSystemView__ diff --git a/libjava/javax/swing/plaf/ActionMapUIResource.h b/libjava/javax/swing/plaf/ActionMapUIResource.h new file mode 100644 index 00000000000..a9364d8e2d2 --- /dev/null +++ b/libjava/javax/swing/plaf/ActionMapUIResource.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ActionMapUIResource__ +#define __javax_swing_plaf_ActionMapUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ActionMapUIResource; + } + } + } +} + +class javax::swing::plaf::ActionMapUIResource : public ::javax::swing::ActionMap +{ + +public: + ActionMapUIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ActionMapUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource$BevelBorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource$BevelBorderUIResource.h new file mode 100644 index 00000000000..c85a1ba6ebf --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource$BevelBorderUIResource.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource$BevelBorderUIResource__ +#define __javax_swing_plaf_BorderUIResource$BevelBorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class BorderUIResource$BevelBorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource$BevelBorderUIResource : public ::javax::swing::border::BevelBorder +{ + +public: + BorderUIResource$BevelBorderUIResource(jint); + BorderUIResource$BevelBorderUIResource(jint, ::java::awt::Color *, ::java::awt::Color *); + BorderUIResource$BevelBorderUIResource(jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); +private: + static const jlong serialVersionUID = -1275542891108351642LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource$BevelBorderUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource$CompoundBorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource$CompoundBorderUIResource.h new file mode 100644 index 00000000000..8161ecbe9fd --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource$CompoundBorderUIResource.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource$CompoundBorderUIResource__ +#define __javax_swing_plaf_BorderUIResource$CompoundBorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace plaf + { + class BorderUIResource$CompoundBorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource$CompoundBorderUIResource : public ::javax::swing::border::CompoundBorder +{ + +public: + BorderUIResource$CompoundBorderUIResource(::javax::swing::border::Border *, ::javax::swing::border::Border *); +private: + static const jlong serialVersionUID = 7550017084975167341LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource$CompoundBorderUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource$EmptyBorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource$EmptyBorderUIResource.h new file mode 100644 index 00000000000..15ba53faecd --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource$EmptyBorderUIResource.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource$EmptyBorderUIResource__ +#define __javax_swing_plaf_BorderUIResource$EmptyBorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class BorderUIResource$EmptyBorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource$EmptyBorderUIResource : public ::javax::swing::border::EmptyBorder +{ + +public: + BorderUIResource$EmptyBorderUIResource(jint, jint, jint, jint); + BorderUIResource$EmptyBorderUIResource(::java::awt::Insets *); +private: + static const jlong serialVersionUID = -4914187529340071708LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource$EmptyBorderUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource$EtchedBorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource$EtchedBorderUIResource.h new file mode 100644 index 00000000000..89934717a2d --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource$EtchedBorderUIResource.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource$EtchedBorderUIResource__ +#define __javax_swing_plaf_BorderUIResource$EtchedBorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class BorderUIResource$EtchedBorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource$EtchedBorderUIResource : public ::javax::swing::border::EtchedBorder +{ + +public: + BorderUIResource$EtchedBorderUIResource(); + BorderUIResource$EtchedBorderUIResource(jint); + BorderUIResource$EtchedBorderUIResource(::java::awt::Color *, ::java::awt::Color *); + BorderUIResource$EtchedBorderUIResource(jint, ::java::awt::Color *, ::java::awt::Color *); +private: + static const jlong serialVersionUID = -8186391754165296656LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource$EtchedBorderUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource$LineBorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource$LineBorderUIResource.h new file mode 100644 index 00000000000..fe3669c0014 --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource$LineBorderUIResource.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource$LineBorderUIResource__ +#define __javax_swing_plaf_BorderUIResource$LineBorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class BorderUIResource$LineBorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource$LineBorderUIResource : public ::javax::swing::border::LineBorder +{ + +public: + BorderUIResource$LineBorderUIResource(::java::awt::Color *); + BorderUIResource$LineBorderUIResource(::java::awt::Color *, jint); +private: + static const jlong serialVersionUID = -6171232338180172310LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource$LineBorderUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource$MatteBorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource$MatteBorderUIResource.h new file mode 100644 index 00000000000..b5925fce775 --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource$MatteBorderUIResource.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource$MatteBorderUIResource__ +#define __javax_swing_plaf_BorderUIResource$MatteBorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + class BorderUIResource$MatteBorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource$MatteBorderUIResource : public ::javax::swing::border::MatteBorder +{ + +public: + BorderUIResource$MatteBorderUIResource(jint, jint, jint, jint, ::java::awt::Color *); + BorderUIResource$MatteBorderUIResource(jint, jint, jint, jint, ::javax::swing::Icon *); + BorderUIResource$MatteBorderUIResource(::javax::swing::Icon *); +private: + static const jlong serialVersionUID = -8107923147541851122LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource$MatteBorderUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource$TitledBorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource$TitledBorderUIResource.h new file mode 100644 index 00000000000..a20193f6d01 --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource$TitledBorderUIResource.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource$TitledBorderUIResource__ +#define __javax_swing_plaf_BorderUIResource$TitledBorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace plaf + { + class BorderUIResource$TitledBorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource$TitledBorderUIResource : public ::javax::swing::border::TitledBorder +{ + +public: + BorderUIResource$TitledBorderUIResource(::java::lang::String *); + BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *); + BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *); + BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *, jint, jint); + BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *); + BorderUIResource$TitledBorderUIResource(::javax::swing::border::Border *, ::java::lang::String *, jint, jint, ::java::awt::Font *, ::java::awt::Color *); +private: + static const jlong serialVersionUID = 7667113547406407427LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource$TitledBorderUIResource__ diff --git a/libjava/javax/swing/plaf/BorderUIResource.h b/libjava/javax/swing/plaf/BorderUIResource.h new file mode 100644 index 00000000000..3a89c2c00c5 --- /dev/null +++ b/libjava/javax/swing/plaf/BorderUIResource.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_BorderUIResource__ +#define __javax_swing_plaf_BorderUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace plaf + { + class BorderUIResource; + } + } + } +} + +class javax::swing::plaf::BorderUIResource : public ::java::lang::Object +{ + +public: + static ::javax::swing::border::Border * getEtchedBorderUIResource(); + static ::javax::swing::border::Border * getLoweredBevelBorderUIResource(); + static ::javax::swing::border::Border * getRaisedBevelBorderUIResource(); + static ::javax::swing::border::Border * getBlackLineBorderUIResource(); + BorderUIResource(::javax::swing::border::Border *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual jboolean isBorderOpaque(); +public: // actually package-private + static const jlong serialVersionUID = -3440553684010079691LL; +private: + static ::javax::swing::border::Border * etchedBorderUIResource; + static ::javax::swing::border::Border * loweredBevelBorderUIResource; + static ::javax::swing::border::Border * raisedBevelBorderUIResource; + static ::javax::swing::border::Border * blackLineBorderUIResource; + ::javax::swing::border::Border * __attribute__((aligned(__alignof__( ::java::lang::Object)))) delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_BorderUIResource__ diff --git a/libjava/javax/swing/plaf/ButtonUI.h b/libjava/javax/swing/plaf/ButtonUI.h new file mode 100644 index 00000000000..61cb852b83c --- /dev/null +++ b/libjava/javax/swing/plaf/ButtonUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ButtonUI__ +#define __javax_swing_plaf_ButtonUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ButtonUI; + } + } + } +} + +class javax::swing::plaf::ButtonUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ButtonUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ButtonUI__ diff --git a/libjava/javax/swing/plaf/ColorChooserUI.h b/libjava/javax/swing/plaf/ColorChooserUI.h new file mode 100644 index 00000000000..9db0d0e891b --- /dev/null +++ b/libjava/javax/swing/plaf/ColorChooserUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ColorChooserUI__ +#define __javax_swing_plaf_ColorChooserUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ColorChooserUI; + } + } + } +} + +class javax::swing::plaf::ColorChooserUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ColorChooserUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ColorChooserUI__ diff --git a/libjava/javax/swing/plaf/ColorUIResource.h b/libjava/javax/swing/plaf/ColorUIResource.h new file mode 100644 index 00000000000..37ef2238288 --- /dev/null +++ b/libjava/javax/swing/plaf/ColorUIResource.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ColorUIResource__ +#define __javax_swing_plaf_ColorUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class ColorUIResource; + } + } + } +} + +class javax::swing::plaf::ColorUIResource : public ::java::awt::Color +{ + +public: + ColorUIResource(jint, jint, jint); + ColorUIResource(jint); + ColorUIResource(jfloat, jfloat, jfloat); + ColorUIResource(::java::awt::Color *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ColorUIResource__ diff --git a/libjava/javax/swing/plaf/ComboBoxUI.h b/libjava/javax/swing/plaf/ComboBoxUI.h new file mode 100644 index 00000000000..bdcdfe3f0ea --- /dev/null +++ b/libjava/javax/swing/plaf/ComboBoxUI.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ComboBoxUI__ +#define __javax_swing_plaf_ComboBoxUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComboBox; + namespace plaf + { + class ComboBoxUI; + } + } + } +} + +class javax::swing::plaf::ComboBoxUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ComboBoxUI(); + virtual void setPopupVisible(::javax::swing::JComboBox *, jboolean) = 0; + virtual jboolean isPopupVisible(::javax::swing::JComboBox *) = 0; + virtual jboolean isFocusTraversable(::javax::swing::JComboBox *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ComboBoxUI__ diff --git a/libjava/javax/swing/plaf/ComponentInputMapUIResource.h b/libjava/javax/swing/plaf/ComponentInputMapUIResource.h new file mode 100644 index 00000000000..52accf48001 --- /dev/null +++ b/libjava/javax/swing/plaf/ComponentInputMapUIResource.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ComponentInputMapUIResource__ +#define __javax_swing_plaf_ComponentInputMapUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentInputMapUIResource; + } + } + } +} + +class javax::swing::plaf::ComponentInputMapUIResource : public ::javax::swing::ComponentInputMap +{ + +public: + ComponentInputMapUIResource(::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ComponentInputMapUIResource__ diff --git a/libjava/javax/swing/plaf/ComponentUI.h b/libjava/javax/swing/plaf/ComponentUI.h new file mode 100644 index 00000000000..3f14af6c89e --- /dev/null +++ b/libjava/javax/swing/plaf/ComponentUI.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ComponentUI__ +#define __javax_swing_plaf_ComponentUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + } + } + } +} + +class javax::swing::plaf::ComponentUI : public ::java::lang::Object +{ + +public: + ComponentUI(); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ComponentUI__ diff --git a/libjava/javax/swing/plaf/DesktopIconUI.h b/libjava/javax/swing/plaf/DesktopIconUI.h new file mode 100644 index 00000000000..6f3fb24d68e --- /dev/null +++ b/libjava/javax/swing/plaf/DesktopIconUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_DesktopIconUI__ +#define __javax_swing_plaf_DesktopIconUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class DesktopIconUI; + } + } + } +} + +class javax::swing::plaf::DesktopIconUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + DesktopIconUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_DesktopIconUI__ diff --git a/libjava/javax/swing/plaf/DesktopPaneUI.h b/libjava/javax/swing/plaf/DesktopPaneUI.h new file mode 100644 index 00000000000..308120dc131 --- /dev/null +++ b/libjava/javax/swing/plaf/DesktopPaneUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_DesktopPaneUI__ +#define __javax_swing_plaf_DesktopPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class DesktopPaneUI; + } + } + } +} + +class javax::swing::plaf::DesktopPaneUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + DesktopPaneUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_DesktopPaneUI__ diff --git a/libjava/javax/swing/plaf/DimensionUIResource.h b/libjava/javax/swing/plaf/DimensionUIResource.h new file mode 100644 index 00000000000..620a35d05c2 --- /dev/null +++ b/libjava/javax/swing/plaf/DimensionUIResource.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_DimensionUIResource__ +#define __javax_swing_plaf_DimensionUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class DimensionUIResource; + } + } + } +} + +class javax::swing::plaf::DimensionUIResource : public ::java::awt::Dimension +{ + +public: + DimensionUIResource(jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_DimensionUIResource__ diff --git a/libjava/javax/swing/plaf/FileChooserUI.h b/libjava/javax/swing/plaf/FileChooserUI.h new file mode 100644 index 00000000000..3a166bac0aa --- /dev/null +++ b/libjava/javax/swing/plaf/FileChooserUI.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_FileChooserUI__ +#define __javax_swing_plaf_FileChooserUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JFileChooser; + namespace filechooser + { + class FileFilter; + class FileView; + } + namespace plaf + { + class FileChooserUI; + } + } + } +} + +class javax::swing::plaf::FileChooserUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + FileChooserUI(); + virtual ::javax::swing::filechooser::FileFilter * getAcceptAllFileFilter(::javax::swing::JFileChooser *) = 0; + virtual ::javax::swing::filechooser::FileView * getFileView(::javax::swing::JFileChooser *) = 0; + virtual ::java::lang::String * getApproveButtonText(::javax::swing::JFileChooser *) = 0; + virtual ::java::lang::String * getDialogTitle(::javax::swing::JFileChooser *) = 0; + virtual void rescanCurrentDirectory(::javax::swing::JFileChooser *) = 0; + virtual void ensureFileIsVisible(::javax::swing::JFileChooser *, ::java::io::File *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_FileChooserUI__ diff --git a/libjava/javax/swing/plaf/FontUIResource.h b/libjava/javax/swing/plaf/FontUIResource.h new file mode 100644 index 00000000000..4f2b8353ba0 --- /dev/null +++ b/libjava/javax/swing/plaf/FontUIResource.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_FontUIResource__ +#define __javax_swing_plaf_FontUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Font; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class FontUIResource; + } + } + } +} + +class javax::swing::plaf::FontUIResource : public ::java::awt::Font +{ + +public: + FontUIResource(::java::lang::String *, jint, jint); + FontUIResource(::java::awt::Font *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_FontUIResource__ diff --git a/libjava/javax/swing/plaf/IconUIResource.h b/libjava/javax/swing/plaf/IconUIResource.h new file mode 100644 index 00000000000..f1e7047494c --- /dev/null +++ b/libjava/javax/swing/plaf/IconUIResource.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_IconUIResource__ +#define __javax_swing_plaf_IconUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + class IconUIResource; + } + } + } +} + +class javax::swing::plaf::IconUIResource : public ::java::lang::Object +{ + +public: + IconUIResource(::javax::swing::Icon *); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + virtual jint getIconWidth(); + virtual jint getIconHeight(); +public: // actually package-private + static const jlong serialVersionUID = 3327049506004830542LL; +private: + ::javax::swing::Icon * __attribute__((aligned(__alignof__( ::java::lang::Object)))) delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_IconUIResource__ diff --git a/libjava/javax/swing/plaf/InputMapUIResource.h b/libjava/javax/swing/plaf/InputMapUIResource.h new file mode 100644 index 00000000000..448fc817ee2 --- /dev/null +++ b/libjava/javax/swing/plaf/InputMapUIResource.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_InputMapUIResource__ +#define __javax_swing_plaf_InputMapUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class InputMapUIResource; + } + } + } +} + +class javax::swing::plaf::InputMapUIResource : public ::javax::swing::InputMap +{ + +public: + InputMapUIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_InputMapUIResource__ diff --git a/libjava/javax/swing/plaf/InsetsUIResource.h b/libjava/javax/swing/plaf/InsetsUIResource.h new file mode 100644 index 00000000000..f9621375d95 --- /dev/null +++ b/libjava/javax/swing/plaf/InsetsUIResource.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_InsetsUIResource__ +#define __javax_swing_plaf_InsetsUIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class InsetsUIResource; + } + } + } +} + +class javax::swing::plaf::InsetsUIResource : public ::java::awt::Insets +{ + +public: + InsetsUIResource(jint, jint, jint, jint); +public: // actually package-private + static const jlong serialVersionUID = 5622110143266315421LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_InsetsUIResource__ diff --git a/libjava/javax/swing/plaf/InternalFrameUI.h b/libjava/javax/swing/plaf/InternalFrameUI.h new file mode 100644 index 00000000000..1aa4f76afd9 --- /dev/null +++ b/libjava/javax/swing/plaf/InternalFrameUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_InternalFrameUI__ +#define __javax_swing_plaf_InternalFrameUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class InternalFrameUI; + } + } + } +} + +class javax::swing::plaf::InternalFrameUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + InternalFrameUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_InternalFrameUI__ diff --git a/libjava/javax/swing/plaf/LabelUI.h b/libjava/javax/swing/plaf/LabelUI.h new file mode 100644 index 00000000000..018087af033 --- /dev/null +++ b/libjava/javax/swing/plaf/LabelUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_LabelUI__ +#define __javax_swing_plaf_LabelUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class LabelUI; + } + } + } +} + +class javax::swing::plaf::LabelUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + LabelUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_LabelUI__ diff --git a/libjava/javax/swing/plaf/ListUI.h b/libjava/javax/swing/plaf/ListUI.h new file mode 100644 index 00000000000..241768f021b --- /dev/null +++ b/libjava/javax/swing/plaf/ListUI.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ListUI__ +#define __javax_swing_plaf_ListUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JList; + namespace plaf + { + class ListUI; + } + } + } +} + +class javax::swing::plaf::ListUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ListUI(); + virtual jint locationToIndex(::javax::swing::JList *, ::java::awt::Point *) = 0; + virtual ::java::awt::Point * indexToLocation(::javax::swing::JList *, jint) = 0; + virtual ::java::awt::Rectangle * getCellBounds(::javax::swing::JList *, jint, jint) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ListUI__ diff --git a/libjava/javax/swing/plaf/MenuBarUI.h b/libjava/javax/swing/plaf/MenuBarUI.h new file mode 100644 index 00000000000..cf2aba65494 --- /dev/null +++ b/libjava/javax/swing/plaf/MenuBarUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_MenuBarUI__ +#define __javax_swing_plaf_MenuBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class MenuBarUI; + } + } + } +} + +class javax::swing::plaf::MenuBarUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + MenuBarUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_MenuBarUI__ diff --git a/libjava/javax/swing/plaf/MenuItemUI.h b/libjava/javax/swing/plaf/MenuItemUI.h new file mode 100644 index 00000000000..9f4692bd89f --- /dev/null +++ b/libjava/javax/swing/plaf/MenuItemUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_MenuItemUI__ +#define __javax_swing_plaf_MenuItemUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class MenuItemUI; + } + } + } +} + +class javax::swing::plaf::MenuItemUI : public ::javax::swing::plaf::ButtonUI +{ + +public: + MenuItemUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_MenuItemUI__ diff --git a/libjava/javax/swing/plaf/OptionPaneUI.h b/libjava/javax/swing/plaf/OptionPaneUI.h new file mode 100644 index 00000000000..1dbd6b8c896 --- /dev/null +++ b/libjava/javax/swing/plaf/OptionPaneUI.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_OptionPaneUI__ +#define __javax_swing_plaf_OptionPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JOptionPane; + namespace plaf + { + class OptionPaneUI; + } + } + } +} + +class javax::swing::plaf::OptionPaneUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + OptionPaneUI(); + virtual void selectInitialValue(::javax::swing::JOptionPane *) = 0; + virtual jboolean containsCustomComponents(::javax::swing::JOptionPane *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_OptionPaneUI__ diff --git a/libjava/javax/swing/plaf/PanelUI.h b/libjava/javax/swing/plaf/PanelUI.h new file mode 100644 index 00000000000..9b962235b9f --- /dev/null +++ b/libjava/javax/swing/plaf/PanelUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_PanelUI__ +#define __javax_swing_plaf_PanelUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class PanelUI; + } + } + } +} + +class javax::swing::plaf::PanelUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + PanelUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_PanelUI__ diff --git a/libjava/javax/swing/plaf/PopupMenuUI.h b/libjava/javax/swing/plaf/PopupMenuUI.h new file mode 100644 index 00000000000..16aa6b5a1d7 --- /dev/null +++ b/libjava/javax/swing/plaf/PopupMenuUI.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_PopupMenuUI__ +#define __javax_swing_plaf_PopupMenuUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JPopupMenu; + class Popup; + namespace plaf + { + class PopupMenuUI; + } + } + } +} + +class javax::swing::plaf::PopupMenuUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + PopupMenuUI(); + virtual jboolean isPopupTrigger(::java::awt::event::MouseEvent *); + virtual ::javax::swing::Popup * getPopup(::javax::swing::JPopupMenu *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_PopupMenuUI__ diff --git a/libjava/javax/swing/plaf/ProgressBarUI.h b/libjava/javax/swing/plaf/ProgressBarUI.h new file mode 100644 index 00000000000..d9e6714acc8 --- /dev/null +++ b/libjava/javax/swing/plaf/ProgressBarUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ProgressBarUI__ +#define __javax_swing_plaf_ProgressBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ProgressBarUI; + } + } + } +} + +class javax::swing::plaf::ProgressBarUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ProgressBarUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ProgressBarUI__ diff --git a/libjava/javax/swing/plaf/RootPaneUI.h b/libjava/javax/swing/plaf/RootPaneUI.h new file mode 100644 index 00000000000..3e82895d7c2 --- /dev/null +++ b/libjava/javax/swing/plaf/RootPaneUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_RootPaneUI__ +#define __javax_swing_plaf_RootPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class RootPaneUI; + } + } + } +} + +class javax::swing::plaf::RootPaneUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + RootPaneUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_RootPaneUI__ diff --git a/libjava/javax/swing/plaf/ScrollBarUI.h b/libjava/javax/swing/plaf/ScrollBarUI.h new file mode 100644 index 00000000000..24854eff2aa --- /dev/null +++ b/libjava/javax/swing/plaf/ScrollBarUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ScrollBarUI__ +#define __javax_swing_plaf_ScrollBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ScrollBarUI; + } + } + } +} + +class javax::swing::plaf::ScrollBarUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ScrollBarUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ScrollBarUI__ diff --git a/libjava/javax/swing/plaf/ScrollPaneUI.h b/libjava/javax/swing/plaf/ScrollPaneUI.h new file mode 100644 index 00000000000..7253175358d --- /dev/null +++ b/libjava/javax/swing/plaf/ScrollPaneUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ScrollPaneUI__ +#define __javax_swing_plaf_ScrollPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ScrollPaneUI; + } + } + } +} + +class javax::swing::plaf::ScrollPaneUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ScrollPaneUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ScrollPaneUI__ diff --git a/libjava/javax/swing/plaf/SeparatorUI.h b/libjava/javax/swing/plaf/SeparatorUI.h new file mode 100644 index 00000000000..c968d73cc55 --- /dev/null +++ b/libjava/javax/swing/plaf/SeparatorUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_SeparatorUI__ +#define __javax_swing_plaf_SeparatorUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class SeparatorUI; + } + } + } +} + +class javax::swing::plaf::SeparatorUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + SeparatorUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_SeparatorUI__ diff --git a/libjava/javax/swing/plaf/SliderUI.h b/libjava/javax/swing/plaf/SliderUI.h new file mode 100644 index 00000000000..bc18a5f739f --- /dev/null +++ b/libjava/javax/swing/plaf/SliderUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_SliderUI__ +#define __javax_swing_plaf_SliderUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class SliderUI; + } + } + } +} + +class javax::swing::plaf::SliderUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + SliderUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_SliderUI__ diff --git a/libjava/javax/swing/plaf/SpinnerUI.h b/libjava/javax/swing/plaf/SpinnerUI.h new file mode 100644 index 00000000000..c20f12d9216 --- /dev/null +++ b/libjava/javax/swing/plaf/SpinnerUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_SpinnerUI__ +#define __javax_swing_plaf_SpinnerUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class SpinnerUI; + } + } + } +} + +class javax::swing::plaf::SpinnerUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + SpinnerUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_SpinnerUI__ diff --git a/libjava/javax/swing/plaf/SplitPaneUI.h b/libjava/javax/swing/plaf/SplitPaneUI.h new file mode 100644 index 00000000000..31c1ec1699c --- /dev/null +++ b/libjava/javax/swing/plaf/SplitPaneUI.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_SplitPaneUI__ +#define __javax_swing_plaf_SplitPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JSplitPane; + namespace plaf + { + class SplitPaneUI; + } + } + } +} + +class javax::swing::plaf::SplitPaneUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + SplitPaneUI(); + virtual void resetToPreferredSizes(::javax::swing::JSplitPane *) = 0; + virtual void setDividerLocation(::javax::swing::JSplitPane *, jint) = 0; + virtual jint getDividerLocation(::javax::swing::JSplitPane *) = 0; + virtual jint getMinimumDividerLocation(::javax::swing::JSplitPane *) = 0; + virtual jint getMaximumDividerLocation(::javax::swing::JSplitPane *) = 0; + virtual void finishedPaintingChildren(::javax::swing::JSplitPane *, ::java::awt::Graphics *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_SplitPaneUI__ diff --git a/libjava/javax/swing/plaf/TabbedPaneUI.h b/libjava/javax/swing/plaf/TabbedPaneUI.h new file mode 100644 index 00000000000..725554a386e --- /dev/null +++ b/libjava/javax/swing/plaf/TabbedPaneUI.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_TabbedPaneUI__ +#define __javax_swing_plaf_TabbedPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JTabbedPane; + namespace plaf + { + class TabbedPaneUI; + } + } + } +} + +class javax::swing::plaf::TabbedPaneUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + TabbedPaneUI(); + virtual jint tabForCoordinate(::javax::swing::JTabbedPane *, jint, jint) = 0; + virtual ::java::awt::Rectangle * getTabBounds(::javax::swing::JTabbedPane *, jint) = 0; + virtual jint getTabRunCount(::javax::swing::JTabbedPane *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_TabbedPaneUI__ diff --git a/libjava/javax/swing/plaf/TableHeaderUI.h b/libjava/javax/swing/plaf/TableHeaderUI.h new file mode 100644 index 00000000000..cc0c5c8f383 --- /dev/null +++ b/libjava/javax/swing/plaf/TableHeaderUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_TableHeaderUI__ +#define __javax_swing_plaf_TableHeaderUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class TableHeaderUI; + } + } + } +} + +class javax::swing::plaf::TableHeaderUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + TableHeaderUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_TableHeaderUI__ diff --git a/libjava/javax/swing/plaf/TableUI.h b/libjava/javax/swing/plaf/TableUI.h new file mode 100644 index 00000000000..5e8c51d777b --- /dev/null +++ b/libjava/javax/swing/plaf/TableUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_TableUI__ +#define __javax_swing_plaf_TableUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class TableUI; + } + } + } +} + +class javax::swing::plaf::TableUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + TableUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_TableUI__ diff --git a/libjava/javax/swing/plaf/TextUI.h b/libjava/javax/swing/plaf/TextUI.h new file mode 100644 index 00000000000..1c4faf66d82 --- /dev/null +++ b/libjava/javax/swing/plaf/TextUI.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_TextUI__ +#define __javax_swing_plaf_TextUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + class TextUI; + } + namespace text + { + class EditorKit; + class JTextComponent; + class Position$Bias; + class View; + } + } + } +} + +class javax::swing::plaf::TextUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + TextUI(); + virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint) = 0; + virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *) = 0; + virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *) = 0; + virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *, JArray< ::javax::swing::text::Position$Bias * > *) = 0; + virtual jint getNextVisualPositionFrom(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *, jint, JArray< ::javax::swing::text::Position$Bias * > *) = 0; + virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint) = 0; + virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint, ::javax::swing::text::Position$Bias *, ::javax::swing::text::Position$Bias *) = 0; + virtual ::javax::swing::text::EditorKit * getEditorKit(::javax::swing::text::JTextComponent *) = 0; + virtual ::javax::swing::text::View * getRootView(::javax::swing::text::JTextComponent *) = 0; + virtual ::java::lang::String * getToolTipText(::javax::swing::text::JTextComponent *, ::java::awt::Point *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_TextUI__ diff --git a/libjava/javax/swing/plaf/ToolBarUI.h b/libjava/javax/swing/plaf/ToolBarUI.h new file mode 100644 index 00000000000..79600b2a9fd --- /dev/null +++ b/libjava/javax/swing/plaf/ToolBarUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ToolBarUI__ +#define __javax_swing_plaf_ToolBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ToolBarUI; + } + } + } +} + +class javax::swing::plaf::ToolBarUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ToolBarUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ToolBarUI__ diff --git a/libjava/javax/swing/plaf/ToolTipUI.h b/libjava/javax/swing/plaf/ToolTipUI.h new file mode 100644 index 00000000000..2c061abb8b3 --- /dev/null +++ b/libjava/javax/swing/plaf/ToolTipUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ToolTipUI__ +#define __javax_swing_plaf_ToolTipUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ToolTipUI; + } + } + } +} + +class javax::swing::plaf::ToolTipUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ToolTipUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ToolTipUI__ diff --git a/libjava/javax/swing/plaf/TreeUI.h b/libjava/javax/swing/plaf/TreeUI.h new file mode 100644 index 00000000000..69bbc1215d8 --- /dev/null +++ b/libjava/javax/swing/plaf/TreeUI.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_TreeUI__ +#define __javax_swing_plaf_TreeUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JTree; + namespace plaf + { + class TreeUI; + } + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::plaf::TreeUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + TreeUI(); + virtual ::java::awt::Rectangle * getPathBounds(::javax::swing::JTree *, ::javax::swing::tree::TreePath *) = 0; + virtual ::javax::swing::tree::TreePath * getPathForRow(::javax::swing::JTree *, jint) = 0; + virtual jint getRowForPath(::javax::swing::JTree *, ::javax::swing::tree::TreePath *) = 0; + virtual jint getRowCount(::javax::swing::JTree *) = 0; + virtual ::javax::swing::tree::TreePath * getClosestPathForLocation(::javax::swing::JTree *, jint, jint) = 0; + virtual jboolean isEditing(::javax::swing::JTree *) = 0; + virtual jboolean stopEditing(::javax::swing::JTree *) = 0; + virtual void cancelEditing(::javax::swing::JTree *) = 0; + virtual void startEditingAtPath(::javax::swing::JTree *, ::javax::swing::tree::TreePath *) = 0; + virtual ::javax::swing::tree::TreePath * getEditingPath(::javax::swing::JTree *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_TreeUI__ diff --git a/libjava/javax/swing/plaf/UIResource.h b/libjava/javax/swing/plaf/UIResource.h new file mode 100644 index 00000000000..0ddd789264d --- /dev/null +++ b/libjava/javax/swing/plaf/UIResource.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_UIResource__ +#define __javax_swing_plaf_UIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class UIResource; + } + } + } +} + +class javax::swing::plaf::UIResource : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_plaf_UIResource__ diff --git a/libjava/javax/swing/plaf/ViewportUI.h b/libjava/javax/swing/plaf/ViewportUI.h new file mode 100644 index 00000000000..64855b17a9a --- /dev/null +++ b/libjava/javax/swing/plaf/ViewportUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_ViewportUI__ +#define __javax_swing_plaf_ViewportUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ViewportUI; + } + } + } +} + +class javax::swing::plaf::ViewportUI : public ::javax::swing::plaf::ComponentUI +{ + +public: + ViewportUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_ViewportUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicArrowButton.h b/libjava/javax/swing/plaf/basic/BasicArrowButton.h new file mode 100644 index 00000000000..033f499aaf8 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicArrowButton.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicArrowButton__ +#define __javax_swing_plaf_basic_BasicArrowButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicArrowButton; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicArrowButton : public ::javax::swing::JButton +{ + +public: + BasicArrowButton(jint); + BasicArrowButton(jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual jboolean isFocusTraversable(); + virtual jint getDirection(); + virtual void setDirection(jint); + virtual void paint(::java::awt::Graphics *); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getMaximumSize(); + virtual void paintTriangle(::java::awt::Graphics *, jint, jint, jint, jint, jboolean); +private: + void paintTriangleNorth(::java::awt::Graphics *, jint, jint, jint, jboolean); + void paintTriangleSouth(::java::awt::Graphics *, jint, jint, jint, jboolean); + void paintTriangleEast(::java::awt::Graphics *, jint, jint, jint, jboolean); + void paintTriangleWest(::java::awt::Graphics *, jint, jint, jint, jboolean); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) direction; +public: // actually package-private + ::java::awt::Color * shadow; + ::java::awt::Color * darkShadow; + ::java::awt::Color * highlight; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicArrowButton__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$ButtonBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$ButtonBorder.h new file mode 100644 index 00000000000..b4a2c915729 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$ButtonBorder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$ButtonBorder__ +#define __javax_swing_plaf_basic_BasicBorders$ButtonBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$ButtonBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$ButtonBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + BasicBorders$ButtonBorder(::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually package-private + static const jlong serialVersionUID = -157053874580739687LL; +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) shadow; + ::java::awt::Color * darkShadow; + ::java::awt::Color * highlight; + ::java::awt::Color * lightHighlight; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$ButtonBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$FieldBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$FieldBorder.h new file mode 100644 index 00000000000..455b711c0ce --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$FieldBorder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$FieldBorder__ +#define __javax_swing_plaf_basic_BasicBorders$FieldBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$FieldBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$FieldBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + BasicBorders$FieldBorder(::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually package-private + static const jlong serialVersionUID = 949220756998454908LL; +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) shadow; + ::java::awt::Color * darkShadow; + ::java::awt::Color * highlight; + ::java::awt::Color * lightHighlight; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$FieldBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$MarginBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$MarginBorder.h new file mode 100644 index 00000000000..a974a460a8d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$MarginBorder.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$MarginBorder__ +#define __javax_swing_plaf_basic_BasicBorders$MarginBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$MarginBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$MarginBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + BasicBorders$MarginBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually package-private + static const jlong serialVersionUID = -3035848353448896090LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$MarginBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$MenuBarBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$MenuBarBorder.h new file mode 100644 index 00000000000..fcf26ba5918 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$MenuBarBorder.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$MenuBarBorder__ +#define __javax_swing_plaf_basic_BasicBorders$MenuBarBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$MenuBarBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$MenuBarBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + BasicBorders$MenuBarBorder(::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually package-private + static const jlong serialVersionUID = -6909056571935227506LL; +private: + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) shadow; + ::java::awt::Color * highlight; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$MenuBarBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$RadioButtonBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$RadioButtonBorder.h new file mode 100644 index 00000000000..b737890ede1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$RadioButtonBorder.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$RadioButtonBorder__ +#define __javax_swing_plaf_basic_BasicBorders$RadioButtonBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$RadioButtonBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$RadioButtonBorder : public ::javax::swing::plaf::basic::BasicBorders$ButtonBorder +{ + +public: + BasicBorders$RadioButtonBorder(::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually package-private + static const jlong serialVersionUID = 1596945751743747369LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$RadioButtonBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder.h new file mode 100644 index 00000000000..84d6ee07631 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$RolloverButtonBorder.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$RolloverButtonBorder__ +#define __javax_swing_plaf_basic_BasicBorders$RolloverButtonBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$RolloverButtonBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$RolloverButtonBorder : public ::javax::swing::plaf::basic::BasicBorders$ButtonBorder +{ + +public: + BasicBorders$RolloverButtonBorder(::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +public: // actually package-private + static const jlong serialVersionUID = 1976364864896996846LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$RolloverButtonBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneBorder.h new file mode 100644 index 00000000000..3a7d22f30aa --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneBorder.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$SplitPaneBorder__ +#define __javax_swing_plaf_basic_BasicBorders$SplitPaneBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$SplitPaneBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$SplitPaneBorder : public ::java::lang::Object +{ + +public: + BasicBorders$SplitPaneBorder(::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + void paintRect(::java::awt::Graphics *, jint, jboolean, jint, jint, ::java::awt::Rectangle *); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual jboolean isBorderOpaque(); +private: + static const jint SUPPRESS_TOP = 1; + static const jint SUPPRESS_LEFT = 2; + static const jint SUPPRESS_BOTTOM = 4; + static const jint SUPPRESS_RIGHT = 8; +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::java::lang::Object)))) highlight; + ::java::awt::Color * shadow; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$SplitPaneBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder.h new file mode 100644 index 00000000000..90a89464be5 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$SplitPaneDividerBorder__ +#define __javax_swing_plaf_basic_BasicBorders$SplitPaneDividerBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + class JSplitPane; + namespace plaf + { + namespace basic + { + class BasicBorders$SplitPaneDividerBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$SplitPaneDividerBorder : public ::java::lang::Object +{ + +public: + BasicBorders$SplitPaneDividerBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual jboolean isBorderOpaque(); +private: + ::javax::swing::JSplitPane * getSplitPane(::java::awt::Component *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$SplitPaneDividerBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder.h b/libjava/javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder.h new file mode 100644 index 00000000000..73d1f1c4e67 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders$ToggleButtonBorder.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders$ToggleButtonBorder__ +#define __javax_swing_plaf_basic_BasicBorders$ToggleButtonBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicBorders$ToggleButtonBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders$ToggleButtonBorder : public ::javax::swing::plaf::basic::BasicBorders$ButtonBorder +{ + +public: + BasicBorders$ToggleButtonBorder(::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually package-private + static const jlong serialVersionUID = -3528666548001058394LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders$ToggleButtonBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicBorders.h b/libjava/javax/swing/plaf/basic/BasicBorders.h new file mode 100644 index 00000000000..e32e2b266c3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicBorders.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicBorders__ +#define __javax_swing_plaf_basic_BasicBorders__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace plaf + { + namespace basic + { + class BasicBorders; + class BasicBorders$MarginBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicBorders : public ::java::lang::Object +{ + +public: + BasicBorders(); + static ::javax::swing::border::Border * getButtonBorder(); + static ::javax::swing::border::Border * getRadioButtonBorder(); + static ::javax::swing::border::Border * getToggleButtonBorder(); + static ::javax::swing::border::Border * getMenuBarBorder(); + static ::javax::swing::border::Border * getSplitPaneBorder(); + static ::javax::swing::border::Border * getSplitPaneDividerBorder(); + static ::javax::swing::border::Border * getTextFieldBorder(); + static ::javax::swing::border::Border * getProgressBarBorder(); + static ::javax::swing::border::Border * getInternalFrameBorder(); +public: // actually package-private + static ::javax::swing::border::Border * getMarginBorder(); +private: + static ::javax::swing::plaf::basic::BasicBorders$MarginBorder * sharedMarginBorder; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicBorders__ diff --git a/libjava/javax/swing/plaf/basic/BasicButtonListener$1.h b/libjava/javax/swing/plaf/basic/BasicButtonListener$1.h new file mode 100644 index 00000000000..ae787f71f62 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicButtonListener$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicButtonListener$1__ +#define __javax_swing_plaf_basic_BasicButtonListener$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicButtonListener; + class BasicButtonListener$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicButtonListener$1 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicButtonListener$1(::javax::swing::plaf::basic::BasicButtonListener *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicButtonListener * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicButtonListener$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicButtonListener$2.h b/libjava/javax/swing/plaf/basic/BasicButtonListener$2.h new file mode 100644 index 00000000000..9605bfcccdc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicButtonListener$2.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicButtonListener$2__ +#define __javax_swing_plaf_basic_BasicButtonListener$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicButtonListener; + class BasicButtonListener$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicButtonListener$2 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicButtonListener$2(::javax::swing::plaf::basic::BasicButtonListener *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicButtonListener * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicButtonListener$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicButtonListener$ButtonAction.h b/libjava/javax/swing/plaf/basic/BasicButtonListener$ButtonAction.h new file mode 100644 index 00000000000..6e08aa431f0 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicButtonListener$ButtonAction.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicButtonListener$ButtonAction__ +#define __javax_swing_plaf_basic_BasicButtonListener$ButtonAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicButtonListener; + class BasicButtonListener$ButtonAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicButtonListener$ButtonAction : public ::javax::swing::AbstractAction +{ + + BasicButtonListener$ButtonAction(::javax::swing::plaf::basic::BasicButtonListener *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(::java::lang::Object *); +public: // actually package-private + BasicButtonListener$ButtonAction(::javax::swing::plaf::basic::BasicButtonListener *, ::javax::swing::plaf::basic::BasicButtonListener$ButtonAction *); + static ::java::lang::String * PRESSED; + static ::java::lang::String * RELEASED; + ::javax::swing::plaf::basic::BasicButtonListener * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicButtonListener$ButtonAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicButtonListener.h b/libjava/javax/swing/plaf/basic/BasicButtonListener.h new file mode 100644 index 00000000000..8b7cd51d2eb --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicButtonListener.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicButtonListener__ +#define __javax_swing_plaf_basic_BasicButtonListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + class MouseEvent; + } + } + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class ActionMap; + class JComponent; + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicButtonListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicButtonListener : public ::java::lang::Object +{ + +public: + BasicButtonListener(::javax::swing::AbstractButton *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually protected + virtual void checkOpacity(::javax::swing::AbstractButton *); +public: + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); + virtual void installKeyboardActions(::javax::swing::JComponent *); +private: + ::javax::swing::ActionMap * createDefaultActionMap(); +public: + virtual void uninstallKeyboardActions(::javax::swing::JComponent *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + 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 // __javax_swing_plaf_basic_BasicButtonListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicButtonUI.h b/libjava/javax/swing/plaf/basic/BasicButtonUI.h new file mode 100644 index 00000000000..c7209c0a312 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicButtonUI.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicButtonUI__ +#define __javax_swing_plaf_basic_BasicButtonUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Insets; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class Icon; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicButtonListener; + class BasicButtonUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicButtonUI : public ::javax::swing::plaf::ButtonUI +{ + +public: + BasicButtonUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual jint getDefaultTextIconGap(::javax::swing::AbstractButton *); +public: // actually protected + virtual void clearTextShiftOffset(); + virtual jint getTextShiftOffset(); + virtual void setTextShiftOffset(); + virtual ::java::lang::String * getPropertyPrefix(); + virtual void installDefaults(::javax::swing::AbstractButton *); + virtual void uninstallDefaults(::javax::swing::AbstractButton *); + virtual ::javax::swing::plaf::basic::BasicButtonListener * createButtonListener(::javax::swing::AbstractButton *); + virtual void installListeners(::javax::swing::AbstractButton *); + virtual void uninstallListeners(::javax::swing::AbstractButton *); + virtual void installKeyboardActions(::javax::swing::AbstractButton *); + virtual void uninstallKeyboardActions(::javax::swing::AbstractButton *); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually package-private + static ::javax::swing::Icon * currentIcon(::javax::swing::AbstractButton *); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintFocus(::java::awt::Graphics *, ::javax::swing::AbstractButton *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *); + virtual void paintIcon(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *); + virtual void paintButtonPressed(::java::awt::Graphics *, ::javax::swing::AbstractButton *); + virtual void paintText(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *, ::java::lang::String *); + virtual void paintText(::java::awt::Graphics *, ::javax::swing::AbstractButton *, ::java::awt::Rectangle *, ::java::lang::String *); +private: + ::javax::swing::plaf::basic::BasicButtonListener * getButtonListener(::javax::swing::AbstractButton *); +public: // actually package-private + static ::java::awt::Rectangle * viewR; + static ::java::awt::Rectangle * iconR; + static ::java::awt::Rectangle * textR; + static ::java::awt::Insets * cachedInsets; +private: + static ::javax::swing::plaf::basic::BasicButtonUI * sharedUI; + static ::javax::swing::plaf::basic::BasicButtonListener * sharedListener; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::plaf::ButtonUI)))) defaultTextIconGap; + jint defaultTextShiftOffset; +private: + jint textShiftOffset; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicButtonUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.h b/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.h new file mode 100644 index 00000000000..68f69f589a7 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicCheckBoxMenuItemUI__ +#define __javax_swing_plaf_basic_BasicCheckBoxMenuItemUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JMenuItem; + class MenuElement; + class MenuSelectionManager; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicCheckBoxMenuItemUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicCheckBoxMenuItemUI : public ::javax::swing::plaf::basic::BasicMenuItemUI +{ + +public: + BasicCheckBoxMenuItemUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + virtual void processMouseEvent(::javax::swing::JMenuItem *, ::java::awt::event::MouseEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicCheckBoxMenuItemUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.h b/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.h new file mode 100644 index 00000000000..ca6b44b3c9f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicCheckBoxUI__ +#define __javax_swing_plaf_basic_BasicCheckBoxUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicCheckBoxUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicCheckBoxUI : public ::javax::swing::plaf::basic::BasicRadioButtonUI +{ + +public: + BasicCheckBoxUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::lang::String * getPropertyPrefix(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicCheckBoxUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicColorChooserUI$1.h b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$1.h new file mode 100644 index 00000000000..b5b58f51b5c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$1.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicColorChooserUI$1__ +#define __javax_swing_plaf_basic_BasicColorChooserUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicColorChooserUI; + class BasicColorChooserUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicColorChooserUI$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicColorChooserUI$1(::javax::swing::plaf::basic::BasicColorChooserUI *); +public: + void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicColorChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicColorChooserUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicColorChooserUI$PreviewListener.h b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$PreviewListener.h new file mode 100644 index 00000000000..a7c3a279a08 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$PreviewListener.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicColorChooserUI$PreviewListener__ +#define __javax_swing_plaf_basic_BasicColorChooserUI$PreviewListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicColorChooserUI; + class BasicColorChooserUI$PreviewListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicColorChooserUI$PreviewListener : public ::java::lang::Object +{ + + BasicColorChooserUI$PreviewListener(::javax::swing::plaf::basic::BasicColorChooserUI *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + BasicColorChooserUI$PreviewListener(::javax::swing::plaf::basic::BasicColorChooserUI *, ::javax::swing::plaf::basic::BasicColorChooserUI$PreviewListener *); + ::javax::swing::plaf::basic::BasicColorChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicColorChooserUI$PreviewListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.h b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.h new file mode 100644 index 00000000000..ed5743feb8d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$PropertyHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicColorChooserUI$PropertyHandler__ +#define __javax_swing_plaf_basic_BasicColorChooserUI$PropertyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicColorChooserUI; + class BasicColorChooserUI$PropertyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicColorChooserUI$PropertyHandler : public ::java::lang::Object +{ + +public: + BasicColorChooserUI$PropertyHandler(::javax::swing::plaf::basic::BasicColorChooserUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicColorChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicColorChooserUI$PropertyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicColorChooserUI$TabPaneListener.h b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$TabPaneListener.h new file mode 100644 index 00000000000..3ca157fe9d9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicColorChooserUI$TabPaneListener.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicColorChooserUI$TabPaneListener__ +#define __javax_swing_plaf_basic_BasicColorChooserUI$TabPaneListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicColorChooserUI; + class BasicColorChooserUI$TabPaneListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicColorChooserUI$TabPaneListener : public ::java::lang::Object +{ + + BasicColorChooserUI$TabPaneListener(::javax::swing::plaf::basic::BasicColorChooserUI *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + BasicColorChooserUI$TabPaneListener(::javax::swing::plaf::basic::BasicColorChooserUI *, ::javax::swing::plaf::basic::BasicColorChooserUI$TabPaneListener *); + ::javax::swing::plaf::basic::BasicColorChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicColorChooserUI$TabPaneListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicColorChooserUI.h b/libjava/javax/swing/plaf/basic/BasicColorChooserUI.h new file mode 100644 index 00000000000..83a41b05d81 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicColorChooserUI.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicColorChooserUI__ +#define __javax_swing_plaf_basic_BasicColorChooserUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JColorChooser; + class JComponent; + class JTabbedPane; + namespace colorchooser + { + class AbstractColorChooserPanel; + } + namespace event + { + class ChangeListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicColorChooserUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicColorChooserUI : public ::javax::swing::plaf::ColorChooserUI +{ + +public: + BasicColorChooserUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual JArray< ::javax::swing::colorchooser::AbstractColorChooserPanel * > * createDefaultChoosers(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually package-private + virtual void makeTabs(JArray< ::javax::swing::colorchooser::AbstractColorChooserPanel * > *); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaultChoosers(); + virtual void installPreviewPanel(); +public: // actually package-private + virtual void updatePreviewPanel(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual void installListeners(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual void uninstallListeners(); + JArray< ::javax::swing::colorchooser::AbstractColorChooserPanel * > * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ColorChooserUI)))) defaultChoosers; + ::javax::swing::event::ChangeListener * previewListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::javax::swing::JColorChooser * chooser; +public: // actually package-private + ::javax::swing::JTabbedPane * pane; +private: + ::java::awt::Container * prevContainer; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicColorChooserUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxEditor$UIResource.h b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor$UIResource.h new file mode 100644 index 00000000000..36a4682b0ac --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor$UIResource.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxEditor$UIResource__ +#define __javax_swing_plaf_basic_BasicComboBoxEditor$UIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboBoxEditor$UIResource; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxEditor$UIResource : public ::javax::swing::plaf::basic::BasicComboBoxEditor +{ + +public: + BasicComboBoxEditor$UIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxEditor$UIResource__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.h b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.h new file mode 100644 index 00000000000..5bde099f2ba --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxEditor__ +#define __javax_swing_plaf_basic_BasicComboBoxEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + namespace event + { + class ActionListener; + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + class JTextField; + namespace plaf + { + namespace basic + { + class BasicComboBoxEditor; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxEditor : public ::java::lang::Object +{ + +public: + BasicComboBoxEditor(); + virtual ::java::awt::Component * getEditorComponent(); + virtual void setItem(::java::lang::Object *); + virtual ::java::lang::Object * getItem(); + virtual void selectAll(); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); + virtual void addActionListener(::java::awt::event::ActionListener *); + virtual void removeActionListener(::java::awt::event::ActionListener *); +public: // actually protected + ::javax::swing::JTextField * __attribute__((aligned(__alignof__( ::java::lang::Object)))) editor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxEditor__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource.h b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource.h new file mode 100644 index 00000000000..76eaa5c09f7 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxRenderer$UIResource__ +#define __javax_swing_plaf_basic_BasicComboBoxRenderer$UIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboBoxRenderer$UIResource; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxRenderer$UIResource : public ::javax::swing::plaf::basic::BasicComboBoxRenderer +{ + +public: + BasicComboBoxRenderer$UIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxRenderer$UIResource__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.h b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.h new file mode 100644 index 00000000000..746cf3ce132 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxRenderer__ +#define __javax_swing_plaf_basic_BasicComboBoxRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + } + } + namespace javax + { + namespace swing + { + class JList; + namespace border + { + class Border; + } + namespace plaf + { + namespace basic + { + class BasicComboBoxRenderer; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxRenderer : public ::javax::swing::JLabel +{ + +public: + BasicComboBoxRenderer(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Component * getListCellRendererComponent(::javax::swing::JList *, ::java::lang::Object *, jint, jboolean, jboolean); +public: // actually protected + static ::javax::swing::border::Border * noFocusBorder; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxRenderer__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager.h b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager.h new file mode 100644 index 00000000000..e907fe231e4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxUI$ComboBoxLayoutManager__ +#define __javax_swing_plaf_basic_BasicComboBoxUI$ComboBoxLayoutManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboBoxUI; + class BasicComboBoxUI$ComboBoxLayoutManager; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxUI$ComboBoxLayoutManager : public ::java::lang::Object +{ + +public: + BasicComboBoxUI$ComboBoxLayoutManager(::javax::swing::plaf::basic::BasicComboBoxUI *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual void layoutContainer(::java::awt::Container *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboBoxUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxUI$ComboBoxLayoutManager__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler.h new file mode 100644 index 00000000000..e5f84c171c8 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$FocusHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicComboBoxUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboBoxUI; + class BasicComboBoxUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxUI$FocusHandler : public ::java::lang::Object +{ + +public: + BasicComboBoxUI$FocusHandler(::javax::swing::plaf::basic::BasicComboBoxUI *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboBoxUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler.h b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler.h new file mode 100644 index 00000000000..e07a4649409 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ItemHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxUI$ItemHandler__ +#define __javax_swing_plaf_basic_BasicComboBoxUI$ItemHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ItemEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboBoxUI; + class BasicComboBoxUI$ItemHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxUI$ItemHandler : public ::java::lang::Object +{ + +public: + BasicComboBoxUI$ItemHandler(::javax::swing::plaf::basic::BasicComboBoxUI *); + virtual void itemStateChanged(::java::awt::event::ItemEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboBoxUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxUI$ItemHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler.h b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler.h new file mode 100644 index 00000000000..b2657b802cb --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$KeyHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxUI$KeyHandler__ +#define __javax_swing_plaf_basic_BasicComboBoxUI$KeyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboBoxUI; + class BasicComboBoxUI$KeyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxUI$KeyHandler : public ::java::awt::event::KeyAdapter +{ + +public: + BasicComboBoxUI$KeyHandler(::javax::swing::plaf::basic::BasicComboBoxUI *); + virtual void keyPressed(::java::awt::event::KeyEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboBoxUI * __attribute__((aligned(__alignof__( ::java::awt::event::KeyAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxUI$KeyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler.h b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler.h new file mode 100644 index 00000000000..8647c7fd412 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$ListDataHandler.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxUI$ListDataHandler__ +#define __javax_swing_plaf_basic_BasicComboBoxUI$ListDataHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListDataEvent; + } + namespace plaf + { + namespace basic + { + class BasicComboBoxUI; + class BasicComboBoxUI$ListDataHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxUI$ListDataHandler : public ::java::lang::Object +{ + +public: + BasicComboBoxUI$ListDataHandler(::javax::swing::plaf::basic::BasicComboBoxUI *); + virtual void contentsChanged(::javax::swing::event::ListDataEvent *); + virtual void intervalAdded(::javax::swing::event::ListDataEvent *); + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboBoxUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxUI$ListDataHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..987d5406e2b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicComboBoxUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboBoxUI; + class BasicComboBoxUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicComboBoxUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicComboBoxUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboBoxUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI.h b/libjava/javax/swing/plaf/basic/BasicComboBoxUI.h new file mode 100644 index 00000000000..77f1f53d41c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI.h @@ -0,0 +1,154 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboBoxUI__ +#define __javax_swing_plaf_basic_BasicComboBoxUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Graphics; + class Insets; + class LayoutManager; + class Rectangle; + namespace event + { + class FocusListener; + class ItemListener; + class KeyListener; + class MouseListener; + class MouseMotionListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class CellRendererPane; + class ComboBoxEditor; + class JButton; + class JComboBox; + class JComponent; + class JList; + class ListCellRenderer; + namespace event + { + class ListDataListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicComboBoxUI; + class ComboPopup; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboBoxUI : public ::javax::swing::plaf::ComboBoxUI +{ + +public: + BasicComboBoxUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); + virtual void installListeners(); + virtual void uninstallDefaults(); + virtual void uninstallListeners(); + virtual ::javax::swing::plaf::basic::ComboPopup * createPopup(); + virtual ::java::awt::event::KeyListener * createKeyListener(); + virtual ::java::awt::event::FocusListener * createFocusListener(); + virtual ::javax::swing::event::ListDataListener * createListDataListener(); + virtual ::java::awt::event::ItemListener * createItemListener(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::java::awt::LayoutManager * createLayoutManager(); + virtual ::javax::swing::ListCellRenderer * createRenderer(); + virtual ::javax::swing::ComboBoxEditor * createEditor(); + virtual void installComponents(); + virtual void uninstallComponents(); +public: + virtual void addEditor(); + virtual void removeEditor(); +public: // actually protected + virtual void configureEditor(); + virtual void unconfigureEditor(); +public: + virtual void configureArrowButton(); + virtual void unconfigureArrowButton(); +public: // actually protected + virtual ::javax::swing::JButton * createArrowButton(); +public: + virtual jboolean isPopupVisible(::javax::swing::JComboBox *); + virtual void setPopupVisible(::javax::swing::JComboBox *, jboolean); + virtual jboolean isFocusTraversable(::javax::swing::JComboBox *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + virtual jboolean isNavigationKey(jint); + virtual void selectNextPossibleValue(); + virtual void selectPreviousPossibleValue(); + virtual void toggleOpenClose(); + virtual ::java::awt::Rectangle * rectangleForCurrentValue(); + virtual ::java::awt::Insets * getInsets(); +public: + virtual void paintCurrentValue(::java::awt::Graphics *, ::java::awt::Rectangle *, jboolean); + virtual void paintCurrentValueBackground(::java::awt::Graphics *, ::java::awt::Rectangle *, jboolean); +public: // actually protected + virtual ::java::awt::Dimension * getDefaultSize(); + virtual ::java::awt::Dimension * getDisplaySize(); + virtual void installKeyboardActions(); + virtual void uninstallKeyboardActions(); + ::javax::swing::JButton * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ComboBoxUI)))) arrowButton; + ::javax::swing::JComboBox * comboBox; + ::java::awt::Component * editor; + ::java::awt::event::FocusListener * focusListener; + jboolean hasFocus; + ::java::awt::event::ItemListener * itemListener; + ::java::awt::event::KeyListener * keyListener; + ::javax::swing::JList * listBox; + ::javax::swing::event::ListDataListener * listDataListener; + ::javax::swing::plaf::basic::ComboPopup * popup; + ::java::awt::event::KeyListener * popupKeyListener; + ::java::awt::event::MouseListener * popupMouseListener; + ::java::awt::event::MouseMotionListener * popupMouseMotionListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; +public: // actually package-private + ::java::awt::Dimension * displaySize; +public: // actually protected + ::javax::swing::CellRendererPane * currentValuePane; + ::java::awt::Dimension * cachedMinimumSize; + jboolean isMinimumSizeDirty; +private: + static ::javax::swing::ListCellRenderer * DEFAULT_RENDERER; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboBoxUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler.h new file mode 100644 index 00000000000..ecf7e1b8ef1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationKeyHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$InvocationKeyHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$InvocationKeyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$InvocationKeyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$InvocationKeyHandler : public ::java::awt::event::KeyAdapter +{ + +public: + BasicComboPopup$InvocationKeyHandler(::javax::swing::plaf::basic::BasicComboPopup *); + virtual void keyReleased(::java::awt::event::KeyEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::awt::event::KeyAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$InvocationKeyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler.h new file mode 100644 index 00000000000..b04fb475d3a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseHandler.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$InvocationMouseHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$InvocationMouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$InvocationMouseHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$InvocationMouseHandler : public ::java::awt::event::MouseAdapter +{ + +public: // actually protected + BasicComboPopup$InvocationMouseHandler(::javax::swing::plaf::basic::BasicComboPopup *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$InvocationMouseHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler.h new file mode 100644 index 00000000000..b8c7bae477e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$InvocationMouseMotionHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$InvocationMouseMotionHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$InvocationMouseMotionHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$InvocationMouseMotionHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$InvocationMouseMotionHandler : public ::java::awt::event::MouseMotionAdapter +{ + +public: // actually protected + BasicComboPopup$InvocationMouseMotionHandler(::javax::swing::plaf::basic::BasicComboPopup *); +public: + virtual void mouseDragged(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::awt::event::MouseMotionAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$InvocationMouseMotionHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$ItemHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$ItemHandler.h new file mode 100644 index 00000000000..017c66bce0c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$ItemHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$ItemHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$ItemHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ItemEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$ItemHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$ItemHandler : public ::java::lang::Object +{ + +public: // actually protected + BasicComboPopup$ItemHandler(::javax::swing::plaf::basic::BasicComboPopup *); +public: + virtual void itemStateChanged(::java::awt::event::ItemEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$ItemHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$ListDataHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListDataHandler.h new file mode 100644 index 00000000000..d7924a453bc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListDataHandler.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$ListDataHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$ListDataHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListDataEvent; + } + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$ListDataHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$ListDataHandler : public ::java::lang::Object +{ + +public: + BasicComboPopup$ListDataHandler(::javax::swing::plaf::basic::BasicComboPopup *); + virtual void contentsChanged(::javax::swing::event::ListDataEvent *); + virtual void intervalAdded(::javax::swing::event::ListDataEvent *); + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$ListDataHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler.h new file mode 100644 index 00000000000..84b748854d3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseHandler.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$ListMouseHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$ListMouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$ListMouseHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$ListMouseHandler : public ::java::awt::event::MouseAdapter +{ + +public: // actually protected + BasicComboPopup$ListMouseHandler(::javax::swing::plaf::basic::BasicComboPopup *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$ListMouseHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler.h new file mode 100644 index 00000000000..d772569baf4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListMouseMotionHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$ListMouseMotionHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$ListMouseMotionHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$ListMouseMotionHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$ListMouseMotionHandler : public ::java::awt::event::MouseMotionAdapter +{ + +public: // actually protected + BasicComboPopup$ListMouseMotionHandler(::javax::swing::plaf::basic::BasicComboPopup *); +public: + virtual void mouseMoved(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::awt::event::MouseMotionAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$ListMouseMotionHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler.h new file mode 100644 index 00000000000..dd3caad107f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$ListSelectionHandler.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$ListSelectionHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$ListSelectionHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListSelectionEvent; + } + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$ListSelectionHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$ListSelectionHandler : public ::java::lang::Object +{ + +public: // actually protected + BasicComboPopup$ListSelectionHandler(::javax::swing::plaf::basic::BasicComboPopup *); +public: + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$ListSelectionHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler.h new file mode 100644 index 00000000000..5bff9aa4c19 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup$PropertyChangeHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicComboPopup$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicComboPopup; + class BasicComboPopup$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup$PropertyChangeHandler : public ::java::lang::Object +{ + +public: // actually protected + BasicComboPopup$PropertyChangeHandler(::javax::swing::plaf::basic::BasicComboPopup *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicComboPopup * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup.h b/libjava/javax/swing/plaf/basic/BasicComboPopup.h new file mode 100644 index 00000000000..4c878caa61c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicComboPopup.h @@ -0,0 +1,135 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicComboPopup__ +#define __javax_swing_plaf_basic_BasicComboPopup__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + namespace event + { + class ItemListener; + class KeyListener; + class MouseEvent; + class MouseListener; + class MouseMotionListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ComboBoxModel; + class JComboBox; + class JList; + class JScrollPane; + class Timer; + namespace event + { + class ListDataListener; + class ListSelectionListener; + } + namespace plaf + { + namespace basic + { + class BasicComboPopup; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicComboPopup : public ::javax::swing::JPopupMenu +{ + +public: + BasicComboPopup(::javax::swing::JComboBox *); + virtual void show(); + virtual void hide(); + virtual ::javax::swing::JList * getList(); + virtual ::java::awt::event::MouseListener * getMouseListener(); + virtual ::java::awt::event::MouseMotionListener * getMouseMotionListener(); + virtual ::java::awt::event::KeyListener * getKeyListener(); + virtual void uninstallingUI(); +public: // actually protected + virtual void uninstallComboBoxModelListeners(::javax::swing::ComboBoxModel *); + virtual void uninstallKeyboardActions(); + virtual void firePopupMenuWillBecomeVisible(); + virtual void firePopupMenuWillBecomeInvisible(); + virtual void firePopupMenuCanceled(); + virtual ::java::awt::event::MouseListener * createMouseListener(); + virtual ::java::awt::event::MouseMotionListener * createMouseMotionListener(); + virtual ::java::awt::event::KeyListener * createKeyListener(); + virtual ::javax::swing::event::ListSelectionListener * createListSelectionListener(); + virtual ::javax::swing::event::ListDataListener * createListDataListener(); + virtual ::java::awt::event::MouseListener * createListMouseListener(); + virtual ::java::awt::event::MouseMotionListener * createListMouseMotionListener(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::java::awt::event::ItemListener * createItemListener(); + virtual ::javax::swing::JList * createList(); + virtual void configureList(); + virtual void installListListeners(); + virtual ::javax::swing::JScrollPane * createScroller(); + virtual void configureScroller(); + virtual void configurePopup(); + virtual void installComboBoxListeners(); + virtual void installComboBoxModelListeners(::javax::swing::ComboBoxModel *); + virtual void installKeyboardActions(); +public: + virtual jboolean isFocusTraversable(); +public: // actually protected + virtual void startAutoScrolling(jint); + virtual void stopAutoScrolling(); + virtual void autoScrollUp(); + virtual void autoScrollDown(); + virtual void delegateFocus(::java::awt::event::MouseEvent *); + virtual void togglePopup(); + virtual ::java::awt::event::MouseEvent * convertMouseEvent(::java::awt::event::MouseEvent *); + virtual jint getPopupHeightForRowCount(jint); + virtual ::java::awt::Rectangle * computePopupBounds(jint, jint, jint, jint); + virtual void updateListBoxSelectionForEvent(::java::awt::event::MouseEvent *, jboolean); +private: + void uninstallListeners(); + void uninstallListListeners(); + void uninstallComboBoxListeners(); +public: // actually package-private + virtual void syncListSelection(); +public: // actually protected + ::javax::swing::Timer * __attribute__((aligned(__alignof__( ::javax::swing::JPopupMenu)))) autoscrollTimer; + ::javax::swing::JComboBox * comboBox; + jboolean hasEntered; + jboolean isAutoScrolling; + ::java::awt::event::ItemListener * itemListener; + ::java::awt::event::KeyListener * keyListener; + ::javax::swing::JList * list; + ::javax::swing::event::ListDataListener * listDataListener; + ::java::awt::event::MouseListener * listMouseListener; + ::java::awt::event::MouseMotionListener * listMouseMotionListener; + ::javax::swing::event::ListSelectionListener * listSelectionListener; + ::java::awt::event::MouseListener * mouseListener; + ::java::awt::event::MouseMotionListener * mouseMotionListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; + static const jint SCROLL_DOWN = 1; + static const jint SCROLL_UP = 0; + jint scrollDirection; + ::javax::swing::JScrollPane * scroller; + jboolean valueIsAdjusting; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicComboPopup__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$1.h b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$1.h new file mode 100644 index 00000000000..1f42bbcd33b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$1.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopIconUI$1__ +#define __javax_swing_plaf_basic_BasicDesktopIconUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopIconUI; + class BasicDesktopIconUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopIconUI$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicDesktopIconUI$1(::javax::swing::plaf::basic::BasicDesktopIconUI *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopIconUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopIconUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$2.h b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$2.h new file mode 100644 index 00000000000..97ffeb9dee3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$2.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopIconUI$2__ +#define __javax_swing_plaf_basic_BasicDesktopIconUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopIconUI; + class BasicDesktopIconUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopIconUI$2 : public ::java::lang::Object +{ + +public: // actually package-private + BasicDesktopIconUI$2(::javax::swing::plaf::basic::BasicDesktopIconUI *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopIconUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopIconUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$BoundButton.h b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$BoundButton.h new file mode 100644 index 00000000000..7a67871449f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$BoundButton.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopIconUI$BoundButton__ +#define __javax_swing_plaf_basic_BasicDesktopIconUI$BoundButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopIconUI; + class BasicDesktopIconUI$BoundButton; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopIconUI$BoundButton : public ::javax::swing::JButton +{ + +public: + BasicDesktopIconUI$BoundButton(::javax::swing::plaf::basic::BasicDesktopIconUI *, ::java::lang::String *); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getMaximumSize(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopIconUI * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopIconUI$BoundButton__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$DesktopIconBorder.h b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$DesktopIconBorder.h new file mode 100644 index 00000000000..cfce73806cf --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$DesktopIconBorder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopIconUI$DesktopIconBorder__ +#define __javax_swing_plaf_basic_BasicDesktopIconUI$DesktopIconBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopIconUI; + class BasicDesktopIconUI$DesktopIconBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopIconUI$DesktopIconBorder : public ::java::lang::Object +{ + + BasicDesktopIconUI$DesktopIconBorder(::javax::swing::plaf::basic::BasicDesktopIconUI *); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual jboolean isBorderOpaque(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +public: // actually package-private + BasicDesktopIconUI$DesktopIconBorder(::javax::swing::plaf::basic::BasicDesktopIconUI *, ::javax::swing::plaf::basic::BasicDesktopIconUI$DesktopIconBorder *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) left; + jint top; + jint right; + jint bottom; + ::javax::swing::plaf::basic::BasicDesktopIconUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopIconUI$DesktopIconBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$InternalFrameDefaultMenuIcon.h b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$InternalFrameDefaultMenuIcon.h new file mode 100644 index 00000000000..4a53e9a62c8 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$InternalFrameDefaultMenuIcon.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopIconUI$InternalFrameDefaultMenuIcon__ +#define __javax_swing_plaf_basic_BasicDesktopIconUI$InternalFrameDefaultMenuIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopIconUI$InternalFrameDefaultMenuIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopIconUI$InternalFrameDefaultMenuIcon : public ::java::lang::Object +{ + +public: // actually package-private + BasicDesktopIconUI$InternalFrameDefaultMenuIcon(); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopIconUI$InternalFrameDefaultMenuIcon__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler.h new file mode 100644 index 00000000000..0829e1ff9b4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI$MouseInputHandler.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopIconUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicDesktopIconUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JDesktopPane; + namespace plaf + { + namespace basic + { + class BasicDesktopIconUI; + class BasicDesktopIconUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopIconUI$MouseInputHandler : public ::javax::swing::event::MouseInputAdapter +{ + +public: + BasicDesktopIconUI$MouseInputHandler(::javax::swing::plaf::basic::BasicDesktopIconUI *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); + virtual void moveAndRepaint(::javax::swing::JComponent *, jint, jint, jint, jint); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::event::MouseInputAdapter)))) xOffset; + jint yOffset; + ::javax::swing::JDesktopPane * pane; +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopIconUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopIconUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopIconUI.h b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI.h new file mode 100644 index 00000000000..bafff1a0692 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopIconUI.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopIconUI__ +#define __javax_swing_plaf_basic_BasicDesktopIconUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Insets; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JComponent; + class JInternalFrame; + class JInternalFrame$JDesktopIcon; + namespace event + { + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicDesktopIconUI; + class BasicDesktopIconUI$BoundButton; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopIconUI : public ::javax::swing::plaf::DesktopIconUI +{ + +public: + BasicDesktopIconUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installComponents(); + virtual void uninstallComponents(); + virtual void installListeners(); + virtual void uninstallListeners(); + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual ::javax::swing::event::MouseInputListener * createMouseInputListener(); +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Insets * getInsets(::javax::swing::JComponent *); + virtual void deiconize(); +private: + static const jint iconSize = 16; + static const jint iconWidth = 160; + static const jint iconHeight = 35; +public: // actually protected + ::javax::swing::JInternalFrame$JDesktopIcon * __attribute__((aligned(__alignof__( ::javax::swing::plaf::DesktopIconUI)))) desktopIcon; + ::javax::swing::JInternalFrame * frame; +private: + ::javax::swing::event::MouseInputListener * mouseHandler; +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopIconUI$BoundButton * button; +private: + ::java::beans::PropertyChangeListener * propertyHandler; +public: // actually package-private + static ::javax::swing::Icon * defaultIcon; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopIconUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction.h b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction.h new file mode 100644 index 00000000000..da7e843ab7c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$CloseAction.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopPaneUI$CloseAction__ +#define __javax_swing_plaf_basic_BasicDesktopPaneUI$CloseAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopPaneUI; + class BasicDesktopPaneUI$CloseAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopPaneUI$CloseAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicDesktopPaneUI$CloseAction(::javax::swing::plaf::basic::BasicDesktopPaneUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopPaneUI$CloseAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction.h b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction.h new file mode 100644 index 00000000000..2733cec79fa --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MaximizeAction.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopPaneUI$MaximizeAction__ +#define __javax_swing_plaf_basic_BasicDesktopPaneUI$MaximizeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopPaneUI; + class BasicDesktopPaneUI$MaximizeAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopPaneUI$MaximizeAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicDesktopPaneUI$MaximizeAction(::javax::swing::plaf::basic::BasicDesktopPaneUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopPaneUI$MaximizeAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction.h b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction.h new file mode 100644 index 00000000000..c834c71de9c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$MinimizeAction.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopPaneUI$MinimizeAction__ +#define __javax_swing_plaf_basic_BasicDesktopPaneUI$MinimizeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopPaneUI; + class BasicDesktopPaneUI$MinimizeAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopPaneUI$MinimizeAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicDesktopPaneUI$MinimizeAction(::javax::swing::plaf::basic::BasicDesktopPaneUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopPaneUI$MinimizeAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction.h b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction.h new file mode 100644 index 00000000000..b327f1cb3d4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$NavigateAction.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopPaneUI$NavigateAction__ +#define __javax_swing_plaf_basic_BasicDesktopPaneUI$NavigateAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopPaneUI; + class BasicDesktopPaneUI$NavigateAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopPaneUI$NavigateAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicDesktopPaneUI$NavigateAction(::javax::swing::plaf::basic::BasicDesktopPaneUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopPaneUI$NavigateAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction.h b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction.h new file mode 100644 index 00000000000..0fc733b6f15 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI$OpenAction.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopPaneUI$OpenAction__ +#define __javax_swing_plaf_basic_BasicDesktopPaneUI$OpenAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDesktopPaneUI; + class BasicDesktopPaneUI$OpenAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopPaneUI$OpenAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicDesktopPaneUI$OpenAction(::javax::swing::plaf::basic::BasicDesktopPaneUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDesktopPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopPaneUI$OpenAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI.h b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI.h new file mode 100644 index 00000000000..c67ca088d26 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDesktopPaneUI.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDesktopPaneUI__ +#define __javax_swing_plaf_basic_BasicDesktopPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + } + namespace javax + { + namespace swing + { + class DesktopManager; + class JComponent; + class JDesktopPane; + class KeyStroke; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicDesktopPaneUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDesktopPaneUI : public ::javax::swing::plaf::DesktopPaneUI +{ + +public: + BasicDesktopPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); + virtual void installDesktopManager(); + virtual void installKeyboardActions(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void registerKeyboardActions(); + virtual void uninstallDefaults(); + virtual void uninstallDesktopManager(); + virtual void uninstallKeyboardActions(); + virtual void unregisterKeyboardActions(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + ::javax::swing::KeyStroke * __attribute__((aligned(__alignof__( ::javax::swing::plaf::DesktopPaneUI)))) closeKey; + ::javax::swing::KeyStroke * maximizeKey; + ::javax::swing::KeyStroke * minimizeKey; + ::javax::swing::KeyStroke * navigateKey; + ::javax::swing::KeyStroke * navigateKey2; + ::javax::swing::DesktopManager * desktopManager; + ::javax::swing::JDesktopPane * desktop; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDesktopPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicDirectoryModel$1.h b/libjava/javax/swing/plaf/basic/BasicDirectoryModel$1.h new file mode 100644 index 00000000000..4d14a6f25a2 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDirectoryModel$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDirectoryModel$1__ +#define __javax_swing_plaf_basic_BasicDirectoryModel$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDirectoryModel; + class BasicDirectoryModel$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDirectoryModel$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicDirectoryModel$1(::javax::swing::plaf::basic::BasicDirectoryModel *); +public: + jint compare(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicDirectoryModel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDirectoryModel$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.h b/libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.h new file mode 100644 index 00000000000..a5d2a719d3c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest__ +#define __javax_swing_plaf_basic_BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDirectoryModel$DirectoryLoadThread; + class BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest : public ::java::lang::Object +{ + +public: // actually package-private + BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest(::javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread *, ::java::util::List *, jint, ::java::util::List *, jint); +public: + virtual void run(); +public: // actually package-private + virtual void cancel(); +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) added; + jint addIndex; + ::java::util::List * removed; + jint removeIndex; + jboolean cancel__; +public: // actually package-private + ::javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest__ diff --git a/libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.h b/libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.h new file mode 100644 index 00000000000..d20f830c24a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDirectoryModel$DirectoryLoadThread__ +#define __javax_swing_plaf_basic_BasicDirectoryModel$DirectoryLoadThread__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicDirectoryModel; + class BasicDirectoryModel$DirectoryLoadThread; + class BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread : public ::java::lang::Thread +{ + +public: // actually package-private + BasicDirectoryModel$DirectoryLoadThread(::javax::swing::plaf::basic::BasicDirectoryModel *, ::java::io::File *); +public: + virtual void run(); +private: + void invokeLater(::javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest *); +public: // actually package-private + virtual void cancelPending(); + static ::javax::swing::plaf::basic::BasicDirectoryModel * access$0(::javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread *); + ::java::io::File * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) directory; +private: + ::javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest * pending; +public: // actually package-private + ::javax::swing::plaf::basic::BasicDirectoryModel * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDirectoryModel$DirectoryLoadThread__ diff --git a/libjava/javax/swing/plaf/basic/BasicDirectoryModel.h b/libjava/javax/swing/plaf/basic/BasicDirectoryModel.h new file mode 100644 index 00000000000..f13550f7100 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicDirectoryModel.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicDirectoryModel__ +#define __javax_swing_plaf_basic_BasicDirectoryModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JFileChooser; + namespace event + { + class ListDataEvent; + } + namespace plaf + { + namespace basic + { + class BasicDirectoryModel; + class BasicDirectoryModel$DirectoryLoadThread; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicDirectoryModel : public ::javax::swing::AbstractListModel +{ + +public: + BasicDirectoryModel(::javax::swing::JFileChooser *); + virtual jboolean contains(::java::lang::Object *); + virtual void fireContentsChanged(); + virtual ::java::util::Vector * getDirectories(); + virtual ::java::lang::Object * getElementAt(jint); + virtual ::java::util::Vector * getFiles(); + virtual jint getSize(); + virtual jint indexOf(::java::lang::Object *); + virtual void intervalAdded(::javax::swing::event::ListDataEvent *); + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *); + virtual void invalidateFileCache(); +public: // actually protected + virtual jboolean lt(::java::io::File *, ::java::io::File *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual jboolean renameFile(::java::io::File *, ::java::io::File *); +public: // actually protected + virtual void sort(::java::util::Vector *); +public: + virtual void validateFileCache(); +public: // actually package-private + static ::java::util::Vector * access$0(::javax::swing::plaf::basic::BasicDirectoryModel *); + static void access$1(::javax::swing::plaf::basic::BasicDirectoryModel *, ::java::util::Vector *); + static void access$2(::javax::swing::plaf::basic::BasicDirectoryModel *, ::java::util::Vector *); + static void access$3(::javax::swing::plaf::basic::BasicDirectoryModel *, ::java::lang::Object *, jint, jint); + static void access$4(::javax::swing::plaf::basic::BasicDirectoryModel *, ::java::lang::Object *, jint, jint); + static ::javax::swing::JFileChooser * access$5(::javax::swing::plaf::basic::BasicDirectoryModel *); +private: + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) contents; + ::java::util::Vector * directories; + ::java::util::Vector * files; + jint listingMode; + ::javax::swing::JFileChooser * filechooser; + ::javax::swing::plaf::basic::BasicDirectoryModel$DirectoryLoadThread * loadThread; + ::java::util::Comparator * comparator; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicDirectoryModel__ diff --git a/libjava/javax/swing/plaf/basic/BasicEditorPaneUI.h b/libjava/javax/swing/plaf/basic/BasicEditorPaneUI.h new file mode 100644 index 00000000000..b0033edb185 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicEditorPaneUI.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicEditorPaneUI__ +#define __javax_swing_plaf_basic_BasicEditorPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicEditorPaneUI; + } + } + namespace text + { + class EditorKit; + class JTextComponent; + } + } + } +} + +class javax::swing::plaf::basic::BasicEditorPaneUI : public ::javax::swing::plaf::basic::BasicTextUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + BasicEditorPaneUI(); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + virtual ::javax::swing::text::EditorKit * getEditorKit(::javax::swing::text::JTextComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicEditorPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.h new file mode 100644 index 00000000000..72434cc649f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$AcceptAllFileFilter__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$AcceptAllFileFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$AcceptAllFileFilter; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$AcceptAllFileFilter : public ::javax::swing::filechooser::FileFilter +{ + +public: + BasicFileChooserUI$AcceptAllFileFilter(::javax::swing::plaf::basic::BasicFileChooserUI *); + virtual jboolean accept(::java::io::File *); + virtual ::java::lang::String * getDescription(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::filechooser::FileFilter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$AcceptAllFileFilter__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.h new file mode 100644 index 00000000000..b650369befd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$ApproveSelectionAction__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$ApproveSelectionAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$ApproveSelectionAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$ApproveSelectionAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicFileChooserUI$ApproveSelectionAction(::javax::swing::plaf::basic::BasicFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$ApproveSelectionAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.h new file mode 100644 index 00000000000..dece5a2e955 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$BasicFileView__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$BasicFileView__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$BasicFileView; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$BasicFileView : public ::javax::swing::filechooser::FileView +{ + +public: + BasicFileChooserUI$BasicFileView(::javax::swing::plaf::basic::BasicFileChooserUI *); + virtual void cacheIcon(::java::io::File *, ::javax::swing::Icon *); + virtual void clearIconCache(); + virtual ::javax::swing::Icon * getCachedIcon(::java::io::File *); + virtual ::java::lang::String * getDescription(::java::io::File *); + virtual ::javax::swing::Icon * getIcon(::java::io::File *); + virtual ::java::lang::String * getName(::java::io::File *); + virtual ::java::lang::String * getTypeDescription(::java::io::File *); + virtual ::java::lang::Boolean * isHidden(::java::io::File *); +public: // actually protected + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::javax::swing::filechooser::FileView)))) iconCache; +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$BasicFileView__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.h new file mode 100644 index 00000000000..03af702d390 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$CancelSelectionAction__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$CancelSelectionAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$CancelSelectionAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$CancelSelectionAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicFileChooserUI$CancelSelectionAction(::javax::swing::plaf::basic::BasicFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$CancelSelectionAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.h new file mode 100644 index 00000000000..75b99b56b03 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$ChangeToParentDirectoryAction__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$ChangeToParentDirectoryAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$ChangeToParentDirectoryAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$ChangeToParentDirectoryAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicFileChooserUI$ChangeToParentDirectoryAction(::javax::swing::plaf::basic::BasicFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$ChangeToParentDirectoryAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.h new file mode 100644 index 00000000000..79df9920515 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$DoubleClickListener__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$DoubleClickListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JList; + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$DoubleClickListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$DoubleClickListener : public ::java::awt::event::MouseAdapter +{ + +public: + BasicFileChooserUI$DoubleClickListener(::javax::swing::plaf::basic::BasicFileChooserUI *, ::javax::swing::JList *); + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) lastSelected; + ::javax::swing::JList * list; +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$DoubleClickListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.h new file mode 100644 index 00000000000..219143eb5fb --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$GoHomeAction__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$GoHomeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$GoHomeAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$GoHomeAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicFileChooserUI$GoHomeAction(::javax::swing::plaf::basic::BasicFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$GoHomeAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.h new file mode 100644 index 00000000000..da249e43aae --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$NewFolderAction__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$NewFolderAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$NewFolderAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$NewFolderAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicFileChooserUI$NewFolderAction(::javax::swing::plaf::basic::BasicFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$NewFolderAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.h new file mode 100644 index 00000000000..af8c2d0ba6e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$SelectionListener__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$SelectionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListSelectionEvent; + } + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$SelectionListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$SelectionListener : public ::java::lang::Object +{ + +public: // actually protected + BasicFileChooserUI$SelectionListener(::javax::swing::plaf::basic::BasicFileChooserUI *); +public: + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$SelectionListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.h new file mode 100644 index 00000000000..a3db6b1345b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI$UpdateAction__ +#define __javax_swing_plaf_basic_BasicFileChooserUI$UpdateAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicFileChooserUI; + class BasicFileChooserUI$UpdateAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI$UpdateAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + BasicFileChooserUI$UpdateAction(::javax::swing::plaf::basic::BasicFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI$UpdateAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicFileChooserUI.h b/libjava/javax/swing/plaf/basic/BasicFileChooserUI.h new file mode 100644 index 00000000000..8565a6757b1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFileChooserUI.h @@ -0,0 +1,187 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFileChooserUI__ +#define __javax_swing_plaf_basic_BasicFileChooserUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class Action; + class Icon; + class JButton; + class JComponent; + class JFileChooser; + class JList; + class JPanel; + class JTextField; + namespace event + { + class ListSelectionListener; + } + namespace filechooser + { + class FileFilter; + class FileView; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicDirectoryModel; + class BasicFileChooserUI; + class BasicFileChooserUI$ApproveSelectionAction; + class BasicFileChooserUI$CancelSelectionAction; + class BasicFileChooserUI$ChangeToParentDirectoryAction; + class BasicFileChooserUI$GoHomeAction; + class BasicFileChooserUI$NewFolderAction; + class BasicFileChooserUI$UpdateAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFileChooserUI : public ::javax::swing::plaf::FileChooserUI +{ + +public: // actually package-private + virtual void closeDialog(); +public: + BasicFileChooserUI(::javax::swing::JFileChooser *); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually package-private + virtual void boxEntries(); +public: + virtual void installComponents(::javax::swing::JFileChooser *); + virtual void uninstallComponents(::javax::swing::JFileChooser *); +public: // actually protected + virtual void installListeners(::javax::swing::JFileChooser *); + virtual void uninstallListeners(::javax::swing::JFileChooser *); + virtual void installDefaults(::javax::swing::JFileChooser *); + virtual void uninstallDefaults(::javax::swing::JFileChooser *); + virtual void installIcons(::javax::swing::JFileChooser *); + virtual void uninstallIcons(::javax::swing::JFileChooser *); + virtual void installStrings(::javax::swing::JFileChooser *); + virtual void uninstallStrings(::javax::swing::JFileChooser *); + virtual void createModel(); +public: + virtual ::javax::swing::plaf::basic::BasicDirectoryModel * getModel(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(::javax::swing::JFileChooser *); + virtual ::java::lang::String * getFileName(); + virtual ::java::lang::String * getDirectoryName(); + virtual void setFileName(::java::lang::String *); + virtual void setDirectoryName(::java::lang::String *); + virtual void rescanCurrentDirectory(::javax::swing::JFileChooser *); + virtual void ensureFileIsVisible(::javax::swing::JFileChooser *, ::java::io::File *); + virtual ::javax::swing::JFileChooser * getFileChooser(); + virtual ::javax::swing::JPanel * getAccessoryPanel(); +public: // actually protected + virtual ::javax::swing::JButton * getApproveButton(::javax::swing::JFileChooser *); +public: + virtual ::java::lang::String * getApproveButtonToolTipText(::javax::swing::JFileChooser *); + virtual void clearIconCache(); + virtual ::javax::swing::event::ListSelectionListener * createListSelectionListener(::javax::swing::JFileChooser *); +public: // actually protected + virtual ::java::awt::event::MouseListener * createDoubleClickListener(::javax::swing::JFileChooser *, ::javax::swing::JList *); + virtual jboolean isDirectorySelected(); + virtual void setDirectorySelected(jboolean); + virtual ::java::io::File * getDirectory(); + virtual void setDirectory(::java::io::File *); +public: + virtual ::javax::swing::filechooser::FileFilter * getAcceptAllFileFilter(::javax::swing::JFileChooser *); + virtual ::javax::swing::filechooser::FileView * getFileView(::javax::swing::JFileChooser *); + virtual ::java::lang::String * getDialogTitle(::javax::swing::JFileChooser *); + virtual jint getApproveButtonMnemonic(::javax::swing::JFileChooser *); + virtual ::java::lang::String * getApproveButtonText(::javax::swing::JFileChooser *); + virtual ::javax::swing::Action * getNewFolderAction(); + virtual ::javax::swing::Action * getGoHomeAction(); + virtual ::javax::swing::Action * getChangeToParentDirectoryAction(); + virtual ::javax::swing::Action * getApproveSelectionAction(); + virtual ::javax::swing::Action * getCancelSelectionAction(); + virtual ::javax::swing::Action * getUpdateAction(); +public: // actually package-private + static ::java::io::File * access$0(::javax::swing::plaf::basic::BasicFileChooserUI *); + static void access$1(::javax::swing::plaf::basic::BasicFileChooserUI *, ::java::io::File *); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::plaf::FileChooserUI)))) cancelButtonMnemonic; + ::java::lang::String * cancelButtonText; + ::java::lang::String * cancelButtonToolTipText; + ::javax::swing::Icon * computerIcon; + ::javax::swing::Icon * detailsViewIcon; + ::javax::swing::Icon * directoryIcon; + jint directoryOpenButtonMnemonic; + ::java::lang::String * directoryOpenButtonText; + ::java::lang::String * directoryOpenButtonToolTipText; + ::javax::swing::Icon * fileIcon; + ::javax::swing::Icon * floppyDriveIcon; + ::javax::swing::Icon * hardDriveIcon; + jint helpButtonMnemonic; + ::java::lang::String * helpButtonText; + ::java::lang::String * helpButtonToolTipText; + ::javax::swing::Icon * homeFolderIcon; + ::javax::swing::Icon * listViewIcon; + ::javax::swing::Icon * newFolderIcon; + jint openButtonMnemonic; + ::java::lang::String * openButtonText; + ::java::lang::String * openButtonToolTipText; + jint saveButtonMnemonic; + ::java::lang::String * saveButtonText; + ::java::lang::String * saveButtonToolTipText; + jint updateButtonMnemonic; + ::java::lang::String * updateButtonText; + ::java::lang::String * updateButtonToolTipText; + ::javax::swing::Icon * upFolderIcon; +public: // actually package-private + ::javax::swing::JFileChooser * filechooser; + ::javax::swing::plaf::basic::BasicDirectoryModel * model; + ::javax::swing::filechooser::FileFilter * acceptAll; + ::javax::swing::filechooser::FileView * fv; + ::javax::swing::JButton * accept; + ::javax::swing::JPanel * accessoryPanel; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::java::lang::String * acceptAllFileFilterText; + ::java::lang::String * dirDescText; + ::java::lang::String * fileDescText; + jboolean dirSelected; + ::java::io::File * currDir; + ::javax::swing::JPanel * bottomPanel; + ::javax::swing::JPanel * closePanel; + ::javax::swing::JTextField * entry; + ::java::lang::String * parentPath; +private: + ::javax::swing::plaf::basic::BasicFileChooserUI$ApproveSelectionAction * approveSelectionAction; + ::javax::swing::plaf::basic::BasicFileChooserUI$CancelSelectionAction * cancelSelectionAction; + ::javax::swing::plaf::basic::BasicFileChooserUI$GoHomeAction * goHomeAction; + ::javax::swing::plaf::basic::BasicFileChooserUI$ChangeToParentDirectoryAction * changeToParentDirectoryAction; + ::javax::swing::plaf::basic::BasicFileChooserUI$NewFolderAction * newFolderAction; + ::javax::swing::plaf::basic::BasicFileChooserUI$UpdateAction * updateAction; + ::java::io::File * selectedDir; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFileChooserUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicFormattedTextFieldUI.h b/libjava/javax/swing/plaf/basic/BasicFormattedTextFieldUI.h new file mode 100644 index 00000000000..f024fbb63d9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicFormattedTextFieldUI.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicFormattedTextFieldUI__ +#define __javax_swing_plaf_basic_BasicFormattedTextFieldUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicFormattedTextFieldUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicFormattedTextFieldUI : public ::javax::swing::plaf::basic::BasicTextFieldUI +{ + +public: + BasicFormattedTextFieldUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicFormattedTextFieldUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicGraphicsUtils.h b/libjava/javax/swing/plaf/basic/BasicGraphicsUtils.h new file mode 100644 index 00000000000..5cab989ac60 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicGraphicsUtils.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicGraphicsUtils__ +#define __javax_swing_plaf_basic_BasicGraphicsUtils__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class JComponent; + namespace plaf + { + namespace basic + { + class BasicGraphicsUtils; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicGraphicsUtils : public ::java::lang::Object +{ + +public: + BasicGraphicsUtils(); + static void drawEtchedRect(::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + static ::java::awt::Insets * getEtchedInsets(); + static void drawGroove(::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *); + static ::java::awt::Insets * getGrooveInsets(); + static void drawBezel(::java::awt::Graphics *, jint, jint, jint, jint, jboolean, jboolean, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + static void drawLoweredBezel(::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *); + static void drawString(::java::awt::Graphics *, ::java::lang::String *, jint, jint, jint); + static void drawStringUnderlineCharAt(::java::awt::Graphics *, ::java::lang::String *, jint, jint, jint); +public: // actually package-private + static void drawString(::javax::swing::JComponent *, ::java::awt::Graphics *, ::java::lang::String *, jint, jint, jint); + static void drawStringUnderlineCharAt(::javax::swing::JComponent *, ::java::awt::Graphics *, ::java::lang::String *, jint, jint, jint); +public: + static void drawDashedRect(::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::awt::Dimension * getPreferredButtonSize(::javax::swing::AbstractButton *, jint); +public: // actually package-private + static ::java::lang::String * CACHED_TEXT_LAYOUT; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicGraphicsUtils__ diff --git a/libjava/javax/swing/plaf/basic/BasicHTML$HTMLRootView.h b/libjava/javax/swing/plaf/basic/BasicHTML$HTMLRootView.h new file mode 100644 index 00000000000..368ab871540 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicHTML$HTMLRootView.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicHTML$HTMLRootView__ +#define __javax_swing_plaf_basic_BasicHTML$HTMLRootView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace event + { + class DocumentEvent; + } + namespace plaf + { + namespace basic + { + class BasicHTML$HTMLRootView; + } + } + namespace text + { + class AttributeSet; + class Document; + class EditorKit; + class Element; + class Position$Bias; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::plaf::basic::BasicHTML$HTMLRootView : public ::javax::swing::text::View +{ + +public: + BasicHTML$HTMLRootView(::javax::swing::JComponent *, ::javax::swing::text::View *, ::javax::swing::text::EditorKit *, ::javax::swing::text::Document *); + virtual ::javax::swing::text::ViewFactory * getViewFactory(); + virtual void preferenceChanged(::javax::swing::text::View *, jboolean, jboolean); + virtual void setView(::javax::swing::text::View *); + virtual void setSize(jfloat, jfloat); + virtual ::javax::swing::text::View * getView(jint); + virtual jint getViewCount(); + virtual ::java::awt::Container * getContainer(); + virtual jfloat getPreferredSpan(jint); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual jint getNextVisualPositionFrom(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jint getStartOffset(); + virtual jint getEndOffset(); + virtual ::javax::swing::text::Document * getDocument(); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual ::javax::swing::text::Element * getElement(); +private: + ::javax::swing::text::View * __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) view; + ::javax::swing::JComponent * component; + ::javax::swing::text::EditorKit * editorKit; + ::javax::swing::text::Document * document; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicHTML$HTMLRootView__ diff --git a/libjava/javax/swing/plaf/basic/BasicHTML.h b/libjava/javax/swing/plaf/basic/BasicHTML.h new file mode 100644 index 00000000000..7ae85956eca --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicHTML.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicHTML__ +#define __javax_swing_plaf_basic_BasicHTML__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + namespace basic + { + class BasicHTML; + } + } + namespace text + { + class View; + } + } + } +} + +class javax::swing::plaf::basic::BasicHTML : public ::java::lang::Object +{ + +public: + BasicHTML(); + static ::javax::swing::text::View * createHTMLView(::javax::swing::JComponent *, ::java::lang::String *); + static jboolean isHTMLString(::java::lang::String *); + static void updateRenderer(::javax::swing::JComponent *, ::java::lang::String *); + static ::java::lang::String * propertyKey; + static ::java::lang::String * documentBaseKey; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicHTML__ diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory$1.h b/libjava/javax/swing/plaf/basic/BasicIconFactory$1.h new file mode 100644 index 00000000000..5a75dbb60ca --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicIconFactory$1.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicIconFactory$1__ +#define __javax_swing_plaf_basic_BasicIconFactory$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicIconFactory$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicIconFactory$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicIconFactory$1(); +public: + jint getIconHeight(); + jint getIconWidth(); + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicIconFactory$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory$2.h b/libjava/javax/swing/plaf/basic/BasicIconFactory$2.h new file mode 100644 index 00000000000..be87bf9d96a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicIconFactory$2.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicIconFactory$2__ +#define __javax_swing_plaf_basic_BasicIconFactory$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicIconFactory$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicIconFactory$2 : public ::java::lang::Object +{ + +public: // actually package-private + BasicIconFactory$2(); +public: + jint getIconHeight(); + jint getIconWidth(); + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicIconFactory$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxIcon.h b/libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxIcon.h new file mode 100644 index 00000000000..0287f1c7acb --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxIcon.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicIconFactory$CheckBoxIcon__ +#define __javax_swing_plaf_basic_BasicIconFactory$CheckBoxIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicIconFactory$CheckBoxIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicIconFactory$CheckBoxIcon : public ::java::lang::Object +{ + +public: // actually package-private + BasicIconFactory$CheckBoxIcon(); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicIconFactory$CheckBoxIcon__ diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxMenuItemIcon.h b/libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxMenuItemIcon.h new file mode 100644 index 00000000000..9c1d7f0262e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicIconFactory$CheckBoxMenuItemIcon.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicIconFactory$CheckBoxMenuItemIcon__ +#define __javax_swing_plaf_basic_BasicIconFactory$CheckBoxMenuItemIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicIconFactory$CheckBoxMenuItemIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicIconFactory$CheckBoxMenuItemIcon : public ::java::lang::Object +{ + +public: // actually package-private + BasicIconFactory$CheckBoxMenuItemIcon(); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicIconFactory$CheckBoxMenuItemIcon__ diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory$DummyIcon.h b/libjava/javax/swing/plaf/basic/BasicIconFactory$DummyIcon.h new file mode 100644 index 00000000000..d7771903215 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicIconFactory$DummyIcon.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicIconFactory$DummyIcon__ +#define __javax_swing_plaf_basic_BasicIconFactory$DummyIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicIconFactory$DummyIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicIconFactory$DummyIcon : public ::java::lang::Object +{ + + BasicIconFactory$DummyIcon(); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually package-private + BasicIconFactory$DummyIcon(::javax::swing::plaf::basic::BasicIconFactory$DummyIcon *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicIconFactory$DummyIcon__ diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory$RadioButtonIcon.h b/libjava/javax/swing/plaf/basic/BasicIconFactory$RadioButtonIcon.h new file mode 100644 index 00000000000..a30f4d0d4a9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicIconFactory$RadioButtonIcon.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicIconFactory$RadioButtonIcon__ +#define __javax_swing_plaf_basic_BasicIconFactory$RadioButtonIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicIconFactory$RadioButtonIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicIconFactory$RadioButtonIcon : public ::java::lang::Object +{ + +public: // actually package-private + BasicIconFactory$RadioButtonIcon(); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicIconFactory$RadioButtonIcon__ diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory.h b/libjava/javax/swing/plaf/basic/BasicIconFactory.h new file mode 100644 index 00000000000..fc851373dda --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicIconFactory.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicIconFactory__ +#define __javax_swing_plaf_basic_BasicIconFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + namespace basic + { + class BasicIconFactory; + class BasicIconFactory$CheckBoxIcon; + class BasicIconFactory$RadioButtonIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicIconFactory : public ::java::lang::Object +{ + +public: + BasicIconFactory(); + static ::javax::swing::Icon * getMenuItemCheckIcon(); + static ::javax::swing::Icon * getMenuItemArrowIcon(); + static ::javax::swing::Icon * getMenuArrowIcon(); + static ::javax::swing::Icon * getCheckBoxIcon(); + static ::javax::swing::Icon * getRadioButtonIcon(); + static ::javax::swing::Icon * getCheckBoxMenuItemIcon(); + static ::javax::swing::Icon * getRadioButtonMenuItemIcon(); + static ::javax::swing::Icon * createEmptyFrameIcon(); +public: // actually package-private + static const jlong serialVersionUID = 5605588811185324383LL; +private: + static ::javax::swing::plaf::basic::BasicIconFactory$CheckBoxIcon * checkBoxIcon; + static ::javax::swing::plaf::basic::BasicIconFactory$RadioButtonIcon * radioButtonIcon; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicIconFactory__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction.h new file mode 100644 index 00000000000..efce70e9db2 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$CloseAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$CloseAction__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$CloseAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$CloseAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$CloseAction : public ::javax::swing::AbstractAction +{ + +public: + BasicInternalFrameTitlePane$CloseAction(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$CloseAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction.h new file mode 100644 index 00000000000..4ed9a7f741f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$IconifyAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$IconifyAction__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$IconifyAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$IconifyAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$IconifyAction : public ::javax::swing::AbstractAction +{ + +public: + BasicInternalFrameTitlePane$IconifyAction(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$IconifyAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction.h new file mode 100644 index 00000000000..cf31b3c0d10 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MaximizeAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$MaximizeAction__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$MaximizeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$MaximizeAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$MaximizeAction : public ::javax::swing::AbstractAction +{ + +public: + BasicInternalFrameTitlePane$MaximizeAction(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$MaximizeAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction.h new file mode 100644 index 00000000000..6c4570f1f9c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$MoveAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$MoveAction__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$MoveAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$MoveAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$MoveAction : public ::javax::swing::AbstractAction +{ + +public: + BasicInternalFrameTitlePane$MoveAction(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$MoveAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PaneButton.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PaneButton.h new file mode 100644 index 00000000000..3177afec5c7 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PaneButton.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$PaneButton__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$PaneButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$PaneButton; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$PaneButton : public ::javax::swing::JButton +{ + +public: + BasicInternalFrameTitlePane$PaneButton(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *, ::javax::swing::Action *); + virtual jboolean isFocusable(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$PaneButton__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler.h new file mode 100644 index 00000000000..be7bb8be66f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicInternalFrameTitlePane$PropertyChangeHandler(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction.h new file mode 100644 index 00000000000..b33c5e0cda1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$RestoreAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$RestoreAction__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$RestoreAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$RestoreAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$RestoreAction : public ::javax::swing::AbstractAction +{ + +public: + BasicInternalFrameTitlePane$RestoreAction(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$RestoreAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction.h new file mode 100644 index 00000000000..edf1553f8d3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SizeAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$SizeAction__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$SizeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$SizeAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$SizeAction : public ::javax::swing::AbstractAction +{ + +public: + BasicInternalFrameTitlePane$SizeAction(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$SizeAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar.h new file mode 100644 index 00000000000..9510859b96a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$SystemMenuBar.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$SystemMenuBar__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$SystemMenuBar__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$SystemMenuBar; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$SystemMenuBar : public ::javax::swing::JMenuBar +{ + +public: + BasicInternalFrameTitlePane$SystemMenuBar(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual jboolean isFocusTraversable(); + virtual jboolean isOpaque(); + virtual void paint(::java::awt::Graphics *); + virtual void requestFocus(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::JMenuBar)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$SystemMenuBar__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout.h new file mode 100644 index 00000000000..4dedb42bd2c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane$TitlePaneLayout.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane$TitlePaneLayout__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane$TitlePaneLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameTitlePane$TitlePaneLayout; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane$TitlePaneLayout : public ::java::lang::Object +{ + +public: + BasicInternalFrameTitlePane$TitlePaneLayout(::javax::swing::plaf::basic::BasicInternalFrameTitlePane *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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 *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane$TitlePaneLayout__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.h new file mode 100644 index 00000000000..68b826b2f97 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameTitlePane__ +#define __javax_swing_plaf_basic_BasicInternalFrameTitlePane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class FontMetrics; + class Graphics; + class LayoutManager; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class Action; + class Icon; + class JButton; + class JInternalFrame; + class JLabel; + class JMenu; + class JMenuBar; + namespace plaf + { + namespace basic + { + class BasicInternalFrameTitlePane; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameTitlePane : public ::javax::swing::JComponent +{ + +public: + BasicInternalFrameTitlePane(::javax::swing::JInternalFrame *); +public: // actually protected + virtual void installTitlePane(); + virtual void addSubComponents(); + virtual void createActions(); + virtual void installListeners(); + virtual void uninstallListeners(); + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual void createButtons(); + virtual void setButtonIcons(); + virtual void assembleSystemMenu(); + virtual void addSystemMenuItems(::javax::swing::JMenu *); + virtual ::javax::swing::JMenuBar * createSystemMenuBar(); + virtual ::javax::swing::JMenu * createSystemMenu(); + virtual void showSystemMenu(); +public: + virtual void paintComponent(::java::awt::Graphics *); +public: // actually protected + virtual void paintTitleBackground(::java::awt::Graphics *); + virtual ::java::lang::String * getTitle(::java::lang::String *, ::java::awt::FontMetrics *, jint); + virtual void postClosingEvent(::javax::swing::JInternalFrame *); + virtual void enableActions(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::java::awt::LayoutManager * createLayout(); + static ::java::lang::String * CLOSE_CMD; + static ::java::lang::String * ICONIFY_CMD; + static ::java::lang::String * MAXIMIZE_CMD; + static ::java::lang::String * MOVE_CMD; + static ::java::lang::String * RESTORE_CMD; + static ::java::lang::String * SIZE_CMD; + ::javax::swing::Action * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) closeAction; + ::javax::swing::Action * iconifyAction; + ::javax::swing::Action * maximizeAction; + ::javax::swing::Action * moveAction; + ::javax::swing::Action * restoreAction; + ::javax::swing::Action * sizeAction; + ::javax::swing::JButton * closeButton; + ::javax::swing::JButton * iconButton; + ::javax::swing::JButton * maxButton; + ::javax::swing::Icon * minIcon; + ::javax::swing::Icon * maxIcon; + ::javax::swing::Icon * iconIcon; + ::javax::swing::Icon * closeIcon; + ::javax::swing::JInternalFrame * frame; + ::javax::swing::JMenuBar * menuBar; + ::javax::swing::JMenu * windowMenu; + ::java::awt::Color * notSelectedTextColor; + ::java::awt::Color * notSelectedTitleColor; + ::java::awt::Color * selectedTextColor; + ::java::awt::Color * selectedTitleColor; + ::java::beans::PropertyChangeListener * propertyChangeListener; +public: // actually package-private + ::javax::swing::JLabel * title; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameTitlePane__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener.h new file mode 100644 index 00000000000..d1d36649a61 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BasicInternalFrameListener.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$BasicInternalFrameListener__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$BasicInternalFrameListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class InternalFrameEvent; + } + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$BasicInternalFrameListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$BasicInternalFrameListener : public ::java::lang::Object +{ + +public: // actually protected + BasicInternalFrameUI$BasicInternalFrameListener(::javax::swing::plaf::basic::BasicInternalFrameUI *); +public: + virtual void internalFrameActivated(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameClosed(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameClosing(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameDeactivated(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameDeiconified(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameIconified(::javax::swing::event::InternalFrameEvent *); + virtual void internalFrameOpened(::javax::swing::event::InternalFrameEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$BasicInternalFrameListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener.h new file mode 100644 index 00000000000..18a50e63a35 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$BorderListener.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$BorderListener__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$BorderListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$BorderListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$BorderListener : public ::javax::swing::event::MouseInputAdapter +{ + +public: // actually protected + BasicInternalFrameUI$BorderListener(::javax::swing::plaf::basic::BasicInternalFrameUI *); +public: + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual void setCursor(::java::awt::event::MouseEvent *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +private: + jint sectionOfClick(jint, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::javax::swing::event::MouseInputAdapter)))) showingCursor; +public: // actually protected + const jint RESIZE_NONE; +private: + jint xOffset; + jint yOffset; + jint direction; + ::java::awt::Rectangle * cacheRect; +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$BorderListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler.h new file mode 100644 index 00000000000..aeedc9352f0 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ComponentHandler.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$ComponentHandler__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$ComponentHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ComponentEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$ComponentHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$ComponentHandler : public ::java::lang::Object +{ + +public: // actually protected + BasicInternalFrameUI$ComponentHandler(::javax::swing::plaf::basic::BasicInternalFrameUI *); +public: + virtual void componentHidden(::java::awt::event::ComponentEvent *); + virtual void componentMoved(::java::awt::event::ComponentEvent *); + virtual void componentResized(::java::awt::event::ComponentEvent *); + virtual void componentShown(::java::awt::event::ComponentEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$ComponentHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher.h new file mode 100644 index 00000000000..24529023260 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$GlassPaneDispatcher.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$GlassPaneDispatcher__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$GlassPaneDispatcher__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$GlassPaneDispatcher; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$GlassPaneDispatcher : public ::java::lang::Object +{ + +public: // actually protected + BasicInternalFrameUI$GlassPaneDispatcher(::javax::swing::plaf::basic::BasicInternalFrameUI *); +public: + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +private: + void handleEvent(::java::awt::event::MouseEvent *); + void redispatch(jint, ::java::awt::event::MouseEvent *, ::java::awt::Component *); + ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mouseEventTarget; + ::java::awt::Component * dragTarget; + jboolean isDragging; +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameUI * this$0; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$GlassPaneDispatcher__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameBorder.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameBorder.h new file mode 100644 index 00000000000..a5ddab06727 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameBorder.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFrameBorder__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFrameBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$InternalFrameBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$InternalFrameBorder : public ::javax::swing::border::AbstractBorder +{ + +public: // actually package-private + BasicInternalFrameUI$InternalFrameBorder(::javax::swing::plaf::basic::BasicInternalFrameUI *); +public: + virtual jboolean isBorderOpaque(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +public: // actually package-private + static const jint bSize = 5; + static const jint cornerSize = 10; + ::javax::swing::plaf::basic::BasicInternalFrameUI * __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFrameBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout.h new file mode 100644 index 00000000000..6ff8ae9abf5 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFrameLayout.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFrameLayout__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFrameLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$InternalFrameLayout; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$InternalFrameLayout : public ::java::lang::Object +{ + +public: + BasicInternalFrameUI$InternalFrameLayout(::javax::swing::plaf::basic::BasicInternalFrameUI *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void layoutContainer(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); +private: + ::java::awt::Dimension * getSize(::java::awt::Container *, jboolean); +public: + virtual void removeLayoutComponent(::java::awt::Component *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFrameLayout__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener.h new file mode 100644 index 00000000000..c1a37ba0d18 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$InternalFramePropertyChangeListener.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFramePropertyChangeListener__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFramePropertyChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$InternalFramePropertyChangeListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$InternalFramePropertyChangeListener : public ::java::lang::Object +{ + +public: + BasicInternalFrameUI$InternalFramePropertyChangeListener(::javax::swing::plaf::basic::BasicInternalFrameUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicInternalFrameUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFramePropertyChangeListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ShowSystemMenuAction.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ShowSystemMenuAction.h new file mode 100644 index 00000000000..9b43d26dfdf --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI$ShowSystemMenuAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$ShowSystemMenuAction__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI$ShowSystemMenuAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicInternalFrameUI; + class BasicInternalFrameUI$ShowSystemMenuAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI$ShowSystemMenuAction : public ::javax::swing::AbstractAction +{ + + BasicInternalFrameUI$ShowSystemMenuAction(::javax::swing::plaf::basic::BasicInternalFrameUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + BasicInternalFrameUI$ShowSystemMenuAction(::javax::swing::plaf::basic::BasicInternalFrameUI *, ::javax::swing::plaf::basic::BasicInternalFrameUI$ShowSystemMenuAction *); + ::javax::swing::plaf::basic::BasicInternalFrameUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$ShowSystemMenuAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.h b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.h new file mode 100644 index 00000000000..18aa9207e30 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.h @@ -0,0 +1,139 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI__ +#define __javax_swing_plaf_basic_BasicInternalFrameUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class LayoutManager; + namespace event + { + class ComponentListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class DesktopManager; + class JComponent; + class JDesktopPane; + class JInternalFrame; + class KeyStroke; + namespace event + { + class MouseInputAdapter; + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicInternalFrameTitlePane; + class BasicInternalFrameUI; + class BasicInternalFrameUI$BasicInternalFrameListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicInternalFrameUI : public ::javax::swing::plaf::InternalFrameUI +{ + +public: + BasicInternalFrameUI(::javax::swing::JInternalFrame *); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); + virtual void installKeyboardActions(); + virtual void installComponents(); + virtual void installListeners(); + virtual void uninstallDefaults(); + virtual void uninstallComponents(); + virtual void uninstallListeners(); + virtual void uninstallKeyboardActions(); + virtual ::java::awt::LayoutManager * createLayoutManager(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +public: // actually protected + virtual void replacePane(::javax::swing::JComponent *, ::javax::swing::JComponent *); + virtual void deinstallMouseHandlers(::javax::swing::JComponent *); + virtual void installMouseHandlers(::javax::swing::JComponent *); + virtual ::javax::swing::JComponent * createNorthPane(::javax::swing::JInternalFrame *); + virtual ::javax::swing::JComponent * createWestPane(::javax::swing::JInternalFrame *); + virtual ::javax::swing::JComponent * createSouthPane(::javax::swing::JInternalFrame *); + virtual ::javax::swing::JComponent * createEastPane(::javax::swing::JInternalFrame *); + virtual ::javax::swing::event::MouseInputAdapter * createBorderListener(::javax::swing::JInternalFrame *); + virtual void createInternalFrameListener(); + virtual jboolean isKeyBindingRegistered(); + virtual void setKeyBindingRegistered(jboolean); +public: + virtual jboolean isKeyBindingActive(); +public: // actually protected + virtual void setKeyBindingActive(jboolean); + virtual void setupMenuOpenKey(); + virtual void setupMenuCloseKey(); +public: + virtual ::javax::swing::JComponent * getNorthPane(); + virtual void setNorthPane(::javax::swing::JComponent *); + virtual ::javax::swing::JComponent * getSouthPane(); + virtual void setSouthPane(::javax::swing::JComponent *); + virtual void setEastPane(::javax::swing::JComponent *); + virtual ::javax::swing::JComponent * getEastPane(); + virtual void setWestPane(::javax::swing::JComponent *); + virtual ::javax::swing::JComponent * getWestPane(); +public: // actually protected + virtual ::javax::swing::DesktopManager * getDesktopManager(); + virtual ::javax::swing::DesktopManager * createDesktopManager(); + virtual void closeFrame(::javax::swing::JInternalFrame *); + virtual void maximizeFrame(::javax::swing::JInternalFrame *); + virtual void minimizeFrame(::javax::swing::JInternalFrame *); + virtual void iconifyFrame(::javax::swing::JInternalFrame *); + virtual void deiconifyFrame(::javax::swing::JInternalFrame *); + virtual void activateFrame(::javax::swing::JInternalFrame *); + virtual void deactivateFrame(::javax::swing::JInternalFrame *); + virtual ::java::awt::event::ComponentListener * createComponentListener(); + virtual ::javax::swing::event::MouseInputListener * createGlassPaneDispatcher(); + ::javax::swing::event::MouseInputAdapter * __attribute__((aligned(__alignof__( ::javax::swing::plaf::InternalFrameUI)))) borderListener; + ::java::awt::event::ComponentListener * componentListener; + ::javax::swing::event::MouseInputListener * glassPaneDispatcher; + ::java::beans::PropertyChangeListener * propertyChangeListener; +private: + ::javax::swing::plaf::basic::BasicInternalFrameUI$BasicInternalFrameListener * internalFrameListener; +public: // actually protected + ::javax::swing::JComponent * eastPane; + ::javax::swing::JComponent * northPane; + ::javax::swing::JComponent * southPane; + ::javax::swing::JComponent * westPane; + ::javax::swing::KeyStroke * openMenuKey; + ::javax::swing::plaf::basic::BasicInternalFrameTitlePane * titlePane; + ::javax::swing::JInternalFrame * frame; + ::java::awt::LayoutManager * internalFrameLayout; +private: + ::javax::swing::JDesktopPane * desktopPane; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicInternalFrameUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicLabelUI$1.h b/libjava/javax/swing/plaf/basic/BasicLabelUI$1.h new file mode 100644 index 00000000000..3ef661852f6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLabelUI$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLabelUI$1__ +#define __javax_swing_plaf_basic_BasicLabelUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicLabelUI; + class BasicLabelUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLabelUI$1 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicLabelUI$1(::javax::swing::plaf::basic::BasicLabelUI *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLabelUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLabelUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicLabelUI.h b/libjava/javax/swing/plaf/basic/BasicLabelUI.h new file mode 100644 index 00000000000..e0d39a24189 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLabelUI.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLabelUI__ +#define __javax_swing_plaf_basic_BasicLabelUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class FontMetrics; + class Graphics; + class Rectangle; + } + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JComponent; + class JLabel; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicLabelUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLabelUI : public ::javax::swing::plaf::LabelUI +{ + +public: + BasicLabelUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * layoutCL(::javax::swing::JLabel *, ::java::awt::FontMetrics *, ::java::lang::String *, ::javax::swing::Icon *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *); + virtual void paintDisabledText(::javax::swing::JLabel *, ::java::awt::Graphics *, ::java::lang::String *, jint, jint); + virtual void paintEnabledText(::javax::swing::JLabel *, ::java::awt::Graphics *, ::java::lang::String *, jint, jint); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installComponents(::javax::swing::JLabel *); + virtual void uninstallComponents(::javax::swing::JLabel *); + virtual void installDefaults(::javax::swing::JLabel *); + virtual void uninstallDefaults(::javax::swing::JLabel *); + virtual void installKeyboardActions(::javax::swing::JLabel *); + virtual void uninstallKeyboardActions(::javax::swing::JLabel *); + virtual void installListeners(::javax::swing::JLabel *); + virtual void uninstallListeners(::javax::swing::JLabel *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually protected + static ::javax::swing::plaf::basic::BasicLabelUI * labelUI; +private: + ::java::awt::Rectangle * __attribute__((aligned(__alignof__( ::javax::swing::plaf::LabelUI)))) vr; + ::java::awt::Rectangle * ir; + ::java::awt::Rectangle * tr; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLabelUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI$ActionListenerProxy.h b/libjava/javax/swing/plaf/basic/BasicListUI$ActionListenerProxy.h new file mode 100644 index 00000000000..48cfc19f080 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI$ActionListenerProxy.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI$ActionListenerProxy__ +#define __javax_swing_plaf_basic_BasicListUI$ActionListenerProxy__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ActionListener; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicListUI$ActionListenerProxy; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI$ActionListenerProxy : public ::javax::swing::AbstractAction +{ + +public: + BasicListUI$ActionListenerProxy(::java::awt::event::ActionListener *, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::java::awt::event::ActionListener * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) target; + ::java::lang::String * bindingCommandName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI$ActionListenerProxy__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicListUI$FocusHandler.h new file mode 100644 index 00000000000..a79c2a9fb77 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI$FocusHandler.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicListUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicListUI; + class BasicListUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI$FocusHandler : public ::java::lang::Object +{ + +public: + BasicListUI$FocusHandler(::javax::swing::plaf::basic::BasicListUI *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually protected + virtual void repaintCellFocus(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicListUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI$ListAction.h b/libjava/javax/swing/plaf/basic/BasicListUI$ListAction.h new file mode 100644 index 00000000000..0cec9aa6e6f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI$ListAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI$ListAction__ +#define __javax_swing_plaf_basic_BasicListUI$ListAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicListUI; + class BasicListUI$ListAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI$ListAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicListUI$ListAction(::javax::swing::plaf::basic::BasicListUI *, ::java::lang::String *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicListUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI$ListAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI$ListDataHandler.h b/libjava/javax/swing/plaf/basic/BasicListUI$ListDataHandler.h new file mode 100644 index 00000000000..f0c6a1579aa --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI$ListDataHandler.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI$ListDataHandler__ +#define __javax_swing_plaf_basic_BasicListUI$ListDataHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListDataEvent; + } + namespace plaf + { + namespace basic + { + class BasicListUI; + class BasicListUI$ListDataHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI$ListDataHandler : public ::java::lang::Object +{ + +public: + BasicListUI$ListDataHandler(::javax::swing::plaf::basic::BasicListUI *); + virtual void contentsChanged(::javax::swing::event::ListDataEvent *); + virtual void intervalAdded(::javax::swing::event::ListDataEvent *); + virtual void intervalRemoved(::javax::swing::event::ListDataEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicListUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI$ListDataHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI$ListSelectionHandler.h b/libjava/javax/swing/plaf/basic/BasicListUI$ListSelectionHandler.h new file mode 100644 index 00000000000..8211c698210 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI$ListSelectionHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI$ListSelectionHandler__ +#define __javax_swing_plaf_basic_BasicListUI$ListSelectionHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListSelectionEvent; + } + namespace plaf + { + namespace basic + { + class BasicListUI; + class BasicListUI$ListSelectionHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI$ListSelectionHandler : public ::java::lang::Object +{ + +public: + BasicListUI$ListSelectionHandler(::javax::swing::plaf::basic::BasicListUI *); + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicListUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI$ListSelectionHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicListUI$MouseInputHandler.h new file mode 100644 index 00000000000..deb7b583233 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI$MouseInputHandler.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicListUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicListUI; + class BasicListUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI$MouseInputHandler : public ::java::lang::Object +{ + +public: + BasicListUI$MouseInputHandler(::javax::swing::plaf::basic::BasicListUI *); + 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 *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicListUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..8993d1b387b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicListUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicListUI; + class BasicListUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicListUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicListUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicListUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicListUI.h b/libjava/javax/swing/plaf/basic/BasicListUI.h new file mode 100644 index 00000000000..2d0d79d84d0 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicListUI.h @@ -0,0 +1,128 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicListUI__ +#define __javax_swing_plaf_basic_BasicListUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class CellRendererPane; + class JComponent; + class JList; + class ListCellRenderer; + class ListModel; + class ListSelectionModel; + namespace event + { + class ListDataListener; + class ListSelectionListener; + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicListUI; + class BasicListUI$ListAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicListUI : public ::javax::swing::plaf::ListUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual jint getRowHeight(jint); +public: + virtual ::java::awt::Rectangle * getCellBounds(::javax::swing::JList *, jint, jint); +private: + jint getCellHeight(jint); +public: // actually protected + virtual jint convertRowToY(jint); + virtual jint convertYToRow(jint); + virtual void updateLayoutState(); + virtual void maybeUpdateLayoutState(); +public: + BasicListUI(); +public: // actually protected + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual void installListeners(); + virtual void uninstallListeners(); + virtual void installKeyboardActions(); + virtual void uninstallKeyboardActions(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual void paintCell(::java::awt::Graphics *, jint, ::java::awt::Rectangle *, ::javax::swing::ListCellRenderer *, ::javax::swing::ListModel *, ::javax::swing::ListSelectionModel *, jint); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual jint locationToIndex(::javax::swing::JList *, ::java::awt::Point *); + virtual ::java::awt::Point * indexToLocation(::javax::swing::JList *, jint); +public: // actually protected + virtual ::java::awt::event::FocusListener * createFocusListener(); + virtual ::javax::swing::event::ListDataListener * createListDataListener(); + virtual ::javax::swing::event::ListSelectionListener * createListSelectionListener(); + virtual ::javax::swing::event::MouseInputListener * createMouseInputListener(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual void selectNextIndex(); + virtual void selectPreviousIndex(); + static const jint modelChanged = 1; + static const jint selectionModelChanged = 2; + static const jint fontChanged = 4; + static const jint fixedCellWidthChanged = 8; + static const jint fixedCellHeightChanged = 16; + static const jint prototypeCellValueChanged = 32; + static const jint cellRendererChanged = 64; + ::java::awt::event::FocusListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ListUI)))) focusListener; + ::javax::swing::event::ListDataListener * listDataListener; + ::javax::swing::event::ListSelectionListener * listSelectionListener; + ::javax::swing::event::MouseInputListener * mouseInputListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::javax::swing::JList * list; + jint cellHeight; + jint cellWidth; + JArray< jint > * cellHeights; + jint updateLayoutStateNeeded; + ::javax::swing::CellRendererPane * rendererPane; +public: // actually package-private + ::javax::swing::plaf::basic::BasicListUI$ListAction * action; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicListUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$1.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$1.h new file mode 100644 index 00000000000..f9fdb495a01 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$1__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicLookAndFeel$1(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$2.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$2.h new file mode 100644 index 00000000000..fccc19c0343 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$2.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$2__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$2 : public ::java::lang::Object +{ + +public: // actually package-private + BasicLookAndFeel$2(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$3.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$3.h new file mode 100644 index 00000000000..5410fc36638 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$3.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$3__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$3; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$3 : public ::java::lang::Object +{ + +public: // actually package-private + BasicLookAndFeel$3(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$3__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$4.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$4.h new file mode 100644 index 00000000000..6a9c8c77d55 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$4.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$4__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$4; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$4 : public ::java::lang::Object +{ + +public: // actually package-private + BasicLookAndFeel$4(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$4__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$5.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$5.h new file mode 100644 index 00000000000..605519940f3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$5.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$5__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$5__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$5; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$5 : public ::java::lang::Object +{ + +public: // actually package-private + BasicLookAndFeel$5(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$5__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$6.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$6.h new file mode 100644 index 00000000000..71ba0d5a477 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$6.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$6__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$6__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$6; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$6 : public ::java::lang::Object +{ + +public: // actually package-private + BasicLookAndFeel$6(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$6__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$7.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$7.h new file mode 100644 index 00000000000..37d256cd95b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$7.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$7__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$7__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$7; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$7 : public ::java::lang::Object +{ + +public: // actually package-private + BasicLookAndFeel$7(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$7__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$AudioAction.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$AudioAction.h new file mode 100644 index 00000000000..0227ab30e5e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$AudioAction.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$AudioAction__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$AudioAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$AudioAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$AudioAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicLookAndFeel$AudioAction(::javax::swing::plaf::basic::BasicLookAndFeel *, ::java::lang::Object *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::java::lang::Object * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) key; + ::javax::swing::plaf::basic::BasicLookAndFeel * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$AudioAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel$PopupHelper.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$PopupHelper.h new file mode 100644 index 00000000000..03118997e46 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel$PopupHelper.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel$PopupHelper__ +#define __javax_swing_plaf_basic_BasicLookAndFeel$PopupHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class AWTEvent; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$PopupHelper; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel$PopupHelper : public ::java::lang::Object +{ + + BasicLookAndFeel$PopupHelper(::javax::swing::plaf::basic::BasicLookAndFeel *); +public: + virtual void eventDispatched(::java::awt::AWTEvent *); +private: + void mousePressed(::java::awt::event::MouseEvent *); +public: // actually package-private + BasicLookAndFeel$PopupHelper(::javax::swing::plaf::basic::BasicLookAndFeel *, ::javax::swing::plaf::basic::BasicLookAndFeel$PopupHelper *); + ::javax::swing::plaf::basic::BasicLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel$PopupHelper__ diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel.h b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.h new file mode 100644 index 00000000000..13b4adac44a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicLookAndFeel__ +#define __javax_swing_plaf_basic_BasicLookAndFeel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + class ActionMap; + class UIDefaults; + namespace plaf + { + namespace basic + { + class BasicLookAndFeel; + class BasicLookAndFeel$PopupHelper; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicLookAndFeel : public ::javax::swing::LookAndFeel +{ + +public: + BasicLookAndFeel(); + virtual ::javax::swing::UIDefaults * getDefaults(); +public: // actually protected + virtual void initClassDefaults(::javax::swing::UIDefaults *); + virtual void initSystemColorDefaults(::javax::swing::UIDefaults *); + virtual void loadSystemColors(::javax::swing::UIDefaults *, JArray< ::java::lang::String * > *, jboolean); +private: + void loadResourceBundle(::javax::swing::UIDefaults *); +public: // actually protected + virtual void initComponentDefaults(::javax::swing::UIDefaults *); + virtual ::javax::swing::ActionMap * getAudioActionMap(); + virtual ::javax::swing::Action * createAudioAction(::java::lang::Object *); + virtual void playSound(::javax::swing::Action *); +public: + virtual void initialize(); + virtual void uninitialize(); +public: // actually package-private + static const jlong serialVersionUID = -6096995660290287879LL; + static ::java::lang::String * DONT_CANCEL_POPUP; +private: + ::javax::swing::plaf::basic::BasicLookAndFeel$PopupHelper * __attribute__((aligned(__alignof__( ::javax::swing::LookAndFeel)))) popupHelper; + ::javax::swing::ActionMap * audioActionMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicLookAndFeel__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI$ChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$ChangeHandler.h new file mode 100644 index 00000000000..106c4d95b7d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$ChangeHandler.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuBarUI$ChangeHandler__ +#define __javax_swing_plaf_basic_BasicMenuBarUI$ChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicMenuBarUI; + class BasicMenuBarUI$ChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuBarUI$ChangeHandler : public ::java::lang::Object +{ + + BasicMenuBarUI$ChangeHandler(::javax::swing::plaf::basic::BasicMenuBarUI *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + BasicMenuBarUI$ChangeHandler(::javax::swing::plaf::basic::BasicMenuBarUI *, ::javax::swing::plaf::basic::BasicMenuBarUI$ChangeHandler *); + ::javax::swing::plaf::basic::BasicMenuBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuBarUI$ChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI$ContainerHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$ContainerHandler.h new file mode 100644 index 00000000000..fe9e6810ab0 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$ContainerHandler.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuBarUI$ContainerHandler__ +#define __javax_swing_plaf_basic_BasicMenuBarUI$ContainerHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ContainerEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuBarUI; + class BasicMenuBarUI$ContainerHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuBarUI$ContainerHandler : public ::java::lang::Object +{ + + BasicMenuBarUI$ContainerHandler(::javax::swing::plaf::basic::BasicMenuBarUI *); +public: + virtual void componentAdded(::java::awt::event::ContainerEvent *); + virtual void componentRemoved(::java::awt::event::ContainerEvent *); +public: // actually package-private + BasicMenuBarUI$ContainerHandler(::javax::swing::plaf::basic::BasicMenuBarUI *, ::javax::swing::plaf::basic::BasicMenuBarUI$ContainerHandler *); + ::javax::swing::plaf::basic::BasicMenuBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuBarUI$ContainerHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI$FocusAction.h b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$FocusAction.h new file mode 100644 index 00000000000..b1882e190cc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$FocusAction.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuBarUI$FocusAction__ +#define __javax_swing_plaf_basic_BasicMenuBarUI$FocusAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuBarUI$FocusAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuBarUI$FocusAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicMenuBarUI$FocusAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuBarUI$FocusAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$MouseInputHandler.h new file mode 100644 index 00000000000..80b279360c4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$MouseInputHandler.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuBarUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicMenuBarUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuBarUI; + class BasicMenuBarUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuBarUI$MouseInputHandler : public ::java::lang::Object +{ + + BasicMenuBarUI$MouseInputHandler(::javax::swing::plaf::basic::BasicMenuBarUI *); +public: + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::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 mouseEntered(::java::awt::event::MouseEvent *); +public: // actually package-private + BasicMenuBarUI$MouseInputHandler(::javax::swing::plaf::basic::BasicMenuBarUI *, ::javax::swing::plaf::basic::BasicMenuBarUI$MouseInputHandler *); + ::javax::swing::plaf::basic::BasicMenuBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuBarUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..0365962d28a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI$PropertyChangeHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuBarUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicMenuBarUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuBarUI; + class BasicMenuBarUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuBarUI$PropertyChangeHandler : public ::java::lang::Object +{ + + BasicMenuBarUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicMenuBarUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + BasicMenuBarUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicMenuBarUI *, ::javax::swing::plaf::basic::BasicMenuBarUI$PropertyChangeHandler *); + ::javax::swing::plaf::basic::BasicMenuBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuBarUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI.h b/libjava/javax/swing/plaf/basic/BasicMenuBarUI.h new file mode 100644 index 00000000000..27b85de909a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI.h @@ -0,0 +1,93 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuBarUI__ +#define __javax_swing_plaf_basic_BasicMenuBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + namespace event + { + class ContainerListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class JComponent; + class JMenuBar; + namespace event + { + class ChangeListener; + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicMenuBarUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuBarUI : public ::javax::swing::plaf::MenuBarUI +{ + +public: + BasicMenuBarUI(); +public: // actually protected + virtual ::javax::swing::event::ChangeListener * createChangeListener(); + virtual ::java::awt::event::ContainerListener * createContainerListener(); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); + virtual void installKeyboardActions(); +private: + ::javax::swing::ActionMap * getActionMap(); + ::javax::swing::ActionMap * createDefaultActions(); +public: // actually protected + virtual void installListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(); + virtual void uninstallKeyboardActions(); + virtual void uninstallListeners(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + ::javax::swing::event::ChangeListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::MenuBarUI)))) changeListener; + ::java::awt::event::ContainerListener * containerListener; +private: + ::java::beans::PropertyChangeListener * propertyChangeListener; +public: // actually protected + ::javax::swing::JMenuBar * menuBar; +private: + ::javax::swing::event::MouseInputListener * mouseListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuBarUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI$ClickAction.h b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$ClickAction.h new file mode 100644 index 00000000000..ffdf9672aaa --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$ClickAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuItemUI$ClickAction__ +#define __javax_swing_plaf_basic_BasicMenuItemUI$ClickAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuItemUI; + class BasicMenuItemUI$ClickAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuItemUI$ClickAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicMenuItemUI$ClickAction(::javax::swing::plaf::basic::BasicMenuItemUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicMenuItemUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuItemUI$ClickAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI$ItemHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$ItemHandler.h new file mode 100644 index 00000000000..f2746bf14c3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$ItemHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuItemUI$ItemHandler__ +#define __javax_swing_plaf_basic_BasicMenuItemUI$ItemHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ItemEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuItemUI; + class BasicMenuItemUI$ItemHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuItemUI$ItemHandler : public ::java::lang::Object +{ + + BasicMenuItemUI$ItemHandler(::javax::swing::plaf::basic::BasicMenuItemUI *); +public: + virtual void itemStateChanged(::java::awt::event::ItemEvent *); +public: // actually package-private + BasicMenuItemUI$ItemHandler(::javax::swing::plaf::basic::BasicMenuItemUI *, ::javax::swing::plaf::basic::BasicMenuItemUI$ItemHandler *); + ::javax::swing::plaf::basic::BasicMenuItemUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuItemUI$ItemHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuDragMouseHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuDragMouseHandler.h new file mode 100644 index 00000000000..775a4f78ca1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuDragMouseHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuItemUI$MenuDragMouseHandler__ +#define __javax_swing_plaf_basic_BasicMenuItemUI$MenuDragMouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuDragMouseEvent; + } + namespace plaf + { + namespace basic + { + class BasicMenuItemUI; + class BasicMenuItemUI$MenuDragMouseHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuItemUI$MenuDragMouseHandler : public ::java::lang::Object +{ + + BasicMenuItemUI$MenuDragMouseHandler(::javax::swing::plaf::basic::BasicMenuItemUI *); +public: + virtual void menuDragMouseDragged(::javax::swing::event::MenuDragMouseEvent *); + virtual void menuDragMouseEntered(::javax::swing::event::MenuDragMouseEvent *); + virtual void menuDragMouseExited(::javax::swing::event::MenuDragMouseEvent *); + virtual void menuDragMouseReleased(::javax::swing::event::MenuDragMouseEvent *); +public: // actually package-private + BasicMenuItemUI$MenuDragMouseHandler(::javax::swing::plaf::basic::BasicMenuItemUI *, ::javax::swing::plaf::basic::BasicMenuItemUI$MenuDragMouseHandler *); + ::javax::swing::plaf::basic::BasicMenuItemUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuItemUI$MenuDragMouseHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuKeyHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuKeyHandler.h new file mode 100644 index 00000000000..db70c21c631 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MenuKeyHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuItemUI$MenuKeyHandler__ +#define __javax_swing_plaf_basic_BasicMenuItemUI$MenuKeyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuKeyEvent; + } + namespace plaf + { + namespace basic + { + class BasicMenuItemUI; + class BasicMenuItemUI$MenuKeyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuItemUI$MenuKeyHandler : public ::java::lang::Object +{ + + BasicMenuItemUI$MenuKeyHandler(::javax::swing::plaf::basic::BasicMenuItemUI *); +public: + virtual void menuKeyPressed(::javax::swing::event::MenuKeyEvent *); + virtual void menuKeyReleased(::javax::swing::event::MenuKeyEvent *); + virtual void menuKeyTyped(::javax::swing::event::MenuKeyEvent *); +public: // actually package-private + BasicMenuItemUI$MenuKeyHandler(::javax::swing::plaf::basic::BasicMenuItemUI *, ::javax::swing::plaf::basic::BasicMenuItemUI$MenuKeyHandler *); + ::javax::swing::plaf::basic::BasicMenuItemUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuItemUI$MenuKeyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler.h new file mode 100644 index 00000000000..6f735f39320 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$MouseInputHandler.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuItemUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicMenuItemUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuItemUI; + class BasicMenuItemUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuItemUI$MouseInputHandler : public ::java::lang::Object +{ + +public: // actually protected + BasicMenuItemUI$MouseInputHandler(::javax::swing::plaf::basic::BasicMenuItemUI *); +public: + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicMenuItemUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuItemUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..203bd657685 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI$PropertyChangeHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuItemUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicMenuItemUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuItemUI; + class BasicMenuItemUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuItemUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: // actually package-private + BasicMenuItemUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicMenuItemUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicMenuItemUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuItemUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI.h b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.h new file mode 100644 index 00000000000..c602c23106e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.h @@ -0,0 +1,132 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuItemUI__ +#define __javax_swing_plaf_basic_BasicMenuItemUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Font; + class Graphics; + class Rectangle; + namespace event + { + class ItemListener; + } + } + } + namespace javax + { + namespace swing + { + class Icon; + class JComponent; + class JMenuItem; + class MenuElement; + class MenuSelectionManager; + namespace event + { + class MenuDragMouseListener; + class MenuKeyListener; + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicMenuItemUI; + class BasicMenuItemUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuItemUI : public ::javax::swing::plaf::MenuItemUI +{ + +public: + BasicMenuItemUI(); +public: // actually protected + virtual ::javax::swing::event::MenuDragMouseListener * createMenuDragMouseListener(::javax::swing::JComponent *); + virtual ::javax::swing::event::MenuKeyListener * createMenuKeyListener(::javax::swing::JComponent *); + virtual ::javax::swing::event::MouseInputListener * createMouseInputListener(::javax::swing::JComponent *); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual void doClick(::javax::swing::MenuSelectionManager *); +public: + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::MenuElement * > * getPath(); +public: // actually protected + virtual ::java::awt::Dimension * getPreferredMenuItemSize(::javax::swing::JComponent *, ::javax::swing::Icon *, ::javax::swing::Icon *, jint); +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); + virtual void installComponents(::javax::swing::JMenuItem *); + virtual void installDefaults(); + virtual void installKeyboardActions(); + virtual void installListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintBackground(::java::awt::Graphics *, ::javax::swing::JMenuItem *, ::java::awt::Color *); + virtual void paintMenuItem(::java::awt::Graphics *, ::javax::swing::JComponent *, ::javax::swing::Icon *, ::javax::swing::Icon *, ::java::awt::Color *, ::java::awt::Color *, jint); + virtual void paintText(::java::awt::Graphics *, ::javax::swing::JMenuItem *, ::java::awt::Rectangle *, ::java::lang::String *); + virtual void uninstallComponents(::javax::swing::JMenuItem *); + virtual void uninstallDefaults(); + virtual void uninstallKeyboardActions(); + virtual void uninstallListeners(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); +private: + ::java::lang::String * getAcceleratorString(::javax::swing::JMenuItem *); + void resetRectangles(::javax::swing::JMenuItem *); + void layoutMenuItem(::javax::swing::JMenuItem *, ::java::lang::String *); +public: // actually protected + ::java::awt::Font * __attribute__((aligned(__alignof__( ::javax::swing::plaf::MenuItemUI)))) acceleratorFont; + ::java::awt::Color * acceleratorForeground; + ::java::awt::Color * acceleratorSelectionForeground; + ::javax::swing::Icon * arrowIcon; + ::javax::swing::Icon * checkIcon; + jint defaultTextIconGap; + ::java::awt::Color * disabledForeground; + ::javax::swing::event::MenuDragMouseListener * menuDragMouseListener; + ::javax::swing::JMenuItem * menuItem; + ::javax::swing::event::MenuKeyListener * menuKeyListener; + ::javax::swing::event::MouseInputListener * mouseInputListener; + jboolean oldBorderPainted; + ::java::awt::Color * selectionBackground; + ::java::awt::Color * selectionForeground; +private: + ::java::lang::String * acceleratorDelimiter; + ::java::awt::event::ItemListener * itemListener; + ::javax::swing::plaf::basic::BasicMenuItemUI$PropertyChangeHandler * propertyChangeListener; + ::java::awt::Rectangle * viewRect; + ::java::awt::Rectangle * textRect; + ::java::awt::Rectangle * accelRect; + ::java::awt::Rectangle * iconRect; + ::java::awt::Rectangle * arrowIconRect; + ::java::awt::Rectangle * checkIconRect; + ::java::awt::Rectangle * cachedRect; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuItemUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI$ChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuUI$ChangeHandler.h new file mode 100644 index 00000000000..44eeca1219c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuUI$ChangeHandler.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuUI$ChangeHandler__ +#define __javax_swing_plaf_basic_BasicMenuUI$ChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JMenu; + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicMenuUI; + class BasicMenuUI$ChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuUI$ChangeHandler : public ::java::lang::Object +{ + +public: + BasicMenuUI$ChangeHandler(::javax::swing::plaf::basic::BasicMenuUI *, ::javax::swing::JMenu *, ::javax::swing::plaf::basic::BasicMenuUI *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) isSelected; + ::javax::swing::JMenu * menu; + ::javax::swing::plaf::basic::BasicMenuUI * ui; + ::java::awt::Component * wasFocused; +public: // actually package-private + ::javax::swing::plaf::basic::BasicMenuUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuUI$ChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuDragMouseHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuDragMouseHandler.h new file mode 100644 index 00000000000..39cc8f9f8c6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuDragMouseHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuUI$MenuDragMouseHandler__ +#define __javax_swing_plaf_basic_BasicMenuUI$MenuDragMouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuDragMouseEvent; + } + namespace plaf + { + namespace basic + { + class BasicMenuUI; + class BasicMenuUI$MenuDragMouseHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuUI$MenuDragMouseHandler : public ::java::lang::Object +{ + + BasicMenuUI$MenuDragMouseHandler(::javax::swing::plaf::basic::BasicMenuUI *); +public: + virtual void menuDragMouseDragged(::javax::swing::event::MenuDragMouseEvent *); + virtual void menuDragMouseEntered(::javax::swing::event::MenuDragMouseEvent *); + virtual void menuDragMouseExited(::javax::swing::event::MenuDragMouseEvent *); + virtual void menuDragMouseReleased(::javax::swing::event::MenuDragMouseEvent *); +public: // actually package-private + BasicMenuUI$MenuDragMouseHandler(::javax::swing::plaf::basic::BasicMenuUI *, ::javax::swing::plaf::basic::BasicMenuUI$MenuDragMouseHandler *); + ::javax::swing::plaf::basic::BasicMenuUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuUI$MenuDragMouseHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuHandler.h new file mode 100644 index 00000000000..eb519164dae --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuUI$MenuHandler__ +#define __javax_swing_plaf_basic_BasicMenuUI$MenuHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuEvent; + } + namespace plaf + { + namespace basic + { + class BasicMenuUI; + class BasicMenuUI$MenuHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuUI$MenuHandler : public ::java::lang::Object +{ + + BasicMenuUI$MenuHandler(::javax::swing::plaf::basic::BasicMenuUI *); +public: + virtual void menuCanceled(::javax::swing::event::MenuEvent *); + virtual void menuDeselected(::javax::swing::event::MenuEvent *); + virtual void menuSelected(::javax::swing::event::MenuEvent *); +public: // actually package-private + BasicMenuUI$MenuHandler(::javax::swing::plaf::basic::BasicMenuUI *, ::javax::swing::plaf::basic::BasicMenuUI$MenuHandler *); + ::javax::swing::plaf::basic::BasicMenuUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuUI$MenuHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuKeyHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuKeyHandler.h new file mode 100644 index 00000000000..be2f9ca155d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuUI$MenuKeyHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuUI$MenuKeyHandler__ +#define __javax_swing_plaf_basic_BasicMenuUI$MenuKeyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class MenuKeyEvent; + } + namespace plaf + { + namespace basic + { + class BasicMenuUI; + class BasicMenuUI$MenuKeyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuUI$MenuKeyHandler : public ::java::lang::Object +{ + + BasicMenuUI$MenuKeyHandler(::javax::swing::plaf::basic::BasicMenuUI *); +public: + virtual void menuKeyPressed(::javax::swing::event::MenuKeyEvent *); + virtual void menuKeyReleased(::javax::swing::event::MenuKeyEvent *); + virtual void menuKeyTyped(::javax::swing::event::MenuKeyEvent *); +public: // actually package-private + BasicMenuUI$MenuKeyHandler(::javax::swing::plaf::basic::BasicMenuUI *, ::javax::swing::plaf::basic::BasicMenuUI$MenuKeyHandler *); + ::javax::swing::plaf::basic::BasicMenuUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuUI$MenuKeyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler.h new file mode 100644 index 00000000000..c5e1e4064dd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuUI$MouseInputHandler.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicMenuUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuUI; + class BasicMenuUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuUI$MouseInputHandler : public ::java::lang::Object +{ + +public: // actually protected + BasicMenuUI$MouseInputHandler(::javax::swing::plaf::basic::BasicMenuUI *); +public: + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); +private: + jboolean popupVisible(); +public: + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicMenuUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI$SelectMenuAction.h b/libjava/javax/swing/plaf/basic/BasicMenuUI$SelectMenuAction.h new file mode 100644 index 00000000000..97815775285 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuUI$SelectMenuAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuUI$SelectMenuAction__ +#define __javax_swing_plaf_basic_BasicMenuUI$SelectMenuAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicMenuUI; + class BasicMenuUI$SelectMenuAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuUI$SelectMenuAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicMenuUI$SelectMenuAction(::javax::swing::plaf::basic::BasicMenuUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicMenuUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuUI$SelectMenuAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI.h b/libjava/javax/swing/plaf/basic/BasicMenuUI.h new file mode 100644 index 00000000000..d3ae59e3592 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicMenuUI.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicMenuUI__ +#define __javax_swing_plaf_basic_BasicMenuUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JMenu; + namespace event + { + class ChangeListener; + class MenuDragMouseListener; + class MenuKeyListener; + class MenuListener; + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicMenuUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicMenuUI : public ::javax::swing::plaf::basic::BasicMenuItemUI +{ + +public: + BasicMenuUI(); +public: // actually protected + virtual ::javax::swing::event::ChangeListener * createChangeListener(::javax::swing::JComponent *); + virtual ::javax::swing::event::MenuDragMouseListener * createMenuDragMouseListener(::javax::swing::JComponent *); + virtual ::javax::swing::event::MenuKeyListener * createMenuKeyListener(::javax::swing::JComponent *); + virtual ::javax::swing::event::MenuListener * createMenuListener(::javax::swing::JComponent *); + virtual ::javax::swing::event::MouseInputListener * createMouseInputListener(::javax::swing::JComponent *); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(::javax::swing::JComponent *); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); + virtual void installDefaults(); + virtual void installKeyboardActions(); + virtual void installListeners(); + virtual void setupPostTimer(::javax::swing::JMenu *); + virtual void uninstallDefaults(); + virtual void uninstallKeyboardActions(); + virtual void uninstallListeners(); + ::javax::swing::event::ChangeListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicMenuItemUI)))) changeListener; + ::javax::swing::event::MenuListener * menuListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicMenuUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$1.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$1.h new file mode 100644 index 00000000000..a79d5d0abdd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$1.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$1__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$1 : public ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon +{ + +public: // actually package-private + BasicOptionPaneUI$1(); +public: + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$2.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$2.h new file mode 100644 index 00000000000..3a5048f2575 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$2.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$2__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$2 : public ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon +{ + +public: // actually package-private + BasicOptionPaneUI$2(); +public: + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$3.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$3.h new file mode 100644 index 00000000000..b93960b0de3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$3.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$3__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI$3; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$3 : public ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon +{ + +public: // actually package-private + BasicOptionPaneUI$3(); +public: + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$3__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$4.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$4.h new file mode 100644 index 00000000000..952df65bb7d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$4.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$4__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI$4; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$4 : public ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon +{ + +public: // actually package-private + BasicOptionPaneUI$4(); +public: + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$4__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener.h new file mode 100644 index 00000000000..575b2b79c74 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonActionListener.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$ButtonActionListener__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$ButtonActionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI; + class BasicOptionPaneUI$ButtonActionListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$ButtonActionListener : public ::java::lang::Object +{ + +public: + BasicOptionPaneUI$ButtonActionListener(::javax::swing::plaf::basic::BasicOptionPaneUI *, jint); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) buttonIndex; +public: // actually package-private + ::javax::swing::plaf::basic::BasicOptionPaneUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$ButtonActionListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout.h new file mode 100644 index 00000000000..06671ddd4fa --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$ButtonAreaLayout.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$ButtonAreaLayout__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$ButtonAreaLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI$ButtonAreaLayout; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$ButtonAreaLayout : public ::java::lang::Object +{ + +public: + BasicOptionPaneUI$ButtonAreaLayout(jboolean, jint); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual jboolean getCentersChildren(); + virtual jint getPadding(); + virtual jboolean getSyncAllWidths(); + virtual void layoutContainer(::java::awt::Container *); +private: + jint buttonRowLength(::java::awt::Container *); +public: + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual void removeLayoutComponent(::java::awt::Component *); + virtual void setCentersChildren(jboolean); + virtual void setPadding(jint); + virtual void setSyncAllWidths(jboolean); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) centersChildren; + jint padding; + jboolean syncAllWidths; +private: + jint widthOfWidestButton; + jint tallestButton; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$ButtonAreaLayout__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.h new file mode 100644 index 00000000000..a820f3cbe25 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$MessageIcon.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$MessageIcon__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$MessageIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI$MessageIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon : public ::java::lang::Object +{ + + BasicOptionPaneUI$MessageIcon(); +public: + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually package-private + BasicOptionPaneUI$MessageIcon(::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$MessageIcon__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$OptionPaneCloseAction.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$OptionPaneCloseAction.h new file mode 100644 index 00000000000..81dcc99f3e9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$OptionPaneCloseAction.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$OptionPaneCloseAction__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$OptionPaneCloseAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI$OptionPaneCloseAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$OptionPaneCloseAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicOptionPaneUI$OptionPaneCloseAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$OptionPaneCloseAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..02b236c47a6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicOptionPaneUI; + class BasicOptionPaneUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicOptionPaneUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicOptionPaneUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicOptionPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.h b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.h new file mode 100644 index 00000000000..50aa3b4ee65 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.h @@ -0,0 +1,148 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicOptionPaneUI__ +#define __javax_swing_plaf_basic_BasicOptionPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class GridBagConstraints; + class LayoutManager; + namespace event + { + class ActionListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class Icon; + class JComponent; + class JLabel; + class JOptionPane; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicOptionPaneUI; + class BasicOptionPaneUI$MessageIcon; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicOptionPaneUI : public ::javax::swing::plaf::OptionPaneUI +{ + +public: + BasicOptionPaneUI(); +public: // actually protected + virtual void addButtonComponents(::java::awt::Container *, JArray< ::java::lang::Object * > *, jint); + virtual void addIcon(::java::awt::Container *); +private: + static ::java::awt::GridBagConstraints * createConstraints(); +public: // actually protected + virtual void addMessageComponents(::java::awt::Container *, ::java::awt::GridBagConstraints *, ::java::lang::Object *, jint, jboolean); + virtual void burstStringInto(::java::awt::Container *, ::java::lang::String *, jint); +public: + virtual jboolean containsCustomComponents(::javax::swing::JOptionPane *); +public: // actually protected + virtual ::java::awt::event::ActionListener * createButtonActionListener(jint); + virtual ::java::awt::Container * createButtonArea(); + virtual ::java::awt::LayoutManager * createLayoutManager(); + virtual ::java::awt::Container * createMessageArea(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::java::awt::Container * createSeparator(); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual JArray< ::java::lang::Object * > * getButtons(); + virtual ::javax::swing::Icon * getIcon(); + virtual ::javax::swing::Icon * getIconForType(jint); + virtual jint getInitialValueIndex(); + virtual jint getMaxCharactersPerLineCount(); +public: + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::Object * getMessage(); +public: + virtual ::java::awt::Dimension * getMinimumOptionPaneSize(); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual jboolean getSizeButtonsToSameWidth(); + virtual void installComponents(); + virtual void installDefaults(); + virtual void installKeyboardActions(); +private: + ::javax::swing::ActionMap * getActionMap(); + ::javax::swing::ActionMap * createDefaultActions(); +public: // actually protected + virtual void installListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void resetInputValue(); +public: + virtual void selectInitialValue(::javax::swing::JOptionPane *); +public: // actually package-private + virtual void resetSelectedValue(); +public: // actually protected + virtual void uninstallComponents(); + virtual void uninstallDefaults(); + virtual void uninstallKeyboardActions(); + virtual void uninstallListeners(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +private: + void configureLabel(::javax::swing::JLabel *); +public: + static const jint MinimumWidth = 262; + static const jint MinimumHeight = 90; +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::swing::plaf::OptionPaneUI)))) hasCustomComponents; + ::java::awt::Component * initialFocusComponent; + ::javax::swing::JComponent * inputComponent; + ::java::awt::Dimension * minimumSize; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::javax::swing::JOptionPane * optionPane; +private: + static const jint ICON_SIZE = 36; + static ::java::lang::String * OK_STRING; + static ::java::lang::String * YES_STRING; + static ::java::lang::String * NO_STRING; + static ::java::lang::String * CANCEL_STRING; +public: // actually package-private + ::java::awt::Container * messageAreaContainer; + ::java::awt::Container * buttonContainer; +private: + static ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon * errorIcon; + static ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon * infoIcon; + static ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon * warningIcon; + static ::javax::swing::plaf::basic::BasicOptionPaneUI$MessageIcon * questionIcon; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicOptionPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicPanelUI.h b/libjava/javax/swing/plaf/basic/BasicPanelUI.h new file mode 100644 index 00000000000..5fcf6fe892a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPanelUI.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPanelUI__ +#define __javax_swing_plaf_basic_BasicPanelUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + class JPanel; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicPanelUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicPanelUI : public ::javax::swing::plaf::PanelUI +{ + +public: + BasicPanelUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(::javax::swing::JPanel *); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(::javax::swing::JPanel *); +public: // actually package-private + static ::javax::swing::plaf::basic::BasicPanelUI * sharedUI; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPanelUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicPasswordFieldUI.h b/libjava/javax/swing/plaf/basic/BasicPasswordFieldUI.h new file mode 100644 index 00000000000..fcbb8732fa3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPasswordFieldUI.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPasswordFieldUI__ +#define __javax_swing_plaf_basic_BasicPasswordFieldUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicPasswordFieldUI; + } + } + namespace text + { + class Element; + class View; + } + } + } +} + +class javax::swing::plaf::basic::BasicPasswordFieldUI : public ::javax::swing::plaf::basic::BasicTextFieldUI +{ + +public: + BasicPasswordFieldUI(); + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPasswordFieldUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.h b/libjava/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.h new file mode 100644 index 00000000000..d5082f9d18e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPopupMenuSeparatorUI__ +#define __javax_swing_plaf_basic_BasicPopupMenuSeparatorUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicPopupMenuSeparatorUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicPopupMenuSeparatorUI : public ::javax::swing::plaf::basic::BasicSeparatorUI +{ + +public: + BasicPopupMenuSeparatorUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPopupMenuSeparatorUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$KeyboardHelper.h b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$KeyboardHelper.h new file mode 100644 index 00000000000..5fb04078aea --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$KeyboardHelper.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPopupMenuUI$KeyboardHelper__ +#define __javax_swing_plaf_basic_BasicPopupMenuUI$KeyboardHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JPopupMenu; + class JRootPane; + class MenuElement; + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicPopupMenuUI; + class BasicPopupMenuUI$KeyboardHelper; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicPopupMenuUI$KeyboardHelper : public ::java::lang::Object +{ + + BasicPopupMenuUI$KeyboardHelper(::javax::swing::plaf::basic::BasicPopupMenuUI *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +private: + ::javax::swing::JPopupMenu * getActivePopup(JArray< ::javax::swing::MenuElement * > *); + jboolean invokerEquals(::javax::swing::MenuElement *, ::javax::swing::MenuElement *); +public: // actually package-private + BasicPopupMenuUI$KeyboardHelper(::javax::swing::plaf::basic::BasicPopupMenuUI *, ::javax::swing::plaf::basic::BasicPopupMenuUI$KeyboardHelper *); +private: + JArray< ::javax::swing::MenuElement * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastSelectedPath; + ::java::awt::Component * lastFocused; + ::javax::swing::JRootPane * invokerRootPane; +public: // actually package-private + ::javax::swing::plaf::basic::BasicPopupMenuUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPopupMenuUI$KeyboardHelper__ diff --git a/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$NavigateAction.h b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$NavigateAction.h new file mode 100644 index 00000000000..03fb5accb8d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$NavigateAction.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPopupMenuUI$NavigateAction__ +#define __javax_swing_plaf_basic_BasicPopupMenuUI$NavigateAction__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JPopupMenu; + class MenuElement; + namespace plaf + { + namespace basic + { + class BasicPopupMenuUI$NavigateAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicPopupMenuUI$NavigateAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicPopupMenuUI$NavigateAction(::java::lang::String *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + void navigateNextPrevious(jboolean); + ::javax::swing::MenuElement * findEnabledChild(JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuElement *, jboolean); + ::javax::swing::MenuElement * findEnabledChild(JArray< ::javax::swing::MenuElement * > *, jint, jboolean); + ::javax::swing::MenuElement * findNextEnabledChild(JArray< ::javax::swing::MenuElement * > *, jint, jint); + ::javax::swing::MenuElement * findPreviousEnabledChild(JArray< ::javax::swing::MenuElement * > *, jint, jint); + void navigateParentChild(jboolean); + void cancel(); + ::javax::swing::JPopupMenu * getLastPopup(); + void doReturn(); +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPopupMenuUI$NavigateAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$PopupMenuHandler.h b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$PopupMenuHandler.h new file mode 100644 index 00000000000..3b8b580abb3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$PopupMenuHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPopupMenuUI$PopupMenuHandler__ +#define __javax_swing_plaf_basic_BasicPopupMenuUI$PopupMenuHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class PopupMenuEvent; + } + namespace plaf + { + namespace basic + { + class BasicPopupMenuUI; + class BasicPopupMenuUI$PopupMenuHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicPopupMenuUI$PopupMenuHandler : public ::java::lang::Object +{ + + BasicPopupMenuUI$PopupMenuHandler(::javax::swing::plaf::basic::BasicPopupMenuUI *); +public: + virtual void popupMenuCanceled(::javax::swing::event::PopupMenuEvent *); + virtual void popupMenuWillBecomeInvisible(::javax::swing::event::PopupMenuEvent *); + virtual void popupMenuWillBecomeVisible(::javax::swing::event::PopupMenuEvent *); +public: // actually package-private + BasicPopupMenuUI$PopupMenuHandler(::javax::swing::plaf::basic::BasicPopupMenuUI *, ::javax::swing::plaf::basic::BasicPopupMenuUI$PopupMenuHandler *); + ::javax::swing::plaf::basic::BasicPopupMenuUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPopupMenuUI$PopupMenuHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$TopWindowListener.h b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$TopWindowListener.h new file mode 100644 index 00000000000..e88a2f884ff --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI$TopWindowListener.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPopupMenuUI$TopWindowListener__ +#define __javax_swing_plaf_basic_BasicPopupMenuUI$TopWindowListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ComponentEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicPopupMenuUI; + class BasicPopupMenuUI$TopWindowListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicPopupMenuUI$TopWindowListener : public ::java::lang::Object +{ + + BasicPopupMenuUI$TopWindowListener(::javax::swing::plaf::basic::BasicPopupMenuUI *); +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 *); +public: // actually package-private + BasicPopupMenuUI$TopWindowListener(::javax::swing::plaf::basic::BasicPopupMenuUI *, ::javax::swing::plaf::basic::BasicPopupMenuUI$TopWindowListener *); + ::javax::swing::plaf::basic::BasicPopupMenuUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPopupMenuUI$TopWindowListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicPopupMenuUI.h b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI.h new file mode 100644 index 00000000000..95bf37a9373 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicPopupMenuUI.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicPopupMenuUI__ +#define __javax_swing_plaf_basic_BasicPopupMenuUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class JComponent; + class JPopupMenu; + namespace event + { + class PopupMenuListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicPopupMenuUI; + class BasicPopupMenuUI$KeyboardHelper; + class BasicPopupMenuUI$TopWindowListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicPopupMenuUI : public ::javax::swing::plaf::PopupMenuUI +{ + +public: + BasicPopupMenuUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void installDefaults(); +public: // actually protected + virtual void installListeners(); + virtual void installKeyboardActions(); +public: // actually package-private + virtual void installKeyboardActionsImpl(); +private: + ::javax::swing::ActionMap * getActionMap(); + ::javax::swing::ActionMap * createDefaultActions(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(); + virtual void uninstallListeners(); + virtual void uninstallKeyboardActions(); +public: // actually package-private + virtual void uninstallKeyboardActionsImpl(); +public: + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jboolean isPopupTrigger(::java::awt::event::MouseEvent *); +public: // actually protected + ::javax::swing::JPopupMenu * __attribute__((aligned(__alignof__( ::javax::swing::plaf::PopupMenuUI)))) popupMenu; +private: + ::javax::swing::event::PopupMenuListener * popupMenuListener; +public: // actually package-private + ::javax::swing::plaf::basic::BasicPopupMenuUI$TopWindowListener * topWindowListener; +private: + static jint numPopups; + static ::javax::swing::plaf::basic::BasicPopupMenuUI$KeyboardHelper * keyboardHelper; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicPopupMenuUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI$AncestorHandler.h b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$AncestorHandler.h new file mode 100644 index 00000000000..54768d3a388 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$AncestorHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicProgressBarUI$AncestorHandler__ +#define __javax_swing_plaf_basic_BasicProgressBarUI$AncestorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class AncestorEvent; + } + namespace plaf + { + namespace basic + { + class BasicProgressBarUI; + class BasicProgressBarUI$AncestorHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicProgressBarUI$AncestorHandler : public ::java::lang::Object +{ + + BasicProgressBarUI$AncestorHandler(::javax::swing::plaf::basic::BasicProgressBarUI *); +public: + virtual void ancestorAdded(::javax::swing::event::AncestorEvent *); + virtual void ancestorRemoved(::javax::swing::event::AncestorEvent *); + virtual void ancestorMoved(::javax::swing::event::AncestorEvent *); +public: // actually package-private + BasicProgressBarUI$AncestorHandler(::javax::swing::plaf::basic::BasicProgressBarUI *, ::javax::swing::plaf::basic::BasicProgressBarUI$AncestorHandler *); + ::javax::swing::plaf::basic::BasicProgressBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicProgressBarUI$AncestorHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI$Animator.h b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$Animator.h new file mode 100644 index 00000000000..31c00bc61ee --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$Animator.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicProgressBarUI$Animator__ +#define __javax_swing_plaf_basic_BasicProgressBarUI$Animator__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicProgressBarUI; + class BasicProgressBarUI$Animator; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicProgressBarUI$Animator : public ::java::lang::Object +{ + + BasicProgressBarUI$Animator(::javax::swing::plaf::basic::BasicProgressBarUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + BasicProgressBarUI$Animator(::javax::swing::plaf::basic::BasicProgressBarUI *, ::javax::swing::plaf::basic::BasicProgressBarUI$Animator *); + ::javax::swing::plaf::basic::BasicProgressBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicProgressBarUI$Animator__ diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler.h new file mode 100644 index 00000000000..e8296621a2d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$ChangeHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicProgressBarUI$ChangeHandler__ +#define __javax_swing_plaf_basic_BasicProgressBarUI$ChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicProgressBarUI; + class BasicProgressBarUI$ChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicProgressBarUI$ChangeHandler : public ::java::lang::Object +{ + +public: + BasicProgressBarUI$ChangeHandler(::javax::swing::plaf::basic::BasicProgressBarUI *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicProgressBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicProgressBarUI$ChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI$ComponentHandler.h b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$ComponentHandler.h new file mode 100644 index 00000000000..2f20e0f2490 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$ComponentHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicProgressBarUI$ComponentHandler__ +#define __javax_swing_plaf_basic_BasicProgressBarUI$ComponentHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ComponentEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicProgressBarUI; + class BasicProgressBarUI$ComponentHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicProgressBarUI$ComponentHandler : public ::java::awt::event::ComponentAdapter +{ + + BasicProgressBarUI$ComponentHandler(::javax::swing::plaf::basic::BasicProgressBarUI *); +public: + virtual void componentResized(::java::awt::event::ComponentEvent *); +public: // actually package-private + BasicProgressBarUI$ComponentHandler(::javax::swing::plaf::basic::BasicProgressBarUI *, ::javax::swing::plaf::basic::BasicProgressBarUI$ComponentHandler *); + ::javax::swing::plaf::basic::BasicProgressBarUI * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicProgressBarUI$ComponentHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..9d0d136fcaf --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI$PropertyChangeHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicProgressBarUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicProgressBarUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicProgressBarUI; + class BasicProgressBarUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicProgressBarUI$PropertyChangeHandler : public ::java::lang::Object +{ + + BasicProgressBarUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicProgressBarUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + BasicProgressBarUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicProgressBarUI *, ::javax::swing::plaf::basic::BasicProgressBarUI$PropertyChangeHandler *); + ::javax::swing::plaf::basic::BasicProgressBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicProgressBarUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI.h b/libjava/javax/swing/plaf/basic/BasicProgressBarUI.h new file mode 100644 index 00000000000..85263b9378e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI.h @@ -0,0 +1,123 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicProgressBarUI__ +#define __javax_swing_plaf_basic_BasicProgressBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + class Insets; + class Point; + class Rectangle; + namespace event + { + class ComponentListener; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JProgressBar; + class Timer; + namespace event + { + class AncestorListener; + class ChangeListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicProgressBarUI; + class BasicProgressBarUI$Animator; + class BasicProgressBarUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicProgressBarUI : public ::javax::swing::plaf::ProgressBarUI +{ + +public: + BasicProgressBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual jint getAmountFull(::java::awt::Insets *, jint, jint); + virtual jint getAnimationIndex(); + virtual ::java::awt::Rectangle * getBox(::java::awt::Rectangle *); + virtual jint getCellLength(); + virtual jint getCellSpacing(); +public: + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::Dimension * getPreferredInnerHorizontal(); + virtual ::java::awt::Dimension * getPreferredInnerVertical(); +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::Color * getSelectionBackground(); + virtual ::java::awt::Color * getSelectionForeground(); + virtual ::java::awt::Point * getStringPlacement(::java::awt::Graphics *, ::java::lang::String *, jint, jint, jint, jint); + virtual void incrementAnimationIndex(); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintDeterminate(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paintIndeterminate(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paintString(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Insets *); + virtual void setAnimationIndex(jint); + virtual void setCellLength(jint); + virtual void setCellSpacing(jint); + virtual void startAnimationTimer(); + virtual void stopAnimationTimer(); + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual void installListeners(); + virtual void uninstallListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + ::java::awt::Rectangle * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ProgressBarUI)))) boxRect; +private: + ::javax::swing::Timer * animationTimer; + jint animationIndex; + jint numFrames; + ::javax::swing::plaf::basic::BasicProgressBarUI$Animator * animation; + ::javax::swing::plaf::basic::BasicProgressBarUI$PropertyChangeHandler * propertyListener; +public: // actually protected + ::javax::swing::event::ChangeListener * changeListener; + ::javax::swing::JProgressBar * progressBar; +public: // actually package-private + jdouble boxDependent; + jint boxIndependent; + jdouble incr; +private: + jint cellLength; + jint cellSpacing; + ::java::awt::Color * selectionBackground; + ::java::awt::Color * selectionForeground; + ::javax::swing::event::AncestorListener * ancestorListener; + ::java::awt::event::ComponentListener * componentListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicProgressBarUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.h b/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.h new file mode 100644 index 00000000000..5439b6722fe --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicRadioButtonMenuItemUI__ +#define __javax_swing_plaf_basic_BasicRadioButtonMenuItemUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JMenuItem; + class MenuElement; + class MenuSelectionManager; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicRadioButtonMenuItemUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicRadioButtonMenuItemUI : public ::javax::swing::plaf::basic::BasicMenuItemUI +{ + +public: + BasicRadioButtonMenuItemUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + virtual void processMouseEvent(::javax::swing::JMenuItem *, ::java::awt::event::MouseEvent *, JArray< ::javax::swing::MenuElement * > *, ::javax::swing::MenuSelectionManager *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicRadioButtonMenuItemUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.h b/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.h new file mode 100644 index 00000000000..62b3a3c2823 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicRadioButtonUI__ +#define __javax_swing_plaf_basic_BasicRadioButtonUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class Icon; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicRadioButtonUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicRadioButtonUI : public ::javax::swing::plaf::basic::BasicToggleButtonUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + BasicRadioButtonUI(); +public: // actually protected + virtual void installDefaults(::javax::swing::AbstractButton *); + virtual ::java::lang::String * getPropertyPrefix(); +public: + virtual ::javax::swing::Icon * getDefaultIcon(); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual void paintFocus(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Dimension *); + ::javax::swing::Icon * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicToggleButtonUI)))) icon; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicRadioButtonUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultPressAction.h b/libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultPressAction.h new file mode 100644 index 00000000000..040c915022d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultPressAction.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicRootPaneUI$DefaultPressAction__ +#define __javax_swing_plaf_basic_BasicRootPaneUI$DefaultPressAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JRootPane; + namespace plaf + { + namespace basic + { + class BasicRootPaneUI; + class BasicRootPaneUI$DefaultPressAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicRootPaneUI$DefaultPressAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicRootPaneUI$DefaultPressAction(::javax::swing::plaf::basic::BasicRootPaneUI *, ::javax::swing::JRootPane *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + ::javax::swing::JRootPane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) rootPane; +public: // actually package-private + ::javax::swing::plaf::basic::BasicRootPaneUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicRootPaneUI$DefaultPressAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultReleaseAction.h b/libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultReleaseAction.h new file mode 100644 index 00000000000..1728960926d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicRootPaneUI$DefaultReleaseAction.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicRootPaneUI$DefaultReleaseAction__ +#define __javax_swing_plaf_basic_BasicRootPaneUI$DefaultReleaseAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JRootPane; + namespace plaf + { + namespace basic + { + class BasicRootPaneUI; + class BasicRootPaneUI$DefaultReleaseAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicRootPaneUI$DefaultReleaseAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicRootPaneUI$DefaultReleaseAction(::javax::swing::plaf::basic::BasicRootPaneUI *, ::javax::swing::JRootPane *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + ::javax::swing::JRootPane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) rootPane; +public: // actually package-private + ::javax::swing::plaf::basic::BasicRootPaneUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicRootPaneUI$DefaultReleaseAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicRootPaneUI.h b/libjava/javax/swing/plaf/basic/BasicRootPaneUI.h new file mode 100644 index 00000000000..cf222b76fb6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicRootPaneUI.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicRootPaneUI__ +#define __javax_swing_plaf_basic_BasicRootPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JRootPane; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicRootPaneUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicRootPaneUI : public ::javax::swing::plaf::RootPaneUI +{ + +public: + BasicRootPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(::javax::swing::JRootPane *); + virtual void installComponents(::javax::swing::JRootPane *); + virtual void installListeners(::javax::swing::JRootPane *); + virtual void installKeyboardActions(::javax::swing::JRootPane *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(::javax::swing::JRootPane *); + virtual void uninstallComponents(::javax::swing::JRootPane *); + virtual void uninstallListeners(::javax::swing::JRootPane *); + virtual void uninstallKeyboardActions(::javax::swing::JRootPane *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicRootPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$1.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$1.h new file mode 100644 index 00000000000..740dea9e590 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$1__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$1 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollBarUI$1(::javax::swing::plaf::basic::BasicScrollBarUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$2.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$2.h new file mode 100644 index 00000000000..1eeb4071191 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$2.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$2__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$2 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollBarUI$2(::javax::swing::plaf::basic::BasicScrollBarUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$3.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$3.h new file mode 100644 index 00000000000..1ae61baf033 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$3.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$3__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$3; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$3 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollBarUI$3(::javax::swing::plaf::basic::BasicScrollBarUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$3__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$4.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$4.h new file mode 100644 index 00000000000..e8c2e5c5ea6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$4.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$4__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$4; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$4 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollBarUI$4(::javax::swing::plaf::basic::BasicScrollBarUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$4__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$5.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$5.h new file mode 100644 index 00000000000..49c987f31e9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$5.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$5__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$5__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$5; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$5 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollBarUI$5(::javax::swing::plaf::basic::BasicScrollBarUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$5__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$6.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$6.h new file mode 100644 index 00000000000..9c0fb6671cf --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$6.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$6__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$6__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$6; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$6 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollBarUI$6(::javax::swing::plaf::basic::BasicScrollBarUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$6__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener.h new file mode 100644 index 00000000000..85d942986d5 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$ArrowButtonListener__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$ArrowButtonListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$ArrowButtonListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$ArrowButtonListener : public ::java::awt::event::MouseAdapter +{ + +public: // actually protected + BasicScrollBarUI$ArrowButtonListener(::javax::swing::plaf::basic::BasicScrollBarUI *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$ArrowButtonListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ModelListener.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ModelListener.h new file mode 100644 index 00000000000..472d5bd4b19 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ModelListener.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$ModelListener__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$ModelListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$ModelListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$ModelListener : public ::java::lang::Object +{ + +public: // actually protected + BasicScrollBarUI$ModelListener(::javax::swing::plaf::basic::BasicScrollBarUI *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$ModelListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..b2afd716343 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicScrollBarUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicScrollBarUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener.h new file mode 100644 index 00000000000..193e13f595e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$ScrollListener__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$ScrollListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$ScrollListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$ScrollListener : public ::java::lang::Object +{ + +public: + BasicScrollBarUI$ScrollListener(::javax::swing::plaf::basic::BasicScrollBarUI *); + BasicScrollBarUI$ScrollListener(::javax::swing::plaf::basic::BasicScrollBarUI *, jint, jboolean); + virtual void setDirection(jint); + virtual void setScrollByBlock(jboolean); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) direction; + jboolean block; +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$ScrollListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI$TrackListener.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$TrackListener.h new file mode 100644 index 00000000000..b78648a31e2 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI$TrackListener.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI$TrackListener__ +#define __javax_swing_plaf_basic_BasicScrollBarUI$TrackListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$TrackListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI$TrackListener : public ::java::awt::event::MouseAdapter +{ + +public: // actually protected + BasicScrollBarUI$TrackListener(::javax::swing::plaf::basic::BasicScrollBarUI *); +public: + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual jboolean shouldScroll(jint); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) currentMouseX; + jint currentMouseY; + jint offset; +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollBarUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI$TrackListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI.h b/libjava/javax/swing/plaf/basic/BasicScrollBarUI.h new file mode 100644 index 00000000000..64cd923aca4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI.h @@ -0,0 +1,174 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollBarUI__ +#define __javax_swing_plaf_basic_BasicScrollBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Container; + class Dimension; + class Graphics; + class Rectangle; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class InputMap; + class JButton; + class JComponent; + class JScrollBar; + class Timer; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicScrollBarUI; + class BasicScrollBarUI$ArrowButtonListener; + class BasicScrollBarUI$ModelListener; + class BasicScrollBarUI$ScrollListener; + class BasicScrollBarUI$TrackListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollBarUI : public ::javax::swing::plaf::ScrollBarUI +{ + +public: + BasicScrollBarUI(); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); +public: // actually protected + virtual void configureScrollBarColors(); + virtual ::javax::swing::plaf::basic::BasicScrollBarUI$ArrowButtonListener * createArrowButtonListener(); + virtual ::javax::swing::JButton * createIncreaseButton(jint); + virtual ::javax::swing::JButton * createDecreaseButton(jint); + virtual ::javax::swing::plaf::basic::BasicScrollBarUI$ModelListener * createModelListener(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::javax::swing::plaf::basic::BasicScrollBarUI$ScrollListener * createScrollListener(); + virtual ::javax::swing::plaf::basic::BasicScrollBarUI$TrackListener * createTrackListener(); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::Dimension * getMaximumThumbSize(); +public: + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::Dimension * getMinimumThumbSize(); +public: // actually package-private + virtual void calculatePreferredSize(); +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::Rectangle * getThumbBounds(); + virtual ::java::awt::Rectangle * getTrackBounds(); + virtual void installComponents(); + virtual void installDefaults(); + virtual void installKeyboardActions(); + virtual void uninstallKeyboardActions(); +public: // actually package-private + virtual ::javax::swing::InputMap * getInputMap(jint); + virtual ::javax::swing::ActionMap * getActionMap(); + virtual ::javax::swing::ActionMap * createActionMap(); +public: // actually protected + virtual void installListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void layoutContainer(::java::awt::Container *); +public: // actually protected + virtual void layoutHScrollbar(::javax::swing::JScrollBar *); + virtual void layoutVScrollbar(::javax::swing::JScrollBar *); +public: // actually package-private + virtual void updateThumbRect(); +public: + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintDecreaseHighlight(::java::awt::Graphics *); + virtual void paintIncreaseHighlight(::java::awt::Graphics *); + virtual void paintThumb(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *); + virtual void paintTrack(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *); +public: + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual void removeLayoutComponent(::java::awt::Component *); +public: // actually protected + virtual void scrollByBlock(jint); +public: // actually package-private + static void scrollByBlock(::javax::swing::JScrollBar *, jint); +public: // actually protected + virtual void scrollByUnit(jint); +public: // actually package-private + static void scrollByUnits(::javax::swing::JScrollBar *, jint, jint); +public: // actually protected + virtual void setThumbBounds(jint, jint, jint, jint); + virtual void uninstallComponents(); + virtual void uninstallDefaults(); + virtual void uninstallListeners(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually package-private + virtual jint valueForYPosition(jint); + virtual jint valueForXPosition(jint); +public: + virtual jboolean isThumbRollover(); +public: // actually protected + virtual void setThumbRollover(jboolean); +public: + virtual jboolean getSupportsAbsolutePositioning(); +public: // actually protected + ::javax::swing::plaf::basic::BasicScrollBarUI$ArrowButtonListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ScrollBarUI)))) buttonListener; + ::javax::swing::plaf::basic::BasicScrollBarUI$ModelListener * modelListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::javax::swing::plaf::basic::BasicScrollBarUI$ScrollListener * scrollListener; + ::javax::swing::plaf::basic::BasicScrollBarUI$TrackListener * trackListener; + ::javax::swing::JButton * decrButton; + ::javax::swing::JButton * incrButton; + ::java::awt::Dimension * maximumThumbSize; + ::java::awt::Dimension * minimumThumbSize; + ::java::awt::Color * thumbColor; + ::java::awt::Color * thumbDarkShadowColor; + ::java::awt::Color * thumbHighlightColor; + ::java::awt::Color * thumbLightShadowColor; + ::java::awt::Color * trackHighlightColor; + ::java::awt::Color * trackColor; + ::java::awt::Rectangle * trackRect; + ::java::awt::Rectangle * thumbRect; + static const jint DECREASE_HIGHLIGHT = 1; + static const jint INCREASE_HIGHLIGHT = 2; + static const jint NO_HIGHLIGHT = 0; +private: + static const jint POSITIVE_SCROLL = 1; + static const jint NEGATIVE_SCROLL = -1; + ::java::awt::Dimension * preferredSize; +public: // actually protected + jint trackHighlight; + jboolean isDragging; + ::javax::swing::Timer * scrollTimer; + ::javax::swing::JScrollBar * scrollbar; +public: // actually package-private + jboolean thumbRollover; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollBarUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$1.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$1.h new file mode 100644 index 00000000000..d2f99fd0748 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$1__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$1 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$1(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$10.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$10.h new file mode 100644 index 00000000000..ca4ee4a0a11 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$10.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$10__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$10__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$10; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$10 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$10(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$10__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$2.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$2.h new file mode 100644 index 00000000000..7cf273faac2 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$2.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$2__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$2 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$2(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$3.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$3.h new file mode 100644 index 00000000000..08fdef8fae3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$3.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$3__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$3; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$3 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$3(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$3__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$4.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$4.h new file mode 100644 index 00000000000..619ffa5af10 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$4.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$4__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$4; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$4 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$4(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$4__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$5.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$5.h new file mode 100644 index 00000000000..474733112e7 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$5.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$5__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$5__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$5; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$5 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$5(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$5__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$6.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$6.h new file mode 100644 index 00000000000..03dad8e7411 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$6.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$6__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$6__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$6; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$6 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$6(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$6__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$7.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$7.h new file mode 100644 index 00000000000..df4635ef2e9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$7.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$7__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$7__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$7; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$7 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$7(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$7__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$8.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$8.h new file mode 100644 index 00000000000..04e372cbe51 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$8.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$8__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$8__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$8; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$8 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$8(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$8__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$9.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$9.h new file mode 100644 index 00000000000..24028ace0ac --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$9.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$9__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$9__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$9; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$9 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicScrollPaneUI$9(::javax::swing::plaf::basic::BasicScrollPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$9__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener.h new file mode 100644 index 00000000000..b4cd0559369 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$HSBChangeListener.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$HSBChangeListener__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$HSBChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$HSBChangeListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$HSBChangeListener : public ::java::lang::Object +{ + +public: + BasicScrollPaneUI$HSBChangeListener(::javax::swing::plaf::basic::BasicScrollPaneUI *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$HSBChangeListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler.h new file mode 100644 index 00000000000..33a3deb5d0b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$MouseWheelHandler.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$MouseWheelHandler__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$MouseWheelHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + namespace event + { + class MouseWheelEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$MouseWheelHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$MouseWheelHandler : public ::java::lang::Object +{ + +public: // actually protected + BasicScrollPaneUI$MouseWheelHandler(::javax::swing::plaf::basic::BasicScrollPaneUI *); +public: + virtual void mouseWheelMoved(::java::awt::event::MouseWheelEvent *); +public: // actually package-private + ::java::awt::Rectangle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) rect; + ::javax::swing::plaf::basic::BasicScrollPaneUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$MouseWheelHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..d41feb6d487 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicScrollPaneUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicScrollPaneUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener.h new file mode 100644 index 00000000000..53c4f804bf2 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$VSBChangeListener.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$VSBChangeListener__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$VSBChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$VSBChangeListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$VSBChangeListener : public ::java::lang::Object +{ + +public: + BasicScrollPaneUI$VSBChangeListener(::javax::swing::plaf::basic::BasicScrollPaneUI *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$VSBChangeListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler.h new file mode 100644 index 00000000000..abbdc71b258 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportChangeHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$ViewportChangeHandler__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$ViewportChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$ViewportChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$ViewportChangeHandler : public ::java::lang::Object +{ + +public: + BasicScrollPaneUI$ViewportChangeHandler(::javax::swing::plaf::basic::BasicScrollPaneUI *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$ViewportChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportContainerListener.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportContainerListener.h new file mode 100644 index 00000000000..d0ca2438dbc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI$ViewportContainerListener.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI$ViewportContainerListener__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI$ViewportContainerListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ContainerEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicScrollPaneUI; + class BasicScrollPaneUI$ViewportContainerListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI$ViewportContainerListener : public ::java::lang::Object +{ + +public: // actually package-private + BasicScrollPaneUI$ViewportContainerListener(::javax::swing::plaf::basic::BasicScrollPaneUI *); +public: + virtual void componentAdded(::java::awt::event::ContainerEvent *); + virtual void componentRemoved(::java::awt::event::ContainerEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicScrollPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI$ViewportContainerListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.h b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.h new file mode 100644 index 00000000000..c06cf939f6f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicScrollPaneUI__ +#define __javax_swing_plaf_basic_BasicScrollPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + namespace event + { + class ContainerListener; + class MouseWheelListener; + } + } + namespace beans + { + class PropertyChangeEvent; + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class InputMap; + class JComponent; + class JScrollPane; + namespace event + { + class ChangeListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicScrollPaneUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicScrollPaneUI : public ::javax::swing::plaf::ScrollPaneUI +{ + +public: + BasicScrollPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(::javax::swing::JScrollPane *); + virtual void uninstallDefaults(::javax::swing::JScrollPane *); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installListeners(::javax::swing::JScrollPane *); +public: // actually package-private + virtual ::javax::swing::InputMap * getInputMap(jint); + virtual ::javax::swing::ActionMap * getActionMap(); + virtual ::javax::swing::ActionMap * createActionMap(); +public: // actually protected + virtual void installKeyboardActions(::javax::swing::JScrollPane *); + virtual void uninstallKeyboardActions(::javax::swing::JScrollPane *); + virtual ::javax::swing::event::ChangeListener * createHSBChangeListener(); + virtual ::javax::swing::event::ChangeListener * createVSBChangeListener(); + virtual ::javax::swing::event::ChangeListener * createViewportChangeListener(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::java::awt::event::MouseWheelListener * createMouseWheelListener(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallListeners(::javax::swing::JComponent *); +public: + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void syncScrollPaneWithViewport(); + virtual void updateColumnHeader(::java::beans::PropertyChangeEvent *); + virtual void updateRowHeader(::java::beans::PropertyChangeEvent *); + virtual void updateScrollBarDisplayPolicy(::java::beans::PropertyChangeEvent *); + virtual void updateViewport(::java::beans::PropertyChangeEvent *); +public: // actually package-private + static jint SCROLL_NON_SCROLLABLES; + static jint ROWS_PER_WHEEL_CLICK; +public: // actually protected + ::javax::swing::JScrollPane * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ScrollPaneUI)))) scrollpane; + ::javax::swing::event::ChangeListener * hsbChangeListener; + ::javax::swing::event::ChangeListener * vsbChangeListener; + ::javax::swing::event::ChangeListener * viewportChangeListener; + ::java::beans::PropertyChangeListener * spPropertyChangeListener; +public: // actually package-private + ::java::awt::event::MouseWheelListener * mouseWheelListener; + ::java::awt::event::ContainerListener * containerListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicScrollPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicSeparatorUI.h b/libjava/javax/swing/plaf/basic/BasicSeparatorUI.h new file mode 100644 index 00000000000..f16b625f691 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSeparatorUI.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSeparatorUI__ +#define __javax_swing_plaf_basic_BasicSeparatorUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JSeparator; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicSeparatorUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSeparatorUI : public ::javax::swing::plaf::SeparatorUI +{ + +public: + BasicSeparatorUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(::javax::swing::JSeparator *); + virtual void uninstallDefaults(::javax::swing::JSeparator *); + virtual void installListeners(::javax::swing::JSeparator *); + virtual void uninstallListeners(::javax::swing::JSeparator *); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::plaf::SeparatorUI)))) shadow; + ::java::awt::Color * highlight; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSeparatorUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$1.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$1.h new file mode 100644 index 00000000000..aeab13d16a1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$1__ +#define __javax_swing_plaf_basic_BasicSliderUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$1 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSliderUI$1(::javax::swing::plaf::basic::BasicSliderUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$2.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$2.h new file mode 100644 index 00000000000..b5b1f9a5047 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$2.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$2__ +#define __javax_swing_plaf_basic_BasicSliderUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$2 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSliderUI$2(::javax::swing::plaf::basic::BasicSliderUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$3.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$3.h new file mode 100644 index 00000000000..f5ebcd7bbb2 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$3.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$3__ +#define __javax_swing_plaf_basic_BasicSliderUI$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$3; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$3 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSliderUI$3(::javax::swing::plaf::basic::BasicSliderUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$3__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$4.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$4.h new file mode 100644 index 00000000000..e239d8ba159 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$4.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$4__ +#define __javax_swing_plaf_basic_BasicSliderUI$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$4; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$4 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSliderUI$4(::javax::swing::plaf::basic::BasicSliderUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$4__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$5.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$5.h new file mode 100644 index 00000000000..1832658cd40 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$5.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$5__ +#define __javax_swing_plaf_basic_BasicSliderUI$5__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$5; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$5 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSliderUI$5(::javax::swing::plaf::basic::BasicSliderUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$5__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$6.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$6.h new file mode 100644 index 00000000000..ef27bdf0f9b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$6.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$6__ +#define __javax_swing_plaf_basic_BasicSliderUI$6__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$6; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$6 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSliderUI$6(::javax::swing::plaf::basic::BasicSliderUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$6__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$ActionScroller.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$ActionScroller.h new file mode 100644 index 00000000000..739b384edb7 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$ActionScroller.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$ActionScroller__ +#define __javax_swing_plaf_basic_BasicSliderUI$ActionScroller__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JSlider; + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$ActionScroller; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$ActionScroller : public ::javax::swing::AbstractAction +{ + +public: + BasicSliderUI$ActionScroller(::javax::swing::plaf::basic::BasicSliderUI *, ::javax::swing::JSlider *, jint, jboolean); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$ActionScroller__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$ChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$ChangeHandler.h new file mode 100644 index 00000000000..ee9305b54d8 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$ChangeHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$ChangeHandler__ +#define __javax_swing_plaf_basic_BasicSliderUI$ChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$ChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$ChangeHandler : public ::java::lang::Object +{ + +public: + BasicSliderUI$ChangeHandler(::javax::swing::plaf::basic::BasicSliderUI *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$ChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$ComponentHandler.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$ComponentHandler.h new file mode 100644 index 00000000000..f192a5bf04f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$ComponentHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$ComponentHandler__ +#define __javax_swing_plaf_basic_BasicSliderUI$ComponentHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ComponentEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$ComponentHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$ComponentHandler : public ::java::awt::event::ComponentAdapter +{ + +public: + BasicSliderUI$ComponentHandler(::javax::swing::plaf::basic::BasicSliderUI *); + virtual void componentResized(::java::awt::event::ComponentEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$ComponentHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$FocusHandler.h new file mode 100644 index 00000000000..bc91028571d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$FocusHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicSliderUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$FocusHandler : public ::java::lang::Object +{ + +public: + BasicSliderUI$FocusHandler(::javax::swing::plaf::basic::BasicSliderUI *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..b03823785a6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicSliderUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicSliderUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicSliderUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$ScrollListener.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$ScrollListener.h new file mode 100644 index 00000000000..0032d4943cc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$ScrollListener.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$ScrollListener__ +#define __javax_swing_plaf_basic_BasicSliderUI$ScrollListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$ScrollListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$ScrollListener : public ::java::lang::Object +{ + +public: + BasicSliderUI$ScrollListener(::javax::swing::plaf::basic::BasicSliderUI *); + BasicSliderUI$ScrollListener(::javax::swing::plaf::basic::BasicSliderUI *, jint, jboolean); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual void setDirection(jint); + virtual void setScrollByBlock(jboolean); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) direction; + jboolean block; +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$ScrollListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI$TrackListener.h b/libjava/javax/swing/plaf/basic/BasicSliderUI$TrackListener.h new file mode 100644 index 00000000000..1d6bda1eb47 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI$TrackListener.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI$TrackListener__ +#define __javax_swing_plaf_basic_BasicSliderUI$TrackListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$TrackListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI$TrackListener : public ::javax::swing::event::MouseInputAdapter +{ + +public: + BasicSliderUI$TrackListener(::javax::swing::plaf::basic::BasicSliderUI *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); + virtual jboolean shouldScroll(jint); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::event::MouseInputAdapter)))) currentMouseX; + jint currentMouseY; + jint offset; +public: // actually package-private + ::javax::swing::plaf::basic::BasicSliderUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI$TrackListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI.h b/libjava/javax/swing/plaf/basic/BasicSliderUI.h new file mode 100644 index 00000000000..cb35faa26b0 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSliderUI.h @@ -0,0 +1,188 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSliderUI__ +#define __javax_swing_plaf_basic_BasicSliderUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Dimension; + class Graphics; + class Insets; + class Rectangle; + namespace event + { + class ComponentListener; + class FocusListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class InputMap; + class JComponent; + class JSlider; + class Timer; + namespace event + { + class ChangeListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicSliderUI; + class BasicSliderUI$ScrollListener; + class BasicSliderUI$TrackListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSliderUI : public ::javax::swing::plaf::SliderUI +{ + +public: + BasicSliderUI(::javax::swing::JSlider *); +public: // actually protected + virtual jboolean isDragging(); + virtual ::java::awt::Color * getShadowColor(); + virtual ::java::awt::Color * getHighlightColor(); + virtual ::java::awt::Color * getFocusColor(); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(::javax::swing::JSlider *); + virtual ::javax::swing::plaf::basic::BasicSliderUI$TrackListener * createTrackListener(::javax::swing::JSlider *); + virtual ::javax::swing::event::ChangeListener * createChangeListener(::javax::swing::JSlider *); + virtual ::java::awt::event::ComponentListener * createComponentListener(::javax::swing::JSlider *); + virtual ::java::awt::event::FocusListener * createFocusListener(::javax::swing::JSlider *); + virtual ::javax::swing::plaf::basic::BasicSliderUI$ScrollListener * createScrollListener(::javax::swing::JSlider *); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(::javax::swing::JSlider *); + virtual void installListeners(::javax::swing::JSlider *); + virtual void uninstallListeners(::javax::swing::JSlider *); + virtual void installKeyboardActions(::javax::swing::JSlider *); + virtual void uninstallKeyboardActions(::javax::swing::JSlider *); +public: + virtual ::java::awt::Dimension * getPreferredHorizontalSize(); + virtual ::java::awt::Dimension * getPreferredVerticalSize(); + virtual ::java::awt::Dimension * getMinimumHorizontalSize(); + virtual ::java::awt::Dimension * getMinimumVerticalSize(); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +public: // actually protected + virtual void calculateGeometry(); + virtual void calculateFocusRect(); + virtual void calculateThumbSize(); + virtual void calculateContentRect(); + virtual void calculateThumbLocation(); + virtual void calculateTrackBuffer(); + virtual ::java::awt::Dimension * getThumbSize(); + virtual void calculateTrackRect(); + virtual jint getTickLength(); + virtual void calculateTickRect(); + virtual void calculateLabelRect(); + virtual jint getWidthOfWidestLabel(); + virtual jint getHeightOfTallestLabel(); + virtual jint getWidthOfHighValueLabel(); + virtual jint getWidthOfLowValueLabel(); + virtual jint getHeightOfHighValueLabel(); + virtual jint getHeightOfLowValueLabel(); + virtual jboolean drawInverted(); + virtual ::java::awt::Component * getLowestValueLabel(); + virtual ::java::awt::Component * getHighestValueLabel(); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void recalculateIfInsetsChanged(); + virtual void recalculateIfOrientationChanged(); +public: + virtual void paintFocus(::java::awt::Graphics *); + virtual void paintTrack(::java::awt::Graphics *); + virtual void paintTicks(::java::awt::Graphics *); +public: // actually protected + virtual void paintMinorTickForHorizSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + virtual void paintMajorTickForHorizSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + virtual void paintMinorTickForVertSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + virtual void paintMajorTickForVertSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); +public: + virtual void paintLabels(::java::awt::Graphics *); +public: // actually protected + virtual void paintHorizontalLabel(::java::awt::Graphics *, jint, ::java::awt::Component *); + virtual void paintVerticalLabel(::java::awt::Graphics *, jint, ::java::awt::Component *); +public: + virtual void paintThumb(::java::awt::Graphics *); + virtual void setThumbLocation(jint, jint); + virtual void scrollByBlock(jint); + virtual void scrollByUnit(jint); +public: // actually protected + virtual void scrollDueToClickInTrack(jint); + virtual jint xPositionForValue(jint); + virtual jint yPositionForValue(jint); +public: + virtual jint valueForYPosition(jint); + virtual jint valueForXPosition(jint); +public: // actually package-private + virtual jint findClosestTick(jint); + virtual ::javax::swing::InputMap * getInputMap(jint); + virtual ::javax::swing::ActionMap * getActionMap(); + virtual ::javax::swing::ActionMap * createActionMap(); +private: + jboolean hitClip(::java::awt::Graphics *, ::java::awt::Rectangle *); +public: // actually protected + ::javax::swing::event::ChangeListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::SliderUI)))) changeListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::javax::swing::plaf::basic::BasicSliderUI$ScrollListener * scrollListener; + ::java::awt::event::ComponentListener * componentListener; + ::java::awt::event::FocusListener * focusListener; + ::javax::swing::plaf::basic::BasicSliderUI$TrackListener * trackListener; + ::java::awt::Insets * focusInsets; + ::java::awt::Insets * insetCache; + ::java::awt::Rectangle * contentRect; + ::java::awt::Rectangle * focusRect; + ::java::awt::Rectangle * thumbRect; + ::java::awt::Rectangle * tickRect; + ::java::awt::Rectangle * labelRect; + ::java::awt::Rectangle * trackRect; +public: + static const jint MAX_SCROLL = 2; + static const jint MIN_SCROLL = -2; + static const jint NEGATIVE_SCROLL = -1; + static const jint POSITIVE_SCROLL = 1; +public: // actually protected + jint trackBuffer; + jboolean leftToRightCache; + ::javax::swing::Timer * scrollTimer; + ::javax::swing::JSlider * slider; +private: + ::java::awt::Color * shadowColor; + ::java::awt::Color * highlightColor; + ::java::awt::Color * focusColor; +public: // actually package-private + jboolean dragging; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSliderUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicSpinnerUI$1.h b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$1.h new file mode 100644 index 00000000000..267014e841c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$1.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSpinnerUI$1__ +#define __javax_swing_plaf_basic_BasicSpinnerUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSpinnerUI; + class BasicSpinnerUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSpinnerUI$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicSpinnerUI$1(::javax::swing::plaf::basic::BasicSpinnerUI *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSpinnerUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSpinnerUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicSpinnerUI$2.h b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$2.h new file mode 100644 index 00000000000..5d8697b83c5 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$2.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSpinnerUI$2__ +#define __javax_swing_plaf_basic_BasicSpinnerUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class Timer; + namespace plaf + { + namespace basic + { + class BasicSpinnerUI; + class BasicSpinnerUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSpinnerUI$2 : public ::java::awt::event::MouseAdapter +{ + +public: // actually package-private + BasicSpinnerUI$2(::javax::swing::plaf::basic::BasicSpinnerUI *); +public: + void mousePressed(::java::awt::event::MouseEvent *); + void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + void increment(); + volatile jboolean __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) mouseDown; + ::javax::swing::Timer * timer; + ::javax::swing::plaf::basic::BasicSpinnerUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSpinnerUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicSpinnerUI$3.h b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$3.h new file mode 100644 index 00000000000..1df1e20cc5f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$3.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSpinnerUI$3__ +#define __javax_swing_plaf_basic_BasicSpinnerUI$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSpinnerUI$2; + class BasicSpinnerUI$3; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSpinnerUI$3 : public ::java::lang::Object +{ + +public: // actually package-private + BasicSpinnerUI$3(::javax::swing::plaf::basic::BasicSpinnerUI$2 *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSpinnerUI$2 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSpinnerUI$3__ diff --git a/libjava/javax/swing/plaf/basic/BasicSpinnerUI$4.h b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$4.h new file mode 100644 index 00000000000..0d9dddce85a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$4.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSpinnerUI$4__ +#define __javax_swing_plaf_basic_BasicSpinnerUI$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class Timer; + namespace plaf + { + namespace basic + { + class BasicSpinnerUI; + class BasicSpinnerUI$4; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSpinnerUI$4 : public ::java::awt::event::MouseAdapter +{ + +public: // actually package-private + BasicSpinnerUI$4(::javax::swing::plaf::basic::BasicSpinnerUI *); +public: + void mousePressed(::java::awt::event::MouseEvent *); + void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + void decrement(); + volatile jboolean __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) mouseDown; + ::javax::swing::Timer * timer; + ::javax::swing::plaf::basic::BasicSpinnerUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSpinnerUI$4__ diff --git a/libjava/javax/swing/plaf/basic/BasicSpinnerUI$5.h b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$5.h new file mode 100644 index 00000000000..f9a941a6559 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$5.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSpinnerUI$5__ +#define __javax_swing_plaf_basic_BasicSpinnerUI$5__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSpinnerUI$4; + class BasicSpinnerUI$5; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSpinnerUI$5 : public ::java::lang::Object +{ + +public: // actually package-private + BasicSpinnerUI$5(::javax::swing::plaf::basic::BasicSpinnerUI$4 *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSpinnerUI$4 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSpinnerUI$5__ diff --git a/libjava/javax/swing/plaf/basic/BasicSpinnerUI$DefaultLayoutManager.h b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$DefaultLayoutManager.h new file mode 100644 index 00000000000..552ee52f5dd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSpinnerUI$DefaultLayoutManager.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSpinnerUI$DefaultLayoutManager__ +#define __javax_swing_plaf_basic_BasicSpinnerUI$DefaultLayoutManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSpinnerUI; + class BasicSpinnerUI$DefaultLayoutManager; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSpinnerUI$DefaultLayoutManager : public ::java::lang::Object +{ + + BasicSpinnerUI$DefaultLayoutManager(::javax::swing::plaf::basic::BasicSpinnerUI *); +public: + 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 addLayoutComponent(::java::lang::String *, ::java::awt::Component *); +private: + ::java::awt::Dimension * prefSize(::java::awt::Component *); + void setBounds(::java::awt::Component *, jint, jint, jint, jint); +public: // actually package-private + BasicSpinnerUI$DefaultLayoutManager(::javax::swing::plaf::basic::BasicSpinnerUI *, ::javax::swing::plaf::basic::BasicSpinnerUI$DefaultLayoutManager *); +private: + ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) editor; + ::java::awt::Component * next; + ::java::awt::Component * previous; +public: // actually package-private + ::javax::swing::plaf::basic::BasicSpinnerUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSpinnerUI$DefaultLayoutManager__ diff --git a/libjava/javax/swing/plaf/basic/BasicSpinnerUI.h b/libjava/javax/swing/plaf/basic/BasicSpinnerUI.h new file mode 100644 index 00000000000..aa148b77187 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSpinnerUI.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSpinnerUI__ +#define __javax_swing_plaf_basic_BasicSpinnerUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class LayoutManager; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JSpinner; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicSpinnerUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSpinnerUI : public ::javax::swing::plaf::SpinnerUI +{ + +public: + BasicSpinnerUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::javax::swing::JComponent * createEditor(); + virtual ::java::awt::LayoutManager * createLayout(); + virtual ::java::awt::Component * createNextButton(); + virtual ::java::awt::Component * createPreviousButton(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual void installDefaults(); + virtual void installListeners(); + virtual void installNextButtonListeners(::java::awt::Component *); + virtual void installPreviousButtonListeners(::java::awt::Component *); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void replaceEditor(::javax::swing::JComponent *, ::javax::swing::JComponent *); + virtual void uninstallDefaults(); + virtual void uninstallListeners(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + ::javax::swing::JSpinner * __attribute__((aligned(__alignof__( ::javax::swing::plaf::SpinnerUI)))) spinner; +private: + ::java::beans::PropertyChangeListener * listener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSpinnerUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$BasicOneTouchButton.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$BasicOneTouchButton.h new file mode 100644 index 00000000000..cd51091307b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$BasicOneTouchButton.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneDivider$BasicOneTouchButton__ +#define __javax_swing_plaf_basic_BasicSplitPaneDivider$BasicOneTouchButton__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace plaf + { + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneDivider$BasicOneTouchButton; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneDivider$BasicOneTouchButton : public ::javax::swing::JButton +{ + +public: // actually package-private + BasicSplitPaneDivider$BasicOneTouchButton(::javax::swing::plaf::basic::BasicSplitPaneDivider *, jint); +public: + virtual void setBorder(::javax::swing::border::Border *); + virtual jboolean isFocusTraversable(); + virtual void paint(::java::awt::Graphics *); +public: // actually package-private + static const jint LEFT = 0; + static const jint RIGHT = 1; +private: + JArray< jint > * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) xpoints; + JArray< jint > * ypoints; + jint direction; +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneDivider * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneDivider$BasicOneTouchButton__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout.h new file mode 100644 index 00000000000..418b6dcd845 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneDivider$DividerLayout__ +#define __javax_swing_plaf_basic_BasicSplitPaneDivider$DividerLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneDivider$DividerLayout; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneDivider$DividerLayout : public ::java::lang::Object +{ + +public: // actually protected + BasicSplitPaneDivider$DividerLayout(::javax::swing::plaf::basic::BasicSplitPaneDivider *); +public: + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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 *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneDivider * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneDivider$DividerLayout__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DragController.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DragController.h new file mode 100644 index 00000000000..902a5725ca3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$DragController.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneDivider$DragController__ +#define __javax_swing_plaf_basic_BasicSplitPaneDivider$DragController__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneDivider$DragController; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneDivider$DragController : public ::java::lang::Object +{ + +public: // actually protected + BasicSplitPaneDivider$DragController(::javax::swing::plaf::basic::BasicSplitPaneDivider *, ::java::awt::event::MouseEvent *); + virtual jboolean isValid(); + virtual jint positionForMouseEvent(::java::awt::event::MouseEvent *); + virtual jint getNeededLocation(jint, jint); + virtual void continueDrag(jint, jint); + virtual void continueDrag(::java::awt::event::MouseEvent *); + virtual void completeDrag(jint, jint); + virtual void completeDrag(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual jint adjust(jint, jint); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) offset; + ::javax::swing::plaf::basic::BasicSplitPaneDivider * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneDivider$DragController__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler.h new file mode 100644 index 00000000000..bafbfee1b78 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneDivider$MouseHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneDivider$MouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneDivider$MouseHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneDivider$MouseHandler : public ::java::awt::event::MouseAdapter +{ + +public: // actually protected + BasicSplitPaneDivider$MouseHandler(::javax::swing::plaf::basic::BasicSplitPaneDivider *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); +private: + jboolean __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) isDragging; +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneDivider * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneDivider$MouseHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchAction.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchAction.h new file mode 100644 index 00000000000..bc1538536ea --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneDivider$OneTouchAction__ +#define __javax_swing_plaf_basic_BasicSplitPaneDivider$OneTouchAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneDivider$OneTouchAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneDivider$OneTouchAction : public ::java::lang::Object +{ + + BasicSplitPaneDivider$OneTouchAction(::javax::swing::plaf::basic::BasicSplitPaneDivider *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + BasicSplitPaneDivider$OneTouchAction(::javax::swing::plaf::basic::BasicSplitPaneDivider *, ::javax::swing::plaf::basic::BasicSplitPaneDivider$OneTouchAction *); + ::javax::swing::plaf::basic::BasicSplitPaneDivider * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneDivider$OneTouchAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController.h new file mode 100644 index 00000000000..cc1a14915bc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider$VerticalDragController.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneDivider$VerticalDragController__ +#define __javax_swing_plaf_basic_BasicSplitPaneDivider$VerticalDragController__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneDivider$VerticalDragController; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneDivider$VerticalDragController : public ::javax::swing::plaf::basic::BasicSplitPaneDivider$DragController +{ + +public: // actually protected + BasicSplitPaneDivider$VerticalDragController(::javax::swing::plaf::basic::BasicSplitPaneDivider *, ::java::awt::event::MouseEvent *); + virtual jint getNeededLocation(jint, jint); + virtual jint positionForMouseEvent(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual jint adjust(jint, jint); + ::javax::swing::plaf::basic::BasicSplitPaneDivider * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicSplitPaneDivider$DragController)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneDivider$VerticalDragController__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.h new file mode 100644 index 00000000000..a4c51fc5588 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.h @@ -0,0 +1,97 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneDivider__ +#define __javax_swing_plaf_basic_BasicSplitPaneDivider__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Graphics; + class Insets; + } + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JButton; + class JSplitPane; + namespace border + { + class Border; + } + namespace plaf + { + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneDivider$DragController; + class BasicSplitPaneDivider$MouseHandler; + class BasicSplitPaneUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneDivider : public ::java::awt::Container +{ + +public: + BasicSplitPaneDivider(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void setBasicSplitPaneUI(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual ::javax::swing::plaf::basic::BasicSplitPaneUI * getBasicSplitPaneUI(); + virtual void setDividerSize(jint); + virtual jint getDividerSize(); + virtual void setBorder(::javax::swing::border::Border *); + virtual ::javax::swing::border::Border * getBorder(); + virtual ::java::awt::Insets * getInsets(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual void paint(::java::awt::Graphics *); +public: // actually protected + virtual void oneTouchExpandableChanged(); + virtual ::javax::swing::JButton * createLeftOneTouchButton(); + virtual ::javax::swing::JButton * createRightOneTouchButton(); + virtual void prepareForDragging(); + virtual void dragDividerTo(jint); + virtual void finishDraggingTo(jint); +public: // actually package-private + virtual void moveDividerTo(jint); + static const jlong serialVersionUID = 1463404307042803342LL; +public: // actually protected + static const jint ONE_TOUCH_SIZE = 6; + static const jint ONE_TOUCH_OFFSET = 2; + ::javax::swing::plaf::basic::BasicSplitPaneDivider$DragController * __attribute__((aligned(__alignof__( ::java::awt::Container)))) dragger; + ::javax::swing::plaf::basic::BasicSplitPaneUI * splitPaneUI; + jint dividerSize; + ::java::awt::Component * hiddenDivider; + ::javax::swing::JSplitPane * splitPane; + ::javax::swing::plaf::basic::BasicSplitPaneDivider$MouseHandler * mouseHandler; + jint orientation; + ::javax::swing::JButton * leftButton; + ::javax::swing::JButton * rightButton; +private: + ::javax::swing::border::Border * border; +public: // actually package-private + jint currentDividerLocation; + jboolean centerOneTouchButtons; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneDivider__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$1.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$1.h new file mode 100644 index 00000000000..0d1602b3068 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$1__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$1 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$1(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$2.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$2.h new file mode 100644 index 00000000000..af65cc5c583 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$2.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$2__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$2 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$2(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$3.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$3.h new file mode 100644 index 00000000000..6dd5e761355 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$3.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$3__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$3; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$3 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$3(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$3__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$4.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$4.h new file mode 100644 index 00000000000..f66fe4b021d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$4.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$4__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$4; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$4 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$4(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$4__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$5.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$5.h new file mode 100644 index 00000000000..c9a3e266e06 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$5.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$5__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$5__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$5; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$5 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$5(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$5__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$6.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$6.h new file mode 100644 index 00000000000..9a4facee9cc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$6.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$6__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$6__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$6; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$6 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$6(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$6__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$7.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$7.h new file mode 100644 index 00000000000..d464dded6c9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$7.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$7__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$7__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$7; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$7 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$7(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$7__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$8.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$8.h new file mode 100644 index 00000000000..e2248856328 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$8.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$8__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$8__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$8; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$8 : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicSplitPaneUI$8(::javax::swing::plaf::basic::BasicSplitPaneUI *, ::java::lang::String *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$8__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.h new file mode 100644 index 00000000000..7f3b3932f36 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$BasicHorizontalLayoutManager__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$BasicHorizontalLayoutManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$BasicHorizontalLayoutManager; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$BasicHorizontalLayoutManager : public ::java::lang::Object +{ + +public: // actually package-private + BasicSplitPaneUI$BasicHorizontalLayoutManager(::javax::swing::plaf::basic::BasicSplitPaneUI *); + BasicSplitPaneUI$BasicHorizontalLayoutManager(::javax::swing::plaf::basic::BasicSplitPaneUI *, jint); +public: + virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); +public: // actually protected + virtual jint getAvailableSize(::java::awt::Dimension *, ::java::awt::Insets *); + virtual jint getInitialLocation(::java::awt::Insets *); +public: + virtual jfloat getLayoutAlignmentX(::java::awt::Container *); + virtual jfloat getLayoutAlignmentY(::java::awt::Container *); +public: // actually protected + virtual jint getPreferredSizeOfComponent(::java::awt::Component *); + virtual jint getSizeOfComponent(::java::awt::Component *); + virtual JArray< jint > * getSizes(); +public: + virtual void invalidateLayout(::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 ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual void removeLayoutComponent(::java::awt::Component *); +public: // actually protected + virtual void resetSizeAt(jint); +public: + virtual void resetToPreferredSizes(); +public: // actually protected + virtual void setComponentToSize(::java::awt::Component *, jint, jint, ::java::awt::Insets *, ::java::awt::Dimension *); + virtual void setSizes(JArray< jint > *); + virtual void updateComponents(); +public: // actually package-private + virtual void distributeExtraSpace(); + virtual jint minimumSizeOfComponent(jint); +public: // actually protected + JArray< ::java::awt::Component * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) components; + JArray< jint > * sizes; +private: + jint axis; +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$BasicHorizontalLayoutManager__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager.h new file mode 100644 index 00000000000..47f78ce61c4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$BasicVerticalLayoutManager.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$BasicVerticalLayoutManager__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$BasicVerticalLayoutManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$BasicVerticalLayoutManager; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$BasicVerticalLayoutManager : public ::javax::swing::plaf::basic::BasicSplitPaneUI$BasicHorizontalLayoutManager +{ + +public: + BasicSplitPaneUI$BasicVerticalLayoutManager(::javax::swing::plaf::basic::BasicSplitPaneUI *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicSplitPaneUI$BasicHorizontalLayoutManager)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$BasicVerticalLayoutManager__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler.h new file mode 100644 index 00000000000..a338ae8cfb9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$FocusHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$FocusHandler : public ::java::awt::event::FocusAdapter +{ + +public: + BasicSplitPaneUI$FocusHandler(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::java::awt::event::FocusAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler.h new file mode 100644 index 00000000000..439de5c724a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardDownRightHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardDownRightHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardDownRightHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$KeyboardDownRightHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$KeyboardDownRightHandler : public ::java::lang::Object +{ + +public: + BasicSplitPaneUI$KeyboardDownRightHandler(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardDownRightHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler.h new file mode 100644 index 00000000000..4b474d91246 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardEndHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardEndHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardEndHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$KeyboardEndHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$KeyboardEndHandler : public ::java::lang::Object +{ + +public: + BasicSplitPaneUI$KeyboardEndHandler(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardEndHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler.h new file mode 100644 index 00000000000..755d657f059 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardHomeHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardHomeHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardHomeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$KeyboardHomeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$KeyboardHomeHandler : public ::java::lang::Object +{ + +public: + BasicSplitPaneUI$KeyboardHomeHandler(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardHomeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler.h new file mode 100644 index 00000000000..34e9acdc21c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardResizeToggleHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardResizeToggleHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardResizeToggleHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$KeyboardResizeToggleHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$KeyboardResizeToggleHandler : public ::java::lang::Object +{ + +public: + BasicSplitPaneUI$KeyboardResizeToggleHandler(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardResizeToggleHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler.h new file mode 100644 index 00000000000..ce00ebc9d91 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$KeyboardUpLeftHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardUpLeftHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardUpLeftHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$KeyboardUpLeftHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$KeyboardUpLeftHandler : public ::java::lang::Object +{ + +public: + BasicSplitPaneUI$KeyboardUpLeftHandler(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$KeyboardUpLeftHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler.h new file mode 100644 index 00000000000..87f023b5fed --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI$PropertyHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI$PropertyHandler__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI$PropertyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicSplitPaneUI; + class BasicSplitPaneUI$PropertyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI$PropertyHandler : public ::java::lang::Object +{ + +public: + BasicSplitPaneUI$PropertyHandler(::javax::swing::plaf::basic::BasicSplitPaneUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicSplitPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI$PropertyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneUI.h b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI.h new file mode 100644 index 00000000000..fdbcb1519f6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneUI.h @@ -0,0 +1,149 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicSplitPaneUI__ +#define __javax_swing_plaf_basic_BasicSplitPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + class Graphics; + class Insets; + namespace event + { + class ActionListener; + class FocusListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class InputMap; + class JComponent; + class JSplitPane; + class KeyStroke; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicSplitPaneDivider; + class BasicSplitPaneUI; + class BasicSplitPaneUI$BasicHorizontalLayoutManager; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicSplitPaneUI : public ::javax::swing::plaf::SplitPaneUI +{ + +public: + BasicSplitPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual void installListeners(); + virtual void uninstallListeners(); +public: // actually package-private + virtual ::javax::swing::InputMap * getInputMap(jint); + virtual ::javax::swing::ActionMap * getActionMap(); + virtual ::javax::swing::ActionMap * createActionMap(); +public: // actually protected + virtual void installKeyboardActions(); + virtual void uninstallKeyboardActions(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::java::awt::event::FocusListener * createFocusListener(); + virtual ::java::awt::event::ActionListener * createKeyboardUpLeftListener(); + virtual ::java::awt::event::ActionListener * createKeyboardDownRightListener(); + virtual ::java::awt::event::ActionListener * createKeyboardHomeListener(); + virtual ::java::awt::event::ActionListener * createKeyboardEndListener(); + virtual ::java::awt::event::ActionListener * createKeyboardResizeToggleListener(); +public: + virtual jint getOrientation(); + virtual void setOrientation(jint); + virtual jboolean isContinuousLayout(); + virtual void setContinuousLayout(jboolean); + virtual jint getLastDragLocation(); + virtual void setLastDragLocation(jint); + virtual ::javax::swing::plaf::basic::BasicSplitPaneDivider * getDivider(); +public: // actually protected + virtual ::java::awt::Component * createDefaultNonContinuousLayoutDivider(); + virtual void setNonContinuousLayoutDivider(::java::awt::Component *); + virtual void setNonContinuousLayoutDivider(::java::awt::Component *, jboolean); +public: + virtual ::java::awt::Component * getNonContinuousLayoutDivider(); + virtual ::javax::swing::JSplitPane * getSplitPane(); + virtual ::javax::swing::plaf::basic::BasicSplitPaneDivider * createDefaultDivider(); + virtual void resetToPreferredSizes(::javax::swing::JSplitPane *); + virtual void setDividerLocation(::javax::swing::JSplitPane *, jint); + virtual jint getDividerLocation(::javax::swing::JSplitPane *); + virtual jint getMinimumDividerLocation(::javax::swing::JSplitPane *); + virtual jint getMaximumDividerLocation(::javax::swing::JSplitPane *); + virtual void finishedPaintingChildren(::javax::swing::JSplitPane *, ::java::awt::Graphics *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Insets * getInsets(::javax::swing::JComponent *); +public: // actually protected + virtual void resetLayoutManager(); + virtual void startDragging(); + virtual void dragDividerTo(jint); + virtual void finishDraggingTo(jint); + virtual jint getDividerBorderSize(); +private: + jint validLocation(jint); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::plaf::SplitPaneUI)))) beginDragDividerLocation; + jint dividerSize; +public: // actually package-private + jint lastDragLocation; +public: // actually protected + static jint KEYBOARD_DIVIDER_MOVE_OFFSET; + ::javax::swing::plaf::basic::BasicSplitPaneDivider * divider; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::java::awt::event::FocusListener * focusListener; + ::java::awt::event::ActionListener * keyboardDownRightListener; + ::java::awt::event::ActionListener * keyboardEndListener; + ::java::awt::event::ActionListener * keyboardHomeListener; + ::java::awt::event::ActionListener * keyboardResizeToggleListener; + ::java::awt::event::ActionListener * keyboardUpLeftListener; + ::javax::swing::plaf::basic::BasicSplitPaneUI$BasicHorizontalLayoutManager * layoutManager; + ::javax::swing::KeyStroke * dividerResizeToggleKey; + ::javax::swing::KeyStroke * downKey; + ::javax::swing::KeyStroke * endKey; + ::javax::swing::KeyStroke * homeKey; + ::javax::swing::KeyStroke * leftKey; + ::javax::swing::KeyStroke * rightKey; + ::javax::swing::KeyStroke * upKey; + jboolean draggingHW; + static ::java::lang::String * NON_CONTINUOUS_DIVIDER; + ::java::awt::Component * nonContinuousLayoutDivider; + ::javax::swing::JSplitPane * splitPane; +public: // actually package-private + jboolean dividerLocationSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicSplitPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler.h new file mode 100644 index 00000000000..4545f105d1d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$FocusHandler.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$FocusHandler : public ::java::awt::event::FocusAdapter +{ + +public: + BasicTabbedPaneUI$FocusHandler(::javax::swing::plaf::basic::BasicTabbedPaneUI *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::java::awt::event::FocusAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler.h new file mode 100644 index 00000000000..c36fc50205b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$MouseHandler.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$MouseHandler__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$MouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$MouseHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$MouseHandler : public ::java::awt::event::MouseAdapter +{ + +public: + BasicTabbedPaneUI$MouseHandler(::javax::swing::plaf::basic::BasicTabbedPaneUI *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual void redispatchEvent(::java::awt::event::MouseEvent *); + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$MouseHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigateAction.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigateAction.h new file mode 100644 index 00000000000..17596c23215 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigateAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigateAction__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigateAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI$NavigateAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$NavigateAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicTabbedPaneUI$NavigateAction(::java::lang::String *, jint); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) direction; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigateAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageDownAction.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageDownAction.h new file mode 100644 index 00000000000..52e7e35cdc7 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageDownAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigatePageDownAction__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigatePageDownAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI$NavigatePageDownAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$NavigatePageDownAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTabbedPaneUI$NavigatePageDownAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigatePageDownAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageUpAction.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageUpAction.h new file mode 100644 index 00000000000..c5195afb580 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$NavigatePageUpAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigatePageUpAction__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigatePageUpAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI$NavigatePageUpAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$NavigatePageUpAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTabbedPaneUI$NavigatePageUpAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$NavigatePageUpAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..09e568fe4de --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicTabbedPaneUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicTabbedPaneUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusAction.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusAction.h new file mode 100644 index 00000000000..1ee8f725be1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$RequestFocusAction__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$RequestFocusAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI$RequestFocusAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$RequestFocusAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTabbedPaneUI$RequestFocusAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$RequestFocusAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusForVisibleComponentAction.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusForVisibleComponentAction.h new file mode 100644 index 00000000000..cbb776a3474 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$RequestFocusForVisibleComponentAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$RequestFocusForVisibleComponentAction__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$RequestFocusForVisibleComponentAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI$RequestFocusForVisibleComponentAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$RequestFocusForVisibleComponentAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTabbedPaneUI$RequestFocusForVisibleComponentAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$RequestFocusForVisibleComponentAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingButton.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingButton.h new file mode 100644 index 00000000000..895072d427e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingButton.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingButton__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$ScrollingButton; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingButton : public ::javax::swing::plaf::basic::BasicArrowButton +{ + +public: + BasicTabbedPaneUI$ScrollingButton(::javax::swing::plaf::basic::BasicTabbedPaneUI *, jint); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicArrowButton)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingButton__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.h new file mode 100644 index 00000000000..d896ca00a56 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI$ScrollingPanel; + class BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI : public ::javax::swing::plaf::basic::BasicPanelUI +{ + + BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI(::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel *); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually package-private + BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI(::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel *, ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI *); + ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicPanelUI)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel$ScrollingPanelUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel.h new file mode 100644 index 00000000000..4c1d483448c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingPanel.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$ScrollingPanel; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel : public ::javax::swing::JPanel +{ + + BasicTabbedPaneUI$ScrollingPanel(::javax::swing::plaf::basic::BasicTabbedPaneUI *); +public: + virtual void updateUI(); +public: // actually package-private + BasicTabbedPaneUI$ScrollingPanel(::javax::swing::plaf::basic::BasicTabbedPaneUI *, ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel *); + static ::javax::swing::plaf::basic::BasicTabbedPaneUI * access$1(::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel *); + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::JPanel)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingPanel__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingViewport.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingViewport.h new file mode 100644 index 00000000000..2469bbe27e0 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$ScrollingViewport.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingViewport__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingViewport__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$ScrollingViewport; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingViewport : public ::javax::swing::JViewport +{ + + BasicTabbedPaneUI$ScrollingViewport(::javax::swing::plaf::basic::BasicTabbedPaneUI *); +public: // actually package-private + BasicTabbedPaneUI$ScrollingViewport(::javax::swing::plaf::basic::BasicTabbedPaneUI *, ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingViewport *); + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::JViewport)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$ScrollingViewport__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler.h new file mode 100644 index 00000000000..ad26176e00e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabSelectionHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$TabSelectionHandler__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$TabSelectionHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$TabSelectionHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$TabSelectionHandler : public ::java::lang::Object +{ + +public: + BasicTabbedPaneUI$TabSelectionHandler(::javax::swing::plaf::basic::BasicTabbedPaneUI *); + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$TabSelectionHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout.h new file mode 100644 index 00000000000..a56abd9f4c8 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$TabbedPaneLayout__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$TabbedPaneLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$TabbedPaneLayout; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$TabbedPaneLayout : public ::java::lang::Object +{ + +public: + BasicTabbedPaneUI$TabbedPaneLayout(::javax::swing::plaf::basic::BasicTabbedPaneUI *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void calculateLayoutInfo(); +public: // actually protected + virtual ::java::awt::Dimension * calculateSize(jboolean); + virtual void calculateTabRects(jint, jint); +public: + virtual void layoutContainer(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); +public: // actually protected + virtual void normalizeTabRuns(jint, jint, jint, jint); + virtual void padSelectedTab(jint, jint); + virtual void padTabRun(jint, jint, jint, jint); +public: + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); +public: // actually protected + virtual jint preferredTabAreaHeight(jint, jint); + virtual jint preferredTabAreaWidth(jint, jint); + virtual void rotateTabRuns(jint, jint); +public: + virtual void removeLayoutComponent(::java::awt::Component *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$TabbedPaneLayout__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout.h new file mode 100644 index 00000000000..87642f720ab --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI$TabbedPaneScrollLayout__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI$TabbedPaneScrollLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$TabbedPaneScrollLayout; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI$TabbedPaneScrollLayout : public ::javax::swing::plaf::basic::BasicTabbedPaneUI$TabbedPaneLayout +{ + + BasicTabbedPaneUI$TabbedPaneScrollLayout(::javax::swing::plaf::basic::BasicTabbedPaneUI *); +public: + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); +public: // actually protected + virtual jint preferredTabAreaHeight(jint, jint); + virtual jint preferredTabAreaWidth(jint, jint); + virtual void calculateTabRects(jint, jint); +public: + virtual void layoutContainer(::java::awt::Container *); +public: // actually package-private + BasicTabbedPaneUI$TabbedPaneScrollLayout(::javax::swing::plaf::basic::BasicTabbedPaneUI *, ::javax::swing::plaf::basic::BasicTabbedPaneUI$TabbedPaneScrollLayout *); + ::javax::swing::plaf::basic::BasicTabbedPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicTabbedPaneUI$TabbedPaneLayout)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI$TabbedPaneScrollLayout__ diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.h b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.h new file mode 100644 index 00000000000..a20eedbb569 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.h @@ -0,0 +1,223 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTabbedPaneUI__ +#define __javax_swing_plaf_basic_BasicTabbedPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Dimension; + class Font; + class FontMetrics; + class Graphics; + class Insets; + class LayoutManager; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + class MouseListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class Icon; + class JComponent; + class JTabbedPane; + class KeyStroke; + namespace event + { + class ChangeListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicTabbedPaneUI; + class BasicTabbedPaneUI$ScrollingButton; + class BasicTabbedPaneUI$ScrollingPanel; + class BasicTabbedPaneUI$ScrollingViewport; + } + } + namespace text + { + class View; + } + } + } +} + +class javax::swing::plaf::basic::BasicTabbedPaneUI : public ::javax::swing::plaf::TabbedPaneUI +{ + +public: + BasicTabbedPaneUI(); +public: // actually package-private + virtual ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingButton * createIncreaseButton(); + virtual ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingButton * createDecreaseButton(); + virtual ::java::awt::Point * findPointForIndex(jint); + virtual void scrollTab(jint, jint); + virtual void updateButtons(); + virtual void updateViewPosition(); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::LayoutManager * createLayoutManager(); + virtual void installComponents(); + virtual void uninstallComponents(); + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual void installListeners(); + virtual void uninstallListeners(); + virtual ::java::awt::event::MouseListener * createMouseListener(); + virtual ::java::awt::event::FocusListener * createFocusListener(); + virtual ::javax::swing::event::ChangeListener * createChangeListener(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual void installKeyboardActions(); + virtual void uninstallKeyboardActions(); +public: + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintTabArea(::java::awt::Graphics *, jint, jint); + virtual void paintTab(::java::awt::Graphics *, jint, JArray< ::java::awt::Rectangle * > *, jint, ::java::awt::Rectangle *, ::java::awt::Rectangle *); + virtual void layoutLabel(jint, ::java::awt::FontMetrics *, jint, ::java::lang::String *, ::javax::swing::Icon *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, jboolean); + virtual void paintIcon(::java::awt::Graphics *, jint, jint, ::javax::swing::Icon *, ::java::awt::Rectangle *, jboolean); + virtual void paintText(::java::awt::Graphics *, jint, ::java::awt::Font *, ::java::awt::FontMetrics *, jint, ::java::lang::String *, ::java::awt::Rectangle *, jboolean); + virtual jint getTabLabelShiftX(jint, jint, jboolean); + virtual jint getTabLabelShiftY(jint, jint, jboolean); + virtual void paintFocusIndicator(::java::awt::Graphics *, jint, JArray< ::java::awt::Rectangle * > *, jint, ::java::awt::Rectangle *, ::java::awt::Rectangle *, jboolean); + virtual void paintTabBorder(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintTabBackground(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintContentBorder(::java::awt::Graphics *, jint, jint); + virtual void paintContentBorderTopEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); + virtual void paintContentBorderLeftEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); + virtual void paintContentBorderBottomEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); + virtual void paintContentBorderRightEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); +public: + virtual ::java::awt::Rectangle * getTabBounds(::javax::swing::JTabbedPane *, jint); + virtual jint getTabRunCount(::javax::swing::JTabbedPane *); + virtual jint tabForCoordinate(::javax::swing::JTabbedPane *, jint, jint); +public: // actually protected + virtual ::java::awt::Rectangle * getTabBounds(jint, ::java::awt::Rectangle *); + virtual ::java::awt::Component * getVisibleComponent(); + virtual void setVisibleComponent(::java::awt::Component *); + virtual void assureRectsCreated(jint); + virtual void expandTabRunsArray(); + virtual jint getRunForTab(jint, jint); + virtual jint lastTabInRun(jint, jint); + virtual jint getTabRunOverlay(jint); + virtual jint getTabRunIndent(jint, jint); + virtual jboolean shouldPadTabRun(jint, jint); + virtual jboolean shouldRotateTabRuns(jint); + virtual ::javax::swing::Icon * getIconForTab(jint); + virtual ::javax::swing::text::View * getTextViewForTab(jint); + virtual jint calculateTabHeight(jint, jint, jint); + virtual jint calculateMaxTabHeight(jint); + virtual jint calculateTabWidth(jint, jint, ::java::awt::FontMetrics *); + virtual jint calculateMaxTabWidth(jint); + virtual jint calculateTabAreaHeight(jint, jint, jint); + virtual jint calculateTabAreaWidth(jint, jint, jint); + virtual ::java::awt::Insets * getTabInsets(jint, jint); + virtual ::java::awt::Insets * getSelectedTabPadInsets(jint); + virtual ::java::awt::Insets * getTabAreaInsets(jint); + virtual ::java::awt::Insets * getContentBorderInsets(jint); + virtual ::java::awt::FontMetrics * getFontMetrics(); + virtual void navigateSelectedTab(jint); + virtual void selectNextTabInRun(jint); + virtual void selectPreviousTabInRun(jint); + virtual void selectNextTab(jint); + virtual void selectPreviousTab(jint); + virtual void selectAdjacentRunTab(jint, jint, jint); + virtual jint getTabRunOffset(jint, jint, jint, jboolean); + virtual jint getPreviousTabIndex(jint); + virtual jint getNextTabIndex(jint); + virtual jint getNextTabIndexInRun(jint, jint); + virtual jint getPreviousTabIndexInRun(jint, jint); + virtual jint getPreviousTabRun(jint); + virtual jint getNextTabRun(jint); + static void rotateInsets(::java::awt::Insets *, ::java::awt::Insets *, jint); +public: // actually package-private + virtual ::javax::swing::ActionMap * getActionMap(); + virtual ::javax::swing::ActionMap * createActionMap(); +public: // actually protected + virtual void setRolloverTab(jint); + virtual jint getRolloverTab(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingButton * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TabbedPaneUI)))) incrButton; + ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingButton * decrButton; + ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingViewport * viewport; + ::javax::swing::plaf::basic::BasicTabbedPaneUI$ScrollingPanel * panel; + jint currentScrollLocation; + jint currentScrollOffset; +public: // actually protected + ::java::awt::Rectangle * calcRect; + JArray< ::java::awt::Rectangle * > * rects; + ::java::awt::Insets * contentBorderInsets; + ::java::awt::Insets * selectedTabPadInsets; + ::java::awt::Insets * tabAreaInsets; + ::java::awt::Insets * tabInsets; + ::java::awt::Color * darkShadow; + ::java::awt::Color * focus; + ::java::awt::Color * highlight; + ::java::awt::Color * lightHighlight; + ::java::awt::Color * shadow; + jint maxTabHeight; + jint maxTabWidth; + jint runCount; + jint selectedRun; + jint tabRunOverlay; + jint textIconGap; + JArray< jint > * tabRuns; +public: // actually package-private + jboolean tabRunsDirty; +public: // actually protected + ::javax::swing::KeyStroke * downKey; + ::javax::swing::KeyStroke * leftKey; + ::javax::swing::KeyStroke * rightKey; + ::javax::swing::KeyStroke * upKey; + ::java::awt::event::FocusListener * focusListener; + ::java::awt::event::MouseListener * mouseListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::javax::swing::event::ChangeListener * tabChangeListener; + ::javax::swing::JTabbedPane * tabPane; +public: // actually package-private + ::java::awt::LayoutManager * layoutManager; + ::java::awt::Rectangle * tabAreaRect; + ::java::awt::Rectangle * contentRect; +private: + jint rolloverTab; + jboolean tabsOpaque; + ::java::awt::Component * visibleComponent; + ::java::awt::Color * selectedColor; + ::java::awt::Rectangle * tempTextRect; + ::java::awt::Rectangle * tempIconRect; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTabbedPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableHeaderUI$1.h b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI$1.h new file mode 100644 index 00000000000..76e0a4d77c3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableHeaderUI$1__ +#define __javax_swing_plaf_basic_BasicTableHeaderUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTableHeaderUI$1; + class BasicTableHeaderUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTableHeaderUI$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicTableHeaderUI$1(::javax::swing::plaf::basic::BasicTableHeaderUI$MouseInputHandler *); +public: + void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTableHeaderUI$MouseInputHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableHeaderUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler.h new file mode 100644 index 00000000000..379f3ac293f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableHeaderUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicTableHeaderUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class Timer; + namespace plaf + { + namespace basic + { + class BasicTableHeaderUI; + class BasicTableHeaderUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTableHeaderUI$MouseInputHandler : public ::java::lang::Object +{ + +public: + BasicTableHeaderUI$MouseInputHandler(::javax::swing::plaf::basic::BasicTableHeaderUI *); + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual void endResizing(); + virtual void endDragging(::java::awt::event::MouseEvent *); + static ::javax::swing::plaf::basic::BasicTableHeaderUI * access$0(::javax::swing::plaf::basic::BasicTableHeaderUI$MouseInputHandler *); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) showingResizeCursor; + jint draggingFrom; + jint draggingColumnNumber; + jint prevPrefWidth; + ::javax::swing::Timer * timer; + ::javax::swing::plaf::basic::BasicTableHeaderUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableHeaderUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.h b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.h new file mode 100644 index 00000000000..4a31c132e4a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableHeaderUI__ +#define __javax_swing_plaf_basic_BasicTableHeaderUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Cursor; + class Dimension; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class CellRendererPane; + class JComponent; + namespace border + { + class Border; + } + namespace event + { + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicTableHeaderUI; + } + } + namespace table + { + class JTableHeader; + } + } + } +} + +class javax::swing::plaf::basic::BasicTableHeaderUI : public ::javax::swing::plaf::TableHeaderUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::javax::swing::event::MouseInputListener * createMouseInputListener(); +public: + BasicTableHeaderUI(); +public: // actually protected + virtual void installDefaults(); + virtual void installKeyboardActions(); + virtual void installListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(); + virtual void uninstallKeyboardActions(); + virtual void uninstallListeners(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually package-private + static void access$0(::javax::swing::plaf::basic::BasicTableHeaderUI *, ::java::awt::Cursor *); + static ::java::awt::Cursor * access$1(::javax::swing::plaf::basic::BasicTableHeaderUI *); + static jint COLUMN_BOUNDARY_TOLERANCE; +public: // actually protected + ::javax::swing::table::JTableHeader * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TableHeaderUI)))) header; + ::javax::swing::event::MouseInputListener * mouseInputListener; + ::javax::swing::CellRendererPane * rendererPane; +private: + ::javax::swing::border::Border * cellBorder; + ::java::awt::Cursor * originalCursor; +public: // actually package-private + ::java::awt::Rectangle * draggingHeaderRect; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableHeaderUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicTableUI$FocusHandler.h new file mode 100644 index 00000000000..e7ff31e5d6d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableUI$FocusHandler.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicTableUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTableUI; + class BasicTableUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTableUI$FocusHandler : public ::java::lang::Object +{ + +public: + BasicTableUI$FocusHandler(::javax::swing::plaf::basic::BasicTableUI *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +private: + void repaintLeadCell(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTableUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI$KeyHandler.h b/libjava/javax/swing/plaf/basic/BasicTableUI$KeyHandler.h new file mode 100644 index 00000000000..f70e6d3c8dc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableUI$KeyHandler.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableUI$KeyHandler__ +#define __javax_swing_plaf_basic_BasicTableUI$KeyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTableUI; + class BasicTableUI$KeyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTableUI$KeyHandler : public ::java::lang::Object +{ + +public: + BasicTableUI$KeyHandler(::javax::swing::plaf::basic::BasicTableUI *); + virtual void keyTyped(::java::awt::event::KeyEvent *); + virtual void keyPressed(::java::awt::event::KeyEvent *); + virtual void keyReleased(::java::awt::event::KeyEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTableUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableUI$KeyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicTableUI$MouseInputHandler.h new file mode 100644 index 00000000000..a0fb583afe0 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableUI$MouseInputHandler.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicTableUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTableUI; + class BasicTableUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTableUI$MouseInputHandler : public ::java::lang::Object +{ + +public: + BasicTableUI$MouseInputHandler(::javax::swing::plaf::basic::BasicTableUI *); +private: + void updateSelection(jboolean); +public: + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + ::java::awt::Point * __attribute__((aligned(__alignof__( ::java::lang::Object)))) begin; + ::java::awt::Point * curr; + ::javax::swing::plaf::basic::BasicTableUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicTableUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..e51aad5c042 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableUI$PropertyChangeHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicTableUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTableUI; + class BasicTableUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTableUI$PropertyChangeHandler : public ::java::lang::Object +{ + + BasicTableUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicTableUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + BasicTableUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicTableUI *, ::javax::swing::plaf::basic::BasicTableUI$PropertyChangeHandler *); + ::javax::swing::plaf::basic::BasicTableUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI$TableAction.h b/libjava/javax/swing/plaf/basic/BasicTableUI$TableAction.h new file mode 100644 index 00000000000..44a245c51cc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableUI$TableAction.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableUI$TableAction__ +#define __javax_swing_plaf_basic_BasicTableUI$TableAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JTable; + class ListSelectionModel; + namespace plaf + { + namespace basic + { + class BasicTableUI$TableAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTableUI$TableAction : public ::javax::swing::AbstractAction +{ + + BasicTableUI$TableAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + virtual jint getFirstVisibleColumnIndex(::javax::swing::JTable *); + virtual jint getLastVisibleColumnIndex(::javax::swing::JTable *); + virtual jint getFirstVisibleRowIndex(::javax::swing::JTable *); + virtual jint getLastVisibleRowIndex(::javax::swing::JTable *); + virtual void advanceMultipleSelection(::javax::swing::JTable *, ::javax::swing::ListSelectionModel *, jint, jint, ::javax::swing::ListSelectionModel *, jint, jint, jboolean, jboolean); + virtual void advanceSingleSelection(::javax::swing::ListSelectionModel *, jint, ::javax::swing::ListSelectionModel *, jint, jboolean); + BasicTableUI$TableAction(::javax::swing::plaf::basic::BasicTableUI$TableAction *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableUI$TableAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI.h b/libjava/javax/swing/plaf/basic/BasicTableUI.h new file mode 100644 index 00000000000..6abd88fcbfe --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTableUI.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTableUI__ +#define __javax_swing_plaf_basic_BasicTableUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Rectangle; + namespace event + { + class FocusListener; + class KeyListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class CellRendererPane; + class JComponent; + class JTable; + namespace border + { + class Border; + } + namespace event + { + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicTableUI; + class BasicTableUI$TableAction; + } + } + namespace table + { + class TableCellRenderer; + } + } + } +} + +class javax::swing::plaf::basic::BasicTableUI : public ::javax::swing::plaf::TableUI +{ + +public: + BasicTableUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::event::FocusListener * createFocusListener(); + virtual ::javax::swing::event::MouseInputListener * createMouseInputListener(); + virtual ::java::awt::event::KeyListener * createKeyListener(); +public: + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +private: + jint getHeight(); +public: // actually protected + virtual void installDefaults(); + virtual void installKeyboardActions(); +private: + ::javax::swing::ActionMap * getActionMap(); + ::javax::swing::ActionMap * createDefaultActions(); +public: // actually protected + virtual void installListeners(); + virtual void uninstallDefaults(); + virtual void uninstallKeyboardActions(); + virtual void uninstallListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually package-private + virtual void paintCell(::java::awt::Graphics *, jint, jint, ::java::awt::Rectangle *, ::javax::swing::table::TableCellRenderer *); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + ::java::awt::event::FocusListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TableUI)))) focusListener; + ::java::awt::event::KeyListener * keyListener; + ::javax::swing::event::MouseInputListener * mouseInputListener; + ::javax::swing::CellRendererPane * rendererPane; + ::javax::swing::JTable * table; +public: // actually package-private + ::javax::swing::border::Border * cellBorder; + ::javax::swing::plaf::basic::BasicTableUI$TableAction * action; +private: + ::java::beans::PropertyChangeListener * propertyChangeListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTableUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextAreaUI.h b/libjava/javax/swing/plaf/basic/BasicTextAreaUI.h new file mode 100644 index 00000000000..c05b92a0c88 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextAreaUI.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextAreaUI__ +#define __javax_swing_plaf_basic_BasicTextAreaUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicTextAreaUI; + } + } + namespace text + { + class Element; + class View; + } + } + } +} + +class javax::swing::plaf::basic::BasicTextAreaUI : public ::javax::swing::plaf::basic::BasicTextUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + BasicTextAreaUI(); + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextAreaUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextFieldUI.h b/libjava/javax/swing/plaf/basic/BasicTextFieldUI.h new file mode 100644 index 00000000000..be9a77ca0ed --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextFieldUI.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextFieldUI__ +#define __javax_swing_plaf_basic_BasicTextFieldUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicTextFieldUI; + } + } + namespace text + { + class Element; + class View; + } + } + } +} + +class javax::swing::plaf::basic::BasicTextFieldUI : public ::javax::swing::plaf::basic::BasicTextUI +{ + +public: + BasicTextFieldUI(); + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextFieldUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextPaneUI.h b/libjava/javax/swing/plaf/basic/BasicTextPaneUI.h new file mode 100644 index 00000000000..62d9deb3f35 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextPaneUI.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextPaneUI__ +#define __javax_swing_plaf_basic_BasicTextPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicTextPaneUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextPaneUI : public ::javax::swing::plaf::basic::BasicEditorPaneUI +{ + +public: + BasicTextPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + virtual void installUI(::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextPaneUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$1.h b/libjava/javax/swing/plaf/basic/BasicTextUI$1.h new file mode 100644 index 00000000000..8736761e504 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$1.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$1__ +#define __javax_swing_plaf_basic_BasicTextUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTextUI; + class BasicTextUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicTextUI$1(::javax::swing::plaf::basic::BasicTextUI *); +public: + void focusGained(::java::awt::event::FocusEvent *); + void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTextUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$BasicCaret.h b/libjava/javax/swing/plaf/basic/BasicTextUI$BasicCaret.h new file mode 100644 index 00000000000..c89238e10d4 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$BasicCaret.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$BasicCaret__ +#define __javax_swing_plaf_basic_BasicTextUI$BasicCaret__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTextUI$BasicCaret; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$BasicCaret : public ::javax::swing::text::DefaultCaret +{ + +public: + BasicTextUI$BasicCaret(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$BasicCaret__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$BasicHighlighter.h b/libjava/javax/swing/plaf/basic/BasicTextUI$BasicHighlighter.h new file mode 100644 index 00000000000..657f780f93d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$BasicHighlighter.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$BasicHighlighter__ +#define __javax_swing_plaf_basic_BasicTextUI$BasicHighlighter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTextUI$BasicHighlighter; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$BasicHighlighter : public ::javax::swing::text::DefaultHighlighter +{ + +public: + BasicTextUI$BasicHighlighter(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$BasicHighlighter__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$DocumentHandler.h b/libjava/javax/swing/plaf/basic/BasicTextUI$DocumentHandler.h new file mode 100644 index 00000000000..38e9f49998a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$DocumentHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$DocumentHandler__ +#define __javax_swing_plaf_basic_BasicTextUI$DocumentHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace plaf + { + namespace basic + { + class BasicTextUI; + class BasicTextUI$DocumentHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$DocumentHandler : public ::java::lang::Object +{ + +public: // actually package-private + BasicTextUI$DocumentHandler(::javax::swing::plaf::basic::BasicTextUI *); +public: + virtual void changedUpdate(::javax::swing::event::DocumentEvent *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTextUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$DocumentHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicTextUI$FocusHandler.h new file mode 100644 index 00000000000..05267889e7a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$FocusHandler.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicTextUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTextUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$FocusHandler : public ::java::lang::Object +{ + + BasicTextUI$FocusHandler(); +public: + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + BasicTextUI$FocusHandler(::javax::swing::plaf::basic::BasicTextUI$FocusHandler *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$Handler.h b/libjava/javax/swing/plaf/basic/BasicTextUI$Handler.h new file mode 100644 index 00000000000..a8ca57be7bd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$Handler.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$Handler__ +#define __javax_swing_plaf_basic_BasicTextUI$Handler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace plaf + { + namespace basic + { + class BasicTextUI; + class BasicTextUI$Handler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$Handler : public ::java::lang::Object +{ + + BasicTextUI$Handler(::javax::swing::plaf::basic::BasicTextUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *); +public: // actually package-private + BasicTextUI$Handler(::javax::swing::plaf::basic::BasicTextUI *, ::javax::swing::plaf::basic::BasicTextUI$Handler *); + ::javax::swing::plaf::basic::BasicTextUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$Handler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicTextUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..bba4ad46b7b --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$PropertyChangeHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicTextUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTextUI; + class BasicTextUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$PropertyChangeHandler : public ::java::lang::Object +{ + + BasicTextUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicTextUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + BasicTextUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicTextUI *, ::javax::swing::plaf::basic::BasicTextUI$PropertyChangeHandler *); + ::javax::swing::plaf::basic::BasicTextUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI$RootView.h b/libjava/javax/swing/plaf/basic/BasicTextUI$RootView.h new file mode 100644 index 00000000000..33044598a04 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI$RootView.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI$RootView__ +#define __javax_swing_plaf_basic_BasicTextUI$RootView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace plaf + { + namespace basic + { + class BasicTextUI; + class BasicTextUI$RootView; + } + } + namespace text + { + class AttributeSet; + class Document; + class Position$Bias; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI$RootView : public ::javax::swing::text::View +{ + +public: + BasicTextUI$RootView(::javax::swing::plaf::basic::BasicTextUI *); + virtual ::javax::swing::text::ViewFactory * getViewFactory(); + virtual void preferenceChanged(::javax::swing::text::View *, jboolean, jboolean); + virtual void setView(::javax::swing::text::View *); + virtual ::javax::swing::text::View * getView(jint); + virtual jint getViewCount(); + virtual ::java::awt::Container * getContainer(); + virtual void setSize(jfloat, jfloat); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual jint getNextVisualPositionFrom(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jint getStartOffset(); + virtual jint getEndOffset(); + virtual ::javax::swing::text::Document * getDocument(); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual jfloat getPreferredSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual jfloat getMaximumSpan(jint); +private: + ::javax::swing::text::View * __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) view; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTextUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI$RootView__ diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI.h b/libjava/javax/swing/plaf/basic/BasicTextUI.h new file mode 100644 index 00000000000..f96f1332309 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTextUI.h @@ -0,0 +1,137 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTextUI__ +#define __javax_swing_plaf_basic_BasicTextUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Insets; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class InputMap; + class JComponent; + namespace plaf + { + namespace basic + { + class BasicTextUI; + class BasicTextUI$Handler; + class BasicTextUI$RootView; + } + } + namespace text + { + class Caret; + class EditorKit; + class Element; + class Highlighter; + class JTextComponent; + class Keymap; + class Position$Bias; + class View; + } + } + } +} + +class javax::swing::plaf::basic::BasicTextUI : public ::javax::swing::plaf::TextUI +{ + +public: + BasicTextUI(); +public: // actually protected + virtual ::javax::swing::text::Caret * createCaret(); + virtual ::javax::swing::text::Highlighter * createHighlighter(); + virtual ::javax::swing::text::JTextComponent * getComponent(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); +private: + void installFixedDefaults(); +public: // actually protected + virtual void installListeners(); + virtual ::java::lang::String * getKeymapName(); + virtual ::javax::swing::text::Keymap * createKeymap(); + virtual void installKeyboardActions(); +private: + ::javax::swing::ActionMap * getActionMap(); + ::javax::swing::ActionMap * createActionMap(); + ::javax::swing::InputMap * getInputMap(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(); +private: + void uninstallFixedDefaults(); +public: // actually protected + virtual void uninstallListeners(); + virtual void uninstallKeyboardActions(); + virtual ::java::lang::String * getPropertyPrefix() = 0; +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintSafely(::java::awt::Graphics *); + virtual void paintBackground(::java::awt::Graphics *); +public: + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint); + virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint, ::javax::swing::text::Position$Bias *, ::javax::swing::text::Position$Bias *); + virtual ::javax::swing::text::EditorKit * getEditorKit(::javax::swing::text::JTextComponent *); + virtual jint getNextVisualPositionFrom(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual ::javax::swing::text::View * getRootView(::javax::swing::text::JTextComponent *); + virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint); + virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *); + virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *, jint, jint); +public: // actually protected + virtual ::java::awt::Rectangle * getVisibleEditorRect(); + virtual void setView(::javax::swing::text::View *); + virtual void modelChanged(); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +private: + static ::java::awt::event::FocusListener * focusListener; + static ::javax::swing::text::EditorKit * kit; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTextUI$Handler * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TextUI)))) handler; + ::javax::swing::plaf::basic::BasicTextUI$RootView * rootView; + ::javax::swing::text::JTextComponent * textComponent; +private: + ::java::awt::Insets * cachedInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTextUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.h b/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.h new file mode 100644 index 00000000000..45a77348c9a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToggleButtonUI__ +#define __javax_swing_plaf_basic_BasicToggleButtonUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicToggleButtonUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToggleButtonUI : public ::javax::swing::plaf::basic::BasicButtonUI +{ + +public: + BasicToggleButtonUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::lang::String * getPropertyPrefix(); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintIcon(::java::awt::Graphics *, ::javax::swing::AbstractButton *, ::java::awt::Rectangle *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToggleButtonUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarSeparatorUI.h b/libjava/javax/swing/plaf/basic/BasicToolBarSeparatorUI.h new file mode 100644 index 00000000000..a277f3293bd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarSeparatorUI.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarSeparatorUI__ +#define __javax_swing_plaf_basic_BasicToolBarSeparatorUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JSeparator; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicToolBarSeparatorUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarSeparatorUI : public ::javax::swing::plaf::basic::BasicSeparatorUI +{ + +public: + BasicToolBarSeparatorUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(::javax::swing::JSeparator *); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +private: + ::java::awt::Dimension * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicSeparatorUI)))) size; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarSeparatorUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$DockingListener.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$DockingListener.h new file mode 100644 index 00000000000..36511145a51 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$DockingListener.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$DockingListener__ +#define __javax_swing_plaf_basic_BasicToolBarUI$DockingListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JToolBar; + namespace plaf + { + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$DockingListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$DockingListener : public ::java::lang::Object +{ + +public: + BasicToolBarUI$DockingListener(::javax::swing::plaf::basic::BasicToolBarUI *, ::javax::swing::JToolBar *); + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) isDragging; + ::java::awt::Point * origin; + ::javax::swing::JToolBar * toolBar; +public: // actually package-private + ::javax::swing::plaf::basic::BasicToolBarUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$DockingListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$DragWindow.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$DragWindow.h new file mode 100644 index 00000000000..0545be03f3f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$DragWindow.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$DragWindow__ +#define __javax_swing_plaf_basic_BasicToolBarUI$DragWindow__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + class Insets; + class Point; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$DragWindow; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$DragWindow : public ::java::awt::Window +{ + +public: // actually package-private + BasicToolBarUI$DragWindow(::javax::swing::plaf::basic::BasicToolBarUI *); +public: + virtual ::java::awt::Color * getBorderColor(); + virtual ::java::awt::Insets * getInsets(); + virtual ::java::awt::Point * getOffset(); + virtual void paint(::java::awt::Graphics *); + virtual void setBorderColor(::java::awt::Color *); + virtual void setOffset(::java::awt::Point *); + virtual void setOrientation(jint); +private: + ::java::awt::Color * __attribute__((aligned(__alignof__( ::java::awt::Window)))) borderColor; + ::java::awt::Point * offset; +public: // actually package-private + ::javax::swing::plaf::basic::BasicToolBarUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$DragWindow__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$FrameListener.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$FrameListener.h new file mode 100644 index 00000000000..6041d7403fa --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$FrameListener.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$FrameListener__ +#define __javax_swing_plaf_basic_BasicToolBarUI$FrameListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class WindowEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$FrameListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$FrameListener : public ::java::awt::event::WindowAdapter +{ + +public: // actually protected + BasicToolBarUI$FrameListener(::javax::swing::plaf::basic::BasicToolBarUI *); +public: + virtual void windowClosing(::java::awt::event::WindowEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicToolBarUI * __attribute__((aligned(__alignof__( ::java::awt::event::WindowAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$FrameListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$PropertyListener.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$PropertyListener.h new file mode 100644 index 00000000000..39dafa84aba --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$PropertyListener.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$PropertyListener__ +#define __javax_swing_plaf_basic_BasicToolBarUI$PropertyListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$PropertyListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$PropertyListener : public ::java::lang::Object +{ + +public: // actually protected + BasicToolBarUI$PropertyListener(::javax::swing::plaf::basic::BasicToolBarUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicToolBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$PropertyListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarAction.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarAction.h new file mode 100644 index 00000000000..ff10a58dd0a --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$ToolBarAction__ +#define __javax_swing_plaf_basic_BasicToolBarUI$ToolBarAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI$ToolBarAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$ToolBarAction : public ::javax::swing::AbstractAction +{ + +public: // actually package-private + BasicToolBarUI$ToolBarAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$ToolBarAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarBorder.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarBorder.h new file mode 100644 index 00000000000..bcdc5378b59 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarBorder.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$ToolBarBorder__ +#define __javax_swing_plaf_basic_BasicToolBarUI$ToolBarBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI$ToolBarBorder; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$ToolBarBorder : public ::java::lang::Object +{ + + BasicToolBarUI$ToolBarBorder(); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual jboolean isBorderOpaque(); +private: + void paintBumps(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *); +public: + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + static const jint offset = 10; + static const jint regular = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$ToolBarBorder__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener.h new file mode 100644 index 00000000000..0b5d6690dbb --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarContListener.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$ToolBarContListener__ +#define __javax_swing_plaf_basic_BasicToolBarUI$ToolBarContListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ContainerEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$ToolBarContListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$ToolBarContListener : public ::java::lang::Object +{ + +public: // actually protected + BasicToolBarUI$ToolBarContListener(::javax::swing::plaf::basic::BasicToolBarUI *); +public: + virtual void componentAdded(::java::awt::event::ContainerEvent *); + virtual void componentRemoved(::java::awt::event::ContainerEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicToolBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$ToolBarContListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarDialog.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarDialog.h new file mode 100644 index 00000000000..b7ee7b89fdc --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarDialog.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$ToolBarDialog__ +#define __javax_swing_plaf_basic_BasicToolBarUI$ToolBarDialog__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$ToolBarDialog; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$ToolBarDialog : public ::javax::swing::JDialog +{ + +public: + BasicToolBarUI$ToolBarDialog(::javax::swing::plaf::basic::BasicToolBarUI *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicToolBarUI * __attribute__((aligned(__alignof__( ::javax::swing::JDialog)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$ToolBarDialog__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener.h new file mode 100644 index 00000000000..4b5f7de7228 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI$ToolBarFocusListener.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI$ToolBarFocusListener__ +#define __javax_swing_plaf_basic_BasicToolBarUI$ToolBarFocusListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$ToolBarFocusListener; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI$ToolBarFocusListener : public ::java::lang::Object +{ + +public: // actually protected + BasicToolBarUI$ToolBarFocusListener(::javax::swing::plaf::basic::BasicToolBarUI *); +public: + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicToolBarUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI$ToolBarFocusListener__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI.h b/libjava/javax/swing/plaf/basic/BasicToolBarUI.h new file mode 100644 index 00000000000..3b3c1497818 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI.h @@ -0,0 +1,170 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolBarUI__ +#define __javax_swing_plaf_basic_BasicToolBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Container; + class Dimension; + class Point; + class Window; + namespace event + { + class ContainerListener; + class FocusListener; + class WindowListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class JComponent; + class JFrame; + class JToolBar; + class KeyStroke; + class RootPaneContainer; + namespace border + { + class Border; + } + namespace event + { + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicToolBarUI; + class BasicToolBarUI$DragWindow; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolBarUI : public ::javax::swing::plaf::ToolBarUI +{ + +public: + BasicToolBarUI(); + virtual jboolean canDock(::java::awt::Component *, ::java::awt::Point *); +private: + jint areaOfClick(::java::awt::Component *, ::java::awt::Point *); +public: // actually protected + virtual ::javax::swing::event::MouseInputListener * createDockingListener(); + virtual ::javax::swing::plaf::basic::BasicToolBarUI$DragWindow * createDragWindow(::javax::swing::JToolBar *); + virtual ::javax::swing::JFrame * createFloatingFrame(::javax::swing::JToolBar *); + virtual ::javax::swing::RootPaneContainer * createFloatingWindow(::javax::swing::JToolBar *); + virtual ::java::awt::event::WindowListener * createFrameListener(); + virtual ::javax::swing::border::Border * createNonRolloverBorder(); + virtual ::java::beans::PropertyChangeListener * createPropertyListener(); + virtual ::javax::swing::border::Border * createRolloverBorder(); + virtual ::java::awt::event::ContainerListener * createToolBarContListener(); + virtual ::java::awt::event::FocusListener * createToolBarFocusListener(); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual void dragTo(::java::awt::Point *, ::java::awt::Point *); + virtual void floatAt(::java::awt::Point *, ::java::awt::Point *); +public: + virtual ::java::awt::Color * getDockingColor(); + virtual ::java::awt::Color * getFloatingColor(); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); +public: // actually protected + virtual void installComponents(); + virtual void installDefaults(); + virtual void installKeyboardActions(); +private: + ::javax::swing::ActionMap * getActionMap(); + ::javax::swing::ActionMap * createDefaultActions(); +public: // actually protected + virtual void installListeners(); + virtual void installNonRolloverBorders(::javax::swing::JComponent *); + virtual void installNormalBorders(::javax::swing::JComponent *); + virtual void installRolloverBorders(::javax::swing::JComponent *); +private: + void fillHashtable(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual jboolean isFloating(); + virtual jboolean isRolloverBorders(); +public: // actually protected + virtual void navigateFocusedComp(jint); + virtual void setBorderToNonRollover(::java::awt::Component *); + virtual void setBorderToNormal(::java::awt::Component *); + virtual void setBorderToRollover(::java::awt::Component *); +public: + virtual void setDockingColor(::java::awt::Color *); + virtual void setFloating(jboolean, ::java::awt::Point *); + virtual void setFloatingColor(::java::awt::Color *); + virtual void setFloatingLocation(jint, jint); + virtual void setOrientation(jint); + virtual void setRolloverBorders(jboolean); +public: // actually protected + virtual void uninstallComponents(); + virtual void uninstallDefaults(); + virtual void uninstallKeyboardActions(); + virtual void uninstallListeners(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually package-private + static ::javax::swing::JFrame * owner; +private: + static ::javax::swing::border::Border * nonRolloverBorder; + static ::javax::swing::border::Border * rolloverBorder; +public: // actually protected + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ToolBarUI)))) constraintBeforeFloating; +public: // actually package-private + jint lastGoodOrientation; +public: // actually protected + ::java::awt::Color * dockingBorderColor; + ::java::awt::Color * dockingColor; + ::javax::swing::event::MouseInputListener * dockingListener; + ::javax::swing::plaf::basic::BasicToolBarUI$DragWindow * dragWindow; + ::java::awt::Color * floatingBorderColor; + ::java::awt::Color * floatingColor; + jint focusedCompIndex; + ::java::beans::PropertyChangeListener * propertyListener; + ::javax::swing::JToolBar * toolBar; + ::java::awt::event::ContainerListener * toolBarContListener; + ::java::awt::event::FocusListener * toolBarFocusListener; + ::javax::swing::KeyStroke * leftKey; + ::javax::swing::KeyStroke * rightKey; + ::javax::swing::KeyStroke * upKey; + ::javax::swing::KeyStroke * downKey; +private: + ::java::awt::Window * floatFrame; +public: // actually package-private + ::java::awt::Container * origParent; + ::java::util::Hashtable * borders; +private: + ::java::awt::event::WindowListener * windowListener; +public: // actually package-private + ::java::awt::Dimension * cachedBounds; + jint cachedOrientation; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolBarUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolTipUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicToolTipUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..9bc19d1ba82 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolTipUI$PropertyChangeHandler.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolTipUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicToolTipUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicToolTipUI; + class BasicToolTipUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolTipUI$PropertyChangeHandler : public ::java::lang::Object +{ + + BasicToolTipUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicToolTipUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + BasicToolTipUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicToolTipUI *, ::javax::swing::plaf::basic::BasicToolTipUI$PropertyChangeHandler *); + ::javax::swing::plaf::basic::BasicToolTipUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolTipUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicToolTipUI.h b/libjava/javax/swing/plaf/basic/BasicToolTipUI.h new file mode 100644 index 00000000000..a204e00e1e1 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicToolTipUI.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicToolTipUI__ +#define __javax_swing_plaf_basic_BasicToolTipUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicToolTipUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicToolTipUI : public ::javax::swing::plaf::ToolTipUI +{ + +public: + BasicToolTipUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(::javax::swing::JComponent *); + virtual void installListeners(::javax::swing::JComponent *); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(::javax::swing::JComponent *); + virtual void uninstallListeners(::javax::swing::JComponent *); +public: + virtual void uninstallUI(::javax::swing::JComponent *); +private: + static ::javax::swing::plaf::basic::BasicToolTipUI * shared; + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ToolTipUI)))) text; + ::java::beans::PropertyChangeListener * propertyChangeHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicToolTipUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$1.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$1.h new file mode 100644 index 00000000000..944d09abf9d --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$1.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$1__ +#define __javax_swing_plaf_basic_BasicTreeUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$1; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$1 : public ::java::lang::Object +{ + +public: // actually package-private + BasicTreeUI$1(::javax::swing::plaf::basic::BasicTreeUI *); +public: + jint getIconHeight(); + jint getIconWidth(); + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$1__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$2.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$2.h new file mode 100644 index 00000000000..d71232d451f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$2.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$2__ +#define __javax_swing_plaf_basic_BasicTreeUI$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$2; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$2 : public ::java::lang::Object +{ + +public: // actually package-private + BasicTreeUI$2(::javax::swing::plaf::basic::BasicTreeUI *); +public: + jint getIconHeight(); + jint getIconWidth(); + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$2__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.h new file mode 100644 index 00000000000..07bc329e3c3 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$CellEditorHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$CellEditorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$CellEditorHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$CellEditorHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$CellEditorHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void editingStopped(::javax::swing::event::ChangeEvent *); + virtual void editingCanceled(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$CellEditorHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.h new file mode 100644 index 00000000000..ec6d8185735 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$ComponentHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$ComponentHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + class ComponentEvent; + } + } + } + namespace javax + { + namespace swing + { + class JScrollBar; + class JScrollPane; + class Timer; + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$ComponentHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$ComponentHandler : public ::java::awt::event::ComponentAdapter +{ + +public: + BasicTreeUI$ComponentHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void componentMoved(::java::awt::event::ComponentEvent *); +public: // actually protected + virtual void startTimer(); + virtual ::javax::swing::JScrollPane * getScrollPane(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually protected + ::javax::swing::Timer * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentAdapter)))) timer; + ::javax::swing::JScrollBar * scrollBar; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$ComponentHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.h new file mode 100644 index 00000000000..232e989a2e9 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$FocusHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$FocusHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class FocusEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$FocusHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$FocusHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$FocusHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +public: // actually package-private + virtual void repaintLeadRow(); + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$FocusHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.h new file mode 100644 index 00000000000..2be990a8ea5 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$KeyHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$KeyHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class KeyEvent; + } + } + } + namespace javax + { + namespace swing + { + class Action; + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$KeyHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$KeyHandler : public ::java::awt::event::KeyAdapter +{ + +public: + BasicTreeUI$KeyHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void keyTyped(::java::awt::event::KeyEvent *); +public: // actually package-private + virtual jboolean checkMatch(jint, jchar); +public: + virtual void keyPressed(::java::awt::event::KeyEvent *); + virtual void keyReleased(::java::awt::event::KeyEvent *); +public: // actually protected + ::javax::swing::Action * __attribute__((aligned(__alignof__( ::java::awt::event::KeyAdapter)))) repeatKeyAction; + jboolean isKeyDown; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$KeyHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.h new file mode 100644 index 00000000000..2a0893ba233 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$MouseHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$MouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$MouseHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$MouseHandler : public ::java::awt::event::MouseAdapter +{ + +public: + BasicTreeUI$MouseHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); +private: + void handleEvent(::java::awt::event::MouseEvent *); + jboolean __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) selectedOnPress; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$MouseHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.h new file mode 100644 index 00000000000..574d8b56a50 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$MouseInputHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$MouseInputHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$MouseInputHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$MouseInputHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$MouseInputHandler(::javax::swing::plaf::basic::BasicTreeUI *, ::java::awt::Component *, ::java::awt::Component *, ::java::awt::event::MouseEvent *); + 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 *); +public: // actually protected + virtual void removeFromSource(); +private: + void dispatch(::java::awt::event::MouseEvent *); +public: // actually protected + ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) source; + ::java::awt::Component * destination; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$MouseInputHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.h new file mode 100644 index 00000000000..352a37067cd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$NodeDimensionsHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$NodeDimensionsHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$NodeDimensionsHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$NodeDimensionsHandler : public ::javax::swing::tree::AbstractLayoutCache$NodeDimensions +{ + +public: + BasicTreeUI$NodeDimensionsHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual ::java::awt::Rectangle * getNodeDimensions(::java::lang::Object *, jint, jint, jboolean, ::java::awt::Rectangle *); +public: // actually protected + virtual jint getRowX(jint, jint); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::javax::swing::tree::AbstractLayoutCache$NodeDimensions)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$NodeDimensionsHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.h new file mode 100644 index 00000000000..54386de9cbd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$PropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$PropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$PropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$PropertyChangeHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$PropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.h new file mode 100644 index 00000000000..52b52d1c375 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$SelectionModelPropertyChangeHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$SelectionModelPropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$SelectionModelPropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$SelectionModelPropertyChangeHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$SelectionModelPropertyChangeHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$SelectionModelPropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.h new file mode 100644 index 00000000000..b64ba698eda --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeCancelEditingAction__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeCancelEditingAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeCancelEditingAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeCancelEditingAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTreeUI$TreeCancelEditingAction(::javax::swing::plaf::basic::BasicTreeUI *, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeCancelEditingAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.h new file mode 100644 index 00000000000..52ba7c8bb1f --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeExpansionHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeExpansionHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeExpansionEvent; + } + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeExpansionHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeExpansionHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$TreeExpansionHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void treeExpanded(::javax::swing::event::TreeExpansionEvent *); + virtual void treeCollapsed(::javax::swing::event::TreeExpansionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeExpansionHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.h new file mode 100644 index 00000000000..1b25c11646c --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeHomeAction__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeHomeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeHomeAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeHomeAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTreeUI$TreeHomeAction(::javax::swing::plaf::basic::BasicTreeUI *, jint, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) direction; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeHomeAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.h new file mode 100644 index 00000000000..03ed852179e --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeIncrementAction__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeIncrementAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeIncrementAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeIncrementAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTreeUI$TreeIncrementAction(::javax::swing::plaf::basic::BasicTreeUI *, jint, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) direction; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeIncrementAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.h new file mode 100644 index 00000000000..9ea52685087 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeModelHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeModelHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeModelEvent; + } + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeModelHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeModelHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$TreeModelHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *); + virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeModelHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.h new file mode 100644 index 00000000000..5cb1725d4fd --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreePageAction__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreePageAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreePageAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreePageAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTreeUI$TreePageAction(::javax::swing::plaf::basic::BasicTreeUI *, jint, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) direction; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreePageAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.h new file mode 100644 index 00000000000..73ff33b1c15 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeSelectionHandler__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeSelectionHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeSelectionEvent; + } + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeSelectionHandler; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeSelectionHandler : public ::java::lang::Object +{ + +public: + BasicTreeUI$TreeSelectionHandler(::javax::swing::plaf::basic::BasicTreeUI *); + virtual void valueChanged(::javax::swing::event::TreeSelectionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeSelectionHandler__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.h new file mode 100644 index 00000000000..fa01f97ddbf --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeStartEditingAction__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeStartEditingAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeStartEditingAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeStartEditingAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTreeUI$TreeStartEditingAction(::javax::swing::plaf::basic::BasicTreeUI *, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeStartEditingAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.h new file mode 100644 index 00000000000..59b5c5e2ea6 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeToggleAction__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeToggleAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeToggleAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeToggleAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTreeUI$TreeToggleAction(::javax::swing::plaf::basic::BasicTreeUI *, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeToggleAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.h b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.h new file mode 100644 index 00000000000..617dbd65299 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI$TreeTraverseAction__ +#define __javax_swing_plaf_basic_BasicTreeUI$TreeTraverseAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicTreeUI; + class BasicTreeUI$TreeTraverseAction; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI$TreeTraverseAction : public ::javax::swing::AbstractAction +{ + +public: + BasicTreeUI$TreeTraverseAction(::javax::swing::plaf::basic::BasicTreeUI *, jint, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + virtual jboolean isEnabled(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) direction; +public: // actually package-private + ::javax::swing::plaf::basic::BasicTreeUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI$TreeTraverseAction__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI.h b/libjava/javax/swing/plaf/basic/BasicTreeUI.h new file mode 100644 index 00000000000..134cb2f3df8 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI.h @@ -0,0 +1,280 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicTreeUI__ +#define __javax_swing_plaf_basic_BasicTreeUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Dimension; + class Graphics; + class Insets; + class Rectangle; + namespace event + { + class ComponentListener; + class FocusListener; + class KeyListener; + class MouseEvent; + class MouseListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class CellRendererPane; + class Icon; + class JComponent; + class JTree; + namespace event + { + class CellEditorListener; + class TreeExpansionListener; + class TreeModelListener; + class TreeSelectionListener; + } + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicTreeUI; + } + } + namespace tree + { + class AbstractLayoutCache; + class AbstractLayoutCache$NodeDimensions; + class TreeCellEditor; + class TreeCellRenderer; + class TreeModel; + class TreePath; + class TreeSelectionModel; + } + } + } +} + +class javax::swing::plaf::basic::BasicTreeUI : public ::javax::swing::plaf::TreeUI +{ + +public: + BasicTreeUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::Color * getHashColor(); + virtual void setHashColor(::java::awt::Color *); +public: + virtual void setLeftChildIndent(jint); + virtual jint getLeftChildIndent(); + virtual void setRightChildIndent(jint); + virtual jint getRightChildIndent(); + virtual void setExpandedIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getExpandedIcon(); + virtual void setCollapsedIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getCollapsedIcon(); +public: // actually protected + virtual void setLargeModel(jboolean); + virtual jboolean isLargeModel(); + virtual void setRowHeight(jint); + virtual jint getRowHeight(); + virtual void setCellRenderer(::javax::swing::tree::TreeCellRenderer *); + virtual ::javax::swing::tree::TreeCellRenderer * getCellRenderer(); + virtual void setModel(::javax::swing::tree::TreeModel *); + virtual ::javax::swing::tree::TreeModel * getModel(); + virtual void setRootVisible(jboolean); + virtual jboolean isRootVisible(); + virtual void setShowsRootHandles(jboolean); + virtual jboolean getShowsRootHandles(); + virtual void setCellEditor(::javax::swing::tree::TreeCellEditor *); + virtual ::javax::swing::tree::TreeCellEditor * getCellEditor(); + virtual void setEditable(jboolean); + virtual jboolean isEditable(); + virtual void setSelectionModel(::javax::swing::tree::TreeSelectionModel *); + virtual ::javax::swing::tree::TreeSelectionModel * getSelectionModel(); +public: + virtual ::java::awt::Rectangle * getPathBounds(::javax::swing::JTree *, ::javax::swing::tree::TreePath *); +public: // actually package-private + virtual jint getMaxHeight(::javax::swing::JTree *); + virtual ::javax::swing::Icon * getNodeIcon(::javax::swing::tree::TreePath *); +public: + virtual ::javax::swing::tree::TreePath * getPathForRow(::javax::swing::JTree *, jint); + virtual jint getRowForPath(::javax::swing::JTree *, ::javax::swing::tree::TreePath *); + virtual jint getRowCount(::javax::swing::JTree *); + virtual ::javax::swing::tree::TreePath * getClosestPathForLocation(::javax::swing::JTree *, jint, jint); + virtual jboolean isEditing(::javax::swing::JTree *); + virtual jboolean stopEditing(::javax::swing::JTree *); + virtual void cancelEditing(::javax::swing::JTree *); + virtual void startEditingAtPath(::javax::swing::JTree *, ::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getEditingPath(::javax::swing::JTree *); +public: // actually protected + virtual void prepareForUIInstall(); + virtual void completeUIInstall(); + virtual void completeUIUninstall(); + virtual void installComponents(); + virtual ::javax::swing::tree::AbstractLayoutCache$NodeDimensions * createNodeDimensions(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::java::awt::event::MouseListener * createMouseListener(); + virtual ::java::awt::event::FocusListener * createFocusListener(); + virtual ::java::awt::event::KeyListener * createKeyListener(); + virtual ::java::beans::PropertyChangeListener * createSelectionModelPropertyChangeListener(); + virtual ::javax::swing::event::TreeSelectionListener * createTreeSelectionListener(); + virtual ::javax::swing::event::CellEditorListener * createCellEditorListener(); + virtual ::java::awt::event::ComponentListener * createComponentListener(); + virtual ::javax::swing::event::TreeExpansionListener * createTreeExpansionListener(); + virtual ::javax::swing::tree::AbstractLayoutCache * createLayoutCache(); + virtual ::javax::swing::CellRendererPane * createCellRendererPane(); + virtual ::javax::swing::tree::TreeCellEditor * createDefaultCellEditor(); + virtual ::javax::swing::tree::TreeCellRenderer * createDefaultCellRenderer(); + virtual ::javax::swing::event::TreeModelListener * createTreeModelListener(); + virtual void uninstallListeners(); + virtual void uninstallKeyboardActions(); + virtual void uninstallComponents(); + virtual jint getVerticalLegBuffer(); + virtual jint getHorizontalLegBuffer(); + virtual void updateLayoutCacheExpandedNodes(); + virtual void updateExpandedDescendants(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getLastChildPath(::javax::swing::tree::TreePath *); + virtual void updateDepthOffset(); + virtual void updateCellEditor(); + virtual void updateRenderer(); + virtual void configureLayoutCache(); + virtual void updateSize(); + virtual void updateCachedPreferredSize(); + virtual void pathWasExpanded(::javax::swing::tree::TreePath *); + virtual void pathWasCollapsed(::javax::swing::tree::TreePath *); + virtual void installDefaults(); + virtual void installKeyboardActions(); +private: + ::javax::swing::ActionMap * getActionMap(); + ::javax::swing::ActionMap * createDefaultActions(); + jint convertModifiers(jint); +public: // actually protected + virtual void installListeners(); +public: + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual void uninstallDefaults(); +public: + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +private: + jboolean isLastChild(::javax::swing::tree::TreePath *); +public: // actually protected + virtual void ensureRowsAreVisible(jint, jint); +public: + virtual void setPreferredMinSize(::java::awt::Dimension *); + virtual ::java::awt::Dimension * getPreferredMinSize(); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *, jboolean); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); +public: // actually protected + virtual void completeEditing(); + virtual void completeEditing(jboolean, jboolean, jboolean); + virtual jboolean startEditing(::javax::swing::tree::TreePath *, ::java::awt::event::MouseEvent *); +private: + void editorRequestFocus(::java::awt::Component *); +public: // actually protected + virtual void checkForClickInExpandControl(::javax::swing::tree::TreePath *, jint, jint); + virtual jboolean isLocationInExpandControl(::javax::swing::tree::TreePath *, jint, jint); + virtual void handleExpandControlClick(::javax::swing::tree::TreePath *, jint, jint); + virtual void toggleExpandState(::javax::swing::tree::TreePath *); + virtual jboolean isToggleSelectionEvent(::java::awt::event::MouseEvent *); + virtual jboolean isMultiSelectEvent(::java::awt::event::MouseEvent *); + virtual jboolean isToggleEvent(::java::awt::event::MouseEvent *); + virtual void selectPathForEvent(::javax::swing::tree::TreePath *, ::java::awt::event::MouseEvent *); + virtual jboolean isLeaf(jint); +public: // actually package-private + virtual jboolean hasControlIcons(); + virtual ::javax::swing::Icon * getCurrentControlIcon(::javax::swing::tree::TreePath *); + virtual ::java::lang::Object * getParent(::java::lang::Object *, ::java::lang::Object *); +private: + ::java::lang::Object * findNode(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + virtual void selectPath(::javax::swing::JTree *, ::javax::swing::tree::TreePath *); + virtual JArray< ::java::lang::Object * > * getPathToRoot(::java::lang::Object *, jint); +public: // actually protected + virtual void paintVerticalLine(::java::awt::Graphics *, ::javax::swing::JComponent *, jint, jint, jint); + virtual void paintHorizontalLine(::java::awt::Graphics *, ::javax::swing::JComponent *, jint, jint, jint); + virtual void drawCentered(::java::awt::Component *, ::java::awt::Graphics *, ::javax::swing::Icon *, jint, jint); + virtual void drawDashedHorizontalLine(::java::awt::Graphics *, jint, jint, jint); + virtual void drawDashedVerticalLine(::java::awt::Graphics *, jint, jint, jint); + virtual void paintExpandControl(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Insets *, ::java::awt::Rectangle *, ::javax::swing::tree::TreePath *, jint, jboolean, jboolean, jboolean); + virtual void paintHorizontalPartOfLeg(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Insets *, ::java::awt::Rectangle *, ::javax::swing::tree::TreePath *, jint, jboolean, jboolean, jboolean); + virtual void paintVerticalPartOfLeg(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Insets *, ::javax::swing::tree::TreePath *); + virtual void paintRow(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Insets *, ::java::awt::Rectangle *, ::javax::swing::tree::TreePath *, jint, jboolean, jboolean, jboolean); + virtual void prepareForUIUninstall(); + virtual jboolean shouldPaintExpandControl(::javax::swing::tree::TreePath *, jint, jboolean, jboolean, jboolean); + virtual jint getRowX(jint, jint); +public: // actually package-private + static jint WAIT_TILL_EDITING; +public: // actually protected + ::javax::swing::Icon * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TreeUI)))) collapsedIcon; + ::javax::swing::Icon * expandedIcon; + jint leftChildIndent; + jint rightChildIndent; + jint totalChildIndent; + jint lastSelectedRow; + ::javax::swing::JTree * tree; + ::javax::swing::tree::TreeCellRenderer * currentCellRenderer; + jboolean createdRenderer; + ::javax::swing::tree::TreeCellEditor * cellEditor; + jboolean createdCellEditor; + jboolean stopEditingInCompleteEditing; + ::javax::swing::CellRendererPane * rendererPane; + ::java::awt::Dimension * preferredSize; + ::java::awt::Dimension * preferredMinSize; + jboolean validCachedPreferredSize; + ::javax::swing::tree::AbstractLayoutCache * treeState; + ::java::util::Hashtable * drawingCache; + jboolean largeModel; + ::javax::swing::tree::AbstractLayoutCache$NodeDimensions * nodeDimensions; + ::javax::swing::tree::TreeModel * treeModel; + ::javax::swing::tree::TreeSelectionModel * treeSelectionModel; + jint depthOffset; + ::java::awt::Component * editingComponent; + ::javax::swing::tree::TreePath * editingPath; + jint editingRow; + jboolean editorHasDifferentSize; +public: // actually package-private + jboolean isEditing__; + ::javax::swing::tree::TreePath * currentVisiblePath; + jint gap; + jint maxHeight; + ::java::awt::Color * hashColor; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::java::awt::event::FocusListener * focusListener; + ::javax::swing::event::TreeSelectionListener * treeSelectionListener; + ::java::awt::event::MouseListener * mouseListener; + ::java::awt::event::KeyListener * keyListener; + ::java::beans::PropertyChangeListener * selectionModelPropertyChangeListener; + ::java::awt::event::ComponentListener * componentListener; + ::javax::swing::event::CellEditorListener * cellEditorListener; + ::javax::swing::event::TreeExpansionListener * treeExpansionListener; + ::javax::swing::event::TreeModelListener * treeModelListener; + static ::javax::swing::Icon * nullIcon; + static ::java::awt::event::MouseEvent * EDIT; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicTreeUI__ diff --git a/libjava/javax/swing/plaf/basic/BasicViewportUI.h b/libjava/javax/swing/plaf/basic/BasicViewportUI.h new file mode 100644 index 00000000000..f657f7dc098 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/BasicViewportUI.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_BasicViewportUI__ +#define __javax_swing_plaf_basic_BasicViewportUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicViewportUI; + } + } + } + } +} + +class javax::swing::plaf::basic::BasicViewportUI : public ::javax::swing::plaf::ViewportUI +{ + +public: + BasicViewportUI(); +public: // actually protected + virtual void installDefaults(::javax::swing::JComponent *); + virtual void uninstallDefaults(::javax::swing::JComponent *); +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_BasicViewportUI__ diff --git a/libjava/javax/swing/plaf/basic/ComboPopup.h b/libjava/javax/swing/plaf/basic/ComboPopup.h new file mode 100644 index 00000000000..9f01bedb340 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/ComboPopup.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_ComboPopup__ +#define __javax_swing_plaf_basic_ComboPopup__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class KeyListener; + class MouseListener; + class MouseMotionListener; + } + } + } + namespace javax + { + namespace swing + { + class JList; + namespace plaf + { + namespace basic + { + class ComboPopup; + } + } + } + } +} + +class javax::swing::plaf::basic::ComboPopup : public ::java::lang::Object +{ + +public: + virtual void show() = 0; + virtual void hide() = 0; + virtual jboolean isVisible() = 0; + virtual ::javax::swing::JList * getList() = 0; + virtual ::java::awt::event::MouseListener * getMouseListener() = 0; + virtual ::java::awt::event::MouseMotionListener * getMouseMotionListener() = 0; + virtual ::java::awt::event::KeyListener * getKeyListener() = 0; + virtual void uninstallingUI() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_plaf_basic_ComboPopup__ diff --git a/libjava/javax/swing/plaf/basic/DefaultMenuLayout.h b/libjava/javax/swing/plaf/basic/DefaultMenuLayout.h new file mode 100644 index 00000000000..15b06f2a807 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/DefaultMenuLayout.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_DefaultMenuLayout__ +#define __javax_swing_plaf_basic_DefaultMenuLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class DefaultMenuLayout; + } + } + } + } +} + +class javax::swing::plaf::basic::DefaultMenuLayout : public ::javax::swing::BoxLayout +{ + +public: + DefaultMenuLayout(::java::awt::Container *, jint); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_DefaultMenuLayout__ diff --git a/libjava/javax/swing/plaf/basic/SharedUIDefaults.h b/libjava/javax/swing/plaf/basic/SharedUIDefaults.h new file mode 100644 index 00000000000..7db5a2f3b50 --- /dev/null +++ b/libjava/javax/swing/plaf/basic/SharedUIDefaults.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_basic_SharedUIDefaults__ +#define __javax_swing_plaf_basic_SharedUIDefaults__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class SharedUIDefaults; + } + } + } + } +} + +class javax::swing::plaf::basic::SharedUIDefaults : public ::java::lang::Object +{ + +public: + SharedUIDefaults(); +public: // actually package-private + static ::java::lang::Object * get(::java::lang::String *); + static ::java::awt::Color * getColor(::java::lang::String *); +private: + static ::java::util::HashMap * sharedDefaults; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_basic_SharedUIDefaults__ diff --git a/libjava/javax/swing/plaf/metal/DefaultMetalTheme.h b/libjava/javax/swing/plaf/metal/DefaultMetalTheme.h new file mode 100644 index 00000000000..8ce9a8c1b5a --- /dev/null +++ b/libjava/javax/swing/plaf/metal/DefaultMetalTheme.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_DefaultMetalTheme__ +#define __javax_swing_plaf_metal_DefaultMetalTheme__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + class ColorUIResource; + class FontUIResource; + namespace metal + { + class DefaultMetalTheme; + } + } + } + } +} + +class javax::swing::plaf::metal::DefaultMetalTheme : public ::javax::swing::plaf::metal::MetalTheme +{ + +public: + DefaultMetalTheme(); + virtual ::java::lang::String * getName(); +public: // actually protected + virtual ::javax::swing::plaf::ColorUIResource * getPrimary1(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary2(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary3(); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary1(); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary2(); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary3(); +public: + virtual ::javax::swing::plaf::FontUIResource * getControlTextFont(); + virtual ::javax::swing::plaf::FontUIResource * getMenuTextFont(); + virtual ::javax::swing::plaf::FontUIResource * getSubTextFont(); + virtual ::javax::swing::plaf::FontUIResource * getSystemTextFont(); + virtual ::javax::swing::plaf::FontUIResource * getUserTextFont(); + virtual ::javax::swing::plaf::FontUIResource * getWindowTitleFont(); +private: + ::javax::swing::plaf::FontUIResource * getFont(jint); + jboolean isBoldMetal(); + static ::javax::swing::plaf::ColorUIResource * PRIMARY1; + static ::javax::swing::plaf::ColorUIResource * PRIMARY2; + static ::javax::swing::plaf::ColorUIResource * PRIMARY3; + static ::javax::swing::plaf::ColorUIResource * SECONDARY1; + static ::javax::swing::plaf::ColorUIResource * SECONDARY2; + static ::javax::swing::plaf::ColorUIResource * SECONDARY3; + static ::javax::swing::plaf::FontUIResource * SUB_TEXT_FONT; + static ::javax::swing::plaf::FontUIResource * SYSTEM_TEXT_FONT; + static ::javax::swing::plaf::FontUIResource * USER_TEXT_FONT; + static ::javax::swing::plaf::FontUIResource * WINDOW_TITLE_FONT; + static ::javax::swing::plaf::FontUIResource * PLAIN_CONTROL_TEXT_FONT; + static ::javax::swing::plaf::FontUIResource * BOLD_CONTROL_TEXT_FONT; + static ::javax::swing::plaf::FontUIResource * PLAIN_MENU_TEXT_FONT; + static ::javax::swing::plaf::FontUIResource * BOLD_MENU_TEXT_FONT; +public: // actually package-private + static const jint CONTROL_TEXT_FONT = 1; + static const jint MENU_TEXT_FONT = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_DefaultMetalTheme__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$ButtonBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$ButtonBorder.h new file mode 100644 index 00000000000..23e18daddbb --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$ButtonBorder.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$ButtonBorder__ +#define __javax_swing_plaf_metal_MetalBorders$ButtonBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$ButtonBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$ButtonBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$ButtonBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + void paintDefaultButtonBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + void paintOceanButtonBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually protected + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$ButtonBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$DesktopIconBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$DesktopIconBorder.h new file mode 100644 index 00000000000..ba3739cf631 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$DesktopIconBorder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$DesktopIconBorder__ +#define __javax_swing_plaf_metal_MetalBorders$DesktopIconBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$DesktopIconBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$DesktopIconBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$DesktopIconBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$DesktopIconBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$Flush3DBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$Flush3DBorder.h new file mode 100644 index 00000000000..be51edc5bf1 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$Flush3DBorder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$Flush3DBorder__ +#define __javax_swing_plaf_metal_MetalBorders$Flush3DBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$Flush3DBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$Flush3DBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$Flush3DBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$Flush3DBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$InternalFrameBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$InternalFrameBorder.h new file mode 100644 index 00000000000..e85132faef8 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$InternalFrameBorder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$InternalFrameBorder__ +#define __javax_swing_plaf_metal_MetalBorders$InternalFrameBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$InternalFrameBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$InternalFrameBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$InternalFrameBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$InternalFrameBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$MenuBarBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$MenuBarBorder.h new file mode 100644 index 00000000000..b42e516e8fb --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$MenuBarBorder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$MenuBarBorder__ +#define __javax_swing_plaf_metal_MetalBorders$MenuBarBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$MenuBarBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$MenuBarBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$MenuBarBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually protected + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$MenuBarBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$MenuItemBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$MenuItemBorder.h new file mode 100644 index 00000000000..b339b8758bb --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$MenuItemBorder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$MenuItemBorder__ +#define __javax_swing_plaf_metal_MetalBorders$MenuItemBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$MenuItemBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$MenuItemBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$MenuItemBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually protected + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$MenuItemBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$OptionDialogBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$OptionDialogBorder.h new file mode 100644 index 00000000000..1a04e67ec7e --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$OptionDialogBorder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$OptionDialogBorder__ +#define __javax_swing_plaf_metal_MetalBorders$OptionDialogBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$OptionDialogBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$OptionDialogBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$OptionDialogBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$OptionDialogBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$PaletteBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$PaletteBorder.h new file mode 100644 index 00000000000..853bd4cef7c --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$PaletteBorder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$PaletteBorder__ +#define __javax_swing_plaf_metal_MetalBorders$PaletteBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$PaletteBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$PaletteBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$PaletteBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$PaletteBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$PopupMenuBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$PopupMenuBorder.h new file mode 100644 index 00000000000..cc66966b672 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$PopupMenuBorder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$PopupMenuBorder__ +#define __javax_swing_plaf_metal_MetalBorders$PopupMenuBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$PopupMenuBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$PopupMenuBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$PopupMenuBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +public: // actually protected + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$PopupMenuBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder.h new file mode 100644 index 00000000000..e34c0cf372e --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$RolloverButtonBorder__ +#define __javax_swing_plaf_metal_MetalBorders$RolloverButtonBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$RolloverButtonBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$RolloverButtonBorder : public ::javax::swing::plaf::metal::MetalBorders$ButtonBorder +{ + +public: + MetalBorders$RolloverButtonBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$RolloverButtonBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder.h new file mode 100644 index 00000000000..78e6c4f00c1 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$RolloverMarginBorder__ +#define __javax_swing_plaf_metal_MetalBorders$RolloverMarginBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$RolloverMarginBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$RolloverMarginBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$RolloverMarginBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); +public: // actually protected + static ::java::awt::Insets * borderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$RolloverMarginBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder.h new file mode 100644 index 00000000000..d6baf243933 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$ScrollPaneBorder__ +#define __javax_swing_plaf_metal_MetalBorders$ScrollPaneBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$ScrollPaneBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$ScrollPaneBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$ScrollPaneBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + static ::java::awt::Insets * insets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$ScrollPaneBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$TableHeaderBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$TableHeaderBorder.h new file mode 100644 index 00000000000..94874119183 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$TableHeaderBorder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$TableHeaderBorder__ +#define __javax_swing_plaf_metal_MetalBorders$TableHeaderBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$TableHeaderBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$TableHeaderBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$TableHeaderBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +public: // actually protected + ::java::awt::Insets * __attribute__((aligned(__alignof__( ::javax::swing::border::AbstractBorder)))) editorBorderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$TableHeaderBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$TextFieldBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$TextFieldBorder.h new file mode 100644 index 00000000000..de1e4e7d864 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$TextFieldBorder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$TextFieldBorder__ +#define __javax_swing_plaf_metal_MetalBorders$TextFieldBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$TextFieldBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$TextFieldBorder : public ::javax::swing::plaf::metal::MetalBorders$Flush3DBorder +{ + +public: + MetalBorders$TextFieldBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$TextFieldBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder.h new file mode 100644 index 00000000000..6d9f3de5c03 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$ToggleButtonBorder__ +#define __javax_swing_plaf_metal_MetalBorders$ToggleButtonBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$ToggleButtonBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$ToggleButtonBorder : public ::javax::swing::plaf::metal::MetalBorders$ButtonBorder +{ + +public: + MetalBorders$ToggleButtonBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$ToggleButtonBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders$ToolBarBorder.h b/libjava/javax/swing/plaf/metal/MetalBorders$ToolBarBorder.h new file mode 100644 index 00000000000..da97e79e506 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders$ToolBarBorder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders$ToolBarBorder__ +#define __javax_swing_plaf_metal_MetalBorders$ToolBarBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$ToolBarBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders$ToolBarBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalBorders$ToolBarBorder(); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders$ToolBarBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalBorders.h b/libjava/javax/swing/plaf/metal/MetalBorders.h new file mode 100644 index 00000000000..63101bfb525 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalBorders.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalBorders__ +#define __javax_swing_plaf_metal_MetalBorders__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace plaf + { + namespace basic + { + class BasicBorders$MarginBorder; + } + namespace metal + { + class MetalBorders; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalBorders : public ::java::lang::Object +{ + +public: + MetalBorders(); + static ::javax::swing::border::Border * getButtonBorder(); + static ::javax::swing::border::Border * getToggleButtonBorder(); + static ::javax::swing::border::Border * getDesktopIconBorder(); + static ::javax::swing::border::Border * getTextFieldBorder(); + static ::javax::swing::border::Border * getTextBorder(); +public: // actually package-private + static ::javax::swing::border::Border * getToolbarButtonBorder(); + static ::javax::swing::border::Border * getMarginBorder(); + static ::javax::swing::border::Border * getRolloverBorder(); +private: + static ::javax::swing::border::Border * buttonBorder; + static ::javax::swing::border::Border * toggleButtonBorder; + static ::javax::swing::border::Border * desktopIconBorder; + static ::javax::swing::border::Border * toolbarButtonBorder; + static ::javax::swing::border::Border * textFieldBorder; + static ::javax::swing::border::Border * textBorder; + static ::javax::swing::border::Border * rolloverBorder; + static ::javax::swing::plaf::basic::BasicBorders$MarginBorder * marginBorder; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalBorders__ diff --git a/libjava/javax/swing/plaf/metal/MetalButtonListener.h b/libjava/javax/swing/plaf/metal/MetalButtonListener.h new file mode 100644 index 00000000000..0beeef1718a --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalButtonListener.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalButtonListener__ +#define __javax_swing_plaf_metal_MetalButtonListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + namespace plaf + { + namespace metal + { + class MetalButtonListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalButtonListener : public ::javax::swing::plaf::basic::BasicButtonListener +{ + +public: + MetalButtonListener(::javax::swing::AbstractButton *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalButtonListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalButtonUI.h b/libjava/javax/swing/plaf/metal/MetalButtonUI.h new file mode 100644 index 00000000000..d2e6ced26a1 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalButtonUI.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalButtonUI__ +#define __javax_swing_plaf_metal_MetalButtonUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalButtonUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalButtonUI : public ::javax::swing::plaf::basic::BasicButtonUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + MetalButtonUI(); +public: // actually protected + virtual ::java::awt::Color * getFocusColor(); + virtual ::java::awt::Color * getSelectColor(); + virtual ::java::awt::Color * getDisabledTextColor(); +public: + virtual void installDefaults(::javax::swing::AbstractButton *); + virtual void uninstallDefaults(::javax::swing::AbstractButton *); +public: // actually protected + virtual void paintButtonPressed(::java::awt::Graphics *, ::javax::swing::AbstractButton *); + virtual void paintFocus(::java::awt::Graphics *, ::javax::swing::AbstractButton *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *); + virtual void paintText(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *, ::java::lang::String *); +public: + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); +private: + jboolean isToolbarButton(::java::awt::Component *); + jboolean isDrawingGradient(::java::lang::String *); + static ::javax::swing::plaf::metal::MetalButtonUI * sharedUI; +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicButtonUI)))) focusColor; + ::java::awt::Color * selectColor; + ::java::awt::Color * disabledTextColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalButtonUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalCheckBoxIcon.h b/libjava/javax/swing/plaf/metal/MetalCheckBoxIcon.h new file mode 100644 index 00000000000..b30ae97ba21 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalCheckBoxIcon.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalCheckBoxIcon__ +#define __javax_swing_plaf_metal_MetalCheckBoxIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalBorders$ButtonBorder; + class MetalCheckBoxIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalCheckBoxIcon : public ::java::lang::Object +{ + +public: + MetalCheckBoxIcon(); +public: // actually protected + virtual void drawCheck(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + virtual jint getControlSize(); +public: + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually package-private + ::javax::swing::plaf::metal::MetalBorders$ButtonBorder * __attribute__((aligned(__alignof__( ::java::lang::Object)))) border; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalCheckBoxIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalCheckBoxUI.h b/libjava/javax/swing/plaf/metal/MetalCheckBoxUI.h new file mode 100644 index 00000000000..fff6cd27ef1 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalCheckBoxUI.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalCheckBoxUI__ +#define __javax_swing_plaf_metal_MetalCheckBoxUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalCheckBoxUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalCheckBoxUI : public ::javax::swing::plaf::metal::MetalRadioButtonUI +{ + +public: + MetalCheckBoxUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::lang::String * getPropertyPrefix(); +private: + static ::javax::swing::plaf::metal::MetalCheckBoxUI * instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalCheckBoxUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxButton.h b/libjava/javax/swing/plaf/metal/MetalComboBoxButton.h new file mode 100644 index 00000000000..000e755fbe0 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxButton.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxButton__ +#define __javax_swing_plaf_metal_MetalComboBoxButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class CellRendererPane; + class Icon; + class JComboBox; + class JList; + namespace plaf + { + namespace metal + { + class MetalComboBoxButton; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxButton : public ::javax::swing::JButton +{ + +public: + MetalComboBoxButton(::javax::swing::JComboBox *, ::javax::swing::Icon *, ::javax::swing::CellRendererPane *, ::javax::swing::JList *); + MetalComboBoxButton(::javax::swing::JComboBox *, ::javax::swing::Icon *, jboolean, ::javax::swing::CellRendererPane *, ::javax::swing::JList *); + virtual ::javax::swing::JComboBox * getComboBox(); + virtual void setComboBox(::javax::swing::JComboBox *); + virtual ::javax::swing::Icon * getComboIcon(); + virtual void setComboIcon(::javax::swing::Icon *); + virtual jboolean isIconOnly(); + virtual void setIconOnly(jboolean); + virtual jboolean isFocusTraversable(); + virtual void setEnabled(jboolean); + virtual void paintComponent(::java::awt::Graphics *); +public: // actually protected + ::javax::swing::JComboBox * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) comboBox; + ::javax::swing::JList * listBox; + ::javax::swing::CellRendererPane * rendererPane; + ::javax::swing::Icon * comboIcon; + jboolean iconOnly; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxButton__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$EditorTextField.h b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$EditorTextField.h new file mode 100644 index 00000000000..501e1386457 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$EditorTextField.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxEditor$EditorTextField__ +#define __javax_swing_plaf_metal_MetalComboBoxEditor$EditorTextField__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalComboBoxEditor; + class MetalComboBoxEditor$EditorTextField; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxEditor$EditorTextField : public ::javax::swing::JTextField +{ + +public: // actually package-private + MetalComboBoxEditor$EditorTextField(::javax::swing::plaf::metal::MetalComboBoxEditor *, ::java::lang::String *, jint); +public: + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Dimension * getMinimumSize(); +public: // actually package-private + ::javax::swing::plaf::metal::MetalComboBoxEditor * __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxEditor$EditorTextField__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$MetalComboBoxEditorBorder.h b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$MetalComboBoxEditorBorder.h new file mode 100644 index 00000000000..4f8166c503b --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$MetalComboBoxEditorBorder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxEditor$MetalComboBoxEditorBorder__ +#define __javax_swing_plaf_metal_MetalComboBoxEditor$MetalComboBoxEditorBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalComboBoxEditor$MetalComboBoxEditorBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxEditor$MetalComboBoxEditorBorder : public ::javax::swing::border::AbstractBorder +{ + +public: + MetalComboBoxEditor$MetalComboBoxEditorBorder(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxEditor$MetalComboBoxEditorBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$UIResource.h b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$UIResource.h new file mode 100644 index 00000000000..edf8097d42d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor$UIResource.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxEditor$UIResource__ +#define __javax_swing_plaf_metal_MetalComboBoxEditor$UIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalComboBoxEditor$UIResource; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxEditor$UIResource : public ::javax::swing::plaf::metal::MetalComboBoxEditor +{ + +public: + MetalComboBoxEditor$UIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxEditor$UIResource__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxEditor.h b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor.h new file mode 100644 index 00000000000..89d3edfe4af --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxEditor.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxEditor__ +#define __javax_swing_plaf_metal_MetalComboBoxEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalComboBoxEditor; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxEditor : public ::javax::swing::plaf::basic::BasicComboBoxEditor +{ + +public: + MetalComboBoxEditor(); +public: // actually protected + static ::java::awt::Insets * editorBorderInsets; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxEditor__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxIcon.h b/libjava/javax/swing/plaf/metal/MetalComboBoxIcon.h new file mode 100644 index 00000000000..a51d9aa3cf4 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxIcon__ +#define __javax_swing_plaf_metal_MetalComboBoxIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalComboBoxIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxIcon : public ::java::lang::Object +{ + +public: + MetalComboBoxIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager.h b/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager.h new file mode 100644 index 00000000000..d2a909c445d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxUI$MetalComboBoxLayoutManager__ +#define __javax_swing_plaf_metal_MetalComboBoxUI$MetalComboBoxLayoutManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalComboBoxUI; + class MetalComboBoxUI$MetalComboBoxLayoutManager; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxUI$MetalComboBoxLayoutManager : public ::javax::swing::plaf::basic::BasicComboBoxUI$ComboBoxLayoutManager +{ + +public: + MetalComboBoxUI$MetalComboBoxLayoutManager(::javax::swing::plaf::metal::MetalComboBoxUI *); + virtual void layoutContainer(::java::awt::Container *); + virtual void superLayout(::java::awt::Container *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalComboBoxUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicComboBoxUI$ComboBoxLayoutManager)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxUI$MetalComboBoxLayoutManager__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup.h b/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup.h new file mode 100644 index 00000000000..ac9789ff0d2 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalComboPopup.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxUI$MetalComboPopup__ +#define __javax_swing_plaf_metal_MetalComboBoxUI$MetalComboPopup__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JComboBox; + namespace plaf + { + namespace metal + { + class MetalComboBoxUI; + class MetalComboBoxUI$MetalComboPopup; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxUI$MetalComboPopup : public ::javax::swing::plaf::basic::BasicComboPopup +{ + +public: + MetalComboBoxUI$MetalComboPopup(::javax::swing::plaf::metal::MetalComboBoxUI *, ::javax::swing::JComboBox *); + virtual void delegateFocus(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalComboBoxUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicComboPopup)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxUI$MetalComboPopup__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener.h b/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener.h new file mode 100644 index 00000000000..fee1da1a459 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxUI$MetalPropertyChangeListener__ +#define __javax_swing_plaf_metal_MetalComboBoxUI$MetalPropertyChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalComboBoxUI; + class MetalComboBoxUI$MetalPropertyChangeListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxUI$MetalPropertyChangeListener : public ::javax::swing::plaf::basic::BasicComboBoxUI$PropertyChangeHandler +{ + +public: + MetalComboBoxUI$MetalPropertyChangeListener(::javax::swing::plaf::metal::MetalComboBoxUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalComboBoxUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicComboBoxUI$PropertyChangeHandler)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxUI$MetalPropertyChangeListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalComboBoxUI.h b/libjava/javax/swing/plaf/metal/MetalComboBoxUI.h new file mode 100644 index 00000000000..047d1442b05 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalComboBoxUI.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalComboBoxUI__ +#define __javax_swing_plaf_metal_MetalComboBoxUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Dimension; + class Graphics; + class LayoutManager; + } + namespace beans + { + class PropertyChangeEvent; + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ComboBoxEditor; + class JButton; + class JComboBox; + class JComponent; + class JList; + namespace plaf + { + class ComponentUI; + namespace basic + { + class ComboPopup; + } + namespace metal + { + class MetalComboBoxUI; + class MetalComboBoxUI$MetalComboBoxLayoutManager; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalComboBoxUI : public ::javax::swing::plaf::basic::BasicComboBoxUI +{ + +public: + MetalComboBoxUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::javax::swing::ComboBoxEditor * createEditor(); + virtual ::javax::swing::plaf::basic::ComboPopup * createPopup(); + virtual ::javax::swing::JButton * createArrowButton(); +public: + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void editablePropertyChanged(::java::beans::PropertyChangeEvent *); + virtual ::java::awt::LayoutManager * createLayoutManager(); + virtual void removeListeners(); +public: + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual void configureEditor(); + virtual void unconfigureEditor(); + virtual void layoutComboBox(::java::awt::Container *, ::javax::swing::plaf::metal::MetalComboBoxUI$MetalComboBoxLayoutManager *); +public: // actually package-private + static ::javax::swing::JButton * access$0(::javax::swing::plaf::metal::MetalComboBoxUI *); + static ::javax::swing::JComboBox * access$1(::javax::swing::plaf::metal::MetalComboBoxUI *); + static ::javax::swing::JList * access$2(::javax::swing::plaf::metal::MetalComboBoxUI *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalComboBoxUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalDesktopIconUI.h b/libjava/javax/swing/plaf/metal/MetalDesktopIconUI.h new file mode 100644 index 00000000000..1b1de7b5776 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalDesktopIconUI.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalDesktopIconUI__ +#define __javax_swing_plaf_metal_MetalDesktopIconUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalDesktopIconUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalDesktopIconUI : public ::javax::swing::plaf::basic::BasicDesktopIconUI +{ + +public: + MetalDesktopIconUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalDesktopIconUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$ButtonLayout.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$ButtonLayout.h new file mode 100644 index 00000000000..9900aed3910 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$ButtonLayout.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$ButtonLayout__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$ButtonLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$ButtonLayout; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$ButtonLayout : public ::java::lang::Object +{ + +public: // actually package-private + MetalFileChooserUI$ButtonLayout(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual void layoutContainer(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); +public: // actually package-private + static const jint GAP = 4; + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$ButtonLayout__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DetailViewActionListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DetailViewActionListener.h new file mode 100644 index 00000000000..92fac4ca2f9 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DetailViewActionListener.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$DetailViewActionListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$DetailViewActionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$DetailViewActionListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$DetailViewActionListener : public ::java::lang::Object +{ + +public: // actually package-private + MetalFileChooserUI$DetailViewActionListener(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$DetailViewActionListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction.h new file mode 100644 index 00000000000..da666e12989 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxAction__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$DirectoryComboBoxAction; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$DirectoryComboBoxAction : public ::javax::swing::AbstractAction +{ + +public: // actually protected + MetalFileChooserUI$DirectoryComboBoxAction(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxAction__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel.h new file mode 100644 index 00000000000..27a72e053e6 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxModel.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxModel__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$DirectoryComboBoxModel; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$DirectoryComboBoxModel : public ::javax::swing::AbstractListModel +{ + +public: + MetalFileChooserUI$DirectoryComboBoxModel(::javax::swing::plaf::metal::MetalFileChooserUI *); + virtual jint getSize(); + virtual ::java::lang::Object * getElementAt(jint); + virtual jint getDepth(jint); + virtual ::java::lang::Object * getSelectedItem(); + virtual void setSelectedItem(::java::lang::Object *); +private: + ::java::util::List * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) items; + jint selectedIndex; +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxModel__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxRenderer.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxRenderer.h new file mode 100644 index 00000000000..6e88691ae5b --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$DirectoryComboBoxRenderer.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxRenderer__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JFileChooser; + class JList; + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$DirectoryComboBoxRenderer; + class MetalFileChooserUI$IndentIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$DirectoryComboBoxRenderer : public ::javax::swing::DefaultListCellRenderer +{ + +public: + MetalFileChooserUI$DirectoryComboBoxRenderer(::javax::swing::plaf::metal::MetalFileChooserUI *, ::javax::swing::JFileChooser *); + virtual ::java::awt::Component * getListCellRendererComponent(::javax::swing::JList *, ::java::lang::Object *, jint, jboolean, jboolean); +private: + ::javax::swing::plaf::metal::MetalFileChooserUI$IndentIcon * __attribute__((aligned(__alignof__( ::javax::swing::DefaultListCellRenderer)))) indentIcon; +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$DirectoryComboBoxRenderer__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer.h new file mode 100644 index 00000000000..235c7c968c4 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FileRenderer.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$FileRenderer__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$FileRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JList; + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$FileRenderer; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$FileRenderer : public ::javax::swing::DefaultListCellRenderer +{ + +public: // actually protected + MetalFileChooserUI$FileRenderer(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual ::java::awt::Component * getListCellRendererComponent(::javax::swing::JList *, ::java::lang::Object *, jint, jboolean, jboolean); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::DefaultListCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$FileRenderer__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel.h new file mode 100644 index 00000000000..48ce51fe151 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxModel.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxModel__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace filechooser + { + class FileFilter; + } + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$FilterComboBoxModel; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$FilterComboBoxModel : public ::javax::swing::AbstractListModel +{ + +public: // actually protected + MetalFileChooserUI$FilterComboBoxModel(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual void setSelectedItem(::java::lang::Object *); + virtual ::java::lang::Object * getSelectedItem(); + virtual jint getSize(); + virtual ::java::lang::Object * getElementAt(jint); +public: // actually protected + JArray< ::javax::swing::filechooser::FileFilter * > * __attribute__((aligned(__alignof__( ::javax::swing::AbstractListModel)))) filters; +private: + ::java::lang::Object * selected; +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxModel__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer.h new file mode 100644 index 00000000000..60260fa49ce --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$FilterComboBoxRenderer.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxRenderer__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JList; + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$FilterComboBoxRenderer; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$FilterComboBoxRenderer : public ::javax::swing::DefaultListCellRenderer +{ + +public: + MetalFileChooserUI$FilterComboBoxRenderer(::javax::swing::plaf::metal::MetalFileChooserUI *); + virtual ::java::awt::Component * getListCellRendererComponent(::javax::swing::JList *, ::java::lang::Object *, jint, jboolean, jboolean); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::DefaultListCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$FilterComboBoxRenderer__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$IndentIcon.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$IndentIcon.h new file mode 100644 index 00000000000..c1b25f6718c --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$IndentIcon.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$IndentIcon__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$IndentIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$IndentIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$IndentIcon : public ::java::lang::Object +{ + +public: // actually package-private + MetalFileChooserUI$IndentIcon(::javax::swing::plaf::metal::MetalFileChooserUI *); + virtual void setIcon(::javax::swing::Icon *); + virtual void setDepth(jint); +public: + virtual jint getIconHeight(); + virtual jint getIconWidth(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +private: + static const jint INDENT = 10; + ::javax::swing::Icon * __attribute__((aligned(__alignof__( ::java::lang::Object)))) icon; + jint depth; +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$IndentIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$ListViewActionListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$ListViewActionListener.h new file mode 100644 index 00000000000..79b8f71ef31 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$ListViewActionListener.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$ListViewActionListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$ListViewActionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$ListViewActionListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$ListViewActionListener : public ::java::lang::Object +{ + +public: // actually package-private + MetalFileChooserUI$ListViewActionListener(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$ListViewActionListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserPropertyChangeListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserPropertyChangeListener.h new file mode 100644 index 00000000000..7c0368ca90b --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserPropertyChangeListener.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$MetalFileChooserPropertyChangeListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$MetalFileChooserPropertyChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$MetalFileChooserPropertyChangeListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$MetalFileChooserPropertyChangeListener : public ::java::lang::Object +{ + +public: + MetalFileChooserUI$MetalFileChooserPropertyChangeListener(::javax::swing::plaf::metal::MetalFileChooserUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$MetalFileChooserPropertyChangeListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserSelectionListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserSelectionListener.h new file mode 100644 index 00000000000..460f121b92e --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$MetalFileChooserSelectionListener.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$MetalFileChooserSelectionListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$MetalFileChooserSelectionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ListSelectionEvent; + } + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$MetalFileChooserSelectionListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$MetalFileChooserSelectionListener : public ::java::lang::Object +{ + +public: // actually protected + MetalFileChooserUI$MetalFileChooserSelectionListener(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$MetalFileChooserSelectionListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener$EditingActionListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener$EditingActionListener.h new file mode 100644 index 00000000000..02fe27e49dd --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener$EditingActionListener.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$SingleClickListener$EditingActionListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$SingleClickListener$EditingActionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI$SingleClickListener; + class MetalFileChooserUI$SingleClickListener$EditingActionListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$SingleClickListener$EditingActionListener : public ::java::lang::Object +{ + +public: // actually package-private + MetalFileChooserUI$SingleClickListener$EditingActionListener(::javax::swing::plaf::metal::MetalFileChooserUI$SingleClickListener *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI$SingleClickListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$SingleClickListener$EditingActionListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener.h new file mode 100644 index 00000000000..66c7b0d10f0 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$SingleClickListener.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$SingleClickListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$SingleClickListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JFileChooser; + class JList; + class JTextField; + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$SingleClickListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$SingleClickListener : public ::java::awt::event::MouseAdapter +{ + +public: + MetalFileChooserUI$SingleClickListener(::javax::swing::plaf::metal::MetalFileChooserUI *, ::javax::swing::JList *); + virtual void mouseClicked(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual void editFile(jint); + virtual void completeEditing(); + ::javax::swing::JList * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) list; + ::java::io::File * editFile__; + ::javax::swing::JFileChooser * fc; + ::java::lang::Object * lastSelected; + ::javax::swing::JTextField * editField; + ::javax::swing::plaf::metal::MetalFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$SingleClickListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener$EditingActionListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener$EditingActionListener.h new file mode 100644 index 00000000000..bacd2d07e89 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener$EditingActionListener.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$TableClickListener$EditingActionListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$TableClickListener$EditingActionListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI$TableClickListener; + class MetalFileChooserUI$TableClickListener$EditingActionListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$TableClickListener$EditingActionListener : public ::java::lang::Object +{ + +public: // actually package-private + MetalFileChooserUI$TableClickListener$EditingActionListener(::javax::swing::plaf::metal::MetalFileChooserUI$TableClickListener *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI$TableClickListener * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$TableClickListener$EditingActionListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener.h new file mode 100644 index 00000000000..2e536e45637 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableClickListener.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$TableClickListener__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$TableClickListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JFileChooser; + class JTable; + class JTextField; + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$TableClickListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$TableClickListener : public ::java::awt::event::MouseAdapter +{ + +public: + MetalFileChooserUI$TableClickListener(::javax::swing::plaf::metal::MetalFileChooserUI *, ::javax::swing::JTable *, ::javax::swing::JFileChooser *); + virtual void mouseClicked(::java::awt::event::MouseEvent *); +public: // actually package-private + virtual void editFile(jint); + virtual void completeEditing(); +public: + virtual void closeDialog(); +public: // actually package-private + ::javax::swing::JTable * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) table; + ::javax::swing::JFileChooser * fc; + ::java::lang::Object * lastSelected; + ::java::io::File * editFile__; + ::javax::swing::JTextField * editField; + ::javax::swing::plaf::metal::MetalFileChooserUI * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$TableClickListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableFileRenderer.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableFileRenderer.h new file mode 100644 index 00000000000..e5b5029f733 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$TableFileRenderer.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$TableFileRenderer__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$TableFileRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTable; + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$TableFileRenderer; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$TableFileRenderer : public ::javax::swing::table::DefaultTableCellRenderer +{ + +public: + MetalFileChooserUI$TableFileRenderer(::javax::swing::plaf::metal::MetalFileChooserUI *); + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::javax::swing::table::DefaultTableCellRenderer)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$TableFileRenderer__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI$VerticalMidLayout.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$VerticalMidLayout.h new file mode 100644 index 00000000000..64f4be6c619 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI$VerticalMidLayout.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI$VerticalMidLayout__ +#define __javax_swing_plaf_metal_MetalFileChooserUI$VerticalMidLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$VerticalMidLayout; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI$VerticalMidLayout : public ::java::lang::Object +{ + +public: // actually package-private + MetalFileChooserUI$VerticalMidLayout(::javax::swing::plaf::metal::MetalFileChooserUI *); +public: + virtual void layoutContainer(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI$VerticalMidLayout__ diff --git a/libjava/javax/swing/plaf/metal/MetalFileChooserUI.h b/libjava/javax/swing/plaf/metal/MetalFileChooserUI.h new file mode 100644 index 00000000000..cf8ceae94e4 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalFileChooserUI.h @@ -0,0 +1,159 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalFileChooserUI__ +#define __javax_swing_plaf_metal_MetalFileChooserUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + namespace event + { + class MouseListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class ActionMap; + class JButton; + class JComboBox; + class JComponent; + class JFileChooser; + class JLabel; + class JList; + class JPanel; + class JScrollPane; + class JTable; + class JTextField; + namespace event + { + class ListSelectionEvent; + class ListSelectionListener; + } + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalFileChooserUI; + class MetalFileChooserUI$DirectoryComboBoxModel; + class MetalFileChooserUI$DirectoryComboBoxRenderer; + class MetalFileChooserUI$FilterComboBoxModel; + class MetalFileChooserUI$FilterComboBoxRenderer; + class MetalFileChooserUI$SingleClickListener; + class MetalFileChooserUI$TableClickListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalFileChooserUI : public ::javax::swing::plaf::basic::BasicFileChooserUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + MetalFileChooserUI(::javax::swing::JFileChooser *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void installComponents(::javax::swing::JFileChooser *); + virtual void uninstallComponents(::javax::swing::JFileChooser *); +public: // actually protected + virtual ::javax::swing::JPanel * getButtonPanel(); + virtual ::javax::swing::JPanel * getBottomPanel(); + virtual void installStrings(::javax::swing::JFileChooser *); + virtual void installListeners(::javax::swing::JFileChooser *); + virtual void uninstallListeners(::javax::swing::JFileChooser *); + virtual ::javax::swing::ActionMap * getActionMap(); + virtual ::javax::swing::ActionMap * createActionMap(); + virtual ::javax::swing::JPanel * createList(::javax::swing::JFileChooser *); + virtual ::javax::swing::JPanel * createDetailsView(::javax::swing::JFileChooser *); +public: // actually package-private + virtual ::javax::swing::JPanel * updateTable(); +private: + ::java::lang::String * formatSize(jlong); +public: + virtual ::javax::swing::event::ListSelectionListener * createListSelectionListener(::javax::swing::JFileChooser *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(::javax::swing::JFileChooser *); +public: // actually protected + virtual ::javax::swing::plaf::metal::MetalFileChooserUI$DirectoryComboBoxModel * createDirectoryComboBoxModel(::javax::swing::JFileChooser *); + virtual ::javax::swing::plaf::metal::MetalFileChooserUI$DirectoryComboBoxRenderer * createDirectoryComboBoxRenderer(::javax::swing::JFileChooser *); + virtual ::javax::swing::plaf::metal::MetalFileChooserUI$FilterComboBoxModel * createFilterComboBoxModel(); + virtual ::javax::swing::plaf::metal::MetalFileChooserUI$FilterComboBoxRenderer * createFilterComboBoxRenderer(); + virtual void addControlButtons(); + virtual void removeControlButtons(); +public: + virtual void rescanCurrentDirectory(::javax::swing::JFileChooser *); + virtual ::java::lang::String * getFileName(); + virtual void setFileName(::java::lang::String *); + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); +public: // actually protected + virtual ::javax::swing::JButton * getApproveButton(::javax::swing::JFileChooser *); +public: // actually package-private + static void access$0(::javax::swing::plaf::metal::MetalFileChooserUI *, ::java::lang::String *); + static ::java::lang::String * access$1(::javax::swing::plaf::metal::MetalFileChooserUI *); + static ::java::lang::String * access$2(::javax::swing::plaf::metal::MetalFileChooserUI *); + static ::java::lang::String * access$3(::javax::swing::plaf::metal::MetalFileChooserUI *); + static ::java::lang::String * access$4(::javax::swing::plaf::metal::MetalFileChooserUI *); + static ::java::lang::String * access$5(::javax::swing::plaf::metal::MetalFileChooserUI *); + static void access$6(::javax::swing::plaf::metal::MetalFileChooserUI *, jboolean); + static void access$7(::javax::swing::plaf::metal::MetalFileChooserUI *, ::java::io::File *); + static ::javax::swing::plaf::metal::MetalFileChooserUI$FilterComboBoxModel * access$8(::javax::swing::plaf::metal::MetalFileChooserUI *); + static ::javax::swing::JButton * access$9(::javax::swing::plaf::metal::MetalFileChooserUI *); + static ::javax::swing::JPanel * access$10(::javax::swing::plaf::metal::MetalFileChooserUI *); + static ::javax::swing::JPanel * access$11(::javax::swing::plaf::metal::MetalFileChooserUI *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicFileChooserUI)))) directoryLabel; + ::javax::swing::JComboBox * directoryComboBox; +public: // actually package-private + ::javax::swing::plaf::metal::MetalFileChooserUI$DirectoryComboBoxModel * directoryModel; +private: + ::java::lang::String * fileLabel; + ::javax::swing::JTextField * fileTextField; + ::java::lang::String * filterLabel; + ::javax::swing::JPanel * topPanel; + ::javax::swing::JPanel * controls; + ::javax::swing::JPanel * bottomPanel; + ::javax::swing::JPanel * buttonPanel; + ::javax::swing::JButton * approveButton; +public: // actually package-private + ::javax::swing::JList * fileList; + ::javax::swing::JTable * fileTable; + ::javax::swing::JPanel * fileListPanel; + ::javax::swing::JPanel * fileTablePanel; +private: + ::javax::swing::plaf::metal::MetalFileChooserUI$FilterComboBoxModel * filterModel; + ::javax::swing::ActionMap * actionMap; +public: // actually package-private + jboolean listView; + jboolean startEditing; + ::javax::swing::JScrollPane * scrollPane; + ::java::lang::String * save; + ::java::lang::String * look; + ::javax::swing::JLabel * dirLabel; + ::javax::swing::event::ListSelectionListener * listSelList; + ::java::awt::event::MouseListener * doubleClickList; + ::javax::swing::plaf::metal::MetalFileChooserUI$SingleClickListener * singleClickList; + ::javax::swing::plaf::metal::MetalFileChooserUI$TableClickListener * tableClickList; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalFileChooserUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$1.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$1.h new file mode 100644 index 00000000000..e57034fa61a --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$1.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$1__ +#define __javax_swing_plaf_metal_MetalIconFactory$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$1; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$1 : public ::java::lang::Object +{ + +public: // actually package-private + MetalIconFactory$1(); +public: + jint getIconHeight(); + jint getIconWidth(); + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$1__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$2.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$2.h new file mode 100644 index 00000000000..3f359f80e6a --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$2.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$2__ +#define __javax_swing_plaf_metal_MetalIconFactory$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$2; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$2 : public ::java::lang::Object +{ + +public: // actually package-private + MetalIconFactory$2(); +public: + jint getIconHeight(); + jint getIconWidth(); + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$2__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$3.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$3.h new file mode 100644 index 00000000000..f86819ac917 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$3.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$3__ +#define __javax_swing_plaf_metal_MetalIconFactory$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$3; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$3 : public ::java::lang::Object +{ + +public: // actually package-private + MetalIconFactory$3(); +public: + jint getIconHeight(); + jint getIconWidth(); + void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$3__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon.h new file mode 100644 index 00000000000..0625a9b249e --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$CheckBoxMenuItemIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$CheckBoxMenuItemIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$CheckBoxMenuItemIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$CheckBoxMenuItemIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$CheckBoxMenuItemIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$CheckBoxMenuItemIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserDetailViewIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserDetailViewIcon.h new file mode 100644 index 00000000000..67b065fb412 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserDetailViewIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileChooserDetailViewIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$FileChooserDetailViewIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$FileChooserDetailViewIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$FileChooserDetailViewIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$FileChooserDetailViewIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$FileChooserDetailViewIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserHomeFolderIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserHomeFolderIcon.h new file mode 100644 index 00000000000..5395249ab7b --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserHomeFolderIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileChooserHomeFolderIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$FileChooserHomeFolderIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$FileChooserHomeFolderIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$FileChooserHomeFolderIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$FileChooserHomeFolderIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$FileChooserHomeFolderIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserListViewIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserListViewIcon.h new file mode 100644 index 00000000000..d1e479a83fc --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserListViewIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileChooserListViewIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$FileChooserListViewIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$FileChooserListViewIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$FileChooserListViewIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$FileChooserListViewIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$FileChooserListViewIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserNewFolderIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserNewFolderIcon.h new file mode 100644 index 00000000000..f34373e9565 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserNewFolderIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileChooserNewFolderIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$FileChooserNewFolderIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$FileChooserNewFolderIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$FileChooserNewFolderIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$FileChooserNewFolderIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$FileChooserNewFolderIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserUpFolderIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserUpFolderIcon.h new file mode 100644 index 00000000000..ad83e262363 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileChooserUpFolderIcon.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileChooserUpFolderIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$FileChooserUpFolderIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$FileChooserUpFolderIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$FileChooserUpFolderIcon : public ::javax::swing::plaf::metal::MetalIconFactory$FileChooserNewFolderIcon +{ + +public: + MetalIconFactory$FileChooserUpFolderIcon(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$FileChooserUpFolderIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$FileIcon16.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileIcon16.h new file mode 100644 index 00000000000..90f451b9127 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$FileIcon16.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$FileIcon16__ +#define __javax_swing_plaf_metal_MetalIconFactory$FileIcon16__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$FileIcon16; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$FileIcon16 : public ::java::lang::Object +{ + +public: + MetalIconFactory$FileIcon16(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + virtual jint getAdditionalHeight(); + virtual jint getShift(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$FileIcon16__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$FolderIcon16.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$FolderIcon16.h new file mode 100644 index 00000000000..80ed1ebdd4d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$FolderIcon16.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$FolderIcon16__ +#define __javax_swing_plaf_metal_MetalIconFactory$FolderIcon16__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$FolderIcon16; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$FolderIcon16 : public ::java::lang::Object +{ + +public: + MetalIconFactory$FolderIcon16(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + virtual jint getAdditionalHeight(); + virtual jint getShift(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$FolderIcon16__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon.h new file mode 100644 index 00000000000..cf726d87d54 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$HorizontalSliderThumbIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$HorizontalSliderThumbIcon__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$HorizontalSliderThumbIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$HorizontalSliderThumbIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$HorizontalSliderThumbIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually package-private + JArray< JArray< jint > * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) gradientMask; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$HorizontalSliderThumbIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameAltMaximizeIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameAltMaximizeIcon.h new file mode 100644 index 00000000000..07a8d256acd --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameAltMaximizeIcon.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$InternalFrameAltMaximizeIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$InternalFrameAltMaximizeIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$InternalFrameAltMaximizeIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$InternalFrameAltMaximizeIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$InternalFrameAltMaximizeIcon(jint); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) size; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$InternalFrameAltMaximizeIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameCloseIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameCloseIcon.h new file mode 100644 index 00000000000..30289db5cfc --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameCloseIcon.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$InternalFrameCloseIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$InternalFrameCloseIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$InternalFrameCloseIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$InternalFrameCloseIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$InternalFrameCloseIcon(jint); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) size; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$InternalFrameCloseIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameDefaultMenuIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameDefaultMenuIcon.h new file mode 100644 index 00000000000..0c111ca032c --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameDefaultMenuIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$InternalFrameDefaultMenuIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$InternalFrameDefaultMenuIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$InternalFrameDefaultMenuIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$InternalFrameDefaultMenuIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$InternalFrameDefaultMenuIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$InternalFrameDefaultMenuIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMaximizeIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMaximizeIcon.h new file mode 100644 index 00000000000..95014b00c7b --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMaximizeIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMaximizeIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMaximizeIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$InternalFrameMaximizeIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$InternalFrameMaximizeIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$InternalFrameMaximizeIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMaximizeIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMinimizeIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMinimizeIcon.h new file mode 100644 index 00000000000..122d0282877 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$InternalFrameMinimizeIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMinimizeIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMinimizeIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$InternalFrameMinimizeIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$InternalFrameMinimizeIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$InternalFrameMinimizeIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$InternalFrameMinimizeIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon.h new file mode 100644 index 00000000000..11ee59a1575 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$PaletteCloseIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$PaletteCloseIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$PaletteCloseIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$PaletteCloseIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$PaletteCloseIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$PaletteCloseIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$PaletteCloseIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon.h new file mode 100644 index 00000000000..8d7eb638a28 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$RadioButtonIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$RadioButtonIcon__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$RadioButtonIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$RadioButtonIcon : public ::java::lang::Object +{ + +public: // actually package-private + MetalIconFactory$RadioButtonIcon(); +public: + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +private: + static JArray< JArray< jint > * > * gradientMask; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$RadioButtonIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon.h new file mode 100644 index 00000000000..4d0e722ad00 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$RadioButtonMenuItemIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$RadioButtonMenuItemIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$RadioButtonMenuItemIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$RadioButtonMenuItemIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$RadioButtonMenuItemIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$RadioButtonMenuItemIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeComputerIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeComputerIcon.h new file mode 100644 index 00000000000..f469798827d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeComputerIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeComputerIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$TreeComputerIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$TreeComputerIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$TreeComputerIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$TreeComputerIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$TreeComputerIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon.h new file mode 100644 index 00000000000..c0e9716dcc8 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeControlIcon.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeControlIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$TreeControlIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$TreeControlIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$TreeControlIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$TreeControlIcon(jboolean); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + virtual void paintMe(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) isLight; +private: + jboolean collapsed; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$TreeControlIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFloppyDriveIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFloppyDriveIcon.h new file mode 100644 index 00000000000..ad69d2d496b --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFloppyDriveIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeFloppyDriveIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$TreeFloppyDriveIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$TreeFloppyDriveIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$TreeFloppyDriveIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$TreeFloppyDriveIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$TreeFloppyDriveIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon.h new file mode 100644 index 00000000000..4993efdb24d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeFolderIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$TreeFolderIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$TreeFolderIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$TreeFolderIcon : public ::javax::swing::plaf::metal::MetalIconFactory$FolderIcon16 +{ + +public: + MetalIconFactory$TreeFolderIcon(); + virtual jint getAdditionalHeight(); + virtual jint getShift(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$TreeFolderIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeHardDriveIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeHardDriveIcon.h new file mode 100644 index 00000000000..1eb1d51434b --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeHardDriveIcon.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeHardDriveIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$TreeHardDriveIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$TreeHardDriveIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$TreeHardDriveIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$TreeHardDriveIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$TreeHardDriveIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon.h new file mode 100644 index 00000000000..df2b8e8dab5 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$TreeLeafIcon.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$TreeLeafIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$TreeLeafIcon__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$TreeLeafIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$TreeLeafIcon : public ::javax::swing::plaf::metal::MetalIconFactory$FileIcon16 +{ + +public: + MetalIconFactory$TreeLeafIcon(); + virtual jint getAdditionalHeight(); + virtual jint getShift(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$TreeLeafIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon.h b/libjava/javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon.h new file mode 100644 index 00000000000..7618da789f3 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory$VerticalSliderThumbIcon__ +#define __javax_swing_plaf_metal_MetalIconFactory$VerticalSliderThumbIcon__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalIconFactory$VerticalSliderThumbIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory$VerticalSliderThumbIcon : public ::java::lang::Object +{ + +public: + MetalIconFactory$VerticalSliderThumbIcon(); + virtual jint getIconWidth(); + virtual jint getIconHeight(); + virtual void paintIcon(::java::awt::Component *, ::java::awt::Graphics *, jint, jint); +public: // actually package-private + JArray< JArray< jint > * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) gradientMask; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory$VerticalSliderThumbIcon__ diff --git a/libjava/javax/swing/plaf/metal/MetalIconFactory.h b/libjava/javax/swing/plaf/metal/MetalIconFactory.h new file mode 100644 index 00000000000..f1cb1d77e23 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalIconFactory.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalIconFactory__ +#define __javax_swing_plaf_metal_MetalIconFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + namespace metal + { + class MetalIconFactory; + class MetalIconFactory$RadioButtonIcon; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalIconFactory : public ::java::lang::Object +{ + +public: + MetalIconFactory(); + static ::javax::swing::Icon * getCheckBoxIcon(); + static ::javax::swing::Icon * getCheckBoxMenuItemIcon(); + static ::javax::swing::Icon * getFileChooserDetailViewIcon(); + static ::javax::swing::Icon * getFileChooserHomeFolderIcon(); + static ::javax::swing::Icon * getFileChooserListViewIcon(); + static ::javax::swing::Icon * getFileChooserNewFolderIcon(); + static ::javax::swing::Icon * getFileChooserUpFolderIcon(); + static ::javax::swing::Icon * getRadioButtonIcon(); + static ::javax::swing::Icon * getRadioButtonMenuItemIcon(); + static ::javax::swing::Icon * getHorizontalSliderThumbIcon(); + static ::javax::swing::Icon * getInternalFrameCloseIcon(jint); + static ::javax::swing::Icon * getInternalFrameDefaultMenuIcon(); + static ::javax::swing::Icon * getInternalFrameMaximizeIcon(jint); + static ::javax::swing::Icon * getInternalFrameMinimizeIcon(jint); + static ::javax::swing::Icon * getInternalFrameAltMaximizeIcon(jint); + static ::javax::swing::Icon * getVerticalSliderThumbIcon(); + static ::javax::swing::Icon * getTreeFolderIcon(); + static ::javax::swing::Icon * getTreeLeafIcon(); + static ::javax::swing::Icon * getTreeControlIcon(jboolean); + static ::javax::swing::Icon * getTreeComputerIcon(); + static ::javax::swing::Icon * getTreeFloppyDriveIcon(); + static ::javax::swing::Icon * getTreeHardDriveIcon(); + static ::javax::swing::Icon * getMenuArrowIcon(); + static ::javax::swing::Icon * getMenuItemArrowIcon(); + static ::javax::swing::Icon * getMenuItemCheckIcon(); + static const jboolean DARK = 0; + static const jboolean LIGHT = 1; +private: + static ::javax::swing::Icon * menuArrow; + static ::javax::swing::Icon * menuItemArrow; + static ::javax::swing::Icon * checkBoxIcon; + static ::javax::swing::Icon * checkBoxMenuItemIcon; + static ::javax::swing::Icon * fileChooserDetailViewIcon; + static ::javax::swing::Icon * fileChooserHomeFolderIcon; + static ::javax::swing::Icon * fileChooserListViewIcon; + static ::javax::swing::Icon * fileChooserNewFolderIcon; + static ::javax::swing::Icon * fileChooserUpFolderIcon; + static ::javax::swing::plaf::metal::MetalIconFactory$RadioButtonIcon * radioButtonIcon; + static ::javax::swing::Icon * radioButtonMenuItemIcon; + static ::javax::swing::Icon * internalFrameDefaultMenuIcon; + static ::javax::swing::Icon * treeComputerIcon; + static ::javax::swing::Icon * treeFloppyDriveIcon; + static ::javax::swing::Icon * treeHardDriveIcon; + static ::javax::swing::Icon * horizontalSliderThumbIcon; + static ::javax::swing::Icon * verticalSliderThumbIcon; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalIconFactory__ diff --git a/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler.h b/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler.h new file mode 100644 index 00000000000..ba566882302 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler__ +#define __javax_swing_plaf_metal_MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalInternalFrameTitlePane; + class MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler : public ::javax::swing::plaf::basic::BasicInternalFrameTitlePane$PropertyChangeHandler +{ + +public: + MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicInternalFrameTitlePane$PropertyChangeHandler)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalInternalFrameTitlePane$MetalInternalFrameTitlePanePropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalTitlePaneLayout.h b/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalTitlePaneLayout.h new file mode 100644 index 00000000000..da7e76cb710 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane$MetalTitlePaneLayout.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalInternalFrameTitlePane$MetalTitlePaneLayout__ +#define __javax_swing_plaf_metal_MetalInternalFrameTitlePane$MetalTitlePaneLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalInternalFrameTitlePane; + class MetalInternalFrameTitlePane$MetalTitlePaneLayout; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalInternalFrameTitlePane$MetalTitlePaneLayout : public ::java::lang::Object +{ + +public: + MetalInternalFrameTitlePane$MetalTitlePaneLayout(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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 *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalInternalFrameTitlePane * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalInternalFrameTitlePane$MetalTitlePaneLayout__ diff --git a/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane.h b/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane.h new file mode 100644 index 00000000000..f3c0e7faba8 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalInternalFrameTitlePane.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalInternalFrameTitlePane__ +#define __javax_swing_plaf_metal_MetalInternalFrameTitlePane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class LayoutManager; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JButton; + class JInternalFrame; + class JLabel; + class JMenu; + namespace plaf + { + namespace metal + { + class MetalInternalFrameTitlePane; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalInternalFrameTitlePane : public ::javax::swing::plaf::basic::BasicInternalFrameTitlePane +{ + +public: + MetalInternalFrameTitlePane(::javax::swing::JInternalFrame *); +public: // actually protected + virtual void installDefaults(); + virtual void uninstallDefaults(); + virtual void createButtons(); + virtual void addSystemMenuItems(::javax::swing::JMenu *); + virtual void showSystemMenu(); + virtual void addSubComponents(); + virtual ::java::awt::LayoutManager * createLayout(); +public: + virtual void paintPalette(::java::awt::Graphics *); + virtual void paintComponent(::java::awt::Graphics *); + virtual void setPalette(jboolean); +public: // actually protected + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); +public: // actually package-private + static ::javax::swing::JInternalFrame * access$0(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + static ::javax::swing::JButton * access$1(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + static ::javax::swing::Icon * access$2(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + static ::javax::swing::JButton * access$3(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + static ::javax::swing::Icon * access$4(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + static ::javax::swing::JButton * access$5(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); + static ::javax::swing::Icon * access$6(::javax::swing::plaf::metal::MetalInternalFrameTitlePane *); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicInternalFrameTitlePane)))) isPalette; + ::javax::swing::Icon * paletteCloseIcon; + jint paletteTitleHeight; +public: // actually package-private + ::javax::swing::JLabel * title; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalInternalFrameTitlePane__ diff --git a/libjava/javax/swing/plaf/metal/MetalInternalFrameUI$1.h b/libjava/javax/swing/plaf/metal/MetalInternalFrameUI$1.h new file mode 100644 index 00000000000..9ac979b2b10 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalInternalFrameUI$1.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalInternalFrameUI$1__ +#define __javax_swing_plaf_metal_MetalInternalFrameUI$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalInternalFrameUI; + class MetalInternalFrameUI$1; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalInternalFrameUI$1 : public ::java::lang::Object +{ + +public: // actually package-private + MetalInternalFrameUI$1(::javax::swing::plaf::metal::MetalInternalFrameUI *); +public: + void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalInternalFrameUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalInternalFrameUI$1__ diff --git a/libjava/javax/swing/plaf/metal/MetalInternalFrameUI.h b/libjava/javax/swing/plaf/metal/MetalInternalFrameUI.h new file mode 100644 index 00000000000..db9fe9d86c9 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalInternalFrameUI.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalInternalFrameUI__ +#define __javax_swing_plaf_metal_MetalInternalFrameUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JInternalFrame; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalInternalFrameUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalInternalFrameUI : public ::javax::swing::plaf::basic::BasicInternalFrameUI +{ + +public: + MetalInternalFrameUI(::javax::swing::JInternalFrame *); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::javax::swing::JComponent * createNorthPane(::javax::swing::JInternalFrame *); +public: + virtual void setPalette(jboolean); +public: // actually protected + virtual void installListeners(); + virtual void uninstallListeners(); + virtual void installKeyboardActions(); + static ::java::lang::String * IS_PALETTE; +private: + ::java::beans::PropertyChangeListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicInternalFrameUI)))) paletteListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalInternalFrameUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalLabelUI.h b/libjava/javax/swing/plaf/metal/MetalLabelUI.h new file mode 100644 index 00000000000..f91d0993d3a --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalLabelUI.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalLabelUI__ +#define __javax_swing_plaf_metal_MetalLabelUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JLabel; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalLabelUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalLabelUI : public ::javax::swing::plaf::basic::BasicLabelUI +{ + +public: + MetalLabelUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual void paintDisabledText(::javax::swing::JLabel *, ::java::awt::Graphics *, ::java::lang::String *, jint, jint); + static ::javax::swing::plaf::metal::MetalLabelUI * metalLabelUI; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalLabelUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalLookAndFeel$1.h b/libjava/javax/swing/plaf/metal/MetalLookAndFeel$1.h new file mode 100644 index 00000000000..9159117de4d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalLookAndFeel$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalLookAndFeel$1__ +#define __javax_swing_plaf_metal_MetalLookAndFeel$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + namespace metal + { + class MetalLookAndFeel; + class MetalLookAndFeel$1; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalLookAndFeel$1 : public ::java::lang::Object +{ + +public: // actually package-private + MetalLookAndFeel$1(::javax::swing::plaf::metal::MetalLookAndFeel *); +public: + ::java::lang::Object * createValue(::javax::swing::UIDefaults *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalLookAndFeel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalLookAndFeel$1__ diff --git a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.h b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.h new file mode 100644 index 00000000000..9985b60b9e6 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.h @@ -0,0 +1,103 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalLookAndFeel__ +#define __javax_swing_plaf_metal_MetalLookAndFeel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + class ColorUIResource; + class FontUIResource; + namespace metal + { + class MetalLookAndFeel; + class MetalTheme; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalLookAndFeel : public ::javax::swing::plaf::basic::BasicLookAndFeel +{ + +public: + MetalLookAndFeel(); +public: // actually protected + virtual void createDefaultTheme(); +public: + virtual jboolean isNativeLookAndFeel(); + virtual jboolean isSupportedLookAndFeel(); + virtual ::java::lang::String * getDescription(); + virtual ::java::lang::String * getID(); + virtual ::java::lang::String * getName(); + virtual ::javax::swing::UIDefaults * getDefaults(); + static ::javax::swing::plaf::ColorUIResource * getAcceleratorForeground(); + static ::javax::swing::plaf::ColorUIResource * getAcceleratorSelectedForeground(); + static ::javax::swing::plaf::ColorUIResource * getBlack(); + static ::javax::swing::plaf::ColorUIResource * getControl(); + static ::javax::swing::plaf::ColorUIResource * getControlDarkShadow(); + static ::javax::swing::plaf::ColorUIResource * getControlDisabled(); + static ::javax::swing::plaf::ColorUIResource * getControlHighlight(); + static ::javax::swing::plaf::ColorUIResource * getControlInfo(); + static ::javax::swing::plaf::ColorUIResource * getControlShadow(); + static ::javax::swing::plaf::ColorUIResource * getControlTextColor(); + static ::javax::swing::plaf::FontUIResource * getControlTextFont(); + static ::javax::swing::plaf::ColorUIResource * getDesktopColor(); + static ::javax::swing::plaf::ColorUIResource * getFocusColor(); + static ::javax::swing::plaf::ColorUIResource * getHighlightedTextColor(); + static ::javax::swing::plaf::ColorUIResource * getInactiveControlTextColor(); + static ::javax::swing::plaf::ColorUIResource * getInactiveSystemTextColor(); + static ::javax::swing::plaf::ColorUIResource * getMenuBackground(); + static ::javax::swing::plaf::ColorUIResource * getMenuDisabledForeground(); + static ::javax::swing::plaf::ColorUIResource * getMenuForeground(); + static ::javax::swing::plaf::ColorUIResource * getMenuSelectedBackground(); + static ::javax::swing::plaf::ColorUIResource * getMenuSelectedForeground(); + static ::javax::swing::plaf::FontUIResource * getMenuTextFont(); + static ::javax::swing::plaf::ColorUIResource * getPrimaryControl(); + static ::javax::swing::plaf::ColorUIResource * getPrimaryControlDarkShadow(); + static ::javax::swing::plaf::ColorUIResource * getPrimaryControlHighlight(); + static ::javax::swing::plaf::ColorUIResource * getPrimaryControlInfo(); + static ::javax::swing::plaf::ColorUIResource * getPrimaryControlShadow(); + static ::javax::swing::plaf::ColorUIResource * getSeparatorBackground(); + static ::javax::swing::plaf::ColorUIResource * getSeparatorForeground(); + static ::javax::swing::plaf::FontUIResource * getSubTextFont(); + static ::javax::swing::plaf::ColorUIResource * getSystemTextColor(); + static ::javax::swing::plaf::FontUIResource * getSystemTextFont(); + static ::javax::swing::plaf::ColorUIResource * getTextHighlightColor(); + static ::javax::swing::plaf::ColorUIResource * getUserTextColor(); + static ::javax::swing::plaf::FontUIResource * getUserTextFont(); + static ::javax::swing::plaf::ColorUIResource * getWhite(); + static ::javax::swing::plaf::ColorUIResource * getWindowBackground(); + static ::javax::swing::plaf::ColorUIResource * getWindowTitleBackground(); + static ::javax::swing::plaf::FontUIResource * getWindowTitleFont(); + static ::javax::swing::plaf::ColorUIResource * getWindowTitleForeground(); + static ::javax::swing::plaf::ColorUIResource * getWindowTitleInactiveBackground(); + static ::javax::swing::plaf::ColorUIResource * getWindowTitleInactiveForeground(); + static void setCurrentTheme(::javax::swing::plaf::metal::MetalTheme *); +public: // actually protected + virtual void initClassDefaults(::javax::swing::UIDefaults *); + virtual void initComponentDefaults(::javax::swing::UIDefaults *); + virtual void initSystemColorDefaults(::javax::swing::UIDefaults *); +public: + static ::javax::swing::plaf::metal::MetalTheme * getCurrentTheme(); + virtual jboolean getSupportsWindowDecorations(); +private: + static const jlong serialVersionUID = 6680646159193457980LL; + static ::javax::swing::plaf::metal::MetalTheme * theme; + ::javax::swing::UIDefaults * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicLookAndFeel)))) LAF_defaults; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalLookAndFeel__ diff --git a/libjava/javax/swing/plaf/metal/MetalMenuBarUI.h b/libjava/javax/swing/plaf/metal/MetalMenuBarUI.h new file mode 100644 index 00000000000..598291e4005 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalMenuBarUI.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalMenuBarUI__ +#define __javax_swing_plaf_metal_MetalMenuBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalMenuBarUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalMenuBarUI : public ::javax::swing::plaf::basic::BasicMenuBarUI +{ + +public: + MetalMenuBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalMenuBarUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.h b/libjava/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.h new file mode 100644 index 00000000000..ca38d005b4d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalPopupMenuSeparatorUI__ +#define __javax_swing_plaf_metal_MetalPopupMenuSeparatorUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalPopupMenuSeparatorUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalPopupMenuSeparatorUI : public ::javax::swing::plaf::metal::MetalSeparatorUI +{ + +public: + MetalPopupMenuSeparatorUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +private: + static ::javax::swing::plaf::metal::MetalPopupMenuSeparatorUI * instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalPopupMenuSeparatorUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalProgressBarUI.h b/libjava/javax/swing/plaf/metal/MetalProgressBarUI.h new file mode 100644 index 00000000000..ca9500ac5b2 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalProgressBarUI.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalProgressBarUI__ +#define __javax_swing_plaf_metal_MetalProgressBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalProgressBarUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalProgressBarUI : public ::javax::swing::plaf::basic::BasicProgressBarUI +{ + +public: + MetalProgressBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void paintDeterminate(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paintIndeterminate(::java::awt::Graphics *, ::javax::swing::JComponent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalProgressBarUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalRadioButtonUI.h b/libjava/javax/swing/plaf/metal/MetalRadioButtonUI.h new file mode 100644 index 00000000000..477bca7cacc --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRadioButtonUI.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRadioButtonUI__ +#define __javax_swing_plaf_metal_MetalRadioButtonUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalRadioButtonUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRadioButtonUI : public ::javax::swing::plaf::basic::BasicRadioButtonUI +{ + +public: + MetalRadioButtonUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installDefaults(::javax::swing::AbstractButton *); +public: // actually protected + virtual void uninstallDefaults(::javax::swing::AbstractButton *); + virtual ::java::awt::Color * getSelectColor(); + virtual ::java::awt::Color * getDisabledTextColor(); + virtual ::java::awt::Color * getFocusColor(); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintFocus(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Dimension *); + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicRadioButtonUI)))) focusColor; + ::java::awt::Color * selectColor; + ::java::awt::Color * disabledTextColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRadioButtonUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalFrameBorder.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalFrameBorder.h new file mode 100644 index 00000000000..aa5a0eb84d9 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalFrameBorder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalFrameBorder__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalFrameBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalFrameBorder; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalFrameBorder : public ::javax::swing::border::AbstractBorder +{ + + MetalRootPaneUI$MetalFrameBorder(); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *, ::java::awt::Insets *); + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +public: // actually package-private + MetalRootPaneUI$MetalFrameBorder(::javax::swing::plaf::metal::MetalRootPaneUI$MetalFrameBorder *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalFrameBorder__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalRootLayout.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalRootLayout.h new file mode 100644 index 00000000000..8cf2767d29d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalRootLayout.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalRootLayout__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalRootLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalRootLayout; + class MetalRootPaneUI$MetalTitlePane; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalRootLayout : public ::java::lang::Object +{ + +public: // actually package-private + MetalRootPaneUI$MetalRootLayout(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *); +public: + virtual void addLayoutComponent(::java::awt::Component *, ::java::lang::Object *); + 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 addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + virtual void removeLayoutComponent(::java::awt::Component *); + virtual ::java::awt::Dimension * preferredLayoutSize(::java::awt::Container *); + virtual ::java::awt::Dimension * minimumLayoutSize(::java::awt::Container *); + virtual void layoutContainer(::java::awt::Container *); +private: + ::java::awt::Rectangle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) glassPaneBounds; + ::java::awt::Rectangle * layeredPaneBounds; + ::java::awt::Rectangle * contentPaneBounds; + ::java::awt::Rectangle * menuBarBounds; + ::java::awt::Rectangle * titlePaneBounds; + ::java::awt::Dimension * prefSize; + ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane * titlePane; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalRootLayout__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$CloseAction.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$CloseAction.h new file mode 100644 index 00000000000..5837b81a47a --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$CloseAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$CloseAction__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$CloseAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalTitlePane; + class MetalRootPaneUI$MetalTitlePane$CloseAction; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$CloseAction : public ::javax::swing::AbstractAction +{ + +public: + MetalRootPaneUI$MetalTitlePane$CloseAction(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$CloseAction__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$IconifyAction.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$IconifyAction.h new file mode 100644 index 00000000000..ea82f56189e --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$IconifyAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$IconifyAction__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$IconifyAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalTitlePane; + class MetalRootPaneUI$MetalTitlePane$IconifyAction; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$IconifyAction : public ::javax::swing::AbstractAction +{ + + MetalRootPaneUI$MetalTitlePane$IconifyAction(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + MetalRootPaneUI$MetalTitlePane$IconifyAction(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *, ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$IconifyAction *); + ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$IconifyAction__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MaximizeAction.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MaximizeAction.h new file mode 100644 index 00000000000..bad5edc2aca --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MaximizeAction.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MaximizeAction__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MaximizeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalTitlePane; + class MetalRootPaneUI$MetalTitlePane$MaximizeAction; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$MaximizeAction : public ::javax::swing::AbstractAction +{ + + MetalRootPaneUI$MetalTitlePane$MaximizeAction(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + MetalRootPaneUI$MetalTitlePane$MaximizeAction(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *, ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$MaximizeAction *); + ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::AbstractAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MaximizeAction__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout.h new file mode 100644 index 00000000000..5bc79486c69 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalTitlePane; + class MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout : public ::java::lang::Object +{ + +public: + MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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 *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MetalTitlePaneLayout__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MouseHandler.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MouseHandler.h new file mode 100644 index 00000000000..a1ee9cd5ca2 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$MouseHandler.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MouseHandler__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MouseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalTitlePane; + class MetalRootPaneUI$MetalTitlePane$MouseHandler; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$MouseHandler : public ::javax::swing::event::MouseInputAdapter +{ + + MetalRootPaneUI$MetalTitlePane$MouseHandler(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *); +public: + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); +public: // actually package-private + MetalRootPaneUI$MetalTitlePane$MouseHandler(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *, ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$MouseHandler *); + ::java::awt::Point * __attribute__((aligned(__alignof__( ::javax::swing::event::MouseInputAdapter)))) lastDragLocation; + ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$MouseHandler__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$PaneButton.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$PaneButton.h new file mode 100644 index 00000000000..1505f5c47c6 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane$PaneButton.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$PaneButton__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$PaneButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalTitlePane; + class MetalRootPaneUI$MetalTitlePane$PaneButton; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane$PaneButton : public ::javax::swing::JButton +{ + +public: + MetalRootPaneUI$MetalTitlePane$PaneButton(::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane *, ::javax::swing::Action *); + virtual jboolean isFocusable(); +public: // actually package-private + ::javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane$PaneButton__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane.h new file mode 100644 index 00000000000..d9adc9b8a64 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI$MetalTitlePane.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane__ +#define __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + class LayoutManager; + } + } + namespace javax + { + namespace swing + { + class Action; + class Icon; + class JButton; + class JLabel; + class JMenu; + class JMenuBar; + class JRootPane; + namespace plaf + { + namespace metal + { + class MetalRootPaneUI$MetalTitlePane; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI$MetalTitlePane : public ::javax::swing::JComponent +{ + +public: // actually package-private + MetalRootPaneUI$MetalTitlePane(::javax::swing::JRootPane *); +public: // actually protected + virtual ::java::awt::LayoutManager * createLayout(); + virtual void installTitlePane(); +private: + void enableActions(); + void addSubComponents(); + void installListeners(); + void createActions(); + void assembleSystemMenu(); +public: // actually protected + virtual ::javax::swing::JMenuBar * createSystemMenuBar(); + virtual ::javax::swing::JMenu * createSystemMenu(); +private: + void addSystemMenuItems(::javax::swing::JMenu *); +public: // actually protected + virtual void createButtons(); + virtual void setButtonIcons(); +public: + virtual void paintComponent(::java::awt::Graphics *); +public: // actually protected + virtual void paintTitleBackground(::java::awt::Graphics *); +private: + void installDefaults(); +public: // actually package-private + ::javax::swing::JRootPane * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) rootPane; + ::javax::swing::JButton * closeButton; + ::javax::swing::JButton * iconButton; + ::javax::swing::JButton * maxButton; + ::javax::swing::Icon * minIcon; + ::javax::swing::Icon * maxIcon; +private: + ::javax::swing::Icon * iconIcon; +public: // actually package-private + ::javax::swing::Icon * closeIcon; +private: + ::java::awt::Color * notSelectedTitleColor; + ::java::awt::Color * selectedTitleColor; +public: // actually package-private + ::javax::swing::JLabel * title; +private: + ::javax::swing::Action * closeAction; + ::javax::swing::Action * iconifyAction; + ::javax::swing::Action * maximizeAction; + ::javax::swing::JMenuBar * menuBar; +public: // actually protected + ::javax::swing::JMenu * windowMenu; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI$MetalTitlePane__ diff --git a/libjava/javax/swing/plaf/metal/MetalRootPaneUI.h b/libjava/javax/swing/plaf/metal/MetalRootPaneUI.h new file mode 100644 index 00000000000..dad96a54484 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalRootPaneUI.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalRootPaneUI__ +#define __javax_swing_plaf_metal_MetalRootPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JRootPane; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalRootPaneUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalRootPaneUI : public ::javax::swing::plaf::basic::BasicRootPaneUI +{ + +public: + MetalRootPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +private: + void installWindowDecorations(::javax::swing::JRootPane *); + void uninstallWindowDecorations(::javax::swing::JRootPane *); + static ::javax::swing::plaf::metal::MetalRootPaneUI * instance; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalRootPaneUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalScrollBarUI$MetalScrollBarPropertyChangeHandler.h b/libjava/javax/swing/plaf/metal/MetalScrollBarUI$MetalScrollBarPropertyChangeHandler.h new file mode 100644 index 00000000000..911ed4ddeb1 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalScrollBarUI$MetalScrollBarPropertyChangeHandler.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalScrollBarUI$MetalScrollBarPropertyChangeHandler__ +#define __javax_swing_plaf_metal_MetalScrollBarUI$MetalScrollBarPropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalScrollBarUI; + class MetalScrollBarUI$MetalScrollBarPropertyChangeHandler; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalScrollBarUI$MetalScrollBarPropertyChangeHandler : public ::javax::swing::plaf::basic::BasicScrollBarUI$PropertyChangeHandler +{ + +public: + MetalScrollBarUI$MetalScrollBarPropertyChangeHandler(::javax::swing::plaf::metal::MetalScrollBarUI *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalScrollBarUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicScrollBarUI$PropertyChangeHandler)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalScrollBarUI$MetalScrollBarPropertyChangeHandler__ diff --git a/libjava/javax/swing/plaf/metal/MetalScrollBarUI.h b/libjava/javax/swing/plaf/metal/MetalScrollBarUI.h new file mode 100644 index 00000000000..f76d33bddfb --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalScrollBarUI.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalScrollBarUI__ +#define __javax_swing_plaf_metal_MetalScrollBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + class Rectangle; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JButton; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalScrollBarUI; + class MetalScrollButton; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalScrollBarUI : public ::javax::swing::plaf::basic::BasicScrollBarUI +{ + +public: + MetalScrollBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual void installDefaults(); + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(); + virtual ::javax::swing::JButton * createDecreaseButton(jint); + virtual ::javax::swing::JButton * createIncreaseButton(jint); + virtual void paintTrack(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *); +private: + void paintTrackHorizontal(::java::awt::Graphics *, ::javax::swing::JComponent *, jint, jint, jint, jint); + void paintTrackVertical(::java::awt::Graphics *, ::javax::swing::JComponent *, jint, jint, jint, jint); +public: // actually protected + virtual void paintThumb(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *); +private: + void paintThumbHorizontal(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *); + void paintThumbVertical(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *); +public: // actually protected + virtual ::java::awt::Dimension * getMinimumThumbSize(); +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + static ::java::lang::String * FREE_STANDING_PROP; +private: + static ::java::awt::Dimension * MIN_THUMB_SIZE; + static ::java::awt::Dimension * MIN_THUMB_SIZE_FREE_STANDING; +public: // actually protected + ::javax::swing::plaf::metal::MetalScrollButton * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicScrollBarUI)))) increaseButton; + ::javax::swing::plaf::metal::MetalScrollButton * decreaseButton; + jint scrollBarWidth; + jboolean isFreeStanding; +public: // actually package-private + ::java::awt::Color * scrollBarShadowColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalScrollBarUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalScrollButton.h b/libjava/javax/swing/plaf/metal/MetalScrollButton.h new file mode 100644 index 00000000000..3a3d86125f2 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalScrollButton.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalScrollButton__ +#define __javax_swing_plaf_metal_MetalScrollButton__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalScrollButton; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalScrollButton : public ::javax::swing::plaf::basic::BasicArrowButton +{ + +public: + MetalScrollButton(jint, jint, jboolean); + virtual jint getButtonWidth(); + virtual void setFreeStanding(jboolean); + virtual void paint(::java::awt::Graphics *); +private: + void paintArrow(::java::awt::Graphics *, jint, jint); + void paintNorthBorderFreeStanding(::java::awt::Graphics *, jint, jint); + void paintSouthBorderFreeStanding(::java::awt::Graphics *, jint, jint); + void paintEastBorderFreeStanding(::java::awt::Graphics *, jint, jint); + void paintWestBorderFreeStanding(::java::awt::Graphics *, jint, jint); + void paintNorthBorder(::java::awt::Graphics *, jint, jint); + void paintSouthBorder(::java::awt::Graphics *, jint, jint); + void paintEastBorder(::java::awt::Graphics *, jint, jint); + void paintWestBorder(::java::awt::Graphics *, jint, jint); +public: + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getMaximumSize(); +private: + static ::java::awt::Dimension * maximumSize; + jint __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicArrowButton)))) buttonWidth; + jboolean freeStanding; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalScrollButton__ diff --git a/libjava/javax/swing/plaf/metal/MetalScrollPaneUI.h b/libjava/javax/swing/plaf/metal/MetalScrollPaneUI.h new file mode 100644 index 00000000000..f751c355ee2 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalScrollPaneUI.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalScrollPaneUI__ +#define __javax_swing_plaf_metal_MetalScrollPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class JScrollPane; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalScrollPaneUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalScrollPaneUI : public ::javax::swing::plaf::basic::BasicScrollPaneUI +{ + +public: + MetalScrollPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void installListeners(::javax::swing::JScrollPane *); + virtual void uninstallListeners(::javax::swing::JScrollPane *); +public: // actually protected + virtual ::java::beans::PropertyChangeListener * createScrollBarSwapListener(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalScrollPaneUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalSeparatorUI.h b/libjava/javax/swing/plaf/metal/MetalSeparatorUI.h new file mode 100644 index 00000000000..afa4a33c713 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalSeparatorUI.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalSeparatorUI__ +#define __javax_swing_plaf_metal_MetalSeparatorUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalSeparatorUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalSeparatorUI : public ::javax::swing::plaf::basic::BasicSeparatorUI +{ + +public: + MetalSeparatorUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +private: + static ::javax::swing::plaf::metal::MetalSeparatorUI * instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalSeparatorUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener.h b/libjava/javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener.h new file mode 100644 index 00000000000..a3b9554cb12 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalSliderUI$MetalPropertyListener__ +#define __javax_swing_plaf_metal_MetalSliderUI$MetalPropertyListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalSliderUI; + class MetalSliderUI$MetalPropertyListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalSliderUI$MetalPropertyListener : public ::javax::swing::plaf::basic::BasicSliderUI$PropertyChangeHandler +{ + +public: // actually protected + MetalSliderUI$MetalPropertyListener(::javax::swing::plaf::metal::MetalSliderUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalSliderUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicSliderUI$PropertyChangeHandler)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalSliderUI$MetalPropertyListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalSliderUI.h b/libjava/javax/swing/plaf/metal/MetalSliderUI.h new file mode 100644 index 00000000000..555e0b37dd5 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalSliderUI.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalSliderUI__ +#define __javax_swing_plaf_metal_MetalSliderUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Graphics; + class Rectangle; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JComponent; + class JSlider; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalSliderUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalSliderUI : public ::javax::swing::plaf::basic::BasicSliderUI +{ + +public: + MetalSliderUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::beans::PropertyChangeListener * createPropertyChangeListener(::javax::swing::JSlider *); +public: + virtual void paintThumb(::java::awt::Graphics *); + virtual void paintTrack(::java::awt::Graphics *); + virtual void paintFocus(::java::awt::Graphics *); +public: // actually protected + virtual ::java::awt::Dimension * getThumbSize(); +public: + virtual jint getTickLength(); +public: // actually protected + virtual jint getTrackWidth(); + virtual jint getTrackLength(); + virtual jint getThumbOverhang(); + virtual void scrollDueToClickInTrack(jint); + virtual void paintMinorTickForHorizSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + virtual void paintMajorTickForHorizSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + virtual void paintMinorTickForVertSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + virtual void paintMajorTickForVertSlider(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + static ::java::awt::Color * thumbColor; + static ::java::awt::Color * highlightColor; + static ::java::awt::Color * darkShadowColor; + static jint trackWidth; + static jint tickLength; + static ::javax::swing::Icon * horizThumbIcon; + static ::javax::swing::Icon * vertThumbIcon; + const jint __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicSliderUI)))) TICK_BUFFER; + ::java::lang::String * SLIDER_FILL; + jboolean filledSlider; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalSliderUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalDividerLayout.h b/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalDividerLayout.h new file mode 100644 index 00000000000..707fe29327c --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalDividerLayout.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalSplitPaneDivider$MetalDividerLayout__ +#define __javax_swing_plaf_metal_MetalSplitPaneDivider$MetalDividerLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Container; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace basic + { + class BasicArrowButton; + } + namespace metal + { + class MetalSplitPaneDivider; + class MetalSplitPaneDivider$MetalDividerLayout; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalSplitPaneDivider$MetalDividerLayout : public ::java::lang::Object +{ + +public: + MetalSplitPaneDivider$MetalDividerLayout(::javax::swing::plaf::metal::MetalSplitPaneDivider *); + virtual void addLayoutComponent(::java::lang::String *, ::java::awt::Component *); + 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 *); +public: // actually package-private + ::javax::swing::plaf::basic::BasicArrowButton * __attribute__((aligned(__alignof__( ::java::lang::Object)))) rb; + ::javax::swing::plaf::basic::BasicArrowButton * lb; + ::javax::swing::plaf::metal::MetalSplitPaneDivider * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalSplitPaneDivider$MetalDividerLayout__ diff --git a/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalOneTouchButton.h b/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalOneTouchButton.h new file mode 100644 index 00000000000..ee348d7779d --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider$MetalOneTouchButton.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalSplitPaneDivider$MetalOneTouchButton__ +#define __javax_swing_plaf_metal_MetalSplitPaneDivider$MetalOneTouchButton__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace plaf + { + namespace metal + { + class MetalSplitPaneDivider; + class MetalSplitPaneDivider$MetalOneTouchButton; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalSplitPaneDivider$MetalOneTouchButton : public ::javax::swing::JButton +{ + +public: // actually package-private + MetalSplitPaneDivider$MetalOneTouchButton(::javax::swing::plaf::metal::MetalSplitPaneDivider *, jint); +public: + virtual void setBorder(::javax::swing::border::Border *); + virtual jboolean isFocusTraversable(); + virtual void paint(::java::awt::Graphics *); +public: // actually package-private + static const jint LEFT = 0; + static const jint RIGHT = 1; +private: + JArray< ::java::awt::Color * > * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) colors; + jint direction; +public: // actually package-private + ::javax::swing::plaf::metal::MetalSplitPaneDivider * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalSplitPaneDivider$MetalOneTouchButton__ diff --git a/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider.h b/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider.h new file mode 100644 index 00000000000..7230f6051e7 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalSplitPaneDivider.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalSplitPaneDivider__ +#define __javax_swing_plaf_metal_MetalSplitPaneDivider__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JButton; + class JSplitPane; + namespace plaf + { + namespace metal + { + class MetalSplitPaneDivider; + class MetalSplitPaneUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalSplitPaneDivider : public ::javax::swing::plaf::basic::BasicSplitPaneDivider +{ + +public: + MetalSplitPaneDivider(::javax::swing::plaf::metal::MetalSplitPaneUI *, ::java::awt::Color *, ::java::awt::Color *); + virtual void paint(::java::awt::Graphics *); +public: // actually protected + virtual ::javax::swing::JButton * createLeftOneTouchButton(); + virtual ::javax::swing::JButton * createRightOneTouchButton(); +public: // actually package-private + static JArray< JArray< jbyte > * > * BUTTON_SPRITE_L; + static JArray< JArray< jbyte > * > * BUTTON_SPRITE_R; + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicSplitPaneDivider)))) dark; + ::java::awt::Color * light; + ::javax::swing::JSplitPane * splitPane; + jint orientation; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalSplitPaneDivider__ diff --git a/libjava/javax/swing/plaf/metal/MetalSplitPaneUI.h b/libjava/javax/swing/plaf/metal/MetalSplitPaneUI.h new file mode 100644 index 00000000000..2505e06c27c --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalSplitPaneUI.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalSplitPaneUI__ +#define __javax_swing_plaf_metal_MetalSplitPaneUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace basic + { + class BasicSplitPaneDivider; + } + namespace metal + { + class MetalSplitPaneUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalSplitPaneUI : public ::javax::swing::plaf::basic::BasicSplitPaneUI +{ + +public: + MetalSplitPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::javax::swing::plaf::basic::BasicSplitPaneDivider * createDefaultDivider(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalSplitPaneUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout.h b/libjava/javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout.h new file mode 100644 index 00000000000..0aa2214c5a2 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalTabbedPaneUI$TabbedPaneLayout__ +#define __javax_swing_plaf_metal_MetalTabbedPaneUI$TabbedPaneLayout__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalTabbedPaneUI; + class MetalTabbedPaneUI$TabbedPaneLayout; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalTabbedPaneUI$TabbedPaneLayout : public ::javax::swing::plaf::basic::BasicTabbedPaneUI$TabbedPaneLayout +{ + +public: + MetalTabbedPaneUI$TabbedPaneLayout(::javax::swing::plaf::metal::MetalTabbedPaneUI *); +public: // actually protected + virtual void rotateTabRuns(jint, jint); + virtual void padSelectedTab(jint, jint); + virtual void normalizeTabRuns(jint, jint, jint, jint); +public: // actually package-private + ::javax::swing::plaf::metal::MetalTabbedPaneUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicTabbedPaneUI$TabbedPaneLayout)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalTabbedPaneUI$TabbedPaneLayout__ diff --git a/libjava/javax/swing/plaf/metal/MetalTabbedPaneUI.h b/libjava/javax/swing/plaf/metal/MetalTabbedPaneUI.h new file mode 100644 index 00000000000..12fdef6c931 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalTabbedPaneUI.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalTabbedPaneUI__ +#define __javax_swing_plaf_metal_MetalTabbedPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + class LayoutManager; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalTabbedPaneUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalTabbedPaneUI : public ::javax::swing::plaf::basic::BasicTabbedPaneUI +{ + +public: + MetalTabbedPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::awt::LayoutManager * createLayoutManager(); + virtual void paintTabBorder(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintTopTabBorder(jint, ::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintLeftTabBorder(jint, ::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintRightTabBorder(jint, ::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintBottomTabBorder(jint, ::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintTabBackground(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, jboolean); + virtual void paintFocusIndicator(::java::awt::Graphics *, jint, JArray< ::java::awt::Rectangle * > *, jint, ::java::awt::Rectangle *, ::java::awt::Rectangle *, jboolean); + virtual jboolean shouldPadTabRun(jint, jint); + virtual void installDefaults(); + virtual ::java::awt::Color * getColorForGap(jint, jint, jint); + virtual jboolean shouldFillGap(jint, jint, jint, jint); + virtual void paintHighlightBelowTab(); + virtual jboolean shouldRotateTabRuns(jint, jint); + virtual jint calculateMaxTabHeight(jint); + virtual jint getTabRunOverlay(jint); + virtual void paintContentBorderTopEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); + virtual void paintContentBorderBottomEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); + virtual void paintContentBorderLeftEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); + virtual void paintContentBorderRightEdge(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint); +private: + jboolean isLastTabInRun(jint); + ::java::awt::Color * getUnselectedBackground(jint); +public: // actually protected + virtual jint getTabLabelShiftX(jint, jint, jboolean); + virtual jint getTabLabelShiftY(jint, jint, jboolean); + jint __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicTabbedPaneUI)))) minTabWidth; + ::java::awt::Color * selectColor; + ::java::awt::Color * selectHighlight; + ::java::awt::Color * tabAreaBackground; +private: + ::java::awt::Graphics * hg; + jboolean tabsOpaque; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalTabbedPaneUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalTextFieldUI.h b/libjava/javax/swing/plaf/metal/MetalTextFieldUI.h new file mode 100644 index 00000000000..610de0bfbde --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalTextFieldUI.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalTextFieldUI__ +#define __javax_swing_plaf_metal_MetalTextFieldUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalTextFieldUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalTextFieldUI : public ::javax::swing::plaf::basic::BasicTextFieldUI +{ + +public: + MetalTextFieldUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalTextFieldUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalTheme.h b/libjava/javax/swing/plaf/metal/MetalTheme.h new file mode 100644 index 00000000000..e8e813a88d5 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalTheme.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalTheme__ +#define __javax_swing_plaf_metal_MetalTheme__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + class ColorUIResource; + class FontUIResource; + namespace metal + { + class MetalTheme; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalTheme : public ::java::lang::Object +{ + +public: + MetalTheme(); + virtual ::java::lang::String * getName() = 0; + virtual void addCustomEntriesToTable(::javax::swing::UIDefaults *); + virtual ::javax::swing::plaf::ColorUIResource * getAcceleratorForeground(); + virtual ::javax::swing::plaf::ColorUIResource * getAcceleratorSelectedForeground(); + virtual ::javax::swing::plaf::ColorUIResource * getControl(); + virtual ::javax::swing::plaf::ColorUIResource * getControlDarkShadow(); + virtual ::javax::swing::plaf::ColorUIResource * getControlDisabled(); + virtual ::javax::swing::plaf::ColorUIResource * getControlHighlight(); + virtual ::javax::swing::plaf::ColorUIResource * getControlInfo(); + virtual ::javax::swing::plaf::ColorUIResource * getControlShadow(); + virtual ::javax::swing::plaf::ColorUIResource * getControlTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getDesktopColor(); + virtual ::javax::swing::plaf::ColorUIResource * getFocusColor(); + virtual ::javax::swing::plaf::ColorUIResource * getHighlightedTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getInactiveControlTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getInactiveSystemTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getMenuBackground(); + virtual ::javax::swing::plaf::ColorUIResource * getMenuDisabledForeground(); + virtual ::javax::swing::plaf::ColorUIResource * getMenuForeground(); + virtual ::javax::swing::plaf::ColorUIResource * getMenuSelectedBackground(); + virtual ::javax::swing::plaf::ColorUIResource * getMenuSelectedForeground(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimaryControl(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimaryControlDarkShadow(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimaryControlHighlight(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimaryControlInfo(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimaryControlShadow(); + virtual ::javax::swing::plaf::ColorUIResource * getSeparatorBackground(); + virtual ::javax::swing::plaf::ColorUIResource * getSeparatorForeground(); + virtual ::javax::swing::plaf::ColorUIResource * getSystemTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getTextHighlightColor(); + virtual ::javax::swing::plaf::ColorUIResource * getUserTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getWindowBackground(); + virtual ::javax::swing::plaf::ColorUIResource * getWindowTitleBackground(); + virtual ::javax::swing::plaf::ColorUIResource * getWindowTitleForeground(); + virtual ::javax::swing::plaf::ColorUIResource * getWindowTitleInactiveBackground(); + virtual ::javax::swing::plaf::ColorUIResource * getWindowTitleInactiveForeground(); +public: // actually protected + virtual ::javax::swing::plaf::ColorUIResource * getBlack(); + virtual ::javax::swing::plaf::ColorUIResource * getWhite(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary1() = 0; + virtual ::javax::swing::plaf::ColorUIResource * getPrimary2() = 0; + virtual ::javax::swing::plaf::ColorUIResource * getPrimary3() = 0; + virtual ::javax::swing::plaf::ColorUIResource * getSecondary1() = 0; + virtual ::javax::swing::plaf::ColorUIResource * getSecondary2() = 0; + virtual ::javax::swing::plaf::ColorUIResource * getSecondary3() = 0; +public: + virtual ::javax::swing::plaf::FontUIResource * getControlTextFont() = 0; + virtual ::javax::swing::plaf::FontUIResource * getMenuTextFont() = 0; + virtual ::javax::swing::plaf::FontUIResource * getSubTextFont() = 0; + virtual ::javax::swing::plaf::FontUIResource * getSystemTextFont() = 0; + virtual ::javax::swing::plaf::FontUIResource * getUserTextFont() = 0; + virtual ::javax::swing::plaf::FontUIResource * getWindowTitleFont() = 0; +private: + ::javax::swing::plaf::ColorUIResource * __attribute__((aligned(__alignof__( ::java::lang::Object)))) BLACK; + ::javax::swing::plaf::ColorUIResource * WHITE; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalTheme__ diff --git a/libjava/javax/swing/plaf/metal/MetalToggleButtonUI.h b/libjava/javax/swing/plaf/metal/MetalToggleButtonUI.h new file mode 100644 index 00000000000..a53cb8b0118 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalToggleButtonUI.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalToggleButtonUI__ +#define __javax_swing_plaf_metal_MetalToggleButtonUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class AbstractButton; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalToggleButtonUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalToggleButtonUI : public ::javax::swing::plaf::basic::BasicToggleButtonUI +{ + +public: + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + MetalToggleButtonUI(); +public: // actually protected + virtual ::java::awt::Color * getFocusColor(); + virtual ::java::awt::Color * getSelectColor(); + virtual ::java::awt::Color * getDisabledTextColor(); +public: + virtual void installDefaults(::javax::swing::AbstractButton *); +public: // actually protected + virtual void paintButtonPressed(::java::awt::Graphics *, ::javax::swing::AbstractButton *); + virtual void paintText(::java::awt::Graphics *, ::javax::swing::JComponent *, ::java::awt::Rectangle *, ::java::lang::String *); + virtual void paintFocus(::java::awt::Graphics *, ::javax::swing::AbstractButton *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *); +public: + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicToggleButtonUI)))) focusColor; + ::java::awt::Color * selectColor; + ::java::awt::Color * disabledTextColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalToggleButtonUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener.h b/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener.h new file mode 100644 index 00000000000..b04a7bb6353 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalContainerListener.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalToolBarUI$MetalContainerListener__ +#define __javax_swing_plaf_metal_MetalToolBarUI$MetalContainerListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalToolBarUI; + class MetalToolBarUI$MetalContainerListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalToolBarUI$MetalContainerListener : public ::javax::swing::plaf::basic::BasicToolBarUI$ToolBarContListener +{ + +public: // actually protected + MetalToolBarUI$MetalContainerListener(::javax::swing::plaf::metal::MetalToolBarUI *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalToolBarUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicToolBarUI$ToolBarContListener)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalToolBarUI$MetalContainerListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener.h b/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener.h new file mode 100644 index 00000000000..f509544b3aa --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalToolBarUI$MetalDockingListener__ +#define __javax_swing_plaf_metal_MetalToolBarUI$MetalDockingListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JToolBar; + namespace plaf + { + namespace metal + { + class MetalToolBarUI; + class MetalToolBarUI$MetalDockingListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalToolBarUI$MetalDockingListener : public ::javax::swing::plaf::basic::BasicToolBarUI$DockingListener +{ + +public: + MetalToolBarUI$MetalDockingListener(::javax::swing::plaf::metal::MetalToolBarUI *, ::javax::swing::JToolBar *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalToolBarUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicToolBarUI$DockingListener)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalToolBarUI$MetalDockingListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener.h b/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener.h new file mode 100644 index 00000000000..8b254a6c133 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalToolBarUI$MetalRolloverListener.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalToolBarUI$MetalRolloverListener__ +#define __javax_swing_plaf_metal_MetalToolBarUI$MetalRolloverListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalToolBarUI; + class MetalToolBarUI$MetalRolloverListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalToolBarUI$MetalRolloverListener : public ::javax::swing::plaf::basic::BasicToolBarUI$PropertyListener +{ + +public: // actually protected + MetalToolBarUI$MetalRolloverListener(::javax::swing::plaf::metal::MetalToolBarUI *); +public: // actually package-private + ::javax::swing::plaf::metal::MetalToolBarUI * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicToolBarUI$PropertyListener)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalToolBarUI$MetalRolloverListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalToolBarUI.h b/libjava/javax/swing/plaf/metal/MetalToolBarUI.h new file mode 100644 index 00000000000..95be69ffd07 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalToolBarUI.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalToolBarUI__ +#define __javax_swing_plaf_metal_MetalToolBarUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Point; + namespace event + { + class ContainerListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace border + { + class Border; + } + namespace event + { + class MouseInputListener; + } + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalToolBarUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalToolBarUI : public ::javax::swing::plaf::basic::BasicToolBarUI +{ + +public: + MetalToolBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual ::java::beans::PropertyChangeListener * createRolloverListener(); + virtual ::java::awt::event::ContainerListener * createContainerListener(); + virtual ::javax::swing::border::Border * createNonRolloverBorder(); + virtual void setDragOffset(::java::awt::Point *); + virtual ::javax::swing::event::MouseInputListener * createDockingListener(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + ::java::awt::event::ContainerListener * __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicToolBarUI)))) contListener; + ::java::beans::PropertyChangeListener * rolloverListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalToolBarUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalToolTipUI.h b/libjava/javax/swing/plaf/metal/MetalToolTipUI.h new file mode 100644 index 00000000000..f38637c6db2 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalToolTipUI.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalToolTipUI__ +#define __javax_swing_plaf_metal_MetalToolTipUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Font; + class Graphics; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class KeyStroke; + namespace border + { + class Border; + } + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalToolTipUI; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalToolTipUI : public ::javax::swing::plaf::basic::BasicToolTipUI +{ + +public: + MetalToolTipUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual ::java::lang::String * getAcceleratorString(); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual jboolean isAcceleratorHidden(); +public: + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +private: + ::java::lang::String * fetchAcceleratorString(::javax::swing::JComponent *); + ::java::lang::String * acceleratorToString(::javax::swing::KeyStroke *); +public: + static const jint padSpaceBetweenStrings = 12; +private: + static ::javax::swing::plaf::metal::MetalToolTipUI * instance; + jboolean __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicToolTipUI)))) isAcceleratorHidden__; + ::java::lang::String * acceleratorString; + ::java::lang::String * acceleratorDelimiter; + ::java::awt::Font * acceleratorFont; + ::java::awt::Color * acceleratorForeground; + ::javax::swing::border::Border * activeBorder; + ::javax::swing::border::Border * inactiveBorder; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalToolTipUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalTreeUI$LineStyleListener.h b/libjava/javax/swing/plaf/metal/MetalTreeUI$LineStyleListener.h new file mode 100644 index 00000000000..e0ffe068fc3 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalTreeUI$LineStyleListener.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalTreeUI$LineStyleListener__ +#define __javax_swing_plaf_metal_MetalTreeUI$LineStyleListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalTreeUI; + class MetalTreeUI$LineStyleListener; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalTreeUI$LineStyleListener : public ::java::lang::Object +{ + + MetalTreeUI$LineStyleListener(::javax::swing::plaf::metal::MetalTreeUI *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + MetalTreeUI$LineStyleListener(::javax::swing::plaf::metal::MetalTreeUI *, ::javax::swing::plaf::metal::MetalTreeUI$LineStyleListener *); + ::javax::swing::plaf::metal::MetalTreeUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalTreeUI$LineStyleListener__ diff --git a/libjava/javax/swing/plaf/metal/MetalTreeUI.h b/libjava/javax/swing/plaf/metal/MetalTreeUI.h new file mode 100644 index 00000000000..98cf994a24f --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalTreeUI.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalTreeUI__ +#define __javax_swing_plaf_metal_MetalTreeUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Insets; + class Rectangle; + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace metal + { + class MetalTreeUI; + } + } + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::plaf::metal::MetalTreeUI : public ::javax::swing::plaf::basic::BasicTreeUI +{ + +public: + MetalTreeUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); +public: // actually protected + virtual jint getHorizontalLegBuffer(); +public: + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); +public: // actually protected + virtual void decodeLineStyle(::java::lang::Object *); + virtual jboolean isLocationInExpandControl(jint, jint, jint, jint); +public: + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); +public: // actually protected + virtual void paintHorizontalSeparators(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paintVerticalPartOfLeg(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Insets *, ::javax::swing::tree::TreePath *); + virtual void paintHorizontalPartOfLeg(::java::awt::Graphics *, ::java::awt::Rectangle *, ::java::awt::Insets *, ::java::awt::Rectangle *, ::javax::swing::tree::TreePath *, jint, jboolean, jboolean, jboolean); +private: + static ::java::lang::String * LINE_STYLE_PROPERTY; + static ::java::lang::String * LINE_STYLE_VALUE_NONE; + static ::java::lang::String * LINE_STYLE_VALUE_ANGLED; + static ::java::lang::String * LINE_STYLE_VALUE_HORIZONTAL; + static const jint LINE_STYLE_NONE = 0; + static const jint LINE_STYLE_ANGLED = 1; + static const jint LINE_STYLE_HORIZONTAL = 2; + jint __attribute__((aligned(__alignof__( ::javax::swing::plaf::basic::BasicTreeUI)))) lineStyle; + ::java::beans::PropertyChangeListener * lineStyleListener; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalTreeUI__ diff --git a/libjava/javax/swing/plaf/metal/MetalUtils.h b/libjava/javax/swing/plaf/metal/MetalUtils.h new file mode 100644 index 00000000000..3dd94a23fde --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalUtils.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_MetalUtils__ +#define __javax_swing_plaf_metal_MetalUtils__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Graphics2D; + namespace image + { + class BufferedImage; + } + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace metal + { + class MetalUtils; + } + } + } + } +} + +class javax::swing::plaf::metal::MetalUtils : public ::java::lang::Object +{ + +public: // actually package-private + MetalUtils(); + static void fillMetalPattern(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *); + static void fillMetalPattern2D(::java::awt::Graphics2D *, jint, jint, jint, jint, ::java::awt::Color *, ::java::awt::Color *); + static void initializePattern(::java::awt::Color *, ::java::awt::Color *); + static void paintGradient(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::lang::String *); + static void paintGradient(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::lang::String *, JArray< JArray< jint > * > *); + static void paintGradient(::java::awt::Graphics *, jint, jint, jint, jint, jfloat, jfloat, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, jint, JArray< JArray< jint > * > *); + static void paintHorizontalGradient(::java::awt::Graphics *, jint, jint, jint, jint, jfloat, jfloat, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, JArray< JArray< jint > * > *); + static void paintVerticalGradient(::java::awt::Graphics *, jint, jint, jint, jint, jfloat, jfloat, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, JArray< JArray< jint > * > *); +private: + static void paintHorizontalGradient2D(::java::awt::Graphics2D *, jint, jint, jint, jint, jfloat, jfloat, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, JArray< JArray< jint > * > *); + static void paintVerticalGradient2D(::java::awt::Graphics2D *, jint, jint, jint, jint, jfloat, jfloat, ::java::awt::Color *, ::java::awt::Color *, ::java::awt::Color *, JArray< JArray< jint > * > *); +public: // actually package-private + static ::java::awt::image::BufferedImage * pattern2D; + static ::java::awt::Color * lightColor; + static ::java::awt::Color * darkColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_MetalUtils__ diff --git a/libjava/javax/swing/plaf/metal/OceanTheme.h b/libjava/javax/swing/plaf/metal/OceanTheme.h new file mode 100644 index 00000000000..2587609811f --- /dev/null +++ b/libjava/javax/swing/plaf/metal/OceanTheme.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_metal_OceanTheme__ +#define __javax_swing_plaf_metal_OceanTheme__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class UIDefaults; + namespace plaf + { + class ColorUIResource; + namespace metal + { + class OceanTheme; + } + } + } + } +} + +class javax::swing::plaf::metal::OceanTheme : public ::javax::swing::plaf::metal::DefaultMetalTheme +{ + +public: + OceanTheme(); + virtual ::java::lang::String * getName(); + virtual ::javax::swing::plaf::ColorUIResource * getControlTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getDesktopColor(); + virtual ::javax::swing::plaf::ColorUIResource * getInactiveControlTextColor(); + virtual ::javax::swing::plaf::ColorUIResource * getMenuDisabledForeground(); +public: // actually protected + virtual ::javax::swing::plaf::ColorUIResource * getBlack(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary1(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary2(); + virtual ::javax::swing::plaf::ColorUIResource * getPrimary3(); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary1(); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary2(); + virtual ::javax::swing::plaf::ColorUIResource * getSecondary3(); +public: + virtual void addCustomEntriesToTable(::javax::swing::UIDefaults *); +public: // actually package-private + static ::javax::swing::plaf::ColorUIResource * BLACK; + static ::javax::swing::plaf::ColorUIResource * PRIMARY1; + static ::javax::swing::plaf::ColorUIResource * PRIMARY2; + static ::javax::swing::plaf::ColorUIResource * PRIMARY3; + static ::javax::swing::plaf::ColorUIResource * SECONDARY1; + static ::javax::swing::plaf::ColorUIResource * SECONDARY2; + static ::javax::swing::plaf::ColorUIResource * SECONDARY3; + static ::javax::swing::plaf::ColorUIResource * INACTIVE_CONTROL_TEXT; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_metal_OceanTheme__ diff --git a/libjava/javax/swing/plaf/multi/MultiButtonUI.h b/libjava/javax/swing/plaf/multi/MultiButtonUI.h new file mode 100644 index 00000000000..3481b6eee4e --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiButtonUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiButtonUI__ +#define __javax_swing_plaf_multi_MultiButtonUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiButtonUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiButtonUI : public ::javax::swing::plaf::ButtonUI +{ + +public: + MultiButtonUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ButtonUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiButtonUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiColorChooserUI.h b/libjava/javax/swing/plaf/multi/MultiColorChooserUI.h new file mode 100644 index 00000000000..d890eeabef3 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiColorChooserUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiColorChooserUI__ +#define __javax_swing_plaf_multi_MultiColorChooserUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiColorChooserUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiColorChooserUI : public ::javax::swing::plaf::ColorChooserUI +{ + +public: + MultiColorChooserUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ColorChooserUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiColorChooserUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiComboBoxUI.h b/libjava/javax/swing/plaf/multi/MultiComboBoxUI.h new file mode 100644 index 00000000000..9e92a3237d6 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiComboBoxUI.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiComboBoxUI__ +#define __javax_swing_plaf_multi_MultiComboBoxUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComboBox; + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiComboBoxUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiComboBoxUI : public ::javax::swing::plaf::ComboBoxUI +{ + +public: + MultiComboBoxUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual void setPopupVisible(::javax::swing::JComboBox *, jboolean); + virtual jboolean isPopupVisible(::javax::swing::JComboBox *); + virtual jboolean isFocusTraversable(::javax::swing::JComboBox *); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ComboBoxUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiComboBoxUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiDesktopIconUI.h b/libjava/javax/swing/plaf/multi/MultiDesktopIconUI.h new file mode 100644 index 00000000000..d7a5f47fe08 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiDesktopIconUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiDesktopIconUI__ +#define __javax_swing_plaf_multi_MultiDesktopIconUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiDesktopIconUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiDesktopIconUI : public ::javax::swing::plaf::DesktopIconUI +{ + +public: + MultiDesktopIconUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::DesktopIconUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiDesktopIconUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiDesktopPaneUI.h b/libjava/javax/swing/plaf/multi/MultiDesktopPaneUI.h new file mode 100644 index 00000000000..d6dcff2c2b8 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiDesktopPaneUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiDesktopPaneUI__ +#define __javax_swing_plaf_multi_MultiDesktopPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiDesktopPaneUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiDesktopPaneUI : public ::javax::swing::plaf::DesktopPaneUI +{ + +public: + MultiDesktopPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::DesktopPaneUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiDesktopPaneUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiFileChooserUI.h b/libjava/javax/swing/plaf/multi/MultiFileChooserUI.h new file mode 100644 index 00000000000..e459d3280a7 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiFileChooserUI.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiFileChooserUI__ +#define __javax_swing_plaf_multi_MultiFileChooserUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + class JFileChooser; + namespace filechooser + { + class FileFilter; + class FileView; + } + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiFileChooserUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiFileChooserUI : public ::javax::swing::plaf::FileChooserUI +{ + +public: + MultiFileChooserUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual ::javax::swing::filechooser::FileFilter * getAcceptAllFileFilter(::javax::swing::JFileChooser *); + virtual ::javax::swing::filechooser::FileView * getFileView(::javax::swing::JFileChooser *); + virtual ::java::lang::String * getApproveButtonText(::javax::swing::JFileChooser *); + virtual ::java::lang::String * getDialogTitle(::javax::swing::JFileChooser *); + virtual void rescanCurrentDirectory(::javax::swing::JFileChooser *); + virtual void ensureFileIsVisible(::javax::swing::JFileChooser *, ::java::io::File *); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::FileChooserUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiFileChooserUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiInternalFrameUI.h b/libjava/javax/swing/plaf/multi/MultiInternalFrameUI.h new file mode 100644 index 00000000000..ab260b70989 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiInternalFrameUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiInternalFrameUI__ +#define __javax_swing_plaf_multi_MultiInternalFrameUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiInternalFrameUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiInternalFrameUI : public ::javax::swing::plaf::InternalFrameUI +{ + +public: + MultiInternalFrameUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::InternalFrameUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiInternalFrameUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiLabelUI.h b/libjava/javax/swing/plaf/multi/MultiLabelUI.h new file mode 100644 index 00000000000..7f5049cecb1 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiLabelUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiLabelUI__ +#define __javax_swing_plaf_multi_MultiLabelUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiLabelUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiLabelUI : public ::javax::swing::plaf::LabelUI +{ + +public: + MultiLabelUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::LabelUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiLabelUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiListUI.h b/libjava/javax/swing/plaf/multi/MultiListUI.h new file mode 100644 index 00000000000..3147894c629 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiListUI.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiListUI__ +#define __javax_swing_plaf_multi_MultiListUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + class JList; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiListUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiListUI : public ::javax::swing::plaf::ListUI +{ + +public: + MultiListUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual jint locationToIndex(::javax::swing::JList *, ::java::awt::Point *); + virtual ::java::awt::Point * indexToLocation(::javax::swing::JList *, jint); + virtual ::java::awt::Rectangle * getCellBounds(::javax::swing::JList *, jint, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ListUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiListUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiLookAndFeel.h b/libjava/javax/swing/plaf/multi/MultiLookAndFeel.h new file mode 100644 index 00000000000..83925d036ed --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiLookAndFeel.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiLookAndFeel__ +#define __javax_swing_plaf_multi_MultiLookAndFeel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + class UIDefaults; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiLookAndFeel; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiLookAndFeel : public ::javax::swing::LookAndFeel +{ + +public: + MultiLookAndFeel(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getID(); + virtual ::java::lang::String * getDescription(); + virtual jboolean isNativeLookAndFeel(); + virtual jboolean isSupportedLookAndFeel(); + virtual ::javax::swing::UIDefaults * getDefaults(); + static ::javax::swing::plaf::ComponentUI * createUIs(::javax::swing::plaf::ComponentUI *, ::java::util::Vector *, ::javax::swing::JComponent *); +public: // actually protected + static JArray< ::javax::swing::plaf::ComponentUI * > * uisToArray(::java::util::Vector *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiLookAndFeel__ diff --git a/libjava/javax/swing/plaf/multi/MultiMenuBarUI.h b/libjava/javax/swing/plaf/multi/MultiMenuBarUI.h new file mode 100644 index 00000000000..9056557b4c7 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiMenuBarUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiMenuBarUI__ +#define __javax_swing_plaf_multi_MultiMenuBarUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiMenuBarUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiMenuBarUI : public ::javax::swing::plaf::MenuBarUI +{ + +public: + MultiMenuBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::MenuBarUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiMenuBarUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiMenuItemUI.h b/libjava/javax/swing/plaf/multi/MultiMenuItemUI.h new file mode 100644 index 00000000000..7bbe2f23173 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiMenuItemUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiMenuItemUI__ +#define __javax_swing_plaf_multi_MultiMenuItemUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiMenuItemUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiMenuItemUI : public ::javax::swing::plaf::MenuItemUI +{ + +public: + MultiMenuItemUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::MenuItemUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiMenuItemUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiOptionPaneUI.h b/libjava/javax/swing/plaf/multi/MultiOptionPaneUI.h new file mode 100644 index 00000000000..ce895299c71 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiOptionPaneUI.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiOptionPaneUI__ +#define __javax_swing_plaf_multi_MultiOptionPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + class JOptionPane; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiOptionPaneUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiOptionPaneUI : public ::javax::swing::plaf::OptionPaneUI +{ + +public: + MultiOptionPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual void selectInitialValue(::javax::swing::JOptionPane *); + virtual jboolean containsCustomComponents(::javax::swing::JOptionPane *); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::OptionPaneUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiOptionPaneUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiPanelUI.h b/libjava/javax/swing/plaf/multi/MultiPanelUI.h new file mode 100644 index 00000000000..83ac57c09d0 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiPanelUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiPanelUI__ +#define __javax_swing_plaf_multi_MultiPanelUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiPanelUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiPanelUI : public ::javax::swing::plaf::PanelUI +{ + +public: + MultiPanelUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::PanelUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiPanelUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiPopupMenuUI.h b/libjava/javax/swing/plaf/multi/MultiPopupMenuUI.h new file mode 100644 index 00000000000..717775652cd --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiPopupMenuUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiPopupMenuUI__ +#define __javax_swing_plaf_multi_MultiPopupMenuUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiPopupMenuUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiPopupMenuUI : public ::javax::swing::plaf::PopupMenuUI +{ + +public: + MultiPopupMenuUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::PopupMenuUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiPopupMenuUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiProgressBarUI.h b/libjava/javax/swing/plaf/multi/MultiProgressBarUI.h new file mode 100644 index 00000000000..797f3cab584 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiProgressBarUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiProgressBarUI__ +#define __javax_swing_plaf_multi_MultiProgressBarUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiProgressBarUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiProgressBarUI : public ::javax::swing::plaf::ProgressBarUI +{ + +public: + MultiProgressBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ProgressBarUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiProgressBarUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiRootPaneUI.h b/libjava/javax/swing/plaf/multi/MultiRootPaneUI.h new file mode 100644 index 00000000000..b45c22996f9 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiRootPaneUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiRootPaneUI__ +#define __javax_swing_plaf_multi_MultiRootPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiRootPaneUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiRootPaneUI : public ::javax::swing::plaf::RootPaneUI +{ + +public: + MultiRootPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::RootPaneUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiRootPaneUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiScrollBarUI.h b/libjava/javax/swing/plaf/multi/MultiScrollBarUI.h new file mode 100644 index 00000000000..0fd88116ad8 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiScrollBarUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiScrollBarUI__ +#define __javax_swing_plaf_multi_MultiScrollBarUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiScrollBarUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiScrollBarUI : public ::javax::swing::plaf::ScrollBarUI +{ + +public: + MultiScrollBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ScrollBarUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiScrollBarUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiScrollPaneUI.h b/libjava/javax/swing/plaf/multi/MultiScrollPaneUI.h new file mode 100644 index 00000000000..a05716a60a0 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiScrollPaneUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiScrollPaneUI__ +#define __javax_swing_plaf_multi_MultiScrollPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiScrollPaneUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiScrollPaneUI : public ::javax::swing::plaf::ScrollPaneUI +{ + +public: + MultiScrollPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ScrollPaneUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiScrollPaneUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiSeparatorUI.h b/libjava/javax/swing/plaf/multi/MultiSeparatorUI.h new file mode 100644 index 00000000000..b62235a18cd --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiSeparatorUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiSeparatorUI__ +#define __javax_swing_plaf_multi_MultiSeparatorUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiSeparatorUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiSeparatorUI : public ::javax::swing::plaf::SeparatorUI +{ + +public: + MultiSeparatorUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::SeparatorUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiSeparatorUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiSliderUI.h b/libjava/javax/swing/plaf/multi/MultiSliderUI.h new file mode 100644 index 00000000000..b66d32ab54e --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiSliderUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiSliderUI__ +#define __javax_swing_plaf_multi_MultiSliderUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiSliderUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiSliderUI : public ::javax::swing::plaf::SliderUI +{ + +public: + MultiSliderUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::SliderUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiSliderUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiSpinnerUI.h b/libjava/javax/swing/plaf/multi/MultiSpinnerUI.h new file mode 100644 index 00000000000..32a9d868252 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiSpinnerUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiSpinnerUI__ +#define __javax_swing_plaf_multi_MultiSpinnerUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiSpinnerUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiSpinnerUI : public ::javax::swing::plaf::SpinnerUI +{ + +public: + MultiSpinnerUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::SpinnerUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiSpinnerUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiSplitPaneUI.h b/libjava/javax/swing/plaf/multi/MultiSplitPaneUI.h new file mode 100644 index 00000000000..5ed5638fe88 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiSplitPaneUI.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiSplitPaneUI__ +#define __javax_swing_plaf_multi_MultiSplitPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + class JSplitPane; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiSplitPaneUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiSplitPaneUI : public ::javax::swing::plaf::SplitPaneUI +{ + +public: + MultiSplitPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual void resetToPreferredSizes(::javax::swing::JSplitPane *); + virtual void setDividerLocation(::javax::swing::JSplitPane *, jint); + virtual jint getDividerLocation(::javax::swing::JSplitPane *); + virtual jint getMinimumDividerLocation(::javax::swing::JSplitPane *); + virtual jint getMaximumDividerLocation(::javax::swing::JSplitPane *); + virtual void finishedPaintingChildren(::javax::swing::JSplitPane *, ::java::awt::Graphics *); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::SplitPaneUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiSplitPaneUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiTabbedPaneUI.h b/libjava/javax/swing/plaf/multi/MultiTabbedPaneUI.h new file mode 100644 index 00000000000..7740c3fd183 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiTabbedPaneUI.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiTabbedPaneUI__ +#define __javax_swing_plaf_multi_MultiTabbedPaneUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + class JTabbedPane; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiTabbedPaneUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiTabbedPaneUI : public ::javax::swing::plaf::TabbedPaneUI +{ + +public: + MultiTabbedPaneUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual jint tabForCoordinate(::javax::swing::JTabbedPane *, jint, jint); + virtual ::java::awt::Rectangle * getTabBounds(::javax::swing::JTabbedPane *, jint); + virtual jint getTabRunCount(::javax::swing::JTabbedPane *); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TabbedPaneUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiTabbedPaneUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiTableHeaderUI.h b/libjava/javax/swing/plaf/multi/MultiTableHeaderUI.h new file mode 100644 index 00000000000..87cf03ef5a5 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiTableHeaderUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiTableHeaderUI__ +#define __javax_swing_plaf_multi_MultiTableHeaderUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiTableHeaderUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiTableHeaderUI : public ::javax::swing::plaf::TableHeaderUI +{ + +public: + MultiTableHeaderUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TableHeaderUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiTableHeaderUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiTableUI.h b/libjava/javax/swing/plaf/multi/MultiTableUI.h new file mode 100644 index 00000000000..cb84f0f2c53 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiTableUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiTableUI__ +#define __javax_swing_plaf_multi_MultiTableUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiTableUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiTableUI : public ::javax::swing::plaf::TableUI +{ + +public: + MultiTableUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TableUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiTableUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiTextUI.h b/libjava/javax/swing/plaf/multi/MultiTextUI.h new file mode 100644 index 00000000000..6d0440e7a88 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiTextUI.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiTextUI__ +#define __javax_swing_plaf_multi_MultiTextUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiTextUI; + } + } + namespace text + { + class EditorKit; + class JTextComponent; + class Position$Bias; + class View; + } + } + } +} + +class javax::swing::plaf::multi::MultiTextUI : public ::javax::swing::plaf::TextUI +{ + +public: + MultiTextUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint); + virtual ::java::awt::Rectangle * modelToView(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *); + virtual jint viewToModel(::javax::swing::text::JTextComponent *, ::java::awt::Point *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jint getNextVisualPositionFrom(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint); + virtual void damageRange(::javax::swing::text::JTextComponent *, jint, jint, ::javax::swing::text::Position$Bias *, ::javax::swing::text::Position$Bias *); + virtual ::javax::swing::text::EditorKit * getEditorKit(::javax::swing::text::JTextComponent *); + virtual ::javax::swing::text::View * getRootView(::javax::swing::text::JTextComponent *); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TextUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiTextUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiToolBarUI.h b/libjava/javax/swing/plaf/multi/MultiToolBarUI.h new file mode 100644 index 00000000000..91c89162895 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiToolBarUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiToolBarUI__ +#define __javax_swing_plaf_multi_MultiToolBarUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiToolBarUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiToolBarUI : public ::javax::swing::plaf::ToolBarUI +{ + +public: + MultiToolBarUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ToolBarUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiToolBarUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiToolTipUI.h b/libjava/javax/swing/plaf/multi/MultiToolTipUI.h new file mode 100644 index 00000000000..07ed28e7372 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiToolTipUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiToolTipUI__ +#define __javax_swing_plaf_multi_MultiToolTipUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiToolTipUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiToolTipUI : public ::javax::swing::plaf::ToolTipUI +{ + +public: + MultiToolTipUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ToolTipUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiToolTipUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiTreeUI.h b/libjava/javax/swing/plaf/multi/MultiTreeUI.h new file mode 100644 index 00000000000..0477cc6267e --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiTreeUI.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiTreeUI__ +#define __javax_swing_plaf_multi_MultiTreeUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + class JTree; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiTreeUI; + } + } + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::plaf::multi::MultiTreeUI : public ::javax::swing::plaf::TreeUI +{ + +public: + MultiTreeUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); + virtual ::java::awt::Rectangle * getPathBounds(::javax::swing::JTree *, ::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getPathForRow(::javax::swing::JTree *, jint); + virtual jint getRowForPath(::javax::swing::JTree *, ::javax::swing::tree::TreePath *); + virtual jint getRowCount(::javax::swing::JTree *); + virtual ::javax::swing::tree::TreePath * getClosestPathForLocation(::javax::swing::JTree *, jint, jint); + virtual jboolean isEditing(::javax::swing::JTree *); + virtual jboolean stopEditing(::javax::swing::JTree *); + virtual void cancelEditing(::javax::swing::JTree *); + virtual void startEditingAtPath(::javax::swing::JTree *, ::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getEditingPath(::javax::swing::JTree *); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::TreeUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiTreeUI__ diff --git a/libjava/javax/swing/plaf/multi/MultiViewportUI.h b/libjava/javax/swing/plaf/multi/MultiViewportUI.h new file mode 100644 index 00000000000..6ddbb0b9bd1 --- /dev/null +++ b/libjava/javax/swing/plaf/multi/MultiViewportUI.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_multi_MultiViewportUI__ +#define __javax_swing_plaf_multi_MultiViewportUI__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + } + namespace swing + { + class JComponent; + namespace plaf + { + class ComponentUI; + namespace multi + { + class MultiViewportUI; + } + } + } + } +} + +class javax::swing::plaf::multi::MultiViewportUI : public ::javax::swing::plaf::ViewportUI +{ + +public: + MultiViewportUI(); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void installUI(::javax::swing::JComponent *); + virtual void uninstallUI(::javax::swing::JComponent *); + virtual JArray< ::javax::swing::plaf::ComponentUI * > * getUIs(); + virtual jboolean contains(::javax::swing::JComponent *, jint, jint); + virtual void update(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual void paint(::java::awt::Graphics *, ::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::JComponent *); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::JComponent *); + virtual jint getAccessibleChildrenCount(::javax::swing::JComponent *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(::javax::swing::JComponent *, jint); +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ViewportUI)))) uis; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_multi_MultiViewportUI__ diff --git a/libjava/javax/swing/plaf/synth/ColorType.h b/libjava/javax/swing/plaf/synth/ColorType.h new file mode 100644 index 00000000000..99a238cf302 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/ColorType.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_ColorType__ +#define __javax_swing_plaf_synth_ColorType__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace synth + { + class ColorType; + } + } + } + } +} + +class javax::swing::plaf::synth::ColorType : public ::java::lang::Object +{ + +public: // actually protected + ColorType(::java::lang::String *); +public: + virtual jint getID(); + virtual ::java::lang::String * toString(); + static ::javax::swing::plaf::synth::ColorType * FOREGROUND; + static ::javax::swing::plaf::synth::ColorType * BACKGROUND; + static ::javax::swing::plaf::synth::ColorType * TEXT_FOREGROUND; + static ::javax::swing::plaf::synth::ColorType * TEXT_BACKGROUND; + static ::javax::swing::plaf::synth::ColorType * FOCUS; + static jint MAX_COUNT; +private: + static jint count; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::java::lang::String * description; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_ColorType__ diff --git a/libjava/javax/swing/plaf/synth/Region.h b/libjava/javax/swing/plaf/synth/Region.h new file mode 100644 index 00000000000..1df2b4f9fc6 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/Region.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_Region__ +#define __javax_swing_plaf_synth_Region__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace synth + { + class Region; + } + } + } + } +} + +class javax::swing::plaf::synth::Region : public ::java::lang::Object +{ + +public: // actually protected + Region(::java::lang::String *, ::java::lang::String *, jboolean); +public: + virtual jboolean isSubregion(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * toString(); + static ::javax::swing::plaf::synth::Region * ARROW_BUTTON; + static ::javax::swing::plaf::synth::Region * BUTTON; + static ::javax::swing::plaf::synth::Region * CHECK_BOX; + static ::javax::swing::plaf::synth::Region * CHECK_BOX_MENU_ITEM; + static ::javax::swing::plaf::synth::Region * COLOR_CHOOSER; + static ::javax::swing::plaf::synth::Region * COMBO_BOX; + static ::javax::swing::plaf::synth::Region * DESKTOP_PANE; + static ::javax::swing::plaf::synth::Region * DESKTOP_ICON; + static ::javax::swing::plaf::synth::Region * EDITOR_PANE; + static ::javax::swing::plaf::synth::Region * FILE_CHOOSER; + static ::javax::swing::plaf::synth::Region * FORMATTED_TEXT_FIELD; + static ::javax::swing::plaf::synth::Region * INTERNAL_FRAME; + static ::javax::swing::plaf::synth::Region * INTERNAL_FRAME_TITLE_PANE; + static ::javax::swing::plaf::synth::Region * LABEL; + static ::javax::swing::plaf::synth::Region * LIST; + static ::javax::swing::plaf::synth::Region * MENU; + static ::javax::swing::plaf::synth::Region * MENU_BAR; + static ::javax::swing::plaf::synth::Region * MENU_ITEM; + static ::javax::swing::plaf::synth::Region * MENU_ITEM_ACCELERATOR; + static ::javax::swing::plaf::synth::Region * OPTION_PANE; + static ::javax::swing::plaf::synth::Region * PANEL; + static ::javax::swing::plaf::synth::Region * PASSWORD_FIELD; + static ::javax::swing::plaf::synth::Region * POPUP_MENU; + static ::javax::swing::plaf::synth::Region * POPUP_MENU_SEPARATOR; + static ::javax::swing::plaf::synth::Region * PROGRESS_BAR; + static ::javax::swing::plaf::synth::Region * RADIO_BUTTON; + static ::javax::swing::plaf::synth::Region * RADIO_BUTTON_MENU_ITEM; + static ::javax::swing::plaf::synth::Region * ROOT_PANE; + static ::javax::swing::plaf::synth::Region * SCROLL_BAR; + static ::javax::swing::plaf::synth::Region * SCROLL_BAR_TRACK; + static ::javax::swing::plaf::synth::Region * SCROLL_BAR_THUMB; + static ::javax::swing::plaf::synth::Region * SCROLL_PANE; + static ::javax::swing::plaf::synth::Region * SEPARATOR; + static ::javax::swing::plaf::synth::Region * SLIDER; + static ::javax::swing::plaf::synth::Region * SLIDER_TRACK; + static ::javax::swing::plaf::synth::Region * SLIDER_THUMB; + static ::javax::swing::plaf::synth::Region * SPINNER; + static ::javax::swing::plaf::synth::Region * SPLIT_PANE; + static ::javax::swing::plaf::synth::Region * SPLIT_PANE_DIVIDER; + static ::javax::swing::plaf::synth::Region * TABBED_PANE; + static ::javax::swing::plaf::synth::Region * TABBED_PANE_TAB; + static ::javax::swing::plaf::synth::Region * TABBED_PANE_TAB_AREA; + static ::javax::swing::plaf::synth::Region * TABBED_PANE_CONTENT; + static ::javax::swing::plaf::synth::Region * TABLE; + static ::javax::swing::plaf::synth::Region * TABLE_HEADER; + static ::javax::swing::plaf::synth::Region * TEXT_AREA; + static ::javax::swing::plaf::synth::Region * TEXT_FIELD; + static ::javax::swing::plaf::synth::Region * TEXT_PANE; + static ::javax::swing::plaf::synth::Region * TOGGLE_BUTTON; + static ::javax::swing::plaf::synth::Region * TOOL_BAR; + static ::javax::swing::plaf::synth::Region * TOOL_BAR_CONTENT; + static ::javax::swing::plaf::synth::Region * TOOL_BAR_DRAG_WINDOW; + static ::javax::swing::plaf::synth::Region * TOOL_TIP; + static ::javax::swing::plaf::synth::Region * TOOL_BAR_SEPARATOR; + static ::javax::swing::plaf::synth::Region * TREE; + static ::javax::swing::plaf::synth::Region * TREE_CELL; + static ::javax::swing::plaf::synth::Region * VIEWPORT; +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ui; +private: + ::java::lang::String * name; + jboolean subregion; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_Region__ diff --git a/libjava/javax/swing/plaf/synth/SynthConstants.h b/libjava/javax/swing/plaf/synth/SynthConstants.h new file mode 100644 index 00000000000..a6ae6deb832 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/SynthConstants.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_SynthConstants__ +#define __javax_swing_plaf_synth_SynthConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace plaf + { + namespace synth + { + class SynthConstants; + } + } + } + } +} + +class javax::swing::plaf::synth::SynthConstants : public ::java::lang::Object +{ + +public: + static const jint ENABLED = 1; + static const jint DISABLED = 8; + static const jint MOUSE_OVER = 2; + static const jint PRESSED = 4; + static const jint FOCUSED = 256; + static const jint SELECTED = 512; + static const jint DEFAULT = 1024; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_plaf_synth_SynthConstants__ diff --git a/libjava/javax/swing/plaf/synth/SynthContext.h b/libjava/javax/swing/plaf/synth/SynthContext.h new file mode 100644 index 00000000000..7e2eadb6dc7 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/SynthContext.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_SynthContext__ +#define __javax_swing_plaf_synth_SynthContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + namespace synth + { + class Region; + class SynthContext; + class SynthStyle; + } + } + } + } +} + +class javax::swing::plaf::synth::SynthContext : public ::java::lang::Object +{ + +public: + SynthContext(::javax::swing::JComponent *, ::javax::swing::plaf::synth::Region *, ::javax::swing::plaf::synth::SynthStyle *, jint); + virtual ::javax::swing::JComponent * getComponent(); + virtual ::javax::swing::plaf::synth::Region * getRegion(); + virtual ::javax::swing::plaf::synth::SynthStyle * getStyle(); + virtual jint getComponentState(); +private: + ::javax::swing::JComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) component; + ::javax::swing::plaf::synth::Region * region; + ::javax::swing::plaf::synth::SynthStyle * style; + jint state; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_SynthContext__ diff --git a/libjava/javax/swing/plaf/synth/SynthGraphicsUtils.h b/libjava/javax/swing/plaf/synth/SynthGraphicsUtils.h new file mode 100644 index 00000000000..36c09c1a0d5 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/SynthGraphicsUtils.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_SynthGraphicsUtils__ +#define __javax_swing_plaf_synth_SynthGraphicsUtils__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Font; + class FontMetrics; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + namespace synth + { + class SynthContext; + class SynthGraphicsUtils; + } + } + } + } +} + +class javax::swing::plaf::synth::SynthGraphicsUtils : public ::java::lang::Object +{ + +public: + SynthGraphicsUtils(); + virtual void drawLine(::javax::swing::plaf::synth::SynthContext *, ::java::lang::Object *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual ::java::lang::String * layoutText(::javax::swing::plaf::synth::SynthContext *, ::java::awt::FontMetrics *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, ::java::awt::Rectangle *, ::java::awt::Rectangle *, ::java::awt::Rectangle *, jint); + virtual jint computeStringWidth(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Font *, ::java::awt::FontMetrics *, ::java::lang::String *); + virtual ::java::awt::Dimension * getMinimumSize(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Font *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, jint, jint); + virtual ::java::awt::Dimension * getPreferredSize(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Font *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, jint, jint); + virtual ::java::awt::Dimension * getMaximumSize(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Font *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, jint, jint); + virtual jint getMaximumCharHeight(::javax::swing::plaf::synth::SynthContext *); + virtual void paintText(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, ::java::lang::String *, ::java::awt::Rectangle *, jint); + virtual void paintText(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, ::java::lang::String *, jint, jint, jint); + virtual void paintText(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, ::java::lang::String *, ::javax::swing::Icon *, jint, jint, jint, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_SynthGraphicsUtils__ diff --git a/libjava/javax/swing/plaf/synth/SynthLookAndFeel.h b/libjava/javax/swing/plaf/synth/SynthLookAndFeel.h new file mode 100644 index 00000000000..d0b40a878b7 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/SynthLookAndFeel.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_SynthLookAndFeel__ +#define __javax_swing_plaf_synth_SynthLookAndFeel__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JComponent; + class UIDefaults; + namespace plaf + { + class ComponentUI; + namespace synth + { + class Region; + class SynthLookAndFeel; + class SynthStyle; + class SynthStyleFactory; + } + } + } + } +} + +class javax::swing::plaf::synth::SynthLookAndFeel : public ::javax::swing::plaf::basic::BasicLookAndFeel +{ + +public: + SynthLookAndFeel(); + static void setStyleFactory(::javax::swing::plaf::synth::SynthStyleFactory *); + static ::javax::swing::plaf::synth::SynthStyleFactory * getStyleFactory(); + static ::javax::swing::plaf::synth::SynthStyle * getStyle(::javax::swing::JComponent *, ::javax::swing::plaf::synth::Region *); + static void updateStyles(::java::awt::Component *); + static ::javax::swing::plaf::synth::Region * getRegion(::javax::swing::JComponent *); + static ::javax::swing::plaf::ComponentUI * createUI(::javax::swing::JComponent *); + virtual void initialize(); + virtual void uninitialize(); + virtual ::javax::swing::UIDefaults * getDefaults(); + virtual jboolean shouldUpdateStyleOnAncestorChanged(); + virtual void load(::java::io::InputStream *, ::java::lang::Class *); + virtual ::java::lang::String * getDescription(); + virtual ::java::lang::String * getID(); + virtual ::java::lang::String * getName(); + virtual jboolean isNativeLookAndFeel(); + virtual jboolean isSupportedLookAndFeel(); +private: + static ::javax::swing::plaf::synth::SynthStyleFactory * styleFactory; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_SynthLookAndFeel__ diff --git a/libjava/javax/swing/plaf/synth/SynthPainter.h b/libjava/javax/swing/plaf/synth/SynthPainter.h new file mode 100644 index 00000000000..23172a0ad59 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/SynthPainter.h @@ -0,0 +1,156 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_SynthPainter__ +#define __javax_swing_plaf_synth_SynthPainter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace plaf + { + namespace synth + { + class SynthContext; + class SynthPainter; + } + } + } + } +} + +class javax::swing::plaf::synth::SynthPainter : public ::java::lang::Object +{ + +public: + SynthPainter(); + virtual void paintArrowButtonForeground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintProgressBarForeground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintSeparatorForeground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintSplitPaneDividerForeground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintSplitPaneDragDivider(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintTreeCellFocus(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintArrowButtonBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintArrowButtonBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintButtonBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintButtonBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintCheckBoxBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintCheckBoxBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintCheckBoxMenuItemBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintCheckBoxMenuItemBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintColorChooserBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintColorChooserBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintComboBoxBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintComboBoxBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintDesktopIconBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintDesktopIconBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintDesktopPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintDesktopPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintEditorPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintEditorPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintFileChooserBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintFileChooserBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintFormattedTextFieldBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintFormattedTextFieldBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintInternalFrameBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintInternalFrameBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintInternalFrameTitlePaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintInternalFrameTitlePaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintLabelBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintLabelBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintListBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintListBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintMenuBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintMenuBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintMenuBarBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintMenuBarBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintMenuItemBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintMenuItemBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintOptionPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintOptionPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintPanelBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintPanelBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintPasswordFieldBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintPasswordFieldBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintPopupMenuBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintPopupMenuBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintProgressBarBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintProgressBarBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintRadioButtonBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintRadioButtonBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintRadioButtonMenuItemBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintRadioButtonMenuItemBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintRootPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintRootPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintScrollBarBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintScrollBarBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintScrollBarThumbBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintScrollBarThumbBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintScrollBarTrackBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintScrollBarTrackBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintScrollPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintScrollPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSeparatorBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSeparatorBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSliderBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSliderBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSliderThumbBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintSliderThumbBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintSliderTrackBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSliderTrackBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSpinnerBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSpinnerBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSplitPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSplitPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintSplitPaneDividerBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTabbedPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTabbedPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTabbedPaneContentBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTabbedPaneContentBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTabbedPaneTabAreaBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTabbedPaneTabAreaBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTabbedPaneTabBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintTabbedPaneTabBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint, jint); + virtual void paintTableBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTableBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTableHeaderBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTableHeaderBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTextAreaBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTextAreaBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTextFieldBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTextFieldBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTextPaneBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTextPaneBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToggleButtonBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToggleButtonBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolBarBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolBarBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolBarContentBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolBarContentBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolBarDragWindowBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolBarDragWindowBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolTipBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintToolTipBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTreeBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTreeBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTreeCellBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintTreeCellBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintViewportBackground(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + virtual void paintViewportBorder(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Graphics *, jint, jint, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_SynthPainter__ diff --git a/libjava/javax/swing/plaf/synth/SynthStyle.h b/libjava/javax/swing/plaf/synth/SynthStyle.h new file mode 100644 index 00000000000..b8779f2b394 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/SynthStyle.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_SynthStyle__ +#define __javax_swing_plaf_synth_SynthStyle__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + class Insets; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace plaf + { + namespace synth + { + class ColorType; + class SynthContext; + class SynthGraphicsUtils; + class SynthPainter; + class SynthStyle; + } + } + } + } +} + +class javax::swing::plaf::synth::SynthStyle : public ::java::lang::Object +{ + +public: + SynthStyle(); + virtual ::javax::swing::plaf::synth::SynthGraphicsUtils * getGraphicsUtils(::javax::swing::plaf::synth::SynthContext *); + virtual ::java::awt::Color * getColor(::javax::swing::plaf::synth::SynthContext *, ::javax::swing::plaf::synth::ColorType *); +public: // actually protected + virtual ::java::awt::Color * getColorForState(::javax::swing::plaf::synth::SynthContext *, ::javax::swing::plaf::synth::ColorType *) = 0; +public: + virtual ::java::awt::Font * getFont(::javax::swing::plaf::synth::SynthContext *); +public: // actually protected + virtual ::java::awt::Font * getFontForState(::javax::swing::plaf::synth::SynthContext *) = 0; +public: + virtual ::java::awt::Insets * getInsets(::javax::swing::plaf::synth::SynthContext *, ::java::awt::Insets *); + virtual ::javax::swing::plaf::synth::SynthPainter * getPainter(::javax::swing::plaf::synth::SynthContext *); + virtual jboolean isOpaque(::javax::swing::plaf::synth::SynthContext *); + virtual ::java::lang::Object * get(::javax::swing::plaf::synth::SynthContext *, ::java::lang::Object *); + virtual void installDefaults(::javax::swing::plaf::synth::SynthContext *); + virtual void uninstallDefaults(::javax::swing::plaf::synth::SynthContext *); + virtual jint getInt(::javax::swing::plaf::synth::SynthContext *, ::java::lang::Object *, jint); + virtual jboolean getBoolean(::javax::swing::plaf::synth::SynthContext *, ::java::lang::Object *, jboolean); + virtual ::javax::swing::Icon * getIcon(::javax::swing::plaf::synth::SynthContext *, ::java::lang::Object *); + virtual ::java::lang::String * getString(::javax::swing::plaf::synth::SynthContext *, ::java::lang::Object *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_SynthStyle__ diff --git a/libjava/javax/swing/plaf/synth/SynthStyleFactory.h b/libjava/javax/swing/plaf/synth/SynthStyleFactory.h new file mode 100644 index 00000000000..2f6905676a7 --- /dev/null +++ b/libjava/javax/swing/plaf/synth/SynthStyleFactory.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_plaf_synth_SynthStyleFactory__ +#define __javax_swing_plaf_synth_SynthStyleFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JComponent; + namespace plaf + { + namespace synth + { + class Region; + class SynthStyle; + class SynthStyleFactory; + } + } + } + } +} + +class javax::swing::plaf::synth::SynthStyleFactory : public ::java::lang::Object +{ + +public: + SynthStyleFactory(); + virtual ::javax::swing::plaf::synth::SynthStyle * getStyle(::javax::swing::JComponent *, ::javax::swing::plaf::synth::Region *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_plaf_synth_SynthStyleFactory__ diff --git a/libjava/javax/swing/table/AbstractTableModel.h b/libjava/javax/swing/table/AbstractTableModel.h new file mode 100644 index 00000000000..307aa95f9d6 --- /dev/null +++ b/libjava/javax/swing/table/AbstractTableModel.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_AbstractTableModel__ +#define __javax_swing_table_AbstractTableModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class EventListenerList; + class TableModelEvent; + class TableModelListener; + } + namespace table + { + class AbstractTableModel; + } + } + } +} + +class javax::swing::table::AbstractTableModel : public ::java::lang::Object +{ + +public: + AbstractTableModel(); + virtual ::java::lang::String * getColumnName(jint); + virtual jint findColumn(::java::lang::String *); + virtual ::java::lang::Class * getColumnClass(jint); + virtual jboolean isCellEditable(jint, jint); + virtual void setValueAt(::java::lang::Object *, jint, jint); + virtual void addTableModelListener(::javax::swing::event::TableModelListener *); + virtual void removeTableModelListener(::javax::swing::event::TableModelListener *); + virtual JArray< ::javax::swing::event::TableModelListener * > * getTableModelListeners(); + virtual void fireTableDataChanged(); + virtual void fireTableStructureChanged(); + virtual void fireTableRowsInserted(jint, jint); + virtual void fireTableRowsUpdated(jint, jint); + virtual void fireTableRowsDeleted(jint, jint); + virtual void fireTableCellUpdated(jint, jint); + virtual void fireTableChanged(::javax::swing::event::TableModelEvent *); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual jint getRowCount() = 0; + virtual jint getColumnCount() = 0; + virtual ::java::lang::Object * getValueAt(jint, jint) = 0; +public: // actually package-private + static const jlong serialVersionUID = -5798593159423650347LL; +public: // actually protected + ::javax::swing::event::EventListenerList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listenerList; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_AbstractTableModel__ diff --git a/libjava/javax/swing/table/DefaultTableCellRenderer$UIResource.h b/libjava/javax/swing/table/DefaultTableCellRenderer$UIResource.h new file mode 100644 index 00000000000..ba101048b2a --- /dev/null +++ b/libjava/javax/swing/table/DefaultTableCellRenderer$UIResource.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_DefaultTableCellRenderer$UIResource__ +#define __javax_swing_table_DefaultTableCellRenderer$UIResource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace table + { + class DefaultTableCellRenderer$UIResource; + } + } + } +} + +class javax::swing::table::DefaultTableCellRenderer$UIResource : public ::javax::swing::table::DefaultTableCellRenderer +{ + +public: + DefaultTableCellRenderer$UIResource(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_DefaultTableCellRenderer$UIResource__ diff --git a/libjava/javax/swing/table/DefaultTableCellRenderer.h b/libjava/javax/swing/table/DefaultTableCellRenderer.h new file mode 100644 index 00000000000..7865b5a4a99 --- /dev/null +++ b/libjava/javax/swing/table/DefaultTableCellRenderer.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_DefaultTableCellRenderer__ +#define __javax_swing_table_DefaultTableCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class JTable; + namespace border + { + class Border; + } + namespace table + { + class DefaultTableCellRenderer; + } + } + } +} + +class javax::swing::table::DefaultTableCellRenderer : public ::javax::swing::JLabel +{ + +public: + DefaultTableCellRenderer(); + virtual void setForeground(::java::awt::Color *); + virtual void setBackground(::java::awt::Color *); + virtual void updateUI(); + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint); + virtual jboolean isOpaque(); + virtual void validate(); + virtual void revalidate(); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void repaint(::java::awt::Rectangle *); +public: // actually protected + virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); +public: + virtual void firePropertyChange(::java::lang::String *, jboolean, jboolean); +public: // actually protected + virtual void setValue(::java::lang::Object *); +public: // actually package-private + static const jlong serialVersionUID = 7878911414715528324LL; +public: // actually protected + static ::javax::swing::border::Border * noFocusBorder; +public: // actually package-private + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::JLabel)))) foreground; + ::java::awt::Color * background; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_DefaultTableCellRenderer__ diff --git a/libjava/javax/swing/table/DefaultTableColumnModel.h b/libjava/javax/swing/table/DefaultTableColumnModel.h new file mode 100644 index 00000000000..bdbb4e7758c --- /dev/null +++ b/libjava/javax/swing/table/DefaultTableColumnModel.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_DefaultTableColumnModel__ +#define __javax_swing_table_DefaultTableColumnModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + class ListSelectionModel; + namespace event + { + class ChangeEvent; + class EventListenerList; + class ListSelectionEvent; + class TableColumnModelEvent; + class TableColumnModelListener; + } + namespace table + { + class DefaultTableColumnModel; + class TableColumn; + } + } + } +} + +class javax::swing::table::DefaultTableColumnModel : public ::java::lang::Object +{ + +public: + DefaultTableColumnModel(); + virtual void addColumn(::javax::swing::table::TableColumn *); + virtual void removeColumn(::javax::swing::table::TableColumn *); + virtual void moveColumn(jint, jint); + virtual void setColumnMargin(jint); + virtual jint getColumnCount(); + virtual ::java::util::Enumeration * getColumns(); + virtual jint getColumnIndex(::java::lang::Object *); + virtual ::javax::swing::table::TableColumn * getColumn(jint); + virtual jint getColumnMargin(); + virtual jint getColumnIndexAtX(jint); + virtual jint getTotalColumnWidth(); + virtual void setSelectionModel(::javax::swing::ListSelectionModel *); + virtual ::javax::swing::ListSelectionModel * getSelectionModel(); + virtual void setColumnSelectionAllowed(jboolean); + virtual jboolean getColumnSelectionAllowed(); + virtual JArray< jint > * getSelectedColumns(); + virtual jint getSelectedColumnCount(); + virtual void addColumnModelListener(::javax::swing::event::TableColumnModelListener *); + virtual void removeColumnModelListener(::javax::swing::event::TableColumnModelListener *); + virtual JArray< ::javax::swing::event::TableColumnModelListener * > * getColumnModelListeners(); +public: // actually protected + virtual void fireColumnAdded(::javax::swing::event::TableColumnModelEvent *); + virtual void fireColumnRemoved(::javax::swing::event::TableColumnModelEvent *); + virtual void fireColumnMoved(::javax::swing::event::TableColumnModelEvent *); + virtual void fireColumnSelectionChanged(::javax::swing::event::ListSelectionEvent *); + virtual void fireColumnMarginChanged(); +public: + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual void propertyChange(::java::beans::PropertyChangeEvent *); + virtual void valueChanged(::javax::swing::event::ListSelectionEvent *); +public: // actually protected + virtual ::javax::swing::ListSelectionModel * createSelectionModel(); + virtual void recalcWidthCache(); +private: + void invalidateWidthCache(); + static const jlong serialVersionUID = 6580012493508960512LL; +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) tableColumns; + ::javax::swing::ListSelectionModel * selectionModel; + jint columnMargin; + ::javax::swing::event::EventListenerList * listenerList; + ::javax::swing::event::ChangeEvent * changeEvent; + jboolean columnSelectionAllowed; + jint totalColumnWidth; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_DefaultTableColumnModel__ diff --git a/libjava/javax/swing/table/DefaultTableModel.h b/libjava/javax/swing/table/DefaultTableModel.h new file mode 100644 index 00000000000..a5f3bd4eca8 --- /dev/null +++ b/libjava/javax/swing/table/DefaultTableModel.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_DefaultTableModel__ +#define __javax_swing_table_DefaultTableModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TableModelEvent; + } + namespace table + { + class DefaultTableModel; + } + } + } +} + +class javax::swing::table::DefaultTableModel : public ::javax::swing::table::AbstractTableModel +{ + +public: + DefaultTableModel(); + DefaultTableModel(jint, jint); + DefaultTableModel(::java::util::Vector *, jint); + DefaultTableModel(JArray< ::java::lang::Object * > *, jint); + DefaultTableModel(::java::util::Vector *, ::java::util::Vector *); + DefaultTableModel(JArray< JArray< ::java::lang::Object * > * > *, JArray< ::java::lang::Object * > *); + virtual ::java::util::Vector * getDataVector(); + virtual void setDataVector(::java::util::Vector *, ::java::util::Vector *); + virtual void setDataVector(JArray< JArray< ::java::lang::Object * > * > *, JArray< ::java::lang::Object * > *); + virtual void newDataAvailable(::javax::swing::event::TableModelEvent *); + virtual void newRowsAdded(::javax::swing::event::TableModelEvent *); + virtual void rowsRemoved(::javax::swing::event::TableModelEvent *); + virtual void setColumnIdentifiers(::java::util::Vector *); + virtual void setColumnIdentifiers(JArray< ::java::lang::Object * > *); + virtual void setNumRows(jint); + virtual void setRowCount(jint); + virtual void setColumnCount(jint); + virtual void addColumn(::java::lang::Object *); + virtual void addColumn(::java::lang::Object *, ::java::util::Vector *); + virtual void addColumn(::java::lang::Object *, JArray< ::java::lang::Object * > *); + virtual void addRow(::java::util::Vector *); + virtual void addRow(JArray< ::java::lang::Object * > *); + virtual void insertRow(jint, ::java::util::Vector *); + virtual void insertRow(jint, JArray< ::java::lang::Object * > *); + virtual void moveRow(jint, jint, jint); + virtual void removeRow(jint); + virtual jint getRowCount(); + virtual jint getColumnCount(); + virtual ::java::lang::String * getColumnName(jint); + virtual jboolean isCellEditable(jint, jint); + virtual ::java::lang::Object * getValueAt(jint, jint); + virtual void setValueAt(::java::lang::Object *, jint, jint); +public: // actually protected + static ::java::util::Vector * convertToVector(JArray< ::java::lang::Object * > *); + static ::java::util::Vector * convertToVector(JArray< JArray< ::java::lang::Object * > * > *); +private: + void addExtraRows(jint, jint); + void checkSize(); +public: // actually package-private + static const jlong serialVersionUID = 6680042567037222321LL; +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::table::AbstractTableModel)))) dataVector; + ::java::util::Vector * columnIdentifiers; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_DefaultTableModel__ diff --git a/libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry.h b/libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry.h new file mode 100644 index 00000000000..c5febbb2c65 --- /dev/null +++ b/libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry__ +#define __javax_swing_table_JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Cursor; + class Dimension; + class Font; + class FontMetrics; + class Point; + class Rectangle; + namespace event + { + class FocusListener; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleAction; + class AccessibleComponent; + class AccessibleContext; + class AccessibleRole; + class AccessibleSelection; + class AccessibleStateSet; + class AccessibleText; + class AccessibleValue; + } + namespace swing + { + class JTable; + namespace table + { + class JTableHeader; + class JTableHeader$AccessibleJTableHeader; + class JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry; + } + } + } +} + +class javax::swing::table::JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry : public ::javax::accessibility::AccessibleContext +{ + +public: + JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry(::javax::swing::table::JTableHeader$AccessibleJTableHeader *, jint, ::javax::swing::table::JTableHeader *, ::javax::swing::JTable *); +public: // actually package-private + virtual ::java::awt::Component * getColumnHeaderRenderer(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleColumnHeaderRenderer(); +public: + virtual void addFocusListener(::java::awt::event::FocusListener *); + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual jboolean contains(::java::awt::Point *); + virtual ::javax::accessibility::AccessibleAction * getAccessibleAction(); + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::AccessibleComponent * getAccessibleComponent(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::java::lang::String * getAccessibleDescription(); + virtual jint getAccessibleIndexInParent(); + virtual ::java::lang::String * getAccessibleName(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleSelection * getAccessibleSelection(); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleText * getAccessibleText(); + virtual ::javax::accessibility::AccessibleValue * getAccessibleValue(); + 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 isEnabled(); + virtual jboolean isFocusTraversable(); + virtual jboolean isShowing(); + virtual jboolean isVisible(); + virtual void removeFocusListener(::java::awt::event::FocusListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void requestFocus(); + virtual void setAccessibleDescription(::java::lang::String *); + virtual void setAccessibleName(::java::lang::String *); + 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: + jint __attribute__((aligned(__alignof__( ::javax::accessibility::AccessibleContext)))) columnIndex; + ::javax::swing::table::JTableHeader * parent; + ::javax::swing::JTable * table; +public: // actually package-private + ::javax::swing::table::JTableHeader$AccessibleJTableHeader * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_JTableHeader$AccessibleJTableHeader$AccessibleJTableHeaderEntry__ diff --git a/libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader.h b/libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader.h new file mode 100644 index 00000000000..64fd44e7156 --- /dev/null +++ b/libjava/javax/swing/table/JTableHeader$AccessibleJTableHeader.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_JTableHeader$AccessibleJTableHeader__ +#define __javax_swing_table_JTableHeader$AccessibleJTableHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + } + } + namespace javax + { + namespace accessibility + { + class Accessible; + class AccessibleRole; + } + namespace swing + { + namespace table + { + class JTableHeader; + class JTableHeader$AccessibleJTableHeader; + } + } + } +} + +class javax::swing::table::JTableHeader$AccessibleJTableHeader : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: // actually protected + JTableHeader$AccessibleJTableHeader(::javax::swing::table::JTableHeader *); +public: + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual jint getAccessibleChildrenCount(); + virtual ::javax::accessibility::Accessible * getAccessibleChild(jint); + virtual ::javax::accessibility::Accessible * getAccessibleAt(::java::awt::Point *); +public: // actually package-private + ::javax::swing::table::JTableHeader * __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_JTableHeader$AccessibleJTableHeader__ diff --git a/libjava/javax/swing/table/JTableHeader.h b/libjava/javax/swing/table/JTableHeader.h new file mode 100644 index 00000000000..0c92ad30aa3 --- /dev/null +++ b/libjava/javax/swing/table/JTableHeader.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_JTableHeader__ +#define __javax_swing_table_JTableHeader__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class JTable; + namespace event + { + class ChangeEvent; + class ListSelectionEvent; + class TableColumnModelEvent; + } + namespace plaf + { + class TableHeaderUI; + } + namespace table + { + class JTableHeader; + class TableCellRenderer; + class TableColumn; + class TableColumnModel; + } + } + } +} + +class javax::swing::table::JTableHeader : public ::javax::swing::JComponent +{ + +public: + JTableHeader(); + JTableHeader(::javax::swing::table::TableColumnModel *); +public: // actually protected + virtual ::javax::swing::table::TableColumnModel * createDefaultColumnModel(); +public: + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual ::javax::swing::table::TableColumnModel * getColumnModel(); + virtual ::javax::swing::table::TableColumn * getDraggedColumn(); + virtual jint getDraggedDistance(); + virtual jboolean getReorderingAllowed(); + virtual jboolean getResizingAllowed(); + virtual ::javax::swing::table::TableColumn * getResizingColumn(); + virtual ::javax::swing::JTable * getTable(); + virtual jboolean getUpdateTableInRealTime(); + virtual jboolean isOpaque(); + virtual void setColumnModel(::javax::swing::table::TableColumnModel *); + virtual void setDraggedColumn(::javax::swing::table::TableColumn *); + virtual void setDraggedDistance(jint); + virtual void setOpaque(jboolean); + virtual void setReorderingAllowed(jboolean); + virtual void setResizingAllowed(jboolean); + virtual void setResizingColumn(::javax::swing::table::TableColumn *); + virtual void setTable(::javax::swing::JTable *); + virtual void setUpdateTableInRealTime(jboolean); +public: // actually protected + virtual ::javax::swing::table::TableCellRenderer * createDefaultRenderer(); +public: + virtual ::javax::swing::table::TableCellRenderer * getDefaultRenderer(); + virtual void setDefaultRenderer(::javax::swing::table::TableCellRenderer *); + virtual ::java::awt::Rectangle * getHeaderRect(jint); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::java::lang::String * getUIClassID(); + virtual ::javax::swing::plaf::TableHeaderUI * getUI(); + virtual void setUI(::javax::swing::plaf::TableHeaderUI *); + virtual void updateUI(); + virtual jint columnAtPoint(::java::awt::Point *); + virtual void columnAdded(::javax::swing::event::TableColumnModelEvent *); + virtual void columnMarginChanged(::javax::swing::event::ChangeEvent *); + virtual void columnMoved(::javax::swing::event::TableColumnModelEvent *); + virtual void columnRemoved(::javax::swing::event::TableColumnModelEvent *); + virtual void columnSelectionChanged(::javax::swing::event::ListSelectionEvent *); + virtual void resizeAndRepaint(); +public: // actually protected + virtual void initializeLocalVars(); +private: + static const jlong serialVersionUID = 5144633983372967710LL; +public: // actually protected + ::javax::swing::table::TableColumnModel * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) columnModel; + ::javax::swing::table::TableColumn * draggedColumn; + jint draggedDistance; +public: // actually package-private + jboolean opaque; +public: // actually protected + jboolean reorderingAllowed; + jboolean resizingAllowed; + ::javax::swing::table::TableColumn * resizingColumn; + ::javax::swing::JTable * table; + jboolean updateTableInRealTime; +public: // actually package-private + ::javax::swing::table::TableCellRenderer * cellRenderer; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_JTableHeader__ diff --git a/libjava/javax/swing/table/TableCellEditor.h b/libjava/javax/swing/table/TableCellEditor.h new file mode 100644 index 00000000000..a84088452c5 --- /dev/null +++ b/libjava/javax/swing/table/TableCellEditor.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_TableCellEditor__ +#define __javax_swing_table_TableCellEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTable; + namespace event + { + class CellEditorListener; + } + namespace table + { + class TableCellEditor; + } + } + } +} + +class javax::swing::table::TableCellEditor : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Component * getTableCellEditorComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jint, jint) = 0; + virtual ::java::lang::Object * getCellEditorValue() = 0; + virtual jboolean isCellEditable(::java::util::EventObject *) = 0; + virtual jboolean shouldSelectCell(::java::util::EventObject *) = 0; + virtual jboolean stopCellEditing() = 0; + virtual void cancelCellEditing() = 0; + virtual void addCellEditorListener(::javax::swing::event::CellEditorListener *) = 0; + virtual void removeCellEditorListener(::javax::swing::event::CellEditorListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_table_TableCellEditor__ diff --git a/libjava/javax/swing/table/TableCellRenderer.h b/libjava/javax/swing/table/TableCellRenderer.h new file mode 100644 index 00000000000..46e7eff87a4 --- /dev/null +++ b/libjava/javax/swing/table/TableCellRenderer.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_TableCellRenderer__ +#define __javax_swing_table_TableCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTable; + namespace table + { + class TableCellRenderer; + } + } + } +} + +class javax::swing::table::TableCellRenderer : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Component * getTableCellRendererComponent(::javax::swing::JTable *, ::java::lang::Object *, jboolean, jboolean, jint, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_table_TableCellRenderer__ diff --git a/libjava/javax/swing/table/TableColumn.h b/libjava/javax/swing/table/TableColumn.h new file mode 100644 index 00000000000..11ca5758b6f --- /dev/null +++ b/libjava/javax/swing/table/TableColumn.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_TableColumn__ +#define __javax_swing_table_TableColumn__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class SwingPropertyChangeSupport; + } + namespace table + { + class TableCellEditor; + class TableCellRenderer; + class TableColumn; + } + } + } +} + +class javax::swing::table::TableColumn : public ::java::lang::Object +{ + +public: + TableColumn(); + TableColumn(jint); + TableColumn(jint, jint); + TableColumn(jint, jint, ::javax::swing::table::TableCellRenderer *, ::javax::swing::table::TableCellEditor *); + virtual void setModelIndex(jint); + virtual jint getModelIndex(); + virtual void setIdentifier(::java::lang::Object *); + virtual ::java::lang::Object * getIdentifier(); + virtual void setHeaderValue(::java::lang::Object *); + virtual ::java::lang::Object * getHeaderValue(); + virtual void setHeaderRenderer(::javax::swing::table::TableCellRenderer *); + virtual ::javax::swing::table::TableCellRenderer * getHeaderRenderer(); + virtual void setCellRenderer(::javax::swing::table::TableCellRenderer *); + virtual ::javax::swing::table::TableCellRenderer * getCellRenderer(); + virtual void setCellEditor(::javax::swing::table::TableCellEditor *); + virtual ::javax::swing::table::TableCellEditor * getCellEditor(); + virtual void setWidth(jint); + virtual jint getWidth(); + virtual void setPreferredWidth(jint); + virtual jint getPreferredWidth(); + virtual void setMinWidth(jint); + virtual jint getMinWidth(); + virtual void setMaxWidth(jint); + virtual jint getMaxWidth(); + virtual void setResizable(jboolean); + virtual jboolean getResizable(); + virtual void sizeWidthToFit(); + virtual void disableResizedPosting(); + virtual void enableResizedPosting(); + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(); +public: // actually protected + virtual ::javax::swing::table::TableCellRenderer * createDefaultHeaderRenderer(); +public: // actually package-private + static const jlong serialVersionUID = -6113660025878112608LL; +public: + static ::java::lang::String * COLUMN_WIDTH_PROPERTY; + static ::java::lang::String * HEADER_VALUE_PROPERTY; + static ::java::lang::String * HEADER_RENDERER_PROPERTY; + static ::java::lang::String * CELL_RENDERER_PROPERTY; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) modelIndex; + ::java::lang::Object * identifier; + jint width; + jint minWidth; +private: + jint preferredWidth; +public: // actually protected + jint maxWidth; + ::javax::swing::table::TableCellRenderer * headerRenderer; + ::java::lang::Object * headerValue; + ::javax::swing::table::TableCellRenderer * cellRenderer; + ::javax::swing::table::TableCellEditor * cellEditor; + jboolean isResizable; + jint resizedPostingDisableCount; +private: + ::javax::swing::event::SwingPropertyChangeSupport * changeSupport; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_table_TableColumn__ diff --git a/libjava/javax/swing/table/TableColumnModel.h b/libjava/javax/swing/table/TableColumnModel.h new file mode 100644 index 00000000000..ea60322422a --- /dev/null +++ b/libjava/javax/swing/table/TableColumnModel.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_TableColumnModel__ +#define __javax_swing_table_TableColumnModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class ListSelectionModel; + namespace event + { + class TableColumnModelListener; + } + namespace table + { + class TableColumn; + class TableColumnModel; + } + } + } +} + +class javax::swing::table::TableColumnModel : public ::java::lang::Object +{ + +public: + virtual void addColumn(::javax::swing::table::TableColumn *) = 0; + virtual void removeColumn(::javax::swing::table::TableColumn *) = 0; + virtual void moveColumn(jint, jint) = 0; + virtual void setColumnMargin(jint) = 0; + virtual jint getColumnCount() = 0; + virtual ::java::util::Enumeration * getColumns() = 0; + virtual jint getColumnIndex(::java::lang::Object *) = 0; + virtual ::javax::swing::table::TableColumn * getColumn(jint) = 0; + virtual jint getColumnMargin() = 0; + virtual jint getColumnIndexAtX(jint) = 0; + virtual jint getTotalColumnWidth() = 0; + virtual void setColumnSelectionAllowed(jboolean) = 0; + virtual jboolean getColumnSelectionAllowed() = 0; + virtual JArray< jint > * getSelectedColumns() = 0; + virtual jint getSelectedColumnCount() = 0; + virtual void setSelectionModel(::javax::swing::ListSelectionModel *) = 0; + virtual ::javax::swing::ListSelectionModel * getSelectionModel() = 0; + virtual void addColumnModelListener(::javax::swing::event::TableColumnModelListener *) = 0; + virtual void removeColumnModelListener(::javax::swing::event::TableColumnModelListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_table_TableColumnModel__ diff --git a/libjava/javax/swing/table/TableModel.h b/libjava/javax/swing/table/TableModel.h new file mode 100644 index 00000000000..29494c5e102 --- /dev/null +++ b/libjava/javax/swing/table/TableModel.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_table_TableModel__ +#define __javax_swing_table_TableModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TableModelListener; + } + namespace table + { + class TableModel; + } + } + } +} + +class javax::swing::table::TableModel : public ::java::lang::Object +{ + +public: + virtual jint getRowCount() = 0; + virtual jint getColumnCount() = 0; + virtual ::java::lang::String * getColumnName(jint) = 0; + virtual ::java::lang::Class * getColumnClass(jint) = 0; + virtual jboolean isCellEditable(jint, jint) = 0; + virtual ::java::lang::Object * getValueAt(jint, jint) = 0; + virtual void setValueAt(::java::lang::Object *, jint, jint) = 0; + virtual void addTableModelListener(::javax::swing::event::TableModelListener *) = 0; + virtual void removeTableModelListener(::javax::swing::event::TableModelListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_table_TableModel__ diff --git a/libjava/javax/swing/text/AbstractDocument$1.h b/libjava/javax/swing/text/AbstractDocument$1.h new file mode 100644 index 00000000000..b433e142189 --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$1__ +#define __javax_swing_text_AbstractDocument$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$1; + } + } + } +} + +class javax::swing::text::AbstractDocument$1 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractDocument$1(::javax::swing::text::AbstractDocument *); +public: + jint getOffset(); +public: // actually package-private + ::javax::swing::text::AbstractDocument * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$1__ diff --git a/libjava/javax/swing/text/AbstractDocument$2.h b/libjava/javax/swing/text/AbstractDocument$2.h new file mode 100644 index 00000000000..dc504ce9eea --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$2.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$2__ +#define __javax_swing_text_AbstractDocument$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$2; + } + } + } +} + +class javax::swing::text::AbstractDocument$2 : public ::java::lang::Object +{ + +public: // actually package-private + AbstractDocument$2(::javax::swing::text::AbstractDocument *); +public: + jint getOffset(); +public: // actually package-private + ::javax::swing::text::AbstractDocument * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$2__ diff --git a/libjava/javax/swing/text/AbstractDocument$AbstractElement.h b/libjava/javax/swing/text/AbstractDocument$AbstractElement.h new file mode 100644 index 00000000000..1aae4dc3660 --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$AbstractElement.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$AbstractElement__ +#define __javax_swing_text_AbstractDocument$AbstractElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$AbstractElement; + class AttributeSet; + class Document; + class Element; + } + namespace tree + { + class TreeNode; + } + } + } +} + +class javax::swing::text::AbstractDocument$AbstractElement : public ::java::lang::Object +{ + +public: + AbstractDocument$AbstractElement(::javax::swing::text::AbstractDocument *, ::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *); + virtual ::java::util::Enumeration * children() = 0; + virtual jboolean getAllowsChildren() = 0; + virtual ::javax::swing::tree::TreeNode * getChildAt(jint); + virtual jint getChildCount(); + virtual jint getIndex(::javax::swing::tree::TreeNode *); + virtual ::javax::swing::tree::TreeNode * getParent(); + virtual jboolean isLeaf() = 0; + virtual void addAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual void addAttributes(::javax::swing::text::AttributeSet *); + virtual void removeAttribute(::java::lang::Object *); + virtual void removeAttributes(::javax::swing::text::AttributeSet *); + virtual void removeAttributes(::java::util::Enumeration *); + virtual void setResolveParent(::javax::swing::text::AttributeSet *); + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual jint getAttributeCount(); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual jboolean isDefined(::java::lang::Object *); + virtual jboolean isEqual(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual ::javax::swing::text::Document * getDocument(); + virtual ::javax::swing::text::Element * getElement(jint) = 0; + virtual ::java::lang::String * getName(); + virtual ::javax::swing::text::Element * getParentElement(); + virtual jint getEndOffset() = 0; + virtual jint getElementCount() = 0; + virtual jint getElementIndex(jint) = 0; + virtual jint getStartOffset() = 0; + virtual void dump(::java::io::PrintStream *, jint); +private: + static const jlong serialVersionUID = 1712240033321461704LL; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count; + jint offset; + ::javax::swing::text::AttributeSet * attributes; + ::javax::swing::text::Element * element_parent; + ::javax::swing::tree::TreeNode * tree_parent; + ::java::util::Vector * tree_children; + ::javax::swing::text::AbstractDocument * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$AbstractElement__ diff --git a/libjava/javax/swing/text/AbstractDocument$AttributeContext.h b/libjava/javax/swing/text/AbstractDocument$AttributeContext.h new file mode 100644 index 00000000000..d02f88831e1 --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$AttributeContext.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$AttributeContext__ +#define __javax_swing_text_AbstractDocument$AttributeContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument$AttributeContext; + class AttributeSet; + } + } + } +} + +class javax::swing::text::AbstractDocument$AttributeContext : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::text::AttributeSet * addAttribute(::javax::swing::text::AttributeSet *, ::java::lang::Object *, ::java::lang::Object *) = 0; + virtual ::javax::swing::text::AttributeSet * addAttributes(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *) = 0; + virtual ::javax::swing::text::AttributeSet * getEmptySet() = 0; + virtual void reclaim(::javax::swing::text::AttributeSet *) = 0; + virtual ::javax::swing::text::AttributeSet * removeAttribute(::javax::swing::text::AttributeSet *, ::java::lang::Object *) = 0; + virtual ::javax::swing::text::AttributeSet * removeAttributes(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *) = 0; + virtual ::javax::swing::text::AttributeSet * removeAttributes(::javax::swing::text::AttributeSet *, ::java::util::Enumeration *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_AbstractDocument$AttributeContext__ diff --git a/libjava/javax/swing/text/AbstractDocument$BidiElement.h b/libjava/javax/swing/text/AbstractDocument$BidiElement.h new file mode 100644 index 00000000000..4d8a0c8dfca --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$BidiElement.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$BidiElement__ +#define __javax_swing_text_AbstractDocument$BidiElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$BidiElement; + class Element; + } + } + } +} + +class javax::swing::text::AbstractDocument$BidiElement : public ::javax::swing::text::AbstractDocument$LeafElement +{ + +public: // actually package-private + AbstractDocument$BidiElement(::javax::swing::text::AbstractDocument *, ::javax::swing::text::Element *, jint, jint, jint); +public: + virtual ::java::lang::String * getName(); +public: // actually package-private + ::javax::swing::text::AbstractDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument$LeafElement)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$BidiElement__ diff --git a/libjava/javax/swing/text/AbstractDocument$BidiRootElement.h b/libjava/javax/swing/text/AbstractDocument$BidiRootElement.h new file mode 100644 index 00000000000..b9a908b7ba1 --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$BidiRootElement.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$BidiRootElement__ +#define __javax_swing_text_AbstractDocument$BidiRootElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$BidiRootElement; + } + } + } +} + +class javax::swing::text::AbstractDocument$BidiRootElement : public ::javax::swing::text::AbstractDocument$BranchElement +{ + +public: // actually package-private + AbstractDocument$BidiRootElement(::javax::swing::text::AbstractDocument *); +public: + virtual ::java::lang::String * getName(); +public: // actually package-private + ::javax::swing::text::AbstractDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument$BranchElement)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$BidiRootElement__ diff --git a/libjava/javax/swing/text/AbstractDocument$BranchElement.h b/libjava/javax/swing/text/AbstractDocument$BranchElement.h new file mode 100644 index 00000000000..1fb3a680aff --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$BranchElement.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$BranchElement__ +#define __javax_swing_text_AbstractDocument$BranchElement__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$BranchElement; + class AttributeSet; + class Element; + } + } + } +} + +class javax::swing::text::AbstractDocument$BranchElement : public ::javax::swing::text::AbstractDocument$AbstractElement +{ + +public: + AbstractDocument$BranchElement(::javax::swing::text::AbstractDocument *, ::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *); + virtual ::java::util::Enumeration * children(); + virtual jboolean getAllowsChildren(); + virtual ::javax::swing::text::Element * getElement(jint); + virtual jint getElementCount(); + virtual jint getElementIndex(jint); + virtual jint getEndOffset(); + virtual ::java::lang::String * getName(); + virtual jint getStartOffset(); + virtual jboolean isLeaf(); + virtual ::javax::swing::text::Element * positionToElement(jint); + virtual void replace(jint, jint, JArray< ::javax::swing::text::Element * > *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -6037216547466333183LL; + JArray< ::javax::swing::text::Element * > * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument$AbstractElement)))) children__; + jint numChildren; + jint lastIndex; +public: // actually package-private + ::javax::swing::text::AbstractDocument * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$BranchElement__ diff --git a/libjava/javax/swing/text/AbstractDocument$Bypass.h b/libjava/javax/swing/text/AbstractDocument$Bypass.h new file mode 100644 index 00000000000..bb850d91e09 --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$Bypass.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$Bypass__ +#define __javax_swing_text_AbstractDocument$Bypass__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$Bypass; + class AttributeSet; + class Document; + } + } + } +} + +class javax::swing::text::AbstractDocument$Bypass : public ::javax::swing::text::DocumentFilter$FilterBypass +{ + +public: // actually package-private + AbstractDocument$Bypass(::javax::swing::text::AbstractDocument *); +public: + virtual ::javax::swing::text::Document * getDocument(); + virtual void insertString(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); + virtual void remove(jint, jint); + virtual void replace(jint, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); +public: // actually package-private + ::javax::swing::text::AbstractDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::DocumentFilter$FilterBypass)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$Bypass__ diff --git a/libjava/javax/swing/text/AbstractDocument$Content.h b/libjava/javax/swing/text/AbstractDocument$Content.h new file mode 100644 index 00000000000..be16e410b1b --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$Content.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$Content__ +#define __javax_swing_text_AbstractDocument$Content__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument$Content; + class Position; + class Segment; + } + namespace undo + { + class UndoableEdit; + } + } + } +} + +class javax::swing::text::AbstractDocument$Content : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::text::Position * createPosition(jint) = 0; + virtual jint length() = 0; + virtual ::javax::swing::undo::UndoableEdit * insertString(jint, ::java::lang::String *) = 0; + virtual ::javax::swing::undo::UndoableEdit * remove(jint, jint) = 0; + virtual ::java::lang::String * getString(jint, jint) = 0; + virtual void getChars(jint, jint, ::javax::swing::text::Segment *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_AbstractDocument$Content__ diff --git a/libjava/javax/swing/text/AbstractDocument$DefaultDocumentEvent.h b/libjava/javax/swing/text/AbstractDocument$DefaultDocumentEvent.h new file mode 100644 index 00000000000..ab7c2a01ccf --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$DefaultDocumentEvent.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$DefaultDocumentEvent__ +#define __javax_swing_text_AbstractDocument$DefaultDocumentEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent$ElementChange; + class DocumentEvent$EventType; + } + namespace text + { + class AbstractDocument; + class AbstractDocument$DefaultDocumentEvent; + class Document; + class Element; + } + namespace undo + { + class UndoableEdit; + } + } + } +} + +class javax::swing::text::AbstractDocument$DefaultDocumentEvent : public ::javax::swing::undo::CompoundEdit +{ + +public: + AbstractDocument$DefaultDocumentEvent(::javax::swing::text::AbstractDocument *, jint, jint, ::javax::swing::event::DocumentEvent$EventType *); + virtual jboolean addEdit(::javax::swing::undo::UndoableEdit *); + virtual ::javax::swing::text::Document * getDocument(); + virtual jint getLength(); + virtual jint getOffset(); + virtual ::javax::swing::event::DocumentEvent$EventType * getType(); + virtual ::javax::swing::event::DocumentEvent$ElementChange * getChange(::javax::swing::text::Element *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 5230037221564563284LL; + static const jint THRESHOLD = 10; + jint __attribute__((aligned(__alignof__( ::javax::swing::undo::CompoundEdit)))) offset; + jint length; + ::javax::swing::event::DocumentEvent$EventType * type; + ::java::util::HashMap * changes; + jboolean modified; +public: // actually package-private + ::javax::swing::text::AbstractDocument * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$DefaultDocumentEvent__ diff --git a/libjava/javax/swing/text/AbstractDocument$ElementEdit.h b/libjava/javax/swing/text/AbstractDocument$ElementEdit.h new file mode 100644 index 00000000000..68eb020d11b --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$ElementEdit.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$ElementEdit__ +#define __javax_swing_text_AbstractDocument$ElementEdit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument$ElementEdit; + class Element; + } + } + } +} + +class javax::swing::text::AbstractDocument$ElementEdit : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + AbstractDocument$ElementEdit(::javax::swing::text::Element *, jint, JArray< ::javax::swing::text::Element * > *, JArray< ::javax::swing::text::Element * > *); + virtual JArray< ::javax::swing::text::Element * > * getChildrenAdded(); + virtual JArray< ::javax::swing::text::Element * > * getChildrenRemoved(); + virtual ::javax::swing::text::Element * getElement(); + virtual jint getIndex(); +private: + static const jlong serialVersionUID = -1216620962142928304LL; + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) elem; + jint index; + JArray< ::javax::swing::text::Element * > * removed; + JArray< ::javax::swing::text::Element * > * added; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$ElementEdit__ diff --git a/libjava/javax/swing/text/AbstractDocument$LeafElement.h b/libjava/javax/swing/text/AbstractDocument$LeafElement.h new file mode 100644 index 00000000000..0b8d671b6ce --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument$LeafElement.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument$LeafElement__ +#define __javax_swing_text_AbstractDocument$LeafElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument; + class AbstractDocument$LeafElement; + class AttributeSet; + class Element; + class Position; + } + } + } +} + +class javax::swing::text::AbstractDocument$LeafElement : public ::javax::swing::text::AbstractDocument$AbstractElement +{ + +public: + AbstractDocument$LeafElement(::javax::swing::text::AbstractDocument *, ::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *, jint, jint); + virtual ::java::util::Enumeration * children(); + virtual jboolean getAllowsChildren(); + virtual ::javax::swing::text::Element * getElement(jint); + virtual jint getElementCount(); + virtual jint getElementIndex(jint); + virtual jint getEndOffset(); + virtual ::java::lang::String * getName(); + virtual jint getStartOffset(); + virtual jboolean isLeaf(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -8906306331347768017LL; + ::javax::swing::text::Position * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument$AbstractElement)))) startPos; + ::javax::swing::text::Position * endPos; +public: // actually package-private + ::javax::swing::text::AbstractDocument * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument$LeafElement__ diff --git a/libjava/javax/swing/text/AbstractDocument.h b/libjava/javax/swing/text/AbstractDocument.h new file mode 100644 index 00000000000..65110f0cee7 --- /dev/null +++ b/libjava/javax/swing/text/AbstractDocument.h @@ -0,0 +1,166 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractDocument__ +#define __javax_swing_text_AbstractDocument__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace text + { + class Bidi; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + class DocumentListener; + class EventListenerList; + class UndoableEditEvent; + class UndoableEditListener; + } + namespace text + { + class AbstractDocument; + class AbstractDocument$AttributeContext; + class AbstractDocument$BidiRootElement; + class AbstractDocument$Content; + class AbstractDocument$DefaultDocumentEvent; + class AttributeSet; + class DocumentFilter; + class DocumentFilter$FilterBypass; + class Element; + class Position; + class Segment; + } + } + } +} + +class javax::swing::text::AbstractDocument : public ::java::lang::Object +{ + +public: // actually protected + AbstractDocument(::javax::swing::text::AbstractDocument$Content *); + AbstractDocument(::javax::swing::text::AbstractDocument$Content *, ::javax::swing::text::AbstractDocument$AttributeContext *); +private: + ::javax::swing::text::DocumentFilter$FilterBypass * getBypass(); +public: + virtual ::javax::swing::text::Element * getParagraphElement(jint) = 0; + virtual ::javax::swing::text::Element * getDefaultRootElement() = 0; +public: // actually protected + virtual ::javax::swing::text::Element * createBranchElement(::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::Element * createLeafElement(::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *, jint, jint); +public: + virtual ::javax::swing::text::Position * createPosition(jint); +public: // actually protected + virtual void fireChangedUpdate(::javax::swing::event::DocumentEvent *); + virtual void fireInsertUpdate(::javax::swing::event::DocumentEvent *); + virtual void fireRemoveUpdate(::javax::swing::event::DocumentEvent *); + virtual void fireUndoableEditUpdate(::javax::swing::event::UndoableEditEvent *); +public: + virtual jint getAsynchronousLoadPriority(); +public: // actually protected + virtual ::javax::swing::text::AbstractDocument$AttributeContext * getAttributeContext(); +public: + virtual ::javax::swing::text::Element * getBidiRootElement(); +public: // actually protected + virtual ::javax::swing::text::AbstractDocument$Content * getContent(); + virtual ::java::lang::Thread * getCurrentWriter(); +public: + virtual ::java::util::Dictionary * getDocumentProperties(); + virtual ::javax::swing::text::Position * getEndPosition(); + virtual jint getLength(); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual ::java::lang::Object * getProperty(::java::lang::Object *); + virtual JArray< ::javax::swing::text::Element * > * getRootElements(); + virtual ::javax::swing::text::Position * getStartPosition(); + virtual ::java::lang::String * getText(jint, jint); + virtual void getText(jint, jint, ::javax::swing::text::Segment *); + virtual void insertString(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); +public: // actually package-private + virtual void insertStringImpl(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); +public: // actually protected + virtual void insertUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *, ::javax::swing::text::AttributeSet *); + virtual void postRemoveUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +public: + virtual void putProperty(::java::lang::Object *, ::java::lang::Object *); +private: + void updateBidi(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); + JArray< ::java::text::Bidi * > * getBidis(jint, jint); +public: + virtual void readLock(); + virtual void readUnlock(); + virtual void remove(jint, jint); +public: // actually package-private + virtual void removeImpl(jint, jint); +public: + virtual void replace(jint, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); +public: // actually package-private + virtual void replaceImpl(jint, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); +public: + virtual void addDocumentListener(::javax::swing::event::DocumentListener *); + virtual void removeDocumentListener(::javax::swing::event::DocumentListener *); + virtual JArray< ::javax::swing::event::DocumentListener * > * getDocumentListeners(); + virtual void addUndoableEditListener(::javax::swing::event::UndoableEditListener *); + virtual void removeUndoableEditListener(::javax::swing::event::UndoableEditListener *); + virtual JArray< ::javax::swing::event::UndoableEditListener * > * getUndoableEditListeners(); +public: // actually protected + virtual void removeUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +public: + virtual void render(::java::lang::Runnable *); + virtual void setAsynchronousLoadPriority(jint); + virtual void setDocumentProperties(::java::util::Dictionary *); +public: // actually protected + virtual void writeLock(); + virtual void writeUnlock(); +public: + virtual ::javax::swing::text::DocumentFilter * getDocumentFilter(); + virtual void setDocumentFilter(::javax::swing::text::DocumentFilter *); + virtual void dump(::java::io::PrintStream *); +private: + static const jlong serialVersionUID = 6842927725919637215LL; +public: // actually protected + static ::java::lang::String * BAD_LOCATION; +public: + static ::java::lang::String * BidiElementName; + static ::java::lang::String * ContentElementName; + static ::java::lang::String * ParagraphElementName; + static ::java::lang::String * SectionElementName; + static ::java::lang::String * ElementNameAttribute; +private: + static ::java::lang::String * BidiRootName; + static ::java::lang::String * AsyncLoadPriority; + static ::java::lang::String * I18N; +public: // actually package-private + ::javax::swing::text::AbstractDocument$Content * __attribute__((aligned(__alignof__( ::java::lang::Object)))) content; + ::javax::swing::text::AbstractDocument$AttributeContext * context; + ::javax::swing::text::DocumentFilter * documentFilter; + ::java::util::Dictionary * properties; +public: // actually protected + ::javax::swing::event::EventListenerList * listenerList; +private: + ::java::lang::Thread * currentWriter; + jint numReaders; + jint numWriters; + ::javax::swing::text::DocumentFilter$FilterBypass * bypass; + ::javax::swing::text::AbstractDocument$BidiRootElement * bidiRoot; + jboolean notifyListeners; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractDocument__ diff --git a/libjava/javax/swing/text/AbstractWriter.h b/libjava/javax/swing/text/AbstractWriter.h new file mode 100644 index 00000000000..b22be6e6fa1 --- /dev/null +++ b/libjava/javax/swing/text/AbstractWriter.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AbstractWriter__ +#define __javax_swing_text_AbstractWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractWriter; + class AttributeSet; + class Document; + class Element; + class ElementIterator; + } + } + } +} + +class javax::swing::text::AbstractWriter : public ::java::lang::Object +{ + +public: // actually protected + AbstractWriter(::java::io::Writer *, ::javax::swing::text::Document *); + AbstractWriter(::java::io::Writer *, ::javax::swing::text::Document *, jint, jint); + AbstractWriter(::java::io::Writer *, ::javax::swing::text::Element *); + AbstractWriter(::java::io::Writer *, ::javax::swing::text::Element *, jint, jint); + virtual ::javax::swing::text::ElementIterator * getElementIterator(); + virtual ::java::io::Writer * getWriter(); + virtual ::javax::swing::text::Document * getDocument(); + virtual void write() = 0; + virtual ::java::lang::String * getText(::javax::swing::text::Element *); + virtual void output(JArray< jchar > *, jint, jint); + virtual void writeLineSeparator(); + virtual void write(jchar); + virtual void write(::java::lang::String *); + virtual void write(JArray< jchar > *, jint, jint); + virtual void indent(); +public: + virtual jint getStartOffset(); + virtual jint getEndOffset(); +public: // actually protected + virtual jboolean inRange(::javax::swing::text::Element *); + virtual void text(::javax::swing::text::Element *); + virtual void setLineLength(jint); + virtual jint getLineLength(); + virtual void setCurrentLineLength(jint); + virtual jint getCurrentLineLength(); + virtual jboolean isLineEmpty(); + virtual void setCanWrapLines(jboolean); + virtual jboolean getCanWrapLines(); + virtual void setIndentSpace(jint); + virtual jint getIndentSpace(); +public: + virtual void setLineSeparator(::java::lang::String *); + virtual ::java::lang::String * getLineSeparator(); +public: // actually protected + virtual void incrIndent(); + virtual void decrIndent(); + virtual jint getIndentLevel(); + virtual void writeAttributes(::javax::swing::text::AttributeSet *); + static const jchar NEWLINE = 10; +private: + ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) writer; + ::javax::swing::text::ElementIterator * iter; + ::javax::swing::text::Document * document; + jint maxLineLength; + jint lineLength; + jboolean canWrapLines; + jint indentSpace; + jint indentLevel; + jboolean indented; + jint startOffset; + jint endOffset; + ::java::lang::String * lineSeparator; + JArray< jchar > * lineSeparatorChars; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AbstractWriter__ diff --git a/libjava/javax/swing/text/AsyncBoxView$ChildLocator.h b/libjava/javax/swing/text/AsyncBoxView$ChildLocator.h new file mode 100644 index 00000000000..72b0f9a6c3c --- /dev/null +++ b/libjava/javax/swing/text/AsyncBoxView$ChildLocator.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AsyncBoxView$ChildLocator__ +#define __javax_swing_text_AsyncBoxView$ChildLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AsyncBoxView; + class AsyncBoxView$ChildLocator; + class AsyncBoxView$ChildState; + } + } + } +} + +class javax::swing::text::AsyncBoxView$ChildLocator : public ::java::lang::Object +{ + +public: + AsyncBoxView$ChildLocator(::javax::swing::text::AsyncBoxView *); + virtual void childChanged(::javax::swing::text::AsyncBoxView$ChildState *); + virtual jint getViewIndexAtPoint(jfloat, jfloat, ::java::awt::Shape *); + virtual ::java::awt::Shape * getChildAllocation(jint, ::java::awt::Shape *); + virtual void paintChildren(::java::awt::Graphics *); +public: // actually protected + virtual ::java::awt::Shape * getChildAllocation(jint); + virtual void setAllocation(::java::awt::Shape *); + virtual jint getViewIndexAtVisualOffset(jfloat); +private: + jint updateChildOffsets(jfloat); + void updateChildOffsetsToIndex(jint); +public: // actually protected + ::javax::swing::text::AsyncBoxView$ChildState * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastValidOffset; + ::java::awt::Rectangle * lastAlloc; + ::java::awt::Rectangle * childAlloc; +public: // actually package-private + ::javax::swing::text::AsyncBoxView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AsyncBoxView$ChildLocator__ diff --git a/libjava/javax/swing/text/AsyncBoxView$ChildState.h b/libjava/javax/swing/text/AsyncBoxView$ChildState.h new file mode 100644 index 00000000000..3bce589a205 --- /dev/null +++ b/libjava/javax/swing/text/AsyncBoxView$ChildState.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AsyncBoxView$ChildState__ +#define __javax_swing_text_AsyncBoxView$ChildState__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AsyncBoxView; + class AsyncBoxView$ChildState; + class View; + } + } + } +} + +class javax::swing::text::AsyncBoxView$ChildState : public ::java::lang::Object +{ + +public: + AsyncBoxView$ChildState(::javax::swing::text::AsyncBoxView *, ::javax::swing::text::View *); + virtual ::javax::swing::text::View * getChildView(); + virtual jboolean isLayoutValid(); + virtual void run(); +private: + void update(); +public: + virtual jfloat getMinorSpan(); + virtual jfloat getMinorOffset(); + virtual jfloat getMajorSpan(); + virtual jfloat getMajorOffset(); + virtual void setMajorOffset(jfloat); + virtual void preferenceChanged(jboolean, jboolean); +private: + ::javax::swing::text::View * __attribute__((aligned(__alignof__( ::java::lang::Object)))) childView; + jboolean minorValid; + jboolean majorValid; +public: // actually package-private + jboolean childSizeValid; + jfloat minimum; + jfloat preferred; +private: + jfloat majorSpan; + jfloat majorOffset; + jfloat minorSpan; + jfloat minorOffset; + jfloat maximum; +public: // actually package-private + ::javax::swing::text::AsyncBoxView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AsyncBoxView$ChildState__ diff --git a/libjava/javax/swing/text/AsyncBoxView$FlushTask.h b/libjava/javax/swing/text/AsyncBoxView$FlushTask.h new file mode 100644 index 00000000000..bd9378b4ead --- /dev/null +++ b/libjava/javax/swing/text/AsyncBoxView$FlushTask.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AsyncBoxView$FlushTask__ +#define __javax_swing_text_AsyncBoxView$FlushTask__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AsyncBoxView; + class AsyncBoxView$FlushTask; + } + } + } +} + +class javax::swing::text::AsyncBoxView$FlushTask : public ::java::lang::Object +{ + + AsyncBoxView$FlushTask(::javax::swing::text::AsyncBoxView *); +public: + virtual void run(); +public: // actually package-private + AsyncBoxView$FlushTask(::javax::swing::text::AsyncBoxView *, ::javax::swing::text::AsyncBoxView$FlushTask *); + ::javax::swing::text::AsyncBoxView * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AsyncBoxView$FlushTask__ diff --git a/libjava/javax/swing/text/AsyncBoxView.h b/libjava/javax/swing/text/AsyncBoxView.h new file mode 100644 index 00000000000..80a965f49a0 --- /dev/null +++ b/libjava/javax/swing/text/AsyncBoxView.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AsyncBoxView__ +#define __javax_swing_text_AsyncBoxView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + class DocumentEvent$ElementChange; + } + namespace text + { + class AsyncBoxView; + class AsyncBoxView$ChildLocator; + class AsyncBoxView$ChildState; + class Element; + class LayoutQueue; + class Position$Bias; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::AsyncBoxView : public ::javax::swing::text::View +{ + +public: + AsyncBoxView(::javax::swing::text::Element *, jint); + virtual jint getMajorAxis(); + virtual jint getMinorAxis(); + virtual ::javax::swing::text::View * getView(jint); + virtual jint getViewCount(); + virtual jint getViewIndex(jint, ::javax::swing::text::Position$Bias *); + virtual jfloat getTopInset(); + virtual void setTopInset(jfloat); + virtual jfloat getBottomInset(); + virtual void setBottomInset(jfloat); + virtual jfloat getLeftInset(); + virtual void setLeftInset(jfloat); + virtual jfloat getRightInset(); + virtual void setRightInset(jfloat); +public: // actually protected + virtual void loadChildren(::javax::swing::text::ViewFactory *); + virtual jfloat getInsetSpan(jint); + virtual void setEstimatedMajorSpan(jboolean); + virtual jboolean getEstimatedMajorSpan(); + virtual void minorRequirementChange(::javax::swing::text::AsyncBoxView$ChildState *); + virtual void majorRequirementChange(::javax::swing::text::AsyncBoxView$ChildState *, jfloat); +public: + virtual void setParent(::javax::swing::text::View *); + virtual void setSize(jfloat, jfloat); + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual jfloat getPreferredSpan(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual ::java::awt::Shape * getChildAllocation(jint, ::java::awt::Shape *); + virtual jfloat getMaximumSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual void preferenceChanged(::javax::swing::text::View *, jboolean, jboolean); +public: // actually protected + virtual void updateLayout(::javax::swing::event::DocumentEvent$ElementChange *, ::javax::swing::event::DocumentEvent *, ::java::awt::Shape *); + virtual ::javax::swing::text::AsyncBoxView$ChildState * getChildState(jint); + virtual ::javax::swing::text::LayoutQueue * getLayoutQueue(); + virtual jint getViewIndexAtPosition(jint, ::javax::swing::text::Position$Bias *); + virtual ::javax::swing::text::AsyncBoxView$ChildState * createChildState(::javax::swing::text::View *); + virtual void flushRequirementChanges(); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) majorAxis; + jfloat topInset; + jfloat bottomInset; + jfloat leftInset; + jboolean estimatedMajorSpan; + jfloat rightInset; + ::java::util::ArrayList * childStates; +public: // actually package-private + ::javax::swing::text::AsyncBoxView$ChildState * changing; + ::javax::swing::text::AsyncBoxView$ChildState * minReq; + ::javax::swing::text::AsyncBoxView$ChildState * prefReq; +private: + jboolean majorChanged; +public: // actually package-private + jboolean minorChanged; + jfloat majorSpan; + jfloat minorSpan; +private: + ::java::lang::Runnable * flushTask; +public: // actually protected + ::javax::swing::text::AsyncBoxView$ChildLocator * locator; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_AsyncBoxView__ diff --git a/libjava/javax/swing/text/AttributeSet$CharacterAttribute.h b/libjava/javax/swing/text/AttributeSet$CharacterAttribute.h new file mode 100644 index 00000000000..ddc9c19f482 --- /dev/null +++ b/libjava/javax/swing/text/AttributeSet$CharacterAttribute.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AttributeSet$CharacterAttribute__ +#define __javax_swing_text_AttributeSet$CharacterAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet$CharacterAttribute; + } + } + } +} + +class javax::swing::text::AttributeSet$CharacterAttribute : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_AttributeSet$CharacterAttribute__ diff --git a/libjava/javax/swing/text/AttributeSet$ColorAttribute.h b/libjava/javax/swing/text/AttributeSet$ColorAttribute.h new file mode 100644 index 00000000000..c04b096d06b --- /dev/null +++ b/libjava/javax/swing/text/AttributeSet$ColorAttribute.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AttributeSet$ColorAttribute__ +#define __javax_swing_text_AttributeSet$ColorAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet$ColorAttribute; + } + } + } +} + +class javax::swing::text::AttributeSet$ColorAttribute : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_AttributeSet$ColorAttribute__ diff --git a/libjava/javax/swing/text/AttributeSet$FontAttribute.h b/libjava/javax/swing/text/AttributeSet$FontAttribute.h new file mode 100644 index 00000000000..eff25222ae2 --- /dev/null +++ b/libjava/javax/swing/text/AttributeSet$FontAttribute.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AttributeSet$FontAttribute__ +#define __javax_swing_text_AttributeSet$FontAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet$FontAttribute; + } + } + } +} + +class javax::swing::text::AttributeSet$FontAttribute : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_AttributeSet$FontAttribute__ diff --git a/libjava/javax/swing/text/AttributeSet$ParagraphAttribute.h b/libjava/javax/swing/text/AttributeSet$ParagraphAttribute.h new file mode 100644 index 00000000000..05f67c16b7e --- /dev/null +++ b/libjava/javax/swing/text/AttributeSet$ParagraphAttribute.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AttributeSet$ParagraphAttribute__ +#define __javax_swing_text_AttributeSet$ParagraphAttribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet$ParagraphAttribute; + } + } + } +} + +class javax::swing::text::AttributeSet$ParagraphAttribute : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_AttributeSet$ParagraphAttribute__ diff --git a/libjava/javax/swing/text/AttributeSet.h b/libjava/javax/swing/text/AttributeSet.h new file mode 100644 index 00000000000..ba1f4d100e9 --- /dev/null +++ b/libjava/javax/swing/text/AttributeSet.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_AttributeSet__ +#define __javax_swing_text_AttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + } + } + } +} + +class javax::swing::text::AttributeSet : public ::java::lang::Object +{ + +public: + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *) = 0; + virtual ::javax::swing::text::AttributeSet * copyAttributes() = 0; + virtual ::java::lang::Object * getAttribute(::java::lang::Object *) = 0; + virtual jint getAttributeCount() = 0; + virtual ::java::util::Enumeration * getAttributeNames() = 0; + virtual ::javax::swing::text::AttributeSet * getResolveParent() = 0; + virtual jboolean isDefined(::java::lang::Object *) = 0; + virtual jboolean isEqual(::javax::swing::text::AttributeSet *) = 0; + static ::java::lang::Object * NameAttribute; + static ::java::lang::Object * ResolveAttribute; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_AttributeSet__ diff --git a/libjava/javax/swing/text/BadLocationException.h b/libjava/javax/swing/text/BadLocationException.h new file mode 100644 index 00000000000..3102b7a37a5 --- /dev/null +++ b/libjava/javax/swing/text/BadLocationException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_BadLocationException__ +#define __javax_swing_text_BadLocationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class BadLocationException; + } + } + } +} + +class javax::swing::text::BadLocationException : public ::java::lang::Exception +{ + +public: + BadLocationException(::java::lang::String *, jint); + virtual jint offsetRequested(); +private: + static const jlong serialVersionUID = -7712259886815656766LL; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) offset; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_BadLocationException__ diff --git a/libjava/javax/swing/text/BoxView.h b/libjava/javax/swing/text/BoxView.h new file mode 100644 index 00000000000..c00436887f6 --- /dev/null +++ b/libjava/javax/swing/text/BoxView.h @@ -0,0 +1,115 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_BoxView__ +#define __javax_swing_text_BoxView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace event + { + class DocumentEvent; + class DocumentEvent$ElementChange; + } + namespace text + { + class BoxView; + class Element; + class Position$Bias; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::BoxView : public ::javax::swing::text::CompositeView +{ + +public: + BoxView(::javax::swing::text::Element *, jint); + virtual jint getAxis(); + virtual void setAxis(jint); + virtual void layoutChanged(jint); +public: // actually protected + virtual jboolean isLayoutValid(jint); + virtual void paintChild(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); +public: + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); +private: + JArray< jint > * replaceLayoutArray(JArray< jint > *, jint, jint); +public: + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual jfloat getPreferredSpan(jint); + virtual jfloat getMaximumSpan(jint); + virtual jfloat getMinimumSpan(jint); +public: // actually protected + virtual ::javax::swing::SizeRequirements * baselineRequirements(jint, ::javax::swing::SizeRequirements *); + virtual void baselineLayout(jint, jint, JArray< jint > *, JArray< jint > *); + virtual ::javax::swing::SizeRequirements * calculateMajorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual ::javax::swing::SizeRequirements * calculateMinorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual jboolean isBefore(jint, jint, ::java::awt::Rectangle *); + virtual jboolean isAfter(jint, jint, ::java::awt::Rectangle *); + virtual ::javax::swing::text::View * getViewAtPoint(jint, jint, ::java::awt::Rectangle *); + virtual void childAllocation(jint, ::java::awt::Rectangle *); + virtual void layout(jint, jint); +private: + void layoutAxis(jint, jint); +public: // actually protected + virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *); + virtual void layoutMinorAxis(jint, jint, JArray< jint > *, JArray< jint > *); + virtual jboolean isAllocationValid(); +public: + virtual jint getWidth(); + virtual jint getHeight(); + virtual void setSize(jfloat, jfloat); +public: // actually protected + virtual jint getSpan(jint, jint); + virtual jint getOffset(jint, jint); +public: + virtual jfloat getAlignment(jint); + virtual void preferenceChanged(::javax::swing::text::View *, jboolean, jboolean); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint getResizeWeight(jint); + virtual ::java::awt::Shape * getChildAllocation(jint, ::java::awt::Shape *); +public: // actually protected + virtual void forwardUpdate(::javax::swing::event::DocumentEvent$ElementChange *, ::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +public: // actually protected + virtual jboolean flipEastAndWestAtEnds(jint, ::javax::swing::text::Position$Bias *); +private: + void updateRequirements(jint); + jint __attribute__((aligned(__alignof__( ::javax::swing::text::CompositeView)))) myAxis; + JArray< jboolean > * layoutValid; + JArray< jboolean > * requirementsValid; + JArray< JArray< jint > * > * spans; + JArray< JArray< jint > * > * offsets; + JArray< ::javax::swing::SizeRequirements * > * requirements; + JArray< jint > * span; + ::java::awt::Rectangle * tmpRect; + ::java::awt::Rectangle * clipRect; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_BoxView__ diff --git a/libjava/javax/swing/text/Caret.h b/libjava/javax/swing/text/Caret.h new file mode 100644 index 00000000000..024933a0485 --- /dev/null +++ b/libjava/javax/swing/text/Caret.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Caret__ +#define __javax_swing_text_Caret__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Point; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class ChangeListener; + } + namespace text + { + class Caret; + class JTextComponent; + } + } + } +} + +class javax::swing::text::Caret : public ::java::lang::Object +{ + +public: + virtual void addChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void removeChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void install(::javax::swing::text::JTextComponent *) = 0; + virtual void deinstall(::javax::swing::text::JTextComponent *) = 0; + virtual jint getBlinkRate() = 0; + virtual void setBlinkRate(jint) = 0; + virtual jint getDot() = 0; + virtual void setDot(jint) = 0; + virtual void moveDot(jint) = 0; + virtual jint getMark() = 0; + virtual ::java::awt::Point * getMagicCaretPosition() = 0; + virtual void setMagicCaretPosition(::java::awt::Point *) = 0; + virtual jboolean isSelectionVisible() = 0; + virtual void setSelectionVisible(jboolean) = 0; + virtual jboolean isVisible() = 0; + virtual void setVisible(jboolean) = 0; + virtual void paint(::java::awt::Graphics *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Caret__ diff --git a/libjava/javax/swing/text/ChangedCharSetException.h b/libjava/javax/swing/text/ChangedCharSetException.h new file mode 100644 index 00000000000..d25d88cd98c --- /dev/null +++ b/libjava/javax/swing/text/ChangedCharSetException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ChangedCharSetException__ +#define __javax_swing_text_ChangedCharSetException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class ChangedCharSetException; + } + } + } +} + +class javax::swing::text::ChangedCharSetException : public ::java::io::IOException +{ + +public: + ChangedCharSetException(::java::lang::String *, jboolean); + virtual ::java::lang::String * getCharSetSpec(); + virtual jboolean keyEqualsCharSet(); +private: + static const jlong serialVersionUID = 9119851554465432389LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::io::IOException)))) m_charSetSpec; + jboolean m_charSetKey; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ChangedCharSetException__ diff --git a/libjava/javax/swing/text/ComponentView$1.h b/libjava/javax/swing/text/ComponentView$1.h new file mode 100644 index 00000000000..fa00c157eb7 --- /dev/null +++ b/libjava/javax/swing/text/ComponentView$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ComponentView$1__ +#define __javax_swing_text_ComponentView$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class ComponentView; + class ComponentView$1; + } + } + } +} + +class javax::swing::text::ComponentView$1 : public ::java::lang::Object +{ + +public: // actually package-private + ComponentView$1(::javax::swing::text::ComponentView *); +public: + void run(); +public: // actually package-private + ::javax::swing::text::ComponentView * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ComponentView$1__ diff --git a/libjava/javax/swing/text/ComponentView$Interceptor.h b/libjava/javax/swing/text/ComponentView$Interceptor.h new file mode 100644 index 00000000000..57a14a5abac --- /dev/null +++ b/libjava/javax/swing/text/ComponentView$Interceptor.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ComponentView$Interceptor__ +#define __javax_swing_text_ComponentView$Interceptor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Dimension; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class ComponentView; + class ComponentView$Interceptor; + } + } + } +} + +class javax::swing::text::ComponentView$Interceptor : public ::java::awt::Container +{ + +public: // actually package-private + ComponentView$Interceptor(::javax::swing::text::ComponentView *, ::java::awt::Component *); +public: + virtual void invalidate(); + virtual void doLayout(); + virtual void reshape(jint, jint, jint, jint); + virtual void show(); + virtual void hide(); + virtual ::java::awt::Dimension * getMinimumSize(); + virtual ::java::awt::Dimension * getPreferredSize(); + virtual ::java::awt::Dimension * getMaximumSize(); + virtual jfloat getAlignmentX(); + virtual jfloat getAlignmentY(); +private: + void maybeValidate(); + void cacheComponentSizes(); +public: // actually package-private + ::java::awt::Dimension * __attribute__((aligned(__alignof__( ::java::awt::Container)))) min; + ::java::awt::Dimension * pref; + ::java::awt::Dimension * max; + jfloat alignX; + jfloat alignY; + ::javax::swing::text::ComponentView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ComponentView$Interceptor__ diff --git a/libjava/javax/swing/text/ComponentView.h b/libjava/javax/swing/text/ComponentView.h new file mode 100644 index 00000000000..0a333cf86d7 --- /dev/null +++ b/libjava/javax/swing/text/ComponentView.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ComponentView__ +#define __javax_swing_text_ComponentView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class ComponentView; + class ComponentView$Interceptor; + class Element; + class Position$Bias; + class View; + } + } + } +} + +class javax::swing::text::ComponentView : public ::javax::swing::text::View +{ + +public: + ComponentView(::javax::swing::text::Element *); +public: // actually protected + virtual ::java::awt::Component * createComponent(); +public: + virtual jfloat getAlignment(jint); + virtual ::java::awt::Component * getComponent(); + virtual jfloat getMaximumSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual jfloat getPreferredSpan(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual void setParent(::javax::swing::text::View *); +public: // actually package-private + virtual void setParentImpl(); +public: + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +private: + ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) comp; + ::javax::swing::text::ComponentView$Interceptor * interceptor; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ComponentView__ diff --git a/libjava/javax/swing/text/CompositeView.h b/libjava/javax/swing/text/CompositeView.h new file mode 100644 index 00000000000..2e708ffa1cc --- /dev/null +++ b/libjava/javax/swing/text/CompositeView.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_CompositeView__ +#define __javax_swing_text_CompositeView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class CompositeView; + class Element; + class Position$Bias; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::CompositeView : public ::javax::swing::text::View +{ + +public: + CompositeView(::javax::swing::text::Element *); +public: // actually protected + virtual void loadChildren(::javax::swing::text::ViewFactory *); +public: + virtual void setParent(::javax::swing::text::View *); + virtual jint getViewCount(); + virtual ::javax::swing::text::View * getView(jint); + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); + virtual ::java::awt::Shape * getChildAllocation(jint, ::java::awt::Shape *); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual ::java::awt::Shape * modelToView(jint, ::javax::swing::text::Position$Bias *, jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jint getNextVisualPositionFrom(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jint getViewIndex(jint, ::javax::swing::text::Position$Bias *); +public: // actually protected + virtual jboolean isBefore(jint, jint, ::java::awt::Rectangle *) = 0; + virtual jboolean isAfter(jint, jint, ::java::awt::Rectangle *) = 0; + virtual ::javax::swing::text::View * getViewAtPoint(jint, jint, ::java::awt::Rectangle *) = 0; + virtual void childAllocation(jint, ::java::awt::Rectangle *) = 0; + virtual ::javax::swing::text::View * getViewAtPosition(jint, ::java::awt::Rectangle *); + virtual jint getViewIndexAtPosition(jint); + virtual ::java::awt::Rectangle * getInsideAllocation(::java::awt::Shape *); + virtual void setParagraphInsets(::javax::swing::text::AttributeSet *); + virtual void setInsets(jshort, jshort, jshort, jshort); + virtual jshort getLeftInset(); + virtual jshort getRightInset(); + virtual jshort getTopInset(); + virtual jshort getBottomInset(); + virtual jint getNextNorthSouthVisualPositionFrom(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jint getNextEastWestVisualPositionFrom(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jboolean flipEastAndWestAtEnds(jint, ::javax::swing::text::Position$Bias *); +private: + JArray< ::javax::swing::text::View * > * __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) children; + jint numChildren; + ::java::awt::Rectangle * insideAllocation; + jshort top; + jshort bottom; + jshort left; + jshort right; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_CompositeView__ diff --git a/libjava/javax/swing/text/DateFormatter.h b/libjava/javax/swing/text/DateFormatter.h new file mode 100644 index 00000000000..47da776dacb --- /dev/null +++ b/libjava/javax/swing/text/DateFormatter.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DateFormatter__ +#define __javax_swing_text_DateFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class DateFormat; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DateFormatter; + } + } + } +} + +class javax::swing::text::DateFormatter : public ::javax::swing::text::InternationalFormatter +{ + +public: + DateFormatter(); + DateFormatter(::java::text::DateFormat *); + virtual void setFormat(::java::text::DateFormat *); +private: + static const jlong serialVersionUID = 5423279572591848797LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DateFormatter__ diff --git a/libjava/javax/swing/text/DefaultCaret$BlinkTimerListener.h b/libjava/javax/swing/text/DefaultCaret$BlinkTimerListener.h new file mode 100644 index 00000000000..a29c4aaa2bf --- /dev/null +++ b/libjava/javax/swing/text/DefaultCaret$BlinkTimerListener.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultCaret$BlinkTimerListener__ +#define __javax_swing_text_DefaultCaret$BlinkTimerListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultCaret; + class DefaultCaret$BlinkTimerListener; + } + } + } +} + +class javax::swing::text::DefaultCaret$BlinkTimerListener : public ::java::lang::Object +{ + + DefaultCaret$BlinkTimerListener(::javax::swing::text::DefaultCaret *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually package-private + DefaultCaret$BlinkTimerListener(::javax::swing::text::DefaultCaret *, ::javax::swing::text::DefaultCaret$BlinkTimerListener *); + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) ignoreNextEvent; + ::javax::swing::text::DefaultCaret * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultCaret$BlinkTimerListener__ diff --git a/libjava/javax/swing/text/DefaultCaret$Bypass.h b/libjava/javax/swing/text/DefaultCaret$Bypass.h new file mode 100644 index 00000000000..045d191f153 --- /dev/null +++ b/libjava/javax/swing/text/DefaultCaret$Bypass.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultCaret$Bypass__ +#define __javax_swing_text_DefaultCaret$Bypass__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultCaret; + class DefaultCaret$Bypass; + class Position$Bias; + } + } + } +} + +class javax::swing::text::DefaultCaret$Bypass : public ::javax::swing::text::NavigationFilter$FilterBypass +{ + +public: // actually package-private + DefaultCaret$Bypass(::javax::swing::text::DefaultCaret *); +public: + virtual ::javax::swing::text::Caret * getCaret(); + virtual void moveDot(jint, ::javax::swing::text::Position$Bias *); + virtual void setDot(jint, ::javax::swing::text::Position$Bias *); +public: // actually package-private + ::javax::swing::text::DefaultCaret * __attribute__((aligned(__alignof__( ::javax::swing::text::NavigationFilter$FilterBypass)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultCaret$Bypass__ diff --git a/libjava/javax/swing/text/DefaultCaret$DocumentHandler.h b/libjava/javax/swing/text/DefaultCaret$DocumentHandler.h new file mode 100644 index 00000000000..64b15b178d4 --- /dev/null +++ b/libjava/javax/swing/text/DefaultCaret$DocumentHandler.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultCaret$DocumentHandler__ +#define __javax_swing_text_DefaultCaret$DocumentHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class DefaultCaret; + class DefaultCaret$DocumentHandler; + } + } + } +} + +class javax::swing::text::DefaultCaret$DocumentHandler : public ::java::lang::Object +{ + + DefaultCaret$DocumentHandler(::javax::swing::text::DefaultCaret *); +public: + virtual void changedUpdate(::javax::swing::event::DocumentEvent *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *); +public: // actually package-private + DefaultCaret$DocumentHandler(::javax::swing::text::DefaultCaret *, ::javax::swing::text::DefaultCaret$DocumentHandler *); + ::javax::swing::text::DefaultCaret * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultCaret$DocumentHandler__ diff --git a/libjava/javax/swing/text/DefaultCaret$PropertyChangeHandler.h b/libjava/javax/swing/text/DefaultCaret$PropertyChangeHandler.h new file mode 100644 index 00000000000..469a8858ed7 --- /dev/null +++ b/libjava/javax/swing/text/DefaultCaret$PropertyChangeHandler.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultCaret$PropertyChangeHandler__ +#define __javax_swing_text_DefaultCaret$PropertyChangeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeEvent; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultCaret; + class DefaultCaret$PropertyChangeHandler; + } + } + } +} + +class javax::swing::text::DefaultCaret$PropertyChangeHandler : public ::java::lang::Object +{ + + DefaultCaret$PropertyChangeHandler(::javax::swing::text::DefaultCaret *); +public: + virtual void propertyChange(::java::beans::PropertyChangeEvent *); +public: // actually package-private + DefaultCaret$PropertyChangeHandler(::javax::swing::text::DefaultCaret *, ::javax::swing::text::DefaultCaret$PropertyChangeHandler *); + ::javax::swing::text::DefaultCaret * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultCaret$PropertyChangeHandler__ diff --git a/libjava/javax/swing/text/DefaultCaret.h b/libjava/javax/swing/text/DefaultCaret.h new file mode 100644 index 00000000000..882bda70ca2 --- /dev/null +++ b/libjava/javax/swing/text/DefaultCaret.h @@ -0,0 +1,161 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultCaret__ +#define __javax_swing_text_DefaultCaret__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Point; + class Rectangle; + namespace event + { + class FocusEvent; + class MouseEvent; + } + } + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class Timer; + namespace event + { + class ChangeEvent; + class ChangeListener; + class DocumentListener; + class EventListenerList; + } + namespace text + { + class DefaultCaret; + class DefaultCaret$BlinkTimerListener; + class Highlighter$HighlightPainter; + class JTextComponent; + class NavigationFilter$FilterBypass; + } + } + } +} + +class javax::swing::text::DefaultCaret : public ::java::awt::Rectangle +{ + +public: + DefaultCaret(); +private: + ::javax::swing::text::NavigationFilter$FilterBypass * getBypass(); +public: + virtual void setUpdatePolicy(jint); + virtual jint getUpdatePolicy(); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseEntered(::java::awt::event::MouseEvent *); + virtual void mouseExited(::java::awt::event::MouseEvent *); + virtual void mousePressed(::java::awt::event::MouseEvent *); + virtual void mouseReleased(::java::awt::event::MouseEvent *); + virtual void focusGained(::java::awt::event::FocusEvent *); + virtual void focusLost(::java::awt::event::FocusEvent *); +private: + void updateTimerStatus(); +public: // actually protected + virtual void moveCaret(::java::awt::event::MouseEvent *); + virtual void positionCaret(::java::awt::event::MouseEvent *); +public: + virtual void deinstall(::javax::swing::text::JTextComponent *); + virtual void install(::javax::swing::text::JTextComponent *); + virtual void setMagicCaretPosition(::java::awt::Point *); + virtual ::java::awt::Point * getMagicCaretPosition(); + virtual jint getMark(); +private: + void clearHighlight(); + void handleHighlight(); +public: + virtual void setSelectionVisible(jboolean); + virtual jboolean isSelectionVisible(); +public: // actually protected + virtual void repaint(); +public: + virtual void paint(::java::awt::Graphics *); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +public: // actually protected + virtual void fireStateChanged(); + virtual ::javax::swing::text::JTextComponent * getComponent(); +public: + virtual jint getBlinkRate(); + virtual void setBlinkRate(jint); + virtual jint getDot(); + virtual void moveDot(jint); +public: // actually package-private + virtual void moveDotImpl(jint); +public: + virtual void setDot(jint); +public: // actually package-private + virtual void setDotImpl(jint); + virtual void appear(); +public: + virtual jboolean isActive(); + virtual jboolean isVisible(); + virtual void setVisible(jboolean); +public: // actually protected + virtual ::javax::swing::text::Highlighter$HighlightPainter * getSelectionPainter(); + virtual void damage(::java::awt::Rectangle *); + virtual void adjustVisibility(::java::awt::Rectangle *); +private: + void initBlinkTimer(); +public: // actually package-private + static ::javax::swing::text::JTextComponent * componentWithSelection; +private: + static const jlong serialVersionUID = 4325555698756477346LL; +public: + static const jint ALWAYS_UPDATE = 2; + static const jint NEVER_UPDATE = 1; + static const jint UPDATE_WHEN_ON_EDT = 0; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::awt::Rectangle)))) policy; +public: // actually protected + ::javax::swing::event::ChangeEvent * changeEvent; + ::javax::swing::event::EventListenerList * listenerList; +public: // actually package-private + ::javax::swing::event::DocumentListener * documentListener; + ::java::beans::PropertyChangeListener * propertyChangeListener; + ::javax::swing::text::JTextComponent * textComponent; +private: + jboolean selectionVisible; + jint blinkRate; + jint dot; + jint mark; + ::java::awt::Point * magicCaretPosition; +public: // actually package-private + jboolean visible; + jboolean active; +private: + ::java::lang::Object * highlightEntry; + ::javax::swing::Timer * blinkTimer; + ::javax::swing::text::DefaultCaret$BlinkTimerListener * blinkListener; +public: // actually package-private + ::javax::swing::text::NavigationFilter$FilterBypass * bypass; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultCaret__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$BackwardAction.h b/libjava/javax/swing/text/DefaultEditorKit$BackwardAction.h new file mode 100644 index 00000000000..7161c7a53f0 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$BackwardAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$BackwardAction__ +#define __javax_swing_text_DefaultEditorKit$BackwardAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$BackwardAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$BackwardAction : public ::javax::swing::text::TextAction$HorizontalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$BackwardAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$BackwardAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$BeepAction.h b/libjava/javax/swing/text/DefaultEditorKit$BeepAction.h new file mode 100644 index 00000000000..dfeb6a8707b --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$BeepAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$BeepAction__ +#define __javax_swing_text_DefaultEditorKit$BeepAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$BeepAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$BeepAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$BeepAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$BeepAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$BeginAction.h b/libjava/javax/swing/text/DefaultEditorKit$BeginAction.h new file mode 100644 index 00000000000..c208fa266e2 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$BeginAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$BeginAction__ +#define __javax_swing_text_DefaultEditorKit$BeginAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$BeginAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$BeginAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$BeginAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$BeginAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$BeginLineAction.h b/libjava/javax/swing/text/DefaultEditorKit$BeginLineAction.h new file mode 100644 index 00000000000..5e253e7dca4 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$BeginLineAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$BeginLineAction__ +#define __javax_swing_text_DefaultEditorKit$BeginLineAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$BeginLineAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$BeginLineAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$BeginLineAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$BeginLineAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$BeginWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$BeginWordAction.h new file mode 100644 index 00000000000..24494a80116 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$BeginWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$BeginWordAction__ +#define __javax_swing_text_DefaultEditorKit$BeginWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$BeginWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$BeginWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$BeginWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$BeginWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$CopyAction.h b/libjava/javax/swing/text/DefaultEditorKit$CopyAction.h new file mode 100644 index 00000000000..30e8dc2f01d --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$CopyAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$CopyAction__ +#define __javax_swing_text_DefaultEditorKit$CopyAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$CopyAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$CopyAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$CopyAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$CopyAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$CutAction.h b/libjava/javax/swing/text/DefaultEditorKit$CutAction.h new file mode 100644 index 00000000000..603d1685726 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$CutAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$CutAction__ +#define __javax_swing_text_DefaultEditorKit$CutAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$CutAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$CutAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$CutAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$CutAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.h b/libjava/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.h new file mode 100644 index 00000000000..a467b07c05b --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$DefaultKeyTypedAction__ +#define __javax_swing_text_DefaultEditorKit$DefaultKeyTypedAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$DefaultKeyTypedAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$DefaultKeyTypedAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$DefaultKeyTypedAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$DefaultKeyTypedAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.h b/libjava/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.h new file mode 100644 index 00000000000..b623fa55fac --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$DeleteNextCharAction__ +#define __javax_swing_text_DefaultEditorKit$DeleteNextCharAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$DeleteNextCharAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$DeleteNextCharAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$DeleteNextCharAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$DeleteNextCharAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.h b/libjava/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.h new file mode 100644 index 00000000000..9e4f2bf6d18 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$DeletePrevCharAction__ +#define __javax_swing_text_DefaultEditorKit$DeletePrevCharAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$DeletePrevCharAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$DeletePrevCharAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$DeletePrevCharAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$DeletePrevCharAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$DownAction.h b/libjava/javax/swing/text/DefaultEditorKit$DownAction.h new file mode 100644 index 00000000000..facbd833be1 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$DownAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$DownAction__ +#define __javax_swing_text_DefaultEditorKit$DownAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$DownAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$DownAction : public ::javax::swing::text::TextAction$VerticalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$DownAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$DownAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$EndAction.h b/libjava/javax/swing/text/DefaultEditorKit$EndAction.h new file mode 100644 index 00000000000..b2cedfe98f3 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$EndAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$EndAction__ +#define __javax_swing_text_DefaultEditorKit$EndAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$EndAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$EndAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$EndAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$EndAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$EndLineAction.h b/libjava/javax/swing/text/DefaultEditorKit$EndLineAction.h new file mode 100644 index 00000000000..907656700f0 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$EndLineAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$EndLineAction__ +#define __javax_swing_text_DefaultEditorKit$EndLineAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$EndLineAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$EndLineAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$EndLineAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$EndLineAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$EndWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$EndWordAction.h new file mode 100644 index 00000000000..252a77ab14a --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$EndWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$EndWordAction__ +#define __javax_swing_text_DefaultEditorKit$EndWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$EndWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$EndWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$EndWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$EndWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$ForwardAction.h b/libjava/javax/swing/text/DefaultEditorKit$ForwardAction.h new file mode 100644 index 00000000000..3c3c7cfd18c --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$ForwardAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$ForwardAction__ +#define __javax_swing_text_DefaultEditorKit$ForwardAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$ForwardAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$ForwardAction : public ::javax::swing::text::TextAction$HorizontalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$ForwardAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$ForwardAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$InsertBreakAction.h b/libjava/javax/swing/text/DefaultEditorKit$InsertBreakAction.h new file mode 100644 index 00000000000..173b4b18d79 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$InsertBreakAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$InsertBreakAction__ +#define __javax_swing_text_DefaultEditorKit$InsertBreakAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$InsertBreakAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$InsertBreakAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$InsertBreakAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$InsertBreakAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$InsertContentAction.h b/libjava/javax/swing/text/DefaultEditorKit$InsertContentAction.h new file mode 100644 index 00000000000..98d77fa17fd --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$InsertContentAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$InsertContentAction__ +#define __javax_swing_text_DefaultEditorKit$InsertContentAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$InsertContentAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$InsertContentAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$InsertContentAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$InsertContentAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$InsertTabAction.h b/libjava/javax/swing/text/DefaultEditorKit$InsertTabAction.h new file mode 100644 index 00000000000..6201db686f6 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$InsertTabAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$InsertTabAction__ +#define __javax_swing_text_DefaultEditorKit$InsertTabAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$InsertTabAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$InsertTabAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$InsertTabAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$InsertTabAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$NextWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$NextWordAction.h new file mode 100644 index 00000000000..eedad5f0dbf --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$NextWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$NextWordAction__ +#define __javax_swing_text_DefaultEditorKit$NextWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$NextWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$NextWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$NextWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$NextWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$PasteAction.h b/libjava/javax/swing/text/DefaultEditorKit$PasteAction.h new file mode 100644 index 00000000000..2a0764c7a9f --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$PasteAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$PasteAction__ +#define __javax_swing_text_DefaultEditorKit$PasteAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$PasteAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$PasteAction : public ::javax::swing::text::TextAction +{ + +public: + DefaultEditorKit$PasteAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$PasteAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$PreviousWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$PreviousWordAction.h new file mode 100644 index 00000000000..6d7f529cd53 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$PreviousWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$PreviousWordAction__ +#define __javax_swing_text_DefaultEditorKit$PreviousWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$PreviousWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$PreviousWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$PreviousWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$PreviousWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectAllAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectAllAction.h new file mode 100644 index 00000000000..7286cd079ce --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectAllAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectAllAction__ +#define __javax_swing_text_DefaultEditorKit$SelectAllAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectAllAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectAllAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectAllAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectAllAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectLineAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectLineAction.h new file mode 100644 index 00000000000..390f7db2823 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectLineAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectLineAction__ +#define __javax_swing_text_DefaultEditorKit$SelectLineAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectLineAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectLineAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectLineAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectLineAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectWordAction.h new file mode 100644 index 00000000000..bc33182b611 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectWordAction__ +#define __javax_swing_text_DefaultEditorKit$SelectWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.h new file mode 100644 index 00000000000..3417cebb222 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionBackwardAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionBackwardAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$SelectionBackwardAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionBackwardAction : public ::javax::swing::text::TextAction$HorizontalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionBackwardAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionBackwardAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginAction.h new file mode 100644 index 00000000000..e0f68eb2e40 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionBeginAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionBeginAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionBeginAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionBeginAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionBeginAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionBeginAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.h new file mode 100644 index 00000000000..d8b57669c8e --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionBeginLineAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionBeginLineAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionBeginLineAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionBeginLineAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionBeginLineAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionBeginLineAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.h new file mode 100644 index 00000000000..fa85b345129 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionBeginWordAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionBeginWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionBeginWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionBeginWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionBeginWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionBeginWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionDownAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionDownAction.h new file mode 100644 index 00000000000..5e005df8bfb --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionDownAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionDownAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionDownAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$SelectionDownAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionDownAction : public ::javax::swing::text::TextAction$VerticalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionDownAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionDownAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionEndAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionEndAction.h new file mode 100644 index 00000000000..b1b03cdbb3d --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionEndAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionEndAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionEndAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionEndAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionEndAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionEndAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionEndAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.h new file mode 100644 index 00000000000..2ff14cb78d7 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionEndLineAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionEndLineAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionEndLineAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionEndLineAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionEndLineAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionEndLineAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.h new file mode 100644 index 00000000000..5bb3b47c2fa --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionEndWordAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionEndWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionEndWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionEndWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionEndWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionEndWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionForwardAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionForwardAction.h new file mode 100644 index 00000000000..8447af6a3d7 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionForwardAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionForwardAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionForwardAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$SelectionForwardAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionForwardAction : public ::javax::swing::text::TextAction$HorizontalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionForwardAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionForwardAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.h new file mode 100644 index 00000000000..1647d7c4277 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionNextWordAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionNextWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionNextWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionNextWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionNextWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionNextWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.h new file mode 100644 index 00000000000..5257dafe636 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionPreviousWordAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionPreviousWordAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultEditorKit$SelectionPreviousWordAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionPreviousWordAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionPreviousWordAction(); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionPreviousWordAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$SelectionUpAction.h b/libjava/javax/swing/text/DefaultEditorKit$SelectionUpAction.h new file mode 100644 index 00000000000..9d5b3f41ca1 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$SelectionUpAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$SelectionUpAction__ +#define __javax_swing_text_DefaultEditorKit$SelectionUpAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$SelectionUpAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$SelectionUpAction : public ::javax::swing::text::TextAction$VerticalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$SelectionUpAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$SelectionUpAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit$UpAction.h b/libjava/javax/swing/text/DefaultEditorKit$UpAction.h new file mode 100644 index 00000000000..e2cc3eaa7e9 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit$UpAction.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit$UpAction__ +#define __javax_swing_text_DefaultEditorKit$UpAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class DefaultEditorKit$UpAction; + } + } + } +} + +class javax::swing::text::DefaultEditorKit$UpAction : public ::javax::swing::text::TextAction$VerticalMovementAction +{ + +public: // actually package-private + DefaultEditorKit$UpAction(); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit$UpAction__ diff --git a/libjava/javax/swing/text/DefaultEditorKit.h b/libjava/javax/swing/text/DefaultEditorKit.h new file mode 100644 index 00000000000..281960937e9 --- /dev/null +++ b/libjava/javax/swing/text/DefaultEditorKit.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultEditorKit__ +#define __javax_swing_text_DefaultEditorKit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + namespace text + { + class Caret; + class DefaultEditorKit; + class Document; + class ViewFactory; + } + } + } +} + +class javax::swing::text::DefaultEditorKit : public ::javax::swing::text::EditorKit +{ + +public: + DefaultEditorKit(); + virtual ::javax::swing::text::Caret * createCaret(); + virtual ::javax::swing::text::Document * createDefaultDocument(); + virtual JArray< ::javax::swing::Action * > * getActions(); + virtual ::java::lang::String * getContentType(); + virtual ::javax::swing::text::ViewFactory * getViewFactory(); + virtual void read(::java::io::InputStream *, ::javax::swing::text::Document *, jint); + virtual void read(::java::io::Reader *, ::javax::swing::text::Document *, jint); + virtual void write(::java::io::OutputStream *, ::javax::swing::text::Document *, jint, jint); + virtual void write(::java::io::Writer *, ::javax::swing::text::Document *, jint, jint); +private: + static const jlong serialVersionUID = 9017245433028523428LL; +public: + static ::java::lang::String * backwardAction; + static ::java::lang::String * beepAction; + static ::java::lang::String * beginAction; + static ::java::lang::String * beginLineAction; + static ::java::lang::String * beginParagraphAction; + static ::java::lang::String * beginWordAction; + static ::java::lang::String * copyAction; + static ::java::lang::String * cutAction; + static ::java::lang::String * defaultKeyTypedAction; + static ::java::lang::String * deleteNextCharAction; + static ::java::lang::String * deletePrevCharAction; + static ::java::lang::String * downAction; + static ::java::lang::String * endAction; + static ::java::lang::String * endLineAction; + static ::java::lang::String * EndOfLineStringProperty; + static ::java::lang::String * endParagraphAction; + static ::java::lang::String * endWordAction; + static ::java::lang::String * forwardAction; + static ::java::lang::String * insertBreakAction; + static ::java::lang::String * insertContentAction; + static ::java::lang::String * insertTabAction; + static ::java::lang::String * nextWordAction; + static ::java::lang::String * pageDownAction; + static ::java::lang::String * pageUpAction; + static ::java::lang::String * pasteAction; + static ::java::lang::String * previousWordAction; + static ::java::lang::String * readOnlyAction; + static ::java::lang::String * selectAllAction; + static ::java::lang::String * selectionBackwardAction; + static ::java::lang::String * selectionBeginAction; + static ::java::lang::String * selectionBeginLineAction; + static ::java::lang::String * selectionBeginParagraphAction; + static ::java::lang::String * selectionBeginWordAction; + static ::java::lang::String * selectionDownAction; + static ::java::lang::String * selectionEndAction; + static ::java::lang::String * selectionEndLineAction; + static ::java::lang::String * selectionEndParagraphAction; + static ::java::lang::String * selectionEndWordAction; + static ::java::lang::String * selectionForwardAction; + static ::java::lang::String * selectionNextWordAction; + static ::java::lang::String * selectionPreviousWordAction; + static ::java::lang::String * selectionUpAction; + static ::java::lang::String * selectLineAction; + static ::java::lang::String * selectParagraphAction; + static ::java::lang::String * selectWordAction; + static ::java::lang::String * upAction; + static ::java::lang::String * writableAction; +private: + static JArray< ::javax::swing::Action * > * defaultActions; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultEditorKit__ diff --git a/libjava/javax/swing/text/DefaultFormatter$FormatterDocumentFilter.h b/libjava/javax/swing/text/DefaultFormatter$FormatterDocumentFilter.h new file mode 100644 index 00000000000..090ade49349 --- /dev/null +++ b/libjava/javax/swing/text/DefaultFormatter$FormatterDocumentFilter.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultFormatter$FormatterDocumentFilter__ +#define __javax_swing_text_DefaultFormatter$FormatterDocumentFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class DefaultFormatter; + class DefaultFormatter$FormatterDocumentFilter; + class DocumentFilter$FilterBypass; + } + } + } +} + +class javax::swing::text::DefaultFormatter$FormatterDocumentFilter : public ::javax::swing::text::DocumentFilter +{ + + DefaultFormatter$FormatterDocumentFilter(::javax::swing::text::DefaultFormatter *); +public: + virtual void remove(::javax::swing::text::DocumentFilter$FilterBypass *, jint, jint); + virtual void insertString(::javax::swing::text::DocumentFilter$FilterBypass *, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); + virtual void replace(::javax::swing::text::DocumentFilter$FilterBypass *, jint, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); +private: + void commitIfAllowed(); + void checkValidInput(); +public: // actually package-private + DefaultFormatter$FormatterDocumentFilter(::javax::swing::text::DefaultFormatter *, ::javax::swing::text::DefaultFormatter$FormatterDocumentFilter *); + ::javax::swing::text::DefaultFormatter * __attribute__((aligned(__alignof__( ::javax::swing::text::DocumentFilter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultFormatter$FormatterDocumentFilter__ diff --git a/libjava/javax/swing/text/DefaultFormatter.h b/libjava/javax/swing/text/DefaultFormatter.h new file mode 100644 index 00000000000..858a1efcac8 --- /dev/null +++ b/libjava/javax/swing/text/DefaultFormatter.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultFormatter__ +#define __javax_swing_text_DefaultFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JFormattedTextField; + namespace text + { + class DefaultFormatter; + class DocumentFilter; + } + } + } +} + +class javax::swing::text::DefaultFormatter : public ::javax::swing::JFormattedTextField$AbstractFormatter +{ + +public: + DefaultFormatter(); + virtual void install(::javax::swing::JFormattedTextField *); + virtual jboolean getCommitsOnValidEdit(); + virtual void setCommitsOnValidEdit(jboolean); + virtual jboolean getOverwriteMode(); + virtual void setOverwriteMode(jboolean); + virtual jboolean getAllowsInvalid(); + virtual void setAllowsInvalid(jboolean); + virtual ::java::lang::Class * getValueClass(); + virtual void setValueClass(::java::lang::Class *); + virtual ::java::lang::Object * stringToValue(::java::lang::String *); + virtual ::java::lang::String * valueToString(::java::lang::Object *); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual ::javax::swing::text::DocumentFilter * getDocumentFilter(); +public: // actually package-private + static ::javax::swing::JFormattedTextField * access$0(::javax::swing::text::DefaultFormatter *); +private: + static const jlong serialVersionUID = -355018354457785329LL; +public: // actually package-private + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JFormattedTextField$AbstractFormatter)))) commitsOnValidEdit; + jboolean overwriteMode; + jboolean allowsInvalid; + ::java::lang::Class * valueClass; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultFormatter__ diff --git a/libjava/javax/swing/text/DefaultFormatterFactory.h b/libjava/javax/swing/text/DefaultFormatterFactory.h new file mode 100644 index 00000000000..8e39926a666 --- /dev/null +++ b/libjava/javax/swing/text/DefaultFormatterFactory.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultFormatterFactory__ +#define __javax_swing_text_DefaultFormatterFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JFormattedTextField; + class JFormattedTextField$AbstractFormatter; + namespace text + { + class DefaultFormatterFactory; + } + } + } +} + +class javax::swing::text::DefaultFormatterFactory : public ::javax::swing::JFormattedTextField$AbstractFormatterFactory +{ + +public: + DefaultFormatterFactory(); + DefaultFormatterFactory(::javax::swing::JFormattedTextField$AbstractFormatter *); + DefaultFormatterFactory(::javax::swing::JFormattedTextField$AbstractFormatter *, ::javax::swing::JFormattedTextField$AbstractFormatter *); + DefaultFormatterFactory(::javax::swing::JFormattedTextField$AbstractFormatter *, ::javax::swing::JFormattedTextField$AbstractFormatter *, ::javax::swing::JFormattedTextField$AbstractFormatter *); + DefaultFormatterFactory(::javax::swing::JFormattedTextField$AbstractFormatter *, ::javax::swing::JFormattedTextField$AbstractFormatter *, ::javax::swing::JFormattedTextField$AbstractFormatter *, ::javax::swing::JFormattedTextField$AbstractFormatter *); + virtual ::javax::swing::JFormattedTextField$AbstractFormatter * getDefaultFormatter(); + virtual void setDefaultFormatter(::javax::swing::JFormattedTextField$AbstractFormatter *); + virtual ::javax::swing::JFormattedTextField$AbstractFormatter * getDisplayFormatter(); + virtual void setDisplayFormatter(::javax::swing::JFormattedTextField$AbstractFormatter *); + virtual ::javax::swing::JFormattedTextField$AbstractFormatter * getEditFormatter(); + virtual void setEditFormatter(::javax::swing::JFormattedTextField$AbstractFormatter *); + virtual ::javax::swing::JFormattedTextField$AbstractFormatter * getNullFormatter(); + virtual void setNullFormatter(::javax::swing::JFormattedTextField$AbstractFormatter *); + virtual ::javax::swing::JFormattedTextField$AbstractFormatter * getFormatter(::javax::swing::JFormattedTextField *); +public: // actually package-private + ::javax::swing::JFormattedTextField$AbstractFormatter * __attribute__((aligned(__alignof__( ::javax::swing::JFormattedTextField$AbstractFormatterFactory)))) defaultFormatter; + ::javax::swing::JFormattedTextField$AbstractFormatter * editFormatter; + ::javax::swing::JFormattedTextField$AbstractFormatter * displayFormatter; + ::javax::swing::JFormattedTextField$AbstractFormatter * nullFormatter; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultFormatterFactory__ diff --git a/libjava/javax/swing/text/DefaultHighlighter$DefaultHighlightPainter.h b/libjava/javax/swing/text/DefaultHighlighter$DefaultHighlightPainter.h new file mode 100644 index 00000000000..0baecc9c081 --- /dev/null +++ b/libjava/javax/swing/text/DefaultHighlighter$DefaultHighlightPainter.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultHighlighter$DefaultHighlightPainter__ +#define __javax_swing_text_DefaultHighlighter$DefaultHighlightPainter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultHighlighter$DefaultHighlightPainter; + class JTextComponent; + class View; + } + } + } +} + +class javax::swing::text::DefaultHighlighter$DefaultHighlightPainter : public ::javax::swing::text::LayeredHighlighter$LayerPainter +{ + +public: + DefaultHighlighter$DefaultHighlightPainter(::java::awt::Color *); + virtual ::java::awt::Color * getColor(); + virtual void paint(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *); + virtual ::java::awt::Shape * paintLayer(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *, ::javax::swing::text::View *); +private: + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::text::LayeredHighlighter$LayerPainter)))) color; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultHighlighter$DefaultHighlightPainter__ diff --git a/libjava/javax/swing/text/DefaultHighlighter$HighlightEntry.h b/libjava/javax/swing/text/DefaultHighlighter$HighlightEntry.h new file mode 100644 index 00000000000..439d60491b2 --- /dev/null +++ b/libjava/javax/swing/text/DefaultHighlighter$HighlightEntry.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultHighlighter$HighlightEntry__ +#define __javax_swing_text_DefaultHighlighter$HighlightEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class DefaultHighlighter; + class DefaultHighlighter$HighlightEntry; + class Highlighter$HighlightPainter; + class Position; + } + } + } +} + +class javax::swing::text::DefaultHighlighter$HighlightEntry : public ::java::lang::Object +{ + +public: + DefaultHighlighter$HighlightEntry(::javax::swing::text::DefaultHighlighter *, ::javax::swing::text::Position *, ::javax::swing::text::Position *, ::javax::swing::text::Highlighter$HighlightPainter *); + virtual jint getStartOffset(); + virtual jint getEndOffset(); + virtual ::javax::swing::text::Highlighter$HighlightPainter * getPainter(); +public: // actually package-private + ::javax::swing::text::Position * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p0; + ::javax::swing::text::Position * p1; + ::javax::swing::text::Highlighter$HighlightPainter * painter; + ::javax::swing::text::DefaultHighlighter * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultHighlighter$HighlightEntry__ diff --git a/libjava/javax/swing/text/DefaultHighlighter$LayerHighlightEntry.h b/libjava/javax/swing/text/DefaultHighlighter$LayerHighlightEntry.h new file mode 100644 index 00000000000..15220e242ab --- /dev/null +++ b/libjava/javax/swing/text/DefaultHighlighter$LayerHighlightEntry.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultHighlighter$LayerHighlightEntry__ +#define __javax_swing_text_DefaultHighlighter$LayerHighlightEntry__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultHighlighter; + class DefaultHighlighter$LayerHighlightEntry; + class Highlighter$HighlightPainter; + class JTextComponent; + class Position; + class View; + } + } + } +} + +class javax::swing::text::DefaultHighlighter$LayerHighlightEntry : public ::javax::swing::text::DefaultHighlighter$HighlightEntry +{ + +public: // actually package-private + DefaultHighlighter$LayerHighlightEntry(::javax::swing::text::DefaultHighlighter *, ::javax::swing::text::Position *, ::javax::swing::text::Position *, ::javax::swing::text::Highlighter$HighlightPainter *); + virtual void paintLayeredHighlight(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *, ::javax::swing::text::View *); + ::java::awt::Rectangle * __attribute__((aligned(__alignof__( ::javax::swing::text::DefaultHighlighter$HighlightEntry)))) paintRect; + ::javax::swing::text::DefaultHighlighter * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultHighlighter$LayerHighlightEntry__ diff --git a/libjava/javax/swing/text/DefaultHighlighter.h b/libjava/javax/swing/text/DefaultHighlighter.h new file mode 100644 index 00000000000..a237a131280 --- /dev/null +++ b/libjava/javax/swing/text/DefaultHighlighter.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultHighlighter__ +#define __javax_swing_text_DefaultHighlighter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class DefaultHighlighter; + class Highlighter$Highlight; + class Highlighter$HighlightPainter; + class JTextComponent; + class LayeredHighlighter$LayerPainter; + class View; + } + } + } +} + +class javax::swing::text::DefaultHighlighter : public ::javax::swing::text::LayeredHighlighter +{ + +public: + DefaultHighlighter(); + virtual jboolean getDrawsLayeredHighlights(); + virtual void setDrawsLayeredHighlights(jboolean); +private: + void checkPositions(jint, jint); +public: + virtual void install(::javax::swing::text::JTextComponent *); + virtual void deinstall(::javax::swing::text::JTextComponent *); + virtual ::java::lang::Object * addHighlight(jint, jint, ::javax::swing::text::Highlighter$HighlightPainter *); + virtual void removeHighlight(::java::lang::Object *); + virtual void removeAllHighlights(); + virtual JArray< ::javax::swing::text::Highlighter$Highlight * > * getHighlights(); + virtual void changeHighlight(::java::lang::Object *, jint, jint); + virtual void paintLayeredHighlights(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *, ::javax::swing::text::View *); + virtual void paint(::java::awt::Graphics *); + static ::javax::swing::text::LayeredHighlighter$LayerPainter * DefaultPainter; +private: + ::javax::swing::text::JTextComponent * __attribute__((aligned(__alignof__( ::javax::swing::text::LayeredHighlighter)))) textComponent; + ::java::util::ArrayList * highlights; + jboolean drawsLayeredHighlights; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultHighlighter__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.h b/libjava/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.h new file mode 100644 index 00000000000..ebaf8caa869 --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument$AttributeUndoableEdit__ +#define __javax_swing_text_DefaultStyledDocument$AttributeUndoableEdit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class DefaultStyledDocument$AttributeUndoableEdit; + class Element; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument$AttributeUndoableEdit : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + DefaultStyledDocument$AttributeUndoableEdit(::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *, jboolean); + virtual void undo(); + virtual void redo(); +public: // actually protected + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) copy; + ::javax::swing::text::AttributeSet * newAttributes; + jboolean isReplacing; + ::javax::swing::text::Element * element; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument$AttributeUndoableEdit__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument$Edit.h b/libjava/javax/swing/text/DefaultStyledDocument$Edit.h new file mode 100644 index 00000000000..7d63ab29ef0 --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument$Edit.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument$Edit__ +#define __javax_swing_text_DefaultStyledDocument$Edit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class DefaultStyledDocument; + class DefaultStyledDocument$Edit; + class Element; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument$Edit : public ::java::lang::Object +{ + +public: + virtual JArray< ::javax::swing::text::Element * > * getRemovedElements(); + virtual JArray< ::javax::swing::text::Element * > * getAddedElements(); +private: + jboolean contains(::java::util::Vector *, ::javax::swing::text::Element *); +public: + virtual void addRemovedElement(::javax::swing::text::Element *); + virtual void addRemovedElements(JArray< ::javax::swing::text::Element * > *); + virtual void addAddedElement(::javax::swing::text::Element *); + virtual void addAddedElements(JArray< ::javax::swing::text::Element * > *); + DefaultStyledDocument$Edit(::javax::swing::text::DefaultStyledDocument *, ::javax::swing::text::Element *, jint, JArray< ::javax::swing::text::Element * > *, JArray< ::javax::swing::text::Element * > *); +public: // actually package-private + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) e; + jint index; + ::java::util::Vector * removed; + ::java::util::Vector * added; + ::javax::swing::text::DefaultStyledDocument * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument$Edit__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.h b/libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.h new file mode 100644 index 00000000000..628569976a2 --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument$ElementBuffer$Edit__ +#define __javax_swing_text_DefaultStyledDocument$ElementBuffer$Edit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class DefaultStyledDocument$ElementBuffer; + class DefaultStyledDocument$ElementBuffer$Edit; + class Element; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument$ElementBuffer$Edit : public ::java::lang::Object +{ + +public: // actually package-private + DefaultStyledDocument$ElementBuffer$Edit(::javax::swing::text::DefaultStyledDocument$ElementBuffer *, ::javax::swing::text::Element *, jint); + DefaultStyledDocument$ElementBuffer$Edit(::javax::swing::text::DefaultStyledDocument$ElementBuffer *, ::javax::swing::text::Element *, jint, jboolean); + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) e; + jint index; + ::java::util::ArrayList * removed; + ::java::util::ArrayList * added; + jboolean isFracture; + ::javax::swing::text::DefaultStyledDocument$ElementBuffer * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument$ElementBuffer$Edit__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer.h b/libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer.h new file mode 100644 index 00000000000..17151db0e8b --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument$ElementBuffer.h @@ -0,0 +1,93 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument$ElementBuffer__ +#define __javax_swing_text_DefaultStyledDocument$ElementBuffer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument$DefaultDocumentEvent; + class DefaultStyledDocument; + class DefaultStyledDocument$ElementBuffer; + class DefaultStyledDocument$ElementBuffer$Edit; + class DefaultStyledDocument$ElementSpec; + class Element; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument$ElementBuffer : public ::java::lang::Object +{ + +public: + DefaultStyledDocument$ElementBuffer(::javax::swing::text::DefaultStyledDocument *, ::javax::swing::text::Element *); + virtual ::javax::swing::text::Element * getRootElement(); + virtual void remove(jint, jint, ::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +public: // actually protected + virtual void removeUpdate(); +private: + jboolean removeElements(::javax::swing::text::Element *, jint, jint); +public: // actually package-private + virtual void create(jint, JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *, ::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +private: + jboolean canJoin(::javax::swing::text::Element *, ::javax::swing::text::Element *); + ::javax::swing::text::Element * join(::javax::swing::text::Element *, ::javax::swing::text::Element *, ::javax::swing::text::Element *, jint, jint); +public: // actually protected + virtual void changeUpdate(); +public: + virtual void change(jint, jint, ::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); + virtual ::javax::swing::text::Element * clone(::javax::swing::text::Element *, ::javax::swing::text::Element *); +private: + ::javax::swing::text::Element * cloneAsNecessary(::javax::swing::text::Element *, ::javax::swing::text::Element *, jint, jint); +public: + virtual void insert(jint, jint, JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *, ::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +private: + void prepareEdit(jint, jint); + void finishEdit(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +public: // actually protected + virtual void insertUpdate(JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *); +private: + void pop(); + void insertElement(::javax::swing::text::DefaultStyledDocument$ElementSpec *); + void insertFirstContentTag(JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *); + void insertContentTag(::javax::swing::text::DefaultStyledDocument$ElementSpec *, ::javax::swing::text::DefaultStyledDocument$ElementBuffer$Edit *); + void createFracture(JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *); + void fracture(jint); + void recreate(jint, jint); + ::javax::swing::text::Element * recreateFracturedElement(::javax::swing::text::Element *, ::javax::swing::text::Element *); + jboolean split(jint, jint); + static const jlong serialVersionUID = 1688745877691146623LL; + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) root; + jint offset; + jint endOffset; + jint length; + jint pos; + ::javax::swing::text::Element * fracturedParent; + ::javax::swing::text::Element * fracturedChild; + jboolean createdFracture; + ::java::util::Stack * elementStack; + JArray< ::javax::swing::text::DefaultStyledDocument$ElementBuffer$Edit * > * insertPath; + jboolean recreateLeafs; + ::java::util::ArrayList * edits; + jboolean offsetLastIndex; + jboolean offsetLastIndexReplace; +public: // actually package-private + ::javax::swing::text::DefaultStyledDocument * this$0; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument$ElementBuffer__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument$ElementSpec.h b/libjava/javax/swing/text/DefaultStyledDocument$ElementSpec.h new file mode 100644 index 00000000000..7c2433411b6 --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument$ElementSpec.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument$ElementSpec__ +#define __javax_swing_text_DefaultStyledDocument$ElementSpec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class DefaultStyledDocument$ElementSpec; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument$ElementSpec : public ::java::lang::Object +{ + +public: + DefaultStyledDocument$ElementSpec(::javax::swing::text::AttributeSet *, jshort); + DefaultStyledDocument$ElementSpec(::javax::swing::text::AttributeSet *, jshort, jint); + DefaultStyledDocument$ElementSpec(::javax::swing::text::AttributeSet *, jshort, JArray< jchar > *, jint, jint); + virtual void setType(jshort); + virtual jshort getType(); + virtual void setDirection(jshort); + virtual jshort getDirection(); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual JArray< jchar > * getArray(); + virtual jint getOffset(); + virtual jint getLength(); + virtual ::java::lang::String * toString(); + static const jshort StartTagType = 1; + static const jshort EndTagType = 2; + static const jshort ContentType = 3; + static const jshort JoinPreviousDirection = 4; + static const jshort JoinNextDirection = 5; + static const jshort OriginateDirection = 6; + static const jshort JoinFractureDirection = 7; +public: // actually package-private + jshort __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + jshort direction; + jint offset; + jint length; + JArray< jchar > * content; + ::javax::swing::text::AttributeSet * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument$ElementSpec__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument$SectionElement.h b/libjava/javax/swing/text/DefaultStyledDocument$SectionElement.h new file mode 100644 index 00000000000..969238dc39d --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument$SectionElement.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument$SectionElement__ +#define __javax_swing_text_DefaultStyledDocument$SectionElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class DefaultStyledDocument; + class DefaultStyledDocument$SectionElement; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument$SectionElement : public ::javax::swing::text::AbstractDocument$BranchElement +{ + +public: + DefaultStyledDocument$SectionElement(::javax::swing::text::DefaultStyledDocument *); + virtual ::java::lang::String * getName(); +public: // actually package-private + ::javax::swing::text::DefaultStyledDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument$BranchElement)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument$SectionElement__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument$StyleChangeListener.h b/libjava/javax/swing/text/DefaultStyledDocument$StyleChangeListener.h new file mode 100644 index 00000000000..e3095acf5b6 --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument$StyleChangeListener.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument$StyleChangeListener__ +#define __javax_swing_text_DefaultStyledDocument$StyleChangeListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace text + { + class DefaultStyledDocument; + class DefaultStyledDocument$StyleChangeListener; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument$StyleChangeListener : public ::java::lang::Object +{ + + DefaultStyledDocument$StyleChangeListener(::javax::swing::text::DefaultStyledDocument *); +public: + virtual void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + DefaultStyledDocument$StyleChangeListener(::javax::swing::text::DefaultStyledDocument *, ::javax::swing::text::DefaultStyledDocument$StyleChangeListener *); + ::javax::swing::text::DefaultStyledDocument * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument$StyleChangeListener__ diff --git a/libjava/javax/swing/text/DefaultStyledDocument.h b/libjava/javax/swing/text/DefaultStyledDocument.h new file mode 100644 index 00000000000..8db689f6926 --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultStyledDocument__ +#define __javax_swing_text_DefaultStyledDocument__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument$AbstractElement; + class AbstractDocument$Content; + class AbstractDocument$DefaultDocumentEvent; + class AttributeSet; + class DefaultStyledDocument; + class DefaultStyledDocument$ElementBuffer; + class DefaultStyledDocument$ElementSpec; + class DefaultStyledDocument$StyleChangeListener; + class Element; + class Style; + class StyleContext; + } + } + } +} + +class javax::swing::text::DefaultStyledDocument : public ::javax::swing::text::AbstractDocument +{ + +public: + DefaultStyledDocument(); + DefaultStyledDocument(::javax::swing::text::StyleContext *); + DefaultStyledDocument(::javax::swing::text::AbstractDocument$Content *, ::javax::swing::text::StyleContext *); + virtual ::javax::swing::text::Style * addStyle(::java::lang::String *, ::javax::swing::text::Style *); +public: // actually protected + virtual ::javax::swing::text::AbstractDocument$AbstractElement * createDefaultRoot(); +public: + virtual ::javax::swing::text::Element * getCharacterElement(jint); + virtual ::java::awt::Color * getBackground(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::Element * getDefaultRootElement(); + virtual ::java::awt::Font * getFont(::javax::swing::text::AttributeSet *); + virtual ::java::awt::Color * getForeground(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::Style * getLogicalStyle(jint); + virtual ::javax::swing::text::Element * getParagraphElement(jint); + virtual ::javax::swing::text::Style * getStyle(::java::lang::String *); + virtual void removeStyle(::java::lang::String *); + virtual void setCharacterAttributes(jint, jint, ::javax::swing::text::AttributeSet *, jboolean); + virtual void setLogicalStyle(jint, ::javax::swing::text::Style *); + virtual void setParagraphAttributes(jint, jint, ::javax::swing::text::AttributeSet *, jboolean); +public: // actually protected + virtual void insertUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *, ::javax::swing::text::AttributeSet *); +private: + jshort insertAfterNewline(::javax::swing::text::Element *, ::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *, ::java::util::ArrayList *, jint, jint); +public: // actually package-private + virtual jshort handleInsertAfterNewline(::java::util::Vector *, jint, jint, ::javax::swing::text::Element *, ::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *); +public: // actually protected + virtual void removeUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +public: + virtual ::java::util::Enumeration * getStyleNames(); +public: // actually protected + virtual void styleChanged(::javax::swing::text::Style *); + virtual void insert(jint, JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *); + virtual void create(JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *); +private: + static const jlong serialVersionUID = 940485415728614849LL; +public: + static const jint BUFFER_SIZE_DEFAULT = 4096; +public: // actually protected + ::javax::swing::text::DefaultStyledDocument$ElementBuffer * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument)))) buffer; +private: + ::javax::swing::text::DefaultStyledDocument$StyleChangeListener * styleChangeListener; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultStyledDocument__ diff --git a/libjava/javax/swing/text/DefaultTextUI.h b/libjava/javax/swing/text/DefaultTextUI.h new file mode 100644 index 00000000000..5c211d3040f --- /dev/null +++ b/libjava/javax/swing/text/DefaultTextUI.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DefaultTextUI__ +#define __javax_swing_text_DefaultTextUI__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class DefaultTextUI; + } + } + } +} + +class javax::swing::text::DefaultTextUI : public ::javax::swing::plaf::basic::BasicTextUI +{ + +public: + DefaultTextUI(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DefaultTextUI__ diff --git a/libjava/javax/swing/text/Document.h b/libjava/javax/swing/text/Document.h new file mode 100644 index 00000000000..d68e3e77d89 --- /dev/null +++ b/libjava/javax/swing/text/Document.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Document__ +#define __javax_swing_text_Document__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class DocumentListener; + class UndoableEditListener; + } + namespace text + { + class AttributeSet; + class Document; + class Element; + class Position; + class Segment; + } + } + } +} + +class javax::swing::text::Document : public ::java::lang::Object +{ + +public: + virtual void addDocumentListener(::javax::swing::event::DocumentListener *) = 0; + virtual void addUndoableEditListener(::javax::swing::event::UndoableEditListener *) = 0; + virtual ::javax::swing::text::Position * createPosition(jint) = 0; + virtual ::javax::swing::text::Element * getDefaultRootElement() = 0; + virtual ::javax::swing::text::Position * getEndPosition() = 0; + virtual jint getLength() = 0; + virtual ::java::lang::Object * getProperty(::java::lang::Object *) = 0; + virtual JArray< ::javax::swing::text::Element * > * getRootElements() = 0; + virtual ::javax::swing::text::Position * getStartPosition() = 0; + virtual ::java::lang::String * getText(jint, jint) = 0; + virtual void getText(jint, jint, ::javax::swing::text::Segment *) = 0; + virtual void insertString(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *) = 0; + virtual void putProperty(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual void remove(jint, jint) = 0; + virtual void removeDocumentListener(::javax::swing::event::DocumentListener *) = 0; + virtual void removeUndoableEditListener(::javax::swing::event::UndoableEditListener *) = 0; + virtual void render(::java::lang::Runnable *) = 0; + static ::java::lang::String * StreamDescriptionProperty; + static ::java::lang::String * TitleProperty; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Document__ diff --git a/libjava/javax/swing/text/DocumentFilter$FilterBypass.h b/libjava/javax/swing/text/DocumentFilter$FilterBypass.h new file mode 100644 index 00000000000..4b5c3589d33 --- /dev/null +++ b/libjava/javax/swing/text/DocumentFilter$FilterBypass.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DocumentFilter$FilterBypass__ +#define __javax_swing_text_DocumentFilter$FilterBypass__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Document; + class DocumentFilter$FilterBypass; + } + } + } +} + +class javax::swing::text::DocumentFilter$FilterBypass : public ::java::lang::Object +{ + +public: + DocumentFilter$FilterBypass(); + virtual ::javax::swing::text::Document * getDocument() = 0; + virtual void insertString(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *) = 0; + virtual void remove(jint, jint) = 0; + virtual void replace(jint, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DocumentFilter$FilterBypass__ diff --git a/libjava/javax/swing/text/DocumentFilter.h b/libjava/javax/swing/text/DocumentFilter.h new file mode 100644 index 00000000000..106478aff12 --- /dev/null +++ b/libjava/javax/swing/text/DocumentFilter.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_DocumentFilter__ +#define __javax_swing_text_DocumentFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class DocumentFilter; + class DocumentFilter$FilterBypass; + } + } + } +} + +class javax::swing::text::DocumentFilter : public ::java::lang::Object +{ + +public: + DocumentFilter(); + virtual void insertString(::javax::swing::text::DocumentFilter$FilterBypass *, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); + virtual void remove(::javax::swing::text::DocumentFilter$FilterBypass *, jint, jint); + virtual void replace(::javax::swing::text::DocumentFilter$FilterBypass *, jint, jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_DocumentFilter__ diff --git a/libjava/javax/swing/text/EditorKit.h b/libjava/javax/swing/text/EditorKit.h new file mode 100644 index 00000000000..eaeef504294 --- /dev/null +++ b/libjava/javax/swing/text/EditorKit.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_EditorKit__ +#define __javax_swing_text_EditorKit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + class JEditorPane; + namespace text + { + class Caret; + class Document; + class EditorKit; + class ViewFactory; + } + } + } +} + +class javax::swing::text::EditorKit : public ::java::lang::Object +{ + +public: + EditorKit(); + virtual ::java::lang::Object * clone(); + virtual void deinstall(::javax::swing::JEditorPane *); + virtual void install(::javax::swing::JEditorPane *); + virtual ::javax::swing::text::Caret * createCaret() = 0; + virtual ::javax::swing::text::Document * createDefaultDocument() = 0; + virtual JArray< ::javax::swing::Action * > * getActions() = 0; + virtual ::java::lang::String * getContentType() = 0; + virtual ::javax::swing::text::ViewFactory * getViewFactory() = 0; + virtual void read(::java::io::InputStream *, ::javax::swing::text::Document *, jint) = 0; + virtual void read(::java::io::Reader *, ::javax::swing::text::Document *, jint) = 0; + virtual void write(::java::io::OutputStream *, ::javax::swing::text::Document *, jint, jint) = 0; + virtual void write(::java::io::Writer *, ::javax::swing::text::Document *, jint, jint) = 0; +private: + static const jlong serialVersionUID = -5044124649345887822LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_EditorKit__ diff --git a/libjava/javax/swing/text/Element.h b/libjava/javax/swing/text/Element.h new file mode 100644 index 00000000000..6166044c0ec --- /dev/null +++ b/libjava/javax/swing/text/Element.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Element__ +#define __javax_swing_text_Element__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Document; + class Element; + } + } + } +} + +class javax::swing::text::Element : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::text::AttributeSet * getAttributes() = 0; + virtual ::javax::swing::text::Document * getDocument() = 0; + virtual ::javax::swing::text::Element * getElement(jint) = 0; + virtual jint getElementCount() = 0; + virtual jint getElementIndex(jint) = 0; + virtual jint getEndOffset() = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::swing::text::Element * getParentElement() = 0; + virtual jint getStartOffset() = 0; + virtual jboolean isLeaf() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Element__ diff --git a/libjava/javax/swing/text/ElementIterator$ElementRef.h b/libjava/javax/swing/text/ElementIterator$ElementRef.h new file mode 100644 index 00000000000..dd2c984c44d --- /dev/null +++ b/libjava/javax/swing/text/ElementIterator$ElementRef.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ElementIterator$ElementRef__ +#define __javax_swing_text_ElementIterator$ElementRef__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class ElementIterator; + class ElementIterator$ElementRef; + } + } + } +} + +class javax::swing::text::ElementIterator$ElementRef : public ::java::lang::Object +{ + +public: // actually package-private + ElementIterator$ElementRef(::javax::swing::text::ElementIterator *, ::javax::swing::text::Element *); + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) element; + jint index; + ::javax::swing::text::ElementIterator * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ElementIterator$ElementRef__ diff --git a/libjava/javax/swing/text/ElementIterator.h b/libjava/javax/swing/text/ElementIterator.h new file mode 100644 index 00000000000..1d963602109 --- /dev/null +++ b/libjava/javax/swing/text/ElementIterator.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ElementIterator__ +#define __javax_swing_text_ElementIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Document; + class Element; + class ElementIterator; + } + } + } +} + +class javax::swing::text::ElementIterator : public ::java::lang::Object +{ + +public: + ElementIterator(::javax::swing::text::Document *); + ElementIterator(::javax::swing::text::Element *); + virtual ::java::lang::Object * clone(); + virtual ::javax::swing::text::Element * current(); + virtual jint depth(); + virtual ::javax::swing::text::Element * first(); + virtual ::javax::swing::text::Element * next(); + virtual ::javax::swing::text::Element * previous(); +private: + ::javax::swing::text::Element * deepestLeaf(::javax::swing::text::Element *); + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) root; + ::java::util::Stack * stack; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ElementIterator__ diff --git a/libjava/javax/swing/text/EmptyAttributeSet$1.h b/libjava/javax/swing/text/EmptyAttributeSet$1.h new file mode 100644 index 00000000000..c4a2173de62 --- /dev/null +++ b/libjava/javax/swing/text/EmptyAttributeSet$1.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_EmptyAttributeSet$1__ +#define __javax_swing_text_EmptyAttributeSet$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class EmptyAttributeSet; + class EmptyAttributeSet$1; + } + } + } +} + +class javax::swing::text::EmptyAttributeSet$1 : public ::java::lang::Object +{ + +public: // actually package-private + EmptyAttributeSet$1(::javax::swing::text::EmptyAttributeSet *); +public: + jboolean hasMoreElements(); + ::java::lang::Object * nextElement(); +public: // actually package-private + ::javax::swing::text::EmptyAttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_EmptyAttributeSet$1__ diff --git a/libjava/javax/swing/text/EmptyAttributeSet.h b/libjava/javax/swing/text/EmptyAttributeSet.h new file mode 100644 index 00000000000..e0f19294400 --- /dev/null +++ b/libjava/javax/swing/text/EmptyAttributeSet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_EmptyAttributeSet__ +#define __javax_swing_text_EmptyAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class EmptyAttributeSet; + } + } + } +} + +class javax::swing::text::EmptyAttributeSet : public ::java::lang::Object +{ + +public: // actually package-private + EmptyAttributeSet(); +public: + jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); + jboolean containsAttributes(::javax::swing::text::AttributeSet *); + ::javax::swing::text::AttributeSet * copyAttributes(); + ::java::lang::Object * getAttribute(::java::lang::Object *); + jint getAttributeCount(); + ::java::util::Enumeration * getAttributeNames(); + ::javax::swing::text::AttributeSet * getResolveParent(); + jboolean isDefined(::java::lang::Object *); + jboolean isEqual(::javax::swing::text::AttributeSet *); + jboolean equals(::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_EmptyAttributeSet__ diff --git a/libjava/javax/swing/text/FieldView$1.h b/libjava/javax/swing/text/FieldView$1.h new file mode 100644 index 00000000000..8c0ad8e4bfc --- /dev/null +++ b/libjava/javax/swing/text/FieldView$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_FieldView$1__ +#define __javax_swing_text_FieldView$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace text + { + class FieldView; + class FieldView$1; + } + } + } +} + +class javax::swing::text::FieldView$1 : public ::java::lang::Object +{ + +public: // actually package-private + FieldView$1(::javax::swing::text::FieldView *); +public: + void stateChanged(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::text::FieldView * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_FieldView$1__ diff --git a/libjava/javax/swing/text/FieldView.h b/libjava/javax/swing/text/FieldView.h new file mode 100644 index 00000000000..54cf4fb8272 --- /dev/null +++ b/libjava/javax/swing/text/FieldView.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_FieldView__ +#define __javax_swing_text_FieldView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class FontMetrics; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + class BoundedRangeModel; + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class FieldView; + class Position$Bias; + class ViewFactory; + } + } + } +} + +class javax::swing::text::FieldView : public ::javax::swing::text::PlainView +{ + +public: + FieldView(::javax::swing::text::Element *); +private: + void checkContainer(); + void updateVisibility(); +public: // actually protected + virtual ::java::awt::FontMetrics * getFontMetrics(); + virtual ::java::awt::Shape * adjustAllocation(::java::awt::Shape *); +public: + virtual jfloat getPreferredSpan(jint); +private: + jfloat calculateHorizontalSpan(); +public: + virtual jint getResizeWeight(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +public: // actually package-private + ::javax::swing::BoundedRangeModel * __attribute__((aligned(__alignof__( ::javax::swing::text::PlainView)))) horizontalVisibility; + jfloat cachedSpan; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_FieldView__ diff --git a/libjava/javax/swing/text/FlowView$FlowStrategy.h b/libjava/javax/swing/text/FlowView$FlowStrategy.h new file mode 100644 index 00000000000..c9d567d2f1b --- /dev/null +++ b/libjava/javax/swing/text/FlowView$FlowStrategy.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_FlowView$FlowStrategy__ +#define __javax_swing_text_FlowView$FlowStrategy__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class FlowView; + class FlowView$FlowStrategy; + class View; + } + } + } +} + +class javax::swing::text::FlowView$FlowStrategy : public ::java::lang::Object +{ + +public: + FlowView$FlowStrategy(); + virtual void insertUpdate(::javax::swing::text::FlowView *, ::javax::swing::event::DocumentEvent *, ::java::awt::Rectangle *); + virtual void removeUpdate(::javax::swing::text::FlowView *, ::javax::swing::event::DocumentEvent *, ::java::awt::Rectangle *); + virtual void changedUpdate(::javax::swing::text::FlowView *, ::javax::swing::event::DocumentEvent *, ::java::awt::Rectangle *); +public: // actually protected + virtual ::javax::swing::text::View * getLogicalView(::javax::swing::text::FlowView *); +public: + virtual void layout(::javax::swing::text::FlowView *); +public: // actually protected + virtual jint layoutRow(::javax::swing::text::FlowView *, jint, jint); + virtual ::javax::swing::text::View * createView(::javax::swing::text::FlowView *, jint, jint, jint); + virtual void adjustRow(::javax::swing::text::FlowView *, jint, jint, jint); +private: + jboolean contains(::javax::swing::text::View *, ::javax::swing::text::View *); + void reparent(::javax::swing::text::View *, ::javax::swing::text::View *); +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_FlowView$FlowStrategy__ diff --git a/libjava/javax/swing/text/FlowView$LogicalView.h b/libjava/javax/swing/text/FlowView$LogicalView.h new file mode 100644 index 00000000000..271b4ef4a8e --- /dev/null +++ b/libjava/javax/swing/text/FlowView$LogicalView.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_FlowView$LogicalView__ +#define __javax_swing_text_FlowView$LogicalView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class AttributeSet; + class Element; + class FlowView; + class FlowView$LogicalView; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::FlowView$LogicalView : public ::javax::swing::text::CompositeView +{ + +public: // actually package-private + FlowView$LogicalView(::javax::swing::text::FlowView *, ::javax::swing::text::Element *); +public: + virtual ::javax::swing::text::AttributeSet * getAttributes(); +public: // actually protected + virtual void childAllocation(jint, ::java::awt::Rectangle *); + virtual ::javax::swing::text::View * getViewAtPoint(jint, jint, ::java::awt::Rectangle *); + virtual jboolean isAfter(jint, jint, ::java::awt::Rectangle *); + virtual jboolean isBefore(jint, jint, ::java::awt::Rectangle *); +public: + virtual jfloat getPreferredSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); +public: // actually protected + virtual void loadChildren(::javax::swing::text::ViewFactory *); + virtual void forwardUpdateToView(::javax::swing::text::View *, ::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual jint getViewIndexAtPosition(jint); +public: // actually package-private + ::javax::swing::text::FlowView * __attribute__((aligned(__alignof__( ::javax::swing::text::CompositeView)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_FlowView$LogicalView__ diff --git a/libjava/javax/swing/text/FlowView.h b/libjava/javax/swing/text/FlowView.h new file mode 100644 index 00000000000..76535791569 --- /dev/null +++ b/libjava/javax/swing/text/FlowView.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_FlowView__ +#define __javax_swing_text_FlowView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Shape; + } + } + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class FlowView; + class FlowView$FlowStrategy; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::FlowView : public ::javax::swing::text::BoxView +{ + +public: + FlowView(::javax::swing::text::Element *, jint); + virtual jint getFlowAxis(); + virtual jint getFlowSpan(jint); + virtual jint getFlowStart(jint); +public: // actually protected + virtual ::javax::swing::text::View * createRow() = 0; + virtual void loadChildren(::javax::swing::text::ViewFactory *); + virtual void layout(jint, jint); +public: + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: // actually protected + virtual jint getViewIndexAtPosition(jint); + virtual ::javax::swing::SizeRequirements * calculateMinorAxisRequirements(jint, ::javax::swing::SizeRequirements *); +public: // actually package-private + static ::javax::swing::text::FlowView$FlowStrategy * sharedStrategy; +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) layoutSpan; + ::javax::swing::text::View * layoutPool; + ::javax::swing::text::FlowView$FlowStrategy * strategy; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_FlowView__ diff --git a/libjava/javax/swing/text/GapContent$GapContentPosition.h b/libjava/javax/swing/text/GapContent$GapContentPosition.h new file mode 100644 index 00000000000..a1d7afa6667 --- /dev/null +++ b/libjava/javax/swing/text/GapContent$GapContentPosition.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GapContent$GapContentPosition__ +#define __javax_swing_text_GapContent$GapContentPosition__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class GapContent; + class GapContent$GapContentPosition; + class GapContent$Mark; + } + } + } +} + +class javax::swing::text::GapContent$GapContentPosition : public ::java::lang::Object +{ + +public: // actually package-private + GapContent$GapContentPosition(::javax::swing::text::GapContent *); +public: + virtual jint getOffset(); +public: // actually package-private + ::javax::swing::text::GapContent$Mark * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mark; + ::javax::swing::text::GapContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GapContent$GapContentPosition__ diff --git a/libjava/javax/swing/text/GapContent$InsertUndo.h b/libjava/javax/swing/text/GapContent$InsertUndo.h new file mode 100644 index 00000000000..f36085d3cb8 --- /dev/null +++ b/libjava/javax/swing/text/GapContent$InsertUndo.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GapContent$InsertUndo__ +#define __javax_swing_text_GapContent$InsertUndo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class GapContent; + class GapContent$InsertUndo; + } + } + } +} + +class javax::swing::text::GapContent$InsertUndo : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + GapContent$InsertUndo(::javax::swing::text::GapContent *, jint, jint); + virtual void undo(); + virtual void redo(); + jint __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) where; + jint length; +public: // actually package-private + ::java::lang::String * text; +private: + ::java::util::Vector * positions; +public: // actually package-private + ::javax::swing::text::GapContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GapContent$InsertUndo__ diff --git a/libjava/javax/swing/text/GapContent$Mark.h b/libjava/javax/swing/text/GapContent$Mark.h new file mode 100644 index 00000000000..35671023314 --- /dev/null +++ b/libjava/javax/swing/text/GapContent$Mark.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GapContent$Mark__ +#define __javax_swing_text_GapContent$Mark__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class GapContent; + class GapContent$GapContentPosition; + class GapContent$Mark; + } + } + } +} + +class javax::swing::text::GapContent$Mark : public ::java::lang::ref::WeakReference +{ + +public: // actually package-private + GapContent$Mark(::javax::swing::text::GapContent *, jint); + GapContent$Mark(::javax::swing::text::GapContent *, jint, ::javax::swing::text::GapContent$GapContentPosition *, ::java::lang::ref::ReferenceQueue *); + virtual jint getOffset(); + virtual ::javax::swing::text::GapContent$GapContentPosition * getPosition(); + jint __attribute__((aligned(__alignof__( ::java::lang::ref::WeakReference)))) mark; + ::javax::swing::text::GapContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GapContent$Mark__ diff --git a/libjava/javax/swing/text/GapContent$UndoPosRef.h b/libjava/javax/swing/text/GapContent$UndoPosRef.h new file mode 100644 index 00000000000..bd0629ac8ca --- /dev/null +++ b/libjava/javax/swing/text/GapContent$UndoPosRef.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GapContent$UndoPosRef__ +#define __javax_swing_text_GapContent$UndoPosRef__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class GapContent; + class GapContent$Mark; + class GapContent$UndoPosRef; + } + } + } +} + +class javax::swing::text::GapContent$UndoPosRef : public ::java::lang::Object +{ + +public: // actually package-private + GapContent$UndoPosRef(::javax::swing::text::GapContent *, ::javax::swing::text::GapContent$Mark *); + virtual void reset(); +private: + ::javax::swing::text::GapContent$Mark * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mark; + jint undoOffset; +public: // actually package-private + ::javax::swing::text::GapContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GapContent$UndoPosRef__ diff --git a/libjava/javax/swing/text/GapContent$UndoRemove.h b/libjava/javax/swing/text/GapContent$UndoRemove.h new file mode 100644 index 00000000000..f5f8d6ae423 --- /dev/null +++ b/libjava/javax/swing/text/GapContent$UndoRemove.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GapContent$UndoRemove__ +#define __javax_swing_text_GapContent$UndoRemove__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class GapContent; + class GapContent$UndoRemove; + } + } + } +} + +class javax::swing::text::GapContent$UndoRemove : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + GapContent$UndoRemove(::javax::swing::text::GapContent *, jint, ::java::lang::String *); + virtual void undo(); + virtual void redo(); + jint __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) where; +public: // actually package-private + ::java::lang::String * text; +private: + ::java::util::Vector * positions; +public: // actually package-private + ::javax::swing::text::GapContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GapContent$UndoRemove__ diff --git a/libjava/javax/swing/text/GapContent.h b/libjava/javax/swing/text/GapContent.h new file mode 100644 index 00000000000..44a26ef5385 --- /dev/null +++ b/libjava/javax/swing/text/GapContent.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GapContent__ +#define __javax_swing_text_GapContent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class GapContent; + class GapContent$Mark; + class Position; + class Segment; + } + namespace undo + { + class UndoableEdit; + } + } + } +} + +class javax::swing::text::GapContent : public ::java::lang::Object +{ + +public: + GapContent(); + GapContent(jint); +public: // actually protected + virtual ::java::lang::Object * allocateArray(jint); + virtual jint getArrayLength(); +public: + virtual jint length(); + virtual ::javax::swing::undo::UndoableEdit * insertString(jint, ::java::lang::String *); + virtual ::javax::swing::undo::UndoableEdit * remove(jint, jint); + virtual ::java::lang::String * getString(jint, jint); + virtual void getChars(jint, jint, ::javax::swing::text::Segment *); + virtual ::javax::swing::text::Position * createPosition(jint); +public: // actually protected + virtual void shiftEnd(jint); + virtual void shiftGap(jint); + virtual void shiftGapStartDown(jint); + virtual void shiftGapEndUp(jint); + virtual ::java::lang::Object * getArray(); + virtual void replace(jint, jint, ::java::lang::Object *, jint); +private: + void removeImpl(jint, jint); + jint addImpl(jint, jint); +public: // actually protected + virtual jint getGapStart(); + virtual jint getGapEnd(); + virtual ::java::util::Vector * getPositionsInRange(::java::util::Vector *, jint, jint); + virtual void resetMarksAtZero(); + virtual void updateUndoPositions(::java::util::Vector *, jint, jint); +private: + void dump(); + void dumpMarks(); +public: // actually package-private + virtual jint search(::javax::swing::text::GapContent$Mark *); +private: + jint searchFirst(jint); + jint compare(::javax::swing::text::GapContent$Mark *, ::javax::swing::text::GapContent$Mark *); + void garbageCollect(); + static const jlong serialVersionUID = -6226052713477823730LL; +public: // actually package-private + static const jint DEFAULT_BUFSIZE = 10; + JArray< jchar > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + jint gapStart; + jint gapEnd; + ::java::util::ArrayList * marks; +private: + jint garbageMarks; + ::javax::swing::text::GapContent$Mark * searchMark; +public: // actually package-private + ::java::lang::ref::ReferenceQueue * queueOfDeath; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GapContent__ diff --git a/libjava/javax/swing/text/GlyphView$DefaultGlyphPainter.h b/libjava/javax/swing/text/GlyphView$DefaultGlyphPainter.h new file mode 100644 index 00000000000..7a9c8a6b708 --- /dev/null +++ b/libjava/javax/swing/text/GlyphView$DefaultGlyphPainter.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GlyphView$DefaultGlyphPainter__ +#define __javax_swing_text_GlyphView$DefaultGlyphPainter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class FontMetrics; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class GlyphView; + class GlyphView$DefaultGlyphPainter; + class Position$Bias; + class TabExpander; + } + } + } +} + +class javax::swing::text::GlyphView$DefaultGlyphPainter : public ::javax::swing::text::GlyphView$GlyphPainter +{ + +public: // actually package-private + GlyphView$DefaultGlyphPainter(); +public: + virtual jfloat getHeight(::javax::swing::text::GlyphView *); + virtual void paint(::javax::swing::text::GlyphView *, ::java::awt::Graphics *, ::java::awt::Shape *, jint, jint); + virtual ::java::awt::Shape * modelToView(::javax::swing::text::GlyphView *, jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *); + virtual jfloat getSpan(::javax::swing::text::GlyphView *, jint, jint, ::javax::swing::text::TabExpander *, jfloat); + virtual jfloat getAscent(::javax::swing::text::GlyphView *); + virtual jfloat getDescent(::javax::swing::text::GlyphView *); + virtual jint getBoundedPosition(::javax::swing::text::GlyphView *, jint, jfloat, jfloat); + virtual jint viewToModel(::javax::swing::text::GlyphView *, jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +private: + void updateFontMetrics(::javax::swing::text::GlyphView *); +public: // actually package-private + ::java::awt::FontMetrics * __attribute__((aligned(__alignof__( ::javax::swing::text::GlyphView$GlyphPainter)))) fontMetrics; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GlyphView$DefaultGlyphPainter__ diff --git a/libjava/javax/swing/text/GlyphView$GlyphPainter.h b/libjava/javax/swing/text/GlyphView$GlyphPainter.h new file mode 100644 index 00000000000..ada0b57bfa5 --- /dev/null +++ b/libjava/javax/swing/text/GlyphView$GlyphPainter.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GlyphView$GlyphPainter__ +#define __javax_swing_text_GlyphView$GlyphPainter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class GlyphView; + class GlyphView$GlyphPainter; + class Position$Bias; + class TabExpander; + } + } + } +} + +class javax::swing::text::GlyphView$GlyphPainter : public ::java::lang::Object +{ + +public: + GlyphView$GlyphPainter(); + virtual jfloat getAscent(::javax::swing::text::GlyphView *) = 0; + virtual jfloat getDescent(::javax::swing::text::GlyphView *) = 0; + virtual jfloat getHeight(::javax::swing::text::GlyphView *) = 0; + virtual jint getBoundedPosition(::javax::swing::text::GlyphView *, jint, jfloat, jfloat) = 0; + virtual void paint(::javax::swing::text::GlyphView *, ::java::awt::Graphics *, ::java::awt::Shape *, jint, jint) = 0; + virtual ::java::awt::Shape * modelToView(::javax::swing::text::GlyphView *, jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *) = 0; + virtual jint viewToModel(::javax::swing::text::GlyphView *, jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *) = 0; + virtual jfloat getSpan(::javax::swing::text::GlyphView *, jint, jint, ::javax::swing::text::TabExpander *, jfloat) = 0; + virtual jint getNextVisualPositionFrom(::javax::swing::text::GlyphView *, jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + virtual ::javax::swing::text::GlyphView$GlyphPainter * getPainter(::javax::swing::text::GlyphView *, jint, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GlyphView$GlyphPainter__ diff --git a/libjava/javax/swing/text/GlyphView$J2DGlyphPainter.h b/libjava/javax/swing/text/GlyphView$J2DGlyphPainter.h new file mode 100644 index 00000000000..a93512ae58f --- /dev/null +++ b/libjava/javax/swing/text/GlyphView$J2DGlyphPainter.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GlyphView$J2DGlyphPainter__ +#define __javax_swing_text_GlyphView$J2DGlyphPainter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Font; + class Graphics; + class Shape; + namespace font + { + class FontRenderContext; + class TextLayout; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class GlyphView; + class GlyphView$GlyphPainter; + class GlyphView$J2DGlyphPainter; + class Position$Bias; + class TabExpander; + } + } + } +} + +class javax::swing::text::GlyphView$J2DGlyphPainter : public ::javax::swing::text::GlyphView$GlyphPainter +{ + +public: // actually package-private + GlyphView$J2DGlyphPainter(::java::lang::String *, ::java::awt::Font *, ::java::awt::font::FontRenderContext *); +public: + virtual ::javax::swing::text::GlyphView$GlyphPainter * getPainter(::javax::swing::text::GlyphView *, jint, jint); + virtual jfloat getAscent(::javax::swing::text::GlyphView *); + virtual jint getBoundedPosition(::javax::swing::text::GlyphView *, jint, jfloat, jfloat); + virtual jfloat getDescent(::javax::swing::text::GlyphView *); + virtual jfloat getHeight(::javax::swing::text::GlyphView *); + virtual jfloat getSpan(::javax::swing::text::GlyphView *, jint, jint, ::javax::swing::text::TabExpander *, jfloat); + virtual ::java::awt::Shape * modelToView(::javax::swing::text::GlyphView *, jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *); + virtual void paint(::javax::swing::text::GlyphView *, ::java::awt::Graphics *, ::java::awt::Shape *, jint, jint); + virtual jint viewToModel(::javax::swing::text::GlyphView *, jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +public: // actually package-private + ::java::awt::font::TextLayout * __attribute__((aligned(__alignof__( ::javax::swing::text::GlyphView$GlyphPainter)))) textLayout; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GlyphView$J2DGlyphPainter__ diff --git a/libjava/javax/swing/text/GlyphView.h b/libjava/javax/swing/text/GlyphView.h new file mode 100644 index 00000000000..e63c5077e77 --- /dev/null +++ b/libjava/javax/swing/text/GlyphView.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_GlyphView__ +#define __javax_swing_text_GlyphView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class GlyphView; + class GlyphView$GlyphPainter; + class Position$Bias; + class Segment; + class TabExpander; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::GlyphView : public ::javax::swing::text::View +{ + +public: + GlyphView(::javax::swing::text::Element *); + virtual ::javax::swing::text::GlyphView$GlyphPainter * getGlyphPainter(); + virtual void setGlyphPainter(::javax::swing::text::GlyphView$GlyphPainter *); +public: // actually protected + virtual void checkPainter(); +public: + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual jfloat getPreferredSpan(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual ::javax::swing::text::TabExpander * getTabExpander(); + virtual jfloat getTabbedSpan(jfloat, ::javax::swing::text::TabExpander *); + virtual jfloat getPartialSpan(jint, jint); + virtual jint getStartOffset(); + virtual jint getEndOffset(); + virtual ::javax::swing::text::Segment * getText(jint, jint); + virtual ::java::awt::Font * getFont(); + virtual ::java::awt::Color * getForeground(); + virtual ::java::awt::Color * getBackground(); + virtual jboolean isStrikeThrough(); + virtual jboolean isSubscript(); + virtual jboolean isSuperscript(); + virtual jboolean isUnderline(); +public: // actually protected + virtual ::java::lang::Object * clone(); +public: + virtual ::javax::swing::text::View * breakView(jint, jint, jfloat, jfloat); + virtual jint getBreakWeight(jint, jfloat, jfloat); +private: + jint getBreakLocation(jint, jint); +public: + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual ::javax::swing::text::View * createFragment(jint, jint); + virtual jfloat getAlignment(jint); + virtual jint getNextVisualPositionFrom(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); +public: // actually package-private + ::javax::swing::text::GlyphView$GlyphPainter * __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) glyphPainter; +private: + jint offset; + jint length; + jfloat tabX; + ::javax::swing::text::TabExpander * tabExpander; + ::javax::swing::text::Segment * cached; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_GlyphView__ diff --git a/libjava/javax/swing/text/Highlighter$Highlight.h b/libjava/javax/swing/text/Highlighter$Highlight.h new file mode 100644 index 00000000000..92ae0f430ef --- /dev/null +++ b/libjava/javax/swing/text/Highlighter$Highlight.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Highlighter$Highlight__ +#define __javax_swing_text_Highlighter$Highlight__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Highlighter$Highlight; + class Highlighter$HighlightPainter; + } + } + } +} + +class javax::swing::text::Highlighter$Highlight : public ::java::lang::Object +{ + +public: + virtual jint getEndOffset() = 0; + virtual jint getStartOffset() = 0; + virtual ::javax::swing::text::Highlighter$HighlightPainter * getPainter() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Highlighter$Highlight__ diff --git a/libjava/javax/swing/text/Highlighter$HighlightPainter.h b/libjava/javax/swing/text/Highlighter$HighlightPainter.h new file mode 100644 index 00000000000..8a0987579bf --- /dev/null +++ b/libjava/javax/swing/text/Highlighter$HighlightPainter.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Highlighter$HighlightPainter__ +#define __javax_swing_text_Highlighter$HighlightPainter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Highlighter$HighlightPainter; + class JTextComponent; + } + } + } +} + +class javax::swing::text::Highlighter$HighlightPainter : public ::java::lang::Object +{ + +public: + virtual void paint(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Highlighter$HighlightPainter__ diff --git a/libjava/javax/swing/text/Highlighter.h b/libjava/javax/swing/text/Highlighter.h new file mode 100644 index 00000000000..2f947d226d2 --- /dev/null +++ b/libjava/javax/swing/text/Highlighter.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Highlighter__ +#define __javax_swing_text_Highlighter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Highlighter; + class Highlighter$Highlight; + class Highlighter$HighlightPainter; + class JTextComponent; + } + } + } +} + +class javax::swing::text::Highlighter : public ::java::lang::Object +{ + +public: + virtual void install(::javax::swing::text::JTextComponent *) = 0; + virtual void deinstall(::javax::swing::text::JTextComponent *) = 0; + virtual ::java::lang::Object * addHighlight(jint, jint, ::javax::swing::text::Highlighter$HighlightPainter *) = 0; + virtual void removeAllHighlights() = 0; + virtual void removeHighlight(::java::lang::Object *) = 0; + virtual void changeHighlight(::java::lang::Object *, jint, jint) = 0; + virtual JArray< ::javax::swing::text::Highlighter$Highlight * > * getHighlights() = 0; + virtual void paint(::java::awt::Graphics *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Highlighter__ diff --git a/libjava/javax/swing/text/IconView.h b/libjava/javax/swing/text/IconView.h new file mode 100644 index 00000000000..cc47c48a248 --- /dev/null +++ b/libjava/javax/swing/text/IconView.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_IconView__ +#define __javax_swing_text_IconView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class IconView; + class Position$Bias; + } + } + } +} + +class javax::swing::text::IconView : public ::javax::swing::text::View +{ + +public: + IconView(::javax::swing::text::Element *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual jfloat getPreferredSpan(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual jfloat getAlignment(jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_IconView__ diff --git a/libjava/javax/swing/text/InternationalFormatter.h b/libjava/javax/swing/text/InternationalFormatter.h new file mode 100644 index 00000000000..48f4726d6c5 --- /dev/null +++ b/libjava/javax/swing/text/InternationalFormatter.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_InternationalFormatter__ +#define __javax_swing_text_InternationalFormatter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace text + { + class Format; + class Format$Field; + } + } + namespace javax + { + namespace swing + { + class Action; + class JFormattedTextField; + namespace text + { + class InternationalFormatter; + } + } + } +} + +class javax::swing::text::InternationalFormatter : public ::javax::swing::text::DefaultFormatter +{ + +public: + InternationalFormatter(); + InternationalFormatter(::java::text::Format *); + virtual void setFormat(::java::text::Format *); + virtual ::java::text::Format * getFormat(); + virtual void setMinimum(::java::lang::Comparable *); + virtual ::java::lang::Comparable * getMinimum(); + virtual void setMaximum(::java::lang::Comparable *); + virtual ::java::lang::Comparable * getMaximum(); + virtual void install(::javax::swing::JFormattedTextField *); + virtual ::java::lang::String * valueToString(::java::lang::Object *); + virtual ::java::lang::Object * stringToValue(::java::lang::String *); + virtual JArray< ::java::text::Format$Field * > * getFields(jint); +public: // actually protected + virtual JArray< ::javax::swing::Action * > * getActions(); +private: + static const jlong serialVersionUID = 2436068675711756856LL; +public: // actually package-private + ::java::text::Format * __attribute__((aligned(__alignof__( ::javax::swing::text::DefaultFormatter)))) format; + ::java::lang::Comparable * minimum; + ::java::lang::Comparable * maximum; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_InternationalFormatter__ diff --git a/libjava/javax/swing/text/JTextComponent$AccessibleJTextComponent.h b/libjava/javax/swing/text/JTextComponent$AccessibleJTextComponent.h new file mode 100644 index 00000000000..ea8552a664a --- /dev/null +++ b/libjava/javax/swing/text/JTextComponent$AccessibleJTextComponent.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_JTextComponent$AccessibleJTextComponent__ +#define __javax_swing_text_JTextComponent$AccessibleJTextComponent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Point; + class Rectangle; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleEditableText; + class AccessibleRole; + class AccessibleStateSet; + class AccessibleText; + } + namespace swing + { + namespace event + { + class CaretEvent; + class DocumentEvent; + } + namespace text + { + class AttributeSet; + class JTextComponent; + class JTextComponent$AccessibleJTextComponent; + } + } + } +} + +class javax::swing::text::JTextComponent$AccessibleJTextComponent : public ::javax::swing::JComponent$AccessibleJComponent +{ + +public: + JTextComponent$AccessibleJTextComponent(::javax::swing::text::JTextComponent *); + virtual jint getCaretPosition(); + virtual ::java::lang::String * getSelectedText(); + virtual jint getSelectionStart(); + virtual jint getSelectionEnd(); + virtual void caretUpdate(::javax::swing::event::CaretEvent *); + virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet(); + virtual ::javax::accessibility::AccessibleRole * getAccessibleRole(); + virtual ::javax::accessibility::AccessibleEditableText * getAccessibleEditableText(); + virtual ::javax::accessibility::AccessibleText * getAccessibleText(); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *); + virtual jint getIndexAtPoint(::java::awt::Point *); + virtual ::java::awt::Rectangle * getCharacterBounds(jint); + virtual jint getCharCount(); + virtual ::javax::swing::text::AttributeSet * getCharacterAttribute(jint); + virtual ::java::lang::String * getAtIndex(jint, jint); + virtual ::java::lang::String * getAfterIndex(jint, jint); + virtual ::java::lang::String * getBeforeIndex(jint, jint); +private: + ::java::lang::String * getAtIndexImpl(jint, jint, jint); +public: + virtual jint getAccessibleActionCount(); + virtual ::java::lang::String * getAccessibleActionDescription(jint); + virtual jboolean doAccessibleAction(jint); + virtual void setTextContents(::java::lang::String *); + virtual void insertTextAtIndex(jint, ::java::lang::String *); + virtual ::java::lang::String * getTextRange(jint, jint); + virtual void delete$(jint, jint); + virtual void cut(jint, jint); + virtual void paste(jint); + virtual void replaceText(jint, jint, ::java::lang::String *); + virtual void selectText(jint, jint); + virtual void setAttributes(jint, jint, ::javax::swing::text::AttributeSet *); +private: + static const jlong serialVersionUID = 7664188944091413696LL; + jint __attribute__((aligned(__alignof__( ::javax::swing::JComponent$AccessibleJComponent)))) caretDot; +public: // actually package-private + ::javax::swing::text::JTextComponent * this$0; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_JTextComponent$AccessibleJTextComponent__ diff --git a/libjava/javax/swing/text/JTextComponent$DefaultKeymap.h b/libjava/javax/swing/text/JTextComponent$DefaultKeymap.h new file mode 100644 index 00000000000..0e61fb476b7 --- /dev/null +++ b/libjava/javax/swing/text/JTextComponent$DefaultKeymap.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_JTextComponent$DefaultKeymap__ +#define __javax_swing_text_JTextComponent$DefaultKeymap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + class KeyStroke; + namespace text + { + class JTextComponent$DefaultKeymap; + class Keymap; + } + } + } +} + +class javax::swing::text::JTextComponent$DefaultKeymap : public ::java::lang::Object +{ + +public: + JTextComponent$DefaultKeymap(::java::lang::String *); + virtual void addActionForKeyStroke(::javax::swing::KeyStroke *, ::javax::swing::Action *); + virtual ::javax::swing::Action * getAction(::javax::swing::KeyStroke *); + virtual JArray< ::javax::swing::Action * > * getBoundActions(); + virtual JArray< ::javax::swing::KeyStroke * > * getBoundKeyStrokes(); + virtual ::javax::swing::Action * getDefaultAction(); + virtual JArray< ::javax::swing::KeyStroke * > * getKeyStrokesForAction(::javax::swing::Action *); + virtual ::java::lang::String * getName(); + virtual ::javax::swing::text::Keymap * getResolveParent(); + virtual jboolean isLocallyDefined(::javax::swing::KeyStroke *); + virtual void removeBindings(); + virtual void removeKeyStrokeBinding(::javax::swing::KeyStroke *); + virtual void setDefaultAction(::javax::swing::Action *); + virtual void setResolveParent(::javax::swing::text::Keymap *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::javax::swing::text::Keymap * parent; + ::java::util::Hashtable * map; + ::javax::swing::Action * defaultAction; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_JTextComponent$DefaultKeymap__ diff --git a/libjava/javax/swing/text/JTextComponent$DefaultTransferHandler.h b/libjava/javax/swing/text/JTextComponent$DefaultTransferHandler.h new file mode 100644 index 00000000000..bdd3c56a82b --- /dev/null +++ b/libjava/javax/swing/text/JTextComponent$DefaultTransferHandler.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_JTextComponent$DefaultTransferHandler__ +#define __javax_swing_text_JTextComponent$DefaultTransferHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace datatransfer + { + class Clipboard; + class DataFlavor; + class Transferable; + } + } + } + namespace javax + { + namespace swing + { + class JComponent; + namespace text + { + class JTextComponent; + class JTextComponent$DefaultTransferHandler; + } + } + } +} + +class javax::swing::text::JTextComponent$DefaultTransferHandler : public ::javax::swing::TransferHandler +{ + +public: // actually package-private + JTextComponent$DefaultTransferHandler(::javax::swing::text::JTextComponent *); +public: + virtual jboolean canImport(::javax::swing::JComponent *, JArray< ::java::awt::datatransfer::DataFlavor * > *); + virtual void exportToClipboard(::javax::swing::JComponent *, ::java::awt::datatransfer::Clipboard *, jint); + virtual jint getSourceActions(); + virtual jboolean importData(::javax::swing::JComponent *, ::java::awt::datatransfer::Transferable *); +public: // actually package-private + ::javax::swing::text::JTextComponent * __attribute__((aligned(__alignof__( ::javax::swing::TransferHandler)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_JTextComponent$DefaultTransferHandler__ diff --git a/libjava/javax/swing/text/JTextComponent$KeyBinding.h b/libjava/javax/swing/text/JTextComponent$KeyBinding.h new file mode 100644 index 00000000000..e3565c96fed --- /dev/null +++ b/libjava/javax/swing/text/JTextComponent$KeyBinding.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_JTextComponent$KeyBinding__ +#define __javax_swing_text_JTextComponent$KeyBinding__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class KeyStroke; + namespace text + { + class JTextComponent$KeyBinding; + } + } + } +} + +class javax::swing::text::JTextComponent$KeyBinding : public ::java::lang::Object +{ + +public: + JTextComponent$KeyBinding(::javax::swing::KeyStroke *, ::java::lang::String *); + ::javax::swing::KeyStroke * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key; + ::java::lang::String * actionName; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_JTextComponent$KeyBinding__ diff --git a/libjava/javax/swing/text/JTextComponent$KeymapActionMap.h b/libjava/javax/swing/text/JTextComponent$KeymapActionMap.h new file mode 100644 index 00000000000..9496d66b3d0 --- /dev/null +++ b/libjava/javax/swing/text/JTextComponent$KeymapActionMap.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_JTextComponent$KeymapActionMap__ +#define __javax_swing_text_JTextComponent$KeymapActionMap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + namespace text + { + class JTextComponent; + class JTextComponent$KeymapActionMap; + class Keymap; + } + } + } +} + +class javax::swing::text::JTextComponent$KeymapActionMap : public ::javax::swing::ActionMap +{ + +public: + JTextComponent$KeymapActionMap(::javax::swing::text::JTextComponent *, ::javax::swing::text::Keymap *); + virtual ::javax::swing::Action * get(::java::lang::Object *); + virtual jint size(); + virtual JArray< ::java::lang::Object * > * keys(); + virtual JArray< ::java::lang::Object * > * allKeys(); +public: // actually package-private + ::javax::swing::text::Keymap * __attribute__((aligned(__alignof__( ::javax::swing::ActionMap)))) map; + ::javax::swing::text::JTextComponent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_JTextComponent$KeymapActionMap__ diff --git a/libjava/javax/swing/text/JTextComponent$KeymapWrapper.h b/libjava/javax/swing/text/JTextComponent$KeymapWrapper.h new file mode 100644 index 00000000000..07e02f3ffe1 --- /dev/null +++ b/libjava/javax/swing/text/JTextComponent$KeymapWrapper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_JTextComponent$KeymapWrapper__ +#define __javax_swing_text_JTextComponent$KeymapWrapper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class KeyStroke; + namespace text + { + class JTextComponent; + class JTextComponent$KeymapWrapper; + class Keymap; + } + } + } +} + +class javax::swing::text::JTextComponent$KeymapWrapper : public ::javax::swing::InputMap +{ + +public: + JTextComponent$KeymapWrapper(::javax::swing::text::JTextComponent *, ::javax::swing::text::Keymap *); + virtual jint size(); + virtual ::java::lang::Object * get(::javax::swing::KeyStroke *); + virtual JArray< ::javax::swing::KeyStroke * > * keys(); + virtual JArray< ::javax::swing::KeyStroke * > * allKeys(); +public: // actually package-private + ::javax::swing::text::Keymap * __attribute__((aligned(__alignof__( ::javax::swing::InputMap)))) map; + ::javax::swing::text::JTextComponent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_JTextComponent$KeymapWrapper__ diff --git a/libjava/javax/swing/text/JTextComponent.h b/libjava/javax/swing/text/JTextComponent.h new file mode 100644 index 00000000000..cbaec01315a --- /dev/null +++ b/libjava/javax/swing/text/JTextComponent.h @@ -0,0 +1,173 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_JTextComponent__ +#define __javax_swing_text_JTextComponent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Dimension; + class Insets; + class Point; + class Rectangle; + namespace event + { + class InputMethodListener; + class MouseEvent; + } + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + namespace event + { + class CaretEvent; + class CaretListener; + } + namespace plaf + { + class TextUI; + } + namespace text + { + class Caret; + class Document; + class Highlighter; + class JTextComponent; + class JTextComponent$DefaultTransferHandler; + class JTextComponent$KeyBinding; + class Keymap; + class NavigationFilter; + } + } + } +} + +class javax::swing::text::JTextComponent : public ::javax::swing::JComponent +{ + +public: + static ::javax::swing::text::Keymap * getKeymap(::java::lang::String *); + static ::javax::swing::text::Keymap * removeKeymap(::java::lang::String *); + static ::javax::swing::text::Keymap * addKeymap(::java::lang::String *, ::javax::swing::text::Keymap *); + virtual ::javax::swing::text::Keymap * getKeymap(); + virtual void setKeymap(::javax::swing::text::Keymap *); + static void loadKeymap(::javax::swing::text::Keymap *, JArray< ::javax::swing::text::JTextComponent$KeyBinding * > *, JArray< ::javax::swing::Action * > *); + virtual JArray< ::javax::swing::Action * > * getActions(); + JTextComponent(); + virtual void setDocument(::javax::swing::text::Document *); + virtual ::javax::swing::text::Document * getDocument(); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual void setMargin(::java::awt::Insets *); + virtual ::java::awt::Insets * getMargin(); + virtual void setText(::java::lang::String *); + virtual ::java::lang::String * getText(); + virtual ::java::lang::String * getText(jint, jint); + virtual ::java::lang::String * getSelectedText(); + virtual ::java::lang::String * getUIClassID(); +public: // actually protected + virtual ::java::lang::String * paramString(); +public: + virtual ::javax::swing::plaf::TextUI * getUI(); + virtual void setUI(::javax::swing::plaf::TextUI *); + virtual void updateUI(); + virtual ::java::awt::Dimension * getPreferredScrollableViewportSize(); + virtual jint getScrollableUnitIncrement(::java::awt::Rectangle *, jint, jint); + virtual jint getScrollableBlockIncrement(::java::awt::Rectangle *, jint, jint); + virtual jboolean isEditable(); + virtual void setEditable(jboolean); + virtual ::javax::swing::text::Caret * getCaret(); + virtual void setCaret(::javax::swing::text::Caret *); + virtual ::java::awt::Color * getCaretColor(); + virtual void setCaretColor(::java::awt::Color *); + virtual ::java::awt::Color * getDisabledTextColor(); + virtual void setDisabledTextColor(::java::awt::Color *); + virtual ::java::awt::Color * getSelectedTextColor(); + virtual void setSelectedTextColor(::java::awt::Color *); + virtual ::java::awt::Color * getSelectionColor(); + virtual void setSelectionColor(::java::awt::Color *); + virtual jint getCaretPosition(); + virtual void setCaretPosition(jint); + virtual void moveCaretPosition(jint); + virtual ::javax::swing::text::Highlighter * getHighlighter(); + virtual void setHighlighter(::javax::swing::text::Highlighter *); + virtual jint getSelectionStart(); + virtual void setSelectionStart(jint); + virtual jint getSelectionEnd(); + virtual void setSelectionEnd(jint); + virtual void select(jint, jint); + virtual void selectAll(); + virtual void replaceSelection(::java::lang::String *); + virtual jboolean getScrollableTracksViewportHeight(); + virtual jboolean getScrollableTracksViewportWidth(); + virtual void addCaretListener(::javax::swing::event::CaretListener *); + virtual void removeCaretListener(::javax::swing::event::CaretListener *); + virtual JArray< ::javax::swing::event::CaretListener * > * getCaretListeners(); +public: // actually protected + virtual void fireCaretUpdate(::javax::swing::event::CaretEvent *); +public: + virtual void addInputMethodListener(::java::awt::event::InputMethodListener *); + virtual void removeInputMethodListener(::java::awt::event::InputMethodListener *); + virtual JArray< ::java::awt::event::InputMethodListener * > * getInputMethodListeners(); + virtual ::java::awt::Rectangle * modelToView(jint); + virtual jboolean getDragEnabled(); + virtual void setDragEnabled(jboolean); + virtual jint viewToModel(::java::awt::Point *); + virtual void copy(); + virtual void cut(); + virtual void paste(); +private: + void doTransferAction(::java::lang::String *, ::javax::swing::Action *); +public: + virtual void setFocusAccelerator(jchar); + virtual jchar getFocusAccelerator(); + virtual ::javax::swing::text::NavigationFilter * getNavigationFilter(); + virtual void setNavigationFilter(::javax::swing::text::NavigationFilter *); + virtual void read(::java::io::Reader *, ::java::lang::Object *); + virtual void write(::java::io::Writer *); + virtual ::java::lang::String * getToolTipText(::java::awt::event::MouseEvent *); +private: + static const jlong serialVersionUID = -8796518220218978795LL; +public: + static ::java::lang::String * DEFAULT_KEYMAP; + static ::java::lang::String * FOCUS_ACCELERATOR_KEY; +private: + static ::javax::swing::text::JTextComponent$DefaultTransferHandler * defaultTransferHandler; + static ::java::util::Hashtable * keymaps; + ::javax::swing::text::Keymap * __attribute__((aligned(__alignof__( ::javax::swing::JComponent)))) keymap; + jchar focusAccelerator; + ::javax::swing::text::NavigationFilter * navigationFilter; +public: // actually package-private + ::javax::swing::text::Document * doc; + ::javax::swing::text::Caret * caret; + jboolean editable; +private: + ::javax::swing::text::Highlighter * highlighter; + ::java::awt::Color * caretColor; + ::java::awt::Color * disabledTextColor; + ::java::awt::Color * selectedTextColor; + ::java::awt::Color * selectionColor; + ::java::awt::Insets * margin; + jboolean dragEnabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_JTextComponent__ diff --git a/libjava/javax/swing/text/Keymap.h b/libjava/javax/swing/text/Keymap.h new file mode 100644 index 00000000000..6ec0a9816bf --- /dev/null +++ b/libjava/javax/swing/text/Keymap.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Keymap__ +#define __javax_swing_text_Keymap__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + class KeyStroke; + namespace text + { + class Keymap; + } + } + } +} + +class javax::swing::text::Keymap : public ::java::lang::Object +{ + +public: + virtual void addActionForKeyStroke(::javax::swing::KeyStroke *, ::javax::swing::Action *) = 0; + virtual ::javax::swing::Action * getAction(::javax::swing::KeyStroke *) = 0; + virtual JArray< ::javax::swing::Action * > * getBoundActions() = 0; + virtual JArray< ::javax::swing::KeyStroke * > * getBoundKeyStrokes() = 0; + virtual ::javax::swing::Action * getDefaultAction() = 0; + virtual JArray< ::javax::swing::KeyStroke * > * getKeyStrokesForAction(::javax::swing::Action *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::javax::swing::text::Keymap * getResolveParent() = 0; + virtual jboolean isLocallyDefined(::javax::swing::KeyStroke *) = 0; + virtual void removeBindings() = 0; + virtual void removeKeyStrokeBinding(::javax::swing::KeyStroke *) = 0; + virtual void setDefaultAction(::javax::swing::Action *) = 0; + virtual void setResolveParent(::javax::swing::text::Keymap *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Keymap__ diff --git a/libjava/javax/swing/text/LabelView.h b/libjava/javax/swing/text/LabelView.h new file mode 100644 index 00000000000..0d616b22883 --- /dev/null +++ b/libjava/javax/swing/text/LabelView.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_LabelView__ +#define __javax_swing_text_LabelView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + class FontMetrics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class LabelView; + class ViewFactory; + } + } + } +} + +class javax::swing::text::LabelView : public ::javax::swing::text::GlyphView +{ + +public: + LabelView(::javax::swing::text::Element *); +public: // actually protected + virtual void setPropertiesFromAttributes(); +public: + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual ::java::awt::Color * getBackground(); +public: // actually protected + virtual void setBackground(::java::awt::Color *); +public: + virtual ::java::awt::Color * getForeground(); + virtual ::java::awt::Font * getFont(); +public: // actually protected + virtual ::java::awt::FontMetrics * getFontMetrics(); +public: + virtual jboolean isUnderline(); +public: // actually protected + virtual void setUnderline(jboolean); +public: + virtual jboolean isSubscript(); +public: // actually protected + virtual void setSubscript(jboolean); +public: + virtual jboolean isSuperscript(); +public: // actually protected + virtual void setSuperscript(jboolean); +public: + virtual jboolean isStrikeThrough(); +public: // actually protected + virtual void setStrikeThrough(jboolean); +public: // actually package-private + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::text::GlyphView)))) background; + ::java::awt::Color * foreground; + ::java::awt::Font * font; + jboolean strikeThrough; + jboolean underline; + jboolean subscript; + jboolean superscript; +private: + jboolean valid; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_LabelView__ diff --git a/libjava/javax/swing/text/LayeredHighlighter$LayerPainter.h b/libjava/javax/swing/text/LayeredHighlighter$LayerPainter.h new file mode 100644 index 00000000000..306061f2bbd --- /dev/null +++ b/libjava/javax/swing/text/LayeredHighlighter$LayerPainter.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_LayeredHighlighter$LayerPainter__ +#define __javax_swing_text_LayeredHighlighter$LayerPainter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class JTextComponent; + class LayeredHighlighter$LayerPainter; + class View; + } + } + } +} + +class javax::swing::text::LayeredHighlighter$LayerPainter : public ::java::lang::Object +{ + +public: + LayeredHighlighter$LayerPainter(); + virtual ::java::awt::Shape * paintLayer(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *, ::javax::swing::text::View *) = 0; + virtual void paint(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_LayeredHighlighter$LayerPainter__ diff --git a/libjava/javax/swing/text/LayeredHighlighter.h b/libjava/javax/swing/text/LayeredHighlighter.h new file mode 100644 index 00000000000..504680a41e4 --- /dev/null +++ b/libjava/javax/swing/text/LayeredHighlighter.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_LayeredHighlighter__ +#define __javax_swing_text_LayeredHighlighter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Highlighter$Highlight; + class Highlighter$HighlightPainter; + class JTextComponent; + class LayeredHighlighter; + class View; + } + } + } +} + +class javax::swing::text::LayeredHighlighter : public ::java::lang::Object +{ + +public: + LayeredHighlighter(); + virtual void paintLayeredHighlights(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *, ::javax::swing::text::View *) = 0; + virtual void install(::javax::swing::text::JTextComponent *) = 0; + virtual void deinstall(::javax::swing::text::JTextComponent *) = 0; + virtual ::java::lang::Object * addHighlight(jint, jint, ::javax::swing::text::Highlighter$HighlightPainter *) = 0; + virtual void removeAllHighlights() = 0; + virtual void removeHighlight(::java::lang::Object *) = 0; + virtual void changeHighlight(::java::lang::Object *, jint, jint) = 0; + virtual JArray< ::javax::swing::text::Highlighter$Highlight * > * getHighlights() = 0; + virtual void paint(::java::awt::Graphics *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_LayeredHighlighter__ diff --git a/libjava/javax/swing/text/LayoutQueue.h b/libjava/javax/swing/text/LayoutQueue.h new file mode 100644 index 00000000000..0dcc8a7977c --- /dev/null +++ b/libjava/javax/swing/text/LayoutQueue.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_LayoutQueue__ +#define __javax_swing_text_LayoutQueue__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class LayoutQueue; + } + } + } +} + +class javax::swing::text::LayoutQueue : public ::java::lang::Object +{ + +public: + LayoutQueue(); + virtual void addTask(::java::lang::Runnable *); +public: // actually protected + virtual ::java::lang::Runnable * waitForWork(); +public: + static ::javax::swing::text::LayoutQueue * getDefaultQueue(); + static void setDefaultQueue(::javax::swing::text::LayoutQueue *); +private: + static ::javax::swing::text::LayoutQueue * defaultQueue; + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) list; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_LayoutQueue__ diff --git a/libjava/javax/swing/text/MaskFormatter.h b/libjava/javax/swing/text/MaskFormatter.h new file mode 100644 index 00000000000..d8651afc956 --- /dev/null +++ b/libjava/javax/swing/text/MaskFormatter.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_MaskFormatter__ +#define __javax_swing_text_MaskFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class JFormattedTextField; + namespace text + { + class MaskFormatter; + } + } + } +} + +class javax::swing::text::MaskFormatter : public ::javax::swing::text::DefaultFormatter +{ + +public: + MaskFormatter(); + MaskFormatter(::java::lang::String *); + virtual ::java::lang::String * getMask(); + virtual ::java::lang::String * getInvalidCharacters(); + virtual void setInvalidCharacters(::java::lang::String *); + virtual ::java::lang::String * getValidCharacters(); + virtual void setValidCharacters(::java::lang::String *); + virtual ::java::lang::String * getPlaceholder(); + virtual void setPlaceholder(::java::lang::String *); + virtual jchar getPlaceholderCharacter(); + virtual void setPlaceholderCharacter(jchar); + virtual jboolean getValueContainsLiteralCharacters(); + virtual void setValueContainsLiteralCharacters(jboolean); + virtual void setMask(::java::lang::String *); + virtual void install(::javax::swing::JFormattedTextField *); + virtual ::java::lang::Object * stringToValue(::java::lang::String *); +private: + ::java::lang::String * convertStringToValue(::java::lang::String *); +public: + virtual ::java::lang::String * valueToString(::java::lang::Object *); +private: + ::java::lang::String * convertValueToString(::java::lang::String *); + static const jchar NUM_CHAR = 35; + static const jchar ESCAPE_CHAR = 39; + static const jchar UPPERCASE_CHAR = 85; + static const jchar LOWERCASE_CHAR = 76; + static const jchar ALPHANUM_CHAR = 65; + static const jchar LETTER_CHAR = 63; + static const jchar ANYTHING_CHAR = 42; + static const jchar HEX_CHAR = 72; + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::text::DefaultFormatter)))) mask; + ::java::lang::String * invalidChars; + ::java::lang::String * validChars; + ::java::lang::String * placeHolder; + jchar placeHolderChar; + jboolean valueContainsLiteralCharacters; + static ::java::lang::String * hexString; +public: // actually package-private + jint maskLength; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_MaskFormatter__ diff --git a/libjava/javax/swing/text/MutableAttributeSet.h b/libjava/javax/swing/text/MutableAttributeSet.h new file mode 100644 index 00000000000..d98305585f3 --- /dev/null +++ b/libjava/javax/swing/text/MutableAttributeSet.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_MutableAttributeSet__ +#define __javax_swing_text_MutableAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class MutableAttributeSet; + } + } + } +} + +class javax::swing::text::MutableAttributeSet : public ::java::lang::Object +{ + +public: + virtual void addAttribute(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual void addAttributes(::javax::swing::text::AttributeSet *) = 0; + virtual void removeAttribute(::java::lang::Object *) = 0; + virtual void removeAttributes(::java::util::Enumeration *) = 0; + virtual void removeAttributes(::javax::swing::text::AttributeSet *) = 0; + virtual void setResolveParent(::javax::swing::text::AttributeSet *) = 0; + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *) = 0; + virtual ::javax::swing::text::AttributeSet * copyAttributes() = 0; + virtual ::java::lang::Object * getAttribute(::java::lang::Object *) = 0; + virtual jint getAttributeCount() = 0; + virtual ::java::util::Enumeration * getAttributeNames() = 0; + virtual ::javax::swing::text::AttributeSet * getResolveParent() = 0; + virtual jboolean isDefined(::java::lang::Object *) = 0; + virtual jboolean isEqual(::javax::swing::text::AttributeSet *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_MutableAttributeSet__ diff --git a/libjava/javax/swing/text/NavigationFilter$FilterBypass.h b/libjava/javax/swing/text/NavigationFilter$FilterBypass.h new file mode 100644 index 00000000000..5c771e222ac --- /dev/null +++ b/libjava/javax/swing/text/NavigationFilter$FilterBypass.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_NavigationFilter$FilterBypass__ +#define __javax_swing_text_NavigationFilter$FilterBypass__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class NavigationFilter$FilterBypass; + class Position$Bias; + } + } + } +} + +class javax::swing::text::NavigationFilter$FilterBypass : public ::java::lang::Object +{ + +public: + NavigationFilter$FilterBypass(); + virtual ::javax::swing::text::Caret * getCaret() = 0; + virtual void moveDot(jint, ::javax::swing::text::Position$Bias *) = 0; + virtual void setDot(jint, ::javax::swing::text::Position$Bias *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_NavigationFilter$FilterBypass__ diff --git a/libjava/javax/swing/text/NavigationFilter.h b/libjava/javax/swing/text/NavigationFilter.h new file mode 100644 index 00000000000..533b6e50d1a --- /dev/null +++ b/libjava/javax/swing/text/NavigationFilter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_NavigationFilter__ +#define __javax_swing_text_NavigationFilter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class JTextComponent; + class NavigationFilter; + class NavigationFilter$FilterBypass; + class Position$Bias; + } + } + } +} + +class javax::swing::text::NavigationFilter : public ::java::lang::Object +{ + +public: + NavigationFilter(); + virtual void moveDot(::javax::swing::text::NavigationFilter$FilterBypass *, jint, ::javax::swing::text::Position$Bias *); + virtual void setDot(::javax::swing::text::NavigationFilter$FilterBypass *, jint, ::javax::swing::text::Position$Bias *); + virtual jint getNextVisualPositionFrom(::javax::swing::text::JTextComponent *, jint, ::javax::swing::text::Position$Bias *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_NavigationFilter__ diff --git a/libjava/javax/swing/text/NumberFormatter.h b/libjava/javax/swing/text/NumberFormatter.h new file mode 100644 index 00000000000..fe952fe468b --- /dev/null +++ b/libjava/javax/swing/text/NumberFormatter.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_NumberFormatter__ +#define __javax_swing_text_NumberFormatter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace text + { + class Format; + class NumberFormat; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class NumberFormatter; + } + } + } +} + +class javax::swing::text::NumberFormatter : public ::javax::swing::text::InternationalFormatter +{ + +public: + NumberFormatter(); + NumberFormatter(::java::text::NumberFormat *); + virtual void setFormat(::java::text::Format *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_NumberFormatter__ diff --git a/libjava/javax/swing/text/ParagraphView$Row.h b/libjava/javax/swing/text/ParagraphView$Row.h new file mode 100644 index 00000000000..36a372a7098 --- /dev/null +++ b/libjava/javax/swing/text/ParagraphView$Row.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ParagraphView$Row__ +#define __javax_swing_text_ParagraphView$Row__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace text + { + class Element; + class ParagraphView; + class ParagraphView$Row; + class ViewFactory; + } + } + } +} + +class javax::swing::text::ParagraphView$Row : public ::javax::swing::text::BoxView +{ + +public: // actually package-private + ParagraphView$Row(::javax::swing::text::ParagraphView *, ::javax::swing::text::Element *); +public: + virtual jshort getLeftInset(); + virtual jfloat getAlignment(jint); +public: // actually protected + virtual jint getViewIndexAtPosition(jint); + virtual void layoutMinorAxis(jint, jint, JArray< jint > *, JArray< jint > *); + virtual ::javax::swing::SizeRequirements * calculateMinorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual void loadChildren(::javax::swing::text::ViewFactory *); +public: + virtual jint getStartOffset(); + virtual jint getEndOffset(); +public: // actually package-private + ::javax::swing::text::ParagraphView * __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ParagraphView$Row__ diff --git a/libjava/javax/swing/text/ParagraphView.h b/libjava/javax/swing/text/ParagraphView.h new file mode 100644 index 00000000000..fc86f73989a --- /dev/null +++ b/libjava/javax/swing/text/ParagraphView.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ParagraphView__ +#define __javax_swing_text_ParagraphView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class ParagraphView; + class ParagraphView$Row; + class Position$Bias; + class TabSet; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::ParagraphView : public ::javax::swing::text::FlowView +{ + +public: + ParagraphView(::javax::swing::text::Element *); + virtual jfloat nextTabStop(jfloat, jint); +public: // actually protected + virtual ::javax::swing::text::View * createRow(); +public: + virtual jfloat getAlignment(jint); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: // actually protected + virtual void setPropertiesFromAttributes(); + virtual void setFirstLineIndent(jfloat); + virtual void setJustification(jint); + virtual void setLineSpacing(jfloat); + virtual ::javax::swing::text::View * getLayoutView(jint); + virtual jint getLayoutViewCount(); + virtual ::javax::swing::text::TabSet * getTabSet(); + virtual jint findOffsetToCharactersInString(JArray< jchar > *, jint); + virtual jint getClosestPositionTo(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *, jint, jint); + virtual jfloat getPartialSize(jint, jint); + virtual jfloat getTabBase(); + virtual void adjustRow(::javax::swing::text::ParagraphView$Row *, jint, jint); +public: + virtual ::javax::swing::text::View * breakView(jint, jfloat, ::java::awt::Shape *); + virtual jint getBreakWeight(jint, jfloat); +public: // actually package-private + static jint access$0(::javax::swing::text::ParagraphView *); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::javax::swing::text::FlowView)))) firstLineIndent; +private: + jint justification; + jfloat lineSpacing; + ::javax::swing::text::TabSet * tabSet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ParagraphView__ diff --git a/libjava/javax/swing/text/PasswordView.h b/libjava/javax/swing/text/PasswordView.h new file mode 100644 index 00000000000..ba6d3ff4762 --- /dev/null +++ b/libjava/javax/swing/text/PasswordView.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_PasswordView__ +#define __javax_swing_text_PasswordView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class PasswordView; + class Position$Bias; + } + } + } +} + +class javax::swing::text::PasswordView : public ::javax::swing::text::FieldView +{ + +public: + PasswordView(::javax::swing::text::Element *); +public: // actually protected + virtual jint drawEchoCharacter(::java::awt::Graphics *, jint, jint, jchar); +private: + jchar getEchoChar(); +public: // actually protected + virtual jint drawSelectedText(::java::awt::Graphics *, jint, jint, jint, jint); + virtual jint drawUnselectedText(::java::awt::Graphics *, jint, jint, jint, jint); +public: + virtual jfloat getPreferredSpan(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +private: + JArray< jchar > * __attribute__((aligned(__alignof__( ::javax::swing::text::FieldView)))) oneCharBuffer; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_PasswordView__ diff --git a/libjava/javax/swing/text/PlainDocument.h b/libjava/javax/swing/text/PlainDocument.h new file mode 100644 index 00000000000..d3dc0dca6e2 --- /dev/null +++ b/libjava/javax/swing/text/PlainDocument.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_PlainDocument__ +#define __javax_swing_text_PlainDocument__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument$AbstractElement; + class AbstractDocument$Content; + class AbstractDocument$DefaultDocumentEvent; + class AttributeSet; + class Element; + class PlainDocument; + } + } + } +} + +class javax::swing::text::PlainDocument : public ::javax::swing::text::AbstractDocument +{ + +public: + PlainDocument(); + PlainDocument(::javax::swing::text::AbstractDocument$Content *); +private: + void reindex(); +public: // actually protected + virtual ::javax::swing::text::AbstractDocument$AbstractElement * createDefaultRoot(); + virtual void insertUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *, ::javax::swing::text::AttributeSet *); + virtual void removeUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *); +public: + virtual ::javax::swing::text::Element * getDefaultRootElement(); + virtual ::javax::swing::text::Element * getParagraphElement(jint); + virtual void insertString(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *); +private: + static const jlong serialVersionUID = 4758290289196893664LL; +public: + static ::java::lang::String * lineLimitAttribute; + static ::java::lang::String * tabSizeAttribute; +private: + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument)))) rootElement; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_PlainDocument__ diff --git a/libjava/javax/swing/text/PlainView.h b/libjava/javax/swing/text/PlainView.h new file mode 100644 index 00000000000..e6091b0fc1c --- /dev/null +++ b/libjava/javax/swing/text/PlainView.h @@ -0,0 +1,103 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_PlainView__ +#define __javax_swing_text_PlainView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Font; + class FontMetrics; + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class PlainView; + class Position$Bias; + class Segment; + class ViewFactory; + } + } + } +} + +class javax::swing::text::PlainView : public ::javax::swing::text::View +{ + +public: + PlainView(::javax::swing::text::Element *); +public: // actually protected + virtual void updateMetrics(); + virtual ::java::awt::Rectangle * lineToRect(::java::awt::Shape *, jint); +public: + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); +public: // actually protected + virtual void drawLine(jint, ::java::awt::Graphics *, jint, jint); + virtual jint drawSelectedText(::java::awt::Graphics *, jint, jint, jint, jint); + virtual jint drawUnselectedText(::java::awt::Graphics *, jint, jint, jint, jint); +public: + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); +public: // actually protected + virtual jint getTabSize(); +public: + virtual jfloat nextTabStop(jfloat, jint); +public: // actually package-private + virtual jfloat determineMaxLineLength(); +public: + virtual jfloat getPreferredSpan(jint); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +public: // actually protected + virtual void updateDamage(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: // actually protected + virtual void damageLineRange(jint, jint, ::java::awt::Shape *, ::java::awt::Component *); + virtual ::javax::swing::text::Segment * getLineBuffer(); +private: + void findLongestLine(jint, jint); + jint getLineLength(jint); +public: // actually package-private + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) selectedColor; + ::java::awt::Color * unselectedColor; + ::java::awt::Color * disabledColor; + jint selectionStart; + jint selectionEnd; + ::java::awt::Font * font; + jfloat maxLineLength; + ::javax::swing::text::Element * longestLine; +public: // actually protected + ::java::awt::FontMetrics * metrics; +private: + ::javax::swing::text::Segment * lineBuffer; + jint tabBase; + jint tabSize; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_PlainView__ diff --git a/libjava/javax/swing/text/Position$Bias.h b/libjava/javax/swing/text/Position$Bias.h new file mode 100644 index 00000000000..0ae5a3570a1 --- /dev/null +++ b/libjava/javax/swing/text/Position$Bias.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Position$Bias__ +#define __javax_swing_text_Position$Bias__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Position$Bias; + } + } + } +} + +class javax::swing::text::Position$Bias : public ::java::lang::Object +{ + + Position$Bias(::java::lang::String *); +public: + ::java::lang::String * toString(); + static ::javax::swing::text::Position$Bias * Backward; + static ::javax::swing::text::Position$Bias * Forward; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_Position$Bias__ diff --git a/libjava/javax/swing/text/Position.h b/libjava/javax/swing/text/Position.h new file mode 100644 index 00000000000..1561b25fc1c --- /dev/null +++ b/libjava/javax/swing/text/Position.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Position__ +#define __javax_swing_text_Position__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Position; + } + } + } +} + +class javax::swing::text::Position : public ::java::lang::Object +{ + +public: + virtual jint getOffset() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Position__ diff --git a/libjava/javax/swing/text/Segment.h b/libjava/javax/swing/text/Segment.h new file mode 100644 index 00000000000..f9d5d5a6e42 --- /dev/null +++ b/libjava/javax/swing/text/Segment.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Segment__ +#define __javax_swing_text_Segment__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Segment; + } + } + } +} + +class javax::swing::text::Segment : public ::java::lang::Object +{ + +public: + Segment(); + Segment(JArray< jchar > *, jint, jint); + virtual ::java::lang::Object * clone(); + virtual jchar current(); + virtual jchar first(); + virtual jint getBeginIndex(); + virtual jint getEndIndex(); + virtual jint getIndex(); + virtual jchar last(); + virtual jchar next(); + virtual jchar previous(); + virtual jchar setIndex(jint); + virtual ::java::lang::String * toString(); + virtual void setPartialReturn(jboolean); + virtual jboolean isPartialReturn(); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) partialReturn; + jint current__; +public: + JArray< jchar > * array; + jint count; + jint offset; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_Segment__ diff --git a/libjava/javax/swing/text/SimpleAttributeSet.h b/libjava/javax/swing/text/SimpleAttributeSet.h new file mode 100644 index 00000000000..0ea91af02f7 --- /dev/null +++ b/libjava/javax/swing/text/SimpleAttributeSet.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_SimpleAttributeSet__ +#define __javax_swing_text_SimpleAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class SimpleAttributeSet; + } + } + } +} + +class javax::swing::text::SimpleAttributeSet : public ::java::lang::Object +{ + +public: + SimpleAttributeSet(); + SimpleAttributeSet(::javax::swing::text::AttributeSet *); + virtual void addAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual void addAttributes(::javax::swing::text::AttributeSet *); + virtual ::java::lang::Object * clone(); + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); +public: // actually package-private + virtual jboolean containsAttributeLocally(::java::lang::Object *, ::java::lang::Object *); +public: + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual jint getAttributeCount(); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual jint hashCode(); + virtual jboolean isDefined(::java::lang::Object *); + virtual jboolean isEmpty(); + virtual jboolean isEqual(::javax::swing::text::AttributeSet *); + virtual void removeAttribute(::java::lang::Object *); + virtual void removeAttributes(::javax::swing::text::AttributeSet *); + virtual void removeAttributes(::java::util::Enumeration *); + virtual void setResolveParent(::javax::swing::text::AttributeSet *); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 8267656273837665219LL; +public: + static ::javax::swing::text::AttributeSet * EMPTY; +public: // actually package-private + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) tab; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_SimpleAttributeSet__ diff --git a/libjava/javax/swing/text/StringContent$InsertUndo.h b/libjava/javax/swing/text/StringContent$InsertUndo.h new file mode 100644 index 00000000000..49415c169d0 --- /dev/null +++ b/libjava/javax/swing/text/StringContent$InsertUndo.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StringContent$InsertUndo__ +#define __javax_swing_text_StringContent$InsertUndo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StringContent; + class StringContent$InsertUndo; + } + } + } +} + +class javax::swing::text::StringContent$InsertUndo : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + StringContent$InsertUndo(::javax::swing::text::StringContent *, jint, jint); + virtual void undo(); + virtual void redo(); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) start; + jint length; + ::java::lang::String * redoContent; + ::java::util::Vector * positions; +public: // actually package-private + ::javax::swing::text::StringContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StringContent$InsertUndo__ diff --git a/libjava/javax/swing/text/StringContent$Mark.h b/libjava/javax/swing/text/StringContent$Mark.h new file mode 100644 index 00000000000..22d3f9f0257 --- /dev/null +++ b/libjava/javax/swing/text/StringContent$Mark.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StringContent$Mark__ +#define __javax_swing_text_StringContent$Mark__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StringContent; + class StringContent$Mark; + } + } + } +} + +class javax::swing::text::StringContent$Mark : public ::java::lang::Object +{ + +public: // actually package-private + StringContent$Mark(::javax::swing::text::StringContent *, jint); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) mark; + jint refCount; + ::javax::swing::text::StringContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StringContent$Mark__ diff --git a/libjava/javax/swing/text/StringContent$RemoveUndo.h b/libjava/javax/swing/text/StringContent$RemoveUndo.h new file mode 100644 index 00000000000..6c79aa06ba6 --- /dev/null +++ b/libjava/javax/swing/text/StringContent$RemoveUndo.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StringContent$RemoveUndo__ +#define __javax_swing_text_StringContent$RemoveUndo__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StringContent; + class StringContent$RemoveUndo; + } + } + } +} + +class javax::swing::text::StringContent$RemoveUndo : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + StringContent$RemoveUndo(::javax::swing::text::StringContent *, jint, ::java::lang::String *); + virtual void undo(); + virtual void redo(); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) start; + jint len; + ::java::lang::String * undoString; +public: // actually package-private + ::java::util::Vector * positions; + ::javax::swing::text::StringContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StringContent$RemoveUndo__ diff --git a/libjava/javax/swing/text/StringContent$StickyPosition.h b/libjava/javax/swing/text/StringContent$StickyPosition.h new file mode 100644 index 00000000000..434bf590a7f --- /dev/null +++ b/libjava/javax/swing/text/StringContent$StickyPosition.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StringContent$StickyPosition__ +#define __javax_swing_text_StringContent$StickyPosition__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StringContent; + class StringContent$Mark; + class StringContent$StickyPosition; + } + } + } +} + +class javax::swing::text::StringContent$StickyPosition : public ::java::lang::Object +{ + +public: + StringContent$StickyPosition(::javax::swing::text::StringContent *, jint); + virtual jint getOffset(); +public: // actually package-private + ::javax::swing::text::StringContent$Mark * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mark; + ::javax::swing::text::StringContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StringContent$StickyPosition__ diff --git a/libjava/javax/swing/text/StringContent$UndoPosRef.h b/libjava/javax/swing/text/StringContent$UndoPosRef.h new file mode 100644 index 00000000000..82f8d2f660e --- /dev/null +++ b/libjava/javax/swing/text/StringContent$UndoPosRef.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StringContent$UndoPosRef__ +#define __javax_swing_text_StringContent$UndoPosRef__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StringContent; + class StringContent$Mark; + class StringContent$UndoPosRef; + } + } + } +} + +class javax::swing::text::StringContent$UndoPosRef : public ::java::lang::Object +{ + +public: // actually package-private + StringContent$UndoPosRef(::javax::swing::text::StringContent *, ::javax::swing::text::StringContent$Mark *); + virtual void reset(); +private: + ::javax::swing::text::StringContent$Mark * __attribute__((aligned(__alignof__( ::java::lang::Object)))) mark; + jint undoOffset; +public: // actually package-private + ::javax::swing::text::StringContent * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StringContent$UndoPosRef__ diff --git a/libjava/javax/swing/text/StringContent.h b/libjava/javax/swing/text/StringContent.h new file mode 100644 index 00000000000..ca51a43d7e3 --- /dev/null +++ b/libjava/javax/swing/text/StringContent.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StringContent__ +#define __javax_swing_text_StringContent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Position; + class Segment; + class StringContent; + } + namespace undo + { + class UndoableEdit; + } + } + } +} + +class javax::swing::text::StringContent : public ::java::lang::Object +{ + +public: + StringContent(); + StringContent(jint); +public: // actually protected + ::java::util::Vector * getPositionsInRange(::java::util::Vector *, jint, jint); +public: + ::javax::swing::text::Position * createPosition(jint); + jint length(); + ::javax::swing::undo::UndoableEdit * insertString(jint, ::java::lang::String *); + ::javax::swing::undo::UndoableEdit * remove(jint, jint); +private: + void replace(jint, jint, JArray< jchar > *); +public: + ::java::lang::String * getString(jint, jint); + void getChars(jint, jint, ::javax::swing::text::Segment *); +public: // actually protected + void updateUndoPositions(::java::util::Vector *); +public: // actually package-private + void checkLocation(jint, jint); + void garbageCollect(); +private: + static const jlong serialVersionUID = 4755994433709540381LL; +public: // actually package-private + JArray< jchar > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) content; +private: + jint count; +public: // actually package-private + ::java::util::Vector * marks; +private: + static JArray< jchar > * EMPTY; +public: // actually package-private + ::java::lang::ref::ReferenceQueue * queueOfDeath; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StringContent__ diff --git a/libjava/javax/swing/text/Style.h b/libjava/javax/swing/text/Style.h new file mode 100644 index 00000000000..ceb4aff7167 --- /dev/null +++ b/libjava/javax/swing/text/Style.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Style__ +#define __javax_swing_text_Style__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeListener; + } + namespace text + { + class AttributeSet; + class Style; + } + } + } +} + +class javax::swing::text::Style : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName() = 0; + virtual void addChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void removeChangeListener(::javax::swing::event::ChangeListener *) = 0; + virtual void addAttribute(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual void addAttributes(::javax::swing::text::AttributeSet *) = 0; + virtual void removeAttribute(::java::lang::Object *) = 0; + virtual void removeAttributes(::java::util::Enumeration *) = 0; + virtual void removeAttributes(::javax::swing::text::AttributeSet *) = 0; + virtual void setResolveParent(::javax::swing::text::AttributeSet *) = 0; + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *) = 0; + virtual ::javax::swing::text::AttributeSet * copyAttributes() = 0; + virtual ::java::lang::Object * getAttribute(::java::lang::Object *) = 0; + virtual jint getAttributeCount() = 0; + virtual ::java::util::Enumeration * getAttributeNames() = 0; + virtual ::javax::swing::text::AttributeSet * getResolveParent() = 0; + virtual jboolean isDefined(::java::lang::Object *) = 0; + virtual jboolean isEqual(::javax::swing::text::AttributeSet *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_Style__ diff --git a/libjava/javax/swing/text/StyleConstants$CharacterConstants.h b/libjava/javax/swing/text/StyleConstants$CharacterConstants.h new file mode 100644 index 00000000000..c9c84da1886 --- /dev/null +++ b/libjava/javax/swing/text/StyleConstants$CharacterConstants.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleConstants$CharacterConstants__ +#define __javax_swing_text_StyleConstants$CharacterConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StyleConstants$CharacterConstants; + } + } + } +} + +class javax::swing::text::StyleConstants$CharacterConstants : public ::javax::swing::text::StyleConstants +{ + + StyleConstants$CharacterConstants(::java::lang::String *); +public: + static ::java::lang::Object * Background; + static ::java::lang::Object * BidiLevel; + static ::java::lang::Object * Bold; + static ::java::lang::Object * ComponentAttribute; + static ::java::lang::Object * Family; + static ::java::lang::Object * Size; + static ::java::lang::Object * Foreground; + static ::java::lang::Object * IconAttribute; + static ::java::lang::Object * Italic; + static ::java::lang::Object * StrikeThrough; + static ::java::lang::Object * Subscript; + static ::java::lang::Object * Superscript; + static ::java::lang::Object * Underline; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleConstants$CharacterConstants__ diff --git a/libjava/javax/swing/text/StyleConstants$ColorConstants.h b/libjava/javax/swing/text/StyleConstants$ColorConstants.h new file mode 100644 index 00000000000..31f2e67fa38 --- /dev/null +++ b/libjava/javax/swing/text/StyleConstants$ColorConstants.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleConstants$ColorConstants__ +#define __javax_swing_text_StyleConstants$ColorConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StyleConstants$ColorConstants; + } + } + } +} + +class javax::swing::text::StyleConstants$ColorConstants : public ::javax::swing::text::StyleConstants +{ + + StyleConstants$ColorConstants(::java::lang::String *); +public: + static ::java::lang::Object * Foreground; + static ::java::lang::Object * Background; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleConstants$ColorConstants__ diff --git a/libjava/javax/swing/text/StyleConstants$FontConstants.h b/libjava/javax/swing/text/StyleConstants$FontConstants.h new file mode 100644 index 00000000000..f2ae13ca6da --- /dev/null +++ b/libjava/javax/swing/text/StyleConstants$FontConstants.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleConstants$FontConstants__ +#define __javax_swing_text_StyleConstants$FontConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StyleConstants$FontConstants; + } + } + } +} + +class javax::swing::text::StyleConstants$FontConstants : public ::javax::swing::text::StyleConstants +{ + + StyleConstants$FontConstants(::java::lang::String *); +public: + static ::java::lang::Object * Bold; + static ::java::lang::Object * Family; + static ::java::lang::Object * Italic; + static ::java::lang::Object * Size; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleConstants$FontConstants__ diff --git a/libjava/javax/swing/text/StyleConstants$ParagraphConstants.h b/libjava/javax/swing/text/StyleConstants$ParagraphConstants.h new file mode 100644 index 00000000000..41381f8ba59 --- /dev/null +++ b/libjava/javax/swing/text/StyleConstants$ParagraphConstants.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleConstants$ParagraphConstants__ +#define __javax_swing_text_StyleConstants$ParagraphConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StyleConstants$ParagraphConstants; + } + } + } +} + +class javax::swing::text::StyleConstants$ParagraphConstants : public ::javax::swing::text::StyleConstants +{ + + StyleConstants$ParagraphConstants(::java::lang::String *); +public: + static ::java::lang::Object * Alignment; + static ::java::lang::Object * FirstLineIndent; + static ::java::lang::Object * LeftIndent; + static ::java::lang::Object * LineSpacing; + static ::java::lang::Object * Orientation; + static ::java::lang::Object * RightIndent; + static ::java::lang::Object * SpaceAbove; + static ::java::lang::Object * SpaceBelow; + static ::java::lang::Object * TabSet; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleConstants$ParagraphConstants__ diff --git a/libjava/javax/swing/text/StyleConstants.h b/libjava/javax/swing/text/StyleConstants.h new file mode 100644 index 00000000000..1640d415dc9 --- /dev/null +++ b/libjava/javax/swing/text/StyleConstants.h @@ -0,0 +1,126 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleConstants__ +#define __javax_swing_text_StyleConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace text + { + class AttributeSet; + class MutableAttributeSet; + class StyleConstants; + class TabSet; + } + } + } +} + +class javax::swing::text::StyleConstants : public ::java::lang::Object +{ + +public: // actually package-private + StyleConstants(::java::lang::String *); +public: + virtual ::java::lang::String * toString(); + static jint getAlignment(::javax::swing::text::AttributeSet *); + static ::java::awt::Color * getBackground(::javax::swing::text::AttributeSet *); + static jint getBidiLevel(::javax::swing::text::AttributeSet *); + static ::java::awt::Component * getComponent(::javax::swing::text::AttributeSet *); + static jfloat getFirstLineIndent(::javax::swing::text::AttributeSet *); + static ::java::lang::String * getFontFamily(::javax::swing::text::AttributeSet *); + static jint getFontSize(::javax::swing::text::AttributeSet *); + static ::java::awt::Color * getForeground(::javax::swing::text::AttributeSet *); + static ::javax::swing::Icon * getIcon(::javax::swing::text::AttributeSet *); + static jfloat getLeftIndent(::javax::swing::text::AttributeSet *); + static jfloat getLineSpacing(::javax::swing::text::AttributeSet *); + static jfloat getRightIndent(::javax::swing::text::AttributeSet *); + static jfloat getSpaceAbove(::javax::swing::text::AttributeSet *); + static jfloat getSpaceBelow(::javax::swing::text::AttributeSet *); + static ::javax::swing::text::TabSet * getTabSet(::javax::swing::text::AttributeSet *); + static jboolean isBold(::javax::swing::text::AttributeSet *); + static jboolean isItalic(::javax::swing::text::AttributeSet *); + static jboolean isStrikeThrough(::javax::swing::text::AttributeSet *); + static jboolean isSubscript(::javax::swing::text::AttributeSet *); + static jboolean isSuperscript(::javax::swing::text::AttributeSet *); + static jboolean isUnderline(::javax::swing::text::AttributeSet *); + static void setAlignment(::javax::swing::text::MutableAttributeSet *, jint); + static void setBackground(::javax::swing::text::MutableAttributeSet *, ::java::awt::Color *); + static void setBidiLevel(::javax::swing::text::MutableAttributeSet *, jint); + static void setBold(::javax::swing::text::MutableAttributeSet *, jboolean); + static void setComponent(::javax::swing::text::MutableAttributeSet *, ::java::awt::Component *); + static void setFirstLineIndent(::javax::swing::text::MutableAttributeSet *, jfloat); + static void setFontFamily(::javax::swing::text::MutableAttributeSet *, ::java::lang::String *); + static void setFontSize(::javax::swing::text::MutableAttributeSet *, jint); + static void setForeground(::javax::swing::text::MutableAttributeSet *, ::java::awt::Color *); + static void setIcon(::javax::swing::text::MutableAttributeSet *, ::javax::swing::Icon *); + static void setItalic(::javax::swing::text::MutableAttributeSet *, jboolean); + static void setLeftIndent(::javax::swing::text::MutableAttributeSet *, jfloat); + static void setLineSpacing(::javax::swing::text::MutableAttributeSet *, jfloat); + static void setRightIndent(::javax::swing::text::MutableAttributeSet *, jfloat); + static void setSpaceAbove(::javax::swing::text::MutableAttributeSet *, jfloat); + static void setSpaceBelow(::javax::swing::text::MutableAttributeSet *, jfloat); + static void setStrikeThrough(::javax::swing::text::MutableAttributeSet *, jboolean); + static void setSubscript(::javax::swing::text::MutableAttributeSet *, jboolean); + static void setSuperscript(::javax::swing::text::MutableAttributeSet *, jboolean); + static void setTabSet(::javax::swing::text::MutableAttributeSet *, ::javax::swing::text::TabSet *); + static void setUnderline(::javax::swing::text::MutableAttributeSet *, jboolean); + static const jint ALIGN_LEFT = 0; + static const jint ALIGN_CENTER = 1; + static const jint ALIGN_RIGHT = 2; + static const jint ALIGN_JUSTIFIED = 3; + static ::java::lang::Object * Background; + static ::java::lang::Object * BidiLevel; + static ::java::lang::Object * Bold; + static ::java::lang::Object * ComponentAttribute; + static ::java::lang::Object * Family; + static ::java::lang::Object * FontFamily; + static ::java::lang::Object * FontSize; + static ::java::lang::Object * Foreground; + static ::java::lang::Object * IconAttribute; + static ::java::lang::Object * Italic; + static ::java::lang::Object * Size; + static ::java::lang::Object * StrikeThrough; + static ::java::lang::Object * Subscript; + static ::java::lang::Object * Superscript; + static ::java::lang::Object * Underline; + static ::java::lang::Object * Alignment; + static ::java::lang::Object * FirstLineIndent; + static ::java::lang::Object * LeftIndent; + static ::java::lang::Object * LineSpacing; + static ::java::lang::Object * Orientation; + static ::java::lang::Object * RightIndent; + static ::java::lang::Object * SpaceAbove; + static ::java::lang::Object * SpaceBelow; + static ::java::lang::Object * TabSet; + static ::java::lang::String * ComponentElementName; + static ::java::lang::String * IconElementName; + static ::java::lang::Object * ComposedTextAttribute; + static ::java::lang::Object * ModelAttribute; + static ::java::lang::Object * NameAttribute; + static ::java::lang::Object * ResolveAttribute; +public: // actually package-private + static ::java::util::ArrayList * keys; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) keyname; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleConstants__ diff --git a/libjava/javax/swing/text/StyleContext$1.h b/libjava/javax/swing/text/StyleContext$1.h new file mode 100644 index 00000000000..cfbe80ec226 --- /dev/null +++ b/libjava/javax/swing/text/StyleContext$1.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleContext$1__ +#define __javax_swing_text_StyleContext$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StyleContext$1; + class StyleContext$SmallAttributeSet; + } + } + } +} + +class javax::swing::text::StyleContext$1 : public ::java::lang::Object +{ + +public: // actually package-private + StyleContext$1(::javax::swing::text::StyleContext$SmallAttributeSet *); +public: + jboolean hasMoreElements(); + ::java::lang::Object * nextElement(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) i; + ::javax::swing::text::StyleContext$SmallAttributeSet * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleContext$1__ diff --git a/libjava/javax/swing/text/StyleContext$NamedStyle.h b/libjava/javax/swing/text/StyleContext$NamedStyle.h new file mode 100644 index 00000000000..6976975a7f0 --- /dev/null +++ b/libjava/javax/swing/text/StyleContext$NamedStyle.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleContext$NamedStyle__ +#define __javax_swing_text_StyleContext$NamedStyle__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + class ChangeListener; + class EventListenerList; + } + namespace text + { + class AttributeSet; + class Style; + class StyleContext; + class StyleContext$NamedStyle; + } + } + } +} + +class javax::swing::text::StyleContext$NamedStyle : public ::java::lang::Object +{ + +public: + StyleContext$NamedStyle(::javax::swing::text::StyleContext *); + StyleContext$NamedStyle(::javax::swing::text::StyleContext *, ::javax::swing::text::Style *); + StyleContext$NamedStyle(::javax::swing::text::StyleContext *, ::java::lang::String *, ::javax::swing::text::Style *); + virtual ::java::lang::String * getName(); + virtual void setName(::java::lang::String *); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); +public: // actually protected + virtual void fireStateChanged(); +public: + virtual void addAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual void addAttributes(::javax::swing::text::AttributeSet *); + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual jint getAttributeCount(); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual jboolean isDefined(::java::lang::Object *); + virtual jboolean isEqual(::javax::swing::text::AttributeSet *); + virtual void removeAttribute(::java::lang::Object *); + virtual void removeAttributes(::javax::swing::text::AttributeSet *); + virtual void removeAttributes(::java::util::Enumeration *); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual void setResolveParent(::javax::swing::text::AttributeSet *); + virtual ::java::lang::String * toString(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); + static const jlong serialVersionUID = -6690628971806226374LL; +public: // actually protected + ::javax::swing::event::ChangeEvent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) changeEvent; + ::javax::swing::event::EventListenerList * listenerList; +private: + ::javax::swing::text::AttributeSet * attributes; +public: // actually package-private + ::javax::swing::text::StyleContext * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleContext$NamedStyle__ diff --git a/libjava/javax/swing/text/StyleContext$SimpleFontSpec.h b/libjava/javax/swing/text/StyleContext$SimpleFontSpec.h new file mode 100644 index 00000000000..a901647afde --- /dev/null +++ b/libjava/javax/swing/text/StyleContext$SimpleFontSpec.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleContext$SimpleFontSpec__ +#define __javax_swing_text_StyleContext$SimpleFontSpec__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class StyleContext$SimpleFontSpec; + } + } + } +} + +class javax::swing::text::StyleContext$SimpleFontSpec : public ::java::lang::Object +{ + +public: + StyleContext$SimpleFontSpec(::java::lang::String *, jint, jint); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) family; + jint style; + jint size; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleContext$SimpleFontSpec__ diff --git a/libjava/javax/swing/text/StyleContext$SmallAttributeSet.h b/libjava/javax/swing/text/StyleContext$SmallAttributeSet.h new file mode 100644 index 00000000000..c4f969c1f0e --- /dev/null +++ b/libjava/javax/swing/text/StyleContext$SmallAttributeSet.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleContext$SmallAttributeSet__ +#define __javax_swing_text_StyleContext$SmallAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class StyleContext; + class StyleContext$SmallAttributeSet; + } + } + } +} + +class javax::swing::text::StyleContext$SmallAttributeSet : public ::java::lang::Object +{ + +public: + StyleContext$SmallAttributeSet(::javax::swing::text::StyleContext *, ::javax::swing::text::AttributeSet *); + StyleContext$SmallAttributeSet(::javax::swing::text::StyleContext *, JArray< ::java::lang::Object * > *); + virtual ::java::lang::Object * clone(); + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual jint getAttributeCount(); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual jint hashCode(); + virtual jboolean isDefined(::java::lang::Object *); + virtual jboolean isEqual(::javax::swing::text::AttributeSet *); + virtual ::java::lang::String * toString(); +public: // actually package-private + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attrs; +private: + ::javax::swing::text::AttributeSet * resolveParent; +public: // actually package-private + ::javax::swing::text::StyleContext * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleContext$SmallAttributeSet__ diff --git a/libjava/javax/swing/text/StyleContext.h b/libjava/javax/swing/text/StyleContext.h new file mode 100644 index 00000000000..c8f91994ee8 --- /dev/null +++ b/libjava/javax/swing/text/StyleContext.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyleContext__ +#define __javax_swing_text_StyleContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + class FontMetrics; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class ChangeListener; + } + namespace text + { + class AttributeSet; + class MutableAttributeSet; + class Style; + class StyleContext; + class StyleContext$NamedStyle; + class StyleContext$SmallAttributeSet; + } + } + } +} + +class javax::swing::text::StyleContext : public ::java::lang::Object +{ + +public: + StyleContext(); +public: // actually protected + virtual ::javax::swing::text::StyleContext$SmallAttributeSet * createSmallAttributeSet(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::MutableAttributeSet * createLargeAttributeSet(::javax::swing::text::AttributeSet *); +public: + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual JArray< ::javax::swing::event::ChangeListener * > * getChangeListeners(); + virtual ::javax::swing::text::Style * addStyle(::java::lang::String *, ::javax::swing::text::Style *); + virtual void removeStyle(::java::lang::String *); + virtual ::javax::swing::text::Style * getStyle(::java::lang::String *); + virtual ::java::util::Enumeration * getStyleNames(); +private: + void readObject(::java::io::ObjectInputStream *); + void writeObject(::java::io::ObjectOutputStream *); +public: + virtual ::java::awt::Font * getFont(::javax::swing::text::AttributeSet *); + virtual ::java::awt::Font * getFont(::java::lang::String *, jint, jint); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual ::java::awt::Color * getForeground(::javax::swing::text::AttributeSet *); + virtual ::java::awt::Color * getBackground(::javax::swing::text::AttributeSet *); +public: // actually protected + virtual jint getCompressionThreshold(); +public: + static ::javax::swing::text::StyleContext * getDefaultStyleContext(); + virtual ::javax::swing::text::AttributeSet * addAttribute(::javax::swing::text::AttributeSet *, ::java::lang::Object *, ::java::lang::Object *); + virtual ::javax::swing::text::AttributeSet * addAttributes(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * getEmptySet(); + virtual void reclaim(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * removeAttribute(::javax::swing::text::AttributeSet *, ::java::lang::Object *); + virtual ::javax::swing::text::AttributeSet * removeAttributes(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * removeAttributes(::javax::swing::text::AttributeSet *, ::java::util::Enumeration *); + static ::java::lang::Object * getStaticAttribute(::java::lang::Object *); + static ::java::lang::Object * getStaticAttributeKey(::java::lang::Object *); + static void readAttributeSet(::java::io::ObjectInputStream *, ::javax::swing::text::MutableAttributeSet *); + static void writeAttributeSet(::java::io::ObjectOutputStream *, ::javax::swing::text::AttributeSet *); + virtual void readAttributes(::java::io::ObjectInputStream *, ::javax::swing::text::MutableAttributeSet *); + virtual void writeAttributes(::java::io::ObjectOutputStream *, ::javax::swing::text::AttributeSet *); + static void registerStaticAttributeKey(::java::lang::Object *); + virtual ::java::lang::String * toString(); +private: + ::javax::swing::text::AttributeSet * searchImmutableSet(); + void cleanupPool(); + ::javax::swing::text::MutableAttributeSet * getMutableAttributeSet(::javax::swing::text::AttributeSet *); + static const jlong serialVersionUID = 8042858831190784241LL; +public: + static ::java::lang::String * DEFAULT_STYLE; +public: // actually package-private + static ::java::util::Hashtable * sharedAttributeSets; + static ::java::util::Hashtable * sharedFonts; + static ::javax::swing::text::StyleContext * defaultStyleContext; + static const jint compressionThreshold = 9; +private: + static ::java::util::Hashtable * writeAttributeKeys; + static ::java::util::Hashtable * readAttributeKeys; + ::javax::swing::text::StyleContext$NamedStyle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) styles; + ::javax::swing::text::MutableAttributeSet * search; + ::java::util::Map * attributeSetPool; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyleContext__ diff --git a/libjava/javax/swing/text/StyledDocument.h b/libjava/javax/swing/text/StyledDocument.h new file mode 100644 index 00000000000..2eb580ec2be --- /dev/null +++ b/libjava/javax/swing/text/StyledDocument.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledDocument__ +#define __javax_swing_text_StyledDocument__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentListener; + class UndoableEditListener; + } + namespace text + { + class AttributeSet; + class Element; + class Position; + class Segment; + class Style; + class StyledDocument; + } + } + } +} + +class javax::swing::text::StyledDocument : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::text::Style * addStyle(::java::lang::String *, ::javax::swing::text::Style *) = 0; + virtual void removeStyle(::java::lang::String *) = 0; + virtual ::javax::swing::text::Style * getStyle(::java::lang::String *) = 0; + virtual void setCharacterAttributes(jint, jint, ::javax::swing::text::AttributeSet *, jboolean) = 0; + virtual void setParagraphAttributes(jint, jint, ::javax::swing::text::AttributeSet *, jboolean) = 0; + virtual ::javax::swing::text::Style * getLogicalStyle(jint) = 0; + virtual void setLogicalStyle(jint, ::javax::swing::text::Style *) = 0; + virtual ::javax::swing::text::Element * getParagraphElement(jint) = 0; + virtual ::javax::swing::text::Element * getCharacterElement(jint) = 0; + virtual ::java::awt::Color * getForeground(::javax::swing::text::AttributeSet *) = 0; + virtual ::java::awt::Color * getBackground(::javax::swing::text::AttributeSet *) = 0; + virtual ::java::awt::Font * getFont(::javax::swing::text::AttributeSet *) = 0; + virtual void addDocumentListener(::javax::swing::event::DocumentListener *) = 0; + virtual void addUndoableEditListener(::javax::swing::event::UndoableEditListener *) = 0; + virtual ::javax::swing::text::Position * createPosition(jint) = 0; + virtual ::javax::swing::text::Element * getDefaultRootElement() = 0; + virtual ::javax::swing::text::Position * getEndPosition() = 0; + virtual jint getLength() = 0; + virtual ::java::lang::Object * getProperty(::java::lang::Object *) = 0; + virtual JArray< ::javax::swing::text::Element * > * getRootElements() = 0; + virtual ::javax::swing::text::Position * getStartPosition() = 0; + virtual ::java::lang::String * getText(jint, jint) = 0; + virtual void getText(jint, jint, ::javax::swing::text::Segment *) = 0; + virtual void insertString(jint, ::java::lang::String *, ::javax::swing::text::AttributeSet *) = 0; + virtual void putProperty(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual void remove(jint, jint) = 0; + virtual void removeDocumentListener(::javax::swing::event::DocumentListener *) = 0; + virtual void removeUndoableEditListener(::javax::swing::event::UndoableEditListener *) = 0; + virtual void render(::java::lang::Runnable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_StyledDocument__ diff --git a/libjava/javax/swing/text/StyledEditorKit$AlignmentAction.h b/libjava/javax/swing/text/StyledEditorKit$AlignmentAction.h new file mode 100644 index 00000000000..5056840d48f --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$AlignmentAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$AlignmentAction__ +#define __javax_swing_text_StyledEditorKit$AlignmentAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class StyledEditorKit$AlignmentAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$AlignmentAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + StyledEditorKit$AlignmentAction(::java::lang::String *, jint); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::text::StyledEditorKit$StyledTextAction)))) a; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$AlignmentAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit$BoldAction.h b/libjava/javax/swing/text/StyledEditorKit$BoldAction.h new file mode 100644 index 00000000000..53f1d4ce794 --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$BoldAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$BoldAction__ +#define __javax_swing_text_StyledEditorKit$BoldAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class StyledEditorKit$BoldAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$BoldAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + StyledEditorKit$BoldAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$BoldAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit$CaretTracker.h b/libjava/javax/swing/text/StyledEditorKit$CaretTracker.h new file mode 100644 index 00000000000..bda26b61b6a --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$CaretTracker.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$CaretTracker__ +#define __javax_swing_text_StyledEditorKit$CaretTracker__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class CaretEvent; + } + namespace text + { + class StyledEditorKit; + class StyledEditorKit$CaretTracker; + } + } + } +} + +class javax::swing::text::StyledEditorKit$CaretTracker : public ::java::lang::Object +{ + +public: // actually package-private + StyledEditorKit$CaretTracker(::javax::swing::text::StyledEditorKit *); +public: + virtual void caretUpdate(::javax::swing::event::CaretEvent *); +public: // actually package-private + ::javax::swing::text::StyledEditorKit * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$CaretTracker__ diff --git a/libjava/javax/swing/text/StyledEditorKit$FontFamilyAction.h b/libjava/javax/swing/text/StyledEditorKit$FontFamilyAction.h new file mode 100644 index 00000000000..55ba1378478 --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$FontFamilyAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$FontFamilyAction__ +#define __javax_swing_text_StyledEditorKit$FontFamilyAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class StyledEditorKit$FontFamilyAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$FontFamilyAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + StyledEditorKit$FontFamilyAction(::java::lang::String *, ::java::lang::String *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::text::StyledEditorKit$StyledTextAction)))) family; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$FontFamilyAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit$FontSizeAction.h b/libjava/javax/swing/text/StyledEditorKit$FontSizeAction.h new file mode 100644 index 00000000000..16d6cf3c854 --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$FontSizeAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$FontSizeAction__ +#define __javax_swing_text_StyledEditorKit$FontSizeAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class StyledEditorKit$FontSizeAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$FontSizeAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + StyledEditorKit$FontSizeAction(::java::lang::String *, jint); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::text::StyledEditorKit$StyledTextAction)))) size; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$FontSizeAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit$ForegroundAction.h b/libjava/javax/swing/text/StyledEditorKit$ForegroundAction.h new file mode 100644 index 00000000000..7b71ef5705e --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$ForegroundAction.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$ForegroundAction__ +#define __javax_swing_text_StyledEditorKit$ForegroundAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class StyledEditorKit$ForegroundAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$ForegroundAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + StyledEditorKit$ForegroundAction(::java::lang::String *, ::java::awt::Color *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::text::StyledEditorKit$StyledTextAction)))) fg; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$ForegroundAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit$ItalicAction.h b/libjava/javax/swing/text/StyledEditorKit$ItalicAction.h new file mode 100644 index 00000000000..af60f01d3c6 --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$ItalicAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$ItalicAction__ +#define __javax_swing_text_StyledEditorKit$ItalicAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class StyledEditorKit$ItalicAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$ItalicAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + StyledEditorKit$ItalicAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$ItalicAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit$StyledTextAction.h b/libjava/javax/swing/text/StyledEditorKit$StyledTextAction.h new file mode 100644 index 00000000000..c85bc8c8926 --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$StyledTextAction.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$StyledTextAction__ +#define __javax_swing_text_StyledEditorKit$StyledTextAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JEditorPane; + namespace text + { + class AttributeSet; + class StyledDocument; + class StyledEditorKit; + class StyledEditorKit$StyledTextAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$StyledTextAction : public ::javax::swing::text::TextAction +{ + +public: + StyledEditorKit$StyledTextAction(::java::lang::String *); +public: // actually protected + virtual ::javax::swing::JEditorPane * getEditor(::java::awt::event::ActionEvent *); + virtual void setCharacterAttributes(::javax::swing::JEditorPane *, ::javax::swing::text::AttributeSet *, jboolean); + virtual ::javax::swing::text::StyledDocument * getStyledDocument(::javax::swing::JEditorPane *); + virtual ::javax::swing::text::StyledEditorKit * getStyledEditorKit(::javax::swing::JEditorPane *); + virtual void setParagraphAttributes(::javax::swing::JEditorPane *, ::javax::swing::text::AttributeSet *, jboolean); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$StyledTextAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit$StyledViewFactory.h b/libjava/javax/swing/text/StyledEditorKit$StyledViewFactory.h new file mode 100644 index 00000000000..0e5ad47a9d0 --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$StyledViewFactory.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$StyledViewFactory__ +#define __javax_swing_text_StyledEditorKit$StyledViewFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class StyledEditorKit$StyledViewFactory; + class View; + } + } + } +} + +class javax::swing::text::StyledEditorKit$StyledViewFactory : public ::java::lang::Object +{ + +public: // actually package-private + StyledEditorKit$StyledViewFactory(); +public: + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$StyledViewFactory__ diff --git a/libjava/javax/swing/text/StyledEditorKit$UnderlineAction.h b/libjava/javax/swing/text/StyledEditorKit$UnderlineAction.h new file mode 100644 index 00000000000..4df2fa6d1c1 --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit$UnderlineAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit$UnderlineAction__ +#define __javax_swing_text_StyledEditorKit$UnderlineAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class StyledEditorKit$UnderlineAction; + } + } + } +} + +class javax::swing::text::StyledEditorKit$UnderlineAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + StyledEditorKit$UnderlineAction(); + virtual void actionPerformed(::java::awt::event::ActionEvent *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit$UnderlineAction__ diff --git a/libjava/javax/swing/text/StyledEditorKit.h b/libjava/javax/swing/text/StyledEditorKit.h new file mode 100644 index 00000000000..e5ce1b4b4fa --- /dev/null +++ b/libjava/javax/swing/text/StyledEditorKit.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_StyledEditorKit__ +#define __javax_swing_text_StyledEditorKit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class Action; + class JEditorPane; + namespace text + { + class Document; + class Element; + class MutableAttributeSet; + class StyledEditorKit; + class StyledEditorKit$CaretTracker; + class StyledEditorKit$StyledViewFactory; + class ViewFactory; + } + } + } +} + +class javax::swing::text::StyledEditorKit : public ::javax::swing::text::DefaultEditorKit +{ + +public: + StyledEditorKit(); + virtual ::java::lang::Object * clone(); + virtual JArray< ::javax::swing::Action * > * getActions(); + virtual ::javax::swing::text::MutableAttributeSet * getInputAttributes(); + virtual ::javax::swing::text::Element * getCharacterAttributeRun(); + virtual ::javax::swing::text::Document * createDefaultDocument(); + virtual void install(::javax::swing::JEditorPane *); + virtual void deinstall(::javax::swing::JEditorPane *); + virtual ::javax::swing::text::ViewFactory * getViewFactory(); +public: // actually protected + virtual void createInputAttributes(::javax::swing::text::Element *, ::javax::swing::text::MutableAttributeSet *); +private: + static const jlong serialVersionUID = 7002391892985555948LL; +public: // actually package-private + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::javax::swing::text::DefaultEditorKit)))) currentRun; + ::javax::swing::text::MutableAttributeSet * inputAttributes; + ::javax::swing::text::StyledEditorKit$CaretTracker * caretTracker; + ::javax::swing::text::StyledEditorKit$StyledViewFactory * viewFactory; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_StyledEditorKit__ diff --git a/libjava/javax/swing/text/TabExpander.h b/libjava/javax/swing/text/TabExpander.h new file mode 100644 index 00000000000..8983223a436 --- /dev/null +++ b/libjava/javax/swing/text/TabExpander.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TabExpander__ +#define __javax_swing_text_TabExpander__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class TabExpander; + } + } + } +} + +class javax::swing::text::TabExpander : public ::java::lang::Object +{ + +public: + virtual jfloat nextTabStop(jfloat, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_TabExpander__ diff --git a/libjava/javax/swing/text/TabSet.h b/libjava/javax/swing/text/TabSet.h new file mode 100644 index 00000000000..943a115099e --- /dev/null +++ b/libjava/javax/swing/text/TabSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TabSet__ +#define __javax_swing_text_TabSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class TabSet; + class TabStop; + } + } + } +} + +class javax::swing::text::TabSet : public ::java::lang::Object +{ + +public: + TabSet(JArray< ::javax::swing::text::TabStop * > *); + virtual ::javax::swing::text::TabStop * getTab(jint); + virtual ::javax::swing::text::TabStop * getTabAfter(jfloat); + virtual jint getTabCount(); + virtual jint getTabIndex(::javax::swing::text::TabStop *); + virtual jint getTabIndexAfter(jfloat); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 2367703481999080593LL; +public: // actually package-private + JArray< ::javax::swing::text::TabStop * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) tabs; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TabSet__ diff --git a/libjava/javax/swing/text/TabStop.h b/libjava/javax/swing/text/TabStop.h new file mode 100644 index 00000000000..cc8fb1232ff --- /dev/null +++ b/libjava/javax/swing/text/TabStop.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TabStop__ +#define __javax_swing_text_TabStop__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class TabStop; + } + } + } +} + +class javax::swing::text::TabStop : public ::java::lang::Object +{ + +public: + TabStop(jfloat); + TabStop(jfloat, jint, jint); + virtual jboolean equals(::java::lang::Object *); + virtual jint getAlignment(); + virtual jint getLeader(); + virtual jfloat getPosition(); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -5381995917363605058LL; +public: + static const jint ALIGN_LEFT = 0; + static const jint ALIGN_RIGHT = 1; + static const jint ALIGN_CENTER = 2; + static const jint ALIGN_DECIMAL = 4; + static const jint ALIGN_BAR = 5; + static const jint LEAD_NONE = 0; + static const jint LEAD_DOTS = 1; + static const jint LEAD_HYPHENS = 2; + static const jint LEAD_UNDERLINE = 3; + static const jint LEAD_THICKLINE = 4; + static const jint LEAD_EQUALS = 5; +public: // actually package-private + jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) pos; + jint align; + jint leader; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TabStop__ diff --git a/libjava/javax/swing/text/TabableView.h b/libjava/javax/swing/text/TabableView.h new file mode 100644 index 00000000000..b9e9a7a86f0 --- /dev/null +++ b/libjava/javax/swing/text/TabableView.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TabableView__ +#define __javax_swing_text_TabableView__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class TabExpander; + class TabableView; + } + } + } +} + +class javax::swing::text::TabableView : public ::java::lang::Object +{ + +public: + virtual jfloat getPartialSpan(jint, jint) = 0; + virtual jfloat getTabbedSpan(jfloat, ::javax::swing::text::TabExpander *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_TabableView__ diff --git a/libjava/javax/swing/text/TableView$TableCell.h b/libjava/javax/swing/text/TableView$TableCell.h new file mode 100644 index 00000000000..44efc2f6c9b --- /dev/null +++ b/libjava/javax/swing/text/TableView$TableCell.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TableView$TableCell__ +#define __javax_swing_text_TableView$TableCell__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class TableView; + class TableView$TableCell; + } + } + } +} + +class javax::swing::text::TableView$TableCell : public ::javax::swing::text::BoxView +{ + +public: + TableView$TableCell(::javax::swing::text::TableView *, ::javax::swing::text::Element *); + virtual jint getColumnCount(); + virtual jint getRowCount(); + virtual void setGridLocation(jint, jint); + virtual jint getGridRow(); + virtual jint getGridColumn(); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) row; + jint column; +public: // actually package-private + ::javax::swing::text::TableView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TableView$TableCell__ diff --git a/libjava/javax/swing/text/TableView$TableRow.h b/libjava/javax/swing/text/TableView$TableRow.h new file mode 100644 index 00000000000..0cb23241da4 --- /dev/null +++ b/libjava/javax/swing/text/TableView$TableRow.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TableView$TableRow__ +#define __javax_swing_text_TableView$TableRow__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class TableView; + class TableView$TableRow; + class View; + } + } + } +} + +class javax::swing::text::TableView$TableRow : public ::javax::swing::text::BoxView +{ + +public: + TableView$TableRow(::javax::swing::text::TableView *, ::javax::swing::text::Element *); + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); +public: // actually protected + virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *); + virtual void layoutMinorAxis(jint, jint, JArray< jint > *, JArray< jint > *); +public: + virtual jint getResizeWeight(jint); +public: // actually protected + virtual ::javax::swing::text::View * getViewAtPosition(jint, ::java::awt::Rectangle *); +public: // actually package-private + ::javax::swing::text::TableView * __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) this$0; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TableView$TableRow__ diff --git a/libjava/javax/swing/text/TableView.h b/libjava/javax/swing/text/TableView.h new file mode 100644 index 00000000000..7bf5f836976 --- /dev/null +++ b/libjava/javax/swing/text/TableView.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TableView__ +#define __javax_swing_text_TableView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace event + { + class DocumentEvent; + class DocumentEvent$ElementChange; + } + namespace text + { + class Element; + class TableView; + class TableView$TableCell; + class TableView$TableRow; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::TableView : public ::javax::swing::text::BoxView +{ + +public: + TableView(::javax::swing::text::Element *); + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); +public: // actually protected + virtual ::javax::swing::text::TableView$TableRow * createTableRow(::javax::swing::text::Element *); + virtual ::javax::swing::text::TableView$TableCell * createTableCell(::javax::swing::text::Element *); + virtual void forwardUpdate(::javax::swing::event::DocumentEvent$ElementChange *, ::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void layoutColumns(jint, JArray< jint > *, JArray< jint > *, JArray< ::javax::swing::SizeRequirements * > *); + virtual void layoutMinorAxis(jint, jint, JArray< jint > *, JArray< jint > *); + virtual ::javax::swing::SizeRequirements * calculateMinorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual ::javax::swing::text::View * getViewAtPosition(jint, ::java::awt::Rectangle *); +private: + void updateColumnRequirements(); +public: // actually package-private + JArray< jint > * __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) columnOffsets; + JArray< jint > * columnSpans; + JArray< ::javax::swing::SizeRequirements * > * columnRequirements; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TableView__ diff --git a/libjava/javax/swing/text/TextAction$HorizontalMovementAction.h b/libjava/javax/swing/text/TextAction$HorizontalMovementAction.h new file mode 100644 index 00000000000..93bf43700bb --- /dev/null +++ b/libjava/javax/swing/text/TextAction$HorizontalMovementAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TextAction$HorizontalMovementAction__ +#define __javax_swing_text_TextAction$HorizontalMovementAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class TextAction$HorizontalMovementAction; + } + } + } +} + +class javax::swing::text::TextAction$HorizontalMovementAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + TextAction$HorizontalMovementAction(::java::lang::String *, jint); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint) = 0; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::javax::swing::text::TextAction)))) dir; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TextAction$HorizontalMovementAction__ diff --git a/libjava/javax/swing/text/TextAction$VerticalMovementAction.h b/libjava/javax/swing/text/TextAction$VerticalMovementAction.h new file mode 100644 index 00000000000..b25ec52ce8a --- /dev/null +++ b/libjava/javax/swing/text/TextAction$VerticalMovementAction.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TextAction$VerticalMovementAction__ +#define __javax_swing_text_TextAction$VerticalMovementAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Caret; + class TextAction$VerticalMovementAction; + } + } + } +} + +class javax::swing::text::TextAction$VerticalMovementAction : public ::javax::swing::text::TextAction +{ + +public: // actually package-private + TextAction$VerticalMovementAction(::java::lang::String *, jint); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually protected + virtual void actionPerformedImpl(::javax::swing::text::Caret *, jint) = 0; +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::javax::swing::text::TextAction)))) dir; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TextAction$VerticalMovementAction__ diff --git a/libjava/javax/swing/text/TextAction.h b/libjava/javax/swing/text/TextAction.h new file mode 100644 index 00000000000..cfb9c1c9819 --- /dev/null +++ b/libjava/javax/swing/text/TextAction.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_TextAction__ +#define __javax_swing_text_TextAction__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class Action; + namespace text + { + class JTextComponent; + class TextAction; + } + } + } +} + +class javax::swing::text::TextAction : public ::javax::swing::AbstractAction +{ + +public: + TextAction(::java::lang::String *); +public: // actually protected + virtual ::javax::swing::text::JTextComponent * getTextComponent(::java::awt::event::ActionEvent *); +public: + static JArray< ::javax::swing::Action * > * augmentList(JArray< ::javax::swing::Action * > *, JArray< ::javax::swing::Action * > *); +public: // actually protected + virtual ::javax::swing::text::JTextComponent * getFocusedComponent(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_TextAction__ diff --git a/libjava/javax/swing/text/Utilities.h b/libjava/javax/swing/text/Utilities.h new file mode 100644 index 00000000000..ec04c43fe38 --- /dev/null +++ b/libjava/javax/swing/text/Utilities.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_Utilities__ +#define __javax_swing_text_Utilities__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class FontMetrics; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class JTextComponent; + class Segment; + class TabExpander; + class Utilities; + } + } + } +} + +class javax::swing::text::Utilities : public ::java::lang::Object +{ + +public: + Utilities(); + static jint drawTabbedText(::javax::swing::text::Segment *, jint, jint, ::java::awt::Graphics *, ::javax::swing::text::TabExpander *, jint); + static jint getTabbedTextWidth(::javax::swing::text::Segment *, ::java::awt::FontMetrics *, jint, ::javax::swing::text::TabExpander *, jint); + static jint getTabbedTextOffset(::javax::swing::text::Segment *, ::java::awt::FontMetrics *, jint, jint, ::javax::swing::text::TabExpander *, jint, jboolean); + static jint getTabbedTextOffset(::javax::swing::text::Segment *, ::java::awt::FontMetrics *, jint, jint, ::javax::swing::text::TabExpander *, jint); + static jint getNextWord(::javax::swing::text::JTextComponent *, jint); + static jint getPreviousWord(::javax::swing::text::JTextComponent *, jint); + static jint getWordStart(::javax::swing::text::JTextComponent *, jint); + static jint getWordEnd(::javax::swing::text::JTextComponent *, jint); + static jint getRowEnd(::javax::swing::text::JTextComponent *, jint); + static jint getRowStart(::javax::swing::text::JTextComponent *, jint); + static jint getBreakLocation(::javax::swing::text::Segment *, ::java::awt::FontMetrics *, jint, jint, ::javax::swing::text::TabExpander *, jint); + static ::javax::swing::text::Element * getParagraphElement(::javax::swing::text::JTextComponent *, jint); + static jint getPositionAbove(::javax::swing::text::JTextComponent *, jint, jint); + static jint getPositionBelow(::javax::swing::text::JTextComponent *, jint, jint); +public: // actually package-private + static jint getNextVisualPositionFrom(::javax::swing::text::JTextComponent *, jint, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_Utilities__ diff --git a/libjava/javax/swing/text/View.h b/libjava/javax/swing/text/View.h new file mode 100644 index 00000000000..f9d97e5731f --- /dev/null +++ b/libjava/javax/swing/text/View.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_View__ +#define __javax_swing_text_View__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Container; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + class DocumentEvent$ElementChange; + } + namespace text + { + class AttributeSet; + class Document; + class Element; + class Position$Bias; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::View : public ::java::lang::Object +{ + +public: + View(::javax::swing::text::Element *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *) = 0; + virtual void setParent(::javax::swing::text::View *); + virtual ::javax::swing::text::View * getParent(); + virtual ::java::awt::Container * getContainer(); + virtual ::javax::swing::text::Document * getDocument(); + virtual ::javax::swing::text::Element * getElement(); + virtual jfloat getPreferredSpan(jint) = 0; + virtual jint getResizeWeight(jint); + virtual jfloat getMaximumSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual void setSize(jfloat, jfloat); + virtual jfloat getAlignment(jint); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual jboolean isVisible(); + virtual jint getViewCount(); + virtual ::javax::swing::text::View * getView(jint); + virtual ::javax::swing::text::ViewFactory * getViewFactory(); + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); + virtual void insert(jint, ::javax::swing::text::View *); + virtual void append(::javax::swing::text::View *); + virtual void removeAll(); + virtual void remove(jint); + virtual ::javax::swing::text::View * createFragment(jint, jint); + virtual jint getStartOffset(); + virtual jint getEndOffset(); + virtual ::java::awt::Shape * getChildAllocation(jint, ::java::awt::Shape *); + virtual jint getViewIndex(jfloat, jfloat, ::java::awt::Shape *); + virtual ::java::lang::String * getToolTipText(jfloat, jfloat, ::java::awt::Shape *); + virtual ::java::awt::Graphics * getGraphics(); + virtual void preferenceChanged(::javax::swing::text::View *, jboolean, jboolean); + virtual jint getBreakWeight(jint, jfloat, jfloat); + virtual ::javax::swing::text::View * breakView(jint, jint, jfloat, jfloat); + virtual jint getViewIndex(jint, ::javax::swing::text::Position$Bias *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: // actually protected + virtual jboolean updateChildren(::javax::swing::event::DocumentEvent$ElementChange *, ::javax::swing::event::DocumentEvent *, ::javax::swing::text::ViewFactory *); + virtual void forwardUpdate(::javax::swing::event::DocumentEvent$ElementChange *, ::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void forwardUpdateToView(::javax::swing::text::View *, ::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void updateLayout(::javax::swing::event::DocumentEvent$ElementChange *, ::javax::swing::event::DocumentEvent *, ::java::awt::Shape *); +public: + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *) = 0; + virtual ::java::awt::Shape * modelToView(jint, ::javax::swing::text::Position$Bias *, jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *) = 0; + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *); +public: // actually protected + virtual void dump(); +public: // actually package-private + virtual void dump(jint); +public: + virtual jint getNextVisualPositionFrom(jint, ::javax::swing::text::Position$Bias *, ::java::awt::Shape *, jint, JArray< ::javax::swing::text::Position$Bias * > *); + static const jint BadBreakWeight = 0; + static const jint ExcellentBreakWeight = 2000; + static const jint ForcedBreakWeight = 3000; + static const jint GoodBreakWeight = 1000; + static const jint X_AXIS = 0; + static const jint Y_AXIS = 1; +private: + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) elt; + ::javax::swing::text::View * parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_View__ diff --git a/libjava/javax/swing/text/ViewFactory.h b/libjava/javax/swing/text/ViewFactory.h new file mode 100644 index 00000000000..a65181ab288 --- /dev/null +++ b/libjava/javax/swing/text/ViewFactory.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ViewFactory__ +#define __javax_swing_text_ViewFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class View; + class ViewFactory; + } + } + } +} + +class javax::swing::text::ViewFactory : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_ViewFactory__ diff --git a/libjava/javax/swing/text/WrappedPlainView$WrappedLine.h b/libjava/javax/swing/text/WrappedPlainView$WrappedLine.h new file mode 100644 index 00000000000..c96da223418 --- /dev/null +++ b/libjava/javax/swing/text/WrappedPlainView$WrappedLine.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_WrappedPlainView$WrappedLine__ +#define __javax_swing_text_WrappedPlainView$WrappedLine__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class Position$Bias; + class ViewFactory; + class WrappedPlainView; + class WrappedPlainView$WrappedLine; + } + } + } +} + +class javax::swing::text::WrappedPlainView$WrappedLine : public ::javax::swing::text::View +{ + +public: + WrappedPlainView$WrappedLine(::javax::swing::text::WrappedPlainView *, ::javax::swing::text::Element *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); +private: + jint determineNumLines(); +public: + virtual jfloat getPreferredSpan(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); +public: // actually package-private + virtual void updateDamage(::java::awt::Rectangle *); +public: + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) numLines; + ::javax::swing::text::WrappedPlainView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_WrappedPlainView$WrappedLine__ diff --git a/libjava/javax/swing/text/WrappedPlainView$WrappedLineCreator.h b/libjava/javax/swing/text/WrappedPlainView$WrappedLineCreator.h new file mode 100644 index 00000000000..eb249a0c0c6 --- /dev/null +++ b/libjava/javax/swing/text/WrappedPlainView$WrappedLineCreator.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_WrappedPlainView$WrappedLineCreator__ +#define __javax_swing_text_WrappedPlainView$WrappedLineCreator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class View; + class WrappedPlainView; + class WrappedPlainView$WrappedLineCreator; + } + } + } +} + +class javax::swing::text::WrappedPlainView$WrappedLineCreator : public ::java::lang::Object +{ + +public: // actually package-private + WrappedPlainView$WrappedLineCreator(::javax::swing::text::WrappedPlainView *); +public: + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); +public: // actually package-private + ::javax::swing::text::WrappedPlainView * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_WrappedPlainView$WrappedLineCreator__ diff --git a/libjava/javax/swing/text/WrappedPlainView.h b/libjava/javax/swing/text/WrappedPlainView.h new file mode 100644 index 00000000000..1082073cc34 --- /dev/null +++ b/libjava/javax/swing/text/WrappedPlainView.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_WrappedPlainView__ +#define __javax_swing_text_WrappedPlainView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class FontMetrics; + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class Element; + class Segment; + class ViewFactory; + class WrappedPlainView; + } + } + } +} + +class javax::swing::text::WrappedPlainView : public ::javax::swing::text::BoxView +{ + +public: + WrappedPlainView(::javax::swing::text::Element *); + WrappedPlainView(::javax::swing::text::Element *, jboolean); +public: // actually protected + virtual ::javax::swing::text::Segment * getLineBuffer(); +public: + virtual jfloat nextTabStop(jfloat, jint); +public: // actually protected + virtual jint getTabSize(); + virtual void drawLine(jint, jint, ::java::awt::Graphics *, jint, jint); + virtual jint drawSelectedText(::java::awt::Graphics *, jint, jint, jint, jint); + virtual jint drawUnselectedText(::java::awt::Graphics *, jint, jint, jint, jint); + virtual void loadChildren(::javax::swing::text::ViewFactory *); + virtual jint calculateBreakPosition(jint, jint); +public: // actually package-private + virtual void updateMetrics(); +public: + virtual jfloat getPreferredSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual jfloat getMaximumSpan(jint); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +private: + void updateChildren(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *); +public: + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual void setSize(jfloat, jfloat); +public: // actually package-private + ::java::awt::Color * __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) selectedColor; + ::java::awt::Color * unselectedColor; + ::java::awt::Color * disabledColor; + ::java::awt::FontMetrics * metrics; + jboolean wordWrap; + ::javax::swing::text::ViewFactory * viewFactory; + jint selectionStart; + jint selectionEnd; + jint lineHeight; +private: + jint tabBase; + jint tabSize; + ::javax::swing::text::Segment * lineBuffer; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_WrappedPlainView__ diff --git a/libjava/javax/swing/text/ZoneView$Zone.h b/libjava/javax/swing/text/ZoneView$Zone.h new file mode 100644 index 00000000000..86a5bc87c12 --- /dev/null +++ b/libjava/javax/swing/text/ZoneView$Zone.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ZoneView$Zone__ +#define __javax_swing_text_ZoneView$Zone__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class Position; + class ZoneView$Zone; + } + } + } +} + +class javax::swing::text::ZoneView$Zone : public ::javax::swing::text::AsyncBoxView +{ + +public: // actually package-private + ZoneView$Zone(::javax::swing::text::Element *, ::javax::swing::text::Position *, ::javax::swing::text::Position *, jint); +public: + virtual jint getStartOffset(); + virtual jint getEndOffset(); +private: + ::javax::swing::text::Position * __attribute__((aligned(__alignof__( ::javax::swing::text::AsyncBoxView)))) p0; + ::javax::swing::text::Position * p1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ZoneView$Zone__ diff --git a/libjava/javax/swing/text/ZoneView.h b/libjava/javax/swing/text/ZoneView.h new file mode 100644 index 00000000000..324d90c0a33 --- /dev/null +++ b/libjava/javax/swing/text/ZoneView.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_ZoneView__ +#define __javax_swing_text_ZoneView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + class DocumentEvent$ElementChange; + } + namespace text + { + class Element; + class View; + class ViewFactory; + class ZoneView; + } + } + } +} + +class javax::swing::text::ZoneView : public ::javax::swing::text::BoxView +{ + +public: + ZoneView(::javax::swing::text::Element *, jint); + virtual void setMaximumZoneSize(jint); + virtual jint getMaximumZoneSize(); + virtual void setMaxZonesLoaded(jint); + virtual jint getMaxZonesLoaded(); +public: // actually protected + virtual void zoneWasLoaded(::javax::swing::text::View *); + virtual void unloadZone(::javax::swing::text::View *); + virtual jboolean isZoneLoaded(::javax::swing::text::View *); + virtual ::javax::swing::text::View * createZone(jint, jint); + virtual void loadChildren(::javax::swing::text::ViewFactory *); + virtual jint getViewIndexAtPosition(jint); +public: + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); +public: // actually protected + virtual jboolean updateChildren(::javax::swing::event::DocumentEvent$ElementChange *, ::javax::swing::event::DocumentEvent *, ::javax::swing::text::ViewFactory *); +private: + void unloadOldestZones(); + void checkZoneAt(jint); + void splitZone(jint, jint, jint); + jint getPreferredZoneEnd(jint); + jint __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) maximumZoneSize; + jint maxZonesLoaded; + ::java::util::LinkedList * loadedZones; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_ZoneView__ diff --git a/libjava/javax/swing/text/html/BRView.h b/libjava/javax/swing/text/html/BRView.h new file mode 100644 index 00000000000..aee03f09e05 --- /dev/null +++ b/libjava/javax/swing/text/html/BRView.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_BRView__ +#define __javax_swing_text_html_BRView__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + namespace html + { + class BRView; + } + } + } + } +} + +class javax::swing::text::html::BRView : public ::javax::swing::text::html::InlineView +{ + +public: + BRView(::javax::swing::text::Element *); + virtual jint getBreakWeight(jint, jfloat, jfloat); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_BRView__ diff --git a/libjava/javax/swing/text/html/BlockView$PositionInfo.h b/libjava/javax/swing/text/html/BlockView$PositionInfo.h new file mode 100644 index 00000000000..1e19b610fd4 --- /dev/null +++ b/libjava/javax/swing/text/html/BlockView$PositionInfo.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_BlockView$PositionInfo__ +#define __javax_swing_text_html_BlockView$PositionInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Length; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class BlockView$PositionInfo; + } + } + } + } +} + +class javax::swing::text::html::BlockView$PositionInfo : public ::java::lang::Object +{ + +public: // actually package-private + BlockView$PositionInfo(jint, ::gnu::javax::swing::text::html::css::Length *, ::gnu::javax::swing::text::html::css::Length *, ::gnu::javax::swing::text::html::css::Length *, ::gnu::javax::swing::text::html::css::Length *); + static const jint STATIC = 0; + static const jint RELATIVE = 1; + static const jint ABSOLUTE = 2; + static const jint FIXED = 3; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::gnu::javax::swing::text::html::css::Length * left; + ::gnu::javax::swing::text::html::css::Length * right; + ::gnu::javax::swing::text::html::css::Length * top; + ::gnu::javax::swing::text::html::css::Length * bottom; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_BlockView$PositionInfo__ diff --git a/libjava/javax/swing/text/html/BlockView.h b/libjava/javax/swing/text/html/BlockView.h new file mode 100644 index 00000000000..b8608f5c001 --- /dev/null +++ b/libjava/javax/swing/text/html/BlockView.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_BlockView__ +#define __javax_swing_text_html_BlockView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Length; + } + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace event + { + class DocumentEvent; + } + namespace text + { + class AttributeSet; + class Element; + class View; + class ViewFactory; + namespace html + { + class BlockView; + class StyleSheet; + class StyleSheet$BoxPainter; + } + } + } + } +} + +class javax::swing::text::html::BlockView : public ::javax::swing::text::BoxView +{ + +public: + BlockView(::javax::swing::text::Element *, jint); + virtual void setParent(::javax::swing::text::View *); +public: // actually protected + virtual ::javax::swing::SizeRequirements * calculateMajorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual ::javax::swing::SizeRequirements * calculateMinorAxisRequirements(jint, ::javax::swing::SizeRequirements *); +private: + jboolean setCSSSpan(::javax::swing::SizeRequirements *, jint); + void constrainSize(jint, ::javax::swing::SizeRequirements *, ::javax::swing::SizeRequirements *); +public: // actually protected + virtual void layoutMinorAxis(jint, jint, JArray< jint > *, JArray< jint > *); + virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *); +private: + void positionView(jint, jint, jint, JArray< jint > *, JArray< jint > *); +public: + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual jint getResizeWeight(jint); + virtual jfloat getAlignment(jint); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual jfloat getPreferredSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual jfloat getMaximumSpan(jint); +public: // actually protected + virtual void setPropertiesFromAttributes(); + virtual ::javax::swing::text::html::StyleSheet * getStyleSheet(); +public: + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); +private: + void fetchLayoutInfo(::javax::swing::text::View *); + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) attributes; +public: // actually package-private + ::javax::swing::text::html::StyleSheet$BoxPainter * painter; +private: + JArray< ::gnu::javax::swing::text::html::css::Length * > * cssSpans; + ::java::util::HashMap * positionInfo; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_BlockView__ diff --git a/libjava/javax/swing/text/html/CSS$Attribute.h b/libjava/javax/swing/text/html/CSS$Attribute.h new file mode 100644 index 00000000000..44c82500b25 --- /dev/null +++ b/libjava/javax/swing/text/html/CSS$Attribute.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_CSS$Attribute__ +#define __javax_swing_text_html_CSS$Attribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class CSS$Attribute; + } + } + } + } +} + +class javax::swing::text::html::CSS$Attribute : public ::java::lang::Object +{ + +public: // actually package-private + CSS$Attribute(::java::lang::String *, jboolean, ::java::lang::String *); +public: + ::java::lang::String * toString(); + jboolean isInherited(); + ::java::lang::String * getDefaultValue(); + static ::javax::swing::text::html::CSS$Attribute * BACKGROUND; + static ::javax::swing::text::html::CSS$Attribute * BACKGROUND_ATTACHMENT; + static ::javax::swing::text::html::CSS$Attribute * BACKGROUND_COLOR; + static ::javax::swing::text::html::CSS$Attribute * BACKGROUND_IMAGE; + static ::javax::swing::text::html::CSS$Attribute * BACKGROUND_POSITION; + static ::javax::swing::text::html::CSS$Attribute * BACKGROUND_REPEAT; + static ::javax::swing::text::html::CSS$Attribute * BORDER; + static ::javax::swing::text::html::CSS$Attribute * BORDER_BOTTOM; + static ::javax::swing::text::html::CSS$Attribute * BORDER_BOTTOM_WIDTH; + static ::javax::swing::text::html::CSS$Attribute * BORDER_COLOR; + static ::javax::swing::text::html::CSS$Attribute * BORDER_LEFT; + static ::javax::swing::text::html::CSS$Attribute * BORDER_LEFT_WIDTH; + static ::javax::swing::text::html::CSS$Attribute * BORDER_RIGHT; + static ::javax::swing::text::html::CSS$Attribute * BORDER_RIGHT_WIDTH; + static ::javax::swing::text::html::CSS$Attribute * BORDER_STYLE; + static ::javax::swing::text::html::CSS$Attribute * BORDER_TOP; + static ::javax::swing::text::html::CSS$Attribute * BORDER_TOP_WIDTH; + static ::javax::swing::text::html::CSS$Attribute * BORDER_WIDTH; + static ::javax::swing::text::html::CSS$Attribute * CLEAR; + static ::javax::swing::text::html::CSS$Attribute * COLOR; + static ::javax::swing::text::html::CSS$Attribute * DISPLAY; + static ::javax::swing::text::html::CSS$Attribute * FLOAT; + static ::javax::swing::text::html::CSS$Attribute * FONT; + static ::javax::swing::text::html::CSS$Attribute * FONT_FAMILY; + static ::javax::swing::text::html::CSS$Attribute * FONT_SIZE; + static ::javax::swing::text::html::CSS$Attribute * FONT_STYLE; + static ::javax::swing::text::html::CSS$Attribute * FONT_VARIANT; + static ::javax::swing::text::html::CSS$Attribute * FONT_WEIGHT; + static ::javax::swing::text::html::CSS$Attribute * HEIGHT; + static ::javax::swing::text::html::CSS$Attribute * LETTER_SPACING; + static ::javax::swing::text::html::CSS$Attribute * LINE_HEIGHT; + static ::javax::swing::text::html::CSS$Attribute * LIST_STYLE; + static ::javax::swing::text::html::CSS$Attribute * LIST_STYLE_IMAGE; + static ::javax::swing::text::html::CSS$Attribute * LIST_STYLE_POSITION; + static ::javax::swing::text::html::CSS$Attribute * LIST_STYLE_TYPE; + static ::javax::swing::text::html::CSS$Attribute * MARGIN; + static ::javax::swing::text::html::CSS$Attribute * MARGIN_BOTTOM; + static ::javax::swing::text::html::CSS$Attribute * MARGIN_LEFT; + static ::javax::swing::text::html::CSS$Attribute * MARGIN_RIGHT; + static ::javax::swing::text::html::CSS$Attribute * MARGIN_TOP; + static ::javax::swing::text::html::CSS$Attribute * PADDING; + static ::javax::swing::text::html::CSS$Attribute * PADDING_BOTTOM; + static ::javax::swing::text::html::CSS$Attribute * PADDING_LEFT; + static ::javax::swing::text::html::CSS$Attribute * PADDING_RIGHT; + static ::javax::swing::text::html::CSS$Attribute * PADDING_TOP; + static ::javax::swing::text::html::CSS$Attribute * TEXT_ALIGN; + static ::javax::swing::text::html::CSS$Attribute * TEXT_DECORATION; + static ::javax::swing::text::html::CSS$Attribute * TEXT_INDENT; + static ::javax::swing::text::html::CSS$Attribute * TEXT_TRANSFORM; + static ::javax::swing::text::html::CSS$Attribute * VERTICAL_ALIGN; + static ::javax::swing::text::html::CSS$Attribute * WHITE_SPACE; + static ::javax::swing::text::html::CSS$Attribute * WIDTH; + static ::javax::swing::text::html::CSS$Attribute * WORD_SPACING; +public: // actually package-private + static ::javax::swing::text::html::CSS$Attribute * BORDER_TOP_STYLE; + static ::javax::swing::text::html::CSS$Attribute * BORDER_BOTTOM_STYLE; + static ::javax::swing::text::html::CSS$Attribute * BORDER_LEFT_STYLE; + static ::javax::swing::text::html::CSS$Attribute * BORDER_RIGHT_STYLE; + static ::javax::swing::text::html::CSS$Attribute * BORDER_TOP_COLOR; + static ::javax::swing::text::html::CSS$Attribute * BORDER_BOTTOM_COLOR; + static ::javax::swing::text::html::CSS$Attribute * BORDER_LEFT_COLOR; + static ::javax::swing::text::html::CSS$Attribute * BORDER_RIGHT_COLOR; + static ::javax::swing::text::html::CSS$Attribute * BORDER_SPACING; + static ::javax::swing::text::html::CSS$Attribute * POSITION; + static ::javax::swing::text::html::CSS$Attribute * LEFT; + static ::javax::swing::text::html::CSS$Attribute * RIGHT; + static ::javax::swing::text::html::CSS$Attribute * TOP; + static ::javax::swing::text::html::CSS$Attribute * BOTTOM; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attStr; + jboolean isInherited__; + ::java::lang::String * defaultValue; + static ::java::util::HashMap * attributeMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_CSS$Attribute__ diff --git a/libjava/javax/swing/text/html/CSS.h b/libjava/javax/swing/text/html/CSS.h new file mode 100644 index 00000000000..1f3922db0bb --- /dev/null +++ b/libjava/javax/swing/text/html/CSS.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_CSS__ +#define __javax_swing_text_html_CSS__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class CSS; + class CSS$Attribute; + } + } + } + } +} + +class javax::swing::text::html::CSS : public ::java::lang::Object +{ + +public: + CSS(); + static JArray< ::javax::swing::text::html::CSS$Attribute * > * getAllAttributeKeys(); + static ::javax::swing::text::html::CSS$Attribute * getAttribute(::java::lang::String *); +public: // actually package-private + static ::java::lang::Object * getValue(::javax::swing::text::html::CSS$Attribute *, ::java::lang::String *); + static void addInternal(::javax::swing::text::MutableAttributeSet *, ::javax::swing::text::html::CSS$Attribute *, ::java::lang::String *); +private: + static void parseBackgroundShorthand(::javax::swing::text::MutableAttributeSet *, ::java::lang::String *); + static void parsePaddingShorthand(::javax::swing::text::MutableAttributeSet *, ::java::lang::String *); + static void parseMarginShorthand(::javax::swing::text::MutableAttributeSet *, ::java::lang::String *); + static void parseBorderShorthand(::javax::swing::text::MutableAttributeSet *, ::java::lang::String *, ::javax::swing::text::html::CSS$Attribute *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_CSS__ diff --git a/libjava/javax/swing/text/html/CSSBorder.h b/libjava/javax/swing/text/html/CSSBorder.h new file mode 100644 index 00000000000..aa836ff65e1 --- /dev/null +++ b/libjava/javax/swing/text/html/CSSBorder.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_CSSBorder__ +#define __javax_swing_text_html_CSSBorder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Graphics; + class Insets; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + namespace html + { + class CSS$Attribute; + class CSSBorder; + class StyleSheet; + } + } + } + } +} + +class javax::swing::text::html::CSSBorder : public ::java::lang::Object +{ + +public: // actually package-private + CSSBorder(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::StyleSheet *); +private: + jint getBorderStyle(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::CSS$Attribute *); + ::java::awt::Color * getBorderColor(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::CSS$Attribute *); + jint getBorderWidth(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::CSS$Attribute *, ::javax::swing::text::html::StyleSheet *); +public: + virtual ::java::awt::Insets * getBorderInsets(::java::awt::Component *); + virtual jboolean isBorderOpaque(); + virtual void paintBorder(::java::awt::Component *, ::java::awt::Graphics *, jint, jint, jint, jint); +private: + void paintBorderLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintDottedLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintDashedLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintSolidLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintDoubleLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintGrooveLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintRidgeLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintOutsetLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + void paintInsetLine(::java::awt::Graphics *, jint, jint, jint, jint, jint, ::java::awt::Color *, jboolean); + static const jint STYLE_NOT_SET = -1; + static const jint STYLE_NONE = 0; + static const jint STYLE_HIDDEN = 1; + static const jint STYLE_DOTTED = 2; + static const jint STYLE_DASHED = 3; + static const jint STYLE_SOLID = 4; + static const jint STYLE_DOUBLE = 5; + static const jint STYLE_GROOVE = 6; + static const jint STYLE_RIDGE = 7; + static const jint STYLE_INSET = 8; + static const jint STYLE_OUTSET = 9; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) left; + jint right; + jint top; + jint bottom; + jint leftStyle; + jint rightStyle; + jint topStyle; + ::java::awt::Color * topColor; + ::java::awt::Color * bottomColor; + ::java::awt::Color * leftColor; + ::java::awt::Color * rightColor; + jint bottomStyle; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_CSSBorder__ diff --git a/libjava/javax/swing/text/html/CSSParser$CSSParserCallback.h b/libjava/javax/swing/text/html/CSSParser$CSSParserCallback.h new file mode 100644 index 00000000000..a2bb6622879 --- /dev/null +++ b/libjava/javax/swing/text/html/CSSParser$CSSParserCallback.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_CSSParser$CSSParserCallback__ +#define __javax_swing_text_html_CSSParser$CSSParserCallback__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class CSSParser$CSSParserCallback; + } + } + } + } +} + +class javax::swing::text::html::CSSParser$CSSParserCallback : public ::java::lang::Object +{ + +public: + virtual void handleImport(::java::lang::String *) = 0; + virtual void startRule() = 0; + virtual void endRule() = 0; + virtual void handleSelector(::java::lang::String *) = 0; + virtual void handleProperty(::java::lang::String *) = 0; + virtual void handleValue(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_html_CSSParser$CSSParserCallback__ diff --git a/libjava/javax/swing/text/html/CSSParser.h b/libjava/javax/swing/text/html/CSSParser.h new file mode 100644 index 00000000000..ce8aee5acfe --- /dev/null +++ b/libjava/javax/swing/text/html/CSSParser.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_CSSParser__ +#define __javax_swing_text_html_CSSParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class CSSParser; + class CSSParser$CSSParserCallback; + } + } + } + } +} + +class javax::swing::text::html::CSSParser : public ::java::lang::Object +{ + +public: // actually package-private + CSSParser(); +private: + void append(jchar); + jint nextToken(jchar); + jint readChar(); +public: // actually package-private + virtual void parse(::java::io::Reader *, ::javax::swing::text::html::CSSParser$CSSParserCallback *, jboolean); +private: + jint readWS(); + jboolean getNextStatement(); + void parseAtRule(); + void parseRuleSet(); + jboolean parseSelectors(); + void parseDeclarationBlock(); + jint parseDeclaration(); + jint parseIdentifiers(jchar, jboolean); + void parseTillClosed(jint); + jboolean getIdentifier(jchar); + void readTill(jchar); + void readComment(); + void startBlock(jint); + void endBlock(jint); + jboolean inBlock(); + void pushChar(jint); + static const jint IDENTIFIER = 1; + static const jint BRACKET_OPEN = 2; + static const jint BRACKET_CLOSE = 3; + static const jint BRACE_OPEN = 4; + static const jint BRACE_CLOSE = 5; + static const jint PAREN_OPEN = 6; + static const jint PAREN_CLOSE = 7; + static const jint END = -1; + static JArray< jchar > * charMapping; + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) didPushChar; + jint pushedChar; + ::java::lang::StringBuffer * unitBuffer; + JArray< jint > * unitStack; + jint stackCount; + ::java::io::Reader * reader; + jboolean encounteredRuleSet; + ::javax::swing::text::html::CSSParser$CSSParserCallback * callback; + JArray< jchar > * tokenBuffer; + jint tokenBufferLength; + jboolean readWS__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_CSSParser__ diff --git a/libjava/javax/swing/text/html/FormSubmitEvent$MethodType.h b/libjava/javax/swing/text/html/FormSubmitEvent$MethodType.h new file mode 100644 index 00000000000..99fbed04d3e --- /dev/null +++ b/libjava/javax/swing/text/html/FormSubmitEvent$MethodType.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FormSubmitEvent$MethodType__ +#define __javax_swing_text_html_FormSubmitEvent$MethodType__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class FormSubmitEvent$MethodType; + } + } + } + } +} + +class javax::swing::text::html::FormSubmitEvent$MethodType : public ::java::lang::Object +{ + + FormSubmitEvent$MethodType(); +public: + static ::javax::swing::text::html::FormSubmitEvent$MethodType * POST; + static ::javax::swing::text::html::FormSubmitEvent$MethodType * GET; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FormSubmitEvent$MethodType__ diff --git a/libjava/javax/swing/text/html/FormSubmitEvent.h b/libjava/javax/swing/text/html/FormSubmitEvent.h new file mode 100644 index 00000000000..7908376d167 --- /dev/null +++ b/libjava/javax/swing/text/html/FormSubmitEvent.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FormSubmitEvent__ +#define __javax_swing_text_html_FormSubmitEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class HyperlinkEvent$EventType; + } + namespace text + { + class Element; + namespace html + { + class FormSubmitEvent; + class FormSubmitEvent$MethodType; + } + } + } + } +} + +class javax::swing::text::html::FormSubmitEvent : public ::javax::swing::text::html::HTMLFrameHyperlinkEvent +{ + +public: // actually package-private + FormSubmitEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *, ::javax::swing::text::Element *, ::java::lang::String *, ::javax::swing::text::html::FormSubmitEvent$MethodType *, ::java::lang::String *); +public: + virtual ::java::lang::String * getData(); + virtual ::javax::swing::text::html::FormSubmitEvent$MethodType * getMethod(); +private: + ::javax::swing::text::html::FormSubmitEvent$MethodType * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLFrameHyperlinkEvent)))) method; + ::java::lang::String * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FormSubmitEvent__ diff --git a/libjava/javax/swing/text/html/FormView$1.h b/libjava/javax/swing/text/html/FormView$1.h new file mode 100644 index 00000000000..0bdec66cfcd --- /dev/null +++ b/libjava/javax/swing/text/html/FormView$1.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FormView$1__ +#define __javax_swing_text_html_FormView$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + class JEditorPane; + namespace text + { + namespace html + { + class FormView$1; + class FormView$SubmitThread; + class HTMLDocument; + } + } + } + } +} + +class javax::swing::text::html::FormView$1 : public ::java::lang::Object +{ + +public: // actually package-private + FormView$1(::javax::swing::text::html::FormView$SubmitThread *, ::javax::swing::text::html::HTMLDocument *, ::javax::swing::JEditorPane *, ::java::lang::String *, ::java::net::URL *, ::java::lang::String *, ::java::net::URL *); +public: + void run(); +public: // actually package-private + ::javax::swing::text::html::FormView$SubmitThread * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +private: + ::javax::swing::text::html::HTMLDocument * val$doc; + ::javax::swing::JEditorPane * val$editor; + ::java::lang::String * val$method; + ::java::net::URL * val$actionURL; + ::java::lang::String * val$target; + ::java::net::URL * val$url; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FormView$1__ diff --git a/libjava/javax/swing/text/html/FormView$MouseEventListener.h b/libjava/javax/swing/text/html/FormView$MouseEventListener.h new file mode 100644 index 00000000000..d602e6449f3 --- /dev/null +++ b/libjava/javax/swing/text/html/FormView$MouseEventListener.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FormView$MouseEventListener__ +#define __javax_swing_text_html_FormView$MouseEventListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class FormView; + class FormView$MouseEventListener; + } + } + } + } +} + +class javax::swing::text::html::FormView$MouseEventListener : public ::java::awt::event::MouseAdapter +{ + +public: // actually protected + FormView$MouseEventListener(::javax::swing::text::html::FormView *); +public: + virtual void mouseReleased(::java::awt::event::MouseEvent *); +public: // actually package-private + ::javax::swing::text::html::FormView * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FormView$MouseEventListener__ diff --git a/libjava/javax/swing/text/html/FormView$SubmitThread.h b/libjava/javax/swing/text/html/FormView$SubmitThread.h new file mode 100644 index 00000000000..69a01bbe77c --- /dev/null +++ b/libjava/javax/swing/text/html/FormView$SubmitThread.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FormView$SubmitThread__ +#define __javax_swing_text_html_FormView$SubmitThread__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + class URLConnection; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + namespace html + { + class FormSubmitEvent; + class FormView; + class FormView$SubmitThread; + } + } + } + } +} + +class javax::swing::text::html::FormView$SubmitThread : public ::java::lang::Thread +{ + +public: // actually package-private + FormView$SubmitThread(::javax::swing::text::html::FormView *, ::java::lang::String *); +public: + virtual void run(); +private: + ::java::lang::String * getMethod(); + ::java::net::URL * getActionURL(); + ::java::lang::String * getTarget(); + void postData(::java::net::URLConnection *, ::java::lang::String *); + ::javax::swing::text::AttributeSet * getFormAttributes(); +public: // actually package-private + virtual ::javax::swing::text::html::FormSubmitEvent * createSubmitEvent(::java::lang::String *, ::java::net::URL *, ::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) data; +public: // actually package-private + ::javax::swing::text::html::FormView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FormView$SubmitThread__ diff --git a/libjava/javax/swing/text/html/FormView.h b/libjava/javax/swing/text/html/FormView.h new file mode 100644 index 00000000000..fff2e630988 --- /dev/null +++ b/libjava/javax/swing/text/html/FormView.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FormView__ +#define __javax_swing_text_html_FormView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + class Point; + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Element; + namespace html + { + class FormView; + } + } + } + } +} + +class javax::swing::text::html::FormView : public ::javax::swing::text::ComponentView +{ + +public: + FormView(::javax::swing::text::Element *); +public: // actually protected + virtual ::java::awt::Component * createComponent(); +public: + virtual jfloat getMaximumSpan(jint); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually protected + virtual void submitData(::java::lang::String *); + virtual void imageSubmit(::java::lang::String *); +public: // actually package-private + virtual ::java::lang::String * getImageData(::java::awt::Point *); + virtual ::javax::swing::text::Element * getFormElement(); +private: + ::java::lang::String * getFormData(); + void getElementFormData(::javax::swing::text::Element *, ::java::lang::StringBuilder *); + void getSelectData(::javax::swing::text::AttributeSet *, ::java::lang::StringBuilder *); + ::java::lang::String * getTextAreaData(::javax::swing::text::AttributeSet *); + ::java::lang::String * getInputFormData(::javax::swing::text::AttributeSet *); + void addData(::java::lang::StringBuilder *, ::java::lang::String *, ::java::lang::String *); + void resetForm(); +public: + static ::java::lang::String * SUBMIT; + static ::java::lang::String * RESET; +private: + jboolean __attribute__((aligned(__alignof__( ::javax::swing::text::ComponentView)))) maxIsPreferred; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FormView__ diff --git a/libjava/javax/swing/text/html/FrameSetView$FrameSetRow.h b/libjava/javax/swing/text/html/FrameSetView$FrameSetRow.h new file mode 100644 index 00000000000..ae59240acf9 --- /dev/null +++ b/libjava/javax/swing/text/html/FrameSetView$FrameSetRow.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FrameSetView$FrameSetRow__ +#define __javax_swing_text_html_FrameSetView$FrameSetRow__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class ViewFactory; + namespace html + { + class FrameSetView; + class FrameSetView$FrameSetRow; + } + } + } + } +} + +class javax::swing::text::html::FrameSetView$FrameSetRow : public ::javax::swing::text::BoxView +{ + +public: // actually package-private + FrameSetView$FrameSetRow(::javax::swing::text::html::FrameSetView *, ::javax::swing::text::Element *, jint); +public: // actually protected + virtual void loadChildren(::javax::swing::text::ViewFactory *); + virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *); +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) row; +public: // actually package-private + ::javax::swing::text::html::FrameSetView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FrameSetView$FrameSetRow__ diff --git a/libjava/javax/swing/text/html/FrameSetView.h b/libjava/javax/swing/text/html/FrameSetView.h new file mode 100644 index 00000000000..a31abb1ca11 --- /dev/null +++ b/libjava/javax/swing/text/html/FrameSetView.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FrameSetView__ +#define __javax_swing_text_html_FrameSetView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class ViewFactory; + namespace html + { + class FrameSetView; + } + } + } + } +} + +class javax::swing::text::html::FrameSetView : public ::javax::swing::text::BoxView +{ + +public: // actually package-private + FrameSetView(::javax::swing::text::Element *); +public: // actually protected + virtual void loadChildren(::javax::swing::text::ViewFactory *); +private: + void parseRowsCols(); + void parseLayout(::java::lang::String *, jint); +public: // actually protected + virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *); +public: // actually package-private + virtual void layoutViews(jint, jint, JArray< jint > *, JArray< jint > *, jint, JArray< jint > *, JArray< jint > *, JArray< jint > *); + JArray< JArray< jint > * > * __attribute__((aligned(__alignof__( ::javax::swing::text::BoxView)))) absolute; + JArray< JArray< jint > * > * relative; + JArray< JArray< jint > * > * percent; + JArray< jint > * numViews; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FrameSetView__ diff --git a/libjava/javax/swing/text/html/FrameView.h b/libjava/javax/swing/text/html/FrameView.h new file mode 100644 index 00000000000..e1856e327de --- /dev/null +++ b/libjava/javax/swing/text/html/FrameView.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_FrameView__ +#define __javax_swing_text_html_FrameView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JEditorPane; + namespace event + { + class HyperlinkEvent; + } + namespace text + { + class Element; + namespace html + { + class FrameView; + class HTMLFrameHyperlinkEvent; + } + } + } + } +} + +class javax::swing::text::html::FrameView : public ::javax::swing::text::ComponentView +{ + +public: // actually package-private + FrameView(::javax::swing::text::Element *); +public: // actually protected + virtual ::java::awt::Component * createComponent(); +public: + virtual void hyperlinkUpdate(::javax::swing::event::HyperlinkEvent *); +private: + void handleHyperlinkEvent(::javax::swing::event::HyperlinkEvent *, ::javax::swing::JEditorPane *, ::java::lang::String *); + void handleFormSubmitEvent(::javax::swing::text::html::HTMLFrameHyperlinkEvent *, ::javax::swing::JEditorPane *, ::java::lang::String *); + ::javax::swing::JEditorPane * getTopEditorPane(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_FrameView__ diff --git a/libjava/javax/swing/text/html/HRuleView$Beginning.h b/libjava/javax/swing/text/html/HRuleView$Beginning.h new file mode 100644 index 00000000000..a1c6e1dc808 --- /dev/null +++ b/libjava/javax/swing/text/html/HRuleView$Beginning.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HRuleView$Beginning__ +#define __javax_swing_text_html_HRuleView$Beginning__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + namespace html + { + class HRuleView; + class HRuleView$Beginning; + } + } + } + } +} + +class javax::swing::text::html::HRuleView$Beginning : public ::javax::swing::text::html::NullView +{ + +public: + virtual jint getEndOffset(); + virtual jint getStartOffset(); + HRuleView$Beginning(::javax::swing::text::html::HRuleView *, ::javax::swing::text::Element *, jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::javax::swing::text::html::NullView)))) breakOffset; + ::javax::swing::text::html::HRuleView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HRuleView$Beginning__ diff --git a/libjava/javax/swing/text/html/HRuleView.h b/libjava/javax/swing/text/html/HRuleView.h new file mode 100644 index 00000000000..f028b51ae0b --- /dev/null +++ b/libjava/javax/swing/text/html/HRuleView.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HRuleView__ +#define __javax_swing_text_html_HRuleView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class View; + namespace html + { + class HRuleView; + } + } + } + } +} + +class javax::swing::text::html::HRuleView : public ::javax::swing::text::html::InlineView +{ + +public: + HRuleView(::javax::swing::text::Element *); + virtual jint getBreakWeight(jint, jfloat, jfloat); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual ::javax::swing::text::View * breakView(jint, jint, jfloat, jfloat); + virtual jfloat getMaximumSpan(jint); + virtual jfloat getPreferredSpan(jint); +public: // actually package-private + ::javax::swing::text::View * __attribute__((aligned(__alignof__( ::javax::swing::text::html::InlineView)))) nullView; + static jint HEIGHT; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HRuleView__ diff --git a/libjava/javax/swing/text/html/HTML$Attribute.h b/libjava/javax/swing/text/html/HTML$Attribute.h new file mode 100644 index 00000000000..47868d02dbc --- /dev/null +++ b/libjava/javax/swing/text/html/HTML$Attribute.h @@ -0,0 +1,130 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTML$Attribute__ +#define __javax_swing_text_html_HTML$Attribute__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTML$Attribute; + } + } + } + } +} + +class javax::swing::text::html::HTML$Attribute : public ::java::lang::Object +{ + + HTML$Attribute(::java::lang::String *); +public: + ::java::lang::String * toString(); +public: // actually package-private + static JArray< ::javax::swing::text::html::HTML$Attribute * > * getAllAttributes(); +public: + static ::javax::swing::text::html::HTML$Attribute * ACTION; + static ::javax::swing::text::html::HTML$Attribute * ALIGN; + static ::javax::swing::text::html::HTML$Attribute * ALINK; + static ::javax::swing::text::html::HTML$Attribute * ALT; + static ::javax::swing::text::html::HTML$Attribute * ARCHIVE; + static ::javax::swing::text::html::HTML$Attribute * BACKGROUND; + static ::javax::swing::text::html::HTML$Attribute * BGCOLOR; + static ::javax::swing::text::html::HTML$Attribute * BORDER; + static ::javax::swing::text::html::HTML$Attribute * CELLPADDING; + static ::javax::swing::text::html::HTML$Attribute * CELLSPACING; + static ::javax::swing::text::html::HTML$Attribute * CHECKED; + static ::javax::swing::text::html::HTML$Attribute * CLASS; + static ::javax::swing::text::html::HTML$Attribute * CLASSID; + static ::javax::swing::text::html::HTML$Attribute * CLEAR; + static ::javax::swing::text::html::HTML$Attribute * CODE; + static ::javax::swing::text::html::HTML$Attribute * CODEBASE; + static ::javax::swing::text::html::HTML$Attribute * CODETYPE; + static ::javax::swing::text::html::HTML$Attribute * COLOR; + static ::javax::swing::text::html::HTML$Attribute * COLS; + static ::javax::swing::text::html::HTML$Attribute * COLSPAN; + static ::javax::swing::text::html::HTML$Attribute * COMMENT; + static ::javax::swing::text::html::HTML$Attribute * COMPACT; + static ::javax::swing::text::html::HTML$Attribute * CONTENT; + static ::javax::swing::text::html::HTML$Attribute * COORDS; + static ::javax::swing::text::html::HTML$Attribute * DATA; + static ::javax::swing::text::html::HTML$Attribute * DECLARE; + static ::javax::swing::text::html::HTML$Attribute * DIR; + static ::javax::swing::text::html::HTML$Attribute * DUMMY; + static ::javax::swing::text::html::HTML$Attribute * ENCTYPE; + static ::javax::swing::text::html::HTML$Attribute * ENDTAG; + static ::javax::swing::text::html::HTML$Attribute * FACE; + static ::javax::swing::text::html::HTML$Attribute * FRAMEBORDER; + static ::javax::swing::text::html::HTML$Attribute * HALIGN; + static ::javax::swing::text::html::HTML$Attribute * HEIGHT; + static ::javax::swing::text::html::HTML$Attribute * HREF; + static ::javax::swing::text::html::HTML$Attribute * HSPACE; + static ::javax::swing::text::html::HTML$Attribute * HTTPEQUIV; + static ::javax::swing::text::html::HTML$Attribute * ID; + static ::javax::swing::text::html::HTML$Attribute * ISMAP; + static ::javax::swing::text::html::HTML$Attribute * LANG; + static ::javax::swing::text::html::HTML$Attribute * LANGUAGE; + static ::javax::swing::text::html::HTML$Attribute * LINK; + static ::javax::swing::text::html::HTML$Attribute * LOWSRC; + static ::javax::swing::text::html::HTML$Attribute * MARGINHEIGHT; + static ::javax::swing::text::html::HTML$Attribute * MARGINWIDTH; + static ::javax::swing::text::html::HTML$Attribute * MAXLENGTH; +public: // actually package-private + static ::javax::swing::text::html::HTML$Attribute * MEDIA; +public: + static ::javax::swing::text::html::HTML$Attribute * METHOD; + static ::javax::swing::text::html::HTML$Attribute * MULTIPLE; + static ::javax::swing::text::html::HTML$Attribute * N; + static ::javax::swing::text::html::HTML$Attribute * NAME; + static ::javax::swing::text::html::HTML$Attribute * NOHREF; + static ::javax::swing::text::html::HTML$Attribute * NORESIZE; + static ::javax::swing::text::html::HTML$Attribute * NOSHADE; + static ::javax::swing::text::html::HTML$Attribute * NOWRAP; + static ::javax::swing::text::html::HTML$Attribute * PROMPT; + static ::javax::swing::text::html::HTML$Attribute * REL; + static ::javax::swing::text::html::HTML$Attribute * REV; + static ::javax::swing::text::html::HTML$Attribute * ROWS; + static ::javax::swing::text::html::HTML$Attribute * ROWSPAN; + static ::javax::swing::text::html::HTML$Attribute * SCROLLING; + static ::javax::swing::text::html::HTML$Attribute * SELECTED; + static ::javax::swing::text::html::HTML$Attribute * SHAPE; + static ::javax::swing::text::html::HTML$Attribute * SHAPES; + static ::javax::swing::text::html::HTML$Attribute * SIZE; + static ::javax::swing::text::html::HTML$Attribute * SRC; + static ::javax::swing::text::html::HTML$Attribute * STANDBY; + static ::javax::swing::text::html::HTML$Attribute * START; + static ::javax::swing::text::html::HTML$Attribute * STYLE; + static ::javax::swing::text::html::HTML$Attribute * TARGET; + static ::javax::swing::text::html::HTML$Attribute * TEXT; + static ::javax::swing::text::html::HTML$Attribute * TITLE; + static ::javax::swing::text::html::HTML$Attribute * TYPE; + static ::javax::swing::text::html::HTML$Attribute * USEMAP; + static ::javax::swing::text::html::HTML$Attribute * VALIGN; + static ::javax::swing::text::html::HTML$Attribute * VALUE; + static ::javax::swing::text::html::HTML$Attribute * VALUETYPE; + static ::javax::swing::text::html::HTML$Attribute * VERSION; + static ::javax::swing::text::html::HTML$Attribute * VLINK; + static ::javax::swing::text::html::HTML$Attribute * VSPACE; + static ::javax::swing::text::html::HTML$Attribute * WIDTH; +public: // actually package-private + static ::javax::swing::text::html::HTML$Attribute * PSEUDO_CLASS; + static ::javax::swing::text::html::HTML$Attribute * DYNAMIC_CLASS; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTML$Attribute__ diff --git a/libjava/javax/swing/text/html/HTML$Tag.h b/libjava/javax/swing/text/html/HTML$Tag.h new file mode 100644 index 00000000000..2dd2dcebac7 --- /dev/null +++ b/libjava/javax/swing/text/html/HTML$Tag.h @@ -0,0 +1,139 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTML$Tag__ +#define __javax_swing_text_html_HTML$Tag__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTML$Tag; + } + } + } + } +} + +class javax::swing::text::html::HTML$Tag : public ::java::lang::Object +{ + +public: + HTML$Tag(); +public: // actually protected + HTML$Tag(::java::lang::String *); + HTML$Tag(::java::lang::String *, jboolean, jboolean); +public: // actually package-private + HTML$Tag(::java::lang::String *, jint); +public: + virtual jboolean isBlock(); + virtual jboolean isPreformatted(); + virtual jboolean breaksFlow(); + virtual ::java::lang::String * toString(); +public: // actually package-private + static JArray< ::javax::swing::text::html::HTML$Tag * > * getAllTags(); + virtual jboolean isSyntetic(); +private: + static void unexpected(::java::lang::Exception *); +public: + static ::javax::swing::text::html::HTML$Tag * A; + static ::javax::swing::text::html::HTML$Tag * ADDRESS; + static ::javax::swing::text::html::HTML$Tag * APPLET; + static ::javax::swing::text::html::HTML$Tag * AREA; + static ::javax::swing::text::html::HTML$Tag * B; + static ::javax::swing::text::html::HTML$Tag * BASE; + static ::javax::swing::text::html::HTML$Tag * BASEFONT; + static ::javax::swing::text::html::HTML$Tag * BIG; + static ::javax::swing::text::html::HTML$Tag * BLOCKQUOTE; + static ::javax::swing::text::html::HTML$Tag * BODY; + static ::javax::swing::text::html::HTML$Tag * BR; + static ::javax::swing::text::html::HTML$Tag * CAPTION; + static ::javax::swing::text::html::HTML$Tag * CENTER; + static ::javax::swing::text::html::HTML$Tag * CITE; + static ::javax::swing::text::html::HTML$Tag * CODE; + static ::javax::swing::text::html::HTML$Tag * DD; + static ::javax::swing::text::html::HTML$Tag * DFN; + static ::javax::swing::text::html::HTML$Tag * DIR; + static ::javax::swing::text::html::HTML$Tag * DIV; + static ::javax::swing::text::html::HTML$Tag * DL; + static ::javax::swing::text::html::HTML$Tag * DT; + static ::javax::swing::text::html::HTML$Tag * EM; + static ::javax::swing::text::html::HTML$Tag * FONT; + static ::javax::swing::text::html::HTML$Tag * FORM; + static ::javax::swing::text::html::HTML$Tag * FRAME; + static ::javax::swing::text::html::HTML$Tag * FRAMESET; + static ::javax::swing::text::html::HTML$Tag * H1; + static ::javax::swing::text::html::HTML$Tag * H2; + static ::javax::swing::text::html::HTML$Tag * H3; + static ::javax::swing::text::html::HTML$Tag * H4; + static ::javax::swing::text::html::HTML$Tag * H5; + static ::javax::swing::text::html::HTML$Tag * H6; + static ::javax::swing::text::html::HTML$Tag * HEAD; + static ::javax::swing::text::html::HTML$Tag * HR; + static ::javax::swing::text::html::HTML$Tag * HTML; + static ::javax::swing::text::html::HTML$Tag * I; + static ::javax::swing::text::html::HTML$Tag * IMG; + static ::javax::swing::text::html::HTML$Tag * INPUT; + static ::javax::swing::text::html::HTML$Tag * ISINDEX; + static ::javax::swing::text::html::HTML$Tag * KBD; + static ::javax::swing::text::html::HTML$Tag * LI; + static ::javax::swing::text::html::HTML$Tag * LINK; + static ::javax::swing::text::html::HTML$Tag * MAP; + static ::javax::swing::text::html::HTML$Tag * MENU; + static ::javax::swing::text::html::HTML$Tag * META; +public: // actually package-private + static ::javax::swing::text::html::HTML$Tag * NOBR; +public: + static ::javax::swing::text::html::HTML$Tag * NOFRAMES; + static ::javax::swing::text::html::HTML$Tag * OBJECT; + static ::javax::swing::text::html::HTML$Tag * OL; + static ::javax::swing::text::html::HTML$Tag * OPTION; + static ::javax::swing::text::html::HTML$Tag * P; + static ::javax::swing::text::html::HTML$Tag * PARAM; + static ::javax::swing::text::html::HTML$Tag * PRE; + static ::javax::swing::text::html::HTML$Tag * S; + static ::javax::swing::text::html::HTML$Tag * SAMP; + static ::javax::swing::text::html::HTML$Tag * SCRIPT; + static ::javax::swing::text::html::HTML$Tag * SELECT; + static ::javax::swing::text::html::HTML$Tag * SMALL; + static ::javax::swing::text::html::HTML$Tag * SPAN; + static ::javax::swing::text::html::HTML$Tag * STRIKE; + static ::javax::swing::text::html::HTML$Tag * STRONG; + static ::javax::swing::text::html::HTML$Tag * STYLE; + static ::javax::swing::text::html::HTML$Tag * SUB; + static ::javax::swing::text::html::HTML$Tag * SUP; + static ::javax::swing::text::html::HTML$Tag * TABLE; + static ::javax::swing::text::html::HTML$Tag * TD; + static ::javax::swing::text::html::HTML$Tag * TEXTAREA; + static ::javax::swing::text::html::HTML$Tag * TH; + static ::javax::swing::text::html::HTML$Tag * TITLE; + static ::javax::swing::text::html::HTML$Tag * TR; + static ::javax::swing::text::html::HTML$Tag * TT; + static ::javax::swing::text::html::HTML$Tag * U; + static ::javax::swing::text::html::HTML$Tag * UL; + static ::javax::swing::text::html::HTML$Tag * VAR; +private: + static const jint TOTAL_SYNTHETIC_TAGS = 3; +public: + static ::javax::swing::text::html::HTML$Tag * COMMENT; + static ::javax::swing::text::html::HTML$Tag * CONTENT; + static ::javax::swing::text::html::HTML$Tag * IMPLIED; +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + jint flags; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTML$Tag__ diff --git a/libjava/javax/swing/text/html/HTML$UnknownTag.h b/libjava/javax/swing/text/html/HTML$UnknownTag.h new file mode 100644 index 00000000000..e499c01ccae --- /dev/null +++ b/libjava/javax/swing/text/html/HTML$UnknownTag.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTML$UnknownTag__ +#define __javax_swing_text_html_HTML$UnknownTag__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTML$UnknownTag; + } + } + } + } +} + +class javax::swing::text::html::HTML$UnknownTag : public ::javax::swing::text::html::HTML$Tag +{ + +public: + HTML$UnknownTag(::java::lang::String *); +private: + static const jlong serialVersionUID = -1534369342247250625LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTML$UnknownTag__ diff --git a/libjava/javax/swing/text/html/HTML.h b/libjava/javax/swing/text/html/HTML.h new file mode 100644 index 00000000000..84dd640edc8 --- /dev/null +++ b/libjava/javax/swing/text/html/HTML.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTML__ +#define __javax_swing_text_html_HTML__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + namespace html + { + class HTML; + class HTML$Attribute; + class HTML$Tag; + } + } + } + } +} + +class javax::swing::text::html::HTML : public ::java::lang::Object +{ + +public: + HTML(); + static JArray< ::javax::swing::text::html::HTML$Attribute * > * getAllAttributeKeys(); + static JArray< ::javax::swing::text::html::HTML$Tag * > * getAllTags(); + static ::javax::swing::text::html::HTML$Attribute * getAttributeKey(::java::lang::String *); + static jint getIntegerAttributeValue(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::HTML$Attribute *, jint); + static ::javax::swing::text::html::HTML$Tag * getTag(::java::lang::String *); + static ::java::lang::String * NULL_ATTRIBUTE_VALUE; +public: // actually package-private + static const jint BREAKS = 1; + static const jint BLOCK = 2; + static const jint PREFORMATTED = 4; + static const jint SYNTHETIC = 8; +private: + static ::java::util::Map * tagMap; + static ::java::util::Map * attrMap; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTML__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$1.h b/libjava/javax/swing/text/html/HTMLDocument$1.h new file mode 100644 index 00000000000..ff1f7b0a46f --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$1.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$1__ +#define __javax_swing_text_html_HTMLDocument$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument; + class HTMLDocument$1; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$1 : public ::javax::swing::text::html::HTMLDocument$HTMLReader +{ + +public: // actually package-private + HTMLDocument$1(::javax::swing::text::html::HTMLDocument *, jint, jint, jint, ::javax::swing::text::html::HTML$Tag *); +public: + void handleStartTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *, jint); + void handleEndTag(::javax::swing::text::html::HTML$Tag *, jint); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$1__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$BlockElement.h b/libjava/javax/swing/text/html/HTMLDocument$BlockElement.h new file mode 100644 index 00000000000..efcaa223b47 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$BlockElement.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$BlockElement__ +#define __javax_swing_text_html_HTMLDocument$BlockElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Element; + namespace html + { + class HTMLDocument; + class HTMLDocument$BlockElement; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$BlockElement : public ::javax::swing::text::AbstractDocument$BranchElement +{ + +public: + HTMLDocument$BlockElement(::javax::swing::text::html::HTMLDocument *, ::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual ::java::lang::String * getName(); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument$BranchElement)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$BlockElement__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$AreaAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$AreaAction.h new file mode 100644 index 00000000000..0a6bd0daa03 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$AreaAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$AreaAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$AreaAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$AreaAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$AreaAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$AreaAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$AreaAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BaseAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BaseAction.h new file mode 100644 index 00000000000..61e8e538555 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BaseAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$BaseAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$BaseAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$BaseAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$BaseAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$BaseAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$BaseAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction.h new file mode 100644 index 00000000000..52c202de24e --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$BlockAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$BlockAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$BlockAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$BlockAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: + HTMLDocument$HTMLReader$BlockAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$BlockAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction.h new file mode 100644 index 00000000000..b8ae46357d4 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$CharacterAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$CharacterAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$CharacterAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$CharacterAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$CharacterAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: + HTMLDocument$HTMLReader$CharacterAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$CharacterAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ConvertAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ConvertAction.h new file mode 100644 index 00000000000..a58531a128a --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ConvertAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$ConvertAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$ConvertAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$ConvertAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$ConvertAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$ConvertAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$ConvertAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormAction.h new file mode 100644 index 00000000000..263088b5aca --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormAction.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$FormAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$FormAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$FormAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$FormAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$SpecialAction +{ + +public: + HTMLDocument$HTMLReader$FormAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +private: + void setModel(::java::lang::String *, ::javax::swing::text::MutableAttributeSet *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$SpecialAction)))) this$1; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$FormAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormTagAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormTagAction.h new file mode 100644 index 00000000000..e2e93a12b0b --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$FormTagAction.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$FormTagAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$FormTagAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$FormTagAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$FormTagAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$FormTagAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$FormTagAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HeadAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HeadAction.h new file mode 100644 index 00000000000..c150be73ab8 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HeadAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$HeadAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$HeadAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$HeadAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$HeadAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$HeadAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$HeadAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction.h new file mode 100644 index 00000000000..a7399eac4e9 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$HiddenAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$HiddenAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$HiddenAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$HiddenAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$HiddenAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: + HTMLDocument$HTMLReader$HiddenAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$HiddenAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction.h new file mode 100644 index 00000000000..3457ed56cfc --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$IsindexAction.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$IsindexAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$IsindexAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$IsindexAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$IsindexAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: + HTMLDocument$HTMLReader$IsindexAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$IsindexAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$LinkAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$LinkAction.h new file mode 100644 index 00000000000..2d73af7507d --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$LinkAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$LinkAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$LinkAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$LinkAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$LinkAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$HiddenAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$LinkAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$HiddenAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$LinkAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MapAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MapAction.h new file mode 100644 index 00000000000..1b42e2f38e7 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MapAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$MapAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$MapAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$MapAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$MapAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$MapAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$MapAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MetaAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MetaAction.h new file mode 100644 index 00000000000..a00b9fa2284 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$MetaAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$MetaAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$MetaAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$MetaAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$MetaAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$MetaAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$MetaAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction.h new file mode 100644 index 00000000000..8c816a79ebf --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$ParagraphAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$ParagraphAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$ParagraphAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$ParagraphAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$ParagraphAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction +{ + +public: + HTMLDocument$HTMLReader$ParagraphAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$ParagraphAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$PreAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$PreAction.h new file mode 100644 index 00000000000..1f5e38fd450 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$PreAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$PreAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$PreAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$PreAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$PreAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction +{ + +public: + HTMLDocument$HTMLReader$PreAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$BlockAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$PreAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction.h new file mode 100644 index 00000000000..c1005e6fbf8 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$SpecialAction.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$SpecialAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$SpecialAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$SpecialAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$SpecialAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: + HTMLDocument$HTMLReader$SpecialAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$SpecialAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$StyleAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$StyleAction.h new file mode 100644 index 00000000000..36feb57a007 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$StyleAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$StyleAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$StyleAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$StyleAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$StyleAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$StyleAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$StyleAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TagAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TagAction.h new file mode 100644 index 00000000000..10550400bfa --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TagAction.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$TagAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$TagAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$TagAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$TagAction : public ::java::lang::Object +{ + +public: + HTMLDocument$HTMLReader$TagAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$TagAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TitleAction.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TitleAction.h new file mode 100644 index 00000000000..4b7a8fe6912 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader$TitleAction.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader$TitleAction__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader$TitleAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$TitleAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader$TitleAction : public ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction +{ + +public: // actually package-private + HTMLDocument$HTMLReader$TitleAction(::javax::swing::text::html::HTMLDocument$HTMLReader *); +public: + virtual void start(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); + virtual void end(::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument$HTMLReader * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader$TitleAction__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$HTMLReader.h b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader.h new file mode 100644 index 00000000000..57c250f6bbb --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$HTMLReader.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader__ +#define __javax_swing_text_html_HTMLDocument$HTMLReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument; + class HTMLDocument$HTMLReader; + class HTMLDocument$HTMLReader$TagAction; + class Option; + class ResetablePlainDocument; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$HTMLReader : public ::javax::swing::text::html::HTMLEditorKit$ParserCallback +{ + +public: + HTMLDocument$HTMLReader(::javax::swing::text::html::HTMLDocument *, jint); + HTMLDocument$HTMLReader(::javax::swing::text::html::HTMLDocument *, jint, jint, jint, ::javax::swing::text::html::HTML$Tag *); +public: // actually package-private + virtual void initTags(); +public: // actually protected + virtual void pushCharacterStyle(); + virtual void popCharacterStyle(); + virtual void registerTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction *); +public: + virtual void flush(); +private: + void flushImpl(); +public: + virtual void handleText(JArray< jchar > *, jint); +private: + jboolean shouldInsert(); +public: + virtual void handleStartTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *, jint); + virtual void handleComment(JArray< jchar > *, jint); + virtual void handleEndTag(::javax::swing::text::html::HTML$Tag *, jint); + virtual void handleSimpleTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *, jint); + virtual void handleEndOfLineString(::java::lang::String *); +public: // actually protected + virtual void textAreaContent(JArray< jchar > *); + virtual void preContent(JArray< jchar > *); + virtual void blockOpen(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); +private: + jboolean inParagraph(); + jboolean inImpliedParagraph(); +public: // actually protected + virtual void blockClose(::javax::swing::text::html::HTML$Tag *); + virtual void addContent(JArray< jchar > *, jint, jint); + virtual void addContent(JArray< jchar > *, jint, jint, jboolean); + virtual void addSpecialElement(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *); +public: // actually package-private + static ::javax::swing::text::html::HTMLDocument * access$0(::javax::swing::text::html::HTMLDocument$HTMLReader *); +private: + static const jint MAX_THRESHOLD = 10000; + static const jint GROW_THRESHOLD = 5; +public: // actually protected + ::javax::swing::text::MutableAttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLEditorKit$ParserCallback)))) charAttr; + ::java::util::Vector * parseBuffer; +private: + ::java::util::Stack * parseStack; +public: // actually package-private + ::java::util::Stack * charAttrStack; + ::java::util::HashMap * tagToAction; + jboolean endHTMLEncountered; + jint popDepth; + jint pushDepth; + jint offset; + ::javax::swing::text::html::HTML$Tag * insertTag; + jboolean insertTagEncountered; + jboolean debug; + jboolean inPreTag; + jboolean inStyleTag; + jboolean inTextArea; + ::java::util::ArrayList * styles; + ::javax::swing::text::html::ResetablePlainDocument * textAreaDocument; + ::java::lang::Object * selectModel; + ::javax::swing::text::html::Option * option; + jint numOptions; + ::java::util::HashMap * buttonGroups; +private: + jint threshold; +public: // actually package-private + ::javax::swing::text::html::HTMLDocument * this$0; + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$HTMLReader__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$Iterator.h b/libjava/javax/swing/text/html/HTMLDocument$Iterator.h new file mode 100644 index 00000000000..3b42157ef10 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$Iterator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$Iterator__ +#define __javax_swing_text_html_HTMLDocument$Iterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + namespace html + { + class HTML$Tag; + class HTMLDocument$Iterator; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$Iterator : public ::java::lang::Object +{ + +public: + HTMLDocument$Iterator(); + virtual ::javax::swing::text::AttributeSet * getAttributes() = 0; + virtual jint getEndOffset() = 0; + virtual jint getStartOffset() = 0; + virtual void next() = 0; + virtual jboolean isValid() = 0; + virtual ::javax::swing::text::html::HTML$Tag * getTag() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$Iterator__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$LeafIterator.h b/libjava/javax/swing/text/html/HTMLDocument$LeafIterator.h new file mode 100644 index 00000000000..d449c79833b --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$LeafIterator.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$LeafIterator__ +#define __javax_swing_text_html_HTMLDocument$LeafIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class ElementIterator; + namespace html + { + class HTML$Tag; + class HTMLDocument; + class HTMLDocument$LeafIterator; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$LeafIterator : public ::javax::swing::text::html::HTMLDocument$Iterator +{ + +public: + HTMLDocument$LeafIterator(::javax::swing::text::html::HTMLDocument *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTMLDocument *); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual jint getEndOffset(); + virtual jint getStartOffset(); + virtual void next(); + virtual jboolean isValid(); + virtual ::javax::swing::text::html::HTML$Tag * getTag(); +public: // actually package-private + ::javax::swing::text::html::HTML$Tag * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$Iterator)))) tag; + ::javax::swing::text::html::HTMLDocument * doc; + ::javax::swing::text::ElementIterator * it; + ::javax::swing::text::html::HTMLDocument * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$LeafIterator__ diff --git a/libjava/javax/swing/text/html/HTMLDocument$RunElement.h b/libjava/javax/swing/text/html/HTMLDocument$RunElement.h new file mode 100644 index 00000000000..f0c65d99c2d --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument$RunElement.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument$RunElement__ +#define __javax_swing_text_html_HTMLDocument$RunElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Element; + namespace html + { + class HTMLDocument; + class HTMLDocument$RunElement; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument$RunElement : public ::javax::swing::text::AbstractDocument$LeafElement +{ + +public: + HTMLDocument$RunElement(::javax::swing::text::html::HTMLDocument *, ::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *, jint, jint); + virtual ::java::lang::String * getName(); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); +public: // actually package-private + ::javax::swing::text::html::HTMLDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractDocument$LeafElement)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument$RunElement__ diff --git a/libjava/javax/swing/text/html/HTMLDocument.h b/libjava/javax/swing/text/html/HTMLDocument.h new file mode 100644 index 00000000000..014f818af3a --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLDocument.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLDocument__ +#define __javax_swing_text_html_HTMLDocument__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AbstractDocument$AbstractElement; + class AbstractDocument$AttributeContext; + class AbstractDocument$Content; + class AbstractDocument$DefaultDocumentEvent; + class AttributeSet; + class DefaultStyledDocument$ElementSpec; + class Element; + namespace html + { + class HTML$Attribute; + class HTML$Tag; + class HTMLDocument; + class HTMLDocument$Iterator; + class HTMLEditorKit$Parser; + class HTMLEditorKit$ParserCallback; + class HTMLFrameHyperlinkEvent; + class StyleSheet; + } + } + } + } +} + +class javax::swing::text::html::HTMLDocument : public ::javax::swing::text::DefaultStyledDocument +{ + +public: + HTMLDocument(); + HTMLDocument(::javax::swing::text::html::StyleSheet *); + HTMLDocument(::javax::swing::text::AbstractDocument$Content *, ::javax::swing::text::html::StyleSheet *); + virtual ::javax::swing::text::html::StyleSheet * getStyleSheet(); +public: // actually protected + virtual ::javax::swing::text::AbstractDocument$AbstractElement * createDefaultRoot(); + virtual ::javax::swing::text::Element * createLeafElement(::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *, jint, jint); + virtual ::javax::swing::text::Element * createBranchElement(::javax::swing::text::Element *, ::javax::swing::text::AttributeSet *); +public: + virtual ::javax::swing::text::html::HTMLEditorKit$Parser * getParser(); + virtual void setParser(::javax::swing::text::html::HTMLEditorKit$Parser *); + virtual void setTokenThreshold(jint); + virtual jint getTokenThreshold(); + virtual ::java::net::URL * getBase(); + virtual void setBase(::java::net::URL *); + virtual jboolean getPreservesUnknownTags(); + virtual void setPreservesUnknownTags(jboolean); + virtual void processHTMLFrameHyperlinkEvent(::javax::swing::text::html::HTMLFrameHyperlinkEvent *); +private: + ::javax::swing::text::Element * findFrame(::java::lang::String *); + void updateFrame(::javax::swing::text::Element *, ::java::net::URL *); + void updateFrameSet(::javax::swing::text::Element *, ::java::net::URL *); +public: + virtual ::javax::swing::text::html::HTMLDocument$Iterator * getIterator(::javax::swing::text::html::HTML$Tag *); + virtual ::javax::swing::text::html::HTMLEditorKit$ParserCallback * getReader(jint); + virtual ::javax::swing::text::html::HTMLEditorKit$ParserCallback * getReader(jint, jint, jint, ::javax::swing::text::html::HTML$Tag *); + virtual ::javax::swing::text::html::HTMLEditorKit$ParserCallback * getInsertingReader(jint, jint, jint, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::Element *); + virtual ::javax::swing::text::Element * getElement(::javax::swing::text::Element *, ::java::lang::Object *, ::java::lang::Object *); + virtual ::javax::swing::text::Element * getElement(::java::lang::String *); + virtual void setInnerHTML(::javax::swing::text::Element *, ::java::lang::String *); + virtual void setOuterHTML(::javax::swing::text::Element *, ::java::lang::String *); + virtual void insertBeforeStart(::javax::swing::text::Element *, ::java::lang::String *); + virtual void insertBeforeEnd(::javax::swing::text::Element *, ::java::lang::String *); + virtual void insertAfterEnd(::javax::swing::text::Element *, ::java::lang::String *); + virtual void insertAfterStart(::javax::swing::text::Element *, ::java::lang::String *); +public: // actually protected + virtual void insertUpdate(::javax::swing::text::AbstractDocument$DefaultDocumentEvent *, ::javax::swing::text::AttributeSet *); +public: // actually package-private + virtual jboolean isFrameDocument(); + virtual void setFrameDocument(jboolean); + virtual ::java::lang::String * getBaseTarget(); + virtual void updateSpecialClass(::javax::swing::text::Element *, ::javax::swing::text::html::HTML$Attribute *, ::java::lang::String *); + static void access$0(::javax::swing::text::html::HTMLDocument *, JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *); + static void access$1(::javax::swing::text::html::HTMLDocument *, jint, JArray< ::javax::swing::text::DefaultStyledDocument$ElementSpec * > *); + static ::javax::swing::text::AbstractDocument$AttributeContext * access$2(::javax::swing::text::html::HTMLDocument *); +public: + static ::java::lang::String * AdditionalComments; +public: // actually package-private + ::java::net::URL * __attribute__((aligned(__alignof__( ::javax::swing::text::DefaultStyledDocument)))) baseURL; + jboolean preservesUnknownTags; + jint tokenThreshold; + ::javax::swing::text::html::HTMLEditorKit$Parser * parser; +private: + jboolean frameDocument; +public: // actually package-private + ::java::lang::String * baseTarget; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLDocument__ diff --git a/libjava/javax/swing/text/html/HTMLEditorKit$HTMLFactory.h b/libjava/javax/swing/text/html/HTMLEditorKit$HTMLFactory.h new file mode 100644 index 00000000000..8780e781a67 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLEditorKit$HTMLFactory.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLEditorKit$HTMLFactory__ +#define __javax_swing_text_html_HTMLEditorKit$HTMLFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class View; + namespace html + { + class HTMLEditorKit$HTMLFactory; + } + } + } + } +} + +class javax::swing::text::html::HTMLEditorKit$HTMLFactory : public ::java::lang::Object +{ + +public: + HTMLEditorKit$HTMLFactory(); + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLEditorKit$HTMLFactory__ diff --git a/libjava/javax/swing/text/html/HTMLEditorKit$HTMLTextAction.h b/libjava/javax/swing/text/html/HTMLEditorKit$HTMLTextAction.h new file mode 100644 index 00000000000..05cf7f3e5f5 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLEditorKit$HTMLTextAction.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLEditorKit$HTMLTextAction__ +#define __javax_swing_text_html_HTMLEditorKit$HTMLTextAction__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class JEditorPane; + namespace text + { + class Element; + namespace html + { + class HTML$Tag; + class HTMLDocument; + class HTMLEditorKit; + class HTMLEditorKit$HTMLTextAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLEditorKit$HTMLTextAction : public ::javax::swing::text::StyledEditorKit$StyledTextAction +{ + +public: + HTMLEditorKit$HTMLTextAction(::java::lang::String *); +public: // actually protected + virtual ::javax::swing::text::html::HTMLDocument * getHTMLDocument(::javax::swing::JEditorPane *); + virtual ::javax::swing::text::html::HTMLEditorKit * getHTMLEditorKit(::javax::swing::JEditorPane *); + virtual JArray< ::javax::swing::text::Element * > * getElementsAt(::javax::swing::text::html::HTMLDocument *, jint); +private: + JArray< ::javax::swing::text::Element * > * getElementsAt(::javax::swing::text::Element *, jint, jint); +public: // actually protected + virtual jint elementCountToTag(::javax::swing::text::html::HTMLDocument *, jint, ::javax::swing::text::html::HTML$Tag *); + virtual ::javax::swing::text::Element * findElementMatchingTag(::javax::swing::text::html::HTMLDocument *, jint, ::javax::swing::text::html::HTML$Tag *); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLEditorKit$HTMLTextAction__ diff --git a/libjava/javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction.h b/libjava/javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction.h new file mode 100644 index 00000000000..187c7a8ee76 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLEditorKit$InsertHTMLTextAction.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLEditorKit$InsertHTMLTextAction__ +#define __javax_swing_text_html_HTMLEditorKit$InsertHTMLTextAction__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class JEditorPane; + namespace text + { + class Element; + namespace html + { + class HTML$Tag; + class HTMLDocument; + class HTMLEditorKit$InsertHTMLTextAction; + } + } + } + } +} + +class javax::swing::text::html::HTMLEditorKit$InsertHTMLTextAction : public ::javax::swing::text::html::HTMLEditorKit$HTMLTextAction +{ + +public: + HTMLEditorKit$InsertHTMLTextAction(::java::lang::String *, ::java::lang::String *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTML$Tag *); + HTMLEditorKit$InsertHTMLTextAction(::java::lang::String *, ::java::lang::String *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTML$Tag *); +public: // actually protected + virtual void insertHTML(::javax::swing::JEditorPane *, ::javax::swing::text::html::HTMLDocument *, jint, ::java::lang::String *, jint, jint, ::javax::swing::text::html::HTML$Tag *); + virtual void insertAtBoundary(::javax::swing::JEditorPane *, ::javax::swing::text::html::HTMLDocument *, jint, ::javax::swing::text::Element *, ::java::lang::String *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTML$Tag *); + virtual void insertAtBoundry(::javax::swing::JEditorPane *, ::javax::swing::text::html::HTMLDocument *, jint, ::javax::swing::text::Element *, ::java::lang::String *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTML$Tag *); +public: + virtual void actionPerformed(::java::awt::event::ActionEvent *); +private: + jboolean tryInsert(::javax::swing::JEditorPane *, ::javax::swing::text::html::HTMLDocument *, jint, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTML$Tag *); + void adjustSelection(::javax::swing::JEditorPane *, ::javax::swing::text::html::HTMLDocument *, jint, jint); +public: // actually protected + ::javax::swing::text::html::HTML$Tag * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLEditorKit$HTMLTextAction)))) addTag; + ::javax::swing::text::html::HTML$Tag * alternateAddTag; + ::javax::swing::text::html::HTML$Tag * alternateParentTag; + ::java::lang::String * html; + ::javax::swing::text::html::HTML$Tag * parentTag; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLEditorKit$InsertHTMLTextAction__ diff --git a/libjava/javax/swing/text/html/HTMLEditorKit$LinkController.h b/libjava/javax/swing/text/html/HTMLEditorKit$LinkController.h new file mode 100644 index 00000000000..629cc679e6d --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLEditorKit$LinkController.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLEditorKit$LinkController__ +#define __javax_swing_text_html_HTMLEditorKit$LinkController__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + namespace event + { + class MouseEvent; + } + } + } + namespace javax + { + namespace swing + { + class JEditorPane; + namespace event + { + class HyperlinkEvent; + } + namespace text + { + class AttributeSet; + class Element; + namespace html + { + class HTMLDocument; + class HTMLEditorKit$LinkController; + } + } + } + } +} + +class javax::swing::text::html::HTMLEditorKit$LinkController : public ::java::awt::event::MouseAdapter +{ + +public: + HTMLEditorKit$LinkController(); + virtual void mouseClicked(::java::awt::event::MouseEvent *); + virtual void mouseDragged(::java::awt::event::MouseEvent *); + virtual void mouseMoved(::java::awt::event::MouseEvent *); +public: // actually protected + virtual void activateLink(jint, ::javax::swing::JEditorPane *); +private: + void activateLink(jint, ::javax::swing::JEditorPane *, jint, jint); + ::javax::swing::event::HyperlinkEvent * createHyperlinkEvent(::javax::swing::JEditorPane *, ::javax::swing::text::html::HTMLDocument *, ::java::lang::String *, ::javax::swing::text::AttributeSet *, ::javax::swing::text::Element *); + ::javax::swing::text::Element * __attribute__((aligned(__alignof__( ::java::awt::event::MouseAdapter)))) lastAnchorElement; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLEditorKit$LinkController__ diff --git a/libjava/javax/swing/text/html/HTMLEditorKit$Parser.h b/libjava/javax/swing/text/html/HTMLEditorKit$Parser.h new file mode 100644 index 00000000000..8727c6ca646 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLEditorKit$Parser.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLEditorKit$Parser__ +#define __javax_swing_text_html_HTMLEditorKit$Parser__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTMLEditorKit$Parser; + class HTMLEditorKit$ParserCallback; + } + } + } + } +} + +class javax::swing::text::html::HTMLEditorKit$Parser : public ::java::lang::Object +{ + +public: + HTMLEditorKit$Parser(); + virtual void parse(::java::io::Reader *, ::javax::swing::text::html::HTMLEditorKit$ParserCallback *, jboolean) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLEditorKit$Parser__ diff --git a/libjava/javax/swing/text/html/HTMLEditorKit$ParserCallback.h b/libjava/javax/swing/text/html/HTMLEditorKit$ParserCallback.h new file mode 100644 index 00000000000..83dffff9405 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLEditorKit$ParserCallback.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLEditorKit$ParserCallback__ +#define __javax_swing_text_html_HTMLEditorKit$ParserCallback__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class MutableAttributeSet; + namespace html + { + class HTML$Tag; + class HTMLEditorKit$ParserCallback; + } + } + } + } +} + +class javax::swing::text::html::HTMLEditorKit$ParserCallback : public ::java::lang::Object +{ + +public: + HTMLEditorKit$ParserCallback(); + virtual void flush(); + virtual void handleComment(JArray< jchar > *, jint); + virtual void handleEndOfLineString(::java::lang::String *); + virtual void handleEndTag(::javax::swing::text::html::HTML$Tag *, jint); + virtual void handleError(::java::lang::String *, jint); + virtual void handleSimpleTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *, jint); + virtual void handleStartTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *, jint); + virtual void handleText(JArray< jchar > *, jint); + static ::java::lang::Object * IMPLIED; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLEditorKit$ParserCallback__ diff --git a/libjava/javax/swing/text/html/HTMLEditorKit.h b/libjava/javax/swing/text/html/HTMLEditorKit.h new file mode 100644 index 00000000000..4c3bc412c39 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLEditorKit.h @@ -0,0 +1,119 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLEditorKit__ +#define __javax_swing_text_html_HTMLEditorKit__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Cursor; + } + } + namespace javax + { + namespace accessibility + { + class AccessibleContext; + } + namespace swing + { + class Action; + class JEditorPane; + namespace text + { + class Document; + class Element; + class MutableAttributeSet; + class ViewFactory; + namespace html + { + class HTML$Tag; + class HTMLDocument; + class HTMLEditorKit; + class HTMLEditorKit$HTMLFactory; + class HTMLEditorKit$LinkController; + class HTMLEditorKit$Parser; + class StyleSheet; + } + } + } + } +} + +class javax::swing::text::html::HTMLEditorKit : public ::javax::swing::text::StyledEditorKit +{ + +public: + HTMLEditorKit(); + virtual ::javax::swing::text::ViewFactory * getViewFactory(); + virtual ::javax::swing::text::Document * createDefaultDocument(); +public: // actually protected + virtual ::javax::swing::text::html::HTMLEditorKit$Parser * getParser(); +public: + virtual void insertHTML(::javax::swing::text::html::HTMLDocument *, jint, ::java::lang::String *, jint, jint, ::javax::swing::text::html::HTML$Tag *); + virtual void read(::java::io::Reader *, ::javax::swing::text::Document *, jint); + virtual void write(::java::io::Writer *, ::javax::swing::text::Document *, jint, jint); + virtual ::java::lang::String * getContentType(); + virtual ::java::lang::Object * clone(); +public: // actually protected + virtual void createInputAttributes(::javax::swing::text::Element *, ::javax::swing::text::MutableAttributeSet *); +public: + virtual void install(::javax::swing::JEditorPane *); + virtual void deinstall(::javax::swing::JEditorPane *); + virtual ::javax::accessibility::AccessibleContext * getAccessibleContext(); + virtual JArray< ::javax::swing::Action * > * getActions(); + virtual ::java::awt::Cursor * getDefaultCursor(); + virtual ::java::awt::Cursor * getLinkCursor(); + virtual void setLinkCursor(::java::awt::Cursor *); + virtual void setDefaultCursor(::java::awt::Cursor *); + virtual ::javax::swing::text::MutableAttributeSet * getInputAttributes(); + virtual ::javax::swing::text::html::StyleSheet * getStyleSheet(); + virtual void setStyleSheet(::javax::swing::text::html::StyleSheet *); + virtual jboolean isAutoFormSubmission(); + virtual void setAutoFormSubmission(jboolean); +private: + static const jlong serialVersionUID = 8751997116710384592LL; +public: + static ::java::lang::String * DEFAULT_CSS; + static ::java::lang::String * BOLD_ACTION; + static ::java::lang::String * ITALIC_ACTION; + static ::java::lang::String * COLOR_ACTION; + static ::java::lang::String * FONT_CHANGE_BIGGER; + static ::java::lang::String * FONT_CHANGE_SMALLER; + static ::java::lang::String * IMG_ALIGN_BOTTOM; + static ::java::lang::String * IMG_ALIGN_MIDDLE; + static ::java::lang::String * IMG_ALIGN_TOP; + static ::java::lang::String * IMG_BORDER; + static ::java::lang::String * LOGICAL_STYLE_ACTION; + static ::java::lang::String * PARA_INDENT_LEFT; + static ::java::lang::String * PARA_INDENT_RIGHT; +private: + static JArray< ::javax::swing::Action * > * defaultActions; + ::javax::swing::text::html::StyleSheet * __attribute__((aligned(__alignof__( ::javax::swing::text::StyledEditorKit)))) styleSheet; +public: // actually package-private + ::javax::swing::text::html::HTMLEditorKit$HTMLFactory * viewFactory; + ::java::awt::Cursor * linkCursor; + ::java::awt::Cursor * defaultCursor; + ::javax::swing::text::html::HTMLEditorKit$Parser * parser; +private: + ::javax::swing::text::html::HTMLEditorKit$LinkController * linkController; +public: // actually package-private + ::java::lang::String * contentType; + ::javax::swing::text::MutableAttributeSet * inputAttributes; + ::javax::swing::JEditorPane * editorPane; +private: + jboolean autoFormSubmission; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLEditorKit__ diff --git a/libjava/javax/swing/text/html/HTMLFrameHyperlinkEvent.h b/libjava/javax/swing/text/html/HTMLFrameHyperlinkEvent.h new file mode 100644 index 00000000000..140395092ac --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLFrameHyperlinkEvent.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLFrameHyperlinkEvent__ +#define __javax_swing_text_html_HTMLFrameHyperlinkEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class HyperlinkEvent$EventType; + } + namespace text + { + class Element; + namespace html + { + class HTMLFrameHyperlinkEvent; + } + } + } + } +} + +class javax::swing::text::html::HTMLFrameHyperlinkEvent : public ::javax::swing::event::HyperlinkEvent +{ + +public: + HTMLFrameHyperlinkEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *, ::javax::swing::text::Element *, ::java::lang::String *); + HTMLFrameHyperlinkEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *, ::java::lang::String *); + HTMLFrameHyperlinkEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *, ::java::lang::String *, ::javax::swing::text::Element *, ::java::lang::String *); + HTMLFrameHyperlinkEvent(::java::lang::Object *, ::javax::swing::event::HyperlinkEvent$EventType *, ::java::net::URL *, ::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getTarget(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::event::HyperlinkEvent)))) target_frame; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLFrameHyperlinkEvent__ diff --git a/libjava/javax/swing/text/html/HTMLWriter.h b/libjava/javax/swing/text/html/HTMLWriter.h new file mode 100644 index 00000000000..321b58d1020 --- /dev/null +++ b/libjava/javax/swing/text/html/HTMLWriter.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_HTMLWriter__ +#define __javax_swing_text_html_HTMLWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Element; + namespace html + { + class HTML$Tag; + class HTMLDocument; + class HTMLWriter; + class Option; + } + } + } + } +} + +class javax::swing::text::html::HTMLWriter : public ::javax::swing::text::AbstractWriter +{ + +public: + HTMLWriter(::java::io::Writer *, ::javax::swing::text::html::HTMLDocument *); + HTMLWriter(::java::io::Writer *, ::javax::swing::text::html::HTMLDocument *, jint, jint); + virtual void write(); +public: // actually protected + virtual void writeAttributes(::javax::swing::text::AttributeSet *); + virtual void emptyTag(::javax::swing::text::Element *); + virtual jboolean isBlockTag(::javax::swing::text::AttributeSet *); + virtual void startTag(::javax::swing::text::Element *); + virtual void textAreaContent(::javax::swing::text::AttributeSet *); + virtual void text(::javax::swing::text::Element *); + virtual void selectContent(::javax::swing::text::AttributeSet *); + virtual void writeOption(::javax::swing::text::html::Option *); + virtual void endTag(::javax::swing::text::Element *); + virtual void comment(::javax::swing::text::Element *); + virtual jboolean synthesizedElement(::javax::swing::text::Element *); + virtual jboolean matchNameAttribute(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::HTML$Tag *); + virtual void writeEmbeddedTags(::javax::swing::text::AttributeSet *); + virtual void closeOutUnwantedEmbeddedTags(::javax::swing::text::AttributeSet *); + virtual void writeLineSeparator(); + virtual void output(JArray< jchar > *, jint, jint); +private: + void traverse(::javax::swing::text::Element *); + void traverseHtmlFragment(::javax::swing::text::Element *); + void writeRaw(::java::lang::String *); + void writeContent(::java::lang::String *); + void writeAllAttributes(::javax::swing::text::AttributeSet *); + jboolean hasHtmlEntity(::java::lang::String *); + jboolean isCharHtmlEntity(jchar); + ::java::lang::String * escapeCharHtmlEntity(jchar); + ::java::io::Writer * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractWriter)))) outWriter; + ::javax::swing::text::html::HTMLDocument * htmlDoc; + ::java::util::HashSet * openEmbededTagHashSet; + ::java::lang::String * new_line_str; + JArray< jchar > * html_entity_char_arr; + JArray< ::java::lang::String * > * html_entity_escape_str_arr; + jint doc_pos; + jint doc_len; + jint doc_offset_remaining; + jint doc_len_remaining; + ::java::util::HashSet * htmlFragmentParentHashSet; + ::javax::swing::text::Element * startElem; + ::javax::swing::text::Element * endElem; + jboolean fg_pass_start_elem; + jboolean fg_pass_end_elem; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_HTMLWriter__ diff --git a/libjava/javax/swing/text/html/ImageView$1.h b/libjava/javax/swing/text/html/ImageView$1.h new file mode 100644 index 00000000000..23140f92f91 --- /dev/null +++ b/libjava/javax/swing/text/html/ImageView$1.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ImageView$1__ +#define __javax_swing_text_html_ImageView$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class View; + namespace html + { + class ImageView; + class ImageView$1; + } + } + } + } +} + +class javax::swing::text::html::ImageView$1 : public ::java::lang::Object +{ + +public: // actually package-private + ImageView$1(::javax::swing::text::html::ImageView *, ::javax::swing::text::View *, jboolean, jboolean); +public: + void run(); +public: // actually package-private + ::javax::swing::text::html::ImageView * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::javax::swing::text::View * val$v; + jboolean val$width; + jboolean val$height; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ImageView$1__ diff --git a/libjava/javax/swing/text/html/ImageView$Observer.h b/libjava/javax/swing/text/html/ImageView$Observer.h new file mode 100644 index 00000000000..be4b8dbf9dc --- /dev/null +++ b/libjava/javax/swing/text/html/ImageView$Observer.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ImageView$Observer__ +#define __javax_swing_text_html_ImageView$Observer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Image; + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class ImageView; + class ImageView$Observer; + } + } + } + } +} + +class javax::swing::text::html::ImageView$Observer : public ::java::lang::Object +{ + +public: // actually package-private + ImageView$Observer(::javax::swing::text::html::ImageView *); +public: + virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint); +public: // actually package-private + ::javax::swing::text::html::ImageView * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ImageView$Observer__ diff --git a/libjava/javax/swing/text/html/ImageView.h b/libjava/javax/swing/text/html/ImageView.h new file mode 100644 index 00000000000..91b96bc012b --- /dev/null +++ b/libjava/javax/swing/text/html/ImageView.h @@ -0,0 +1,126 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ImageView__ +#define __javax_swing_text_html_ImageView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Length; + } + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Image; + class Shape; + namespace image + { + class ImageObserver; + } + } + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + class Icon; + namespace text + { + class AttributeSet; + class Element; + class Position$Bias; + class View; + namespace html + { + class ImageView; + class StyleSheet; + } + } + } + } +} + +class javax::swing::text::html::ImageView : public ::javax::swing::text::View +{ + +public: + ImageView(::javax::swing::text::Element *); +private: + void reloadImage(); +public: + virtual jfloat getAlignment(jint); + virtual ::java::lang::String * getAltText(); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual ::java::awt::Image * getImage(); + virtual ::java::net::URL * getImageURL(); + virtual ::javax::swing::Icon * getLoadingImageIcon(); + virtual jboolean getLoadsSynchronously(); + virtual ::javax::swing::Icon * getNoImageIcon(); + virtual jfloat getPreferredSpan(jint); +public: // actually protected + virtual ::javax::swing::text::html::StyleSheet * getStyleSheet(); +public: + virtual ::java::lang::String * getToolTipText(jfloat, jfloat, ::java::awt::Shape *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual void setLoadsSynchronously(jboolean); +public: // actually protected + virtual void setPropertiesFromAttributes(); +public: + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual void setSize(jfloat, jfloat); +private: + void updateState(); + void loadImage(); + void updateSize(); +public: // actually package-private + virtual void safePreferenceChanged(::javax::swing::text::View *, jboolean, jboolean); + jboolean __attribute__((aligned(__alignof__( ::javax::swing::text::View)))) loadOnDemand; + ::java::awt::Image * image; + jbyte imageState; +private: + jboolean reloadImage__; + jboolean reloadProperties; + jboolean haveWidth; + jboolean haveHeight; + jboolean loading; + jint width; + jint height; + ::java::awt::image::ImageObserver * observer; +public: // actually package-private + JArray< ::gnu::javax::swing::text::html::css::Length * > * spans; +private: + ::javax::swing::text::AttributeSet * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ImageView__ diff --git a/libjava/javax/swing/text/html/InlineView.h b/libjava/javax/swing/text/html/InlineView.h new file mode 100644 index 00000000000..0d552dd7e8d --- /dev/null +++ b/libjava/javax/swing/text/html/InlineView.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_InlineView__ +#define __javax_swing_text_html_InlineView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class DocumentEvent; + } + namespace text + { + class AttributeSet; + class Element; + class View; + class ViewFactory; + namespace html + { + class InlineView; + class StyleSheet; + } + } + } + } +} + +class javax::swing::text::html::InlineView : public ::javax::swing::text::LabelView +{ + +public: + InlineView(::javax::swing::text::Element *); + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual jint getBreakWeight(jint, jfloat, jfloat); + virtual ::javax::swing::text::View * breakView(jint, jint, jfloat, jfloat); +public: // actually protected + virtual void setPropertiesFromAttributes(); + virtual ::javax::swing::text::html::StyleSheet * getStyleSheet(); +public: + virtual jfloat getMinimumSpan(jint); +private: + jfloat getLongestWord(); + jfloat calculateLongestWord(); + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::text::LabelView)))) attributes; + jfloat longestWord; + jboolean nowrap; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_InlineView__ diff --git a/libjava/javax/swing/text/html/ListView.h b/libjava/javax/swing/text/html/ListView.h new file mode 100644 index 00000000000..7e179a90c69 --- /dev/null +++ b/libjava/javax/swing/text/html/ListView.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ListView__ +#define __javax_swing_text_html_ListView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + namespace html + { + class ListView; + class StyleSheet$ListPainter; + } + } + } + } +} + +class javax::swing::text::html::ListView : public ::javax::swing::text::html::BlockView +{ + +public: + ListView(::javax::swing::text::Element *); + virtual jfloat getAlignment(jint); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); +public: // actually protected + virtual void paintChild(::java::awt::Graphics *, ::java::awt::Rectangle *, jint); + virtual void setPropertiesFromAttributes(); +private: + ::javax::swing::text::html::StyleSheet$ListPainter * __attribute__((aligned(__alignof__( ::javax::swing::text::html::BlockView)))) painter; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ListView__ diff --git a/libjava/javax/swing/text/html/MinimalHTMLWriter.h b/libjava/javax/swing/text/html/MinimalHTMLWriter.h new file mode 100644 index 00000000000..c46afec29b5 --- /dev/null +++ b/libjava/javax/swing/text/html/MinimalHTMLWriter.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_MinimalHTMLWriter__ +#define __javax_swing_text_html_MinimalHTMLWriter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Element; + class Style; + class StyledDocument; + namespace html + { + class MinimalHTMLWriter; + } + } + } + } +} + +class javax::swing::text::html::MinimalHTMLWriter : public ::javax::swing::text::AbstractWriter +{ + +public: + MinimalHTMLWriter(::java::io::Writer *, ::javax::swing::text::StyledDocument *); + MinimalHTMLWriter(::java::io::Writer *, ::javax::swing::text::StyledDocument *, jint, jint); +public: // actually protected + virtual void startFontTag(::java::lang::String *); + virtual jboolean inFontTag(); + virtual void endFontTag(); +public: + virtual void write(); +public: // actually protected + virtual void writeStartTag(::java::lang::String *); + virtual void writeEndTag(::java::lang::String *); + virtual void writeHeader(); + virtual void writeStartParagraph(::javax::swing::text::Element *); + virtual void writeEndParagraph(); + virtual void writeBody(); + virtual void text(::javax::swing::text::Element *); + virtual void writeHTMLTags(::javax::swing::text::AttributeSet *); + virtual jboolean isText(::javax::swing::text::Element *); + virtual void writeContent(::javax::swing::text::Element *, jboolean); + virtual void writeLeaf(::javax::swing::text::Element *); + virtual void writeNonHTMLAttributes(::javax::swing::text::AttributeSet *); + virtual void writeStyles(); + virtual void writeAttributes(::javax::swing::text::AttributeSet *); + virtual void writeComponent(::javax::swing::text::Element *); + virtual void writeImage(::javax::swing::text::Element *); +private: + ::java::lang::String * getAttribute(::java::lang::String *, ::java::lang::Object *); + ::java::lang::String * getColor(::java::awt::Color *); + void endOpenTags(); + void writeStyle(::javax::swing::text::Style *); + jboolean hasText(::javax::swing::text::Element *); + ::javax::swing::text::StyledDocument * __attribute__((aligned(__alignof__( ::javax::swing::text::AbstractWriter)))) doc; + ::java::util::Stack * tagStack; + jboolean inFontTag__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_MinimalHTMLWriter__ diff --git a/libjava/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.h b/libjava/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.h new file mode 100644 index 00000000000..5705c57ad50 --- /dev/null +++ b/libjava/javax/swing/text/html/MultiAttributeSet$MultiNameEnumeration.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_MultiAttributeSet$MultiNameEnumeration__ +#define __javax_swing_text_html_MultiAttributeSet$MultiNameEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class MultiAttributeSet; + class MultiAttributeSet$MultiNameEnumeration; + } + } + } + } +} + +class javax::swing::text::html::MultiAttributeSet$MultiNameEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + MultiAttributeSet$MultiNameEnumeration(::javax::swing::text::html::MultiAttributeSet *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) index; + ::java::util::Enumeration * current; +public: // actually package-private + ::javax::swing::text::html::MultiAttributeSet * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_MultiAttributeSet$MultiNameEnumeration__ diff --git a/libjava/javax/swing/text/html/MultiAttributeSet.h b/libjava/javax/swing/text/html/MultiAttributeSet.h new file mode 100644 index 00000000000..f189e7c5528 --- /dev/null +++ b/libjava/javax/swing/text/html/MultiAttributeSet.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_MultiAttributeSet__ +#define __javax_swing_text_html_MultiAttributeSet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + namespace html + { + class MultiAttributeSet; + } + } + } + } +} + +class javax::swing::text::html::MultiAttributeSet : public ::java::lang::Object +{ + +public: // actually package-private + MultiAttributeSet(); + MultiAttributeSet(JArray< ::javax::swing::text::AttributeSet * > *); + virtual void init(JArray< ::javax::swing::text::AttributeSet * > *); +public: + virtual jboolean containsAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual jboolean containsAttributes(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * copyAttributes(); + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual jint getAttributeCount(); + virtual ::java::util::Enumeration * getAttributeNames(); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); + virtual jboolean isDefined(::java::lang::Object *); + virtual jboolean isEqual(::javax::swing::text::AttributeSet *); +public: // actually package-private + JArray< ::javax::swing::text::AttributeSet * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) multi; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_MultiAttributeSet__ diff --git a/libjava/javax/swing/text/html/MultiStyle.h b/libjava/javax/swing/text/html/MultiStyle.h new file mode 100644 index 00000000000..f330d5f6e47 --- /dev/null +++ b/libjava/javax/swing/text/html/MultiStyle.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_MultiStyle__ +#define __javax_swing_text_html_MultiStyle__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeListener; + } + namespace text + { + class AttributeSet; + class SimpleAttributeSet; + namespace html + { + class MultiStyle; + } + } + } + } +} + +class javax::swing::text::html::MultiStyle : public ::javax::swing::text::html::MultiAttributeSet +{ + +public: + MultiStyle(::java::lang::String *, JArray< ::javax::swing::text::AttributeSet * > *); + virtual ::java::lang::String * getName(); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual void addAttribute(::java::lang::Object *, ::java::lang::Object *); + virtual void addAttributes(::javax::swing::text::AttributeSet *); + virtual void removeAttribute(::java::lang::Object *); + virtual void removeAttributes(::java::util::Enumeration *); + virtual void removeAttributes(::javax::swing::text::AttributeSet *); + virtual void setResolveParent(::javax::swing::text::AttributeSet *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::text::html::MultiAttributeSet)))) name; + ::javax::swing::text::SimpleAttributeSet * attributes; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_MultiStyle__ diff --git a/libjava/javax/swing/text/html/NullView.h b/libjava/javax/swing/text/html/NullView.h new file mode 100644 index 00000000000..2947ee72769 --- /dev/null +++ b/libjava/javax/swing/text/html/NullView.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_NullView__ +#define __javax_swing_text_html_NullView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + class Position$Bias; + namespace html + { + class NullView; + } + } + } + } +} + +class javax::swing::text::html::NullView : public ::javax::swing::text::View +{ + +public: + NullView(::javax::swing::text::Element *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual jfloat getPreferredSpan(jint); + virtual ::java::awt::Shape * modelToView(jint, ::java::awt::Shape *, ::javax::swing::text::Position$Bias *); + virtual jint viewToModel(jfloat, jfloat, ::java::awt::Shape *, JArray< ::javax::swing::text::Position$Bias * > *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_NullView__ diff --git a/libjava/javax/swing/text/html/ObjectView.h b/libjava/javax/swing/text/html/ObjectView.h new file mode 100644 index 00000000000..666b671aa0d --- /dev/null +++ b/libjava/javax/swing/text/html/ObjectView.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ObjectView__ +#define __javax_swing_text_html_ObjectView__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class Element; + namespace html + { + class ObjectView; + } + } + } + } +} + +class javax::swing::text::html::ObjectView : public ::javax::swing::text::ComponentView +{ + +public: + ObjectView(::javax::swing::text::Element *); +public: // actually protected + virtual ::java::awt::Component * createComponent(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ObjectView__ diff --git a/libjava/javax/swing/text/html/Option.h b/libjava/javax/swing/text/html/Option.h new file mode 100644 index 00000000000..062c069e9bb --- /dev/null +++ b/libjava/javax/swing/text/html/Option.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_Option__ +#define __javax_swing_text_html_Option__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + namespace html + { + class Option; + } + } + } + } +} + +class javax::swing::text::html::Option : public ::java::lang::Object +{ + +public: + Option(::javax::swing::text::AttributeSet *); + virtual void setLabel(::java::lang::String *); + virtual ::java::lang::String * getLabel(); + virtual ::javax::swing::text::AttributeSet * getAttributes(); + virtual ::java::lang::String * toString(); +public: // actually protected + virtual void setSelection(jboolean); +public: + virtual jboolean isSelected(); + virtual ::java::lang::String * getValue(); +private: + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attributes; + ::java::lang::String * label; + jboolean selected; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_Option__ diff --git a/libjava/javax/swing/text/html/ParagraphView.h b/libjava/javax/swing/text/html/ParagraphView.h new file mode 100644 index 00000000000..6e166ad877d --- /dev/null +++ b/libjava/javax/swing/text/html/ParagraphView.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ParagraphView__ +#define __javax_swing_text_html_ParagraphView__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Length; + } + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Shape; + } + } + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace text + { + class AttributeSet; + class Element; + class View; + namespace html + { + class ParagraphView; + class StyleSheet; + class StyleSheet$BoxPainter; + } + } + } + } +} + +class javax::swing::text::html::ParagraphView : public ::javax::swing::text::ParagraphView +{ + +public: + ParagraphView(::javax::swing::text::Element *); + virtual void setParent(::javax::swing::text::View *); + virtual ::javax::swing::text::AttributeSet * getAttributes(); +public: // actually protected + virtual void setPropertiesFromAttributes(); + virtual ::javax::swing::text::html::StyleSheet * getStyleSheet(); + virtual ::javax::swing::SizeRequirements * calculateMinorAxisRequirements(jint, ::javax::swing::SizeRequirements *); +private: + jboolean setCSSSpan(::javax::swing::SizeRequirements *, jint); +public: + virtual jboolean isVisible(); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); + virtual jfloat getPreferredSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual jfloat getMaximumSpan(jint); +private: + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::text::ParagraphView)))) attributes; + ::javax::swing::text::html::StyleSheet$BoxPainter * painter; + ::gnu::javax::swing::text::html::css::Length * cssWidth; + ::gnu::javax::swing::text::html::css::Length * cssHeight; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ParagraphView__ diff --git a/libjava/javax/swing/text/html/ResetableModel.h b/libjava/javax/swing/text/html/ResetableModel.h new file mode 100644 index 00000000000..f07a0ed9aa2 --- /dev/null +++ b/libjava/javax/swing/text/html/ResetableModel.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ResetableModel__ +#define __javax_swing_text_html_ResetableModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class ResetableModel; + } + } + } + } +} + +class javax::swing::text::html::ResetableModel : public ::java::lang::Object +{ + +public: + virtual void reset() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_html_ResetableModel__ diff --git a/libjava/javax/swing/text/html/ResetablePlainDocument.h b/libjava/javax/swing/text/html/ResetablePlainDocument.h new file mode 100644 index 00000000000..31283e50bfb --- /dev/null +++ b/libjava/javax/swing/text/html/ResetablePlainDocument.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ResetablePlainDocument__ +#define __javax_swing_text_html_ResetablePlainDocument__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class ResetablePlainDocument; + } + } + } + } +} + +class javax::swing::text::html::ResetablePlainDocument : public ::javax::swing::text::PlainDocument +{ + +public: // actually package-private + ResetablePlainDocument(); + virtual void setInitialText(::java::lang::String *); +public: + virtual void reset(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::text::PlainDocument)))) initial; +public: // actually package-private + static jboolean $assertionsDisabled; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ResetablePlainDocument__ diff --git a/libjava/javax/swing/text/html/ResetableToggleButtonModel.h b/libjava/javax/swing/text/html/ResetableToggleButtonModel.h new file mode 100644 index 00000000000..13295225b78 --- /dev/null +++ b/libjava/javax/swing/text/html/ResetableToggleButtonModel.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ResetableToggleButtonModel__ +#define __javax_swing_text_html_ResetableToggleButtonModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class ResetableToggleButtonModel; + } + } + } + } +} + +class javax::swing::text::html::ResetableToggleButtonModel : public ::javax::swing::JToggleButton$ToggleButtonModel +{ + +public: // actually package-private + ResetableToggleButtonModel(); +public: + virtual void setInitial(jboolean); + virtual void reset(); +private: + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JToggleButton$ToggleButtonModel)))) initial; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ResetableToggleButtonModel__ diff --git a/libjava/javax/swing/text/html/SelectComboBoxModel.h b/libjava/javax/swing/text/html/SelectComboBoxModel.h new file mode 100644 index 00000000000..e9ae5c6fe0f --- /dev/null +++ b/libjava/javax/swing/text/html/SelectComboBoxModel.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_SelectComboBoxModel__ +#define __javax_swing_text_html_SelectComboBoxModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class Option; + class SelectComboBoxModel; + } + } + } + } +} + +class javax::swing::text::html::SelectComboBoxModel : public ::javax::swing::DefaultComboBoxModel +{ + +public: // actually package-private + SelectComboBoxModel(); + virtual void setInitialSelection(::javax::swing::text::html::Option *); + virtual ::javax::swing::text::html::Option * getInitialSelection(); +public: + virtual void reset(); +private: + ::javax::swing::text::html::Option * __attribute__((aligned(__alignof__( ::javax::swing::DefaultComboBoxModel)))) initial; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_SelectComboBoxModel__ diff --git a/libjava/javax/swing/text/html/SelectListModel.h b/libjava/javax/swing/text/html/SelectListModel.h new file mode 100644 index 00000000000..85ce6c3d429 --- /dev/null +++ b/libjava/javax/swing/text/html/SelectListModel.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_SelectListModel__ +#define __javax_swing_text_html_SelectListModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class DefaultListSelectionModel; + class ListSelectionModel; + namespace text + { + namespace html + { + class SelectListModel; + } + } + } + } +} + +class javax::swing::text::html::SelectListModel : public ::javax::swing::DefaultListModel +{ + +public: // actually package-private + SelectListModel(); + virtual void addInitialSelection(jint); +public: + virtual void reset(); +public: // actually package-private + virtual ::javax::swing::ListSelectionModel * getSelectionModel(); +private: + ::javax::swing::DefaultListSelectionModel * __attribute__((aligned(__alignof__( ::javax::swing::DefaultListModel)))) selectionModel; + ::java::util::BitSet * initialSelection; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_SelectListModel__ diff --git a/libjava/javax/swing/text/html/StyleSheet$BoxPainter.h b/libjava/javax/swing/text/html/StyleSheet$BoxPainter.h new file mode 100644 index 00000000000..739686890a9 --- /dev/null +++ b/libjava/javax/swing/text/html/StyleSheet$BoxPainter.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_StyleSheet$BoxPainter__ +#define __javax_swing_text_html_StyleSheet$BoxPainter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace text + { + class AttributeSet; + class View; + namespace html + { + class StyleSheet; + class StyleSheet$BoxPainter; + } + } + } + } +} + +class javax::swing::text::html::StyleSheet$BoxPainter : public ::java::lang::Object +{ + +public: // actually package-private + StyleSheet$BoxPainter(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::StyleSheet *); +public: + virtual jfloat getInset(jint, ::javax::swing::text::View *); + virtual void paint(::java::awt::Graphics *, jfloat, jfloat, jfloat, jfloat, ::javax::swing::text::View *); +private: + jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) leftInset; + jfloat rightInset; + jfloat topInset; + jfloat bottomInset; + ::javax::swing::border::Border * border; + jfloat leftPadding; + jfloat rightPadding; + jfloat topPadding; + jfloat bottomPadding; + ::java::awt::Color * background; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_StyleSheet$BoxPainter__ diff --git a/libjava/javax/swing/text/html/StyleSheet$CSSStyle.h b/libjava/javax/swing/text/html/StyleSheet$CSSStyle.h new file mode 100644 index 00000000000..51353b86cf1 --- /dev/null +++ b/libjava/javax/swing/text/html/StyleSheet$CSSStyle.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_StyleSheet$CSSStyle__ +#define __javax_swing_text_html_StyleSheet$CSSStyle__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Selector; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace event + { + class ChangeListener; + } + namespace text + { + namespace html + { + class StyleSheet; + class StyleSheet$CSSStyle; + } + } + } + } +} + +class javax::swing::text::html::StyleSheet$CSSStyle : public ::javax::swing::text::SimpleAttributeSet +{ + +public: // actually package-private + StyleSheet$CSSStyle(::javax::swing::text::html::StyleSheet *, jint, ::gnu::javax::swing::text::html::css::Selector *); +public: + virtual ::java::lang::String * getName(); + virtual void addChangeListener(::javax::swing::event::ChangeListener *); + virtual void removeChangeListener(::javax::swing::event::ChangeListener *); + virtual jint compareTo(::java::lang::Object *); +public: // actually package-private + static const jint PREC_UA = 0; + static const jint PREC_NORM = 100000; + static const jint PREC_AUTHOR_NORMAL = 200000; + static const jint PREC_AUTHOR_IMPORTANT = 300000; + static const jint PREC_USER_IMPORTANT = 400000; +private: + jint __attribute__((aligned(__alignof__( ::javax::swing::text::SimpleAttributeSet)))) precedence; +public: // actually package-private + ::gnu::javax::swing::text::html::css::Selector * selector; + ::javax::swing::text::html::StyleSheet * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_StyleSheet$CSSStyle__ diff --git a/libjava/javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback.h b/libjava/javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback.h new file mode 100644 index 00000000000..43c5813788c --- /dev/null +++ b/libjava/javax/swing/text/html/StyleSheet$CSSStyleSheetParserCallback.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_StyleSheet$CSSStyleSheetParserCallback__ +#define __javax_swing_text_html_StyleSheet$CSSStyleSheetParserCallback__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Selector; + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class StyleSheet; + class StyleSheet$CSSStyle; + class StyleSheet$CSSStyleSheetParserCallback; + } + } + } + } +} + +class javax::swing::text::html::StyleSheet$CSSStyleSheetParserCallback : public ::java::lang::Object +{ + +public: // actually package-private + StyleSheet$CSSStyleSheetParserCallback(::javax::swing::text::html::StyleSheet *, jint); +public: + virtual void startStatement(JArray< ::gnu::javax::swing::text::html::css::Selector * > *); + virtual void endStatement(); + virtual void declaration(::java::lang::String *, ::java::lang::String *); +private: + JArray< ::javax::swing::text::html::StyleSheet$CSSStyle * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) styles; + jint precedence; +public: // actually package-private + ::javax::swing::text::html::StyleSheet * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_StyleSheet$CSSStyleSheetParserCallback__ diff --git a/libjava/javax/swing/text/html/StyleSheet$CssParser.h b/libjava/javax/swing/text/html/StyleSheet$CssParser.h new file mode 100644 index 00000000000..5d2fded39da --- /dev/null +++ b/libjava/javax/swing/text/html/StyleSheet$CssParser.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_StyleSheet$CssParser__ +#define __javax_swing_text_html_StyleSheet$CssParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class MutableAttributeSet; + namespace html + { + class CSSParser; + class StyleSheet; + class StyleSheet$CssParser; + } + } + } + } +} + +class javax::swing::text::html::StyleSheet$CssParser : public ::java::lang::Object +{ + +public: // actually package-private + StyleSheet$CssParser(::javax::swing::text::html::StyleSheet *); +public: + virtual ::javax::swing::text::AttributeSet * parseDeclaration(::java::lang::String *); + virtual ::javax::swing::text::AttributeSet * parseDeclaration(::java::io::Reader *); + virtual void parse(::java::net::URL *, ::java::io::Reader *, jboolean, jboolean); + virtual void handleImport(::java::lang::String *); + virtual void handleSelector(::java::lang::String *); + virtual void startRule(); + virtual void handleProperty(::java::lang::String *); + virtual void handleValue(::java::lang::String *); + virtual void endRule(); +private: + void addSelector(); +public: // actually package-private + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) selectors; + ::java::util::Vector * selectorTokens; + ::java::lang::String * propertyName; + ::javax::swing::text::MutableAttributeSet * declaration; + jboolean parsingDeclaration; + jboolean isLink; + ::java::net::URL * base; + ::javax::swing::text::html::CSSParser * parser; + ::javax::swing::text::html::StyleSheet * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_StyleSheet$CssParser__ diff --git a/libjava/javax/swing/text/html/StyleSheet$ListPainter.h b/libjava/javax/swing/text/html/StyleSheet$ListPainter.h new file mode 100644 index 00000000000..d910fc0d3e6 --- /dev/null +++ b/libjava/javax/swing/text/html/StyleSheet$ListPainter.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_StyleSheet$ListPainter__ +#define __javax_swing_text_html_StyleSheet$ListPainter__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class View; + namespace html + { + class StyleSheet; + class StyleSheet$ListPainter; + } + } + } + } +} + +class javax::swing::text::html::StyleSheet$ListPainter : public ::java::lang::Object +{ + +public: // actually package-private + StyleSheet$ListPainter(::javax::swing::text::AttributeSet *, ::javax::swing::text::html::StyleSheet *); +public: + virtual void paint(::java::awt::Graphics *, jfloat, jfloat, jfloat, jfloat, ::javax::swing::text::View *, jint); +private: + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attributes; + ::javax::swing::text::html::StyleSheet * styleSheet; + ::java::lang::String * type; + ::java::awt::Rectangle * tmpRect; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_StyleSheet$ListPainter__ diff --git a/libjava/javax/swing/text/html/StyleSheet.h b/libjava/javax/swing/text/html/StyleSheet.h new file mode 100644 index 00000000000..3c9bbffdb19 --- /dev/null +++ b/libjava/javax/swing/text/html/StyleSheet.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_StyleSheet__ +#define __javax_swing_text_html_StyleSheet__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Font; + } + namespace net + { + class URL; + } + } + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class Element; + class MutableAttributeSet; + class Style; + class StyleContext$SmallAttributeSet; + class View; + namespace html + { + class CSS$Attribute; + class HTML$Tag; + class StyleSheet; + class StyleSheet$BoxPainter; + class StyleSheet$ListPainter; + } + } + } + } +} + +class javax::swing::text::html::StyleSheet : public ::javax::swing::text::StyleContext +{ + +public: + StyleSheet(); + virtual ::javax::swing::text::Style * getRule(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::Element *); +private: + ::javax::swing::text::Style * getResolvedStyle(::java::lang::String *, ::java::util::List *, ::javax::swing::text::html::HTML$Tag *); + ::javax::swing::text::Style * resolveStyle(::java::lang::String *, ::java::util::List *, ::javax::swing::text::html::HTML$Tag *); + ::javax::swing::text::Style * resolveStyle(::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::util::Map * > *); +public: + virtual ::javax::swing::text::Style * getRule(::java::lang::String *); + virtual void addRule(::java::lang::String *); + virtual ::javax::swing::text::AttributeSet * getDeclaration(::java::lang::String *); + virtual void loadRules(::java::io::Reader *, ::java::net::URL *); + virtual ::javax::swing::text::AttributeSet * getViewAttributes(::javax::swing::text::View *); + virtual void removeStyle(::java::lang::String *); + virtual void addStyleSheet(::javax::swing::text::html::StyleSheet *); + virtual void removeStyleSheet(::javax::swing::text::html::StyleSheet *); + virtual JArray< ::javax::swing::text::html::StyleSheet * > * getStyleSheets(); + virtual void importStyleSheet(::java::net::URL *); + virtual void setBase(::java::net::URL *); + virtual ::java::net::URL * getBase(); + virtual void addCSSAttribute(::javax::swing::text::MutableAttributeSet *, ::javax::swing::text::html::CSS$Attribute *, ::java::lang::String *); + virtual jboolean addCSSAttributeFromHTML(::javax::swing::text::MutableAttributeSet *, ::javax::swing::text::html::CSS$Attribute *, ::java::lang::String *); + virtual ::javax::swing::text::AttributeSet * translateHTMLToCSS(::javax::swing::text::AttributeSet *); +private: + ::javax::swing::text::AttributeSet * translateBorder(::javax::swing::text::AttributeSet *, ::java::lang::Object *); +public: + virtual ::javax::swing::text::AttributeSet * addAttribute(::javax::swing::text::AttributeSet *, ::java::lang::Object *, ::java::lang::Object *); + virtual ::javax::swing::text::AttributeSet * addAttributes(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * removeAttribute(::javax::swing::text::AttributeSet *, ::java::lang::Object *); + virtual ::javax::swing::text::AttributeSet * removeAttributes(::javax::swing::text::AttributeSet *, ::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::AttributeSet * removeAttributes(::javax::swing::text::AttributeSet *, ::java::util::Enumeration *); +public: // actually protected + virtual ::javax::swing::text::StyleContext$SmallAttributeSet * createSmallAttributeSet(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::MutableAttributeSet * createLargeAttributeSet(::javax::swing::text::AttributeSet *); +public: + virtual ::java::awt::Font * getFont(::javax::swing::text::AttributeSet *); +public: // actually package-private + virtual jfloat getEMBase(::javax::swing::text::AttributeSet *); + virtual jfloat getEXBase(::javax::swing::text::AttributeSet *); +private: + jint getFontSize(::javax::swing::text::AttributeSet *); +public: + virtual ::java::awt::Color * getForeground(::javax::swing::text::AttributeSet *); + virtual ::java::awt::Color * getBackground(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::html::StyleSheet$BoxPainter * getBoxPainter(::javax::swing::text::AttributeSet *); + virtual ::javax::swing::text::html::StyleSheet$ListPainter * getListPainter(::javax::swing::text::AttributeSet *); + virtual void setBaseFontSize(jint); + virtual void setBaseFontSize(::java::lang::String *); + static jint getIndexOfSize(jfloat); + virtual jfloat getPointSize(jint); + virtual jfloat getPointSize(::java::lang::String *); + virtual ::java::awt::Color * stringToColor(::java::lang::String *); +private: + ::java::util::Map * attributeSetToMap(::javax::swing::text::AttributeSet *); +public: // actually package-private + ::java::net::URL * __attribute__((aligned(__alignof__( ::javax::swing::text::StyleContext)))) base; + jint baseFontSize; +private: + ::java::util::ArrayList * linked; +public: // actually package-private + ::java::util::ArrayList * css; +private: + ::java::util::HashMap * resolvedStyles; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_StyleSheet__ diff --git a/libjava/javax/swing/text/html/TableView$CellView.h b/libjava/javax/swing/text/html/TableView$CellView.h new file mode 100644 index 00000000000..c878fa60a00 --- /dev/null +++ b/libjava/javax/swing/text/html/TableView$CellView.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_TableView$CellView__ +#define __javax_swing_text_html_TableView$CellView__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace text + { + class Element; + namespace html + { + class TableView; + class TableView$CellView; + } + } + } + } +} + +class javax::swing::text::html::TableView$CellView : public ::javax::swing::text::html::BlockView +{ + +public: // actually package-private + TableView$CellView(::javax::swing::text::html::TableView *, ::javax::swing::text::Element *); +public: // actually protected + virtual ::javax::swing::SizeRequirements * calculateMajorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual void setPropertiesFromAttributes(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::javax::swing::text::html::BlockView)))) colSpan; + jint rowSpan; + ::javax::swing::text::html::TableView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_TableView$CellView__ diff --git a/libjava/javax/swing/text/html/TableView$RowView.h b/libjava/javax/swing/text/html/TableView$RowView.h new file mode 100644 index 00000000000..f031898c1c1 --- /dev/null +++ b/libjava/javax/swing/text/html/TableView$RowView.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_TableView$RowView__ +#define __javax_swing_text_html_TableView$RowView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace text + { + class Element; + class View; + namespace html + { + class TableView; + class TableView$RowView; + } + } + } + } +} + +class javax::swing::text::html::TableView$RowView : public ::javax::swing::text::html::BlockView +{ + +public: // actually package-private + TableView$RowView(::javax::swing::text::html::TableView *, ::javax::swing::text::Element *); +public: + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); + virtual jfloat getMaximumSpan(jint); + virtual jfloat getMinimumSpan(jint); + virtual jfloat getPreferredSpan(jint); +public: // actually protected + virtual ::javax::swing::SizeRequirements * calculateMajorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual void layoutMinorAxis(jint, jint, JArray< jint > *, JArray< jint > *); + virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *); +public: // actually package-private + JArray< jboolean > * __attribute__((aligned(__alignof__( ::javax::swing::text::html::BlockView)))) overlap; + jint rowIndex; + ::javax::swing::text::html::TableView * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_TableView$RowView__ diff --git a/libjava/javax/swing/text/html/TableView.h b/libjava/javax/swing/text/html/TableView.h new file mode 100644 index 00000000000..b271a4e48ac --- /dev/null +++ b/libjava/javax/swing/text/html/TableView.h @@ -0,0 +1,119 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_TableView__ +#define __javax_swing_text_html_TableView__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace css + { + class Length; + } + } + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Rectangle; + class Shape; + } + } + namespace javax + { + namespace swing + { + class SizeRequirements; + namespace event + { + class DocumentEvent; + } + namespace text + { + class AttributeSet; + class Element; + class View; + class ViewFactory; + namespace html + { + class StyleSheet; + class TableView; + } + } + } + } +} + +class javax::swing::text::html::TableView : public ::javax::swing::text::html::BlockView +{ + +public: + TableView(::javax::swing::text::Element *); + virtual ::javax::swing::text::View * create(::javax::swing::text::Element *); + virtual ::javax::swing::text::ViewFactory * getViewFactory(); + virtual ::javax::swing::text::AttributeSet * getAttributes(); +public: // actually protected + virtual ::javax::swing::text::html::StyleSheet * getStyleSheet(); + virtual ::javax::swing::SizeRequirements * calculateMinorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual void layoutMinorAxis(jint, jint, JArray< jint > *, JArray< jint > *); +private: + void calculateColumnRequirements(); + void layoutColumns(jint); +public: // actually package-private + virtual void updateGrid(); +public: + virtual jfloat getMaximumSpan(jint); + virtual void setParent(::javax::swing::text::View *); +public: // actually protected + virtual void setPropertiesFromAttributes(); + virtual ::javax::swing::SizeRequirements * calculateMajorAxisRequirements(jint, ::javax::swing::SizeRequirements *); + virtual void layoutMajorAxis(jint, jint, JArray< jint > *, JArray< jint > *); +public: + virtual void insertUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void removeUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void changedUpdate(::javax::swing::event::DocumentEvent *, ::java::awt::Shape *, ::javax::swing::text::ViewFactory *); + virtual void replace(jint, jint, JArray< ::javax::swing::text::View * > *); + virtual void paint(::java::awt::Graphics *, ::java::awt::Shape *); +public: // actually package-private + static jint access$0(::javax::swing::text::html::TableView *, jint, jint); +private: + ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::text::html::BlockView)))) attributes; +public: // actually package-private + JArray< ::javax::swing::SizeRequirements * > * columnRequirements; + ::javax::swing::SizeRequirements * totalColumnRequirements; + JArray< jint > * columnOffsets; + JArray< jint > * columnSpans; + JArray< ::gnu::javax::swing::text::html::css::Length * > * columnWidths; + jint numColumns; +private: + ::gnu::javax::swing::text::html::css::Length * width; +public: // actually package-private + jboolean gridValid; + jint cellSpacing; +private: + ::java::awt::Rectangle * tmpRect; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_TableView__ diff --git a/libjava/javax/swing/text/html/ViewAttributeSet.h b/libjava/javax/swing/text/html/ViewAttributeSet.h new file mode 100644 index 00000000000..be6ecdcba2a --- /dev/null +++ b/libjava/javax/swing/text/html/ViewAttributeSet.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_ViewAttributeSet__ +#define __javax_swing_text_html_ViewAttributeSet__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class AttributeSet; + class View; + namespace html + { + class StyleSheet; + class ViewAttributeSet; + } + } + } + } +} + +class javax::swing::text::html::ViewAttributeSet : public ::javax::swing::text::html::MultiAttributeSet +{ + +public: // actually package-private + ViewAttributeSet(::javax::swing::text::View *, ::javax::swing::text::html::StyleSheet *); +public: + virtual ::java::lang::Object * getAttribute(::java::lang::Object *); + virtual ::javax::swing::text::AttributeSet * getResolveParent(); +private: + ::javax::swing::text::View * __attribute__((aligned(__alignof__( ::javax::swing::text::html::MultiAttributeSet)))) view; + ::javax::swing::text::html::StyleSheet * styleSheet; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_ViewAttributeSet__ diff --git a/libjava/javax/swing/text/html/parser/AttributeList$1.h b/libjava/javax/swing/text/html/parser/AttributeList$1.h new file mode 100644 index 00000000000..7c1937b48f7 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/AttributeList$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_AttributeList$1__ +#define __javax_swing_text_html_parser_AttributeList$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class AttributeList$1; + } + } + } + } + } +} + +class javax::swing::text::html::parser::AttributeList$1 : public ::gnu::javax::swing::text::html::parser::support::gnuStringIntMapper +{ + +public: // actually package-private + AttributeList$1(); +public: // actually protected + void create(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_AttributeList$1__ diff --git a/libjava/javax/swing/text/html/parser/AttributeList.h b/libjava/javax/swing/text/html/parser/AttributeList.h new file mode 100644 index 00000000000..b7fb6475f2e --- /dev/null +++ b/libjava/javax/swing/text/html/parser/AttributeList.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_AttributeList__ +#define __javax_swing_text_html_parser_AttributeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class gnuStringIntMapper; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class AttributeList; + } + } + } + } + } +} + +class javax::swing::text::html::parser::AttributeList : public ::java::lang::Object +{ + +public: + AttributeList(::java::lang::String *); + AttributeList(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::util::Vector *, ::javax::swing::text::html::parser::AttributeList *); + jint getModifier(); + ::java::lang::String * getName(); + ::javax::swing::text::html::parser::AttributeList * getNext(); + jint getType(); + ::java::lang::String * getValue(); + ::java::util::Enumeration * getValues(); + static jint name2type(::java::lang::String *); + ::java::lang::String * toString(); + static ::java::lang::String * type2name(jint); +private: + static ::gnu::javax::swing::text::html::parser::support::gnuStringIntMapper * mapper; + static const jlong serialVersionUID = -1361214058742015233LL; +public: + ::javax::swing::text::html::parser::AttributeList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next; + ::java::lang::String * name; + ::java::lang::String * value; + ::java::util::Vector * values; + jint modifier; + jint type; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_AttributeList__ diff --git a/libjava/javax/swing/text/html/parser/ContentModel.h b/libjava/javax/swing/text/html/parser/ContentModel.h new file mode 100644 index 00000000000..45f3b20b2c6 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/ContentModel.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_ContentModel__ +#define __javax_swing_text_html_parser_ContentModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class ContentModel; + class Element; + } + } + } + } + } +} + +class javax::swing::text::html::parser::ContentModel : public ::java::lang::Object +{ + +public: + ContentModel(); + ContentModel(::javax::swing::text::html::parser::Element *); + ContentModel(jint, ::javax::swing::text::html::parser::ContentModel *); + ContentModel(jint, ::java::lang::Object *, ::javax::swing::text::html::parser::ContentModel *); + void getElements(::java::util::Vector *); + jboolean empty(); + ::javax::swing::text::html::parser::Element * first(); + jboolean first(::java::lang::Object *); + ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -1130825523866321257LL; +public: + ::javax::swing::text::html::parser::ContentModel * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next; + ::java::lang::Object * content; + jint type; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_ContentModel__ diff --git a/libjava/javax/swing/text/html/parser/DTD.h b/libjava/javax/swing/text/html/parser/DTD.h new file mode 100644 index 00000000000..f9933273e07 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/DTD.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_DTD__ +#define __javax_swing_text_html_parser_DTD__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class AttributeList; + class ContentModel; + class DTD; + class Element; + class Entity; + } + } + } + } + } +} + +class javax::swing::text::html::parser::DTD : public ::java::lang::Object +{ + +public: // actually protected + DTD(::java::lang::String *); +public: + static ::javax::swing::text::html::parser::DTD * getDTD(::java::lang::String *); + virtual ::javax::swing::text::html::parser::Element * getElement(::java::lang::String *); + virtual ::javax::swing::text::html::parser::Element * getElement(jint); + virtual ::javax::swing::text::html::parser::Entity * getEntity(jint); + virtual ::javax::swing::text::html::parser::Entity * getEntity(::java::lang::String *); + virtual ::java::lang::String * getName(); + virtual ::javax::swing::text::html::parser::Entity * defEntity(::java::lang::String *, jint, jint); + virtual void defineAttributes(::java::lang::String *, ::javax::swing::text::html::parser::AttributeList *); + virtual ::javax::swing::text::html::parser::Element * defineElement(::java::lang::String *, jint, jboolean, jboolean, ::javax::swing::text::html::parser::ContentModel *, ::java::util::BitSet *, ::java::util::BitSet *, ::javax::swing::text::html::parser::AttributeList *); + virtual ::javax::swing::text::html::parser::Entity * defineEntity(::java::lang::String *, jint, JArray< jchar > *); + static void putDTDHash(::java::lang::String *, ::javax::swing::text::html::parser::DTD *); + virtual void read(::java::io::DataInputStream *); + virtual ::java::lang::String * toString(); +public: // actually protected + virtual ::javax::swing::text::html::parser::AttributeList * defAttributeList(::java::lang::String *, jint, jint, ::java::lang::String *, ::java::lang::String *, ::javax::swing::text::html::parser::AttributeList *); + virtual ::javax::swing::text::html::parser::ContentModel * defContentModel(jint, ::java::lang::Object *, ::javax::swing::text::html::parser::ContentModel *); + virtual ::javax::swing::text::html::parser::Element * defElement(::java::lang::String *, jint, jboolean, jboolean, ::javax::swing::text::html::parser::ContentModel *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::javax::swing::text::html::parser::AttributeList *); + virtual ::javax::swing::text::html::parser::Entity * defEntity(::java::lang::String *, jint, ::java::lang::String *); +private: + void assignField(::javax::swing::text::html::parser::Element *); + ::java::util::BitSet * bitSet(JArray< ::java::lang::String * > *); + ::javax::swing::text::html::parser::Element * newElement(::java::lang::String *); + ::javax::swing::text::html::parser::Entity * newEntity(::java::lang::String *, jint); + void unexpected(::java::lang::Exception *); +public: + static const jint FILE_VERSION = 1; +public: // actually package-private + static ::java::util::Hashtable * dtdHash; +public: + ::javax::swing::text::html::parser::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) applet; + ::javax::swing::text::html::parser::Element * base; + ::javax::swing::text::html::parser::Element * body; + ::javax::swing::text::html::parser::Element * head; + ::javax::swing::text::html::parser::Element * html; + ::javax::swing::text::html::parser::Element * isindex; + ::javax::swing::text::html::parser::Element * meta; + ::javax::swing::text::html::parser::Element * p; + ::javax::swing::text::html::parser::Element * param; + ::javax::swing::text::html::parser::Element * pcdata; + ::javax::swing::text::html::parser::Element * title; + ::java::util::Hashtable * elementHash; + ::java::util::Hashtable * entityHash; + ::java::lang::String * name; + ::java::util::Vector * elements; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_DTD__ diff --git a/libjava/javax/swing/text/html/parser/DTDConstants.h b/libjava/javax/swing/text/html/parser/DTDConstants.h new file mode 100644 index 00000000000..7fe66c6de36 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/DTDConstants.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_DTDConstants__ +#define __javax_swing_text_html_parser_DTDConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTDConstants; + } + } + } + } + } +} + +class javax::swing::text::html::parser::DTDConstants : public ::java::lang::Object +{ + +public: + static const jint CDATA = 1; + static const jint EMPTY = 17; + static const jint ID = 4; + static const jint IDREF = 5; + static const jint IDREFS = 6; + static const jint NAME = 7; + static const jint NAMES = 8; + static const jint NMTOKEN = 9; + static const jint NMTOKENS = 10; + static const jint NOTATION = 11; + static const jint NUMBER = 12; + static const jint NUMBERS = 13; + static const jint NUTOKEN = 14; + static const jint NUTOKENS = 15; + static const jint PUBLIC = 10; + static const jint SYSTEM = 17; + static const jint PARAMETER = 262144; + static const jint GENERAL = 65536; + static const jint REQUIRED = 2; + static const jint FIXED = 1; + static const jint IMPLIED = 5; + static const jint CURRENT = 3; + static const jint CONREF = 4; + static const jint STARTTAG = 13; + static const jint ENDTAG = 14; + static const jint ANY = 19; + static const jint DEFAULT = 131072; + static const jint ENTITIES = 3; + static const jint ENTITY = 2; + static const jint MD = 16; + static const jint MODEL = 18; + static const jint MS = 15; + static const jint PI = 12; + static const jint RCDATA = 16; + static const jint SDATA = 11; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_text_html_parser_DTDConstants__ diff --git a/libjava/javax/swing/text/html/parser/DocumentParser$gnuParser.h b/libjava/javax/swing/text/html/parser/DocumentParser$gnuParser.h new file mode 100644 index 00000000000..cba941dcfe7 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/DocumentParser$gnuParser.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_DocumentParser$gnuParser__ +#define __javax_swing_text_html_parser_DocumentParser$gnuParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + class DocumentParser; + class DocumentParser$gnuParser; + class TagElement; + } + } + } + } + } +} + +class javax::swing::text::html::parser::DocumentParser$gnuParser : public ::gnu::javax::swing::text::html::parser::support::Parser +{ + + DocumentParser$gnuParser(::javax::swing::text::html::parser::DocumentParser *, ::javax::swing::text::html::parser::DTD *); +public: // actually protected + virtual void handleComment(JArray< jchar > *); + virtual void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleEndTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleError(jint, ::java::lang::String *); + virtual void handleStartTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleText(JArray< jchar > *); +public: // actually package-private + virtual ::javax::swing::text::html::parser::DTD * getDTD(); + DocumentParser$gnuParser(::javax::swing::text::html::parser::DocumentParser *, ::javax::swing::text::html::parser::DTD *, ::javax::swing::text::html::parser::DocumentParser$gnuParser *); + ::javax::swing::text::html::parser::DocumentParser * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::support::Parser)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_DocumentParser$gnuParser__ diff --git a/libjava/javax/swing/text/html/parser/DocumentParser.h b/libjava/javax/swing/text/html/parser/DocumentParser.h new file mode 100644 index 00000000000..d07191d19e5 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/DocumentParser.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_DocumentParser__ +#define __javax_swing_text_html_parser_DocumentParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTMLEditorKit$ParserCallback; + namespace parser + { + class DTD; + class DocumentParser; + class DocumentParser$gnuParser; + class TagElement; + } + } + } + } + } +} + +class javax::swing::text::html::parser::DocumentParser : public ::javax::swing::text::html::parser::Parser +{ + +public: + DocumentParser(::javax::swing::text::html::parser::DTD *); + virtual void parse(::java::io::Reader *, ::javax::swing::text::html::HTMLEditorKit$ParserCallback *, jboolean); +public: // actually protected + virtual void handleComment(JArray< jchar > *); + virtual void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleEndTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleError(jint, ::java::lang::String *); + virtual void handleStartTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleText(JArray< jchar > *); +public: // actually package-private + ::javax::swing::text::html::parser::DocumentParser * __attribute__((aligned(__alignof__( ::javax::swing::text::html::parser::Parser)))) parser; + ::javax::swing::text::html::HTMLEditorKit$ParserCallback * callBack; + ::javax::swing::text::html::parser::DocumentParser$gnuParser * gnu; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_DocumentParser__ diff --git a/libjava/javax/swing/text/html/parser/Element$1.h b/libjava/javax/swing/text/html/parser/Element$1.h new file mode 100644 index 00000000000..2afab6c234c --- /dev/null +++ b/libjava/javax/swing/text/html/parser/Element$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_Element$1__ +#define __javax_swing_text_html_parser_Element$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class Element$1; + } + } + } + } + } +} + +class javax::swing::text::html::parser::Element$1 : public ::gnu::javax::swing::text::html::parser::support::gnuStringIntMapper +{ + +public: // actually package-private + Element$1(); +public: // actually protected + void create(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_Element$1__ diff --git a/libjava/javax/swing/text/html/parser/Element.h b/libjava/javax/swing/text/html/parser/Element.h new file mode 100644 index 00000000000..08bc75c7a19 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/Element.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_Element__ +#define __javax_swing_text_html_parser_Element__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class gnuStringIntMapper; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class AttributeList; + class ContentModel; + class Element; + } + } + } + } + } +} + +class javax::swing::text::html::parser::Element : public ::java::lang::Object +{ + +public: // actually package-private + Element(); +public: + static jint name2type(::java::lang::String *); + ::javax::swing::text::html::parser::AttributeList * getAttribute(::java::lang::String *); + ::javax::swing::text::html::parser::AttributeList * getAttributeByValue(::java::lang::String *); + ::javax::swing::text::html::parser::AttributeList * getAttributes(); + ::javax::swing::text::html::parser::ContentModel * getContent(); + jboolean isEmpty(); + jint getIndex(); + ::java::lang::String * getName(); + jint getType(); + jboolean omitEnd(); + jboolean omitStart(); + ::java::lang::String * toString(); +public: // actually package-private + static ::gnu::javax::swing::text::html::parser::support::gnuStringIntMapper * mapper; +private: + static const jlong serialVersionUID = -6717939384601675586LL; +public: + ::javax::swing::text::html::parser::AttributeList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) atts; + ::java::util::BitSet * exclusions; + ::java::util::BitSet * inclusions; + ::javax::swing::text::html::parser::ContentModel * content; + ::java::lang::Object * data; + ::java::lang::String * name; + jboolean oEnd; + jboolean oStart; + jint index; + jint type; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_Element__ diff --git a/libjava/javax/swing/text/html/parser/Entity$1.h b/libjava/javax/swing/text/html/parser/Entity$1.h new file mode 100644 index 00000000000..5be3083b43f --- /dev/null +++ b/libjava/javax/swing/text/html/parser/Entity$1.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_Entity$1__ +#define __javax_swing_text_html_parser_Entity$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class Entity$1; + } + } + } + } + } +} + +class javax::swing::text::html::parser::Entity$1 : public ::gnu::javax::swing::text::html::parser::support::gnuStringIntMapper +{ + +public: // actually package-private + Entity$1(); +public: // actually protected + void create(); +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_Entity$1__ diff --git a/libjava/javax/swing/text/html/parser/Entity.h b/libjava/javax/swing/text/html/parser/Entity.h new file mode 100644 index 00000000000..2c82e3167c4 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/Entity.h @@ -0,0 +1,78 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_Entity__ +#define __javax_swing_text_html_parser_Entity__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class gnuStringIntMapper; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class Entity; + } + } + } + } + } +} + +class javax::swing::text::html::parser::Entity : public ::java::lang::Object +{ + +public: + Entity(::java::lang::String *, jint, JArray< jchar > *); + static jint name2type(::java::lang::String *); + JArray< jchar > * getData(); + jboolean isGeneral(); + ::java::lang::String * getName(); + jboolean isParameter(); + ::java::lang::String * getString(); + jint getType(); +public: // actually package-private + static ::gnu::javax::swing::text::html::parser::support::gnuStringIntMapper * mapper; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + JArray< jchar > * data; + jint type; +private: + ::java::lang::String * sdata; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_Entity__ diff --git a/libjava/javax/swing/text/html/parser/Parser$1.h b/libjava/javax/swing/text/html/parser/Parser$1.h new file mode 100644 index 00000000000..98f30521735 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/Parser$1.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_Parser$1__ +#define __javax_swing_text_html_parser_Parser$1__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + class Element; + class Parser; + class Parser$1; + class TagElement; + } + } + } + } + } +} + +class javax::swing::text::html::parser::Parser$1 : public ::gnu::javax::swing::text::html::parser::support::Parser +{ + +public: // actually package-private + Parser$1(::javax::swing::text::html::parser::Parser *, ::javax::swing::text::html::parser::DTD *, ::javax::swing::text::html::parser::Parser *); +public: // actually protected + void handleComment(JArray< jchar > *); + void handleEOFInComment(); + void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + void handleStartTag(::javax::swing::text::html::parser::TagElement *); + void handleEndTag(::javax::swing::text::html::parser::TagElement *); + void handleError(jint, ::java::lang::String *); + void handleText(JArray< jchar > *); + void handleTitle(JArray< jchar > *); + void markFirstTime(::javax::swing::text::html::parser::Element *); + void startTag(::javax::swing::text::html::parser::TagElement *); + void endTag(jboolean); + ::javax::swing::text::html::parser::TagElement * makeTag(::javax::swing::text::html::parser::Element *); + ::javax::swing::text::html::parser::TagElement * makeTag(::javax::swing::text::html::parser::Element *, jboolean); +public: // actually package-private + ::javax::swing::text::html::parser::Parser * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::support::Parser)))) this$0; +private: + ::javax::swing::text::html::parser::Parser * val$j; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_Parser$1__ diff --git a/libjava/javax/swing/text/html/parser/Parser.h b/libjava/javax/swing/text/html/parser/Parser.h new file mode 100644 index 00000000000..5f8e0dbab4b --- /dev/null +++ b/libjava/javax/swing/text/html/parser/Parser.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_Parser__ +#define __javax_swing_text_html_parser_Parser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + namespace support + { + class Parser; + } + } + } + } + } + } + } + namespace javax + { + namespace swing + { + namespace text + { + class SimpleAttributeSet; + namespace html + { + namespace parser + { + class DTD; + class Element; + class Parser; + class TagElement; + } + } + } + } + } +} + +class javax::swing::text::html::parser::Parser : public ::java::lang::Object +{ + +public: + Parser(::javax::swing::text::html::parser::DTD *); + virtual void parse(::java::io::Reader *); + virtual ::java::lang::String * parseDTDMarkup(); +public: // actually protected + virtual jboolean parseMarkupDeclarations(::java::lang::StringBuffer *); + virtual ::javax::swing::text::SimpleAttributeSet * getAttributes(); + virtual jint getCurrentLine(); + virtual jint getCurrentPos(); + virtual void endTag(jboolean); + virtual void error(::java::lang::String *); + virtual void error(::java::lang::String *, ::java::lang::String *); + virtual void error(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void error(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void flushAttributes(); + virtual void handleComment(JArray< jchar > *); + virtual void handleEOFInComment(); + virtual void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleEndTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleError(jint, ::java::lang::String *); + virtual void handleStartTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleText(JArray< jchar > *); + virtual void handleTitle(JArray< jchar > *); + virtual ::javax::swing::text::html::parser::TagElement * makeTag(::javax::swing::text::html::parser::Element *); + virtual ::javax::swing::text::html::parser::TagElement * makeTag(::javax::swing::text::html::parser::Element *, jboolean); + virtual void markFirstTime(::javax::swing::text::html::parser::Element *); + virtual void startTag(::javax::swing::text::html::parser::TagElement *); + ::javax::swing::text::html::parser::DTD * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dtd; + jboolean strict; +public: // actually package-private + ::gnu::javax::swing::text::html::parser::support::Parser * gnu; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_Parser__ diff --git a/libjava/javax/swing/text/html/parser/ParserDelegator$gnuParser.h b/libjava/javax/swing/text/html/parser/ParserDelegator$gnuParser.h new file mode 100644 index 00000000000..fec9d39c1f2 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/ParserDelegator$gnuParser.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_ParserDelegator$gnuParser__ +#define __javax_swing_text_html_parser_ParserDelegator$gnuParser__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + namespace parser + { + class DTD; + class ParserDelegator; + class ParserDelegator$gnuParser; + class TagElement; + } + } + } + } + } +} + +class javax::swing::text::html::parser::ParserDelegator$gnuParser : public ::gnu::javax::swing::text::html::parser::support::Parser +{ + + ParserDelegator$gnuParser(::javax::swing::text::html::parser::ParserDelegator *, ::javax::swing::text::html::parser::DTD *); +public: // actually protected + virtual void handleComment(JArray< jchar > *); + virtual void handleEmptyTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleEndTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleError(jint, ::java::lang::String *); + virtual void handleStartTag(::javax::swing::text::html::parser::TagElement *); + virtual void handleText(JArray< jchar > *); +public: // actually package-private + virtual ::javax::swing::text::html::parser::DTD * getDTD(); + ParserDelegator$gnuParser(::javax::swing::text::html::parser::ParserDelegator *, ::javax::swing::text::html::parser::DTD *, ::javax::swing::text::html::parser::ParserDelegator$gnuParser *); +private: + static const jlong serialVersionUID = 1LL; +public: // actually package-private + ::javax::swing::text::html::parser::ParserDelegator * __attribute__((aligned(__alignof__( ::gnu::javax::swing::text::html::parser::support::Parser)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_ParserDelegator$gnuParser__ diff --git a/libjava/javax/swing/text/html/parser/ParserDelegator.h b/libjava/javax/swing/text/html/parser/ParserDelegator.h new file mode 100644 index 00000000000..b2c35297b15 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/ParserDelegator.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_ParserDelegator__ +#define __javax_swing_text_html_parser_ParserDelegator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTMLEditorKit$ParserCallback; + namespace parser + { + class DTD; + class ParserDelegator; + class ParserDelegator$gnuParser; + } + } + } + } + } +} + +class javax::swing::text::html::parser::ParserDelegator : public ::javax::swing::text::html::HTMLEditorKit$Parser +{ + +public: + ParserDelegator(); + virtual void parse(::java::io::Reader *, ::javax::swing::text::html::HTMLEditorKit$ParserCallback *, jboolean); +public: // actually protected + static void setDefaultDTD(); + static ::javax::swing::text::html::parser::DTD * createDTD(::javax::swing::text::html::parser::DTD *, ::java::lang::String *); +private: + static const jlong serialVersionUID = -1276686502624777206LL; + static ::javax::swing::text::html::parser::DTD * dtd; +public: // actually package-private + ::javax::swing::text::html::HTMLEditorKit$ParserCallback * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLEditorKit$Parser)))) callBack; + ::javax::swing::text::html::parser::ParserDelegator$gnuParser * gnu; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_ParserDelegator__ diff --git a/libjava/javax/swing/text/html/parser/TagElement.h b/libjava/javax/swing/text/html/parser/TagElement.h new file mode 100644 index 00000000000..b29cad472b5 --- /dev/null +++ b/libjava/javax/swing/text/html/parser/TagElement.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_html_parser_TagElement__ +#define __javax_swing_text_html_parser_TagElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace html + { + class HTML$Tag; + namespace parser + { + class Element; + class TagElement; + } + } + } + } + } +} + +class javax::swing::text::html::parser::TagElement : public ::java::lang::Object +{ + +public: + TagElement(::javax::swing::text::html::parser::Element *); + TagElement(::javax::swing::text::html::parser::Element *, jboolean); + virtual ::javax::swing::text::html::parser::Element * getElement(); + virtual ::javax::swing::text::html::HTML$Tag * getHTMLTag(); + virtual jboolean isPreformatted(); + virtual jboolean breaksFlow(); + virtual jboolean fictional(); + virtual ::java::lang::String * toString(); +private: + ::javax::swing::text::html::parser::Element * __attribute__((aligned(__alignof__( ::java::lang::Object)))) element; + ::javax::swing::text::html::HTML$Tag * tag; + jboolean fictional__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_html_parser_TagElement__ diff --git a/libjava/javax/swing/text/rtf/ControlWordToken.h b/libjava/javax/swing/text/rtf/ControlWordToken.h new file mode 100644 index 00000000000..aa6a352a4a7 --- /dev/null +++ b/libjava/javax/swing/text/rtf/ControlWordToken.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_rtf_ControlWordToken__ +#define __javax_swing_text_rtf_ControlWordToken__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace rtf + { + class ControlWordToken; + } + } + } + } +} + +class javax::swing::text::rtf::ControlWordToken : public ::javax::swing::text::rtf::Token +{ + +public: + ControlWordToken(::java::lang::String *); + ControlWordToken(::java::lang::String *, jint); + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::text::rtf::Token)))) name; + jint param; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_rtf_ControlWordToken__ diff --git a/libjava/javax/swing/text/rtf/RTFEditorKit.h b/libjava/javax/swing/text/rtf/RTFEditorKit.h new file mode 100644 index 00000000000..789bec142ad --- /dev/null +++ b/libjava/javax/swing/text/rtf/RTFEditorKit.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_rtf_RTFEditorKit__ +#define __javax_swing_text_rtf_RTFEditorKit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Document; + namespace rtf + { + class RTFEditorKit; + } + } + } + } +} + +class javax::swing::text::rtf::RTFEditorKit : public ::javax::swing::text::StyledEditorKit +{ + +public: + RTFEditorKit(); + virtual ::java::lang::String * getContentType(); + virtual void read(::java::io::InputStream *, ::javax::swing::text::Document *, jint); + virtual void read(::java::io::Reader *, ::javax::swing::text::Document *, jint); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_rtf_RTFEditorKit__ diff --git a/libjava/javax/swing/text/rtf/RTFParseException.h b/libjava/javax/swing/text/rtf/RTFParseException.h new file mode 100644 index 00000000000..4c5e2b81ad2 --- /dev/null +++ b/libjava/javax/swing/text/rtf/RTFParseException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_rtf_RTFParseException__ +#define __javax_swing_text_rtf_RTFParseException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace rtf + { + class RTFParseException; + } + } + } + } +} + +class javax::swing::text::rtf::RTFParseException : public ::java::lang::RuntimeException +{ + +public: + RTFParseException(); + RTFParseException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_rtf_RTFParseException__ diff --git a/libjava/javax/swing/text/rtf/RTFParser.h b/libjava/javax/swing/text/rtf/RTFParser.h new file mode 100644 index 00000000000..5de9f592080 --- /dev/null +++ b/libjava/javax/swing/text/rtf/RTFParser.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_rtf_RTFParser__ +#define __javax_swing_text_rtf_RTFParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + class Document; + namespace rtf + { + class RTFParser; + class RTFScanner; + } + } + } + } +} + +class javax::swing::text::rtf::RTFParser : public ::java::lang::Object +{ + + RTFParser(::javax::swing::text::Document *, jint); +public: + RTFParser(::java::io::InputStream *, ::javax::swing::text::Document *, jint); + RTFParser(::java::io::Reader *, ::javax::swing::text::Document *, jint); + virtual ::javax::swing::text::Document * getDocument(); + virtual void parse(); +private: + void parseFile(); + void parseHeader(); + void parseDocument(); + ::javax::swing::text::rtf::RTFScanner * __attribute__((aligned(__alignof__( ::java::lang::Object)))) scanner; + ::javax::swing::text::Document * doc; + jint pos; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_rtf_RTFParser__ diff --git a/libjava/javax/swing/text/rtf/RTFScanner.h b/libjava/javax/swing/text/rtf/RTFScanner.h new file mode 100644 index 00000000000..ebfd9108aa6 --- /dev/null +++ b/libjava/javax/swing/text/rtf/RTFScanner.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_rtf_RTFScanner__ +#define __javax_swing_text_rtf_RTFScanner__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace rtf + { + class RTFScanner; + class Token; + } + } + } + } +} + +class javax::swing::text::rtf::RTFScanner : public ::java::lang::Object +{ + + RTFScanner(); +public: + RTFScanner(::java::io::InputStream *); + RTFScanner(::java::io::Reader *); +private: + ::javax::swing::text::rtf::Token * readTokenImpl(); +public: // actually package-private + virtual ::javax::swing::text::rtf::Token * peekToken(); + virtual ::javax::swing::text::rtf::Token * readToken(); +private: + ::javax::swing::text::rtf::Token * readControlWord(); + ::javax::swing::text::rtf::Token * readText(); + ::java::io::Reader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) in; + ::java::lang::StringBuffer * buffer; + ::javax::swing::text::rtf::Token * lastToken; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_rtf_RTFScanner__ diff --git a/libjava/javax/swing/text/rtf/TextToken.h b/libjava/javax/swing/text/rtf/TextToken.h new file mode 100644 index 00000000000..189d22994be --- /dev/null +++ b/libjava/javax/swing/text/rtf/TextToken.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_rtf_TextToken__ +#define __javax_swing_text_rtf_TextToken__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace rtf + { + class TextToken; + } + } + } + } +} + +class javax::swing::text::rtf::TextToken : public ::javax::swing::text::rtf::Token +{ + +public: + TextToken(::java::lang::String *); + ::java::lang::String * __attribute__((aligned(__alignof__( ::javax::swing::text::rtf::Token)))) text; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_rtf_TextToken__ diff --git a/libjava/javax/swing/text/rtf/Token.h b/libjava/javax/swing/text/rtf/Token.h new file mode 100644 index 00000000000..bd32666bff0 --- /dev/null +++ b/libjava/javax/swing/text/rtf/Token.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_text_rtf_Token__ +#define __javax_swing_text_rtf_Token__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace text + { + namespace rtf + { + class Token; + } + } + } + } +} + +class javax::swing::text::rtf::Token : public ::java::lang::Object +{ + +public: + Token(jint); + static const jint EOF = -1; + static const jint LCURLY = 1; + static const jint RCURLY = 2; + static const jint CONTROL_WORD = 3; + static const jint TEXT = 4; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_text_rtf_Token__ diff --git a/libjava/javax/swing/tree/AbstractLayoutCache$NodeDimensions.h b/libjava/javax/swing/tree/AbstractLayoutCache$NodeDimensions.h new file mode 100644 index 00000000000..88eca9e7bf0 --- /dev/null +++ b/libjava/javax/swing/tree/AbstractLayoutCache$NodeDimensions.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_AbstractLayoutCache$NodeDimensions__ +#define __javax_swing_tree_AbstractLayoutCache$NodeDimensions__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace tree + { + class AbstractLayoutCache$NodeDimensions; + } + } + } +} + +class javax::swing::tree::AbstractLayoutCache$NodeDimensions : public ::java::lang::Object +{ + +public: + AbstractLayoutCache$NodeDimensions(); + virtual ::java::awt::Rectangle * getNodeDimensions(::java::lang::Object *, jint, jint, jboolean, ::java::awt::Rectangle *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_AbstractLayoutCache$NodeDimensions__ diff --git a/libjava/javax/swing/tree/AbstractLayoutCache.h b/libjava/javax/swing/tree/AbstractLayoutCache.h new file mode 100644 index 00000000000..d51c8e852d2 --- /dev/null +++ b/libjava/javax/swing/tree/AbstractLayoutCache.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_AbstractLayoutCache__ +#define __javax_swing_tree_AbstractLayoutCache__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class TreeModelEvent; + } + namespace tree + { + class AbstractLayoutCache; + class AbstractLayoutCache$NodeDimensions; + class TreeModel; + class TreePath; + class TreeSelectionModel; + } + } + } +} + +class javax::swing::tree::AbstractLayoutCache : public ::java::lang::Object +{ + +public: + AbstractLayoutCache(); + virtual void setNodeDimensions(::javax::swing::tree::AbstractLayoutCache$NodeDimensions *); + virtual ::javax::swing::tree::AbstractLayoutCache$NodeDimensions * getNodeDimensions(); +public: // actually protected + virtual ::java::awt::Rectangle * getNodeDimensions(::java::lang::Object *, jint, jint, jboolean, ::java::awt::Rectangle *); +public: + virtual void setModel(::javax::swing::tree::TreeModel *); + virtual ::javax::swing::tree::TreeModel * getModel(); + virtual void setRootVisible(jboolean); + virtual jboolean isRootVisible(); + virtual void setRowHeight(jint); + virtual jint getRowHeight(); + virtual void setSelectionModel(::javax::swing::tree::TreeSelectionModel *); + virtual ::javax::swing::tree::TreeSelectionModel * getSelectionModel(); + virtual jint getPreferredHeight(); + virtual jint getPreferredWidth(::java::awt::Rectangle *); + virtual jboolean isExpanded(::javax::swing::tree::TreePath *) = 0; + virtual ::java::awt::Rectangle * getBounds(::javax::swing::tree::TreePath *, ::java::awt::Rectangle *) = 0; + virtual ::javax::swing::tree::TreePath * getPathForRow(jint) = 0; + virtual jint getRowForPath(::javax::swing::tree::TreePath *) = 0; + virtual ::javax::swing::tree::TreePath * getPathClosestTo(jint, jint) = 0; + virtual ::java::util::Enumeration * getVisiblePathsFrom(::javax::swing::tree::TreePath *) = 0; + virtual jint getVisibleChildCount(::javax::swing::tree::TreePath *) = 0; + virtual void setExpandedState(::javax::swing::tree::TreePath *, jboolean) = 0; + virtual jboolean getExpandedState(::javax::swing::tree::TreePath *) = 0; + virtual jint getRowCount() = 0; + virtual void invalidateSizes() = 0; + virtual void invalidatePathBounds(::javax::swing::tree::TreePath *) = 0; + virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *) = 0; + virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *) = 0; + virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *) = 0; + virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *) = 0; + virtual JArray< jint > * getRowsForPaths(JArray< ::javax::swing::tree::TreePath * > *); +public: // actually protected + virtual jboolean isFixedRowHeight(); + ::javax::swing::tree::AbstractLayoutCache$NodeDimensions * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nodeDimensions; + ::javax::swing::tree::TreeModel * treeModel; + ::javax::swing::tree::TreeSelectionModel * treeSelectionModel; + jboolean rootVisible; + jint rowHeight; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_AbstractLayoutCache__ diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h b/libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h new file mode 100644 index 00000000000..50c7118f8dd --- /dev/null +++ b/libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultMutableTreeNode$BreadthFirstEnumeration__ +#define __javax_swing_tree_DefaultMutableTreeNode$BreadthFirstEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class DefaultMutableTreeNode$BreadthFirstEnumeration; + class TreeNode; + } + } + } +} + +class javax::swing::tree::DefaultMutableTreeNode$BreadthFirstEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + DefaultMutableTreeNode$BreadthFirstEnumeration(::javax::swing::tree::TreeNode *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) queue; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultMutableTreeNode$BreadthFirstEnumeration__ diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h b/libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h new file mode 100644 index 00000000000..629c2943bbc --- /dev/null +++ b/libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultMutableTreeNode$PostorderEnumeration__ +#define __javax_swing_tree_DefaultMutableTreeNode$PostorderEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class DefaultMutableTreeNode$PostorderEnumeration; + class TreeNode; + } + } + } +} + +class javax::swing::tree::DefaultMutableTreeNode$PostorderEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + DefaultMutableTreeNode$PostorderEnumeration(::javax::swing::tree::TreeNode *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +private: + ::java::lang::Object * traverse(::java::util::Enumeration *); +public: // actually package-private + ::java::util::Stack * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nodes; + ::java::util::Stack * childrenEnums; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultMutableTreeNode$PostorderEnumeration__ diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h b/libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h new file mode 100644 index 00000000000..53e87c3e295 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultMutableTreeNode$PreorderEnumeration__ +#define __javax_swing_tree_DefaultMutableTreeNode$PreorderEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class DefaultMutableTreeNode$PreorderEnumeration; + class TreeNode; + } + } + } +} + +class javax::swing::tree::DefaultMutableTreeNode$PreorderEnumeration : public ::java::lang::Object +{ + +public: // actually package-private + DefaultMutableTreeNode$PreorderEnumeration(::javax::swing::tree::TreeNode *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +private: + ::javax::swing::tree::TreeNode * traverse(::java::util::Enumeration *); +public: // actually package-private + ::javax::swing::tree::TreeNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next; + ::java::util::Stack * childrenEnums; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultMutableTreeNode$PreorderEnumeration__ diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode.h b/libjava/javax/swing/tree/DefaultMutableTreeNode.h new file mode 100644 index 00000000000..b5a46532375 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultMutableTreeNode.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultMutableTreeNode__ +#define __javax_swing_tree_DefaultMutableTreeNode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class DefaultMutableTreeNode; + class MutableTreeNode; + class TreeNode; + } + } + } +} + +class javax::swing::tree::DefaultMutableTreeNode : public ::java::lang::Object +{ + +public: + DefaultMutableTreeNode(); + DefaultMutableTreeNode(::java::lang::Object *); + DefaultMutableTreeNode(::java::lang::Object *, jboolean); + virtual ::java::lang::Object * clone(); + virtual ::java::lang::String * toString(); + virtual void add(::javax::swing::tree::MutableTreeNode *); + virtual ::javax::swing::tree::TreeNode * getParent(); + virtual void remove(jint); + virtual void remove(::javax::swing::tree::MutableTreeNode *); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); +public: + virtual void insert(::javax::swing::tree::MutableTreeNode *, jint); + virtual JArray< ::javax::swing::tree::TreeNode * > * getPath(); + virtual ::java::util::Enumeration * children(); + virtual void setParent(::javax::swing::tree::MutableTreeNode *); + virtual ::javax::swing::tree::TreeNode * getChildAt(jint); + virtual jint getChildCount(); + virtual jint getIndex(::javax::swing::tree::TreeNode *); + virtual void setAllowsChildren(jboolean); + virtual jboolean getAllowsChildren(); + virtual void setUserObject(::java::lang::Object *); + virtual ::java::lang::Object * getUserObject(); + virtual void removeFromParent(); + virtual void removeAllChildren(); + virtual jboolean isNodeAncestor(::javax::swing::tree::TreeNode *); + virtual jboolean isNodeDescendant(::javax::swing::tree::DefaultMutableTreeNode *); + virtual ::javax::swing::tree::TreeNode * getSharedAncestor(::javax::swing::tree::DefaultMutableTreeNode *); + virtual jboolean isNodeRelated(::javax::swing::tree::DefaultMutableTreeNode *); + virtual jint getDepth(); + virtual jint getLevel(); +public: // actually protected + virtual JArray< ::javax::swing::tree::TreeNode * > * getPathToRoot(::javax::swing::tree::TreeNode *, jint); +public: + virtual JArray< ::java::lang::Object * > * getUserObjectPath(); + virtual ::javax::swing::tree::TreeNode * getRoot(); + virtual jboolean isRoot(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getNextNode(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getPreviousNode(); + virtual ::java::util::Enumeration * preorderEnumeration(); + virtual ::java::util::Enumeration * postorderEnumeration(); + virtual ::java::util::Enumeration * breadthFirstEnumeration(); + virtual ::java::util::Enumeration * depthFirstEnumeration(); + virtual ::java::util::Enumeration * pathFromAncestorEnumeration(::javax::swing::tree::TreeNode *); + virtual jboolean isNodeChild(::javax::swing::tree::TreeNode *); + virtual ::javax::swing::tree::TreeNode * getFirstChild(); + virtual ::javax::swing::tree::TreeNode * getLastChild(); + virtual ::javax::swing::tree::TreeNode * getChildAfter(::javax::swing::tree::TreeNode *); + virtual ::javax::swing::tree::TreeNode * getChildBefore(::javax::swing::tree::TreeNode *); + virtual jboolean isNodeSibling(::javax::swing::tree::TreeNode *); + virtual jint getSiblingCount(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getNextSibling(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getPreviousSibling(); + virtual jboolean isLeaf(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getFirstLeaf(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getLastLeaf(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getNextLeaf(); + virtual ::javax::swing::tree::DefaultMutableTreeNode * getPreviousLeaf(); + virtual jint getLeafCount(); +private: + static const jlong serialVersionUID = -4298474751201349152LL; +public: + static ::java::util::Enumeration * EMPTY_ENUMERATION; +public: // actually protected + ::javax::swing::tree::MutableTreeNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent; + ::java::util::Vector * children__; + ::java::lang::Object * userObject; + jboolean allowsChildren; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultMutableTreeNode__ diff --git a/libjava/javax/swing/tree/DefaultTreeCellEditor$DefaultTextField.h b/libjava/javax/swing/tree/DefaultTreeCellEditor$DefaultTextField.h new file mode 100644 index 00000000000..a09a8dcbe42 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeCellEditor$DefaultTextField.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeCellEditor$DefaultTextField__ +#define __javax_swing_tree_DefaultTreeCellEditor$DefaultTextField__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Font; + } + } + namespace javax + { + namespace swing + { + namespace border + { + class Border; + } + namespace tree + { + class DefaultTreeCellEditor; + class DefaultTreeCellEditor$DefaultTextField; + } + } + } +} + +class javax::swing::tree::DefaultTreeCellEditor$DefaultTextField : public ::javax::swing::JTextField +{ + +public: + DefaultTreeCellEditor$DefaultTextField(::javax::swing::tree::DefaultTreeCellEditor *, ::javax::swing::border::Border *); + virtual ::java::awt::Font * getFont(); + virtual ::javax::swing::border::Border * getBorder(); + virtual ::java::awt::Dimension * getPreferredSize(); +public: // actually package-private + static const jlong serialVersionUID = -6629304544265300143LL; +public: // actually protected + ::javax::swing::border::Border * __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) border; +public: // actually package-private + ::javax::swing::tree::DefaultTreeCellEditor * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeCellEditor$DefaultTextField__ diff --git a/libjava/javax/swing/tree/DefaultTreeCellEditor$EditorContainer.h b/libjava/javax/swing/tree/DefaultTreeCellEditor$EditorContainer.h new file mode 100644 index 00000000000..554543398b5 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeCellEditor$EditorContainer.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeCellEditor$EditorContainer__ +#define __javax_swing_tree_DefaultTreeCellEditor$EditorContainer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Dimension; + class Graphics; + } + } + namespace javax + { + namespace swing + { + namespace tree + { + class DefaultTreeCellEditor; + class DefaultTreeCellEditor$EditorContainer; + } + } + } +} + +class javax::swing::tree::DefaultTreeCellEditor$EditorContainer : public ::java::awt::Container +{ + +public: + DefaultTreeCellEditor$EditorContainer(::javax::swing::tree::DefaultTreeCellEditor *); + virtual void EditorContainer(); + virtual void paint(::java::awt::Graphics *); + virtual void doLayout(); + virtual ::java::awt::Dimension * getPreferredSize(); +public: // actually package-private + static const jlong serialVersionUID = 6470339600449699810LL; + ::javax::swing::tree::DefaultTreeCellEditor * __attribute__((aligned(__alignof__( ::java::awt::Container)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeCellEditor$EditorContainer__ diff --git a/libjava/javax/swing/tree/DefaultTreeCellEditor$RealEditorListener.h b/libjava/javax/swing/tree/DefaultTreeCellEditor$RealEditorListener.h new file mode 100644 index 00000000000..cc889e4cd16 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeCellEditor$RealEditorListener.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeCellEditor$RealEditorListener__ +#define __javax_swing_tree_DefaultTreeCellEditor$RealEditorListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class ChangeEvent; + } + namespace tree + { + class DefaultTreeCellEditor; + class DefaultTreeCellEditor$RealEditorListener; + } + } + } +} + +class javax::swing::tree::DefaultTreeCellEditor$RealEditorListener : public ::java::lang::Object +{ + +public: // actually package-private + DefaultTreeCellEditor$RealEditorListener(::javax::swing::tree::DefaultTreeCellEditor *); +public: + virtual void editingCanceled(::javax::swing::event::ChangeEvent *); + virtual void editingStopped(::javax::swing::event::ChangeEvent *); +public: // actually package-private + ::javax::swing::tree::DefaultTreeCellEditor * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeCellEditor$RealEditorListener__ diff --git a/libjava/javax/swing/tree/DefaultTreeCellEditor.h b/libjava/javax/swing/tree/DefaultTreeCellEditor.h new file mode 100644 index 00000000000..759439c189f --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeCellEditor.h @@ -0,0 +1,113 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeCellEditor__ +#define __javax_swing_tree_DefaultTreeCellEditor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Container; + class Font; + namespace event + { + class ActionEvent; + } + } + } + namespace javax + { + namespace swing + { + class Icon; + class JTree; + class Timer; + namespace event + { + class CellEditorListener; + class EventListenerList; + class TreeSelectionEvent; + } + namespace tree + { + class DefaultTreeCellEditor; + class DefaultTreeCellRenderer; + class TreeCellEditor; + class TreePath; + } + } + } +} + +class javax::swing::tree::DefaultTreeCellEditor : public ::java::lang::Object +{ + +public: + DefaultTreeCellEditor(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *); + DefaultTreeCellEditor(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *, ::javax::swing::tree::TreeCellEditor *); +private: + void configureEditingComponent(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *, ::javax::swing::tree::TreeCellEditor *); + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); +public: + virtual void setBorderSelectionColor(::java::awt::Color *); + virtual ::java::awt::Color * getBorderSelectionColor(); + virtual void setFont(::java::awt::Font *); + virtual ::java::awt::Font * getFont(); + virtual ::java::awt::Component * getTreeCellEditorComponent(::javax::swing::JTree *, ::java::lang::Object *, jboolean, jboolean, jboolean, jint); + virtual ::java::lang::Object * getCellEditorValue(); + virtual jboolean isCellEditable(::java::util::EventObject *); + virtual jboolean shouldSelectCell(::java::util::EventObject *); + virtual jboolean stopCellEditing(); + virtual void cancelCellEditing(); +private: + void finish(); +public: + virtual void addCellEditorListener(::javax::swing::event::CellEditorListener *); + virtual void removeCellEditorListener(::javax::swing::event::CellEditorListener *); + virtual JArray< ::javax::swing::event::CellEditorListener * > * getCellEditorListeners(); + virtual void valueChanged(::javax::swing::event::TreeSelectionEvent *); + virtual void actionPerformed(::java::awt::event::ActionEvent *); +public: // actually protected + virtual void setTree(::javax::swing::JTree *); + virtual jboolean shouldStartEditingTimer(::java::util::EventObject *); + virtual void startEditingTimer(); + virtual jboolean canEditImmediately(::java::util::EventObject *); + virtual jboolean inHitRegion(jint, jint); + virtual void determineOffset(::javax::swing::JTree *, ::java::lang::Object *, jboolean, jboolean, jboolean, jint); + virtual void prepareForEditing(); + virtual ::java::awt::Container * createContainer(); + virtual ::javax::swing::tree::TreeCellEditor * createTreeCellEditor(); +private: + ::javax::swing::event::EventListenerList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) listenerList; +public: // actually protected + ::javax::swing::tree::TreeCellEditor * realEditor; + ::javax::swing::tree::DefaultTreeCellRenderer * renderer; + ::java::awt::Container * editingContainer; + ::java::awt::Component * editingComponent; + jboolean canEdit; + jint offset; + ::javax::swing::JTree * tree; + ::javax::swing::tree::TreePath * lastPath; + ::javax::swing::Timer * timer; + jint lastRow; + ::java::awt::Color * borderSelectionColor; + ::javax::swing::Icon * editingIcon; + ::java::awt::Font * font; +private: + ::javax::swing::tree::TreePath * tPath; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeCellEditor__ diff --git a/libjava/javax/swing/tree/DefaultTreeCellRenderer.h b/libjava/javax/swing/tree/DefaultTreeCellRenderer.h new file mode 100644 index 00000000000..5677bad3670 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeCellRenderer.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeCellRenderer__ +#define __javax_swing_tree_DefaultTreeCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Color; + class Component; + class Dimension; + class Font; + class Graphics; + class Rectangle; + } + } + namespace javax + { + namespace swing + { + class Icon; + class JTree; + namespace tree + { + class DefaultTreeCellRenderer; + } + } + } +} + +class javax::swing::tree::DefaultTreeCellRenderer : public ::javax::swing::JLabel +{ + +public: + DefaultTreeCellRenderer(); + virtual ::javax::swing::Icon * getDefaultOpenIcon(); + virtual ::javax::swing::Icon * getDefaultClosedIcon(); + virtual ::javax::swing::Icon * getDefaultLeafIcon(); + virtual void setOpenIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getOpenIcon(); + virtual void setClosedIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getClosedIcon(); + virtual void setLeafIcon(::javax::swing::Icon *); + virtual ::javax::swing::Icon * getLeafIcon(); + virtual void setTextSelectionColor(::java::awt::Color *); + virtual ::java::awt::Color * getTextSelectionColor(); + virtual void setTextNonSelectionColor(::java::awt::Color *); + virtual ::java::awt::Color * getTextNonSelectionColor(); + virtual void setBackgroundSelectionColor(::java::awt::Color *); + virtual ::java::awt::Color * getBackgroundSelectionColor(); + virtual void setBackgroundNonSelectionColor(::java::awt::Color *); + virtual ::java::awt::Color * getBackgroundNonSelectionColor(); + virtual void setBorderSelectionColor(::java::awt::Color *); + virtual ::java::awt::Color * getBorderSelectionColor(); + virtual void setFont(::java::awt::Font *); + virtual void setBackground(::java::awt::Color *); + virtual ::java::awt::Component * getTreeCellRendererComponent(::javax::swing::JTree *, ::java::lang::Object *, jboolean, jboolean, jboolean, jint, jboolean); + virtual ::java::awt::Font * getFont(); + virtual void paint(::java::awt::Graphics *); +private: + void paintFocus(::java::awt::Graphics *, jint, jint, jint, jint); + jint getXOffset(); +public: + virtual ::java::awt::Dimension * getPreferredSize(); + virtual void validate(); + virtual void revalidate(); + virtual void repaint(jlong, jint, jint, jint, jint); + virtual void repaint(::java::awt::Rectangle *); +public: // actually protected + virtual void firePropertyChange(::java::lang::String *, ::java::lang::Object *, ::java::lang::Object *); +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 *, jint, jint); + 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 firePropertyChange(::java::lang::String *, jboolean, jboolean); +public: // actually protected + jboolean __attribute__((aligned(__alignof__( ::javax::swing::JLabel)))) selected; + jboolean hasFocus; +private: + jboolean drawsFocusBorderAroundIcon; +public: // actually protected + ::javax::swing::Icon * closedIcon; + ::javax::swing::Icon * leafIcon; + ::javax::swing::Icon * openIcon; + ::java::awt::Color * textSelectionColor; + ::java::awt::Color * textNonSelectionColor; + ::java::awt::Color * backgroundSelectionColor; + ::java::awt::Color * backgroundNonSelectionColor; + ::java::awt::Color * borderSelectionColor; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeCellRenderer__ diff --git a/libjava/javax/swing/tree/DefaultTreeModel.h b/libjava/javax/swing/tree/DefaultTreeModel.h new file mode 100644 index 00000000000..18deb18fa67 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeModel.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeModel__ +#define __javax_swing_tree_DefaultTreeModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class EventListenerList; + class TreeModelListener; + } + namespace tree + { + class DefaultTreeModel; + class MutableTreeNode; + class TreeNode; + class TreePath; + } + } + } +} + +class javax::swing::tree::DefaultTreeModel : public ::java::lang::Object +{ + +public: + DefaultTreeModel(::javax::swing::tree::TreeNode *); + DefaultTreeModel(::javax::swing::tree::TreeNode *, jboolean); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); +public: + virtual jboolean asksAllowsChildren(); + virtual void setAsksAllowsChildren(jboolean); + virtual void setRoot(::javax::swing::tree::TreeNode *); + virtual ::java::lang::Object * getRoot(); + virtual jint getIndexOfChild(::java::lang::Object *, ::java::lang::Object *); + virtual ::java::lang::Object * getChild(::java::lang::Object *, jint); + virtual jint getChildCount(::java::lang::Object *); + virtual jboolean isLeaf(::java::lang::Object *); + virtual void reload(); + virtual void reload(::javax::swing::tree::TreeNode *); + virtual void valueForPathChanged(::javax::swing::tree::TreePath *, ::java::lang::Object *); + virtual void insertNodeInto(::javax::swing::tree::MutableTreeNode *, ::javax::swing::tree::MutableTreeNode *, jint); + virtual void removeNodeFromParent(::javax::swing::tree::MutableTreeNode *); + virtual void nodeChanged(::javax::swing::tree::TreeNode *); + virtual void nodesWereInserted(::javax::swing::tree::TreeNode *, JArray< jint > *); + virtual void nodesWereRemoved(::javax::swing::tree::TreeNode *, JArray< jint > *, JArray< ::java::lang::Object * > *); + virtual void nodesChanged(::javax::swing::tree::TreeNode *, JArray< jint > *); + virtual void nodeStructureChanged(::javax::swing::tree::TreeNode *); + virtual JArray< ::javax::swing::tree::TreeNode * > * getPathToRoot(::javax::swing::tree::TreeNode *); +public: // actually protected + virtual JArray< ::javax::swing::tree::TreeNode * > * getPathToRoot(::javax::swing::tree::TreeNode *, jint); +public: + virtual void addTreeModelListener(::javax::swing::event::TreeModelListener *); + virtual void removeTreeModelListener(::javax::swing::event::TreeModelListener *); + virtual JArray< ::javax::swing::event::TreeModelListener * > * getTreeModelListeners(); +public: // actually protected + virtual void fireTreeNodesChanged(::java::lang::Object *, JArray< ::java::lang::Object * > *, JArray< jint > *, JArray< ::java::lang::Object * > *); + virtual void fireTreeNodesInserted(::java::lang::Object *, JArray< ::java::lang::Object * > *, JArray< jint > *, JArray< ::java::lang::Object * > *); + virtual void fireTreeNodesRemoved(::java::lang::Object *, JArray< ::java::lang::Object * > *, JArray< jint > *, JArray< ::java::lang::Object * > *); + virtual void fireTreeStructureChanged(::java::lang::Object *, JArray< ::java::lang::Object * > *, JArray< jint > *, JArray< ::java::lang::Object * > *); +public: + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); +public: // actually package-private + static const jlong serialVersionUID = -2621068368932566998LL; +public: // actually protected + ::javax::swing::tree::TreeNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) root; + ::javax::swing::event::EventListenerList * listenerList; + jboolean asksAllowsChildren__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeModel__ diff --git a/libjava/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.h b/libjava/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.h new file mode 100644 index 00000000000..c9544bb4645 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeSelectionModel$PathPlaceHolder__ +#define __javax_swing_tree_DefaultTreeSelectionModel$PathPlaceHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class DefaultTreeSelectionModel$PathPlaceHolder; + class TreePath; + } + } + } +} + +class javax::swing::tree::DefaultTreeSelectionModel$PathPlaceHolder : public ::java::lang::Object +{ + +public: // actually package-private + DefaultTreeSelectionModel$PathPlaceHolder(::javax::swing::tree::TreePath *, jboolean); + ::javax::swing::tree::TreePath * __attribute__((aligned(__alignof__( ::java::lang::Object)))) path; + jboolean isNew; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeSelectionModel$PathPlaceHolder__ diff --git a/libjava/javax/swing/tree/DefaultTreeSelectionModel.h b/libjava/javax/swing/tree/DefaultTreeSelectionModel.h new file mode 100644 index 00000000000..07a358d1531 --- /dev/null +++ b/libjava/javax/swing/tree/DefaultTreeSelectionModel.h @@ -0,0 +1,119 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_DefaultTreeSelectionModel__ +#define __javax_swing_tree_DefaultTreeSelectionModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + class DefaultListSelectionModel; + namespace event + { + class EventListenerList; + class SwingPropertyChangeSupport; + class TreeSelectionEvent; + class TreeSelectionListener; + } + namespace tree + { + class DefaultTreeSelectionModel; + class RowMapper; + class TreePath; + } + } + } +} + +class javax::swing::tree::DefaultTreeSelectionModel : public ::java::lang::Object +{ + +public: + DefaultTreeSelectionModel(); + virtual ::java::lang::Object * clone(); + virtual ::java::lang::String * toString(); +private: + void writeObject(::java::io::ObjectOutputStream *); + void readObject(::java::io::ObjectInputStream *); +public: + virtual void setRowMapper(::javax::swing::tree::RowMapper *); + virtual ::javax::swing::tree::RowMapper * getRowMapper(); + virtual void setSelectionMode(jint); + virtual jint getSelectionMode(); + virtual void setSelectionPath(::javax::swing::tree::TreePath *); +public: // actually package-private + virtual jint getRow(::javax::swing::tree::TreePath *); +public: + virtual void setSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); + virtual void addSelectionPath(::javax::swing::tree::TreePath *); + virtual void addSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); + virtual void removeSelectionPath(::javax::swing::tree::TreePath *); + virtual void removeSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *); + virtual ::javax::swing::tree::TreePath * getSelectionPath(); + virtual JArray< ::javax::swing::tree::TreePath * > * getSelectionPaths(); + virtual jint getSelectionCount(); + virtual jboolean isPathSelected(::javax::swing::tree::TreePath *); + virtual jboolean isSelectionEmpty(); + virtual void clearSelection(); + virtual void addTreeSelectionListener(::javax::swing::event::TreeSelectionListener *); + virtual void removeTreeSelectionListener(::javax::swing::event::TreeSelectionListener *); + virtual JArray< ::javax::swing::event::TreeSelectionListener * > * getTreeSelectionListeners(); +public: // actually protected + virtual void fireValueChanged(::javax::swing::event::TreeSelectionEvent *); +public: + virtual JArray< ::java::util::EventListener * > * getListeners(::java::lang::Class *); + virtual JArray< jint > * getSelectionRows(); + virtual jint getMinSelectionRow(); + virtual jint getMaxSelectionRow(); + virtual jboolean isRowSelected(jint); + virtual void resetRowSelection(); + virtual jint getLeadSelectionRow(); + virtual ::javax::swing::tree::TreePath * getLeadSelectionPath(); + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *); + virtual JArray< ::java::beans::PropertyChangeListener * > * getPropertyChangeListeners(); +public: // actually protected + virtual void insureRowContinuity(); + virtual jboolean arePathsContiguous(JArray< ::javax::swing::tree::TreePath * > *); + virtual jboolean canPathsBeAdded(JArray< ::javax::swing::tree::TreePath * > *); + virtual jboolean canPathsBeRemoved(JArray< ::javax::swing::tree::TreePath * > *); + virtual void notifyPathChange(::java::util::Vector *, ::javax::swing::tree::TreePath *); + virtual void updateLeadIndex(); + virtual void insureUniqueness(); +public: // actually package-private + static const jlong serialVersionUID = 3288129636638950196LL; +public: + static ::java::lang::String * SELECTION_MODE_PROPERTY; +public: // actually protected + ::javax::swing::event::SwingPropertyChangeSupport * __attribute__((aligned(__alignof__( ::java::lang::Object)))) changeSupport; + JArray< ::javax::swing::tree::TreePath * > * selection; + ::javax::swing::event::EventListenerList * listenerList; + ::javax::swing::tree::RowMapper * rowMapper; + ::javax::swing::DefaultListSelectionModel * listSelectionModel; + jint selectionMode; + ::javax::swing::tree::TreePath * leadPath; + jint leadIndex; + jint leadRow; +private: + ::java::util::HashSet * selectedPaths; + ::java::util::HashSet * tmpPaths; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_DefaultTreeSelectionModel__ diff --git a/libjava/javax/swing/tree/ExpandVetoException.h b/libjava/javax/swing/tree/ExpandVetoException.h new file mode 100644 index 00000000000..174bcb8974d --- /dev/null +++ b/libjava/javax/swing/tree/ExpandVetoException.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_ExpandVetoException__ +#define __javax_swing_tree_ExpandVetoException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeExpansionEvent; + } + namespace tree + { + class ExpandVetoException; + } + } + } +} + +class javax::swing::tree::ExpandVetoException : public ::java::lang::Exception +{ + +public: + ExpandVetoException(::javax::swing::event::TreeExpansionEvent *); + ExpandVetoException(::javax::swing::event::TreeExpansionEvent *, ::java::lang::String *); +public: // actually protected + ::javax::swing::event::TreeExpansionEvent * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) event; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_ExpandVetoException__ diff --git a/libjava/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.h b/libjava/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.h new file mode 100644 index 00000000000..7d128e39621 --- /dev/null +++ b/libjava/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_FixedHeightLayoutCache$NodeRecord__ +#define __javax_swing_tree_FixedHeightLayoutCache$NodeRecord__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace tree + { + class FixedHeightLayoutCache; + class FixedHeightLayoutCache$NodeRecord; + class TreePath; + } + } + } +} + +class javax::swing::tree::FixedHeightLayoutCache$NodeRecord : public ::java::lang::Object +{ + +public: // actually package-private + FixedHeightLayoutCache$NodeRecord(::javax::swing::tree::FixedHeightLayoutCache *, jint, jint, ::java::lang::Object *, ::java::lang::Object *); + virtual ::javax::swing::tree::TreePath * getPath(); + virtual ::java::awt::Rectangle * getBounds(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) row; + jint depth; + ::java::lang::Object * parent; + ::java::lang::Object * node; + jboolean isExpanded; + ::java::awt::Rectangle * bounds; +private: + ::javax::swing::tree::TreePath * path; +public: // actually package-private + ::javax::swing::tree::FixedHeightLayoutCache * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_FixedHeightLayoutCache$NodeRecord__ diff --git a/libjava/javax/swing/tree/FixedHeightLayoutCache.h b/libjava/javax/swing/tree/FixedHeightLayoutCache.h new file mode 100644 index 00000000000..863ccd9f06c --- /dev/null +++ b/libjava/javax/swing/tree/FixedHeightLayoutCache.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_FixedHeightLayoutCache__ +#define __javax_swing_tree_FixedHeightLayoutCache__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class TreeModelEvent; + } + namespace tree + { + class FixedHeightLayoutCache; + class TreeModel; + class TreePath; + } + } + } +} + +class javax::swing::tree::FixedHeightLayoutCache : public ::javax::swing::tree::VariableHeightLayoutCache +{ + +public: + FixedHeightLayoutCache(); + virtual jint getRowCount(); +private: + void update(); + void countRows(::java::lang::Object *, ::java::lang::Object *, jint); +public: + virtual void invalidatePathBounds(::javax::swing::tree::TreePath *); + virtual void invalidateSizes(); + virtual void setExpandedState(::javax::swing::tree::TreePath *, jboolean); + virtual jboolean isExpanded(::javax::swing::tree::TreePath *); + virtual ::java::awt::Rectangle * getBounds(::javax::swing::tree::TreePath *, ::java::awt::Rectangle *); + virtual ::javax::swing::tree::TreePath * getPathForRow(jint); + virtual jint getRowForPath(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getPathClosestTo(jint, jint); +public: // actually package-private + virtual jint distance(::java::awt::Rectangle *, jint, jint); +public: + virtual jint getVisibleChildCount(::javax::swing::tree::TreePath *); + virtual ::java::util::Enumeration * getVisiblePathsFrom(::javax::swing::tree::TreePath *); + virtual jboolean getExpandedState(::javax::swing::tree::TreePath *); + virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *); + virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *); + virtual void setModel(::javax::swing::tree::TreeModel *); + virtual void setRootVisible(jboolean); + virtual jint getPreferredHeight(); + virtual jint getPreferredWidth(::java::awt::Rectangle *); +public: // actually protected + virtual jboolean isFixedRowHeight(); +public: // actually package-private + ::java::util::Set * __attribute__((aligned(__alignof__( ::javax::swing::tree::VariableHeightLayoutCache)))) expanded; + ::java::util::Hashtable * nodes; + ::java::util::Hashtable * row2node; + jboolean dirty; + jint totalHeight; + jint maximalWidth; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_FixedHeightLayoutCache__ diff --git a/libjava/javax/swing/tree/MutableTreeNode.h b/libjava/javax/swing/tree/MutableTreeNode.h new file mode 100644 index 00000000000..221f6750dc5 --- /dev/null +++ b/libjava/javax/swing/tree/MutableTreeNode.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_MutableTreeNode__ +#define __javax_swing_tree_MutableTreeNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class MutableTreeNode; + class TreeNode; + } + } + } +} + +class javax::swing::tree::MutableTreeNode : public ::java::lang::Object +{ + +public: + virtual void insert(::javax::swing::tree::MutableTreeNode *, jint) = 0; + virtual void remove(jint) = 0; + virtual void remove(::javax::swing::tree::MutableTreeNode *) = 0; + virtual void setUserObject(::java::lang::Object *) = 0; + virtual void removeFromParent() = 0; + virtual void setParent(::javax::swing::tree::MutableTreeNode *) = 0; + virtual ::javax::swing::tree::TreeNode * getParent() = 0; + virtual jint getIndex(::javax::swing::tree::TreeNode *) = 0; + virtual ::javax::swing::tree::TreeNode * getChildAt(jint) = 0; + virtual jint getChildCount() = 0; + virtual jboolean getAllowsChildren() = 0; + virtual jboolean isLeaf() = 0; + virtual ::java::util::Enumeration * children() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_tree_MutableTreeNode__ diff --git a/libjava/javax/swing/tree/RowMapper.h b/libjava/javax/swing/tree/RowMapper.h new file mode 100644 index 00000000000..d7310d3fcfb --- /dev/null +++ b/libjava/javax/swing/tree/RowMapper.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_RowMapper__ +#define __javax_swing_tree_RowMapper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class RowMapper; + class TreePath; + } + } + } +} + +class javax::swing::tree::RowMapper : public ::java::lang::Object +{ + +public: + virtual JArray< jint > * getRowsForPaths(JArray< ::javax::swing::tree::TreePath * > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_tree_RowMapper__ diff --git a/libjava/javax/swing/tree/TreeCellEditor.h b/libjava/javax/swing/tree/TreeCellEditor.h new file mode 100644 index 00000000000..0b18ec605ba --- /dev/null +++ b/libjava/javax/swing/tree/TreeCellEditor.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_TreeCellEditor__ +#define __javax_swing_tree_TreeCellEditor__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTree; + namespace event + { + class CellEditorListener; + } + namespace tree + { + class TreeCellEditor; + } + } + } +} + +class javax::swing::tree::TreeCellEditor : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Component * getTreeCellEditorComponent(::javax::swing::JTree *, ::java::lang::Object *, jboolean, jboolean, jboolean, jint) = 0; + virtual ::java::lang::Object * getCellEditorValue() = 0; + virtual jboolean isCellEditable(::java::util::EventObject *) = 0; + virtual jboolean shouldSelectCell(::java::util::EventObject *) = 0; + virtual jboolean stopCellEditing() = 0; + virtual void cancelCellEditing() = 0; + virtual void addCellEditorListener(::javax::swing::event::CellEditorListener *) = 0; + virtual void removeCellEditorListener(::javax::swing::event::CellEditorListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_tree_TreeCellEditor__ diff --git a/libjava/javax/swing/tree/TreeCellRenderer.h b/libjava/javax/swing/tree/TreeCellRenderer.h new file mode 100644 index 00000000000..2043386d14d --- /dev/null +++ b/libjava/javax/swing/tree/TreeCellRenderer.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_TreeCellRenderer__ +#define __javax_swing_tree_TreeCellRenderer__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Component; + } + } + namespace javax + { + namespace swing + { + class JTree; + namespace tree + { + class TreeCellRenderer; + } + } + } +} + +class javax::swing::tree::TreeCellRenderer : public ::java::lang::Object +{ + +public: + virtual ::java::awt::Component * getTreeCellRendererComponent(::javax::swing::JTree *, ::java::lang::Object *, jboolean, jboolean, jboolean, jint, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_tree_TreeCellRenderer__ diff --git a/libjava/javax/swing/tree/TreeModel.h b/libjava/javax/swing/tree/TreeModel.h new file mode 100644 index 00000000000..981d53fb5ab --- /dev/null +++ b/libjava/javax/swing/tree/TreeModel.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_TreeModel__ +#define __javax_swing_tree_TreeModel__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class TreeModelListener; + } + namespace tree + { + class TreeModel; + class TreePath; + } + } + } +} + +class javax::swing::tree::TreeModel : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getRoot() = 0; + virtual ::java::lang::Object * getChild(::java::lang::Object *, jint) = 0; + virtual jint getChildCount(::java::lang::Object *) = 0; + virtual jboolean isLeaf(::java::lang::Object *) = 0; + virtual void valueForPathChanged(::javax::swing::tree::TreePath *, ::java::lang::Object *) = 0; + virtual jint getIndexOfChild(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual void addTreeModelListener(::javax::swing::event::TreeModelListener *) = 0; + virtual void removeTreeModelListener(::javax::swing::event::TreeModelListener *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_tree_TreeModel__ diff --git a/libjava/javax/swing/tree/TreeNode.h b/libjava/javax/swing/tree/TreeNode.h new file mode 100644 index 00000000000..3307c09c68a --- /dev/null +++ b/libjava/javax/swing/tree/TreeNode.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_TreeNode__ +#define __javax_swing_tree_TreeNode__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class TreeNode; + } + } + } +} + +class javax::swing::tree::TreeNode : public ::java::lang::Object +{ + +public: + virtual ::javax::swing::tree::TreeNode * getParent() = 0; + virtual jint getIndex(::javax::swing::tree::TreeNode *) = 0; + virtual ::javax::swing::tree::TreeNode * getChildAt(jint) = 0; + virtual jint getChildCount() = 0; + virtual jboolean getAllowsChildren() = 0; + virtual jboolean isLeaf() = 0; + virtual ::java::util::Enumeration * children() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_tree_TreeNode__ diff --git a/libjava/javax/swing/tree/TreePath.h b/libjava/javax/swing/tree/TreePath.h new file mode 100644 index 00000000000..9c99e2720ea --- /dev/null +++ b/libjava/javax/swing/tree/TreePath.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_TreePath__ +#define __javax_swing_tree_TreePath__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace tree + { + class TreePath; + } + } + } +} + +class javax::swing::tree::TreePath : public ::java::lang::Object +{ + +public: + TreePath(JArray< ::java::lang::Object * > *); + TreePath(::java::lang::Object *); +public: // actually protected + TreePath(::javax::swing::tree::TreePath *, ::java::lang::Object *); + TreePath(JArray< ::java::lang::Object * > *, jint); + TreePath(); +public: + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual JArray< ::java::lang::Object * > * getPath(); + virtual ::java::lang::Object * getLastPathComponent(); + virtual jint getPathCount(); + virtual ::java::lang::Object * getPathComponent(jint); + virtual jboolean isDescendant(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * pathByAddingChild(::java::lang::Object *); + virtual ::javax::swing::tree::TreePath * getParentPath(); +public: // actually package-private + static const jlong serialVersionUID = 4380036194768077479LL; +private: + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) path; + ::javax::swing::tree::TreePath * parentPath; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_TreePath__ diff --git a/libjava/javax/swing/tree/TreeSelectionModel.h b/libjava/javax/swing/tree/TreeSelectionModel.h new file mode 100644 index 00000000000..3c0194d1808 --- /dev/null +++ b/libjava/javax/swing/tree/TreeSelectionModel.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_TreeSelectionModel__ +#define __javax_swing_tree_TreeSelectionModel__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace beans + { + class PropertyChangeListener; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class TreeSelectionListener; + } + namespace tree + { + class RowMapper; + class TreePath; + class TreeSelectionModel; + } + } + } +} + +class javax::swing::tree::TreeSelectionModel : public ::java::lang::Object +{ + +public: + virtual void setSelectionMode(jint) = 0; + virtual jint getSelectionMode() = 0; + virtual void setSelectionPath(::javax::swing::tree::TreePath *) = 0; + virtual void setSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *) = 0; + virtual void addSelectionPath(::javax::swing::tree::TreePath *) = 0; + virtual void addSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *) = 0; + virtual void removeSelectionPath(::javax::swing::tree::TreePath *) = 0; + virtual void removeSelectionPaths(JArray< ::javax::swing::tree::TreePath * > *) = 0; + virtual ::javax::swing::tree::TreePath * getSelectionPath() = 0; + virtual JArray< ::javax::swing::tree::TreePath * > * getSelectionPaths() = 0; + virtual jint getSelectionCount() = 0; + virtual jboolean isPathSelected(::javax::swing::tree::TreePath *) = 0; + virtual jboolean isSelectionEmpty() = 0; + virtual void clearSelection() = 0; + virtual void setRowMapper(::javax::swing::tree::RowMapper *) = 0; + virtual ::javax::swing::tree::RowMapper * getRowMapper() = 0; + virtual JArray< jint > * getSelectionRows() = 0; + virtual jint getMinSelectionRow() = 0; + virtual jint getMaxSelectionRow() = 0; + virtual jboolean isRowSelected(jint) = 0; + virtual void resetRowSelection() = 0; + virtual jint getLeadSelectionRow() = 0; + virtual ::javax::swing::tree::TreePath * getLeadSelectionPath() = 0; + virtual void addPropertyChangeListener(::java::beans::PropertyChangeListener *) = 0; + virtual void removePropertyChangeListener(::java::beans::PropertyChangeListener *) = 0; + virtual void addTreeSelectionListener(::javax::swing::event::TreeSelectionListener *) = 0; + virtual void removeTreeSelectionListener(::javax::swing::event::TreeSelectionListener *) = 0; + static const jint SINGLE_TREE_SELECTION = 1; + static const jint CONTIGUOUS_TREE_SELECTION = 2; + static const jint DISCONTIGUOUS_TREE_SELECTION = 4; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_tree_TreeSelectionModel__ diff --git a/libjava/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.h b/libjava/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.h new file mode 100644 index 00000000000..1555726c9ef --- /dev/null +++ b/libjava/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_VariableHeightLayoutCache$NodeRecord__ +#define __javax_swing_tree_VariableHeightLayoutCache$NodeRecord__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace tree + { + class TreePath; + class VariableHeightLayoutCache; + class VariableHeightLayoutCache$NodeRecord; + } + } + } +} + +class javax::swing::tree::VariableHeightLayoutCache$NodeRecord : public ::java::lang::Object +{ + +public: // actually package-private + VariableHeightLayoutCache$NodeRecord(::javax::swing::tree::VariableHeightLayoutCache *, jint, jint, ::java::lang::Object *, ::java::lang::Object *); + virtual ::javax::swing::tree::TreePath * getPath(); + virtual ::java::awt::Rectangle * getBounds(); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) row; + jint depth; + ::java::lang::Object * parent; + ::java::lang::Object * node; + jboolean isExpanded; + ::java::awt::Rectangle * bounds; +private: + ::javax::swing::tree::TreePath * path; +public: // actually package-private + ::javax::swing::tree::VariableHeightLayoutCache * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_VariableHeightLayoutCache$NodeRecord__ diff --git a/libjava/javax/swing/tree/VariableHeightLayoutCache.h b/libjava/javax/swing/tree/VariableHeightLayoutCache.h new file mode 100644 index 00000000000..81a85bad41f --- /dev/null +++ b/libjava/javax/swing/tree/VariableHeightLayoutCache.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_tree_VariableHeightLayoutCache__ +#define __javax_swing_tree_VariableHeightLayoutCache__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace awt + { + class Rectangle; + } + } + namespace javax + { + namespace swing + { + namespace event + { + class TreeModelEvent; + } + namespace tree + { + class AbstractLayoutCache$NodeDimensions; + class TreeModel; + class TreePath; + class VariableHeightLayoutCache; + } + } + } +} + +class javax::swing::tree::VariableHeightLayoutCache : public ::javax::swing::tree::AbstractLayoutCache +{ + +public: + VariableHeightLayoutCache(); + virtual jint getRowCount(); +private: + void update(); + jint countRows(::java::lang::Object *, ::java::lang::Object *, jint, jint); +public: + virtual void invalidatePathBounds(::javax::swing::tree::TreePath *); + virtual void invalidateSizes(); + virtual void setExpandedState(::javax::swing::tree::TreePath *, jboolean); + virtual jboolean isExpanded(::javax::swing::tree::TreePath *); + virtual ::java::awt::Rectangle * getBounds(::javax::swing::tree::TreePath *, ::java::awt::Rectangle *); + virtual ::javax::swing::tree::TreePath * getPathForRow(jint); + virtual jint getRowForPath(::javax::swing::tree::TreePath *); + virtual ::javax::swing::tree::TreePath * getPathClosestTo(jint, jint); +public: // actually package-private + virtual jint distance(::java::awt::Rectangle *, jint, jint); +public: + virtual jint getVisibleChildCount(::javax::swing::tree::TreePath *); + virtual ::java::util::Enumeration * getVisiblePathsFrom(::javax::swing::tree::TreePath *); + virtual jboolean getExpandedState(::javax::swing::tree::TreePath *); + virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *); + virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *); + virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *); + virtual void setModel(::javax::swing::tree::TreeModel *); + virtual void setRootVisible(jboolean); + virtual jint getPreferredHeight(); + virtual jint getPreferredWidth(::java::awt::Rectangle *); + virtual void setNodeDimensions(::javax::swing::tree::AbstractLayoutCache$NodeDimensions *); + virtual void setRowHeight(jint); +private: + static ::java::awt::Rectangle * RECT_CACHE; +public: // actually package-private + ::java::util::Set * __attribute__((aligned(__alignof__( ::javax::swing::tree::AbstractLayoutCache)))) expanded; + ::java::util::Hashtable * nodes; + ::java::util::ArrayList * row2node; + jboolean dirty; + jint totalHeight; + jint maximalWidth; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_tree_VariableHeightLayoutCache__ diff --git a/libjava/javax/swing/undo/AbstractUndoableEdit.h b/libjava/javax/swing/undo/AbstractUndoableEdit.h new file mode 100644 index 00000000000..e800a690fe4 --- /dev/null +++ b/libjava/javax/swing/undo/AbstractUndoableEdit.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_AbstractUndoableEdit__ +#define __javax_swing_undo_AbstractUndoableEdit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace undo + { + class AbstractUndoableEdit; + class UndoableEdit; + } + } + } +} + +class javax::swing::undo::AbstractUndoableEdit : public ::java::lang::Object +{ + +public: + AbstractUndoableEdit(); + virtual void undo(); + virtual jboolean canUndo(); + virtual void redo(); + virtual jboolean canRedo(); + virtual void die(); + virtual jboolean addEdit(::javax::swing::undo::UndoableEdit *); + virtual jboolean replaceEdit(::javax::swing::undo::UndoableEdit *); + virtual jboolean isSignificant(); + virtual ::java::lang::String * getPresentationName(); + virtual ::java::lang::String * getUndoPresentationName(); + virtual ::java::lang::String * getRedoPresentationName(); + virtual ::java::lang::String * toString(); +public: // actually package-private + static const jlong serialVersionUID = 580150227676302096LL; +public: // actually protected + static ::java::lang::String * UndoName; + static ::java::lang::String * RedoName; +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) hasBeenDone; + jboolean alive; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_undo_AbstractUndoableEdit__ diff --git a/libjava/javax/swing/undo/CannotRedoException.h b/libjava/javax/swing/undo/CannotRedoException.h new file mode 100644 index 00000000000..5d20d8d7a4c --- /dev/null +++ b/libjava/javax/swing/undo/CannotRedoException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_CannotRedoException__ +#define __javax_swing_undo_CannotRedoException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace undo + { + class CannotRedoException; + } + } + } +} + +class javax::swing::undo::CannotRedoException : public ::java::lang::RuntimeException +{ + +public: + CannotRedoException(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_undo_CannotRedoException__ diff --git a/libjava/javax/swing/undo/CannotUndoException.h b/libjava/javax/swing/undo/CannotUndoException.h new file mode 100644 index 00000000000..d7a3cb2c2e8 --- /dev/null +++ b/libjava/javax/swing/undo/CannotUndoException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_CannotUndoException__ +#define __javax_swing_undo_CannotUndoException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace undo + { + class CannotUndoException; + } + } + } +} + +class javax::swing::undo::CannotUndoException : public ::java::lang::RuntimeException +{ + +public: + CannotUndoException(); + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_undo_CannotUndoException__ diff --git a/libjava/javax/swing/undo/CompoundEdit.h b/libjava/javax/swing/undo/CompoundEdit.h new file mode 100644 index 00000000000..9c890538421 --- /dev/null +++ b/libjava/javax/swing/undo/CompoundEdit.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_CompoundEdit__ +#define __javax_swing_undo_CompoundEdit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace undo + { + class CompoundEdit; + class UndoableEdit; + } + } + } +} + +class javax::swing::undo::CompoundEdit : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + CompoundEdit(); + virtual void undo(); + virtual void redo(); +public: // actually protected + virtual ::javax::swing::undo::UndoableEdit * lastEdit(); +public: + virtual void die(); + virtual jboolean addEdit(::javax::swing::undo::UndoableEdit *); + virtual void end(); + virtual jboolean canUndo(); + virtual jboolean canRedo(); + virtual jboolean isInProgress(); + virtual jboolean isSignificant(); + virtual ::java::lang::String * getPresentationName(); + virtual ::java::lang::String * getUndoPresentationName(); + virtual ::java::lang::String * getRedoPresentationName(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = -6512679249930119683LL; +public: // actually protected + ::java::util::Vector * __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) edits; +private: + jboolean inProgress; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_undo_CompoundEdit__ diff --git a/libjava/javax/swing/undo/StateEdit.h b/libjava/javax/swing/undo/StateEdit.h new file mode 100644 index 00000000000..80c91588e4c --- /dev/null +++ b/libjava/javax/swing/undo/StateEdit.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_StateEdit__ +#define __javax_swing_undo_StateEdit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace undo + { + class StateEdit; + class StateEditable; + } + } + } +} + +class javax::swing::undo::StateEdit : public ::javax::swing::undo::AbstractUndoableEdit +{ + +public: + StateEdit(::javax::swing::undo::StateEditable *); + StateEdit(::javax::swing::undo::StateEditable *, ::java::lang::String *); +public: // actually protected + virtual void init(::javax::swing::undo::StateEditable *, ::java::lang::String *); +public: + virtual void end(); + virtual void undo(); + virtual void redo(); + virtual ::java::lang::String * getPresentationName(); +public: // actually protected + virtual void removeRedundantState(); + static ::java::lang::String * RCSID; + ::javax::swing::undo::StateEditable * __attribute__((aligned(__alignof__( ::javax::swing::undo::AbstractUndoableEdit)))) object; + ::java::util::Hashtable * preState; + ::java::util::Hashtable * postState; + ::java::lang::String * undoRedoName; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_undo_StateEdit__ diff --git a/libjava/javax/swing/undo/StateEditable.h b/libjava/javax/swing/undo/StateEditable.h new file mode 100644 index 00000000000..0f1343ab8d0 --- /dev/null +++ b/libjava/javax/swing/undo/StateEditable.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_StateEditable__ +#define __javax_swing_undo_StateEditable__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace undo + { + class StateEditable; + } + } + } +} + +class javax::swing::undo::StateEditable : public ::java::lang::Object +{ + +public: + virtual void restoreState(::java::util::Hashtable *) = 0; + virtual void storeState(::java::util::Hashtable *) = 0; + static ::java::lang::String * RCSID; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_undo_StateEditable__ diff --git a/libjava/javax/swing/undo/UndoManager.h b/libjava/javax/swing/undo/UndoManager.h new file mode 100644 index 00000000000..9189c1c0bcf --- /dev/null +++ b/libjava/javax/swing/undo/UndoManager.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_UndoManager__ +#define __javax_swing_undo_UndoManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class UndoableEditEvent; + } + namespace undo + { + class UndoManager; + class UndoableEdit; + } + } + } +} + +class javax::swing::undo::UndoManager : public ::javax::swing::undo::CompoundEdit +{ + +public: + UndoManager(); + virtual ::java::lang::String * toString(); + virtual void end(); + virtual jint getLimit(); + virtual void setLimit(jint); + virtual void discardAllEdits(); +public: // actually protected + virtual void trimForLimit(); + virtual void trimEdits(jint, jint); + virtual ::javax::swing::undo::UndoableEdit * editToBeUndone(); + virtual ::javax::swing::undo::UndoableEdit * editToBeRedone(); + virtual void undoTo(::javax::swing::undo::UndoableEdit *); + virtual void redoTo(::javax::swing::undo::UndoableEdit *); +public: + virtual void undoOrRedo(); + virtual jboolean canUndoOrRedo(); + virtual void undo(); + virtual jboolean canUndo(); + virtual void redo(); + virtual jboolean canRedo(); + virtual jboolean addEdit(::javax::swing::undo::UndoableEdit *); + virtual ::java::lang::String * getUndoOrRedoPresentationName(); + virtual ::java::lang::String * getUndoPresentationName(); + virtual ::java::lang::String * getRedoPresentationName(); + virtual void undoableEditHappened(::javax::swing::event::UndoableEditEvent *); +public: // actually package-private + static const jlong serialVersionUID = -2077529998244066750LL; + jint __attribute__((aligned(__alignof__( ::javax::swing::undo::CompoundEdit)))) indexOfNextAdd; + jint limit; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_undo_UndoManager__ diff --git a/libjava/javax/swing/undo/UndoableEdit.h b/libjava/javax/swing/undo/UndoableEdit.h new file mode 100644 index 00000000000..59b73543dc8 --- /dev/null +++ b/libjava/javax/swing/undo/UndoableEdit.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_UndoableEdit__ +#define __javax_swing_undo_UndoableEdit__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace undo + { + class UndoableEdit; + } + } + } +} + +class javax::swing::undo::UndoableEdit : public ::java::lang::Object +{ + +public: + virtual jboolean addEdit(::javax::swing::undo::UndoableEdit *) = 0; + virtual jboolean canRedo() = 0; + virtual jboolean canUndo() = 0; + virtual void die() = 0; + virtual ::java::lang::String * getPresentationName() = 0; + virtual ::java::lang::String * getRedoPresentationName() = 0; + virtual ::java::lang::String * getUndoPresentationName() = 0; + virtual jboolean isSignificant() = 0; + virtual void redo() = 0; + virtual jboolean replaceEdit(::javax::swing::undo::UndoableEdit *) = 0; + virtual void undo() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_swing_undo_UndoableEdit__ diff --git a/libjava/javax/swing/undo/UndoableEditSupport.h b/libjava/javax/swing/undo/UndoableEditSupport.h new file mode 100644 index 00000000000..3bfbe30b755 --- /dev/null +++ b/libjava/javax/swing/undo/UndoableEditSupport.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_swing_undo_UndoableEditSupport__ +#define __javax_swing_undo_UndoableEditSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace swing + { + namespace event + { + class UndoableEditListener; + } + namespace undo + { + class CompoundEdit; + class UndoableEdit; + class UndoableEditSupport; + } + } + } +} + +class javax::swing::undo::UndoableEditSupport : public ::java::lang::Object +{ + +public: + UndoableEditSupport(); + UndoableEditSupport(::java::lang::Object *); + virtual ::java::lang::String * toString(); + virtual void addUndoableEditListener(::javax::swing::event::UndoableEditListener *); + virtual void removeUndoableEditListener(::javax::swing::event::UndoableEditListener *); + virtual JArray< ::javax::swing::event::UndoableEditListener * > * getUndoableEditListeners(); +public: // actually protected + virtual void _postEdit(::javax::swing::undo::UndoableEdit *); +public: + virtual void postEdit(::javax::swing::undo::UndoableEdit *); + virtual jint getUpdateLevel(); + virtual void beginUpdate(); +public: // actually protected + virtual ::javax::swing::undo::CompoundEdit * createCompoundEdit(); +public: + virtual void endUpdate(); +public: // actually protected + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) updateLevel; + ::javax::swing::undo::CompoundEdit * compoundEdit; + ::java::util::Vector * listeners; + ::java::lang::Object * realSource; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_swing_undo_UndoableEditSupport__ diff --git a/libjava/javax/transaction/HeuristicCommitException.h b/libjava/javax/transaction/HeuristicCommitException.h new file mode 100644 index 00000000000..f73ec07291e --- /dev/null +++ b/libjava/javax/transaction/HeuristicCommitException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_HeuristicCommitException__ +#define __javax_transaction_HeuristicCommitException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class HeuristicCommitException; + } + } +} + +class javax::transaction::HeuristicCommitException : public ::java::lang::Exception +{ + +public: + HeuristicCommitException(); + HeuristicCommitException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_HeuristicCommitException__ diff --git a/libjava/javax/transaction/HeuristicMixedException.h b/libjava/javax/transaction/HeuristicMixedException.h new file mode 100644 index 00000000000..22128f20072 --- /dev/null +++ b/libjava/javax/transaction/HeuristicMixedException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_HeuristicMixedException__ +#define __javax_transaction_HeuristicMixedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class HeuristicMixedException; + } + } +} + +class javax::transaction::HeuristicMixedException : public ::java::lang::Exception +{ + +public: + HeuristicMixedException(); + HeuristicMixedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_HeuristicMixedException__ diff --git a/libjava/javax/transaction/HeuristicRollbackException.h b/libjava/javax/transaction/HeuristicRollbackException.h new file mode 100644 index 00000000000..c738e94e801 --- /dev/null +++ b/libjava/javax/transaction/HeuristicRollbackException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_HeuristicRollbackException__ +#define __javax_transaction_HeuristicRollbackException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class HeuristicRollbackException; + } + } +} + +class javax::transaction::HeuristicRollbackException : public ::java::lang::Exception +{ + +public: + HeuristicRollbackException(); + HeuristicRollbackException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_HeuristicRollbackException__ diff --git a/libjava/javax/transaction/InvalidTransactionException.h b/libjava/javax/transaction/InvalidTransactionException.h new file mode 100644 index 00000000000..16850035410 --- /dev/null +++ b/libjava/javax/transaction/InvalidTransactionException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_InvalidTransactionException__ +#define __javax_transaction_InvalidTransactionException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class InvalidTransactionException; + } + } +} + +class javax::transaction::InvalidTransactionException : public ::java::rmi::RemoteException +{ + +public: + InvalidTransactionException(); + InvalidTransactionException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_InvalidTransactionException__ diff --git a/libjava/javax/transaction/NotSupportedException.h b/libjava/javax/transaction/NotSupportedException.h new file mode 100644 index 00000000000..3737e6d46e2 --- /dev/null +++ b/libjava/javax/transaction/NotSupportedException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_NotSupportedException__ +#define __javax_transaction_NotSupportedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class NotSupportedException; + } + } +} + +class javax::transaction::NotSupportedException : public ::java::lang::Exception +{ + +public: + NotSupportedException(); + NotSupportedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_NotSupportedException__ diff --git a/libjava/javax/transaction/RollbackException.h b/libjava/javax/transaction/RollbackException.h new file mode 100644 index 00000000000..396e6785cff --- /dev/null +++ b/libjava/javax/transaction/RollbackException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_RollbackException__ +#define __javax_transaction_RollbackException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class RollbackException; + } + } +} + +class javax::transaction::RollbackException : public ::java::lang::Exception +{ + +public: + RollbackException(); + RollbackException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_RollbackException__ diff --git a/libjava/javax/transaction/Status.h b/libjava/javax/transaction/Status.h new file mode 100644 index 00000000000..4fd94ac3806 --- /dev/null +++ b/libjava/javax/transaction/Status.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_Status__ +#define __javax_transaction_Status__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class Status; + } + } +} + +class javax::transaction::Status : public ::java::lang::Object +{ + +public: + static const jint STATUS_ACTIVE = 0; + static const jint STATUS_MARKED_ROLLBACK = 1; + static const jint STATUS_PREPARED = 2; + static const jint STATUS_COMMITTED = 3; + static const jint STATUS_ROLLEDBACK = 4; + static const jint STATUS_UNKNOWN = 5; + static const jint STATUS_NO_TRANSACTION = 6; + static const jint STATUS_PREPARING = 7; + static const jint STATUS_COMMITTING = 8; + static const jint STATUS_ROLLING_BACK = 9; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_transaction_Status__ diff --git a/libjava/javax/transaction/Synchronization.h b/libjava/javax/transaction/Synchronization.h new file mode 100644 index 00000000000..a1572249a56 --- /dev/null +++ b/libjava/javax/transaction/Synchronization.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_Synchronization__ +#define __javax_transaction_Synchronization__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class Synchronization; + } + } +} + +class javax::transaction::Synchronization : public ::java::lang::Object +{ + +public: + virtual void beforeCompletion() = 0; + virtual void afterCompletion(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_transaction_Synchronization__ diff --git a/libjava/javax/transaction/SystemException.h b/libjava/javax/transaction/SystemException.h new file mode 100644 index 00000000000..039cc50e0ee --- /dev/null +++ b/libjava/javax/transaction/SystemException.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_SystemException__ +#define __javax_transaction_SystemException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class SystemException; + } + } +} + +class javax::transaction::SystemException : public ::java::lang::Exception +{ + +public: + SystemException(); + SystemException(::java::lang::String *); + SystemException(jint); + jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) errorCode; + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_SystemException__ diff --git a/libjava/javax/transaction/Transaction.h b/libjava/javax/transaction/Transaction.h new file mode 100644 index 00000000000..7edbc9dc706 --- /dev/null +++ b/libjava/javax/transaction/Transaction.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_Transaction__ +#define __javax_transaction_Transaction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class Synchronization; + class Transaction; + namespace xa + { + class XAResource; + } + } + } +} + +class javax::transaction::Transaction : public ::java::lang::Object +{ + +public: + virtual void commit() = 0; + virtual jboolean delistResource(::javax::transaction::xa::XAResource *, jint) = 0; + virtual jboolean enlistResource(::javax::transaction::xa::XAResource *) = 0; + virtual jint getStatus() = 0; + virtual void registerSynchronization(::javax::transaction::Synchronization *) = 0; + virtual void rollback() = 0; + virtual void setRollbackOnly() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_transaction_Transaction__ diff --git a/libjava/javax/transaction/TransactionManager.h b/libjava/javax/transaction/TransactionManager.h new file mode 100644 index 00000000000..bb5df958b85 --- /dev/null +++ b/libjava/javax/transaction/TransactionManager.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_TransactionManager__ +#define __javax_transaction_TransactionManager__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class Transaction; + class TransactionManager; + } + } +} + +class javax::transaction::TransactionManager : public ::java::lang::Object +{ + +public: + virtual void begin() = 0; + virtual void commit() = 0; + virtual jint getStatus() = 0; + virtual ::javax::transaction::Transaction * getTransaction() = 0; + virtual void resume(::javax::transaction::Transaction *) = 0; + virtual void rollback() = 0; + virtual void setRollbackOnly() = 0; + virtual void setTransactionTimeout(jint) = 0; + virtual ::javax::transaction::Transaction * suspend() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_transaction_TransactionManager__ diff --git a/libjava/javax/transaction/TransactionRequiredException.h b/libjava/javax/transaction/TransactionRequiredException.h new file mode 100644 index 00000000000..4b6aad1de59 --- /dev/null +++ b/libjava/javax/transaction/TransactionRequiredException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_TransactionRequiredException__ +#define __javax_transaction_TransactionRequiredException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class TransactionRequiredException; + } + } +} + +class javax::transaction::TransactionRequiredException : public ::java::rmi::RemoteException +{ + +public: + TransactionRequiredException(); + TransactionRequiredException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_TransactionRequiredException__ diff --git a/libjava/javax/transaction/TransactionRolledbackException.h b/libjava/javax/transaction/TransactionRolledbackException.h new file mode 100644 index 00000000000..1a13227e292 --- /dev/null +++ b/libjava/javax/transaction/TransactionRolledbackException.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_TransactionRolledbackException__ +#define __javax_transaction_TransactionRolledbackException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class TransactionRolledbackException; + } + } +} + +class javax::transaction::TransactionRolledbackException : public ::java::rmi::RemoteException +{ + +public: + TransactionRolledbackException(); + TransactionRolledbackException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_TransactionRolledbackException__ diff --git a/libjava/javax/transaction/UserTransaction.h b/libjava/javax/transaction/UserTransaction.h new file mode 100644 index 00000000000..f1c4e7def9a --- /dev/null +++ b/libjava/javax/transaction/UserTransaction.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_UserTransaction__ +#define __javax_transaction_UserTransaction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + class UserTransaction; + } + } +} + +class javax::transaction::UserTransaction : public ::java::lang::Object +{ + +public: + virtual void begin() = 0; + virtual void commit() = 0; + virtual void rollback() = 0; + virtual void setRollbackOnly() = 0; + virtual jint getStatus() = 0; + virtual void setTransactionTimeout(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_transaction_UserTransaction__ diff --git a/libjava/javax/transaction/xa/XAException.h b/libjava/javax/transaction/xa/XAException.h new file mode 100644 index 00000000000..b6f590b5593 --- /dev/null +++ b/libjava/javax/transaction/xa/XAException.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_xa_XAException__ +#define __javax_transaction_xa_XAException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace transaction + { + namespace xa + { + class XAException; + } + } + } +} + +class javax::transaction::xa::XAException : public ::java::lang::Exception +{ + +public: + XAException(); + XAException(::java::lang::String *); + XAException(jint); + jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) errorCode; + static const jint XA_RBBASE = 100; + static const jint XA_RBROLLBACK = 100; + static const jint XA_RBCOMMFAIL = 101; + static const jint XA_RBDEADLOCK = 102; + static const jint XA_RBINTEGRITY = 103; + static const jint XA_RBOTHER = 104; + static const jint XA_RBPROTO = 105; + static const jint XA_RBTIMEOUT = 106; + static const jint XA_RBTRANSIENT = 107; + static const jint XA_RBEND = 107; + static const jint XA_NOMIGRATE = 9; + static const jint XA_HEURHAZ = 8; + static const jint XA_HEURCOM = 7; + static const jint XA_HEURRB = 6; + static const jint XA_HEURMIX = 5; + static const jint XA_RETRY = 4; + static const jint XA_RDONLY = 3; + static const jint XAER_ASYNC = -2; + static const jint XAER_RMERR = -3; + static const jint XAER_NOTA = -4; + static const jint XAER_INVAL = -5; + static const jint XAER_PROTO = -6; + static const jint XAER_RMFAIL = -7; + static const jint XAER_DUPID = -8; + static const jint XAER_OUTSIDE = -9; + static ::java::lang::Class class$; +}; + +#endif // __javax_transaction_xa_XAException__ diff --git a/libjava/javax/transaction/xa/XAResource.h b/libjava/javax/transaction/xa/XAResource.h new file mode 100644 index 00000000000..2a5442dd945 --- /dev/null +++ b/libjava/javax/transaction/xa/XAResource.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_xa_XAResource__ +#define __javax_transaction_xa_XAResource__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace transaction + { + namespace xa + { + class XAResource; + class Xid; + } + } + } +} + +class javax::transaction::xa::XAResource : public ::java::lang::Object +{ + +public: + virtual void commit(::javax::transaction::xa::Xid *, jboolean) = 0; + virtual void end(::javax::transaction::xa::Xid *, jint) = 0; + virtual void forget(::javax::transaction::xa::Xid *) = 0; + virtual jint getTransactionTimeout() = 0; + virtual jboolean isSameRM(::javax::transaction::xa::XAResource *) = 0; + virtual jint prepare(::javax::transaction::xa::Xid *) = 0; + virtual JArray< ::javax::transaction::xa::Xid * > * recover(jint) = 0; + virtual void rollback(::javax::transaction::xa::Xid *) = 0; + virtual jboolean setTransactionTimeout(jint) = 0; + virtual void start(::javax::transaction::xa::Xid *, jint) = 0; + static const jint TMENDRSCAN = 8388608; + static const jint TMFAIL = 536870912; + static const jint TMJOIN = 2097152; + static const jint TMNOFLAGS = 0; + static const jint TMONEPHASE = 1073741824; + static const jint TMRESUME = 134217728; + static const jint TMSTARTRSCAN = 16777216; + static const jint TMSUCCESS = 67108864; + static const jint TMSUSPEND = 33554432; + static const jint XA_RDONLY = 3; + static const jint XA_OK = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_transaction_xa_XAResource__ diff --git a/libjava/javax/transaction/xa/Xid.h b/libjava/javax/transaction/xa/Xid.h new file mode 100644 index 00000000000..7a4b3000107 --- /dev/null +++ b/libjava/javax/transaction/xa/Xid.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_transaction_xa_Xid__ +#define __javax_transaction_xa_Xid__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace transaction + { + namespace xa + { + class Xid; + } + } + } +} + +class javax::transaction::xa::Xid : public ::java::lang::Object +{ + +public: + virtual jint getFormatId() = 0; + virtual JArray< jbyte > * getGlobalTransactionId() = 0; + virtual JArray< jbyte > * getBranchQualifier() = 0; + static const jint MAXGTRIDSIZE = 64; + static const jint MAXBQUALSIZE = 64; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_transaction_xa_Xid__ diff --git a/libjava/javax/xml/XMLConstants.h b/libjava/javax/xml/XMLConstants.h new file mode 100644 index 00000000000..16f6f1cea80 --- /dev/null +++ b/libjava/javax/xml/XMLConstants.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_XMLConstants__ +#define __javax_xml_XMLConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + class XMLConstants; + } + } +} + +class javax::xml::XMLConstants : public ::java::lang::Object +{ + + XMLConstants(); +public: + static ::java::lang::String * NULL_NS_URI; + static ::java::lang::String * DEFAULT_NS_PREFIX; + static ::java::lang::String * XML_NS_URI; + static ::java::lang::String * XML_NS_PREFIX; + static ::java::lang::String * XMLNS_ATTRIBUTE_NS_URI; + static ::java::lang::String * XMLNS_ATTRIBUTE; + static ::java::lang::String * W3C_XML_SCHEMA_NS_URI; + static ::java::lang::String * W3C_XML_SCHEMA_INSTANCE_NS_URI; + static ::java::lang::String * W3C_XPATH_DATATYPE_NS_URI; + static ::java::lang::String * XML_DTD_NS_URI; + static ::java::lang::String * RELAXNG_NS_URI; + static ::java::lang::String * FEATURE_SECURE_PROCESSING; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_XMLConstants__ diff --git a/libjava/javax/xml/datatype/DatatypeConfigurationException.h b/libjava/javax/xml/datatype/DatatypeConfigurationException.h new file mode 100644 index 00000000000..d2623a09d94 --- /dev/null +++ b/libjava/javax/xml/datatype/DatatypeConfigurationException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_datatype_DatatypeConfigurationException__ +#define __javax_xml_datatype_DatatypeConfigurationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace datatype + { + class DatatypeConfigurationException; + } + } + } +} + +class javax::xml::datatype::DatatypeConfigurationException : public ::java::lang::Exception +{ + +public: + DatatypeConfigurationException(); + DatatypeConfigurationException(::java::lang::String *); + DatatypeConfigurationException(::java::lang::String *, ::java::lang::Throwable *); + DatatypeConfigurationException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_datatype_DatatypeConfigurationException__ diff --git a/libjava/javax/xml/datatype/DatatypeConstants$Field.h b/libjava/javax/xml/datatype/DatatypeConstants$Field.h new file mode 100644 index 00000000000..c30ee7a5149 --- /dev/null +++ b/libjava/javax/xml/datatype/DatatypeConstants$Field.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_datatype_DatatypeConstants$Field__ +#define __javax_xml_datatype_DatatypeConstants$Field__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace datatype + { + class DatatypeConstants$Field; + } + } + } +} + +class javax::xml::datatype::DatatypeConstants$Field : public ::java::lang::Object +{ + +public: // actually package-private + DatatypeConstants$Field(jint, ::java::lang::String *); +public: + jint getId(); + ::java::lang::String * toString(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::java::lang::String * name; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_datatype_DatatypeConstants$Field__ diff --git a/libjava/javax/xml/datatype/DatatypeConstants.h b/libjava/javax/xml/datatype/DatatypeConstants.h new file mode 100644 index 00000000000..721cb1b8589 --- /dev/null +++ b/libjava/javax/xml/datatype/DatatypeConstants.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_datatype_DatatypeConstants__ +#define __javax_xml_datatype_DatatypeConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace datatype + { + class DatatypeConstants; + class DatatypeConstants$Field; + } + namespace namespace + { + class QName; + } + } + } +} + +class javax::xml::datatype::DatatypeConstants : public ::java::lang::Object +{ + + DatatypeConstants(); +public: + static const jint JANUARY = 1; + static const jint FEBRUARY = 2; + static const jint MARCH = 3; + static const jint APRIL = 4; + static const jint MAY = 5; + static const jint JUNE = 6; + static const jint JULY = 7; + static const jint AUGUST = 8; + static const jint SEPTEMBER = 9; + static const jint OCTOBER = 10; + static const jint NOVEMBER = 11; + static const jint DECEMBER = 12; + static const jint LESSER = -1; + static const jint EQUAL = 0; + static const jint GREATER = 1; + static const jint INDETERMINATE = 2; + static const jint FIELD_UNDEFINED = -2147483647 - 1; + static ::javax::xml::datatype::DatatypeConstants$Field * YEARS; + static ::javax::xml::datatype::DatatypeConstants$Field * MONTHS; + static ::javax::xml::datatype::DatatypeConstants$Field * DAYS; + static ::javax::xml::datatype::DatatypeConstants$Field * HOURS; + static ::javax::xml::datatype::DatatypeConstants$Field * MINUTES; + static ::javax::xml::datatype::DatatypeConstants$Field * SECONDS; + static ::javax::xml::namespace::QName * DATETIME; + static ::javax::xml::namespace::QName * TIME; + static ::javax::xml::namespace::QName * DATE; + static ::javax::xml::namespace::QName * GYEARMONTH; + static ::javax::xml::namespace::QName * GMONTHDAY; + static ::javax::xml::namespace::QName * GYEAR; + static ::javax::xml::namespace::QName * GMONTH; + static ::javax::xml::namespace::QName * GDAY; + static ::javax::xml::namespace::QName * DURATION; + static ::javax::xml::namespace::QName * DURATION_DAYTIME; + static ::javax::xml::namespace::QName * DURATION_YEARMONTH; + static const jint MAX_TIMEZONE_OFFSET = -840; + static const jint MIN_TIMEZONE_OFFSET = 840; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_datatype_DatatypeConstants__ diff --git a/libjava/javax/xml/datatype/DatatypeFactory.h b/libjava/javax/xml/datatype/DatatypeFactory.h new file mode 100644 index 00000000000..dabb74fe420 --- /dev/null +++ b/libjava/javax/xml/datatype/DatatypeFactory.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_datatype_DatatypeFactory__ +#define __javax_xml_datatype_DatatypeFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigDecimal; + class BigInteger; + } + } + namespace javax + { + namespace xml + { + namespace datatype + { + class DatatypeFactory; + class Duration; + class XMLGregorianCalendar; + } + } + } +} + +class javax::xml::datatype::DatatypeFactory : public ::java::lang::Object +{ + +public: // actually protected + DatatypeFactory(); +public: + static ::javax::xml::datatype::DatatypeFactory * newInstance(); + virtual ::javax::xml::datatype::Duration * newDuration(::java::lang::String *) = 0; + virtual ::javax::xml::datatype::Duration * newDuration(jlong) = 0; + virtual ::javax::xml::datatype::Duration * newDuration(jboolean, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigDecimal *) = 0; + virtual ::javax::xml::datatype::Duration * newDuration(jboolean, jint, jint, jint, jint, jint, jint); + virtual ::javax::xml::datatype::Duration * newDurationDayTime(::java::lang::String *); + virtual ::javax::xml::datatype::Duration * newDurationDayTime(jlong); + virtual ::javax::xml::datatype::Duration * newDurationDayTime(jboolean, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *, ::java::math::BigInteger *); + virtual ::javax::xml::datatype::Duration * newDurationDayTime(jboolean, jint, jint, jint, jint); + virtual ::javax::xml::datatype::Duration * newDurationYearMonth(::java::lang::String *); + virtual ::javax::xml::datatype::Duration * newDurationYearMonth(jlong); + virtual ::javax::xml::datatype::Duration * newDurationYearMonth(jboolean, ::java::math::BigInteger *, ::java::math::BigInteger *); + virtual ::javax::xml::datatype::Duration * newDurationYearMonth(jboolean, jint, jint); + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendar() = 0; + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendar(::java::lang::String *) = 0; + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendar(::java::util::GregorianCalendar *) = 0; + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendar(::java::math::BigInteger *, jint, jint, jint, jint, jint, ::java::math::BigDecimal *, jint) = 0; + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendar(jint, jint, jint, jint, jint, jint, jint, jint); + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendarDate(jint, jint, jint, jint); + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendarTime(jint, jint, jint, jint); + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendarTime(jint, jint, jint, ::java::math::BigDecimal *, jint); + virtual ::javax::xml::datatype::XMLGregorianCalendar * newXMLGregorianCalendarTime(jint, jint, jint, jint, jint); + static ::java::lang::String * DATATYPEFACTORY_PROPERTY; + static ::java::lang::String * DATATYPEFACTORY_IMPLEMENTATION_CLASS; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_datatype_DatatypeFactory__ diff --git a/libjava/javax/xml/datatype/Duration.h b/libjava/javax/xml/datatype/Duration.h new file mode 100644 index 00000000000..719abd088b8 --- /dev/null +++ b/libjava/javax/xml/datatype/Duration.h @@ -0,0 +1,70 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_datatype_Duration__ +#define __javax_xml_datatype_Duration__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace javax + { + namespace xml + { + namespace datatype + { + class DatatypeConstants$Field; + class Duration; + } + namespace namespace + { + class QName; + } + } + } +} + +class javax::xml::datatype::Duration : public ::java::lang::Object +{ + +public: + Duration(); + virtual ::javax::xml::namespace::QName * getXMLSchemaType(); + virtual jint getSign() = 0; + virtual jint getYears(); + virtual jint getMonths(); + virtual jint getDays(); + virtual jint getHours(); + virtual jint getMinutes(); + virtual jint getSeconds(); + virtual jlong getTimeInMillis(::java::util::Calendar *); + virtual jlong getTimeInMillis(::java::util::Date *); + virtual ::java::lang::Number * getField(::javax::xml::datatype::DatatypeConstants$Field *) = 0; + virtual jboolean isSet(::javax::xml::datatype::DatatypeConstants$Field *) = 0; + virtual ::javax::xml::datatype::Duration * add(::javax::xml::datatype::Duration *) = 0; + virtual void addTo(::java::util::Calendar *) = 0; + virtual void addTo(::java::util::Date *); + virtual ::javax::xml::datatype::Duration * subtract(::javax::xml::datatype::Duration *); + virtual ::javax::xml::datatype::Duration * multiply(jint); + virtual ::javax::xml::datatype::Duration * multiply(::java::math::BigDecimal *) = 0; + virtual ::javax::xml::datatype::Duration * negate() = 0; + virtual ::javax::xml::datatype::Duration * normalizeWith(::java::util::Calendar *) = 0; + virtual jint compare(::javax::xml::datatype::Duration *) = 0; + virtual jboolean isLongerThan(::javax::xml::datatype::Duration *); + virtual jboolean isShorterThan(::javax::xml::datatype::Duration *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode() = 0; + virtual ::java::lang::String * toString(); + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_datatype_Duration__ diff --git a/libjava/javax/xml/datatype/XMLGregorianCalendar.h b/libjava/javax/xml/datatype/XMLGregorianCalendar.h new file mode 100644 index 00000000000..6e9c92bf24b --- /dev/null +++ b/libjava/javax/xml/datatype/XMLGregorianCalendar.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_datatype_XMLGregorianCalendar__ +#define __javax_xml_datatype_XMLGregorianCalendar__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigDecimal; + class BigInteger; + } + } + namespace javax + { + namespace xml + { + namespace datatype + { + class Duration; + class XMLGregorianCalendar; + } + namespace namespace + { + class QName; + } + } + } +} + +class javax::xml::datatype::XMLGregorianCalendar : public ::java::lang::Object +{ + +public: + XMLGregorianCalendar(); + virtual void clear() = 0; + virtual void reset() = 0; + virtual void setYear(::java::math::BigInteger *) = 0; + virtual void setYear(jint) = 0; + virtual void setMonth(jint) = 0; + virtual void setDay(jint) = 0; + virtual void setTimezone(jint) = 0; + virtual void setTime(jint, jint, jint); + virtual void setHour(jint) = 0; + virtual void setMinute(jint) = 0; + virtual void setSecond(jint) = 0; + virtual void setMillisecond(jint) = 0; + virtual void setFractionalSecond(::java::math::BigDecimal *) = 0; + virtual void setTime(jint, jint, jint, ::java::math::BigDecimal *); + virtual void setTime(jint, jint, jint, jint); + virtual ::java::math::BigInteger * getEon() = 0; + virtual jint getYear() = 0; + virtual ::java::math::BigInteger * getEonAndYear() = 0; + virtual jint getMonth() = 0; + virtual jint getDay() = 0; + virtual jint getTimezone() = 0; + virtual jint getHour() = 0; + virtual jint getMinute() = 0; + virtual jint getSecond() = 0; + virtual jint getMillisecond(); + virtual ::java::math::BigDecimal * getFractionalSecond() = 0; + virtual jint compare(::javax::xml::datatype::XMLGregorianCalendar *) = 0; + virtual ::javax::xml::datatype::XMLGregorianCalendar * normalize() = 0; + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toXMLFormat() = 0; + virtual ::javax::xml::namespace::QName * getXMLSchemaType() = 0; + virtual ::java::lang::String * toString(); + virtual jboolean isValid() = 0; + virtual void add(::javax::xml::datatype::Duration *) = 0; + virtual ::java::util::GregorianCalendar * toGregorianCalendar() = 0; + virtual ::java::util::GregorianCalendar * toGregorianCalendar(::java::util::TimeZone *, ::java::util::Locale *, ::javax::xml::datatype::XMLGregorianCalendar *) = 0; + virtual ::java::util::TimeZone * getTimeZone(jint) = 0; + virtual ::java::lang::Object * clone() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_datatype_XMLGregorianCalendar__ diff --git a/libjava/javax/xml/namespace/NamespaceContext.h b/libjava/javax/xml/namespace/NamespaceContext.h new file mode 100644 index 00000000000..4db8a067eab --- /dev/null +++ b/libjava/javax/xml/namespace/NamespaceContext.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_namespace_NamespaceContext__ +#define __javax_xml_namespace_NamespaceContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + } + } + } +} + +class javax::xml::namespace::NamespaceContext : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *) = 0; + virtual ::java::lang::String * getPrefix(::java::lang::String *) = 0; + virtual ::java::util::Iterator * getPrefixes(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_namespace_NamespaceContext__ diff --git a/libjava/javax/xml/namespace/QName.h b/libjava/javax/xml/namespace/QName.h new file mode 100644 index 00000000000..b299f64fe01 --- /dev/null +++ b/libjava/javax/xml/namespace/QName.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_namespace_QName__ +#define __javax_xml_namespace_QName__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + } + } +} + +class javax::xml::namespace::QName : public ::java::lang::Object +{ + +public: + QName(::java::lang::String *, ::java::lang::String *); + QName(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + QName(::java::lang::String *); + virtual ::java::lang::String * getNamespaceURI(); + virtual ::java::lang::String * getLocalPart(); + virtual ::java::lang::String * getPrefix(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::lang::String * toString(); + static ::javax::xml::namespace::QName * valueOf(::java::lang::String *); +private: + static const jlong serialVersionUID = 4418622981026545151LL; + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) namespaceURI; + ::java::lang::String * localPart; + ::java::lang::String * prefix; + ::java::lang::String * qName; +public: // actually package-private + jint hashCode__; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_namespace_QName__ diff --git a/libjava/javax/xml/parsers/DocumentBuilder.h b/libjava/javax/xml/parsers/DocumentBuilder.h new file mode 100644 index 00000000000..ea420ec9d5c --- /dev/null +++ b/libjava/javax/xml/parsers/DocumentBuilder.h @@ -0,0 +1,71 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_parsers_DocumentBuilder__ +#define __javax_xml_parsers_DocumentBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace parsers + { + class DocumentBuilder; + } + namespace validation + { + class Schema; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class Document; + } + } + namespace xml + { + namespace sax + { + class EntityResolver; + class ErrorHandler; + class InputSource; + } + } + } +} + +class javax::xml::parsers::DocumentBuilder : public ::java::lang::Object +{ + +public: // actually protected + DocumentBuilder(); +public: + virtual ::org::w3c::dom::Document * parse(::java::io::InputStream *); + virtual ::org::w3c::dom::Document * parse(::java::io::InputStream *, ::java::lang::String *); + virtual ::org::w3c::dom::Document * parse(::java::lang::String *); + virtual ::org::w3c::dom::Document * parse(::java::io::File *); + virtual ::org::w3c::dom::Document * parse(::org::xml::sax::InputSource *) = 0; + virtual jboolean isNamespaceAware() = 0; + virtual jboolean isValidating() = 0; + virtual void setEntityResolver(::org::xml::sax::EntityResolver *) = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + virtual ::org::w3c::dom::Document * newDocument() = 0; + virtual ::org::w3c::dom::DOMImplementation * getDOMImplementation() = 0; + virtual void reset(); + virtual ::javax::xml::validation::Schema * getSchema(); + virtual jboolean isXIncludeAware(); + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_parsers_DocumentBuilder__ diff --git a/libjava/javax/xml/parsers/DocumentBuilderFactory.h b/libjava/javax/xml/parsers/DocumentBuilderFactory.h new file mode 100644 index 00000000000..3e0e7d454d0 --- /dev/null +++ b/libjava/javax/xml/parsers/DocumentBuilderFactory.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_parsers_DocumentBuilderFactory__ +#define __javax_xml_parsers_DocumentBuilderFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace parsers + { + class DocumentBuilder; + class DocumentBuilderFactory; + } + namespace validation + { + class Schema; + } + } + } +} + +class javax::xml::parsers::DocumentBuilderFactory : public ::java::lang::Object +{ + +public: // actually protected + DocumentBuilderFactory(); +public: + static ::javax::xml::parsers::DocumentBuilderFactory * newInstance(); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint); +public: + virtual ::javax::xml::parsers::DocumentBuilder * newDocumentBuilder() = 0; + virtual void setNamespaceAware(jboolean); + virtual void setValidating(jboolean); + virtual void setIgnoringElementContentWhitespace(jboolean); + virtual void setExpandEntityReferences(jboolean); + virtual void setIgnoringComments(jboolean); + virtual void setCoalescing(jboolean); + virtual jboolean isNamespaceAware(); + virtual jboolean isValidating(); + virtual jboolean isIgnoringElementContentWhitespace(); + virtual jboolean isExpandEntityReferences(); + virtual jboolean isIgnoringComments(); + virtual jboolean isCoalescing(); + virtual void setAttribute(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getAttribute(::java::lang::String *) = 0; + virtual ::javax::xml::validation::Schema * getSchema(); + virtual void setSchema(::javax::xml::validation::Schema *); + virtual jboolean isXIncludeAware(); + virtual void setXIncludeAware(jboolean); + virtual void setFeature(::java::lang::String *, jboolean) = 0; + virtual jboolean getFeature(::java::lang::String *) = 0; +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) namespaceAware; + jboolean validating; + jboolean ignoringElementContentWhitespace; + jboolean expandEntityReferences; + jboolean ignoringComments; + jboolean coalescing; + ::javax::xml::validation::Schema * schema; + jboolean xIncludeAware; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_parsers_DocumentBuilderFactory__ diff --git a/libjava/javax/xml/parsers/FactoryConfigurationError.h b/libjava/javax/xml/parsers/FactoryConfigurationError.h new file mode 100644 index 00000000000..cf01101794b --- /dev/null +++ b/libjava/javax/xml/parsers/FactoryConfigurationError.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_parsers_FactoryConfigurationError__ +#define __javax_xml_parsers_FactoryConfigurationError__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace parsers + { + class FactoryConfigurationError; + } + } + } +} + +class javax::xml::parsers::FactoryConfigurationError : public ::java::lang::Error +{ + +public: + FactoryConfigurationError(); + FactoryConfigurationError(::java::lang::String *); + FactoryConfigurationError(::java::lang::Exception *); + FactoryConfigurationError(::java::lang::Exception *, ::java::lang::String *); + virtual ::java::lang::String * getMessage(); + virtual ::java::lang::Exception * getException(); +private: + ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::lang::Error)))) exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_parsers_FactoryConfigurationError__ diff --git a/libjava/javax/xml/parsers/ParserConfigurationException.h b/libjava/javax/xml/parsers/ParserConfigurationException.h new file mode 100644 index 00000000000..26bc1e8dee8 --- /dev/null +++ b/libjava/javax/xml/parsers/ParserConfigurationException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_parsers_ParserConfigurationException__ +#define __javax_xml_parsers_ParserConfigurationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace parsers + { + class ParserConfigurationException; + } + } + } +} + +class javax::xml::parsers::ParserConfigurationException : public ::java::lang::Exception +{ + +public: + ParserConfigurationException(); + ParserConfigurationException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_parsers_ParserConfigurationException__ diff --git a/libjava/javax/xml/parsers/SAXParser.h b/libjava/javax/xml/parsers/SAXParser.h new file mode 100644 index 00000000000..b24df528734 --- /dev/null +++ b/libjava/javax/xml/parsers/SAXParser.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_parsers_SAXParser__ +#define __javax_xml_parsers_SAXParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace parsers + { + class SAXParser; + } + namespace validation + { + class Schema; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class HandlerBase; + class InputSource; + class Parser; + class XMLReader; + namespace helpers + { + class DefaultHandler; + } + } + } + } +} + +class javax::xml::parsers::SAXParser : public ::java::lang::Object +{ + +public: // actually protected + SAXParser(); +public: + virtual void parse(::java::io::InputStream *, ::org::xml::sax::HandlerBase *); + virtual void parse(::java::io::InputStream *, ::org::xml::sax::HandlerBase *, ::java::lang::String *); + virtual void parse(::java::io::InputStream *, ::org::xml::sax::helpers::DefaultHandler *); + virtual void parse(::java::io::InputStream *, ::org::xml::sax::helpers::DefaultHandler *, ::java::lang::String *); + virtual void parse(::java::lang::String *, ::org::xml::sax::HandlerBase *); + virtual void parse(::java::lang::String *, ::org::xml::sax::helpers::DefaultHandler *); + virtual void parse(::java::io::File *, ::org::xml::sax::HandlerBase *); + virtual void parse(::java::io::File *, ::org::xml::sax::helpers::DefaultHandler *); + virtual void parse(::org::xml::sax::InputSource *, ::org::xml::sax::HandlerBase *); + virtual void parse(::org::xml::sax::InputSource *, ::org::xml::sax::helpers::DefaultHandler *); + virtual ::org::xml::sax::Parser * getParser() = 0; + virtual ::org::xml::sax::XMLReader * getXMLReader() = 0; + virtual jboolean isNamespaceAware() = 0; + virtual jboolean isValidating() = 0; + virtual void setProperty(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual void reset(); + virtual ::javax::xml::validation::Schema * getSchema(); + virtual jboolean isXIncludeAware(); + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_parsers_SAXParser__ diff --git a/libjava/javax/xml/parsers/SAXParserFactory.h b/libjava/javax/xml/parsers/SAXParserFactory.h new file mode 100644 index 00000000000..42a8740b587 --- /dev/null +++ b/libjava/javax/xml/parsers/SAXParserFactory.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_parsers_SAXParserFactory__ +#define __javax_xml_parsers_SAXParserFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace parsers + { + class SAXParser; + class SAXParserFactory; + } + namespace validation + { + class Schema; + } + } + } +} + +class javax::xml::parsers::SAXParserFactory : public ::java::lang::Object +{ + +public: // actually protected + SAXParserFactory(); +public: + static ::javax::xml::parsers::SAXParserFactory * newInstance(); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint); +public: + virtual ::javax::xml::parsers::SAXParser * newSAXParser() = 0; + virtual void setNamespaceAware(jboolean); + virtual void setValidating(jboolean); + virtual jboolean isNamespaceAware(); + virtual jboolean isValidating(); + virtual void setFeature(::java::lang::String *, jboolean) = 0; + virtual jboolean getFeature(::java::lang::String *) = 0; + virtual ::javax::xml::validation::Schema * getSchema(); + virtual void setSchema(::javax::xml::validation::Schema *); + virtual jboolean isXIncludeAware(); + virtual void setXIncludeAware(jboolean); +private: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) validating; + jboolean namespaceAware; + ::javax::xml::validation::Schema * schema; + jboolean xIncludeAware; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_parsers_SAXParserFactory__ diff --git a/libjava/javax/xml/stream/EventFilter.h b/libjava/javax/xml/stream/EventFilter.h new file mode 100644 index 00000000000..92cdd248063 --- /dev/null +++ b/libjava/javax/xml/stream/EventFilter.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_EventFilter__ +#define __javax_xml_stream_EventFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class EventFilter; + namespace events + { + class XMLEvent; + } + } + } + } +} + +class javax::xml::stream::EventFilter : public ::java::lang::Object +{ + +public: + virtual jboolean accept(::javax::xml::stream::events::XMLEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_EventFilter__ diff --git a/libjava/javax/xml/stream/FactoryConfigurationError.h b/libjava/javax/xml/stream/FactoryConfigurationError.h new file mode 100644 index 00000000000..78ecdf6a06e --- /dev/null +++ b/libjava/javax/xml/stream/FactoryConfigurationError.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_FactoryConfigurationError__ +#define __javax_xml_stream_FactoryConfigurationError__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class FactoryConfigurationError; + } + } + } +} + +class javax::xml::stream::FactoryConfigurationError : public ::java::lang::Error +{ + +public: + FactoryConfigurationError(); + FactoryConfigurationError(::java::lang::Exception *); + FactoryConfigurationError(::java::lang::Exception *, ::java::lang::String *); + FactoryConfigurationError(::java::lang::String *, ::java::lang::Exception *); + FactoryConfigurationError(::java::lang::String *); + virtual ::java::lang::Exception * getException(); + virtual ::java::lang::String * getMessage(); +private: + ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::lang::Error)))) exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_stream_FactoryConfigurationError__ diff --git a/libjava/javax/xml/stream/Location.h b/libjava/javax/xml/stream/Location.h new file mode 100644 index 00000000000..c997a80118d --- /dev/null +++ b/libjava/javax/xml/stream/Location.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_Location__ +#define __javax_xml_stream_Location__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + } + } + } +} + +class javax::xml::stream::Location : public ::java::lang::Object +{ + +public: + virtual jint getLineNumber() = 0; + virtual jint getColumnNumber() = 0; + virtual jint getCharacterOffset() = 0; + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_Location__ diff --git a/libjava/javax/xml/stream/StreamFilter.h b/libjava/javax/xml/stream/StreamFilter.h new file mode 100644 index 00000000000..82daf6ad5fc --- /dev/null +++ b/libjava/javax/xml/stream/StreamFilter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_StreamFilter__ +#define __javax_xml_stream_StreamFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class StreamFilter; + class XMLStreamReader; + } + } + } +} + +class javax::xml::stream::StreamFilter : public ::java::lang::Object +{ + +public: + virtual jboolean accept(::javax::xml::stream::XMLStreamReader *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_StreamFilter__ diff --git a/libjava/javax/xml/stream/XMLEventFactory.h b/libjava/javax/xml/stream/XMLEventFactory.h new file mode 100644 index 00000000000..8c8e4fe29c6 --- /dev/null +++ b/libjava/javax/xml/stream/XMLEventFactory.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLEventFactory__ +#define __javax_xml_stream_XMLEventFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace stream + { + class Location; + class XMLEventFactory; + namespace events + { + class Attribute; + class Characters; + class Comment; + class DTD; + class EndDocument; + class EndElement; + class EntityDeclaration; + class EntityReference; + class Namespace; + class ProcessingInstruction; + class StartDocument; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::XMLEventFactory : public ::java::lang::Object +{ + +public: // actually protected + XMLEventFactory(); +public: + static ::javax::xml::stream::XMLEventFactory * newInstance(); +public: // actually package-private + static ::javax::xml::stream::XMLEventFactory * newInstance(::java::lang::String *, ::java::lang::ClassLoader *); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint); +public: + virtual void setLocation(::javax::xml::stream::Location *) = 0; + virtual ::javax::xml::stream::events::Attribute * createAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::Attribute * createAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::Attribute * createAttribute(::javax::xml::namespace::QName *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::Namespace * createNamespace(::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::Namespace * createNamespace(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::StartElement * createStartElement(::javax::xml::namespace::QName *, ::java::util::Iterator *, ::java::util::Iterator *) = 0; + virtual ::javax::xml::stream::events::StartElement * createStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::StartElement * createStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Iterator *, ::java::util::Iterator *) = 0; + virtual ::javax::xml::stream::events::StartElement * createStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Iterator *, ::java::util::Iterator *, ::javax::xml::namespace::NamespaceContext *) = 0; + virtual ::javax::xml::stream::events::EndElement * createEndElement(::javax::xml::namespace::QName *, ::java::util::Iterator *) = 0; + virtual ::javax::xml::stream::events::EndElement * createEndElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::EndElement * createEndElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Iterator *) = 0; + virtual ::javax::xml::stream::events::Characters * createCharacters(::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::Characters * createCData(::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::Characters * createSpace(::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::Characters * createIgnorableSpace(::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::StartDocument * createStartDocument() = 0; + virtual ::javax::xml::stream::events::StartDocument * createStartDocument(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual ::javax::xml::stream::events::StartDocument * createStartDocument(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::StartDocument * createStartDocument(::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::EndDocument * createEndDocument() = 0; + virtual ::javax::xml::stream::events::EntityReference * createEntityReference(::java::lang::String *, ::javax::xml::stream::events::EntityDeclaration *) = 0; + virtual ::javax::xml::stream::events::Comment * createComment(::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::ProcessingInstruction * createProcessingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::events::DTD * createDTD(::java::lang::String *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_stream_XMLEventFactory__ diff --git a/libjava/javax/xml/stream/XMLEventReader.h b/libjava/javax/xml/stream/XMLEventReader.h new file mode 100644 index 00000000000..e4ef90a6a9b --- /dev/null +++ b/libjava/javax/xml/stream/XMLEventReader.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLEventReader__ +#define __javax_xml_stream_XMLEventReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class XMLEventReader; + namespace events + { + class XMLEvent; + } + } + } + } +} + +class javax::xml::stream::XMLEventReader : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::stream::events::XMLEvent * nextEvent() = 0; + virtual jboolean hasNext() = 0; + virtual ::javax::xml::stream::events::XMLEvent * peek() = 0; + virtual ::java::lang::String * getElementText() = 0; + virtual ::javax::xml::stream::events::XMLEvent * nextTag() = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual void close() = 0; + virtual ::java::lang::Object * next() = 0; + virtual void remove() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_XMLEventReader__ diff --git a/libjava/javax/xml/stream/XMLEventWriter.h b/libjava/javax/xml/stream/XMLEventWriter.h new file mode 100644 index 00000000000..7762e629b4b --- /dev/null +++ b/libjava/javax/xml/stream/XMLEventWriter.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLEventWriter__ +#define __javax_xml_stream_XMLEventWriter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + } + namespace stream + { + class XMLEventReader; + class XMLEventWriter; + namespace events + { + class XMLEvent; + } + } + } + } +} + +class javax::xml::stream::XMLEventWriter : public ::java::lang::Object +{ + +public: + virtual void flush() = 0; + virtual void close() = 0; + virtual void add(::javax::xml::stream::events::XMLEvent *) = 0; + virtual void add(::javax::xml::stream::XMLEventReader *) = 0; + virtual ::java::lang::String * getPrefix(::java::lang::String *) = 0; + virtual void setPrefix(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setDefaultNamespace(::java::lang::String *) = 0; + virtual void setNamespaceContext(::javax::xml::namespace::NamespaceContext *) = 0; + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_XMLEventWriter__ diff --git a/libjava/javax/xml/stream/XMLInputFactory.h b/libjava/javax/xml/stream/XMLInputFactory.h new file mode 100644 index 00000000000..13239f143cc --- /dev/null +++ b/libjava/javax/xml/stream/XMLInputFactory.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLInputFactory__ +#define __javax_xml_stream_XMLInputFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class EventFilter; + class StreamFilter; + class XMLEventReader; + class XMLInputFactory; + class XMLReporter; + class XMLResolver; + class XMLStreamReader; + namespace util + { + class XMLEventAllocator; + } + } + namespace transform + { + class Source; + } + } + } +} + +class javax::xml::stream::XMLInputFactory : public ::java::lang::Object +{ + +public: // actually protected + XMLInputFactory(); +public: + static ::javax::xml::stream::XMLInputFactory * newInstance(); + static ::javax::xml::stream::XMLInputFactory * newInstance(::java::lang::String *, ::java::lang::ClassLoader *); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint); +public: + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::io::Reader *) = 0; + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::javax::xml::transform::Source *) = 0; + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::io::InputStream *) = 0; + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::io::InputStream *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::lang::String *, ::java::io::InputStream *) = 0; + virtual ::javax::xml::stream::XMLStreamReader * createXMLStreamReader(::java::lang::String *, ::java::io::Reader *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::io::Reader *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::lang::String *, ::java::io::Reader *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::javax::xml::stream::XMLStreamReader *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::javax::xml::transform::Source *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::io::InputStream *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::io::InputStream *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createXMLEventReader(::java::lang::String *, ::java::io::InputStream *) = 0; + virtual ::javax::xml::stream::XMLStreamReader * createFilteredReader(::javax::xml::stream::XMLStreamReader *, ::javax::xml::stream::StreamFilter *) = 0; + virtual ::javax::xml::stream::XMLEventReader * createFilteredReader(::javax::xml::stream::XMLEventReader *, ::javax::xml::stream::EventFilter *) = 0; + virtual ::javax::xml::stream::XMLResolver * getXMLResolver() = 0; + virtual void setXMLResolver(::javax::xml::stream::XMLResolver *) = 0; + virtual ::javax::xml::stream::XMLReporter * getXMLReporter() = 0; + virtual void setXMLReporter(::javax::xml::stream::XMLReporter *) = 0; + virtual void setProperty(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual jboolean isPropertySupported(::java::lang::String *) = 0; + virtual void setEventAllocator(::javax::xml::stream::util::XMLEventAllocator *) = 0; + virtual ::javax::xml::stream::util::XMLEventAllocator * getEventAllocator() = 0; + static ::java::lang::String * IS_NAMESPACE_AWARE; + static ::java::lang::String * IS_VALIDATING; + static ::java::lang::String * IS_COALESCING; + static ::java::lang::String * IS_REPLACING_ENTITY_REFERENCES; + static ::java::lang::String * IS_SUPPORTING_EXTERNAL_ENTITIES; + static ::java::lang::String * SUPPORT_DTD; + static ::java::lang::String * REPORTER; + static ::java::lang::String * RESOLVER; + static ::java::lang::String * ALLOCATOR; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_stream_XMLInputFactory__ diff --git a/libjava/javax/xml/stream/XMLOutputFactory.h b/libjava/javax/xml/stream/XMLOutputFactory.h new file mode 100644 index 00000000000..362fac935f4 --- /dev/null +++ b/libjava/javax/xml/stream/XMLOutputFactory.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLOutputFactory__ +#define __javax_xml_stream_XMLOutputFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class XMLEventWriter; + class XMLInputFactory; + class XMLOutputFactory; + class XMLStreamWriter; + } + namespace transform + { + class Result; + } + } + } +} + +class javax::xml::stream::XMLOutputFactory : public ::java::lang::Object +{ + +public: // actually protected + XMLOutputFactory(); +public: + static ::javax::xml::stream::XMLOutputFactory * newInstance(); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint); +public: + static ::javax::xml::stream::XMLInputFactory * newInstance(::java::lang::String *, ::java::lang::ClassLoader *); + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::Writer *) = 0; + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *) = 0; + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::java::io::OutputStream *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::XMLStreamWriter * createXMLStreamWriter(::javax::xml::transform::Result *) = 0; + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::javax::xml::transform::Result *) = 0; + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::java::io::OutputStream *) = 0; + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::java::io::OutputStream *, ::java::lang::String *) = 0; + virtual ::javax::xml::stream::XMLEventWriter * createXMLEventWriter(::java::io::Writer *) = 0; + virtual void setProperty(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual jboolean isPropertySupported(::java::lang::String *) = 0; + static ::java::lang::String * IS_REPAIRING_NAMESPACES; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_stream_XMLOutputFactory__ diff --git a/libjava/javax/xml/stream/XMLReporter.h b/libjava/javax/xml/stream/XMLReporter.h new file mode 100644 index 00000000000..4416f840873 --- /dev/null +++ b/libjava/javax/xml/stream/XMLReporter.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLReporter__ +#define __javax_xml_stream_XMLReporter__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + class XMLReporter; + } + } + } +} + +class javax::xml::stream::XMLReporter : public ::java::lang::Object +{ + +public: + virtual void report(::java::lang::String *, ::java::lang::String *, ::java::lang::Object *, ::javax::xml::stream::Location *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_XMLReporter__ diff --git a/libjava/javax/xml/stream/XMLResolver.h b/libjava/javax/xml/stream/XMLResolver.h new file mode 100644 index 00000000000..254dc2ca2a8 --- /dev/null +++ b/libjava/javax/xml/stream/XMLResolver.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLResolver__ +#define __javax_xml_stream_XMLResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class XMLResolver; + } + } + } +} + +class javax::xml::stream::XMLResolver : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * resolveEntity(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_XMLResolver__ diff --git a/libjava/javax/xml/stream/XMLStreamConstants.h b/libjava/javax/xml/stream/XMLStreamConstants.h new file mode 100644 index 00000000000..d042a7cd0ee --- /dev/null +++ b/libjava/javax/xml/stream/XMLStreamConstants.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLStreamConstants__ +#define __javax_xml_stream_XMLStreamConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class XMLStreamConstants; + } + } + } +} + +class javax::xml::stream::XMLStreamConstants : public ::java::lang::Object +{ + +public: + static const jint START_ELEMENT = 1; + static const jint END_ELEMENT = 2; + static const jint PROCESSING_INSTRUCTION = 3; + static const jint CHARACTERS = 4; + static const jint COMMENT = 5; + static const jint SPACE = 6; + static const jint START_DOCUMENT = 7; + static const jint END_DOCUMENT = 8; + static const jint ENTITY_REFERENCE = 9; + static const jint ATTRIBUTE = 10; + static const jint DTD = 11; + static const jint CDATA = 12; + static const jint NAMESPACE = 13; + static const jint NOTATION_DECLARATION = 14; + static const jint ENTITY_DECLARATION = 15; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_XMLStreamConstants__ diff --git a/libjava/javax/xml/stream/XMLStreamException.h b/libjava/javax/xml/stream/XMLStreamException.h new file mode 100644 index 00000000000..71acc39c0b4 --- /dev/null +++ b/libjava/javax/xml/stream/XMLStreamException.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLStreamException__ +#define __javax_xml_stream_XMLStreamException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class Location; + class XMLStreamException; + } + } + } +} + +class javax::xml::stream::XMLStreamException : public ::java::lang::Exception +{ + +public: + XMLStreamException(); + XMLStreamException(::java::lang::String *); + XMLStreamException(::java::lang::Throwable *); + XMLStreamException(::java::lang::String *, ::java::lang::Throwable *); + XMLStreamException(::java::lang::String *, ::javax::xml::stream::Location *, ::java::lang::Throwable *); + XMLStreamException(::java::lang::String *, ::javax::xml::stream::Location *); + virtual ::java::lang::Throwable * getNestedException(); + virtual ::javax::xml::stream::Location * getLocation(); +public: // actually protected + ::javax::xml::stream::Location * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) location; + ::java::lang::Throwable * nested; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_stream_XMLStreamException__ diff --git a/libjava/javax/xml/stream/XMLStreamReader.h b/libjava/javax/xml/stream/XMLStreamReader.h new file mode 100644 index 00000000000..b0632932093 --- /dev/null +++ b/libjava/javax/xml/stream/XMLStreamReader.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLStreamReader__ +#define __javax_xml_stream_XMLStreamReader__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace stream + { + class Location; + class XMLStreamReader; + } + } + } +} + +class javax::xml::stream::XMLStreamReader : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual jint next() = 0; + virtual void require(jint, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getElementText() = 0; + virtual jint nextTag() = 0; + virtual jboolean hasNext() = 0; + virtual void close() = 0; + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isWhiteSpace() = 0; + virtual ::java::lang::String * getAttributeValue(::java::lang::String *, ::java::lang::String *) = 0; + virtual jint getAttributeCount() = 0; + virtual ::javax::xml::namespace::QName * getAttributeName(jint) = 0; + virtual ::java::lang::String * getAttributeNamespace(jint) = 0; + virtual ::java::lang::String * getAttributeLocalName(jint) = 0; + virtual ::java::lang::String * getAttributePrefix(jint) = 0; + virtual ::java::lang::String * getAttributeType(jint) = 0; + virtual ::java::lang::String * getAttributeValue(jint) = 0; + virtual jboolean isAttributeSpecified(jint) = 0; + virtual jint getNamespaceCount() = 0; + virtual ::java::lang::String * getNamespacePrefix(jint) = 0; + virtual ::java::lang::String * getNamespaceURI(jint) = 0; + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext() = 0; + virtual jint getEventType() = 0; + virtual ::java::lang::String * getText() = 0; + virtual JArray< jchar > * getTextCharacters() = 0; + virtual jint getTextCharacters(jint, JArray< jchar > *, jint, jint) = 0; + virtual jint getTextStart() = 0; + virtual jint getTextLength() = 0; + virtual ::java::lang::String * getEncoding() = 0; + virtual jboolean hasText() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual ::javax::xml::namespace::QName * getName() = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasName() = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual ::java::lang::String * getVersion() = 0; + virtual jboolean isStandalone() = 0; + virtual jboolean standaloneSet() = 0; + virtual ::java::lang::String * getCharacterEncodingScheme() = 0; + virtual ::java::lang::String * getPITarget() = 0; + virtual ::java::lang::String * getPIData() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_XMLStreamReader__ diff --git a/libjava/javax/xml/stream/XMLStreamWriter.h b/libjava/javax/xml/stream/XMLStreamWriter.h new file mode 100644 index 00000000000..74230ca7c82 --- /dev/null +++ b/libjava/javax/xml/stream/XMLStreamWriter.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_XMLStreamWriter__ +#define __javax_xml_stream_XMLStreamWriter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + } + namespace stream + { + class XMLStreamWriter; + } + } + } +} + +class javax::xml::stream::XMLStreamWriter : public ::java::lang::Object +{ + +public: + virtual void writeStartElement(::java::lang::String *) = 0; + virtual void writeStartElement(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeStartElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeEmptyElement(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeEmptyElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeEmptyElement(::java::lang::String *) = 0; + virtual void writeEndElement() = 0; + virtual void writeEndDocument() = 0; + virtual void close() = 0; + virtual void flush() = 0; + virtual void writeAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeNamespace(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeDefaultNamespace(::java::lang::String *) = 0; + virtual void writeComment(::java::lang::String *) = 0; + virtual void writeProcessingInstruction(::java::lang::String *) = 0; + virtual void writeProcessingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeCData(::java::lang::String *) = 0; + virtual void writeDTD(::java::lang::String *) = 0; + virtual void writeEntityRef(::java::lang::String *) = 0; + virtual void writeStartDocument() = 0; + virtual void writeStartDocument(::java::lang::String *) = 0; + virtual void writeStartDocument(::java::lang::String *, ::java::lang::String *) = 0; + virtual void writeCharacters(::java::lang::String *) = 0; + virtual void writeCharacters(JArray< jchar > *, jint, jint) = 0; + virtual ::java::lang::String * getPrefix(::java::lang::String *) = 0; + virtual void setPrefix(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setDefaultNamespace(::java::lang::String *) = 0; + virtual void setNamespaceContext(::javax::xml::namespace::NamespaceContext *) = 0; + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext() = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_XMLStreamWriter__ diff --git a/libjava/javax/xml/stream/events/Attribute.h b/libjava/javax/xml/stream/events/Attribute.h new file mode 100644 index 00000000000..7362510c072 --- /dev/null +++ b/libjava/javax/xml/stream/events/Attribute.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_Attribute__ +#define __javax_xml_stream_events_Attribute__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Attribute; + class Characters; + class EndElement; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::Attribute : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::namespace::QName * getName() = 0; + virtual ::java::lang::String * getValue() = 0; + virtual ::javax::xml::namespace::QName * getDTDType() = 0; + virtual jboolean isSpecified() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_Attribute__ diff --git a/libjava/javax/xml/stream/events/Characters.h b/libjava/javax/xml/stream/events/Characters.h new file mode 100644 index 00000000000..f1511881f0e --- /dev/null +++ b/libjava/javax/xml/stream/events/Characters.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_Characters__ +#define __javax_xml_stream_events_Characters__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::Characters : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getData() = 0; + virtual jboolean isWhiteSpace() = 0; + virtual jboolean isCData() = 0; + virtual jboolean isIgnorableWhiteSpace() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_Characters__ diff --git a/libjava/javax/xml/stream/events/Comment.h b/libjava/javax/xml/stream/events/Comment.h new file mode 100644 index 00000000000..1f945ea19fc --- /dev/null +++ b/libjava/javax/xml/stream/events/Comment.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_Comment__ +#define __javax_xml_stream_events_Comment__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class Comment; + class EndElement; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::Comment : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getText() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_Comment__ diff --git a/libjava/javax/xml/stream/events/DTD.h b/libjava/javax/xml/stream/events/DTD.h new file mode 100644 index 00000000000..daaa23fa124 --- /dev/null +++ b/libjava/javax/xml/stream/events/DTD.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_DTD__ +#define __javax_xml_stream_events_DTD__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class DTD; + class EndElement; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::DTD : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getDocumentTypeDeclaration() = 0; + virtual ::java::lang::Object * getProcessedDTD() = 0; + virtual ::java::util::List * getNotations() = 0; + virtual ::java::util::List * getEntities() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_DTD__ diff --git a/libjava/javax/xml/stream/events/EndDocument.h b/libjava/javax/xml/stream/events/EndDocument.h new file mode 100644 index 00000000000..984585490bd --- /dev/null +++ b/libjava/javax/xml/stream/events/EndDocument.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_EndDocument__ +#define __javax_xml_stream_events_EndDocument__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndDocument; + class EndElement; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::EndDocument : public ::java::lang::Object +{ + +public: + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_EndDocument__ diff --git a/libjava/javax/xml/stream/events/EndElement.h b/libjava/javax/xml/stream/events/EndElement.h new file mode 100644 index 00000000000..86825d6e463 --- /dev/null +++ b/libjava/javax/xml/stream/events/EndElement.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_EndElement__ +#define __javax_xml_stream_events_EndElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::EndElement : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::namespace::QName * getName() = 0; + virtual ::java::util::Iterator * getNamespaces() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_EndElement__ diff --git a/libjava/javax/xml/stream/events/EntityDeclaration.h b/libjava/javax/xml/stream/events/EntityDeclaration.h new file mode 100644 index 00000000000..98eda7a3ea5 --- /dev/null +++ b/libjava/javax/xml/stream/events/EntityDeclaration.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_EntityDeclaration__ +#define __javax_xml_stream_events_EntityDeclaration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class EntityDeclaration; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::EntityDeclaration : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::java::lang::String * getNotationName() = 0; + virtual ::java::lang::String * getReplacementText() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_EntityDeclaration__ diff --git a/libjava/javax/xml/stream/events/EntityReference.h b/libjava/javax/xml/stream/events/EntityReference.h new file mode 100644 index 00000000000..ba95d54584b --- /dev/null +++ b/libjava/javax/xml/stream/events/EntityReference.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_EntityReference__ +#define __javax_xml_stream_events_EntityReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class EntityDeclaration; + class EntityReference; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::EntityReference : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::stream::events::EntityDeclaration * getDeclaration() = 0; + virtual ::java::lang::String * getName() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_EntityReference__ diff --git a/libjava/javax/xml/stream/events/Namespace.h b/libjava/javax/xml/stream/events/Namespace.h new file mode 100644 index 00000000000..5690c2305dc --- /dev/null +++ b/libjava/javax/xml/stream/events/Namespace.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_Namespace__ +#define __javax_xml_stream_events_Namespace__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class Namespace; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::Namespace : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getPrefix() = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual jboolean isDefaultNamespaceDeclaration() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_Namespace__ diff --git a/libjava/javax/xml/stream/events/NotationDeclaration.h b/libjava/javax/xml/stream/events/NotationDeclaration.h new file mode 100644 index 00000000000..e5c6ba0183a --- /dev/null +++ b/libjava/javax/xml/stream/events/NotationDeclaration.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_NotationDeclaration__ +#define __javax_xml_stream_events_NotationDeclaration__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class NotationDeclaration; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::NotationDeclaration : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName() = 0; + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_NotationDeclaration__ diff --git a/libjava/javax/xml/stream/events/ProcessingInstruction.h b/libjava/javax/xml/stream/events/ProcessingInstruction.h new file mode 100644 index 00000000000..3a5f9944fa6 --- /dev/null +++ b/libjava/javax/xml/stream/events/ProcessingInstruction.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_ProcessingInstruction__ +#define __javax_xml_stream_events_ProcessingInstruction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class ProcessingInstruction; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::ProcessingInstruction : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getTarget() = 0; + virtual ::java::lang::String * getData() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_ProcessingInstruction__ diff --git a/libjava/javax/xml/stream/events/StartDocument.h b/libjava/javax/xml/stream/events/StartDocument.h new file mode 100644 index 00000000000..2658939a791 --- /dev/null +++ b/libjava/javax/xml/stream/events/StartDocument.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_StartDocument__ +#define __javax_xml_stream_events_StartDocument__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class StartDocument; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::StartDocument : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getSystemId() = 0; + virtual ::java::lang::String * getCharacterEncodingScheme() = 0; + virtual jboolean encodingSet() = 0; + virtual jboolean isStandalone() = 0; + virtual jboolean standaloneSet() = 0; + virtual ::java::lang::String * getVersion() = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_StartDocument__ diff --git a/libjava/javax/xml/stream/events/StartElement.h b/libjava/javax/xml/stream/events/StartElement.h new file mode 100644 index 00000000000..0695267421d --- /dev/null +++ b/libjava/javax/xml/stream/events/StartElement.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_StartElement__ +#define __javax_xml_stream_events_StartElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Attribute; + class Characters; + class EndElement; + class StartElement; + } + } + } + } +} + +class javax::xml::stream::events::StartElement : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::namespace::QName * getName() = 0; + virtual ::java::util::Iterator * getAttributes() = 0; + virtual ::java::util::Iterator * getNamespaces() = 0; + virtual ::javax::xml::stream::events::Attribute * getAttributeByName(::javax::xml::namespace::QName *) = 0; + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext() = 0; + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *) = 0; + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_StartElement__ diff --git a/libjava/javax/xml/stream/events/XMLEvent.h b/libjava/javax/xml/stream/events/XMLEvent.h new file mode 100644 index 00000000000..54d775d41e0 --- /dev/null +++ b/libjava/javax/xml/stream/events/XMLEvent.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_events_XMLEvent__ +#define __javax_xml_stream_events_XMLEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace stream + { + class Location; + namespace events + { + class Characters; + class EndElement; + class StartElement; + class XMLEvent; + } + } + } + } +} + +class javax::xml::stream::events::XMLEvent : public ::java::lang::Object +{ + +public: + virtual jint getEventType() = 0; + virtual ::javax::xml::stream::Location * getLocation() = 0; + virtual jboolean isStartElement() = 0; + virtual jboolean isAttribute() = 0; + virtual jboolean isNamespace() = 0; + virtual jboolean isEndElement() = 0; + virtual jboolean isEntityReference() = 0; + virtual jboolean isProcessingInstruction() = 0; + virtual jboolean isCharacters() = 0; + virtual jboolean isStartDocument() = 0; + virtual jboolean isEndDocument() = 0; + virtual ::javax::xml::stream::events::StartElement * asStartElement() = 0; + virtual ::javax::xml::stream::events::EndElement * asEndElement() = 0; + virtual ::javax::xml::stream::events::Characters * asCharacters() = 0; + virtual ::javax::xml::namespace::QName * getSchemaType() = 0; + virtual void writeAsEncodedUnicode(::java::io::Writer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_events_XMLEvent__ diff --git a/libjava/javax/xml/stream/util/EventReaderDelegate.h b/libjava/javax/xml/stream/util/EventReaderDelegate.h new file mode 100644 index 00000000000..fc1bb75bbfa --- /dev/null +++ b/libjava/javax/xml/stream/util/EventReaderDelegate.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_util_EventReaderDelegate__ +#define __javax_xml_stream_util_EventReaderDelegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class XMLEventReader; + namespace events + { + class XMLEvent; + } + namespace util + { + class EventReaderDelegate; + } + } + } + } +} + +class javax::xml::stream::util::EventReaderDelegate : public ::java::lang::Object +{ + +public: + EventReaderDelegate(); + EventReaderDelegate(::javax::xml::stream::XMLEventReader *); + virtual void setParent(::javax::xml::stream::XMLEventReader *); + virtual ::javax::xml::stream::XMLEventReader * getParent(); + virtual ::javax::xml::stream::events::XMLEvent * nextEvent(); + virtual ::java::lang::Object * next(); + virtual jboolean hasNext(); + virtual ::javax::xml::stream::events::XMLEvent * peek(); + virtual ::java::lang::String * getElementText(); + virtual ::javax::xml::stream::events::XMLEvent * nextTag(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void close(); + virtual void remove(); +private: + ::javax::xml::stream::XMLEventReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_stream_util_EventReaderDelegate__ diff --git a/libjava/javax/xml/stream/util/ReaderDelegate.h b/libjava/javax/xml/stream/util/ReaderDelegate.h new file mode 100644 index 00000000000..4235d0dcd14 --- /dev/null +++ b/libjava/javax/xml/stream/util/ReaderDelegate.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_util_ReaderDelegate__ +#define __javax_xml_stream_util_ReaderDelegate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace stream + { + class Location; + class XMLStreamReader; + namespace util + { + class ReaderDelegate; + } + } + } + } +} + +class javax::xml::stream::util::ReaderDelegate : public ::java::lang::Object +{ + +public: + ReaderDelegate(); + ReaderDelegate(::javax::xml::stream::XMLStreamReader *); + virtual void setParent(::javax::xml::stream::XMLStreamReader *); + virtual ::javax::xml::stream::XMLStreamReader * getParent(); + virtual jint next(); + virtual jint nextTag(); + virtual ::java::lang::String * getElementText(); + virtual void require(jint, ::java::lang::String *, ::java::lang::String *); + virtual jboolean hasNext(); + virtual void close(); + virtual ::java::lang::String * getNamespaceURI(::java::lang::String *); + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext(); + virtual jboolean isStartElement(); + virtual jboolean isEndElement(); + virtual jboolean isCharacters(); + virtual jboolean isWhiteSpace(); + virtual ::java::lang::String * getAttributeValue(::java::lang::String *, ::java::lang::String *); + virtual jint getAttributeCount(); + virtual ::javax::xml::namespace::QName * getAttributeName(jint); + virtual ::java::lang::String * getAttributePrefix(jint); + virtual ::java::lang::String * getAttributeNamespace(jint); + virtual ::java::lang::String * getAttributeLocalName(jint); + virtual ::java::lang::String * getAttributeType(jint); + virtual ::java::lang::String * getAttributeValue(jint); + virtual jboolean isAttributeSpecified(jint); + virtual jint getNamespaceCount(); + virtual ::java::lang::String * getNamespacePrefix(jint); + virtual ::java::lang::String * getNamespaceURI(jint); + virtual jint getEventType(); + virtual ::java::lang::String * getText(); + virtual jint getTextCharacters(jint, JArray< jchar > *, jint, jint); + virtual JArray< jchar > * getTextCharacters(); + virtual jint getTextStart(); + virtual jint getTextLength(); + virtual ::java::lang::String * getEncoding(); + virtual jboolean hasText(); + virtual ::javax::xml::stream::Location * getLocation(); + virtual ::javax::xml::namespace::QName * getName(); + virtual ::java::lang::String * getLocalName(); + virtual jboolean hasName(); + virtual ::java::lang::String * getNamespaceURI(); + virtual ::java::lang::String * getPrefix(); + virtual ::java::lang::String * getVersion(); + virtual jboolean isStandalone(); + virtual jboolean standaloneSet(); + virtual ::java::lang::String * getCharacterEncodingScheme(); + virtual ::java::lang::String * getPITarget(); + virtual ::java::lang::String * getPIData(); + virtual ::java::lang::Object * getProperty(::java::lang::String *); +private: + ::javax::xml::stream::XMLStreamReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_stream_util_ReaderDelegate__ diff --git a/libjava/javax/xml/stream/util/XMLEventAllocator.h b/libjava/javax/xml/stream/util/XMLEventAllocator.h new file mode 100644 index 00000000000..ac872525c28 --- /dev/null +++ b/libjava/javax/xml/stream/util/XMLEventAllocator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_util_XMLEventAllocator__ +#define __javax_xml_stream_util_XMLEventAllocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + class XMLStreamReader; + namespace events + { + class XMLEvent; + } + namespace util + { + class XMLEventAllocator; + class XMLEventConsumer; + } + } + } + } +} + +class javax::xml::stream::util::XMLEventAllocator : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::stream::util::XMLEventAllocator * newInstance() = 0; + virtual ::javax::xml::stream::events::XMLEvent * allocate(::javax::xml::stream::XMLStreamReader *) = 0; + virtual void allocate(::javax::xml::stream::XMLStreamReader *, ::javax::xml::stream::util::XMLEventConsumer *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_util_XMLEventAllocator__ diff --git a/libjava/javax/xml/stream/util/XMLEventConsumer.h b/libjava/javax/xml/stream/util/XMLEventConsumer.h new file mode 100644 index 00000000000..7fb1fcf31e4 --- /dev/null +++ b/libjava/javax/xml/stream/util/XMLEventConsumer.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_stream_util_XMLEventConsumer__ +#define __javax_xml_stream_util_XMLEventConsumer__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace stream + { + namespace events + { + class XMLEvent; + } + namespace util + { + class XMLEventConsumer; + } + } + } + } +} + +class javax::xml::stream::util::XMLEventConsumer : public ::java::lang::Object +{ + +public: + virtual void add(::javax::xml::stream::events::XMLEvent *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_stream_util_XMLEventConsumer__ diff --git a/libjava/javax/xml/transform/ErrorListener.h b/libjava/javax/xml/transform/ErrorListener.h new file mode 100644 index 00000000000..ec91067cca6 --- /dev/null +++ b/libjava/javax/xml/transform/ErrorListener.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_ErrorListener__ +#define __javax_xml_transform_ErrorListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class TransformerException; + } + } + } +} + +class javax::xml::transform::ErrorListener : public ::java::lang::Object +{ + +public: + virtual void warning(::javax::xml::transform::TransformerException *) = 0; + virtual void error(::javax::xml::transform::TransformerException *) = 0; + virtual void fatalError(::javax::xml::transform::TransformerException *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_ErrorListener__ diff --git a/libjava/javax/xml/transform/OutputKeys.h b/libjava/javax/xml/transform/OutputKeys.h new file mode 100644 index 00000000000..d53a11f30cb --- /dev/null +++ b/libjava/javax/xml/transform/OutputKeys.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_OutputKeys__ +#define __javax_xml_transform_OutputKeys__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class OutputKeys; + } + } + } +} + +class javax::xml::transform::OutputKeys : public ::java::lang::Object +{ + + OutputKeys(); +public: + static ::java::lang::String * METHOD; + static ::java::lang::String * VERSION; + static ::java::lang::String * ENCODING; + static ::java::lang::String * OMIT_XML_DECLARATION; + static ::java::lang::String * STANDALONE; + static ::java::lang::String * DOCTYPE_PUBLIC; + static ::java::lang::String * DOCTYPE_SYSTEM; + static ::java::lang::String * CDATA_SECTION_ELEMENTS; + static ::java::lang::String * INDENT; + static ::java::lang::String * MEDIA_TYPE; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_OutputKeys__ diff --git a/libjava/javax/xml/transform/Result.h b/libjava/javax/xml/transform/Result.h new file mode 100644 index 00000000000..eb4fe02bd9e --- /dev/null +++ b/libjava/javax/xml/transform/Result.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_Result__ +#define __javax_xml_transform_Result__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + } + } + } +} + +class javax::xml::transform::Result : public ::java::lang::Object +{ + +public: + virtual void setSystemId(::java::lang::String *) = 0; + virtual ::java::lang::String * getSystemId() = 0; + static ::java::lang::String * PI_DISABLE_OUTPUT_ESCAPING; + static ::java::lang::String * PI_ENABLE_OUTPUT_ESCAPING; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_Result__ diff --git a/libjava/javax/xml/transform/Source.h b/libjava/javax/xml/transform/Source.h new file mode 100644 index 00000000000..72e2c4f45a6 --- /dev/null +++ b/libjava/javax/xml/transform/Source.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_Source__ +#define __javax_xml_transform_Source__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Source; + } + } + } +} + +class javax::xml::transform::Source : public ::java::lang::Object +{ + +public: + virtual void setSystemId(::java::lang::String *) = 0; + virtual ::java::lang::String * getSystemId() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_Source__ diff --git a/libjava/javax/xml/transform/SourceLocator.h b/libjava/javax/xml/transform/SourceLocator.h new file mode 100644 index 00000000000..3084b8ad345 --- /dev/null +++ b/libjava/javax/xml/transform/SourceLocator.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_SourceLocator__ +#define __javax_xml_transform_SourceLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class SourceLocator; + } + } + } +} + +class javax::xml::transform::SourceLocator : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual jint getLineNumber() = 0; + virtual jint getColumnNumber() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_SourceLocator__ diff --git a/libjava/javax/xml/transform/Templates.h b/libjava/javax/xml/transform/Templates.h new file mode 100644 index 00000000000..33bb8b55810 --- /dev/null +++ b/libjava/javax/xml/transform/Templates.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_Templates__ +#define __javax_xml_transform_Templates__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Templates; + class Transformer; + } + } + } +} + +class javax::xml::transform::Templates : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::transform::Transformer * newTransformer() = 0; + virtual ::java::util::Properties * getOutputProperties() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_Templates__ diff --git a/libjava/javax/xml/transform/Transformer.h b/libjava/javax/xml/transform/Transformer.h new file mode 100644 index 00000000000..cd489803fe2 --- /dev/null +++ b/libjava/javax/xml/transform/Transformer.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_Transformer__ +#define __javax_xml_transform_Transformer__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class Result; + class Source; + class Transformer; + class URIResolver; + } + } + } +} + +class javax::xml::transform::Transformer : public ::java::lang::Object +{ + +public: // actually protected + Transformer(); +public: + virtual void transform(::javax::xml::transform::Source *, ::javax::xml::transform::Result *) = 0; + virtual void setParameter(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getParameter(::java::lang::String *) = 0; + virtual void clearParameters() = 0; + virtual void setURIResolver(::javax::xml::transform::URIResolver *) = 0; + virtual ::javax::xml::transform::URIResolver * getURIResolver() = 0; + virtual void setOutputProperties(::java::util::Properties *) = 0; + virtual ::java::util::Properties * getOutputProperties() = 0; + virtual void setOutputProperty(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getOutputProperty(::java::lang::String *) = 0; + virtual void setErrorListener(::javax::xml::transform::ErrorListener *) = 0; + virtual ::javax::xml::transform::ErrorListener * getErrorListener() = 0; + virtual void reset(); + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_Transformer__ diff --git a/libjava/javax/xml/transform/TransformerConfigurationException.h b/libjava/javax/xml/transform/TransformerConfigurationException.h new file mode 100644 index 00000000000..d2a7d27ac22 --- /dev/null +++ b/libjava/javax/xml/transform/TransformerConfigurationException.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_TransformerConfigurationException__ +#define __javax_xml_transform_TransformerConfigurationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class SourceLocator; + class TransformerConfigurationException; + } + } + } +} + +class javax::xml::transform::TransformerConfigurationException : public ::javax::xml::transform::TransformerException +{ + +public: + TransformerConfigurationException(); + TransformerConfigurationException(::java::lang::String *); + TransformerConfigurationException(::java::lang::Throwable *); + TransformerConfigurationException(::java::lang::String *, ::java::lang::Throwable *); + TransformerConfigurationException(::java::lang::String *, ::javax::xml::transform::SourceLocator *); + TransformerConfigurationException(::java::lang::String *, ::javax::xml::transform::SourceLocator *, ::java::lang::Throwable *); +private: + static const jlong serialVersionUID = 1285547467942875745LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_TransformerConfigurationException__ diff --git a/libjava/javax/xml/transform/TransformerException.h b/libjava/javax/xml/transform/TransformerException.h new file mode 100644 index 00000000000..92158ce0338 --- /dev/null +++ b/libjava/javax/xml/transform/TransformerException.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_TransformerException__ +#define __javax_xml_transform_TransformerException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class SourceLocator; + class TransformerException; + } + } + } +} + +class javax::xml::transform::TransformerException : public ::java::lang::Exception +{ + +public: + TransformerException(::java::lang::String *); + TransformerException(::java::lang::Throwable *); + TransformerException(::java::lang::String *, ::java::lang::Throwable *); + TransformerException(::java::lang::String *, ::javax::xml::transform::SourceLocator *); + TransformerException(::java::lang::String *, ::javax::xml::transform::SourceLocator *, ::java::lang::Throwable *); + virtual ::javax::xml::transform::SourceLocator * getLocator(); + virtual void setLocator(::javax::xml::transform::SourceLocator *); + virtual ::java::lang::Throwable * getException(); + virtual ::java::lang::Throwable * getCause(); + virtual ::java::lang::Throwable * initCause(::java::lang::Throwable *); + virtual ::java::lang::String * getMessageAndLocation(); + virtual ::java::lang::String * getLocationAsString(); + virtual void printStackTrace(); + virtual void printStackTrace(::java::io::PrintStream *); + virtual void printStackTrace(::java::io::PrintWriter *); +private: + static const jlong serialVersionUID = 975798773772956428LL; + ::javax::xml::transform::SourceLocator * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) locator; + ::java::lang::Throwable * containedException; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_TransformerException__ diff --git a/libjava/javax/xml/transform/TransformerFactory.h b/libjava/javax/xml/transform/TransformerFactory.h new file mode 100644 index 00000000000..f16f1e784c4 --- /dev/null +++ b/libjava/javax/xml/transform/TransformerFactory.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_TransformerFactory__ +#define __javax_xml_transform_TransformerFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class ErrorListener; + class Source; + class Templates; + class Transformer; + class TransformerFactory; + class URIResolver; + } + } + } +} + +class javax::xml::transform::TransformerFactory : public ::java::lang::Object +{ + +public: // actually protected + TransformerFactory(); +public: + static ::javax::xml::transform::TransformerFactory * newInstance(); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint); +public: + virtual ::javax::xml::transform::Transformer * newTransformer(::javax::xml::transform::Source *) = 0; + virtual ::javax::xml::transform::Transformer * newTransformer() = 0; + virtual ::javax::xml::transform::Templates * newTemplates(::javax::xml::transform::Source *) = 0; + virtual ::javax::xml::transform::Source * getAssociatedStylesheet(::javax::xml::transform::Source *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void setURIResolver(::javax::xml::transform::URIResolver *) = 0; + virtual ::javax::xml::transform::URIResolver * getURIResolver() = 0; + virtual void setFeature(::java::lang::String *, jboolean) = 0; + virtual jboolean getFeature(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getAttribute(::java::lang::String *) = 0; + virtual void setErrorListener(::javax::xml::transform::ErrorListener *) = 0; + virtual ::javax::xml::transform::ErrorListener * getErrorListener() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_TransformerFactory__ diff --git a/libjava/javax/xml/transform/TransformerFactoryConfigurationError.h b/libjava/javax/xml/transform/TransformerFactoryConfigurationError.h new file mode 100644 index 00000000000..d6edcff775f --- /dev/null +++ b/libjava/javax/xml/transform/TransformerFactoryConfigurationError.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_TransformerFactoryConfigurationError__ +#define __javax_xml_transform_TransformerFactoryConfigurationError__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class TransformerFactoryConfigurationError; + } + } + } +} + +class javax::xml::transform::TransformerFactoryConfigurationError : public ::java::lang::Error +{ + +public: + TransformerFactoryConfigurationError(); + TransformerFactoryConfigurationError(::java::lang::String *); + TransformerFactoryConfigurationError(::java::lang::Exception *); + TransformerFactoryConfigurationError(::java::lang::Exception *, ::java::lang::String *); + virtual ::java::lang::String * getMessage(); + virtual ::java::lang::Exception * getException(); +private: + static const jlong serialVersionUID = -6527718720676281516LL; + ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::lang::Error)))) exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_TransformerFactoryConfigurationError__ diff --git a/libjava/javax/xml/transform/URIResolver.h b/libjava/javax/xml/transform/URIResolver.h new file mode 100644 index 00000000000..5f64c81f891 --- /dev/null +++ b/libjava/javax/xml/transform/URIResolver.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_URIResolver__ +#define __javax_xml_transform_URIResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Source; + class URIResolver; + } + } + } +} + +class javax::xml::transform::URIResolver : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::transform::Source * resolve(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_URIResolver__ diff --git a/libjava/javax/xml/transform/dom/DOMLocator.h b/libjava/javax/xml/transform/dom/DOMLocator.h new file mode 100644 index 00000000000..7bb475203bf --- /dev/null +++ b/libjava/javax/xml/transform/dom/DOMLocator.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_dom_DOMLocator__ +#define __javax_xml_transform_dom_DOMLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + namespace dom + { + class DOMLocator; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class javax::xml::transform::dom::DOMLocator : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Node * getOriginatingNode() = 0; + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual jint getLineNumber() = 0; + virtual jint getColumnNumber() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_dom_DOMLocator__ diff --git a/libjava/javax/xml/transform/dom/DOMResult.h b/libjava/javax/xml/transform/dom/DOMResult.h new file mode 100644 index 00000000000..84e91a5cd03 --- /dev/null +++ b/libjava/javax/xml/transform/dom/DOMResult.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_dom_DOMResult__ +#define __javax_xml_transform_dom_DOMResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + namespace dom + { + class DOMResult; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class javax::xml::transform::dom::DOMResult : public ::java::lang::Object +{ + +public: + DOMResult(); + DOMResult(::org::w3c::dom::Node *); + DOMResult(::org::w3c::dom::Node *, ::org::w3c::dom::Node *); + DOMResult(::org::w3c::dom::Node *, ::java::lang::String *); + DOMResult(::org::w3c::dom::Node *, ::org::w3c::dom::Node *, ::java::lang::String *); + virtual void setNode(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * getNode(); + virtual void setNextSibling(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * getNextSibling(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getSystemId(); + static ::java::lang::String * FEATURE; +private: + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) node; + ::org::w3c::dom::Node * nextSibling; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_dom_DOMResult__ diff --git a/libjava/javax/xml/transform/dom/DOMSource.h b/libjava/javax/xml/transform/dom/DOMSource.h new file mode 100644 index 00000000000..3c8d935705b --- /dev/null +++ b/libjava/javax/xml/transform/dom/DOMSource.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_dom_DOMSource__ +#define __javax_xml_transform_dom_DOMSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + namespace dom + { + class DOMSource; + } + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + } + } + } +} + +class javax::xml::transform::dom::DOMSource : public ::java::lang::Object +{ + +public: + DOMSource(); + DOMSource(::org::w3c::dom::Node *); + DOMSource(::org::w3c::dom::Node *, ::java::lang::String *); + virtual void setNode(::org::w3c::dom::Node *); + virtual ::org::w3c::dom::Node * getNode(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getSystemId(); + static ::java::lang::String * FEATURE; +private: + ::org::w3c::dom::Node * __attribute__((aligned(__alignof__( ::java::lang::Object)))) node; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_dom_DOMSource__ diff --git a/libjava/javax/xml/transform/sax/SAXResult.h b/libjava/javax/xml/transform/sax/SAXResult.h new file mode 100644 index 00000000000..b3e04b65dae --- /dev/null +++ b/libjava/javax/xml/transform/sax/SAXResult.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_sax_SAXResult__ +#define __javax_xml_transform_sax_SAXResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + namespace sax + { + class SAXResult; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + namespace ext + { + class LexicalHandler; + } + } + } + } +} + +class javax::xml::transform::sax::SAXResult : public ::java::lang::Object +{ + +public: + SAXResult(); + SAXResult(::org::xml::sax::ContentHandler *); + virtual void setHandler(::org::xml::sax::ContentHandler *); + virtual ::org::xml::sax::ContentHandler * getHandler(); + virtual void setLexicalHandler(::org::xml::sax::ext::LexicalHandler *); + virtual ::org::xml::sax::ext::LexicalHandler * getLexicalHandler(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getSystemId(); + static ::java::lang::String * FEATURE; +private: + ::org::xml::sax::ContentHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) handler; + ::org::xml::sax::ext::LexicalHandler * lexicalHandler; + ::java::lang::String * systemId; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_sax_SAXResult__ diff --git a/libjava/javax/xml/transform/sax/SAXSource.h b/libjava/javax/xml/transform/sax/SAXSource.h new file mode 100644 index 00000000000..8c06ad8ec32 --- /dev/null +++ b/libjava/javax/xml/transform/sax/SAXSource.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_sax_SAXSource__ +#define __javax_xml_transform_sax_SAXSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Source; + namespace sax + { + class SAXSource; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + class XMLReader; + } + } + } +} + +class javax::xml::transform::sax::SAXSource : public ::java::lang::Object +{ + +public: + SAXSource(); + SAXSource(::org::xml::sax::XMLReader *, ::org::xml::sax::InputSource *); + SAXSource(::org::xml::sax::InputSource *); + virtual void setXMLReader(::org::xml::sax::XMLReader *); + virtual ::org::xml::sax::XMLReader * getXMLReader(); + virtual void setInputSource(::org::xml::sax::InputSource *); + virtual ::org::xml::sax::InputSource * getInputSource(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getSystemId(); + static ::org::xml::sax::InputSource * sourceToInputSource(::javax::xml::transform::Source *); + static ::java::lang::String * FEATURE; +private: + ::org::xml::sax::XMLReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) xmlReader; + ::org::xml::sax::InputSource * inputSource; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_sax_SAXSource__ diff --git a/libjava/javax/xml/transform/sax/SAXTransformerFactory.h b/libjava/javax/xml/transform/sax/SAXTransformerFactory.h new file mode 100644 index 00000000000..7d26f5533a1 --- /dev/null +++ b/libjava/javax/xml/transform/sax/SAXTransformerFactory.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_sax_SAXTransformerFactory__ +#define __javax_xml_transform_sax_SAXTransformerFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Source; + class Templates; + namespace sax + { + class SAXTransformerFactory; + class TemplatesHandler; + class TransformerHandler; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class XMLFilter; + } + } + } +} + +class javax::xml::transform::sax::SAXTransformerFactory : public ::javax::xml::transform::TransformerFactory +{ + +public: // actually protected + SAXTransformerFactory(); +public: + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(::javax::xml::transform::Source *) = 0; + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler(::javax::xml::transform::Templates *) = 0; + virtual ::javax::xml::transform::sax::TransformerHandler * newTransformerHandler() = 0; + virtual ::javax::xml::transform::sax::TemplatesHandler * newTemplatesHandler() = 0; + virtual ::org::xml::sax::XMLFilter * newXMLFilter(::javax::xml::transform::Source *) = 0; + virtual ::org::xml::sax::XMLFilter * newXMLFilter(::javax::xml::transform::Templates *) = 0; + static ::java::lang::String * FEATURE; + static ::java::lang::String * FEATURE_XMLFILTER; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_sax_SAXTransformerFactory__ diff --git a/libjava/javax/xml/transform/sax/TemplatesHandler.h b/libjava/javax/xml/transform/sax/TemplatesHandler.h new file mode 100644 index 00000000000..63f6834c18d --- /dev/null +++ b/libjava/javax/xml/transform/sax/TemplatesHandler.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_sax_TemplatesHandler__ +#define __javax_xml_transform_sax_TemplatesHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Templates; + namespace sax + { + class TemplatesHandler; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class Locator; + } + } + } +} + +class javax::xml::transform::sax::TemplatesHandler : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::transform::Templates * getTemplates() = 0; + virtual void setSystemId(::java::lang::String *) = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual void setDocumentLocator(::org::xml::sax::Locator *) = 0; + virtual void startDocument() = 0; + virtual void endDocument() = 0; + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *) = 0; + virtual void endPrefixMapping(::java::lang::String *) = 0; + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *) = 0; + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void characters(JArray< jchar > *, jint, jint) = 0; + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint) = 0; + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual void skippedEntity(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_sax_TemplatesHandler__ diff --git a/libjava/javax/xml/transform/sax/TransformerHandler.h b/libjava/javax/xml/transform/sax/TransformerHandler.h new file mode 100644 index 00000000000..f6cbdc3094f --- /dev/null +++ b/libjava/javax/xml/transform/sax/TransformerHandler.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_sax_TransformerHandler__ +#define __javax_xml_transform_sax_TransformerHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + class Transformer; + namespace sax + { + class TransformerHandler; + } + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class Locator; + } + } + } +} + +class javax::xml::transform::sax::TransformerHandler : public ::java::lang::Object +{ + +public: + virtual void setResult(::javax::xml::transform::Result *) = 0; + virtual void setSystemId(::java::lang::String *) = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual ::javax::xml::transform::Transformer * getTransformer() = 0; + virtual void setDocumentLocator(::org::xml::sax::Locator *) = 0; + virtual void startDocument() = 0; + virtual void endDocument() = 0; + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *) = 0; + virtual void endPrefixMapping(::java::lang::String *) = 0; + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *) = 0; + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void characters(JArray< jchar > *, jint, jint) = 0; + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint) = 0; + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual void skippedEntity(::java::lang::String *) = 0; + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void endDTD() = 0; + virtual void startEntity(::java::lang::String *) = 0; + virtual void endEntity(::java::lang::String *) = 0; + virtual void startCDATA() = 0; + virtual void endCDATA() = 0; + virtual void comment(JArray< jchar > *, jint, jint) = 0; + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_transform_sax_TransformerHandler__ diff --git a/libjava/javax/xml/transform/stream/StreamResult.h b/libjava/javax/xml/transform/stream/StreamResult.h new file mode 100644 index 00000000000..dd9d09648f0 --- /dev/null +++ b/libjava/javax/xml/transform/stream/StreamResult.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_stream_StreamResult__ +#define __javax_xml_transform_stream_StreamResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + namespace stream + { + class StreamResult; + } + } + } + } +} + +class javax::xml::transform::stream::StreamResult : public ::java::lang::Object +{ + +public: + StreamResult(); + StreamResult(::java::io::OutputStream *); + StreamResult(::java::io::Writer *); + StreamResult(::java::lang::String *); + StreamResult(::java::io::File *); + virtual void setOutputStream(::java::io::OutputStream *); + virtual ::java::io::OutputStream * getOutputStream(); + virtual void setWriter(::java::io::Writer *); + virtual ::java::io::Writer * getWriter(); + virtual void setSystemId(::java::lang::String *); + virtual void setSystemId(::java::io::File *); + virtual ::java::lang::String * getSystemId(); + static ::java::lang::String * FEATURE; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) systemId; + ::java::io::OutputStream * outputStream; + ::java::io::Writer * writer; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_stream_StreamResult__ diff --git a/libjava/javax/xml/transform/stream/StreamSource.h b/libjava/javax/xml/transform/stream/StreamSource.h new file mode 100644 index 00000000000..685a94a06b0 --- /dev/null +++ b/libjava/javax/xml/transform/stream/StreamSource.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_transform_stream_StreamSource__ +#define __javax_xml_transform_stream_StreamSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + namespace stream + { + class StreamSource; + } + } + } + } +} + +class javax::xml::transform::stream::StreamSource : public ::java::lang::Object +{ + +public: + StreamSource(); + StreamSource(::java::io::InputStream *); + StreamSource(::java::io::InputStream *, ::java::lang::String *); + StreamSource(::java::io::Reader *); + StreamSource(::java::io::Reader *, ::java::lang::String *); + StreamSource(::java::lang::String *); + StreamSource(::java::io::File *); + virtual void setInputStream(::java::io::InputStream *); + virtual ::java::io::InputStream * getInputStream(); + virtual void setReader(::java::io::Reader *); + virtual ::java::io::Reader * getReader(); + virtual void setPublicId(::java::lang::String *); + virtual ::java::lang::String * getPublicId(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getSystemId(); + virtual void setSystemId(::java::io::File *); + static ::java::lang::String * FEATURE; +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) publicId; + ::java::lang::String * systemId; + ::java::io::InputStream * inputStream; + ::java::io::Reader * reader; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_transform_stream_StreamSource__ diff --git a/libjava/javax/xml/validation/Schema.h b/libjava/javax/xml/validation/Schema.h new file mode 100644 index 00000000000..482a216d26b --- /dev/null +++ b/libjava/javax/xml/validation/Schema.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_validation_Schema__ +#define __javax_xml_validation_Schema__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace validation + { + class Schema; + class Validator; + class ValidatorHandler; + } + } + } +} + +class javax::xml::validation::Schema : public ::java::lang::Object +{ + +public: // actually protected + Schema(); +public: + virtual ::javax::xml::validation::Validator * newValidator() = 0; + virtual ::javax::xml::validation::ValidatorHandler * newValidatorHandler() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_validation_Schema__ diff --git a/libjava/javax/xml/validation/SchemaFactory.h b/libjava/javax/xml/validation/SchemaFactory.h new file mode 100644 index 00000000000..758e376843d --- /dev/null +++ b/libjava/javax/xml/validation/SchemaFactory.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_validation_SchemaFactory__ +#define __javax_xml_validation_SchemaFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace javax + { + namespace xml + { + namespace transform + { + class Source; + } + namespace validation + { + class Schema; + class SchemaFactory; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class ErrorHandler; + } + } + } +} + +class javax::xml::validation::SchemaFactory : public ::java::lang::Object +{ + +public: // actually protected + SchemaFactory(); +public: + static ::javax::xml::validation::SchemaFactory * newInstance(::java::lang::String *); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, ::java::lang::String *, jint); +public: + virtual jboolean isSchemaLanguageSupported(::java::lang::String *) = 0; + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler() = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + virtual ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver() = 0; + virtual void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *) = 0; + virtual ::javax::xml::validation::Schema * newSchema(::javax::xml::transform::Source *); + virtual ::javax::xml::validation::Schema * newSchema(::java::io::File *); + virtual ::javax::xml::validation::Schema * newSchema(::java::net::URL *); + virtual ::javax::xml::validation::Schema * newSchema(JArray< ::javax::xml::transform::Source * > *) = 0; + virtual ::javax::xml::validation::Schema * newSchema() = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_validation_SchemaFactory__ diff --git a/libjava/javax/xml/validation/SchemaFactoryLoader.h b/libjava/javax/xml/validation/SchemaFactoryLoader.h new file mode 100644 index 00000000000..0593c5474dd --- /dev/null +++ b/libjava/javax/xml/validation/SchemaFactoryLoader.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_validation_SchemaFactoryLoader__ +#define __javax_xml_validation_SchemaFactoryLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace validation + { + class SchemaFactory; + class SchemaFactoryLoader; + } + } + } +} + +class javax::xml::validation::SchemaFactoryLoader : public ::java::lang::Object +{ + +public: // actually protected + SchemaFactoryLoader(); +public: + virtual ::javax::xml::validation::SchemaFactory * newFactory(::java::lang::String *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_validation_SchemaFactoryLoader__ diff --git a/libjava/javax/xml/validation/TypeInfoProvider.h b/libjava/javax/xml/validation/TypeInfoProvider.h new file mode 100644 index 00000000000..0a363268808 --- /dev/null +++ b/libjava/javax/xml/validation/TypeInfoProvider.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_validation_TypeInfoProvider__ +#define __javax_xml_validation_TypeInfoProvider__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace validation + { + class TypeInfoProvider; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + class TypeInfo; + } + } + } +} + +class javax::xml::validation::TypeInfoProvider : public ::java::lang::Object +{ + +public: // actually protected + TypeInfoProvider(); +public: + virtual ::org::w3c::dom::TypeInfo * getElementTypeInfo() = 0; + virtual ::org::w3c::dom::TypeInfo * getAttributeTypeInfo(jint) = 0; + virtual jboolean isIdAttribute(jint) = 0; + virtual jboolean isSpecified(jint) = 0; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_validation_TypeInfoProvider__ diff --git a/libjava/javax/xml/validation/Validator.h b/libjava/javax/xml/validation/Validator.h new file mode 100644 index 00000000000..98dcf2862f2 --- /dev/null +++ b/libjava/javax/xml/validation/Validator.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_validation_Validator__ +#define __javax_xml_validation_Validator__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace transform + { + class Result; + class Source; + } + namespace validation + { + class Validator; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class ErrorHandler; + } + } + } +} + +class javax::xml::validation::Validator : public ::java::lang::Object +{ + +public: // actually protected + Validator(); +public: + virtual void reset() = 0; + virtual void validate(::javax::xml::transform::Source *); + virtual void validate(::javax::xml::transform::Source *, ::javax::xml::transform::Result *) = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + virtual ::org::xml::sax::ErrorHandler * getErrorHandler() = 0; + virtual void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *) = 0; + virtual ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver() = 0; + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_validation_Validator__ diff --git a/libjava/javax/xml/validation/ValidatorHandler.h b/libjava/javax/xml/validation/ValidatorHandler.h new file mode 100644 index 00000000000..a5f9e2f010c --- /dev/null +++ b/libjava/javax/xml/validation/ValidatorHandler.h @@ -0,0 +1,84 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_validation_ValidatorHandler__ +#define __javax_xml_validation_ValidatorHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace validation + { + class TypeInfoProvider; + class ValidatorHandler; + } + } + } + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSResourceResolver; + } + } + } + namespace xml + { + namespace sax + { + class Attributes; + class ContentHandler; + class ErrorHandler; + class Locator; + } + } + } +} + +class javax::xml::validation::ValidatorHandler : public ::java::lang::Object +{ + +public: // actually protected + ValidatorHandler(); +public: + virtual void setContentHandler(::org::xml::sax::ContentHandler *) = 0; + virtual ::org::xml::sax::ContentHandler * getContentHandler() = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + virtual ::org::xml::sax::ErrorHandler * getErrorHandler() = 0; + virtual void setResourceResolver(::org::w3c::dom::ls::LSResourceResolver *) = 0; + virtual ::org::w3c::dom::ls::LSResourceResolver * getResourceResolver() = 0; + virtual ::javax::xml::validation::TypeInfoProvider * getTypeInfoProvider() = 0; + virtual jboolean getFeature(::java::lang::String *); + virtual void setFeature(::java::lang::String *, jboolean); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual void setDocumentLocator(::org::xml::sax::Locator *) = 0; + virtual void startDocument() = 0; + virtual void endDocument() = 0; + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *) = 0; + virtual void endPrefixMapping(::java::lang::String *) = 0; + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *) = 0; + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void characters(JArray< jchar > *, jint, jint) = 0; + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint) = 0; + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual void skippedEntity(::java::lang::String *) = 0; +public: // actually package-private + static ::java::lang::String * NS_FEATURE; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_validation_ValidatorHandler__ diff --git a/libjava/javax/xml/xpath/XPath.h b/libjava/javax/xml/xpath/XPath.h new file mode 100644 index 00000000000..0a67abb8129 --- /dev/null +++ b/libjava/javax/xml/xpath/XPath.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPath__ +#define __javax_xml_xpath_XPath__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class NamespaceContext; + class QName; + } + namespace xpath + { + class XPath; + class XPathExpression; + class XPathFunctionResolver; + class XPathVariableResolver; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class javax::xml::xpath::XPath : public ::java::lang::Object +{ + +public: + virtual void reset() = 0; + virtual void setXPathVariableResolver(::javax::xml::xpath::XPathVariableResolver *) = 0; + virtual ::javax::xml::xpath::XPathVariableResolver * getXPathVariableResolver() = 0; + virtual void setXPathFunctionResolver(::javax::xml::xpath::XPathFunctionResolver *) = 0; + virtual ::javax::xml::xpath::XPathFunctionResolver * getXPathFunctionResolver() = 0; + virtual void setNamespaceContext(::javax::xml::namespace::NamespaceContext *) = 0; + virtual ::javax::xml::namespace::NamespaceContext * getNamespaceContext() = 0; + virtual ::javax::xml::xpath::XPathExpression * compile(::java::lang::String *) = 0; + virtual ::java::lang::Object * evaluate(::java::lang::String *, ::java::lang::Object *, ::javax::xml::namespace::QName *) = 0; + virtual ::java::lang::String * evaluate(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * evaluate(::java::lang::String *, ::org::xml::sax::InputSource *, ::javax::xml::namespace::QName *) = 0; + virtual ::java::lang::String * evaluate(::java::lang::String *, ::org::xml::sax::InputSource *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_xpath_XPath__ diff --git a/libjava/javax/xml/xpath/XPathConstants.h b/libjava/javax/xml/xpath/XPathConstants.h new file mode 100644 index 00000000000..0b15648e34e --- /dev/null +++ b/libjava/javax/xml/xpath/XPathConstants.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathConstants__ +#define __javax_xml_xpath_XPathConstants__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace xpath + { + class XPathConstants; + } + } + } +} + +class javax::xml::xpath::XPathConstants : public ::java::lang::Object +{ + + XPathConstants(); +public: + static ::javax::xml::namespace::QName * NUMBER; + static ::javax::xml::namespace::QName * STRING; + static ::javax::xml::namespace::QName * BOOLEAN; + static ::javax::xml::namespace::QName * NODESET; + static ::javax::xml::namespace::QName * NODE; + static ::java::lang::String * DOM_OBJECT_MODEL; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_xpath_XPathConstants__ diff --git a/libjava/javax/xml/xpath/XPathException.h b/libjava/javax/xml/xpath/XPathException.h new file mode 100644 index 00000000000..a495a94233e --- /dev/null +++ b/libjava/javax/xml/xpath/XPathException.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathException__ +#define __javax_xml_xpath_XPathException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace xpath + { + class XPathException; + } + } + } +} + +class javax::xml::xpath::XPathException : public ::java::lang::Exception +{ + +public: + XPathException(::java::lang::String *); + XPathException(::java::lang::Throwable *); + virtual ::java::lang::Throwable * getCause(); + virtual void printStackTrace(); + virtual void printStackTrace(::java::io::PrintStream *); + virtual void printStackTrace(::java::io::PrintWriter *); +private: + static const jlong serialVersionUID = -1837080260374986980LL; +public: // actually package-private + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) cause; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_xpath_XPathException__ diff --git a/libjava/javax/xml/xpath/XPathExpression.h b/libjava/javax/xml/xpath/XPathExpression.h new file mode 100644 index 00000000000..6a9a0e3e5a2 --- /dev/null +++ b/libjava/javax/xml/xpath/XPathExpression.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathExpression__ +#define __javax_xml_xpath_XPathExpression__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace xpath + { + class XPathExpression; + } + } + } + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class javax::xml::xpath::XPathExpression : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * evaluate(::java::lang::Object *, ::javax::xml::namespace::QName *) = 0; + virtual ::java::lang::String * evaluate(::java::lang::Object *) = 0; + virtual ::java::lang::Object * evaluate(::org::xml::sax::InputSource *, ::javax::xml::namespace::QName *) = 0; + virtual ::java::lang::String * evaluate(::org::xml::sax::InputSource *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_xpath_XPathExpression__ diff --git a/libjava/javax/xml/xpath/XPathExpressionException.h b/libjava/javax/xml/xpath/XPathExpressionException.h new file mode 100644 index 00000000000..e619bbd62b6 --- /dev/null +++ b/libjava/javax/xml/xpath/XPathExpressionException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathExpressionException__ +#define __javax_xml_xpath_XPathExpressionException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace xpath + { + class XPathExpressionException; + } + } + } +} + +class javax::xml::xpath::XPathExpressionException : public ::javax::xml::xpath::XPathException +{ + +public: + XPathExpressionException(::java::lang::String *); + XPathExpressionException(::java::lang::Throwable *); +private: + static const jlong serialVersionUID = -1837080260374986980LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_xpath_XPathExpressionException__ diff --git a/libjava/javax/xml/xpath/XPathFactory.h b/libjava/javax/xml/xpath/XPathFactory.h new file mode 100644 index 00000000000..f4b9ac68554 --- /dev/null +++ b/libjava/javax/xml/xpath/XPathFactory.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathFactory__ +#define __javax_xml_xpath_XPathFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace xpath + { + class XPath; + class XPathFactory; + class XPathFunctionResolver; + class XPathVariableResolver; + } + } + } +} + +class javax::xml::xpath::XPathFactory : public ::java::lang::Object +{ + +public: // actually protected + XPathFactory(); +public: + static ::javax::xml::xpath::XPathFactory * newInstance(); + static ::javax::xml::xpath::XPathFactory * newInstance(::java::lang::String *); +private: + static ::java::lang::String * getFactoryClassName(::java::lang::ClassLoader *, jint); +public: + virtual jboolean isObjectModelSupported(::java::lang::String *) = 0; + virtual void setFeature(::java::lang::String *, jboolean) = 0; + virtual jboolean getFeature(::java::lang::String *) = 0; + virtual void setXPathVariableResolver(::javax::xml::xpath::XPathVariableResolver *) = 0; + virtual void setXPathFunctionResolver(::javax::xml::xpath::XPathFunctionResolver *) = 0; + virtual ::javax::xml::xpath::XPath * newXPath() = 0; + static ::java::lang::String * DEFAULT_PROPERTY_NAME; + static ::java::lang::String * DEFAULT_OBJECT_MODEL_URI; + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_xpath_XPathFactory__ diff --git a/libjava/javax/xml/xpath/XPathFactoryConfigurationException.h b/libjava/javax/xml/xpath/XPathFactoryConfigurationException.h new file mode 100644 index 00000000000..35ee44255f1 --- /dev/null +++ b/libjava/javax/xml/xpath/XPathFactoryConfigurationException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathFactoryConfigurationException__ +#define __javax_xml_xpath_XPathFactoryConfigurationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace xpath + { + class XPathFactoryConfigurationException; + } + } + } +} + +class javax::xml::xpath::XPathFactoryConfigurationException : public ::javax::xml::xpath::XPathException +{ + +public: + XPathFactoryConfigurationException(::java::lang::String *); + XPathFactoryConfigurationException(::java::lang::Throwable *); +private: + static const jlong serialVersionUID = -1837080260374986980LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_xpath_XPathFactoryConfigurationException__ diff --git a/libjava/javax/xml/xpath/XPathFunction.h b/libjava/javax/xml/xpath/XPathFunction.h new file mode 100644 index 00000000000..adc76361280 --- /dev/null +++ b/libjava/javax/xml/xpath/XPathFunction.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathFunction__ +#define __javax_xml_xpath_XPathFunction__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace xpath + { + class XPathFunction; + } + } + } +} + +class javax::xml::xpath::XPathFunction : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * evaluate(::java::util::List *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_xpath_XPathFunction__ diff --git a/libjava/javax/xml/xpath/XPathFunctionException.h b/libjava/javax/xml/xpath/XPathFunctionException.h new file mode 100644 index 00000000000..690332a2efd --- /dev/null +++ b/libjava/javax/xml/xpath/XPathFunctionException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathFunctionException__ +#define __javax_xml_xpath_XPathFunctionException__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace xpath + { + class XPathFunctionException; + } + } + } +} + +class javax::xml::xpath::XPathFunctionException : public ::javax::xml::xpath::XPathExpressionException +{ + +public: + XPathFunctionException(::java::lang::String *); + XPathFunctionException(::java::lang::Throwable *); +private: + static const jlong serialVersionUID = -1837080260374986980LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_xml_xpath_XPathFunctionException__ diff --git a/libjava/javax/xml/xpath/XPathFunctionResolver.h b/libjava/javax/xml/xpath/XPathFunctionResolver.h new file mode 100644 index 00000000000..b526d01a035 --- /dev/null +++ b/libjava/javax/xml/xpath/XPathFunctionResolver.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathFunctionResolver__ +#define __javax_xml_xpath_XPathFunctionResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace xpath + { + class XPathFunction; + class XPathFunctionResolver; + } + } + } +} + +class javax::xml::xpath::XPathFunctionResolver : public ::java::lang::Object +{ + +public: + virtual ::javax::xml::xpath::XPathFunction * resolveFunction(::javax::xml::namespace::QName *, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_xpath_XPathFunctionResolver__ diff --git a/libjava/javax/xml/xpath/XPathVariableResolver.h b/libjava/javax/xml/xpath/XPathVariableResolver.h new file mode 100644 index 00000000000..d308cac5948 --- /dev/null +++ b/libjava/javax/xml/xpath/XPathVariableResolver.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_xml_xpath_XPathVariableResolver__ +#define __javax_xml_xpath_XPathVariableResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace javax + { + namespace xml + { + namespace namespace + { + class QName; + } + namespace xpath + { + class XPathVariableResolver; + } + } + } +} + +class javax::xml::xpath::XPathVariableResolver : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * resolveVariable(::javax::xml::namespace::QName *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_xml_xpath_XPathVariableResolver__ diff --git a/libjava/link.cc b/libjava/link.cc index 5fc82e58b14..929be3a8702 100644 --- a/libjava/link.cc +++ b/libjava/link.cc @@ -264,6 +264,107 @@ _Jv_Linker::find_field (jclass klass, jclass owner, return the_field; } +_Jv_Method * +_Jv_Linker::resolve_method_entry (jclass klass, jclass &found_class, + int class_index, int name_and_type_index, + bool init, bool is_iface) +{ + _Jv_Constants *pool = &klass->constants; + jclass owner = resolve_pool_entry (klass, class_index).clazz; + + if (init && owner != klass) + _Jv_InitClass (owner); + + _Jv_ushort name_index, type_index; + _Jv_loadIndexes (&pool->data[name_and_type_index], + name_index, + type_index); + + _Jv_Utf8Const *method_name = pool->data[name_index].utf8; + _Jv_Utf8Const *method_signature = pool->data[type_index].utf8; + + _Jv_Method *the_method = 0; + found_class = 0; + + // We're going to cache a pointer to the _Jv_Method object + // when we find it. So, to ensure this doesn't get moved from + // beneath us, we first put all the needed Miranda methods + // into the target class. + wait_for_state (klass, JV_STATE_LOADED); + + // First search the class itself. + the_method = search_method_in_class (owner, klass, + method_name, method_signature); + + if (the_method != 0) + { + found_class = owner; + goto end_of_method_search; + } + + // If we are resolving an interface method, search the + // interface's superinterfaces (A superinterface is not an + // interface's superclass - a superinterface is implemented by + // the interface). + if (is_iface) + { + _Jv_ifaces ifaces; + ifaces.count = 0; + ifaces.len = 4; + ifaces.list = (jclass *) _Jv_Malloc (ifaces.len + * sizeof (jclass *)); + + get_interfaces (owner, &ifaces); + + for (int i = 0; i < ifaces.count; i++) + { + jclass cls = ifaces.list[i]; + the_method = search_method_in_class (cls, klass, method_name, + method_signature); + if (the_method != 0) + { + found_class = cls; + break; + } + } + + _Jv_Free (ifaces.list); + + if (the_method != 0) + goto end_of_method_search; + } + + // Finally, search superclasses. + the_method = (search_method_in_superclasses + (owner->getSuperclass (), klass, method_name, + method_signature, &found_class)); + + + end_of_method_search: + + // FIXME: if (cls->loader != klass->loader), then we + // must actually check that the types of arguments + // correspond. That is, for each argument type, and + // the return type, doing _Jv_FindClassFromSignature + // with either loader should produce the same result, + // i.e., exactly the same jclass object. JVMS 5.4.3.3 + + if (the_method == 0) + { + java::lang::StringBuffer *sb = new java::lang::StringBuffer(); + sb->append(JvNewStringLatin1("method ")); + sb->append(owner->getName()); + sb->append(JvNewStringLatin1(".")); + sb->append(_Jv_NewStringUTF(method_name->chars())); + sb->append(JvNewStringLatin1(" with signature ")); + sb->append(_Jv_NewStringUTF(method_signature->chars())); + sb->append(JvNewStringLatin1(" was not found.")); + throw new java::lang::NoSuchMethodError (sb->toString()); + } + + return the_method; +} + _Jv_word _Jv_Linker::resolve_pool_entry (jclass klass, int index, bool lazy) { @@ -289,7 +390,7 @@ _Jv_Linker::resolve_pool_entry (jclass klass, int index, bool lazy) if ((pool->tags[index] & JV_CONSTANT_ResolvedFlag) != 0) return pool->data[index]; - switch (pool->tags[index]) + switch (pool->tags[index] & ~JV_CONSTANT_LazyFlag) { case JV_CONSTANT_Class: { @@ -365,8 +466,9 @@ _Jv_Linker::resolve_pool_entry (jclass klass, int index, bool lazy) if (owner->state == JV_STATE_PHANTOM) throw new java::lang::NoClassDefFoundError(owner->getName()); - if (owner != klass) - _Jv_InitClass (owner); + // We don't initialize 'owner', but we do make sure that its + // fields exist. + wait_for_state (owner, JV_STATE_PREPARED); _Jv_ushort name_index, type_index; _Jv_loadIndexes (&pool->data[name_and_type_index], @@ -381,8 +483,9 @@ _Jv_Linker::resolve_pool_entry (jclass klass, int index, bool lazy) &found_class, field_name, field_type_name); - if (owner != found_class) - _Jv_InitClass (found_class); + // Initialize the field's declaring class, not its qualifying + // class. + _Jv_InitClass (found_class); pool->data[index].field = the_field; pool->tags[index] |= JV_CONSTANT_ResolvedFlag; } @@ -395,96 +498,13 @@ _Jv_Linker::resolve_pool_entry (jclass klass, int index, bool lazy) _Jv_loadIndexes (&pool->data[index], class_index, name_and_type_index); - jclass owner = (resolve_pool_entry (klass, class_index)).clazz; - - if (owner != klass) - _Jv_InitClass (owner); - - _Jv_ushort name_index, type_index; - _Jv_loadIndexes (&pool->data[name_and_type_index], - name_index, - type_index); - - _Jv_Utf8Const *method_name = pool->data[name_index].utf8; - _Jv_Utf8Const *method_signature = pool->data[type_index].utf8; - - _Jv_Method *the_method = 0; - jclass found_class = 0; - // We're going to cache a pointer to the _Jv_Method object - // when we find it. So, to ensure this doesn't get moved from - // beneath us, we first put all the needed Miranda methods - // into the target class. - wait_for_state (klass, JV_STATE_LOADED); - - // First search the class itself. - the_method = search_method_in_class (owner, klass, - method_name, method_signature); - - if (the_method != 0) - { - found_class = owner; - goto end_of_method_search; - } - - // If we are resolving an interface method, search the - // interface's superinterfaces (A superinterface is not an - // interface's superclass - a superinterface is implemented by - // the interface). - if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref) - { - _Jv_ifaces ifaces; - ifaces.count = 0; - ifaces.len = 4; - ifaces.list = (jclass *) _Jv_Malloc (ifaces.len - * sizeof (jclass *)); - - get_interfaces (owner, &ifaces); - - for (int i = 0; i < ifaces.count; i++) - { - jclass cls = ifaces.list[i]; - the_method = search_method_in_class (cls, klass, method_name, - method_signature); - if (the_method != 0) - { - found_class = cls; - break; - } - } - - _Jv_Free (ifaces.list); - - if (the_method != 0) - goto end_of_method_search; - } - - // Finally, search superclasses. - the_method = (search_method_in_superclasses - (owner->getSuperclass (), klass, method_name, - method_signature, &found_class)); - - end_of_method_search: - - // FIXME: if (cls->loader != klass->loader), then we - // must actually check that the types of arguments - // correspond. That is, for each argument type, and - // the return type, doing _Jv_FindClassFromSignature - // with either loader should produce the same result, - // i.e., exactly the same jclass object. JVMS 5.4.3.3 - - if (the_method == 0) - { - java::lang::StringBuffer *sb = new java::lang::StringBuffer(); - sb->append(JvNewStringLatin1("method ")); - sb->append(owner->getName()); - sb->append(JvNewStringLatin1(".")); - sb->append(_Jv_NewStringUTF(method_name->chars())); - sb->append(JvNewStringLatin1(" with signature ")); - sb->append(_Jv_NewStringUTF(method_signature->chars())); - sb->append(JvNewStringLatin1(" was not found.")); - throw new java::lang::NoSuchMethodError (sb->toString()); - } + _Jv_Method *the_method; + jclass found_class; + the_method = resolve_method_entry (klass, found_class, + class_index, name_and_type_index, + true, + pool->tags[index] == JV_CONSTANT_InterfaceMethodref); pool->data[index].rmethod = klass->engine->resolve_method(the_method, @@ -1950,11 +1970,14 @@ _Jv_Linker::wait_for_state (jclass klass, int state) // Print some debugging info if requested. Interpreted classes are // handled in defineclass, so we only need to handle the two // pre-compiled cases here. - if (gcj::verbose_class_flag - && (klass->state == JV_STATE_COMPILED + if ((klass->state == JV_STATE_COMPILED || klass->state == JV_STATE_PRELOADING) && ! _Jv_IsInterpretedClass (klass)) - print_class_loaded (klass); + { + if (gcj::verbose_class_flag) + print_class_loaded (klass); + ++gcj::loadedClasses; + } try { diff --git a/libjava/org/ietf/jgss/ChannelBinding.h b/libjava/org/ietf/jgss/ChannelBinding.h new file mode 100644 index 00000000000..a83c6f29653 --- /dev/null +++ b/libjava/org/ietf/jgss/ChannelBinding.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_ChannelBinding__ +#define __org_ietf_jgss_ChannelBinding__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace net + { + class InetAddress; + } + } + namespace org + { + namespace ietf + { + namespace jgss + { + class ChannelBinding; + } + } + } +} + +class org::ietf::jgss::ChannelBinding : public ::java::lang::Object +{ + +public: + ChannelBinding(::java::net::InetAddress *, ::java::net::InetAddress *, JArray< jbyte > *); + ChannelBinding(JArray< jbyte > *); + virtual ::java::net::InetAddress * getInitiatorAddress(); + virtual ::java::net::InetAddress * getAcceptorAddress(); + virtual JArray< jbyte > * getApplicationData(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) appData; + ::java::net::InetAddress * initAddr; + ::java::net::InetAddress * acceptAddr; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_ietf_jgss_ChannelBinding__ diff --git a/libjava/org/ietf/jgss/GSSContext.h b/libjava/org/ietf/jgss/GSSContext.h new file mode 100644 index 00000000000..04b322c2d03 --- /dev/null +++ b/libjava/org/ietf/jgss/GSSContext.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_GSSContext__ +#define __org_ietf_jgss_GSSContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace ietf + { + namespace jgss + { + class ChannelBinding; + class GSSContext; + class GSSCredential; + class GSSName; + class MessageProp; + class Oid; + } + } + } +} + +class org::ietf::jgss::GSSContext : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * initSecContext(JArray< jbyte > *, jint, jint) = 0; + virtual jint initSecContext(::java::io::InputStream *, ::java::io::OutputStream *) = 0; + virtual JArray< jbyte > * acceptSecContext(JArray< jbyte > *, jint, jint) = 0; + virtual void acceptSecContext(::java::io::InputStream *, ::java::io::OutputStream *) = 0; + virtual jboolean isEstablished() = 0; + virtual void dispose() = 0; + virtual jint getWrapSizeLimit(jint, jboolean, jint) = 0; + virtual JArray< jbyte > * wrap(JArray< jbyte > *, jint, jint, ::org::ietf::jgss::MessageProp *) = 0; + virtual void wrap(::java::io::InputStream *, ::java::io::OutputStream *, ::org::ietf::jgss::MessageProp *) = 0; + virtual JArray< jbyte > * unwrap(JArray< jbyte > *, jint, jint, ::org::ietf::jgss::MessageProp *) = 0; + virtual void unwrap(::java::io::InputStream *, ::java::io::OutputStream *, ::org::ietf::jgss::MessageProp *) = 0; + virtual JArray< jbyte > * getMIC(JArray< jbyte > *, jint, jint, ::org::ietf::jgss::MessageProp *) = 0; + virtual void getMIC(::java::io::InputStream *, ::java::io::OutputStream *, ::org::ietf::jgss::MessageProp *) = 0; + virtual void verifyMIC(JArray< jbyte > *, jint, jint, JArray< jbyte > *, jint, jint, ::org::ietf::jgss::MessageProp *) = 0; + virtual void verifyMIC(::java::io::InputStream *, ::java::io::InputStream *, ::org::ietf::jgss::MessageProp *) = 0; + virtual JArray< jbyte > * export$() = 0; + virtual void requestMutualAuth(jboolean) = 0; + virtual void requestReplayDet(jboolean) = 0; + virtual void requestSequenceDet(jboolean) = 0; + virtual void requestCredDeleg(jboolean) = 0; + virtual void requestAnonymity(jboolean) = 0; + virtual void requestConf(jboolean) = 0; + virtual void requestInteg(jboolean) = 0; + virtual void requestLifetime(jint) = 0; + virtual void setChannelBinding(::org::ietf::jgss::ChannelBinding *) = 0; + virtual jboolean getCredDelegState() = 0; + virtual jboolean getMutualAuthState() = 0; + virtual jboolean getReplayDetState() = 0; + virtual jboolean getSequenceDetState() = 0; + virtual jboolean getAnonymityState() = 0; + virtual jboolean isTransferable() = 0; + virtual jboolean isProtReady() = 0; + virtual jboolean getConfState() = 0; + virtual jboolean getIntegState() = 0; + virtual jint getLifetime() = 0; + virtual ::org::ietf::jgss::GSSName * getSrcName() = 0; + virtual ::org::ietf::jgss::GSSName * getTargName() = 0; + virtual ::org::ietf::jgss::Oid * getMech() = 0; + virtual ::org::ietf::jgss::GSSCredential * getDelegCred() = 0; + virtual jboolean isInitiator() = 0; + static const jint DEFAULT_LIFETIME = 0; + static const jint INDEFINITE_LIFETIME = 2147483647; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_ietf_jgss_GSSContext__ diff --git a/libjava/org/ietf/jgss/GSSCredential.h b/libjava/org/ietf/jgss/GSSCredential.h new file mode 100644 index 00000000000..57560c474ea --- /dev/null +++ b/libjava/org/ietf/jgss/GSSCredential.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_GSSCredential__ +#define __org_ietf_jgss_GSSCredential__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace ietf + { + namespace jgss + { + class GSSCredential; + class GSSName; + class Oid; + } + } + } +} + +class org::ietf::jgss::GSSCredential : public ::java::lang::Object +{ + +public: + virtual void dispose() = 0; + virtual ::org::ietf::jgss::GSSName * getName() = 0; + virtual ::org::ietf::jgss::GSSName * getName(::org::ietf::jgss::Oid *) = 0; + virtual jint getRemainingLifetime() = 0; + virtual jint getRemainingInitLifetime(::org::ietf::jgss::Oid *) = 0; + virtual jint getRemainingAcceptLifetime(::org::ietf::jgss::Oid *) = 0; + virtual jint getUsage() = 0; + virtual jint getUsage(::org::ietf::jgss::Oid *) = 0; + virtual JArray< ::org::ietf::jgss::Oid * > * getMechs() = 0; + virtual void add(::org::ietf::jgss::GSSName *, jint, jint, ::org::ietf::jgss::Oid *, jint) = 0; + virtual jboolean equals(::java::lang::Object *) = 0; + virtual jint hashCode() = 0; + static const jint INITIATE_AND_ACCEPT = 0; + static const jint INITIATE_ONLY = 1; + static const jint ACCEPT_ONLY = 2; + static const jint DEFAULT_LIFETIME = 0; + static const jint INDEFINITE_LIFETIME = 2147483647; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_ietf_jgss_GSSCredential__ diff --git a/libjava/org/ietf/jgss/GSSException.h b/libjava/org/ietf/jgss/GSSException.h new file mode 100644 index 00000000000..b703521dede --- /dev/null +++ b/libjava/org/ietf/jgss/GSSException.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_GSSException__ +#define __org_ietf_jgss_GSSException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace ietf + { + namespace jgss + { + class GSSException; + } + } + } +} + +class org::ietf::jgss::GSSException : public ::java::lang::Exception +{ + +public: + GSSException(jint); + GSSException(jint, jint, ::java::lang::String *); + virtual jint getMajor(); + virtual jint getMinor(); + virtual ::java::lang::String * getMajorString(); + virtual ::java::lang::String * getMinorString(); + virtual void setMinor(jint, ::java::lang::String *); + virtual ::java::lang::String * toString(); + virtual ::java::lang::String * getMessage(); +private: + ::java::lang::String * getMsg(::java::lang::String *, ::java::lang::String *); + static const jlong serialVersionUID = -2706218945227726672LL; +public: + static const jint BAD_BINDINGS = 1; + static const jint BAD_MECH = 2; + static const jint BAD_NAME = 3; + static const jint BAD_NAMETYPE = 4; + static const jint BAD_STATUS = 5; + static const jint BAD_MIC = 6; + static const jint CONTEXT_EXPIRED = 7; + static const jint CREDENTIALS_EXPIRED = 8; + static const jint DEFECTIVE_CREDENTIAL = 9; + static const jint DEFECTIVE_TOKEN = 10; + static const jint FAILURE = 11; + static const jint NO_CONTEXT = 12; + static const jint NO_CRED = 13; + static const jint BAD_QOP = 14; + static const jint UNAUTHORIZED = 15; + static const jint UNAVAILABLE = 16; + static const jint DUPLICATE_ELEMENT = 17; + static const jint NAME_NOT_MN = 18; + static const jint DUPLICATE_TOKEN = 19; + static const jint OLD_TOKEN = 20; + static const jint UNSEQ_TOKEN = 21; + static const jint GAP_TOKEN = 22; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) major; + jint minor; + ::java::lang::String * minorString; + ::java::util::ResourceBundle * messages; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_ietf_jgss_GSSException__ diff --git a/libjava/org/ietf/jgss/GSSManager.h b/libjava/org/ietf/jgss/GSSManager.h new file mode 100644 index 00000000000..c33a2bc5a4c --- /dev/null +++ b/libjava/org/ietf/jgss/GSSManager.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_GSSManager__ +#define __org_ietf_jgss_GSSManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace security + { + class Provider; + } + } + namespace org + { + namespace ietf + { + namespace jgss + { + class GSSContext; + class GSSCredential; + class GSSManager; + class GSSName; + class Oid; + } + } + } +} + +class org::ietf::jgss::GSSManager : public ::java::lang::Object +{ + +public: + GSSManager(); + static ::org::ietf::jgss::GSSManager * getInstance(); + virtual void addProviderAtEnd(::java::security::Provider *, ::org::ietf::jgss::Oid *) = 0; + virtual void addProviderAtFront(::java::security::Provider *, ::org::ietf::jgss::Oid *) = 0; + virtual ::org::ietf::jgss::GSSContext * createContext(JArray< jbyte > *) = 0; + virtual ::org::ietf::jgss::GSSContext * createContext(::org::ietf::jgss::GSSCredential *) = 0; + virtual ::org::ietf::jgss::GSSContext * createContext(::org::ietf::jgss::GSSName *, ::org::ietf::jgss::Oid *, ::org::ietf::jgss::GSSCredential *, jint) = 0; + virtual ::org::ietf::jgss::GSSCredential * createCredential(jint) = 0; + virtual ::org::ietf::jgss::GSSCredential * createCredential(::org::ietf::jgss::GSSName *, jint, ::org::ietf::jgss::Oid *, jint) = 0; + virtual ::org::ietf::jgss::GSSCredential * createCredential(::org::ietf::jgss::GSSName *, jint, JArray< ::org::ietf::jgss::Oid * > *, jint) = 0; + virtual ::org::ietf::jgss::GSSName * createName(JArray< jbyte > *, ::org::ietf::jgss::Oid *) = 0; + virtual ::org::ietf::jgss::GSSName * createName(JArray< jbyte > *, ::org::ietf::jgss::Oid *, ::org::ietf::jgss::Oid *) = 0; + virtual ::org::ietf::jgss::GSSName * createName(::java::lang::String *, ::org::ietf::jgss::Oid *) = 0; + virtual ::org::ietf::jgss::GSSName * createName(::java::lang::String *, ::org::ietf::jgss::Oid *, ::org::ietf::jgss::Oid *) = 0; + virtual JArray< ::org::ietf::jgss::Oid * > * getMechs() = 0; + virtual JArray< ::org::ietf::jgss::Oid * > * getMechsForName(::org::ietf::jgss::Oid *) = 0; + virtual JArray< ::org::ietf::jgss::Oid * > * getNamesForMech(::org::ietf::jgss::Oid *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_ietf_jgss_GSSManager__ diff --git a/libjava/org/ietf/jgss/GSSName.h b/libjava/org/ietf/jgss/GSSName.h new file mode 100644 index 00000000000..28db6a46eff --- /dev/null +++ b/libjava/org/ietf/jgss/GSSName.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_GSSName__ +#define __org_ietf_jgss_GSSName__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace ietf + { + namespace jgss + { + class GSSName; + class Oid; + } + } + } +} + +class org::ietf::jgss::GSSName : public ::java::lang::Object +{ + +public: + virtual jboolean equals(::org::ietf::jgss::GSSName *) = 0; + virtual jboolean equals(::java::lang::Object *) = 0; + virtual jint hashCode() = 0; + virtual ::org::ietf::jgss::GSSName * canonicalize(::org::ietf::jgss::Oid *) = 0; + virtual JArray< jbyte > * export$() = 0; + virtual ::java::lang::String * toString() = 0; + virtual ::org::ietf::jgss::Oid * getStringNameType() = 0; + virtual jboolean isAnonymous() = 0; + virtual jboolean isMN() = 0; + static ::org::ietf::jgss::Oid * NT_ANONYMOUS; + static ::org::ietf::jgss::Oid * NT_EXPORT_NAME; + static ::org::ietf::jgss::Oid * NT_HOSTBASED_SERVICE; + static ::org::ietf::jgss::Oid * NT_MACHINE_UID_NAME; + static ::org::ietf::jgss::Oid * NT_STRING_UID_NAME; + static ::org::ietf::jgss::Oid * NT_USER_NAME; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_ietf_jgss_GSSName__ diff --git a/libjava/org/ietf/jgss/MessageProp.h b/libjava/org/ietf/jgss/MessageProp.h new file mode 100644 index 00000000000..6cf36238351 --- /dev/null +++ b/libjava/org/ietf/jgss/MessageProp.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_MessageProp__ +#define __org_ietf_jgss_MessageProp__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace ietf + { + namespace jgss + { + class MessageProp; + } + } + } +} + +class org::ietf::jgss::MessageProp : public ::java::lang::Object +{ + +public: + MessageProp(jboolean); + MessageProp(jint, jboolean); + virtual jint getQOP(); + virtual jboolean getPrivacy(); + virtual jint getMinorStatus(); + virtual ::java::lang::String * getMinorString(); + virtual void setQOP(jint); + virtual void setPrivacy(jboolean); + virtual jboolean isDuplicateToken(); + virtual jboolean isOldToken(); + virtual jboolean isUnseqToken(); + virtual jboolean isGapToken(); + virtual void setSupplementaryStates(jboolean, jboolean, jboolean, jboolean, jint, ::java::lang::String *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) qopVal; + jboolean privState; + jboolean duplicate; + jboolean old; + jboolean unseq; + jboolean gap; + jint minorStatus; + ::java::lang::String * minorString; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_ietf_jgss_MessageProp__ diff --git a/libjava/org/ietf/jgss/Oid.h b/libjava/org/ietf/jgss/Oid.h new file mode 100644 index 00000000000..6c8c0cc275b --- /dev/null +++ b/libjava/org/ietf/jgss/Oid.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_ietf_jgss_Oid__ +#define __org_ietf_jgss_Oid__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace ietf + { + namespace jgss + { + class Oid; + } + } + } +} + +class org::ietf::jgss::Oid : public ::java::lang::Object +{ + +public: + Oid(::java::lang::String *); + Oid(::java::io::InputStream *); + Oid(JArray< jbyte > *); +public: // actually package-private + Oid(JArray< jint > *); +public: + virtual ::java::lang::String * toString(); + virtual JArray< jbyte > * getDER(); + virtual jboolean containedIn(JArray< ::org::ietf::jgss::Oid * > *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + static void encodeSubId(::java::io::OutputStream *, jint); + static const jint OBJECT_IDENTIFIER = 6; + static const jint RELATIVE_OID = 13; + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) components; + JArray< jbyte > * derOid; + ::java::lang::String * strOid; + jboolean relative; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_ietf_jgss_Oid__ diff --git a/libjava/org/omg/CORBA/ACTIVITY_COMPLETED.h b/libjava/org/omg/CORBA/ACTIVITY_COMPLETED.h new file mode 100644 index 00000000000..bddfa39d56e --- /dev/null +++ b/libjava/org/omg/CORBA/ACTIVITY_COMPLETED.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ACTIVITY_COMPLETED__ +#define __org_omg_CORBA_ACTIVITY_COMPLETED__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ACTIVITY_COMPLETED; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::ACTIVITY_COMPLETED : public ::org::omg::CORBA::SystemException +{ + +public: + ACTIVITY_COMPLETED(::java::lang::String *); + ACTIVITY_COMPLETED(); + ACTIVITY_COMPLETED(jint, ::org::omg::CORBA::CompletionStatus *); + ACTIVITY_COMPLETED(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 463786710302308798LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ACTIVITY_COMPLETED__ diff --git a/libjava/org/omg/CORBA/ACTIVITY_REQUIRED.h b/libjava/org/omg/CORBA/ACTIVITY_REQUIRED.h new file mode 100644 index 00000000000..aea3081293d --- /dev/null +++ b/libjava/org/omg/CORBA/ACTIVITY_REQUIRED.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ACTIVITY_REQUIRED__ +#define __org_omg_CORBA_ACTIVITY_REQUIRED__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ACTIVITY_REQUIRED; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::ACTIVITY_REQUIRED : public ::org::omg::CORBA::SystemException +{ + +public: + ACTIVITY_REQUIRED(::java::lang::String *); + ACTIVITY_REQUIRED(); + ACTIVITY_REQUIRED(jint, ::org::omg::CORBA::CompletionStatus *); + ACTIVITY_REQUIRED(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -5684213471781455027LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ACTIVITY_REQUIRED__ diff --git a/libjava/org/omg/CORBA/ARG_IN.h b/libjava/org/omg/CORBA/ARG_IN.h new file mode 100644 index 00000000000..55d913b0db9 --- /dev/null +++ b/libjava/org/omg/CORBA/ARG_IN.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ARG_IN__ +#define __org_omg_CORBA_ARG_IN__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ARG_IN; + } + } + } +} + +class org::omg::CORBA::ARG_IN : public ::java::lang::Object +{ + +public: + static const jint value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_ARG_IN__ diff --git a/libjava/org/omg/CORBA/ARG_INOUT.h b/libjava/org/omg/CORBA/ARG_INOUT.h new file mode 100644 index 00000000000..31b2b664a26 --- /dev/null +++ b/libjava/org/omg/CORBA/ARG_INOUT.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ARG_INOUT__ +#define __org_omg_CORBA_ARG_INOUT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ARG_INOUT; + } + } + } +} + +class org::omg::CORBA::ARG_INOUT : public ::java::lang::Object +{ + +public: + static const jint value = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_ARG_INOUT__ diff --git a/libjava/org/omg/CORBA/ARG_OUT.h b/libjava/org/omg/CORBA/ARG_OUT.h new file mode 100644 index 00000000000..aeaa6723370 --- /dev/null +++ b/libjava/org/omg/CORBA/ARG_OUT.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ARG_OUT__ +#define __org_omg_CORBA_ARG_OUT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ARG_OUT; + } + } + } +} + +class org::omg::CORBA::ARG_OUT : public ::java::lang::Object +{ + +public: + static const jint value = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_ARG_OUT__ diff --git a/libjava/org/omg/CORBA/Any.h b/libjava/org/omg/CORBA/Any.h new file mode 100644 index 00000000000..5abdbc0c12b --- /dev/null +++ b/libjava/org/omg/CORBA/Any.h @@ -0,0 +1,103 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Any__ +#define __org_omg_CORBA_Any__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class Principal; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + class Streamable; + } + } + } + } +} + +class org::omg::CORBA::Any : public ::java::lang::Object +{ + +public: + Any(); + virtual ::org::omg::CORBA::portable::InputStream * create_input_stream() = 0; + virtual ::org::omg::CORBA::portable::OutputStream * create_output_stream() = 0; + virtual jboolean equal(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Object * extract_Object() = 0; + virtual ::org::omg::CORBA::Principal * extract_Principal(); + virtual ::org::omg::CORBA::portable::Streamable * extract_Streamable(); + virtual ::org::omg::CORBA::TypeCode * extract_TypeCode() = 0; + virtual ::java::io::Serializable * extract_Value() = 0; + virtual ::org::omg::CORBA::Any * extract_any() = 0; + virtual jboolean extract_boolean() = 0; + virtual jchar extract_char() = 0; + virtual jdouble extract_double() = 0; + virtual ::java::math::BigDecimal * extract_fixed(); + virtual jfloat extract_float() = 0; + virtual jint extract_long() = 0; + virtual jlong extract_longlong() = 0; + virtual jbyte extract_octet() = 0; + virtual jshort extract_short() = 0; + virtual ::java::lang::String * extract_string() = 0; + virtual jint extract_ulong() = 0; + virtual jlong extract_ulonglong() = 0; + virtual jshort extract_ushort() = 0; + virtual jchar extract_wchar() = 0; + virtual ::java::lang::String * extract_wstring() = 0; + virtual void insert_Object(::org::omg::CORBA::Object *, ::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_Object(::org::omg::CORBA::Object *) = 0; + virtual void insert_Principal(::org::omg::CORBA::Principal *); + virtual void insert_Streamable(::org::omg::CORBA::portable::Streamable *); + virtual void insert_TypeCode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_Value(::java::io::Serializable *, ::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_Value(::java::io::Serializable *) = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_fixed(::java::math::BigDecimal *, ::org::omg::CORBA::TypeCode *); + virtual void insert_fixed(::java::math::BigDecimal *); + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual void read_value(::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::TypeCode *) = 0; + virtual void type(::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void write_value(::org::omg::CORBA::portable::OutputStream *) = 0; +private: + static const jlong serialVersionUID = 1217179597823814463LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_Any__ diff --git a/libjava/org/omg/CORBA/AnyHolder.h b/libjava/org/omg/CORBA/AnyHolder.h new file mode 100644 index 00000000000..9c5dacad5c6 --- /dev/null +++ b/libjava/org/omg/CORBA/AnyHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_AnyHolder__ +#define __org_omg_CORBA_AnyHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class AnyHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::AnyHolder : public ::java::lang::Object +{ + +public: + AnyHolder(); + AnyHolder(::org::omg::CORBA::Any *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_any; +public: + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_AnyHolder__ diff --git a/libjava/org/omg/CORBA/AnySeqHelper.h b/libjava/org/omg/CORBA/AnySeqHelper.h new file mode 100644 index 00000000000..4f77210f820 --- /dev/null +++ b/libjava/org/omg/CORBA/AnySeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_AnySeqHelper__ +#define __org_omg_CORBA_AnySeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class AnySeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::AnySeqHelper : public ::java::lang::Object +{ + +public: + AnySeqHelper(); + static JArray< ::org::omg::CORBA::Any * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::CORBA::Any * > *); + static JArray< ::org::omg::CORBA::Any * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::CORBA::Any * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_AnySeqHelper__ diff --git a/libjava/org/omg/CORBA/AnySeqHolder.h b/libjava/org/omg/CORBA/AnySeqHolder.h new file mode 100644 index 00000000000..90702c285af --- /dev/null +++ b/libjava/org/omg/CORBA/AnySeqHolder.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_AnySeqHolder__ +#define __org_omg_CORBA_AnySeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class AnySeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::AnySeqHolder : public ::java::lang::Object +{ + +public: + AnySeqHolder(); + AnySeqHolder(JArray< ::org::omg::CORBA::Any * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< ::org::omg::CORBA::Any * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_AnySeqHolder__ diff --git a/libjava/org/omg/CORBA/BAD_CONTEXT.h b/libjava/org/omg/CORBA/BAD_CONTEXT.h new file mode 100644 index 00000000000..f582be59dc8 --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_CONTEXT.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_CONTEXT__ +#define __org_omg_CORBA_BAD_CONTEXT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_CONTEXT; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::BAD_CONTEXT : public ::org::omg::CORBA::SystemException +{ + +public: + BAD_CONTEXT(::java::lang::String *); + BAD_CONTEXT(); + BAD_CONTEXT(jint, ::org::omg::CORBA::CompletionStatus *); + BAD_CONTEXT(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -5025677944847478264LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BAD_CONTEXT__ diff --git a/libjava/org/omg/CORBA/BAD_INV_ORDER.h b/libjava/org/omg/CORBA/BAD_INV_ORDER.h new file mode 100644 index 00000000000..8adb8015974 --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_INV_ORDER.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_INV_ORDER__ +#define __org_omg_CORBA_BAD_INV_ORDER__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_INV_ORDER; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::BAD_INV_ORDER : public ::org::omg::CORBA::SystemException +{ + +public: + BAD_INV_ORDER(::java::lang::String *); + BAD_INV_ORDER(); + BAD_INV_ORDER(jint, ::org::omg::CORBA::CompletionStatus *); + BAD_INV_ORDER(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 7273325995832240406LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BAD_INV_ORDER__ diff --git a/libjava/org/omg/CORBA/BAD_OPERATION.h b/libjava/org/omg/CORBA/BAD_OPERATION.h new file mode 100644 index 00000000000..16b0214610b --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_OPERATION.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_OPERATION__ +#define __org_omg_CORBA_BAD_OPERATION__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_OPERATION; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::BAD_OPERATION : public ::org::omg::CORBA::SystemException +{ + +public: + BAD_OPERATION(::java::lang::String *); + BAD_OPERATION(); + BAD_OPERATION(jint, ::org::omg::CORBA::CompletionStatus *); + BAD_OPERATION(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 1654621651720499682LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BAD_OPERATION__ diff --git a/libjava/org/omg/CORBA/BAD_PARAM.h b/libjava/org/omg/CORBA/BAD_PARAM.h new file mode 100644 index 00000000000..8be70c2f0a9 --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_PARAM.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_PARAM__ +#define __org_omg_CORBA_BAD_PARAM__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_PARAM; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::BAD_PARAM : public ::org::omg::CORBA::SystemException +{ + +public: + BAD_PARAM(::java::lang::String *); + BAD_PARAM(); + BAD_PARAM(jint, ::org::omg::CORBA::CompletionStatus *); + BAD_PARAM(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 1917109334939470379LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BAD_PARAM__ diff --git a/libjava/org/omg/CORBA/BAD_POLICY.h b/libjava/org/omg/CORBA/BAD_POLICY.h new file mode 100644 index 00000000000..400b7a8a3ce --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_POLICY.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_POLICY__ +#define __org_omg_CORBA_BAD_POLICY__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_POLICY; + } + } + } +} + +class org::omg::CORBA::BAD_POLICY : public ::java::lang::Object +{ + +public: + static const jshort value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_BAD_POLICY__ diff --git a/libjava/org/omg/CORBA/BAD_POLICY_TYPE.h b/libjava/org/omg/CORBA/BAD_POLICY_TYPE.h new file mode 100644 index 00000000000..4234fcb278a --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_POLICY_TYPE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_POLICY_TYPE__ +#define __org_omg_CORBA_BAD_POLICY_TYPE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_POLICY_TYPE; + } + } + } +} + +class org::omg::CORBA::BAD_POLICY_TYPE : public ::java::lang::Object +{ + +public: + static const jshort value = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_BAD_POLICY_TYPE__ diff --git a/libjava/org/omg/CORBA/BAD_POLICY_VALUE.h b/libjava/org/omg/CORBA/BAD_POLICY_VALUE.h new file mode 100644 index 00000000000..d41efcdc512 --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_POLICY_VALUE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_POLICY_VALUE__ +#define __org_omg_CORBA_BAD_POLICY_VALUE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_POLICY_VALUE; + } + } + } +} + +class org::omg::CORBA::BAD_POLICY_VALUE : public ::java::lang::Object +{ + +public: + static const jshort value = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_BAD_POLICY_VALUE__ diff --git a/libjava/org/omg/CORBA/BAD_QOS.h b/libjava/org/omg/CORBA/BAD_QOS.h new file mode 100644 index 00000000000..44e354f9543 --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_QOS.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_QOS__ +#define __org_omg_CORBA_BAD_QOS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_QOS; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::BAD_QOS : public ::org::omg::CORBA::SystemException +{ + +public: + BAD_QOS(::java::lang::String *); + BAD_QOS(); + BAD_QOS(jint, ::org::omg::CORBA::CompletionStatus *); + BAD_QOS(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 4746597571263117454LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BAD_QOS__ diff --git a/libjava/org/omg/CORBA/BAD_TYPECODE.h b/libjava/org/omg/CORBA/BAD_TYPECODE.h new file mode 100644 index 00000000000..36e6bd814e0 --- /dev/null +++ b/libjava/org/omg/CORBA/BAD_TYPECODE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BAD_TYPECODE__ +#define __org_omg_CORBA_BAD_TYPECODE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BAD_TYPECODE; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::BAD_TYPECODE : public ::org::omg::CORBA::SystemException +{ + +public: + BAD_TYPECODE(::java::lang::String *); + BAD_TYPECODE(); + BAD_TYPECODE(jint, ::org::omg::CORBA::CompletionStatus *); + BAD_TYPECODE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 6193364410915696901LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BAD_TYPECODE__ diff --git a/libjava/org/omg/CORBA/BooleanHolder.h b/libjava/org/omg/CORBA/BooleanHolder.h new file mode 100644 index 00000000000..3dc9cbe85db --- /dev/null +++ b/libjava/org/omg/CORBA/BooleanHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BooleanHolder__ +#define __org_omg_CORBA_BooleanHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class BooleanHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::BooleanHolder : public ::java::lang::Object +{ + +public: + BooleanHolder(); + BooleanHolder(jboolean); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_boolean; +public: + jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BooleanHolder__ diff --git a/libjava/org/omg/CORBA/BooleanSeqHelper.h b/libjava/org/omg/CORBA/BooleanSeqHelper.h new file mode 100644 index 00000000000..1cb155934b7 --- /dev/null +++ b/libjava/org/omg/CORBA/BooleanSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BooleanSeqHelper__ +#define __org_omg_CORBA_BooleanSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class BooleanSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::BooleanSeqHelper : public ::java::lang::Object +{ + +public: + BooleanSeqHelper(); + static JArray< jboolean > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jboolean > *); + static JArray< jboolean > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jboolean > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BooleanSeqHelper__ diff --git a/libjava/org/omg/CORBA/BooleanSeqHolder.h b/libjava/org/omg/CORBA/BooleanSeqHolder.h new file mode 100644 index 00000000000..54b15ab2b3f --- /dev/null +++ b/libjava/org/omg/CORBA/BooleanSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_BooleanSeqHolder__ +#define __org_omg_CORBA_BooleanSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class BooleanSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::BooleanSeqHolder : public ::java::lang::Object +{ + +public: + BooleanSeqHolder(); + BooleanSeqHolder(JArray< jboolean > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jboolean > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_BooleanSeqHolder__ diff --git a/libjava/org/omg/CORBA/Bounds.h b/libjava/org/omg/CORBA/Bounds.h new file mode 100644 index 00000000000..1a7ff407ecf --- /dev/null +++ b/libjava/org/omg/CORBA/Bounds.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Bounds__ +#define __org_omg_CORBA_Bounds__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Bounds; + } + } + } +} + +class org::omg::CORBA::Bounds : public ::org::omg::CORBA::UserException +{ + +public: + Bounds(); + Bounds(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_Bounds__ diff --git a/libjava/org/omg/CORBA/ByteHolder.h b/libjava/org/omg/CORBA/ByteHolder.h new file mode 100644 index 00000000000..ca90136beef --- /dev/null +++ b/libjava/org/omg/CORBA/ByteHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ByteHolder__ +#define __org_omg_CORBA_ByteHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ByteHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ByteHolder : public ::java::lang::Object +{ + +public: + ByteHolder(); + ByteHolder(jbyte); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_octet; +public: + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ByteHolder__ diff --git a/libjava/org/omg/CORBA/CODESET_INCOMPATIBLE.h b/libjava/org/omg/CORBA/CODESET_INCOMPATIBLE.h new file mode 100644 index 00000000000..9131a8b6b33 --- /dev/null +++ b/libjava/org/omg/CORBA/CODESET_INCOMPATIBLE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CODESET_INCOMPATIBLE__ +#define __org_omg_CORBA_CODESET_INCOMPATIBLE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CODESET_INCOMPATIBLE; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::CODESET_INCOMPATIBLE : public ::org::omg::CORBA::SystemException +{ + +public: + CODESET_INCOMPATIBLE(::java::lang::String *); + CODESET_INCOMPATIBLE(); + CODESET_INCOMPATIBLE(jint, ::org::omg::CORBA::CompletionStatus *); + CODESET_INCOMPATIBLE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -8784048396454171789LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CODESET_INCOMPATIBLE__ diff --git a/libjava/org/omg/CORBA/COMM_FAILURE.h b/libjava/org/omg/CORBA/COMM_FAILURE.h new file mode 100644 index 00000000000..1ceb10d5ad4 --- /dev/null +++ b/libjava/org/omg/CORBA/COMM_FAILURE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_COMM_FAILURE__ +#define __org_omg_CORBA_COMM_FAILURE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class COMM_FAILURE; + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::COMM_FAILURE : public ::org::omg::CORBA::SystemException +{ + +public: + COMM_FAILURE(::java::lang::String *); + COMM_FAILURE(); + COMM_FAILURE(jint, ::org::omg::CORBA::CompletionStatus *); + COMM_FAILURE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 294856734784364267LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_COMM_FAILURE__ diff --git a/libjava/org/omg/CORBA/CTX_RESTRICT_SCOPE.h b/libjava/org/omg/CORBA/CTX_RESTRICT_SCOPE.h new file mode 100644 index 00000000000..1d58dc24801 --- /dev/null +++ b/libjava/org/omg/CORBA/CTX_RESTRICT_SCOPE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CTX_RESTRICT_SCOPE__ +#define __org_omg_CORBA_CTX_RESTRICT_SCOPE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CTX_RESTRICT_SCOPE; + } + } + } +} + +class org::omg::CORBA::CTX_RESTRICT_SCOPE : public ::java::lang::Object +{ + +public: + static const jint value = 15; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_CTX_RESTRICT_SCOPE__ diff --git a/libjava/org/omg/CORBA/CharHolder.h b/libjava/org/omg/CORBA/CharHolder.h new file mode 100644 index 00000000000..78a1e7e8fbf --- /dev/null +++ b/libjava/org/omg/CORBA/CharHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CharHolder__ +#define __org_omg_CORBA_CharHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CharHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::CharHolder : public ::java::lang::Object +{ + +public: + CharHolder(); + CharHolder(jchar); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_char; +public: + jchar __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CharHolder__ diff --git a/libjava/org/omg/CORBA/CharSeqHelper.h b/libjava/org/omg/CORBA/CharSeqHelper.h new file mode 100644 index 00000000000..b6e4bb67f3e --- /dev/null +++ b/libjava/org/omg/CORBA/CharSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CharSeqHelper__ +#define __org_omg_CORBA_CharSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class CharSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::CharSeqHelper : public ::java::lang::Object +{ + +public: + CharSeqHelper(); + static JArray< jchar > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jchar > *); + static JArray< jchar > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jchar > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CharSeqHelper__ diff --git a/libjava/org/omg/CORBA/CharSeqHolder.h b/libjava/org/omg/CORBA/CharSeqHolder.h new file mode 100644 index 00000000000..b0dbd15ed57 --- /dev/null +++ b/libjava/org/omg/CORBA/CharSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CharSeqHolder__ +#define __org_omg_CORBA_CharSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class CharSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::CharSeqHolder : public ::java::lang::Object +{ + +public: + CharSeqHolder(); + CharSeqHolder(JArray< jchar > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jchar > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CharSeqHolder__ diff --git a/libjava/org/omg/CORBA/CompletionStatus.h b/libjava/org/omg/CORBA/CompletionStatus.h new file mode 100644 index 00000000000..f76b1a8e554 --- /dev/null +++ b/libjava/org/omg/CORBA/CompletionStatus.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CompletionStatus__ +#define __org_omg_CORBA_CompletionStatus__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + } + } + } +} + +class org::omg::CORBA::CompletionStatus : public ::java::lang::Object +{ + + CompletionStatus(jint); +public: + static ::org::omg::CORBA::CompletionStatus * from_int(jint); + ::java::lang::String * toString(); + jint value(); +private: + static const jlong serialVersionUID = -9047319660881406859LL; +public: + static const jint _COMPLETED_YES = 0; + static const jint _COMPLETED_NO = 1; + static const jint _COMPLETED_MAYBE = 2; + static ::org::omg::CORBA::CompletionStatus * COMPLETED_YES; + static ::org::omg::CORBA::CompletionStatus * COMPLETED_NO; + static ::org::omg::CORBA::CompletionStatus * COMPLETED_MAYBE; +private: + static JArray< ::org::omg::CORBA::CompletionStatus * > * states; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CompletionStatus__ diff --git a/libjava/org/omg/CORBA/CompletionStatusHelper.h b/libjava/org/omg/CORBA/CompletionStatusHelper.h new file mode 100644 index 00000000000..8255f067dda --- /dev/null +++ b/libjava/org/omg/CORBA/CompletionStatusHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CompletionStatusHelper__ +#define __org_omg_CORBA_CompletionStatusHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class CompletionStatus; + class CompletionStatusHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::CompletionStatusHelper : public ::java::lang::Object +{ + +public: + CompletionStatusHelper(); + static ::org::omg::CORBA::CompletionStatus * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::CompletionStatus *); + static ::org::omg::CORBA::CompletionStatus * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::CompletionStatus *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CompletionStatusHelper__ diff --git a/libjava/org/omg/CORBA/Context.h b/libjava/org/omg/CORBA/Context.h new file mode 100644 index 00000000000..d0ec3044c08 --- /dev/null +++ b/libjava/org/omg/CORBA/Context.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Context__ +#define __org_omg_CORBA_Context__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class NVList; + } + } + } +} + +class org::omg::CORBA::Context : public ::java::lang::Object +{ + +public: + Context(); + virtual ::java::lang::String * context_name() = 0; + virtual ::org::omg::CORBA::Context * create_child(::java::lang::String *) = 0; + virtual void delete_values(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::NVList * get_values(::java::lang::String *, jint, ::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Context * parent() = 0; + virtual void set_one_value(::java::lang::String *, ::org::omg::CORBA::Any *) = 0; + virtual void set_values(::org::omg::CORBA::NVList *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_Context__ diff --git a/libjava/org/omg/CORBA/ContextList.h b/libjava/org/omg/CORBA/ContextList.h new file mode 100644 index 00000000000..4b6c3e11028 --- /dev/null +++ b/libjava/org/omg/CORBA/ContextList.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ContextList__ +#define __org_omg_CORBA_ContextList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ContextList; + } + } + } +} + +class org::omg::CORBA::ContextList : public ::java::lang::Object +{ + +public: + ContextList(); + virtual void add(::java::lang::String *) = 0; + virtual jint count() = 0; + virtual ::java::lang::String * item(jint) = 0; + virtual void remove(jint) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ContextList__ diff --git a/libjava/org/omg/CORBA/Current.h b/libjava/org/omg/CORBA/Current.h new file mode 100644 index 00000000000..75fde138615 --- /dev/null +++ b/libjava/org/omg/CORBA/Current.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Current__ +#define __org_omg_CORBA_Current__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class Current; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + } + } +} + +class org::omg::CORBA::Current : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_Current__ diff --git a/libjava/org/omg/CORBA/CurrentHelper$_CurrentStub.h b/libjava/org/omg/CORBA/CurrentHelper$_CurrentStub.h new file mode 100644 index 00000000000..bcfc438d474 --- /dev/null +++ b/libjava/org/omg/CORBA/CurrentHelper$_CurrentStub.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CurrentHelper$_CurrentStub__ +#define __org_omg_CORBA_CurrentHelper$_CurrentStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CurrentHelper$_CurrentStub; + namespace portable + { + class Delegate; + } + } + } + } +} + +class org::omg::CORBA::CurrentHelper$_CurrentStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + CurrentHelper$_CurrentStub(::org::omg::CORBA::portable::Delegate *); + virtual JArray< ::java::lang::String * > * _ids(); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CurrentHelper$_CurrentStub__ diff --git a/libjava/org/omg/CORBA/CurrentHelper.h b/libjava/org/omg/CORBA/CurrentHelper.h new file mode 100644 index 00000000000..c698b0ee18a --- /dev/null +++ b/libjava/org/omg/CORBA/CurrentHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CurrentHelper__ +#define __org_omg_CORBA_CurrentHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Current; + class CurrentHelper; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::CurrentHelper : public ::java::lang::Object +{ + +public: + CurrentHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::Current *); + static ::org::omg::CORBA::Current * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::CORBA::Current * narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::Current * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::Current *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CurrentHelper__ diff --git a/libjava/org/omg/CORBA/CurrentHolder.h b/libjava/org/omg/CORBA/CurrentHolder.h new file mode 100644 index 00000000000..56f4c54532c --- /dev/null +++ b/libjava/org/omg/CORBA/CurrentHolder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CurrentHolder__ +#define __org_omg_CORBA_CurrentHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Current; + class CurrentHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::CurrentHolder : public ::java::lang::Object +{ + +public: + CurrentHolder(); + CurrentHolder(::org::omg::CORBA::Current *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::CORBA::Current * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_CurrentHolder__ diff --git a/libjava/org/omg/CORBA/CurrentOperations.h b/libjava/org/omg/CORBA/CurrentOperations.h new file mode 100644 index 00000000000..52931e26fa3 --- /dev/null +++ b/libjava/org/omg/CORBA/CurrentOperations.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CurrentOperations__ +#define __org_omg_CORBA_CurrentOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CurrentOperations; + } + } + } +} + +class org::omg::CORBA::CurrentOperations : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_CurrentOperations__ diff --git a/libjava/org/omg/CORBA/CustomMarshal.h b/libjava/org/omg/CORBA/CustomMarshal.h new file mode 100644 index 00000000000..a703b3fa4eb --- /dev/null +++ b/libjava/org/omg/CORBA/CustomMarshal.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CustomMarshal__ +#define __org_omg_CORBA_CustomMarshal__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CustomMarshal; + class DataInputStream; + class DataOutputStream; + } + } + } +} + +class org::omg::CORBA::CustomMarshal : public ::java::lang::Object +{ + +public: + virtual void marshal(::org::omg::CORBA::DataOutputStream *) = 0; + virtual void unmarshal(::org::omg::CORBA::DataInputStream *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_CustomMarshal__ diff --git a/libjava/org/omg/CORBA/CustomValue.h b/libjava/org/omg/CORBA/CustomValue.h new file mode 100644 index 00000000000..8c3d485caaa --- /dev/null +++ b/libjava/org/omg/CORBA/CustomValue.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_CustomValue__ +#define __org_omg_CORBA_CustomValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CustomValue; + class DataInputStream; + class DataOutputStream; + } + } + } +} + +class org::omg::CORBA::CustomValue : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + virtual void marshal(::org::omg::CORBA::DataOutputStream *) = 0; + virtual void unmarshal(::org::omg::CORBA::DataInputStream *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_CustomValue__ diff --git a/libjava/org/omg/CORBA/DATA_CONVERSION.h b/libjava/org/omg/CORBA/DATA_CONVERSION.h new file mode 100644 index 00000000000..2bcad19b96c --- /dev/null +++ b/libjava/org/omg/CORBA/DATA_CONVERSION.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DATA_CONVERSION__ +#define __org_omg_CORBA_DATA_CONVERSION__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class DATA_CONVERSION; + } + } + } +} + +class org::omg::CORBA::DATA_CONVERSION : public ::org::omg::CORBA::SystemException +{ + +public: + DATA_CONVERSION(::java::lang::String *); + DATA_CONVERSION(); + DATA_CONVERSION(jint, ::org::omg::CORBA::CompletionStatus *); + DATA_CONVERSION(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 1874869932271600956LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DATA_CONVERSION__ diff --git a/libjava/org/omg/CORBA/DataInputStream.h b/libjava/org/omg/CORBA/DataInputStream.h new file mode 100644 index 00000000000..e62a9b57bd8 --- /dev/null +++ b/libjava/org/omg/CORBA/DataInputStream.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DataInputStream__ +#define __org_omg_CORBA_DataInputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class AnySeqHolder; + class BooleanSeqHolder; + class CharSeqHolder; + class DataInputStream; + class DoubleSeqHolder; + class FloatSeqHolder; + class LongLongSeqHolder; + class LongSeqHolder; + class Object; + class OctetSeqHolder; + class ShortSeqHolder; + class TypeCode; + class ULongLongSeqHolder; + class ULongSeqHolder; + class UShortSeqHolder; + class WCharSeqHolder; + } + } + } +} + +class org::omg::CORBA::DataInputStream : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Any * read_any() = 0; + virtual jboolean read_boolean() = 0; + virtual jchar read_char() = 0; + virtual jchar read_wchar() = 0; + virtual jbyte read_octet() = 0; + virtual jshort read_short() = 0; + virtual jshort read_ushort() = 0; + virtual jint read_long() = 0; + virtual jint read_ulong() = 0; + virtual jlong read_longlong() = 0; + virtual jlong read_ulonglong() = 0; + virtual jfloat read_float() = 0; + virtual jdouble read_double() = 0; + virtual ::java::lang::String * read_string() = 0; + virtual ::java::lang::String * read_wstring() = 0; + virtual ::org::omg::CORBA::Object * read_Object() = 0; + virtual ::java::lang::Object * read_Abstract() = 0; + virtual ::java::io::Serializable * read_Value() = 0; + virtual ::org::omg::CORBA::TypeCode * read_TypeCode() = 0; + virtual void read_any_array(::org::omg::CORBA::AnySeqHolder *, jint, jint) = 0; + virtual void read_boolean_array(::org::omg::CORBA::BooleanSeqHolder *, jint, jint) = 0; + virtual void read_char_array(::org::omg::CORBA::CharSeqHolder *, jint, jint) = 0; + virtual void read_wchar_array(::org::omg::CORBA::WCharSeqHolder *, jint, jint) = 0; + virtual void read_octet_array(::org::omg::CORBA::OctetSeqHolder *, jint, jint) = 0; + virtual void read_short_array(::org::omg::CORBA::ShortSeqHolder *, jint, jint) = 0; + virtual void read_ushort_array(::org::omg::CORBA::UShortSeqHolder *, jint, jint) = 0; + virtual void read_long_array(::org::omg::CORBA::LongSeqHolder *, jint, jint) = 0; + virtual void read_ulong_array(::org::omg::CORBA::ULongSeqHolder *, jint, jint) = 0; + virtual void read_ulonglong_array(::org::omg::CORBA::ULongLongSeqHolder *, jint, jint) = 0; + virtual void read_longlong_array(::org::omg::CORBA::LongLongSeqHolder *, jint, jint) = 0; + virtual void read_float_array(::org::omg::CORBA::FloatSeqHolder *, jint, jint) = 0; + virtual void read_double_array(::org::omg::CORBA::DoubleSeqHolder *, jint, jint) = 0; + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DataInputStream__ diff --git a/libjava/org/omg/CORBA/DataOutputStream.h b/libjava/org/omg/CORBA/DataOutputStream.h new file mode 100644 index 00000000000..27022f33c7c --- /dev/null +++ b/libjava/org/omg/CORBA/DataOutputStream.h @@ -0,0 +1,69 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DataOutputStream__ +#define __org_omg_CORBA_DataOutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class DataOutputStream; + class Object; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DataOutputStream : public ::java::lang::Object +{ + +public: + virtual void write_any(::org::omg::CORBA::Any *) = 0; + virtual void write_boolean(jboolean) = 0; + virtual void write_char(jchar) = 0; + virtual void write_wchar(jchar) = 0; + virtual void write_octet(jbyte) = 0; + virtual void write_short(jshort) = 0; + virtual void write_ushort(jshort) = 0; + virtual void write_long(jint) = 0; + virtual void write_ulong(jint) = 0; + virtual void write_longlong(jlong) = 0; + virtual void write_ulonglong(jlong) = 0; + virtual void write_float(jfloat) = 0; + virtual void write_double(jdouble) = 0; + virtual void write_string(::java::lang::String *) = 0; + virtual void write_wstring(::java::lang::String *) = 0; + virtual void write_Object(::org::omg::CORBA::Object *) = 0; + virtual void write_Abstract(::java::lang::Object *) = 0; + virtual void write_Value(::java::io::Serializable *) = 0; + virtual void write_TypeCode(::org::omg::CORBA::TypeCode *) = 0; + virtual void write_any_array(JArray< ::org::omg::CORBA::Any * > *, jint, jint) = 0; + virtual void write_boolean_array(JArray< jboolean > *, jint, jint) = 0; + virtual void write_char_array(JArray< jchar > *, jint, jint) = 0; + virtual void write_wchar_array(JArray< jchar > *, jint, jint) = 0; + virtual void write_octet_array(JArray< jbyte > *, jint, jint) = 0; + virtual void write_short_array(JArray< jshort > *, jint, jint) = 0; + virtual void write_ushort_array(JArray< jshort > *, jint, jint) = 0; + virtual void write_long_array(JArray< jint > *, jint, jint) = 0; + virtual void write_ulong_array(JArray< jint > *, jint, jint) = 0; + virtual void write_ulonglong_array(JArray< jlong > *, jint, jint) = 0; + virtual void write_longlong_array(JArray< jlong > *, jint, jint) = 0; + virtual void write_float_array(JArray< jfloat > *, jint, jint) = 0; + virtual void write_double_array(JArray< jdouble > *, jint, jint) = 0; + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DataOutputStream__ diff --git a/libjava/org/omg/CORBA/DefinitionKind.h b/libjava/org/omg/CORBA/DefinitionKind.h new file mode 100644 index 00000000000..ca511531656 --- /dev/null +++ b/libjava/org/omg/CORBA/DefinitionKind.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DefinitionKind__ +#define __org_omg_CORBA_DefinitionKind__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DefinitionKind; + } + } + } +} + +class org::omg::CORBA::DefinitionKind : public ::java::lang::Object +{ + +public: // actually protected + DefinitionKind(jint); +public: + virtual jint value(); + static ::org::omg::CORBA::DefinitionKind * from_int(jint); +private: + static void fill_table(); + static const jlong serialVersionUID = -8601167576704143376LL; +public: + static const jint _dk_none = 0; + static const jint _dk_all = 1; + static const jint _dk_Attribute = 2; + static const jint _dk_Constant = 3; + static const jint _dk_Exception = 4; + static const jint _dk_Interface = 5; + static const jint _dk_Module = 6; + static const jint _dk_Operation = 7; + static const jint _dk_Typedef = 8; + static const jint _dk_Alias = 9; + static const jint _dk_Struct = 10; + static const jint _dk_Union = 11; + static const jint _dk_Enum = 12; + static const jint _dk_Primitive = 13; + static const jint _dk_String = 14; + static const jint _dk_Sequence = 15; + static const jint _dk_Array = 16; + static const jint _dk_Repository = 17; + static const jint _dk_Wstring = 18; + static const jint _dk_Fixed = 19; + static const jint _dk_Value = 20; + static const jint _dk_ValueBox = 21; + static const jint _dk_ValueMember = 22; + static const jint _dk_Native = 23; + static const jint _dk_AbstractInterface = 24; + static ::org::omg::CORBA::DefinitionKind * dk_none; + static ::org::omg::CORBA::DefinitionKind * dk_all; + static ::org::omg::CORBA::DefinitionKind * dk_Attribute; + static ::org::omg::CORBA::DefinitionKind * dk_Constant; + static ::org::omg::CORBA::DefinitionKind * dk_Exception; + static ::org::omg::CORBA::DefinitionKind * dk_Interface; + static ::org::omg::CORBA::DefinitionKind * dk_Module; + static ::org::omg::CORBA::DefinitionKind * dk_Operation; + static ::org::omg::CORBA::DefinitionKind * dk_Typedef; + static ::org::omg::CORBA::DefinitionKind * dk_Alias; + static ::org::omg::CORBA::DefinitionKind * dk_Struct; + static ::org::omg::CORBA::DefinitionKind * dk_Union; + static ::org::omg::CORBA::DefinitionKind * dk_Enum; + static ::org::omg::CORBA::DefinitionKind * dk_Primitive; + static ::org::omg::CORBA::DefinitionKind * dk_String; + static ::org::omg::CORBA::DefinitionKind * dk_Sequence; + static ::org::omg::CORBA::DefinitionKind * dk_Array; + static ::org::omg::CORBA::DefinitionKind * dk_Repository; + static ::org::omg::CORBA::DefinitionKind * dk_Wstring; + static ::org::omg::CORBA::DefinitionKind * dk_Fixed; + static ::org::omg::CORBA::DefinitionKind * dk_Value; + static ::org::omg::CORBA::DefinitionKind * dk_ValueBox; + static ::org::omg::CORBA::DefinitionKind * dk_ValueMember; + static ::org::omg::CORBA::DefinitionKind * dk_Native; + static ::org::omg::CORBA::DefinitionKind * dk_AbstractInterface; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) kind; + static JArray< ::org::omg::CORBA::DefinitionKind * > * table; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DefinitionKind__ diff --git a/libjava/org/omg/CORBA/DefinitionKindHelper.h b/libjava/org/omg/CORBA/DefinitionKindHelper.h new file mode 100644 index 00000000000..8fdb6014b11 --- /dev/null +++ b/libjava/org/omg/CORBA/DefinitionKindHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DefinitionKindHelper__ +#define __org_omg_CORBA_DefinitionKindHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class DefinitionKind; + class DefinitionKindHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::DefinitionKindHelper : public ::java::lang::Object +{ + +public: + DefinitionKindHelper(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::DefinitionKind *); + static ::org::omg::CORBA::DefinitionKind * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::org::omg::CORBA::DefinitionKind * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::DefinitionKind *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DefinitionKindHelper__ diff --git a/libjava/org/omg/CORBA/DomainManager.h b/libjava/org/omg/CORBA/DomainManager.h new file mode 100644 index 00000000000..15d5e84348c --- /dev/null +++ b/libjava/org/omg/CORBA/DomainManager.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DomainManager__ +#define __org_omg_CORBA_DomainManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + } + } +} + +class org::omg::CORBA::DomainManager : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * get_domain_policy(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DomainManager__ diff --git a/libjava/org/omg/CORBA/DomainManagerOperations.h b/libjava/org/omg/CORBA/DomainManagerOperations.h new file mode 100644 index 00000000000..a75c1456823 --- /dev/null +++ b/libjava/org/omg/CORBA/DomainManagerOperations.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DomainManagerOperations__ +#define __org_omg_CORBA_DomainManagerOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DomainManagerOperations; + class Policy; + } + } + } +} + +class org::omg::CORBA::DomainManagerOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Policy * get_domain_policy(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DomainManagerOperations__ diff --git a/libjava/org/omg/CORBA/DoubleHolder.h b/libjava/org/omg/CORBA/DoubleHolder.h new file mode 100644 index 00000000000..8702c14bf9f --- /dev/null +++ b/libjava/org/omg/CORBA/DoubleHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DoubleHolder__ +#define __org_omg_CORBA_DoubleHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DoubleHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::DoubleHolder : public ::java::lang::Object +{ + +public: + DoubleHolder(); + DoubleHolder(jdouble); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_double; +public: + jdouble __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DoubleHolder__ diff --git a/libjava/org/omg/CORBA/DoubleSeqHelper.h b/libjava/org/omg/CORBA/DoubleSeqHelper.h new file mode 100644 index 00000000000..9a6aa080e89 --- /dev/null +++ b/libjava/org/omg/CORBA/DoubleSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DoubleSeqHelper__ +#define __org_omg_CORBA_DoubleSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class DoubleSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::DoubleSeqHelper : public ::java::lang::Object +{ + +public: + DoubleSeqHelper(); + static JArray< jdouble > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jdouble > *); + static JArray< jdouble > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jdouble > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DoubleSeqHelper__ diff --git a/libjava/org/omg/CORBA/DoubleSeqHolder.h b/libjava/org/omg/CORBA/DoubleSeqHolder.h new file mode 100644 index 00000000000..ec2bc43eb26 --- /dev/null +++ b/libjava/org/omg/CORBA/DoubleSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DoubleSeqHolder__ +#define __org_omg_CORBA_DoubleSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class DoubleSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::DoubleSeqHolder : public ::java::lang::Object +{ + +public: + DoubleSeqHolder(); + DoubleSeqHolder(JArray< jdouble > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jdouble > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DoubleSeqHolder__ diff --git a/libjava/org/omg/CORBA/DynAny.h b/libjava/org/omg/CORBA/DynAny.h new file mode 100644 index 00000000000..2707f4b1cd3 --- /dev/null +++ b/libjava/org/omg/CORBA/DynAny.h @@ -0,0 +1,104 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynAny__ +#define __org_omg_CORBA_DynAny__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynAny : public ::java::lang::Object +{ + +public: + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynAny__ diff --git a/libjava/org/omg/CORBA/DynAnyPackage/Invalid.h b/libjava/org/omg/CORBA/DynAnyPackage/Invalid.h new file mode 100644 index 00000000000..1b12748c89f --- /dev/null +++ b/libjava/org/omg/CORBA/DynAnyPackage/Invalid.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynAnyPackage_Invalid__ +#define __org_omg_CORBA_DynAnyPackage_Invalid__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace DynAnyPackage + { + class Invalid; + } + } + } + } +} + +class org::omg::CORBA::DynAnyPackage::Invalid : public ::org::omg::CORBA::UserException +{ + +public: + Invalid(); + Invalid(::java::lang::String *); +private: + static const jlong serialVersionUID = -8258194490767575588LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DynAnyPackage_Invalid__ diff --git a/libjava/org/omg/CORBA/DynAnyPackage/InvalidSeq.h b/libjava/org/omg/CORBA/DynAnyPackage/InvalidSeq.h new file mode 100644 index 00000000000..c14980542fb --- /dev/null +++ b/libjava/org/omg/CORBA/DynAnyPackage/InvalidSeq.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynAnyPackage_InvalidSeq__ +#define __org_omg_CORBA_DynAnyPackage_InvalidSeq__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace DynAnyPackage + { + class InvalidSeq; + } + } + } + } +} + +class org::omg::CORBA::DynAnyPackage::InvalidSeq : public ::org::omg::CORBA::UserException +{ + +public: + InvalidSeq(); + InvalidSeq(::java::lang::String *); +private: + static const jlong serialVersionUID = -5678460771857763522LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DynAnyPackage_InvalidSeq__ diff --git a/libjava/org/omg/CORBA/DynAnyPackage/InvalidValue.h b/libjava/org/omg/CORBA/DynAnyPackage/InvalidValue.h new file mode 100644 index 00000000000..f33cf445ef2 --- /dev/null +++ b/libjava/org/omg/CORBA/DynAnyPackage/InvalidValue.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynAnyPackage_InvalidValue__ +#define __org_omg_CORBA_DynAnyPackage_InvalidValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace DynAnyPackage + { + class InvalidValue; + } + } + } + } +} + +class org::omg::CORBA::DynAnyPackage::InvalidValue : public ::org::omg::CORBA::UserException +{ + +public: + InvalidValue(); + InvalidValue(::java::lang::String *); +private: + static const jlong serialVersionUID = -4741963043279146697LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DynAnyPackage_InvalidValue__ diff --git a/libjava/org/omg/CORBA/DynAnyPackage/TypeMismatch.h b/libjava/org/omg/CORBA/DynAnyPackage/TypeMismatch.h new file mode 100644 index 00000000000..3ec8508745c --- /dev/null +++ b/libjava/org/omg/CORBA/DynAnyPackage/TypeMismatch.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynAnyPackage_TypeMismatch__ +#define __org_omg_CORBA_DynAnyPackage_TypeMismatch__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace DynAnyPackage + { + class TypeMismatch; + } + } + } + } +} + +class org::omg::CORBA::DynAnyPackage::TypeMismatch : public ::org::omg::CORBA::UserException +{ + +public: + TypeMismatch(); + TypeMismatch(::java::lang::String *); +private: + static const jlong serialVersionUID = 2763424591181102501LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DynAnyPackage_TypeMismatch__ diff --git a/libjava/org/omg/CORBA/DynArray.h b/libjava/org/omg/CORBA/DynArray.h new file mode 100644 index 00000000000..d1df9cb3ff9 --- /dev/null +++ b/libjava/org/omg/CORBA/DynArray.h @@ -0,0 +1,107 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynArray__ +#define __org_omg_CORBA_DynArray__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class DynArray; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynArray : public ::java::lang::Object +{ + +public: + virtual JArray< ::org::omg::CORBA::Any * > * get_elements() = 0; + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *) = 0; + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynArray__ diff --git a/libjava/org/omg/CORBA/DynEnum.h b/libjava/org/omg/CORBA/DynEnum.h new file mode 100644 index 00000000000..675b2ef5f69 --- /dev/null +++ b/libjava/org/omg/CORBA/DynEnum.h @@ -0,0 +1,109 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynEnum__ +#define __org_omg_CORBA_DynEnum__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class DynEnum; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynEnum : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * value_as_string() = 0; + virtual void value_as_string(::java::lang::String *) = 0; + virtual void value_as_ulong(jint) = 0; + virtual jint value_as_ulong() = 0; + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynEnum__ diff --git a/libjava/org/omg/CORBA/DynFixed.h b/libjava/org/omg/CORBA/DynFixed.h new file mode 100644 index 00000000000..562e864abf5 --- /dev/null +++ b/libjava/org/omg/CORBA/DynFixed.h @@ -0,0 +1,107 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynFixed__ +#define __org_omg_CORBA_DynFixed__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class DynFixed; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynFixed : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * get_value() = 0; + virtual void set_value(JArray< jbyte > *) = 0; + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynFixed__ diff --git a/libjava/org/omg/CORBA/DynSequence.h b/libjava/org/omg/CORBA/DynSequence.h new file mode 100644 index 00000000000..3a4e213ccee --- /dev/null +++ b/libjava/org/omg/CORBA/DynSequence.h @@ -0,0 +1,109 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynSequence__ +#define __org_omg_CORBA_DynSequence__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class DynSequence; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynSequence : public ::java::lang::Object +{ + +public: + virtual JArray< ::org::omg::CORBA::Any * > * get_elements() = 0; + virtual jint length() = 0; + virtual void length(jint) = 0; + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *) = 0; + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynSequence__ diff --git a/libjava/org/omg/CORBA/DynStruct.h b/libjava/org/omg/CORBA/DynStruct.h new file mode 100644 index 00000000000..8efb8f57a74 --- /dev/null +++ b/libjava/org/omg/CORBA/DynStruct.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynStruct__ +#define __org_omg_CORBA_DynStruct__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class DynStruct; + class ExceptionList; + class NVList; + class NameValuePair; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TCKind; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynStruct : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TCKind * current_member_kind() = 0; + virtual ::java::lang::String * current_member_name() = 0; + virtual JArray< ::org::omg::CORBA::NameValuePair * > * get_members() = 0; + virtual void set_members(JArray< ::org::omg::CORBA::NameValuePair * > *) = 0; + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynStruct__ diff --git a/libjava/org/omg/CORBA/DynUnion.h b/libjava/org/omg/CORBA/DynUnion.h new file mode 100644 index 00000000000..aab7859c225 --- /dev/null +++ b/libjava/org/omg/CORBA/DynUnion.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynUnion__ +#define __org_omg_CORBA_DynUnion__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class DynUnion; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TCKind; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynUnion : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::DynAny * discriminator() = 0; + virtual ::org::omg::CORBA::TCKind * discriminator_kind() = 0; + virtual ::org::omg::CORBA::DynAny * member() = 0; + virtual ::org::omg::CORBA::TCKind * member_kind() = 0; + virtual ::java::lang::String * member_name() = 0; + virtual void member_name(::java::lang::String *) = 0; + virtual jboolean set_as_default() = 0; + virtual void set_as_default(jboolean) = 0; + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynUnion__ diff --git a/libjava/org/omg/CORBA/DynValue.h b/libjava/org/omg/CORBA/DynValue.h new file mode 100644 index 00000000000..5efccc5afaf --- /dev/null +++ b/libjava/org/omg/CORBA/DynValue.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynValue__ +#define __org_omg_CORBA_DynValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class DynAny; + class DynValue; + class ExceptionList; + class NVList; + class NameValuePair; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TCKind; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::DynValue : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TCKind * current_member_kind() = 0; + virtual ::java::lang::String * current_member_name() = 0; + virtual JArray< ::org::omg::CORBA::NameValuePair * > * get_members() = 0; + virtual void set_members(JArray< ::org::omg::CORBA::NameValuePair * > *) = 0; + virtual void assign(::org::omg::CORBA::DynAny *) = 0; + virtual ::org::omg::CORBA::DynAny * copy() = 0; + virtual ::org::omg::CORBA::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_DynValue__ diff --git a/libjava/org/omg/CORBA/DynamicImplementation.h b/libjava/org/omg/CORBA/DynamicImplementation.h new file mode 100644 index 00000000000..9cf77584e3a --- /dev/null +++ b/libjava/org/omg/CORBA/DynamicImplementation.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_DynamicImplementation__ +#define __org_omg_CORBA_DynamicImplementation__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DynamicImplementation; + class ServerRequest; + } + } + } +} + +class org::omg::CORBA::DynamicImplementation : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + DynamicImplementation(); + virtual void invoke(::org::omg::CORBA::ServerRequest *); + virtual JArray< ::java::lang::String * > * _ids(); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_DynamicImplementation__ diff --git a/libjava/org/omg/CORBA/Environment.h b/libjava/org/omg/CORBA/Environment.h new file mode 100644 index 00000000000..07fb343a6ae --- /dev/null +++ b/libjava/org/omg/CORBA/Environment.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Environment__ +#define __org_omg_CORBA_Environment__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Environment; + } + } + } +} + +class org::omg::CORBA::Environment : public ::java::lang::Object +{ + +public: + Environment(); + virtual void clear() = 0; + virtual ::java::lang::Exception * exception() = 0; + virtual void exception(::java::lang::Exception *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_Environment__ diff --git a/libjava/org/omg/CORBA/ExceptionList.h b/libjava/org/omg/CORBA/ExceptionList.h new file mode 100644 index 00000000000..acb5eb953c7 --- /dev/null +++ b/libjava/org/omg/CORBA/ExceptionList.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ExceptionList__ +#define __org_omg_CORBA_ExceptionList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ExceptionList; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::ExceptionList : public ::java::lang::Object +{ + +public: + ExceptionList(); + virtual void add(::org::omg::CORBA::TypeCode *) = 0; + virtual jint count() = 0; + virtual ::org::omg::CORBA::TypeCode * item(jint) = 0; + virtual void remove(jint) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ExceptionList__ diff --git a/libjava/org/omg/CORBA/FREE_MEM.h b/libjava/org/omg/CORBA/FREE_MEM.h new file mode 100644 index 00000000000..c3b29b9d21e --- /dev/null +++ b/libjava/org/omg/CORBA/FREE_MEM.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_FREE_MEM__ +#define __org_omg_CORBA_FREE_MEM__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class FREE_MEM; + } + } + } +} + +class org::omg::CORBA::FREE_MEM : public ::org::omg::CORBA::SystemException +{ + +public: + FREE_MEM(::java::lang::String *); + FREE_MEM(); + FREE_MEM(jint, ::org::omg::CORBA::CompletionStatus *); + FREE_MEM(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -1333559476995791982LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_FREE_MEM__ diff --git a/libjava/org/omg/CORBA/FieldNameHelper.h b/libjava/org/omg/CORBA/FieldNameHelper.h new file mode 100644 index 00000000000..a5ef219f43d --- /dev/null +++ b/libjava/org/omg/CORBA/FieldNameHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_FieldNameHelper__ +#define __org_omg_CORBA_FieldNameHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class FieldNameHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::FieldNameHelper : public ::java::lang::Object +{ + +public: + FieldNameHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_FieldNameHelper__ diff --git a/libjava/org/omg/CORBA/FixedHolder.h b/libjava/org/omg/CORBA/FixedHolder.h new file mode 100644 index 00000000000..53bfe0a24d6 --- /dev/null +++ b/libjava/org/omg/CORBA/FixedHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_FixedHolder__ +#define __org_omg_CORBA_FixedHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class FixedHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::FixedHolder : public ::java::lang::Object +{ + +public: + FixedHolder(); + FixedHolder(::java::math::BigDecimal *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::java::math::BigDecimal * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_FixedHolder__ diff --git a/libjava/org/omg/CORBA/FloatHolder.h b/libjava/org/omg/CORBA/FloatHolder.h new file mode 100644 index 00000000000..fba02c579aa --- /dev/null +++ b/libjava/org/omg/CORBA/FloatHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_FloatHolder__ +#define __org_omg_CORBA_FloatHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class FloatHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::FloatHolder : public ::java::lang::Object +{ + +public: + FloatHolder(); + FloatHolder(jfloat); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_float; +public: + jfloat __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_FloatHolder__ diff --git a/libjava/org/omg/CORBA/FloatSeqHelper.h b/libjava/org/omg/CORBA/FloatSeqHelper.h new file mode 100644 index 00000000000..87b84cc8df0 --- /dev/null +++ b/libjava/org/omg/CORBA/FloatSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_FloatSeqHelper__ +#define __org_omg_CORBA_FloatSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class FloatSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::FloatSeqHelper : public ::java::lang::Object +{ + +public: + FloatSeqHelper(); + static JArray< jfloat > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jfloat > *); + static JArray< jfloat > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jfloat > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_FloatSeqHelper__ diff --git a/libjava/org/omg/CORBA/FloatSeqHolder.h b/libjava/org/omg/CORBA/FloatSeqHolder.h new file mode 100644 index 00000000000..e138c917948 --- /dev/null +++ b/libjava/org/omg/CORBA/FloatSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_FloatSeqHolder__ +#define __org_omg_CORBA_FloatSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class FloatSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::FloatSeqHolder : public ::java::lang::Object +{ + +public: + FloatSeqHolder(); + FloatSeqHolder(JArray< jfloat > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jfloat > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_FloatSeqHolder__ diff --git a/libjava/org/omg/CORBA/IDLType.h b/libjava/org/omg/CORBA/IDLType.h new file mode 100644 index 00000000000..8dab0acf383 --- /dev/null +++ b/libjava/org/omg/CORBA/IDLType.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IDLType__ +#define __org_omg_CORBA_IDLType__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DefinitionKind; + class DomainManager; + class ExceptionList; + class IDLType; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::IDLType : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::DefinitionKind * def_kind() = 0; + virtual void destroy() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_IDLType__ diff --git a/libjava/org/omg/CORBA/IDLTypeHelper.h b/libjava/org/omg/CORBA/IDLTypeHelper.h new file mode 100644 index 00000000000..43540f2820b --- /dev/null +++ b/libjava/org/omg/CORBA/IDLTypeHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IDLTypeHelper__ +#define __org_omg_CORBA_IDLTypeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class IDLType; + class IDLTypeHelper; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::IDLTypeHelper : public ::java::lang::Object +{ + +public: + IDLTypeHelper(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::IDLType *); + static ::org::omg::CORBA::IDLType * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::org::omg::CORBA::IDLType * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::IDLType *); + static ::org::omg::CORBA::IDLType * narrow(::org::omg::CORBA::Object *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_IDLTypeHelper__ diff --git a/libjava/org/omg/CORBA/IDLTypeOperations.h b/libjava/org/omg/CORBA/IDLTypeOperations.h new file mode 100644 index 00000000000..1f03591b7ac --- /dev/null +++ b/libjava/org/omg/CORBA/IDLTypeOperations.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IDLTypeOperations__ +#define __org_omg_CORBA_IDLTypeOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DefinitionKind; + class IDLTypeOperations; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::IDLTypeOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual ::org::omg::CORBA::DefinitionKind * def_kind() = 0; + virtual void destroy() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_IDLTypeOperations__ diff --git a/libjava/org/omg/CORBA/IMP_LIMIT.h b/libjava/org/omg/CORBA/IMP_LIMIT.h new file mode 100644 index 00000000000..25247634ead --- /dev/null +++ b/libjava/org/omg/CORBA/IMP_LIMIT.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IMP_LIMIT__ +#define __org_omg_CORBA_IMP_LIMIT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class IMP_LIMIT; + } + } + } +} + +class org::omg::CORBA::IMP_LIMIT : public ::org::omg::CORBA::SystemException +{ + +public: + IMP_LIMIT(::java::lang::String *); + IMP_LIMIT(); + IMP_LIMIT(jint, ::org::omg::CORBA::CompletionStatus *); + IMP_LIMIT(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -8086463494577448422LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_IMP_LIMIT__ diff --git a/libjava/org/omg/CORBA/INITIALIZE.h b/libjava/org/omg/CORBA/INITIALIZE.h new file mode 100644 index 00000000000..6c0a1d01bb4 --- /dev/null +++ b/libjava/org/omg/CORBA/INITIALIZE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INITIALIZE__ +#define __org_omg_CORBA_INITIALIZE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INITIALIZE; + } + } + } +} + +class org::omg::CORBA::INITIALIZE : public ::org::omg::CORBA::SystemException +{ + +public: + INITIALIZE(::java::lang::String *); + INITIALIZE(); + INITIALIZE(jint, ::org::omg::CORBA::CompletionStatus *); + INITIALIZE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -3753094599663690309LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INITIALIZE__ diff --git a/libjava/org/omg/CORBA/INTERNAL.h b/libjava/org/omg/CORBA/INTERNAL.h new file mode 100644 index 00000000000..c006324f966 --- /dev/null +++ b/libjava/org/omg/CORBA/INTERNAL.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INTERNAL__ +#define __org_omg_CORBA_INTERNAL__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INTERNAL; + } + } + } +} + +class org::omg::CORBA::INTERNAL : public ::org::omg::CORBA::SystemException +{ + +public: + INTERNAL(::java::lang::String *); + INTERNAL(); + INTERNAL(jint, ::org::omg::CORBA::CompletionStatus *); + INTERNAL(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 3771336866139357605LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INTERNAL__ diff --git a/libjava/org/omg/CORBA/INTF_REPOS.h b/libjava/org/omg/CORBA/INTF_REPOS.h new file mode 100644 index 00000000000..bdc34cd627a --- /dev/null +++ b/libjava/org/omg/CORBA/INTF_REPOS.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INTF_REPOS__ +#define __org_omg_CORBA_INTF_REPOS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INTF_REPOS; + } + } + } +} + +class org::omg::CORBA::INTF_REPOS : public ::org::omg::CORBA::SystemException +{ + +public: + INTF_REPOS(::java::lang::String *); + INTF_REPOS(); + INTF_REPOS(jint, ::org::omg::CORBA::CompletionStatus *); + INTF_REPOS(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 722572694720671863LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INTF_REPOS__ diff --git a/libjava/org/omg/CORBA/INVALID_ACTIVITY.h b/libjava/org/omg/CORBA/INVALID_ACTIVITY.h new file mode 100644 index 00000000000..025a111d62d --- /dev/null +++ b/libjava/org/omg/CORBA/INVALID_ACTIVITY.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INVALID_ACTIVITY__ +#define __org_omg_CORBA_INVALID_ACTIVITY__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INVALID_ACTIVITY; + } + } + } +} + +class org::omg::CORBA::INVALID_ACTIVITY : public ::org::omg::CORBA::SystemException +{ + +public: + INVALID_ACTIVITY(::java::lang::String *); + INVALID_ACTIVITY(); + INVALID_ACTIVITY(jint, ::org::omg::CORBA::CompletionStatus *); + INVALID_ACTIVITY(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 7907846629733712546LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INVALID_ACTIVITY__ diff --git a/libjava/org/omg/CORBA/INVALID_TRANSACTION.h b/libjava/org/omg/CORBA/INVALID_TRANSACTION.h new file mode 100644 index 00000000000..6f4dbd95d61 --- /dev/null +++ b/libjava/org/omg/CORBA/INVALID_TRANSACTION.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INVALID_TRANSACTION__ +#define __org_omg_CORBA_INVALID_TRANSACTION__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INVALID_TRANSACTION; + } + } + } +} + +class org::omg::CORBA::INVALID_TRANSACTION : public ::org::omg::CORBA::SystemException +{ + +public: + INVALID_TRANSACTION(::java::lang::String *); + INVALID_TRANSACTION(); + INVALID_TRANSACTION(jint, ::org::omg::CORBA::CompletionStatus *); + INVALID_TRANSACTION(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -4265126403821571697LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INVALID_TRANSACTION__ diff --git a/libjava/org/omg/CORBA/INV_FLAG.h b/libjava/org/omg/CORBA/INV_FLAG.h new file mode 100644 index 00000000000..2d8edbd9647 --- /dev/null +++ b/libjava/org/omg/CORBA/INV_FLAG.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INV_FLAG__ +#define __org_omg_CORBA_INV_FLAG__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INV_FLAG; + } + } + } +} + +class org::omg::CORBA::INV_FLAG : public ::org::omg::CORBA::SystemException +{ + +public: + INV_FLAG(::java::lang::String *); + INV_FLAG(); + INV_FLAG(jint, ::org::omg::CORBA::CompletionStatus *); + INV_FLAG(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -4863924749863817671LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INV_FLAG__ diff --git a/libjava/org/omg/CORBA/INV_IDENT.h b/libjava/org/omg/CORBA/INV_IDENT.h new file mode 100644 index 00000000000..94c03dad127 --- /dev/null +++ b/libjava/org/omg/CORBA/INV_IDENT.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INV_IDENT__ +#define __org_omg_CORBA_INV_IDENT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INV_IDENT; + } + } + } +} + +class org::omg::CORBA::INV_IDENT : public ::org::omg::CORBA::SystemException +{ + +public: + INV_IDENT(::java::lang::String *); + INV_IDENT(); + INV_IDENT(jint, ::org::omg::CORBA::CompletionStatus *); + INV_IDENT(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 4399295047946553530LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INV_IDENT__ diff --git a/libjava/org/omg/CORBA/INV_OBJREF.h b/libjava/org/omg/CORBA/INV_OBJREF.h new file mode 100644 index 00000000000..069d9e06808 --- /dev/null +++ b/libjava/org/omg/CORBA/INV_OBJREF.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INV_OBJREF__ +#define __org_omg_CORBA_INV_OBJREF__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INV_OBJREF; + } + } + } +} + +class org::omg::CORBA::INV_OBJREF : public ::org::omg::CORBA::SystemException +{ + +public: + INV_OBJREF(::java::lang::String *); + INV_OBJREF(); + INV_OBJREF(jint, ::org::omg::CORBA::CompletionStatus *); + INV_OBJREF(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -7238811948257685034LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INV_OBJREF__ diff --git a/libjava/org/omg/CORBA/INV_POLICY.h b/libjava/org/omg/CORBA/INV_POLICY.h new file mode 100644 index 00000000000..de455608fd0 --- /dev/null +++ b/libjava/org/omg/CORBA/INV_POLICY.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_INV_POLICY__ +#define __org_omg_CORBA_INV_POLICY__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class INV_POLICY; + } + } + } +} + +class org::omg::CORBA::INV_POLICY : public ::org::omg::CORBA::SystemException +{ + +public: + INV_POLICY(::java::lang::String *); + INV_POLICY(); + INV_POLICY(jint, ::org::omg::CORBA::CompletionStatus *); + INV_POLICY(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -7823113107689030975LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_INV_POLICY__ diff --git a/libjava/org/omg/CORBA/IRObject.h b/libjava/org/omg/CORBA/IRObject.h new file mode 100644 index 00000000000..8f1102ebcc8 --- /dev/null +++ b/libjava/org/omg/CORBA/IRObject.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IRObject__ +#define __org_omg_CORBA_IRObject__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DefinitionKind; + class DomainManager; + class ExceptionList; + class IRObject; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + } + } +} + +class org::omg::CORBA::IRObject : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::DefinitionKind * def_kind() = 0; + virtual void destroy() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_IRObject__ diff --git a/libjava/org/omg/CORBA/IRObjectOperations.h b/libjava/org/omg/CORBA/IRObjectOperations.h new file mode 100644 index 00000000000..d2e4f4cbe3f --- /dev/null +++ b/libjava/org/omg/CORBA/IRObjectOperations.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IRObjectOperations__ +#define __org_omg_CORBA_IRObjectOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DefinitionKind; + class IRObjectOperations; + } + } + } +} + +class org::omg::CORBA::IRObjectOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::DefinitionKind * def_kind() = 0; + virtual void destroy() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_IRObjectOperations__ diff --git a/libjava/org/omg/CORBA/IdentifierHelper.h b/libjava/org/omg/CORBA/IdentifierHelper.h new file mode 100644 index 00000000000..5495b844a78 --- /dev/null +++ b/libjava/org/omg/CORBA/IdentifierHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IdentifierHelper__ +#define __org_omg_CORBA_IdentifierHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class IdentifierHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::IdentifierHelper : public ::java::lang::Object +{ + +public: + IdentifierHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_IdentifierHelper__ diff --git a/libjava/org/omg/CORBA/IntHolder.h b/libjava/org/omg/CORBA/IntHolder.h new file mode 100644 index 00000000000..fc85869dec6 --- /dev/null +++ b/libjava/org/omg/CORBA/IntHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_IntHolder__ +#define __org_omg_CORBA_IntHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class IntHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::IntHolder : public ::java::lang::Object +{ + +public: + IntHolder(); + IntHolder(jint); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_long; +public: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_IntHolder__ diff --git a/libjava/org/omg/CORBA/LocalObject.h b/libjava/org/omg/CORBA/LocalObject.h new file mode 100644 index 00000000000..27666d4f18c --- /dev/null +++ b/libjava/org/omg/CORBA/LocalObject.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_LocalObject__ +#define __org_omg_CORBA_LocalObject__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class LocalObject; + class NVList; + class NamedValue; + class ORB; + class Object; + class Policy; + class Request; + class SetOverrideType; + namespace portable + { + class InputStream; + class OutputStream; + class ServantObject; + } + } + } + } +} + +class org::omg::CORBA::LocalObject : public ::java::lang::Object +{ + +public: + LocalObject(); + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *); + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *); + virtual ::org::omg::CORBA::Object * _duplicate(); + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers(); + virtual ::org::omg::CORBA::Object * _get_interface_def(); + virtual ::org::omg::CORBA::Object * _get_interface(); + virtual ::org::omg::CORBA::Policy * _get_policy(jint); + virtual jint _hash(jint); + virtual jboolean _is_a(::java::lang::String *); + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *); + virtual jboolean _non_existent(); + virtual void _release(); + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *); + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *); + virtual ::org::omg::CORBA::portable::ServantObject * _servant_preinvoke(::java::lang::String *, ::java::lang::Class *); + virtual void _servant_postinvoke(::org::omg::CORBA::portable::ServantObject *); + virtual ::org::omg::CORBA::portable::InputStream * _invoke(::org::omg::CORBA::portable::OutputStream *); + virtual jboolean _is_local(); + virtual ::org::omg::CORBA::ORB * _orb(); + virtual void _releaseReply(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::portable::OutputStream * _request(::java::lang::String *, jboolean); + virtual jboolean validate_connection(); +private: + static ::java::lang::String * INAPPROPRIATE; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_LocalObject__ diff --git a/libjava/org/omg/CORBA/LongHolder.h b/libjava/org/omg/CORBA/LongHolder.h new file mode 100644 index 00000000000..6fd5311b06c --- /dev/null +++ b/libjava/org/omg/CORBA/LongHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_LongHolder__ +#define __org_omg_CORBA_LongHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class LongHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::LongHolder : public ::java::lang::Object +{ + +public: + LongHolder(); + LongHolder(jlong); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_longlong; +public: + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_LongHolder__ diff --git a/libjava/org/omg/CORBA/LongLongSeqHelper.h b/libjava/org/omg/CORBA/LongLongSeqHelper.h new file mode 100644 index 00000000000..5430e67fbaa --- /dev/null +++ b/libjava/org/omg/CORBA/LongLongSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_LongLongSeqHelper__ +#define __org_omg_CORBA_LongLongSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class LongLongSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::LongLongSeqHelper : public ::java::lang::Object +{ + +public: + LongLongSeqHelper(); + static JArray< jlong > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jlong > *); + static JArray< jlong > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jlong > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_LongLongSeqHelper__ diff --git a/libjava/org/omg/CORBA/LongLongSeqHolder.h b/libjava/org/omg/CORBA/LongLongSeqHolder.h new file mode 100644 index 00000000000..d0ba6ca2edf --- /dev/null +++ b/libjava/org/omg/CORBA/LongLongSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_LongLongSeqHolder__ +#define __org_omg_CORBA_LongLongSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class LongLongSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::LongLongSeqHolder : public ::java::lang::Object +{ + +public: + LongLongSeqHolder(); + LongLongSeqHolder(JArray< jlong > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jlong > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_LongLongSeqHolder__ diff --git a/libjava/org/omg/CORBA/LongSeqHelper.h b/libjava/org/omg/CORBA/LongSeqHelper.h new file mode 100644 index 00000000000..63dbf9d022b --- /dev/null +++ b/libjava/org/omg/CORBA/LongSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_LongSeqHelper__ +#define __org_omg_CORBA_LongSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class LongSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::LongSeqHelper : public ::java::lang::Object +{ + +public: + LongSeqHelper(); + static JArray< jint > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jint > *); + static JArray< jint > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jint > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_LongSeqHelper__ diff --git a/libjava/org/omg/CORBA/LongSeqHolder.h b/libjava/org/omg/CORBA/LongSeqHolder.h new file mode 100644 index 00000000000..92dc019db28 --- /dev/null +++ b/libjava/org/omg/CORBA/LongSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_LongSeqHolder__ +#define __org_omg_CORBA_LongSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class LongSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::LongSeqHolder : public ::java::lang::Object +{ + +public: + LongSeqHolder(); + LongSeqHolder(JArray< jint > *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) typecode; +public: + JArray< jint > * value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_LongSeqHolder__ diff --git a/libjava/org/omg/CORBA/MARSHAL.h b/libjava/org/omg/CORBA/MARSHAL.h new file mode 100644 index 00000000000..75516cbbb66 --- /dev/null +++ b/libjava/org/omg/CORBA/MARSHAL.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_MARSHAL__ +#define __org_omg_CORBA_MARSHAL__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class MARSHAL; + } + } + } +} + +class org::omg::CORBA::MARSHAL : public ::org::omg::CORBA::SystemException +{ + +public: + MARSHAL(::java::lang::String *); + MARSHAL(); + MARSHAL(jint, ::org::omg::CORBA::CompletionStatus *); + MARSHAL(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 7416408250336395546LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_MARSHAL__ diff --git a/libjava/org/omg/CORBA/NO_IMPLEMENT.h b/libjava/org/omg/CORBA/NO_IMPLEMENT.h new file mode 100644 index 00000000000..c4a0273c647 --- /dev/null +++ b/libjava/org/omg/CORBA/NO_IMPLEMENT.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NO_IMPLEMENT__ +#define __org_omg_CORBA_NO_IMPLEMENT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class NO_IMPLEMENT; + } + } + } +} + +class org::omg::CORBA::NO_IMPLEMENT : public ::org::omg::CORBA::SystemException +{ + +public: + NO_IMPLEMENT(::java::lang::String *); + NO_IMPLEMENT(); + NO_IMPLEMENT(jint, ::org::omg::CORBA::CompletionStatus *); + NO_IMPLEMENT(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 3519190655657192112LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NO_IMPLEMENT__ diff --git a/libjava/org/omg/CORBA/NO_MEMORY.h b/libjava/org/omg/CORBA/NO_MEMORY.h new file mode 100644 index 00000000000..ce8f3f00d7b --- /dev/null +++ b/libjava/org/omg/CORBA/NO_MEMORY.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NO_MEMORY__ +#define __org_omg_CORBA_NO_MEMORY__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class NO_MEMORY; + } + } + } +} + +class org::omg::CORBA::NO_MEMORY : public ::org::omg::CORBA::SystemException +{ + +public: + NO_MEMORY(::java::lang::String *); + NO_MEMORY(); + NO_MEMORY(jint, ::org::omg::CORBA::CompletionStatus *); + NO_MEMORY(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -4591569617929689285LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NO_MEMORY__ diff --git a/libjava/org/omg/CORBA/NO_PERMISSION.h b/libjava/org/omg/CORBA/NO_PERMISSION.h new file mode 100644 index 00000000000..1f2bea8a336 --- /dev/null +++ b/libjava/org/omg/CORBA/NO_PERMISSION.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NO_PERMISSION__ +#define __org_omg_CORBA_NO_PERMISSION__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class NO_PERMISSION; + } + } + } +} + +class org::omg::CORBA::NO_PERMISSION : public ::org::omg::CORBA::SystemException +{ + +public: + NO_PERMISSION(::java::lang::String *); + NO_PERMISSION(); + NO_PERMISSION(jint, ::org::omg::CORBA::CompletionStatus *); + NO_PERMISSION(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -1533969523582458479LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NO_PERMISSION__ diff --git a/libjava/org/omg/CORBA/NO_RESOURCES.h b/libjava/org/omg/CORBA/NO_RESOURCES.h new file mode 100644 index 00000000000..92daec581dc --- /dev/null +++ b/libjava/org/omg/CORBA/NO_RESOURCES.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NO_RESOURCES__ +#define __org_omg_CORBA_NO_RESOURCES__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class NO_RESOURCES; + } + } + } +} + +class org::omg::CORBA::NO_RESOURCES : public ::org::omg::CORBA::SystemException +{ + +public: + NO_RESOURCES(::java::lang::String *); + NO_RESOURCES(); + NO_RESOURCES(jint, ::org::omg::CORBA::CompletionStatus *); + NO_RESOURCES(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 8129246118235803597LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NO_RESOURCES__ diff --git a/libjava/org/omg/CORBA/NO_RESPONSE.h b/libjava/org/omg/CORBA/NO_RESPONSE.h new file mode 100644 index 00000000000..eef00cc123c --- /dev/null +++ b/libjava/org/omg/CORBA/NO_RESPONSE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NO_RESPONSE__ +#define __org_omg_CORBA_NO_RESPONSE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class NO_RESPONSE; + } + } + } +} + +class org::omg::CORBA::NO_RESPONSE : public ::org::omg::CORBA::SystemException +{ + +public: + NO_RESPONSE(::java::lang::String *); + NO_RESPONSE(); + NO_RESPONSE(jint, ::org::omg::CORBA::CompletionStatus *); + NO_RESPONSE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 1971973765161647047LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NO_RESPONSE__ diff --git a/libjava/org/omg/CORBA/NVList.h b/libjava/org/omg/CORBA/NVList.h new file mode 100644 index 00000000000..ec886d8192c --- /dev/null +++ b/libjava/org/omg/CORBA/NVList.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NVList__ +#define __org_omg_CORBA_NVList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class NVList; + class NamedValue; + } + } + } +} + +class org::omg::CORBA::NVList : public ::java::lang::Object +{ + +public: + NVList(); + virtual ::org::omg::CORBA::NamedValue * add(jint) = 0; + virtual ::org::omg::CORBA::NamedValue * add_item(::java::lang::String *, jint) = 0; + virtual ::org::omg::CORBA::NamedValue * add_value(::java::lang::String *, ::org::omg::CORBA::Any *, jint) = 0; + virtual jint count() = 0; + virtual ::org::omg::CORBA::NamedValue * item(jint) = 0; + virtual void remove(jint) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NVList__ diff --git a/libjava/org/omg/CORBA/NameValuePair.h b/libjava/org/omg/CORBA/NameValuePair.h new file mode 100644 index 00000000000..b2f1034e8ce --- /dev/null +++ b/libjava/org/omg/CORBA/NameValuePair.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NameValuePair__ +#define __org_omg_CORBA_NameValuePair__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class NameValuePair; + } + } + } +} + +class org::omg::CORBA::NameValuePair : public ::java::lang::Object +{ + +public: + NameValuePair(); + NameValuePair(::java::lang::String *, ::org::omg::CORBA::Any *); + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + static const jlong serialVersionUID = 7000741877654946223LL; +public: + ::java::lang::String * id; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NameValuePair__ diff --git a/libjava/org/omg/CORBA/NameValuePairHelper.h b/libjava/org/omg/CORBA/NameValuePairHelper.h new file mode 100644 index 00000000000..12b688eb57f --- /dev/null +++ b/libjava/org/omg/CORBA/NameValuePairHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NameValuePairHelper__ +#define __org_omg_CORBA_NameValuePairHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class NameValuePair; + class NameValuePairHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::NameValuePairHelper : public ::java::lang::Object +{ + +public: + NameValuePairHelper(); + static ::org::omg::CORBA::NameValuePair * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::NameValuePair *); + static ::org::omg::CORBA::NameValuePair * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::NameValuePair *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NameValuePairHelper__ diff --git a/libjava/org/omg/CORBA/NamedValue.h b/libjava/org/omg/CORBA/NamedValue.h new file mode 100644 index 00000000000..f3debeb410b --- /dev/null +++ b/libjava/org/omg/CORBA/NamedValue.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_NamedValue__ +#define __org_omg_CORBA_NamedValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class NamedValue; + } + } + } +} + +class org::omg::CORBA::NamedValue : public ::java::lang::Object +{ + +public: + NamedValue(); + virtual jint flags() = 0; + virtual ::java::lang::String * name() = 0; + virtual ::org::omg::CORBA::Any * value() = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_NamedValue__ diff --git a/libjava/org/omg/CORBA/OBJECT_NOT_EXIST.h b/libjava/org/omg/CORBA/OBJECT_NOT_EXIST.h new file mode 100644 index 00000000000..34c170a0d27 --- /dev/null +++ b/libjava/org/omg/CORBA/OBJECT_NOT_EXIST.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_OBJECT_NOT_EXIST__ +#define __org_omg_CORBA_OBJECT_NOT_EXIST__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class OBJECT_NOT_EXIST; + } + } + } +} + +class org::omg::CORBA::OBJECT_NOT_EXIST : public ::org::omg::CORBA::SystemException +{ + +public: + OBJECT_NOT_EXIST(::java::lang::String *); + OBJECT_NOT_EXIST(); + OBJECT_NOT_EXIST(jint, ::org::omg::CORBA::CompletionStatus *); + OBJECT_NOT_EXIST(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 7226958015420512389LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_OBJECT_NOT_EXIST__ diff --git a/libjava/org/omg/CORBA/OBJ_ADAPTER.h b/libjava/org/omg/CORBA/OBJ_ADAPTER.h new file mode 100644 index 00000000000..81888d8ac08 --- /dev/null +++ b/libjava/org/omg/CORBA/OBJ_ADAPTER.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_OBJ_ADAPTER__ +#define __org_omg_CORBA_OBJ_ADAPTER__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class OBJ_ADAPTER; + } + } + } +} + +class org::omg::CORBA::OBJ_ADAPTER : public ::org::omg::CORBA::SystemException +{ + +public: + OBJ_ADAPTER(::java::lang::String *); + OBJ_ADAPTER(); + OBJ_ADAPTER(jint, ::org::omg::CORBA::CompletionStatus *); + OBJ_ADAPTER(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -1516541344234786928LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_OBJ_ADAPTER__ diff --git a/libjava/org/omg/CORBA/OMGVMCID.h b/libjava/org/omg/CORBA/OMGVMCID.h new file mode 100644 index 00000000000..1ee33c5d225 --- /dev/null +++ b/libjava/org/omg/CORBA/OMGVMCID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_OMGVMCID__ +#define __org_omg_CORBA_OMGVMCID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class OMGVMCID; + } + } + } +} + +class org::omg::CORBA::OMGVMCID : public ::java::lang::Object +{ + +public: + static const jint value = 1330446336; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_OMGVMCID__ diff --git a/libjava/org/omg/CORBA/ORB.h b/libjava/org/omg/CORBA/ORB.h new file mode 100644 index 00000000000..f1489339278 --- /dev/null +++ b/libjava/org/omg/CORBA/ORB.h @@ -0,0 +1,137 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ORB__ +#define __org_omg_CORBA_ORB__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace applet + { + class Applet; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class Current; + class DynAny; + class DynArray; + class DynEnum; + class DynSequence; + class DynStruct; + class DynUnion; + class Environment; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Policy; + class Request; + class ServiceInformationHolder; + class StructMember; + class TCKind; + class TypeCode; + class UnionMember; + class ValueMember; + namespace portable + { + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ORB : public ::java::lang::Object +{ + +public: + ORB(); + virtual void connect(::org::omg::CORBA::Object *); + virtual void disconnect(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::TypeCode * create_recursive_sequence_tc(jint, jint) = 0; + virtual ::org::omg::CORBA::TypeCode * create_alias_tc(::java::lang::String *, ::java::lang::String *, ::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::CORBA::Any * create_any() = 0; + virtual ::org::omg::CORBA::TypeCode * create_array_tc(jint, ::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::CORBA::ContextList * create_context_list() = 0; + virtual ::org::omg::CORBA::DynAny * create_basic_dyn_any(::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::DynAny * create_dyn_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::DynArray * create_dyn_array(::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::DynEnum * create_dyn_enum(::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::DynSequence * create_dyn_sequence(::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::DynStruct * create_dyn_struct(::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::DynUnion * create_dyn_union(::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::TypeCode * create_enum_tc(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::String * > *) = 0; + virtual ::org::omg::CORBA::Environment * create_environment() = 0; + virtual ::org::omg::CORBA::ExceptionList * create_exception_list() = 0; + virtual ::org::omg::CORBA::TypeCode * create_exception_tc(::java::lang::String *, ::java::lang::String *, JArray< ::org::omg::CORBA::StructMember * > *) = 0; + virtual ::org::omg::CORBA::TypeCode * create_fixed_tc(jshort, jshort); + virtual ::org::omg::CORBA::TypeCode * create_interface_tc(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::omg::CORBA::NVList * create_list(jint) = 0; + virtual ::org::omg::CORBA::NamedValue * create_named_value(::java::lang::String *, ::org::omg::CORBA::Any *, jint) = 0; + virtual void send_multiple_requests_oneway(JArray< ::org::omg::CORBA::Request * > *) = 0; + virtual void send_multiple_requests_deferred(JArray< ::org::omg::CORBA::Request * > *) = 0; + virtual jboolean poll_next_response() = 0; + virtual ::org::omg::CORBA::Request * get_next_response() = 0; + virtual ::org::omg::CORBA::portable::OutputStream * create_output_stream() = 0; + virtual ::org::omg::CORBA::NVList * create_operation_list(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::Policy * create_policy(jint, ::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::TypeCode * create_sequence_tc(jint, ::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::CORBA::TypeCode * create_string_tc(jint) = 0; + virtual ::org::omg::CORBA::TypeCode * create_struct_tc(::java::lang::String *, ::java::lang::String *, JArray< ::org::omg::CORBA::StructMember * > *) = 0; + virtual ::org::omg::CORBA::TypeCode * create_union_tc(::java::lang::String *, ::java::lang::String *, ::org::omg::CORBA::TypeCode *, JArray< ::org::omg::CORBA::UnionMember * > *) = 0; + virtual ::org::omg::CORBA::TypeCode * create_wstring_tc(jint) = 0; + virtual ::org::omg::CORBA::TypeCode * create_abstract_interface_tc(::java::lang::String *, ::java::lang::String *); + virtual ::org::omg::CORBA::TypeCode * create_native_tc(::java::lang::String *, ::java::lang::String *); + virtual ::org::omg::CORBA::TypeCode * create_recursive_tc(::java::lang::String *); + virtual ::org::omg::CORBA::TypeCode * create_value_box_tc(::java::lang::String *, ::java::lang::String *, ::org::omg::CORBA::TypeCode *); + virtual ::org::omg::CORBA::TypeCode * create_value_tc(::java::lang::String *, ::java::lang::String *, jshort, ::org::omg::CORBA::TypeCode *, JArray< ::org::omg::CORBA::ValueMember * > *); + virtual ::org::omg::CORBA::Current * get_current(); + virtual jboolean get_service_information(jshort, ::org::omg::CORBA::ServiceInformationHolder *); + virtual ::org::omg::CORBA::Context * get_default_context() = 0; + virtual ::org::omg::CORBA::TypeCode * get_primitive_tc(::org::omg::CORBA::TCKind *) = 0; + static ::org::omg::CORBA::ORB * init(); + static ::org::omg::CORBA::ORB * init(::java::applet::Applet *, ::java::util::Properties *); + static ::org::omg::CORBA::ORB * init(JArray< ::java::lang::String * > *, ::java::util::Properties *); + virtual JArray< ::java::lang::String * > * list_initial_services() = 0; + virtual ::org::omg::CORBA::Object * resolve_initial_references(::java::lang::String *) = 0; + virtual ::java::lang::String * object_to_string(::org::omg::CORBA::Object *) = 0; + virtual void perform_work(); + virtual jboolean work_pending(); + virtual ::org::omg::CORBA::Object * string_to_object(::java::lang::String *) = 0; + virtual void run(); + virtual void shutdown(jboolean); + virtual void destroy(); +public: // actually protected + virtual void set_parameters(JArray< ::java::lang::String * > *, ::java::util::Properties *) = 0; + virtual void set_parameters(::java::applet::Applet *, ::java::util::Properties *) = 0; +private: + static ::java::lang::String * getCumulatedProperty(::java::util::Properties *, ::java::lang::String *); + static ::java::lang::String * checkFile(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + static ::org::omg::CORBA::ORB * createORB(::java::util::Properties *, ::java::lang::String *); + static void noORB(::java::lang::String *, ::java::lang::Throwable *); + static ::java::lang::String * FUNCTIONAL_ORB; + static ::java::lang::String * RESTRICTED_ORB; + static ::java::lang::String * LISTENER_PORT; + static ::java::lang::String * DEFAULT_FUNCTIONAL_ORB; + static ::java::lang::String * DEFAULT_FOCUSED_ORB; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ORB__ diff --git a/libjava/org/omg/CORBA/ORBPackage/InconsistentTypeCode.h b/libjava/org/omg/CORBA/ORBPackage/InconsistentTypeCode.h new file mode 100644 index 00000000000..a3689a98148 --- /dev/null +++ b/libjava/org/omg/CORBA/ORBPackage/InconsistentTypeCode.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ORBPackage_InconsistentTypeCode__ +#define __org_omg_CORBA_ORBPackage_InconsistentTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace ORBPackage + { + class InconsistentTypeCode; + } + } + } + } +} + +class org::omg::CORBA::ORBPackage::InconsistentTypeCode : public ::org::omg::CORBA::UserException +{ + +public: + InconsistentTypeCode(); + InconsistentTypeCode(::java::lang::String *); +private: + static const jlong serialVersionUID = -4393472660722667060LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ORBPackage_InconsistentTypeCode__ diff --git a/libjava/org/omg/CORBA/ORBPackage/InvalidName.h b/libjava/org/omg/CORBA/ORBPackage/InvalidName.h new file mode 100644 index 00000000000..2565926650a --- /dev/null +++ b/libjava/org/omg/CORBA/ORBPackage/InvalidName.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ORBPackage_InvalidName__ +#define __org_omg_CORBA_ORBPackage_InvalidName__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace ORBPackage + { + class InvalidName; + } + } + } + } +} + +class org::omg::CORBA::ORBPackage::InvalidName : public ::org::omg::CORBA::UserException +{ + +public: + InvalidName(); + InvalidName(::java::lang::String *); +private: + static const jlong serialVersionUID = 6635923991559230168LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ORBPackage_InvalidName__ diff --git a/libjava/org/omg/CORBA/Object.h b/libjava/org/omg/CORBA/Object.h new file mode 100644 index 00000000000..10bde6e2a79 --- /dev/null +++ b/libjava/org/omg/CORBA/Object.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Object__ +#define __org_omg_CORBA_Object__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + } + } +} + +class org::omg::CORBA::Object : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_Object__ diff --git a/libjava/org/omg/CORBA/ObjectHelper.h b/libjava/org/omg/CORBA/ObjectHelper.h new file mode 100644 index 00000000000..05a80299817 --- /dev/null +++ b/libjava/org/omg/CORBA/ObjectHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ObjectHelper__ +#define __org_omg_CORBA_ObjectHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class ObjectHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ObjectHelper : public ::java::lang::Object +{ + +public: + ObjectHelper(); + static ::org::omg::CORBA::Object * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::Object *); + static ::org::omg::CORBA::Object * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::Object *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ObjectHelper__ diff --git a/libjava/org/omg/CORBA/ObjectHolder.h b/libjava/org/omg/CORBA/ObjectHolder.h new file mode 100644 index 00000000000..47093d004c8 --- /dev/null +++ b/libjava/org/omg/CORBA/ObjectHolder.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ObjectHolder__ +#define __org_omg_CORBA_ObjectHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class RecordTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + class ObjectHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ObjectHolder : public ::java::lang::Object +{ + +public: + ObjectHolder(); + ObjectHolder(::org::omg::CORBA::Object *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::gnu::CORBA::typecodes::RecordTypeCode * t_object; +public: + ::org::omg::CORBA::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ObjectHolder__ diff --git a/libjava/org/omg/CORBA/OctetSeqHelper.h b/libjava/org/omg/CORBA/OctetSeqHelper.h new file mode 100644 index 00000000000..6a2bd46118f --- /dev/null +++ b/libjava/org/omg/CORBA/OctetSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_OctetSeqHelper__ +#define __org_omg_CORBA_OctetSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class OctetSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::OctetSeqHelper : public ::java::lang::Object +{ + +public: + OctetSeqHelper(); + static JArray< jbyte > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jbyte > *); + static JArray< jbyte > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_OctetSeqHelper__ diff --git a/libjava/org/omg/CORBA/OctetSeqHolder.h b/libjava/org/omg/CORBA/OctetSeqHolder.h new file mode 100644 index 00000000000..4f053fe7258 --- /dev/null +++ b/libjava/org/omg/CORBA/OctetSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_OctetSeqHolder__ +#define __org_omg_CORBA_OctetSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class OctetSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::OctetSeqHolder : public ::java::lang::Object +{ + +public: + OctetSeqHolder(); + OctetSeqHolder(JArray< jbyte > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_OctetSeqHolder__ diff --git a/libjava/org/omg/CORBA/PERSIST_STORE.h b/libjava/org/omg/CORBA/PERSIST_STORE.h new file mode 100644 index 00000000000..0b21ec953d1 --- /dev/null +++ b/libjava/org/omg/CORBA/PERSIST_STORE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PERSIST_STORE__ +#define __org_omg_CORBA_PERSIST_STORE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class PERSIST_STORE; + } + } + } +} + +class org::omg::CORBA::PERSIST_STORE : public ::org::omg::CORBA::SystemException +{ + +public: + PERSIST_STORE(::java::lang::String *); + PERSIST_STORE(); + PERSIST_STORE(jint, ::org::omg::CORBA::CompletionStatus *); + PERSIST_STORE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -6835478548864681965LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PERSIST_STORE__ diff --git a/libjava/org/omg/CORBA/PRIVATE_MEMBER.h b/libjava/org/omg/CORBA/PRIVATE_MEMBER.h new file mode 100644 index 00000000000..047f012e035 --- /dev/null +++ b/libjava/org/omg/CORBA/PRIVATE_MEMBER.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PRIVATE_MEMBER__ +#define __org_omg_CORBA_PRIVATE_MEMBER__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class PRIVATE_MEMBER; + } + } + } +} + +class org::omg::CORBA::PRIVATE_MEMBER : public ::java::lang::Object +{ + +public: + static const jshort value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_PRIVATE_MEMBER__ diff --git a/libjava/org/omg/CORBA/PUBLIC_MEMBER.h b/libjava/org/omg/CORBA/PUBLIC_MEMBER.h new file mode 100644 index 00000000000..a549730f7cb --- /dev/null +++ b/libjava/org/omg/CORBA/PUBLIC_MEMBER.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PUBLIC_MEMBER__ +#define __org_omg_CORBA_PUBLIC_MEMBER__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class PUBLIC_MEMBER; + } + } + } +} + +class org::omg::CORBA::PUBLIC_MEMBER : public ::java::lang::Object +{ + +public: + static const jshort value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_PUBLIC_MEMBER__ diff --git a/libjava/org/omg/CORBA/ParameterMode.h b/libjava/org/omg/CORBA/ParameterMode.h new file mode 100644 index 00000000000..92457814d6d --- /dev/null +++ b/libjava/org/omg/CORBA/ParameterMode.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ParameterMode__ +#define __org_omg_CORBA_ParameterMode__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ParameterMode; + } + } + } +} + +class org::omg::CORBA::ParameterMode : public ::java::lang::Object +{ + +public: // actually protected + ParameterMode(jint); +public: + virtual jint value(); + static ::org::omg::CORBA::ParameterMode * from_int(jint); +private: + static const jlong serialVersionUID = 1521598391932998229LL; +public: + static const jint _PARAM_IN = 0; + static const jint _PARAM_OUT = 1; + static const jint _PARAM_INOUT = 2; + static ::org::omg::CORBA::ParameterMode * PARAM_IN; + static ::org::omg::CORBA::ParameterMode * PARAM_OUT; + static ::org::omg::CORBA::ParameterMode * PARAM_INOUT; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value__; + static JArray< ::org::omg::CORBA::ParameterMode * > * table; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ParameterMode__ diff --git a/libjava/org/omg/CORBA/ParameterModeHelper.h b/libjava/org/omg/CORBA/ParameterModeHelper.h new file mode 100644 index 00000000000..74d723b1bae --- /dev/null +++ b/libjava/org/omg/CORBA/ParameterModeHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ParameterModeHelper__ +#define __org_omg_CORBA_ParameterModeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ParameterMode; + class ParameterModeHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ParameterModeHelper : public ::java::lang::Object +{ + +public: + ParameterModeHelper(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::ParameterMode *); + static ::org::omg::CORBA::ParameterMode * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::org::omg::CORBA::ParameterMode * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::ParameterMode *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ParameterModeHelper__ diff --git a/libjava/org/omg/CORBA/ParameterModeHolder.h b/libjava/org/omg/CORBA/ParameterModeHolder.h new file mode 100644 index 00000000000..5d8186f1ccb --- /dev/null +++ b/libjava/org/omg/CORBA/ParameterModeHolder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ParameterModeHolder__ +#define __org_omg_CORBA_ParameterModeHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ParameterMode; + class ParameterModeHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ParameterModeHolder : public ::java::lang::Object +{ + +public: + ParameterModeHolder(); + ParameterModeHolder(::org::omg::CORBA::ParameterMode *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::ParameterMode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ParameterModeHolder__ diff --git a/libjava/org/omg/CORBA/Policy.h b/libjava/org/omg/CORBA/Policy.h new file mode 100644 index 00000000000..49f2b44fb5b --- /dev/null +++ b/libjava/org/omg/CORBA/Policy.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Policy__ +#define __org_omg_CORBA_Policy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + } + } +} + +class org::omg::CORBA::Policy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_Policy__ diff --git a/libjava/org/omg/CORBA/PolicyError.h b/libjava/org/omg/CORBA/PolicyError.h new file mode 100644 index 00000000000..1948a84813f --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyError.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyError__ +#define __org_omg_CORBA_PolicyError__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class PolicyError; + } + } + } +} + +class org::omg::CORBA::PolicyError : public ::org::omg::CORBA::UserException +{ + +public: + PolicyError(); + PolicyError(jshort); + PolicyError(::java::lang::String *, jshort); + jshort __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) reason; +private: + static const jlong serialVersionUID = -9196809779974700103LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyError__ diff --git a/libjava/org/omg/CORBA/PolicyErrorCodeHelper.h b/libjava/org/omg/CORBA/PolicyErrorCodeHelper.h new file mode 100644 index 00000000000..817d39dd7e8 --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyErrorCodeHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyErrorCodeHelper__ +#define __org_omg_CORBA_PolicyErrorCodeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class PolicyErrorCodeHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyErrorCodeHelper : public ::java::lang::Object +{ + +public: + PolicyErrorCodeHelper(); + static jshort extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, jshort); + static jshort read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, jshort); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyErrorCodeHelper__ diff --git a/libjava/org/omg/CORBA/PolicyErrorHelper.h b/libjava/org/omg/CORBA/PolicyErrorHelper.h new file mode 100644 index 00000000000..dadfb37646e --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyErrorHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyErrorHelper__ +#define __org_omg_CORBA_PolicyErrorHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class PolicyError; + class PolicyErrorHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyErrorHelper : public ::java::lang::Object +{ + +public: + PolicyErrorHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::PolicyError *); + static ::org::omg::CORBA::PolicyError * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::CORBA::PolicyError * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::PolicyError *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyErrorHelper__ diff --git a/libjava/org/omg/CORBA/PolicyErrorHolder.h b/libjava/org/omg/CORBA/PolicyErrorHolder.h new file mode 100644 index 00000000000..14823502727 --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyErrorHolder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyErrorHolder__ +#define __org_omg_CORBA_PolicyErrorHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class PolicyError; + class PolicyErrorHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyErrorHolder : public ::java::lang::Object +{ + +public: + PolicyErrorHolder(); + PolicyErrorHolder(::org::omg::CORBA::PolicyError *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::CORBA::PolicyError * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyErrorHolder__ diff --git a/libjava/org/omg/CORBA/PolicyHelper.h b/libjava/org/omg/CORBA/PolicyHelper.h new file mode 100644 index 00000000000..440e575966d --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyHelper__ +#define __org_omg_CORBA_PolicyHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class Policy; + class PolicyHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyHelper : public ::java::lang::Object +{ + +public: + PolicyHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::Policy *); + static ::org::omg::CORBA::Policy * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::CORBA::Policy * narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::Policy * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::Policy *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyHelper__ diff --git a/libjava/org/omg/CORBA/PolicyHolder.h b/libjava/org/omg/CORBA/PolicyHolder.h new file mode 100644 index 00000000000..3e9f6cfdd59 --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyHolder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyHolder__ +#define __org_omg_CORBA_PolicyHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + class PolicyHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyHolder : public ::java::lang::Object +{ + +public: + PolicyHolder(); + PolicyHolder(::org::omg::CORBA::Policy *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::CORBA::Policy * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyHolder__ diff --git a/libjava/org/omg/CORBA/PolicyListHelper.h b/libjava/org/omg/CORBA/PolicyListHelper.h new file mode 100644 index 00000000000..a18369e9cd0 --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyListHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyListHelper__ +#define __org_omg_CORBA_PolicyListHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Policy; + class PolicyListHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyListHelper : public ::java::lang::Object +{ + +public: + PolicyListHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::CORBA::Policy * > *); + static JArray< ::org::omg::CORBA::Policy * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static JArray< ::org::omg::CORBA::Policy * > * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::CORBA::Policy * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyListHelper__ diff --git a/libjava/org/omg/CORBA/PolicyListHolder.h b/libjava/org/omg/CORBA/PolicyListHolder.h new file mode 100644 index 00000000000..375ced89b56 --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyListHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyListHolder__ +#define __org_omg_CORBA_PolicyListHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + class PolicyListHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyListHolder : public ::java::lang::Object +{ + +public: + PolicyListHolder(); + PolicyListHolder(JArray< ::org::omg::CORBA::Policy * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + JArray< ::org::omg::CORBA::Policy * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyListHolder__ diff --git a/libjava/org/omg/CORBA/PolicyOperations.h b/libjava/org/omg/CORBA/PolicyOperations.h new file mode 100644 index 00000000000..b27bc9cf9c4 --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyOperations.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyOperations__ +#define __org_omg_CORBA_PolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + class PolicyOperations; + } + } + } +} + +class org::omg::CORBA::PolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_PolicyOperations__ diff --git a/libjava/org/omg/CORBA/PolicyTypeHelper.h b/libjava/org/omg/CORBA/PolicyTypeHelper.h new file mode 100644 index 00000000000..25868513ccc --- /dev/null +++ b/libjava/org/omg/CORBA/PolicyTypeHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PolicyTypeHelper__ +#define __org_omg_CORBA_PolicyTypeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class PolicyTypeHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PolicyTypeHelper : public ::java::lang::Object +{ + +public: + PolicyTypeHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, jint); + static jint extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static jint read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, jint); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PolicyTypeHelper__ diff --git a/libjava/org/omg/CORBA/Principal.h b/libjava/org/omg/CORBA/Principal.h new file mode 100644 index 00000000000..52c71503d92 --- /dev/null +++ b/libjava/org/omg/CORBA/Principal.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Principal__ +#define __org_omg_CORBA_Principal__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Principal; + } + } + } +} + +class org::omg::CORBA::Principal : public ::java::lang::Object +{ + +public: + Principal(); + virtual JArray< jbyte > * name(); + virtual void name(JArray< jbyte > *); +private: + JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) m_name; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_Principal__ diff --git a/libjava/org/omg/CORBA/PrincipalHolder.h b/libjava/org/omg/CORBA/PrincipalHolder.h new file mode 100644 index 00000000000..5919dae464e --- /dev/null +++ b/libjava/org/omg/CORBA/PrincipalHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_PrincipalHolder__ +#define __org_omg_CORBA_PrincipalHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Principal; + class PrincipalHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::PrincipalHolder : public ::java::lang::Object +{ + +public: + PrincipalHolder(); + PrincipalHolder(::org::omg::CORBA::Principal *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_any; +public: + ::org::omg::CORBA::Principal * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_PrincipalHolder__ diff --git a/libjava/org/omg/CORBA/REBIND.h b/libjava/org/omg/CORBA/REBIND.h new file mode 100644 index 00000000000..43606046ba2 --- /dev/null +++ b/libjava/org/omg/CORBA/REBIND.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_REBIND__ +#define __org_omg_CORBA_REBIND__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class REBIND; + } + } + } +} + +class org::omg::CORBA::REBIND : public ::org::omg::CORBA::SystemException +{ + +public: + REBIND(::java::lang::String *); + REBIND(); + REBIND(jint, ::org::omg::CORBA::CompletionStatus *); + REBIND(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 823920851143467547LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_REBIND__ diff --git a/libjava/org/omg/CORBA/RepositoryIdHelper.h b/libjava/org/omg/CORBA/RepositoryIdHelper.h new file mode 100644 index 00000000000..1d351e6d656 --- /dev/null +++ b/libjava/org/omg/CORBA/RepositoryIdHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_RepositoryIdHelper__ +#define __org_omg_CORBA_RepositoryIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class RepositoryIdHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::RepositoryIdHelper : public ::java::lang::Object +{ + +public: + RepositoryIdHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_RepositoryIdHelper__ diff --git a/libjava/org/omg/CORBA/Request.h b/libjava/org/omg/CORBA/Request.h new file mode 100644 index 00000000000..b1d9b420c51 --- /dev/null +++ b/libjava/org/omg/CORBA/Request.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_Request__ +#define __org_omg_CORBA_Request__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class Environment; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Request; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::Request : public ::java::lang::Object +{ + +public: + Request(); + virtual ::org::omg::CORBA::Any * add_in_arg() = 0; + virtual ::org::omg::CORBA::Any * add_inout_arg() = 0; + virtual ::org::omg::CORBA::Any * add_named_in_arg(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Any * add_named_inout_arg(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Any * add_named_out_arg(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Any * add_out_arg() = 0; + virtual ::org::omg::CORBA::NVList * arguments() = 0; + virtual ::org::omg::CORBA::ContextList * contexts() = 0; + virtual ::org::omg::CORBA::Context * ctx() = 0; + virtual void ctx(::org::omg::CORBA::Context *) = 0; + virtual ::org::omg::CORBA::Environment * env() = 0; + virtual ::org::omg::CORBA::ExceptionList * exceptions() = 0; + virtual void get_response() = 0; + virtual void invoke() = 0; + virtual ::java::lang::String * operation() = 0; + virtual jboolean poll_response() = 0; + virtual ::org::omg::CORBA::NamedValue * result() = 0; + virtual ::org::omg::CORBA::Any * return_value() = 0; + virtual void send_deferred() = 0; + virtual void send_oneway() = 0; + virtual void set_return_type(::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::CORBA::Object * target() = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_Request__ diff --git a/libjava/org/omg/CORBA/ServerRequest.h b/libjava/org/omg/CORBA/ServerRequest.h new file mode 100644 index 00000000000..f027f0ade27 --- /dev/null +++ b/libjava/org/omg/CORBA/ServerRequest.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ServerRequest__ +#define __org_omg_CORBA_ServerRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class NVList; + class ServerRequest; + } + } + } +} + +class org::omg::CORBA::ServerRequest : public ::java::lang::Object +{ + +public: + ServerRequest(); + virtual ::org::omg::CORBA::Context * ctx() = 0; + virtual ::java::lang::String * operation(); + virtual void arguments(::org::omg::CORBA::NVList *); + virtual void set_result(::org::omg::CORBA::Any *); + virtual void set_exception(::org::omg::CORBA::Any *); + virtual void result(::org::omg::CORBA::Any *); + virtual void except(::org::omg::CORBA::Any *); + virtual void params(::org::omg::CORBA::NVList *); + virtual ::java::lang::String * op_name(); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ServerRequest__ diff --git a/libjava/org/omg/CORBA/ServiceDetail.h b/libjava/org/omg/CORBA/ServiceDetail.h new file mode 100644 index 00000000000..c0f4627ac88 --- /dev/null +++ b/libjava/org/omg/CORBA/ServiceDetail.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ServiceDetail__ +#define __org_omg_CORBA_ServiceDetail__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ServiceDetail; + } + } + } +} + +class org::omg::CORBA::ServiceDetail : public ::java::lang::Object +{ + +public: + ServiceDetail(); + ServiceDetail(jint, JArray< jbyte > *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) service_detail_type; + JArray< jbyte > * service_detail; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ServiceDetail__ diff --git a/libjava/org/omg/CORBA/ServiceDetailHelper.h b/libjava/org/omg/CORBA/ServiceDetailHelper.h new file mode 100644 index 00000000000..700a0d5d880 --- /dev/null +++ b/libjava/org/omg/CORBA/ServiceDetailHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ServiceDetailHelper__ +#define __org_omg_CORBA_ServiceDetailHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ServiceDetail; + class ServiceDetailHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ServiceDetailHelper : public ::java::lang::Object +{ + +public: + ServiceDetailHelper(); + static ::org::omg::CORBA::ServiceDetail * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::ServiceDetail *); + static ::org::omg::CORBA::ServiceDetail * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::ServiceDetail *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ServiceDetailHelper__ diff --git a/libjava/org/omg/CORBA/ServiceInformation.h b/libjava/org/omg/CORBA/ServiceInformation.h new file mode 100644 index 00000000000..d8832c3d0d6 --- /dev/null +++ b/libjava/org/omg/CORBA/ServiceInformation.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ServiceInformation__ +#define __org_omg_CORBA_ServiceInformation__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ServiceDetail; + class ServiceInformation; + } + } + } +} + +class org::omg::CORBA::ServiceInformation : public ::java::lang::Object +{ + +public: + ServiceInformation(); + ServiceInformation(JArray< jint > *, JArray< ::org::omg::CORBA::ServiceDetail * > *); + JArray< ::org::omg::CORBA::ServiceDetail * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) service_details; + JArray< jint > * service_options; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ServiceInformation__ diff --git a/libjava/org/omg/CORBA/ServiceInformationHelper.h b/libjava/org/omg/CORBA/ServiceInformationHelper.h new file mode 100644 index 00000000000..7e97cfd2423 --- /dev/null +++ b/libjava/org/omg/CORBA/ServiceInformationHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ServiceInformationHelper__ +#define __org_omg_CORBA_ServiceInformationHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ServiceInformation; + class ServiceInformationHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ServiceInformationHelper : public ::java::lang::Object +{ + +public: + ServiceInformationHelper(); + static ::org::omg::CORBA::ServiceInformation * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::ServiceInformation *); + static ::org::omg::CORBA::ServiceInformation * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::ServiceInformation *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ServiceInformationHelper__ diff --git a/libjava/org/omg/CORBA/ServiceInformationHolder.h b/libjava/org/omg/CORBA/ServiceInformationHolder.h new file mode 100644 index 00000000000..d6261deb288 --- /dev/null +++ b/libjava/org/omg/CORBA/ServiceInformationHolder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ServiceInformationHolder__ +#define __org_omg_CORBA_ServiceInformationHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ServiceInformation; + class ServiceInformationHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ServiceInformationHolder : public ::java::lang::Object +{ + +public: + ServiceInformationHolder(); + ServiceInformationHolder(::org::omg::CORBA::ServiceInformation *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::ServiceInformation * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ServiceInformationHolder__ diff --git a/libjava/org/omg/CORBA/SetOverrideType.h b/libjava/org/omg/CORBA/SetOverrideType.h new file mode 100644 index 00000000000..e0db0f9a754 --- /dev/null +++ b/libjava/org/omg/CORBA/SetOverrideType.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_SetOverrideType__ +#define __org_omg_CORBA_SetOverrideType__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class SetOverrideType; + } + } + } +} + +class org::omg::CORBA::SetOverrideType : public ::java::lang::Object +{ + +public: // actually protected + SetOverrideType(jint); +public: + static ::org::omg::CORBA::SetOverrideType * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = -2761857189425106972LL; +public: + static const jint _ADD_OVERRIDE = 1; + static const jint _SET_OVERRIDE = 0; + static ::org::omg::CORBA::SetOverrideType * ADD_OVERRIDE; + static ::org::omg::CORBA::SetOverrideType * SET_OVERRIDE; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_SetOverrideType__ diff --git a/libjava/org/omg/CORBA/SetOverrideTypeHelper.h b/libjava/org/omg/CORBA/SetOverrideTypeHelper.h new file mode 100644 index 00000000000..e1904491758 --- /dev/null +++ b/libjava/org/omg/CORBA/SetOverrideTypeHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_SetOverrideTypeHelper__ +#define __org_omg_CORBA_SetOverrideTypeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class SetOverrideType; + class SetOverrideTypeHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::SetOverrideTypeHelper : public ::java::lang::Object +{ + +public: + SetOverrideTypeHelper(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::SetOverrideType *); + static ::org::omg::CORBA::SetOverrideType * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::org::omg::CORBA::SetOverrideType * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::SetOverrideType *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_SetOverrideTypeHelper__ diff --git a/libjava/org/omg/CORBA/ShortHolder.h b/libjava/org/omg/CORBA/ShortHolder.h new file mode 100644 index 00000000000..2a7a4db4260 --- /dev/null +++ b/libjava/org/omg/CORBA/ShortHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ShortHolder__ +#define __org_omg_CORBA_ShortHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ShortHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ShortHolder : public ::java::lang::Object +{ + +public: + ShortHolder(); + ShortHolder(jshort); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_short; +public: + jshort __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ShortHolder__ diff --git a/libjava/org/omg/CORBA/ShortSeqHelper.h b/libjava/org/omg/CORBA/ShortSeqHelper.h new file mode 100644 index 00000000000..88be02fa0a1 --- /dev/null +++ b/libjava/org/omg/CORBA/ShortSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ShortSeqHelper__ +#define __org_omg_CORBA_ShortSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ShortSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ShortSeqHelper : public ::java::lang::Object +{ + +public: + ShortSeqHelper(); + static JArray< jshort > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jshort > *); + static JArray< jshort > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jshort > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ShortSeqHelper__ diff --git a/libjava/org/omg/CORBA/ShortSeqHolder.h b/libjava/org/omg/CORBA/ShortSeqHolder.h new file mode 100644 index 00000000000..5df6e65ad80 --- /dev/null +++ b/libjava/org/omg/CORBA/ShortSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ShortSeqHolder__ +#define __org_omg_CORBA_ShortSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class ShortSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ShortSeqHolder : public ::java::lang::Object +{ + +public: + ShortSeqHolder(); + ShortSeqHolder(JArray< jshort > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jshort > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ShortSeqHolder__ diff --git a/libjava/org/omg/CORBA/StringHolder.h b/libjava/org/omg/CORBA/StringHolder.h new file mode 100644 index 00000000000..dd16baf906d --- /dev/null +++ b/libjava/org/omg/CORBA/StringHolder.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_StringHolder__ +#define __org_omg_CORBA_StringHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class StringTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class StringHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::StringHolder : public ::java::lang::Object +{ + +public: + StringHolder(); + StringHolder(::java::lang::String *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::gnu::CORBA::typecodes::StringTypeCode * t_string; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_StringHolder__ diff --git a/libjava/org/omg/CORBA/StringSeqHelper.h b/libjava/org/omg/CORBA/StringSeqHelper.h new file mode 100644 index 00000000000..b248abc4e86 --- /dev/null +++ b/libjava/org/omg/CORBA/StringSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_StringSeqHelper__ +#define __org_omg_CORBA_StringSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class StringSeqHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::StringSeqHelper : public ::java::lang::Object +{ + +public: + StringSeqHelper(); + static JArray< ::java::lang::String * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::java::lang::String * > *); + static JArray< ::java::lang::String * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::java::lang::String * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_StringSeqHelper__ diff --git a/libjava/org/omg/CORBA/StringSeqHolder.h b/libjava/org/omg/CORBA/StringSeqHolder.h new file mode 100644 index 00000000000..fc30bc33063 --- /dev/null +++ b/libjava/org/omg/CORBA/StringSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_StringSeqHolder__ +#define __org_omg_CORBA_StringSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class StringSeqHolder; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::StringSeqHolder : public ::java::lang::Object +{ + +public: + StringSeqHolder(); + StringSeqHolder(JArray< ::java::lang::String * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_StringSeqHolder__ diff --git a/libjava/org/omg/CORBA/StringValueHelper.h b/libjava/org/omg/CORBA/StringValueHelper.h new file mode 100644 index 00000000000..20845caf5b7 --- /dev/null +++ b/libjava/org/omg/CORBA/StringValueHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_StringValueHelper__ +#define __org_omg_CORBA_StringValueHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class StringValueHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::StringValueHelper : public ::java::lang::Object +{ + +public: + StringValueHelper(); + virtual ::java::lang::String * get_id(); + static ::java::lang::String * id(); + virtual ::java::io::Serializable * read_value(::org::omg::CORBA::portable::InputStream *); + virtual void write_value(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); +private: + static ::java::lang::String * id__; + static ::org::omg::CORBA::TypeCode * tString; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_StringValueHelper__ diff --git a/libjava/org/omg/CORBA/StructMember.h b/libjava/org/omg/CORBA/StructMember.h new file mode 100644 index 00000000000..fdd95862b36 --- /dev/null +++ b/libjava/org/omg/CORBA/StructMember.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_StructMember__ +#define __org_omg_CORBA_StructMember__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class IDLType; + class StructMember; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::StructMember : public ::java::lang::Object +{ + +public: + StructMember(); + StructMember(::java::lang::String *, ::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::IDLType *); +private: + static const jlong serialVersionUID = 2762280796480753206LL; +public: + ::org::omg::CORBA::IDLType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type_def; + ::java::lang::String * name; + ::org::omg::CORBA::TypeCode * type; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_StructMember__ diff --git a/libjava/org/omg/CORBA/StructMemberHelper.h b/libjava/org/omg/CORBA/StructMemberHelper.h new file mode 100644 index 00000000000..96417f401bc --- /dev/null +++ b/libjava/org/omg/CORBA/StructMemberHelper.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_StructMemberHelper__ +#define __org_omg_CORBA_StructMemberHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class StructMember; + class StructMemberHelper; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::StructMemberHelper : public ::java::lang::Object +{ + +public: + StructMemberHelper(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::StructMember *); + static ::org::omg::CORBA::StructMember * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::org::omg::CORBA::StructMember * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::StructMember *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; + static jboolean active; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_StructMemberHelper__ diff --git a/libjava/org/omg/CORBA/SystemException.h b/libjava/org/omg/CORBA/SystemException.h new file mode 100644 index 00000000000..4c7c43fffdf --- /dev/null +++ b/libjava/org/omg/CORBA/SystemException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_SystemException__ +#define __org_omg_CORBA_SystemException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class SystemException; + } + } + } +} + +class org::omg::CORBA::SystemException : public ::java::lang::RuntimeException +{ + +public: // actually protected + SystemException(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -8486391734674855519LL; +public: + ::org::omg::CORBA::CompletionStatus * __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) completed; + jint minor; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_SystemException__ diff --git a/libjava/org/omg/CORBA/TCKind.h b/libjava/org/omg/CORBA/TCKind.h new file mode 100644 index 00000000000..d62ef2ce2c2 --- /dev/null +++ b/libjava/org/omg/CORBA/TCKind.h @@ -0,0 +1,107 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TCKind__ +#define __org_omg_CORBA_TCKind__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TCKind; + } + } + } +} + +class org::omg::CORBA::TCKind : public ::java::lang::Object +{ + +public: // actually protected + TCKind(jint); +public: + virtual jint value(); + static ::org::omg::CORBA::TCKind * from_int(jint); + static const jint _tk_null = 0; + static const jint _tk_void = 1; + static const jint _tk_short = 2; + static const jint _tk_long = 3; + static const jint _tk_ushort = 4; + static const jint _tk_ulong = 5; + static const jint _tk_float = 6; + static const jint _tk_double = 7; + static const jint _tk_boolean = 8; + static const jint _tk_char = 9; + static const jint _tk_octet = 10; + static const jint _tk_any = 11; + static const jint _tk_TypeCode = 12; + static const jint _tk_Principal = 13; + static const jint _tk_objref = 14; + static const jint _tk_struct = 15; + static const jint _tk_union = 16; + static const jint _tk_enum = 17; + static const jint _tk_string = 18; + static const jint _tk_sequence = 19; + static const jint _tk_array = 20; + static const jint _tk_alias = 21; + static const jint _tk_except = 22; + static const jint _tk_longlong = 23; + static const jint _tk_ulonglong = 24; + static const jint _tk_longdouble = 25; + static const jint _tk_wchar = 26; + static const jint _tk_wstring = 27; + static const jint _tk_fixed = 28; + static const jint _tk_value = 29; + static const jint _tk_value_box = 30; + static const jint _tk_native = 31; + static const jint _tk_abstract_interface = 32; + static ::org::omg::CORBA::TCKind * tk_null; + static ::org::omg::CORBA::TCKind * tk_void; + static ::org::omg::CORBA::TCKind * tk_short; + static ::org::omg::CORBA::TCKind * tk_long; + static ::org::omg::CORBA::TCKind * tk_ushort; + static ::org::omg::CORBA::TCKind * tk_ulong; + static ::org::omg::CORBA::TCKind * tk_float; + static ::org::omg::CORBA::TCKind * tk_double; + static ::org::omg::CORBA::TCKind * tk_boolean; + static ::org::omg::CORBA::TCKind * tk_char; + static ::org::omg::CORBA::TCKind * tk_octet; + static ::org::omg::CORBA::TCKind * tk_any; + static ::org::omg::CORBA::TCKind * tk_TypeCode; + static ::org::omg::CORBA::TCKind * tk_Principal; + static ::org::omg::CORBA::TCKind * tk_objref; + static ::org::omg::CORBA::TCKind * tk_struct; + static ::org::omg::CORBA::TCKind * tk_union; + static ::org::omg::CORBA::TCKind * tk_enum; + static ::org::omg::CORBA::TCKind * tk_string; + static ::org::omg::CORBA::TCKind * tk_sequence; + static ::org::omg::CORBA::TCKind * tk_array; + static ::org::omg::CORBA::TCKind * tk_alias; + static ::org::omg::CORBA::TCKind * tk_except; + static ::org::omg::CORBA::TCKind * tk_longlong; + static ::org::omg::CORBA::TCKind * tk_ulonglong; + static ::org::omg::CORBA::TCKind * tk_longdouble; + static ::org::omg::CORBA::TCKind * tk_wchar; + static ::org::omg::CORBA::TCKind * tk_wstring; + static ::org::omg::CORBA::TCKind * tk_fixed; + static ::org::omg::CORBA::TCKind * tk_value; + static ::org::omg::CORBA::TCKind * tk_value_box; + static ::org::omg::CORBA::TCKind * tk_native; + static ::org::omg::CORBA::TCKind * tk_abstract_interface; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; + static JArray< ::org::omg::CORBA::TCKind * > * tk; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TCKind__ diff --git a/libjava/org/omg/CORBA/TIMEOUT.h b/libjava/org/omg/CORBA/TIMEOUT.h new file mode 100644 index 00000000000..7ce1fb5976b --- /dev/null +++ b/libjava/org/omg/CORBA/TIMEOUT.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TIMEOUT__ +#define __org_omg_CORBA_TIMEOUT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class TIMEOUT; + } + } + } +} + +class org::omg::CORBA::TIMEOUT : public ::org::omg::CORBA::SystemException +{ + +public: + TIMEOUT(::java::lang::String *); + TIMEOUT(); + TIMEOUT(jint, ::org::omg::CORBA::CompletionStatus *); + TIMEOUT(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 4674850648191359518LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TIMEOUT__ diff --git a/libjava/org/omg/CORBA/TRANSACTION_MODE.h b/libjava/org/omg/CORBA/TRANSACTION_MODE.h new file mode 100644 index 00000000000..5744d7e4521 --- /dev/null +++ b/libjava/org/omg/CORBA/TRANSACTION_MODE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TRANSACTION_MODE__ +#define __org_omg_CORBA_TRANSACTION_MODE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class TRANSACTION_MODE; + } + } + } +} + +class org::omg::CORBA::TRANSACTION_MODE : public ::org::omg::CORBA::SystemException +{ + +public: + TRANSACTION_MODE(::java::lang::String *); + TRANSACTION_MODE(); + TRANSACTION_MODE(jint, ::org::omg::CORBA::CompletionStatus *); + TRANSACTION_MODE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 681236728492128745LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TRANSACTION_MODE__ diff --git a/libjava/org/omg/CORBA/TRANSACTION_REQUIRED.h b/libjava/org/omg/CORBA/TRANSACTION_REQUIRED.h new file mode 100644 index 00000000000..ccf7cd134d2 --- /dev/null +++ b/libjava/org/omg/CORBA/TRANSACTION_REQUIRED.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TRANSACTION_REQUIRED__ +#define __org_omg_CORBA_TRANSACTION_REQUIRED__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class TRANSACTION_REQUIRED; + } + } + } +} + +class org::omg::CORBA::TRANSACTION_REQUIRED : public ::org::omg::CORBA::SystemException +{ + +public: + TRANSACTION_REQUIRED(::java::lang::String *); + TRANSACTION_REQUIRED(); + TRANSACTION_REQUIRED(jint, ::org::omg::CORBA::CompletionStatus *); + TRANSACTION_REQUIRED(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -1900254548742148576LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TRANSACTION_REQUIRED__ diff --git a/libjava/org/omg/CORBA/TRANSACTION_ROLLEDBACK.h b/libjava/org/omg/CORBA/TRANSACTION_ROLLEDBACK.h new file mode 100644 index 00000000000..722cfe07f75 --- /dev/null +++ b/libjava/org/omg/CORBA/TRANSACTION_ROLLEDBACK.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TRANSACTION_ROLLEDBACK__ +#define __org_omg_CORBA_TRANSACTION_ROLLEDBACK__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class TRANSACTION_ROLLEDBACK; + } + } + } +} + +class org::omg::CORBA::TRANSACTION_ROLLEDBACK : public ::org::omg::CORBA::SystemException +{ + +public: + TRANSACTION_ROLLEDBACK(::java::lang::String *); + TRANSACTION_ROLLEDBACK(); + TRANSACTION_ROLLEDBACK(jint, ::org::omg::CORBA::CompletionStatus *); + TRANSACTION_ROLLEDBACK(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -343903462439281571LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TRANSACTION_ROLLEDBACK__ diff --git a/libjava/org/omg/CORBA/TRANSACTION_UNAVAILABLE.h b/libjava/org/omg/CORBA/TRANSACTION_UNAVAILABLE.h new file mode 100644 index 00000000000..9516c7629bd --- /dev/null +++ b/libjava/org/omg/CORBA/TRANSACTION_UNAVAILABLE.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TRANSACTION_UNAVAILABLE__ +#define __org_omg_CORBA_TRANSACTION_UNAVAILABLE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class TRANSACTION_UNAVAILABLE; + } + } + } +} + +class org::omg::CORBA::TRANSACTION_UNAVAILABLE : public ::org::omg::CORBA::SystemException +{ + +public: + TRANSACTION_UNAVAILABLE(::java::lang::String *); + TRANSACTION_UNAVAILABLE(); + TRANSACTION_UNAVAILABLE(jint, ::org::omg::CORBA::CompletionStatus *); + TRANSACTION_UNAVAILABLE(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 6340246200933309385LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TRANSACTION_UNAVAILABLE__ diff --git a/libjava/org/omg/CORBA/TRANSIENT.h b/libjava/org/omg/CORBA/TRANSIENT.h new file mode 100644 index 00000000000..904b54dcd52 --- /dev/null +++ b/libjava/org/omg/CORBA/TRANSIENT.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TRANSIENT__ +#define __org_omg_CORBA_TRANSIENT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class TRANSIENT; + } + } + } +} + +class org::omg::CORBA::TRANSIENT : public ::org::omg::CORBA::SystemException +{ + +public: + TRANSIENT(::java::lang::String *); + TRANSIENT(); + TRANSIENT(jint, ::org::omg::CORBA::CompletionStatus *); + TRANSIENT(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = 8168539547719791425LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TRANSIENT__ diff --git a/libjava/org/omg/CORBA/TypeCode.h b/libjava/org/omg/CORBA/TypeCode.h new file mode 100644 index 00000000000..706dc288517 --- /dev/null +++ b/libjava/org/omg/CORBA/TypeCode.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TypeCode__ +#define __org_omg_CORBA_TypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TCKind; + class TypeCode; + } + } + } +} + +class org::omg::CORBA::TypeCode : public ::java::lang::Object +{ + +public: + TypeCode(); + virtual ::org::omg::CORBA::TypeCode * concrete_base_type() = 0; + virtual ::org::omg::CORBA::TypeCode * content_type() = 0; + virtual jint default_index() = 0; + virtual ::org::omg::CORBA::TypeCode * discriminator_type() = 0; + virtual jboolean equal(::org::omg::CORBA::TypeCode *) = 0; + virtual jboolean equivalent(::org::omg::CORBA::TypeCode *) = 0; + virtual jshort fixed_digits() = 0; + virtual jshort fixed_scale() = 0; + virtual ::org::omg::CORBA::TypeCode * get_compact_typecode() = 0; + virtual ::java::lang::String * id() = 0; + virtual ::org::omg::CORBA::TCKind * kind() = 0; + virtual jint length() = 0; + virtual jint member_count() = 0; + virtual ::org::omg::CORBA::Any * member_label(jint) = 0; + virtual ::java::lang::String * member_name(jint) = 0; + virtual ::org::omg::CORBA::TypeCode * member_type(jint) = 0; + virtual jshort member_visibility(jint) = 0; + virtual ::java::lang::String * name() = 0; + virtual jshort type_modifier() = 0; +private: + static const jlong serialVersionUID = -6521025782489515676LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TypeCode__ diff --git a/libjava/org/omg/CORBA/TypeCodeHolder.h b/libjava/org/omg/CORBA/TypeCodeHolder.h new file mode 100644 index 00000000000..84dd9c138b4 --- /dev/null +++ b/libjava/org/omg/CORBA/TypeCodeHolder.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TypeCodeHolder__ +#define __org_omg_CORBA_TypeCodeHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class TypeCodeHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::TypeCodeHolder : public ::java::lang::Object +{ + +public: + TypeCodeHolder(); + TypeCodeHolder(::org::omg::CORBA::TypeCode *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); +private: + static ::org::omg::CORBA::TypeCode * t_TypeCode; +public: + ::org::omg::CORBA::TypeCode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TypeCodeHolder__ diff --git a/libjava/org/omg/CORBA/TypeCodePackage/BadKind.h b/libjava/org/omg/CORBA/TypeCodePackage/BadKind.h new file mode 100644 index 00000000000..475f3d18ae6 --- /dev/null +++ b/libjava/org/omg/CORBA/TypeCodePackage/BadKind.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TypeCodePackage_BadKind__ +#define __org_omg_CORBA_TypeCodePackage_BadKind__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace TypeCodePackage + { + class BadKind; + } + } + } + } +} + +class org::omg::CORBA::TypeCodePackage::BadKind : public ::org::omg::CORBA::UserException +{ + +public: + BadKind(); + BadKind(::java::lang::String *); +private: + static const jlong serialVersionUID = 1030443154456771956LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TypeCodePackage_BadKind__ diff --git a/libjava/org/omg/CORBA/TypeCodePackage/Bounds.h b/libjava/org/omg/CORBA/TypeCodePackage/Bounds.h new file mode 100644 index 00000000000..a91546c3621 --- /dev/null +++ b/libjava/org/omg/CORBA/TypeCodePackage/Bounds.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_TypeCodePackage_Bounds__ +#define __org_omg_CORBA_TypeCodePackage_Bounds__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace TypeCodePackage + { + class Bounds; + } + } + } + } +} + +class org::omg::CORBA::TypeCodePackage::Bounds : public ::org::omg::CORBA::UserException +{ + +public: + Bounds(); + Bounds(::java::lang::String *); +private: + static const jlong serialVersionUID = -5418177951071152101LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_TypeCodePackage_Bounds__ diff --git a/libjava/org/omg/CORBA/ULongLongSeqHelper.h b/libjava/org/omg/CORBA/ULongLongSeqHelper.h new file mode 100644 index 00000000000..2f4f6c9795d --- /dev/null +++ b/libjava/org/omg/CORBA/ULongLongSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ULongLongSeqHelper__ +#define __org_omg_CORBA_ULongLongSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class ULongLongSeqHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ULongLongSeqHelper : public ::java::lang::Object +{ + +public: + ULongLongSeqHelper(); + static JArray< jlong > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jlong > *); + static JArray< jlong > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jlong > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ULongLongSeqHelper__ diff --git a/libjava/org/omg/CORBA/ULongLongSeqHolder.h b/libjava/org/omg/CORBA/ULongLongSeqHolder.h new file mode 100644 index 00000000000..a6b2ca6de17 --- /dev/null +++ b/libjava/org/omg/CORBA/ULongLongSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ULongLongSeqHolder__ +#define __org_omg_CORBA_ULongLongSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class ULongLongSeqHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ULongLongSeqHolder : public ::java::lang::Object +{ + +public: + ULongLongSeqHolder(); + ULongLongSeqHolder(JArray< jlong > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jlong > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ULongLongSeqHolder__ diff --git a/libjava/org/omg/CORBA/ULongSeqHelper.h b/libjava/org/omg/CORBA/ULongSeqHelper.h new file mode 100644 index 00000000000..1877dda15f7 --- /dev/null +++ b/libjava/org/omg/CORBA/ULongSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ULongSeqHelper__ +#define __org_omg_CORBA_ULongSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class ULongSeqHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ULongSeqHelper : public ::java::lang::Object +{ + +public: + ULongSeqHelper(); + static JArray< jint > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jint > *); + static JArray< jint > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jint > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ULongSeqHelper__ diff --git a/libjava/org/omg/CORBA/ULongSeqHolder.h b/libjava/org/omg/CORBA/ULongSeqHolder.h new file mode 100644 index 00000000000..d4261d6fef8 --- /dev/null +++ b/libjava/org/omg/CORBA/ULongSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ULongSeqHolder__ +#define __org_omg_CORBA_ULongSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class ULongSeqHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ULongSeqHolder : public ::java::lang::Object +{ + +public: + ULongSeqHolder(); + ULongSeqHolder(JArray< jint > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ULongSeqHolder__ diff --git a/libjava/org/omg/CORBA/UNKNOWN.h b/libjava/org/omg/CORBA/UNKNOWN.h new file mode 100644 index 00000000000..4ad7faf48a0 --- /dev/null +++ b/libjava/org/omg/CORBA/UNKNOWN.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UNKNOWN__ +#define __org_omg_CORBA_UNKNOWN__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class CompletionStatus; + class UNKNOWN; + } + } + } +} + +class org::omg::CORBA::UNKNOWN : public ::org::omg::CORBA::SystemException +{ + +public: + UNKNOWN(::java::lang::String *); + UNKNOWN(); + UNKNOWN(jint, ::org::omg::CORBA::CompletionStatus *); + UNKNOWN(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *); +private: + static const jlong serialVersionUID = -3556426185741898205LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UNKNOWN__ diff --git a/libjava/org/omg/CORBA/UNSUPPORTED_POLICY.h b/libjava/org/omg/CORBA/UNSUPPORTED_POLICY.h new file mode 100644 index 00000000000..cf74a837420 --- /dev/null +++ b/libjava/org/omg/CORBA/UNSUPPORTED_POLICY.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UNSUPPORTED_POLICY__ +#define __org_omg_CORBA_UNSUPPORTED_POLICY__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class UNSUPPORTED_POLICY; + } + } + } +} + +class org::omg::CORBA::UNSUPPORTED_POLICY : public ::java::lang::Object +{ + +public: + static const jshort value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_UNSUPPORTED_POLICY__ diff --git a/libjava/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.h b/libjava/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.h new file mode 100644 index 00000000000..a10a8ba8985 --- /dev/null +++ b/libjava/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UNSUPPORTED_POLICY_VALUE__ +#define __org_omg_CORBA_UNSUPPORTED_POLICY_VALUE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class UNSUPPORTED_POLICY_VALUE; + } + } + } +} + +class org::omg::CORBA::UNSUPPORTED_POLICY_VALUE : public ::java::lang::Object +{ + +public: + static const jshort value = 4; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_UNSUPPORTED_POLICY_VALUE__ diff --git a/libjava/org/omg/CORBA/UShortSeqHelper.h b/libjava/org/omg/CORBA/UShortSeqHelper.h new file mode 100644 index 00000000000..77974befb39 --- /dev/null +++ b/libjava/org/omg/CORBA/UShortSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UShortSeqHelper__ +#define __org_omg_CORBA_UShortSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class UShortSeqHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::UShortSeqHelper : public ::java::lang::Object +{ + +public: + UShortSeqHelper(); + static JArray< jshort > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jshort > *); + static JArray< jshort > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jshort > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UShortSeqHelper__ diff --git a/libjava/org/omg/CORBA/UShortSeqHolder.h b/libjava/org/omg/CORBA/UShortSeqHolder.h new file mode 100644 index 00000000000..08afb5e7f3a --- /dev/null +++ b/libjava/org/omg/CORBA/UShortSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UShortSeqHolder__ +#define __org_omg_CORBA_UShortSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class UShortSeqHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::UShortSeqHolder : public ::java::lang::Object +{ + +public: + UShortSeqHolder(); + UShortSeqHolder(JArray< jshort > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jshort > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UShortSeqHolder__ diff --git a/libjava/org/omg/CORBA/UnionMember.h b/libjava/org/omg/CORBA/UnionMember.h new file mode 100644 index 00000000000..e71806c9a88 --- /dev/null +++ b/libjava/org/omg/CORBA/UnionMember.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UnionMember__ +#define __org_omg_CORBA_UnionMember__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class IDLType; + class TypeCode; + class UnionMember; + } + } + } +} + +class org::omg::CORBA::UnionMember : public ::java::lang::Object +{ + +public: + UnionMember(); + UnionMember(::java::lang::String *, ::org::omg::CORBA::Any *, ::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::IDLType *); +private: + static const jlong serialVersionUID = 5506049694216071974LL; +public: + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::java::lang::Object)))) label; + ::org::omg::CORBA::IDLType * type_def; + ::java::lang::String * name; + ::org::omg::CORBA::TypeCode * type; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UnionMember__ diff --git a/libjava/org/omg/CORBA/UnionMemberHelper.h b/libjava/org/omg/CORBA/UnionMemberHelper.h new file mode 100644 index 00000000000..1c1e663a07a --- /dev/null +++ b/libjava/org/omg/CORBA/UnionMemberHelper.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UnionMemberHelper__ +#define __org_omg_CORBA_UnionMemberHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class UnionMember; + class UnionMemberHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::UnionMemberHelper : public ::java::lang::Object +{ + +public: + UnionMemberHelper(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::UnionMember *); + static ::org::omg::CORBA::UnionMember * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::org::omg::CORBA::UnionMember * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::UnionMember *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; + static jboolean active; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UnionMemberHelper__ diff --git a/libjava/org/omg/CORBA/UnknownUserException.h b/libjava/org/omg/CORBA/UnknownUserException.h new file mode 100644 index 00000000000..05713851d76 --- /dev/null +++ b/libjava/org/omg/CORBA/UnknownUserException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UnknownUserException__ +#define __org_omg_CORBA_UnknownUserException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class UnknownUserException; + } + } + } +} + +class org::omg::CORBA::UnknownUserException : public ::org::omg::CORBA::UserException +{ + +public: + UnknownUserException(); + UnknownUserException(::org::omg::CORBA::Any *); + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) except; +private: + static const jlong serialVersionUID = 3106202258203879281LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UnknownUserException__ diff --git a/libjava/org/omg/CORBA/UnknownUserExceptionHelper.h b/libjava/org/omg/CORBA/UnknownUserExceptionHelper.h new file mode 100644 index 00000000000..f0f99543c59 --- /dev/null +++ b/libjava/org/omg/CORBA/UnknownUserExceptionHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UnknownUserExceptionHelper__ +#define __org_omg_CORBA_UnknownUserExceptionHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class UnknownUserException; + class UnknownUserExceptionHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::UnknownUserExceptionHelper : public ::java::lang::Object +{ + +public: + UnknownUserExceptionHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::UnknownUserException *); + static ::org::omg::CORBA::UnknownUserException * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::CORBA::UnknownUserException * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::UnknownUserException *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UnknownUserExceptionHelper__ diff --git a/libjava/org/omg/CORBA/UnknownUserExceptionHolder.h b/libjava/org/omg/CORBA/UnknownUserExceptionHolder.h new file mode 100644 index 00000000000..431ddb2549a --- /dev/null +++ b/libjava/org/omg/CORBA/UnknownUserExceptionHolder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UnknownUserExceptionHolder__ +#define __org_omg_CORBA_UnknownUserExceptionHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class UnknownUserException; + class UnknownUserExceptionHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::UnknownUserExceptionHolder : public ::java::lang::Object +{ + +public: + UnknownUserExceptionHolder(); + UnknownUserExceptionHolder(::org::omg::CORBA::UnknownUserException *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::CORBA::UnknownUserException * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UnknownUserExceptionHolder__ diff --git a/libjava/org/omg/CORBA/UserException.h b/libjava/org/omg/CORBA/UserException.h new file mode 100644 index 00000000000..5569783b8a5 --- /dev/null +++ b/libjava/org/omg/CORBA/UserException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_UserException__ +#define __org_omg_CORBA_UserException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class UserException; + } + } + } +} + +class org::omg::CORBA::UserException : public ::java::lang::Exception +{ + +public: // actually protected + UserException(); + UserException(::java::lang::String *); +private: + static const jlong serialVersionUID = -6594940734566091244LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_UserException__ diff --git a/libjava/org/omg/CORBA/VM_ABSTRACT.h b/libjava/org/omg/CORBA/VM_ABSTRACT.h new file mode 100644 index 00000000000..efc9b7a7d97 --- /dev/null +++ b/libjava/org/omg/CORBA/VM_ABSTRACT.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_VM_ABSTRACT__ +#define __org_omg_CORBA_VM_ABSTRACT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class VM_ABSTRACT; + } + } + } +} + +class org::omg::CORBA::VM_ABSTRACT : public ::java::lang::Object +{ + +public: + static const jshort value = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_VM_ABSTRACT__ diff --git a/libjava/org/omg/CORBA/VM_CUSTOM.h b/libjava/org/omg/CORBA/VM_CUSTOM.h new file mode 100644 index 00000000000..2bb7c670bac --- /dev/null +++ b/libjava/org/omg/CORBA/VM_CUSTOM.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_VM_CUSTOM__ +#define __org_omg_CORBA_VM_CUSTOM__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class VM_CUSTOM; + } + } + } +} + +class org::omg::CORBA::VM_CUSTOM : public ::java::lang::Object +{ + +public: + static const jshort value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_VM_CUSTOM__ diff --git a/libjava/org/omg/CORBA/VM_NONE.h b/libjava/org/omg/CORBA/VM_NONE.h new file mode 100644 index 00000000000..69882f7d790 --- /dev/null +++ b/libjava/org/omg/CORBA/VM_NONE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_VM_NONE__ +#define __org_omg_CORBA_VM_NONE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class VM_NONE; + } + } + } +} + +class org::omg::CORBA::VM_NONE : public ::java::lang::Object +{ + +public: + static const jshort value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_VM_NONE__ diff --git a/libjava/org/omg/CORBA/VM_TRUNCATABLE.h b/libjava/org/omg/CORBA/VM_TRUNCATABLE.h new file mode 100644 index 00000000000..ded12b83945 --- /dev/null +++ b/libjava/org/omg/CORBA/VM_TRUNCATABLE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_VM_TRUNCATABLE__ +#define __org_omg_CORBA_VM_TRUNCATABLE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class VM_TRUNCATABLE; + } + } + } +} + +class org::omg::CORBA::VM_TRUNCATABLE : public ::java::lang::Object +{ + +public: + static const jshort value = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_VM_TRUNCATABLE__ diff --git a/libjava/org/omg/CORBA/ValueBaseHelper.h b/libjava/org/omg/CORBA/ValueBaseHelper.h new file mode 100644 index 00000000000..b2fc750f889 --- /dev/null +++ b/libjava/org/omg/CORBA/ValueBaseHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ValueBaseHelper__ +#define __org_omg_CORBA_ValueBaseHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class ValueBaseHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ValueBaseHelper : public ::java::lang::Object +{ + +public: + ValueBaseHelper(); + static ::java::io::Serializable * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::java::io::Serializable *); + static ::java::io::Serializable * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ValueBaseHelper__ diff --git a/libjava/org/omg/CORBA/ValueBaseHolder.h b/libjava/org/omg/CORBA/ValueBaseHolder.h new file mode 100644 index 00000000000..98d0ef98506 --- /dev/null +++ b/libjava/org/omg/CORBA/ValueBaseHolder.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ValueBaseHolder__ +#define __org_omg_CORBA_ValueBaseHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class ValueBaseHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ValueBaseHolder : public ::java::lang::Object +{ + +public: + ValueBaseHolder(); + ValueBaseHolder(::java::io::Serializable *); + virtual void _read(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::TypeCode * _type(); + virtual void _write(::org::omg::CORBA::portable::OutputStream *); + ::java::io::Serializable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ValueBaseHolder__ diff --git a/libjava/org/omg/CORBA/ValueMember.h b/libjava/org/omg/CORBA/ValueMember.h new file mode 100644 index 00000000000..c9f38ba381d --- /dev/null +++ b/libjava/org/omg/CORBA/ValueMember.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ValueMember__ +#define __org_omg_CORBA_ValueMember__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class IDLType; + class TypeCode; + class ValueMember; + } + } + } +} + +class org::omg::CORBA::ValueMember : public ::java::lang::Object +{ + +public: + ValueMember(); + ValueMember(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::omg::CORBA::TypeCode *, ::org::omg::CORBA::IDLType *, jshort); +private: + static const jlong serialVersionUID = -2507594168537449114LL; +public: + ::org::omg::CORBA::IDLType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type_def; + ::java::lang::String * defined_in; + ::java::lang::String * id; + ::java::lang::String * name; + ::java::lang::String * version; + ::org::omg::CORBA::TypeCode * type; + jshort access; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ValueMember__ diff --git a/libjava/org/omg/CORBA/ValueMemberHelper.h b/libjava/org/omg/CORBA/ValueMemberHelper.h new file mode 100644 index 00000000000..78a33f872f2 --- /dev/null +++ b/libjava/org/omg/CORBA/ValueMemberHelper.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_ValueMemberHelper__ +#define __org_omg_CORBA_ValueMemberHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class ValueMember; + class ValueMemberHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::ValueMemberHelper : public ::java::lang::Object +{ + +public: + ValueMemberHelper(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::ValueMember *); + static ::org::omg::CORBA::ValueMember * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::org::omg::CORBA::ValueMember * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::ValueMember *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; + static jboolean active; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_ValueMemberHelper__ diff --git a/libjava/org/omg/CORBA/VersionSpecHelper.h b/libjava/org/omg/CORBA/VersionSpecHelper.h new file mode 100644 index 00000000000..a537e9b2ecf --- /dev/null +++ b/libjava/org/omg/CORBA/VersionSpecHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_VersionSpecHelper__ +#define __org_omg_CORBA_VersionSpecHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class VersionSpecHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::VersionSpecHelper : public ::java::lang::Object +{ + +public: + VersionSpecHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_VersionSpecHelper__ diff --git a/libjava/org/omg/CORBA/VisibilityHelper.h b/libjava/org/omg/CORBA/VisibilityHelper.h new file mode 100644 index 00000000000..c090bfa9892 --- /dev/null +++ b/libjava/org/omg/CORBA/VisibilityHelper.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_VisibilityHelper__ +#define __org_omg_CORBA_VisibilityHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class VisibilityHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::VisibilityHelper : public ::java::lang::Object +{ + +public: + VisibilityHelper(); + static void insert(::org::omg::CORBA::Any *, jshort); + static jshort extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static jshort read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, jshort); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_VisibilityHelper__ diff --git a/libjava/org/omg/CORBA/WCharSeqHelper.h b/libjava/org/omg/CORBA/WCharSeqHelper.h new file mode 100644 index 00000000000..dadd61cafc9 --- /dev/null +++ b/libjava/org/omg/CORBA/WCharSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WCharSeqHelper__ +#define __org_omg_CORBA_WCharSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class WCharSeqHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::WCharSeqHelper : public ::java::lang::Object +{ + +public: + WCharSeqHelper(); + static JArray< jchar > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< jchar > *); + static JArray< jchar > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jchar > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WCharSeqHelper__ diff --git a/libjava/org/omg/CORBA/WCharSeqHolder.h b/libjava/org/omg/CORBA/WCharSeqHolder.h new file mode 100644 index 00000000000..4c15eb8173a --- /dev/null +++ b/libjava/org/omg/CORBA/WCharSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WCharSeqHolder__ +#define __org_omg_CORBA_WCharSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class WCharSeqHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::WCharSeqHolder : public ::java::lang::Object +{ + +public: + WCharSeqHolder(); + WCharSeqHolder(JArray< jchar > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< jchar > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WCharSeqHolder__ diff --git a/libjava/org/omg/CORBA/WStringSeqHelper.h b/libjava/org/omg/CORBA/WStringSeqHelper.h new file mode 100644 index 00000000000..bdbd286065c --- /dev/null +++ b/libjava/org/omg/CORBA/WStringSeqHelper.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WStringSeqHelper__ +#define __org_omg_CORBA_WStringSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class WStringSeqHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::WStringSeqHelper : public ::java::lang::Object +{ + +public: + WStringSeqHelper(); + static JArray< ::java::lang::String * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::java::lang::String * > *); + static JArray< ::java::lang::String * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::java::lang::String * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WStringSeqHelper__ diff --git a/libjava/org/omg/CORBA/WStringSeqHolder.h b/libjava/org/omg/CORBA/WStringSeqHolder.h new file mode 100644 index 00000000000..eff79afac80 --- /dev/null +++ b/libjava/org/omg/CORBA/WStringSeqHolder.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WStringSeqHolder__ +#define __org_omg_CORBA_WStringSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace typecodes + { + class ArrayTypeCode; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class WStringSeqHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::WStringSeqHolder : public ::java::lang::Object +{ + +public: + WStringSeqHolder(); + WStringSeqHolder(JArray< ::java::lang::String * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; +private: + ::gnu::CORBA::typecodes::ArrayTypeCode * typecode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WStringSeqHolder__ diff --git a/libjava/org/omg/CORBA/WStringValueHelper.h b/libjava/org/omg/CORBA/WStringValueHelper.h new file mode 100644 index 00000000000..53a55b5ea8d --- /dev/null +++ b/libjava/org/omg/CORBA/WStringValueHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WStringValueHelper__ +#define __org_omg_CORBA_WStringValueHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class WStringValueHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::WStringValueHelper : public ::java::lang::Object +{ + +public: + WStringValueHelper(); + virtual ::java::lang::String * get_id(); + static ::java::lang::String * id(); + virtual ::java::io::Serializable * read_value(::org::omg::CORBA::portable::InputStream *); + virtual void write_value(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); +private: + static ::java::lang::String * id__; + static ::org::omg::CORBA::TypeCode * twString; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WStringValueHelper__ diff --git a/libjava/org/omg/CORBA/WrongTransaction.h b/libjava/org/omg/CORBA/WrongTransaction.h new file mode 100644 index 00000000000..3ff439ebe69 --- /dev/null +++ b/libjava/org/omg/CORBA/WrongTransaction.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WrongTransaction__ +#define __org_omg_CORBA_WrongTransaction__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class WrongTransaction; + } + } + } +} + +class org::omg::CORBA::WrongTransaction : public ::org::omg::CORBA::UserException +{ + +public: + WrongTransaction(); + WrongTransaction(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WrongTransaction__ diff --git a/libjava/org/omg/CORBA/WrongTransactionHelper.h b/libjava/org/omg/CORBA/WrongTransactionHelper.h new file mode 100644 index 00000000000..8686fbbe68d --- /dev/null +++ b/libjava/org/omg/CORBA/WrongTransactionHelper.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WrongTransactionHelper__ +#define __org_omg_CORBA_WrongTransactionHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + class WrongTransaction; + class WrongTransactionHelper; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::WrongTransactionHelper : public ::java::lang::Object +{ + +public: + WrongTransactionHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CORBA::WrongTransaction *); + static ::org::omg::CORBA::WrongTransaction * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::CORBA::WrongTransaction * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CORBA::WrongTransaction *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WrongTransactionHelper__ diff --git a/libjava/org/omg/CORBA/WrongTransactionHolder.h b/libjava/org/omg/CORBA/WrongTransactionHolder.h new file mode 100644 index 00000000000..b9455e81c19 --- /dev/null +++ b/libjava/org/omg/CORBA/WrongTransactionHolder.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_WrongTransactionHolder__ +#define __org_omg_CORBA_WrongTransactionHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + class WrongTransaction; + class WrongTransactionHolder; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::WrongTransactionHolder : public ::java::lang::Object +{ + +public: + WrongTransactionHolder(); + WrongTransactionHolder(::org::omg::CORBA::WrongTransaction *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::CORBA::WrongTransaction * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_WrongTransactionHolder__ diff --git a/libjava/org/omg/CORBA/_IDLTypeStub.h b/libjava/org/omg/CORBA/_IDLTypeStub.h new file mode 100644 index 00000000000..2ab780e3b37 --- /dev/null +++ b/libjava/org/omg/CORBA/_IDLTypeStub.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA__IDLTypeStub__ +#define __org_omg_CORBA__IDLTypeStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DefinitionKind; + class TypeCode; + class _IDLTypeStub; + namespace portable + { + class Delegate; + } + } + } + } +} + +class org::omg::CORBA::_IDLTypeStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _IDLTypeStub(); + _IDLTypeStub(::org::omg::CORBA::portable::Delegate *); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual ::org::omg::CORBA::DefinitionKind * def_kind(); + virtual void destroy(); + virtual JArray< ::java::lang::String * > * _ids(); +private: + static const jlong serialVersionUID = 9150293942452453626LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA__IDLTypeStub__ diff --git a/libjava/org/omg/CORBA/_PolicyStub.h b/libjava/org/omg/CORBA/_PolicyStub.h new file mode 100644 index 00000000000..c7c79e9ab7e --- /dev/null +++ b/libjava/org/omg/CORBA/_PolicyStub.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA__PolicyStub__ +#define __org_omg_CORBA__PolicyStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + class _PolicyStub; + namespace portable + { + class Delegate; + } + } + } + } +} + +class org::omg::CORBA::_PolicyStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _PolicyStub(); + _PolicyStub(::org::omg::CORBA::portable::Delegate *); + virtual JArray< ::java::lang::String * > * _ids(); + virtual void destroy(); + virtual ::org::omg::CORBA::Policy * copy(); + virtual jint policy_type(); +private: + static const jlong serialVersionUID = 2453656196708903849LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA__PolicyStub__ diff --git a/libjava/org/omg/CORBA/portable/ApplicationException.h b/libjava/org/omg/CORBA/portable/ApplicationException.h new file mode 100644 index 00000000000..e7dad897637 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/ApplicationException.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_ApplicationException__ +#define __org_omg_CORBA_portable_ApplicationException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class ApplicationException; + class InputStream; + } + } + } + } +} + +class org::omg::CORBA::portable::ApplicationException : public ::java::lang::Exception +{ + +public: + ApplicationException(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *); + virtual ::java::lang::String * getId(); + virtual ::org::omg::CORBA::portable::InputStream * getInputStream(); +private: + static const jlong serialVersionUID = -2088103024111528125LL; + ::org::omg::CORBA::portable::InputStream * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) m_input; + ::java::lang::String * m_id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_ApplicationException__ diff --git a/libjava/org/omg/CORBA/portable/BoxedValueHelper.h b/libjava/org/omg/CORBA/portable/BoxedValueHelper.h new file mode 100644 index 00000000000..958ad2161af --- /dev/null +++ b/libjava/org/omg/CORBA/portable/BoxedValueHelper.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_BoxedValueHelper__ +#define __org_omg_CORBA_portable_BoxedValueHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class BoxedValueHelper; + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::portable::BoxedValueHelper : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * get_id() = 0; + virtual ::java::io::Serializable * read_value(::org::omg::CORBA::portable::InputStream *) = 0; + virtual void write_value(::org::omg::CORBA::portable::OutputStream *, ::java::io::Serializable *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_BoxedValueHelper__ diff --git a/libjava/org/omg/CORBA/portable/CustomValue.h b/libjava/org/omg/CORBA/portable/CustomValue.h new file mode 100644 index 00000000000..051e5462d84 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/CustomValue.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_CustomValue__ +#define __org_omg_CORBA_portable_CustomValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class DataInputStream; + class DataOutputStream; + namespace portable + { + class CustomValue; + } + } + } + } +} + +class org::omg::CORBA::portable::CustomValue : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + virtual void marshal(::org::omg::CORBA::DataOutputStream *) = 0; + virtual void unmarshal(::org::omg::CORBA::DataInputStream *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_CustomValue__ diff --git a/libjava/org/omg/CORBA/portable/Delegate.h b/libjava/org/omg/CORBA/portable/Delegate.h new file mode 100644 index 00000000000..233160f9879 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/Delegate.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_Delegate__ +#define __org_omg_CORBA_portable_Delegate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Policy; + class Request; + class SetOverrideType; + namespace portable + { + class Delegate; + class InputStream; + class OutputStream; + class ServantObject; + } + } + } + } +} + +class org::omg::CORBA::portable::Delegate : public ::java::lang::Object +{ + +public: + Delegate(); + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * create_request(::org::omg::CORBA::Object *, ::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * duplicate(::org::omg::CORBA::Object *) = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * get_domain_managers(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::Object * get_interface_def(::org::omg::CORBA::Object *) = 0; + virtual ::org::omg::CORBA::Policy * get_policy(::org::omg::CORBA::Object *, jint); + virtual jint hash(::org::omg::CORBA::Object *, jint) = 0; + virtual jboolean is_a(::org::omg::CORBA::Object *, ::java::lang::String *) = 0; + virtual jboolean is_equivalent(::org::omg::CORBA::Object *, ::org::omg::CORBA::Object *) = 0; + virtual jboolean is_local(::org::omg::CORBA::Object *); + virtual jboolean non_existent(::org::omg::CORBA::Object *) = 0; + virtual jboolean equals(::org::omg::CORBA::Object *, ::java::lang::Object *); + virtual jint hashCode(::org::omg::CORBA::Object *); + virtual ::org::omg::CORBA::portable::InputStream * invoke(::org::omg::CORBA::Object *, ::org::omg::CORBA::portable::OutputStream *); + virtual ::org::omg::CORBA::ORB * orb(::org::omg::CORBA::Object *); + virtual void release(::org::omg::CORBA::Object *) = 0; + virtual void releaseReply(::org::omg::CORBA::Object *, ::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::Request * request(::org::omg::CORBA::Object *, ::java::lang::String *) = 0; + virtual ::org::omg::CORBA::portable::OutputStream * request(::org::omg::CORBA::Object *, ::java::lang::String *, jboolean); + virtual void servant_postinvoke(::org::omg::CORBA::Object *, ::org::omg::CORBA::portable::ServantObject *); + virtual ::org::omg::CORBA::portable::ServantObject * servant_preinvoke(::org::omg::CORBA::Object *, ::java::lang::String *, ::java::lang::Class *); + virtual ::org::omg::CORBA::Object * set_policy_override(::org::omg::CORBA::Object *, JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *); + virtual ::java::lang::String * toString(::org::omg::CORBA::Object *); +private: + static ::java::lang::String * WHY; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_Delegate__ diff --git a/libjava/org/omg/CORBA/portable/IDLEntity.h b/libjava/org/omg/CORBA/portable/IDLEntity.h new file mode 100644 index 00000000000..2688c48ba2f --- /dev/null +++ b/libjava/org/omg/CORBA/portable/IDLEntity.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_IDLEntity__ +#define __org_omg_CORBA_portable_IDLEntity__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class IDLEntity; + } + } + } + } +} + +class org::omg::CORBA::portable::IDLEntity : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_IDLEntity__ diff --git a/libjava/org/omg/CORBA/portable/IndirectionException.h b/libjava/org/omg/CORBA/portable/IndirectionException.h new file mode 100644 index 00000000000..00da4529dc7 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/IndirectionException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_IndirectionException__ +#define __org_omg_CORBA_portable_IndirectionException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class IndirectionException; + } + } + } + } +} + +class org::omg::CORBA::portable::IndirectionException : public ::org::omg::CORBA::SystemException +{ + +public: + IndirectionException(jint); +private: + static const jlong serialVersionUID = -1923858944380721643LL; +public: + jint __attribute__((aligned(__alignof__( ::org::omg::CORBA::SystemException)))) offset; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_IndirectionException__ diff --git a/libjava/org/omg/CORBA/portable/InputStream.h b/libjava/org/omg/CORBA/portable/InputStream.h new file mode 100644 index 00000000000..f60f539ee25 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/InputStream.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_InputStream__ +#define __org_omg_CORBA_portable_InputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ORB; + class Object; + class Principal; + class TypeCode; + namespace portable + { + class InputStream; + } + } + } + } +} + +class org::omg::CORBA::portable::InputStream : public ::java::io::InputStream +{ + +public: + InputStream(); + virtual ::org::omg::CORBA::ORB * orb(); + virtual ::org::omg::CORBA::Context * read_Context(); + virtual ::org::omg::CORBA::Object * read_Object() = 0; + virtual jchar read_char() = 0; + virtual jdouble read_double() = 0; + virtual jfloat read_float() = 0; + virtual void read_float_array(JArray< jfloat > *, jint, jint) = 0; + virtual jint read_long() = 0; + virtual jlong read_longlong() = 0; + virtual void read_longlong_array(JArray< jlong > *, jint, jint) = 0; + virtual jbyte read_octet() = 0; + virtual void read_octet_array(JArray< jbyte > *, jint, jint) = 0; + virtual jshort read_short() = 0; + virtual void read_short_array(JArray< jshort > *, jint, jint) = 0; + virtual jint read_ulong() = 0; + virtual void read_ulong_array(JArray< jint > *, jint, jint) = 0; + virtual jint read(); + virtual ::org::omg::CORBA::TypeCode * read_TypeCode() = 0; + virtual jboolean read_boolean() = 0; + virtual void read_boolean_array(JArray< jboolean > *, jint, jint) = 0; + virtual void read_char_array(JArray< jchar > *, jint, jint) = 0; + virtual void read_double_array(JArray< jdouble > *, jint, jint) = 0; + virtual void read_long_array(JArray< jint > *, jint, jint) = 0; + virtual ::java::lang::String * read_string() = 0; + virtual jlong read_ulonglong() = 0; + virtual void read_ulonglong_array(JArray< jlong > *, jint, jint) = 0; + virtual jshort read_ushort() = 0; + virtual void read_ushort_array(JArray< jshort > *, jint, jint) = 0; + virtual ::org::omg::CORBA::Object * read_Object(::java::lang::Class *); + virtual ::org::omg::CORBA::Any * read_any() = 0; + virtual ::java::math::BigDecimal * read_fixed(); + virtual jchar read_wchar() = 0; + virtual void read_wchar_array(JArray< jchar > *, jint, jint) = 0; + virtual ::java::lang::String * read_wstring() = 0; + virtual ::org::omg::CORBA::Principal * read_Principal(); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_InputStream__ diff --git a/libjava/org/omg/CORBA/portable/InvokeHandler.h b/libjava/org/omg/CORBA/portable/InvokeHandler.h new file mode 100644 index 00000000000..0b6cbf2139b --- /dev/null +++ b/libjava/org/omg/CORBA/portable/InvokeHandler.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_InvokeHandler__ +#define __org_omg_CORBA_portable_InvokeHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class InputStream; + class InvokeHandler; + class OutputStream; + class ResponseHandler; + } + } + } + } +} + +class org::omg::CORBA::portable::InvokeHandler : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_InvokeHandler__ diff --git a/libjava/org/omg/CORBA/portable/ObjectImpl.h b/libjava/org/omg/CORBA/portable/ObjectImpl.h new file mode 100644 index 00000000000..c0e9e6ed301 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/ObjectImpl.h @@ -0,0 +1,80 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_ObjectImpl__ +#define __org_omg_CORBA_portable_ObjectImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class ORB; + class Object; + class Policy; + class Request; + class SetOverrideType; + namespace portable + { + class Delegate; + class InputStream; + class ObjectImpl; + class OutputStream; + class ServantObject; + } + } + } + } +} + +class org::omg::CORBA::portable::ObjectImpl : public ::java::lang::Object +{ + +public: + ObjectImpl(); + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *); + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *); + virtual ::org::omg::CORBA::Object * _duplicate(); + virtual ::org::omg::CORBA::portable::Delegate * _get_delegate(); + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers(); + virtual ::org::omg::CORBA::Object * _get_interface_def(); + virtual ::org::omg::CORBA::Policy * _get_policy(jint); + virtual JArray< ::java::lang::String * > * _ids() = 0; + virtual jint _hash(jint); + virtual ::org::omg::CORBA::portable::InputStream * _invoke(::org::omg::CORBA::portable::OutputStream *); + virtual jboolean _is_a(::java::lang::String *); + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *); + virtual jboolean _is_local(); + virtual jboolean _non_existent(); + virtual ::org::omg::CORBA::ORB * _orb(); + virtual void _release(); + virtual void _releaseReply(::org::omg::CORBA::portable::InputStream *); + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *); + virtual ::org::omg::CORBA::portable::OutputStream * _request(::java::lang::String *, jboolean); + virtual void _servant_postinvoke(::org::omg::CORBA::portable::ServantObject *); + virtual ::org::omg::CORBA::portable::ServantObject * _servant_preinvoke(::java::lang::String *, ::java::lang::Class *); + virtual void _set_delegate(::org::omg::CORBA::portable::Delegate *); + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *); + virtual jboolean equals(::java::lang::Object *); + virtual ::java::lang::String * toString(); +public: // actually package-private + ::org::omg::CORBA::portable::Delegate * __attribute__((aligned(__alignof__( ::java::lang::Object)))) delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_ObjectImpl__ diff --git a/libjava/org/omg/CORBA/portable/OutputStream.h b/libjava/org/omg/CORBA/portable/OutputStream.h new file mode 100644 index 00000000000..d1e22c646c4 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/OutputStream.h @@ -0,0 +1,87 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_OutputStream__ +#define __org_omg_CORBA_portable_OutputStream__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace java + { + namespace math + { + class BigDecimal; + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class ORB; + class Object; + class Principal; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA::portable::OutputStream : public ::java::io::OutputStream +{ + +public: + OutputStream(); + virtual ::org::omg::CORBA::portable::InputStream * create_input_stream() = 0; + virtual ::org::omg::CORBA::ORB * orb(); + virtual void write(jint); + virtual void write_Context(::org::omg::CORBA::Context *, ::org::omg::CORBA::ContextList *); + virtual void write_Object(::org::omg::CORBA::Object *) = 0; + virtual void write_Principal(::org::omg::CORBA::Principal *); + virtual void write_TypeCode(::org::omg::CORBA::TypeCode *) = 0; + virtual void write_any(::org::omg::CORBA::Any *) = 0; + virtual void write_boolean(jboolean) = 0; + virtual void write_boolean_array(JArray< jboolean > *, jint, jint) = 0; + virtual void write_char(jchar) = 0; + virtual void write_char_array(JArray< jchar > *, jint, jint) = 0; + virtual void write_double(jdouble) = 0; + virtual void write_double_array(JArray< jdouble > *, jint, jint) = 0; + virtual void write_fixed(::java::math::BigDecimal *); + virtual void write_float(jfloat) = 0; + virtual void write_float_array(JArray< jfloat > *, jint, jint) = 0; + virtual void write_long(jint) = 0; + virtual void write_long_array(JArray< jint > *, jint, jint) = 0; + virtual void write_longlong(jlong) = 0; + virtual void write_longlong_array(JArray< jlong > *, jint, jint) = 0; + virtual void write_octet(jbyte) = 0; + virtual void write_octet_array(JArray< jbyte > *, jint, jint) = 0; + virtual void write_short(jshort) = 0; + virtual void write_short_array(JArray< jshort > *, jint, jint) = 0; + virtual void write_string(::java::lang::String *) = 0; + virtual void write_ulong(jint) = 0; + virtual void write_ulong_array(JArray< jint > *, jint, jint) = 0; + virtual void write_ulonglong(jlong) = 0; + virtual void write_ulonglong_array(JArray< jlong > *, jint, jint) = 0; + virtual void write_ushort(jshort) = 0; + virtual void write_ushort_array(JArray< jshort > *, jint, jint) = 0; + virtual void write_wchar(jchar) = 0; + virtual void write_wchar_array(JArray< jchar > *, jint, jint) = 0; + virtual void write_wstring(::java::lang::String *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_OutputStream__ diff --git a/libjava/org/omg/CORBA/portable/RemarshalException.h b/libjava/org/omg/CORBA/portable/RemarshalException.h new file mode 100644 index 00000000000..ed9ea87092f --- /dev/null +++ b/libjava/org/omg/CORBA/portable/RemarshalException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_RemarshalException__ +#define __org_omg_CORBA_portable_RemarshalException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class RemarshalException; + } + } + } + } +} + +class org::omg::CORBA::portable::RemarshalException : public ::java::lang::Exception +{ + +public: + RemarshalException(); +private: + static const jlong serialVersionUID = -7025491253080954918LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_RemarshalException__ diff --git a/libjava/org/omg/CORBA/portable/ResponseHandler.h b/libjava/org/omg/CORBA/portable/ResponseHandler.h new file mode 100644 index 00000000000..f5f88224151 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/ResponseHandler.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_ResponseHandler__ +#define __org_omg_CORBA_portable_ResponseHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class OutputStream; + class ResponseHandler; + } + } + } + } +} + +class org::omg::CORBA::portable::ResponseHandler : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::portable::OutputStream * createExceptionReply() = 0; + virtual ::org::omg::CORBA::portable::OutputStream * createReply() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_ResponseHandler__ diff --git a/libjava/org/omg/CORBA/portable/ServantObject.h b/libjava/org/omg/CORBA/portable/ServantObject.h new file mode 100644 index 00000000000..d15cc9bd98d --- /dev/null +++ b/libjava/org/omg/CORBA/portable/ServantObject.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_ServantObject__ +#define __org_omg_CORBA_portable_ServantObject__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class ServantObject; + } + } + } + } +} + +class org::omg::CORBA::portable::ServantObject : public ::java::lang::Object +{ + +public: + ServantObject(); + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) servant; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_ServantObject__ diff --git a/libjava/org/omg/CORBA/portable/Streamable.h b/libjava/org/omg/CORBA/portable/Streamable.h new file mode 100644 index 00000000000..3d1d69612f9 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/Streamable.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_Streamable__ +#define __org_omg_CORBA_portable_Streamable__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + class Streamable; + } + } + } + } +} + +class org::omg::CORBA::portable::Streamable : public ::java::lang::Object +{ + +public: + virtual void _read(::org::omg::CORBA::portable::InputStream *) = 0; + virtual ::org::omg::CORBA::TypeCode * _type() = 0; + virtual void _write(::org::omg::CORBA::portable::OutputStream *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_Streamable__ diff --git a/libjava/org/omg/CORBA/portable/StreamableValue.h b/libjava/org/omg/CORBA/portable/StreamableValue.h new file mode 100644 index 00000000000..db13bc3d98a --- /dev/null +++ b/libjava/org/omg/CORBA/portable/StreamableValue.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_StreamableValue__ +#define __org_omg_CORBA_portable_StreamableValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + class StreamableValue; + } + } + } + } +} + +class org::omg::CORBA::portable::StreamableValue : public ::java::lang::Object +{ + +public: + virtual void _read(::org::omg::CORBA::portable::InputStream *) = 0; + virtual ::org::omg::CORBA::TypeCode * _type() = 0; + virtual void _write(::org::omg::CORBA::portable::OutputStream *) = 0; + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_StreamableValue__ diff --git a/libjava/org/omg/CORBA/portable/UnknownException.h b/libjava/org/omg/CORBA/portable/UnknownException.h new file mode 100644 index 00000000000..9ae84106edc --- /dev/null +++ b/libjava/org/omg/CORBA/portable/UnknownException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_UnknownException__ +#define __org_omg_CORBA_portable_UnknownException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class UnknownException; + } + } + } + } +} + +class org::omg::CORBA::portable::UnknownException : public ::org::omg::CORBA::SystemException +{ + +public: + UnknownException(::java::lang::Throwable *); +private: + static const jlong serialVersionUID = 1725238280802233450LL; +public: + ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::org::omg::CORBA::SystemException)))) originalEx; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_portable_UnknownException__ diff --git a/libjava/org/omg/CORBA/portable/ValueBase.h b/libjava/org/omg/CORBA/portable/ValueBase.h new file mode 100644 index 00000000000..4c5669f852b --- /dev/null +++ b/libjava/org/omg/CORBA/portable/ValueBase.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_ValueBase__ +#define __org_omg_CORBA_portable_ValueBase__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class ValueBase; + } + } + } + } +} + +class org::omg::CORBA::portable::ValueBase : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_ValueBase__ diff --git a/libjava/org/omg/CORBA/portable/ValueFactory.h b/libjava/org/omg/CORBA/portable/ValueFactory.h new file mode 100644 index 00000000000..5946803d1b4 --- /dev/null +++ b/libjava/org/omg/CORBA/portable/ValueFactory.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_portable_ValueFactory__ +#define __org_omg_CORBA_portable_ValueFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class ValueFactory; + } + } + namespace CORBA_2_3 + { + namespace portable + { + class InputStream; + } + } + } + } +} + +class org::omg::CORBA::portable::ValueFactory : public ::java::lang::Object +{ + +public: + virtual ::java::io::Serializable * read_value(::org::omg::CORBA_2_3::portable::InputStream *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CORBA_portable_ValueFactory__ diff --git a/libjava/org/omg/CORBA_2_3/ORB.h b/libjava/org/omg/CORBA_2_3/ORB.h new file mode 100644 index 00000000000..78a8a0d9457 --- /dev/null +++ b/libjava/org/omg/CORBA_2_3/ORB.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_2_3_ORB__ +#define __org_omg_CORBA_2_3_ORB__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + namespace portable + { + class ValueFactory; + } + } + namespace CORBA_2_3 + { + class ORB; + } + } + } +} + +class org::omg::CORBA_2_3::ORB : public ::org::omg::CORBA::ORB +{ + +public: + ORB(); + virtual ::org::omg::CORBA::Object * get_value_def(::java::lang::String *); + virtual ::org::omg::CORBA::portable::ValueFactory * register_value_factory(::java::lang::String *, ::org::omg::CORBA::portable::ValueFactory *); + virtual void unregister_value_factory(::java::lang::String *); + virtual ::org::omg::CORBA::portable::ValueFactory * lookup_value_factory(::java::lang::String *); + virtual void set_delegate(::java::lang::Object *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_2_3_ORB__ diff --git a/libjava/org/omg/CORBA_2_3/portable/Delegate.h b/libjava/org/omg/CORBA_2_3/portable/Delegate.h new file mode 100644 index 00000000000..0a8ea15755f --- /dev/null +++ b/libjava/org/omg/CORBA_2_3/portable/Delegate.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_2_3_portable_Delegate__ +#define __org_omg_CORBA_2_3_portable_Delegate__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace CORBA_2_3 + { + namespace portable + { + class Delegate; + } + } + } + } +} + +class org::omg::CORBA_2_3::portable::Delegate : public ::org::omg::CORBA::portable::Delegate +{ + +public: + Delegate(); + virtual ::java::lang::String * get_codebase(::org::omg::CORBA::Object *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_2_3_portable_Delegate__ diff --git a/libjava/org/omg/CORBA_2_3/portable/InputStream.h b/libjava/org/omg/CORBA_2_3/portable/InputStream.h new file mode 100644 index 00000000000..d10f12a210b --- /dev/null +++ b/libjava/org/omg/CORBA_2_3/portable/InputStream.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_2_3_portable_InputStream__ +#define __org_omg_CORBA_2_3_portable_InputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class BoxedValueHelper; + } + } + namespace CORBA_2_3 + { + namespace portable + { + class InputStream; + } + } + } + } +} + +class org::omg::CORBA_2_3::portable::InputStream : public ::org::omg::CORBA::portable::InputStream +{ + +public: + InputStream(); + virtual ::java::lang::Object * read_abstract_interface(); + virtual ::java::lang::Object * read_abstract_interface(::java::lang::Class *); + virtual ::java::io::Serializable * read_value(); + virtual ::java::io::Serializable * read_value(::java::lang::Class *); + virtual ::java::io::Serializable * read_value(::java::io::Serializable *); + virtual ::java::io::Serializable * read_value(::java::lang::String *); + virtual ::java::io::Serializable * read_value(::org::omg::CORBA::portable::BoxedValueHelper *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_2_3_portable_InputStream__ diff --git a/libjava/org/omg/CORBA_2_3/portable/ObjectImpl.h b/libjava/org/omg/CORBA_2_3/portable/ObjectImpl.h new file mode 100644 index 00000000000..2f625a9628d --- /dev/null +++ b/libjava/org/omg/CORBA_2_3/portable/ObjectImpl.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_2_3_portable_ObjectImpl__ +#define __org_omg_CORBA_2_3_portable_ObjectImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA_2_3 + { + namespace portable + { + class ObjectImpl; + } + } + } + } +} + +class org::omg::CORBA_2_3::portable::ObjectImpl : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + ObjectImpl(); + virtual ::java::lang::String * _get_codebase(); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_2_3_portable_ObjectImpl__ diff --git a/libjava/org/omg/CORBA_2_3/portable/OutputStream.h b/libjava/org/omg/CORBA_2_3/portable/OutputStream.h new file mode 100644 index 00000000000..cc7bf78f1a0 --- /dev/null +++ b/libjava/org/omg/CORBA_2_3/portable/OutputStream.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CORBA_2_3_portable_OutputStream__ +#define __org_omg_CORBA_2_3_portable_OutputStream__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class BoxedValueHelper; + } + } + namespace CORBA_2_3 + { + namespace portable + { + class OutputStream; + } + } + } + } +} + +class org::omg::CORBA_2_3::portable::OutputStream : public ::org::omg::CORBA::portable::OutputStream +{ + +public: + OutputStream(); + virtual void write_abstract_interface(::java::lang::Object *); + virtual void write_value(::java::io::Serializable *); + virtual void write_value(::java::io::Serializable *, ::org::omg::CORBA::portable::BoxedValueHelper *); + virtual void write_value(::java::io::Serializable *, ::java::lang::Class *); + virtual void write_value(::java::io::Serializable *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CORBA_2_3_portable_OutputStream__ diff --git a/libjava/org/omg/CosNaming/Binding.h b/libjava/org/omg/CosNaming/Binding.h new file mode 100644 index 00000000000..90151236e65 --- /dev/null +++ b/libjava/org/omg/CosNaming/Binding.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_Binding__ +#define __org_omg_CosNaming_Binding__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + class Binding; + class BindingType; + class NameComponent; + } + } + } +} + +class org::omg::CosNaming::Binding : public ::java::lang::Object +{ + +public: + Binding(); + Binding(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::BindingType *); + ::org::omg::CosNaming::BindingType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) binding_type; + JArray< ::org::omg::CosNaming::NameComponent * > * binding_name; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_Binding__ diff --git a/libjava/org/omg/CosNaming/BindingHelper.h b/libjava/org/omg/CosNaming/BindingHelper.h new file mode 100644 index 00000000000..4e3dffd5c6f --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingHelper__ +#define __org_omg_CosNaming_BindingHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class Binding; + class BindingHelper; + } + } + } +} + +class org::omg::CosNaming::BindingHelper : public ::java::lang::Object +{ + +public: + BindingHelper(); + static ::org::omg::CosNaming::Binding * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::Binding *); + static ::org::omg::CosNaming::Binding * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::Binding *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingHelper__ diff --git a/libjava/org/omg/CosNaming/BindingHolder.h b/libjava/org/omg/CosNaming/BindingHolder.h new file mode 100644 index 00000000000..93431f4736c --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingHolder__ +#define __org_omg_CosNaming_BindingHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class Binding; + class BindingHolder; + } + } + } +} + +class org::omg::CosNaming::BindingHolder : public ::java::lang::Object +{ + +public: + BindingHolder(); + BindingHolder(::org::omg::CosNaming::Binding *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::Binding * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingHolder__ diff --git a/libjava/org/omg/CosNaming/BindingIterator.h b/libjava/org/omg/CosNaming/BindingIterator.h new file mode 100644 index 00000000000..a69ed71e5c2 --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingIterator.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingIterator__ +#define __org_omg_CosNaming_BindingIterator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace CosNaming + { + class BindingHolder; + class BindingIterator; + class BindingListHolder; + } + } + } +} + +class org::omg::CosNaming::BindingIterator : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual jboolean next_n(jint, ::org::omg::CosNaming::BindingListHolder *) = 0; + virtual jboolean next_one(::org::omg::CosNaming::BindingHolder *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CosNaming_BindingIterator__ diff --git a/libjava/org/omg/CosNaming/BindingIteratorHelper.h b/libjava/org/omg/CosNaming/BindingIteratorHelper.h new file mode 100644 index 00000000000..789d653d6ff --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingIteratorHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingIteratorHelper__ +#define __org_omg_CosNaming_BindingIteratorHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class BindingIterator; + class BindingIteratorHelper; + } + } + } +} + +class org::omg::CosNaming::BindingIteratorHelper : public ::java::lang::Object +{ + +public: + BindingIteratorHelper(); + static ::org::omg::CosNaming::BindingIterator * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::BindingIterator *); + static ::org::omg::CosNaming::BindingIterator * narrow(::org::omg::CORBA::Object *); + static ::org::omg::CosNaming::BindingIterator * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CosNaming::BindingIterator * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::BindingIterator *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingIteratorHelper__ diff --git a/libjava/org/omg/CosNaming/BindingIteratorHolder.h b/libjava/org/omg/CosNaming/BindingIteratorHolder.h new file mode 100644 index 00000000000..023602b27f7 --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingIteratorHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingIteratorHolder__ +#define __org_omg_CosNaming_BindingIteratorHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class BindingIterator; + class BindingIteratorHolder; + } + } + } +} + +class org::omg::CosNaming::BindingIteratorHolder : public ::java::lang::Object +{ + +public: + BindingIteratorHolder(); + BindingIteratorHolder(::org::omg::CosNaming::BindingIterator *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::BindingIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingIteratorHolder__ diff --git a/libjava/org/omg/CosNaming/BindingIteratorOperations.h b/libjava/org/omg/CosNaming/BindingIteratorOperations.h new file mode 100644 index 00000000000..61c97db99b3 --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingIteratorOperations.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingIteratorOperations__ +#define __org_omg_CosNaming_BindingIteratorOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + class BindingHolder; + class BindingIteratorOperations; + class BindingListHolder; + } + } + } +} + +class org::omg::CosNaming::BindingIteratorOperations : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual jboolean next_n(jint, ::org::omg::CosNaming::BindingListHolder *) = 0; + virtual jboolean next_one(::org::omg::CosNaming::BindingHolder *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CosNaming_BindingIteratorOperations__ diff --git a/libjava/org/omg/CosNaming/BindingIteratorPOA.h b/libjava/org/omg/CosNaming/BindingIteratorPOA.h new file mode 100644 index 00000000000..64f41248527 --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingIteratorPOA.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingIteratorPOA__ +#define __org_omg_CosNaming_BindingIteratorPOA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace CosNaming + { + class BindingHolder; + class BindingIterator; + class BindingIteratorPOA; + class BindingListHolder; + } + namespace PortableServer + { + class POA; + } + } + } +} + +class org::omg::CosNaming::BindingIteratorPOA : public ::org::omg::PortableServer::Servant +{ + +public: + BindingIteratorPOA(); + virtual JArray< ::java::lang::String * > * _all_interfaces(::org::omg::PortableServer::POA *, JArray< jbyte > *); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual ::org::omg::CosNaming::BindingIterator * _this(); + virtual ::org::omg::CosNaming::BindingIterator * _this(::org::omg::CORBA::ORB *); + virtual void destroy() = 0; + virtual jboolean next_n(jint, ::org::omg::CosNaming::BindingListHolder *) = 0; + virtual jboolean next_one(::org::omg::CosNaming::BindingHolder *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingIteratorPOA__ diff --git a/libjava/org/omg/CosNaming/BindingListHelper.h b/libjava/org/omg/CosNaming/BindingListHelper.h new file mode 100644 index 00000000000..6c3a9cb09ad --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingListHelper.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingListHelper__ +#define __org_omg_CosNaming_BindingListHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class Binding; + class BindingListHelper; + } + } + } +} + +class org::omg::CosNaming::BindingListHelper : public ::java::lang::Object +{ + +public: + BindingListHelper(); + static JArray< ::org::omg::CosNaming::Binding * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::CosNaming::Binding * > *); + static JArray< ::org::omg::CosNaming::Binding * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::CosNaming::Binding * > *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingListHelper__ diff --git a/libjava/org/omg/CosNaming/BindingListHolder.h b/libjava/org/omg/CosNaming/BindingListHolder.h new file mode 100644 index 00000000000..05ce6ab431e --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingListHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingListHolder__ +#define __org_omg_CosNaming_BindingListHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class Binding; + class BindingListHolder; + } + } + } +} + +class org::omg::CosNaming::BindingListHolder : public ::java::lang::Object +{ + +public: + BindingListHolder(); + BindingListHolder(JArray< ::org::omg::CosNaming::Binding * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< ::org::omg::CosNaming::Binding * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingListHolder__ diff --git a/libjava/org/omg/CosNaming/BindingType.h b/libjava/org/omg/CosNaming/BindingType.h new file mode 100644 index 00000000000..40c49049847 --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingType.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingType__ +#define __org_omg_CosNaming_BindingType__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + class BindingType; + } + } + } +} + +class org::omg::CosNaming::BindingType : public ::java::lang::Object +{ + +public: // actually protected + BindingType(jint); +public: + static ::org::omg::CosNaming::BindingType * from_int(jint); + virtual jint value(); +private: + static const jlong serialVersionUID = 3735105633408228513LL; +public: + static const jint _ncontext = 1; + static const jint _nobject = 0; + static ::org::omg::CosNaming::BindingType * ncontext; + static ::org::omg::CosNaming::BindingType * nobject; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingType__ diff --git a/libjava/org/omg/CosNaming/BindingTypeHelper.h b/libjava/org/omg/CosNaming/BindingTypeHelper.h new file mode 100644 index 00000000000..4a020988f8a --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingTypeHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingTypeHelper__ +#define __org_omg_CosNaming_BindingTypeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class BindingType; + class BindingTypeHelper; + } + } + } +} + +class org::omg::CosNaming::BindingTypeHelper : public ::java::lang::Object +{ + +public: + BindingTypeHelper(); + static ::org::omg::CosNaming::BindingType * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::BindingType *); + static ::org::omg::CosNaming::BindingType * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::BindingType *); +private: + static ::java::lang::String * id__; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingTypeHelper__ diff --git a/libjava/org/omg/CosNaming/BindingTypeHolder.h b/libjava/org/omg/CosNaming/BindingTypeHolder.h new file mode 100644 index 00000000000..a7d0dd3ea34 --- /dev/null +++ b/libjava/org/omg/CosNaming/BindingTypeHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_BindingTypeHolder__ +#define __org_omg_CosNaming_BindingTypeHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class BindingType; + class BindingTypeHolder; + } + } + } +} + +class org::omg::CosNaming::BindingTypeHolder : public ::java::lang::Object +{ + +public: + BindingTypeHolder(); + BindingTypeHolder(::org::omg::CosNaming::BindingType *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::BindingType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_BindingTypeHolder__ diff --git a/libjava/org/omg/CosNaming/IstringHelper.h b/libjava/org/omg/CosNaming/IstringHelper.h new file mode 100644 index 00000000000..91c1873a313 --- /dev/null +++ b/libjava/org/omg/CosNaming/IstringHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_IstringHelper__ +#define __org_omg_CosNaming_IstringHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class IstringHelper; + } + } + } +} + +class org::omg::CosNaming::IstringHelper : public ::java::lang::Object +{ + +public: + IstringHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_IstringHelper__ diff --git a/libjava/org/omg/CosNaming/NameComponent.h b/libjava/org/omg/CosNaming/NameComponent.h new file mode 100644 index 00000000000..467aecac652 --- /dev/null +++ b/libjava/org/omg/CosNaming/NameComponent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NameComponent__ +#define __org_omg_CosNaming_NameComponent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + class NameComponent; + } + } + } +} + +class org::omg::CosNaming::NameComponent : public ::java::lang::Object +{ + +public: + NameComponent(); + NameComponent(::java::lang::String *, ::java::lang::String *); + jboolean equals(::java::lang::Object *); + ::java::lang::String * toString(); + jint hashCode(); +private: + static const jlong serialVersionUID = -1052538183391762390LL; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::java::lang::String * kind; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NameComponent__ diff --git a/libjava/org/omg/CosNaming/NameComponentHelper.h b/libjava/org/omg/CosNaming/NameComponentHelper.h new file mode 100644 index 00000000000..d01a929998c --- /dev/null +++ b/libjava/org/omg/CosNaming/NameComponentHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NameComponentHelper__ +#define __org_omg_CosNaming_NameComponentHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NameComponent; + class NameComponentHelper; + } + } + } +} + +class org::omg::CosNaming::NameComponentHelper : public ::java::lang::Object +{ + +public: + NameComponentHelper(); + static ::org::omg::CosNaming::NameComponent * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NameComponent *); + static ::org::omg::CosNaming::NameComponent * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NameComponent *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NameComponentHelper__ diff --git a/libjava/org/omg/CosNaming/NameComponentHolder.h b/libjava/org/omg/CosNaming/NameComponentHolder.h new file mode 100644 index 00000000000..f78c9a85f65 --- /dev/null +++ b/libjava/org/omg/CosNaming/NameComponentHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NameComponentHolder__ +#define __org_omg_CosNaming_NameComponentHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NameComponent; + class NameComponentHolder; + } + } + } +} + +class org::omg::CosNaming::NameComponentHolder : public ::java::lang::Object +{ + +public: + NameComponentHolder(); + NameComponentHolder(::org::omg::CosNaming::NameComponent *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NameComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NameComponentHolder__ diff --git a/libjava/org/omg/CosNaming/NameHelper.h b/libjava/org/omg/CosNaming/NameHelper.h new file mode 100644 index 00000000000..c5dcb45f41e --- /dev/null +++ b/libjava/org/omg/CosNaming/NameHelper.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NameHelper__ +#define __org_omg_CosNaming_NameHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NameComponent; + class NameHelper; + } + } + } +} + +class org::omg::CosNaming::NameHelper : public ::java::lang::Object +{ + +public: + NameHelper(); + static JArray< ::org::omg::CosNaming::NameComponent * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::CosNaming::NameComponent * > *); + static JArray< ::org::omg::CosNaming::NameComponent * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::CosNaming::NameComponent * > *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NameHelper__ diff --git a/libjava/org/omg/CosNaming/NameHolder.h b/libjava/org/omg/CosNaming/NameHolder.h new file mode 100644 index 00000000000..78da1ffd15f --- /dev/null +++ b/libjava/org/omg/CosNaming/NameHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NameHolder__ +#define __org_omg_CosNaming_NameHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NameComponent; + class NameHolder; + } + } + } +} + +class org::omg::CosNaming::NameHolder : public ::java::lang::Object +{ + +public: + NameHolder(); + NameHolder(JArray< ::org::omg::CosNaming::NameComponent * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + JArray< ::org::omg::CosNaming::NameComponent * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NameHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContext.h b/libjava/org/omg/CosNaming/NamingContext.h new file mode 100644 index 00000000000..64c07a7915b --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContext.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContext__ +#define __org_omg_CosNaming_NamingContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + } + } + } +} + +class org::omg::CosNaming::NamingContext : public ::java::lang::Object +{ + +public: + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void destroy() = 0; + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *) = 0; + virtual ::org::omg::CosNaming::NamingContext * new_context() = 0; + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CosNaming_NamingContext__ diff --git a/libjava/org/omg/CosNaming/NamingContextExt.h b/libjava/org/omg/CosNaming/NamingContextExt.h new file mode 100644 index 00000000000..5faeb7ec893 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExt.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExt__ +#define __org_omg_CosNaming_NamingContextExt__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + class NamingContextExt; + } + } + } +} + +class org::omg::CosNaming::NamingContextExt : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Object * resolve_str(::java::lang::String *) = 0; + virtual JArray< ::org::omg::CosNaming::NameComponent * > * to_name(::java::lang::String *) = 0; + virtual ::java::lang::String * to_string(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual ::java::lang::String * to_url(::java::lang::String *, ::java::lang::String *) = 0; + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void destroy() = 0; + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *) = 0; + virtual ::org::omg::CosNaming::NamingContext * new_context() = 0; + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CosNaming_NamingContextExt__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtHelper.h b/libjava/org/omg/CosNaming/NamingContextExtHelper.h new file mode 100644 index 00000000000..7ebda331b7c --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtHelper__ +#define __org_omg_CosNaming_NamingContextExtHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NamingContextExt; + class NamingContextExtHelper; + } + } + } +} + +class org::omg::CosNaming::NamingContextExtHelper : public ::java::lang::Object +{ + +public: + NamingContextExtHelper(); + static ::org::omg::CosNaming::NamingContextExt * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextExt *); + static ::org::omg::CosNaming::NamingContextExt * narrow(::org::omg::CORBA::Object *); + static ::org::omg::CosNaming::NamingContextExt * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CosNaming::NamingContextExt * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextExt *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtHolder.h b/libjava/org/omg/CosNaming/NamingContextExtHolder.h new file mode 100644 index 00000000000..f284357c415 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtHolder__ +#define __org_omg_CosNaming_NamingContextExtHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NamingContextExt; + class NamingContextExtHolder; + } + } + } +} + +class org::omg::CosNaming::NamingContextExtHolder : public ::java::lang::Object +{ + +public: + NamingContextExtHolder(); + NamingContextExtHolder(::org::omg::CosNaming::NamingContextExt *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextExt * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtOperations.h b/libjava/org/omg/CosNaming/NamingContextExtOperations.h new file mode 100644 index 00000000000..3799c676b32 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtOperations.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtOperations__ +#define __org_omg_CosNaming_NamingContextExtOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + class NamingContextExtOperations; + } + } + } +} + +class org::omg::CosNaming::NamingContextExtOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Object * resolve_str(::java::lang::String *) = 0; + virtual JArray< ::org::omg::CosNaming::NameComponent * > * to_name(::java::lang::String *) = 0; + virtual ::java::lang::String * to_string(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual ::java::lang::String * to_url(::java::lang::String *, ::java::lang::String *) = 0; + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void destroy() = 0; + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *) = 0; + virtual ::org::omg::CosNaming::NamingContext * new_context() = 0; + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CosNaming_NamingContextExtOperations__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtPOA.h b/libjava/org/omg/CosNaming/NamingContextExtPOA.h new file mode 100644 index 00000000000..e9dfe396705 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtPOA.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtPOA__ +#define __org_omg_CosNaming_NamingContextExtPOA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + class NamingContextExt; + class NamingContextExtPOA; + } + namespace PortableServer + { + class POA; + } + } + } +} + +class org::omg::CosNaming::NamingContextExtPOA : public ::org::omg::PortableServer::Servant +{ + +public: + NamingContextExtPOA(); + virtual JArray< ::java::lang::String * > * _all_interfaces(::org::omg::PortableServer::POA *, JArray< jbyte > *); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); +public: // actually package-private + virtual ::org::omg::CORBA::portable::OutputStream * super_invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); +public: + virtual ::org::omg::CosNaming::NamingContextExt * _this(); + virtual ::org::omg::CosNaming::NamingContextExt * _this(::org::omg::CORBA::ORB *); + virtual ::org::omg::CORBA::Object * resolve_str(::java::lang::String *) = 0; + virtual JArray< ::org::omg::CosNaming::NameComponent * > * to_name(::java::lang::String *) = 0; + virtual ::java::lang::String * to_string(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual ::java::lang::String * to_url(::java::lang::String *, ::java::lang::String *) = 0; + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void destroy() = 0; + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *) = 0; + virtual ::org::omg::CosNaming::NamingContext * new_context() = 0; + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtPOA__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.h b/libjava/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.h new file mode 100644 index 00000000000..48755202d51 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtPackage/AddressHelper.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtPackage_AddressHelper__ +#define __org_omg_CosNaming_NamingContextExtPackage_AddressHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextExtPackage + { + class AddressHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextExtPackage::AddressHelper : public ::java::lang::Object +{ + +public: + AddressHelper(); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtPackage_AddressHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.h b/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.h new file mode 100644 index 00000000000..bf32d51f0c5 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtPackage_InvalidAddress__ +#define __org_omg_CosNaming_NamingContextExtPackage_InvalidAddress__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + namespace NamingContextExtPackage + { + class InvalidAddress; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextExtPackage::InvalidAddress : public ::org::omg::CORBA::UserException +{ + +public: + InvalidAddress(); + InvalidAddress(::java::lang::String *); +private: + static const jlong serialVersionUID = -3775583235364760385LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtPackage_InvalidAddress__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.h b/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.h new file mode 100644 index 00000000000..52fe009bec0 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtPackage_InvalidAddressHelper__ +#define __org_omg_CosNaming_NamingContextExtPackage_InvalidAddressHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextExtPackage + { + class InvalidAddress; + class InvalidAddressHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextExtPackage::InvalidAddressHelper : public ::java::lang::Object +{ + +public: + InvalidAddressHelper(); + static ::org::omg::CosNaming::NamingContextExtPackage::InvalidAddress * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextExtPackage::InvalidAddress *); + static ::org::omg::CosNaming::NamingContextExtPackage::InvalidAddress * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextExtPackage::InvalidAddress *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtPackage_InvalidAddressHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.h b/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.h new file mode 100644 index 00000000000..a1902974dad --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtPackage_InvalidAddressHolder__ +#define __org_omg_CosNaming_NamingContextExtPackage_InvalidAddressHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextExtPackage + { + class InvalidAddress; + class InvalidAddressHolder; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextExtPackage::InvalidAddressHolder : public ::java::lang::Object +{ + +public: + InvalidAddressHolder(); + InvalidAddressHolder(::org::omg::CosNaming::NamingContextExtPackage::InvalidAddress *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextExtPackage::InvalidAddress * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtPackage_InvalidAddressHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.h b/libjava/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.h new file mode 100644 index 00000000000..a7c3eddbb2e --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtPackage_StringNameHelper__ +#define __org_omg_CosNaming_NamingContextExtPackage_StringNameHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextExtPackage + { + class StringNameHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextExtPackage::StringNameHelper : public ::java::lang::Object +{ + +public: + StringNameHelper(); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtPackage_StringNameHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.h b/libjava/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.h new file mode 100644 index 00000000000..1460c6761e4 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextExtPackage_URLStringHelper__ +#define __org_omg_CosNaming_NamingContextExtPackage_URLStringHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextExtPackage + { + class URLStringHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextExtPackage::URLStringHelper : public ::java::lang::Object +{ + +public: + URLStringHelper(); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextExtPackage_URLStringHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextHelper.h b/libjava/org/omg/CosNaming/NamingContextHelper.h new file mode 100644 index 00000000000..96c7bbeaff5 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextHelper__ +#define __org_omg_CosNaming_NamingContextHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NamingContext; + class NamingContextHelper; + } + } + } +} + +class org::omg::CosNaming::NamingContextHelper : public ::java::lang::Object +{ + +public: + NamingContextHelper(); + static ::org::omg::CosNaming::NamingContext * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContext *); + static ::org::omg::CosNaming::NamingContext * narrow(::org::omg::CORBA::Object *); + static ::org::omg::CosNaming::NamingContext * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CosNaming::NamingContext * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContext *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextHolder.h b/libjava/org/omg/CosNaming/NamingContextHolder.h new file mode 100644 index 00000000000..aaee3d2fd73 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextHolder__ +#define __org_omg_CosNaming_NamingContextHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + class NamingContext; + class NamingContextHolder; + } + } + } +} + +class org::omg::CosNaming::NamingContextHolder : public ::java::lang::Object +{ + +public: + NamingContextHolder(); + NamingContextHolder(::org::omg::CosNaming::NamingContext *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContext * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextOperations.h b/libjava/org/omg/CosNaming/NamingContextOperations.h new file mode 100644 index 00000000000..bb7385b8b46 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextOperations.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextOperations__ +#define __org_omg_CosNaming_NamingContextOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + class NamingContextOperations; + } + } + } +} + +class org::omg::CosNaming::NamingContextOperations : public ::java::lang::Object +{ + +public: + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void destroy() = 0; + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *) = 0; + virtual ::org::omg::CosNaming::NamingContext * new_context() = 0; + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_CosNaming_NamingContextOperations__ diff --git a/libjava/org/omg/CosNaming/NamingContextPOA.h b/libjava/org/omg/CosNaming/NamingContextPOA.h new file mode 100644 index 00000000000..c6e595e2221 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPOA.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPOA__ +#define __org_omg_CosNaming_NamingContextPOA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + class NamingContextPOA; + } + namespace PortableServer + { + class POA; + } + } + } +} + +class org::omg::CosNaming::NamingContextPOA : public ::org::omg::PortableServer::Servant +{ + +public: + NamingContextPOA(); + virtual JArray< ::java::lang::String * > * _all_interfaces(::org::omg::PortableServer::POA *, JArray< jbyte > *); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual ::org::omg::CosNaming::NamingContext * _this(); + virtual ::org::omg::CosNaming::NamingContext * _this(::org::omg::CORBA::ORB *); + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void destroy() = 0; + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *) = 0; + virtual ::org::omg::CosNaming::NamingContext * new_context() = 0; + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPOA__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBound.h b/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBound.h new file mode 100644 index 00000000000..0a28e186f0d --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBound.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_AlreadyBound__ +#define __org_omg_CosNaming_NamingContextPackage_AlreadyBound__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + namespace NamingContextPackage + { + class AlreadyBound; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::AlreadyBound : public ::org::omg::CORBA::UserException +{ + +public: + AlreadyBound(); + AlreadyBound(::java::lang::String *); +private: + static const jlong serialVersionUID = -5456929050527586560LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_AlreadyBound__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.h b/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.h new file mode 100644 index 00000000000..4f326a14e94 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_AlreadyBoundHelper__ +#define __org_omg_CosNaming_NamingContextPackage_AlreadyBoundHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class AlreadyBound; + class AlreadyBoundHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::AlreadyBoundHelper : public ::java::lang::Object +{ + +public: + AlreadyBoundHelper(); + static ::org::omg::CosNaming::NamingContextPackage::AlreadyBound * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextPackage::AlreadyBound *); + static ::org::omg::CosNaming::NamingContextPackage::AlreadyBound * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextPackage::AlreadyBound *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_AlreadyBoundHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.h b/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.h new file mode 100644 index 00000000000..3cb61acf807 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_AlreadyBoundHolder__ +#define __org_omg_CosNaming_NamingContextPackage_AlreadyBoundHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class AlreadyBound; + class AlreadyBoundHolder; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::AlreadyBoundHolder : public ::java::lang::Object +{ + +public: + AlreadyBoundHolder(); + AlreadyBoundHolder(::org::omg::CosNaming::NamingContextPackage::AlreadyBound *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextPackage::AlreadyBound * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_AlreadyBoundHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceed.h b/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceed.h new file mode 100644 index 00000000000..85f92cea052 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceed.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_CannotProceed__ +#define __org_omg_CosNaming_NamingContextPackage_CannotProceed__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + class NameComponent; + class NamingContext; + namespace NamingContextPackage + { + class CannotProceed; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::CannotProceed : public ::org::omg::CORBA::UserException +{ + +public: + CannotProceed(); + CannotProceed(::org::omg::CosNaming::NamingContext *, JArray< ::org::omg::CosNaming::NameComponent * > *); + CannotProceed(::java::lang::String *, ::org::omg::CosNaming::NamingContext *, JArray< ::org::omg::CosNaming::NameComponent * > *); +private: + static const jlong serialVersionUID = -8627405252527310782LL; +public: + ::org::omg::CosNaming::NamingContext * __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) cxt; + JArray< ::org::omg::CosNaming::NameComponent * > * rest_of_name; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_CannotProceed__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.h b/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.h new file mode 100644 index 00000000000..26c1c3293b4 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_CannotProceedHelper__ +#define __org_omg_CosNaming_NamingContextPackage_CannotProceedHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class CannotProceed; + class CannotProceedHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::CannotProceedHelper : public ::java::lang::Object +{ + +public: + CannotProceedHelper(); + static ::org::omg::CosNaming::NamingContextPackage::CannotProceed * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextPackage::CannotProceed *); + static ::org::omg::CosNaming::NamingContextPackage::CannotProceed * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextPackage::CannotProceed *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_CannotProceedHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.h b/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.h new file mode 100644 index 00000000000..ba735f5aa64 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_CannotProceedHolder__ +#define __org_omg_CosNaming_NamingContextPackage_CannotProceedHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class CannotProceed; + class CannotProceedHolder; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::CannotProceedHolder : public ::java::lang::Object +{ + +public: + CannotProceedHolder(); + CannotProceedHolder(::org::omg::CosNaming::NamingContextPackage::CannotProceed *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextPackage::CannotProceed * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_CannotProceedHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/InvalidName.h b/libjava/org/omg/CosNaming/NamingContextPackage/InvalidName.h new file mode 100644 index 00000000000..d5dccf7fddd --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/InvalidName.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_InvalidName__ +#define __org_omg_CosNaming_NamingContextPackage_InvalidName__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + namespace NamingContextPackage + { + class InvalidName; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::InvalidName : public ::org::omg::CORBA::UserException +{ + +public: + InvalidName(); + InvalidName(::java::lang::String *); +private: + static const jlong serialVersionUID = 786404864997961704LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_InvalidName__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.h b/libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.h new file mode 100644 index 00000000000..aaa771ba254 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_InvalidNameHelper__ +#define __org_omg_CosNaming_NamingContextPackage_InvalidNameHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class InvalidName; + class InvalidNameHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::InvalidNameHelper : public ::java::lang::Object +{ + +public: + InvalidNameHelper(); + static ::org::omg::CosNaming::NamingContextPackage::InvalidName * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextPackage::InvalidName *); + static ::org::omg::CosNaming::NamingContextPackage::InvalidName * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextPackage::InvalidName *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_InvalidNameHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.h b/libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.h new file mode 100644 index 00000000000..3b77117a608 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_InvalidNameHolder__ +#define __org_omg_CosNaming_NamingContextPackage_InvalidNameHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class InvalidName; + class InvalidNameHolder; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::InvalidNameHolder : public ::java::lang::Object +{ + +public: + InvalidNameHolder(); + InvalidNameHolder(::org::omg::CosNaming::NamingContextPackage::InvalidName *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextPackage::InvalidName * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_InvalidNameHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotEmpty.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotEmpty.h new file mode 100644 index 00000000000..38555ce46e1 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotEmpty.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotEmpty__ +#define __org_omg_CosNaming_NamingContextPackage_NotEmpty__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + namespace NamingContextPackage + { + class NotEmpty; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotEmpty : public ::org::omg::CORBA::UserException +{ + +public: + NotEmpty(); + NotEmpty(::java::lang::String *); +private: + static const jlong serialVersionUID = 7120362687417045881LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotEmpty__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.h new file mode 100644 index 00000000000..85ffa61eb0e --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotEmptyHelper__ +#define __org_omg_CosNaming_NamingContextPackage_NotEmptyHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class NotEmpty; + class NotEmptyHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotEmptyHelper : public ::java::lang::Object +{ + +public: + NotEmptyHelper(); + static ::org::omg::CosNaming::NamingContextPackage::NotEmpty * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextPackage::NotEmpty *); + static ::org::omg::CosNaming::NamingContextPackage::NotEmpty * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextPackage::NotEmpty *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotEmptyHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.h new file mode 100644 index 00000000000..55c505fae9e --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotEmptyHolder__ +#define __org_omg_CosNaming_NamingContextPackage_NotEmptyHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class NotEmpty; + class NotEmptyHolder; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotEmptyHolder : public ::java::lang::Object +{ + +public: + NotEmptyHolder(); + NotEmptyHolder(::org::omg::CosNaming::NamingContextPackage::NotEmpty *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextPackage::NotEmpty * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotEmptyHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotFound.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotFound.h new file mode 100644 index 00000000000..d6c37a6123b --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotFound.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotFound__ +#define __org_omg_CosNaming_NamingContextPackage_NotFound__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + class NameComponent; + namespace NamingContextPackage + { + class NotFound; + class NotFoundReason; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotFound : public ::org::omg::CORBA::UserException +{ + +public: + NotFound(); + NotFound(::org::omg::CosNaming::NamingContextPackage::NotFoundReason *, JArray< ::org::omg::CosNaming::NameComponent * > *); + NotFound(::java::lang::String *, ::org::omg::CosNaming::NamingContextPackage::NotFoundReason *, JArray< ::org::omg::CosNaming::NameComponent * > *); +private: + static const jlong serialVersionUID = -7539098836265502514LL; +public: + ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) why; + JArray< ::org::omg::CosNaming::NameComponent * > * rest_of_name; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotFound__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.h new file mode 100644 index 00000000000..7f0fa9b563c --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotFoundHelper__ +#define __org_omg_CosNaming_NamingContextPackage_NotFoundHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class NotFound; + class NotFoundHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotFoundHelper : public ::java::lang::Object +{ + +public: + NotFoundHelper(); + static ::org::omg::CosNaming::NamingContextPackage::NotFound * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextPackage::NotFound *); + static ::org::omg::CosNaming::NamingContextPackage::NotFound * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextPackage::NotFound *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotFoundHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHolder.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHolder.h new file mode 100644 index 00000000000..9e525afdf16 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotFoundHolder__ +#define __org_omg_CosNaming_NamingContextPackage_NotFoundHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class NotFound; + class NotFoundHolder; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotFoundHolder : public ::java::lang::Object +{ + +public: + NotFoundHolder(); + NotFoundHolder(::org::omg::CosNaming::NamingContextPackage::NotFound *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextPackage::NotFound * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotFoundHolder__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReason.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReason.h new file mode 100644 index 00000000000..a45d21c0249 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReason.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotFoundReason__ +#define __org_omg_CosNaming_NamingContextPackage_NotFoundReason__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CosNaming + { + namespace NamingContextPackage + { + class NotFoundReason; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotFoundReason : public ::java::lang::Object +{ + +public: // actually protected + NotFoundReason(jint); +public: + static ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * from_int(jint); + virtual jint value(); +private: + static const jlong serialVersionUID = -5689237060527596081LL; +public: + static const jint _missing_node = 0; + static const jint _not_context = 1; + static const jint _not_object = 2; + static ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * missing_node; + static ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * not_context; + static ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * not_object; +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) value__; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotFoundReason__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.h new file mode 100644 index 00000000000..557eaf89107 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotFoundReasonHelper__ +#define __org_omg_CosNaming_NamingContextPackage_NotFoundReasonHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class NotFoundReason; + class NotFoundReasonHelper; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotFoundReasonHelper : public ::java::lang::Object +{ + +public: + NotFoundReasonHelper(); + static ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::CosNaming::NamingContextPackage::NotFoundReason *); + static ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::CosNaming::NamingContextPackage::NotFoundReason *); +private: + static ::java::lang::String * _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotFoundReasonHelper__ diff --git a/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.h b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.h new file mode 100644 index 00000000000..cb7343e5752 --- /dev/null +++ b/libjava/org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming_NamingContextPackage_NotFoundReasonHolder__ +#define __org_omg_CosNaming_NamingContextPackage_NotFoundReasonHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace CosNaming + { + namespace NamingContextPackage + { + class NotFoundReason; + class NotFoundReasonHolder; + } + } + } + } +} + +class org::omg::CosNaming::NamingContextPackage::NotFoundReasonHolder : public ::java::lang::Object +{ + +public: + NotFoundReasonHolder(); + NotFoundReasonHolder(::org::omg::CosNaming::NamingContextPackage::NotFoundReason *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CosNaming::NamingContextPackage::NotFoundReason * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming_NamingContextPackage_NotFoundReasonHolder__ diff --git a/libjava/org/omg/CosNaming/_BindingIteratorImplBase.h b/libjava/org/omg/CosNaming/_BindingIteratorImplBase.h new file mode 100644 index 00000000000..0b287bf7190 --- /dev/null +++ b/libjava/org/omg/CosNaming/_BindingIteratorImplBase.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming__BindingIteratorImplBase__ +#define __org_omg_CosNaming__BindingIteratorImplBase__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ServerRequest; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace CosNaming + { + class BindingHolder; + class BindingListHolder; + class _BindingIteratorImplBase; + } + } + } +} + +class org::omg::CosNaming::_BindingIteratorImplBase : public ::org::omg::CORBA::DynamicImplementation +{ + +public: + _BindingIteratorImplBase(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual void invoke(::org::omg::CORBA::ServerRequest *); + virtual void destroy() = 0; + virtual jboolean next_n(jint, ::org::omg::CosNaming::BindingListHolder *) = 0; + virtual jboolean next_one(::org::omg::CosNaming::BindingHolder *) = 0; +private: + static const jlong serialVersionUID = 3472591176635005503LL; + static JArray< ::java::lang::String * > * ids; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming__BindingIteratorImplBase__ diff --git a/libjava/org/omg/CosNaming/_BindingIteratorStub.h b/libjava/org/omg/CosNaming/_BindingIteratorStub.h new file mode 100644 index 00000000000..87ba884c694 --- /dev/null +++ b/libjava/org/omg/CosNaming/_BindingIteratorStub.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming__BindingIteratorStub__ +#define __org_omg_CosNaming__BindingIteratorStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class Delegate; + } + } + namespace CosNaming + { + class BindingHolder; + class BindingListHolder; + class _BindingIteratorStub; + } + } + } +} + +class org::omg::CosNaming::_BindingIteratorStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _BindingIteratorStub(); +public: // actually package-private + _BindingIteratorStub(::org::omg::CORBA::portable::Delegate *); +public: + virtual JArray< ::java::lang::String * > * _ids(); + virtual jboolean _non_existent(); + virtual void destroy(); + virtual jboolean next_n(jint, ::org::omg::CosNaming::BindingListHolder *); + virtual jboolean next_one(::org::omg::CosNaming::BindingHolder *); +public: // actually protected + virtual void finalize(); +private: + static const jlong serialVersionUID = 8969257760771186704LL; + jboolean __attribute__((aligned(__alignof__( ::org::omg::CORBA::portable::ObjectImpl)))) destroyed; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming__BindingIteratorStub__ diff --git a/libjava/org/omg/CosNaming/_NamingContextExtImplBase.h b/libjava/org/omg/CosNaming/_NamingContextExtImplBase.h new file mode 100644 index 00000000000..fd2a75b2537 --- /dev/null +++ b/libjava/org/omg/CosNaming/_NamingContextExtImplBase.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming__NamingContextExtImplBase__ +#define __org_omg_CosNaming__NamingContextExtImplBase__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + class ServerRequest; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace CosNaming + { + class NameComponent; + class _NamingContextExtImplBase; + } + } + } +} + +class org::omg::CosNaming::_NamingContextExtImplBase : public ::org::omg::CosNaming::_NamingContextImplBase +{ + +public: + _NamingContextExtImplBase(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual void invoke(::org::omg::CORBA::ServerRequest *); + virtual ::org::omg::CORBA::Object * resolve_str(::java::lang::String *) = 0; + virtual JArray< ::org::omg::CosNaming::NameComponent * > * to_name(::java::lang::String *) = 0; + virtual ::java::lang::String * to_string(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual ::java::lang::String * to_url(::java::lang::String *, ::java::lang::String *) = 0; +public: // actually package-private + static ::java::util::Hashtable * _methods; +private: + static JArray< ::java::lang::String * > * __ids; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming__NamingContextExtImplBase__ diff --git a/libjava/org/omg/CosNaming/_NamingContextExtStub.h b/libjava/org/omg/CosNaming/_NamingContextExtStub.h new file mode 100644 index 00000000000..25557ed53da --- /dev/null +++ b/libjava/org/omg/CosNaming/_NamingContextExtStub.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming__NamingContextExtStub__ +#define __org_omg_CosNaming__NamingContextExtStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace gnu + { + namespace CORBA + { + namespace NamingService + { + class NameTransformer; + } + } + } + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + namespace portable + { + class Delegate; + } + } + namespace CosNaming + { + class NameComponent; + class _NamingContextExtStub; + } + } + } +} + +class org::omg::CosNaming::_NamingContextExtStub : public ::org::omg::CosNaming::_NamingContextStub +{ + +public: + _NamingContextExtStub(); +public: // actually package-private + _NamingContextExtStub(::org::omg::CORBA::portable::Delegate *); +public: + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::Object * resolve_str(::java::lang::String *); + virtual JArray< ::org::omg::CosNaming::NameComponent * > * to_name(::java::lang::String *); + virtual ::java::lang::String * to_string(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual ::java::lang::String * to_url(::java::lang::String *, ::java::lang::String *); +private: + static const jlong serialVersionUID = 6333293895664182866LL; + static JArray< ::java::lang::String * > * __ids; + ::gnu::CORBA::NamingService::NameTransformer * __attribute__((aligned(__alignof__( ::org::omg::CosNaming::_NamingContextStub)))) converter; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming__NamingContextExtStub__ diff --git a/libjava/org/omg/CosNaming/_NamingContextImplBase.h b/libjava/org/omg/CosNaming/_NamingContextImplBase.h new file mode 100644 index 00000000000..a1837784a67 --- /dev/null +++ b/libjava/org/omg/CosNaming/_NamingContextImplBase.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming__NamingContextImplBase__ +#define __org_omg_CosNaming__NamingContextImplBase__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + class ServerRequest; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + class _NamingContextImplBase; + } + } + } +} + +class org::omg::CosNaming::_NamingContextImplBase : public ::org::omg::CORBA::DynamicImplementation +{ + +public: + _NamingContextImplBase(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual void invoke(::org::omg::CORBA::ServerRequest *); + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void destroy() = 0; + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *) = 0; + virtual ::org::omg::CosNaming::NamingContext * new_context() = 0; + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *) = 0; + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *) = 0; + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *) = 0; +private: + static const jlong serialVersionUID = -114280294134561035LL; +public: // actually package-private + static ::java::util::Hashtable * methods; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming__NamingContextImplBase__ diff --git a/libjava/org/omg/CosNaming/_NamingContextStub.h b/libjava/org/omg/CosNaming/_NamingContextStub.h new file mode 100644 index 00000000000..fc0634f63b6 --- /dev/null +++ b/libjava/org/omg/CosNaming/_NamingContextStub.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_CosNaming__NamingContextStub__ +#define __org_omg_CosNaming__NamingContextStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + namespace portable + { + class Delegate; + class InputStream; + } + } + namespace CosNaming + { + class BindingIteratorHolder; + class BindingListHolder; + class NameComponent; + class NamingContext; + class _NamingContextStub; + } + } + } +} + +class org::omg::CosNaming::_NamingContextStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _NamingContextStub(); +public: // actually package-private + _NamingContextStub(::org::omg::CORBA::portable::Delegate *); +public: + virtual JArray< ::java::lang::String * > * _ids(); + virtual void bind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *); + virtual void bind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *); + virtual ::org::omg::CosNaming::NamingContext * bind_new_context(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual void destroy(); + virtual void list(jint, ::org::omg::CosNaming::BindingListHolder *, ::org::omg::CosNaming::BindingIteratorHolder *); + virtual ::org::omg::CosNaming::NamingContext * new_context(); + virtual void rebind(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CORBA::Object *); + virtual void rebind_context(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::NamingContext *); + virtual ::org::omg::CORBA::Object * resolve(JArray< ::org::omg::CosNaming::NameComponent * > *); + virtual void unbind(JArray< ::org::omg::CosNaming::NameComponent * > *); +public: // actually package-private + virtual void throw4(::org::omg::CORBA::portable::InputStream *, ::java::lang::String *); + virtual void throw5(::org::omg::CORBA::portable::InputStream *, ::java::lang::String *); +private: + static const jlong serialVersionUID = 6835430958405349379LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_CosNaming__NamingContextStub__ diff --git a/libjava/org/omg/Dynamic/Parameter.h b/libjava/org/omg/Dynamic/Parameter.h new file mode 100644 index 00000000000..1ebf08d23df --- /dev/null +++ b/libjava/org/omg/Dynamic/Parameter.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_Dynamic_Parameter__ +#define __org_omg_Dynamic_Parameter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class ParameterMode; + } + namespace Dynamic + { + class Parameter; + } + } + } +} + +class org::omg::Dynamic::Parameter : public ::java::lang::Object +{ + +public: + Parameter(); + Parameter(::org::omg::CORBA::Any *, ::org::omg::CORBA::ParameterMode *); +private: + static const jlong serialVersionUID = 892191606993734699LL; +public: + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::java::lang::Object)))) argument; + ::org::omg::CORBA::ParameterMode * mode; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_Dynamic_Parameter__ diff --git a/libjava/org/omg/DynamicAny/AnySeqHelper.h b/libjava/org/omg/DynamicAny/AnySeqHelper.h new file mode 100644 index 00000000000..eef79d93892 --- /dev/null +++ b/libjava/org/omg/DynamicAny/AnySeqHelper.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_AnySeqHelper__ +#define __org_omg_DynamicAny_AnySeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class AnySeqHelper; + } + } + } +} + +class org::omg::DynamicAny::AnySeqHelper : public ::java::lang::Object +{ + +public: + AnySeqHelper(); + static JArray< ::org::omg::CORBA::Any * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::CORBA::Any * > *); + static JArray< ::org::omg::CORBA::Any * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::CORBA::Any * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_AnySeqHelper__ diff --git a/libjava/org/omg/DynamicAny/DynAny.h b/libjava/org/omg/DynamicAny/DynAny.h new file mode 100644 index 00000000000..6332980bf25 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAny.h @@ -0,0 +1,111 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAny__ +#define __org_omg_DynamicAny_DynAny__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + } + } + } +} + +class org::omg::DynamicAny::DynAny : public ::java::lang::Object +{ + +public: + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynAny__ diff --git a/libjava/org/omg/DynamicAny/DynAnyFactory.h b/libjava/org/omg/DynamicAny/DynAnyFactory.h new file mode 100644 index 00000000000..a61a1435bac --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyFactory.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyFactory__ +#define __org_omg_DynamicAny_DynAnyFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynAnyFactory; + } + } + } +} + +class org::omg::DynamicAny::DynAnyFactory : public ::java::lang::Object +{ + +public: + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any_from_type_code(::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynAnyFactory__ diff --git a/libjava/org/omg/DynamicAny/DynAnyFactoryHelper.h b/libjava/org/omg/DynamicAny/DynAnyFactoryHelper.h new file mode 100644 index 00000000000..67c6f3e8fda --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyFactoryHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyFactoryHelper__ +#define __org_omg_DynamicAny_DynAnyFactoryHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynAnyFactory; + class DynAnyFactoryHelper; + } + } + } +} + +class org::omg::DynamicAny::DynAnyFactoryHelper : public ::java::lang::Object +{ + +public: + DynAnyFactoryHelper(); + static ::org::omg::DynamicAny::DynAnyFactory * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynAnyFactory * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynAnyFactory *); + static ::org::omg::DynamicAny::DynAnyFactory * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynAnyFactory * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynAnyFactory *); +public: // actually package-private + static ::java::lang::String * not_applicable(::java::lang::String *); +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyFactoryHelper__ diff --git a/libjava/org/omg/DynamicAny/DynAnyFactoryOperations.h b/libjava/org/omg/DynamicAny/DynAnyFactoryOperations.h new file mode 100644 index 00000000000..57e86966d18 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyFactoryOperations.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyFactoryOperations__ +#define __org_omg_DynamicAny_DynAnyFactoryOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynAnyFactoryOperations; + } + } + } +} + +class org::omg::DynamicAny::DynAnyFactoryOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any_from_type_code(::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any(::org::omg::CORBA::Any *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynAnyFactoryOperations__ diff --git a/libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.h b/libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.h new file mode 100644 index 00000000000..557e36231db --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyFactoryPackage_InconsistentTypeCode__ +#define __org_omg_DynamicAny_DynAnyFactoryPackage_InconsistentTypeCode__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace DynamicAny + { + namespace DynAnyFactoryPackage + { + class InconsistentTypeCode; + } + } + } + } +} + +class org::omg::DynamicAny::DynAnyFactoryPackage::InconsistentTypeCode : public ::org::omg::CORBA::UserException +{ + +public: + InconsistentTypeCode(); + InconsistentTypeCode(::java::lang::String *); +private: + static const jlong serialVersionUID = 3679785322052655944LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyFactoryPackage_InconsistentTypeCode__ diff --git a/libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.h b/libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.h new file mode 100644 index 00000000000..88baa869864 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyFactoryPackage_InconsistentTypeCodeHelper__ +#define __org_omg_DynamicAny_DynAnyFactoryPackage_InconsistentTypeCodeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + namespace DynAnyFactoryPackage + { + class InconsistentTypeCode; + class InconsistentTypeCodeHelper; + } + } + } + } +} + +class org::omg::DynamicAny::DynAnyFactoryPackage::InconsistentTypeCodeHelper : public ::java::lang::Object +{ + +public: + InconsistentTypeCodeHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynAnyFactoryPackage::InconsistentTypeCode *); + static ::org::omg::DynamicAny::DynAnyFactoryPackage::InconsistentTypeCode * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynAnyFactoryPackage::InconsistentTypeCode * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynAnyFactoryPackage::InconsistentTypeCode *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyFactoryPackage_InconsistentTypeCodeHelper__ diff --git a/libjava/org/omg/DynamicAny/DynAnyHelper.h b/libjava/org/omg/DynamicAny/DynAnyHelper.h new file mode 100644 index 00000000000..22f371722d1 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyHelper__ +#define __org_omg_DynamicAny_DynAnyHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynAny; + class DynAnyHelper; + } + } + } +} + +class org::omg::DynamicAny::DynAnyHelper : public ::java::lang::Object +{ + +public: + DynAnyHelper(); + static ::org::omg::DynamicAny::DynAny * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynAny * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynAny *); + static ::org::omg::DynamicAny::DynAny * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynAny * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynAny *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyHelper__ diff --git a/libjava/org/omg/DynamicAny/DynAnyOperations.h b/libjava/org/omg/DynamicAny/DynAnyOperations.h new file mode 100644 index 00000000000..e7a6339bfa7 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyOperations.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyOperations__ +#define __org_omg_DynamicAny_DynAnyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynAnyOperations; + } + } + } +} + +class org::omg::DynamicAny::DynAnyOperations : public ::java::lang::Object +{ + +public: + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynAnyOperations__ diff --git a/libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValue.h b/libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValue.h new file mode 100644 index 00000000000..44be0a2d4a2 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValue.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyPackage_InvalidValue__ +#define __org_omg_DynamicAny_DynAnyPackage_InvalidValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace DynamicAny + { + namespace DynAnyPackage + { + class InvalidValue; + } + } + } + } +} + +class org::omg::DynamicAny::DynAnyPackage::InvalidValue : public ::org::omg::CORBA::UserException +{ + +public: + InvalidValue(); + InvalidValue(::java::lang::String *); +private: + static const jlong serialVersionUID = 4928947584617628504LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyPackage_InvalidValue__ diff --git a/libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.h b/libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.h new file mode 100644 index 00000000000..961bd615d1a --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyPackage_InvalidValueHelper__ +#define __org_omg_DynamicAny_DynAnyPackage_InvalidValueHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + namespace DynAnyPackage + { + class InvalidValue; + class InvalidValueHelper; + } + } + } + } +} + +class org::omg::DynamicAny::DynAnyPackage::InvalidValueHelper : public ::java::lang::Object +{ + +public: + InvalidValueHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynAnyPackage::InvalidValue *); + static ::org::omg::DynamicAny::DynAnyPackage::InvalidValue * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynAnyPackage::InvalidValue * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynAnyPackage::InvalidValue *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyPackage_InvalidValueHelper__ diff --git a/libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.h b/libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.h new file mode 100644 index 00000000000..dda1b564892 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatch.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyPackage_TypeMismatch__ +#define __org_omg_DynamicAny_DynAnyPackage_TypeMismatch__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace DynamicAny + { + namespace DynAnyPackage + { + class TypeMismatch; + } + } + } + } +} + +class org::omg::DynamicAny::DynAnyPackage::TypeMismatch : public ::org::omg::CORBA::UserException +{ + +public: + TypeMismatch(); + TypeMismatch(::java::lang::String *); +private: + static const jlong serialVersionUID = -6393641830493471034LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyPackage_TypeMismatch__ diff --git a/libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.h b/libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.h new file mode 100644 index 00000000000..43e70effed3 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnyPackage_TypeMismatchHelper__ +#define __org_omg_DynamicAny_DynAnyPackage_TypeMismatchHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + namespace DynAnyPackage + { + class TypeMismatch; + class TypeMismatchHelper; + } + } + } + } +} + +class org::omg::DynamicAny::DynAnyPackage::TypeMismatchHelper : public ::java::lang::Object +{ + +public: + TypeMismatchHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynAnyPackage::TypeMismatch *); + static ::org::omg::DynamicAny::DynAnyPackage::TypeMismatch * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynAnyPackage::TypeMismatch * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynAnyPackage::TypeMismatch *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnyPackage_TypeMismatchHelper__ diff --git a/libjava/org/omg/DynamicAny/DynAnySeqHelper.h b/libjava/org/omg/DynamicAny/DynAnySeqHelper.h new file mode 100644 index 00000000000..8e28ce66608 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynAnySeqHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynAnySeqHelper__ +#define __org_omg_DynamicAny_DynAnySeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynAny; + class DynAnySeqHelper; + } + } + } +} + +class org::omg::DynamicAny::DynAnySeqHelper : public ::java::lang::Object +{ + +public: + DynAnySeqHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::DynamicAny::DynAny * > *); + static JArray< ::org::omg::DynamicAny::DynAny * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static JArray< ::org::omg::DynamicAny::DynAny * > * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::DynamicAny::DynAny * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynAnySeqHelper__ diff --git a/libjava/org/omg/DynamicAny/DynArray.h b/libjava/org/omg/DynamicAny/DynArray.h new file mode 100644 index 00000000000..f927f6064e6 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynArray.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynArray__ +#define __org_omg_DynamicAny_DynArray__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynArray; + } + } + } +} + +class org::omg::DynamicAny::DynArray : public ::java::lang::Object +{ + +public: + virtual JArray< ::org::omg::DynamicAny::DynAny * > * get_elements_as_dyn_any() = 0; + virtual JArray< ::org::omg::CORBA::Any * > * get_elements() = 0; + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *) = 0; + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynArray__ diff --git a/libjava/org/omg/DynamicAny/DynArrayHelper.h b/libjava/org/omg/DynamicAny/DynArrayHelper.h new file mode 100644 index 00000000000..914a7495288 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynArrayHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynArrayHelper__ +#define __org_omg_DynamicAny_DynArrayHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynArray; + class DynArrayHelper; + } + } + } +} + +class org::omg::DynamicAny::DynArrayHelper : public ::java::lang::Object +{ + +public: + DynArrayHelper(); + static ::org::omg::DynamicAny::DynArray * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynArray * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynArray *); + static ::org::omg::DynamicAny::DynArray * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynArray * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynArray *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynArrayHelper__ diff --git a/libjava/org/omg/DynamicAny/DynArrayOperations.h b/libjava/org/omg/DynamicAny/DynArrayOperations.h new file mode 100644 index 00000000000..9a110716e98 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynArrayOperations.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynArrayOperations__ +#define __org_omg_DynamicAny_DynArrayOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynArrayOperations; + } + } + } +} + +class org::omg::DynamicAny::DynArrayOperations : public ::java::lang::Object +{ + +public: + virtual JArray< ::org::omg::DynamicAny::DynAny * > * get_elements_as_dyn_any() = 0; + virtual JArray< ::org::omg::CORBA::Any * > * get_elements() = 0; + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *) = 0; + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynArrayOperations__ diff --git a/libjava/org/omg/DynamicAny/DynEnum.h b/libjava/org/omg/DynamicAny/DynEnum.h new file mode 100644 index 00000000000..5136effc1ea --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynEnum.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynEnum__ +#define __org_omg_DynamicAny_DynEnum__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynEnum; + } + } + } +} + +class org::omg::DynamicAny::DynEnum : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * get_as_string() = 0; + virtual jint get_as_ulong() = 0; + virtual void set_as_string(::java::lang::String *) = 0; + virtual void set_as_ulong(jint) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynEnum__ diff --git a/libjava/org/omg/DynamicAny/DynEnumHelper.h b/libjava/org/omg/DynamicAny/DynEnumHelper.h new file mode 100644 index 00000000000..bc0beb5cf7d --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynEnumHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynEnumHelper__ +#define __org_omg_DynamicAny_DynEnumHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynEnum; + class DynEnumHelper; + } + } + } +} + +class org::omg::DynamicAny::DynEnumHelper : public ::java::lang::Object +{ + +public: + DynEnumHelper(); + static ::org::omg::DynamicAny::DynEnum * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynEnum * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynEnum *); + static ::org::omg::DynamicAny::DynEnum * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynEnum * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynEnum *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynEnumHelper__ diff --git a/libjava/org/omg/DynamicAny/DynEnumOperations.h b/libjava/org/omg/DynamicAny/DynEnumOperations.h new file mode 100644 index 00000000000..360d38fb855 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynEnumOperations.h @@ -0,0 +1,92 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynEnumOperations__ +#define __org_omg_DynamicAny_DynEnumOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynEnumOperations; + } + } + } +} + +class org::omg::DynamicAny::DynEnumOperations : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * get_as_string() = 0; + virtual jint get_as_ulong() = 0; + virtual void set_as_string(::java::lang::String *) = 0; + virtual void set_as_ulong(jint) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynEnumOperations__ diff --git a/libjava/org/omg/DynamicAny/DynFixed.h b/libjava/org/omg/DynamicAny/DynFixed.h new file mode 100644 index 00000000000..32abefb53b7 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynFixed.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynFixed__ +#define __org_omg_DynamicAny_DynFixed__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynFixed; + } + } + } +} + +class org::omg::DynamicAny::DynFixed : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * get_value() = 0; + virtual jboolean set_value(::java::lang::String *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynFixed__ diff --git a/libjava/org/omg/DynamicAny/DynFixedHelper.h b/libjava/org/omg/DynamicAny/DynFixedHelper.h new file mode 100644 index 00000000000..15561e04193 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynFixedHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynFixedHelper__ +#define __org_omg_DynamicAny_DynFixedHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynFixed; + class DynFixedHelper; + } + } + } +} + +class org::omg::DynamicAny::DynFixedHelper : public ::java::lang::Object +{ + +public: + DynFixedHelper(); + static ::org::omg::DynamicAny::DynFixed * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynFixed * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynFixed *); + static ::org::omg::DynamicAny::DynFixed * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynFixed * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynFixed *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynFixedHelper__ diff --git a/libjava/org/omg/DynamicAny/DynFixedOperations.h b/libjava/org/omg/DynamicAny/DynFixedOperations.h new file mode 100644 index 00000000000..5373b5e92b7 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynFixedOperations.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynFixedOperations__ +#define __org_omg_DynamicAny_DynFixedOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynFixedOperations; + } + } + } +} + +class org::omg::DynamicAny::DynFixedOperations : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * get_value() = 0; + virtual jboolean set_value(::java::lang::String *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynFixedOperations__ diff --git a/libjava/org/omg/DynamicAny/DynSequence.h b/libjava/org/omg/DynamicAny/DynSequence.h new file mode 100644 index 00000000000..0744cdbedcd --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynSequence.h @@ -0,0 +1,118 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynSequence__ +#define __org_omg_DynamicAny_DynSequence__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynSequence; + } + } + } +} + +class org::omg::DynamicAny::DynSequence : public ::java::lang::Object +{ + +public: + virtual jint get_length() = 0; + virtual void set_length(jint) = 0; + virtual JArray< ::org::omg::DynamicAny::DynAny * > * get_elements_as_dyn_any() = 0; + virtual JArray< ::org::omg::CORBA::Any * > * get_elements() = 0; + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *) = 0; + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynSequence__ diff --git a/libjava/org/omg/DynamicAny/DynSequenceHelper.h b/libjava/org/omg/DynamicAny/DynSequenceHelper.h new file mode 100644 index 00000000000..f782f528a9d --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynSequenceHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynSequenceHelper__ +#define __org_omg_DynamicAny_DynSequenceHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynSequence; + class DynSequenceHelper; + } + } + } +} + +class org::omg::DynamicAny::DynSequenceHelper : public ::java::lang::Object +{ + +public: + DynSequenceHelper(); + static ::org::omg::DynamicAny::DynSequence * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynSequence * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynSequence *); + static ::org::omg::DynamicAny::DynSequence * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynSequence * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynSequence *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynSequenceHelper__ diff --git a/libjava/org/omg/DynamicAny/DynSequenceOperations.h b/libjava/org/omg/DynamicAny/DynSequenceOperations.h new file mode 100644 index 00000000000..3f80eaaa6df --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynSequenceOperations.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynSequenceOperations__ +#define __org_omg_DynamicAny_DynSequenceOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynSequenceOperations; + } + } + } +} + +class org::omg::DynamicAny::DynSequenceOperations : public ::java::lang::Object +{ + +public: + virtual jint get_length() = 0; + virtual void set_length(jint) = 0; + virtual JArray< ::org::omg::DynamicAny::DynAny * > * get_elements_as_dyn_any() = 0; + virtual JArray< ::org::omg::CORBA::Any * > * get_elements() = 0; + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *) = 0; + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynSequenceOperations__ diff --git a/libjava/org/omg/DynamicAny/DynStruct.h b/libjava/org/omg/DynamicAny/DynStruct.h new file mode 100644 index 00000000000..149ba055b38 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynStruct.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynStruct__ +#define __org_omg_DynamicAny_DynStruct__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynStruct; + class NameDynAnyPair; + class NameValuePair; + } + } + } +} + +class org::omg::DynamicAny::DynStruct : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TCKind * current_member_kind() = 0; + virtual ::java::lang::String * current_member_name() = 0; + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any() = 0; + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members() = 0; + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *) = 0; + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynStruct__ diff --git a/libjava/org/omg/DynamicAny/DynStructHelper.h b/libjava/org/omg/DynamicAny/DynStructHelper.h new file mode 100644 index 00000000000..393cbd88443 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynStructHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynStructHelper__ +#define __org_omg_DynamicAny_DynStructHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynStruct; + class DynStructHelper; + } + } + } +} + +class org::omg::DynamicAny::DynStructHelper : public ::java::lang::Object +{ + +public: + DynStructHelper(); + static ::org::omg::DynamicAny::DynStruct * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynStruct * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynStruct *); + static ::org::omg::DynamicAny::DynStruct * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynStruct * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynStruct *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynStructHelper__ diff --git a/libjava/org/omg/DynamicAny/DynStructOperations.h b/libjava/org/omg/DynamicAny/DynStructOperations.h new file mode 100644 index 00000000000..2e69f372d63 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynStructOperations.h @@ -0,0 +1,99 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynStructOperations__ +#define __org_omg_DynamicAny_DynStructOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynStructOperations; + class NameDynAnyPair; + class NameValuePair; + } + } + } +} + +class org::omg::DynamicAny::DynStructOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TCKind * current_member_kind() = 0; + virtual ::java::lang::String * current_member_name() = 0; + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any() = 0; + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members() = 0; + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *) = 0; + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynStructOperations__ diff --git a/libjava/org/omg/DynamicAny/DynUnion.h b/libjava/org/omg/DynamicAny/DynUnion.h new file mode 100644 index 00000000000..618add73627 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynUnion.h @@ -0,0 +1,122 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynUnion__ +#define __org_omg_DynamicAny_DynUnion__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynUnion; + } + } + } +} + +class org::omg::DynamicAny::DynUnion : public ::java::lang::Object +{ + +public: + virtual ::org::omg::DynamicAny::DynAny * get_discriminator() = 0; + virtual void set_discriminator(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::CORBA::TCKind * discriminator_kind() = 0; + virtual ::org::omg::DynamicAny::DynAny * member() = 0; + virtual ::org::omg::CORBA::TCKind * member_kind() = 0; + virtual ::java::lang::String * member_name() = 0; + virtual jboolean has_no_active_member() = 0; + virtual void set_to_default_member() = 0; + virtual void set_to_no_active_member() = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynUnion__ diff --git a/libjava/org/omg/DynamicAny/DynUnionHelper.h b/libjava/org/omg/DynamicAny/DynUnionHelper.h new file mode 100644 index 00000000000..b9cf22b5628 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynUnionHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynUnionHelper__ +#define __org_omg_DynamicAny_DynUnionHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynUnion; + class DynUnionHelper; + } + } + } +} + +class org::omg::DynamicAny::DynUnionHelper : public ::java::lang::Object +{ + +public: + DynUnionHelper(); + static ::org::omg::DynamicAny::DynUnion * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynUnion * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynUnion *); + static ::org::omg::DynamicAny::DynUnion * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynUnion * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynUnion *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynUnionHelper__ diff --git a/libjava/org/omg/DynamicAny/DynUnionOperations.h b/libjava/org/omg/DynamicAny/DynUnionOperations.h new file mode 100644 index 00000000000..1b7e92527a1 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynUnionOperations.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynUnionOperations__ +#define __org_omg_DynamicAny_DynUnionOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynUnionOperations; + } + } + } +} + +class org::omg::DynamicAny::DynUnionOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::DynamicAny::DynAny * get_discriminator() = 0; + virtual void set_discriminator(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::CORBA::TCKind * discriminator_kind() = 0; + virtual ::org::omg::DynamicAny::DynAny * member() = 0; + virtual ::org::omg::CORBA::TCKind * member_kind() = 0; + virtual ::java::lang::String * member_name() = 0; + virtual jboolean has_no_active_member() = 0; + virtual void set_to_default_member() = 0; + virtual void set_to_no_active_member() = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynUnionOperations__ diff --git a/libjava/org/omg/DynamicAny/DynValue.h b/libjava/org/omg/DynamicAny/DynValue.h new file mode 100644 index 00000000000..0c1dffaa204 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynValue.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynValue__ +#define __org_omg_DynamicAny_DynValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynValue; + class NameDynAnyPair; + class NameValuePair; + } + } + } +} + +class org::omg::DynamicAny::DynValue : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TCKind * current_member_kind() = 0; + virtual ::java::lang::String * current_member_name() = 0; + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any() = 0; + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members() = 0; + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *) = 0; + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual jboolean is_null() = 0; + virtual void set_to_null() = 0; + virtual void set_to_value() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynValue__ diff --git a/libjava/org/omg/DynamicAny/DynValueBox.h b/libjava/org/omg/DynamicAny/DynValueBox.h new file mode 100644 index 00000000000..e76b4413fc3 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynValueBox.h @@ -0,0 +1,119 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynValueBox__ +#define __org_omg_DynamicAny_DynValueBox__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynValueBox; + } + } + } +} + +class org::omg::DynamicAny::DynValueBox : public ::java::lang::Object +{ + +public: + virtual ::org::omg::DynamicAny::DynAny * get_boxed_value_as_dyn_any() = 0; + virtual ::org::omg::CORBA::Any * get_boxed_value() = 0; + virtual void set_boxed_value_as_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual void set_boxed_value(::org::omg::CORBA::Any *) = 0; + virtual jboolean is_null() = 0; + virtual void set_to_null() = 0; + virtual void set_to_value() = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynValueBox__ diff --git a/libjava/org/omg/DynamicAny/DynValueBoxOperations.h b/libjava/org/omg/DynamicAny/DynValueBoxOperations.h new file mode 100644 index 00000000000..10caa23eb95 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynValueBoxOperations.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynValueBoxOperations__ +#define __org_omg_DynamicAny_DynValueBoxOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynValueBoxOperations; + } + } + } +} + +class org::omg::DynamicAny::DynValueBoxOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::DynamicAny::DynAny * get_boxed_value_as_dyn_any() = 0; + virtual ::org::omg::CORBA::Any * get_boxed_value() = 0; + virtual void set_boxed_value_as_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual void set_boxed_value(::org::omg::CORBA::Any *) = 0; + virtual jboolean is_null() = 0; + virtual void set_to_null() = 0; + virtual void set_to_value() = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynValueBoxOperations__ diff --git a/libjava/org/omg/DynamicAny/DynValueCommon.h b/libjava/org/omg/DynamicAny/DynValueCommon.h new file mode 100644 index 00000000000..de40469a6f7 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynValueCommon.h @@ -0,0 +1,115 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynValueCommon__ +#define __org_omg_DynamicAny_DynValueCommon__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynValueCommon; + } + } + } +} + +class org::omg::DynamicAny::DynValueCommon : public ::java::lang::Object +{ + +public: + virtual jboolean is_null() = 0; + virtual void set_to_null() = 0; + virtual void set_to_value() = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynValueCommon__ diff --git a/libjava/org/omg/DynamicAny/DynValueCommonOperations.h b/libjava/org/omg/DynamicAny/DynValueCommonOperations.h new file mode 100644 index 00000000000..4ab9d60c012 --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynValueCommonOperations.h @@ -0,0 +1,91 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynValueCommonOperations__ +#define __org_omg_DynamicAny_DynValueCommonOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynValueCommonOperations; + } + } + } +} + +class org::omg::DynamicAny::DynValueCommonOperations : public ::java::lang::Object +{ + +public: + virtual jboolean is_null() = 0; + virtual void set_to_null() = 0; + virtual void set_to_value() = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynValueCommonOperations__ diff --git a/libjava/org/omg/DynamicAny/DynValueHelper.h b/libjava/org/omg/DynamicAny/DynValueHelper.h new file mode 100644 index 00000000000..ddb0143428a --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynValueHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynValueHelper__ +#define __org_omg_DynamicAny_DynValueHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class DynValue; + class DynValueHelper; + } + } + } +} + +class org::omg::DynamicAny::DynValueHelper : public ::java::lang::Object +{ + +public: + DynValueHelper(); + static ::org::omg::DynamicAny::DynValue * narrow(::org::omg::CORBA::Object *); + static ::org::omg::DynamicAny::DynValue * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::DynValue *); + static ::org::omg::DynamicAny::DynValue * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::DynValue * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::DynValue *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_DynValueHelper__ diff --git a/libjava/org/omg/DynamicAny/DynValueOperations.h b/libjava/org/omg/DynamicAny/DynValueOperations.h new file mode 100644 index 00000000000..269a6b09dee --- /dev/null +++ b/libjava/org/omg/DynamicAny/DynValueOperations.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_DynValueOperations__ +#define __org_omg_DynamicAny_DynValueOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class DynValueOperations; + class NameDynAnyPair; + class NameValuePair; + } + } + } +} + +class org::omg::DynamicAny::DynValueOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::TCKind * current_member_kind() = 0; + virtual ::java::lang::String * current_member_name() = 0; + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any() = 0; + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members() = 0; + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *) = 0; + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *) = 0; + virtual void assign(::org::omg::DynamicAny::DynAny *) = 0; + virtual ::org::omg::DynamicAny::DynAny * copy() = 0; + virtual ::org::omg::DynamicAny::DynAny * current_component() = 0; + virtual void destroy() = 0; + virtual void from_any(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * get_any() = 0; + virtual jboolean get_boolean() = 0; + virtual jchar get_char() = 0; + virtual jdouble get_double() = 0; + virtual jfloat get_float() = 0; + virtual jint get_long() = 0; + virtual jlong get_longlong() = 0; + virtual jbyte get_octet() = 0; + virtual ::org::omg::CORBA::Object * get_reference() = 0; + virtual jshort get_short() = 0; + virtual ::java::lang::String * get_string() = 0; + virtual ::org::omg::CORBA::TypeCode * get_typecode() = 0; + virtual jint get_ulong() = 0; + virtual jlong get_ulonglong() = 0; + virtual jshort get_ushort() = 0; + virtual ::java::io::Serializable * get_val() = 0; + virtual jchar get_wchar() = 0; + virtual ::java::lang::String * get_wstring() = 0; + virtual void insert_any(::org::omg::CORBA::Any *) = 0; + virtual void insert_boolean(jboolean) = 0; + virtual void insert_char(jchar) = 0; + virtual void insert_double(jdouble) = 0; + virtual void insert_float(jfloat) = 0; + virtual void insert_long(jint) = 0; + virtual void insert_longlong(jlong) = 0; + virtual void insert_octet(jbyte) = 0; + virtual void insert_reference(::org::omg::CORBA::Object *) = 0; + virtual void insert_short(jshort) = 0; + virtual void insert_string(::java::lang::String *) = 0; + virtual void insert_typecode(::org::omg::CORBA::TypeCode *) = 0; + virtual void insert_ulong(jint) = 0; + virtual void insert_ulonglong(jlong) = 0; + virtual void insert_ushort(jshort) = 0; + virtual void insert_val(::java::io::Serializable *) = 0; + virtual void insert_wchar(jchar) = 0; + virtual void insert_wstring(::java::lang::String *) = 0; + virtual jboolean next() = 0; + virtual void rewind() = 0; + virtual jboolean seek(jint) = 0; + virtual ::org::omg::CORBA::Any * to_any() = 0; + virtual ::org::omg::CORBA::TypeCode * type() = 0; + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *) = 0; + virtual jboolean equal(::org::omg::DynamicAny::DynAny *) = 0; + virtual jint component_count() = 0; + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any() = 0; + virtual jboolean is_null() = 0; + virtual void set_to_null() = 0; + virtual void set_to_value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_DynamicAny_DynValueOperations__ diff --git a/libjava/org/omg/DynamicAny/FieldNameHelper.h b/libjava/org/omg/DynamicAny/FieldNameHelper.h new file mode 100644 index 00000000000..9276e12b0e6 --- /dev/null +++ b/libjava/org/omg/DynamicAny/FieldNameHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_FieldNameHelper__ +#define __org_omg_DynamicAny_FieldNameHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class FieldNameHelper; + } + } + } +} + +class org::omg::DynamicAny::FieldNameHelper : public ::java::lang::Object +{ + +public: + FieldNameHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_FieldNameHelper__ diff --git a/libjava/org/omg/DynamicAny/NameDynAnyPair.h b/libjava/org/omg/DynamicAny/NameDynAnyPair.h new file mode 100644 index 00000000000..9311531724c --- /dev/null +++ b/libjava/org/omg/DynamicAny/NameDynAnyPair.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_NameDynAnyPair__ +#define __org_omg_DynamicAny_NameDynAnyPair__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace DynamicAny + { + class DynAny; + class NameDynAnyPair; + } + } + } +} + +class org::omg::DynamicAny::NameDynAnyPair : public ::java::lang::Object +{ + +public: + NameDynAnyPair(); + NameDynAnyPair(::java::lang::String *, ::org::omg::DynamicAny::DynAny *); +private: + static const jlong serialVersionUID = -1992533286932908564LL; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) id; + ::org::omg::DynamicAny::DynAny * value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_NameDynAnyPair__ diff --git a/libjava/org/omg/DynamicAny/NameDynAnyPairHelper.h b/libjava/org/omg/DynamicAny/NameDynAnyPairHelper.h new file mode 100644 index 00000000000..ea42e70e2cf --- /dev/null +++ b/libjava/org/omg/DynamicAny/NameDynAnyPairHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_NameDynAnyPairHelper__ +#define __org_omg_DynamicAny_NameDynAnyPairHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameDynAnyPair; + class NameDynAnyPairHelper; + } + } + } +} + +class org::omg::DynamicAny::NameDynAnyPairHelper : public ::java::lang::Object +{ + +public: + NameDynAnyPairHelper(); + static ::org::omg::DynamicAny::NameDynAnyPair * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::NameDynAnyPair *); + static ::org::omg::DynamicAny::NameDynAnyPair * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::NameDynAnyPair *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_NameDynAnyPairHelper__ diff --git a/libjava/org/omg/DynamicAny/NameDynAnyPairSeqHelper.h b/libjava/org/omg/DynamicAny/NameDynAnyPairSeqHelper.h new file mode 100644 index 00000000000..40548c79084 --- /dev/null +++ b/libjava/org/omg/DynamicAny/NameDynAnyPairSeqHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_NameDynAnyPairSeqHelper__ +#define __org_omg_DynamicAny_NameDynAnyPairSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameDynAnyPair; + class NameDynAnyPairSeqHelper; + } + } + } +} + +class org::omg::DynamicAny::NameDynAnyPairSeqHelper : public ::java::lang::Object +{ + +public: + NameDynAnyPairSeqHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); + static JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_NameDynAnyPairSeqHelper__ diff --git a/libjava/org/omg/DynamicAny/NameValuePair.h b/libjava/org/omg/DynamicAny/NameValuePair.h new file mode 100644 index 00000000000..d781837d82b --- /dev/null +++ b/libjava/org/omg/DynamicAny/NameValuePair.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_NameValuePair__ +#define __org_omg_DynamicAny_NameValuePair__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + } + namespace DynamicAny + { + class NameValuePair; + } + } + } +} + +class org::omg::DynamicAny::NameValuePair : public ::java::lang::Object +{ + +public: + NameValuePair(); + NameValuePair(::java::lang::String *, ::org::omg::CORBA::Any *); +private: + static const jlong serialVersionUID = -1289460542874201736LL; +public: + ::org::omg::CORBA::Any * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + ::java::lang::String * id; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_NameValuePair__ diff --git a/libjava/org/omg/DynamicAny/NameValuePairHelper.h b/libjava/org/omg/DynamicAny/NameValuePairHelper.h new file mode 100644 index 00000000000..cac4c62a296 --- /dev/null +++ b/libjava/org/omg/DynamicAny/NameValuePairHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_NameValuePairHelper__ +#define __org_omg_DynamicAny_NameValuePairHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameValuePair; + class NameValuePairHelper; + } + } + } +} + +class org::omg::DynamicAny::NameValuePairHelper : public ::java::lang::Object +{ + +public: + NameValuePairHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::DynamicAny::NameValuePair *); + static ::org::omg::DynamicAny::NameValuePair * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::DynamicAny::NameValuePair * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::DynamicAny::NameValuePair *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_NameValuePairHelper__ diff --git a/libjava/org/omg/DynamicAny/NameValuePairSeqHelper.h b/libjava/org/omg/DynamicAny/NameValuePairSeqHelper.h new file mode 100644 index 00000000000..fa1d8f336e6 --- /dev/null +++ b/libjava/org/omg/DynamicAny/NameValuePairSeqHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny_NameValuePairSeqHelper__ +#define __org_omg_DynamicAny_NameValuePairSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace DynamicAny + { + class NameValuePair; + class NameValuePairSeqHelper; + } + } + } +} + +class org::omg::DynamicAny::NameValuePairSeqHelper : public ::java::lang::Object +{ + +public: + NameValuePairSeqHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::DynamicAny::NameValuePair * > *); + static JArray< ::org::omg::DynamicAny::NameValuePair * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static JArray< ::org::omg::DynamicAny::NameValuePair * > * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::DynamicAny::NameValuePair * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny_NameValuePairSeqHelper__ diff --git a/libjava/org/omg/DynamicAny/_DynAnyFactoryStub.h b/libjava/org/omg/DynamicAny/_DynAnyFactoryStub.h new file mode 100644 index 00000000000..ca5e2363a06 --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynAnyFactoryStub.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynAnyFactoryStub__ +#define __org_omg_DynamicAny__DynAnyFactoryStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class _DynAnyFactoryStub; + } + } + } +} + +class org::omg::DynamicAny::_DynAnyFactoryStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynAnyFactoryStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any(::org::omg::CORBA::Any *); + virtual ::org::omg::DynamicAny::DynAny * create_dyn_any_from_type_code(::org::omg::CORBA::TypeCode *); +private: + static const jlong serialVersionUID = -6575269659020082310LL; +public: + static ::java::lang::Class * _opsClass; +public: // actually package-private + static ::java::lang::String * NOT_APPLICABLE; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynAnyFactoryStub__ diff --git a/libjava/org/omg/DynamicAny/_DynAnyStub.h b/libjava/org/omg/DynamicAny/_DynAnyStub.h new file mode 100644 index 00000000000..bd4ba819ba8 --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynAnyStub.h @@ -0,0 +1,99 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynAnyStub__ +#define __org_omg_DynamicAny__DynAnyStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class _DynAnyStub; + } + } + } +} + +class org::omg::DynamicAny::_DynAnyStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynAnyStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = -6521892777941121597LL; +public: + static ::java::lang::Class * _opsClass; +public: // actually package-private + static ::java::lang::String * NOT_APPLICABLE; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynAnyStub__ diff --git a/libjava/org/omg/DynamicAny/_DynArrayStub.h b/libjava/org/omg/DynamicAny/_DynArrayStub.h new file mode 100644 index 00000000000..a9723ed5ca6 --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynArrayStub.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynArrayStub__ +#define __org_omg_DynamicAny__DynArrayStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class _DynArrayStub; + } + } + } +} + +class org::omg::DynamicAny::_DynArrayStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynArrayStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual JArray< ::org::omg::CORBA::Any * > * get_elements(); + virtual JArray< ::org::omg::DynamicAny::DynAny * > * get_elements_as_dyn_any(); + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *); + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = -6302474930370950228LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynArrayStub__ diff --git a/libjava/org/omg/DynamicAny/_DynEnumStub.h b/libjava/org/omg/DynamicAny/_DynEnumStub.h new file mode 100644 index 00000000000..6a4adf1aa87 --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynEnumStub.h @@ -0,0 +1,100 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynEnumStub__ +#define __org_omg_DynamicAny__DynEnumStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class _DynEnumStub; + } + } + } +} + +class org::omg::DynamicAny::_DynEnumStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynEnumStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::java::lang::String * get_as_string(); + virtual jint get_as_ulong(); + virtual void set_as_string(::java::lang::String *); + virtual void set_as_ulong(jint); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = 696844314172031949LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynEnumStub__ diff --git a/libjava/org/omg/DynamicAny/_DynFixedStub.h b/libjava/org/omg/DynamicAny/_DynFixedStub.h new file mode 100644 index 00000000000..f6496f2a6c0 --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynFixedStub.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynFixedStub__ +#define __org_omg_DynamicAny__DynFixedStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class _DynFixedStub; + } + } + } +} + +class org::omg::DynamicAny::_DynFixedStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynFixedStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::java::lang::String * get_value(); + virtual jboolean set_value(::java::lang::String *); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = -1932029532964417188LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynFixedStub__ diff --git a/libjava/org/omg/DynamicAny/_DynSequenceStub.h b/libjava/org/omg/DynamicAny/_DynSequenceStub.h new file mode 100644 index 00000000000..69c48736790 --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynSequenceStub.h @@ -0,0 +1,102 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynSequenceStub__ +#define __org_omg_DynamicAny__DynSequenceStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class _DynSequenceStub; + } + } + } +} + +class org::omg::DynamicAny::_DynSequenceStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynSequenceStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual JArray< ::org::omg::CORBA::Any * > * get_elements(); + virtual JArray< ::org::omg::DynamicAny::DynAny * > * get_elements_as_dyn_any(); + virtual void set_elements(JArray< ::org::omg::CORBA::Any * > *); + virtual void set_elements_as_dyn_any(JArray< ::org::omg::DynamicAny::DynAny * > *); + virtual jint get_length(); + virtual void set_length(jint); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = 7191437435669107554LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynSequenceStub__ diff --git a/libjava/org/omg/DynamicAny/_DynStructStub.h b/libjava/org/omg/DynamicAny/_DynStructStub.h new file mode 100644 index 00000000000..cabaa9af35a --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynStructStub.h @@ -0,0 +1,105 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynStructStub__ +#define __org_omg_DynamicAny__DynStructStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class NameDynAnyPair; + class NameValuePair; + class _DynStructStub; + } + } + } +} + +class org::omg::DynamicAny::_DynStructStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynStructStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::TCKind * current_member_kind(); + virtual ::java::lang::String * current_member_name(); + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members(); + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any(); + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *); + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = -8415786200783826656LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynStructStub__ diff --git a/libjava/org/omg/DynamicAny/_DynUnionStub.h b/libjava/org/omg/DynamicAny/_DynUnionStub.h new file mode 100644 index 00000000000..23cacbd138e --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynUnionStub.h @@ -0,0 +1,106 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynUnionStub__ +#define __org_omg_DynamicAny__DynUnionStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class _DynUnionStub; + } + } + } +} + +class org::omg::DynamicAny::_DynUnionStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynUnionStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::DynamicAny::DynAny * member(); + virtual ::org::omg::CORBA::TCKind * discriminator_kind(); + virtual ::org::omg::DynamicAny::DynAny * get_discriminator(); + virtual jboolean has_no_active_member(); + virtual ::org::omg::CORBA::TCKind * member_kind(); + virtual ::java::lang::String * member_name(); + virtual void set_discriminator(::org::omg::DynamicAny::DynAny *); + virtual void set_to_default_member(); + virtual void set_to_no_active_member(); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = -8921031953572009897LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynUnionStub__ diff --git a/libjava/org/omg/DynamicAny/_DynValueStub.h b/libjava/org/omg/DynamicAny/_DynValueStub.h new file mode 100644 index 00000000000..7a8ecf92465 --- /dev/null +++ b/libjava/org/omg/DynamicAny/_DynValueStub.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_DynamicAny__DynValueStub__ +#define __org_omg_DynamicAny__DynValueStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TCKind; + class TypeCode; + } + namespace DynamicAny + { + class DynAny; + class NameDynAnyPair; + class NameValuePair; + class _DynValueStub; + } + } + } +} + +class org::omg::DynamicAny::_DynValueStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _DynValueStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::CORBA::TCKind * current_member_kind(); + virtual ::java::lang::String * current_member_name(); + virtual JArray< ::org::omg::DynamicAny::NameValuePair * > * get_members(); + virtual JArray< ::org::omg::DynamicAny::NameDynAnyPair * > * get_members_as_dyn_any(); + virtual void set_members(JArray< ::org::omg::DynamicAny::NameValuePair * > *); + virtual void set_members_as_dyn_any(JArray< ::org::omg::DynamicAny::NameDynAnyPair * > *); + virtual jboolean is_null(); + virtual void set_to_null(); + virtual void set_to_value(); + virtual ::org::omg::CORBA::TypeCode * type(); + virtual jboolean next(); + virtual void destroy(); + virtual ::org::omg::DynamicAny::DynAny * copy(); + virtual void rewind(); + virtual void assign(::org::omg::DynamicAny::DynAny *); + virtual jint component_count(); + virtual ::org::omg::DynamicAny::DynAny * current_component(); + virtual jboolean equal(::org::omg::DynamicAny::DynAny *); + virtual void from_any(::org::omg::CORBA::Any *); + virtual ::org::omg::CORBA::Any * get_any(); + virtual jboolean get_boolean(); + virtual jchar get_char(); + virtual jdouble get_double(); + virtual ::org::omg::DynamicAny::DynAny * get_dyn_any(); + virtual jfloat get_float(); + virtual jint get_long(); + virtual jlong get_longlong(); + virtual jbyte get_octet(); + virtual ::org::omg::CORBA::Object * get_reference(); + virtual jshort get_short(); + virtual ::java::lang::String * get_string(); + virtual ::org::omg::CORBA::TypeCode * get_typecode(); + virtual jint get_ulong(); + virtual jlong get_ulonglong(); + virtual jshort get_ushort(); + virtual ::java::io::Serializable * get_val(); + virtual jchar get_wchar(); + virtual ::java::lang::String * get_wstring(); + virtual void insert_any(::org::omg::CORBA::Any *); + virtual void insert_boolean(jboolean); + virtual void insert_char(jchar); + virtual void insert_double(jdouble); + virtual void insert_dyn_any(::org::omg::DynamicAny::DynAny *); + virtual void insert_float(jfloat); + virtual void insert_long(jint); + virtual void insert_longlong(jlong); + virtual void insert_octet(jbyte); + virtual void insert_reference(::org::omg::CORBA::Object *); + virtual void insert_short(jshort); + virtual void insert_string(::java::lang::String *); + virtual void insert_typecode(::org::omg::CORBA::TypeCode *); + virtual void insert_ulong(jint); + virtual void insert_ulonglong(jlong); + virtual void insert_ushort(jshort); + virtual void insert_val(::java::io::Serializable *); + virtual void insert_wchar(jchar); + virtual void insert_wstring(::java::lang::String *); + virtual jboolean seek(jint); + virtual ::org::omg::CORBA::Any * to_any(); +private: + static const jlong serialVersionUID = 5815313794012360824LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_DynamicAny__DynValueStub__ diff --git a/libjava/org/omg/IOP/CodeSets.h b/libjava/org/omg/IOP/CodeSets.h new file mode 100644 index 00000000000..c93ffaa6cd1 --- /dev/null +++ b/libjava/org/omg/IOP/CodeSets.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodeSets__ +#define __org_omg_IOP_CodeSets__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class CodeSets; + } + } + } +} + +class org::omg::IOP::CodeSets : public ::java::lang::Object +{ + +public: + static const jint value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_CodeSets__ diff --git a/libjava/org/omg/IOP/Codec.h b/libjava/org/omg/IOP/Codec.h new file mode 100644 index 00000000000..f25bacb6dcd --- /dev/null +++ b/libjava/org/omg/IOP/Codec.h @@ -0,0 +1,65 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_Codec__ +#define __org_omg_IOP_Codec__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace IOP + { + class Codec; + } + } + } +} + +class org::omg::IOP::Codec : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * encode(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * decode(JArray< jbyte > *) = 0; + virtual JArray< jbyte > * encode_value(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * decode_value(JArray< jbyte > *, ::org::omg::CORBA::TypeCode *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_Codec__ diff --git a/libjava/org/omg/IOP/CodecFactory.h b/libjava/org/omg/IOP/CodecFactory.h new file mode 100644 index 00000000000..b5f0b4f9bc5 --- /dev/null +++ b/libjava/org/omg/IOP/CodecFactory.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecFactory__ +#define __org_omg_IOP_CodecFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace IOP + { + class Codec; + class CodecFactory; + class Encoding; + } + } + } +} + +class org::omg::IOP::CodecFactory : public ::java::lang::Object +{ + +public: + virtual ::org::omg::IOP::Codec * create_codec(::org::omg::IOP::Encoding *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_CodecFactory__ diff --git a/libjava/org/omg/IOP/CodecFactoryHelper.h b/libjava/org/omg/IOP/CodecFactoryHelper.h new file mode 100644 index 00000000000..638907def12 --- /dev/null +++ b/libjava/org/omg/IOP/CodecFactoryHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecFactoryHelper__ +#define __org_omg_IOP_CodecFactoryHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class CodecFactory; + class CodecFactoryHelper; + } + } + } +} + +class org::omg::IOP::CodecFactoryHelper : public ::java::lang::Object +{ + +public: + CodecFactoryHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::CodecFactory *); + static ::org::omg::IOP::CodecFactory * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::CodecFactory * narrow(::org::omg::CORBA::Object *); + static ::org::omg::IOP::CodecFactory * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::IOP::CodecFactory * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::CodecFactory *); +private: + static ::java::lang::String * UNSUPPORTED; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecFactoryHelper__ diff --git a/libjava/org/omg/IOP/CodecFactoryOperations.h b/libjava/org/omg/IOP/CodecFactoryOperations.h new file mode 100644 index 00000000000..7691f738731 --- /dev/null +++ b/libjava/org/omg/IOP/CodecFactoryOperations.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecFactoryOperations__ +#define __org_omg_IOP_CodecFactoryOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class Codec; + class CodecFactoryOperations; + class Encoding; + } + } + } +} + +class org::omg::IOP::CodecFactoryOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::IOP::Codec * create_codec(::org::omg::IOP::Encoding *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_CodecFactoryOperations__ diff --git a/libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.h b/libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.h new file mode 100644 index 00000000000..6d95f21a109 --- /dev/null +++ b/libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncoding.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecFactoryPackage_UnknownEncoding__ +#define __org_omg_IOP_CodecFactoryPackage_UnknownEncoding__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + namespace CodecFactoryPackage + { + class UnknownEncoding; + } + } + } + } +} + +class org::omg::IOP::CodecFactoryPackage::UnknownEncoding : public ::org::omg::CORBA::UserException +{ + +public: + UnknownEncoding(); + UnknownEncoding(::java::lang::String *); +private: + static const jlong serialVersionUID = 1613955753212049966LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecFactoryPackage_UnknownEncoding__ diff --git a/libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.h b/libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.h new file mode 100644 index 00000000000..3cc0ad3ebf7 --- /dev/null +++ b/libjava/org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecFactoryPackage_UnknownEncodingHelper__ +#define __org_omg_IOP_CodecFactoryPackage_UnknownEncodingHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + namespace CodecFactoryPackage + { + class UnknownEncoding; + class UnknownEncodingHelper; + } + } + } + } +} + +class org::omg::IOP::CodecFactoryPackage::UnknownEncodingHelper : public ::java::lang::Object +{ + +public: + UnknownEncodingHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::CodecFactoryPackage::UnknownEncoding *); + static ::org::omg::IOP::CodecFactoryPackage::UnknownEncoding * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::CodecFactoryPackage::UnknownEncoding * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::CodecFactoryPackage::UnknownEncoding *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecFactoryPackage_UnknownEncodingHelper__ diff --git a/libjava/org/omg/IOP/CodecOperations.h b/libjava/org/omg/IOP/CodecOperations.h new file mode 100644 index 00000000000..50ae2e6c865 --- /dev/null +++ b/libjava/org/omg/IOP/CodecOperations.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecOperations__ +#define __org_omg_IOP_CodecOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + } + namespace IOP + { + class CodecOperations; + } + } + } +} + +class org::omg::IOP::CodecOperations : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * encode(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * decode(JArray< jbyte > *) = 0; + virtual JArray< jbyte > * encode_value(::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Any * decode_value(JArray< jbyte > *, ::org::omg::CORBA::TypeCode *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_CodecOperations__ diff --git a/libjava/org/omg/IOP/CodecPackage/FormatMismatch.h b/libjava/org/omg/IOP/CodecPackage/FormatMismatch.h new file mode 100644 index 00000000000..4c007a67092 --- /dev/null +++ b/libjava/org/omg/IOP/CodecPackage/FormatMismatch.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecPackage_FormatMismatch__ +#define __org_omg_IOP_CodecPackage_FormatMismatch__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + namespace CodecPackage + { + class FormatMismatch; + } + } + } + } +} + +class org::omg::IOP::CodecPackage::FormatMismatch : public ::org::omg::CORBA::UserException +{ + +public: + FormatMismatch(); + FormatMismatch(::java::lang::String *); +private: + static const jlong serialVersionUID = 5818121867618342320LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecPackage_FormatMismatch__ diff --git a/libjava/org/omg/IOP/CodecPackage/FormatMismatchHelper.h b/libjava/org/omg/IOP/CodecPackage/FormatMismatchHelper.h new file mode 100644 index 00000000000..2c46bc3d306 --- /dev/null +++ b/libjava/org/omg/IOP/CodecPackage/FormatMismatchHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecPackage_FormatMismatchHelper__ +#define __org_omg_IOP_CodecPackage_FormatMismatchHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + namespace CodecPackage + { + class FormatMismatch; + class FormatMismatchHelper; + } + } + } + } +} + +class org::omg::IOP::CodecPackage::FormatMismatchHelper : public ::java::lang::Object +{ + +public: + FormatMismatchHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::CodecPackage::FormatMismatch *); + static ::org::omg::IOP::CodecPackage::FormatMismatch * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::CodecPackage::FormatMismatch * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::CodecPackage::FormatMismatch *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecPackage_FormatMismatchHelper__ diff --git a/libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.h b/libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.h new file mode 100644 index 00000000000..b5e3ff08b14 --- /dev/null +++ b/libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncoding.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecPackage_InvalidTypeForEncoding__ +#define __org_omg_IOP_CodecPackage_InvalidTypeForEncoding__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + namespace CodecPackage + { + class InvalidTypeForEncoding; + } + } + } + } +} + +class org::omg::IOP::CodecPackage::InvalidTypeForEncoding : public ::org::omg::CORBA::UserException +{ + +public: + InvalidTypeForEncoding(); + InvalidTypeForEncoding(::java::lang::String *); +private: + static const jlong serialVersionUID = 7951932210684443970LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecPackage_InvalidTypeForEncoding__ diff --git a/libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.h b/libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.h new file mode 100644 index 00000000000..f28ee1ce9e0 --- /dev/null +++ b/libjava/org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecPackage_InvalidTypeForEncodingHelper__ +#define __org_omg_IOP_CodecPackage_InvalidTypeForEncodingHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + namespace CodecPackage + { + class InvalidTypeForEncoding; + class InvalidTypeForEncodingHelper; + } + } + } + } +} + +class org::omg::IOP::CodecPackage::InvalidTypeForEncodingHelper : public ::java::lang::Object +{ + +public: + InvalidTypeForEncodingHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::CodecPackage::InvalidTypeForEncoding *); + static ::org::omg::IOP::CodecPackage::InvalidTypeForEncoding * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::CodecPackage::InvalidTypeForEncoding * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::CodecPackage::InvalidTypeForEncoding *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecPackage_InvalidTypeForEncodingHelper__ diff --git a/libjava/org/omg/IOP/CodecPackage/TypeMismatch.h b/libjava/org/omg/IOP/CodecPackage/TypeMismatch.h new file mode 100644 index 00000000000..ca710546681 --- /dev/null +++ b/libjava/org/omg/IOP/CodecPackage/TypeMismatch.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecPackage_TypeMismatch__ +#define __org_omg_IOP_CodecPackage_TypeMismatch__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + namespace CodecPackage + { + class TypeMismatch; + } + } + } + } +} + +class org::omg::IOP::CodecPackage::TypeMismatch : public ::org::omg::CORBA::UserException +{ + +public: + TypeMismatch(); + TypeMismatch(::java::lang::String *); +private: + static const jlong serialVersionUID = -3544092104480759035LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecPackage_TypeMismatch__ diff --git a/libjava/org/omg/IOP/CodecPackage/TypeMismatchHelper.h b/libjava/org/omg/IOP/CodecPackage/TypeMismatchHelper.h new file mode 100644 index 00000000000..97d7f927a7d --- /dev/null +++ b/libjava/org/omg/IOP/CodecPackage/TypeMismatchHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_CodecPackage_TypeMismatchHelper__ +#define __org_omg_IOP_CodecPackage_TypeMismatchHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + namespace CodecPackage + { + class TypeMismatch; + class TypeMismatchHelper; + } + } + } + } +} + +class org::omg::IOP::CodecPackage::TypeMismatchHelper : public ::java::lang::Object +{ + +public: + TypeMismatchHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::CodecPackage::TypeMismatch *); + static ::org::omg::IOP::CodecPackage::TypeMismatch * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::CodecPackage::TypeMismatch * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::CodecPackage::TypeMismatch *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_CodecPackage_TypeMismatchHelper__ diff --git a/libjava/org/omg/IOP/ComponentIdHelper.h b/libjava/org/omg/IOP/ComponentIdHelper.h new file mode 100644 index 00000000000..d2bb02c706f --- /dev/null +++ b/libjava/org/omg/IOP/ComponentIdHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ComponentIdHelper__ +#define __org_omg_IOP_ComponentIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class ComponentIdHelper; + } + } + } +} + +class org::omg::IOP::ComponentIdHelper : public ::java::lang::Object +{ + +public: + ComponentIdHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, jint); + static jint extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static jint read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, jint); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ComponentIdHelper__ diff --git a/libjava/org/omg/IOP/ENCODING_CDR_ENCAPS.h b/libjava/org/omg/IOP/ENCODING_CDR_ENCAPS.h new file mode 100644 index 00000000000..eef1631809c --- /dev/null +++ b/libjava/org/omg/IOP/ENCODING_CDR_ENCAPS.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ENCODING_CDR_ENCAPS__ +#define __org_omg_IOP_ENCODING_CDR_ENCAPS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class ENCODING_CDR_ENCAPS; + } + } + } +} + +class org::omg::IOP::ENCODING_CDR_ENCAPS : public ::java::lang::Object +{ + +public: + static const jshort value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_ENCODING_CDR_ENCAPS__ diff --git a/libjava/org/omg/IOP/Encoding.h b/libjava/org/omg/IOP/Encoding.h new file mode 100644 index 00000000000..787bec5d5e9 --- /dev/null +++ b/libjava/org/omg/IOP/Encoding.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_Encoding__ +#define __org_omg_IOP_Encoding__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class Encoding; + } + } + } +} + +class org::omg::IOP::Encoding : public ::java::lang::Object +{ + +public: + Encoding(); + Encoding(jshort, jbyte, jbyte); +private: + static const jlong serialVersionUID = -1489257079856841992LL; +public: + jshort __attribute__((aligned(__alignof__( ::java::lang::Object)))) format; + jbyte major_version; + jbyte minor_version; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_Encoding__ diff --git a/libjava/org/omg/IOP/ExceptionDetailMessage.h b/libjava/org/omg/IOP/ExceptionDetailMessage.h new file mode 100644 index 00000000000..20506f2871a --- /dev/null +++ b/libjava/org/omg/IOP/ExceptionDetailMessage.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ExceptionDetailMessage__ +#define __org_omg_IOP_ExceptionDetailMessage__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class ExceptionDetailMessage; + } + } + } +} + +class org::omg::IOP::ExceptionDetailMessage : public ::java::lang::Object +{ + +public: + static const jint value = 14; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_ExceptionDetailMessage__ diff --git a/libjava/org/omg/IOP/IOR.h b/libjava/org/omg/IOP/IOR.h new file mode 100644 index 00000000000..c48e01a8068 --- /dev/null +++ b/libjava/org/omg/IOP/IOR.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_IOR__ +#define __org_omg_IOP_IOR__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class IOR; + class TaggedProfile; + } + } + } +} + +class org::omg::IOP::IOR : public ::java::lang::Object +{ + +public: + IOR(); + IOR(::java::lang::String *, JArray< ::org::omg::IOP::TaggedProfile * > *); +private: + static const jlong serialVersionUID = 1901439890645554948LL; +public: + JArray< ::org::omg::IOP::TaggedProfile * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) profiles; + ::java::lang::String * type_id; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_IOR__ diff --git a/libjava/org/omg/IOP/IORHelper.h b/libjava/org/omg/IOP/IORHelper.h new file mode 100644 index 00000000000..c74b4658e8c --- /dev/null +++ b/libjava/org/omg/IOP/IORHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_IORHelper__ +#define __org_omg_IOP_IORHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class IOR; + class IORHelper; + } + } + } +} + +class org::omg::IOP::IORHelper : public ::java::lang::Object +{ + +public: + IORHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::IOR *); + static ::org::omg::IOP::IOR * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::IOR * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::IOR *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_IORHelper__ diff --git a/libjava/org/omg/IOP/IORHolder.h b/libjava/org/omg/IOP/IORHolder.h new file mode 100644 index 00000000000..54bf586a669 --- /dev/null +++ b/libjava/org/omg/IOP/IORHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_IORHolder__ +#define __org_omg_IOP_IORHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class IOR; + class IORHolder; + } + } + } +} + +class org::omg::IOP::IORHolder : public ::java::lang::Object +{ + +public: + IORHolder(); + IORHolder(::org::omg::IOP::IOR *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::IOP::IOR * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_IORHolder__ diff --git a/libjava/org/omg/IOP/MultipleComponentProfileHelper.h b/libjava/org/omg/IOP/MultipleComponentProfileHelper.h new file mode 100644 index 00000000000..ca181453ff0 --- /dev/null +++ b/libjava/org/omg/IOP/MultipleComponentProfileHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_MultipleComponentProfileHelper__ +#define __org_omg_IOP_MultipleComponentProfileHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class MultipleComponentProfileHelper; + class TaggedComponent; + } + } + } +} + +class org::omg::IOP::MultipleComponentProfileHelper : public ::java::lang::Object +{ + +public: + MultipleComponentProfileHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::IOP::TaggedComponent * > *); + static JArray< ::org::omg::IOP::TaggedComponent * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static JArray< ::org::omg::IOP::TaggedComponent * > * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::IOP::TaggedComponent * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_MultipleComponentProfileHelper__ diff --git a/libjava/org/omg/IOP/MultipleComponentProfileHolder.h b/libjava/org/omg/IOP/MultipleComponentProfileHolder.h new file mode 100644 index 00000000000..1d721beec8c --- /dev/null +++ b/libjava/org/omg/IOP/MultipleComponentProfileHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_MultipleComponentProfileHolder__ +#define __org_omg_IOP_MultipleComponentProfileHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class MultipleComponentProfileHolder; + class TaggedComponent; + } + } + } +} + +class org::omg::IOP::MultipleComponentProfileHolder : public ::java::lang::Object +{ + +public: + MultipleComponentProfileHolder(); + MultipleComponentProfileHolder(JArray< ::org::omg::IOP::TaggedComponent * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + JArray< ::org::omg::IOP::TaggedComponent * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_MultipleComponentProfileHolder__ diff --git a/libjava/org/omg/IOP/ProfileIdHelper.h b/libjava/org/omg/IOP/ProfileIdHelper.h new file mode 100644 index 00000000000..28c7aae9ab5 --- /dev/null +++ b/libjava/org/omg/IOP/ProfileIdHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ProfileIdHelper__ +#define __org_omg_IOP_ProfileIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class ProfileIdHelper; + } + } + } +} + +class org::omg::IOP::ProfileIdHelper : public ::java::lang::Object +{ + +public: + ProfileIdHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, jint); + static jint extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static jint read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, jint); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ProfileIdHelper__ diff --git a/libjava/org/omg/IOP/RMICustomMaxStreamFormat.h b/libjava/org/omg/IOP/RMICustomMaxStreamFormat.h new file mode 100644 index 00000000000..24f719dbbde --- /dev/null +++ b/libjava/org/omg/IOP/RMICustomMaxStreamFormat.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_RMICustomMaxStreamFormat__ +#define __org_omg_IOP_RMICustomMaxStreamFormat__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class RMICustomMaxStreamFormat; + } + } + } +} + +class org::omg::IOP::RMICustomMaxStreamFormat : public ::java::lang::Object +{ + +public: + static const jint value = 17; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_RMICustomMaxStreamFormat__ diff --git a/libjava/org/omg/IOP/ServiceContext.h b/libjava/org/omg/IOP/ServiceContext.h new file mode 100644 index 00000000000..37773162a34 --- /dev/null +++ b/libjava/org/omg/IOP/ServiceContext.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ServiceContext__ +#define __org_omg_IOP_ServiceContext__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class ServiceContext; + } + } + } +} + +class org::omg::IOP::ServiceContext : public ::java::lang::Object +{ + +public: + ServiceContext(); + ServiceContext(jint, JArray< jbyte > *); +private: + static const jlong serialVersionUID = -2232391417465261379LL; +public: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) context_id; + JArray< jbyte > * context_data; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ServiceContext__ diff --git a/libjava/org/omg/IOP/ServiceContextHelper.h b/libjava/org/omg/IOP/ServiceContextHelper.h new file mode 100644 index 00000000000..368c1c12838 --- /dev/null +++ b/libjava/org/omg/IOP/ServiceContextHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ServiceContextHelper__ +#define __org_omg_IOP_ServiceContextHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class ServiceContext; + class ServiceContextHelper; + } + } + } +} + +class org::omg::IOP::ServiceContextHelper : public ::java::lang::Object +{ + +public: + ServiceContextHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::ServiceContext *); + static ::org::omg::IOP::ServiceContext * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::ServiceContext * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::ServiceContext *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ServiceContextHelper__ diff --git a/libjava/org/omg/IOP/ServiceContextHolder.h b/libjava/org/omg/IOP/ServiceContextHolder.h new file mode 100644 index 00000000000..2448be547d6 --- /dev/null +++ b/libjava/org/omg/IOP/ServiceContextHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ServiceContextHolder__ +#define __org_omg_IOP_ServiceContextHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class ServiceContext; + class ServiceContextHolder; + } + } + } +} + +class org::omg::IOP::ServiceContextHolder : public ::java::lang::Object +{ + +public: + ServiceContextHolder(); + ServiceContextHolder(::org::omg::IOP::ServiceContext *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::IOP::ServiceContext * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ServiceContextHolder__ diff --git a/libjava/org/omg/IOP/ServiceContextListHelper.h b/libjava/org/omg/IOP/ServiceContextListHelper.h new file mode 100644 index 00000000000..3450d515af2 --- /dev/null +++ b/libjava/org/omg/IOP/ServiceContextListHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ServiceContextListHelper__ +#define __org_omg_IOP_ServiceContextListHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class ServiceContext; + class ServiceContextListHelper; + } + } + } +} + +class org::omg::IOP::ServiceContextListHelper : public ::java::lang::Object +{ + +public: + ServiceContextListHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::IOP::ServiceContext * > *); + static JArray< ::org::omg::IOP::ServiceContext * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static JArray< ::org::omg::IOP::ServiceContext * > * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::IOP::ServiceContext * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ServiceContextListHelper__ diff --git a/libjava/org/omg/IOP/ServiceContextListHolder.h b/libjava/org/omg/IOP/ServiceContextListHolder.h new file mode 100644 index 00000000000..e1d406e21a1 --- /dev/null +++ b/libjava/org/omg/IOP/ServiceContextListHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ServiceContextListHolder__ +#define __org_omg_IOP_ServiceContextListHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class ServiceContext; + class ServiceContextListHolder; + } + } + } +} + +class org::omg::IOP::ServiceContextListHolder : public ::java::lang::Object +{ + +public: + ServiceContextListHolder(); + ServiceContextListHolder(JArray< ::org::omg::IOP::ServiceContext * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + JArray< ::org::omg::IOP::ServiceContext * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ServiceContextListHolder__ diff --git a/libjava/org/omg/IOP/ServiceIdHelper.h b/libjava/org/omg/IOP/ServiceIdHelper.h new file mode 100644 index 00000000000..a8a72843912 --- /dev/null +++ b/libjava/org/omg/IOP/ServiceIdHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_ServiceIdHelper__ +#define __org_omg_IOP_ServiceIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class ServiceIdHelper; + } + } + } +} + +class org::omg::IOP::ServiceIdHelper : public ::java::lang::Object +{ + +public: + ServiceIdHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, jint); + static jint extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static jint read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, jint); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_ServiceIdHelper__ diff --git a/libjava/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.h b/libjava/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.h new file mode 100644 index 00000000000..4afab11d11d --- /dev/null +++ b/libjava/org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_ALTERNATE_IIOP_ADDRESS__ +#define __org_omg_IOP_TAG_ALTERNATE_IIOP_ADDRESS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_ALTERNATE_IIOP_ADDRESS; + } + } + } +} + +class org::omg::IOP::TAG_ALTERNATE_IIOP_ADDRESS : public ::java::lang::Object +{ + +public: + static const jint value = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_ALTERNATE_IIOP_ADDRESS__ diff --git a/libjava/org/omg/IOP/TAG_CODE_SETS.h b/libjava/org/omg/IOP/TAG_CODE_SETS.h new file mode 100644 index 00000000000..aae4776545b --- /dev/null +++ b/libjava/org/omg/IOP/TAG_CODE_SETS.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_CODE_SETS__ +#define __org_omg_IOP_TAG_CODE_SETS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_CODE_SETS; + } + } + } +} + +class org::omg::IOP::TAG_CODE_SETS : public ::java::lang::Object +{ + +public: + static const jint value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_CODE_SETS__ diff --git a/libjava/org/omg/IOP/TAG_INTERNET_IOP.h b/libjava/org/omg/IOP/TAG_INTERNET_IOP.h new file mode 100644 index 00000000000..cba27286684 --- /dev/null +++ b/libjava/org/omg/IOP/TAG_INTERNET_IOP.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_INTERNET_IOP__ +#define __org_omg_IOP_TAG_INTERNET_IOP__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_INTERNET_IOP; + } + } + } +} + +class org::omg::IOP::TAG_INTERNET_IOP : public ::java::lang::Object +{ + +public: + static const jint value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_INTERNET_IOP__ diff --git a/libjava/org/omg/IOP/TAG_JAVA_CODEBASE.h b/libjava/org/omg/IOP/TAG_JAVA_CODEBASE.h new file mode 100644 index 00000000000..0dea9b50631 --- /dev/null +++ b/libjava/org/omg/IOP/TAG_JAVA_CODEBASE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_JAVA_CODEBASE__ +#define __org_omg_IOP_TAG_JAVA_CODEBASE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_JAVA_CODEBASE; + } + } + } +} + +class org::omg::IOP::TAG_JAVA_CODEBASE : public ::java::lang::Object +{ + +public: + static const jint value = 25; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_JAVA_CODEBASE__ diff --git a/libjava/org/omg/IOP/TAG_MULTIPLE_COMPONENTS.h b/libjava/org/omg/IOP/TAG_MULTIPLE_COMPONENTS.h new file mode 100644 index 00000000000..1778342a94f --- /dev/null +++ b/libjava/org/omg/IOP/TAG_MULTIPLE_COMPONENTS.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_MULTIPLE_COMPONENTS__ +#define __org_omg_IOP_TAG_MULTIPLE_COMPONENTS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_MULTIPLE_COMPONENTS; + } + } + } +} + +class org::omg::IOP::TAG_MULTIPLE_COMPONENTS : public ::java::lang::Object +{ + +public: + static const jint value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_MULTIPLE_COMPONENTS__ diff --git a/libjava/org/omg/IOP/TAG_ORB_TYPE.h b/libjava/org/omg/IOP/TAG_ORB_TYPE.h new file mode 100644 index 00000000000..154f161d133 --- /dev/null +++ b/libjava/org/omg/IOP/TAG_ORB_TYPE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_ORB_TYPE__ +#define __org_omg_IOP_TAG_ORB_TYPE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_ORB_TYPE; + } + } + } +} + +class org::omg::IOP::TAG_ORB_TYPE : public ::java::lang::Object +{ + +public: + static const jint value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_ORB_TYPE__ diff --git a/libjava/org/omg/IOP/TAG_POLICIES.h b/libjava/org/omg/IOP/TAG_POLICIES.h new file mode 100644 index 00000000000..27d7a8f0164 --- /dev/null +++ b/libjava/org/omg/IOP/TAG_POLICIES.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_POLICIES__ +#define __org_omg_IOP_TAG_POLICIES__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_POLICIES; + } + } + } +} + +class org::omg::IOP::TAG_POLICIES : public ::java::lang::Object +{ + +public: + static const jint value = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_POLICIES__ diff --git a/libjava/org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.h b/libjava/org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.h new file mode 100644 index 00000000000..d4b8c92bd4b --- /dev/null +++ b/libjava/org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TAG_RMI_CUSTOM_MAX_STREAM_FORMAT__ +#define __org_omg_IOP_TAG_RMI_CUSTOM_MAX_STREAM_FORMAT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TAG_RMI_CUSTOM_MAX_STREAM_FORMAT; + } + } + } +} + +class org::omg::IOP::TAG_RMI_CUSTOM_MAX_STREAM_FORMAT : public ::java::lang::Object +{ + +public: + static const jint value = 38; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TAG_RMI_CUSTOM_MAX_STREAM_FORMAT__ diff --git a/libjava/org/omg/IOP/TaggedComponent.h b/libjava/org/omg/IOP/TaggedComponent.h new file mode 100644 index 00000000000..33890b784ce --- /dev/null +++ b/libjava/org/omg/IOP/TaggedComponent.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TaggedComponent__ +#define __org_omg_IOP_TaggedComponent__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TaggedComponent; + } + } + } +} + +class org::omg::IOP::TaggedComponent : public ::java::lang::Object +{ + +public: + TaggedComponent(); + TaggedComponent(jint, JArray< jbyte > *); +private: + static const jlong serialVersionUID = -2084695346022761692LL; +public: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) tag; + JArray< jbyte > * component_data; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_TaggedComponent__ diff --git a/libjava/org/omg/IOP/TaggedComponentHelper.h b/libjava/org/omg/IOP/TaggedComponentHelper.h new file mode 100644 index 00000000000..f3484297f6c --- /dev/null +++ b/libjava/org/omg/IOP/TaggedComponentHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TaggedComponentHelper__ +#define __org_omg_IOP_TaggedComponentHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class TaggedComponent; + class TaggedComponentHelper; + } + } + } +} + +class org::omg::IOP::TaggedComponentHelper : public ::java::lang::Object +{ + +public: + TaggedComponentHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::TaggedComponent *); + static ::org::omg::IOP::TaggedComponent * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::TaggedComponent * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::TaggedComponent *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_TaggedComponentHelper__ diff --git a/libjava/org/omg/IOP/TaggedComponentHolder.h b/libjava/org/omg/IOP/TaggedComponentHolder.h new file mode 100644 index 00000000000..03200802ce6 --- /dev/null +++ b/libjava/org/omg/IOP/TaggedComponentHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TaggedComponentHolder__ +#define __org_omg_IOP_TaggedComponentHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class TaggedComponent; + class TaggedComponentHolder; + } + } + } +} + +class org::omg::IOP::TaggedComponentHolder : public ::java::lang::Object +{ + +public: + TaggedComponentHolder(); + TaggedComponentHolder(::org::omg::IOP::TaggedComponent *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::IOP::TaggedComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_TaggedComponentHolder__ diff --git a/libjava/org/omg/IOP/TaggedProfile.h b/libjava/org/omg/IOP/TaggedProfile.h new file mode 100644 index 00000000000..55498f7c827 --- /dev/null +++ b/libjava/org/omg/IOP/TaggedProfile.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TaggedProfile__ +#define __org_omg_IOP_TaggedProfile__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TaggedProfile; + } + } + } +} + +class org::omg::IOP::TaggedProfile : public ::java::lang::Object +{ + +public: + TaggedProfile(); + TaggedProfile(jint, JArray< jbyte > *); +private: + static const jlong serialVersionUID = -461232684387903343LL; +public: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) tag; + JArray< jbyte > * profile_data; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_TaggedProfile__ diff --git a/libjava/org/omg/IOP/TaggedProfileHelper.h b/libjava/org/omg/IOP/TaggedProfileHelper.h new file mode 100644 index 00000000000..63b544e3375 --- /dev/null +++ b/libjava/org/omg/IOP/TaggedProfileHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TaggedProfileHelper__ +#define __org_omg_IOP_TaggedProfileHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class TaggedProfile; + class TaggedProfileHelper; + } + } + } +} + +class org::omg::IOP::TaggedProfileHelper : public ::java::lang::Object +{ + +public: + TaggedProfileHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::IOP::TaggedProfile *); + static ::org::omg::IOP::TaggedProfile * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::IOP::TaggedProfile * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::IOP::TaggedProfile *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_TaggedProfileHelper__ diff --git a/libjava/org/omg/IOP/TaggedProfileHolder.h b/libjava/org/omg/IOP/TaggedProfileHolder.h new file mode 100644 index 00000000000..b7eb950b4dd --- /dev/null +++ b/libjava/org/omg/IOP/TaggedProfileHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TaggedProfileHolder__ +#define __org_omg_IOP_TaggedProfileHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace IOP + { + class TaggedProfile; + class TaggedProfileHolder; + } + } + } +} + +class org::omg::IOP::TaggedProfileHolder : public ::java::lang::Object +{ + +public: + TaggedProfileHolder(); + TaggedProfileHolder(::org::omg::IOP::TaggedProfile *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::IOP::TaggedProfile * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_IOP_TaggedProfileHolder__ diff --git a/libjava/org/omg/IOP/TransactionService.h b/libjava/org/omg/IOP/TransactionService.h new file mode 100644 index 00000000000..a41a26e53dd --- /dev/null +++ b/libjava/org/omg/IOP/TransactionService.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_IOP_TransactionService__ +#define __org_omg_IOP_TransactionService__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace IOP + { + class TransactionService; + } + } + } +} + +class org::omg::IOP::TransactionService : public ::java::lang::Object +{ + +public: + static const jint value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_IOP_TransactionService__ diff --git a/libjava/org/omg/Messaging/SYNC_WITH_TRANSPORT.h b/libjava/org/omg/Messaging/SYNC_WITH_TRANSPORT.h new file mode 100644 index 00000000000..6fc2b4e782e --- /dev/null +++ b/libjava/org/omg/Messaging/SYNC_WITH_TRANSPORT.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_Messaging_SYNC_WITH_TRANSPORT__ +#define __org_omg_Messaging_SYNC_WITH_TRANSPORT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace Messaging + { + class SYNC_WITH_TRANSPORT; + } + } + } +} + +class org::omg::Messaging::SYNC_WITH_TRANSPORT : public ::java::lang::Object +{ + +public: + static const jshort value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_Messaging_SYNC_WITH_TRANSPORT__ diff --git a/libjava/org/omg/Messaging/SyncScopeHelper.h b/libjava/org/omg/Messaging/SyncScopeHelper.h new file mode 100644 index 00000000000..26e8347431d --- /dev/null +++ b/libjava/org/omg/Messaging/SyncScopeHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_Messaging_SyncScopeHelper__ +#define __org_omg_Messaging_SyncScopeHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace Messaging + { + class SyncScopeHelper; + } + } + } +} + +class org::omg::Messaging::SyncScopeHelper : public ::java::lang::Object +{ + +public: + SyncScopeHelper(); + static jshort extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, jshort); + static jshort read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, jshort); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_Messaging_SyncScopeHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ACTIVE.h b/libjava/org/omg/PortableInterceptor/ACTIVE.h new file mode 100644 index 00000000000..de14e9498f8 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ACTIVE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ACTIVE__ +#define __org_omg_PortableInterceptor_ACTIVE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class ACTIVE; + } + } + } +} + +class org::omg::PortableInterceptor::ACTIVE : public ::java::lang::Object +{ + +public: + static const jshort value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ACTIVE__ diff --git a/libjava/org/omg/PortableInterceptor/AdapterManagerIdHelper.h b/libjava/org/omg/PortableInterceptor/AdapterManagerIdHelper.h new file mode 100644 index 00000000000..aabc118e9ec --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/AdapterManagerIdHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_AdapterManagerIdHelper__ +#define __org_omg_PortableInterceptor_AdapterManagerIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class AdapterManagerIdHelper; + } + } + } +} + +class org::omg::PortableInterceptor::AdapterManagerIdHelper : public ::java::lang::Object +{ + +public: + AdapterManagerIdHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, jint); + static jint extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static jint read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, jint); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_AdapterManagerIdHelper__ diff --git a/libjava/org/omg/PortableInterceptor/AdapterNameHelper.h b/libjava/org/omg/PortableInterceptor/AdapterNameHelper.h new file mode 100644 index 00000000000..7f6552e38b6 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/AdapterNameHelper.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_AdapterNameHelper__ +#define __org_omg_PortableInterceptor_AdapterNameHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class AdapterNameHelper; + } + } + } +} + +class org::omg::PortableInterceptor::AdapterNameHelper : public ::java::lang::Object +{ + +public: + AdapterNameHelper(); + static JArray< ::java::lang::String * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::java::lang::String * > *); + static JArray< ::java::lang::String * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::java::lang::String * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_AdapterNameHelper__ diff --git a/libjava/org/omg/PortableInterceptor/AdapterStateHelper.h b/libjava/org/omg/PortableInterceptor/AdapterStateHelper.h new file mode 100644 index 00000000000..6606a806863 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/AdapterStateHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_AdapterStateHelper__ +#define __org_omg_PortableInterceptor_AdapterStateHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class AdapterStateHelper; + } + } + } +} + +class org::omg::PortableInterceptor::AdapterStateHelper : public ::java::lang::Object +{ + +public: + AdapterStateHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, jshort); + static jshort extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static jshort read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, jshort); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_AdapterStateHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ClientRequestInfo.h b/libjava/org/omg/PortableInterceptor/ClientRequestInfo.h new file mode 100644 index 00000000000..2285aabd7b6 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ClientRequestInfo.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ClientRequestInfo__ +#define __org_omg_PortableInterceptor_ClientRequestInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + class TaggedComponent; + class TaggedProfile; + } + namespace PortableInterceptor + { + class ClientRequestInfo; + } + } + } +} + +class org::omg::PortableInterceptor::ClientRequestInfo : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Object * target() = 0; + virtual ::org::omg::CORBA::Object * effective_target() = 0; + virtual ::org::omg::IOP::TaggedProfile * effective_profile() = 0; + virtual ::org::omg::IOP::TaggedComponent * get_effective_component(jint) = 0; + virtual JArray< ::org::omg::IOP::TaggedComponent * > * get_effective_components(jint) = 0; + virtual ::org::omg::CORBA::Policy * get_request_policy(jint) = 0; + virtual ::java::lang::String * received_exception_id() = 0; + virtual ::org::omg::CORBA::Any * received_exception() = 0; + virtual void add_request_service_context(::org::omg::IOP::ServiceContext *, jboolean) = 0; + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments() = 0; + virtual JArray< ::java::lang::String * > * contexts() = 0; + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions() = 0; + virtual ::org::omg::CORBA::Object * forward_reference() = 0; + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint) = 0; + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint) = 0; + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual JArray< ::java::lang::String * > * operation_context() = 0; + virtual ::java::lang::String * operation() = 0; + virtual jshort reply_status() = 0; + virtual jint request_id() = 0; + virtual jboolean response_expected() = 0; + virtual ::org::omg::CORBA::Any * result() = 0; + virtual jshort sync_scope() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ClientRequestInfo__ diff --git a/libjava/org/omg/PortableInterceptor/ClientRequestInfoOperations.h b/libjava/org/omg/PortableInterceptor/ClientRequestInfoOperations.h new file mode 100644 index 00000000000..af573b76eab --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ClientRequestInfoOperations.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ClientRequestInfoOperations__ +#define __org_omg_PortableInterceptor_ClientRequestInfoOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class Policy; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + class TaggedComponent; + class TaggedProfile; + } + namespace PortableInterceptor + { + class ClientRequestInfoOperations; + } + } + } +} + +class org::omg::PortableInterceptor::ClientRequestInfoOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Object * target() = 0; + virtual ::org::omg::CORBA::Object * effective_target() = 0; + virtual ::org::omg::IOP::TaggedProfile * effective_profile() = 0; + virtual ::org::omg::IOP::TaggedComponent * get_effective_component(jint) = 0; + virtual JArray< ::org::omg::IOP::TaggedComponent * > * get_effective_components(jint) = 0; + virtual ::org::omg::CORBA::Policy * get_request_policy(jint) = 0; + virtual ::java::lang::String * received_exception_id() = 0; + virtual ::org::omg::CORBA::Any * received_exception() = 0; + virtual void add_request_service_context(::org::omg::IOP::ServiceContext *, jboolean) = 0; + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments() = 0; + virtual JArray< ::java::lang::String * > * contexts() = 0; + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions() = 0; + virtual ::org::omg::CORBA::Object * forward_reference() = 0; + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint) = 0; + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint) = 0; + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual JArray< ::java::lang::String * > * operation_context() = 0; + virtual ::java::lang::String * operation() = 0; + virtual jshort reply_status() = 0; + virtual jint request_id() = 0; + virtual jboolean response_expected() = 0; + virtual ::org::omg::CORBA::Any * result() = 0; + virtual jshort sync_scope() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ClientRequestInfoOperations__ diff --git a/libjava/org/omg/PortableInterceptor/ClientRequestInterceptor.h b/libjava/org/omg/PortableInterceptor/ClientRequestInterceptor.h new file mode 100644 index 00000000000..9cb1b2a95b1 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ClientRequestInterceptor.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ClientRequestInterceptor__ +#define __org_omg_PortableInterceptor_ClientRequestInterceptor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class ClientRequestInfo; + class ClientRequestInterceptor; + } + } + } +} + +class org::omg::PortableInterceptor::ClientRequestInterceptor : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual void send_request(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void receive_reply(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void receive_exception(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void receive_other(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void send_poll(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ClientRequestInterceptor__ diff --git a/libjava/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.h b/libjava/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.h new file mode 100644 index 00000000000..8673727711a --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ClientRequestInterceptorOperations.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ClientRequestInterceptorOperations__ +#define __org_omg_PortableInterceptor_ClientRequestInterceptorOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class ClientRequestInfo; + class ClientRequestInterceptorOperations; + } + } + } +} + +class org::omg::PortableInterceptor::ClientRequestInterceptorOperations : public ::java::lang::Object +{ + +public: + virtual void send_request(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void receive_reply(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void receive_exception(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void receive_other(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void send_poll(::org::omg::PortableInterceptor::ClientRequestInfo *) = 0; + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ClientRequestInterceptorOperations__ diff --git a/libjava/org/omg/PortableInterceptor/Current.h b/libjava/org/omg/PortableInterceptor/Current.h new file mode 100644 index 00000000000..04b1f431677 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/Current.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_Current__ +#define __org_omg_PortableInterceptor_Current__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class Current; + } + } + } +} + +class org::omg::PortableInterceptor::Current : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual void set_slot(jint, ::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_Current__ diff --git a/libjava/org/omg/PortableInterceptor/CurrentHelper.h b/libjava/org/omg/PortableInterceptor/CurrentHelper.h new file mode 100644 index 00000000000..2537dcbd2c8 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/CurrentHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_CurrentHelper__ +#define __org_omg_PortableInterceptor_CurrentHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class Current; + class CurrentHelper; + } + } + } +} + +class org::omg::PortableInterceptor::CurrentHelper : public ::java::lang::Object +{ + +public: + CurrentHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::Current *); + static ::org::omg::PortableInterceptor::Current * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::Current * narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableInterceptor::Current * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableInterceptor::Current * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::Current *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_CurrentHelper__ diff --git a/libjava/org/omg/PortableInterceptor/CurrentOperations.h b/libjava/org/omg/PortableInterceptor/CurrentOperations.h new file mode 100644 index 00000000000..0095f999ebf --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/CurrentOperations.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_CurrentOperations__ +#define __org_omg_PortableInterceptor_CurrentOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + } + namespace PortableInterceptor + { + class CurrentOperations; + } + } + } +} + +class org::omg::PortableInterceptor::CurrentOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual void set_slot(jint, ::org::omg::CORBA::Any *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_CurrentOperations__ diff --git a/libjava/org/omg/PortableInterceptor/DISCARDING.h b/libjava/org/omg/PortableInterceptor/DISCARDING.h new file mode 100644 index 00000000000..1c12778ee70 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/DISCARDING.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_DISCARDING__ +#define __org_omg_PortableInterceptor_DISCARDING__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class DISCARDING; + } + } + } +} + +class org::omg::PortableInterceptor::DISCARDING : public ::java::lang::Object +{ + +public: + static const jshort value = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_DISCARDING__ diff --git a/libjava/org/omg/PortableInterceptor/ForwardRequest.h b/libjava/org/omg/PortableInterceptor/ForwardRequest.h new file mode 100644 index 00000000000..63f3e49247c --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ForwardRequest.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ForwardRequest__ +#define __org_omg_PortableInterceptor_ForwardRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace PortableInterceptor + { + class ForwardRequest; + } + } + } +} + +class org::omg::PortableInterceptor::ForwardRequest : public ::org::omg::CORBA::UserException +{ + +public: + ForwardRequest(); + ForwardRequest(::java::lang::String *, ::org::omg::CORBA::Object *); + ForwardRequest(::org::omg::CORBA::Object *); +private: + static const jlong serialVersionUID = 2128007517550526397LL; +public: + ::org::omg::CORBA::Object * __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) forward; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ForwardRequest__ diff --git a/libjava/org/omg/PortableInterceptor/ForwardRequestHelper.h b/libjava/org/omg/PortableInterceptor/ForwardRequestHelper.h new file mode 100644 index 00000000000..d5631ea1eab --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ForwardRequestHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ForwardRequestHelper__ +#define __org_omg_PortableInterceptor_ForwardRequestHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ForwardRequest; + class ForwardRequestHelper; + } + } + } +} + +class org::omg::PortableInterceptor::ForwardRequestHelper : public ::java::lang::Object +{ + +public: + ForwardRequestHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::ForwardRequest *); + static ::org::omg::PortableInterceptor::ForwardRequest * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::ForwardRequest * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::ForwardRequest *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ForwardRequestHelper__ diff --git a/libjava/org/omg/PortableInterceptor/HOLDING.h b/libjava/org/omg/PortableInterceptor/HOLDING.h new file mode 100644 index 00000000000..aa94377434e --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/HOLDING.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_HOLDING__ +#define __org_omg_PortableInterceptor_HOLDING__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class HOLDING; + } + } + } +} + +class org::omg::PortableInterceptor::HOLDING : public ::java::lang::Object +{ + +public: + static const jshort value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_HOLDING__ diff --git a/libjava/org/omg/PortableInterceptor/INACTIVE.h b/libjava/org/omg/PortableInterceptor/INACTIVE.h new file mode 100644 index 00000000000..89722a934c3 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/INACTIVE.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_INACTIVE__ +#define __org_omg_PortableInterceptor_INACTIVE__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class INACTIVE; + } + } + } +} + +class org::omg::PortableInterceptor::INACTIVE : public ::java::lang::Object +{ + +public: + static const jshort value = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_INACTIVE__ diff --git a/libjava/org/omg/PortableInterceptor/IORInfo.h b/libjava/org/omg/PortableInterceptor/IORInfo.h new file mode 100644 index 00000000000..330de97d34d --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInfo.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInfo__ +#define __org_omg_PortableInterceptor_IORInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace IOP + { + class TaggedComponent; + } + namespace PortableInterceptor + { + class IORInfo; + class ObjectReferenceFactory; + class ObjectReferenceTemplate; + } + } + } +} + +class org::omg::PortableInterceptor::IORInfo : public ::java::lang::Object +{ + +public: + virtual void add_ior_component_to_profile(::org::omg::IOP::TaggedComponent *, jint) = 0; + virtual void add_ior_component(::org::omg::IOP::TaggedComponent *) = 0; + virtual ::org::omg::CORBA::Policy * get_effective_policy(jint) = 0; + virtual ::org::omg::PortableInterceptor::ObjectReferenceTemplate * adapter_template() = 0; + virtual ::org::omg::PortableInterceptor::ObjectReferenceFactory * current_factory() = 0; + virtual void current_factory(::org::omg::PortableInterceptor::ObjectReferenceFactory *) = 0; + virtual jint manager_id() = 0; + virtual jshort state() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_IORInfo__ diff --git a/libjava/org/omg/PortableInterceptor/IORInfoOperations.h b/libjava/org/omg/PortableInterceptor/IORInfoOperations.h new file mode 100644 index 00000000000..f93bd9e2fbd --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInfoOperations.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInfoOperations__ +#define __org_omg_PortableInterceptor_IORInfoOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace IOP + { + class TaggedComponent; + } + namespace PortableInterceptor + { + class IORInfoOperations; + class ObjectReferenceFactory; + class ObjectReferenceTemplate; + } + } + } +} + +class org::omg::PortableInterceptor::IORInfoOperations : public ::java::lang::Object +{ + +public: + virtual void add_ior_component_to_profile(::org::omg::IOP::TaggedComponent *, jint) = 0; + virtual void add_ior_component(::org::omg::IOP::TaggedComponent *) = 0; + virtual ::org::omg::CORBA::Policy * get_effective_policy(jint) = 0; + virtual ::org::omg::PortableInterceptor::ObjectReferenceTemplate * adapter_template() = 0; + virtual ::org::omg::PortableInterceptor::ObjectReferenceFactory * current_factory() = 0; + virtual void current_factory(::org::omg::PortableInterceptor::ObjectReferenceFactory *) = 0; + virtual jint manager_id() = 0; + virtual jshort state() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_IORInfoOperations__ diff --git a/libjava/org/omg/PortableInterceptor/IORInterceptor.h b/libjava/org/omg/PortableInterceptor/IORInterceptor.h new file mode 100644 index 00000000000..e51016ec3a0 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInterceptor.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInterceptor__ +#define __org_omg_PortableInterceptor_IORInterceptor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class IORInfo; + class IORInterceptor; + } + } + } +} + +class org::omg::PortableInterceptor::IORInterceptor : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual void establish_components(::org::omg::PortableInterceptor::IORInfo *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_IORInterceptor__ diff --git a/libjava/org/omg/PortableInterceptor/IORInterceptorOperations.h b/libjava/org/omg/PortableInterceptor/IORInterceptorOperations.h new file mode 100644 index 00000000000..0a350730740 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInterceptorOperations.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInterceptorOperations__ +#define __org_omg_PortableInterceptor_IORInterceptorOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class IORInfo; + class IORInterceptorOperations; + } + } + } +} + +class org::omg::PortableInterceptor::IORInterceptorOperations : public ::java::lang::Object +{ + +public: + virtual void establish_components(::org::omg::PortableInterceptor::IORInfo *) = 0; + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_IORInterceptorOperations__ diff --git a/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0.h b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0.h new file mode 100644 index 00000000000..0e8ccdd31ff --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInterceptor_3_0__ +#define __org_omg_PortableInterceptor_IORInterceptor_3_0__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class IORInfo; + class IORInterceptor_3_0; + class ObjectReferenceTemplate; + } + } + } +} + +class org::omg::PortableInterceptor::IORInterceptor_3_0 : public ::java::lang::Object +{ + +public: + virtual void adapter_manager_state_changed(jint, jshort) = 0; + virtual void adapter_state_changed(JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > *, jshort) = 0; + virtual void components_established(::org::omg::PortableInterceptor::IORInfo *) = 0; + virtual void establish_components(::org::omg::PortableInterceptor::IORInfo *) = 0; + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_IORInterceptor_3_0__ diff --git a/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.h b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.h new file mode 100644 index 00000000000..a52aa51cea7 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Helper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInterceptor_3_0Helper__ +#define __org_omg_PortableInterceptor_IORInterceptor_3_0Helper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class IORInterceptor_3_0; + class IORInterceptor_3_0Helper; + } + } + } +} + +class org::omg::PortableInterceptor::IORInterceptor_3_0Helper : public ::java::lang::Object +{ + +public: + IORInterceptor_3_0Helper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::IORInterceptor_3_0 *); + static ::org::omg::PortableInterceptor::IORInterceptor_3_0 * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::IORInterceptor_3_0 * narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableInterceptor::IORInterceptor_3_0 * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableInterceptor::IORInterceptor_3_0 * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::IORInterceptor_3_0 *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_IORInterceptor_3_0Helper__ diff --git a/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.h b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.h new file mode 100644 index 00000000000..f64d4382c85 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Holder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInterceptor_3_0Holder__ +#define __org_omg_PortableInterceptor_IORInterceptor_3_0Holder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class IORInterceptor_3_0; + class IORInterceptor_3_0Holder; + } + } + } +} + +class org::omg::PortableInterceptor::IORInterceptor_3_0Holder : public ::java::lang::Object +{ + +public: + IORInterceptor_3_0Holder(); + IORInterceptor_3_0Holder(::org::omg::PortableInterceptor::IORInterceptor_3_0 *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::PortableInterceptor::IORInterceptor_3_0 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_IORInterceptor_3_0Holder__ diff --git a/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.h b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.h new file mode 100644 index 00000000000..895ee97fd89 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/IORInterceptor_3_0Operations.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_IORInterceptor_3_0Operations__ +#define __org_omg_PortableInterceptor_IORInterceptor_3_0Operations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class IORInfo; + class IORInterceptor_3_0Operations; + class ObjectReferenceTemplate; + } + } + } +} + +class org::omg::PortableInterceptor::IORInterceptor_3_0Operations : public ::java::lang::Object +{ + +public: + virtual void adapter_manager_state_changed(jint, jshort) = 0; + virtual void adapter_state_changed(JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > *, jshort) = 0; + virtual void components_established(::org::omg::PortableInterceptor::IORInfo *) = 0; + virtual void establish_components(::org::omg::PortableInterceptor::IORInfo *) = 0; + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_IORInterceptor_3_0Operations__ diff --git a/libjava/org/omg/PortableInterceptor/Interceptor.h b/libjava/org/omg/PortableInterceptor/Interceptor.h new file mode 100644 index 00000000000..8cc545cef1b --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/Interceptor.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_Interceptor__ +#define __org_omg_PortableInterceptor_Interceptor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class Interceptor; + } + } + } +} + +class org::omg::PortableInterceptor::Interceptor : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_Interceptor__ diff --git a/libjava/org/omg/PortableInterceptor/InterceptorOperations.h b/libjava/org/omg/PortableInterceptor/InterceptorOperations.h new file mode 100644 index 00000000000..550da35d181 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/InterceptorOperations.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_InterceptorOperations__ +#define __org_omg_PortableInterceptor_InterceptorOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class InterceptorOperations; + } + } + } +} + +class org::omg::PortableInterceptor::InterceptorOperations : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_InterceptorOperations__ diff --git a/libjava/org/omg/PortableInterceptor/InvalidSlot.h b/libjava/org/omg/PortableInterceptor/InvalidSlot.h new file mode 100644 index 00000000000..ca9301f4167 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/InvalidSlot.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_InvalidSlot__ +#define __org_omg_PortableInterceptor_InvalidSlot__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class InvalidSlot; + } + } + } +} + +class org::omg::PortableInterceptor::InvalidSlot : public ::org::omg::CORBA::UserException +{ + +public: + InvalidSlot(); + InvalidSlot(::java::lang::String *); +private: + static const jlong serialVersionUID = 2471643293291821501LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_InvalidSlot__ diff --git a/libjava/org/omg/PortableInterceptor/InvalidSlotHelper.h b/libjava/org/omg/PortableInterceptor/InvalidSlotHelper.h new file mode 100644 index 00000000000..ba8b0235539 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/InvalidSlotHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_InvalidSlotHelper__ +#define __org_omg_PortableInterceptor_InvalidSlotHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class InvalidSlot; + class InvalidSlotHelper; + } + } + } +} + +class org::omg::PortableInterceptor::InvalidSlotHelper : public ::java::lang::Object +{ + +public: + InvalidSlotHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::InvalidSlot *); + static ::org::omg::PortableInterceptor::InvalidSlot * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::InvalidSlot * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::InvalidSlot *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_InvalidSlotHelper__ diff --git a/libjava/org/omg/PortableInterceptor/LOCATION_FORWARD.h b/libjava/org/omg/PortableInterceptor/LOCATION_FORWARD.h new file mode 100644 index 00000000000..c98609ab595 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/LOCATION_FORWARD.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_LOCATION_FORWARD__ +#define __org_omg_PortableInterceptor_LOCATION_FORWARD__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class LOCATION_FORWARD; + } + } + } +} + +class org::omg::PortableInterceptor::LOCATION_FORWARD : public ::java::lang::Object +{ + +public: + static const jshort value = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_LOCATION_FORWARD__ diff --git a/libjava/org/omg/PortableInterceptor/NON_EXISTENT.h b/libjava/org/omg/PortableInterceptor/NON_EXISTENT.h new file mode 100644 index 00000000000..fd62b3a9515 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/NON_EXISTENT.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_NON_EXISTENT__ +#define __org_omg_PortableInterceptor_NON_EXISTENT__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class NON_EXISTENT; + } + } + } +} + +class org::omg::PortableInterceptor::NON_EXISTENT : public ::java::lang::Object +{ + +public: + static const jshort value = 4; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_NON_EXISTENT__ diff --git a/libjava/org/omg/PortableInterceptor/ORBIdHelper.h b/libjava/org/omg/PortableInterceptor/ORBIdHelper.h new file mode 100644 index 00000000000..52d76984f98 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBIdHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBIdHelper__ +#define __org_omg_PortableInterceptor_ORBIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ORBIdHelper; + } + } + } +} + +class org::omg::PortableInterceptor::ORBIdHelper : public ::java::lang::Object +{ + +public: + ORBIdHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ORBIdHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitInfo.h b/libjava/org/omg/PortableInterceptor/ORBInitInfo.h new file mode 100644 index 00000000000..f72efa27e3d --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitInfo.h @@ -0,0 +1,77 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitInfo__ +#define __org_omg_PortableInterceptor_ORBInitInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace IOP + { + class CodecFactory; + } + namespace PortableInterceptor + { + class ClientRequestInterceptor; + class IORInterceptor; + class ORBInitInfo; + class PolicyFactory; + class ServerRequestInterceptor; + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitInfo : public ::java::lang::Object +{ + +public: + virtual void add_client_request_interceptor(::org::omg::PortableInterceptor::ClientRequestInterceptor *) = 0; + virtual void add_ior_interceptor(::org::omg::PortableInterceptor::IORInterceptor *) = 0; + virtual void add_server_request_interceptor(::org::omg::PortableInterceptor::ServerRequestInterceptor *) = 0; + virtual jint allocate_slot_id() = 0; + virtual JArray< ::java::lang::String * > * arguments() = 0; + virtual ::org::omg::IOP::CodecFactory * codec_factory() = 0; + virtual ::java::lang::String * orb_id() = 0; + virtual void register_initial_reference(::java::lang::String *, ::org::omg::CORBA::Object *) = 0; + virtual ::org::omg::CORBA::Object * resolve_initial_references(::java::lang::String *) = 0; + virtual void register_policy_factory(jint, ::org::omg::PortableInterceptor::PolicyFactory *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ORBInitInfo__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitInfoOperations.h b/libjava/org/omg/PortableInterceptor/ORBInitInfoOperations.h new file mode 100644 index 00000000000..72c9a0b069a --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitInfoOperations.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitInfoOperations__ +#define __org_omg_PortableInterceptor_ORBInitInfoOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace IOP + { + class CodecFactory; + } + namespace PortableInterceptor + { + class ClientRequestInterceptor; + class IORInterceptor; + class ORBInitInfoOperations; + class PolicyFactory; + class ServerRequestInterceptor; + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitInfoOperations : public ::java::lang::Object +{ + +public: + virtual void add_client_request_interceptor(::org::omg::PortableInterceptor::ClientRequestInterceptor *) = 0; + virtual void add_ior_interceptor(::org::omg::PortableInterceptor::IORInterceptor *) = 0; + virtual void add_server_request_interceptor(::org::omg::PortableInterceptor::ServerRequestInterceptor *) = 0; + virtual jint allocate_slot_id() = 0; + virtual JArray< ::java::lang::String * > * arguments() = 0; + virtual ::org::omg::IOP::CodecFactory * codec_factory() = 0; + virtual ::java::lang::String * orb_id() = 0; + virtual void register_initial_reference(::java::lang::String *, ::org::omg::CORBA::Object *) = 0; + virtual ::org::omg::CORBA::Object * resolve_initial_references(::java::lang::String *) = 0; + virtual void register_policy_factory(jint, ::org::omg::PortableInterceptor::PolicyFactory *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ORBInitInfoOperations__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.h b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.h new file mode 100644 index 00000000000..e9b842112e8 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitInfoPackage_DuplicateName__ +#define __org_omg_PortableInterceptor_ORBInitInfoPackage_DuplicateName__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + namespace ORBInitInfoPackage + { + class DuplicateName; + } + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateName : public ::org::omg::CORBA::UserException +{ + +public: + DuplicateName(); + DuplicateName(::java::lang::String *, ::java::lang::String *); + DuplicateName(::java::lang::String *); +private: + static const jlong serialVersionUID = 7748239257677851130LL; +public: + ::java::lang::String * __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) name; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ORBInitInfoPackage_DuplicateName__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.h b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.h new file mode 100644 index 00000000000..8abe1f92f77 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitInfoPackage_DuplicateNameHelper__ +#define __org_omg_PortableInterceptor_ORBInitInfoPackage_DuplicateNameHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + namespace ORBInitInfoPackage + { + class DuplicateName; + class DuplicateNameHelper; + } + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateNameHelper : public ::java::lang::Object +{ + +public: + DuplicateNameHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateName *); + static ::org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateName * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateName * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::ORBInitInfoPackage::DuplicateName *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ORBInitInfoPackage_DuplicateNameHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.h b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.h new file mode 100644 index 00000000000..a4f515fd6d0 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitInfoPackage_InvalidName__ +#define __org_omg_PortableInterceptor_ORBInitInfoPackage_InvalidName__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + namespace ORBInitInfoPackage + { + class InvalidName; + } + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitInfoPackage::InvalidName : public ::org::omg::CORBA::UserException +{ + +public: + InvalidName(); + InvalidName(::java::lang::String *); +private: + static const jlong serialVersionUID = -4599417794753377115LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ORBInitInfoPackage_InvalidName__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.h b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.h new file mode 100644 index 00000000000..ed921b1dc87 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitInfoPackage_InvalidNameHelper__ +#define __org_omg_PortableInterceptor_ORBInitInfoPackage_InvalidNameHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + namespace ORBInitInfoPackage + { + class InvalidName; + class InvalidNameHelper; + } + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitInfoPackage::InvalidNameHelper : public ::java::lang::Object +{ + +public: + InvalidNameHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::ORBInitInfoPackage::InvalidName *); + static ::org::omg::PortableInterceptor::ORBInitInfoPackage::InvalidName * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::ORBInitInfoPackage::InvalidName * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::ORBInitInfoPackage::InvalidName *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ORBInitInfoPackage_InvalidNameHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.h b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.h new file mode 100644 index 00000000000..df3ae67f694 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitInfoPackage_ObjectIdHelper__ +#define __org_omg_PortableInterceptor_ORBInitInfoPackage_ObjectIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + namespace ORBInitInfoPackage + { + class ObjectIdHelper; + } + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitInfoPackage::ObjectIdHelper : public ::java::lang::Object +{ + +public: + ObjectIdHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ORBInitInfoPackage_ObjectIdHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitializer.h b/libjava/org/omg/PortableInterceptor/ORBInitializer.h new file mode 100644 index 00000000000..860b4651e0d --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitializer.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitializer__ +#define __org_omg_PortableInterceptor_ORBInitializer__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class ORBInitInfo; + class ORBInitializer; + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitializer : public ::java::lang::Object +{ + +public: + virtual void pre_init(::org::omg::PortableInterceptor::ORBInitInfo *) = 0; + virtual void post_init(::org::omg::PortableInterceptor::ORBInitInfo *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ORBInitializer__ diff --git a/libjava/org/omg/PortableInterceptor/ORBInitializerOperations.h b/libjava/org/omg/PortableInterceptor/ORBInitializerOperations.h new file mode 100644 index 00000000000..0773c8e0bad --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ORBInitializerOperations.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ORBInitializerOperations__ +#define __org_omg_PortableInterceptor_ORBInitializerOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class ORBInitInfo; + class ORBInitializerOperations; + } + } + } +} + +class org::omg::PortableInterceptor::ORBInitializerOperations : public ::java::lang::Object +{ + +public: + virtual void pre_init(::org::omg::PortableInterceptor::ORBInitInfo *) = 0; + virtual void post_init(::org::omg::PortableInterceptor::ORBInitInfo *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ORBInitializerOperations__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectIdHelper.h b/libjava/org/omg/PortableInterceptor/ObjectIdHelper.h new file mode 100644 index 00000000000..4829abd9ac3 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectIdHelper.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectIdHelper__ +#define __org_omg_PortableInterceptor_ObjectIdHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ObjectIdHelper; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectIdHelper : public ::java::lang::Object +{ + +public: + ObjectIdHelper(); + static void insert(::org::omg::CORBA::Any *, JArray< jbyte > *); + static JArray< jbyte > * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static JArray< jbyte > * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< jbyte > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ObjectIdHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceFactory.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceFactory.h new file mode 100644 index 00000000000..e55b143655d --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceFactory.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceFactory__ +#define __org_omg_PortableInterceptor_ObjectReferenceFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace PortableInterceptor + { + class ObjectReferenceFactory; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceFactory : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Object * make_object(::java::lang::String *, JArray< jbyte > *) = 0; + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ObjectReferenceFactory__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.h new file mode 100644 index 00000000000..fad8ae60a9e --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceFactoryHelper__ +#define __org_omg_PortableInterceptor_ObjectReferenceFactoryHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ObjectReferenceFactory; + class ObjectReferenceFactoryHelper; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceFactoryHelper : public ::java::lang::Object +{ + +public: + ObjectReferenceFactoryHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::ObjectReferenceFactory *); + static ::org::omg::PortableInterceptor::ObjectReferenceFactory * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::ObjectReferenceFactory * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::ObjectReferenceFactory *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ObjectReferenceFactoryHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.h new file mode 100644 index 00000000000..2196531f75c --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceFactoryHolder__ +#define __org_omg_PortableInterceptor_ObjectReferenceFactoryHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ObjectReferenceFactory; + class ObjectReferenceFactoryHolder; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceFactoryHolder : public ::java::lang::Object +{ + +public: + ObjectReferenceFactoryHolder(); + ObjectReferenceFactoryHolder(::org::omg::PortableInterceptor::ObjectReferenceFactory *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::PortableInterceptor::ObjectReferenceFactory * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ObjectReferenceFactoryHolder__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplate.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplate.h new file mode 100644 index 00000000000..90da0424ecb --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplate.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceTemplate__ +#define __org_omg_PortableInterceptor_ObjectReferenceTemplate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace PortableInterceptor + { + class ObjectReferenceTemplate; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceTemplate : public ::java::lang::Object +{ + +public: + virtual JArray< ::java::lang::String * > * adapter_name() = 0; + virtual ::java::lang::String * orb_id() = 0; + virtual ::java::lang::String * server_id() = 0; + virtual ::org::omg::CORBA::Object * make_object(::java::lang::String *, JArray< jbyte > *) = 0; + virtual JArray< ::java::lang::String * > * _truncatable_ids() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ObjectReferenceTemplate__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.h new file mode 100644 index 00000000000..f71cbd60526 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceTemplateHelper__ +#define __org_omg_PortableInterceptor_ObjectReferenceTemplateHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ObjectReferenceTemplate; + class ObjectReferenceTemplateHelper; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceTemplateHelper : public ::java::lang::Object +{ + +public: + ObjectReferenceTemplateHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableInterceptor::ObjectReferenceTemplate *); + static ::org::omg::PortableInterceptor::ObjectReferenceTemplate * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableInterceptor::ObjectReferenceTemplate * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableInterceptor::ObjectReferenceTemplate *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ObjectReferenceTemplateHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.h new file mode 100644 index 00000000000..74ddeecbd8e --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceTemplateHolder__ +#define __org_omg_PortableInterceptor_ObjectReferenceTemplateHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ObjectReferenceTemplate; + class ObjectReferenceTemplateHolder; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceTemplateHolder : public ::java::lang::Object +{ + +public: + ObjectReferenceTemplateHolder(); + ObjectReferenceTemplateHolder(::org::omg::PortableInterceptor::ObjectReferenceTemplate *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + ::org::omg::PortableInterceptor::ObjectReferenceTemplate * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ObjectReferenceTemplateHolder__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.h new file mode 100644 index 00000000000..9779230d587 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceTemplateSeqHelper__ +#define __org_omg_PortableInterceptor_ObjectReferenceTemplateSeqHelper__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ObjectReferenceTemplate; + class ObjectReferenceTemplateSeqHelper; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceTemplateSeqHelper : public ::java::lang::Object +{ + +public: + ObjectReferenceTemplateSeqHelper(); + static JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > *); + static JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ObjectReferenceTemplateSeqHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.h b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.h new file mode 100644 index 00000000000..f02f111f3a9 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ObjectReferenceTemplateSeqHolder__ +#define __org_omg_PortableInterceptor_ObjectReferenceTemplateSeqHolder__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ObjectReferenceTemplate; + class ObjectReferenceTemplateSeqHolder; + } + } + } +} + +class org::omg::PortableInterceptor::ObjectReferenceTemplateSeqHolder : public ::java::lang::Object +{ + +public: + ObjectReferenceTemplateSeqHolder(); + ObjectReferenceTemplateSeqHolder(JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > *); + void _read(::org::omg::CORBA::portable::InputStream *); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::org::omg::CORBA::TypeCode * _type(); + JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ObjectReferenceTemplateSeqHolder__ diff --git a/libjava/org/omg/PortableInterceptor/PolicyFactory.h b/libjava/org/omg/PortableInterceptor/PolicyFactory.h new file mode 100644 index 00000000000..41f8cd073c7 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/PolicyFactory.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_PolicyFactory__ +#define __org_omg_PortableInterceptor_PolicyFactory__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class PolicyFactory; + } + } + } +} + +class org::omg::PortableInterceptor::PolicyFactory : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Policy * create_policy(jint, ::org::omg::CORBA::Any *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_PolicyFactory__ diff --git a/libjava/org/omg/PortableInterceptor/PolicyFactoryOperations.h b/libjava/org/omg/PortableInterceptor/PolicyFactoryOperations.h new file mode 100644 index 00000000000..fcd4c510a43 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/PolicyFactoryOperations.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_PolicyFactoryOperations__ +#define __org_omg_PortableInterceptor_PolicyFactoryOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Policy; + } + namespace PortableInterceptor + { + class PolicyFactoryOperations; + } + } + } +} + +class org::omg::PortableInterceptor::PolicyFactoryOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Policy * create_policy(jint, ::org::omg::CORBA::Any *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_PolicyFactoryOperations__ diff --git a/libjava/org/omg/PortableInterceptor/RequestInfo.h b/libjava/org/omg/PortableInterceptor/RequestInfo.h new file mode 100644 index 00000000000..9a3d9521a04 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/RequestInfo.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_RequestInfo__ +#define __org_omg_PortableInterceptor_RequestInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + } + namespace PortableInterceptor + { + class RequestInfo; + } + } + } +} + +class org::omg::PortableInterceptor::RequestInfo : public ::java::lang::Object +{ + +public: + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments() = 0; + virtual JArray< ::java::lang::String * > * contexts() = 0; + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions() = 0; + virtual ::org::omg::CORBA::Object * forward_reference() = 0; + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint) = 0; + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint) = 0; + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual JArray< ::java::lang::String * > * operation_context() = 0; + virtual ::java::lang::String * operation() = 0; + virtual jshort reply_status() = 0; + virtual jint request_id() = 0; + virtual jboolean response_expected() = 0; + virtual ::org::omg::CORBA::Any * result() = 0; + virtual jshort sync_scope() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_RequestInfo__ diff --git a/libjava/org/omg/PortableInterceptor/RequestInfoOperations.h b/libjava/org/omg/PortableInterceptor/RequestInfoOperations.h new file mode 100644 index 00000000000..99476565db1 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/RequestInfoOperations.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_RequestInfoOperations__ +#define __org_omg_PortableInterceptor_RequestInfoOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + } + namespace PortableInterceptor + { + class RequestInfoOperations; + } + } + } +} + +class org::omg::PortableInterceptor::RequestInfoOperations : public ::java::lang::Object +{ + +public: + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments() = 0; + virtual JArray< ::java::lang::String * > * contexts() = 0; + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions() = 0; + virtual ::org::omg::CORBA::Object * forward_reference() = 0; + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint) = 0; + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint) = 0; + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual JArray< ::java::lang::String * > * operation_context() = 0; + virtual ::java::lang::String * operation() = 0; + virtual jshort reply_status() = 0; + virtual jint request_id() = 0; + virtual jboolean response_expected() = 0; + virtual ::org::omg::CORBA::Any * result() = 0; + virtual jshort sync_scope() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_RequestInfoOperations__ diff --git a/libjava/org/omg/PortableInterceptor/SUCCESSFUL.h b/libjava/org/omg/PortableInterceptor/SUCCESSFUL.h new file mode 100644 index 00000000000..a566748bf51 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/SUCCESSFUL.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_SUCCESSFUL__ +#define __org_omg_PortableInterceptor_SUCCESSFUL__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class SUCCESSFUL; + } + } + } +} + +class org::omg::PortableInterceptor::SUCCESSFUL : public ::java::lang::Object +{ + +public: + static const jshort value = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_SUCCESSFUL__ diff --git a/libjava/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.h b/libjava/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.h new file mode 100644 index 00000000000..51bf8d7df0c --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_SYSTEM_EXCEPTION__ +#define __org_omg_PortableInterceptor_SYSTEM_EXCEPTION__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class SYSTEM_EXCEPTION; + } + } + } +} + +class org::omg::PortableInterceptor::SYSTEM_EXCEPTION : public ::java::lang::Object +{ + +public: + static const jshort value = 1; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_SYSTEM_EXCEPTION__ diff --git a/libjava/org/omg/PortableInterceptor/ServerIdHelper.h b/libjava/org/omg/PortableInterceptor/ServerIdHelper.h new file mode 100644 index 00000000000..af6ce18644f --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ServerIdHelper.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ServerIdHelper__ +#define __org_omg_PortableInterceptor_ServerIdHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableInterceptor + { + class ServerIdHelper; + } + } + } +} + +class org::omg::PortableInterceptor::ServerIdHelper : public ::java::lang::Object +{ + +public: + ServerIdHelper(); + static void insert(::org::omg::CORBA::Any *, ::java::lang::String *); + static ::java::lang::String * extract(::org::omg::CORBA::Any *); + static ::org::omg::CORBA::TypeCode * type(); + static ::java::lang::String * id(); + static ::java::lang::String * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor_ServerIdHelper__ diff --git a/libjava/org/omg/PortableInterceptor/ServerRequestInfo.h b/libjava/org/omg/PortableInterceptor/ServerRequestInfo.h new file mode 100644 index 00000000000..523c4c35554 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ServerRequestInfo.h @@ -0,0 +1,94 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ServerRequestInfo__ +#define __org_omg_PortableInterceptor_ServerRequestInfo__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + } + namespace PortableInterceptor + { + class ServerRequestInfo; + } + } + } +} + +class org::omg::PortableInterceptor::ServerRequestInfo : public ::java::lang::Object +{ + +public: + virtual void add_reply_service_context(::org::omg::IOP::ServiceContext *, jboolean) = 0; + virtual JArray< jbyte > * adapter_id() = 0; + virtual JArray< jbyte > * object_id() = 0; + virtual ::org::omg::CORBA::Policy * get_server_policy(jint) = 0; + virtual ::org::omg::CORBA::Any * sending_exception() = 0; + virtual void set_slot(jint, ::org::omg::CORBA::Any *) = 0; + virtual jboolean target_is_a(::java::lang::String *) = 0; + virtual ::java::lang::String * target_most_derived_interface() = 0; + virtual JArray< ::java::lang::String * > * adapter_name() = 0; + virtual ::java::lang::String * orb_id() = 0; + virtual ::java::lang::String * server_id() = 0; + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments() = 0; + virtual JArray< ::java::lang::String * > * contexts() = 0; + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions() = 0; + virtual ::org::omg::CORBA::Object * forward_reference() = 0; + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint) = 0; + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint) = 0; + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual JArray< ::java::lang::String * > * operation_context() = 0; + virtual ::java::lang::String * operation() = 0; + virtual jshort reply_status() = 0; + virtual jint request_id() = 0; + virtual jboolean response_expected() = 0; + virtual ::org::omg::CORBA::Any * result() = 0; + virtual jshort sync_scope() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ServerRequestInfo__ diff --git a/libjava/org/omg/PortableInterceptor/ServerRequestInfoOperations.h b/libjava/org/omg/PortableInterceptor/ServerRequestInfoOperations.h new file mode 100644 index 00000000000..1c2ae7c9bb0 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ServerRequestInfoOperations.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ServerRequestInfoOperations__ +#define __org_omg_PortableInterceptor_ServerRequestInfoOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class Policy; + class TypeCode; + } + namespace Dynamic + { + class Parameter; + } + namespace IOP + { + class ServiceContext; + } + namespace PortableInterceptor + { + class ServerRequestInfoOperations; + } + } + } +} + +class org::omg::PortableInterceptor::ServerRequestInfoOperations : public ::java::lang::Object +{ + +public: + virtual void add_reply_service_context(::org::omg::IOP::ServiceContext *, jboolean) = 0; + virtual JArray< jbyte > * adapter_id() = 0; + virtual JArray< jbyte > * object_id() = 0; + virtual ::org::omg::CORBA::Policy * get_server_policy(jint) = 0; + virtual ::org::omg::CORBA::Any * sending_exception() = 0; + virtual void set_slot(jint, ::org::omg::CORBA::Any *) = 0; + virtual jboolean target_is_a(::java::lang::String *) = 0; + virtual ::java::lang::String * target_most_derived_interface() = 0; + virtual JArray< ::java::lang::String * > * adapter_name() = 0; + virtual ::java::lang::String * orb_id() = 0; + virtual ::java::lang::String * server_id() = 0; + virtual JArray< ::org::omg::Dynamic::Parameter * > * arguments() = 0; + virtual JArray< ::java::lang::String * > * contexts() = 0; + virtual JArray< ::org::omg::CORBA::TypeCode * > * exceptions() = 0; + virtual ::org::omg::CORBA::Object * forward_reference() = 0; + virtual ::org::omg::IOP::ServiceContext * get_reply_service_context(jint) = 0; + virtual ::org::omg::IOP::ServiceContext * get_request_service_context(jint) = 0; + virtual ::org::omg::CORBA::Any * get_slot(jint) = 0; + virtual JArray< ::java::lang::String * > * operation_context() = 0; + virtual ::java::lang::String * operation() = 0; + virtual jshort reply_status() = 0; + virtual jint request_id() = 0; + virtual jboolean response_expected() = 0; + virtual ::org::omg::CORBA::Any * result() = 0; + virtual jshort sync_scope() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ServerRequestInfoOperations__ diff --git a/libjava/org/omg/PortableInterceptor/ServerRequestInterceptor.h b/libjava/org/omg/PortableInterceptor/ServerRequestInterceptor.h new file mode 100644 index 00000000000..7f419883830 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ServerRequestInterceptor.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ServerRequestInterceptor__ +#define __org_omg_PortableInterceptor_ServerRequestInterceptor__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableInterceptor + { + class ServerRequestInfo; + class ServerRequestInterceptor; + } + } + } +} + +class org::omg::PortableInterceptor::ServerRequestInterceptor : public ::java::lang::Object +{ + +public: + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual void receive_request_service_contexts(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void receive_request(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void send_reply(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void send_exception(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void send_other(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ServerRequestInterceptor__ diff --git a/libjava/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.h b/libjava/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.h new file mode 100644 index 00000000000..003fa188ad5 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/ServerRequestInterceptorOperations.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_ServerRequestInterceptorOperations__ +#define __org_omg_PortableInterceptor_ServerRequestInterceptorOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class ServerRequestInfo; + class ServerRequestInterceptorOperations; + } + } + } +} + +class org::omg::PortableInterceptor::ServerRequestInterceptorOperations : public ::java::lang::Object +{ + +public: + virtual void receive_request_service_contexts(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void receive_request(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void send_reply(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void send_exception(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void send_other(::org::omg::PortableInterceptor::ServerRequestInfo *) = 0; + virtual void destroy() = 0; + virtual ::java::lang::String * name() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_ServerRequestInterceptorOperations__ diff --git a/libjava/org/omg/PortableInterceptor/TRANSPORT_RETRY.h b/libjava/org/omg/PortableInterceptor/TRANSPORT_RETRY.h new file mode 100644 index 00000000000..7996b7d3089 --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/TRANSPORT_RETRY.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_TRANSPORT_RETRY__ +#define __org_omg_PortableInterceptor_TRANSPORT_RETRY__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class TRANSPORT_RETRY; + } + } + } +} + +class org::omg::PortableInterceptor::TRANSPORT_RETRY : public ::java::lang::Object +{ + +public: + static const jshort value = 4; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_TRANSPORT_RETRY__ diff --git a/libjava/org/omg/PortableInterceptor/USER_EXCEPTION.h b/libjava/org/omg/PortableInterceptor/USER_EXCEPTION.h new file mode 100644 index 00000000000..f972427794a --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/USER_EXCEPTION.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor_USER_EXCEPTION__ +#define __org_omg_PortableInterceptor_USER_EXCEPTION__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableInterceptor + { + class USER_EXCEPTION; + } + } + } +} + +class org::omg::PortableInterceptor::USER_EXCEPTION : public ::java::lang::Object +{ + +public: + static const jshort value = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableInterceptor_USER_EXCEPTION__ diff --git a/libjava/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.h b/libjava/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.h new file mode 100644 index 00000000000..354daeff98e --- /dev/null +++ b/libjava/org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableInterceptor__IORInterceptor_3_0Stub__ +#define __org_omg_PortableInterceptor__IORInterceptor_3_0Stub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + namespace portable + { + class Delegate; + } + } + namespace PortableInterceptor + { + class IORInfo; + class ObjectReferenceTemplate; + class _IORInterceptor_3_0Stub; + } + } + } +} + +class org::omg::PortableInterceptor::_IORInterceptor_3_0Stub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _IORInterceptor_3_0Stub(); + _IORInterceptor_3_0Stub(::org::omg::CORBA::portable::Delegate *); + virtual JArray< ::java::lang::String * > * _ids(); + virtual void adapter_manager_state_changed(jint, jshort); + virtual void adapter_state_changed(JArray< ::org::omg::PortableInterceptor::ObjectReferenceTemplate * > *, jshort); + virtual void components_established(::org::omg::PortableInterceptor::IORInfo *); + virtual void establish_components(::org::omg::PortableInterceptor::IORInfo *); + virtual ::java::lang::String * name(); + virtual void destroy(); +private: + static const jlong serialVersionUID = 1LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableInterceptor__IORInterceptor_3_0Stub__ diff --git a/libjava/org/omg/PortableServer/AdapterActivator.h b/libjava/org/omg/PortableServer/AdapterActivator.h new file mode 100644 index 00000000000..2f586ca498d --- /dev/null +++ b/libjava/org/omg/PortableServer/AdapterActivator.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_AdapterActivator__ +#define __org_omg_PortableServer_AdapterActivator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class AdapterActivator; + class POA; + } + } + } +} + +class org::omg::PortableServer::AdapterActivator : public ::java::lang::Object +{ + +public: + virtual jboolean unknown_adapter(::org::omg::PortableServer::POA *, ::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_AdapterActivator__ diff --git a/libjava/org/omg/PortableServer/AdapterActivatorOperations.h b/libjava/org/omg/PortableServer/AdapterActivatorOperations.h new file mode 100644 index 00000000000..843b7ceb381 --- /dev/null +++ b/libjava/org/omg/PortableServer/AdapterActivatorOperations.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_AdapterActivatorOperations__ +#define __org_omg_PortableServer_AdapterActivatorOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class AdapterActivatorOperations; + class POA; + } + } + } +} + +class org::omg::PortableServer::AdapterActivatorOperations : public ::java::lang::Object +{ + +public: + virtual jboolean unknown_adapter(::org::omg::PortableServer::POA *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_AdapterActivatorOperations__ diff --git a/libjava/org/omg/PortableServer/Current.h b/libjava/org/omg/PortableServer/Current.h new file mode 100644 index 00000000000..f226cb59bfa --- /dev/null +++ b/libjava/org/omg/PortableServer/Current.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_Current__ +#define __org_omg_PortableServer_Current__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class Current; + class POA; + } + } + } +} + +class org::omg::PortableServer::Current : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * get_object_id() = 0; + virtual ::org::omg::PortableServer::POA * get_POA() = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_Current__ diff --git a/libjava/org/omg/PortableServer/CurrentHelper.h b/libjava/org/omg/PortableServer/CurrentHelper.h new file mode 100644 index 00000000000..c07ffd9ea9e --- /dev/null +++ b/libjava/org/omg/PortableServer/CurrentHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_CurrentHelper__ +#define __org_omg_PortableServer_CurrentHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + class Current; + class CurrentHelper; + } + } + } +} + +class org::omg::PortableServer::CurrentHelper : public ::java::lang::Object +{ + +public: + CurrentHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::Current *); + static ::org::omg::PortableServer::Current * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::Current * narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableServer::Current * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::Current *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_CurrentHelper__ diff --git a/libjava/org/omg/PortableServer/CurrentOperations.h b/libjava/org/omg/PortableServer/CurrentOperations.h new file mode 100644 index 00000000000..91f8c66dbe6 --- /dev/null +++ b/libjava/org/omg/PortableServer/CurrentOperations.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_CurrentOperations__ +#define __org_omg_PortableServer_CurrentOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class CurrentOperations; + class POA; + } + } + } +} + +class org::omg::PortableServer::CurrentOperations : public ::java::lang::Object +{ + +public: + virtual JArray< jbyte > * get_object_id() = 0; + virtual ::org::omg::PortableServer::POA * get_POA() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_CurrentOperations__ diff --git a/libjava/org/omg/PortableServer/CurrentPackage/NoContext.h b/libjava/org/omg/PortableServer/CurrentPackage/NoContext.h new file mode 100644 index 00000000000..58b8d15bbc2 --- /dev/null +++ b/libjava/org/omg/PortableServer/CurrentPackage/NoContext.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_CurrentPackage_NoContext__ +#define __org_omg_PortableServer_CurrentPackage_NoContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace CurrentPackage + { + class NoContext; + } + } + } + } +} + +class org::omg::PortableServer::CurrentPackage::NoContext : public ::org::omg::CORBA::UserException +{ + +public: + NoContext(); + NoContext(::java::lang::String *); +private: + static const jlong serialVersionUID = 4345975812295650198LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_CurrentPackage_NoContext__ diff --git a/libjava/org/omg/PortableServer/CurrentPackage/NoContextHelper.h b/libjava/org/omg/PortableServer/CurrentPackage/NoContextHelper.h new file mode 100644 index 00000000000..a5c79d658c0 --- /dev/null +++ b/libjava/org/omg/PortableServer/CurrentPackage/NoContextHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_CurrentPackage_NoContextHelper__ +#define __org_omg_PortableServer_CurrentPackage_NoContextHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace CurrentPackage + { + class NoContext; + class NoContextHelper; + } + } + } + } +} + +class org::omg::PortableServer::CurrentPackage::NoContextHelper : public ::java::lang::Object +{ + +public: + NoContextHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::CurrentPackage::NoContext *); + static ::org::omg::PortableServer::CurrentPackage::NoContext * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::CurrentPackage::NoContext * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::CurrentPackage::NoContext *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_CurrentPackage_NoContextHelper__ diff --git a/libjava/org/omg/PortableServer/DynamicImplementation.h b/libjava/org/omg/PortableServer/DynamicImplementation.h new file mode 100644 index 00000000000..7aa01af2eff --- /dev/null +++ b/libjava/org/omg/PortableServer/DynamicImplementation.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_DynamicImplementation__ +#define __org_omg_PortableServer_DynamicImplementation__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ServerRequest; + } + namespace PortableServer + { + class DynamicImplementation; + } + } + } +} + +class org::omg::PortableServer::DynamicImplementation : public ::org::omg::PortableServer::Servant +{ + +public: + DynamicImplementation(); + virtual void invoke(::org::omg::CORBA::ServerRequest *) = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_DynamicImplementation__ diff --git a/libjava/org/omg/PortableServer/ForwardRequest.h b/libjava/org/omg/PortableServer/ForwardRequest.h new file mode 100644 index 00000000000..998beba3bde --- /dev/null +++ b/libjava/org/omg/PortableServer/ForwardRequest.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ForwardRequest__ +#define __org_omg_PortableServer_ForwardRequest__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + } + namespace PortableServer + { + class ForwardRequest; + } + } + } +} + +class org::omg::PortableServer::ForwardRequest : public ::org::omg::CORBA::UserException +{ + +public: + ForwardRequest(); + ForwardRequest(::java::lang::String *, ::org::omg::CORBA::Object *); + ForwardRequest(::org::omg::CORBA::Object *); +private: + static const jlong serialVersionUID = -4159318367582473975LL; +public: + ::org::omg::CORBA::Object * __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) forward_reference; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ForwardRequest__ diff --git a/libjava/org/omg/PortableServer/ForwardRequestHelper.h b/libjava/org/omg/PortableServer/ForwardRequestHelper.h new file mode 100644 index 00000000000..5fed16257a9 --- /dev/null +++ b/libjava/org/omg/PortableServer/ForwardRequestHelper.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ForwardRequestHelper__ +#define __org_omg_PortableServer_ForwardRequestHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + class ForwardRequest; + class ForwardRequestHelper; + } + } + } +} + +class org::omg::PortableServer::ForwardRequestHelper : public ::java::lang::Object +{ + +public: + ForwardRequestHelper(); + static ::org::omg::PortableServer::ForwardRequest * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::ForwardRequest *); + static ::org::omg::PortableServer::ForwardRequest * read(::org::omg::CORBA::portable::InputStream *); + static ::org::omg::CORBA::TypeCode * type(); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::ForwardRequest *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ForwardRequestHelper__ diff --git a/libjava/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.h b/libjava/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.h new file mode 100644 index 00000000000..8b06eab7c12 --- /dev/null +++ b/libjava/org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ID_ASSIGNMENT_POLICY_ID__ +#define __org_omg_PortableServer_ID_ASSIGNMENT_POLICY_ID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class ID_ASSIGNMENT_POLICY_ID; + } + } + } +} + +class org::omg::PortableServer::ID_ASSIGNMENT_POLICY_ID : public ::java::lang::Object +{ + +public: + static const jint value = 19; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ID_ASSIGNMENT_POLICY_ID__ diff --git a/libjava/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.h b/libjava/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.h new file mode 100644 index 00000000000..4c38631f363 --- /dev/null +++ b/libjava/org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ID_UNIQUENESS_POLICY_ID__ +#define __org_omg_PortableServer_ID_UNIQUENESS_POLICY_ID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class ID_UNIQUENESS_POLICY_ID; + } + } + } +} + +class org::omg::PortableServer::ID_UNIQUENESS_POLICY_ID : public ::java::lang::Object +{ + +public: + static const jint value = 18; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ID_UNIQUENESS_POLICY_ID__ diff --git a/libjava/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.h b/libjava/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.h new file mode 100644 index 00000000000..c76d8539dfe --- /dev/null +++ b/libjava/org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_IMPLICIT_ACTIVATION_POLICY_ID__ +#define __org_omg_PortableServer_IMPLICIT_ACTIVATION_POLICY_ID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class IMPLICIT_ACTIVATION_POLICY_ID; + } + } + } +} + +class org::omg::PortableServer::IMPLICIT_ACTIVATION_POLICY_ID : public ::java::lang::Object +{ + +public: + static const jint value = 20; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_IMPLICIT_ACTIVATION_POLICY_ID__ diff --git a/libjava/org/omg/PortableServer/IdAssignmentPolicy.h b/libjava/org/omg/PortableServer/IdAssignmentPolicy.h new file mode 100644 index 00000000000..de0b67653ab --- /dev/null +++ b/libjava/org/omg/PortableServer/IdAssignmentPolicy.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_IdAssignmentPolicy__ +#define __org_omg_PortableServer_IdAssignmentPolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class IdAssignmentPolicy; + class IdAssignmentPolicyValue; + } + } + } +} + +class org::omg::PortableServer::IdAssignmentPolicy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + virtual ::org::omg::PortableServer::IdAssignmentPolicyValue * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_IdAssignmentPolicy__ diff --git a/libjava/org/omg/PortableServer/IdAssignmentPolicyOperations.h b/libjava/org/omg/PortableServer/IdAssignmentPolicyOperations.h new file mode 100644 index 00000000000..c6b25f52788 --- /dev/null +++ b/libjava/org/omg/PortableServer/IdAssignmentPolicyOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_IdAssignmentPolicyOperations__ +#define __org_omg_PortableServer_IdAssignmentPolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace PortableServer + { + class IdAssignmentPolicyOperations; + class IdAssignmentPolicyValue; + } + } + } +} + +class org::omg::PortableServer::IdAssignmentPolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::IdAssignmentPolicyValue * value() = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_IdAssignmentPolicyOperations__ diff --git a/libjava/org/omg/PortableServer/IdAssignmentPolicyValue.h b/libjava/org/omg/PortableServer/IdAssignmentPolicyValue.h new file mode 100644 index 00000000000..533b07478d2 --- /dev/null +++ b/libjava/org/omg/PortableServer/IdAssignmentPolicyValue.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_IdAssignmentPolicyValue__ +#define __org_omg_PortableServer_IdAssignmentPolicyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class IdAssignmentPolicyValue; + } + } + } +} + +class org::omg::PortableServer::IdAssignmentPolicyValue : public ::java::lang::Object +{ + +public: // actually protected + IdAssignmentPolicyValue(jint); +public: + static ::org::omg::PortableServer::IdAssignmentPolicyValue * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = 2024380631469554382LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _USER_ID = 0; + static ::org::omg::PortableServer::IdAssignmentPolicyValue * USER_ID; + static const jint _SYSTEM_ID = 1; + static ::org::omg::PortableServer::IdAssignmentPolicyValue * SYSTEM_ID; +private: + static JArray< ::org::omg::PortableServer::IdAssignmentPolicyValue * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_IdAssignmentPolicyValue__ diff --git a/libjava/org/omg/PortableServer/IdUniquenessPolicy.h b/libjava/org/omg/PortableServer/IdUniquenessPolicy.h new file mode 100644 index 00000000000..eee06daf1e7 --- /dev/null +++ b/libjava/org/omg/PortableServer/IdUniquenessPolicy.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_IdUniquenessPolicy__ +#define __org_omg_PortableServer_IdUniquenessPolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class IdUniquenessPolicy; + class IdUniquenessPolicyValue; + } + } + } +} + +class org::omg::PortableServer::IdUniquenessPolicy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + virtual ::org::omg::PortableServer::IdUniquenessPolicyValue * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_IdUniquenessPolicy__ diff --git a/libjava/org/omg/PortableServer/IdUniquenessPolicyOperations.h b/libjava/org/omg/PortableServer/IdUniquenessPolicyOperations.h new file mode 100644 index 00000000000..eb7fabe171c --- /dev/null +++ b/libjava/org/omg/PortableServer/IdUniquenessPolicyOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_IdUniquenessPolicyOperations__ +#define __org_omg_PortableServer_IdUniquenessPolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace PortableServer + { + class IdUniquenessPolicyOperations; + class IdUniquenessPolicyValue; + } + } + } +} + +class org::omg::PortableServer::IdUniquenessPolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::IdUniquenessPolicyValue * value() = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_IdUniquenessPolicyOperations__ diff --git a/libjava/org/omg/PortableServer/IdUniquenessPolicyValue.h b/libjava/org/omg/PortableServer/IdUniquenessPolicyValue.h new file mode 100644 index 00000000000..6a6a1846662 --- /dev/null +++ b/libjava/org/omg/PortableServer/IdUniquenessPolicyValue.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_IdUniquenessPolicyValue__ +#define __org_omg_PortableServer_IdUniquenessPolicyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class IdUniquenessPolicyValue; + } + } + } +} + +class org::omg::PortableServer::IdUniquenessPolicyValue : public ::java::lang::Object +{ + +public: // actually protected + IdUniquenessPolicyValue(jint); +public: + static ::org::omg::PortableServer::IdUniquenessPolicyValue * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = 2698951826884611346LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _UNIQUE_ID = 0; + static ::org::omg::PortableServer::IdUniquenessPolicyValue * UNIQUE_ID; + static const jint _MULTIPLE_ID = 1; + static ::org::omg::PortableServer::IdUniquenessPolicyValue * MULTIPLE_ID; +private: + static JArray< ::org::omg::PortableServer::IdUniquenessPolicyValue * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_IdUniquenessPolicyValue__ diff --git a/libjava/org/omg/PortableServer/ImplicitActivationPolicy.h b/libjava/org/omg/PortableServer/ImplicitActivationPolicy.h new file mode 100644 index 00000000000..827100048eb --- /dev/null +++ b/libjava/org/omg/PortableServer/ImplicitActivationPolicy.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ImplicitActivationPolicy__ +#define __org_omg_PortableServer_ImplicitActivationPolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class ImplicitActivationPolicy; + class ImplicitActivationPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ImplicitActivationPolicy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + virtual ::org::omg::PortableServer::ImplicitActivationPolicyValue * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ImplicitActivationPolicy__ diff --git a/libjava/org/omg/PortableServer/ImplicitActivationPolicyOperations.h b/libjava/org/omg/PortableServer/ImplicitActivationPolicyOperations.h new file mode 100644 index 00000000000..a967c666b2e --- /dev/null +++ b/libjava/org/omg/PortableServer/ImplicitActivationPolicyOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ImplicitActivationPolicyOperations__ +#define __org_omg_PortableServer_ImplicitActivationPolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace PortableServer + { + class ImplicitActivationPolicyOperations; + class ImplicitActivationPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ImplicitActivationPolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::ImplicitActivationPolicyValue * value() = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ImplicitActivationPolicyOperations__ diff --git a/libjava/org/omg/PortableServer/ImplicitActivationPolicyValue.h b/libjava/org/omg/PortableServer/ImplicitActivationPolicyValue.h new file mode 100644 index 00000000000..ef3c5a43057 --- /dev/null +++ b/libjava/org/omg/PortableServer/ImplicitActivationPolicyValue.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ImplicitActivationPolicyValue__ +#define __org_omg_PortableServer_ImplicitActivationPolicyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class ImplicitActivationPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ImplicitActivationPolicyValue : public ::java::lang::Object +{ + +public: // actually protected + ImplicitActivationPolicyValue(jint); +public: + static ::org::omg::PortableServer::ImplicitActivationPolicyValue * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = 3826572456602949295LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _IMPLICIT_ACTIVATION = 0; + static ::org::omg::PortableServer::ImplicitActivationPolicyValue * IMPLICIT_ACTIVATION; + static const jint _NO_IMPLICIT_ACTIVATION = 1; + static ::org::omg::PortableServer::ImplicitActivationPolicyValue * NO_IMPLICIT_ACTIVATION; +private: + static JArray< ::org::omg::PortableServer::ImplicitActivationPolicyValue * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ImplicitActivationPolicyValue__ diff --git a/libjava/org/omg/PortableServer/LIFESPAN_POLICY_ID.h b/libjava/org/omg/PortableServer/LIFESPAN_POLICY_ID.h new file mode 100644 index 00000000000..b433923766d --- /dev/null +++ b/libjava/org/omg/PortableServer/LIFESPAN_POLICY_ID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_LIFESPAN_POLICY_ID__ +#define __org_omg_PortableServer_LIFESPAN_POLICY_ID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class LIFESPAN_POLICY_ID; + } + } + } +} + +class org::omg::PortableServer::LIFESPAN_POLICY_ID : public ::java::lang::Object +{ + +public: + static const jint value = 17; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_LIFESPAN_POLICY_ID__ diff --git a/libjava/org/omg/PortableServer/LifespanPolicy.h b/libjava/org/omg/PortableServer/LifespanPolicy.h new file mode 100644 index 00000000000..5defae72f39 --- /dev/null +++ b/libjava/org/omg/PortableServer/LifespanPolicy.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_LifespanPolicy__ +#define __org_omg_PortableServer_LifespanPolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class LifespanPolicy; + class LifespanPolicyValue; + } + } + } +} + +class org::omg::PortableServer::LifespanPolicy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + virtual ::org::omg::PortableServer::LifespanPolicyValue * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_LifespanPolicy__ diff --git a/libjava/org/omg/PortableServer/LifespanPolicyOperations.h b/libjava/org/omg/PortableServer/LifespanPolicyOperations.h new file mode 100644 index 00000000000..4313531ebc8 --- /dev/null +++ b/libjava/org/omg/PortableServer/LifespanPolicyOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_LifespanPolicyOperations__ +#define __org_omg_PortableServer_LifespanPolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace PortableServer + { + class LifespanPolicyOperations; + class LifespanPolicyValue; + } + } + } +} + +class org::omg::PortableServer::LifespanPolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::LifespanPolicyValue * value() = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_LifespanPolicyOperations__ diff --git a/libjava/org/omg/PortableServer/LifespanPolicyValue.h b/libjava/org/omg/PortableServer/LifespanPolicyValue.h new file mode 100644 index 00000000000..96b5b170f12 --- /dev/null +++ b/libjava/org/omg/PortableServer/LifespanPolicyValue.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_LifespanPolicyValue__ +#define __org_omg_PortableServer_LifespanPolicyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class LifespanPolicyValue; + } + } + } +} + +class org::omg::PortableServer::LifespanPolicyValue : public ::java::lang::Object +{ + +public: // actually protected + LifespanPolicyValue(jint); +public: + static ::org::omg::PortableServer::LifespanPolicyValue * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = 6604562925399671611LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _TRANSIENT = 0; + static ::org::omg::PortableServer::LifespanPolicyValue * TRANSIENT; + static const jint _PERSISTENT = 1; + static ::org::omg::PortableServer::LifespanPolicyValue * PERSISTENT; +private: + static JArray< ::org::omg::PortableServer::LifespanPolicyValue * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_LifespanPolicyValue__ diff --git a/libjava/org/omg/PortableServer/POA.h b/libjava/org/omg/PortableServer/POA.h new file mode 100644 index 00000000000..87defb66f18 --- /dev/null +++ b/libjava/org/omg/PortableServer/POA.h @@ -0,0 +1,109 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POA__ +#define __org_omg_PortableServer_POA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class AdapterActivator; + class IdAssignmentPolicy; + class IdAssignmentPolicyValue; + class IdUniquenessPolicy; + class IdUniquenessPolicyValue; + class ImplicitActivationPolicy; + class ImplicitActivationPolicyValue; + class LifespanPolicy; + class LifespanPolicyValue; + class POA; + class POAManager; + class RequestProcessingPolicy; + class RequestProcessingPolicyValue; + class Servant; + class ServantManager; + class ServantRetentionPolicy; + class ServantRetentionPolicyValue; + class ThreadPolicy; + class ThreadPolicyValue; + } + } + } +} + +class org::omg::PortableServer::POA : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::POA * create_POA(::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *) = 0; + virtual ::org::omg::PortableServer::POA * find_POA(::java::lang::String *, jboolean) = 0; + virtual JArray< jbyte > * activate_object(::org::omg::PortableServer::Servant *) = 0; + virtual void activate_object_with_id(JArray< jbyte > *, ::org::omg::PortableServer::Servant *) = 0; + virtual void deactivate_object(JArray< jbyte > *) = 0; + virtual ::org::omg::CORBA::Object * create_reference(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * create_reference_with_id(JArray< jbyte > *, ::java::lang::String *) = 0; + virtual ::org::omg::PortableServer::Servant * get_servant() = 0; + virtual void set_servant(::org::omg::PortableServer::Servant *) = 0; + virtual void set_servant_manager(::org::omg::PortableServer::ServantManager *) = 0; + virtual ::org::omg::PortableServer::ServantManager * get_servant_manager() = 0; + virtual JArray< jbyte > * id() = 0; + virtual ::org::omg::CORBA::Object * id_to_reference(JArray< jbyte > *) = 0; + virtual ::org::omg::PortableServer::Servant * id_to_servant(JArray< jbyte > *) = 0; + virtual JArray< jbyte > * reference_to_id(::org::omg::CORBA::Object *) = 0; + virtual ::org::omg::PortableServer::Servant * reference_to_servant(::org::omg::CORBA::Object *) = 0; + virtual JArray< jbyte > * servant_to_id(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::CORBA::Object * servant_to_reference(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::PortableServer::POAManager * the_POAManager() = 0; + virtual ::org::omg::PortableServer::AdapterActivator * the_activator() = 0; + virtual void the_activator(::org::omg::PortableServer::AdapterActivator *) = 0; + virtual JArray< ::org::omg::PortableServer::POA * > * the_children() = 0; + virtual ::java::lang::String * the_name() = 0; + virtual ::org::omg::PortableServer::POA * the_parent() = 0; + virtual void destroy(jboolean, jboolean) = 0; + virtual ::org::omg::PortableServer::IdUniquenessPolicy * create_id_uniqueness_policy(::org::omg::PortableServer::IdUniquenessPolicyValue *) = 0; + virtual ::org::omg::PortableServer::ImplicitActivationPolicy * create_implicit_activation_policy(::org::omg::PortableServer::ImplicitActivationPolicyValue *) = 0; + virtual ::org::omg::PortableServer::LifespanPolicy * create_lifespan_policy(::org::omg::PortableServer::LifespanPolicyValue *) = 0; + virtual ::org::omg::PortableServer::RequestProcessingPolicy * create_request_processing_policy(::org::omg::PortableServer::RequestProcessingPolicyValue *) = 0; + virtual ::org::omg::PortableServer::ServantRetentionPolicy * create_servant_retention_policy(::org::omg::PortableServer::ServantRetentionPolicyValue *) = 0; + virtual ::org::omg::PortableServer::ThreadPolicy * create_thread_policy(::org::omg::PortableServer::ThreadPolicyValue *) = 0; + virtual ::org::omg::PortableServer::IdAssignmentPolicy * create_id_assignment_policy(::org::omg::PortableServer::IdAssignmentPolicyValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_POA__ diff --git a/libjava/org/omg/PortableServer/POAHelper.h b/libjava/org/omg/PortableServer/POAHelper.h new file mode 100644 index 00000000000..7153cb097bb --- /dev/null +++ b/libjava/org/omg/PortableServer/POAHelper.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAHelper__ +#define __org_omg_PortableServer_POAHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + class POA; + class POAHelper; + } + } + } +} + +class org::omg::PortableServer::POAHelper : public ::java::lang::Object +{ + +public: + POAHelper(); + static ::org::omg::PortableServer::POA * narrow(::org::omg::CORBA::Object *); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POA *); + static ::org::omg::PortableServer::POA * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POA * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POA *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAHelper__ diff --git a/libjava/org/omg/PortableServer/POAManager.h b/libjava/org/omg/PortableServer/POAManager.h new file mode 100644 index 00000000000..f65e7979523 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAManager.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAManager__ +#define __org_omg_PortableServer_POAManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class POAManager; + namespace POAManagerPackage + { + class State; + } + } + } + } +} + +class org::omg::PortableServer::POAManager : public ::java::lang::Object +{ + +public: + virtual void activate() = 0; + virtual void deactivate(jboolean, jboolean) = 0; + virtual void discard_requests(jboolean) = 0; + virtual ::org::omg::PortableServer::POAManagerPackage::State * get_state() = 0; + virtual void hold_requests(jboolean) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_POAManager__ diff --git a/libjava/org/omg/PortableServer/POAManagerOperations.h b/libjava/org/omg/PortableServer/POAManagerOperations.h new file mode 100644 index 00000000000..2e275d4121b --- /dev/null +++ b/libjava/org/omg/PortableServer/POAManagerOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAManagerOperations__ +#define __org_omg_PortableServer_POAManagerOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class POAManagerOperations; + namespace POAManagerPackage + { + class State; + } + } + } + } +} + +class org::omg::PortableServer::POAManagerOperations : public ::java::lang::Object +{ + +public: + virtual void activate() = 0; + virtual void deactivate(jboolean, jboolean) = 0; + virtual void discard_requests(jboolean) = 0; + virtual ::org::omg::PortableServer::POAManagerPackage::State * get_state() = 0; + virtual void hold_requests(jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_POAManagerOperations__ diff --git a/libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactive.h b/libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactive.h new file mode 100644 index 00000000000..d0fc7c4d22f --- /dev/null +++ b/libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactive.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAManagerPackage_AdapterInactive__ +#define __org_omg_PortableServer_POAManagerPackage_AdapterInactive__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAManagerPackage + { + class AdapterInactive; + } + } + } + } +} + +class org::omg::PortableServer::POAManagerPackage::AdapterInactive : public ::org::omg::CORBA::UserException +{ + +public: + AdapterInactive(); + AdapterInactive(::java::lang::String *); +private: + static const jlong serialVersionUID = 6945182851085567131LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAManagerPackage_AdapterInactive__ diff --git a/libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.h b/libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.h new file mode 100644 index 00000000000..182db7b24c9 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAManagerPackage_AdapterInactiveHelper__ +#define __org_omg_PortableServer_POAManagerPackage_AdapterInactiveHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAManagerPackage + { + class AdapterInactive; + class AdapterInactiveHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAManagerPackage::AdapterInactiveHelper : public ::java::lang::Object +{ + +public: + AdapterInactiveHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAManagerPackage::AdapterInactive *); + static ::org::omg::PortableServer::POAManagerPackage::AdapterInactive * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAManagerPackage::AdapterInactive * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAManagerPackage::AdapterInactive *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAManagerPackage_AdapterInactiveHelper__ diff --git a/libjava/org/omg/PortableServer/POAManagerPackage/State.h b/libjava/org/omg/PortableServer/POAManagerPackage/State.h new file mode 100644 index 00000000000..62e46e12230 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAManagerPackage/State.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAManagerPackage_State__ +#define __org_omg_PortableServer_POAManagerPackage_State__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAManagerPackage + { + class State; + } + } + } + } +} + +class org::omg::PortableServer::POAManagerPackage::State : public ::java::lang::Object +{ + +public: // actually protected + State(jint); +public: + static ::org::omg::PortableServer::POAManagerPackage::State * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = -2451866258678193271LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _HOLDING = 0; + static ::org::omg::PortableServer::POAManagerPackage::State * HOLDING; + static const jint _ACTIVE = 1; + static ::org::omg::PortableServer::POAManagerPackage::State * ACTIVE; + static const jint _DISCARDING = 2; + static ::org::omg::PortableServer::POAManagerPackage::State * DISCARDING; + static const jint _INACTIVE = 3; + static ::org::omg::PortableServer::POAManagerPackage::State * INACTIVE; +private: + static JArray< ::org::omg::PortableServer::POAManagerPackage::State * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAManagerPackage_State__ diff --git a/libjava/org/omg/PortableServer/POAOperations.h b/libjava/org/omg/PortableServer/POAOperations.h new file mode 100644 index 00000000000..1f8227b2abc --- /dev/null +++ b/libjava/org/omg/PortableServer/POAOperations.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAOperations__ +#define __org_omg_PortableServer_POAOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Object; + class Policy; + } + namespace PortableServer + { + class AdapterActivator; + class IdAssignmentPolicy; + class IdAssignmentPolicyValue; + class IdUniquenessPolicy; + class IdUniquenessPolicyValue; + class ImplicitActivationPolicy; + class ImplicitActivationPolicyValue; + class LifespanPolicy; + class LifespanPolicyValue; + class POA; + class POAManager; + class POAOperations; + class RequestProcessingPolicy; + class RequestProcessingPolicyValue; + class Servant; + class ServantManager; + class ServantRetentionPolicy; + class ServantRetentionPolicyValue; + class ThreadPolicy; + class ThreadPolicyValue; + } + } + } +} + +class org::omg::PortableServer::POAOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::POA * create_POA(::java::lang::String *, ::org::omg::PortableServer::POAManager *, JArray< ::org::omg::CORBA::Policy * > *) = 0; + virtual ::org::omg::PortableServer::POA * find_POA(::java::lang::String *, jboolean) = 0; + virtual JArray< jbyte > * activate_object(::org::omg::PortableServer::Servant *) = 0; + virtual void activate_object_with_id(JArray< jbyte > *, ::org::omg::PortableServer::Servant *) = 0; + virtual void deactivate_object(JArray< jbyte > *) = 0; + virtual ::org::omg::CORBA::Object * create_reference(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * create_reference_with_id(JArray< jbyte > *, ::java::lang::String *) = 0; + virtual ::org::omg::PortableServer::Servant * get_servant() = 0; + virtual void set_servant(::org::omg::PortableServer::Servant *) = 0; + virtual void set_servant_manager(::org::omg::PortableServer::ServantManager *) = 0; + virtual ::org::omg::PortableServer::ServantManager * get_servant_manager() = 0; + virtual JArray< jbyte > * id() = 0; + virtual ::org::omg::CORBA::Object * id_to_reference(JArray< jbyte > *) = 0; + virtual ::org::omg::PortableServer::Servant * id_to_servant(JArray< jbyte > *) = 0; + virtual JArray< jbyte > * reference_to_id(::org::omg::CORBA::Object *) = 0; + virtual ::org::omg::PortableServer::Servant * reference_to_servant(::org::omg::CORBA::Object *) = 0; + virtual JArray< jbyte > * servant_to_id(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::CORBA::Object * servant_to_reference(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::PortableServer::POAManager * the_POAManager() = 0; + virtual ::org::omg::PortableServer::AdapterActivator * the_activator() = 0; + virtual void the_activator(::org::omg::PortableServer::AdapterActivator *) = 0; + virtual JArray< ::org::omg::PortableServer::POA * > * the_children() = 0; + virtual ::java::lang::String * the_name() = 0; + virtual ::org::omg::PortableServer::POA * the_parent() = 0; + virtual void destroy(jboolean, jboolean) = 0; + virtual ::org::omg::PortableServer::IdUniquenessPolicy * create_id_uniqueness_policy(::org::omg::PortableServer::IdUniquenessPolicyValue *) = 0; + virtual ::org::omg::PortableServer::ImplicitActivationPolicy * create_implicit_activation_policy(::org::omg::PortableServer::ImplicitActivationPolicyValue *) = 0; + virtual ::org::omg::PortableServer::LifespanPolicy * create_lifespan_policy(::org::omg::PortableServer::LifespanPolicyValue *) = 0; + virtual ::org::omg::PortableServer::RequestProcessingPolicy * create_request_processing_policy(::org::omg::PortableServer::RequestProcessingPolicyValue *) = 0; + virtual ::org::omg::PortableServer::ServantRetentionPolicy * create_servant_retention_policy(::org::omg::PortableServer::ServantRetentionPolicyValue *) = 0; + virtual ::org::omg::PortableServer::ThreadPolicy * create_thread_policy(::org::omg::PortableServer::ThreadPolicyValue *) = 0; + virtual ::org::omg::PortableServer::IdAssignmentPolicy * create_id_assignment_policy(::org::omg::PortableServer::IdAssignmentPolicyValue *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_POAOperations__ diff --git a/libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.h b/libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.h new file mode 100644 index 00000000000..e8cac5206c4 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_AdapterAlreadyExists__ +#define __org_omg_PortableServer_POAPackage_AdapterAlreadyExists__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class AdapterAlreadyExists; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::AdapterAlreadyExists : public ::org::omg::CORBA::UserException +{ + +public: + AdapterAlreadyExists(); + AdapterAlreadyExists(::java::lang::String *); +private: + static const jlong serialVersionUID = -2678288222917790041LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_AdapterAlreadyExists__ diff --git a/libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.h b/libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.h new file mode 100644 index 00000000000..5672fc9a1c1 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_AdapterAlreadyExistsHelper__ +#define __org_omg_PortableServer_POAPackage_AdapterAlreadyExistsHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class AdapterAlreadyExists; + class AdapterAlreadyExistsHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::AdapterAlreadyExistsHelper : public ::java::lang::Object +{ + +public: + AdapterAlreadyExistsHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::AdapterAlreadyExists *); + static ::org::omg::PortableServer::POAPackage::AdapterAlreadyExists * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::AdapterAlreadyExists * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::AdapterAlreadyExists *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_AdapterAlreadyExistsHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/AdapterNonExistent.h b/libjava/org/omg/PortableServer/POAPackage/AdapterNonExistent.h new file mode 100644 index 00000000000..96bea04f35a --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/AdapterNonExistent.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_AdapterNonExistent__ +#define __org_omg_PortableServer_POAPackage_AdapterNonExistent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class AdapterNonExistent; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::AdapterNonExistent : public ::org::omg::CORBA::UserException +{ + +public: + AdapterNonExistent(); + AdapterNonExistent(::java::lang::String *); +private: + static const jlong serialVersionUID = -9166706041988650696LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_AdapterNonExistent__ diff --git a/libjava/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.h b/libjava/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.h new file mode 100644 index 00000000000..06d76474e8d --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_AdapterNonExistentHelper__ +#define __org_omg_PortableServer_POAPackage_AdapterNonExistentHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class AdapterNonExistent; + class AdapterNonExistentHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::AdapterNonExistentHelper : public ::java::lang::Object +{ + +public: + AdapterNonExistentHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::AdapterNonExistent *); + static ::org::omg::PortableServer::POAPackage::AdapterNonExistent * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::AdapterNonExistent * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::AdapterNonExistent *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_AdapterNonExistentHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/InvalidPolicy.h b/libjava/org/omg/PortableServer/POAPackage/InvalidPolicy.h new file mode 100644 index 00000000000..8e9235ef74a --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/InvalidPolicy.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_InvalidPolicy__ +#define __org_omg_PortableServer_POAPackage_InvalidPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class InvalidPolicy; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::InvalidPolicy : public ::org::omg::CORBA::UserException +{ + +public: + InvalidPolicy(); + InvalidPolicy(::java::lang::String *, jshort); + InvalidPolicy(jshort); + ::java::lang::String * getMessage(); +private: + static const jlong serialVersionUID = 3204212102282117205LL; +public: + jshort __attribute__((aligned(__alignof__( ::org::omg::CORBA::UserException)))) index; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_InvalidPolicy__ diff --git a/libjava/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.h b/libjava/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.h new file mode 100644 index 00000000000..8f46cab20b0 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_InvalidPolicyHelper__ +#define __org_omg_PortableServer_POAPackage_InvalidPolicyHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class InvalidPolicy; + class InvalidPolicyHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::InvalidPolicyHelper : public ::java::lang::Object +{ + +public: + InvalidPolicyHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::InvalidPolicy *); + static ::org::omg::PortableServer::POAPackage::InvalidPolicy * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::InvalidPolicy * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::InvalidPolicy *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_InvalidPolicyHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/NoServant.h b/libjava/org/omg/PortableServer/POAPackage/NoServant.h new file mode 100644 index 00000000000..e0f4da1c973 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/NoServant.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_NoServant__ +#define __org_omg_PortableServer_POAPackage_NoServant__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class NoServant; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::NoServant : public ::org::omg::CORBA::UserException +{ + +public: + NoServant(); + NoServant(::java::lang::String *); +private: + static const jlong serialVersionUID = -5893773687270266061LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_NoServant__ diff --git a/libjava/org/omg/PortableServer/POAPackage/NoServantHelper.h b/libjava/org/omg/PortableServer/POAPackage/NoServantHelper.h new file mode 100644 index 00000000000..17250f78078 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/NoServantHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_NoServantHelper__ +#define __org_omg_PortableServer_POAPackage_NoServantHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class NoServant; + class NoServantHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::NoServantHelper : public ::java::lang::Object +{ + +public: + NoServantHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::NoServant *); + static ::org::omg::PortableServer::POAPackage::NoServant * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::NoServant * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::NoServant *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_NoServantHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.h b/libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.h new file mode 100644 index 00000000000..0b10b22b48c --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActive.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ObjectAlreadyActive__ +#define __org_omg_PortableServer_POAPackage_ObjectAlreadyActive__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class ObjectAlreadyActive; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ObjectAlreadyActive : public ::org::omg::CORBA::UserException +{ + +public: + ObjectAlreadyActive(); + ObjectAlreadyActive(::java::lang::String *); +private: + static const jlong serialVersionUID = -2919308871345098101LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ObjectAlreadyActive__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.h b/libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.h new file mode 100644 index 00000000000..d70f153e6bb --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ObjectAlreadyActiveHelper__ +#define __org_omg_PortableServer_POAPackage_ObjectAlreadyActiveHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class ObjectAlreadyActive; + class ObjectAlreadyActiveHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ObjectAlreadyActiveHelper : public ::java::lang::Object +{ + +public: + ObjectAlreadyActiveHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::ObjectAlreadyActive *); + static ::org::omg::PortableServer::POAPackage::ObjectAlreadyActive * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::ObjectAlreadyActive * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::ObjectAlreadyActive *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ObjectAlreadyActiveHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ObjectNotActive.h b/libjava/org/omg/PortableServer/POAPackage/ObjectNotActive.h new file mode 100644 index 00000000000..b4503414d56 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ObjectNotActive.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ObjectNotActive__ +#define __org_omg_PortableServer_POAPackage_ObjectNotActive__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class ObjectNotActive; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ObjectNotActive : public ::org::omg::CORBA::UserException +{ + +public: + ObjectNotActive(); + ObjectNotActive(::java::lang::String *); +private: + static const jlong serialVersionUID = 2269559915073532416LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ObjectNotActive__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.h b/libjava/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.h new file mode 100644 index 00000000000..1847674324b --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ObjectNotActiveHelper__ +#define __org_omg_PortableServer_POAPackage_ObjectNotActiveHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class ObjectNotActive; + class ObjectNotActiveHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ObjectNotActiveHelper : public ::java::lang::Object +{ + +public: + ObjectNotActiveHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::ObjectNotActive *); + static ::org::omg::PortableServer::POAPackage::ObjectNotActive * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::ObjectNotActive * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::ObjectNotActive *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ObjectNotActiveHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActive.h b/libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActive.h new file mode 100644 index 00000000000..01d9f2d3574 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActive.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ServantAlreadyActive__ +#define __org_omg_PortableServer_POAPackage_ServantAlreadyActive__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class ServantAlreadyActive; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ServantAlreadyActive : public ::org::omg::CORBA::UserException +{ + +public: + ServantAlreadyActive(); + ServantAlreadyActive(::java::lang::String *); +private: + static const jlong serialVersionUID = 780130793809887260LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ServantAlreadyActive__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.h b/libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.h new file mode 100644 index 00000000000..779c0343201 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ServantAlreadyActiveHelper__ +#define __org_omg_PortableServer_POAPackage_ServantAlreadyActiveHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class ServantAlreadyActive; + class ServantAlreadyActiveHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ServantAlreadyActiveHelper : public ::java::lang::Object +{ + +public: + ServantAlreadyActiveHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::ServantAlreadyActive *); + static ::org::omg::PortableServer::POAPackage::ServantAlreadyActive * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::ServantAlreadyActive * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::ServantAlreadyActive *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ServantAlreadyActiveHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ServantNotActive.h b/libjava/org/omg/PortableServer/POAPackage/ServantNotActive.h new file mode 100644 index 00000000000..37249db7a16 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ServantNotActive.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ServantNotActive__ +#define __org_omg_PortableServer_POAPackage_ServantNotActive__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class ServantNotActive; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ServantNotActive : public ::org::omg::CORBA::UserException +{ + +public: + ServantNotActive(); + ServantNotActive(::java::lang::String *); +private: + static const jlong serialVersionUID = -7806868032412803953LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ServantNotActive__ diff --git a/libjava/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.h b/libjava/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.h new file mode 100644 index 00000000000..aa68157ab3f --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/ServantNotActiveHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_ServantNotActiveHelper__ +#define __org_omg_PortableServer_POAPackage_ServantNotActiveHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class ServantNotActive; + class ServantNotActiveHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::ServantNotActiveHelper : public ::java::lang::Object +{ + +public: + ServantNotActiveHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::ServantNotActive *); + static ::org::omg::PortableServer::POAPackage::ServantNotActive * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::ServantNotActive * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::ServantNotActive *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_ServantNotActiveHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/WrongAdapter.h b/libjava/org/omg/PortableServer/POAPackage/WrongAdapter.h new file mode 100644 index 00000000000..3f4ec19322c --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/WrongAdapter.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_WrongAdapter__ +#define __org_omg_PortableServer_POAPackage_WrongAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class WrongAdapter; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::WrongAdapter : public ::org::omg::CORBA::UserException +{ + +public: + WrongAdapter(); + WrongAdapter(::java::lang::String *); +private: + static const jlong serialVersionUID = 7505320179916389200LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_WrongAdapter__ diff --git a/libjava/org/omg/PortableServer/POAPackage/WrongAdapterHelper.h b/libjava/org/omg/PortableServer/POAPackage/WrongAdapterHelper.h new file mode 100644 index 00000000000..bb4927be7f1 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/WrongAdapterHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_WrongAdapterHelper__ +#define __org_omg_PortableServer_POAPackage_WrongAdapterHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class WrongAdapter; + class WrongAdapterHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::WrongAdapterHelper : public ::java::lang::Object +{ + +public: + WrongAdapterHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::WrongAdapter *); + static ::org::omg::PortableServer::POAPackage::WrongAdapter * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::WrongAdapter * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::WrongAdapter *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_WrongAdapterHelper__ diff --git a/libjava/org/omg/PortableServer/POAPackage/WrongPolicy.h b/libjava/org/omg/PortableServer/POAPackage/WrongPolicy.h new file mode 100644 index 00000000000..aa8e99bb399 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/WrongPolicy.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_WrongPolicy__ +#define __org_omg_PortableServer_POAPackage_WrongPolicy__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + namespace POAPackage + { + class WrongPolicy; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::WrongPolicy : public ::org::omg::CORBA::UserException +{ + +public: + WrongPolicy(); + WrongPolicy(::java::lang::String *); +private: + static const jlong serialVersionUID = 1949765652955335195LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_WrongPolicy__ diff --git a/libjava/org/omg/PortableServer/POAPackage/WrongPolicyHelper.h b/libjava/org/omg/PortableServer/POAPackage/WrongPolicyHelper.h new file mode 100644 index 00000000000..0d648bbfba2 --- /dev/null +++ b/libjava/org/omg/PortableServer/POAPackage/WrongPolicyHelper.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_POAPackage_WrongPolicyHelper__ +#define __org_omg_PortableServer_POAPackage_WrongPolicyHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace POAPackage + { + class WrongPolicy; + class WrongPolicyHelper; + } + } + } + } +} + +class org::omg::PortableServer::POAPackage::WrongPolicyHelper : public ::java::lang::Object +{ + +public: + WrongPolicyHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::POAPackage::WrongPolicy *); + static ::org::omg::PortableServer::POAPackage::WrongPolicy * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::POAPackage::WrongPolicy * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::POAPackage::WrongPolicy *); +private: + static ::org::omg::CORBA::TypeCode * typeCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_POAPackage_WrongPolicyHelper__ diff --git a/libjava/org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.h b/libjava/org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.h new file mode 100644 index 00000000000..e07834e91c9 --- /dev/null +++ b/libjava/org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_REQUEST_PROCESSING_POLICY_ID__ +#define __org_omg_PortableServer_REQUEST_PROCESSING_POLICY_ID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class REQUEST_PROCESSING_POLICY_ID; + } + } + } +} + +class org::omg::PortableServer::REQUEST_PROCESSING_POLICY_ID : public ::java::lang::Object +{ + +public: + static const jint value = 22; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_REQUEST_PROCESSING_POLICY_ID__ diff --git a/libjava/org/omg/PortableServer/RequestProcessingPolicy.h b/libjava/org/omg/PortableServer/RequestProcessingPolicy.h new file mode 100644 index 00000000000..64eec4dec53 --- /dev/null +++ b/libjava/org/omg/PortableServer/RequestProcessingPolicy.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_RequestProcessingPolicy__ +#define __org_omg_PortableServer_RequestProcessingPolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class RequestProcessingPolicy; + class RequestProcessingPolicyValue; + } + } + } +} + +class org::omg::PortableServer::RequestProcessingPolicy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + virtual ::org::omg::PortableServer::RequestProcessingPolicyValue * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_RequestProcessingPolicy__ diff --git a/libjava/org/omg/PortableServer/RequestProcessingPolicyOperations.h b/libjava/org/omg/PortableServer/RequestProcessingPolicyOperations.h new file mode 100644 index 00000000000..e8769c63a43 --- /dev/null +++ b/libjava/org/omg/PortableServer/RequestProcessingPolicyOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_RequestProcessingPolicyOperations__ +#define __org_omg_PortableServer_RequestProcessingPolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace PortableServer + { + class RequestProcessingPolicyOperations; + class RequestProcessingPolicyValue; + } + } + } +} + +class org::omg::PortableServer::RequestProcessingPolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::RequestProcessingPolicyValue * value() = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_RequestProcessingPolicyOperations__ diff --git a/libjava/org/omg/PortableServer/RequestProcessingPolicyValue.h b/libjava/org/omg/PortableServer/RequestProcessingPolicyValue.h new file mode 100644 index 00000000000..88fdf8833ac --- /dev/null +++ b/libjava/org/omg/PortableServer/RequestProcessingPolicyValue.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_RequestProcessingPolicyValue__ +#define __org_omg_PortableServer_RequestProcessingPolicyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class RequestProcessingPolicyValue; + } + } + } +} + +class org::omg::PortableServer::RequestProcessingPolicyValue : public ::java::lang::Object +{ + +public: // actually protected + RequestProcessingPolicyValue(jint); +public: + static ::org::omg::PortableServer::RequestProcessingPolicyValue * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = 7646563512329907695LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _USE_ACTIVE_OBJECT_MAP_ONLY = 0; + static ::org::omg::PortableServer::RequestProcessingPolicyValue * USE_ACTIVE_OBJECT_MAP_ONLY; + static const jint _USE_DEFAULT_SERVANT = 1; + static ::org::omg::PortableServer::RequestProcessingPolicyValue * USE_DEFAULT_SERVANT; + static const jint _USE_SERVANT_MANAGER = 2; + static ::org::omg::PortableServer::RequestProcessingPolicyValue * USE_SERVANT_MANAGER; +private: + static JArray< ::org::omg::PortableServer::RequestProcessingPolicyValue * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_RequestProcessingPolicyValue__ diff --git a/libjava/org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.h b/libjava/org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.h new file mode 100644 index 00000000000..ae6e5c46bf3 --- /dev/null +++ b/libjava/org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_SERVANT_RETENTION_POLICY_ID__ +#define __org_omg_PortableServer_SERVANT_RETENTION_POLICY_ID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class SERVANT_RETENTION_POLICY_ID; + } + } + } +} + +class org::omg::PortableServer::SERVANT_RETENTION_POLICY_ID : public ::java::lang::Object +{ + +public: + static const jint value = 21; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_SERVANT_RETENTION_POLICY_ID__ diff --git a/libjava/org/omg/PortableServer/Servant.h b/libjava/org/omg/PortableServer/Servant.h new file mode 100644 index 00000000000..8116067ff11 --- /dev/null +++ b/libjava/org/omg/PortableServer/Servant.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_Servant__ +#define __org_omg_PortableServer_Servant__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + } + namespace PortableServer + { + class POA; + class Servant; + namespace portable + { + class Delegate; + } + } + } + } +} + +class org::omg::PortableServer::Servant : public ::java::lang::Object +{ + +public: + Servant(); + virtual JArray< ::java::lang::String * > * _all_interfaces(::org::omg::PortableServer::POA *, JArray< jbyte > *) = 0; + virtual ::org::omg::PortableServer::portable::Delegate * _get_delegate(); + virtual ::org::omg::CORBA::Object * _get_interface_def(); + virtual jboolean _is_a(::java::lang::String *); + virtual jboolean _non_existent(); + virtual ::org::omg::CORBA::ORB * _orb(); + virtual ::org::omg::PortableServer::POA * _default_POA(); + virtual JArray< jbyte > * _object_id(); + virtual ::org::omg::PortableServer::POA * _poa(); + virtual void _set_delegate(::org::omg::PortableServer::portable::Delegate *); + virtual ::org::omg::CORBA::Object * _this_object(::org::omg::CORBA::ORB *); + virtual ::org::omg::CORBA::Object * _this_object(); +private: + ::org::omg::PortableServer::portable::Delegate * __attribute__((aligned(__alignof__( ::java::lang::Object)))) delegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_Servant__ diff --git a/libjava/org/omg/PortableServer/ServantActivator.h b/libjava/org/omg/PortableServer/ServantActivator.h new file mode 100644 index 00000000000..836dc9be916 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantActivator.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantActivator__ +#define __org_omg_PortableServer_ServantActivator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class POA; + class Servant; + class ServantActivator; + } + } + } +} + +class org::omg::PortableServer::ServantActivator : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual void etherealize(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::org::omg::PortableServer::Servant *, jboolean, jboolean) = 0; + virtual ::org::omg::PortableServer::Servant * incarnate(JArray< jbyte > *, ::org::omg::PortableServer::POA *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantActivator__ diff --git a/libjava/org/omg/PortableServer/ServantActivatorHelper.h b/libjava/org/omg/PortableServer/ServantActivatorHelper.h new file mode 100644 index 00000000000..1b302600c5b --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantActivatorHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantActivatorHelper__ +#define __org_omg_PortableServer_ServantActivatorHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + class ServantActivator; + class ServantActivatorHelper; + } + } + } +} + +class org::omg::PortableServer::ServantActivatorHelper : public ::java::lang::Object +{ + +public: + ServantActivatorHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::ServantActivator *); + static ::org::omg::PortableServer::ServantActivator * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::ServantActivator * narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableServer::ServantActivator * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableServer::ServantActivator * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::ServantActivator *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantActivatorHelper__ diff --git a/libjava/org/omg/PortableServer/ServantActivatorOperations.h b/libjava/org/omg/PortableServer/ServantActivatorOperations.h new file mode 100644 index 00000000000..436693990f8 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantActivatorOperations.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantActivatorOperations__ +#define __org_omg_PortableServer_ServantActivatorOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class POA; + class Servant; + class ServantActivatorOperations; + } + } + } +} + +class org::omg::PortableServer::ServantActivatorOperations : public ::java::lang::Object +{ + +public: + virtual void etherealize(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::org::omg::PortableServer::Servant *, jboolean, jboolean) = 0; + virtual ::org::omg::PortableServer::Servant * incarnate(JArray< jbyte > *, ::org::omg::PortableServer::POA *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantActivatorOperations__ diff --git a/libjava/org/omg/PortableServer/ServantActivatorPOA$delegator.h b/libjava/org/omg/PortableServer/ServantActivatorPOA$delegator.h new file mode 100644 index 00000000000..769c43a63d4 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantActivatorPOA$delegator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantActivatorPOA$delegator__ +#define __org_omg_PortableServer_ServantActivatorPOA$delegator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class POA; + class Servant; + class ServantActivatorPOA; + class ServantActivatorPOA$delegator; + } + } + } +} + +class org::omg::PortableServer::ServantActivatorPOA$delegator : public ::gnu::CORBA::Poa::gnuServantObject +{ + +public: // actually package-private + ServantActivatorPOA$delegator(::org::omg::PortableServer::ServantActivatorPOA *, ::org::omg::PortableServer::Servant *); +public: + virtual ::org::omg::PortableServer::Servant * incarnate(JArray< jbyte > *, ::org::omg::PortableServer::POA *); + virtual void etherealize(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::org::omg::PortableServer::Servant *, jboolean, jboolean); +public: // actually package-private + ::org::omg::PortableServer::ServantActivatorPOA * __attribute__((aligned(__alignof__( ::gnu::CORBA::Poa::gnuServantObject)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantActivatorPOA$delegator__ diff --git a/libjava/org/omg/PortableServer/ServantActivatorPOA.h b/libjava/org/omg/PortableServer/ServantActivatorPOA.h new file mode 100644 index 00000000000..8b524bf6b84 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantActivatorPOA.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantActivatorPOA__ +#define __org_omg_PortableServer_ServantActivatorPOA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace PortableServer + { + class POA; + class Servant; + class ServantActivator; + class ServantActivatorPOA; + } + } + } +} + +class org::omg::PortableServer::ServantActivatorPOA : public ::org::omg::PortableServer::Servant +{ + +public: + ServantActivatorPOA(); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual JArray< ::java::lang::String * > * _all_interfaces(::org::omg::PortableServer::POA *, JArray< jbyte > *); + virtual ::org::omg::PortableServer::ServantActivator * _this(); + virtual ::org::omg::PortableServer::ServantActivator * _this(::org::omg::CORBA::ORB *); + virtual void etherealize(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::org::omg::PortableServer::Servant *, jboolean, jboolean) = 0; + virtual ::org::omg::PortableServer::Servant * incarnate(JArray< jbyte > *, ::org::omg::PortableServer::POA *) = 0; +public: // actually package-private + ::org::omg::PortableServer::ServantActivatorPOA * __attribute__((aligned(__alignof__( ::org::omg::PortableServer::Servant)))) THIS; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantActivatorPOA__ diff --git a/libjava/org/omg/PortableServer/ServantLocator.h b/libjava/org/omg/PortableServer/ServantLocator.h new file mode 100644 index 00000000000..4dd30fc38be --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantLocator.h @@ -0,0 +1,67 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantLocator__ +#define __org_omg_PortableServer_ServantLocator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class POA; + class Servant; + class ServantLocator; + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class org::omg::PortableServer::ServantLocator : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::PortableServer::Servant * preinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder *) = 0; + virtual void postinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::java::lang::Object *, ::org::omg::PortableServer::Servant *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantLocator__ diff --git a/libjava/org/omg/PortableServer/ServantLocatorHelper.h b/libjava/org/omg/PortableServer/ServantLocatorHelper.h new file mode 100644 index 00000000000..bd80a46ca08 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantLocatorHelper.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantLocatorHelper__ +#define __org_omg_PortableServer_ServantLocatorHelper__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Any; + class Object; + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + class ServantLocator; + class ServantLocatorHelper; + } + } + } +} + +class org::omg::PortableServer::ServantLocatorHelper : public ::java::lang::Object +{ + +public: + ServantLocatorHelper(); + static ::org::omg::CORBA::TypeCode * type(); + static void insert(::org::omg::CORBA::Any *, ::org::omg::PortableServer::ServantLocator *); + static ::org::omg::PortableServer::ServantLocator * extract(::org::omg::CORBA::Any *); + static ::java::lang::String * id(); + static ::org::omg::PortableServer::ServantLocator * narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableServer::ServantLocator * unchecked_narrow(::org::omg::CORBA::Object *); + static ::org::omg::PortableServer::ServantLocator * read(::org::omg::CORBA::portable::InputStream *); + static void write(::org::omg::CORBA::portable::OutputStream *, ::org::omg::PortableServer::ServantLocator *); + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantLocatorHelper__ diff --git a/libjava/org/omg/PortableServer/ServantLocatorOperations.h b/libjava/org/omg/PortableServer/ServantLocatorOperations.h new file mode 100644 index 00000000000..a54d01f23ec --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantLocatorOperations.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantLocatorOperations__ +#define __org_omg_PortableServer_ServantLocatorOperations__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class POA; + class Servant; + class ServantLocatorOperations; + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class org::omg::PortableServer::ServantLocatorOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::Servant * preinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder *) = 0; + virtual void postinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::java::lang::Object *, ::org::omg::PortableServer::Servant *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantLocatorOperations__ diff --git a/libjava/org/omg/PortableServer/ServantLocatorPOA$delegator.h b/libjava/org/omg/PortableServer/ServantLocatorPOA$delegator.h new file mode 100644 index 00000000000..37af8e7df2c --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantLocatorPOA$delegator.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantLocatorPOA$delegator__ +#define __org_omg_PortableServer_ServantLocatorPOA$delegator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class POA; + class Servant; + class ServantLocatorPOA; + class ServantLocatorPOA$delegator; + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class org::omg::PortableServer::ServantLocatorPOA$delegator : public ::gnu::CORBA::Poa::gnuServantObject +{ + +public: // actually package-private + ServantLocatorPOA$delegator(::org::omg::PortableServer::ServantLocatorPOA *, ::org::omg::PortableServer::Servant *); +public: + virtual ::org::omg::PortableServer::Servant * preinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder *); + virtual void postinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::java::lang::Object *, ::org::omg::PortableServer::Servant *); + virtual JArray< ::java::lang::String * > * _ids(); +public: // actually package-private + ::org::omg::PortableServer::ServantLocatorPOA * __attribute__((aligned(__alignof__( ::gnu::CORBA::Poa::gnuServantObject)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantLocatorPOA$delegator__ diff --git a/libjava/org/omg/PortableServer/ServantLocatorPOA.h b/libjava/org/omg/PortableServer/ServantLocatorPOA.h new file mode 100644 index 00000000000..c4f4fcea41f --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantLocatorPOA.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantLocatorPOA__ +#define __org_omg_PortableServer_ServantLocatorPOA__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + namespace portable + { + class InputStream; + class OutputStream; + class ResponseHandler; + } + } + namespace PortableServer + { + class POA; + class Servant; + class ServantLocator; + class ServantLocatorPOA; + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class org::omg::PortableServer::ServantLocatorPOA : public ::org::omg::PortableServer::Servant +{ + +public: + ServantLocatorPOA(); + virtual ::org::omg::CORBA::portable::OutputStream * _invoke(::java::lang::String *, ::org::omg::CORBA::portable::InputStream *, ::org::omg::CORBA::portable::ResponseHandler *); + virtual JArray< ::java::lang::String * > * _all_interfaces(::org::omg::PortableServer::POA *, JArray< jbyte > *); + virtual ::org::omg::PortableServer::ServantLocator * _this(); + virtual ::org::omg::PortableServer::ServantLocator * _this(::org::omg::CORBA::ORB *); + virtual ::org::omg::PortableServer::Servant * preinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder *) = 0; + virtual void postinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::java::lang::Object *, ::org::omg::PortableServer::Servant *) = 0; +public: // actually package-private + ::org::omg::PortableServer::ServantLocatorPOA * __attribute__((aligned(__alignof__( ::org::omg::PortableServer::Servant)))) THIS; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantLocatorPOA__ diff --git a/libjava/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.h b/libjava/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.h new file mode 100644 index 00000000000..d983d8093cf --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantLocatorPackage_CookieHolder__ +#define __org_omg_PortableServer_ServantLocatorPackage_CookieHolder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class TypeCode; + namespace portable + { + class InputStream; + class OutputStream; + } + } + namespace PortableServer + { + namespace ServantLocatorPackage + { + class CookieHolder; + } + } + } + } +} + +class org::omg::PortableServer::ServantLocatorPackage::CookieHolder : public ::java::lang::Object +{ + +public: + CookieHolder(); + CookieHolder(::java::lang::Object *); + void _read(::org::omg::CORBA::portable::InputStream *); + ::org::omg::CORBA::TypeCode * _type(); + void _write(::org::omg::CORBA::portable::OutputStream *); + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantLocatorPackage_CookieHolder__ diff --git a/libjava/org/omg/PortableServer/ServantManager.h b/libjava/org/omg/PortableServer/ServantManager.h new file mode 100644 index 00000000000..9ed97078644 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantManager.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantManager__ +#define __org_omg_PortableServer_ServantManager__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class ServantManager; + } + } + } +} + +class org::omg::PortableServer::ServantManager : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantManager__ diff --git a/libjava/org/omg/PortableServer/ServantManagerOperations.h b/libjava/org/omg/PortableServer/ServantManagerOperations.h new file mode 100644 index 00000000000..8aa8b19df88 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantManagerOperations.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantManagerOperations__ +#define __org_omg_PortableServer_ServantManagerOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class ServantManagerOperations; + } + } + } +} + +class org::omg::PortableServer::ServantManagerOperations : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantManagerOperations__ diff --git a/libjava/org/omg/PortableServer/ServantRetentionPolicy.h b/libjava/org/omg/PortableServer/ServantRetentionPolicy.h new file mode 100644 index 00000000000..1d7f7d79704 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantRetentionPolicy.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantRetentionPolicy__ +#define __org_omg_PortableServer_ServantRetentionPolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class ServantRetentionPolicy; + class ServantRetentionPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ServantRetentionPolicy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + virtual ::org::omg::PortableServer::ServantRetentionPolicyValue * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantRetentionPolicy__ diff --git a/libjava/org/omg/PortableServer/ServantRetentionPolicyOperations.h b/libjava/org/omg/PortableServer/ServantRetentionPolicyOperations.h new file mode 100644 index 00000000000..e6ebd89e671 --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantRetentionPolicyOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantRetentionPolicyOperations__ +#define __org_omg_PortableServer_ServantRetentionPolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace PortableServer + { + class ServantRetentionPolicyOperations; + class ServantRetentionPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ServantRetentionPolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::ServantRetentionPolicyValue * value() = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ServantRetentionPolicyOperations__ diff --git a/libjava/org/omg/PortableServer/ServantRetentionPolicyValue.h b/libjava/org/omg/PortableServer/ServantRetentionPolicyValue.h new file mode 100644 index 00000000000..c34521b72fb --- /dev/null +++ b/libjava/org/omg/PortableServer/ServantRetentionPolicyValue.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ServantRetentionPolicyValue__ +#define __org_omg_PortableServer_ServantRetentionPolicyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class ServantRetentionPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ServantRetentionPolicyValue : public ::java::lang::Object +{ + +public: // actually protected + ServantRetentionPolicyValue(jint); +public: + static ::org::omg::PortableServer::ServantRetentionPolicyValue * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = -7476100336036943822LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _RETAIN = 0; + static ::org::omg::PortableServer::ServantRetentionPolicyValue * RETAIN; + static const jint _NON_RETAIN = 1; + static ::org::omg::PortableServer::ServantRetentionPolicyValue * NON_RETAIN; +private: + static JArray< ::org::omg::PortableServer::ServantRetentionPolicyValue * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ServantRetentionPolicyValue__ diff --git a/libjava/org/omg/PortableServer/THREAD_POLICY_ID.h b/libjava/org/omg/PortableServer/THREAD_POLICY_ID.h new file mode 100644 index 00000000000..418919cdb86 --- /dev/null +++ b/libjava/org/omg/PortableServer/THREAD_POLICY_ID.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_THREAD_POLICY_ID__ +#define __org_omg_PortableServer_THREAD_POLICY_ID__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class THREAD_POLICY_ID; + } + } + } +} + +class org::omg::PortableServer::THREAD_POLICY_ID : public ::java::lang::Object +{ + +public: + static const jint value = 16; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_THREAD_POLICY_ID__ diff --git a/libjava/org/omg/PortableServer/ThreadPolicy.h b/libjava/org/omg/PortableServer/ThreadPolicy.h new file mode 100644 index 00000000000..06e09b6526f --- /dev/null +++ b/libjava/org/omg/PortableServer/ThreadPolicy.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ThreadPolicy__ +#define __org_omg_PortableServer_ThreadPolicy__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace PortableServer + { + class ThreadPolicy; + class ThreadPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ThreadPolicy : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + virtual ::org::omg::PortableServer::ThreadPolicyValue * value() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ThreadPolicy__ diff --git a/libjava/org/omg/PortableServer/ThreadPolicyOperations.h b/libjava/org/omg/PortableServer/ThreadPolicyOperations.h new file mode 100644 index 00000000000..fbadf62b657 --- /dev/null +++ b/libjava/org/omg/PortableServer/ThreadPolicyOperations.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ThreadPolicyOperations__ +#define __org_omg_PortableServer_ThreadPolicyOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Policy; + } + namespace PortableServer + { + class ThreadPolicyOperations; + class ThreadPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ThreadPolicyOperations : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::ThreadPolicyValue * value() = 0; + virtual ::org::omg::CORBA::Policy * copy() = 0; + virtual void destroy() = 0; + virtual jint policy_type() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_ThreadPolicyOperations__ diff --git a/libjava/org/omg/PortableServer/ThreadPolicyValue.h b/libjava/org/omg/PortableServer/ThreadPolicyValue.h new file mode 100644 index 00000000000..9953a6b6968 --- /dev/null +++ b/libjava/org/omg/PortableServer/ThreadPolicyValue.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_ThreadPolicyValue__ +#define __org_omg_PortableServer_ThreadPolicyValue__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class ThreadPolicyValue; + } + } + } +} + +class org::omg::PortableServer::ThreadPolicyValue : public ::java::lang::Object +{ + +public: // actually protected + ThreadPolicyValue(jint); +public: + static ::org::omg::PortableServer::ThreadPolicyValue * from_int(jint); + virtual ::java::lang::String * toString(); + virtual jint value(); +private: + static const jlong serialVersionUID = -8874988828297141512LL; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value; +public: + static const jint _ORB_CTRL_MODEL = 0; + static ::org::omg::PortableServer::ThreadPolicyValue * ORB_CTRL_MODEL; + static const jint _SINGLE_THREAD_MODEL = 1; + static ::org::omg::PortableServer::ThreadPolicyValue * SINGLE_THREAD_MODEL; +private: + static JArray< ::org::omg::PortableServer::ThreadPolicyValue * > * enume; + static JArray< ::java::lang::String * > * state_names; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer_ThreadPolicyValue__ diff --git a/libjava/org/omg/PortableServer/_ServantActivatorStub.h b/libjava/org/omg/PortableServer/_ServantActivatorStub.h new file mode 100644 index 00000000000..d1b120fcf41 --- /dev/null +++ b/libjava/org/omg/PortableServer/_ServantActivatorStub.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer__ServantActivatorStub__ +#define __org_omg_PortableServer__ServantActivatorStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class POA; + class Servant; + class _ServantActivatorStub; + } + } + } +} + +class org::omg::PortableServer::_ServantActivatorStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _ServantActivatorStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::PortableServer::Servant * incarnate(JArray< jbyte > *, ::org::omg::PortableServer::POA *); + virtual void etherealize(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::org::omg::PortableServer::Servant *, jboolean, jboolean); +private: + static const jlong serialVersionUID = -685959979577281419LL; +public: + static ::java::lang::Class * _opsClass; + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer__ServantActivatorStub__ diff --git a/libjava/org/omg/PortableServer/_ServantLocatorStub.h b/libjava/org/omg/PortableServer/_ServantLocatorStub.h new file mode 100644 index 00000000000..7cfa1de88cc --- /dev/null +++ b/libjava/org/omg/PortableServer/_ServantLocatorStub.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer__ServantLocatorStub__ +#define __org_omg_PortableServer__ServantLocatorStub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace PortableServer + { + class POA; + class Servant; + namespace ServantLocatorPackage + { + class CookieHolder; + } + class _ServantLocatorStub; + } + } + } +} + +class org::omg::PortableServer::_ServantLocatorStub : public ::org::omg::CORBA::portable::ObjectImpl +{ + +public: + _ServantLocatorStub(); + virtual JArray< ::java::lang::String * > * _ids(); + virtual ::org::omg::PortableServer::Servant * preinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::org::omg::PortableServer::ServantLocatorPackage::CookieHolder *); + virtual void postinvoke(JArray< jbyte > *, ::org::omg::PortableServer::POA *, ::java::lang::String *, ::java::lang::Object *, ::org::omg::PortableServer::Servant *); +private: + static const jlong serialVersionUID = -2374963516905770111LL; +public: + static ::java::lang::Class * _opsClass; +public: // actually package-private + static ::java::lang::String * OVERRIDE; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_PortableServer__ServantLocatorStub__ diff --git a/libjava/org/omg/PortableServer/portable/Delegate.h b/libjava/org/omg/PortableServer/portable/Delegate.h new file mode 100644 index 00000000000..ecf8c512a18 --- /dev/null +++ b/libjava/org/omg/PortableServer/portable/Delegate.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_PortableServer_portable_Delegate__ +#define __org_omg_PortableServer_portable_Delegate__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class ORB; + class Object; + } + namespace PortableServer + { + class POA; + class Servant; + namespace portable + { + class Delegate; + } + } + } + } +} + +class org::omg::PortableServer::portable::Delegate : public ::java::lang::Object +{ + +public: + virtual ::org::omg::PortableServer::POA * default_POA(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::CORBA::Object * get_interface_def(::org::omg::PortableServer::Servant *) = 0; + virtual jboolean is_a(::org::omg::PortableServer::Servant *, ::java::lang::String *) = 0; + virtual jboolean non_existent(::org::omg::PortableServer::Servant *) = 0; + virtual JArray< jbyte > * object_id(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::CORBA::ORB * orb(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::PortableServer::POA * poa(::org::omg::PortableServer::Servant *) = 0; + virtual ::org::omg::CORBA::Object * this_object(::org::omg::PortableServer::Servant *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_PortableServer_portable_Delegate__ diff --git a/libjava/org/omg/SendingContext/RunTime.h b/libjava/org/omg/SendingContext/RunTime.h new file mode 100644 index 00000000000..95138bbaee9 --- /dev/null +++ b/libjava/org/omg/SendingContext/RunTime.h @@ -0,0 +1,59 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_SendingContext_RunTime__ +#define __org_omg_SendingContext_RunTime__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace CORBA + { + class Context; + class ContextList; + class DomainManager; + class ExceptionList; + class NVList; + class NamedValue; + class Object; + class Policy; + class Request; + class SetOverrideType; + } + namespace SendingContext + { + class RunTime; + } + } + } +} + +class org::omg::SendingContext::RunTime : public ::java::lang::Object +{ + +public: + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *) = 0; + virtual ::org::omg::CORBA::Request * _create_request(::org::omg::CORBA::Context *, ::java::lang::String *, ::org::omg::CORBA::NVList *, ::org::omg::CORBA::NamedValue *, ::org::omg::CORBA::ExceptionList *, ::org::omg::CORBA::ContextList *) = 0; + virtual ::org::omg::CORBA::Object * _duplicate() = 0; + virtual JArray< ::org::omg::CORBA::DomainManager * > * _get_domain_managers() = 0; + virtual ::org::omg::CORBA::Object * _get_interface_def() = 0; + virtual ::org::omg::CORBA::Policy * _get_policy(jint) = 0; + virtual jint _hash(jint) = 0; + virtual jboolean _is_a(::java::lang::String *) = 0; + virtual jboolean _is_equivalent(::org::omg::CORBA::Object *) = 0; + virtual jboolean _non_existent() = 0; + virtual void _release() = 0; + virtual ::org::omg::CORBA::Request * _request(::java::lang::String *) = 0; + virtual ::org::omg::CORBA::Object * _set_policy_override(JArray< ::org::omg::CORBA::Policy * > *, ::org::omg::CORBA::SetOverrideType *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_SendingContext_RunTime__ diff --git a/libjava/org/omg/SendingContext/RunTimeOperations.h b/libjava/org/omg/SendingContext/RunTimeOperations.h new file mode 100644 index 00000000000..523afb3b98b --- /dev/null +++ b/libjava/org/omg/SendingContext/RunTimeOperations.h @@ -0,0 +1,31 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_SendingContext_RunTimeOperations__ +#define __org_omg_SendingContext_RunTimeOperations__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace omg + { + namespace SendingContext + { + class RunTimeOperations; + } + } + } +} + +class org::omg::SendingContext::RunTimeOperations : public ::java::lang::Object +{ + +public: + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_omg_SendingContext_RunTimeOperations__ diff --git a/libjava/org/omg/stub/java/rmi/_Remote_Stub.h b/libjava/org/omg/stub/java/rmi/_Remote_Stub.h new file mode 100644 index 00000000000..e6c6c164565 --- /dev/null +++ b/libjava/org/omg/stub/java/rmi/_Remote_Stub.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_omg_stub_java_rmi__Remote_Stub__ +#define __org_omg_stub_java_rmi__Remote_Stub__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace omg + { + namespace stub + { + namespace java + { + namespace rmi + { + class _Remote_Stub; + } + } + } + } + } +} + +class org::omg::stub::java::rmi::_Remote_Stub : public ::javax::rmi::CORBA::Stub +{ + +public: + _Remote_Stub(); + JArray< ::java::lang::String * > * _ids(); +private: + static const jlong serialVersionUID = -1967190271952680697LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_omg_stub_java_rmi__Remote_Stub__ diff --git a/libjava/org/relaxng/datatype/Datatype.h b/libjava/org/relaxng/datatype/Datatype.h new file mode 100644 index 00000000000..7274ef5b080 --- /dev/null +++ b/libjava/org/relaxng/datatype/Datatype.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_Datatype__ +#define __org_relaxng_datatype_Datatype__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class DatatypeStreamingValidator; + class ValidationContext; + } + } + } +} + +class org::relaxng::datatype::Datatype : public ::java::lang::Object +{ + +public: + virtual jboolean isValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *) = 0; + virtual void checkValid(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *) = 0; + virtual ::org::relaxng::datatype::DatatypeStreamingValidator * createStreamingValidator(::org::relaxng::datatype::ValidationContext *) = 0; + virtual ::java::lang::Object * createValue(::java::lang::String *, ::org::relaxng::datatype::ValidationContext *) = 0; + virtual jboolean sameValue(::java::lang::Object *, ::java::lang::Object *) = 0; + virtual jint valueHashCode(::java::lang::Object *) = 0; + virtual jint getIdType() = 0; + virtual jboolean isContextDependent() = 0; + static const jint ID_TYPE_NULL = 0; + static const jint ID_TYPE_ID = 1; + static const jint ID_TYPE_IDREF = 2; + static const jint ID_TYPE_IDREFS = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_relaxng_datatype_Datatype__ diff --git a/libjava/org/relaxng/datatype/DatatypeBuilder.h b/libjava/org/relaxng/datatype/DatatypeBuilder.h new file mode 100644 index 00000000000..7a996e68f3d --- /dev/null +++ b/libjava/org/relaxng/datatype/DatatypeBuilder.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_DatatypeBuilder__ +#define __org_relaxng_datatype_DatatypeBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class DatatypeBuilder; + class ValidationContext; + } + } + } +} + +class org::relaxng::datatype::DatatypeBuilder : public ::java::lang::Object +{ + +public: + virtual void addParameter(::java::lang::String *, ::java::lang::String *, ::org::relaxng::datatype::ValidationContext *) = 0; + virtual ::org::relaxng::datatype::Datatype * createDatatype() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_relaxng_datatype_DatatypeBuilder__ diff --git a/libjava/org/relaxng/datatype/DatatypeException.h b/libjava/org/relaxng/datatype/DatatypeException.h new file mode 100644 index 00000000000..e8a3f3219ca --- /dev/null +++ b/libjava/org/relaxng/datatype/DatatypeException.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_DatatypeException__ +#define __org_relaxng_datatype_DatatypeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeException; + } + } + } +} + +class org::relaxng::datatype::DatatypeException : public ::java::lang::Exception +{ + +public: + DatatypeException(jint, ::java::lang::String *); + DatatypeException(::java::lang::String *); + DatatypeException(); + virtual jint getIndex(); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Exception)))) index; +public: + static const jint UNKNOWN = -1; + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_DatatypeException__ diff --git a/libjava/org/relaxng/datatype/DatatypeLibrary.h b/libjava/org/relaxng/datatype/DatatypeLibrary.h new file mode 100644 index 00000000000..bdfcc94dc05 --- /dev/null +++ b/libjava/org/relaxng/datatype/DatatypeLibrary.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_DatatypeLibrary__ +#define __org_relaxng_datatype_DatatypeLibrary__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class DatatypeBuilder; + class DatatypeLibrary; + } + } + } +} + +class org::relaxng::datatype::DatatypeLibrary : public ::java::lang::Object +{ + +public: + virtual ::org::relaxng::datatype::DatatypeBuilder * createDatatypeBuilder(::java::lang::String *) = 0; + virtual ::org::relaxng::datatype::Datatype * createDatatype(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_relaxng_datatype_DatatypeLibrary__ diff --git a/libjava/org/relaxng/datatype/DatatypeLibraryFactory.h b/libjava/org/relaxng/datatype/DatatypeLibraryFactory.h new file mode 100644 index 00000000000..074e005e5c6 --- /dev/null +++ b/libjava/org/relaxng/datatype/DatatypeLibraryFactory.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_DatatypeLibraryFactory__ +#define __org_relaxng_datatype_DatatypeLibraryFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeLibrary; + class DatatypeLibraryFactory; + } + } + } +} + +class org::relaxng::datatype::DatatypeLibraryFactory : public ::java::lang::Object +{ + +public: + virtual ::org::relaxng::datatype::DatatypeLibrary * createDatatypeLibrary(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_relaxng_datatype_DatatypeLibraryFactory__ diff --git a/libjava/org/relaxng/datatype/DatatypeStreamingValidator.h b/libjava/org/relaxng/datatype/DatatypeStreamingValidator.h new file mode 100644 index 00000000000..b05ed17d14f --- /dev/null +++ b/libjava/org/relaxng/datatype/DatatypeStreamingValidator.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_DatatypeStreamingValidator__ +#define __org_relaxng_datatype_DatatypeStreamingValidator__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeStreamingValidator; + } + } + } +} + +class org::relaxng::datatype::DatatypeStreamingValidator : public ::java::lang::Object +{ + +public: + virtual void addCharacters(JArray< jchar > *, jint, jint) = 0; + virtual jboolean isValid() = 0; + virtual void checkValid() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_relaxng_datatype_DatatypeStreamingValidator__ diff --git a/libjava/org/relaxng/datatype/ValidationContext.h b/libjava/org/relaxng/datatype/ValidationContext.h new file mode 100644 index 00000000000..171beeb728d --- /dev/null +++ b/libjava/org/relaxng/datatype/ValidationContext.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_ValidationContext__ +#define __org_relaxng_datatype_ValidationContext__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class ValidationContext; + } + } + } +} + +class org::relaxng::datatype::ValidationContext : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * resolveNamespacePrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getBaseUri() = 0; + virtual jboolean isUnparsedEntity(::java::lang::String *) = 0; + virtual jboolean isNotation(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_relaxng_datatype_ValidationContext__ diff --git a/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader.h b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader.h new file mode 100644 index 00000000000..dcefb2e48ca --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Loader__ +#define __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Loader__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + namespace helpers + { + class DatatypeLibraryLoader$Service$Loader; + } + } + } + } +} + +class org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader : public ::java::lang::Object +{ + + DatatypeLibraryLoader$Service$Loader(); +public: // actually package-private + virtual ::java::util::Enumeration * getResources(::java::lang::String *); + virtual ::java::lang::Class * loadClass(::java::lang::String *); + DatatypeLibraryLoader$Service$Loader(::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader *); + DatatypeLibraryLoader$Service$Loader(::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader *, ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader *); +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Loader__ diff --git a/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader2.h b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader2.h new file mode 100644 index 00000000000..338d0ba888e --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader2.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Loader2__ +#define __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Loader2__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + namespace helpers + { + class DatatypeLibraryLoader$Service$Loader2; + } + } + } + } +} + +class org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader2 : public ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader +{ + +public: // actually package-private + DatatypeLibraryLoader$Service$Loader2(); + virtual ::java::util::Enumeration * getResources(::java::lang::String *); + virtual ::java::lang::Class * loadClass(::java::lang::String *); +private: + ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader)))) cl; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Loader2__ diff --git a/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$ProviderEnumeration.h b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$ProviderEnumeration.h new file mode 100644 index 00000000000..6f2b476513f --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$ProviderEnumeration.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$ProviderEnumeration__ +#define __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$ProviderEnumeration__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + namespace helpers + { + class DatatypeLibraryLoader$Service; + class DatatypeLibraryLoader$Service$ProviderEnumeration; + } + } + } + } +} + +class org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$ProviderEnumeration : public ::java::lang::Object +{ + + DatatypeLibraryLoader$Service$ProviderEnumeration(::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + DatatypeLibraryLoader$Service$ProviderEnumeration(::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service *, ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$ProviderEnumeration *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) nextIndex; +public: // actually package-private + ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$ProviderEnumeration__ diff --git a/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Singleton.h b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Singleton.h new file mode 100644 index 00000000000..6f6e535ee88 --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Singleton.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Singleton__ +#define __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Singleton__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + namespace helpers + { + class DatatypeLibraryLoader$Service$Singleton; + } + } + } + } +} + +class org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Singleton : public ::java::lang::Object +{ + + DatatypeLibraryLoader$Service$Singleton(::java::lang::Object *); +public: + virtual jboolean hasMoreElements(); + virtual ::java::lang::Object * nextElement(); +public: // actually package-private + DatatypeLibraryLoader$Service$Singleton(::java::lang::Object *, ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Singleton *); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) obj; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service$Singleton__ diff --git a/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service.h b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service.h new file mode 100644 index 00000000000..7757d90cad2 --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service__ +#define __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace net + { + class URL; + } + } + namespace org + { + namespace relaxng + { + namespace datatype + { + namespace helpers + { + class DatatypeLibraryLoader$Service; + class DatatypeLibraryLoader$Service$Loader; + } + } + } + } +} + +class org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service : public ::java::lang::Object +{ + +public: + DatatypeLibraryLoader$Service(::java::lang::Class *); + virtual ::java::util::Enumeration * getProviders(); +private: + jboolean moreProviders(); + static ::java::util::Enumeration * parseConfigFile(::java::net::URL *); +public: // actually package-private + static ::java::util::Vector * access$0(::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service *); + static jboolean access$1(::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service *); +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) serviceClass; + ::java::util::Enumeration * configFiles; + ::java::util::Enumeration * classNames; + ::java::util::Vector * providers; + ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service$Loader * loader; + static const jint START = 0; + static const jint IN_NAME = 1; + static const jint IN_COMMENT = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_DatatypeLibraryLoader$Service__ diff --git a/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader.h b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader.h new file mode 100644 index 00000000000..f45e713b3e4 --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/DatatypeLibraryLoader.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_DatatypeLibraryLoader__ +#define __org_relaxng_datatype_helpers_DatatypeLibraryLoader__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class DatatypeLibrary; + namespace helpers + { + class DatatypeLibraryLoader; + class DatatypeLibraryLoader$Service; + } + } + } + } +} + +class org::relaxng::datatype::helpers::DatatypeLibraryLoader : public ::java::lang::Object +{ + +public: + DatatypeLibraryLoader(); + virtual ::org::relaxng::datatype::DatatypeLibrary * createDatatypeLibrary(::java::lang::String *); +private: + ::org::relaxng::datatype::helpers::DatatypeLibraryLoader$Service * __attribute__((aligned(__alignof__( ::java::lang::Object)))) service; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_DatatypeLibraryLoader__ diff --git a/libjava/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.h b/libjava/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.h new file mode 100644 index 00000000000..38c56716260 --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_ParameterlessDatatypeBuilder__ +#define __org_relaxng_datatype_helpers_ParameterlessDatatypeBuilder__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class ValidationContext; + namespace helpers + { + class ParameterlessDatatypeBuilder; + } + } + } + } +} + +class org::relaxng::datatype::helpers::ParameterlessDatatypeBuilder : public ::java::lang::Object +{ + +public: + ParameterlessDatatypeBuilder(::org::relaxng::datatype::Datatype *); + void addParameter(::java::lang::String *, ::java::lang::String *, ::org::relaxng::datatype::ValidationContext *); + ::org::relaxng::datatype::Datatype * createDatatype(); +private: + ::org::relaxng::datatype::Datatype * __attribute__((aligned(__alignof__( ::java::lang::Object)))) baseType; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_ParameterlessDatatypeBuilder__ diff --git a/libjava/org/relaxng/datatype/helpers/StreamingValidatorImpl.h b/libjava/org/relaxng/datatype/helpers/StreamingValidatorImpl.h new file mode 100644 index 00000000000..77ae7639cc3 --- /dev/null +++ b/libjava/org/relaxng/datatype/helpers/StreamingValidatorImpl.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_relaxng_datatype_helpers_StreamingValidatorImpl__ +#define __org_relaxng_datatype_helpers_StreamingValidatorImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace relaxng + { + namespace datatype + { + class Datatype; + class ValidationContext; + namespace helpers + { + class StreamingValidatorImpl; + } + } + } + } +} + +class org::relaxng::datatype::helpers::StreamingValidatorImpl : public ::java::lang::Object +{ + +public: + void addCharacters(JArray< jchar > *, jint, jint); + jboolean isValid(); + void checkValid(); + StreamingValidatorImpl(::org::relaxng::datatype::Datatype *, ::org::relaxng::datatype::ValidationContext *); +private: + ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer; + ::org::relaxng::datatype::Datatype * baseType; + ::org::relaxng::datatype::ValidationContext * context; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_relaxng_datatype_helpers_StreamingValidatorImpl__ diff --git a/libjava/org/w3c/dom/Attr.h b/libjava/org/w3c/dom/Attr.h new file mode 100644 index 00000000000..5dfe4639c11 --- /dev/null +++ b/libjava/org/w3c/dom/Attr.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Attr__ +#define __org_w3c_dom_Attr__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class Element; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Attr : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName() = 0; + virtual jboolean getSpecified() = 0; + virtual ::java::lang::String * getValue() = 0; + virtual void setValue(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Element * getOwnerElement() = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual jboolean isId() = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Attr__ diff --git a/libjava/org/w3c/dom/CDATASection.h b/libjava/org/w3c/dom/CDATASection.h new file mode 100644 index 00000000000..47d07e44097 --- /dev/null +++ b/libjava/org/w3c/dom/CDATASection.h @@ -0,0 +1,86 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_CDATASection__ +#define __org_w3c_dom_CDATASection__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class CDATASection; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class Text; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::CDATASection : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Text * splitText(jint) = 0; + virtual jboolean isElementContentWhitespace() = 0; + virtual ::java::lang::String * getWholeText() = 0; + virtual ::org::w3c::dom::Text * replaceWholeText(::java::lang::String *) = 0; + virtual ::java::lang::String * getData() = 0; + virtual void setData(::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * substringData(jint, jint) = 0; + virtual void appendData(::java::lang::String *) = 0; + virtual void insertData(jint, ::java::lang::String *) = 0; + virtual void deleteData(jint, jint) = 0; + virtual void replaceData(jint, jint, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_CDATASection__ diff --git a/libjava/org/w3c/dom/CharacterData.h b/libjava/org/w3c/dom/CharacterData.h new file mode 100644 index 00000000000..3aca583a4f5 --- /dev/null +++ b/libjava/org/w3c/dom/CharacterData.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_CharacterData__ +#define __org_w3c_dom_CharacterData__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class CharacterData; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::CharacterData : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getData() = 0; + virtual void setData(::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * substringData(jint, jint) = 0; + virtual void appendData(::java::lang::String *) = 0; + virtual void insertData(jint, ::java::lang::String *) = 0; + virtual void deleteData(jint, jint) = 0; + virtual void replaceData(jint, jint, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_CharacterData__ diff --git a/libjava/org/w3c/dom/Comment.h b/libjava/org/w3c/dom/Comment.h new file mode 100644 index 00000000000..91014528b46 --- /dev/null +++ b/libjava/org/w3c/dom/Comment.h @@ -0,0 +1,81 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Comment__ +#define __org_w3c_dom_Comment__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Comment; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Comment : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getData() = 0; + virtual void setData(::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * substringData(jint, jint) = 0; + virtual void appendData(::java::lang::String *) = 0; + virtual void insertData(jint, ::java::lang::String *) = 0; + virtual void deleteData(jint, jint) = 0; + virtual void replaceData(jint, jint, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Comment__ diff --git a/libjava/org/w3c/dom/DOMConfiguration.h b/libjava/org/w3c/dom/DOMConfiguration.h new file mode 100644 index 00000000000..7b32b17f335 --- /dev/null +++ b/libjava/org/w3c/dom/DOMConfiguration.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMConfiguration__ +#define __org_w3c_dom_DOMConfiguration__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMConfiguration; + class DOMStringList; + } + } + } +} + +class org::w3c::dom::DOMConfiguration : public ::java::lang::Object +{ + +public: + virtual void setParameter(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::java::lang::Object * getParameter(::java::lang::String *) = 0; + virtual jboolean canSetParameter(::java::lang::String *, ::java::lang::Object *) = 0; + virtual ::org::w3c::dom::DOMStringList * getParameterNames() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMConfiguration__ diff --git a/libjava/org/w3c/dom/DOMError.h b/libjava/org/w3c/dom/DOMError.h new file mode 100644 index 00000000000..90ce8ad99f9 --- /dev/null +++ b/libjava/org/w3c/dom/DOMError.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMError__ +#define __org_w3c_dom_DOMError__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMError; + class DOMLocator; + } + } + } +} + +class org::w3c::dom::DOMError : public ::java::lang::Object +{ + +public: + virtual jshort getSeverity() = 0; + virtual ::java::lang::String * getMessage() = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::java::lang::Object * getRelatedException() = 0; + virtual ::java::lang::Object * getRelatedData() = 0; + virtual ::org::w3c::dom::DOMLocator * getLocation() = 0; + static const jshort SEVERITY_WARNING = 1; + static const jshort SEVERITY_ERROR = 2; + static const jshort SEVERITY_FATAL_ERROR = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMError__ diff --git a/libjava/org/w3c/dom/DOMErrorHandler.h b/libjava/org/w3c/dom/DOMErrorHandler.h new file mode 100644 index 00000000000..c0f875ebe31 --- /dev/null +++ b/libjava/org/w3c/dom/DOMErrorHandler.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMErrorHandler__ +#define __org_w3c_dom_DOMErrorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMError; + class DOMErrorHandler; + } + } + } +} + +class org::w3c::dom::DOMErrorHandler : public ::java::lang::Object +{ + +public: + virtual jboolean handleError(::org::w3c::dom::DOMError *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMErrorHandler__ diff --git a/libjava/org/w3c/dom/DOMException.h b/libjava/org/w3c/dom/DOMException.h new file mode 100644 index 00000000000..52fd15cc241 --- /dev/null +++ b/libjava/org/w3c/dom/DOMException.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMException__ +#define __org_w3c_dom_DOMException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMException; + } + } + } +} + +class org::w3c::dom::DOMException : public ::java::lang::RuntimeException +{ + +public: + DOMException(jshort, ::java::lang::String *); + jshort __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) code; + static const jshort INDEX_SIZE_ERR = 1; + static const jshort DOMSTRING_SIZE_ERR = 2; + static const jshort HIERARCHY_REQUEST_ERR = 3; + static const jshort WRONG_DOCUMENT_ERR = 4; + static const jshort INVALID_CHARACTER_ERR = 5; + static const jshort NO_DATA_ALLOWED_ERR = 6; + static const jshort NO_MODIFICATION_ALLOWED_ERR = 7; + static const jshort NOT_FOUND_ERR = 8; + static const jshort NOT_SUPPORTED_ERR = 9; + static const jshort INUSE_ATTRIBUTE_ERR = 10; + static const jshort INVALID_STATE_ERR = 11; + static const jshort SYNTAX_ERR = 12; + static const jshort INVALID_MODIFICATION_ERR = 13; + static const jshort NAMESPACE_ERR = 14; + static const jshort INVALID_ACCESS_ERR = 15; + static const jshort VALIDATION_ERR = 16; + static const jshort TYPE_MISMATCH_ERR = 17; + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_DOMException__ diff --git a/libjava/org/w3c/dom/DOMImplementation.h b/libjava/org/w3c/dom/DOMImplementation.h new file mode 100644 index 00000000000..2d191a608a2 --- /dev/null +++ b/libjava/org/w3c/dom/DOMImplementation.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMImplementation__ +#define __org_w3c_dom_DOMImplementation__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class Document; + class DocumentType; + } + } + } +} + +class org::w3c::dom::DOMImplementation : public ::java::lang::Object +{ + +public: + virtual jboolean hasFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::DocumentType * createDocumentType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Document * createDocument(::java::lang::String *, ::java::lang::String *, ::org::w3c::dom::DocumentType *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMImplementation__ diff --git a/libjava/org/w3c/dom/DOMImplementationList.h b/libjava/org/w3c/dom/DOMImplementationList.h new file mode 100644 index 00000000000..a787742ae01 --- /dev/null +++ b/libjava/org/w3c/dom/DOMImplementationList.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMImplementationList__ +#define __org_w3c_dom_DOMImplementationList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class DOMImplementationList; + } + } + } +} + +class org::w3c::dom::DOMImplementationList : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::DOMImplementation * item(jint) = 0; + virtual jint getLength() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMImplementationList__ diff --git a/libjava/org/w3c/dom/DOMImplementationSource.h b/libjava/org/w3c/dom/DOMImplementationSource.h new file mode 100644 index 00000000000..3431e280497 --- /dev/null +++ b/libjava/org/w3c/dom/DOMImplementationSource.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMImplementationSource__ +#define __org_w3c_dom_DOMImplementationSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class DOMImplementationList; + class DOMImplementationSource; + } + } + } +} + +class org::w3c::dom::DOMImplementationSource : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::DOMImplementation * getDOMImplementation(::java::lang::String *) = 0; + virtual ::org::w3c::dom::DOMImplementationList * getDOMImplementationList(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMImplementationSource__ diff --git a/libjava/org/w3c/dom/DOMLocator.h b/libjava/org/w3c/dom/DOMLocator.h new file mode 100644 index 00000000000..16733f7fef1 --- /dev/null +++ b/libjava/org/w3c/dom/DOMLocator.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMLocator__ +#define __org_w3c_dom_DOMLocator__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMLocator; + class Node; + } + } + } +} + +class org::w3c::dom::DOMLocator : public ::java::lang::Object +{ + +public: + virtual jint getLineNumber() = 0; + virtual jint getColumnNumber() = 0; + virtual jint getByteOffset() = 0; + virtual jint getUtf16Offset() = 0; + virtual ::org::w3c::dom::Node * getRelatedNode() = 0; + virtual ::java::lang::String * getUri() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMLocator__ diff --git a/libjava/org/w3c/dom/DOMStringList.h b/libjava/org/w3c/dom/DOMStringList.h new file mode 100644 index 00000000000..3cbe1825603 --- /dev/null +++ b/libjava/org/w3c/dom/DOMStringList.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DOMStringList__ +#define __org_w3c_dom_DOMStringList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMStringList; + } + } + } +} + +class org::w3c::dom::DOMStringList : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * item(jint) = 0; + virtual jint getLength() = 0; + virtual jboolean contains(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DOMStringList__ diff --git a/libjava/org/w3c/dom/Document.h b/libjava/org/w3c/dom/Document.h new file mode 100644 index 00000000000..9101ff154d1 --- /dev/null +++ b/libjava/org/w3c/dom/Document.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Document__ +#define __org_w3c_dom_Document__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class CDATASection; + class Comment; + class DOMConfiguration; + class DOMImplementation; + class Document; + class DocumentFragment; + class DocumentType; + class Element; + class EntityReference; + class NamedNodeMap; + class Node; + class NodeList; + class ProcessingInstruction; + class Text; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Document : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::DocumentType * getDoctype() = 0; + virtual ::org::w3c::dom::DOMImplementation * getImplementation() = 0; + virtual ::org::w3c::dom::Element * getDocumentElement() = 0; + virtual ::org::w3c::dom::Element * createElement(::java::lang::String *) = 0; + virtual ::org::w3c::dom::DocumentFragment * createDocumentFragment() = 0; + virtual ::org::w3c::dom::Text * createTextNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Comment * createComment(::java::lang::String *) = 0; + virtual ::org::w3c::dom::CDATASection * createCDATASection(::java::lang::String *) = 0; + virtual ::org::w3c::dom::ProcessingInstruction * createProcessingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * createAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::EntityReference * createEntityReference(::java::lang::String *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * importNode(::org::w3c::dom::Node *, jboolean) = 0; + virtual ::org::w3c::dom::Element * createElementNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * createAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Element * getElementById(::java::lang::String *) = 0; + virtual ::java::lang::String * getInputEncoding() = 0; + virtual ::java::lang::String * getXmlEncoding() = 0; + virtual jboolean getXmlStandalone() = 0; + virtual void setXmlStandalone(jboolean) = 0; + virtual ::java::lang::String * getXmlVersion() = 0; + virtual void setXmlVersion(::java::lang::String *) = 0; + virtual jboolean getStrictErrorChecking() = 0; + virtual void setStrictErrorChecking(jboolean) = 0; + virtual ::java::lang::String * getDocumentURI() = 0; + virtual void setDocumentURI(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * adoptNode(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig() = 0; + virtual void normalizeDocument() = 0; + virtual ::org::w3c::dom::Node * renameNode(::org::w3c::dom::Node *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Document__ diff --git a/libjava/org/w3c/dom/DocumentFragment.h b/libjava/org/w3c/dom/DocumentFragment.h new file mode 100644 index 00000000000..02abdfd97ed --- /dev/null +++ b/libjava/org/w3c/dom/DocumentFragment.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DocumentFragment__ +#define __org_w3c_dom_DocumentFragment__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class DocumentFragment; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::DocumentFragment : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DocumentFragment__ diff --git a/libjava/org/w3c/dom/DocumentType.h b/libjava/org/w3c/dom/DocumentType.h new file mode 100644 index 00000000000..dc35fe84869 --- /dev/null +++ b/libjava/org/w3c/dom/DocumentType.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_DocumentType__ +#define __org_w3c_dom_DocumentType__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class DocumentType; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::DocumentType : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getEntities() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getNotations() = 0; + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual ::java::lang::String * getInternalSubset() = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_DocumentType__ diff --git a/libjava/org/w3c/dom/Element.h b/libjava/org/w3c/dom/Element.h new file mode 100644 index 00000000000..cc61cd02e15 --- /dev/null +++ b/libjava/org/w3c/dom/Element.h @@ -0,0 +1,95 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Element__ +#define __org_w3c_dom_Element__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class Element; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Element : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Element__ diff --git a/libjava/org/w3c/dom/Entity.h b/libjava/org/w3c/dom/Entity.h new file mode 100644 index 00000000000..f625e5b0cc3 --- /dev/null +++ b/libjava/org/w3c/dom/Entity.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Entity__ +#define __org_w3c_dom_Entity__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class Entity; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Entity : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual ::java::lang::String * getNotationName() = 0; + virtual ::java::lang::String * getInputEncoding() = 0; + virtual ::java::lang::String * getXmlEncoding() = 0; + virtual ::java::lang::String * getXmlVersion() = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Entity__ diff --git a/libjava/org/w3c/dom/EntityReference.h b/libjava/org/w3c/dom/EntityReference.h new file mode 100644 index 00000000000..d60cda8de42 --- /dev/null +++ b/libjava/org/w3c/dom/EntityReference.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_EntityReference__ +#define __org_w3c_dom_EntityReference__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class EntityReference; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::EntityReference : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_EntityReference__ diff --git a/libjava/org/w3c/dom/NameList.h b/libjava/org/w3c/dom/NameList.h new file mode 100644 index 00000000000..7bbaac2ad0a --- /dev/null +++ b/libjava/org/w3c/dom/NameList.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_NameList__ +#define __org_w3c_dom_NameList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class NameList; + } + } + } +} + +class org::w3c::dom::NameList : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName(jint) = 0; + virtual ::java::lang::String * getNamespaceURI(jint) = 0; + virtual jint getLength() = 0; + virtual jboolean contains(::java::lang::String *) = 0; + virtual jboolean containsNS(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_NameList__ diff --git a/libjava/org/w3c/dom/NamedNodeMap.h b/libjava/org/w3c/dom/NamedNodeMap.h new file mode 100644 index 00000000000..40ed8ad7b45 --- /dev/null +++ b/libjava/org/w3c/dom/NamedNodeMap.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_NamedNodeMap__ +#define __org_w3c_dom_NamedNodeMap__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class NamedNodeMap; + class Node; + } + } + } +} + +class org::w3c::dom::NamedNodeMap : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Node * getNamedItem(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeNamedItem(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * item(jint) = 0; + virtual jint getLength() = 0; + virtual ::org::w3c::dom::Node * getNamedItemNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * setNamedItemNS(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeNamedItemNS(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_NamedNodeMap__ diff --git a/libjava/org/w3c/dom/Node.h b/libjava/org/w3c/dom/Node.h new file mode 100644 index 00000000000..350638eb522 --- /dev/null +++ b/libjava/org/w3c/dom/Node.h @@ -0,0 +1,90 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Node__ +#define __org_w3c_dom_Node__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Node : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static const jshort ELEMENT_NODE = 1; + static const jshort ATTRIBUTE_NODE = 2; + static const jshort TEXT_NODE = 3; + static const jshort CDATA_SECTION_NODE = 4; + static const jshort ENTITY_REFERENCE_NODE = 5; + static const jshort ENTITY_NODE = 6; + static const jshort PROCESSING_INSTRUCTION_NODE = 7; + static const jshort COMMENT_NODE = 8; + static const jshort DOCUMENT_NODE = 9; + static const jshort DOCUMENT_TYPE_NODE = 10; + static const jshort DOCUMENT_FRAGMENT_NODE = 11; + static const jshort NOTATION_NODE = 12; + static const jshort DOCUMENT_POSITION_DISCONNECTED = 1; + static const jshort DOCUMENT_POSITION_PRECEDING = 2; + static const jshort DOCUMENT_POSITION_FOLLOWING = 4; + static const jshort DOCUMENT_POSITION_CONTAINS = 8; + static const jshort DOCUMENT_POSITION_CONTAINED_BY = 16; + static const jshort DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Node__ diff --git a/libjava/org/w3c/dom/NodeList.h b/libjava/org/w3c/dom/NodeList.h new file mode 100644 index 00000000000..da0a2214f61 --- /dev/null +++ b/libjava/org/w3c/dom/NodeList.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_NodeList__ +#define __org_w3c_dom_NodeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + class NodeList; + } + } + } +} + +class org::w3c::dom::NodeList : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Node * item(jint) = 0; + virtual jint getLength() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_NodeList__ diff --git a/libjava/org/w3c/dom/Notation.h b/libjava/org/w3c/dom/Notation.h new file mode 100644 index 00000000000..76ac4b4ed1a --- /dev/null +++ b/libjava/org/w3c/dom/Notation.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Notation__ +#define __org_w3c_dom_Notation__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class Notation; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Notation : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Notation__ diff --git a/libjava/org/w3c/dom/ProcessingInstruction.h b/libjava/org/w3c/dom/ProcessingInstruction.h new file mode 100644 index 00000000000..9f6054af8ad --- /dev/null +++ b/libjava/org/w3c/dom/ProcessingInstruction.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ProcessingInstruction__ +#define __org_w3c_dom_ProcessingInstruction__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class ProcessingInstruction; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::ProcessingInstruction : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getTarget() = 0; + virtual ::java::lang::String * getData() = 0; + virtual void setData(::java::lang::String *) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ProcessingInstruction__ diff --git a/libjava/org/w3c/dom/Text.h b/libjava/org/w3c/dom/Text.h new file mode 100644 index 00000000000..b04adfc278a --- /dev/null +++ b/libjava/org/w3c/dom/Text.h @@ -0,0 +1,85 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_Text__ +#define __org_w3c_dom_Text__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class Text; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::Text : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Text * splitText(jint) = 0; + virtual jboolean isElementContentWhitespace() = 0; + virtual ::java::lang::String * getWholeText() = 0; + virtual ::org::w3c::dom::Text * replaceWholeText(::java::lang::String *) = 0; + virtual ::java::lang::String * getData() = 0; + virtual void setData(::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * substringData(jint, jint) = 0; + virtual void appendData(::java::lang::String *) = 0; + virtual void insertData(jint, ::java::lang::String *) = 0; + virtual void deleteData(jint, jint) = 0; + virtual void replaceData(jint, jint, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_Text__ diff --git a/libjava/org/w3c/dom/TypeInfo.h b/libjava/org/w3c/dom/TypeInfo.h new file mode 100644 index 00000000000..136572ebaa8 --- /dev/null +++ b/libjava/org/w3c/dom/TypeInfo.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_TypeInfo__ +#define __org_w3c_dom_TypeInfo__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class TypeInfo; + } + } + } +} + +class org::w3c::dom::TypeInfo : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getTypeName() = 0; + virtual ::java::lang::String * getTypeNamespace() = 0; + virtual jboolean isDerivedFrom(::java::lang::String *, ::java::lang::String *, jint) = 0; + static const jint DERIVATION_RESTRICTION = 1; + static const jint DERIVATION_EXTENSION = 2; + static const jint DERIVATION_UNION = 4; + static const jint DERIVATION_LIST = 8; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_TypeInfo__ diff --git a/libjava/org/w3c/dom/UserDataHandler.h b/libjava/org/w3c/dom/UserDataHandler.h new file mode 100644 index 00000000000..a47eac3c25d --- /dev/null +++ b/libjava/org/w3c/dom/UserDataHandler.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_UserDataHandler__ +#define __org_w3c_dom_UserDataHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + class UserDataHandler; + } + } + } +} + +class org::w3c::dom::UserDataHandler : public ::java::lang::Object +{ + +public: + virtual void handle(jshort, ::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + static const jshort NODE_CLONED = 1; + static const jshort NODE_IMPORTED = 2; + static const jshort NODE_DELETED = 3; + static const jshort NODE_RENAMED = 4; + static const jshort NODE_ADOPTED = 5; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_UserDataHandler__ diff --git a/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$1.h b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$1.h new file mode 100644 index 00000000000..af85bdee28f --- /dev/null +++ b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$1.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_bootstrap_DOMImplementationRegistry$1__ +#define __org_w3c_dom_bootstrap_DOMImplementationRegistry$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + namespace bootstrap + { + class DOMImplementationRegistry; + class DOMImplementationRegistry$1; + } + } + } + } +} + +class org::w3c::dom::bootstrap::DOMImplementationRegistry$1 : public ::java::lang::Object +{ + +public: // actually package-private + DOMImplementationRegistry$1(::org::w3c::dom::bootstrap::DOMImplementationRegistry *, ::java::util::Vector *); +public: + ::org::w3c::dom::DOMImplementation * item(jint); + jint getLength(); +public: // actually package-private + ::org::w3c::dom::bootstrap::DOMImplementationRegistry * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +private: + ::java::util::Vector * val$implementations; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_bootstrap_DOMImplementationRegistry$1__ diff --git a/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$2.h b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$2.h new file mode 100644 index 00000000000..6d773f7f953 --- /dev/null +++ b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$2.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_bootstrap_DOMImplementationRegistry$2__ +#define __org_w3c_dom_bootstrap_DOMImplementationRegistry$2__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace bootstrap + { + class DOMImplementationRegistry$2; + } + } + } + } +} + +class org::w3c::dom::bootstrap::DOMImplementationRegistry$2 : public ::java::lang::Object +{ + +public: // actually package-private + DOMImplementationRegistry$2(); +public: + ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_bootstrap_DOMImplementationRegistry$2__ diff --git a/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$3.h b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$3.h new file mode 100644 index 00000000000..a54005f5cea --- /dev/null +++ b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$3.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_bootstrap_DOMImplementationRegistry$3__ +#define __org_w3c_dom_bootstrap_DOMImplementationRegistry$3__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace bootstrap + { + class DOMImplementationRegistry$3; + } + } + } + } +} + +class org::w3c::dom::bootstrap::DOMImplementationRegistry$3 : public ::java::lang::Object +{ + +public: // actually package-private + DOMImplementationRegistry$3(::java::lang::String *); +public: + ::java::lang::Object * run(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$name; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_bootstrap_DOMImplementationRegistry$3__ diff --git a/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$4.h b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$4.h new file mode 100644 index 00000000000..dbb86b0d3fb --- /dev/null +++ b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry$4.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_bootstrap_DOMImplementationRegistry$4__ +#define __org_w3c_dom_bootstrap_DOMImplementationRegistry$4__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace bootstrap + { + class DOMImplementationRegistry$4; + } + } + } + } +} + +class org::w3c::dom::bootstrap::DOMImplementationRegistry$4 : public ::java::lang::Object +{ + +public: // actually package-private + DOMImplementationRegistry$4(::java::lang::ClassLoader *, ::java::lang::String *); +public: + ::java::lang::Object * run(); +private: + ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$classLoader; + ::java::lang::String * val$name; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_bootstrap_DOMImplementationRegistry$4__ diff --git a/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry.h b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry.h new file mode 100644 index 00000000000..7f284503d9b --- /dev/null +++ b/libjava/org/w3c/dom/bootstrap/DOMImplementationRegistry.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_bootstrap_DOMImplementationRegistry__ +#define __org_w3c_dom_bootstrap_DOMImplementationRegistry__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMImplementation; + class DOMImplementationList; + class DOMImplementationSource; + namespace bootstrap + { + class DOMImplementationRegistry; + } + } + } + } +} + +class org::w3c::dom::bootstrap::DOMImplementationRegistry : public ::java::lang::Object +{ + + DOMImplementationRegistry(::java::util::Vector *); +public: + static ::org::w3c::dom::bootstrap::DOMImplementationRegistry * newInstance(); + ::org::w3c::dom::DOMImplementation * getDOMImplementation(::java::lang::String *); + ::org::w3c::dom::DOMImplementationList * getDOMImplementationList(::java::lang::String *); + void addSource(::org::w3c::dom::DOMImplementationSource *); +private: + static ::java::lang::ClassLoader * getClassLoader(); + static ::java::lang::String * getServiceValue(::java::lang::ClassLoader *); + static jboolean isJRE11(); + static ::java::lang::ClassLoader * getContextClassLoader(); + static ::java::lang::String * getSystemProperty(::java::lang::String *); + static ::java::io::InputStream * getResourceAsStream(::java::lang::ClassLoader *, ::java::lang::String *); +public: + static ::java::lang::String * PROPERTY; +private: + static const jint DEFAULT_LINE_LENGTH = 80; + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sources; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_bootstrap_DOMImplementationRegistry__ diff --git a/libjava/org/w3c/dom/css/CSS2Properties.h b/libjava/org/w3c/dom/css/CSS2Properties.h new file mode 100644 index 00000000000..fd8ea04df52 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSS2Properties.h @@ -0,0 +1,278 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSS2Properties__ +#define __org_w3c_dom_css_CSS2Properties__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSS2Properties; + } + } + } + } +} + +class org::w3c::dom::css::CSS2Properties : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAzimuth() = 0; + virtual void setAzimuth(::java::lang::String *) = 0; + virtual ::java::lang::String * getBackground() = 0; + virtual void setBackground(::java::lang::String *) = 0; + virtual ::java::lang::String * getBackgroundAttachment() = 0; + virtual void setBackgroundAttachment(::java::lang::String *) = 0; + virtual ::java::lang::String * getBackgroundColor() = 0; + virtual void setBackgroundColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getBackgroundImage() = 0; + virtual void setBackgroundImage(::java::lang::String *) = 0; + virtual ::java::lang::String * getBackgroundPosition() = 0; + virtual void setBackgroundPosition(::java::lang::String *) = 0; + virtual ::java::lang::String * getBackgroundRepeat() = 0; + virtual void setBackgroundRepeat(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorder() = 0; + virtual void setBorder(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderCollapse() = 0; + virtual void setBorderCollapse(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderColor() = 0; + virtual void setBorderColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderSpacing() = 0; + virtual void setBorderSpacing(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderStyle() = 0; + virtual void setBorderStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderTop() = 0; + virtual void setBorderTop(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderRight() = 0; + virtual void setBorderRight(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderBottom() = 0; + virtual void setBorderBottom(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderLeft() = 0; + virtual void setBorderLeft(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderTopColor() = 0; + virtual void setBorderTopColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderRightColor() = 0; + virtual void setBorderRightColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderBottomColor() = 0; + virtual void setBorderBottomColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderLeftColor() = 0; + virtual void setBorderLeftColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderTopStyle() = 0; + virtual void setBorderTopStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderRightStyle() = 0; + virtual void setBorderRightStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderBottomStyle() = 0; + virtual void setBorderBottomStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderLeftStyle() = 0; + virtual void setBorderLeftStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderTopWidth() = 0; + virtual void setBorderTopWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderRightWidth() = 0; + virtual void setBorderRightWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderBottomWidth() = 0; + virtual void setBorderBottomWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderLeftWidth() = 0; + virtual void setBorderLeftWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorderWidth() = 0; + virtual void setBorderWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getBottom() = 0; + virtual void setBottom(::java::lang::String *) = 0; + virtual ::java::lang::String * getCaptionSide() = 0; + virtual void setCaptionSide(::java::lang::String *) = 0; + virtual ::java::lang::String * getClear() = 0; + virtual void setClear(::java::lang::String *) = 0; + virtual ::java::lang::String * getClip() = 0; + virtual void setClip(::java::lang::String *) = 0; + virtual ::java::lang::String * getColor() = 0; + virtual void setColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getContent() = 0; + virtual void setContent(::java::lang::String *) = 0; + virtual ::java::lang::String * getCounterIncrement() = 0; + virtual void setCounterIncrement(::java::lang::String *) = 0; + virtual ::java::lang::String * getCounterReset() = 0; + virtual void setCounterReset(::java::lang::String *) = 0; + virtual ::java::lang::String * getCue() = 0; + virtual void setCue(::java::lang::String *) = 0; + virtual ::java::lang::String * getCueAfter() = 0; + virtual void setCueAfter(::java::lang::String *) = 0; + virtual ::java::lang::String * getCueBefore() = 0; + virtual void setCueBefore(::java::lang::String *) = 0; + virtual ::java::lang::String * getCursor() = 0; + virtual void setCursor(::java::lang::String *) = 0; + virtual ::java::lang::String * getDirection() = 0; + virtual void setDirection(::java::lang::String *) = 0; + virtual ::java::lang::String * getDisplay() = 0; + virtual void setDisplay(::java::lang::String *) = 0; + virtual ::java::lang::String * getElevation() = 0; + virtual void setElevation(::java::lang::String *) = 0; + virtual ::java::lang::String * getEmptyCells() = 0; + virtual void setEmptyCells(::java::lang::String *) = 0; + virtual ::java::lang::String * getCssFloat() = 0; + virtual void setCssFloat(::java::lang::String *) = 0; + virtual ::java::lang::String * getFont() = 0; + virtual void setFont(::java::lang::String *) = 0; + virtual ::java::lang::String * getFontFamily() = 0; + virtual void setFontFamily(::java::lang::String *) = 0; + virtual ::java::lang::String * getFontSize() = 0; + virtual void setFontSize(::java::lang::String *) = 0; + virtual ::java::lang::String * getFontSizeAdjust() = 0; + virtual void setFontSizeAdjust(::java::lang::String *) = 0; + virtual ::java::lang::String * getFontStretch() = 0; + virtual void setFontStretch(::java::lang::String *) = 0; + virtual ::java::lang::String * getFontStyle() = 0; + virtual void setFontStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getFontVariant() = 0; + virtual void setFontVariant(::java::lang::String *) = 0; + virtual ::java::lang::String * getFontWeight() = 0; + virtual void setFontWeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getHeight() = 0; + virtual void setHeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getLeft() = 0; + virtual void setLeft(::java::lang::String *) = 0; + virtual ::java::lang::String * getLetterSpacing() = 0; + virtual void setLetterSpacing(::java::lang::String *) = 0; + virtual ::java::lang::String * getLineHeight() = 0; + virtual void setLineHeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getListStyle() = 0; + virtual void setListStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getListStyleImage() = 0; + virtual void setListStyleImage(::java::lang::String *) = 0; + virtual ::java::lang::String * getListStylePosition() = 0; + virtual void setListStylePosition(::java::lang::String *) = 0; + virtual ::java::lang::String * getListStyleType() = 0; + virtual void setListStyleType(::java::lang::String *) = 0; + virtual ::java::lang::String * getMargin() = 0; + virtual void setMargin(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginTop() = 0; + virtual void setMarginTop(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginRight() = 0; + virtual void setMarginRight(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginBottom() = 0; + virtual void setMarginBottom(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginLeft() = 0; + virtual void setMarginLeft(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarkerOffset() = 0; + virtual void setMarkerOffset(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarks() = 0; + virtual void setMarks(::java::lang::String *) = 0; + virtual ::java::lang::String * getMaxHeight() = 0; + virtual void setMaxHeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getMaxWidth() = 0; + virtual void setMaxWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getMinHeight() = 0; + virtual void setMinHeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getMinWidth() = 0; + virtual void setMinWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getOrphans() = 0; + virtual void setOrphans(::java::lang::String *) = 0; + virtual ::java::lang::String * getOutline() = 0; + virtual void setOutline(::java::lang::String *) = 0; + virtual ::java::lang::String * getOutlineColor() = 0; + virtual void setOutlineColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getOutlineStyle() = 0; + virtual void setOutlineStyle(::java::lang::String *) = 0; + virtual ::java::lang::String * getOutlineWidth() = 0; + virtual void setOutlineWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getOverflow() = 0; + virtual void setOverflow(::java::lang::String *) = 0; + virtual ::java::lang::String * getPadding() = 0; + virtual void setPadding(::java::lang::String *) = 0; + virtual ::java::lang::String * getPaddingTop() = 0; + virtual void setPaddingTop(::java::lang::String *) = 0; + virtual ::java::lang::String * getPaddingRight() = 0; + virtual void setPaddingRight(::java::lang::String *) = 0; + virtual ::java::lang::String * getPaddingBottom() = 0; + virtual void setPaddingBottom(::java::lang::String *) = 0; + virtual ::java::lang::String * getPaddingLeft() = 0; + virtual void setPaddingLeft(::java::lang::String *) = 0; + virtual ::java::lang::String * getPage() = 0; + virtual void setPage(::java::lang::String *) = 0; + virtual ::java::lang::String * getPageBreakAfter() = 0; + virtual void setPageBreakAfter(::java::lang::String *) = 0; + virtual ::java::lang::String * getPageBreakBefore() = 0; + virtual void setPageBreakBefore(::java::lang::String *) = 0; + virtual ::java::lang::String * getPageBreakInside() = 0; + virtual void setPageBreakInside(::java::lang::String *) = 0; + virtual ::java::lang::String * getPause() = 0; + virtual void setPause(::java::lang::String *) = 0; + virtual ::java::lang::String * getPauseAfter() = 0; + virtual void setPauseAfter(::java::lang::String *) = 0; + virtual ::java::lang::String * getPauseBefore() = 0; + virtual void setPauseBefore(::java::lang::String *) = 0; + virtual ::java::lang::String * getPitch() = 0; + virtual void setPitch(::java::lang::String *) = 0; + virtual ::java::lang::String * getPitchRange() = 0; + virtual void setPitchRange(::java::lang::String *) = 0; + virtual ::java::lang::String * getPlayDuring() = 0; + virtual void setPlayDuring(::java::lang::String *) = 0; + virtual ::java::lang::String * getPosition() = 0; + virtual void setPosition(::java::lang::String *) = 0; + virtual ::java::lang::String * getQuotes() = 0; + virtual void setQuotes(::java::lang::String *) = 0; + virtual ::java::lang::String * getRichness() = 0; + virtual void setRichness(::java::lang::String *) = 0; + virtual ::java::lang::String * getRight() = 0; + virtual void setRight(::java::lang::String *) = 0; + virtual ::java::lang::String * getSize() = 0; + virtual void setSize(::java::lang::String *) = 0; + virtual ::java::lang::String * getSpeak() = 0; + virtual void setSpeak(::java::lang::String *) = 0; + virtual ::java::lang::String * getSpeakHeader() = 0; + virtual void setSpeakHeader(::java::lang::String *) = 0; + virtual ::java::lang::String * getSpeakNumeral() = 0; + virtual void setSpeakNumeral(::java::lang::String *) = 0; + virtual ::java::lang::String * getSpeakPunctuation() = 0; + virtual void setSpeakPunctuation(::java::lang::String *) = 0; + virtual ::java::lang::String * getSpeechRate() = 0; + virtual void setSpeechRate(::java::lang::String *) = 0; + virtual ::java::lang::String * getStress() = 0; + virtual void setStress(::java::lang::String *) = 0; + virtual ::java::lang::String * getTableLayout() = 0; + virtual void setTableLayout(::java::lang::String *) = 0; + virtual ::java::lang::String * getTextAlign() = 0; + virtual void setTextAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getTextDecoration() = 0; + virtual void setTextDecoration(::java::lang::String *) = 0; + virtual ::java::lang::String * getTextIndent() = 0; + virtual void setTextIndent(::java::lang::String *) = 0; + virtual ::java::lang::String * getTextShadow() = 0; + virtual void setTextShadow(::java::lang::String *) = 0; + virtual ::java::lang::String * getTextTransform() = 0; + virtual void setTextTransform(::java::lang::String *) = 0; + virtual ::java::lang::String * getTop() = 0; + virtual void setTop(::java::lang::String *) = 0; + virtual ::java::lang::String * getUnicodeBidi() = 0; + virtual void setUnicodeBidi(::java::lang::String *) = 0; + virtual ::java::lang::String * getVerticalAlign() = 0; + virtual void setVerticalAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getVisibility() = 0; + virtual void setVisibility(::java::lang::String *) = 0; + virtual ::java::lang::String * getVoiceFamily() = 0; + virtual void setVoiceFamily(::java::lang::String *) = 0; + virtual ::java::lang::String * getVolume() = 0; + virtual void setVolume(::java::lang::String *) = 0; + virtual ::java::lang::String * getWhiteSpace() = 0; + virtual void setWhiteSpace(::java::lang::String *) = 0; + virtual ::java::lang::String * getWidows() = 0; + virtual void setWidows(::java::lang::String *) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getWordSpacing() = 0; + virtual void setWordSpacing(::java::lang::String *) = 0; + virtual ::java::lang::String * getZIndex() = 0; + virtual void setZIndex(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSS2Properties__ diff --git a/libjava/org/w3c/dom/css/CSSCharsetRule.h b/libjava/org/w3c/dom/css/CSSCharsetRule.h new file mode 100644 index 00000000000..51c78a1ab45 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSCharsetRule.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSCharsetRule__ +#define __org_w3c_dom_css_CSSCharsetRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSCharsetRule; + class CSSRule; + class CSSStyleSheet; + } + } + } + } +} + +class org::w3c::dom::css::CSSCharsetRule : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getEncoding() = 0; + virtual void setEncoding(::java::lang::String *) = 0; + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSCharsetRule__ diff --git a/libjava/org/w3c/dom/css/CSSFontFaceRule.h b/libjava/org/w3c/dom/css/CSSFontFaceRule.h new file mode 100644 index 00000000000..415f6945371 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSFontFaceRule.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSFontFaceRule__ +#define __org_w3c_dom_css_CSSFontFaceRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSFontFaceRule; + class CSSRule; + class CSSStyleDeclaration; + class CSSStyleSheet; + } + } + } + } +} + +class org::w3c::dom::css::CSSFontFaceRule : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSStyleDeclaration * getStyle() = 0; + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSFontFaceRule__ diff --git a/libjava/org/w3c/dom/css/CSSImportRule.h b/libjava/org/w3c/dom/css/CSSImportRule.h new file mode 100644 index 00000000000..7313ef2b058 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSImportRule.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSImportRule__ +#define __org_w3c_dom_css_CSSImportRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSImportRule; + class CSSRule; + class CSSStyleSheet; + } + namespace stylesheets + { + class MediaList; + } + } + } + } +} + +class org::w3c::dom::css::CSSImportRule : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getHref() = 0; + virtual ::org::w3c::dom::stylesheets::MediaList * getMedia() = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getStyleSheet() = 0; + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSImportRule__ diff --git a/libjava/org/w3c/dom/css/CSSMediaRule.h b/libjava/org/w3c/dom/css/CSSMediaRule.h new file mode 100644 index 00000000000..62d12a8c7bd --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSMediaRule.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSMediaRule__ +#define __org_w3c_dom_css_CSSMediaRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSMediaRule; + class CSSRule; + class CSSRuleList; + class CSSStyleSheet; + } + namespace stylesheets + { + class MediaList; + } + } + } + } +} + +class org::w3c::dom::css::CSSMediaRule : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::stylesheets::MediaList * getMedia() = 0; + virtual ::org::w3c::dom::css::CSSRuleList * getCssRules() = 0; + virtual jint insertRule(::java::lang::String *, jint) = 0; + virtual void deleteRule(jint) = 0; + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSMediaRule__ diff --git a/libjava/org/w3c/dom/css/CSSPageRule.h b/libjava/org/w3c/dom/css/CSSPageRule.h new file mode 100644 index 00000000000..77b7167a54e --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSPageRule.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSPageRule__ +#define __org_w3c_dom_css_CSSPageRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSPageRule; + class CSSRule; + class CSSStyleDeclaration; + class CSSStyleSheet; + } + } + } + } +} + +class org::w3c::dom::css::CSSPageRule : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getSelectorText() = 0; + virtual void setSelectorText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleDeclaration * getStyle() = 0; + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSPageRule__ diff --git a/libjava/org/w3c/dom/css/CSSPrimitiveValue.h b/libjava/org/w3c/dom/css/CSSPrimitiveValue.h new file mode 100644 index 00000000000..ea502e30af9 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSPrimitiveValue.h @@ -0,0 +1,74 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSPrimitiveValue__ +#define __org_w3c_dom_css_CSSPrimitiveValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSPrimitiveValue; + class Counter; + class RGBColor; + class Rect; + } + } + } + } +} + +class org::w3c::dom::css::CSSPrimitiveValue : public ::java::lang::Object +{ + +public: + virtual jshort getPrimitiveType() = 0; + virtual void setFloatValue(jshort, jfloat) = 0; + virtual jfloat getFloatValue(jshort) = 0; + virtual void setStringValue(jshort, ::java::lang::String *) = 0; + virtual ::java::lang::String * getStringValue() = 0; + virtual ::org::w3c::dom::css::Counter * getCounterValue() = 0; + virtual ::org::w3c::dom::css::Rect * getRectValue() = 0; + virtual ::org::w3c::dom::css::RGBColor * getRGBColorValue() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual jshort getCssValueType() = 0; + static const jshort CSS_UNKNOWN = 0; + static const jshort CSS_NUMBER = 1; + static const jshort CSS_PERCENTAGE = 2; + static const jshort CSS_EMS = 3; + static const jshort CSS_EXS = 4; + static const jshort CSS_PX = 5; + static const jshort CSS_CM = 6; + static const jshort CSS_MM = 7; + static const jshort CSS_IN = 8; + static const jshort CSS_PT = 9; + static const jshort CSS_PC = 10; + static const jshort CSS_DEG = 11; + static const jshort CSS_RAD = 12; + static const jshort CSS_GRAD = 13; + static const jshort CSS_MS = 14; + static const jshort CSS_S = 15; + static const jshort CSS_HZ = 16; + static const jshort CSS_KHZ = 17; + static const jshort CSS_DIMENSION = 18; + static const jshort CSS_STRING = 19; + static const jshort CSS_URI = 20; + static const jshort CSS_IDENT = 21; + static const jshort CSS_ATTR = 22; + static const jshort CSS_COUNTER = 23; + static const jshort CSS_RECT = 24; + static const jshort CSS_RGBCOLOR = 25; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSPrimitiveValue__ diff --git a/libjava/org/w3c/dom/css/CSSRule.h b/libjava/org/w3c/dom/css/CSSRule.h new file mode 100644 index 00000000000..33fc8c121b1 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSRule.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSRule__ +#define __org_w3c_dom_css_CSSRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSRule; + class CSSStyleSheet; + } + } + } + } +} + +class org::w3c::dom::css::CSSRule : public ::java::lang::Object +{ + +public: + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static const jshort UNKNOWN_RULE = 0; + static const jshort STYLE_RULE = 1; + static const jshort CHARSET_RULE = 2; + static const jshort IMPORT_RULE = 3; + static const jshort MEDIA_RULE = 4; + static const jshort FONT_FACE_RULE = 5; + static const jshort PAGE_RULE = 6; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSRule__ diff --git a/libjava/org/w3c/dom/css/CSSRuleList.h b/libjava/org/w3c/dom/css/CSSRuleList.h new file mode 100644 index 00000000000..c555138934c --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSRuleList.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSRuleList__ +#define __org_w3c_dom_css_CSSRuleList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSRule; + class CSSRuleList; + } + } + } + } +} + +class org::w3c::dom::css::CSSRuleList : public ::java::lang::Object +{ + +public: + virtual jint getLength() = 0; + virtual ::org::w3c::dom::css::CSSRule * item(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSRuleList__ diff --git a/libjava/org/w3c/dom/css/CSSStyleDeclaration.h b/libjava/org/w3c/dom/css/CSSStyleDeclaration.h new file mode 100644 index 00000000000..1fa01cefe55 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSStyleDeclaration.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSStyleDeclaration__ +#define __org_w3c_dom_css_CSSStyleDeclaration__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSRule; + class CSSStyleDeclaration; + class CSSValue; + } + } + } + } +} + +class org::w3c::dom::css::CSSStyleDeclaration : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::java::lang::String * getPropertyValue(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSValue * getPropertyCSSValue(::java::lang::String *) = 0; + virtual ::java::lang::String * removeProperty(::java::lang::String *) = 0; + virtual ::java::lang::String * getPropertyPriority(::java::lang::String *) = 0; + virtual void setProperty(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * item(jint) = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSStyleDeclaration__ diff --git a/libjava/org/w3c/dom/css/CSSStyleRule.h b/libjava/org/w3c/dom/css/CSSStyleRule.h new file mode 100644 index 00000000000..3a11990f7d3 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSStyleRule.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSStyleRule__ +#define __org_w3c_dom_css_CSSStyleRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSRule; + class CSSStyleDeclaration; + class CSSStyleRule; + class CSSStyleSheet; + } + } + } + } +} + +class org::w3c::dom::css::CSSStyleRule : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getSelectorText() = 0; + virtual void setSelectorText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleDeclaration * getStyle() = 0; + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSStyleRule__ diff --git a/libjava/org/w3c/dom/css/CSSStyleSheet.h b/libjava/org/w3c/dom/css/CSSStyleSheet.h new file mode 100644 index 00000000000..fecf2fd1d26 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSStyleSheet.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSStyleSheet__ +#define __org_w3c_dom_css_CSSStyleSheet__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace css + { + class CSSRule; + class CSSRuleList; + class CSSStyleSheet; + } + namespace stylesheets + { + class MediaList; + class StyleSheet; + } + } + } + } +} + +class org::w3c::dom::css::CSSStyleSheet : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSRule * getOwnerRule() = 0; + virtual ::org::w3c::dom::css::CSSRuleList * getCssRules() = 0; + virtual jint insertRule(::java::lang::String *, jint) = 0; + virtual void deleteRule(jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::org::w3c::dom::Node * getOwnerNode() = 0; + virtual ::org::w3c::dom::stylesheets::StyleSheet * getParentStyleSheet() = 0; + virtual ::java::lang::String * getHref() = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual ::org::w3c::dom::stylesheets::MediaList * getMedia() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSStyleSheet__ diff --git a/libjava/org/w3c/dom/css/CSSUnknownRule.h b/libjava/org/w3c/dom/css/CSSUnknownRule.h new file mode 100644 index 00000000000..b3f347b61a6 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSUnknownRule.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSUnknownRule__ +#define __org_w3c_dom_css_CSSUnknownRule__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSRule; + class CSSStyleSheet; + class CSSUnknownRule; + } + } + } + } +} + +class org::w3c::dom::css::CSSUnknownRule : public ::java::lang::Object +{ + +public: + virtual jshort getType() = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual ::org::w3c::dom::css::CSSStyleSheet * getParentStyleSheet() = 0; + virtual ::org::w3c::dom::css::CSSRule * getParentRule() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSUnknownRule__ diff --git a/libjava/org/w3c/dom/css/CSSValue.h b/libjava/org/w3c/dom/css/CSSValue.h new file mode 100644 index 00000000000..c95ae1c4830 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSValue.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSValue__ +#define __org_w3c_dom_css_CSSValue__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSValue; + } + } + } + } +} + +class org::w3c::dom::css::CSSValue : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual jshort getCssValueType() = 0; + static const jshort CSS_INHERIT = 0; + static const jshort CSS_PRIMITIVE_VALUE = 1; + static const jshort CSS_VALUE_LIST = 2; + static const jshort CSS_CUSTOM = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSValue__ diff --git a/libjava/org/w3c/dom/css/CSSValueList.h b/libjava/org/w3c/dom/css/CSSValueList.h new file mode 100644 index 00000000000..d5fbba2cfc7 --- /dev/null +++ b/libjava/org/w3c/dom/css/CSSValueList.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_CSSValueList__ +#define __org_w3c_dom_css_CSSValueList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSValue; + class CSSValueList; + } + } + } + } +} + +class org::w3c::dom::css::CSSValueList : public ::java::lang::Object +{ + +public: + virtual jint getLength() = 0; + virtual ::org::w3c::dom::css::CSSValue * item(jint) = 0; + virtual ::java::lang::String * getCssText() = 0; + virtual void setCssText(::java::lang::String *) = 0; + virtual jshort getCssValueType() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_CSSValueList__ diff --git a/libjava/org/w3c/dom/css/Counter.h b/libjava/org/w3c/dom/css/Counter.h new file mode 100644 index 00000000000..784d2db5e82 --- /dev/null +++ b/libjava/org/w3c/dom/css/Counter.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_Counter__ +#define __org_w3c_dom_css_Counter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class Counter; + } + } + } + } +} + +class org::w3c::dom::css::Counter : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getIdentifier() = 0; + virtual ::java::lang::String * getListStyle() = 0; + virtual ::java::lang::String * getSeparator() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_Counter__ diff --git a/libjava/org/w3c/dom/css/DOMImplementationCSS.h b/libjava/org/w3c/dom/css/DOMImplementationCSS.h new file mode 100644 index 00000000000..6ce52149da1 --- /dev/null +++ b/libjava/org/w3c/dom/css/DOMImplementationCSS.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_DOMImplementationCSS__ +#define __org_w3c_dom_css_DOMImplementationCSS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class DocumentType; + namespace css + { + class CSSStyleSheet; + class DOMImplementationCSS; + } + } + } + } +} + +class org::w3c::dom::css::DOMImplementationCSS : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSStyleSheet * createCSSStyleSheet(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::DocumentType * createDocumentType(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Document * createDocument(::java::lang::String *, ::java::lang::String *, ::org::w3c::dom::DocumentType *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_DOMImplementationCSS__ diff --git a/libjava/org/w3c/dom/css/DocumentCSS.h b/libjava/org/w3c/dom/css/DocumentCSS.h new file mode 100644 index 00000000000..a115b7fbeda --- /dev/null +++ b/libjava/org/w3c/dom/css/DocumentCSS.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_DocumentCSS__ +#define __org_w3c_dom_css_DocumentCSS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + namespace css + { + class CSSStyleDeclaration; + class DocumentCSS; + } + namespace stylesheets + { + class StyleSheetList; + } + } + } + } +} + +class org::w3c::dom::css::DocumentCSS : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSStyleDeclaration * getOverrideStyle(::org::w3c::dom::Element *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::stylesheets::StyleSheetList * getStyleSheets() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_DocumentCSS__ diff --git a/libjava/org/w3c/dom/css/ElementCSSInlineStyle.h b/libjava/org/w3c/dom/css/ElementCSSInlineStyle.h new file mode 100644 index 00000000000..f4c26d774f9 --- /dev/null +++ b/libjava/org/w3c/dom/css/ElementCSSInlineStyle.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_ElementCSSInlineStyle__ +#define __org_w3c_dom_css_ElementCSSInlineStyle__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSStyleDeclaration; + class ElementCSSInlineStyle; + } + } + } + } +} + +class org::w3c::dom::css::ElementCSSInlineStyle : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSStyleDeclaration * getStyle() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_ElementCSSInlineStyle__ diff --git a/libjava/org/w3c/dom/css/RGBColor.h b/libjava/org/w3c/dom/css/RGBColor.h new file mode 100644 index 00000000000..bc0932de63b --- /dev/null +++ b/libjava/org/w3c/dom/css/RGBColor.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_RGBColor__ +#define __org_w3c_dom_css_RGBColor__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSPrimitiveValue; + class RGBColor; + } + } + } + } +} + +class org::w3c::dom::css::RGBColor : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSPrimitiveValue * getRed() = 0; + virtual ::org::w3c::dom::css::CSSPrimitiveValue * getGreen() = 0; + virtual ::org::w3c::dom::css::CSSPrimitiveValue * getBlue() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_RGBColor__ diff --git a/libjava/org/w3c/dom/css/Rect.h b/libjava/org/w3c/dom/css/Rect.h new file mode 100644 index 00000000000..e55d1e0465b --- /dev/null +++ b/libjava/org/w3c/dom/css/Rect.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_Rect__ +#define __org_w3c_dom_css_Rect__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace css + { + class CSSPrimitiveValue; + class Rect; + } + } + } + } +} + +class org::w3c::dom::css::Rect : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSPrimitiveValue * getTop() = 0; + virtual ::org::w3c::dom::css::CSSPrimitiveValue * getRight() = 0; + virtual ::org::w3c::dom::css::CSSPrimitiveValue * getBottom() = 0; + virtual ::org::w3c::dom::css::CSSPrimitiveValue * getLeft() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_Rect__ diff --git a/libjava/org/w3c/dom/css/ViewCSS.h b/libjava/org/w3c/dom/css/ViewCSS.h new file mode 100644 index 00000000000..a1c12555e9d --- /dev/null +++ b/libjava/org/w3c/dom/css/ViewCSS.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_css_ViewCSS__ +#define __org_w3c_dom_css_ViewCSS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + namespace css + { + class CSSStyleDeclaration; + class ViewCSS; + } + namespace views + { + class DocumentView; + } + } + } + } +} + +class org::w3c::dom::css::ViewCSS : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::css::CSSStyleDeclaration * getComputedStyle(::org::w3c::dom::Element *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::views::DocumentView * getDocument() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_css_ViewCSS__ diff --git a/libjava/org/w3c/dom/events/DocumentEvent.h b/libjava/org/w3c/dom/events/DocumentEvent.h new file mode 100644 index 00000000000..2fc95507101 --- /dev/null +++ b/libjava/org/w3c/dom/events/DocumentEvent.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_DocumentEvent__ +#define __org_w3c_dom_events_DocumentEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class DocumentEvent; + class Event; + } + } + } + } +} + +class org::w3c::dom::events::DocumentEvent : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::events::Event * createEvent(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_events_DocumentEvent__ diff --git a/libjava/org/w3c/dom/events/Event.h b/libjava/org/w3c/dom/events/Event.h new file mode 100644 index 00000000000..7f1e90ee13c --- /dev/null +++ b/libjava/org/w3c/dom/events/Event.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_Event__ +#define __org_w3c_dom_events_Event__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class Event; + class EventTarget; + } + } + } + } +} + +class org::w3c::dom::events::Event : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getType() = 0; + virtual ::org::w3c::dom::events::EventTarget * getTarget() = 0; + virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget() = 0; + virtual jshort getEventPhase() = 0; + virtual jboolean getBubbles() = 0; + virtual jboolean getCancelable() = 0; + virtual jlong getTimeStamp() = 0; + virtual void stopPropagation() = 0; + virtual void preventDefault() = 0; + virtual void initEvent(::java::lang::String *, jboolean, jboolean) = 0; + static const jshort CAPTURING_PHASE = 1; + static const jshort AT_TARGET = 2; + static const jshort BUBBLING_PHASE = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_events_Event__ diff --git a/libjava/org/w3c/dom/events/EventException.h b/libjava/org/w3c/dom/events/EventException.h new file mode 100644 index 00000000000..20d2e8cfef3 --- /dev/null +++ b/libjava/org/w3c/dom/events/EventException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_EventException__ +#define __org_w3c_dom_events_EventException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class EventException; + } + } + } + } +} + +class org::w3c::dom::events::EventException : public ::java::lang::RuntimeException +{ + +public: + EventException(jshort, ::java::lang::String *); + jshort __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) code; + static const jshort UNSPECIFIED_EVENT_TYPE_ERR = 0; + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_events_EventException__ diff --git a/libjava/org/w3c/dom/events/EventListener.h b/libjava/org/w3c/dom/events/EventListener.h new file mode 100644 index 00000000000..8f34b358725 --- /dev/null +++ b/libjava/org/w3c/dom/events/EventListener.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_EventListener__ +#define __org_w3c_dom_events_EventListener__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class Event; + class EventListener; + } + } + } + } +} + +class org::w3c::dom::events::EventListener : public ::java::lang::Object +{ + +public: + virtual void handleEvent(::org::w3c::dom::events::Event *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_events_EventListener__ diff --git a/libjava/org/w3c/dom/events/EventTarget.h b/libjava/org/w3c/dom/events/EventTarget.h new file mode 100644 index 00000000000..b46815c4eef --- /dev/null +++ b/libjava/org/w3c/dom/events/EventTarget.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_EventTarget__ +#define __org_w3c_dom_events_EventTarget__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class Event; + class EventListener; + class EventTarget; + } + } + } + } +} + +class org::w3c::dom::events::EventTarget : public ::java::lang::Object +{ + +public: + virtual void addEventListener(::java::lang::String *, ::org::w3c::dom::events::EventListener *, jboolean) = 0; + virtual void removeEventListener(::java::lang::String *, ::org::w3c::dom::events::EventListener *, jboolean) = 0; + virtual jboolean dispatchEvent(::org::w3c::dom::events::Event *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_events_EventTarget__ diff --git a/libjava/org/w3c/dom/events/MouseEvent.h b/libjava/org/w3c/dom/events/MouseEvent.h new file mode 100644 index 00000000000..b5cdf776ab4 --- /dev/null +++ b/libjava/org/w3c/dom/events/MouseEvent.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_MouseEvent__ +#define __org_w3c_dom_events_MouseEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class EventTarget; + class MouseEvent; + } + namespace views + { + class AbstractView; + } + } + } + } +} + +class org::w3c::dom::events::MouseEvent : public ::java::lang::Object +{ + +public: + virtual jint getScreenX() = 0; + virtual jint getScreenY() = 0; + virtual jint getClientX() = 0; + virtual jint getClientY() = 0; + virtual jboolean getCtrlKey() = 0; + virtual jboolean getShiftKey() = 0; + virtual jboolean getAltKey() = 0; + virtual jboolean getMetaKey() = 0; + virtual jshort getButton() = 0; + virtual ::org::w3c::dom::events::EventTarget * getRelatedTarget() = 0; + virtual void initMouseEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::views::AbstractView *, jint, jint, jint, jint, jint, jboolean, jboolean, jboolean, jboolean, jshort, ::org::w3c::dom::events::EventTarget *) = 0; + virtual ::org::w3c::dom::views::AbstractView * getView() = 0; + virtual jint getDetail() = 0; + virtual void initUIEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::views::AbstractView *, jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::org::w3c::dom::events::EventTarget * getTarget() = 0; + virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget() = 0; + virtual jshort getEventPhase() = 0; + virtual jboolean getBubbles() = 0; + virtual jboolean getCancelable() = 0; + virtual jlong getTimeStamp() = 0; + virtual void stopPropagation() = 0; + virtual void preventDefault() = 0; + virtual void initEvent(::java::lang::String *, jboolean, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_events_MouseEvent__ diff --git a/libjava/org/w3c/dom/events/MutationEvent.h b/libjava/org/w3c/dom/events/MutationEvent.h new file mode 100644 index 00000000000..4f461f7afab --- /dev/null +++ b/libjava/org/w3c/dom/events/MutationEvent.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_MutationEvent__ +#define __org_w3c_dom_events_MutationEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace events + { + class EventTarget; + class MutationEvent; + } + } + } + } +} + +class org::w3c::dom::events::MutationEvent : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Node * getRelatedNode() = 0; + virtual ::java::lang::String * getPrevValue() = 0; + virtual ::java::lang::String * getNewValue() = 0; + virtual ::java::lang::String * getAttrName() = 0; + virtual jshort getAttrChange() = 0; + virtual void initMutationEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::Node *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jshort) = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::org::w3c::dom::events::EventTarget * getTarget() = 0; + virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget() = 0; + virtual jshort getEventPhase() = 0; + virtual jboolean getBubbles() = 0; + virtual jboolean getCancelable() = 0; + virtual jlong getTimeStamp() = 0; + virtual void stopPropagation() = 0; + virtual void preventDefault() = 0; + virtual void initEvent(::java::lang::String *, jboolean, jboolean) = 0; + static const jshort MODIFICATION = 1; + static const jshort ADDITION = 2; + static const jshort REMOVAL = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_events_MutationEvent__ diff --git a/libjava/org/w3c/dom/events/UIEvent.h b/libjava/org/w3c/dom/events/UIEvent.h new file mode 100644 index 00000000000..2cfbf843a3d --- /dev/null +++ b/libjava/org/w3c/dom/events/UIEvent.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_events_UIEvent__ +#define __org_w3c_dom_events_UIEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class EventTarget; + class UIEvent; + } + namespace views + { + class AbstractView; + } + } + } + } +} + +class org::w3c::dom::events::UIEvent : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::views::AbstractView * getView() = 0; + virtual jint getDetail() = 0; + virtual void initUIEvent(::java::lang::String *, jboolean, jboolean, ::org::w3c::dom::views::AbstractView *, jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::org::w3c::dom::events::EventTarget * getTarget() = 0; + virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget() = 0; + virtual jshort getEventPhase() = 0; + virtual jboolean getBubbles() = 0; + virtual jboolean getCancelable() = 0; + virtual jlong getTimeStamp() = 0; + virtual void stopPropagation() = 0; + virtual void preventDefault() = 0; + virtual void initEvent(::java::lang::String *, jboolean, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_events_UIEvent__ diff --git a/libjava/org/w3c/dom/html2/HTMLAnchorElement.h b/libjava/org/w3c/dom/html2/HTMLAnchorElement.h new file mode 100644 index 00000000000..01a23610264 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLAnchorElement.h @@ -0,0 +1,134 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLAnchorElement__ +#define __org_w3c_dom_html2_HTMLAnchorElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLAnchorElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLAnchorElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAccessKey() = 0; + virtual void setAccessKey(::java::lang::String *) = 0; + virtual ::java::lang::String * getCharset() = 0; + virtual void setCharset(::java::lang::String *) = 0; + virtual ::java::lang::String * getCoords() = 0; + virtual void setCoords(::java::lang::String *) = 0; + virtual ::java::lang::String * getHref() = 0; + virtual void setHref(::java::lang::String *) = 0; + virtual ::java::lang::String * getHreflang() = 0; + virtual void setHreflang(::java::lang::String *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getRel() = 0; + virtual void setRel(::java::lang::String *) = 0; + virtual ::java::lang::String * getRev() = 0; + virtual void setRev(::java::lang::String *) = 0; + virtual ::java::lang::String * getShape() = 0; + virtual void setShape(::java::lang::String *) = 0; + virtual jint getTabIndex() = 0; + virtual void setTabIndex(jint) = 0; + virtual ::java::lang::String * getTarget() = 0; + virtual void setTarget(::java::lang::String *) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual void blur() = 0; + virtual void focus() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLAnchorElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLAppletElement.h b/libjava/org/w3c/dom/html2/HTMLAppletElement.h new file mode 100644 index 00000000000..5a53cfa9bf4 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLAppletElement.h @@ -0,0 +1,130 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLAppletElement__ +#define __org_w3c_dom_html2_HTMLAppletElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLAppletElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLAppletElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlt() = 0; + virtual void setAlt(::java::lang::String *) = 0; + virtual ::java::lang::String * getArchive() = 0; + virtual void setArchive(::java::lang::String *) = 0; + virtual ::java::lang::String * getCode() = 0; + virtual void setCode(::java::lang::String *) = 0; + virtual ::java::lang::String * getCodeBase() = 0; + virtual void setCodeBase(::java::lang::String *) = 0; + virtual ::java::lang::String * getHeight() = 0; + virtual void setHeight(::java::lang::String *) = 0; + virtual jint getHspace() = 0; + virtual void setHspace(jint) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getObject() = 0; + virtual void setObject(::java::lang::String *) = 0; + virtual jint getVspace() = 0; + virtual void setVspace(jint) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLAppletElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLAreaElement.h b/libjava/org/w3c/dom/html2/HTMLAreaElement.h new file mode 100644 index 00000000000..12823e89afe --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLAreaElement.h @@ -0,0 +1,124 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLAreaElement__ +#define __org_w3c_dom_html2_HTMLAreaElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLAreaElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLAreaElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAccessKey() = 0; + virtual void setAccessKey(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlt() = 0; + virtual void setAlt(::java::lang::String *) = 0; + virtual ::java::lang::String * getCoords() = 0; + virtual void setCoords(::java::lang::String *) = 0; + virtual ::java::lang::String * getHref() = 0; + virtual void setHref(::java::lang::String *) = 0; + virtual jboolean getNoHref() = 0; + virtual void setNoHref(jboolean) = 0; + virtual ::java::lang::String * getShape() = 0; + virtual void setShape(::java::lang::String *) = 0; + virtual jint getTabIndex() = 0; + virtual void setTabIndex(jint) = 0; + virtual ::java::lang::String * getTarget() = 0; + virtual void setTarget(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLAreaElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLBRElement.h b/libjava/org/w3c/dom/html2/HTMLBRElement.h new file mode 100644 index 00000000000..1532e40f938 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLBRElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLBRElement__ +#define __org_w3c_dom_html2_HTMLBRElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLBRElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLBRElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getClear() = 0; + virtual void setClear(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLBRElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLBaseElement.h b/libjava/org/w3c/dom/html2/HTMLBaseElement.h new file mode 100644 index 00000000000..ab34c703090 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLBaseElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLBaseElement__ +#define __org_w3c_dom_html2_HTMLBaseElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLBaseElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLBaseElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getHref() = 0; + virtual void setHref(::java::lang::String *) = 0; + virtual ::java::lang::String * getTarget() = 0; + virtual void setTarget(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLBaseElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLBaseFontElement.h b/libjava/org/w3c/dom/html2/HTMLBaseFontElement.h new file mode 100644 index 00000000000..e2859b3d488 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLBaseFontElement.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLBaseFontElement__ +#define __org_w3c_dom_html2_HTMLBaseFontElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLBaseFontElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLBaseFontElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getColor() = 0; + virtual void setColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getFace() = 0; + virtual void setFace(::java::lang::String *) = 0; + virtual jint getSize() = 0; + virtual void setSize(jint) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLBaseFontElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLBodyElement.h b/libjava/org/w3c/dom/html2/HTMLBodyElement.h new file mode 100644 index 00000000000..7c9c16a2336 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLBodyElement.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLBodyElement__ +#define __org_w3c_dom_html2_HTMLBodyElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLBodyElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLBodyElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getALink() = 0; + virtual void setALink(::java::lang::String *) = 0; + virtual ::java::lang::String * getBackground() = 0; + virtual void setBackground(::java::lang::String *) = 0; + virtual ::java::lang::String * getBgColor() = 0; + virtual void setBgColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getLink() = 0; + virtual void setLink(::java::lang::String *) = 0; + virtual ::java::lang::String * getText() = 0; + virtual void setText(::java::lang::String *) = 0; + virtual ::java::lang::String * getVLink() = 0; + virtual void setVLink(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLBodyElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLButtonElement.h b/libjava/org/w3c/dom/html2/HTMLButtonElement.h new file mode 100644 index 00000000000..1c2d48b6ffd --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLButtonElement.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLButtonElement__ +#define __org_w3c_dom_html2_HTMLButtonElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLButtonElement; + class HTMLFormElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLButtonElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getAccessKey() = 0; + virtual void setAccessKey(::java::lang::String *) = 0; + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual jint getTabIndex() = 0; + virtual void setTabIndex(jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::java::lang::String * getValue() = 0; + virtual void setValue(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLButtonElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLCollection.h b/libjava/org/w3c/dom/html2/HTMLCollection.h new file mode 100644 index 00000000000..06a86c94835 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLCollection.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLCollection__ +#define __org_w3c_dom_html2_HTMLCollection__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace html2 + { + class HTMLCollection; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLCollection : public ::java::lang::Object +{ + +public: + virtual jint getLength() = 0; + virtual ::org::w3c::dom::Node * item(jint) = 0; + virtual ::org::w3c::dom::Node * namedItem(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLCollection__ diff --git a/libjava/org/w3c/dom/html2/HTMLDListElement.h b/libjava/org/w3c/dom/html2/HTMLDListElement.h new file mode 100644 index 00000000000..269d051761f --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLDListElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLDListElement__ +#define __org_w3c_dom_html2_HTMLDListElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLDListElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLDListElement : public ::java::lang::Object +{ + +public: + virtual jboolean getCompact() = 0; + virtual void setCompact(jboolean) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLDListElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLDirectoryElement.h b/libjava/org/w3c/dom/html2/HTMLDirectoryElement.h new file mode 100644 index 00000000000..f6315899d27 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLDirectoryElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLDirectoryElement__ +#define __org_w3c_dom_html2_HTMLDirectoryElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLDirectoryElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLDirectoryElement : public ::java::lang::Object +{ + +public: + virtual jboolean getCompact() = 0; + virtual void setCompact(jboolean) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLDirectoryElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLDivElement.h b/libjava/org/w3c/dom/html2/HTMLDivElement.h new file mode 100644 index 00000000000..e0132bcfee7 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLDivElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLDivElement__ +#define __org_w3c_dom_html2_HTMLDivElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLDivElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLDivElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLDivElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLDocument.h b/libjava/org/w3c/dom/html2/HTMLDocument.h new file mode 100644 index 00000000000..223a8f69868 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLDocument.h @@ -0,0 +1,139 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLDocument__ +#define __org_w3c_dom_html2_HTMLDocument__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class CDATASection; + class Comment; + class DOMConfiguration; + class DOMImplementation; + class Document; + class DocumentFragment; + class DocumentType; + class Element; + class EntityReference; + class NamedNodeMap; + class Node; + class NodeList; + class ProcessingInstruction; + class Text; + class UserDataHandler; + namespace html2 + { + class HTMLCollection; + class HTMLDocument; + class HTMLElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLDocument : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getReferrer() = 0; + virtual ::java::lang::String * getDomain() = 0; + virtual ::java::lang::String * getURL() = 0; + virtual ::org::w3c::dom::html2::HTMLElement * getBody() = 0; + virtual void setBody(::org::w3c::dom::html2::HTMLElement *) = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getImages() = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getApplets() = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getLinks() = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getForms() = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getAnchors() = 0; + virtual ::java::lang::String * getCookie() = 0; + virtual void setCookie(::java::lang::String *) = 0; + virtual void open() = 0; + virtual void close() = 0; + virtual void write(::java::lang::String *) = 0; + virtual void writeln(::java::lang::String *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByName(::java::lang::String *) = 0; + virtual ::org::w3c::dom::DocumentType * getDoctype() = 0; + virtual ::org::w3c::dom::DOMImplementation * getImplementation() = 0; + virtual ::org::w3c::dom::Element * getDocumentElement() = 0; + virtual ::org::w3c::dom::Element * createElement(::java::lang::String *) = 0; + virtual ::org::w3c::dom::DocumentFragment * createDocumentFragment() = 0; + virtual ::org::w3c::dom::Text * createTextNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Comment * createComment(::java::lang::String *) = 0; + virtual ::org::w3c::dom::CDATASection * createCDATASection(::java::lang::String *) = 0; + virtual ::org::w3c::dom::ProcessingInstruction * createProcessingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * createAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::EntityReference * createEntityReference(::java::lang::String *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * importNode(::org::w3c::dom::Node *, jboolean) = 0; + virtual ::org::w3c::dom::Element * createElementNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * createAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Element * getElementById(::java::lang::String *) = 0; + virtual ::java::lang::String * getInputEncoding() = 0; + virtual ::java::lang::String * getXmlEncoding() = 0; + virtual jboolean getXmlStandalone() = 0; + virtual void setXmlStandalone(jboolean) = 0; + virtual ::java::lang::String * getXmlVersion() = 0; + virtual void setXmlVersion(::java::lang::String *) = 0; + virtual jboolean getStrictErrorChecking() = 0; + virtual void setStrictErrorChecking(jboolean) = 0; + virtual ::java::lang::String * getDocumentURI() = 0; + virtual void setDocumentURI(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * adoptNode(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig() = 0; + virtual void normalizeDocument() = 0; + virtual ::org::w3c::dom::Node * renameNode(::org::w3c::dom::Node *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLDocument__ diff --git a/libjava/org/w3c/dom/html2/HTMLElement.h b/libjava/org/w3c/dom/html2/HTMLElement.h new file mode 100644 index 00000000000..13f7df02c94 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLElement.h @@ -0,0 +1,108 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLElement__ +#define __org_w3c_dom_html2_HTMLElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLFieldSetElement.h b/libjava/org/w3c/dom/html2/HTMLFieldSetElement.h new file mode 100644 index 00000000000..78b7ec1c04f --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLFieldSetElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLFieldSetElement__ +#define __org_w3c_dom_html2_HTMLFieldSetElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFieldSetElement; + class HTMLFormElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLFieldSetElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLFieldSetElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLFontElement.h b/libjava/org/w3c/dom/html2/HTMLFontElement.h new file mode 100644 index 00000000000..a39953cdb47 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLFontElement.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLFontElement__ +#define __org_w3c_dom_html2_HTMLFontElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFontElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLFontElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getColor() = 0; + virtual void setColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getFace() = 0; + virtual void setFace(::java::lang::String *) = 0; + virtual ::java::lang::String * getSize() = 0; + virtual void setSize(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLFontElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLFormElement.h b/libjava/org/w3c/dom/html2/HTMLFormElement.h new file mode 100644 index 00000000000..3dea87f2bfa --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLFormElement.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLFormElement__ +#define __org_w3c_dom_html2_HTMLFormElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLCollection; + class HTMLFormElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLFormElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLCollection * getElements() = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAcceptCharset() = 0; + virtual void setAcceptCharset(::java::lang::String *) = 0; + virtual ::java::lang::String * getAction() = 0; + virtual void setAction(::java::lang::String *) = 0; + virtual ::java::lang::String * getEnctype() = 0; + virtual void setEnctype(::java::lang::String *) = 0; + virtual ::java::lang::String * getMethod() = 0; + virtual void setMethod(::java::lang::String *) = 0; + virtual ::java::lang::String * getTarget() = 0; + virtual void setTarget(::java::lang::String *) = 0; + virtual void submit() = 0; + virtual void reset() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLFormElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLFrameElement.h b/libjava/org/w3c/dom/html2/HTMLFrameElement.h new file mode 100644 index 00000000000..a87c07deb21 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLFrameElement.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLFrameElement__ +#define __org_w3c_dom_html2_HTMLFrameElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFrameElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLFrameElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getFrameBorder() = 0; + virtual void setFrameBorder(::java::lang::String *) = 0; + virtual ::java::lang::String * getLongDesc() = 0; + virtual void setLongDesc(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginHeight() = 0; + virtual void setMarginHeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginWidth() = 0; + virtual void setMarginWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual jboolean getNoResize() = 0; + virtual void setNoResize(jboolean) = 0; + virtual ::java::lang::String * getScrolling() = 0; + virtual void setScrolling(::java::lang::String *) = 0; + virtual ::java::lang::String * getSrc() = 0; + virtual void setSrc(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Document * getContentDocument() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLFrameElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLFrameSetElement.h b/libjava/org/w3c/dom/html2/HTMLFrameSetElement.h new file mode 100644 index 00000000000..954dc52420c --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLFrameSetElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLFrameSetElement__ +#define __org_w3c_dom_html2_HTMLFrameSetElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFrameSetElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLFrameSetElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getCols() = 0; + virtual void setCols(::java::lang::String *) = 0; + virtual ::java::lang::String * getRows() = 0; + virtual void setRows(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLFrameSetElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLHRElement.h b/libjava/org/w3c/dom/html2/HTMLHRElement.h new file mode 100644 index 00000000000..3d831ab8406 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLHRElement.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLHRElement__ +#define __org_w3c_dom_html2_HTMLHRElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLHRElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLHRElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual jboolean getNoShade() = 0; + virtual void setNoShade(jboolean) = 0; + virtual ::java::lang::String * getSize() = 0; + virtual void setSize(::java::lang::String *) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLHRElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLHeadElement.h b/libjava/org/w3c/dom/html2/HTMLHeadElement.h new file mode 100644 index 00000000000..3e01bd20966 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLHeadElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLHeadElement__ +#define __org_w3c_dom_html2_HTMLHeadElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLHeadElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLHeadElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getProfile() = 0; + virtual void setProfile(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLHeadElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLHeadingElement.h b/libjava/org/w3c/dom/html2/HTMLHeadingElement.h new file mode 100644 index 00000000000..e8c4b10c3b0 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLHeadingElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLHeadingElement__ +#define __org_w3c_dom_html2_HTMLHeadingElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLHeadingElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLHeadingElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLHeadingElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLHtmlElement.h b/libjava/org/w3c/dom/html2/HTMLHtmlElement.h new file mode 100644 index 00000000000..9a0837e514e --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLHtmlElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLHtmlElement__ +#define __org_w3c_dom_html2_HTMLHtmlElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLHtmlElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLHtmlElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getVersion() = 0; + virtual void setVersion(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLHtmlElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLIFrameElement.h b/libjava/org/w3c/dom/html2/HTMLIFrameElement.h new file mode 100644 index 00000000000..ca09ae567c8 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLIFrameElement.h @@ -0,0 +1,129 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLIFrameElement__ +#define __org_w3c_dom_html2_HTMLIFrameElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLIFrameElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLIFrameElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getFrameBorder() = 0; + virtual void setFrameBorder(::java::lang::String *) = 0; + virtual ::java::lang::String * getHeight() = 0; + virtual void setHeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getLongDesc() = 0; + virtual void setLongDesc(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginHeight() = 0; + virtual void setMarginHeight(::java::lang::String *) = 0; + virtual ::java::lang::String * getMarginWidth() = 0; + virtual void setMarginWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getScrolling() = 0; + virtual void setScrolling(::java::lang::String *) = 0; + virtual ::java::lang::String * getSrc() = 0; + virtual void setSrc(::java::lang::String *) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Document * getContentDocument() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLIFrameElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLImageElement.h b/libjava/org/w3c/dom/html2/HTMLImageElement.h new file mode 100644 index 00000000000..931896bb903 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLImageElement.h @@ -0,0 +1,132 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLImageElement__ +#define __org_w3c_dom_html2_HTMLImageElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLImageElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLImageElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlt() = 0; + virtual void setAlt(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorder() = 0; + virtual void setBorder(::java::lang::String *) = 0; + virtual jint getHeight() = 0; + virtual void setHeight(jint) = 0; + virtual jint getHspace() = 0; + virtual void setHspace(jint) = 0; + virtual jboolean getIsMap() = 0; + virtual void setIsMap(jboolean) = 0; + virtual ::java::lang::String * getLongDesc() = 0; + virtual void setLongDesc(::java::lang::String *) = 0; + virtual ::java::lang::String * getSrc() = 0; + virtual void setSrc(::java::lang::String *) = 0; + virtual ::java::lang::String * getUseMap() = 0; + virtual void setUseMap(::java::lang::String *) = 0; + virtual jint getVspace() = 0; + virtual void setVspace(jint) = 0; + virtual jint getWidth() = 0; + virtual void setWidth(jint) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLImageElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLInputElement.h b/libjava/org/w3c/dom/html2/HTMLInputElement.h new file mode 100644 index 00000000000..b6b5f5ca0a9 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLInputElement.h @@ -0,0 +1,148 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLInputElement__ +#define __org_w3c_dom_html2_HTMLInputElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFormElement; + class HTMLInputElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLInputElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getDefaultValue() = 0; + virtual void setDefaultValue(::java::lang::String *) = 0; + virtual jboolean getDefaultChecked() = 0; + virtual void setDefaultChecked(jboolean) = 0; + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getAccept() = 0; + virtual void setAccept(::java::lang::String *) = 0; + virtual ::java::lang::String * getAccessKey() = 0; + virtual void setAccessKey(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlt() = 0; + virtual void setAlt(::java::lang::String *) = 0; + virtual jboolean getChecked() = 0; + virtual void setChecked(jboolean) = 0; + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual jint getMaxLength() = 0; + virtual void setMaxLength(jint) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual jboolean getReadOnly() = 0; + virtual void setReadOnly(jboolean) = 0; + virtual jint getSize() = 0; + virtual void setSize(jint) = 0; + virtual ::java::lang::String * getSrc() = 0; + virtual void setSrc(::java::lang::String *) = 0; + virtual jint getTabIndex() = 0; + virtual void setTabIndex(jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getUseMap() = 0; + virtual void setUseMap(::java::lang::String *) = 0; + virtual ::java::lang::String * getValue() = 0; + virtual void setValue(::java::lang::String *) = 0; + virtual void blur() = 0; + virtual void focus() = 0; + virtual void select() = 0; + virtual void click() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLInputElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLIsIndexElement.h b/libjava/org/w3c/dom/html2/HTMLIsIndexElement.h new file mode 100644 index 00000000000..dc6748fcca7 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLIsIndexElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLIsIndexElement__ +#define __org_w3c_dom_html2_HTMLIsIndexElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFormElement; + class HTMLIsIndexElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLIsIndexElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getPrompt() = 0; + virtual void setPrompt(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLIsIndexElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLLIElement.h b/libjava/org/w3c/dom/html2/HTMLLIElement.h new file mode 100644 index 00000000000..3b9caa30e23 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLLIElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLLIElement__ +#define __org_w3c_dom_html2_HTMLLIElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLLIElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLLIElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual jint getValue() = 0; + virtual void setValue(jint) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLLIElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLLabelElement.h b/libjava/org/w3c/dom/html2/HTMLLabelElement.h new file mode 100644 index 00000000000..d0f9948ddf4 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLLabelElement.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLLabelElement__ +#define __org_w3c_dom_html2_HTMLLabelElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFormElement; + class HTMLLabelElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLLabelElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getAccessKey() = 0; + virtual void setAccessKey(::java::lang::String *) = 0; + virtual ::java::lang::String * getHtmlFor() = 0; + virtual void setHtmlFor(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLLabelElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLLegendElement.h b/libjava/org/w3c/dom/html2/HTMLLegendElement.h new file mode 100644 index 00000000000..c26a4b455f3 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLLegendElement.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLLegendElement__ +#define __org_w3c_dom_html2_HTMLLegendElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFormElement; + class HTMLLegendElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLLegendElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getAccessKey() = 0; + virtual void setAccessKey(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLLegendElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLLinkElement.h b/libjava/org/w3c/dom/html2/HTMLLinkElement.h new file mode 100644 index 00000000000..c58f1cf5d90 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLLinkElement.h @@ -0,0 +1,126 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLLinkElement__ +#define __org_w3c_dom_html2_HTMLLinkElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLLinkElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLLinkElement : public ::java::lang::Object +{ + +public: + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::java::lang::String * getCharset() = 0; + virtual void setCharset(::java::lang::String *) = 0; + virtual ::java::lang::String * getHref() = 0; + virtual void setHref(::java::lang::String *) = 0; + virtual ::java::lang::String * getHreflang() = 0; + virtual void setHreflang(::java::lang::String *) = 0; + virtual ::java::lang::String * getMedia() = 0; + virtual void setMedia(::java::lang::String *) = 0; + virtual ::java::lang::String * getRel() = 0; + virtual void setRel(::java::lang::String *) = 0; + virtual ::java::lang::String * getRev() = 0; + virtual void setRev(::java::lang::String *) = 0; + virtual ::java::lang::String * getTarget() = 0; + virtual void setTarget(::java::lang::String *) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLLinkElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLMapElement.h b/libjava/org/w3c/dom/html2/HTMLMapElement.h new file mode 100644 index 00000000000..4fdb470c9a4 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLMapElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLMapElement__ +#define __org_w3c_dom_html2_HTMLMapElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLCollection; + class HTMLMapElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLMapElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLCollection * getAreas() = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLMapElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLMenuElement.h b/libjava/org/w3c/dom/html2/HTMLMenuElement.h new file mode 100644 index 00000000000..e2a6e33b492 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLMenuElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLMenuElement__ +#define __org_w3c_dom_html2_HTMLMenuElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLMenuElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLMenuElement : public ::java::lang::Object +{ + +public: + virtual jboolean getCompact() = 0; + virtual void setCompact(jboolean) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLMenuElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLMetaElement.h b/libjava/org/w3c/dom/html2/HTMLMetaElement.h new file mode 100644 index 00000000000..4d90bb5e27c --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLMetaElement.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLMetaElement__ +#define __org_w3c_dom_html2_HTMLMetaElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLMetaElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLMetaElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getContent() = 0; + virtual void setContent(::java::lang::String *) = 0; + virtual ::java::lang::String * getHttpEquiv() = 0; + virtual void setHttpEquiv(::java::lang::String *) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getScheme() = 0; + virtual void setScheme(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLMetaElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLModElement.h b/libjava/org/w3c/dom/html2/HTMLModElement.h new file mode 100644 index 00000000000..8cdbb130862 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLModElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLModElement__ +#define __org_w3c_dom_html2_HTMLModElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLModElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLModElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getCite() = 0; + virtual void setCite(::java::lang::String *) = 0; + virtual ::java::lang::String * getDateTime() = 0; + virtual void setDateTime(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLModElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLOListElement.h b/libjava/org/w3c/dom/html2/HTMLOListElement.h new file mode 100644 index 00000000000..9dc476379b1 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLOListElement.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLOListElement__ +#define __org_w3c_dom_html2_HTMLOListElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLOListElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLOListElement : public ::java::lang::Object +{ + +public: + virtual jboolean getCompact() = 0; + virtual void setCompact(jboolean) = 0; + virtual jint getStart() = 0; + virtual void setStart(jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLOListElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLObjectElement.h b/libjava/org/w3c/dom/html2/HTMLObjectElement.h new file mode 100644 index 00000000000..e061d879435 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLObjectElement.h @@ -0,0 +1,145 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLObjectElement__ +#define __org_w3c_dom_html2_HTMLObjectElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFormElement; + class HTMLObjectElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLObjectElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getCode() = 0; + virtual void setCode(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getArchive() = 0; + virtual void setArchive(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorder() = 0; + virtual void setBorder(::java::lang::String *) = 0; + virtual ::java::lang::String * getCodeBase() = 0; + virtual void setCodeBase(::java::lang::String *) = 0; + virtual ::java::lang::String * getCodeType() = 0; + virtual void setCodeType(::java::lang::String *) = 0; + virtual ::java::lang::String * getData() = 0; + virtual void setData(::java::lang::String *) = 0; + virtual jboolean getDeclare() = 0; + virtual void setDeclare(jboolean) = 0; + virtual ::java::lang::String * getHeight() = 0; + virtual void setHeight(::java::lang::String *) = 0; + virtual jint getHspace() = 0; + virtual void setHspace(jint) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getStandby() = 0; + virtual void setStandby(::java::lang::String *) = 0; + virtual jint getTabIndex() = 0; + virtual void setTabIndex(jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getUseMap() = 0; + virtual void setUseMap(::java::lang::String *) = 0; + virtual jint getVspace() = 0; + virtual void setVspace(jint) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Document * getContentDocument() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLObjectElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLOptGroupElement.h b/libjava/org/w3c/dom/html2/HTMLOptGroupElement.h new file mode 100644 index 00000000000..b6ef2bcb7c5 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLOptGroupElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLOptGroupElement__ +#define __org_w3c_dom_html2_HTMLOptGroupElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLOptGroupElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLOptGroupElement : public ::java::lang::Object +{ + +public: + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::java::lang::String * getLabel() = 0; + virtual void setLabel(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLOptGroupElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLOptionElement.h b/libjava/org/w3c/dom/html2/HTMLOptionElement.h new file mode 100644 index 00000000000..dbf7b4c2e60 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLOptionElement.h @@ -0,0 +1,122 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLOptionElement__ +#define __org_w3c_dom_html2_HTMLOptionElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFormElement; + class HTMLOptionElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLOptionElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual jboolean getDefaultSelected() = 0; + virtual void setDefaultSelected(jboolean) = 0; + virtual ::java::lang::String * getText() = 0; + virtual jint getIndex() = 0; + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::java::lang::String * getLabel() = 0; + virtual void setLabel(::java::lang::String *) = 0; + virtual jboolean getSelected() = 0; + virtual void setSelected(jboolean) = 0; + virtual ::java::lang::String * getValue() = 0; + virtual void setValue(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLOptionElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLOptionsCollection.h b/libjava/org/w3c/dom/html2/HTMLOptionsCollection.h new file mode 100644 index 00000000000..ac144837c6a --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLOptionsCollection.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLOptionsCollection__ +#define __org_w3c_dom_html2_HTMLOptionsCollection__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace html2 + { + class HTMLOptionsCollection; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLOptionsCollection : public ::java::lang::Object +{ + +public: + virtual jint getLength() = 0; + virtual void setLength(jint) = 0; + virtual ::org::w3c::dom::Node * item(jint) = 0; + virtual ::org::w3c::dom::Node * namedItem(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLOptionsCollection__ diff --git a/libjava/org/w3c/dom/html2/HTMLParagraphElement.h b/libjava/org/w3c/dom/html2/HTMLParagraphElement.h new file mode 100644 index 00000000000..3b4b169be22 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLParagraphElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLParagraphElement__ +#define __org_w3c_dom_html2_HTMLParagraphElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLParagraphElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLParagraphElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLParagraphElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLParamElement.h b/libjava/org/w3c/dom/html2/HTMLParamElement.h new file mode 100644 index 00000000000..219e40d7f35 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLParamElement.h @@ -0,0 +1,116 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLParamElement__ +#define __org_w3c_dom_html2_HTMLParamElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLParamElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLParamElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getValue() = 0; + virtual void setValue(::java::lang::String *) = 0; + virtual ::java::lang::String * getValueType() = 0; + virtual void setValueType(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLParamElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLPreElement.h b/libjava/org/w3c/dom/html2/HTMLPreElement.h new file mode 100644 index 00000000000..54ef9434889 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLPreElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLPreElement__ +#define __org_w3c_dom_html2_HTMLPreElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLPreElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLPreElement : public ::java::lang::Object +{ + +public: + virtual jint getWidth() = 0; + virtual void setWidth(jint) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLPreElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLQuoteElement.h b/libjava/org/w3c/dom/html2/HTMLQuoteElement.h new file mode 100644 index 00000000000..fe5201fbb46 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLQuoteElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLQuoteElement__ +#define __org_w3c_dom_html2_HTMLQuoteElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLQuoteElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLQuoteElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getCite() = 0; + virtual void setCite(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLQuoteElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLScriptElement.h b/libjava/org/w3c/dom/html2/HTMLScriptElement.h new file mode 100644 index 00000000000..b2fbcf521a3 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLScriptElement.h @@ -0,0 +1,122 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLScriptElement__ +#define __org_w3c_dom_html2_HTMLScriptElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLScriptElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLScriptElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getText() = 0; + virtual void setText(::java::lang::String *) = 0; + virtual ::java::lang::String * getHtmlFor() = 0; + virtual void setHtmlFor(::java::lang::String *) = 0; + virtual ::java::lang::String * getEvent() = 0; + virtual void setEvent(::java::lang::String *) = 0; + virtual ::java::lang::String * getCharset() = 0; + virtual void setCharset(::java::lang::String *) = 0; + virtual jboolean getDefer() = 0; + virtual void setDefer(jboolean) = 0; + virtual ::java::lang::String * getSrc() = 0; + virtual void setSrc(::java::lang::String *) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLScriptElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLSelectElement.h b/libjava/org/w3c/dom/html2/HTMLSelectElement.h new file mode 100644 index 00000000000..e6bf83a6622 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLSelectElement.h @@ -0,0 +1,134 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLSelectElement__ +#define __org_w3c_dom_html2_HTMLSelectElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLElement; + class HTMLFormElement; + class HTMLOptionsCollection; + class HTMLSelectElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLSelectElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getType() = 0; + virtual jint getSelectedIndex() = 0; + virtual void setSelectedIndex(jint) = 0; + virtual ::java::lang::String * getValue() = 0; + virtual void setValue(::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual void setLength(jint) = 0; + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::org::w3c::dom::html2::HTMLOptionsCollection * getOptions() = 0; + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual jboolean getMultiple() = 0; + virtual void setMultiple(jboolean) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual jint getSize() = 0; + virtual void setSize(jint) = 0; + virtual jint getTabIndex() = 0; + virtual void setTabIndex(jint) = 0; + virtual void add(::org::w3c::dom::html2::HTMLElement *, ::org::w3c::dom::html2::HTMLElement *) = 0; + virtual void remove(jint) = 0; + virtual void blur() = 0; + virtual void focus() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLSelectElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLStyleElement.h b/libjava/org/w3c/dom/html2/HTMLStyleElement.h new file mode 100644 index 00000000000..23f08187eb5 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLStyleElement.h @@ -0,0 +1,114 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLStyleElement__ +#define __org_w3c_dom_html2_HTMLStyleElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLStyleElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLStyleElement : public ::java::lang::Object +{ + +public: + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::java::lang::String * getMedia() = 0; + virtual void setMedia(::java::lang::String *) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLStyleElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTableCaptionElement.h b/libjava/org/w3c/dom/html2/HTMLTableCaptionElement.h new file mode 100644 index 00000000000..344f4a53e18 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTableCaptionElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTableCaptionElement__ +#define __org_w3c_dom_html2_HTMLTableCaptionElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLTableCaptionElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTableCaptionElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTableCaptionElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTableCellElement.h b/libjava/org/w3c/dom/html2/HTMLTableCellElement.h new file mode 100644 index 00000000000..17e37b51559 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTableCellElement.h @@ -0,0 +1,137 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTableCellElement__ +#define __org_w3c_dom_html2_HTMLTableCellElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLTableCellElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTableCellElement : public ::java::lang::Object +{ + +public: + virtual jint getCellIndex() = 0; + virtual ::java::lang::String * getAbbr() = 0; + virtual void setAbbr(::java::lang::String *) = 0; + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getAxis() = 0; + virtual void setAxis(::java::lang::String *) = 0; + virtual ::java::lang::String * getBgColor() = 0; + virtual void setBgColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getCh() = 0; + virtual void setCh(::java::lang::String *) = 0; + virtual ::java::lang::String * getChOff() = 0; + virtual void setChOff(::java::lang::String *) = 0; + virtual jint getColSpan() = 0; + virtual void setColSpan(jint) = 0; + virtual ::java::lang::String * getHeaders() = 0; + virtual void setHeaders(::java::lang::String *) = 0; + virtual ::java::lang::String * getHeight() = 0; + virtual void setHeight(::java::lang::String *) = 0; + virtual jboolean getNoWrap() = 0; + virtual void setNoWrap(jboolean) = 0; + virtual jint getRowSpan() = 0; + virtual void setRowSpan(jint) = 0; + virtual ::java::lang::String * getScope() = 0; + virtual void setScope(::java::lang::String *) = 0; + virtual ::java::lang::String * getVAlign() = 0; + virtual void setVAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTableCellElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTableColElement.h b/libjava/org/w3c/dom/html2/HTMLTableColElement.h new file mode 100644 index 00000000000..a1c143d25be --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTableColElement.h @@ -0,0 +1,120 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTableColElement__ +#define __org_w3c_dom_html2_HTMLTableColElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLTableColElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTableColElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getCh() = 0; + virtual void setCh(::java::lang::String *) = 0; + virtual ::java::lang::String * getChOff() = 0; + virtual void setChOff(::java::lang::String *) = 0; + virtual jint getSpan() = 0; + virtual void setSpan(jint) = 0; + virtual ::java::lang::String * getVAlign() = 0; + virtual void setVAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTableColElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTableElement.h b/libjava/org/w3c/dom/html2/HTMLTableElement.h new file mode 100644 index 00000000000..5f5f9ae4b26 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTableElement.h @@ -0,0 +1,146 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTableElement__ +#define __org_w3c_dom_html2_HTMLTableElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLCollection; + class HTMLElement; + class HTMLTableCaptionElement; + class HTMLTableElement; + class HTMLTableSectionElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTableElement : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::html2::HTMLTableCaptionElement * getCaption() = 0; + virtual void setCaption(::org::w3c::dom::html2::HTMLTableCaptionElement *) = 0; + virtual ::org::w3c::dom::html2::HTMLTableSectionElement * getTHead() = 0; + virtual void setTHead(::org::w3c::dom::html2::HTMLTableSectionElement *) = 0; + virtual ::org::w3c::dom::html2::HTMLTableSectionElement * getTFoot() = 0; + virtual void setTFoot(::org::w3c::dom::html2::HTMLTableSectionElement *) = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getRows() = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getTBodies() = 0; + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getBgColor() = 0; + virtual void setBgColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getBorder() = 0; + virtual void setBorder(::java::lang::String *) = 0; + virtual ::java::lang::String * getCellPadding() = 0; + virtual void setCellPadding(::java::lang::String *) = 0; + virtual ::java::lang::String * getCellSpacing() = 0; + virtual void setCellSpacing(::java::lang::String *) = 0; + virtual ::java::lang::String * getFrame() = 0; + virtual void setFrame(::java::lang::String *) = 0; + virtual ::java::lang::String * getRules() = 0; + virtual void setRules(::java::lang::String *) = 0; + virtual ::java::lang::String * getSummary() = 0; + virtual void setSummary(::java::lang::String *) = 0; + virtual ::java::lang::String * getWidth() = 0; + virtual void setWidth(::java::lang::String *) = 0; + virtual ::org::w3c::dom::html2::HTMLElement * createTHead() = 0; + virtual void deleteTHead() = 0; + virtual ::org::w3c::dom::html2::HTMLElement * createTFoot() = 0; + virtual void deleteTFoot() = 0; + virtual ::org::w3c::dom::html2::HTMLElement * createCaption() = 0; + virtual void deleteCaption() = 0; + virtual ::org::w3c::dom::html2::HTMLElement * insertRow(jint) = 0; + virtual void deleteRow(jint) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTableElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTableRowElement.h b/libjava/org/w3c/dom/html2/HTMLTableRowElement.h new file mode 100644 index 00000000000..a8d59eaec01 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTableRowElement.h @@ -0,0 +1,125 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTableRowElement__ +#define __org_w3c_dom_html2_HTMLTableRowElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLCollection; + class HTMLElement; + class HTMLTableRowElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTableRowElement : public ::java::lang::Object +{ + +public: + virtual jint getRowIndex() = 0; + virtual jint getSectionRowIndex() = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getCells() = 0; + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getBgColor() = 0; + virtual void setBgColor(::java::lang::String *) = 0; + virtual ::java::lang::String * getCh() = 0; + virtual void setCh(::java::lang::String *) = 0; + virtual ::java::lang::String * getChOff() = 0; + virtual void setChOff(::java::lang::String *) = 0; + virtual ::java::lang::String * getVAlign() = 0; + virtual void setVAlign(::java::lang::String *) = 0; + virtual ::org::w3c::dom::html2::HTMLElement * insertCell(jint) = 0; + virtual void deleteCell(jint) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTableRowElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTableSectionElement.h b/libjava/org/w3c/dom/html2/HTMLTableSectionElement.h new file mode 100644 index 00000000000..3bec0b39ba0 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTableSectionElement.h @@ -0,0 +1,121 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTableSectionElement__ +#define __org_w3c_dom_html2_HTMLTableSectionElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLCollection; + class HTMLElement; + class HTMLTableSectionElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTableSectionElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getAlign() = 0; + virtual void setAlign(::java::lang::String *) = 0; + virtual ::java::lang::String * getCh() = 0; + virtual void setCh(::java::lang::String *) = 0; + virtual ::java::lang::String * getChOff() = 0; + virtual void setChOff(::java::lang::String *) = 0; + virtual ::java::lang::String * getVAlign() = 0; + virtual void setVAlign(::java::lang::String *) = 0; + virtual ::org::w3c::dom::html2::HTMLCollection * getRows() = 0; + virtual ::org::w3c::dom::html2::HTMLElement * insertRow(jint) = 0; + virtual void deleteRow(jint) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTableSectionElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTextAreaElement.h b/libjava/org/w3c/dom/html2/HTMLTextAreaElement.h new file mode 100644 index 00000000000..844493c1e97 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTextAreaElement.h @@ -0,0 +1,132 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTextAreaElement__ +#define __org_w3c_dom_html2_HTMLTextAreaElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLFormElement; + class HTMLTextAreaElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTextAreaElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getDefaultValue() = 0; + virtual void setDefaultValue(::java::lang::String *) = 0; + virtual ::org::w3c::dom::html2::HTMLFormElement * getForm() = 0; + virtual ::java::lang::String * getAccessKey() = 0; + virtual void setAccessKey(::java::lang::String *) = 0; + virtual jint getCols() = 0; + virtual void setCols(jint) = 0; + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::java::lang::String * getName() = 0; + virtual void setName(::java::lang::String *) = 0; + virtual jboolean getReadOnly() = 0; + virtual void setReadOnly(jboolean) = 0; + virtual jint getRows() = 0; + virtual void setRows(jint) = 0; + virtual jint getTabIndex() = 0; + virtual void setTabIndex(jint) = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::java::lang::String * getValue() = 0; + virtual void setValue(::java::lang::String *) = 0; + virtual void blur() = 0; + virtual void focus() = 0; + virtual void select() = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTextAreaElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLTitleElement.h b/libjava/org/w3c/dom/html2/HTMLTitleElement.h new file mode 100644 index 00000000000..edc44660171 --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLTitleElement.h @@ -0,0 +1,110 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLTitleElement__ +#define __org_w3c_dom_html2_HTMLTitleElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLTitleElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLTitleElement : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getText() = 0; + virtual void setText(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLTitleElement__ diff --git a/libjava/org/w3c/dom/html2/HTMLUListElement.h b/libjava/org/w3c/dom/html2/HTMLUListElement.h new file mode 100644 index 00000000000..4e327652e5e --- /dev/null +++ b/libjava/org/w3c/dom/html2/HTMLUListElement.h @@ -0,0 +1,112 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_html2_HTMLUListElement__ +#define __org_w3c_dom_html2_HTMLUListElement__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Attr; + class Document; + class NamedNodeMap; + class Node; + class NodeList; + class TypeInfo; + class UserDataHandler; + namespace html2 + { + class HTMLUListElement; + } + } + } + } +} + +class org::w3c::dom::html2::HTMLUListElement : public ::java::lang::Object +{ + +public: + virtual jboolean getCompact() = 0; + virtual void setCompact(jboolean) = 0; + virtual ::java::lang::String * getType() = 0; + virtual void setType(::java::lang::String *) = 0; + virtual ::java::lang::String * getId() = 0; + virtual void setId(::java::lang::String *) = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual void setTitle(::java::lang::String *) = 0; + virtual ::java::lang::String * getLang() = 0; + virtual void setLang(::java::lang::String *) = 0; + virtual ::java::lang::String * getDir() = 0; + virtual void setDir(::java::lang::String *) = 0; + virtual ::java::lang::String * getClassName() = 0; + virtual void setClassName(::java::lang::String *) = 0; + virtual ::java::lang::String * getTagName() = 0; + virtual ::java::lang::String * getAttribute(::java::lang::String *) = 0; + virtual void setAttribute(::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttribute(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *) = 0; + virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *) = 0; + virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean hasAttribute(::java::lang::String *) = 0; + virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo() = 0; + virtual void setIdAttribute(::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean) = 0; + virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean) = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_html2_HTMLUListElement__ diff --git a/libjava/org/w3c/dom/ls/DOMImplementationLS.h b/libjava/org/w3c/dom/ls/DOMImplementationLS.h new file mode 100644 index 00000000000..f94da31fd38 --- /dev/null +++ b/libjava/org/w3c/dom/ls/DOMImplementationLS.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_DOMImplementationLS__ +#define __org_w3c_dom_ls_DOMImplementationLS__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class DOMImplementationLS; + class LSInput; + class LSOutput; + class LSParser; + class LSSerializer; + } + } + } + } +} + +class org::w3c::dom::ls::DOMImplementationLS : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::ls::LSParser * createLSParser(jshort, ::java::lang::String *) = 0; + virtual ::org::w3c::dom::ls::LSSerializer * createLSSerializer() = 0; + virtual ::org::w3c::dom::ls::LSInput * createLSInput() = 0; + virtual ::org::w3c::dom::ls::LSOutput * createLSOutput() = 0; + static const jshort MODE_SYNCHRONOUS = 1; + static const jshort MODE_ASYNCHRONOUS = 2; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_DOMImplementationLS__ diff --git a/libjava/org/w3c/dom/ls/LSException.h b/libjava/org/w3c/dom/ls/LSException.h new file mode 100644 index 00000000000..c1444406724 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSException__ +#define __org_w3c_dom_ls_LSException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSException; + } + } + } + } +} + +class org::w3c::dom::ls::LSException : public ::java::lang::RuntimeException +{ + +public: + LSException(jshort, ::java::lang::String *); + jshort __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) code; + static const jshort PARSE_ERR = 81; + static const jshort SERIALIZE_ERR = 82; + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_ls_LSException__ diff --git a/libjava/org/w3c/dom/ls/LSInput.h b/libjava/org/w3c/dom/ls/LSInput.h new file mode 100644 index 00000000000..8dd9da1747a --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSInput.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSInput__ +#define __org_w3c_dom_ls_LSInput__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSInput; + } + } + } + } +} + +class org::w3c::dom::ls::LSInput : public ::java::lang::Object +{ + +public: + virtual ::java::io::Reader * getCharacterStream() = 0; + virtual void setCharacterStream(::java::io::Reader *) = 0; + virtual ::java::io::InputStream * getByteStream() = 0; + virtual void setByteStream(::java::io::InputStream *) = 0; + virtual ::java::lang::String * getStringData() = 0; + virtual void setStringData(::java::lang::String *) = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual void setSystemId(::java::lang::String *) = 0; + virtual ::java::lang::String * getPublicId() = 0; + virtual void setPublicId(::java::lang::String *) = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual void setBaseURI(::java::lang::String *) = 0; + virtual ::java::lang::String * getEncoding() = 0; + virtual void setEncoding(::java::lang::String *) = 0; + virtual jboolean getCertifiedText() = 0; + virtual void setCertifiedText(jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSInput__ diff --git a/libjava/org/w3c/dom/ls/LSLoadEvent.h b/libjava/org/w3c/dom/ls/LSLoadEvent.h new file mode 100644 index 00000000000..9c630339283 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSLoadEvent.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSLoadEvent__ +#define __org_w3c_dom_ls_LSLoadEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + namespace events + { + class EventTarget; + } + namespace ls + { + class LSInput; + class LSLoadEvent; + } + } + } + } +} + +class org::w3c::dom::ls::LSLoadEvent : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Document * getNewDocument() = 0; + virtual ::org::w3c::dom::ls::LSInput * getInput() = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::org::w3c::dom::events::EventTarget * getTarget() = 0; + virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget() = 0; + virtual jshort getEventPhase() = 0; + virtual jboolean getBubbles() = 0; + virtual jboolean getCancelable() = 0; + virtual jlong getTimeStamp() = 0; + virtual void stopPropagation() = 0; + virtual void preventDefault() = 0; + virtual void initEvent(::java::lang::String *, jboolean, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSLoadEvent__ diff --git a/libjava/org/w3c/dom/ls/LSOutput.h b/libjava/org/w3c/dom/ls/LSOutput.h new file mode 100644 index 00000000000..6d3990eb828 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSOutput.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSOutput__ +#define __org_w3c_dom_ls_LSOutput__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSOutput; + } + } + } + } +} + +class org::w3c::dom::ls::LSOutput : public ::java::lang::Object +{ + +public: + virtual ::java::io::Writer * getCharacterStream() = 0; + virtual void setCharacterStream(::java::io::Writer *) = 0; + virtual ::java::io::OutputStream * getByteStream() = 0; + virtual void setByteStream(::java::io::OutputStream *) = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual void setSystemId(::java::lang::String *) = 0; + virtual ::java::lang::String * getEncoding() = 0; + virtual void setEncoding(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSOutput__ diff --git a/libjava/org/w3c/dom/ls/LSParser.h b/libjava/org/w3c/dom/ls/LSParser.h new file mode 100644 index 00000000000..2f1e3f3c790 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSParser.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSParser__ +#define __org_w3c_dom_ls_LSParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMConfiguration; + class Document; + class Node; + namespace ls + { + class LSInput; + class LSParser; + class LSParserFilter; + } + } + } + } +} + +class org::w3c::dom::ls::LSParser : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig() = 0; + virtual ::org::w3c::dom::ls::LSParserFilter * getFilter() = 0; + virtual void setFilter(::org::w3c::dom::ls::LSParserFilter *) = 0; + virtual jboolean getAsync() = 0; + virtual jboolean getBusy() = 0; + virtual ::org::w3c::dom::Document * parse(::org::w3c::dom::ls::LSInput *) = 0; + virtual ::org::w3c::dom::Document * parseURI(::java::lang::String *) = 0; + virtual ::org::w3c::dom::Node * parseWithContext(::org::w3c::dom::ls::LSInput *, ::org::w3c::dom::Node *, jshort) = 0; + virtual void abort() = 0; + static const jshort ACTION_APPEND_AS_CHILDREN = 1; + static const jshort ACTION_REPLACE_CHILDREN = 2; + static const jshort ACTION_INSERT_BEFORE = 3; + static const jshort ACTION_INSERT_AFTER = 4; + static const jshort ACTION_REPLACE = 5; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSParser__ diff --git a/libjava/org/w3c/dom/ls/LSParserFilter.h b/libjava/org/w3c/dom/ls/LSParserFilter.h new file mode 100644 index 00000000000..8a72aaa5d62 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSParserFilter.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSParserFilter__ +#define __org_w3c_dom_ls_LSParserFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Element; + class Node; + namespace ls + { + class LSParserFilter; + } + } + } + } +} + +class org::w3c::dom::ls::LSParserFilter : public ::java::lang::Object +{ + +public: + virtual jshort startElement(::org::w3c::dom::Element *) = 0; + virtual jshort acceptNode(::org::w3c::dom::Node *) = 0; + virtual jint getWhatToShow() = 0; + static const jshort FILTER_ACCEPT = 1; + static const jshort FILTER_REJECT = 2; + static const jshort FILTER_SKIP = 3; + static const jshort FILTER_INTERRUPT = 4; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSParserFilter__ diff --git a/libjava/org/w3c/dom/ls/LSProgressEvent.h b/libjava/org/w3c/dom/ls/LSProgressEvent.h new file mode 100644 index 00000000000..23762050766 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSProgressEvent.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSProgressEvent__ +#define __org_w3c_dom_ls_LSProgressEvent__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace events + { + class EventTarget; + } + namespace ls + { + class LSInput; + class LSProgressEvent; + } + } + } + } +} + +class org::w3c::dom::ls::LSProgressEvent : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::ls::LSInput * getInput() = 0; + virtual jint getPosition() = 0; + virtual jint getTotalSize() = 0; + virtual ::java::lang::String * getType() = 0; + virtual ::org::w3c::dom::events::EventTarget * getTarget() = 0; + virtual ::org::w3c::dom::events::EventTarget * getCurrentTarget() = 0; + virtual jshort getEventPhase() = 0; + virtual jboolean getBubbles() = 0; + virtual jboolean getCancelable() = 0; + virtual jlong getTimeStamp() = 0; + virtual void stopPropagation() = 0; + virtual void preventDefault() = 0; + virtual void initEvent(::java::lang::String *, jboolean, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSProgressEvent__ diff --git a/libjava/org/w3c/dom/ls/LSResourceResolver.h b/libjava/org/w3c/dom/ls/LSResourceResolver.h new file mode 100644 index 00000000000..3a983ebeac6 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSResourceResolver.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSResourceResolver__ +#define __org_w3c_dom_ls_LSResourceResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace ls + { + class LSInput; + class LSResourceResolver; + } + } + } + } +} + +class org::w3c::dom::ls::LSResourceResolver : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::ls::LSInput * resolveResource(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSResourceResolver__ diff --git a/libjava/org/w3c/dom/ls/LSSerializer.h b/libjava/org/w3c/dom/ls/LSSerializer.h new file mode 100644 index 00000000000..11ead65b906 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSSerializer.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSSerializer__ +#define __org_w3c_dom_ls_LSSerializer__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DOMConfiguration; + class Node; + namespace ls + { + class LSOutput; + class LSSerializer; + class LSSerializerFilter; + } + } + } + } +} + +class org::w3c::dom::ls::LSSerializer : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::DOMConfiguration * getDomConfig() = 0; + virtual ::java::lang::String * getNewLine() = 0; + virtual void setNewLine(::java::lang::String *) = 0; + virtual ::org::w3c::dom::ls::LSSerializerFilter * getFilter() = 0; + virtual void setFilter(::org::w3c::dom::ls::LSSerializerFilter *) = 0; + virtual jboolean write(::org::w3c::dom::Node *, ::org::w3c::dom::ls::LSOutput *) = 0; + virtual jboolean writeToURI(::org::w3c::dom::Node *, ::java::lang::String *) = 0; + virtual ::java::lang::String * writeToString(::org::w3c::dom::Node *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSSerializer__ diff --git a/libjava/org/w3c/dom/ls/LSSerializerFilter.h b/libjava/org/w3c/dom/ls/LSSerializerFilter.h new file mode 100644 index 00000000000..d56e7d4f9f3 --- /dev/null +++ b/libjava/org/w3c/dom/ls/LSSerializerFilter.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ls_LSSerializerFilter__ +#define __org_w3c_dom_ls_LSSerializerFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace ls + { + class LSSerializerFilter; + } + } + } + } +} + +class org::w3c::dom::ls::LSSerializerFilter : public ::java::lang::Object +{ + +public: + virtual jint getWhatToShow() = 0; + virtual jshort acceptNode(::org::w3c::dom::Node *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ls_LSSerializerFilter__ diff --git a/libjava/org/w3c/dom/ranges/DocumentRange.h b/libjava/org/w3c/dom/ranges/DocumentRange.h new file mode 100644 index 00000000000..e7a0cbe6aed --- /dev/null +++ b/libjava/org/w3c/dom/ranges/DocumentRange.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ranges_DocumentRange__ +#define __org_w3c_dom_ranges_DocumentRange__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace ranges + { + class DocumentRange; + class Range; + } + } + } + } +} + +class org::w3c::dom::ranges::DocumentRange : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::ranges::Range * createRange() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ranges_DocumentRange__ diff --git a/libjava/org/w3c/dom/ranges/Range.h b/libjava/org/w3c/dom/ranges/Range.h new file mode 100644 index 00000000000..743989a064b --- /dev/null +++ b/libjava/org/w3c/dom/ranges/Range.h @@ -0,0 +1,64 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ranges_Range__ +#define __org_w3c_dom_ranges_Range__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class DocumentFragment; + class Node; + namespace ranges + { + class Range; + } + } + } + } +} + +class org::w3c::dom::ranges::Range : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Node * getStartContainer() = 0; + virtual jint getStartOffset() = 0; + virtual ::org::w3c::dom::Node * getEndContainer() = 0; + virtual jint getEndOffset() = 0; + virtual jboolean getCollapsed() = 0; + virtual ::org::w3c::dom::Node * getCommonAncestorContainer() = 0; + virtual void setStart(::org::w3c::dom::Node *, jint) = 0; + virtual void setEnd(::org::w3c::dom::Node *, jint) = 0; + virtual void setStartBefore(::org::w3c::dom::Node *) = 0; + virtual void setStartAfter(::org::w3c::dom::Node *) = 0; + virtual void setEndBefore(::org::w3c::dom::Node *) = 0; + virtual void setEndAfter(::org::w3c::dom::Node *) = 0; + virtual void collapse(jboolean) = 0; + virtual void selectNode(::org::w3c::dom::Node *) = 0; + virtual void selectNodeContents(::org::w3c::dom::Node *) = 0; + virtual jshort compareBoundaryPoints(jshort, ::org::w3c::dom::ranges::Range *) = 0; + virtual void deleteContents() = 0; + virtual ::org::w3c::dom::DocumentFragment * extractContents() = 0; + virtual ::org::w3c::dom::DocumentFragment * cloneContents() = 0; + virtual void insertNode(::org::w3c::dom::Node *) = 0; + virtual void surroundContents(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::ranges::Range * cloneRange() = 0; + virtual ::java::lang::String * toString() = 0; + virtual void detach() = 0; + static const jshort START_TO_START = 0; + static const jshort START_TO_END = 1; + static const jshort END_TO_END = 2; + static const jshort END_TO_START = 3; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_ranges_Range__ diff --git a/libjava/org/w3c/dom/ranges/RangeException.h b/libjava/org/w3c/dom/ranges/RangeException.h new file mode 100644 index 00000000000..50efa0f782a --- /dev/null +++ b/libjava/org/w3c/dom/ranges/RangeException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_ranges_RangeException__ +#define __org_w3c_dom_ranges_RangeException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace ranges + { + class RangeException; + } + } + } + } +} + +class org::w3c::dom::ranges::RangeException : public ::java::lang::RuntimeException +{ + +public: + RangeException(jshort, ::java::lang::String *); + jshort __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) code; + static const jshort BAD_BOUNDARYPOINTS_ERR = 1; + static const jshort INVALID_NODE_TYPE_ERR = 2; + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_ranges_RangeException__ diff --git a/libjava/org/w3c/dom/stylesheets/DocumentStyle.h b/libjava/org/w3c/dom/stylesheets/DocumentStyle.h new file mode 100644 index 00000000000..f758d8647d4 --- /dev/null +++ b/libjava/org/w3c/dom/stylesheets/DocumentStyle.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_stylesheets_DocumentStyle__ +#define __org_w3c_dom_stylesheets_DocumentStyle__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace stylesheets + { + class DocumentStyle; + class StyleSheetList; + } + } + } + } +} + +class org::w3c::dom::stylesheets::DocumentStyle : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::stylesheets::StyleSheetList * getStyleSheets() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_stylesheets_DocumentStyle__ diff --git a/libjava/org/w3c/dom/stylesheets/LinkStyle.h b/libjava/org/w3c/dom/stylesheets/LinkStyle.h new file mode 100644 index 00000000000..f18a57a357d --- /dev/null +++ b/libjava/org/w3c/dom/stylesheets/LinkStyle.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_stylesheets_LinkStyle__ +#define __org_w3c_dom_stylesheets_LinkStyle__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace stylesheets + { + class LinkStyle; + class StyleSheet; + } + } + } + } +} + +class org::w3c::dom::stylesheets::LinkStyle : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::stylesheets::StyleSheet * getSheet() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_stylesheets_LinkStyle__ diff --git a/libjava/org/w3c/dom/stylesheets/MediaList.h b/libjava/org/w3c/dom/stylesheets/MediaList.h new file mode 100644 index 00000000000..92d2130aa5b --- /dev/null +++ b/libjava/org/w3c/dom/stylesheets/MediaList.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_stylesheets_MediaList__ +#define __org_w3c_dom_stylesheets_MediaList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace stylesheets + { + class MediaList; + } + } + } + } +} + +class org::w3c::dom::stylesheets::MediaList : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getMediaText() = 0; + virtual void setMediaText(::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * item(jint) = 0; + virtual void deleteMedium(::java::lang::String *) = 0; + virtual void appendMedium(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_stylesheets_MediaList__ diff --git a/libjava/org/w3c/dom/stylesheets/StyleSheet.h b/libjava/org/w3c/dom/stylesheets/StyleSheet.h new file mode 100644 index 00000000000..7a8a9701204 --- /dev/null +++ b/libjava/org/w3c/dom/stylesheets/StyleSheet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_stylesheets_StyleSheet__ +#define __org_w3c_dom_stylesheets_StyleSheet__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace stylesheets + { + class MediaList; + class StyleSheet; + } + } + } + } +} + +class org::w3c::dom::stylesheets::StyleSheet : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getType() = 0; + virtual jboolean getDisabled() = 0; + virtual void setDisabled(jboolean) = 0; + virtual ::org::w3c::dom::Node * getOwnerNode() = 0; + virtual ::org::w3c::dom::stylesheets::StyleSheet * getParentStyleSheet() = 0; + virtual ::java::lang::String * getHref() = 0; + virtual ::java::lang::String * getTitle() = 0; + virtual ::org::w3c::dom::stylesheets::MediaList * getMedia() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_stylesheets_StyleSheet__ diff --git a/libjava/org/w3c/dom/stylesheets/StyleSheetList.h b/libjava/org/w3c/dom/stylesheets/StyleSheetList.h new file mode 100644 index 00000000000..4e6cb06cb37 --- /dev/null +++ b/libjava/org/w3c/dom/stylesheets/StyleSheetList.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_stylesheets_StyleSheetList__ +#define __org_w3c_dom_stylesheets_StyleSheetList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace stylesheets + { + class StyleSheet; + class StyleSheetList; + } + } + } + } +} + +class org::w3c::dom::stylesheets::StyleSheetList : public ::java::lang::Object +{ + +public: + virtual jint getLength() = 0; + virtual ::org::w3c::dom::stylesheets::StyleSheet * item(jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_stylesheets_StyleSheetList__ diff --git a/libjava/org/w3c/dom/traversal/DocumentTraversal.h b/libjava/org/w3c/dom/traversal/DocumentTraversal.h new file mode 100644 index 00000000000..d4c53b38c7b --- /dev/null +++ b/libjava/org/w3c/dom/traversal/DocumentTraversal.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_traversal_DocumentTraversal__ +#define __org_w3c_dom_traversal_DocumentTraversal__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace traversal + { + class DocumentTraversal; + class NodeFilter; + class NodeIterator; + class TreeWalker; + } + } + } + } +} + +class org::w3c::dom::traversal::DocumentTraversal : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::traversal::NodeIterator * createNodeIterator(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean) = 0; + virtual ::org::w3c::dom::traversal::TreeWalker * createTreeWalker(::org::w3c::dom::Node *, jint, ::org::w3c::dom::traversal::NodeFilter *, jboolean) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_traversal_DocumentTraversal__ diff --git a/libjava/org/w3c/dom/traversal/NodeFilter.h b/libjava/org/w3c/dom/traversal/NodeFilter.h new file mode 100644 index 00000000000..949c567d9a6 --- /dev/null +++ b/libjava/org/w3c/dom/traversal/NodeFilter.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_traversal_NodeFilter__ +#define __org_w3c_dom_traversal_NodeFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace traversal + { + class NodeFilter; + } + } + } + } +} + +class org::w3c::dom::traversal::NodeFilter : public ::java::lang::Object +{ + +public: + virtual jshort acceptNode(::org::w3c::dom::Node *) = 0; + static const jshort FILTER_ACCEPT = 1; + static const jshort FILTER_REJECT = 2; + static const jshort FILTER_SKIP = 3; + static const jint SHOW_ALL = -1; + static const jint SHOW_ELEMENT = 1; + static const jint SHOW_ATTRIBUTE = 2; + static const jint SHOW_TEXT = 4; + static const jint SHOW_CDATA_SECTION = 8; + static const jint SHOW_ENTITY_REFERENCE = 16; + static const jint SHOW_ENTITY = 32; + static const jint SHOW_PROCESSING_INSTRUCTION = 64; + static const jint SHOW_COMMENT = 128; + static const jint SHOW_DOCUMENT = 256; + static const jint SHOW_DOCUMENT_TYPE = 512; + static const jint SHOW_DOCUMENT_FRAGMENT = 1024; + static const jint SHOW_NOTATION = 2048; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_traversal_NodeFilter__ diff --git a/libjava/org/w3c/dom/traversal/NodeIterator.h b/libjava/org/w3c/dom/traversal/NodeIterator.h new file mode 100644 index 00000000000..b5410dfd518 --- /dev/null +++ b/libjava/org/w3c/dom/traversal/NodeIterator.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_traversal_NodeIterator__ +#define __org_w3c_dom_traversal_NodeIterator__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace traversal + { + class NodeFilter; + class NodeIterator; + } + } + } + } +} + +class org::w3c::dom::traversal::NodeIterator : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Node * getRoot() = 0; + virtual jint getWhatToShow() = 0; + virtual ::org::w3c::dom::traversal::NodeFilter * getFilter() = 0; + virtual jboolean getExpandEntityReferences() = 0; + virtual ::org::w3c::dom::Node * nextNode() = 0; + virtual ::org::w3c::dom::Node * previousNode() = 0; + virtual void detach() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_traversal_NodeIterator__ diff --git a/libjava/org/w3c/dom/traversal/TreeWalker.h b/libjava/org/w3c/dom/traversal/TreeWalker.h new file mode 100644 index 00000000000..77a7eeba1a1 --- /dev/null +++ b/libjava/org/w3c/dom/traversal/TreeWalker.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_traversal_TreeWalker__ +#define __org_w3c_dom_traversal_TreeWalker__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace traversal + { + class NodeFilter; + class TreeWalker; + } + } + } + } +} + +class org::w3c::dom::traversal::TreeWalker : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Node * getRoot() = 0; + virtual jint getWhatToShow() = 0; + virtual ::org::w3c::dom::traversal::NodeFilter * getFilter() = 0; + virtual jboolean getExpandEntityReferences() = 0; + virtual ::org::w3c::dom::Node * getCurrentNode() = 0; + virtual void setCurrentNode(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * parentNode() = 0; + virtual ::org::w3c::dom::Node * firstChild() = 0; + virtual ::org::w3c::dom::Node * lastChild() = 0; + virtual ::org::w3c::dom::Node * previousSibling() = 0; + virtual ::org::w3c::dom::Node * nextSibling() = 0; + virtual ::org::w3c::dom::Node * previousNode() = 0; + virtual ::org::w3c::dom::Node * nextNode() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_traversal_TreeWalker__ diff --git a/libjava/org/w3c/dom/views/AbstractView.h b/libjava/org/w3c/dom/views/AbstractView.h new file mode 100644 index 00000000000..69cc4b27151 --- /dev/null +++ b/libjava/org/w3c/dom/views/AbstractView.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_views_AbstractView__ +#define __org_w3c_dom_views_AbstractView__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace views + { + class AbstractView; + class DocumentView; + } + } + } + } +} + +class org::w3c::dom::views::AbstractView : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::views::DocumentView * getDocument() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_views_AbstractView__ diff --git a/libjava/org/w3c/dom/views/DocumentView.h b/libjava/org/w3c/dom/views/DocumentView.h new file mode 100644 index 00000000000..c6e25e0ce99 --- /dev/null +++ b/libjava/org/w3c/dom/views/DocumentView.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_views_DocumentView__ +#define __org_w3c_dom_views_DocumentView__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace views + { + class AbstractView; + class DocumentView; + } + } + } + } +} + +class org::w3c::dom::views::DocumentView : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::views::AbstractView * getDefaultView() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_views_DocumentView__ diff --git a/libjava/org/w3c/dom/xpath/XPathEvaluator.h b/libjava/org/w3c/dom/xpath/XPathEvaluator.h new file mode 100644 index 00000000000..c8c52960f85 --- /dev/null +++ b/libjava/org/w3c/dom/xpath/XPathEvaluator.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_xpath_XPathEvaluator__ +#define __org_w3c_dom_xpath_XPathEvaluator__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace xpath + { + class XPathEvaluator; + class XPathExpression; + class XPathNSResolver; + } + } + } + } +} + +class org::w3c::dom::xpath::XPathEvaluator : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::xpath::XPathExpression * createExpression(::java::lang::String *, ::org::w3c::dom::xpath::XPathNSResolver *) = 0; + virtual ::org::w3c::dom::xpath::XPathNSResolver * createNSResolver(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * evaluate(::java::lang::String *, ::org::w3c::dom::Node *, ::org::w3c::dom::xpath::XPathNSResolver *, jshort, ::java::lang::Object *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_xpath_XPathEvaluator__ diff --git a/libjava/org/w3c/dom/xpath/XPathException.h b/libjava/org/w3c/dom/xpath/XPathException.h new file mode 100644 index 00000000000..2060b858363 --- /dev/null +++ b/libjava/org/w3c/dom/xpath/XPathException.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_xpath_XPathException__ +#define __org_w3c_dom_xpath_XPathException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace xpath + { + class XPathException; + } + } + } + } +} + +class org::w3c::dom::xpath::XPathException : public ::java::lang::RuntimeException +{ + +public: + XPathException(jshort, ::java::lang::String *); + jshort __attribute__((aligned(__alignof__( ::java::lang::RuntimeException)))) code; + static const jshort INVALID_EXPRESSION_ERR = 51; + static const jshort TYPE_ERR = 52; + static ::java::lang::Class class$; +}; + +#endif // __org_w3c_dom_xpath_XPathException__ diff --git a/libjava/org/w3c/dom/xpath/XPathExpression.h b/libjava/org/w3c/dom/xpath/XPathExpression.h new file mode 100644 index 00000000000..22a7c268b78 --- /dev/null +++ b/libjava/org/w3c/dom/xpath/XPathExpression.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_xpath_XPathExpression__ +#define __org_w3c_dom_xpath_XPathExpression__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace xpath + { + class XPathExpression; + } + } + } + } +} + +class org::w3c::dom::xpath::XPathExpression : public ::java::lang::Object +{ + +public: + virtual ::java::lang::Object * evaluate(::org::w3c::dom::Node *, jshort, ::java::lang::Object *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_xpath_XPathExpression__ diff --git a/libjava/org/w3c/dom/xpath/XPathNSResolver.h b/libjava/org/w3c/dom/xpath/XPathNSResolver.h new file mode 100644 index 00000000000..ce05a57e5b2 --- /dev/null +++ b/libjava/org/w3c/dom/xpath/XPathNSResolver.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_xpath_XPathNSResolver__ +#define __org_w3c_dom_xpath_XPathNSResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + namespace xpath + { + class XPathNSResolver; + } + } + } + } +} + +class org::w3c::dom::xpath::XPathNSResolver : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_xpath_XPathNSResolver__ diff --git a/libjava/org/w3c/dom/xpath/XPathNamespace.h b/libjava/org/w3c/dom/xpath/XPathNamespace.h new file mode 100644 index 00000000000..816c751ad78 --- /dev/null +++ b/libjava/org/w3c/dom/xpath/XPathNamespace.h @@ -0,0 +1,79 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_xpath_XPathNamespace__ +#define __org_w3c_dom_xpath_XPathNamespace__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Document; + class Element; + class NamedNodeMap; + class Node; + class NodeList; + class UserDataHandler; + namespace xpath + { + class XPathNamespace; + } + } + } + } +} + +class org::w3c::dom::xpath::XPathNamespace : public ::java::lang::Object +{ + +public: + virtual ::org::w3c::dom::Element * getOwnerElement() = 0; + virtual ::java::lang::String * getNodeName() = 0; + virtual ::java::lang::String * getNodeValue() = 0; + virtual void setNodeValue(::java::lang::String *) = 0; + virtual jshort getNodeType() = 0; + virtual ::org::w3c::dom::Node * getParentNode() = 0; + virtual ::org::w3c::dom::NodeList * getChildNodes() = 0; + virtual ::org::w3c::dom::Node * getFirstChild() = 0; + virtual ::org::w3c::dom::Node * getLastChild() = 0; + virtual ::org::w3c::dom::Node * getPreviousSibling() = 0; + virtual ::org::w3c::dom::Node * getNextSibling() = 0; + virtual ::org::w3c::dom::NamedNodeMap * getAttributes() = 0; + virtual ::org::w3c::dom::Document * getOwnerDocument() = 0; + virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *) = 0; + virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *) = 0; + virtual jboolean hasChildNodes() = 0; + virtual ::org::w3c::dom::Node * cloneNode(jboolean) = 0; + virtual void normalize() = 0; + virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getNamespaceURI() = 0; + virtual ::java::lang::String * getPrefix() = 0; + virtual void setPrefix(::java::lang::String *) = 0; + virtual ::java::lang::String * getLocalName() = 0; + virtual jboolean hasAttributes() = 0; + virtual ::java::lang::String * getBaseURI() = 0; + virtual jshort compareDocumentPosition(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * getTextContent() = 0; + virtual void setTextContent(::java::lang::String *) = 0; + virtual jboolean isSameNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::String * lookupPrefix(::java::lang::String *) = 0; + virtual jboolean isDefaultNamespace(::java::lang::String *) = 0; + virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *) = 0; + virtual jboolean isEqualNode(::org::w3c::dom::Node *) = 0; + virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *) = 0; + virtual ::java::lang::Object * getUserData(::java::lang::String *) = 0; + static const jshort XPATH_NAMESPACE_NODE = 13; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_xpath_XPathNamespace__ diff --git a/libjava/org/w3c/dom/xpath/XPathResult.h b/libjava/org/w3c/dom/xpath/XPathResult.h new file mode 100644 index 00000000000..7922d250fff --- /dev/null +++ b/libjava/org/w3c/dom/xpath/XPathResult.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_w3c_dom_xpath_XPathResult__ +#define __org_w3c_dom_xpath_XPathResult__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace w3c + { + namespace dom + { + class Node; + namespace xpath + { + class XPathResult; + } + } + } + } +} + +class org::w3c::dom::xpath::XPathResult : public ::java::lang::Object +{ + +public: + virtual jshort getResultType() = 0; + virtual jdouble getNumberValue() = 0; + virtual ::java::lang::String * getStringValue() = 0; + virtual jboolean getBooleanValue() = 0; + virtual ::org::w3c::dom::Node * getSingleNodeValue() = 0; + virtual jboolean getInvalidIteratorState() = 0; + virtual jint getSnapshotLength() = 0; + virtual ::org::w3c::dom::Node * iterateNext() = 0; + virtual ::org::w3c::dom::Node * snapshotItem(jint) = 0; + static const jshort ANY_TYPE = 0; + static const jshort NUMBER_TYPE = 1; + static const jshort STRING_TYPE = 2; + static const jshort BOOLEAN_TYPE = 3; + static const jshort UNORDERED_NODE_ITERATOR_TYPE = 4; + static const jshort ORDERED_NODE_ITERATOR_TYPE = 5; + static const jshort UNORDERED_NODE_SNAPSHOT_TYPE = 6; + static const jshort ORDERED_NODE_SNAPSHOT_TYPE = 7; + static const jshort ANY_UNORDERED_NODE_TYPE = 8; + static const jshort FIRST_ORDERED_NODE_TYPE = 9; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_w3c_dom_xpath_XPathResult__ diff --git a/libjava/org/xml/sax/AttributeList.h b/libjava/org/xml/sax/AttributeList.h new file mode 100644 index 00000000000..e07e396c7a2 --- /dev/null +++ b/libjava/org/xml/sax/AttributeList.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_AttributeList__ +#define __org_xml_sax_AttributeList__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class AttributeList; + } + } + } +} + +class org::xml::sax::AttributeList : public ::java::lang::Object +{ + +public: + virtual jint getLength() = 0; + virtual ::java::lang::String * getName(jint) = 0; + virtual ::java::lang::String * getType(jint) = 0; + virtual ::java::lang::String * getValue(jint) = 0; + virtual ::java::lang::String * getType(::java::lang::String *) = 0; + virtual ::java::lang::String * getValue(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_AttributeList__ diff --git a/libjava/org/xml/sax/Attributes.h b/libjava/org/xml/sax/Attributes.h new file mode 100644 index 00000000000..21bde82ad36 --- /dev/null +++ b/libjava/org/xml/sax/Attributes.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_Attributes__ +#define __org_xml_sax_Attributes__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + } + } + } +} + +class org::xml::sax::Attributes : public ::java::lang::Object +{ + +public: + virtual jint getLength() = 0; + virtual ::java::lang::String * getURI(jint) = 0; + virtual ::java::lang::String * getLocalName(jint) = 0; + virtual ::java::lang::String * getQName(jint) = 0; + virtual ::java::lang::String * getType(jint) = 0; + virtual ::java::lang::String * getValue(jint) = 0; + virtual jint getIndex(::java::lang::String *, ::java::lang::String *) = 0; + virtual jint getIndex(::java::lang::String *) = 0; + virtual ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getType(::java::lang::String *) = 0; + virtual ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getValue(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_Attributes__ diff --git a/libjava/org/xml/sax/ContentHandler.h b/libjava/org/xml/sax/ContentHandler.h new file mode 100644 index 00000000000..ddbae8eba4c --- /dev/null +++ b/libjava/org/xml/sax/ContentHandler.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ContentHandler__ +#define __org_xml_sax_ContentHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class ContentHandler; + class Locator; + } + } + } +} + +class org::xml::sax::ContentHandler : public ::java::lang::Object +{ + +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *) = 0; + virtual void startDocument() = 0; + virtual void endDocument() = 0; + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *) = 0; + virtual void endPrefixMapping(::java::lang::String *) = 0; + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *) = 0; + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void characters(JArray< jchar > *, jint, jint) = 0; + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint) = 0; + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + virtual void skippedEntity(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_ContentHandler__ diff --git a/libjava/org/xml/sax/DTDHandler.h b/libjava/org/xml/sax/DTDHandler.h new file mode 100644 index 00000000000..3ff791ae0ce --- /dev/null +++ b/libjava/org/xml/sax/DTDHandler.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_DTDHandler__ +#define __org_xml_sax_DTDHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class DTDHandler; + } + } + } +} + +class org::xml::sax::DTDHandler : public ::java::lang::Object +{ + +public: + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_DTDHandler__ diff --git a/libjava/org/xml/sax/DocumentHandler.h b/libjava/org/xml/sax/DocumentHandler.h new file mode 100644 index 00000000000..d9736bfe66c --- /dev/null +++ b/libjava/org/xml/sax/DocumentHandler.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_DocumentHandler__ +#define __org_xml_sax_DocumentHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class AttributeList; + class DocumentHandler; + class Locator; + } + } + } +} + +class org::xml::sax::DocumentHandler : public ::java::lang::Object +{ + +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *) = 0; + virtual void startDocument() = 0; + virtual void endDocument() = 0; + virtual void startElement(::java::lang::String *, ::org::xml::sax::AttributeList *) = 0; + virtual void endElement(::java::lang::String *) = 0; + virtual void characters(JArray< jchar > *, jint, jint) = 0; + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint) = 0; + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_DocumentHandler__ diff --git a/libjava/org/xml/sax/EntityResolver.h b/libjava/org/xml/sax/EntityResolver.h new file mode 100644 index 00000000000..cb9e26e4019 --- /dev/null +++ b/libjava/org/xml/sax/EntityResolver.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_EntityResolver__ +#define __org_xml_sax_EntityResolver__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class EntityResolver; + class InputSource; + } + } + } +} + +class org::xml::sax::EntityResolver : public ::java::lang::Object +{ + +public: + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_EntityResolver__ diff --git a/libjava/org/xml/sax/ErrorHandler.h b/libjava/org/xml/sax/ErrorHandler.h new file mode 100644 index 00000000000..d425d980b26 --- /dev/null +++ b/libjava/org/xml/sax/ErrorHandler.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ErrorHandler__ +#define __org_xml_sax_ErrorHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class ErrorHandler; + class SAXParseException; + } + } + } +} + +class org::xml::sax::ErrorHandler : public ::java::lang::Object +{ + +public: + virtual void warning(::org::xml::sax::SAXParseException *) = 0; + virtual void error(::org::xml::sax::SAXParseException *) = 0; + virtual void fatalError(::org::xml::sax::SAXParseException *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_ErrorHandler__ diff --git a/libjava/org/xml/sax/HandlerBase.h b/libjava/org/xml/sax/HandlerBase.h new file mode 100644 index 00000000000..96d923ace78 --- /dev/null +++ b/libjava/org/xml/sax/HandlerBase.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_HandlerBase__ +#define __org_xml_sax_HandlerBase__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class AttributeList; + class HandlerBase; + class InputSource; + class Locator; + class SAXParseException; + } + } + } +} + +class org::xml::sax::HandlerBase : public ::java::lang::Object +{ + +public: + HandlerBase(); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void startElement(::java::lang::String *, ::org::xml::sax::AttributeList *); + virtual void endElement(::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void warning(::org::xml::sax::SAXParseException *); + virtual void error(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_HandlerBase__ diff --git a/libjava/org/xml/sax/InputSource.h b/libjava/org/xml/sax/InputSource.h new file mode 100644 index 00000000000..eaee940089f --- /dev/null +++ b/libjava/org/xml/sax/InputSource.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_InputSource__ +#define __org_xml_sax_InputSource__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + } + } + } +} + +class org::xml::sax::InputSource : public ::java::lang::Object +{ + +public: + InputSource(); + InputSource(::java::lang::String *); + InputSource(::java::io::InputStream *); + InputSource(::java::io::Reader *); + virtual void setPublicId(::java::lang::String *); + virtual ::java::lang::String * getPublicId(); + virtual void setSystemId(::java::lang::String *); + virtual ::java::lang::String * getSystemId(); + virtual void setByteStream(::java::io::InputStream *); + virtual ::java::io::InputStream * getByteStream(); + virtual void setEncoding(::java::lang::String *); + virtual ::java::lang::String * getEncoding(); + virtual void setCharacterStream(::java::io::Reader *); + virtual ::java::io::Reader * getCharacterStream(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) publicId; + ::java::lang::String * systemId; + ::java::io::InputStream * byteStream; + ::java::lang::String * encoding; + ::java::io::Reader * characterStream; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_InputSource__ diff --git a/libjava/org/xml/sax/Locator.h b/libjava/org/xml/sax/Locator.h new file mode 100644 index 00000000000..1005ec67d48 --- /dev/null +++ b/libjava/org/xml/sax/Locator.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_Locator__ +#define __org_xml_sax_Locator__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Locator; + } + } + } +} + +class org::xml::sax::Locator : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual jint getLineNumber() = 0; + virtual jint getColumnNumber() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_Locator__ diff --git a/libjava/org/xml/sax/Parser.h b/libjava/org/xml/sax/Parser.h new file mode 100644 index 00000000000..143266a8623 --- /dev/null +++ b/libjava/org/xml/sax/Parser.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_Parser__ +#define __org_xml_sax_Parser__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class DTDHandler; + class DocumentHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + class Parser; + } + } + } +} + +class org::xml::sax::Parser : public ::java::lang::Object +{ + +public: + virtual void setLocale(::java::util::Locale *) = 0; + virtual void setEntityResolver(::org::xml::sax::EntityResolver *) = 0; + virtual void setDTDHandler(::org::xml::sax::DTDHandler *) = 0; + virtual void setDocumentHandler(::org::xml::sax::DocumentHandler *) = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + virtual void parse(::org::xml::sax::InputSource *) = 0; + virtual void parse(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_Parser__ diff --git a/libjava/org/xml/sax/SAXException.h b/libjava/org/xml/sax/SAXException.h new file mode 100644 index 00000000000..df6f41739a1 --- /dev/null +++ b/libjava/org/xml/sax/SAXException.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_SAXException__ +#define __org_xml_sax_SAXException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class SAXException; + } + } + } +} + +class org::xml::sax::SAXException : public ::java::lang::Exception +{ + +public: + SAXException(); + SAXException(::java::lang::String *); + SAXException(::java::lang::Exception *); + SAXException(::java::lang::String *, ::java::lang::Exception *); + virtual ::java::lang::String * getMessage(); + virtual ::java::lang::Exception * getException(); + virtual ::java::lang::String * toString(); +private: + ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) exception; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_SAXException__ diff --git a/libjava/org/xml/sax/SAXNotRecognizedException.h b/libjava/org/xml/sax/SAXNotRecognizedException.h new file mode 100644 index 00000000000..ac5fee41fdd --- /dev/null +++ b/libjava/org/xml/sax/SAXNotRecognizedException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_SAXNotRecognizedException__ +#define __org_xml_sax_SAXNotRecognizedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class SAXNotRecognizedException; + } + } + } +} + +class org::xml::sax::SAXNotRecognizedException : public ::org::xml::sax::SAXException +{ + +public: + SAXNotRecognizedException(); + SAXNotRecognizedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_SAXNotRecognizedException__ diff --git a/libjava/org/xml/sax/SAXNotSupportedException.h b/libjava/org/xml/sax/SAXNotSupportedException.h new file mode 100644 index 00000000000..5d22ce0a8ef --- /dev/null +++ b/libjava/org/xml/sax/SAXNotSupportedException.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_SAXNotSupportedException__ +#define __org_xml_sax_SAXNotSupportedException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class SAXNotSupportedException; + } + } + } +} + +class org::xml::sax::SAXNotSupportedException : public ::org::xml::sax::SAXException +{ + +public: + SAXNotSupportedException(); + SAXNotSupportedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_SAXNotSupportedException__ diff --git a/libjava/org/xml/sax/SAXParseException.h b/libjava/org/xml/sax/SAXParseException.h new file mode 100644 index 00000000000..14f924655ac --- /dev/null +++ b/libjava/org/xml/sax/SAXParseException.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_SAXParseException__ +#define __org_xml_sax_SAXParseException__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Locator; + class SAXParseException; + } + } + } +} + +class org::xml::sax::SAXParseException : public ::org::xml::sax::SAXException +{ + +public: + SAXParseException(::java::lang::String *, ::org::xml::sax::Locator *); + SAXParseException(::java::lang::String *, ::org::xml::sax::Locator *, ::java::lang::Exception *); + SAXParseException(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jint, jint); + SAXParseException(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jint, jint, ::java::lang::Exception *); +private: + void init(::java::lang::String *, ::java::lang::String *, jint, jint); +public: + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual jint getLineNumber(); + virtual jint getColumnNumber(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::org::xml::sax::SAXException)))) publicId; + ::java::lang::String * systemId; + jint lineNumber; + jint columnNumber; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_SAXParseException__ diff --git a/libjava/org/xml/sax/XMLFilter.h b/libjava/org/xml/sax/XMLFilter.h new file mode 100644 index 00000000000..05b30eb5941 --- /dev/null +++ b/libjava/org/xml/sax/XMLFilter.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_XMLFilter__ +#define __org_xml_sax_XMLFilter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + class XMLFilter; + class XMLReader; + } + } + } +} + +class org::xml::sax::XMLFilter : public ::java::lang::Object +{ + +public: + virtual void setParent(::org::xml::sax::XMLReader *) = 0; + virtual ::org::xml::sax::XMLReader * getParent() = 0; + virtual jboolean getFeature(::java::lang::String *) = 0; + virtual void setFeature(::java::lang::String *, jboolean) = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual void setProperty(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void setEntityResolver(::org::xml::sax::EntityResolver *) = 0; + virtual ::org::xml::sax::EntityResolver * getEntityResolver() = 0; + virtual void setDTDHandler(::org::xml::sax::DTDHandler *) = 0; + virtual ::org::xml::sax::DTDHandler * getDTDHandler() = 0; + virtual void setContentHandler(::org::xml::sax::ContentHandler *) = 0; + virtual ::org::xml::sax::ContentHandler * getContentHandler() = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + virtual ::org::xml::sax::ErrorHandler * getErrorHandler() = 0; + virtual void parse(::org::xml::sax::InputSource *) = 0; + virtual void parse(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_XMLFilter__ diff --git a/libjava/org/xml/sax/XMLReader.h b/libjava/org/xml/sax/XMLReader.h new file mode 100644 index 00000000000..5ad9fa570e1 --- /dev/null +++ b/libjava/org/xml/sax/XMLReader.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_XMLReader__ +#define __org_xml_sax_XMLReader__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + class XMLReader; + } + } + } +} + +class org::xml::sax::XMLReader : public ::java::lang::Object +{ + +public: + virtual jboolean getFeature(::java::lang::String *) = 0; + virtual void setFeature(::java::lang::String *, jboolean) = 0; + virtual ::java::lang::Object * getProperty(::java::lang::String *) = 0; + virtual void setProperty(::java::lang::String *, ::java::lang::Object *) = 0; + virtual void setEntityResolver(::org::xml::sax::EntityResolver *) = 0; + virtual ::org::xml::sax::EntityResolver * getEntityResolver() = 0; + virtual void setDTDHandler(::org::xml::sax::DTDHandler *) = 0; + virtual ::org::xml::sax::DTDHandler * getDTDHandler() = 0; + virtual void setContentHandler(::org::xml::sax::ContentHandler *) = 0; + virtual ::org::xml::sax::ContentHandler * getContentHandler() = 0; + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *) = 0; + virtual ::org::xml::sax::ErrorHandler * getErrorHandler() = 0; + virtual void parse(::org::xml::sax::InputSource *) = 0; + virtual void parse(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_XMLReader__ diff --git a/libjava/org/xml/sax/ext/Attributes2.h b/libjava/org/xml/sax/ext/Attributes2.h new file mode 100644 index 00000000000..3a61e9d12ef --- /dev/null +++ b/libjava/org/xml/sax/ext/Attributes2.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_Attributes2__ +#define __org_xml_sax_ext_Attributes2__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + namespace ext + { + class Attributes2; + } + } + } + } +} + +class org::xml::sax::ext::Attributes2 : public ::java::lang::Object +{ + +public: + virtual jboolean isDeclared(jint) = 0; + virtual jboolean isDeclared(::java::lang::String *) = 0; + virtual jboolean isDeclared(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean isSpecified(jint) = 0; + virtual jboolean isSpecified(::java::lang::String *, ::java::lang::String *) = 0; + virtual jboolean isSpecified(::java::lang::String *) = 0; + virtual jint getLength() = 0; + virtual ::java::lang::String * getURI(jint) = 0; + virtual ::java::lang::String * getLocalName(jint) = 0; + virtual ::java::lang::String * getQName(jint) = 0; + virtual ::java::lang::String * getType(jint) = 0; + virtual ::java::lang::String * getValue(jint) = 0; + virtual jint getIndex(::java::lang::String *, ::java::lang::String *) = 0; + virtual jint getIndex(::java::lang::String *) = 0; + virtual ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getType(::java::lang::String *) = 0; + virtual ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::java::lang::String * getValue(::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_ext_Attributes2__ diff --git a/libjava/org/xml/sax/ext/Attributes2Impl.h b/libjava/org/xml/sax/ext/Attributes2Impl.h new file mode 100644 index 00000000000..404ef367680 --- /dev/null +++ b/libjava/org/xml/sax/ext/Attributes2Impl.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_Attributes2Impl__ +#define __org_xml_sax_ext_Attributes2Impl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + namespace ext + { + class Attributes2Impl; + } + } + } + } +} + +class org::xml::sax::ext::Attributes2Impl : public ::org::xml::sax::helpers::AttributesImpl +{ + +public: + Attributes2Impl(); + Attributes2Impl(::org::xml::sax::Attributes *); + virtual jboolean isDeclared(jint); + virtual jboolean isDeclared(::java::lang::String *, ::java::lang::String *); + virtual jboolean isDeclared(::java::lang::String *); + virtual jboolean isSpecified(jint); + virtual jboolean isSpecified(::java::lang::String *, ::java::lang::String *); + virtual jboolean isSpecified(::java::lang::String *); + virtual void setAttributes(::org::xml::sax::Attributes *); + virtual void addAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void removeAttribute(jint); + virtual void setDeclared(jint, jboolean); + virtual void setSpecified(jint, jboolean); +private: + JArray< jboolean > * __attribute__((aligned(__alignof__( ::org::xml::sax::helpers::AttributesImpl)))) declared; + JArray< jboolean > * specified; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_ext_Attributes2Impl__ diff --git a/libjava/org/xml/sax/ext/DeclHandler.h b/libjava/org/xml/sax/ext/DeclHandler.h new file mode 100644 index 00000000000..237ef6623d3 --- /dev/null +++ b/libjava/org/xml/sax/ext/DeclHandler.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_DeclHandler__ +#define __org_xml_sax_ext_DeclHandler__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + namespace ext + { + class DeclHandler; + } + } + } + } +} + +class org::xml::sax::ext::DeclHandler : public ::java::lang::Object +{ + +public: + virtual void elementDecl(::java::lang::String *, ::java::lang::String *) = 0; + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *) = 0; + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_ext_DeclHandler__ diff --git a/libjava/org/xml/sax/ext/DefaultHandler2.h b/libjava/org/xml/sax/ext/DefaultHandler2.h new file mode 100644 index 00000000000..24ab4625551 --- /dev/null +++ b/libjava/org/xml/sax/ext/DefaultHandler2.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_DefaultHandler2__ +#define __org_xml_sax_ext_DefaultHandler2__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + namespace ext + { + class DefaultHandler2; + } + } + } + } +} + +class org::xml::sax::ext::DefaultHandler2 : public ::org::xml::sax::helpers::DefaultHandler +{ + +public: + DefaultHandler2(); + virtual void startCDATA(); + virtual void endCDATA(); + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void endDTD(); + virtual void startEntity(::java::lang::String *); + virtual void endEntity(::java::lang::String *); + virtual void comment(JArray< jchar > *, jint, jint); + virtual void attributeDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void elementDecl(::java::lang::String *, ::java::lang::String *); + virtual void externalEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void internalEntityDecl(::java::lang::String *, ::java::lang::String *); + virtual ::org::xml::sax::InputSource * getExternalSubset(::java::lang::String *, ::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_ext_DefaultHandler2__ diff --git a/libjava/org/xml/sax/ext/EntityResolver2.h b/libjava/org/xml/sax/ext/EntityResolver2.h new file mode 100644 index 00000000000..774a74a2647 --- /dev/null +++ b/libjava/org/xml/sax/ext/EntityResolver2.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_EntityResolver2__ +#define __org_xml_sax_ext_EntityResolver2__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class InputSource; + namespace ext + { + class EntityResolver2; + } + } + } + } +} + +class org::xml::sax::ext::EntityResolver2 : public ::java::lang::Object +{ + +public: + virtual ::org::xml::sax::InputSource * getExternalSubset(::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_ext_EntityResolver2__ diff --git a/libjava/org/xml/sax/ext/LexicalHandler.h b/libjava/org/xml/sax/ext/LexicalHandler.h new file mode 100644 index 00000000000..2fcdad8ae84 --- /dev/null +++ b/libjava/org/xml/sax/ext/LexicalHandler.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_LexicalHandler__ +#define __org_xml_sax_ext_LexicalHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + namespace ext + { + class LexicalHandler; + } + } + } + } +} + +class org::xml::sax::ext::LexicalHandler : public ::java::lang::Object +{ + +public: + virtual void startDTD(::java::lang::String *, ::java::lang::String *, ::java::lang::String *) = 0; + virtual void endDTD() = 0; + virtual void startEntity(::java::lang::String *) = 0; + virtual void endEntity(::java::lang::String *) = 0; + virtual void startCDATA() = 0; + virtual void endCDATA() = 0; + virtual void comment(JArray< jchar > *, jint, jint) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_ext_LexicalHandler__ diff --git a/libjava/org/xml/sax/ext/Locator2.h b/libjava/org/xml/sax/ext/Locator2.h new file mode 100644 index 00000000000..1c61638d6ff --- /dev/null +++ b/libjava/org/xml/sax/ext/Locator2.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_Locator2__ +#define __org_xml_sax_ext_Locator2__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + namespace ext + { + class Locator2; + } + } + } + } +} + +class org::xml::sax::ext::Locator2 : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getXMLVersion() = 0; + virtual ::java::lang::String * getEncoding() = 0; + virtual ::java::lang::String * getPublicId() = 0; + virtual ::java::lang::String * getSystemId() = 0; + virtual jint getLineNumber() = 0; + virtual jint getColumnNumber() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __org_xml_sax_ext_Locator2__ diff --git a/libjava/org/xml/sax/ext/Locator2Impl.h b/libjava/org/xml/sax/ext/Locator2Impl.h new file mode 100644 index 00000000000..d6fbb0c098b --- /dev/null +++ b/libjava/org/xml/sax/ext/Locator2Impl.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_ext_Locator2Impl__ +#define __org_xml_sax_ext_Locator2Impl__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Locator; + namespace ext + { + class Locator2Impl; + } + } + } + } +} + +class org::xml::sax::ext::Locator2Impl : public ::org::xml::sax::helpers::LocatorImpl +{ + +public: + Locator2Impl(); + Locator2Impl(::org::xml::sax::Locator *); + virtual ::java::lang::String * getXMLVersion(); + virtual ::java::lang::String * getEncoding(); + virtual void setXMLVersion(::java::lang::String *); + virtual void setEncoding(::java::lang::String *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::org::xml::sax::helpers::LocatorImpl)))) encoding; + ::java::lang::String * version; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_ext_Locator2Impl__ diff --git a/libjava/org/xml/sax/helpers/AttributeListImpl.h b/libjava/org/xml/sax/helpers/AttributeListImpl.h new file mode 100644 index 00000000000..366c4554a99 --- /dev/null +++ b/libjava/org/xml/sax/helpers/AttributeListImpl.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_AttributeListImpl__ +#define __org_xml_sax_helpers_AttributeListImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class AttributeList; + namespace helpers + { + class AttributeListImpl; + } + } + } + } +} + +class org::xml::sax::helpers::AttributeListImpl : public ::java::lang::Object +{ + +public: + AttributeListImpl(); + AttributeListImpl(::org::xml::sax::AttributeList *); + virtual void setAttributeList(::org::xml::sax::AttributeList *); + virtual void addAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void removeAttribute(::java::lang::String *); + virtual void clear(); + virtual jint getLength(); + virtual ::java::lang::String * getName(jint); + virtual ::java::lang::String * getType(jint); + virtual ::java::lang::String * getValue(jint); + virtual ::java::lang::String * getType(::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *); +public: // actually package-private + ::java::util::Vector * __attribute__((aligned(__alignof__( ::java::lang::Object)))) names; + ::java::util::Vector * types; + ::java::util::Vector * values; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_AttributeListImpl__ diff --git a/libjava/org/xml/sax/helpers/AttributesImpl.h b/libjava/org/xml/sax/helpers/AttributesImpl.h new file mode 100644 index 00000000000..6f4fcdaf81b --- /dev/null +++ b/libjava/org/xml/sax/helpers/AttributesImpl.h @@ -0,0 +1,68 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_AttributesImpl__ +#define __org_xml_sax_helpers_AttributesImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + namespace helpers + { + class AttributesImpl; + } + } + } + } +} + +class org::xml::sax::helpers::AttributesImpl : public ::java::lang::Object +{ + +public: + AttributesImpl(); + AttributesImpl(::org::xml::sax::Attributes *); + virtual jint getLength(); + virtual ::java::lang::String * getURI(jint); + virtual ::java::lang::String * getLocalName(jint); + virtual ::java::lang::String * getQName(jint); + virtual ::java::lang::String * getType(jint); + virtual ::java::lang::String * getValue(jint); + virtual jint getIndex(::java::lang::String *, ::java::lang::String *); + virtual jint getIndex(::java::lang::String *); + virtual ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getType(::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *); + virtual ::java::lang::String * getValue(::java::lang::String *); + virtual void clear(); + virtual void setAttributes(::org::xml::sax::Attributes *); + virtual void addAttribute(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void setAttribute(jint, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void removeAttribute(jint); + virtual void setURI(jint, ::java::lang::String *); + virtual void setLocalName(jint, ::java::lang::String *); + virtual void setQName(jint, ::java::lang::String *); + virtual void setType(jint, ::java::lang::String *); + virtual void setValue(jint, ::java::lang::String *); +private: + void ensureCapacity(jint); + void badIndex(jint); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) length; + JArray< ::java::lang::String * > * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_AttributesImpl__ diff --git a/libjava/org/xml/sax/helpers/DefaultHandler.h b/libjava/org/xml/sax/helpers/DefaultHandler.h new file mode 100644 index 00000000000..4d73466e7c1 --- /dev/null +++ b/libjava/org/xml/sax/helpers/DefaultHandler.h @@ -0,0 +1,58 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_DefaultHandler__ +#define __org_xml_sax_helpers_DefaultHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class InputSource; + class Locator; + class SAXParseException; + namespace helpers + { + class DefaultHandler; + } + } + } + } +} + +class org::xml::sax::helpers::DefaultHandler : public ::java::lang::Object +{ + +public: + DefaultHandler(); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void skippedEntity(::java::lang::String *); + virtual void warning(::org::xml::sax::SAXParseException *); + virtual void error(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_DefaultHandler__ diff --git a/libjava/org/xml/sax/helpers/LocatorImpl.h b/libjava/org/xml/sax/helpers/LocatorImpl.h new file mode 100644 index 00000000000..41a67eff9f2 --- /dev/null +++ b/libjava/org/xml/sax/helpers/LocatorImpl.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_LocatorImpl__ +#define __org_xml_sax_helpers_LocatorImpl__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Locator; + namespace helpers + { + class LocatorImpl; + } + } + } + } +} + +class org::xml::sax::helpers::LocatorImpl : public ::java::lang::Object +{ + +public: + LocatorImpl(); + LocatorImpl(::org::xml::sax::Locator *); + virtual ::java::lang::String * getPublicId(); + virtual ::java::lang::String * getSystemId(); + virtual jint getLineNumber(); + virtual jint getColumnNumber(); + virtual void setPublicId(::java::lang::String *); + virtual void setSystemId(::java::lang::String *); + virtual void setLineNumber(jint); + virtual void setColumnNumber(jint); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) publicId; + ::java::lang::String * systemId; + jint lineNumber; + jint columnNumber; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_LocatorImpl__ diff --git a/libjava/org/xml/sax/helpers/NamespaceSupport$Context.h b/libjava/org/xml/sax/helpers/NamespaceSupport$Context.h new file mode 100644 index 00000000000..5d8d35fdcd3 --- /dev/null +++ b/libjava/org/xml/sax/helpers/NamespaceSupport$Context.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_NamespaceSupport$Context__ +#define __org_xml_sax_helpers_NamespaceSupport$Context__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + namespace helpers + { + class NamespaceSupport; + class NamespaceSupport$Context; + } + } + } + } +} + +class org::xml::sax::helpers::NamespaceSupport$Context : public ::java::lang::Object +{ + +public: // actually package-private + NamespaceSupport$Context(::org::xml::sax::helpers::NamespaceSupport *); + void setParent(::org::xml::sax::helpers::NamespaceSupport$Context *); + void clear(); + void declarePrefix(::java::lang::String *, ::java::lang::String *); + JArray< ::java::lang::String * > * processName(::java::lang::String *, jboolean); + ::java::lang::String * getURI(::java::lang::String *); + ::java::lang::String * getPrefix(::java::lang::String *); + ::java::util::Enumeration * getDeclaredPrefixes(); + ::java::util::Enumeration * getPrefixes(); +private: + void copyTables(); +public: // actually package-private + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prefixTable; + ::java::util::Hashtable * uriTable; + ::java::util::Hashtable * elementNameTable; + ::java::util::Hashtable * attributeNameTable; + ::java::lang::String * defaultNS; + jboolean declsOK; +private: + ::java::util::Vector * declarations; + jboolean declSeen; + ::org::xml::sax::helpers::NamespaceSupport$Context * parent; +public: // actually package-private + ::org::xml::sax::helpers::NamespaceSupport * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_NamespaceSupport$Context__ diff --git a/libjava/org/xml/sax/helpers/NamespaceSupport.h b/libjava/org/xml/sax/helpers/NamespaceSupport.h new file mode 100644 index 00000000000..afb3f6dd612 --- /dev/null +++ b/libjava/org/xml/sax/helpers/NamespaceSupport.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_NamespaceSupport__ +#define __org_xml_sax_helpers_NamespaceSupport__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + namespace helpers + { + class NamespaceSupport; + class NamespaceSupport$Context; + } + } + } + } +} + +class org::xml::sax::helpers::NamespaceSupport : public ::java::lang::Object +{ + +public: + NamespaceSupport(); + virtual void reset(); + virtual void pushContext(); + virtual void popContext(); + virtual jboolean declarePrefix(::java::lang::String *, ::java::lang::String *); + virtual JArray< ::java::lang::String * > * processName(::java::lang::String *, JArray< ::java::lang::String * > *, jboolean); + virtual ::java::lang::String * getURI(::java::lang::String *); + virtual ::java::util::Enumeration * getPrefixes(); + virtual ::java::lang::String * getPrefix(::java::lang::String *); + virtual ::java::util::Enumeration * getPrefixes(::java::lang::String *); + virtual ::java::util::Enumeration * getDeclaredPrefixes(); + virtual void setNamespaceDeclUris(jboolean); + virtual jboolean isNamespaceDeclUris(); +public: // actually package-private + static jboolean access$0(::org::xml::sax::helpers::NamespaceSupport *); + static ::java::util::Enumeration * access$1(); +public: + static ::java::lang::String * XMLNS; + static ::java::lang::String * NSDECL; +private: + static ::java::util::Enumeration * EMPTY_ENUMERATION; + JArray< ::org::xml::sax::helpers::NamespaceSupport$Context * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) contexts; + ::org::xml::sax::helpers::NamespaceSupport$Context * currentContext; + jint contextPos; + jboolean namespaceDeclUris; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_NamespaceSupport__ diff --git a/libjava/org/xml/sax/helpers/NewInstance.h b/libjava/org/xml/sax/helpers/NewInstance.h new file mode 100644 index 00000000000..ef1323e194e --- /dev/null +++ b/libjava/org/xml/sax/helpers/NewInstance.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_NewInstance__ +#define __org_xml_sax_helpers_NewInstance__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + namespace helpers + { + class NewInstance; + } + } + } + } +} + +class org::xml::sax::helpers::NewInstance : public ::java::lang::Object +{ + +public: // actually package-private + NewInstance(); + static ::java::lang::Object * newInstance(::java::lang::ClassLoader *, ::java::lang::String *); + static ::java::lang::ClassLoader * getClassLoader(); +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_NewInstance__ diff --git a/libjava/org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.h b/libjava/org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.h new file mode 100644 index 00000000000..944e30db56f --- /dev/null +++ b/libjava/org/xml/sax/helpers/ParserAdapter$AttributeListAdapter.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_ParserAdapter$AttributeListAdapter__ +#define __org_xml_sax_helpers_ParserAdapter$AttributeListAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class AttributeList; + namespace helpers + { + class ParserAdapter; + class ParserAdapter$AttributeListAdapter; + } + } + } + } +} + +class org::xml::sax::helpers::ParserAdapter$AttributeListAdapter : public ::java::lang::Object +{ + +public: // actually package-private + ParserAdapter$AttributeListAdapter(::org::xml::sax::helpers::ParserAdapter *); + void setAttributeList(::org::xml::sax::AttributeList *); +public: + jint getLength(); + ::java::lang::String * getURI(jint); + ::java::lang::String * getLocalName(jint); + ::java::lang::String * getQName(jint); + ::java::lang::String * getType(jint); + ::java::lang::String * getValue(jint); + jint getIndex(::java::lang::String *, ::java::lang::String *); + jint getIndex(::java::lang::String *); + ::java::lang::String * getType(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getType(::java::lang::String *); + ::java::lang::String * getValue(::java::lang::String *, ::java::lang::String *); + ::java::lang::String * getValue(::java::lang::String *); +private: + ::org::xml::sax::AttributeList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) qAtts; +public: // actually package-private + ::org::xml::sax::helpers::ParserAdapter * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_ParserAdapter$AttributeListAdapter__ diff --git a/libjava/org/xml/sax/helpers/ParserAdapter.h b/libjava/org/xml/sax/helpers/ParserAdapter.h new file mode 100644 index 00000000000..c33317b6028 --- /dev/null +++ b/libjava/org/xml/sax/helpers/ParserAdapter.h @@ -0,0 +1,106 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_ParserAdapter__ +#define __org_xml_sax_helpers_ParserAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class AttributeList; + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + class Locator; + class Parser; + class SAXParseException; + namespace helpers + { + class AttributesImpl; + class NamespaceSupport; + class ParserAdapter; + class ParserAdapter$AttributeListAdapter; + } + } + } + } +} + +class org::xml::sax::helpers::ParserAdapter : public ::java::lang::Object +{ + +public: + ParserAdapter(); + ParserAdapter(::org::xml::sax::Parser *); +private: + void setup(::org::xml::sax::Parser *); +public: + virtual void setFeature(::java::lang::String *, jboolean); + virtual jboolean getFeature(::java::lang::String *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void setEntityResolver(::org::xml::sax::EntityResolver *); + virtual ::org::xml::sax::EntityResolver * getEntityResolver(); + virtual void setDTDHandler(::org::xml::sax::DTDHandler *); + virtual ::org::xml::sax::DTDHandler * getDTDHandler(); + virtual void setContentHandler(::org::xml::sax::ContentHandler *); + virtual ::org::xml::sax::ContentHandler * getContentHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void parse(::java::lang::String *); + virtual void parse(::org::xml::sax::InputSource *); + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void startElement(::java::lang::String *, ::org::xml::sax::AttributeList *); + virtual void endElement(::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); +private: + void setupParser(); + JArray< ::java::lang::String * > * processName(::java::lang::String *, jboolean, jboolean); +public: // actually package-private + virtual void reportError(::java::lang::String *); +private: + ::org::xml::sax::SAXParseException * makeException(::java::lang::String *); + void checkNotParsing(::java::lang::String *, ::java::lang::String *); +public: // actually package-private + static ::org::xml::sax::helpers::AttributesImpl * access$0(::org::xml::sax::helpers::ParserAdapter *); +private: + static ::java::lang::String * FEATURES; + static ::java::lang::String * NAMESPACES; + static ::java::lang::String * NAMESPACE_PREFIXES; + static ::java::lang::String * XMLNS_URIs; + ::org::xml::sax::helpers::NamespaceSupport * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nsSupport; + ::org::xml::sax::helpers::ParserAdapter$AttributeListAdapter * attAdapter; + jboolean parsing; + JArray< ::java::lang::String * > * nameParts; + ::org::xml::sax::Parser * parser; + ::org::xml::sax::helpers::AttributesImpl * atts; + jboolean namespaces; + jboolean prefixes; + jboolean uris; +public: // actually package-private + ::org::xml::sax::Locator * locator; + ::org::xml::sax::EntityResolver * entityResolver; + ::org::xml::sax::DTDHandler * dtdHandler; + ::org::xml::sax::ContentHandler * contentHandler; + ::org::xml::sax::ErrorHandler * errorHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_ParserAdapter__ diff --git a/libjava/org/xml/sax/helpers/ParserFactory.h b/libjava/org/xml/sax/helpers/ParserFactory.h new file mode 100644 index 00000000000..88d9325209f --- /dev/null +++ b/libjava/org/xml/sax/helpers/ParserFactory.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_ParserFactory__ +#define __org_xml_sax_helpers_ParserFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Parser; + namespace helpers + { + class ParserFactory; + } + } + } + } +} + +class org::xml::sax::helpers::ParserFactory : public ::java::lang::Object +{ + + ParserFactory(); +public: + static ::org::xml::sax::Parser * makeParser(); + static ::org::xml::sax::Parser * makeParser(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_ParserFactory__ diff --git a/libjava/org/xml/sax/helpers/XMLFilterImpl.h b/libjava/org/xml/sax/helpers/XMLFilterImpl.h new file mode 100644 index 00000000000..13e4960487d --- /dev/null +++ b/libjava/org/xml/sax/helpers/XMLFilterImpl.h @@ -0,0 +1,89 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_XMLFilterImpl__ +#define __org_xml_sax_helpers_XMLFilterImpl__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class ContentHandler; + class DTDHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + class Locator; + class SAXParseException; + class XMLReader; + namespace helpers + { + class XMLFilterImpl; + } + } + } + } +} + +class org::xml::sax::helpers::XMLFilterImpl : public ::java::lang::Object +{ + +public: + XMLFilterImpl(); + XMLFilterImpl(::org::xml::sax::XMLReader *); + virtual void setParent(::org::xml::sax::XMLReader *); + virtual ::org::xml::sax::XMLReader * getParent(); + virtual void setFeature(::java::lang::String *, jboolean); + virtual jboolean getFeature(::java::lang::String *); + virtual void setProperty(::java::lang::String *, ::java::lang::Object *); + virtual ::java::lang::Object * getProperty(::java::lang::String *); + virtual void setEntityResolver(::org::xml::sax::EntityResolver *); + virtual ::org::xml::sax::EntityResolver * getEntityResolver(); + virtual void setDTDHandler(::org::xml::sax::DTDHandler *); + virtual ::org::xml::sax::DTDHandler * getDTDHandler(); + virtual void setContentHandler(::org::xml::sax::ContentHandler *); + virtual ::org::xml::sax::ContentHandler * getContentHandler(); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual ::org::xml::sax::ErrorHandler * getErrorHandler(); + virtual void parse(::org::xml::sax::InputSource *); + virtual void parse(::java::lang::String *); + virtual ::org::xml::sax::InputSource * resolveEntity(::java::lang::String *, ::java::lang::String *); + virtual void notationDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void unparsedEntityDecl(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void skippedEntity(::java::lang::String *); + virtual void warning(::org::xml::sax::SAXParseException *); + virtual void error(::org::xml::sax::SAXParseException *); + virtual void fatalError(::org::xml::sax::SAXParseException *); +private: + void setupParse(); + ::org::xml::sax::XMLReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent; + ::org::xml::sax::Locator * locator; + ::org::xml::sax::EntityResolver * entityResolver; + ::org::xml::sax::DTDHandler * dtdHandler; + ::org::xml::sax::ContentHandler * contentHandler; + ::org::xml::sax::ErrorHandler * errorHandler; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_XMLFilterImpl__ diff --git a/libjava/org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.h b/libjava/org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.h new file mode 100644 index 00000000000..888b28a188d --- /dev/null +++ b/libjava/org/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_XMLReaderAdapter$AttributesAdapter__ +#define __org_xml_sax_helpers_XMLReaderAdapter$AttributesAdapter__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + namespace helpers + { + class XMLReaderAdapter; + class XMLReaderAdapter$AttributesAdapter; + } + } + } + } +} + +class org::xml::sax::helpers::XMLReaderAdapter$AttributesAdapter : public ::java::lang::Object +{ + +public: // actually package-private + XMLReaderAdapter$AttributesAdapter(::org::xml::sax::helpers::XMLReaderAdapter *); + void setAttributes(::org::xml::sax::Attributes *); +public: + jint getLength(); + ::java::lang::String * getName(jint); + ::java::lang::String * getType(jint); + ::java::lang::String * getValue(jint); + ::java::lang::String * getType(::java::lang::String *); + ::java::lang::String * getValue(::java::lang::String *); +private: + ::org::xml::sax::Attributes * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attributes; +public: // actually package-private + ::org::xml::sax::helpers::XMLReaderAdapter * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_XMLReaderAdapter$AttributesAdapter__ diff --git a/libjava/org/xml/sax/helpers/XMLReaderAdapter.h b/libjava/org/xml/sax/helpers/XMLReaderAdapter.h new file mode 100644 index 00000000000..9d76f2e7361 --- /dev/null +++ b/libjava/org/xml/sax/helpers/XMLReaderAdapter.h @@ -0,0 +1,76 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_XMLReaderAdapter__ +#define __org_xml_sax_helpers_XMLReaderAdapter__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class Attributes; + class DTDHandler; + class DocumentHandler; + class EntityResolver; + class ErrorHandler; + class InputSource; + class Locator; + class XMLReader; + namespace helpers + { + class XMLReaderAdapter; + class XMLReaderAdapter$AttributesAdapter; + } + } + } + } +} + +class org::xml::sax::helpers::XMLReaderAdapter : public ::java::lang::Object +{ + +public: + XMLReaderAdapter(); + XMLReaderAdapter(::org::xml::sax::XMLReader *); +private: + void setup(::org::xml::sax::XMLReader *); +public: + virtual void setLocale(::java::util::Locale *); + virtual void setEntityResolver(::org::xml::sax::EntityResolver *); + virtual void setDTDHandler(::org::xml::sax::DTDHandler *); + virtual void setDocumentHandler(::org::xml::sax::DocumentHandler *); + virtual void setErrorHandler(::org::xml::sax::ErrorHandler *); + virtual void parse(::java::lang::String *); + virtual void parse(::org::xml::sax::InputSource *); +private: + void setupXMLReader(); +public: + virtual void setDocumentLocator(::org::xml::sax::Locator *); + virtual void startDocument(); + virtual void endDocument(); + virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *); + virtual void endPrefixMapping(::java::lang::String *); + virtual void startElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::org::xml::sax::Attributes *); + virtual void endElement(::java::lang::String *, ::java::lang::String *, ::java::lang::String *); + virtual void characters(JArray< jchar > *, jint, jint); + virtual void ignorableWhitespace(JArray< jchar > *, jint, jint); + virtual void processingInstruction(::java::lang::String *, ::java::lang::String *); + virtual void skippedEntity(::java::lang::String *); +public: // actually package-private + ::org::xml::sax::XMLReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) xmlReader; + ::org::xml::sax::DocumentHandler * documentHandler; + ::org::xml::sax::helpers::XMLReaderAdapter$AttributesAdapter * qAtts; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_XMLReaderAdapter__ diff --git a/libjava/org/xml/sax/helpers/XMLReaderFactory.h b/libjava/org/xml/sax/helpers/XMLReaderFactory.h new file mode 100644 index 00000000000..9be9aaf79b8 --- /dev/null +++ b/libjava/org/xml/sax/helpers/XMLReaderFactory.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __org_xml_sax_helpers_XMLReaderFactory__ +#define __org_xml_sax_helpers_XMLReaderFactory__ + +#pragma interface + +#include +extern "Java" +{ + namespace org + { + namespace xml + { + namespace sax + { + class XMLReader; + namespace helpers + { + class XMLReaderFactory; + } + } + } + } +} + +class org::xml::sax::helpers::XMLReaderFactory : public ::java::lang::Object +{ + + XMLReaderFactory(); +public: + static ::org::xml::sax::XMLReader * createXMLReader(); + static ::org::xml::sax::XMLReader * createXMLReader(::java::lang::String *); +private: + static ::org::xml::sax::XMLReader * loadClass(::java::lang::ClassLoader *, ::java::lang::String *); + static ::java::lang::String * property; +public: + static ::java::lang::Class class$; +}; + +#endif // __org_xml_sax_helpers_XMLReaderFactory__ diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc index 125275b97ca..6ea724b3be8 100644 --- a/libjava/posix-threads.cc +++ b/libjava/posix-threads.cc @@ -80,6 +80,34 @@ static int non_daemon_count; +int +_Jv_MutexLock (_Jv_Mutex_t *mu) +{ + pthread_t self = pthread_self (); + if (mu->owner == self) + { + mu->count++; + } + else + { + JvSetThreadState holder (_Jv_ThreadCurrent(), JV_BLOCKED); + +# ifdef LOCK_DEBUG + int result = pthread_mutex_lock (&mu->mutex); + if (0 != result) + { + fprintf(stderr, "Pthread_mutex_lock returned %d\n", result); + for (;;) {} + } +# else + pthread_mutex_lock (&mu->mutex); +# endif + mu->count = 1; + mu->owner = self; + } + return 0; +} + // Wait for the condition variable "CV" to be notified. // Return values: // 0: the condition was notified, or the timeout expired. @@ -95,6 +123,7 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, struct timespec ts; + JvThreadState new_state = JV_WAITING; if (millis > 0 || nanos > 0) { // Calculate the abstime corresponding to the timeout. @@ -147,6 +176,9 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, return _JV_INTERRUPTED; } + // Set the thread's state. + JvSetThreadState holder (current_obj, new_state); + // Add this thread to the cv's wait set. current->next = NULL; @@ -307,6 +339,133 @@ _Jv_ThreadInterrupt (_Jv_Thread_t *data) pthread_mutex_unlock (&data->wait_mutex); } +/** + * Releases the block on a thread created by _Jv_ThreadPark(). This + * method can also be used to terminate a blockage caused by a prior + * call to park. This operation is unsafe, as the thread must be + * guaranteed to be live. + * + * @param thread the thread to unblock. + */ +void +ParkHelper::unpark () +{ + using namespace ::java::lang; + volatile obj_addr_t *ptr = &permit; + + /* If this thread is in state RUNNING, give it a permit and return + immediately. */ + if (compare_and_swap + (ptr, Thread::THREAD_PARK_RUNNING, Thread::THREAD_PARK_PERMIT)) + return; + + /* If this thread is parked, put it into state RUNNING and send it a + signal. */ + if (compare_and_swap + (ptr, Thread::THREAD_PARK_PARKED, Thread::THREAD_PARK_RUNNING)) + { + pthread_mutex_lock (&mutex); + pthread_cond_signal (&cond); + pthread_mutex_unlock (&mutex); + } +} + +/** + * Sets our state to dead. + */ +void +ParkHelper::deactivate () +{ + permit = ::java::lang::Thread::THREAD_PARK_DEAD; +} + +/** + * Blocks the thread until a matching _Jv_ThreadUnpark() occurs, the + * thread is interrupted or the optional timeout expires. If an + * unpark call has already occurred, this also counts. A timeout + * value of zero is defined as no timeout. When isAbsolute is true, + * the timeout is in milliseconds relative to the epoch. Otherwise, + * the value is the number of nanoseconds which must occur before + * timeout. This call may also return spuriously (i.e. for no + * apparent reason). + * + * @param isAbsolute true if the timeout is specified in milliseconds from + * the epoch. + * @param time either the number of nanoseconds to wait, or a time in + * milliseconds from the epoch to wait for. + */ +void +ParkHelper::park (jboolean isAbsolute, jlong time) +{ + using namespace ::java::lang; + volatile obj_addr_t *ptr = &permit; + + /* If we have a permit, return immediately. */ + if (compare_and_swap + (ptr, Thread::THREAD_PARK_PERMIT, Thread::THREAD_PARK_RUNNING)) + return; + + struct timespec ts; + jlong millis = 0, nanos = 0; + + if (time) + { + if (isAbsolute) + { + millis = time; + nanos = 0; + } + else + { + millis = java::lang::System::currentTimeMillis(); + nanos = time; + } + + if (millis > 0 || nanos > 0) + { + // Calculate the abstime corresponding to the timeout. + // Everything is in milliseconds. + // + // We use `unsigned long long' rather than jlong because our + // caller may pass up to Long.MAX_VALUE millis. This would + // overflow the range of a timespec. + + unsigned long long m = (unsigned long long)millis; + unsigned long long seconds = m / 1000; + + ts.tv_sec = seconds; + if (ts.tv_sec < 0 || (unsigned long long)ts.tv_sec != seconds) + { + // We treat a timeout that won't fit into a struct timespec + // as a wait forever. + millis = nanos = 0; + } + else + { + m %= 1000; + ts.tv_nsec = m * 1000000 + (unsigned long long)nanos; + } + } + } + + if (compare_and_swap + (ptr, Thread::THREAD_PARK_RUNNING, Thread::THREAD_PARK_PARKED)) + { + pthread_mutex_lock (&mutex); + if (millis == 0 && nanos == 0) + pthread_cond_wait (&cond, &mutex); + else + pthread_cond_timedwait (&cond, &mutex, &ts); + pthread_mutex_unlock (&mutex); + + /* If we were unparked by some other thread, this will already + be in state THREAD_PARK_RUNNING. If we timed out, we have to + do it ourself. */ + compare_and_swap + (ptr, Thread::THREAD_PARK_PARKED, Thread::THREAD_PARK_RUNNING); + } +} + static void handle_intr (int) { diff --git a/libjava/prims.cc b/libjava/prims.cc index dfeb95766af..3f88fb7db76 100644 --- a/libjava/prims.cc +++ b/libjava/prims.cc @@ -1122,6 +1122,18 @@ namespace gcj // Thread stack size specified by the -Xss runtime argument. size_t stack_size = 0; + + // Start time of the VM + jlong startTime = 0; + + // Arguments passed to the VM + JArray* vmArgs; + + // Currently loaded classes + jint loadedClasses = 0; + + // Unloaded classes + jlong unloadedClasses = 0; } // We accept all non-standard options accepted by Sun's java command, @@ -1422,6 +1434,9 @@ _Jv_CreateJavaVM (JvVMInitArgs* vm_args) if (runtimeInitialized) return -1; + runtimeInitialized = true; + startTime = _Jv_platform_gettimeofday(); + jint result = parse_init_args (vm_args); if (result < 0) return -1; @@ -1522,6 +1537,18 @@ _Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc, fprintf (stderr, "libgcj: couldn't create virtual machine\n"); exit (1); } + + if (vm_args == NULL) + gcj::vmArgs = JvConvertArgv(0, NULL); + else + { + const char* vmArgs[vm_args->nOptions]; + const char** vmPtr = vmArgs; + struct _Jv_VMOption* optionPtr = vm_args->options; + for (int i = 0; i < vm_args->nOptions; ++i) + *vmPtr++ = (*optionPtr++).optionString; + gcj::vmArgs = JvConvertArgv(vm_args->nOptions, vmArgs); + } // Get the Runtime here. We want to initialize it before searching // for `main'; that way it will be set up if `main' is a JNI method. @@ -1599,6 +1626,12 @@ JvRunMain (jclass klass, int argc, const char **argv) _Jv_RunMain (klass, NULL, argc, argv, false); } +void +JvRunMainName (const char *name, int argc, const char **argv) +{ + _Jv_RunMain (NULL, name, argc, argv, false); +} + // Parse a string and return a heap size. diff --git a/libjava/scripts/classes.pl b/libjava/scripts/classes.pl index d231ea4f7ba..43676590d69 100644 --- a/libjava/scripts/classes.pl +++ b/libjava/scripts/classes.pl @@ -1,7 +1,7 @@ # classes.pl - A perl program to generate most of the contents of # javaprims.h automatically. -# Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation +# Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006 Free Software Foundation # # This file is part of libgcj. # @@ -44,6 +44,7 @@ sub scan while (defined ($name = $d->read)) { next if $name eq 'CVS'; + next if $name eq '.svn'; next if $name eq '.'; next if $name eq '..'; if ($dir eq 'java' diff --git a/libjava/scripts/makemake.tcl b/libjava/scripts/makemake.tcl index 954d1847ec4..cac22dc71ea 100755 --- a/libjava/scripts/makemake.tcl +++ b/libjava/scripts/makemake.tcl @@ -49,10 +49,13 @@ set package_map(gnu/xml) bc set package_map(javax/imageio) bc set package_map(javax/xml) bc set package_map(gnu/java/beans) bc +set package_map(gnu/java/awt/dnd/peer/gtk) bc set package_map(gnu/java/util/prefs/gconf) bc set package_map(gnu/java/awt/peer/gtk) bc set package_map(gnu/java/awt/dnd/peer/gtk) bc set package_map(gnu/java/awt/peer/qt) bc +set package_map(gnu/java/awt/peer/x) bc +set package_map(gnu/java/util/prefs/gconf) bc set package_map(gnu/javax/sound/midi) bc set package_map(org/xml) bc set package_map(org/w3c) bc @@ -62,15 +65,6 @@ set package_map(org/omg) bc set package_map(gnu/CORBA) bc set package_map(gnu/javax/rmi) bc -# This is handled specially by the Makefile. -# We still want it byte-compiled so it isn't in the .omit file. -set package_map(gnu/gcj/tools/gcj_dbtool/Main.java) ignore - -# These are handled specially. If we list Class.java with other files -# in java.lang, we hit a compiler bug. -set package_map(java/lang/Class.java) ignore -set package_map(java/lang/Object.java) ignore - # More special cases. These end up in their own library. # Note that if we BC-compile AWT we must update these as well. set package_map(gnu/gcj/xlib) package @@ -225,7 +219,7 @@ proc scan_directory {basedir subdir} { # Scan known packages beneath the base directory for .java source # files. proc scan_packages {basedir} { - foreach subdir {gnu java javax org META-INF} { + foreach subdir {gnu java javax org sun META-INF} { if {[file exists $basedir/$subdir]} { scan_directory $basedir $subdir } @@ -253,12 +247,16 @@ proc emit_bc_rule {package} { if {[info exists exclusion_map($package)]} { set omit "| grep -v $exclusion_map($package)" } - puts "\t@find classpath/lib/$package -name '*.class'${omit} > $tname" + puts "\t@find \$(srcdir)/classpath/lib/$package -name '*.class'${omit} > $tname" puts "\t\$(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o $loname @$tname" puts "\t@rm -f $tname" puts "" - lappend bc_objects $loname + # We skip these because they are built into their own libraries and + # are handled specially in Makefile.am. + if {$loname != "gnu-java-awt-peer-qt.lo" && $loname != "gnu-java-awt-peer-x.lo"} { + lappend bc_objects $loname + } } # Emit a rule for a 'package' package. @@ -275,24 +273,46 @@ proc emit_package_rule {package} { set lname $base.list set dname $base.deps + if {$pkgname == "java/lang"} { + # Object and Class are special cases due to an apparent compiler + # bug. Process is a special case because we don't build all + # concrete implementations of Process on all platforms. + set omit "| tr ' ' '\\n' | fgrep -v Object.class | fgrep -v Class.class | grep -v '\[^/\]Process' " + } else { + set omit "" + } + # A rule to make the phony file we are going to compile. puts "$lname: \$($varname)" puts "\t@\$(mkinstalldirs) \$(dir \$@)" - puts "\t@for file in \$($varname); do \\" - puts "\t if test -f \$(srcdir)/\$\$file; then \\" - puts "\t echo \$(srcdir)/\$\$file; \\" - puts "\t else echo \$\$file; fi; \\" - puts "\tdone > $lname" + puts "\techo \$(srcdir)/classpath/lib/$package/*.class $omit> $lname" puts "" puts "-include $dname" puts "" puts "" - if {$pkgname != "gnu/gcj/xlib" && $pkgname != "gnu/awt/xlib"} { + if {$pkgname != "gnu/gcj/xlib" && $pkgname != "gnu/awt/xlib" + && $pkgname != "gnu/gcj/tools/gcj_dbtool"} { lappend package_files $lname } } +# Emit a package-like rule for a platform-specific Process +# implementation. +proc emit_process_package_rule {platform} { + set base "java/process-$platform" + set lname $base.list + set dname $base.deps + + puts "$lname: java/lang/${platform}Process.java" + puts "\t@\$(mkinstalldirs) \$(dir \$@)" + puts "\techo \$(srcdir)/classpath/lib/java/lang/${platform}Process*.class > $lname" + puts "" + puts "-include $dname" + puts "" + puts "" +} + # Emit a source file variable for a package, and corresponding header # file variable, if needed. proc emit_source_var {package} { @@ -326,7 +346,9 @@ proc emit_source_var {package} { if {$package_map($package) != "bc"} { # Ugly code to build up the appropriate patsubst. set result "\$(patsubst %.java,%.h,\$($varname))" - foreach dir [lsort [array names dirs]] { + # We use -decreasing so that classpath/external will be stripped + # before classpath. + foreach dir [lsort -decreasing [array names dirs]] { if {$dir != "."} { set result "\$(patsubst $dir/%,%,$result)" } @@ -363,22 +385,21 @@ if {[llength $argv] > 0 && [lindex $argv 0] == "-verbose"} { # Read the proper .omit files. read_omit_file standard.omit.in -read_omit_file classpath/lib/standard.omit +read_omit_file classpath/lib/standard.omit.in # Scan classpath first. scan_packages classpath scan_packages classpath/external/sax scan_packages classpath/external/w3c_dom scan_packages classpath/external/relaxngDatatype +scan_packages classpath/external/jsr166 # Resource files. scan_packages classpath/resource # Now scan our own files; this will correctly override decisions made # when scanning classpath. scan_packages . # Files created by the build. -classify_source_file . java/lang/ConcreteProcess.java classify_source_file classpath gnu/java/locale/LocaleData.java -classify_source_file classpath gnu/classpath/Configuration.java classify_source_file classpath gnu/java/security/Configuration.java puts "## This file was automatically generated by scripts/makemake.tcl" @@ -406,6 +427,10 @@ foreach package [lsort [array names package_map]] { } } +emit_process_package_rule Ecos +emit_process_package_rule Win32 +emit_process_package_rule Posix + pp_var all_packages_source_files $package_files pp_var ordinary_header_files $header_vars "\$(" ")" pp_var bc_objects $bc_objects diff --git a/libjava/sources.am b/libjava/sources.am index b13633f4664..d49e91e3a7f 100644 --- a/libjava/sources.am +++ b/libjava/sources.am @@ -27,6 +27,7 @@ classpath/gnu/CORBA/CDR/Vio.java \ classpath/gnu/CORBA/CDR/gnuRuntime.java \ classpath/gnu/CORBA/CDR/gnuValueStream.java \ classpath/gnu/CORBA/CdrEncapsCodecImpl.java \ +classpath/gnu/CORBA/CollocatedOrbs.java \ classpath/gnu/CORBA/Connected_objects.java \ classpath/gnu/CORBA/CorbaList.java \ classpath/gnu/CORBA/DefaultSocketFactory.java \ @@ -35,7 +36,7 @@ classpath/gnu/CORBA/DuplicateNameHolder.java \ classpath/gnu/CORBA/DynAn/AbstractAny.java \ classpath/gnu/CORBA/DynAn/DivideableAny.java \ classpath/gnu/CORBA/DynAn/NameValuePairHolder.java \ -gnu/CORBA/DynAn/RecordAny.java \ +classpath/gnu/CORBA/DynAn/RecordAny.java \ classpath/gnu/CORBA/DynAn/UndivideableAny.java \ classpath/gnu/CORBA/DynAn/ValueChangeListener.java \ classpath/gnu/CORBA/DynAn/gnuDynAny.java \ @@ -46,7 +47,7 @@ classpath/gnu/CORBA/DynAn/gnuDynFixed.java \ classpath/gnu/CORBA/DynAn/gnuDynSequence.java \ classpath/gnu/CORBA/DynAn/gnuDynStruct.java \ classpath/gnu/CORBA/DynAn/gnuDynUnion.java \ -gnu/CORBA/DynAn/gnuDynValue.java \ +classpath/gnu/CORBA/DynAn/gnuDynValue.java \ classpath/gnu/CORBA/DynAn/gnuDynValueBox.java \ classpath/gnu/CORBA/DynAnySeqHolder.java \ classpath/gnu/CORBA/EmptyExceptionHolder.java \ @@ -95,7 +96,7 @@ classpath/gnu/CORBA/NamingService/NameValidator.java \ classpath/gnu/CORBA/NamingService/NamingMap.java \ classpath/gnu/CORBA/NamingService/NamingServiceTransient.java \ classpath/gnu/CORBA/NamingService/TransientContext.java \ -gnu/CORBA/ObjectCreator.java \ +classpath/gnu/CORBA/ObjectCreator.java \ classpath/gnu/CORBA/OctetHolder.java \ classpath/gnu/CORBA/OrbFocused.java \ classpath/gnu/CORBA/OrbFunctional.java \ @@ -127,6 +128,7 @@ classpath/gnu/CORBA/Poa/gnuServantRetentionPolicy.java \ classpath/gnu/CORBA/Poa/gnuThreadPolicy.java \ classpath/gnu/CORBA/RawReply.java \ classpath/gnu/CORBA/ResponseHandlerImpl.java \ +classpath/gnu/CORBA/SafeForDirectCalls.java \ classpath/gnu/CORBA/ServiceDetailHolder.java \ classpath/gnu/CORBA/ServiceRequestAdapter.java \ classpath/gnu/CORBA/SetOverrideTypeHolder.java \ @@ -163,7 +165,7 @@ classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java \ classpath/gnu/CORBA/typecodes/StringTypeCode.java gnu-CORBA.lo: $(gnu_CORBA_source_files) - @find classpath/lib/gnu/CORBA -name '*.class' > gnu-CORBA.list + @find $(srcdir)/classpath/lib/gnu/CORBA -name '*.class' > gnu-CORBA.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-CORBA.lo @gnu-CORBA.list @rm -f gnu-CORBA.list @@ -174,11 +176,7 @@ gnu_awt_header_files = $(patsubst %.java,%.h,$(gnu_awt_source_files)) gnu/awt.list: $(gnu_awt_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_awt_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/awt.list + echo $(srcdir)/classpath/lib/gnu/awt/*.class > gnu/awt.list -include gnu/awt.deps @@ -194,11 +192,7 @@ gnu_awt_j2d_header_files = $(patsubst %.java,%.h,$(gnu_awt_j2d_source_files)) gnu/awt/j2d.list: $(gnu_awt_j2d_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_awt_j2d_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/awt/j2d.list + echo $(srcdir)/classpath/lib/gnu/awt/j2d/*.class > gnu/awt/j2d.list -include gnu/awt/j2d.deps @@ -222,34 +216,28 @@ gnu_awt_xlib_header_files = $(patsubst %.java,%.h,$(gnu_awt_xlib_source_files)) gnu/awt/xlib.list: $(gnu_awt_xlib_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_awt_xlib_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/awt/xlib.list + echo $(srcdir)/classpath/lib/gnu/awt/xlib/*.class > gnu/awt/xlib.list -include gnu/awt/xlib.deps gnu_classpath_source_files = \ -classpath/gnu/classpath/Configuration.java \ +gnu/classpath/Configuration.java \ +classpath/gnu/classpath/ListenerData.java \ classpath/gnu/classpath/NotImplementedException.java \ classpath/gnu/classpath/Pointer.java \ classpath/gnu/classpath/Pointer32.java \ classpath/gnu/classpath/Pointer64.java \ classpath/gnu/classpath/ServiceFactory.java \ classpath/gnu/classpath/ServiceProviderLoadingAction.java \ -gnu/classpath/SystemProperties.java +gnu/classpath/SystemProperties.java \ +gnu/classpath/VMStackWalker.java gnu_classpath_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_source_files))) gnu/classpath.list: $(gnu_classpath_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath.list + echo $(srcdir)/classpath/lib/gnu/classpath/*.class > gnu/classpath.list -include gnu/classpath.deps @@ -268,11 +256,7 @@ gnu_classpath_debug_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. gnu/classpath/debug.list: $(gnu_classpath_debug_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_debug_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/debug.list + echo $(srcdir)/classpath/lib/gnu/classpath/debug/*.class > gnu/classpath/debug.list -include gnu/classpath/debug.deps @@ -289,11 +273,7 @@ gnu_classpath_jdwp_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h gnu/classpath/jdwp.list: $(gnu_classpath_jdwp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/*.class > gnu/classpath/jdwp.list -include gnu/classpath/jdwp.deps @@ -318,11 +298,7 @@ gnu_classpath_jdwp_event_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/classpath/jdwp/event.list: $(gnu_classpath_jdwp_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/event.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/event/*.class > gnu/classpath/jdwp/event.list -include gnu/classpath/jdwp/event.deps @@ -345,11 +321,7 @@ gnu_classpath_jdwp_event_filters_header_files = $(patsubst classpath/%,%,$(patsu gnu/classpath/jdwp/event/filters.list: $(gnu_classpath_jdwp_event_filters_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_event_filters_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/event/filters.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/event/filters/*.class > gnu/classpath/jdwp/event/filters.list -include gnu/classpath/jdwp/event/filters.deps @@ -377,11 +349,7 @@ gnu_classpath_jdwp_exception_header_files = $(patsubst classpath/%,%,$(patsubst gnu/classpath/jdwp/exception.list: $(gnu_classpath_jdwp_exception_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_exception_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/exception.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/exception/*.class > gnu/classpath/jdwp/exception.list -include gnu/classpath/jdwp/exception.deps @@ -404,11 +372,7 @@ gnu_classpath_jdwp_id_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/classpath/jdwp/id.list: $(gnu_classpath_jdwp_id_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_id_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/id.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/id/*.class > gnu/classpath/jdwp/id.list -include gnu/classpath/jdwp/id.deps @@ -437,11 +401,7 @@ gnu_classpath_jdwp_processor_header_files = $(patsubst classpath/%,%,$(patsubst gnu/classpath/jdwp/processor.list: $(gnu_classpath_jdwp_processor_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_processor_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/processor.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/processor/*.class > gnu/classpath/jdwp/processor.list -include gnu/classpath/jdwp/processor.deps @@ -460,11 +420,7 @@ gnu_classpath_jdwp_transport_header_files = $(patsubst classpath/%,%,$(patsubst gnu/classpath/jdwp/transport.list: $(gnu_classpath_jdwp_transport_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_transport_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/transport.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/transport/*.class > gnu/classpath/jdwp/transport.list -include gnu/classpath/jdwp/transport.deps @@ -482,11 +438,7 @@ gnu_classpath_jdwp_util_header_files = $(patsubst classpath/%,%,$(patsubst %.jav gnu/classpath/jdwp/util.list: $(gnu_classpath_jdwp_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_classpath_jdwp_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/classpath/jdwp/util.list + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/util/*.class > gnu/classpath/jdwp/util.list -include gnu/classpath/jdwp/util.deps @@ -500,11 +452,7 @@ gnu_gcj_header_files = $(patsubst %.java,%.h,$(gnu_gcj_source_files)) gnu/gcj.list: $(gnu_gcj_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj.list + echo $(srcdir)/classpath/lib/gnu/gcj/*.class > gnu/gcj.list -include gnu/gcj.deps @@ -538,11 +486,7 @@ gnu_gcj_convert_header_files = $(patsubst %.java,%.h,$(gnu_gcj_convert_source_fi gnu/gcj/convert.list: $(gnu_gcj_convert_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_convert_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/convert.list + echo $(srcdir)/classpath/lib/gnu/gcj/convert/*.class > gnu/gcj/convert.list -include gnu/gcj/convert.deps @@ -556,11 +500,7 @@ gnu_gcj_io_header_files = $(patsubst %.java,%.h,$(gnu_gcj_io_source_files)) gnu/gcj/io.list: $(gnu_gcj_io_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_io_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/io.list + echo $(srcdir)/classpath/lib/gnu/gcj/io/*.class > gnu/gcj/io.list -include gnu/gcj/io.deps @@ -574,11 +514,7 @@ gnu_gcj_jvmti_header_files = $(patsubst %.java,%.h,$(gnu_gcj_jvmti_source_files) gnu/gcj/jvmti.list: $(gnu_gcj_jvmti_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_jvmti_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/jvmti.list + echo $(srcdir)/classpath/lib/gnu/gcj/jvmti/*.class > gnu/gcj/jvmti.list -include gnu/gcj/jvmti.deps @@ -600,15 +536,23 @@ gnu_gcj_runtime_header_files = $(patsubst %.java,%.h,$(gnu_gcj_runtime_source_fi gnu/gcj/runtime.list: $(gnu_gcj_runtime_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_runtime_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/runtime.list + echo $(srcdir)/classpath/lib/gnu/gcj/runtime/*.class > gnu/gcj/runtime.list -include gnu/gcj/runtime.deps +gnu_gcj_tools_gcj_dbtool_source_files = \ +gnu/gcj/tools/gcj_dbtool/Main.java + +gnu_gcj_tools_gcj_dbtool_header_files = $(patsubst %.java,%.h,$(gnu_gcj_tools_gcj_dbtool_source_files)) + +gnu/gcj/tools/gcj_dbtool.list: $(gnu_gcj_tools_gcj_dbtool_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/gcj/tools/gcj_dbtool/*.class > gnu/gcj/tools/gcj_dbtool.list + +-include gnu/gcj/tools/gcj_dbtool.deps + + gnu_gcj_util_source_files = \ gnu/gcj/util/Debug.java @@ -616,11 +560,7 @@ gnu_gcj_util_header_files = $(patsubst %.java,%.h,$(gnu_gcj_util_source_files)) gnu/gcj/util.list: $(gnu_gcj_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/util.list + echo $(srcdir)/classpath/lib/gnu/gcj/util/*.class > gnu/gcj/util.list -include gnu/gcj/util.deps @@ -654,11 +594,7 @@ gnu_gcj_xlib_header_files = $(patsubst %.java,%.h,$(gnu_gcj_xlib_source_files)) gnu/gcj/xlib.list: $(gnu_gcj_xlib_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_gcj_xlib_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/gcj/xlib.list + echo $(srcdir)/classpath/lib/gnu/gcj/xlib/*.class > gnu/gcj/xlib.list -include gnu/gcj/xlib.deps @@ -670,19 +606,17 @@ classpath/gnu/java/awt/BitwiseXORComposite.java \ classpath/gnu/java/awt/Buffers.java \ classpath/gnu/java/awt/ClasspathToolkit.java \ classpath/gnu/java/awt/ComponentDataBlitOp.java \ +classpath/gnu/java/awt/ComponentReshapeEvent.java \ classpath/gnu/java/awt/EmbeddedWindow.java \ classpath/gnu/java/awt/EventModifier.java \ -classpath/gnu/java/awt/GradientPaintContext.java +classpath/gnu/java/awt/GradientPaintContext.java \ +classpath/gnu/java/awt/LowPriorityEvent.java gnu_java_awt_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_source_files))) gnu/java/awt.list: $(gnu_java_awt_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt.list + echo $(srcdir)/classpath/lib/gnu/java/awt/*.class > gnu/java/awt.list -include gnu/java/awt.deps @@ -706,11 +640,7 @@ gnu_java_awt_color_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h gnu/java/awt/color.list: $(gnu_java_awt_color_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_color_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/color.list + echo $(srcdir)/classpath/lib/gnu/java/awt/color/*.class > gnu/java/awt/color.list -include gnu/java/awt/color.deps @@ -722,11 +652,7 @@ gnu_java_awt_dnd_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ gnu/java/awt/dnd.list: $(gnu_java_awt_dnd_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_dnd_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/dnd.list + echo $(srcdir)/classpath/lib/gnu/java/awt/dnd/*.class > gnu/java/awt/dnd.list -include gnu/java/awt/dnd.deps @@ -737,7 +663,7 @@ classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java \ classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java gnu-java-awt-dnd-peer-gtk.lo: $(gnu_java_awt_dnd_peer_gtk_source_files) - @find classpath/lib/gnu/java/awt/dnd/peer/gtk -name '*.class' > gnu-java-awt-dnd-peer-gtk.list + @find $(srcdir)/classpath/lib/gnu/java/awt/dnd/peer/gtk -name '*.class' > gnu-java-awt-dnd-peer-gtk.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-dnd-peer-gtk.lo @gnu-java-awt-dnd-peer-gtk.list @rm -f gnu-java-awt-dnd-peer-gtk.list @@ -750,15 +676,33 @@ gnu_java_awt_font_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, gnu/java/awt/font.list: $(gnu_java_awt_font_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_font_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/font.list + echo $(srcdir)/classpath/lib/gnu/java/awt/font/*.class > gnu/java/awt/font.list -include gnu/java/awt/font.deps +gnu_java_awt_font_autofit_source_files = \ +classpath/gnu/java/awt/font/autofit/AxisHints.java \ +classpath/gnu/java/awt/font/autofit/Constants.java \ +classpath/gnu/java/awt/font/autofit/GlyphHints.java \ +classpath/gnu/java/awt/font/autofit/Latin.java \ +classpath/gnu/java/awt/font/autofit/LatinAxis.java \ +classpath/gnu/java/awt/font/autofit/LatinMetrics.java \ +classpath/gnu/java/awt/font/autofit/Scaler.java \ +classpath/gnu/java/awt/font/autofit/Script.java \ +classpath/gnu/java/awt/font/autofit/ScriptMetrics.java \ +classpath/gnu/java/awt/font/autofit/Segment.java \ +classpath/gnu/java/awt/font/autofit/Width.java + +gnu_java_awt_font_autofit_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_autofit_source_files))) + +gnu/java/awt/font/autofit.list: $(gnu_java_awt_font_autofit_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/java/awt/font/autofit/*.class > gnu/java/awt/font/autofit.list + +-include gnu/java/awt/font/autofit.deps + + gnu_java_awt_font_opentype_source_files = \ classpath/gnu/java/awt/font/opentype/CharGlyphMap.java \ classpath/gnu/java/awt/font/opentype/GlyphNamer.java \ @@ -772,11 +716,7 @@ gnu_java_awt_font_opentype_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/java/awt/font/opentype.list: $(gnu_java_awt_font_opentype_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_font_opentype_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/font/opentype.list + echo $(srcdir)/classpath/lib/gnu/java/awt/font/opentype/*.class > gnu/java/awt/font/opentype.list -include gnu/java/awt/font/opentype.deps @@ -795,11 +735,7 @@ gnu_java_awt_font_opentype_truetype_header_files = $(patsubst classpath/%,%,$(pa gnu/java/awt/font/opentype/truetype.list: $(gnu_java_awt_font_opentype_truetype_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_font_opentype_truetype_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/font/opentype/truetype.list + echo $(srcdir)/classpath/lib/gnu/java/awt/font/opentype/truetype/*.class > gnu/java/awt/font/opentype/truetype.list -include gnu/java/awt/font/opentype/truetype.deps @@ -812,11 +748,7 @@ gnu_java_awt_image_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h gnu/java/awt/image.list: $(gnu_java_awt_image_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_image_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/image.list + echo $(srcdir)/classpath/lib/gnu/java/awt/image/*.class > gnu/java/awt/image.list -include gnu/java/awt/image.deps @@ -832,17 +764,14 @@ classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \ classpath/gnu/java/awt/java2d/QuadSegment.java \ classpath/gnu/java/awt/java2d/RasterGraphics.java \ classpath/gnu/java/awt/java2d/Segment.java \ +classpath/gnu/java/awt/java2d/ShapeCache.java \ classpath/gnu/java/awt/java2d/TexturePaintContext.java gnu_java_awt_java2d_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_java2d_source_files))) gnu/java/awt/java2d.list: $(gnu_java_awt_java2d_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_java2d_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/java2d.list + echo $(srcdir)/classpath/lib/gnu/java/awt/java2d/*.class > gnu/java/awt/java2d.list -include gnu/java/awt/java2d.deps @@ -850,22 +779,20 @@ gnu/java/awt/java2d.list: $(gnu_java_awt_java2d_source_files) gnu_java_awt_peer_source_files = \ classpath/gnu/java/awt/peer/ClasspathFontPeer.java \ classpath/gnu/java/awt/peer/EmbeddedWindowPeer.java \ -classpath/gnu/java/awt/peer/GLightweightPeer.java +classpath/gnu/java/awt/peer/GLightweightPeer.java \ +classpath/gnu/java/awt/peer/NativeEventLoopRunningEvent.java gnu_java_awt_peer_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_peer_source_files))) gnu/java/awt/peer.list: $(gnu_java_awt_peer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_peer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/peer.list + echo $(srcdir)/classpath/lib/gnu/java/awt/peer/*.class > gnu/java/awt/peer.list -include gnu/java/awt/peer.deps gnu_java_awt_peer_gtk_source_files = \ +classpath/gnu/java/awt/peer/gtk/AsyncImage.java \ classpath/gnu/java/awt/peer/gtk/BufferedImageGraphics.java \ classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java \ classpath/gnu/java/awt/peer/gtk/CairoSurface.java \ @@ -875,7 +802,6 @@ classpath/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java \ classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java \ classpath/gnu/java/awt/peer/gtk/GThreadMutex.java \ classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java \ -classpath/gnu/java/awt/peer/gtk/GdkFontMetrics.java \ classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java \ classpath/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java \ classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \ @@ -901,6 +827,7 @@ classpath/gnu/java/awt/peer/gtk/GtkImage.java \ classpath/gnu/java/awt/peer/gtk/GtkImageConsumer.java \ classpath/gnu/java/awt/peer/gtk/GtkLabelPeer.java \ classpath/gnu/java/awt/peer/gtk/GtkListPeer.java \ +classpath/gnu/java/awt/peer/gtk/GtkMainThread.java \ classpath/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java \ classpath/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java \ classpath/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java \ @@ -919,10 +846,23 @@ classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java \ classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java gnu-java-awt-peer-gtk.lo: $(gnu_java_awt_peer_gtk_source_files) - @find classpath/lib/gnu/java/awt/peer/gtk -name '*.class' > gnu-java-awt-peer-gtk.list + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/gtk -name '*.class' > gnu-java-awt-peer-gtk.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-gtk.lo @gnu-java-awt-peer-gtk.list @rm -f gnu-java-awt-peer-gtk.list +gnu_java_awt_peer_headless_source_files = \ +classpath/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java \ +classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java + +gnu_java_awt_peer_headless_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_peer_headless_source_files))) + +gnu/java/awt/peer/headless.list: $(gnu_java_awt_peer_headless_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/java/awt/peer/headless/*.class > gnu/java/awt/peer/headless.list + +-include gnu/java/awt/peer/headless.deps + + gnu_java_awt_peer_qt_source_files = \ classpath/gnu/java/awt/peer/qt/MainQtThread.java \ classpath/gnu/java/awt/peer/qt/NativeWrapper.java \ @@ -969,7 +909,7 @@ classpath/gnu/java/awt/peer/qt/QtVolatileImage.java \ classpath/gnu/java/awt/peer/qt/QtWindowPeer.java gnu-java-awt-peer-qt.lo: $(gnu_java_awt_peer_qt_source_files) - @find classpath/lib/gnu/java/awt/peer/qt -name '*.class' > gnu-java-awt-peer-qt.list + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/qt -name '*.class' > gnu-java-awt-peer-qt.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-qt.lo @gnu-java-awt-peer-qt.list @rm -f gnu-java-awt-peer-qt.list @@ -981,19 +921,45 @@ classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java \ classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java \ classpath/gnu/java/awt/peer/swing/SwingFramePeer.java \ classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java \ +classpath/gnu/java/awt/peer/swing/SwingListPeer.java \ classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java \ classpath/gnu/java/awt/peer/swing/SwingMenuItemPeer.java \ classpath/gnu/java/awt/peer/swing/SwingMenuPeer.java \ classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java \ +classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java \ classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java \ classpath/gnu/java/awt/peer/swing/SwingToolkit.java \ classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java gnu-java-awt-peer-swing.lo: $(gnu_java_awt_peer_swing_source_files) - @find classpath/lib/gnu/java/awt/peer/swing -name '*.class' > gnu-java-awt-peer-swing.list + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/swing -name '*.class' > gnu-java-awt-peer-swing.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-swing.lo @gnu-java-awt-peer-swing.list @rm -f gnu-java-awt-peer-swing.list +gnu_java_awt_peer_x_source_files = \ +classpath/gnu/java/awt/peer/x/GLGraphics.java \ +classpath/gnu/java/awt/peer/x/ImageConverter.java \ +classpath/gnu/java/awt/peer/x/KeyboardMapping.java \ +classpath/gnu/java/awt/peer/x/XDialogPeer.java \ +classpath/gnu/java/awt/peer/x/XEventPump.java \ +classpath/gnu/java/awt/peer/x/XFontPeer.java \ +classpath/gnu/java/awt/peer/x/XFontPeer2.java \ +classpath/gnu/java/awt/peer/x/XFramePeer.java \ +classpath/gnu/java/awt/peer/x/XGraphics.java \ +classpath/gnu/java/awt/peer/x/XGraphics2D.java \ +classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \ +classpath/gnu/java/awt/peer/x/XGraphicsDevice.java \ +classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java \ +classpath/gnu/java/awt/peer/x/XImage.java \ +classpath/gnu/java/awt/peer/x/XLightweightPeer.java \ +classpath/gnu/java/awt/peer/x/XToolkit.java \ +classpath/gnu/java/awt/peer/x/XWindowPeer.java + +gnu-java-awt-peer-x.lo: $(gnu_java_awt_peer_x_source_files) + @find $(srcdir)/classpath/lib/gnu/java/awt/peer/x -name '*.class' > gnu-java-awt-peer-x.list + $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-x.lo @gnu-java-awt-peer-x.list + @rm -f gnu-java-awt-peer-x.list + gnu_java_awt_print_source_files = \ classpath/gnu/java/awt/print/JavaPrinterGraphics.java \ classpath/gnu/java/awt/print/JavaPrinterJob.java \ @@ -1004,11 +970,7 @@ gnu_java_awt_print_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h gnu/java/awt/print.list: $(gnu_java_awt_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_awt_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/awt/print.list + echo $(srcdir)/classpath/lib/gnu/java/awt/print/*.class > gnu/java/awt/print.list -include gnu/java/awt/print.deps @@ -1098,7 +1060,7 @@ classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java \ classpath/gnu/java/beans/encoder/elements/StringReference.java gnu-java-beans.lo: $(gnu_java_beans_source_files) - @find classpath/lib/gnu/java/beans -name '*.class' > gnu-java-beans.list + @find $(srcdir)/classpath/lib/gnu/java/beans -name '*.class' > gnu-java-beans.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-beans.lo @gnu-java-beans.list @rm -f gnu-java-beans.list @@ -1107,6 +1069,7 @@ classpath/gnu/java/io/ASN1ParsingException.java \ classpath/gnu/java/io/Base64InputStream.java \ classpath/gnu/java/io/ClassLoaderObjectInputStream.java \ classpath/gnu/java/io/NullOutputStream.java \ +classpath/gnu/java/io/ObjectIdentityMap2Int.java \ classpath/gnu/java/io/ObjectIdentityWrapper.java \ classpath/gnu/java/io/PlatformHelper.java @@ -1114,11 +1077,7 @@ gnu_java_io_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_ gnu/java/io.list: $(gnu_java_io_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_io_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/io.list + echo $(srcdir)/classpath/lib/gnu/java/io/*.class > gnu/java/io.list -include gnu/java/io.deps @@ -1135,11 +1094,7 @@ gnu_java_lang_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gn gnu/java/lang.list: $(gnu_java_lang_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_lang_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/lang.list + echo $(srcdir)/classpath/lib/gnu/java/lang/*.class > gnu/java/lang.list -include gnu/java/lang.deps @@ -1168,11 +1123,7 @@ gnu_java_lang_management_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/java/lang/management.list: $(gnu_java_lang_management_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_lang_management_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/lang/management.list + echo $(srcdir)/classpath/lib/gnu/java/lang/management/*.class > gnu/java/lang/management.list -include gnu/java/lang/management.deps @@ -1189,11 +1140,7 @@ gnu_java_lang_reflect_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/java/lang/reflect.list: $(gnu_java_lang_reflect_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_lang_reflect_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/lang/reflect.list + echo $(srcdir)/classpath/lib/gnu/java/lang/reflect/*.class > gnu/java/lang/reflect.list -include gnu/java/lang/reflect.deps @@ -1345,11 +1292,7 @@ gnu_java_locale_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$( gnu/java/locale.list: $(gnu_java_locale_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_locale_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/locale.list + echo $(srcdir)/classpath/lib/gnu/java/locale/*.class > gnu/java/locale.list -include gnu/java/locale.deps @@ -1361,11 +1304,7 @@ gnu_java_math_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gn gnu/java/math.list: $(gnu_java_math_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_math_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/math.list + echo $(srcdir)/classpath/lib/gnu/java/math/*.class > gnu/java/math.list -include gnu/java/math.deps @@ -1375,6 +1314,7 @@ classpath/gnu/java/net/BASE64.java \ classpath/gnu/java/net/CRLFInputStream.java \ classpath/gnu/java/net/CRLFOutputStream.java \ classpath/gnu/java/net/DefaultContentHandlerFactory.java \ +classpath/gnu/java/net/DefaultProxySelector.java \ classpath/gnu/java/net/EmptyX509TrustManager.java \ classpath/gnu/java/net/GetLocalHostAction.java \ classpath/gnu/java/net/HeaderFieldHelper.java \ @@ -1388,11 +1328,7 @@ gnu_java_net_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu gnu/java/net.list: $(gnu_java_net_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net.list + echo $(srcdir)/classpath/lib/gnu/java/net/*.class > gnu/java/net.list -include gnu/java/net.deps @@ -1412,11 +1348,7 @@ gnu_java_net_loader_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. gnu/java/net/loader.list: $(gnu_java_net_loader_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_loader_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/loader.list + echo $(srcdir)/classpath/lib/gnu/java/net/loader/*.class > gnu/java/net/loader.list -include gnu/java/net/loader.deps @@ -1431,11 +1363,7 @@ gnu_java_net_local_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h gnu/java/net/local.list: $(gnu_java_net_local_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_local_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/local.list + echo $(srcdir)/classpath/lib/gnu/java/net/local/*.class > gnu/java/net/local.list -include gnu/java/net/local.deps @@ -1449,11 +1377,7 @@ gnu_java_net_protocol_core_header_files = $(patsubst %.java,%.h,$(gnu_java_net_p gnu/java/net/protocol/core.list: $(gnu_java_net_protocol_core_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_core_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/core.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/core/*.class > gnu/java/net/protocol/core.list -include gnu/java/net/protocol/core.deps @@ -1466,11 +1390,7 @@ gnu_java_net_protocol_file_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/java/net/protocol/file.list: $(gnu_java_net_protocol_file_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_file_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/file.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/file/*.class > gnu/java/net/protocol/file.list -include gnu/java/net/protocol/file.deps @@ -1497,11 +1417,7 @@ gnu_java_net_protocol_ftp_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/java/net/protocol/ftp.list: $(gnu_java_net_protocol_ftp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_ftp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/ftp.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/ftp/*.class > gnu/java/net/protocol/ftp.list -include gnu/java/net/protocol/ftp.deps @@ -1514,11 +1430,7 @@ gnu_java_net_protocol_gcjlib_header_files = $(patsubst %.java,%.h,$(gnu_java_net gnu/java/net/protocol/gcjlib.list: $(gnu_java_net_protocol_gcjlib_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_gcjlib_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/gcjlib.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/gcjlib/*.class > gnu/java/net/protocol/gcjlib.list -include gnu/java/net/protocol/gcjlib.deps @@ -1546,11 +1458,7 @@ gnu_java_net_protocol_http_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/java/net/protocol/http.list: $(gnu_java_net_protocol_http_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_http_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/http.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/http/*.class > gnu/java/net/protocol/http.list -include gnu/java/net/protocol/http.deps @@ -1562,11 +1470,7 @@ gnu_java_net_protocol_https_header_files = $(patsubst classpath/%,%,$(patsubst % gnu/java/net/protocol/https.list: $(gnu_java_net_protocol_https_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_https_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/https.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/https/*.class > gnu/java/net/protocol/https.list -include gnu/java/net/protocol/https.deps @@ -1579,11 +1483,7 @@ gnu_java_net_protocol_jar_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/java/net/protocol/jar.list: $(gnu_java_net_protocol_jar_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_net_protocol_jar_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/net/protocol/jar.list + echo $(srcdir)/classpath/lib/gnu/java/net/protocol/jar/*.class > gnu/java/net/protocol/jar.list -include gnu/java/net/protocol/jar.deps @@ -1595,23 +1495,24 @@ classpath/gnu/java/nio/ChannelReader.java \ classpath/gnu/java/nio/ChannelWriter.java \ gnu/java/nio/DatagramChannelImpl.java \ gnu/java/nio/DatagramChannelSelectionKey.java \ -classpath/gnu/java/nio/FileLockImpl.java \ +gnu/java/nio/FileLockImpl.java \ classpath/gnu/java/nio/InputStreamChannel.java \ classpath/gnu/java/nio/NIOConstants.java \ classpath/gnu/java/nio/NIODatagramSocket.java \ gnu/java/nio/NIOServerSocket.java \ -classpath/gnu/java/nio/NIOSocket.java \ +gnu/java/nio/NIOSocket.java \ classpath/gnu/java/nio/OutputStreamChannel.java \ -classpath/gnu/java/nio/PipeImpl.java \ +gnu/java/nio/PipeImpl.java \ classpath/gnu/java/nio/SelectionKeyImpl.java \ classpath/gnu/java/nio/SelectorImpl.java \ -classpath/gnu/java/nio/SelectorProviderImpl.java \ +gnu/java/nio/SelectorProviderImpl.java \ gnu/java/nio/ServerSocketChannelImpl.java \ gnu/java/nio/ServerSocketChannelSelectionKey.java \ gnu/java/nio/SocketChannelImpl.java \ gnu/java/nio/SocketChannelSelectionKey.java \ -classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java \ +gnu/java/nio/SocketChannelSelectionKeyImpl.java \ gnu/java/nio/VMChannel.java \ +classpath/gnu/java/nio/VMChannelOwner.java \ gnu/java/nio/VMPipe.java \ gnu/java/nio/VMSelector.java @@ -1619,11 +1520,7 @@ gnu_java_nio_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu gnu/java/nio.list: $(gnu_java_nio_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_nio_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/nio.list + echo $(srcdir)/classpath/lib/gnu/java/nio/*.class > gnu/java/nio.list -include gnu/java/nio.deps @@ -1635,11 +1532,7 @@ gnu_java_nio_channels_header_files = $(patsubst %.java,%.h,$(gnu_java_nio_channe gnu/java/nio/channels.list: $(gnu_java_nio_channels_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_nio_channels_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/nio/channels.list + echo $(srcdir)/classpath/lib/gnu/java/nio/channels/*.class > gnu/java/nio/channels.list -include gnu/java/nio/channels.deps @@ -1711,11 +1604,7 @@ gnu_java_nio_charset_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% gnu/java/nio/charset.list: $(gnu_java_nio_charset_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_nio_charset_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/nio/charset.list + echo $(srcdir)/classpath/lib/gnu/java/nio/charset/*.class > gnu/java/nio/charset.list -include gnu/java/nio/charset.deps @@ -1728,11 +1617,7 @@ gnu_java_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu gnu/java/rmi.list: $(gnu_java_rmi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/*.class > gnu/java/rmi.list -include gnu/java/rmi.deps @@ -1747,11 +1632,7 @@ gnu_java_rmi_activation_header_files = $(patsubst classpath/%,%,$(patsubst %.jav gnu/java/rmi/activation.list: $(gnu_java_rmi_activation_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_activation_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/activation.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/activation/*.class > gnu/java/rmi/activation.list -include gnu/java/rmi/activation.deps @@ -1766,11 +1647,7 @@ gnu_java_rmi_dgc_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ gnu/java/rmi/dgc.list: $(gnu_java_rmi_dgc_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_dgc_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/dgc.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/dgc/*.class > gnu/java/rmi/dgc.list -include gnu/java/rmi/dgc.deps @@ -1784,38 +1661,11 @@ gnu_java_rmi_registry_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/java/rmi/registry.list: $(gnu_java_rmi_registry_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_registry_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/registry.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/registry/*.class > gnu/java/rmi/registry.list -include gnu/java/rmi/registry.deps -gnu_java_rmi_rmic_source_files = \ -gnu/java/rmi/rmic/Compile_gcj.java \ -gnu/java/rmi/rmic/Compile_jikes.java \ -gnu/java/rmi/rmic/Compile_kjc.java \ -gnu/java/rmi/rmic/Compiler.java \ -gnu/java/rmi/rmic/CompilerProcess.java \ -gnu/java/rmi/rmic/RMIC.java \ -gnu/java/rmi/rmic/RMICException.java \ -gnu/java/rmi/rmic/TabbedWriter.java - -gnu_java_rmi_rmic_header_files = $(patsubst %.java,%.h,$(gnu_java_rmi_rmic_source_files)) - -gnu/java/rmi/rmic.list: $(gnu_java_rmi_rmic_source_files) - @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_rmic_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/rmic.list - --include gnu/java/rmi/rmic.deps - - gnu_java_rmi_server_source_files = \ classpath/gnu/java/rmi/server/ActivatableRef.java \ classpath/gnu/java/rmi/server/ActivatableServerRef.java \ @@ -1841,11 +1691,7 @@ gnu_java_rmi_server_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. gnu/java/rmi/server.list: $(gnu_java_rmi_server_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_rmi_server_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/rmi/server.list + echo $(srcdir)/classpath/lib/gnu/java/rmi/server/*.class > gnu/java/rmi/server.list -include gnu/java/rmi/server.deps @@ -1856,17 +1702,14 @@ classpath/gnu/java/security/Engine.java \ classpath/gnu/java/security/OID.java \ classpath/gnu/java/security/PolicyFile.java \ classpath/gnu/java/security/Properties.java \ -classpath/gnu/java/security/Registry.java +classpath/gnu/java/security/Registry.java \ +classpath/gnu/java/security/Requires.java gnu_java_security_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_security_source_files))) gnu/java/security.list: $(gnu_java_security_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security.list + echo $(srcdir)/classpath/lib/gnu/java/security/*.class > gnu/java/security.list -include gnu/java/security.deps @@ -1880,11 +1723,7 @@ gnu_java_security_action_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/java/security/action.list: $(gnu_java_security_action_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_action_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/action.list + echo $(srcdir)/classpath/lib/gnu/java/security/action/*.class > gnu/java/security/action.list -include gnu/java/security/action.deps @@ -1899,11 +1738,7 @@ gnu_java_security_ber_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/java/security/ber.list: $(gnu_java_security_ber_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_ber_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/ber.list + echo $(srcdir)/classpath/lib/gnu/java/security/ber/*.class > gnu/java/security/ber.list -include gnu/java/security/ber.deps @@ -1920,11 +1755,7 @@ gnu_java_security_der_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/java/security/der.list: $(gnu_java_security_der_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_der_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/der.list + echo $(srcdir)/classpath/lib/gnu/java/security/der/*.class > gnu/java/security/der.list -include gnu/java/security/der.deps @@ -1950,11 +1781,7 @@ gnu_java_security_hash_header_files = $(patsubst classpath/%,%,$(patsubst %.java gnu/java/security/hash.list: $(gnu_java_security_hash_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_hash_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/hash.list + echo $(srcdir)/classpath/lib/gnu/java/security/hash/*.class > gnu/java/security/hash.list -include gnu/java/security/hash.deps @@ -1978,11 +1805,7 @@ gnu_java_security_jce_hash_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/java/security/jce/hash.list: $(gnu_java_security_jce_hash_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_jce_hash_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/jce/hash.list + echo $(srcdir)/classpath/lib/gnu/java/security/jce/hash/*.class > gnu/java/security/jce/hash.list -include gnu/java/security/jce/hash.deps @@ -2006,11 +1829,7 @@ gnu_java_security_jce_prng_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/java/security/jce/prng.list: $(gnu_java_security_jce_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_jce_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/jce/prng.list + echo $(srcdir)/classpath/lib/gnu/java/security/jce/prng/*.class > gnu/java/security/jce/prng.list -include gnu/java/security/jce/prng.deps @@ -2039,11 +1858,7 @@ gnu_java_security_jce_sig_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/java/security/jce/sig.list: $(gnu_java_security_jce_sig_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_jce_sig_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/jce/sig.list + echo $(srcdir)/classpath/lib/gnu/java/security/jce/sig/*.class > gnu/java/security/jce/sig.list -include gnu/java/security/jce/sig.deps @@ -2058,11 +1873,7 @@ gnu_java_security_key_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/java/security/key.list: $(gnu_java_security_key_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_key_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/key.list + echo $(srcdir)/classpath/lib/gnu/java/security/key/*.class > gnu/java/security/key.list -include gnu/java/security/key.deps @@ -2081,11 +1892,7 @@ gnu_java_security_key_dss_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/java/security/key/dss.list: $(gnu_java_security_key_dss_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_key_dss_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/key/dss.list + echo $(srcdir)/classpath/lib/gnu/java/security/key/dss/*.class > gnu/java/security/key/dss.list -include gnu/java/security/key/dss.deps @@ -2103,11 +1910,7 @@ gnu_java_security_key_rsa_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/java/security/key/rsa.list: $(gnu_java_security_key_rsa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_key_rsa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/key/rsa.list + echo $(srcdir)/classpath/lib/gnu/java/security/key/rsa/*.class > gnu/java/security/key/rsa.list -include gnu/java/security/key/rsa.deps @@ -2121,11 +1924,7 @@ gnu_java_security_pkcs_header_files = $(patsubst classpath/%,%,$(patsubst %.java gnu/java/security/pkcs.list: $(gnu_java_security_pkcs_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_pkcs_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/pkcs.list + echo $(srcdir)/classpath/lib/gnu/java/security/pkcs/*.class > gnu/java/security/pkcs.list -include gnu/java/security/pkcs.deps @@ -2144,11 +1943,7 @@ gnu_java_security_prng_header_files = $(patsubst classpath/%,%,$(patsubst %.java gnu/java/security/prng.list: $(gnu_java_security_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/prng.list + echo $(srcdir)/classpath/lib/gnu/java/security/prng/*.class > gnu/java/security/prng.list -include gnu/java/security/prng.deps @@ -2164,11 +1959,7 @@ gnu_java_security_provider_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/java/security/provider.list: $(gnu_java_security_provider_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_provider_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/provider.list + echo $(srcdir)/classpath/lib/gnu/java/security/provider/*.class > gnu/java/security/provider.list -include gnu/java/security/provider.deps @@ -2184,11 +1975,7 @@ gnu_java_security_sig_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/java/security/sig.list: $(gnu_java_security_sig_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_sig_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/sig.list + echo $(srcdir)/classpath/lib/gnu/java/security/sig/*.class > gnu/java/security/sig.list -include gnu/java/security/sig.deps @@ -2202,11 +1989,7 @@ gnu_java_security_sig_dss_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/java/security/sig/dss.list: $(gnu_java_security_sig_dss_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_sig_dss_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/sig/dss.list + echo $(srcdir)/classpath/lib/gnu/java/security/sig/dss/*.class > gnu/java/security/sig/dss.list -include gnu/java/security/sig/dss.deps @@ -2227,11 +2010,7 @@ gnu_java_security_sig_rsa_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/java/security/sig/rsa.list: $(gnu_java_security_sig_rsa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_sig_rsa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/sig/rsa.list + echo $(srcdir)/classpath/lib/gnu/java/security/sig/rsa/*.class > gnu/java/security/sig/rsa.list -include gnu/java/security/sig/rsa.deps @@ -2239,6 +2018,7 @@ gnu/java/security/sig/rsa.list: $(gnu_java_security_sig_rsa_source_files) gnu_java_security_util_source_files = \ classpath/gnu/java/security/util/Base64.java \ classpath/gnu/java/security/util/ByteArray.java \ +classpath/gnu/java/security/util/ByteBufferOutputStream.java \ classpath/gnu/java/security/util/DerUtil.java \ classpath/gnu/java/security/util/ExpirableObject.java \ classpath/gnu/java/security/util/FormatUtil.java \ @@ -2253,11 +2033,7 @@ gnu_java_security_util_header_files = $(patsubst classpath/%,%,$(patsubst %.java gnu/java/security/util.list: $(gnu_java_security_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/util.list + echo $(srcdir)/classpath/lib/gnu/java/security/util/*.class > gnu/java/security/util.list -include gnu/java/security/util.deps @@ -2278,11 +2054,7 @@ gnu_java_security_x509_header_files = $(patsubst classpath/%,%,$(patsubst %.java gnu/java/security/x509.list: $(gnu_java_security_x509_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_x509_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/x509.list + echo $(srcdir)/classpath/lib/gnu/java/security/x509/*.class > gnu/java/security/x509.list -include gnu/java/security/x509.deps @@ -2308,11 +2080,7 @@ gnu_java_security_x509_ext_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/java/security/x509/ext.list: $(gnu_java_security_x509_ext_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_security_x509_ext_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/security/x509/ext.list + echo $(srcdir)/classpath/lib/gnu/java/security/x509/ext/*.class > gnu/java/security/x509/ext.list -include gnu/java/security/x509/ext.deps @@ -2332,11 +2100,7 @@ gnu_java_text_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gn gnu/java/text.list: $(gnu_java_text_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_text_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/text.list + echo $(srcdir)/classpath/lib/gnu/java/text/*.class > gnu/java/text.list -include gnu/java/text.deps @@ -2350,11 +2114,7 @@ gnu_java_util_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gn gnu/java/util.list: $(gnu_java_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util.list + echo $(srcdir)/classpath/lib/gnu/java/util/*.class > gnu/java/util.list -include gnu/java/util.deps @@ -2366,11 +2126,7 @@ gnu_java_util_jar_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, gnu/java/util/jar.list: $(gnu_java_util_jar_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_jar_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util/jar.list + echo $(srcdir)/classpath/lib/gnu/java/util/jar/*.class > gnu/java/util/jar.list -include gnu/java/util/jar.deps @@ -2390,11 +2146,7 @@ gnu_java_util_prefs_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. gnu/java/util/prefs.list: $(gnu_java_util_prefs_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_prefs_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util/prefs.list + echo $(srcdir)/classpath/lib/gnu/java/util/prefs/*.class > gnu/java/util/prefs.list -include gnu/java/util/prefs.deps @@ -2403,7 +2155,7 @@ gnu_java_util_prefs_gconf_source_files = \ classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java gnu-java-util-prefs-gconf.lo: $(gnu_java_util_prefs_gconf_source_files) - @find classpath/lib/gnu/java/util/prefs/gconf -name '*.class' > gnu-java-util-prefs-gconf.list + @find $(srcdir)/classpath/lib/gnu/java/util/prefs/gconf -name '*.class' > gnu-java-util-prefs-gconf.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-util-prefs-gconf.lo @gnu-java-util-prefs-gconf.list @rm -f gnu-java-util-prefs-gconf.list @@ -2444,11 +2196,7 @@ gnu_java_util_regex_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. gnu/java/util/regex.list: $(gnu_java_util_regex_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_java_util_regex_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/java/util/regex.list + echo $(srcdir)/classpath/lib/gnu/java/util/regex/*.class > gnu/java/util/regex.list -include gnu/java/util/regex.deps @@ -2460,11 +2208,7 @@ gnu_javax_crypto_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ gnu/javax/crypto.list: $(gnu_javax_crypto_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/*.class > gnu/javax/crypto.list -include gnu/javax/crypto.deps @@ -2488,11 +2232,7 @@ gnu_javax_crypto_assembly_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/javax/crypto/assembly.list: $(gnu_javax_crypto_assembly_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_assembly_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/assembly.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/assembly/*.class > gnu/javax/crypto/assembly.list -include gnu/javax/crypto/assembly.deps @@ -2519,11 +2259,7 @@ gnu_javax_crypto_cipher_header_files = $(patsubst classpath/%,%,$(patsubst %.jav gnu/javax/crypto/cipher.list: $(gnu_javax_crypto_cipher_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_cipher_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/cipher.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/cipher/*.class > gnu/javax/crypto/cipher.list -include gnu/javax/crypto/cipher.deps @@ -2538,11 +2274,7 @@ gnu_javax_crypto_jce_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% gnu/javax/crypto/jce.list: $(gnu_javax_crypto_jce_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/*.class > gnu/javax/crypto/jce.list -include gnu/javax/crypto/jce.deps @@ -2574,11 +2306,7 @@ gnu_javax_crypto_jce_cipher_header_files = $(patsubst classpath/%,%,$(patsubst % gnu/javax/crypto/jce/cipher.list: $(gnu_javax_crypto_jce_cipher_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_cipher_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/cipher.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/cipher/*.class > gnu/javax/crypto/jce/cipher.list -include gnu/javax/crypto/jce/cipher.deps @@ -2611,11 +2339,7 @@ gnu_javax_crypto_jce_key_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/javax/crypto/jce/key.list: $(gnu_javax_crypto_jce_key_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_key_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/key.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/key/*.class > gnu/javax/crypto/jce/key.list -include gnu/javax/crypto/jce/key.deps @@ -2627,11 +2351,7 @@ gnu_javax_crypto_jce_keyring_header_files = $(patsubst classpath/%,%,$(patsubst gnu/javax/crypto/jce/keyring.list: $(gnu_javax_crypto_jce_keyring_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_keyring_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/keyring.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/keyring/*.class > gnu/javax/crypto/jce/keyring.list -include gnu/javax/crypto/jce/keyring.deps @@ -2669,11 +2389,7 @@ gnu_javax_crypto_jce_mac_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/javax/crypto/jce/mac.list: $(gnu_javax_crypto_jce_mac_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_mac_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/mac.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/mac/*.class > gnu/javax/crypto/jce/mac.list -include gnu/javax/crypto/jce/mac.deps @@ -2688,11 +2404,7 @@ gnu_javax_crypto_jce_params_header_files = $(patsubst classpath/%,%,$(patsubst % gnu/javax/crypto/jce/params.list: $(gnu_javax_crypto_jce_params_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_params_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/params.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/params/*.class > gnu/javax/crypto/jce/params.list -include gnu/javax/crypto/jce/params.deps @@ -2708,11 +2420,7 @@ gnu_javax_crypto_jce_prng_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/javax/crypto/jce/prng.list: $(gnu_javax_crypto_jce_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/prng.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/prng/*.class > gnu/javax/crypto/jce/prng.list -include gnu/javax/crypto/jce/prng.deps @@ -2727,11 +2435,7 @@ gnu_javax_crypto_jce_sig_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/javax/crypto/jce/sig.list: $(gnu_javax_crypto_jce_sig_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_sig_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/sig.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/sig/*.class > gnu/javax/crypto/jce/sig.list -include gnu/javax/crypto/jce/sig.deps @@ -2745,17 +2449,14 @@ gnu_javax_crypto_jce_spec_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/javax/crypto/jce/spec.list: $(gnu_javax_crypto_jce_spec_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_jce_spec_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/jce/spec.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/jce/spec/*.class > gnu/javax/crypto/jce/spec.list -include gnu/javax/crypto/jce/spec.deps gnu_javax_crypto_key_source_files = \ classpath/gnu/javax/crypto/key/BaseKeyAgreementParty.java \ +classpath/gnu/javax/crypto/key/GnuPBEKey.java \ classpath/gnu/javax/crypto/key/GnuSecretKey.java \ classpath/gnu/javax/crypto/key/IKeyAgreementParty.java \ classpath/gnu/javax/crypto/key/IncomingMessage.java \ @@ -2767,11 +2468,7 @@ gnu_javax_crypto_key_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% gnu/javax/crypto/key.list: $(gnu_javax_crypto_key_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_key_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/key.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/key/*.class > gnu/javax/crypto/key.list -include gnu/javax/crypto/key.deps @@ -2796,11 +2493,7 @@ gnu_javax_crypto_key_dh_header_files = $(patsubst classpath/%,%,$(patsubst %.jav gnu/javax/crypto/key/dh.list: $(gnu_javax_crypto_key_dh_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_key_dh_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/key/dh.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/key/dh/*.class > gnu/javax/crypto/key/dh.list -include gnu/javax/crypto/key/dh.deps @@ -2824,11 +2517,7 @@ gnu_javax_crypto_key_srp6_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/javax/crypto/key/srp6.list: $(gnu_javax_crypto_key_srp6_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_key_srp6_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/key/srp6.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/key/srp6/*.class > gnu/javax/crypto/key/srp6.list -include gnu/javax/crypto/key/srp6.deps @@ -2863,11 +2552,7 @@ gnu_javax_crypto_keyring_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/javax/crypto/keyring.list: $(gnu_javax_crypto_keyring_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_keyring_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/keyring.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/keyring/*.class > gnu/javax/crypto/keyring.list -include gnu/javax/crypto/keyring.deps @@ -2884,11 +2569,7 @@ gnu_javax_crypto_kwa_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% gnu/javax/crypto/kwa.list: $(gnu_javax_crypto_kwa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_kwa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/kwa.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/kwa/*.class > gnu/javax/crypto/kwa.list -include gnu/javax/crypto/kwa.deps @@ -2910,11 +2591,7 @@ gnu_javax_crypto_mac_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% gnu/javax/crypto/mac.list: $(gnu_javax_crypto_mac_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_mac_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/mac.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/mac/*.class > gnu/javax/crypto/mac.list -include gnu/javax/crypto/mac.deps @@ -2936,11 +2613,7 @@ gnu_javax_crypto_mode_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/javax/crypto/mode.list: $(gnu_javax_crypto_mode_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_mode_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/mode.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/mode/*.class > gnu/javax/crypto/mode.list -include gnu/javax/crypto/mode.deps @@ -2961,11 +2634,7 @@ gnu_javax_crypto_pad_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% gnu/javax/crypto/pad.list: $(gnu_javax_crypto_pad_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_pad_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/pad.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/pad/*.class > gnu/javax/crypto/pad.list -include gnu/javax/crypto/pad.deps @@ -2984,11 +2653,7 @@ gnu_javax_crypto_prng_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/javax/crypto/prng.list: $(gnu_javax_crypto_prng_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_prng_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/prng.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/prng/*.class > gnu/javax/crypto/prng.list -include gnu/javax/crypto/prng.deps @@ -3019,11 +2684,7 @@ gnu_javax_crypto_sasl_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/javax/crypto/sasl.list: $(gnu_javax_crypto_sasl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/*.class > gnu/javax/crypto/sasl.list -include gnu/javax/crypto/sasl.deps @@ -3037,11 +2698,7 @@ gnu_javax_crypto_sasl_anonymous_header_files = $(patsubst classpath/%,%,$(patsub gnu/javax/crypto/sasl/anonymous.list: $(gnu_javax_crypto_sasl_anonymous_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_anonymous_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/anonymous.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/anonymous/*.class > gnu/javax/crypto/sasl/anonymous.list -include gnu/javax/crypto/sasl/anonymous.deps @@ -3058,11 +2715,7 @@ gnu_javax_crypto_sasl_crammd5_header_files = $(patsubst classpath/%,%,$(patsubst gnu/javax/crypto/sasl/crammd5.list: $(gnu_javax_crypto_sasl_crammd5_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_crammd5_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/crammd5.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/crammd5/*.class > gnu/javax/crypto/sasl/crammd5.list -include gnu/javax/crypto/sasl/crammd5.deps @@ -3078,11 +2731,7 @@ gnu_javax_crypto_sasl_plain_header_files = $(patsubst classpath/%,%,$(patsubst % gnu/javax/crypto/sasl/plain.list: $(gnu_javax_crypto_sasl_plain_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_plain_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/plain.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/plain/*.class > gnu/javax/crypto/sasl/plain.list -include gnu/javax/crypto/sasl/plain.deps @@ -3106,11 +2755,7 @@ gnu_javax_crypto_sasl_srp_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/javax/crypto/sasl/srp.list: $(gnu_javax_crypto_sasl_srp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_crypto_sasl_srp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/crypto/sasl/srp.list + echo $(srcdir)/classpath/lib/gnu/javax/crypto/sasl/srp/*.class > gnu/javax/crypto/sasl/srp.list -include gnu/javax/crypto/sasl/srp.deps @@ -3122,11 +2767,7 @@ gnu_javax_imageio_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, gnu/javax/imageio.list: $(gnu_javax_imageio_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/*.class > gnu/javax/imageio.list -include gnu/javax/imageio.deps @@ -3162,11 +2803,7 @@ gnu_javax_imageio_bmp_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/javax/imageio/bmp.list: $(gnu_javax_imageio_bmp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_bmp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/bmp.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/bmp/*.class > gnu/javax/imageio/bmp.list -include gnu/javax/imageio/bmp.deps @@ -3180,11 +2817,7 @@ gnu_javax_imageio_gif_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/javax/imageio/gif.list: $(gnu_javax_imageio_gif_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_gif_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/gif.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/gif/*.class > gnu/javax/imageio/gif.list -include gnu/javax/imageio/gif.deps @@ -3209,11 +2842,7 @@ gnu_javax_imageio_jpeg_header_files = $(patsubst classpath/%,%,$(patsubst %.java gnu/javax/imageio/jpeg.list: $(gnu_javax_imageio_jpeg_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_jpeg_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/jpeg.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/jpeg/*.class > gnu/javax/imageio/jpeg.list -include gnu/javax/imageio/jpeg.deps @@ -3239,109 +2868,207 @@ gnu_javax_imageio_png_header_files = $(patsubst classpath/%,%,$(patsubst %.java, gnu/javax/imageio/png.list: $(gnu_javax_imageio_png_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_imageio_png_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/imageio/png.list + echo $(srcdir)/classpath/lib/gnu/javax/imageio/png/*.class > gnu/javax/imageio/png.list -include gnu/javax/imageio/png.deps +gnu_javax_management_source_files = \ +classpath/gnu/javax/management/Server.java + +gnu_javax_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_management_source_files))) + +gnu/javax/management.list: $(gnu_javax_management_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/management/*.class > gnu/javax/management.list + +-include gnu/javax/management.deps + + +gnu_javax_naming_giop_source_files = \ +classpath/gnu/javax/naming/giop/ContextContinuation.java \ +classpath/gnu/javax/naming/giop/CorbalocParser.java \ +classpath/gnu/javax/naming/giop/GiopNamingEnumeration.java \ +classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java \ +classpath/gnu/javax/naming/giop/GiopNamingServiceURLContext.java \ +classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java \ +classpath/gnu/javax/naming/giop/ListEnumeration.java + +gnu_javax_naming_giop_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_giop_source_files))) + +gnu/javax/naming/giop.list: $(gnu_javax_naming_giop_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/giop/*.class > gnu/javax/naming/giop.list + +-include gnu/javax/naming/giop.deps + + +gnu_javax_naming_ictxImpl_trans_source_files = \ +classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java + +gnu_javax_naming_ictxImpl_trans_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_ictxImpl_trans_source_files))) + +gnu/javax/naming/ictxImpl/trans.list: $(gnu_javax_naming_ictxImpl_trans_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/ictxImpl/trans/*.class > gnu/javax/naming/ictxImpl/trans.list + +-include gnu/javax/naming/ictxImpl/trans.deps + + +gnu_javax_naming_jndi_url_corbaname_source_files = \ +classpath/gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java + +gnu_javax_naming_jndi_url_corbaname_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_jndi_url_corbaname_source_files))) + +gnu/javax/naming/jndi/url/corbaname.list: $(gnu_javax_naming_jndi_url_corbaname_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/jndi/url/corbaname/*.class > gnu/javax/naming/jndi/url/corbaname.list + +-include gnu/javax/naming/jndi/url/corbaname.deps + + +gnu_javax_naming_jndi_url_rmi_source_files = \ +classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java \ +classpath/gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java \ +classpath/gnu/javax/naming/jndi/url/rmi/ListEnumeration.java \ +classpath/gnu/javax/naming/jndi/url/rmi/RmiContinuation.java \ +classpath/gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java \ +classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContext.java \ +classpath/gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java + +gnu_javax_naming_jndi_url_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_naming_jndi_url_rmi_source_files))) + +gnu/javax/naming/jndi/url/rmi.list: $(gnu_javax_naming_jndi_url_rmi_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/naming/jndi/url/rmi/*.class > gnu/javax/naming/jndi/url/rmi.list + +-include gnu/javax/naming/jndi/url/rmi.deps + + gnu_javax_net_ssl_source_files = \ +classpath/gnu/javax/net/ssl/AbstractSessionContext.java \ classpath/gnu/javax/net/ssl/Base64.java \ classpath/gnu/javax/net/ssl/EntropySource.java \ classpath/gnu/javax/net/ssl/NullManagerParameters.java \ +classpath/gnu/javax/net/ssl/PreSharedKeyManager.java \ +classpath/gnu/javax/net/ssl/PreSharedKeyManagerParameters.java \ classpath/gnu/javax/net/ssl/PrivateCredentials.java \ classpath/gnu/javax/net/ssl/SRPManagerParameters.java \ classpath/gnu/javax/net/ssl/SRPTrustManager.java \ +classpath/gnu/javax/net/ssl/SSLCipherSuite.java \ +classpath/gnu/javax/net/ssl/SSLProtocolVersion.java \ +classpath/gnu/javax/net/ssl/SSLRecordHandler.java \ +classpath/gnu/javax/net/ssl/Session.java \ +classpath/gnu/javax/net/ssl/SessionStoreException.java \ classpath/gnu/javax/net/ssl/StaticTrustAnchors.java gnu_javax_net_ssl_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_net_ssl_source_files))) gnu/javax/net/ssl.list: $(gnu_javax_net_ssl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_net_ssl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/net/ssl.list + echo $(srcdir)/classpath/lib/gnu/javax/net/ssl/*.class > gnu/javax/net/ssl.list -include gnu/javax/net/ssl.deps gnu_javax_net_ssl_provider_source_files = \ +classpath/gnu/javax/net/ssl/provider/AbstractHandshake.java \ classpath/gnu/javax/net/ssl/provider/Alert.java \ classpath/gnu/javax/net/ssl/provider/AlertException.java \ +classpath/gnu/javax/net/ssl/provider/Builder.java \ classpath/gnu/javax/net/ssl/provider/Certificate.java \ +classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java \ classpath/gnu/javax/net/ssl/provider/CertificateRequest.java \ +classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java \ +classpath/gnu/javax/net/ssl/provider/CertificateStatusRequest.java \ +classpath/gnu/javax/net/ssl/provider/CertificateStatusType.java \ classpath/gnu/javax/net/ssl/provider/CertificateType.java \ +classpath/gnu/javax/net/ssl/provider/CertificateURL.java \ classpath/gnu/javax/net/ssl/provider/CertificateVerify.java \ +classpath/gnu/javax/net/ssl/provider/CipherAlgorithm.java \ classpath/gnu/javax/net/ssl/provider/CipherSuite.java \ +classpath/gnu/javax/net/ssl/provider/CipherSuiteList.java \ +classpath/gnu/javax/net/ssl/provider/ClientCertificateTypeList.java \ +classpath/gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java \ +classpath/gnu/javax/net/ssl/provider/ClientHandshake.java \ classpath/gnu/javax/net/ssl/provider/ClientHello.java \ +classpath/gnu/javax/net/ssl/provider/ClientHelloBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ClientHelloV2.java \ classpath/gnu/javax/net/ssl/provider/ClientKeyExchange.java \ +classpath/gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java \ classpath/gnu/javax/net/ssl/provider/CompressionMethod.java \ +classpath/gnu/javax/net/ssl/provider/CompressionMethodList.java \ classpath/gnu/javax/net/ssl/provider/Constructed.java \ classpath/gnu/javax/net/ssl/provider/ContentType.java \ -classpath/gnu/javax/net/ssl/provider/Context.java \ +classpath/gnu/javax/net/ssl/provider/Debug.java \ +classpath/gnu/javax/net/ssl/provider/DelegatedTask.java \ classpath/gnu/javax/net/ssl/provider/DiffieHellman.java \ -classpath/gnu/javax/net/ssl/provider/DigestInputStream.java \ -classpath/gnu/javax/net/ssl/provider/DigestOutputStream.java \ -classpath/gnu/javax/net/ssl/provider/Enumerated.java \ +classpath/gnu/javax/net/ssl/provider/EmptyExchangeKeys.java \ +classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java \ +classpath/gnu/javax/net/ssl/provider/ExchangeKeys.java \ classpath/gnu/javax/net/ssl/provider/Extension.java \ -classpath/gnu/javax/net/ssl/provider/Extensions.java \ +classpath/gnu/javax/net/ssl/provider/ExtensionList.java \ classpath/gnu/javax/net/ssl/provider/Finished.java \ -classpath/gnu/javax/net/ssl/provider/GNUSecurityParameters.java \ classpath/gnu/javax/net/ssl/provider/Handshake.java \ -classpath/gnu/javax/net/ssl/provider/JCESecurityParameters.java \ -classpath/gnu/javax/net/ssl/provider/JDBCSessionContext.java \ +classpath/gnu/javax/net/ssl/provider/HelloRequest.java \ +classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java \ classpath/gnu/javax/net/ssl/provider/Jessie.java \ -classpath/gnu/javax/net/ssl/provider/JessieDHPrivateKey.java \ -classpath/gnu/javax/net/ssl/provider/JessieDHPublicKey.java \ -classpath/gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java \ -classpath/gnu/javax/net/ssl/provider/JessieRSAPublicKey.java \ -classpath/gnu/javax/net/ssl/provider/KeyPool.java \ +classpath/gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java \ +classpath/gnu/javax/net/ssl/provider/MacAlgorithm.java \ classpath/gnu/javax/net/ssl/provider/MacException.java \ -classpath/gnu/javax/net/ssl/provider/OverflowException.java \ +classpath/gnu/javax/net/ssl/provider/MaxFragmentLength.java \ +classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java \ +classpath/gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java \ classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java \ classpath/gnu/javax/net/ssl/provider/Random.java \ -classpath/gnu/javax/net/ssl/provider/RecordInput.java \ -classpath/gnu/javax/net/ssl/provider/RecordInputStream.java \ -classpath/gnu/javax/net/ssl/provider/RecordOutputStream.java \ -classpath/gnu/javax/net/ssl/provider/RecordingInputStream.java \ +classpath/gnu/javax/net/ssl/provider/Record.java \ classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java \ +classpath/gnu/javax/net/ssl/provider/SSLContextImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java \ classpath/gnu/javax/net/ssl/provider/SSLHMac.java \ -classpath/gnu/javax/net/ssl/provider/SSLRSASignature.java \ +classpath/gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java \ classpath/gnu/javax/net/ssl/provider/SSLRandom.java \ -classpath/gnu/javax/net/ssl/provider/SSLServerSocket.java \ -classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactory.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocket.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocketFactory.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocketInputStream.java \ -classpath/gnu/javax/net/ssl/provider/SSLSocketOutputStream.java \ -classpath/gnu/javax/net/ssl/provider/SecurityParameters.java \ +classpath/gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLServerSocketImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLSocketImpl.java \ +classpath/gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java \ +classpath/gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java \ +classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ServerDHParams.java \ +classpath/gnu/javax/net/ssl/provider/ServerHandshake.java \ classpath/gnu/javax/net/ssl/provider/ServerHello.java \ +classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java \ classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java \ -classpath/gnu/javax/net/ssl/provider/Session.java \ -classpath/gnu/javax/net/ssl/provider/SessionContext.java \ +classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java \ +classpath/gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java \ +classpath/gnu/javax/net/ssl/provider/ServerNameList.java \ +classpath/gnu/javax/net/ssl/provider/ServerPSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/ServerRSAParams.java \ +classpath/gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java \ +classpath/gnu/javax/net/ssl/provider/SessionImpl.java \ classpath/gnu/javax/net/ssl/provider/Signature.java \ -classpath/gnu/javax/net/ssl/provider/SynchronizedRandom.java \ +classpath/gnu/javax/net/ssl/provider/SignatureAlgorithm.java \ +classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java \ classpath/gnu/javax/net/ssl/provider/TLSHMac.java \ classpath/gnu/javax/net/ssl/provider/TLSRandom.java \ +classpath/gnu/javax/net/ssl/provider/TruncatedHMAC.java \ +classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java \ +classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java \ classpath/gnu/javax/net/ssl/provider/Util.java \ +classpath/gnu/javax/net/ssl/provider/X500PrincipalList.java \ classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java \ -classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java \ -classpath/gnu/javax/net/ssl/provider/XMLSessionContext.java +classpath/gnu/javax/net/ssl/provider/X509TrustManagerFactory.java gnu_javax_net_ssl_provider_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_net_ssl_provider_source_files))) gnu/javax/net/ssl/provider.list: $(gnu_javax_net_ssl_provider_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_net_ssl_provider_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/net/ssl/provider.list + echo $(srcdir)/classpath/lib/gnu/javax/net/ssl/provider/*.class > gnu/javax/net/ssl/provider.list -include gnu/javax/net/ssl/provider.deps @@ -3361,11 +3088,7 @@ gnu_javax_print_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$( gnu/javax/print.list: $(gnu_javax_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print.list + echo $(srcdir)/classpath/lib/gnu/javax/print/*.class > gnu/javax/print.list -include gnu/javax/print.deps @@ -3387,11 +3110,7 @@ gnu_javax_print_ipp_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. gnu/javax/print/ipp.list: $(gnu_javax_print_ipp_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/*.class > gnu/javax/print/ipp.list -include gnu/javax/print/ipp.deps @@ -3410,11 +3129,7 @@ gnu_javax_print_ipp_attribute_header_files = $(patsubst classpath/%,%,$(patsubst gnu/javax/print/ipp/attribute.list: $(gnu_javax_print_ipp_attribute_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/*.class > gnu/javax/print/ipp/attribute.list -include gnu/javax/print/ipp/attribute.deps @@ -3438,11 +3153,7 @@ gnu_javax_print_ipp_attribute_defaults_header_files = $(patsubst classpath/%,%,$ gnu/javax/print/ipp/attribute/defaults.list: $(gnu_javax_print_ipp_attribute_defaults_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_defaults_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/defaults.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/defaults/*.class > gnu/javax/print/ipp/attribute/defaults.list -include gnu/javax/print/ipp/attribute/defaults.deps @@ -3462,11 +3173,7 @@ gnu_javax_print_ipp_attribute_job_header_files = $(patsubst classpath/%,%,$(pats gnu/javax/print/ipp/attribute/job.list: $(gnu_javax_print_ipp_attribute_job_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_job_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/job.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/job/*.class > gnu/javax/print/ipp/attribute/job.list -include gnu/javax/print/ipp/attribute/job.deps @@ -3485,11 +3192,7 @@ gnu_javax_print_ipp_attribute_printer_header_files = $(patsubst classpath/%,%,$( gnu/javax/print/ipp/attribute/printer.list: $(gnu_javax_print_ipp_attribute_printer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_printer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/printer.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/printer/*.class > gnu/javax/print/ipp/attribute/printer.list -include gnu/javax/print/ipp/attribute/printer.deps @@ -3520,11 +3223,7 @@ gnu_javax_print_ipp_attribute_supported_header_files = $(patsubst classpath/%,%, gnu/javax/print/ipp/attribute/supported.list: $(gnu_javax_print_ipp_attribute_supported_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_print_ipp_attribute_supported_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/print/ipp/attribute/supported.list + echo $(srcdir)/classpath/lib/gnu/javax/print/ipp/attribute/supported/*.class > gnu/javax/print/ipp/attribute/supported.list -include gnu/javax/print/ipp/attribute/supported.deps @@ -3543,7 +3242,7 @@ classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java \ classpath/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java gnu-javax-rmi.lo: $(gnu_javax_rmi_source_files) - @find classpath/lib/gnu/javax/rmi -name '*.class' > gnu-javax-rmi.list + @find $(srcdir)/classpath/lib/gnu/javax/rmi -name '*.class' > gnu-javax-rmi.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-rmi.lo @gnu-javax-rmi.list @rm -f gnu-javax-rmi.list @@ -3554,11 +3253,7 @@ gnu_javax_security_auth_header_files = $(patsubst classpath/%,%,$(patsubst %.jav gnu/javax/security/auth.list: $(gnu_javax_security_auth_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_security_auth_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/security/auth.list + echo $(srcdir)/classpath/lib/gnu/javax/security/auth/*.class > gnu/javax/security/auth.list -include gnu/javax/security/auth.deps @@ -3566,6 +3261,7 @@ gnu/javax/security/auth.list: $(gnu_javax_security_auth_source_files) gnu_javax_security_auth_callback_source_files = \ classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java \ classpath/gnu/javax/security/auth/callback/AbstractCallbackHandler.java \ +classpath/gnu/javax/security/auth/callback/CertificateCallback.java \ classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java \ classpath/gnu/javax/security/auth/callback/DefaultCallbackHandler.java \ classpath/gnu/javax/security/auth/callback/GnuCallbacks.java \ @@ -3575,11 +3271,7 @@ gnu_javax_security_auth_callback_header_files = $(patsubst classpath/%,%,$(patsu gnu/javax/security/auth/callback.list: $(gnu_javax_security_auth_callback_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_security_auth_callback_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/security/auth/callback.list + echo $(srcdir)/classpath/lib/gnu/javax/security/auth/callback/*.class > gnu/javax/security/auth/callback.list -include gnu/javax/security/auth/callback.deps @@ -3593,11 +3285,7 @@ gnu_javax_security_auth_login_header_files = $(patsubst classpath/%,%,$(patsubst gnu/javax/security/auth/login.list: $(gnu_javax_security_auth_login_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_security_auth_login_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/security/auth/login.list + echo $(srcdir)/classpath/lib/gnu/javax/security/auth/login/*.class > gnu/javax/security/auth/login.list -include gnu/javax/security/auth/login.deps @@ -3617,7 +3305,7 @@ classpath/gnu/javax/sound/midi/file/MidiFileReader.java \ classpath/gnu/javax/sound/midi/file/MidiFileWriter.java gnu-javax-sound-midi.lo: $(gnu_javax_sound_midi_source_files) - @find classpath/lib/gnu/javax/sound/midi -name '*.class' > gnu-javax-sound-midi.list + @find $(srcdir)/classpath/lib/gnu/javax/sound/midi -name '*.class' > gnu-javax-sound-midi.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-sound-midi.lo @gnu-javax-sound-midi.list @rm -f gnu-javax-sound-midi.list @@ -3628,11 +3316,7 @@ gnu_javax_sound_sampled_AU_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/javax/sound/sampled/AU.list: $(gnu_javax_sound_sampled_AU_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_sound_sampled_AU_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/sound/sampled/AU.list + echo $(srcdir)/classpath/lib/gnu/javax/sound/sampled/AU/*.class > gnu/javax/sound/sampled/AU.list -include gnu/javax/sound/sampled/AU.deps @@ -3644,11 +3328,7 @@ gnu_javax_sound_sampled_WAV_header_files = $(patsubst classpath/%,%,$(patsubst % gnu/javax/sound/sampled/WAV.list: $(gnu_javax_sound_sampled_WAV_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_sound_sampled_WAV_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/sound/sampled/WAV.list + echo $(srcdir)/classpath/lib/gnu/javax/sound/sampled/WAV/*.class > gnu/javax/sound/sampled/WAV.list -include gnu/javax/sound/sampled/WAV.deps @@ -3660,11 +3340,7 @@ gnu_javax_swing_plaf_gnu_header_files = $(patsubst classpath/%,%,$(patsubst %.ja gnu/javax/swing/plaf/gnu.list: $(gnu_javax_swing_plaf_gnu_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_plaf_gnu_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/plaf/gnu.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/plaf/gnu/*.class > gnu/javax/swing/plaf/gnu.list -include gnu/javax/swing/plaf/gnu.deps @@ -3676,11 +3352,7 @@ gnu_javax_swing_plaf_metal_header_files = $(patsubst classpath/%,%,$(patsubst %. gnu/javax/swing/plaf/metal.list: $(gnu_javax_swing_plaf_metal_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_plaf_metal_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/plaf/metal.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/plaf/metal/*.class > gnu/javax/swing/plaf/metal.list -include gnu/javax/swing/plaf/metal.deps @@ -3694,19 +3366,38 @@ gnu_javax_swing_text_html_header_files = $(patsubst classpath/%,%,$(patsubst %.j gnu/javax/swing/text/html.list: $(gnu_javax_swing_text_html_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/*.class > gnu/javax/swing/text/html.list -include gnu/javax/swing/text/html.deps +gnu_javax_swing_text_html_css_source_files = \ +classpath/gnu/javax/swing/text/html/css/BorderStyle.java \ +classpath/gnu/javax/swing/text/html/css/BorderWidth.java \ +classpath/gnu/javax/swing/text/html/css/CSSColor.java \ +classpath/gnu/javax/swing/text/html/css/CSSLexicalException.java \ +classpath/gnu/javax/swing/text/html/css/CSSParser.java \ +classpath/gnu/javax/swing/text/html/css/CSSParserCallback.java \ +classpath/gnu/javax/swing/text/html/css/CSSParserException.java \ +classpath/gnu/javax/swing/text/html/css/CSSScanner.java \ +classpath/gnu/javax/swing/text/html/css/FontSize.java \ +classpath/gnu/javax/swing/text/html/css/FontStyle.java \ +classpath/gnu/javax/swing/text/html/css/FontWeight.java \ +classpath/gnu/javax/swing/text/html/css/Length.java \ +classpath/gnu/javax/swing/text/html/css/Selector.java + +gnu_javax_swing_text_html_css_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_swing_text_html_css_source_files))) + +gnu/javax/swing/text/html/css.list: $(gnu_javax_swing_text_html_css_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/css/*.class > gnu/javax/swing/text/html/css.list + +-include gnu/javax/swing/text/html/css.deps + + gnu_javax_swing_text_html_parser_source_files = \ classpath/gnu/javax/swing/text/html/parser/GnuParserDelegator.java \ classpath/gnu/javax/swing/text/html/parser/HTML_401F.java \ -classpath/gnu/javax/swing/text/html/parser/HTML_401Swing.java \ classpath/gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java \ classpath/gnu/javax/swing/text/html/parser/gnuDTD.java \ classpath/gnu/javax/swing/text/html/parser/htmlAttributeSet.java \ @@ -3716,11 +3407,7 @@ gnu_javax_swing_text_html_parser_header_files = $(patsubst classpath/%,%,$(patsu gnu/javax/swing/text/html/parser.list: $(gnu_javax_swing_text_html_parser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/*.class > gnu/javax/swing/text/html/parser.list -include gnu/javax/swing/text/html/parser.deps @@ -3737,11 +3424,7 @@ gnu_javax_swing_text_html_parser_models_header_files = $(patsubst classpath/%,%, gnu/javax/swing/text/html/parser/models.list: $(gnu_javax_swing_text_html_parser_models_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_models_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser/models.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/models/*.class > gnu/javax/swing/text/html/parser/models.list -include gnu/javax/swing/text/html/parser/models.deps @@ -3756,11 +3439,7 @@ gnu_javax_swing_text_html_parser_support_header_files = $(patsubst classpath/%,% gnu/javax/swing/text/html/parser/support.list: $(gnu_javax_swing_text_html_parser_support_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_support_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser/support.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/support/*.class > gnu/javax/swing/text/html/parser/support.list -include gnu/javax/swing/text/html/parser/support.deps @@ -3780,11 +3459,7 @@ gnu_javax_swing_text_html_parser_support_low_header_files = $(patsubst classpath gnu/javax/swing/text/html/parser/support/low.list: $(gnu_javax_swing_text_html_parser_support_low_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_text_html_parser_support_low_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/text/html/parser/support/low.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/text/html/parser/support/low/*.class > gnu/javax/swing/text/html/parser/support/low.list -include gnu/javax/swing/text/html/parser/support/low.deps @@ -3796,11 +3471,7 @@ gnu_javax_swing_tree_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% gnu/javax/swing/tree.list: $(gnu_javax_swing_tree_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(gnu_javax_swing_tree_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > gnu/javax/swing/tree.list + echo $(srcdir)/classpath/lib/gnu/javax/swing/tree/*.class > gnu/javax/swing/tree.list -include gnu/javax/swing/tree.deps @@ -4029,6 +3700,8 @@ classpath/gnu/xml/transform/OtherwiseNode.java \ classpath/gnu/xml/transform/ParameterNode.java \ classpath/gnu/xml/transform/ProcessingInstructionNode.java \ classpath/gnu/xml/transform/SAXSerializer.java \ +classpath/gnu/xml/transform/SAXTemplatesHandler.java \ +classpath/gnu/xml/transform/SAXTransformerHandler.java \ classpath/gnu/xml/transform/SortKey.java \ classpath/gnu/xml/transform/StreamSerializer.java \ classpath/gnu/xml/transform/StrippingInstruction.java \ @@ -4222,7 +3895,7 @@ classpath/gnu/xml/xpath/XPathParser.java \ classpath/gnu/xml/xpath/XPathTokenizer.java gnu-xml.lo: $(gnu_xml_source_files) - @find classpath/lib/gnu/xml -name '*.class' > gnu-xml.list + @find $(srcdir)/classpath/lib/gnu/xml -name '*.class' > gnu-xml.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml.lo @gnu-xml.list @rm -f gnu-xml.list @@ -4236,11 +3909,7 @@ java_applet_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java java/applet.list: $(java_applet_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_applet_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/applet.list + echo $(srcdir)/classpath/lib/java/applet/*.class > java/applet.list -include java/applet.deps @@ -4355,11 +4024,7 @@ java_awt_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_aw java/awt.list: $(java_awt_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt.list + echo $(srcdir)/classpath/lib/java/awt/*.class > java/awt.list -include java/awt.deps @@ -4377,11 +4042,7 @@ java_awt_color_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(j java/awt/color.list: $(java_awt_color_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_color_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/color.list + echo $(srcdir)/classpath/lib/java/awt/color/*.class > java/awt/color.list -include java/awt/color.deps @@ -4394,6 +4055,7 @@ classpath/java/awt/datatransfer/FlavorEvent.java \ classpath/java/awt/datatransfer/FlavorListener.java \ classpath/java/awt/datatransfer/FlavorMap.java \ classpath/java/awt/datatransfer/FlavorTable.java \ +classpath/java/awt/datatransfer/MimeType.java \ classpath/java/awt/datatransfer/MimeTypeParseException.java \ classpath/java/awt/datatransfer/StringSelection.java \ classpath/java/awt/datatransfer/SystemFlavorMap.java \ @@ -4404,11 +4066,7 @@ java_awt_datatransfer_header_files = $(patsubst classpath/%,%,$(patsubst %.java, java/awt/datatransfer.list: $(java_awt_datatransfer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_datatransfer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/datatransfer.list + echo $(srcdir)/classpath/lib/java/awt/datatransfer/*.class > java/awt/datatransfer.list -include java/awt/datatransfer.deps @@ -4442,11 +4100,7 @@ java_awt_dnd_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(jav java/awt/dnd.list: $(java_awt_dnd_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_dnd_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/dnd.list + echo $(srcdir)/classpath/lib/java/awt/dnd/*.class > java/awt/dnd.list -include java/awt/dnd.deps @@ -4460,11 +4114,7 @@ java_awt_dnd_peer_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, java/awt/dnd/peer.list: $(java_awt_dnd_peer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_dnd_peer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/dnd/peer.list + echo $(srcdir)/classpath/lib/java/awt/dnd/peer/*.class > java/awt/dnd/peer.list -include java/awt/dnd/peer.deps @@ -4518,11 +4168,7 @@ java_awt_event_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(j java/awt/event.list: $(java_awt_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/event.list + echo $(srcdir)/classpath/lib/java/awt/event/*.class > java/awt/event.list -include java/awt/event.deps @@ -4550,11 +4196,7 @@ java_awt_font_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja java/awt/font.list: $(java_awt_font_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_font_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/font.list + echo $(srcdir)/classpath/lib/java/awt/font/*.class > java/awt/font.list -include java/awt/font.deps @@ -4582,11 +4224,7 @@ java_awt_geom_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja java/awt/geom.list: $(java_awt_geom_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_geom_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/geom.list + echo $(srcdir)/classpath/lib/java/awt/geom/*.class > java/awt/geom.list -include java/awt/geom.deps @@ -4601,11 +4239,7 @@ java_awt_im_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java java/awt/im.list: $(java_awt_im_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_im_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/im.list + echo $(srcdir)/classpath/lib/java/awt/im/*.class > java/awt/im.list -include java/awt/im.deps @@ -4619,11 +4253,7 @@ java_awt_im_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$( java/awt/im/spi.list: $(java_awt_im_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_im_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/im/spi.list + echo $(srcdir)/classpath/lib/java/awt/im/spi/*.class > java/awt/im/spi.list -include java/awt/im/spi.deps @@ -4686,11 +4316,7 @@ java_awt_image_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(j java/awt/image.list: $(java_awt_image_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_image_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/image.list + echo $(srcdir)/classpath/lib/java/awt/image/*.class > java/awt/image.list -include java/awt/image.deps @@ -4708,11 +4334,7 @@ java_awt_image_renderable_header_files = $(patsubst classpath/%,%,$(patsubst %.j java/awt/image/renderable.list: $(java_awt_image_renderable_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_image_renderable_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/image/renderable.list + echo $(srcdir)/classpath/lib/java/awt/image/renderable/*.class > java/awt/image/renderable.list -include java/awt/image/renderable.deps @@ -4751,11 +4373,7 @@ java_awt_peer_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja java/awt/peer.list: $(java_awt_peer_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_peer_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/peer.list + echo $(srcdir)/classpath/lib/java/awt/peer/*.class > java/awt/peer.list -include java/awt/peer.deps @@ -4777,11 +4395,7 @@ java_awt_print_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(j java/awt/print.list: $(java_awt_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_awt_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/awt/print.list + echo $(srcdir)/classpath/lib/java/awt/print/*.class > java/awt/print.list -include java/awt/print.deps @@ -4829,11 +4443,7 @@ java_beans_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_ java/beans.list: $(java_beans_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_beans_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/beans.list + echo $(srcdir)/classpath/lib/java/beans/*.class > java/beans.list -include java/beans.deps @@ -4862,11 +4472,7 @@ java_beans_beancontext_header_files = $(patsubst classpath/%,%,$(patsubst %.java java/beans/beancontext.list: $(java_beans_beancontext_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_beans_beancontext_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/beans/beancontext.list + echo $(srcdir)/classpath/lib/java/beans/beancontext/*.class > java/beans/beancontext.list -include java/beans/beancontext.deps @@ -4890,11 +4496,11 @@ classpath/java/io/DeleteFileHelper.java \ classpath/java/io/EOFException.java \ classpath/java/io/Externalizable.java \ java/io/File.java \ -classpath/java/io/FileDescriptor.java \ +java/io/FileDescriptor.java \ classpath/java/io/FileFilter.java \ -classpath/java/io/FileInputStream.java \ +java/io/FileInputStream.java \ classpath/java/io/FileNotFoundException.java \ -classpath/java/io/FileOutputStream.java \ +java/io/FileOutputStream.java \ classpath/java/io/FilePermission.java \ classpath/java/io/FileReader.java \ classpath/java/io/FileWriter.java \ @@ -4915,7 +4521,7 @@ classpath/java/io/LineNumberReader.java \ classpath/java/io/NotActiveException.java \ classpath/java/io/NotSerializableException.java \ classpath/java/io/ObjectInput.java \ -java/io/ObjectInputStream.java \ +classpath/java/io/ObjectInputStream.java \ classpath/java/io/ObjectInputValidation.java \ classpath/java/io/ObjectOutput.java \ classpath/java/io/ObjectOutputStream.java \ @@ -4934,7 +4540,7 @@ java/io/PrintStream.java \ classpath/java/io/PrintWriter.java \ classpath/java/io/PushbackInputStream.java \ classpath/java/io/PushbackReader.java \ -classpath/java/io/RandomAccessFile.java \ +java/io/RandomAccessFile.java \ classpath/java/io/Reader.java \ classpath/java/io/SequenceInputStream.java \ classpath/java/io/Serializable.java \ @@ -4947,6 +4553,7 @@ classpath/java/io/StringWriter.java \ classpath/java/io/SyncFailedException.java \ classpath/java/io/UTFDataFormatException.java \ classpath/java/io/UnsupportedEncodingException.java \ +java/io/VMObjectInputStream.java \ java/io/VMObjectStreamClass.java \ classpath/java/io/WriteAbortedException.java \ classpath/java/io/Writer.java @@ -4955,11 +4562,7 @@ java_io_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_io_ java/io.list: $(java_io_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_io_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/io.list + echo $(srcdir)/classpath/lib/java/io/*.class > java/io.list -include java/io.deps @@ -4975,6 +4578,7 @@ classpath/java/lang/Boolean.java \ classpath/java/lang/Byte.java \ classpath/java/lang/CharSequence.java \ java/lang/Character.java \ +java/lang/Class.java \ classpath/java/lang/ClassCastException.java \ classpath/java/lang/ClassCircularityError.java \ classpath/java/lang/ClassFormatError.java \ @@ -4984,8 +4588,9 @@ classpath/java/lang/CloneNotSupportedException.java \ classpath/java/lang/Cloneable.java \ classpath/java/lang/Comparable.java \ classpath/java/lang/Compiler.java \ -java/lang/ConcreteProcess.java \ +classpath/java/lang/Deprecated.java \ classpath/java/lang/Double.java \ +java/lang/EcosProcess.java \ classpath/java/lang/Enum.java \ classpath/java/lang/EnumConstantNotPresentException.java \ classpath/java/lang/Error.java \ @@ -5019,16 +4624,20 @@ classpath/java/lang/NoSuchMethodException.java \ classpath/java/lang/NullPointerException.java \ classpath/java/lang/Number.java \ classpath/java/lang/NumberFormatException.java \ +java/lang/Object.java \ classpath/java/lang/OutOfMemoryError.java \ -java/lang/Package.java \ +classpath/java/lang/Override.java \ +classpath/java/lang/Package.java \ +java/lang/PosixProcess.java \ classpath/java/lang/Process.java \ +java/lang/ProcessBuilder.java \ classpath/java/lang/Readable.java \ classpath/java/lang/Runnable.java \ java/lang/Runtime.java \ classpath/java/lang/RuntimeException.java \ classpath/java/lang/RuntimePermission.java \ classpath/java/lang/SecurityException.java \ -java/lang/SecurityManager.java \ +classpath/java/lang/SecurityManager.java \ classpath/java/lang/Short.java \ classpath/java/lang/StackOverflowError.java \ classpath/java/lang/StackTraceElement.java \ @@ -5037,11 +4646,12 @@ java/lang/String.java \ java/lang/StringBuffer.java \ java/lang/StringBuilder.java \ classpath/java/lang/StringIndexOutOfBoundsException.java \ +classpath/java/lang/SuppressWarnings.java \ java/lang/System.java \ java/lang/Thread.java \ classpath/java/lang/ThreadDeath.java \ classpath/java/lang/ThreadGroup.java \ -classpath/java/lang/ThreadLocal.java \ +java/lang/ThreadLocal.java \ classpath/java/lang/Throwable.java \ classpath/java/lang/TypeNotPresentException.java \ classpath/java/lang/UnknownError.java \ @@ -5052,21 +4662,17 @@ java/lang/VMClassLoader.java \ java/lang/VMCompiler.java \ java/lang/VMDouble.java \ java/lang/VMFloat.java \ -java/lang/VMSecurityManager.java \ java/lang/VMThrowable.java \ classpath/java/lang/VerifyError.java \ classpath/java/lang/VirtualMachineError.java \ -classpath/java/lang/Void.java +classpath/java/lang/Void.java \ +java/lang/Win32Process.java java_lang_header_files = $(filter-out java/lang/Object.h java/lang/Class.h,$(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_lang_source_files)))) java/lang.list: $(java_lang_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang.list + echo $(srcdir)/classpath/lib/java/lang/*.class | tr ' ' '\n' | fgrep -v Object.class | fgrep -v Class.class | grep -v '[^/]Process' > java/lang.list -include java/lang.deps @@ -5075,17 +4681,19 @@ java_lang_annotation_source_files = \ classpath/java/lang/annotation/Annotation.java \ classpath/java/lang/annotation/AnnotationFormatError.java \ classpath/java/lang/annotation/AnnotationTypeMismatchException.java \ -classpath/java/lang/annotation/IncompleteAnnotationException.java +classpath/java/lang/annotation/Documented.java \ +classpath/java/lang/annotation/ElementType.java \ +classpath/java/lang/annotation/IncompleteAnnotationException.java \ +classpath/java/lang/annotation/Inherited.java \ +classpath/java/lang/annotation/Retention.java \ +classpath/java/lang/annotation/RetentionPolicy.java \ +classpath/java/lang/annotation/Target.java java_lang_annotation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_lang_annotation_source_files))) java/lang/annotation.list: $(java_lang_annotation_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_annotation_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/annotation.list + echo $(srcdir)/classpath/lib/java/lang/annotation/*.class > java/lang/annotation.list -include java/lang/annotation.deps @@ -5101,11 +4709,7 @@ java_lang_instrument_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% java/lang/instrument.list: $(java_lang_instrument_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_instrument_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/instrument.list + echo $(srcdir)/classpath/lib/java/lang/instrument/*.class > java/lang/instrument.list -include java/lang/instrument.deps @@ -5120,6 +4724,7 @@ classpath/java/lang/management/MemoryMXBean.java \ classpath/java/lang/management/MemoryManagerMXBean.java \ classpath/java/lang/management/MemoryNotificationInfo.java \ classpath/java/lang/management/MemoryPoolMXBean.java \ +classpath/java/lang/management/MemoryType.java \ classpath/java/lang/management/MemoryUsage.java \ classpath/java/lang/management/OperatingSystemMXBean.java \ classpath/java/lang/management/RuntimeMXBean.java \ @@ -5131,11 +4736,7 @@ java_lang_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% java/lang/management.list: $(java_lang_management_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_management_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/management.list + echo $(srcdir)/classpath/lib/java/lang/management/*.class > java/lang/management.list -include java/lang/management.deps @@ -5151,11 +4752,7 @@ java_lang_ref_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja java/lang/ref.list: $(java_lang_ref_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_ref_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/ref.list + echo $(srcdir)/classpath/lib/java/lang/ref/*.class > java/lang/ref.list -include java/lang/ref.deps @@ -5188,11 +4785,7 @@ java_lang_reflect_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, java/lang/reflect.list: $(java_lang_reflect_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_lang_reflect_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/lang/reflect.list + echo $(srcdir)/classpath/lib/java/lang/reflect/*.class > java/lang/reflect.list -include java/lang/reflect.deps @@ -5200,17 +4793,14 @@ java/lang/reflect.list: $(java_lang_reflect_source_files) java_math_source_files = \ classpath/java/math/BigDecimal.java \ classpath/java/math/BigInteger.java \ -classpath/java/math/MathContext.java +classpath/java/math/MathContext.java \ +classpath/java/math/RoundingMode.java java_math_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_math_source_files))) java/math.list: $(java_math_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_math_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/math.list + echo $(srcdir)/classpath/lib/java/math/*.class > java/math.list -include java/math.deps @@ -5222,7 +4812,7 @@ classpath/java/net/ConnectException.java \ classpath/java/net/ContentHandler.java \ classpath/java/net/ContentHandlerFactory.java \ classpath/java/net/DatagramPacket.java \ -classpath/java/net/DatagramSocket.java \ +java/net/DatagramSocket.java \ classpath/java/net/DatagramSocketImpl.java \ classpath/java/net/DatagramSocketImplFactory.java \ classpath/java/net/FileNameMap.java \ @@ -5234,16 +4824,18 @@ classpath/java/net/InetSocketAddress.java \ classpath/java/net/JarURLConnection.java \ classpath/java/net/MalformedURLException.java \ classpath/java/net/MimeTypeMapper.java \ -classpath/java/net/MulticastSocket.java \ +java/net/MulticastSocket.java \ classpath/java/net/NetPermission.java \ -classpath/java/net/NetworkInterface.java \ +java/net/NetworkInterface.java \ classpath/java/net/NoRouteToHostException.java \ classpath/java/net/PasswordAuthentication.java \ classpath/java/net/PortUnreachableException.java \ classpath/java/net/ProtocolException.java \ +classpath/java/net/Proxy.java \ +classpath/java/net/ProxySelector.java \ classpath/java/net/ResolverCache.java \ classpath/java/net/ServerSocket.java \ -classpath/java/net/Socket.java \ +java/net/Socket.java \ classpath/java/net/SocketAddress.java \ classpath/java/net/SocketException.java \ classpath/java/net/SocketImpl.java \ @@ -5270,11 +4862,7 @@ java_net_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_ne java/net.list: $(java_net_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_net_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/net.list + echo $(srcdir)/classpath/lib/java/net/*.class > java/net.list -include java/net.deps @@ -5316,11 +4904,7 @@ java_nio_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_ni java/nio.list: $(java_nio_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio.list + echo $(srcdir)/classpath/lib/java/nio/*.class > java/nio.list -include java/nio.deps @@ -5367,11 +4951,7 @@ java_nio_channels_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, java/nio/channels.list: $(java_nio_channels_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_channels_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/channels.list + echo $(srcdir)/classpath/lib/java/nio/channels/*.class > java/nio/channels.list -include java/nio/channels.deps @@ -5387,11 +4967,7 @@ java_nio_channels_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.java, java/nio/channels/spi.list: $(java_nio_channels_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_channels_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/channels/spi.list + echo $(srcdir)/classpath/lib/java/nio/channels/spi/*.class > java/nio/channels/spi.list -include java/nio/channels/spi.deps @@ -5413,11 +4989,7 @@ java_nio_charset_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ java/nio/charset.list: $(java_nio_charset_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_charset_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/charset.list + echo $(srcdir)/classpath/lib/java/nio/charset/*.class > java/nio/charset.list -include java/nio/charset.deps @@ -5429,11 +5001,7 @@ java_nio_charset_spi_header_files = $(patsubst %.java,%.h,$(java_nio_charset_spi java/nio/charset/spi.list: $(java_nio_charset_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_nio_charset_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/nio/charset/spi.list + echo $(srcdir)/classpath/lib/java/nio/charset/spi/*.class > java/nio/charset/spi.list -include java/nio/charset/spi.deps @@ -5464,11 +5032,7 @@ java_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_rm java/rmi.list: $(java_rmi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi.list + echo $(srcdir)/classpath/lib/java/rmi/*.class > java/rmi.list -include java/rmi.deps @@ -5494,11 +5058,7 @@ java_rmi_activation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. java/rmi/activation.list: $(java_rmi_activation_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_activation_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/activation.list + echo $(srcdir)/classpath/lib/java/rmi/activation/*.class > java/rmi/activation.list -include java/rmi/activation.deps @@ -5512,11 +5072,7 @@ java_rmi_dgc_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(jav java/rmi/dgc.list: $(java_rmi_dgc_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_dgc_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/dgc.list + echo $(srcdir)/classpath/lib/java/rmi/dgc/*.class > java/rmi/dgc.list -include java/rmi/dgc.deps @@ -5530,11 +5086,7 @@ java_rmi_registry_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, java/rmi/registry.list: $(java_rmi_registry_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_registry_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/registry.list + echo $(srcdir)/classpath/lib/java/rmi/registry/*.class > java/rmi/registry.list -include java/rmi/registry.deps @@ -5572,11 +5124,7 @@ java_rmi_server_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$( java/rmi/server.list: $(java_rmi_server_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_rmi_server_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/rmi/server.list + echo $(srcdir)/classpath/lib/java/rmi/server/*.class > java/rmi/server.list -include java/rmi/server.deps @@ -5640,7 +5188,7 @@ classpath/java/security/PublicKey.java \ classpath/java/security/SecureClassLoader.java \ classpath/java/security/SecureRandom.java \ classpath/java/security/SecureRandomSpi.java \ -java/security/Security.java \ +classpath/java/security/Security.java \ classpath/java/security/SecurityPermission.java \ classpath/java/security/Signature.java \ classpath/java/security/SignatureException.java \ @@ -5657,11 +5205,7 @@ java_security_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja java/security.list: $(java_security_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security.list + echo $(srcdir)/classpath/lib/java/security/*.class > java/security.list -include java/security.deps @@ -5680,11 +5224,7 @@ java_security_acl_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, java/security/acl.list: $(java_security_acl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_acl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/acl.list + echo $(srcdir)/classpath/lib/java/security/acl/*.class > java/security/acl.list -include java/security/acl.deps @@ -5737,11 +5277,7 @@ java_security_cert_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h java/security/cert.list: $(java_security_cert_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_cert_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/cert.list + echo $(srcdir)/classpath/lib/java/security/cert/*.class > java/security/cert.list -include java/security/cert.deps @@ -5762,11 +5298,7 @@ java_security_interfaces_header_files = $(patsubst classpath/%,%,$(patsubst %.ja java/security/interfaces.list: $(java_security_interfaces_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_interfaces_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/interfaces.list + echo $(srcdir)/classpath/lib/java/security/interfaces/*.class > java/security/interfaces.list -include java/security/interfaces.deps @@ -5794,11 +5326,7 @@ java_security_spec_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h java/security/spec.list: $(java_security_spec_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_security_spec_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/security/spec.list + echo $(srcdir)/classpath/lib/java/security/spec/*.class > java/security/spec.list -include java/security/spec.deps @@ -5838,11 +5366,7 @@ java_sql_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_sq java/sql.list: $(java_sql_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_sql_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/sql.list + echo $(srcdir)/classpath/lib/java/sql/*.class > java/sql.list -include java/sql.deps @@ -5877,11 +5401,7 @@ java_text_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_t java/text.list: $(java_text_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_text_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/text.list + echo $(srcdir)/classpath/lib/java/text/*.class > java/text.list -include java/text.deps @@ -5890,8 +5410,10 @@ java_util_source_files = \ classpath/java/util/AbstractCollection.java \ classpath/java/util/AbstractList.java \ classpath/java/util/AbstractMap.java \ +classpath/external/jsr166/java/util/AbstractQueue.java \ classpath/java/util/AbstractSequentialList.java \ classpath/java/util/AbstractSet.java \ +classpath/external/jsr166/java/util/ArrayDeque.java \ classpath/java/util/ArrayList.java \ classpath/java/util/Arrays.java \ classpath/java/util/BitSet.java \ @@ -5902,9 +5424,12 @@ classpath/java/util/Comparator.java \ classpath/java/util/ConcurrentModificationException.java \ java/util/Currency.java \ classpath/java/util/Date.java \ +classpath/external/jsr166/java/util/Deque.java \ classpath/java/util/Dictionary.java \ classpath/java/util/DuplicateFormatFlagsException.java \ classpath/java/util/EmptyStackException.java \ +classpath/java/util/EnumMap.java \ +classpath/java/util/EnumSet.java \ classpath/java/util/Enumeration.java \ classpath/java/util/EventListener.java \ classpath/java/util/EventListenerProxy.java \ @@ -5939,16 +5464,20 @@ classpath/java/util/Map.java \ classpath/java/util/MissingFormatArgumentException.java \ classpath/java/util/MissingFormatWidthException.java \ classpath/java/util/MissingResourceException.java \ +classpath/external/jsr166/java/util/NavigableMap.java \ +classpath/external/jsr166/java/util/NavigableSet.java \ classpath/java/util/NoSuchElementException.java \ classpath/java/util/Observable.java \ classpath/java/util/Observer.java \ +classpath/java/util/PriorityQueue.java \ classpath/java/util/Properties.java \ classpath/java/util/PropertyPermission.java \ classpath/java/util/PropertyPermissionCollection.java \ classpath/java/util/PropertyResourceBundle.java \ +classpath/external/jsr166/java/util/Queue.java \ classpath/java/util/Random.java \ classpath/java/util/RandomAccess.java \ -java/util/ResourceBundle.java \ +classpath/java/util/ResourceBundle.java \ classpath/java/util/Set.java \ classpath/java/util/SimpleTimeZone.java \ classpath/java/util/SortedMap.java \ @@ -5968,19 +5497,113 @@ java/util/VMTimeZone.java \ classpath/java/util/Vector.java \ classpath/java/util/WeakHashMap.java -java_util_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_util_source_files))) +java_util_header_files = $(patsubst classpath/%,%,$(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_source_files)))) java/util.list: $(java_util_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util.list + echo $(srcdir)/classpath/lib/java/util/*.class > java/util.list -include java/util.deps +java_util_concurrent_source_files = \ +classpath/external/jsr166/java/util/concurrent/AbstractExecutorService.java \ +classpath/external/jsr166/java/util/concurrent/ArrayBlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/BlockingDeque.java \ +classpath/external/jsr166/java/util/concurrent/BlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/BrokenBarrierException.java \ +classpath/external/jsr166/java/util/concurrent/Callable.java \ +classpath/external/jsr166/java/util/concurrent/CancellationException.java \ +classpath/external/jsr166/java/util/concurrent/CompletionService.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentHashMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentLinkedQueue.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentNavigableMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java \ +classpath/external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java \ +classpath/java/util/concurrent/CopyOnWriteArrayList.java \ +classpath/external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java \ +classpath/external/jsr166/java/util/concurrent/CountDownLatch.java \ +classpath/external/jsr166/java/util/concurrent/CyclicBarrier.java \ +classpath/external/jsr166/java/util/concurrent/DelayQueue.java \ +classpath/external/jsr166/java/util/concurrent/Delayed.java \ +classpath/external/jsr166/java/util/concurrent/Exchanger.java \ +classpath/external/jsr166/java/util/concurrent/ExecutionException.java \ +classpath/external/jsr166/java/util/concurrent/Executor.java \ +classpath/external/jsr166/java/util/concurrent/ExecutorCompletionService.java \ +classpath/external/jsr166/java/util/concurrent/ExecutorService.java \ +classpath/external/jsr166/java/util/concurrent/Executors.java \ +classpath/external/jsr166/java/util/concurrent/Future.java \ +classpath/external/jsr166/java/util/concurrent/FutureTask.java \ +classpath/external/jsr166/java/util/concurrent/LinkedBlockingDeque.java \ +classpath/external/jsr166/java/util/concurrent/LinkedBlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/PriorityBlockingQueue.java \ +classpath/external/jsr166/java/util/concurrent/RejectedExecutionException.java \ +classpath/external/jsr166/java/util/concurrent/RejectedExecutionHandler.java \ +classpath/external/jsr166/java/util/concurrent/RunnableFuture.java \ +classpath/external/jsr166/java/util/concurrent/RunnableScheduledFuture.java \ +classpath/external/jsr166/java/util/concurrent/ScheduledExecutorService.java \ +classpath/external/jsr166/java/util/concurrent/ScheduledFuture.java \ +classpath/external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java \ +classpath/external/jsr166/java/util/concurrent/Semaphore.java \ +classpath/external/jsr166/java/util/concurrent/SynchronousQueue.java \ +classpath/external/jsr166/java/util/concurrent/ThreadFactory.java \ +classpath/external/jsr166/java/util/concurrent/ThreadPoolExecutor.java \ +classpath/external/jsr166/java/util/concurrent/TimeUnit.java \ +classpath/external/jsr166/java/util/concurrent/TimeoutException.java + +java_util_concurrent_header_files = $(patsubst classpath/%,%,$(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_concurrent_source_files)))) + +java/util/concurrent.list: $(java_util_concurrent_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/util/concurrent/*.class > java/util/concurrent.list + +-include java/util/concurrent.deps + + +java_util_concurrent_atomic_source_files = \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicBoolean.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicInteger.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerArray.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicLong.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongArray.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicMarkableReference.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicReference.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceArray.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java \ +classpath/external/jsr166/java/util/concurrent/atomic/AtomicStampedReference.java + +java_util_concurrent_atomic_header_files = $(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_concurrent_atomic_source_files))) + +java/util/concurrent/atomic.list: $(java_util_concurrent_atomic_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/util/concurrent/atomic/*.class > java/util/concurrent/atomic.list + +-include java/util/concurrent/atomic.deps + + +java_util_concurrent_locks_source_files = \ +classpath/external/jsr166/java/util/concurrent/locks/AbstractOwnableSynchronizer.java \ +classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \ +classpath/external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java \ +classpath/external/jsr166/java/util/concurrent/locks/Condition.java \ +classpath/external/jsr166/java/util/concurrent/locks/Lock.java \ +classpath/external/jsr166/java/util/concurrent/locks/LockSupport.java \ +classpath/external/jsr166/java/util/concurrent/locks/ReadWriteLock.java \ +classpath/external/jsr166/java/util/concurrent/locks/ReentrantLock.java \ +classpath/external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java + +java_util_concurrent_locks_header_files = $(patsubst classpath/external/jsr166/%,%,$(patsubst %.java,%.h,$(java_util_concurrent_locks_source_files))) + +java/util/concurrent/locks.list: $(java_util_concurrent_locks_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/util/concurrent/locks/*.class > java/util/concurrent/locks.list + +-include java/util/concurrent/locks.deps + + java_util_jar_source_files = \ classpath/java/util/jar/Attributes.java \ classpath/java/util/jar/JarEntry.java \ @@ -5994,11 +5617,7 @@ java_util_jar_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja java/util/jar.list: $(java_util_jar_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_jar_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/jar.list + echo $(srcdir)/classpath/lib/java/util/jar/*.class > java/util/jar.list -include java/util/jar.deps @@ -6026,11 +5645,7 @@ java_util_logging_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, java/util/logging.list: $(java_util_logging_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_logging_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/logging.list + echo $(srcdir)/classpath/lib/java/util/logging/*.class > java/util/logging.list -include java/util/logging.deps @@ -6050,11 +5665,7 @@ java_util_prefs_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$( java/util/prefs.list: $(java_util_prefs_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_prefs_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/prefs.list + echo $(srcdir)/classpath/lib/java/util/prefs/*.class > java/util/prefs.list -include java/util/prefs.deps @@ -6069,11 +5680,7 @@ java_util_regex_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$( java/util/regex.list: $(java_util_regex_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_regex_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/regex.list + echo $(srcdir)/classpath/lib/java/util/regex/*.class > java/util/regex.list -include java/util/regex.deps @@ -6102,11 +5709,7 @@ java_util_zip_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja java/util/zip.list: $(java_util_zip_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(java_util_zip_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > java/util/zip.list + echo $(srcdir)/classpath/lib/java/util/zip/*.class > java/util/zip.list -include java/util/zip.deps @@ -6144,11 +5747,7 @@ javax_accessibility_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. javax/accessibility.list: $(javax_accessibility_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_accessibility_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/accessibility.list + echo $(srcdir)/classpath/lib/javax/accessibility/*.class > javax/accessibility.list -include javax/accessibility.deps @@ -6183,11 +5782,7 @@ javax_crypto_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(jav javax/crypto.list: $(javax_crypto_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_crypto_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/crypto.list + echo $(srcdir)/classpath/lib/javax/crypto/*.class > javax/crypto.list -include javax/crypto.deps @@ -6202,11 +5797,7 @@ javax_crypto_interfaces_header_files = $(patsubst classpath/%,%,$(patsubst %.jav javax/crypto/interfaces.list: $(javax_crypto_interfaces_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_crypto_interfaces_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/crypto/interfaces.list + echo $(srcdir)/classpath/lib/javax/crypto/interfaces/*.class > javax/crypto/interfaces.list -include javax/crypto/interfaces.deps @@ -6229,11 +5820,7 @@ javax_crypto_spec_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, javax/crypto/spec.list: $(javax_crypto_spec_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_crypto_spec_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/crypto/spec.list + echo $(srcdir)/classpath/lib/javax/crypto/spec/*.class > javax/crypto/spec.list -include javax/crypto/spec.deps @@ -6289,7 +5876,7 @@ classpath/javax/imageio/stream/MemoryCacheImageInputStream.java \ classpath/javax/imageio/stream/MemoryCacheImageOutputStream.java javax-imageio.lo: $(javax_imageio_source_files) - @find classpath/lib/javax/imageio -name '*.class' > javax-imageio.list + @find $(srcdir)/classpath/lib/javax/imageio -name '*.class' > javax-imageio.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-imageio.lo @javax-imageio.list @rm -f javax-imageio.list @@ -6297,8 +5884,14 @@ javax_management_source_files = \ classpath/javax/management/Attribute.java \ classpath/javax/management/AttributeList.java \ classpath/javax/management/AttributeNotFoundException.java \ +classpath/javax/management/BadAttributeValueExpException.java \ +classpath/javax/management/BadBinaryOpValueExpException.java \ +classpath/javax/management/BadStringOperationException.java \ classpath/javax/management/DynamicMBean.java \ +classpath/javax/management/InstanceAlreadyExistsException.java \ +classpath/javax/management/InstanceNotFoundException.java \ classpath/javax/management/IntrospectionException.java \ +classpath/javax/management/InvalidApplicationException.java \ classpath/javax/management/InvalidAttributeValueException.java \ classpath/javax/management/JMException.java \ classpath/javax/management/JMRuntimeException.java \ @@ -6311,51 +5904,88 @@ classpath/javax/management/MBeanInfo.java \ classpath/javax/management/MBeanNotificationInfo.java \ classpath/javax/management/MBeanOperationInfo.java \ classpath/javax/management/MBeanParameterInfo.java \ +classpath/javax/management/MBeanPermission.java \ +classpath/javax/management/MBeanRegistration.java \ +classpath/javax/management/MBeanRegistrationException.java \ +classpath/javax/management/MBeanServer.java \ +classpath/javax/management/MBeanServerBuilder.java \ +classpath/javax/management/MBeanServerConnection.java \ +classpath/javax/management/MBeanServerDelegate.java \ +classpath/javax/management/MBeanServerDelegateMBean.java \ +classpath/javax/management/MBeanServerFactory.java \ +classpath/javax/management/MBeanServerNotification.java \ +classpath/javax/management/MBeanServerPermission.java \ +classpath/javax/management/MBeanTrustPermission.java \ +classpath/javax/management/MalformedObjectNameException.java \ classpath/javax/management/NotCompliantMBeanException.java \ classpath/javax/management/Notification.java \ classpath/javax/management/NotificationBroadcaster.java \ classpath/javax/management/NotificationEmitter.java \ classpath/javax/management/NotificationFilter.java \ classpath/javax/management/NotificationListener.java \ +classpath/javax/management/ObjectInstance.java \ +classpath/javax/management/ObjectName.java \ classpath/javax/management/OperationsException.java \ +classpath/javax/management/QueryExp.java \ classpath/javax/management/ReflectionException.java \ +classpath/javax/management/RuntimeErrorException.java \ +classpath/javax/management/RuntimeMBeanException.java \ classpath/javax/management/RuntimeOperationsException.java \ -classpath/javax/management/StandardMBean.java +classpath/javax/management/ServiceNotFoundException.java \ +classpath/javax/management/StandardMBean.java \ +classpath/javax/management/ValueExp.java javax_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_source_files))) javax/management.list: $(javax_management_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_management_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/management.list + echo $(srcdir)/classpath/lib/javax/management/*.class > javax/management.list -include javax/management.deps +javax_management_loading_source_files = \ +classpath/javax/management/loading/ClassLoaderRepository.java + +javax_management_loading_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_loading_source_files))) + +javax/management/loading.list: $(javax_management_loading_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/management/loading/*.class > javax/management/loading.list + +-include javax/management/loading.deps + + javax_management_openmbean_source_files = \ classpath/javax/management/openmbean/ArrayType.java \ classpath/javax/management/openmbean/CompositeData.java \ classpath/javax/management/openmbean/CompositeDataSupport.java \ classpath/javax/management/openmbean/CompositeType.java \ classpath/javax/management/openmbean/InvalidKeyException.java \ +classpath/javax/management/openmbean/InvalidOpenTypeException.java \ +classpath/javax/management/openmbean/KeyAlreadyExistsException.java \ classpath/javax/management/openmbean/OpenDataException.java \ +classpath/javax/management/openmbean/OpenMBeanAttributeInfo.java \ +classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanConstructorInfo.java \ +classpath/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanInfo.java \ +classpath/javax/management/openmbean/OpenMBeanInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanOperationInfo.java \ +classpath/javax/management/openmbean/OpenMBeanOperationInfoSupport.java \ +classpath/javax/management/openmbean/OpenMBeanParameterInfo.java \ +classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java \ classpath/javax/management/openmbean/OpenType.java \ classpath/javax/management/openmbean/SimpleType.java \ classpath/javax/management/openmbean/TabularData.java \ +classpath/javax/management/openmbean/TabularDataSupport.java \ classpath/javax/management/openmbean/TabularType.java javax_management_openmbean_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_openmbean_source_files))) javax/management/openmbean.list: $(javax_management_openmbean_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_management_openmbean_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/management/openmbean.list + echo $(srcdir)/classpath/lib/javax/management/openmbean/*.class > javax/management/openmbean.list -include javax/management/openmbean.deps @@ -6407,11 +6037,7 @@ javax_naming_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(jav javax/naming.list: $(javax_naming_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming.list + echo $(srcdir)/classpath/lib/javax/naming/*.class > javax/naming.list -include javax/naming.deps @@ -6440,11 +6066,7 @@ javax_naming_directory_header_files = $(patsubst classpath/%,%,$(patsubst %.java javax/naming/directory.list: $(javax_naming_directory_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_directory_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/directory.list + echo $(srcdir)/classpath/lib/javax/naming/directory/*.class > javax/naming/directory.list -include javax/naming/directory.deps @@ -6462,11 +6084,7 @@ javax_naming_event_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h javax/naming/event.list: $(javax_naming_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/event.list + echo $(srcdir)/classpath/lib/javax/naming/event/*.class > javax/naming/event.list -include javax/naming/event.deps @@ -6490,11 +6108,7 @@ javax_naming_ldap_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, javax/naming/ldap.list: $(javax_naming_ldap_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_ldap_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/ldap.list + echo $(srcdir)/classpath/lib/javax/naming/ldap/*.class > javax/naming/ldap.list -include javax/naming/ldap.deps @@ -6505,7 +6119,7 @@ classpath/javax/naming/spi/DirStateFactory.java \ classpath/javax/naming/spi/DirectoryManager.java \ classpath/javax/naming/spi/InitialContextFactory.java \ classpath/javax/naming/spi/InitialContextFactoryBuilder.java \ -javax/naming/spi/NamingManager.java \ +classpath/javax/naming/spi/NamingManager.java \ classpath/javax/naming/spi/ObjectFactory.java \ classpath/javax/naming/spi/ObjectFactoryBuilder.java \ classpath/javax/naming/spi/ResolveResult.java \ @@ -6516,11 +6130,7 @@ javax_naming_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ javax/naming/spi.list: $(javax_naming_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_naming_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/naming/spi.list + echo $(srcdir)/classpath/lib/javax/naming/spi/*.class > javax/naming/spi.list -include javax/naming/spi.deps @@ -6535,16 +6145,13 @@ javax_net_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_ javax/net.list: $(javax_net_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_net_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/net.list + echo $(srcdir)/classpath/lib/javax/net/*.class > javax/net.list -include javax/net.deps javax_net_ssl_source_files = \ +classpath/javax/net/ssl/CertPathTrustManagerParameters.java \ classpath/javax/net/ssl/HandshakeCompletedEvent.java \ classpath/javax/net/ssl/HandshakeCompletedListener.java \ classpath/javax/net/ssl/HostnameVerifier.java \ @@ -6552,9 +6159,12 @@ classpath/javax/net/ssl/HttpsURLConnection.java \ classpath/javax/net/ssl/KeyManager.java \ classpath/javax/net/ssl/KeyManagerFactory.java \ classpath/javax/net/ssl/KeyManagerFactorySpi.java \ +classpath/javax/net/ssl/KeyStoreBuilderParameters.java \ classpath/javax/net/ssl/ManagerFactoryParameters.java \ classpath/javax/net/ssl/SSLContext.java \ classpath/javax/net/ssl/SSLContextSpi.java \ +classpath/javax/net/ssl/SSLEngine.java \ +classpath/javax/net/ssl/SSLEngineResult.java \ classpath/javax/net/ssl/SSLException.java \ classpath/javax/net/ssl/SSLHandshakeException.java \ classpath/javax/net/ssl/SSLKeyException.java \ @@ -6573,6 +6183,7 @@ classpath/javax/net/ssl/TrivialHostnameVerifier.java \ classpath/javax/net/ssl/TrustManager.java \ classpath/javax/net/ssl/TrustManagerFactory.java \ classpath/javax/net/ssl/TrustManagerFactorySpi.java \ +classpath/javax/net/ssl/X509ExtendedKeyManager.java \ classpath/javax/net/ssl/X509KeyManager.java \ classpath/javax/net/ssl/X509TrustManager.java @@ -6580,11 +6191,7 @@ javax_net_ssl_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(ja javax/net/ssl.list: $(javax_net_ssl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_net_ssl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/net/ssl.list + echo $(srcdir)/classpath/lib/javax/net/ssl/*.class > javax/net/ssl.list -include javax/net/ssl.deps @@ -6613,11 +6220,7 @@ javax_print_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java javax/print.list: $(javax_print_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print.list + echo $(srcdir)/classpath/lib/javax/print/*.class > javax/print.list -include javax/print.deps @@ -6654,11 +6257,7 @@ javax_print_attribute_header_files = $(patsubst classpath/%,%,$(patsubst %.java, javax/print/attribute.list: $(javax_print_attribute_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_attribute_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print/attribute.list + echo $(srcdir)/classpath/lib/javax/print/attribute/*.class > javax/print/attribute.list -include javax/print/attribute.deps @@ -6738,11 +6337,7 @@ javax_print_attribute_standard_header_files = $(patsubst classpath/%,%,$(patsubs javax/print/attribute/standard.list: $(javax_print_attribute_standard_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_attribute_standard_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print/attribute/standard.list + echo $(srcdir)/classpath/lib/javax/print/attribute/standard/*.class > javax/print/attribute/standard.list -include javax/print/attribute/standard.deps @@ -6761,11 +6356,7 @@ javax_print_event_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, javax/print/event.list: $(javax_print_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_print_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/print/event.list + echo $(srcdir)/classpath/lib/javax/print/event/*.class > javax/print/event.list -include javax/print/event.deps @@ -6785,7 +6376,7 @@ classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java \ classpath/javax/rmi/ssl/SslRMIServerSocketFactory.java javax-rmi.lo: $(javax_rmi_source_files) - @find classpath/lib/javax/rmi -name '*.class' > javax-rmi.list + @find $(srcdir)/classpath/lib/javax/rmi -name '*.class' > javax-rmi.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-rmi.lo @javax-rmi.list @rm -f javax-rmi.list @@ -6804,11 +6395,7 @@ javax_security_auth_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. javax/security/auth.list: $(javax_security_auth_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth.list + echo $(srcdir)/classpath/lib/javax/security/auth/*.class > javax/security/auth.list -include javax/security/auth.deps @@ -6829,11 +6416,7 @@ javax_security_auth_callback_header_files = $(patsubst classpath/%,%,$(patsubst javax/security/auth/callback.list: $(javax_security_auth_callback_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_callback_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/callback.list + echo $(srcdir)/classpath/lib/javax/security/auth/callback/*.class > javax/security/auth/callback.list -include javax/security/auth/callback.deps @@ -6850,11 +6433,7 @@ javax_security_auth_kerberos_header_files = $(patsubst classpath/%,%,$(patsubst javax/security/auth/kerberos.list: $(javax_security_auth_kerberos_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_kerberos_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/kerberos.list + echo $(srcdir)/classpath/lib/javax/security/auth/kerberos/*.class > javax/security/auth/kerberos.list -include javax/security/auth/kerberos.deps @@ -6878,11 +6457,7 @@ javax_security_auth_login_header_files = $(patsubst classpath/%,%,$(patsubst %.j javax/security/auth/login.list: $(javax_security_auth_login_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_login_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/login.list + echo $(srcdir)/classpath/lib/javax/security/auth/login/*.class > javax/security/auth/login.list -include javax/security/auth/login.deps @@ -6894,11 +6469,7 @@ javax_security_auth_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.jav javax/security/auth/spi.list: $(javax_security_auth_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/spi.list + echo $(srcdir)/classpath/lib/javax/security/auth/spi/*.class > javax/security/auth/spi.list -include javax/security/auth/spi.deps @@ -6911,11 +6482,7 @@ javax_security_auth_x500_header_files = $(patsubst classpath/%,%,$(patsubst %.ja javax/security/auth/x500.list: $(javax_security_auth_x500_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_auth_x500_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/auth/x500.list + echo $(srcdir)/classpath/lib/javax/security/auth/x500/*.class > javax/security/auth/x500.list -include javax/security/auth/x500.deps @@ -6934,11 +6501,7 @@ javax_security_cert_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. javax/security/cert.list: $(javax_security_cert_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_cert_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/cert.list + echo $(srcdir)/classpath/lib/javax/security/cert/*.class > javax/security/cert.list -include javax/security/cert.deps @@ -6959,11 +6522,7 @@ javax_security_sasl_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. javax/security/sasl.list: $(javax_security_sasl_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_security_sasl_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/security/sasl.list + echo $(srcdir)/classpath/lib/javax/security/sasl/*.class > javax/security/sasl.list -include javax/security/sasl.deps @@ -6998,11 +6557,7 @@ javax_sound_midi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ javax/sound/midi.list: $(javax_sound_midi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_midi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/midi.list + echo $(srcdir)/classpath/lib/javax/sound/midi/*.class > javax/sound/midi.list -include javax/sound/midi.deps @@ -7017,11 +6572,7 @@ javax_sound_midi_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% javax/sound/midi/spi.list: $(javax_sound_midi_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_midi_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/midi/spi.list + echo $(srcdir)/classpath/lib/javax/sound/midi/spi/*.class > javax/sound/midi/spi.list -include javax/sound/midi/spi.deps @@ -7054,11 +6605,7 @@ javax_sound_sampled_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%. javax/sound/sampled.list: $(javax_sound_sampled_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_sampled_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/sampled.list + echo $(srcdir)/classpath/lib/javax/sound/sampled/*.class > javax/sound/sampled.list -include javax/sound/sampled.deps @@ -7073,11 +6620,7 @@ javax_sound_sampled_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.jav javax/sound/sampled/spi.list: $(javax_sound_sampled_spi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sound_sampled_spi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sound/sampled/spi.list + echo $(srcdir)/classpath/lib/javax/sound/sampled/spi/*.class > javax/sound/sampled/spi.list -include javax/sound/sampled/spi.deps @@ -7102,11 +6645,7 @@ javax_sql_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_ javax/sql.list: $(javax_sql_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_sql_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/sql.list + echo $(srcdir)/classpath/lib/javax/sql/*.class > javax/sql.list -include javax/sql.deps @@ -7241,11 +6780,7 @@ javax_swing_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java javax/swing.list: $(javax_swing_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing.list + echo $(srcdir)/classpath/lib/javax/swing/*.class > javax/swing.list -include javax/swing.deps @@ -7266,11 +6801,7 @@ javax_swing_border_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h javax/swing/border.list: $(javax_swing_border_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_border_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/border.list + echo $(srcdir)/classpath/lib/javax/swing/border/*.class > javax/swing/border.list -include javax/swing/border.deps @@ -7289,11 +6820,7 @@ javax_swing_colorchooser_header_files = $(patsubst classpath/%,%,$(patsubst %.ja javax/swing/colorchooser.list: $(javax_swing_colorchooser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_colorchooser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/colorchooser.list + echo $(srcdir)/classpath/lib/javax/swing/colorchooser/*.class > javax/swing/colorchooser.list -include javax/swing/colorchooser.deps @@ -7347,11 +6874,7 @@ javax_swing_event_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, javax/swing/event.list: $(javax_swing_event_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_event_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/event.list + echo $(srcdir)/classpath/lib/javax/swing/event/*.class > javax/swing/event.list -include javax/swing/event.deps @@ -7366,11 +6889,7 @@ javax_swing_filechooser_header_files = $(patsubst classpath/%,%,$(patsubst %.jav javax/swing/filechooser.list: $(javax_swing_filechooser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_filechooser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/filechooser.list + echo $(srcdir)/classpath/lib/javax/swing/filechooser/*.class > javax/swing/filechooser.list -include javax/swing/filechooser.deps @@ -7422,11 +6941,7 @@ javax_swing_plaf_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ javax/swing/plaf.list: $(javax_swing_plaf_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/*.class > javax/swing/plaf.list -include javax/swing/plaf.deps @@ -7497,11 +7012,7 @@ javax_swing_plaf_basic_header_files = $(patsubst classpath/%,%,$(patsubst %.java javax/swing/plaf/basic.list: $(javax_swing_plaf_basic_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_basic_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/basic.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/basic/*.class > javax/swing/plaf/basic.list -include javax/swing/plaf/basic.deps @@ -7550,11 +7061,7 @@ javax_swing_plaf_metal_header_files = $(patsubst classpath/%,%,$(patsubst %.java javax/swing/plaf/metal.list: $(javax_swing_plaf_metal_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_metal_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/metal.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/metal/*.class > javax/swing/plaf/metal.list -include javax/swing/plaf/metal.deps @@ -7596,11 +7103,7 @@ javax_swing_plaf_multi_header_files = $(patsubst classpath/%,%,$(patsubst %.java javax/swing/plaf/multi.list: $(javax_swing_plaf_multi_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_multi_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/multi.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/multi/*.class > javax/swing/plaf/multi.list -include javax/swing/plaf/multi.deps @@ -7620,11 +7123,7 @@ javax_swing_plaf_synth_header_files = $(patsubst classpath/%,%,$(patsubst %.java javax/swing/plaf/synth.list: $(javax_swing_plaf_synth_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_plaf_synth_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/plaf/synth.list + echo $(srcdir)/classpath/lib/javax/swing/plaf/synth/*.class > javax/swing/plaf/synth.list -include javax/swing/plaf/synth.deps @@ -7645,11 +7144,7 @@ javax_swing_table_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, javax/swing/table.list: $(javax_swing_table_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_table_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/table.list + echo $(srcdir)/classpath/lib/javax/swing/table/*.class > javax/swing/table.list -include javax/swing/table.deps @@ -7717,17 +7212,14 @@ classpath/javax/swing/text/TextAction.java \ classpath/javax/swing/text/Utilities.java \ classpath/javax/swing/text/View.java \ classpath/javax/swing/text/ViewFactory.java \ -classpath/javax/swing/text/WrappedPlainView.java +classpath/javax/swing/text/WrappedPlainView.java \ +classpath/javax/swing/text/ZoneView.java javax_swing_text_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_text_source_files))) javax/swing/text.list: $(javax_swing_text_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text.list + echo $(srcdir)/classpath/lib/javax/swing/text/*.class > javax/swing/text.list -include javax/swing/text.deps @@ -7736,33 +7228,42 @@ javax_swing_text_html_source_files = \ classpath/javax/swing/text/html/BRView.java \ classpath/javax/swing/text/html/BlockView.java \ classpath/javax/swing/text/html/CSS.java \ +classpath/javax/swing/text/html/CSSBorder.java \ classpath/javax/swing/text/html/CSSParser.java \ +classpath/javax/swing/text/html/FormSubmitEvent.java \ classpath/javax/swing/text/html/FormView.java \ +classpath/javax/swing/text/html/FrameSetView.java \ +classpath/javax/swing/text/html/FrameView.java \ classpath/javax/swing/text/html/HRuleView.java \ classpath/javax/swing/text/html/HTML.java \ classpath/javax/swing/text/html/HTMLDocument.java \ classpath/javax/swing/text/html/HTMLEditorKit.java \ classpath/javax/swing/text/html/HTMLFrameHyperlinkEvent.java \ +classpath/javax/swing/text/html/HTMLWriter.java \ classpath/javax/swing/text/html/ImageView.java \ classpath/javax/swing/text/html/InlineView.java \ classpath/javax/swing/text/html/ListView.java \ classpath/javax/swing/text/html/MinimalHTMLWriter.java \ +classpath/javax/swing/text/html/MultiAttributeSet.java \ +classpath/javax/swing/text/html/MultiStyle.java \ classpath/javax/swing/text/html/NullView.java \ classpath/javax/swing/text/html/ObjectView.java \ classpath/javax/swing/text/html/Option.java \ classpath/javax/swing/text/html/ParagraphView.java \ +classpath/javax/swing/text/html/ResetableModel.java \ +classpath/javax/swing/text/html/ResetablePlainDocument.java \ +classpath/javax/swing/text/html/ResetableToggleButtonModel.java \ +classpath/javax/swing/text/html/SelectComboBoxModel.java \ +classpath/javax/swing/text/html/SelectListModel.java \ classpath/javax/swing/text/html/StyleSheet.java \ -classpath/javax/swing/text/html/TableView.java +classpath/javax/swing/text/html/TableView.java \ +classpath/javax/swing/text/html/ViewAttributeSet.java javax_swing_text_html_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_text_html_source_files))) javax/swing/text/html.list: $(javax_swing_text_html_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_html_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text/html.list + echo $(srcdir)/classpath/lib/javax/swing/text/html/*.class > javax/swing/text/html.list -include javax/swing/text/html.deps @@ -7783,11 +7284,7 @@ javax_swing_text_html_parser_header_files = $(patsubst classpath/%,%,$(patsubst javax/swing/text/html/parser.list: $(javax_swing_text_html_parser_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_html_parser_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text/html/parser.list + echo $(srcdir)/classpath/lib/javax/swing/text/html/parser/*.class > javax/swing/text/html/parser.list -include javax/swing/text/html/parser.deps @@ -7805,11 +7302,7 @@ javax_swing_text_rtf_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% javax/swing/text/rtf.list: $(javax_swing_text_rtf_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_text_rtf_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/text/rtf.list + echo $(srcdir)/classpath/lib/javax/swing/text/rtf/*.class > javax/swing/text/rtf.list -include javax/swing/text/rtf.deps @@ -7837,11 +7330,7 @@ javax_swing_tree_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ javax/swing/tree.list: $(javax_swing_tree_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_tree_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/tree.list + echo $(srcdir)/classpath/lib/javax/swing/tree/*.class > javax/swing/tree.list -include javax/swing/tree.deps @@ -7861,11 +7350,7 @@ javax_swing_undo_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$ javax/swing/undo.list: $(javax_swing_undo_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_swing_undo_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/swing/undo.list + echo $(srcdir)/classpath/lib/javax/swing/undo/*.class > javax/swing/undo.list -include javax/swing/undo.deps @@ -7890,11 +7375,7 @@ javax_transaction_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h, javax/transaction.list: $(javax_transaction_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_transaction_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/transaction.list + echo $(srcdir)/classpath/lib/javax/transaction/*.class > javax/transaction.list -include javax/transaction.deps @@ -7908,11 +7389,7 @@ javax_transaction_xa_header_files = $(patsubst classpath/%,%,$(patsubst %.java,% javax/transaction/xa.list: $(javax_transaction_xa_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(javax_transaction_xa_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > javax/transaction/xa.list + echo $(srcdir)/classpath/lib/javax/transaction/xa/*.class > javax/transaction/xa.list -include javax/transaction/xa.deps @@ -8006,7 +7483,7 @@ classpath/javax/xml/xpath/XPathFunctionResolver.java \ classpath/javax/xml/xpath/XPathVariableResolver.java javax-xml.lo: $(javax_xml_source_files) - @find classpath/lib/javax/xml -name '*.class' > javax-xml.list + @find $(srcdir)/classpath/lib/javax/xml -name '*.class' > javax-xml.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-xml.lo @javax-xml.list @rm -f javax-xml.list @@ -8024,11 +7501,7 @@ org_ietf_jgss_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(or org/ietf/jgss.list: $(org_ietf_jgss_source_files) @$(mkinstalldirs) $(dir $@) - @for file in $(org_ietf_jgss_source_files); do \ - if test -f $(srcdir)/$$file; then \ - echo $(srcdir)/$$file; \ - else echo $$file; fi; \ - done > org/ietf/jgss.list + echo $(srcdir)/classpath/lib/org/ietf/jgss/*.class > org/ietf/jgss.list -include org/ietf/jgss.deps @@ -8569,7 +8042,7 @@ classpath/org/omg/SendingContext/RunTimeOperations.java \ classpath/org/omg/stub/java/rmi/_Remote_Stub.java org-omg.lo: $(org_omg_source_files) - @find classpath/lib/org/omg -name '*.class' > org-omg.list + @find $(srcdir)/classpath/lib/org/omg -name '*.class' > org-omg.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-omg.lo @org-omg.list @rm -f org-omg.list @@ -8586,7 +8059,7 @@ classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDat classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java org-relaxng.lo: $(org_relaxng_source_files) - @find classpath/lib/org/relaxng -name '*.class' > org-relaxng.list + @find $(srcdir)/classpath/lib/org/relaxng -name '*.class' > org-relaxng.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-relaxng.lo @org-relaxng.list @rm -f org-relaxng.list @@ -8739,7 +8212,7 @@ classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java \ classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java org-w3c.lo: $(org_w3c_source_files) - @find classpath/lib/org/w3c -name '*.class' > org-w3c.list + @find $(srcdir)/classpath/lib/org/w3c -name '*.class' > org-w3c.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-w3c.lo @org-w3c.list @rm -f org-w3c.list @@ -8782,10 +8255,85 @@ classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java \ classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java org-xml.lo: $(org_xml_source_files) - @find classpath/lib/org/xml -name '*.class' > org-xml.list + @find $(srcdir)/classpath/lib/org/xml -name '*.class' > org-xml.list $(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o org-xml.lo @org-xml.list @rm -f org-xml.list +sun_misc_source_files = \ +classpath/sun/misc/Service.java \ +classpath/sun/misc/ServiceConfigurationError.java \ +sun/misc/Unsafe.java + +sun_misc_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_misc_source_files))) + +sun/misc.list: $(sun_misc_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/misc/*.class > sun/misc.list + +-include sun/misc.deps + + +sun_reflect_source_files = \ +sun/reflect/Reflection.java + +sun_reflect_header_files = $(patsubst %.java,%.h,$(sun_reflect_source_files)) + +sun/reflect.list: $(sun_reflect_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/*.class > sun/reflect.list + +-include sun/reflect.deps + + +sun_reflect_annotation_source_files = \ +classpath/sun/reflect/annotation/AnnotationInvocationHandler.java \ +classpath/sun/reflect/annotation/AnnotationParser.java \ +classpath/sun/reflect/annotation/AnnotationType.java \ +classpath/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java \ +classpath/sun/reflect/annotation/ExceptionProxy.java + +sun_reflect_annotation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_reflect_annotation_source_files))) + +sun/reflect/annotation.list: $(sun_reflect_annotation_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/annotation/*.class > sun/reflect/annotation.list + +-include sun/reflect/annotation.deps + + +sun_reflect_misc_source_files = \ +sun/reflect/misc/ReflectUtil.java + +sun_reflect_misc_header_files = $(patsubst %.java,%.h,$(sun_reflect_misc_source_files)) + +sun/reflect/misc.list: $(sun_reflect_misc_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/misc/*.class > sun/reflect/misc.list + +-include sun/reflect/misc.deps + + +java/process-Ecos.list: java/lang/EcosProcess.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/EcosProcess*.class > java/process-Ecos.list + +-include java/process-Ecos.deps + + +java/process-Win32.list: java/lang/Win32Process.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/Win32Process*.class > java/process-Win32.list + +-include java/process-Win32.deps + + +java/process-Posix.list: java/lang/PosixProcess.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/PosixProcess*.class > java/process-Posix.list + +-include java/process-Posix.deps + + all_packages_source_files = \ gnu/awt.list \ @@ -8810,11 +8358,13 @@ all_packages_source_files = \ gnu/java/awt/color.list \ gnu/java/awt/dnd.list \ gnu/java/awt/font.list \ + gnu/java/awt/font/autofit.list \ gnu/java/awt/font/opentype.list \ gnu/java/awt/font/opentype/truetype.list \ gnu/java/awt/image.list \ gnu/java/awt/java2d.list \ gnu/java/awt/peer.list \ + gnu/java/awt/peer/headless.list \ gnu/java/awt/print.list \ gnu/java/io.list \ gnu/java/lang.list \ @@ -8839,7 +8389,6 @@ all_packages_source_files = \ gnu/java/rmi/activation.list \ gnu/java/rmi/dgc.list \ gnu/java/rmi/registry.list \ - gnu/java/rmi/rmic.list \ gnu/java/rmi/server.list \ gnu/java/security.list \ gnu/java/security/action.list \ @@ -8897,6 +8446,11 @@ all_packages_source_files = \ gnu/javax/imageio/gif.list \ gnu/javax/imageio/jpeg.list \ gnu/javax/imageio/png.list \ + gnu/javax/management.list \ + gnu/javax/naming/giop.list \ + gnu/javax/naming/ictxImpl/trans.list \ + gnu/javax/naming/jndi/url/corbaname.list \ + gnu/javax/naming/jndi/url/rmi.list \ gnu/javax/net/ssl.list \ gnu/javax/net/ssl/provider.list \ gnu/javax/print.list \ @@ -8914,6 +8468,7 @@ all_packages_source_files = \ gnu/javax/swing/plaf/gnu.list \ gnu/javax/swing/plaf/metal.list \ gnu/javax/swing/text/html.list \ + gnu/javax/swing/text/html/css.list \ gnu/javax/swing/text/html/parser.list \ gnu/javax/swing/text/html/parser/models.list \ gnu/javax/swing/text/html/parser/support.list \ @@ -8963,6 +8518,9 @@ all_packages_source_files = \ java/sql.list \ java/text.list \ java/util.list \ + java/util/concurrent.list \ + java/util/concurrent/atomic.list \ + java/util/concurrent/locks.list \ java/util/jar.list \ java/util/logging.list \ java/util/prefs.list \ @@ -8973,6 +8531,7 @@ all_packages_source_files = \ javax/crypto/interfaces.list \ javax/crypto/spec.list \ javax/management.list \ + javax/management/loading.list \ javax/management/openmbean.list \ javax/naming.list \ javax/naming/directory.list \ @@ -9017,7 +8576,11 @@ all_packages_source_files = \ javax/swing/undo.list \ javax/transaction.list \ javax/transaction/xa.list \ - org/ietf/jgss.list + org/ietf/jgss.list \ + sun/misc.list \ + sun/reflect.list \ + sun/reflect/annotation.list \ + sun/reflect/misc.list ordinary_header_files = \ $(gnu_awt_header_files) \ @@ -9037,16 +8600,19 @@ ordinary_header_files = \ $(gnu_gcj_io_header_files) \ $(gnu_gcj_jvmti_header_files) \ $(gnu_gcj_runtime_header_files) \ + $(gnu_gcj_tools_gcj_dbtool_header_files) \ $(gnu_gcj_util_header_files) \ $(gnu_java_awt_header_files) \ $(gnu_java_awt_color_header_files) \ $(gnu_java_awt_dnd_header_files) \ $(gnu_java_awt_font_header_files) \ + $(gnu_java_awt_font_autofit_header_files) \ $(gnu_java_awt_font_opentype_header_files) \ $(gnu_java_awt_font_opentype_truetype_header_files) \ $(gnu_java_awt_image_header_files) \ $(gnu_java_awt_java2d_header_files) \ $(gnu_java_awt_peer_header_files) \ + $(gnu_java_awt_peer_headless_header_files) \ $(gnu_java_awt_print_header_files) \ $(gnu_java_io_header_files) \ $(gnu_java_lang_header_files) \ @@ -9071,7 +8637,6 @@ ordinary_header_files = \ $(gnu_java_rmi_activation_header_files) \ $(gnu_java_rmi_dgc_header_files) \ $(gnu_java_rmi_registry_header_files) \ - $(gnu_java_rmi_rmic_header_files) \ $(gnu_java_rmi_server_header_files) \ $(gnu_java_security_header_files) \ $(gnu_java_security_action_header_files) \ @@ -9129,6 +8694,11 @@ ordinary_header_files = \ $(gnu_javax_imageio_gif_header_files) \ $(gnu_javax_imageio_jpeg_header_files) \ $(gnu_javax_imageio_png_header_files) \ + $(gnu_javax_management_header_files) \ + $(gnu_javax_naming_giop_header_files) \ + $(gnu_javax_naming_ictxImpl_trans_header_files) \ + $(gnu_javax_naming_jndi_url_corbaname_header_files) \ + $(gnu_javax_naming_jndi_url_rmi_header_files) \ $(gnu_javax_net_ssl_header_files) \ $(gnu_javax_net_ssl_provider_header_files) \ $(gnu_javax_print_header_files) \ @@ -9146,6 +8716,7 @@ ordinary_header_files = \ $(gnu_javax_swing_plaf_gnu_header_files) \ $(gnu_javax_swing_plaf_metal_header_files) \ $(gnu_javax_swing_text_html_header_files) \ + $(gnu_javax_swing_text_html_css_header_files) \ $(gnu_javax_swing_text_html_parser_header_files) \ $(gnu_javax_swing_text_html_parser_models_header_files) \ $(gnu_javax_swing_text_html_parser_support_header_files) \ @@ -9195,6 +8766,9 @@ ordinary_header_files = \ $(java_sql_header_files) \ $(java_text_header_files) \ $(java_util_header_files) \ + $(java_util_concurrent_header_files) \ + $(java_util_concurrent_atomic_header_files) \ + $(java_util_concurrent_locks_header_files) \ $(java_util_jar_header_files) \ $(java_util_logging_header_files) \ $(java_util_prefs_header_files) \ @@ -9205,6 +8779,7 @@ ordinary_header_files = \ $(javax_crypto_interfaces_header_files) \ $(javax_crypto_spec_header_files) \ $(javax_management_header_files) \ + $(javax_management_loading_header_files) \ $(javax_management_openmbean_header_files) \ $(javax_naming_header_files) \ $(javax_naming_directory_header_files) \ @@ -9249,13 +8824,16 @@ ordinary_header_files = \ $(javax_swing_undo_header_files) \ $(javax_transaction_header_files) \ $(javax_transaction_xa_header_files) \ - $(org_ietf_jgss_header_files) + $(org_ietf_jgss_header_files) \ + $(sun_misc_header_files) \ + $(sun_reflect_header_files) \ + $(sun_reflect_annotation_header_files) \ + $(sun_reflect_misc_header_files) bc_objects = \ gnu-CORBA.lo \ gnu-java-awt-dnd-peer-gtk.lo \ gnu-java-awt-peer-gtk.lo \ - gnu-java-awt-peer-qt.lo \ gnu-java-awt-peer-swing.lo \ gnu-java-beans.lo \ gnu-java-util-prefs-gconf.lo \ @@ -9271,14 +8849,21 @@ bc_objects = \ org-xml.lo property_files = \ - classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties \ - classpath/resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties \ + classpath/resource/gnu/classpath/tools/appletviewer/messages.properties \ + classpath/resource/gnu/classpath/tools/common/Messages.properties \ classpath/resource/gnu/classpath/tools/getopt/Messages.properties \ classpath/resource/gnu/classpath/tools/jar/messages.properties \ + classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties \ classpath/resource/gnu/classpath/tools/jarsigner/messages.properties \ + classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties \ classpath/resource/gnu/classpath/tools/keytool/messages.properties \ classpath/resource/gnu/classpath/tools/native2ascii/messages.properties \ + classpath/resource/gnu/classpath/tools/orbd/messages.properties \ + classpath/resource/gnu/classpath/tools/rmic/messages.properties \ + classpath/resource/gnu/classpath/tools/rmid/messages.properties \ + classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties \ classpath/resource/gnu/classpath/tools/serialver/messages.properties \ + classpath/resource/gnu/classpath/tools/tnameserv/messages.properties \ classpath/resource/gnu/java/awt/peer/gtk/font.properties \ classpath/resource/gnu/java/awt/peer/x/fonts.properties \ classpath/resource/gnu/java/util/regex/MessagesBundle.properties \ @@ -9290,7 +8875,6 @@ property_files = \ classpath/resource/java/util/iso4217.properties \ classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \ classpath/resource/org/ietf/jgss/MessagesBundle.properties \ - classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory \ classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \ classpath/resource/META-INF/services/javax.sound.midi.spi.MidiDeviceProvider \ classpath/resource/META-INF/services/javax.sound.midi.spi.MidiFileReader \ diff --git a/libjava/stacktrace.cc b/libjava/stacktrace.cc index 77a28644641..5751e29b5f1 100644 --- a/libjava/stacktrace.cc +++ b/libjava/stacktrace.cc @@ -21,9 +21,12 @@ details. */ #include #include #include +#include #include #include +#include #include +#include #include #include #include @@ -132,8 +135,17 @@ _Jv_StackTrace::UnwindTraceFn (struct _Unwind_Context *context, void *state_ptr) state->frames[pos].interp.pc = state->interp_frame->pc; state->interp_frame = state->interp_frame->next; } - else + else #endif + // We handle proxies in the same way as interpreted classes + if (_Jv_is_proxy (func_addr)) + { + state->frames[pos].type = frame_proxy; + state->frames[pos].proxyClass = state->interp_frame->proxyClass; + state->frames[pos].proxyMethod = state->interp_frame->proxyMethod; + state->interp_frame = state->interp_frame->next; + } + else { #ifdef HAVE_GETIPINFO _Unwind_Ptr ip; @@ -201,6 +213,13 @@ _Jv_StackTrace::getLineNumberForFrame(_Jv_StackFrame *frame, NameFinder *finder, } #endif + if (frame->type == frame_proxy) + { + *sourceFileName = NULL; + *lineNum = 0; + return; + } + // Use _Jv_platform_dladdr() to determine in which binary the address IP // resides. _Jv_AddrInfo info; @@ -273,6 +292,11 @@ _Jv_StackTrace::FillInFrameInfo (_Jv_StackFrame *frame) } } } + else if (frame->type == frame_proxy) + { + klass = frame->proxyClass; + meth = frame->proxyMethod; + } #ifdef INTERPRETER else if (frame->type == frame_interpreter) { @@ -466,55 +490,6 @@ _Jv_StackTrace::GetCallerInfo (jclass checkClass, jclass *caller_class, *caller_meth = trace_data.foundMeth; } -// Return a java array containing the Java classes on the stack above CHECKCLASS. -JArray * -_Jv_StackTrace::GetClassContext (jclass checkClass) -{ - JArray *result = NULL; - - int trace_size = 100; - _Jv_StackFrame frames[trace_size]; - _Jv_UnwindState state (trace_size); - state.frames = (_Jv_StackFrame *) &frames; - - //JvSynchronized (ncodeMap); - UpdateNCodeMap (); - - _Unwind_Backtrace (UnwindTraceFn, &state); - - // Count the number of Java frames on the stack. - int jframe_count = 0; - bool seen_checkClass = false; - int start_pos = -1; - for (int i = 0; i < state.pos; i++) - { - _Jv_StackFrame *frame = &state.frames[i]; - FillInFrameInfo (frame); - - if (seen_checkClass) - { - if (frame->klass) - { - jframe_count++; - if (start_pos == -1) - start_pos = i; - } - } - else - seen_checkClass = frame->klass == checkClass; - } - result = (JArray *) _Jv_NewObjectArray (jframe_count, &Class::class$, NULL); - int pos = 0; - - for (int i = start_pos; i < state.pos; i++) - { - _Jv_StackFrame *frame = &state.frames[i]; - if (frame->klass) - elements(result)[pos++] = frame->klass; - } - return result; -} - _Unwind_Reason_Code _Jv_StackTrace::non_system_trace_fn (_Jv_UnwindState *state) { @@ -630,3 +605,218 @@ _Jv_StackTrace::GetAccessControlStack (void) return result; } + +JArray * +_Jv_StackTrace::GetStackWalkerStack () +{ + int trace_size = 100; + _Jv_StackFrame frames[trace_size]; + _Jv_UnwindState state (trace_size); + state.frames = (_Jv_StackFrame *) &frames; + + UpdateNCodeMap (); + _Unwind_Backtrace (UnwindTraceFn, &state); + + int num_frames = 0, start_frame = -1; + enum + { + VMSW_GETCLASSCONTEXT, + JLRM_INVOKE_OR_USER_FN, + USER_FN + } + expect = VMSW_GETCLASSCONTEXT; + for (int i = 0; i < state.pos; i++) + { + _Jv_StackFrame *frame = &state.frames[i]; + FillInFrameInfo (frame); + if (!frame->klass || !frame->meth) + continue; + + switch (expect) + { + case VMSW_GETCLASSCONTEXT: + JvAssert ( + frame->klass == &::gnu::classpath::VMStackWalker::class$ + && strcmp (frame->meth->name->chars(), "getClassContext") == 0); + expect = JLRM_INVOKE_OR_USER_FN; + break; + + case JLRM_INVOKE_OR_USER_FN: + if (frame->klass != &::java::lang::reflect::Method::class$ + || strcmp (frame->meth->name->chars(), "invoke") != 0) + start_frame = i; + expect = USER_FN; + break; + + case USER_FN: + if (start_frame == -1) + start_frame = i; + break; + } + + if (start_frame != -1) + { + if (frame->klass == &::gnu::java::lang::MainThread::class$) + break; + num_frames++; + } + } + JvAssert (num_frames > 0 && start_frame > 0); + + JArray *result = (JArray *) + _Jv_NewObjectArray (num_frames, &::java::lang::Class::class$, NULL); + jclass *c = elements (result); + + for (int i = start_frame, j = 0; i < state.pos && j < num_frames; i++) + { + _Jv_StackFrame *frame = &state.frames[i]; + if (!frame->klass || !frame->meth) + continue; + c[j] = frame->klass; + j++; + } + + return result; +} + +typedef enum + { + VMSW_GET_CALLING_ITEM, + JLRM_INVOKE_OR_CALLER, + CALLER, + CALLER_OF_CALLER + } gswcc_expect; + +struct StackWalkerTraceData +{ + gswcc_expect expect; + jclass result; +}; + +_Unwind_Reason_Code +_Jv_StackTrace::stackwalker_trace_fn (_Jv_UnwindState *state) +{ + StackWalkerTraceData *trace_data = (StackWalkerTraceData *) + state->trace_data; + _Jv_StackFrame *frame = &state->frames[state->pos]; + FillInFrameInfo (frame); + + if (!(frame->klass && frame->meth)) + return _URC_NO_REASON; + + switch (trace_data->expect) + { + case VMSW_GET_CALLING_ITEM: + JvAssert (frame->klass == &::gnu::classpath::VMStackWalker::class$); + trace_data->expect = JLRM_INVOKE_OR_CALLER; + break; + + case JLRM_INVOKE_OR_CALLER: + if (frame->klass == &::java::lang::reflect::Method::class$ + && strcmp (frame->meth->name->chars(), "invoke") == 0) + trace_data->expect = CALLER; + else + trace_data->expect = CALLER_OF_CALLER; + break; + + case CALLER: + trace_data->expect = CALLER_OF_CALLER; + break; + + case CALLER_OF_CALLER: + trace_data->result = frame->klass; + return _URC_NORMAL_STOP; + } + + return _URC_NO_REASON; +} + +jclass +_Jv_StackTrace::GetStackWalkerCallingClass (void) +{ + int trace_size = 100; + _Jv_StackFrame frames[trace_size]; + _Jv_UnwindState state (trace_size); + state.frames = (_Jv_StackFrame *) &frames; + + StackWalkerTraceData trace_data; + trace_data.expect = VMSW_GET_CALLING_ITEM; + trace_data.result = NULL; + + state.trace_function = stackwalker_trace_fn; + state.trace_data = (void *) &trace_data; + + UpdateNCodeMap(); + _Unwind_Backtrace (UnwindTraceFn, &state); + + return trace_data.result; +} + +struct StackWalkerNNLTraceData +{ + gswcc_expect expect; + ClassLoader *result; +}; + +_Unwind_Reason_Code +_Jv_StackTrace::stackwalker_nnl_trace_fn (_Jv_UnwindState *state) +{ + StackWalkerNNLTraceData *trace_data = (StackWalkerNNLTraceData *) + state->trace_data; + _Jv_StackFrame *frame = &state->frames[state->pos]; + FillInFrameInfo (frame); + + if (!(frame->klass && frame->meth)) + return _URC_NO_REASON; + + switch (trace_data->expect) + { + case VMSW_GET_CALLING_ITEM: + JvAssert (frame->klass == &::gnu::classpath::VMStackWalker::class$); + trace_data->expect = JLRM_INVOKE_OR_CALLER; + break; + + case JLRM_INVOKE_OR_CALLER: + if (frame->klass == &::java::lang::reflect::Method::class$ + && strcmp (frame->meth->name->chars(), "invoke") == 0) + trace_data->expect = CALLER; + else + trace_data->expect = CALLER_OF_CALLER; + break; + + case CALLER: + trace_data->expect = CALLER_OF_CALLER; + break; + + case CALLER_OF_CALLER: + ClassLoader *cl = frame->klass->getClassLoaderInternal (); + if (cl != NULL) + { + trace_data->result = cl; + return _URC_NORMAL_STOP; + } + } + + return _URC_NO_REASON; +} + +ClassLoader * +_Jv_StackTrace::GetStackWalkerFirstNonNullLoader (void) +{ + int trace_size = 100; + _Jv_StackFrame frames[trace_size]; + _Jv_UnwindState state (trace_size); + state.frames = (_Jv_StackFrame *) &frames; + + StackWalkerNNLTraceData trace_data; + trace_data.expect = VMSW_GET_CALLING_ITEM; + trace_data.result = NULL; + + state.trace_function = stackwalker_nnl_trace_fn; + state.trace_data = (void *) &trace_data; + + UpdateNCodeMap(); + _Unwind_Backtrace (UnwindTraceFn, &state); + + return trace_data.result; +} diff --git a/libjava/standard.omit.in b/libjava/standard.omit.in index 5c49ceef8b2..78caef86c54 100644 --- a/libjava/standard.omit.in +++ b/libjava/standard.omit.in @@ -1,6 +1,3 @@ -java/lang/EcosProcess.java -java/lang/Win32Process.java -java/lang/PosixProcess.java gnu/java/nio/charset/iconv java/util/zip/DeflaterConstants.java java/util/zip/DeflaterEngine.java @@ -11,3 +8,9 @@ java/util/zip/InflaterHuffmanTree.java java/util/zip/OutputWindow.java java/util/zip/PendingBuffer.java java/util/zip/StreamManipulator.java +gnu/java/nio/NIOSocketImpl.java +gnu/java/nio/KqueueSelectorImpl.java +gnu/java/nio/EpollSelectorImpl.java +gnu/java/nio/FileChannelImpl.java +gnu/java/nio/KqueueSelectionKeyImpl.java +gnu/java/nio/EpollSelectionKeyImpl.java diff --git a/libjava/sun/misc/Service.h b/libjava/sun/misc/Service.h new file mode 100644 index 00000000000..e698fed4bc4 --- /dev/null +++ b/libjava/sun/misc/Service.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_misc_Service__ +#define __sun_misc_Service__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace misc + { + class Service; + } + } +} + +class sun::misc::Service : public ::java::lang::Object +{ + +public: + Service(); + static ::java::util::Iterator * providers(::java::lang::Class *, ::java::lang::ClassLoader *); + static ::java::lang::Class class$; +}; + +#endif // __sun_misc_Service__ diff --git a/libjava/sun/misc/ServiceConfigurationError.h b/libjava/sun/misc/ServiceConfigurationError.h new file mode 100644 index 00000000000..aee51b34711 --- /dev/null +++ b/libjava/sun/misc/ServiceConfigurationError.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_misc_ServiceConfigurationError__ +#define __sun_misc_ServiceConfigurationError__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace misc + { + class ServiceConfigurationError; + } + } +} + +class sun::misc::ServiceConfigurationError : public ::java::lang::Error +{ + +public: + ServiceConfigurationError(); + ServiceConfigurationError(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __sun_misc_ServiceConfigurationError__ diff --git a/libjava/sun/misc/Unsafe.h b/libjava/sun/misc/Unsafe.h new file mode 100644 index 00000000000..d50c3e05011 --- /dev/null +++ b/libjava/sun/misc/Unsafe.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_misc_Unsafe__ +#define __sun_misc_Unsafe__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace misc + { + class Unsafe; + } + } +} + +class sun::misc::Unsafe : public ::java::lang::Object +{ + + Unsafe(); +public: + static ::sun::misc::Unsafe * getUnsafe(); + virtual jlong objectFieldOffset(::java::lang::reflect::Field *); + virtual jboolean compareAndSwapInt(::java::lang::Object *, jlong, jint, jint); + virtual jboolean compareAndSwapLong(::java::lang::Object *, jlong, jlong, jlong); + virtual jboolean compareAndSwapObject(::java::lang::Object *, jlong, ::java::lang::Object *, ::java::lang::Object *); + virtual void putOrderedInt(::java::lang::Object *, jlong, jint); + virtual void putOrderedLong(::java::lang::Object *, jlong, jlong); + virtual void putOrderedObject(::java::lang::Object *, jlong, ::java::lang::Object *); + virtual void putIntVolatile(::java::lang::Object *, jlong, jint); + virtual jint getIntVolatile(::java::lang::Object *, jlong); + virtual void putLongVolatile(::java::lang::Object *, jlong, jlong); + virtual void putLong(::java::lang::Object *, jlong, jlong); + virtual jlong getLongVolatile(::java::lang::Object *, jlong); + virtual jlong getLong(::java::lang::Object *, jlong); + virtual void putObjectVolatile(::java::lang::Object *, jlong, ::java::lang::Object *); + virtual void putObject(::java::lang::Object *, jlong, ::java::lang::Object *); + virtual ::java::lang::Object * getObjectVolatile(::java::lang::Object *, jlong); + virtual jint arrayBaseOffset(::java::lang::Class *); + virtual jint arrayIndexScale(::java::lang::Class *); + virtual void unpark(::java::lang::Thread *); + virtual void park(jboolean, jlong); +private: + static ::sun::misc::Unsafe * unsafe; +public: + static ::java::lang::Class class$; +}; + +#endif // __sun_misc_Unsafe__ diff --git a/libjava/sun/misc/Unsafe.java b/libjava/sun/misc/Unsafe.java new file mode 100644 index 00000000000..fa199f83e0a --- /dev/null +++ b/libjava/sun/misc/Unsafe.java @@ -0,0 +1,328 @@ +/* Unsafe.java - Unsafe operations needed for concurrency + Copyright (C) 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 sun.misc; + +import java.lang.reflect.Field; + +/** + * This class should provide access to low-level operations and its + * use should be limited to trusted code. Fields can be accessed using + * memory addresses, with undefined behaviour occurring if invalid memory + * addresses are given. + * + * @author Tom Tromey (tromey@redhat.com) + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ +public class Unsafe +{ + // Singleton class. + private static Unsafe unsafe = new Unsafe(); + + /** + * Private default constructor to prevent creation of an arbitrary + * number of instances. + */ + private Unsafe() + { + } + + /** + * Retrieve the singleton instance of Unsafe. The calling + * method should guard this instance from untrusted code, as it provides + * access to low-level operations such as direct memory access. + * + * @throws SecurityException if a security manager exists and prevents + * access to the system properties. + */ + public static Unsafe getUnsafe() + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPropertiesAccess(); + return unsafe; + } + + /** + * Returns the memory address offset of the given static field. + * The offset is merely used as a means to access a particular field + * in the other methods of this class. The value is unique to the given + * field and the same value should be returned on each subsequent call. + * + * @param field the field whose offset should be returned. + * @return the offset of the given field. + */ + public native long objectFieldOffset(Field field); + + /** + * Compares the value of the integer field at the specified offset + * in the supplied object with the given expected value, and updates + * it if they match. The operation of this method should be atomic, + * thus providing an uninterruptible way of updating an integer field. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the integer field within obj. + * @param expect the expected value of the field. + * @param update the new value of the field if it equals expect. + * @return true if the field was changed. + */ + public native boolean compareAndSwapInt(Object obj, long offset, + int expect, int update); + + /** + * Compares the value of the long field at the specified offset + * in the supplied object with the given expected value, and updates + * it if they match. The operation of this method should be atomic, + * thus providing an uninterruptible way of updating a long field. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the long field within obj. + * @param expect the expected value of the field. + * @param update the new value of the field if it equals expect. + * @return true if the field was changed. + */ + public native boolean compareAndSwapLong(Object obj, long offset, + long expect, long update); + + /** + * Compares the value of the object field at the specified offset + * in the supplied object with the given expected value, and updates + * it if they match. The operation of this method should be atomic, + * thus providing an uninterruptible way of updating an object field. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the object field within obj. + * @param expect the expected value of the field. + * @param update the new value of the field if it equals expect. + * @return true if the field was changed. + */ + public native boolean compareAndSwapObject(Object obj, long offset, + Object expect, Object update); + + /** + * Sets the value of the integer field at the specified offset in the + * supplied object to the given value. This is an ordered or lazy + * version of putIntVolatile(Object,long,int), which + * doesn't guarantee the immediate visibility of the change to other + * threads. It is only really useful where the integer field is + * volatile, and is thus expected to change unexpectedly. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the integer field within obj. + * @param value the new value of the field. + * @see #putIntVolatile(Object,long,int) + */ + public native void putOrderedInt(Object obj, long offset, int value); + + /** + * Sets the value of the long field at the specified offset in the + * supplied object to the given value. This is an ordered or lazy + * version of putLongVolatile(Object,long,long), which + * doesn't guarantee the immediate visibility of the change to other + * threads. It is only really useful where the long field is + * volatile, and is thus expected to change unexpectedly. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the long field within obj. + * @param value the new value of the field. + * @see #putLongVolatile(Object,long,long) + */ + public native void putOrderedLong(Object obj, long offset, long value); + + /** + * Sets the value of the object field at the specified offset in the + * supplied object to the given value. This is an ordered or lazy + * version of putObjectVolatile(Object,long,Object), which + * doesn't guarantee the immediate visibility of the change to other + * threads. It is only really useful where the object field is + * volatile, and is thus expected to change unexpectedly. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the object field within obj. + * @param value the new value of the field. + */ + public native void putOrderedObject(Object obj, long offset, Object value); + + /** + * Sets the value of the integer field at the specified offset in the + * supplied object to the given value, with volatile store semantics. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the integer field within obj. + * @param value the new value of the field. + */ + public native void putIntVolatile(Object obj, long offset, int value); + + /** + * Retrieves the value of the integer field at the specified offset in the + * supplied object with volatile load semantics. + * + * @param obj the object containing the field to read. + * @param offset the offset of the integer field within obj. + */ + public native int getIntVolatile(Object obj, long offset); + + /** + * Sets the value of the long field at the specified offset in the + * supplied object to the given value, with volatile store semantics. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the long field within obj. + * @param value the new value of the field. + * @see #putLong(Object,long,long) + */ + public native void putLongVolatile(Object obj, long offset, long value); + + /** + * Sets the value of the long field at the specified offset in the + * supplied object to the given value. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the long field within obj. + * @param value the new value of the field. + * @see #putLongVolatile(Object,long,long) + */ + public native void putLong(Object obj, long offset, long value); + + /** + * Retrieves the value of the long field at the specified offset in the + * supplied object with volatile load semantics. + * + * @param obj the object containing the field to read. + * @param offset the offset of the long field within obj. + * @see #getLong(Object,long) + */ + public native long getLongVolatile(Object obj, long offset); + + /** + * Retrieves the value of the long field at the specified offset in the + * supplied object. + * + * @param obj the object containing the field to read. + * @param offset the offset of the long field within obj. + * @see #getLongVolatile(Object,long) + */ + public native long getLong(Object obj, long offset); + + /** + * Sets the value of the object field at the specified offset in the + * supplied object to the given value, with volatile store semantics. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the object field within obj. + * @param value the new value of the field. + * @see #putObject(Object,long,Object) + */ + public native void putObjectVolatile(Object obj, long offset, Object value); + + /** + * Sets the value of the object field at the specified offset in the + * supplied object to the given value. + * + * @param obj the object containing the field to modify. + * @param offset the offset of the object field within obj. + * @param value the new value of the field. + * @see #putObjectVolatile(Object,long,Object) + */ + public native void putObject(Object obj, long offset, Object value); + + /** + * Retrieves the value of the object field at the specified offset in the + * supplied object with volatile load semantics. + * + * @param obj the object containing the field to read. + * @param offset the offset of the object field within obj. + */ + public native Object getObjectVolatile(Object obj, long offset); + + /** + * Returns the offset of the first element for a given array class. + * To access elements of the array class, this value may be used along + * with that returned by + * arrayIndexScale, + * if non-zero. + * + * @param arrayClass the class for which the first element's address should + * be obtained. + * @return the offset of the first element of the array class. + * @see arrayIndexScale(Class) + */ + public native int arrayBaseOffset(Class arrayClass); + + /** + * Returns the scale factor used for addressing elements of the supplied + * array class. Where a suitable scale factor can not be returned (e.g. + * for primitive types), zero should be returned. The returned value + * can be used with + * arrayBaseOffset + * to access elements of the class. + * + * @param arrayClass the class whose scale factor should be returned. + * @return the scale factor, or zero if not supported for this array class. + */ + public native int arrayIndexScale(Class arrayClass); + + /** + * Releases the block on a thread created by + * park. This method can also be used + * to terminate a blockage caused by a prior call to park. + * This operation is unsafe, as the thread must be guaranteed to be + * live. This is true of Java, but not native code. + * + * @param thread the thread to unblock. + */ + public native void unpark(Thread thread); + + /** + * Blocks the thread until a matching + * unpark occurs, the thread is + * interrupted or the optional timeout expires. If an unpark + * call has already occurred, this also counts. A timeout value of zero + * is defined as no timeout. When isAbsolute is + * true, the timeout is in milliseconds relative to the + * epoch. Otherwise, the value is the number of nanoseconds which must + * occur before timeout. This call may also return spuriously (i.e. + * for no apparent reason). + * + * @param isAbsolute true if the timeout is specified in milliseconds from + * the epoch. + * @param time either the number of nanoseconds to wait, or a time in + * milliseconds from the epoch to wait for. + */ + public native void park(boolean isAbsolute, long time); + +} diff --git a/libjava/sun/misc/natUnsafe.cc b/libjava/sun/misc/natUnsafe.cc new file mode 100644 index 00000000000..7aa422e58dc --- /dev/null +++ b/libjava/sun/misc/natUnsafe.cc @@ -0,0 +1,252 @@ +// natUnsafe.cc - Implementation of sun.misc.Unsafe native methods. + +/* 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 +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "sysdep/locks.h" + +// Use a spinlock for multi-word accesses +class spinlock +{ + static volatile obj_addr_t lock; + +public: + +spinlock () + { + while (! compare_and_swap (&lock, 0, 1)); + } + ~spinlock () + { + release_set (&lock, 0); + } +}; + +// This is a single lock that is used for all synchronized accesses if +// the compiler can't generate inline compare-and-swap operations. In +// most cases it'll never be used, but the i386 needs it for 64-bit +// locked accesses and so does PPC32. It's worth building libgcj with +// target=i486 (or above) to get the inlines. +volatile obj_addr_t spinlock::lock; + + +static inline bool +compareAndSwap (volatile jint *addr, jint old, jint new_val) +{ + jboolean result = false; + spinlock lock; + if ((result = (*addr == old))) + *addr = new_val; + return result; +} + +static inline bool +compareAndSwap (volatile jlong *addr, jlong old, jlong new_val) +{ + jboolean result = false; + spinlock lock; + if ((result = (*addr == old))) + *addr = new_val; + return result; +} + +static inline bool +compareAndSwap (volatile jobject *addr, jobject old, jobject new_val) +{ + jboolean result = false; + spinlock lock; + if ((result = (*addr == old))) + *addr = new_val; + return result; +} + + +jlong +sun::misc::Unsafe::objectFieldOffset (::java::lang::reflect::Field *field) +{ + _Jv_Field *fld = _Jv_FromReflectedField (field); + // FIXME: what if it is not an instance field? + return fld->getOffset(); +} + +jint +sun::misc::Unsafe::arrayBaseOffset (jclass arrayClass) +{ + // FIXME: assert that arrayClass is array. + jclass eltClass = arrayClass->getComponentType(); + return (jint)(jlong) _Jv_GetArrayElementFromElementType (NULL, eltClass); +} + +jint +sun::misc::Unsafe::arrayIndexScale (jclass arrayClass) +{ + // FIXME: assert that arrayClass is array. + jclass eltClass = arrayClass->getComponentType(); + if (eltClass->isPrimitive()) + return eltClass->size(); + return sizeof (void *); +} + +// These methods are used when the compiler fails to generate inline +// versions of the compare-and-swap primitives. + +jboolean +sun::misc::Unsafe::compareAndSwapInt (jobject obj, jlong offset, + jint expect, jint update) +{ + jint *addr = (jint *)((char *)obj + offset); + return compareAndSwap (addr, expect, update); +} + +jboolean +sun::misc::Unsafe::compareAndSwapLong (jobject obj, jlong offset, + jlong expect, jlong update) +{ + volatile jlong *addr = (jlong*)((char *) obj + offset); + return compareAndSwap (addr, expect, update); +} + +jboolean +sun::misc::Unsafe::compareAndSwapObject (jobject obj, jlong offset, + jobject expect, jobject update) +{ + jobject *addr = (jobject*)((char *) obj + offset); + return compareAndSwap (addr, expect, update); +} + +void +sun::misc::Unsafe::putOrderedInt (jobject obj, jlong offset, jint value) +{ + volatile jint *addr = (jint *) ((char *) obj + offset); + *addr = value; +} + +void +sun::misc::Unsafe::putOrderedLong (jobject obj, jlong offset, jlong value) +{ + volatile jlong *addr = (jlong *) ((char *) obj + offset); + spinlock lock; + *addr = value; +} + +void +sun::misc::Unsafe::putOrderedObject (jobject obj, jlong offset, jobject value) +{ + volatile jobject *addr = (jobject *) ((char *) obj + offset); + *addr = value; +} + +void +sun::misc::Unsafe::putIntVolatile (jobject obj, jlong offset, jint value) +{ + write_barrier (); + volatile jint *addr = (jint *) ((char *) obj + offset); + *addr = value; +} + +void +sun::misc::Unsafe::putLongVolatile (jobject obj, jlong offset, jlong value) +{ + volatile jlong *addr = (jlong *) ((char *) obj + offset); + spinlock lock; + *addr = value; +} + +void +sun::misc::Unsafe::putObjectVolatile (jobject obj, jlong offset, jobject value) +{ + write_barrier (); + volatile jobject *addr = (jobject *) ((char *) obj + offset); + *addr = value; +} + +#if 0 // FIXME +void +sun::misc::Unsafe::putInt (jobject obj, jlong offset, jint value) +{ + jint *addr = (jint *) ((char *) obj + offset); + *addr = value; +} +#endif + +void +sun::misc::Unsafe::putLong (jobject obj, jlong offset, jlong value) +{ + jlong *addr = (jlong *) ((char *) obj + offset); + spinlock lock; + *addr = value; +} + +void +sun::misc::Unsafe::putObject (jobject obj, jlong offset, jobject value) +{ + jobject *addr = (jobject *) ((char *) obj + offset); + *addr = value; +} + +jint +sun::misc::Unsafe::getIntVolatile (jobject obj, jlong offset) +{ + volatile jint *addr = (jint *) ((char *) obj + offset); + jint result = *addr; + read_barrier (); + return result; +} + +jobject +sun::misc::Unsafe::getObjectVolatile (jobject obj, jlong offset) +{ + volatile jobject *addr = (jobject *) ((char *) obj + offset); + jobject result = *addr; + read_barrier (); + return result; +} + +jlong +sun::misc::Unsafe::getLong (jobject obj, jlong offset) +{ + jlong *addr = (jlong *) ((char *) obj + offset); + spinlock lock; + return *addr; +} + +jlong +sun::misc::Unsafe::getLongVolatile (jobject obj, jlong offset) +{ + volatile jlong *addr = (jlong *) ((char *) obj + offset); + spinlock lock; + return *addr; +} + +void +sun::misc::Unsafe::unpark (::java::lang::Thread *thread) +{ + natThread *nt = (natThread *) thread->data; + nt->park_helper.unpark (); +} + +void +sun::misc::Unsafe::park (jboolean isAbsolute, jlong time) +{ + using namespace ::java::lang; + Thread *thread = Thread::currentThread(); + natThread *nt = (natThread *) thread->data; + nt->park_helper.park (isAbsolute, time); +} diff --git a/libjava/sun/reflect/Reflection.h b/libjava/sun/reflect/Reflection.h new file mode 100644 index 00000000000..7f3c82fe797 --- /dev/null +++ b/libjava/sun/reflect/Reflection.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_Reflection__ +#define __sun_reflect_Reflection__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace reflect + { + class Reflection; + } + } +} + +class sun::reflect::Reflection : public ::java::lang::Object +{ + +public: + Reflection(); + static ::java::lang::Class * getCallerClass(jint); + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_Reflection__ diff --git a/libjava/sun/reflect/Reflection.java b/libjava/sun/reflect/Reflection.java new file mode 100644 index 00000000000..ef25ce71f1c --- /dev/null +++ b/libjava/sun/reflect/Reflection.java @@ -0,0 +1,51 @@ +/* Reflection.java - JSR 166 reflection hooks + Copyright (C) 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 sun.reflect; + +import gnu.classpath.VMStackWalker; + +public class Reflection +{ + /** + * A stack-walking wrapper method used by the JSR 166 RI. + */ + public static Class getCallerClass(int depth) + { + return VMStackWalker.getClassContext()[depth]; + } +} diff --git a/libjava/sun/reflect/annotation/AnnotationInvocationHandler.h b/libjava/sun/reflect/annotation/AnnotationInvocationHandler.h new file mode 100644 index 00000000000..0679e3c3fd5 --- /dev/null +++ b/libjava/sun/reflect/annotation/AnnotationInvocationHandler.h @@ -0,0 +1,55 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_annotation_AnnotationInvocationHandler__ +#define __sun_reflect_annotation_AnnotationInvocationHandler__ + +#pragma interface + +#include +#include + +extern "Java" +{ + namespace sun + { + namespace reflect + { + namespace annotation + { + class AnnotationInvocationHandler; + } + } + } +} + +class sun::reflect::annotation::AnnotationInvocationHandler : public ::java::lang::Object +{ + +public: + AnnotationInvocationHandler(::java::lang::Class *, ::java::util::Map *); + static ::java::lang::annotation::Annotation * create(::java::lang::Class *, ::java::util::Map *); + static jboolean equals(::java::lang::Class *, ::java::util::Map *, ::java::lang::Object *); +private: + static jboolean deepEquals(::java::lang::Object *, ::java::lang::Object *); + static jint deepHashCode(::java::lang::Object *); +public: + static jint hashCode(::java::lang::Class *, ::java::util::Map *); +private: + static ::java::lang::String * deepToString(::java::lang::Object *); +public: + static ::java::lang::String * toString(::java::lang::Class *, ::java::util::Map *); +private: + static ::java::lang::Class * getBoxedReturnType(::java::lang::reflect::Method *); + ::java::lang::Object * arrayClone(::java::lang::Object *); +public: + ::java::lang::Object * invoke(::java::lang::Object *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *); +private: + static const jlong serialVersionUID = 6182022883658399397LL; + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type; + ::java::util::Map * memberValues; +public: + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_annotation_AnnotationInvocationHandler__ diff --git a/libjava/sun/reflect/annotation/AnnotationParser.h b/libjava/sun/reflect/annotation/AnnotationParser.h new file mode 100644 index 00000000000..d5ca9737ac9 --- /dev/null +++ b/libjava/sun/reflect/annotation/AnnotationParser.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_annotation_AnnotationParser__ +#define __sun_reflect_annotation_AnnotationParser__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace reflect + { + namespace annotation + { + class AnnotationParser; + } + } + } +} + +class sun::reflect::annotation::AnnotationParser : public ::java::lang::Object +{ + +public: + AnnotationParser(); + static ::java::lang::annotation::Annotation * annotationForMap(::java::lang::Class *, ::java::util::Map *); + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_annotation_AnnotationParser__ diff --git a/libjava/sun/reflect/annotation/AnnotationType.h b/libjava/sun/reflect/annotation/AnnotationType.h new file mode 100644 index 00000000000..3d21e0f14cb --- /dev/null +++ b/libjava/sun/reflect/annotation/AnnotationType.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_annotation_AnnotationType__ +#define __sun_reflect_annotation_AnnotationType__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace reflect + { + namespace annotation + { + class AnnotationType; + } + } + } +} + +class sun::reflect::annotation::AnnotationType : public ::java::lang::Object +{ + +public: + AnnotationType(); + static ::java::lang::Class * invocationHandlerReturnType(::java::lang::Class *); + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_annotation_AnnotationType__ diff --git a/libjava/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.h b/libjava/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.h new file mode 100644 index 00000000000..63d853b5d21 --- /dev/null +++ b/libjava/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_annotation_EnumConstantNotPresentExceptionProxy__ +#define __sun_reflect_annotation_EnumConstantNotPresentExceptionProxy__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace reflect + { + namespace annotation + { + class EnumConstantNotPresentExceptionProxy; + } + } + } +} + +class sun::reflect::annotation::EnumConstantNotPresentExceptionProxy : public ::sun::reflect::annotation::ExceptionProxy +{ + +public: + EnumConstantNotPresentExceptionProxy(::java::lang::Class *, ::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_annotation_EnumConstantNotPresentExceptionProxy__ diff --git a/libjava/sun/reflect/annotation/ExceptionProxy.h b/libjava/sun/reflect/annotation/ExceptionProxy.h new file mode 100644 index 00000000000..ca6a3cd692b --- /dev/null +++ b/libjava/sun/reflect/annotation/ExceptionProxy.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_annotation_ExceptionProxy__ +#define __sun_reflect_annotation_ExceptionProxy__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace reflect + { + namespace annotation + { + class ExceptionProxy; + } + } + } +} + +class sun::reflect::annotation::ExceptionProxy : public ::java::lang::Object +{ + +public: + ExceptionProxy(); + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_annotation_ExceptionProxy__ diff --git a/libjava/sun/reflect/misc/ReflectUtil$MustBeNull.h b/libjava/sun/reflect/misc/ReflectUtil$MustBeNull.h new file mode 100644 index 00000000000..a2e7494d8dc --- /dev/null +++ b/libjava/sun/reflect/misc/ReflectUtil$MustBeNull.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_misc_ReflectUtil$MustBeNull__ +#define __sun_reflect_misc_ReflectUtil$MustBeNull__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace reflect + { + namespace misc + { + class ReflectUtil$MustBeNull; + } + } + } +} + +class sun::reflect::misc::ReflectUtil$MustBeNull : public ::java::lang::Object +{ + + ReflectUtil$MustBeNull(); +public: + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_misc_ReflectUtil$MustBeNull__ diff --git a/libjava/sun/reflect/misc/ReflectUtil.h b/libjava/sun/reflect/misc/ReflectUtil.h new file mode 100644 index 00000000000..91c0b64b2c8 --- /dev/null +++ b/libjava/sun/reflect/misc/ReflectUtil.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __sun_reflect_misc_ReflectUtil__ +#define __sun_reflect_misc_ReflectUtil__ + +#pragma interface + +#include +extern "Java" +{ + namespace sun + { + namespace reflect + { + namespace misc + { + class ReflectUtil; + class ReflectUtil$MustBeNull; + } + } + } +} + +class sun::reflect::misc::ReflectUtil : public ::java::lang::Object +{ + +public: + ReflectUtil(); + static void checkPackageAccess(::java::lang::Class *); + static void ensureMemberAccess(::java::lang::Class *, ::java::lang::Class *, ::sun::reflect::misc::ReflectUtil$MustBeNull *, jint); + static ::java::lang::Class class$; +}; + +#endif // __sun_reflect_misc_ReflectUtil__ diff --git a/libjava/sun/reflect/misc/ReflectUtil.java b/libjava/sun/reflect/misc/ReflectUtil.java new file mode 100644 index 00000000000..88a6f2515bf --- /dev/null +++ b/libjava/sun/reflect/misc/ReflectUtil.java @@ -0,0 +1,113 @@ +/* ReflectUtil.java - JSR 166 reflection hooks + Copyright (C) 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 sun.reflect.misc; + +import java.lang.reflect.Modifier; + +public class ReflectUtil +{ + // We use this inaccessible inner class as an argument type + // in verifyMemberAccess. All current users of this method + // in the JSR 166 RI pass 'null' for this argument, and + // consequently we don't know what it means. Using a funny + // type like this for the argument means that if the RI changes, + // we will see a compilation error. + private static class MustBeNull + { + } + + /** + * Check if the current thread is allowed to access the package of + * the declaringClass. + * + * @param declaringClass class name to check access to + * @throws SecurityException if permission is denied + * @throws NullPointerException if declaringClass is null + */ + public static void checkPackageAccess(Class declaringClass) + { + SecurityManager sm; + if ((sm = System.getSecurityManager()) != null) + { + while (declaringClass.isArray()) + declaringClass = declaringClass.getComponentType(); + String name = declaringClass.getName(); + int i = name.lastIndexOf('.'); + if (i != -1) // if declaringClass is a member of a package + { + name = name.substring(0, i); + sm.checkPackageAccess(name); + } + } + } + + /** + * Perform access checks on a member of a class. This API is + * derived from the public domain code in the JSR 166 reference + * implementation. + * @param caller the class requesting access to the member + * @param declarer the declaring class of the member + * @param ignored unknown parameter; always null + * @param modifiers the modifiers on the member + * @return true if access is granted, false otherwise + */ + public static void ensureMemberAccess(Class caller, + Class declarer, + MustBeNull ignored, + int modifiers) + { + // Same class, always ok. + if (caller == declarer) + return; + // Public access is ok. + if ((modifiers & Modifier.PUBLIC) != 0) + return; + // Protected access and request comes from + // a subclass of the declarer -- ok. + if ((modifiers & Modifier.PROTECTED) != 0 + && declarer.isAssignableFrom(caller)) + return; + // Package-private access, or protected access, + // and the packages are the same --ok. + if ((modifiers & Modifier.PRIVATE) == 0 + && caller.getPackage() == declarer.getPackage()) + return; + // Otherwise, no. + throw new IllegalAccessError(); + } +} diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in index f419d3ced36..67231dc65e4 100644 --- a/libjava/testsuite/Makefile.in +++ b/libjava/testsuite/Makefile.in @@ -79,6 +79,8 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BASH_JAR_FALSE = @BASH_JAR_FALSE@ BASH_JAR_TRUE = @BASH_JAR_TRUE@ +BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ +BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -98,7 +100,11 @@ DIVIDESPEC = @DIVIDESPEC@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +ECJ_BUILD_JAR = @ECJ_BUILD_JAR@ +ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ +ENABLE_SHARED_FALSE = @ENABLE_SHARED_FALSE@ +ENABLE_SHARED_TRUE = @ENABLE_SHARED_TRUE@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ @@ -109,6 +115,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ GCTESTSPEC = @GCTESTSPEC@ @@ -120,6 +127,8 @@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ INSTALL_DATA = @INSTALL_DATA@ +INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ +INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ @@ -128,6 +137,8 @@ JAR = @JAR@ JAVA_HOME = @JAVA_HOME@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ +JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ +JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JC1GCSPEC = @JC1GCSPEC@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -146,6 +157,7 @@ LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@ LIBGCJ_SPEC = @LIBGCJ_SPEC@ LIBICONV = @LIBICONV@ LIBLTDL = @LIBLTDL@ +LIBMAGIC = @LIBMAGIC@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ @@ -170,7 +182,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ -PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@ +PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -212,6 +224,8 @@ USING_WIN32_THREADS_TRUE = @USING_WIN32_THREADS_TRUE@ VERSION = @VERSION@ XLIB_AWT_FALSE = @XLIB_AWT_FALSE@ XLIB_AWT_TRUE = @XLIB_AWT_TRUE@ +X_AWT_FALSE = @X_AWT_FALSE@ +X_AWT_TRUE = @X_AWT_TRUE@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -257,6 +271,7 @@ here = @here@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ +host_exeext = @host_exeext@ host_os = @host_os@ host_subdir = @host_subdir@ host_vendor = @host_vendor@ diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp index 5100c8a7b49..853b25e684a 100644 --- a/libjava/testsuite/lib/libjava.exp +++ b/libjava/testsuite/lib/libjava.exp @@ -75,14 +75,9 @@ proc libjava_find_program {prog} { return $file } -# Find `jv-scan'. -proc find_jvscan {} { - return [libjava_find_program jv-scan] -} - # Find `gcjh'. proc find_gcjh {} { - return [libjava_find_program gcjh] + return [libjava_find_program gjavah] } proc find_javac {} { @@ -378,6 +373,9 @@ proc libjava_arguments {{mode compile}} { [join [list . $srcdir/$subdir $objdir $libgcj_jar] $sep] verbose "CLASSPATH is $env(CLASSPATH)" + # Disable all warnings, as ecj is rather chatty. + lappend args "additional_flags=-w" + if {$mode == "link"} { global wrapper_file wrap_compile_flags lappend args "additional_flags=$wrap_compile_flags" @@ -690,207 +688,6 @@ proc test_libjava_from_source { options srcfile compile_args inpfile resultfile # # Run the test specified by srcfile and resultfile. compile_args and # exec_args are options telling this proc how to work. -# -proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile exec_args } { - global base_dir - global srcdir subdir objdir - global TOOL_OPTIONS - global GCJ_UNDER_TEST - global tmpdir - global runtests - global INTERPRETER - - # Make opts into an array. - set opts(_) x - unset opts(_) - foreach item $exec_args { - set opts($item) x - } - - # If we need threads and we don't have them then set the `no-exec' - # flag. This is case is also handled specially later. - if {[info exists opts(need-threads)]} { - global libjava_uses_threads - if {! $libjava_uses_threads} { - set opts(no-exec) x - } - } - set errname [file rootname [file tail $srcfile]] - if {! [runtest_file_p $runtests $errname]} { - return - } - - # bytecompile files with Sun's compiler for now. - set bc_ok [bytecompile_file $srcfile $objdir] - - set javac [find_javac] - # This is an ugly heuristic but it will have to do. - if {[string match *gcj* $javac]} { - set tag gcjC - } else { - set tag javac - } - if {[info exists opts(xfail-$tag)]} { - setup_xfail *-*-* - } - if {! $bc_ok} then { - if {[info exists opts(shouldfail)]} { - pass "$errname byte compilation" - return - } - fail "$errname byte compilation" - untested "$errname compilation from bytecode" - if {! [info exists opts(no-exec)] - || [info exists opts(need-threads)]} { - untested "$errname execution from bytecode->native test" - untested "$errname output from bytecode->native test" - } - return - } - if {[info exists opts(shouldfail)]} { - fail "$errname byte compilation" - return - } - pass "$errname byte compilation" - - set removeList {} - - # Find name to use for --main, and name of all class files. - set jvscan [find_jvscan] - verbose "jvscan is $jvscan" - set main_name [string trim \ - [libjava_prune_warnings \ - [lindex [local_exec "$jvscan --encoding=UTF-8 $srcfile --print-main" "" "" 300] 1]]] - verbose "main name is $main_name" - set class_out [string trim \ - [libjava_prune_warnings \ - [lindex [local_exec "$jvscan --encoding=UTF-8 $srcfile --list-class" "" "" 300] 1]]] - verbose "class list is $class_out" - - if {[string match "*parse error*" $main_name] - || [string match "*parse error*" $class_out]} { - untested "$errname compilation from bytecode" - if {! [info exists opts(no-exec)] - || [info exists opts(need-threads)]} { - untested "$errname execution from bytecode->native test" - untested "$errname output from bytecode->native test" - } - return - } - - # Turn "a b" into "a.class b.class". - # Also, turn "foo.bar" into "foo/bar.class". - set class_files {} - foreach file [split [string trim $class_out]] { - set file [join [split $file .] /] - lappend class_files $objdir/$file.class - } - - eval lappend removeList $class_files - - # Usually it is an error for a test program not to have a `main' - # method. However, for no-exec tests it is ok. Treat no-link - # like no-exec here. - if {[info exists opts(no-link)]} { - set opts(no-exec) x - } - set largs {} - - if {[info exists opts(no-exec)]} { - set type object - set mode compile - } elseif {$main_name == ""} { - perror "No `main' given in program $errname" - return - } else { - set type executable - lappend largs "additional_flags=--main=$main_name" - # DOS/win32 targets default to .exe if no suffix is given - # We then try to delete a file that doesn't exist. It is - # simpler to add the suffix everywhere. - set executable "${objdir}/${main_name}.exe" - set mode link - } - - # We purposely ignore errors here; we still want to run the other - # appropriate tests. - set gij [libjava_find_gij] - # libjava_find_gij will return "" if it couldn't find the - # program; in this case we want to skip the test. - if {$INTERPRETER == "yes" && $gij != ""} { - libjava_invoke $errname "gij test" opts $gij \ - $inpfile $resultfile "" $main_name - } - - # Initial arguments. - set args [libjava_arguments $mode] - eval lappend args $largs - - if { $compile_args != "" } { - lappend args "additional_flags=$compile_args" - } - - if { $compile_args != "" } { - set errname "$errname $compile_args" - } - - verbose "compilation command = $args" 2 - # When compiling and not linking, we have to build each .o - # separately. We do this because DejaGNU's target_compile won't - # accept an empty "destfile" argument when the mode is "compile". - if {$mode == "compile"} { - foreach c_file $class_files { - set executable [file rootname [file tail $c_file]].o - # Don't write files which contain $ chars. - regsub -all "\\$" $executable "\^" executable - set x [libjava_prune_warnings \ - [libjava_tcompile '$c_file' "$executable" $type $args]] - lappend removeList $executable - if {$x != ""} { - break - } - } - } else { - # This is so evil: we de-listify CLASS_FILES so that we can - # turn around and quote the `$' in it for the shell. I really - # hate DejaGNU. It is so !@#$!@# unpredictable. - set hack "" - foreach stupid $class_files { - set hack "$hack $stupid" - } - lappend removeList $executable - set x [libjava_prune_warnings \ - [libjava_tcompile $hack "$executable" $type $args]] - } - if {[info exists opts(xfail-byte)]} { - setup_xfail *-*-* - } - if { $x != "" } { - verbose "target_compile failed: $x" 2 - fail "$errname compilation from bytecode" - if {! [info exists opts(no-exec)] - || [info exists opts(need-threads)]} { - untested "$errname execution from bytecode->native test" - untested "$errname output from bytecode->native test" - } - return; - } - pass "$errname compilation from bytecode" - - # Set up the options the way they are expected by libjava_invoke. - if {[info exists opts(xfail-byte-output)]} { - set opts(xfail-output) x - } - if {[libjava_invoke $errname "bytecode->native test" opts $executable \ - $inpfile $resultfile ""]} { - # Everything ok, so clean up. - eval gcj_cleanup $removeList - } -} - -# -# Run the test specified by srcfile and resultfile. compile_args and -# exec_args are options telling this proc how to work. # `no-link' don't try to link the program # `no-exec' don't try to run the test # `xfail-gcj' compilation from source will fail @@ -914,14 +711,12 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e # proc test_libjava { options srcfile compile_args inpfile resultfile exec_args } { test_libjava_from_source $options $srcfile $compile_args $inpfile $resultfile $exec_args - test_libjava_from_javac $options $srcfile $compile_args $inpfile $resultfile $exec_args - - # Test BC-ABI compilation, currently for bytecode->native only + + # Test BC-ABI compilation. set compile_args_bcabi $compile_args lappend compile_args_bcabi "-findirect-dispatch" - - test_libjava_from_javac $options $srcfile $compile_args_bcabi $inpfile $resultfile $exec_args - } + test_libjava_from_source $options $srcfile $compile_args_bcabi $inpfile $resultfile $exec_args +} # # libjava_version -- extract and print the version number of libjavap diff --git a/libjava/testsuite/libjava.cni/PR9577.h b/libjava/testsuite/libjava.cni/PR9577.h new file mode 100644 index 00000000000..a8d6d19ae6d --- /dev/null +++ b/libjava/testsuite/libjava.cni/PR9577.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __PR9577__ +#define __PR9577__ + +#pragma interface + +#include +#include + +extern "Java" +{ + class PR9577; +} + +class PR9577 : public ::java::lang::Object +{ + +public: + PR9577(); +private: + void sayHello(JArray< ::java::lang::String * > *, ::java::lang::Object *); +public: + static void main(JArray< ::java::lang::String * > *); + static ::java::lang::Class class$; +}; + +#endif // __PR9577__ diff --git a/libjava/testsuite/libjava.cni/PR9577.jar b/libjava/testsuite/libjava.cni/PR9577.jar new file mode 100644 index 0000000000000000000000000000000000000000..6e9f5cee757bcc5c7c52130ab303181e8d274ed0 GIT binary patch literal 629 zcwP(eW@h1H00HKDB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWut zW?Fmy0(mKn3=BL#Iv~i>)ZAPzIVZ8WIM?6T`>=z^oatMBn&pP>sr)caOTxxuqL+SC z1&3A`*Q3nf>6=vVI{2{GPg~y5WPd<|y!rjB?mtUGQ>?hy!JT`p ztz~&)ws73tSs|FI_(f;$$>&8;pFi)sv`S9!%@TXXEqbTaB@eX8FXU~%aB|AD>!)4y zR##6HpY*`C`?_|dh^nHe+~(e=JJwB^$GdsI;^C%pGDyZTa}=bOG`qG z-s+WmLevan))(ZoSUk{_es<%`kNzIL^4~F?*}pe5em~aYD>3)0YUHu$Gy8Rq?4LA6 zS7+T^{tM2BSIY^SzQ{ZBQA@Ms_@x=GExGS>-~3?+@MdJ +#include + +extern "Java" +{ + class longfield; +} + +class longfield : public ::java::lang::Object +{ + +public: + longfield(); + virtual void doitc(); + virtual void doitj(); + static void main(JArray< ::java::lang::String * > *); +public: // actually package-private + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) lval; + jboolean bval; + ::java::lang::String * sval; +public: + static ::java::lang::Class class$; +}; + +#endif // __longfield__ diff --git a/libjava/testsuite/libjava.cni/longfield.jar b/libjava/testsuite/libjava.cni/longfield.jar new file mode 100644 index 0000000000000000000000000000000000000000..aab946776644a6b38b47a7aadbc4cd9a79f89073 GIT binary patch literal 852 zcwP(eW@h1H0E2oZGX^BU3B|iH|(0xLh}zUzj$L(#v|q*0mqDY^SY#(7e7Cg!oP`91DfTV3cMd1A4SA$w#)-KY7@N-Sb3Tr)1N zP)kfI6YFMby&(N{ieKDxjYC2j+y8jT_8jVylB=5QuyMKgZ_n~w{9O?TbA?yeb7s_A z`G#l|vS-Vv$_0AsN?-4v{oW$`Q0G+fcTqdqf2&=yJSUpk$!o#%tkaKG@T1?M_{uR&?>qmAI&x?@IbFCa}*<-*fD8b{W^Z?st}6d7@JdbFND)es$}s z;k11lR0^6m_BnO&#?44x^C6~Pz^Q+F*ff2Q@5`2~jxRj@m#w;Kx8y3n3nwmIV&T_2 znJd(^MND(mk_gAn%Vr-lymmCp#3%e?Kk~acXS +#include + +extern "Java" +{ + class shortfield; +} + +class shortfield : public ::shortfieldbase +{ + +public: + shortfield(); +public: // actually package-private + virtual void ouch(); +public: + static void main(JArray< ::java::lang::String * > *); +public: // actually package-private + jshort __attribute__((aligned(__alignof__( ::shortfieldbase)))) size__; + jint data; +public: + static ::java::lang::Class class$; +}; + +#endif // __shortfield__ diff --git a/libjava/testsuite/libjava.cni/shortfield.jar b/libjava/testsuite/libjava.cni/shortfield.jar new file mode 100644 index 0000000000000000000000000000000000000000..f7af1afb7ca557c938d3e1db903f79b6dd49c3ee GIT binary patch literal 995 zcwP(eW@h1H00Gu|B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWu= z%jkg3K;B)b>BSlOMI~vOsW~Z0iN&dU$vKI|#jbwVd`$rYb6i=D@W&lE5~Qp0?O5B9 zQyB|4)*lF#XN+rluy>7*j!i?mk=~IbN#$u}lV;Y|&(mk%t}x>{^q}gZYh{p8uXEv4 zGoM2Sg60pGE7||vZ7?y=v%pA}eb=d(m*yqthORp$y3ll{9B0~s{;-AmzL7bu&p2dE&aTUJGnrl-qj{I!v0ubk8GOqv17AsAKa7Pef)M- z-`1rmL$`0edR0ev>b)(kDlgW) zaOL27c~oE#yX0L@^%C)GcRT)t@~eq_Vg40(QI=C?M)CghJB{u4&%e)b?!qZ0*A3G) z8+6T|GUs>X63*SXD|Dt!O3=GHTc(%8L}5v-Aa_~5Mg2-9(Rjh0vh)*E<6d}kvvHYy z+Q8u#&-zI(vM04f|5$OFSNqA7V`+*Z4lB0F|33f7wdA?dj57AZB~33~(=!?aP8f&e zyg8`yL~P-G?#T+*PS#3G&S%fi>?s)mS{bmXYjhLPlL-Q3F=8f~0B=?{kQ@sT{shuj Hm_R%L%gI2N literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.cni/shortfieldbase.h b/libjava/testsuite/libjava.cni/shortfieldbase.h new file mode 100644 index 00000000000..171ca3d45a7 --- /dev/null +++ b/libjava/testsuite/libjava.cni/shortfieldbase.h @@ -0,0 +1,25 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __shortfieldbase__ +#define __shortfieldbase__ + +#pragma interface + +#include +extern "Java" +{ + class shortfieldbase; +} + +class shortfieldbase : public ::java::lang::Object +{ + +public: // actually package-private + shortfieldbase(); + jshort __attribute__((aligned(__alignof__( ::java::lang::Object)))) modCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __shortfieldbase__ diff --git a/libjava/testsuite/libjava.compile/ArrayClass.java b/libjava/testsuite/libjava.compile/ArrayClass.java deleted file mode 100644 index cd2ac2ba7c7..00000000000 --- a/libjava/testsuite/libjava.compile/ArrayClass.java +++ /dev/null @@ -1,11 +0,0 @@ -public class ArrayClass -{ - public static void main (String[] args) - { - System.out.println (ArrayClass.class); - System.out.println (ArrayClass[].class); - System.out.println (ArrayClass[][].class); - System.out.println (ArrayClass[][][].class); - System.out.println (ArrayClass[][][][].class); - } -} diff --git a/libjava/testsuite/libjava.compile/AssertBug.java b/libjava/testsuite/libjava.compile/AssertBug.java deleted file mode 100644 index 3938b11da28..00000000000 --- a/libjava/testsuite/libjava.compile/AssertBug.java +++ /dev/null @@ -1,7 +0,0 @@ -// PR java/16927 -public class AssertBug { - public void bug(Integer i) { - assert(false): - i.toString() + "!"; - } -} diff --git a/libjava/testsuite/libjava.compile/Case.java b/libjava/testsuite/libjava.compile/Case.java deleted file mode 100644 index c5eb1d51947..00000000000 --- a/libjava/testsuite/libjava.compile/Case.java +++ /dev/null @@ -1,15 +0,0 @@ -// Simple compiler test. - -public class Case -{ - public static int foo (int i, support.Case x) - { - switch (i) - { - case x.A: - return 1; - default: - return 0; - } - } -} diff --git a/libjava/testsuite/libjava.compile/G19990210_1.java b/libjava/testsuite/libjava.compile/G19990210_1.java deleted file mode 100644 index 9404f71f6ab..00000000000 --- a/libjava/testsuite/libjava.compile/G19990210_1.java +++ /dev/null @@ -1,18 +0,0 @@ -/*-------------------------------------------------------------------------*/ -/* File name : G19990210_1 */ -/* : */ -/* Cause : */ -/* : */ -/* Message : G19990210_1.java: In class `G19990210_1': */ -/* G19990210_1.java: In method `foo()': */ -/* G19990210_1.java:8: Unreachable statement. */ -/* return 0; */ -/* ^ */ -/* 1 error */ -/*-------------------------------------------------------------------------*/ -public class G19990210_1 { - int foo() { - try { ; } finally { ; } - return 0; - } -} diff --git a/libjava/testsuite/libjava.compile/G19990210_2.java b/libjava/testsuite/libjava.compile/G19990210_2.java deleted file mode 100644 index 3ad7d28ba26..00000000000 --- a/libjava/testsuite/libjava.compile/G19990210_2.java +++ /dev/null @@ -1,18 +0,0 @@ -/*-------------------------------------------------------------------------*/ -/* File name : G19990210_2 */ -/* : */ -/* Cause : */ -/* : */ -/* Message : G19990210_2.java: In class `G19990210_2': */ -/* : G19990210_2.java: In method `foo()': */ -/* : G19990210_2.java:5: Missing return statement. */ -/* : } */ -/* : ^ */ -/* : 1 error */ -/*-------------------------------------------------------------------------*/ -public class G19990210_2 { - public int foo () { - return 1; - ; - } -} diff --git a/libjava/testsuite/libjava.compile/G19990210_3.java b/libjava/testsuite/libjava.compile/G19990210_3.java deleted file mode 100644 index 36a56fdf81a..00000000000 --- a/libjava/testsuite/libjava.compile/G19990210_3.java +++ /dev/null @@ -1,23 +0,0 @@ -/*-------------------------------------------------------------------------*/ -/* File name : G19990210_3 */ -/* : */ -/* Cause : */ -/* : */ -/* Message : G19990210_3.java: In class `G19990210_3': */ -/* : G19990210_3.java: In method `foo()': */ -/* : G19990210_3.java:23: Invalid argument to `++'. */ -/* : o.i++; */ -/* : ^ */ -/* : 1 error */ -/*-------------------------------------------------------------------------*/ -public class G19990210_3 { - static void foo() { - bar o = new bar(); - synchronized(o) { - o.i++; - } - } -} -class bar { - static int i; -} diff --git a/libjava/testsuite/libjava.compile/G19990217_01.java b/libjava/testsuite/libjava.compile/G19990217_01.java deleted file mode 100644 index 3697dbe230c..00000000000 --- a/libjava/testsuite/libjava.compile/G19990217_01.java +++ /dev/null @@ -1,16 +0,0 @@ -/*-------------------------------------------------------------------------*/ -/* File name : G19990217_01 */ -/* : */ -/* Cause : Compiler seems to run endlessly. */ -/* : */ -/* Message : No message. It's not stop to compile. */ -/*-------------------------------------------------------------------------*/ - -public class G19990217_01 { - int foo() { - try { - return 0; - } - finally { ; } - } -} diff --git a/libjava/testsuite/libjava.compile/G19990217_02.java b/libjava/testsuite/libjava.compile/G19990217_02.java deleted file mode 100644 index 8c290f23b06..00000000000 --- a/libjava/testsuite/libjava.compile/G19990217_02.java +++ /dev/null @@ -1,16 +0,0 @@ -/*-------------------------------------------------------------------------*/ -/* File name : G19990217_02 */ -/* : */ -/* Cause : */ -/* : */ -/* Message : Can't access class `foo.bar'. */ -/* : Only public classes and interfaces in other packages can be */ -/* : accessed. */ -/* : public class G19990217_02 extends bar { */ -/* : ^ */ -/*-------------------------------------------------------------------------*/ -package foo; -public class G19990217_02 extends bar { -} -class bar { -} diff --git a/libjava/testsuite/libjava.compile/G19990217_02.no-link b/libjava/testsuite/libjava.compile/G19990217_02.no-link deleted file mode 100644 index e69cdecc103..00000000000 --- a/libjava/testsuite/libjava.compile/G19990217_02.no-link +++ /dev/null @@ -1 +0,0 @@ -Don't link me diff --git a/libjava/testsuite/libjava.compile/G19990225_01.java b/libjava/testsuite/libjava.compile/G19990225_01.java deleted file mode 100644 index f20f473f83a..00000000000 --- a/libjava/testsuite/libjava.compile/G19990225_01.java +++ /dev/null @@ -1,7 +0,0 @@ -public class G19990225_01 { - static int foo ; - static { - foo = 0; - } -} - diff --git a/libjava/testsuite/libjava.compile/InnerExcept.java b/libjava/testsuite/libjava.compile/InnerExcept.java deleted file mode 100644 index df4b62893e2..00000000000 --- a/libjava/testsuite/libjava.compile/InnerExcept.java +++ /dev/null @@ -1,19 +0,0 @@ -import java.io.*; - -// Test case for http://gcc.gnu.org/PR12866 -// From Mark Wielaard -public class InnerExcept -{ - static private void createFile() throws IOException - { - new File("/dev/null"); - } - - class Inner - { - private void m() throws IOException - { - createFile(); - } - } -} diff --git a/libjava/testsuite/libjava.compile/MethodFailure4.java b/libjava/testsuite/libjava.compile/MethodFailure4.java deleted file mode 100644 index bed3a0e1311..00000000000 --- a/libjava/testsuite/libjava.compile/MethodFailure4.java +++ /dev/null @@ -1,40 +0,0 @@ -import java.util.*; - -public class MethodFailure4 { - - public static String call(A obj) { - return "A"; - } - public static String call(I obj) { - return "I"; - } - - interface I {} - static class A {} - static class B extends A implements I {} - static class C extends B {} - - - public static A getA() { - return new A(); - } - - public static B getB() { - return new B(); - } - - public static C getC() { - return new C(); - } - - public static I getI() { - return new C(); - } - - // this method invocation is ambiguous - - public static void main(String[] argv) { - call( getC() ); - } - -} diff --git a/libjava/testsuite/libjava.compile/MethodFailure4.xfail b/libjava/testsuite/libjava.compile/MethodFailure4.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/MethodFailure4.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/N19990310_01.java b/libjava/testsuite/libjava.compile/N19990310_01.java deleted file mode 100644 index a9b9c192236..00000000000 --- a/libjava/testsuite/libjava.compile/N19990310_01.java +++ /dev/null @@ -1,18 +0,0 @@ -/*--------------------------------------------------------------------------*/ -/* name : N19990310_01 */ -/* : */ -/* cause : When compare string with connected strings, error. */ -/* : */ -/* Message : Internal compiler error: program jc1 got */ -/* : fatal signal 11 */ -/*--------------------------------------------------------------------------*/ - -public class N19990310_01 { - public static void main(String[] args) { - - if ( "Hello" == ("Hel"+"lo") ) { - } - - System.out.println("OK"); - } -} diff --git a/libjava/testsuite/libjava.compile/N19990317.java b/libjava/testsuite/libjava.compile/N19990317.java deleted file mode 100644 index 669da3b824a..00000000000 --- a/libjava/testsuite/libjava.compile/N19990317.java +++ /dev/null @@ -1,23 +0,0 @@ -/*--------------------------------------------------------------------------*/ -/* Name : N19990317.java */ -/* : */ -/* Cause : When initialize valiable whose name is equal to method */ -/* : return value, error. */ -/* : */ -/* Message : Internal compiler error: program jc1 got */ -/* : fatal signal 11 */ -/*--------------------------------------------------------------------------*/ - -class Point {} - -public class N19990317 { - - Point func() { - return null; - } - - public static void main(String[] args) { - int Point = 2; - System.out.println("OK"); - } -} diff --git a/libjava/testsuite/libjava.compile/OperatorBenchmark.java b/libjava/testsuite/libjava.compile/OperatorBenchmark.java deleted file mode 100644 index 03f660d848d..00000000000 --- a/libjava/testsuite/libjava.compile/OperatorBenchmark.java +++ /dev/null @@ -1,886 +0,0 @@ - -/* - * Copyright (c) 1996, 1997 by Doug Bell . All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - - -// This file has been hacked to compile without the rest of the -// benchmark code. - -class OperatorBenchmark { - - public int getSampleCount() { return 0; } - public int getSampleMillis() { return 0; } - public boolean go; - public int useint[]; - public void startTest () { } - public long finishTest () { return 0; } - public void startTimer (boolean b) { } - public void stopTimer (int a, int b) { } - public void report (String s) { } - public void println (String s) { } - - public int getTestTime () { - return (int) (100 * getSampleCount() * getSampleMillis()) / 1000; - } - - public int getRunningTime () { - return (int) (1.1 * getTestTime()); - } - - public long runTest () { - int dummy1 = 0, dummy2 = 0, dummy3 = 0; // occupy implicit index slots - int cnt, ii; - byte b1 = 1, b2 = 2, b3 = 3; - short s1 = 1, s2 = 2, s3 = 3; - int i1 = 1, i2 = 2, i3 = 3; - long l1 = 1, l2 = 2, l3 = 3; - float f1 = 1, f2 = 2, f3 = 3; - double d1 = 1, d2 = 2, d3 = 3; - - startTest(); - - println("--- byte operators, local vars"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1++; - stopTimer(cnt, ii); - } - report("byte++"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 += b2; - stopTimer(cnt, ii); - } - report("byte += byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 + b3); - stopTimer(cnt, ii); - } - report("byte = byte + byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 *= b2; - stopTimer(cnt, ii); - } - report("byte *= byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 * b3); - stopTimer(cnt, ii); - } - report("byte = byte * byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 *= 2; - stopTimer(cnt, ii); - } - report("byte *= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 <<= 1; - stopTimer(cnt, ii); - } - report("byte <<= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 %= b2; - stopTimer(cnt, ii); - } - report("byte %= byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 % b3); - stopTimer(cnt, ii); - } - report("byte = byte % byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 /= b2; - stopTimer(cnt, ii); - } - report("byte /= byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 / b3); - stopTimer(cnt, ii); - } - report("byte = byte / byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 /= 2; - stopTimer(cnt, ii); - } - report("byte /= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 >>= 1; - stopTimer(cnt, ii); - } - report("byte >>= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 >>= i2; - stopTimer(cnt, ii); - } - report("byte >>= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 >> i3); - stopTimer(cnt, ii); - } - report("byte = byte >> int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 |= b2; - stopTimer(cnt, ii); - } - report("byte |= byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 | b3); - stopTimer(cnt, ii); - } - report("byte = byte | byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 &= b2; - stopTimer(cnt, ii); - } - report("byte &= byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 & b3); - stopTimer(cnt, ii); - } - report("byte = byte & byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 ^= b2; - stopTimer(cnt, ii); - } - report("byte ^= byte"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - b1 = (byte) (b2 ^ b3); - stopTimer(cnt, ii); - } - report("byte = byte ^ byte"); - - - println("--- short operators, local vars"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1++; - stopTimer(cnt, ii); - } - report("short++"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 += s2; - stopTimer(cnt, ii); - } - report("short += short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 + s3); - stopTimer(cnt, ii); - } - report("short = short + short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 *= s2; - stopTimer(cnt, ii); - } - report("short *= short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 * s3); - stopTimer(cnt, ii); - } - report("short = short * short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 *= 2; - stopTimer(cnt, ii); - } - report("short *= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 <<= 1; - stopTimer(cnt, ii); - } - report("short <<= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 %= s2; - stopTimer(cnt, ii); - } - report("short %= short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 % s3); - stopTimer(cnt, ii); - } - report("short = short % short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 /= s2; - stopTimer(cnt, ii); - } - report("short /= short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 / s3); - stopTimer(cnt, ii); - } - report("short = short / short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 /= 2; - stopTimer(cnt, ii); - } - report("short /= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 >>= 1; - stopTimer(cnt, ii); - } - report("short >>= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 >>= i2; - stopTimer(cnt, ii); - } - report("short >>= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 >> i3); - stopTimer(cnt, ii); - } - report("short = short >> int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 |= s2; - stopTimer(cnt, ii); - } - report("short |= short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 | s3); - stopTimer(cnt, ii); - } - report("short = short | short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 &= s2; - stopTimer(cnt, ii); - } - report("short &= short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 & s3); - stopTimer(cnt, ii); - } - report("short = short & short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 ^= s2; - stopTimer(cnt, ii); - } - report("short ^= short"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - s1 = (short) (s2 ^ s3); - stopTimer(cnt, ii); - } - report("short = short ^ short"); - - - println("--- int operators, local vars"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1++; - stopTimer(cnt, ii); - } - report("int++"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 += i2; - stopTimer(cnt, ii); - } - report("int += int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = (i2 + i3); - stopTimer(cnt, ii); - } - report("int = int + int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 *= i2; - stopTimer(cnt, ii); - } - report("int *= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = (i2 * i3); - stopTimer(cnt, ii); - } - report("int = int * int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 *= 2; - stopTimer(cnt, ii); - } - report("int *= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 <<= 1; - stopTimer(cnt, ii); - } - report("int <<= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 %= i2; - stopTimer(cnt, ii); - } - report("int %= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = (i2 % i3); - stopTimer(cnt, ii); - } - report("int = int % int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 /= i2; - stopTimer(cnt, ii); - } - report("int /= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = (i2 / i3); - stopTimer(cnt, ii); - } - report("int = int / int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 /= 2; - stopTimer(cnt, ii); - } - report("int /= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 >>= 1; - stopTimer(cnt, ii); - } - report("int >>= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 >>= i2; - stopTimer(cnt, ii); - } - report("int >>= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = i2 >> i3; - stopTimer(cnt, ii); - } - report("int = int >> int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 |= i2; - stopTimer(cnt, ii); - } - report("int |= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = i2 | i3; - stopTimer(cnt, ii); - } - report("int = int | int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 &= i2; - stopTimer(cnt, ii); - } - report("int &= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = i2 & i3; - stopTimer(cnt, ii); - } - report("int = int & int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 ^= i2; - stopTimer(cnt, ii); - } - report("int ^= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - i1 = i2 ^ i3; - stopTimer(cnt, ii); - } - report("int = int ^ int"); - - - println("--- long operators, local vars"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1++; - stopTimer(cnt, ii); - } - report("long++"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 += l2; - stopTimer(cnt, ii); - } - report("long += long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = (l2 + l3); - stopTimer(cnt, ii); - } - report("long = long + long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 *= l2; - stopTimer(cnt, ii); - } - report("long *= long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = (l2 * l3); - stopTimer(cnt, ii); - } - report("long = long * long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 *= 2; - stopTimer(cnt, ii); - } - report("long *= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 <<= 1; - stopTimer(cnt, ii); - } - report("long <<= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 %= l2; - stopTimer(cnt, ii); - } - report("long %= long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = (l2 % l3); - stopTimer(cnt, ii); - } - report("long = long % long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 /= l2; - stopTimer(cnt, ii); - } - report("long /= long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = (l2 / l3); - stopTimer(cnt, ii); - } - report("long = long / long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 /= 2; - stopTimer(cnt, ii); - } - report("long /= 2"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 >>= 1; - stopTimer(cnt, ii); - } - report("long >>= 1"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 >>= i2; - stopTimer(cnt, ii); - } - report("long >>= int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = l2 >> i3; - stopTimer(cnt, ii); - } - report("long = long >> int"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 |= l2; - stopTimer(cnt, ii); - } - report("long |= long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = l2 | l3; - stopTimer(cnt, ii); - } - report("long = long | long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 &= l2; - stopTimer(cnt, ii); - } - report("long &= long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = l2 & l3; - stopTimer(cnt, ii); - } - report("long = long & long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 ^= l2; - stopTimer(cnt, ii); - } - report("long ^= long"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - l1 = l2 ^ l3; - stopTimer(cnt, ii); - } - report("long = long ^ long"); - - - println("--- float operators, local vars"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 += f2; - stopTimer(cnt, ii); - } - report("float += float"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 = (float) (f2 + f3); - stopTimer(cnt, ii); - } - report("float = float + float"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 *= f2; - stopTimer(cnt, ii); - } - report("float *= float"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 = (float) (f2 * f3); - stopTimer(cnt, ii); - } - report("float = float * float"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 %= f2; - stopTimer(cnt, ii); - } - report("float %= float"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 = (float) (f2 % f3); - stopTimer(cnt, ii); - } - report("float = float % float"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 /= f2; - stopTimer(cnt, ii); - } - report("float /= float"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - f1 = (float) (f2 / f3); - stopTimer(cnt, ii); - } - report("float = float / float"); - - - println("--- double operators, local vars"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 += d2; - stopTimer(cnt, ii); - } - report("double += double"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 = (d2 + d3); - stopTimer(cnt, ii); - } - report("double = double + double"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 *= d2; - stopTimer(cnt, ii); - } - report("double *= double"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 = (d2 * d3); - stopTimer(cnt, ii); - } - report("double = double * double"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 %= d2; - stopTimer(cnt, ii); - } - report("double %= double"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 = (d2 % d3); - stopTimer(cnt, ii); - } - report("double = double % double"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 /= d2; - stopTimer(cnt, ii); - } - report("double /= double"); - - for (cnt = getSampleCount(); --cnt >= 0; ) { - startTimer(true); - for (ii = 0; go; ii++) - d1 = (d2 / d3); - stopTimer(cnt, ii); - } - report("double = double / double"); - - useint[0] = dummy1; useint[1] = dummy2; useint[2] = dummy3; - return finishTest(); - } -} // class OperatorBenchmark - -// EOF diff --git a/libjava/testsuite/libjava.compile/PR11600.java b/libjava/testsuite/libjava.compile/PR11600.java deleted file mode 100644 index 3cffa732c49..00000000000 --- a/libjava/testsuite/libjava.compile/PR11600.java +++ /dev/null @@ -1,7 +0,0 @@ -public class PR11600 implements Cloneable -{ - public Object clone () - { - return super.clone (); - } -} diff --git a/libjava/testsuite/libjava.compile/PR11600.xfail b/libjava/testsuite/libjava.compile/PR11600.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR11600.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR12374.java b/libjava/testsuite/libjava.compile/PR12374.java deleted file mode 100644 index 19e81935d59..00000000000 --- a/libjava/testsuite/libjava.compile/PR12374.java +++ /dev/null @@ -1,27 +0,0 @@ -public class PR12374 { - - /* We weren't coping with field refs on a string constant... */ - - Object Foo() - { - return "".CASE_INSENSITIVE_ORDER; - } - - /* Special casing access to array.length while analysing syntax is - evil. Especially when it means we can't cope with a type - called length. */ - - class length - { - static final int i = 2; - } - - int bar() - { - return length.i; - } - - public static void main (String[] argv) - { - } -} diff --git a/libjava/testsuite/libjava.compile/PR124.java b/libjava/testsuite/libjava.compile/PR124.java deleted file mode 100644 index 2ec1fe9ea01..00000000000 --- a/libjava/testsuite/libjava.compile/PR124.java +++ /dev/null @@ -1,9 +0,0 @@ -import java.lang.reflect.*; - -public class PR124 -{ - public static void main (String[] args) - { - System.out.println (new InvocationTargetException ()); - } -} diff --git a/libjava/testsuite/libjava.compile/PR124.xfail b/libjava/testsuite/libjava.compile/PR124.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR124.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR127.java b/libjava/testsuite/libjava.compile/PR127.java deleted file mode 100644 index 6a2e699a46b..00000000000 --- a/libjava/testsuite/libjava.compile/PR127.java +++ /dev/null @@ -1,11 +0,0 @@ -// Test case for PR127: -// gcj dumps core on method invocation on a primitive type - -class PR127 -{ - void f() - { - int i; - i.f(); - } -} diff --git a/libjava/testsuite/libjava.compile/PR127.xfail b/libjava/testsuite/libjava.compile/PR127.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR127.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR12857.java b/libjava/testsuite/libjava.compile/PR12857.java deleted file mode 100644 index 9ed234ff277..00000000000 --- a/libjava/testsuite/libjava.compile/PR12857.java +++ /dev/null @@ -1,4 +0,0 @@ -// Based on original test case from Yves Martin. -interface PR12857 { - static final String CONST = PR12857.class.getName(); -} diff --git a/libjava/testsuite/libjava.compile/PR129_B.java b/libjava/testsuite/libjava.compile/PR129_B.java deleted file mode 100644 index 238df999a27..00000000000 --- a/libjava/testsuite/libjava.compile/PR129_B.java +++ /dev/null @@ -1,9 +0,0 @@ -import support.PR129_A; - -public class PR129_B { - public static void main ( String[] args ) { - int length = PR129_A.strArr.length; - System.out.println ( "Array length: " + length ); - } -} - diff --git a/libjava/testsuite/libjava.compile/PR129_B.no-link b/libjava/testsuite/libjava.compile/PR129_B.no-link deleted file mode 100644 index e69cdecc103..00000000000 --- a/libjava/testsuite/libjava.compile/PR129_B.no-link +++ /dev/null @@ -1 +0,0 @@ -Don't link me diff --git a/libjava/testsuite/libjava.compile/PR13024.java b/libjava/testsuite/libjava.compile/PR13024.java deleted file mode 100644 index 61ab17c5e88..00000000000 --- a/libjava/testsuite/libjava.compile/PR13024.java +++ /dev/null @@ -1,18 +0,0 @@ -import java.io.*; -import java.util.zip.*; - -class PR13024 { - void isZipOrJarArchive(File file) throws IOException { - ZipFile zipFile = null; - - try { - zipFile = new ZipFile(file); - } finally { - if (zipFile != null) { - try { - zipFile.close(); - } catch (IOException ignored) {} - } - } - } -} diff --git a/libjava/testsuite/libjava.compile/PR13237.java b/libjava/testsuite/libjava.compile/PR13237.java deleted file mode 100644 index 6333a460afb..00000000000 --- a/libjava/testsuite/libjava.compile/PR13237.java +++ /dev/null @@ -1,3 +0,0 @@ -class PR13237 { - double kappa = Math.sqrt(2.0); -} diff --git a/libjava/testsuite/libjava.compile/PR1343.java b/libjava/testsuite/libjava.compile/PR1343.java deleted file mode 100644 index be3592533b8..00000000000 --- a/libjava/testsuite/libjava.compile/PR1343.java +++ /dev/null @@ -1,17 +0,0 @@ -import java.util.Vector; - -public class PR1343 -{ - void f(Object[] l) - { - class x1 - { - }; - } - void f(Vector l) - { - class x1 - { - }; - } -} diff --git a/libjava/testsuite/libjava.compile/PR13733.java b/libjava/testsuite/libjava.compile/PR13733.java deleted file mode 100644 index fb5cc82e9b8..00000000000 --- a/libjava/testsuite/libjava.compile/PR13733.java +++ /dev/null @@ -1,10 +0,0 @@ -// 15.26: "The type of an assignment expression is the type of the variable" -// (LHS). -class PR13733 { - String a, c = ""; - Object b; - - void bug() { - a = (b = c); // invalid without cast - } -} diff --git a/libjava/testsuite/libjava.compile/PR13733.xfail b/libjava/testsuite/libjava.compile/PR13733.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR13733.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR140.java b/libjava/testsuite/libjava.compile/PR140.java deleted file mode 100644 index 0f59d6e1d68..00000000000 --- a/libjava/testsuite/libjava.compile/PR140.java +++ /dev/null @@ -1,13 +0,0 @@ -public class PR140 { - public static void fill(int[] a) { - for (int i = 0; i < a.length; i++) { - a[i] = i; - } - } - public static void main(String[] args) { - int[] a = new int[3]; - fill(a); - a.length = 3000; - fill(a); - } -} diff --git a/libjava/testsuite/libjava.compile/PR140.xfail b/libjava/testsuite/libjava.compile/PR140.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR140.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR14853.java b/libjava/testsuite/libjava.compile/PR14853.java deleted file mode 100644 index a800c52e3cf..00000000000 --- a/libjava/testsuite/libjava.compile/PR14853.java +++ /dev/null @@ -1,17 +0,0 @@ -class tt -{ - static final tt tt1 = new tt(); - tt() - { - } -} - -public class PR14853 -{ - public static void main (String[] args) - { - // This is an invalid assignment. gcj would get confused in - // definite assignment when compiling to object code. - tt.tt1 = new tt(); - } -} diff --git a/libjava/testsuite/libjava.compile/PR14853.xfail b/libjava/testsuite/libjava.compile/PR14853.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR14853.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR15769.java b/libjava/testsuite/libjava.compile/PR15769.java deleted file mode 100644 index 8107626b3e6..00000000000 --- a/libjava/testsuite/libjava.compile/PR15769.java +++ /dev/null @@ -1,10 +0,0 @@ -class PR15769 { - private boolean foo () { return false; } - - - public boolean bar (double blaz) - { - return (Double.POSITIVE_INFINITY != blaz) && foo (); - } -} - diff --git a/libjava/testsuite/libjava.compile/PR16249.java b/libjava/testsuite/libjava.compile/PR16249.java deleted file mode 100644 index 5495dda3430..00000000000 --- a/libjava/testsuite/libjava.compile/PR16249.java +++ /dev/null @@ -1,18 +0,0 @@ -// Regression test for PR java/16249. - -class PR16249 -{ - static void bug(byte[] iCode, int pc) - { - while (pc < 100) { - try { - switch (iCode[pc] & 0xff) { - case 666: - iCode[++pc] = 1; - } - } - catch (Throwable ex) { - } - } - } -} diff --git a/libjava/testsuite/libjava.compile/PR163.java b/libjava/testsuite/libjava.compile/PR163.java deleted file mode 100644 index 283c8ac1c9c..00000000000 --- a/libjava/testsuite/libjava.compile/PR163.java +++ /dev/null @@ -1,8 +0,0 @@ -// Test case for the PR gcj/163 - -// Uninitalized final variables should not be permitted. - -class PR163 -{ - final int foo; -} diff --git a/libjava/testsuite/libjava.compile/PR163.xfail b/libjava/testsuite/libjava.compile/PR163.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR163.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR164.java b/libjava/testsuite/libjava.compile/PR164.java deleted file mode 100644 index d3a288f1b51..00000000000 --- a/libjava/testsuite/libjava.compile/PR164.java +++ /dev/null @@ -1,6 +0,0 @@ -// Test from PR 164. - -class PR164 -{ - volatile final int foo = 8; -} diff --git a/libjava/testsuite/libjava.compile/PR164.xfail b/libjava/testsuite/libjava.compile/PR164.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR164.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR16675.java b/libjava/testsuite/libjava.compile/PR16675.java deleted file mode 100644 index 11e6d4bb6bc..00000000000 --- a/libjava/testsuite/libjava.compile/PR16675.java +++ /dev/null @@ -1,13 +0,0 @@ -public class PR16675 { - public PR16675(Object obj) { } - - public void someTestMethod() { - // gcj crashed compiling this, as `null' had type `void*'. - new PR16675(null) { }; - } - - public void someTestMethod2() { - new PR16675((Object) null) { }; - } - -} diff --git a/libjava/testsuite/libjava.compile/PR16701.java b/libjava/testsuite/libjava.compile/PR16701.java deleted file mode 100644 index 60d459a69c7..00000000000 --- a/libjava/testsuite/libjava.compile/PR16701.java +++ /dev/null @@ -1,10 +0,0 @@ -class Cl -{ - private static final int CONSTANT1 = 0x001; - public static final int CONSTANT2 = 0x002 >> CONSTANT1; -} - -public class PR16701 -{ - public static final int VALUE = Cl.CONSTANT2; -} diff --git a/libjava/testsuite/libjava.compile/PR19277.java b/libjava/testsuite/libjava.compile/PR19277.java deleted file mode 100644 index 61ed0bf7acc..00000000000 --- a/libjava/testsuite/libjava.compile/PR19277.java +++ /dev/null @@ -1,7 +0,0 @@ -class PR19277 -{ - void snafu (int[] array) - { - array.length++; - } -} diff --git a/libjava/testsuite/libjava.compile/PR19277.xfail b/libjava/testsuite/libjava.compile/PR19277.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR19277.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR19295.java b/libjava/testsuite/libjava.compile/PR19295.java deleted file mode 100644 index 336f7e9863b..00000000000 --- a/libjava/testsuite/libjava.compile/PR19295.java +++ /dev/null @@ -1,16 +0,0 @@ -public class PR19295 implements myInterface { - public long tagBits = 0; - - public final boolean isArrayType() { - return (tagBits & IsArrayType) != 0; - } -} - -abstract class blah { - public final static int Bit1 = 0x2; -} - -interface myInterface { - long IsArrayType = blah.Bit1; -} - diff --git a/libjava/testsuite/libjava.compile/PR19674.java b/libjava/testsuite/libjava.compile/PR19674.java deleted file mode 100644 index 2c23895b464..00000000000 --- a/libjava/testsuite/libjava.compile/PR19674.java +++ /dev/null @@ -1,7 +0,0 @@ -public interface PR19674 -{ - public interface Inside - { - void m(int p, int p2); - }; -} diff --git a/libjava/testsuite/libjava.compile/PR20312.java b/libjava/testsuite/libjava.compile/PR20312.java deleted file mode 100644 index 463172b6839..00000000000 --- a/libjava/testsuite/libjava.compile/PR20312.java +++ /dev/null @@ -1,8 +0,0 @@ -/* Can't throw what the overridden method doesn't. */ -public class PR20312 -{ - public String toString( ) throws java.io.IOException - { - return "SNAFU"; - } -} diff --git a/libjava/testsuite/libjava.compile/PR20312.xfail b/libjava/testsuite/libjava.compile/PR20312.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR20312.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR20418.java b/libjava/testsuite/libjava.compile/PR20418.java deleted file mode 100644 index 003f3cd85fb..00000000000 --- a/libjava/testsuite/libjava.compile/PR20418.java +++ /dev/null @@ -1,7 +0,0 @@ -public class PR20418 -{ - public static void main( String[] args) - { - java.io.File = new java.io.File( "junk"); - } -} diff --git a/libjava/testsuite/libjava.compile/PR20418.xfail b/libjava/testsuite/libjava.compile/PR20418.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR20418.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR206.java b/libjava/testsuite/libjava.compile/PR206.java deleted file mode 100644 index 018391271ad..00000000000 --- a/libjava/testsuite/libjava.compile/PR206.java +++ /dev/null @@ -1,7 +0,0 @@ -class PR206 { - - PR206 (String s) - { - support.PR206_A x; - } -} diff --git a/libjava/testsuite/libjava.compile/PR20697.java b/libjava/testsuite/libjava.compile/PR20697.java deleted file mode 100644 index 56efb1d36b7..00000000000 --- a/libjava/testsuite/libjava.compile/PR20697.java +++ /dev/null @@ -1,29 +0,0 @@ -public class PR20697 -{ - public interface I - { - public void m(); - } - - public static class A2 implements I - { - public void m() - { - return; - } - } - -} - -class Test extends PR20697.A2 -{ - public void m() - { - return; - } - - public void n() - { - m(); - } -} diff --git a/libjava/testsuite/libjava.compile/PR207.java b/libjava/testsuite/libjava.compile/PR207.java deleted file mode 100644 index 97b10f0aa27..00000000000 --- a/libjava/testsuite/libjava.compile/PR207.java +++ /dev/null @@ -1,6 +0,0 @@ -class PR207 { - PR207 (String s) - { - System.out.println (s + support.PR207_A.hello()); - } -} diff --git a/libjava/testsuite/libjava.compile/PR207.xfail b/libjava/testsuite/libjava.compile/PR207.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/PR207.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/PR208.java b/libjava/testsuite/libjava.compile/PR208.java deleted file mode 100644 index 0b5f5371936..00000000000 --- a/libjava/testsuite/libjava.compile/PR208.java +++ /dev/null @@ -1,16 +0,0 @@ -public class PR208 -{ - public String toString () - { - StringBuffer sb = new StringBuffer(""); - - sb.append (new java.util.Date().getTime() / 1000); - - try { - } - catch (java.io.IOException e) { - } - - return sb.toString(); - } -} diff --git a/libjava/testsuite/libjava.compile/PR208.xfail b/libjava/testsuite/libjava.compile/PR208.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/PR208.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/PR209.java b/libjava/testsuite/libjava.compile/PR209.java deleted file mode 100644 index d4539c6fa79..00000000000 --- a/libjava/testsuite/libjava.compile/PR209.java +++ /dev/null @@ -1,4 +0,0 @@ -public class PR209 -{ - public int i = java.sql.Types.TINYINT; -} diff --git a/libjava/testsuite/libjava.compile/PR21045.java b/libjava/testsuite/libjava.compile/PR21045.java deleted file mode 100644 index 3d34ee1f304..00000000000 --- a/libjava/testsuite/libjava.compile/PR21045.java +++ /dev/null @@ -1,11 +0,0 @@ -public class PR21045 -{ - class InnerBase { - InnerBase() throws Exception, NullPointerException {} - } - void method() { - try { - InnerBase obj = new InnerBase() {}; - } catch (Exception e) {} - } -} diff --git a/libjava/testsuite/libjava.compile/PR224.java b/libjava/testsuite/libjava.compile/PR224.java deleted file mode 100644 index eae4032e123..00000000000 --- a/libjava/testsuite/libjava.compile/PR224.java +++ /dev/null @@ -1,16 +0,0 @@ -// File PrivateInnerInterface.java - -public class PR224 { - private interface Inter {} -} - - -class PrivateInnerInterface_Test extends PR224 { - void foo() { - // Implement the interface with an innerclass - Inter i = new Inter() { } ; - } -} - -// This should fail to compile because Inter is private in the superclass - diff --git a/libjava/testsuite/libjava.compile/PR224.xfail b/libjava/testsuite/libjava.compile/PR224.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR224.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR232.java b/libjava/testsuite/libjava.compile/PR232.java deleted file mode 100644 index 516b0ed1f6c..00000000000 --- a/libjava/testsuite/libjava.compile/PR232.java +++ /dev/null @@ -1,16 +0,0 @@ -// Use of a "static final String" as a monitor causes ICE -// in jc1 (20000520) -// -// Program received signal SIGSEGV, Segmentation fault. -// put_decl_node (node=0x0) at ../../../gcc/java/lang.c:413 -// 413 if (TREE_CODE (node) == POINTER_TYPE) - -class PR232 -{ - static final String lock= "LOCK"; - - void a() - { - synchronized(lock) {} - } -}; diff --git a/libjava/testsuite/libjava.compile/PR232B.java b/libjava/testsuite/libjava.compile/PR232B.java deleted file mode 100644 index 0c126531d67..00000000000 --- a/libjava/testsuite/libjava.compile/PR232B.java +++ /dev/null @@ -1,15 +0,0 @@ -// This triggers a failure when compiling from bytecode (only) with 20000519 - -public class PR232B -{ - private static Object lock = new Object(); - private static PR232B instance = null; - - public void a() - { - synchronized(lock) - { - instance = new PR232B(); - } - } -}; diff --git a/libjava/testsuite/libjava.compile/PR234.java b/libjava/testsuite/libjava.compile/PR234.java deleted file mode 100644 index 61a11581f78..00000000000 --- a/libjava/testsuite/libjava.compile/PR234.java +++ /dev/null @@ -1,24 +0,0 @@ -// PR234.java -public class PR234 extends B implements I -{ - public static void main(String args[]) - { - PR234 x = new PR234(); - x.m(); - } -} - -// B.java -class B -{ - public void m() - { - System.out.println ("yes"); - } -} - -// I.java -interface I -{ - public void m(); -} diff --git a/libjava/testsuite/libjava.compile/PR23431_1.java b/libjava/testsuite/libjava.compile/PR23431_1.java deleted file mode 100644 index 79d20ba8802..00000000000 --- a/libjava/testsuite/libjava.compile/PR23431_1.java +++ /dev/null @@ -1,9 +0,0 @@ -abstract class Foo -{ - public abstract void bar( ); -} - -class PR23431_1 extends Foo -{ - private void bar( ) { } -} diff --git a/libjava/testsuite/libjava.compile/PR23431_1.xfail b/libjava/testsuite/libjava.compile/PR23431_1.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR23431_1.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR23431_2.java b/libjava/testsuite/libjava.compile/PR23431_2.java deleted file mode 100644 index 3f696ff7402..00000000000 --- a/libjava/testsuite/libjava.compile/PR23431_2.java +++ /dev/null @@ -1,9 +0,0 @@ -interface Foo -{ - public void bar( ); -} - -class PR23431_2 implements Foo -{ - private void bar( ) { } -} diff --git a/libjava/testsuite/libjava.compile/PR23431_2.xfail b/libjava/testsuite/libjava.compile/PR23431_2.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR23431_2.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR235.java b/libjava/testsuite/libjava.compile/PR235.java deleted file mode 100644 index 46a727b2a67..00000000000 --- a/libjava/testsuite/libjava.compile/PR235.java +++ /dev/null @@ -1,7 +0,0 @@ -public class PR235 -{ - public static Class[] ConstructArgs = - { - Integer.TYPE - }; -} diff --git a/libjava/testsuite/libjava.compile/PR238.java b/libjava/testsuite/libjava.compile/PR238.java deleted file mode 100644 index b876524ffdf..00000000000 --- a/libjava/testsuite/libjava.compile/PR238.java +++ /dev/null @@ -1,9 +0,0 @@ -public class PR238 -{ - void foo(A a) - { - a.toString(); - } - - class A {} -} diff --git a/libjava/testsuite/libjava.compile/PR238.xfail b/libjava/testsuite/libjava.compile/PR238.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/PR238.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/PR295.java b/libjava/testsuite/libjava.compile/PR295.java deleted file mode 100644 index d884a26d8c3..00000000000 --- a/libjava/testsuite/libjava.compile/PR295.java +++ /dev/null @@ -1,11 +0,0 @@ -public class PR295 { - public class csemi { - }; - - public int foo; - - public interface isemi { - }; - - public int bar; -} diff --git a/libjava/testsuite/libjava.compile/PR310.java b/libjava/testsuite/libjava.compile/PR310.java deleted file mode 100644 index a77f6a83e86..00000000000 --- a/libjava/testsuite/libjava.compile/PR310.java +++ /dev/null @@ -1,9 +0,0 @@ -public class PR310 -{ - void m (long l) - { - switch (l) - { - } - } -} diff --git a/libjava/testsuite/libjava.compile/PR310.xfail b/libjava/testsuite/libjava.compile/PR310.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR310.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR3417.java b/libjava/testsuite/libjava.compile/PR3417.java deleted file mode 100644 index e5f251afe64..00000000000 --- a/libjava/testsuite/libjava.compile/PR3417.java +++ /dev/null @@ -1,6 +0,0 @@ -// Make sure that assignment conversion checks are done for `return'. - -class PR3417 -{ - char func (int i) { return i; } -} diff --git a/libjava/testsuite/libjava.compile/PR3417.xfail b/libjava/testsuite/libjava.compile/PR3417.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR3417.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/PR374.java b/libjava/testsuite/libjava.compile/PR374.java deleted file mode 100644 index e96ab5f5b21..00000000000 --- a/libjava/testsuite/libjava.compile/PR374.java +++ /dev/null @@ -1,9 +0,0 @@ -public class PR374 -{ - Object a, b[], c[]; - - public void foo () - { - c = new Object[10]; - } -} diff --git a/libjava/testsuite/libjava.compile/PR375.java b/libjava/testsuite/libjava.compile/PR375.java deleted file mode 100644 index 26dba04acd2..00000000000 --- a/libjava/testsuite/libjava.compile/PR375.java +++ /dev/null @@ -1,7 +0,0 @@ -public class PR375 -{ - public void foo () - { - (Boolean.TRUE).booleanValue (); - } -} diff --git a/libjava/testsuite/libjava.compile/PR4766.java b/libjava/testsuite/libjava.compile/PR4766.java deleted file mode 100644 index 840f66978df..00000000000 --- a/libjava/testsuite/libjava.compile/PR4766.java +++ /dev/null @@ -1,25 +0,0 @@ -// Test that bytecode generation works even when `finally' clause -// doesn't return normally. - -public class PR4766 -{ - public static int myfunction() - { - try - { - System.out.println ("hi"); - } - catch( Exception e ) - { - e.printStackTrace(); - } - finally - { - return 0; - } - } - - public static void main (String[] args) - { - } -} diff --git a/libjava/testsuite/libjava.compile/PR5641.java b/libjava/testsuite/libjava.compile/PR5641.java deleted file mode 100644 index 8c7d3aa27c0..00000000000 --- a/libjava/testsuite/libjava.compile/PR5641.java +++ /dev/null @@ -1,20 +0,0 @@ -interface I -{ - void m(); -} -abstract class C implements I {} -class Foo -{ - void Bar(C c) - { - c.m(); - } - void blah(C c) - { - c.m(); - } - - public static void main (String[] args) - { - } -} diff --git a/libjava/testsuite/libjava.compile/PR5641.xfail b/libjava/testsuite/libjava.compile/PR5641.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/PR5641.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/PR5848.java b/libjava/testsuite/libjava.compile/PR5848.java deleted file mode 100644 index a1270ff6e59..00000000000 --- a/libjava/testsuite/libjava.compile/PR5848.java +++ /dev/null @@ -1,14 +0,0 @@ -import java.util.Vector; -import java.util.Enumeration; - -public class PR5848 -{ - private Vector data; - void sub() - { - long sz = 0; - for (Enumeration e = data.elements() ; e.hasMoreElements() ;) { - sz =+ ((byte[])e.nextElement()).length; - } - } -} diff --git a/libjava/testsuite/libjava.compile/PR5848.xfail b/libjava/testsuite/libjava.compile/PR5848.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/PR5848.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/PR5902.java b/libjava/testsuite/libjava.compile/PR5902.java deleted file mode 100644 index 1a78a269217..00000000000 --- a/libjava/testsuite/libjava.compile/PR5902.java +++ /dev/null @@ -1,4 +0,0 @@ -class PR5902 -{ - double d = 019f; -} diff --git a/libjava/testsuite/libjava.compile/PR5913.java b/libjava/testsuite/libjava.compile/PR5913.java deleted file mode 100644 index 4c0c74d8f11..00000000000 --- a/libjava/testsuite/libjava.compile/PR5913.java +++ /dev/null @@ -1,6 +0,0 @@ -class PR5913 -{ - boolean test1 = ("" + 1) instanceof String; - // This also tests literal parsing, as mentioned in PR 5902. - boolean test2 = "" + 0x1instanceof String; -} diff --git a/libjava/testsuite/libjava.compile/PR6026.java b/libjava/testsuite/libjava.compile/PR6026.java deleted file mode 100644 index 14a4a365f47..00000000000 --- a/libjava/testsuite/libjava.compile/PR6026.java +++ /dev/null @@ -1,4 +0,0 @@ -class PR6026 -{ - double d = 0.4e1+0.8; -} diff --git a/libjava/testsuite/libjava.compile/PR6865.java b/libjava/testsuite/libjava.compile/PR6865.java deleted file mode 100644 index ddcc0e65511..00000000000 --- a/libjava/testsuite/libjava.compile/PR6865.java +++ /dev/null @@ -1,5 +0,0 @@ -// gcj crashes on this -public class PR6865 -{ - private foo; -} diff --git a/libjava/testsuite/libjava.compile/PR6865.xfail b/libjava/testsuite/libjava.compile/PR6865.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/PR6865.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/Semi.java b/libjava/testsuite/libjava.compile/Semi.java deleted file mode 100644 index 39b3edc84b8..00000000000 --- a/libjava/testsuite/libjava.compile/Semi.java +++ /dev/null @@ -1,8 +0,0 @@ -// Simple compiler test. - -public class Semi -{ - Semi () { }; -} - - diff --git a/libjava/testsuite/libjava.compile/Statics.java b/libjava/testsuite/libjava.compile/Statics.java deleted file mode 100644 index b86a57c409e..00000000000 --- a/libjava/testsuite/libjava.compile/Statics.java +++ /dev/null @@ -1,7 +0,0 @@ -// Simple compiler test. - -public interface Statics { - - public static final int OwnerGrabButtonMask = 1<<24; - -} diff --git a/libjava/testsuite/libjava.compile/SuperConstr.java b/libjava/testsuite/libjava.compile/SuperConstr.java deleted file mode 100644 index eef50508109..00000000000 --- a/libjava/testsuite/libjava.compile/SuperConstr.java +++ /dev/null @@ -1,20 +0,0 @@ -// It is legal to reference "this" from an enclosing type, or an instance -// field from an enclosing type, in a super constructor call. - -public class SuperConstr -{ - SuperConstr (Object x, Outer y) {} -} - -class Outer -{ - Object x; - - class Sub extends SuperConstr - { - Sub() - { - super(x, Outer.this); - } - } -} diff --git a/libjava/testsuite/libjava.compile/T20020529.java b/libjava/testsuite/libjava.compile/T20020529.java deleted file mode 100644 index 19f1ea862ac..00000000000 --- a/libjava/testsuite/libjava.compile/T20020529.java +++ /dev/null @@ -1,23 +0,0 @@ -public class T20020529 -{ - public void checkXMLLangAttributeValue(String lang) - { - int offset = -1; - if (lang.length() >= 2) { - char ch0 = lang.charAt(0); - } - if (offset > 0) { - char ch = lang.charAt(offset++); - if (ch != '-') { - offset = -1; - } else { - while (true) - { - if (ch == '-') - ch = lang.charAt(offset++); - ch = lang.charAt(offset++); - } - } - } - } -} diff --git a/libjava/testsuite/libjava.compile/T20020604.java b/libjava/testsuite/libjava.compile/T20020604.java deleted file mode 100644 index fba68c20c48..00000000000 --- a/libjava/testsuite/libjava.compile/T20020604.java +++ /dev/null @@ -1,17 +0,0 @@ -// Regression test for gcj crash, when compiled with -O2 on -// i686-pc-linux-gnu. -public class T20020604 -{ - static double d2 = 0.0; - - static Object lockObject = new Object(); - - public static double f(double d1) { - - synchronized (lockObject){ - d2 = Math.max(d1, d2); - } - - return d2; - } -} diff --git a/libjava/testsuite/libjava.compile/Twice.java b/libjava/testsuite/libjava.compile/Twice.java deleted file mode 100644 index d80760f4dd5..00000000000 --- a/libjava/testsuite/libjava.compile/Twice.java +++ /dev/null @@ -1,14 +0,0 @@ -// Simple compiler test. - -public class Twice -{ - Twice (boolean q) - { - if (q) - for (int p = 0; p < 10; p++); - else - for (int p = 0; p < 10; p++); - } -} - - diff --git a/libjava/testsuite/libjava.compile/Where.java b/libjava/testsuite/libjava.compile/Where.java deleted file mode 100644 index 08fcc78b1d6..00000000000 --- a/libjava/testsuite/libjava.compile/Where.java +++ /dev/null @@ -1,12 +0,0 @@ -// Simple compiler test. - -public final class Where implements support.Waldo -{ - int WhereIsWaldo () - { - // The compiler should find 'here' in support.Waldo. - return here; - } -} - - diff --git a/libjava/testsuite/libjava.compile/Where.xfail b/libjava/testsuite/libjava.compile/Where.xfail deleted file mode 100644 index 755ab8794df..00000000000 --- a/libjava/testsuite/libjava.compile/Where.xfail +++ /dev/null @@ -1 +0,0 @@ -xfail-gcj diff --git a/libjava/testsuite/libjava.compile/XercesBug.java b/libjava/testsuite/libjava.compile/XercesBug.java deleted file mode 100644 index 9184d00a276..00000000000 --- a/libjava/testsuite/libjava.compile/XercesBug.java +++ /dev/null @@ -1,13 +0,0 @@ -// This is java/4007 -public final class XercesBug -{ - static final class OrderedHashtable - { - private Entry[] fEntries = null; - public static final class Entry - { - int x; - } - - } -} diff --git a/libjava/testsuite/libjava.compile/abstr.java b/libjava/testsuite/libjava.compile/abstr.java deleted file mode 100644 index f59db268bc3..00000000000 --- a/libjava/testsuite/libjava.compile/abstr.java +++ /dev/null @@ -1,14 +0,0 @@ -// This fails to compile from bytecode for some versions of the compiler. - -interface foo -{ - public void start (); -} - -public abstract class abstr implements foo -{ - public void doit () - { - start (); - } -} diff --git a/libjava/testsuite/libjava.compile/abstr.xfail b/libjava/testsuite/libjava.compile/abstr.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/abstr.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/assignment.java b/libjava/testsuite/libjava.compile/assignment.java deleted file mode 100644 index ec05f73a503..00000000000 --- a/libjava/testsuite/libjava.compile/assignment.java +++ /dev/null @@ -1,19 +0,0 @@ -// A definite assignment test. - -public class assignment -{ - public static Byte foo () - { - Byte b; - - while (true) { - try { - b = Byte.decode ("42"); - break; - } catch (NumberFormatException ignored) {} - } - - return b; - } -} - diff --git a/libjava/testsuite/libjava.compile/assignment_2.java b/libjava/testsuite/libjava.compile/assignment_2.java deleted file mode 100644 index 38b58db76ee..00000000000 --- a/libjava/testsuite/libjava.compile/assignment_2.java +++ /dev/null @@ -1,32 +0,0 @@ - -/** - * assignment_2.java - * - * - * Created: Thu Apr 13 16:48:40 2000 - * - * @author Oliver Brandt - * @version - */ - -public class assignment_2 { - public assignment_2 () - { - } - - public int foo () - { - int result; - - try - { - result = 0; - } - finally - { - } - return result; - - } - -}// test diff --git a/libjava/testsuite/libjava.compile/block.java b/libjava/testsuite/libjava.compile/block.java deleted file mode 100644 index 6bf99b13135..00000000000 --- a/libjava/testsuite/libjava.compile/block.java +++ /dev/null @@ -1,14 +0,0 @@ -// Class block -// Generated on Thu Apr 20 15:03:23 PDT 2000 -// It is illegal to use modifiers for in-block (local) classes - -class block { - public void foo () - { - public class xxx {} - } - public static void main (String[] arg) - { - System.out.println ("Testing class `block'..."); - } -} diff --git a/libjava/testsuite/libjava.compile/block.xfail b/libjava/testsuite/libjava.compile/block.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/block.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/comment.java b/libjava/testsuite/libjava.compile/comment.java deleted file mode 100644 index ebc5a974de0..00000000000 --- a/libjava/testsuite/libjava.compile/comment.java +++ /dev/null @@ -1,7 +0,0 @@ -public class comment -{ - /*** - // This is supposed to be a comment. - */ -} - diff --git a/libjava/testsuite/libjava.compile/compile.exp b/libjava/testsuite/libjava.compile/compile.exp deleted file mode 100644 index 9eba0d4ad77..00000000000 --- a/libjava/testsuite/libjava.compile/compile.exp +++ /dev/null @@ -1,20 +0,0 @@ -global srcdir subdir - -catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.java] } srcfiles -verbose "srcfiles are $srcfiles" - -set prefix "" -foreach x $srcfiles { - set args [libjava_read_xfail [file rootname $x].xfail] - if {[file exists [file rootname $x].no-link]} { - lappend args no-link - } - lappend args no-exec - - test_libjava "" "$x" "" "" "" $args - test_libjava "" "$x" "-O3" "" "" $args -} - -# Local Variables: -# tcl-indent-level:4 -# End: diff --git a/libjava/testsuite/libjava.compile/consthrow.java b/libjava/testsuite/libjava.compile/consthrow.java deleted file mode 100644 index 02d1afc01dd..00000000000 --- a/libjava/testsuite/libjava.compile/consthrow.java +++ /dev/null @@ -1,6 +0,0 @@ -public class consthrow -{ - public consthrow () throws Object - { - } -} diff --git a/libjava/testsuite/libjava.compile/consthrow.xfail b/libjava/testsuite/libjava.compile/consthrow.xfail deleted file mode 100644 index f34b59d3181..00000000000 --- a/libjava/testsuite/libjava.compile/consthrow.xfail +++ /dev/null @@ -1,2 +0,0 @@ -no-link -shouldfail diff --git a/libjava/testsuite/libjava.compile/final_assignment_check.java b/libjava/testsuite/libjava.compile/final_assignment_check.java deleted file mode 100644 index 418fd9122ea..00000000000 --- a/libjava/testsuite/libjava.compile/final_assignment_check.java +++ /dev/null @@ -1,12 +0,0 @@ -class f { - final static char c = 3; - final static byte b = 0.1; - final static short s = 3.5f; - final static int i = 4L; - final static long x = 2.5; - final static float y = 2.6; - final static String S = new Object (); - void foo () { - final int i = 2.1; - } -} diff --git a/libjava/testsuite/libjava.compile/final_assignment_check.xfail b/libjava/testsuite/libjava.compile/final_assignment_check.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/final_assignment_check.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java b/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java deleted file mode 100644 index 8ea56a27c51..00000000000 --- a/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java +++ /dev/null @@ -1,21 +0,0 @@ -// This test case was insipred by -// http://gcc.gnu.org/ml/java/2001-09/msg00181.html - -class M { - int size () { return 3; } -} - -class final_initialization_in_ctor { - - final float loadFactor; - - public final_initialization_in_ctor(M m) - { - this(Math.max(m.size() * 2, 30), (float)40.0); - } - - public final_initialization_in_ctor(int initialCapacity, float loadFactor) - { - this.loadFactor = loadFactor; - } -} diff --git a/libjava/testsuite/libjava.compile/final_local_switch.java b/libjava/testsuite/libjava.compile/final_local_switch.java deleted file mode 100644 index c4a4de6ab36..00000000000 --- a/libjava/testsuite/libjava.compile/final_local_switch.java +++ /dev/null @@ -1,16 +0,0 @@ -// This bug was discovered while working on java/1413 (compiling freetds.) -// http://gcc.gnu.org/ml/java-prs/2000-q4/msg00156.html -// The following code should build. - -class final_local_switch { - void foo (int type) { - final byte CHARSET_CHANGE = (byte)3; - final byte CHARSET_CHANGES = (byte)4; - switch (type) { - case CHARSET_CHANGE: - break; - case CHARSET_CHANGES: - break; - } - } -} diff --git a/libjava/testsuite/libjava.compile/iface.java b/libjava/testsuite/libjava.compile/iface.java deleted file mode 100644 index 6a57fcf4bf7..00000000000 --- a/libjava/testsuite/libjava.compile/iface.java +++ /dev/null @@ -1,24 +0,0 @@ -// Test for searching through interface extension. - -interface basei -{ - public int method (); -} - -interface basei2 -{ - public int confuse (); -} - -interface derivedi extends basei, basei2 -{ - public void nothing (); -} - -public class iface -{ - public int try_it (derivedi x) - { - return x.method (); - } -} diff --git a/libjava/testsuite/libjava.compile/inner_1.java b/libjava/testsuite/libjava.compile/inner_1.java deleted file mode 100644 index d9a0210a928..00000000000 --- a/libjava/testsuite/libjava.compile/inner_1.java +++ /dev/null @@ -1,36 +0,0 @@ -// inner class regression test. - -package bar.foo; - -class other { - class foo {} -} - -class inner_1 { - static void bar () { - inner_1 xxxx; // Refers to inner_1 - bar.foo.another xyz; // Refers to non inner another - bar.foo.other.foo X; // OK to declare, inner class foo - bar.foo.inner_1.t bar; // Inner class t - inner_1.t foo; // Inner class t - t foobar; // Inner class t - other.foo zag; // Valid for declaration. - t.ungah x; - } - void foo () { - // z.t.u foo; - t t1 = new t(); - t1.print (); - new t().print(); - } - - class t { - void print () { - System.out.println ("This is `inner_1.t'"); - } - class ungah {} - } -} - -class another { -} diff --git a/libjava/testsuite/libjava.compile/inner_1.xfail b/libjava/testsuite/libjava.compile/inner_1.xfail deleted file mode 100644 index 755ab8794df..00000000000 --- a/libjava/testsuite/libjava.compile/inner_1.xfail +++ /dev/null @@ -1 +0,0 @@ -xfail-gcj diff --git a/libjava/testsuite/libjava.compile/inner_data.java b/libjava/testsuite/libjava.compile/inner_data.java deleted file mode 100644 index 0bb35e8902a..00000000000 --- a/libjava/testsuite/libjava.compile/inner_data.java +++ /dev/null @@ -1,18 +0,0 @@ -// Test referencing protected data from parent of inner class. - -import java.util.Random; - -public class inner_data -{ - private class Randomer extends Super { - public long xxx () - { - return seed; - } - } -} - -class Super -{ - protected long seed; -} diff --git a/libjava/testsuite/libjava.compile/inner_inherit.java b/libjava/testsuite/libjava.compile/inner_inherit.java deleted file mode 100644 index 44ad6a96c22..00000000000 --- a/libjava/testsuite/libjava.compile/inner_inherit.java +++ /dev/null @@ -1,14 +0,0 @@ -// Test to insure that we can refer to methods inherited through an -// inner class. - -public class inner_inherit -{ - private class Agent extends Thread { - } - - public void f () - { - Agent a = new Agent(); - a.setDaemon(true); - } -} diff --git a/libjava/testsuite/libjava.compile/inner_priv.java b/libjava/testsuite/libjava.compile/inner_priv.java deleted file mode 100644 index 0601c68bff4..00000000000 --- a/libjava/testsuite/libjava.compile/inner_priv.java +++ /dev/null @@ -1,11 +0,0 @@ -// Test to ensure that private inner classes are ok. - -public class inner_priv -{ - private class K - { - int z; - } - - K foo; -} diff --git a/libjava/testsuite/libjava.compile/inner_pub.java b/libjava/testsuite/libjava.compile/inner_pub.java deleted file mode 100644 index 616488fa484..00000000000 --- a/libjava/testsuite/libjava.compile/inner_pub.java +++ /dev/null @@ -1,11 +0,0 @@ -// Test to ensure that public inner classes work. - -public class inner_pub -{ - public class really_inner - { - int z; - } - - really_inner foo; -} diff --git a/libjava/testsuite/libjava.compile/invokeinterface/A.java b/libjava/testsuite/libjava.compile/invokeinterface/A.java deleted file mode 100644 index a4167cde2f7..00000000000 --- a/libjava/testsuite/libjava.compile/invokeinterface/A.java +++ /dev/null @@ -1,4 +0,0 @@ -public interface A -{ - public void a(); -} diff --git a/libjava/testsuite/libjava.compile/invokeinterface/B.java b/libjava/testsuite/libjava.compile/invokeinterface/B.java deleted file mode 100644 index 3661e096a91..00000000000 --- a/libjava/testsuite/libjava.compile/invokeinterface/B.java +++ /dev/null @@ -1,4 +0,0 @@ -public interface B extends A -{ - public void b(); -} diff --git a/libjava/testsuite/libjava.compile/invokeinterface/Test.java b/libjava/testsuite/libjava.compile/invokeinterface/Test.java deleted file mode 100644 index 2fb793f7934..00000000000 --- a/libjava/testsuite/libjava.compile/invokeinterface/Test.java +++ /dev/null @@ -1,19 +0,0 @@ -public class Test implements B -{ - public static void main(String args[]) - { - Test t = new Test(); - B a = (B) t; - a.a(); - } - - public void a() - { - System.out.println("A"); - } - - public void b() - { - System.out.println("B"); - } -} diff --git a/libjava/testsuite/libjava.compile/narrow_case.java b/libjava/testsuite/libjava.compile/narrow_case.java deleted file mode 100644 index 48b56820256..00000000000 --- a/libjava/testsuite/libjava.compile/narrow_case.java +++ /dev/null @@ -1,11 +0,0 @@ -public class narrow_case -{ - private int test(byte b) - { - switch (b) - { - case '0' :return 0; - } - return 99; - } -} diff --git a/libjava/testsuite/libjava.compile/not_a_redef.java b/libjava/testsuite/libjava.compile/not_a_redef.java deleted file mode 100644 index 7a2f55cb797..00000000000 --- a/libjava/testsuite/libjava.compile/not_a_redef.java +++ /dev/null @@ -1,6 +0,0 @@ -package bar.foo; -// This is not a redef. - -class not_a_redef { - class baz { class bar { class foo {}} class foo {}} -} diff --git a/libjava/testsuite/libjava.compile/not_a_redef.xfail b/libjava/testsuite/libjava.compile/not_a_redef.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/not_a_redef.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/perc.java b/libjava/testsuite/libjava.compile/perc.java deleted file mode 100644 index 8dc2f6f01fb..00000000000 --- a/libjava/testsuite/libjava.compile/perc.java +++ /dev/null @@ -1,9 +0,0 @@ -// This generates code that `gcj -C' doesn't like. - -public class perc -{ - public static void main (String[] args) - { - System.out.println (27.0 % 10.0); - } -} diff --git a/libjava/testsuite/libjava.compile/plusplus.java b/libjava/testsuite/libjava.compile/plusplus.java deleted file mode 100644 index b8e9bd9fcbb..00000000000 --- a/libjava/testsuite/libjava.compile/plusplus.java +++ /dev/null @@ -1,10 +0,0 @@ -// Test from MoT . - -class plusplus { - public static void main(String[] args) - { - int n = 5; - int[] gnu = new int[10]; - gnu[n]++; - } -} diff --git a/libjava/testsuite/libjava.compile/pr10459.java b/libjava/testsuite/libjava.compile/pr10459.java deleted file mode 100644 index e527f34d2a9..00000000000 --- a/libjava/testsuite/libjava.compile/pr10459.java +++ /dev/null @@ -1,15 +0,0 @@ -public class pr10459 -{ - pr10459 x; - - public void aMethod() throws Throwable - { - for (; ;x.foo().foo()) - ; - } - - pr10459 foo() - { - return null; - } -} diff --git a/libjava/testsuite/libjava.compile/pr13788.java b/libjava/testsuite/libjava.compile/pr13788.java deleted file mode 100644 index 44f25ea1ccf..00000000000 --- a/libjava/testsuite/libjava.compile/pr13788.java +++ /dev/null @@ -1,8 +0,0 @@ -class pr13788 { - private static final int DUMMY1 = 1 >>> 1; - - public static void main(String [] args) { - System.out.println(DUMMY1); - } -} - diff --git a/libjava/testsuite/libjava.compile/pr15656.java b/libjava/testsuite/libjava.compile/pr15656.java deleted file mode 100644 index 4076c9f6870..00000000000 --- a/libjava/testsuite/libjava.compile/pr15656.java +++ /dev/null @@ -1,8 +0,0 @@ -// This used to cause a gcj crash in error_if_numeric_overflow. - -public class pr15656 { - public static void defineClass () - { - Object ctor = new Object; - } -} diff --git a/libjava/testsuite/libjava.compile/pr15656.xfail b/libjava/testsuite/libjava.compile/pr15656.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/pr15656.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/pr172.java b/libjava/testsuite/libjava.compile/pr172.java deleted file mode 100644 index 4dc26d04e71..00000000000 --- a/libjava/testsuite/libjava.compile/pr172.java +++ /dev/null @@ -1,9 +0,0 @@ -// jc1 (2.96 20000313) says "`A_Inner' not found" - -public class pr172 -{ - class A_Inner - { - A_Inner (A_Inner i) {} - } -} diff --git a/libjava/testsuite/libjava.compile/pr17329.java b/libjava/testsuite/libjava.compile/pr17329.java deleted file mode 100644 index fa31f18a726..00000000000 --- a/libjava/testsuite/libjava.compile/pr17329.java +++ /dev/null @@ -1,14 +0,0 @@ -// gcj had a problem with "SomeClass.field++" when gimplifying. - -class helper -{ - static int value; -} - -public class pr17329 -{ - static void doit () - { - helper.value += 2; - } -} diff --git a/libjava/testsuite/libjava.compile/pr174.java b/libjava/testsuite/libjava.compile/pr174.java deleted file mode 100644 index b819372ce7f..00000000000 --- a/libjava/testsuite/libjava.compile/pr174.java +++ /dev/null @@ -1,15 +0,0 @@ -class A -{ -} - -public class pr174 -{ - public pr174() - { - A a = new A(); - } - - class A - { - } -} diff --git a/libjava/testsuite/libjava.compile/pr17500.java b/libjava/testsuite/libjava.compile/pr17500.java deleted file mode 100644 index 825133dc1bd..00000000000 --- a/libjava/testsuite/libjava.compile/pr17500.java +++ /dev/null @@ -1,28 +0,0 @@ -// gcj had a problem compiling code where two anonymous classes had -// captured constructor arguments of the same type but with different -// names. - -public class pr17500 -{ - public Object m1 (final Object one) - { - return new Comparable() - { - public int compareTo(Object other) - { - return one == other ? 0 : 1; - } - }; - } - - public Object m2 (final Object two) - { - return new Comparable() - { - public int compareTo(Object other) - { - return two == other ? 0 : 1; - } - }; - } -} diff --git a/libjava/testsuite/libjava.compile/pr176.java b/libjava/testsuite/libjava.compile/pr176.java deleted file mode 100644 index a52b5bbf808..00000000000 --- a/libjava/testsuite/libjava.compile/pr176.java +++ /dev/null @@ -1,15 +0,0 @@ -// gcj (20000313) reports "Type `x' not found in the declaration of the -// return type of method `getX'." - -public class pr176 -{ - class A - { - x getX() - { - return new x(); - } - - class x {} - } -} diff --git a/libjava/testsuite/libjava.compile/pr21519.java b/libjava/testsuite/libjava.compile/pr21519.java deleted file mode 100644 index c836a8f9f7f..00000000000 --- a/libjava/testsuite/libjava.compile/pr21519.java +++ /dev/null @@ -1,8 +0,0 @@ -public class pr21519 { - char[] source; - public int compute(int pos) { - for (int i = 0; i < pos; ++i) - if (!(source[i] == ' ' || source[i] == '\t')) return -1; - return pos; - } -} diff --git a/libjava/testsuite/libjava.compile/pr21540.java b/libjava/testsuite/libjava.compile/pr21540.java deleted file mode 100644 index 4d6841f8b38..00000000000 --- a/libjava/testsuite/libjava.compile/pr21540.java +++ /dev/null @@ -1,15 +0,0 @@ -public class pr21540 -{ - public static final long xxx = 555; - - public boolean fn (int v) - { - switch (v) - { - case ((int) xxx >>> 32): - return true; - default: - return false; - } - } -} diff --git a/libjava/testsuite/libjava.compile/pr25429.java b/libjava/testsuite/libjava.compile/pr25429.java deleted file mode 100644 index a869b585c4b..00000000000 --- a/libjava/testsuite/libjava.compile/pr25429.java +++ /dev/null @@ -1,13 +0,0 @@ -public class pr25429 -{ - private static final int CONST = 0; - class I { - public void f () { - switch(0) { - case CONST: - } - } - } - - public static void main(String[] args) { } -} diff --git a/libjava/testsuite/libjava.compile/pr26042.java b/libjava/testsuite/libjava.compile/pr26042.java deleted file mode 100644 index 485b36a5a54..00000000000 --- a/libjava/testsuite/libjava.compile/pr26042.java +++ /dev/null @@ -1,12 +0,0 @@ -class One -{ - long l; // no ICE if this is int, not long - int b; // no ICE if this line is gone; type doesn't matter -} - -public class pr26042 -{ - class Three extends One { } - Three three () { return new Three (); } -} - diff --git a/libjava/testsuite/libjava.compile/pr7912.java b/libjava/testsuite/libjava.compile/pr7912.java deleted file mode 100644 index a7de398462e..00000000000 --- a/libjava/testsuite/libjava.compile/pr7912.java +++ /dev/null @@ -1,8 +0,0 @@ -public class pr7912 -{ - static Cloneable c; - public static void main(String[] args) - { - c = new int[1]; - } -} diff --git a/libjava/testsuite/libjava.compile/pr8712.java b/libjava/testsuite/libjava.compile/pr8712.java deleted file mode 100644 index 7a6eb754d90..00000000000 --- a/libjava/testsuite/libjava.compile/pr8712.java +++ /dev/null @@ -1,7 +0,0 @@ -public class pr8712 -{ - boolean x(pr8712 a) - { - return (!(a instanceof pr8712)); - } -} diff --git a/libjava/testsuite/libjava.compile/pr8955.java b/libjava/testsuite/libjava.compile/pr8955.java deleted file mode 100644 index ae78f503f9c..00000000000 --- a/libjava/testsuite/libjava.compile/pr8955.java +++ /dev/null @@ -1,13 +0,0 @@ -public class pr8955 -{ - static final int val = Integer.MIN_VALUE; - void foo() - { - switch(1) { - case val: - break; - case 1: - break; - } - } -} diff --git a/libjava/testsuite/libjava.compile/redef1.java b/libjava/testsuite/libjava.compile/redef1.java deleted file mode 100644 index a3e138a8c84..00000000000 --- a/libjava/testsuite/libjava.compile/redef1.java +++ /dev/null @@ -1,6 +0,0 @@ -package bar.foo; -// A case of innerclass redefinition - -class redef1 { - class redef1 {} -} diff --git a/libjava/testsuite/libjava.compile/redef1.xfail b/libjava/testsuite/libjava.compile/redef1.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/redef1.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/redef2.java b/libjava/testsuite/libjava.compile/redef2.java deleted file mode 100644 index 9f8e5b85782..00000000000 --- a/libjava/testsuite/libjava.compile/redef2.java +++ /dev/null @@ -1,6 +0,0 @@ -package bar.foo; -// A case of innerclass redefinition - -class redef2 { - class foo {class redef2{}} -} diff --git a/libjava/testsuite/libjava.compile/redef2.xfail b/libjava/testsuite/libjava.compile/redef2.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/redef2.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/redef3.java b/libjava/testsuite/libjava.compile/redef3.java deleted file mode 100644 index df638f1e34a..00000000000 --- a/libjava/testsuite/libjava.compile/redef3.java +++ /dev/null @@ -1,6 +0,0 @@ -package bar.foo; -// A case of innerclass redefinition - -class redef3 { - class foo { class bar {} class bar {}} -} diff --git a/libjava/testsuite/libjava.compile/redef3.xfail b/libjava/testsuite/libjava.compile/redef3.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/redef3.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/redef4.java b/libjava/testsuite/libjava.compile/redef4.java deleted file mode 100644 index db4f4994466..00000000000 --- a/libjava/testsuite/libjava.compile/redef4.java +++ /dev/null @@ -1,6 +0,0 @@ -package bar.foo; -// A case of innerclass redefinition - -class redef4 { - class foo { class bar { class foo {}}} -} diff --git a/libjava/testsuite/libjava.compile/redef4.xfail b/libjava/testsuite/libjava.compile/redef4.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/redef4.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/redef5.java b/libjava/testsuite/libjava.compile/redef5.java deleted file mode 100644 index 2698e0ff7a2..00000000000 --- a/libjava/testsuite/libjava.compile/redef5.java +++ /dev/null @@ -1,6 +0,0 @@ -package bar.foo; -// Redefining and stuffing the redefined class with something - -class redef5 { - class redef5 {void foobar() {}} -} diff --git a/libjava/testsuite/libjava.compile/redef5.xfail b/libjava/testsuite/libjava.compile/redef5.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/redef5.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/redef6.java b/libjava/testsuite/libjava.compile/redef6.java deleted file mode 100644 index 1489d5e048d..00000000000 --- a/libjava/testsuite/libjava.compile/redef6.java +++ /dev/null @@ -1,6 +0,0 @@ -package bar.foo; -// Redefining and stuffing the redefined class with something - -class redef6 { - class redef6 {int foo;} -} diff --git a/libjava/testsuite/libjava.compile/redef6.xfail b/libjava/testsuite/libjava.compile/redef6.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/redef6.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/rh174912.java b/libjava/testsuite/libjava.compile/rh174912.java deleted file mode 100644 index 65c1bf574ab..00000000000 --- a/libjava/testsuite/libjava.compile/rh174912.java +++ /dev/null @@ -1,17 +0,0 @@ -// Derived from Red Hat bugzilla 174912 -// https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=174912 -// The bug is that the anonymous class constructor here will end up -// with a bogus '[3C' in its signature. - -public class rh174912 { - public rh174912(char[][] args) { } - - public Object m() { - return new rh174912(new char[][] { "hi".toCharArray(), - "bob".toCharArray(), - "and joe".toCharArray() }) { - }; - } - - public static void main(String[] args) { } -} diff --git a/libjava/testsuite/libjava.compile/rh175833.java b/libjava/testsuite/libjava.compile/rh175833.java deleted file mode 100644 index 6bdec57cb6e..00000000000 --- a/libjava/testsuite/libjava.compile/rh175833.java +++ /dev/null @@ -1,13 +0,0 @@ -// Follow-on to PR 25429 -public class rh175833 -{ - private static final Object CONST = new Object(); - class I { - public Object f () { - // We need an accessor here. - return CONST; - } - } - - public static void main(String[] args) { } -} diff --git a/libjava/testsuite/libjava.compile/static_1.java b/libjava/testsuite/libjava.compile/static_1.java deleted file mode 100644 index ff01a1ef98d..00000000000 --- a/libjava/testsuite/libjava.compile/static_1.java +++ /dev/null @@ -1,12 +0,0 @@ -package bar.foo; - -class static_1 { - class bar { - // No Static members: methods, fields, inner classes. - static int foo; - static int xyzzy (){return 0;} - static {} - static class foo {} - // No Member interface FIXME - } -} diff --git a/libjava/testsuite/libjava.compile/static_1.xfail b/libjava/testsuite/libjava.compile/static_1.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/static_1.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/static_2.java b/libjava/testsuite/libjava.compile/static_2.java deleted file mode 100644 index fdb5b99dac5..00000000000 --- a/libjava/testsuite/libjava.compile/static_2.java +++ /dev/null @@ -1,10 +0,0 @@ -package bar.foo; - -class static_2 { - static class koink { - static int i; - static void foo (){} - static {} - static class foo {} - } -} diff --git a/libjava/testsuite/libjava.compile/static_2.xfail b/libjava/testsuite/libjava.compile/static_2.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/static_2.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/static_3.java b/libjava/testsuite/libjava.compile/static_3.java deleted file mode 100644 index 894e5799b1f..00000000000 --- a/libjava/testsuite/libjava.compile/static_3.java +++ /dev/null @@ -1,5 +0,0 @@ -package bar.foo; - -class static_3 { - static class zoink { static class zork {}} -} diff --git a/libjava/testsuite/libjava.compile/static_3.xfail b/libjava/testsuite/libjava.compile/static_3.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/static_3.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/static_init.java b/libjava/testsuite/libjava.compile/static_init.java deleted file mode 100644 index 2e77b5e4a82..00000000000 --- a/libjava/testsuite/libjava.compile/static_init.java +++ /dev/null @@ -1,4 +0,0 @@ -class static_init -{ - native { } -} diff --git a/libjava/testsuite/libjava.compile/static_init.xfail b/libjava/testsuite/libjava.compile/static_init.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/static_init.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/static_init2.java b/libjava/testsuite/libjava.compile/static_init2.java deleted file mode 100644 index 8cae968045b..00000000000 --- a/libjava/testsuite/libjava.compile/static_init2.java +++ /dev/null @@ -1,9 +0,0 @@ -class static_init2 { - static final float two_to_the_30 = - (float) (1L << 30); - - static float[] floatValues = { - (float)1.0, - (float)two_to_the_30, - }; -} diff --git a/libjava/testsuite/libjava.compile/static_inner.java b/libjava/testsuite/libjava.compile/static_inner.java deleted file mode 100644 index ca0d99f4c8e..00000000000 --- a/libjava/testsuite/libjava.compile/static_inner.java +++ /dev/null @@ -1,19 +0,0 @@ -// File Parent.java -class Parent { - public static class Kid { - public Kid(int age) { - this.age = age; - } - - int age; - } -} - -// File NewParent.java -public class static_inner extends Parent { - - public static void main(String[] argv) { - Kid kid = new Kid(2); - } - -} diff --git a/libjava/testsuite/libjava.compile/support/Case.java b/libjava/testsuite/libjava.compile/support/Case.java deleted file mode 100644 index 709b47aca5a..00000000000 --- a/libjava/testsuite/libjava.compile/support/Case.java +++ /dev/null @@ -1,6 +0,0 @@ -package support; - -public class Case -{ - public static final int A = 9; -} diff --git a/libjava/testsuite/libjava.compile/support/PR129_A.java b/libjava/testsuite/libjava.compile/support/PR129_A.java deleted file mode 100644 index 643dad671b8..00000000000 --- a/libjava/testsuite/libjava.compile/support/PR129_A.java +++ /dev/null @@ -1,6 +0,0 @@ -package support; - -public class PR129_A { - public static String[] strArr = { "A", "B", "C" }; -} - diff --git a/libjava/testsuite/libjava.compile/support/PR206_A.java b/libjava/testsuite/libjava.compile/support/PR206_A.java deleted file mode 100644 index dffd498286b..00000000000 --- a/libjava/testsuite/libjava.compile/support/PR206_A.java +++ /dev/null @@ -1,8 +0,0 @@ -package support; - -public final class PR206_A { - static - { - String s = System.getProperty ("soylent"); - } -} diff --git a/libjava/testsuite/libjava.compile/support/PR207_A.java b/libjava/testsuite/libjava.compile/support/PR207_A.java deleted file mode 100644 index 1d465f5222e..00000000000 --- a/libjava/testsuite/libjava.compile/support/PR207_A.java +++ /dev/null @@ -1,13 +0,0 @@ -package support; - -public final class PR207_A { - static - { - String s = System.getProperty ("soylent"); - } - - public static String hello () - { - return "green"; - } -} diff --git a/libjava/testsuite/libjava.compile/support/Waldo.java b/libjava/testsuite/libjava.compile/support/Waldo.java deleted file mode 100644 index e28829d7af5..00000000000 --- a/libjava/testsuite/libjava.compile/support/Waldo.java +++ /dev/null @@ -1,7 +0,0 @@ -package support; - -public interface Waldo { - - public static final int here = 9; - -} diff --git a/libjava/testsuite/libjava.compile/uesc.java b/libjava/testsuite/libjava.compile/uesc.java deleted file mode 100644 index b41ef69f8c0..00000000000 --- a/libjava/testsuite/libjava.compile/uesc.java +++ /dev/null @@ -1,9 +0,0 @@ -public class uesc -{ - public foo (Object[] v[]) - { - char z = '\uuu00a0'; - char y = '\u00au0'; // At one point we erroneously - // accepted this. - } -} diff --git a/libjava/testsuite/libjava.compile/uesc.xfail b/libjava/testsuite/libjava.compile/uesc.xfail deleted file mode 100644 index e3b083b1fa5..00000000000 --- a/libjava/testsuite/libjava.compile/uesc.xfail +++ /dev/null @@ -1 +0,0 @@ -shouldfail diff --git a/libjava/testsuite/libjava.compile/weirddecl.java b/libjava/testsuite/libjava.compile/weirddecl.java deleted file mode 100644 index f6d9b3fb427..00000000000 --- a/libjava/testsuite/libjava.compile/weirddecl.java +++ /dev/null @@ -1,8 +0,0 @@ -public class weirddecl -{ - // Weird but legal decl. - public String foo (String[] dumb[]) - { - return dumb[0][0]; - } -} diff --git a/libjava/testsuite/libjava.compile/weirddecl.xfail b/libjava/testsuite/libjava.compile/weirddecl.xfail deleted file mode 100644 index 76540afa49b..00000000000 --- a/libjava/testsuite/libjava.compile/weirddecl.xfail +++ /dev/null @@ -1 +0,0 @@ -no-link diff --git a/libjava/testsuite/libjava.compile/zeroexp.java b/libjava/testsuite/libjava.compile/zeroexp.java deleted file mode 100644 index f14efbbc9a2..00000000000 --- a/libjava/testsuite/libjava.compile/zeroexp.java +++ /dev/null @@ -1,10 +0,0 @@ -public class zeroexp -{ - public static void main (String[] argv) - { - // gcj used to give an error about this literal. - float f = 0E-6F; - double d = 0E-9; - System.out.println ("" + f + " " + d); - } -} diff --git a/libjava/testsuite/libjava.jacks/jacks.exp b/libjava/testsuite/libjava.jacks/jacks.exp deleted file mode 100644 index 4640a71e9ca..00000000000 --- a/libjava/testsuite/libjava.jacks/jacks.exp +++ /dev/null @@ -1,122 +0,0 @@ -# Run the Jacks test suite. -# See http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html - -load_gcc_lib target-libpath.exp - -proc gcj_jacks_setup_xfail {ary} { - upvar $ary array - global srcdir - - set fd [open $srcdir/libjava.jacks/jacks.xfail] - while {! [eof $fd]} { - set array([gets $fd]) {} - } - close $fd -} - -proc gcj_jacks_write {filename} { - global GCJ_UNDER_TEST - global libgcj_jar - global libjava_libgcc_s_path - global ld_library_path - - set gcjl [split $GCJ_UNDER_TEST] - set gcj_cmd [lindex $gcjl 0] - set rest [join [lreplace $gcjl 0 0]] - append rest " -C" - - set fd [open $filename w] - puts $fd "set JAVAC $gcj_cmd" - puts $fd "set JAVA_CLASSPATH \"$libgcj_jar\"" - puts $fd "set JAVAC_FLAGS [list $rest]" - puts $fd "set JAVA [list [libjava_find_gij]]" - - # Without an explicit limit on the heap size, tests depending on - # an OutOfMemoryError (e.g. "15.9.4-runtime-creation-2") can result - # in a lot of unnecessary thrashing. - puts $fd "set JAVA_FLAGS \"-mx=64m\"" - - puts $fd "set JAVAC_ENCODING_FLAG --encoding=" - puts $fd "set JAVAC_DEPRECATION_FLAG -Wdeprecated" - puts $fd "set tcltest::testConstraints(encoding) 1" - puts $fd "set tcltest::testConstraints(gcj) 1" - puts $fd "set tcltest::testConstraints(assert) 1" - # "Time-consuming JVM limitation tests". - # puts $fd "set tcltest::testConstraints(jvm) 1" - close $fd - - set ld_library_path $libjava_libgcc_s_path - set_ld_library_path_env_vars -} - -proc gcj_jacks_parse {file} { - if {[catch {open $file} fd]} { - verbose "couldn't parse Jacks output: $fd" - return - } - - verbose "Reading jacks.xfail" - gcj_jacks_setup_xfail xfails - - while {! [eof $fd]} { - set line [gets $fd] - if {[string match RESULT* $line]} { - set linelist [split $line] - set test [lindex $linelist 1] - if {[info exists xfails($test)]} { - setup_xfail "*-*-*" - } - if {[lindex $linelist 2] == "PASSED"} { - pass $test - } else { - fail $test - } - } - } - - close $fd -} - -proc gcj_jacks_run {} { - global srcdir - - if {! [file isdirectory $srcdir/libjava.jacks/jacks]} { - # No tests. - verbose "Jacks tests not found" - return - } - - # Jacks forces us to do this. You can't run it from a separate - # tree. - verbose "Copying Jacks..." - catch {system "rm -rf jacks"} - catch {system "cp -r $srcdir/libjava.jacks/jacks jacks"} - - set here [pwd] - cd jacks - - verbose "Writing Jacks setup file" - gcj_jacks_write gcj_setup - - verbose "Running Jacks..." - # Just ignore error exits from the jacks program. - # It will always error exit for us, since don't completely pass. - # At the moment jacks has a hardcoded call to tclsh8.3. To override this, - # we check here on the version and launch the script directly with the - # tclsh$tcl_ver. - set tcl_ver [info tclversion] - if {[package vcompare $tcl_ver 8.3] >= 0 } { - if {[catch {exec tclsh$tcl_ver jacks gcj} msg]} { - send_log "Couldn't run jacks: $msg\n" - return - } - gcj_jacks_parse logging/gcj.log - } else { - send_log "No suitable tclsh found, you need at least version 8.3 or up.\n" - return - } - - cd $here -} - -gcj_jacks_run diff --git a/libjava/testsuite/libjava.jacks/jacks.xfail b/libjava/testsuite/libjava.jacks/jacks.xfail deleted file mode 100644 index 081e8ac233a..00000000000 --- a/libjava/testsuite/libjava.jacks/jacks.xfail +++ /dev/null @@ -1,686 +0,0 @@ -12.4.1-runtime-1 -12.4.1-runtime-2 -12.4.1-runtime-3 -12.4.1-runtime-4 -13.1-runtime-constant-1 -13.1-runtime-constant-3 -13.1-runtime-field-1 -13.1-runtime-method-6 -13.4.8-constant-runtime-1 -13.4.8-constant-runtime-2 -14-runtime-jump-1 -14-runtime-jump-2 -14.14-label-1 -14.14-label-2 -14.14-label-5 -14.14-label-8 -14.14-plain-2 -14.14-plain-5 -14.17-null-1 -14.17-null-3 -14.17-null-4 -14.17-null-5 -14.19-shadow-12 -14.19-shadow-13 -14.19-shadow-14 -14.19-shadow-15 -14.19-shadow-4 -14.19-shadow-5 -14.19-shadow-6 -14.19-shadow-7 -14.19.exception-13 -14.19.exception-14 -14.19.exception-15 -14.19.exception-16 -14.19.exception-21 -14.19.exception-22 -14.19.exception-23 -14.19.exception-24 -14.20-abrupt-10 -14.20-abrupt-14 -14.20-abrupt-2 -14.20-abrupt-6 -14.20-block-4 -14.20-block-9 -14.20-catch-15 -14.20-catch-17 -14.20-do-10 -14.20-do-11 -14.20-do-12 -14.20-do-13 -14.20-do-14 -14.20-do-15 -14.20-do-16 -14.20-do-17 -14.20-do-18 -14.20-do-19 -14.20-do-20 -14.20-do-21 -14.20-do-22 -14.20-do-23 -14.20-do-24 -14.20-do-25 -14.20-do-26 -14.20-do-27 -14.20-do-28 -14.20-do-29 -14.20-do-30 -14.20-do-31 -14.20-do-32 -14.20-do-33 -14.20-do-6 -14.20-do-9 -14.20-for-15 -14.20-for-16 -14.20-for-17 -14.20-for-18 -14.20-for-19 -14.20-for-20 -14.20-for-21 -14.20-for-22 -14.20-for-4 -14.20-for-8 -14.20-for-update-1 -14.20-if-6 -14.20-label-10 -14.20-label-11 -14.20-label-12 -14.20-label-13 -14.20-label-14 -14.20-label-15 -14.20-label-5 -14.20-label-8 -14.20-label-9 -14.20-local-2 -14.20-switch-14 -14.20-switch-17 -14.20-switch-18 -14.20-switch-19 -14.20-switch-20 -14.20-switch-21 -14.20-switch-22 -14.20-switch-23 -14.20-switch-24 -14.20-switch-8 -14.20-synchronized-3 -14.20-try-14 -14.20-try-18 -14.20-try-22 -14.20-try-27 -14.20-try-3 -14.20-try-31 -14.20-try-9 -14.20-while-12 -14.20-while-13 -14.20-while-14 -14.20-while-15 -14.20-while-16 -14.20-while-17 -14.20-while-18 -14.20-while-19 -14.20-while-4 -14.3-1 -14.3-scope-10 -14.3-scope-2 -14.3-scope-4 -14.3-scope-5 -14.3-scope-9 -14.3.1-runtime-3 -14.4.2-shadow-5 -14.4.2-shadow-6 -14.4.2-shadow-7 -14.4.2-shadow-9 -14.7-shadow-3 -15.11.1-ambiguous-2 -15.11.1-ambiguous-3 -15.11.1-explicit-constructor-3 -15.11.1-runtime-static-1 -15.11.1-runtime-static-2 -15.11.1-runtime-static-3 -15.11.1-runtime-static-4 -15.11.2-explicit-constructor-2 -15.11.2-meaning-11 -15.11.2-meaning-13 -15.11.2-meaning-14 -15.11.2-meaning-17 -15.11.2-meaning-6 -15.11.2-meaning-8 -15.11.2-meaning-9 -15.11.2-runtime-1 -15.11.2-runtime-2 -15.11.2-syntax-1 -15.12.1-syntax-1 -15.12.1-type-14 -15.12.2.1-accessibility-method-3 -15.12.2.1-accessibility-method-5 -15.12.2.1-accessibility-method-6 -15.12.2.2-ambiguous-10 -15.12.2.2-ambiguous-12 -15.12.2.2-ambiguous-14 -15.12.2.2-ambiguous-17 -15.12.2.2-ambiguous-18 -15.12.2.2-ambiguous-21 -15.12.2.2-ambiguous-25 -15.12.2.2-ambiguous-27 -15.12.2.2-ambiguous-3 -15.12.2.2-ambiguous-6 -15.12.2.2-ambiguous-9 -15.12.3-abstract-1 -15.12.3-abstract-2 -15.12.3-abstract-3 -15.12.3-explicit-constructor-10 -15.12.3-explicit-constructor-3 -15.12.3-explicit-constructor-4 -15.12.3-explicit-constructor-5 -15.12.3-explicit-constructor-7 -15.12.3-explicit-constructor-9 -15.12.3-runtime-mode-1 -15.12.3-runtime-mode-2 -15.12.3-runtime-mode-3 -15.12.3-runtime-mode-4 -15.12.3-runtime-mode-6 -15.12.4.1-runtime-static-1 -15.12.4.1-runtime-static-2 -15.12.4.1-runtime-super-1 -15.12.4.1-runtime-super-2 -15.14-runtime-3 -15.14-runtime-4 -15.15-runtime-3 -15.15-runtime-4 -15.16-semantic-5 -15.16-value-1 -15.16-value-2 -15.17-mod-3 -15.17-mod-4 -15.17.3-assoc-2 -15.17.3-double-1 -15.17.3-double-10 -15.17.3-double-11 -15.17.3-double-12 -15.17.3-double-13 -15.17.3-double-14 -15.17.3-double-2 -15.17.3-double-3 -15.17.3-double-4 -15.17.3-double-5 -15.17.3-double-6 -15.17.3-double-7 -15.17.3-double-8 -15.17.3-double-9 -15.17.3-float-1 -15.17.3-float-10 -15.17.3-float-11 -15.17.3-float-12 -15.17.3-float-13 -15.17.3-float-14 -15.17.3-float-2 -15.17.3-float-3 -15.17.3-float-4 -15.17.3-float-5 -15.17.3-float-6 -15.17.3-float-7 -15.17.3-float-8 -15.17.3-float-9 -15.18.1-double-1 -15.18.1-double-10 -15.18.1-double-11 -15.18.1-double-12 -15.18.1-double-13 -15.18.1-double-2 -15.18.1-double-3 -15.18.1-double-4 -15.18.1-double-5 -15.18.1-double-6 -15.18.1-double-7 -15.18.1-double-8 -15.18.1-double-9 -15.18.1-float-1 -15.18.1-float-10 -15.18.1-float-11 -15.18.1-float-12 -15.18.1-float-2 -15.18.1-float-3 -15.18.1-float-4 -15.18.1-float-5 -15.18.1-float-6 -15.18.1-float-7 -15.18.1-float-8 -15.18.1-float-9 -15.18.1-valid-1 -15.20-2-runtime-1 -15.25-runtime-1 -15.26.2-add-12 -15.26.2-and-10 -15.26.2-and-12 -15.26.2-div-12 -15.26.2-left-shift-12 -15.26.2-mod-12 -15.26.2-mult-12 -15.26.2-or-10 -15.26.2-or-12 -15.26.2-signed-right-shift-12 -15.26.2-sub-12 -15.26.2-unsigned-right-shift-12 -15.26.2-xor-10 -15.26.2-xor-12 -15.28-cast-simple-name-1 -15.28-cast-simple-name-2 -15.28-cast-simple-name-3 -15.28-instanceof-3 -15.28-notstring-1 -15.28-null-1 -15.28-null-3 -15.28-primitive-15 -15.28-primitive-17 -15.28-primitive-3 -15.28-qualified-name-10 -15.28-qualified-name-5 -15.28-qualified-name-6 -15.28-qualified-name-7 -15.28-qualified-name-8 -15.28-qualified-name-9 -15.28-qualified-namestr-7 -15.28-qualified-namestr-8 -15.28-qualified-namestr-9 -15.28-simple-name-6 -15.28-simple-name-8 -15.28-simple-namestr-1 -15.28-simple-namestr-2 -15.28-simple-namestr-3 -15.28-simple-namestr-4 -15.28-string-15 -15.28-string-17 -15.28-string-18 -15.28-string-2 -15.28-string-5 -15.28-string-9 -15.28-uninitialized-simple-name-3 -15.8.2-synthetic-1 -15.8.2-type-11 -15.8.2-type-12 -15.8.2-type-13 -15.8.2-type-14 -15.8.4-static-2 -15.8.5-field-expression-6 -15.8.5-method-expression-8 -15.8.5-variable-5 -15.8.5-variable-6 -15.8.5-variable-7 -15.8.5-variable-8 -15.9-runtime-numcalls-1 -15.9.1-qualified-anonymous-10 -15.9.1-qualified-anonymous-12 -15.9.1-qualified-anonymous-13 -15.9.1-qualified-anonymous-14 -15.9.1-qualified-anonymous-17 -15.9.1-qualified-anonymous-18 -15.9.1-qualified-anonymous-2 -15.9.1-qualified-anonymous-20 -15.9.1-qualified-anonymous-22 -15.9.1-qualified-anonymous-26 -15.9.1-qualified-anonymous-28 -15.9.1-qualified-anonymous-4 -15.9.1-qualified-anonymous-5 -15.9.1-qualified-concrete-12 -15.9.1-qualified-concrete-14 -15.9.1-qualified-concrete-16 -15.9.1-qualified-concrete-24 -15.9.1-qualified-concrete-4 -15.9.1-qualified-concrete-5 -15.9.1-unqualified-anonymous-12 -15.9.1-unqualified-anonymous-14 -15.9.1-unqualified-anonymous-15 -15.9.1-unqualified-anonymous-2 -15.9.1-unqualified-anonymous-23 -15.9.1-unqualified-anonymous-24 -15.9.1-unqualified-anonymous-26 -15.9.1-unqualified-anonymous-27 -15.9.1-unqualified-anonymous-4 -15.9.1-unqualified-anonymous-5 -15.9.1-unqualified-concrete-14 -15.9.1-unqualified-concrete-15 -15.9.1-unqualified-concrete-2 -15.9.1-unqualified-concrete-4 -15.9.1-unqualified-concrete-5 -15.9.4-runtime-creation-1 -15.9.4-runtime-creation-2 -15.9.4-runtime-creation-5 -15.9.5.1-exception-4 -15.9.5.1-superconstructor-7 -15.9.5.1-superconstructor-8 -16-instance-5 -16-instance-6 -16-instance-7 -16-static-1 -16-static-2 -16.1.2-definite-unassignment-fail-6 -16.1.3-definite-unassignment-fail-6 -16.1.5-not-assignable-7 -16.1.5-not-assignable-8 -16.1.7-compound-definite-unassignment-fail-6 -16.1.7-compound-definite-unassignment-fail-7 -16.2.10-definite-assign-pass-2 -16.2.10-definite-unassign-pass-1 -16.2.10-definite-unassign-pass-2 -16.2.10-definite-unassign-pass-3 -16.2.10-definite-unassign-pass-4 -16.2.10-definite-unassign-pass-5 -16.2.10-definite-unassign-pass-6 -16.2.10-definite-unassign-pass-7 -16.2.10-definite-unassign-pass-8 -16.2.11-definite-assign-pass-2 -16.2.11-definite-unassign-pass-1 -16.2.11-definite-unassign-pass-2 -16.2.11-definite-unassign-pass-3 -16.2.11-definite-unassign-pass-4 -16.2.11-definite-unassign-pass-5 -16.2.11-definite-unassign-pass-6 -16.2.11-definite-unassign-pass-7 -16.2.11-definite-unassign-pass-8 -16.2.14-definite-unassign-fail-12 -16.2.14-definite-unassign-fail-13 -16.2.14-definite-unassign-fail-5 -16.2.14-definite-unassign-fail-6 -16.2.14-definite-unassign-fail-7 -16.2.14-definite-unassign-fail-8 -16.2.3-local-class-11 -16.2.3-local-class-4 -16.2.3-local-class-5 -16.2.5-definite-unassign-pass-1 -16.2.5-definite-unassign-pass-2 -16.2.5-definite-unassign-pass-3 -16.2.8-final-3 -16.2.8-final-4 -16.2.8-unassigned-1 -16.2.8-unassigned-20 -16.2.8-unassigned-21 -16.2.8-unassigned-22 -16.2.8-unassigned-23 -16.2.8-unassigned-6 -16.2.8-unassigned-8 -16.2.8-unassigned-9 -16.2.9-definite-assign-pass-2 -16.2.9-definite-unassign-pass-1 -16.2.9-definite-unassign-pass-2 -16.2.9-definite-unassign-pass-3 -16.2.9-definite-unassign-pass-4 -16.2.9-definite-unassign-pass-5 -16.2.9-definite-unassign-pass-6 -16.2.9-definite-unassign-pass-7 -16.5-anonymous-3 -16.5-runtime-1 -16.5-runtime-2 -16.5-runtime-3 -16.5-runtime-4 -16.5-runtime-5 -16.8-constructor-8 -201-enhanced-for-final -201-enhanced-for-int-array -201-enhanced-for-Iterable -201-enhanced-for-object -201-enhanced-for-with-generics -3.10.1-invalid-3 -3.10.1-invalid-4 -3.10.2-double-13 -3.10.2-double-14 -3.10.2-round-10 -3.10.2-round-11 -3.10.2-round-12 -3.10.2-round-7 -3.10.2-round-9 -3.2-valid-1 -4.5.4-parameter-2 -4.5.4-parameter-3 -4.5.4-static-1 -4.5.4-static-5 -4.7.10-jvms-class-18 -4.7.10-jvms-class-6 -4.7.10-jvms-class-7 -4.7.10-jvms-class-8 -4.7.10-jvms-constructor-6 -4.7.10-jvms-constructor-8 -4.7.10-jvms-field-6 -4.7.10-jvms-field-8 -4.7.10-jvms-method-6 -4.7.10-jvms-method-8 -5.1.2-btd-1 -5.1.2-btd-3 -5.1.2-btd-5 -5.1.2-btf-1 -5.1.2-btf-3 -5.1.2-btf-5 -5.1.2-std-3 -5.1.2-std-5 -5.1.2-stf-1 -5.1.2-stf-3 -5.1.2-stf-5 -6.3-1 -6.5.1-type-15 -6.5.1-type-16 -6.5.1-typeorpackage-2 -6.5.4.1-simple-10 -6.5.4.1-simple-11 -6.5.4.1-simple-6 -6.5.5.1-import-2 -6.5.5.1-import-3 -6.5.5.1-nested-14 -6.5.5.1-nested-19 -6.5.5.1-nested-20 -6.5.5.1-nested-21 -6.5.5.1-nested-23 -6.5.5.1-nested-8 -6.5.5.1-nested-9 -6.5.5.2-type-4 -6.5.5.2-type-5 -6.5.5.2-type-6 -6.5.5.2-type-7 -6.5.5.2-type-8 -6.5.6.1-explicit-constructor-2 -6.5.6.1-field-6 -6.5.6.1-local-3 -6.5.6.1-local-4 -6.5.6.2-expression-6 -6.5.6.2-type-2 -6.5.6.2-type-6 -6.5.6.2-type-8 -6.5.6.2-type-9 -6.6.1-11 -6.6.1-8 -6.6.1-array-11 -6.6.1-array-13 -6.6.1-array-14 -6.6.1-array-17 -6.6.1-array-2 -6.6.1-array-20 -6.6.1-array-22 -6.6.1-array-23 -6.6.1-array-26 -6.6.1-array-29 -6.6.1-array-3 -6.6.1-array-31 -6.6.1-array-32 -6.6.1-array-35 -6.6.1-array-5 -6.6.1-array-8 -6.6.2.1-protected-type-2 -6.6.2.2-protected-creation-3 -7.1-named-5 -7.1-named-6 -7.1-named-7 -7.4.2-2 -7.5.1-accessible-4 -7.5.1-accessible-5 -7.5.1-canonical-3 -7.5.1-duplicate-4 -7.5.1-shadow-2 -7.5.2-accessible-1 -7.5.2-accessible-3 -7.5.2-accessible-4 -7.5.2-canonical-2 -7.5.2-canonical-3 -7.5.2-duplicate-1 -7.5.2-duplicate-2 -7.5.2-duplicate-3 -7.5.2-duplicate-4 -7.6-optional-restrictions-1 -7.6-unnamed-scope-1 -7.6-unnamed-scope-2 -8.1.1.1-default-abstract-11 -8.1.1.1-default-abstract-13 -8.1.1.1-default-abstract-15 -8.1.1.1-default-abstract-19 -8.1.1.1-default-abstract-21 -8.1.1.1-default-abstract-25 -8.1.2-enclosing-10 -8.1.2-enclosing-4 -8.1.2-enclosing-5 -8.1.2-enclosing-7 -8.1.2-runtime-1 -8.1.2-static-1 -8.1.2-static-11 -8.1.2-static-16 -8.1.3-object-3 -8.3-inheritance-1 -8.3-inheritance-2 -8.3-inheritance-3 -8.3-runtime-1 -8.3.1.2-final-17 -8.3.1.2-final-19 -8.3.1.2-final-2 -8.3.1.2-final-21 -8.3.1.2-final-24 -8.3.1.2-final-27 -8.3.1.2-final-28 -8.3.1.2-final-29 -8.3.2-abrupt-3 -8.3.2-abrupt-5 -8.3.2.2-super-2 -8.3.2.3-illegal-forward-instance-1 -8.3.2.3-illegal-forward-instance-2 -8.3.2.3-illegal-forward-instance-3 -8.3.2.3-illegal-forward-instance-4 -8.3.2.3-illegal-forward-instance-5 -8.3.2.3-illegal-forward-instance-6 -8.3.2.3-illegal-forward-instance-7 -8.3.2.3-illegal-forward-instance-8 -8.3.2.3-illegal-forward-instance-9 -8.3.2.3-illegal-forward-static-1 -8.3.2.3-illegal-forward-static-10 -8.3.2.3-illegal-forward-static-2 -8.3.2.3-illegal-forward-static-3 -8.3.2.3-illegal-forward-static-4 -8.3.2.3-illegal-forward-static-5 -8.3.2.3-illegal-forward-static-6 -8.3.2.3-illegal-forward-static-7 -8.3.2.3-illegal-forward-static-8 -8.3.2.3-illegal-forward-static-9 -8.3.2.3-legal-forward-instance-11 -8.4.6-inheritance-1 -8.4.6-inheritance-2 -8.4.6.1-override-3 -8.4.6.2-hiding-3 -8.4.6.3-default-10 -8.4.6.3-default-12 -8.4.6.3-default-14 -8.4.6.3-default-4 -8.4.6.3-default-6 -8.4.6.3-modifier-10 -8.4.6.3-modifier-11 -8.4.6.3-modifier-12 -8.4.6.3-modifier-13 -8.4.6.3-modifier-8 -8.4.6.3-modifier-9 -8.4.6.3-signature-4 -8.4.6.4-abstract-1 -8.4.6.4-abstract-10 -8.4.6.4-abstract-2 -8.4.6.4-abstract-9 -8.4.6.4-multiple-3 -8.4.6.4-multiple-4 -8.4.6.4-multiple-7 -8.4.6.4-multiple-8 -8.5-inheritance-1 -8.5-inheritance-2 -8.5-inheritance-3 -8.5-inheritance-6 -8.5.2-non-static-member-usage-4 -8.5.2-non-static-member-usage-5 -8.6-abrupt-1 -8.6-abrupt-4 -8.6-checked-exception-10 -8.6-checked-exception-11 -8.6-checked-exception-12 -8.6-checked-exception-2 -8.6-checked-exception-4 -8.6-checked-exception-5 -8.6-checked-exception-6 -8.6-checked-exception-8 -8.6-complete-1 -8.6-complete-4 -8.6-complete-5 -8.7-abrupt-1 -8.7-complete-1 -8.7-complete-3 -8.8.5.1-example-1 -8.8.5.1-example-3 -8.8.5.1-qualified-1 -8.8.5.1-qualified-10 -8.8.5.1-qualified-11 -8.8.5.1-qualified-12 -8.8.5.1-qualified-13 -8.8.5.1-qualified-15 -8.8.5.1-qualified-2 -8.8.5.1-qualified-3 -8.8.5.1-qualified-4 -8.8.5.1-runtime-super-1 -8.8.7-accessible-default-constructor-inner-18 -8.8.7-accessible-default-constructor-inner-26 -8.8.7-runtime-accessible-default-1 -9.1.1-in-class-17 -9.1.1-in-class-24 -9.1.1-in-interface-16 -9.1.1-in-interface-2 -9.1.1-in-interface-3 -9.1.1-in-interface-9 -9.1.2-supertype-1 -9.2-implicit-18 -9.2-implicit-19 -9.2-implicit-2 -9.2-implicit-3 -9.2-implicit-4 -9.2-implicit-6 -9.2-implicit-7 -9.3.1-illegal-forward-1 -9.3.1-illegal-forward-2 -9.3.1-init-1 -9.4.1-conflict-2 -non-jls-argument-expansion-11 -non-jls-argument-expansion-12 -non-jls-argument-expansion-error-1 -non-jls-argument-expansion-error-2 -non-jls-argument-expansion-tokens-1 -non-jls-jsr41.2-clash-1 -non-jls-jsr41.3-runtime-2 -non-jls-jsr41.4-definite-unassignment-fail-22 -non-jls-jsr41.4-definite-unassignment-pass-10 -non-jls-jsr41.4-definite-unassignment-pass-9 -non-jls-jsr41.4-definite-unassignment-try-1 -non-jls-jsr41.4-definite-unassignment-try-2 -non-jls-jsr41.4-definite-unassignment-try-3 -non-jls-jsr41.4-definite-unassignment-try-4 -non-jls-jsr41.4-definite-unassignment-try-5 -non-jls-jsr41.4-definite-unassignment-try-6 -non-jls-jsr41.4-definite-unassignment-try-7 -non-jls-jsr41.4-definite-unassignment-try-8 -non-jls-jsr41.4-loop-1 -non-jls-jsr41.4-loop-10 -non-jls-jsr41.4-loop-11 -non-jls-jsr41.4-loop-12 -non-jls-jsr41.4-loop-13 -non-jls-jsr41.4-loop-14 -non-jls-jsr41.4-loop-15 -non-jls-jsr41.4-loop-2 -non-jls-jsr41.4-loop-3 -non-jls-jsr41.4-loop-7 -non-jls-jsr41.4-loop-8 -non-jls-jsr41.4-loop-9 diff --git a/libjava/testsuite/libjava.jni/PR15133.h b/libjava/testsuite/libjava.jni/PR15133.h new file mode 100644 index 00000000000..af9f8f8a368 --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR15133.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __PR15133__ +#define __PR15133__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_PR15133_printIt (JNIEnv *env, jobject, jint); + +#ifdef __cplusplus +} +#endif + +#endif /* __PR15133__ */ diff --git a/libjava/testsuite/libjava.jni/PR15133.jar b/libjava/testsuite/libjava.jni/PR15133.jar new file mode 100644 index 0000000000000000000000000000000000000000..ad76705df4d29ee4a910a99dc62c5d5622ca0792 GIT binary patch literal 674 zcwP(eW@h1H0D%<^N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTG` zr7E5pj0_B0ftVL48W3b?YG`b%mzwVZkp!V_-&)IpuGGB|!?Q!Lw7GR?p z$Ffi$WDUoo%*%SI-m|@YTL01je5KCvI>Oz`Qc>dGJ>G*hbNQw)GrKn0=s2lfm}oWM z*GV+~bitY%AMLIMUV3_SnfMx>YR=1t7oR!uIxSVH)Fq>`{QpU=6P7EI&$>Mh-*E4b zVxVxN8p}eHd8Zr~9F90v%-)j3CC#L|gJrq-+@rOn%Pxl`RX%ro)e<{R(qsNfS@}a5 zpYz+b3(vmS52$$57Avu~=ZxVrg=v@0_9PySpXs^s%+qxpMq1vL>eB2|Ute)& + +#ifndef __PR18116__ +#define __PR18116__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jint JNICALL Java_PR18116_doit (JNIEnv *env, jclass, jstring); + +#ifdef __cplusplus +} +#endif + +#endif /* __PR18116__ */ diff --git a/libjava/testsuite/libjava.jni/PR18116.jar b/libjava/testsuite/libjava.jni/PR18116.jar new file mode 100644 index 0000000000000000000000000000000000000000..b9a0034bac35432589a8e17fc4275b708cefd975 GIT binary patch literal 740 zcwP(eW@h1H0D+YaN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTIJ zUhG+)#mK;5%EZ9H3lt3qGPE!>G}BAYNh~fd4LIp{C_u!v-zoZ(u;6n>);X)VJ + +#ifndef __PR28178__ +#define __PR28178__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_PR28178_m (JNIEnv *env, jclass); + +#ifdef __cplusplus +} +#endif + +#endif /* __PR28178__ */ diff --git a/libjava/testsuite/libjava.jni/PR28178.jar b/libjava/testsuite/libjava.jni/PR28178.jar new file mode 100644 index 0000000000000000000000000000000000000000..0c9082bb90670b2005243ebf4371a30efe42fefc GIT binary patch literal 662 zcwP(eW@h1H0D*N4N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTI7 zC6#?-7#SFr05LC6G$6>x!qD78FF7Z%xH#9}+xxJCz&|z5$tAO|Mdj8uESML>KdowG z!bhbFEv>LU6}Ogn-<-5WAb6qu>B&c%?GMPSo}2cF`}qdr&mV2m?%T)RXDHeD`k+#U z`F8ca?=sIfJFoD6GWm^)k#zaG#hqQ;P51kS=e~S2C!zgqbyKmStfu_528Ra=KY5$Z zu@}?g4RGxZ@LX18av@Ofv*kibzPb-xG3k$uA8$9iFmuqZ94 zio>b_rw*>XBDql1?oYak!ws$ti8qog=04rH>&h|Rh}sV~ItmV$NH3H5p>go(-N$by z?AF}=P(PsVS*QNv@B>B~#<^~<;{Vvba|^VpI{3@{Zfuj;)U%2 + +#ifndef __bytebuffer__ +#define __bytebuffer__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_bytebuffer_testByteBuffer (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_bytebuffer_testCharBuffer (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_bytebuffer_testDoubleBuffer (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_bytebuffer_testFloatBuffer (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_bytebuffer_testIntBuffer (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_bytebuffer_testLongBuffer (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_bytebuffer_testShortBuffer (JNIEnv *env, jclass, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __bytebuffer__ */ diff --git a/libjava/testsuite/libjava.jni/bytebuffer.jar b/libjava/testsuite/libjava.jni/bytebuffer.jar new file mode 100644 index 0000000000000000000000000000000000000000..d0ca6d7e92335714fd037eb83cbf12e4c892d8b2 GIT binary patch literal 1150 zcwP(eW@h1H0D%b&N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTI> zUP|TsV`5-<%*MbV02EECEJ;l&O-oBH(o4=sEG{k$$qv5kAYyxZv1aPTAUReMRzb}L z3R?RdLL4?kF|x{ctY6Y1lredxiN)dbpSsIrj>|vjFWOTsxar^o{++XD7r&dgH@&?6 z|Id%y2UKjBOPMrZD{NT%_igTN^9u?S?wRhNA)IiY`(CqbX8O8w z;&mq8&-bRyb&2KD^k6=>}~fT?^$4G2hOtZA$*RtX|>5Ozn&v2g>hUGP$0u zYq4(cp7@P9^>??N+UAht<~zg5)<`H*h2uxWH9ep9 z$fW&ez~Nhc&yQza0LnTaEs1GdcPB08ckqsu(`;=lw~}vZ8urNKGH#Cf)|Hm9dCeb> zoX5ce5>qqW*{APODinRpbZN~ix0GV#jeZ6{XSt~Fno$$`h%GP3|4i1EnR0XGHnwr! znRH^&Z0vD5wd&L+Q_b0l(3 z@~fsJ$vUe_U#GcUTf6h*6Lq0li}O#G3!M)L*rfct$quR(vOuvF7j(Riemq;J} zx2ZQW9vR zpZkxW*|wweXRyqTL)#dmS){znHcCz4%+# z_Vw$oeQ=UZw_!W6xaz}XC!t=C3)>yz#Wg=oKB1DG@yknDNjpS#?`)2n9y7lf?(0`F zmU7>}Shq!;Z}Or}e>v6JKLl2Kq&vFax}tT7FLa{W?5-`@S6rCAxcom(R`QR_%XZ*x zZrv#5c5GkcA(qyYQp+^%tV^7A=&zJq;EeT&olg7Oo_B3=iZG2(-y)SG5XWmL + +#ifndef __calls__ +#define __calls__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jint JNICALL Java_calls_docall (JNIEnv *env, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __calls__ */ diff --git a/libjava/testsuite/libjava.jni/calls.jar b/libjava/testsuite/libjava.jni/calls.jar new file mode 100644 index 0000000000000000000000000000000000000000..3a188ea4907126c222baa053689d9a58c314a857 GIT binary patch literal 1283 zcwP(eW@h1H0D(yjN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTGT znDf5u0P@}eF-SBiu{c#PIVZ8WIJS2;*C7W1*Z0p>8qWISxFLkQdG8I5CWR=CZJRn* z=X7vBc^G~(f>W%nL0;9*NsIm2xz}gTJpWzAJmZkzLW2y(^R1k{2YY|?{x`CG;JtG1xZd-Ubq2QX4;OtLQ9XaQlBMe>`Y4$y@N<5nI_L33z z(V#G8?I(qE{8#BqGzf$&n{ZiomG7xvB9T`m?JrgZIAt$!yBp$Zy+Qg)cEHuI@9GzL z-ddagy$;oX`rLIdN|_iK!dMs>xPhX{i8(pN5D(@~jL*N6AaZQJQ|7{wLlViwvv1FF zPJD5rr=C6Uq?w`ekr@d-J>s8PxmIhw4LT*XudTd}{lAO8+2YQ7)sK&VxaPlL-gaG! z*Iu8d72msGdCt;*|KDFkr)FZ4a@f(!GOlI8FyvAbZ|(qRp*U z*G*sXa@n^H_j5D8C0{dGu{5MiT8l$@sS;;rkZ!mCvvV8V6O$ig{LVGMvus1^|{Fb;Zk={Rq|B9{Y6v#o9mCqH>W{+52S|i%t(s zDV%8)S=&DCL)nG3kCdYhEHpK_rt3O!vD_ZFgIw!QX>iQ2U=Atl{jDVbX-eXy{r4JE zt^X;N&RU)N^(2%1M(x_aFVDK9%swMCN%YmVR4dMuqVwm9LKk+4*qep;D9F0b)Vk%P z&OCM3)$OyRT%Y@Czk43{lxv4a#f`USZ5m1wD#E*_y*MkcDf+kLMs@itmbqL`C2Ac# z!D^O|^e@Z~cM0<|_$NO7PD+fx4~M)mA<6wI*Yr8nm&dVlSs1lu%FkIoZ_nx}DVxv7 zvqkC^&pTpUc1~RM_~HG{Pn42o6ju6&ehGPgc}8+RQ_i#-l{!D(7;QAHTFosvF*Rk{ zu}AfytX9+A>QX#srzgu7XqG;e__?4pJLS7o=ek8Nrl0vStzGHh!Td`*-M$pK`bYUZ z{GE2iay)9KA8cFkS@+JjotyGMd`ai<_b*r;W^wFpc*p0P-v7_cQ&Mh- zo%Pr5sOT>b{uj^W-Z!4L5AbGW;$pyE2%rL_A^}w!dZB;->I~S62!sjPGd=>eG9VWN e==#tz6au6&qGYcCZ&o&tFbfdA0@BPZARYjzr`+HG literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/cxxtest.h b/libjava/testsuite/libjava.jni/cxxtest.h new file mode 100644 index 00000000000..d903636f4e4 --- /dev/null +++ b/libjava/testsuite/libjava.jni/cxxtest.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __cxxtest__ +#define __cxxtest__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jobjectArray JNICALL Java_cxxtest_fetch (JNIEnv *env, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __cxxtest__ */ diff --git a/libjava/testsuite/libjava.jni/cxxtest.jar b/libjava/testsuite/libjava.jni/cxxtest.jar new file mode 100644 index 0000000000000000000000000000000000000000..5a9a0d772178a12b73804240b72fd07224253a72 GIT binary patch literal 818 zcwP(eW@h1H0D;L3N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHk zb(y+57#SG$GBGgl0!5Q6DoTI`=_ThR78mCR-uJ&8AoB0rt+lZ`rIVALU0fNrY9C6f zk$KqKvYgd7&8KDgy4{adW3x}qZLIg0Z)(-!_MhRu#^aq+8T7I*U7iEO2q)UNm)`ktuHH~I0o&j&kuOd7v&_Ab6xvdFujd{Km|*LxwI z{eQa>-Y<22x#)r8f>#SZ$;bWw6LNau0h_Froff?9wx%Zzy_s|2Oa6iHrOPHgUUzWz z`;{(oJ?_ji_wulBRGCs%z@w89paE)Bu1{3U(&q;`Ds+562Pbk~_%VJz<+ z=&klUZjW?o|*@!0f?hRBTr&i5W!3wH^pedPZf z+v9XJ?zH_Z)7g&kCTao^ZQdV#y|n0lvd<{E>-6ND*?wv1OKS}5T4zrF-&OGNgSW=! z?Z@IjPkD9E{7mgBZSfmb8XICCWpyimUHvP!Z+2f+L8DthaowR`UC&D6P183g7>Bcp zO^kG!7rXCJ#k6FjU+H)F_AQX~DR|E;^IJJ5yXp63C6*|j&|}Ir`&e!~+Ho?Zt|2b| z!24Xk3-hjRI8alXmse0S`7hJFKdb@Xj7(e%xKkP`KuUM0+R#%T0;n@!PlpH-u%|8r YXk|c4YXRP@Y#<3{Alw3^Gnha;05=pNQ~&?~ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/directbuffer.h b/libjava/testsuite/libjava.jni/directbuffer.h new file mode 100644 index 00000000000..6d5c652760b --- /dev/null +++ b/libjava/testsuite/libjava.jni/directbuffer.h @@ -0,0 +1,26 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __directbuffer__ +#define __directbuffer__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jobject JNICALL Java_directbuffer_createDirectByteBuffer (JNIEnv *env, jclass); +JNIEXPORT void JNICALL Java_directbuffer_testDirectByteBuffer (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_directbuffer_testCharBuffer (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_directbuffer_testDoubleBuffer (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_directbuffer_testFloatBuffer (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_directbuffer_testIntBuffer (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_directbuffer_testLongBuffer (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_directbuffer_testShortBuffer (JNIEnv *env, jclass, jobject, jint); + +#ifdef __cplusplus +} +#endif + +#endif /* __directbuffer__ */ diff --git a/libjava/testsuite/libjava.jni/directbuffer.jar b/libjava/testsuite/libjava.jni/directbuffer.jar new file mode 100644 index 0000000000000000000000000000000000000000..f1630dad889cfc6bd015ff0d51ddbc8c0eb72b3b GIT binary patch literal 1067 zcwP(eW@h1H0D-9uN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTH~ zp1dwv&cwh_&&t3c1QbolEJ{r-Nh(cCOD)n%&PgmT&JB(YzU&}k8+~aBFZY%jGledV z3!g#*|6~bnbrsQcUEZhvW70H+L@%Ss%g%jx#{cQ4_}d>3_&>N?-n+|nx99BPz2@cT zZ`yuO`TYC*`FIAi5BD5;8s&F4UgmiHcCxU#!2-i2=iZ(#+m~6r{O93cmTL`Fwn_P3 zFFu^x)|m57xjF1x|6G&Ye`lIzRBiE3fGWN*ueN zcviH|5BqS+N!(85LG?XTi^UD=Z+E@xdO!Eu<-4!7jk40~E`+yjy3m>}zU}oz_7ien zf7hrw z+8t-knN(e-omA?Ux-yRYl5*ei3McVvd75qhtES9*+!XLYBgy;R;#+bv-9N?#Y_pvA zxK%{V&|b->G(IBw(ToF2R+L#Rn;>{que~)haPPwz2YCbcKAmyYH!##9FVQa~wD0ze zbc5_V>kNzC>wav#^h$rf-Z@o)zc&TWD+qNsFE4Mt_e`_fUEa53!XG!$yRuzsNg|V5 zdV=Cg@2mrb0RHgTrf#F@_~%v?5s{ocX5 z_3pK*oSdiTTScr`Q*-*$_+@pY@{^vd&>QtR& + +#ifndef __field__ +#define __field__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jobjectArray JNICALL Java_field_fetch (JNIEnv *env, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __field__ */ diff --git a/libjava/testsuite/libjava.jni/field.jar b/libjava/testsuite/libjava.jni/field.jar new file mode 100644 index 0000000000000000000000000000000000000000..3f636e842cc7304a34f79cde8c56d07f3524595b GIT binary patch literal 810 zcwP(eW@h1H0D)-@N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHV z@(HuIFfuUgWMW|828yO-rskyRCFdj-7v~0^_PZS*U@L6BF*(o4!=vJhBli}IXM&+R z%{LS_c4aILnaZWDzVm=^j*pYNH`TXlS#>VyU^6Qy@ zG?a2nI(-W`xgh+ZE|U}TOPNJirOZy)@l~It zSpAi!v?M!|D|c&p#oO-9F5g(y0+oDNCf?6p>G$Tic+0BaEc@mj(Xz?P+H-Om*VB6o z?oa%fzF*kGDNkFqBq1Sc0gpAmldnSeoO#Y_cawR;n>iudC$X`Rp3KFJ;CiJU8m~UviSqN8JV~kaHla;fRy4;wV|gu1W;$do&pgjU{6;F(8_?4$^yJu Q*+9a~K)4A=CozF|0NY~=lK=n! literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/final_method.h b/libjava/testsuite/libjava.jni/final_method.h new file mode 100644 index 00000000000..dbb8235496d --- /dev/null +++ b/libjava/testsuite/libjava.jni/final_method.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __final_1method__ +#define __final_1method__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jstring JNICALL Java_final_1method_meth (JNIEnv *env, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __final_1method__ */ diff --git a/libjava/testsuite/libjava.jni/final_method.jar b/libjava/testsuite/libjava.jni/final_method.jar new file mode 100644 index 0000000000000000000000000000000000000000..a5f4b63f30555bf6b4741a85dbc509b150c66560 GIT binary patch literal 751 zcwP(eW@h1H0D&0|N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHO z=GiaLW@KP6Wny3u0*a<(<|XFD=cblq9Fo9t(YeR!=80X>x21k;e&x7$f&7L3u6GejCVo$RcgOnqyyAB?HT(84 zTO8uqjvJTly-?8V;BH$Cw`R7#@E-w=L)A9eJZCr+Ou09(Zq$4zB5JD>?dd!F{2B ztofErj_dtdbTd3|dpM~FrcP3fUiU{maDB`!o}Zt-+Hi97ywunkyKQ4r=&i%j7m{}7 zulcg-ISUVmUd8@p2Uw*gQ*?6{WF$;hG-l6Oyd=!zUFd1W!qqQ%|7^3EnALpc&G~n$ z3q?93n!5~qTowf9281qJrZU{~mEqx$2Tq-g8A{o&PK; zZ_U>w-Ae6$&Yw^W)ZBDN`o>j>?%s5rx4j$84*i;mB6 + +#ifndef __findclass__ +#define __findclass__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jclass JNICALL Java_findclass_doit (JNIEnv *env, jclass, jstring); + +#ifdef __cplusplus +} +#endif + +#endif /* __findclass__ */ diff --git a/libjava/testsuite/libjava.jni/findclass.jar b/libjava/testsuite/libjava.jni/findclass.jar new file mode 100644 index 0000000000000000000000000000000000000000..03fe860f7e910b7cf718be06980927ec9b75e3cd GIT binary patch literal 809 zcwP(eW@h1H0D)NzN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTG{ zbYFg3&B(y;go%NHA1IoZnU|8BlUQ7=2PSiaPWmx93e=u`kki+p@lIOHYTb*2!pEA` z=5@@<@ab9Jmgze=v5lv>bN*6xlUY9)>!xg!>S?;v{%+N)@b$k!zaD@7+PcB^jiiS` z#CD?(T6Xy+JSvixLhH_R+ws5SN`Ja)#Sxxojz_0A_V7!Zl>hBgtdyxbDX}byvRhoA%dL*rP(qWEScB)|Pr%n12Uz*Dt zrKODcE?ro;Lfos$XP>-#_=^ZlO`$!v=Ec+MvObBkOj>;(oh?f+(wQTy zrncn4)QX_=x>laxk&I*p0eX^M~_~mm-2sP=4vG; zJeE}6U$9s9%8aGAT&A_^9NQoK?Y78)E5d5`42u8u>^$>_TP!*vD{*UU@BYx>87ln? z9m<$?#|L;bGI25BPF|=0DY2nyLr-o9pw56j@gYpWo}>_sAx1$eWvfuxv$a2t@0 HWdiX42Tcxf literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/iface.h b/libjava/testsuite/libjava.jni/iface.h new file mode 100644 index 00000000000..58680dd90c4 --- /dev/null +++ b/libjava/testsuite/libjava.jni/iface.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __iface__ +#define __iface__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_iface_doCalls (JNIEnv *env, jobject, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __iface__ */ diff --git a/libjava/testsuite/libjava.jni/iface.jar b/libjava/testsuite/libjava.jni/iface.jar new file mode 100644 index 0000000000000000000000000000000000000000..0a9a1af3cf6012584626183bf66a8039ce96b446 GIT binary patch literal 991 zcwP(eW@h1H0D;*JN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTIg z@7DB9Wn^HO!o;U>p4QomuSKYrp@lyUiswUwa=% zQ$R=n%SX+-ZoO|@udTgM|H)N8MC1>Hz1N&8O;IKjPNoz+J2Ug-@8hSX8+_N?J|VE_ zSIn&oYaIc8H1=se3kBiQzjVRwWk;?K+~(tlpwRFLrbnc;`riT<0{EUIw(H_!Hv zLUbcf^!8pge?s1kj~rM%x2Pbk*{Q`CQoO@fr!Fag2vZk#s4a#i*)u> z?0dSQXR6=2ufH4Hx(9zQEqW5N{mh&Y1$ARxL(5S9B@=oZ8z(l- zWMq+OT(;S0Lt_Nb8;41qjm!)I-i%CK47igwDnLr?sM^qzI|8UPU{CxA6R;;~1ZZVI gN#N)j(L)mfoS9I=Ho%*e4J6J2gl~ZKT_z9@0F8-Bs{jB1 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/invocation/PR16923.jar b/libjava/testsuite/libjava.jni/invocation/PR16923.jar new file mode 100644 index 0000000000000000000000000000000000000000..a1a7b88047321d5bf1f8d88de2af9cf94fc18734 GIT binary patch literal 673 zcwP(eW@h1H00DJfWitjOzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWx0 zt;JF5j0_BiftVL48W3b?W@%)smznpG!1bSB8RyKB5S_!I)60TH&u;GgZqVn#Hzgtlf+-1 zn0#{U>()sU$2|pB7Ka{_StawiK4b35xs#L|rNlan{4$+3PoLg=<6XLgyXqy`Qtt~s zN)aL%Nu3KHd0+K^w9)5EOXBfYe;0+YeBS-`zoxKu#N&w6j58978~S?JmmcmAn|ajB ze74^lHRejOlK~1Xii@>Ehi^L+`!tU3)y=;_8Qp|ng*=D45f329K zv0%Tz*I(RH{t^EiXH; + +#ifndef __invoke__ +#define __invoke__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jint JNICALL Java_invoke_val (JNIEnv *env, jclass); + +#ifdef __cplusplus +} +#endif + +#endif /* __invoke__ */ diff --git a/libjava/testsuite/libjava.jni/invoke.jar b/libjava/testsuite/libjava.jni/invoke.jar new file mode 100644 index 0000000000000000000000000000000000000000..dd0579740a771c259c2025f5978f6cfb89d03358 GIT binary patch literal 762 zcwP(eW@h1H0D-v;N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTG; z|6k5%Vq{?OWMW|80g7hkmE~ur>LuqS78mCRoc259AYyxXb*jcG=MSCv8xxocwU6|6 zc5(&^^GJs?`{7nt_;;E0l)ViHbH2$uUG-p&Vpg~n&qnU``jb7BQXBp+-m=`k zQ6_T3gk_2OK5v|~bF|mjz1B9*VBaUQxUDm_E#-m#RO=O2vt%Nl@II0F#Jx;+&4L37 zHd!YMGne1}wOCTXCL_d3O=*tL+Q^9Ok2Q}A|DE>g*P;2dZY-H0HKDfc>9nG!Un{Om z{Wtf8)ugDi1`6&X)?!{B6MlCV96As#QlTPpQta(-*IhC^?qX#dmnX|)Z#OG^qy0B* z&)eR=^Y(;9seS!>!E`T6wM(~Cz2S@wWyh_KS0$AcqiPywM$b~5tbK0ds%~Dbc`FZZ zaQ!dy(V^0}V97+M#%+dg|EBwQ`njd=`PKC{K1zvYvCc}~cJ6P5ADlHOZ+TY~H2ZNu z+b8}0_H9Nc^HrBPedkyeAK=Z%#KnL+$)EzH1ca&$JqaOzIs^6ug)jkoGC_b=2Gm3o T;LXYg5@!a&%|P0a3B&^c>MQ$J literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/jni.exp b/libjava/testsuite/libjava.jni/jni.exp index 317c5ae57e5..5fa6edefb71 100644 --- a/libjava/testsuite/libjava.jni/jni.exp +++ b/libjava/testsuite/libjava.jni/jni.exp @@ -4,7 +4,7 @@ # of options to pass to the compiler. Returns 0 on failure, 1 on # success. proc gcj_jni_compile_c_to_so {file {options {}}} { - global srcdir + global srcdir subdir global host_triplet verbose "options: $options" set options_cxx $options @@ -31,7 +31,7 @@ proc gcj_jni_compile_c_to_so {file {options {}}} { lappend options "additional_flags=${so_flag} -fPIC" # Find the generated header. - lappend options "additional_flags=-I. -I.." + lappend options "additional_flags=-I. -I.. -I$srcdir/$subdir" # Ensure that the generated header has correct prototypes. set cfile [file rootname $file].c @@ -60,10 +60,16 @@ proc gcj_jni_compile_c_to_so {file {options {}}} { # Build a header file from a .class file. Return 0 on failure. proc gcj_jni_build_header {file} { + global libgcj_jar + set gcjh [find_gcjh] set file [file rootname $file] + + set cmd "$gcjh -jni -force -classpath .:$libgcj_jar $file" + verbose $cmd + set x [string trim [libjava_prune_warnings \ - [lindex [local_exec "$gcjh -jni $file" "" "" 300] 1]]] + [lindex [local_exec $cmd "" "" 300] 1]]] if {$x != ""} { verbose "local_exec failed: $x" 2 fail "$file header generation" @@ -100,19 +106,19 @@ proc gcj_jni_test_one {file} { return 1 } - if {! [bytecompile_file $file [pwd]]} { - fail "bytecompile $file" - # FIXME - should use `untested' on all remaining tests. - # But that is hard. - return 0 - } - pass "bytecompile $file" +# if {! [bytecompile_file $file [pwd]]} { +# fail "bytecompile $file" +# # FIXME - should use `untested' on all remaining tests. +# # But that is hard. +# return 0 +# } +# pass "bytecompile $file" - set bytefile [file rootname [file tail $file]].class - if {! [gcj_jni_build_header $bytefile]} { - # FIXME - return 0 - } +# set bytefile [file rootname [file tail $file]].class +# if {! [gcj_jni_build_header $bytefile]} { +# # FIXME +# return 0 +# } set cfile [file rootname $file].c set cxxflags "" @@ -180,7 +186,8 @@ proc gcj_jni_test_one {file} { # cxxldlibflags to libjava_invoke. if {$INTERPRETER == "yes" && $gij != ""} { libjava_invoke $errname "gij test" opts $gij \ - "" $resultfile $cxxldlibflags $main + "" $resultfile $cxxldlibflags \ + -classpath $file $main } # When we succeed we remove all our clutter. @@ -194,7 +201,7 @@ proc gcj_jni_test_one {file} { # options to pass to the compiler. Returns 0 on failure, 1 on # success. proc gcj_jni_invocation_compile_c_to_binary {file {options {}}} { - global srcdir + global srcdir subdir global host_triplet verbose "options: $options" set options_cxx $options @@ -208,7 +215,7 @@ proc gcj_jni_invocation_compile_c_to_binary {file {options {}}} { lappend options "additional_flags= -bind_at_load -multiply_defined suppress" } # Find the generated header. - lappend options "additional_flags=-I. -I.." + lappend options "additional_flags=-I. -I.. -I$srcdir/$subdir" # Find jni.h and jni_md.h. lappend options "additional_flags=-I$srcdir/../include -I$srcdir/../classpath/include" @@ -231,6 +238,7 @@ proc gcj_jni_invocation_compile_c_to_binary {file {options {}}} { # Do all the work for a single invocation API test. Return 0 on # failure. proc gcj_jni_invocation_test_one {file} { + global env global runtests global host_triplet global INTERPRETER @@ -242,13 +250,13 @@ proc gcj_jni_invocation_test_one {file} { return 1 } - if {! [bytecompile_file $file [pwd]]} { - fail "bytecompile $file" - # FIXME - should use `untested' on all remaining tests. - # But that is hard. - return 0 - } - pass "bytecompile $file" +# if {! [bytecompile_file $file [pwd]]} { +# fail "bytecompile $file" +# # FIXME - should use `untested' on all remaining tests. +# # But that is hard. +# return 0 +# } +# pass "bytecompile $file" set cfile [file rootname $file].c # Darwin needs -liconv linked, otherwise we get some unresolved. @@ -281,10 +289,14 @@ proc gcj_jni_invocation_test_one {file} { set resultfile [file rootname $file].out + set env(CLASSPATH) $file + verbose "CLASSPATH = $env(CLASSPATH)" if {! [gcj_invoke $main $resultfile ""]} { + unset env(CLASSPATH) # FIXME return 0 } + unset env(CLASSPATH) # We purposely ignore errors here; we still want to run the other # appropriate tests. @@ -304,14 +316,14 @@ proc gcj_jni_run {} { # For now we only test JNI on native builds. if {$build_triplet == $host_triplet} { - catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.java] } srcfiles + catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.jar] } srcfiles foreach x $srcfiles { gcj_jni_test_one $x } # Run JNI invocation API tests - catch { lsort [glob -nocomplain ${srcdir}/${subdir}/invocation/*.java] } srcfiles + catch { lsort [glob -nocomplain ${srcdir}/${subdir}/invocation/*.jar] } srcfiles foreach x $srcfiles { gcj_jni_invocation_test_one $x diff --git a/libjava/testsuite/libjava.jni/jniutf.h b/libjava/testsuite/libjava.jni/jniutf.h new file mode 100644 index 00000000000..b58db2e3248 --- /dev/null +++ b/libjava/testsuite/libjava.jni/jniutf.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __jniutf__ +#define __jniutf__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_jniutf_printString (JNIEnv *env, jobject, jstring); + +#ifdef __cplusplus +} +#endif + +#endif /* __jniutf__ */ diff --git a/libjava/testsuite/libjava.jni/jniutf.jar b/libjava/testsuite/libjava.jni/jniutf.jar new file mode 100644 index 0000000000000000000000000000000000000000..764808c4f171f19be5e3661d19dbe82d8b19db2b GIT binary patch literal 788 zcwP(eW@h1H0D%P!N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTH8 z4moSgVPs%%WMW|80g7hjWtNtt=_ThR78mCRoc6mNAYg0GxvkJ?(lTF-{6ku~OO?#- znj{5xhO%%A2qisbX_istE1K(dvy@Bsf_ZM`H|<@S0vTOK8Id zX6K^dO`JQoN?N{V*;}tNiMMmRpm07{(8-hkj`zD*UiiGFo87!XSxc*Mk@KQB8>fHq zr@1B9oa9Q^(0M9XZWv+N9Q7*c$IbYjI|WOW8*7cMboWZG?DLd6{6jRrn~{l&0e50T t1xQH?RU3NZLI8CJ>`4t_0`>%i0IdwD$tl2_l?^1$41}A3v^Nuo2LM?r1f~E0 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/martin.h b/libjava/testsuite/libjava.jni/martin.h new file mode 100644 index 00000000000..73b6a062e14 --- /dev/null +++ b/libjava/testsuite/libjava.jni/martin.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __martin__ +#define __martin__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_martin_myNative (JNIEnv *env, jobject, jstring); + +#ifdef __cplusplus +} +#endif + +#endif /* __martin__ */ diff --git a/libjava/testsuite/libjava.jni/martin.jar b/libjava/testsuite/libjava.jni/martin.jar new file mode 100644 index 0000000000000000000000000000000000000000..a0293a75f75a334e94259755684b34e2e06c3a84 GIT binary patch literal 934 zcwP(eW@h1H0D(mfN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHr zQ!;<+F)=W#VrF3A0gC1(7L{b?=_ThR78mCRXXgt!ir6x@MotqgtPJ@b5VckB?zSIw zjs8NWZClh#)q3Z%%`m(Drg;rFr@gnmL$YvvgZ-(Bbj3?iWt)tx)6dx!zq@nuetq3P zrUL$a3n89N|CWi5i**d1^dEJ&67x|0>bG0RHwhbN^!B~};rC^dVrJ-m109p*byp@_ zSa|rsiFw_(^=G`); zZHMNhHfQ-ieQ3+N({Ab&VLsl}*RS^oy-YALwMp}+ov==N#m``7*HWSLCo_2b`W7e2 zwl#)lhKVjuT(H2Rr1-~gg%{h}Lu_m9U$o2qJQvt{&TrklzFQ*MB9mIGf-b!9y*%e~ z&Rn;zOMKt5%zXdFwY;rLmh%<&5g(yR|BuHn4Rl>%c6^7?;^oN(CubOmE}nA0WQn7Y zSI$$BrOdxsx|7$;GIxuRepvRJebqOP+r~>{awZ4waVyt!erqS^Gj-OI#Z#vFALKh$ zabwe2cV(N6XVaChPQbiL8M~Tb+28tJ8E1;kNJ=^$)**sg{w6ivf4?Mg>TT q9aS58az_Al2JDF+VFLCfjR36-s0lp4o0SbD&J2W`f%IJ_5Dx$(M^3>2 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/noclass.h b/libjava/testsuite/libjava.jni/noclass.h new file mode 100644 index 00000000000..67869a91675 --- /dev/null +++ b/libjava/testsuite/libjava.jni/noclass.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __noclass__ +#define __noclass__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_noclass_find_1it (JNIEnv *env, jclass); + +#ifdef __cplusplus +} +#endif + +#endif /* __noclass__ */ diff --git a/libjava/testsuite/libjava.jni/noclass.jar b/libjava/testsuite/libjava.jni/noclass.jar new file mode 100644 index 0000000000000000000000000000000000000000..969aa950f33d65ed6dac1a3d6905769ad69cdedf GIT binary patch literal 755 zcwP(eW@h1H0D;8~N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHb z|7Jy3GBPmOFflOj0!8!klXDV_i}k={Zop~3Lk=Rgm#6tfuSya?hltmxAV;(zoa@!y1H@e4Iqk8VqxxMMb!i!HC}YII&To=*t-#Vq^c zLrhA-q|@AzX6IFZ8b&#_@$7tbv;M7&fzQqv4VjboW{MlnP<=DobFY&6GCz-Jv*Q;;YX(K@OZ;Cr zyEY(wThx3b>B%SfR7JCv#u?i_k$X7LPVxO&+vI)L7X<24ZyZ%Fe!>6QW2Ul>zkYU0 zX2gG%0B=SnE(Y951r;DA98_)SNe2Pc8L%fLgbCP_2LiM*pe2?7Z&o&t1TzqB0n(aG GARYkbKlt4M literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/overload.h b/libjava/testsuite/libjava.jni/overload.h new file mode 100644 index 00000000000..7b717cd0975 --- /dev/null +++ b/libjava/testsuite/libjava.jni/overload.h @@ -0,0 +1,20 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __overload__ +#define __overload__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jint JNICALL Java_overload_over__I (JNIEnv *env, jclass, jint); +JNIEXPORT jint JNICALL Java_overload_over__II (JNIEnv *env, jclass, jint, jint); + +#ifdef __cplusplus +} +#endif + +#endif /* __overload__ */ diff --git a/libjava/testsuite/libjava.jni/overload.jar b/libjava/testsuite/libjava.jni/overload.jar new file mode 100644 index 0000000000000000000000000000000000000000..430d3d665f203e2a996b78492d4acfc6f413a4cf GIT binary patch literal 749 zcwP(eW@h1H0D+|qN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHx z<#i7W85tOCm>3xNfTHXWpMJ$-tSND6rZ2le|~#8L;40& z6^Snihn)2beo3XYy}2;c!u0${_N}wuP57>)WKuQn_3n$T%_-s5JfBi8Jhu{J7ME*AGCG)=1lyW;IliTc$V~)yiQ@k z$<~W^F}6+WWD4VbvuI6X|H2I|8H<`~+1@%j%(E}QEO@tl(d{IITL&%PeAEulnfUML z&ESQtMjur=7CS6o9kezubfHGytn29>c7bm3PU{<4_DUJ5I&IqjN67W!!Z~}Cwl7$1 zsIhU$jb;ZyU8hMJNpE+5wVB4$bv|Nx`i;7SeJ7?!@@d3otUcmpoTBJ0W$Dzv!tcQk z?f`E_CN2itX#^D@r5IFg=xGK4)ETg+AcP6n(***wGN7lD0B=?{kPI^rZUxdxOduWr D(Tw%w literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/pr11951.h b/libjava/testsuite/libjava.jni/pr11951.h new file mode 100644 index 00000000000..caeefdb85fc --- /dev/null +++ b/libjava/testsuite/libjava.jni/pr11951.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __pr11951__ +#define __pr11951__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_pr11951_nmethod (JNIEnv *env, jclass); + +#ifdef __cplusplus +} +#endif + +#endif /* __pr11951__ */ diff --git a/libjava/testsuite/libjava.jni/pr11951.jar b/libjava/testsuite/libjava.jni/pr11951.jar new file mode 100644 index 0000000000000000000000000000000000000000..adea29fe77cc97771e3cc4e1c3951ad86cb1053b GIT binary patch literal 715 zcwP(eW@h1H0D)xB%Hfu5z2ZhCSu7Z=QQ4u~Tj zusH@YGBAiUF);7~MGJ}y4J}O#^^$WEi;HsuPWv5l5U~wjpx+h7Qu8P~G{$3BL83xl z&pN5t1fQPO)6AkSwM%w!&VS0asPo-ljmLA_8idk~%HQoRJ~z|&^Vh%M7!MrV$JFUq z`D|NlS(dhj(G2GAM|0itKHb>&k!sZ%qu5;fg{vrB$Hxt{=+3_nD zH>_e5HuC)W(xA8bO=kp;>FTFC)^9a3Cfrz5d$RIW>6O5x?rKf5e?74)JKVA`(e}@C zH}=Ep8hs0w-t%_fBOlXxXp-UYrNWMf6c2Ic%Vv8*mEo)G*Wa9GcGEAYF5|pCCG*CiZ*yAz zY_T|cZj)^Dynuy%lZ!a3?E}0SnYb8mCjnG|lps*Gp(hChP-noNKoBNik9GuTWk5>= T0p6@^APHt5+ybN-nLs=MH5K6g literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/pr18278.h b/libjava/testsuite/libjava.jni/pr18278.h new file mode 100644 index 00000000000..4003fef37df --- /dev/null +++ b/libjava/testsuite/libjava.jni/pr18278.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __pr18278__ +#define __pr18278__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jobject JNICALL Java_pr18278_weakRef (JNIEnv *env, jclass, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __pr18278__ */ diff --git a/libjava/testsuite/libjava.jni/pr18278.jar b/libjava/testsuite/libjava.jni/pr18278.jar new file mode 100644 index 0000000000000000000000000000000000000000..c1bf1489a5b39818ec3ae5d99632ad8e804f8b25 GIT binary patch literal 763 zcwP(eW@h1H0D;vFN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHR zoU!JOj0_BcObiUXK+%FCLklBw3%%r=#Ny)Iz|($*0t9TQGqpysR{l7kt`#xGqePkW zSgYE)4}u0dC8gZqK`qy=EPB{pvX)y#?+=6hDT}pI@g;`E@4uX}G=9EspY48z8!mor z{f_%KnRiFuc9pDa%jmxU!D;sFvxhd`6Dn<2+>tz^ZS!e`%$-ur_4l(lScML0F>x5V zoNCkT+a()&V|h$IcT>rZL?fS!=TGx@txA?o+dO4;>w{o{gFAX&=mI{Jr^Q^30%j^_o7L&#ahn zRAypiY?Q@MMx!-{I5jPos8=jslE9cL+0FA&aet^z;?2*KymCLEKN0`Rbh^spq|Hwz zl|B2lGGy(#SaJ5Y*K>aT6qC-=zqDmK%lFAIT+)K4yfky48OXQBR`H7id(uLQFI{#m zhD=|DqZWouSCW>NP0*R9aa@SmN5)QR>igt*m#Y5pZTc@)x3Yg~{yLG36C2c}l$IHG zc_y86NL0L@$-nc}%gpxy-i%CK47igFDnLp=sM^qz5CW((U{6p86R;-}1ZZVIOEdxA RtZX0&W+2=Gqz#!sJOBvx@KXQ) literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/pr23739.h b/libjava/testsuite/libjava.jni/pr23739.h new file mode 100644 index 00000000000..70f228c8c0e --- /dev/null +++ b/libjava/testsuite/libjava.jni/pr23739.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __pr23739__ +#define __pr23739__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_pr23739_checkOrder (JNIEnv *env, jclass, jclass, jclass); + +#ifdef __cplusplus +} +#endif + +#endif /* __pr23739__ */ diff --git a/libjava/testsuite/libjava.jni/pr23739.jar b/libjava/testsuite/libjava.jni/pr23739.jar new file mode 100644 index 0000000000000000000000000000000000000000..d8370461b55ea8998d167b285058df35e92cc83a GIT binary patch literal 1319 zcwP(eW@h1H0D-j)N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHq zHtg3w1mwK~VtyblC^9lOH?~x9)Jx7uEH2jV-N<#wLBJ(lc(QlWl^={^O|4N9SDaV` zRTMZDwIHhz`b+&12N-0cN3p~uHDP{B{2O0$2V139{0nA*~bEu zD%|Uy*ByF#FuvVgFqZR~%CwKAUKei9m0c(@=lh{XzT2&glLMlU1+B?j9JJJ38Bo2OdGK=Gb|CLLns=Qb-u3OZvbL8iWSst?qPxN%_k{t+Ikk=_X1jkF-K?(D;Jl`H zZqniyR?8cyS022%YkRCz)iT3jos<;jJrZCdM|@@mb!7jQ$kDQtV}@nW^(uj=;4 zBWFvl2!FcvYG>1eE6&ccfiu`91#s;8tMKM{-y3dEi6?b+=wDpMcW7Os?~)sPtmk<}$5=WRA9E@anvzoWw$iC>-XZmXW`AMU zbA3t?h8Z2siR+BCi+H9bWfiN$NqqcM^Sa}M?DMlP4<6yJwR`fX_)k}F{!Sq~p-jj6 z9w86q%^sSCD<6a#Z%)hWn|ohPGi<5kQ%Uy??X`Vsi*;7>?Fi~iX6yv!T}CD@2Hcq( z6(D7KRBh;)9s$%DuonRc6R>A&1ZZWz$mZyp(X$BxlrUms8g$L*=??)Sn9x#VfHx}} PNP-mz^?+I)GlO^lJl4dd literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/register.h b/libjava/testsuite/libjava.jni/register.h new file mode 100644 index 00000000000..85b606be8cb --- /dev/null +++ b/libjava/testsuite/libjava.jni/register.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __register__ +#define __register__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jint JNICALL Java_register_doit (JNIEnv *env, jclass, jint); + +#ifdef __cplusplus +} +#endif + +#endif /* __register__ */ diff --git a/libjava/testsuite/libjava.jni/register.jar b/libjava/testsuite/libjava.jni/register.jar new file mode 100644 index 0000000000000000000000000000000000000000..e8682e1a03163a8dfe444a6409f0d04b1bfd2fd1 GIT binary patch literal 724 zcwP(eW@h1H0D+ASN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTII zBFAq;Fak|xVqo9{iWa4&XBL;F7U?DDBo-Iv2AuR`auiuJPckj}fFMiZK~_^q8xI@j zJu_xZ5HLMh@zKPg-DKv`o@UPZOW9TB{xH~|`XP14S^nO&(63tW-~N3ndccs6M}sHr zQ2Qgjr=5(w2W5YLuT%c8IPvi!^GAQDFs!XpP?|W;U`5>DS&r7d>~~s{4!0#M{BFNG zcS6_;g?1ZfvyQ)x?q7uLXBte|b51{IR!7E-DOKLGf*(H@-gta+>V0mD=6kbrw=7)r z;6SUNH~U5f<5}0&ZP#qw*CBE0-dQEj?w(MYHHmX|jwdgg`piJkT#s|I(4^mqm)Q<4 zYgP)&$w@qZz|6Uj@xnp9ES_U)WmqrXVU^sz`=iCn&&Gu cd-NkfD+79B2=HcQ1IaK0;Z`8c$pqp70BZZ=$p8QV literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/register2.c b/libjava/testsuite/libjava.jni/register2.c index 1ed10a88a23..318e4d8f408 100644 --- a/libjava/testsuite/libjava.jni/register2.c +++ b/libjava/testsuite/libjava.jni/register2.c @@ -1,6 +1,6 @@ #include #include -#include +#include static int twentythree (JNIEnv *env, jclass k) diff --git a/libjava/testsuite/libjava.jni/register2.jar b/libjava/testsuite/libjava.jni/register2.jar new file mode 100644 index 0000000000000000000000000000000000000000..807524cdc8b49c6c8c201724bf4207cf489879b5 GIT binary patch literal 1445 zcwP(eW@h1H0D%n+N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTIs zm)f|NFfuT7FflOj14WBc(=&@pQj3iAl5-M^i*p0+`bjxT*ls@XZd2aGq`-|!qp}M( zhB0lQRh5{ui8FKdjf%%t8HA0}ZknD>dX#*#+v(O3_7~2kw#{tWk78=-EuYsspKV`X zf0r?1@zVoB8q2a)9G~fB&G(7vsduGr^u(U_wd?nKUp>!qXK~$<qepkOk=jz7~7hdR=m#*38<7PXx zZu(vi&KvHZTjh#Y{Lnc3?9#+58xLd^e4OJkF)XZhP2ya&$(*s_?-Q*uYn9cMgHB#t z*v!jVU--%I#%k2gwjM2a|M!A|EW-bKv?+-o+ctkDhklQERV~$hux`!SN{u zm(R+t_~(|}b=`Q+&(5`#w`VBLSa|YV;1ZMa9p`o(tG}aA+rPK9|3><{4XXrycK(w- z!(Q;85j8?*#Vr1I3CQCHMye2UgsONNLgLic?{wCo00CR!+&JIbb=}^Ns(nPJOUQ{(-xwdilcxXJ#IsX<7Vt{~tyVL%s)sLZ{hd&2#q0 zZ8mY3ZeX!W-c)m{rO&mW6T90U_;0;*zT6GB798mu<{nm$9U*>MU zyJ}C$!Z+G?E$ZAl%&(pl+jHUVl5+7sIjv8c&q!?h9CX$6I%8YQ3qQq*$S&~{s#~6Q zb}zcpm~y`9N}1g`j(Sx=&CY$JEN*cX1D(nilbN_`x_$BEboqyM_Ytj3~_;%B7k!kw7*4$9LY{Gd#<;(h4-nvDpdfl;QPlH`Q*l)Rbb<%|yd*wLKh88~K z;B7ICdmvmTom)};`^*iwkZGF(&b6+Su~&8Z{V2_U&$X{hev8zs28O^DiEXQ6rm9Y7 zWNZ20saTQO#Q8)h>+=!Uz*i2NHY!}5`%`vpzNd@VqW80yxh}fBnP#O|c2T(JPLRCw z7P$a#MkX!>+(ip2Kq_cZwV@X^2%ye@z2HHZfW0_DfK~>K!UbJ3deTLJFeYpX8C^em b#3MiiGqz+9;LXYgl4S)#GoYSG77z~rnj{wR literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/simple_int.h b/libjava/testsuite/libjava.jni/simple_int.h new file mode 100644 index 00000000000..b0b9b579a8e --- /dev/null +++ b/libjava/testsuite/libjava.jni/simple_int.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __simple_1int__ +#define __simple_1int__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jint JNICALL Java_simple_1int_nat (JNIEnv *env, jclass, jint); + +#ifdef __cplusplus +} +#endif + +#endif /* __simple_1int__ */ diff --git a/libjava/testsuite/libjava.jni/simple_int.jar b/libjava/testsuite/libjava.jni/simple_int.jar new file mode 100644 index 0000000000000000000000000000000000000000..1f0bdc67ce087329a828864a44937cb2ea088f34 GIT binary patch literal 730 zcwP(eW@h1H0D;X7N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHq z8SMI^7#SGEnHU%ZfTG2jxdl0?@tJugddWG7#l^V+-rh`s61LYR(@W+QUAhwYZ9~&W z*Go~E!YoZ830pD+!}p$;T6w~P?cbWHDO+B!e_6cfeO5~A{YTYzi}w}pke{Fbp5a_U zj?%$|-X->5jx_Tm30pNAKj`1{?Bjy?-S2o@%+owfcg^ETsX4b`=T&RAze;a9MTEq3 zZm1d6N4!0$A-1nqbd6EUo(bQhHVJ>sI22G2y}zJPrMWKl?&)nQ3hR#5xw~xN^O%!u zv7zvm1&Zm18yzn(s_XB%y~b?ij~F%{*Y9;VkDC0vwP9nY?xNP@MWW9PB(LRh2nz=l z?9XdVJnkm=z$(c{<-E~&XV9;>HpvbcYrq|6Bh&SI~Qu f3&I5KNdN&_888z>fHx}}NRAl@w*zTjCJ+w*sGQ{3 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jni/throwit.h b/libjava/testsuite/libjava.jni/throwit.h new file mode 100644 index 00000000000..97c7223f7d0 --- /dev/null +++ b/libjava/testsuite/libjava.jni/throwit.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __throwit__ +#define __throwit__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_throwit_throwit (JNIEnv *env, jclass, jstring, jboolean); + +#ifdef __cplusplus +} +#endif + +#endif /* __throwit__ */ diff --git a/libjava/testsuite/libjava.jni/throwit.jar b/libjava/testsuite/libjava.jni/throwit.jar new file mode 100644 index 0000000000000000000000000000000000000000..9fc43b9d871245e09d0c813cda65cecc2a1d4734 GIT binary patch literal 864 zcwP(eW@h1H0D&zHN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTH` zjl{+#>~LL3luHMD9SI-EYVBONh~g|4fYMb93W!5KJ&Ay3y*G-hp3B(q zUbS5e4NY?p+fk*PpJm`XM`h|m_8-wPj~5x~{bBs4as2ZotA@)Tb&KxrmVZ94`rVW3 z@8#_oZH^jqt1@c;pP;rpF>j%cL9vqk=`@wcai4RayOb6)?!MZ4$l^>qhlJzffCYPI z%V8ZAsdY@+9b9J`k z{>7J=Z+1>;xTz(z%iuxvj7CiZ^MyZFBwU`JxaRSD^@X>0oV}6yAoh=;pWox@nX{JY zv547BF?d}t$(6r+;}OZpjP2`s4;)&u(|yUD3a@YFCJU?O-X+i6^d)4U^hq7z8N5>A zRpNfj><&0{ukP`4__U#|)a$?J?nOW3bKOo&-rLP)rknGJRdW%0Rcw?xfB%Pw1F93R zYn@K%KNY$@Q1bMGohGHHGozDt{ywSjc2)SoX}6^F>%GGhXHJs1u$)I)bVf~d&DsmE zl7D?;ol|^ohgn_hD)zLH2-Po(j{WrBvTM<%kFwkKE}uP=$>H98Zg#U)*5gU~Uotm5 z|2LhG1yrw7bpg{D$$)D;MJ!ft4e8Bc9;;7Zz6 + +#ifndef __virtual__ +#define __virtual__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jboolean JNICALL Java_virtual_equals (JNIEnv *env, jobject, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __virtual__ */ diff --git a/libjava/testsuite/libjava.jni/virtual.jar b/libjava/testsuite/libjava.jni/virtual.jar new file mode 100644 index 0000000000000000000000000000000000000000..dd4090b9b30f1d0f7c011de227ef8642b7d78b0b GIT binary patch literal 747 zcwP(eW@h1H0D)}{N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTGh zN&(7+j0_BBObiUXK+&?yqLR|Y9KGb6#Ny)IfZKkD90Y8=7q&(T?yPh@8r`KLBz#|C z-;5tuR&XA3sk!y2ZH?yIX-<#QUouPh{$a2`Wx;(UdQSV?xs#34&z<>w{Iqlf^BbuS zLkVU{x7v4-9mXknKO3&wyerR2f44Tno#&+6?aBLk`Xo$t7o8Na=gV^uG89(RVK&~s zYZm`rj}qN8N@ooov;H|YG4I4-_O_s7PiN^A-W-D`{}iKc91)ZK;O8jE+kabk>x7#;zY?S8cx>%9wSB)& z$YEwpMu4EZ5a){!>5$x@u!ZT9&wJQj>VN07zEff^o1v+bQT!jF)TK|fRtcRwV@{&1W;$do`4W0U{4kZ(8_?8NCLcB*+3G^K)3}+D>8w20BEx9 A-T(jq literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jvmti/events.h b/libjava/testsuite/libjava.jvmti/events.h new file mode 100644 index 00000000000..2f81b63fead --- /dev/null +++ b/libjava/testsuite/libjava.jvmti/events.h @@ -0,0 +1,27 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __events__ +#define __events__ + +#pragma interface + +#include +#include + +extern "Java" +{ + class events; +} + +class events : public ::java::lang::Object +{ + +public: + events(); + static void do_events_tests(); + static void main(JArray< ::java::lang::String * > *); + static ::java::lang::Class class$; +}; + +#endif // __events__ diff --git a/libjava/testsuite/libjava.jvmti/events.jar b/libjava/testsuite/libjava.jvmti/events.jar new file mode 100644 index 0000000000000000000000000000000000000000..121df82381999b14e850b5e24f5acfae21226540 GIT binary patch literal 702 zcwP(eW@h1H0D&N9WitjOzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSD; zF2>t#j0_C-ftUv|XkiW;@4CeL}o*4|6?h%dtJ}Z6I{s2DN?XfLThXLwMh$dmj(6C`ns;!=31`Ezl+=FJ1aBsyH4qd zI`83G$vACSp}&W7#lhw@w$!%2uiyDTKh+;uyR^4v3Ul6)u(~w|j;d|T%`u!3w&lZy z=2*7hnqIyh={vW1E#q!m)t+Or<@UABFCAh|W!!s{bYn6{v-7W1MJut&Es9mSU8_ +#include + +extern "Java" +{ + class geterrorname; +} + +class geterrorname : public ::java::lang::Object +{ + +public: + geterrorname(); + static void do_errorname_tests(); + static void main(JArray< ::java::lang::String * > *); + static ::java::lang::Class class$; +}; + +#endif // __geterrorname__ diff --git a/libjava/testsuite/libjava.jvmti/geterrorname.jar b/libjava/testsuite/libjava.jvmti/geterrorname.jar new file mode 100644 index 0000000000000000000000000000000000000000..a0c5ae0525d5a5791a28f1b4c834436258dbfacf GIT binary patch literal 716 zcwP(eW@h1H0D%x^WitjOzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWu} z?A)dvj0_AffLI79nx0ycT2z!@l$V&Bs+XLTSX`VNaN6&XgNW^Prlm_ii5y|?vNmvg zB=z{%ii--f9B%ATVD_0MbZeH;j31G^0v;dY|FF1c`_&G$Gb-Ori{Dv(udCU&m)XL_ z*S#mtre__q2)B@17_&cD-(r_mfz9r#FQiW>tyli; z@Ay4&*^=yq4N9AT7mEe|VzaLM+%~c6W6+MZB3>=0Qva_i544{C%H+vAgL2(RW*gf| zWksC|Id2?dGvoXf8!>Csp`hBC4#F*~T1zZ8-u(LfpvOGRhZ}zGx3=M!c;o4QsY8nk zk9a4oE)Glee9?77MFW_}$^U{+h5+>(%rr@f)`~q$x=; zYo5DQ!+Cqo@eQ9@1H2iTxEOFpKPo^<45-@BlLG>%Ghj~~2otbJIRdmYU`qf2-mGjO OS!N*I38eorf_MP@!`^fN literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.jvmti/jvmti.exp b/libjava/testsuite/libjava.jvmti/jvmti.exp index 18be872741b..c69fd2bc0f0 100644 --- a/libjava/testsuite/libjava.jvmti/jvmti.exp +++ b/libjava/testsuite/libjava.jvmti/jvmti.exp @@ -31,27 +31,23 @@ proc gcj_jvmti_compile_cxx_to_o {file {options {}}} { # Build header files given name of .java file. Return 0 on failure. proc gcj_jvmti_build_headers {file} { + global libgcj_jar + set gcjh [find_gcjh] - set jvscan [find_jvscan] - set class_out [string trim \ - [libjava_prune_warnings \ - [lindex [local_exec "$jvscan --encoding=UTF-8 $file --list-class" "" "" 300] 1]]] - if {[string match "*parse error*" $class_out]} { + # Currently we only build a header file for the main class from the + # .java file. If we need more than this, we'll have to figure + # something out. + set file [file rootname [file tail $file]] + + set x [string trim [libjava_prune_warnings \ + [lindex [local_exec "$gcjh -cni -force -classpath .:$libgcj_jar $file" "" "" 300] 1]]] + if {$x != ""} { + verbose "local_exec failed: $x" 2 fail "$file header generation" return 0 } - foreach file [split $class_out] { - set x [string trim [libjava_prune_warnings \ - [lindex [local_exec "$gcjh $file" "" "" 300] 1]]] - if {$x != ""} { - verbose "local_exec failed: $x" 2 - fail "$file header generation" - return 0 - } - } - pass "$file header generation" return 1 } @@ -67,18 +63,18 @@ proc gcj_jvmti_test_one {file} { return 1 } - if {! [bytecompile_file $file [pwd]]} { - fail "bytecompile $file" - # FIXME - should use `untested' on all remaining tests. - # But that is hard. - return 0 - } - pass "bytecompile $file" +# if {! [bytecompile_file $file [pwd]]} { +# fail "bytecompile $file" +# # FIXME - should use `untested' on all remaining tests. +# # But that is hard. +# return 0 +# } +# pass "bytecompile $file" - if {! [gcj_jvmti_build_headers $file]} { - # FIXME - return 0 - } +# if {! [gcj_jvmti_build_headers $file]} { +# # FIXME +# return 0 +# } set cfile [file join [file dirname $file] nat$main.cc] if {! [gcj_jvmti_compile_cxx_to_o $cfile]} { @@ -109,7 +105,7 @@ proc gcj_jvmti_run {} { # For now we only test JVMTI on native builds. if {$build_triplet == $host_triplet} { - catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.java] } srcfiles + catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.jar] } srcfiles foreach x $srcfiles { gcj_jvmti_test_one $x diff --git a/libjava/testsuite/libjava.lang/ArrayStore.jar b/libjava/testsuite/libjava.lang/ArrayStore.jar new file mode 100644 index 0000000000000000000000000000000000000000..7c10d12128e066d99c9dc9e24bc2c59686738113 GIT binary patch literal 1041 zcwP(eW@h1H0D;1CB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWve zlMb3pWMW|GVqstq0E#*m6(v>%m*f|v>LuqS78jQW-}Vy@6p3YD<|FBTN;c5Zp;a?? zrN}{U4yL9_1%@jXAE~BswWn>Eo7tv0QU8;qe3bG<{tq|b8?L(?rXBFh;CV^>wYciH zwRQjgePceLa;?OKQ=)rczWj3L^V6+N8ox3BKH>K)$9(pkQ!*#+IxI*%S2#BzZo$p2 zJnoFs_vV>g=m`^6+`{25v zm2%Oth^wn(WYw%Lsw%ws%n|D3lHtn#tK`c(R|`9ylzT@^zf4{guJUW}$>;14{#(*^AwwmSUT z7SeOaKc+E~`>!hl>qP6;8=8+_Rr&nx+a`3&esS_+?p=>nWAqa@v{-MvklL4Z><4SR z*Nu+sxt%3F#|ocb4%#w*Lz2YX7fzFOT`d2oq;G5yofo?7bBD&S9wUj=MYEZupXr|4 zKG8vbF}tL#%TBim&!qMp)3}$+BdK@SUCC+hrl@wY!dVrw4Bv`Owq9to>{6+3PnW)< zt6Ige|1XVVPrvHVd>^!YM&;*++H%tjuUp0+x-2v=w!!0LuHVH^bH1zX`N16E&B(;X xfIAnV0;D{Jstr9?A%Hpq_B@6#0ej9tfK~>~d=%i#$_A2S2Ey$?+Jza!0|2>5hCBcO literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/ArrayStore2.jar b/libjava/testsuite/libjava.lang/ArrayStore2.jar new file mode 100644 index 0000000000000000000000000000000000000000..833a2326489c882bc92200bbe89d0707754a6a7f GIT binary patch literal 899 zcwP(eW@h1H0D*#XB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSCh z4c`SBnHU%nnHd-afufE@MTwQcCHY0EMtaFPiN(daK_~Mr2Z-3}PnNx&duKwUB5TwF zm6rlh%UlJ7Ryl;MVwx1Vv}@{QJ68A3SWCXF{T;mArw&bB@qqb<#*s?D1u9pj-7ly; zzwqsXH#0w>iI> z*(DDZ!vVBhD98oLH?ncv`j0pALs$M=hiyZruQ(tY~a`aW| z)TNB3?D>!0vEe3O0R#;>B+&6V!-6_`8yHF;)c(9bTst)|B?Gx9<9#+Q}%EKP*3 zg}QYcJ~^2`S?P17nc+k(#HGOTR>Z2FGA44mwozCxyZ`yxZJhbu11%6Z$TYS{4}Qm8$);HF={ zP*yVmu;})2tjd;(gVfCFMIFMhK-SHBCsoD_4^CbdL$&p}^BG3w4Y{*xm|h zMLdj{r~K7#a)_VKnxtNi#hM?(>%}=29m`%dAxKtJO}DSK?dr{=e+xytT=O4stt*UC zO{`CMofNU7Pnsuf!j{7-q6__lR+l|bIOy&@^*W^~q7=&6hu|F)3eYB4FU zD76*lwi7q55Awt>SNlADi())c?6-n8n-g&$o-@y7dR)cU^vR=W6gsa;a$(x}q~mWSDP zzI}hA(sN_fU!ItH{@BGktg`cBi_ZtFe3=(puCHQjA^9%7!r=18na0Jx)KqgEZObJ6 zH*_%n3T8UpQZ-}ymlxsz-i%CK47k%JDnLr5sM^reDFUc7U{AFO6R@X61ZZVIOPK-Q RtZX0&W+2=Gq^B`~cmS9XA9DZz literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Array_2.jar b/libjava/testsuite/libjava.lang/Array_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..8713ba7fcde228f9513b41661a8ca85626e30ccc GIT binary patch literal 721 zcwP(eW@h1H0D+uxB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw* zKV;j&85tPf05LC6)Ul{2u`=FBFF7Z%xHvb^+nXs+PKO1%zO+j3 z_^8?(wVGdIi{B3go)sH>QWA|KY|RC(cfRj<(PuqxfzbTjjLs{~-mGo=_V@(vv9-S( zj;kf|w%_IP(s+I2*WtDHvyUAz-`Fd=ic5G=N$dl_=DEWU6-Mtkb{ecrt`IGH0f;rY@PF<{w{?{Up8aC!4KW zxcbb+9<3(IbFC^5|1y@`!hiCM(u%;>Y@beFGUE+M>CU}zjh)NuJ?qiSKefx2ZZr1H zT&M8qieJ5>KqQl4=0lm(Ror6k_XE5cnYb8mCj?Z0lq^uSp(hLkP-noNOb{kuk9-7Z XWk5>`0p6@^APHt5+ybQ8nLs=M=xN*2 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Array_3.jar b/libjava/testsuite/libjava.lang/Array_3.jar new file mode 100644 index 0000000000000000000000000000000000000000..c907e6529754861d1a49214d3ecf28dbff1b43f5 GIT binary patch literal 974 zcwP(eW@h1H0D-)6B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSB! zgPo5;m>3v-GBYsn0!1B*iV`d1jrEdq5{rvl1HJvP1c?08)4gmo?RbyEc}Ir{=MP7+l<8P-y;#(OfTu^7w%D{dRbNikO*z9%!|eBMk;e}zdKb58Hp zQ+RnYmGS4c&3SH$3%#6Gm6*0}o|bz~blc`-yHip=t945EDF>`qPd}XZm}PUDx47+2 zGhvx~EXRzw9x;j5`P?(piGI+uugq)Ti=ET6PD&f6F0+%~@Z_z>%&Zoh+PXI`FGKRfDY?WKKO zb4#W_sGoZ0Bcp}3jp`0A`&qZzcOB=AwQz4*z;bo}Mx(8&9gX?_b&mv}NPhkQY37rS z`;GKN{bWV=3+$e*wRS~(|4&oLjfP@U%b(e-`f*+U)e$zsnJ?B&nW)Bh!QpF6edZ%> zCGDbRrQ%oZFYJ)YzvuqiU$eO3oAH6Z;006coVo*Ub)~vpS9G3}d#`rMei^qC`J2gi zjjB5~9?$!tc(zo?c*fINhl6j#lz-rR-)#Ni_g^2m3oTqG!80GM-5z}R;Je*7%FQRr zy{p>k?Z_|l+wg$l3BxYMI|n$7V~&cfGdwNvPPw_#ExbUOEzj_^$h?GEGv6OL7;B@x z+TmLCrm_tOyrz9%JpH4i{YOiv$j6SUu^;0F|JE}Gcr!9_G2qSxr~oNXplUs!Xn~Hu_8;z&>HF`pO%*cAPb+(N_RQ(;ufO-tXE2*6{xDhKbMDzqaXDQdjD6;0 ztl#PrZ5%ywd9U!^Ok|$R zO;XLjx-CPKxgb9XRkw>Id`CQi+|9HhJC>gaV?#y$SoTB#=_C)h2mzr13 zUbXTS-@(TM@0xTQ+scgGX)R_rJW_WOJ@+M#!cn>G%)1A1hA3KCcyBXTHxNuD&n#*Khqj zvFhd)tJ@@QatbN=gdG%7Dv6qMq$9EU-dD5KZ-%|@UmCn-95oL5BJsJxRcOwnSNR)S z$|H_duX(`y=tl>Oonq_xh~=E@N8TQ8wnxiZ2|aVB0(l#tIm-n-XVpP+mN+nHDLg%M z?f}~o8%fC&=W}q-PKg8@GB&dXOVpK_ z!wc#%1B+Hgr}=3qGxrz!B^4I#St#dWDb38R%xo;M*{Fd*nb~?mO40)cpaU40xEOGk z$*2ISghthdUPdE;Is^6+8({+Wau@+x8Q`Tdx+e6p4*}d5(Mm!L`_NJ+0^DbYr&V-K o=m`S>X0pJO3A!fqSVaIqR(Ko-c(bxGfEBPabO7Bxi50{H0JG9!Jpcdz literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/CompareNaN.jar b/libjava/testsuite/libjava.lang/CompareNaN.jar new file mode 100644 index 0000000000000000000000000000000000000000..c6b8db44d2f3d5474693808e021ef08433bd0055 GIT binary patch literal 687 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 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/FileHandleGcTest.jar b/libjava/testsuite/libjava.lang/FileHandleGcTest.jar new file mode 100644 index 0000000000000000000000000000000000000000..b3fc4bd3ce78a90fdaf3893dbed161b21b37e03b GIT binary patch literal 757 zcwP(eW@h1H00G$wB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvC zPajrhGBPj-GchoT0Y%+1b5cDL^HOqB-IGIrCh8^UBo-IvPVo0TUz-P zxH`m|=hw>n&&5nsf;*HCPRQgqIs4&;)5mkSzb@Q#hx2^$hI8+#YeYEW{dks0o(kOl zLDn_zm*ZXj)c?nm6;22I$=x|+u|WoF@;g4?8$6!N&oA%eu|4m^X4!h)_=$G!)tM)C zpDYM_n~|^}Tz;36k%*T0|Cu^PQ-UIbw{M85vv^l{bm_VM|DQQ5-RNG&`zr8jNo5r8 ztW#Tr`9A(-J!2_yW09#~r<9MY1CQpcl1tYX2lR@3-Mivyn#X>H&B_K+!3>0ZfwU46hz9^X Cwel?h literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Final.jar b/libjava/testsuite/libjava.lang/Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..5c64878e3d985307fca60e2edf782118d3111e26 GIT binary patch literal 766 zcwP(eW@h1H00ET>B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWxY z(}F!a7#SGCm>3wifue4id5JlC$vKI|#kql}{SG;Z*dAWJB`i>&Cc9R3Mc^Z;$89gV zR&ctBujBGb+45E(qqlBic5KF@L;N2W_bl&_61F;d=Ize!^NOFHJO2E(bwh2Aga^lx z{?G?iY(Y$u&EL(9{&?rXuA*CeCaw)oC|3%}(0EcRfwS~UNW`N~UEjg8u#OkEd$HpwmFoyw;@#=arn`rbuvlGc*7*xk2p zt3f*}^Jk`3!MkQ+8&wiYl20uDnp8QZm|2_YbbV)FR^*yb&z{R(E&nAeTbZkVVd3S% z-Lal=s~0Yg^Ojp(;d3qFO|_x?{HE*9e^ez4*WKa$r~6UF=JM_JC+rLpq`#kG5HT=h ztB#0rZsOMH_;rr^n0#WqU9wSp)xkHy-a8*NlH0-M*kY^Wz~Q!$P$OQ!^B+_>Yj z;QIo*1`$C`T@Oc(75pa@y;Gjtm>8-2W6d{3m$g^;U$}?L&JGbwuz&OJ%{j~BXBGec z{QW8IAgIdA%(C{)uWeSkSssGN^xkOSF3Me>DSJi#$xNk`GMV#%^EsQ_Dt$cO{^VVm zEMVDaV$^bR)#H=v6IbgsEAM{i<(GN0&wYl`zR=$#rlJ;cn^WXoOB|fh7U=dZKAD&4 z@d;tKbBiCGSYMHKJ#hM&^eJb%`aFFyH3W|RHt?J1E6L&Wm^0Di=kHIy)(I?32sv~7 zYjH)}bE&jpGDVqFPS0`b1yxlP; zyT8l<-i%CK47d{_DnLq>sM^pICIYB4U{9t96R;;f1ZZVIONs&BtZX0&W+2=Gq}!Q5 FJOG@7B^m$# literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Float_2.jar b/libjava/testsuite/libjava.lang/Float_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..e3ee413359342e0dba949a79a9efac25a91e2f54 GIT binary patch literal 1422 zcwP(eW@h1H00GSkB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwi zAN3POSQr@GfG*$#in`_GCziw;=_ThR78jR>dFM!nirBvQ73%MuEn=P-Ge>P%>lMx1 zOBUzaZ-{)Kye0Fp|Ez1i(iz5OY8P8Js!OQrKE2$eAf%+^p`fzFW6g?|BW(&xg*?_C z;c9GYInt!s?e!)=oZ}!{@$rx8_s%HXe0Q|Y_H$HlYfEuXSo8l^DFW+ zT3-k9zmnLduW{O|f8CR3)#sLqU-4;N_-@)PbBP;;Y?c!*Zk-cmaYn&)S5S+raayRp zgxu%Fa=bjgkE8r-cTe$M{j=LEDqK=ZXep1pipkH7yhf?1qPoX77#rEfO`fguWb2)p zJ=#x?@@=WOpfh7;&DW_-v%V&)M|nn{eJ&ZbZIbEY=QgQg8u6i<3i-MwXNAQtBnul) zSa@q+5?kIjzuax*57zW4TJdW_ww3CICPv>$wFfLDSfl zy1WQ}bIajDG|PIHc{|#-T~M3v+4Yq_teV|jn$+{|?-u3l z7u~X5q;ofxv21Afd#q?x)_$=|MOI0(#lZE2>8+)#w{Dnsd}RCfNV(*Z@SDR{bCab@ zqH-TGynC!rcTn+<*MHMGXOa3uhW`lyt~?vXjzkJ@Uh`{r;_)SDTWYBf>jn8$79wdpb%hUU=RX|x*J+rS{fJ|7{(hILc%3?LbNwipuq9}k8}0cK2?3Y zDl`18;@v8t#nTVOEn#u)kW1P+dCiX957#-$uWo8-vU8Bvnzi+i()q(PXCAJv`)vRD z-^WjE4(^Ul4GZSJnCi8(Cg9roQ@dIO6t5Y->j}EQVfWI_W&R~LPERgu@qOPRpd%99 za$#e!ZV1c53=UrE!Y*O8qG>r%0XoI75wRwN`Q?uNlwvvoE!#ZBR;_ zIbn{{)eT)dj=R3j|Mf;MbVi!rF{$6*TV89v(OaJ=E6q~G+4;XnGTQ#~ch0QKl6+Q+ z(tc@o{J-~R-u+ISANn8s8;s**?+b-X_8l?YW8L)U0O#T#eLeD=Txknxy|eE~J(yAJ z`X%Ye?0OfSiFL=4lzz9&iO(rAOk7gQQ?a5)AZgC>8M6|F6038Pp9=?gGcs{8;Lawf z04dX;YD3R92%ye@Jrf~Jz@9Y_pp^kBqo8X;PeKSVg%MkV3h-uS1Ie-g;RhhC$_(NG E029M%>;M1& literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/G19990302_02.jar b/libjava/testsuite/libjava.lang/G19990302_02.jar new file mode 100644 index 0000000000000000000000000000000000000000..bc4f2692a444064fe12e2a831fe2a3ada67505e2 GIT binary patch literal 778 zcwP(eW@h1H00Er}B{K#jzzM{@t|5-Po_=on0Vv9L=;kKsfY?ARf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwh zU1uJ*F)}bDFflL)0Y%*nEiEk#j17$94UF`Xa}tY-a|2HLF*yp<>KbtONpq}wux^J- zf`wpDr{OEssVO~jHZvHlm+=}qw;enoUU{rpP3;$B-IR?|CK*ohtK!1)rNY zVfpFB9FFD!jfV`v#Psa5EkobM-?(a}-j&QfU2*14z3)%g91wpOoB28D=!^Z9d)Z|l zcdVT8|) z1yA7V?4PD}I!~sl{nM)tFH7S5;(Nl_rDL0S;L_+Wqs1~et6HxqIs}PK&70_W+@ME3 zYck6c7stxu9+7RA(|e8z>Cd>u_clUkIfwnh9g`{=H=OaFVja8FWM{-r$qjy&9A?aM zd9hBxO?lFVj)loHwW3X~9pTt`eb>C}`xyhg8JV~ka3>yAfRvO_wV@{_1W;$dp0p4q cU{5dz(8_=<`2={gvVmlofp8~~wq^qH09?oUNdN!< literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/G19990303_01.jar b/libjava/testsuite/libjava.lang/G19990303_01.jar new file mode 100644 index 0000000000000000000000000000000000000000..b3e194103163cfb3ea948182d702dde3fffe3ef5 GIT binary patch literal 762 zcwP(eW@h1H00G?!B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWxe z>*}J)7#SE$nHU&^fTHe(mX?+V#s^dmp8t?_P)Yxwy2c8Q zjFv-P33nt)oBLUs)%1K0a%whCb1?kX9rM^pSokmFKaIz8n*xP)?Rb9X%-r|$&Rzfh zTb)7FT1bZH)XFHm>D)`5Uani5^%pZfFFX3c@&fN&tCWJYO{Hwt zCsv-XEjYCL058Auf>qLgYHs9y_&4?1i-N3|S-TDjoW2wGzrb|$dg--Z+w>Cavd;ZD z(5-Mt$mz1XKXZ4vsLKY2$7dCncJ@u&HFN)xY_Zs9QQMW2j~xh+pSD3Mai*ftV()`m z*CdwAyYVXEKt@`aog`-6^B=U%B9cmDfFKZ=vsCBUdo3gzEev|9T*xlD(xPu?<)G% zuBurINu)@Khrg?A6h?Ie3pvr%^fUDZ_MHG5SD5wbzZhrJaLtw)U+0PO_mAH z9Im%gZ)`JOUe6HV&B(;XfIG3E0;HsastrByAb>gp_N0U`0eb>LfK~=<$tA#>l?^1z N41_y@v^Eon2LKys^?m>V literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/G19990303_02.jar b/libjava/testsuite/libjava.lang/G19990303_02.jar new file mode 100644 index 0000000000000000000000000000000000000000..e5ef15c3c3346fd94be42f20d3bb0f2a788ad58c GIT binary patch literal 799 zcwP(eW@h1H00I39B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSBy zt*>)uGcqvbGBGd+0Y%*nEiEk#j17$A4UF`Xa}tY-O9OqqnF2*@&(EB5ahZKK`D<&dk*TSfm8wPS{x?62GsW7WO2^`*OO`I!|9?mfEq`Q7g4b57Uh zzdx_fVAPTQ!9aq2W{utab4!b-zg)vMHF3?s{EAg4&sM!!a!bIp{b2NzWhL7rryTiZ z*}N+|meXG32M^D|(*hQgmT8nmg(lAbm=zr0-R(VDan1^v+S5~Iqi20R^lK;oVu{NF zKT^ZqZIiudWYDJ|87cdTw|3IfsaC4XoNEq7v&v33xuluDeY#Oyi{aYDuEaH(@S*>b-opPUfHRff21$>b6(`V&b_y1?I>H4 z`YPh5(i0OG$wl{n{ogF{Cv|o5^&|UArknoz%s*)z!!$?hhH9IZjFTd!yUqruO=&lq zx8OU+1QFN#{U;tAHt2E8p3V}}xo7#0hKUc3C_4#;*1Eb_-s@Qr9;v!oMgPw9%Br31 z7ms(h+}-1|)7?qVMez8m18Qz;Pkck?zO!S|JU1~_M%hE5!KC({Sg7Q+Uz3m9F$8!s zGI25BPEn`;DSe@8Lr-A{pw56jy&+7%o{A8ll>u9t3h-uS1IaQ2;Z7hOzy#s}0O7R+ A`2YX_ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/G19990304_01.jar b/libjava/testsuite/libjava.lang/G19990304_01.jar new file mode 100644 index 0000000000000000000000000000000000000000..1cf234a851e2073031092eda49a4e4973afbc86f GIT binary patch literal 764 zcwP(eW@h1H00DyvB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSB+ z)_MLFj0_A;ObiS{Kv8!?OG`@wV*`_T14F&!oW$bd+yGzyLkO%ro-U*>wLK<%M6Vq)nk`~z?kWZbXD|K{3`^>p>&EM~x+kgIg zIfLt(l@iGYeO*g~R&I#Bu~Snd^oOLA@8@%8w)^a!XusC9@@{HCS*z|HTef($>XQ%d zm*?%|lW$^U3XoW)b?BM8?doIJ;%RG-awg3@l-7~DPJ4ez=yv5dZkE+6lZrgjFK{Te zbaZ_vc)jp-(dh#wX&(1pPMrOsA;{vVu~c#9jM-t4&OJTb&gPkiUNLNM>9RQdg=0ly zrH;Xh+@DvJre8dxFHsy6iGg8=Fb*b@`N1nfx!0a_WbC71wjRyL3< NGZ5|s(z;9_9svJ<@00&ESaF#vkVnyL;Dc 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 RWdq4F1K~~}{fZgH0{|hj*VzC7 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Invoke_1.jar b/libjava/testsuite/libjava.lang/Invoke_1.jar new file mode 100644 index 0000000000000000000000000000000000000000..6d43ecbba2b54bf738811c5508d871dc95289644 GIT binary patch literal 785 zcwP(eW@h1H0D*uCB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWv} zqr>y3GBPk!FflOj0YyFY%JQ>Q;|=waa}tY-a|2I%9d;10y&Qh2Uv>KzH61NI z+N;6g*xIERGi3{3>Ma#zL(#uV+g~{yZIyrE-dXPSn%lVG`Li>&&(G}r{O{v0wgm2N zjV#TT0x_%mR^&^17(TiEZfo?%I}1WBv$nVzC!NSS?ciq3<5~T7isIJQdM&Lgn`AOm zB-&&oI}WeAFYvJQ_6L^cizT+}-*xM-8Kfk9n4a_Yo0gEByBzDJkk}#(%a0pFralf} z3)JOmeI4%GW1zy6y09gXIkjzK{V9uM27c3~OMPMz+B{c2P4M8_Rr|_!sV>@;^5EO7 z%lSLK-u_sp5_Z$>e}7tI;-027vAf+l) oZRqI=0n{0=r!s^I*wYRIv@)QlqyTSLHjoT65N-w1ZcHE^0NWG-Jpcdz literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Invoke_2.jar b/libjava/testsuite/libjava.lang/Invoke_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..ac8882cabf9848e6c52443c50c29d4609bdacd57 GIT binary patch literal 879 zcwP(eW@h1H0D+(iB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSC; zUkNupGcqv5Gcz#o0YyFY%JQ>Q*05A&dn)K zOHZ%+`|qFdfn=G26bX~t?^)+R`N-$qchI7^%I|3LpUbBbKl^M`Vk`4Iou=_-_daP^ zgB0J@2PaeuZ&})>bBx8pq^)z->(k|h%QX-4`(2*QV#CSQwkPv;*kTUmV42C+gRa=m zci*IJ&@1W0ZkVclbow>ra?PJH{Lk4p{)i%xYo%(TI zQKjA2b&q$Xq@7*7C92fGM!2F+{K}MN!fLYHyPwo*PH=ZTx|-?nj-v~%H(TVK+`jJB z_aFNMZ-uSW5Z3da>~=of#Omn_pUqCy6Z5=NByawCrut<)XTXIxk2zdUl5H1k7p0xh zi%)pO?j`@6ea7x1m#%ope;4}|@&53uLuqS78mCRozA=LAYv=L{Nv(fd6$>j#4ZSU zWwV0&_JX{w2?ClSUM(#VzH<~yt+y#3Z!A0Czv0y`ogmI7bqw`~`5DURI5}U9JTrG^ zfAO<>#`bl!*32JRW?OObT+>!$(@&N>=Hxyxv2K3-lYLJL@7G_xEADtKpi1mm;I+8{aM(2v6*- z)DcKAQfl+k=5O!ZKfA5)+PR>Ei)B%O9yj)dzWNh%;+XRq z!znBO?c`ALcg=TCsrKxj5VPLu?7S}iNy}dQKk~i$V%MwVyRRH|Y56nN)THFf|30Pu zvTv83OrEu~_xMhc=948A1s6Ok9fBg>rc7ab zq|qkht-%uNB?=0+ymxNyU`qSHblpYY%CqY?oPKI3rhiG7Yo$`Nknf!%Yd;Hl=D2Q} zegELSxsS?L+Z~&0`0i~+^zj0YKxztZ*nhJ?GDjRre_xNvD=Ah6gL-fefZB1;LXUy#eh3~q5`DUimDAgy&`}*1NPL5 eFadj-M1WQX%oG~n&B_LnV+O+QKzbe%hz9_8b~Zi$ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/LargeFile.jar b/libjava/testsuite/libjava.lang/LargeFile.jar new file mode 100644 index 0000000000000000000000000000000000000000..245fa484f8a772ad8027ebcbdc9a05e0bd08fb2f GIT binary patch literal 1081 zcwP(eW@h1H0D;&FB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2gDIA z<;J_27#Q4H7#R40qCSa5>8Wm+IjMTdIf=!^xk1svL4hLwwsE=pxx2E6>OWQGZc#DX z-BIbv>uP8?bynsx4r^Pk=LQ8F)i0OcoBeWa{DsZ74wH?)-phY!ZnC!agH!MGGjFzj z+g0=WcJ|u%`hEWy1l+uwn46W?iGBMyY1&hvSrT*FUrC!z3H|yvAnE;t<-Tmcr!32U zX5zf~{Qk2Swj`wN=y9_Uxsi~b(VcA-umAL0MWXlJ(?wh-SI#fg+BSy(UO03zwVoIksd{t ziBFr-y25@XnYu?Dw7r-cZIvyO8TMUr*Q?57UusUOG{u}fDRG?nN+ke)Yab2ZYaf%=nkiJ}JLj?Y!oUqcVFBYFxCc&|@%PA)T(O%v9>=DALX1 zKCNe~o}uLF4$q1x^T)e%ShXXTsy}V@ybvMqW!lDN39%L`rzc)zt%x}DYi5(LN~Y@1 zjbSF;VZGvqKE@o}_VmOD9r4=9ligNM*e2HMRL%+wX%Dst)(aPX_d|165aaaiUH44Q*X=g^ z!0Rmkyt!HQN7FeM)`JU*L+6Ozu{~O$6>#*(lC#;${}KUmCyJ_%tppaGNRNH1kXOlKsnN({F6Nwe7cffHxx(7X$9>h6<1}AF4L= m?1upA4A?Ux!UXJD3;|jhFfv?#H!B-RiWvyE0qI<35Dx(7NR^EM literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/MathBuiltin.jar b/libjava/testsuite/libjava.lang/MathBuiltin.jar new file mode 100644 index 0000000000000000000000000000000000000000..4cefc678b1239441d3a7a7d8640dbda20cfe0aba GIT binary patch literal 996 zcwP(eW@h1H0D*)GB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwm zfA*h}m>3x5vobIUf=o{=$#5#o%qhvt(@V}tEH2KyoEt0@D8l~Xe^`moVt(aWn&v)3~3X7m2J?EIB4TFb<18|*?ZTZXI6vYsycZ};;z`S13= ziLLwp^C$NKAwQ=Vh6WW0Kjq7#{LYr&5vbyIIluON*s`>p=`$Cf+8O(m_sdh+>mSW| zShMa3}I8N;w@l5Kx{n zFC;;rX+r4NSv_v7ZR@3ck3V&bQ7F6mLHDKyM^B;hiC&$#XPwfU3L9tdaNUw+ZJOu9 zp)!-rs@b2@=hUrzdmdP+8tAtF3i!N-t^5*`anO}L#_OK5q@~7g*V}oH8siErR>a$n52sioLhfWVeB#3sMQaMy6hE=Z5I(FPw>ofZH(!3p zm;G8}K0doSO7aPAHNm-^-0Qk|Rp&3M0j&il96wnV^pYvJ43 zPR%auTT5J)CN476-Mj7*$3-Bu@RCGeRiu?kXPniGxKlZgw`B>ZOum))euar=Ns#yZ zRV7_7woJPhywbD8&D(eCIpMiiFa6d!D>V1IeG}`|brWN++*ZB%?4;i7x6D`bCdXdY zEB9UMx=1?eSHRM0m(NkZJeD4pI3Olh{vtd|t32NQ)(ySjHwABsL{15wQm=`8QgP~I z&tuEu+?Cb-&-R^R&XX^aDU_MMyMDUG-v1_?ds|eOd~6d7IHq~;(%tD--XC1OKfs%j ziHiYuzCZ;?xdc@kdOkq_bq4IY24MpBynq0$3|MkTfHx}}NRk-{cK~TIW)Kemqlk8^ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Matrix4f.jar b/libjava/testsuite/libjava.lang/Matrix4f.jar new file mode 100644 index 0000000000000000000000000000000000000000..eaa7241e7799fc2b5570629226c38bd0eb197a82 GIT binary patch literal 1511 zcwP(eW@h1H0D+_mB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWv& z9{atsSr{0aIT#rDK&B^_6lGSJr0FH+Bo-HMopRe>CRFD5{=@gm&uwC!()UeGG)jC~ zY?}Cz>8w?a>$b*s+{~BND{R-4o=nNz7R!7jQ|(kgYtHmPT@&@}veEo$KlNt5 zp9CTn)g)xz(z?kNvi#8%nbl9$+%`6OzJ%$2*3Ct(F2()RXD+-m>&(yVOIMig-t*wv zvUyq;UmT2++c1Bb=a&B9{>E25vaS4Unbt2*WnyJ#DcK`(Fgt@^@uNt?p<6<{Y8M!r z*;eRXjyY=?`8LGbU2Lw`+JNXSYm3x+4s$)4nzi<6=TrBKogo}s?k>yy#j(WkH=l07 zs*r^fg?Fl_EqfaN%;@doz^FuR{mt$VQr{$%ha_x&-N*f=Fn0Zcxa(iJ-yB|NP@*?S zh(qB-o`b@ZUB*m_*Y_$46yBZ96nK5EctEVVib9OJjzIC<6%Kn}b1@ZOj}^HPQ|`Io zV5u-u@4DGS8AW$P8)es3M=y|cWSUm2RaUn%W{ddoHA?gA6bz?6P0sR4ng8?TVeM$X z##=LI-0BOF*vxfg#@>+Zhh-;ICf$sET&%Zgc6$0nSFMog;>+KzIV^lkE`F6tf5+b| z=iKXg=T12=F<4^ul?}@U{TI($HIK_bdET{ZsqZ15w;a6e=0Dr!?!(N@SFGMlk$QGo zbE;qbt33bj6}zrqt_}KY!W5g+^*eKenUwp&H-Gzl_xuvbjZgZZ$Y&<^i_`PJ@|M3$ zsY$|j`#=1eX1(cYU+&H`(_a7P)8a2^VtXMVZEcM;!<6oQS3>scfv2;Z)}i%DdfK5 zeNQ)ky@1U>0{z}dHuyV0*-7lsutS`AQiZAnj+;mLU zS4>%EkxU3*lXH)=ZTk+ZU7XMBd2GL&Vm$rj)tU>|<<0ljgjUVJ_Chym`O$6si z&zui^kC*<*b-LgsFEk}~y=n=IprL@%41u*4>sEZT_PuDmVRr7p34L#Ov}mpl+&Ovm zZ`lssqr3ol## zeoOSC<%wMj!sByHuK91e`L?Z(MeantU5aJ)m2{P)V-1~=dRN|+wcb{maV_qb+z&I? z$ip^`ekz5ILgJh^126p-op45-ZQ4es3pMYbO`NdhU9d!UqOa?$2@)51m?a};-kQ2_ z+iFE`jw|1GvX-vDZ!LUY*0T4cefylrMiC6=l0~dH9&2t2{b_bu{i9^m?xt^@veS~J z<=9GH4A>rv{o*?nuxL@u<^HCHQK~yiJJ0r1&I$I*mNXXs*Rb@w#Q&}%fi|VBnS8t- zH0;a|JZ7B67P0q;#Qx*+H~qGASoZ1T_3yiTx-Z<2$~j)?uh6NHCg41?di&{#wM!&s zN{dbS&l}*)$i&5fJ1L?9q=bp84LxZhfI0*Ago-c$d-6koRt9W|F~FOZ4J6A9ggb$B ICliPV0EE&eTL1t6 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/N19990310_3.jar b/libjava/testsuite/libjava.lang/N19990310_3.jar new file mode 100644 index 0000000000000000000000000000000000000000..a096693aa12dd75a19cac10fc12ea0792c777616 GIT binary patch literal 834 zcwP(eW@h1H0D;U3B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwF z4$+qmFfuS4WMW_t1d93@T3T8f7#kYI8|x+KBo-H!PKx!HaujL1zgdZShpWrQRS&)& zU!<@gu0udSC&)SLB1>|T*)bg>!|a6V50W13e;K>}Hn&gCq1gOii)YPq6yEyCWU zneF+?@^k-w{=UFE;qbBsHwmrhpMKVqX;0sKL+FE`()DX=r>=}X7y4{Pm9D;R)BX(W zZQI=?3??mSxv#!m%~`@B;JCt{mWR%_Cq6A(tQD;uwpB0k(uSONgS;8-=XZ2n-!yl% z)29%HGdh=bSOpzJ5}t%!J$1KNUE0dc@R-*2vusKIBDc@V7#~WWutlns;TY$wi_-<{ zlDrZo8QgMTmMm4+l(A~9)$A_GzqV%u)c)Du$iMw{Rt~FyJI7T1va@eLmsFkSQEX)W z`ms<{_hrN}uK3AUbG(+jbx1FLGF!@Dqbyh8MU3jYl}AdQcFkX0&ZuR)Hknz{=|HhO zKWFl>+f$f!uiNqV+R{HctGBttnN&M>8uIT;Ug7?@WB19;54N+cKl1v)En6mgiv*$b z|L&ztI4A9ROU_9wF3t@&=y%9Lpf-BJ(xpzUTwb9`Ul`>dABT$AkiX^=8O_F?yj2F0+I-y|Qk z9~8YV(7Z~Sai-#BA-nwZdl=`>+ttjuTNrtx`vTwNT3$S-O23#Y z>ZhenoT_roV@>Uu1z($PmYnE!d2;_p@zlE=ZN3w;+-GaFF7Z%xHvZ;)|<&u#CG%Q-RtspWoD;Ee%YqB zWRh*iMehLqPPSzNVq0%1D8I|QA@#-l7wg`yG5oB8e;evTO13j`&uRQ^`h8CIv$~pn z`I z^}MgIQYCYO`NEyg_#-NgDm(pZdA=>UJE74rOU`Ygo7+((=Pb9`eX1#vS5_}DQPN#z z>g~m%?Q+c`p<~;glRM6TcU^G*$L6VL8QMxGXtB62>e%NSwp7P`-bDWVJqn*Z7!4R*;xl$MiUu9uvXSX>+%;Oos4C}Nv$H#hLIn{hzbG-KUKWsaBB zxL7<-2rRnVv-i!(A8N}k-ufE;i!nD!l6C8Q_tfv5ieJQ@-z&HHKCk-y_w&Ei8)|cI zU63fctLdNr=*hvhg8_1_mp4eZ7u|T{rfhdYV$HM(O4dmi{w_G5AftZ$PAlJX24OMh zmC7pivwM{1#kB;U@tpLrTFc~5*@a~We61-feumEt{Tw%q%hHDD*RRVpcI5{*#5u^Z zN{hDr@+!BRI8);DQ#K!SA5#5xH4US-JX&g zn9_A~uHttu&aH}D#8mD&-qc@u`-0e-)NA=?e>|Okt)*G%+O%8Dm$F1w$F00t;k@%> z&mZ@klp d0egHRKq~`!>;`zVvVmlnfp9C3zQqXQ0RW}|&_e(K literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR12350.jar b/libjava/testsuite/libjava.lang/PR12350.jar new file mode 100644 index 0000000000000000000000000000000000000000..8d655c2b1c08343c4d65a621d027d8aba98734fc GIT binary patch literal 1061 zcwP(eW@h1H0D+ncB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWxD zJ99HuGchm(u`n?30!0IY42_IU4fK+85{rv-gR_G#JBZkNb7wj?1ZgblU~}=&++xEb zf0TVn_*Mnw9-a@Hx#Ap`)pmG>+Wm0%6zBOn`<5oSrZO?QbM&*BviZcqkVqCRviDdA|@^13!^f1}7xOw676S3YO z9^GMm+m>D>dR_e{XY;~fXX7Z2`I~e0g=s$Dd1J~Z9^K9R=5;Y7N$nC)I=dDcqdsRqHNBh zcfTGkS-0M*>Gi$F%-6!kRSyq{W4u=Kgf}YzfmrH+P_UQU% zQJY;QVqZ6OB_1*DQ8;+vm8GQ6JmEt&%hV)3-tCEzo2;rLIji@sPi#@l;>q(;ICf9n zQ@!qHa>{1&6>T48tax^IkzS**)Vv3pKb=1;o)o#@ojPaP;dAR+U-f#of0WtGb!mEe z(VMD0YaX&L$)3X{sS~EYVa^q+g|?3#q*<OzfN+Pg8j%Z)QIAX!F{3=hvb( zRh`N1KaO`r7Oj_YzI*oNkG>`y=ltY{`?gxGS`mbE5wKeULyW=EWl_|F5XRiF0ssEZy(#~JlF8g-&-GnD=6B;W%;TZ_pFW@M^%+}o#5Q%c6?QYh2v|BXG zS=UzOMh>-$p1EB?&!SIdI=zz*@MdJa zNvW9cs$gNl=$Lp}Wiv z;xcvYE-Pa*Td+h~nK`_mE;F!bRdkx4mNK)y!-RzsI~UHB^RSd=W>#i47T9dmz@W@* zJs~CO0Rx%?3Jvc(M|OZS4hN*u$^lb<`SBJqGBEHnF);7~MFWBijZ6&9AkN60u-lKx zQKaqv;oOu+)}58id(;&=S(0)BxII^N2pO7$ardO0+>|}-=#hKu8#iBL66TgWu>B+J zmCYVaQnP=iKb!OOx&8gy$6rf02<~Q*Yg!R6;>~{4nNeQx(&fCZO$%q2wmYX2IAX5Pk9r#JIAb@}EP zu9E(K>OrQ^&0Fz7sngppZD=ct4l6A$D)lP6pPS0=$H4zbz~}y9b+%*K9sZeNNnhXZ zb*O#Bo7i~$z>`a=(rziYqEdzRv(>zmb*}9>-p^s5tT|t+cf!8!0b2HTKWgSzs{C~R z@S35SPqED+d)7svZR&<)`+#x7$i&5fJNu#nq|A(}4Lv&}fI0*A%#APsdzM9jRt9(m zM%RR%n-D;r5uUfuHKFGK1X#cb&kyLD&{Hh}C^Dg?;Q((|Hjo4x5C#La>}3Y=0P?ko A1^@s6 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR12656.jar b/libjava/testsuite/libjava.lang/PR12656.jar new file mode 100644 index 0000000000000000000000000000000000000000..c54e92d78854878a254efd50216c4c269ea526e4 GIT binary patch literal 928 zcwP(eW@h1H0D-0oB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSC} zP4`0;7#SEA0kIHJG$6>($jsC%J}I#{RWCUwvA8%l;I!9a2NB!t>s3r|-J11FXNO>r zcpFz)aG~;!RZ(k79y_U(Y6O3pU?%uSCst#}2j)K-AN|&dEMzwRe(vF%>T_qVe?P9? zU^a`bh-G*EWxIECO5W8PPG;k3dF5imsV{Kx#_n(GMNCweB(ANh`aK-Mx0U zGrJa;yx1Z&{(1PCr1j@dwR{a~i4~S^d9>7{w1aIMPma(l?-^#>HaZ)~nTiz19FLvW z79e-zWr>RZl)iu8mEC7`)fPy+nELqa`lq`O#!lAGeDXo|8MnDj>-iuyA)Pe`<^}Ud ztO|TBx_av`={c->ZRTgC9lCoa^*uXkcy8_UJv9x;+X2M9i1362rS;eR>vn8xY|d

      3v%fuaFHhDMf#rh3UaiN(dafzjSfjw1h#-F~rc>C?5dr^e=NZ%=8K zJM?1V0(H-m0*jW1sz=`RzOnAY`Bm(_O?3|TT2{NcCRy?ur}N!U-DiB?UOt||WQB|( zTipJue&@CX_i;F{TF(Dv)5_a-i`HHh&YiAUmUpAA`k+AA6*cE4r(SY!CaR>k2qt@k z@kZaN2=o5({>wB?j-;1uXD0;9tqR`RcH8_-o@=h!h87X`PyLaPpWYOm)|0ws!olQ&d6jdm z>(~FiLYHoQnJo6g_0%34yQJu2d|f<+*CoG88l8&SYAaLl#(2r|mdSyia(_&|ZC#evoJ7l14RRZ3{4F6l5-M^i%WyO{e=TX{^e<&*}}u5%kQYAz`uNtR+oNU zmZnCO#x_=Gj*FQyA2?WF-oh;Q_|lQ3oZjY}k{@ymIigKe5SE6kZ*oi_smG&c=^YocP{^2 zGRx4^`8?-})DKaCvjk`K&Z%IzVr()+wyY>5^xBm*(xo3hU7OV4*7nTUaMh$f>DjB+ z?R}caoAE4h`btMm4%eHe9BkjWd+lg4W1GJ2nXmR`CCk@`LQ6O@{-?`qoI7XbGS!kt zQm&HGa~^o!WIdFAi{lte$@IjziE?)?1zm}B(RcppW%KWotBO>V?AwCH+;QTKAH82V z+w@czhaY3YHn)O#TVaZJ(=2F=I1hF!Kto# z55FIG6J|^g;62&P>cVQHZ@gvFqxGAQN$)!@lyt2sJ?D~Fk@39HNn7r{o3U}K?sq)O(C=!+-HCq2Tx$vW96v|f41sQ;t(gysK^8!EV`2`<#XEEtZr&@mp~14OeNqg|hQ6 zI!11;h?2Uk;mLl|dtUl|!|nWrcj6tMEHE*hsCWL|>y6K@_)e2M^?s@4sVAM2&o&<2 zAK=Z%#KnL+zoG)9+>5FWJ^vzrIs^9Hj4%Ov9z}pw29z8d;LXYg5@rU%O+b1bGl&NO D7K){6 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR160.jar b/libjava/testsuite/libjava.lang/PR160.jar new file mode 100644 index 0000000000000000000000000000000000000000..f1fed747e06443d49e33cb12db44a00d191bdf9b GIT binary patch literal 990 zcwP(eW@h1H0D-;=B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSD~ zv-`hiFflM(V`gCB28sp*8JZdBCFdj-7uN>)`U?k&*!IsX^Rk{Aq!AyK@i)nfdui9# z#Q{RAReV=XxMpIwj_p}1k6-#MBh^PiKl$Ct*G0TuB%%6`Ve$S0YwZtiExLc9h2yH{ zy}kMG=2YLSOn-O%{``FmClXy9<(u>O&N{8HF+o!4_OEsGww6?D@7}iYta&Wk$wy|) z+Qu#3eS06j+7^9%t=aUBg9#t>XKs5b#<_gyE1sg0h7|%rhqQhPrbw)qVOD=7FXzLx znt`Qo(GedU~0--SQ6bal^Ax#%~0orE>xEWfh3Av>0|zV2;m(rml9 zS?K*%-_sA)G6?aUYR)QMJIjYf@VIK>{nJO5e%&?IAttnt*Z9eddpSk3*UY~1Zuz;! z-G5pcf>J`2cD~uT+%>-~ah>?@dW&b0O`LaqXKXt-zuJepNmHFq|NrhlhWr%~M||5F zUeBpXk+^nlyTCWGcN#m+8eBQ-Dq7yE?G-#l$GSna&F;D6$yJtbuc^hG9`#_^%Q;8< zuSZiI_gS&S5;Y%!!(OcAXN>YWBXU$A^wAW_)cbD~uY8X?%-U7AUZa7zqhz6d#|ihJ zp+_u&w3KY7bg>6q{+P%U_FYx1U*i40KVIIFnn^WBCWK7+^oh~y<%~I}FI4?y>y|h8 zC;3tR;!9^0*S*c!foq#@`jp$d|DJKjaa;3i*(XmQ?K_jS>49z6e%Fp$i&1V)Ui)|YD$xLEb%Q?R?U9Nb!bL*R*!8U9G z-i%CK47l?JDnQC5sM^r;2?D4yV9zxO6R_t61ZZVI$r%COtZX1*W+2=Iq{Wy)JOG5> Ba2fyr literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR162.jar b/libjava/testsuite/libjava.lang/PR162.jar new file mode 100644 index 0000000000000000000000000000000000000000..69acecc9d184af285234d54b8bd1e2ae546a3fc2 GIT binary patch literal 1818 zcwP(eW@h1H0D%b=N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4u~Tn z8IHaIna;?-zz(E6^^$WEi;G?R&So775NJKGa_or7zi zP`!QX&W6PtZ(UcGyJc(^bJeZgr`)vsMrT^(!YxL{P4+TtIeT4yDk{4eTD@p}A=Gqz z`^m@7O?GU1LaxoJG>!RZA2rkKzRUAbS?Gu6hUL=|Ka;3mPE(2mKB?2(g4t18;eS*U+Oxny4avd=U7 z8JWzc`ua-rUH|_gH}+-H_71f`@fL3RIZBGXJ3cA;rsS{X{(7ZGWmQ%0>r zR$U0Y(PG_Pa`1dqjI4!(q)2^siiUx7r=HC||A^K%2G4Ci+_m-FU%5l1OrkFGvuXMH zSt?9y0?h}0J>y3W5`EkIQ|^|q!pU?fb9yI{? zxAvZU0Q9^)GXn!RP&6RO(98%D2(>}E{+9zp>dswzo4554+wA~0rhN(4t(E~bn!gx@ zC%Y;gnW=irUv~E-z1ZDnrXBhJMEqv}kJ>+m`Y9jpf(JY4Q~d@|2V>vjGsX2^fjKehGH!q@V*!>s!yMOf1GJGa`^bEV#Q z5G>Xaaaj{BH}UR*x)Wz6{Jiw?ww2ckjwzgx8(U^EWw*4}mw!{b{`%CyzUUpw1;2}!IS(DMdbjCc=VRAT50n%C zzW=qj^VYQ`OZq}1vgVn-tL{==J@;^J*`F9jbKWZ-8~Be&@+`Tpn&Xq~v*g%2;kCM< zNwYT`dHhrV!^B2e8?`5g61I41%nX*+c(`(wo%w?8O&Jv`@jGAXy*PRIRtU?Q#`9vY zJd2M^Z{Oeae_Ew#obguUC;N&HnEXqdoWfWc(`eXcHo9a9bOwjE<_5PepA{MGMU=67tGEz9+fxtY2tA3H4JzbgKp$YtRlO3`bI zo=G0pys@7#z?+eYivf3`jS7&8a8zyRg*XDJGhi>$5hh?Ss1cx*0bXpQYeFx~5MUZ3 syl6w$gr40IU?meg^P_7*&msu0iWw!t1bDNufrQzBFc7F=Gb@M(0OyXVu>b%7 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR16867.jar b/libjava/testsuite/libjava.lang/PR16867.jar new file mode 100644 index 0000000000000000000000000000000000000000..a1c46c4e760f2530e30f71b0a359e48f2266359b GIT binary patch literal 714 zcwP(eW@h1H0D;LBN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHR zIu|Sh7#SG;0WmL7G$6>(%)-oEFF7Z%xHvZ;)|<&u#CG%MUGKK7Tb4OL?b{O8F58HN zFG4>iE!m>z;=h{L=+V2jwT}N+RjuH7#r|dSqTN~{*LcqSol$(=_Iq8;zJ1Iq7AMh6I_~ug+WGuG(rM{^6>$TciU~hwBm4>aPjNyl*m4_F|{SH6G(4ME%q~W|s z)3(s6YWOQ*7e+QS{C%-J_CY&bXJ-}Bop ze6zQ-zBVxZ;&icIwY^z-o4wpu7w0zRS(}$mb=KfoGDX>Dj?FEuy;820n|g9mo=a|I zFY0K$_riqJc1|wa-8L&lgDd7AxaW1<{$5-$H;?J0igy`kK1$ z8`PR~l6)2HR-Ou8lkl25z?+eYivf2EKm|zY0aY7%ia-E$2JGnrVFLD8M}Srav@{Ul R&B_LnU literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR18699.jar b/libjava/testsuite/libjava.lang/PR18699.jar new file mode 100644 index 0000000000000000000000000000000000000000..c16dc755b1a3c0e4fd92022854965dbd012d4cc3 GIT binary patch literal 1127 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 bJ(dwbkP$7;1H4(;KoTrK_!3CFGl6&jTvhh^ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR20056.jar b/libjava/testsuite/libjava.lang/PR20056.jar new file mode 100644 index 0000000000000000000000000000000000000000..2bd6d54e5bb71bcc864a5a9a2d32d74f2f629533 GIT binary patch literal 719 zcwP(eW@h1H0D(mnN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTI7 zCS-jJWn^IBVPat51&Rg)85tOun&~CyBo-Iv2E=+ZIf~dmKE7^U@U&&Mx3+JQTEhA@ z>5C9c)0C7S0sgCbjUK&gd+YXhO_Na73-&LI7g@h<60tk8xBT3k;`cj0|NZ=v^?`t^ ztRUOo%G!{%a`Rtw7@qmMR(-Y6hBFchvq{lz#ub4VKe3IxUW!Kj+!8q?ci{mVEKh*V#SofRyu{Z8cBJ zWM^BMNo)$9ArpOL+5d`w3k`3coXO0S=$ZDKfA=FNw%e_{Wi_-)6^y^^?BRRs5qLMl z-Dy&YsD}HM=t`EyrV8f*t}q>(VI>{(U4VPV%1?D)zRA86e5TH%TyaU`wad9AMG;ZX z@U@fjPo##~2mH|YoG9vdg72!}n}19J-i%CK47ig4DnLpUsM^qz1p=ruU{53n6R<}; Z0<NPRyL3XGZ1b8(yUA%9someB%Hfu5z2ZhCSu7Z=QQ4zTHm zS6SU?V`O0PV`5<728sp*85vsWCFdj-7v~1t^g0|MV0-!6F}02Ba_@d$sul6YGoVJ0 zRWW0uQiuMsuUg@kT(Y!&x!P&#EqK8GBk+-@PKQ$Bv@>Tci{I7M?Aym2acoUv%YwCg z_HWvgrJ(v^SHb$blb-*2zI5-a)>W-c7q`edR>l6dx+9>{{kgsAN?O4xAC<(L1{dZv zE;#HaeW}UM{dd;($n~p^HAa6GX@9-$8|%+U8$WMeAY`_sexF%=hETTay6bN8MRy9s zSeQ1yIC98hq9Y?S+pl`gHFx4#SLG!OIJdC)W}U6Q{CYu%TKNgyQ)}1HlsGt}F;MTv z^4w$@VW!7MT9qL)wXN#cJ8-fsV_9t9dw1FMsmx9x$*-3!({q*;$PQ~tTfA&r>6a|y zY5PSI4Gun6tt@s_vJ%>?QY_bJcX&VRwbqL<6$`i8AKcf!eDjx^5;Gr7f0omAt#h4N z-sBxD$q#vpzBJ`kx}BHRdCvIrXgbgR<4eRe)uK~uRTy%f-JGFzo@>$O?Htc{=qPOw z>z7NER^LBmMxplkh=kNxl}yI*0p5&ETnxBV4JtrNL#W!&QxO8FGhk0s2otcU6a;8x WKuI?N-mGjOVP+uQ1f)%vKs*4War-v_ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR242.jar b/libjava/testsuite/libjava.lang/PR242.jar new file mode 100644 index 0000000000000000000000000000000000000000..41b7fe1370727fdbf7e71d5460e7fc1d9001f52c GIT binary patch literal 1565 zcwP(eW@h1H0D;vNN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTGt zU*_BpWn^Gz17eVI&txXCn zx^8#WOErQ&Pe@Vv;h$Hs@WCPe4~vgjFYIVyE`N4z=I0%se}4VP_<+H-Ps;hPijIo= z+=ZsR@=p4EmpjWPeV;}c-*DFo{Was@tM~T=zMJfx$|NSG_bkEKq;~45ZllhWI$5`k zDGywyNi3N($9zMFnEU7c$`274Gj~Kd&5nrlw2a+f6*klSROl+^xu*>zts>G^q?R*j zM?8*5eeuV+cw-+g*FN)rIg=vq{})}xIgjV;7o`)YYIM#|nHk)(j;+19*7=B82H%X( z#f$nc&JDi4c(P>5d){-#rYei?u5$?fT#$Z6c9N9Ko`i*WD_yTw{d(9vb8WDu`RW;K z^HBqD`i+CaLcoA40%C5UXh4vWi4i39T>X8$fuT3&`jXC@N0x2fT6f2Ve+`HjQpg3hm^QvE$=`M3O6mtMDmRX%s#+XBDqSMw5Ys|s3kSRc?w z4Z5ehqjfd`gRPc{fk6-!bSj>Cd8tLv}DBh3vQ75w?fz)JlYo zIM!(?+_l{HJ22s)j^s+N7g@=Is+~%5w>AWbYV4Y|;R<)s*D@*IkY5MoTf7nqO?nq) zf4;Xift8oL|DDOj{pX5AZ$=zV-ZV+`cjlKf#S=>OE-9S*UAgMdiyb|scC~(!E8e(h z?e}pzcY)v8G|NoY?BkU~!i`g_rzeBX9qP+pF7{J?7lsqigoCa-IwK zZLzo_2IGCbvO1TQy_Ia|>+M)wdz{Cf6@^;dIr3Uv$Fg_9>l%=^6kA z^dE@ENte4F-(&Lt7{QE8TnxC&H&lRB+M#MgFYgdQodJ94hcE$qnT7zZ49F!Mx<2&m li~xriQ8G8WM)bst0DqaVB<%oiRyL3%D-db|wcTR@@c?gIOa%Y{ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR25535.jar b/libjava/testsuite/libjava.lang/PR25535.jar new file mode 100644 index 0000000000000000000000000000000000000000..924c256a6d83f44602b094d14235797baaf70781 GIT binary patch literal 679 zcwP(eW@h1H0D*NCN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTIh zUN~>iWn^Gj1H`;Q(SRT$Q&VG8z2uz4;^N$Z(_V)iL~Ji#H!-|*Yx;S;7>BaMP=l2JZjpAq5EVLKDJY`{#mh#Mbh9YP0wJf~SpWoW2WWt;pB9X-` z*|}Qhi)+!_pN$G0FHUwWOuol6ttfBSiHv7o)TFKjJYVrw>Y3f$*>#6F+Bi#k1Eh5+)}%FZ{`W@qpO2lW*o`v2KaI zE%WE=D~-e=mkym$EdEBw{+x^na6@;7zN0p5&ETnxCQ7Zo5yHmWxC=tcl_ i2JDfKFadj%B0wtxS_B7pv$BCCn1OH$kiN?Z;sF4Xkk?57 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR260.jar b/libjava/testsuite/libjava.lang/PR260.jar new file mode 100644 index 0000000000000000000000000000000000000000..a0ca13254c09e13b765eec4c3b048fcb82bc09f0 GIT binary patch literal 935 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 ARR910 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR29495.jar b/libjava/testsuite/libjava.lang/PR29495.jar new file mode 100644 index 0000000000000000000000000000000000000000..6e03871c637dc87bf005d455cc0118b5719aaa94 GIT binary patch literal 2261 zcwTi?c{CL28y?M!Ws)V*SjJimnZa0MY7k@JhD3$TG!0E@lqFfFGL{-NC}otLHrFK5 z*s{ABd#Y<0Dob70ZWK2}SHF9HN1WU9o%fvY`_B75|Ge+>J~%rd2m<&4iBM$&z)uib z4+jg^LkJs3OD)`{v~t8bg68`DM@ash=5WZ-#?s=jE7HNzfj}YqkOG4cZlr)fvOfi_ zsDspom5%0h`$UQ&o9EKBOEFjg2L%}K^Mz|W=|cqCR&rU?OiJ< zW|GRplc3!k`s}n&7lHW~KXvwzbWt`OdG{+I6`H{Dhe|t+y$?~Ex>lY$ifVj}q^EJz z?=NSf12AVAk*V*yHOfkL^W`u5##dV}pLj$ZxvFQ$Is*Le@rODrG&b2B`1e7Rkyf?Z zk4G#NRfh9VJ5nZ?xyB0Hc6-Xls!|Ad>r;k3+qC3wIsnUTj>RhvFsvg9Jxw}t`(G7} zBGo5RY8q#{n=pgEhR4LafrP4qVvaW0BU#+@wRW;x^2tcp4WTB6UHcM05X@`_!nO;K zt%(vxa$2?28-wNB!M9)4sn~{O`Fg0K@0_;3_dUyb;O{9@Y(w2cR{<9mEyezzv)(F7 zvvxkW;ClW!{Owkot9}DH+e~zw-SFnIpCf}bunXyC21z$0U|G&KTr*2O0c9L`K)aaE z>ZBoThtW!nOM`uGsb`veG+w5{$G;YgX1(FlnbS9aunXbwiC}OLm-)_FOs1m5d%IsT z{0|u3V6UTw<+A5IM~f1#Xw)LLYi~Gizh{2GwdtxJxBHWse?|?e6m>kjs3wxP{Ty7X zdS%2MW|FPoBY}o`j2l5@u`WBjB;2wEF{L7+tI_q|I&%kJ%l7o|hrV!YUP6}yC&=%V zOSB+yNFeiaQ!KIEcBc2PSu?TKL>;Ha(mz|mnCxlyh&ZJ)$ygMi`0Xh)t6(Ii(y5)t zUGFsas5#h;)Rp+Ll41;;So+{&MWdfxa+%ET6DpX@o(B_ON35X7dHM`$QE{ok+RWIM z@0~}r1S8<=>wIC}v`WX=3(|Q(7wm5hDcfAey4W%6AgVmMUf#CDL*+u(YB24J4d-m* zZ(R{(6W*NZrerW-Ve)TO>ehgp)rwk%Uwy_00D#vOE4884Jw$&BF@O|A`d79$T)doQ z4oPBmr^Ez%NJVqGqVd@geh3y>L9i)bpZq$y^Z`^tVK;L~%(ET!wQ3?Nsg%yEFe%`P zyp!>|qM=V>+SuB1f9R~A;6Y%t;$|w!@um-iJ zw{*E(@5Og^46!@$=3y?=;)Smf$BmUWr$wuj`5NM4NKN)w9)}ibsMP;4?8D24=Y|z3 zry~`y;b!7&yN;Uh88?9^y}z+jw5m^39~70gmgs4i8!MIziczqN6*Ed!b-9$g!V)iu zpO7C<@RjP}r7H|)W(XD8^@S!yXS;i)ULp_gG7!9=|1HFZlOpv<1T!06rG=h2F%3XH zZFvyAr0P_HR}#91XU7t2Rcfp;=zY*-kB*^H_rz+hLU~>?R2nXkpcuJ#Erbd4Ysnld zDDGN08Q3}b^2J&;I-pRg^@>P8o1GHkY}x0+5HkKGJ}i3lv0hY~NoO6Rh;SWv z^99$e;5iN5X~X^$z~(m31qi>^U2pTqdhFiZ<{$!@LJIh|&m^3KQ-i4()gx(}l=|g( zwH-PZJDu|cqR%Vo=#bx9k5cO$5cM}pfB$e_fH+dGFqDX@VMPPwF8Yjpst(ot{CQr3 za)YaCgfGNh9=e7~vrPFD)^)ab2^6>5q9;=@XKopZJBX?_F_CgYY_BAn)%&qa@uYIsQG76mi$}`uH-;J$s?Qpqfta)VGGL$P(btnfhfLuUd9~&XqBuLgZ4kh(J$N&Ia^%frTRnLL zYJmTC=naPd_T3G{0JgaB*3zv@U<10KU#*0#99t)B12X)-oHv{unEyu#c>Q433uyvB GUjG1IX^H3n literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR29495.java b/libjava/testsuite/libjava.lang/PR29495.java new file mode 100644 index 00000000000..7df00e80d9d --- /dev/null +++ b/libjava/testsuite/libjava.lang/PR29495.java @@ -0,0 +1,56 @@ +// Test various reflection methods. + +import java.lang.annotation.Inherited; +import java.lang.reflect.Method; +import java.lang.reflect.Field; + +public class PR29495 +{ + public class container + { + // This class has a synthetic field... + + public T get(T v) { return v; } + } + + public class concrete extends container + { + // This makes us have a synthetic bridge method. + public String get(String v) { return "hi" + v; } + } + + // varargs method + public static void va(Object... args) + { + } + + public static void check(boolean x, String m) + { + if (! x) + System.out.println("fail: " + m); + } + + public static void main(String[] args) throws Throwable + { + check (Inherited.class.isAnnotation(), "Inherited isAnnotation"); + + Method m = PR29495.class.getDeclaredMethod("va", new Class[] { Object[].class }); + check (m.isVarArgs(), "va isVarArgs"); + + m = concrete.class.getDeclaredMethod("get", new Class[] { Object.class }); + check (m.isSynthetic(), "get isSynthetic"); + check (m.isBridge(), "get isBridge"); + + Field[] fs = container.class.getDeclaredFields(); + boolean ok = false; + for (int i = 0; i < fs.length; ++i) + { + if (fs[i].isSynthetic()) + { + ok = true; + break; + } + } + check (ok, "container has synthetic field"); + } +} diff --git a/libjava/testsuite/libjava.compile/pr21519.no-link b/libjava/testsuite/libjava.lang/PR29495.out similarity index 100% rename from libjava/testsuite/libjava.compile/pr21519.no-link rename to libjava/testsuite/libjava.lang/PR29495.out diff --git a/libjava/testsuite/libjava.lang/PR3096.jar b/libjava/testsuite/libjava.lang/PR3096.jar new file mode 100644 index 0000000000000000000000000000000000000000..4ed8f4ab6af1ec1ead5beb4cde99438d2e500276 GIT binary patch literal 1089 zcwP(eW@h1H00EIoB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvG z#vcx!WMW`=!otA70~8GiGB&U@(@V}tEH2Isj`bG~6tLaC`>oz-rKJHIM3!(kasOo! zS$dS;Ay8;Z1~2Cnm+h&F-naCwi6#GGxBLBMa=oKGm)5UGv+EDlC(XGj#C;>L>iwHD zGmFpro%{Rs`D=cL;EE*&R3AjvTTPxbJ5+(Y;(M>Na-hkn>Q0}!`#K>jZStqCeI?7N zDRWa`!t^(?!ObmZvUwFOR^e+m?F`d?diIpDa=Z!Wj_li4#Lul=Q^3x8+D~CR&uX0u z(&yHi^`8vW4y)9cy?H_5!qUaER_=FYO1B*Bw`1M=ye0Mio>j9{Wv2@+*!)H+^NTr$ zuJuO0oX|%my+KjV0?k}(9cx`9kBjnfYOv4InxtpB=a5#D#IsAGemd@EB0XGRVz2Cu z*xY5E=6YD-5ZAHuuZsn&lx8UWa$X!^Y`lBP#25en=kY3cd{Rm7$uJccsuU4FII8R?d40f))AOgvuN!p^?AoHt+CORJuJQS=yyrm z$w7Pi>bMpKZR!(9H@iMZ=55{0=o3d&++{=eC8kXNaC}Eui>G|zBty5j^^enJGxNTl z?m3$(HRX%cfAQSo#Yc+PDbyd2I3-))z3+Bp)b`~s8`eHQzT@;sF2}4v16$ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR3731.jar b/libjava/testsuite/libjava.lang/PR3731.jar new file mode 100644 index 0000000000000000000000000000000000000000..7473cb4bd84afebc122b2d9f1d2168bb5e4f84c5 GIT binary patch literal 1047 zcwP(eW@h1H00FT|B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWve z%u!_$j0_CzK+Fylb<#`DNh~hT^*il#I6%Pmvb&u5#cS81=09*-p~th7TU=L9ghesK z@R6OT{?lnTDr!ytrs|2r{9vq`VsY{iyG6I;xjDsY=Z-(WZQY=_t@H{<$)d%M8Tx;! z?|1%5c^AXRE%}TkS;$Q*@TcKIyBqrzP5ds;G)X*kN%3FAp7z}_$INncHd^T3xLd3p zwe*}xu;;s{Grv6E*eG_;>iOzZ{Z|&x;asy|^+N$peE5@0*};v0 zVZ3a!E=auY`6e+v)$Z^Mo&5{`9%ooCM--)H{*Y)$R{dWMX}dJ_~Q znqQyuT&|lSbSn7!$=siL7MZb?!Ipj;PXv4F)}KBQEV}AR&uO<}7lZSQt1}Nf9Bg#x z3wX6UAnqKK|1tA*&%N7N)^Tx4_wN2z^ueGr)Z(R?d*zgkY8!sJm;LxN(*|`G+5Fx zH9o_5DbrC)ui_Bn(GC+VsjHrnsz?+o~B+deaFMzZpGl&NODu8IZ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR5057.jar b/libjava/testsuite/libjava.lang/PR5057.jar new file mode 100644 index 0000000000000000000000000000000000000000..ac7ac957017ff821387b41aeece18c8892f5713d GIT binary patch literal 694 zcwP(eW@h1H00GHLB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwV zhm$YZF)}b*1!5kcXh4vufvLG(a!z7#ac;nAFQ-6}*xReWzxwz~fu)#TQwA|OWw`xdi|sMRBE|KwPK^(4XKujz0bAcTh&<>hrAP5wA?XX&B5bV$3c~p zS*NCpC$HCbzwUQ^YRoRXP!5R`H#`*2X`K(WTNtn_^IY}T!xKNTZ!J=9l=&n!t5Cgu-^un=uK44#rpc>&s^aUVkFT@$z3Z8@V<=yqYhQBxDU{ega=)sMR(E^OUXwSL#DuWx^{9?-j1a)iTe zdG!62@8`dN=^?P%S-Aa+Uak-pC4Pfv(J9j*Fzh>xc6q=cadY2Ep9op{@vSB z4I63KGoSe!MTEHIlO(TLt>KB(msy{fD0tdx8pqH2TV`PaN-x5>iYnV(mM(p_vC7dz zu1k5PnP2VQ{cF_{WdA5nIhv@z*_%CgHE-XkEoVM5_f((bFstS^{AOm%>lSqXkC6LP zk38GNZ|&=R9hudPPSgdNSGG8<3nivw(;|p zgx*Oux|a^mSWsG>?esHwyQru@oXiUYj;)zd9XCH(i~SB2dES)JGv!cQ+bm{rv4e5% z`hL6AEGv4icW8n9p8U4_OX9h9%RUCTbnQ72%PHpLXUS;QW5lz*vb8qQr+xKVn+;Ck zS>F%l8+x_=`_=qva^8xC$F2s8eXS4hW@O@Gz@5lZ0aB7j)rOwv5kQ>*dlo>LfIVR& jKq~`!GDp{o9$^UZk`W$#0p6@^AR!hYd0c=ZqdSkT$o z8K`{h$d8be=4>zT1sQ)t|2xSmTs*@6VR6sqqeoWUXummkX7RZ*=f3=X{FL_qmzgCK z&%w)^ecF^yT&T^y8<}~#sO#nAKWlezvJoNeDeOD9^?*}I7p@~p69_dK6-wbzN~ zwZuVu)^o(H;%s#mQpDJhPsg z3G(cH7B43_DdNG5|CT29%aaAYuk6vCv#9*>`j-LDvmDL2Hfii#Rj7aUSlEVR8&3)3 z8-~fg&T`qa#>woh-mK#6so8}JSM8KvefQ9mQgdKku#e$x#{U${%Ecu{R?eS!GyF>w zIX5NRdvIm6|6|?jGU3F5GXDpK&n0Eocf=q2CG|pnU9yH*So=aHULVcI~SEA;JXgi34}K%NXE0|Q7jAjs5AFF7Z%xY*VIbk-pU5nFRZ&*a)Av)|qM-Ed3qmT$MTqee^E zmK&|BJNb+jDYx9Hf0@2Rt3BAQvH61(! zbgxc-wQfpm$^FSo=cO|JKN>OlD@)#HQ^oE3XTCOyX%VgX!20z@#NTbP>Q;XPPI^t= z6n2a&Z}#OMN#^H*lEu%j^=z1RVCFuqQ;*M@&3)N;(lv44;n;J}qj;SE$&~RV@>-a7 zIDNTgzvI@%g{-UNYc4TfU-2jSeJ7t`*73Q_tL}4H*RObIufHlv@ZqGV3;lTcHJKJ0 z2Y53waWUYI5LAE^J*e8yBM1T18L&qe!UXJ*fB>xw$WapD&B_K6Wd_2HK)Rn1!~*~d CS*el$ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR6085.jar b/libjava/testsuite/libjava.lang/PR6085.jar new file mode 100644 index 0000000000000000000000000000000000000000..ec7066085c763bf5567de9450f61c4885132a033 GIT binary patch literal 1898 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 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR6520.jar b/libjava/testsuite/libjava.lang/PR6520.jar new file mode 100644 index 0000000000000000000000000000000000000000..441d1ea50c10aab65d2b8805b841ecfc44e0a597 GIT binary patch literal 749 zcwP(eW@h1H00E6kB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw@ zw{{qoG6GFzVqo9_iUtIknHm}BCFdj-7v~08`yUDr`KPD5cFLy-)BQtwk`ftAFS0&X zN_0|9k|@!tV0Mk-5ffIgYuwyfe;|@wmG9Wi_$MhgYgJZ!*^W#Yq$3#23H^7z*9Zl@q&>lTjBcZW1<`%R(^0w z;+V?YE&t`L)qC03U-{BMm__X=^o!FLGd7iP;yBImS7?1){H;47hMgRo<-bkTwxvE6L+Thq255%+)gvnKaitoMI)GyL|2r?^(MXBb}^u|If%2UKM%b z%8`T83lutCCAoPH8m7c=kJg$tVbM|__k*jadd-|<@}uFmh{2jwADmMIR^6>zf6%+_ zbL#)^yv2PYK`lZtdmIF1JJ}=u0vXm?@p~Pp$2#V%Wb=A}kql&a;yEukB+9 z@MdJ zlT)I8GcqtZGcz#o07V0W%*>4}^^$WEi;GKxvi&ayNYtIXwKY3@Vb5wNtApO{hn^_8 zZ2#dXEG)dJMX=|`%G-W76k~UnEO*=g!~PFz-NWt~Jc~Q+56Gw1_-{|)+U$9LX>H!~ z+Vku0->+wiINsOE)4Xx}{=J(&o@hDuVBU}Se~KQoAAcJDRruZno?ZH>XAZ;}JXzK2 z(Bfp5cwx^a#lO{JraM{N_B8A8w0(>f{50Kj_qoT+`{fFP)-U6cmO3UIISv$&7_4jszDu#nrBBWdi-N9AOCC~ z?t6hRg(@BdpL{6h{H$hl$r=9#SA^)$g-_STyf{*0wZ*13A#d2qfpD`sE4?lqB#eh$w{ z(oY1L&I+?y>r*AEb4&N)8o9$;_Z|8-Nl8{JHzngrhqJjyX?;Vy&v%Eir!vXTJ0{kJ z2#5N^=N)S|N#F37J;0lhiHiYuT15p& rDHl~6dfG(*bq4Gy8DRqU^oani45+C!z?+o~B+d+kn}PHyCJ+w*3Q;&d literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR6820.jar b/libjava/testsuite/libjava.lang/PR6820.jar new file mode 100644 index 0000000000000000000000000000000000000000..ba5d3e1f455cb985f5ce4fb9166d25a2500535e0 GIT binary patch literal 865 zcwP(eW@h1H00HevB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWv^ zN6$@o$;iN<&&ML zwN$hs1ehGXgPD%%=S^Ceb2I1AF2O(V ze!@HXtJjwEPka>}aX_h*OGC&E^U=`u6@Fu<8}Y* z4jqg4%fhuQauzmZGi^4NXpQ}P>vHd@`Fk6EWe;~nD9Ce6zTCTX>Y~&Fj-oqj3$Mm6 zOQ>u8sp=Lr$5+Kdx+igV>2~!WQ!DtFT=y^hDl@N>e=Eo5nGUa~TvB-|EK;BFazljG z(W15$-JbJsY?44{Bdg{*U6$V{rt~-l9 zl1B{+QL7sD!@yv8!ozX_xINS%_=_Jrg~yNOMLTIKY^{+?``w@5*R<>r_if&8yzamcRf8OR=n-7 z#+&yXm-5bvM^vXDk5cS4WH)nTvDEMRa`0!Scey>w+CH%*w_Z18Uf&&`u=?5U6Wne| zRl$nwO$Tj+dUkJjoy~l=WYK5QWd_M5n-5#f-xbL5Og3eLX{tHP)BjUt<&InN9`Xn% zvFGRH|9#gWYx43F(M1M*oR33gr))Uz*}}&9z1+*c7ktdin4?W^GA$Q$-L?BVXO->U z%^z)E?oyo4)>|cXGxf+Cwdws_+)IAu|G4|b|NNr!%1`Z1ZFh}Yc=pQr1^akg_`bhU zI5E#>^2U<+3q*2v{*&IB{lxC1sM=m`i|aFt>MlnA?AzHAnBr(~UrF(NI^SfSaD~Z_ zkDW0$-2BDh^C!Lt1+Ezn?Y!^UG^#p@1@}mPMjvCpVmjmxr19^Q6DCyo465ZBc^RL^n zv9UR`<(09ixv}*%C=?5GD~tMr~yBYR3}|1Vi{<%y6R+qwsTE-iWz zvi;1Q5I45Gjx5^=Ms93!=lATnqV#;ukw=fNB$cuGxv`mb*eEkER+naGR%SM4W-&0_ z(Bx^xR;F;4bqeFHGY5_yV`V^fW=`qGA1{GCPt@!g3eBGVj^0dxBCY4=Uab5zr$}q< z)Q5{&cM42#SeP+UfkPLj(d!eiS0(sH7%Uc_5m9$lnibZjA{FL^Li%~Ed5=FuPI!GjzNf8w5Rqs9JMtdKj$=}ig zr_J#R*}aUYK|gyrx0$&kWde^Y98^6s;y zr>ZsF-KBpg&)IP6P7{~k!g{noG5nbB{Twq;!Y~8n+nh^A*`YfM7V5FM8fZkRa5Q;D zoT*#0U1FnP+NJ+jy)rKHzi@ATZrbT&Blmn>`TlCl_rITi=5}D84hj^Dx8L)2eRWXW zUe3>T?_Mvq{LXp`gU*)DvdS0;2 zpxwp6$vI%#X4b~KsCARXjeB&$&Mf$56VuLAFLGQ>QsMyd`Fp21etXitcahbVn(XFF_EXkgzW+6SML=%eK})>_ z+XK8AnYb8m*Cwa{scu2lhF-fMfI0*Ax&~na_8J5MS{cym6Lh`kMJ@tNU_>o|(RHHd vUj(RSM$gUYdeJi#0;sT{XEAiW=xGlDELqW0Vt_X*8%Ty72p0p@`+#`>Kvm@= literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/PR8866.jar b/libjava/testsuite/libjava.lang/PR8866.jar new file mode 100644 index 0000000000000000000000000000000000000000..2bc6d5866530bd037f5c1f153f4d7661ffc4ba10 GIT binary patch literal 591 zcwP(eW@h1H00EOqB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDi z4Qqq119^sw3=BL#Iv~ix!puxBIVZ8WxU|of`;dV^+x;IGZ~fZ&;@N{`NBLu10%BMk z1w=)~mxnaFm^fwr4b1ava;|T%_u3P3@T9{#y>kBZPk&amFx)yZyTef8v+MTTFK2id zi17V66z#t5+uE7c0@3r2)vjD(pU@GWo!xfi!yaL?M;nYh4keuMUm|q*!4t0hqjwi8 zJUOy7Nh8#J^8CD))j@BoqZ0McH*ObIUit7#dUf#R6%E%M=1YVwS)Orewa?5zKdbU3 zc_9;8773b4>MWV~bJ1h{TLp(!i&+XbW<2||+kUCmXsP8ln@MdJq)3E0CP0a_VQVdx2LPzorxO4G literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Process_1.jar b/libjava/testsuite/libjava.lang/Process_1.jar new file mode 100644 index 0000000000000000000000000000000000000000..8499991d7479373d17fbbac11118b86bd9eac32b GIT binary patch literal 1117 zcwP(eW@h1H00G-dB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSD= zTQ)22Gchn6W?^992Z{z1YObWi(HZU4>F4Y= zpWpZV&F|;$`{Nm!ZU|mD^5Blv3(Yv4eOz1{47a@1d_Tp(@8YJ$vrpvwC3*T-LxX#N z^PIK&uh*O#>0c~9>*17y_U47AtFmeqPx1eBsBhAlLa&qBtBzfGS}kb1yjz+z^mNGH^X_T%IiYhD*^71ygUR8ADzeuC{!uIEY7 zvz0FTvsK>IzdIuHj%!D-eKWsn^K;cR$}Zn7dOuNnKXZ|;R-pBy4pz46AWwd_*d6_@ zjQk$8%|4v`8;>ZwnZ0mMndjM=$6ahzeL6d1bM({?64_sFSG$^qeQkRBw4+0v$M=`C z;Ki&@Yq+Iv2yKYe&fB<7X339z3t!D@$z7e@7N_ar*86&?Q`h=c%ii8i56`^yXJ(CK zX@Z^a7q{}(u*QAAGSj!*KJKp|cbWU+g;yJzl;&hKhIppxZiu{b{rwK1uO(}4*B_dl z@vY>z@V1jbjvWb+EIOff`_v2moBoEACcIVOAy+i#(DVti>Jt2%n*xr7c+8n{)TpU_ z!oG*w)MJkAeXOO>ycX*z?+o~B*hGb+ko^$W)KemHg~R# literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Process_2.jar b/libjava/testsuite/libjava.lang/Process_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..2b26bff2dc92fc050a3508584a7fc2a81139150f GIT binary patch literal 1203 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 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Process_5.jar b/libjava/testsuite/libjava.lang/Process_5.jar new file mode 100644 index 0000000000000000000000000000000000000000..1046430ddcadbbc3e8914f4d81172d043cbb853c GIT binary patch literal 1057 zcwP(eW@h1H00Fm3B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSD3 z3$rp7GchnIvoJ9514RRh@{?1Gi{nl8l5-M^i*tixgD*RX*mC<$Zu=1GwN^5a6Ib1(Qm)c-J-$#-J4p45K# z&B>e9=WV|~d;UJ(okGHpF8(7XS{{5EZm@EcQo zlDyr;t3pb)t7yNuuCiY0h3kxk+e6A@^G^E)K9xSS$>ps7zIDn?E4u2E=G?1^+OGPM zXU^eDw!Mc^g%e-&tAF}0Xso5TW!bmZ%pE5dT+umKZW^G?Mfr1k{(*7Q%8 zc$9wa3;&fZ#*33h9%~(o+G1uewWG@-^8ELfJ4S1*zMqcfo@gk{rdHT{&TsCT_x5}` zGP^W$JYVjJJex5?X{GCCn>kkuo2PWCINz7_Vcxvs;DUEm6H=?&=G>hSc*n%xy=k!S z=UF9lYx#HQD!hFea(|}NGnw$l?;HH*o9dXcE-|^2no)c&BO=dfv(-Dr){QycaIsH)#g6_!!vQ3o@waHh;#|-*6TXm;Xc`)O|ORPc?5r&+;QbgQ*gPr zjryL4udO6sXuh{9?Z5M7>h_D$zB+5Q=CWm`Z_yTxUnpDE>bTtWMKfc|1;)jmf1l28 z{3U2Lz3;+wK8^c=xAXYiWyY*xEx^I^@+vLY{R3Y3SX74JX5*mafpZI z=IkTd_4d=|EZ)ziV(!r7{KBQ@Sq4kuk&EtsI5sZ!NNkX@>0sqaoN04Y;h6EOjR!2s zIy4O(FUtMWd-|Utz?+eYivf4GLIp^f3{@L?HbVe)2JD#*VFLE7gaEA!7#S^n literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Process_6.jar b/libjava/testsuite/libjava.lang/Process_6.jar new file mode 100644 index 0000000000000000000000000000000000000000..a1a35005dfceaac94e535a236b6fee5170893383 GIT binary patch literal 865 zcwP(eW@h1H00H+(B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw- z@1y@bW@KRCV`gCB2Z{z14+I;XJpL=KGH;)<-S$~$l=jIiw+?}!Tj|Zz(-I;(b zQNMYXsy|$KCD7&Q0g+QY#@o1_bRQ{C`4VL@Po+aYfzo+M^O=>E1(n7-I9EZ1*+;=Bx5|0kax>BpS;Y#YDuu1T0$!YMpy<;3HwCMbmp2rm|? z3qNeiWbr8Acxg_-orD#>2PAiJb~nl|*VFgVxAnB*oz2twp}9{tr})k<_h}2~&D-(G zA}ldsLGx{%D4A!CJYNkt-AiQ3^+i6{yw{oc<$bH?lT+zhwZ5O%IByF!xaMH)WW|*d z$bI3|%PlU}i)*t!OK%A_>S(`K^h{@QledA}h4UJzBK-T4Z|VJYd7HcO){D2>wzox8 zd=?E~o$b7)-qCn-^vv8_Dcjo@?5y*e>032T^i|RUr`b7_Lq4rR0V{@w0{nM}Z{}&JNW@O@Gz@02n0a7AG)rOu-5kQ>*d!j{{fITT9Kq~`A V!VK_cWdlhu1K~CxJ(UT>0{~(oF`EDY literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/RH194522.jar b/libjava/testsuite/libjava.lang/RH194522.jar new file mode 100644 index 0000000000000000000000000000000000000000..a7c75a24690aa8117183a4565d530eceed308050 GIT binary patch literal 874 zcwP(eW@h1H00GZRB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvE zohzrkV+5Ma%)r106bls!g`aAb1mVR0GZOzW`_1PW9Df(;9PkR}4Z)asje1W@>%6xAB6XHC@M=xnQ z*WCYqr1Xqpu0o@V^D(@&+ijko94|QUmsEurJh^mdeg(7kj>8M){&YP4 zDwzA~Bh#g~%`Zkvy)zP7WRe;m>-EowW6kNq0enuLC3#;?~kbg_>;k}7#{s?fK zWaj-Y8MeH$zH;)OJ|?*pjkyLU|Gs>a-%wgyy);-h`$o{8_K^Bx^E-m=THSdz&I{PF zs8OgaLyGz8eDB#2`|_lY++4c!*1okKq0Gx}r9C>s+iokmQgVg6;PJ2RCP9C1@H4l| zb8LOo`f}|`t;C#$DGTOF%zY6x;p&Uk4)Z4Zzv-Fq%Zq)I;_RL#&n1TZ%^KWaM3>)K z+i_*F&zu_L>3`c|s(Wh6TdrEpqon+_@|yk)H&;H{w*JG8N!r@gtz3Kk(@f1K zDy^P;&E}<4#B#0MC0feP^|M@=yIXQxbj|CT1H2iTxEOFJP*i}FTv4^5Cs+hfXTY9( e5hh?ylnBtufSyDHyjj^mGR#1@6-du#0`UMrJ~Gt+ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Serialization.jar b/libjava/testsuite/libjava.lang/Serialization.jar new file mode 100644 index 0000000000000000000000000000000000000000..376cb6b46e0f13c9b990c9f3638aecb986111de0 GIT binary patch literal 1362 zcwP(eW@h1H00Ey$B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDq zN6${3VP;^cVPjwr28sr!7G);pWL71X0FBX0&PgmTE)DT6mUb2RcWmO8YgNLhxBc;x zneCu-e3NT~!wK#rYrQEN+Z_GoY~@VU^?kB6e7D=~qNLAU;y*b5w8U6^SaC^gMc47E zO~&PX1&vzkLIPXzPEHDAeUn(W?D^~bs$Ki%z5oC3RW?KVhsGwp#>0`3M!cu*nA=?5 zDB8l36n$*n#7#WACq&)4G0DZ_yQyALzhHRUz#lR8xr^m6I5z9zZG zkJEn7N!{^o(PLeURBL&MubdgY-&rqDn)^ch#g`?o&+gc?WRZBY%<~Bj^^f*13N%nM zxRkKse&xzHZ>QKcc`RP>V8wxe4=oSYbp`eq{x58t$NZ03qHwjuF_!msiUxOX@e0W- zn0Muah+oiy@7~MQFPkm3o#Ihk!l{(k>TA8}z;&zE%RV)e=1!JcW~h82v^a0d+PAw( zli%+0=RT4xoqB#tP{{7wndfJ$TdvfaAwKVDBN z{qT7G-xs;{AI~O>e)cf_CAE0Hq19!zhn35HntE!a=l=NIe~~{|^t$2d2Upu3y*hNu z#LMm6<0X2^r*pK=m>tjAe(T)4yPrLNm>14=v}#U!eKq>}2di=?i*(C%As^VL?v4%2 zv{qPQ&dS#8#hJ5eN4KG9`Gm*D8dsflZ?YtWoX~ie80@(4?Y^6~*C)I3s%={l<~K9- z!k2ipqvn5pa(FunURlN!`N{NTVDs|OHw%_LSnCkZCS$roCpfj;ciLH#RNmb?{C&@w z@P0fhJo*1Lj^Ou(hk1UlEzaM!_+jiG_k5qYs7sT#3S8^Zem%w8^5jXu7rE6-(`JYX zD`@<9y+G2|*+grLm0P{z{|}k+bLU@d*^$w6rAN`_B5Q99-}M|>izbQPoO3k}rTpI8 z6}Q*?U9v*((G77&SJ*v$Jfr`k^vQ^HR`p4tb1o%Y%1;*c37vSUc24A+wB(MQ_(wDO z)?E5DM=rQ#PX0RmmxX(tJodV5;NQk7zutuR`pJUB$Ad0!SaUq@cg5PB`&J(RR=eif z^^=)ac9938M9Vc!?Uq^kF!^!Ki{cXx16Xg1TCfMNZ(?uM{QrHqRz>yJsq;*EE=Vk` z6ki#6ltVRh&Lk6GPOI*`SDPflE--tF-gcF@bCQu?EZ=|Py)e(C;7`B$_S7x7{y|;l z==qTLc*C~)1#|o=_J=KP|IZNM&B(;XfV&Jr1xO_lsy6g82?5j@u$NE>6R?*%2++!a WwG;~QW@Q6OGXvo+Al<|Q;sF5s>?*1N literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Shazam.jar b/libjava/testsuite/libjava.lang/Shazam.jar new file mode 100644 index 0000000000000000000000000000000000000000..b3257f6f82cc58591abe85775e0b5af02effb606 GIT binary patch literal 733 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 Pit!$<&cmGoJi7e_3NNq| literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/String_overflow.jar b/libjava/testsuite/libjava.lang/String_overflow.jar new file mode 100644 index 0000000000000000000000000000000000000000..1400db820dde4497533535ead454e2b3f233d8dc GIT binary patch literal 1653 zcwTjsdpHwn9LFcNSjpXy%*C5*^Jgm0LvaPaASC z3@xFYS}7g5jlzl$O72JJdCpUvr#|oVd)~|QeZPNx9PETez<{riLsj(w-yya+_Lg{4 zxDCci+u?^;1Kf`c+dO|A+3#carWhM5OB^0yZ)H!WQN1X^bhr~GD46O`GgQ$*>;szz zQOI!vhTduU+)t_79VB{*xjAK$<83Ah-F7qX$uGr%3*1DM4Po z{tSeNFF80kf~6S3rhYUx zO^#CwNv@(fRz>6TA7BPX9z59}&kfdH$cQ^GQsznb%k0g*PGNQY#U$b+mm)JVn+V6Q z-IeZ&HwJF~jKcA}{&dUt#3*14wS6;}#l+W8Wqb!MPPU4&gm$UGS;~pGR#6Baxe7-L zh?IO)+bX}xHl6{JdugqorNfoKGFzjrbW+NE+eQ~EZ}diVOylT*)U`SfV$wlUz#J42 zq~a}pZ8m*uyPG4g*1Fk~YJ6fhTEgm4AFI+xpm2AjgK$o37s`Fe!L4o#N;}=KN1R<3 zAbr2vAhb(1jRx6^s>&_{9X5VC-*SG<-Eg=!K$+3m91lA%Hm~$pu7D_yqbZ7sdt{{e zjl6B=HpbwYWevAY>g!))A?8q$F1T1dywX{U*z&BlhIp3f=9)CfQlb;4$0@-B?pUsg z-=c{vgK^W=(R(i=S#N(qksRo`abX=P=S;tpouV$kDb$v7e55=p!Hg6LH_{G$0qb749Pn#4I7E3x%i%;IE-rn|__;rlX&4y|08vc6Dq@brYaTwVpHd>uqe zUB|Wqn+H2uior=Ov7|#q@rRwNZNe1MpDy_nMh7009>G8b78wQAWqgIuC`lJJqn&1u zNB}56D5l}ToqJ}zQJ`vrr9_N+xN&b-ZQ%w^WGXawnv;zYux5|W2h}6G4%L^ z&GrtRM?Gk~PTb|gDU0V~`cEb{U0D%dC_GOVPJcMe_r^koT5B!vkaE6SsPtfKr-i2p zgw5|Yx~uu=%ZZ%E$ln=|)TnUQC(Z8gte3g@9T8!$l#N|WkY^sOwvDS(_HNp@{j<|@ zFX&`1fUwnF<0fJHebSxXyCZ~j(8}ax0`uu)+A>sv7X|JYHg55&oO{y20pU+5Upa6Yn&dDpVco>DeLo`Y)XFeeKK) zZ%bXu+8b#%`LTZTW3%krh&iNkv(+AKRJ#W6m}#a@O>`~1m4?xs6*uJ+mCl49ITJ@# zTYI!m``=IB065qQZ2<#*E$JWmPT46Aj9qfRhuL0rB M)wH=60KeY;0aswR+W-In literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/SyncGlobal.jar b/libjava/testsuite/libjava.lang/SyncGlobal.jar new file mode 100644 index 0000000000000000000000000000000000000000..54589c286d6f52a28a74942f44ce585e44121378 GIT binary patch literal 1143 zcwP(eW@h1H0D;s>B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvE z7OVQdGchnkure?R07Zi<^OD_j@{ez#4h1c8jPBxin{=fYn&tvn= z$~L0>vGOe06|hMwEZ42cdScAf2azk* ziPugLxb&d)OvGlkqiMQQA+xt;eYmN!>|p+8K3-n4*H;$YTodiAoWj|tx;kjj&fs(6 z+k0d7g-lWK|6KdGU~#;&KGT+R%ktmd4vVVrQ|4NBT4`Sz?PHX?WqoIfClyOa0@L>)Om#2!8 zy{`DF6h@hA9XnbjDLT2SZ^aIk7c06l9gl~c;jmiwsB3|+)-%?*Deo8T+8nD9w>iRu z@p&N6#rS_qVwAPz!=sKp=yXI2L zj4rtaMYGR|UoH*f-&ECc_3)Z|IWtztDF*M()4zYnConB5b(vXOmtpYk#8;c{IbPe5 z_g*~xnqS)6q-%L;ZxgS@<-J|Je$n^KE$f`ER<_9fnzwX|L;CmNS!<_wcU_8El5)+n z-tU#V*L(ArColib7k$(sw6OdE_pdoiQ}lLaJd%vM)^~N0;q01f|A%>xPfBwwXx%00BJi2xq2AYEN8@>c>FZa1Vhk+O|L|k|Kjr{$ zMkX!>+<6rhAmvv@&4k)&Or-Hjo@M5N-$3tC&GN02Lm# AZ2$lO literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/SyncTest.jar b/libjava/testsuite/libjava.lang/SyncTest.jar new file mode 100644 index 0000000000000000000000000000000000000000..3f30e7a0f64ccf54d7bd0553c4d957b3d313e157 GIT binary patch literal 1050 zcwP(eW@h1H0D+83B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwN z?tW|MF#&lj3=Dig(csFw4Bc<@HouXoeBOK_c>cj9Dnf>*X3HNrVs77PkxKUmIl`N0;*RC5fN>8dR7b~25u=(Ce3DvIu@*5sVEmhhss`9dY?Q1tpTLBj);U+6r z)yLuXmW`gG!8@EitCk)*tK@95Z$<`(o%Vb|$?qX|j+^ja-}q`e&)bj3M7nA_dU{Np zZ;QSUG*mwDq^n@6kEF@Hece*sNx!y57gl_{+0L}yqRn+N_cNXAdLN#*%_w|Pvs2AQ ziY>EFsMhz3X40!I?T41}DpvNck;ru0mH9>Bm7T1_y2(5he)1=$)h~RV^4qgNLr42; z*hS-M@xSUCHvE69-g4Z36-Uqfn!8^&u2}YV?!Pv~Q0MpS zjwGFYy!UeaBda$*f35nk-|qW=y8{Xjv!Xs#d{!2D8zw62?(xKQm7$-w>78{C^LY8c zt^BF7Y~ryul0~;BCmzaGJz$o>BH_&5_F|5Uxa;=-AAO^ex~@8%%Wcw2yzjBdRqikP z2h1moOk51OGZZR7%3i42&@&hUs54;CZU_^wXCee>WkAnT0p6@^AQ@&L+zO=qnL#`N Du$FvI literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Synch.jar b/libjava/testsuite/libjava.lang/Synch.jar new file mode 100644 index 0000000000000000000000000000000000000000..10b758009ffc8bfb93668b2c924bab7be61cd117 GIT binary patch literal 707 zcwP(eW@h1H0D-hhB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw3 zz8krG85tOU0x>sGG`KP^IYTcwC$YFVH}JIIAqNrL?XAeM_bNcVpW;-gRySPM?R?z&doc{7r&dc^Yhog|2QA8w5ypo-H~OV z>n?2QwC(xcimm&^OR~?F`Ijg)6{;~y&K3URwbivFw&nYwHonu2GHi;MCp7Mm`k8CE zM|JZ|COB@7%e|=(aq5YzN@9dY!daJ( z^Hs`idRpEm$V%&|%WT|r=)I2QwRM#NM;^C4zb<@3DdViVwCbB#Hy*C^PT>0%pf=zi0~QYQRuo?jGu@U#4a+nQl&C-x?qZnr%6t!d7@&LRsx z#p9BR^NV@e?E}0SnYb8mM?NY*N(!jj&=Ug!s54+s8VD1xM>qnsGN43%fHx}}NSGN2 LHv#G2j36EW=w91_ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/TLtest.jar b/libjava/testsuite/libjava.lang/TLtest.jar new file mode 100644 index 0000000000000000000000000000000000000000..de4ed66d9c176c5a6c36aea5932fb07577ae9a54 GIT binary patch literal 2204 zcwTi?c{Cg777wvaN+)(2YiO;p4$7mJ2q990p;L+w+tiYZ^_giqZ%7plf+}qh+p(2K z=^#ZTu}ssdU8-8NrYN-yp%jz8nfH`8@AsX1&iCDO@BQQ6-*b+&3cQUjsFx+ zygJhq;m6|aetZ=-Tfdy)3?QWQHu8;|;O4^=9!txFhoIchK}P7&@-lNBgTbfX8l{U( zS4|4F`9C4DSYQQ?$|42UpOKrDv4PTLC1GIvP|sqduEW^k@t*80-yMxty-$5&@k&ZT zywe2Ny!=OQbq%+f9v+;|=~_Z$y0&ydwWG(x+$gTKGUq!BBu!@x09WYQ1sJZx<7>LE z_4r%*E#&x4LuZ%g9#QGLTgM^V|C%hLg?(7b_ML#N`|MA}iod5`?ijFSx~fp&Kk-D~ zAJ$(19`2VGFDC-e?Nul*008={Uw?KhJo5sI*II%&xq30i+YtRg8-+q16RXdSNLR{i zbxG2(mk$f{!p7a}7!g#LupQg2oO{~p_uVmCaBLspHKA|kBi(=m8xZe%y&+FkwjaD<4;B8^x&` zF=e5SE#9+J$hmXyoVo%92ryHb^sq;;{3_&m9jYbtL`5o8zWK(MNFP;cF!M#=B&)p?-r zEpZFRk|0OXb4$1?S6v{*V!c&A^0d;f$lC=$lj1}nL;%+r;~f~sraOmi!-d#T-?S)FNu(gws4oJmvuxqpt;bXYr^ z285<7Xg}XmZ&IT>x^`C;R244O(>mrOFYj%0cO)-OKtt3Q_-CSXoFRb)cjcY^%;X* zqAJBxs4dmJ%aP4g37h^Z@Y~D^P-2_u%s${S5y$vmpjEgF;^toq)!ixjza$LLM57p1 zVB%!x&<{o`pP`hSHhk3%@7r~I&Iw_@l$33oDr)JAxRm1~{^T;vxqs=M zN@%Gt%bMQ|YnbByvGI;bpjhg(djsxN$*umCqMwcG@=m#$FFo85Fg_Qhi@}x(upUd% zbyAZjh}Xk;U$OD7o{}e$DiqZdHZ2PVKbW#T@48D>A!Yh;k74k{-vig6iqH|aCYd!G zWxQ~q!1uZAco0d1bN&Z%t0~K`{Q(2~dgBw>j{=%?-WGy6pSeIW?%fjizzfb6=3!@n zGz8v-?_y?;gP&nb&|RupI#ll6kBygkTu?l`Ai)0@$;0?UG7qO670m;v0sdY>4=Vh< zFdiToa9AdfW*(J@12pk`DHuodj;^o+pn?Cp(2iyw<=p{B`46+u1;sD$*)PC70o-U6 I!OyQh04ca%kpKVy literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/TestProxy.jar b/libjava/testsuite/libjava.lang/TestProxy.jar new file mode 100644 index 0000000000000000000000000000000000000000..706f086a4abda2722b697981265ba98c6adb3362 GIT binary patch literal 1410 zcwP(eW@h1H0Dh9o{_$S8t58O@celPARU+%^G!0+3+J2R`#|F!u3 ze7*jC#+*Zj6OvARcUg1K_2JE(jXcgTC(Qr!t>biJ_40a+nxhkH1y4BaP4T#WHn#0d zn1z7ar4!LJ9H%{;C+_jFtmck*VE=dbCZE1a1xc|twfS7vLjx7s^NO!KOk7wfTUPsf zkFvk>{M8Cm@^{GexTGv<*wbiv=mJB~iZb&r{VlgFJ0ceeWaZr-}pdEf8LsQ)cb4?NV>+8&|0sjc4nfI)uwyA5U=+m5qclhnGr zJv@Eig*dT!8OQuOxUPoYv47=iv-0qpw#O&L*EhH9dt_>UUWkWnwer%A5=kYsC)N^& zwK5zg)M#2=OqgKek$vG@#{A4!#d1e>E;pmq`kPNAi(QkyY`9ZZV0L`qjopiOYE9P* zJXhnKsvoOYI@iDA1M||iy*sCTmOQPw=YPkX=P{2iwz6%081PZ}$FymoPXd+)MlG2c zp|sX-bz5o_-`C>iqB=i0O`EHcw=*u~2{|?X6Z^EE5jA~ycR%B+2d0lMCI$v&#uCAuGzJ|%d;g&;#V&v0#dfGp) z_)g!&dU0ZDv~|#&+lw9+r79dTsLd~bGbg+I_MOzX^R91g6D? zTi-kp-`})(u_D{+FDuVQ*Y(b8lx#b~5WF||(?$J5E=-@|c7KK`^0v6cs~j%>B<4_1!mNt1UvlpNM6vLeqa@m5`f&e{2SllQ1Zx|!|y&G))h zZp!?39{MkumkB6)&DkSRdD-?7pDOpnxiv@M#C`a{>-}b@|5gq@r5P-I3453CXgqtb zfBn=$W@qFBycwCe7;qOer~s+ZLDhy{>>z+T1NK4)VFLD|1p!(aFbW!U&FJY40hTfm Wl?nsAS=m6!S%8ooXizE(hz9@*{1*lQ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/TestProxy.java b/libjava/testsuite/libjava.lang/TestProxy.java index ea2e1f04a93..08e16aa33c5 100644 --- a/libjava/testsuite/libjava.lang/TestProxy.java +++ b/libjava/testsuite/libjava.lang/TestProxy.java @@ -1,4 +1,6 @@ -import java.lang.reflect.*; +import java.lang.reflect.Proxy; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; import java.net.*; public class TestProxy diff --git a/libjava/testsuite/libjava.lang/Thread_Alive.jar b/libjava/testsuite/libjava.lang/Thread_Alive.jar new file mode 100644 index 0000000000000000000000000000000000000000..548b6a95fcb0ffadb7316cef2a962dffb0dc381e GIT binary patch literal 1098 zcwP(eW@h1H0D;^}B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDw zla0@gF)=XIvM?|R0YyVHfSOX`9dk0vQuUH^5{rv-gKq~3I||rN*14Gy>3GQ3K|vwI zsexk!hl_xq08a%ctLTwUW+x@Y&3CUn%l5Rp;#hlv=hU#1v*RC5kNEZ`s3kgR=De3L zFE4*y^8EaMd3(m5MBlc4$GbmLigo`d-n;O92T$k2XX~~tSLHdYqY{@|UU_b!U;@YW zJ^9+pR;Kcv6YzMo?A;loAB#8ovSl7TRm@sf;uMQODydxgY_FT0wQdGkJSf~$&&xtKEe;@zbli2a0T}zI0{g&*PX#)L{Y+|{$ zH!WALyrlMMhmdR0EXk9fI?l%0&65{x_3!?b_Tu8j*HI!zgxThQjht|1WkpwITN_ik z&Bf`ttDTOPx+JeW{kLF!8q2{Zg^Ie)1Jb5S6E+?(s95*5?I8E8hpL{|vksr%<)3t0 zG`M5KqNJ;}@5FtV*J)<1PI~@hlAhbTmw#INyN`@=|w&dwaQmd3&mCTAIA!jNqY_$tLNK+%sZ-w?!Wg{StD~ zUoFadtHM87<&S56y{`~WR#s={=$Z3p(P{Q@frlrxmhmmf>#UvhE$&E;=y|@*a;9Jp zp>mtdbRtRrmJR&)ApVS6dPXl|34YgxWV6sGU5wP?S4ExkUY5z!g5u zkMoo)eI1wP znYb8mXFgPbloe66p=U+}P-noNH4!FY&u|FP%788V1$eWvfn=G1a3_$iW(M&9*)^6b literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Thread_HoldsLock.jar b/libjava/testsuite/libjava.lang/Thread_HoldsLock.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c094f6b7feab0d27718a26d1f541692c9e9b9f9 GIT binary patch literal 1187 zcwP(eW@h1H0D=5UB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvk zd~B(@qw4o_EWh6~{(kQ0)BgDkQWdKd z6%96D=3RRC=MSw9R?ON3c9|Z6wj1nkm!ALj{dN9r_Dh{CL2~@8M$?o`S(j~-Isf(U zi8~LbA9^l!*S7V)@8RRTTMD) zxFvn}z5~3Un@y)(=yJM#KYx|duWtRmH|}{4_)T=ULXNGuUZ--n;6{JS^R6YEll=bX zN$prVWy#!iA-7KLSiG?4?V`nQ5<9w6*(?tmOsO+rVtsaYm8oZL+QzQmQtx8DFaNUY zNI8FidCf-SgA>+9OSJBC{41+3^wH|lJJYEhs~SslI8t{1zvaIz)39r zmB$_V1ed0Kq)aphdS=Kl#-l)PlLcAVNMJ9R|>@6jMn zzE?j*4G({*eB`=j!6%&tL}e0L?F+i~s-t literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Thread_Interrupt.jar b/libjava/testsuite/libjava.lang/Thread_Interrupt.jar new file mode 100644 index 0000000000000000000000000000000000000000..b52d436739933cb9b23bcb6e420b3042f32ff7ec GIT binary patch literal 3972 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 QfIoR)z|0{d{LgRw7r1t$iU0rr literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Thread_Join.jar b/libjava/testsuite/libjava.lang/Thread_Join.jar new file mode 100644 index 0000000000000000000000000000000000000000..4a1d2529c62563e31b5547c0c1c096a0a6fe13ed GIT binary patch literal 1890 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 A-v9sr literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Throw_1.jar b/libjava/testsuite/libjava.lang/Throw_1.jar new file mode 100644 index 0000000000000000000000000000000000000000..330562d501f5f763beddfe1e91a5864edad3611b GIT binary patch literal 756 zcwP(eW@h1H0D2zH+D3;;sI#fAg+wI$C

      xIO;xYsY_pX92oW?)?Y?2Kjc^L_Pu_AuQz(B13X$NS?{$;wte80^4YSCea;|7L2 z#T=4PR5sNnU(MHJx@tPnz0oVqW9c99-nXGyPdH92S(8^P;M&;oT5`sbEk~v}e3PHi zDS4)d^LgN@hao>N)jNBh;Xd2C+)Jk}`%8S}ffdyY?}zO! zD>10%j_+R(@u1YyW&W`a>7`R`&R*dD)p%8%=bo_w_gXpioqsbNZC|9!VV3{=j^9tn zyy>Fcx;B=2h3{wFqpP#;9m=s&m@8R- z7I_>ATGIX0Kfs%jiHiYuT0sR!DF;;>dfGt%bq4Gy31I^E^nn1a3}~q(z?+o~B*6@X LTY$6{6Nm=@RpR$x literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Throw_2.jar b/libjava/testsuite/libjava.lang/Throw_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..6cfb11fe5e7d03b0404fb20a2657474640f5c2a1 GIT binary patch literal 1011 zcwP(eW@h1H0D;y@B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSCp zhSIB*ObiTJEDQ|1K+%wlqWtoBBfaFD#Ny)C;8=fQM-f}*R^8KDTbC+m1h^z`CT;Mk9ZZ3d4fz0KSF=GVvW8d2W{k4O9;?(R>vxjgL()2qYp?#wKHcCY%~ z-p`M(Z-39A_A$hHa>KTt*S_D|Kkt%&V8`3Y_iK8RckZ6~{HX0tS&k0bI?KjumbbSy zS2m^@#|m`lR9XkQ8{gv1=-?`Ok{iCRb?Krn=4%%zdw%JvX1beZ75_bobJ+u(kADw{ zzsNaY&UC-5oYT!~+FP!Ynd{Fje%aJ^?sCfE17$|6%U=Do5_%EzvV{A~jGtC}o>=lp zZhQVIPr9nW*EzrWR&W3BMjgo=eRfkTJRY80#eDnp8sn@3H!f+VE|ysE*?ijDGs|N1 zRqb<5Zz`I@HN`0WxI&xB9RZJ+g4+jtc{V>uEqxLYcWIADtjOXuKbN$boGurO=gCcX z{}tG?QT?h-$qb3`UF}n+8WylmW?5Slx$DinAM+ho<({3lzVd8-*v=i<59E@VE*@Cj zWW|!kQ=+i!F=LvkP0otAbKEzBm?O_{ZkeuIA0O8LZ;`=uxBAa)Q5U3+CTBhUqRaK= z`poQwkJnVMne=74zxNu&@~CUaB84uP@40Y)n)bF^5?edx1%!NS=6$*+xVOt)+iAA) z>3Zq%+8EaB)1uuk@N2m=|G#!>q2npln00~G+UXBg|Ey^fS3dXX&-Cdkb*vwy-m3>^ zK8mt(bdpj0$r}FnZ@WkBp%dJx{ULAe*}N5=q5t^Ihi^9&)%XlupGaIjzT>}W|GBv6 zAJ4Zkv$0O@ee9X~_PEfpjZLBNuI@ToYx-2ui#=$~RfU_*H8F=%`jZ$kjf`hJpR+cJ z>%4_dbc(oz6kl3pb!6x9Q~3ejj7(e%xU&i>K*~6%+R(EO0;n@!&qxRpuxAehXk|dl UECJrEY#<3{Alw3^HJL#?0B1;h&Hw-a literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/Throw_3.jar b/libjava/testsuite/libjava.lang/Throw_3.jar new file mode 100644 index 0000000000000000000000000000000000000000..0aefbe04faa769e08d8b585382c0de57e80f5951 GIT binary patch literal 947 zcwP(eW@h1H0D){*RWk-8zzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2SX~* z^eabanp!e3Ftjo=Fz^CJLo$l;%j1ppl5-M^i)(|T{e=Ss{`uwajunsMV%^BgRF+QI(x|~-bxZE_p}2yZRh6I0e{k1)WR>??#A$y(K6Os+#wAxP8iU8vBpqRT*uXXB>CZm-*`xVImBy-Y#8TiWdKlCpq(i&j^yOWf}DYaUbE z3jHLlM-s~S%=-=tT;tpJMVIxlhu4gR8GE_bZt*R?ZkXf0W4651qa(&L(MMI5Nw`HF zT3xlLFs8V&Ip}=muY^nX%Y1_)4t?`7dc>8dpsRRv!ms}2U6N0&jeFa6R-T%0<e(4*Tw=WI@Xg{A z=}QE-PkM+i5j|wOV*0xI0t*}#d|`fb)Y9#g<+Xz^{)y}4>6cGfv4(~FXuzXiB`ca= z^5xaF{o>s&ypu2NTutiT@D8tI8pkp^t2#HuY6`9rSf%86P4mcvWoIwH-0C)u_0|%l zg*@L+ED!f->*Bny_Q#d)ol*a8>Bqf{3OX`VP32yHq{5x|jZ=14O!C_=$9G~vVdsSQ zCF~zwmGI25BPU@%tDdD4PLr?k$pw56jBOpw`p1cvDl>sfW2Y9oxfh3rLa0`%r I$pqp70FGKywg3PC literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anfi.jar b/libjava/testsuite/libjava.lang/anfi.jar new file mode 100644 index 0000000000000000000000000000000000000000..81225e4d2e5031139ada2f448fd691b2fe443a9c GIT binary patch literal 1822 zcwP(eW@h1H0D-7-B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSC_ zg3t}@ObiT5nHd;(fTD?cX_+d9ddWG7#l^KjvH3!Q0=9>*ANscK=vL9SN4IsAmfvRj z8oknP%SD#vZwuRw9B0)lnO(a5X6&!sCL6D0JmUZ0F8Q2k8P|~sscOdQ=Vs2dwy&@K z&6psrZ=%8>dHnsZrLnx4PXCTr7HiFW{9UVkt?Ufgj+=IFxL z-?PpL%I^+bdCJduW1&jzvkKMe4yAnWcJ7njud-&=;x8tyce6Gfa=b9nQeYj&lLgxE zR~?XP=~J1;`mC^bw&B`kZLeDnshq64|JBOq%EqQpUi1Gm(^>>H9*H?VzW3|Xg!Y>z z(vyX+uX*{dL}bIdFXkMlpOxIpN-Jznj}1Stn`!or<=?8RwEprXriUF3$++`3;B=74 zwp-zU{~yS0l%2wP(?UX()B9Nu;}xydOj4U#j<&r%UH-RUS8`u@)I60ZN|OII&wtgc z{j2e!J@@A=*`_O}r-~XoUa5_5W1lDNYLs*=yzVx)(z;6R$B!2*ekf_b>=5^r4af7Z z@iHAc)nogirY6QTWamMZ`pkdruY^xLzbd%F^a^J|Nb0kV2UfU#yQgr}{=l~F=O%9N zes1uFTj%Eez#kj_ikjLN?;8@I?GmrC z+}^5q`C7csH*pE$6Gk})Lt5B1`aQdHLQT$^PW2bQU>R0_!mQD~!bUH&@IXT8hJV2} z|9MdpOpDutb*#Vy;{i-CT+jpqNiMk)vq8zF?LPCA)agr?axc|wN{W8_Zjr*Z=%$a} zlaHyn^qTn2sw-T`erMMksWL;uf0|#JmzaHI|FO8o_(F%cUy+{i%*toB#`bk}zxft4 zs&geVaUOralS_!{X7Tgp;O{c~Ed5mT~!p<=Vn;xJaP zwC=fQT{~l}CM8aBic5I8^UEHGW(P-isa;*XBBD9}zBYb4ZZL^i_IiMl@4=3Lo6MAV zJN^|-RBrN4zu@!ON{cHmKxF0RLg8qpta!K0kC-Yi|B9c~CVMBWz*}KE!>VNQWeuO^ z#m@6zD!%2gmES?J3;ZXlp6{8Oe)vGTVR^}&r#Yr`vORcYrW>$+E-_rLxS`JFuj1}Y zU*{OC+4C^&-L)*!cau*YXO?B__sM2ooER>*!$x=N;jA+%s_pyq+kel|a}Lo^<%{FI zWs0u{RslJ!%)S3%>L@H)l(xQuxB#DaJ~*oo6~@b$vH{`Z>QvB=@oTZ`0P} zFSg|>PycJOth4rL)mNs}M#F8Z+e#a=cJ=Ig{I17yq{x$seY{Ao&&v++o^PHiy)JDa+&Ar0Myxhn*xBDYEYGQfWeP{a} zAkT~uQp9DJq(RflguQu(3`E@a&t`EtWWU9^-D^YZ(vF=Steu<(8IsC_)Qz~@ykzgK zesygj|AqEdRkCbtNhj}beY&`K?eEXOzw#!uE#z;1pf&l|2adgqcXVXxm6+W<<~~!R zNql;ym&BTUf9qh4xqF4AKC6UB&1BVHbh7c`)1SU<3MSDj7W%zdH+9z2^dH3t zHI-+sV>*=l<$ji_V_CA?qLX{CJ$x4<))}+%lxE4QIGs>-^YX;cC;v70>q&j6G(NW7 zFno8`m(CB1nWE&1b-#ockPUo2&L{xJl2Gcs{8;4bG;0aB@tstvu| zM*wvO?6m;G1ngxy0<m4Hg0 Hv4VI2hM~(u literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anon.jar b/libjava/testsuite/libjava.lang/anon.jar new file mode 100644 index 0000000000000000000000000000000000000000..295e1647a6e84aeafed35cff10ebefc320540aa1 GIT binary patch literal 2564 zcwTi@2{hDe8y}-#Ok^3m!HhJGeTE{UEQ9Qmy=g%Vk#%e#YsnH9rHr|X)D2}cMPn~n z#&k!RBr$~yb&D*?MV7wlyZ3&UbHCsJJmR`wQJxGmS}G=jX;x$B=MzWJJ+iM^GDxs$V|orRrOu)i-MJVL{jKn(W} z2{wRZG|><T7HGd3!@3|3nA>H#)M(^^gY-0I>_ducvS1W zNV?E!Jp_bJBZp3buJQd^L#k^x+`KX{-}$8IUHw{xI29;EE6B5WeEUl!OUqQh^T_b``9b4TvE<_3hh?!m zJdL;WiyoH+i!hQtNClu5cpb8wC43 zVo>3AKw^HFWO{}|)CfC9XXXX_!Ay<=z_J|A0FR%Sxc~X+!e9ylcW$`2G|;QRC&&(Pjeg zF@4c9`H-K>M;Rp_R-<&-%Ey%10}H*Eg0eU5KV0xB{=DCCR22#JSteCd*=9;ZfAXr0v|aO9^z2EQuJ}+?Z?I9;->)dS;uEd#=Q|I zEKP85;+X{Pd7-|Fj~;Hq6!KoQd-%a!PfL~2HNFRFwVEPm$CdG*21Ruto{NzvaD_k*OwKZH++bEYkDQ)^Yz+6G&?96 zBN;k;CqzAf)KQmden(vTM+TK06zA$>DJ$d3i7Icy76&&j>uIp(qMEN0bT50UBObsl zwP` z&8ZBBs1#^lL_vN)_YXRaH9LD@3YgC;C$*RO&gxZ_+N`w_pS?NCrCHg^7H?oL`+fr~2o8>I9Q;pz`wLE6Nk z_$Ub+2+bijk6OXLW~_s@mSp2u{N00GeQ4V(*5|g0wb?B#i1XZ<&oiL4Qp4*y1O|a< z=%s2MFcq+e;sq5a=-AU^t-`anv-~ny?HxCU^>gB;zs*ms@wUhWND_g*<)>Xd+!;HU zuFk3iI+*Pb7!gDgNq96U3l%Sd66DldgRliRBVc^o$-a$Ft}gzdrwu+6!z{77oR7re$EtE ztPc)^hH#bxQ4f?T(GgP_2}wx=Kf-d*olL4Pwk? zAE&rEznGgp9G3d+l&-%b|1sIcPDIcW-_|6bWX&s)xVxsm+p>Rz?_U`Mb|9`I7icM3- zR=4eQ#s>BR{(b7$i16>T#0F9UTPKU{p4*$>26h3rx5Dkd+jV*a#k`wUd%NHE$Fu=$ jzO7GdyXW=_*+2pRrh38IfcSnM@^e2D_b0C4pS%A6{ul1r literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anon2.jar b/libjava/testsuite/libjava.lang/anon2.jar new file mode 100644 index 0000000000000000000000000000000000000000..3906ff54076fd2f738803b5a5b4573c81cf0b908 GIT binary patch literal 2361 zcwTjtc{tnY7RR&jt5Fptf~c`JQDV(SEm2FPm6X`3XiH;>Ml?*K(W7uBuhN5)n z*q2DDi$;YqN+-6OD#q68X1itR(B7NQ+K>cg*=aaYX&+c7@`R<>OU&ubV!)=_`Wz$Qi^pv z7Oi83l9f}ij)es^yCakIUoDI-JT=GO@mo*@jqDeuQiM454%!cu_5odcclcakqWpnp z0bQN$2SRvP-=l}59fKb(PO}oOr-yv1&43!b|HpzNuWHYCP$?230)9Bqm3y+4s%^n9 z(9l6JyRaF*Kb#n@>jcBXT5MaDBzLDYCCcOs91|)dOy%>G*R2$HV?R>3&gpk^%$Nx2 zkHyst!}LHjY&^a5$svZ=Y!YoV5hvQ8J#x6G{u{D8x$E;2%B>U_gS(_=_%}TFH#e% z^q4t(Y-7(m#tJzg-?M=50Z~7YfSe=_jUCOnzdn00Jg>RT@vREeKF#foO?)mm>Fxcn zttgmYzQtS-iVGqXuuT+N=l+Co+O^MF&K8cdCpDZPXlEec;)7*PJKZMZuOR)9PB|U{ zZqs!nr6)OaH=gIEE#EoY7mKo91IJ`c_KcJmS@(=KuI8VgZ;XuD*!WGQRbAQ&BQfZI zdf9co2KT`Q;e|OqlA0Z&tM)rY{`{?(IW%Ovpo=YD*2rz~yUG;8e(hiGDJ`>|NNCs4 zf#_bsmmeMY>00-AJG#`rZ!OYwpM=WN03Q8YcB`9VFe-D}D{IkZ#nq1FFR$zX#+uc> zoV;c8$v*nq$bPRBOMy3I2tQ>yFB5c6D@^)&gug{~9sWgOuZPte&ssrpU2Lkb^TgPyOP7bu16yCFV54y0bWf#(IiTCDtn1vcwZ=&75qv>wq^F|9X>w>`h7=zf+fxF~P!kzpAq_C2&Lyg&#J!4kxT+};792e8V ziH~mc>r4;Js*QQ6G{rxAjcigbVP=?JJ$OWjT79=MLyXPs-rTphUDmt z+(5dmscvoQfy~#s1ELd5G_|BeUusyGKZW^cPg|~p4O;^MU=P@`0TcnK=WT2hwQH~e z1Oebwv~%&Fa@(6DF8sTwVsJ*bfagT@rCw9fgw`cc6*ZxWtQew>0u&2H!=SoQWlbob zO!Y1EqcPk~zKGS&T62r#*l!VsDM^w?1bs>QvlA!-@;9K>Too`LsZs?mrgZ|#$H!J+T zX>TeXw9Ue|r*1cyP02w1$8xqOZy#ZsT7YgDXxkIFH_E2kfURxgLJ|kQ+ykN&D2nFq H_;UIW3fqrt literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anon3.jar b/libjava/testsuite/libjava.lang/anon3.jar new file mode 100644 index 0000000000000000000000000000000000000000..83bce16f8302f84b3fb579a7f922e45be692e76d GIT binary patch literal 1540 zcwP(eW@h1H0D;(YB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWv# zGyQY1j0_BafS4C3nwXcLXRKnVmz%d`*HQ186G|{KN#z#eDurpDKXspcIM|D%jd_xmuIlDxE7dj!B((y zvzvSSsf6=;)YpqvC0*L}HN9ras|ylS6lxPR`WEfd z(3kL0KR(NuZL4^1B_~fPx9SWv5uIp_#cu2TiZ$}XbY2*A7;>=epK1TgX5aTe6O1J| z{j2R4uDU$E?AQ}=MN8eJd#;}=j;v=oX}3`yHP|qO^&LdA| zEx(+xCV9SADie3Rg_86A?v)cR%LLrjyR~JO)AA0czq+>sHss!H+$Um{8d0*_C0{qm z!|$qXG^hw z-3`Ao|9_w^*Ud$d2h7ScW?4$Em?#jS`Rai*YCM!SZk=%n7zY=b7#O%=@c@a1+`!v; zmmLIbXD=yyW3^Xhi*KV7SF4q#Mau`VBi<@YJj4{1I<2ZW$m#t=D^j_-`A9q?|H=hI z@(0`%&#lwa3(YI;lfd2cGkwJ5ldG+U!by~P^!MidUJ%Ywf^zt zMT=NZ`3p~dkpV-IDSQ0!%#?=~=UC<}5LNwE zd;g#m^X*3qUN7w8WxgZwq3J~0?`dJDW2yyqJWCec*PUx3^XAX;j4ztki{2%RU%#mm z8*nEq#a=!0dFV6^+em2@a zamjx#n7_$>#ucByc!MoQ&kGM_SXT)DUF^L%>y)8Z2DeF{CFkR3DPqqnKd+tp(SXPK z^2bKSI*+>tLo1B;XWvnlH{BeaKSgg-XU)7BTdSsNnpiN_ub6U%ZCUG?iz>@FK2OQ` zquV2U?^^}eKngR zeRVNBN4EAbZ=>qB|Jx!r&oW!N+$~=HuwoN;O@GGWDD^GZq8`1FdGv(mq0rpZEY>R) zICjN4?dsvqx%W6zEOe{$^*UzMs26Lom7ERa?S+;DnI&nEh`04~Jw%Zd`dX9caoRF65l01EcopXxJzy~{b(}t=FFRw_4D)@*mGEz*zVn)?Qmj) z>=Wl{i?761?&Djvl_xMe&G$rB+Zv;)O+mNa`Zhnh!qAoywCz{rp*?z1LA&-J`rK6X z^5~iGVRL^43QoNB;_|!D%nuAp_gq4pw583q(hj1z5GIeRtB`v3|%XFmO}tuCX@__t`R-L5P*XPDf$Au SS=m5>tU#y&wC5BHhz9^~zAh60 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anon4.jar b/libjava/testsuite/libjava.lang/anon4.jar new file mode 100644 index 0000000000000000000000000000000000000000..5362e8d59deef08075fbb29d43f70392cabeac2f GIT binary patch literal 1631 zcwP(eW@h1H0D;7EB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWun z##xW67#SG!m>3v%K{n>)=b5M&>LuqS78l1(IPG`HL8A41f%Y`6j_<#D1+$bU?YO){ zan^(ddM0ahQ(L6wsBQTXlILS0C2rTipK22vxVU>}=K1=4|G)kF_={~pTQ0L9^sIYu8KQ}k{t@WyC+x+_;<|Y$_I;tOTb-47kT}woOw=v|#=cY$;FVkA&1FXJG z5trkf@pNKXCa21)I`=+Dh4e(8Wt|pkIw=7O*NT=dRSp*8S@JTY%4;5P{_UcIms@@Z zDafAK@GsOPFfSxZ?b*hRgvPxtqB=T>GtG{drV4ER96j52*=~D_>_7wkKMxN~RiEdV z=XNaCc0HcQx1#CEdU&6LgCer7DnUAs)`t=iQk znXl82*ta?*1S+~}{41R7cX(P#c$s}P&Hls1ZZKLNcX|ZV&&L@eQ^RD^(eDinBuBSH+S>*+)%(zf= z^WyQi3su5Zb$7a*U-nsBh7=w@z?Ofpv32(f&XhKzd;Ds3YqDR>+QEPOz%qxITwL6x zCK(weV6W7 z+j09#ZhUL_*XLKZq%UmZvEAL=*t6)?x2M;W%Fo0ZaI$|o5PUxORZZ|m&WPCi(;x1e zG)-`RtLr}lYQm{dpTaO3$lD7oVlqq8Aj!to?;ux`gUFoHtEQ)4-I9Ny%K3{~ z@xv9x5BpB4b-i&~R~yrAx1hi4UfzYw8I{JLpZ%@e#~`yokVB#(Kc7kQaM=X@$iATR zr$4P$Tr+Z6JJVEgwdAH#FHU;pN?V@m3TBp=Q}Lx5x!r05IqW@Q5jvI3zB K(21(7ARYi}FKB)M literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.jar b/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.jar new file mode 100644 index 0000000000000000000000000000000000000000..d9c42028a9d28ca75e6a897ba71562d777833fd8 GIT binary patch literal 1962 zcwP(eW@h1H0D+8hB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwB zvzga$GBPlf0I?)cG%+tfFFv^>zbHPlBrQI%C|$)+FF7Z%xH#4Cpx0psf!fQ*T#~nJ zyV|7gXzRk7y;m!)$w{$lWyME zT60jnBxvc=!$pQuzXkeudoHkCC~N+xAZeP}^zu~;*|qKG?(Z^p>^K(XJ$uTcRVhc? zwp;1@E-fk4f4y@i>kGkM+Q$XUHXg4ObILU9pMUvSZUk2>kNVc9#pk-Y3&c#;A3fSw z$uA-M>7K#Amp9q3-Ipwkdbco{Kf=?-T=4J9?{k}8$G@_E)bV!voWEvP=Ne@Azic>s z*IE2;JZktcO4t`l1H-Njh{dsmA2js*eZ3Dmh|KY|zjS1aZ**@}fS^baYxa3jea3|X zUjj5c+BbA&-<*`E;Q2Rx9+TJ~#(x?gRXJ=+`19}Go?B`B`}6Owya_$ZvQp0dt6f+F z=PhYGbDw#hUda{7H>&?1ES|CY=nKu5E{*hzd!DMFtJ`K-&oRET_lfU}6$dw5aG1RC zwYRF=_0<7O&fD~`28P9Gu^q4dy8U%prPkFXqdBi%7-ZbL;UeAECwDkO{WR;|TM|?F zeor~@b@}8=x96z7HWA|AR8m+LV!l+m*)-H^N!*#uJ}DOLs_vC0uQUup=Pna=a=WoZ z>%y-kZP$Wx!=@iM*uegJewBAn?}d8{{svuWH{YpR zqPFpkmeYTJ)bQ;6z;?zsIrL4C z=4Ih(x#eSbqE5y4#{MtqS{s;LndS<19lw=P?R4V%w|tJ)z?#)DPXa$G1So|ZzqO+K z>7DSCTfZo~7Q7SA&5;aU!+E9d?K~U3HM6Q$EI!Enc&Vz%@ta%weuuxjaYW7QT)V0X z=hTZ2Rur!jOIzxn<5T8qOA4{0X$=t5ctU>dw}kLgCLJh`tjxXX!6CWDdS`%6#kT z#hOud$Fgewvaa3#h3olUpM`%}QNuAve_QZ1Anz{&G#rf};VA3xo6Y3NQyZCnx2){7 z`_y^WSGcBri~6X<(R8EvQR&Rs2)ejS|qV?Hs@UCB&*m|H-oUH# zXX)E{bJhNxaN_J<;-1{MvLwi&n`-{)II{m0vf75isx(P4kX9VoXUC7}b@~(sHsjs=z zarb|Z9qyUcZ(T1d=rmVX>dE92tp?^5(N9+{x%8{yk9FLN!!v%zy2Q2pStz$Dbk_UK z-_vhglZ#pOMXq@5tGwLwrcbVJS1ac4`}uS3RnELPjnG`fzh=R)-ldG)v^@UyW#+W>H0i$If~9_Y+%|VNorx8E zJLyU4@wt8*KJu5kF1RXL8vDuj_|>w~eObxRY6YvL-Y?>5kFNLq-X%HV;4@&dVr1fC xz@7e30a9v2)rOuP5kQ>*d+J1(fIZD2Kq~`A3JmaOWdlhu1K~CxUB?9C0RSHpEK>jg literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anonarray2.jar b/libjava/testsuite/libjava.lang/anonarray2.jar new file mode 100644 index 0000000000000000000000000000000000000000..608a08174d6ed97222a331190f9ecb14af2a4151 GIT binary patch literal 921 zcwP(eW@h1H0DC!ZfTD?c`FV*&MTwP0ddWG7#l^WnvH3!dBDRN_taHLM9iv3o{J5&O zVyRA;OU7z5L&MA~DLkAnyS-y)=O$c#kaX$0TYbBK?FUc!3o}mee~|y7{D=G1-YuL* zH_X0cT>Nfl`MJ9{=hyG!XPmNesj^anMco7Iz4M9_UUzVvd1w88PSEj>-@VS?`u#3X zLmkzX0=vN zkSnb#UeW$?lT=`j{NxEazg>P!^4eJunk|zU8Et>)j`$qSw6}9?9ex=o6>X8L`}2GD z4Msf~u8F#rzFpt(`q7I1CHvU+8lMO_6Z~KGk=K{$Difq7ldh^ix^cMu2EWcWldhlB zrtMl4b@586>&KReq(eckq`OMqw0sj=9_E)BK6ArVDZYZ|^@UT5w+2755`OKKSvKX^ zZ5jTFP9-AT9*aHi|F`W`{4ik$humN00B=SnE(YAG85JO*8L+2ygbCPF aFaoqPV5a8)Z&o&t95WDZ2hwMlKs*4dx<)+! literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/anonarray3.jar b/libjava/testsuite/libjava.lang/anonarray3.jar new file mode 100644 index 0000000000000000000000000000000000000000..b24906fa8dc34b1d16410fd57ece40f128d418fb GIT binary patch literal 704 zcwP(eW@h1H0D+WpB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvq zo_F#c7#SF@0I>j2G%+tfFR`d7vC>#CIVZ8WI5)u8+sRSH_Hnh9<-RLMzc-vISgJQA zBXbKUlcSMAOTp!g$u=L)9(gVKWBn>uR~P#Q@}hSg9lO#BpWi!d`F!5Y_3yv?Gqh_I z9+7Cd;&$3#%4TK0>5A6V_%|6&th(}o=UA46p-NxvTX%IHzooa53;fUa3KdNFBH-Sn zc=_8_tNCoqqH(7Vx(I%}Cec>0H1zFu4*`#OK*tPwY z5AbGW;$pxZ>8JoH37~32PXq{{&VW5hAWXm>(FoAWfEn!p-mGjOIc6Z-4x~Rbf_MPO C|J(`y literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/assign.jar b/libjava/testsuite/libjava.lang/assign.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b9896c7e5caeffe7699d95b6d365dc2f229b0e0 GIT binary patch literal 1261 zcwP(eW@h1H0D+QnB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvk z>o;E83*>zSVnHBIEH2JW&r?ZCEKb!+&H?gt{SNXS3=o);o4In4-2ul(4a|k&;+-x^ zG9ACQr7L~+s^$LFSMO}*{}7lIT{ijVnR97r_vb(7J|H41F1B#tCZGAf_92qHR|qtD z+`Xa__RQvHo1lDglksJ@=fzF75^@|`3MHW3hJ4+$U$U|?o#al%>|3Z z`PJkcdXF@#_lOG#PhQn7r8j3=iSx7rleQfA|0yMDk-7dqjmKLAZXQ1KdxrV@x98s< z7jKZB<6*%x@05}8Mxk{M$*ZodG7m1hRNc9}YER1Va}k^Oh-;MYa%L>w;87x~8d5Xm zAt%eijlU{Q`%8bVdNgxc%DNuWjB>Y!=k%hM9rOEjccIH%=f#0LBCF+A`+QfGV)~k^ zdU0jsYnKI5x?wLP>}TBBy6t7$^Jz@~7H_qZJri+d=8=o_`#(J9m7Wx>Kc`XN;h&6~ z%^Z!Hb0@Lxtohit*PQK+*Ox9O`%bApYrjmZ%)9tyPyQS0h2J|LyxdeG`u12aFHgGe1oA#X6C^arq@)&QmZhe^QjIm& zAz-TMRXcy=hjl}1!a}j8y*F4`9CJi|i*G(5T$h2?9zyI09 zGo-!Hv}oCO&Zv0H;g;awf<*!9Cfd5!B!&0v-1uyp!WFm2whQHAh4})Ss3{*^CwlZEzz!ztksaX8$_A2W1ws>`>5G{` FJOCrptvmn# literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/assign2.jar b/libjava/testsuite/libjava.lang/assign2.jar new file mode 100644 index 0000000000000000000000000000000000000000..8f1e1164b35161d2864d1d862153c1a2b9d00a91 GIT binary patch literal 801 zcwP(eW@h1H0Dw<85tP1GBGgl0!0&xi!;;njP#OofUMlW(|N*<0&6~Io6YWh?0zr7Nl30tDY13+ zVh;^3B^B-oVy(`8+0|R5PT$*jE!$f*NG0Km6OygkGkEGPCbGXL;lBQEY6hmt$p`K7+DZ|i(j zz2X7qY!l^gdw#_S%>Ko`O7%*Jd9Jh}JAL+wKDl4DGl3hR&(`8rhsXHAgweosz*ZIuD<^r1Wk*P|j9)iz&C$P&+)? zruA=qfHxx(7X$8ug$j_88LBq)goXg>4A_$$!UXJz2?1Ie(2`bwH!B-Rf*A<60O@ch G5Dx%t*AVvr literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/bclink.jar b/libjava/testsuite/libjava.lang/bclink.jar new file mode 100644 index 0000000000000000000000000000000000000000..86709d63d2eccff5edadf11f53dd4129ebf428ea GIT binary patch literal 640 zcwP(eW@h1H0D-b{B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWv2 zO##&$j6j=!mVMGdu!G1P-^(h#tFDHz@;BW};%}R$-PAF! zi9=JV;?@z>Sl>;XJWcmM_5ARF{YT&8#d?58Grs(TeEL3^NhsXZ3h#Mda8A^ zORF88cPTUAd1SyRs}8^XbvyKqR?h7>?zO6E%kfPUu5vn`x8IXyaQ@2N0)qsDX_s92 z?+MiMNG_|ZI6uE)!bc_EMP8?s=C<$O>^${@*UQSuMqH_idf}BiUz(23TySTO_pEJ? z@Bi!1lzI1kx|eiv+sXc{jaOdn^e$B1dZ}~A1m2Ikbo-@L`5dGdSh9uIMzol1tbJuv zHTUI>#PtR7E7BsAx9qZGi#Xm9BYni@RqnQZcf;JjuRo|fXG`+7eGCEKj7(e%xFZe~ sAVnjpHuQ)@0CfiJ(TXqudt@O%D+6lO1$eWvfy9}Ca5IqJ&IsZG03s8?EdT%j literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/bytearray.jar b/libjava/testsuite/libjava.lang/bytearray.jar new file mode 100644 index 0000000000000000000000000000000000000000..550ae7b85e0fe9a5b733aa66591fdefef1dd9a12 GIT binary patch literal 829 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 kRt9VZ3c7yuSpWb4 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/emptystring.jar b/libjava/testsuite/libjava.lang/emptystring.jar new file mode 100644 index 0000000000000000000000000000000000000000..6303487c29ec2c5cd778d1b675240ca7dc4410d2 GIT binary patch literal 883 zcwP(eW@h1H00HI-B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWu{ z`B!d#WMp8N!py)R2oz1tEhwohE-A{)OV>-zNh~fd4Z7_o94HbyduEv)PY}0m*CH{I znNSxDNd+tr` zwYco~x_`gEF(0s!l2YTCeCWNKeE*_((r>Z@I9r*Y-&k4cw;}#^mVC$FjtTY8*z&&2 zS#aa3Y|}2uvKCI(wpN)>EiaczcU<3iUu1+24jFR>g{AufpRO3iGe>p(y%u>#{BkQgU+6uRL zi|HlLb6B%9W&f&q;>nM+)@4RWOgHL@+|eh^^7h8Zq>W$aZOAddyf-stnNDJ0S(@jh zw5$5@cQ$S4xy@qBT;H$IkKdg))_rtBn9Q{L>BnLYa=ceI!4 zE!U2fGk4iq?jFRGDHm1Ia{SE0lHE!#1j05inP04W_SwRmg4y;0XTl`De>>tGzRvOC z{HIZq141gaxSlNk(7U~T?Xi098lm|+r!s!guX*T`^VwPb-~p92PhP6GdA@%b?jxGM zZ}FEf%cFNR*YO0re4Hjm*0`{bd0IdvI5^8`qD;wByAlw0@mokBP08(@|`~Uy| literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err1.jar b/libjava/testsuite/libjava.lang/err1.jar new file mode 100644 index 0000000000000000000000000000000000000000..11917d98b1e206f21fd62b6cf92cc1f4848f5274 GIT binary patch literal 1114 zcwP(eW@h1H00Eu~B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDA z+PD zT)m!8u;c|})rySCeAd?1XWqQ~{kev5Mq+}K@`Xz+jvqe1kZN@enRmE$&gms;Gd!GX(I$s*#D6!=0H z3++5t*Q`2qmT&!YgC|qY?H3St|KD@HaQh731zWphZ4{X7_a5H4Rc-pk+{H|6Ic^76 z9pB9MpBvS8X=aXdE;BMP++$*30Ewm+6&XT2SQ-@TE$t{`Yus0jdQv$d43MsQseZc`R$E=e2O{G{3Un4 z-`3h@5F(r0A#^Nzn{r=sUU0?ywQ24KOR{hBDQ25x`M-U&FWp-F>YtTOERAKRM;5M< zQ7ciIsHCB5UQqL}@S}$-+hndy^^&XV_kMB>KkmIJ$vE%8JtJqv+q$)n-q~eytd8zY zoF!oOb48-qXRc=)D+LW?*H28oInUN)Qmv_%Jiw#fbuKdKA;~`S?;GkG*dF@Qh!=?YFd$xrh4l zUo(F8x%%aAESMG}m5|!;;;_%U?;9_=w<`K41?#X&$f#Q^Gw3x5n{bqIKi8q#?B{QP z5AbGW;$py^zfb{EZbQ|Ep5G8aodJ99LzsX)Pa!}n13ZVJYeG+|2$0N(oNxoYS=m6M NEI{}SNXIdQcmV2fi46b% literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err10.jar b/libjava/testsuite/libjava.lang/err10.jar new file mode 100644 index 0000000000000000000000000000000000000000..05d8f96fcd23fc1a366138973dc7a78b1938303d GIT binary patch literal 819 zcwP(eW@h1H00EW?B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvH zpZxf}j0_B0nHU(jfugBJMTQ1?$vKI|#ic>9-qL{rwv*TUZd={CI`FmI>vHpLhRfKr z)qX5kAkxew=-Bk&SWJrQP2StS3l)BZ*L;qYSJL>x{$u`?bG=Plj>XQfu6{npxP9i{ z`aOS{724-CF(~TT=x<-3;NmeSYX6#?yG4GRtgi+az7bY(y}j{osM7_X_rgxE^L$ru zC@oX$;ZTg*B)jo$R!Hmi^w8H$ioB=GIGWRze$fj5W_#OGbIJGS=l=fvhDRo%W5qvgt4Fx;a({b|`sryvbQ9ambzZaLYeE172kV4zJ+2 zt2YBKy?N$-P$Tih|3guy*IjQBKdLTv|6a_>n$u7BKc6l>{gZe5%rjZ8u3W-JOl@bD znfN5PrKg(CKD1IW=vn`l*=hQ-a{e1P@~Il?b{4nzm}kG|@^}``D|tqE(Z1g?Dm*jt zHCdaY%A)UWys_bF-j#Ffo~!Z*KQMH*V?0+eQ%3Zk)YHj7c+THds5;7d*}~0gx?!EY zLv^E^;*k`E`4t*c3pX!X_&sL9cd5O<9Hg74OFaIB+xxq|>D1cl=sq zbLdvWRfVbu({qN6iT`-TCZ@P-OD=c_Ohb%JTnxAq8!A9bdZ^ma6CVPoGhk1O2ota; aFa&62KuK-^-mGjOVP+uQ1f;W>Ks*2>t`9i? literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err11.jar b/libjava/testsuite/libjava.lang/err11.jar new file mode 100644 index 0000000000000000000000000000000000000000..a818007ac25b3d6581ecf6a0dcb04ace6d34bd05 GIT binary patch literal 744 zcwP(eW@h1H00FiNB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDo ztemVOMg|6ECI$v>plE7Qk)fepa!z7#ac+RG_hAQt+S^-x8r@nuD=gafMzHACFA5yG zN+NqA)&@j&RC&JE()3j_6y5Wi`w#m(mi(#!fsgDzl>cbHGT~C%VUV9T{d?NIH@A;} z)^3n`X1YYe$fzsJlsA*@Ub+6AR|k0gR=>@Q|CYqI^&xBAo`VZQ#8{noNy>Q(bMbIX zuHd;jP5i{&h4-gk+;>~nW6_Uw;s#H&+t=PNn``l@>GH2d1_q4l6o02jJpW`fZC|U5 zT4sR7lAYhS-{4+dy`;xeKX(7R#=_ht>FjP%9J87ntx|Bp;G zuzqOp>ZES|liNQ35=&i@E1u9im zMkX!>+$jVVAf*>nZRjZm0n{0=ryqm~*i!`pv@)QikpOR2Hjpqg5N-m}3QQm#00TPa A-T(jq literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err12.jar b/libjava/testsuite/libjava.lang/err12.jar new file mode 100644 index 0000000000000000000000000000000000000000..ec9f19bf2391a019f714d4fc8be2eabd8547dfa8 GIT binary patch literal 862 zcwP(eW@h1H00H(2B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWvh zNyFJM7#SGYm>C$jfugBJMTSOt$vKI|#ic>M{=$JGw%g;4W!ty;Wonm9;AdT)p}BS% ztAbRggc9RqDWRZUGcJi6Et#8nY~{uK56&IgYkhr}MyHxy><8{YlK+?<*S4~>80lAj zKezY$oa%eK-#>Z(eLlmfh#&zam)7^wwYij9u1x%UO>b-N_YGSv+X%5UDsFqV!*7Ed zM|5kfQ_9_JPTs^Lr7nWXD%)kkbG}>oKHR@;cJ4t{+1rJjk*oKW`h|1X9Jh_peB)L( z(_gahe*Ghlg8>Df_ix+!J)h~~#fir>wtuNwqfqSixMFGe89{@|8?3dpHnm(h=gqs_ zU|mAb1i7GP%KVcTl%%dWyUOUAL7-Ni@y&1CtidgJo;Ic1F25_ZuS?SDQEcVTeIaYZ z#H5ctii$m~^6u1ZgQe!nAIs_NGv0k$G_N}$YIdvk-*Yd1uzY68@_4|^sUy^N_)4s| z!bDZsZVllp2dsUC+}5rZ$om%1wLV6~|3X&Wd3yorzB#kaD%iP&x-uuo2-PcotGKX7 z`;Ym-X*b-S_b;qVZBN{Dob8~+dg%-2z3deaac4**d#Xj4fITfDKq~`E V$_(&kWdjK_1K}nhJ&g&(0{}HkAuj*` literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err13.jar b/libjava/testsuite/libjava.lang/err13.jar new file mode 100644 index 0000000000000000000000000000000000000000..dde18306c2b57d659a35b01ae9f1fd55d638d501 GIT binary patch literal 864 zcwP(eW@h1H00GVlB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDR zS@#=WF)}b%Gcz!714UDdiVThQl5-M^i%WxY{VxZI)SbI`>*_AY<82Bj0uJU0v+Y~h zBXQ9sIcElEi_70D8?`lGo_-T0RNuA#!1-SbC4B!d{?mB0Q@YI{Ex+jf%f06<&lku2 zoAd7vZ-Q(zS5V6uj>BJna~ZXCD*wKbw`*JdjhynnBaSX7axM1>+o~=(d&^Gov(gJL z-pnVZDHD}NbdQT$Z@ez}aNgZQR%e^rA2~%oHacs5i6KwV6b#SiQ{E~g^PQ*94)uqjo4x@G|e|Vqq}lqI^C36?yI!! z^^C(d&vU<59eOYH?9BD)&2v}E9ErIQcvQ);x9OpB;whQK>mP}UN2l#m+Z=sqV~@3u zirvv|x8*N>(eM3UdF4Vt!2XDi^M5@mtllNHN(&#kv;5PAo1C-qXX+;TC03ugsj}o& zzR5eY?LXueny@W<+^ExaX>$0w^^XL(?^cH1U32P>-03bG#Wg*vZ`Nx&Unpy~uo2Lg zwG_FPa3V}qsypH0g!nGqc}n+0|IL0r`Nx@S{tN1oo9|Yf=hgeXXPtw6bJd9r#v5{D zw$?5DvF;=DWc3+->N9)`4rfW23*Y(Ibf|pBv8<-8>t`eeEA_VbWUJgrkg=b0`HYd^ z45hOwq9Pj(th{d6nXX}&RJ>r@SMdOEMkX!>+$j?kAf;1OZRjZ#0n{0=r(1*x*i$0{ Yv@)Qi%>Zv!Hjpqg5N-m}Gnha;0GC-YAOHXW literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err14.jar b/libjava/testsuite/libjava.lang/err14.jar new file mode 100644 index 0000000000000000000000000000000000000000..f1b6785f20fbb5ea86be6a143c56cea5046aff95 GIT binary patch literal 764 zcwP(eW@h1H00Hg_B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSBq zvG-bSj0_A@n1HqcMN^B43{CWsa}tY-=LX*PVhR+AJsy}o=h&X5v0KkD=@tl78CMB1 zIcf#8ymEB2y>TKYNs8Hiss4+tRRJ0=n18Lv=;xaH^NQt$>z3KyZl%Aqm7l-D_joKIez8?{#Q*u|F(xxwy81gww7M%S VbQ9ps$_5f<2Et81+Jp(j0|02w^-KT& literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err2.jar b/libjava/testsuite/libjava.lang/err2.jar new file mode 100644 index 0000000000000000000000000000000000000000..d825a602da4ddcf0d727d66d7499059c9463bd62 GIT binary patch literal 775 zcwP(eW@h1H00F)VB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDO zrzW!}GcqtFGBGfKL{p23jP#Oo5{rv-15f)MauBgSygFcY$UHB`k9U)l1gAG}`}*{_ z`534i3vKLN**NV=(xdbr?C)Y;GYR?rVc36cEBE7EMZ>PmGj6+5lDctO%J1)?uK#Kd+%Zl|{-`*qKVr!T(NnHE=7%O39r+~i zddd&MbJangRYVpmaZd8TsN1XaGj^G$q{;f@kIVzS8JV~kaHk+tfRvt4wV|gd1W;$d gp1u$!U{5s&(8_?Eh621<*+8PqK)4Y|J1~KG0AqRlH2?qr literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err3.jar b/libjava/testsuite/libjava.lang/err3.jar new file mode 100644 index 0000000000000000000000000000000000000000..be1bd617a4b91ce646d50692a621c9b34573b822 GIT binary patch literal 856 zcwP(eW@h1H00I6AB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwu zNmFc|FfuUkF*7iLL{p23jP;Up5{rvVC*AiKb`&_i-~06673#L@bUog$Xjl=xWv#A6 z@0Qwt#fCy&LC%*Y=Xb|5oVqc|@UXyh#|@gw=N5dQv)*sz`wI7^Zp)AJJF~5PRh1W!-f{D1ZCCB% z@=7Md6;f%6hAQPT{qOtOWaVm#tZMxfnU8;!5PS3OobRqQi5>SYmes`{l_`-t*_m`U zKioxv0(g zU8$tbZ|8quQ&*>`{1Iff7FeKrz{WXo*0TR<0#Af_{R0yMoc>=rIbmDAa>yDH-<69N z$b1dh`L0p%;urUWiuKRCb_X53D(=d(rb(hBzfEUXbX4lE=w)*++U+jndpd>3%W<`c ztlGjyd|Osu5I(Y4WPa(^EU&e%3a?%{`+kP?;aFu;w`c4{DgRn-8cjQ2cwZ*@YK6tI z$A)GnR5C`FfuTxGBYrML{p23O!Sg-5{rvlC;9pdCkh<@e^~GCwl!PwG&KTr9-Y>^yKiA< zrzwlcN_Oq7nu>}?4^OjGyuD@j*A|k*1Xrf1lO@XcX9Tkmb zTaWMT|I^pu?C5jcM5)E)?AIgbHry9GxbE^hPQRDd>)dCUM{hNbG3JSRzar`F%G;g} zcW)(a{wv(^&?rc%XMdG>{9X>%_~SB{?p&AO)bmC2^w;k55+X)^7Jt1&xaS1a2lYMH znr5OS6eRqqL`T{A0^6rm$8TMFrjjYOPEhO|yBy!$ICqx7H9}wJ9)J3KZEyAZ&p*$G z$!JGR4nE=Wepz4ijt#(Ad?&C%Jy`O|aOKh6nLS!G?P za9q4#&nxuoOt-42)1H_7&CY?PPwSG3?y}Bo4gK&#VZY|LiupOF|4x7Ktnphful#GG ztlNg(IWgxxTuNKeA6&m-YRC3h*H7$AipjcCbjne4xy0tRZrdjYd$~QjTYaX^>Cz1O zho{(6ZvJhWTB}^$^IAs!VOwI~20N#DkLxx3bB~63eUnK3&z?O0_?%3=4PgogXHE7v z{9xnKgpJ`(#e@U?|(>mwAs!fNw~hj{**=gqy*i0?Uu&RXa9U={rt@O z`}TEA8jIE(aQ?t~{ATzAWu5sm=bv%9zQv#W_*&zOWt@#&snPEk53ZIjJy(14eTTpv zj;s&L4jl4P+bpEMMIEZl-?pnMxN2Fd@T02F1%BbhvZw8IrN0VrIA$J_nzqsD1HZ(? z-Y;2Ov#vCEC@o9)+BM_W^WyL?CPyYFDE?Jkeq8V5+Pa5x*QD1aemkX=Cunm#-^oL9 zv4U@hp2y`4eL9Xa%ie9eHe;X1sxDtO>#DU6%oIQ7AL?Fs^(}|{(b#jr?@t}H+yZGkB*)H0^!Jr39bB`KV1*~^H$IIr)4H(Y zhxAm#Y0tI_{nGk zE^k@oeus5}JB<(Sy&_SSQr$Dxu&dtjH_uXWXMc%PF|E(Et}l<8#PRur>QBj{noly3 zH3!(vSt{8i-)X)iAK=Z%#KnL+4Wk026pgA4JxwEkIs^6;jxYgxxS{{ z^}^9ykre?p%XU5WE|f6;?m2T(9P8m}y+Y1z`${)7sP?(GJ>r?wZN0+a!$do&3DY;3 zpXPF(n)oq3pf37+B*dsJFS}M9-FS2Hhz6qRtJU8_wvW- zt;)5|XFTtVtox$t{43^3YIKCulDUaODT0SMH!jWR_TG2<#+Tb^ixX?y{z>PFb_q|} zpU`_qKH?j<_VXR)sXiN`DohSe=DgNf{B*U`Ifh29+UdC>AB9xkT(1AopqgZ&x9<8M z?f`E_CN2it=@1nlrAkz7=;;yx)ETg+QiKWE(;fn}G9ahK0B=?{kSH?{ZUoY8OduWr DeH0<& literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err7.jar b/libjava/testsuite/libjava.lang/err7.jar new file mode 100644 index 0000000000000000000000000000000000000000..f349844970bf6893af8b6164ab2e909ede77f181 GIT binary patch literal 691 zcwP(eW@h1H00GeoB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSBQ zF3nl?j0_AXffyv3T2y4NmzO;d+`Oazu;ur8Gk^a4`-iQdLCn4LU_fTo zi9~}A&mS^n%M<@xn7X)ADxK$AXJ2XAserulwj;LQ@1}Me$?&V`v}MH~e^n&b8&W0P zx2#Jea7A)k+V6GyCCpC*$=ZLha%LCh=zFz4wR!q-A6L0+0gGKv_I&$QywPu0_>wao z>kq9+UwklNlDOWi8xJDVSLiRSym3T~x&F*T&B~9rPp>i9(VQ}^@9NHTwbnn4-#oW@ z)0CrNue$2RJQ2%M-BUfAc7A94J(Ww!@uHRkKVO)}xs}@uxV}W}h|f!qFf#C!jF`q_ zF}*SOv_nLb)j`&;hr}!&ak$^xlejgkzJ33Uc+E2*FAhstH2J?MOU!-FAK=Z%#KnL+ uwow66+@oqkk9`DCXTY8o5GG)cVFYMpK#uPKZ&o&tC^Hal1k!I9K|BD~0oD2d literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err8.jar b/libjava/testsuite/libjava.lang/err8.jar new file mode 100644 index 0000000000000000000000000000000000000000..5baf89b259a69f47ed5a3fcb3f9e4c08eb4a2e54 GIT binary patch literal 652 zcwP(eW@h1H00Hp|B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw7 zJLhLhFfuSq0b-D7YEhAeUUE)iadB?IX|KZ$BDRya&GhNX&7J-0%^_FC(!>JwkUJcC zI$<3pkF$c>ja2zNJ0GOKbUN57|G>S|JW#_ay)eG`oNfBE*S{YNAK+w@VRMd6y{YLw zcj4YC{+IewHhozBFz9SC+h-qjEBo{nm5U`4^)FSYE@peUfN}Cd(~F(E^d1GIZa3-? zaZFk%+_taWJaR4fCm;3hj~QwgTxKu+>aSB#cP8{r0=KM?7x$&o`jb{)^E+k=$Dgdo zS$I6bXMN6>jfXd$y%5V>yrJ8c?O#Bj(x*pNuh$sdaEwYRE?wz;f6k(};>$~PVw0HQ1JMfFe%z6{9 z#cm(q&B(;XfIAvd0aB!*YD14!1W;$d9?1w3utyyNv@#$^WPmp-8%UHH2sZ-hql_RP E0C|DF@&Et; literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/err9.jar b/libjava/testsuite/libjava.lang/err9.jar new file mode 100644 index 0000000000000000000000000000000000000000..cb629e3f9ffa91ae27988f4e4c1445aaf6ed624e GIT binary patch literal 831 zcwP(eW@h1H00GGgB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw( zqW5)AGcquoU}9hZiKZ46S?VR{Bo-H!2F7|zJBrwv%kMr}=KDzPqS=FQC?_@>Gk5nrA}A$-Wru1 z&gbS0R4F~OP~cMOb>Z88^SoK&=Y+W%EP1^{F7Z^}wfDD74;}c*m$me+O3;ZF9{<&^ zS^N^~TG!_(q4VT>q`X>Di3{kBhY=o7g4b4enXf2fb}rsM>xc?%r^sz0qb z9QWy)g|?Q?p)Y?AweP!~*{#s15mgHcZ+FG+SGh1x<<_JKrI2HmRa+WU^j=oFDXClL*RS_|${zH5hQTK1C+r$UzoegqCqHA_{7m5Uv2MjU z-oR(C=0;SC7{57_uuzBl*@S0`(tCX5p387WG`0GQ%-m?R%lWH(fHxx(7X$8;hYFC= qA*wd?l!yT84A|2p!UXK84FOsikkej(H!B-Rlo<#&0_h4S5Dx&8bs`D? literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/final_inner.jar b/libjava/testsuite/libjava.lang/final_inner.jar new file mode 100644 index 0000000000000000000000000000000000000000..0a37fd96046216a3b9ed992e647e16008bce6e4f GIT binary patch literal 1488 zcwP(eW@h1H00G4cB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWv> zEzY&#ObiUum>C$vfud=dd5JmknR$7sMJk3WNr^>z$vKI|#koPb{=$v|b>zTciz^Ef^|t+~r-azwI6`1uvhoqgpYRx9Rr zxE-0$(U&^oe$tHfe2H2-o0s>^=9j#5_5Xq>5s&vT;)9F~W=oVUQC}R}W?I~mB$O`B zC;8}iU9if*4F?RnTRw?dnw-&mZ{#ktt50H@MbHVOBR;HAE4=*oyx#U&>BoaBv5woz zI*c|=-qDxJYwnh|x|UD*;@QzX?{t6Z@5L4hsE2jw$L{1$F=)jd2QEZ zlHES>`UW#E+Z7LXG?%jVhP>!%7CXEvQg-^bpcx_#?tIIn);P${oc#09!c{jOXgreZ zeNkd{DBDP9_BWNAuG5*%2^|+Z#Zx@7eqPFn8Nu)C8{DPjCS3@A@}Odk)Md6)yX2bV zKJRvP-ZRmwAo)eEx#+CM+pjjfw@TE=2u|9P_9bNf-nQ56C3m9*Wq z`sUzvc-sFaBbCY@Ijvp!pXPPUYc#}oK<#ochgey#wLYaM?n?ww;9Ju4(*aIyY3LbH2-3p zhRFr?6V9#kE;dZtwPADdxq0u+?^_oC|L~i?fh|UuEirpZ&BNNjefrMAvs>ni-=`>c+R|C>#`3XoY*Y$3uDSj`0>+O#YUbSetd+FfLZ5qn&x{jYdR>A!D#Z>*iAvm-P@e{wl^ZJOOG`fuJ_-p)T&e_Uz#7e zG_!htfR>EU$47iu=06O5sFMF@#-dFsDbN1MOggc+h3RvajI_n!*Ov2V@a}2+C?4R= z$i&5fyZAx{NQD`yHuT~Q0n{0=7j6g>uoqbf(8_?b07EwfJ*^_ZMJ6mMH^7^f4J63| MgnxnbUKS7!049b*ZvX%Q literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/final_int.jar b/libjava/testsuite/libjava.lang/final_int.jar new file mode 100644 index 0000000000000000000000000000000000000000..43feb70e01522bb3df36306159513a0da7262e5d GIT binary patch literal 1251 zcwP(eW@h1H00E^6B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw9 zE&g8b7#SGYm>C%Ofud=dd5JmknRz98$vKI|#kqlR^Mo8lY?)6SDqE;K<<_mP6<76E zB&?mE`B+{^SZI-&iNqs**#fU^k!fc)N!052wj5EbZLpj2@ys^I+*xPe%&ks8xAXZt z%fEkLvmD@?7wy53!f&hlmw#TL&JvbseNV)1epo7JcJE976$K%I_?=NqJJS{%pLiuO z{Fm@l757Mmz3(&it28H+td4CAG5)b6M`dF1gx0yO2NpGJdl+xCT^r}`Rx2uZV&8g> zm!~f{O*~V~8{O`h@IaM)^$x8GlB-s{JpD0Z!Hcll^+%5$wUuUFGu!Vv%cs0*zs=!q zXD#++KfOaPJ3FBVtCys>LDQR=xxtr{3pm!y$Aj|vd{1f%|?TkNv6m`YVY7qH;y7&S2 zGtOgQlSQhw-V@P&pB6DYDfvJ9De2&x*d-^0_jH(sZCbJMz2w<%=~t{W ze&h4;g_7gMN8vyIsXECWKWuX_*lqEO17CT5Fry}o_4k%vU(Ueb_;u?S5v~wIe36`&k`bs#b7?o!8wf(&BWn`BA7@>FVf5Y?H3UKRw#aA@_&z zpT^6a2?}y$cK0gN(w_f*{+as#>o*pumTPAsrrwi|E=!A4yP$GnXI0?dkekQvl^R{Y zJn6x7|79=c2wzh(y`Ns0utu}JWyf!K`+dqL?l+tH4)6+wJ!t=Mp-VwPc+WcKTf)g- zuRgN8_;amS(Ala*pH^9^wV2;jn*YlCF;}7OuQPvp1bWwA{izY^x{$k3)+s>Qrt$p& z#r5BQ_)NO=_W6o~{s~jRHY`>?H&rI(&JSvE}BkHwRS|HvT*PeslRMb^f^j zjf(uYR*2;!tv)5Yt2Z`*Gr*gXiHiYuzD5N|xg1p+dOk-0bq4IY9$^CZyo>;?3>Y~Z eT{C)YBftVCtZ^UU&B_LnW&y(QK>8Xphz9^rdCzbF literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/final_static_and_friend.jar b/libjava/testsuite/libjava.lang/final_static_and_friend.jar new file mode 100644 index 0000000000000000000000000000000000000000..ca7b2ad0ab129125a29679de8a98896bd4861c1b GIT binary patch literal 848 zcwP(eW@h1H00FfMB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwf z+P{u$V`N}h#l*lM3lvSu%uCFPFD^+e$xMz<%u9(+E6PmGOVLZtNh~fd4T#Mab`-Il zoU{3C+N?aG*^y$T@A&338P;DPa<&|Q zwfB|!DY>ulzI~;0xH*n)*59ycdQ?-6UC>FV=_e&VCLa>!)_H%dbE8_lUckE&ccy!B zR#!tg)_8>kE|is69k2IHc<$c7$u8U>W!x?eMo~h%9@F=!ZEWePUhB=m7cp;Xrl|Rb zmye&tGqub671>VT(R%xgm-v-kW*Yl^Z`IG0oX!8)XZ26NhTR=CcZ4(kK8}85C&%&Q zeT>G&Dfe#bTg}jRUVqn8;!mJ)`n8LG)HQjDsCGF z@_sF zZ}?82_nzgfy#~LUvX9>V$D1oA&|lqYVwZgG{*EO#mU*~ev^o0Kz{>UShVPPZ4;$av z8D*F7Q0l4uk;U9^uDSlaW!|y<`3)=Q=UOZLcAxTC|Kk5gU~*z);$py^?oa_zDn!+W no(>T}odJ8QM3{g*tsy`w1A&wm;LXYgQpgO1M}Tx06Nm=@$k`<5 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/indirect.jar b/libjava/testsuite/libjava.lang/indirect.jar new file mode 100644 index 0000000000000000000000000000000000000000..bc772864ff3ac3ee97a0483a7c5987ca30388d7e GIT binary patch literal 2658 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 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/indirect_read.jar b/libjava/testsuite/libjava.lang/indirect_read.jar new file mode 100644 index 0000000000000000000000000000000000000000..d0835e990ca21afb9c175fba96a78ac30ef3367a GIT binary patch literal 2044 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 ZEJPWLoQwm!S=m5ZS%EMgXs9um2LSGj`uzX^ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/initexc.jar b/libjava/testsuite/libjava.lang/initexc.jar new file mode 100644 index 0000000000000000000000000000000000000000..d43546fcb3d8debc42cdf472cf0fe9a217e7d298 GIT binary patch literal 1183 zcwP(eW@h1H00FBCB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwI zy{R9&85tOSm>3v%fufmtnI)+e$$H5-iN(da0SEmKISACQKH#;siA&T)P*l{$!zOvp z0u>cEUxSJdTMlGRo3b{uJFxzQvD}r456piw9&btF=)7B!mi~QjW&ZQmzaI-9U@Ws- zCb8qvspU7MemxvDA&8`OY0?`u$R9|?yP&c+v|SV>9rQmCO+}-=`fYIjsNDWlQ6Mm4&%#Z z^(RlQj1jo3zE9-uszwo=K9gq4PqBLhPnm7(;W2#QDl3&M5pht^tT?F?g%n%)q{P zdlS<fO@YS9CT{YFgA>>S3iGyTn0&yJx}U9ll0JXHUJ;`WF~$#mQRwzQ60< ziAznz6^Fn7*qgu4+lKEoD6zt65y~a%Rj^0uu|Y zW=8M5dj5HPrq0(Nr+$S03hF-irc~t-yIqh;&f>H-Suca|WxxY2AO$_bZ?23)W0tG=E{1 z!~&PCf6mKa%H4JJv+A~c*8^rh$bFNNQG9iA-qw%X*rp{e^xNJVYjWnb_H|pC1z*?$ zycwCe7;tAxRDhI8QMI9GQv^_Fz@BLlCScEs2++!amNC(_qNfK0ux7%RIs&{|*+8-^ MK==hnPh|%20OS6s$^ZZW literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/initfield.jar b/libjava/testsuite/libjava.lang/initfield.jar new file mode 100644 index 0000000000000000000000000000000000000000..955cb02e822fad688952ad63ce0fb61142b33318 GIT binary patch literal 1311 zcwP(eW@h1H00HX?B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSBW zclM<7K;9o9<_6--w8Z38z2uz4;$m4p-|RyU0=2@)c4jND^>^=g*c(!{u0pdys5*e9 ze|Czp^fiuy9{G8-vgF*CeEgXwz6Ng7F986Iwfix-}KNU|H6(} zJfY?SCj>6-(%;=R!LoPRd5)7&dwo6T{a65uDsI`c*0xk~m#pcoiL&j2n&Daf z8$xz(O+T|XVaZ;{&G*a#90C&_w&%V6Xcw@qRY)xI1V6J=CD*mO$Fn9fKAu`Kn{CF8 zLq=g7UmOI!MOZC-^iRr+<=W5tg@>J3XU80g7V7%;UUs(HwvEaGs#E?6ZradoyKH}V z6kmSuy1z?1{uo5pS-e`sEt@;QDxahefmbG8FK6mP~ zbSJCjJ*!YTU1$~6ztEwq=?}}(^fmhuve^uON@^$>^>2{ZmaRbx^n}Y&VaI?x7Dh;7 zD@)8Ng(kLGztemN0|aa@PkZGYX#a3x#hT9EBVG{#zoTV~mTC!pjTcke_<_;R%ST$f zd!}W2+POKE_4D)@oK12iS}ujEO5WbU@wIu^s=7s&YU?FsE2<~H^eYw;KJ@c{j*CWr z=_-BUrkh#$9M`^xY~~i8$1gpVYtu`jU{|K6$KOP zFAC%-{9y|4W@O@Gz@5cW0aAuX)rOws5kQ>*djWtj0eiMafK~>SOpdM*JzpR|Eh9!Q fLD!5PzXqsQu4ns literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/inline.jar b/libjava/testsuite/libjava.lang/inline.jar new file mode 100644 index 0000000000000000000000000000000000000000..b5c9449a863012f45b169f50608fb4a795c3cae4 GIT binary patch literal 823 zcwP(eW@h1H00G+yB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWxg zL4_;!GcqvzV`5<70g7hkLuqS78ln}IGcCbL8SG(ir*WR$?}tyHQe5kx$waT z1rf6aN@gA&qN1)|S9!TjJloQ=j`s<%A3S|vlCSv&h9gbv4;Bif-|1SVadg`8>(9@X zKmYOP*WbtL4Y?&TDJ-AVxO|tyS}<)*{u);5EGk?2{rB;z2^;?2a8avNn!sz-&UEf_ z#ft6|ixeh0$1T|9{^MxPo$HsGukvqoc-bqZ^6|=w4`0n16Si-TZgFs3#8SDi_WrAI zl~?~?@UPjY61a7jahRG=1Yg|Sxw~Jh1`Er+E#c$d!FK=XSMGb&@6$Wwyw@a5-S^nC zesLw&>>a-+r8vc{{@B-U>Srf0GqT#O>-obCvPV6um#7KLie5antedy-7*oh2wmhyK z!rHB0uJef9{9NFzu=#(?f*ak>FE`euUFz^N-k;5x^C5lnhVVX7=clhetvhUZ zAM7?i5Lov!MC3!xob>43G6`2#{b#)NeeT2ZDemg$PR6g8G;cz)^B$ign{USPT^Bnr zsbFS#Yr)_8f@H=!3VU33bTZ9hLvv&Kwq`$&m+wLTtjC;K4 zUZqy{ONaT7!z%)~SBGrd&{y5_UD0gkYqQ^yEcFZl-i%CK47k%9DnLqosM^re9|EW| hU{8$*6R@W-1ZZVIO>qIDagXNT zXvg+=w%ReZ9}_NI5x8IRz-wEhb+L@v)99Dn9x5N1e=O|TTyBzaNqlqlX5;_&&z!sW z-rl~RG2_wBMi#}jHvVkB%$iOg&-{I6*0#<(W6$fkC+j>Ej+ULt)St5a(DarivG%G< z`u?21{%z0ou5zVu-q*xzx~y6 zwsit$y4T#=`7Dfe-6N@Pb|V|9U5^bH=3KwMnr-pnX`M#vvY&`0{$+}sZ4~0ZjWzGp zvq`q*7xt+Zc>m6hXMXzeX^?VwWy`9+ALR?wpFC*bjJ$JnU1RnCvrCKZ_?~(kaGSgH zUyJ6{h&6wXRrjXuEpcDV^Nn-1dXbFL*;lXg*7_IL@9uj%V@H1*WBdBj&Zq~Bvsjd0 z6`#-zdvn^#?Ii9)3ck}OgKPWv5l z5V1YHcjEl+H`D(qM@SUt_wT#OOFWU2y>}@2%Y8O6Z3mMeeu{QGNZ2Vr-sASO$Djwc&l`jn=yyxI5rl^I*!h3q?Jzb{F1cG#^}UeG)5 z?+MH0kE--C1$Td7t}oG?uwL)Lt!9U1vUXm~Oxj{4PkfdHZb&#F<`FKs&|%vi$^9iy zKiqrEr}A;Rfk}W%q%H=jQL zFte(!;c8%P^#iwwJui-LmkZiZP^fl9ZAHNYlX|tIr<|B`qJ7W%EoAe#_q@_d&AIT* zua`Vwe}z}Sf5UQZN7kLjuRGqf)H`i+>ixy8liSv-dbg+7i%0XeWlo~?#5cv^lh#by z^S9VPQGH&qc(v#G_=Ox64^}e$VMGn>r1KWsHo)w6n3;h=04cOpDk0%r8dEoehS<_VCIQ`PN8~z~u!mMNJ%J+@dH2--W6?`R@ zt;}Qj8G!=(S$?}5=A7d6RDZuMb7tPehfZm)&h1P7Fx`q*kcrhogeCM$!aQY`-b6KJ z#?LL{>#N?*+HhZL>okS>vl~KP3L_nR6f2aDZ*0&`k^Z`?V9poawihqAtA*RPuuS3- z(_Fr>{jnC)l--g_XH)w`&u5*Q6C|_w(yX_)mOX7NkTn;*^JDd&towzovz425Qm?%X zR8JDs&nf$qud?>ltwR~Fxvoiw`3c5y$-Vh{Cd~PUV~)X(GqR$VPf~wQsnrSoDefyf zx#PA>dBJopgI%$SrV^887JcKXP+H4gIRDn3eV4vmk@tG1+}8W~%Kya+tEJlK9piHs z+iV#{v5yji+2|CHkS-uBI!ojiMV z)&`v}ka>8ar0>O-%%Cepw}RwlX9+LJENVY7>7GDH*ZGUOt{k0##o5ju?ilLTsdYaT zs%8Gdp35iDW_D1VQ+IFY9fm*JN{xz-KCR-}IOTGX^BTXOi9b{)RdjbKbXw#J7rgDi zR^8>T`zqk(6%Bl4**<15_13m literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/inner2.jar b/libjava/testsuite/libjava.lang/inner2.jar new file mode 100644 index 0000000000000000000000000000000000000000..48e917e711f45a899cc3b0d0a0e9da3aa1d536e0 GIT binary patch literal 776 zcwP(eW@h1H00E~8B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWup zw>au2FfuSSGBGgl07WzN@=}Y8^pbNDi;Ht7-u7Y&6lweaHnU`ok?Gr*vUw^~-fViI z#=*4m0LP-)Znuvfu@HVN@kMK|Yakb^t%LdAz%S=B0v{fY+kE|D^#5Dg_w3{EG2}Re z3kY@0+@^cCtEuC_iLHg%Q*;mS(~`foKJ~CLN4!;E!;SQZ+cIb0<8%IXtJ5Ln`pyYj zhdibj4&JtMa`e+KTPSw<)N$i2?F;H=lvyM! zPD%3k^!on(lV0=Bh+JM+9n|k3I)6dwgx}}YS1eaL%Xi=k|Na}#CpRC6$k!0_OJ2sG z^Q}>*@k|bTYk0?HJu&NuU+ZTq;`(oA${O~feZw!-0B=SnE(Y8Q2o)eDCsb|d2?_z! i8L%fWgbCOa4Fa?>peCUJZ&o&tI5QA#2GaISARYkKKm)%3 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/inner3.jar b/libjava/testsuite/libjava.lang/inner3.jar new file mode 100644 index 0000000000000000000000000000000000000000..a128236a473f7bae58d91f26d33e8f67b1ca8f70 GIT binary patch literal 1284 zcwP(eW@h1H00HL;B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwJ z!MENYVPs&q!o7_4}@p z_SRRvC(_~+ptw}E;;~v^qW324*_{v0XB}kG`N8}r@R9ZIg;y_i|FkN;_uMx9+4uSL z_cOdnzVG6ApyN@*GIq5trmLGjMBk8W|G46BU4dG=S3;`5GNwlzo$D7{1m#P7nyt=s z^zf6-B^#P1aSKm#SSo$=)7>1S2`>vRB)pgT9MTYr_-bFa{-Ettw~s3>+iVPUJ$q#D z|D5Xk%f0+!t`yF9JJ};@QdBr)i+#Y#71JLsNlpw+cpKp-nt884#&7w(<$I>yRp5}Z zIif6_&Ga?;ik{r#&W4|%?ZxXw`|@ z@38dRjK>F6UFsXZTAHnEeR}4s+I>gfr94Toj9o4Q1)S^ezdHZ%O-bY2clTt@&SrQU zrMBQu?Q5N9D$4=vhCecPs1I7BBVlz2BKEIJsGcnagGSX`kS`456G+GLn}}SDh*e>x#QwyYQ{( zvB`@jF1Pi~U*K@s<=t$1rKpu*xg51Ehm6xgO^2gaE}% W=*cO-o0SbD!vciwf%Jc75Dx%NBj3va literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/inner4.jar b/libjava/testsuite/libjava.lang/inner4.jar new file mode 100644 index 0000000000000000000000000000000000000000..cdfb0be4b91f020fe79d2d3844b09b8fd242e15e GIT binary patch literal 1633 zcwP(eW@h1H00GwuB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw3 ztw#+XF)=X2u`)3507WzN@=}XT^pbNDi;GKxbAyEvMQr&M9&FOmdn7#}Wg53u#;w(9 zTB(6c#FicYvXnJET{faDp>WgvEA6kCO)M|-zi>Cbn_k{5_~P(8yO?v9-|rQ_|NQ&> z`FMt~f;Y|G2Uow`6&3yY;9&uqaJ?xdkr&Tj`hB!`Yl_i^U^dO`ozKtCS~h>JaK7_p z)8feob=CVMY-Yad)H=}Hz#;#KN7>Rh{JYfDMN!rvU8z$W=Ihx5kW&ia|7qUT5Stosq+L{-i~gZ+;wWd=Tg06mY>Da&l&1`z5H)I zQ~JG!XDa8d^4~l+~OZpnv$Bg%I1<$)_X6C%U~4@u}cxLz!2EBxtf zug?Ba~Xl(KK+W1{I-tpnnQNY?We5PTONqdchULi_Qz}Gl54MvPxBbRjr+Ym zl6}u1(R-Z|hYXr0tT)S2Ee(GhEw@25XwDghw4eH?L#LieQ+wo6a{2FK(}N6qN+g-B;UQMrM_7@{Q8FcTqH` zHDzJv)5l`hinx7kJgS;EAN1kw@3)rq3d`zrarz?XJVmTpK)T}5iM5j?{Dpq?`M!)4 z-W{IMDi&ux@pT7J^gX{I-e46Y*)Pfbzxy2K2z?Owm!cxI_|Dy{{DQw0D?DL>|K3mWw5yENr9=?^CsL?OIzxH zS2^eY*OQ4cvk=b literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/inner_array.jar b/libjava/testsuite/libjava.lang/inner_array.jar new file mode 100644 index 0000000000000000000000000000000000000000..eddcff577083d8cf70f2d8580d252dbb4b5960ab GIT binary patch literal 1602 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 Gf_MPEb9Q9_ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/instance.jar b/libjava/testsuite/libjava.lang/instance.jar new file mode 100644 index 0000000000000000000000000000000000000000..7691410974320d25da556194b7ae005d0a1a46b4 GIT binary patch literal 942 zcwP(eW@h1H00FNGB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSCv zHpi7lObiTDnHd=PfTEds#U+V($*FqDIf=!^xk27JLV+T-{1R+z0bH$OzZXYn{qK|( z59>X4WeMAALFb^?&lvrU&eohTFxe9QT`zWb*>XeGjmM5m?ezZs?(XYb70YkT4B1`r zecsOZXLj!Y{`GsiKf^kwse%a|8P6^}Obb83VW{%`hh2DS-nXmmb8Rn{rnE>t^IN3s ze);Oz+C(eg+!q|dH+UXO&su4@U7~4e(QL(%>#sOj9gjSkAegx0#ucB9wnkQm>JC}& zQs_EpI$1ILR_?EzQGIJ?{_QP_W_0#B#^Zc&|J_Ta7oY!<-ED8A@%z~hZMMF&nSx7J zCgsUJ$<6zwqkRAB&w>>SojtSdPEXLBJ6)xza@C&+w{2e=ba_Wi*;ugb>ovx&=|?uU zq`o>MWx2#e^peh3!Ic(ERCjD#sLEB@F>dEgZr{x#;>XhKAC)slQpMA`h`#)tWccqE=zr}&y^|fQ=Ztv7LGP%C+P5BLuX)JZRncEsKvA|sH#boS$Od5%WM#gNex7cw!6ACS zZoY|mnQ5uTCAwj$Ma7xB-4lTrkr)z@|UE z)$7;9$iNWJ#K6D@6wS;lF3HTxEYVBONh~hTop{>ou!Bh3|BY9dWcJLuRdu~0_wAyi zOEsD}*15EHDdhRQ-r|!hoEd!Zc+j4PCjJM`o&Q~2UB!!yo`0KL?-zG}UL3=kg$WD% z4}>_H2Q_x_sIa!p{x>x~@2BJ9ntQ7Q%jZ?C@Ir2ODrt-5xgJ8Lg*ntAE_X%34v zROw8(!+CybE6XJ_o*8OvtaJWeunstQ^iR95W5NkHd$u46$72n@vvZ#Al0LbuH!y{h zw>o6PUx_t`J}EADo1^>pTU)0gqqp+PB_UdoGY(8?^lUt1|I}=mp>jgZs{n0Z-THS_ zk)7Bn!6|W^)pKXv36-+^5gKsGr9#K^gF2_2Ue~t%cJ5S_qqog!=g!u!JEXPio9&!v zp4~gyd&KWXR+$%WcAu^6;5;d3`-C=b_Qzj>XBC%Ofufmt#U+_}nI%Sg$vKI|#koPT{=$wTw$9qWA8xy#yEZ{vZ_yX- z=p*hu`Yytg-F&s?n&>OCQv!!=FRGNw$JbE z{QUa+_V)~O4>vYSGHP=qi?%f0GMOMUKM8tkI5Q&!ePnsbS)gn{pw%|+@Q z{kD78Ml6`oEIniEhK4#ygEY|MFZ&b~RETlP+?dcvF+0rTsMpZqx*TsqMcKloFs!oMnU-{w0^aq;- zV)m53Gme?VyI;)TQ^`zb-aRA#^tIu~Jwos93{Kgn@LF%~!hpYBXZ)9(OMJguJ9*8& z3kR5)=BuAkeRui^i_w$KYBhR65l&L8Pb@l?7_G7RP|Vsdv%GG(dR`9kJpA7B$UlkK zB9H#7FPYtQ_1uR7r9;sNl(;th?|OQZOX8t*!j=Ow#W%WfH?5C1-|>?@z?+eYivf3X uMFmKS7gZa2@5Dx$$**ZM{ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/invoke_from_inner.jar b/libjava/testsuite/libjava.lang/invoke_from_inner.jar new file mode 100644 index 0000000000000000000000000000000000000000..064e0184bf878352f438486ed5273b59eb8be00c GIT binary patch literal 2208 zcwP(eW@h1H0D<5NB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSD( zbv1=MfxO#5%nrnkddWG7#l@_;O7T?&L`MZz<)r@VeF z<`w-%SN-5Y{tt_f+>!DqDsnn^^7-#7W{HEv0SXt+G`eQY`+G({uC`WcU9)jJ=fQaz zYbR+gyz%xe$2A+P0#VnHm?;UudzN0>N{tM?__%qay11AxV~SJIV*5=nd9lKiCg;3oK~-Jy%=^S z?xW9r=D`1}LoY1if3bMc#m1fK&-m{A{C7{DA)7~5f`v;qqNPyGyl}$tS8_6weU^wG zyyv01TKC`_eLWWKE8!0hw!B`N^!G)MKZwym7K@rpMJ6?Hzeb z^^{gl(FlLbf961EM)wZO&X*rdQp?VLYW=s_x_V7n`mQz1%NYOjqk3hntiAOeMg|5J zW(EdvplD`ZS$=kEd|FX{ZhU55UTP7%1{VxZI*yhi!j=t`DETPNir|AOiLn42} zl9Jqfe58_%oRw-6Snr>>ywx<;{mc1D3f?hK_&@X;%`@wkI@VtPe)so%my6%+{rmOz zanpw76?zi|SG;;)^Jht4b>Iv6*9rj>UHlyOJbB6ar0`yk_`EPQ>XTD|T;(f~_*G0Q;zshSC<8@|NC$EUc z4)HcNpD8L)Df5D^-XHew=SIA{lC3T~x#1#j`^A-2OD7v%TORE< zg>%OG$qO!jXJa;1IBplVLg#cSx13(9*>UUduF)x5dVQj_Z!1fby;DE)enpKpqw$uh zA~C8fj!j#2Cd|;fah>q2h5B&|%yt*F9<4V}*43G`^x$&sh`A1C>N!gdkNg(Aw(i0n z&ZtH4%kKZsF4UjOWAes3WK;4Cm%Os$8{Qb^+>`I$P#gSF>r}+z2DSY^TMFC$|H?b1 zXi?CZen1{IK}`5?OHC7)AXWgeB(?;h;sQ+)0Vn;K0tMEjO;CTVF*|47jDiG1x4nzv z+GflU(3j$?P++!sq;W>Y*x`?^@bn|i@(4aq;D_Ut_GKthTV#4(T_PlHkdxVqbO$;8kT97ftAVnsKWO)`v>v)VhYlgW$Aby}6!sT+bC ze;2iXp1Ewst)hjV`z9&4I{qrNlYQ~vo}^F5?DBs$60fq&y|}b@`^}rvs=Og@(UEx; zi7TAnWiEDl$!70!>7_@#$VbgJm(?X>m9`x@-TTb?%rW&f&!mHn{rt%O$#>S>>rYR} z<%$*F63YA}qx)f(Qv3JF?uQKRU(~Ey#X}nGQNvf^`g%nrVAystLduRPSZMlsA9fI^ zy?m|4bnDiwUpGHkdZ8-gV~pUE2bvuMFBeXqbZzSzGwIIRi|oDmx#a#Z{?jNl6Z!Js z(77}FDnF;C?cZl_$2ey}?qY`poxMW4io?y!pqk}HoY)YM&3`nIvvDqDS~ znn|;b?&O1^T2uK-wH8&pNSOV=?^kvxzwVn`Hxy0&CH}r~*slLW!h)qqXY)QRU!GQB zXi{B~IB98dq2k#ix+}v@?wxUOnWxQEug)#`T?H(1yw5~_eA@MAn`PE!^=6sR&*RQxDouBdV(q5au#>4lWEl%u~`Nt68&B(;XfV-YU1xU3X zsy6g`4*}E}u-AeJ6R_892++y^uj$Y=p;s9Qkjx0LK+rXz7tRQv$Aq(}MmGdKLnDAa h3!dzaZVY<5MS%IN@KhY&&B_K6Vh6${K!wl1JOH<3N}d1! literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/invokethrow.jar b/libjava/testsuite/libjava.lang/invokethrow.jar new file mode 100644 index 0000000000000000000000000000000000000000..1344d624d9b8a0e56cf2abe6c386ea8d1c90c578 GIT binary patch literal 985 zcwP(eW@h1H0D*`KB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWxK z)lLTCObiV2EDQ{SK+(*+vi$7Sl8mDKa=ql7#Ny)8;N1L60U~uk^Oo|2vE^L0JUIR1 zwujbA-G-4ShK*-grbyU}?%3p);TgT`A4mOhyYu`y7gyZ>8+h!pnETDN*>|dc-zlC~ ze6HB9{{PQ!!UtmCaC|Uy33==B|G-*i=l>cC2L$Xx`lftxxcKYo-*bxZqj(O=h6b-) z&hszkAFp#l`1?Y^x)xO(g%bj+S4-WO=C{6+p*fdPee%3@lNSH@6Fj|NC-k}xV>eHy zWcg{n4C!_O^+(L6%1T@}(|in6ioedxylfP*Hon-2Uo$Pj~q!Wc_dJ9(KbYzZpG)$|SRt);-+Sz}q(U|4ok* z3f@AyjEqC}8pbw0Px4#%$5o?e_72?#*J8S7&G+r*SItp!*LsyKWcza0s;Zx&p(%l} zF_J;6Sf{XvNOp+_*Lt2T72WNxdsLzE+%2_4?%O;@iO=&SE?MSJO8>j&X6+v3iw$=d zGZtJi^Iht{RR6rC&sVXJ4E-!Nf6Qe*XL_%=@mQfJCu0HU3ZtBJ7IE3nDoif%c7Olo zey2d|LyCsk*NqpS>W5UTJf7!xf1BnCLlwz4$Nkl3r9`p*idsJR;=TY2*B32(M_jTm zunM}hoU`-zBC4SC$|7}n$fI(X`=>Sr>-@EPF1f5+@?_=&{S^5Hd$l(2`p+KJyJ%0) ztc241?v0$+ZXZ8kvhNX_<4?|0!guW5_V_l)6rXGS#wqw?;xQ@HYxlY<-n8%V zaLv_exi*xPNTAR@PXVa69EjhI-{;~#mGcs{8;LZ%F04ZyrYD3Q) l2%ye@J*yy0z@7mRpp^kjb_nohWdlhv1K|!J&CLwr0RX$XTmk?9 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/klass.jar b/libjava/testsuite/libjava.lang/klass.jar new file mode 100644 index 0000000000000000000000000000000000000000..269f96daf55a50a89457ae2578bcb6ecd45a2b94 GIT binary patch literal 771 zcwP(eW@h1H0DplEhZVsWuvGKkC#yzO_$LBRI(($*+Z*AHx3anS-D=OyCzsHkuUDxW43Vcbn8&8%9m_z z?BQ@;lx-uGdb+^s>FKiR_p5j=EqpoSo}hEY<@FLu$KT0@3%JF&iU=Lfxmr?@o3Xue zf94ilKjm$SRy>(+msu^#uBg5IGUUr@i?j(73{M-Fznf<*_x{7aF3U5*j-PkcdHs$5 zkgT{->6_jP55=tZ^f99bi)rw7%8kE_C*gm$taLIQH zT((~))y;BNz2losK9rycwCe7;q;ZRDhI}P_>~aCInDtz@D@aCSXr6 Z2++!al6(TZS=m6s%s{vaNLw?3cmNVh_6-04 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/lang.exp b/libjava/testsuite/libjava.lang/lang.exp index abc36d53b1e..5e46770c40c 100644 --- a/libjava/testsuite/libjava.lang/lang.exp +++ b/libjava/testsuite/libjava.lang/lang.exp @@ -26,8 +26,8 @@ foreach x $srcfiles { verbose "inpfile is $inpfile" - test_libjava $options "${prefix}.java" "" $inpfile $resfile $args - test_libjava $options "${prefix}.java" "-O3" $inpfile $resfile $args + test_libjava $options "${prefix}.jar" "" $inpfile $resfile $args + test_libjava $options "${prefix}.jar" "-O3" $inpfile $resfile $args } # Local Variables: diff --git a/libjava/testsuite/libjava.lang/md5test.jar b/libjava/testsuite/libjava.lang/md5test.jar new file mode 100644 index 0000000000000000000000000000000000000000..d38891b792e942c33eba30b95f43ca3ab0ae3120 GIT binary patch literal 1649 zcwP(eW@h1H0D+VWB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDq z?IpLrvoJ6`VrO9B1&ZdTn3ezy(o4=sEG}Lf5*;oaF7l6WCvTxhPj3`s_xF~D6t$T% zdo;@QBsUq@lx5>lgIxx?fdy8duz7hYVrBMt}OpI^#xbQJ$SnAvq6o;F=ej4Ew9S99xO1~HmUyp>5!V4hXt57TlNGT_?9*EusTos zE5F^j;d3r-&1&8ByrAnL3+MGYzo&kEb*wpR@5MVcH?nrmb&t2Z_p9r$WZTO)KjY0i zv#)<{-TAXs+Pu5l`}Fp_>F@sReir9yF()~qqT1)5{eO#?1PNcMwgn!$vQ%^(r*HM~ zG6-5VOEfh!&?QpL;t1zbwaHCWLX0&Ji(H;I&m=X}FS1KBZBtW{rcyi0LY>fSp65e& zVgrLEgN0Omw*)mUi)_-F@uaXR!0nXLnJFtzG-;(>KDi_*sw!$Kuk+-oYbIQ>^btBG zGG)uM)sn#>BEef#d?&FU6yUw;#jO=vAi$xj8F|?&d(n#Y;5IGKSrfy2eb00`1zk*a z9vbi*&qhBtvI{$Qm;!Hx$0P$;Or{;!Ty*o?i%Zr4v zn+F~ntrIZS?wg&xC3bh9+C9$SKf0d(KYVJ6`@hvTcCBu{&fC7|cI`c0cz3d-jZaGF zMbqVhh1Yk#o$^^}&O^g)8BVL&+1tGLId2rTo!+fqedx8#r+G&c`gg|VKC3vB+&E{) zS@Wq2<1RdwXS>rsJA!B7k39Rlt+C6`C39XmvoEcEm)))4wPxz#9_LqYPrk0X@b(U2 zr_Ni&@`nAQHEtX8s=`fQ9e+_L8vV`af79{UJBwxJw9D?kR>yx!+BW#3wM^K{gU_Fd zyKgq1w&l-CgKGu$EYExY>skHY@g`^2)wE{!qta~5v-eJT^QrmhwAiveOrd+3at&nO zU;TJ^!=43M_e@qAvm|M^nO{3}G;Mik*_u`6r9bW(R$dG~s&VtnMS-O=ANFeg5@%@_ z_$%@2Wl3Mz`^)m2`OW_YCq9q;;J&5pqWf#nrYg2Y`JrwZ-={Do>lc>r%e{&F#Ze?9 z|K6#-dH%iwdk;QXZxQjy)lbCx--&{aA{}#drZr8xn4~FU8LLw`ar4nX(q}69g+Ci4 z%cb2p9P`ECWYR(NzdX#Hf`v6McN%{jIqoL3e%`)+#rj>d?{1xM#M6A7QD)g!jj1^t z?JLBXEu1%P?oen{_7DnNbVN_^kyfAJ(f;JNl+7)A2@GPD$ z{J}HSHho#N-$Rgj`O9xQQ-8}GEt_|$w$ab9%c4)@7{}ZN8OIX^cHMuy?CuG-mEZ1h z7bNf77;YW$|KZ;0f-gclqISPn-^r_ZYdt^vwR+AoKU4Pm^Vv8ToZj|t}=o?Q3R#B$n-Cq{w(3mc40 zR;#=S$!lXf`TN2j=>Ts=CN2it1vM%_Dz;Izp%>f;pw5837)O|Zy>Lc=RtB`9I>4Ki Q4J5$~gj<00a#j!z05e0j*#H0l literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/multiple_finit.jar b/libjava/testsuite/libjava.lang/multiple_finit.jar new file mode 100644 index 0000000000000000000000000000000000000000..cd8152284ccc589fc3dd4b45cfca7de976445943 GIT binary patch literal 1447 zcwP(eW@h1H0D;sBB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWuv zy-D7TObiSO%n;LaOLIyx3vyE9(=ziiOZ1X+5{rv-gR-+P2T0WUT{p{=x;?|}>bpm~ zy7kVcz1nlwWkO@X3h@^=H0ow#+G@gGl8`-t&!2$UP{X+LAi)Js8FRFNd{aJ zF%JAb$0_ae48>}Rx(8g-0zwoW^%@?|>XP}y^R!R;!*${P=iS}??my;fyE(J}otv_` zgq%sgYE1eKug^F9b}!Ep_%N|y<%$)D5+=0USbdrEamKn za9c|*Q}l$eLUwDOORXH0jEb{z7smQA)GJ*tkLkL0ro8*f#Er){6uK;ZV$PPd_t@_* zPS)FUxw*DEXla);FY2jfNPqk_tf&&nc_1iA4#gUSt=w6Vww|f1v>Vu_kmy~MXo^@gR29{OAzrOZ%oxZ(i z-9)*K$M5XZm@eU93fvT@qRbIDA>Vrs#9v-vkplWojA^I^e;({0_oEn$goO@bQpUU^i_wUsW8 z*kEw}-@k>dVu4B#8B@m`F&G0p6@^AWbYlCU8G%q#1DzzwIFF7Z%xHvb!*Z+`%KrQ#u?2SxK57d>mUu$+*FQG5x z=i+M+W23u6(fiigl}BCt|ESs~JUS@KH9tXDc5+ zuyxL!Qx=alNN5Fr)Uj&3F!|is46Wmw&9&>ccEf%H&aeqQG8~l zEw{VTKHyiIlD`X^g|uXz+NU*7U+&VTXBMcsIKyq5$?0*fyx4d-w>lg#P8JV~kaK|qyK#FZtZRqih0O}0b gV;^Ax_Bcg=RtB^f4)A7W14%Fg;T9l$j}gQJ0EFMomH+?% literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/nested_with_ctor.jar b/libjava/testsuite/libjava.lang/nested_with_ctor.jar new file mode 100644 index 0000000000000000000000000000000000000000..31c5d456b04744eede57d9347937dd7d2e91bb83 GIT binary patch literal 1541 zcwP(eW@h1H0D+nq6w$oU?xZqLOMR!xx}MmZ&p&N>N5bzxD~+-TY3 zMa$8LA9v9xSGW7KupB>3gO+cn?LwJwWh9$a=*c3Sc>8MDWI+c(H6d!}29 zyu7e3LHzuGM%3gZw=?_gTSf+kIAHP-!;*ZUsb+G1{-pqsWAjf-v__dF9B?pCZCaPQ zu5_PKlFu0-VId>m2!kWyn>T3Rv~P0AwSf}K{T)=9&KoYx#I z%|a*YvS}|ok(V^}%I}%lOJ2R1t&%0C=KOh1!j}A=<#_@o_ttIZ&%J%ku{EvG<$jrl z-G>JboX6Sn4kTRoeeaI^XK|<6lc%b7t*w#lSvTd5eW;j?f{%>b(ct9^kHSH*}S#VWjug3`?trGoN8i$vK@_jG(f9r|iT>r@H9RXH7J92ikgl37~{LCu1 zCL=mf)ifpWxL)i;k&O`w%1Hpn0-7xfojsQoPa3%WyZ&o&t3Kk&b0_uIr0^$Jx>qJz6 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/newarray_overflow.jar b/libjava/testsuite/libjava.lang/newarray_overflow.jar new file mode 100644 index 0000000000000000000000000000000000000000..65413ccb0f3d021c2b1a6a5edb5fb21ae44bdea0 GIT binary patch literal 1157 zcwP(eW@h1H0D+PUB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSC< zL;Fp>Gcho{XJKFv2a4vUmM0b!C054gm!%e^<>Z&^CFdj-7ncUz4ia`0d85d=TSeQc zrGdrdo?-?QhlB!$Mu3K3h=7iMtGAIu!Q`#idPU|h%D4N-6Sgo_vp?#WVO`U$&5Vpk z+wab_EMDecKL7LI=f`Ck=1N=)Pz;EklD+KljMv=Xv|s8(ew)R%-{I`4pQn7H(h4mt z_wLZzyw2h2q?y}O{2XkAE?kb(jz6>eI&00^++wDGv&;O#92HU&8oU}G&#Vdbo66OF zX{M>Tu4luR?@Ao+WzYNn*AlI2OU^=b<||t z7uY?Heg5`IY&(bXI_0y68u}(P>DnB(Ir2|p=~0=N)8;HXbF@qKv=@t@Yj;~(qp-Vz zghlIRrd!;io4VFqo@II9aB4;6g4}cJ9-+r0vup!=9Os)CI4ZK(u!!zlVi5h`Nz2+x zg}1PA8MC-*dDY84og3$V&3JsHukCcT&)(lRMUTg6&(6Fd=W)|U)-%d1DYDG$+omaJ zy=G3{+0y6N7_sxlf8C3Pp$mQ$h~17f_-vwZ>DLbp_NF(VO_@zETwQnmfar@=<;-lC z;-e|OYca=YxU+KMqsYCFDd%R^-R^1Nng5@6{Px(;7cB<5^ z_PxNJFG9TknpZsdFY$+?@^xGlclcKYf%^Vef4_L?OC&{|oqxsGNn?Wb!(09bPx7)n zGk+W(xVg1pN1?QDUFiAg_Z%$beD}01J9n|*O{A67{mS33kF!Y`X?;CocCIk@{xR40 zt?VmRwiI$zO>p|H*D9^Ud*!3rp-;U5!9l%g^P(;sN$h+ibJn82TV|=ncg+|l`9Qad zSqffmGvC&x{<>fG(w_HvU0Z%oq2~m%>lQm@CSCqGea<@l|5GoQPMK46DOb7Gu-_x{ zTyD$H_scfhPPurxN5pT@{2(^XXI7~^6MqMrIHX E0KFcu{Qv*} literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/override.jar b/libjava/testsuite/libjava.lang/override.jar new file mode 100644 index 0000000000000000000000000000000000000000..ab734b88c0c8c3eb2b540c6a29ae228dcda5a1e0 GIT binary patch literal 1013 zcwP(eW@h1H0D6^z2uz4;^NreyMab|n|VJnd9~e^JC1vWe{8ePxVFpcN4?ahh|mej zGwLTSZ+Ea@`=qg9zBw1i&z;S0uj=o#O%P7BJbNMOu7glppVBEVua-OZ3mUo1I8W79 zm_G3++G@(bAy%^p8NJYyLotF;Jr`#D+H>UPnWc3*f{u7D+r*=`Fp>2ohmC8G{kac(yXGCr*{@V= zaPSt3bn(`sugrs|EpDD2I%AEoMzN|~k8t95=>Ts=CN2it$sH9SC4N+G=*b@e)ETg6 p280RNlQ;sjGGHWlbj|2V2LZAe(GyaDH!B-Rh6M;gmc3;H@c{2oRBr$P literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr100.jar b/libjava/testsuite/libjava.lang/pr100.jar new file mode 100644 index 0000000000000000000000000000000000000000..a7f49216faf68c4dbc639fbca683aff5a1d7e0ee GIT binary patch literal 709 zcwP(eW@h1H0D;O1B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSB? zrikPIj0_CVftVX8T2N$YV4#qwG3$d(Thf^X zU+L{E{2eX@%VqoYUuh(EE80H$XK_V@^G()`gY%kV+YZ@#$o|$a*4VruWwP7N7j0cC zAtfP!%2vTFva^5N2}*p8|Ft-2w&QF6=l48fA|Eb`D%rVt1GnidZ>JwZA{R4HXib@V z()iQK$*Pz1MFe_swDg=@*?#%IR&^A9vig0(ckeY{<2KgqI`E9?c43Kty7n}iluenx zq>f64D6Ko}apa9Buhz9_d@81Fd literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr109.jar b/libjava/testsuite/libjava.lang/pr109.jar new file mode 100644 index 0000000000000000000000000000000000000000..fbcdf264da794ea4abdb0681a6730b6782c7d9f6 GIT binary patch literal 717 zcwP(eW@h1H0D-CsB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWv1 zj$NwZj0_ByfS4O7T2N$YV5yg!lUQ7w8*tF?kb^+2cP95%t|r%sNlom|whqm=an>OdQ%>;Btv)Vi8Fzo*3%*MIlz>@>gdZ9mqNK-~Vs(n}G}VXn{4Z}@gN_C&1g>k}6h z>V1lP+RIm^1Sc%g$<2OT+NFA{UeX7ZF|(J;p((1Jxtvx=e34w)YTmZN`+Ck z<=JiPw3H4;{b6JmRMb*n?C@(+x;0^q*LtH$x43)tj;}hInkI%mdct+7%wjE>4( zv#!iZ47Zwf&|q?ZK-vl0gp_C$g(0ejRVKq~`E VLJ06?WdjK_1K}nh&B_Gg0RWT4+y(#u literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr13107.jar b/libjava/testsuite/libjava.lang/pr13107.jar new file mode 100644 index 0000000000000000000000000000000000000000..89f4779d4995f7070fe48027e7ccbd3a545f6ffe GIT binary patch literal 788 zcwP(eW@h1H0D;a5B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSDO z;@xr3aneQe!DA*P%2*hmmPZ42s z3E85gvLJWnv^y)WcU`(^-WBTUan?Y$aov}X*Ysl#minxoGv9(^aje4{mkW%sj(_^o z9)3DA)l_t@N5J`Y!FE5-Cf>SfE3{+DL^oY|SMe&567G_J#cLLc*Zxb<3C&cU`R{yZ zQ{Aoqwh`qrw>y{ylX#QlMELExn2>oO-BMs0ZQ=b1O--hr&oT+3}W+8p11 zm?ySxkMc9F#fM{c+4ipH7M z88g{cq&?njC~Mx9zNAmi@PpOYSI=+x*R9~si|3rk6<5FS?nJ$FJA;<=BsXU7(A>vz z_WO&SJjGityU7?TnSS}q-)l6xrH|)v~@*8V_HzN}l1Makh t3XoD3sy6hrg#hXd*i#z91nlVt0a_W*Qd598D;r3H83?xkX)h)a4**=(1yKM1 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr13107_2.jar b/libjava/testsuite/libjava.lang/pr13107_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..5dad7ade97794cd0279f0e1d00193ca9ef61aaeb GIT binary patch literal 666 zcwP(eW@h1H0D;yDB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwB zJ7<{7FfuUo05LyMw4lh)*wDZ{-bgPwC$YFVw*R!(VF!uU^CsKPeDz;CZBbgm?b#i% zm|L99yh$M>HYDbS(Ef$#-e$nO&SSa=Aoe z-pM~HwLfR=wdv8F&{m@{=cCoCgL%z*FQUH7J~j6{vGCPr*E+7y2v-v=f!lAzLn3Fr zTWNf@y0vuUi?aP<`|O-MEk(_)F1qFYj;~X}SM~amXpQ3QF5Q2%cAM1-n=Z>*A^v^c zS^v%d?AN>IUhvNN#}wer$i&5fJ3dhXQtYB?LyunsP-nm%+Xxe|#~}i=GGN4LfHx}} PNQxN85tN(05LyMw4lh)*wDZ{-dHa=C$YFVH{i72AqNp#XK(JU0V0k|3}3l*8!9C} zWO{V$$PpHK&bD6e;DRRS4DT$%!uRbjx=i&<3Kv%YKO`Uc{(-jIIp1gZcJ>#an>&5` zadigK8&*j?CmkbJhM8^mTWuB6=5u~;$?4kb@2BzKw!POWv1Qi>*DYrkSS%H5-X%Pz zkeO?e+M^2+YuY~iJa{4d^M@O`-z~RRtotDO>73_d@pY1|hu&ZFTB~yD#ET98CYY|* zQ+hXZ#xWj2R_8}&Yx%kt)VNF*JX?Hywd4%fIQKrq-~Km`$Z+xea#;3jiDT)vB^iq) zc@Fd47Y&O0mHw2MvoTdb^+{)-i}l5|m$Msfl;z{A9g=()A6{7NJLyaDjHaJgtNa!V z9SVG3wEm>C$jfuaRPhQ`Kv$vKI|#koOm^Mo8lY!6@3%bD)z*uc`FBXxZ*l z0&ivb6&E{TUA*;B-oz34D zEx(wbHCZk5(7VcIcc09wEk;@V({Z<4LWb{$GvC`T6tu_mAU(FKk;vM4PNZ?O7Ew}4TYyd zymHP5ru(aNCZ6D!sP1!3dK2@Oe983rf_>Us^(XLVZZG313z2b_Rs6<#^2aTX>r3X} z_+iz!%QJhL14FCB^cURwGlckNb@7-3`Uu^5II_Ho@*L|tQDK+hOPL(ZOSD#!joB!=}#p{+Ssvj*s*{N7J zxYsiVcr!9_G2l+?r~oPDqiRD>`v{=UfITN5Ou(ML5ulX;CA9~5v$BDNnSpQB%Hfu5z2ZhCSu7Z=QQ4zTG_ zzqf0bGBPl@F)=Xk0!0go49(0fEcKFe5{rv-15W!LauBg)cFL7x5&hWNbzV%EQ(FGu z4#UE$D>zw{*Kzd(v|PJ#?a28{tOCA&80=3~M0fH((s{SH_}Ls|$1Po^g_R0 ztQXt5s);8|MaS6Z|7W$n(3Iva9IqloTB3MAy^vCSd+F6zeg8=_!Zxo66}fP>?&hP8 zpP8Dfw~Jpry7Hy@(cu^6wW^z3xDUrC&eDipCG^(lisV<1b^RaJrB1YFnK0C5y_vnM zIiNvp-a+;myUy?$Tt9rN-$Rk9!>Y0HM8x4=0Xu9(j>R2Z_v^-s#Nv=6E01&DTxQAg zRXD(#k%@}|cQQc*NQnkj8+x)q0CfiJi3ni=_N0LTtqf=hCBU1N4J5$~gj;~LDieqY E00ElrPXGV_ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr17536.jar b/libjava/testsuite/libjava.lang/pr17536.jar new file mode 100644 index 0000000000000000000000000000000000000000..513e4d92c4cd2a7c5822f2f45f10db273448f307 GIT binary patch literal 703 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 PAYo=8+yta`nLs=MK4JOm literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr21785.jar b/libjava/testsuite/libjava.lang/pr21785.jar new file mode 100644 index 0000000000000000000000000000000000000000..e2edfd48acd26f85c2938812d40f5672bc764db9 GIT binary patch literal 896 zcwP(eW@h1H0D&bHN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHq zPK&CtF)=XsGcz#o0!0goj10{!O!bm;5{rv-gWmgJ4iK^J->O|Q_wjLuw%JWqx#l-y zxFl4RjAtci)kqxF`F+K)xj#p@@}S<27FNgn4~CRxP1_SMw%_ne8bvSoX^``k5dXRY>7T$s?8nA!09rwseqB)cyg z4otXsR{8-)%asrV6{ifh!$R)@i!^tnf44hsuzvRcf88BZocs>g+9>RKey?K5wUWhw zp&JfO*n9QhKI2EZlKoEk{gNqr19^AXIhh^bEvfuuVLMB6V&RQ597>y}x(6QCx+W2_ zYA)X{kJrcEnu$z#S=9El+-ZlCE9caJ^x74|bLDEq-lbO5UgX`IFyr@m$&=Ua^jU1Y z|JmT;FXK?Ig%JzwWfzApTRD4y$6?3UBB_>LJ&R&KER4I{wqnb%#YsI1o_Ah4?+=t) z{zK7W)w|?lJO7+TMLMN&IFr!|AW4^8DMEGW@J^`}DCS`rL_F5xZLV zNfk>ce1CJjbjhaXSey5+#THz$@;on+mNDP8>5O`yiuml3&$~lvorO2|n;4ocDl_}f z6yVLs#KnL+-J$}dRE(+(Jsl%}Is^7pjW7XwT19|X2DFqL;LXYgl3)hHEkJr36Nm=@ DpZh-D literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr21844.jar b/libjava/testsuite/libjava.lang/pr21844.jar new file mode 100644 index 0000000000000000000000000000000000000000..92c7be511cb187ff6d152a3004d233eb62dc6bb5 GIT binary patch literal 1500 zcwP(eW@h1H0D)x{N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTH$ zY*l`r0P?;9u^n3yCb7N_bZ=Oh*v>-wGLJD4CaCwKMLRa)WV?lLB#?CgaT zJyZ@g?x=s-9r8AlmADtvMWoI7)sXWyLbSyuM^bM0Qn9~qJX99xUcz8qg1sGxVL z!L7jmk=h;)759AEIZyt1tvL2FaoRJ^;3$DFo-cohtL||S?Sf5{M?EEm3g|(zt|A?wBblX`N@v=VLNB9 z`4zB(VfFu%E%GbwpPtKBzPu!C!N+}(Rx#JOX4#{9`*``C$O(+Vz+_@z;6->F;^o|c zXm2J*k$-*LPv&}`-c&vFZds_%;`RkETs2sBHw1e4ujVycxO?L|NBh-sB3!>1|E_rP zW?O*cX9MHs1^Z6_w6lx9&lnOQ)FE)Bd3U(wjr-yqg2xUoO8u&;ShytTsjP64+u1$O zmcP2=$s4FrdSs%)l2@muJ#UWl-W49U`t*c|^Fd~c*>|qJU+cd5&ek`6J0I>m^-gBi zbtw+dMv+7%ky|0#bYppgPjL7MU$S4(eQj?}wN;vdx5R6Y^|!YEs&zVMP+!P?)|q$m zjL*Jjg-aI8P1>9!)Eyxf@$2xNidWT}mM62WZdqacfn)RiDW^2!H--1hdaoA0@T_Ew z^7+|!ExXtkw?$sw(3#t)`|T6I*YUpjyw6Xq)oWj9I;ZjWH1$*b9{hXX{_@bv{`c>o z(4_Ki_QDMc+z0Ii{}o=T;a>MC#{Gw{$TT;J>SywsKd)uITRAVrLFn;?!#{(MFwN^V z4=~nso3Ubl;-<(PzKQ!J6|28BwO$g)cFy@T!Pl5$PH$W2vY6zHGMA+rC52lZ`Ya@z z1b;B0M&0j2v;DMyQ8x{Ug%MGwl9`v6S_FweTYq2g!ww>It}pWy7M>mU`n%(j_NaqW zFC7E+h_pCdY*wl;&J??QNo^8;{Z#RVt{)!oe{k>2cYcw0|J>}kmA{{TfB&1kp_^G& zwCV4(IlILVCx*LC^eD+-Nq@Efck@j7y*%%lR?bLisrsgM`JLoJiRr(*)z+t|Y|d`F z8olv&KTEDi`yqzJvrfFF!l5_BO4bOkvQ^FKOI6AHT&XaL-F^n=ww8@&y3)@dV6(C^ z+tybITaT(A0nW+`zwDv@sbKJ^P z7f%*miR;m-DKVL0E+JdEUSf0orYE0RUk9(e_$2DN^oE^Q8B?pKFW205IsQOR)Pl9P z`WM4^ANNnas?)aZ#+|e+!8NB%Hfu5z2ZhCSu7Z=QQ4zTI7 zov+q@2l6}^85nqhbU~4kk&&UHUUE)iadBwBzc;g?z|s3TyJx?fwf5`#v(4MXE^ew0 z-NP}jOD>A*k>>5TS(lcnzWKFxPei~6<{t}>oD9-<_90E^+23bRpMU=>?a(IN*r0Gt z@BC*S;S3?G;;+koai^yLU7oZ~T~%?H>9r~4EpFS*)lA-p2hUy57@_3iazkEXwfyST zg?Bwfxz8$lr|LZ1^4sXf!?vZyWo4J8xwrg(E4kNd?J~}wBXN8xe70t0+pe4o&F-7P z6FznJ3--q^i)MenrCh+r$5zku&O%`IgWHnfkEG&qE>t~l(_9ny_e9AX$2|A-H>3)D z_fN3P|6xB}{>2-ex3lCI9ZfsQb|`S~+aLS^-i%CK47ei-6(B_$sy6h9LjZLK?9qrY d0ej>iKq~`UR0VjmvVkO+fp80uUd{;O0RU@Oy*vN_ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr24321.jar b/libjava/testsuite/libjava.lang/pr24321.jar new file mode 100644 index 0000000000000000000000000000000000000000..335298a4d91c938f3edf4837e88897cd90033caa GIT binary patch literal 1602 zcwP(eW@h1H0D(0XN@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTGO z1?ucPObiSO%nS^?K+%FCBNJmIL%rmj#Ny)8p!fNg0z_>2C0e7tFHR1gc{$fl_cp`v zXX_WJrQH+~b`hSYdd0uhb|ZK0^ldNxtiQs)BO~ci_+aVVbi zw)TFtdJoY|%TQ6K>n1Tx%Mv^ltatp~wK7T4T=dQlb*s4LiL9$PM&5b#iA(daj?Bs( zt+%fUvtEK=_ttUFNR-c}g*c}?=m;HopzCoaxn^A^0@*5;cN_;T&@>$>e_ zcBX23js80uIr`nYbV7Ib#3Q!7hu2@Qv#yY1DLdX9WBb8YUFtTAaRyUvEL^BK_o9D^Hs-_y;vsC}W`NFU2pK4>SyUJ&q z-u1|vxA;Sl{;`dIN5VGt8!;Y^`}Bmp()82I8OiICd(W@ykl9*RG3|ifJL6X|Pb0rF zNZO>-w49MgO*WNmhsCx5dC!5EACYWSA|VOK*Y_Y-Q-Hvn(9bI)ud%bpT7|Sbyq1V< zQRvWfO)y_uZg9$J^Z!>OB`=tNt;i7N*L`#D+#7@6Klj~Zh}ps_(p2fY_vDS@>c)m| z?&U1CQtBUb-2#3$>pFhcXU}wO&0Nej_kqr1mvx_tRWAEV%vCuU75}M3|9PR~8?CGo zp7)BET_>HmV&596X3W^GpvBzCRC2IBK%}tPZt;V)ha>os6hnjDmPE*WcIsu!BJD<^CL@#cS7YtqZLVSRtpg z_FmK;5tfB30zO`dj+#DcQl8f&u75hV8WkVde=I(7)AbKSdZK*(v$L~je(%3-&Y*jR z)rcisZo9w#t+js_I`jq1`Srcd_{-HLm8P>!6?$#h{n#MDvC8d)8DBo<&bShFS&Imv zg8y51#+kTn2*U25?zdV(M8)J>HaB!Ho$kqsyq$DWwckfInI}p?UnPvBuPd$&6g%4T% zU#IyrV%^4HcY~5uj{UjFZC3YWnrGUNT**7f`V22VlKPfV&lKRz$i&5fyZl21NTngF zHuUlk0n{0=myQS%u$OrV(8_>T0-|e0PxlD0hY2GWple1?Q3x=f86$lKc(byBq*#Ga L52)cE3y22*z}HMq literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr25676.jar b/libjava/testsuite/libjava.lang/pr25676.jar new file mode 100644 index 0000000000000000000000000000000000000000..c0e0d4c72b8e3dabd71ad73530012fb78f802110 GIT binary patch literal 728 zcwP(eW@h1H0D%n^N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTHx z0;@aY7#SGYm>3v%fuaRPMy6)wW_rmviN(da0jK>A1qj$)zjW=Iw`1iB4GlYwLdA^S7!l=yhn1Kw#Du3brbbk5#rSHPn~{2vzgTy}CY*>-ZSW%2nrmgW2Q+1oL` zS-2>v&2caHH~v@crJ|f|CHLz#WHaA>eO1q@_9Cz36y@W^hmzS&uGuCjr2en>f}-Q& z2@4ID%<5A=*PiFj5?+?BAQ92;Xr{Y5>!rbju!%_q%MPWNRh%~D_nWlt@x&$B?uz+w z=F8WFNm#_K56sOzkr?RuZ~D$_k83qz`c!o$ciF4V-&wf%@pZkG#!KoFck@2weC*He zJTaLs=D5@;t!t7-|4RyT5{&P0O=X*CeYxx2+Ugp h_SAwf0ec!ifK~>y6cOOf$_A2P2Er{snvV&@0|3wW;IRMz literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr26390.jar b/libjava/testsuite/libjava.lang/pr26390.jar new file mode 100644 index 0000000000000000000000000000000000000000..2320e406db89a6e7dfc4458df517815febe2648d GIT binary patch literal 3388 zcwUWG4>*(i9v`p0j5+=mC0fRk|KiBM7_*hcnMgunY#1i9Bb>NiT(vk1B}CyUR1}e% zR!yd(Yonx8*OBYE#XW>Xxm0)6t?`yRpFO|ldB1z!_xn8G&-e5De7|H@KuQ+z4j1FK zEfI@=5*;_9m!px3JIRE+Vt4txb)CBZFdNsd*2#wc%AW-qt)aYpS{QY`$(!Khjav#84)+n(Vx^XDi;j~z{sMy7e! zY$J{tysE36P}ta~jJg(Ku}9y|JaNc(=Z`f8z$M%5!MLWp#Oky?mB;UsK&~wTv>uP4Le`WghI9%g5 z;?HcjTL0t2gg5uvA7%4P@C_U2OZ*C+bJ*LzVNctnDI1i!lm~g1I&L`Ut5W>6U{GL_2w&`aBy=stT81PNe39Ec-oe~p6H?svcVF6n&2`pf8I4Lp< zjR#iYQL*&RX3HvQPuI%Buki8tY+|Rgd3891}%1KdX$v3JPaXnSZG= zZXRF2?X6h8vN+IERlWr|mr#?Si;>Sl`?t=WBHpTD6j|3~q3y`TL<}~?zuT^?wac2_ z-d@u_hVIWokCBmCXs+H$z$h>z5Ttm6ih-0s>HIb55`1x{gidEWuk9uZR?qC|+r>vk z(G}5ATT~B;85BibzLwUHwKP}o`+L7y2MJtPI5a8X9$8>==%4jRb~7g#(`RmC($rzS zzW%aRQ(-A|JQvbDladRmFtE2nM1953s0axh7-xE`m4~WqQO7siGYJHr| z#SFKY?lINX>0Qnaql`M?<)4nZ$NT6>r3)u&_sXRY+L`Z;ajc$LYp1-Ltr?SUQ{YGT z(Qb_1*w*}S3+l_VyCtadr$apjv|-d8UIC+H*TVz1eM_v0H8``6)Z<+0u7;jhROwB{ zAA0-KZ^ry|XU{jjDo3XC2%~XQE*BDB9UdXdDji$nm7{sfz@fL6u0M5bW#$w5ss4f$ zm@^iA7qTbimeR&@zhU&dDBAR8+PF#MZdsOJUhpl>rtVUTO<>>FDC!_5|?DLG}Lgv#(wZk5!u&hEMl4(*?}}%akn- ze0#JSU3wnojHnb}AF9Y0JQ?vzm0J4qfj665|2&1-q8I!s>h>!j>=&Z8mq_X3NlASzG8#h0fKD8Bx)dCBbTeX^H{~r>HrZ#&u^q z&UUowPBo-IAU8x!>0Dz@W{m8V3^%-QV!xm7trj-F)_0zO9hDioLD*73GAm~{Io*=G zU(cS@SV~$MkU23Rii}01X~Id{70w8W-oLzfZ6sJeWVm-c%(DQ?#) z&&h>^ICGPW{Onw4H^DqB7izb5&^?+76+y=jLZwhzF7#MBEMs{&d47`9qmiX@LRg@L zLiAxY-VZ8VG2%$VNIjC)v4-q+o1TQAoe{P`AL)XH0w)BJ+h%5JHYpj71MR_Nj1cK< z$iwh?aHlQ2fd2X2p`XXYM=j4OcmVe{~M#q=E)}xUAi6jpAncZq{<|v8Ap%%Fm zHVw&ZZ+MrDW}yXm!9Ng^+tFizd1;W!)>yNYkQVj$2UZefR|!d3#PVC>QY_jTmwpD{ z8pT+T`0@@Z&hX{UP>jDLV0$9`Q}|jU20`+xOA0&@d90E~JQLhl#ITq7hRwiJ!LOniyHLwt VOtLEyeD{u==qD-aj?Q~k{}0-{x%~hD literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr26990.jar b/libjava/testsuite/libjava.lang/pr26990.jar new file mode 100644 index 0000000000000000000000000000000000000000..32ec05673f4e9bb1f030a9e32f3fad5766f15d68 GIT binary patch literal 1125 zcwP(eW@h1H00Ev#B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSBW zp{Vs9j0_AHftVjCT2N$UW@%}lVyKs#lUQ7w8{p{8B-Lxvn&q$Zr!)x**uCs0{)%87#EQw<`KSh z!@&u%K1<>kp4DEwGgqOz#$)5r0E6B8yO{m8ek)x``f_(?dS|xernE;B{hT#gWtX;G zFWT{*dw$5asZV#$P4{_;CLU&l!es6Zf8dKJ7-$|COF@y_Z^U^kr~qxXsp8{fDM4&^0JT$=9o7qsH_GS2;w^`Y%zeWqNtY*)) z<#7ENB+{~~UDVNLX|{%DZq%m8jrOO5T@T7X=od=Ao|MZsbLO7P{CiJc|NblNAUj(| zlg-ZLxO(p~LHD+WH$=}bx+c6Ucz14jYJy}@x|eqKxe4pu-8W8|)vW$fiTAj(m}Q%j zcV?yV*V~uwbe8!CdB*O$*iasyLDHnS(6*&F1vsO0%1_gl=B z6)rQEYdL>)a=PX1((s49i$8hFy?}W^u}q%*Nj@>&YU`4f9W(wPaem1j;LXUy#eh41 zp#r4bhN=xczafA+1NPj9Fadj>LV#8Vj2wop89i+vz%NF$loH_0$_A2P0m6?!I*u8{ F0|3vPg0lbs literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr27171.jar b/libjava/testsuite/libjava.lang/pr27171.jar new file mode 100644 index 0000000000000000000000000000000000000000..20422fb7ef548963d9caca7e9075cafd7df9c1a0 GIT binary patch literal 802 zcwP(eW@h1H00F*AB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iSD$ z6+fF-FfuS?FflOj0!0gojLZ$q4fT?95{rv-C*Jfs3nvVXH(n_uP4qgT=zHad-mw{tkbKt*bF>w zy|wDS^mpy?EtA<=c;a@0Vh@ zmdiEpmgL({UznS=mnd+pWqdzLu|;gfmnBn`Iv<(6zi9b1^_KaT6R(7=`j({sJYiq) zqv70L>n~@roWD!d?L59>+4{dr7c1@63EUU|OFP3v=Gy_IOdf~D+YGa;y>i6`4qE*@ zKH6A2HYtN6(FTERBh-f4FS{{u%|nO3D{E;0<A7V{fN`Lx#((4FMCRE{&my+FnIzqq?iZfC?d#>fygM&Li}EZw ze|?I{y!`X0zD$PGn?}6_{!OCSQ%ovvr;43f`L{eJE^ z^Lnaztv)rmYprY4q>z=)X(=AzDz3eubEh<|y5;_tJ;0lhiHiYu6r%#92uIb19_0w2 i&VW4uAWXm>tq9P{fEvjG-mGjOab_Ug45S}2f_MOkFV7+X literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/pr83.jar b/libjava/testsuite/libjava.lang/pr83.jar new file mode 100644 index 0000000000000000000000000000000000000000..68e29f8f88a050ede382a9e0a56f1def712e8ce0 GIT binary patch literal 928 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 aW)?CmLC%r^-mGjOgIIxZ63`#_!8`y&dSH+M literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/private_indirect_write.jar b/libjava/testsuite/libjava.lang/private_indirect_write.jar new file mode 100644 index 0000000000000000000000000000000000000000..ace4c5a019b5bc3266b085c84653efab004733e2 GIT binary patch literal 2121 zcwP(eW@h1H00EmyB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWxB zvo&v3w&urM&l07VOmGRuIP;xqG7GK*4^OXACmGD}kRl5-M^i|2;q1`7p>)afa8 zziwjd%3l#OgzamXpjSVmJzi>C5%WX1c zUEPbrcXxlkQ#|kUoX>Oa&fmZ9Kf{K`=Ug^C6WfyKNjAyP4!c@X;VM&K;&V{6LQ>7Y z*H}5$c+KQ5t3PSpHSF25J(q1-`iHkOrfGgVu|&O3VvptSQ=vTxG0jZ&hg}YC`EfdI z@0q#Ii({0JC^#RpjlOf&$GzKHs3hpHX^X@k^_VAFZktaEToZ0p+&|B7wNiuT%=%f0 zj`}+mrwO}rrAci2*X(^qOkQO%$Fr1Km2GEFUyA8;mQnEtIlSo2)bJ0>Bn}&`)9(0t z`TL{g%N~^SniovA%H8hK^s?^evbl9YM`>`iOMhL{6wPB?&&svS=4SrPty<-OA{MHs z++EjYAvCFKQp1-+mGzHI+1gBb7k}`)Kc&s&nrH6fix0x4Dz17iEPjYBbCc1db!|NF zCWah(7jNYAQr!8(cSbW&8x_^qR~I*^YHIOju8KUeFK@;c*Du@imi)bu>LC*({!(W3 ziNub*#o`I7Q@vJ(Jl;`bGp%(JL*3$_hiB7jV#O+M-g)wL&T7})PeXn*Mm{!4em76^ z{P!jkj*m{fn_g)3X>}KaIqfq zN_~k_UsD4f_bJ|-$>%D@V=1n=L{??PvqNt46a&p27HTsW+Ez<&l%8f6c68suv9gor zd##{b?w4t?8$Xr4J@)C{+}SUEem)AC#eMqYjfsYB2lpBswGx(VQ`)le@CMoQ#vx&| z_Z~0!)?a>QS(S>2vsRGIgqfVbKA!p9vsh&2++Loin?*tsFEY$|_E1{)eL*}=FVou0 zAeSlaf12+1?z{A-_vs#{)mfvm6X-BjVlwI7h1?Kbki`L zBK|dZ%aw1x&Q?6y{l{y?QSZ+a-Ct!&_Dq|#!m_BTf!*cL{X0A-KV&CN*OOl!f6OO% z?)*Ixooyyhji0;?USm}C^+WF!>mKn|w|OO9Iule4C;mPf&bfBe&R5!BB)M8|eCEln zH?2A`ZMoLuJw-S2xo@ZFe$uhJ<=3$_!{`q~fHxx(7X$9v2^ApKRjAs~Ybyj$XTV-} zAxywtBOyR51OEC6-6Zt#0RbGD$x4pctwB%c2=IV~ENhTceSkMB8^|bDAe;`gWDb}I E0Kv*m>Hq)$ literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/search_outer.jar b/libjava/testsuite/libjava.lang/search_outer.jar new file mode 100644 index 0000000000000000000000000000000000000000..136dbb353aca93ba5f907fd2d9b2f96532eff66b GIT binary patch literal 1558 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 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/stringconst.jar b/libjava/testsuite/libjava.lang/stringconst.jar new file mode 100644 index 0000000000000000000000000000000000000000..aab9f9391d44159747efedb3502ecefb346ae51a GIT binary patch literal 1175 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 b`dy(+KOR{VeMY9gvW!O$P6q%?|6TkaHQP4I literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/test_long.jar b/libjava/testsuite/libjava.lang/test_long.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6b3ee0c3fe5b1b4f5bb536b29ac7bd30cb2d2fb GIT binary patch literal 883 zcwP(eW@h1H0D-JZB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWx9 zqbKHlWn^H`WM*LC2a1*eO^MIR&r8=!&PgmT&JFVR7Y-Ep$7is2t`XBAhuQ!+B@5Su zP5rA>k2#bic1U=8@NgR~y`FZWWSOS1Z_Mt1{|z7ccND1_9!+?3Y;NcO1HIAazqmV| z`^{D|GM~BgzU}urpKG6geEZ=6cLS>qXNlk!hj(nz>)wa5RBIXh?ny%e`~x?Avf?e+KT|F4z(XHjuGB3|agzde=TKfbD*QyD9UiT7mF(mQO7UXMB>}vDQe~G_`2w z!j+5UuWf(I>~6Yqy|KmTSGwYps|8KBb=%M5vEz1=yyqF2_I=`?0}YQq*b7Ql{=2}v z`0cNz`CmW9nG|ZRpZ(%IxA5}!GbN(T4Ch?`HsN2-nadyjCGH>pvf%2GHz~rO1tl(8 zd6Y~zx1zIEEl)epNIs^7(j4%Ov;zWQ}28^T{;LXYgl41tJZ9sZC6Nm=@U%)ye literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/tmi.jar b/libjava/testsuite/libjava.lang/tmi.jar new file mode 100644 index 0000000000000000000000000000000000000000..3e77d8641138f2bdf9036c985805b6176c512843 GIT binary patch literal 2020 zcwP(eW@h1H0D;a*B{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWw| z8`A1>ObiTx%n(PEx;+z@=!9x*j+OvC(?SAUnwcGSx=o-7`f3A$Y>pEE(jqWquQV#VpeRiURBR=zN z;EOk9%QW`QeE6$-uV&t*Yp-{nc%FYF2s6nutDHX8v$sWMDW0#N3cXq*4V*MyUa(y$(Bw*j{#z zJ7%^|er=ShQ}n@CyB;l55b4qr`JO3L>NVS8GS}O1%?K9px(0dGd7P}`dhgEMF@9c{ zzOUYHKf|2I7hL=n%;=k9ZyYG_f$gC81u3?R!LOIuPe{~KU|X}UVWQpYBlgOB-Rou_ zXzdEA(oDE&yrfV+;KdRCOKk@>aSKmtwmGGjQ^E9em)ewStx4A>2gdikZ~7M?RNs>< z{rZN<#)Ex+dfO5VLM~cyIL}PkxK!up{H@a6HP6lF^*C29-O}y)CWK%ALD^!DKI_8@ zo+(b!``$PlICJFRlmjBBelwo)KZ$UaXn6jz@Mh+fw!^fU)w=zG{N%NPyMOXspOO5w|6PikXj_PF_olh6DgC>riEMrHb$&J9?wfN& zLpH0t-R~#3;e0Uf4_4HGPUDO`>jTWKhk?137Z%Vem5`vW4a&_IauleW#&kUPx|rsc zZQG(=L^fUus@eX~KHTz8+jpUxaD9XQDU02%tG9hTeDCcU zo6m2~7=QkIe0n|u*NO}dgN(Y{X8dROwJA7n$*kS*N%!>4^ZVDBy53DsU@tkvllXt{ z+nKChD^~O-(8>dXMLH} z5iPU5u>H%HU9k^MB%WPm5%}F!UrIn`_u3b@9l^6TwX3-JBSr=!WNqUfa zTrh8CYUR8S87l21zf24+&HiTO(B8)Evbd=B#H2V`wxh>iPE%?*B5`vnW5qWKVfm9u zJ3Q_i{B`VRI3ghXP`hPXoN+bFKgr;SjA`!I71y1ZZRTJk?aP}m&&W5JcfqV<6J46_ z#Vq(5*|f4||BU-eD`s@h-|$CtXZgmh$!q#o^cz?oIeX)-;yds2f|D-Yu`%@B#lO+^ z$h()#ZCP28(p#o5+5|e;xJGUjTEIH*uyJeeW6KZ10p5&ETnxDDDpY_}bD?TOue%UH zodJ7IhA;tp{e%Fm3`n&Vx;FF@2?0(qp_EVP8qsqY0vNNP<+lKDRyL3XD-fyx?O6rp F0RY?BF^~WN literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/tp.jar b/libjava/testsuite/libjava.lang/tp.jar new file mode 100644 index 0000000000000000000000000000000000000000..9cf6cb8cb3d7245a06841d6ee9187c0fec79fe1f GIT binary patch literal 2089 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 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/utilTest.jar b/libjava/testsuite/libjava.lang/utilTest.jar new file mode 100644 index 0000000000000000000000000000000000000000..f3a4169ad96c58551e5d722a7b12bef261399c49 GIT binary patch literal 1471 zcwP(eW@h1H0D=BWB{K#jzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWup z4YC!^EDQ`=*%%o3fTE=(nK>aqlk}2v5{rv-L!$kq-9`S1y|237-Pm}{A;;rRi@@U< z)-$p%-#F%Xr=UAx`_>6jV%5oJQMXU530@Qys=aVk?U~^C?oSiizcnrsTF`XqyVulT z?7yUc@z0tUDI=q|t>)R8nZ-Z%8K?hwUcY}on?aAekrazY=niQCqdKB#6=9}3 z=Ng;kZjQM%snGR6b*X;t;-G&`>R}iB7PPmyyB$BaSa@>q#)>4pnV%L2*GYz-{}5TZ zEmhi8pXr6tou^uXpXZ90oo+rIa&_6QwzxTgohMB7*C~61y#2(f#GbzAy;6{<`32?2 z&!TJ6Cs!77?`3-8o42WBt$vAQWSr3xSNTIsQE!X>%*@SMs`WH!?>E)J)rF#hJSSe* zpT2DQElI%nO4(@*(Ko!$7hSqjd!#$C=b~et^ZFwz*poEwPJi%qahy*=P{VUW(Rs$) z%Zg{b@IF05tYC4RLT;p+8$MLKfMlIf}*W*aRhoz?N&)VkDYzvJJljt^CDKD(0A zvP^XT#Z{AK|D3&QPrb=$hqO!XSh{?-yQi)j6wO!o`$*XO`>(GE za<;d~P5QfpU*JXJrt=Q2GQAN>{`~dordsxs*1Nn`e^`5GCT~afq|!AyJKpVDl;m(r zr2bIJ5%qT+PCKfPtG-G8A@KP8*6A;HCQRLa|7OkSnAd!7_We}fRL+&x(8X-0b(CY~fpPmuBthO!f%whRp-Y45djz<4JalWnW;+ynf{RI=|{Xcp> zX?Mog%~!ZhCe2HKC3Ump__rGyU-rG_2)?O&CgrxB#ew#JwMV{9v^mgh@Aoiv@kHjl zN%x$~%exPJnY71uFZab4?VQI-(?cxhDBM+UU)&P=@Orz)`?<3l7#F$rFM0M?wek5* z`7%%Gw+5?Rj*)~nB_?N8E;?@ztA(V}|(jjg|*y;pYG z^p}0ceQWmW7Owt9tjS;6j;&lAc;=GbyD#~j=cG6Mu@CTOWa47LUFx9%q%sgy8+s{- k0O}0b%S40;*h@MDXk|bz_X50G*+4SPK)4l1e_;Xf03`NgM*si- literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.lang/verify.jar b/libjava/testsuite/libjava.lang/verify.jar new file mode 100644 index 0000000000000000000000000000000000000000..7946994b72f694eaf34d8770ad7e35434c5d6d03 GIT binary patch literal 1338 zcwP(eW@h1H0D*~>N@fg5fD?#)T|*poJ^kGD15lLh(9KQM0kT0@1X-D{qo1dnYjB93 zubXdTUS?WqafxnNYEf}!ex8+rp`HPkb5UwyNotC&Q>B%Hfu5z2ZhCSu7Z=QQ4zTIU z^QN6&0_5!jVs;>Q(M!%rEH0MyJI&P;ATsCi>uFKnm>o}NP2AFN<|^Q#+x0Dc_fgSc z0nuM;!W_Hp7W8-Z>7_lJBPsFhcXd6(89@#SmMHFs7DuIQ$z?{nTiZ1P3pF1U>`=Af zp8K-M)8P1IwhX~$DjuYK@>&3H=S)ngpCtv%L z%(5==hE0P+%z;}^vrpWz`1XbM`^{r^n=j82EAGGQ@Sh*mBc<1JwR(WOWl)c}LOf#q zHUGLD8ylN5TU;5Nnj4#2cp00R!qY=14x~+`!eFkQV`U zuqV2M%ODQ+2Rhh|t#QqfO)h`u9NAM+`+v!rD^G;n*w#Jxb7|3&knLyYgt)Q2+jM2o znJr$n6O7E**xcCC*fzrLgi zU!H^oIUH3RdLBmrbq4G?9$^CZe2f6C4Deiyt_eNQAb=kuJO`m` oLQl5{@ShQ$iqSQpr#b{EV?s@X0p6@^AaOPz3<9dY#0=sA03P1E5C8xG literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.loader/TestEarlyGC.jar b/libjava/testsuite/libjava.loader/TestEarlyGC.jar new file mode 100644 index 0000000000000000000000000000000000000000..7a9c0ef1fca88d1e98297cf0d7e1a81b4b904c89 GIT binary patch literal 2452 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 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.loader/TestLeak.jar b/libjava/testsuite/libjava.loader/TestLeak.jar new file mode 100644 index 0000000000000000000000000000000000000000..d7bd24737e54cef054c6ba89cea3dee6dbd13fab GIT binary patch literal 1571 zcwP(eW@h1H009>lWitjOzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwP zwiA7B19=XN3=DiA(<^=Q6H`))^pbNDi;Jzl=3lpCV`Fn>V=QA+b7SMX?=}C=kttV{ z%Gku**gmc~vdQJ|o-0CsFDS@ApL66m=)TlhC=WuG;0V-tJ+ zXG(}3TN<0699tNhnHyW({4;w(_FuZQsTGLxON!fNH_6xGvBR?u zO=ljar99v|r?2bfS9+R7@*sEdYB>+>W+i6j096hH#z=?kMiuJ`%UPZnGiI9UzJ1Fh zBi*R8z|vt7x6UcPkdusI=Xpcd^O&%v@a>+q?OYj~TnVp@Lvv-LQcXhl4@T5rkj+nF z7iMB$@MMMrLkKW1eNq#%A;C}@HAFF}YNdly z5x3Gpj;~t^r=7@6az7_#T7KmJgDb`QxvWfu&$fS%ZrIp4RpWqMSy@@y{n_T5@7LG; z;!0qa)=HC@kjk+v_2^~cZZm0Lgid~M+dRp+GBg|a)(3K(ns<~h}OT}&!z z##KT0ro?kaF&oS8WOMF686E4WY5Q&m59{LtQin~Kyx%dmDmDIa=#tPghEI-PoU13# zqtm~=b$zm&WLu2;iDLx{uK7yG0*th-+0VZk`b45D@r>xDny;5;b!44bv|w>ZHjkEK zaLECK{17+QzBqvsr9mdH3z8 z4&>em+$c0vy6M-W-08n^_kGwqd12q~9mgju@^ZGGC+n#=x( zcu2fa7Q-~h|EvdREfoGMd@Jow+bXsJ_5woemDfWy1r2Svg#+RUg0Pe4CIJuh8jae|qwRh4L5rweBuq*~NYM&AAPm@7q7uXApLglX2SeWY2}1 zZP(Aww=y+Mmz&kHy1dvR`Sj5rrR&nICqJ)OIyhI&OjC|y@9eGr-tXEUD>!SjNm?u0 zEybt;&e*vTbvNsCETU(f?c>av_-?a#ozJO-!N>bg1-E=S8Fg-z!#Ud$&bqe(QTsdW zJd92$WpWCANs&4*k?qdIyPW?vUYfdK)i$p=jT;V=QA+b7SMX?=}C=kttV{ z%Gku**gmc~vdQJ|o-0CsFDS@ApL66m=)TlhC=WuG;0V-tJ+ zXG(}3TN<0699tNhnHyW({4;w(_FuZQsTGLxON!fNH_6xGvBR?u zO=ljar99v|r?2bfS9+R7@*sEdYB>+>W+i6j096hH#z=?kMiuJ`%UPZnGiI9UzJ1Fh zBi*R8z|vt7x6UcPkdusI=Xpcd^O&%v@a>+q?OYj~TnVp@Lvv-LQcXhl4@T5r_<7m? z+A&}d>||nK5CV#Z00YyvG^Zr9ASV?P6uCjZ`Ij98YA+uvd?a;C#kZ?bD9U5w<^C0q zn0Oxr9XzQSB-|9>-?zCdCP#gfd56re>Z*6Dt_q6h{%9PzvBWE+RQK$ece5)uTc5B0 z_wNVm1A*OI(>SW!k8Cpiw$%JnYZp)A+dDsBnbfGunAm+e*Q(8V(>(6Q$?YwvmtP4P z9Y4J9!iJtbe5{d&R=sU~lp^!Rq&!v&e8rgx6d>I!wL z?34TLCv)3*xxSJts|e?7X2si+Bf1h8l_i#?-jBQ%veEB`$HssY$BqYAGhPjFay`x_ zClHdBW}+tIlU;T+l6A6;%9E(cv$dG}C#UBLbv;`fvU;}j)CFITI~sTzZ7<1rEUEau zxbW8O0OR)(2j8-rm|pqdbd+zQN&CIp;-el_hXdMYo~t}^b(5~_cW?Egn0cG8$@M9R z@A*Dyp}5#q8;^_)tYW+;qaJk}Ogze*dKga8oEL8xD9Zll^wqT7 zS1ZpNu00h$FM92QGuyh9$|9CIhkTecwd$y{YQ)R8um3Xycr!9_G2qUFr~oNPqH06W wlL(;BfIWvIOu(M+5TKO-Jr|~YSvVmk-fbc7jZej-U0OKr^UH||9 literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.loader/TestParent.jar b/libjava/testsuite/libjava.loader/TestParent.jar new file mode 100644 index 0000000000000000000000000000000000000000..41f66db52819b6222d6bb930d9f339d27d6cbc25 GIT binary patch literal 1182 zcwP(eW@h1H00B=IWitjOzzM{@t|5-Po_=on0Vv9L=;kKs0NEfcf~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2iWwP zwiA7B19=XN3=DiA(<^=Q6H`))^pbNDi;Jzl=3lpCV`Fn>V=QA+b7SMX?=}C=kttV{ z%Gku**gmc~vdQJ|o-0CsFDS@ApL66m=)TlhC=WuG;0V-tJ+ zXG(}3TN<0699tNhnHyW({4;w(_FuZQsTGLxON!fNH_6xGvBR?u zO=ljar99v|r?2bfS9+R7@*sEdYB>+>W+i6j096hH#z=?kMiuJ`%UPZnGiI9UzJ1Fh zBi*R8z|vt7x6UcPkdusI=Xpcd^O&%v@a>+q?OYj~TnVp@Lvv-LQcXhl4@T5rc*X8l ze;XJCf0!5;1c0I;z`zVhEK1EQfdoWpkZ=BF2Z7qlR%MTNEjjBR9nAH2L4tX%(vh`} zfw&Z&C}pVWUy&#Cql@aQnM=Q1p74suNmzcur&`RBCs`~UuZ z{;S@Qt|1+vFoRce<#nYgjYbOu!}N}-2fplF5M6n7*OXk>3-Lc1*Jri39?uopGTG66 zR)otjCoU_+*FPKgNPLSn%IOI6FY<{0!I*gV=Yz8^UTJ-4&byjBYe%~%bEH#Y+q^F> zB9+V+CoXIaeZtYYF63+Al9c~qZX0B;?>1hWwZI|5e}luSQ@73U>0WV>%NDz~(a~VW z%!?fxUhTN7?PomWiJfAt-LL7Xj~(wk6H|PCruEp|8xZm&8^Ejt^JgriF>KbT6D(5b;@b_<>IeXLAJLe>--@m!i`N?gXJGUJ)K3qCI;E2(-pUG1L4iw+Jx}kCUpIysuJXv#i z$=t>J1H2iTxEOF}OH_cANl~?-XHx`FXTY9m5hh^IiU`okfSxhY^`fU=1n6PJOw9q_ RtZX1T79ji#q^B~2cmTbwoZ0{Y literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.loader/dummy.class b/libjava/testsuite/libjava.loader/dummy.class new file mode 100644 index 0000000000000000000000000000000000000000..58ffb90f264795070e0537f9bd94241f2c332283 GIT binary patch literal 184 zcwRg8Z`VEs1_nb0UUmj1Mh4cD(%jrib_Nzk27#=^vPAuy#JqHU|D>$cP96qU1~x_pexJ;|RKL>Pq|~C2#H5^5Mh33n{L-T2 zRJTkp2W+?=$Xo_R2B0YnAixNOK;1x+9mtaf^BEXewYD>GYy?Yl0ZBHnATyBU2GUFn FJOI8cAa4Kw literal 0 HcwPel00001 diff --git a/libjava/testsuite/libjava.loader/loader.exp b/libjava/testsuite/libjava.loader/loader.exp index 86e518170c4..a94e4e9eaab 100644 --- a/libjava/testsuite/libjava.loader/loader.exp +++ b/libjava/testsuite/libjava.loader/loader.exp @@ -21,7 +21,7 @@ proc gcj_loader_test_one {srcfile} { set errname [file rootname [file tail $srcfile]] set args [libjava_arguments link] - lappend args "additional_flags=--main=[file rootname [file tail $srcfile]] $srcdir/$subdir/MyLoader.java $objdir/[gcj_object_file_name $args dummy]" + lappend args "additional_flags=--main=[file rootname [file tail $srcfile]] [gcj_object_file_name $args dummy]" set x [libjava_prune_warnings \ [libjava_tcompile $srcfile "$executable" executable $args]] @@ -45,19 +45,19 @@ proc gcj_loader_run {} { global build_triplet host_triplet global GCJ_UNDER_TEST - set file "${srcdir}/${subdir}/dummy.java" - if {! [bytecompile_file $file [pwd]]} { - fail "bytecompile $file" - # FIXME - should use `untested' on all remaining tests. - # But that is hard. - return 0 - } - pass "bytecompile $file" +# set file "${srcdir}/${subdir}/dummy.java" +# if {! [bytecompile_file $file [pwd]]} { +# fail "bytecompile $file" +# # FIXME - should use `untested' on all remaining tests. +# # But that is hard. +# return 0 +# } +# pass "bytecompile $file" set args [libjava_arguments compile] - lappend args "additional_flags=--resource $objdir/dummy.class" + lappend args "additional_flags=--resource $srcdir/$subdir/dummy.class" set x [libjava_prune_warnings \ - [libjava_tcompile "$objdir/dummy.class" "$objdir/[gcj_object_file_name $args dummy]" object $args]] + [libjava_tcompile "$srcdir/$subdir/dummy.class" "$objdir/[gcj_object_file_name $args dummy]" object $args]] if { $x != "" } { verbose "resource compilation failed: $x" 2 @@ -67,7 +67,7 @@ proc gcj_loader_run {} { } pass "resource compilation: dummy.class" - catch { lsort [glob -nocomplain ${srcdir}/${subdir}/Test*.java] } srcfiles + catch { lsort [glob -nocomplain ${srcdir}/${subdir}/Test*.jar] } srcfiles foreach x $srcfiles { gcj_loader_test_one $x diff --git a/libjava/testsuite/libjava.special/special.exp b/libjava/testsuite/libjava.special/special.exp index ab18b47bff1..8397f856792 100644 --- a/libjava/testsuite/libjava.special/special.exp +++ b/libjava/testsuite/libjava.special/special.exp @@ -1,5 +1,10 @@ # Special test cases. These require tricky build procedures. +proc gcj_special_try_compiler {} { + global srcdir subdir + return [bytecompile_file ${srcdir}/${subdir}/pr21115I.java [pwd]] +} + proc gcj_special_pr21115 {} { global srcdir subdir env @@ -94,5 +99,10 @@ proc gcj_special_lazy_illegal_access {} { return 1 } -gcj_special_pr21115 -gcj_special_lazy_illegal_access +# For these tests it is simpler to require that gcj work. So we try +# the compiler and if it fails, we simply skip the tests. + +if {[gcj_special_try_compiler]} { + gcj_special_pr21115 + gcj_special_lazy_illegal_access +} diff --git a/libjava/win32-threads.cc b/libjava/win32-threads.cc index 04d2d34ea92..f2dbaaf9454 100644 --- a/libjava/win32-threads.cc +++ b/libjava/win32-threads.cc @@ -61,6 +61,16 @@ DWORD _Jv_ThreadDataKey; #define FLAG_DAEMON 0x02 // +// Helper +// +inline bool +compare_and_exchange(LONG volatile* dest, LONG cmp, LONG xchg) +{ + return InterlockedCompareExchange((LONG*) dest, xchg, cmp) == cmp; + // Seems like a bug in the MinGW headers that we have to do this cast. +} + +// // Condition variables. // @@ -420,3 +430,138 @@ _Jv_ThreadInterrupt (_Jv_Thread_t *data) LeaveCriticalSection (&data->interrupt_mutex); } +// park() / unpark() support + +void +ParkHelper::init () +{ + // We initialize our critical section, but not our event. + InitializeCriticalSection (&cs); + event = NULL; +} + +void +ParkHelper::init_event() +{ + EnterCriticalSection (&cs); + if (!event) + { + // Create an auto-reset event. + event = CreateEvent(NULL, 0, 0, NULL); + if (!event) JvFail("CreateEvent() failed"); + } + LeaveCriticalSection (&cs); +} + +void +ParkHelper::deactivate () +{ + permit = ::java::lang::Thread::THREAD_PARK_DEAD; +} + +void +ParkHelper::destroy() +{ + if (event) CloseHandle (event); + DeleteCriticalSection (&cs); +} + +/** + * Releases the block on a thread created by _Jv_ThreadPark(). This + * method can also be used to terminate a blockage caused by a prior + * call to park. This operation is unsafe, as the thread must be + * guaranteed to be live. + * + * @param thread the thread to unblock. + */ +void +ParkHelper::unpark () +{ + using namespace ::java::lang; + LONG volatile* ptr = &permit; + + // If this thread is in state RUNNING, give it a permit and return + // immediately. + if (compare_and_exchange + (ptr, Thread::THREAD_PARK_RUNNING, Thread::THREAD_PARK_PERMIT)) + return; + + // If this thread is parked, put it into state RUNNING and send it a + // signal. + if (compare_and_exchange + (ptr, Thread::THREAD_PARK_PARKED, Thread::THREAD_PARK_RUNNING)) + { + init_event (); + SetEvent (event); + } +} + +/** + * Blocks the thread until a matching _Jv_ThreadUnpark() occurs, the + * thread is interrupted or the optional timeout expires. If an + * unpark call has already occurred, this also counts. A timeout + * value of zero is defined as no timeout. When isAbsolute is true, + * the timeout is in milliseconds relative to the epoch. Otherwise, + * the value is the number of nanoseconds which must occur before + * timeout. This call may also return spuriously (i.e. for no + * apparent reason). + * + * @param isAbsolute true if the timeout is specified in milliseconds from + * the epoch. + * @param time either the number of nanoseconds to wait, or a time in + * milliseconds from the epoch to wait for. + */ +void +ParkHelper::park (jboolean isAbsolute, jlong time) +{ + using namespace ::java::lang; + LONG volatile* ptr = &permit; + + // If we have a permit, return immediately. + if (compare_and_exchange + (ptr, Thread::THREAD_PARK_PERMIT, Thread::THREAD_PARK_RUNNING)) + return; + + // Determine the number of milliseconds to wait. + jlong millis = 0, nanos = 0; + + if (time) + { + if (isAbsolute) + { + millis = time - ::java::lang::System::currentTimeMillis(); + nanos = 0; + } + else + { + millis = 0; + nanos = time; + } + + if (nanos) + { + millis += nanos / 1000000; + if (millis == 0) + millis = 1; + // ...otherwise, we'll block indefinitely. + } + } + + if (millis < 0) return; + // Can this ever happen? + + if (compare_and_exchange + (ptr, Thread::THREAD_PARK_RUNNING, Thread::THREAD_PARK_PARKED)) + { + init_event(); + + DWORD timeout = millis==0 ? INFINITE : (DWORD) millis; + WaitForSingleObject (event, timeout); + + // If we were unparked by some other thread, this will already + // be in state THREAD_PARK_RUNNING. If we timed out, we have to + // do it ourself. + compare_and_exchange + (ptr, Thread::THREAD_PARK_PARKED, Thread::THREAD_PARK_RUNNING); + } +} -- 2.11.4.GIT